PVOL1RSX86B D%B1111001001 1Pe _vߋt ***THIS VOLUME DOES NOT CONTAIN A HARDWARE BOOTABLE SYSTEM *** & )7윱w D V  llC  4*le  DE a@ e \jg 4`t  ؟W&4e (9lj: ww  C C`e AE@ w^V  ^V e Jw Bww &f& f R@PHDR1RSX86B 00010001000100 00000 00000 000000DECFILE11A PPHDR2U0414404144 M 00 PPRSX86BRSX86BW ' d $$08JAN87123932DECNOVOCTSPe _vߋtRSX86B is not a system disk xr<RSX86BP`19NOV86143328RSX86B SYSOPER DECFILE11A PUFDNNzPPUFDTzP[?! ?!( @! @!( A! A!(B!B!(-!-!(-!-!s`(`(Iq [Y(PUFDUzP}Ԁ""`(E,KkQ,s(K.kQkfkQkz( Iq !q"q[#q($q%}}q`(`(Iq [Y(PUFD&nQzP'iIq (` ) *tq8^ + %,dJ:p:z-dL:8^ .dM:Ȗ /dP:M 0d[:p q($q%}}q`(`(Iq [Y(PUFD1nRzP2/ iwp3i %4858[68#7&8Yy9:#;R<R#=(KS >;jL?pS @& A( BK CjLDOSEOFsQ@#GsQ@bKHsQ@RIsQJsQ[KsQ9 KL9RKM f}S NIq Oy:2Pz}'Q:R:[S:#T슘!2U4PUFDVOzPW,Iq "XO :P[YO :PrZ('[[('r\dvԀ^Iq4K{L_s"[`wfa%a zR[b zRrc}@[d}@kQP Ne@ NO w"f! !"Q @"PUFDhPzPi}gj}g[k}g#l}gzQm}@'n}kQo}(kQp})q})kQr}=K's#tuvw#! !"Q @"PUFDxӟzPyE z/+kQ{/+^|t`k }t`~t`[t`kQt`^t`ra WkQa W^ _ _ _kQ _^ X[ [sQ  [v  ""`  8[ 8R 8?T 8r 8#w 8[ 8 N 8kQ 8^ 8[ 8kQ 8^ 8[ 8kQ 8^ 8[ 8kQ 8^ 8#^ 8[ 8kQ 8^ vQt  vQt fkQ Uq5a  y:  [   8 8 yE  yk  y  ykQ y^ y{ y{ yE  yk  y  ykQ y^ y{ "X "X "Xl^{{{,{{[{y{({"" N{""kQ{""^{""Z[{""Z/d{:{:{\MkQ{Zg{Zg{Zg[{Zgy{Uq{UqK [ ^ kQ ^\ E \ k \ [\ kQ\ ^\ {8[8r }kQzE zk z z zz[zkQz^"X "X"X' #}  # E  # k  #  #  # kQ # ^#kQ#^#L" (]!&@Jw?vQ,Jw@{Q}JwAmJwBveJwC5xeJwDzpJwE;}DJwF}@QJwGiKJwJw:(8Jw:39Jw:^:Jw:;Jw:Ԁ<JwY8 #}  # E  # k  #  #  # kQ # ^#kQ#^#L" (]!{dsQ;%?{dRy%@{dWA{dWl^B{dWWl^C{ddD{dd%E{dfF{dfl^G{dfW%H{dfW@I{dĆą%JdpKdp%Ldp'Mdp(Nd0!'Od0!fPd%Qd|Rkf|'SfW[TfW{dUf]{dVfs]dWf]Xf]YfXZfZ[fZ\f[{d]f#[{d^fX[{d_{gONf'`Iq aKq#*bKq#v&cKq#'dKq#(eKq#)fNqK}*gNqK}'hr'iJwt:'j@x !ykx X'lRy 5'mRy 5)nRy 5foRy 5fpRy 5fqRy05fry's;zONf'tjz}'w9y:'x9y:(y9y:)z9y:kQ{J'|J(}J)~JfJ &&J &'J &)Ć'Ć'Ć 'Ć'Ć)Ć'Ćxd'Ćx'a'Fw'Dhr(&*&&&'&)&_* * * ' ) ) _)'(Z]'+'fZ[fZ\f[{d]f#[{d^fX[{d_{gONf'`Iq aKq#*bKq#v&cKq#'dKq#(eKq#)PUFD8+zʈP2T`209^&{dd{d_dp_Iq &'&)&_* * * ' ) ) _)'(Z]'+'fZ[fZ\f[{d]f#[{d^fX[{d_{gONf'`Iq aKq#*bKq#v&cKq#'dKq#(eKq#)PUFD8,zʈPiIq Ԁ@@@@ @ @@@@u@v@@@@  yt! t!yG,g,W%,xs:!E,dkeE,d keE,dkeHHH@H H hMHH@HH@H H {dy:}e`;%fE[Iq Ryl%Ć'Ć'Ć 'Ć'Ć)Ć'PUFD_ӎz@шPiIq f!f@!$` x92x,xs:!E,dkeE,d keE,dkeHHH@H H hMHH@HH@H H {dy:}e`;%fE[Iq Ryl%Ć'Ć'Ć 'Ć'Ć)Ć'PUFDӟz؈PE E X:xHqE /+kQ/+^t`k t`t`[t`kQt`^t`ra WkQa W^ _ _ _kQ _^ _ _ X[ [sQ  [v  ""`  8[ 8R 8?T 8r 8#w 8[ 8kQ 8^ 8[ 8kQ 8^ 8[ 8kQ  8^  8[  8kQ  8^  8#^ 8[ 8kQ 8^ vQt  vQt fkQ Uq5a  y:  [  [  8 yE  yk  y  y[ ykQ y^  y{! y{" yE # yk $ y % ykQ& y^' y{({){*{+{,,{,-{.{[/{y0{1{""kQ2{""Z[3{""Z/d4{:5{:6{\MkQ7{Zg8{Zg9{Zg[:{Zgy;{Zg<{Uq={Uq>K ?K@CA^ B^8~C[ D^E kQF ^G\ E H\ k I\ [J\ kQK\ ^L\ {M8[N8rO }kQPzE Qzk Rz Sz TzUz[VzkQWz^X"X Y"XZ"X'[ #} \ # E ] # k ^ # _ # ` # kQa # ^b#kQc#^d#L" e(]!T< ?T(?Tp! L^o'` L^o'` <_[v[_kQ_OqE _Oqk _OqkQ_Oq^_Oq{_SqkQd\qkQkf,kf [Iq ^qyE ^qyk ^qy ^qy^qykQ^qy^6xkQ6x^AykQAy^zy}kQzy}^y{L} }@Q<}Q}v }h} u~Oy} t:Xyt:y/DkQ/!kQ/ykQЅE Ѕk Ѕ ЅЅkQЅ^yykQy^:4}~:4}kQ:4}^:"  :" [\MkQ\MkQkQPUFDӎz@؈P d[ & [eme[ '8<< <[iR[[rY[z[8}[[/d0[Ì[w*[%[5&[&[b'['l[v:[:ra:rr:rp {L}[{L}r\N[vQt vQt[{Qv@[/d[e~W e~X  g Nq[Iq Iq [Iq rr[r/dEyL[zr}}}}&}}'}}(}<}~v<}}<}+<}T<[/d@[}} }}<}؁<}} }؁ W^<M^v M^v<M^{<M^y< L"<[[[ '8<< <[iR[[rY[z[8}[[/d0[Ì[w*[%[5&[&[b'['l[v:[:ra:rr:rp {L}[{L}r\N[vQt vQt[PUFDӏzA؈P xQ o{` %d %d%d %d %f  %f 6 6 6a}""""`"Z^z2xQ cTcT2DcT2DkQXrZr9r9roLW9roLWkQ9roL@[9roL@[kQ9roL@[^;r;r2D ;r2DkQ!;r_";r_kQ#;r_$Gr%Gr{ &Gr{ kQ'Gr| (Gr| kQ)Gry *Gry kQ+Jr,Jr -Jr kQ.Pr/sm 0s1s2D2s2DkQ3s_4s_kQ5s_6s7st:8st:kQ9s<:s<kQ;s<<sy =sy kQ>sjze;?sjze;kQ@sAs Bs kQCs kQDsEsFwD GzzQ@ H}/S@` I}eTy %f 6 6 6a}""""`"Z^z2xQ cTcT2DcT2DkQXrZr9r9roLW9roLWkQ9roL@[9roL@[kQ9roL@[^;r;r2D ;r2DkQ!;r_";r_kQPUFDJӐzB؈PKL; 3MF 3Nt 3O E,dP 3Q 8?TR 8""S 3T) 3Ue3VKW3X3Y{L3Z3[(9 \43]5R?T^63_3`Z3a3b#3cX3d3e3f3g%?Th%Ǝ?Ti0?Tj2d3kzl0[mÌ[n3o#3p*3qm+rm+3s%3t &3u4&3v5&3w&3x&3yb'3zx'3{'3|'<}'3~2dn2dxd4383v:3y:3I33E3GK3bK?T{L3 N3 N?T?T\N3qQ3Q3KS3S3cT3X3X3XYM3XgM3Xw3Xx3X3XZ3!X3\X3X3Y3t^3/d3wkQ?w~@z AYz~Bz;}l^Cz;}r^D;}Fy[E}kQF}^G}'kQH}kQI}~J}}Ku~~L~M~Z N>O>kQP>^Q9,~R9S9kQT9^U9%V9%kQW9%^X9%yY9UZ9UkQ[9U^\9_M]9_MkQ^9_M^_9^`9^kQa9^^b9_c9_kQd9_^e9sf9s'g9s^h9sMi9s_j9s_'k9s_^l9sm9s'n9s^opkQq^r|~skQtlkQul^vl~wxxxkQyx^zW!^{W!~|<}<~HqHq'kQ~ؙؙkQؙ^ؙAAkQA^AkQ^>kQP>^Q9,~R9S9kQT9^U9%V9%kQW9%^X9%yY9UZ9UkQ[9U^\9_M]9_MkQ^9_M^_9^`9^kQa9^^b9_c9_kQd9_^e9sf9s'g9s^h9sMi9s_PUFDӒzD؈P*}  K  `$ <<* z_M (z_M  #tQK #S@ ' _M,& _M _M & _M _ _Mx _M , _Mp _M* _Me z_MX  _M' _M: _M:e _M: : _M: _MR, _MS _Mu~@ _Ml _M9@Q _M9@ _M p gMF+ _X K _X_M _Xy a K dƅdƅ(zf-W f-Z f9/p f@@Q Tg p Zg, /Zg, wQHX xp y  y* y' } }} u~* v` =ysz=|s !z=sL;z=s!z=s`z=sdz=s;zl  pL  s^  s b,: <* z_M (z_M  #tQK #S@ ' _M,& _M _M & _M _ _Mx _M , _Mp _M* _Me z_MX  _M' _M: _M:e _M: : _M: _MR, _MS _Mu~@ _Ml _M9@Q _M9@ _M p PUFDӓzE؈PkQ^ d_; 9t t 3t kQt ^t t kQ < T K' }kQ,z ,::':-*_-m+_%:dkQ(@**kQ*^*qH'B\}kQB\}^<a^'AAkQAxkQAv'@kQ{Q UQUQkQU(UU(UkQU(U^U(UXK[##kQ#^#y##p #p_ 5&S 5&S' 5&S^ ''<1'['''''3'*y} ((kQ(^(22XM8Ԁt:( ':{Q KkQ{L{Q {L}kQ {L!{L"{LkQ#{L^${Lr%YMkQ&YM:kQ'\N(\NkQ)kQ~*{Q} +{Q}v:,{Q}' -S@.Sx}kQ/iTR'0ZR'1/d2/dkQ3/d^4/d)!y 5e~ _6e xm+7e x_8kfkQ9kf@8kQ:q[;GwgkQ<Oy_kQ=Ryf >y@kQ?kz @}wA}wkQB}w^C}}D}}'E}}RFu~wGu~wkQHu~w^Iu~wJ@QkQK"SL4L"kQMǃ<Ną{Q O̅u:P̅u:'Q̅u:^R̅u:S̅u: T8_UfVfkQWf^XfE 2XM8Ԁt:( ':{Q KkQ{L{Q {L}kQ {L!{L"{LkQ#{L^${Lr%YMkQ&YM:kQ'\N(\NkQ)kQ~*{Q} +{Q}v:,{Q}' -S@.Sx}kQ/iTR'0ZR'1/d2/dkQ3/d^PUFDYӔzF؈PZv:kQ[v:^\v:l^]v:r^v:_v:kQ`v:^av:l kQbv:l ^cv:kQdv:^ev:l^fv:](kQgv:](^hv::kQiv::^jv:kQkv:uQkQlv:uQ^mv:YkQnv:Y^ov:ekQpv:e^qv:fkQrv:f^sv:.gkQtv:.g^uv:LgkQvv:Lg^wv:[ql^xv:[q~yv:ykQzv:y^{v:}kQ|v:}^}v:~~v:~v:~Baq[;GwgkQ<Oy_kQ=Ryf >y@kQ?kz @}wA}wkQB}w^C}}D}}'E}}RFu~wGu~wkQHu~w^Iu~wJ@QkQK"SL4L"kQMǃ<Ną{Q O̅u:P̅u:'Q̅u:^R̅u:S̅u: PUFDӕzG؈Ps'; 9'UUkQ U^UU'&'(L'' z'( 'X3XKXK[XKkQXK^XKrXKSXxs[Xxsr]'!''|Q',hykQ2d'k3#G 8}kQ:&'t;akQN`,'N`\g'a&'ue@kefS'IqIq Iq 'Lq0 'w'y['y|e'9a_XkQ`;kQt}kQ'r,4&''sYkQxQl^~v:fkQrv:f^sv:.gkQtv:.g^uv:LgkQvv:Lg^wv:[ql^xv:[q~yv:ykQPUFDӶzH؈Pezeznez'eze'|Q&Z}&Z}'&Z}'YY[Y'Yzz[z'z'|Q[('kQkQ8}[8}Ԁؙ'A'k<k'k Nm+[xLqVxLqVKSY`ZSlZSlZSl ZSl [Sj[Sj^[SjcTY`cTY`kQfTKVfTKVrTlrTl'rTlrTl rTl 'rTl sTjsTj'sTj^sTjtTL"tTL"'tTL"Iq r3rvLrvLrvLkQrvL^rvLrvLwt^VwaV}3}}@}@kQ[kQE dz(Y[Y'Yzz[z'z'|Q[('kQkQ8}[8}Ԁؙ'A'k<k'k Nm+[xLqVxLqVPUFDӷzI؈P'-F'-FkQ5R 5RkQ 2+2 2+2kQ Q QkQTYeTYekQ'Y[Y'Yzz[z'z'|Q[('kQkQ8}[8}Ԁؙ'A'k<k'k Nm+[xLqVxLqVPUFDӸzJ؈P} }a<4}} }<}<}k } }<}[}@}a}4  }4<!}4a"}a[#<$&ǃ<%E &k '(kQ)^*ERkQ+R}} ,R}}-R}}<.R}}_M/R}}kQ0R}}^1R}}2S@3fQ(}<J؈[Sj^[SjcTY`cTY`kQfTKVfTKVrTlrTl'rTlrTl rTl 'rTl sTjsTj'sTj^sTjtTL"tTL"'tTL"Iq r3rvLrvLrvLkQrvL^rvLPUFD4ӹzK؈P5t 6t kQ7t ^8%kQ9%^:;kQ<^=>'?'kQ@'vQA'^Bw*kQCw*^D%kQE%~F&G&kQH&^I&J&kQK&^L&8"M&8"*N&8"nO&8"[P&8"t:Q&8"kQR&8"^S&L"ET&MkQU&M^VQ(+WQ(+kQXQ(+^Y,fkQZ,f^[d4\d43]d4kQ^{L}kQ_S@`Kq5apaKq5apkQbKq5ap^cQqdQqkQey@kQftgtkQh8_ijkQk^ERkQ+R}} ,R}}-R}}<.R}}_M/R}}kQ0R}}^1R}}2S@PUFDlӺzL؈PmxnxkQox^pEqrkQsdt,ykQu,zkQv,z^wd4@kQxd4@^yGExKzGExKkQ{GExK^|GEKE}GEKkQ~GEK^jL_S@__~ww'w^ww'w^"SR}}^1R}}2S@PUFDӻzM؈PykQykQ! kQW&%kQ, ',J',JkQt:#kQE;K.kQqQ3qQ%qQ%x'qQ%'qQ%yqQ%qQKqQK[qQKx'qQKx'qQK'qQK(qQK2qQK^qQKqQ4KKqQ4KKqQKpqQjL_qQ N$ qQ%N[qQxqQx'qQxqQZqQZ'qQZTkQkf x'kf (kf Wkf Wkf W'kf WvkQy: }}qQWkQkQl llx'&J&kQK&^L&8"M&8"*N&8"nO&8"[P&8"t:Q&8"kQR&8"^S&L"ET&MkQPUFDӼzN؈P%kQ%E %~qQZ'qQZTkQkf x'kf (kf Wkf Wkf W'kf WvkQy: }}qQWkQkQl llx'&J&kQK&^L&8"M&8"*N&8"nO&8"[P&8"t:Q&8"kQR&8"^S&L"ET&MkQPUFDz㈪Py'dy':kQIq Iq rqQZTkQkf x'kf (kf Wkf Wkf W'kf WvkQy: }}qQWkQkQl llx'&J&kQK&^L&8"M&8"*N&8"nO&8"[P&8"t:Q&8"kQR&8"^S&L"ET&MkQPUFDz㈪PgfKkQgf6K gf6K (gfMIq Iq rkf x'kf (kf Wkf Wkf W'kf WvkQy: }}qQWkQkQl llx'&J&kQK&^L&8"M&8"*N&8"nO&8"[P&8"t:Q&8"kQR&8"^S&L"ET&MkQPUFDz!㈪P LrYJ!"rL^^prIq w}Z rIq rkf x'kf (kf Wkf Wkf W'kf WvkQy: }}qQWkQkQl llx'&J&kQK&^L&8"M&8"*N&8"nO&8"[P&8"t:Q&8"kQR&8"^S&L"ET&MkQPUFDz"㈪P ( ( ^(9(X!;X!;[X!;s:X!;l^X!;rX!;sX!;(l^X!qQW(X!iK(u!5U(&4(&25(y:i~K(jLkQkQxQjLkQS*(t^X!eǜ@Q(f(Iq Iq r xf(M`(&8"t:Q&8"kQR&8"^S&L"ET&MkQPUFDzP㈪P4EԀ kQ ~8YkQtkQt~> > 3> kQ> ~> > }}/[/ry:}rE3E;dEE&@ԀxekQkQIq Iq Iq >  Iq E Iq    u~  u~(  u~~ $qkQ$s~0HqkQ3HkQ4@Ԁ4`kQ}xxB r,JkQt:#kQE;K.kQqQ3qQ%qQ%x'qQ%'qQ%yqQ%qQKqQK[qQKx'qQKx'qQK'qQK(qQK2qQK^qQKqQ4KKqQ4KKqQKpqQjL_qQ N$ qQ%N[qQxPUFDfz8鈪PiIq ; vkQ &E  &fkQ{8'kQ_,d},d} :dwkQ!:dws":dwkQ#s?T$s?TkQ%xs^&xs`'s(xZ*)xZkQ*xZ`+,3-_M.kQ/qQ0_1,d2r345kQ6E 7d8d9kQ:kQ;<""kQ= &kQ>"&kQ?'kQ@'kQA2kQB:kQC:_DEkQEbKFWkQGW;zQHW;^IE`kQJ,dkQK:dkQLkfkQMfkQNskQOJwkQPwkQQxkQRNykQS zkQT\}kQUkQVlkQWkQXkQ; vkQ &E  &fkQ{8'kQ_,d},d} :dwkQ!:dws":dwkQ#s?T$s?TkQ%xs^&xs`'s(xZ*)xZkQ*xZ`+,3-_M.kQ/qQ0_1,d2r345kQ6E 7dPUFDYhz:鈪PZiIq [; vkQ\zkQ]z_^z_z,`zkQaz""kQbz"&kQcz'kQdz2kQez3kQfz:kQgzWkQhzE`kQiz:dkQjzfkQkz zkQlz\}kQmz~nzlkQozZkQp &@8q &@8kQr &E s & kQt &fkQu:dwkQv:dwkQw:dwaTxs?Tys?TkQPUFDziz;鈪P{iIq | kQ} xQ~ _ kQ E  kQ kQ kQ ""kQ "&kQ 'kQ 3kQ :kQ :kQ EkQ E,d RkQ E`kQ :dkQ fkQ Jw N JwkQ x N xkQ NykQ zkQ \}kQ ~ ~ lkQ Z N ZkQE,d[Q zvkQ"&kQ?'kQ@'kQA2kQB:kQC:_DEkQEbKFWkQGW;zQHW;^IE`kQJ,dkQK:dkQLkfkQMfkQNskQOJwkQPwkQQxkQRNykQS zkQT\}kQUkQVlkQWkQPUFD2zd鈪PxXfsIq ^tԀ^tԀJwz'kQ@'kQA2kQB:kQC:_DEkQEbKFWkQGW;zQHW;^IE`kQJ,dkQK:dkQLkfkQMfkQNskQOJwkQPwkQQxkQRNykQS zkQT\}kQUkQVlkQWkQPUFDӶzHꈪPIq Iq rVq%'Vq%(VqH#VqH'VqH(VqH'kQA2kQB:kQC:_DEkQEbKFWkQGW;zQHW;^IE`kQJ,dkQK:dkQLkfkQMfkQNskQOJwkQPwkQQxkQRNykQS zkQT\}kQUkQVlkQWkQPUFDӎz@툪PQKQs[QskQQsyQsQxZQ]kQQ]QkQQoYkQQoYf\M[f\Mf\MIq W;zQHW;^IE`kQJ,dkQK:dkQLkfkQMfkQNskQOJwkQPwkQQxkQRNykQS zkQT\}kQUkQVlkQWkQPUFDzPiIq iIq Ԁ_0\f_X\f_X\f_\f_X\f_X\f_\f_X\f_\f_\ff\Mf\MIq W;zQHW;^IE`kQJ,dkQK:dkQLkfkQMfkQNskQOJwkQPwkQQxkQRNykQS zkQT\}kQUkQVlkQWkQPUFDzPiIqRԀa} a}Ha}a}a}[a}2a}r H28"8"w&$y@H&$y@&$y@&Z(8(8y,,(,d_X8(fv fvmrm;kQmhtIq Xq`w[ys8ys83y+dy+d3 zz;}D(;}Dy;}I(;}G( kQ ""kQ "&kQ 'kQ 3kQ :kQ :kQ EkQ E,d RkQ E`kQ :dkQ fkQ Jw N JwkQ x N xkQ NykQ zkQ \}kQ ~ ~ lkQ Z NPUFDzPiIq  .@er2.@erQ2pr/S/%/S/p%e}r;}G( kQ ""kQ "&kQ 'kQ 3kQ :kQ :kQ EkQ E,d RkQ E`kQ :dkQ fkQ Jw N JwkQ x N xkQ NykQ zkQ \}kQ ~ ~ lkQ Z NPUFDzPiIq  %qlr 2]Zvr 2n r Yqlr 7qr wr;}G( kQ ""kQ "&kQ 'kQ 3kQ :kQ :kQ EkQ E,d RkQ E`kQ :dkQ fkQ Jw N JwkQ x N xkQ NykQ zkQ \}kQ ~ ~ lkQ Z NPUFD z P I* I% Il^ I ICkQ Iii I~ I$ [ I$ r IE % IE N% IE V IE s Ir kQ It % IfkQ IkQ IkQ I%kQ IYkQ IDkQ I8N% I8V I<kQ IkQ IkQ! IkQ" IkQ# IikQ$ IkQ% IN%kQ& IkQ' IkQ( I/"kQ) I0"kQ* I1"kQ+ I""kQ, I+[- I+r. I%kQ/ I&[0 I'kQ1 Ip'[2 I-֘3 I-֘4 I25 I2 6 I2%7 I2(8 I2kQ9 I33: I3kQ; I3r< I== I=[> I=l^? I=@ Iy:kQA I:[B I:rC IKkQD IVkQE IkQkQF IQkQG IS%H IXkQI IcZ%J IcZl^K IcZL I3dkQM IdkQN IekQO Ikf%P Ikfl^Q IkfR Ikf֘S IfkQT IqkQU IKqkQV IrkQW IrkQX IsY Is%Z Isl^[ Is\ Is%] Is%^ IskQ_ Isv` IskQa IskQb IskQc IskQd IskQe IXtkQf IwkQg IwkQh IxkQi IykQj IykQk IykQl I zkQm Id I=l^? I=@ Iy:kQA I:[B I:rC IKkQD IVkQE IkQkQF IQkQPUFDu z!Pv iIq ԀIxkQi IykQj IykQk IykQl I zkQm Id I=l^? I=@ Iy:kQA I:[B I:rC IKkQD IVkQE IkQkQF IQkQPUFDw z"Px y z %{ #IykQl I zkQm Id I=l^? I=@ Iy:kQA I:[B I:rC IKkQD IVkQE IkQkQF IQkQPUFD| z#P} iX:Y~ iIq Ԁ ( {7FzQ Aw :2 Q `  X 5 t:zQ t:y t:_zQ  0! `' xZ ] #`  5a j |K D" D"jL D"kQ D"l^ D" z `" f  z :} f2 L" 8T 2Pd  2Pd# Yp@% dkQ dkQ dDkQ d&kQ d:kQ dxQkQ dRkQ dN`kQ dekQ dtkQ dZkQ r/"kQ r0"kQ r1"kQ r"kQ r""kQ :wr :wr# ;wQ ;w_ ;wp w%: ?wl" @wl @w0! AwX AwZ Dw Dw#` Ew  Ew;; Hw] JwH! JwY Jw,` Kw Kw8 Lw"2 Mwd Mwt~ Ow  Owg OwԀ z2 } }# }̓y }l^ }T` } xK }2d3 }2dy }8% }8l^ }8 }d% } zf% }z }zl^ }z }~ }% }# }03 }0y }3 }we }we2 % wR wJw }R }Jw Ԁ:wr# ;wQ ;w_ ;wp  ^t[? ^tr@ xaA B Epx Ex Ex Ex Ex Ex Ex Ex Ex E8x E8x E`x E`x Ex Ex Ex Ex Ex Ex Ex Ex Ex Ex E@x E@xPUFDC &zPD xE x<F x2G zKH #dI #%kQJ Iq ԀK wxL wM:M u~Ex Ex Ex Ex Ex Ex E8x E8x E`x E`x Ex Ex Ex Ex Ex Ex Ex Ex Ex Ex E@x E@xPHEADHEADHEADHEADHEADHEADHEADHEADHEADHEADHEADHEADHEADHEADHEADHEADHEADHEADHEADHEADPPUFDNNzPPUFDTzP.@[ 19NOV8615282330SEP86124123.4?! 19NOV8615282330SEP86124103d. E?!( 19NOV8615282330SEP86124233 . 4@! 19NOV8615282330SEP86124116g. E d@!( 19NOV8615282330SEP86124250 . 4A! 19NOV8615282330SEP86124106#g. BA!( 19NOV8615282430SEP86124317%'.4B! 19NOV8615282430SEP86124109-j.C B!( 19NOV8615282430SEP86124305 /r.4-! 19NOV8615282430SEP861241139e.E##-!( 19NOV8615282430SEP86124154"#:.23-! 19NOV8615282530SEP861243571F .-!s 19NOV8615282530SEP86124101x.C`( 19NOV8615282530SEP86124134y.C`( 19NOV8615282530SEP86124142.BIq [ 19NOV8615282530SEP86124125.)Y( 19NOV8615282630SEP86124151DHPUFDUzP.L}Ԁ 19NOV8615282612DEC85111926.M F""`( 19NOV8615282610DEC85175111.OE,KkQ 19NOV8615282610DEC85175212.O ,s( 19NOV8615282610DEC85175121  .L\K.kQ 19NOV8615282710DEC85175225.OJkfkQ 19NOV8615282710DEC85175242.Nkz( 19NOV8615282710DEC85175126;&. GIq  19NOV8615282715APR861627569y .!@q 19NOV8615282712DEC85101618."L@q[ 19NOV8615282812DEC85134037.#M--lq( 19NOV8615282812DEC85133943,.$[\q 19NOV8615282812DEC8513441217NOV58Z k.%. }}q 19NOV8615282811DEC85134049 fc PUFD&nQzP.'K2iIq 19NOV8615282814OCT86094016rī.(` 19NOV8615282914OCT86093254uu;B.)!!b 19NOV8615282914OCT86100740mm m \.*99tq8^ 19NOV8615282914OCT86094938 8 .+uu: %19NOV8615282911FEB8614061917NOV58t o.,dJ:p:z 19NOV8615282908OCT8511461617NOV58< .-xxdL:8^ 19NOV8615282907APR8614100317NOV58w= Vz..|dM:Ȗ 19NOV8615283014APR8616121017NOV58 @./dP:M 19NOV8615283004SEP8611040817NOV58.0cc|d[:p 19NOV8615283007APR8613553517NOV58//b/&PUFD1nRzP.2B/ iwp19NOV8615283013NOV86114857k.3E2i %19NOV8615283013NOV86114249.4M$819NOV8615283113NOV86114858c.5+@8[19NOV8615283113NOV86114858.68#19NOV8615283113NOV86114859m.7j&19NOV8615283113NOV86114901^.8FYy19NOV8615283113NOV86114902f.9T19NOV8615283113NOV86114903.:v#19NOV8615283213NOV86114904i.;R19NOV8615283213NOV86114906.<R#19NOV8615283213NOV86114906+.=(KS 19NOV8615283213NOV86125853O.>,;jL19NOV8615283213NOV86114909e.?pS 19NOV8615283313NOV86124009.@& 19NOV8615283313NOV86114910`.A8:( 19NOV8615283313NOV86114911a.B==K 19NOV8615283313NOV86114323}(kQ19NOV8615284515JUN84121333p.p9f})19NOV8615284519NOV84122557t>.qA})kQ19NOV8615284508NOV84122421v^.rE}=K'19NOV8615284512MAR85150644z.s#19NOV8615284626JUN85125833~.twx19NOV8615284626JUN85125835v.uIDDv 19NOV8615284610JUL86083506Cv:.v: 19NOV8615284610JUL86083437۟.wcd# 19NOV8615284710JUL86090951bIPUFDxӟzP.yAE  19NOV8615284729AUG8611484117NOV58 w .z<&/+kQ 19NOV8615284718AUG8616343617NOV58#.{*/+^ 19NOV8615284711JUL8511525917NOV58&.|t`k  19NOV8615284809SEP8517061517NOV58'غ.}!Rt` 19NOV8615284811JUL8514083717NOV58*6.~K t`[ 19NOV8615284811JUL8511530217NOV58+Ų.-"t`kQ 19NOV8615284811JUL8511530317NOV58..*t`^ 19NOV8615284811JUL8511530417NOV582.NTt`r 19NOV8615284811JUL8511530517NOV583i .8a WkQ 19NOV8615284918AUG8616363717NOV585Z.*ta W^ 19NOV8615284911JUL8511530717NOV588.+v _ 19NOV8615284911JUL8511530817NOV589^.!h _ 19NOV8615284911JUL8511530917NOV58:}d.; _kQ 19NOV8615284911JUL8511531017NOV58 ;.* _^ 19NOV8615285011JUL8511531217NOV58H.L X[ 19NOV8615285011JUL8511531417NOV58L.D [sQ  19NOV8615285011JUL8511531517NOV58T.@` [v  19NOV8615285011JUL8511531717NOV58U.9 ""`  19NOV8615285011JUL8511531717NOV58VR.L 8[ 19NOV8615285129AUG8611420917NOV58W%.=8 8R 19NOV8615285111JUL8511534317NOV58S<.@ 8?T 19NOV8615285111JUL8511534517NOV58[F.N 8r 19NOV8615285111JUL8511534817NOV58wå.E  8#w 19NOV8615285111JUL8511540417NOV58..8 Z 8[ 19NOV8615285211JUL8511540617NOV58 7.gZZv 8 N19NOV8615285227AUG8615060417NOV58YCP.U88X 8kQ 19NOV8615285227AUG8614500317NOV587. 8^ 19NOV8615285227AUG8614501917NOV58.C 8[ 19NOV8615285211JUL8511541417NOV58ۚ.U 8kQ 19NOV8615285311JUL8511541617NOV58`. r 8^ 19NOV8615285312MAR8610435817NOV58 r.J 8[ 19NOV8615285311JUL8511543117NOV58~.UJ 8kQ 19NOV8615285312MAR8610142517NOV58ߚ. 8^ 19NOV8615285312MAR8610451817NOV58z=.E 8[ 19NOV8615285411JUL8511545717NOV58.U 8kQ 19NOV8615285411JUL8513104117NOV58ϣ .$$ 8^ 19NOV8615285412MAR8610470017NOV58#s.*%% 8#^ 19NOV8615285411JUL8511560317NOV58$A#.Hf 8[ 19NOV8615285411JUL8511560717NOV58M.UbbZ 8kQ 19NOV8615285511JUL8511560917NOV58a7.  8^ 19NOV8615285512MAR8610495117NOV58$.E vQt  19NOV8615285511JUL8511561917NOV58-..E vQt 19NOV8615285511JUL8511562017NOV58/(.I4 fkQ 19NOV8615285527AUG8613395417NOV581.S( Uq5a  19NOV8615285611JUL8511563017NOV585(.S y:  19NOV8615285611JUL8511563117NOV58=.Ef [  19NOV8615285611JUL8511563217NOV58>.CX  19NOV8615285711JUL8511563417NOV58DTe.An 8 19NOV8615285727AUG8614363717NOV58G(.A` 8 19NOV8615285827AUG8613374217NOV58J.02 yE  19NOV8615285811JUL8511563517NOV58My. yk  19NOV8615285909SEP8517090017NOV58N.6 y  19NOV8615285912JUL8511180217NOV58Q.D ykQ 19NOV8615290011JUL8511563817NOV58S!.*& y^ 19NOV8615290011JUL8511564017NOV58[J.7 y{ 19NOV8615290111JUL8511564117NOV58];.7D y{ 19NOV8615290111JUL8514130117NOV58^."$ yE 19NOV8615290229JAN8511010217NOV58_a. yk  19NOV8615290209SEP8517092117NOV58`./ y  19NOV8615290212JUL8511104317NOV58c.J0 ykQ 19NOV8615290212JUL8511335417NOV58e. y^19NOV8615290312JUL8511380617NOV58tt.7D y{ 19NOV8615290311JUL8514134217NOV58v." "X 19NOV8615290311JUL8511564917NOV58w.! "X 19NOV8615290311JUL8511565017NOV58.  "Xl^ 19NOV8615290411JUL8511565117NOV58D=.#{ 19NOV8615290411JUL8511565217NOV58{Q.{ 19NOV8615290411JUL8511565317NOV58|W.P,{, 19NOV8615290411JUL8511565517NOV58}~].#{ 19NOV8615290511JUL8511565717NOV58k.@MM{[ 19NOV8615290511JUL8511565817NOV58L.z h{y 19NOV8615290511JUL8511570617NOV58 .B{( 19NOV8615290511JUL8512003517NOV58i._ {"" N 19NOV8615290628AUG8617513117NOV58 :y.H{""kQ 19NOV8615290628AUG8617455517NOV58.B b{""^ 19NOV8615290628AUG8617513117NOV58 .4X{""Z[ 19NOV8615290629AUG8611414517NOV58v.}J{""Z/d 19NOV8615290711JUL8511571217NOV58A.&B{: 19NOV8615290711JUL8511571517NOV58 f.'H{: 19NOV8615290811JUL8511571617NOV58 o.{\MkQ 19NOV8615290811JUL8514070017NOV58 .ID{Zg 19NOV8615290911JUL8511571817NOV58 o.I{Zg 19NOV8615290911JUL8511571917NOV58" .@AA{Zg[ 19NOV8615291011JUL8511585517NOV58@$ J .z{Zgy 19NOV8615291011JUL8511572017NOV58e ~,.-{Uq 19NOV8615291111JUL8511572617NOV58m e.;{Uq 19NOV8615291111JUL8511572717NOV58n N.RK  19NOV8615291211JUL8511572817NOV58o $.B[  19NOV8615291211JUL8511573317NOV58v W.*^ 19NOV8615291311JUL8511573617NOV58w .Cz kQ 19NOV8615291311JUL8511573417NOV58x @.H ^ 19NOV8615291312MAR8610505417NOV58{ .02\ E  19NOV8615291411JUL8511573817NOV58| k.\ k  19NOV8615291409SEP8517093917NOV58} Մ.G<\ [ 19NOV8615291511JUL8511573917NOV58 .G\ kQ 19NOV8615291511JUL8511574017NOV58 .*\ ^ 19NOV8615291511JUL8511574217NOV58 M.$T\ { 19NOV8615291611JUL8514091217NOV58 .G8[ 19NOV8615291611JUL8511574317NOV58 5.V8r 19NOV8615291611JUL8511574517NOV58 N.G }kQ 19NOV8615291711JUL8511574617NOV58 +.36zE  19NOV8615291829AUG8611080617NOV58 q.zk  19NOV8615291829AUG8611081017NOV58 n.6|z  19NOV8615291929AUG8611081417NOV58 pt.8Hz  19NOV8615291929AUG8611081717NOV58 Sx.$Zz 19NOV8615292029AUG8611082117NOV58 Zy.Cz[ 19NOV8615292029AUG8611082317NOV58 X.CzkQ 19NOV8615292129AUG8611082617NOV58 z.*z^ 19NOV8615292129AUG8611083217NOV58 .!"X  19NOV8615292211JUL8511575417NOV58 .$"X 19NOV8615292311JUL8511575517NOV58 T.A"X' 19NOV8615292311JUL8511575617NOV58 D.( #}  19NOV8615292311JUL8511575817NOV58 Si.36 # E  19NOV8615292411JUL8511575917NOV58 . # k  19NOV8615292409SEP8517072317NOV58 .$ #  19NOV8615292511JUL8511580117NOV58 [.$T #  19NOV8615292511JUL8514093017NOV58 @.CZ # kQ 19NOV8615292611JUL8511580317NOV58 0.* # ^ 19NOV8615292611JUL8511580417NOV58 E;.#kQ 19NOV8615292618AUG8616352217NOV58 g.*#^ 19NOV8615292711JUL8511580517NOV58 R.)#L"  19NOV8615292811JUL8511580617NOV58 .O--(]!.A@X:E  19NOV8615293211JUL8511581917NOV58 .N$X:kQ 19NOV8615293318AUG8616312617NOV58 !V}.X:^ 19NOV8615293312MAR8610510817NOV58!b. X:_E  19NOV8615293411JUL8511583317NOV58#!=c.<|X:_ 19NOV8615293411JUL8511583417NOV58$!Cq.@PPX:_[ 19NOV8615293511JUL8511562217NOV58O&!.$X:_^ 19NOV8615293612MAR8610520017NOV58v!Ǽ.z X:_y 19NOV8615293611JUL8511583617NOV58 |! .=X:#XkQ 19NOV8615293711JUL8512003817NOV58!6.$X:#X^ 19NOV8615293812MAR8610523917NOV58!."X:$C E  19NOV8615293811JUL8511584017NOV58!) .;X:$C kQ 19NOV8615293911JUL8512003917NOV58!T.,:`  19NOV8615293911JUL8511584217NOV58!.;n:b_ 19NOV8615294011JUL8511584317NOV58!k.36:4}E  19NOV8615294029AUG8611071617NOV58!I.  Z:4}  19NOV8615294129AUG8611072017NOV58!. $:4} 19NOV8615294129AUG8611072317NOV58!C. J :4}kQ 19NOV8615294229AUG8611072617NOV58 !]E. *:4}^ 19NOV8615294329AUG8611073317NOV58!C. <N:"   19NOV8615294311JUL8511585217NOV58!.L :" [ 19NOV8615294411JUL8511585317NOV58 ! .K?!< 19NOV8615294412JUL8511121217NOV58!S.;x\MkQ 19NOV8615294411JUL8511590317NOV58!S.>0\MkQkQ 19NOV8615294511JUL8511590417NOV58!/.\MkQ"S 19NOV8615294511JUL8511590517NOV58!7.36oME  19NOV8615294511JUL8511590617NOV58!1.oMk  19NOV8615294609SEP8517074017NOV58!l.oM  19NOV8615294609SEP8517113517NOV58!.$ToM 19NOV8615294711JUL8514093917NOV58!ϻ.6oMkQ 19NOV8615294711JUL8511591017NOV58!.*BoM^ 19NOV8615294811JUL8511591117NOV58! .?xQ zkQ 19NOV8615294911JUL8511591217NOV58![].|Q3 _ 19NOV8615294911JUL8511591317NOV58!@.F?T( 19NOV8615295011JUL8511591717NOV58!Z.9?Tp!  19NOV8615295011JUL8511591817NOV58!o.Ldkf [ 19NOV8615295119SEP8610111417NOV58!q.K*Iq  19NOV8615295203SEP8618123417NOV58! PUFDӠzP. 0'-F19NOV8615295326JUL8216044517NOV58!\.!11'-FkQ 19NOV8615295309JUN8613514917NOV580!."45R19NOV8615295423AUG8216360017NOV58+"0.# x5RkQ19NOV8615295409FEB8414005917NOV58 ,".$42+2 19NOV8615295426OCT8418061317NOV589".%Q 2+2kQ 19NOV8615295503SEP8617082817NOV58 :"/.&.Q19NOV8615295509FEB8415091217NOV58D"ʗ.'z nQkQ 19NOV8615295618JUL8613183817NOV58 E"1.(0TYe19NOV8615295613OCT8214545617NOV58Q"N.)33TYekQ 19NOV8615295730MAY8615150717NOV582R"ؔ.*619NOV8615295717DEC8016335217NOV58".+@\'19NOV8615295828JUL8310083317NOV58"7PUFD,ӎz@ˆP.-@@iIq [19NOV8615295803OCT8608374217NOV58"..@MiIq Ԁ19NOV8615295803OCT8608240617NOV58"i./@L;dv[19NOV8615295802OCT8613463917NOV58"]L.0@>;dv(19NOV8615295802OCT8610273917NOV58"!Y.1@;dv^19NOV8615295802OCT8611035517NOV58"b.2@12;dv19NOV8615295902OCT8611034717NOV580" .3@dJw~19NOV8615295902OCT8610184917NOV58"G.4@@Jwd~19NOV8615295902OCT8610184117NOV58",R.5@,Jw:19NOV8615300002OCT8610284217NOV58" .6@OJw:[19NOV8615300002OCT8613593317NOV58"V.7@GwwNJw:(19NOV8615300002OCT8611274817NOV58v".8@Q;;Jw:319NOV8615300002OCT8610182617NOV58:P#m.9@wwJw:^19NOV8615300102OCT8610122617NOV58v#}.:@^_Jw:19NOV8615300102OCT8610123717NOV58]$.;@PCCZJw:Ԁ19NOV8615300102OCT8610180217NOV58B`$.<@klJwY819NOV8615300202OCT8611041317NOV58j$S=PUFD=ӏzAˆP.>A"&@Jw19NOV8615300202OCT8609555817NOV58%[.?A8vQ,Jw19NOV8615300302OCT8609582717NOV58%N.@A{Q}Jw19NOV8615300302OCT8609554917NOV58%.AA4mJw19NOV8615300402OCT8609555417NOV58%9.BALDveJw19NOV8615300402OCT8609554717NOV58%y.CA(5xeJw19NOV8615300402OCT8609595117NOV58%Y.DAMrzpJw19NOV8615300502OCT8609560117NOV58%.EAF;}DJw19NOV8615300502OCT8609560317NOV58%-.FAD}@QJw19NOV8615300602OCT8609560517NOV58%.GAIiKJw19NOV8615300602OCT8609555617NOV58!%PUFDHӐzBˆP.IB' Jw19NOV8615300602OCT8610035717NOV58#%.JB46:Jw19NOV8615300602OCT8610040017NOV58$%.KB&@Jw19NOV8615300702OCT8610040217NOV58(%d.LB!(o'fJw19NOV8615300702OCT8610040517NOV58)%sN.MB'+8"Jw19NOV8615300702OCT8610040717NOV58*%v.NBLlK&yJw19NOV8615300702OCT8610040917NOV58+%K.OB/vqQWJw19NOV8615300702OCT8610041217NOV58-%f.PB4ff:Jw19NOV8615300802OCT8610041517NOV58/%b.QB)RfS@Jw19NOV8615300802OCT8610041717NOV581%m.RB4fZJw19NOV8615300802OCT8610044617NOV582%.SBfZJw19NOV8615300802OCT8610045417NOV585%.TBUq`Jw19NOV8615300802OCT8610051917NOV586%.UB0y@Jw19NOV8615300902OCT8610054117NOV587%/.VBz}Jw19NOV8615300902OCT8610071417NOV58:% .WB/v p:Jw19NOV8615300902OCT8610071717NOV58<%c.XB/v p:Jw19NOV8615300902OCT8610071917NOV58>%f.YB4:Jw19NOV8615301002OCT8610073417NOV58@%^PUFDZӮzĈP.[P 0 19NOV8615301011JAN8508010817NOV58D%#.\P r 0  19NOV8615301111JAN8508304217NOV58 H%F|.]QQ" K@8 19NOV8615301111JAN8508374717NOV58PR%U1.^MM Kp 19NOV8615301111JAN8508375717NOV58L%g._NVI  19NOV8615301211JAN8508425017NOV58%&{o.`NccI  19NOV8615301211JAN8508433617NOV58'b(}>.aN  ~I  19NOV8615301211JAN8508352317NOV58(){.bNqqI  19NOV8615301311JAN8508355117NOV58)p*M.cN22I  19NOV8615301311JAN8508363117NOV58k+1k,.dNFI  19NOV8615301411JAN8508453717NOV58ѝ,.eN~I  19NOV8615301411JAN8508460017NOV58o-.fNFI  19NOV8615301411JAN8508462317NOV58=..gNI  19NOV8615301511JAN8508462717NOV58Y. Y/.hNI  19NOV8615301511JAN8508465617NOV58g/?.iN  I  19NOV8615301611JAN8508472317NOV58E0E1.jNI  19NOV8615301611JAN8508475217NOV58N1#.kNI  19NOV8615301611JAN8508482117NOV58J2.lN""JI  19NOV8615301711JAN8508485117NOV5843!44<.mNUUI  19NOV8615301711JAN8508492417NOV58TV45.nNxxI  19NOV8615301811JAN8508493417NOV58w4;.oN??JI  19NOV8615301811JAN8508494817NOV58>#55.pNHI  19NOV8615301811JAN8508495617NOV58b5.qNI  19NOV8615301911JAN8508502817NOV58-6-7.rNI  19NOV8615301911JAN8508512117NOV58 8}i.sN<<I  19NOV8615301911JAN8508514017NOV58;85.tNI  19NOV8615301911JAN8508514717NOV588{.uNI  19NOV8615302011JAN8508520017NOV589:o.vN6I  19NOV8615302011JAN8508524517NOV58:Ҩ;.wN''HI  19NOV8615302011JAN8508533517NOV58&{<.xNI  19NOV8615302111JAN8508534217NOV58<=.yNFI  19NOV8615302111JAN8508543017NOV58N> G.zN99I  19NOV8615302211JAN8508544517NOV588>.{NI  19NOV8615302211JAN8508545217NOV58 ?.|N..J  19NOV8615302311JAN8508545517NOV58-!?.}NJ  19NOV8615302311JAN8508550117NOV58O?.~NJ  19NOV8615302311JAN8508550317NOV58 W?.N##> J  19NOV8615302411JAN8508550617NOV58"e?.N J  19NOV8615302411JAN8508551117NOV58?F.NB J  19NOV8615302511JAN8508551417NOV58?.N J  19NOV8615302511JAN8508551617NOV58?.N  J  19NOV8615302611JAN8508551917NOV58 ?.NEEJ  19NOV8615302611JAN8508552217NOV58D?.NTJ  19NOV8615302711JAN8508553017NOV58 @9.N2.J  19NOV8615302711JAN8508554117NOV58 @ AT.N/J  19NOV8615302711JAN8508561017NOV58'As.N0J  19NOV8615302811JAN8508563117NOV58AB,.NJ1J  19NOV8615302811JAN8508570117NOV58B.Nj2J  19NOV8615302811JAN8508573417NOV58CD(.Nkk"3J  19NOV8615302911JAN8508580417NOV58jD>.Nhh4J  19NOV8615302911JAN8508581617NOV58g6E>.NDD5J  19NOV8615302911JAN8508582817NOV58CE.N##6J  19NOV8615303011JAN8508583717NOV58"E.N##87J  19NOV8615303011JAN8508584217NOV58"F`.NVJ  19NOV8615303011JAN8508584617NOV58(FK.N\WJ  19NOV8615303111JAN8508585017NOV58AF.NXJ  19NOV8615303111JAN8508585317NOV58XF.N YJ  19NOV8615303111JAN8508585717NOV58 mF.NZJ  19NOV8615303211JAN8508585917NOV58yFo.N[J  19NOV8615303211JAN8508590317NOV58F.N \J  19NOV8615303311JAN8508590617NOV58 F.M]J  19NOV8615303311JAN8508590917NOV58F.NOO^J  19NOV8615303411JAN8508591017NOV58NFL#.NV_J  19NOV8615303411JAN8508592017NOV58G.N~J  19NOV8615303411JAN8508592317NOV58!GB.NJ  19NOV8615303511JAN8508592817NOV58AG-.NJ  19NOV8615303511JAN8508593117NOV58TG.NJ  19NOV8615303611JAN8508593517NOV58oGO.MJ  19NOV8615303711JAN8508593617NOV58sG.NJ  19NOV8615303711JAN8508593817NOV58wG.NJ  19NOV8615303811JAN8508021317NOV58GT.<Z,@8  19NOV8615303811JAN8508303617NOV58H.O,K  19NOV8615303811JAN8508304717NOV58H.J,K[ 19NOV8615303911JAN8508372017NOV58H.E,p  19NOV8615303911JAN8508304617NOV58H.J(S[  19NOV8615303911JAN8508304017NOV58 HB.<fZ  19NOV8615304011JAN8508303817NOV58 H=.;fZ  19NOV8615304011JAN8508303917NOV58H>.LTIq [ 19NOV8615304111JAN8508371917NOV58H .PLwq 19NOV8615304111JAN8508011017NOV58Hle.N wq  19NOV8615304111JAN8508304417NOV58 HkPUFD8;zʈP.GiIq  19NOV8615304213MAY86165752"H+ .G: 19NOV8615304305SEP86173047%H.7p% 19NOV8615304305SEP86173048&H~.E8zQ 19NOV8615304322SEP86131036'HK..  Ԁ 19NOV8615304429SEP86101918 DH~. 8,K VNkQ19NOV8615304427JAN86154647PHh.XYYF%fy 19NOV8615304521JUL86162749XTH!.}__evy19NOV8615304531OCT86130149^H.P00"&@y19NOV8615304530JUN86112251/ IM.O99'_~y19NOV8615304629AUG861550378>TIqv 19NOV8615305125MAR86163628=K.LFw`"Ԁ19NOV8615305226SEP86130125L&h. @x !^ 19NOV8615305221MAY86130433 L4.R@x !y 19NOV8615305321MAY86130414$L.P}wy 19NOV8615305330JUN86091821CLN.:JP}kQ19NOV8615305413NOV86111050YL.O8$qd% 19NOV8615305409SEP86133047!H .PEE@$q"zQ19NOV8615305522SEP86131038D`Ly.K$sԀ 19NOV8615305515SEP86174609L_.Q||Z y 19NOV8615305630JUN86100604{LH.Peev]z!' 19NOV8615305608SEP86160506d2M.\ With the help of a 'graphic-microscope' the complex-plane can& be scanned for nice looking pictures. APFEL.DIR 34 Files 658 Blocks ,APFEL1/FP=APFEL1,CHAOS4,YESNO,[1,5]PROF77/LB/;;CLUSTER SCHEME :;$CLSTR=PROF77,CGLFPU,POSRES,RMSRES:RO; ;TASK NAME :;TASK = APFEL1;4;LENGTH OF LUN-TABLE;CHOOSE HIGHEST LUN IN DECIMAL :; UNITS = 20 ;;GLOBAL DEFINITIONS IN OCTAL :;!GBLDEF = TT$EFN:1 ;TERMINAL I/O.!GBLDEF = MS$LUN:10 ;MESSAGE LUN.GBLDEF = WC$LUN:0GBLDEF = HL$LUN:0GBLDEF = MN$LUN:0!GBLDEF = TT$LUN:5 ;TERMINAL LUN.GBLDEF = G$LUN:7 ;GRAPHIC LUN.GBLDEF = MB$LUN:0;;ASSIGNMENTS IN DECIMAL :;ASG = TI:5 ;DEFINE TT$LUN.ASG = TT2:12 ;FOR ODT.$ASG = TT1:7 ;USE 7 FOR GRAPHIC.;// PROGRAM APFEL1C 20.11.85 WI/1C MANDELBROT-GRAPHIC.CC FUNCTIONAL DESCRIPTION :C:C The color of an array of points in the complex plane is 9C evaluated by a special algorithm.The result is drawn as:C a picture on the screen with the aid of the CORE-Graphic;C System.The Picture-Resolution can be selected from 1...40C by a special parameter,e.g :C,C Resolution = 1 -> X : Y = 18 : 12 ,C Resolution = 10 -> X : Y = 180 : 120 ,C Resolution = 40 -> X : Y = 720 : 480 C?C The 'color' of the Start-Value SX/SY in the Complex-Plane is >C transformed to the origin of a window with the relative size@C of SX+DX / SY+DY in the World-Coordinate-System.The dimensions:C of this window are given by the selected resolution.The ?C window's origin is located at the lower-left corner.A special:C algorithm is applied to compute the color of every point@C (see explanation in subroutine CHAOS4) in the selected part of=C the Complex-Plane.With the help of the Cursor-Keys you can =C select a region of interest.That region can be magnified byAC factor 0.001...1000.The picture is saved in a Graphic-Metafile.C INCLUDE 'LB:[1,5]CGL.FTN'C REAL*4 SX,SY,DX,DY2 INTEGER*2 SAVE(24),ORIGIN,IFCO,N,IX,IY,FACT,NX,NY$ INTEGER*2 WHITE(3),SELECT,STATUS(2)( REAL*4 VXM,VXP,VYM,VYP,WXM,WXP,WYM,WYP REAL*4 LWX,LWY,LWXO,LWYO) REAL*4 RSX,RSY,RDX,RDY,DELX,DELY,MAGNIF LOGICAL YES CHARACTER*1 ESC,BEL CHARACTER*10 FILNAM CHARACTER*6 NAMFIL CHARACTER*55 LEC DATA ESC/27/ !ASCII-ESC. DATA BEL/7/ !ASCII-BELL.* DATA FILNAM/' .GID'/ !PICTURE FILE. DATA WHITE/7,7,6/ C DATA LE/'I: X: Y: W: R: F: '/C/71 FORMAT(1H+,A1,'[2J') !DEFINE ERASE SCREEN./72 FORMAT(1H+,A1,'[?6l') !DEFINE CURSOR HOME.=73 FORMAT(1H+,A1,'[24;1H',50X,' To continue,press RESUME ! ')E74 FORMAT(1H+,A1,'[24;1H',' Select region of interest ! ')E76 FORMAT(1H+,A1,A1,'[24;1H',' Use SELECT or Cursor-Keys ! ')E77 FORMAT(1H+,A1,'[24;1H','X:',F10.5,' Y:',F10.5,' DX:',F10.6,' DY:', * F10.6)C IFCO=5 !DIALOG FILECODE.# ORIGIN=0 !ORIGIN : BOTTOM LEFT. VXM=0.0 !SELECT - VXP=1.0 ! - VYM=0.0 ! -  VYP=1.0 !VIEWPORT. IX=18 !BASIC X-POINTS. IY=12 !BASIC Y-POINTS.C%55 WRITE(IFCO,71)ESC !CLEAR SCREEN." WRITE(IFCO,72)ESC !CURSOR HOME.C WRITE(IFCO,100)C100 FORMAT(10X,'Graphical Presentation of the Mandelbrot_Set :',//)C4 TYPE '(1X,A,//)','Graphic-Microscop00  DATADATADATADATADATADATADATADATADATADATAe with Filing !'CC315 WRITE(IFCO,'(1H$,''Select X-Start Position |...10.0| : '')') READ(IFCO,'(F6.2)',ERR=315)SX& IF(SX.LT.-10.0.OR.SX.GT.10.0)GOTO 315CC325 WRITE(IFCO,'(1H$,''Select Y-Start Position |...10.0| : '')') READ(IFCO,'(F6.2)',ERR=325)SY& IF(SY.LT.-10.0.OR.SY.GT.10.0)GOTO 325CC335 WRITE(IFCO,'(1H$,''Select Window-Edge 0...10.0 : '')') READ(IFCO,'(F6.2)',ERR=335)DX$ IF(DX.LT.0.0.OR.DX.GT.10.0)GOTO 335C5 DY=DX*(FLOAT(IY)/FLOAT(IX)) !COMPUTE WINDOW-HEIGHT.CC345 WRITE(IFCO,'(1H$,''Number of planned iterations (I5) : '')') READ(IFCO,'(I5)',ERR=345)NCC365 WRITE(IFCO,'(1H$,''Resolution-Factor (1...40) : '')') READ(IFCO,'(I2)',ERR=365)FACT$ IF(FACT.LT.1.OR.FACT.GT.40)GOTO 365C@ WRITE(IFCO,'(1H$,''Picture Filename,6 characters max. : '')') READ(IFCO,'(A)')NAMFIL FILNAM(1:6)=NAMFILC" WRITE(LE(3:6),'(I4)')N !BUILD -& WRITE(LE(9:15),'(F7.3)')SX !LEGEND -' WRITE(LE(18:24),'(F7.3)')SY !STRING -& WRITE(LE(27:36),'(F10.6)')DX !WITH -) WRITE(LE(39:42),'(I4)')FACT !INTERNAL -& WRITE(LE(46:55),'(A)')FILNAM !WRITE.CC COMPUTE WINDOW DATA :C WXM=SX !COMPUTE - WXP=SX+DX ! - WYM=SY ! - WYP=SY+DY !WINDOW.C RSX=WXM !START - RSY=WYM !POSITION - RDX=WXP-WXM !FOR - RDY=WYP-WYM !MAGNIFICATION.CC INITIALIZE GRAPHIC SYSTEM :C# CALL CGL(GIC) !INITIALIZE_CORE.8 CALL CGL(GIVS,FILNAM,LEN(FILNAM)) !INITIALIZE_VIEW_SUR.8 CALL CGL(GSVS,FILNAM,LEN(FILNAM)) !SELECT_VIEW_SURFACE. CALL CGL(GNF) !NEW_FRAME./ CALL CGL(GSV2,VXM,VXP,VYM,VYP) !SET_VIEWPORT., CALL CGL(GSW,WXM,WXP,WYM,WYP) !SET_WINDOW.$ CALL CGL(GSO,ORIGIN) !SET_ORIGIN.) CALL CGL(GRA2,WXP,WYP) !RECTANGLE_ABS.& CALL CGL(GMA2,WXM,WYM) !MOVE_ABS_2.C* CALL CGL(GICM,SAVE) !INQUIRE_COLOR_MAP.. CALL CGL(GILW,LWXO,LWYO) !INQUIRE_LINEWIDTH.C% LWX=(WXP-WXM)/(IX*FACT) !COMPUTE -) LWY=2.0*(WYP-WYM)/(IY*FACT) !LINEWIDTH.. IF(FACT.GT.20)LWY=LWY*2.0 !DUE TO INTERLACE.C* CALL CGL(GSLW,LWX,-LWY) !SET_LINEWIDTH.CC CHAOS COMPUTATION PART :C NX=FACT*IX !X-POINTS. NY=FACT*IY !Y-POINTS.C6 CALL CHAOS4(NX,NY,SX,SY,DX,DY,N) !EXPLAN. SEE CHAOS4.CC SELECT REGION OF INTEREST :C: CALL CGL(GDVS,FILNAM,LEN(FILNAM)) !DESELECT_VIEW_SURFACE.& WRITE(IFCO,74)ESC !INFORM OPERATOR.+ CALL CGL(GMA2,RSX,RSY) !MOVE_ABSOLUTE_2.C  DELX=RDX/100.0 DELY=RDY/100.0301 CALL GETKEY(STATUS) IF(STATUS(1).EQ.2)THEN IF(STATUS(2).EQ.24)THEN GOTO 302 ELSE IF(STATUS(2).EQ.27)THEN RSY=RSY+DELY CALL CGL(GMA2,RSX,RSY) ELSE IF(STATUS(2).EQ.28)THEN RSX=RSX-DELX CALL CGL(GMA2,RSX,RSY) ELSE IF(STATUS(2).EQ.29)THEN RSY=RSY-DELY CALL CGL(GMA2,RSX,RSY) ELSE IF(STATUS(2).EQ.30)THEN RSX=RSX+DELX CALL CGL(GMA2,RSX,RSY) ELSE GOTO 303 END IF ELSE GOTO 303 END IFC2 WRITE(IFCO,77)ESC,RSX,RSY,RDX,RDY !SHOW POSITION.+ CALL CGL(GMA2,RSX,RSY) !MOVE_ABSOLUTE_2. GOTO 301C*303 WRITE(IFCO,76)BEL,ESC !SEND MESSAGE.+ CALL CGL(GMA2,RSX,RSY) !MOVE_ABSOLUTE_2. GOTO 301CC WRITE LEGEND :C 302 CONTINUE8 CALL CGL(GSVS,FILNAM,LEN(FILNAM)) !SELECT_VIEW_SURFACE.0 CALL CGL(GSCME,7,WHITE) !SET_COLOR_MAP_ENTRY.' CALL CGL(GSWI,7) !SET_WRITING_INDEX.& CALL CGL(GMA2,WXM,WYP) !MOVE_ABS_2.! CALL CGL(GT,LE,LEN(LE)) !TEXT.C* WRITE(IFCO,73)ESC !SEND RESUME MESSAGE. CALL WTRES !WAIT FOR RESUME.C# WRITE(IFCO,71)ESC !CLEAR SCREEN." WRITE(IFCO,72)ESC !CURSOR HOME.CC TERMINATE GRAPHIC SYSTEM :C: CALL CGL(GDVS,FILNAM,LEN(FILNAM)) !DESELECT_VIEW_SURFACE.& CALL CGL(GSCM,SAVE) !SET_COLOR_MAP.* CALL CGL(GSLW,LWXO,LWYO) !SET_LINEWIDTH. CALL CGL(GNF) !NEW_FRAME." CALL CGL(GTC) !TERMINATE_CORE.C6 CALL YESNO(IFCO,YES,27,'You can now stop painting ?') IF(.NOT.YES)THENCB304 WRITE(IFCO,'(1H$,''Select Magnification 0.001...1000.0 : '')')" READ(IFCO,'(F6.1)',ERR=304)MAGNIF0 IF(MAGNIF.LT.0.001.OR.MAGNIF.GT.1000.0)GOTO 304C SX=RSX SY=RSY DX=RDX/MA00   GNIF DY=RDY/MAGNIF GOTO 345C ELSEC CONTINUEC END IFC3 TYPE '(1X,//,1X,A,//)','APFEL1 : See YOU later !'C CALL EXITC END,APFEL2/FP=APFEL2,CHAOS4,YESNO,[1,5]PROF77/LB/;;CLUSTER SCHEME :;$CLSTR=PROF77,CGLFPU,POSRES,RMSRES:RO; ;TASK NAME :;TASK = APFEL2;4;LENGTH OF LUN-TABLE;CHOOSE HIGHEST LUN IN DECIMAL :; UNITS = 20 ;;GLOBAL DEFINITIONS IN OCTAL :;!GBLDEF = TT$EFN:1 ;TERMINAL I/O.!GBLDEF = MS$LUN:10 ;MESSAGE LUN.GBLDEF = WC$LUN:0GBLDEF = HL$LUN:0GBLDEF = MN$LUN:0!GBLDEF = TT$LUN:5 ;TERMINAL LUN.GBLDEF = G$LUN:7 ;GRAPHIC LUN.GBLDEF = MB$LUN:0;;ASSIGNMENTS IN DECIMAL :;ASG = TI:5 ;DEFINE TT$LUN.ASG = TT2:12 ;FOR ODT.$ASG = TT1:7 ;USE 7 FOR GRAPHIC.;// PROGRAM APFEL2C 20.11.85 WI/1C MANDELBROT-GRAPHIC.CC FUNCTIONAL DESCRIPTION :C:C The color of an array of points in the complex plane is 9C evaluated by a special algorithm.The result is drawn as:C a picture on the screen with the aid of the CORE-Graphic;C System.The Picture-Resolution can be selected from 1...40C by a special parameter,e.g :C,C Resolution = 1 -> X : Y = 18 : 12 ,C Resolution = 10 -> X : Y = 180 : 120 ,C Resolution = 40 -> X : Y = 720 : 480 C?C The 'color' of the Start-Value SX/SY in the Complex-Plane is >C transformed to the origin of a window with the relative size@C of SX+DX / SY+DY in the World-Coordinate-System.The dimensions:C of this window are given by the selected resolution.The ?C window's origin is located at the upper-left corner.A special:C algorithm is applied to compute the color of every point@C (see explanation in subroutine CHAOS4) in the selected part of=C the Complex-Plane.With the help of the Cursor-Keys you can =C select a region of interest.That region can be magnified byC factor 0.001...1000.C INCLUDE 'LB:[1,5]CGL.FTN'C REAL*4 SX,SY,DX,DY2 INTEGER*2 SAVE(24),ORIGIN,IFCO,N,IX,IY,FACT,NX,NY INTEGER*2 WHITE(3),STATUS(2)( REAL*4 VXM,VXP,VYM,VYP,WXM,WXP,WYM,WYP REAL*4 LWX,LWY,LWXO,LWYO) REAL*4 RSX,RSY,RDX,RDY,DELX,DELY,MAGNIF LOGICAL YES CHARACTER*1 ESC,BEL CHARACTER*55 LEC DATA ESC/27/ !ASCII-ESC. DATA BEL/7/ !ASCII-BELL. DATA WHITE/7,7,6/ C DATA LE/'I: X: Y: W: R: F: '/C/71 FORMAT(1H+,A1,'[2J') !DEFINE ERASE SCREEN./72 FORMAT(1H+,A1,'[?6l') !DEFINE CURSOR HOME.=73 FORMAT(1H+,A1,'[24;1H',50X,' To continue,press RESUME ! ')E74 FORMAT(1H+,A1,'[24;1H',' Select region of interest ! ')E76 FORMAT(1H+,A1,A1,'[24;1H',' Use SELECT or Cursor-Keys ! ')E77 FORMAT(1H+,A1,'[24;1H','X:',F10.5,' Y:',F10.5,' DX:',F10.6,' DY:', * F10.6)C IFCO=5 !DIALOG FILECODE. ORIGIN=1 !ORIGIN : TOP LEFT. VXM=0.0 !SELECT - VXP=1.0 ! VYM=0.0 !  VYP=1.0 !VIEWPORT. IX=18 !BASIC X-POINTS. IY=12 !BASIC Y-POINTS.C%55 WRITE(IFCO,71)ESC !CLEAR SCREEN." WRITE(IFCO,72)ESC !CURSOR HOME.C WRITE(IFCO,100)C100 FORMAT(10X,'Graphical Presentation of the Mandelbrot_Set :',//)C( TYPE '(1X,A,//)','Graphic-Microscope !'CC315 WRITE(IFCO,'(1H$,''Select X-Start Position |...10.0| : '')') READ(IFCO,'(F6.2)',ERR=315)SX& IF(SX.LT.-10.0.OR.SX.GT.10.0)GO00 DATADATADATADATADATADATADATADATADATADATATO 315CC325 WRITE(IFCO,'(1H$,''Select Y-Start Position |...10.0| : '')') READ(IFCO,'(F6.2)',ERR=325)SY& IF(SY.LT.-10.0.OR.SY.GT.10.0)GOTO 325CC335 WRITE(IFCO,'(1H$,''Select Window-Edge 0...10.0 : '')') READ(IFCO,'(F6.2)',ERR=335)DX$ IF(DX.LT.0.0.OR.DX.GT.10.0)GOTO 335C5 DY=DX*(FLOAT(IY)/FLOAT(IX)) !COMPUTE WINDOW-HEIGHT.CC345 WRITE(IFCO,'(1H$,''Number of planned iterations (I5) : '')') READ(IFCO,'(I5)',ERR=345)NCC365 WRITE(IFCO,'(1H$,''Resolution-Factor (1...40) : '')') READ(IFCO,'(I2)',ERR=365)FACT$ IF(FACT.LT.1.OR.FACT.GT.40)GOTO 365C" WRITE(LE(3:6),'(I4)')N !BUILD -& WRITE(LE(9:15),'(F7.3)')SX !LEGEND -' WRITE(LE(18:24),'(F7.3)')SY !STRING -& WRITE(LE(27:36),'(F10.6)')DX !WITH -) WRITE(LE(39:42),'(I4)')FACT !INTERNAL -& WRITE(LE(46:55),'(A)')FILNAM !WRITE.CC COMPUTE WINDOW DATA :C WXM=SX !COMPUTE - WXP=SX+DX ! WYM=SY ! WYP=SY+DY !WINDOW.C RSX=WXM !START - RSY=WYM !POSITION - RDX=WXP-WXM !FOR - RDY=WYP-WYM !MAGNIFICATION.CC INITIALIZE GRAPHIC SYSTEM :C# CALL CGL(GIC) !INITIALIZE_CORE. CALL CGL(GNF) !NEW_FRAME./ CALL CGL(GSV2,VXM,VXP,VYM,VYP) !SET_VIEWPORT., CALL CGL(GSW,WXM,WXP,WYM,WYP) !SET_WINDOW.$ CALL CGL(GSO,ORIGIN) !SET_ORIGIN.) CALL CGL(GRA2,WXP,WYP) !RECTANGLE_ABS.& CALL CGL(GMA2,WXM,WYM) !MOVE_ABS_2.C* CALL CGL(GICM,SAVE) !INQUIRE_COLOR_MAP.. CALL CGL(GILW,LWXO,LWYO) !INQUIRE_LINEWIDTH.C% LWX=(WXP-WXM)/(IX*FACT) !COMPUTE -) LWY=2.0*(WYP-WYM)/(IY*FACT) !LINEWIDTH.. IF(FACT.GT.20)LWY=LWY*2.0 !DUE TO INTERLACE.C* CALL CGL(GSLW,LWX,-LWY) !SET_LINEWIDTH.CC CHAOS COMPUTATION PART :C NX=FACT*IX !X-POINTS. NY=FACT*IY !Y-POINTS.C6 CALL CHAOS4(NX,NY,SX,SY,DX,DY,N) !EXPLAN. SEE CHAOS4.CC SELECT REGION OF INTEREST :C& WRITE(IFCO,74)ESC !INFORM OPERATOR.+ CALL CGL(GMA2,RSX,RSY) !MOVE_ABSOLUTE_2.C  DELX=RDX/100.0 DELY=RDY/100.0301 CALL GETKEY(STATUS) IF(STATUS(1).EQ.2)THEN IF(STATUS(2).EQ.24)THEN GOTO 302 ELSE IF(STATUS(2).EQ.27)THEN RSY=RSY-DELY CALL CGL(GMA2,RSX,RSY) ELSE IF(STATUS(2).EQ.28)THEN RSX=RSX-DELX CALL CGL(GMA2,RSX,RSY) ELSE IF(STATUS(2).EQ.29)THEN RSY=RSY+DELY CALL CGL(GMA2,RSX,RSY) ELSE IF(STATUS(2).EQ.30)THEN RSX=RSX+DELX CALL CGL(GMA2,RSX,RSY) ELSE GOTO 303 END IF ELSE GOTO 303 END IFC2 WRITE(IFCO,77)ESC,RSX,RSY,RDX,RDY !SHOW POSITION.+ CALL CGL(GMA2,RSX,RSY) !MOVE_ABSOLUTE_2. GOTO 301C*303 WRITE(IFCO,76)BEL,ESC !SEND MESSAGE.+ CALL CGL(GMA2,RSX,RSY) !MOVE_ABSOLUTE_2. GOTO 301CC WRITE LEGEND :C 302 CONTINUE0 CALL CGL(GSCME,7,WHITE) !SET_COLOR_MAP_ENTRY.' CALL CGL(GSWI,7) !SET_WRITING_INDEX.& CALL CGL(GMA2,WXM,WYM) !MOVE_ABS_2.! CALL CGL(GT,LE,LEN(LE)) !TEXT.C* WRITE(IFCO,73)ESC !SEND RESUME MESSAGE. CALL WTRES !WAIT FOR RESUME.C# WRITE(IFCO,71)ESC !CLEAR SCREEN." WRITE(IFCO,72)ESC !CURSOR HOME.CC TERMINATE GRAPHIC SYSTEM :C& CALL CGL(GSCM,SAVE) !SET_COLOR_MAP.* CALL CGL(GSLW,LWXO,LWYO) !SET_LINEWIDTH. CALL CGL(GNF) !NEW_FRAME." CALL CGL(GTC) !TERMINATE_CORE.C6 CALL YESNO(IFCO,YES,27,'You can now stop painting ?') IF(.NOT.YES)THENCB304 WRITE(IFCO,'(1H$,''Select Magnification 0.001...1000.0 : '')')" READ(IFCO,'(F6.1)',ERR=304)MAGNIF0 IF(MAGNIF.LT.0.001.OR.MAGNIF.GT.1000.0)GOTO 304C SX=RSX SY=RSY DX=RDX/MAGNIF DY=RDY/MAGNIF GOTO 345C ELSEC CONTINUEC END IFC3 TYPE '(1X,//,1X,A,//)','APFEL2 : See YOU later !'C CALL EXITC END00 # %,APFEL3/FP=APFEL3,CHAOS3,YESNO,[1,5]PROF77/LB/;;CLUSTER SCHEME :;$CLSTR=PROF77,CGLFPU,POSRES,RMSRES:RO; ;TASK NAME :;TASK = APFEL2;4;LENGTH OF LUN-TABLE;CHOOSE HIGHEST LUN IN DECIMAL :; UNITS = 20 ;;GLOBAL DEFINITIONS IN OCTAL :;!GBLDEF = TT$EFN:1 ;TERMINAL I/O.!GBLDEF = MS$LUN:10 ;MESSAGE LUN.GBLDEF = WC$LUN:0GBLDEF = HL$LUN:0GBLDEF = MN$LUN:0!GBLDEF = TT$LUN:5 ;TERMINAL LUN.GBLDEF = G$LUN:7 ;GRAPHIC LUN.GBLDEF = MB$LUN:0;;ASSIGNMENTS IN DECIMAL :;ASG = TI:5 ;DEFINE TT$LUN.ASG = TT2:12 ;FOR ODT.$ASG = TT1:7 ;USE 7 FOR GRAPHIC.;// PROGRAM APFEL3C 20.11.85 WI/1C MANDELBROT-GRAPHIC.CC FUNCTIONAL DESCRIPTION :C:C The color of an array of points in the complex plane is 9C evaluated by a special algorithm.The result is drawn as:C a picture on the screen with the aid of the CORE-Graphic;C System.The Picture-Resolution can be selected from 1...40C by a special parameter,e.g :C,C Resolution = 1 -> X : Y = 18 : 12 ,C Resolution = 10 -> X : Y = 180 : 120 ,C Resolution = 40 -> X : Y = 720 : 480 C?C The 'color' of the Start-Value SX/SY in the Complex-Plane is >C transformed to the origin of a window with the relative size@C of SX+DX / SY+DY in the World-Coordinate-System.The dimensions:C of this window are given by the selected resolution.The ?C window's origin is located on the upper-left corner.A special:C algorithm is applied to compute the color of every point@C (see explanation in subroutine CHAOS2) in the selected part ofC the Complex-Plane.C INCLUDE 'LB:[1,5]CGL.FTN'C REAL*4 SX,SY,DX,DY2 INTEGER*2 SAVE(24),ORIGIN,IFCO,N,IX,IY,FACT,NX,NY( REAL*4 VXM,VXP,VYM,VYP,WXM,WXP,WYM,WYP REAL*4 LWX,LWY,LWXO,LWYO LOGICAL YES CHARACTER*1 ESCC DATA ESC/27/ !ASCII-ESC.C/71 FORMAT(1H$,A1,'[2J') !DEFINE ERASE SCREEN./72 FORMAT(1H$,A1,'[?6l') !DEFINE CURSOR HOME.873 FORMAT(1H$,A1,'[24;1H',' To continue,press RESUME !')C IFCO=5 !DIALOG-FILECODE.# ORIGIN=0 !ORIGIN : BOTTOM LEFT. VXM=0.0 !SELECT - VXP=1.0 ! VYM=0.0 !  VYP=1.0 !VIEWPORT. IX=18 !BASIC X-POINTS. IY=12 !BASIC Y-POINTS.C%55 WRITE(IFCO,71)ESC !CLEAR SCREEN." WRITE(IFCO,72)ESC !CURSOR HOME.C WRITE(IFCO,100)B100 FORMAT(1X,'Graphical Presentation of the Mandelbrot_Set :',//)CA5 WRITE(IFCO,'(1H$,''Number of planned iterations (I5) : '')') READ(IFCO,'(I5)',ERR=5)NCB15 WRITE(IFCO,'(1H$,''Select X-Start Position |...10.0| : '')') READ(IFCO,'(F5.0)',ERR=15)SX% IF(SX.LT.-10.0.OR.SX.GT.10.0)GOTO 15CB25 WRITE(IFCO,'(1H$,''Select Y-Start Position |...10.0| : '')') READ(IFCO,'(F5.0)',ERR=25)SY% IF(SY.LT.-10.0.OR.SY.GT.10.0)GOTO 25CB35 WRITE(IFCO,'(1H$,''Select Window-Edge 0...10.0 : '')') READ(IFCO,'(F5.0)',ERR=35)DX# IF(DX.LT.0.0.OR.DX.GT.10.0)GOTO 35C5 DY=DX*(FLOAT(IY)/FLOAT(IX)) !COMPUTE WINDOW-HEIGHT.CB65 WRITE(IFCO,'(1H$,''Resolution-Factor (1...40) : '')') READ(IFCO,'(I2)',ERR=65)FACT# IF(FACT.LT.1.OR.FACT.GT.40)GOTO 65CC COMPUTE WINDOW DATA :C WXM=SX !COMPUTE - WXP=SX+DX ! WYM=SY ! WYP=SY+DY !WINDOW.CC INITIALIZE GRAPHIC SYSTEM :C# CALL CGL(GIC) !INITIALIZE_CORE. CALL CGL(GNF) !NEW_FRAME./ CALL CGL(GSV2,VXM,VXP,VYM,VYP) !SET_VIEWPORT., CALL CGL(GSW,WXM,WXP,WYM,WYP) !SET_WINDOW.$ CALL CGL(GSO,ORIGIN) !SET_ORIGIN.) CALL CGL(GRA2,WXP,WYP) !RECTANGLE_ABS.& CALL CGL(GMA2,WXM,WYM) !MOVE_ABS_2.C* CALL CGL(GICM,SAVE) !INQUIRE_COLOR_MAP.. CALL CGL(GILW,LWXO,LWYO) !INQUIRE_LINEWIDTH.C% LWX=(WX00 +-/DATADATADATADATADATADATADATAP-WXM)/(IX*FACT) !COMPUTE -) LWY=2.0*(WYP-WYM)/(IY*FACT) !LINEWIDTH.. IF(FACT.GT.20)LWY=LWY*2.0 !DUE TO INTERLACE.C* CALL CGL(GSLW,LWX,-LWY) !SET_LINEWIDTH.CC CHAOS COMPUTATION PART :C NX=FACT*IX !X-POINTS. NY=FACT*IY !Y-POINTS.C6 CALL CHAOS3(NX,NY,SX,SY,DX,DY,N) !EXPLAN. SEE CHAOS3.C% WRITE(IFCO,73)ESC !RESUME MESSAGE.C CALL WTRES !WAIT FOR RESUME.C# WRITE(IFCO,71)ESC !CLEAR SCREEN." WRITE(IFCO,72)ESC !CURSOR HOME.C" WRITE(IFCO,200)N,SX,SY,DX,DY,FACT-200 FORMAT(1X,'Start-Values : ',I6,4F11.4,I6)C% WRITE(IFCO,73)ESC !RESUME MESSAGE.C CALL WTRES !WAIT FOR RESUME.CC TERMINATE GRAPHIC SYSTEM :C& CALL CGL(GSCM,SAVE) !SET_COLOR_MAP.* CALL CGL(GSLW,LWXO,LWYO) !SET_LINEWIDTH. CALL CGL(GNF) !NEW_FRAME." CALL CGL(GTC) !TERMINATE_CORE.C* CALL YESNO(IFCO,YES,15,'A new picture ?') IF(YES)GOTO 55C" TYPE *,'APFEL3 : See YOU later !'C CALL EXITC END,APFEL4/FP=APFEL4,CHAOS4,YESNO,[1,5]PROF77/LB/;;CLUSTER SCHEME :;$CLSTR=PROF77,CGLFPU,POSRES,RMSRES:RO; ;TASK NAME :;TASK = APFEL4;4;LENGTH OF LUN-TABLE;CHOOSE HIGHEST LUN IN DECIMAL :; UNITS = 20 ;;GLOBAL DEFINITIONS IN OCTAL :;!GBLDEF = TT$EFN:1 ;TERMINAL I/O.!GBLDEF = MS$LUN:10 ;MESSAGE LUN.GBLDEF = WC$LUN:0GBLDEF = HL$LUN:0GBLDEF = MN$LUN:0!GBLDEF = TT$LUN:5 ;TERMINAL LUN.GBLDEF = G$LUN:7 ;GRAPHIC LUN.GBLDEF = MB$LUN:0;;ASSIGNMENTS IN DECIMAL :;ASG = TI:5 ;DEFINE TT$LUN.ASG = TT2:12 ;FOR ODT.$ASG = TT1:7 ;USE 7 FOR GRAPHIC.;// PROGRAM APFEL4C 20.11.85 WI/1C MANDELBROT-GRAPHIC.CC FUNCTIONAL DESCRIPTION :C:C The color of an array of points in the complex plane is 9C evaluated by a special algorithm.The result is drawn as:C a picture on the screen with the aid of the CORE-Graphic;C System.The Picture-Resolution can be selected from 1...40C by a special parameter,e.g :C,C Resolution = 1 -> X : Y = 18 : 12 ,C Resolution = 10 -> X : Y = 180 : 120 ,C Resolution = 40 -> X : Y = 720 : 480 C?C The 'color' of the Start-Value SX/SY in the Complex-Plane is >C transformed to the origin of a window with the relative size@C of SX+DX / SY+DY in the World-Coordinate-System.The dimensions:C of this window are given by the selected resolution.The ?C window's origin is located at the upper-left corner.A special:C algorithm is applied to compute the color of every point@C (see explanation in subroutine CHAOS4) in the selected part of?C the Complex-Plane.The picture is saved in a graphic metafile.C INCLUDE 'LB:[1,5]CGL.FTN'C REAL*4 SX,SY,DX,DY2 INTEGER*2 SAVE(24),ORIGIN,IFCO,N,IX,IY,FACT,NX,NY INTEGER*2 WHITE(3)( REAL*4 VXM,VXP,VYM,VYP,WXM,WXP,WYM,WYP REAL*4 LWX,LWY,LWXO,LWYO LOGICAL YES CHARACTER*1 ESC CHARACTER*10 FILNAM CHARACTER*6 NAMFIL CHARACTER*55 LEC DATA ESC/27/ !ASCII-ESC.* DATA FILNAM/' .GID'/ !PICTURE FILE. DATA WHITE/7,7,6/ C DATA LE/'I: X: Y: W: R: F: '/C/71 FORMAT(1H+,A1,'[2J') !DEFINE ERASE SCREEN./72 FORMAT(1H+,A1,'[?6l') !DEFINE CURSOR HOME.873 FORMAT(1H$,A1,'[24;1H',' To continue,press RESUME !')C IFCO=5 !DIALOG FILECODE. ORIGIN=1 !ORIGIN : TOP LEFT. VXM=0.0 !SELECT - VXP=1.0 ! VYM=0.0 !  VYP=1.0 !VIEWPORT. IX=18 !BASIC X-POINTS. IY=12 !BASIC Y-POINTS.C%55 WRITE(IFCO,71)ESC !CLEAR SCREEN." WRITE(IFCO,72)ESC !CURSOR HOME.C WRITE(IFCO,100)B100 FORMAT(1X,'Graphical Presentation of the Mandelbrot_Set :',//)0039CA5 WRITE(IFCO,'(1H$,''Number of planned iterations (I5) : '')') READ(IFCO,'(I5)',ERR=5)NCB15 WRITE(IFCO,'(1H$,''Select X-Start Position |...10.0| : '')') READ(IFCO,'(F5.0)',ERR=15)SX% IF(SX.LT.-10.0.OR.SX.GT.10.0)GOTO 15CB25 WRITE(IFCO,'(1H$,''Select Y-Start Position |...10.0| : '')') READ(IFCO,'(F5.0)',ERR=25)SY% IF(SY.LT.-10.0.OR.SY.GT.10.0)GOTO 25CB35 WRITE(IFCO,'(1H$,''Select Window-Edge 0...10.0 : '')') READ(IFCO,'(F5.0)',ERR=35)DX# IF(DX.LT.0.0.OR.DX.GT.10.0)GOTO 35C5 DY=DX*(FLOAT(IY)/FLOAT(IX)) !COMPUTE WINDOW-HEIGHT.CB65 WRITE(IFCO,'(1H$,''Resolution-Factor (1...40) : '')') READ(IFCO,'(I2)',ERR=65)FACT# IF(FACT.LT.1.OR.FACT.GT.40)GOTO 65CB45 WRITE(IFCO,'(1H$,''Picture Filename,6 characters max. : '')') READ(IFCO,'(A)')NAMFIL FILNAM(1:6)=NAMFILC" WRITE(LE(4:8),'(I5)')N !BUILD -' WRITE(LE(13:17),'(F5.2)')SX !LEGEND -' WRITE(LE(22:26),'(F5.2)')SY !STRING -% WRITE(LE(31:35),'(F5.2)')DX !WITH -) WRITE(LE(40:41),'(I2)')FACT !INTERNAL -& WRITE(LE(46:55),'(A)')FILNAM !WRITE.CC COMPUTE WINDOW DATA :C WXM=SX !COMPUTE - WXP=SX+DX ! WYM=SY ! WYP=SY+DY !WINDOW.CC INITIALIZE GRAPHIC SYSTEM :C# CALL CGL(GIC) !INITIALIZE_CORE.8 CALL CGL(GIVS,FILNAM,LEN(FILNAM)) !INITIALIZE_VIEW_SUR. CALL CGL(GNF) !NEW_FRAME./ CALL CGL(GSV2,VXM,VXP,VYM,VYP) !SET_VIEWPORT.$ CALL CGL(GSO,ORIGIN) !SET_ORIGIN., CALL CGL(GSW,WXM,WXP,WYM,WYP) !SET_WINDOW.) CALL CGL(GRA2,WXP,WYP) !RECTANGLE_ABS.& CALL CGL(GMA2,WXM,WYM) !MOVE_ABS_2.* CALL CGL(GICM,SAVE) !INQUIRE_COLOR_MAP.. CALL CGL(GILW,LWXO,LWYO) !INQUIRE_LINEWIDTH.C% LWX=(WXP-WXM)/(IX*FACT) !COMPUTE -) LWY=2.0*(WYP-WYM)/(IY*FACT) !LINEWIDTH.. IF(FACT.GT.20)LWY=LWY*2.0 !DUE TO INTERLACE.C* CALL CGL(GSLW,LWX,-LWY) !SET_LINEWIDTH.8 CALL CGL(GSVS,FILNAM,LEN(FILNAM)) !SELECT_VIEW_SURFACE.CC CHAOS COMPUTATION PART :C NX=FACT*IX !X-POINTS. NY=FACT*IY !Y-POINTS.C6 CALL CHAOS4(NX,NY,SX,SY,DX,DY,N) !EXPLAN. SEE CHAOS4.CC WRITE LEGEND :C0 CALL CGL(GSCME,7,WHITE) !SET_COLOR_MAP_ENTRY.' CALL CGL(GSWI,7) !SET_WRITING_INDEX.& CALL CGL(GMA2,WXM,WYM) !MOVE_ABS_2.! CALL CGL(GT,LE,LEN(LE)) !TEXT.C% WRITE(IFCO,73)ESC !RESUME MESSAGE.C CALL WTRES !WAIT FOR RESUME.CC TERMINATE GRAPHIC SYSTEM :C: CALL CGL(GDVS,FILNAM,LEN(FILNAM)) !DESELECT_VIEW_SURFACE.& CALL CGL(GSCM,SAVE) !SET_COLOR_MAP.* CALL CGL(GSLW,LWXO,LWYO) !SET_LINEWIDTH. CALL CGL(GNF) !NEW_FRAME." CALL CGL(GTC) !TERMINATE_CORE.C# WRITE(IFCO,71)ESC !CLEAR SCREEN." WRITE(IFCO,72)ESC !CURSOR HOME.C* CALL YESNO(IFCO,YES,15,'A new picture ?') IF(YES)GOTO 55C" TYPE *,'APFEL4 : See YOU later !'C CALL EXITC END3APFELM/FP=APFELM,CHAOS3,CHAOS4,YESNO,[1,5]PROF77/LB/;;CLUSTER SCHEME :;$CLSTR=PROF77,CGLFPU,POSRES,RMSRES:RO; ;TASK NAME :;TASK = APFELM;4;LENGTH OF LUN-TABLE;CHOOSE HIGHEST LUN IN DECIMAL :; UNITS = 20 ;;GLOBAL DEFINITIONS IN OCTAL :;!GBLDEF = TT$EFN:1 ;TERMINAL I/O.!GBLDEF = MS$LUN:10 ;MESSAGE LUN.GBLDEF = WC$LUN:0GBLDEF = HL$LUN:0GBLDEF = MN$LUN:0!GBLDEF = TT$LUN:5 ;TERMINAL LUN.GBLDEF = G$LUN:7 ;GRAPHIC LUN.GBLDEF = G$EFN:7 ;GRAPHIC I/O.GBLDEF = MB$LUN:0;;ASSIGNMENTS IN DECIMAL :;ASG = TI:5 ;DEFINE TT$LUN.ASG = TT2:12 ;FOR ODT.$ASG = TT1:7 ;USE 7 FOR GRAPHIC.;//00#-/DATADATADATADATADATADATADATA PROGRAM APFELMC 20.11.85 WI/2C MANDELBROT-GRAPHIC.CC FUNCTIONAL DESCRIPTION :C:C The color of an array of points in the complex plane is 9C evaluated by a special algorithm.The result is drawn as:C a picture on the screen with the aid of the CORE-Graphic;C System.The Picture-Resolution can be selected from 1...40$C by a corresponding parameter,e.g :C,C Resolution = 1 -> X : Y = 18 : 12 ,C Resolution = 10 -> X : Y = 180 : 120 ,C Resolution = 40 -> X : Y = 720 : 480 C?C The 'color' of the Start-Value SX/SY in the Complex-Plane is >C transformed to the origin of a window with the relative size@C of SX+DX / SY+DY in the World-Coordinate-System.The dimensions:C of this window are given by the selected resolution.The ?C window's origin is located at the lower-left corner.A special:C algorithm is applied to compute the color of every point@C (see explanation in subroutine CHAOS4) in the selected part of=C the Complex-Plane.With the help of the Cursor-Keys you can =C select a region of interest.That region can be magnified by>C a factor 0.001...1000.The picture can be saved in a Graphic- C Metafile.C@C Literature : Spektrum der Wissenschaft,Oktober 10/1985,P.8 ff.C INCLUDE 'LB:[1,5]CGL.FTN'C REAL*4 SX,SY,DX,DY2 INTEGER*2 SAVE(24),ORIGIN,IFCO,N,IX,IY,FACT,NX,NY/ INTEGER*2 WHITE(3),SELECT,STATUS(2),COLMAP(24)( REAL*4 VXM,VXP,VYM,VYP,WXM,WXP,WYM,WYP REAL*4 LWX,LWY,LWXO,LWYO) REAL*4 RSX,RSY,RDX,RDY,DELX,DELY,MAGNIF LOGICAL YES CHARACTER*1 ESC,BEL CHARACTER*10 FILNAM CHARACTER*55 LEC DATA ESC/27/ !ASCII-ESC. DATA BEL/7/ !ASCII-BELL.* DATA FILNAM/' .GID'/ !PICTURE FILE. DATA WHITE/7,7,6/ C DATA LE/'I: X: Y: W: R: F: '/CC DEFINE COLOR MAP :C- DATA COLMAP/ 3,2,2, !ENTRY-0 = BACKGROUND.! * 7,0,0, !ENTRY-1 = RED.# * 0,7,0, !ENTRY-1 = GREEN." * 0,0,6, !ENTRY-3 = BLUE.' * 0,7,6, !ENRTY-4 = TURQUOISE.$ * 7,0,6, !ENTRY-5 = VIOLET.: * 7,7,0, !ENTRY-6 = YELLOW." * 7,1,3/ !ENTRY-7 = PINK.C/71 FORMAT(1H+,A1,'[2J') !DEFINE ERASE SCREEN./72 FORMAT(1H+,A1,'[?6l') !DEFINE CURSOR HOME.?73 FORMAT(1H+,A1,'[24;1H',50X,' To continue,press RESUME ! ')E74 FORMAT(1H+,A1,'[24;1H',' Select region of interest ! ')E76 FORMAT(1H+,A1,A1,'[24;1H',' Use SELECT or Cursor-Keys ! ')E77 FORMAT(1H+,A1,'[24;1H','X:',F10.5,' Y:',F10.5,' DX:',F10.6,' DY:', * F10.6)C IFCO=5 !DIALOG FILECODE.# ORIGIN=0 !ORIGIN : BOTTOM LEFT. VXM=0.0 !SELECT - VXP=1.0 ! VYM=0.0 !  VYP=1.0 !VIEWPORT. IX=18 !BASIC X-POINTS. IY=12 !BASIC Y-POINTS.C%55 WRITE(IFCO,71)ESC !CLEAR SCREEN." WRITE(IFCO,72)ESC !CURSOR HOME.C( FILNAM(1:6)=' ' !CLEAR FILENAME.C WRITE(IFCO,100)C100 FORMAT(10X,'Graphical Presentation of the Mandelbrot_Set :',//)CC FUNCTION SELECT MENU :C WRITE(IFCO,56)856 FORMAT(10X,'Select from the following functions !',/,8 * 10X,'1 =: Graphic on screen,special algorithm',/,8 * 10X,'2 =: Graphic on screen with filing ',/,9 * 10X,'3 =: Graphic-Microscope with filing ',/,8 * 10X,'4 =: Graphic-Microscope ',/,: * 10X,'5 =: Playback File from disk ',/,  * 10X,'6 =: Exit',///, * 1H$,'SELECT : ')C READ(IFCO,'(I1)',ERR=55)SELECTC& IF(SELECT.LT.1.OR.SELECT.GT.6)GOTO 55C GOTO(1,2,3,4,5,6),SELECTCC 1 CONTINUECC# WRITE(IFCO,71)ESC !CLEAR SCREEN." WRITE(IFCO,72)ESC !CURSOR HOME.C9 TYPE '(1X,A,//)','Graphic on screen,special algorithm !'CC145 WRITE(IFCO,'(1H$,''Number of planned iterations (I5) : '')') READ(IFCO,'(I5)',ERR=145)NCC115 WRITE(IFCO,'(1H$,''Select X-Start Position |...99.0| : '')') READ(IFCO,'(F5.0)',ERR=115)SX& IF(SX.LT.-99.0.OR.SX.GT.99.0)GOTO 115CC125 WRITE(IFCO,'(1H$,''Select Y-Start Position |...99.0| : '')') READ(IFCO,'(F5.0)',ERR=00+9125)SY& IF(SY.LT.-99.0.OR.SY.GT.99.0)GOTO 125CC135 WRITE(IFCO,'(1H$,''Select Window-Edge 0...100.0 : '')') READ(IFCO,'(F5.0)',ERR=135)DX% IF(DX.LT.0.0.OR.DX.GT.100.0)GOTO 135C5 DY=DX*(FLOAT(IY)/FLOAT(IX)) !COMPUTE WINDOW-HEIGHT.CC165 WRITE(IFCO,'(1H$,''Resolution-Factor (1...40) : '')') READ(IFCO,'(I2)',ERR=165)FACT$ IF(FACT.LT.1.OR.FACT.GT.40)GOTO 165C" WRITE(LE(3:6),'(I4)')N !BUILD -& WRITE(LE(9:15),'(F7.3)')SX !LEGEND -' WRITE(LE(18:24),'(F7.3)')SY !STRING -& WRITE(LE(27:36),'(F10.6)')DX !WITH -) WRITE(LE(39:42),'(I4)')FACT !INTERNAL -& WRITE(LE(46:55),'(A)')FILNAM !WRITE.CC COMPUTE WINDOW DATA :C WXM=SX !COMPUTE - WXP=SX+DX ! WYM=SY ! WYP=SY+DY !WINDOW.CC INITIALIZE GRAPHIC SYSTEM :C# CALL CGL(GIC) !INITIALIZE_CORE. CALL CGL(GNF) !NEW_FRAME./ CALL CGL(GSV2,VXM,VXP,VYM,VYP) !SET_VIEWPORT., CALL CGL(GSW,WXM,WXP,WYM,WYP) !SET_WINDOW.$ CALL CGL(GSO,ORIGIN) !SET_ORIGIN.) CALL CGL(GRA2,WXP,WYP) !RECTANGLE_ABS.& CALL CGL(GMA2,WXM,WYM) !MOVE_ABS_2.* CALL CGL(GICM,SAVE) !INQUIRE_COLOR_MAP.. CALL CGL(GILW,LWXO,LWYO) !INQUIRE_LINEWIDTH.C% LWX=(WXP-WXM)/(IX*FACT) !COMPUTE -) LWY=2.0*(WYP-WYM)/(IY*FACT) !LINEWIDTH.. IF(FACT.GT.20)LWY=LWY*2.0 !DUE TO INTERLACE.C* CALL CGL(GSLW,LWX,-LWY) !SET_LINEWIDTH.CC CHAOS COMPUTATION PART :C NX=FACT*IX !X-POINTS. NY=FACT*IY !Y-POINTS.C6 CALL CHAOS3(NX,NY,SX,SY,DX,DY,N) !EXPLAN. SEE CHAOS3.CC WRITE LEGEND :C0 CALL CGL(GSCME,7,WHITE) !SET_COLOR_MAP_ENTRY.' CALL CGL(GSWI,7) !SET_WRITING_INDEX.& CALL CGL(GMA2,WXM,WYP) !MOVE_ABS_2.! CALL CGL(GT,LE,LEN(LE)) !TEXT.C% WRITE(IFCO,73)ESC !RESUME MESSAGE.C CALL WTRES !WAIT FOR RESUME.CC TERMINATE GRAPHIC SYSTEM :C& CALL CGL(GSCM,SAVE) !SET_COLOR_MAP.* CALL CGL(GSLW,LWXO,LWYO) !SET_LINEWIDTH. CALL CGL(GNF) !NEW_FRAME." CALL CGL(GTC) !TERMINATE_CORE.C GOTO 55CC 2 CONTINUECC# WRITE(IFCO,71)ESC !CLEAR SCREEN." WRITE(IFCO,72)ESC !CURSOR HOME.C3 TYPE '(1X,A,//)','Graphic on screen with filing !'CC245 WRITE(IFCO,'(1H$,''Number of planned iterations (I5) : '')') READ(IFCO,'(I5)',ERR=245)NCC215 WRITE(IFCO,'(1H$,''Select X-Start Position |...10.0| : '')') READ(IFCO,'(F5.0)',ERR=215)SX& IF(SX.LT.-10.0.OR.SX.GT.10.0)GOTO 215CC225 WRITE(IFCO,'(1H$,''Select Y-Start Position |...10.0| : '')') READ(IFCO,'(F5.0)',ERR=225)SY& IF(SY.LT.-10.0.OR.SY.GT.10.0)GOTO 225CC235 WRITE(IFCO,'(1H$,''Select Window-Edge 0...10.0 : '')') READ(IFCO,'(F5.0)',ERR=235)DX$ IF(DX.LT.0.0.OR.DX.GT.10.0)GOTO 235C5 DY=DX*(FLOAT(IY)/FLOAT(IX)) !COMPUTE WINDOW-HEIGHT.CC265 WRITE(IFCO,'(1H$,''Resolution-Factor (1...40) : '')') READ(IFCO,'(I2)',ERR=265)FACT$ IF(FACT.LT.1.OR.FACT.GT.40)GOTO 265C@ WRITE(IFCO,'(1H$,''Picture Filename,6 characters max. : '')') READ(IFCO,'(A)')FILNAM(1:6)C" WRITE(LE(3:6),'(I4)')N !BUILD -& WRITE(LE(9:15),'(F7.3)')SX !LEGEND -' WRITE(LE(18:24),'(F7.3)')SY !STRING -& WRITE(LE(27:36),'(F10.6)')DX !WITH -) WRITE(LE(39:42),'(I4)')FACT !INTERNAL -& WRITE(LE(46:55),'(A)')FILNAM !WRITE.CC COMPUTE WINDOW DATA :C WXM=SX !COMPUTE - WXP=SX+DX ! WYM=SY ! WYP=SY+DY !WINDOW.CC INITIALIZE GRAPHIC SYSTEM :C# CALL CGL(GIC) !INITIALIZE_CORE.8 CALL CGL(GIVS,FILNAM,LEN(FILNAM)) !INITIALIZE_VIEW_SUR.8 CALL CGL(GSVS,FILNAM,LEN(FILNAM)) !SELECT_VIEW_SURFACE. CALL CGL(GNF) !NEW_FRAME./ CALL CGL(GSV2,VXM,VXP,VYM,VYP) !SET_VIEWPORT., CALL CGL(GSW,WXM,WXP,WYM,WYP) !SET_WINDOW.$ CALL CGL(GSO,ORIGIN) !SET_ORIGIN.) CALL CGL(GRA2,WXP,WYP) !RECTANGLE_ABS.& CALL CGL(GMA2,WXM,WYM) !MOVE_ABS_2.C* CALL CGL(GICM,SAVE) !INQUIRE_COLOR_MAP.. CALL CGL(GILW,LWXO,LWYO) !INQUIRE_LINEWIDTH.C% LWX=(WXP-WXM)/(IX*FACT) !COMPUTE -) LWY=2.0*(WYP-WYM)/(IY*FACT) !LINEWIDTH.. IF(FACT.GT.20)LWY=LWY*2.0 !DUE TO INTERLACE.C* CALL CGL(GSLW,LWX,-LWY) !SET_LINEWIDTH.CC CH003-/DATADATADATADATADATADATADATAAOS COMPUTATION PART :C NX=FACT*IX !X-POINTS. NY=FACT*IY !Y-POINTS.C6 CALL CHAOS4(NX,NY,SX,SY,DX,DY,N) !EXPLAN. SEE CHAOS4.CC WRITE LEGEND :C' CALL CGL(GSWI,7) !SET_WRITING_INDEX.& CALL CGL(GMA2,WXM,WYP) !MOVE_ABS_2.! CALL CGL(GT,LE,LEN(LE)) !TEXT.: CALL CGL(GDVS,FILNAM,LEN(FILNAM)) !DESELECT_VIEW_SURFACE.C% WRITE(IFCO,73)ESC !RESUME MESSAGE.C CALL WTRES !WAIT FOR RESUME.CC TERMINATE GRAPHIC SYSTEM :C& CALL CGL(GSCM,SAVE) !SET_COLOR_MAP.* CALL CGL(GSLW,LWXO,LWYO) !SET_LINEWIDTH. CALL CGL(GNF) !NEW_FRAME." CALL CGL(GTC) !TERMINATE_CORE.C GOTO 55CC 3 CONTINUECC# WRITE(IFCO,71)ESC !CLEAR SCREEN." WRITE(IFCO,72)ESC !CURSOR HOME.C4 TYPE '(1X,A,//)','Graphic-Microscope with filing !'CC315 WRITE(IFCO,'(1H$,''Select X-Start Position |...10.0| : '')') READ(IFCO,'(F6.2)',ERR=315)SX& IF(SX.LT.-10.0.OR.SX.GT.10.0)GOTO 315CC325 WRITE(IFCO,'(1H$,''Select Y-Start Position |...10.0| : '')') READ(IFCO,'(F6.2)',ERR=325)SY& IF(SY.LT.-10.0.OR.SY.GT.10.0)GOTO 325CC335 WRITE(IFCO,'(1H$,''Select Window-Edge 0...10.0 : '')') READ(IFCO,'(F6.2)',ERR=335)DX$ IF(DX.LT.0.0.OR.DX.GT.10.0)GOTO 335C5 DY=DX*(FLOAT(IY)/FLOAT(IX)) !COMPUTE WINDOW-HEIGHT.CC345 WRITE(IFCO,'(1H$,''Number of planned iterations (I5) : '')') READ(IFCO,'(I5)',ERR=345)NCC365 WRITE(IFCO,'(1H$,''Resolution-Factor (1...40) : '')') READ(IFCO,'(I2)',ERR=365)FACT$ IF(FACT.LT.1.OR.FACT.GT.40)GOTO 365C@ WRITE(IFCO,'(1H$,''Picture Filename,6 characters max. : '')') READ(IFCO,'(A)')FILNAM(1:6)C" WRITE(LE(3:6),'(I4)')N !BUILD -& WRITE(LE(9:15),'(F7.3)')SX !LEGEND -' WRITE(LE(18:24),'(F7.3)')SY !STRING -& WRITE(LE(27:36),'(F10.6)')DX !WITH -) WRITE(LE(39:42),'(I4)')FACT !INTERNAL -& WRITE(LE(46:55),'(A)')FILNAM !WRITE.CC COMPUTE WINDOW DATA :C WXM=SX !COMPUTE - WXP=SX+DX ! WYM=SY ! WYP=SY+DY !WINDOW.C RSX=WXM !START - RSY=WYM !POSITION - RDX=WXP-WXM !FOR - RDY=WYP-WYM !MAGNIFICATION.CC INITIALIZE GRAPHIC SYSTEM :C# CALL CGL(GIC) !INITIALIZE_CORE.8 CALL CGL(GIVS,FILNAM,LEN(FILNAM)) !INITIALIZE_VIEW_SUR.8 CALL CGL(GSVS,FILNAM,LEN(FILNAM)) !SELECT_VIEW_SURFACE. CALL CGL(GNF) !NEW_FRAME./ CALL CGL(GSV2,VXM,VXP,VYM,VYP) !SET_VIEWPORT., CALL CGL(GSW,WXM,WXP,WYM,WYP) !SET_WINDOW.$ CALL CGL(GSO,ORIGIN) !SET_ORIGIN.) CALL CGL(GRA2,WXP,WYP) !RECTANGLE_ABS.& CALL CGL(GMA2,WXM,WYM) !MOVE_ABS_2.C* CALL CGL(GICM,SAVE) !INQUIRE_COLOR_MAP.. CALL CGL(GILW,LWXO,LWYO) !INQUIRE_LINEWIDTH.C% LWX=(WXP-WXM)/(IX*FACT) !COMPUTE -) LWY=2.0*(WYP-WYM)/(IY*FACT) !LINEWIDTH.. IF(FACT.GT.20)LWY=LWY*2.0 !DUE TO INTERLACE.C* CALL CGL(GSLW,LWX,-LWY) !SET_LINEWIDTH.CC CHAOS COMPUTATION PART :C NX=FACT*IX !X-POINTS. NY=FACT*IY !Y-POINTS.C6 CALL CHAOS4(NX,NY,SX,SY,DX,DY,N) !EXPLAN. SEE CHAOS4.CC SELECT REGION OF INTEREST :C: CALL CGL(GDVS,FILNAM,LEN(FILNAM)) !DESELECT_VIEW_SURFACE.& WRITE(IFCO,74)ESC !INFORM OPERATOR.+ CALL CGL(GMA2,RSX,RSY) !MOVE_ABSOLUTE_2.C  DELX=RDX/100.0 DELY=RDY/100.0301 CALL GETKEY(STATUS) IF(STATUS(1).EQ.2)THEN IF(STATUS(2).EQ.24)THEN GOTO 302 ELSE IF(STATUS(2).EQ.27)THEN RSY=RSY+DELY CALL CGL(GMA2,RSX,RSY) ELSE IF(STATUS(2).EQ.28)THEN RSX=RSX-DELX CALL CGL(GMA2,RSX,RSY) ELSE IF(STATUS(2).EQ.29)THEN RSY=RSY-DELY CALL CGL(GMA2,RSX,RSY) ELSE IF(STATUS(2).EQ.30)THEN RSX=RSX+DELX CALL CGL(GMA2,RSX,RSY) ELSE GOTO 303 END IF ELSE GOTO 303 END IFC2 WRITE(IFCO,77)ESC,RSX,RSY,RDX,RDY !SHOW POSITION.+ CALL CGL(GMA2,RSX,RSY) !MOVE_ABSOLUTE_2. GOTO 301C*303 WRITE(IFCO,76)BEL,ESC !SEND MESSAGE.+ CALL CGL(GMA2,RSX,RSY) !MOVE_ABSOLUTE_2. GOTO 301CC WRITE LEGEND :C 302 CONTINUE8 CALL CGL(GSVS,FILNAM,LEN(FILNAM)) !SELECT_VIEW_SURFACE.' CALL CGL(GSWI,7) !SET_WRITING_INDEX.& CALL CGL(GMA2,WXM,WYP) !MOVE_ABS_2.! CALL CGL(GT00;9,LE,LEN(LE)) !TEXT.: CALL CGL(GDVS,FILNAM,LEN(FILNAM)) !DESELECT_VIEW_SURFACE.C* WRITE(IFCO,73)ESC !SEND RESUME MESSAGE. CALL WTRES !WAIT FOR RESUME.C# WRITE(IFCO,71)ESC !CLEAR SCREEN." WRITE(IFCO,72)ESC !CURSOR HOME.CC TERMINATE GRAPHIC SYSTEM :C& CALL CGL(GSCM,SAVE) !SET_COLOR_MAP.* CALL CGL(GSLW,LWXO,LWYO) !SET_LINEWIDTH. CALL CGL(GNF) !NEW_FRAME." CALL CGL(GTC) !TERMINATE_CORE.C6 CALL YESNO(IFCO,YES,27,'You can now stop painting ?') IF(.NOT.YES)THENCB304 WRITE(IFCO,'(1H$,''Select Magnification 0.001...1000.0 : '')')" READ(IFCO,'(F6.1)',ERR=304)MAGNIF0 IF(MAGNIF.LT.0.001.OR.MAGNIF.GT.1000.0)GOTO 304C SX=RSX SY=RSY DX=RDX/MAGNIF DY=RDY/MAGNIF GOTO 345C ELSEC CONTINUEC END IFC GOTO 55CC 4 CONTINUECC# WRITE(IFCO,71)ESC !CLEAR SCREEN." WRITE(IFCO,72)ESC !CURSOR HOME.C( TYPE '(1X,A,//)','Graphic-Microscope !'CC415 WRITE(IFCO,'(1H$,''Select X-Start Position |...10.0| : '')') READ(IFCO,'(F6.2)',ERR=415)SX& IF(SX.LT.-10.0.OR.SX.GT.10.0)GOTO 415CC425 WRITE(IFCO,'(1H$,''Select Y-Start Position |...10.0| : '')') READ(IFCO,'(F6.2)',ERR=425)SY& IF(SY.LT.-10.0.OR.SY.GT.10.0)GOTO 425CC435 WRITE(IFCO,'(1H$,''Select Window-Edge 0...10.0 : '')') READ(IFCO,'(F6.2)',ERR=435)DX$ IF(DX.LT.0.0.OR.DX.GT.10.0)GOTO 435C5 DY=DX*(FLOAT(IY)/FLOAT(IX)) !COMPUTE WINDOW-HEIGHT.CC445 WRITE(IFCO,'(1H$,''Number of planned iterations (I5) : '')') READ(IFCO,'(I5)',ERR=445)NCC465 WRITE(IFCO,'(1H$,''Resolution-Factor (1...40) : '')') READ(IFCO,'(I2)',ERR=465)FACT$ IF(FACT.LT.1.OR.FACT.GT.40)GOTO 465C" WRITE(LE(3:6),'(I4)')N !BUILD -& WRITE(LE(9:15),'(F7.3)')SX !LEGEND -' WRITE(LE(18:24),'(F7.3)')SY !STRING -& WRITE(LE(27:36),'(F10.6)')DX !WITH -) WRITE(LE(39:42),'(I4)')FACT !INTERNAL -& WRITE(LE(46:55),'(A)')FILNAM !WRITE.CC COMPUTE WINDOW DATA :C WXM=SX !COMPUTE - WXP=SX+DX ! WYM=SY ! WYP=SY+DY !WINDOW.C RSX=WXM !START - RSY=WYM !POSITION - RDX=WXP-WXM !FOR - RDY=WYP-WYM !MAGNIFICATION.CC INITIALIZE GRAPHIC SYSTEM :C# CALL CGL(GIC) !INITIALIZE_CORE. CALL CGL(GNF) !NEW_FRAME./ CALL CGL(GSV2,VXM,VXP,VYM,VYP) !SET_VIEWPORT., CALL CGL(GSW,WXM,WXP,WYM,WYP) !SET_WINDOW.$ CALL CGL(GSO,ORIGIN) !SET_ORIGIN.) CALL CGL(GRA2,WXP,WYP) !RECTANGLE_ABS.& CALL CGL(GMA2,WXM,WYM) !MOVE_ABS_2.C* CALL CGL(GICM,SAVE) !INQUIRE_COLOR_MAP.. CALL CGL(GILW,LWXO,LWYO) !INQUIRE_LINEWIDTH.C% LWX=(WXP-WXM)/(IX*FACT) !COMPUTE -) LWY=2.0*(WYP-WYM)/(IY*FACT) !LINEWIDTH.. IF(FACT.GT.20)LWY=LWY*2.0 !DUE TO INTERLACE.C* CALL CGL(GSLW,LWX,-LWY) !SET_LINEWIDTH.CC CHAOS COMPUTATION PART :C NX=FACT*IX !X-POINTS. NY=FACT*IY !Y-POINTS.C6 CALL CHAOS4(NX,NY,SX,SY,DX,DY,N) !EXPLAN. SEE CHAOS4.CC SELECT REGION OF INTEREST :C& WRITE(IFCO,74)ESC !INFORM OPERATOR.+ CALL CGL(GMA2,RSX,RSY) !MOVE_ABSOLUTE_2.C  DELX=RDX/100.0 DELY=RDY/100.0401 CALL GETKEY(STATUS) IF(STATUS(1).EQ.2)THEN IF(STATUS(2).EQ.24)THEN GOTO 402 ELSE IF(STATUS(2).EQ.27)THEN RSY=RSY+DELY CALL CGL(GMA2,RSX,RSY) ELSE IF(STATUS(2).EQ.28)THEN RSX=RSX-DELX CALL CGL(GMA2,RSX,RSY) ELSE IF(STATUS(2).EQ.29)THEN RSY=RSY-DELY CALL CGL(GMA2,RSX,RSY) ELSE IF(STATUS(2).EQ.30)THEN RSX=RSX+DELX CALL CGL(GMA2,RSX,RSY) ELSE GOTO 403 END IF ELSE GOTO 403 END IFC2 WRITE(IFCO,77)ESC,RSX,RSY,RDX,RDY !SHOW POSITION.+ CALL CGL(GMA2,RSX,RSY) !MOVE_ABSOLUTE_2. GOTO 401C*403 WRITE(IFCO,76)BEL,ESC !SEND MESSAGE.+ CALL CGL(GMA2,RSX,RSY) !MOVE_ABSOLUTE_2. GOTO 401CC WRITE LEGEND :C 402 CONTINUE0 CALL CGL(GSCME,7,WHITE) !SET_COLOR_MAP_ENTRY.' CALL CGL(GSWI,7) !SET_WRITING_INDEX.& CALL CGL(GMA2,WXM,WYP) !MOVE_ABS_2.! CALL CGL(GT,LE,LEN(LE)) !TEXT.C* WRITE(IFCO,73)ESC !SEND RESUME MESSAGE. CALL WTRES !WAIT FOR RESUME.C# WRITE(IFCO,71)ESC !CL00CF/DATADATADATADATADATADATADATAEAR SCREEN.A" WRITE(IFCO,72)ESC !CURSOR HOME.CGC TERMINATE GRAPHIC SYSTEM :CP& CALL CGL(GSCM,SAVE) !SET_COLOR_MAP.* CALL CGL(GSLW,LWXO,LWYO) !SET_LINEWIDTH. CALL CGL(GNF) !NEW_FRAME.l" CALL CGL(GTC) !TERMINATE_CORE.Ce6 CALL YESNO(IFCO,YES,27,'You can now stop painting ?') IF(.NOT.YES)THENsCcB404 WRITE(IFCO,'(1H$,''Select Magnification 0.001...1000.0 : '')')" READ(IFCO,'(F6.1)',ERR=404)MAGNIF0 IF(MAGNIF.LT.0.001.OR.MAGNIF.GT.1000.0)GOTO 404Cs SX=RSX= SY=RSYX DX=RDX/MAGNIF DY=RDY/MAGNIF GOTO 445eCa ELSEeC/ CONTINUEoCe END IFsC GOTO 55C Ct 5 CONTINUE CnC # WRITE(IFCO,71)ESC !CLEAR SCREEN.S" WRITE(IFCO,72)ESC !CURSOR HOME.C - TYPE '(1X,A,//)','Playback File from disk !'eCt@ WRITE(IFCO,'(1H$,''Picture Filename,6 characters max. : '')') READ(IFCO,'(A)')FILNAM(1:6)3 WRITE(IFCO,'(1X,''The FILENAME was : '',A)')FILNAMsCeC INITIALIZE GRAPHIC SYSTEM :)C # CALL CGL(GIC) !INITIALIZE_CORE.l* CALL CGL(GICM,SAVE) !INQUIRE_COLOR_MAP.( CALL CGL(GSCM,COLMAP) !SET_COLOR_MAP.C 0 CALL CGL(GPF,FILNAM,LEN(FILNAM)) !PLABACK_FILE.Ct* WRITE(IFCO,73)ESC !SEND RESUME MESSAGE. CALL WTRES !WAIT FOR RESUME.CsC TERMINATE GRAPHIC SYSTEM :C& CALL CGL(GSCM,SAVE) !SET_COLOR_MAP. CALL CGL(GNF) !NEW_FRAME.V" CALL CGL(GTC) !TERMINATE_CORE.CI GOTO 55CEC,4 6 TYPE '(1X,//,1X,A,//)','APFELM : See YOU later !'CMCP CALL EXITC* END-!,^^{{U fm+ S( T kf[q Tr[q Sb 3SYSYSYSYTICLTTTTTISY^0ab N5Q]8J8J8J8JLL$IHL8J̝^{z80a^?0aw1w1w1  P00K9t PP P~P P.n> : @ &P xP(PP R N @  $GrR Gw+4 NRFFC3 3  ,, UEs3wRv\F&fP\ B * ͋'% ͥ!ͥE%,  K5  PB2 %pˋ5J J J @ EͥAA I z-!? ;)'7 '7(@7(7(7(' ''4' 3 ~)'>' 3 h 3&/ RX'( l H'L( \ 8'v)&  th3 < -.'-&'/' \<t(&4' 3 P&>' 3 4z) /% &) p(&)&  V3 p&) nX(Z&)&  3 7%C7%"&) 6 k ( & *& . H3 < b7%C7%%* 8h'%<*& | 3  f%C7X%7%w%7B%7B%t%@* d\'^%l*&  \3 b -H%-@%(3e&p* V3 0 3e&t* 3 : `3e&x* h3  >3e& |* F3 3e&&* $\3 3e-& * 3 Z 7$7$7$7$7$7$7$7$/ %/ %/ %0 % 0 %0 %0 %"0 %(0 %7R$7J$##Bpw#A7B$7:$72$#px#C L%@7$fJ& F%%H##D##00 L@0 (%H0 %N0 %7& %Z#J' n3 8 V0 X0 $^0 $/ $f0 $wf< % #4' 3 d">' 3 H* =/ ,"* 8$"*&  V3 "* 6l$n"*&  3  7" B7!6"* J 3$ "+&  \3 P v 7! B7!!+ L0#!H+& h 3  ( z! B7l!7!w!7V!7V!!L+ ,p#r!x+&  \3 v -\!-T!(D!|+ X 4!+ l3&  3e&+ V3  h3e&+ p3 F3e&+ N3 $3e& + ,3 3e&&+ \3 3e-& + 3 @ 7 7 7 7 77 77 / ! ' !  ' ! / !/ !0 ! 0 !0 !0 x!"0 p!(0 h!7 7 BpwXA7 77p<C p!@7f& !% b^00 H0 N0 7&  ' J' *3 nV0 X0 ^0 / f0 w" 4' 3 >' 3 + \/ n t+ \ ^+&  3  7 B7&+ :  ",& * L3 @ f 7 B7&, <R,& x 3  j B7\7w7F7FxV, `b,&  00SF/DATADATADATADATADATADATADATAV3 f D, X ,.,&   j\3 2 --(,  d, (3& F3e&, NV3 $3e&, ,3 3e&, 3 3e& , 3 3e&&, \3 J 3e-& , 3 v77V77RwwNwwJ:V:R7PCwN/ j n' Z f ' J / @/ 80 0 0 (0 0 "0 (0 77XPBpwA7774pC @7|f& %00 `  ' z' 3 .j0 `72C727*C7*r0 L-Z-w8-f777j0 =-h@777j0 *-B777j0 -7n7z7fj0 /'' 3 3 3 3 3 j0 *wx' 3 V3 J Hj0 w6   '  H0 N0 7 &   ' J' 3 NV0 4' 3 *>' 3 X0 @^0 8/ 0f0 (v0 =l, TV&-&  3 7h7zE777777w@ww@wwzw64' 3 4>' 3 *- / 0- pr\-&  3  7  B7:`- N "$-&  `3 T z 7 B7- P-& d 3  , ~ B7p7w7Z7Z- tv-&  V3 z X- l ~@B.&  ~\3 F -,-$(3e& . V3  f3e&$. n3  D3e&(. L3 "3e& ,. *3 3e&&0. \3 3e-& 4. 3 > 7777wwww||7Cw/ / / 0  0 0 0 |"0 t(0 l77Bpw\A7 77p@C bt@7f& %f b00 Jz' ^3 ( j0 7C77C7r0 Y-Z-w8-U7X7d7Pj0 t=-R7.7:7&j0 N*-O7 77j0 (-Lh777j0 IJ/GBF:'D24' H3 3 ^3 V3 N3 F lj0 w' 3 3 8@j0 dw=@0 RH0 JN0 B7>& 2J' 3 b V0 $`4' t3 > D>' X3 " X0 ^0 / f0 v0  =6.  ^.b.& V! 3  :77RzE7F7&7f7"7b7.w@wXw@wRw%x$rw"hj4' ~3 H N>' b3 , f. F/  l. * z. >3& \. 3 @/ r"0 j0 b ~' RJ' 3 V0 DX0 &/ f0 w. x/ B @V0 % F'`? F$"f0  77 7w -wj } =7w-vw } =7f0 f(04T 7`7T7 p 7J&7 $047 J' 72B H-D .f0 'f&f0 'f& rwf0 -f0 r f0 ^} -Zw -Hw`? "rf0  7w-wZB } =7w z-v w d } =7>f0 &4T 77 7  7&7 8%47 "4 7 -f0 &f&Ad\V r00[9wf0 -f0   f0 ~ n-j w `-\ wY? ff,' #f1 0f 1 ,' Լ f1 f 1 ̿4 r = ׭Y ׭y .3.3/3/3 /3/3Q+[2J +[?6l +[24;1H2 To continue,press RESUME ! +[24;1H' Select region of interest ! +[24;1H$ Use SELECT or Cursor-Keys ! +[24;1HX:$  Y:$  DX:$  DY:$   -Graphical Presentation of the Mandelbrot_Set :  $Select from the following functions !  '1 =: Graphic on screen,special algorithm  '2 =: Graphic on screen with filing  '3 =: Graphic-Microscope with filing  '4 =: Graphic-Microscope  '5 =: Playback File from disk  6 =: Exit $SELECT : " , $&Number of planned iterations (I5) : " $&Select X-Start Position |...99.0| : $ $&Select Y-Start Position |...99.0| : $ $&Select Window-Edge 0...100.0 : $ $&Resolution-Factor (1...40) : " " $ $ $  " , , $&Number of planned iterations (I5) : " $&Select X-Start Position |...10.0| : $ $&Select Y-Start Position |...10.0| : $ $&Select Window-Edge 0...10.0 : $ $&Resolution-Factor (1...40) : " $&Picture Filename,6 characters max. : , " $ $ $  " , , $&Select X-Start Position |...10.0| : $ $&Select Y-Start Position |...10.0| : $ $&Select Window-Edge 0...10.0 : $ $&Number of planned iterations (I5) : " $&Resolution-Factor (1...40) : " $&Picture Filename,6 characters max. : , " $ $ $  " , $%Select Magnification 0.001...1000.0 : $ , $&Select X-Start Position |...10.0| : $ $&Select Y-Start Position |...10.0| : $ $&Select Window-Edge 0...10.0 : $ $&Number of planned iterations (I5) : " $&Resolution-Factor (1...40) : " " $ $ $  " , $%Select Magnification 0.001...1000.0 : $ , $&Picture Filename,6 characters max. : , The FILENAME was : ,  ,  <@ABPRVZ[\gijo Graphic on screen,special algorithm !Graphic on screen with filing !Graphic-Microscope with filing !You can now stop painting ?Graphic-Microscope !Playback File from disk !APFELM : See YOU later !R >n!"...3333.3333.R3.33.33."3.33^3`33333V3..b3...33."3.33..33j3T33.|/.n3;o<@0`4P4T484H40^40P4T40P4T4tJ$tJ$<@0444404044044+ G $ Y/N [N] : , h .GIDI: X: Y: W: R: F: '&1 ,j] $"] F] F] \  FFX67P66666N7nGG5700cF/DATADATADATADATADATADATADATAPp6]7*PO>PG4HJL`JJPDG(>G ^7 F 6HHHIIIRIrI5ew , Bv    5Bw 00k91 5  .5.UW   ,   wE5 E  W LJ5  ,E RI____________________;________W_____}__y___;;;;1;;;;;;;13;;9;06FHZH>G:6DG66<6LB:[1,2]PROF77.MSG@?#KT@?J<(@  @a H V NN&L-   eۉe͋ %*swte   *^Gi F*` *3&    w *ltʋ3h3 v3 x3 5 2 svx2 ltՀ5 fd  Aw *Gi @ H ~ < r  * B l  bJw& 5C&C ݉ pDpB@a  VEC&L@a ,  %ȉ L& @a &  & 6 6& ) @&   36&&7 V &6&7 @ 6 e &   @67  %Le҉D  L T @f R  CC߉Օ Օ  nff)n sw f>G "&f4H d*  ws!p ՞ DGw L*B X    J  t z h h > h  L ^   2 h X3 ^ f   H(v% { , Օ,x  5  elՕ s!pE~ |  }% Z e Օ"~ f  V  , r&? $ Ly $ ZՕ Օ-   e:f s!pU Օ  D~  A M•0 M M@a H VA @  CECDAB&LɉL= & = & +ԉW \H dH  @`@@W@  A@W@D@f*   B~*& fYWtp` j* X @f6E@*p^ pnP'%ɉ ˉ!ȉʉ& &fHtEpP sf&tH % b %e ee e  \4QF^7)awd 6  Z w , e 1 w  R R 7E U &W 96 3  4 &9U &9E &9U3uE uU.5`.U & E& & f&ËDef Ë )̋E Uw eE D` bl lrw x  B eE"s    s-  Csl&ff &f r[qr[qkf[qkf[q((fm+fm+00sxyDATADATADATADATADATADATADATA~ Sl\2 "1123LT6 < S2 2 \]]r@\\\IqM]@\\IqM]@\\IqM]\\U(U^"]]\3gJ 4]]"]\}`$^ "]F]K}8^# "]4]q 5L^j]]](>X]|]%@`^#X]j]ZKt^@]X]fm+^]]rT,`{]QF]>G77777P\fSfSfSfSxSxSxSSSS!START OF MANDELBROT GRAPHIC.! 22.11.85 WI/1!INSTALL [ZZSYS]CGLFPU.TSKINSTALL [ZZSYS]CGLGRT.TSKINSTALL [zzsys]PROF77.TSK RUN APFELMREMOVE/REGION CGLFPU REMOVE CGL$GR' SUBROUTINE CHAOS3(MX,MY,SX,SY,DX,DY,N)C 20.11.85 WI/1$C MANDELBROT-GRAPHIC MAIN ALGORITHM.CC FUNCTIONAL DESCRIPTION :C=C The color of a point in the complex plane is evaluated by aC special algorithm :@C This program starts computing at a position SV -> SX/SY in the<C complex plane.It scanns the plane in X- and Y-Direction by<C incrementing the current position with a Delta-Value DV ->AC DX:MX / DY:MY resulting in a new current position CP = SV + DV.:C This new position is the input for the mentioned special?C algorithm SA = (SA - CP)**2.This special algorithm generates =C parts of the so called Mandelbrot-Set,named after Benoit B.6C Mandelbrot an IBM-Scientist at the Watson-Institute.BC This algorithm is applied in a iteration loop on every point in CC the selected window.Iteration stops when a limit (B00) is reached@C or when the selected number of iterations (N) was exceeded.TheAC actual number of iterations (K) is a measure for the color of a&C specific point in the 00{complex plane.CC Calling Sequence :C#C CALL CHAOS3(MX,MY,SX,SY,DX,DY,N)C C Where :C3C IN -> MX =: Horizontal resolution in points.1C IN -> MY =: Vertical resolution in points.5C IN -> SX =: X-Startvalue in the Complex Plane.5C IN -> SY =: Y-Startvalue in the Complex Plane.(C IN -> DX =: X-Dimension of window(C IN -> DY =: Y-Dimension of window/C IN -> N =: Number of planned iterationsCBC The graphic part is implemented in CORE.The subroutine expects a0C proper initialization of the used CORE-System.C INCLUDE 'LB:[1,5]CGL.FTN'C COMPLEX CP,SA,B0,B00 REAL*4 SX,SY,DX,DY,X,Y+ INTEGER*2 K,N,IX,IY,MX,MY,INDEX,COLMAP(24)CC DEFINE COLOR MAP :C- DATA COLMAP/ 3,2,2, !ENTRY-0 = BACKGROUND.! * 7,0,0, !ENTRY-1 = RED.# * 0,7,0, !ENTRY-1 = GREEN." * 0,0,6, !ENTRY-3 = BLUE.' * 0,7,6, !ENRTY-4 = TURQUOISE.$ * 7,0,6, !ENTRY-5 = VIOLET.: * 7,7,0, !ENTRY-6 = YELLOW." * 7,1,3/ !ENTRY-7 = PINK.C( CALL CGL(GSCM,COLMAP) !SET_COLOR_MAP.C B0=(0.0,0.0) !RESET VALUE.) B00=(1000000.0,1000000.0) !CHECK VALUE.CC CHAOS COMPUTATION PART :C! DO 10 IY=1,MY !SCAN Y-POINTS. Y=SY+(IY-1)*(DY/MY)C! DO 10 IX=1,MX !SCAN X-POINTS. X=SX+(IX-1)*(DX/MX)C( CP=CMPLX(X,Y) !COMPLEX DISPLACEMENT." SA=B0 !CLEAR ITERATION VALUE. K=0 !CLEAR ITER-COUNT.CC ITERATION PART :C&5 SA=(SA-CP)**2 !SPECIAL ALGORITHM.! K=K+1 !INCREMENT ITER-COUNT.' IF(K.GT.N)THEN !CHECK FOR LAZINESS. CONTINUE ELSE1 IF(CABS(SA).GT.CABS(B00))THEN !CHECK FOR B0UND. CONTINUE ELSE GOTO 5 !AGAIN ! END IF END IFCC DRAW PICTURE :C, INDEX=MOD(K,8) !COMPUTE COLOR MAP ENTRY.+ CALL CGL(GSWI,INDEX) !SET_WRITING-INDEX.C* IF(IX.EQ.1)THEN !SUPPRESS RETURN LINE." CALL CGL(GMA2,X,Y) !MOVE_ABS_2. ELSE" CALL CGL(GLA2,X,Y) !LINE_ABS_2. END IFC 10 CONTINUEC RETURNC END' SUBROUTINE CHAOS4(MX,MY,SX,SY,DX,DY,N)C 20.11.85 WI/2$C MANDELBROT-GRAPHIC MAIN ALGORITHM.CC FUNCTIONAL DESCRIPTION :C=C The color of a point in the complex plane is evaluated by aC special algorithm :@C This program starts computing at a position SV -> SX/SY in the<C complex plane.It scanns the plane in X- and Y-Direction by<C incrementing the current position with a Delta-Value DV ->AC DX:MX / DY:MY resulting in a new current position CP = SV + DV.:C This new position is the input for the mentioned special=C algorithm SA = SA**2 + CP.This special algorithm generates =C parts of the so called Mandelbrot-Set,named after Benoit B.6C Mandelbrot an IBM-Scientist at the Watson-Institute.BC This algorithm is applied in a iteration loop on every point in CC the selected window.Iteration stops when a limit (B00) is reached@C or when the selected number of iterations (N) was exceeded.TheAC actual number of iterations (K) is a measure for the color of a&C specific point in the complex plane.CC Calling Sequence :C#C CALL CHAOS4(MX,MY,SX,SY,DX,DY,N)C C Where :C5C IN -> MX =: Horizontal resolution in points.3C IN -> MY =: Vertical resolution in points.7C IN -> SX =: X-Startvalue in the Complex Plane.7C IN -> SY =: Y-Startvalue in the Complex Plane.*C IN -> DX =: X-Dimension of window*C IN -> DY =: Y-Dimension of window1C IN -> N =: Number of planned iterationsCBC The graphic part is implemented in CORE.The subroutine expects a0C proper initialization of the used CORE-System.C INCLUDE 'LB:[1,5]CGL.FTN'C COMPLEX CP,SA,B0 REAL*4 SX,SY,DX,DY,X,Y+ INTEGER*2 K,N,IX,IY,MX,MY,INDEX,COLMAP(24)CC DEFINE COLOR MAP :C- DATA COLMAP/ 3,2,2, !ENTRY-0 = BACKGROUND.! * 7,0,0, !ENTRY-1 = RED.# * 0,7,0, !ENTRY-1 = GREEN." * 0,0,6, !ENTRY-3 = BLUE.' * 0,7,6, !ENRTY-4 = TURQUOISE.$ * 7,0,6, !ENTRY-5 = VIOLET.: * 7,7,0,00TADATADATADATADATADATA !ENTRY-6 = YELLOW." * 7,1,3/ !ENTRY-7 = PINK.C( CALL CGL(GSCM,COLMAP) !SET_COLOR_MAP.C B0=(0.0,0.0) !RESET VALUE.CC CHAOS COMPUTATION PART :C! DO 10 IY=1,MY !SCAN Y-POINTS.+ Y=SY+(IY-1)*(DY/MY) !CURRENT Y-POSITION.C! DO 10 IX=1,MX !SCAN X-POINTS.+ X=SX+(IX-1)*(DX/MX) !CURRENT X-POSITION.C( CP=CMPLX(X,Y) !COMPLEX DISPLACEMENT." SA=B0 !CLEAR ITERATION VALUE. K=0 !CLEAR ITER-COUNT.CC ITERATION PART :C$5 SA=SA*SA+CP !SPECIAL ALGORITHM.! K=K+1 !INCREMENT ITER-COUNT.' IF(K.GT.N)THEN !CHECK FOR LAZINESS. CONTINUE ELSE, IF(CABS(SA).GT.2.0)THEN !CHECK FOR B0UND. CONTINUE ELSE GOTO 5 !AGAIN ! END IF END IFCC DRAW PICTURE :C, INDEX=MOD(K,8) !COMPUTE COLOR MAP ENTRY.+ CALL CGL(GSWI,INDEX) !SET_WRITING-INDEX.C* IF(IX.EQ.1)THEN !SUPPRESS RETURN LINE." CALL CGL(GMA2,X,Y) !MOVE_ABS_2. ELSE" CALL CGL(GLA2,X,Y) !LINE_ABS_2. END IFC 10 CONTINUEC RETURNC END  Dear DECUS Member,= this diskette contains five tasks.APFEL1 ... APFEL4 are for ? experimental purposes only.In APFELM all functions tried up to now are included.@ The tasks and all subroutines needed are written in FORTRAN_77.> They work well with P/OS V2.0A,later releases are supposed to( function too.All sources are included. B To start any of the tasks you must first install the CORE graphic@ cluster-library and,if you intend to use the playback facility,B install the file-read-task (CGLGRT).All preliminary action needed9 you can find in the indirect command-file APFELMRUN.CMD.9 A typical set of start-parameters for the task APFELM is X = -2.0 Y = -2.0 Window = 5.0 Iterations = 50 Resolution = 5? When you use the Graphic-Microscope the cursor position is the@ origin of a new picture.You can change the origin with the four> Cursor-Keys and select a specific origin with the Select-Key.? To continue with a new frame you have to press the Resume-Key.A When you intent to save a picture on disk be sure to have enough; space.The disk-space used for GIDIS-Metafiles is enormous.  Aachen,December 1985 R.J.Wilden% SUBROUTINE YESNO(IFILE,YES,IW,ITEXT)C 04.05.83 WI/4%C YES/NO SWITCH FOR DIALOG PROGRAMMS.C IFILE := FILECODEC YES := SWITCHC IW := STRING LENGTHC ITEXT := STRINGC CHARACTER ITEXT(IW),IANS LOGICAL YESC WRITE(IFILE,'(1H+,'' '')') WRITE(IFILE,'(1X,72A1)')ITEXT$ WRITE(IFILE,'(1H$,''Y/N [N] : '')') READ(IFILE,'(A)')IANS YES=.FALSE.) IF(IANS.EQ.'Y'.OR.IANS.EQ.'y')YES=.TRUE. RETURN END5 Description of program RHP.5 --------------------------.L This program converts a file of ReGIS graphics commands (as used by theL VT125 and VT240 terminals) into Hewlett-Packard Graphics LanguageL (HP-GL) (as used on the 7470A plotter), and sends them to the plotterL via an HPIB interface. All ReGIS commands are parsed, but only a subsetL (sufficient for line graphs with labelling, and including macrographs)00L is sent to the plotter. The resulting graph is designed to fit on A4L paper, and is approximately the same size as that produced using theL 'expanded print' option of the VT240. The program is designed toL facilitate the addition of extra ReGIS commands or the use of an' alternative interface (e.g. RS232).  [301,30]ABSTRCT.TXT CI&C Title: Error routinesCM=C Function Name: ERRDSW Check Directive status returnB/C ERRFCS Check FCS error,<C ERRISB Check IO status block returnCS!C File Name: ERROR.FTN"C)#C Author: E.D.Willink CCC Description:JC Three functions to check standard QIO and directive status returnsC C Modification List:(C 1.A Date: 26-JUN-81 ORIGINALEC 1.B Date: 28-OCT-82 Use LENGTH not LEN as length functionKC BH 1.C Date: 15-APR-83 Declare functions as LOGICAL, not LOGICAL*2T=C EDW 1.D Date: 14-SEP-83 Correct declaration of ERRISB.C.C Restrictions:BC"C Calling Sequence:1C)9C IF(ERRDSW(LUNMSG,IDSW,LUNERR,'Message')) GOTO 999'9C IF(ERRFCS(LUNMSG,IFCS,LUNERR,'Message')) GOTO 999 9C IF(ERRISB(LUNMSG,IOSB,LUNERR,'Message')) GOTO 999(CAC External Routines called:FC2C QIOSYMC'C Parameter List:"C Inputs :FC LUNMSG INTEGER*2 LUN to be used for the error messageHC - assigned by the user (normally to TI:)LC LUNERR INTEGER*2 LUN to be used to look up the message fromKC LB:[1,2]QIOSYM.MSG - unassigned by the user.MC 'Message' LOGICAL*1 array containing an additional text message <C to accompany the system textMC IDSW INTEGER*2 directive status return from directive call0LC IFCS(2) INTEGER*2 array containing the FCS error in low byte8C IOSB(2) INTEGER*2 array I/O status blockC7C Outputs:*C LOGICAL Output declaration,C .TRUE. If an error occurred5C .FALSE. If no error condition existedNDC was output to MSGLUN:C Output text: (Produced only if an error exists)CNC |TT5 -- Message$C |TT5 -- PRIVILEGE VIOLATION7C |TT5 -- DSW low byte = "360 DSW high byte = "0ICEC Common Blocks: C NoneCOCEND. FUNCTION ERRDSW(LUNMSG,IDSW,LUNERR,TEXT)" LOGICAL*1 TEXT(64),TSKNAM(6) LOGICAL ERRDSW INTEGER*2 TSKBUF(16)( EQUIVALENCE (TSKNAM(1),TSKBUF(10)) ERRDSW=.FALSE.$ IF((IDSW.AND."200).EQ.0)RETURN ERRDSW=.TRUE.) CALL GETTSK(TSKBUF)N" CALL R50ASC(6,TSKBUF,TSKNAM)! NUMBER="600-(IDSW.AND."377)(D WRITE(LUNMSG,1000)(TSKNAM(I),I=1,6),(TEXT(I),I=1,LENGTH(TEXT))1000 FORMAT(' '6A1' -- ',64A1):' CALL QIOSYM(LUNMSG,LUNERR,NUMBER)B WRITE(LUNMSG,1100); + (TSKNAM(I),I=1,6),IDSW.AND."377,(IDSW/"400).AND."377cB1100 FORMAT(' '6A1' -- DSW low byte : "'O3' DSW high byte : "'O3) RETURN END C.. FUNCTION ERRFCS(LUNMSG,IFCS,LUNERR,TEXT)" LOGICAL*1 TEXT(64),TSKNAM(6) LOGICAL ERRFCS" INTEGER*2 IFCS(2),TSKBUF(16)( EQUIVALENCE (TSKNAM(1),TSKBUF(10)) ERRFCS=.FALSE.' IF((IFCS(1).AND."200).EQ.0)RETURNo ERRFCS=.TRUE.1 CALL GETTSK(TSKBUF)i" CALL R50ASC(6,TSKBUF,TSKNAM)$ NUMBER="400-(IFCS(1).AND."377)3 IF((IFCS(1).AND."377).NE.0)NUMBER=NUMBER+"200 D WRITE(LUNMSG,1000)(TSKNAM(I),I=1,6),(TEXT(I),I=1,LENGTH(TEXT))1000 FORMAT(' '6A1' -- ',64A1)C' CALL QIOSYM(LUNMSG,LUNERR,NUMBER) + WRITE(LUNMSG,1100) (TSKNAM(I),I=1,6),g7 + IFCS(1).AND."377,(IFCS(1)/"400).AND."377,IFCS(2)B1100 FORMAT(' '6A1' -- FCS low byte : "'O3' F00TADATADATADATADATADATACS high byte : "'O3, +' FCS high word : 'I6'.')b RETURN ENDaC. FUNCTION ERRISB(LUNMSG,IOSB,LUNERR,TEXT)" LOGICAL*1 TEXT(64),TSKNAM(6) LOGICAL ERRISB" INTEGER*2 IOSB(2),TSKBUF(16)( EQUIVALENCE (TSKNAM(1),TSKBUF(10)) ERRISB=.FALSE.' IF((IOSB(1).AND."200).EQ.0)RETURN  ERRISB=.TRUE.o CALL GETTSK(TSKBUF) " CALL R50ASC(6,TSKBUF,TSKNAM)$ NUMBER="400-(IOSB(1).AND."377)D WRITE(LUNMSG,1000)(TSKNAM(I),I=1,6),(TEXT(I),I=1,LENGTH(TEXT))1000 FORMAT(' '6A1' -- ',64A1)N' CALL QIOSYM(LUNMSG,LUNERR,NUMBER) + WRITE(LUNMSG,1100) (TSKNAM(I),I=1,6),r7 + IOSB(1).AND."377,(IOSB(1)/"400).AND."377,IOSB(2) D1100 FORMAT(' '6A1' -- IOSB low byte : "'O3' IOSB high byte : "'O3, +' IOSB high word : 'I6'.') RETURN END .TITLE GCML .IDENT /M0008/  .ENABL LC; 8; Title: FORTRAN callable version of GCML;R; Routine Name: GCML;,'; File Name: [377,2]GCML.MAC ; #; Author: M.J.McCombeG9; Documentation and mods : B.Hillam.;$; Description:E; This routine allows the FORTRAN programmer to use the @; facilities of the GCML subroutine to get a command line.A; By default, GCML converts any lower case characters found :; in the command line to upper case, but this can be?; overridden by the optional IMODE parameter : see below. >; The command may come from a terminal or from a command:; file, and the source of the command is transparentB; to the calling program : GCML decides where to interrogate%; according to the rules below.HF; On entry, the user should have a LUN assigned to the terminal.D; 1) On its first attempt, GCML tries to obtain a command line@; buffer from MCR. If this fails, it prompts the terminal,%; using a user supplied prompt. <; 2) On subsequent calls, GCML continues to prompt the@; terminal until it receives an indirect command filename,E; indicated by @. The default file extension is .CMD.DF; 3) Having opened the specified file, GCML retrieves subsequent>; lines from it each time it is called until end-of-file=; is encountered. Further indirect command files may be M; specified in a command file, to a current maximum nesting depth of 3.)N; 4) Command lines beginning with ; are usually treated as comment lines4; and are not returned to the calling program.E; Control-Z from the terminal, in response to a prompt, ;; gives an error return from GCML. The possible errort!; returns are listed below.O; G; Type HELP ADD GCML STATUS for details of modifications to GCML.CA; Type HELP ADD GCML PARAMETERS for parameter list details.D?; Type HELP ADD GCML ERRORS for details of error returns.)J; Type HELP ADD GCML MODE for details of the mode control parameter.; ;3 MODEG; Using the optional IMODE parameter, the user may modify@D; the default actions of GCML, as shown below. Particular bits>; need to be set/cleared in IMODE for given actions. The@; default conditions are marked with an asterisk (*). Note;; that, since the entire IMODE parameter is copied toT;; the internal GCML mode control location, not simply 4; OR-ed with it, the user must ensure that allB; of the bits have their correct default values if no change; is required.;u?; * Bit 0 set. Command lines beginning with ; are treatedoE; as comments, and are not returned to the caller.uC; Bit 0 clear. Command lines beginning with ; are returned to ; the caller.K; * Bit 1 set. Command lines beginning00 with @ are treated as indirect-; command file specifiers.tJ; Bit 1 clear. Command lines beginning with @ are passed back to theN; calling program without being treated as indirect command%; file specifiers.aK; * Bit 2 set. The command file being read is to be closed after each "; call to GCML.M; Bit 2 clear. The command file being read is not closed. In this case, D; the user must provide an additional file bufferF; using the task-builder ACTFIL command. The numberL; of buffers required will be one greater than the number-; of logical units in use. @; Bit 3 set. Pass the command line to the caller without4; lower to upper case comversion.E; * Bit 3 clear. Convert any lower case characters in the commandiD; line to upper case before returning the line to ; the caller.0; Bit 4 set. Continuation lines allowed.E; This option should not be enabled since there istC; insufficient buffer space allocated within thedC; routine to allow command lines of total length,0; greater than 82 characters.4; * Bit 4 clear. Continuation lines not allowed.;r;i ;3 STATUS; Modification List:%; M0003 Date: 12-AUG-81 B.HillamsD; Indirect command file nesting depth increased to 3 (from 1).;i:;BH M0004 13-AUG-81 Add optional mode control parameter.3;EDW M0005 24-AUG-81 Use PURE.I and IMPURE PSECT'sl:;BH M0006 1-SEP-81 Change PSECT IMPURE to PSECT GCMLID.F;BH M0007 23-FEB-83 Change PSECT attributes on GCMLID : RW,GBL,OVR,D3; Correct embedded command fileuJ;EDW M0008 18-MAY-84 Change PSECT attributes on GCMLID : RW,GBL,OVR,D,SAV5; to remove overlay restriction);o; Restrictions:c); Continuation mode is not allowed.F; When using GCML in an overlaid program, force the PSECT GCMLIDC; into the root segment to avoid resetting of GCML workspace.t0; This is done by ODL commands of the form+; .PSECT GCMLID,RW,D,GBL,OVRd7; .ROOT MAIN-GCMLID-*(OVLAY1,OVLAY2 ... @; On M+ 2.1 or M 4.1 or greater this is done automatically;a;C;3 PARAMETERS; Calling Sequence:t;;; CALL GCML(ILUN,IPRMPT,ILEN,IBUF,ISIZ,IERR [,IMODE])d;n; External Routines called:s;d; Parameter List: ; Inputs :C; ILUN INTEGER*2 parameter specifying LUN for use by GCML.rD; This LUN must initially be assigned to TI:, and mustE; not be used elsewhere, since GCML may re-assign it to'; indirect command files.n;e>; IPRMPT LOGICAL*1 array or Hollerith string containingD; a prompt string for use when prompting the terminal.H; GCML will prefix the string by before using it.+; Should be <= 80 characters.-;l5; ILEN INTEGER*2 character count for IPRMPT. ;fC; IMODE INTEGER*2 optional mode control parameter for GCML. C; The default values shown above will be used if thiseI; parameter is not present. Any attempt to set continuation.%; mode will be ignored.r;s; Outputs:F; IBUF LOGICAL*1 array to receive the command line from GCML.G; Must be dimensioned at least 82 in the calling program.u;o3; ISIZ INTEGER*2 character count for IBUF.o0; 0 if the command line was blank.; J; Type HELP ADD GCML ERROR for details of the error return parameter ;3 ERRORo'; IERR INTEGER*2 error return. ; 1 = Successt9; -1 = I/o error during command line inputM; -2 = GCML was unable to open/re-open specified command file.H@; -3 = Syntax error in indirect comma00TADATADATADATADATADATAnd file nameJ; -5 = Attempt to exceed maximum allowed nesting depth (3).M; -10 = End-of-file detected on first (un-nested) command file.nN; -16 = Command buffer too small for total number of characters.D; In this last case, the buffer contains as many-; characters as possible.t;uD; In addition, any valid FCS error return may be given2; when using indirect command files.;o; Common Blocks:;l; NONE;g;END .MCALL GCML$,GCMLB$; ; Define parameter offsets;eILUN=2IPRMPT=4ILEN=6IBUF=8.rISIZ=10.IERR=12. IMODE=14.b NULARG=-1n;oO .PSECT GCMLID,RW,D,GBL,OVR,SAV ;M00008 3CBLOCK: GCMLB$ 3,,,,PDL ;GCML CONTROL BLOCKr/PDL: .BLKB 80. ;PUSH DOWN LIST.PROMPT: .BLKB 82. ;PROMPT STRINGO .PSECT PURE.I,RO,I ;M00005nGCML::: MOV #CBLOCK,R0 ;GET CONTROL BLOCK ADDRESS- MOVB @ILUN(R5),F.LUN(R0) ;SET LUN.N2 MOV IPRMPT(R5),R2 ;SET PROMPT STRING+ MOV @ILEN(R5),R3 ;GET LENGTH 7 CMP R3,#80. ;LONGER THAN 80 BYTES ?t* BLT 2$ ;BR IF NOT7 MOV #80.,R3 ;FORCE MAXLENGTH TO 80.n+2$: MOV #PROMPT,R4 ;SET PROMPT A MOVB #15,(R4)+ ;Prefix prompt string by f! MOVB #12,(R4)+ ;i23$: TST R3 ;ANY PROMPT LEFT ?* BEQ 4$ ;BR IF NOT(5$: MOVB (R2)+,(R4)+ ;MOVE IT4 BEQ 4$ ;BR IF END OF STRING: SOB R3,5$ ;DECREMENT CHARACTER COUNT84$: SUB #PROMPT,R4 ;CALCULATE PROMPT LENGTH; MOV #CBLOCK,R0 ;GET CONTROL BLOCK ADDRESS.r2 MOV R4,G.PSDS(R0) ;SET PROMPT LENGTH7 MOV #PROMPT,G.PSDS+2(R0);SET PROMPT ADDRESS / CMPB (R5),#7 ;7 parameters ?o) BLT 41$ ;LT if noc9 CMP IMODE(R5),#NULARG ;Missing 7th argument ? * BEQ 41$ ;EQ if yes2 MOV @IMODE(R5),-(SP);Get the parameter BR 42$EA41$: MOV #,-(SP) ;Set default mode =42$: BIC #<^C!GE.CON>,(SP) 8 BICB #,G.MODE(R0) BISB (SP)+,G.MODE(R0)2 JSR PC,.GCML1 ;GET COMMAND LINE.' BCS ERR ;ERROR. 1 MOV G.CMLD(R0),R1 ;GET REPLY LENGTHn- MOV R1,@ISIZ(R5) ;RETURN SIZE + BEQ 200$ ;BR IF ZEROt! MOV G.CMLD+2(R0),R0 ;t# MOV IBUF(R5),R3 ;a11$: MOVB (R0)+,(R3)+ ;COPY BUFFER BACK ! SOB R1,1$ ;u7200$: MOV #1,@IERR(R5) ;RETURN SUCCESS CODE. ' RTS PC ;RETURNiERR:/ MOVB G.ERR(R0),R1 ;GET ERROR CODE , CMPB #GE.IOR,R1 ;I/O ERROR ?* BEQ 1$ ;IF EQ YES! CMPB #GE.OPR,R1 ;6* BNE 2$ ;IF NE NO.21$: MOVB F.ERR(R0),R1 ;RETURN FCS ERROR.# MOV R1,@IERR(R5) ;M! RTS PC ; 52$: MOV R1,@IERR(R5) ;RETURN GCML ERROR.  RTS PC .ENDCTJC Title: Routine to prompt for input and validate it, with defaultsCRC Routine Names: GETCDSC "C File Name: GETCDS.FTNCS"C Author: N.S. HoultCSC Description:IC This routine outputs a prompt string, and readsE5C a string. A default value isUIC returned if is typed, while may either0FC cause the program to stop, or just set a flag.IC 00 Terminal input is via GCML so that a command file HC may be specified to supply responses. SubsequentLC calls to any of the routines will retrieve responsesOC from the command file until it is exhausted, when inputDDC will revert to the terminal. Any errors from6C GCML will be treated as .C(CNC Modification List:HC 2.A 02-Sep-82 Defaults added to GETC routines to give GETCD@C EDW 2.B 28-Oct-82 Use LENGTH not LEN as length functionEC BH 2.C 10-JAN-83 Change call from MIN to MIN0 in GETCDS for -C FOR compatibility.?C Modify build command file : includeBC FORTRAN-77 compilation, compile without*C traceback code.HC NH 2.D 15-MAR-83 Modify build command file so that routine canGC be compiled under F77 without using built-inL(C command file.C BH 2.E Date: 16-MAR-83EDC Ensure that any default value is checked for3C being in the allowed range.NC NH 2.F Date: 15-May-84 LC Ensure that if default and result are same variable,KC entering an invalid value does not corrupt default.tCoC Restrictions: FC Only the first 80 characters of the prompt areC output.THC The maximum string length in GETCDS is 80 chars.FC Specified LUN must only be used by these!C routines.ECHC Calling Sequence:TOC CALL GETCDS (LUN, PROMPT, VALUE, MAXLEN,LEN,DEFALT,EOF)ICDC1C External Routines called: GCML, LENGTH, POS.C0C Parameter List:IC Inputs :FC LUN I*2 LUN for terminal (must be open and not;C used for any other purpose) JC PROMPT L*1arr Prompt string, either as quoted text or inLC an array, terminated by null. If the promptHC string includes the characters "[]", theOC default response will be inserted between them, 9C in an appropriate format.y<C MAXLEN I*2 Maximum string length (<80)9C DEFALT L*1arr Default value of responseiIC EOF L*1 TRUE if is to cause program to stopdC C Outputs:&C VALUE L*1arr Result.C LEN I*2 String lengthKC EOF L*1 Flag; if set FALSE on entry, will be set to =C TRUE if ^Z typed (i.e. )yCrC Common Blocks:C NoneCENDCFB SUBROUTINE GETCDS(LUN,PROMPT,VALUE,MAXLEN,ILEN,DEFALT,EOF)G LOGICAL*1 PROMPT(80),VALUE(MAXLEN),NULL,EOF,LINE(82),DEFALT(80)e! LOGICAL*1 PRMPT(80),BR(1) INTEGER POSN DATA NULL/0/,BR(1)/1H[/ CG2C ... FIRST FIND PROMPT AND DEFAULT STRING LENGTHSCy LD=LENGTH(DEFALT)  IPRLEN=LENGTH(PROMPT) " IF(IPRLEN.GT.80) IPRLEN=80 IF(LD.GT.80) LD=80Ce"C ... SEE IF DEFAULT TO BE PRINTEDCa" I1=POS(PROMPT,IPRLEN,BR,1) IF(I1.EQ.0) GOTO 40e DO 10 I=1,I110 PRMPT(I)=PROMPT(I) I2=I1+LD' IF(I2.GT.80.OR.LD.EQ.0) GOTO 40  DO 20 I=1,LD20 PRMPT(I1+I)=DEFALT(I)M IPRLEN=IPRLEN+LD" IF(IPRLEN.GT.80) IPRLEN=80 IF(IPRLEN.EQ.I2) GOTO 60 I2=I2+1e DO 30 I=I2,IPRLEN 30 PRMPT(I)=PROMPT(I-LD)  GOTO 60nCe&C ... NO DEFAULT -- COPY PROMPT STRINGCl40 DO 50 I=1,IPRLEN50 PRMPT(I)=PROMPT(I)Cs@C ... WRITE PROMPT AND READ RESPONSE (DO NOT CONVERT LINE TO UC)C 460 CALL GCML(LUN,PRMPT,IPRLEN,LINE,ILEN,IERR,15)00TADATADATADATADATADATAC C ... SEE IF TYPED OR C  IF(IERR.NE.1) GOTO 80g IF(ILEN.EQ.0) GOTO 90C C ... COPY STRING TO O/P BUFFERNCu ILEN=MIN0(ILEN,MAXLEN) DO 70 I=1,ILEN70 VALUE(I)=LINE(I)! IF(ILEN.EQ.MAXLEN) RETURN CAC ... CLEAR REST OF BUFFERCM I1=ILEN+1F DO 75 I=I1,MAXLENR75 VALUE(I)=NULLE RETURNC C ... iCI80 IF(EOF) STOP EOF=.TRUE. RETURNCmC ... -- RETURN DEFAULTC 90 ILEN=MIN0(MAXLEN,LD) DO 100 I=1,ILEN100 VALUE(I)=DEFALT(I)! IF(ILEN.EQ.MAXLEN) RETURN CtC ... CLEAR REST OF BUFFERC  I1=ILEN+1e DO 110 I=I1,MAXLEN110 VALUE(I)=NULL  RETURN END  .TITLE LENGTH .IDENT /1.C/  .ENABL LC; <; Title: Routine to determine length of character string; 0; Routine Name: FORTRAN entry point - LENGTH6; MACRO-11 entry points - $SCAN, .SCAN;r; File Name: LENGTH.MAC); ; Author: B.Hillam ; ; Description:I; These routines scan a character string for a null, and return theOI; number of characters preceding that null. A maximum string length J; may be specified : if not, the routines scan only 256. characters.;; Latest Modification:; 1 17-OCT-79 Original*; EDW 1.B 14-MAY-82 Get RO PSECT's rightE; EDW 1.C 27-OCT-82 Change name to LENGTH to avoid F77 clash on LEN ;t$; External Routines called: NONE; ; Restrictions: ?; If a maximum string length is not specified or is <= 0, -; only 256. characters will be checked.;;i; Calling Sequence: ; K; Parameters enclosed in [] are optional, and may be omitted.i; 4; FORTRAN CALL : N = LENGTH (ARRAY[,[MAXLEN]]);M; INPUTS :G; ARRAY LOGICAL*1 one-dimensional array containing string whoseh9; length is required, terminated by a null.oJ; MAXLEN INTEGER*2 value specifying maximum string length to check.J; If this parameter is omitted, is zero or is negative, 256.,; is used as a maximum length.; OUTPUTS : J; LENGTH INTEGER*2 return via fumction name (answer in R0) = length9; of input string, excluding trailing null. ;n; MACRO-11 CALL :f; INPUTS ::; .SCAN entry point : R0 = maximum length of string.D; $SCAN entry point : Maximum string length = 256. R0 ignored.8; Both entry points : R1 = start address of string; OUTPUTS:; R0 preserved; R1 preserved; R2 = Length of stringL;END .ENABL LSB  .PSECT PURE.I,RO,I ;.SCAN:: MOV R0,-(SP) ;Save maximum string length 6 BLE 1$ ;If < or = 0, use 256. BR 2$($SCAN:: MOV R0,-(SP) ;Save R0C1$: MOV #256.,R0 ;Check a maximum of 256. characters =2$: MOV R1,-(SP) ;Save start address of string[= CLR R2 ;Clear string character count 13$: TSTB (R1)+ ;Check for a null 0 BEQ 4$ ;EQ if one found5 INC R2 ;Count the characters : SOB R0,3$ ;Continue for 256 maximum.74$: MOV (SP)+,R1 ;Restore buffer pointer:! MOV (SP)+,R0 ;r RTS PC .DSABL LSBT;  NULARG=-1H;  ARRAY=2A MAXLEN=4; ; FORTRAN entry point ;eDLENGTH::MOV ARRAY(R5),R1 ;Get the start address of the string> CMPB (R5),#2 ;Is there a MAXLEN parameter ?* BLT 1$ ;LT if no.0 CMP MAXLEN(R5),#NULARG ;Is it null ?) BNE 002$ ;NE if nouL1$: CLR R0 ;Set to check for maximum of 256. characters BR 3$A2$: MOV @MAXLEN(R5),R0 ;Get the specified maximum lengthh03$: CALL .SCAN ;Scan the stringA MOV R2,R0 ;INTEGER*2 function return via R0  RTS PC;n .END .ENABL LC .TITLE POSt .IDENT /V1.B/7; Title: MACRO-11 version of BASIC POS function.M; Routine Name: POS &; File Name: [377,2]POS.MAC ; Author: B.Hillam; Library Name: ADDLIB; ; Description:E; This is a MACRO-11 version of a subroutine originallyOB; written by R.C.Morrey to allow FORTRAN programs to use theA; equivalent of the BASIC POS function. It scans the stringP@; STR1 looking for the first occurrence of another string,@; and returns the FORTRAN array index corresponding to theB; position of the first character. If the second string was/; not found, a value of zero is returned. C; Optional parameters allow the string being searchedc=; for to be specified as a substring of another string. ;G>; If the routine is called as POS, the calling programmeC; MUST declare POS as an INTEGER. To avoid problems, call the ; routine as IPOS.;r!; Subsidiary HELP qualifiers: ; 1; PARAMETERS STATUS EXAMPLES ;3 STATUSu; Modification List:(; 1.A Date: 27-FEB-81 ORIGINAL; 1.B Date: 13-MAR-83; Add IPOS entry point.R; Restrictions:cK; If the lengths of the strings are omitted, they must end in a null,t4; and must not exceed 256 characters in length;3 PARAMETERSc; Calling Sequence:EC; Parameters in square brackets are optional, but appropriate ?; number of commas must be inserted if parameters follow. J; Missing parameters at the end of the list need not have commas in.H; I=IPOS( STR1, [ISTR1] , STR2 [, [ISTR2] [,[ISTART]] [,[IFIN]]]); External Routines called:,4; LB:[1,1]ADDLIB/LB:LEN via $SCAN entry point.; Parameter List:O; Inputs :I; STR1 LOGICAL*1 array or Hollerith string containing the stringr; being checked.C; Must end in null (0) if character count is omitted. B; ISTR1 INTEGER*2 character count for STR1. This parameter?; is optional, but STR1 must end in null if it is #; omitted or is zero.5I; STR2 LOGICAL*1 array or Hollerith string containing the string &; to search for in STR1.C; Must end in null (0) if character count is omitted.g;H; Type HELP ADDLIB POS PARAMETERS MORE for rest of parameter data ;4 MORERB; ISTR2 INTEGER*2 character count for STR2. This parameter?; is optional, but STR2 must end in null if it iso#; omitted or is zero. G; ISTART INTEGER*2 optional parameter containing the position in <; STR2 at which the required substring starts.8; Defaults to 1 if omitted, 0 or negative.G; IFIN INTEGER*2 optional parameter containing the position ino>; STR2 at which the required substring finishes.D; Defaults to the last character in STR2 if omitted, 0; or negative.; Outputs: ; IPOSD; POS INTEGER*2 return via function, giving start position7; of STR2 (or substring of STR2) in STR1.i>; 0 if STR2 not found in STR1, STR1 length <= 0,B; STR2 substring longer than STR1, or STR2 substring; length <= 0.+; All input parameters are unchanged.o; Common Blocks: ; NONE;3 EXAMPLESd; Example calls to POS00TADATADATADATADATADATA; --------------------!; I=IPOS(STR1,7,STR2,5,2,3); J=IPOS(STR1,,'JIM')U; K=IPOS(STR1,6,'FRED')S&; L=IPOS('ABCDEFGHIJ',,STR2,6,3); ;END;-(; Define offsets for parameter list.;-STR1=2ISTR1=4PSTR2=6ISTR2=8. ISTART=10.IFIN=12.; (NULARG=-1 ;Define null argument.;,*; Define offsets for stack workspace;tRESULT=0FINISH=2START=4gSTR2L=6 STR1L=8.;c' .PSECT $CODE1,RO,I,CON,LCL,RELe;sIPOS::OPOS:: CMP ISTR1(R5),#NULARG ;Is string 1 length parameter missing ?r2 BEQ 1$ ;EQ if yes< MOV @ISTR1(R5),-(SP) ;Get string 1 length2 BGT 2$ ;OK if +ve) TST (SP)+ ;,C1$: MOV STR1(R5),R1 ;Get string 1 start addresse8 CALL $SCAN ;Evaluate length1 MOV R2,-(SP) ;Store it ?2$: CMPB (R5),#4 ;4 arguments supplied ?h2 BLT 3$ ;LT if no.O CMP ISTR2(R5),#NULARG ;Is string 2 length parameter missing ? 2 BEQ 3$ ;EQ if yes< MOV @ISTR2(R5),-(SP) ;Get string 2 length2 BGT 4$ ;OK if +ve) TST (SP)+ ; C3$: MOV STR2(R5),R1 ;Get string 2 start addressI8 CALL $SCAN ;Evaluate length1 MOV R2,-(SP) ;Store itoF4$: MOV (SP),R2 ;Get string 2 length for laterI CMPB (R5),#5 ;Are there 5 arguments supplied ?E1 BLT 5$ ;LT if no O CMP ISTART(R5),#NULARG ;Is substring start parameter missing ?e2 BEQ 5$ ;EQ if yes= MOV @ISTART(R5),-(SP) ;Get substring start. 2 BGT 6$ ;OK if +ve TST (SP)+ @5$: MOV #1,-(SP) ;Give default start of 1?6$: CMPB (R5),#6 ;6 arguments supplied ? 1 BLT 7$ ;LT if nonE CMP IFIN(R5),#NULARG ;Substring finish parameter ? 1 BEQ 7$ ;EQ if no= MOV @IFIN(R5),-(SP) ;Get substring finishi2 BGT 8$ ;OK if +ve TST (SP)+dH7$: MOV R2,-(SP) ;Give default of string 2 lengthC8$: MOV STR1(R5),-(SP) ;Get string 1 start address5$ SUB START(SP),FINISH(SP)F INC FINISH(SP) ;Character count for substring5 BLE 12$ ;Exit if <= 0A CMP FINISH(SP),STR2L(SP) ;Compare with full lengthUC BGT 12$ ;Exit if > than full stringr" ADD STR2(R5),START(SP)C DEC START(SP) ;Start address of substringO# CMP STR2L(SP),STR1L(SP) F BGT 12$ ;String 2 bigger than string 1 MOV STR1L(SP),R17 BLE 12$ ;Trap null STR1 F SUB FINISH(SP),R1 ;Evaluate number of times STR2H INC R1 ;needs to be tested against STR1= BLE 12$ ;Trap length conflict E9$: MOV RESULT(SP),R0 ;Get current string 1 pointer F MOV START(SP),R2 ;Get start address of string 2I MOV FINISH(SP),R3 ;Get character count for string 2 ;10$: CMPB (R0)+,(R2)+ ;Compare charactersn7 BNE 11$ ;NE if no matchH SOB R3,10$ ;Continue for length of string 2I MOV RESULT(SP),R0 ;Get address at which match found K SUB STR1(R5),R0 ;Subtract start address of string 1F INC R0 ;Evaluate FORTRAN array index.9 BR 13$ 00  ;Return to callerRE11$: INC RESULT(SP) ;Advance pointer for string 1#G SOB R1,9$ ;Continue until end of string 1 812$: CLR R0 ;No match found.713$: ADD #10.,SP ;Clean up stack  RETURN .ENDC*C Title: QIOSYM file readerCC Routine Name: QIOSYMC"C File Name: QIOSYM.FTNC#C Author: E.D.WillinkCC Description:NC This subroutine looks up a record in LB:[1,2]QIOSYM.MSG and outputs itC to a message LUN.C Output formatC+C TT2 -- XXXXXXXXXXXXXXXXXXXXXXXXXC C Issue:1.A Date: 26-JUN-81CC Modification List:(C 1.A Date: 26-JUN-81 ORIGINALCC Restrictions:CC Calling Sequence: C )C CALL QIOSYM(LUNMSG,LUNERR,NUMBER) Ce,C External Routines called: NoneCFC Parameter List: C Inputs :FC LUNMSG INTEGER*2 LUN on which to output messageMC LUNERR INTEGER*2 LUN to use to open LB:[1,2]QIOSYM.MSGa@C NUMBER INTEGER*2 Record number to look upC:,C Outputs: NoneC:CEND- SUBROUTINE QIOSYM(LUNMSG,LUNERR,NUMBER) " LOGICAL*1 TEXT(64),TSKNAM(6) INTEGER*2 TSKBUF(16)( EQUIVALENCE (TSKNAM(1),TSKBUF(10)) DATA MINREC/1/ DATA MAXREC/227/Ca C Get task name for messagesC  CALL GETTSK(TSKBUF) " CALL R50ASC(6,TSKBUF,TSKNAM)C "C Validate input record numberCU7 IF(NUMBER.GE.MINREC.AND.NUMBER.LE.MAXREC)GOTO 110 ) WRITE(LUNMSG,1000)(TSKNAM(I),I=1,6)p/1000 FORMAT(' '6A1' -- Nonsense error number')e RETURNC C Access fileUCG.110 CALL ASSIGN(LUNERR,'LB:[1,2]QIOSYM.MSG')$ CALL FDBSET(LUNERR,'READONLY')) DEFINE FILE LUNERR(400,32,U,NDUMMY) CAC Read recordACM2 READ(LUNERR'NUMBER,ERR=998) (TEXT(I),I=1,64)C 3C Get length of record by finding trailing nullTCA LEN=0  DO 120 I=1,64  IF(TEXT(I).EQ.0)GOTO 130 120 LEN=IBCL8C Output message, creating our own undefined messageCp$130 IF(LEN.NE.0)WRITE(LUNMSG,1300)* + (TSKNAM(I),I=1,6),(TEXT(I),I=1,LEN)1300 FORMAT(' '6A1' -- ',64A1)E$ IF(LEN.EQ.0)WRITE(LUNMSG,1400) + (TSKNAM(I),I=1,6)-1400 FORMAT(' '6A1' -- Message not defined')C C Close file and exitECL998 CALL CLOSE(LUNERR) RETURN ENDe0 Regis to HPGL Conversion Program0 --------------------------------AThis disk contains the sources and other information to construct3>this program. The files and their functions are listed below: [301,30]! README.1ST This filem; ABSTRCT.TXT Program description for publicatione; ERROR.FTN Routines to generate error messages 9 GETCDS.FTN Routine to prompt for a file namet: QIOSYM.FTN Routine to read error message file: RHP.FTN Main program and other subroutines- GCML.MAC Fortran callable GCMLi7 LENGTH.MAC Routine to get length of string D POS.MAC Routine to find position of string in string( RHP.TSK Compiled program9 RHP.CMD Command file to build the programr* RHP.DOC User documentation3 TEST.RGS Test file of ReGIS commandsnATwo additional DEC-supplied files are required: 00 !"TADATADATADATADATADATAQIOSYM.MSG, whichoAshould be in directory LB:[1,2], and IECIO.FTN (supplied with theP@IEC-11 driver), which should be in directory LB:[1,1]. If theseCfiles are in other directories, edit the source files appropriatelyF%(QIOSYM.FTN or RHP.FTN respectively).pDThe driving of the plotter is all carried out through the subroutineDIEEE (entry points IEEINI, IEEWRT and IEEEXI) in RHP.FTN. Note thatCan HPIB address of 9 for the computer and 31 (i.e. listen only) fore@the plotter are assumed. To change the computer address, changeGparameter COMADR in routine IEEE (in file RHP.FTN). To use a different):interface (e.g. RS232), only this routine need be changed.;s; FORTRAN COMPILES; F77 RHP=RHPRF77 ERROR=ERROREF77 GETCDS=GETCDS=F77 QIOSYM=QIOSYMY;I; MACRO ASSEMBLESS;B MAC GCML=GCMLBMAC LENGTH=LENGTHL MAC POS=POS; ; TASK BUILD; .OPEN RHP.BLD .ENABLE DATA1RHP/CP/FP=RHP,ERROR,GETCDS,QIOSYM,GCML,LENGTH,POSMLB:[1,1]F77OTS/LBB/, ASG=TI:4:5:6 ASG=SY:2:3ASG=IE:1// .DISABLE DATA/.CLOSE TKB @RHP.BLD@PIP RHP.OBJ;*/DE,ERROR;*,GETCDS;*,QIOSYM;*,GCML;*,LENGTH;*,POS;*PIP RHP.BLD;*/DEPIP RHP.TSK/PU2 Title: ReGIS to HP-GL Conversion Program Routine Name: RHP File Name: RHP.FTN Author: N. Hoult  Description:o> This routine converts a file of ReGIS commands into HP-GLB commands for the 7470A plotter, which it drives down the HPIB@ interface. The plotter should be set to 'listen only' modeA (i.e. HPIB address 31); the computer HPIB address is assumedP@ to be 9. If this is not the case, edit parameter COMADR inE routine IEEE (in this file) appropriately. Any ReGIS command isi2 accepted, only the following are interpreted:B S(E) - Interpreted as end of plot. Program pauses. for paper to be changed/ S(A[..][..])- Interpreted as for VT1252F W(F..) - Interpreted as pen select. Note that pen 1 and6 pen 3 produce the same results.F W(P..) - Select writing pattern. Pattern 1 (the default)D is a solid line, but the other numbers do notE necessarily correspond to the same patterns asaI on the VT125. The form W(P10110) is not accepted.d- W(P(M..)) - Set pattern multipliere. T(S..) - Text size, as for VT125 T'...'.) OR T"..." - Text, as for VT1252D P[..][..].. - Cursor move, as for VT125. Both absolute andF relative moves are allowed, but x and y must beH both absolute or both relative: a warning messageF is printed if not. Both this and the V commandF may be split between coordinate pairs to occupyF several lines; other commands may not be split.; V[..][..].. - Vector command. See comments above.eC To use, install as ...RHP (or use 'catchall' feature), connectc< plotter to HPIB and set its address to 31. Type either RHP  oro RHPH6 (in which case it will prompt for the file name). Modification List:t% 1.A Date: 12-Nov-84 ORIGINALAK 1.B Date: 15-Nov-84 Correct text position, ignore carr. ctl. charsr- 1.C Date: 16-Nov-84 Trap HPIB errorsr. 1.D Date: 20-Nov-84 Take command line> 1.E Date: 26-Nov-84 Better parsing - take macrographs? 1.F Date: 29-Nov-84 Better parsing - take T'...' '...'.+ 1.G Date: 07-Dec-84 Accept W(P...).A 1.H00"# Date: 20-Mar-85 Fix bug with zero-length input linesG 1.I Date: 17-Apr-85 Fix bugs with pattern control + absence ofo. carriage controls: 1.J Date: 12-Dec-85 Make HPIB address a parameterG Restrictions: Maximum macrograph length, and maximum length of L a line after interpreting macrographs, is 1000 chars.C Calling Sequence: Connect plotter to HPIB, type RHP hG External Routines called: GETCDS, IPOS, LENGTH, ERRISB, ERRDSWl Common Blocks: NonemCP3C Title: ReGIS to HP-GL Conversion Program C C Routine Name: RHPEC C File Name: RHP.FTN C= C Author: N. HoultC C Description:CI?C This routine converts a file of ReGIS commands into HP-GL0CC commands for the 7470A plotter, which it drives down the HPIB AC interface. The plotter should be set to 'listen only' modeOBC (i.e. HPIB address 31); the computer HPIB address is assumedBC to be 9. If this is not the case, edit parameter COMADR inFC routine IEEE (in this file) appropriately. Any ReGIS command is3C accepted, only the following are interpreted:OCCC S(E) - Interpreted as end of plot. Program pausesN/C for paper to be changed C 0C S(A[..][..])- Interpreted as for VT125C GC W(F..) - Interpreted as pen select. Note that pen 1 andP7C pen 3 produce the same results. C GC W(P..) - Select writing pattern. Pattern 1 (the default) EC is a solid line, but the other numbers do notIFC necessarily correspond to the same patterns asJC on the VT125. The form W(P10110) is not accepted.C .C W(P(M..)) - Set pattern multiplierCT/C T(S..) - Text size, as for VT125C C T'...'*C OR T"..." - Text, as for VT125CUEC P[..][..].. - Cursor move, as for VT125. Both absolute andAGC relative moves are allowed, but x and y must beIC both absolute or both relative: a warning message GC is printed if not. Both this and the V commandGC may be split between coordinate pairs to occupyGC several lines; other commands may not be split. CD<C V[..][..].. - Vector command. See comments above.CC Modification List:&C 1.A Date: 12-Nov-84 ORIGINALLC 1.B Date: 15-Nov-84 Correct text position, ignore carr. ctl. chars.C 1.C Date: 16-Nov-84 Trap HPIB errors/C 1.D Date: 20-Nov-84 Take command line?C 1.E Date: 26-Nov-84 Better parsing - take macrographs @C 1.F Date: 29-Nov-84 Better parsing - take T'...' '...',C 1.G Date: 07-Dec-84 Accept W(P...)BC 1.H Date: 20-Mar-85 Fix bug with zero-length input linesHC 1.I Date: 17-Apr-85 Fix bugs with pattern control + absence of/C carriage controls ;C 1.J Date: 12-Dec-85 Make HPIB address a parametertC HC Restrictions: Maximum macrograph length, and maximum length ofMC a line after interpreting macrographs, is 1000 chars.eC DC Calling Sequence: Connect plotter to HPIB, type RHP CtHC External Routines called: GETCDS, IPOS, LENGTH, ERRISB, ERRDSWCnC Common Blocks: NoneCdCENDC 5 LOGICAL REGIS,DRWING,RELPLT,XREL,YREL,ERROR,EOFIF BYTE BUFFER(100000#"TADATADATADATADATADATA),FILE(37),COMD(140),TEMP(80),ESC,CQT,INBUF(140)5 DATA LUNIE,LUNFIL,LUNCMD,LUNTI,LUNTO/1,2,4,5,6/ CeC IdentifyCo WRITE (LUNTO,1)21 FORMAT(' RHP -- Issue: 1.J Date: 12-Dec-85')C C Set variables C  REGIS=.FALSE.a DRWING=.FALSE. RELPLT=.FALSE. SIZE=1. IPEN=0 XSENS=1. YSENS=-1.p IPM=2s IPAT=1 CALL FLGINI C C Initialise interfaceCh CALL IEEINI(LUNIE)G CALL IEEWRT(LUNIE,'IN;IP100,670,10200,6980;IW90,660,10210,6990;') 5 CALL IEEWRT(LUNIE,'SC0,767,479,0;SI0.20,0.33;')eCdC Open file C = CALL GETCDS(LUNCMD,'ReGIS Input File []> ',FILE,37,LEN, ' 1 'SY:DATA.RGS',.TRUE.) ? OPEN (UNIT=LUNFIL,FILE=FILE,STATUS='OLD',READONLY,SHARED)rCuC Main loop C(C Read a linetCz+10 READ (LUNFIL,990,END=80) INLENG,INBUF.990 FORMAT(Q,140A1)f@C !1.H@C If zero length, get another line !1.H@C !1.H@ IF (INLENG.EQ.0) GOTO 10 !1.HCt2C Strip spaces, tabs, nulls and non-Regis textC  CALL RGSLNE(INBUF,INLENG)oCnC Interpret macrographs C + CALL MGRAPH(INBUF,INLENG,BUFFER,LENG)  IPOINT=1CC Get commandsC 20 CONTINUE8 IF (IPOINT.GT.LENG) GOTO 10 !Finished this line D WRITE (LUNTO,6000) IPOINT,>D 1 (BUFFER(I),I=MIN(IPOINT,LENG),MIN(IPOINT+19,LENG))6D6000 FORMAT(' * IPOINT=',I3,' BUFFER="',20A1,'..."')CsC Look for a ReGIS commandCe1 CALL COMAND(BUFFER,LENG,IPOINT,COMD,LENCMD)r5 IF (LENCMD.EQ.0) GOTO 10 !No command found8C  IF (COMD(1).EQ.'S') THENC;C S command -- Interpret S(E) as pause to change paper,:0C S(A[u,v][x,y]) as set mappingC  I=IPOS(COMD,,1HE,1)i IF (I.NE.0) THEN" CALL IEEWRT(LUNIE,'SP;')% CALL READY(LUNTI,LUNTO,EOF)  IF (EOF) GOTO 80 IF (IPEN.NE.0) THEN % ENCODE(7,995,TEMP) IPEN,0l"995 FORMAT('SP',I3,';',A1)# CALL IEEWRT(LUNIE,TEMP)r ENDIF, ENDIFe I=IPOS(COMD,,2HA[,2) IF (I.NE.0) THEN> CALL COORDS(COMD,LENCMD,I,IXTL,IYTL,XREL,YREL,ERROR) IF (ERROR) GOTO 30> CALL COORDS(COMD,LENCMD,I,IXBR,IYBR,XREL,YREL,ERROR) IF (ERROR) GOTO 30 XSENS=1. YSENS=1.% IF (IXBR.LT.IXTL) XSENS=-1.(% IF (IYTL.LT.IYBR) YSENS=-1.N5 ENCODE (27,1010,TEMP) IXTL,IXBR,IYBR,IYTL,0T51010 FORMAT('SC',I5,',',I5,',',I5,',',I5,';',A1)-! CALL IEEWRT(LUNIE,TEMP) ENDIF=30 CONTINUE# ELSE IF (COMD(1).EQ.'W') THEN C FC W Command -- only interpret W(Fn) as pen select, W(Pn) as select9C pattern and W(P(Mn)) as set multiplierrCe! I=IPOS(COMD,LENCMD,1HF,1)  IF (I.NE.0) THEN I=I+10+ CALL VALUE(COMD,LENCMD,I,J,ERROR)U IF (.NOT.ERROR) THEN IPEN=J$ ENCODE(10,1020,TEMP) J,0%1020 FORMAT('PU;SP',I3,';',A1)  DRWING=.FALSE.# CALL IEEWRT(LUNIE,TEMP)E ENDIF' ENDIFD J=1  IPATT=IPAT IPMT=IPM*31 I=IPOS(COMD(J),LENCMD-J,1HP,1)+J-14 IF (I.EQ.J-1) GOTO 32 !No W(P...B J=I+1 !COMD(J) is char after P$D WRITE (LUNTO,1021) J,COMD(J))D1021 FORMAT(' ** COMD(',I3,')=',A1,I3) IF (COMD(J).EQ.'(') THEND WRITE (LUNTO,1022)*D1022 FORMAT(' ** PROCESSING W(P(..)'). K=IPOS(COMD(J),LENCMD+1-J,1H),1)+J-1 IF (K.GT.J+2) THEN& IF (COMD(J+1).EQ.'M') THEN1 CALL VALUE(COMD,LENCMD,J+2,I,ERROR)T$ IF (.NOT.ERROR) IPMT=I ENDIF( ENDIFO: ELSE IF (COMD(J).GE.'0' .AND. COMD(J).LE.'9') THEND WRITE (LUN00#TO,1023)*D1023 FORMAT(' ** PROCESSING W(Pnnn)')+ CALL VALUE(COMD,LENCMD,J,I,ERROR)"/ IF (.NOT.ERROR .AND. I.LT.10) IPATT=I ENDIFF GOTO 31M032 IF (IPMT.NE.IPM .OR. IPATT.NE.IPAT) THEN IPAT=IPATT IPM=IPMTL IF (IPATT.NE.1) THEN !1.I3 ENCODE (9,1032,TEMP) IPATT-1,IPMT*0.9,0+1032 FORMAT('LT',I1,',',F3.1,';',A1)EL ELSE !1.IL ENCODE (4,1033,TEMP) 0 !1.IM1033 FORMAT('LT;',A1) !1.IAL ENDIF !1.I! CALL IEEWRT(LUNIE,TEMP) ENDIFC# ELSE IF (COMD(1).EQ.'T') THENECR;C T Command -- look for T(Sn) and T'.......'/T"......."DCN! I=IPOS(COMD,LENCMD,1H(,1) ! J=IPOS(COMD,LENCMD,1H',1) ! K=IPOS(COMD,LENCMD,1H",1) 3 IF (K.NE.0 .AND. (J.EQ.0 .OR. K.LT.J)) THENL J=K= CQT=1H"O ELSE CQT=1H'I ENDIF 3 IF (I.NE.0 .AND. (J.EQ.0 .OR. I.LT.J) .AND. " 1 COMD(I+1).EQ.'S') THENCNC Command is T(Snn) C  I=I+2E. CALL VALUE(COMD,LENCMD,I,ISIZ,ERROR) IF (.NOT.ERROR) THEN SIZE=ISIZ # IF (ISIZ.EQ.0) SIZE=0.5i5 ENCODE(17,1030,TEMP) 0.2*SIZE,0.33*SIZE,0 -1030 FORMAT('SI',F6.3,',',F6.3,';',A1)A# CALL IEEWRT(LUNIE,TEMP)  ENDIFR ENDIF  IF (J.NE.0) THENCO!C Command is T'...' or T"..."OCT, K=IPOS(COMD(J+1),LENCMD-J,CQT,1)+J) IF (K.NE.0 .AND. K.NE.J+1) THEN @ ENCODE(17,1035,TEMP) XSENS*SIZE*1.5,-YSENS*SIZE*15,001035 FORMAT('PR;PU',F4.1,',',F5.0,';',A1)# CALL IEEWRT(LUNIE,TEMP)O RELPLT=.TRUE. DRWING=.FALSE.? ENCODE(K-(J+1)+4,1040,TEMP) (COMD(L),L=J+1,K-1),3,0)(1040 FORMAT('LB',A1,2A1)# CALL IEEWRT(LUNIE,TEMP)'? ENCODE(14,1045,TEMP) XSENS*SIZE*1.5,YSENS*SIZE*15,0C-1045 FORMAT('PU',F4.1,',',F5.0,';',A1)M# CALL IEEWRT(LUNIE,TEMP)J ENDIF ENDIF1# ELSE IF (COMD(1).EQ.'P') THENLCC1C P Command -- check for absolute or relativeRC IPT=1 @ CALL COORDS(COMD,LENCMD,IPT,IXPOS,IYPOS,XREL,YREL,ERROR) IF (ERROR) GOTO 50! IF (XREL .AND. YREL) THEN 3 IF (.NOT.RELPLT) CALL IEEWRT(LUNIE,'PR;')E RELPLT=.TRUE.0 ELSE IF (.NOT.XREL .AND. .NOT.YREL) THEN. IF (RELPLT) CALL IEEWRT(LUNIE,'PA;') RELPLT=.FALSE. ELSE WRITE (LUNTO,3000)C3000 FORMAT(' ** WARNING ** Mixed relative/absolute position') ENDIF* ENCODE(15,1050,TEMP) IXPOS,IYPOS,0%1050 FORMAT('PU',I5,',',I5,';',A1)' CALL IEEWRT(LUNIE,TEMP) 50 DRWING=.FALSE.# ELSE IF (COMD(1).EQ.'V') THEN C 1C V Command -- check for absolute or relative C IPT=1@ CALL COORDS(COMD,LENCMD,IPT,IXPOS,IYPOS,XREL,YREL,ERROR) IF (ERROR) GOTO 70! IF (XREL .AND. YREL) THEN 3 IF (.NOT.RELPLT) CALL IEEWRT(LUNIE,'PR;')I RELPLT=.TRUE.0 ELSE IF (.NOT.XREL .AND. .NOT.YREL) THEN. IF (RELPLT) CALL IEEWRT(LUNIE,'PA;') RELPLT=.FALSE. ELSE WRITE (LUNTO,3000) ENDIF * ENCODE(15,1060,TEMP) IXPOS,IYPOS,0%1060 FORMAT('PD',I5,',',I5,';',A1)L CALL IEEWRT(LUNIE,TEMP)H70 DRWING=.TRUE. ELSE/ WRITE (LUNTO,3100) (COMD(I),I=1,LENCMD)0<3100 FORMAT(' *** Unrecognised command "',A1,'"') ENDIF CTC Get next commandCE GOTO 20LCLC End of fileICR80 CALL IEEWRT(LUNIE,'SP;') CALL IEEEXI(LUNIE) CLOSE (UNIT=LUNFIL). STOP END 4 SUBROUTINE COMAND(LINE,LENG,POINT,COMD,LENCMD)+ INTE00#"TADATADATADATADATADATAGER START,END,POINT,SBRCNT,RBRCNT  LOGICAL QUOTE,LLOADP* BYTE LINE(*),COMD(*),CHAR,CQT,FSTCHRCF"C Check if anything to processC. LENCMD=0 COMD(1)=0P LLOAD=.FALSE., IF (POINT.GE.LENG) RETURNNCKC Skip to valid commandNCE DO 1 I=POINT,LENG*B IF (LINE(I).EQ.'W' .OR. LINE(I).EQ.'S' .OR. LINE(I).EQ.'T'B 1 .OR.LINE(I).EQ.'P' .OR. LINE(I).EQ.'V' .OR. LINE(I).EQ.'C'6 2 .OR.LINE(I).EQ.'L' .OR. LINE(I).EQ.'R') GOTO 2B IF (LINE(I).EQ.'[' .OR. LINE(I).EQ.'(' .OR. LINE(I).EQ.1H'" 1 .OR.LINE(I).EQ.1H") GOTO 31 CONTINUE RETURN2 FSTCHR=LINE(I) I=I+1S IF (I.GT.LENG) RETURNO 3 POINT=I'D TYPE 6020,I 4D6020 FORMAT(' ** FOUND VALID COMMAND AT POINT=',I5)C C Initialise variablesC( START=POINTC SBRCNT=0 RBRCNT=0 QUOTE=.FALSE.C7C Set flag for L"... command (only terminated by ;),CO2 LLOAD=FSTCHR.EQ.'L' .AND. LINE(POINT).EQ.1H"C ?C Read command till we have had either ', (, or [ and untilTBC the number of '/" is even AND the number of ( = number of ):C AND number of [ = number of ] OR until an unquoted ;C,10 CHAR=LINE(POINT) IF (CHAR.EQ.'(') THEN  RBRCNT=RBRCNT+10 ELSE IF (CHAR.EQ.')') THEN RBRCNT=RBRCNT-1t ELSE IF (CHAR.EQ.'[') THEN SBRCNT=SBRCNT+1I ELSE IF (CHAR.EQ.']') THEN SBRCNT=SBRCNT-1LD ELSE IF ((CHAR.EQ.1H' .OR. CHAR.EQ.1H") .AND. .NOT.QUOTE) THEN QUOTE=.TRUE. CQT=CHAR, ELSE IF (CHAR.EQ.CQT .AND. QUOTE) THEN QUOTE=.FALSE.( ENDIFP POINT=POINT+1ECR*C Terminate any command at end of lineCR IF (POINT.GT.LENG) GOTO 15CN1C Terminate any command at unquoted semicolonPC.6 IF (LINE(POINT).EQ.';' .AND. .NOT.QUOTE) GOTO 15C 2C For L"... command, this is only terminatorC  IF (LLOAD) GOTO 10C8C Otherwise, carry on till brackets and quotes matchC1: IF (QUOTE .OR. RBRCNT.NE.0 .OR. SBRCNT.NE.0) GOTO 1015 END=POINT-1L LENCMD=END-START+1 IF (LENCMD.LE.0) THENE LENCMD=0 RETURN ENDIFD COMD(1)=FSTCHR DO 20 I=0,LENCMD-1 COMD(I+2)=LINE(START+I)T20 CONTINUE LENCMD=LENCMD+1O COMD(LENCMD+1)=0$D TYPE 1000,(COMD(I),I=1,LENCMD).D1000 FORMAT(' * COMMAND IS "',A1,'"') RETURN END # SUBROUTINE IEEE(LUNIE,BUFFER)L BYTE BUFFER(*) BYTE TLKCMD(2),RENCMDN: INTEGER*2 IPRM(6),IOSB(2),COMADR,COMREN,COMTLK !1.J LOGICAL ERRISB,ERRDSWC8C Change this if your computer HPIB address is not 9C : PARAMETER (COMADR=9) !1.JCR: PARAMETER (COMREN=COMADR+"60,COMTLK=COMADR+"120)!1.J9 DATA RENCMD/COMREN/ !1.J Remote enable computer G DATA TLKCMD/"77,COMTLK/ !1.J Unlisten, computer 'my talk address'I DATA LUNERR,LUNTO/3,6/ RETURNCI/C IEEINI -- Attach and initialise interface CE ENTRY IEEINI(LUNIE)1! INCLUDE 'LB:[1,1]IECIO.FTN'OD WRITE (5,1000))D1000 FORMAT(' * Initialising interface')+D IF (.TRUE.) RETURN CALL ASSIGN(LUNIE,'IE:')C6C Attach interfaceCO0 CALL WTQIO(IOFATC,LUNIE,LUNIE,,IOSB,,IDSW)C IF (ERRDSW(LUNTO,IDSW,LUNERR,'Failed to attach IE:')) GOTO 200C IF (ERRISB(LUNTO,IOSB,LUNERR,'Failed to attach IE:')) GOTO 20rCa>C Remote enable computer (plotter doesn't have local mode)C! CALL GETADR(IPRM(1),RENCMD)  IPRM(2)=1o IPRM(3)=0  IPRM(4)=0  IPRM(5)=0t IPRM(6)=0n4 CALL WTQIO(IOFREN,LUNIE,LUNIE,,IOSB,IPRM,IDSW)F IF (ERRDSW(LUNTO,IDSW,LUNERR,'Failed to remote enable')) GOTO 10F IF (ERRISB(LUNTO,IOSB,LUNERR,'Failed to remote enable')) GOTO 10CCC Set computer as talkerC.! CALL GETADR(IPRM(1),TLKCMD)+ IPRM(2)=2  IPRM(3)=0N IPRM(4)=0S IPRM(5)=0L IPRM(6)=0H4 CALL WTQIO(IOFCTS,LUNIE,00#LUNIE,,IOSB,IPRM,IDSW)B IF (ERRDSW(LUNTO,IDSW,LUNERR,'Failed to send talk command')) 1 GOTO 10B IF (ERRISB(LUNTO,IOSB,LUNERR,'Failed to send talk command')) 1 GOTO 10 RETURNCN%C Entry IEEWRT -- Write a commandmC ENTRY IEEWRT(LUNIE,BUFFER)! CALL GETADR(IPRM(1),BUFFER)U IPRM(2)=LENGTH(BUFFER) IPRM(3)=0i IPRM(4)=0t IPRM(5)=0( IPRM(6)=0D LEN=IPRM(2)c(D WRITE (6,1010) (BUFFER(I),I=1,LEN)(D1010 FORMAT(' * Writing "',A1,'"')D IF (.TRUE.) RETURN4 CALL WTQIO(IOFWLB,LUNIE,LUNIE,,IOSB,IPRM,IDSW)E IF (ERRDSW(LUNTO,IDSW,LUNERR,'Failed to send command')) GOTO 10OE IF (ERRISB(LUNTO,IOSB,LUNERR,'Failed to send command')) GOTO 10T RETURNC&C Entry IEEEXI -- Detach interfaceC) ENTRY IEEEXI(LUNIE))D WRITE (6,1020)$D1020 FORMAT(' * Freeing interface')D IF (.TRUE.) RETURN, CALL WTQIO(IOFDET,LUNIE,LUNIE,,,,IDSW)D IF (ERRDSW(LUNTO,IDSW,LUNERR,'Failed to detach IE:')) CONTINUE RETURNCMC Error handlingCO,10 CALL WTQIO(IOFKIL,LUNIE,LUNIE,,,,IDSW)? IF (ERRDSW(LUNTO,IDSW,LUNERR,'Failed kill I/O')) CONTINUE=, CALL WTQIO(IOFDET,LUNIE,LUNIE,,,,IDSW)D IF (ERRDSW(LUNTO,IDSW,LUNERR,'Failed to detach IE:')) CONTINUE20 STOP 'HPIB ERROR' ENDu' SUBROUTINE READY(LUNTI,LUNTO,EOF)UCs+C Prompt at terminal (not command file)LCR LOGICAL EOF  EOF=.FALSE.E WRITE (LUNTO,1000)@1000 FORMAT(' RHP -- Load paper, type to continue ',$)% READ (LUNTI,1010,END=10,ERR=10)1010 FORMAT(1X) RETURN10 EOF=.TRUE. RETURN END " SUBROUTINE RGSLNE(LINE,LENG)L BYTE LINE(*),EP(2),EB(2),CQT,TAB,NULL,ESC !1.I LOGICAL RGS,QUOTEE INTEGER OUTPTI PARAMETER (ESC=27)0 DATA EP/ESC,'P'/,EB/ESC,'\'/,NULL,TAB/0,9/ SAVE INPT=1CaC Strip off top bitsC  DO 5 I=1,LENG LINE(I)=LINE(I).AND."1775 CONTINUEC#C Skip leading carriage control C A IF (LINE(1).EQ.NULL .OR. LINE(1).EQ.' ' .OR. LINE(1).EQ.'$'I: 1 .OR. LINE(1).EQ.'0' .OR. LINE(1).EQ.'1') INPT=2 OUTPT=0'10 IF (RGS) THEN( ISTART=INPTE ELSE0 ISTART=IPOS(LINE(INPT),LENG+1-INPT,EP,2)9 IF (ISTART.NE.0) ISTART=IPOS(LINE(INPT+ISTART-1),P3 1 LENG+2-INPT-ISTART,1Hp,1)+INPT+ISTART-1P ENDIF  IF (ISTART.EQ.0) THENO GOTO 30I ELSE IF (ISTART.LE.LENG) THEN= IEND=IPOS(LINE(ISTART),LENG+1-ISTART,EB,2)+ISTART-2T) IF (IEND.EQ.ISTART-2) IEND=LENGa" IF (IEND.GE.ISTART) THEN DO 20 I=ISTART,IENDNH IF ((LINE(I).EQ.1H' .OR. LINE(I).EQ.1H") .AND. .NOT.QUOTE) 1 THEN QUOTE=.TRUE. CQT=LINE(I) 7 ELSE IF (LINE(I).EQ.CQT .AND. QUOTE) THENP QUOTE=.FALSE.  ENDIFU: IF (LINE(I).NE.NULL .AND. LINE(I).NE.3 .AND.D 1 (QUOTE .OR. (LINE(I).NE.TAB .AND. LINE(I).NE.' '))) 2 THEND OUTPT=OUTPT+1 # LINE(OUTPT)=LINE(I)RE IF (LINE(OUTPT).GE.'a' .AND. LINE(OUTPT).LE.'z' .AND.ND 1 .NOT.QUOTE) LINE(OUTPT)=LINE(OUTPT).AND..NOT."40 ENDIF620 CONTINUE ENDIFa ENDIF(2 IF (IEND.GE.LENG .OR. ISTART.GE.LENG) THEN RGS=.TRUE. GOTO 30E ELSE RGS=.FALSE.L IF (IEND.LE.INPT) GOTO 30 !1.I INPT=IEND( ENDIFS ENDIFl GOTO 10CCI30 LENG=OUTPT LINE(LENG+1)=0 RETURN ENTRY FLGINI RGS=.FALSE.d RETURN ENDE< SUBROUTINE COORDS(LINE,LENG,POINT,X,Y,XREL,YREL,ERROR) BYTE LINE(*) INTEGER POINT,X,Yn LOGICAL XREL,YREL,ERROR  ERROR=.FALSE. 5 I1=IPOS(LINE(POINT),LENG+100#$ TADATADATADATADATADATA-POINT,1H[,1)+POINT-1R! IF (I1.EQ.POINT-1) GOTO 100c, I2=IPOS(LINE(I1),LENG+1-I1,1H],1)+I1-1 IF (I2.EQ.I1-1) GOTO 100* I3=IPOS(LINE(I1),I2+1-I1,1H,,1)+I1-1CNC Read x coordCS* IF (I2.EQ.I1+1 .OR. I3.EQ.I1+1) THEN XREL=.TRUE. X=0 ELSE IF (I3.EQ.I1-1) THEN3 DECODE(I2-I1-1,1000,LINE(I1+1),ERR=100) XA1000 FORMAT(I), ELSE3 DECODE(I3-I1-1,1000,LINE(I1+1),ERR=100) Xo ENDIF 5 XREL=LINE(I1+1).EQ.'+' .OR. LINE(I1+1).EQ.'-' ENDIFC C Read y coordCg* IF (I2.EQ.I3+1 .OR. I3.EQ.I1-1) THEN YREL=.TRUE.. Y=0$ ELSE1 DECODE(I2-I3-1,1000,LINE(I3+1),ERR=100) Y5 YREL=LINE(I3+1).EQ.'+' .OR. LINE(I3+1).EQ.'-'P ENDIFE POINT=I2+1 RETURN100 ERROR=.TRUE. RETURN ENDI1 SUBROUTINE VALUE(LINE,LENG,POINT,NUM,ERROR)2 BYTE LINE(*) LOGICAL ERROR  INTEGER POINTA NUM=0O ICHARS=0 ERROR=.TRUE.10 IF (POINT.GT.LENG) RETURN < IF (LINE(POINT).LT.'0' .OR. LINE(POINT).GT.'9') RETURN ICHARS=ICHARS+1AC2(C Drop out with error after 6 digitsCH IF (ICHARS.EQ.6) THENT ERROR=.TRUE. RETURN ENDIF(" NUM=NUM*10+(LINE(POINT)-'0') ERROR=.FALSE.  POINT=POINT+1 GOTO 10 END 0 SUBROUTINE MGRAPH(LINE,LENG,OUTLNE,OUTLEN)& BYTE LINE(*),OUTLNE(*),MGRAF,CQT VIRTUAL MGRAF(26,1000) INTEGER MPTR(26),OUTLEND LOGICAL QUOTED,MACDEF  DATA MACDEF/.FALSE./ DATA MPTR/26*0/N QUOTED=.FALSE. OUTLEN=0 I=0 10 I=I+1 IF (I.GT.LENG) GOTO 20H IF ((LINE(I).EQ.1H' .OR. LINE(I).EQ.1H") .AND. .NOT.QUOTED) THEN CQT=LINE(I)  QUOTED=.TRUE.I2 ELSE IF (QUOTED .AND. LINE(I).EQ.CQT) THEN QUOTED=.FALSE. ENDIF , IF (QUOTED .OR. LINE(I).NE.'@') THEN IF (MACDEF) THEN% MPTR(MACRO)=MPTR(MACRO)+1E, MGRAF(MACRO,MPTR(MACRO))=LINE(I) ELSE OUTLEN=OUTLEN+1 " OUTLNE(OUTLEN)=LINE(I) ENDIF ( ELSE ! @ SYMBOL FOUND I=I+1L IF (I.GT.LENG) GOTO 20" IF (LINE(I).EQ.'.') THEND TYPE 2000 1D2000 FORMAT(' * CLEARING ALL MACROGRAPHS')R DO 15 J=1,26 MPTR(J)=015 CONTINUE' ELSE IF (LINE(I).EQ.';') THENID TYPE 2010P*D2010 FORMAT(' * ENDING MACROGRAPH') MACDEF=.FALSE.' ELSE IF (LINE(I).EQ.':') THEN( I=I+10" IF (I.GT.LENG) GOTO 20 MACRO=LINE(I)-'A'+14 IF (MACRO.LT.1 .OR. MACRO.GT.26) GOTO 20!D TYPE 2020,MACRO+'A'-1 0D2020 FORMAT(' * DEFINING MACROGRAPH ',A1) MACDEF=.TRUE.E MPTR(MACRO)=0T< ELSE IF (LINE(I).GE.'A' .AND. LINE(I).LE.'Z') THEN MACRO=LINE(I)-'A'+1 !D TYPE 2030,MACRO+'A'-1I/D2030 FORMAT(' * CALLING MACROGRAPH ',A1)d& IF (MPTR(MACRO).NE.0) THEN# DO 16 J=1,MPTR(MACRO) / OUTLNE(OUTLEN+J)=MGRAF(MACRO,J)I16 CONTINUE' OUTLEN=OUTLEN+MPTR(MACRO)+ ENDIFN ENDIF= ENDIFU GOTO 10T 20 RETURN END , U J \00$ IESYSYTITITITIƸJ ZkGLL----G q 89f"e\e!e 5f 2* eA &|&  f&&  e#e|& f&&G& & & & && '&&&f& v X'x >PCË @ÊAW H  p?w\  & & & & ` J fRCҐCҐRC  &w&C & ` `Ba#   L  n aa  則p"BC PPԕ ԕ ~0bdWW-fEaa f} hCB~ `*} } &&f ы ~AWW- @ w 5 funhj tuhdB$ 8jwaw< 8 v8w &  r*AdBbAep& f  F P aAAf@pnp ֋C*8֋ 88*Ë7AB`f Va`& WaWz  ɥ"N  ajfu-nhwFɥ;]a)wנ"å.@j  a Bw@ ŀajTI& af* v*`V @e,w jjlj ɥ@@aujk,bp 0@5f fˇ ȕ B‡ eSY e,5 funhwe,aja`W- f`nw^uhnw@ ԅDllja!CeH###33@# : & 8 ** w Г 8jDl@ TeBT85l@ 4@( D reB& (# An5j)f & 2/      RՀa@ x: ? rab<9l9 x pL<7 (4 D<7 "4 <<7 4 4<@79 &<7 9 <79 <79 <9 <z9 ;>;  ;@;  ;D;  ;J;  ;P; # ;`; s;996& 6sFE q6 p 2p; 9 v;z; B j;; * ^;8R;-88 F;; :; 8 0;׭'7Swp ;; \)78 ; 8 ;; " :; p : 2wZ : R8 :9ID `l6E q: q `o(:;  :*:+:; (78 : ` ~:;  r: X2U h:; l \: B2J R:@77 D:77 <:-77774&:-77775:9ID kPE VpTE NpVE FpRE >p: 6p n79;  900$ TADATADATADATADATADATA99 9w׭5Ww;9; '7"7 9 8 9 7 9; ` v9 \1& l966 b9 9ID jXE o: o mC897 1 09; J $9F9G96 966 9~66J86eC6 hz6"(eC(b6j6&(7 ' mV6 7F6 8H6  w2 8 746 8&eC6 hC(S 8&eC6 nheC7'5 5&' 7 & m5 75 B85e ( 285eC6 h5CM 8fd'7  7 /55S7T7U7/p5eC6 g`5C0!&eC6 gC9V7;  7-"5  x/55X7Yz7wxZp7557!4 4K X74 P774 H7 ! >7 9ID h & m7+& m: jm k`7a69ID h: @m kc6d6; 6f6w&׭2Twg6< $7*4 6< $7$4 6< $74 z6 47 4  f673 ^6"03 T6nL6'3 B6p<6 3-33Y 3V3eC6 f3CSH 6e3 5"<  5 -5 57~3 5 v3@v59ID Tg@wJ*f Bl@wB*73f 2l: k @jx5; 5z|5{v5 3w h52eC6 Te2$eC$22&$ 7 z# m272 (5 w:2  w, 59ID f7h2wj2@W@w,f vk7Z2pB7, `k: $k ni4; 4, 47 , 402 02ef:ID f2 B!&eC6 `d&eC vj !714; j: j h64; P *4:ID e7+& j7+& j: Zj h3; 333w@׭/Pz3d1 3.<  3 +` 3 + + 3 x+@< 3b+ z3& Z+ V+f3 F+F< zR37 2+ J3B30(: n g,3&3Z:ID dfE lihE di: \i g2; 27 * 2wD׭.Vy2h0 2.< 2 *_ 2 * * 2 |*@< 2f* ~2% ^* Z*j2 J*F< ~V27 6* N2 F2/(: m f 22,2j:ID cfE rhhE jh: bh f1; 1) 1%1D/z: m P/eC6 aeC g 0/,/ Hf11w41;  z1@; 8 n1L< a b1& nV1. .@.t%? >V.1@7 7 @7 7 1= 1z & 87 `0 07 . 0}/ 0Bw.-.p 0t.m& &.7 `Wb&.7 `SZ&.7 `TR&.7 z`PJ&.7 j`VB&.7 Z`C:&.7 J`L2&.7 :`R* 40&.7 &`[9&.7 `(1&.7 `')&.7 _"! / ---/-mD&.7 _7~- / x- /-p-/`- /wD- /7 @- /7 :- /7 4- / ׭0-L@ Amf.7 ^_ W"B B @7-J/@m&.7 4_ 2/( (/ , /D)/ , /9[. , ..]. , .#'" |, !.n, .k, . a,  V,$.7 J, .F,&.  .}/' x.@m&.7 b^; , V. , L. +w +w +w+(.@ 7+ .+ = .  .= 1-j& 87 ]+ -@   3-`m6e87 ]mf.7 ]s -  7H+5- -@ m& 87 j]0@ 9? fR y: 9? TRD- + :-+ 0-+ &-** -* -* - * ,(* ,* ,* ,** ,* ,* ,* ,* ,* ,* ,* ,* ,x* |,p* r,h* h, `* ^, X* T, P* J, H* @, @* 6,wf`7 D\ ,wwff7 ,<  wL +f=  w4 +f = x +) +7 |) +7 v) +7 p) +7 j) +wPwLfv7 ` +=  wr n+f=  wZ V+f$=  F+) <+7 ( 4+7 ( ,+7 ( $+7 ( +wwf7 +*=  z *f4=  p 9? O 4A*wf7 b *wf7 "7\( *7 V( *7 P( *7 J( *7 D( x*wTwPf7 : ^*>=  ( L*fH= f  # 9? 8OL(*wwf7 *R=  O)wwf7 )\= |  Q)ww00$f7 )R= P  S)< Jf)@7  7Iq? Nr)=  j)ff= e ^T)f= ` ] 4)5Mq? *N ) )B! (m&7 Xŀ ( !7  (& 7 X7h (& 7 X & 7 X$& 7 X0 & 7 nX1  ^(7 T(  F( >(L6(mD&7 "X7L@ &@f7 N 7 ' (mm&e7 We7@e&f7  mhmh 7b'' R 'wD'->w z'.m&7 dW7@ &f7  m7 6' w'-wf '-wJ&m&7 V'&7 V" z &n &&7 V7V &&7 V7B  B &7 6 &"|&&7 nV7R&7 ^VJ &7 HV7?&7 8V 7 2&  *&m6f7 VB&7 V &f7 UWaf7 UWz   f7 UAE J&%'% t-prw(%)%*%-V-L %4 %.z%7 $ r%-(  f% \%2V%3P%w4F% <%@mH& 7 $U0y:g'? J8%7 %@7 7 3q'? I$@7$ 7 $=  $@m & 8 T7@ @&f8  @o 7" $A  wN r$m74& 8 \Tw&wB V"f8  >"` 78" ($ w w $t 7ff&8 8 !` 7! # !!  # #=  #i#7 |! # f=b  8 ST & % BUf Y Xl#d# &=   8 HS & % Uf Y W ,#&#  8 S +A &  8 R -B P} "" !-   " "= "@" &= m&  8 R& & % DTf X W p"&  8 `R +A &  8 HR -B P} 6"0" ""? G"@7r 7n!=  !7  ! !}/ !@m4&48 Q0&48 Q9 !  !- ! v!AWp @m&48 XQ0`} J!= B!  :!jR? 6F&!@7 7@7 7!7 H =  7 < 2 -*wx mH&>8 P'&>8 P"  &>8 P7   &>8 nP7f 7  ^ X  m&>8 8 OH   @mD&H8 Om(f>8 OH w(  -w rm&>8 \O.  V J feEX8 2O1 E . z-v w&>8 O; #7 J w&>8 N:A% * -"wp m@&>8 NA 7  w@-w4   &eEX8 lN0 E h|m&>8 PNAp&>8 @NZh,8&>8 *NA 7n  7&eEX8 N EG &eEX8 ME6-2$/@m"Wpm&@P8 Zm:&H8 MH  -1`eEX8 ~MP=lE t3n4h5bwn""? ZBJ@7 7 67 .W?  f= ڷ = Y @EwT f= Xe%Fl8 Le%F R w^ fz8 ܅!m, &d8 zL& R !7 Qdw w f~8 n Hf= We%Fl8 &Le%F .ٷ dj> X V*e8 BKEB ,&e8 K<e f> VeIF8 JeIF P nw f8 Fڅ!m &8 J& P !72 BOwz wv f8  tf> *VeIF8 RJeIF hP e8 ,JEf P&e8 J rE bP&e8 Ie& BP NwT:;""? >@7 00$$ TADATADATADATADATADATA 7 @7 7 7  7l&e8 ~I<l n^ df> ׷ V> U H e8 4IEB fr> TemF8 HemF O w f8 Z؅!m &8 H& N !7j VMw w f8  f> >TemF8 fHemF |N ,e8 @HEf N&e8 H rE vN&e8 Ge& VN Lwvs,? <@7 7ff8 O@ 7 7 w f&9 ׅ7 wf&9 ׅ7 x PP f-PP Rwf*9 7 8 wF ,- |eF9 Glm.&8 FZ1F R-NJ::`78  Pm k - m &eF9 Fmf9 ~FpF -n` f-PPR-R F  >-*eF9 Fm>&8 Fj1F b-^X"@ eF9 Em&8 E2F ww f49 >ԅ -a x l n}/ } \B - Fmz&8 0EeF9 EHF -|! }/ "@ 7X B7N $@m&8 Dȝ *-&&& XQ')@7 = ~B -+hm&8 RDmf9 @DH -,2}/ -"@ 7~ B7t /fm6&8 Cȝ P-Lzk? 8f\? ѷ `? \P w/zw/t f> TOeAGN9 |CeAG I < H ^wf\9 lC Hwfb9 H 2f&  G& E f  f& 5 JJeOGF9 BeOG H -@ xG7  eOGF9 BpOG  7f ^-Z@~LL -f ? (NeAGN9 PBeAG fH  eOGF9 (BeOG >H  F f? MeAGN9 AeAG H  Fwrfh9 0BW-f A ѦWW-f A ЦWW- f  WW- f  f &-"vm - ~@  R~ e ?? %CC CC PIDHD DD *;:,;:CLENE?D:|E{E E~E!EE!^<EEEEEEEEEEEEEEEEEEEEh?g? j?i? h?===j?=======e 4EE!@ &F%F FF!4F@ JFIF ! 8F6F!XF@ nFmF ! \FZF!|FP  RFF P PFF #G"G &G#G>F&GF.G>@PGOG BGAG 0G.G!>?R?! RHP -- Issue: 1.J Date: 12-Dec-85  SP"; SC",",","; PU;SP"; LT",$; LT; SI$,$; PR;PU$,$; LB܀l PU$,$; . ** WARNING ** Mixed relative/absolute position PU","; PD",";  *** Unrecognised command "܀|" IN;IP100,670,10200,6980;IW90,660,10210,6990;SC0,767,479,0;SI0.20,0.33;ReGIS Input File []> SY:DATA.RGS%ESP;A[FP)('"PR;PA;(E(E:(E:,E:C;DE ;; *EC DFEDFE?HE?HEJECLEC;:(E ;.E0E?(EIDC$;:CLENEPERE???CLENETEVE???CLE(;:CLENEXE?CLEXENE?CLE.;:CLE0;:CLE2;:CLENE`E?CLEdEfEhE???(E6;(E:;*Ef@ffL?̨?IE:Failed to attach IE:Failed to remote enableFailed to send talk commandFailed to send commandFailed to detach IE:Failed kill I/OHPIB ERROREEEb<EEEb<E~EEEEx<EEEx<E|EEEE<EEE<EEE<EEE<EEE<EEE<- RHP -- Load paper, type to continue   p2 [],  -- ?   -- DSW low byte : "  DSW high byte : "  F00$,=F&F  -- ?   -- FCS low byte : "  FCS high byte : "  FCS high word : ". 8Fb>8FJF  -- ?   -- IOSB low byte : "  IOSB high byte : "  IOSB high word : ". \F>\FnF  -- Nonsense error number   -- ?   -- Message not defined LB:[1,2]QIOSYM.MSGREADONLY0G:?0GBGP\ ?Y9[FllHXOHH*IH4IIlm`HQPHر`nnP2n* H &06ȋ8 ~נ%נ*נ-נ.נ0נ9נAנZȠ yנ0נ7נ*נ,A jȠh f  oנ"A   #A aנ$נ%נ*נ0נ9נAנZנ_נ.  נ.נ; dנ0נ9 ]נ- X נ* QA  נ, Dנ=  >5 B>U (w^נ/* . ,נ$נ-נ.נ0נ9נAנZ נ_ נ:  Dנ"  0f&f E^`  UQ  UQ ËUI U `e  !ddC    D%*.C U 0 0 W ,Uw6W /@ : ^BDaW-Ί WNWOD!BΊz CECCD! D! ΋5  e ΐ TpRpR΋pBC5N KR΋KBAE00$4 TADATADATADATADATADATA:D0CĊ f eB  Dҁ CSĊ R WB E Br Ε f)& 6 l(*  E 'W " =N  W :+W = 1 #W ,W / %W %W *Հ W <W [W >W ] v(* 6 e  &&f < E3  ߆ %  І %ĉĆ BB ĉ , ,‰; ,JJV 3Vȥ ȕ$ȥ+ `l s@ Ps`; Fs,3/"R"'" 3 0As  :   >3  H JhŀdՀ`[WB ;  M  B@ 3VA3 N  & Lw wF3   H Z3 3 V3 N J  "e$"F3 Z NE% % % 5%% W 3W H Nwp `5@ @  E5e73 *,JJ Y,J Jҕ JxXT96%  Ttr  $%T %T R%TR3,% e3LsNP(3LsN xsP%% %2 hsR%2%4 TsPRNZL&P N N5@ Х,  NY %RN ‰Nc % U%%  2 4 %2R%6RR s%B%.D THwAYY`AlYH lT  BE&~WtEB~Lc  *sWwR". Y%LHTD` B~ĵRHTc%S%.Sc *HAYL Y`ADY  $J J N   - ΋  BE~WtEB~w . Y%LcHT w w Е `CBwД~w TH @` C~ UUTRSS>SS\SSSR2SSUUUUUUUUUUUZUlUlUlUlU^SfSnSpSxSRRUUUUUUU<(0+  "1""$BBDBBDB   Ee f  z % % e@ `5 & & D  6N D D eD e`D %   &fH”E  D   D 慡e BCE DIEN   ` ɕ = -5+-` #"   A s&DE s& sA ae0b  ~ҕ*~%  0   -+% &f$E& Ee  v % % U@  5    ^ P`D A @ 䀎    E 6]    e &f& 5 U   և ”E   CPQCQBm     v   &   5@%PeE T  <5eN N (E D A @  eb" b"    D A @ &f&f eD A @ eA @ e@ e&f&f   C r &@r&@r(&DsPA r C wA `t E ED00$< f# & @ & EUC &     F&C       6cm66#  & w`     # 6 c   6 m 5  s pU@ k h ҕ-5ҕ+ i5@5N E@t`e0Ґ R    5@  ~E@5@E@ w&E , e C HCҕ  %%  ҕ0ҕ. ҕ0 Ґ+-  Ґċ %  C ҕ0 s e0e0RC Ee eva ҕ* v&EEU-`5 6! 6 BN~ ; R 2R + E      R~e eE R~  )E 5%% W!%&W!0 E -6vAQ~Ue B@E DEIC D `6 0a  0 .< |EM   % ee0bv  @`ae ҕ*~ ~  0   ~e  f U  ZZ]]]]XYY[[[[`vbpbZ`ckFlxxy@ h|NORAF$MINU@`(hҁ܁,6zƂ؂&N6 !!@ bdhvx^`STOP PAUSE 00$D TADATADATADATADATADATA____________________;________W_____}__y___;;;;1;;;;;;;13;;9; -- ERRORFCS: in " from " at or afterExiting due to (Error count exceeded)at PC = (@Invalid error callTask initialization failureOdd address trap (SST0)Segment fault (SST1)T-bit or BPT trap (SST2)IOT trap (SST3)Reserved instruction trap (SST4)Non-RSX EMT trap (SST5) TRAP instruction trap (SST6) PDP-11/40 FIS trap (SST7) FPP hardware fault FPP illegal opcode trap FPP undefined variable trapFPP maintenance trapREWIND errorDuplicate file specificationsInput record too longBACKSPACE errorEnd-of-file during readRecord number outside rangeAccess mode not specifiedToo many records in I/O statementClose errorNo such fileOpen failureMixed file access modes Invalid logical unit number!ENDFILE error"Unit already open#Segmented record format error$Attempt to access non-existent record%Inconsistent record length&Error during write'Error during read(Recursive I/O operation)No buffer room*No such device+File name specification error,Inconsistent record type-Keyword value error in OPEN statement.Inconsistent OPEN/CLOSE parameters/Write to readonly file0Unsupported I/O operation1Invalid key specification2Inconsistent key change or duplicate key value3Inconsistent file organization4Specified record locked5No current record6REWRITE error7DELETE error8UNLOCK error9FIND error;List-directed I/O syntax errorSyntax error in format?Output conversion error@Input conversion errorAFormat too big for 'FMTBUF'BOutput statement overflows recordCRecord too small for I/O listDVariable format expression value errorFInteger overflowGInteger zero divideHFloating overflowIFloating zero divideJFloating underflowKFPP floating to integer conversion overflowPWrong number of argumentsQInvalid argumentRUndefined exponentiationSLogarithm of zero or negative valueTSquare root of negative valueVInvalid error number[Computed GOTO out of range\Assigned label not in list]Adjustable array dimension error^Array reference outside array_Incompatible FORTRAN object module in task`Missing format conversion routineaFTN FORTRAN error callbUser requested tracebackdDirective: Missing argument(s)eDirective: Invalid event flag numberoVirtual array initialization failurepVirtual array mapping error B" 5Bl"މDB* &EĊ ,& Ċ  6U3 B%եЉ Bw*3 l & fmA BU%D~  m  l耖% l. F d{lX3 3 d3 d 3UlE0@A t<m5t\m l 3 XsXsd3 dW@W@ A@ A%     y   ryeJwJ \y \  ҕ C~ss` \z \ހbw L ( N   2 H 4  y  ( z   H  * 5E0U000 U Up 3  0 0 53 * 3 \s 3D  D sdbD 3sss B`C r*\wD 333b33 \hD 333 \D 3D 33D 3dO 3 D A 5 5,&mD 5 H4HR,mH4 5 5 HRȋ 5 0"ED 5UD ȋ $m *3 H *3 b3 d33 DB* n 5 p4mJeɋ,p/U pR LʥS  / :8 0( &, UeNB~3 щĊB%  &*5/WtE % sTsHlsX *3lTH,HX33H3T **3HsT * v n ` X00$L J H 4 ,        *T3H *eH3 *3  ы *3HT3 * b  \  ^ 33Z TH Z ~3 É   tw X B`& 5C&C ݉ pDpB*3 l mfA BU%D~  Pm  l뀖% le ^5E e . d{lX3 3 d3  : ȋ35(Ul lA WBA ~U l@ 4e >E p* d ww @ *eB 8 x  @w (B C DBe ?D(1 >w <) 8C 8* ) *w * L   ep p  އ#= EW9ť^*0 ` Ca C  = L  0* = Eե^ A e@ ߇ = Ep2!)8eE`l0  0 0/ &l0 `p l064p 4 |p  , J *` C# N   D @)  6?0D)w Z 0) D8C $* ) *w| *  T ep p  #= EW9ť^*0 ` Ca C  = X  0* = Eե^ A e@ ߇ = Ep2!)8eE`l0  0 0/ &l0 `p l064p 4 $ p  8 V *`)wZ  V C#   D @)  6?0D)w e w w *eB 8  @ w ( D 8#"#)%ĥ ĥ wl 0 *0 @Q$    0 40 60))eB ^ D \# U&* =w `p!2 EW!p0p2 ׇ#( P) H @#**fff   &*wb. fB5(8e$8w2A&(e 4p8q  (#5=A#@)) *R*)@#0l C# 028 00ĥۇAĥĊ  000 * 0 @0 &*0 @ Zu p#eB b * ( eBe>  # #D #=0/H#@&0 # = e0   0@e 6=#02/002# @#?@#040 6w0/&!0/ l0/!/0/l0p!0 .=p0p2eB  8 $&w H*  "  6 w , o832de& & & B  2PΕ   N Υ$Ε  22Υ   Lv Ε f e f* *e*w@)0, 6   l)*)'   =  l 0l   8/ e&=Ba@a H e0b ee@ b [= E8 el0  & 0 l0`p l064p 4 ep )wn%  ,    w6  LwpB #00$\  f  `**w)0406 l0 &ff 82e&( P0 0 0 80 B0 0 0 0)#0.0+1(e  %&p*w f( f)f )"(. 8 = . B  E  (.8Ae f"( UCɗ&+(e$&% *w  w |& W+W- Ba. W#  B0  c  c S W %ec e`s  # 3  & ˥ Z ^C   f F&* z*w BC "& @SY&*p0p210=E%0=w(*e "f D CB.Ew *D Z  wnw *) * w446l0 *) l0, *) $ )*)0,40,6 w D*  2w  @ ,,  *e6p 4 `8 f 81416  T  z  .  )  8   ***  DP5R RRR  8  ***e wr * ,)fff f f1    1  Mw141612epl2l0p   f x >5>Eu   > =00l&8el2 0 *w eE D` bl lrw t  B eE"s    s-  CslM=f(& e %&&eH =&e0  U   E > >E=uf p  ww *#   U@e @  e4wX1  %,,  w *D !UqqC ӥ:  Ce    b*w *  ע"wf)Ĕ%.&%;D  5)5@DD ͥ*Ce <e%w U\5@ 5wU U*U  "5@\U@5 5LU*U  ʥ*%C!.D` *weC5U5  5 5@e*=U Ee& REe  ӥ" wV ˥"   ˥" Ք     Օ  ..8em,0l0!D0e6p 4.) >&f (  e) .  e6p 4 08*w&  m  f A N  %=p!Օ^8e2 =D  `p46 f v64/=  $@) 0  8w 46 :8 ne*w *&f D E/fC A B f&  BeA @0  (@0 a@eA  B0 AB  f  `C @*,*1 U8UMw wJ B 00fep=& /e`pw^46f %8 E D/D!D l0l8epl0pɥ .ɕ*w(*He(  1 :&e B 1-1- 111 rrrrr fe w@&f &  Be  w* 00$d%fTADATADATADATADATADATAw V&Ba +- ʥ# . U 0   b   `     &fe    : $ L ( La Ta  @ `W!ZW!AW!9W!0@0,0, f 톇,, w      .% < eB U5UU , plp & NeՀ)*w  )*  fU %  BA `6p 4p`4&   `@ ` B   & A @    f&5ҕ[ "5ҕ, 5ҕ]E 5 5  e0Ґ 1 z   1 1 1 1 1 1 DEee $ $    f e  C C C e`w  ҥ[, &]  5 s  D w ?![?3l[?6h[?5l[?4l)+Pp. S[0,0](A[0,0][767,479],E,I0,S1,T0,H(P[50,0]))( T[+9,+0](S1,H2,S(9,20),M[1,2],D0,I0,A0) T(D0 S1 D0) W(V,I3,S0,P1,M1,P(M2),N0)$\6+Pp S(M0(L000)) S(M1(L025)) S(M2(L075)) S(M3(L075))$\9 Pp S(M0(AD),M1(AM),M2(AC),M3(AC))4, W(F1)P[40,0]V[520,0][520,432][40,432][40,0] P[20,398]T'42'S P[20,374]T'43'  P[20,350]T'44'5 P[20,326]T'45'5 P[20,302]T'46' P[20,278]T'47'3 P[20,254]T'48'3 P[20,230]T'49') P[20,206]T'50'  P[20,182]T'51'6 P[20,158]T'52'2 P[20,134]T'53' P[20,110]T'54'3 P[20, 86]T'55'3 P[20, 62]T'56'2 P[20, 38]T'57'  P[20, 14]T'58'6 P[ 61,452]T'-8' P[ 91,452]T'-6' P[121,452]T'-4' P[151,452]T'-2' P[181,452]T'00' P[211,452]T'02' P[241,452]T'04' P[271,452]T'06' P[301,452]T'08' P[331,452]T'10' P[361,452]T'12' P[391,452]T'14' P[421,452]T'16' P[451,452]T'18' P[481,452]T'20' P[ 59,430]5 V[ 56,391]6 [ 50,382]9 [ 71,370]4 [ 80,370]8 [101,370]9 [125,373]9 [137,370]5 [161,376]8 [167,370]9 [173,304]6 [164,298]9 [158,289]2 [158,283]9 [128,265]1 [125,268]1 [119,262]0 [125,259]3 [119,256]6 [119,250]0 [125,247]1 [140,244]6 [149,250]1 [167,250]8 [161,226]9 [170,226]0 [170,232]6 [188,232]4 [191,226]6 [197,220]2 [209,214]6 [212,211]4 [212,193]7 [239,187]8 [254,166]8 [260,145]1 [266,145]9 [272,136]9 [281,136]6 [284,136]6 [290,133]7 [296,139]1 [293,133]1 [296,130]5 [308,127]3 [317,133]1 [317,127]5 [323,127]5 [320, 88]8 [311, 82]5 [311, 49]9 [317, 43]5 [332, 43]3 [338, 31]2 [347, 28]0 [341, 58]0 [353, 58]4 [350, 67]1 [344, 67]8 [338, 82]4 [350, 82]1 [350, 97]1 [341, 94]4 [335, 85]1 [338,106]5 [356,109]5 [356,118]6 [392,103]7 [404,121]0 [419,115]7 [458,100]2 [479,112]5 [488,106]8 [491, 97]7 [497, 97]0 [506, 85]8 [503, 49]4 [509, 37]4 [518, 28]3 P[461, 31]6 V[464, 25]2 [476, 22]9 [470, 28]4 [467, 40]8 [461, 46]5 [461, 31]6 P[353, 79]6 V[356, 91]5 [368, 94]7 [371, 94]3 [380, 82]0 [377, 70]3 [371, 70]0 [353, 79]7 P[356, 97]6 V[377, 97]5 [368,103]5 [359,103]4 [356,100]6 [356, 97]6 P[272, 1]3 V[272, 4]6 [278, 13]2 [302, 22]8 [308, 22]8 [338, 1]0 P[353, 1]9 V[374, 49]8 [383, 58]5 [377, 67]8 [383, 85]1 [404, 85]1 [404, 70]7 [425, 67]7 [434, 52]0 [434, 67]6 [446, 40]1 [434, 52] [437, 34]? [434, 22][ [437, 7] [458, 1]] P[203,430]0 V[239,409], [239,400]0 [233,394]0 [236,379]0 [251,373]1 [278,382], [287,382]) [299,367] [311,364]0 [317,349]5 [341,361]5 [347,385]5 [359,397]p [383,427]1 [395,427]3 [401,430]) P[476,430]0 V[431,418], [434,409]P [428,406]S [419,409]' [401,394]5 [395,370]2 [377,355] [374,340]6 [377,337]] [374,328], [389,316]P [398,340]) [404,334]' [428,364]8 [400%l'r76,403]2 [482,412] [482,430]3 P[320,394]] V[329,391], [332,382]P [332,397]2 [329,406]' [329,418]1 [326,424] [320,415] [314,397]- [320,394]2 P[ 41,178]1 V[ 50,181]P [ 77,166]' [ 95,163]T [ 98,145]4 [ 95,121]2 [107,112] [107,103]0 [ 98, 88]2 [ 89, 91]1 [ 80, 88]P [ 65, 91]' [ 59,103]T [ 68,103]4 [ 59,112]4 [ 44,112] [ 41,115] P[ 41,136] V[ 53,139] [ 41,154] P[119,118] V[122,109] [125,109] [125,115] [119,118] P[167,199] V[170,196] [173,199] [170,202] [167,199] P[ 89, 31] V[ 98, 31] [ 98, 40] [104, 43] [ 98, 46] [ 89, 40] [ 89, 31] P[ 77, 46] V[ 77, 31] [ 83, 28] [ 83, 19] [ 98, 10] [ 98, 16] [ 83, 34] [ 83, 46] [ 74, 52] [ 77, 46] P[104,214] V[113,217] [119,208] [128,208] [134,211] [140,199] [161,199] [167,196] [197,196] [209,187] [209,181] [203,181] [203,175] [215,163] [215,151] [209,145] [197,145] [194,148] [191,145] [194,139] [188,115] [173,103] [164, 82] [152, 70] [143, 70] [152, 64] [149, 61] [155, 58] [164, 34] [161, 31] [137, 31] [131, 34] [131, 31] [134, 25] [128, 25] [143, 16] [146, 7] [125, 10] [116, 7] [110, 22] [113, 25] [104, 28] [104, 37] [107, 40] [ 95, 58] [ 95, 64] [107, 64] [ 98, 73] [ 92, 76] [ 95, 82] [ 98, 79] [104, 94] [104, 88] [113, 85] [113, 76] [119, 76] [119, 85] [113, 97] [116,103] [119,100] [122,103] [131,100] [143, 97] [134,106] [143,115] [146,115] [143,124] [143,136] [128,136] [122,133] [119,136] [125,142] [119,148] [128,148] [128,160] [110,169] [116,178] [125,175] [125,178] [137,181] [143,181] [143,187] [125,187] [122,190] [122,196] [107,211] [104,214] \7 4+Pp W(F2) P[571,120], T(S1) T'File:- TEST.RGS'2 T(S1)$\2+Pp W(F2) P[560,160], T(S1) T(S2)'Test Plot'  T(S1)$\ +Pp W(F2) P[603,200], T(S1) T'14-May-85'9 T(S1)$\1 &AnalytiCalc for the IBM PC, and clones? The three directories below contain archived kits of the threeEdisk set of AnalytiCalc for the IBM PC and most other MSDOS machines.HThe files are archived with the ARC utility to conserve space. Since notKall sites may have ARC, it is included here. Just move ARC51.COM to a blank.disk and run it to create ARC.EXE and ARC.DOC.> Each archive represents one 360K floppy disk full of softwareE(or a bit more). On the original version, some files were squeezed toEget them to fit. Here, ARC does all squeezing. Thus you may need moreCthan one disk for the unsqueezed files. Note also that the VMSSWEEPGprogram (elsewhere in this submission) allows you to look at or extractKfiles from archives while in VMS. You should get the complete distribution.DEven though you will not need both the 256K and the 320K versions ofGANALY.EXE, each archive has unique items which are not present on otherIarchives, and each has something important besides the ANALY.EXE files in$the first and third. Don't skip any!D The PC-SIG documentation that claims you only need 2 of the 3 disksGis WRONG and UNAUTHORIZED. As a result, I refuse to update their copiesKuntil they publish a retraction. These are current versions of the softwarehowever. Enjoy! Glenn Everhart00(ufTADATADATADATADATADATAANALY.EXE˂% w$217 M ! _/@>$0rU + chbԁ@b>Ytc 6Q`J< &.>MuhK>J)ҘCE5+SPv2tX@IqbbP* Hw NvtP ^fH,ucMՁq̘H .P ~}𣻨(AL,*"`ԫ 2Q (@?2'7pux(rӀDBўQs5wNg TN{U{U@ >P R@:L!H) AP4X64^i S[kIaJv&#B)"2@ d ` V@.PC0PE2 3䌅p.k:&f 2BU3 4B(X?h0yӅS#u?ʋFO֙{hjZmіmo4\vUG Уu:n'Zw(72z0Ou={OJЁСCqu!@/GAD̥penAG,4 @L)yc!.cޗ ќSx?`^.I5c3sibF>9%VZ{@?E HJ$:Bf&B@" $II&<2$I Odd.=hЯJSb'%A8A /+]( ! r!Bҡ-Xxb؀YߌA⊢br(ч 2r8uP`/\Mk1 Z"Oh7AF!hl)^Jt츎DRr$9 ?, 2gchCFqgPk3# 1 .}$S=lPEVpE 5Lfb824\" AVAe2!d>CL(IJ?p(>ORfze Ѐp‘gx<?\ۜ臽Db#Aԇ!I\ ? w3H$ T!0@J=hUɩJ$@j*0@R؟Dݤ,@Ւ.АVg Xcp!c:0}ZGh8/ BJ xD|D 1;fV@S!fŅ6?` JҢHH0]g5Lי-F$+> Ey5> c j0L0!HFC"~,|9CV٬[qϳeI#ǫsi.uQm$@3)GN2C(G9u܀R`/ NЁ1:p`70*e lk؇ AJG,X,F1: `((㨳J\u`@:FЏ^HHX2v0 $ˇXAIB3 ,'tUV5Af:  ;}Є$'HΚ&AҶ 3=]7~FmPIqL [OPt z^-h@Ʊ\[޴?Y_d_2B̼!MGF1Wz )KS(5 @hx30"-C\95ρ} A1:ڰ:`ao z39ȋ2g) a^0$LG!_4}\h:tv g6r!~#$FTȀZ~Uiaz4coF< xn:|Qz~X"`+#`OH4hyʈy 0&">x;DOob`B|8}0 ] NqL|ӕF\HWGq~-w؅ ؠ||'}~@}~u+@~f~$~~} W~`|W0#e{'yBn7KcTF=0~`%0 @`@)! 0X>@ Vq CFH a` Dh@R"@oՅN`` c 7N(}@_dH-03| tyCTZX "EXSs@-ER8HB8G J(:JjJ'X@ 7*4,cT.gc `g`{,{! p|PN5L~ 1vsP_ f S2Tu`{ыx)%`ZPPf䏢㏮s:Џ}m^`4 0Pq % 9 :7I(AЄ[2В 3-рrjp# 0RJ|@)~0C~R1T#?Q%P&ҕɥUْ"uȋ(䋻B'@"biFP~dZD% Hа-# td . (`@|ZGugK,{p XB*T'8jz z9 j z^yv@`vIc9X{my{p)@ֱF8m~  rG?@@K0  R`tC0 #  <t0@  R* ] X bp "J@yp\Jt`PA *+(9C`\PV p P_\p*: B젅jx * 0 PZz*BIVvZ p \  |{'"sقE:w`ZVV  *.Ⱥ)"y* ?8T x`?ki{s ui>$u  %{bLg` ]W<8 ǀ ;а{ hp배8Cz8}QX# %hEe8iiFuUOjoR J @  UrCuc ާGF}==QAQ#{,CQ0`كz{QtuQ` >v@ v@D4ސ鸐+~g˫lkZ`q{ v0fkd (k )  08 # 0 ++"Д 0 `>v0uoћ p>PB pg{ : ɛGyyF0:P8 6y +G,K*M ;5 ig(\'NT颿,0,4\tzċyBwY2FNOYH]#Zj6Z/AfƬ00(}rį=$5 R ,c BXvcċ̆ k~% LP  %@s\GxdăvW0i |IV\N@%? P"[W`:0+E&p$BEP |<^tA\"<Px^ ͡"} ʣ̡ ˣ` 7,, %2@fp, RAu|c^mdm6@~05z4ȅ|Ȍ ɒLl-ɡ-ɡ }Bȯ~ 4`w *|P`2Aƌ <\Hإ Yul\΄)L\L=иj ς %R.u 𐡐`@`=zE` 9Z9`3{QE X8p my1!mEE@Hb̐M@0-͞+ܽ! PJ~`]Zcۻ'8=`]]e;ס ͢#=Py~ 1Ic]@yآs?i{ R478`Cvޑ˚ & -]|^aX*-i %ؠ3fϢ d.J8q^,?.K"LܕPvg J842 xb+a`{ @ :DŽ@  0QX) B@#7o.8~M PCN脽] L0pNr~+j^)}Y&<6@6{zT+k%r.ے m諾+KKΛDAܿ[9N, , 0L5!<;P _*\,\.<P79=C\{$HNTQ%PW<[\^Lƣ ƣlp,tFhz,D}="٣@}<9șҔ Ә3`Ӣѥ|hGӮ = 0*[\9y¬p̄/S} ֌VAY\[ Ib| נ?-⦏ |ЭH?Ac΄' usС،]R Jق\~ ݆ @smPpڋ;Pu`8/P8=C}Fl]8U]у',: >(A b}؊%ؑ-p-ȥmPpکt1Rp;4{Aރ/O^ ݆ ҁ m]ս{}m߻}=]'= G]dحܽJRpc0]8RMUݻ= ߰ J#Hr}m߻MU0Or}m߻@«RW0 JI.7|0@ZM ?[6 T`h |J,:@l)HZ0?Rf"%@)7Zd8AZnZg?B%@$Js$ؘ>?Q{A )|P>ZP4/x|`\{7&I'  $̖V~A{ >!+0  ":EP%Zܣp>`Zܣ++"`ց ` ֑i,&-9 a S)*$+.CR  u @# 3 ( rQ " .`t0&$̖V~8 7,` ,`"`7 pápâ#2`Zܣ`& &`& &`40 &>uq \ = & &`"`& `& (`hb0 & && & &``& &>uq \b ==t06 &E0P%6ZлICl Ҭ)CL5)^ }<Z6@C`=~ D`{ # (@t`j|= t0X`X X`/x@)&8Z؎& \`u^`%G^`H t1 ``  ``Cb`8Z5  ``C.:d`@&`^`9N&P Cz|f`,``& 4`f`l&`&"$L&pd`& d@P@&81O&`8@&@> @L&P8ZpBuyZd`tP.od`u`8AZe4 2EjO4<74D4K $ =4Ko2P0 58AZDZђZ)ґ& :j`0&@^&4#:n`e &Pn&4qs BZn n`@Xž2&L2`ń~ӺN&`ǀ^ZPL)A&0x`At`4&n`к&0 z`ܺЦ&p& &pf fr` 4qs B^ZPу'd`8AZDZ^Z~ 4q-98+Z`&Z`e8AZ0&^&0 |`f0 }&P5 \ P˞* Paz p`H=?+C6ZL7kt` E8u>4&0x`At`4&n`к&0 z`ܺЦ&p& &pf f|` u/ &~` &44؀`& p`aopp~ 98t@Ж4p `& P &3 }&l`8AZ0 &0 p`&p& vǠZ@ tmI&f`~ j|=A`k&P8L7`0e`Z&& :`֪c&zǪn9CUE ` `k TA`p0E`b4{` &a ( &@' `  & &&2qi &8Z؎l(l u`%G`H `@ & @ &09n &xQ @ &0gg. &`>Z007 &B &p` @6 &`l` ,@¸`' &`` E&\1 &`8 &@> @ &P8Zp uyZ`tP.O&P6X<@Q>ZP SZq>ZPO@8Z=@ ރZP-ZCRCXq-9\+ɮ` &Ӯ` &X#:`mll@ Zǁ8 00(fTADATADATADATADATADATA 9\A &P5ɬ ,z&L2`ń~ &`` E\u`c & &pf`} , &0 `(lBh &f`} /`2p&pfM f` Xqs B^ZP`8ZDZ^Z~ Xq-9\+ɮ` &Ӯ` &X#:`mbl0 }" &P5ɬ)V _lH=?+C6ZL7` &`ǀ^ZP &0`A`7m &` && &@`Xm &p/ & lgmm u/8Zǁ8 E\M΄ZDrc 9m0. &@~&c8Z0M &0 Đ7`p~ 9\t` &m rt '`C & P`0Sha=X`@ &p&-& vǠZ@ ` @KǐN}B &Qm` &09p~ 7 /4g0. &@~&CX`@ &p&-& vǠZڪ鰰 &m '`C & P`0S'`fX`@ &p&-& vǠZ6 `Ж4.p+&Qm &k@£!k61)dP & Ϡ6 7`p~ E\b `&``]n` &`Ǡ^Z~`cn``v)'p)!'p)A'p)a'p)'C>@Z8AZ(`3.7oA!%@yp#%'y%'p'yZ' ܣ' p0'~`p'p:p} 7>' 7'@u@& p8AZL7& qu8AZz'|'wqu&`"``}k. ` 'P (p F}pcpPI&`'@d`pupcp'p.6qu#wc`uC p`}H.'p"(p'F"py!'pf', p .&_Y:'?` &؀yOg,`Pْpp;Tx-ܣ@'ܣ`'y8 pppNp}j0>`'`0>`'gbq''~C'0 9ip@` ' :p=~P g` ,@pq''~c'0 9ip@` ' :p=~P g` ,@p9p|pp%.p@'yHkd_g7dp;T hG'0~WB'0 p&6.˻p?^p.~ރZLZ0p`' pz_}_`' pd_`'0m'0 p'5 p' C65 p*7pn'`` Zݘ@7&'`ps Z+ؑZ0> `' |V縘ܣ`l&DQl&`kQn& `.~h]= `1 HN`& `?x8Pݩ{ 8qu}8p)= p)'}'0 Bpm >pN'BpNA'FpN'FqdHp3Hpn/E8p)&9Pg{A -B'} Fpا}8A Z0,Dp30 'w5Ѳa%FOK'Qv4d`pFpyz_}_@' Fpz_|n&FpyF@65 Dp`' `d_`' DpN'k }b'Jp%.pW)?ET'V' \Bp'qۇ''vP)pZ'}k':pn} q' ~ 8A ZD!E:p޷v5S>@ ZD:pm'qۇ''l~Z'}kH:p' }' :p=0~ 8A Zp{qۧ'}kWЧ'`:p '>p'0 p'Ep):p޷v:p'pq'f' Bp' E8p):p޷v:p':pmp8pm0S2' np_e' :p Z'}kW}' :p=c)'ۇ' "dv!' :pk{:>' ">'}kZ'"ܣ@''VQk''kQN' 4p@'E8p]"ܣ@''kQN' 6pM'0 FpתDpط|YyطA Z0,Dp30 'p5Ѳa%FOK'Qv4d`pFpyz_}_@' Fpz_|n&FpA'G Fp-P{ }B'0 4p>}1 \N4p`'0 6p`'kQn' 6q@' 4pv>'ມ`'0 6p`'kQ[1 6p`'E:pv!'PO mp_e' :p$U6:p  8p$U6Bp ((kP "a"n0`j$ZD(ٌ rq`(&"&a(~ՃO i$O>@( 9uk@p6 ZǍ`p"d0Sj`E$͸`(`t ,$uiyf$p/(؝J% cf(p(00Y5:<0{8`(5ˈ(ރ Z%(*(:ˆ)B@  ((P`FD{JIрѐѐC(N 2`(0P # u` Ҡy0H TzkH   9D PI  9@#ry` Ҡy0X( ` Ҡy(0( P8\Z )(py0 J]kH   9D PI  9@& Jgno1` + (  Lgno1{{ A?Sn^(f -If`?H `~8&^t0n^(q0dƪnqu+.=Faٍo(@' 00(r ( pctE ` nZ%ˋ)0)0/OQ/Oܠ; ʜ˕X! )Z@WW{5tew> A )P(Ɏ- )b )Z5{XxI( 8Z@8Zǡ )Z@0+ZRwZ0 0 ~9, s~ )0  )0 7`ᜐ-` 16 )Pw)@R 9  ) 9 Ϣ )Z5)0Z0EZmErc ~ZDOV 7'0 )(pI 0gi=E(`J!(N )@'v2A )[! )Na kg>! )P)Z|)pf),  e#, ԛA= sA~ )`ᜐ-` [d8pW<) N )t0 )㴐A C㒐@ )*C.: )Z@WW{5tew> A )'` )Z5{XxI('8Z@8Zǡ )Z@0x 0 )(pI 0gi=E(`J!(N )@'v2A )[! )N kg> )pf ))Rl )pf ))RIڑ0)Zǡ)Z%S-CZPZ0 3 <{:Z>aDyq(-)P,)`Ԑ . ) ؐS A0Ss-ؐY}ifn'ܐm ڐN )ސN)NA)Td)CKZN)A)03>@)@)ط -P{ G )Х&9Pg{QXd>` )`5)Q ) ؎ ) Ґ1 NҐ ) А'8֐ N k )E֐Mc&֐$U6֐ } )ڐ )K)p+),E Zd )`֐a )؇}b)`),:))q@)Pފ N)4 p)p:/@) єn[)P Zd )`֐M )0 Zd )`֐˒a )}7m0S͒U6֐͒ Zd)`5'c)np:C)g) 48fk) :k{:Q@) E֐]d'8֐K)E>` )48fb֐ Ԑڝ S %)]7)0})6 "   rI4)0}) dP< ) !)  \Y{ vc*`v .* z!70>`7\*ʰQ * 1 ̰N*0 |Zd*Eܣ* 1 ΰN* * v$U6vONA*k }*〠%W)?ET *V* \U) *`  `0*Ex*xn}' * ~ ) *`PvI ExHx*؇ } * :=0~ g* b *` *p@. *P *̊PZ*`EϬ*|7LfZ *̊PZ*48fl* x Ev Z*`xa*xmpvm0S * np_e* x Z *`5' *np:o} Kc& *Js'a +`p@+$ZD+0gfD+ :=PXmn+p  *mn+p I *ڱc+`~ `d` +``>Ddx٘>Td;tp$7aQC 7:FWC[pm"tuWC[pm":OQC s-n/>-,+0  ޠNkbۿC^[D?1T+1)+>$u*C NlbR V P*1)-8[mE ޠNAlb-P>$ @NalbۿC0S016[D?R`-{i+C>[0\ۡ k@p>[8 ʉ )+`P *1)+DNl2E C0S6[D?RP7;tew8ĉМxٲI8A[5 ClC[54,@+1)+  \Nl`i[8EE A?4 a0Mx+p\D ku@\_` +*C~&=Pd 0N$mW)?ET +V\\_/k P` ++uP`n0/j P` ++uP`m0` +) +@##u>rC78A[5  s > +4dhW+1)Bk1)S *1) *1)rk1)ib#u>rA[5 %` + CP{Nl"#St I3{NlbۿCnk 1)` + CP{N!l`hW+$1)+>$ Nal2E]@]Cn`h` +`jK O"` +`i` +`kK @C"OQC ?Cl+>to * O9E !+4BW+,1)+>t NlbۿC k01)Sd +>tr߂+Pt[0 a+*21)ibwnu NAl&+p)+p 1+P_`+61)ibb;K[&[@WW{5K[& [8#([0\ۡCk@p>[8 ʉ )+`P+8h`@A>@.+&@FEy9c?`Ģ"vl\G92tMD4QG A:)W|@&G:6=b .A/Icv<^Ѥ;00(fTADATADATADATADATADATAJ[ \e1U"|ENaă}̎2ȍFgDi f=Tn|hp  MϮňoC\$"2}QyXǁA}F;$pX˗E(c@U,N VAKJ00Xra JXLUтKE0 -c ,lCQ֡`тE 5, ІEB)=8eH% b4,raS0 -,Og,r ᧈS5G `E G - .}JDD6⨣d/z"-hG -ëhv n2gpʫ@(Ī RzskqЫ((~IJ2<(4 LUf!F ASH-,JN)yd1)|/0GAnDG@(L4.-,40^W&T(E(P@ t;Q|H 2Uއ4@n7UZQ$Bʻ"BjABqj⃟_{ D-HӣbޫD,B 0|J,=BPt"v0?F6 ~` ) @xo `pzY\p0h88Bp vi & ` vޖ?rvEM t` (AMPЂ}[zadus`S 45 ړK )0H;[W"~A@^cW$td"bP`*  PВB):(!AkW) Qq`2/ @ R:"R)Ko+h*9eU\p_R F|)tiTD3o @ @@Y p>T&XAJf1`=q|Q\(to&s _CXXaEPz%Ph6 {.V,bPP\}`WM1_5؆(;X"d)GqA@v4Rm4+- $CRudsVp`]+n"@^]aU&C7; pn"Pa ?#cqFnt7d(CS{`M4qPslu`p P[1PBxmЕMx-|`/}HBp((8o}0+..Ȋ J|5O2|@!1x 4H 8 @sHq( . I0, 0 (zt1$H B8 V(jRI<w>(i~ 4v}f 4 s0  #2Qi  O#;R$5͔5F$4i5 $( $H $h $qc< $8`G ,2a$ <'s2D]YFvzȇ~rX(D,Ј.0 @ "}y-}Y. 8%e(ԗEJ %ɏiC\4(6Ck)Q4Eea8 }){X\YV IR3 ( u[!<#扞B"㞣@ 01Ɉ Jʶ_q B `!hh` $ $ $  P He4lVB&@M'h&l&p' rv'ǐ'FJ 8/ (` O! 0 y h  `*9 `D1@BiMA&&o'd'x'jʈ B$Ztpza"eB06'U洦(d%jDabfڎ2ѥtY\2Auy)I~@dQpjP` &0u@`` xZ"y.[DP%l,yBqLr.X I"Mp(PnFIġ<:  Z  "+  P` MP {"}ʁ~! 7ذ."[~b@ ` A N+؂>Q 4kr0^奴&.486_w_^V 7YV`k-6 &FЪ 48GbkFwa˲'5"״KkEƵrT+/sX[۵ 7YRz+;Ft[CFJʤ: & $*&*B03 <^q.i*1K9";"9}22=Q413@ v2%@C=#zc 2212&+F+˕+"Mʕ*n+Ml~lf頫VtH@ d{7%:   ʫ1 Y#1#WIڡ55$w9 *1u1|`L09 9[9FCu-˫ kGنdnc SYƉSF <&eHH,PŽf2!@b>DPPpw3tw<vw tu6<% =S2yaã,4-P~<4 .@ɸ(ˬHcǓǶHuP ^a: ?Ŝ ͽu@͸k͸00(rTb%)w<~@`0 d}*2 - £3u]\~bM < 1  W"~'*9gZ@.QD63PN%R tA'Q@ʲb-1k1H<3<3np*۶3 ")#"64PF 2!"uDz2! Qt&1+ `$jٖ7>җ-2 1PR% a9Y 힆q! &ZEy&j p޶ߍ"}"@.}2*.(.M.k=4`>;nםT 6K2ዲ1G>(UN1*lay1H ^%cijFv`@>S;NߒfpC y$1r.˫.T`^(, K0ll0 `}݆ b@!?y 5=t>86!" +_Oj=rbgF Bz ذrP?OX91y2 =4 &(ؑ`| B٘D @ Bۨdzoğ1 p~ C$q`| : '| -|r) : op ~9rs^gOX /柈)8__k? @)`(/`- 7,/8{F h@#f#/>>h>P ˑd0+#HX""$(/   1h $/0U $/0U" t`No.IP$Gah eHd8y& G/@ #0y°+ yp-*@9Ag:.@ 0|qڌ(g/0 ./0 2@0 /0U /0U }Fn.M/&Jjo.n.M/6Twmo.ŔF.M/Cg+~꼎 k$H/@- >@>c=>#??3#0?Jg#M"#}d8E rWVd5E_8ţ'BB,B1d3TCpC9;C?0E rWVd5E_8dHhR&FqsTGwPE5@^ D FDM'/'2A᧏'2a DB/K5 B"/_nDM'/C+~Ba`/8 ǝuA/` %Ю(P  >`h/MpF}ˉeh/.g*t) FcCRt//L@D FDM'/'2A᧏'2at4DcK/ L~ /0B2/+P&@/tB0{nP")P+$f& <\/ HWIpN'p#HXP*$/ Rm) , &`T.@ 1l6/ Tݖ/{ Rѽܣ / R / Tѽܣ@/ T$@R~`@/ +RϫJT jBPaNpY)/a/ T/ V/ KV~zV8߂X~zXz PnVI`z<scB0`b0FSyscB>--6I>-n6ǑGIf/hU/&u@Ij/lUSB"$6FP P;fz, .n:6tG/ (Pah//` )@h^}/p-M)Ռ$/ (((Z`+ yڢF\ :P5 ^/ `!/ (Z`+ڢF^ mZp* A !`Vt*#0y°+ yp-*h^t `2!t(2Au0 /{( Ը / ypH; *@i.`Ψ(Zygb2AtIm.Ǜ.W-]/ьgs.QyitOQڕt//j@D FDM'/'2A᧏'2at4DcK// Bc+/ h~ nDM'/C'+^E(l#ԏ _#/@<"@I* t&Az0XH.Q12%;S%?n7\#5/P5Hu@ @º<%>dH @@<.U6=PK\,# Re[Ż,gmU,#(m["(tvU>? <:y铡 KBU<)>)@)B)DFRHYnIPP#/P5a)lUx@%7 zPҏ ?D??DԸ!$H^6QDԸ00(fTADATADATADATADATADATAُ ҏ <"Az0ߺAo @B @CJ$HOeJ$H;\\ ҏ <"Az0ߺop \'pp/P/P5+jFP2op93t/p-pXP/P5˛Ao @Ba\I/ f҄ sP%Un4`UE C`(,>.n1>e6[c !/ E"!/띞bO6 ߃0W[n _na> ߀ri'ڕFMWF묃nSFMWFu>1nuNsv;UBIhu*@[t4_¡t4ak!`/P`+v$~ 3jSP ۆ8 N}?a  G8-...6ǍK ; "jzn6ـb#6E~D.n6I~D. !jހS!!uznu4HTU >Bo#m,//qFR.8-nT G )Ռ$/ ҏ ԏ (Z`+ (: p>`(00(mJ30S " nQt q(QJYn1YM > d2 .(@/$Yjhi%jWI* t2U G// | G/!KD 0>-PA\`O |CH $VJw[C'A#C$`s.t`k C$@DE 7URp0t!m@~b+,d2/\i\I2/ M̝ jX%)pRqv jƅe^Kr!wE6Y5WU;k 0t k9![%/@lD$YI///qF0@fU`((`0oˊuע/˫"'oˊnBуw/p-5 *t)k$HԚ.l^! 5,,Ǻ<# ُd/jSm/mJ-6J/,1/ M2M+P&pe雾C +^+$f&*/2/ M0ZnXIېcD Q%W` L-E@' j*p+Rq jƅe^Kr!wE6Yū^A/PfY /PCg˰Ɲ eXX&/plAh@t$yIF 0 @̸_, /R " GPPn|A h)eo-L /? mXnwuA h)eo-L /?@mXsy8v{n#VnHIhEcD Q%rPkJ. G

`M0@-d9019%  T\ /P0 [1 Qnr\%`zlcҾ! uaf fEv f|-f faf <b6P]U.b bϯ'`r`b=Q 4=p fEv.@ Q@ jK !4vr+m'AA1O  &`P a(X%i$(Mg(hݬq2'ua'2#*+S*/|*MnU%4 )Q*(p~!ҧU"}dX% ))҈-0 @ab{+,B, /,b(G*-"(ւ-2S2ݒ4GI?/"U QE@3s\5 +q܄3- 2#U3t3- US*EP:L`4493l>=>#??T3t6 .r?GST(EE8ţBB,B/C>C57CC=C_ST(EE8$+&U&G:GutGQ &+򼪴HHtqaqV}gg=P_RC. I ) @ ^Ƌp0)02 @Rb0 D `P0@   fY#0>PW0|@.-0@!>Sq] |`0 ע05ڐºE֐#no` v 2( U UrnPP N` `i `0@:0|P0|  7!) < }J% P @   tC$0>Pۇ  0 0`e00@    P H"9^^ }0?|`]V(/~Z0P}ĵG_00@    ?0>Pۇ  0 0`@10|0| r U X?0>Pۧ|Uuz.*YD@S|Pchn nS&Q}}:`T>eYm*-2 0 /) I P%010|0| /00#0>Pۇ 0 0pX>P%010|0| T"P<"9^^a }!0 0P$`鰢0o10|0| 00#0>Pۇ A0 0`$0o10|0| @@/0>Pg0 /) I N P 10|0| "P"9^^ }*b?0 0)`f10|0| @@/0>Pۇ 0 0Zn0@   RS0>Pۧ|U/~Ze1P8p7^UG|^PzQPk`r(g\se1P#k00(rY*8jB*"a߂ 0@$6a`:0o10|0| @=%9^!^A }*Sq] |` b*AQ  B|@.V y .B# B|@.VPyA .BQ B|@.Vyq.bJr0 `"S040@    l0>Pۧ"|^ا}0! !~԰!N!B# /< b!4b!4n!N!B# /<ʱmPb!4B@ž!B# /<ʱb!4 "|Ӊa!4 /P`a   xp)10n:vʡ"x1P!O }1-1p J2b1 x/Z ᦳPۧ0@(P o 4{( ,$@q2 @fJjJ' +@1J0   ښqU @c 4 @~ ` 40,@6@TWF0PH |.Q J| `@% 4@20%f 4;@~fJ2A 4@s@( '0p0@S0*ASQ:) (P }f 40 ,@6@TWF0P0Z*A .Q J| ް'2A 4@'@('0p0@S0  40y@ك @!a" .p.p X(}QS @ҧp xd" BR.B d' 08.pU po.Q J| 9,$@q4 @@4@P0"4@ a@aAua40@2A4Ԁ 5qn ֥;~9n?p6C S .9~.q0;p0!ή9P?0,@@ q , n.0@S00.ǹH Z5~? *A *A S  'PM4~o`Ҵ$41$4|i>%>4 4"9^!^n`>Pۧ05 @%f4' r ' 0p0 ,@@ SB'PM44@P`b4P&@@ . ~e"47VwMc+4 @~ *A |H !4E S .9@4`*? 7y4@0 @@ p  #9^!^n`>Pۇ @DE`d4@   `<"9^!^!n`>PG. B _ !5aPJo@v P"5 P!@2$9 P$TuP 7S2a5 M0b5bvH$TuP 7S25 MɠP5+ P(5`-5 P@"5vd. 50P25 P(5$ P2 &P5Xȅ,P`"PS5^`&9U p:(P59 >5^`&9 nSP!`I "P5065W"P5$PX5k0P(d5p IO ^&9`t5B&P@25v UF3%P|:P5B&P^&9r &9`w@O 5B&P&9@w$#50. 5px@5fH&2PMG5u@25v UF3%P|:P[&2PMG5u` aN4PB5Hp:0Pp:0 0P(d5p `5@q2Ps N\dAXf ||Grn{e~|v~^ @L2P 2P5v UF3%P|:Pzd5p6PÉ5@'n{~^qa p ı`5`r5A^:P8`8P`6p}xG5a>Pww54pwP @!<P5v UF3%P|: >P5p:0 $P25{5^`$cPJoPu`TX8S25ϧ5p3%P|: *P\5 ,P4p3%P~P5 +*PJo@v *Pc5 @P~0 DžBPu*PJ@2gPu@50*P2!5@  ~TP Q>@5b :PP TPB5 ۠D5@.-a   žs5> "!RdT `pg.Be@F5b :P@E "]tjP$:o5YW`* "]tjP$:o5@ 5pv5zB5!T5{lgW 1)jP!ήpjP5> "!RdT `qH -E18`:P@X!T0 nP*,5@*5 *5 rPEYa5P`+vP a5"5JE@jP8pYRa35%A %55`jP* B]OB5ya`   g76 @#zu`!65`F0`Ȃ`Jk 9t /64646P@J`4B6 `xo6 `6P`+`?6aaFs5p-a=Q6 `! 6@ `H696y>@650460 `E66 +`k= ac6 `~ e 6 `n@$7al6P<6@46<ַSbNa6~ Kch +`%6н=Pne60a2a 6ؠ:6 +`%6k=P00(fTADATADATADATADATADATAne6p-aXؠa6pJ2b7@p!%@@p$swV/*!7GA7aDpJ2bc7FpȬBp DpB7x5נHpi/70 Jp7^p!#F<@p7~7}Pb74@pB7Qu@B7^p!B7`LG7 DpcK7 JHpQ7uLp 2b7nu Lp7v5ߠna&` Enq&` ELpkoJ|T5 = G7!+>p2bNp>7uOP&` * Xt)7Ґ-\7 ne7`u  Ppp  +>p fUQ Np70,vA@p70`70 RpH.'7"sd8yRpQRp1 Rp7Qu@* 8-yQa!*uT`@7Tp'~A74Tph7 Vp7nueA7Li7afpF3 6p-fp=~V&T- n ]7pv7 O7+h`@77jpa7Tp}7p"7 Tpc7 +fp%7=`70@pNpv7<7@ ^p!&* eYm* R$u7`P\ +hp9t0;\Ifp7 #PE#GI#PEWDI(g\ZpU;k fp0 6`˰ƝS70 fp@xxv7 fpD7<`7 +hp91`!]t`7 hNp `w}ٷ}7t@i>7s7w\e@*J*^Ѧ]wrDDs0`m* R$a7afp3 6Qu@`7p-fp=Q3pP*@.02 @{~&=t0;$IpX@2=8p-X=~`*B8*R8pXlل80 Z8<<%8p-X=Q 8`4 +ZFs8`ZF8)>5"Zߞi}P- n nQq n ]/d`r(g\s8P#8`AT!k &=`u&ku@&buž!~!i(tLA02 @{~$CE؀z> 8Sr؀1߲N؀ 8aڀJ@2 8e 88P ڀע 8Qs  ߲ 8p-؀=Q a" .R! B#) oleP^P! @#u~4n ])3%xpX8S29() @#i!#q B!X8S9  :@P:^#&+!6 T&@:02!: > 8}`]~; @.B Ā49@?n :@?:{( : y9a:0|i:0y&`|9 ϐC 2:@C* SqZd`NF9:@pUv ı9*A 8M#la   :@o( pr!^A:`iF:0 6OI`>`:@jUr G:aJod.:p-=P_~` g * ao0/Pm6 1o@.´hR//%Pe"!o ] TzO G#VĤ:БbI<0%S N pt`r(g\s:P#T_kY W2UP1 A݈JXh f`P_n;e fb 6X 0 $A:@vlF: &:P` :0y: +Jod.:p-=P_~` rѦ( rJDs0`m!4vr~Z:P8;)LkA &rAU;Beo_6Q.02 @ i!_$ `3pX@   `d}>i_@.-# :;_e0t `=A:БE6a70!X@   "9^^ao`>PW.-4oc ! :o xA :aJ`qSq] :'O :p-=N0&`q -EuP,&H _Pch TW*- 0*5&IJ@ua;:`4B.:06"r:?``  p 0:ڂ   %f :' F :Pb'  F :Pbɚɺ@2@<b :ib&'GvbФ:> : Q%@2pI: : +"Pr :,$@@qr:  A ::06!Ơ :@PP2~e :7paȶ~e :`PVw :0Ƞ2 :  :: ̠vy  :@   @ad$t} :,$@@qr: Ơj fU:M +~e :`` :@6@T&@` :0:P  A :@b :P&ȠAbFǩJg M :`J@uaru :Ƞ2 : M_0z 0 Рp@P0PsР1P`v0| d g j $=a :t`@00(rA::: ̠v̠dX%i=a :tn# _xD#!9 :P`G :@U &M :-@# ::nn U@Ҡ1p 0` <"9^Av} :aȠ",B,FAb6 :b :p-Ƞ=)~0 @ : P @ :aȠ0,B,Fq`$fȠ(V : Ƞׂ : Ԡ`` :Wp0^g ` : Ƞ :<Ѡ`m@ua Ƞׂ :Ԁ &M :&`b :,@6TWʰ :aȠ",B,FAb6 :b :p-Ƞ=)~0  :aȠ0,B,Fq`$fȠ( : Ƞׂ : ` :Wp a ` : Ƞ : :B,Bld`$fȠ( : Ƞׂ :ӠȠ : B,Bl7pAb6 :b :p-Ƞ=)~ :*XP `  rw Q @Ƞ :<Ѡ`m@ua Ƞׂ :Ԑy :aȠ",B,FAb6 :b :p-Ƞ=.~0 : :ޠ :aȠ0,B,Fq`$fȠ( : Ƞׂ :6 :6 :6 :6 : :0 P~ o?`y1 OlȠ : B,Bl7pAb6 :b :p-Ƞ=.~ :@ڠ Ro?`y1   :di G u : +~Jo@uaȠ i:P&Ƞ6T&egȠׂ : +J@uaRv  :P7! :  :di f# 1( Ƞf :P&Ƞ. ~e :7Vw :p-Ƞ=)~@ b :,@q , n.l:\&M :`?`@A::: ̠v̠dX%! :0: +"a@uJC=a :tb# _xD#!9 :P`G :@U2 :0: +,@6TW0:0 p@py 0 :@0j ǀʀ̀Ѐo`>Pۇ &M :!# :0yy `| CҠ1 p P   Y147:cY^A};0yȠ : :B,Bld`$fȠ(V : Ƞׂ : Ԡp` : Ƞ : B,Bl7pAb6 :b :p-Ƞ=)~ aԠ̀` :@` : :aȠS :` :   ښ6T&@ :p-Ƞ=)~@ =a :t `b :,@6TWP :aȠ",B,FAb6 :b :p-Ƞ=.~0 : :ޠ :aȠ0,B,Fq`$fȠ( : Ƞׂ : ܠ :6 :6 :0 @! :Ƞ :<Ѡ`m@ua Ƞׂ :Ԑ  :@U2=a :t`@<ҠPQnnn :@ 0|0| dgjmpsvy|[o`>PۧȠ : :B,Bld`$fȠ(V : Ƞׂ : Ԡp` : Ƞ : B,Bl7pAb6 :b :p-Ƞ=)~ o x o?`yq@@ : 8` :aȠ",B,FAb6 :b :p-Ƞ=.~0 : :ޠ :aȠ0,B,Fq`$fȠ( : Ƞׂ :  :di f# P0`` :ޠ B! :=a :t`@<ҠQ֐Ӑ#!6p yҠ1      @ p    `Y^A} :aȠ",B,FAb6 :b :p-Ƞ=)~0 @ : P @ :aȠ0,B,Fq`$fȠ(V : Ƞׂ :@@ : 8`ѮȠ : :B,Bld`$fȠ( : Ƞׂ :  :0 ܠ! :Ƞ : B,Bl7pAb6 :b :p-Ƞ=.~ :ޠ( :0 ::=a :t`@<Ҡ Q֐Ӑ#!6p yҠ1    P    9瀜\@B\xGU@#"C \ɒ :vt[L( GDJ(=352_)H4rr'.& tF0eҴN:|GZ6a[v{OjGCO1?L+010 `bP x\e i@EzŊ1t%t=1-vќ4D 0 ;@ $J(!42A$B(CoA .P:_:7NcA@:P0Ex@axs N|T8.s'@C C!X".̤bFr:C^IT$cdy!$^er @ B Uǐ,)Vt8'.qF@U"`8)""RH<;5SA LQGo ]6:ěo Ko:mC2bm8@h;=& B@(掂.[ӤS?VaVi˭[H>pqA(`f?:܃ p6 DGSgFH+ʹCf@&'L3:00(fTADATADATADATADATADATASl1sl8S؋$J-yL:!_a#?KG~nxRaFVaFc7FrcFڐXwi|J ` x#. h:C4hC%|r|mlۭ"K7L370@l #ᶈ9pb6ֱ eaXO:VA\P#}F`wt$*0<#*09.5pSRH<Xc7c:cZ.|Z"5PDl;2l~0E.-]:4 ^7 ƴlac(7 ҍwC2H 5(uC ,b6*Jv]:^VFJZ:a_?<W*A{@CSd\ (5Z#Hǚ-ż<`FI`(`_N 56n[hA1=p@}ez.؁x"rvp V@B##2}Y_̚x)/`3#a2A($ v.Y3}M wHBD51 _񃛩Sg'C< }65MhA`5}M2"ɏpAf֎f)cL`+Z0 ::o^`!vG]@͹GLls?]v0 DOm`Ýn X[vy־~ỵ @=W|Vvu#R Ȁ'<t@m Bt !zwbxq9m G Qh(ҫ &<pQuu@ vZNxuyޯw}阁PEx nS<ptES!CHP=[XL*@ BW:ӿCR8K:p :F>OL?^ L}=;Oש\`Ӟ+ LA Z<t@<u PCuJd@ 1$ P0ux%P  (8Su@8 ~RhZ'vrc8tR9u6!2< axp<0t6hЀ ʀ1wx p;@ 0xt=k0>1=~0 3ww0yQ@E)$$$$PRE`@`z` ( à Uw  /B P%):<5V% P  @ p 0 4 Fb $% ,+W }ׁ\~ < 0d}9@)A+`E@/* / .I_19+^`FUy Iza`` < |YLf2{i`Ɨ ] ] ] ]) ]I ]i ] ] ] ] ] 2`Ň 3 + ؗɚ }vt$Ra&+m)UmY; Y`9 ؇fa<0 Зn 9 ЗT H_k)|_5 tf_5"atfiNy>\i@u`ן}V~0 *Y I_I_I_I_wH_݉ʖ^+b.2 @v9y)j`FfٕЕЕЕЕЕЕЕЕQ*bvY֥$0qڶqJtz }9 Y: ЗUٕɣFɡZ1t *_ڟQt֥?ڡ$jz)u+gꢑ"FʇHjSJZfOƘ 1Uu d fz :pjm ?j w|! ds`'@09y9y iɝ} `>A <2گ68ڕ;+?pR*j(& Ll%E4ř;E$kp ; ݉ 1 Q q a ᱿ҕ9zh$+[- 71zڳ:HJKvٴ< ;U[൸0+ixmdo;q[7;]˳ Y ! A]+%I[ N۝QK ; k۷+ ە#{ ",uH*KJu +b[P9;˯?A E ˻—|&,_~9 ڕI_ /9" lipK+[] ,* }UQ; ЗmШjJ oY2Ki KڠP;FZ  +~}g$ ~ cH&"1Gzi}I01>0'<\0A.\`t oc+P000kB2!YGR R9wR;kom؈ 4  1U7 G`q}]04m؂pyڙpEm-m^pF-m}ݣWYm,> Mށݣ―KM*;\vK_ o,8-F>>%$Z`a.M+]3 5e"煝:\mN$p $p@|^ Uޕ?@`2ܣikG^_ Z~隐pN_>5TqP}p V N_q_ nk^_4-7IMؑ-D)ؐ RI|Wl m7+.&>(OS~+1點`|+t+ə.>-c<^G J,LbR?N_ p?úz79PSЎ}퀯N.m憟U6\_/n^ -Cs^v> .po@+RF@@%/h=߶vo06?8?p2ӯ狷\^/EzŘ?RΕTf\?`ֆO o= 议T/WO2$ L m/]/L!.߾|_.[ٕ/?աߣu>HFɌي ۊ ݊ >*Һ"Wu|x}6t!X@=p5u W >jjY >Aǡ0FJ])pOp="&0 flHɌي ۊ ݊ ߊ [J_]J__J_aJ_c*K+MvuH[m}t cmtm}? WgSoե5<^z^kɂZfxPo"%Pyrv2Y`?@_xyIp$pq5S?p5?p5ty5?p5`:VE~0E?`"? r >!?Gv0p3! `? × L |$t,pȊP8u!?F >@?rPZp GW ?$ - =8&nQ/?=N~0!-+88@?`)` ?=r~ ?8&n mC?@E nC?@&2 '.Bz0O0'}tptm1O.n?@_xyI&R '." v0p3! `? ×p(pȊP'8t2Q 8u0 `?@_xy? t a? }<@? vB8|pׁEC?9ׁEPC?v?r?  +v? x`Ga? }<@? vB8|p0 )?0 }MwO ??+c- >?P? ?p0W|!? p  ?sT? }1$=PN }F?@f?@_xy? t<| $*J?p?p  ^0ϼ 7 `P?p0W|!?`:PGwtW|fA\|g$oPv@ ?p0E@{+qe ??И? ??! ?l`> ?! ?lL vN ?v o&?г?_ "`^"`}$"@аt0E@a?5a?`^f0< !"? }& ?@Й?v o \ϣ@ ?"CQ@ ?ga?0oe ?г?`?kv  u pӱ >\w ??밦ɇv"` ??PE ?0 vE@}@v`?p0W|`?@_xy? ta? }<E&^ ? ?P 0 ?> I*yWWuP(Vh0{uPbByWwuP(Vwu !=A$ }-!?0 =g! ?> I }&?PĢ ? ?I# 1+.ǂ"%?} ?yov$pW? ?   ? ?_dl ڐW| '."5> ?@u@`?@_xy&P>`? }8?P tW|`?p0W|x ?Pms W.,p$pWlgVt$pȁBɽt`$0~0{usP%p$pWlVds$pWWH~F yWt eWguP(* p?"~& '.!"?u!?p5!"?" PT5> ?С|`|(?~" v? x`u`v<|v0p3! !-+88@?`Y ?=r~ ?8&n<|."`!i!?&"z`&.? !?- 8bB.W0W` ?pt# uͰ> ? ~T6=6=ڢG!?=tܣ=0!? r **?g~ m``S!- = r0^>!?3b@ϣ8$G ?r!%z t_  ?X~׀ItiS` fA\|"|`u`"")0!?  -{G7P ?=0C1 ?0e:c ~bnk!?pthI͠p&`=" ?}F ? I sE v? x`Yv<|v0p3! !-(pȌct@>!? 0; PT-?Ppimֶwa ?NQoQEC?@ EC?@e0b`?@_xyI&r '. 4v0p3! ?8t` ?0pX?8u` ?pX`?p0W|`?@_xy? }0 `?p0W|a? }<@?`"?po8@?@['?=C!P> ?u@ՂW  ? v? xL b? }<@? vB8|, -(pȌct ?=C!<|.v" PT-?p5 ?0 tN` ?@_ 4. ,bmN0@&`GfNH`"?0%"%?x4  ?Wp0E+@w>! ?!u Fe`& ?_W"SWh>@<Wsv'k'svj00(fTADATADATADATADATADATARvu$R '2 )f$ 0{u iNy;P&$FIIB IR IIfQ$*j6X[ @p+ 0ϼ[t @9v`@x wu@ &?eT@oBc-6@@9 wu@ =ySe![NuFT@0! @qA-a0^>@P^wu `WT@oBc-6@@x @ E=`: Rc >@G`? Yv` @ ?ZeLl@Peb WW|[$@@ 3@o7v`@9A0{u@ &^ k[t @9v`@9 P'wu@ umT@oBc-6@@9 wuY$w@ =9PH+̀Ryr s]c4wdPj@iaiy 8`n@sP;tEia::Pu5Qޢ@P$`ޢ: u5QF`ޢ@ІP'V|0P*Z}@ iiCqty5gjWc2c5of Nf+wv'k's5gdA@_t/]fd>Ap4`.W`.<  t4`BW`.< ~ ;|A0 mdw&A }AK~``A@_EA@_AA!c>@A0t:PF >AfNvga`A@_EA@_AA!A`A@_J| 4à)@A Ϡ A4 p4ۭ=tR i9۵}GFĂׁ\|Hp8Q|pKA@_dA@_t/w cAgə }A@Я> APA0  A J| 4à)@A Ϡ J\07LݚA!M!]gyd$lAp8p Hp8Q|pKA@_dA@_t/w [ A} Ag`lb;}A}A@> A  A 逐0A4I @;9 $ G0A4 p4ۭ=tR i9۵}GFAׁ̚\|Hp8Q|pKA@_dA@_t/w [ A} Ag`lCgM4p8p4 t8 p4  $@A|0 c,k's9VsbWe݁uuP` ;YvRVEwuPegd` e.e[tW7uP` ;YruRVEwuPe `v%um&\=PuP` ;YrRVEwuPegd` %.e7wvv^57'B_ " `2! B! B`uPpq_BUϣ Bpg }$_`Ng }0 B G\Vw& B ` Bs! C4 -Tȏ *J Bg ~` BpTQ|A<} +1 r\u\* B_q@_E B_* B B B" h!B B0|>@ B~A B 6; @  G Bg t0!B B u`m@ " PPׅЖ͋]gyd@ b\u\ Bkzv[814w>F b5Yqfc$LV<q  c,B`:s -h >Bc0\~`݁uu 6pPB0C 0|p t0m0R\$ÖA\ePXY$EHSY#yтe(ŜYZf,]2%<?9)~0Co 9 rymu]H![ ]仺ZleQ)WHPY9 Z88U(ߠ`͓]KTĢg㲨"p͑0.6 cĩ[ /_k4(+ @c>됱n  <:s֩N 00PP"B€tnL Ab 8 MZD'$j@ {) .Q`!t-x1 h4;6 0!9.(>]O:\+.c+&Z>ȁ t 01t2 .bc H!ccD"xH GH%+vt>3dA 6-:Q|kM삎SH#kp;"NR#I<00 0#B`R_c|-Q &`(Ir(/ђI! %G B@:\AUѡ/\pAF2`Ρ]N13HdHtxpG΀S>:e&G:р!kV Ё`%]~:#bx"(=i P'g_W耀##JRcC=p(-`Y(#&?T"(`t0oCIp;!"gH;()y QuP/G6/ 4IɅ@ԨLLL0$v AX2J^rß`*`XG{`cո61؃qopAز*5{cɠ! EcmX:y{T™ЬC."=Q?E4CP7nECP5l%:a#F6:A=E4dl@s(@ B4 : ֬104zYxJE opVZ<*_0tc @oPvllL:Yj:r uSjhPa-1J 3 .4 $dZ  %𮿐52`ɐfi P0 У * %琮fK@ pZShcK`` f0006Wj* `K6K @y0 Z6# 6@*b Nh%ж[sj˶zpkhq JO 7`~RkGp `=0`30`)@P S@pK@.! 4 J;@p Qp[C`0- 0tt0{ ǰ ,+0 H}EZՂ DAP pR6 )T< p 0 $; sP+95 9p0O3 :@ rpC 0 0 4=S P  1P8 @b tbj QZ~Gp"@.F %`YpN?B )caf D{q`Ythh>pE@pFA ,:ƀ @92`{PQ0 l˸˾, :QоshސdɔC  p J0.p g)Hs! t@{R($Wf! э5$a0 &PE%`- ½P5}(  u60&-MO ]&4pw6Y? @ f LN vg9A&Q`0'u pa rP{" # +` p(]<à4fj0 Ջ` +p JUXv0PP HjP` 00&Zt m2 5"+p   ޭp @ ٲs V@eqQ &zm @H``<6!e3*o @& D j Y:ZqPi 5 7 m(ð\&a#M`0Z5P6nǺpP.W 6P  \ѧd{QnPڰ Y 0bA+ <1`_ܻ0(E fGy 8`8V\ Z+N~wbZz3 8P SP] `(N9=:DJ F QJ oΣd `@ @`8  P m5"'2 0  ( 5* w` ?A A0ShG 'hokSɂ>4fnlAYG!q6֔Lj6O9V M솔#+m= =Al^Po]P 5 $!+~ gmu`/q_IGA5|6o%yF.gj].x W~ GR`8~羰0 UQ?>p`P4Sp2 q Uy:t@< , @#)NX++H B`q0Pe^Ե~`ܥN P@Æ CbbcPP'`Ϭ _ V ;/uE};@JyA @f NV`` ;1\`c0@;0spj pj%p` qNPsӍP~ 8:BE uD`PPmr0PIw0h`0@ ǣN w`5g3`P0- 2@5\&@c?`">!  5 nV U8 }u`-S'0gJ H@;pC%YV:^00 R0V2r Q@ H@9 ľeJpp mZLP RP& r00(rBR9>&r PP 0 8ޏ6;p@. $0 r9xՉ `^ӂ ,Hu0 sy`ћ<0  ׀ ^? ZY/iVN Y9  o pImsY$?!@  : : :p͠ ͠ ͠ P P P P wN0@ 5@p <  = P = wN0@ 4@p < @ wN0@ 4@p < , @, wN0p@x < < @< wN0@ 9@p <  = ͐ = wN0@ 8@p < ̀ wN0@ 8@p < , ̀, wN0p̀x < < ̀< wN0@ ;@p <  = Ͱ = wN0@ 7@p <  = p = wN0P= pp < < = p< =@8'ZD R pP& EpY] W@_I5E #]@mD`܏ xmDj x 0 0 @ @`6T iC0A@T'TT Tp T Tp T Tp TpTpT P  P  P  P0  8P@ 8P hP  hP  P  P  P P0 Z@R1  R0 0PuRZ0,o   RpR B 4IAS 50L >@R 7`H 92 RÀ 0%@nU].$ p t yp .fahH+0À" ـ. r /' rR3 P 3 P  P Zr! հ0 V fB P . R2 ?P'D ;R0>S@}0` o ƥRpv0 R 5p. S : ͐>S =`Su͐ =0 QCR 9 W   ~H 9p< OPDX 0 J[ J{  5sP > 14< 0 ^ 70BQU( Лp'Ѐ X03   0 XX WU].$ p t yp .fahH+0Àbp  /g'@RV( r X0 0ذ 9Pmpð q p 2 ,x0@Àr`& +@<+0 NÀH0 ~ ,pR;CÐk<0 P (P RP PP Pހ$`&.@0 w b. & ` 2 R0 @ `>bHmj<L}!0 f 7 p? .00P0 j.t0OzS E0 K0`ض"0W (` I@ @]%BMy t S 5S0P S0PSP.PS 9@P 7 )0PȠ   M`00 Q0@0p "0P u_ < / 4 ͐>w0StG ͠pp< 5S0p P 0   PѠ @` 0  S` wjP   %0 @` P ] АPY0Y0ѐ @` P ] А IPG!SŤ0 0 uc(`A] @ p@1@K0 D9 p6pPz  x@]@Ð 3T&pI uf U0Cu0d ufR @0 P>@S`PSpP/pI ` & b wI`) t@ pP/t@Kt2xg3 p7;0 F%PXEPE P0  0 E L@L@ufr Xʵd & b P  `& @0 P>`S`pSh_Ij < j `-X{[j < j `-o)<{[j `-5)`j `-)Eb-sP 5c\ 5`h0f 9`l0͠ 9 =`FpApU5. < T 5 ͠ 7@P : ͠ 5p. T : 5Ð@ :0 9P0 XPtP 5p.@ T : ͐~``u P 7P͠ 5pV p. U : ͠ 5@͐~``p  5P 4 ͐~``p^ 9 PS  0 9P9 ` Pɰ 5P ɰ 5P 5P 4 ͐~``P 50 7P͠dP :  5 5P 5 P :P 5͠ : P 9 =`FpR 5Àp 9 p. U0 ͐ؠt͐ 5à`FP 9 @ 9 d{ mOD :P 5p.S : ͐~``u @DtP_ 5 p :͠0 DtP 5P 5- ` % 5͠pJ0 `p d 5 ͐jK 5͠ 5-d P͠ Ou@5̀ : 5 P Ou@4 P 5 ͠0  pP `@ `PX @ ` `  @ 4  ࡞P p iPP C) @ ` Ix  #4 kP'pp|  C` /@`~ p?0 p p ?p n P?ep ?0ppP ?` iPp? BP p?w @? P ?0;P~N? E  @ ?` 1?0| ?` P@?P p? dF P #@w=cPCрpZp ; ̀ t_F'@WPJB0o 0- < / : [PÀX 2 $׀ $p,pP =NpP 9 5  0U $FА @p @@ @ P~iV^Pn@ U 5P͐~`À 5 ͐0 Pq͐ 9 P0 ͐ 9 P0 W͠0 `=͐ 9 p. U`@i0 `tpX4Pufq < O  `bTz@Ѐ  3  @K\z@ ` Y9bTz@` -84uc6U``J $S0-87\0 st@^ ;yTS_ưр6U1@It  lgY`{0 5 5 `[VMV<`QVU``.wV V +iQ.1@.1.0ҲP@ `X_<T &`.t_< ..`ղ.`0@.`0#s]rM`ZW < ApbO#3=[z_puYչ 3=Gta$Pz ^ Q@;>Q0 Ȑ^b` zQ0 Ȑ^` = h6ݵ`%P=PNV@ `pj塐ۣ%yPȷޑ P jZC Ptiu@``.` VjB 0 }n- ȑ V`&ʊ`V 9|In-` VjB =ZR Pȷ]  l` VuPSۃ"Ρ<[> `` VuPSۃ"u`H!b)> ``'r` `u`DjqNC ڹHpp+`i@Np %7!s phe` n#}ptz+}W : gE<tp``@@&q'y=n6A9 /Pȸ]V` ag)& ʸ, jjʸuZ\ %[ cY,jarjZC L2 xZZ.  V ` &āhPN` @NZNp0@ h0cVyv,B҈^W@00(r_ICX?1W`\>zPf"4Uf3`\(z@P ɭ84t\mBx3 h6<1 hZ Z"Z^#`0 ؆d% m0  ps Ft Ffҍb!y Fp Fʵz0- }0 /=&}X 0OF``N` ZEЊ%Nрsy E]v 8q00eV. + рbz q0eYP `[F0bV}Z@hZ[8-"d uZ 8q0`F``N` Z>Z 0Ґ͔Te q0 Y&b ?N>Z!Zdb ?NIde{X>`FgIde` ` ZIdedp axIde+`Fg98%NрsZZ F``N` Z iY& P>`Fg>Z F`P$]EJ[& yt Ft Fv'J[&| P> Pv.F`aifRF`%Nрs2F0bV@]N&[ 0 ``VF` F`aic8 `[Yٸ Fpe#ff0(GuFp^ W$Q&Ґ U0V hpj  [ ֠n[.$ 0V hpj `p8r R àj v` 8 8 R v` 8őP]E`hpP @`[.$ '0V pj j v` 8őPNҚP$@ àj j %z` FpbЁdp(8'`cJ ;c`hf 8ahf FpbЁdn pj=6j< ;c`hf 8ahf FpbЁd0(GuFp^ W$Q&8 l Y Fa p FEr FiaF@aIJp F4TC0F`flm-fRӂF`Z0~c`EgPpP1~ P p` E' i`?,PpAP@E@b0-S@E@iiLְ0T`EgPPp-}WFE ` \vPZ`! Za\"`0-)` \vPZ `0-)`ee eN Fp"0(0(8e ph 9T`E`?o~Pp@صƱp9T`? učeNP pCPy Fp"$ p#[  n`F pC0}P6K 4# "(0T uP pCPp ` E ̠9T` E Fp"@80(83  n`FCP @P 9T`EPHP `ERi`CPp!@@PfF`nH0# " 갿F`[FqZ(\ [e 56K`[ P 0ZQ p}% h 30V pjP5jQK` ENQK!5K0 n>K`E0u `j# "p0$ ~P0YP$`u rPP prPP=E[ [<Yg5 b ~P`j  nY# "6K@+`# "6K`[ P 0ZQ p 3k5lPJ FpH qtP9 pn8P|kA2`r p6K [ [ n# " Fp9 \F! (9@8[8deP @P i\n0th P @P e+0}@fbKEp'8R eN! ZCPy2T` EP Fp܇ qtP9 pn8P|kA2`r  `l€">č] [! ( $ `|` ``8}P\ظЛ p}% (\  &I @P>IB'I0IIW\ It` IЦ zp R" }5 ̄ Ir I9P,0_. u.IPɠI0- p 0 .P 0è Iv II ,}5 # ,ct`Eh38 `K j`rP`Kp.` a9(}q>K`E0tp@8Lp.5nE@`n>0ZQ pQK! Z L~`č]p@8LpO$>KEN ԐE`Ku@QXp_øp`.YY}.J Lp_00(fTADATADATADATADATADATAX.9 "ݵ`|` Lp_x @ܚp 8@`Y`8}Pd€"pahER)}% |.ɠa\p F.0>Ik .`I DP  0p pl0 .L`\ Л pIIlLL ZIF ,.P 0 GI0 I@ Y0 (L"lLPtE6upIF,EP! 0PI0 Lp P IN$F@IFP*P,0P!P .L`\ Л pTia0 (P],@,3r@ 0,Z\`L L `Kp @P iFP @P YFap F&`  Y`8}P5 [l0`u Л pL 0R`pb0 e60`p PPIF,P\@L`@LuIp뒥I- `p @Pg ,0P5 .g`Ky5nE@)``Kp` Kup`gi.F IF0 ,0@ @Pf RzIF hy .F  @Pv  !-d `}-eFg Л p 0 .8IJL P@ 0P Л pLIY@I p Y H (P`p Л pLI u`gy`Ip_9 `IP p 2 H~s I0 (0`Ip)  @I I p  P`I I`FgПP 0 Л p@`Kp @P iFgSP ~ Ipu@ '@(6I~dp @P  e dp @P Y\P Gc#w@rp tp>pYpYp`P`YpP`P` p`YpYpYpYpYpYpYpYpYp  QYp     ` Л pmTPIN @PELNLlLILL%LZLIEHNI0 `I_TP*__"W\p(8,L\([ .5nP u P p`rg>K ~P 3 ELq 2i\0 8P8 "AIc`IwFpH\pp8-KPP_Ye0  %8 "AIc`I_n0`8qZ \8II%'&P`rg,3\z.9 _0lLu`gЛ pQK`EPGnPJOƵʕĭ ^ipZK K3[_(Z`8mZ`L.Lp7`mFa p FDإ!`Y`FuP `e%zEpL``Yp YF0b~O@ =ԏ Y`F`Ue@8 hpc Lp [epP%'&PlL @P )[)wFp$\p([Z@J[&| P>9 [e `=e 8bp=Z7ۓ FpH9|F`g)LLJ~ 8 lj}`LF@]v@]'[ e@8hf[e` Lup%'&PlL @P )[)t![%Je Fp$\W?V p5Yde=E[ [ װ&!ۓ ([ [ .cUxS=YZP `8Ёd@80 %'&P- QI0-`|`N- N]B<0`Iƌ N"#$ˆd}uEAꈰg@:a SL,[Gsf͛[A2]vΨ1W Ft&]ˢr])t \ȅ!]vY"v&GT!hܿpS@ k,:W23 Pl7ȏ|lo(0z0@- c 9u3I:s qA AiM9%FH!mDaO@&SdXDdC.Kkp3D |ݗq᳈Xa"HhbDj2f!: i gBp.i &T  y&OJ2dXQ"pVVZ}ZF?F?+V0Ї.Z@oHF$bEf-FxY3H#7d&0Fx:؝艋\z%LrI_d`^(& @׫C+.BXauDG8bQ@KPD8%Qe d "F.rpI$2^ *xC-▋,%FBB%GYG HZ ,_(by? B%,)1  g`NVR෶ke;@41m8愒-D4[$]Mb0Xi5p .D1.$ԏs,oQs@X&)LhZ?jUD(@ P Kz=t_iMܤ ͫ`!,/]0!a8CGce,C۴q&-MGWE=DU5 04h}h^/(D`9-L$`8a  }D/5Iو>B&xD#l>bY2V}$ >ЇCNS?_Gӡu`$مL80pc`?&ǧ@ir`CJJ!zhbJ17ijlXra(4 @Lc-5c ٭BCN+:X$j`F=*R}H.Lm #XŌP* a("4+M!EW(K]Yvn{wd pMC&6.J& ?4pߕ3Ȣ-.0P@?䝒X0*_ U0/i&Ɋ#Õ~~2C3CAyv)YhM.d ,] Y ,+BJTFMІ'ob!07*bDw};"Չ/ի~.`:֧>_{Y4㋫u/`5POp p( =2[Q)څ ( NQU6b3^h">(N~Ȃ $p'p4kSt[$315 tR&`_ǁ /C a,xzh{wB~`8>E PI|Q @tt'ir ?pw4pkQv`=$yx(A`+Xgai 4%\e`"t,׶}8Y/ %[$pKh[Ӹ8 _X(bg m!:J  P/J`>#P t <1䠣LL`0â. 0#`1 \E 7qaP s P4>Џ&09 9#3B%ytШoTJt0rpuQfP`&A@p0sȒS'\0 p+P 0ZG" ʠrڎujF;Dv!/Q##3@pTA Q! X-GdYr)i2!) ։ ÝI(Y<ұ9 I${S m eed,fkѩ/!ڣZ#)/^:  IhljEFuF9jk8P`Ԧ ׺܊t`Yf 0JmWT;p7PE* ?5{۷ uP  */QL0RIK'9 yL`,)Z\4/a:!mna @NPy5TVIʄoT3*kV[xBӺK^M _H~˒K`ED6sؠ;(btx _V`%ljp*&x?@VpBP K`<`!:#Ps5 _Ģ~ >: 8^ZIɕ eLV]`0hY!XRm#@,i 8\n4! !yeP{#>'pv,?,@ Gwh[H8ǿHGR#o|; h:l5 z Ц`q!,u`|Xi\ `":hpI]jΦ,o䭤okWgb{zP @h|ʘ%R6Tp"&=ic(cCpE J!dnpycb>7"mb~7ngb-!Ar !nqb Jp. 8 .`"пQ0J"F phPpo`!=Kf `v]-ᯂ&m!A"wF,?Sќ ^v200(fTADATADATADATADATADATAZb ߔ}[եapL@ ꘈ D `ߥ ~2`[^ݵu@W FԵ )_1 5 2,+w# rQ\н7:Mwe/ M@鰶*ֱ`n!}~~o.l0<%]KWh::`:X̸^U [Uo[amm2ix=Ƈ3F3I4LF4Oy谥ڡ'C u1OX6 PiΰX,"αQQFpat %Q,tFR(#+x,um( NPϯ,GR^m( NAzA%GAE ^r  Q%GA`g+ rvz vfm ̺hNa}/!m( N,wLp Ra RN" M z%C )z_B M 6FБc&f&P&&PȲ [Fvq~qq v%1V*Cwr*ސzs9x+R{+f,2[{Lc&f&P&?- `w*R -Q@ )z_`6  M5S{WgY00nWrcuB1tg1.* yk;Ǟ,b1utz7EcpB2ǀB  SW4  $p * po, Pq}q~qq v%1V*Cwr*0ސzs9x+R{+f,/Y00nWrcuB1tg1.* yk;Ǟ,bDc/3&$7d3H4K64Nf4JCe/z]<"<5DC|E M`0 =t+$6Qbi M@kvc M\* <T@e0V60>` M nWkPŐ,wv"j agpupV> M|(EP̑@uW ~h([H M(Y}#4(3$!`u@c Mm`yaF CɡGDL UiWT )榃 M ! Mʞ:'q86 M c M|R _g!R*rՔrAQ"_6vLؙ@#G""NVm#lfe+P SFTcXpkh# _P .U{+f,b [Fvq~qqnWrcuB1tg1.o P3^ /0zs9x+g[{LcXpkbxC ֠[%[W{Wg[Fvq~qq"r$gr*Cwrxs0GsqSn;Ǟ"tb1uo}-1s4g'0/2<sU`5w^{gWyz79?ߠ590 o P3^ /qE{ Pq}q~qq v%1V*Cwr*4@/0Vs9x+R{+f,/Y00*Gw.$gr*0/0zs9x+R{+Ft;2cLyCF=d@dCd0d s` N` CN@_& N= ed LDbn'ӡ\DqE`0 E0 P35 }8%0'Ɉ,OO`gl|P&k@ P`l D!rê@inqOI!$$T jy*vq\:6 qUp0K׉UBAu Lmn=uP^}&U 1tpi`pv0v0rP5 }<?d3H4K64Nf4{j4<*@[  4Ae:V01R6ݡ3|\sҦ P&jV(%h |2<0Pu)0<. Bb19V`6jPIk &b &b"*@Z*M@ P&c>R0.Jp\`]\Қ` 6eʅt,?:k)Q 6_-ѹ\sҦ P1 ` &NPIkz+&bLuPPYm6*\bѥ Hk61eÃH@*&@FT)#^P6}`!m.KNݰkZ%*a Qspsb=P=&@+X`ga@#MC i u pC7tCTfo0P} J P`*P6`[,@Z0 [ "O} @EPkRP`nEu!ƚK pE,DҀ*I@d( pb*@ K*5aDqE`*|[F*K*p,P/PX%2  ^*p,P @ c 6Ԁ*| fuXy!v8;\"`;d2[t%@ +6?g y=5b31[@p:p P `^% 0  ^*p,P [[u/G9 X[@S=Ďa#],pK*5 &bv8;+% =+!d`  ܚ` 6d\bs0@;sjɰ02#\.\pK*54 q pa0@K*54C PY ,D$O*e%FE~0M ad%capP6>R.00p!2D2<00.P.07#3M#u` 3 A` ñ} *B07Z $X)[.()(P6"0!]-5H2EPXe%ݺv8;/`#7rF(E3 ~2#E3 ~6>"\@U]-Ȱ[>R. A@3`gu6>"\@HP6`[20 %1 PMP6>R.03 `\[0~.F4*6V.Rek}pT\.ɡDe6"0!]-$`#} *BTBer)erk}%" &bS6`\bƂe)$sƒjɰ02 pItpҸ[x2## +ъי00(r() 0 #׵h12P 6nR6u` 4 A` љ L(*|EeCG 5b(()")^Df\bD"`DV01S0n,&s"(6j}_ FIJR 6[E{~ ѯHal] 30>3T-p!Rpsh'34տsh'!P1pP+ a@ `       2jl(66[`[i@Se;E`P)s"}S(z32S&0 u L(%+c'$]cPis@ PcaP6 C86*v 9ڂ5  kv_-]PcaREЗR(%uak cQ LR6&@ 0`{b1u/4<&J0tP`Yap bP_> ^0@ad J#) ]J@ڦwp  &5^t$pq\b1uuӌ6M@GI܊x!MP0dcM`_t,?:l8E3H4K64Nf4 4Ae"Ԍ$reQKQ 6Da4S;``n@+VC+/NP+)PJI+7 Ҡ0V`P`Cfa4e5Br#µs=A 0kF1@9V0P)0 h`j@+6bh >UbrC jH`0+P`CfaTdj$PP0Me#E3| dj$PP0Ґ2) |FFh$PPׄP6>R0.i^6>R.)0°i~FQ)[."*ʅc#`Pbj@+6r#P+)PJI+7 Ҡ0V` hq0kŨ\օ*P`eO+6PP | e#h*c%"` 6ev8;g r@*e#M(Mp߭C=0^sF}P,K1?UGbT7 Ҡ0V` pq0kŨ\օ*,P5X5pCP6^* 1Ā 2` 6eɅ^v0*v8;+il8E3H4K64Nf4S}-z?}~ 4|-q6BDp@S1kg~}F0i[FaI ^P1:s0N 0NAjR!jX*F 3 + cp=~0GIQ P Aj(!T15^$;)!C 4 ѡs#Nwsd ـ^g!ѓV~0u~\=p LCxEѿd @* ( e@=0@6HaA#kjXF@F]iQ`qERVPN`e@=p Q5pE00 kqE#uN;FHup u^WPza4 =2WP@k=;qE߇ p 0PW Hu! dq nW dq !ZpP0vEvq nWP6gĂco!CF=d@dCdFe`DV0bT`@acq˛)^|I# yp)z ) ۛ ^|LIsLsLg!Fpj&Hur9 p  9 E1 Q.]T7+ Db2;) ۛ[iNlj]ypj 0°#00° ^@Ng!ѕPr ~ǩa0 ` r0°NBp  &>;~QÁ1Z $^|R^-PT0p @A[A,#@}lܑq2q Qʹ>j Q!`! 0m50/@ Q` Q2UU@ Q` QXUP]^68 0`gAAs(upɡ @-ɡAyF QN0/F^/A0 wFAIQP4b @*`AA@#FAIQc0u3_UdK Q` Q3ڛ0 `-IkA@ Q` Q VG Q0E Qࣶ0E#a|jUC QppA  C&P5UC Q . 0p@ 0ka$U0[A,c_d=d@dCd1d|8d|8dfoEy]6bV*%;'mP`2-W-W,7@b1ѹlX`2q*)x40 4AiOF'n&Yp ss`L՗z \.\\0\1gQ FdcPs@ doe 5b*Q6bV*%;ljP pm ]~@<kP6bV* 0pҦ P^ ` PEP6bV* 0pҦ P&Cp ]do ʦhQZ ۛl-Z6bV*%;'mP`2fRV ۛ]H$`g|FȰqjP)izjIk C( %fujPP"e#fu'mp aTQuPu |bV* 0pҦ P^FY P H!@%h@r&iӺAѹjP@!<4@QZ ۛ&bV*%;ljP!ҊK*@u"mP ۛzq_ &bce6pc'q}I=$6H%0mKКP 6HH*m6*\bs!fP 6e#fu 'mp `2?֏iQZ ۛ &bCk` 6?(G@p6em6*\q:l8E3H4K64N/ =DP4@ @[ GWCE3 VMz P3algc= 3dt@ 6@ `ŀf&"s@pPyX 6P4@ IR{c_d=d@dCdFX @= (0w>E1=>tG)mtCO1=`0&/,R@@|Q_!@umS&,6sqes^b@PdmBDis{F@RQAR`HB0 HSxVgl8E00(%fTADATADATADATADATADATA3H4K64NC6s`NsNbC0w&G t  R0&w &7 ʐ1hN C0w&G t0w0w'68tz@*zB2 `zY'`0$t(lku C\b$G Fr6/UV&bs@pPyXrrV& s@pPyFV|N`:1- kҜ`"0!BziH1Т&' s@pPyq\bs_d=d@dCdl p&QPPP`3 u V!`Y e!0 :,0 PSp 4P@.2@[Xii! % ! פz i! +p pp0i1 "(  \&a0  # p@% z !` v @20 %!`0 50X a@ 0 PRp 4P.P  !p  _Ya@_0 0 !`1 N8p 0\^Q ".&P^Q ".p \" 1 3PI?  Y` Ė  uP 0Z H  !pZ u@``apPG` 0% F!hdp @m @-p ֨@@ `ǀa  @0 0 "0  p=Xj  [0] u@X` @ Q6 V0Q W^@N 0 8 0 `0_`6it` %o ` += PZm60t  p ,6;`00P60 P-6;`M# p , ``60i{0P6ڢ` u@ X?`au0 P : @   y0 N #l0i @ ) .0 Ӡ Ph '0   @P\0`*`   ` 2`ʰ0w@" p p0 ` 0 /p˰ ` P1%! b@t f_Y^j$J @a:)izV0 8* ` `ƀi p`  p ?` 0 ` Bi  Bi  Z[ P8X@@pk!Q0uv  <  0 p p  0 tO  0 ^y0pW  0 `  ,XY]={ PiX0=C`u @ V VkS 0 P  08@fV@aj Y z `z2 0@ P80 ` uu@ Ap0 В@;? P 0 cpu+! R@ L !0 [ 0 cQ<&af f0 Àj: " %Q0 f f  . 0 "Q0 P`#W0 >` >  "P0  ` .` ` . a`1 "Q0 P`#W  0 `60iِ%o? PG`wQ  NpЀЀЀ $hb A8"\P`wQ NX 5}3p    P  0 }}}%  }C>+   @  {bm3 p @ 2 `  0    `P       @ p   @   @  @ @ @ @   @ `  @   P    P      P P  `  @#YYA}???4  @#YA4 p p        Bpz  f! [0Cp@p\ ?@ ` j` 0Y!0e Bp `t@# `!@ސ30v   @5 h   ; K@   p\; R  @|[" y p `2C԰Z >i7 ` i 0 pf Х ^`0\03T0'[<f p\0Fp @P ^`0\ ] [ϐ % P K    R!0e u   @PC@  0CÎVO 0C0@  $[P@0K $`0!0 P@0 @T r0 J  op{ c  0Х@@` 0Cp pq Y!1`5 fΊ z  (@ 0`p[ `3  z ` 0l[\`wQ #N#s  {] > Ppk!Q00d2 p pGM E0 k G錰 0 @0 0  Ppk!Q00d 2 p p@P P 0Za # %`F0k   G,%`F0k  1wG[Gpa#Fp0ph% z ` /u p vS[6ڋ%x"Wph% 0 z 00(-r ` /qu pP PE6ڋ%ox@t@: @  @Qc60i]P6ڑQ0@ Y] z0@J&0 mbd p؁ϐ+ 0V,p 0V4p Ad60i0%o= 0V@ 0  `B@M1  @ @ʰVx @k7 @ @) ` @5   0PP@ p  2 \ؐNDa6i ` %o}`X d`p P 0 P 0 P 0 \`hLP@l @`t T4]~-D@lx @` u u a A&` a j-@щP 0 y0@L@OaP  K\ @`p=T@9\`]!Lp0  Ѱ Ѡ 0  ð  <{   KOaL uܠA5 `pt@j0 30#1`jC:`°tPb0€0 P'E@TsP 0# ˰\`]!Lp0  Ѱ Ѡ 0  ð P07tC7tC    0 ( 1   D.P .P .P . 0 0 u@%L+@߰V  t`TpE     P ð `7 G10ݰӀ ǵ6;`0P62  #u߀l'`6i` %o%@@00(5fTADATADATADATADATADATAD@@p Dd@ 0 V6@ u D0P?@\ -d @y@I0€ ° +pj`X ~@?0۰p>`6ip` %o-ɀL P`P8Ȇ 5D0VVz° 0 0 `mDPC`DL5|@1kP#d @y0` ]4 2 x`+ ðڐjP2 `L?X?@\ \ǰŰ ?pq2 @ @@D@@A @0    9@ Ѱ Ѡ  @2\ P?0 \2 IJ ̃@v Ѱ Ѡ s  Ѱ Ѡ @ Ձj1@u1u "% 0000 Ђ3D8` 1u@ u fDPܰϰa6iP` %o}P @ & p@ 2`S-?D@lx @` |@Pl @ްl` P? qd @V8,l P?`pP C `60i^P%o= \ 0R@"00Ph ! 0_ @00 )P9! P! ! #P=! 0% !&0!@"!! PFo6 @@! ! P0R@ %!`9Е>0 7 n16p# B`@!Z0 P .P ! #PXQ.! 7P q!0 .`*pQ.! P . - 0_`+!e.!Z0d`d'P,[@ ) P^`*Gw$\s`UN`UN`=$2x\@ u`0&`:@_` IP,[@ ` )P ` `1Đ?`  ` ;PR,@ b𝙀 PÁ Ph k 1Ā5 +@ Ps1Ā`0&P5&P5C  0@@a s`M tF+]R,@ ba4^`C N)u2an1JʾU0 @s` N` CN@_& N,`r+%&0m`=dn11@  -@ bw@2u;#cw@bљ˦ o1`Ivv `rCښ@ ,@ 0 .@ 4@ `1@2uW&@1@@ Pl,@ Ps1Ā`0bn2!`rCC ,@ 0`0&`:pU0^l -@ Ps 1Ān `==1љ˦ @1@5&@1`B`C607`gNsN1]01 tP.@ 0w00(=r&G t&@ P8uȲ8`p`p @ 8`ps z%63@ 8P?QZ@8P?tF!tFPN#z * 0exӦ`0b80G 0 0O* + )` + )`VؙPtdXQl DF"0͍ESQ!#&\P1b;AB!4d,R)8]ZWPva57]Y  *<i H -0٬[5EA B\ cUVqXauVuXaTc j@*4Vx6LFryՎ9i=੉!6\eP ,  L$@?|kG_~⿗'tzx' {4X}Evmם~fvηz·vy'!Zwi!X"(bߊ9#~]|~ "% ^7u<8ne#jwdh&?ySabGS).fbw[# ,2L!aȑ-) yȑhBi!sa1C ~:QliAGrs|Feڀ1a Fau8IAf [t.; XƇAk<0 t# 5aM ٤`]ը,HK`}): 0`N#Œ@ '9AN" HȂz6 rBN`(]'`oϐ"L%B~LP`@ BpBVk0L'Tcd(k9myre‰G"aS nCy[ѭ=uOq,mυ2Sn|kPr:@jJL-;j ˱KhS33;(0B\P9Ц`|C $(a Lp@U WBPs΀5 p083Ω2=A.! U e~.-To ) Am0f>rrᯄ >ņ(,4epˊL UHc Ȧ|f'b"dc8nZ.wͰD`]ܦ]_5ƆGF˭~G&ƍ)p6vP ?tf^zʓUCZƹ` z Tk oթ0!XIBT8m! ʅ`\]턶6jk:V)|{y.&o'TAy`A^$KV Qu`KS@ͤNX( Ad}cP}cOnC6LK\fB]߁ no?B()HqO2e~ S!3bg ( e0JF&M-BE3a/= 6RU`B@LM4ZTV>2^3%D4Cs4Q"%]tEB3(C>^s< P7Y0@%bhe`Co1XI+epѢBROB}/edBbFtnrepG%rE5-3o?'e\P|X"i00(EfTADATADATADATADATADATAjNL0<@QhudC/ NFx01kSHAIF2&\m\s'n 4p0:Ô>ԆkBTnW@;mͶ.W KjfWhWNBCyg0Un"pqFY.x`bfot),7JloDDEQSUvQE8.AGo,n103fFKVCqR(#0Fp\/SB40(EkoONYF-M1zM3X:V;S.4HS/ӆBB"9"PB6R5R>X@/O$43s9YOC0wubY>$5dmaS Y.#\AwbT@DF+ym09314@ k19I2e/3 ǚ))Yٛ4ٜٚ4Y*{(;Qd وQ@1( @`/f6VP\9M5k6wG#Crrg\}Tf[gE'.PR8$-2>iunk(E1`@aDa"DVPpGFXPc4+/k5QX&2Ӈ7gR$sWMQ[:W\F^> 3C~ SrZJ ,!u qZO'orz%am5j*Tpl bCJ f*Ig3'@jljr,mrJtugwVAPMgZu0賓ݐP&l ЊA.X5]Y5kA0ac!ӖO`#tvxzɗQOE ;HLq˘H5~!S0vMDW*PbHo1qtV-cl/o4z yop4XG2phuk-HLٴ:zo14R0dQж:SVжiLDжA@D0SB෫Tж;0PyYiMt0`7iY1 J/ TXH˶0pW/1`DFpFR0id3F B`cQ(b3X@hpwm(!/-=0>z"jGX(2S?a ZA:?14[5D8?2Op2D3{;sS<wO$0!O TV콢D]4ps=x׏@Bڑ7e%?T`001D(Ծrl. H)pHaDPvP*-[ V )t)F">ye-cqԽRB>".Tn,0ҷRgE^nwxM\Vo@&k+-=uq|қ,e)-rtd(nqtoBͭeuP V (\iw/"BZ1Փ U\W05hĪfM+YP1@nV(uup0,Bw](_͇S:z>DNK r6U#PE%F1&S5aC& @ @ ۑβ^6[Y10Cenڌ9-ix~&rr*r@*)tȒc7r-~:-nBt֬ :X*@BorrPGb+E = r$~og-'ؓ}fuc/3pKwoVm`o@~?_e_^/P 00 a$ @~Kd`~m/ q Cjtܮ?|8Q\@?Pp Ln0%#v#F3U1f€7ð7д  00P%P)q0`P ;  nP~ n1q0eu?ˉPdPSp א `q  `CP +w 9 žP3`RP`9`3`R6`\\u\P`RP` gAmQ% %@ +&0B}m% %@ +&0ep@Q %+@ +@ P,n${B.`[ prs${f`n pn@!a&+@ +'@+e)p[ӨRV2 '(@ +`+@e)p[Inxmq ' ( +P(P(( +P(++P++`(`( +0+@h"(+@ + (@(7hU (+@ +&@hP?u(+@ + 5 h   /@!@!@'@/\rm@G((.PxPVP%PfPfo(So(SՒ(.PxPPxb x,$`/Q`h `h `h `h`h`h`hL L@[H{\G `h `hPG`h`hL0L`{`hG`h@ {Lp {`hPGP{`h`h`h L@G `h {`hG {`h {G \G {G `h ۰GP`h {`h`hL0L `hPѰG`h`hL@\G {ݰG G0e{ `h00(Mre%Tj`h `h `h `hP{`h`h`h`hL0L `h `h `hPG`h`h`hL L@`h `h `h `h`h`h`hL L@`h `h RV`hL0L `h `h-e:hL@`h `h `h@ {ٰG ٰGp {Gp {`hk{ѰG@ {ٰGp {ܰG G[GhL{ٰGp {0P{Vj0P{VjܰG {`h G0hVjܰG {`h GP{`hh Le5L`hL@G0P{Vj0P{Vj`h `h;he5LL `hL `h `h {`h {h0`  pvwȰPF1  P P0 p“B0PE{$n0 @p@ ִ1_` 0C`|P2߆8m?\T0t@r=+RepdH,HPl*^sO}@ @@nP aXAuWKm]_V }}`@N`Wm>Ptp+&i 0T$‚+>Ptpp'** 0T$‚+>@:m@mGO0 `ZA:PV#@On/BP\U\uOPPm>Ptp_Cmѓ~ $‚+>Ptpϟ* 0-пL A/,E+KLUdfz m)E+KgnpTСz m)O10mhO1mHO1!hxnZTO k^E+KMd:S6V=G²*K=."/%nWO0fdVP`(xu||'a hY®C@2KH`k'U< ` CNPV2 n8:@: u!6CB.8M@:"-9l0-6`2-zA:"- -G)*)"+rxm)RBI` &Hoa0pHq $@5+!,2 p]BGv=*x7@8pdM0J o+J ~-rA6=)px.ImR)p@rq-'bii,o~%OPQN+,|b hhQZO,:l(O|‡5)w ֢WA,Wm-6 pYNE+Km3?sB-c)lPm`Wm:P̭;rf@UM}Mr(p-2):oPf0)Ep YC/<r 0 oo.gѧoB}:0<-7 o&i.g(@-wRPA 4 6pp*asYNOAn*h& k^E+Km3?o8/^"*YNE+KN-ASPgPnDa> @@"/6-_GspGlxYCrGlx02or 0 ~^:PV 2+7V-uq!q 7F跢!^GlRŢG:piF跢|^,*dK@OaP1QZOqZ5VOP$AOQFU.|%P4{5#381/#3RP#yTy;5]E@3#P038yKs4riyʾF1e R PVF1T1F1 RZ _"B.B.B.B.B.eB._VOttt #381/#3RP#yTy;5]E@3#P038yKs4riyʾF1e R PVF1T1F1 RZ "L.B.B.B.B.B._VOA.e@W@7@WNeeINo¤0uןiVivp)gP+NNN$  ?PFr R`"Ī.p{,@~t+m9έ 0"ϿOQ7 N v跢!@-wDb鑒y.0PNt:oRGa0/JB}yAT ))90@+ ® P\ r \ !< ® P\ [ J2[[[pmZmaPq!O||g(_mmePmaPm @PH @4li P~p`R̸2)Z,.D.gT}[/]fZ/E"C t4)B(~e@,T}h sL.=у"YeuPYNsl(t.@:PVOa h0YNfnVJmO l/ _VO0Oq{>eOO)ZnOO_pZOub  2`j"Vzj40i1A A.A.a|nb(B"rf 5 5}0+0_O_OQ"d CK,\{ F:%j\PhYHrM 0M$gѓN<>597 []p~j\A`G,0UUz>G0,2,,o`00(UfTADATADATADATADATADATA,u@, -,0T,`i,pX ,a,,ep@:.0nGEjA$Rw66 ^Za.66#.zftV0A#gjQ66uZmm,maP`I||Pj^`o;$p %k^$  O@ 0>e][`(Pe7A0PVU< []p~j#\_VpENN_Vٯ^pE_V eNN_V eeeeeeee^S >0kP 'p We! ee )QS+zM af"``2p-pZ qpPZ  ! P !qּ;\p@'0U p  ( Y l u -00]@kpP  ``  P  0  0 ːݠ :;HbD&6T  @w@PPPP`````-pvp7UTذVPt![7!!"p ##` $ % %@%&&0& `p' (@( )) D&i,,@,0 , -pGs2p33` 3mUQPZP_P=pOpwpDa]9@9 9P 9 ;< > > ???@@@p@ A B>$ @@ P9P-4EEp G G (@PHH H HII IP I`II@JJOm1@OȰ| 4[@`+N N NNOOPOO O@O06%au 4     0007SS Sp S S S STT T T T T T6PsU0U U U UUUVVpY`g`l`````````pp-@bq$:O@YZPZZ[\]@]]P]__t a` a aPaaab@bbb@b bbcc c cddd0d f`fff f@ j kk0~5 &h`qqP q q@Z    j000000000@8@=@Q@]PP`_``prpp ,WkӰNiWl: 4 H  000002@O@n@@@@@P%PGPePP ``3`pp,p;pNpWpmpppppŐҐJ#7k Pp` @`P0p @@  prb B@@ @@p0 p 0 p  ` 0`  P @0@ 0`P P` 0`  Pp`P @   P `` $  `  `  0 P 0@E  E } 0 @ MP P P ` p {p  k P  j ( } 0 jP { ɀ Ґ  : V o ° ݰ e ) g  / @  \ 9@Ԑ 00  0 @@ @p``PP@ސp߰,@ Y + K Z z    0_0000@@@@@P%P4Pp `Ðs1u"P\(8   ]00V@PPx```FАL&| D]*LIbv'[0eapEe= ?0  @p`  p0p\PPP`&````@.   @   0P>euא#C, P      nndpr@/@:@PPY` F` Fp'Qc  $.8ajs|FȀЀՀ݀mjII`IIIII II I I` I I` I I0 I I I J JpJ0JVfkF`hð,Px`|(VNNNP N N N N0 NNNP"3O O OP 00(]rO@ O O`OOrC0PP@ P P P` P P P P0PPQQajo  : ? ` a  @ @+@@WP5````G-vY Y` Y t٠7Rk԰!EJQ}:OVj{/FXl \ '! R d q     00000x@P```````0Ggg` g gg`h0hhPhhhP(h h h`ii i` i i i iP iiPjpj@jjj j j` jjkpk@kkkk0 k kp kkllll`mpmzhf nB=o o` o opp@p`&9Nk. E@xrpr rrsPssss s stt t@ t0tPuupuuu$WwPP`+`4`v v vpMpR`w@w w w w0 wwx xx`xxP(xP x xypyPy y0yzzpzp z@ z z{ {{ { {{||`| | ||0|@}`}} }@~0~~` 0  dCUb{2DQjt` ` @ @`0 0 `  `p0 0P00`@@ ` 0  pP P@p PP` b-b(KsSP(mP( ~ /0 K0 k0 0 0 @ @ 1P qP P P P b` ` p _p p p  Q Ր  aS | , V     + d >0 \0 v0 0 0 0 @ 5@ P@ @ @ @ P P (P 8P P  F000@@@P%P%0 P 0pP` P@0 p %` &( *p P@+,P(, --p..p#'+/YPPP ~ t I # ݰ q g A   r W  | &     F % P P P P P eP @ K@ C@ (@ 0 00`@ӠӐ Ҡ p>>[bP                      00000 0 000000000c c@c`cc ]]]`] ]\\`\ \\\`\ \ \ \` \ \ \]]`] ]`]]]`] ]]]`] ]:62.vrnjfb^~z B>:62P^`^ ^^^`^ ^^^`^ ^ZVRNJ~zv RNJ`_ ___`_ ___`_ ___`_ ___`_ ___`_ ___`_ _ _ _` _ ___`_ __ _ _` _ _ _` _ _  .*&"B>:62fb^ZVRNJF~zvrnj )7a`a aaa`a aaa`a aaa`a aaa`a aaa`a aaa`a a a` a a a` a a a a a` a a a` a a a` a a a a`a a aaa baa`a`bb$* & "     B > : 6 2 ^ Z V R N J F )bbb`bz  ~           ĐʐА֐ܐ`zyyy`z@z zZph0p/2 P POA+`g  00 0 PmqV@ ~p6`W P@ ~ p.`W@ ~p&`W  s@@ ~`&p Fe ;` 5 =  ` 1t0 @ ~&0=d:`,@`S@ ~`p"`W@ ~p`W@ ~`p@P`0 6`P`PVͰFP^@@v@Pru>`B>O@ ^&9u`06`W P@ ~ p`W@ ~p`W  s@@ ~`&p F ;` 5 ^ UW``PS@ v ``W ( `W@ ~`p`W * f *pt``p O@ ^ &9u@B@ ~&@ ~&P>5 ( `"`V@ ~pP@ ~p`W@ ~pP h0>Ap F ;`@ ~`^`/ Z80p/;P P5 x`[`l UPVW`^P00(efTADATADATADATADATADATAP lo@P nPVD ~`&0 `@`~p`@p PS``@P pP40 :^,*Eo"&Z0 s|@ L05;0ʉ+'8#@dCښj `ݮ&(`3 ƀMVf;\mohKin!] v!>L,*akHXM1b~ (n$~ 0/N/"#_&lŌ/Le˘5/hҦQf X( ! 3B}Ň@tx?לG@&+ >י"8X(~xx1 $b 4`!"AH(~.(zEOr#OH@ 3ϑ[:_S$>GA&Vb$|iO٣|IOe@niFS:\N%:Esp^`~g9E%=FNʫ!Np9 ƹ+zzZpIKA,&\NCF .nJ6{yI(ʨ9 aSڛ HyH@R^ Q1Sܭp0%)!73(((S:n8?(gRHH3c?h-g4sCs3:K>6=Qh -]b'z ^⊛RBE(i&}k{GOvkc)A; d <0.m0 LI;=$.%n!PwC0/ 3>9X´)tx%zHʧ|`\" S݀Ei^ ȽU xX#ObZĥq4;(. {+S'^QPq)?4(tU\Eie[S9DW@8; !&,c`h&0 'VE`cup >,=Y:<яu$g?68Dx3 a( x4|iv47|Y.A Ht=HP{`$."6H|}e x{lD$!Q ":N /%m$F|(2%aOőCDA=*S B=P~2uP !E(@0p@90q=XGXE8IDr @0cB##]2u8R#4[ŒzuE-U,2PeTzլb0P6P}7_!xPE\ Ad@k(b QVq`q`ϳU,cuX󞛣i'GAT*= .\к8Ō|zl'\6h\?Hpe Stq;(f$pvϳioxTldJ /:/r=RC%v`V}cu> mcߜ% fo^p8Ap*S! Q 9=`H$&)3VҒ1Mr+:0XXcI]}tN|ޭd׸0mmBRD8/d]o==(eqoK? (vqGr-0 D/2Ұ:X`GrA780PR@0xa3XX悉P&16ȃHh8\G8YG("SaP$ER1xaco 8f0 !1@gqgi`%r! @}!x V @`|ǐ"e@T SȰ et`V0 `- ,.i%2I:`2-}@HJMKY>ВT9RVLG9 C^9]9RZy\ -:1=ibdؒ89e`u9w94Hz 8t&{o *S .y5 9 $1 &>LI YY YrDuR i%I)©ȸy I)ҩY ـ%dVҍHvpV"PePe :i z0wq t,g7q~T'pc|T`{wg֡ 4;r#7 ^0(|\`X0R6 ``Z8:@qǡ2je8/9sqd D|b)- u`ti/:@ 4H?A B`~)\)$ @0J`F=e=q*>uw3):Cc:s>9 Au: {j}/kr$Dr פդqd$Ѣբq T dzzaV0OR3f^5?`:rqª|z`t#d3򬣐= u@HȘ H0OVp#`` j 2hiñ0 {65G)Z@h; 믃 А!{$ #meW mNs{@ӳT /{$`6m#ôq'-sJP~#D^ĴJEat: NH  Ѐ߸Оjyo72 I@R +|(>> ;{` jA+`[& & kj=0p!4 `~ ַK >W`pف HY {W|f{ ;`+@A=@ = ֘&QޘdU U U6 U UVUU99919919A99! 9@+½' tZ@1qP00(mrj6 E|$H|$ PgGR j% 0#0#QEpϹr>p_F#}$-l- e(Pg/AP>@ͷEډs__a_Ƽl RPM=Mvx^T ۬>}[=Yۺq=`~0֣ m> ݐMdMk0PA 25m)4mt= n\`ԲvIsa R}ᷛzZ^ ֣+MfcQ `y@ 2q6!UfUVUUUvU U Ue666q9Q99966!> P-PBPVPePDaPPhPPPPPMc MMMQ M MMa61WWqW W! W W WQ WW!Q6W1R6U6_\6_q _ ___Qiiiiiq6aiqi i iA ia61i` >`  `#pn  ~ `/__61  /#MR'Xա2 1/2S``@>W:y"o"12^ 5." czd?A,p@~ dLx,/" r 8 %M]ށEz@p ` p=~` ?j9 } L ς?/`Kp_Pm+p .@ !r!r@TES mrrOpʽ@f !rO6W!!=Q Foޯ и/ Wp7ASo@կΊ} AKVo̿aado c:kO+os_py_-@8 ` EKVo̿paadockO+os_py_-@Fo ޯ и ޯ P) N) .`Āp}њ6TSNT  ` ޏ 4րK&  +  ڀA 8@ Ҁ~#S0` ޏ WpV @0b# u#.0 ޏ $O@'G f` `0`]S` `` ޏ Wp BlњPj>Wp2 C  o?Q@   i ޏ ǛxB0 3 QJ`֯8ހ/ ܀>_ʫ0oM0 3 AJ`֯8|ހ/ ܀; ʛ  ߠ-Q`& PN `OS =xjI@$N.Qp֯ SR ,    P ?} FP8" o?U@   `_ + G8X/0 +@ف X} _/ЖFo pڀ/ [qr _걉 ! ` fe߰ p[qr _x ~걉 ! @0m րa {&IY@JԀA %I@JњbNTE`:8RS'ln 0!nNp"  ր)l`nNl  Ԁ)p`rNp" @/ |ڏ 4/t lroK >` 0 @mK >` 0țOmm֯;/X/0 +@ف X} _/ЖС@ Ԁ=} Tc րؽFo KpBl@њ4SJN3o:)րK&E0ڀ@ .E@m3 Ā~#)܀! 8;Ԁր_ @? 90  % p$ 0۔G 0pGk%0 p/v=P8Y ޏ $W@'G f` `0`]S` `?} NP Wp2 C j$RWp YBG pK7-_0P =uFoq pڀ/ 0Q @_0P =tFoo ܀; ʛ  ߠ-Q`\`֯8Đ ܀/0 +@ف,~nKՉ ! `x > p 0  feo p[qr _x ~걉 ! @0m րa  ԀA K$0OCoHoMHoMr^od`K<d+<( GО"SPePePePeQpΐ?PDPbPkPynPWPPPPPPPXTMMAMWWQT~wppSbPWq_a___v6}6i=kؐ(GonDs o@1@i@@s6 `h6 `6 `6 `6 `Q6 p `6 `6 `6`6 `600(ufTADATADATADATADATADATA`X6`wg6 `61 `6q `6 `6`46Q61`|6Q`6Q `6 `6`i6`6q `6` 6A`N Y.Ġ;=њ0! dA Kp tPKz- P p$G V:  1d{FdP@z p$Cv$GB p$G VR82 ` p$RWp NL$tGb #ȫGPj>_˒ /` p$RǛxBLpU+ `+ 1d{FdP@z p$Cv$^G p$`@(u# p$RWp YBa p$RǛx,L0 pJP G #ȫG-pJPe^}  @E&n ϒ 2 nϑ 0Q) 0 0 Pj>@pJP O plMd0 2QN  p0`? -0?" p +PKpJP o pl C0v?C0  G 2 ` 2}  ?  p  Q  p @`PǰKpJP HoMOdu9/G fF &MOdtP` @d0=0O@>P8b 0 = u# J`P@W@`pK 10 p$pGbdLd@F@6 #` # +|ǫ  ߠ-Q`\`  ف)> @  X `  0֏ p>@(~Lp*/ %/ف `z o  X n NG p$x@'@ J=0њ4  d1d{FdP@z p$Cv$GB p$G VRVFGb LpG4>pJ@(%aO p$>{,L0,FGb LpK7-W^}  CgKU G2dG" U p$G V R8 | G LpK7j G LpG4>_ʻ @L$uP p$>{BL$u^U+Td 2},0  p ϑ p$RWp NL$uP p$> @7-pJ@ ~ G" #ȫGPj>pJ@cQ Rc6 4FE@ J=8K`P@W@`pK 10Kpyu@NG p$@'KpytP@F @dP@z-kA"Z ~#S pGdp˨@kA"\8dC@`N@ `M p Gdpk AdN@`C@h^6 `F0p2q p Gdpk KU ׈+ ^F30 pGdp˨kA"`  = b@( k p GpKW MkA"dI 0 )d`GpKW +b f'fPt!`B k  ` ) * v?ҟG pGdױ p$v2A" pGd" u0> ]@h ~# pGd" u0> ]@h dױ pG`" t& p$v2A. hҫ   Kpyu p @ " 6  o  pzHH~  pø p$pGB d o   6   0 #р ҟ#` p$I :/PMLpǠxpKptրNP8 y K4Ln{ 4GMС?p 1݄LpǠ@#8KTTtP` @TTu#pR=v?=K_Ho8~Ho +_}Ѐp*P> 0u am.d@ PNi dr PN dk pKW   p$r`@(u#TKTTt&5MOT.0^?Њ#Pj>@pJ@!p 1݄LpǠ@#8bK_a ` -Ad0 p֏ p2_ > u0 qCPҋm^j>@p uB>  uBGdp˨ PoG a +'iVR8B0њ07C(d@FPNI )ddGd" ud' dGdp˨{+  d ^Gdpk aM K pKW Zp^Gdpk  0 `R; KU G p p$`ÒD 0 d f`ӟ |o p֏ p2_  v? ҟG` u W` U נ6O{ 4FE@`P@W@`pK 10`s ΰ` @`p6K`P@z +< @(tP P +B&. P p$@' W` U аN`p6K`P@z +< @`p6K`P@z Pn @LpǠ@cA{ KFo K@d0֯ KKp  ld|p 26UUUUU6A U UU@AWmP9q9 9 9 9A E Eq^i?c(=Q`ir{M M MqH6MqM~/p>pGpPpfpppjpppp4e_q__Q_ _Q _a|666i+:Uh >Ycmr@@ȂFo K`a Wp̿ap$jGa[ n+|0G Ӑv?ӐL :/6u֏ 2_v`  x= 0+ v  xO+HpPǰDjGa++ @   @ 1 U ˫(aP jv?ҟG@pRJ< @tá` @tPǰ3t.}  @tPǰA t`. d: t_opA t -CWKn=H~qU .<) @WP3 |փ ~qU C_ tRqU W[ vGa@&a[ |+|0G Ӑv?ӐL G . ` ~RqU W[ap$GBa[ ;2 `? -t p +P<RqU W[ RGa[ Gqa+l#Ӑv?ӐL G . ` RqU W[ Gb ap$̿ap$;2 `? -t p +P SN . ? 2 @ SN OiK+@n uKU K `ӏ |?I Q - P0 0 +P١ :nKթ  } ١ Po 0 k 0 w0+ nڀ v?ҟG`  pO +P0 0 +P١ қ]걩  }  +PС@ jMP8 j`  0 =5uP`j B @K P4 @KP8@ @  Uu @ ` ]@5bH ./ њH@5b ./ њ3qk 0 b  s@tD?}u#O"  E` @j ? V OjYQ K ` > 0ὐ 90  p p$ P8"P8`  a = spa Pqq/RP 2s u@ P p$Gp$G^G=0 p$G +<  G p$YB p$t"d@p@(p$tG a+'p !<֏ G8MhpK7K  ` G p$gsK+P@hpU Aȫ4FE?u@hp ȫ4G hpK7B  B p5 !` 0!'Z3  !<֏ G8$ v  t ` S {砽> 0 6@ W@pt>e  p9p Fo K U ˫D_j>U ˫A|0֯ K֯ K9/G b>od`KyQ eBfdtd"P (| P`&AD_j> pAPǀ&: bIPǰ[@ @P[P @P[` @P{ ċ U p 0O@6 W@ =~ف  P; 6 W@`  }@6 W @p@`cK { fcف ߨ=KNcp =~  ߬?? @b W = B @Kkpm +21O 0?ދ W ` =a ف   a?Pj6 W hR6 W@ Ea?󏼚p^p> 0 +ep{  @~d a@p @cTDp`D_j> pAPǰ> pAPǰ>K pAPǰ>p/AIО!YfPeQoP9 Y*PHPfPPP>\z{WW~&eSFia66qiql@gnUwih hf{h&   aН?@ 0 (6a > Sqg 0 qm  GT`  k?j ap$gJ= S5ԣ 2U0a^`N( R_L-q @    K ~P  u#` De kRj|D% kR `Pg 00(fTADATADATADATADATADATAƄ Ug `U 0A"#!0 qsP80@#GEFs+t c p,@(s4ythQC ?"pbjh:A~ E>P4+A#Hۊ3-{7†zX#G Ey2P@`gϟA5*AK[][mpp /vmËf=~ndGDSJ'X:xӀibs (˦S U=Fb`UWm\YiEN[`#8('x>ocMFXVveA6w#YWY `V(@I(iOy0“U3_P2xgC$95LyApH=%\s(1 K.4 YN kO ɉ)x(6옃n 6ϻM.` Js\:nm:Vt0`|Z,b~gwC$`Z@2blX"i6cK}gG>1QFW =7tj5D@׸D8XAU kz.*! ƴL4te>#6ڋ/^-dl*0 dqeq[Y3A(҄Ԅ`B"U^|H9]($4E (_ ,??pQy6p~E䣿?CS"\aEm p\md`Q  @t! m]mt @Jn&I=n"oD7nH<0u8\SL TX0 :  >(*(p;=9%q wи %*p 6YI ;`jcM,D!`Cj=@_`89af(!4򑑜d%/yLQd( R>X 0bx@ n3m'X00up0yc/qM"32 Q"[ ׈0@ !`^H>`}=X_wEq}xX_#' Gx2^~ }8A)z7zJ棧d tD ZRͨ9ʏSZ;bX:ʃ vJ! *8Êⰸ8/Pn,.ˈˮ@< ,r(-?xm^ⵅx-(^JA:d(l0x(Pz.)2mL񢣼0A z@;e{^}[v5=ba8x  )7Wdl3:whsd tqgַpٗtqׅdXH@T6 HXgpp$LJ66yKEHMkBoE`8H@0`{(&fz@0 `{w'SV'> qa8Sg P~op ~ hC .kW 0 `{Zf@TH@}`|y*yP0I&@p Pzwp td /zވЉV2p|)'qRspqq!$: d0w T4Ou6uuCFG0s(B9-ѠPXr  ϠV0a  K֘X3 `PPtiou@Kz;mF>t$S (xnW0;BD0(锋xFi#a@GyINXtyu` !4=  `&==}0n e6"^' ~t`~I : IA0@tǠ;<@ !@  >@@@B@ ^ Ȁ6Y*S(Dix I 6@p`-"]J_0З>@Qp@ GV!0p" p6Pp0jp=F~Kf [fN`v4 P@tP=OxHxq=@~ `n  P̊Zp0j*>@ z@ dꊘ3Ǩ*t* z~:O ,KfNP|phgq?٦Ǚ陠ؐ @zzt@61P䯙0Q@ l;6ˬkgzЎruQ @ q ~Gʡ ~@i:vI;H' BQ.k0 2Kz6 T Ҹ7w0 XK۴nZVpHzN9 ZRy T9\`{{>4 6$Hq˟t k; t0ٸk@E t[av|@ 31t0|P ^0! @0HkKK#Q~` oȞ3YN:Y/@l`JpWp0C8t~:ۇ@pq rPHk a#} hKW{Q{ N"#p| ۧ S`阸YnV PX[00(r_|p&M 4oVr0=I^l0=,džx5'F0`ſOijaȣ*ND"p, `wA@ @,A(@~"P.G9`G%u tNV"d@>٬-g6 ԡll ^q\ȡ `<ؠ&w܈ -&`r$Ыg.{ P  @pab \BFA@Ѝzʧ6qҦt~0=zH?W/qөȅ "]}BvPM)X ]M= У ,mK 2 eƄs}n1  gpt'F,aNhg ܇#~ $ K@ٚ=0~` a=:mHr_$Q z;l[p\(qwKLH.1ѕA͝ 1-M'W0 2( ?Rm0ZջY=˄=^ʑYظ0ح}/Lޑ]#}ٙmnHݴ< mڨ-]J=|Aֹ!..˜^G A ff}y1h<~m wۧH`mᚰ .r0N0:-0uv@&  L=  ]P%;$Ы(}p0uM 2 P8 "| DXh~W ڠ[涍j`\m`vԡHmn;͓(ڐ#Ӛ`nzt䪭ӰHXa )䭹?h.F--~1,6m mk n@"o x&`PS_WM3`OTM{Էq%ծ}1FȘ <³0CS#ԳPٳ=P hMEEck S | SCsRPRrRRR9 V 6[ 66ya$]H` __|iu/`e+F=>1$.@. opl M,o/F 0Ǡ`K`_\H`N@l`6Ec 0 `D 0`\=pj`a NJY( (,F` /Ao @ä`nn nBl n)bdP`YP~3CP B#6qk5kkU kE k??c`Co`Co`@M p  E @G`4? `ѺJ `  `JPH`4 0 `vv PH`M  h/l6[; M `tdvJXӈ`o R`g2Cд`o @Gd4< Y  h/˼g2Cд`o `|6@Xӈ`o RNi2Cд`o `|6@Xӈ`o RlCд`o :.6@Xӈ`o RcCд`o g4< Y  h/˜-6[; M `/ b4< Y  h/H6[; M `/SvJXӈpj` `Ǖ1PH`:M  h/l6[; M `tt6@Xӈ`o R`g2Cд`o @GJ`4< Y  h/˼g2Cд`o `|6@Xӈ`o RNi2Cд`o o4< Y  h/<6[; M `/vJXӈ`o RcCд`o 0b4< Y  h/˜-6[; M `/ b4< Y  h/H6[; M `/b4< `=1 `=PH`Co` RrZ hoGvP`! Jt `~P Zа@ 0A F 0 @p= .s,  Y@ GPPF RrZ hoGvNA 0 J nA 0 P= n s, )P` Phӎ  <? P/>f:3pEbW<`$Pb3PRb3b3b3 <qq1 @ `~`~<`~<@ * !;.7̘ʾ?d/; HE@/Q`PH`6τe `AgpPqr9τet? pPqr9τe `Ag`Ggp '`5 )q`OyO|?k? @z-dP0 u- P@ HXP s% 40c 5.p a 2pj,pPd?p0PGo,p C@4~v9/m6p ,psi08p~0<,p ,pVOsPc0 pŻ`lImr&L虰 + рpء`)P@lp  {@Pp&lp=pPzW>P;;e Jp(p-Noɵd C^FpR? p--hސ]k}C^FEw(npG\K~"~"~" nLp;;nPpLGp;G h@%)&0~dC0ts\ɗ >6XP00(fTADATADATADATADATADATA=K6XP=Kg6XP=߅ @>X@GF0`iӴpo0`<Ppӣϡ@p<~` KFа00 f7=޾@ .sL Y@ 7@PF쎔po* 0`<NA/ 0` 0=.  p#! pCop2`F  p#A  sL)p#avP)GcA acPZpD`6X pAJdDylDYyP` Ss? Pk/>4n>>RRRRS SS*S8S=S>pSSJ>SSˠT=5=EUUuUUU U U U% UUI#Uk%kk%kukkH@dNV0@ FloQ,T0kԀoj  Y6 X րa p ԀA KJdtD=KFg6IXP]y&7=K X@G}fr`dt&GK Xd]dt4&KgrPYЀiymlyltlNVdtgӘ6 X@GPdt)ltg&Ndt&NdYdyLlpY? cptɋ\0(Lo k`0fϧ P@+``otkj0(Lo Kgr(؀͡ERNPtLXt؀Yp YP?qy~8I@p~8iPdPpwtD]ٟ`y&Ȍ,Fv? AcpR(ɔ<d~@cd@Ad{@d@d@avdx0 `i@) dp? "=  =G~ dpJa d@罇c@{w d@! d{0A dw@ dAdd@c@{w! d@(H7 cw@ @{0 dw@ @{0A dw@ @{/@ dwa@ dwWpCo: d@zm҆ P@?` .0P5p6!C3RS%C^csC CB/%////%/ / /% /% / /E/e_S==u=====%= = = = =U==UUUU,@osc0eAP{@Qew.z1p}7xJEsRhBy~BY@ p~Byur@qew0,}P? qYnxP&uYew0,}L^tPq@P~0VmWHP?X@G">NveP{wA7xJEsRhBy~BY@ p~Byu֠nPew0,}Ld̀N K <> Q!Z Pew0,}Ld̀tqd̰y~YЀi`}<}YЀPew0,}P?'Fخ(hO't'ty&/Fv_|? epR(ɔ<y_< CC3 Ppo->>>8>>>0//Ui//5/U / / /% /5 /%/U/@C===5=% = =E = =E = =c=PUU;>(PU-PUNPUPUPUPU߃>PUPUPUj>V>-@WkkkUkkua-VVVVV>W(W-WopXpX@pY[pYhpY3 ?LY@G}fr KFY@G.ar D,tD=ߵt$=ߵtD=߅d` `{`fw.>Y`PPP?' FخhOt[7Cfffp1g{&`Qgw5p, 5pxEsh|YH0{ zk p>YP&ةCJ F`f0 `fpnt pRxPJ8NǁhvTbp`dpggf p{w 5p, 5px큈Esh| |\=P$PH0{GYӈFƈB^ggfp{wQPP?  Pq@Ԓ-p p{y`qgw5p, 5px큈Esڰ  Ԓ<  r> p` 7P'P P,@6 f 50^P,@6` f 5 p p{#మ(( p^ Tbp`d `gwgw#మ( ҰG녨@%6`  '0&K f!p{w #p{w f%p{wqgg f+p{wQPP? KYtq p餜tDLY}tD=KY@0°ˤ&,Z`i-p /p{`gw5p, 5px큈Y? KYPN NY@GC<}t)l('0°PLY`G + @L֙; pJld%0H+6Yʩ=G]w01THCo4p&00Li@y + @`2дoTi@1P,`ko Y6Y KJ pTuP%nP7g|QgPt$p @lfް l:qg9pKnj WH8x(lѺJPP|0P}.@&PH<Y>YP @>Y@Gb6Y@GPp@p_|? fpR(ɔoB>n>">RR>RmRRG T=5=5 =UUU Uekkk ka#kyyWy yys  EEE % u %ee00(r e# ťeEυUϕeUׅ ו > >S >#>6>c >S>>H>+>e>c ?GSH l =PE~$  @m7Hpq g1= >YP%Km7Kp g1= >YP^vgpA PcN ( f  pBJKY@G@@KFY@G@@KFY@GyKFY@G 0 ?P 03%tҎ OxdTGIH m>P0ɕ|@SdT]Z v<gpA PcN 0PHʳ) gpA PcN (qO d  pBJKY@G@@KFY@G@@KFY@GyKFY@G 0 ?P 0#AK `p2pKE ^)d  o  odKFYy2hI|@ TיY@_pg1= ߌ_H`QH! TNF@KFY@G@@KFY@G@@KFY@G0 ?P 0 PHl=  WHP9L6 J= OKFYy2HqI'l  (TY%m7ep1g1= ߌ_H`QH! TNF@KFY@G@@KFY@G@@KFY@G0 ?P 03 PHl=  WHP9L6 J= O>.KFYy2h9ɕ|@@>@YP]ʓx@m7kpQg1= KFYy`TY7@m7qpqg1= KFYy`T= pgpA PcN 0Tt}ʠBgpA PcN 0Tt]Z 0gpA PcN 0Tt= gpA PcN 0Tt|C&gpA PcN (6IY@GP @>@Y@Gnf  pBJk|a ?P 0  p  pp$ )*!p@up!PqgP*10~ `#dTt=KFY@G7"v\ gpA PcN 0PHB pg1= ߌ?UHTt]TtMl`QH!  !0n`0  0 @{p$ )*!.6gP 4 ^'PgPZ 0x   պ d(_tp p 0%{@P< L/pRG[0`P @#[' 0 Kn np @(@@D>~> ItO   <ɀ )#PyP*0Tt=KFY@G7 v gA PcN (APH`QH!  !0<`@BrA )H)|[  p0 FJ ?P 0`HkS`Q'ɲ,,i(QQ,p~w/ ʑ4 J.66u,wP,p~w@/ ʑ`v:!PQhPD  `ioi 0 PO( = 0 N `ioi 0 P( =  N m00O:`uC T`m 0 HH:Pu `?~P P 0R~@ pa@>Y  gdL/  < uP P[SO 0 2 gdL/  < uP P?q рs0P,pKYPY@ph1= ߌ@l`QH!  !0uk! ) B  `ioi 0 PO( = 0 Na#dL/ P @Z—͝ g A PcN (a`QH! !0k! ) aDr PhP*1X X@ \B ZV` 0!@> xV`kSH=cP,pɂ~vP,p@v/ ʑ3 X X@ \B ZV` 0!@> ՠV`kSHdn g, i) 2 g,,i" C 0K 0#AH@Ox k= 0Ox  j@ (В  + c00(fTADATADATADATADATADATA >3Z>ys > >;c1w)P ?0 Ocmd6IY jnHP`pH UF 0  hJ1= J[  0L |tDd|td|tWd|t !N0E$jnRp`pR! 2p$jnRE  ^dRt R= TO KYy2H(LoDճuð|]Z \h PcZ <2+ hJ1= J[wO{ XHL`QHNP=? PY@G@@KY@G@@KY@GyKY@G 0N ?P 03A/jnRp`pR! 2p$jnRE  ^dRt R= TO\tn|G !t_ɗlDճu KYph Pcu_HL`QHNP=? PYdd|td|td|t$ !N0 $jnRp`pR! 2p$jnRE  ^dRt R= TOKYy2HHqI'lDճu>YP]Z"|h Pcu_HL`QHNP=? PYdd|td|td|t$ !N0$jnRp`pR! 2p$jnRE  ^dRt R= TO>.KYy2Hh9ɕ|@TP=['|Y<h PcZ!d|gi>YP=<h PcZd|Gi>YP2Iq hJ1= JuK>Y@Gn7 -h PcZ|t]Z -\h PcZ|t= -h PcZ|t|@2a hJ1= J[6Y@GP @>Y@Gn  0L X ^ !N0 p p ^` O ` ) `A @uh Àہ Q hP*1dI 0f~   0b~pKY@GPd|t|# r-1gq hJ1= Ju*m)-hɀ Pcu(@ >Y@GP @>Y@Gn  0L X ^ !N0o 0 n`pX@  0 p`pZ`A ` ) `A rk `A ˀ@uh ̀jnH  HѺJPj)@ju@ LgpRbG[  0`P @#[' u@ LgpRzG[  0`P @#['2ĆjnHp  H npnHPll @ V @xx  H=~   hP*1dB 0p )`# P`@>Y@GPd|t|-1s hJ1= J[PHL`QHNP= ? P Z  N ?P 0 Z r r .G,unP PHNP=`S L  ! N ?P 0 rkS`Q'ɲ,! ,i(QQ,y~  w/" ʑ@  ! rkS`Q'B" @wP,}  ry"r f 1 hPՀoi ' P( H= @ PHH:fHkpRpZ=pjH nJؠ *G 1ag 0 @A<$ 0:`Hu  0 @A,  HTz HH:PHu `H# հe( `R~@ $Ճ#! dt/ < P,KFYQg  5u рs0P,KFYQg  O 0 Œhdt/  < 0Uh׀ Pcu@lL`QHNP=? P Z  N ?P 0S^ X )  ـoi ' P( H= @  <" KFY   PHRP=: ^! 0!|@RP= ^! )E-< hۀ Pcu=@  0L X ^ !N0Z r r  hP*1  P4> `p -  a NNP=A ! 6 Œ h, ri) h,,ri"r    P4> `p -  a NNP=S :A ! 6 Q,ɂ~  vP," @v/" ʑ JlR&ZG0 0RR# HH@xxkH`pR! nJPHRo`nRz G ! j H hPB F&GxOʠJ  <Ⰸ3 P/>PQN>>0/ESfPUPU]VVWPWWِWWpXpXpYpY]Z< YPʓtptG`! @!vf!|!0!@>0!G,uK|tG`!`S ta!`!!!~~`>s Hx>|[g !K!Pp4 v0@!vfA!00(r!0!@>0g!G,uVd!(!K!Pp4 v0@!vf!!0!@>0 !G,upd!(!PH6 h ʡHby < !JPH4!K!Pp4 v ta!`!!x.6@ Y`!0!@>0kp!G;P)@ߌSpK|tG`!z!Pݡ!0  "h, li(aF!0 !`p`v! lP @P,KF YbQH!oqŢhHr`|6@ YHr.6@ Y`C fP !J KF Y_0!@Ê!PHY`! SvJ Y`C lP !J.= h#l<!/! C!(aXKF YuGg ~>@ Y_ @>@ YwD YpG6P@Ä!PH΀P`v! lP @P,bv!@ruP,PH-@FKF Yb!  Ţi,vJ Y``FO'-ru9i < P,a/A    ƀFH`O'-ru@~`v! G YrP,wD Y < (l<!@0 J YvJ Y:!|!6!0!0 ! R"lP !!!lk@c!PHh "lP !KF Y'0P, t ``F`t"$P"zG/r:00쀚 P,a~v`t"PS,", Ţ ! 4`KF Y < P j/Q    ƀ <  ܐ͠ƀ w !PHf`Ѐ`v! lP @P,&a/A    ƀ 6I Y0~`~t"PS,*,d/ // P,P,.ɂ~`N@y0dPjP ^@ܐbv! 5`ƀ=dPjP (f/Q    ƀ ; Pƀd/ /P,I f`vKF Y0~Ъ` (f,d/ 'z   ƀ "i < b/```` 0 < !@ÊI Y0! !!S 1!JȰd/N>@ YIx.@ Yp~>@ Y_0!@Ê!PH! SvJ Y`C lP !J@! SvJ YV@ Yà ! z!/Hr:`yj0 $!h!K Y?bvlPH$ !p&!`ItGI6 ! Jkp! !JT `$ !K!`2дIv Yӈpj! !J4 `\<P S=Pu"PU'PUPUW-WBWGWWWpXpX^pYpYpYpYpYePZyPZ~PZOoB@B A !0;t Nu i{wtD\_Mt;]KF Y@G0˃{w%4B+pWǜ Պp@ YP]ZPH! /L=1LtGI4 !J"P#! Yi(q  pi PH6"i!(!,!w0!&JPH'@l f @ ("@ 1!J/p)" !#"p"@ 3ג kH  ! "z YI #p)" !"p"@ 3ג k@ 3ג k\H  @ k  !k "Iw YI"`DKF YuERb p 0%{@>@ Ytp9Y @>@ Y}@З6@ Yd'@PjJװdYF0 pi PH6!/!(ŷ! 9!=`d nа!s8  PH! /L=1LtGI4 !vJ"@c !MMYH  c !0Ґp0w0 `"0"f!0O ! ! +  р"   !p0  "0s- "."0s-)""I ` x8 "0;p3` ` "I ` x8 "0;p3` ` !v\P>@ Yu0ER  p-£tF !@J71P]/t }i?KF Yyy=t KF YP] 30!KÄIw YIT/! Jp!`ǬdZ*Y("h !Z˵dp->@ Ytp9Y @>@ Y}@З6@ Yd'@PjJװdYpPw@!KÄIw YIT/! Jp!`ǬTH 4L !0;t00(fTADATADATADATADATADATA"<@ !0;# yp | @ !` !PHJ c !0 ;ʱ  Ұ C !` !p0wڰ"" "0Ґp0wڰ"" "MMT PH  TH  >!I ` x8 !0 c !0 ;1 `p!QQ>@ Yu0ERB  p-¸pKNgJ71P]/t }i?KF Yyy=t KF YP]_H! /L=1LtGI4 !JѰdsERf  p p 4y2 LTXׄRYL ! =1 E}t@L#@aEE1QjV2 O8X˗E(C@a5DWi:߿P7 C<P:R0>cXBVe@be0(PpYP4A` !K̛;#T).ˬ$0RٳiБF6[i﮽M'CxG`pc;!+|8b+q,"Ď"T H'"Q F7\a_GT#`  F&APР&J>H ~#1X0MaRWb"f0H<@ T(&.Ki84$Fѡ`>*dd/f6R}z'a1_ x@"7@KD:tXg} G ̤BdDřɗNf~e~j|W?q }X@#9 ZxڠL& B@(&gbP )#'i9dG&)Md20+{?;ygwtlL2;#P b:ZdE-.#A!o`&,׎p"gG3v£E&ĜUs)H=TU]VtuEYh\#W {YW}xGa)XHe0a `6~̗H-uMDtk0@h(zߧw M:!Q{>u@ފᲶsc rL# $>R8Yxz(7;䒯.=.=$9t=u<{aaO|vHW0.gA MANALY.TUT4M ;D(h T 0lI3Ty#' €2'3 @12aAS ip%;aD9':,AI#g˅mʰ aBIDK2i(gL8 ߸ 9-.B^I䛤P 3f٥ мSN9鞐 ͜bLm+̘SM:&M7/=c^2ńr6MUƥV&- L2iƄg2ϛ:v7Twac8Cj\M!q.͘:lQ+iy&\=clIqMe_iAOF tuuU=B'LndOVH!G^!a"9l>UFaASbrkA CPR=IQ(AN dt,ei6cIֆXxIܝ!spTcS>ņ]S/![q&ys/fMyic8VB:hF^N8Ǖy4G\ dktǎSꌗ 8 &cHfJ+S]ae3'mQQFq/xE_yZjޡ>NK<&qDPV;X|mpJ1cS.&NJw*j^\p\!|ڂcʤ]**;QAE)0W0].J$FT 'C!cDŽ[Ó[Gg5wMRK/m)ӡP "SCVZyvMMG= 3ɄYfQ1G 0PKQUHHffPVhN5aH.Mq+Pe%4y>!xdU_M9f=VdѺH2Aum8vTJ Ĉreb#ť iPǀ@vR'F`S!B@28ف]@0/U^ꄰ tR@+ea @A0HEFɇ{#c*mLo8# (NѤnid1Z(AkQ2T=L(e8ֳN6xd}yC`qJ *d$7֩2֎%T!K| d Yx`$.1$l#*FQ/$Fȁ dg; *H- u,3pK>y,N>٩ rP'9tpJ^QJ2ȋo:4R 4S)!肩T$(I g U<)]Z(3',!;zf$UYt&$9YJ `o @etiih4-lnG-S̎ӥT hԫ^ʼv,LT0RKAT.H` !| pF1r/^'0Ӻ<זig}ҙ<aOSQB|9 f-\p$ͯ 8 x0p (PH!:Bt$ d>KL"t z%> -A 1@ #Cc+5rS9 QSlL"V:Fѣ* kP$ hh:D5cItB6,EQ8Q㑭Wyud r,H@N'[CD$ƠQL"@Eĵ5p`&"dV_ƥL$ K@&4@I FspU#|U˰C)ja&$n-t:Q#h$C+hWnfgSI̟Un39O{mH5CV aͰ}Rc`>saL(+to<݆ɡI"L }ejBo#?!B\Rپ.J₄1d jHR3p3 "05 ̺|+b" fJ]YHƵI3!c11{TN g0p/%;x)X5[U="Vb'qrA9 ]}S]3"i$d'`!%.TuBa3'igfUc`})9O8idl+wwNb.j;p)2юX%5yE١!QVPFHTCA OW;T7$ENp @J LYP##`UĀHyUtaee0P.20sَ88vO9%^H5 x=3xS#!LvQ$3{R$(ΣWd X=OH]ty2r~bfjxiQh(/:Q:WE8pWb33-'.&d\6}*60~QM!aqLTPOI; +l TUF I~TpWu"@PV*mk1GA_-Rh y= [%t|n`V/;=!f60W-It 3Z3d@SASTp%)OTk!$p'dg/ѳ*QWx+@T+kq%pr75b%eɯik7jr!rRo9: 801ЅBӕ){ a#iǯƶ_4d%]rF/,'(KZdP#ubDac_1'K͗D ǦxwktDZ8Ps>V{+uDkANm˺EѾuiU3ҲmK2#Zۓ˼@W0CubB/DS Jl1GnDA0K8b&J]H9Zu17Y@HsFabbA#OoǥE UZ{LBCLPMp;WDp"1pl乡|s J/įB $>2~<;MlOli9KR:#:q9Jܠ>1_[5BHz*J%V}t1%l ytI4=6 dZ.=ҨIBL-u1M ZJ&D/LGǫ{sSw,āA^Šl,l&tDg̈)vHLl2\9FF̭gj6eWRE)NK1n@Hd8KrㆹŒS7{˅RGc[1"n#Db 0b%F2bbHD\s$%zk yapnh'q[g,Ji5`zՓ_#qcq79z9K"%+zZ"&hm8f #ӵF6(kG,Ktd([f@W} |g!|=Vu2_q=K Bs/*&gRmlNĽK*2B4FpuBK:=-ҝD]Mٽi&Jz= 6C+ϊ|B"\(hKѲ@D)В>KU) 4G0+.^V_腡ߠBaќA&ZfԂˬ5ƚ۩?7.>4ga\b֕艨TQ6ʶj3b,'&#-sy-$ӣ;ၸ!JQr9@2!۱~͝ u|x/!+P N]>)'F&#aT0RF#2_Z͊Tc+nKaMFCokSA%.(! 1IJb~BaR;w .{IQE{K~UT HB'H]^w,1y,M"(_vh&nX 3HT/Rfi(*츱iB7Q. ) @2_lNA@4̓Yم6:B]SHexYfL2ȴ1;#:2D#jnHI1LQ"yQ}J 7PEZa:r1UDr S!qA+-hgdW)KЗB* MxYo*W::>uk+@2EFG SF6Ε^(.#bO,v8 I.m.cU,7 5ZqN#63# X!1gsr kÂ?á&*j䩶\@?9%. !+ )- !( Sx1""\Mx24mvT=`=-_95j%ݎ?C=2qH$ ?)R_n1jvdj|j$ p"৪Єb*ICRT IzP$TZ!uzyΫt𳷯]7XtRrmy1|FIM5 4G_ L')=B+1 FAkFFZJ.q]^>5S WuD2Wjt1}pU5OqXiǡ2I:n7 R^/aA2VoӅ_S WuZw%y-nZ'C`q3'OubK(ihws<&)đ@%SooO;@T%)jfXjJG$M*nfNOQ+_US [`:P]%])%Uf0]"sFHk[5"9+Xvz6KDdy5 2sP{x†!+ vmqO4%\3p1UF*dB.kԏz6Ki' #`6|S 7h b_-b)ǡjqr.r؋(+%0wP&^+]b1-:qS [`:P]ȍ春TELO`}=3KiG$Mќb ҝOn= Ga(ׅ}3SbK$wNb*v"1(޼C@ш1:3>s/bK="w"WYibr.NԼ16śb:_VWZ//PcTI1@.P50 $.P5VY](a2щNQ H.AHbYU:W""НIMRI00(fTADATADATADATADATADATAMs(BE!yPY\(b!yPYq3k 0 E 0+@>]$D>$D>$D>$D> 5MR)>a,JCոw/\c=\1!U')st] f`A.U*+%!ѲC9g1I0kuQ:2Vi3o G0PYa%PJ:p=5GP)5o/Q:R=kY Wu9;-dPYa%PJ:p=6G`ub%PJ:p=7Gp&nçYY M Ep, i4B ^'V4GC:pV4GC:p9P'V4G :p#U'V4G:p`Y'V4G؝Gub%PJ:p͍3G3P'V4GM:p}dՙ.tjQ)B)DwY8# ̨B!|]t0o43o}!qa@ %UoZ1JG`aS@$9R0}CP|c5cǰ37j@/e;H4js.'Llw/TtP?%q^̨b:e0XӢX߸Q&' mRG`aBP',T p/1Y>LlЇ jq%q^Ro &'Ȋ2}ǫ QR8t $V"C~'Э6713P.25@RI2@.05D:KMe{-cP]Jϡ 1Xn@lRǵXb﹊Ӳ4>8ǞPfjDṰMRI."G-8s4AInT3#]OqpYk6>v -.v.Y1G]l[d NmTfn#h/0z;"7(&surX6u@A Xk1e5tdfnmVDBVqt P0bBt& JDTMteP|9hǯGǂFA)fd)$4!$GrO%pCá&zņ+ҡ_I*/C@?!`g6 7P|RAnjGV^mz]tƻtC= &*q3hp]Б]Ko*dm!0 s#dKcV_h(b-/@ѽmB3͗(V3NqB[EQlq.t[?D7ӕ]Oz!|bXӝ?#Ηܢyv/Bj1/п9.pL/:@RIw>sP{5#0$(@\|jgnVAD߁Oca''')D'<6A ֲT؜QjB,&3ˈ3D Ѯ?"0jqE1bP9HJծC7> ~-UDQ eAeZ'GDmiڃxW^R0.C0DmM K5#0$Dxs)X3>@RIwǫXDgpN ,)WK>".8XATw,X#qS^V(V{叒M'Y '38E.b2J>F#':DazMTr)r ,0jQh!Q8=#MqϓBsaH]rP`6 WuZ㭳DaD1L(q8W|%Q+x!aQajj֎)ɈY{珒D^R"JwVv7O`WQ+^i݂1#:f()rc8R)ej|ReGڐ:Yo(>5a'u8H0-_뒘'.3P4AM.p5<(@k7P/aJ.1H.(A:3b8B'^_I+ \(d'Lx5o29)6O`a#Yj9y%=N hM| tu8'"Yybx{Ƴ ,I zAAL;7&C=RBJFdap.S_N /뮓|͋o z^ #4( mhA'o04W7 [f]|d]YAG 9ԉ2PjYYYALPT(rY|CMI)q68^@j& kKqH_@j)Ql]6q(Ecjs%".w (R]5@]nV7+ PBJUc׽ p,V"*,Hp (!վeˏօ^)S)/0zSXߨ "x]6ZʾZdL 1h.xbk@vN=\=aaQ.3U>ZuqkSF"MIj-%00(rfn"n#qZ{,aD O0SRHtŠ&܂ !VC M)bD LPuXl`J OSb+-Vɂ;& p#A&LLE OS90-BC䅅Tn@}.0Vp0S;nP: @ B2`a&& @hk/&Lkj,hD` 0ͻ-b_!ɱ+ 3 hH&  ɱ"ph@ ,h鈚"4,& 4#8]-`°F-Lq -@9290m@Lmg)LdL4T3&  V?μ H\:cz jSAR @*.x 89YP0& "n|DdHq]$& )-Hp(xRa@,fnTY.nj<V& 08DbX 0b'`(cOz fe`X@ #:B p cedbe$aZz 7& fcӢ %Ip'c@`=-jfѿPGpa  **5@$2Ra@i6W5cP`nANALYTCL.CRD;-M BD}^ }& "NPQDI01jtjeSXoUXElX%aaoaݑ] Vs&L-VaBiQaZyx"X'h4oj8VsA.qXjGUST-Uj5!V8j5bxT TQ4OPnoFzVlTv@jvTBBN&cu6t jd aݡfw1eW`f}JiDG`apZ q?!F|IvoDF)́V/-r265\*a؁p{R?IWoL[ ׽%l^ޡڽ= &GABO]މEXphWR QZYw̜*k= w 2[Ԫs*ȲVr|UGkxmtӱ I ޶ UF5ܙ (eXŠCɆMGWicc~y(jtyo h:Ggt5`xힽEqU຿xr`n/%#ME'UrǣYtPB 1yRp6^[XBmCn3n|q~4676 dׯ04K[j-eLJD7>~t2f4V5 -&iRFXh8A[IR>8a)U6(AY "E )m H PB 1RJĊ]脀d`sOf+i<Jr1}2 pC 2U%09ԁ"w#`BeXLXH6V1p$hR @%iC$j]k(xI}>`2@SȠ,r>ƑzBM扦jQͲ H]NNgc HP opUN` &0 D@T*-h8w/wŋJ|3uf8wl^rWBig~^(xd9FQG-ƀ2` \>|Do*ED`:t)RHw sAx UHRԫ9nHa&܎[ ܠ=HC$@rY]5)lIV)`fEZ!VdnI\y.z e8CI8"aZA~4 f7+miC{ڟ00(fTADATADATADATADATADATA?V0!9#ܖn{k߂& g_?\*}jp釅v@!,pc"f Bf"Y/]b]UcdD0nwJt! u[]VlpQH&ƴ lZݠQB" @ƩUu Yq+)GEW̗Ģt' >!/ 'm L V,I׿F$9(an B_.Y|  T&:WHXll؋Egܰ=,(UҗKF9RWrgrqږMm G]r$}t,l&N-:k pEoX-P!j:gn5G( _a:Ѯ4٨t*)K-EӸQUI֍ 0Bu2YfgȐfwAGP2Ц 2r|H[D-3"0 zrjI|A]"` XB^Ď05mH,$Ċ!5ݹwө1Yf"SgbjT`[`HSwLX39=Nw^; / fg)EZ`" OB02Zܧ`& ! YjLjQC=x^ MjƐWJݛO@8ZB)'BxOx(f{[rPG(0qqٱAq qhqkYvWqX;4/%HWn^KaA-(d HGR iVv9:xssAmGvR`\(.R]W's64D"Fx˨?'+(*H#pblǘ  XQje,Zr-q4+fxu$*hQ MȌq>RF%r94LGDyq(ws҂p`7/gt 9gt$ &mEqyŊ%fiMH H~qq8[d[qhiPQCk!BQS`DMV T6bDXA;c%BU*oBv>c)O`5 ُ )3%3 +b[DNxW@-f6p%c0sTx4{t^ aUf#OZZ&hK%+0lp;G0Ɂ>)AL ab7jg$0AcAF(gi5:9@-!`53XN4@+ᚁ29a2*U[s`{s=;dncAjqxMN0XqM& ʡVp":R%"BjN+jE&{Cq:z#W ?rԡ2T@>JJ"3hcBN@_ AAKs &сW1)2zy6=$1ڟBzZjjꧪoJXvpRv ʦJ&ڟEVVpRV}*"Pc,o,0arN5o*h"5t*+701AƓT:@ZAv&^MjMS9"MT*%ASj,_Ċi"j@3agvqwp?xj. b:Gj Я7.BdB۟LP jU`kБ &"sg> '"Pzlr#6D;0PPdzŊ\W-˱9#,F78+:˳>Ks@DbEH{(ZOuL,DV{9*M,=Ɠ8 #i-,"Td#q.".F\1'[м,`V)QY`sVKe$h! {2WhKoqֆ2-oK6iE2@KJcI ,Ծ=cg.<[a'(qt:[u(׼)]T" &=/AiR_1=q 0w1.㜲% M,pr_`Pb#JAgrD^|7L܅rƋ(Ū{,>R(a!UQ]ha=5"~1Cܴ$WADN**8yYh]!u%X/IK#+cW1B4la;u&<~Cd+_K.7oмL>Ɂ(!{M;\ nWrЮ|ZxBVu㬪ʌ|9"p. /" ?G3]."\5 "񰸼UuhKcX|1RP[@i qҾ-Z$J=jAr|r#xZzGQs)0ICS'E:W61џ21k\Z+ll!'Dl45k?F=R0~aںQښUtFsZ5upX]Z'JƔ=ς:WiPz]`7+hV(4d<4޺rRD19v.ЪAEaNP?aF.pTG v;NT<O̞ZIDFPN0 WGYmn(VLPNE0ڕP@xE[pa%Hal}-\R^A`ˮ<0w * Gm{SEph-NG~snnE@v̩~nEF] sa NI@ n^ pΆp-e*<V*/2OtDOp_u[FsԂaL8: `qt?G$ `/ILBl/dfK/J,LGSR`(C/?_%}_ߏ<SOe_l%Sl6sr /+(T6N"dCQ?{NdzyTk&b: ftf/OJュE S_9qDd)$,tQDv6!SWU>_jM!9Ծ6MA@!J5Ym1+s5%CCaq;I\ò;Ys: U xȷ5Zp ΉFzs_0lJaPc\F]=,)(>/RU;7 LJ!>ؠ!͌|Q8`6u>k1?Ro1ΙP)Kqr-^00(r6U xUs +J-1,> UyT Vavcrt CrpE&O*PXQ@CpFJ<6@=>l-w?&vI@(~!WsɫB;=ۺ9uUÈ|[&q? AA@XGDD:BaFY)E=d"CC;n>̔%@Box$4A,*qDZR.&B =Ć>kV! C H(B"* @(VEp! udIPW'´N$^ &Mw/"*` DҞ܂"sYyh>(#(C"*pDZR.ֱ ̂TVtYͮ8@"*C@%b ,HXkE*! RP@SoCbGowvV[ub'H6a6&M7aExU9! Z H)O@N]c0/?1 B*pj(` B庝r~~!oQc0/uJ4š"+ Pe?A5>|Wm@t5]=dS1%jCCeԈ,W?4FV61%:ѭ0dt)GU5Ɔմ2 T/Z1Ѻ%Qʧ;>%U!sfgʕԞ6W`\Q P>Ս<%rp.a0@CQ P%Q[CA3 . 5 B *p2 p*r6\Q^vM --JZ}Q Pʇ\Y8b=e#4v%7? %5ZF4@*r(+vb.*r0BMʙ>36;L PMWQմ7 ('a%Q>Jڝg BQ P ~KEAP.^v*@j'0)vJ48۱MWQQ P]IC$536;Tp =%\$Zqo)!r- Pc2djV3w?ڜ P=G"*8%ӞMHo)׮ױL P)F>oG@;%e&"J{?#/6u*0LC"̔%*+{ H3qxZ*`\ v! G*pDLChBj;J$J8J!L Poآl)4*-XQJnQ 02 Q`\"*y*ƅoNtP*xӲ";Bۣlqc# P1&fRUr6)ǹKQ PZXO?dyp9ar@QoIo??*2 lQgo??*2 lc` B?*2GTFvVQb+bgS7XRr*U m? % )cE7t\,n3rPQ P0JfEQ%8 ,Heg, %:E? Q`\6BE&LxJ %ô(>Ra ,H BUV!]L Pap{"`'*Qg+7!# PB|!XY ,ed?91uL`v[ՈуJ %ôWB, YMIFD"=X Pz|!(6hE_qL PBqH1/?12 UJ@O _19&@tf JX1]nbxUhV1L{!%_qТLAQ,Ҧ#l Pmg Wm>p BA,*P p2iY0M0D09&0.Vk1v3)%)*ݯЂ%_qвآTm@$om8"v-%&Y/Md꜉Т+̔%%2 UWDG'EFa@"W&b+rJ [_qQ,DۊAFQ PUUe'U g᫆>J)(rVCr-y v! U ~n(m@ dŢÞ4Ta2o垴2 UD@, ,0axḿ7Vh:2:Q 0KkI/IptjW"*P7U , ,0a)k$JxhAh!>%Z.e &́:2 U ~MY`(ABC&  Q3SY,́Z-tY h%Jas(h6?ptjŒԗQ Pv^I"*PPCP, ,tvk53R5&́*0XZ %2 U} ,,p,,;; ;0;@;P;`;gv(pe )%/u&ed?x*XXrᏅ7Q%{=S7XptjH'$ PEY5*c0/?1ŢDl}T";%XSUPQRSTUVx=8 PvY,H,)ڜ PECko!x$iθg1qqT?L PT\FZ,Yfѫ5Z1CQ PCsM3<ڣHV$8/uS /в;&#F/,>*A-P!-"Q P㇬TTcL t# =6NL PmBjӺHdȃd" Pk5Vt,$"Qs$ UeT Va*;Ea*4m"Ρ7LhS7' PcU}&"\ۭ00(fTADATADATADATADATADATAWF.Q PRKChSWRkW>"ES79, U%a*4>%Q>>́*ZQQ P816AWQAWA.R3mJ U F@FgU\F@R`[JEa]2KAJŒ}2d- P)QdnPQĚ^>s<]o$B,*P,E`\V:`y0xVV%^iŁTn!(=FqDaRyU+@.„`RЭr&aW4W03o[o"3oIo3lH@o('kȲ&0g \eod2qnxU"2p3o[% g N4_*P ^xך޺;cQT5;&L PFL?|[%W"*P ^O Jy݅pVzO IrUQdpQ PO%;\q]ۥbo{|%o6)2 UP~]o*IVGZdp`*P ^O ZX]o*IXc-pG6oɻyH%:-+2Ռ,QH U5L0Nr`VG,*P ^CSU`(`uU! UPU@]o*Io#WE/*d0F*%p!+dI>IwUXc" Pv,*P ^OOPTW݅pf]W[m]dp"*P ^ r3oVGFpKT8o\"*P ^OPb9]W5;T8o\"*P ^?Nr6oVGD!y4,*P ^?OP"a]W5;Y"*P ^Nre9?jUqIwU"ʉKZq ;a%p'ԩ=[ %e^T" #lQ#g\NCjI@~"o %Jnf] $:s#aQE}mE%*/6*PX^CP`^CP`Vb"c +3bț6p)3;o@0FN:lq$t4NSG9,4qcM%@4P Aaƌ1$11L<ߘѨƎE09 6 nysgϟ=:Dׯac4ɤ3J+3 *}7Tb('iVI)SȆ"aih| 3DD_$}L&M?6}]hJ24Ρ#g晊|6@Dc_aZoʣnFl> =E0^bN*h$"IJ#R4A@bKvbUuZ!=8W79QSPCeuiȁ %&A0=QwQ9Qi_c#Sgё_IFgTJ |FbOpLԗ)mTcБy)p'(`\p &EaQd !WEih"FD)qv&FtXQ]ʡWJ.-XyhJ]^T]-i"F*EI5FVVhRGlցo:5Gx`AUTOEXEC.BAT f E y 4s@ M6yp  d԰(lʄSɒNPI2 *X0FB7sȩ3F "2 9PgnnҔi.R*X@!2f!L%JIUTAUXKPD.TXTTx NV T)4s@IÆ 7 ƼqL98Ŕ,S"L< ֔ 2eIC'9  "0ltFșC c.) 9oTa 7dCĎ3W2̢U+cgMci  reɄOeF/^CHabqA ٰ 6 ʨM4 "OX H`q1 .-1)EWoL2 qȩ!m(e6d NYssLDlP^IiFA@̨F7npQ`â,tQr׊?b*"CG'P~†9:H}G hBER.PCCXTT 鈾 BI̜9 S͜2 Ff*HbQcd @HR%˗"AĜiL4o #!hG1XMр &YQ-BJ eiX,M2i# fe׳cq)$PRV^!=PfԑC!7f@P~%&jTa2":iR&k2 "a蔹7d}+?b3X`˰Q c@Nzkї;aFIHjӸ=R׏w9F} ]S.w PG|U}wvy 3W~p s Р|v"0@( eÈ뵇ÉH!lوc܀cs!jYQa1qboB7[ XnbZtFF\vvf%V[{e`@vb9ifsVMAIyT {^%_8ĉepPz<,AneSdlj0 Gv&E aCXGC#*$˫U.9kt1Y:. J>ҏ %樳av[åծ)S [\ $A867SIB oBp2 k Cx2'*t?O "AhPk|[ 6s#4UWdFr`|ͱqg}^'gqsћDA Ai9WQ,Z- `B뵊E_hZSrFv eSV@mb?Ӄ aC0o/{lo{$7pAVd6(FUݤ P@"] e^AfP~+ 0\o~! fA), ׺+^ E j\!J D05{9NJq\Uqc(ƐAo;+'\2oM:z뭫i򄍀et֊ @1́BIGANSI.SYS2 nu@CON 5xA5B=C%D0HJKRfhlmRnpsBuJp !"#$%()@* +`,-P.0/p..VPQRWUS.OG< w $.G[]_ZYX^.OE < ua< tJ<u <u >t< :v$>t>r6>à<t<t 뇊> P3.>t Ëút%Ë)QY3 u1>u+2=uIICC uIC  t u&Ë C uC ûE2 t u;G:Gt à u0>t !t% uu GuGG %3&G PSQRVWU@ءI.<u.b.؋GP.N ]_^ZY[Xþ$<[t^3ۈ<;u 3<0r<9w,0 <=t^ 200à    3Ɋ<wrô3҇BB9au)5+r WGËCrEr$0<0u<w '3ێۻlOO.G5OeCONFIG.SYS" L"DEVICE=BIGANSI.SYS BUFFERS=2 CPM.EXEYStFM GD. V M  ! 3.9 U ĎDc '}M+( .SA| nD(?'10hA~cdhѢFFAgKUhǔ `%gf 8Mh)7d~*@XhXGV͉[7.LAx I3Cw @`(`.kbON}<͙ Ee fS@^62M8pX@ʇW'_ FxtFX: cЁbs|o,RNd]/)E@4,O 8@Znup".(cZ4 #$ȑd>(`?A| N3t(!3z㵙!c?aesY @%h:-b4BGV,bȖN:g)uh Bg( >ဩ(Bڲ(I(>Rs 顉:O4,bɖ#" N4n)CCF  H%j4;R?VU_\u:`@jp?\0&jh/( ?" yjC,h#, > Bt["ǜT{XI`X!3=`F 6-ɗA 1`02B,1~sz E\t`Mho" Z 1^pcf@MQj 8 t9kA qGqIG2=0 X H+I $`I}#؀2_?"g-z1~!C݉:)h-G 7:P@sJh79!ZG4DŽ"&qB73'.sZL/g+-Yn%<.(H)Uq0:*I?U9\0 f6k ?# @xRh45UuD"Z%`O`iMEg <&Bq.()D Od1lWcl b *? p?N1o@!` ## hG+s0h3faW5zXNF T&DE~Xip.9"z\!EqCh@Dd7v%p.¥B?=v͝ÛB QDX75\d`\ŏt!Qӛr6^pj\JÓ`xA˪,*:_ux@ڵ Mh33!LaB3G@謲?]uiBG:d.< jQKzIp7APA *P p"\ſ ×0ER!PINd}(<`Ԏh[XG98ݦh ͧ}MjS7?.T$4LLޭ:@O9 hM4] ->cEfjО"|،W@$#+td*6(âpl;Ap3J{仩Hk?ƃRSp!Nx}gO3,;0`W`Lv.Twt1Mث.ٶO rlIA1@c "QJ=I 'IQ e;_{bE`@G@cT2 j>UYƵ1xX`LNt FSAK4X?Xcz7iWb,yCFSaS@U3ZDeT0 ;T_b5 TeU'U[U]Ua5VPVgVke pyW ~!X@X`XvXpfVU45YՄ0gRZT_0P@{ `!\ĥ9ߤy$=5ZPZwZmZ"l΅_0';PPQ϶+FQ%TE0qkTpnT&UxUH?0[w2)* &!}"V\F @Wo^B-C%86`A4a 8!/+5 F@?qa`荸v) @Ā؍4 !٦njj` HU@0 p1&A=R̴1p=Wc yXX1x0Z`!X#ؒ h& 6iB˨KjĐ@r0| #t`& l cpFoB* )` gaqr~] k2\F0\ kJaS9q p Pt6s3$jnwEX!p4$Y!X,Pr4x2!p%EZ p9 h@MpXqS ~xEe`0 :q`A 渜ER 4T/`A`9> ` 4iDП: JP&`)N Q4Qߩ Aetѐ 7fY@__͖4 0Qa@00p rf Iz~`&` hVP `L'`! I}G^It.bt4H?VG2akOi-PQ; ̢6S&nf \IoLjYvꕚ&YrUOw /|+,"`3KBrՉؐlW ӀkY;S4@_Rvm5mOuг2Km34 'z%Ί aspbpzy (PWa%K.,W'4q <>|C JĈJp= Ql| *D 2GI OċC.. S ORƫUsu ǾP?TƊ Wśzp2i4ǩHeC` -ê`i\auɉLıN7ǂJ. &g^x`p. pku5dLlƿ\.2Mp|`P, ǯN ? Uq.,w\.(`E| J! Y @.`>: p+m4> {0 07Mb؀pxh%s@bEH/> 0Zx3 ]Vp I +1" @`6: >*TYtA@pFZ`r JM"1-SV+PB[=]aLc]vi;֊=Ս-p@y% Z$Mؒ]`"Rk+N`~ԅ= 60bP0 +0 w r0@;@ s`&Qau1;0``p< r`6` > -@<t@<u0ZvB+`b p<<d'㓪SpQQu00pJ4.XJbL5bZ !4ސ%t+5 <t ÀZ P u! @ ߏSp tC0 x|aq.`- y.à@ Z0S0팀 nfV`N"^ @ ~A; ,W1TVd ;0 ݚ `c= OrP4   FPzK1 @O09s4! 5,B7044'&k7R Bc!l4twrWk`fR ~%01p'q R `n0y|oo07T}b0W`P ]w]_a?'v~O,_hl  ' __5LQ0] p?߿D! Np_?ܟO_@ i \_`)s0B-\ \5u u5iQWa)\.\"G14a`d \ Az^v*`)s0B-\pp^ b \3_W@u5iQW\_q4sO )`.\7Ar$PP`)s0B-\dp s%_E dadd1x'fiorAvO\OsҰdf밚`dd1= bf(`00(r1bP1a\@a\.\"gs0'{/`a)\.\"wQ0e`6.fs0'vs_1gp/ 1*`){_! HaO,2`s/lQ!pg`O!~01VkOB cbb01VkO,,'@0Q1ziPrPY!"Fŋ  - ͠$20sP/KQ0ipb!U/Ka`e nzvR70Zk֚ 3ڰVe Ua0@b?00Ӱfp?00ӀPv,\f 3ڰVe ySf 3ڰVe7c0Zk֊ p=p;# 5`<]p_0ـ^@ 3` uPr0BxP}`.CR.C,;`p9`bpFxPV+_)p Q06R2fP*3 !d̞$ PG P0``oPi`b Q0>+pIW566La)p t@bVP/K P 0ۀ@Oa|n&h QsؕuPD%Q0]0 Q<4Ft^zXP!N⇚Q~[DhP- 0`x@ *  0 i`d5#752c 0`:@ *  0 A`VP/KN@+e78 ^ll00:` 0Bs̢ eʈ^|)pVP/K/@bVP/Ks0~ Jd+ QbD%Q0]\^5A  Q06R6VP/Z.`bR!( Q0 k6P mA `ca3?[`^:aySJ E I -Pp [P`Qz.s]'6-0 3P5a  Qv; Jv4֊ 2P3#@J)PZXaA,? 6')H'dPz^Q5c-Pvk4٠+/s)p @hq#ĒaQmHJ,iP j&%Q06r>`t0 p)b-Pvk4 g+4gQ0 k6sO' Q0z6R"2P3a@J#P:`s)ap/P6 A}assav@~a|Pt׃|LcrR8 :{iabx E[_"p 57PP٦cB|{h$Q1l U$K!pbR!pd[u~'PrL*3D@bePpEfY~/32/p,kK-XA "#s@u,-XAUf P/c-Pv[Hg!b_026F Q0,@ >P>V+_IW|FA6u6$f QsuPD>`OIi^"-Pvk4L8 Q0] 9 Q<& $Oy6"&2P3#30 Qq v; J >v; J+a|OYQ'OP!p E@Q5Ap)Oy6hQq `i-P03@ kz-(`B` Rl!b-Pv[Hg|POYa Q0YG{b_z~ Q0"Vh @#xfX461l G60fBaLρ0=!@d!+bof!+01l$Qg>v J@P00Zb-P~W Q0 k6@I/C>v; Jv001l5k>v J14PpX=PznK}17:@i1PW`0u`{ 0Z 2K-Pv[Hg>V;_vR6uQ1 A`Cbe 2 /N A Pu{@ 0 }b`U2Vh t6v9>;P0g|Pu$66W'@"L"H7PoQfkeR0Y &$kP եUf ]jh t6v9>;P0 |Pt6D6k,&$V h>W4$`Qg7sEsifppF`e%0!Rbs#t@@ ~<|0bP>1VkObby#4 2P*63fke&ǒ79 Y4(bIA$P8|4I_0Z0zM'3" @*" /6Uz>Zv=ې.bR!!O2NP13bbI2"2(e+^ `̠ :@٠0L;@37;:@> &p' FY4eFT &2G`4e AY`4a p K qSKa0Za3CbkbO|R16 ꛛRU3~p2   0Fp$ 00@ $.`!P&؉ԮfP/.&X<{0 ӮX<r<s`{,)>:ZPa  A  ZpǒӮX<ZpX<r<w@ ZPt` 1NҐt Nʰ͠X[pt` ώP X..@X.. X[puώP 5ώPA<w Ӯ_YN_Bx Fp "0[^[^/ ǠҐG`G@ ` 0#^`>ZPF0Z^Z^/ Ձ p`Gp"&~M!;1>RP>: 0/ @ .00 $w0APdx y00~ `"O U$_XN 0 S Ӯ^BլÀ_pu@ Ӯ^B :0 t^D`W?ְ^0 Vp0^0 pP ` 3` 8U z0&3` h "&?SݰsP pH `#gtp^ `0 tp0 #` y>`tp^ ې 60qvp0`WՐ(>' -7 p9 p`  ^0 W`R>0W!sU0D$P/@D= -p4P/utP/Dಇ@BuTp4Рp$`XY^, >pV Q0`s"0W_s $P/ @`  @\@vd`7ut`ϑI@W`R>0W!sU0Ȱx y U$@P j R@uTm@vS@ѐd@s p$@ pD@ pd@0 d"bpvpV Q0sېfs"@Рt7x@pqw0 p $D+XqTPD@E!rtP[Z_0 >3D\D`XY^| @ XpM@E*\D[Z_0 W`R0W y_s"@РOPy`&f#qC@r TP/@a& 1  ` Hrn0 @`Đ+.KXY^| @+ XpM@ER8[Z_0 >3"[Z_0 VS0W y`&s"@ @Pa)sp DP/@d0'6c fU  ar `N  F`@0pp^ Y`>Y| ڀ@q[^s@ p4|D|T|d|t0 VJes$@"@$0B pD\c  Y0.0W0 `00W pVT60W).s5Ӆ@@PprGW4;@4Рtp,[|!^ZD:@D @@#Pd;@dup-@@0 Q&S0W 4РOY1| $0s5.0W@ @;A!ðO=s@ 0s5.0W@ Rw0ZRg0:X0 pV Q0;Ws%\E4= @QW 4Рu0P4N@BDP@BTP@BdP@BtP@[Z_@1 +@GAL + 40 @ @ @ @ $:P$u0@tg@Bdq@BTq@00( rDPD @#@@BdPdP/@@DPDP1\ $@p@@BdPdPdP/@p@@DPDPDP/@  R&P tP dP TP D B @ @ @ @̐@[Z_0 W`Rs5.0W|U@ @Р[Z_0 + P4N@PP DP/@R dP/@հPu@  uY@dPjX T @uL˰ʰ@Y@հPd @ua˰ʰPՉY  +j9`@ 3@p '@p;@ dwrp; trA@@@@ `0 @ u0 l @` pV Q0;Ws%\E4= @ P[Z_ @ ` @[Z_0  P4N@ࣇPD`ࣇPTࣇPdࣇPt @ @ @ @  & ʊ``@t p&`U tP/@@5 p@0zV d`P T`P D``p@W d0'@6@@@K p@0zV d`P T`P D`NPtq@sR T`P D``p@W T0'@@^P t0'@6@6@ p@W d0'@6@ OCPdq@sR D``p@W DP/@ &lP{@ Vj+^l^`X+=*lC Aj+^6YM j+E"tP~P tsg@6@6@ Ptq@sR T`P D`T t~Ptsg@6@6@ p@W d0'@6@ Pdq@sR D`D஌ p@sR d`P T`P D`NPtq@sR T`P D`?t@W T0'@ PTq@R 4`"6g`&R5ZNBsR ^6&Rlմ+^6J =R$V <r ,.Pu<u^0 ^`4ΜNP/N ?RIrdeP -[ І$-hru QY+E" S@ @[`45@mp,A :@/( =>NtP:c@o n@ tcNPE@  `ieae0 =  0tmo  0pP 0oyC/ `ieoM0DS@ m@o0 rcc@cp S@O0 `ieoC/  @i  rl0 -]Pls@ 0PMdrPc@o y lfrszPs@ s@a@ rdrPc@o y i0tC/ @i e0tr n0lPdnp 0ie0  e rm` 0hnpeC/ `ienmP ( eaeodaenPwae  @e rr @ee@e( eo`eaC/ `ie@ e ao  PrsP pdPlPtP  0PMflP /pP ptpPsC/ `ieo/^ria  eprn@/i0 e0sgP  ututhsp oprm@ ipnPr  go ec/ `ies@rPc@ Pr s@ nipnPr  @o'@ go ec/ `ies@rPc@ Pr s[@e`aP  0e@81e@  0e0trmdP  0e@91e@  0e0trmdP[@e`aP   0aea0 pqPi@'@D'` 0S)), e 0pee a PnpiePrnp 0PMS0 edW i@eU@ii@yV1@u0ape cm-@rvP 0omn@ otosflP1flP2.pYsgP: 0p d i`ecmad-p@in0 `ie `ie  Ams0igd i`enPm e Yc Ys 0a'@ pPn@tomn rpuet09tmcucmccP!yeP!y0oyppm@o0 ml0vdPle %\rsP@ipZdrPc@o y`tty`rʸM6e挛2rpÈ攡#Дa@:ipĜ:@q7 Ƽi&2.A%2 N$y7r@&: ޘɹ9.,1&4lؔ9MV8tҼq#6= Ӯm s@ 2s֙Lczt H4Bɔj%d9JW(c !P^4aXr<%| 3G15Fc5 Cœ;N9uΤ"z  y5X 0s G}vH }"1H|Ur1u^rrT=tX]yŖ[~&XT5gcPf]Q6ZiYd&D TW{5[\sɤX%XeP]lN XWiGTyFkfŧB0P%@ph_ 9Svd!MAf.&OĠm癡&qyj!b dUrp$AgUOi!gpBtku1lVt0 eLR-uq"b *jtαFHmkV[em !Xۋ2)i lCȐޘ0iM,шP(Dւ6/4z׮zeuP!6eJ?1r°=A = cD:QdHXESOqgH/# $af$M%/pe]g3/ahmeN1I=;CHbi#6<(pPyHbcGzJ 5 !c t 0 3J\`evA5fHM 0MaZeFgVٗ)SdedV*1h(U7kcR$=a$Mԩ P)sg@3!fJu>9!$H2SpΔ W228̔lyMꀵ儚Y*eK= s&)@єK' Lɗ,ŗV@P!@ADgv BB\lXҘMQM, Mrk"HNBI7ZGXf;9^BԨ"C'KvR(Wg$v1jϼnl^PzK&L .=fdZatԢ%KB\ABj)0!M2*rs|ةȇi-?!Um ;[σlesyRH)kWPdk&9jKhr0|I6A9)iPR0yn.3sN.2A: 1Q@6R8"DR:p"9:6CDb+7A fPޘР4 r?  V(" /\3p7DIFF.EXES<.!.X @KFd}(g "3*rb,d a!#J'cIC03 <1&Ll q !PG.C  y-3"@‡8:U8ɖ'@N5Rji0hZNujDm!*,ǔA q $^RaZK&2FBl9dC:2T@ 3O P0"-:>#ϏgDG93 sc b2MқBl9tkPM桛{c04ܨP>GlThσv OW`K M( `$ %&q4i:Prv@:T~:PrdtFe1% ՜rRܕu@4@aP@Tcǁ#]=LwC)>D\ HaIfu3f3vv(ic Rd }(WpYs< n];AJ;K<щ5 ҆0 T@~ '`@ŵ j` m.1ê΄r`p,p.bBan<@8~6Aj<#hQpA'ڊz 3\!Hg1)~rU1<ӅaTa J`uA `%);C]FÊ dxorV a'tG2Bd_fL>25Ē" @A@ґu( j舁 @AA蠀@s=HZ@] Oz(-zծ^G0f:``@TrD1e@X`c؞^ERԨfų[ !/ `T߹00(rD/c=Zߺ~TwQHG,x 0` m?Pn8Rx0(n7n#"Cz!":"r+oelo6:$/1BƝ-]NءN1p\#:`A@ Hc@@ Сp7Č?D >iVKc@ vA*uȃ0z`y@<,Mp;Fv2'@vc;^6ACt:P+{WXp֏ 怛/mewE ȞDp{4pgr9: m Q 9Axe<‘ p@}w@gDn0ɐ@i V1 #tiyK000?h 9F Ѐ*3 .J00oAV q"H5=6 dH?c?ihsH8!=pg7e  g3xG{1l6Bd8~w%zCHx;pCf7DfH:Wqw1~0v~}HPCR~@g7 6F{hB#i}Px6|`9 !z 8 шPh9э(dV pw pp0`; u-u{}xQPO2^6ՎWױȰ~a 'ݨAdfzx=#|=Q+k`"y0#sܦdA9{ "v%y)Ӓ1z@7~t5r4ӍhVGjK(PD:PDv`/͐ak7+x,"Hi~MA4xa'D66&4+zP4cC uϱiSpFV/Җϣ@CHqyH5t^fb~-3  9gDcVcz!bzdSNN7P LE`;1e "$^`BF@ ޳M &x; 1X7x] H &:0v`v^ 2G`j:"zS ֆmv1iVpgĐtqCQV;UJ`1Urt P$#u pJ@ &}0 mogI`e TeG6 kQ1}(mSf,ȍ*eGóayws2+ 0pfwNۢP kk # xѡl8StϤ7 gjEa32Xъk@9 )p ۰=u@`۰6c0wȋb@X7g  **J4X` o|Q[7[XaR f䩊?L6Q BGK)^`yG1LG/ԂK7 i@ gѮox|l )5Hhe)Y*ssIH ɾPR4B}BJҚp/P@3|1DU3j ܈[oMP%1 !˲A҉m2h3bxO3^`:jM`0@ßƼ .xAk<pҁ8;`gZ#cB}-d V4KL%`u8|N~uH {/RF=߾ZFh=I+9K?f!z~fɦVv0[,*|6`3>/ݖ@XgS:fvnjTvw9 vޣwp(k=ٷM@ l ߎ m=A x N)Dn%(uP [޳$v3! zWI8PmN-0>f=Dvr= v6.@&/o<[QĊ @Od \jd` >`be `Ͼn$װ6^N|@ ,'4 v/yo$ ޣuݖaŠ`70, q 96`V|i~/V*%@hBNx/NgiYp\3g aq@n л"Ûk {i.Kfl>ņ 5X-[J1ʾtKC)nm$/hۀ7l QAazG nn u)*ؐ-<  Xx+ ; _yF$Xhw_`1jp ĩ谶@mpߝV YmPG=Cl8/[Ӻ{5V Yx 2 p0 Un0rÈ NZ 8 0; `P pӺ@ ?6; `ޑ @ CxXL x0 zpH@}N RLɏ pG)I:L}6S։zR 2 zpH@}g\AA::Na0eNuo%`t30'A"I::4:@~<Wot>K~|ž8M _upF:xE/A#4:'D::mexI:x M.pK:> `/ (`0^4 .D!3J@bN3<@ i\ 00M:`."/ Pb/ `P0#^eEa B Af!@x˳bP(~ pK:>` wGhu5Gt@$GQW` sx ` 4`.z㖆s0, I@/ I 9NA 0@y s|Q(W T * u y3eUp3tg@@;`p 0g @t@Fо ! ! ېu@` 1GQW`)x/s*ȋ07܆ pG9q <D00@p3t@ |@x=G /.Ns.F @y pN 4'J 0 0@;.WPGQ##1 FW`RGrWv0p*,I Wp0 \>ʠ0 0ז IpPpp 1:3`.x  xPC ` ; r0+ Cuְ! 1 ְ  P( rP+ Cu Yq 8zp q8zp0ِ Ȏ    1 D~r@Gu涉ȉ05+ JAЀ@7sؠH 3@ ;CpHK.[@3C@Oy|5V   uP3V,Qwa2q0r3n u_<@| Ӑ0#7hH,I      u0 83Va)P@iwc pxc 00(-r  p up b#ِ00Cp-SuܶdV` 0+tV0?&6 `@EF:.2 HGx@5e \|:` BP0B@ LN('6wA6@qCp; }F0@|qC^|@p 8_y-SuF2@3p2ex]6#, DVp(6.80 p,QTFّ)N 0`m8 y<u8`008940(zt`脷ۀSž_05n;9V.P"z(E07@`Pb 6 @/ 6 H4-{pBxӓXchg   j Ѱ ѐ Ѡ OPP¾e y IH:4p 84lA0qv )xaG9 r; 0 VV< 9 ~߾C ià־_A]{k}Im `0Qx wg9-PF=_Q(~ee(pȢ:M:',A|p[]1 C#f~-P`w"[]pE˘1j~D6IA jK>@0/d(:K  ^P@2|SZ7=?7־o0w˨lÆIWWMwI_} ^P@X7n&`V>mw rw۠)4 fz= @I`FvPr0inp.00DF`  a@ 0ounnPm e s Pd%@.DF`  a@ a@c ubPr-%@PAI`F-ilPgl.wt0h Pt"@I`F-tomn rpuet0PAI`F-ip oe  rms0igflPnmP rpuet0Pqa nnp:MxflP eg@ho` PdlnPsPPaIE%0PQ5@ @%@'* mIE%0P ubPro` @i`fPrPn0elnPs PdNPm e  fdf`e ecPRc@in0:%@ DF` cPd%@ %0 mPd%0 Psq@ara'@ pPn.t@i `ieCnptc etPBdu@ `iep ] P  @   ` P@  P  @   ` P@ 7 1 3@5`79B0DP( p;@`".00OUMhT"NNPi  @ @8! PaP!_DPATH30.COMw C xi$QB0Ad8cEug c \${Ar$GAAK< iXo5 F;=;?r R {snTXZT@k\0h"2rp# uy] Pʔ(R\``;(>2;CKtVS#/A:xpsl:p΍DP! WbE-( <$e4]j`0D&\b S"8b TGK,PS $-$bZHbakt$0AȁH(VFL%RvU |C+p :"?u 01(BIM`@_"6NH/ P,:F(b{jrѐH%`|th@| :HpCEr@.N}rhE$HDB~@Q}С?F< 4(r|ft /1:z!t\@QA`#F恘g"'j B""p>,r -;:"00`0CĠkoN`83DD0@=Ï< EAXl^|$$K ( s)@L<0G- N  ?f$"a PԡEJP3:>AAJ갃< D~3_ǃXԃ"=ƙh"|8P@)8! N8Z' sCP6 t2 - d6 g@0! eXM02XܝPB?pA2 H+6,7 opve+2! dxnt0\:@ 5p. vCr]fI/ `N1Oy͋2cx`_Vưx51B:.%7OrKe9o1He4N(l\>-3]܀C>oz@! A`2]nl0!./oPC9 S \˥4 \0̡qBh*CfV(Nt8u.޼?/j@@ipx.}/-8sZ򦷶euoUvpA<({x!$!qË\כ =%n_a_x7mp'4aSPcZ;~pA\ ~qlLT@:00(5fTADATADATADATADATADATAPoʻp˪wEL_Xn#\W`ϑkd W6.N0T$$DPATH30.DOCVM NDa& y %$ 씑3'7 f@AŀICNbPM9 d9eΜy#g+ yC "pLq"0nȀ%7ctCGCa`@LHc(Gt, N1lҌM4-Gs|c5xπ2E)-<6pؔV2uY+/sмF2+ALASCyVDHMzC$[(lr2xpȸ5W4 nG~|e؈$4 8oQIu/ށd9'9%Tf ^=5Gm !?Mրeҡ^ENBXҩB7YW)>U|BV&QZa BgI)&ݶRieX}W?wOihTXjlNq(sv%epIu^ӦYƚROnWɳ}V#頦. 5>J.s I8AIH1(*ZO8 ݡLvhJ79e2+WaW12Ir`m#7]@)n(̘6e4)OEdW 4L rZm>iݘi/(PVģD*̃*´P$ tiI xJz 9PQ)x9m"*Ig [#E1N#cRv3l2]N$#MQ" Ä- &MȌ|9>i1EF{ آIpAX` PW^vV^`!əʞjuH@'Cp =2K$M҂x);ʐ1!+-#SڰIlhx. S rL0'G)/p*mƂ< eA@&a~'ո8&RKR R pHF z22E""C䔦dmeG3Ԭmz@)i'7oGyr5(~,6fBIXE(3h~ i{Ff(6c 09Ǒ$$B:RdpH &TB$W,Y]#ȫ&۲ {Д5U5SٲWt9|i`KY"<+rmV [(dj"Z㏘93Y/ji]2?^h",>[ں HC#7GY$Xi4dM瀞ІC1H@l# a$m_GRn _ՖGP+4׽7KhA_/[k`,[l׼㍦ 0?6, *`, ;ep\V0ۘiq IC4 =vH `zaXΊH9>;{,;wRR0Lg>@RتW9x ok3{HDݯ\!Drk< trt\&d]A:Ï =tRRbK" A zr)Cqt_vU#.hTN~p!9nX* z>şCq>z=XN>rLP|>3Q"FqIiniG<.\B$婅cAnHdH"jc._܏$*%.fx$ib)zӰtq F%*2*g+"FuE܀,[)xp!+,5T\m ?j,*^5Ax'4 Dبn´ԤĠx4,:u9Lzcd jiRPbo*M[JJެ™)((a23N!Tclb_f uPƕL):$@^sq*7EB|nX<ђV4w4:CBʷcˇKPgTs{DPffjķ4 P4G>GrFC YP@I@)0*3GC/A2"G"g5nE!^ s#wk~ Qv!!, 'ZxPduo^eyqEzu2\Q?6DqbR?|YFMFk"MiCDt=$>vlruE?PXX`flUnhK\IW|2b46u9-)f7\&1:4@X*Bf$fQ$Xtuv&?':KY2}bNbO M@NDS@i>DF9)g!-W%&41FQre,F&BЂ.0Oa\3u,DIitf@tE0Q/AIQbHO9IA X%~Fp6"w$'d^ Ip3[BCx4'׌1v1.]yuJqWG&RrUyyq a"AdE6x4SM3WZyEUu!{'R)?#`aHY~QN}aaY]ayȎgbTjK3Evpfe/[b`7j;R5SЃs265K7isÐ9NcI9w_VU"gvBtgI]2ZGr/3una!Ftq^rҢ/*r>tFaAX9^|q_<6)"3ypp]Pt23EKI-E(AD*ps[yqnşVr:rD;*{7=B\U6.q1OmŦ 2hMqqPhk`Z1v)6,/.rɤhT\%euM+l@/a19./[ZI9\'Tj1LL:?HgeF`,.MWt[8!z 2_C$dBɈ[ԁDw_o:O "crq_YɍHE6%'m XYJw0YZRJq5OeVEҖ_%rzPg6ȣ%oT67=4Ҝ2+*В,F.c"rlSf/`Zi=1Q(GpKd  *f%jn, LW8y3ņ-ED#Z㢻&JC$5Iu~拚[V%Bo03xkUXzc_pz-9@(u&p}v$lIa bm r>Ja00(=r,eJ|a#&HTz8*übW$m1d ~~Sq2-rO1tܒ9w- 1ylcgF DMF\Ig}3@A˛Tg.MLr0SL\.V S0I>.LcH(P\2ak.ylˆ2G?ӂbPɩbmFFT|(y:MIpR c,[a|q8D$j<l|UI­S{Lв(l(9-GPͮ 0,ncYıC4Н+qohrZ2ET :nVQKf'ܤTrffc'3a2Rs[s*{bA2ڿWZne|I|Wrͯzs1 9A!xA Jp3Cr(<J́wZ'`O'0]z2Ai-@P2ګ!+*Rsn,W6&%f0>z+M,tUQ1ǁ|1rPCMD7WU 㫑,6ךϬJTUWt \<gm)-4D\L!&١̩R}W11Mč Mݙ'[DkP +f!J+'I$cϭ-cy0 L(*qh4 FFzxLЄ_1NKP.5Ac7Wkl`/}:o@+̄:s]-C;~Mc0qlV,gSMDy  چQZ|_GLg}'N~p}KP'ge$|*.2a,Jp/ 68PEDIT.DOCOC{ M PDT 5(B& U攑I7u°i4nH3gtДѦL7rSnj.(RyBN7:(D.e 4lʸ SE9`Љbݐ%Rf9iyfTH@ 8w@ bE^&YxN3eR"Ĕe64[&3*<>G:4 ˉ1gAFtd B8q 9n'MCaBjCZ&mCv9tiSחiM; З(aBw ]GOqVF)`Gt+C7Ipd'EkRGHզ@@I!F!JtIXaёT0JxPW,ȐD쑑v*|hJm$bG' @%Z-tIB+آSP=BZX $et`QsB\1 A\}TRyDQum*` cPPFJN<juelҦsPaԡPGUyW^]VbxuvYQGpqwl`4`R4aX PqB4+ A"yvI JJlGYfVVIdJE{*H6%ۖ1w\;QV#9OLq]HyE1"^8&hodP|to,Woثulg% H MGtnHh.:\Fu/Ml zP&u^igE<&6M&oAsѨ` ɠPGDltF`BHebuEQB!ė cGɑAB/ai&Ig]st,9/)mbAGWa]aO~`d|L ߁g?܃HCP!y 1=R4 K◹&i/ H,81B#0 $-2v7crtD!kdg$Qe \(f |UP%!sȉ0h OdNBd/*p%HH&*YCMLVu%ᰅ" H=VƶH:b ֆcT?g46#KA pЧf D'}C|d@Ml͢ҨQkvE; "l!RH.(na[Z̦K4_/QrFMk2wR Үs j3CIĝWAyPO7!cE)1hb54Jc$ ` yBFdr $`Dg4ꑗB8(I$I1By 6Fn]e$[NpcP~@p0)'L!әjU@@ @;|dB1EA ѥ]m-$9i&-#w;ua eӯP@ \EJӔ9կڠ:#Cٯ+ޔC6z’Bڀh˷S)Pn0,b9sx@!Y^G?աuϊ+]ei*d٬R=vW Bs'#lks0HT"'yrk0}?lHd-n"-t(7.!VRpXlh\Asa Ur4,~IɊK+[Ɛ7 a_8ɧ?>$;: J{O }#ЎAr(8 YʼѯU?83JW#\*r6pxFw/ $%fd2-O[Ѕ:BT?Dn(~߁d Ȑp )bDcؠ<#1Pk<96E h.!K4+`2ޑulKI:b4t"*jKVeT2൩\}j8sk>n3`/ q=Yz"I>q/ 6~.?*cJD MI 8 w x$à $} Le$) ӓx(31oh',%3ܯfcAbr4/E£d[ Ҡ 1SqlYU5я$"aaq$6s, d3#Jfh+$C\4-#@j{܇Rb9Ē]4ScFʄDJX 6ub)ܲ<^L#1:h pf03=<0E(&8IN}FoȠRy0&ܒѓ0'+2$ 1 ǼƖaK0ӂ1> %cRg&|N[ EJ!j͈Kn2"'{f '"$A>!_Κi Rs4LdI 0x&<\rzj]dB?P*2ЌCO!L=d>B/N))!7tN'CيEXf0!܃jr2F&~b!+RN10GnFҎqgCH֒}A mSy ni J2W=z %A"Wix?K޴ʜ~10HuNC8FА/ h~%M&u>N?qT.!Q|a-HvaI+q`b/ B&*1'jZ> qCBԹ+}5`|Ӥ$( V\q:p %`n'tDIK\p@ ) e@-YcZ !,sDr@2(FF7q BZkkh1֒A6 =)S-Y'R\bH5Rj!:΃oxCA !W:$RG"@i3E>l.AP Dp P8 DVj ;0nCIcJ;Ez}[z/$ȭ7 N:^y3ێn$x3Qz7 z+ zfH::7Y f."pDDv1g\kFxcX5IA \f~`+P ewץB 8|2/D+Omgm +IPP$d!*#`I@K@P.5.%THҽhP[J^!h K(! qкm =½eZXo;C0VzTGmѓ&7ޗ iuF}f,L{2~%6`b0faVPFb2Q:Z%t&bz !{(q9OQ1Bq}re#R0np0 qo,)C*A0*r*B6P0̂,2A=lp3+{e+&=V!f#sT$:q"ӤLSTX.EXECj IP < X$ `Phh9! Z .{pbț6m¸!$KSʙ*p@$D9rܙȔ!=ICďHʰ TVu󦪙7uf+ۦ3[1L6ezed  bpa< ((N9 uM$@xLQ3a!2t): 2=` aD4fѪ%% 4FM *oހ&OdLI3ݤ)o)M2\ߏMS'i2IxĆ(DT/HPB4DQDPPR-p8JrHP+a#lp3b@|(*8".(#%x@7*@|B .YXQBJ&L2T O)cA  $Zci%t(X eatdFCmQ'|j"DE Myt!YIA^:ABT@sFPy DYyjl1jUT{Bisl@R矁.PV)ʾ,ؾ!Fj6'ip BV[ ;$^fтIa.,ezQGn̡i*Y6+E B 7fp싔ŐّZsF2{Ҳd@krX|Gy\/8GUoiZJӡf1M8]gqQuFhn-@ cE$R,7@ *lB2:0A@z"G-u(Vh? X /@:c0%H”ԁ rSD4|$]:jALx[^`Q "D @L7Q p'it.0I!UCD:P0h @6h2x"1d|8GJ)IG&#A ; P>Älc@0 44 t(@,l `*b}H5t؇Va莐u04A7Tz*p $zX@2 _x#w>  pMpw`/D@? OS@P]1x:d`D0p+x1 qWAUh  <4^[wJ@8ۦV?@zxA?,`SYV9|NI0 J0 HI2cmL`h`WB)Ƹ B@ B  bA;x`xu(9F5i-!w`"cu*h"\d)0 舄 GX LE @;@ h _hC7-p Q\Ӏ.FiSP OFp8hYî~TG;l` (:f6da1 t ,}0- @#Cusd 8&Vc aD4>)pp$、F<%80:N]"P?T800(MrCMn `Af P @>A") C7HFBc] !}SƁUuE0|X@E/%-zQm)E‡ wx͉ LchjPCLʮ %H!D,EMNOTICE.TXT$x sJgJ &4C 9osaܐ1et4P024i r |FLeq9"3oH B ZQ#K-x0!rĩ&0t@)fNXNA1BJ& ڔi4 aǖ k6`,Yٲ :eVIc݌< BeT,2rZx1PBEA`1M8`kmM.Ĝ:p r6a\ N2tШ4 0Fy" ф"h(Ȕ1n΀5dm5&iX4[ML!eAڃwѕ~]`0eUWeF&&y` [Se#yȕWxEY]u8b\sյyr@ 'Óե uKlUAIyXvuPnF QƗePa f$olJ'y kZ[m\4YyiqK|aOPQ $Vv05L&hbBn!HsK_^݁hSuTЀr9lqǦ2SgY1h_v# S`j ԅog UBD]R Qu9A<Aˉzanqbϵe"ܱb-QqĠ|1ÚC0;1 b5M#^g ᝵Ӗn0Y\'- :CxR?TI 2"$RUUMӈ & "RZib HH 0Xj(J* pK>HZL*cdzJ"gGMX6`0h!!ڲ6 hSȪ&qD20 T"UpsAd1&̄U@ l U*xDH0( P92`A @ m\2!Y$e[ӕ&1O5 *Wz%+Q^~i -UHFA/J戮 ph.̔xl Z.e%I_ɁoUʫ 0r!(sH-E#;Ӵ&VΌ1$ߟ఺Qa ?SR1\F0yy}॒6e5͒&#Kl`ЅG zPE(1ΛfYe` pyUM6"RDVBZpf) 2Ow(ZBZW$fRń+$MJ`9 wD(7nCp /\HO!+r/$0&`Qȡ𦗅E 4H >dܻ F+a_U`EE`mC`/2KPyM%uiRsd"7WV<;D1Pal|wN32rq,c5[6$S\j/@BW!Om0lI:a5Y@av.`pR C(HSMx#AG`I`2N,*YcȡqA&Ybt 7QXP=aE!dCRJa^J=g^RAiK\a,B"2Cmă#nam"c@,*xaQ*Dbsrs!^.=%z.2ga9#aI EcEqMta#Oux.Q2xl:@"߄7"BaZysB?'17$J75.Q0rYf&kXĪs8'Y kx k&D}d*;1Dg83j:'r+rQB2z ;iHy3W!3G }ZBYW_˟B`3"A6lAfrIM6r*PZ[wYi~%RG(f® u8"~1!<8{NBO#dYfni00(UfTADATADATADATADATADATA1Wc(BB{ag#[Bڿ)d+V(b`Yi"ÞBGCjPM8` #+D/Bqc Q-k&Z0O:LP<RLDƸKj ,Q]H1tСKJ꧖;BordAd릍![qAP#3N$~QfDPJ:rI88Kb&ɻֈYQ0ݑhɕ勼KSGwo`^YOϘ{؇ .مaX봆b`*UXbJ@8iR\X>B4.5Ar2c0!N4Ӥ80I2uY(6wXh@M&r1Culs!˘cr%=~\D6|5!Mbd,fp섃u13FzRV7V'6I8$p`aLj3+) k0)b+:cA&wO2,HG\e,_cV2g8E g 4 *5DF]L>GNF?Z+y#^ !pXR&Wrzq=e!$5(дuBaؕZrYo\DT<"u/N-#7 jHR._vZ;䊿'lAQ<>I%51壡>ןRYX.}S8>Xa~-s55;#rsd%).EUZtָ\$8AԬ$~1LײY:s$DJ< ?]'QyK{:gE(f35d~<.R+Bȋ}N߂7Rā]6kX\I4vcczO%m K8DY-wpK2,Os'%>1MőA qѮF*f"/`=!,R!aK4IŁ2("D.5\-Ea|xyBAe_wf3/PmdD _ecDۆ@#4I ~ϯ>Ӟty7k8!snb^]_±-npQZ-1c" - .2q */ U*/E<ЉoEPm#E^#f4 V#(#sV6[#-,wjPjed2=:69P0R#ShfVF&3:Vdԫ#*C=!sn>ͫ%Q%Zw1$nR+nMwpa[g1ł+'FEp;O/PyC '+;.O 6Dn-daa#^n"B*iDS8풓D PUa3WG"e^D`QX6A^DL]?2?%_+%em'b7]s*ՍZ% J^"$5I,i#|+bKa5n7n'T=C.5JZRoā]2yMef8$AAz2*~2r3V\^bQ'$LyA!]I^VS޷+Ⱦ,DLR]į?-M.GrEs>LL5 . 7!$/q7!9BQYB8eU,C(>W,dן-<7=<M( D!07Ӹ[_Η˳5r949G&Iwu1)w#71_cB%_9Gq32'!mrX4QnֶP C fKΗ0xҤRZ#)Rp8l@o_ljqD04>j'DR)~(@)q>ƶ2C-x%R+M7tEi},Aq7s '}>dRZ#)Rp8)H1Iu%+nUDRc2A5W@0al+3895#al+ыdjTqDR6M.A@: PB1.~> >B@ZjUeW_‹$ǡݘ7 `tdR’_6~%<ܕ௾muOj#qX5}CP1W4 &c=q#"#U(%A(Ms CPDtpPMh7A.F;CR7ZjU̯6$R/`;ID̯6wVsXүD#5 x| >;YN]uɡu?.5:3s 'Mj]=.5Brt3Do_H]=$C џ -M0&c=7i1=5 y)qO. Sý%i4P0:g%6a%~.b}ϯZ, VRAdβ+5}' y)qwѾQ r-sH'nAB>bVR0mBHSPm}PPGqZS@%S[%2udR’__p $2>Xх]ݬT70(]eN8C".ē_qZǡݘՍu}U, ZĨ&0xMCsBm;I%Zgc2'#ca$KYݨXZ#d_t=1w)> ~>ҋCa!P[N"s'5tuڍ55NAr ۶2Fa2mp4E&!,%"1#n@Q/8cq<_)C@75jq>*'BsR0A@uB1'p1ZM C9Q-N ,@-A&_n1h~'&Irq}pn(dzծby0a1.51LN(I'0/nAC!dR’__p8CdC@cAJ[aZ$D;1aDvwp4O(fxӠ3I!-saxzr[$Սu>r`q-=5_߽mARs,[cLq2v֫#ljq7I >g'Wu!9B+m%<>5C3&Cm;][$;IR}z" ޫjm=KUඏ'ZuIB٤_oS~u(0C;&XS6E0T~A(vDe;XAbanD۶Z-n`H~)QBZD Vu2+Bdt& T?q0C<@ccOРE@<@0ijP ,eB*/pq{ E` qr qY3K!!9pE<pd6$`3*o@)C"L8֙S45Ǽi&2.݀SNMi怀a: p0FKB*rSΛ:g\E7/2mMRs-#c`;0rxcDO7TfH6c@S) :eL ^2 1F7txL:iܜ 8 ю!aS:C~~& 4p\D7 T׾Ğ I˰)`Hn> }Ť3e1s Bʛ;sJAg7|u'}-I!mB)܀sIhhI`SG0NF@f$O|hK81UsIQQ'ND&eO@[BMQAeQs\'[IA-yfj Udpa@O4 M@ 6Drl=Puq!q!fqi ag,ADBvn$ gl6Fy(EGJ^NŹт A jmA=хh4*!صٚEPs ́F6)@DCҲ Xh2),m4dMNFKVD\JPiq`!PB&ڔcY@L!d,XW*WMRdα)Z2`s9-U zqm gOdusOH-`='ˆYUu[@4X!Qd, *: R"=hX Ye` I$ jBp XM'!e'7h$Z咰u[ A]CZ '9!^5i !M( phQ8%=J=D fdY%fBIdJ:'u`~lhbIҸ$|&4*MNlh);)j4Ub)x*cǚS)\Cxp P`ALRAaM:mAB}9da>x3. rU@€u)pMJYJmf2x6k yۢ6 tᷠ-Iⶲȝc~ v- NV@(\඄"PZ0K7 WhSSЗʹ<-} >U4I_(b8O&ӓ[6u%(! x0xi`X0"k2 "[|2ܤ&!t1`"@0.& hG`RDu)F,')> ,&i/(e'hfleY/= v&h@"O}w>IfֱP_P`LچtP" lblG`舄¥ zkĒ_gn9$h?=}2 f)²z.⤡0߽<&H06xd0$ Sy?5ُr*%BKD?S Pΰ94U R8spB*Nܴݖs t AD D0im0'yi":ұtJ^9f`K(oa[ =9Ł`hל2܁TH\@uPv^v2Vhފ4τMqj-P1+UBB`+3jRIro_p, nZLJB: `BFثw˓1FP>$ j6XХMFM׶2y.7?/x>aQGa!Zt0@rP,$1%m"$K)wmP!ǁ%?'FI0gr'W G .1(m{I+C8({Bq%fLpg17w#K<)2d?n1 ȡGVRb{LsZvix8^65}XH (d(΁(Αt6It!Kt2O.!E20i&Vq=D bPBiZ#^zI OSB*]͑IdXDS).xQ6Bј8E-xYX)a;VP00(efTADATADATADATADATADATA1qq%n(#U3YeÎ!3h@qTB'1X#G#{GTa'R'5, A}+'icoPGa(,5Bq!g{(?[5Uq†s SJ~Nb~gEu!*'7'(-fQwP!g"V}1[2:@4f8Y,;ٓ*[5,;0;CHF9S5 #jf)^URXZI-ѕ!awfgi))HբvuS#hmwb2ז<t'P(v5>ay85L Qmqn0A>Vu|7>k8Sa~ ]0V4!_=Y}i0Y)*HPbky߉\≄r!wO0Aٝ'qC49B*F0fsTmWr8VBf$9jty<$su4tHlB  A=J4 Y`2́07Wѥr,`e'\j7Vu3lBi2gnQN 1F1uQ:5IP'fVq!lF"6xa(3bn%nР iI "\A@a"ЪcE38Q$5Yd}rr!j^Gɢj*n7p[j?j)&*.R V?Q Z%kMmU4&|u!u83auFaAjU O@:`ʚ47w*%7y(~?1m(#@/ر*d1!d Sڮ9~uHc z[DDZ@jZmE{/*R{7TJO9V21aA:K{ z0C5pfë {#& T6~Rvt]{ R"0%y !jur!LfڲPZIZ:>{{Y7+Y&_[DíV+5!Zp\54Z:%c[rڶiOHNI ëwQ Eķ;{V)뱗AKEJ '; a@!126FW|2aksBkQEk2G֢M+ٺS!;X[ZJѵ[m5֋؛knۯ+I{5"־;KkIԸP%h"f' )"/#cj57#R(S]~!qmY%q4RN1A 3×t &y"&cW_0ȅq-j BG`kXQm,ZF))w)d0@)xn6znW}?PIE.BASHLP#e kM[% E`)(I" 8@/,@N2 )S3iؔqM"v01 $ D7!$ :!APA QH Ta"p94`H`T ,16@`":~ 1& P3b$*p1gTn@sHh $*P )@8U1 8 ):|` j`07I , NB,;erYգx*Y@"T@:| d9Vl(B)PC(Ă4HB5Q!7L`K9IL@M`NH9Mp<TUpStSmlL`[p1:ʝ:I2<>JEUN9K3 a  x.`TC &i@1Xp$ CΔTiL 0"X:@p7a]4=DG'YaE(4EdB']a )S5fN*4[=4_3 b[C DɧFTAGljU@`((CDfLx1*M`"X4B%''SYْK#4fZy%ȑ"SX $$X:!(*YT 5a&HE@0q9@pw$'MBJ#U^)[8g䚤, )2L>4C4!&=b1O22y2)CA"OcT@qj!A$pxqya>7Hi b:3~Ơ^gBYn PCLEW60]TW}%xCmVx\rS,R}!)[aFFxuoBQca؎Rh` Q1C KE|i.% S$CIH&gaBئNe $^[2pxhofY^( iMV%>he CVIz^8 \.4|ͰDQNpUVA9ٟ? |r" ["c36 C4L7jKр`"Ɖ~4,-ښ[jۭVzneOjvZFðb  ^ 5L[F+ư k` vS 8WlE0A֮Kp7mXQPw4FZä_dz Ы&@\D Ǖn!=1DsS4,d6AKA.CMDCx LC// % Enter nnR or nnC to insert nn rows/columns>%AR %\%\% AKB.CMD kx %6lQcG 3I6p@aCga%e C= #g IQ 2r@4yC=ʸ*hF_mRciSM`8%Z9eQsN|-3N7n@71uQ ܼY>J4)QEhAKD.CMDD kq/G %6l1cG$ SF&oȔQ?~`,@! Z(!6t %Ǝ4B2PBE :jAKDA.CMDT kp\ /F4P&0ذEƌ9(N9 !SG" JpYb Pz2F(t ˗#{@9PA" ^ :0ANALY.EXE* _t M % _!@&$0rU + chb>\tc 6@J< &.>MuhK>J)ҘC<+SPv2tXqĠ>Th%\ 8mXƚ R`+B1#I]SwQQM,*"`ejCQ?4YXpuN BI M}1ص><s)U|"U|U@  R=@~eSREJmb2-@D}g((sJeJ^v&"B2@$ T` V@.PC0PE2 3Lp.k:ff `2BU3 4B(X?IӅS@v EiIS2ȴ6©LC?6h$.<$Hr a(P@;d6@JeMC|rڇ4 䌂M} mJ( >u?ʋF{xZjZln[ GtمWa1H@hށx$w魇q{U{?3|OJZЁDDСCq Ǔ{@@8"[0f[KС{ÇQpSaJTKh%`w4Nx `O350x`TJ@wKG2=-PVa4wd}ptP$tTq)֌z ry#W]y(,^:i |REYdBT460 9&8`/I Q.,#$#) Nb h $&&4LpA$%!oRH?܄ #H X(!tt@ /(C4D s8 ^L_|BˋEAxE"HD(q@ c_P$"c 0$Ў*#$,.; pS6C& H N 7.QOjDB2`JH _V22BIYQf( -eNZ@Ji ( 0P1!ЃId1 >3tL \ JB`;`?@1&=sHJ"9Psu1st4P|39/kDi}< &q4H>YSrMbfC[DXmWGt0`I1iuL(7h (MvVjiYyp`Hk^Pnt ^ ]PCd@87) v PAt6_xѧʀz E9 `(O*4Ⱥe-󁍣X$erXj[BȌs+_Vl| o kcn|c _r HTI!)Q*hNӟ5#"g&;PŽV,zS;SX&Y֯NQ3@K, b#"GQIWWX[maXuZYkk4f.',6o{&sxf-ceM1OwXB.YmDDgMn7=e%wFD;(`s,R?#%>0tFtkxtĂngrY p6|n<{1a4baq\d{@y#}o>ym^#@~!h cT;+ E`5-dPD"GwHMvdbRvTqCHW$vzq7=4>^B$hJ_A-@GHY'o~(CTAamV@N(1A8PЉ7AnDFAP=@8e7d6xZeWT_C(=pxgh討g& I׎8'8 pK (00)ufTADATADATADATADATADATA *!W61* 00]3 R?Wdn -]`Y÷ p@ -@gG  I:I%q (YK؏~Ќ98H<T$GPqs@L@tO4<6C  cg  bL y - oH$@ިDNjn .YǘD{ilIָٸЍH9}eehDǐ  ȕ[kI 9yHK)')K+ْ$+3YJr9ⓡ80FJ IĔDpRiPWi_ɏLeyxItkD`9`:`#,`K")]$I$i s,t5 >@%W^> M ->FJt o"mXI@!1 pMdwE%/W$uK.zPP\5ʒ. %w68y П^ tKqc}yI `aYPa JHI#zI -:j@J8<Ze\Dzj(j:a s`-ʭ b*z/;!=AC M)oѤmcbQ:J} >Ij~`E~`| 0Kʎce{v*j>L `Z($! d8 >(2O 3 E`X&W4d {@NÈ 2V \Qs I;T3AVSv9 n7 `=8I 6 6R cAM;IK EEDg` Z+WN;l (Zs `;k#{ -p㻎 I+0Q8u##`ȑ@`+;J 6Rp9z`p18ۻ; Hf VWܒiu@ U+@ ` `IT5:5dpzK] ~"\Rh'Z0Tp}A{pt@ 0O $p ?%Ҁ†eLJ `j ]jb)  QǡRNX,7VpT55~`RIT#Pùc-e6R#S#=P'6Q b 0Q e^]P|Q#^p0*MK/2nmJ])> !8A\4F}:@昒?  AZE:<lǯ tՠeR3a UeU:\p-݀.ƙ^=Q1Q0n0[ͰFS8k99(.Ǟ˞̈#2Q'~X!9Xᣀ D~:,i9 :`:}<Jy /iuJPǨ ^w`t0  Ψ)Ƿ ò*^ۺm*4-.?1X@ Qz1@*P=[PEozJJHC[?Jp[ |OFU\@`0N!s.t ܀0~KJNM7p@c>PɅu鋠YWAv< iXe'}CcǀW q4oup  \6)! ASP C@_/`l>-PUM<q + $)A @ $]pz.OR@~lpzuѯ2`:zb J|ppp@ G G|sq ` 0°0r:pz. p NG*9 > pz}NcpG " @cp-* c h P4 Npg h bOz~)b DP/ "N #np` 0  oĂ` \؀ 0  wp" pI7S^ V"p>R7< wI2 wI(sn'p@G 8   k>NaG,"|DḠ  6 Dhpb wpBpIbwdupIDh]u` 0°0v:pzD, p npl> p4f v:pzPS4 G` 0 pzԈP-p|>` P-p|P), G pg}`0(nҀ)a o@s  y-pDi2 `ESs@O7R0†Mx/ ˆ( ˦"  &f& pblfwѸC:B$)]ƸGNaafppTpPt/o5f3dpykSǰзIHkd~NhRd~E@ p*١ Np`C1PeA6u {}Xك{ X0 OcGuA{k}a@cD&}#d[iշL&_BpIWwL&_pI4-;~w0~deP` AUj` {}1١ǑVL |O˷~==A@AV1uIdr(@F7Z00)}rC:"ь8CMG^&<  [U:pMg>n^N0)^:z"N$]ppP~wX@:>Bo|4ϟ=٩ d虢qE g7*O *:*O@:>Bo|4ϟ=٩)A%'~f3dykSǰзIzD{  GN!['hNqDNaA tpb+Qp2ܚ/}"#=q[@( ~mAHk$ -(`>NaG,^d-&t*My-"$ >I"_qsѸC: pplpC@7ZNp]$p REVP+obA Dzpb]{) iDP,t+ƃÈ&~ EC|0ޣ龭uOx'u:u)A)ef, .O0pPt#"S>OOtp>"@`oo,%pFPD!SJtPP#ր  00@H@|=il. :tp-@p[@ :o, :o, :,o0 :uP i u$ ^N>؏NHD :uP i<u$ ^N>ؔ> Hd :[xH~"p!: pyE u,ؘ- ţؼz 6p.-pɼA)RK#4tɏN|DOr NlNjqb+~5p(0 8 ~`^6d~E'~^< |sAf6u {}X^P|뷢16, <- 6h-8:pPtc&@:pP _/\:Dk#@)߄G}[GE3PNR1 <G~`jG+𹲘 1&Ul&GH ʊ&S)'p8A< E`lE4PF-E[iEv -`㳢q  Wg'7p8AL E D1PRI K1 @9 H ʊdAd>+P $l ~z 1kH ˖8A,u`(nVo|zvS^Q+@(@g'T`8A,A Pv}=:v.sǑVL |O{}X{iuD`7T[|$1d:.8`s9#S~iuD`7T.89 \99<9u`duPoO/UMց/O/|  -`0 8A"@)ܭ@p`@D77GI7B΁ N!DNOHuIAE`^ ^0 F`HD ^@ ^0 F`H0U}E/`RPU}K{J ~ \O,G/`R@Dy{ }G4` *7D4eSǀ |owD{ bKgҀ)'G4 "JwX n(Ǡa- @cp@1+@cp~  9 8`8 7̕  99S pn ͠ 99v@`r p4 0F1+@cp `~ 9Y'p~  9Y')P@7R @{TAuI) u )} 0 R ~@^P`7܋STA&6u {}XDP`Zr4F |c06 0r`` ֠ !p4F |s06 0r`` ˷~A}C` `R`` ;p !Xr4F |sA&8p6зl X֦+@cT7dR# V}V`m@  @@ L&_ -V' "N n *dpI7L750\,(pOpb@7^pP]Ƹ `N n(@y' '`wEMk:F^:P5 `N!TNaaflbo\[Z`|P R@lddpP3lp  f1t+Oh/\jGX]+G, nK lk @҄Bd-zhq 0 !3>uI@)` !{`T]Ƹ@C :pW 8^N'R'< ~+!~pXAGĺ(Yk pbDJtÑ :t :t48\'=ի&|޸G,7h6sA6u {}X݄W7rp( 0  N K/OwR C:>z>td"p  N MgK/O&`  +1&Ul&  +1&Ul& "R< e HDVG7BPap 0 0 < R:<  dǀpP~@~ Od @V7O(. [cI蔐0O(uPuP!N @/N @[=ouV}MPU]<@"T?nCI7j\Ҁ.WuIl(pPtc '`wEwIj   @y&{`wEMk:F:P5 `N NaafloA uINP)+bpPt T @"P*bpPt0t|$ 3 + ` @ 0°ʊ:GpPt`jТ @ -pu0;r  3 + `   0°ʊ:pbpPt+` ,*ր \ @b) GbpPo!Ed賢q  np({#0 ~4)2; ~)2ED+~f3dykSǰзM{ XB@Qp" + e-+PeAҹ8c9 \99<9 .* apYa8 ^"  8  pPu8AIfpb+´[۵pb'n( uj `p@ ['hė =$upp,uPP3msHRmp sP3mpp/nA79/ut|" 0 p" 0 pWMN  AnCIP;j ]k G, JA ] G,A `N G," n(+𹲘 vD(H`H+Q+@(}%~z4`P@ML1PRI K1 @9 H ʊdAd>+P $l ~zR 1kH ˖  u`(nVo|zvS^Q+@(@g'2  A Uf<з@pCP|ޣ#Ekף#Ik)=;/q/qCI[OBގ rb*GN @yapP$LdN<AdNRPU]qR@U]<EPU]<uPHMPU]-)B$uh!pju91y7`E>``!> @@U(N@! L7@7pH`]Ƹ `N n(@y&{; ^ktlE#`E`f30dף#@@@60 IK@'jqs CQ)6 CVd~-p +uMw } d~/BL0 rWG1<P89t@7Ā2@7ƀH>P2ƀO>Gk>ج{b+MM Ā,"~7N*ա` pj *_/'&\#g8 @6*<\,UPA_TD1`xAOwb1?L ` Pi؃~c68H$]t!nyoXF\8ʅ@(G\xPBx\PXHDG SAc }Di5hdunW Mڠ%&dZ]Yԕ̛2vNzsx@$ c(s40uEɛ(Zm1:9ZfW>T Zu~.VGu1E>تQ4 +:Lq\dk("Rت=3̹&!,L.k@QN.k M:s<~EEbeAX4t@.3_t7 \D`:cT|}HIrP~]Hͭ=31h밃cl$/9k/+r <$MpBCd$X RCxP:۾gb@X[1W(+}<:x"tLAcU,N fr=p@eDQ^0`Ku `Cb # 16 N @ %"HF:L@Ѓ&*[FkI\& aճTf7p3VQ9yu,(H \ZЪAb Ԧ:N ZB 0QaTRc_5BX k/ 0r0gg3 Er~BO ں3vvq d$ GI`$pDr Q<4N I~Yp@D88ؘ1) r"9jwsY`i:YeF0{ { eC3X t:=\Tbfݯ̷8~)dINGBR};\a>&oFLm"[0x~c귖_&A ",6AppK СŅc`Q‚D_Lπ* (Dd 8̫C68<>(:<5":YBp;gpDzYx@dDqg<]׺^LA7.Mb{k<0f ?Wg^|G{^WDž`t3_:i\:vi~}Ybi_{g? p{Pׇ~{OH x (wƐ" 䟿g?;0P럿[s7 ~ 0 `y[M;iVFr0pQ  Kg} E07%HlāvN@fqlId28 fh$hGxG+vf/(oq5H7(Iqq~2ׅ>s,ZȅW(_8a(e|>q$qA!M$`(d pNVpNP(r8Y1;tpP 7=OU(u9z 0"G) o֧2psxyVg!' lV`iݡ*~pF@6 #] rUà99#:A  =@ AH$*]Seq h8%XH93:eHB M8 #ա@ 8*C 0GpQysqWb d EGJ)DEIvZW{uć2u` awd}e#|n7wuwwQwwė}}xx7 ד6HF;W C|7zwz>ze |wjlGwuUI}WIq|' ͧ{{l9}Y'xqyxs ~ ~ ~~r 7w l|0wՁ|iufU̷ew (}u Ɯel)Wuvg7F` 70!T|ĵ2.%8]wƈ]Uru@*Ɉ 8 wtPIШ2;qkP( &+jpc (Za00t@TP8z +8q GJQF*LHJh6F`iWSjUzX0|yУ4,zj|@06jXZ=` x* {ʨH G i8zjp xj { Q z8J>z: x {*'o Zp  ~8s pJl~Ⴐ p>vl{6% q6C: '| `p9uR : 20ڪqzS PpZPzpK "+q~P A(GFj00+; L1wV {/ K>`ű0~` ې P xAWˮKۀ+ ڨ oCP6 Nrkcʚr+K𷞡q}V: *{ 䰸qk깣rkt[z)8gtqk! ;CqJP=3ۼ 4p'6q8հ";۫a~ Q/ԠZ 5`ǟ=m =#,k w PSKV" =P~ Ϻv k ƒ+K@N)M z=`ˑ F`X*-3kx 9x+` ;{# (Ŗ:(S  ?κtaւjVfq6guV g9Ȩu0 O1 0u dġUb (OA #Ysq I;HriᴤAmL `fM,t}1md? E:A2ꠀ`\F bLfhꇂqfA :Ԇ֣R9;m: W1 'd4qeQqeqqqTxt' ; *|~&غ֘g~F؂::{HZrӠ !g PVf01Oа(101 2~v2Q.h )8r 0XoX=!* "Y =~` H7G.Hvڷ0x g2Qߚ`ڒ\Qsq LuAz2~(gOpP/؋ۑ4C_ܟQ}&;$s . q/ސtP#|۪ sq qz V')9M}Zmi@B^DJ HQ1ʌjЬLL$IPt@`uvkA\uA(rc GxmWki skiFF &˾SA"e3P3=`B  κ ̭fXው Ȁe#9I(2;PLĥE_/PB\tQRoW{0N.E_и`q4)> b]wrكꡱ꾊령>n> מ>~` Q-d#P(\늎jea4f~ ,_|/ه]37v#o3o?Co>@YuPI%$A @@>˿([qP|ٟ27L%\ d =.MM@$dL6 s0 7[A^q#Qq 0 Տ+ p(qK @$O_YT9Z!R^AA˯Et]('R!Oˀf pa R0/0|0.@ p  Zbeqfpa DrKyo}`Pa\ ftO7vqX: 0 X_OT0 Z nXZpA@ цк5պfUsT0 v%R^AA˯EuR"!Orv~ 9iP7ARipX)>(؀sPR؀pRpXtX |P/1$$Xpx~?} ) P̞H?} )uZ  #;+c`>0|0.@@@2eVJ ~``>0|0.  PL! `;PT2OX_˿} )uX]E˯X X_˿} )uX]˯xX 0|0.@p UH؊t?aU?Đ_˯ X XJ N(?@oo@g0~ТB0* R @_4P Mvsl pώ:kg0~ТB R$@_4PMvs.o>P)d p"P=$ POL]~`NJizHG rAP^ u@Bpp)d p"P=$ POL]MNJizHG rOݜ߼@ .>PJ/kk+PA K$ȣ p0o#0 @P^  +a `-ʝ>` ~@ K' @]+`Þa u a ta ta ta ]039,́}z`nN?#oE_3`P Fc?^PKDIɓ@[ @ЎTVFVV DC>/DD=$DC@P^5 Fa|pA F~D=~ S0ntCԡ@td,Q3`pd~N\|xxavYn=$n@P^5 p|p pΒ n  en?^PnJN]g  dAN hP*p [`> 0|0. tSVY\ P[BvQghFPrI qp AZp! 4=M@AZ^54@V` 4  @<mf M4p q0USMdM=P܏k10'@# q`AZ๝rF30Pf2Pr*- I>@ZM6Z0ƀvHZH4A]>@Zˁ ˁ_K#p<@% A  u1Y@ >0|0. 6K 'a ` @2#݃  =g{D>ӖUӆ>uP ݃ Z^a#QސUڳ݃  =g v@O_rPU߇0 ݃ Z^a#Q 2Aڤ! +KáՑi0 MZQ <    B  Gx x  :٦a;:7Ĵr}' x  0 # Q! @*0M ;t ]z$@AZs GQ! `!! @0ZP\y|sy8@6%&$R>Z`+PGMZ!! מϱЀ    #0 I0 7ZQR  h߅/`pQ  ţ S0E&PjPpİsQ°9 @z06m ! n°` p°}  = İ (P pİ}    M)Z0 ZHP6Z0P>Z퉠^Z Hp. p. 0 = $P ha|]lpQ  ţ S0E&PjPpİsQ°9 `z06m ! n°` p°}  = İ (P pİ}    M) S+` $ ૰ hFձi0p>Z`P`>ҰpssAZ9" ;;AZ`RL` uY`а݃ ;;P°1AZ^@  ԰/-~`@ , 0%1m ] v1̰' ! ΰ_t ҰA.ك00)fTADATADATADATADATADATA XI#Ѐx ua#Qϐpd@ذ`s  B  ذ3 `spܰAZpܰ}Aܰyx$AZ0pڰ ХGFo@Opܦ-_ra崢=XI#xqZl-ka,At"/< 0 ְ =ްaTI-Ѐ Q  WްaZ`: ް ~  ]@>`>Lp,ְL`ְ  ݃ vA E րx #@ `>~   MZ + р  NI4 P/ 0 ڤuc  + р !  p>  0 pgg͠@mZ Y@ xCL  ޷x p>  1AZ0pt @ ) ХGo?' yx$AZptQ! P0ZP\y|sy8@&$R>Z`+PGMZA! מϱЀ    #PY$psZ)`Ͱ0 _] P<0p S`A ;! AZc!`ư  ư! 0ף@    ȰA  z1ұ҄ " pp e#E! מϱЀ    #0!$P  ߥP<0p S`A ;! AZc!`ư  ư! 0ף@    ȰA  z1ұ҄ " p"Z0k̰o?* $ ૰  fP1 &0E !  ~ ;;@spssAZ`vlAZ4+ԻP݃ ;A AZ0@ İ=! Ұ ! H$ ૰  fP3 &0E  ;;@HpE&0*C$ ;;#1а ;;#Q ;;#Q݃ ;;P°1AZ' ! `!=̰@  ԰/6 l 0@ pss! #Q p"°= o~ ʲd#1`? ;;#Q d Qpss!AZ0%, Ұ ! WPi@dqi0&AZ`I֏ZZZP\0߅/QZZP\AZ`I֏Z.o>sK(?ĀK\ 4b dNv@tpMNP + рF  "`0  pQZ`U<kS @ @`LhLFD]Zt$Foo@t FZISI 3 + gZ@d\ޔK  H  0 ^F  "`0  UPK ` 40 UQZ`@   @  `0   @ UQZ0%кXI UQZ0%IϟKe@#.oFVK(o0!T+B`2v`@@Z^5%@V1 B=!@  P MNDCi@ DaiPFv` HpQ + р JL`? M B :ZQ M  ! Rp> 0 R0pA;5Txx : @6@@xCL}޷xR Rp> dRXQ!@*0M ;Rt $@AZs GXQ!!!P6TL7GZTMjZ>@ZT!@}!O%T&bO MSL>@Z`+Pq$AZ2TQ%UXϱЀ H  H:HZ\0 `psTQ%4"XQ2 0 Jf I`pQ ţ S0C$PjeAf\bX9 @z0!Hdmb`pb}  \@ Jpd}  `\2 ^)p`TQ%4"X#k RTQ%HP6Z0P>@Z0U]Z Hp.Xp.0 ZTa  Z X0 0 Jf@I^P<0p 3@V}!d`Ƶ!ZTOf0L  f!00 d0 h0m1 hA z1 " 0 ^QlCAAZnn ^ 3 6~|&ĊY r#ա@xQI)4 r␒Xd-&ȴBX4|čC@q,]Iux=ӽ|B$"7& ^R!Ցg @%`Y)$%WDCaoxhq&S@HpʙT@:j|65v2yVNjYyMPgpEsOざ`(s  ܺ(g*E@,; --*r 9PGell1`0bC0p.A10@" ~R(6p됀KHPR  -z>jV|F8M%  CrLȡ ;q0 /l< ph"Ob2; ̊ ?.9bq[ C@SRf5_E%fSj"(+4ڊ@ {jƎl(,".型 (<&/.M{ofү&vΔv:`ߨc@~C0 2FA t5e=@9m/ xs$ KH| 5(Pt EB?BBC/BX1@#hÀ t`<_6PuC*CG3!z2XBpo a-HȔcY!2\<xaw0?z  IH (N.p@!1i  <&D <#2E4`@핉 @RZD!Qh()26%NٝқjKBAN aE0x$"!I!$IRQM;2jxpTGQQߐ8I'0DA"% Z§ @5id(?T8@`Ɣ+NFUBJS:Ӛ*"?8L#>#i]#xHWy`$ C B2VL4L YPD@:nqXr |^*p-g[1#!\(0YU-`?TF]+@%uʁum`9 ^[ں6ڨoQ n5DO_}ZԴ*/ uaBQV)M*PJ26,u2IMoZD Ra-+qi"qdc" 4U)}cQ (0@ǢE:XI@9+ iYΒ8g] Bl9r&jp\Bq9gthq՟,hBPtGҒnыv^h\PfZt 1 `4. H\!`D"UJ},][׿6}b @a(LO5$PA|N3t ESk@W0jGP Q'8ǃQ<)_=nـ'-v k rpnްKl\;#*gŇQCF~94mrZɁ.'PHQ/fe {(.Ab2qav(t;h| Pe!GB($ ž4h)&LEQm}=\ۈA$gnpG$pv? tSEώ;27.h}[ 3`_z_$9I7oeuGH's(*U!q̒-@,`IPH |p[2̆0ccr[%oQ` ٧rgq ׂ/X['Wczop(Vq= 8@0X 8 ~ ]RU6HX|S|P|zOGj>0hx7EB~ רnW掶(Ӹ#} X$ ׃gzI0Έ؈|~`Dd8u P 5~)dO&6'g jwwmGCn vm' }w^z@9 B DixHɕ?T}5dLƖW h X Ȃ H]X%ba!X}-dFH.n] bwR}q PIYsfR)&17Йisix  Jy, Gy m0sz I |y!y*Q(T`Q"# g0k) 1V p@$*YqI$ $~IѢGjN.qSP%zPi%"{'v7~mD"(`ISШ_FIШ:@ *8u=u6Uq{^ҪMPq~> 6 ~s ba~چPZ&m tFdODpl*p^ A` `m ` 6"P*0 KE9p xg,ŰM ۰w>]z ٚA @~ qi P v) p:& Q, Pє 3 Q}R@  ![pY @dJ`-7Q6Ki +ۺ?<5]0P \<00<?0d; ~R}f )wPyjrV1m9 B:UD`=|PѼY.@ ɻVɻ~0+U+ؼ PӼ5V%Oy;21 @fl N kN*dPQ` 0}p.P  )k3ēb7u3 >0:B~ 1 0O \ܲ Lvг`9JEgaA گM`c`Qħqul A f -  Ĝaa̩!ʅFH i%]A`^X<K( ,J1w&̓0a'bRP>[!!v#P-' m?/#m?꠼ } +'LdF>pPU@7PisхA-PO d q+/Om?00)fTADATADATADATADATADATA6M-$]j/#7=Vj* RE,$~ dOzSZ-U 9 /m'j>=aS9t6qӊ39B9R a r^ȺJ _Ӵ1 U^m+<7l $7ҀjXgzhױl7mtS\00QD@{`PM!@ p1@j Aۊْ|l 0U۝ mQ7]7-=eܝ>H!GZ h-=@)QfI  B pd͋# u`K* ]s^ py.@?BI [_0Pg抰Lq>~~pu. 0 >%qpr y^ Nn^b>nNo M-&p~ƀ&>n zkI~@ `u<=P[P O0YO_ ) [+$Fo$?SF 'yk>[UVj"Xp]_,  P\P `p  zv^&&_nMA0 dQ[?z`eg%QXd|J=@Ua5S?YRUHwT& 0 j@/EƞE{oQv &ɱvxRQ=0~` O Q R@$g gK];oϖz =QB2bȐɿןɟ ן`@d*tO7 @ 0  `?P@ @ zPA }0_0/!f}0 ۡ?&ͩOOߜҜ2&g'$ >>ƞE{oQv &ɱvxRQ=0~` O Q R@$g gK]=QBUl5/$zX Wc \ߜ`B&8)R/ 3 q6RfRM˰ee {oN3P VWS{> {1 {pI | } 0  0 C 'XK - @!8S] E FcY[`NPFD8O 2ޑ Kxm _, ! t/ oxPuŢ _ eo٦@ #KxP" _, 9tA# 9 `?ŪŤP,35i #>` Ћa OBsW@8O EOA a ~OA pXi7użPpOa #@ 0>@ 0Sy[2N;b #>` E ai 9 _l E2ޑa ? = $; `Oa 0Sy;pdL` ? =~35i PFm XOA y[9t4te0)AV% % {! #H!Ћ`!@ I!PRq  (~@>! ݼ#H!Ћ !@=@ȐF3P!VaV0YP`N*R H2NO!*"P!O!*">!3FJ!0>`!0Sy[H2N;!#F!e! H! H됑>! !"I!`O!0Sy;pdL!@=~M)PP)"IA"OA"7 _L"@T = Ia"`@V Ӡd"p ;M !`"@V =` 4 , 0 S0A+"PT.0R >0K,QA0l,/q,/q[`-;l h/Ts0R qUX VSr[A g' KmwS6@pOT;P~q gG Kmwq  !pvvL4P;P 0 !pvvL4P;P0 !pvvLq   g Kmw`I00p6@pOT;P2gq 9Q\ .uUt0X$jE^FR` ; "]\  !pvv>"? g Kmw͔`I)6@pOT;P.u  ~0XdjE^FR` ; ՕE58A;,1 K Lh/'gG Kmw0YYA }"pvvL"E4D"f;P|@90"#~ #"@\˫dh"qI~&@d ڰ.#ۏ0#~ "@\)ZAf^; ; 0> > 0: : 0* n0@ H` S06h/ LR $O"8 g Kmẅ́ zԼvLB !pvvL !pvvLK vLI"cZ 2O06h/T"8"pvvL/p '"Ks8"pvvLn Ը` Kmw8  #g Kmw8 "pvvL Ը Kmw͔]0n8 9 [: K` 2*8  9 : [; K` 0<m[P*,QA) K Lt K L R $#g' Kmw0@K İvLtpK ư00)rvL` m0q6"/m*_I !pvȰvLI"cZ RX &_I !pvʰvLI"cZ Z )_Il!PKmw͔X ;"(P"R>,p'>?,pRö0i0P{zA#E\E`t[`-vRZ]\ "- g Kmw0\ #g Kmw͔X ;"(^0X i) $XU"? g' Kmw͔X ;"("0X f)fX I !pv԰vLI"cZ "gg Kmw͔X ;"(`Q\ .,/q,/q[`-;l Ut0XjE^FR` ; "]\  !pvذv>"? g Kmw͔X ;"  ,,K8"pv` .LMoPu 1o06/kdp ԛkpv&gkL0LԸk̈́ #ۜ}p_ W0D텸_/ @ IJJ`OJt$pJJ=~ ;b`9 66@&cB`">@B8D@Z]@`պJt$`Z@Jt$S%&@6$$D`~ ҷg$LnTӁ _JJ=е~ #"#~ cϪ\ۓ@Pvk`}kL!LWB`ޒq  P0 )!/ W0Np^ C۾A ?^^0t7n8 kLDL4ggkpv80t`>@ :.LkQL0LEg'kpvDÄ ggk͔`) HgkpvLd osP`6? `q  @ Ngkpv!LĄϚ00K0m$ d B/p Ϫ\/ 0 텸Ϛ0R.L;# #0.Tggk &@ qL0L;# $0 @6kpvZ ` qL0L@R*/ W0^`cXg^ k͔`r o#&P= Q; 0Hp9S9 01W0p^^+ ۸#@?^`cXg^ `j0/ &?t J@0u " &`r ᅡ`m%&PF&=QCHd`B@`ނq  P/ )!/ W0np^ ]۸ "@?^^ p'ӝ@'Ӂ _'@ p=е~ q  F ^gkpvbd G€B @@p'0 p@ҿ pJP]"p)$p}-d o'P CipC&*hzt tzy@`"q  P) 0 1)0p^'Af^ pg'T>?AU$?Op @`}0@tzC&xxX[0 ,pBDa#'pv(pgG'@ h@' ,p@i$P0n  `cPp'Ppڜp@@pr ᅡ`'>pB'`r  'pvpg''? Bpg#pvl_#pv0wF[ @pg$L8 N$0 'pv(pOTP{* DphQHAɝ #pv@gG'pvFpgG#pv0g $pvHpg'pvLpg'Ϫ Dpt@kpv("Q@'Q  ~A N^>O :. 01 nP^HtzC&xxX[0ؐ  ` f 텾("A@'Q  ~A N^>Q :. 01 nP^` (`@pe*r X50:j텸@'L ~UJպJR#P@?= d`r ?'X@ "Q@'Q  "sP`'d h^p8 bp'f@tz'*ht t@'pvfpOTP{zOBO'P- .*\+' `p' $bp~ '@'0\pq  @ @g'0uy''0 hpJ! `phyC'dp'$Pׁ '`pB'`r ᅡ"p)`$p@&=QCH)' */@ `cujpժ'  ([Ӂ _'@jp=е~B/p '@ۡ'P  I'@6"p'<`pB'I'P~p;"~p'] p5pB' *iP P )A`}0IJdJP@'Jpؑ/DސHp"IHP+(R CI0 k#9%~ QP!@Z.mIkq Ä gkpvÄ |gk#p?U 9 G W0৊^ 0۸~-^^ (0 O ( (;( (0 9 O ( g~M .L q1W0৊^tdhA/AfO(P- .*Af2I(^^<ρB ҏAf! dhI(PpU (}P] O(*6[@(@B3W0৊^ C۾ ?= '@߰ȝ (3ρB i腸Pkq Ä gkpvÄ gk#p?U 9 G W0৊^Hx~텸kq 9lpvgW00)fTADATADATADATADATADATAlL0L` kpv.L>S( #ہ}`(.৊^ ৊ ^f(0%(.Q]?U$ 'pv _'pvৡ@% n(0`( H n(`~0l> ߣ\6    @ * 0g) ?c~0lRö0il1Pu:#~ C)@`(0eX6(0eX6(0e>p_@*f^l1PEJ3W0^cXmcXmcXl0   ` f `I)`)0 : >) (O8)" I)¿8R(p }lR0ۚ` pрrO)_)@8=~ <`~zlr qP@ ৊(3W0x^cX۝ 8~߰ȝ8+0<8ρB)ݾp_Af^3W0<^cXmcX۝ 8~߰ȝ8d)(<8ρB)텸`~:#~ )@`(0e9)P৊ I)I (΃)( $8ldh텡`(@=P A(i5S:\N!!I)D )0 ``( )0)0 `@( )0 )0 `ń.> ^`) j`( )fHtc(sO dhDi(:բtLG dh:# )@`(0e9)P৊ I)I (΃)( $8ldh텡@(@= sr  a(^!*.mz ݣG6o_^*!0Zf;QB( R,( BB(@faB"(@f(F(:B 7O,) g )pvৡȔg )>?U$~0qglp)pg~a(] ^o*N`c-`IJL)pvHȔg )lRö0il1PUA3W0^cXmcXlPQ 2:j텾p?3 Pt:#~ )@`(0eX6(0e[P`F` ݽ:#~ C)@`(0eX6(0e9)P৊ I)^<8ρB)I)O)@ 0Z_)@8=~@`~:# )@`(0e9)P৊ I)I (΃)( $8ldh텡`(@=I(@= sB#p_ؑ CI0 Pk#9%~ N+RO L0L lpvglL0Llpv.L p?Ud0 9= Gd )텸_/Mx-^^fk+0 hO+ (;=*fa+0 h9 hO+*umY@x0.=j+0+ $h} *ua`lpv p/#῍ W0l^ C۾ -^ 0۸@-^^ .L d ~ +@\/'^H*@pOpğ9Y> Uo'l*@pd h>~p߁%kwͧE+PdT67 +dI +̸OA+P- .TdA+^ `A Ā}`|}`žA v *p6>@ h Vp6a'^lp Ä glpvÄ /glSE+ Ӑ#Ӑ}`H+. Nh ^ O L0L@lpvglL0Llpv.L0 9= GdRറ^ j ^ O L0Llpvg'mL0Llpv.L0 9= GdRറ^  ^ O L0Lmpv gmL0L0 lpv.L0 9= GdRറ^  ^Q]0K6r + 6x+0ե+.S:+@:-PpmY "9 /.۸p +@텿 }" +@asư8O+P a=N+^̰<ʰ + $ʰح^8N+&ɱʰnOa+@;=*ʰ= ڀ "9 /.۸ R(텸@+@A0ƍ+̰0<ʰ + $ʰ+@텡@+ Z +mg+]Z+L=Z) +8-~Dl @2` + + t^z0+@+`In.aư`Ȱ @+8|p 蕁 aư`Ȱ|p 1@++c +õ3 ~(-l1YV<8f܊8 Q'Q>{1.*0 E'x[! ~hyCK̏R.2*< ǵz$ǹ"cȍ7j)4 ,{̌ gXn- 8t(|0.mDm-åMC\€k7F,DHUN[ z`&n|Ԇ<јy3uݕ+ԑy[4C7 짞 vA3=W``39D rSzVxaat$."LC "?H+b @CM2tQgvmKwQ&㕇!$tWkI}KF s%c44  p 000)r  Ṃ| + D 2Bul $Ul&ٙ* 0Bu^lC`m4یG f3.`dzѸEiG VH+]jλ5%] p#У;5< `hc|Ql~B^Z .)*X땰YvG=PGbj(\Л*7 60f;ī ]{UX*k5iH1ĺfd"֝BH*@ {#veXv1dxuG<ODf@aulR ;(X9"晘q M ;= vf3 3(`Щ/bF8# "  w`gU ߋğqAA`z\8۰!dK"0G z""l`/cB 0>atBu7b-/|c|P!O+o:a{ardW z'n' zzw !rxLz&0 t|W|p| }wW~;p~(~ ~rL <xHeC8 efUGfmmWqv4Xz u0 H~8W](Vp b{`7|bnwt7 lrw8 w@# 0ĆX3 z(yyyԀ @3kA2 p7d @g0qlGql89`l0;p =`&fv]90n'VQy|w J/ȊȘ؆ ]{u ؄ (- W\\(qfx>p,P%|o,9u%1st&)s"0NY(v` 3|Hg|Q78|x X| +6 KyB(g#v騀jYmypp7 hdxL v Hh- @s5 c#1.ә3 DQΠ@ U ԙ4 >]@itqUt 000R{UYH k2"q&i< 35_ Xs:PP 2T3WqAJSR8kڦ07r~/ e2  "q)p/w5@fg0`p8 y`Zs i$  A@32|@ u n VI>@\`P p`@h@y6[]c@-! 98p$ 0`P `u{HUK{'@f+ Y&YDf%*@]u[D 3P* ZZ 4 zZ]Z9٪o*&a`p<4B`JP)0`| wO=@0~ b0P0l@ % @0v`l&/"6;lE(K`-p ; kTa ={n4P,<4~RK@`e!+!40 \ P`  4 ;`{0 $@(+ay+[JIk3ȵ|뷀+Ks˵<y۸][+na4(t0K3BB˷N@;bZ尹)DIa uY * ;lF` p*tp˚10+'%1b ī`!@j@0j+ SP5{nг@ѱEn`&6 %۴1Q;U{=[,i[`;\ \+cAA40{} { KTK=p*(ೡ Ii䰤M}kmq<ҐB'0 n|$q*@,еn+E! + р.@00ܺ0,08,˯Bʃ`  Y l\BB$|$kӫ|wụ̈̀L>lƧ"PI+1KA$? J@0\s ILd|qz< ~0; ˰6 i{L*@V0Ϛ`qn iD0 ]pI= f΄NؠU naj5< `~`AfniNk>4מ@XPT0 ppp`a^S;}@FiظR("([ŲJ. JP@r. b wj0V v1bV65`Pj;_ P5PP{j^V@0Q<!5>ky2\S 4P SSOlO=p~ 6.Vx*磨jN`"f2>,(e6`uuu;` 0 P`g< oyOvxy!f3M ,>`T`6w! V`W/ω0/:~` >0g}zgKʵR`WA\>`BhC>P-W0D6vk7 _iv(1"h(1(1p<1uӏI8 5  ֠Q7t0(1P(pkVpF& 5!(1`#>\P!  7PRjfPO# pʐ崶F >31>X@:RN`BL p]lp>` oHpt F@H`݅PO >à^0hSd6Ep;HPTjHHЫǃ`v8< 6ɸ@AyHTCH"X`O 6T6MHR@H>@|5 5&K )J@J(@`>\/pHpt)@r*Ql 6` `6PaHpmf @"`m 5݈+`D-/k;*YH< _^> 6p-n 6@`ɏ 6`=~6P`PU( 6` e;`"X` 6`< 6@`)E 6`=~ ( 6`ł y;``` 6`@` @0 6, p\2WGMZum0IFrj0p  7~2p7!I77 i7|.p|"J7 .p]O(p :p|p74p70 Bp}WB7l@p7l@pǗ~ 7@p'7pXpm76pA7Dp19111C7Pd6EO^BW*j$4pTp 7 >p`73e7:p0zIM .p]ϖ>7@pG^7y@pr77 ' 7p)@p2mT(@p7yFp"  2p D7Ȥ`3V7@:AOd@pcB7p)6pj\87pXpm74p7Dp1O7B7p)6pJpW?y76p7Dp1O7- (4pb7-\87J1:P7P778G7@:AOf0:0D0`й"DO@<z@p||"~| 7 p7@p* Lplp*@Q 7`7ʧ| 7 p7@p* Lp`7WF崖 pp*@Q 7Ppw7xw )XJy@pO7 (4pb7A\*.pnr( @Q 7P7ʧ,@X@p7 @pO7~0 <z@pf| zIX@p[7 @pO7 ~ 7V &pp`a 7p@Q 7P7ʧ,@X@p[7 @pO7 ~0 <z@pf| zIX@p7 @pO7~ tNQ0#JǠ7QVR~N{ R 0p`7!<z@pEQ7p'.px xp^7@pMOl@Q 7P7ʧ,@X@p[7 @pO7 ~0 `7(p@7p$Vp<z@pf| zIX@p[7 @pO7 ~0$6`nT6n&p0 &pG7XpsXp P ۘpz@pf| zIX@p[7 @pO7 ~ `7(pRs }@ xZ&pH'5P*T|B7)X7B7l@poiXd@pO7$ .p]O(NP7&pH7%&pG7 &pH'5M-! @Q7l@poX1]ϖ>7zɗ~ 7@p* .pnr)ɎpXpy7 B7p)6paJpWf.pA7JpA7 Dp`(70C7 .pnr(70 4pB7p)6p_\87pX g0pa7JpA7 Dp`Jp14JpB7(70 6pLy7J8`EHpS`D  ǀʀ-O@B7p)6p\87}1AAP7>P77 7 72P7I2Jp:OQ"%(+.1{HnO@` z@p||"~| 7 p7@p* Lplp*@Q 7`7ʧ| 7 p7@p*бLpC70lp@Q 7Ppw7xw )XJy@pO7⤈ (4pb7rH\*.pnr( Kc@Q 7P7ʧ,@X@p[7 @pO7 ~0 `7(p@7p$Vp<z@pf| zIX@p[7 @pO7 ~ Hjn(6`70U`m7p$(p<z00)r@pEQ7p'.px xp^7@pM0(A7-1 (4pb7`,Jp{@11P7P7P71<2Jp:Ol^adgjmpsv-O@<z@p||"~| 7 p7@p* Lplp*@Q 7`7ʧ| 7 p7@p* 7 P ۘױLp"70lp<z@p||"~| 7 %p7@p &pH70 TpGb7@Q 7`7ʧ| 7 %p7@p &pH'5M (6`77Vp `7p$(p!@@(4pb7`,Jp{A 7P=@V7^P7^P71<2Jp:Od258;>ADGJ-O@<z@p||"~| 7 p7@p* Lplp*@Q 7`7ʧ| 7 p7@p*бLpbp7!p@Q 7P7ʧ,@X@p[7 @pO7 ~0 `7(p@7p$Vp<z@pf| zIX@p[7 @pO7 ~ Hj70r`(p`7p$(p#(4pb7`,Jp{ 7P=@V7^P7^P71<2Jp:O'    P    pN؂ @Q 7P7ʧ,@X@p7 @pO7~0 77<z@pf| zIX@p7 @pO7~ 7 &70lp@Q 7P7ʧ,@X@p[7 @pO7 ~0 `7(p@7p$Vp<z@pf| zIX@p[7 @pO7 ~ Hj70&p70 &pG7Ǡ0p]qX 8-W;J0 svppwFV9P@x@xG+7zp xpw(7t@xpKs~c--V7@:AOZ10P(7 ۘp{ڧd0qX7'%1I2zp:O-砪QY ĐۘAQ7)dpx @B7ip7~p*πxp(70ljpбjp!;ͨ7!<z~pE7)dpx x7~p*Ӑ~Q7)dpx @B7qp7~pπxp(YrpH:ۣ 7p$$ rpH:M rpH:ۣ 7p$~Q7PqpBx xw ~pO7 ~0 `Axp(>@Viz]@`vpt`7pd`oid8Pp7pd`oid8h|S## =`c!7Z4N 7 Pcd 0 `Kyz~pBIʨ " +~pI7 ~pO7 ~ p 70ljp~Q7PipBx xw ~pO7~0 WAVyzdBٵ ˤ ` }1A111111I2zp:O@00 P QY ̐ۘ0Q7)dpx @B7ip7~p*бjp 0p 7!<z~pE7)dpx x7~ppd`ǸqG^+p*fNΐۘ`NАۘg  #11162zp:O*P@@@ YЦfZ0YҐۘ+ҝQ7)dpx @B7ip7~p* jp``@` 7<z~pE7)dpx x7~p*Ӑ0FԐcd  ϧ~ d~uuuSAW7I2zp:O60_u@2MHт  ؐۘ% םQ7)dpx @B7ip7~p*0.76<1U1ns  C7@:AO``lbc      jp``ഖ jpp*׀@IHkFv u p19111K2pEfS]0- O@WAVyzdBٵ WAw.;>cvI"?yWpm& 7>pJyF 7p 7pLH( 70hK 7 7< 7IN 7_p>|`S@pby/* 7yp~ e plpWe p"_C3B 7P56^ 7pIp^k 7PWhpvkW`Wu+ 7 ppUcpJypO 7Tp?4uEԱB 7P56nV zZ( 70 p@ 7 p 7`Zp?4Ը 7m ڈW>0/m;m!k0H8!!3܌R4w$AyF8&8 6W!808`,ƌ8$o8I~ y8,8"`(a80[188P4 2f'8$o8I~ y828"`A88 64u!yo6'6; |0 6KO8 6s80 :(in:B8+v0N`ߦ80qu!y&oOa8`wb8; |0 6+`60 :(i:Ba8+v0N`ߦ80qw 8;>c> L8V^cŚ>s:Cֵ7fR}w8V^c300)fTADATADATADATADATADATA1>s:詠zNo  NWp]PWWHN5Y8py 8 8 }Y+8pxhW9 | nAif'&@8p)f2m|dfOa8|OA8Tpˠ;*YXaPR?M A 88 x=_>|Pty PJyz~0 yʐT(q80p4*Ѹ`@u `opl" @! "` 9P=4 @ 9P|2 gЌь͸Ќ:O9@ 9P|2 Ռьo2]/vgH\O 92BK 9`9\ՌьA:v!#~I:  @nЌ͸Qa:o @8  BL:0 } 90 :p E8(a <:(:0Ik =g 90l rlR @!0o  + / 9y ~  ppklFW&"r fpl"%"r ᙠ<$=U`kVW Y0F`kVpFW& +rp kV` =6V`` `0V ` 7`pl"*!WA Yfpl"*!WA klFW&("n C@ 9 '` 9 yF ͸Ќь ͸ЌaJ W/ 9tPOA 9 '` !2Ռa ͈͸Ќ ͸Ќ rx ΀t,A.b^dN`:9˚kRQO(,x0 ~I @ @<0phSriƣ[!^mr4끋S\RU+W`-{V@ڵm߂Kwgϟafȃ͢U֭Qqŭ&d?1cU lsӡB@̏ e)G-O4eμ{hNNkF)A :L| pGM&ob~Ilv mC:p@qșJͽt4U.5uzA=ExG%1LTEmGrH9-t5}]5ŝ%Ct vzeaf[au:̅]D5A'O IM41,4gnG;pI}@Ti@& yhMPޛeb@si |Ze)ޖ&[pWA.R@zxWAuWw'*xJEiđG24,w IC,P:\+qKݷ:ӑCxK1NKc&4ԭwi&h[*jQd_00)rp`Wngqy 6_&VɆqyPB11[IZ~5I\Ә9f"!upg{9ʟ*]&6 ؤu{J TPi:@ +R\:!zw3Hm: 8[H>d: yQJr$]oL 2[Es7Lh3?4Ϲ|`m*r^ruwzb<4P^"gA*^Wk"]F63e]2wgE)s<!(z Gf EhBc6.X@]qfwSBD(h*'L(!:HE)>QB:\|c( 6PC1gL(聒5.tA0HB9]X)D5)@: # ׫YEh‚ &<kĚ@.Ҹ 5bF$HjA tHNB'cѨF64#1X1{s5B1VbrYM:I*kJ|( "}d-h"HC l | ȡ`?F1tTekYKB@:-cxA5ҒU{ bx @rC ύ+ P]CPʥC@ (,e'< dX@V 6" ꕯ],tL?z@JzҔjb-KRf ׯ,a {wE8A| ;QuIS . x}k`EHCe `?l\Qg|@qJ[b `j [ZE{ЪG N yh΋PZzmtP'bW6̀W|_W/x։WFi@(,e]\MQ\Mh }0<X|~8)]B%t!m$GQ@} ?P-;^Rq!W5e:P0M>)I ttIGVtP!mi1WxSE y=0jXA]'ajkkdJGpm\U?0js͖]8^WZgPFn6VW~ !7r%n'P-S}]xC &v}{P'a b1bU('wcEu@g&e*ay5Fh\}\ inwV 7V+hhu2ES-Hg8eKt[&= F3VtHB,sP%x=@~ $=Pt`b̀GGv PTT x`xu`5LHT)gM PSAV%TpTcVexMᶉqc5\5]5HY0Wѵ^~^_` m6 1T>V 0 9\ grT yp2Wq_G5mG 5l.XX# u%=~0T ŖЕ60m _ U`l<A`P9F3 `09 0mjV'pVpW$~ б]VF\:exm՗ .74 ЗTCq}P@qҕIuS v<Bm.d` oȌrДdUV )>T*Qdl5oə t)w)p@]q–TM sUSe) i~> 0T̀oXsqA͠=hmu@~ @ &T7͇g% n4R~7W 5eCWvPYy+JwJ`0]JPw-?Y,0dd-0d P& |Ezvb'bv  XctI0 NJZ+ PT+`\1R:g}0 W0ِ2ycWCg]i*Цi]4V &Y~Y yتZcva]:_Э<ʩv@oZZhΠ4]5ag*~ 9}juʨ;%=cU\3E`]s՗ MqP0i2g+PRPVRPx,O;PrUXSQEQQQ0W"urX+y r @=٨"!r `` K [ QD v0|0.h}adgj 2ߔ moq=Q!67jΦue"隡%r%(ذEHD0N {Kإ弋@[Ջe@)(ѰSĘ4r#= F!` K|оYf+kثV7[~0 i |T*"=F^пfL&lã; Cܼ;j\|1,Wu`m0V(|{ =LŢp@ 42H`Sx 5Q0iQPԶ(rFр`mtR = 2@'=JʌS@+`͙} X}r2>?:@WG*c[QuhQ /k`ྡP/B= d!Kl>P] '{Z=HFZM_Fp֊ օP 'w#pR}EMp< E`Ta;d^8V` =  r~|uĞ"m)a>0д=ЖVħM=p5F M'`;@|~0ܽۡ ~P܀ PQ ?1 Q@a 3 @ޚ@ a"GM y Ë =oN~moKN\>Z h 00)fTADATADATADATADATADATA8^<0 ZnU=jݼE+ Q,m =]Z0 @ Cm k Nl^ - P0 #&$N VzN$> Ḡ^QF]Qmuc`g"'fKPv 1-  yPTvp< +ӭA4P=*5`>F`T n@ m =Pg " - `NAkjpKO..E*ߗ&]W _P~ɾe uaҁ>1~ .p*p, 0 Qp#ROOkA;0 5` s`t +ĸt %0C#1Q!WWWoC1]c e^`rOv@xru!$~ RP?,ROpI7`bO>`~`@tsA_fݭ}isd{B * !`X78j

g+x >pC `  /*rpi0 >0>P8?b `` `?`  >" >  ># ` 9 /*r0pi0aL >0>P8?b `` `C`  >"  >t> >K!:F><Op< >@ǀDi z@sMџ>0>0 >pC `?4x x@6 g{9 /*-p;P)Sp# >Mџ>𽒧kfR  >/pnH90 |,ǐ,! >'fp ST p0@b* 2>54x P@6 VVP >4x z z`0 >4x @6 wP >8 S 8 >0 >' >ţ]h z  Mџ> (0|H`nT8p '0 > P P S 8y [ P4x P@ H'j0"} 0 >' 0N >nX90 >Pl!Pn\! 'Z> [ P4x x@ [  > '-@# $  D96 Wa b``Fol! nd^lUɝ܁` @> F`P`ol! P >S [ P]Lǀl ¢p ':@P YU@Di zju mMx1ĭ >'29@(jp 'J x1SH* >0 q >8 'pEU@ǀDH!y0np900 b~0v` r@u ]U9ţ]00 s t96 Wa b``Fol! ~p*p4`S   aɝ܋` ` *  d p*l >0 q >`/ 0N >n|96 [E PɝS F`P`ol! nR> [ P]\j׀]Rဢ^o90 PN@|wS Qj`*P r^@d Pp5`ƀ`xP> Qj`*P r),* ɝ܋` ` и@ ` *EU4x @ )5(0p >Pr>  FʢR> [ P@ǀDH!yu    ` )A<  a1ɝ܃` 0`0C >[B Ʈ0W`  >'M0 џ> (0@P:rUz 4x x@ ~Pk9@P >0 q >` ŀ]]="  >ţ]h z`pà s l `@jO1]5kXhK| ^P`h >0? 8\ >'YC>P\ ɦVK| ^h z4l@>F%R.'ppS>}JK%a>p˼P>>@#0 & I> A > iA .).s , !?`> F%a? WD?E?& 0? Tp~ ~p? p~0@?0p~?P(?{p@?@``ʢ: ?%A@``ʢ:?0?0p?pEGhq ?&?*>pEwj] ? 2 T ? ~2[D? ~DP5a??_`?ဢ`?p逢^`s >0uopwpr0e 6 F  @? @. ?pEB~P? F2 @iֹ>= P ?M@u2?a%? @u>?aE? ,'?P 5a pPV? ~T 5 pPZ? ~R 5? "? ~T JpPV N7 NW? yT 8 bM@u2?a%? @u>?aE?? ~R@JpPV G?`JpPd '? NpPd .G?0 5A pPV N7 NW$? yTp2%? @u2'?a? ,?P 5a pPFi^ s Fu/|r0Uӣ ? l0  @up'?aE?0 t?M@up?00)rae? @u2?a? ,g?P 5??_ ,?P5??_ ,G?P5!??_ ,?0 5??_?P+j+Z:?0? ~v_5? "?0p?pEtI ?PoM@up?ae? @u2?a?? ~vP5A??_? ~x 85A ??_@ ?P+j+d:J?0 g?pPd N7 NW$ ? yWpp7 pW$? y1h2?pE4  @Ua ? , ?P5??_ ??Pl! p_й> @?a ?? ~P5A??_@?6?ds? ~ 5pPd[ / ?z?sn I.bD ?0 pT ?Pl?ae?0?0@ 0 ?P? ~P5??? ` T ? ~[T ? ~N[ g?P 5pPd? ~ 5!pPz ' ?P5A ??_?P+d:J?0 g?0 5apPd 7 W ? y>(jd+jZ:J?0 g?P 5pPd g?pE ?0p?m? y` L. pRdj[ ҁ @`J@@N@@"W`> p`@0Wp S $p`0Wp q"/!P > `@pEzB@@P5@P5@?(?09>@#f@P > ,5@P5!@P"d 5@2@4 W1 Z 0s ֠@P- \zȰU0L°FVV p"sf@S@S *&A@PTo}p !? IW@@# !W$@y%@p%A `@P- :Apà@?W` 5@2 [U$ kt a!a 70 A@0Ao> 4ŊH0̀`r!5 @`J@@N@@`} 7 WA yF "@pE4b @pE P%!A `@P- :Apà@?W` 5@2 [U$ kt a!a 70 A@0f@S@S *&A@PTo}p@0p@pEg0ҿCS JW+ W1 .0Wp S W+ W1 B0Wp @PFPpkŶH`P b Bv {ue }lo뼿\`P b BU {u,v ?eo뼶ԁ`P b Bo뼶v`P  BϮlP~  @ڽa&02 A &p-`p+ð[>Z,rT]p+ð[@;? D;й_APoTkA ~B[Jn:JA0A ~JPHqP$[APoM@uL&~F[P`B A PAP 5AqP, A ~> 5aqP4(j,+:A0A ~@ 5qP$(j$+j,:JA0A ~@P*5AA "A0pApENg gA0p`ApEH &A0p ApED Ej @ړop+ð[|P&02 A @Z<2 Ag> M@ugAaA |AP 5qPlA ~ 5qPt(jl+jt:JA0A ~ 5qPd 7 WA yrp7 WDA yQO 9"@T&`p+ð[`&02 e A" @=2 A APoPoAPo @u Aa% Aqs  AP 5qP[` APo0T A ~[TK A ~[ A ~@)q{A?_ g APR5 A?_u As  APT5 A?_ A: A0 A ~PV5 A "A A0p@ ApE' A0pg A0p ApEW Ej @ړop+ð[P&02 A @Z<2 A@APo0 +x检APo T+A ~[A AP 5AqPA APf5AA?_+j:A0AAPh5A "aA0p`ApE' 'A0p ApEd j[ WoҁC@v CS0L0iW vX{zCIqx0;E0{WCvU<D| C 0 CPo9 00V C]c z4l 0. CpE"0~` C0耬`r>~% zs0!qP|5C 0$ C 0$ C 0d C0|t>C~ 0EgC@W1  0W` CpE 0t0 CgGQq@B0 C@E[U!a 70 B>\ O7B d;W P>  **7*CMC<o q040]] aE ^p s l@Pma(L@oB00)fTADATADATADATADATADATAp Լavd 4pSPu@md `Ȱ| s l@md `ȧmZpd BnBp Լq5 7 BP5KAP7*x4b (|P`ol!S6kp@lC` q~@ UڶQdV0o*mQdZ0s Z0oC `C 7PCмp s luplp@lCȧmp@C0C 50 V0p 5 *-W+^`0Wp \:ڶQdV0s V040 V0p 5 *-W+^`0Wp X(,Í`ol!S&nKp ԼW+^`0Wp ĸ4n(|P`ol!Sfq +d B] aE or +d B4B  (|P`ol!0P.rp s  7*={p( Ú }|X`r~@ wr s l1R>] aE r +d B4r  (|P`ol!1P/ rp s & 7* 2 BZPXr~@ sr s l1R>] aE r +d B4Qt^|P`ol!S6kp@lC0i^|P`olZu0mp@lC rd Bn6 (|P`ol!Smp@C0C 50 ^0C@V00 V0C`0bdCC0 V0C 7PCмp s l@@#ElmO9~ r0eмQdV0s`mO9~ UڶQdV0rd Bn> (|P`ol!Smp@C0C 50 ^0C@V00 V0C`0bdCC0 V0C V040 V0p 5 *-W+^`0Wp 4 Qt^|P`ol!Sf^  C s ֠l`mO9~ rvĿ C s ֠B Ap `r~@ r0eĿC s ֠l b0`CW@,C0 ܼ C{ s l@@#ElmO9~ r0eмQdV0s`mO9~ UڶQdV0oJ Ap r~@ r0exڶQdZ0^bC0C:]~0 V0C 7PCp s l@P (,Í`or@ p*  7` rpмp s l@@#ZrмrpSR>@] @}pX `SA] H(V+@] s l1 &2l0 0Wp SA] }7>@] a 00Ұ[V0CWp^V0\- 0Wp /rb0of :Crr0n +jb0(s0`CQVR &G]` 5BV0LC0 z0CPoh`r C? K Z0` `Z0]|p t0ar0u*C0d qj0o~ (b0+jj0(0Plq b0 j0 S ˾C{ s l@૸C NjZ&p s l@@#A/rмorpSR>@]pW+6@] a [ 0W`` l1 з  SA]@P? KTE(0#QV@R kn ]@n [f=JbtK% rPĠ H!@$ɑa,c&Db>t t  (@ &2 \ժoȈ>1:}V: 6 nE LM4ϧ]=|p(G98= &P,e*8M j[Ald( 7 Ny 5)LƀSKp{|޵)Eh?@Oɓ`jsv,4~yye:&6TjG;7 qNAE]8 OC*C ueRJf[Ps0ɲj5sV 񓈋bT&+P`1PtUO3;891NIFUM>%>S2LUuBxFœw:x"t # P"ŽFWX!RuT ء@TDEhbH"X@O"V".| ШB,U" b ,;xSTlF8a=Rm#vУ ` 0.DTK/&;S $b[027=ζh@3H@:,z<CL}0pLC#?P،sl5ĚHZ#+#jxC^5x ۫B*j 2 >ptpc㸄(`CcB(81 4C 硏NԠ CBs$0?l10&J O+}0T?|'O( F@{˿ k '>MXy썯OˀyBA먇a@! G WZ!B %8`B0$0)DA X1trH/A9 :@ ȅE@@ Z  ||@ Y`BJQ"с $B!tXB90!s_ "1` d 8]HEgTT"z,b00) rS# RkP ġuX6JhCJQ@3-+9:#BIC$8vC: - uTcD\D0&s(Peprr1(OrM@&hG:0At"@EL# 4ƑMC@E-EpiC+ JcdA B:Uu0S, L`McXhC , CD[W `T F"hN0tA{R@ć0XQT@1$g8T;lb?n0v2 "\#x=яtpEgYЊ6PA*T6Qc[8@'rkݦn"l@@L.2qOIGA :!Qb˷DGHD$X>zTDCQt.:P\kx (8]vaݛY͒zu-`C` 2y~PX/0BІ.V0Z@v6Hh T8a(%ݤE`H H@` hqPX&HЊ^<p6/#ˬ= ,8*q@BQAG4t :FToce"`@!:C Їn!Ё, #04m]C@xjPtH7)N$Wt@#ɏ}8/ a ,pA Ak1nB6CgD[HBP8B@p_GWv>} sqV0_1NBq3HFq/Qq"`VTaX:=qi,7&P{xX;:uPѳ{cɸ"} @yJuk5XHVoR EC߸A ECְQh#X6@{0YQ{cӈ m̡M3&` gPyT 2ȗpx x7juww|7y Ѐ 3 7"hu GUx$x_DUu` EB~P 5  jX=@V8 Z8p`@+0G 02p@ bhP`)@chp\rsux~8)pxV @R6G@ CPP_,Zp3$^;`(382( w 7f40@ Q8sh)̸8i0רƈ={tИ Ԩ 8Ad f{8xЏ 9y(@ Y8PQsy}Јr`{7؈(,j`/52I-t#t69=GKٔ@P~rY {pב~Vc`<`$6 N @HS@` ;@w>}YYAI ްP`x)Iat )5V[P3   i`Xp[ P&?)Uќ `H EBT9/8X^_T@ )&P8؜&` \xޠ@Ux]0MX+[ZJ* Z] ˀӐ 9 = 9GڣF Ф 9 Rj 9 M*vG[` 6K&`C  EFj({bJfh* p`p*@٥cZ򠨊S^sG @>@6H)PU |YЅIIĉ恵瀛Z ؈Хi u`h)c#8@@u ޺|w0 p PW\ zl9  2S~vzS^chVVvЇ~Zj<tH+0 ΰB) jK @ j7bd{{3 ڠF q;pZw'ykV v `fհ`ĭ~RmReEV- :` Lp  ; ːzb @&ba Aɭ8: D[ǛȼLЋ `H N~0@,` tMl@|D&EwP\tLt T\_E<t0lMtpJINPy|+p Ր  O Ippt5p_E8 ;|PQbfs\ z7sG~7OZbW v9?u C=PuP5 @@`@%+K@h9O^@>*@rɪrb Ҕ`-A C@APn0ipnPddvdP yzPr ELlnp n@ep m) o`l|0I- 0O0rpuePЀ aeEPP?DfLT UCR;MC`m>10| +M op -,Հ0tcT poDvl< smr cepn\MtՀ0p8 .4- M@ ټ- %ư52 6 ڰP`@T`gmhcEK`i`c Liݻ` $K޽!c`<$U_`H݋T _PEP.>_d nnfE`{\E 7`ۅRE>nۏGEp `ۚ=E0`ۤ3E0`ۮ)EP S@"dn|C@V悷dn .10~ \E'*r p +0 vE8 =} pReKb˭|< p 0 F; sP+F5 9p0ۦOa :@ rpC 0 0 4) $;#@@ @̟ư70R0_ <p0(:J{C mc`` xqѠ284N!Iʰ7st+ßO_>L@?D ,hƀ @2`bR0 b `/doj/ :R.kqfGB?a \@g@200)fTADATADATADATADATADATAsAw B>  \ O4 V0(p`~pniLc$FH9dh 0 &l H%0+ FwH f0&ۯ|5d pwdYm @ MANpI<AI&R`Uud rPb% pN# +` ,qNZUPCY0 -T |wGְנP*: S-R4` /XİT@+0;j`0( 3 f 0i d= D |r `| \MtntL @@#0d`4p0  P0`ܠN9b)ZZ 0 ?cR@N qyh+@ <imF Ah+f$ qٕ錶bV^@r@k]: pC#)b^`V2$G041ds4@, qٕ@g@ 4 z9G)KgxéN0 54d0t4[ zp \`Ϡ8S`@5CéRМ ҙ@T OF DR f@Fi+5ఞ: C]ԯRR0c 2 rPPbIp a gJʔt  lA@"p< ĹpOt0> 9  %+p  H} @`0 (PHP@V0 < u4"9 < upi[0ŽD @M N@#F 9 i1ࠏ0@;0s@pqx:,Z:R @+0Skpc*PPPʝPPP jb0`0@ a`[^NN+3`P[ 2@U5&@ m`=(@ @`r 5'y iɓ뎜`R`+f7HP5t렫6` Rm>%hy20Ke R0`4 ǓU t%6`  }x9^ u Ou0 9R ;p/r s`ÐU}};pu p;:t;pY*r p- P]  Fs[2 P#@ r< sL̰0u<0  0׀ N0 Է8C<铙DN R5 G# ˚Xɪw! 5͠s OU>v – j `u C `uDɋ0~A+AFQ;ALVZpAFF^    50 S 0Q. S*>S`r0 uãSwW83z0yn6 SSpx  0 ~P/0S %p0_S0n00 XP 0 % `x@p o~0YÀ" Pـ. r ' r5 P 5 P  P DeP 0 T԰weS3x0 &2 0 xqND0i`Spv0 Q #.S : 0a Su &9`Pmp@cp0 WPCP(P  _~ߠ^rS<@t5@2@2  r`P0@xDd PCt@S 0 P ` 20;T+ t X00a   0 XX +XFw t  ` @p L9 >S0= &^ـnPH ap du `z`z0>8 g5 ;s @ aPmpð t p 5 Z؀0 M<-0 pt,r@<~ ,pΤSF`NPC U (P`u ``"ހ$T.@0  pΰOP @00)rS@ 9v05 tystP<t<ֱt<z$@G2 ``B ?/S 0I0 >t|U S 0p 0PC SpiLdp0 C @? `Xt 0 -ppp@0/0 S 0Q. S0R #< 0 Ƞ   M`00 `   C0W y SU! / 4 0a StG  / : W #<. Sp P 0   _CY}Ѡ @` 000 02 4V@` P 0 P(    АPY0Y0ѐ @` P 0 Y@0 O^PI/Sᄃv0 0 uqZ+`D] @ p@1x0 G9 ZUdp  YPʋ);P@Ð W&w uM qu0qg uMU @PC0 /0`00 0 uq L  ` P&MTI]`@pА  t0wxt2xUH6 p`e;0 S[}H[Rʋ);P@Ð 4w L@uMu <qg & e P  T @PC0 /0`00 `bpq[X~"2 !&wqq[opX<~"2 q[0]鐃` H N i'Aup8AS@S : `+x OUn 0TV' <0lÀu <`"``"`dlÀu H wLS: j@@Ki@ S% 5 90``">G up u/À`<0Ð 5 /!9`u 5͠ɀZ : `=Q : </Q\zPb/ RQɠ// /!9`u5@ #.0~`aFpA@00 / /Ð5aCP 9ؐ! 9 0XP P%@ʲ0 #.T00À/@Ұ(@ #.@0~`aFpAP~`Vp/ @~`//ÀS/ J 2P/ ͠ #.U : ͠ #.U :<*0@ :0 11 X0P/ /2P͠0~`aFpAP #.`V :/2b #.`V : ͠~`! `Fp\2 //!@0~`aFp/ /S^ 0 0 1/ ÀY ɰ(/2 &5/ // @0~`Vp </ /1p26`͠5͠1 // / /͠ : ͠~`aFp&b0 Xg0 26`0ؠw /`FPzؐD0  m rx :/ /2z: `u @,/ / p :͠0 , / /Q\ G  /͠x ``Fp 2/ x : /Q\d p8͠|u/ ͠0 / /W 4  :@( @HpP @H`@ @H`P0 K(@  Qg `  @HB 4@H  @ + P @%PO0@p 0P @ D  @P 0 @op0 kP'pp|  C` /@`D ?0 p p ?p n P?ep ?0ppP ?` iPp? BP p?w @? P ?0;PD  .@ 9P   ;azY ~ S _/ PDp?Y@|` U #@w0=cPCрp0p ; Ӏ[ w_p QuNPC Qt@ ;TIа`  fP*z` '] S9)c@o50 |@AF䏣V1d~`V2)fD`0U``.V @ .`T.`).`.P@ CX3+S K KC.0 ,  ,? N02.^).^v]rMC찒PCp4 Ap ˸ Op( T@k_~RCp4 Ap Ԇ(d= R] ; @AH, i*0 @FePP  kTYPC&@~RCp4 @px_Ζ 1&55ؕT`z (43p40B@@`/v;k4 . ` GC JC'GC JC T/N zn V@ f+Y P .-0 - 0 aeipUP0 >; v; v+<܌" (Xs!Rs; rP<w=0(E; CQ 00)%fTADATADATADATADATADATA`z yC IC#pk:gG0r@ t P0 ‚&0 t&0 :6hb@ JC5; r .00 + Ȑu@+ @+ {lb_0_{A \ `5 \ l*E| =5 2)Pd'2 F NTD N N #e0FYQ/,xѰtm)Dxny@VnyP SRpUЖB4(KGRG`pnpSU %55q0K` 0Y0Ǡ  Qe045C0KS@ I 0' p +p @0 ӰP L !P0d S %@ I똈jKPBP79/P 0(u h8+{O"W0 7/9Py9&,ipsd+ͨ7Dg` ENH`簖 B’2[ 4&55+@`Ѡр G'> QI쩠t 1p%02`W@ Cp0mF NC0+ `jaTPUDʌX R]p/?W ` 0m660ML`7pߤ W0mv 0 sH0d- Gcq `WB0H@p 6g9w0dv! @ W0mv =M&bq 3pk YL`2pP j"M?mF <C0+1 ` Wu6(u``v! @ W0mv `Ov&bM+C0m26 hf'v ` @ Np_+`H6EN wӫ.C0X)k@ 0`̙c a4@ Nٮ֑N4+ 0 @p@@0DC `Eu`4p.Dg /4p@WBt ,p460 +C4p pӫ ӫTOWu8/WpcY:mF0rg5m66 OO2  y(y `pW 1p 0DCnp_@ |^@#0 < ^ e j BȓRHlYm<]8d PM%@RjA] K`@ SCPMc /XİT|3z`fOUebVCH`Z y8 #3  0 y 8P x R T0 EV@ (8c*+s F#sM5c7| "4F#s/ \p0° &a}>{S+ 0$+){ 2`02qE`%2рsh)UPS%+7<" рM2 @+q0\P `r+\ @]kc`-0(LE$9L)UPM**+s FĈj# y8q0 l2ZDҬ0rH#TZDҬǚ3L @$t@6Noǚ3LE$t*Bc@:T}xN hp:T}`%2рsЇf+ $+){ 2`02 `Țl2DBdci+ $+%282:TDBu*+s F#vǚU;|DA7MblMF`%2рsa+Rq0Pa*F`<" рMbl0L)UP[op `r+\  j ,V0 gp0p Mp7] Y Ō wRQ  (еV q0pk c] ݠ Mp7}ӕ`еV q0pk >@S ʠkx ^  J0. ݠA a暰2 `31 Mp7}ӕ`'еV r0pk k8. ݠA 2 c &^ k 1w ݠ Mp7}'y؈p卂 r0pkf5f"w(h p'k&֐`{7~n ,V r0pk9fbV h p'k&֐`{7~Vbʠqc}ːbX|-50Q4lP % p NS*$MBLJp f2qO` [[` y8p 0#|h!FfMoP@+F +@+Mɖ PP ju0K+' q ( p0p K+`+3L@$uVs ໌=}bW 4PEVFde`+ !0RT7p E@` EVqP%Mp7~HP q0p !pqPx K Mp7] q@  $'҈ p>H@ !0RT+g@nk`Epsp 7` E Ġ7`ËG GU EPqÀ q 0RT(7U&0p07`EPĠ7` E Mp7 8(Vc/Lۥp ໡nkqֆ&s qP `"[P`"0F7`E @k4P op>00)-r`Ip00# E -Ỡ`IF`F}øЈwcK U8# E -ỹ"  j3еV r0pP+CcPm E24P#cK0 ꠶>`K`E@u cK U8# E -TA@kF&B*3Q spU whU<@ b cK "P %0  0RT{>{P@p0 0RT{>P  0RTP 0i4PM Mp7~Vbʠqc}ːbX|-50 ,V s0pq># E -Ớ}g<$'g(8c`:T|@DR @P ju08PtnkU0p00(TW`" kdȚ~ p E@` EVqP%Mp7i Vbʠqc}ːbX|-50q  $'҈ {P@p `}+V@ (@L$P|` ` |@$%P7] Hs ໹+H I  GOUMC I+Ј 0@ @@ MT Iw I[[ I+Ј3 @0 @@۞/ I? IP4yx. I I[tuU IT IN9`J  I+Ј0  Iph@p}" j Cf `L`"+Q`&rLV}p>K`E@tp`|4j[{>*@ !0RTKcP02/L@2 ~` `kLR>KE@N<Ԑ@2{2E`|&B4j[Ћ{p@gHQT{xMB LЋ; k9ᾥM*p F LЋ{ { @#@$%P'҈@P`" + V ɠ86~pkp 20 I$0B  L0 '@p p*`ӡ I0 CL @P q|0@L +3# M @.P 0P @P I0 @I@VP@ I3BE@@GP7 M@EP! 0P @P I0 L@PJK+0 -*`ӡ@ I$//o I/ IT Iu/L I0 CL @P q|0;x/LFf1 @peLň@PcT Iج@  L 0`z s $& s ໴*Fp F & I@$%P5l0$& s ໴L $lV2 hy60$̈ PP@ I$T Iج@ _&T I0tP0 P Ņ`NpذT IuP I F L`"꠶E@)``L`K`"`|lF  IF0 @0@  M"< T $@w ѰE`P\hN @P q|0 0P 0@0  IpxL PP @Pa  TEIw @P q|0K_&R/ IEI PP*I P~`N s TEI u I ( IPƢ I0 /o I EI PPmI~n9I0 @_ I`` I) EI*I0 EI PP@ II*II`N Ts  @P q|0`z s $ P q|0~T Ipu@@'@p>ܐmN @P q|0 e $ s //L @P R@2wrp |pFpapap`P`apPP7(paapapapapapap00ap -W$A: p=k@k3nI:0`gNMv/xK<HCF81 E(KL( &.2b`<%IdT FJ?MMb%je0U+_*2@&cWz1!f; agޢgKIBg׾{wF7\Br) s)C3@Vr!SIIi"p0XaqQa(&\ԁ@(R:$d"u0y_B `5W\rEa_ Ґ4&H:[e'd4K7y00F1 ŠTN  GufnVql$b?+P=x ~ c? iQ#Fけ ۫@xSG94RE&YiFéfOΆA`  bjO8'"paXIqv(`f%x";AG^W`e3%ghsR)t.WFfl @  |0t k2!Pͬ&0$r2?H H:Eg!:prDlVڇ ^b2)}7&&8T:t6"0'8bF"qJ]8A'c7xDT[1s7s?7 I _RO&5;`5Zs5bZC3 Yiv@/s%K{ @p;>`E2Ƨ) ^U@+ BD`00)5fTADATADATADATADATADATA-v`@ c" #%q| Q V? \J"\`!hoY"رnrP< 'ȁ?(#  ]@, EBeW0ds8'2=PeUUՖhŏ[AKW@@H `@r# Gbł:xRA?(hH\tG(QqN0^BQGYLpEhD~p` !:}Rt޲>9DG6eQ:]'' 4de$T0 D꜃zM|)?OÂ?=}*? +0BpJ АWR~lөjImR&Q\q@Z阦8=oh ҔBzr ZPp(D1ӑͨx+8N%E(Cr݁2:wK)ns:ZIO+"*I_eR 'r]K] Si\纟~ @ŇPZJUS@Uʠ/r%6#ŀ`(E*ZZ(F2j*:*Q7Ss:V?6 .. F!<pp+9-@r4S  bxaL7 k&PBW1?C̔"X@KX2X'od1vywq1_Åo`GD:Ζ `n+TK@dCeEྟ',\1*.uki\>&tO%uЅ/RJH>{@b''IpR~U@G'˭@:rEx2 v@J({΀ڔdmlW6:@ Q[.h]n !`РwF #\G8 $H/ң`) +8"j/"hH!ȸ M:p!(o%惸&.c .ѡ0"4 ~E/N_ A0u q `hA!k`d.M#8}-U <+l5͚) txuP0_&jO|곁./V/Ͷޓ>=Jz3DA={h>S\cw@(p4bM9:_b@ct!s?Ov6B}rAپ|t@]rb1 na$0^  r!G3f E/|FXG2Hs6cwD%Xf"hupE`K [0 +l V@St2ٕ@5@P 'ple 4HlmCXPdH.s`o" CXP9|t ']EpX`[CQP~'eDL4}ESTEWE[E_FcTFgF@ nGr8t xU.bN1PPxN NtNrI-mƌAD ~@ H؍h? 7,`^P)+ +Np*}pp"x0)6 J+PA78f%@t ~FHs@ T0WV+#-<` 8I(Qҵ e[(pDQN` PQ T@h`\RSR,qR*%Y R/ j)WYS;uSф&4ЕRZ4̃NZ y xPWP`!OSYc5pUr:-\# tQ2fciRD`Ys) 7%Sy Z{ٗ`$dT4٘؂x[[[\8\h\\g\@GUCOaN(dMX%jJ"@yM[B. z z# z m#z_Y2Yr!ub#M̐'VYi  (nBq"oa]GTI ]LZ K`5W 8.2z2DClz4>p q  P ?'v@qZL{@Q D@GT* |j$E^*# {ߴT`ij>FoRO\YltY]|v-EPi@n -(X0XP`O *W(rp@ @%$X$ڐ 0:p&RrP OSدd#gS k88BAаRجc"E@Dt2 #~cr0?6*AB!Y8y!A a*`>"?bV/S; {vP:PtPv_@vAY&k&KPA!}0kb ˱; !h% L0f;:‡tQ;t[²`d [Lb˹ Lk>11fv, bg}.K:~;k4Y7;{*J1`e3"v'BTl|#)l)ËK35, RbS f.p2-Tu6pYqZ3`h"gSE0%{k6VеSgfMHI:E0%EgtQ$ &4H&83&aN[x):K  ID|!h>݆ bnq0JRG kRA `!)ƲlRs PLA.63F.Rh5{}bt0"b0d|:;U%r[U ,5`Z;,|@{l;j"v$@|\¨l. 8 x6-A.u6c۽<0{黾 ;y ۻZ I)ZK= ͕  P, #e L2 Qy~50q  L7$۰Qf KSeW֥y |XMm&)8 Wn0 knD 6|V }~m#>\@[6e1'p03 ]P3. [ dǴ ;J[cNtt0yq3A9߰aAVOAdNMR#`eB ڞ8$M ~bP&wk = 埓*P p0;lÐ..e00)=r@pT@TX<a2k]>%9 r MJP0 Vwcrc?b0A,bAtpB$:_ KD`cdȲ`X8>Yfli0V*bd:\%{UO/M-h!xox3H58`Ex|_R GЕҁf7/@/ Her<N~A*#Q$x*l@0f![ Kn@Fm:8\ ):0F@UF "R?``FIjS+ԢऍJU%! (j= j-y P?Вx2P fa PMj 1bb  PME`J'JqB  eHspaJ#HcJ IPJbHd- I@I!0) /J+kbHBA !BraJ.Mu J0L%F `Jp X%~ wgAU%! @-YhP]ђ`M"GT DA9@쀕7f2v@08AJ /p~mypyr Im+"0)źo~5$Ś3U~ݏ_8AR2@6h_P35?I{Ph j@ttQ,ڒ)K9X73 */&u 5*@n*@Є'6Jӿ!!!%''0 ӱ&Yv&n؏؅K@PH H^إ& lԀE !O] ]j:[IdDˉ%UDžx6pLoh %GH!P}G T?  ddF@Bvb}ڏƓTIIIl2JPJv )".T?!K(PK} %:ASLK~$L`LNP T? * AKGd D@pId  T0mApIe  ̈ŒpI.@ČKؒtLVdB0rLK~$L`LN`r/2 <0THT)`<0PГ\N0<0 D% P8P F%]vǞ[U/VWIV@QP ¼&]ueY:]YuY5uAUQq`'eOU[QcP[RPҤP`%VWIV?pV ^0` Iw*`S 4aѵ@ Evʠ_@:OQeXgXӕYUSYwYzTE p9MUU[҅ny$Tq4ǀB Iٞ$T q4@BE d[ӕYUSYwYzTq`'eOU[QeXgXӕYUSYwYzT5 !eOU['V`[.s[(\X\\\~\lP0 R|n]F7~9N0P RS+^qaRXN RFBxp!N`*08F Rvg0m4F  .0> NpmiE)PŐ`'XQB"̨G@A PlBN E IP$I@uD߾~F@BBtn*@N YcP= f% 8f)I`u@p!N<۵{`TXT .1z @@-]l@NF@A$M@N, dNRdmJv>j`NRdmJ TGgX}#Y"HE_BRM>: λ ,5NdE-)/u= 蘒CO&^  %D*LpX* Pwd?Uh "Κ 1SPa}Ix)U tpk0`ұ@X BIdDˉ%UDž+ltc*Ct+  (\:!:V.@M"7c0.zq*' VPVcj`ѽb-EIR-E YR`0=Y5⼻ @^.*=@`\*M@T PsR0.LP8) &؜ @^'fڷm+F³j\*' VPa1 PTgS.%!q* P`P-.+lms*DT Mm=H`*& @`m)-"|`~~& @`mX2B&I~l0`0BR->e**='& @hZpIaNSCD/?u R@jFj/WM j u@opg @U X#1c BDu p^86vlR IFHfװqFʍ 3V*p^8KiI]ưOfװqFʍ 3V*j+ D-p c&&0ud@g) A @^etF6H q l>:'Mq l,jҴ*`!=Ngg֚ T*@gK8>8F,xlp*3HuJvOMR=@ p00)EfTADATADATADATADATADATAжu0 k$[QxtA&!O,pq* Pas.b)T\A .Mg._aa @^t6/]B B0vRU۸̲f'mkEP-.U/Eɓ P-.UJ]D0c*'2lpl~O Y~vb-E[ Ҕjc0.P./_j*P.00p+"P.}` 0)%',S]..) Jdr*} QE`P& P%P%.@2 0/)Or%ʖQ.0)gk-E[ ~ .ւ' uPE` h-uD0̨P!Ħl-X{P@E`].@20 ) PM.R.B  py. c0~`w}F OlʧR)@{..Q.1.Ħ|*} QE`@ۡc"P.=ii+g{*}' @^b)DDU3B%%BU۸̲fLN H|T"5"H - YR ;8mC#c0~1jEQBP00@p+ 0ѯΒ"H0.ж.. YR$5^j8/]BDU" kchNtm.Չ K^Y!O `/!omZ=YP4ٕ46T'{H) 5pT p0V`H FĨlSp46j-%P`$`aAjcӓ50 46`Ic."{H) 5pT p0V`HP`$`aAV81`PP3oAb-E[| 0`PP0Ґ 4#f81ꡂP@~c0. ?c.R*0°~l"S].#%*'aӓ50 46`Ic."{H) 5pT p0V`HP`$`aAM*&0b.q*]460;".2)U_U@2Ю81 ..0/][QpX. jɓB >8 ~rC))r/~g. 0" /~m!;F}&F " Ӹ@? O7uY+~~ɣ d2FFl1{--.{v-B~-4-Bq]c**~fP. .&𐭑h ~}N-~g=0 YCP. 061c_*\"l lPlY4npB +6Td@-0)9)l@)P*0|@pP0l@p 5* |pP0lvp 50P0l]R^BDDAIdDˉ%UDž! k0¾*mRA0@ 0Ґ?O; IKU6sn6s3; $F`'WOC 0 ``PL   9kR`>x_@< )Q1 k73u DR!)5)0°€)8)80°€) N0 $Y~/~@Pv~/~3ҩԂd*X 3 + M^p PvFfa^1ᔣ*M @u Ƞd~^$M @| 0M0R- DD @Ñt g0pJ! ѤϳM awF PRp 0@ R w{d2 w{7h._ PHDdIݘIy P_+ I0 T?? I! I+K D+@0 t@l^ 4D0  IwASа5Ւ"`> [S-`DANASɰ5ղc I0u+uP0@ RL||@;㳡d2 -`!Dd2 }3;#t2 0 ؒ0pJ!*۹BE-6 R]0@<%R]0@Ղ< I&"xRBDD1[IdDˉ%U[O[O[G4NQaP0u`<%̴ Z)~0uRYh٫lБF.S*' VPVcj`٫l]`@o$/|lXl0=Y5γ!V &S* λkPaa٫l.S* \4` >VRuP,FYhѽr~0uHV00)MrPalpA\  P @|!Vi@#lS* λkPaa٫ld#Z}@KYh$~0uʦ8.~0u4`/`n.EOlЮ5Dڪ}`;VrK@^!OoP%N/XI{ E}ylq@aЗЗW β_Z+v`*vT @#v)t`p EOG tα + $ M<@֊{2Y$t pP` J~ NF eMh@֊@kg[`Q2yt pP`*DTNIdDˉ%UDž<[ w&QP0w00wp z8 0 :,0 PSp 4P @.4@[Xl\! % ! ; \! +p pp0\1 `*  \ `0  @% ! ! !0!@2 1   ÐL җ @ 0 PRp 4P .P  !p  _Y 0 0 @a!O7 '.0 ^. >`MY`^?. ^?0u0. >`MY`^ ' `\0ϳt`M0@ P,  Oa`GaP @  ! @  ! T0 6o v Scmp w` ) p`@N PI `ǀN PI @ 0 À p=P?X`J  n@ ?P .0 sg 0 `SRp`pӠААӰ p Qp?>l` ]c ` ? PHo6t  p ,6^S]couP;`H# p , ِ-6;`056<` u@ # Iu0 P0 @@ P0 `^ @# p`0^ @)x v0 `0u  /0   @ 0`*`   ` 2-+ ;x 4 p `0 ` >p˰  ِ-xi:" <@ 00 d! f_Y^j$L @d:pSScV0 8* ` `ƀ^ p` ज़ p > . p ِ^ ِƀ^ `_Y^%@<Xp ($RRSm `  03  P@   0 >pp ^ GXY=谕pP@Z~!@ @P: @ ױ YS  P  0Q8@P0TV@ d @ Y  `2 0@ P80 ` uu@ wAp0 `@u Pu`0`0 @P~ `!1 X %zqD .pD 0 ஍z ""0  pD .pD "ð P&0l@0] 0 ڸ>    )R0 G G G "G/ð P&0l ]°6^ِ]c 0 V0E1@N `@&` h|!\P`ST NX )Q  p  0Y}+}=  }}%      @  0 0 @   @  bm BR `  0    `P       @ p   @   @  @ @ @ @   @ &UAPPUAP???UUAYA       N}Ad  Nlw7l???YYA}BP`  fpD p@@ EW ` j` 0B0e Bp @# `WC@ސ30P Gн " JE5 h   @c K@   p\;   @ B pr WC~A {\`M~Mp ,@ 0 ` r  X`P  `*)c`πp 9 $ ` ` p 0) X`P  /2 @ P` M Ѡ հ`!0+  J  PBmϐ K $`0`M0~Q%8` b~ pmT $00)UfTADATADATADATADATADATA[)/0)@PC@  `!@`t  @= 00 J   `!op{ 0  0 ǐ @@`5~Aw W, OP^ "   (@ n!`p[ `3   ` 0l)UV0E,N,@)^] RRS0 ӰP ~@Gp: 0 0 k |q`_ 0 @0 0 I P Y!Q0[ j9 p p@P P 0Ň ! b'`FIc  v G,'`FIc  ~yG PGp{`F  HJ/ 0bp0w9  P]x#W' p0    t=wP@P PE056 @xÀg tsw P6;`056sw `]0 [Z/Pp& e g `JX //Gj6;`@056ð//Gp`Py u :v zp       p`P!@{`P;`056/@oT@ pHu p(T@@&H p @ 6 N/TM=DswrDJ2g>P>0 N? H'`xP2`&N? rDYrD@/sx#  00 0 1t 2` xP ` M p wVwjrp`0@*C~U@. !֐pݰ]F&0plِYېY )1U Q  r 0p`t @0gѰ˰'p@T )03P lĠP `   @ 3wtP 0 FPppG    ΀u?@x`@0\@ Ѱ ѐ Ѡ s@ PZL |`s3`p 0  0000:P @ P  &0̋ @>cP t`WRD>80) t   @R/>H@ p000  P0ɰ@ p000-@ p000-tP t  @X3 @>H\ 0 A@ pP 0 A@ pP 0 AQ t >0Ӑ? P P0@D >H\  @RO>80I t   @R_@ p0003 RO>H\ @R_U@ t  @RoP]  Y Ѱ˰؀>H^a'U VpM 0_  / P @3       PUG <> 0 r T D@\  0 3  0 e^`Y_jc>0bPpAp Sp 3P> P |нQh30 ~нQS6% `G+0  [\ 0z|@'0s+z|000°P @YY0 :`WP 3xX@ pPuǠݠΠp Ԡ P p )RgP 0 p p )B`z P ͠ tPаN "wrpp !ȇP BаNP a(pls@"F0`W 0r0 @VP  J@/ аN@wr` pȇP BаNP a3` 0000 )b32 ) `bаN "wr qȇP BаNP a3 0000 )bp P]@UoX@e`A@ ~).B6 $te/ #ЀЀаN 4$e @ P 0@B/P 0 @ @Ұ0 & e 0%Ѐ @ P;Ɇ`56 <z3d,D@ T|PD@@0 @E @` u YY@ӀdP .%@/ @4 ҠҐ` '  \P@dPs@  ؐ;d p3S6R P/!~ @`  ذT ` 2-\P @@8/ 0 , Q)"p`p0@2 y/ B0 ð ݰ/0  1>@ 0  `B@54  @ @ʰ/A* 7 @ @+ ` @`Q8   0PP@ p  2 0' S6;Ɇ ` ]c``r& & S   0   0   0ᇉ@l @`t@z4=@-D@ @ PP@<ɰJZ @/0,T F\H   0Ӱې,T \pC` X'  w00)]r@j3HLp0  Ѱ Ѡ 0  ð  D}  ٠?\0 ۴ @:eL uܠ`DQ8 `pt@0 аN1`@t @5\0DP0€0 P'E`z) 0հ Dr 3HLJ0  Ѱ Ѡ 0  ð `5@jFj/ 0 /\00   D.P .P .P . 0 E ui t PrP .ݰ0@@ @\Vl0DРѰ  `Ű 0 ° @& t3 0 @P;Ɇ:0]562  y   >l3]56D @DP#DPd@ 0 VoDP8`Dw*h|P{`@ t@3 x! 0 H/ o& & @?0۰kP;V0562  ypWp56p lPIP ]3-p `/! ð oDPC`Dw_L5h|P{nP#d @y0Wp5 6 ~2 x`ÀT ðڐˁ"H5 P?fg\ ~ p P 0 sq0 @ @@D@@J @0    װa@ Ѱ Ѡ  @\ f0 2 IJP냐@D    w  Ѱ Ѡ @ >x1@u1fR1  0 ' 0000 3j`` 1fR`DPٰ`DPܰϰ:e>l 056 `0p@`t@ t< z%@tT@` uf 4 hl PJ%` r3hl`@p NR i@ P;`056' 0 D P;`056` u0  V6;`056ð:e/`5?t`|SP @0;`P056d0 P@ >lP 056@0 p P;6]056 ` pSP;`056`0 " "  L 0GGCV0 o ɐ@Dp< }=DÐY@` D%` D 4 dHu/@IpDP 0۠\00  rGw|p2x p` Д0rw@@@9#21t $xP1tP@ٰ0#@ t 6^*056/ ` @ .p D$3 0   )ќ М М М М Мw c>l056D>.P .P .P .P .P .P , 0  #u@ P %@$0 RP`,!{A`D t Ѱѐ Ѡ -8r09 Pp ps0p50 rP 0  P0 0  PXpݰ0 Ѱ ѐ Qyڄx 0Psp l_0 :p)( }̀ PE`Vp y`pp P:Pu w  }Y?Wup t u@m_0  S TP. @ xQ`@` `P7^ ^`S^0. WQ`@7xP^Q0V TP^`Y 逧_0 PV>l056p^Ið @B]R [ 6^]c?  T@Bs`x 0PV `@B! @B^p$xP_^` @u H@xP9XQ$; 1 WpxPx@sR [ 6^!]c? VCt]/ x@Bwp]MC0 $t xP@E_0 [' =ry@ pIwsW H 38  <7xP`@E0 px* 0谕PP;`056pa `@$xP/^$ = @ xP @E0 k0 (p /0 <88p> 0!  !   @0@ !@ 5 !!;"@ % )05 !!?0! #P`3 @o!! v&`!01`4 B"@ n0 "P. ).P ! !3!!a!z B`4XR` `=0% !Zs=)7Pnq!%P .*Ws9R!QH.!. 0 `.X0 N\P`$0@R#V)BS'+Pt`]<``$($0İut`N RpVH @@ ` #P ` 1`$a1ܞ`  ִ ` ;R a15`  Vp+Vp+` p5 `$a1Ā9 +@  a1ĀPt`]00)efTADATADATADATADATADATA<``$($0İ:t`N +,@ Qc ;6p^[`X\P` cB)1 $0 %A& ~@ `IN &NPP`r+(e`*< cBj@@ r1B -@ QS3u3bY .a1`3@i `ɳ1 ,@ - .@ Pd$@a1 ;S@ 4@ dVp+˻ ,@  a1Āt@MTv@f!`r<A ,@ -t`DA s` . -@  a11` `û4a1ز @a1p]0 4@ -[`t`NYBUTa1F_ЗG =c=P*`_`p`p >&@ @ 'α 5gQ t`NR3R/5*@}ylq@@&w &7.@   "? t@ %0]3 VHa1p.R~*5Mp`p^a1 yxs4.aDL@"#YG̋"`:2ZX``iA:2@c8a`)@9A׿HHoƅI@E~uRd" XepFwٙX$rt^Ŀ;ވ/&?MXH@C;-3kAFXWl} -+6XqƏ#4`يX/Ȉ>L :p<ySO@H9@GC c膗P?'#ͻn~&=|so@G~&jvdw\rFh`suWc sA v@G'%dU@mW ^a(?7hb p>CAN=J)@GMA#Ea2dNN$Cڌ:hƘc@&mV"|'bY:'^h<%P9],S" DD{]E(@QS(~88AG~y*.\41I(Q<cR EZA..j=1gDGjvjEAG4T: k>@4:Z 1+RdNk9 vmL(InJLJ[ '&1#/lQG[LOBX5Y@#X8  YPmLh ʬ,R$$Ԛ@uNʔB1+S*.4_F킹]F, M*og? 2|pV0: BfC- ؒ Б<&CuhAB4n:p<+rDĂ4"OB;s:ű. c3& 4|?ٯ M Fr)?A1L@=d=qkDnnFB?Gx!@>ٻ60 vz܁ pԣ Ł ЃPNct\3G1v@L`bD !H@ \D2k̑١e^WB6U8q*A %6K'<iM*(H RJ 18sIVLX0\z`$0A2o@ZM|d3A~NZ  B0&(6Uc :9%LADX`Aj s(\!Ar X@ Pb B&rhvIٹ$d[)HDf`Hx'r kfE7,bkF"`4g _N.B( ! S@!< u (HH3a4M8Lx~uq=` ,'X@33d#xr  K2e/(SP`@5@ !F8%0 Nx )P Vpx4 ngOڽK2jgt# u*3 E` ٍm O)AYp< T“hA܀l0E E a1جX,Wy7 8a A0cxCaʆ9 M?![  )Hzu+;¦Abfwh9yI;R67~`%p{DkFTsDgt0{I`)`._ H]` pp^s/U.fS ED 0E*0-`iM`[N@,XEǂRRPA@5wiEoXoS^u,XfnbPwVEjC@LUS'uVjYEhy pk@x Dxvreq,'aôgAK6}8>oV_2Pn]eZJ_u.p..rik`J$_,_APP]tg pwqg)o2_` tO͔e  `D]Yw&m@qnpC@HYD rr8([ga@b& p`&am0u L:[wyMOruTK1[4J0h Pn|8VvpX|e lP| crVdsRhXħ|tW#YdPV>:XnpNYV/ZZuhY φ.Ec_NWVg@Xz}-YS qipeE /lZieo@dC`YVf@X-OraUM`Ya a0k|?qlw@_nPwXnuW 0po%P@^HPBp"l BZP=~Y`KYC~(xjP~((~(+~(=KBZ W@є   P   $Ld~QBZ WMXpѸi^D@LkOO}hQдۇp}HK)xI7G}L`ג}lג&- P@^dKY`dKYu@Y'JYBZ KvZSMIWUVf Xud_] @e`l{X@OtW],sNY"m@e`l{qel@XeOLVieiPՕFXյDPvVg~զUkw_vVe`iP ieo@PVUq2fLFnuc@FVbYȱDf}hO@TGo wqLc`u9M @UNi'cȁBo0vXIcMB@4 $Ѵ򕑜u $anuupX5P%WpJJflPxP.[|K,Kv nRG1 Rk\"DS @ @sB@uuupX~xM1 L:e`'(@GiYi2voPwXn%)kXuWVtElhn5| [ YЇERE ƍn0Uo5= ƽWVtElhn5|L_Ǥw׀} iUsa`Xd_ B@fmr.u$$anl|cpX9pB@.u$$anf}uupX5p Lv LMv B@a.u$$anmu7gk`ld  TK C*Y!$anmh.5h  V n"n?OGO0ppm206#W10g#@&f7zP@;@ @1 0 "cPa9Oa0 0  B   6 @    Asu3QT%+ + %P tp א `q  `CP  X+KKR %&+p&&&+&0+0++0+pYW`op`/% % +p&0lg@K`A% % +p&0eppKu %P+ +J@ Xn@:Z`bp|s@:5`upPnpKL& + +'@EXȱJJpb7ȱJc%p#ȱJ6pbPJGpIY,,U(+(0+0++0+((++@hdʔP|s@6QЪuc`Pn00)ufTADATADATADATADATADATAL PPr OQ€! ?@@Dddwc|m''.PxPV:`=9 C*YC*Y'.PxP`I6Yx iv`lB{ʧ{x Y$]@K`kjk;`k G`kI`kK`k6Ӷ>@]H]A@]Mކ10ra;`k [0rJ`k6Ӷ>@]A@]`:`kb0r c0r@#G`k[0rJ`kP#L`k3mk@@]F`k s0rԕF#H`ku0rx0r@#@@]``kjk$#L`k2r@@]KP:`kI2r-#>@]A@]0rF#[0r0rP#0r#0rM1r c0r710r`e K`k5H] K`kjk;`k G`kI`kK`k6Ӷ>@]H]A@]`KP:`kB`kpH`kJ`kL`k0#7Ӷ>@]H]A@]`KP:`kB`kpH`kJ`kL`k3mk@@];`kpF#[0rP#0r#0rc0rm#PZ7P Z7P 0rM1rjk >pae K`k 0rM1rjk c0r7PjkU@@]>@]jk@@]d0rH`k >pae  >pae jkJ`k5A@]>@]jkJ`kԕ;`k #B`k[0rJ`k6Ӷ>@]A@]jk G`kJ`k6Ӷ@@]F`k c0rpH`kL`k3mkH]A@]`aF#H`ku0rx0rjk#0r#0r#0r#;`kP#0rP #x0rjk#J`k@@@]E#0r#u0r#0rȁ#0rjkP #x0rP #x0rjkP #x0r``kjkL`k@@]ԕ0rP#0r#KP#J`k@@@]ԕ[0rA@]pp9 Iy/א I] 9' B#}M \@$%@$@$@$@$@$@$@$@$@$@$@$$P Mׇ,-Y?MTtpcnt_XUexH `|teva svoJJVoJ:[u@pPieiP:PB4DG`kI6 0 1 $P-- $@( +%G( WZ׽qsR[?P-PxiwhUlVGaP @X 0/ QsOafr iVRPqPV[}oVmvq*4\jnKB$t*Vr*DJЈ>"O[8Jϰt*[KJq*r*r*oJoJJK"zoJlI6 u0hRxcntO7 @osRPPs)7 @otpcnt 0/>o{nOi| `o@| @hVW`y*DJ8E4`y*DJ>UB:0t r*t*r*K>/"n&n6>SP"& A,0cEls,`i,pRKYcLcMvPPtRS ,@NVep,pXtZp/HPlv-|* ~MI Zp [ZpRPZ'T0ۋ<_=Φ]7A @bNWP=i(T@6[M0e SVЁͿ[MP]0e B/ZZZZZq*ZOZѸZZL du7Ppu'UuLeL0lڅ~N N 7~*LFLTyjlȡ S0e:[\ SV (/ZZZZZq*ZOZѸZZʰL[ S] C7HHx$KoJZLI2/dvvwռTz'<\vApYEi05-6`2-2 U.KTwY`|Toa5VV]UwW6GPn `jUZU/hUtfyuutXnuWUc$@F5XaUXt pn/hUtx\}o p4'<4oWZJ tNyX4aUQ8p2f} PvYutX7&X1|bU_~pk f}G/sBbt*b%oJVr*uLKz*E\ZPkb%Rr6x*D񈧢LppAXW}jpu EPX5YGo zVlPmޛw:PuX PuIh|flZl@XUWZ)C%/2t} `n "[}GO2i|mӯMoZUx`X/caev#0t oo|w|?qlw#opGomϟwXoop: /[paUt/ppXSUr|f0/ vɬN[ޅ[& EPX5Yfot@Xgf}he`aWiEPXnPwf}hoqYg Nut> @@i@f} ?/:piMxopGoQucdGa5t  P1F:0e GX (VYu{f[k7l `iPGoUgiP XzP:piF}saiP XzP:0n` 4`:p*jkҪDJ>v*ȧB|*$NЪBxLs*[R7 MbPЪ,PVft9cGp@u @o@|R%I 0` Y @P]`@pJ}}P_f@X2vBilv00)}rr* /Ԫ }saf|?qlw @YlU2Xf#/:L@MVYu{TB{}a op TU X%eiP.m b TKQ%:K%_ĤKb nb Ir2[ JKK7تDAڪDѪDt*ѪBr*~*uxS(EDADAڪDѪ & EPXheUX)?p%WtiVb}d>@fzivB4υJDenKLKR7/r*NN4t*\stEPXiPX>PuX x@cw @os} hf}W>PuX x@clriht 0afЗXvB4 "B4v*DJkTuX)YEPXh4&pc@ciynt hf}W>PuX x@cl04ht hf}W>PuX Ecl@ciynm)EPXml@cV >`:p*DJ"B4z*DJB4`y*DJt2`e_hyu_4:ۨj_0"U7ucSDSZPȰp*_M&M0W0 z"zN!vYip8{XuuX]V nH@P] ј ?@xM[]_MelL ]2]&$ro7 hlZo7 J AxzمmvlFDLoCV6Da%oC*e$|ld_  `7u*;@Kr*Ȝ$Ɩ/@@P] ј V$ ј ?e8%z$kLAxpԪ][ Al4$n 0  CVS]] :@0--?@be# Ѵ+Z ڪ:ڪ::Y֧::::ۧ::::::::::::::?@w > VP 'pܧ::Y::::$IKx` n-KP]pbUVgpUm%m5c`Puc"`O7>t_XU}-IIOtVr@t/`iP pYmBiYkUVX @.@ LKcbKP]m@֬i|.Kp$/L  Y f6 tL|gu}d8ibnPqPEKmvQ'|P0XuXYfpX5ePUGiYi2hUXUo UXŞ%UXT[cmXvmvmvmvmvmvmg u0@0@0@ BP0 6eE p0P؀ l1pp0 H 9` Ӡ5 ڰ;s Ӡ5 ° N F@P pLPV0€ @ /3 00 & t` 0 L6`%`u` A./@ @ u ڠ -PcmiP|/ut 4vU  PS! -00]@k@@@@@!P7PiPP`+`:`C`L`b`u````"@   pp-@b'A1  0  ` P  0   PP  @ @`   ` ` p`PP  @ `    P@ 4 7bo͐ IcvƠ-2Genk(7U\Pp@@ @ !`!!p""#$%`%0&&&P & &'''PJpppp7hӀ)uETh+D Y00 f4 5 56666`777 70 7p_EPjՀ#%WEVq1Lgq}A`AAA`A A A A AB BB@BBP Bp S6P`plp[fÀdIp I` I I I IIJJ J JPJJ K K KL@LL0Lh~NN N0 NO OOO[` | 4 9 U 0<0KuSS0SS F:`MP `&`/`4`yFWW@Wpppppp #bX X p:Y@ Y0 Y0Y ZZZZZ`Z@[[0[[ [[`[[[[[[[\\ \ \` \ \ \ \P \]]]0] ] ] ]]0^ ^ ^^ ^ ^ ^p_`__ __``` ` ` ```Paaa a a a abb@ b0 bccPdd0d dp d d deepee&e e0effpffff@ ff gg0 g gg0hhh0hhPhhh0hhTh h h` hhPhipiipiii`i ijjPjj@jj` j` jP jjkk@k k k k kkl`lll`l l m@UZ)m mp m D49C0Vpp p@ p p0qu(60C0 sstPyaXt t tu@u u@ww@ xPy yyy`y`y@ di)7Gans3L -6Qhqe@@@@PtP` iАh)G:@ ` LL5 L L L5  `@0 Pp@p p p   00)fTADATADATADATADATADATA r L N  !     :P |P P P ` ` $p p π ؀ ݀ ͠ ° ߰   3 e M ?0 y0 0 0 0 0 @ C@ h@ *` [` p` ` ` Ap Lp ΐ ِ d נ b  9 2 Z    _ L% 0 i0 0 0 0 0 @ 6@ L@ t@ @ @ @ @ @ @ @ BP `P oP P LU P P P ` ` 5` I` a` ` ` ` p (p ]p p p p p > T L ŀ  9 a   # , F [ `  < A "ˀ  ˠ˰̀̀p p ` ͰP0 Ͱ P ͠ 0 ̀ ͠@΀ Π@ ϐ0π`А`Ѡѐ ѐҠ PpӐ04 0 0 0 0 0 '@ @ @ P P P ` H` r` ` ` ` ` ` ` p p 1p Fp Kp p p p p p p # 1 6 ׀  " + A K P e y Đ ɐ  _ Š ݠ  : C L U j o Ű ʰ ' q  0 : R [ n ' < I V t # 6Rk50 0PP`  pPP @  p p@p00   pp@2````````ApJp`pnpxpppppp (OT}ܐsŠؠzɰӰݰ3fs $8t~7tDX4W   + 0 9 B X q v   O0`000000@+@D@]@ӂ  p0 p P  PP p P T@ @ 00e0v00L57@K9%ÁP` ` P 0 `   0 @ p  ` p P P@@@   @ 0  p  p0 @ {o-  p z 0$0@0Y0e0v00000O@@P8PYPPV``t&vgpppp:((( (jްކ ,-- -`t;h*KP  ~303 33T4405 555 5 56@7@ 7@8vFfu7KU"1L`)yɰ<<< < <@ < >>0 >0>`?P?P?@?@?p @0 AB>000@@QPPP `B`p```|pppH0H`H0u6'X}v<000000@ @@,@8@=@@@@@PP(P-P6PQP[P`PtPP``*p7 WX XX0v`vm*`  L(Mhb@cdd0 dddee e e g:```` pCppppf|ŀi֐(i֠\ӰB l lP lm mP m mnn0n@ @bi  10O0~00@GQ t@uuuu@2ad```ppOgy+Ґ!Qfy 2U'F_ |P |p|`}}}P }p }p} ~@~~~ ~ ~~~``   ` 0`00PP P P  0   P @ p P `E@= `p   p       /T9TpT0 G0 Q0 [0 e0 o0 0 0 0 0 0 0 0 }@    6 D N V ^ h p x  p x KʄaM9aO؅a*dؓakhaD6,Hb"X9b(ؒbd)vbي+vc;1-c/8Xc`I:cĎu;Vc-@6Y dAiA!deC&Y;d UH!YdpIV(ٱd̒MKV.d%P&Ae5IQvEeeR&J)eҔSFae:UY&gٝe-үe h٘f=rٰg֞#ڟha&EZi|=L3iO@-5,A(B(C lPMQ $RM-R֘`b#ֈb,0c ;c $qq $\C5\S5\5`6C`@6.d#E6dM6dS6h36Ahc6_h6h6hÎ6h61l6l6lc6l6p7p7p@7t79|#7|7|80s8S 8΀s 85D8[F8}#H8L8CO8^c8#8Ɉ8爓88&88s8ЌS89B9l9c 9ːs?`PR$R|a%b0cpNHq(rA2:IC : :Πs:DcE:|I:3o: :^:3:s:f::جS;G;# ;ư3; F;ƴsN;촳;=c;O;c;;%;c;S;ؼc<7C<< < <<4ED00)r4&̒O2G>ڑ~`>"C >Qȅ>|k#p>}0a^A>?pďmC??P?p#0?p" ?CCX?LhX' tx'V x ' ^xh'H bE)Q b)p #B p)p +B )p 3Gȇ+YG-Q -P @"@)` DXvX@H2D@R(G> 0 `1 @QPP@hp' ql A `Hv ` A\E$ l30` 4  pT8 LM<0.\@hG0 %H !|HAX`xҍ "4@ 8BЀ 6 $ac'6Ћ c 8@ @:,m":(<ph~x6|h8| p p@!E"(&`vEEhQDa EB:PkaDhqg!G8q, G6pa_2,p #T80$a \X %C P %d# HB$ H2' xB= ' h"0& ?h& `+ &L v`& -`%Hc X;kF x9axs`<CP=!uC1:ġoC갆:gC0:_C0: P:|:\:< :E:=:ܰ5mbX֡uXaRXn#C֡uXbX.aubX*aucX;֡ucX7֡uXcX3֡oCpavX>au쨯v6` v&`vhN`avȁn`av^`avHk;|]Vc+ء v`'ء vX`#ءv`avHhG ;yP;qkb;gCpoavHNhav>havȠ.h avhڡvءrhڡvbh!vh)!vR`  ` `~` ` .*&"66  `` `  r@7 / `8 "` ` ` ` ` ` `  ` ` ` Њ&" :62.*FB>b^ZVRNJzvrnjf~Ptpzpppppppppppppppp ` ``@ @ M 0@ p  4@` $ 0x$ 0lp$P 0$ 0H6$00$p %7 J Z U@L@ } YP`1j @`@ `p0F`T)- /3 8t@*DjHLP*WzYХ,ڜW`Ef: `y : P; @Щڨ@0 6R + рJ J@,`.#  P@   :  Щ@UЃS@ p00PP mШ* 00  k0~KP0 ˮP +* :  ʒP [ 4k 0@SJuPN F:ʱ[\k:`SJJնok`PH ж^ `Qʯ{][Fаk kJ붘[Fp!K۲F[[}F!; +CH;L*:} 0) K吼ʼ pTکZKdP㻬 @0 {` : PGzKԛ  iv U`9 7`@@*ɪЬ ъ $[ Ь 9P' ) ,\ /1\3\öL; K Mk@jH`(CJE{!+vW쵨v꺰  Kp̀\ą :490Ȗ = G{0P @+ƓSJ pP  n[pa0 0>@@*L ~ *[ݏX0@Xp ݏX0ݏX0Ǡ 0>0uPEP@>@Op$= J>@0> O@ ^ `$@@p$=~ UH{ 0; ݏE@E+P5P  I\tPݏ a0 0>@Pp()a0 0>@@zه0p ~ *[ݏX0@Xp ݏX0ݏX0Ǡ 0>0uP$`$$J2p$`$"O6@ $J܀ \IPCXPP2E0EP00>U@  (ݏ~ ma0ϛptPpp  0"Xp ݏX0Xp ݏX0  0>0uP J>@Op$= J>@0> O@ ^ `$@@p$=~ UH{ j0; ݏE`E+P5EPI\tPp>X0paϭp~ sa0ϛptPpp  0"Xp ݏX0Xp ݏX0  0>0uP`@>@Op$= J>@0> O@ ^ `$@@p$=~ UH{ q@; ݏE`E+P 3 Pp0>U@* X&{ya0ϛpuݏE`E X&:a0ϛpuݏE@E X _a0 0>@PXp a0 0>@PXp `ϭza0ϛpuݏX0ǀ&oa0ϛpuݏX0 Y  a0 0>@@Xp `>X0 Ypp  0"0,00  Qp P 0 4p 0 , 6*0Ǐ 06a hp 0H{@p 0 H{@`mЩ8~ -Щ4~pݏX0ǀ&>X0 Y: ? a0  0>@Pp0uPf . *@ 0 B 6*0Ǐ 06J 06zb hp 0 H{@`  @2`   E [3 EPHK  Dp f P<P< ; P5P[TLHK  Dp f P`=zH띄p (`P`(= p 0 H{@`6* F 2].Щ@B-DݏX0ǀ&>X0 Y  a0  0>@@p  * 0"0,00  Qp P ,0./ 9tP"o `S *0#0J 0 0>0uP08J9pп@ 4vP] wy@]E?|m DU۾[ J 0D1~ QꝳN DN@?|,ڹ^  DU4w@L]  2p0bd 0 H{@ o+` $ I:Pn $` op@PH띄p=М@?  @ +p(0O P? H0 0 ۚm@\ lP } հ $$~@ J LPp ~z aPp иP E0V 0XǠ   QPJLk рs0] aPp 0 a0  0>@@jp ~ *0*0. 0 0>0uP00*H{ p0Zbdop@PH띄p=М@?  @0 l DPp @pJ 00J 0>@Y . 0DL a0  0>@@p ~  0*0. 0 0>0uP,0.00)r 0 H{@ p PV / 0 0 0 l 0>Yj 0J㇪ ]  DU4v D@?l DU۾[ *  P`0 J 0j 0 & uP` 0J ݠۨ~@]E?l)K п@ 4vL]  p$`$ J $ o @P` $Jnp$o>@  $J 0 H{@ɶ0hٚ] >/ 0) Y y 99 i i  *  z: z VV/ V V VV?Qbe/t )00000>\v0(0E0y0Fu; :`"`6`J``````+Ie})c@p#>##p8Ϫpo *  b0 0>@ up>ܺ  -  b0 0>@ up>Йb0 J ϛp@ p9F` 0p X0ǀpp 0> 0uP 0ǀ`0`@LFH{ @; E@EPO@ v`p`3 Q ID* ϭPb0 J ϛpPp) ;  b0 0>@ tP}j p0F` 0p X0ǀpp 0> 0uP >  p=  > 0> O@ ^p`@ p=~ FH{ u ; E@E+P8 P 3 PID  Fb0 J ϛp@JpjLo  [X0p X0p 0> 0uP >  p=  > 0> O@ ^p`@ p=~ FH{ z0; E`E+P85EPID嚨X0paϭpFpb0 J ϛp@JpjLo  [X0p X0p 0> 0uP` >  p=  > 0> O@ ^p`@ p=~ FH{ @; E`E+P8 3 Pp0~mLtPX0pa M z b0 0>@ uE`E &70b0 J ϛpPPPKIb0 J ϛpPp ܪ _  b0 0>@ uX0ǀ&ܺ e  b0 0>@ uX0ǀ&lb0 J ϛpPp B q : b0 0>@ tP>X0ǀ&p pjLo  0J 0  QpP k 0  p  o 0* & 0   0 H{@ 0 bd ٮ  ٪ p `p pb0 J ϛpPp޹) }  b0 0>@ tP- j X0ǀ&p pjLo  0J 0  QpP@0   { 0H{ `0 & 0   0 H{@#>#` 8#2` `)` 4>@ u Cډ >E [3 EPHK  p f PP< ; P5P[THK  p f P #>#`L#p8=##PH띄p0>~@ 6#   8#<ɀ  0 H{@   y] ЩBp `p `0b0 J ϛp@JpjLo  0J 0  QpP * 0 H{ j 0 H{ O@ ^p,@ pjL`S  0 0  QpP  01~ QꝳN N@?lZډ = @?|m ȼ  01~ QꝳN N@?|,ڍ = @?| ȼ 2@0zbd  #0 H{@##0  PH띄p=М@8#n p8މ o+`8  I#p8= 0  +`    0 #P?  H0  -ۚm 8 P##P 88jհ 00)fTADATADATADATADATADATA٠*p`LݏXǠǭב ݏXǠ  fE#0V 0ڕ ݏXǠ  fE#0V 0ڙ ݏXǠ 0 b06 0>@ tPj p0F` 0* 0j 0(0> 0uP0@ 0*) 0d8މ o+`8  I#p8= 0 ^üxp p ` 0  0> T  0Lk :J ϛp@pjLo V* 0j 0(0> 0uP* 0 H{ j 0 H{ @0bd lEVP0  ^.00l5  &`LuPx  01~" މک =~  4v bpп  4v  ۾["= lEVP0  ^.00l5  &`LuP0  Jڱ =~  4v] bpп  4v  ۾[$j8j"   J8#  npo>     #0 H{@`* 0hٚ@L]9ʼn 0ٜN 9L & @pݏ X0`&> Ȁp  O X0ǰ& O X0& O X0& O X0ǀP0 Āp `PJ >@  O@ 6 X0`@LJ p =~J ` @p&@ p  p @ 6 X0`@LT-j ۠ PS O@ 6@ X0`@+J p $0&p &0&~  pP4 p $6 X0`@+J 2k >     0> 0`p&    p  PG O@ 6 X0`@+J  p މ0O    0ǀ`p;p =j J mc pppp 6 X0>@  ǀmp&p c pppp 6 X0>@  mp&p J 0ݏ X p P&&> > X0pa&֘Y ]©I ޜ+ 9-4HXaŀҀ݀=`P`r``4%*@pc0+0Ic0/0cI:c[I:PKI <0H{ ; 0P Ec0EP00> 7  >0  >0p0 B0 0 F0`kډ ; 0P&I@ RS0QY H  IpJ0މ O+`J0{H0P 2@=М@J0Nۀ 3 EEEr0ۺJ0 ߰vJ0 H0 L0Ҡ   D0]NЩF0B E `  w ZcpL@L-MP0L09/0ީP9Z J Z l0jn0jp0މ 2{&p p&00>0D 6 X0`@Lpp0= ~ pn0= ~ pl0=~ * 0 n0ŪPpp0މ y& p p0pp @ ^݋@ 2{`n00>0``̀p&`r00> 0  ~&p p0p G@ 6 X0` y& p p0pp @ ^` ~&p p0p 6 X0` y& p p0pp @ ^ ~&p p0p 6 X0` y& p p0pp @ ^ B@ 2{`n00>Ǡm̀p&`r00> 0 [ ~&p p0p 6 X0` y& p p0pp @ ^ @ 2{`n00> m̀p&`r00> 0 @ 2{`n00>k̀p&p0 `P d{p0 y& p p0pp @ ^݋@ 2{`n00>0ǐ`̀p&`r00> 0  ~&p p0p J@ 6 X0` y& p p0pp @ ^` ~&p p0p 6 X0` y& p p0pp @ ^ ~&p p0p D 6 X0` y& p p0pp @ ^ B@ 2{`n00>m̀p&`r00> 0 [ ~&p p0p 6 X0` y& p p0pp @ ^ @ 2{`n00> m̀p&`r00> 0 @ 2{`n00>`O`̀p&p0 )d r0*)zJ`>@   0>` 0`*0`@ v0j٪t0Jx0 Ԥx0݌Ci3 k  v0 ;p D%@   0> 0`*0`V @Imp|0j0 0pl М@`~0 Щ~0}   v0]nЩ00)rz0B%* PkN>/> g剟 / =$%*@pݏ Xǀ `Ԁp D&>@ X``p `p&G p0 Kj >` @ @`p& 0j 2p0= `00> 0``p&`  0 2 0j La00 2@o `p& 0I  0j p00O@ 6X0`>`  @ 6X0`>` 0 @ 6X0`>` 0`6 X0`@L` p0= `3   2 3  7 0~ EE c0P0 IE @꾚0 `PYQ0 3 Pp&>@ >@ X0pa> X0pap0Ѐp&j  0`00>  0ǀ`Ԁp&p  p0=0~ ` p0=7 0B= 0 0޽ 0; P0&I`  RS00]{&` p 0pp @ 6@ X0`V @Imp00@  0J plj   hM`0 Щ0}   0]n Щ0B R05T0H{@j >`  O@ 6 X0`@ 0j ܀&֘Y -P0Lp>/fr``````  * 9= U p DXg{Ҡ᠟@@!@2@A@P@m@%*H@pݏY0&p@j@މb0@p&`p @pppp X`4PСp@=@ `p@= OY0@&>Y`>Y0pa>Y`?Y00@p >Y0&@p [&&2>Y`>@Y`0p >Y0&>Y00?8p `8p&>Y00N8p Y0pa0& ڸEKLEkc[3 PP  [Tj05P  I0pEcI3 E @st0P^x05P  I0 &0>PuP0P[T@H+    e  PC6E{P@H+ EӠPJ@I@>u`dpL$p `> E  & [KI0EKLE+c[3 EPppd0@I =d08B* dIJ d0@(KH@J dIj2Pj4Pމ `4P0> 0`P`@L@p4P= p2P=@ d0@H{@@ d0@ dIjc0@H DŽ d0@ dIJ c0@H DŽ@ d0@Iڊ d0@ dIں c0@H DŽ d0@J dI c0@H DŽ d[ dQIښ c0@H DŽ d[ dQIںd0@H DŽ@ d[` dQId0@H DŽd0@H DŽ   @ d[Hp~ {n֘Y:^i : 2g44€= ```?`H`Q`g`q`4``````  & < T@tTPy@ PfpL @ PC6 EEEKr{ #  |p]~{ne0:`H DŽPkډ @; `b`ZTd`H+  ``H #  0oo0Fz`` ``ݏ#Y0ǰUPݏ#Y0&e0<`H DŽPkډ @; `b`Z[Th`H+  3EEK-PTPY@>@uPe0>`H DŽPkډ @; `b`Z[Th`H+  3EP -PY0&`  e0@`H DŽPkډ @; `b`Z[Th`H+  3EEK-PTPY@ >@tP e0B`H DŽPkډ @; `b`ZTd`H+ d 8POY@<&d`0e0D`H DŽPkډ k@4% l+(%%P00)fTADATADATADATADATADATANc&@G""pV]E;mX%lY*Fo5lI^}qF[Z+.SK_Q&Y,\UR{P"döv-.Vr-.ŗ_-m)(80+RH$@(\JϹ@C0 >5Y @& R@(01 =2hb"pb(\@ i] D)CD l3Oc,M5?_`u=80Tԁ/Fc,ΰ"lS9Ww޶.K[oJ*> y gW׸fk >l tHDF.[$)YIASBgz9Px._"DX͸Q\= pqDf xq$`M:XD`TmH>\`"İ<6?tooI0./npk.!8DixFRniDܨ8r ! xGVxH\0X~{ Z>ux+ ׺RT&HD~y= eT= 1c0}K C\_@N`BZ,-LG"/ DQ*zZh3is&Á&`B3HG& |4TfyỲK1kf09q oxH^0W]6bj/JSj{j :2 5ǍAup* \uʘ.ᴘXWu(1g0+֧o?pf@bX7 ` ST_u7! 7\$ba2c6{=~!‡` X@VlCҙ-SaF+`0grP.s0L3"B gEurx@mP!95 ` +6꩔2pȁ `!Af Ѡ4pD&Rb.mB {4C0fpn!N 3 G"Бts@c; zl(ԡQEͭ[8:\–g87ˈqq#ÑMC P72(?rYfaBţw`D%H-i ȅ 3q|B^~10 N` ^d ӯv '5fBhj!0@|Hٝ66x节٥~5E _+@>0UwOHn}0kܡ7vuN =lrS}ϸgWܟv1pJE^6] WWOfv2`YQ+JVi>GPcm(th#cwM 9 0c@!сWdu'bG:œnQg{=znuOI@(~ra7+pANALY.TOC M Hj$ pB Y@PĐ ib)e̔S͘2 qS' GN3h@1&9pqMG7 F FNElDSJ >)ՅS>Q*N2w@* b9iȔ 4ALycΝe4:rސ3N7nH:ݜKi2kPM&ADSfasjVH9cA]c䄡3 #i|N,@(`lv:%w \ρ=8yҤI'D- f7*.~ FƍӦNc`EQi!O F}'  J1B2᱖_TrQ!$'"U8ho$6X`c_tt#8UDx*цPG  ǟaDoI DndMgw Mc' I tIDFqcEBxlӉi ybB(`hcZHox%EF&tTL5Gک*gSQTo~CQ òZ+:Dr*jeY!ldErV, F;BDcșCe3iQDrZ(VhiE6v܅e @Tq O sa1dw7C JnuGS(J, ,ܥAC|LCV8_A1TRbxZ,dcƬ&$QQ b,S4Gk>j]Le'swy:ðlBmXuI8%yr1JliU +mRqS;s.y_ )!"~XCbU)c}t (`N"`gS(a? 8 v=cWeq.{|R(@9O|ߒ^P' ni30%r ħ #[VaW^ È4ް~C1Cp:ID& `@IKJz K$ PhUfUTL#O1ӎ]^u  ^EPUf178  En$ >` Ʃ-)Mn0Fa.Sb7aEIHCk@8n>7@҉P$}8)n jrd"o)鎘UuSjzRL $񗰄򫜖hG;@ dČ#_޶ NvCttSSOuFKBWAH d→5&! j9p3 Al@j 366m~p*Z *cDGyL,,kڂa(1lkV'\[]4Q ,SìGUQVAD# F5y uB"gUWrϗќm:C(0~E)CL0"Xx:f]b7~dR9_ߔ‘s)E{6X N6Eзc) ql2Wφ} P})Fp-ISS9"Z00)r 7%AuFcuvo Avgmpp# 醀j1",& rS:)WGq#1]hVuMAz2z2Nz%Zt9(;ht [wS#Kt#x]Ma5\"rVuDwC$%ufx!6{2p#$6~PS\j.CʓAa5q:sVn79x@0S0i}tS|aC57 D0@,jN\уu JGa ЁVe@P2q.H@' d-2.g,稅apA;x}wf7|rJ p&AHW20DDZSjC1T%~ CP.@X4!cP0'x.wv7}'; Ch Pf2tCx9P /t tppoJ0@kU0Am!" aQ f9ap)(%R?OVsm !$a`5-2A6?v"q#I:Q ANNOT.NOT* #an Cʰa"7o脡捛 RAS 0SFΜn@1SM6y990s@ 6EH0 Aa:r@Ff2 ҄$fL6e0tsĘ76q 'i2s(3EI :&)2p.TL1I3W TcN> #U csEPGL,Zt Fޘ소 4elԱ̐>' yq3"FȐw|tF7 j:yT  3oy ULI uB&]mFD(twT ERZuBoAJ PHF)eI)-i6tY]un&6M4.DfuW&BD$A8 91`U\Va`ULmB"D_7W/c"MCVKQ4gvKs|%vL5@FglLh|!TTV m $^t1Uu(Gf%fH* B^21Y)(qw敊QFLptILwUcqXilA[WPeLKqUZ@DIn'FF^\ /AŶk5EIuQ5V(@|_F EL6&p8ٜ4N&eQNJ\1۔_]W.TN^K2ujEV]Ƹƚ-<\jvӵuvQ% x  .A@! ]k+sk&D&x#^T5,% %XiBVP X-qVwX*Th5$ll0mS ]AE̴ݨD;+ SzZa!aP!m(e6d NYssLDlP^IiFA@̨F7npQ`â,tQr׊?b*"CG'P~†9:H}G %7ˆs`2ԑ( XoX6ANp)l$"hЂ4<<@޴ coT8.fWc t0wY X ̀4`A X`܀8`AX=ɕ2=rX D@ P 0H Y2=X%?7 * b(J6],p"H YBK-z LF8&l zi CЄ8AN4I,'9BIGANSI.SYS2 nu@CON 5xA5B=C%D0HJKRfhlmRnpsBuJp !"#$%()@* +`,-P.0/p.00)fTADATADATADATADATADATA.VPQRWUS.OG< w $.G[]_ZYX^.OE < ua< tJ<u <u >t< :v$>t>r6>à<t<t 뇊> P3.>t Ëút%Ë)QY3 u1>u+2=uIICC uIC  t u&Ë C uC ûE2 t u;G:Gt à u0>t !t% uu GuGG %3&G PSQRVWU@ءI.<u.b.؋GP.N ]_^ZY[Xþ$<[t^3ۈ<;u 3<0r<9w,0 <=t^ 200à    3Ɋ<wrô3҇BB9au)5+r WGËCrEr$0<0u<w '3ێۻlOO.G5OeBUF160.ASMM H}@{" !H,b̐@A@TPar!Uİ D 2j8Ney#g7nB>D SL7eȀC < !sGWH G3m0t^afL l:M6eбi&eySgW.k.v*U ( 2^ĈG SAf3Gðsiڰ}'&ݐaSgk3=YXS&7a(S]fCgMrЩ#9hҘ99t6h\u98 C !RrcwTdYng4FVs0Tar$zVɇA]`tX^8Saao\6![/凝atcldQMfauCQZzA{h$/9H]ӱj og>+&q$Uuʑ ePozy95gNM~< FZ>9u\}gAʉ`]8ԝ`"aLm{o;<6E\FLf'gL] Lzwp%"_=!kfoņa&$c&!DIP o3@EE_8vn gfi2 ZQT5E LQM A0 Pb@H@CCKO1I朋AQ XǞF߮@o޹'|DLPCR<e襟4h] u`ɎBHX 0~ÈP)| E'Aɏ~$0y%L 7AnD(DwB )y3a4o}Nh_C" ]G׍d U(]0PъX*@yG&0x^񤠾$ ilҠ;4ɮBpD8=nC]P` 0RR5a - I@з6 :C&YIa dGޘ~0#$6(B`C48D0W1`LYwTidφQx256 DVpX`̦#& H in삱'0N h2KИhU (A /Ptc^P H:Dl$aN(M#t0~T^v !N^*L!AUS!hU Uհr v0FAO~0 ;t X$uT@<]OL&$^e `0B u ;F#bך ꣳ:)PӨR@*T(5UBmФ%z vv; G=~ˍ4\"Nt+z*Wx puhN"a_5EF+ ]ɁF gf׏f# V)cŔ#k9pTUY) _!KP,Z zv3Phr`8&tS2'Hm7R#TwV(?a{W8JEN'sACTuLs:;OsSV_O@HIsR;Ixv QK~hLyq1& y ـCPxrA̸xPj00)rrPyJ ~hQu&AsYIQ1e8RY[U]`7,Ѓ’{E_esUV8O5>/H([Xxr qe֥:DE_7rz|> I7$Tx0.yy)W9:IMiQ0vĒȈG%TH s|9_wTOM B, @[D|sx(v3Y7|a;0P:w 9R ,O 6"6o sXcr @!S)26Y$)'2%F50`^frV5,HC 1-%h; jYAP$cZ!J1Ѣ5~(XqdPSuG_wI[{"2mQ\c@!@>`%V]%VU=QAѡ-L$h8f`I~d`hWRu9kuYXcAu^eA=. f&B)SM~*Q) `.)~@ӥ:VB,Y`P .7)!2/[(e:kJGfj&2jzkד7~jjh%J,'"sZ8R0G6CIЉ2:Kwv#:hC= Ri 98WcpE5vV5(jb藤"Xߦi}I0q q{tdIL$1 wF_IKiY\H> KdIWgi8iʧsrWD;tŷ}-:A9_ ay4\qH␁ N)y)B 1{Eۨ;wʩSI?hFHb0F5 +vZC\ef@0?%RٹAj7T`UIvxj7Xgi[[VאY?*SIeu{(F1C*Joи"=*JI:Ѫ6emf(Q%51ڈԔ"^h0Qcy cKijknڂqPGHoa/dW穴H5n:PRNG9_Re|4%gJA:e20R, }$B5P~psH>~x8FVBR]v,P>jyMh]rʥd,$d!gJKG eqIz=[ '4̧s\9ɭV$6ݔI__#, J،L,М~;\S;oW[53-/VG $L\bͶgˤ d1@3'BUFEXTEN.COML} bJ   #ʔ(\($ q%ua),vhE4:&Had殃D aLN?N.y@&m.٨SQ3@(OtL,:"AD]_]!Ntb+wԢ. :\bT,[|xtc1I-ApӃTU6оuB5==\"4P&ڏ*0r_(,%P:0~2# ENp[J.^ CCO.CMD.COM HlC /F4P@)Mذ%Ǝ4d%b(Y:>aDP G HB%'M@ĠٱTy*H8'$KH)R" (EEIzE \lJ hUp 8S:aX o }sG \ق XXE+d.Yp ["޾Eܐ!lb)C"r"5Bs۷h67tiI37>x6uڸ "2_oňoK2H GZ Yy!&9?1G-57 -8Rd5B BpŃI Ä%w5ZFHg"V*$ lOTaEN`u ET0P{)@3IVB* 4@CONFIG.SYSM" L"DEVICE=BIGANSI.SYS BUFFERS=2 CPR.CMDYSM l M /F4P@)MR)"I!=( \T XbÖ;n@*J(aFC0aRI 'F@\Ad$TNLQ "R@0)b 'R@u9*, HbU& b)MOO#If6$g UTQ7gI l)=JfB)9z4vʀB':0˰ao(Aɂ C-2 cB2'fXc Zt7dRnZJٵo0s\qq\(&_94!oyFj3] :m6wƅ™gGGS1LvD C  2$9TCDd%%0QA1B Bt"J0Gb P# :*P A ]9$waCb/ƈe E" qQQT\p<$7c1W R. 4a 4X%0P@ CRW.CMDYSM UlB8< /F4P@)Mذ%Ǝ4d%b(Y@Hyr# D#G A2̑M@Ĩٱ& <IEP$ELDAiJPzࢢ RZ " .RZS*XFG)b 0rt,Æ 7fDЭkAtZ$lիTʞ"wl۷\-W/"n .|8ōs<lșr!ҙ۳EF B:t޴;< :mdqkb7g$F#-Ѝļg[܍LJ-լ[tE V,!o)eeHt- K9xqc00)fTADATADATADATADATADATAʐq\y,_7-9]BС &e%|b H?6I n a8Zk)w@Clʯ_Bk\ u+\Ef]݌k5$%pf 6}7C [w( ?oXg/ri ""D;50 1irզ `uuEʰ=Kp_Cn 14 .r]v,jW?lX > 8t@Ar`P{dVe(j0*?Z6,sh1l݂^` 4}2S?:#U`b}'<L@.N`NŒ .ބqmoAPwT`hZ!eXD0ss0V28H!a01ʬgIPfw! 78!bP`fo~M>" v۵`,—a1A%\f ?L&)<•H%;)PҪQBҐ^>HCĊR.="Ō="Ho1UL>\ sQ6['%v]FXAwP]6;݁# 9q z   I09SqN?,@6҂?GMԽ0`s[$ ghyf~}HozҤY/ϙ =aLyFqv}B7Q +?`oMV V;X<2Q ~*dau~RwJWzV~,@1ggT6{vM r@8t4DJxXqуrzbKeVv90+BGW=A3gG5|DDk7@2_B&Bc"r<'w2dKX;@ Xz8B8N.0Ar@Hu)r.Oh4(7Ht؆51(CAIAoRTurnqLB@p)"So/ddx:-qph*ău=XS1RuOц(pu~7PKD]w";vEK15qpwQ 8xW}, x&o?FD p(8.OB %68d1ȃ 4QOvTВ9'Sr#$)&y?4`v4PDP7JS0PɏRBxʁR00_)iEQetYr>%UN^rXpBqzəM(=g(t\W,Е#@xsfG|iUݧ1yRwBřWzw{W{ {GWLWL}ٚ>2vȕJQ(ŧӹ~ Bجo&4PzJɩQQ _ Ҙs)*‚)Kqw)8A]x_"6 ~'/W*Jt)PZjWjwGj6¡yB(h;NH(2h&z0 wsVN(N7֩EPW{@DXKT:qDC=[q%'ѱ!CBj /j+2 QpfC:rrj4*8SSVu+_G+*$t.{8~[K$7x`GGˡlY0t))`H?zkf)}Jf*x!({V:000)rS몠[*ykYLܫߛT^d؋j4&jqrVn}Z&brR`mtj "L+10*p5$$jÉzDK48G=:W)˩@FCI:O)U89ħrR'ɯ'0/R< d ö3˭Hl9Pٕ$)y[q:=Pd\4b3Ob7H_H%lK_+ʒn,&0O.P*q79N8x!&0MqrK(pr*r W W1, %Q3S՝HcK];,gLґHEkIۭXZ2.Iz=W1WZb2U|8qlj)ԃx;7 gQcw2ljZ.E4, L<-&~Ĭ&RK gPr g wb.-m( gac뿉r+4;=po;8xy7MN+'BW fPzMvڅO`3챶$LF')z7EF700zFcs7`h7`gd=f3u-ɥn]Dv&0&`j'}YO bȋWpB0X.,OC!w('.OB0/a!6/9b&5Ynw),`M>ʒn)?K)A)W1j+*(pqK"/oڐQ[5)8U݉d11ݵ3rϤ/d^ĽQ݊%K}U%&S׏ϜGgC;W ssգ;h*U;*BCQ;#V5@3E DIFRW.DOCORl t D!L2 ^"' 2 D F\GΛ3r´f0bXĘ7n씑C@fҨ4D7a䡓fH1Q@yC3Q6cRF&NeDϗ1gthѣSZ̹3bOWw1L7DaPOǤ6I9)C&baP 9!& q2.0ΥhǐmN̉h :&YKe"b*-q"G EnU#*Nlf X1vDyysyXĨMyrw*ҩ=ϛ: ^^TA}=E6f-C BhG#9\!AmQO4FM0iǝF~wN]X!VQi_f&Ua9$h L 4$p4[nŇk%  Ui $f>cK 9Mme|E}_MuAaXWF0Fl9\dTqf ZTYpAV#1`QeX\bu,֐l`GPQQqa Gc]%GmnbrmdV٬ eHuEK&l*`vmaGQAsTTFMtWrջ=ƮlVU6G sM1l5 ԕs%A\S6ƽ.ȝZd[E:’TĉaQY|FDFe#WnKJ. FfL!aKE j bhj΅w![q/NS#Yŕy]ǎuecmh.&AF߸Ӳ8ώ)gAbZoƽe5U<:Qk2ܻpWv*"xB[5pKG o:S9fa8fDT(M!:~+6 2sM(h[!a'ܡUVpH% `:S@0a5%h ꁀ"^ty(| f ڈtyZui oXL5Ջu0K`!QrCfD(OIlե)V}z1lo?N@\P Xf9nϪB*L3ٰZE CH? fhnxÔa\c`6dH4 )U*% uV}yKMJky8@S[YmBЫ fҐMάɝDJF}YO2& Oˡea@gxvs-J ؒ HR$6SE2Y~ pfH :CD5iUI2DUr@^@PP$5Lk.ݜˆ=rYLJ%HmGnHFc. &-p/ hl4%ET:XΩV1Imv6|-dL-?3/AU@_چ"q3j5ޝkOg^w2W&P!PIVrଊ-Mp3Ro6200)fTADATADATADATADATADATAZ%@1N"J| K5ΖɘPfAITnߣ p5DIFRW.EXEORz aw4`  t "!$#&%('*)+-,.0/G124357698;:e=<>?@BACEDGFIHKJMLNPOQRSUTvVWYXZ\[^]_`abdcfeghijklnmoprqs|tvuwyxz{|9 8~}^?oKu5Ww-\;.= 4 /~O',%MDqs_[]:$(!R)N0AXQcpT1Z+bC k3*}6BjVxnL&" IJHda`PyIZO?=gW;M9sgvjJSԊ6O X3׊mD(h+vZ(6$WFVO[ݵ~bR+F[!bhDmy}lmpwDm ꧭZ?)mw{5~;&#NMku|ؐ\шڊiOw^`溦4lkjT)ؐ\1O4~b>Rb;_VwrJ%j`g9ˠϞA <|I>w(=)~Wˠ$A=ʗ6r#4mꠝߴLjb;k̵:>QlH.hDmy]'65fs]SOzLmV8mW]'fYN2gТ%zB'(_O4Jrl2,{;egϠ%qwe>FiA;i#lLjb;kA;i#V' )~Z1ڊ C"j+'vmŢO\?mu铨cbCr֧ڊiOLjh+bhDmyh+"j+~߾ʈ$wi%vn>u-4M5x:hh+6$W)~b'-X;_VwX&j MS͌VbCrŢ=EVOQ}#OigQ}bKGԶ~y+OwI^]miъVLF+Q[q^?1mOigo2.$J`<ݫjx\jZvy+&)6-Z?,DF[|cċu<@ΦV"m%3#^S}.Ӽ+Oz;Ӳ45Y>}phY7ku|ؐ\N{fPkn}fPkVwSWy"{h+V[٭OMF[)bcDm%&65fs]SOmbLS}lme?umW}lm-kV' CcDVO[ݵ~b{ņ䊑EF[={橤VɭVſ1X2Oj 2OwVӲ<ͧ]':>QlHXFDmy4Ǟھ]':>QlHP#~­O jm[(6$WĈ8k$vY[8]IwvbOzng{ņ{Dmy]'Fj MSUmQc+VwƄig<0:D/9])J/ }5lou|ؐ\5{Dmy4h̓4]~.D[쬦ӝմ2OV[ݵ~#OzY?q].kGA{pV'}l=~];ЛO/}ٹ=9}_v'w{w>.b{Dmy]맻EWޗݽj-lou|ؐ\hVwފVJngF+F[m(ͺΌVbCrŊڊK1ڊ-kČVbCr,#j+'Q}#Q}VwъV,o<шڊK1ڊ~O[ݵ~b;XcDmGm=+A;_{_._OƄOQb$ߞ)%lou|ؐ\ڊi|Vw'OGvi bg5>ӝմ2OV[ݵ~OQbdߞ)Aj~=T!Իo?EW=S* 5qwbO~)L/NSؑnV-4M53Z1ڊ存'Q[q^?1[y)F[wDm ꧭZ?_{7KG+|Ko=hyJX;mņɾGGԦE]'+ﴟ%/2w=JrMmiъVlHX=~b>Rb;_Vwvqw [%N v- g.ѦqObG?qsbivFi{=8k{H@w"g]E.`{ņN>mo2.$tDm`<;2OwVӲ<[mu)hD/`{ņ00)rN>mo2.$.U?by-vVSqeeyd:hDYwEfIGϢc?u2K7BG>dڛO+椈ڊi͠vvmŢO]~e2m3}OVPu;3Z1jCi팶:>QFVB `IXQ'VsƆ yxLިSϳMd Z_gK/9//j,v|I/- =RKA;i/RȒ_R_]YiU'):>QVjC3=Sϳ}NDtzw= 9iIy?ScG;Q0Uj\B!f1Sr eTy^B]ϰ _,PZ@]DK-)s)ϳ}e\zb"ZyC1ױ3cy^B _,PZ@] h|3cyE!Jy)~$.V-s}_ݲ=;Efa`k)m)s"3XGJ4ڵcJj@UyݲH BB?Syxgf.»h|'-3|f?n "+MO)ϳ}>@VWlAX$Q_n'\gppzx̹+WD2iN5lHO2Ó\?Lq:`$8 KVGkS>O  6C j>%gsi}.+2I:ruRi}Efe5ph7疨:oey:xݭyŭ,O"Մh0K8ۺT{ܛ.og/C `S-0nZ:xY ;}eoh;As,Vщ=(6R;κr]BL@kgԿ8_HLp*PBڹtd.y]6=N]77Bte^<&Zh<5h/ģ}Hw] u 2Kmɟ8B]?!?SP }Z- K"$POb+O^~~K~b_xGG{iiѷ@@.ҮO@8!SrO'B0Jٟ8PFbQSd_LP $]+y˧JSr@&#D &"/&(G_WN#N?<l(?@Q -ۀ&pevBa=.5h\͟q{?3Ӷq{3Zu{:7ʻ=ڣ)s.()q0RzO=~o$Bd?_;Nv{h'뵿MbK5Z6Nbebۘ)|qu.86b =fxm6];ϳ=fQyǸFW㋿Zs7 Ǘh9O$Dky}KY^˼ Z48wxV<Nբߞ=e+]H"Z W*Y,P \( 74Kc镾Do ;r074U D=R=:e3#Ro> H!w|F~D.@3e\z,ำ3Op#ogs1LbPNFBA#-׀~[$D(PBd;,ps ҋ 8DEx&<Tҿ0cEewwg> mw[ܿdp_:۟g:͒Tgde_c?8F\=xdoSςsGI5G~=S9?>yow5gY8>}u@xٳA]Q Kfe,Onz߮P%ΰi6a?q ٰi6ao*Mx07Cw 79poe_/-ZE3>eFEzH5.I2_v|ѿ\ѣe/.n;w 9ٚJXF̍=—y.kO7a:\A[ ޿dž!qx/c\+oȟ|a;F,|gqDD5x<՘gNꗦ ̃ Q?<_0ѣo*xOf3G;Rqx0"}'4`$~݃g ^k%0%R1ߒZXDC_NkEP!3B8Q^$ BFa2x|01f0/5b;K6T?=S5o6!Z1F-x~|+aWlo=h1>., *?O[+f|P>y_/pKijtV$u$n=C=Q=K ۟):5p߅^ʼnh+v#jפ_Ʌ[u8Pk0U>].|_jiz(-xwa9gj>H6To|κU3D-EW _ÆA! دT$F0htf캽_ϐ mQی]}xc_5C$\ʨ_Í5lԁqcOA 0 Vfe/‚`5Fh~xfGYwFzB en(g7MkF#}jiz(-xwa9nUV$R8,^獄>>Q4ܫ"43*E6c 3Dm^׌kvWhUYPmj3cfSZvHPv[r rn'do4D}T׼1]1Wq"rᶷn' t[j0L񘩙xjiZкr=<1]1p 7[89W$F0*mƮ0!*+dCKrƩM&ڎ_nPݎo ܶH`1S硜ekC8|+y xG͛}83n~v\@sw?;)\ba4 )ao%!ݠo9￴'.fDA024X#`}טkQ?qm(r>A `7oIo[zFt4g[1C$'iAuNJht`66}.D}T@5D}Tyl~vRrm~[j0Lsh-jiz[j0L#<7*p`y9E73Mn6A2b{8Ԭ`1*GԆT?Suj!z +q`6Xe)iŐҴ:ȇ( rad;|PLqԩYaww.S7avu=SWR+r[,[w=S| }|v)ݺ(5|zgX޺{0o>:Qrn%3J2rgP]7;7zegݭg mۭdn%S<3ucϺކ{|׀φ{3g91>_9E4"_6 V{aHNJ?a3Wzm/m7n\,,薻 mFfvJg˩`, X&:X=/܇W,x J0]>ܿN;+O` w\_.>SG|?c7XRiĐ}wu_GbՆJS=G|} k"8Ԭq~..)↲;g<g*h_ifi9݆;ޅ0Kz@Íw9l|6QWև{V,wuqf׻P^k^k튁[m>n@Q=jl|w: dFoБh+&w] ſͲC2ubSQWۣ(h2u=p ;ڊy!Ѿ k\!c^w0ge0{m ܭm7rgJBuz%A{k'1 슁[m>nɝk?mo|`݆װ]6u֍Ш~u,>2D+Xv6T%Ej ]1pf1xQ.M 9ڇndA. exy/c(g\}&6D"5]1pf^?g^`Vuܟ^ҿ}I Y2u=|6b*rWv= ?/' 㳫CڳpGBu08C>Ra,3D+EN"J00)rgÅ@(pG{W+.TcM]'0g5]lެߠh؎h&C|PΎbKo#]Nou߅x-2ՊipjOmg?N~Iww6T"ܭ\suσYlIwÖ>C"xI5&|P ?NwQn))wwy9#v>_G(x@h!qoIN/SVoup`_&+r/ܲݎ}uϝÖ$qwaKp~"xI5&|P{蔕+ns9_c|P._c1bVUoN#nݝkpS֬Cuw)o;+n}jtg¬a-_c|P.wQ >i :L`g`d[F͗]XHr7sNk˝+λ.yڐR#Հga>,4D"\uU4]+O` ^KJ YڌJFfQZiJ\1 en(o֜n+q9E%ƒ̾*[R<`6 Y^P⨮Y!dXjiZd\P>|(͚o7 SG]Gk,|PvöH5`1Y}vHzjP P·J<'᥆r>݆[ , Cj[ǡ-5R yx̹ԇs r"gJ]<ؕV*M|W ywWAn(sC }Ch)M} MA+n~ANd\)rz0O~{uf+n}(r>?CPvBS-5R yxk}(VjiA[u=5i_dy(Cm<'᥆r>݆[ , Cj[ǡ-5R yx̹5hY"^5?8-Yv VQ1. ]-Yv+䐣cQZ!k=:/CF)snܠny~80"홦T7p2e Lqԩٹ@+Zm7TJ\1( V"J,mF[Ys_e 篲W&r^WLr=꯲$4.᯲G߾}1bV񭾢_}[}gP!K0Z"$~꫑Z[K݋baȆVlQˈ.N5+n˷ժ"&-b?ӶH5`1{C(h\VZs F[m@U9glKTF)70OA+vn4R-n1̾ |%̾'Z5؊{нUKlU]:E>RC9nCISAqmj3cfy$ Z1jiDVVPsw~ƃZ[Ĥ/`[q^y0Vr̿ƈ[m>nߖEa 4mj3c\vЊFxu{Bbsmn,\ޖ|gĺ~oę>{X'Q e_=,/gˋ,r|>܍Yxe.x| Y̓[ϡTa\3ayPڳ|=,Tg<}WV̓S?έ=,/Y̓[n[={X^$3f17nC92X"XϘ<@sƅ#>'#{tD0yV,o4RUEԽ(=,?A>=,/zFZ[ĤEg{={XsZ[ĤEg۟=,c$*I4^a"IhUni 8rzax2fmj3c\V,o4R=lDmИx0UELږw7>~\H!<,7n=Cuyb|AS3sd@+Zm7T[}EP·;>QCFށ\c[m>n YǺ9"/ x}h,(·Z Nwo3T`_2X]f;i\.r rW,rtʗ*MrfU:0QnǷZX mŒ16wr| 5EC۷F#ٛulV̵n>>Q?_6 56kmmߖRC9nCISAoKTF)7I ZvHej5Oxok$0VPrvmj3cfyHݠ;00) fTADATADATADATADATADATAnlrfߊgWy݃ٷ$A`[q1x~'mP·PTca|mj3cf{4h[&vHH5`G>yoTr$ꋼ?n0gRl)wo1=Suj}(bvHV0{YyQ,uoKTF)7>|bvHV0;,gyQ,u/{[j0LYA6Vlo4R9]Zv>ELZ~&sgAe8/beF#urNƕ[Fٝ7uaҺU{p~mT?Suj`) hd7ay#Ƨ]XWݯ-zx?EKǃsD3fi3+gJ\Cp~0,}n!<,g sDm![83VYw@"gm6]6("mIJ4 p< VeeA.WDBi݆ToKTF)M}A+vn4RzL_LVr` ]D$\䎭 ݦυHOvܫ'3c\5., *N.D‚nVJ+<n'SRbV_ʼno_ n'Bt* VW#vn3ŏ@03*E6cE>e$"d ¤_cyhW 5mƮۋ r-K[a_>$iXjiZ ːnu?8g'Ԋľ.Wq%Y ?e}xDvk#Vt/rIZ.R]XWy"D:h/?x`U|B=alp.?gO*;C9nW>A?ܫ~E·/mI2GENƕk,cWh}ܫZeg,]xruqR#ՀgǸfS}Vji[u=񙼿P\#1?( r*eI ?[3+3=x 7eYsAK |( %M5䎭'pЪy!O8 ꒒.!GV,!4rQx-KĴeCxXHOvW A3 mQmg ^+tF)~u9hŦVM#[VnnKv}|6uH5`G s*XFCzx%za8\day#wa9WqO,CL〯pC/,_\n3cf݇dрVCmϺ=h1mZm>n\.~\,݀gLͺk@!<,25vOvv3ŏҀVwa9Wq"JiU>_8|ȗHNijt;`Gԇ( h\"G*w^{(nFNVT#DC뺞mOu=#j=Cmh., *N.~'Wq"@7y#5ϮjAu8p"'J5,bF8^Ǿr֯bG| "(UH\Yo'g.v  9Wqrn'g*?Oi+L]VWq"47HmKTF)7s}ہV̵nVy#'!{(nF%.,`UY@UYw*+E" EdY*+n)@$F`F[1kCxXgxcCxX%B$'iAu>iم''Ir}n,9n`W>!<,pݶH5`1{3ׇFvl#g(,_{O„fI UbaA~B_+hW,ݯ UrMW._0~•W.ԌW0}կ\Wʅh~Bi_`~B,g/o?F/m7n.E):5[^;heS̓3}r~r \ qQ?8g~p2OF#wf>FvZ,{x>0Aΐ58D4X?+!Ъ~b +\:>Qj}Go![miƷZϐƠ[}h , ~,vŌV_u\@C|({2xxD0. yqzEr!^uXHUݯ_u#4J?C^uXXQ!U=hƄ.*UA.D"|>!h`"rL|1B$'!<,ߒK!ݠUگH,ݯfC}E"4 OhteDm3vD·q2rWCc0XcDmtH5`1}NV"w8ӿɯÙʝ+;k-w^[f'[쒝wꑒ@̓vRkvy#5vWlo}'%gy+&sDm!4gy+696h쫲r_ IuH0L#lA+ 2 0L#<7*p`y9E73My\y<e00) rE~fS):5>SJVfƧneh1y{`VTmTF)~uR 0L#,~ Zo66b͊V[)e8_ekH3rex.1;ރwG2-ۼU9] ;1˞Đ~VY}AOMҫ.p4 V'' *+ Cj/Hʿ'j|j}AO=e1H|(m9D[| QO&$?6M5W]>( ik` 4Cmk!ҫ.:W]݀gL>,V: fMHʅo髲K1j|j=qiߍK?e1HcH&2m_fAA0L񘩙> Z!GtU6~MOX o~Ѩ.Å4^>xjF֫lzF5??#gX|g3)X]vr㳾^ߍob>=xE4~1*Q C)rf3$>zF̾fCoy-ËR_<>x|үٲt74 dͫl*n3R83&yMr&S9zl~7 ]##M}ͻ"X#r믜(n=WtZ޼"3Vqm_aBWoW87d UܶxWq{]AW9"',.rrj^ncPv[( mUN$: } 6 *OWY<>Qm_0!ͫ\p>My@l:6>܀~U.8I W1 i}:>QloSu2o|jw͵B;}܀a͊VloSu2o|^U.8qn[c^it> i6T t=X*'*'W9ޯrE4DUN.|C#}рVCmt`UYpH>ȅ8 Hv߬O6TU7,w*7 i}b6T""Eq9+d">>oĚHPv[8 xh"" ${|(m9DzUH#M}@!Un@7T>Cmk!ҫ\@30=F)35P:r=*'7h=AUYNUY|N$M:‡V[)~UQ|Uv@Ҥ#|2rWe13QfytzЌW]ݯ ҿ VFO-*o|V.yЗUO8,VzfAv-,_utHw/ A?ɅoXKN?Qh[C|Зx(UbU]ṃ?<#_u)W]i528ވ$iKWh .·tgg*;g1d  W]|M,m9Dze@30=F)73aZ=h}1|By̾H?O].DW <[aP.ե7>/P㳨& E|.IP" ݃Y wf|(h:DҪC1 8`ե,+Y8&0KYW ߌCg%g|<<<a1yWQRF)7>6h*e e: `1S3qVb454CNf Y1Vw/YFg̋Ez0zFU.I0xrWtQEzھkz,!GA0LYbVr/zzF@_%c*ww N#}07h[&F)~䃟gFL>/G#:_{)ͦ>h3Qf>8zW][\MH#U|05n6Ǯ=|lJT$\3Y͕K5Sw >n6Ǯ ]SZ;O܃4 AAXՆUm' c+ V"ẞqlʀoD^ N5ށl|nj.vk_.ptY@'nj.vk֪ jOz zj';]`6Xe Gt ϯ|:/ >MuV'̾ E=KNUbh[siVq N\{VDEu= \#j9.5^u)z値W!v|6ϷԤ>A ^u)UrC1H,z93c\3sJߠՃ1x˗G7lZw_'||(W]>c+Qp]H\_p䀯 xեXcL2jC ~I]LV;?nk!ҫ.8?Pݬ5"g`{600) fTADATADATADATADATADATA[PT?&8F[{ ~:n'E9p̵b8T?Mh0@Vd- \+&S7~9ZT?!{pmbi:R#Հgl ZaIlj4R-5R ynfC *QI sp'ܐН[u=,ttoemV OUx[*\oeԳtκ(+GYwEˉ GR1W>RʌW-^xoȒj~ $%S-Z2Qm=CzFȒj$ԃ2%j [u=*b"xWʗLTǾi`yǨ0;b00Ouz;9ˉ G:X];w9Uޕf0x9yǨZx1DҪA1u X$g,n~WJT( lT4wTkUE<=D.ChU`\KG*pPL咾93c}ȠrT-sonZ쾯uZVu^o@b g$OJ5Gs}Z jOZ[ĤEgniUnSx -y~+b_N._c "M~_Ǻ5"ѿFO _Ofp!e0x\+3{0x9.ɵ"x=C=>o$]RGڻ/z=5 n:ڻ;詿P>5 Zu/4^ֆkR~;x= LKkj[ 8x46>ɜr yx̹sVe`G>yoTr$ꋼ?n0gR?6m7hygȶ ]}w#Yb"UDhO8* (*+i*+v?F)~M}Z=0Ƚ{cWu|L[2m0Lٹh5-kDIs|rl奎O6z0}jW"J+?X2|@ҰQkV[):7>3j|@ҰQkV[)Ơ(Xz ED4.m(lfN_wSK_7U9>9R<ߦ*[eu=ʋ!2X&m|UVՀ_l}z&b~U> irv(mu=9IF)F[mܦ$ij}9ԤG*4lԚbVmNoVC "xIN/{߷JV_lOmWf(g<ߦZ_wSzl=Xp(CmFu=|WKmu=DžWAb6z[ Z|[cĐ\.D· yxlDA UY|> Cm4DzUH }UV$\ 8nCWeip6Ө rrgL>uVC9ߢUa)F[mܦ`*2s6 j3zm;ok!=|[c^UY7BBWyڬO30=F)7`n CLnǾ 1Ƚ}6T/|_/pKijtN=*4y't ~'mj3cf{4h[&vHH5`G>yoTr$ꋼ?n0gRljVCmI]SԚ0=F)35pנ[m7Te%uMuPk Fmz[jA0LY!k4R=MjioI{HuPkZiN*Fm6]vִ-5R yxlA+ 2 0L#<7*p`y9E73Mn6#} o~E h=ImɥSV="JvpKhsiI}{W_$D5ҁ\Dm\|^~p}"!:EN[|?OJ^CW')Vh5Dz{ҳHr/I%gͺA+-Ockr[l^R?OR?`GXMVga{ ZaIgپQˑ/מiJϳ ښ-\ۿ J4_(~fnl6Q!  R:]VZOrZ|$sc[eŐwHC(/Z" F.i g r1r겑k,b(ELL#ͦ>hA9'f.5DmR\rYbIO6.jЍ2t[xZ+уb3ifӥq tܫܓw^pj=(6CO6.=F)35`n CLM{.v,]{!]/m@ O/u9 EXQ8T kk5ZkNG/rAi^Q8T kkNG/r!P7ħZA@NԟPLPX~za^kd9 $]/N%F $ '$>]Hw _xzaϹ5Mѣ >zt4ᅵk фI,&EB86ŤH&!h kk,Mh$cXLj\Xw5 ?I %aA{IK> 䏯i$},!xJ‚WIOiυێEb1|aל&]’pDGI^X[sZihM sc9yDGINX<&ц~֞ 4$M $GOhCrZ sێ掵>$GOhCrDI ל>Jr46$}G^X5&Ih$ڐ^^X[s0$ڐ>h G炾s= iGG^X9iE$cXLjaנut4ᅵ3X<^ѣ >zt4(sA:Mb1)$I,&Er4 uF^X[c4iɐ&9Mb13uŁn#Pœ=cɧF(PPkwZsKPF `.qqzaySuiPݞ;Ei{k*^2I50gN T3Z'~*|?  kI{-@aNjP˒ sR=œsF P5;ޞI;!QwZ칝Z}teuEoϭc}G{}s׏/,hbbAw%ML,wW},YOKlqΉ$-sY00) r $k:%FyY$z]:Eb%ց, N{$h3N s zp:/]NГo6>|uuZ$.µcώEi{nu[H ȅ₍ +S@@z}u$O%s$AqϹ/X8VB=u { 6l$+N%F]℞sWX8P|*鄞s_r= H=3QL0Jq!PBú bRLO`.qB s{ %N( Dt 6I^TWPݭDpO&Ω;VRp?!Pw^"1=+N8tDsR{n;0C {{!DNy 8X%@='ȇ9 =ǧU| ^l.1r/)B!Ҟڱ~| ^ %} K} キ-콷Uzjڻq>_u3hj)^Ƚt" P{ێU4>w͉ A'rʻ0lM*ڜt7:Sޅ6Ƚt" ӔFӱJL-ua/a@ 6 5Hq]qݿTh'* D :Ļ@&dw]qڅI')(2= ^hK]B19S =@7і pOwAq7~/ahr?Ԥuoorb#(.XL8!S B1 $$>Oc{.X%@SCM8*:SޅIy)m{EԞֱnLyÜazNS^>-ZF,’%@S5it" sFI5ugT]@bI=7K^%k( Y轓lժ&it}Ow,4>D L6T҅9S@);  D ?B.{uH:x>w=g)I$|_GP\H ȅ)% SI'+N@@.dTq& *q)BB?\(>tBaG'NRz(4:R47,C@&'/J,u{{ s{ISSF|v9/d=w%Ran?z  BA JR?G `8{bqBIޕOH P#)TsXh,]YJ >뢝])Nr*qhJt[h WrB= ~uE;!PA,O% TPurTq 8)@LPy!NTX"Wz#NpY>v!|.6з}ߖ[~ţ(I/vtDNjӁNOz5$kk55tkFkֲkŅ,pɅ]ޅ, µ42iA! id*MȜifviIC#u& d [}[FYmpM8 Lap5zQX_>qZ<|aeCC)I'5gJFR2UR }GNhNѤFF4*,hfc4e4Ɋ'8y$;%L$#H._ z!)0.]kg<2LAjɖ! ny1@@$(EE;*;7J3}fg& io $=bB)??V?kᵲJJg3( HP&@8[6(?A2>߰Nt x]0r/ ^Tz|>. X?ujNqgDk3q.)"u Q 0{ C?6kbk;5˭m7< I_84@D;D2Hn36˄0fbYn4d\<3Yfr wӻlqM?Il6lsfM2hDpȍH~ogD5HH#9BHb\|gGw(RDNf$%=$(=MF1040.CMDOR@ lN /F4P@+M 0^i0'S2$#P 4 . 2ТE `Zp@ F1040.DOCORB j) Fi" 0@q"0lI3 0RyΜ2 I3D&f̚0g@ሦ 8  "ϛ:rBSf fșC0v@͛54 ҈A.4!4 ?LcOnʔ!ܝ vAfٳ )3m2r0h+ P Ѥ* Ā#Pᦋީ9oSld9,H%RwF9uܸIBYT82mE\&taНJFNTС2.Z:!cS*!K B`#Ofk:Y՚Buׁd_N#FE4QEl!GFIfGP:F%waC98[ ]t1 cb# ǔe i%qwKΑ 8EHb5G}u$Fy(Ԗ pFml ȐzwUE_;7PXM‰A$YhTnsC`땁o"eADžz%Qed%UoDɥ\ Zyt]oVkt"xb5S DD`!BAq-YKFexBjG[u$Vo`HS7WaA.Yx`3O@u+SZy$_51~KDZJGT+`AI e sTgaIJIAQH6c-Z\F1DcH ?%00)% fTADATADATADATADATADATACOMR fQwFo[z.)r2;k&cimh4 sh-ڈqN<= XrWS!WfG%r5^5ᤚ.26e6%}|l(eIT4JwQR-X 90COY [,]aD<48 <%j*ɊuѮZg(gžšY_bKYuWSj~܀ސWY kHbp~P<eSE o~!TC1XmZd E .TJ:e" LHE]YCMilzp4lj_T">0hØ7am:20XBGRF.CMDCORa glQJ /F4P@+M"7vʀM0nȀSG9 ޘ1b9eʸA&8lQ0tʸqEřw0FƎ+ED9& 1ub$4a@Hi:CٔZgN9,ˌICFg C4i F0)G'|H{"C$9<ŰAN"H"S)BŅ$NђiaoU(aipR +HNQ'N} ["MTE*H8eŒKFcH4,k%5EGNrtjܑ%j1s쥎J䒱iDFWӂpGlxU`%uWD)I1 f@  Pp@( C@`yEjF5 w Fzw6Dy rUA0W~ \*QGTQ Di3Z0@˒#̦. _#!g8Jʝk1CLhezqrXMb-\βS|e0KHFTaL  9q24/a"NI];JU7 N@ d(+J&O% ʘCdU'`,m*8ES]Uh@AqEa™*(;9*S % D'+"g7;\KLj$5o?ƒbtŞLۦ>H/Oh[ sN>uqXY Qq-a*G 5q{?ihbPOji\\! 8\Pܰ Ά,A\c!*\,seJ%胥HR.TZxSy궆D7ZV80QH8d lcM7^KcH] %<"X1OP҆ &00B(E*+G6&X`V⸒-m R/*8ӌV,8yJSAGmcϺT$jI@2h%KE .uX(* *d HTX.CMDCORO ;lCO%F1=Help AltF1=Keypad F2=Search Ins=Enter Mode F9=end Enter%*%*% HTXT.CMDORLd R֜L%H0=Help H9=Keypad F2=Search Ins=Enter Mode F9=end Enter%*%*% INCENT.CMDR T2 R4PP:e@FN=.@q3FN6e(h%X`Bv҉8Ōt@l,BĎ\I BnsrL6l怠4H%Y&$;Gyr 0rbZ æN6qӤB;dJuQc8U e`*ʐ& e[TtxDVpE#6&QwxD !C +18W"wV˞ D{ KER.DOCMDRn L[U Gʸ)#'KHiJI3sҼqۤ"3aa#2 !i1t4 DlʄCa8 C 1!Du攩HMB<b O6\j%7m4SC8oЩ*$>OSv8u٪aWAɻFlڼ!MK(C@yf 4kʸx(Ws)Ӭ7oH RIg4zڐH[#aWmh֢%}D&_=WQ SE!j+(O^UvL$jgTQFPP|%S0 %(-Vi&_`QOˑ]NYzԌIhzu z7wGdUCIU^)@CUA81E.LYXnƊd7Ҕs%[w)O:mDo=eܥ@jUPII QD9aDG쌣qBE"?ilkUNYOxeFJ BA#&HK[7VPE8av0IQIXQDaiWѸ_5͝Vqbi\ ~ ff*}U`}$͑Q,Q d tF_SoM#W K&SNA%T YPXcI $ŷ{pDFAqDϿz쑒&$#MICD_MAETTAu¤r;yǦx?ǖ RECmQ %UA(nF&Ct8fT[ʩ8;Fh0iD4WRU-~s1 $q!SGP*0] 셧+eEhB-Dҳ,ncym$S)rslC-T>v؜@ur Zdcr`@'98h#iIEB7Co!?]RKD0,e cUk)t#7P&}mې \)4#] R#8aL#F# *o0mt 9nwۥ rD5!`7P8x+iI ^00)- r! IuP ' SB3`UJa Ng= #JgE1=<5ڨ'Srq $q :AA@ $WHH|n&#zFThKER.EXEMDR%M Hz2 M` @ @_<> `PEzReȐ /qSFN6 iL޼Y2͚2 lN 6@a%.bh4eؐA: $!jSF$ȥk0rܤqsF)'fA3&Mc&,+2,1t7_YP n! :Wم*Z[]" Xc@*nj1FOc޴i Iذ)s%d.Atlv7fҬNz1u^ 7[mcFS VTƕ!}u` ._߄V 2VoX!dD1qf!/a@uW]nqxdQnermP}݊J(oȱxсeus@u uazTeitdS`i^` 6ǕI jjA =H.@R@^C.( u⪥YpV@akfcz*|UyGQk:mpx f~s6(Y²Zױt(F $`@P (>\x`PUDNQTKR@Ц]CD)L]UBdQ~GEo&Ƥ@(y_ -hn|<5A9GT^xr, u(sUh'B4(TxQOqaG3QFp5BAzCTqKK'%` SwSv=e]zPԤZ N$)STVP< o P̢z`+;&%0"+[V&E4w8>?xJWNa@$(Q K\u':~(IT\%+[W2uh`ͽq>)vM^ cZ[=Mtl` K u{]$\W B v$&3؁Мހ潮 WBzePW |78u]H_ cE $pfT $@"-H F,n&p"p !o{#'@0G"TS $  ,p(@Rq b7ڑG.;PUK? `zسH `}Rh ~a(GP R &@݃6# i`(wcH+B 6YMLM@wRۦ$J.t)O .5@-iZ]uez 9$v!r¶2&2/as 3 xcdKJmqJ0`":ƵqӀ^ƱLur 6g-T-7n e 1 @(1ժm[CP@x$W hFCBX08ZO 6t0h]T!tp;AQ̂`%.]`:u<41H(o]{QC`"΀e`@ t0`ix1 TN@s CH>׷"ܟ 0ac0A Cp Z?tpP Cpg~p`@xp@@#8X"x#X`0 g`&  =~$BxF<@JȄĐ+& ExP NȅRhbxÀ`zŀp'0 ˧  PwvP~7  @ p @)@ 0 G $pP p||R p zp |h g|{` P {WmW vmg  `|Hu0 p h (0up@ݨ  A {w E` y 'v wPh˨ P}!@ \( SPEȅ|@P?ƷCWYe` `\|Yu0 w0>p25yc`_0PUpzKْ/I2I6@KY| ;`G-`XԈД tPgȖfu ^&iG``8e|ǖIA7Q9`|Yi z6hK | lDBP ٚGCpy)hpzIF)٘eG o;D0&t>ωBzةYpyYv F:yl  0 J p JɕP @u𠠊y ^EbJjjmz-ʖ7 sQJ(}Zjh >=su` u _C p:0 3p `w! ʔsʢj6n𖣠P pP0PP P 00 K.}0@ @ }г`pPjv0@ } i % [@;3(|X wv{m'pGepzǎ gt9E9\#I~k~ ɐ>P7 x h w"   @7I(fgȧS{ۀYP7⹄jJ֛:szpJNP7ফz Z WZ ЛG Z) V00)5 fTADATADATADATADATADATA P 'yV)"!6x3 P|DLxЊ P׽s`p0{K+~ x0 &p \ e @ ZPp8 ோ u@`h }jt@  @ lpV9hLh; DYpb z`ui*Ƽz Z ɔlɱ ``|`0 sؼ̧lnqL {{wB e7 Sɰ LЁ霄m ||B@m zu =5L0\vpR: \, 0 a^.P} y` `}|:PuP}>H*@ `*M0X E Ä ~`!<@@fKzY0mW u .ǚHk@,׻PZ9yp  |`x ]ƒ؝ P@-M-ڤ|t[˱ 0ښu)߁  l{8 zCtPr8P0ˈ0<3 Nnİڥm(> ( VH㛨0Q Hͭ;X$ $ D~ wp${~ Y .@>g( P7u h0p @ |l~,\ǻ಻3`6;˱; 0Y\0 tWZ0`+d f jaG}1 Ҋ0 N $P H; @ęu`@" yLʶ5PX;|_y | $F+u` ĥH mjPOZ垴zXY % & P >@ &pP ~nҹXpM f 3, Ԁ }7'0  .o?O  z}P ¡|f#Š  Xg7@=ݝ{ލy ` *XxCg x C@ i ou=4`p{|_ݝ0*n0 @yRw|7Rw|GKJn܊t@Rw|[pz t $z0`z> ގGzxJ~0Gp_pP_P@8@ m ׬] ;ۮ@ N  `?x p /3ˇ ˆ ¶ m0XP uˇ ¸ 13W >|dPP 1`0V E[&uAJeϴgO{Pb P v>Kz^I Lpp `>b Ϊ  z `q[syp @{h xY b{`PbL{jn>5 T`wy&I bzM+ {z@p {;.{j  vPv<@@Аpxw {X`<t<t lgw 8 ` 0 }p (@ z `+ 0 ײ`Ny `N @ z l7ߊ w;`y]'wlgw  ð{л {.{j m Xz ~ zwGMk'zwZ@~9( pz ~: tP `z. @0yZy@ @4 @9hG9( w5> _D0.x˪ рР쐁7] 蠨 ȘI@p9h@0yRw|xw {W׮O@&z R 0  `2@2* 2Z w0 9 ?@n00 y90@ `N> <uxw {`yʐjypMxw {`y ji p  ײpp {[|pg n-7y'bӐWl>PښuPW~дxpgP w z)l سymw{7 '@] j\`z0 zjߦ0gy hZP +gy LUq&p |<@p P&z M+wV) xp}5 @6U -L [ח @8 / [P gy\`\ ח @ @ ~? [W @   @  ~?+ [ p y ;[ h p 'z wxGx$xwuәUP?KSpz` pzŠzy `pzy`pz[A6 ` t pz tp@pz ` nw6 ݐw`6 6w z (pzgy`pzGypztpzWt`pzwtp0 pz't@ͧ'x80pzI 5p'x@? Gp'xXpzGtpz! p'x@ p'x @4 pz p6^~P Pr-R`@*X*@l*> Pupޝp e XxhzpðS 1ܠ୆&𘮕 & 𧯷 `hU 'Z) {̅00)= r@@: 'Z zj\zV!``0&@(h y 8y zU܇APݍKXښuv pwjV z Z z zݰ `hUV) 8V z Z zw&o)e p5mZj@ڠT j~Нzޤ@C0Êp|yp:InC$ 0Ê |yp t Dښy @  e'6z E *ppgK )l@@ ) K{(J ~> t0 t tP zkWHt@C  @ Bzj$lwC{0?$P0P| P?@?ᡡ @d @_P7 `  wV z Z zP l}V! M+wV) xpaC$P0  j ݍ? u>z `%{{`;ݹC$PP`P䋠P<{@_K8BuP ڠ% I#l:P-pPښuv/ z)lk !ٴxpgP nq@ȅ wV z Z zy`x؊ F\ Py`x%, ` `xڠ\P]',9 PV%x@ZP e*P-堉@l zTI)^ P:|`zug{AWH_`Őπ   (pu  } 00ђ ݣx'Ę7dIbȓ+_&% _W$P GwEBcQ}ŧT]@ILAU0cA@/ h@4]R@K F@ W *4QQH T@Xq 8Fp1EC0M,DG ;4!v A1 |A!P A#,48C0&@ 3 HIp@ ?,8B (!PG_=uHǯ-p$ > qpf[# >P} #Eux:@Z /0^c0AJj=py x s`8h8dސ@Ot?}$`P=_A +x9X9XL I`"q\B:ʑ-|aLJ釱(Ha"<@,`. =p(j?k00~tX}՞&[X71`#`8C> @8? ? E1tc }g8~ x>~䧀 }GѤNMFU~` 3{q8ϔ`8_PE 280HP@7L6>000)E fTADATADATADATADATADATAQ A0@E0#VP#bS@ FJ #2"b%6{;6 5` {B|'220C ?`S c"K7p(QMߓ 8RW#5c741 bYqpLb"Fb&n+6 Z3X e(h OPEM<0 SzV23I0 PcòW  03 ^p|[0 hCh!a "hG]1 F4 Er.5>t@ @0]DpI P ` R<u @ u@.WQh`J' )9Kp 0n`pܠ B;`Ms r@YQp@pϰ0 00Zw $ti  X v {ٗr@ PqP. ѵtUp. b% {}0m ͳ S1P :1Xc\Y* @ P R$ p/cPY8+_@T<yC. ~P0 0@"y24QpٰـLt  0H$z 'ӰؠĀRF1 3@5`d2DPFP @*ҰߧP=4P=9 xE7Rm8hNL l Wp@8F4656`l36`ZKgZ4M#t@eu| 5$ 2 UڴKpVVpgNq(%NQh:`npexW#u ~E7c0EQMq#joz5]ЊBs HYtF_sHNv_`$60 pKP0P90 }jb #XvM} _cz43`4P,y*9@Ns` 08 WA|w`aưHL~ ;; vyEebij> s:pT2pI>@ @IPfǠ p]up< yE~;W^p_@F˓#pVS77rOY0OzSP=;o@`^gSPe36  <ꐣ7h @>K xx<wPD`&%8 ~B0fm.7JB@Tb} Ë + ~ 0{_mC_43-%0wS hG D0Cp  ` tp6 U #u=D7&*; w_z@zg3R4f|j4u Rdd9; e<{tx, OH9vY;QDe @ |\73 `=2, `0Gp @j TƠH  PI> 0 JWLo  y'fZZJ `0 |JP`Pp &yC8 0>°7 2` n7p =h74 }5ϐjpd6P?p@@2I ƌ~tľ#1 H˾, P &Ӎ`=]EF@L5{pCN{jŒ4:@ F@}!V1 3 f1 tfq=s>.Du 0`L:ycGzd>`yiPJ!0j@ R tP0@̹j0 \T, Lx\}<:Nb נ* Q* {<{W{r04{W?>0`\ ORS: 1 !P຀Q |G gW/˂b P`0 -9P%3Ӏpt#5 0 :pG2{|Ð,0Ϋ 0   5` < L6 06r9 4QS`QP6;Y[v 4  P 0 P#\30P @ 6 Z ®Iӥ?" 00{W>  'R@0a-A@8 Ɋ()|ȏTO݁+8Y@Bɝ&+[!.M D`ɜx01DP DH0?x@U, vp 0 ?zSU0 O  `A60` 83/6 c pr1f_n.BPqho6Lk0!hrPAa 21A9@BZhopv-A!csp! FAi0pa HPL O-tgpP/@VPD  PS0u0ss e`3@[qہqgnlCl`MROE@g o2@cCq]!g_&Ep/540/Dg mo4@cCq]ago pew e0O g@{/ rpx/FP1h0gpbpH`Q_ gPbcFPCqq/oR#BHAcPFp1h0gpd/5bpRu`>eF oa8@cCqA2Pq/sx!A8@b00jsR/T( b0BC /F?W0_zpw{+-#si>1 ^ _npL<@ 0cl `f2 ^/taOA S( 0cl)h2ڟ! @X/Pn@Rcaqq&   pi`q5 A,Wsn0! 0-gPa wPlbpg! p0eO ^QQjs 0-g@{/mLST.DOC4 )+ (Hp00I2 +eI .`1)@ y'4gyMED\R'1rQa uԙrF 8u43!0bؔƌȊtʸ3c"4@̜1'Сh*S]@z%e c޴iӗ^ ĵӸI 6͂۠nD́&Lf!RKFB' 3oT#&.$ uoVoب>|.C|7cʐ#8]9~)"Iܤ^mn1`,/F4ܡYAb800)M r0iIN2Ud6Dvk8-fPGREIc@uS0$c4hA B !Ta1#G_uHG`50#PceYQ[sL$!ieFrFdɁf%itwA1UiY߱AHM[wp~“Fƚ%[C[a]LUm eœ%&sZYfyn:՟Syr`iaVihR"ug{1O4ERզ离鈐,PD0hf*yYnI`pLė{wu! %Rj[]knyG_+Ee2Щ{ +iUːC:aDG0ESpl%h&"=!4F#}O(K dK &ιTuv\9ys 訟FF^{U]H7s]baFDڂ\ia|x,wjїgJQqv:WwN2@\VMfTXHy΁ԀY {zgVCq0BP`kvb1Tթuhp';oE~k?UphAsid(z{ySDV/+ ]AtRrOkOcSS A*k$2 5Ӡle).رЛ DaF wԤ)7W %_ؐ7.ygdD.O4DPm*ʓ"MS{ GAi4.uQsX3Zd}4SYhPi]i @TV2 bNH>V詅#Y].'1Wďa 1 ?%;91U0ΊL/:=xhPaZ&_$L*mؚht$0_B/ CLٽ5 @r!?Rn+!a a5RHqipRufjVPm/}eVLePTFlQ 6y A/%p!ߖ -΂<J*J%ԃûE6A{Py-xm5,@DR]4'^7R!T.=v;6Oz#B Z  *k Ee*7R^̖IdCA*T^c0JfAIIH?hoeP45J@Ag+>$ 1oP0M7:бcNY7Rl[f5aT#X2@Ɍ n;ܯ wؓS0WVPoa)ɨH !F`bӤnX60l,3T:=s]P kX(7\4eIp\ʡ:åϋ4ZĸJμ@ -;F-pA*֮l{J(taT,%CԖHG\)̫f%v#mǥͅIKZ;.܋cx8`cAnDRAB6yfGskG4"UdeV=V@>"xq5*nHb$Q_`M]6ADp;HFmAJde=;#=`F*'`> A 1a5x5I;ǎW_؃C@>D)?(@E?syo6@Ri tmQ'(JZY&RWQђJ#${R 7vFHT ehB14CQO#Cd *{RUC9`&q8;0G&= T>ʃÈ#=c_;c,9<3b (>RfW=+ilᒐ1 =`{yp%r @_']ApA&h^չ1Ǘb)HVm`>Ryev'ht0mO{b HtpA7P{p%{y֘Tv1FjDF@6 ?S+qRHYp@K`VI 0 5HAGPEnÊfV5P 242'LJ}M)\M E2Y1;fs:bC"cs3DFpdq>T:l&.a4'ӱ'N@>SNNgY{s10xm†{du'Hasr"cw(%(a~i +'ISqm3)2dHѡw\'tՉff^(;?'U@;= V(КHW c2J˨X X@TŒ*61e fA4nZDJmQ_Fop`oC89ۥT/ +jDz1fa4@w+|[2dA8w-Kj8/xN\Չ/9NPi1U;\]1j ZJt塰l Ьl72V:%V4,6;ZW. 9bP'e([^A/ٜ+`1Уlses"L:>b ),7 E\Zq4>ž"`k5֕emaqW E0xF{t{8,< l|LM; $, &||"l1ə)V妵'8cW^_ -@17&:IOY` q-TM`敖#vihEwԹ Axxeh0aq`D%s`Ɏl Etpt72GG/y_^WBY.x$B0F,hl@w/,54@/(!$ Phv`EQ|02gb#z$O['"B*1Rm,k"j(>eG[6P505F1QFgAǂ9[nB.sx|&C\R!b7QzAS2.t)&rJJ'U!$h,Z0ڳp'uQNgq{4Z6Q/ M'uwl0z"=QT'58;m'Ϻw'u.{VkU;ҋ0 7M71_tB>te҄I1{;%LG4TߢZ|o\l%,vchVCp"!YC6V}wwk3}BcclTaF5 "P[3j J""&&8gu"^xvI sx2Ov ܺ>ONJ~e{W&&9FkLɪECT3j1|Ex&NI3YB(Om} QhPsä&osBXHq{7Xř~bx4gSҶaJqP"*c۽LGcxym6ÈK}{xhP3%UnbZƄJ.Ł'=Jo`G d9'2&n488vԁ%6M_F)/3Sg[$2a!6&(rF0w[pHJT'ԗ_(Ho'+cstECe"O K#wñ2@Mf^o DoulKtӫb##;lV# s0n/Q/hQɵMAGX''$VcI}9C'ypM~^168CerqA2ͰsnToA.+!|$pX@y+0 sph%p(¾s!|&ڊ*@k3ժ9%~q<6_EVϘP?yE^1?9D)8oV@GHFد'0/Q/ypp3RnW''hqp@3Rn|3 EqAo DtlKtӫb#Bj) Sd kPDsp+1wXT? MAGXp{pfx.2}9b# pKpp 7܄KNHo9T؛qw/ʰn뛃~,poU`#̅7_^{а#bCJznj9}9xԵ6#:'"⊆5qX} %9N ;4WAf=I:|Qf9WE.2l?fW@>;xK K_yk]rMp[r/WQk_&2!eH2qGc#+09ɥWA@4SkHnɅx;xn/e3\*pHPBy1FI+00A{Ʌn]R<r8hz\1?ָGϣ_Xmyڲ=   Uv`! ,[|t!!8a\u{hR䲧7pD7ʋ/s҂-;aTD(3CW/@H1t'S'& c UgqmЅ*r>B[`c緓gqmO.]"|s-21'Fjƶ>1^nFwХ-`#̅  6%&ThS&K1" ~Evc8c/< u;%Ia8BϣV'@evM霞D+TWA JEJecM2.:^-ZHb@)Odz, +Ɵ!ae;sP&' S"' sQYd{|zg׉JD ĝSM]d'&7s{wCPi=I:|%e ꒁ:R;"UJBMeC#&T%s@0 ]W,-Zq?@[OS{H)Kq灢EQT#9nKBo2SAMPxt.'1<'15hۡ}< m"3{#D!!Elw||?#~ߏO!= !g` B)rvQnL>&finZk>{ìaB6/>QjU`ff~TP3%Ҕ'ïtH)rvׄ@j9R$pᛣAL0&cl{TJ>8@DgkCtz˂oU/-QmNgd4P[PwP(~eqn q0-fDa: 3RE&|H"Eis,v&Ha3^_`+!EwvɶeqcrDG| q0-f>otz94KjN!qqWYK'jv('ɅJ ;XexPpApp6G*;Y'-pzX(]NBƒ?ֹUI2Qeqn U8jnt"1Y8c-9nx%B!B%R|$2}BͿ.뵢h&E!QLԥH^oOOoAGpiZobBBH֕n"DI/Q}%AXb4iAgAvsjwf.A%8lWhsxw^'':6QHP tDWnɕxPTDߡs aI4MP&;!QAN4]YϻP'\+78@}T^%e_ɕx㵢hfs2Y!A^U~;QXyEwH?D^DRf^ks//{aI5MP&;!QXI#PiZC?Dr=BRx; p!r=BR^"%ea{߅WÇy_,gch\n!;MP&9xd8E@Rf&ϣ>mS.x1q?lCtRx${!e1qf4\nA;_$EKۨQx_>@nOaôyqi aI4I J0vQ;H;^OA7 F IB$Uj_!KJ.2UTar j%IQm̭^PRex۬y|.O/Z^?D \'j۬yBj_ɕQXXDzG~1QQv>s.8tLXr_Ffa{<L,BQ8۬yoB]+|Cr_O P"gqm J-3I aIHcw2`H;^OOdޘs) ¯8[ \!K I+QcuU!9 cw3H;^1 I`f1Un}6!0A"[0@!309ɕx$SɕxDS00)e fTADATADATADATADATADATAA|; (+ɕx4dv: p zn=*y \O7obGɕxbY ۬yofQmz!@!cH; \O|`h,'{}/r" _e8$ >"%B(rDMa0^nRod>_+od^"^iq`ޢTfL$8EoE N5 +odVNN/,I5FSGMwT-iޠI5F2l/Q&c^vo>dTma;/ @P0-`!!!J*MV^SY4z\~i~Z <4a~2I o  wb2k_b(GtD7a38rbr@QTBy!uaS&'zL=ρ,(r# @]c[.-o~Dl-&-,=VHsTGl>@"/ @.!>uW&$ @藲0F7K'ZA+BF_ @-LnrDGJ %\"O pHH%rp?\YV؆6wp戄x>cUMpjp!_G E+AscV]&8;l1$"u.g" x ta,|NXM㔔t>FmjC/3Qr]!dU9t2'}}bÁն"к(k?V)'2A2SY",b&1.HRZ~ݢF(nVC/3Qrp7E/a7DG}UD@E1~"y9.4 Uq(@.9424(`O`wB Sa TtS@j̍*prp-1u00fj3 NOTICE.TXTR%%x KK &4C 9osaܐ1et4P024iH B$S!3 )B A!L;eIcE˗1A17mX&Μw"U'y]fO'AdqQK;tS 9#L9 BN7N fI$嚡6qI&4bT&AA󦰋%}?%iBP)DH`%rSc̅ Up#G?RE|؞$${r='#sC3 U0 )`Jq1rKMC3oCeFVD їef"!y\7asþY9㖢: kh6Vdie_0g^b$$4 TzP9"4k@6Jș$s6< .DN he E%U$>RԢ,Ze#laBEpp4 Xm0KHM$AbHUj9,HAUapU6! D)@3褫FؐEAģ1G:R ! Y]K}[+)X$!}Xzs%UMR:1J%YVɡ (ifU`5-Ae0MDaK#w"BA/dEG9i氃ae {T+G֋"fCai*)sثd̈0(YњR,ou %=H(dM^ @Emfv0,'"lw){F$7;:]5@-w5wڗcSwqgEeL4US\qetD /pP-#NmsUSqU4h.>lbBGGS?J 5߲Q؄Ah#T!!Kde#LBAPXPp=WERc]Ia딁Q(C#/Q0ٸƢ7HhIF`eq)i2{7t8y iScS8 [W*+xfȫ82 ǩqB`[pjXI`LqUp 怉0qB;Vt"PEDpxQ0$ZL9{E~Q:S/88/9ߡ-㝊([zq SP@D0]$:A0ڪ3s~3Hcجh52)кt_rgQoKרW FτYL[gj |1h4z!]QbW94gJOvw#f:DoOx Dxxs CIzUx`*+-z!шFzc٨4.QqOf*k KzⰦ(x(-¯^x{9T@{1s)R0뺙!o,t@`_ƾֈ^KT`X-۲(tk'2Ha3}pDRT2EbBKuU19v0Jk;eA#:6Px} )7 U5HUjYbHTwdH C,7J cɆk9#/cl“2i1BBVlвcQ=Ą(7E&zT,Q6yo1W0:We,c)$@99Pd01|FAxC< E#bBf7(ݤ $JW6sMC32",U L7ԼBA$4$PtC+&dhZ]*`%- -0|Nusuc!H ;4&72]42gDmёeAJ-\'',];b]8'%_ xʕ[D!XO ^cXq#s}7͌t|z. Vg)1 RCDf; vi22T`b#: S1J0٤@$K^58="ps:שR2ǑQ?PR=8zrʱQ7&$%:E1&0>z௞rՌdFrwB q7?mLQ{1T!%BD8΢3a|X>:Y~(Z݌4|zǫ ?y u$cbqD>$B2}|󩲩$6u{>u;q ^,`M5(R8N4r> ш'^F{}zq?)ۣ>ےN)p9б <ż4-[wW#q7`l2!a>3i .)[uR>5|@" qRb01]>[W[OrO={"sf`||%*z-7NH ($PW%Lc3`(+g}RTfb3!&b+)]c~mX%2#V`yc`>KqO>IO$W8POL=9`-_ۓ) 5})>^Oœ4C/uA?|.s~zR1bvT线u}c)7jK~e43);l3:ttkbb7aqA\0 ^iܙc{R7aULj{\7&Cgr;"XhrT b&4dwRq c]U)cn4:s.` f[<m4 ?9)[#Za,@73%oOL[D4nSu&fr?`'CJ+P$[qLA6#^>t1!^`'7C5J!"#sz,e` Iˏ)U-U3Cfh*~!#V`WСj\zK[E!"- "UK*{G`tXs>~5zAof0!,.WSP sEb&ɸLoob38CDl9bۿXϭӧуޯ4n0]X.Ak8>7!!*zdr?/o2^8vCX"X#TVR!J"RPN"-W#\;LPGT -Pa#:x1 #s66Z#miv ,P ,E۳mS99iSS)Y;9,e^$DA`AP. ฺ) of6 ! v #*2J3o] _7Q0ENL?xE`nRtQ &` gWM%aw +#w|DE+RH$bdR¢:8]ђm9 r`o7DSl)JAQ܂d0A5fǥ%#].#w|q)N@zmivC+#'%]"q*FQ$iA]L+E8:_h8B!Xw)sx<1J]*NQOdWsȕ2rP,P|=bȕ<5b)]E?Z#~Xr*q.iYMbZ b64>)+# Z4v8ye,ǧATۙtqZ b#\LvD'u<}AaO2I_XO%Q!,U~e^ 48jp[:)E絽oS4\VNĜP}A`PSeCβr f]7R3#24>3Ws&̄uCX\<#T hD֮)@r7xiQ2)&65WD$,7rb/ADRw ra#*):d)!/nq!U3#24"u]k aRh2>P0 5Km)}OY١Qo|,nZacج]"TAO?@mCNzCoaw00)u fTADATADATADATADATADATApi/ߣaF1fMR8@)1>F 2Ce5>7P KqX>R,+$T87%OS"mn +?qa|3>ZFp0*O<K&|E'TaFr:2GB.y# dw2C=e8caKpWhXF 2GBsqaTC*Q4,>h$121DB|g-c(L|vkr,~!%73ʡ0y,nZacجv<CNzCo˵ ! 1>NB1*q nNa$١u^<of8]- b"0$]g7C }Um, &RƇ!"a)Y5P~1 zˏ)j+Th)Yo$Oa面I)ܢ &ij{CYh nPA!g:%;҈^tˏ)o0q_t,P3Ws&{ ?2f0щbFO%ơa$yz4N?2 |)Q a|_8J9]3>v}4-0< 9CW n8IS,>ޛr. BG3^u2&|lɏtK8J|7jR4r,; .|jB?=ay 1]tUrGP}NQcqW~1""9` O<%LWM@e|)J0$e1Iq! |~=FeiJ& "@Δ3#tADP-f١u3b"7jbecab(1/+2$1^0o#>)!K{.~")0rXѽ?u74*a*=bjK3^h+mk:#߮LRgA6Q/-8bo7CQa0>*-jBB!n-b/At¢o c#S#QJ^M7b_<736qA*n 1o+O%pucp",ay@`0?- ,?g//R~n|<3U7._OC@8>F- 7ϭHv`,O`4]Jnp,W)BB)abtC@ٲ;b /s&)WTA!S4S7tu0g<;awpl,7jr sq;6qJB7kTOg`,*8n/-2@!ܝCQHr|a︺j0x`ZU;?:uߢ0ODT>?3Rw,$njS"S25bR.y`I~A?z-b|~O`$]^& Nƀ%B|n`|~)Q.AGB^(NBh ,_4Cȵ!Eة>jS.;@ccO`E;@R.P6dGP}NQcqW O<3R!3"9p;p"IEP$ i.Sr.t^Ɨ HR\; 3۰ a|~8P7@- ;;- V"iE; O@U0_MYP=;Y'y1 W56-[8 ÂTq1 R.@-pU]G#ĝh- 8 j?iIB s>73Fc|h)YI ]$;&Wu.p; R`Pa}F|_; $C=Q!! 4r5UKc-pU- 8 `Qb;#$; c;b;<u.p8-=8$;8p8 ฺs>%cWxo]1GP}NQcqW~1 Bh0ln`|~È\3PCCHELP.HLP+R ix  L@dADCHQ E& >6$`3*o@)C"L8֙S45Ǽi&2.݀SNMi怀a: p0FKB*rSΛ:g\E7/2mMRs-#c`;0rxcDO7TfH6c@S) :eL ^2 1F7txL:iܜ 8 ю!aS:C~~& 4p\D7 T׾Ğ I˰)`Hn> }Ť3e1s Bʛ;sJAg7|u'}-I!mB)܀sIhhI`SG0NF@f$O|hK81UsIQQ'ND&eO@[BMQAeQs\'[IA-yfj Udpa@O4 M@ 6Drl=Puq!q!fqi ag,ADBvn$ gl6Fy(EGJ^NŹт A jmA=хh4*!صٚEPs ́F6)@DCҲ Xh2),m4dMNFKVD\JPiq`!PB&ڔcY@L!d,XW*WMRdα)Z2`s9-U zqm gOdusOH-`='ˆYUu[@4X!Qd, *: R"=hX Ye` I$ jBp XM'!e'7h$Z咰u[ A]CZ '9!^5i !M( phQ8%=J=D fdY%fBIdJ:'u`~lhbIҸ$|&4*MNlh);)j4Ub)x*cǚS)\Cxp P`ALRAaM:mAB}9da>x3. rU@€u)pMJYJmf2x6k yۢ6 tᷠ-Iⶲȝc~ v- NV@(\඄"PZ0K7 WhSSЗʹ<-} >U4I_(b800)} rO&ӓ[6u%(! x0xi`X0"k2 "[|2ܤ&!t1`"@0.& hG`RDu)F,')> ,&i/(e'hfleY/= v&h@"O}w>IfֱP_P`LچtP" lblG`舄¥ zkĒ_gn9$h?=}2 f)²z.⤡0߽<&H06xd0$ Sy?5ُr*%BKD?S Pΰ94U R8spB*Nܴݖs t AD D0im0'yi":ұtJ^9f`K(oa[ =9Ł`hל2܁TH\@uPv^v2Vhފ4τMqj-P1+UBB`+3jRIro_p, nZLJB: `BFثw˓1FP>$ j6XХMFM׶2y.7?/x>aQGa!Zt0@rP,$1%m"$K)wmP!ǁ%?'FI0gr'W G .1(m{I+C8({Bq%fLpg17w#K<)2d?n1 ȡGVRb{LsZvix8^65}XH (d(΁(Αt6It!Kt2O.!E20i&Vq=D bPBiZ#^zI OSB*]͑IdXDS).xQ6Bј8E-xYX)a;VP1qq%n(#U3YeÎ!3h@qTB'1X#G#{GTa'R'5, A}+'icoPGa(,5Bq!g{(?[5Uq†s SJ~Nb~gEu!*'7'(-fQwP!g"V}1[2:@4f8Y,;ٓ*[5,;0;CHF9S5 #jf)^URXZI-ѕ!awfgi))HբvuS#hmwb2ז<t'P(v5>ay85L Qmqn0A>Vu|7>k8Sa~ ]0V4!_=Y}i0Y)*HPbky߉\≄r!wO0Aٝ'qC49B*F0fsTmWr8VBf$9jty<$su4tHlB  A=J4 Y`2́07Wѥr,`e'\j7Vu3lBi2gnQN 1F1uQ:5IP'fVq!lF"6xa(3bn%nР iI "\A@a"ЪcE38Q$5Yd}rr!j^Gɢj*n7p[j?j)&*.R V?Q Z%kMmU4&|u!u83auFaAjU O@:`ʚ47w*%7y(~?1m(#@/ر*d1!d Sڮ9~uHc z[DDZ@jZmE{/*R{7TJO9V21aA:K{ z0C5pfë {#& T6~Rvt]{ R"0%y !jur!LfڲPZIZ:>{{Y7+Y&_[DíV+5!Zp\54Z:%c[rڶiOHNI ëwQ Eķ;{V)뱗AKEJ '; a@!126FW|2aksBkQEk2G֢M+ٺS!;X[ZJѵ[m5֋؛knۯ+I{5"־;KkIԸP%h"f' )"/#cj57#R(S]~!qmY%q4RN1A 3×t &y"&cW_0ȅq-j BG`kXQm,ZF))w)d0@)xn6znW}?PIE.BASHLP#e kM[% E`)(I" 8@/,@N2 )S3iؔqM"v01 $ D7!$ :!APA QH Ta"p94`H`T ,16@`":~ 1& P3b$*p1gTn@sHh $*P )@8U1 8 ):|` j`07I , NB,;erYգx*Y@"T@:| d9Vl(B)谜PC(Ă4HB5Q!7L`K9IL@M`NH9Mp<TUpStSmlL`[p1:ʝ:I2<>JEUN9K3 a  x.`TC &i@1Xp$ CΔTiL 0"X:@p7a]4=DG'YaE(4EdB']a )S5fN*4[=4_3 b[C DɧFTAGljU@`sx*L0QDXNͧ[M'GH.E)7 Q,evA$QB6Z56|ECu[:aڔiЀ2Ul@jUf$J* T!W1@Äsf-9ƇP"U,ČZݣh7ab ǎEA<)Hņ>H!PD4(/FܥFBQt!& pjӸ:t(6ġZV5ɍw5(hȪ9l䁎kW@2oR)H-XA* RB͡xn¢lDjIȋ3A!Fu;f49#CNwH/i*H1($.B0޼\X rU D]o֍} @pư<$OeQN! CN,p FJ" !"7DM!{F%#0b҉0u阣TPdd &-kIQ-ק'Qء]օ aA& 0zc4bj +/i2ANR'*=iȓ(%1.Rx\,6ԡ 4[xI!lJ8u _̈́-J Z-Z#cÝ}!]B8T-ƘE e dM̠B!abLH/ N G3X_VI ] 0aL hV#@Lht4J80yCOd@HA5/$2\@PͰ5@%@ILeSÈ hjk Ž2ptU*ꒅ8k- 0Boaw$k5B\ x5y"M2H CO,f b ǒGeB0е Gnn'_3 fkNPB@.fڧLIxzPC=GN”L3Mh`84(&EQldcȑ%O\ْF2iTP1ʍ=II*Y!iK\nF@cTTb%uי52cԞSZ%`ƠqWϪWj8eyNw0xn:#͋/[]7]4SxU[Ձ(e`9=Yo.ghNڹ 7}yFjq@H\zi˵i4Eg#Qc\ˮLˀl66p]~iZ}WC%kziR0\чv z6tG]K q8Z08p& Y3' 6SCHEDB.PCCW c O@@&(HD,b(KqBA<' $qRD>4(&E32n1Ȓ'Sl)L6T\PFA$I$J,A0)Kls*ЫCrYҔ9jP-cX^Q}R*4k1Kf5\41ۤKc`tLic`#SCHEDX.PCC# 8H R4P$&3n l"c N,"Ĕ1hʐq Ӹ9æ *a g 0hʘ&N4gԠ3" hQ6G HcĐAѬ3h "F 1+N4hD3GdIw|NqվHaęSɪaU5bKpSqE\VF .ҌaC:a@ { 4pX x;Q98^ SYmXHrH La4țUoC=d6e?QWyOP7 F@C ᐂ fO-0ax9\VW1 L}ԅL10(2(838'6A *" HX5XC(ڠ ,ڀ7x7|I"fzfN%Zu!ZsHaww0TM԰=:!(K DXl :@!h 0Et R:|jR 4SETUP.CMD1x N}ʀ %)32 I34lyb7ԑ0)I\L29 bMjCl-!Drj Ez800) * _\9OWtzNTuz \N1\\A) RD PSRCH.CMD: 1lE:% Enter pattern to look for at formula start>%>>%\%\% TOEND.CMDN l=T /F4P@&Ab RĔ%I)EPqE .Vzdi!KS2+Y9FMDFSWND.CMDD? (lkA /F4P@'Sa 8E)#Ę2l؀04nȼc3 }x"D ./K 8peACGRAF.EXE\ $9͚ Mh  ߆  g\Ex 1xd8V݀Ep2cVS&MtTỳ 8jЗ:#v3Ax  4Ip0+W\r%&Yd!M[\մbZl= +*EJʊ =Q \"4 QTŒEM) ȇ!t H/ܩ!\(¦  f(|*WԩɝyA>,d,(!N @򩩧sgԣ*2o iOxM2'W [Y c J ~S:!V"$gN*2Tv}7Wf蘫%F\3E`@t$^N9 ԗ锰OQH0AMR#E髙T'}n je?txD!} .ԁ vB z  ;4Ll8<RfytzȘwt@!J7\1ą'h . 6:$ #"JʑP'2aai!EX2p nDB:Zy o@1@ BF"yF܎(iIk#N AjÐܐ(DX!!Kh`bdİ p^;T2 kbcH56 SL2lglL46 aFo$KÐHMJH&J!ѡcG4>{_2,=ѣ E26$ :zd*HA,Ko`ġ>=-9tStFXYV!L@Yԧ{p(^ԡDc PgU¨djX١DM R :&z׫ ^X5똀BCadвԨx)u`J f>H(&PNzCDlˀ?X{0jQn!J*(@ ҆h+.8-B$AP@:IT81F؁^|hp/Z_MN_UӘS51 o~ ?WhAwG0  P OqvDq" $cOяjG¨gqW-1I_4-/h L#N2DJR:,a0?ah"%al둏/hi`7xq̀YBEe^ęӼ69sJOTϾj@ţ-d?שPaZ7(@'<%'Tq1زP^)lW `: n#|m [&<`%%2C1e!r}cGEnIn33;w2ϿKjSkЪ&Q~0d|pK+si_<`>.`]WN]Ȇ̄:D{.p1# Cne:=_vaHzȲtBOa9ć,nK)4 0$?dI !2 ,ZhvS@ `v$ FQK;H|( y `eCQx;"~\xeou؀ `ۥEvcGNjh%:om9Mf֥`;o/4~_(s~\>0aP~M7  7leƦΦ6~pwebP_iFlfqW<3p gK X0tG W~<2XP DP lcloq <TZ%^BG` ddѤcP6 5R *P'7ӧeXRa8exmkorHtNp$=X @` dvdxXAQ zH JQAhL N`ll1s 7T^P] 0%.`&0Qǘ"V 8Wֈ >͸+& &SEh&yS }@  } ! g p O@ ^`&  by9rs-#! ~0d9t!#9dXt8IH/0(039,Џ=  aB H@# (ԏ(bQ%X~$w.p] A3aXPPPPPPP`%P(:4㱚wH0Q@ >e  0xn>pyщC AE[>PI#И )=}p@-Y #a>D#R KG+SɠII3 iXb9 IIugYh)=ٖ ЏY3JJ@~$~!ր%= ~` zY X [࣭ yHXڰJQ 9 um'p P}Z!u*uðm2 !:Uh `KP P0 ސPIA*b,k0J|1c ӕR `'(-`Z:yxljglr " c! XE*c3i֠> z l7 @z|00* fTADATADATADATADATADATALL+!+t D"vB 0 @0|@ +lEe& `2 NŇ`V; @p 3  .> ko72`GT0H9+9!`p Rd> kG뵭ݪd|@EQG{\)pI#?h!`1:bgppuuP <Ke{{$dpd11`'!+PԻU`}dykQo+ |ST3{ Iwde=pYv0H[Ȼ <K۴6/e] 3;P 4; x}һ[`A\!@ (>{a}p`KFkLE;˲#A'L2)ܼ#; OlGN RK\kp\p\ֽ0{KeD<6,l\ e4mgEZ̹H[0 x FH5x@˜Lp\ `K\; `μʓLȣԬ[b[91k&N뺙05: @9PP @6_laLVHHW` ?lGK߲϶tl6 @0]lG.Eg!;6P4T-k2K6:>| )0r4m5P!# &s6Ě1;@3 9PKr{r{sֱK>n\\ܸٻ7,r\ؖ8p,ʋgܿĠlc˭K٦`٣'R<}xzPvԵbI'|~=8AqL81+cե}=ҧjzPr 8a0P9sn R~e^sQGž@%:s TnخyS>=oG pJ5REʭ^6vW_>_U(lM GILT(.+vR"oLǡ@vd08"N^* ooP д . C> چٕgq'Fζ-$-P Nѯb:ӀD4vT-\ oՏB`;n=&S&3nۣo*vM/׽ٽ?-[ڿܿޏ F_Gi~p+ʠKգījƭ 2E%f{▭-.d/Nno`Q.nJnʱ:Ǧ ~cʺ[p } 1'u2G9Qg>?6`8p툍AvS6^|/V}rs (t (EEv0 BD20JԒI 7^ y{< M? (?0a`2@0 FH@>`@a\oHfv0 >@@~" `Զ \oD{lbv0 FH@fol286F@e2l2 F`H`oɌێm-ܚ Q 4_uOEᰡNdAR.Q {0tEn]Gaam J`Lʏ u NQVR ~Ne .Q60t;/e6?~ 6`8? 68`.Q 4_uW 'NoɌ>@@PzyVX@PzyZ\@Pzy^`@:`< N/| 7 @-90{% Wh f&/eRU'e^ 9s^U'e^hQnR^uR sd/:( !\o4`dvF^hF`Hdo&oّa\oH |0 FH@F`Hp~oRR7eav׎| X`'gwupSFN m'gwupSF޾A:~fOk@˺3\ h~" `Զ \odr Z(.jU'ejHuVUw5Pzy^`@aGynp@:`< N/|P @-90{% Wh9^uRjke 6oQg^uRv&/enUw5~" `Զ \ot{lIR>a- T0RFuzU'eV&/eVUo6oɌP >`@QÚ ٞ>@@>`@>} X`'mV}rrv m'' z>`@́ mLY~,o,P~2Qv0 .0@v~@.`0\o W@١vp/Nd`d< ! 7%_777Ɍǒ@ \o`  jG:c̕ f v Lvno~j:c̕ f v upno~j:c̕ 6'.pFmK;k^/(+0F~j:c̕`To^~j:c̕ _ͺa% ``W 0pJb/f2EPoav0 .0@v~@.`0\oZfoh>Nd/vO`Զ%~T6o@ o4 wOI60 @:`<  /|P/MP}FH s` O? (?0a` 0 ~ mo@fkZ̕ v׎|zJf3\ h~`00*  a\o8? ~`p~oRR7EN* moOk@$ಔ`Z̕ wgp7^Hm ^/(v.v3\ h:` ^:`<  /|0%7&Mfk `0 P {< M? ( fvIvO ^7f@-ʠw }IvO p&  ! \o |p NO/Ɍ^3^! \o |ڀd v׎&%uS^! vO Lhpml7%>E^`pGv Lhpml7%>E>Gv "dpml7eEsdp޾A:~ Ok@$ಔ`ZP7f`&Ok@$ಔ`Z`7 `k@.K &@pcnoOk@$ಔ`Z<7,%~" `Զ \H^/( О( W@b $[2nf2ef2  X`W 0 %6 o n,c2XV50 %6^` q5 XV}rr`u@pX~, p,P~^|oͣ ~`dv~^ reA\ʺu`A\ ʺuJb[ g2E E^:`< ~`dv~^ reA\ ʺuJbo g2E E^:`< ~`dv~^ reA\ ʺuJb\0g2E E^:`< ~`dv~^ reA\A ʺu`A\ ʺuJboPg2E E^:`< ~`dv~^ reA\ ʺuJb `g2E E^:`< ~`dv~^ reA\ ʺuJboЃf2E E^:`< ~`dv~^ reA\ ʺuJb,p,P~2Qv0 .0@v~@.`0\o9^T$^vnkp+oF| 0Kjƭ+@nC~ 50EիEp'EYP'9kK0 .`0> } dv0  ҐPfoh/&@JԒI|oK/_?'?b?o_oȯ\a o'/lo6 @.K &\ 00* fTADATADATADATADATADATAh~" `Զ ೾sJ@  `K^T$v@-9'n٣@ `KJA @fkZ̕ vF!:. `G3\ *h:`<@妰@<ƔuJb/f2EPoa v 0 .0@v~@.`0\o W@١vp/Nd`d<  P|~Q0{uyy}, N d?;k@ 0 lo0vd3\ h`kl`f3\ h`p\`f3\ h~" `Զ s+0F~j:c̕`To^~j:c̕ȃ _ͺa% ``W 0pJb/f2EPoav0 .0@v~@.`0\oZ`?K `K5foh>Nd/vO`Զ%~Tpm-ܚ Q 4Q&/e :`<@ `K+ l'N5m<:oH @-oK/_pQkS{,kQ@eovBOkӿЋ@$ಔ`Z̕ wgp7^Hm>k 0 :;T_ $ :.v3\  + ɰŠ:. `G3\ *h:`<@妰蘒p\/iW@T$լ[26``2f2&c&3g2pJb/f2E E^` ~`dv~^ spTp5/M~7^.m RKv&oHĎe٣ wO:`<@ `K+ VI@-oK/_?'?b?o_oȯ\a o'/ mo6 @.K &\ pwfϨp%?>k 0@{ld:;T_ $ :.v3\ h:`< `K5:`<@%'51> V5v  mo@fkZ̕ wgE=>+ ɰŠ:. `G3\ *h:`<@妰蘒p\/iW@T$լ[26``2f2&&g2pJb/f2E E^` ~`dv~^ spTp5~`FmK0[0 @١vp/Nd`d `K+ 7%_777Ɍǒ@ \o`  jG:c̕ f v Lvno~j:c̕ f v upno~j:c̕ 6'.pFmK;k>k 0{l$J1!f3F\ @!f3\ h<լ[26&50pJb/f2 @@@e" >r!Q5!I0jE(>ĸB AiMHp)0C(t8$Md*H*Z !TԇTGaQ\{ʜ<ODF%⯑FէI5`p3.`.a69ˍhApIBeZH) ZLr+L|,-FGR(i׿?ȭ  ]Xc`sՒ@fM5ZC&\xuD1j8cȑ%TyCˁ0eҴ3ZmI( H@UB=T(pe?_%M:,C `Y(H)*A(%>tQI-U|H*h05&({$I s" r 9Zf @`" $?܅X "gnq`Dh MV9 9BYA"lH%ԅZH±AjR0QPlu? %:€PE1|`!RCȎBlDe4>ʣIJj*j,LltCR~PÒdTTn.Є@q)ǜsJGu tABPIF$0T},3ta=:1^)"SZDmo3@(&<1>!Xp&h8dVx2/r}  S!@h@Q:x"t 6NU,N (t@BAnL!SNx1"@(,0Ճr>JNB("<~HcY(ýN@!>z@@ֽ.v]@<0pw=](9x l<zj{  $`׾7>wCL'@)Ā#@4oLU(@4p ]@,.B` Dvؓ~`_>9 KL*Y)QKJ)ZT@Qb|H}SC:Ԥ(ugY@z"pvG @!XpeUH@Q a]g5* zB)7Rpz,9[wT A@Qx]]3GxNW& P K+0000*  JcrK [3Qmn{ߎBҶtdCLWd/vLM[V@nB1 ʹSF@[L.sr\",>L(k20ܩU #iG@ 2u, nٖp&eO`w.BmH]=Iه9=pl6x(yŴmi}b˲xXecPyސ$w`DSCv[DympP:>S*tT ?Ibg5*{}O`;& ֹ.Lo\HtC %Cv ˙.~;XCT8:'O[b&m:ǘ 4-æ\2nqqfo,l .h#zet|Q\"q+øbP̓ke3;[D-8L.·I 7<Xc:@t#,X\=Y0T뱁u*10 Zp0L <``0x1gOƫj0.0}pBsH- bXG<418} Lzճ}Kޯ}<  &Є0߀sh(=* ?|w/~ɏ/t˘g :7 `BS3  y P 0 `x0p`װ@'Ёu;p }p t0 ;5X 5xu9\@]@S?ްr t  @ ` Ѡр Ѱѐ u@|p P p0 Y+  sPM00Wu7hP=YPO]nJ4` 艠88Ё ` @. .xu$ u` ( h r  X[S@KQ瘎`@<%`PR0Fp hb v  <͟u wG0C |2 . -].Xp[``P p`. 0K wiЋ.)ӾP{?u4"&оT&`Ў戎0V Y] ] .&MCIFJ-9пQzP 0 |׽0ׄ؀ P٦ș =` TG`8pu 0<,H,ڤmXګrw00 ڥ}mݮA0p ы+|9 $m+.=uG5>쑛ٙ` u Q ᜉͦ0@p=#>;w@s p Pԕ%Np}[7 0^3^7.9T9 lƀQX3lA ` pP @ ƙ< p 0 X; sP+X5 9p0 @ :X A0B 1 O 0®Að`[F`}m@@ GzW~G{ @t 49M0.`% ! 20 l 2&:Vp@˃9 [W`uP B< < 84!%R6 l֌P_ 7l@}r0@} 5s*V@RcD.O@H`@ ot< s5%  D g  ZqPi  @#lð {y`52I6B%bP - 6P  2Ѐ6 ? p ˯ P{?2p 5ϰ `OK֠Dm` *pyPF^ʗ ; 3 `3}S:%(O* *F0lZ J o@a0d %@ @r7 K  0 *x8w .    y m:>C >00* fTADATADATADATADATADATAɚ' m:>V`pyR N m:w\'D @kۦs)yR,^BQDCyOCi勰D V^< lx ۦC0Ol+lx mnЀ2*0 0![ 0p@$ 4 $P . , O  B $p O?V4 -M ]İҹm- 2* &>P0ӰpѰ xG3|ѰA@"@ @wt̽Ot| =  P{% 5+)<  ܶ @޸0 )Lа @40PltL+ HpP%Lg&p ``)5t0V @Hps tPlrNB`[=xn7w`Y\@ P n N 1? QPϨ{IA`;`v@mX ` rP r # +` O}ІuP@0wְנX00R9 K1Ā[@`@ӷЧ!18 lR 8HPSrp .aP,pV::s\BT Lh2 Ѱ 0@ H` n9B .¶r9@ %@u v r0  ;ps`Ѱ qqP 0 痊;pAmx/ `0 klg00Ep l! ΚDg:Pp`' РxEg}͌  BP 0wG0@I p` ;РxEg}͌  B ٰw0z {t20` {p K\"0&\a\` `  ڰР@ې@0p4 @0@>0}  9@ ` |U `pـp  z6P 6P 6P 6P 6P /`0p4 @0@>0} ̥P <0t P `0uGt P <0t P Рx@ּ ^h0u wP  GxppB ]> `͋쀦]w 020 耫p  Рx@ּPD/pe 쀦|Ƌ@10  Рx@ּPD/pe 쀦|Ƌ@P1P  кּpp;20P @P >h0t0U@xPr` < 쀦}`@|D/Pr}`  Pr}`  u;p(!ː}  P  P >0]P2 0 @ P @ Рx0 @ ׺0  pРx OРx @< ׺0  Рx 0}@p}U@xp ] '/հeϵ ;0 @00& 0}ݱ f 0  8  pt V Рxp Рx Рxp  @ O{ Sۻ]쀦}@-} @0ּu } ^}U@xp ] ' 'pt  >0@ۥVY  [' E] MD$y@J5\]@D XA#`>뱎YQ9 PD/:)00 tP P K`h @0 Y ) b +  , p ,  `* U0 0e ѓ/U@x")9   /P P 0@P `h ʰ@,°'U@x")9   /P u A#`' F`  P K[ mx]&YpI= v 0>/͌  BP /0 0/͌  B  zðu }PۋP9n}stpX 0o 0o 0oE  8\PE ЖP0 Xɀɠ0020Ѐzr0P  9r@h  / 9s p r -0!0`00 ZuXۀ,<@EP 7 ` oP * @ -0x ` 000>00pV 10Yu@ +P <X0ӐE`t@c0pv0 p=9= @0 0 ` rp pͰ0  0؀ް@ ~((X00P  r> }Ű0P``{P 6k2 0Pjv P 0 x @VmV  00*   ^0 WPS. 0}0Ѐ X0 0 P p À?I-@+PFÀNt,rP<~ ,p:`}`t0L 0 ~w`P @̀g0 =@P Pcc N } tP<t<t_N5j<w $ 0 W  P ^/D Q3xP E р  P0" 0 3`0000Z=Pp ̭9rAE`Y8 S`@ G%u`\E01[0 V 3EрѰ Ѡ @0 =P 0^<l F~L0 f  p1%` D0<= F1pDL`2dp0 p@py S{301 Ȼ QcȠ   M`00 `   C0W _@G  W pٰr @@ V@{  1 #pOjP     8A` P 0 Y Y0 Y0@<@` P 0  O0 1ԥ<= 0 t0 0 @е] @pА  t0pt 2xP 0˓p ڌ  ;0 /0 0 t0 0 @: t p@= 0 Hؠ  ѻ< pڰ νL9;Жu`+D];P@9;Pe}@) 0o 0o 0o 8EE \xа @   0 0 0  "%pwgrp `[0 0 tp 1qǠE 0` 0 0 Ee@ ЀXڰ@ 8_$  L܀7pٰp0_$̍P=] OQd 0 PJ̍=k% uÀ V<. ppP l(  980 0=< "00@ÐP 0`  Pyt 0r 0P=   d@ pt~ G0  p|P e 9V@p Р 00 >  0 ÐpswPmY`0PÐps7m`<s e0 3ÀU<600 P @l:}ʐL`p+Pl0pٰAP 60 1 wpr@` @0 00N Zo tp$pPpp> 1v9PppÐ@ @Ѐ NְM ٠@ 2 Pp0 @ 2 聸 8͇` `0ǰ0 Xx 0 ^ k@ Z pА ؠ@X *P Z- 2@s(> 1@ Іo<r7` `]0p` 1sp$ 0 s l0@s`  1@.@1@:wN8"0P1+ 2 @ZX9(2p[0;р=! 2)09( P10 70 `Q0 06 0 @\p @Px0 ?0= l(  P0W`R 0 W00ӰP 0 } 0 } Xp gq8 Ӡ} P]ÐX x0c t0, tpݺ2 0jV t p@ð CP 0p1P p1pu0p1>01ӶB=Ap `F`,%sOԸO``1x01`  1Pc01p1 K@ G1 11P 51 T׀P1XP,Yl0p1P `F r 01P Њ4pP` `JpP1G =Pw X010 = @w X<0 01_ZȰ@ CfJ CP  X À# ` 0 ks9%<  & Zxx0P00* fTADATADATADATADATADATA ? pV? 0 1`0 }XPD @@QmpH1ذ1P @ |,%ѣ01 KP 2 GX 2 l`119131P KP1%1P K1 _ÀJ60+0 CP=r 7 XpsD 0  T0`@7 1԰ < @2@2P 0` 4  D 0 5  |1X0 )) ch@1@^p`1@^@@ 0 [`[P0r`01 GpD l 0   Cp1-`B@2 Àr À O* ƀi01 G CP p1 CP p1`BmD0P@D0@BP=r ``B`B7 XpsD 01P C` GP @;1P C X`ݐ01 , p1P s 01 G6t F`=M0@0 0  *O0 ,%P Z0 P=9`D0$  `H 1:`@`D00 ^`` `` 1t` "020P 1v0 ,  1` 1 <  $0@0 H]0 ` X`^` X0]@P׀5^ s @\ 0 p> jV@@`l 1` 1D0pD [ `40 `0 D0$ 19܁`>-   P 1& v` H X p` `  4  1`60P=9 @1   < @p= P 10> 1O``L<0 @m`P@>0P 8 @ `0p Р %Z( P;wp`ְ +`w1  W   ` 7,  0  t0|h  ذp@H #@+` ]aP3I#  81 GPpπ?`     p?`  7 40L `` @o @  0Ѡ P 0y `Р4L ` s03` p xѐ0D^`u0 vN@=ٰ pP`'p 7Ѓ  cw @oP0t р e>10p `t` 0אtP 0t@>0p@t 2 P p P]P` < 00 y*>1ǝ>0 `0 E %@0@gG p [=Zh p` PЀ @oP  81 p u20@$p ^M@0Pt   GEࠅ P 2 0   P%n1  P Fp*l [>1t f A ]  o o mѰ s& V{0k5 ^7~^_` `@Ѱ s   0Ѡ Ѱ s ڐ+6100\p;p 0   @a11NO! Z  ]P  0`!100 O@1`110`1010d1P @ =$ 1E`$  1Ѐ 0 ~+ʰfEH0n+t@^  P XuP Qt^ik @ U^t@^in L U^H p^i0@ 0 PN& 100ʐO h ^U@H0 <t00P@3, h  , h  L 0Pt0 9`N&101`& 10p Z  81 p р   81 p ^Ё` cH@;Pw t)0P@SPWЀ]ZX T8Up3 ]ZX` 80 )0 T8Up  {   @ /}DʸD+p "*@ *@ @S`+ +`À",\1}'1F>V >0VDz W u p Ƞ P x*L p р 10P  P P  ͰŐ<L D` O @30v ʐp@    @ 6P p k` Ix  G ސ~ S0 p p s ep 0w ` P E  ` P pF@|` W:z0%01 0 0 8mz e 00W{_020 ,  02?0 ,  20 , P W _;p= P 00 0 , P 0 @2P 0@ , `60Z( , `6000*  @@02P  pyPP0P 0V02^`0/^\B@00 ,%@+>w0pӀ HЀЀЀ `l  l p׿2P 0`>2P 0@[n t@2P @ [0 0 D ` @ 2Q+` _ 4  , 02]@60 ` m2M0 ` ` 2@>0 `  W X0 0 `P>0P `600 0 `  0 h  0 ` `60ZhZHZ( ` `60@@D@@02P ` pyP 0V02^`0`^\@00 l%@+=p# ȀA @`0 6  0DF @]P@CdDD@ Vv!5|`j*pC` B@;u)i 63DF 2&P`}p ` ́ &< = d]0 ` @> &P> &w & = = 0 > &r`Ş``0c:. c & = 0 `P > &> &v f &  ]0 # `:0t`IR: Dcw(yD&`pP`(t-q0e }`> '`Ep;tp}(t> ,YG"p``s# ? '}(e9Gf??}(t`fpPkG NQE`(u@ ,YPy)PY  ̗s`9 -{p|`̗w6$N}|YRpHFucD eiE8C$ J  0;#(~p)(YP.`0 `U `@(0 2F7 ,% z &0 vc( 6c  f  >@(WP2x( c`.P 0pC   `ItI@ @PPR0 `(6tE@>@(pup co`EP! 0pCP &0 zף(p P % &N`q1 r 9F`  f  > &u`} ``(p=v @1}` D ` ( &t`Z@ @Pc`Z@( `( `{P 6cyu 6SRx|F&) &%@;`P5 l0P 6SRP( Ј@ ;60@ >P  9F> & Q@ `P > &0t0 `P  @ @Pg > &uP &p!`hPE@)``{@`'up`h@ )`< F0 > &tp  9F ʱu &Pp! @P) !@` fgP 6 0pC{PtЗ `% `X( PpC@ >) ~6>)`]` %%  S`P`ye'6>)P` F&P`t+y&0 ```  rh~P &&0 `>)0*`ht`? &  ` & - 9 g S`=PG1}` ? @1}` ?w(e @1}` ?P n1}` ?> &pu@> &ptp &) & PP1}` ?`?PP 6c @(V  w0r0.@  P  P  Cs`_p_p_p_p_p_p_p_p_p @ @ @ @ @ @  ` @@@0` 6R] TP (pCCP!(P`` @(`h`%(`Rc@ `@&PS&k`h`]߁8(]0 :;O``pos ? '`EP 6c't> '/ ?`p+'p(Ўfc(Ӏd'Ex]0&9 `|}),O 60`KQ l`p` (Pc(;@|R0 (PR0 y|WCyR' E c` &p p)e:0;ksC`]`]a't`p>@(-S l(c>@(u`hP6pPu$pP×96$\F2d? 'Pp/o  '`h` (Pc@8Ɣ QK?p)ˠ)0`}%Exvv;~p%F-a(Pp|A]P@`SR!;uP vp!5v 5) ` v@*pa%e;|jyR c`]jq!;`PR:@0 60`Ka([(iD% ktAP渀 698g`KRC0. 60`'VI  Ѡƙi$K~ xRPposP p2eQ.%bAȈ?{@GvPq${ؠhr2@:B00* fTADATADATADATADATADATA@Lӎ4hY`a6D'+P #`Q# rb MH:(i(L-@;A::^קPX%hTYR\rp ܪ%2XdAȃc0:9,ldeu_Mh 9;( i*2`]ċ L0)YKV2Jz%Ex_Q ?qOݥ~z:VcQH!?@T3SG5 YhQaGĀj{cA?hz!~]9O- Hc) YT".a],E7+`#;x r8@XBR#@(ȐQ4B"S$EU T=#.Aш}w t *? Ft%:A( PǫB C(! 2[qU], (6BH!*EaO @&S@dЀ?Sh)]@4>ʥҲ Hgn"H@'@ CPVeV \PBW`:)  |&N$BKN+t@Y=ș?+` !VS~ oHdgo ʚ4O04fXn3REՄ f WC&*2:s5߬_O&[W0Ë(C?;(+k{B>KTBnUG[}K7QO{Wu]vEc[Q3v wm{Fwݝw %:N]iɥ`Ihɦp)0sg{:HbtbPPU{a5 M plux aS`cuHxс -$2؄JQh (4e x֚S\3p!h #}r!wCFWهk^[f.|`[h m{[ܲ77pnYG*J 9k rPqUN _~%Y;Hs4Ě4}7پY Q'W%v)0LgJӚ8ͩz'O|8,> a ]=5l5](0VXb1!J b J fNb;u\bm#XfNU0u:DHPDq%5k[k_x>mKH@ҢECP{EJ5wq ` q;m{R iQD;B$PD]=~!0?Q R ?;V-~ CŅ4~@AUOxDQ`׫/Or _C% ;e@xauF BVI1K"EPDF[M`u(\@NI^2!D*Q s/I^:DqQ8sч^34h)..4ycb\lE G&2e A;sR1j+vmY֫ EA(0@-ס@D "2v@E#*>8E<%8PRQXsip1h`^ᚆ{xORx4@G -jyCv(@6hB װ5CɌEdK4ldڨHV8#C`?(:lfwўl ϲ?72 DqZ2"wrlth>* xFfjlmmGczd4Ekw<r< u'*u:,:w!S@7%hug[V \1 MU3w`^(6"GwV&lp&fGjZ}N(x@6Wmnf^_ws>@vp!!p WPҶАc q+P }qbV|$t~YK؄O`^;Zhv[aGlAiWp&` (/@O-RQVayPy1Fz2.Pzzzz{|̇{7;wP0ʷN=6|P{||{g}j@PxfO!]m*DschE'g^Er6Ged@\]q!xHH v[``fH,BRauXyr4l I@@~X棌aZFugFpZ _ʧNIl i qeoHV8[~("'ZjHIh% pm(|uJ x :`Fmzt0WS(WRQU gT0 F2ڱA'!2"t`t'GET x٦_1  ~GG\{P>+PYq\Ά53puG'$ @G^M0  k>r !a4Y+bk2 5^*%mj;_Ye^{h峸R + 0k 벸50EpA[;zkUVQ0E:E&؅ H@r0-pA(,%PbkQ) pp e([,0eF@b!!ˆ^&9@*Dۢu0 $0P`82/ Bp &td@V—` ?`u2 &fq$;a ) PP/G8 Pt1@st7El0 pVa cGҜ%Y:`seA Gspsi\iGBB *`+?ai- Ȥ!3Ar!F@v*8BfxȪȏ,&.P/{00*  XŚ*5ƸM#l\Gr 9!'el/3b \;#f6l/H.(Bp/VgF!rSK|;v;p 6!Bht\RaY pW@W7H * (B"0\m+Ԕb;P-\;E\k8''y&GBKyl?ҏ-m\V":@aJ @t!/]ҿ Kp:`_t 7+xbmj*JI[rݍZ2z [Ze@*YJ] 'WئvXFpX֫K2_*A7p,/}cdj T0*Q ڱ;6 pڏm i#%Vp>Wk[BTsTTTVPUT@$ @2 4 ( b (!Qpy6۹ p*b***]a^ZA+b+u  !!,(P,"_z*+P*&! ~r --آE@(6 "N=2(D`ҧB6.p*E)>~*e = $ޡ 6$&@B">-pL]ڒB-/,1>3ʨu ~p0 !")Ew%*H<2g蚐w`*Pj{:P1\* j"@t0\>2889 3P`> sQYQ'5!e<#<لR<݄6e~C|=:}3cP$^22?090u/vHp f FQq0H^xń|XLkL4Q%a<σ6 ɞNS|7>PJW33Ǟ3ǀƎ `)>2 _%?t V5.3.ސ'xC?Jo4 ﺽP4OcRУ b_OSu#^S3%=S#T ?F5?Ie?L?O~P=5}>@* %_+*0 =  . { J.AW`\?*(F*@q{PɌ\0p )3uP 0 %6LޠK.*pu@e Ea* ]]EAu09 IM$9FPP zE FM=0U P EsA /\pQFP$ , hs s`Di^ 5GP z@- ALTP F)ɇer.`*!>*F4rPGR\F4eM36[=. 1Ӽ({|vP 2$3-.zH>Y@f*q(H( wF!@hNy8)44v3tn錃3PLlo;nMz['uJj>l ÐN JX`]S)4s`0 į L032 U7LQ$SvRľRM50P3OE_P9_XN4N*Q` 9FT@N50@:9_XV ` @ ?ÀV ` DO7j_X;yQqOP[4`g *Pk&*ppE>@PU]#@hΰ*'+P00o < s dp1 m \AU 0L j0@3 а$ +[P7`d6uf +uI4HЕIǨ а đD ET+F} {QK~ 1>0; Pw|Ya {Q0|w`|PlQ !`yԝf?0LMME%?HU?K?N?PVh5E{b'K U5'Vh^<΅0kl0 q.z\* 22uEV@aIL\ S0pPl. MCOc7Va\*P|fx$y G0Mfl0.Yu4`KP7 0E~@t!|d k67GfW.@W0'h^#!*1pc%\'V* 221 n`p,,AP'V,0*"h($'7VG^S\h,@l(̳}`"}:} So|& hul̳ l@ c6 {i@0L}`E$S-Q+LC$u ;   ࠊ ,` Np`` uК _ `, h, h!=0z$'Kq \P5u .P<#$5ϵװ5\q("dC~ Z&\P(5b p P"I6ebUv.'E`a4PEz.zed:rp72f\j{U>T\"\ P}(0\?Q&f0q.b?\  s`^d@?*UrH`u+v%l/(l j%@/,\?Q,{   d5}(}A?|QRdW"_fehw.&mG\Veh!K:~2>ʰ1pc^ۖY@`ru\,0*q   ,P,\?Q,{    Ku&Wj*AtC;б*sIp2Eg^ 1\  sx$y E_J1~򐰷? \& DGRd$' G4\` h>E&pɥPmU b 6\'V*Ef U b 3D*-6΅{%K `n ap\ S. q0p.&"h6|~ 3Aqc6P.00w)"@ vxk ␎Ϧ4Y. )|F} »5 _2e%\h2@wTd/ ε06 T. q0)`" 0E~\ #ml\Ƅ 0uwD0P!ε066khL\h2uε0E+%" {ʔ F}. h4i6\`T.*RF}/W.P~k6\`"0.@MUd6"@ vz\u"\u.r`00F W"&ҪfSd$|C@k*ɸ#Ev6|`tp߯IjIl6 -y ( 00* fTADATADATADATADATADATAy McO||{[7l0q3~P 37&3EP00@w)| ␎ʓDEE&& 37 44|#E^`7Td$|#n^#!Y &BS//vcf{%E(۩& h9pcJ1%}Y`rLr[k @IV9//E @IV9^qAP @IV9^9w+  p "  7wDl7l΅fJ2g 1>@εE`4@z/{Q(h3AqQ_K'xM$Ҿc ҼEEaE`!5pЃdv0Υ. IxdeqhdpKp=Qt%E|d v05RIaE@ 4 bk\V_ & @|0;5E`a5pЃd'q ! ,_(m(j0D\@ v @PEO+ UHq2e0_*V $I0;56O]v.*P@b& lbkb'SVd_TTTTj}mXu\e0|"E Tb~`}@F@SA ht@ ;A ? W(? 8 0NAEV>48MF 3 + !~c1~B1 ~ n#^$2 n W)E$;5C }~BŽm ـ^Bqd^/$qMI~PP~0_أj*.!{I_0dU ;.~)9M36\=HDaGg9FPP Fu~}dEAMc@5P5K_ 00U#NFHup aq U  >Q0FPP,SQeۢ3|SQn_@0P dQ IUJ dQ !~  ! IUvp P0T\D SVd_TTTT#V|/X a @3nN@Ґ|#E|ǎMG Wґ Bqd^FpEd+" 0 0 PEq-אȽp -vq -7 [E u3}ǎau !wG2| -pB!bID 3 + 35 | 3 + 3!;Fn-GU R z P*  ~bۂ {*Q 3 + yU~0(qG6ăWp -) w`ͼ@+^M u@ $00HJ1r,@GF['Yy n`. Hl5--|#}1* `1%|O ^q$DB-**3 ǻI` *aB'),֐7Id^^-B0  *wAQАb !6`BA 0AQɐbc *0u8]U +D--$yAo-- ю}*t `(Azb0U"YyP#E03aM- Aa *2 A-0 *Ar0$$SVd_TTTT>M>M>PVda@V\|Q* 22uc0ΓR\|Q*wfuus?@ U5'C s;d P`Pb Yp ΥEpW.@[0;KrQ n^c~fa5pЃdfd'k{ 37&\|Q* 22fg^ p\`  ~@"k\|Q/.[  ]f!.uPu 2pUu)p )m2 0y "y |4Ku"#S>P7]dDyEQ.|`^ȠQh@ƁQQVy P u wo6 yE/u 2pUP2 PU:"(|~u 2pU 2 P nfBQVs?!"|Q*P|fg^d/Z }@ŷ.rʎ|Q* 22fg^|Q/"g^RQ{Ѫ΅hJ2g 1>@^ !pc% Ge%\/ۧt 7pc% G/\ h($'37\|QO.[P7P "yy u;FyW)BE h($sSVd_TTTT?0; @ '1~OE8 @ !8 @·$gON{ t@ @ /f5pdJ{! @ SMME%?HU?K?N?P5fر=P!G}.C{c|H_I>`8`ru W-5=p=2)*~?*\_I-FuZ h!s3Ӟ7\_iDN*7\_S_B`jF0;! .R" .PNUHUitVQSVd_TTTT> \& |pV`~@ ^@t&G bp`p @ Gk@ ^@t&G tttPQZDqx< <. `^5` *GIFu  2s 1 591kuIP/@Pp0Hds.1 P/VPp0Hdb.w0U<Al^Ä2W5pdJ/$Ir_SL/IP/Pp!0Hd$'SVd_TTTTQ P CLb a y-(0)0oy iphgMc o0o`~6o p18pFulpi$a0sgmPn  P0G A`UBN p  0 `   & @ (p pi`eOPtugDtsP~ae@u,)'E$pogcmad@u,)(2A)p pF (p 0pcPsn~6ePn `idsa0e0 ~v,0I`, P 00*  /'U0ape Cp `ieV:`2CV0:`4+N W0', 'Fr0~fa ibeivld @r gi.p)(p 0oo i0snp nfr0~&agP.p)ॐp(p n@ `a ibei sgrnpeivld' 'Vra lP a+ogi  op +8ogPte '^ 'Ivldfrago` c 0hrc@r+x,5R (p n`ai@ 0e0odvra lP agP.p)ॐ`(p n`ai@ n@ `a ibeo` n@ agP'  h1 81  i,51,51,P5.05  I0,X911,5+"DPMPR UR GUBN  Y G`S0AUBN;@IDPXP%T  PO@UBNK!X+X N0HDM0V0S0H^`3  :PPpb 1 3@5`79B0DPFpHJLNPR0TP* . ! P 0 +X 0nP,_04 `5,pUDPR`LWI@, X'@O@A NPO@ q,54, A@,@X pO`E FOp q,44,pA`E Ap p,PP1.0, X'0TN@.DPV=' PP1.0 )(P0,pE`ET0 E  I'^5X'N@EpRLO` PVPN@Sp)(5,1PA)L'ILPGLET YN.p,8 'ILPGLPO@ O' 8 'ZPR I pI@T NPO@'IP)(pILPGLDMPN0INLT `O  LTp,5^'NTEOPG EO YLPF@ `O  LTp,5 ''1XO@ UBPRp,51X1PA@)(5,1pA)0  (X244, 35,1,X181 1@X181 1,1,X20AP)9,21E02)_XA,PP1. ,X181,PP1. ,X20AP)'PO@ UBPRp,5'NTSPC0E0S`UL NTA@E@.p)(p @O@A pEGTO` PVPN@SPO@TPDF011X24 'NPM E  FE`ET0 LT@E@ q,8''1X24^1,5'WR@SO` LT@IGA E PSPD' pp N0LPDNp LTp,4'' _X244, 35, A@,PX141 _X1E122,1@A), A@,@X141 _XI11,1@A),11 X141^ a0sgf@n   pa0sgf@n ॲHH@IpUBN mn@.`t !% o .`t d% e0h@.`t 0Q1 3@5`79B0DPFpHJLNPR0TP*==*0X  ph0HQZOR P" j('1PX1 01SA@E UBN0Q& ,! h W>   P p@PD`GBp!WBpQNTʲI 0  e r+nflP Hr@ @a@a DPvcP aeOe a@in` `iess@rmDPvcP f`lnPho0~fie` `ienmP DPvcP `ulUkopndPvcPdien~foPn@r$7$G `ieFlP nu0eFlP ogoeDt `o mtLnPolnpqLcig@hR i0~Fi e0$GBo0knpc W W# P" pF0"  6`Bp cnPxP.a0 ] W  p^% PSPR^SPRflPxP.a0 + hPSPR0CNpf I P@1%%#NP%E R A @ @P@@ @pA1 ELIdPfn$ii@ilzPdop e`iu0 Pr o )Ms0igA i@he@i0 rcPs0o  ELDPnra @e@rc@rd0RPA rPcso o0sRPA rtmPtcP o0e0s+n0t u0to lepa +ogEua@rd n W `m cps0Bp ln0.a0 & p Bp ms.a0  W `o uups hL. W ehps0Bp ms.a0 %   ;0_`IEIF!W i0h.a0  q:G]#H2BDc$XRՋ$%X@`m?Hɔ+HLv,`gvfIeG*?|@;T1@r0m7ℕ+a( |$,`!%W^S G-PD9Y~:(| 'Ƕ~N#I ȆZ/D l†YOr8)U*dJ/{00* fTADATADATADATADATADATA 4R$@x?,tN MT M8S)P0J=(0 \.NSYAFb-ؕE]472XxD(@FpA(AЄ dG& D% p @^+ٖטEF1Qm( {# 'H HYgJ=/UǙr䠈駡9(BFJS}JjJِ iei quAjeiQnA+m1ª FnB @ksZ@EPtR}( I1ƪr1  *  @BG< pn3 iP[SGsPeQGln4UDLDtd+EfzeTi e3ϡVЮK; ز*gqPJ :mErQXrU0Mȇ -S@|0X.<@ @ #0 `/zrD C:0 s4ӠCh4h31;# 0<<+@D+ c"a+,uX9@.H@xp0?31,BF㸇G x pn>"l0#J T&p5q}/v\`(.f`1i 0Cv%,K"@.@ @' X![@ 0Bajb@9Ȁ7 P , ( 0x(2f p9qz@$ L ), +@?pH H H'#P@AP@' BP@0 <`1X`aX@$bX@- (cX<`@6X\ 4 A`)4@ C.N4 Ejр`4@ Hi8 L`@T1-P X AOP`pl] Xw!B2 !C@!pD "v ^"$0 #|0# # 1F@#\1^#0@8$ A$ PAX$h Am`%C &Qz?1ALPt0$L 0+L@ 03L@ p8{@' p%@ ' pA' qv(X 怂C@(` y * s*@7WG`X` TA Zxkp \ ,Nx^A(` N@1(D >ɠ2 !` 3 05̀3 1 4 @55xB .QY5hF Q( l /l`\2n0,p \AtDB*t 4C9tC؁ v bA(v<`D<@=pAЃE@=PG >i ?hЛ\Y@aAPDs!BXx0(  C@D@ADAuE`2`F(a_G#nt@<$D! [H%$8@ MP%b ʰ)3m6N`NN` N N NNNpO O OO0PQQQ Qp Q QQ RSS"n0ySSP S S Sp S S@ S Sp S SS SSPTTF/@4@<@G@Q@V@^@@@P)PppAՐ/jư> 6  @ ` WPp cp zp p p p ` pp0 @P  pP 0 > , A  , P  @o@ P  p @ @ @00 P `@`P p P @P P ` D` f` o` ` ` ` ` -p xp p p p    - € / E S ̐ M à   { ΰ 9 P - 2 q k   L } qp @ 0` P0 PP  `@ @`  p@p 0 `0  p  @p@  @  `p ` ` @ `p@ P 8 J W p 2 D Q j  + e v {  S c 50 0 0 0 0 0 @ 0@ N@ b@ P ` R` ` ` ` p p /p p p p p  ' 3 Y h t р ɰ J n  t  ; l \  @ 0 0 0 P P ` =            00p` ` ` 2p =p Up op p p p  Հ  ; W y ܐ 4 G \ l | ՠ bPP``` pppsp  " ' C K Y u } ) X g r p[){& 2  9 q H0P0X0`0@@@0G%$%% %`%U&PP"P' !` ! ! ! !`!!!%ACINIT.PRM/$ dy I(p"00lI3VbhCF )ZM0nt|BNt@̡FN3ӘQgN7g@ #̏e(CS bJL@yC`* b0U땮 1l)hh k*qҠkWH^@PBŐ&D d!H #vAX,!#bp E4iӨ[vKo00*  "n蔑#SΘr 28P%HQKn_(P5uadɉA"&!vt~ c*O^|QeE@ ACSTART.DOCJ s6 #N7g@T"0lqL Z@BE\HM9 ȼSM7t@LYfN3nʐA 4e03ebaĉA3N6VF'0nvʩ3.F*pJ)#=A nbŒYS7pxc)Di(N $d(Y˹Ve09\f'cL(~g9e\XR C.,WaЅF0݃ AԨ1iȼ&b0{Aɜ\cɄpocp[TbfU;SyYw\YU9/^DIjr SL3 ^W_/Px啝AZX qr!yE)EWu'YZaxUD| DHFcĔaDue_[X-b.%Ryi)ppLqF@\Y~U&FZol8xF{oXjմu2p QND.E TdQ!FWa&yDX,.P P!R>Wanv]t:E.LUf }QgN|ů oWIcoAJB. KP AZTU]ҝbqA.H. qsHŐoȒYrدQPRqKbt/X;mnq]@V=3}X{uuk9;RaDdI,4k>I&] }f$v$V(܎kDN$Xmv 4wTHRn,]EsQGszWV7kmiw^q(5vgW1Et@n{th\)fQ|8mG]abm @Ar"Z Ws1̈́,S9*qi=A! hxML3:^cBJV77I$FUXa45eD85F.B9UhF^:eQ$$.R(BЄ" SkM$ۚ"*0TfIp,) k "fK2|Tχ0[ְ &g9XLwO$'fJfK8B > {:uZ`7 `\6c)-JLn*JRAA(a '$fLs2ye/qϝXI)T `bbC5$?$Xq_rc(6g QL҄ -ʠ4œtF@(EjNɠ6X`$Z*zkϐ}&s Ds8ݼt7MO5/cN~%fN(D~4IRmPr'z91?\K%=:YjGE22J/x 5F9 &#ݡh YU"3*D(|H+"m)h d >kD$ uBz-kZhEQ@vΕ'׳ǹNB$!C2JlQfG=Y'Q.1BUĕoObV.XJ09,-Eg@!,>F5~/jUut2uU54>E$Q>*VgG5)zNC~Anw?^ai$So%]X4^F3@IယbNPWP$3Q;+(8k&m->hvb9%VROAq*&ITsTByy*1F#eq<64!ޱm(a$PWCY:"&aOV*^!q)SFrz8.1uʁ!A\D%/}O&>[!kCq_rX!2#=p1~hH^.‡^h˳&ZKAu& a9g։ 2؈QO01"|'''.BK"h oDH#HrGw1q15؃s"L!bp0!aHt1 ({-ሀx#ֱe}N'&/+2129Y1}BY(rxD! CCYKQo(Uclٖ #?ס!y'x9ٕjP)a}^!`x;!#0!bI749IwBA"ơT,h F/_N㉻&`ApPr9aHtz)K3sԋmqaR`ys'!!$jriզiCDDv.5~wBJEbLD ShU'@s_OLqQVɈt)8x@#urH~.!R:7p2D"ƫIE9*_HHA)fp8V#GAEwQ `W%OpD}W3 \fOP pA`w)ҷ|Dr+?'e19$BU;{`<:xJdtX# V@qmZr)8tU:spǃ) h-9*Xå1(ai_k#OwAq!H񀌷"4Ca"8b5G\ӦxQԑ ȑjŸ1r1h>(պiʞwȞ_%S:jY@h$X;P,2;v[TC at)IZ XsBݱmֱ#fB1(%iaNfX@w~ t#עxDf(DpOIQ W pPFa~y1K$0{qOɡCвE g3g*Db'*D)3l=qFAkwtQ:|Ml&bzjr 'DFk,%۷>yaݑ81#&F*rzbZb m!1s͢dr"ɥWɄ .T%ۛ}(aC06XŠ7|2ޙr<0Rƍ <7Zy mM 9*e*q}z&b%::9P24>($5^]㲰 Z 20.@V`-dVos>A#427`hu=I]6׸A0m-6}tA~Ma4SPMA:4`@I"uDҔ95-{mڨ:(e{R SFUA`3E}کڡ4ܰaA;f&Z6%>7TOHW/fwI?HWL`vGJ$/L`}Wڇ}Bil}:֧CP:0\ e"RjMց^=;+!n0IsPWPb}{ ZaR{tvj% u3T`ڇ]G]Q&IzÌ/DGh3Q/)e䦝 6sV!'yM en(bgKQ1221;Bi,o e/HT$̞T"e :HZ v{0pwEwOsݓtJ "`iN]&B3wQsb}Yw&RŮuֳEһ1ѱ<`n&)GFL P6Hb}icEgPpf=_M]] y-6@ n _ׁ}= #hOa}m&_/ ڣ];ݮMܮgD}۬l`bRí}MMҭ}=-.rSo $2-͛F+ !S@O`M}  |6>>>=11EIVk<02Neq3's+EGI>LN.VPx!TNV>X~*p`[o^U`b~dNb}栚}q>Utv;z쟔Pl *LA `8p (AAjxJ?WB7`0*a[I}2WI骜cB5"{wM)K\3ձ#m5LK*8Jj"=FPRq0 8؁(erC =K%bq0 /mAK`dvBmB˧1( A/aK/+ֳaFA]pRLE<Wrs3S3737sòM/ttGDFH/=x2fbTh0{PJK$-B-"!r㴽 Iz8f?] -hRXJl*=ɔwƦ!m I\QPI\ͅSx7th"$l G'.SJ5;x[F2/`iN 3NiPNѳaGFc%a,,fEAФ0pA7]òMjl!HETPPR1B$l@Ra%2h2.Bɓ*;q0"NA\h*=ɔ6'j]<W8EòM/@ 5?*ò(N@4fn p0M3qSWCU%ob}I$N "w!bKBvsQ `1,ہ>1@_ l|ic6)v|8e.%.v'[h6`pt0"Nԁ{IuYs?X1i[:/`iHuYrd"1.NZֈh&5E-I{By=ki8jh#'**8{Kk`abe4h\!VVֆh]`N vwn]5D.4"$lcdn*Lq̣><ȢX3me &)jqrO5DC~c>h e1dG0V@i%]NIG&eS:aǽ)l mSӳD39E0 G,+IbK4HEr.NQ]rPl#IoW8Ibxfqf#,arDWzD;35s39s3O \)bֱb)şifDj$E'(V@@6I"I\&P0KHw}v{QrWd;3 +qn\49C,ptGD`;135s39s3B}.NqPBN"5֘ob"`vsdzjO.NqPu6V~f#%Bhs`rSWsDcd1A\>i+sȒvys*KLy5)eN1p+wDRkkob"0pe!ai1Dt)A-m"#ݿigl-"4DDKdCiDҝSz5mvANALY.MANCM F (  !' 2I@ bjLD7aCoް`*s$:)A$BJ3:˸S!o䑓 : P I"F5Xtj#$$G\ qQE@TI'͐cMdϟA!INM]6yi'M;f=,k/67 4/}(æ:r޸Iw9eS o Fi)#n5UcUqKpu޺XĆ/]ɹ9ƫ9zYU`kiG#^-fFrȉGmDvapj Xrq W?D;T[Ք&4h.l=ꄏ0`ӏ܁jBILDf4lGsv$Up2 S 7e "`bUg4وH$CV$&Tkd?1N_Ls(%LYn.⋗n)L*C,I#(gl D%Q$pДߙġ}( 4r׻j"!6fUBB2. ,^j`qr5(\T.eHƠJۋI715tJ ut"p1u)W7|XT?ƴq໤1T؟(YSMIt;$[39)BL$>aL]B^6,AJNJKN;Yq.CDPً~-(v7jeKMC9oYʪۙ<67]f 8lHO  frY\= 5':@7_FA nxu!)f-T8Sn@lI2VnD uxMO }X [$IԱt LZĜFP1ak UIW[WG5*q8bj d zd}^nbvǰ; 7I]]HvX=Y(`= I p3[{FVhgfG)ο50IPiYsP_T5U4c,;1rm,(4 ItB2LX I;|)V`+%iĵ5*=({>cl^$V'\$%>;9)qJ,fgQI Z к&װ@s} nΓHH&DaW`{"~%2ɍֆ@8`IT` %8֟43ȁS6ЙW=@~&5(j{q%WM &+Z/!$A %rH6e'u]qϗLX1} C%Wu%V!q4s%eqIiv4sMP5C @E&Ar8GPLa1rjt@k: 5`Rq[f(#Ugtb2r=#|rL0-"a@Xb%':!)Ei,xrWgE@B(v{$.DxNs&jv&!01NR8K8Kkk2y7a1Bh5AGh@80/xx5A(wvAqzWZbd#je{.TyD/-42&DJy 7mp{L#>ip>b2sCs`9ڢk)rr&P@nO5lfXw8x%Rw"uN@.99"P" O(qҥ""ndPT`&M2n"@Y\u#-'>ӤuH'*tpnp~y`I:&649uZd%FC|*iuxV5qW%$)o0iHt+aCČ2O:ISJ{t2cGCaX"r ;$MXa=gun!1bHj$juIx1"z>8V@ZH Bx%I'4| cNR`Y)Eq9-9.js#?*2`p9q%)>jLn$()PQTvԅ@*JN FPBMR A A&'4T!0jTفZDb XD0#@qy]_6M0܉6Di"ֳofo`2`u*!&ԥ4*"Bkrj oof]H&84QPZEsX<}z'i,b)Z]5bwI&I ʼd) 1f*+*T9@4j AаjjZ31qrFMICvo-ہbA)D!2\Ba/&I D0ƺ&K@a>4\D. *FLP|$S0RPEijE@bW I@E@|!qO D`- ٿHdJ]DIR(#L%§L+!PfHS71BW"L<>I״Fer"btPZq( {&!13I B@1|!1&Ju&U49@06 fZ3j-p9 9p wQ7'%37#D!) sbfXSw)+wIr\fslD.$`.t_L&Rq4Lw%4Z5?ZӣpN*3TNJNQZ0upNQڤH'Xjq;=\tBYWHgrId$BwWC_%}FQHmFth=rB:!SiT2l7k:>E@5F( .,\aR(%![|`G]3=?0A0tr1hAV63U'[uۭ4@WQ͸&rB]qMWlX"0]kލg he)fCd'GBCK6g5TuB;)Qjv> IӡKcu"N00* fTADATADATADATADATADATAB;)^VdGfD\jix"ŀ{rsg]-4%=MIT%/ =; r=Hop.Eebզ8FU"SڹTY!4LH]q/eB[^ǣ6.ɱF+3H"#Z"J"1A$bn ּؘwcq.ޔ5Qτ*,cV!yT%1gT?kR& ^[35w=njnՓj,"WJ=#SǪQ%">_G!*IBG1<戜j2YZ%wH+b ۙ):NVwt;t"Tl,[]%^q[Y˔r` =n2fٸnƜ߅${˛RKSMeaK餦ǻ{jjkSNF@,oFDѩֈN@!(o08,#dUoz.MUB4++>]`"rRd]e sfKQK/ $"@|>vn oTl{r*񭽆nA gƱ4\12ȕlg\W_`N"/vUYSx%0 ݸjJZtEP5HG^p6_gMwnyI."\ Ÿ;](d[UJX\Xd0p+*/@R.l/A *v*R(oDs+W!65{/$)Y"%βO@4A͠jDTEİeOCUVh+`En 5 #$(`&yoYa(--=*Ҩ63%)92jf1G6aRH'u&d,1H0)}&LHpT:Hm%\SC-rgH"HßN;/]\dIvM3.5(uw1K=.M0]RD2䦯9z#^AsQTd,Aovs2'+neBq*ƅ{9T&>a@YHSFŰISSO`60r $ ,BSJaۣ!!_+=Evn'(h)*ѹ?X[x@8]o93N%TH)f}Cu5A)8@)DIS| 2{ .0Y0\n(l#Zuito&1Kba=. o2C1է$&d,qWa矁&ISR.6j 2[/]`a'TsI I`°1.b~/ԯKHK[kr;tIo3VPT׈khY&v'J-t*o>de" 2aH75>S5!B' '46Q۩aHu!=Ű;.JH*Vaapkx5kt$Cw3U. o2CCW2к\BEx))?^:H+a4\VsVGFvK~a\"V e+n=-gK/-/9,2z4{]9!?K5JvMCCiZ 4e>M€]=d,1tA0K=.k{XbA'(iGܩh-*J>mJbFדcm**=v 8Z.c⚝.dL'(9v$0O1OCC!!Q8-;-PqZ8t$LZ};5!q"_Z$ r2Qa 2"Zp22- ~X 5a/eo(1K*chLȹ^T]m~3k:Asv~&4UB7;mG"kzܒUcm*;NIjx#f*t%~inO'"J.yGW$eb1yXI 4 .0Y 2Ywb$nXeBIrȳZIEdih]NwBs"eXɐs1qrųQ]5v&HWCC칶@xKHtKp*3jf%\jZU,3X>du I0&+.&M@ߑ&r,4CS!\ε/>*vYNAb>7E1m߂._]CqcV%RaCy˷|9ugby,@y,u{349ugg|˗JM*)r,ju\k8&`TN!Aa-:I@cn@j&!oU$mP"?9Œ]%v2 9",=&x!F.P(`B`Zs43' 3yG3zE7c=nq.O7!$Iq#Y-ڙ="Hx)eHI΁/,d 0Iv<ʱ*DQQ#yi3P45\OTBB볝57+.<Iw$&'H"fN"`[.ж!Q'-=)Hf=oGU`37s#Sjڻdf%+k7,?/!IIbyIʄ弲Ľ=sEҾnhbۘ $kHDF!sȦ2EEDwCq;?9Lc+ڳe"%)qӍ`&qti$`~34L%^}gJkSc* 6hq-F:&]9 mYH;L09V)=o~nq-yr/ײܺ%xcN5ibv%'kLz4LK 9xRiײܺu*CX0I)4 "2y'p\s+io 0*xI!7P%(.Zk=')K\^A=JsCW`=$%`F@a1u,3C%֠s9d.Ab"/1!z2?t+4V;ά"t/8JSa=6*sFV8r3Z0eƩc0*/8JSo0$8qum>nџ{ῖ~beAr/8JSo0Y*+RM}EǑIUQ?/$nT0 X6/# OKj)K9}FFE:)NzQ˜wdAC"V@Iag=IXd3q&8)?]ԩI5qCLL@!PnB볝J:MpN@!ABVt+/>u9q2-UD<.1Key6F՗$\xtQ [e0p4^F+ B=|vK%ZIUe>M"\a=Hi).eH7U7L%eB1N6Vn#wa/o%|y@SL=Q~Y~EZ74HT)!=VxzzI֖#FC%B@vrPrW[L@*|,rO)?L18pv^'.v"r'QEb<^:"EhTFLvuX=+B'ҙrD/ 5n4%k$*2BCV=3N]ZDxz/>rxxhmۻ ;ZeX e2{{vg^ܼinAYaVT=^8?Qd'ڢf Qjڻdf%+k9!DLB؟}WF @p)n$,Z,S6UK0 .@o{=! .0Y@!@3jW-'^ ĿɆtsG{r"r:D"lrk>NU/`y=,#RnLc$8(r"{{"ăE;R^ Xr"!* P#1Mh-X ,zrp'"36na 8qPM@!}8q-'-a 1a*~ 4!~&X~&ᵝ(W^R^\]7h M U9G4"!@pX.0Z `-}X.0Z""4q!-f$&{ /0}rd<1{ /0}r#v1ݙS!Rs\k3-&,P!k(b@̳\aV>iR %n!F0-k3-&,P! x^H"($\k3-&,P!z1=iG( =\i*t, @)?]Bz9I3Gn!FP}N] @)?]Wg#Xi:i{ /0}:PDٗ""{=H":P!SRC{/@}@' Dӕ&a2a/i69Yizi{`/} @)?]T`ٗ"b;ZsI!W@'DDW`<GlrǏ @"Id5  )'!1@/u-'@/ufVXjڻdf%0knw r!nwu&"r& ]>9!1D'zt4' :XTrVhEpnw rTRG;UPPSKl@/u-'@/u#+c>(Ƙep `M-Ƙk̚*h!G Lh$"T>FHPLB3$ 8k3iydF1=ybf|[i! pˍr2M*`,.ܪNSsadV QGBd!{// /0/@/P} P#L-ɋ/'Ҿ!ARH V"֩Rc- >*ׁ2_ }.DqX! V AO@6DA <ʠ f*`:jyIm!OD0O@6$gb@̓i:pXV4Lnibz!I̠@O@6$gb5~dgMHF/@V,mA͏=VhIL TaCq&FN)Iy-aAq&*TaX,W g`5L V+`O`:A튦FaE! Xa#&!w".KEa FabxHf7E a(jq-`]"IR1m@!!b"4j*-3E\#u4/Id@(J~+Ӓ4 /œnw @zQlPk/RGAWc -D%T>F("D-ov/! F Bd A/""\q!-f !Bd Aeiʉfݒ*Te1m@!W W0?o&Bad  PXPnya p/,>ž/adZ¡iZPQ}f犦ZGC/ p/,>H4iM*zp4Vjڻdf%0kDVPMpN@S M hiTCfCPR0IIYV^5G#5 `:d+xޮ p,(PC\ \Lx"y % M*g\9'2 (Pߖtg\䖑8 (POVA,\Y3sޮe*(&sPF5;oo&[sW3Qh~kho->mwrR4dd<$'oV@eMgHKPY@!R7L]RE@DAHSMWA!TEUW-lpN@EGN} EAHV@BHPPES5AHSMI.N} EAHV@IOT.EBI P^u1⿑nՏ);K%ᦝ +\AG5T!1mY8FGuH a4i sWnAZ_I]rt~/\|;%gW@GaaΏ]C*~6$,59[u9%giՙJs6e00*% fTADATADATADATADATADATAeEې-[GӬ6q2=BEc .i"6ꬶ/ABQKү{4|ކ-r8sChiT^VnZË,lV[Xoq[%HN ϸHۄW`)A~eH4.!3yꑫ`RË/,vK~a\ #0&{1E1* jDU0SGyH {OpS{oA Gq-v$ dErT%ԩKB+C3Qa4.=B V3 'rrH8=Fc3+CaX f'r9'XqD},aGT>u#f+T>Y-; elH@9S5 pFsPHӉR| DlF QAPA G偀6)%ԩKB+ a4.g׋2HI95 @V!oqB.6ݙ6+C\a.a S'r`N۝'XqD},]T>b p6+T>Y-; e4R o?H1*JĖHbErT%ԩKB+C3Qa4.=B V3 'rrH8=Fc3+CaX f'r9'թ1E?EJ9b BJxebPVφ3Ua4?H1*JĖHa rThN۝BQ-M 4H.hiHn}F#bN~Y1z/43QTa6'r`N۝ixh>%fp8'qB. WspYZQd,]T>b p6+T>Y-; e4R o?H1*JĖHbZ*HXua7;OQ9C 7}/:N"p.N")%a,HƵI'rr\eZKlSeX?&h*U&+xh>%'Akv\+9&v@%r"4*GKIe?H1ERlHm!N{5Ғ/D5nXeY'Z,tkT֤ ֣ :D >o4?.^{iBfe,B`?l60F<75SnRD[R'Ot)w&>$^]IXz+Sqr9D_7\KÍsE&ze.,.!!N^wUlѳŦ<'ܒTacN돾@CwSX!R)q"Bc\:keV}Ӆ{tϚVq !xDOZ!/%acdxh>%$S#f|+Ot#3+C\aaTjڻdf%0kKKRP$F!QiGCu!eCPK}QLSfA 1$ 3V@P!NVCг 1$k@(V@շ0V 1$ 3V@P!.%R,ofAC@ :@ 2:` R)?]fAC` :@ 2:` R"R(Е1=I;` :@ 2:` R`u8= :m@1=ҩKKƘ8cv#4]ةV)# Y޳f Cki6=.fXgPnfظ1=҉.b:@ 2:` `#n"bѹ\ Z%H&-."P}e*XRT3z;lu'XqrK+oHQÖ-hI*d2f+C@$Ƥ'))Oa̿i\ϺIBEh}b6ԴRNKDH @cvłuW]_~ Π'zn4eUH1##pB?53+C3y}n0Ł(zC]_)?]ؕ*_S4'BZe-]UyG"`X5+cv`ڷ7mT-+S eW#&%r"XK&q'*/=Su1_nĬJ$N𙩱R]n G;/eqHJ ?[pVyJibviH4#$B$q,sFsPyS95Ilg*mG3]h>t)B"V7̓OP!!.|P!!.|O$I *SD) I Nt'o͝2vAM: ҘMnʔ!bL:aҸ)Z 9'P2Aif͡,hYFL6i 0FŖi웘 dS 7;kSG uu8y;s4^Hfj9> #e;.7AUc9}qrڄAf&wNXft3Ͻ. 5k@Qaoʥ '0E߰MvWU]|p1TVwR8ل Jz""p~QVpb&sQ:Wl YeŖ`P9ֆpA\YYVȠigZf-EQg|rP3@ICX@w&%IAnP 89݅ñSӭGSBX d@FAF 1 HV׭iu PQ%1pbfcpfivTӹJ])RAnaDh1GVTfF؅@ZJ n^ek ƪx*8TQu!Q^$iA_|mx. uBcLlR[X q0nD)B&EoMlsY\Z+jY_{u$Qf҅s|kqdY6F cADZ8Vk!SJk!7[F(@DS@DYtPHAHDS]9qxNwUe.cO!P, \2 9}q[yl vo\FX8Cezya. X3ѡaU&SUeƌʯW5J4bAGsדh7 "ϑA׳Ae@>4h~[P4e aIJF$ܡXV#@İX_ Ѹ50H*16INp0l) zb %ܪzDXɪfs*prd8SG`+_&N晄 ٌh9'cf@9 AyZmxEܒs@@DYQ)`b.J0@`RR8~Vni5FV?Kp;a x*BW& -*@A*]4|rVd0bFvr vb'>I is?m'"J@+cZxb7A (WYW$ &+I Rd@L`Ժ<ǂ 9:m2YK<F mqf F-v.T+dQÁT$J%/.J1h&*9!9d/cz|` LIM}z`0R)+VjZuO#& ܰOjd]-h!xYm:唵,J3Yjz觇A00*-  gSK10h= +' p'8Ƃ|V뜪Ru6Pp9 &9I`^5R"@HymLڠA<-:;Q(F9J4lsKd&;3387A" &UeaSl:n!v}JDM.rS$-P8tBoйYRH$`Q7x XV9\ح#B! #IU8*G+ IJ`Orx*+158tjV Pj;̊e4<4=Z`)PA !$0H' q,dꃣFڞ (6QJ sZE/0#S MX#n۴R|U I2*h2d-9Cڀ7)tZT2Evy%Z6ݧ<.%u PF*NP3tgJ3:Z6K'\VP*8^:H>5jAº:1TAdGmc&^)i0+s3!lQت־Av*$TM\"•h(-6yS͢J utH<4&Lŕu&?K8y/!A%[kEB4|.K R!';qa&22!#- g fQB& FD g->E[F82+(dgx #sOj|C)- l@ =[YcH},3O\MRΟ"Fn8wT=[vi+ 8/YdKx|O} np2f7F. %C-D_A4Vs'i!tkz̡$w[m81VQD!xvp["&c#DOwґ.8Yu++3EKmvq+ `F[@YX5YUrk+IB RQ<8]2BɅe9o񆤧|+֍#A" ,rYFV#ek=aypf$f@QrLfp1!"|cHC?xbFuo&v_q'E$Yc@›J<)Ac}Up7v4R3|$D8F&t o|"[ofEuO*"ZrƮ 5p:6P[ g 8DxNPM E jR6q[Q,ڪ\٢rAeԚq3t1+R6CE&G5([B32{D'$*˲A:tF'f?CES$@;k% ڢɭI}faicF'&CclOp121<2s*Vc}gkFp.49fsѓHvZGd Dku& Wt@CpXR8&!sd+;)R^r#QhPqir1wa!%"3gds5/#a:"3fc\gXnpp <'pO20h.p8 V$l5*\W$ \%+%|.[(Q-ɨi1. :  ;ZSr)n]^e7@Rrv?qU_a֧7a}8~>d:Pmv]H) c`=;+u9$J:UdXnÀvb`(DlnQRy jOujS2zz7<6{sز8v"ͷ$ CpLb\p"˺zվI+m5,c4ɤr>Lzw3MbMHM߄jM\M^hWM>kݒd@5ۡɞ$+>aW. A#gevC7+5:@"Y"'&JJp]WJ9ۻ&`c4>c11pnT..1/Dټ'M(蛅(ǁ#ږ^fBɭimG=B+!Eګ,l2rHkN^0P+CZxk%}~q 3E%ϝwb=70. B"0<E0 3]a`9MepP!70ݪTB3XՓ$SᏮ(8~D)l$C A|akECd#@" GBAFEb2 D631c'a!|A5!rQOQ`OV䃦mKk@p%քtc;58յܖXݥ)]'U+8 }vWAs@b<5^vҕBLYYVUkA]9k4dϔ_yD^Q>؉>2^AT0BAqa=a (>5a)">&uI|q,nxpwqZ$Ĭ[YHY{5`ѮrKZBR@).t°ػ-L3@E)QT_!'op}(tI pq?Ec}ikd_dRﯥw<3m+1v{n}nS<00*5 fTADATADATADATADATADATAMyPQgy!߮85o=E@>E@OwjIvX8A"`õao‘dMx2za`v7C@hpŌ d}`q!S`@FeV)nC^(7ęs(9,1.&Q-q'.a#jd<$%&W3oY8׺uђ1d;|@WiN|R>]#$1N}iLmWwHvbpk0Bs"@y,:p<7uOYlL(ACC>2]Sh[Jdca~mM'c֠UY$\*Qn904sE;{2doSMhC$>l>2t5=Q9f#oLq`zccE6H>!_:ޯwRn$kAɥYlMRO+6ЭIY$4OY[VId'&,+#la$$4Fjr(h5&bڥq9tI^1 0S8`v7W8LN0(S>s8 f7x3@Sh#`1N1#@(cacIx3x0ℸ(BU8-&\ #_qF'$YvS?K&qjDِ$8Kʦ,D8Ch#CpB1(3i%c^gxN8X/dLOHw:nc:_sWd5zQ]j>PF4Nx#~Dt0@_+u4ScUuFmiv0KQd'$DAFQ_U8oOS0D@W=NX)/$K65zQb6D0ӕף {OK!zQ3 K-@uV65NcuC0 #5+pʢ+d2WQ#Y3q|~Rdx2hn̥T `[fz6#DW&Wvbp=2lWfM0,Ȏm#)Tͷ;^'+\!Xy lN 2\95N8HCWs'8<+1R|+::7T&95NQSW=*1NaL788-~]#tF&>1*PY Cmhq8 #`pZ6lcF۹bxrPW]ZOMD@h.C&rCh.8faaQBH9'5!?%)qI 3%3zRrQR Z,hBV],8u9/$MGU&)#Wʌ|\Tdp3 OM:D,cK$n1UONf dkkTqtnQaBʾI:EF3*$TaV!&gC:'Zإ `5aR/Qs=S-eu36x[7䲟הw@wք'pDƾutzi|&1#Z% gF,uĻ=fcひA'A=pp=O[+eP(] 9Ajb*R-*Y39#Yq'4#;f3Z1hťhq3 f7xza: AVuf|&gtpdp0C3s&!SȎm|*ӌ}Hapq1|~W]ZO%UF]E07Jɥ Ps3{7Spa&QDmomo!/}!({1xQoY#9V͛h,E@m_,7$|q'wWB8n4b}kA{a1CPP@03fLo q•xYz5="xGYknGe 'iOYdNEUڠW 4$8JM1ΥA.q.ڎE3 MR 58)iL `2=L3b%0RbPi Y `2=qr,aSA435[D0xlg>CQ-EKqw"(>2w&\yE s2Z>δ03fKl3#?!Mh"=ob9RrG4fwGG)YXiUoHҍ&&p="xGYkn8a6}dZrѠ%n224H_UlM##7C&A0CIiA0`*;I!ϊ_G%rn[xqxe@C{Z% ʸ!x-rpYZ 'tk' Zxr/A=6]\fA"|c-Y!BN'%*CO="=tjgVfk\Z6Yk߯ 'ѯKK" $ڒfoj?:!5&jt$"|y|A:DLPk kJ `u1Bdgk FJC6M6>с:EJrcP-сfs5g"FGRfӒW1bE@&  oR G&4Wll:[Gȡ߷M'Cii]15Y][,E_2  !PN OEѮ5DpVEn_w,91g[KAE31g[ZBn B(°Wx#*Z 08w)R=s%6 y(E!s)R=s%6 yIrJ(OH)sDR(EHs)R=s%C"`$ۋțh$SLxꁙriqPJKqwRM[G6MSd-iJ@EKXj5'QQ.x#y4!U8$/0oe`f!J@1|?$hp-sKBG'YCAsw$00*=  ?g[6aYqAsxQ%b&T:g[Q$XG&2[aU).#$6 Ų)&1)ur'D>5|Z`Zhur'DQn_*$j8~^QSGgaj&%P2cp2cL0Iz Nq,OS}8d@(b^nbz(b.ip(TpGbi#$*b[aU)]8/z!SvN<w1S~Ӽ,a2W4{U(f2/zAZQSFaQmnVaθE*Q%<5[EсS%<5ЬevA3J">:AP& W" PXJ `la$ۛD`&5| \r %jY`@"AL7bESPX20AL7bE#(B t1I"D-`5r:xT"P[+3``o4A̾Y›A +4*A+9 +p1 /S[2Ap&*A] 7`.h"| =ڥq9tI^%@^MYtEQ3.(BҞ^,~]#?`s@ #u OG1Hł"`) 6 э(BēyCB\uJ"ܵűy-pt FSal[]žv"@&n5\ʡOH);UATq^,zm1L3tlՒ/fv5ʊ~k'%#tGaA-* D1paARٕ"Jg#5'K5YKH32BV@MM]Op8c?J\1/zrcSlA{S.aY1KG!L>a[ !.0Y0'x"Ip !.0Y0fō]Y][,E_2`*ԕ*cx@rŔWc ;_KϢ1KDF}~ lKÍopTVfOӈ:&+bWͨ&V2흵u $y1S@[4x&-&]Bqn ri4Q C3,uW$}'8PHPi@ܱ$y1YM[4xrV' PLBd7 SH܉&݈e'-#-'"$U]0F!С~S@qeUur'SkN&xm8O=u9>S>f[AQ^XpJ)lVrL#(&$Kw6fl!\=2l*3"@AB|nSrPQ%A&٨IE|WLqcu뻊QdR-,aW j[7H$}l2fGwt>r8.,sQgrn,Ѥ42m_1Tj5#4f1<̊J^[K"*"1ΥX:2xw2&!|;mBYASLjc$q'T.0M@(nMCTh'1yc qx307*e4܍Y!&$ܶ2 hW(KQU,K;f'jB4RFD1PFD2PFD(D A IڏA:I]:FDXvRx dFD(Eʒ=ȃFe?,@ƴ2fi@K+Q\0@&F_~['Q[1rpv=7Qgej$8uK@.0M@OY>9">e!q's\0J[b5SPI25$ujśl@tDbH{JFNTPa]>FrHAg3\FDn4nAnH11 `Gi#5'J>2fvG#J- 3 BKy5&=u&-n4 loz8i9aIՍY!=_dE)UQJ[ǀkMrRGsqmW,o7Vsxao'A5YOVٕܵŒ^+ PLˎnqd\蟝\K{42j^I#C츑kjjUR \`;oOW4Z-A"UiUoa䃤g,Y(2ыhªRiA8&\v1I"(2!4H +@9CuYr&H  &Dp(2ns)2wJ'6wspw3h_bqQYRҮRڞ*nE)/׿,J^WL3:g%\%?H+QnbPjbJQ4?g[?psV_/$">i"<@1/3'~m@ooA3@}3q[E1 D6Hm#E)/&d!f5Wx>\Urpj00*E fTADATADATADATADATADATA,D\w-B&o"/UwqL3bu4*Ef9  g>g[Q3wT #0=ApjG^WgF:a4q&Q%A&u4gJCU&X:Gze`f{&-Pf(.P/Wuс\(i'_Ow95:ICEu2:=B/8,`2"PQ`[$,%" -A3K!eze!$,%(b(`$ʄ.E횥xQ@5:"`c1AS"0N@[dQQ2i[!&(b$/%Y`$vN_*b/r/14m8$(2LPNN#8"`d<"N#8¦(bF3nf)daq/`(b&EQ1 Q!Ud< :LNNN#8"`d<"N#8¦(bvdaf)daq/`(b&EQ1 Q!Ud< :LENN#8"`d<"N#8¦(bYvf)daq/`Qx"0.HaT0pRl'(bLPLNLq/*CN#"plR#14 V3,ds bPN0P j!;d9Yf)q'(b)z6b3&*";,BG)c (b:.@9F*2PG0RYj ox-\ta:M+`C)E%~ܰ"H,Ylr3"P'wԟENVau:`I^J.\':NL’``:[4?"<%RP`l,p/2"f )R8c)"ve$۫(b)2%FQv M(b.s/&\.s݈"@ɢl[N9FF}h LHELQFTT$S(EQTĤ,Q,1U4QAPiALaTRQjNP1,F3%Qes$t >xGfk PN娈rǗ]wdeQa69as@dr,Y W;rE!eʓb/cNYB!JZ"S;L Z;6JT(1SlM`ЂGUiVIB+_Kkޤ^^ɞ9Hi1фq&4GB EQH 9$6CƠ24AvbR j< p99ثbnD&E,(ʎV#%%NM e8Lz J!J jԣX$mF˘9h5(Aqxe+LF +tQTG ',q$P6f|oȻKʃ+S0Y!/xXsJw:2 Pn?nع臞%šяc@ <4 3erUf]#Պ׼+KVyh0 %f'yxB͑{3%; 0-A+*ڞ1 _+qҳf.pE{iD2jQGɇu@5.vs)KTe4ewtt7&z_b\PP.=iw%D@iTFr'rjtqӏe?/a@%Gr/A1l!':0Pt-vD 2B$o#є<͒.R'T~"iYx-XFPt<tQ74& # }k薭vJ';}D];5UU5:q!Mj%!qy&D6'2q-B#fmg%'q652s'iK+2>&30Qܥ3 rmka@IyOwA)Q,.1\3h,rrT4F4sWk#y0LtD7O`44f3@o`YYL(@!i1M3Qa!&TR."ԒQß%9^/M!BaDjy%s$!HjPMc HKDi4vY*;w36F1A]^ZTTIPq-&KDzoII7hCT#DO YcB6)#sY=,7Fp%AL# # K6d3%[#gUyEt0Be"!!$'Ԇl`1U;c;6_u$__E43`>qp` 2 &63q3͓3qKM/M%J%L:R8"ZI6i#F%"J+Q$fu*Z-qz2(wj*0X3?:pSkd9|rٶ+ `_ժ cO`Z`ߊ`730P83S͝mCB&MqR$e4Ҳ =:#f24)gN `o"TO罔40sb1"6qgo,QB!$`1(3u@cSöXzX/'}mj4F$~d+!eI5:UiKS|B*B qC뿘f7\B@RNڎ\1)a" @:j6j\VOu༺  GZeQda71ȣȕ)Sz%46 MwkSs)YCeǻMOܳiNj3AqZ63(4<5tN©mT-K_$3ԊƬH5+ۮӞܔ }=G3{ַ>""ӞԞN ?$u)ݶ-0#SEV#!D=\j.zVkw!#&jY¹1B:E$ERFs6aqwVkR͓;)"24:Z~C׬mz=##V1<.lpzuEyQ?ςr K)0 ָ.0C>=DL9F@\!xb `6*V5y!?j"TbҦ#k"=cj#AFWJf B18^TR JGku^8a'c@a#,fFQ{##F`G+TB'P @_Eֺ F` QTNPtBE/G9$AGSK,SK+)8CFѡ[:S+)GPtBGSK Y!>+)8E@'FIEa ( <@2"<2k(usr݂6anl;d00*U fTADATADATADATADATADATAG"Ӥm¹R#XG"aX(5oZHx.+#ei϶愇~-U>J?fmE\{y} bq^lp<᳙Bm :dH\~JMhO$xV8HX+D(C80T`x;]|6bZ ȽESYʵ8ӭA1ñ2ml-Hp쾺;Ϣ0}ٯ-Gjj%EA6ރ:H(@}c0aulӛ#aɱ?Y7E`9HA์ /SqTS  `0YdܽɱEޏq %@cT%m*;g\q)yp?Δ (}ϱӗLjfWq-;,ݦ?bAsv"RǡC1҄Oq]u%cj޽5,"ܣԻYBɱo[;|z8Pf-P,=ʷR죰D(ԇ;E;AW/"Q-䦵D!G:j *yM=](0EAF% +⺅#oOe@{48Md; .:~%wa+NL8 nP:NejfS:=o '&CTOq4?az:F̤5tNT6JT- -kے)gn`Ncm:9B@,`2CP:0J0:3遼T%1X迸f;NtSe .~ǖ<%ӫ: .:Kn#gyb HXSUy\z&0APΫ+  F@\<Ul /`2@N \ 0L0,SVe)t'zj]?}O=UQ7qjb!hd)U2L0_hZ/#>ld\ u i0q3]%=2 N ;Y?A8XejɢLS +QZonc LYRHU4 fK(Q-Δ $>""3N=kΔ $Y㙵;4XH G|B̘ $r4EYe)dBwB4T]\jNRN*kRBQ迈zcYub\MUb,%RVR7#E-02n1NlXuQZ*|b5{"Bҏ =F*kRB1"P*sA:޲C EP9-vM,R7BZY~U#D*E`1-*~aFHritZYo. Sѷo5Ŗq oﹳ-G2Nlt7+!$-02n1PQ{[ ~WY*#QBVJc>D?O`¼xՄEW)#D1V`@XVV aqtf>Pd=_:wz56F BjYSgX 7Y6Nܔ)`5 g 쁵7x2Ĉ?28k`hybY4&n-S<<.; i=x<3@Z3?^TMxnhLZ |?'Vdd? 2r?*pxOlV/SQ.Rb9Q#YN/X;ea[7%ڴ6"2B0d1;gqz2Kh\Qx"6FAiAIO'QQr,NBC*pxsga*6+`eVrr ꭤMa1&vtXA6D0' S`5?TƬuUgaG۩M5"@Y-|s,#VZYԋ1 - WhC)ڴ63]3Mg!E}r+FI_"0: أ5H @_Eֺ F` Q>TN~ͻ[x0V`ᢀ*׬ڗ#1riXrB<2uCYsT[PYQY,n83 {h䙼 0DX$+T迸w0?P:m{Rn&Y\"#V2[Nq2R9"Dw(~yx&zLp⿹w*(L ً_(Ѐ&õJyX\qD)S(jj $f"j dhY@2l|m*1j>p7zRCk(XT_H#Q8?A%G G?\C*7wqrFd~?7Y(9L#9;_+BZlmYOd6bA]B *Lݢhu*0wLKzfp>#0Rd؋L=C6OHֺ xOQ{Cbt*xOF;l9]" mV,418#ЙPˎX=Me N#;?\C* *x(Q0y*x(+WQ@elS~,hSC@$.0O*eY X%CWg+4M˻CL[ O]1abT %$C\C*ys%*W@q\"!,k"f!bc1k<."`??c! э5wIhS)Q`rW We`1rrj6J.X?<+Y8 QX RX!_RG^aU|8cW";jx|.v֙s VV뼭|ᙢ6gt R+NdDp /f0qGX?ZLe,:n=YFs$uo ^AQ#NS*WQ:E"~|{~/ *F0(p%*W-vנ*Fw]pl*ڈ\qq RC*F0xiadQ`4"DYSb C22Q&qGcsq/f!ah4N/0T/*T?Z<Ĉb$ 梨!;-1Yh<5. >baLᖱ>5 h;f;m:9_VPM ΚVR+1jV`@3MK礉hegu0F Yb5Bn[u$a $_0"M v:]\=jWZ2ez5ML LR  `Dp q5#2M1!b k4S0IpJ#;91C|2-H ۫ƹs){~/UHT Q0ܴ>< ީ5M*P Q@CI\ͻ7 @D,e""Ok4V QZMOJςo5sq#;vs."M҈f,0=  ,ˌ4װ{-K Z M;WC?3g|QfZA%,)4M5 @=(T"L4ݍ`gqsW[I%M.Q" l=+.YgaL#Oĵyp%Bt"'F(BVfhWa1=ZPJzC%6>GMUesUBK_Eֺ F` Q^TcLײ!`Z<`~9Pp K>V~*Ьw,5ea 32 7TN,"e4w`ǴOhpGEC3rRn=iY.o #Jp$dŕ#A_Xr' @Y~ޯg8yD25c-X-;7Y0CU ӗMsF/b#P251#\y<*I\6)2#MN.оQ!ȁ6GlYYɫ )0vT/F/b#};2Z,=0v}trzO` @Ge;O=ye0tNB=5K. xY‰ (FVxys. 0#?V`)Rg&Fɛ,G׭Uetn0Qr8#S7+nv_Du6+ 5ԫXP%q8feIWIz"a]zTO70yFq4pY39cQ#:ea&}Xu\ghC9uTFLFRڱYiNv'7FSӛkY3Mr]8> ".Ds9 ;dQ#:ea&}(#-NN0+R(Y@)c*yY3Rw+"UM^#u"p;M|rUɢ_*YsdvVbnw W:D΄|g!*@KV`@\X7mH1eT o"~{#`V*V`@_އ#'@΄K 5SyY.`"p/Q-6/6aLgqǐG@s0+aQ#:ea=2,!`5Fȥ2ּ1W<{.gWi҇d {&mk%+KkKvNۭ&<#ƌY r~_et,:iO?(o+aQ%D_Փib *C6aMq2'x֔OwyEyWgMQGn00+i՚n1hT3MRn&^ p c `V/p/ %VlՐPGy$00+ip!%qc[Ӑd>x\Q}$/ L / {$2,Zgr%BpD*V>&MGy/kVlՐPGxpAGi҇=5w(WX}XRM,R"0c (`vX"$QGD0t5&}Ssx0~%/Շe1(B9nbs0րF`/p%XG/ps C= /A81Jq].g{4uSgft*k{YN/"ԴsXX3ahC,++>n2{ C/`QItm;s8㤅Z~؇5ָړ: C[4&}W>6Q\'wvni҇OUl /` `pp>^p31>p-;`5\j.1n.OM/`i1P7MV(r%;v FvK9X\3q9f.( XjY:VlOMP%N > uúB3׋NaPw HAUP';Gqx%G@q{q2e !1ov%-u@as-sb"2u:w%:t:Sqj߱G6oAIeK1f#/=eaʿ%/_ VX+Nڃ$1T'P!EB~Zi"Ma>RVP(9P0*lC^-`h=OqZ/HA`yM 6 \"P&nhCH`JryA`yRWrfMsQM_;x ɜD0C5hDpFAܴ N6ka&}Ssi:^;R4cN)WX}xk}LSY.ҹAB%i҇]=02GL=f;L:w`^Q}$(%4MxUt5$(PFQSc/1c?j$ik#Aq#M_X_ZP}\LΨ0QP';Xs0K<|rJcju0)ϺA;;ZuF;BEL 3qXtXF!f^*ȂF/DH-=2Auu/8CT / >wY*/RkUauzDmj<RskB݇pس`ǩY5&;t~gqPwx)r[e-`(FU`MPC`B//BQC.""(&]S"]."B8MPC/mB{" 2PuV]2u\*wyKFɛ /``X\c䙼Ʉ4B(g"ˑe" 0ь%"p(P8 9 `;HqO؄Wi%~|!"lph!iT"?m䙼<\q<-W,BbpSV*5q>.?"3P%5F *,'''TF 4wFв3 a hpFf5z[ۭ|AbdEJ12p}kCU,/%"鯧1VVnH0t92W?. @ 3VV?2X"pPYZQt/x֤* O0G -Op4FO0zG -O`paYF(  3{%n-pF!(xCҤe n~_:w-QX9ea S₉3[xa0n2KC(Np|~8$QB6@p|D`KFɛ /`z340&p舱XK5pը P;C0jaMqM -rPD0(;A!q9T.CC+ PF0(I)AM`f(D0(翥WC (E(L%B`(wLWxOpF2(B*)CMB((zF 0f WW˒MqM$(pk ) WBMqMP(p% 7)] v񡁊)` `;M|<M_++ p(߉Tә,+,w9_a /7RoCB2:k+B 07%^["DMe-Q}M0lLQb&^azBigBױXөkM_A5쁵,}k \qW,X$1_;ga׿DQ}*B;aj`3񡁊/y.S"4D \J+Na0/Asۄ;DTs*do"*&/%F6TcyF4U&dc&dhMqM$1'&\&0EǒMq&PYY PIq\/XMq&`%Y,0;p8xa*E `{M)HǛ>Iᒲ#Ռ<<vB͸.0&dc&d'hCx.MїV"k; s.T#5 eqޒ S/00*m  EBc1 k9r+;(o+2d䙼iºRCQ %"`t^e<\2wmqCgR=a=&M>2r/6tNidk#Q~&|%;%}ǫ2b,B1!" Q5qsZ12t*0)G`I{b+# KpmFɛ3>17.r)LAnÈStp,q#VK ڌʞFO=v`VnbbeKAm;nsQ¥BS]TTup.(AWuX9ea7j.7BX2{%6:97BiUSWXSsך+1hIX7"8` |4]+ @zu;xW!#VZ (CC_Eֺ F` 7C2@MQ1 @˝TV/я#CҌ%'Pʏȓ񨃅IpJpKp,CpD2#v"G[l !Ú.R~SR+1hd@l&9Sz:<.Ƅf~;C|vG,=3VI6n!7H0 BOЏ IoXOUe-pPJrxAGX)ֳO@?Dc1Wbrmtwʔq2 @aC&9iΤ!LBA)# }{x 0r%dqQu%DFaǒ.B1 Vw 1p!toXWvFFx.@2@ )A xFQ$$ddA A_ > 8| D Y*%[X@'C>!CB ])f27Ť.G'@B}7LH@x` 斢e8y%hP|jJj*YD\ ~Iƶ {fI- k"b99BxV (ٓe]Ŗ z⊫eXBhյ;OՍQGt"4jW(Bu'GoBAb aL5edYgMTGEg D )H`g~]MSRu*moqTƇ3DdK6dRGlˆ沪Vo*cQ~wZY"_>ngn荎JJi`J iB{^+kxsoKm/ko[^ 6,unBo QoCSxtWo\ 0$ oYa9D>aE 408cArd Łlj37nl2Ĩ7KyB1&!.) fDҀ36g>[憡FChCd u\B @1BF>$` ABpd U "e H(B tqasg3!4 @"6PBА9,hsxt$Iɦ#`$N|tC"ٔR tB>#Wb d-=K録,/!aƌtƤpJXu%1 7hB!A x+%y[r'O@9cLFy.03= >9|(+b@s9$($ h90r)jIc`9+BOl ʦ.b(鰴gatZ҆ 4-(hDC&2s\hzǢE S{i!U^&&bTpȸS*SN1 IA`vЦ\JDe(q=:6\OX$ -%!f9kpГEDuiÇ.I(eR ]rH.CDh: W.鸈dgQ1f+SӐG-`0$$ oXpfwP J-z,mM>)D |G +@ drXK4"M`%vlBiu_{X"X P6>''e#OCsV1 6x%UKDa'thypcWA.4sP5xWHN""H8F;{N^2Qx 1wB"tl(}1G=1Ir`r`ciHQX$Ws`KurRkXg1C"p53|dpPևք2-R!J,@=etC"QVv"aWR+Eb8U3bTtVz2p\DauX Rs1z&qi7UH.4ehT4!U"FIQ@'!d8}_nZA2np[D00*u fTADATADATADATADATADATA 6"*s !y"d`t;Sa4V|uE!}n}CPf)~6AQE>-S!mA{+auV{U6_zq ijjh2~\1$  9ksX@0Q \!d&\/f# A&>%AaqwtE~eDZIcheՊpu'⁖KauYBڌoePS5^f8N^Od(B'[~2IKtOEg7 0`aljWq^_4eնƈՆv"oo!jfB E5UT^[!#Y@tE_5v`b"J5v#R!}QQ ޒŵw5+12 _j)@ .t41LxC42]OTk;W{BE@n,x2ղra1!o7uZQQQuڷipc1Knu%X=crD5ƫX769aaac"{v DeͶk7uXH;}b9Pu۫6ri˘V"4 jNB!UAo |eF >2"/ $E89d4lliq!1((8IP%#\iHJ l 0uu7Y񆕵y(YS$0pXzdr76A3*~/$/@;Zr))x[7h?@[&6#Sb#?Y'-T66e_Fuh[;|SoHJ\xvjcc Taup{i4eif&Qzhp$pPPI9U +(d켏NۛZ4˽ /ZHQ핫1A#Dc5CmBI#֖ \aJd Zu273Q\F |RGSi(W-A"2opB.!D`&@1v)eJtvf#]6U=˕ƞ]ĤeoZb/C F#Bv1tM1HQ4umלA|f5w7Q5h "!ݜ^7&0l|ZaA7/+*V&Z4PYsm7^>+ͬrP_/:^4R|.ǵQ/Ŭa.$;Q<ژ d) bQhVcdcSLӬ}dٝE8 -@4vɑ0{%)sW"㫫Rk*P G8@!΢.aNYVsN]Wp`#@&I>KwەS5Ze'y4K4FSU]kk盈Y7k)\k=S=6DNk_$Ƌ,7XT0M Mn$|&@eoEh | S6p`%~H@'Es S@ {GCn?~E'D^y\6%Nț,iꄐ-F3xhHfьGpaNSu9n c&>!xH7z.@%PX>Z~ Po$0*qd+ԱYfSη{JW~'w,ﺎ6S ܷa (Dġ> =`gΘ\O eұ2"}{MGq<`dDuiJYqtKo2BI?hR)BtX;q5ytz4*0ܖBW4F rjiZ科An<+MJZAPQḦ]BIgђ޾airj8=':xF*pWY0̨^W1է>at"^BvBH,^/\qO7 EV=_o͡O?ۺϤpSG@Aoh^#sDaϤ}}H/]ߚy|1u d,OA4Кz!h FEpUGE@KHJܤFEpUGE@KUH(%V/aa! @qĊ{=EVrVx8 h~ @A ]I!)e"`Nr hOTTe!(2[8`@DTJe`P,nC!5O7k<Ye"`B`b"j4 `I !腃Te!(G BPBOMN0ISV 0]\afZKPx+H{vtpcP&ۧJV$%Ol>]y/R:3PdJZN!1u(AV%bFr\uəURmXѢaX1K!*Ikgꨖ [jY eeYVV7!mĊon+4>&uVZ&w&rVֿ=POzGpp|e%Dk~kV̕_[ee&!X]bH!f"[U"M0DSrVBx@Te&(2N6N];x{oP"beb"pJDQ!TON]b_$#FJI !(IteIrNt ^iX>Q1<-fN0' Ж2?6SV#aj8oܭ܌lN01Fr!I۴ףq\tT~ \l,ā@QpTe!(N0qDc{Os&p,4RZDV$8(03sF 1%BՔ36pmcu# \ "7a?VVD`WHAS.0O1W`]i__&Ey]/UFW TFm_uTDOKCPbIEMW &W`]d_1/ Ѭ\q<2SSl Qw+An%tF]iT6-8¤SM4h.W͸d{q,ŲxoyN`4h SI%@t>^V&&֚Md+""deVr! qrkk(W4zTA $Rf>\Sɭ/n "U2`9{Q`}BX1QqjWHZhaWޱa_CPwTOO+4T&al]"P@1"r"P@1/ o|WHT!Cm C!kjηmpma_00*}  +scbm{>ՠ,iIt Sd' ` K8x` F3VXNfQ9U_4XpWޱaM0DۤcN`4hEGN0S_O^V&"P"P+X4>{+Z%T1}7aajYgCev#Җ-bo-?I,tKVE4Rw`gf PXMEIAb%X/EgQ6Yc:3PdJ\hla!l`s(1[4T, \N\(Ѝ/"eR/ҋy ks(4#h%@OLT\vd4xQRFLYٍo aS&e ty<`d6uqdWRBAU'%ok5i.EnXx3&!iWerkm6uM&j^u"E OjFZPR&{I$LP욢KZ d?:`nRZ"YnUgela>)Vp9(,`k?hy^\E`XGq͍u2"ytZP$*㏦:Xjw?#phYj((DLY8PѢS"B6zuP:EkY儂Ib:.XZ6UX;P,k.EN"Ee)"әgm2 jq[sF]KZ!0ffW|1bA4iu8"+Y8XQ6f:3PdQ^3n1E>v$CxFMES`GR0HaO{{pG>PRF9ݽ WIGq.lG>.l$&bT>WIHayPRFҾz*8W%Z.[#Too{͑)Jq<԰5}vk5-Aߋ\8hf׷)@>p>|f5>`#6$m.&Snq/ʯz#03XdkC&Uȁz\E+`T?lo!ylUFx/U}/HecЙp4p(_cq#mUN(JP"i᳾lW<X.Ǐ>.ltH`׷[KavpK"E;LtXXіO1Ds#c%_iEEee24jUDDV6!a&PbDF kEEЀTFm4OM FLP 3k͐kc*`A" I@0#3u%x2n5fC΋ыy!Vo:3PdQخWףoy|a/1Qؑ$[g`w|F3ky΍r{1FG!Δ/Bo뢖ӽ.Z375߶  Eccbm ~cP^X[Q4%apuE!quS"*(WOzeCE͹cVlKWoi@fr.akw~VnX(vmo(t;.J4gW!%@I#!wաI6okS&e& mmE)mi2T8 iC΋A>l!|jjཡV3h\%񜔡@P򽞝?Q6a/N>gRFcdAUIlw 1[D4<`/RX&PbDF PFm4OM FLPY3Bd;!gYH,S^!s>`/om֟!I"yp.^% [U"skea [+;=;6x4ѥsVd"Y,ǎ鋐oe"[8` 8k%(ŷIaӧXOu8} =-zj%qptjDE@G/@"" o1jy8QtGqQJqJ]6|&C. *5Nh#VjGaixS=> W`Phf>TiGGAD,\U12U6;lY62yj4?n2"fqǦ}e嫾m J磃*`XX!kBA`G`i!(/ !ÕgEmŜ2aQfҼ+-B 2JmfC?#E5440OMPN`⬰ 0OMPN@A3rU;es \ojYcR\I00* fTADATADATADATADATADATAsp m7#I!tr\N!<5ThS'36-8=ff &0]dZGe kGDFmtGPMPN@FxCN0OPap@ʕ""Ћ?c,F`ȁk &p)eq` `#%7YqnQ/ sLmJ%Qq2NEH_r,"B|BVehBcVI# 5%e4QVF|tC΋Afr@@peO_ T ¤!0BLL~΅yHPqؠ~O蝷])dS L*#&Qr&>26oqlLg1Eo=iQY"8r^ȴmib> 3&n]—Y p, -a"yP%HAq,raja201c+A$9jI-UoQ"V8RE476j"ߌ"6 +q*.A[pfi媑~ ICjQcj`zW3eXLkX^*]Q5ئuAOY VECmjEV!0%I3_s/GpTGq f%NT04GqZ!i7&ͦTiɖ>zVchzBfUwA\sz04)F3ΚD!/efOj`zW;oddw2WS .ހp#-to^j9hY᪨?#E5@E KZ1%@H/XIQ_Or@^!'`/$QeolY$W6Dx=YF@SX*ٔ2Va@`$.B(AbLu:H=U?97q p\gXEBކw< p"x26~Ս̌xr{D/mhqauP ~u d؎o-4`ŴJ5.QLtr\>tT?ߚj$st%+b_ё_5VYo4<;o4h=1x+^Hfc4ic"$e>!E@"PVL\U".0E@"`Ç$4hf6""=D'}$.05PZf.05P+AYvJ#E/+b424h*\U>K3,Ŝe)ƨz""QWEaU\DP.`CUaIOeʯaDPSe3sdI\F0.` t1a.g,Ŋ5x"jOg(WGmoO!Bc Ds K=>SHIATfFloA!XW!F]JQO;Paza(aedgaMnwba j^_}h." cݝGq{rqXvR7mݭBqջ>ZQhWIv]u6 Q}*`ۘD!Œe."QGlb!O~,]nWOE] Qϊ5x^w!O͡y65TMrܗv}ruAjdo41Vާ:ruG.;o}j)!!`c} ~- 1x½IG> 7=Q:`0@Y.qXv (%R3%4t-[g wK5r Y&SVĸ]*鐱TG~O@4P@IK@a+(G7FPſpQNͭ~K$wIhZNh!amC>282Q3U]bl{gmuɁ arE!9%hQ&|j*YM}p'Bjsv wzPL{;;aX[D4Q!4\A4vx2fmfkf& 73k<اټ1cc?R`%Z Ȁ(C F'@K0wF:˘Wyg!wz X% 򶛋 f/[A*` 01dQICW3^M} 6ccfPJ'v.4V3g X^V-: 8c&z?w25"|zn,笻~V. *^9'=[70 eP--02p6p+62*8(P`(@0-@Ò>b%y.`-02p0P^ 0*P/pRy.`2eP3(P/p@Ey.`0 ?:3PdQ:ni765vN17p/P0 3.P4K3vȄL{TJ5UuX,V_qnAFTx4yxv2= *\ T62B5V^'' Ȁ3fzU|\qd[3X84ͮQG4=-/0*01t^6_"YJ,^y(ٟ<2V2!؜mNe12345h60,$Ab$er%c$%Ls%Tt%w%z!.(BS$_Pqyp/@ic^(5V\!UaeeѢb (kEV&@o%pBPVj 0C#z#pla Ȁe(*@@|2*PXT$~]*M@|2*PO@ F]?-: S(@@?'@X0v@A?#E54 4ʓDc+(靷]!-0GE_ FPN0TOSC (gwǃt nf<2?gfQ/$AI/2Q T2@ ȀDW|7144 105`2070AEPV{鸶c|Slsv== .*0Q T G9)3@ ?15P9@8@K93`Q6_<.}W7FP7FPN0A4&RFTP@aUC`VU@>BE_RTO$ PG -uܤ=",+۴uRG Mz(NM FxE@FxE@=",I`ITG -kGPhuSFnvAFu00* * RG MuۈF PG -kGPhuSFnvAXHkdRG -kGPhuSFnvA9 PG -uT*X,DPXI [G -uT*X, muRG M\>.2m,@muRG M\>.2m, G;hG(uNo]ha*@G;hG(uNo]ha*SR` [G -u4gf1.BSR`RG -u4gf1.2k4 PG -ut.v D0kMuRG Mbp< PG -ut! D0OM [G -ut! AHMuRG Mo!uIKBTNRG -uDJR_04,İvdRG MW04, W04,T8 "A4P!aA'3ei#GSE4a蘤$6uIc2:m2a13߸cEg\0J-r,bc+GJ-CD:c\d6lȲ󆬝0i؄æd7 $ wҰ\09?)34@%Rd7eȐQT '1bKSj IL*@bFI2ֆGa,S2-$sʪXsAGOtV,Z.@ňiAbV Ƭ$mfHXb'[]6xƁU͇Ϛvԣv$!"HjVA3f$Èzt#@5"RjT̸.y Ib&Y.}JŢe܈6ġĀ+@ c `VҠVYc`bkeBM SI2I,[nGk\&/s.fsdr $響NÅn8F'AIJTW 1N~Yb'h(\B\&vA BOP-⊒\2EF9]_$.4Jh(ԡt8cpC$%t:b\Ҩ(&!q*1uJ#w t]}.2mPåIoh=68]M:6,m*Z:π uDؒՖԯ w$?2I+At^5)2.iV_!3^|[/-Ox&LZ@LP[#/"WNbk|%/ʗID<53RVB, S$uvfpGd4ݰ|H%NVop0r6kC69$ɑRB6~ 뢟A8(K ;4JЬ򭆗\51լcJT[\=AՄO4 _΋?X 1 x6F k(%xfecƗMj4[@iiAhb؈ Z@3`"Euj|ճ"03gNM~c =]&NGB2d˷Qp"uOK4c5$ydx2?I}/kLmsbF>蚀 @P )5,-̖Vg1t,ԄkQCydp˘1iocg>`*Є9aE`@0)$ TO'(*S q.8} t_&tAh sf[%zrQR$mU+5`;A!h%a!b-A uUZߖs?!Cn,t"4C}7(ybR3S<҄S.7HHbXxFz. ؁Un *7&w$g%$fqIg(!!31s@Q22TblGx2(b 37Ed&St;3ue]y[\70/z?r@'@#t2HeIR9P;8ztIwW#/;!w@h;PhIh]A'f!dV͕Ce7L\AX? 3BRc6dw(!3%pj~ɛzk9lD3ZWEbVL%hR@e]T2?d$T&pᒚY2BWrD72.cyaxq~:)rOQ$j=#PȐ45Y&>1|I^ tuYQX$-jQ^2H)`ySZIvA1["cM]*i)^2.Ow[s:WٙgFT2JjylTٶm긠Nv^I_R9\t].AׄAQi2ėh'`!SPJ|U-(x`m9IX{ؗfKѤ*BBlBdBeaB%$-zIV*>92Woe.' XzF'J39%7^%GY1*8ar"3fl 8VEp fMz2xt_҇%qeEVG3vBhQ;Kb" jm:/DKa% /m/T 0~_=A~S`W6 )i\H00* fTADATADATADATADATADATAW1%D*E*`*( ȴt:|D^(k |:Г#@6K!(( P+'9烶r5u[)2,hxӄytz~˴w[zkD0&eCѸ u[Oq˴g;KiDNxSkr!7#3#)D;C\{1r :W2d G2')!C8Wl 94zR73uhd'kjjAsPwĉE9Ra?G.gd)i L2Y۹xA6菊QΕ_ֳ9gi`>FK\vy:Z4Ot2TzoB[TN&ѹyb)zrcI'޷F7F=>8zCbr%-( .eHQ5x$xFۂ!5giZ5l̫W@hiqpwRHÀ0:\h͵G%'9:HהQ]V;? B.ldZ{jdJ*=t@K F\}2M=P5uB߈;+-Q;NSw4ZM"P+ / ˢӥ 4&ΓK1JvKɡ`T>Iު=z*@>w_ a:e'B{c}0}]1T9VV!&=_D ESf02KrCFVXC*1Iyecm՚a٘C4ξwdNF1A\;53%IF50H (o&,Pԛ:MVdExs3a5z Zo4hiM}AjbHTUD,{a-C4MxbC7QAEtSJ2]]%*@L0q#/Wrܢ'ȷ ^4xg m~ kTEQEh0!kŊ{[wn:^7p*01/!ip(Q" BO,kNfE1i5'Iqkd(]:!y>9 ! &3Oh(!G3'4Z/x2萏<8<ъ&ޅa~ߐ}ɒN==1V(d2G'<1?|416$1c;1 Q p_FPz)2T{0^SthDǦw&ͳDzp,x2L-9\z1*H?01&s,?`<m"C*ҏs?`?02&l`s,?8ՇE7Xttb٫ I"leT*k?%zoE6DoA;8.oz0H1- b/*S`! d>Ex̔!$2J&d:%z^qv誎s5Dds|M9ǫMv"3* 7`1~ 6@7{QaHQ6jMOZ V?ea J"& qVׄ'Pͬ5"֑reٸrc 4xa~7<\+kʕdws\ ƾ0~ip Cḑ1DU쇎YGtp1DRb{y͒S*zk@b_d`~qҫ#I#@Q\EIkDֹPrV(όQR@;slcv!oVe(v!1Z.F`PJ7Vʞ2\ t w1lQg%Y6'!oc1á.`|*o'Z fg׫@PpI=!^֜Z V?eA`Pqv\DzBD'A$*wzg0b.]jb o&;$bMI":TGO[]YR@R0K`C2N r.|ϛY<%wa?HX2O-wvcѨ$*`Q??27y0\N`r cP1?N`\ Ple|!C*|!Y?^d.ND/ wxruAu-jyP<4%/*`N@*N@?T7br4"7Վk)q1R}JL ~ʃx$79#e*i)uA &FA)7DIL ~xrQa6`|]Oв{rYx$rT^!$wln'x#%w},RQl!ZC>!740@ Z$g|E\b ewH?*D/><|/\Q0B2MX_ϯx,A ZxީB2ivp?\AJR 4cviWA:ܢ6Zx_.겅8l!{}|cj$C(QPFk)ARw~uPI)1Vm7:Y9K:gY^U.6A9*PY@Vt+r3cafMF|M']1BxA|-əŒ̖cj YD"dBz"D& '=I,% CJ*d~DI6S.+` 1BxAeFP7HtpeEt( i|/qh4eHN\4N <% .,]`9>QՒZLRS Fp"b!Z7+I$tNwWdvT)Zxٸ3)WTa?M$g_8>kp>ϼrQG'^weA=@&A}mExG''X0A&tXr+5c}m~ cA&=mPR@ڄż?DMlM@XPQPૼ*P#BAT(`:* 7`1~ 6p7{*PCXPQA:AX:XgBB &AT^{AA39a2OX}lZ2qh,!k;sIaB :0i Vהk]) dXXVz"BB ZAVzB&_}YBsQ;@&v;1ޗXR R%hPxWh 匦$p`)o ik1cAl[xoN3t1%A޵R+D͓g}oƚNl"046P\@%PhJkh. Qp"2;|qE/.]^J]׈eHJE#a[J^M@XPQ/b>V2Y,CBuAPzBtRUMErGBZVh.טvEDޖZ2$cj1k_ oAe..)8sj!jjDz2; `aٌ  @AS&`mБO@7eʐy1)3&M6l\|DuhS)##0dȤfec1 # ̀3`nxc&`)R jU0[4cЀX 4g N4FחuS X)H aƼMfBG}BJ.<@EMX)bD:x°G -_ڥY60ø7Ղ 644A1ol rofqQ3r-r( & Tkc|ĆSgFEDvulDA|)Zw|PE=xmQrteQaW4uZt 9(hQםz1`  "V1$wK&"k)m$lgrW1tcvtcC!yy(QYYgptF8䔌pY5 TYiB|':%W[`\MOcX~fT[{h^z9*saXG9zQi1X)⚗rVRob{f#Pw  -C+ MPN@! V r*k~bsH{JaGV$KX3m9"PȐƃAtNw(-G tp@E )3SC0r\M*P1A3ALIẗ́A D]E00* fTADATADATADATADATADATA?lD2<0 mC[ʚ]IFGm w*yQ^v ^3 Bir[ںbu9' *K/Hk)DmWa6I6,!IBnnj.@}J`̠/I ˥%+.̩bH&4IXū.^ybXh9#oƲa \̀P5E%t( NqdE#A 5K\}J/z L@MN@]JN@9s! ҢnqCeBͶdR1}0p/k)/2 p4܀x"Ru/ǼjmWldrug[ 8! u}cʅǮ@eEĴI*s2u.dPHj '3Pѵ́"%O$N/y~F w=cg, \W`AXDaRv@TaVH)wo4bB쓅.X1ōcƆ1059' gPV[/rhg vRJL8Qb;*-%/ 2_;(?DČYG{Z:׻=l2MwBVH!p&(,:2ȰO\!'2r-Fk;ö䔝x?k 9$Ee&:T5)X')2VR|f(@W m6\7C?à eW xV,I4e0ѧ$7AEcT6 z8㐒uN.:E_Hzhe4nW`?n,v˄ Ƞ*)G*Yg(SB79/1k«{fs0b,B?O''FA6^AVG74frX11Uni|cdmRi߁:0)}kFoG6Gu"wzd}Gt0PHMs5;V%# Wwg*lPp@,bq1uobd#U2QW?XAO*5%r_HwHXqQ Fp5DU!A86G~gw$i'{i8r&ig%Rс3ej rZ9VYfp DE>+g].2_2&gWsdF1U$oyWSK5DXMUpP5B2"^ru/Yw;|iTP.UKG8) W~7#_5^zD cVdfp+qd]P'`pm|t'Rb/(уiSєeR;%A`ROv(%5Km.QblsK]wW=0Q TBOr5./nExbBΒYf@E/BS'slO2x s)|:߈[.?'"<dg-V(8yBؔP2})s:`)"r+UFvq@e8q$yvi4MR}X) i 6ѨJam1q&ybumQ@䁚S`XuQQ@b8cγG!!}WAJr' |K(T: '=Y5\=2 *P.1Rp`*cɑqPzg [nzqqrj.0'q`z-]qejZc"pPmjuQ"!]+ DP,%au,V!ٚ )i EP(["'a9jp6.&kFl25g`bk`*rgDZY;'y(OqsV )}EZz( =w,hX(ZAmZI~;g*dsu(_js)#Պ/:+c7ªʱ |a dL:){"ѝ6E`!~pqcU=K{'_D>"`BT Yce1uSswHny4_9)#7\'vg{2Q1QX*.'TEg ){3k'H  k(F nB3nrDGGD~Hqi5',!v"q]H RO2"o͖ ң򮯚R,ˑ(.&I`z'9:2jZ*LZscA& KoXxAdV:SaPS"W^.1SlXjg HOҾ*e 2bs[Xƺ3XYYHqHYF?w.@1`=g(swWXMheᑎXcPMۤJho0Lv7LE%%JA5W,F [1n%4,t4UD":|}8j &SuH̶a])!A9O\4̖S)!B:3|y1N7EM~5/0#m}sf t1BytCs"ȘH8,p3[11~yڶ,231x;`],{HR27w3YFP?jh pdCd"dr<7SơdԬgu$$h#r,TF@ǔ?/6G+;Vpr!SREQI5;,hnkG;|Թ7(::|֚qJEuBS\b,"q(C^b[n-`Mi4{^{㕌^U\zǒE,>J<'#XT0M-wJ)F僫0D49)"kOWl*K;_g7e}h"RWg(RТ]at]q"K(~(q|;,S9Т: j[]dm!0u5CH[1Hsm!ǂspk"1=aA?3W-v>q3Y1HL>S^401)%m"0!SpV`V,c]:,"0rj [@o=" #OoqRPϿ"č_+vbyD/o'w\1|ˬ1h>vQ_1WCYdzZ%ʜGʵ"c2{gRR<1!qqHwpfI/"0J:SX@)<ڎ ]Ѹ1hA j*uIaa?\AGbR (vpg}"ڇPX?F`T`Hw:bF FP: /E5)&Ab!-X]gQ(Ԏ۔~nUfhsi2&W3LBj)GL^w|4Q1VSfX*=X쩾/x.!;>jyE `Fp!|%)N1(C ".~+&b[14\SOF`V1f;rVT1Y;Zf&<@RQ4A5E ?ڊ IE`:`yV:`Ψ,VD-^؄`&%o^&'5av ֟@%#V5avԧ,TD$IC˲.AE-Rhx|U*܎T("iREix=XBTߝ$?bt bi7\/Nl"/"Y~%!;:F[{/Ԏ!tt "j*jQ X`-jQ @*cp8`bROo%NKHF շٴ9m}3 B\*!&:V@(@ ّ_NPMPR05Y0UT*2M_*Q~n(qYyu3o9,bKQ^"0h2M}*0ai+5u4_KmU8v Q_+v>kC *F`bV^XP ߃GciZ\c^731:v1(|o@2S}? c1g؃QW >ג+^G4P߂Fˋ2RZFPy0i_*]2aʸ~nEFL0`c0OFkEZi,#v+rsƜb@/I^WP8< 0!D c *~*1,"pz/Y  R`/b;lbB8 blb|QprV,OI1M8Y(@U"5{ (B\/֏cWֲ [H˿?w~\1 OIQpWޅT5q !в|)ʩb"_ri"&.K3]2AN0RNOPB(4b|gn5)Ow Y~0OIVf!rOb"Q!x}(5av;OIQf!rOB- )h$;jE5䐠;,|>CSNCPڱb"q0L0OPr 0='b"qPU@S0)hrOcq"&bAB@_fȱPUpB--ȱ 7'b"Q!@_f;;EANJ3)&"mӇdKA3]s;EAUp!J3)V& A(J4%<DZ@I0I uNa"_̝*n]G.![@I0OPr ui"HtPD@IZfDZ P4s,Xf"y҃i"y&.UveП~r Pf+0-|(a]D&#-0w(M9vGQUve3Qi 0)cIpyf,D` )gRcs pzNʔSE9Xk"_ri"_.K3]2a-µ^`M@OPRfDZ0YRfDZ P4s,Xf"y҃i"y]edԓB-թ3QVU`ܐmӜ J-rZ9QIџ ESr "i('/Z^Ϟj )i+-r (>$ڄFcnPUy>׈px +AI&%Q&%4%!"\{ P`RﵯV [V0:`4pCPEϡT`?"a2Ry TsUmL>Xfeu PYr!+?#gULPS02b3p )V@}z<GS>4ĿV0.揜rN9.'3V@.揜r3bHmhQ`V0sf4zeRQBh”ʉ8V0e4 ~!6X&q](g0cA$%| HAE.e2E@}+R&^Ee7w  \R\Ivr"LPN`RﵯV$"^uN9Q%yXmLFDE$I0VgO`QCr 0xsw(V$b#sPЎgFa) (M`RﵯV ,`3V@t{h9Ga3_V@WA&tz(/2Ϫ$2ᛓ q !]"'0%>iiV$]V2Ѱĺ~<ya@DbRl3"*+(.Drb?2vqi6'/x.!k0OB`RmIx `B _rd78x]_›W6Ժ(LO\Qp?-p;^S+&i#JaU(g0ۣI9X֋ #TYu"&_ #6AUzQy\G:"Aأ22V/5 5av?( %J"]r$yE55av8\%W%*KkB!&<)&&rrES[Y[Bq}طxV5B=1}mu&&L\"Qu],WF )LPN`Rr0ĞmzoʢEAv4J75bG,$&S _B>"x89a@oyǦQWe J#(dMd@)V,SB_X.cI%r`pOaSx P`RUmctDrD)@uPiw];Gz_/Zt` 6Id I-iC .N!!]0.C"F )LPN`Reoq-aIF )\aILPN`R9@<1̘)\1!D F )\1!D LPN`RgΨeu{y(1+c8 W#5̙앸%o_ "ca߂VLb5cцPieJ3=E\QC {t0m'yA-U$:gg"-U$:t0F0nASFNafL:i޸9!p9oؔ :t!sp̘2pR"T 8rޜ G ޠ<$4rʥtʰx+Axsj1"A ЇH!$#БS:n`x34dʰu1SZ S2b +^F`p4axb7wixp[h9eV:[A8Mm $3p ԎW/9)TtK!A܄ac@HYKMY(aT 7ZX\o1B<́F]N^{iF|- C 6, @,aBixvDsHg[ep0 0,Bqsp֚ieBDIJ JU`4.G9M7S=R5 ^V)",JFCS~)C al(8o`LH,R+dk2g- 1z ^B*Fw6=d)BOkjQTbN5Ÿ¯F)PJ`H Dc¨XeXu*pPP d,C|:h8?n"qi[KHjNULvI]3$0F`du,S(|sIP|ޫDuPpW9jHLJN4)QO`BۥLμ1i 4#zXȒhɔo@eAR: qѠ?A ЂĠ ? ;hEq*l /@R@UbvmA\R183iF C.qR,1\P=}2 @)?j f3TM1 b0`7A `@ԠoA6-ȊoC]lV9qCSl􋍦b6D< {ǃɏrq@9nZ<& ,h|@.pvr )~Z(H!yTX%w{.8[ ]q;ܵgqnc6Ț]@ͮ`E^:`ivlgX-9]q\ǜ tl9)^A{^;]sp1|\X'AҡvOݮD CN2|Xݮ6gN}/Ǻ ,^-7y wfб~ p_ ;QpLH7zPy?K;cWH1M= n$[{3?KWB 6= sGŇא{:_:(_00>؛Pyݷ!hU4u|'ŧ|ɇw^vyrZɗx^ y4x!g8 yLɷy^0z4y3Gr7 ɧz^ {5 yFGgR v!Ws$}Kx7##t5 {*GKH x@t#X}t\X s]+ՂbVl8R"†\fcN!cr~V>Ķ!&Bf#ұb3K-ZdpW&ri8)1)UUbQb:@s0tq,jQ(A"Qbb*Pd9s7! !F]bF?FQIOc/HtSC11_ ASʡZt1*YQpQTƣ9dz2u6@q/j*Y14e)O31s'*F]V DABpUfpUI1#ƐRlUy1lV3" Aہ0^]J<(9rT #,b,9"c)'Hw&y$d;12dA& OWv#5DJ*RR.*dIH%iN/(00*  eN"%"%tS#a+>j#+\:W9(@Qف'qC5$SEY:ԡ ?iPP%ò4(Y:eQUciP?Tbe@Dk)Y@)!/1HQ "&{53,2(:sQ-9QsgY޵"Jt‘c"Muk<3!J++bUÔ~DWᦓ@iq/;A5MF"HQI*(x,1頢sC}B-ZZwi7e (#C`@q0a($C[q9Ar\ " 7}Q^Yh(7sdT"PqP@qF>S !68E?dABy,(V91ˁG/LwPf˺KGD~SYY4roP1 4" q*[eOX ѝcx9ֱ)Jᗛ#"_☷iڥHIrqd6" bb9A 9i'.̘ ˟?$$-b-6AʸL\*waq)hsUsb /A=q1μ1<A5,?KQ\Ʒ鐝l\F2q rU%͂k?Ḁ0mΌsR/؁0)KAbM!e=)~5-rOɚAv;ʻ{-BA1ٱ'sjq4 0Qׂ)XҷTFe.OYIѣyUB,ɝ] Ѧm'R!G7MSOE! LXQgz!Q& 4uIMSZٍN mXB[lFђG~Ӆ5ji;և!uTS:BeITT͹E³V3D"1y0?:I9@Q0-9N#xjc1[j b@ e+=RA}UU"J0R+*0҄11NP9He@PURKyl@oByHb>єd{]U.јK@4Jb3&JU3;_L[;d)=&z@ "@T ,̩L5djGGe:k*HK$%,(P(2Qn|N'dg9xЦ2B׹eSPWQUαR:"cĩ&,xL;~=A{~P%h25eָ:# ze;>qyP1H0[0Ѩp9֛71Hݗ)fЮ%APRQB@ P@A41D}M%A,cRXe#Ѿ/LY6%#̎ln?iu*QO@2ܯsv.,n.U?YA%@';$ZdA$R+0}"8c TEY6f>2BFS *lP9x9KR"O.LbH?!Z;},#\PwZ1k~0ODX$UϩJ9Y"QZBR+HqV"_$o(D=G\ ]L=8 qS{3;Q._6 j"c'bNtABO_L93kj2wr"R3;n9,=hHуePh'6-[SPz"rFqX)aZXKV7zB)yT1#K:[`Ȼ/ހ6NsуaQ9Wy;V+\VA )1:HofJ$*ƜGJ"R҃Wos7/%jkMr0`SE"{A_=8/҃a!~bt=TR8?,N;ș;R+an9»Hj+V7H%NYB}:vz:S8OXX ;)˿91"t`uؽE;D$T" %W35sjޏ8kT& uǡ՘=lE= Zj{A^'m-p'd;졢"D=Ȕ= !LIKWE yU>aN(o`w(X*>M!D9S_c?: H$Tɼ/$X6de28#qIBN-t=ZGB3ɵֱ22#qIBN6 Q/ V]dL87#[/$U ڝUdGR/+UYJ>h0@v;'!V%ls1F% SL10[5LVLj/[ciQΆ:5bj La@OU.VQ1#߳>7h!L@^m':Ub DIkQ=1?:NB>]P1`bUD&nbݮe&\A-;JkK”8K~ԮN+dI;0 SSojΤ%RӋۮ"0O%VLjђr\eؤ& Ŧ[aZ"O; p_"rt-)+LlÒPlojb1FPb~2%!QCڣ#̀+mOaV r\eU,EaB9AsXfuXZHA"ƝE3Qؗ•5JD?ox* ]fTr7l'e~ɱ1Ɠ:jM‹"Peu7#CuJ& 1'!DBfuآDkC#;,HVLj/[B#q7ltآ"G3n܊`NaVz\t? !/ b?:&%Yj#!sTHWKh @C&u8VLjO*6r;#uj U署CP#O;uW!1NÒPS#ZYVYhL#775-*UbPz"uҚ5LɁ1?ZU Ukw *U/;n͇:;<NF*t*jSqKٔnP*rjes_œ/ Iy#qq[Q/x1TI_t])ہEGR=lE*Uy{|kY1, 2WJSu͔Q5,3USzT v&TQ/hp_"S󚍡:\2PA8:覽]] 㲹(*"r016NacK1CĨ+@G%icZӋ!zlEn1r8͏djc%icZAU\d&Ie^4MOP& +NB\̆YR++Dj(|%2_GB7*Uv{3bo?kY1, -D=G\ ]L=8`q Զ#/C#=V`icVUᯣ;#@$iC;=lE;~#"H$i#N&q~Qa|ŗE@s588u>Cy"@$i[=+?4IùbN,,vL,8!ZbaXS:Į֑;BXfUt!/i<qSxfB@&I#=R?6cPHqŗER5Vt#VAO& 2G9_ qYab>[zK5/RS6%!54zQ"@$;#@$ibj¿ɒ]-Uj.נ[!QS_7 ݻ.֑]N}"=NX]M*9j0[!QS_ Ze {0YH$MP=` ?V`kғ(dAP!1pB22QTiЯh="0YaLOEng1b<zޥ UOy!#<O@y9bS_:V0J@O1w {0YH$MTaE9!.J!m:GT ['^;aSej,+s#~2_d? cBsA!auŴh0@v;!A?#./;;Ot tbV<"ғ遡NMYo-DPqjAjh?遡N Ze {0YH$MP=i"OvĝB[W<NT(S/5Њ Bݍh<}1PDPqjQ6'(h(<Njq1#JIQ<ز!B1[Y#^R(B:,*NƂCƏ$G5SDP|q.J B(9:zgH< *[!P=lE^AOdGpO D=G\ ]L=8>߲z2"wм%DPѮ5LφeC5 [DP|a KQJah]%DP|!콪<$+:cr'b,; 4”ڕ!\Un)V8.JUM}%DP|14R++3KxR!V)̆Y=7'^;N %Lc1}P@%Oeq}a?kғUICa<'s`\އ;O@ BjA<j/+ g;q@j"LvAvf?n}w(Ʋ5 j@`Oyj81UJY[ғ)O&5{7ƭq)U_AO@l7c/T^:\#NEz%!!V7m":Q)bB>W^[IE!LS_ƘTachc197TXMLTRPQB!GR:'Xe @EHSPM00*  ­A@ U.2&Nu)ߎ{`FL%=@!(4"@_ьtSFgY2 񁦢*M9=s+UjHT0ssN(c@ ae*UۃHf8`HT#)ǎ T8JHQf  A_ hO% 㭞کVfbGAfx1FP0!!+fbsH1U##5P000EӜ[.ó;g_qŠ%yزz"h_qŠuݞ΁U dzzQ@[`#dͷ kƕE\\ ]L=8P]8m+m @iQU.%!Sp=2y["Kʢaփ=|3nSPM hWSPfea=#A[YvbVa=#ɳ hWMPfփ=RxnVp[Y>;փ=Rxnܿ sQc=#BQ9;g 5T@[Yv)#s+<[Yv%+"k NArFM"[Yv%+"QJ$&YFjD[j!+"d(NfaX&[`1v  +"V*J$&c1v nTQ`[`1V  +"$5^7.tfe1V ia "=* $&S#a,iab?9bFMTd6ʳ hW$[aVQ9EtS )rFM o[`1V  0afύ&V2:d!`fe1V2n4G[`18a0e$@ccaLP +nLZ"Yt`ydB+1,czia* 0EtSR ZLN +nLZ"YtVAB+1,czia* 0EtSR ZLE +nLZ"Yt0AU9,cz*ia0Z'״.o/iaLP`LN`LHC6)%B/1;9xAnP`[c3hWNP0Sa9D;35.Zfx`D[oGia?/fUfڭ]b4j.22FI RP`,`V: RPf5fq"c`'3#ia|aJ!}bb'Aia 6x"0 P㢩e#aIP Yc3iaG9MUh$dV%Vt=iaU"`~=CtK,!iģ~⿐`[Y#^BqPT<,`,` أhZ`# #'AF 9-V FLPELE+1,(`h2`y["/vq'8W ٓ1-!ps0F@`1VMS1a=V2ѳ iy-9:ba=أ\qfUCHO&nRPzTtxFPN0dPR6,L$  B %P%P  DMFA OX%X%_J$UnllJ=5 A O[eV>bψɚ'Y*˫mϛo uLZ<ZQ$dSy=q$=TSz*Pz `1VV hc,5 Sy=qK6m=V2#b3_iݳҘe#:;ޮ@M;&[NFY)誣/i`ƴ: @eh#ݜTYqt!US%:TKefp/A@MY *pT%Pk^f;N&v&Ƒ!V)m|% ݜZ-b#A00* fTADATADATADATADATADATA;bQ W`LsWR[aܙRi\ʁ%1^*6yT/iI x9D=G\ ]L=90 B(K 鼐#UM੎!7[G9T V h[rfIeS"=;p#aVɝғ45`H  ,V,`! [V hc,#;.=#i[>ڈ{ݞXƝ𜗢R*A!.JaV-V0]c%?=NS  WsX۝ǀ\cƴ: _!tZÕ1FP=Q9ie 2.)UsXU@P7eВsW^";C_!q#!qlStžqX*@]ZL: LRAq-~%IPWbvGZIF<HY'Qi#Uƴ:Q@:Q0zQF@@a͛0tR|#G(W#' 2 Ǽi&2s@SD9eȀM7%QƩS 4a؀0M ƐDra:sҐ) "y~ :%USGv p(6u؄B 4e4g< ҄ iÀD^mSǚ2yb xiamFLܳfǑ1WsYfΞ_Ƽ$խUQ`Icb1hFp0qA5}C镝yہz% XIIܑWiGcAT hqS]%FwFP$yr܂::8ߌ~t' FSaT!YM,FmA@"aBsXB.DiQ \QEs< R}:^'\rއ!tҽ'R&f!BIf*A2Hesމ1c=#[)Xlts]R)x%njlpy֖]~gxFlN)K^B d!EOY`EKcM ( @&Fp<Քrltbe &› 'y5BQ). D /+VUsceJ]xBG˲ap$w |rOc@KDTH7W[j= EkC(xK3wl܄IN߱+hGe M4D\yQj$(YrE8w&YHc,aK dVZqelЄGuPq#9pO Dq 61Q@iUF/Tn w'v-M!1ݿ<u.:nQ`0SB%JgSބBdB։fc,)^b.tmk׼%'A_ a6Ùf" I"&i'hNmJtt:n( ;POQ.}x1AnW +X*H=K8w j=bÐ`D ;`qZ0!, ¶1*r偖;0d # p2D~VdJH)HB J°cI "2IG=yR U 9aU:ѡE $}~pPC@`|OVE΀Do, ەd!`|$@0IU0- Xn_!)*t xjTkzx$2 `3(#PIѬ E@b(gL4Ӵ4 } smi94C\Sdi:Rp,(j@wP<Ψ RD_z8&Wve4fU. CkR,P8aY+%Â`ƴt;cW%oy[r$'`[W" !`~oTTN%`IT|cFۜ&mZ\^UUˁAd 8mfw U”`AZ>M%'$cƢpjߪ5bPm]*2 -UO4GSB)kfq(6w < C[1Ҕɡn¨lj,ʇF jX òzV=3M=`pEdj +)d@X@aQ؁v0PaU؁v3\i$Qr$i@D48XԶm*^HpVҰ@b \wIcKuG빂m8 8(vݠ J*JSV|ҖLH%7ӆg  _xDPd ò!D9)%0̓d'ziRPXU Nӥ)>.,v-Kݦ@Π\'bT)t,(ttz3dqG򋺝Җ P@w(hƯJ^`s1$fkC3,'"* Lp R)87Ba ˁ)S#7%36q|mqmbAI+uS13+R!5wr!AT%>G$RCc4a18R5N&o 0T VIٱ;VnD[`>#(i V/'8(ѡR%TFRLPW b|V@NSs(%76e)ӄ=r,(f-"t`&QrG"";+r#FyW !Z>#B 'at"H1uDınBeӔCVY7qAm1|m 7b4tJ4'%"I๖B8a22uRwTp8)!g2iXtMpha|Bqn1BD E`Mِ6a#x˒%xzǡuG+_y?QsEӒQrytx@6M>F'AMPDE`OPUL mp]q*'Iwc5<",I$KE!o0V'EsBGVrN]~t7ry7>8-w*i60ßJwgLAR:"qӠaY*DCldJ2iAPGQE@Tguդ93$!*Gg%rz`$^wn5O2VwCr!6bwyE-Mg<0:,5١N :vɓyJI*:4ɓwUh/Yy.Y%g00*  mVWdS;HuCYZjâE"sPKFGNDCS`C`B*;Zc"+uOax$v'BbӉ5O5| :{E Ҳ tǥ\[5 ڳ.P::y;y{4 KH{-;|[\^ 5K+#.zzb J'tDMG61z"=|˫/t=`zeoŧ{U):"r0=bPj">{[L SMrPg%7Q1N2Md:Lw4)SS %"C6EFeFHzx{-lFZ<&+mF.K22I]Pc*K4Y98/J2;Z'|Y71-BgU%6|8.=q|JTAq1L PNE0'VWQb4Pq,(I8vWQWI PZAh#6ZyGwx% b+jw"g1q2@_]1L}%l" @NY0fQaM3؞*Tf6h6պ|Ryѹ* (-.""=Y!Fы5xDD@0W {GTv|lT*qmg%1Mf,';,e{T!X,.75 Bcs ~PQuy6ׁb<QSJa-;(M"O]D#/Z%Q# 0ݲ*'I OY}TH(1r(cuVgܩM8(D,pŨYLIչbxx'љmj('.,a SIP=De^^*腑 (3W_Y/ԑf&a=ތ1Ba/*[qe0n 00[1w Pc%qzw`23"D^ug`#%&mU%6O%M4 ,wB?^%@C{JQngr &"50pBm74;Ca;qB%!LRdP[_VGb&(h֍ Vlg~}aJ4,kQrIiՇaCk@vbLasR/r@^^"(kQP0D"E5#k{dΨ3 ;6] wQ  *TR,dZ./  n\$.t'!lAeQoJQ)T:ϧX \? 7LȚYP2->**JD0 rTʛtǂ ߢGa (5/"'**yeNT$!af^1 Wv <'U?)m6^)-nZTOk)uYe+hA$'0:9VU27BOu^^ ¿14rG|B\c)N3Y-1{c.L;s"N8pbbۚ"g26T^27-/8pu8"PAS,7}(PU)'-/8p!98KCA"B\1_T.*~-BP 3.ćjњEj`>, 6hc5_L=(b$F"V &PYHF "PA PNETq4yj>r%6&"X6Nkd`&Y͙}3V P0XSb׬˙DѺ.n~'!!VN}}8ةû_p j,].3~,8Zū/)4 T#f#F*u*ID4I B'_X ]#zV!ǀ~ئ([(xS%"p`&(V)j?S}"Ŧ(\!-%P\}\MEhJ'"z"zhc8z5am"wI惂\C#`3^U)aoYB9qs #v$ .SU`=$oXz$Aa~`7Qd ,TB9\tb=V'6D|%ǪYPU ő\qjm'B2,XMa8b50P@TC!r17s4W`1 PNXa''aOw}'Oys3{cJ;f50PxV2 xfB%N11DP0X-P>˃ćjWwsK&' Hq=/h,参)ff4@e`t[4\9Hz"zhc8z51w'G3(pIq6|G_)7`(2!'jpy!sG@O4y_coFŁ"O[$b0$O4{H3Qq$0\00* fTADATADATADATADATADATAŮIQ-%b`DkU&j50vyq8IA)Sm`!O+{nTe+`3?C,eZa fu4 \εL)51X(q0(0sG3AX܉!?%t!ANI^%m 9ns-Mr,8+s@uZ({A ANTu]Ql$3z%I^?!E%D.nu?B Ug3Uy7^,"]#zG=!EINvY;c|g$G^I"^pNU]>|u%(k?=0lZg)^. .M HUNA ANT%3I]8u1Nݥ*I%.Ewd$3*_D6}(2*ٿ4|u%)RJK>e+F~*s-7 ^³80p,a9cj"+-fni/]]!r@^L$>`!T^'<*e}$I"MS߄1LP1LN^K5YȊ2NiW0/I(?:qU/}wvJ(?:6"Pk,0`&D3֚nG$^)\;|'Ql"^% -jT;-jg*U l^"#۽&zF՚ij)8 R#-fnTi  *c|;8& ($aL2*A1.B7wG9(qU\a50NPb!K-70^³80pe8 &tY,ax0OQuT&"JzW&ܤH2IHLJ">@dL?4IN^t"XIJzLzJ|UA^?F|b$3*)j}aJcۤBǀL4>i~J$QDM42IVL50HDzٓ^h0t6 "ޑ 1$Qs'!dJzwOT1Eʊ'13^RWŽd,MH?FP->aJң BGtU)l@HU3N: EᩒohV'*±|RmFPQ^ HŷxeCF\nBrLh^&8XaiAwYe %mbhxYLos}}噡#CaTeU),TFC M_M=exziiI(/C@X`di"ex{b pAXbmQ*)Gia jaF\lVi )frѤE(`Uőd)jfz biSJaŨ:Z,b,* 2Htܺ녽Fi ".*#Ei(Klj>[vQb]"Elx B*dgYE)Fh96{6JGXtM)f &ch$Fl%CY5f@U_lRIUMc9Td5%2oQu4p(h6qMbܕt+g%Ka1n}J&Ƅy0-{%FMfXkPL%ɑAgVx1\uAÎR[6{́i.SQgVZ 1|RQ1fo?{cHp4MyD&PpSo}o ;Ah-C#q \BIm_&c y栃bjdp)hn "5 &l V"D !b d1*7 UE*6^@Pei&N-2 [H?b% AH _U. d]g_>ӔFD/A(0.s "q 5A✎@BPZ@bdTcGhZ䄄IX#00*  Gpc"ғ=tnRPT#-µ+j4ؤ\Da䇺 #BQe҇Lh8dtH '(, xs$"8(DRV_~Aa(b0ǖ EVYd^ k Ƞ0$bdP^Ei-=\ 1J&72͌?jzӁ5X]檚[?`˻/y6SPNVD#l#bS!Os@|*!C9D28*RUV=Xd1˨gD-'z}eqYIgE|NNO!4, uc׵UObpI]¥ha[AG$C<}>nY5 y XH32<ԑIR;U E,?ωS*JTB]ShdlI$*g@!6%O8FZaǥ`Q+҅VɥбJƒ, KrɇݵRdw4t>Y/QkaV O>0;=:~&tAe0OGre5- G63%A$oSxq.egG7] ttHgA;V#aqrD4G-70d@! DV(&Q8wo6DA5![_j`rГrQr33=ddUD gf$5hUZf4fQ=\DgUdf& ;f#olA,uhfETD1nRU.a qOOե65:xALhqf!vqTFqew.!,%s34$]H3GpA$iT|x$HLX-V;kA@6)}nsLkF-;ÍƘ =6Nxh 1k#OLrqFu#^lauA4-qvA('20a%%P3eOUa{29GWUKϖD5%`7s+_8'&pb"laB7=6Rej0JC2cLR Y6ZX]BT4Y@hkf!8!kwL&iZ AN0Z5pQuс'"a`Ov'(BU[A2r/$yFQ#asl&;2'BD5:c: 3gEN3|Z[yTkFL`]5ZOR)sP7\bn uI'@Qgg})aNRB:aT/T9\7yxE)dq6SoiC9r-u;iXT3/gsb8Z!?>B!?"@׌?b`a;Hq1y(r:1!ŁPq4lt@HAqN 0`0f @4`=9P _JSHPGoHrIH]HIDDc!DPXЧbV22K`E1 @Zz6p*87ЩꩧI19p=:Z[ 3y*R1r6.@ 0. )*R7y f :124eSj@9~0N0xʭ"p9zA0*`۪ B22z*R 1M0Z s0UUw ˩xpi=t "%58%{a:.2p0+#>rcfvv{!{- 2 0 hf.8P|ua-b;ص:fs9y ^bT{RI^˨N{ʷK0`P0q*+fqBSzt h ˇoj>X;ۭ5 u!+5733 0L[05 `̋ 9S+hfhSRSP;hF[,K@;37+;_۶w$L#pӛ_0[j+A ˫pFT@ zC].afjv~ҿC5Bcz.|y[5̾97s:xxx0p=za¬*N D C=\ZRFE:1pYLw)Efl:)hŽơZǫ(+蛻qh\X |ru,*6 HcLɑ۲ZD@S|-KLSl1AF;<> nbIR{Nc쫜|́ɊA)6/f,R69@E0q6wD\|*ͻ>ɺV,!P#9 *Bg6+\#=,O@Ik[9/PMA!P#t |6'W 8Ui6!2,1g 11gxg,<=LgB [[8UL=SP;H Ut9Bt"ms+|2@O!%׈첧B <}[̦,z;RyQ-|Ը[4H ;,x03)ܭZosWĿHvHKo[xg ]ȿֈ<7@eoe-DL7pe9!D]RA1m0|8+Z&H xdFuS{a"U(NoM.g`~$RDj5q+,L۳=JA$MHeOxgD᮪Ȅ?*|/ea 7!Ň]Z-0fDr^<}*ˀnHšR'ϱQm!u!SЬd3ǫPLNKcKu@vxϨŬڱ]@ ,].~Ê|kf-6nl1=MĂd5vN8V"+M;N>5Ok0E0—=Vr#YmEO?HP,(Ѹ (]٣00* fTADATADATADATADATADATA^ <lTz-Sz+sƫK,DlxtzčJN(@﫼НLߪ4@/RO>+/:3C'2_}QʭjKSWc/Hۼ!D>79n,2zz*?APA@򼜬U S@4UTP%^;"|aRwf7|"|aRwe:{PHP#|߸&YQ(AMW>1ȍjP'I|,oDv0}=-:l882]i=6pMY`~NߤHNHALCPi=&OPy4L*W\H36)!ثfq*KLNS&ONH1R!`A-HRd66Z>C OLP[ћ"DJ4b\ST ѝ!A0Jrh|靻!A0J2h|S`AdK-;|LSzSH1YA02\TMG*!Q_ǤCᩯފޭ^)}$n`N:۲<9ԭ4ۏ]==Tph(0t`?bX|^*y}S`M i|HA4="KFݖ,;Do-{VKVE *pV0N Ok"]ا"ɮMWPvk~JN$cQf! Do p?!R>J}}Y8pWpYAz瀺0Ҹ<@N 2rojt\ Mi'&e=2{ӋĦCN#zvB$ɕ8!g7bc!k59Nx]=q%@,*6:RMĽڗM?1\vͩ=l8FL:s]F\d|, t@S&Ju:t4ʍlǬKe d̗ʼn }ӷ9 g0 a N/IR{#j;c >n fFgt6Y؁M8;c"OX{Q҂sFT-<7Qg}o}L _l"73lxTSlxC6 "] eA}lxy[&"_fP#=Xl s&s3s$P1BY0e1eBx_A'G8#_&&Vc #B'gjrLkL00*  s>e/N6rbr8! 5\“ ,o`r1S#_-DW7aJ1bC- 0c~i523@TWoα,Y#$i9DT'd3U1h> @ٔo&1L)VoU|US<9l[}Rh"-zXXO1Ju:uJw,UOY[6ve9G TZSe&VF0XVt\ cxUycHCSqSJq8d;z2P0UQL616sH1fY1Cٵf.L3PITPR02AED2x:CDE&/fUwhIcYF!Xk3XjC"qc=2b.Ѩ8~_lT0V[ h<5 XA4Kh gtf:㫬Kg=:IJyQ7#Ҕ92#!3GDӏj<ьv!%(?*GB ƙo4cQ I4*? W}9!mk[-9:$BB [y##_RA1TʅH( !ZZ;o!Z Rk1 2w6c\X0+$[F[SL#"XCR|)X 24:Sl%v۳k2S{h(~>i4!i1Y|+B"c!zZEYjGLX##G++YF[ x7Kq$TqK{O \(P7A'⪰ 9i&.@  ҥ85‡d1l@cSˢT3|JG{pZc;dbx7U p4)_&t7f=DTC.EXENC,M 'F@2 MP  _@'@*(I$kh#F.cҟ(ɹ(')@hiJɚkO^ +쯰 ;$n[ⶈۊd _ZkWWMq5@RI)J+.!@wjG6 M_)Υx⯊+x+%g8S^GQQ@4&j?Wm< C - * ; Zh+\ !Z!!a*1Ba6a=^hC Iq $@ $I@dL9ϔ% ZBPtE_t)OAPrf*ÛFIśb Ǜ~țɛ˛Ƽ̛ԼPJiL¤5LäZLŤL̤LZPj4ʪ˪[AiϪm@J+:k@A@ A-NB-'ԖB+BPR@IEx 2(-2v?) â1 o08 ף? Pl@1(@.!.r @ Bs<<@pH,my!-w,ґ,һ,,4 f DbtH64PHi0-,zעwܽ@@@ vgAA GB'B.'C5C!>!~#"> ^xܯwjaF Hp P0iLpA<\Imq I8ޠVp*L rp; " >\s# >TC>> [CD>| ( d@F) ddODQ{dcAF`dA{)0\"HNRƊ. Kָ$"HK/8@=J؊`ZyVV@@KPB0a~c X@aHeəN Hr8apkh5v,]3 9,k`>;] 5ODS5݁{森vvwMЄ "X?(iJjPi!J:b)D9N)Dj:J@"R`PX*@Eʆa%bX*3J`"Z-*R8kMZyVoi:|_/T|-_p|_%@,>-$s =igaZ\2Uia`P:G]o3[Omo{3Zx&eF@lK;.?pr܅{ Pc蘯s;p%[#!!|pblGn[^𣸋p׈ P;c* wU Șd#n,Ѹ>nOF2\d!( J]N(J憒ߡd2j #bp.\7_xs1ޜ7 @wE hؠR( -B 8q Ial&݈IbҲ41&Iwc4=&Mp &bMX+"֞)b X"Lju?b-p& =d!ٝH3ݍd#`nӀE- noۤ+ n'u yObޜ-͌yc>pw p((  b͘9&pw qE\!?Fȯrn!A慰%l C_8)#t@Cxz Re(tzH] ^!=d?GuOBqdQ:.;](oaB bn@Ѕ!H_$|  "8} X Pًcg{8z^7@}v` 7"A`70? o?O@ ! `!MqZ 8p>00R!h\ ]$4$H#hWC $h6h DCÐΐDA( $HJhFQE[ЄmЄvЄЄBFЄЄЄ0$f+iiiXii($( iX*$ iE7H$~h2DM_QAqSAE&Y(a qp8@X({8 PPU P0x6@h xP(x0`P ҈ (P<x@xxRpp.R6Rpxu됏8yΐ㐐ꐐi0I9m 9mY P.....9 .y P>Г `ptu``$GP SSy`GSS9SSYocf c cc`06f#fNfv6f v9f vYfvY|f)]fTf'fIPPbae .0000R^mpppp.A.pp.Q.U 'rΉP~A)봝ce{00* fTADATADATADATADATADATAySɖ)' ` \0 JE `w W `$Z$!z $: - U `&p <hB=z00KMJOO `$` Bѣd apDb:dzTSCPkrjkzMzkrkڦ{* EAzY  60@Q`:>0T찥् p@0  ߰ h:؀jj<УlYZڤB> @u:@u`J0uJP߀ Z~JM@u`[ @z@@XiP#ZF*T {YzkWP w (qߐJDJ0k4kY %`<@ yP` @YJq "PSsP'`Ԫ:B1kI`;*zQ{j˶ՊbBs;uSP-QuP\ k$VKHhP pKWO0`Qku0h P L(&0 ջ۪@쪭&0 ~ { ~&e ` u 3 2PУ?-_8@>0D-Qu`*jڻJکkpL?4OQ u\}ڔ91`Ll {1;KoO=̰qx WܲܪKw 3 P `9*u`W NL25۵mqF5N<~@CF.H.L8.Ǔ٧F - Z'>Hk$.r [ ̪>[c0J!Y*Ȋ\ HpJpL#kr`p ?t. CO`(^/ɍPp9;0-hN@ue"` Y0 p [aq_y#.O  6o6 ʝ ^B ~0P/ ʬ Jf tڞ ڿ @r oǾ60 谥 o_, UJ`2[ Yz&p06` ` 0 `0ܡ I`} /r0Տݏ@ o />oP@``  P1`   ܡ@ d  nO? دޯ 俥po a 0 P1`ܡ  0;_ A:зQo𿍩0  h@㳞};}& w@ B`ۘ *倩0 `6N};}& w@ `ۘ  ~ao0?ob@* L*  fP10L  :N ʯ ]ܪO`tM b@ʹ0QУpPO:P`ھ !!B P`A66 ,6 .6P */ ?`t-h*n,n(n.^ *خ[*Oܼ`d JQq;@꽨k[ 頤^-+P݋ZѭM:@ 6 ?< q ѭʨ my}}u~ H ૌZ mMPB ѭʨ yYPB ѭʨ Pb0 ~E H WZA2 ĐJ zK Đ0 `#q. 0@ : 0 렷 a[* }=[j ~ po p=uo. 0 j Nz{ =У|5;@~[     -=u`[ ^|m  IȐoУ|P R==P~JE@xУ|ݽ[     -=u`[ ^|5h 0 p={ӣ|ݽJ,ޣ|8l ƐPP =У|ă У|ȋ==@:Pj 0u p. У|g(q袠 `ː  ʐ^̐2" 0 ʐ FFd JQp;ڣ *+P`p= jѽp= zm.*ѽqP^U200*   1lP g[Pyߘ  /[  Yޣ= $M`ѣ밥* ?ۯ> j,6,` 6・,0 .|W,   0 9n0Q$6ۡ  Ґ0 Ӑ Ґ m`A   0 9n0Q(6 &&У`p= $&,6,(.~>"PM[P,8,p P- @ @- @  "@M &@ *x  PwM6`6Vn, b ,}P@,0 w w ۟ ,~p w   P3mE |. Pt$**:P]`Ґ0 0 9~m`A-FW@o`0 H0` [@o00*u Ґ Ӑ Ґ㷎 0QF6ۢj xF  F #q0 F:0F  [L[`Zt*   0 9~勭`A-JW@ Ґ Ӑ Ґ㷎 0QP6ۢ ȲP IH? L ٹw #q.F{ L*ɣ L밥N0 Tp`X[*PC *G,6,` V`X 0 V`X`0 R@ d  z70`  Z@!~PZ@! # FppF{\p0\tmZ`v` 9nz_P6+ [xo,,PjӐ Ś0 @0 `0 `0  6 ֣}롷`m =J3 Q ][PC @!!-!B P L]؜6 վ>'ʚ+ʚ+ F **ܯ0 p\ ;#˹-Ԫ(n$n&nF^P_,0` x # FppFu`0P@o ` 0 `` 0 @ d  D: 0 Fm(m =J? ]` !!N.ŏ 6 6Z`A``A`0`  x/-c@z dz{(aK MP,v0=P!ڙJ oJ~ =#zۃ5ƚV! ӝ`ܵj !! BN.ŏ Jԅ `Pp~ x x`0 ` **ܯ0 [ " <>з גnnnF^PӐ_,0` x # FppFu`0P@o `" 0 `"0   D: 0 F>ݎ 5ƚv (m[JP L oJ퀽 *M@Pj J ؛w ! ӝ`ܕ@z{O@z7o@zK # Fp0 Z0. Z\0` owj^# ^@צu OP[*xo,@צ/ lʚ  d JQp;Bap=tmZw-_؄@] G@w-mxQ0P`ܵ0c!!B- P`/o _ P1_/o o b ]q;|P%L=J У0 = [jܘjz^݆cݟj Fp>}.Owpn~`9nڈQ؀6@  &.M}EОn2~`9nڈQ؄6@  &_~@ ~@ \@ ~@  b@M f@ j@[jyo oj oO@0 @ / Ŭ4oj@o %fohloLo1`9`퐰}븀M    }[ @ /`y  .j  wŏ L]6.i6ڢ  P     @ @@0 ` ӏ n Kי n 0`r tY@vtZp-|PJԅ`ztmZw"N0`Q tY[jy:00* fTADATADATADATADATADATA   = @|V ҡ oj~ (nm =3 Q ][* 9I` nN.ǰŏ 6 6 6 6P \`p 0` ڢ* Yq cPj(a{ @[ʬy,v0?=Pp @[~ﰩ? o~ w- @ ӝ`ܕ u@@  * I説 (m[* ~uﰏﰩ# ܶo0 [jǩ@[lyv* pP0HtmZw`\ 0 ``0 @ dD N@צd JQq;0КLlКE У 0 = =J зtʌ PLP9У`Fa@Zo@\ a 0~  ̬z^ݨcFp>・oNלn 6,n7 6 - `AꜮn2~`9nڮQؤ6n6~`9nڮQئ6  &Уౡ@ `p=  &У=y>0ް0ߘ ~.v[j H߾z$` 0.` [j H߾z$` 0.` 0` 񰥸КmWZA2 0 `j !qל P @m @ @ @ @M (PpלoP `pלP tmZw * O9.  @צuל 6.O9 @צuל 6.o9 N@צuל 6.ŏ !ǥ>ntmZw 0mP>tmZw 0mP$>tmZw 0mP>.4 . /2p&u[jgr !I2 `򰥠К ogϮ6`6` рy0b рy0b o 񀺢* 06 *  ` 񀩢Ϯ8@ 4  @ I6 =|@op`>` ol~.` 0:`0 8 `0 0Aq. 0 :  : tmZw > עn6 n۟j 4 o6p& }[* 0\f.` 0:`0 < b  ƹ@= 3 Q ][g Ԁ  Ԁ +!6rP`A`A `A@`AS6+ [jg̈ o  ڢ0u[V[* `p&J S=P pp& ڙJ S o J ~ w T ӝ`ܕ f.c  0  r` < r#0   I   Ϯ6\ # p0 : 0.p0@ O򀺡 : ? :  gJ C :p&|0P=J @lo&6 @\Zo: o   zp&t`ʚܶzp&(m=J #z+6zd 0   p& `ުp& @ p&ʌ `p&O< o*n[ `        I ` }P gB~&     0 `  0   D  '0 o&   0`p*p{o& Ϯ>z; +h. P#1  J :  ?  @צ рy0b t   I   pל Pw 9 рy0b p-0 w   ۟ b@ `p*@tmZMʠ g[W>0B0~W}<}<(ܘjz^F0cݟj F0Fp>s  F0` yF0jp9nJ0Q>06 ,.  㦭 `AꜮF  㦭-`AVnF@:6`m0F0jސ=WH0 ,F@:0`` ym0F0jnFB0`>0P`` ƹ@= 3 Q ]ʚV= ~ߡ!!BM P`A`A`A`A`W* [̒0o1 1} _0`0P`  0ozrL Pw666`WخA:, 0` 0 Vm (mMʠ g[j so 󰩧0 o0j Pj0S`0u`0M`0o`0T`0u`0W`0e`0T`0h`0F`0r`0S`0a`0|p%Ll0У= 0M ?YP(ܘ* z^000*  c?* `|.Lw@n ~ ` 9n0Q06  0&`0%m0 o0/P @ @M x0/P @ @5n @  Vn000tmZw 0_ @- $@m Ԧ0@ ԧ000tmZ[ j0 p- 0 0CW0 q. 0 0,[ 10 @צu0/P0 [j 0o00ڢ 0,[ `0 @צu0}r,P0p [j 0bo00ڢ o0 @վ 0J@F@ 0 @-`$@B @0@N@י0 *v 9PH JԪ S P8pr,P *@ .@  ʠŽg=lt/p=uѽz1-j:鐛[^L@[P@P(J@Ϯ.@ N@`P@ 0 N@`P@0 J@0 J@˴€z,@G1/L,:Pտh FBo8f%'po>n$QVB/Zud(u @BMPDYHZ i"&J+QMC%hh¤}"`jI7"{FHN:*xM rK5L$`u~hyȈrAO;P4D{x<&r]A 1U n[NסXdx:?H~ z&gѤc-rD11xA PBOYX(уr!_0a|Z@!:(a!@ =|~  Cޘ `~1)F6xaēГ4 MhN8⑽9,L2ȟXi [HO^ Ph!n@:\a Bʏbh&CX: z|{EB =C,B7}: -e+98  &{֬L`ʬ& r@(jjW|%eeʖ $CRy1i1]ވ ^X酀@uH0AԱ1@:0F( 80 LOudp0= þRXl3`z):LLr#C4Sͥ1"0'ӓԐN-!\: Tr#OC0RA2QސNO!sc MhLt2Oq9SG6S6l2Q_O=鿗fj>D BH8IEH8GװQhPўHTw]v|u$nL !r0=xg4Jb25 5<cH5 0f7oԏ%pJ: !  $<(eD0z?0S XE<`@BA\Pp w6 ! @4h" pb(K\XXųD0 d@> j p;Oy쇿H` 'A<")4 -1 2D yI?dcA;=?~)A!Tc,QE=:B "8RRlDdCy081*3`crzpE<".XM(hY|*HE+bщecƐh9E9 #搜D')NX %D ΄:1`P HKjn\) 没o䃀l K~( Е<jT\I]9iH!M&=p9JTE>թ6UbYR=hhzTjUUi!:WZ_ժ9ځ(.zub]A QjDD#pY$# |@D [`Xm6] ʖtk v6 |y@=qQt|ymxM2]a}F0@&j9]߈ `I{ren_߰nqthc;2aB#,c |,aN3  $ꍭt&=QG4qq"EA :"`X1llݘZ?a/ xXSs%U4_A&@LsfŋexLk@@!f;2" FΝX#B_?iS5x=>tfebDAlHct @rQM"G7`k&{1~"mhiPM@;/:6pu;=GI t́$}ɍhx~=[e!mn+ۑśaHVmM@}PHy@WowpauyMFrw$ G; Gzpz zT pt`KY1h4o i0wwGWpGcp @!E ȠʰuGu(tF[ tЅ_bXvfhk؆K6[qHUhX( yp0 h xZҐ^s6t(h Wdȏ0PGX`HdTmC*`u29w2`8YxGw` Ђy`NpGƌ)>pRgyVe|Z`|ȧqԧ J<Di00*% fTADATADATADATADATADATAXWrY| pdzƔSRYPb\8 oIvsuc+ eB l x]Y0UYJ ʓ p{sPDaϷ 3xgRD `sqm geA$@bEW'8:A&0Q6e Ɯ ]0恚Р ;v@m𦄶v k\#(u* @e)7 :1 8j96oPDFhu Tgٺ 6Z(TydJ 8ou6QpZ &׈yNfk`Tw|Ij$`gej6eUjG r-'Gp \X\% Z2mluPH VWX`a8, pR@GlTo7ǯp 5{D /Gsxp[{~%y% ࠺1_T~z.w:xY]sgDǘ1  aTהs0 u7TVDZ0y6g8ʵ>`ww8`5+_NWxdjPPPN@sz|P/;U׺3` f#uysIgE`vO־bPQ뺨(+|^R h{po!^۵B)Dm&JI3(..]6u  mNFLj+!@p;{#otmX pdP5cxxxH,v@,F@&K&#(#F"bFP hVǙpU$ pCPlT ?pF`` @L2bL„"00Ku @ʸK9 t/}Aq@< BtQCP L!ҧP0}Ga,gx<,e7spOA1κˈ`u`1}!@``  d }wv`:CѪ -ϳ .UWl͚``oXi \< #(T &4<u`O|Pɼ ɰmʍC9$̳\vd` Lv okm i`wC dyMtE`Q&T6ȱ^H"`luɖF6 lP3/oSK|sk7*-tN<|B`(:gUVr`Kh`4șہlI!@2a&}u0 `AZ)g^Z)GmhW B B<4؟W)_nN^ƒgni) шSY ^^=+۽.p` Jko @fUC{ Zrl;-Pe0z.HKwymYe.@LVnxVF Z ^e.@DT@ udnm{VJwCb.yN`M.Z\ttwD < } \zta6uD  `hNA(K@&gz$owwK&#([~n.0&~w 0F.~o ~@ PfP d0…ruf̎xa  hR{sB0>@Pʐ\@fbɡJf` u:o 0p Pfͦ~OLF=h` @ND1D`e9iOpyWo$ Y^e|.d&1iia*߶>[Di_ /J)FA9 $d* 2 oYf_Ir GGm|!F/`sJeNFt)^AwJjQ&McʩV8 pԩg@u %+/b\_aK?Pe |"#zT:'s}F|Ǖ-[7qo1K__j]^U 9خ A goeO9K`Pn2$4so[^|+Lp|OCۄ WLi yo aq,{8 '0Oo.JP/PM2 G- gtE es" es(A2w+  pM>>>>,tI疨fpMWÈoCtt\| wdenV堽8yfX7, vKv*V{ G`pUר`a@p0NtOm~|NflVDpDIv`Vdu No_v0wo4d/+gsf/8d B,^J-kpL"4L#uv@N7(# (Gد)'T U"[1K,j #uvG &U@PhN+~byl&`G8dtp h/s(wt" P^0svv0,  @(Π}0 0_Cipʗ^*dߜ` MVÒlW(lHKĎZ=A>QGKO1UZtngs&f ;&TyFfz fzyf.^ު0Z[epoL"4L4L>H ^JJ?*m~2 p8mFo(~@N6*p4&H՟KuN6*p4&H KV @ 0JAKqtO P@ dX.gLFP8m+p[Fр|gLFP aodP N6*p4&00*-  Hh PBqt  P@dHcb iuvwt`h@Nz`C &GwodPOAǚ>do՝.} $PPdo՝.Hw.Nx˩oKG*ʩVH:P{|eZt@Nq/by#;!n~k~t=IgE_#لڝPN].r=A>QGKO1U=`٤nNp`< s U n W Z^k ԋު6uL t0#c`= Pupwgfaw'GL6,I. o#c埈lUDZ9g*gPc`S P ^ OJQ0_'bGv uۉ9np(|s?C.E~IMQ~S^ց Uyy uP 5L01==Nb4۰ҐyP kyӰp0p`װ@ǰ ;p } PUuty`7Ұ 0QpU GGp @ `    ٰPpp].[Sv.`ٺ@ % 0> v   & kr@ 3 + s + +0 @ذ[^ Zfs1T L“ kp09@v0iovh   f@ڠ ߰`JJ    p[D0d p[J>Td kcR3N0.00.@60..`f&!^R F 6šu*@Aly^yN L V\._XP,XW`U0>X0[ [ `:0.@>0` HBnDnJN 6U @^[=@`_X =^Z@ <H^_Y[@ ?8^Z_XY P_X@ L0>! 0Dp#0DO Vp0>r3 `W N 00>X p [ Z_p  0@50>[z[pRP RP @ $P ~NԞ0T`F@ឌZ>}! Pv}0Ux@ i$ p#@ MVć> 0z> P& w +/ dEZ r w , )d 20 # rP}> v ` dE,Z Ea*v\|!FFءAySFuy#}p .w%w@ξRV@icNKV~_c6%w^jyupˮ#}PSpzzyr0Ux0vGЙyKd 0 H`P0@` fcWvP:czP]j`zbZަ霠U1 J*v\pi>`p6gF8 );ghw@P|w} p 5 Cx՘0 p&^9b J0pL, 0L  Cx)0pI b5 eP"0pGP7 0Ly Pu9 gc)`@a0Ux6Zd6 0L9b J00P!@!pap& 80 &꿢k#N@O "T#Z٩ 0*  o skwxǟ 8l?ڶa@3 LFx5_g)`wxǟ 86 pa`wxGo6 p`Mp_60vw" 0p@  0L0> C٢` w@ 0tL+4 vw"fCv 00P5)5_S+e)`s0t`cF<   00 b )к0F`6 yS%7 !@wtF_vw( 894 Z *  y 0_E R|xŐsROR  YG Kvw8(9)%uq ^ Pvt 'J $|M e ~~܌MF#~= *qg O)0d ' J  00*5 fTADATADATADATADATADATAYK~0`wxǎǐs鐊 8@ okչ8vw 80' 6 0' bWܐxǎːs; ye w 8T 0\p0@r0 pIpdpdp`P`d@W@ WLtdpdpdpdpdpdpdpdpdpPdpdpdpdpdpdp00dp $@ dpdp dpdpdp@dpP{dpdpdpy@dpdpdpIg 89`J M(Uxpai1j O!@a,A u }A eOf O!* [πKqbaAv : vx:}tRZ|dcwy˂&&qq8 0 M u 8 @!a3~pa؟VЃcy{ _T kd 8 e,9x RE! ] NԡG@;0p\P ya`MY0p\P?08p*IۢNY1U3?`|3[H ӗF! A꿚0_w`Zڣ,d~&fywrFg d5 hCu` fXqI }w|s&IP-)6@eTu|^^nwȩPQ> 8Fg[޵QT|I~) DRɆ(p(/k8KVP u &fq s'ePyd* pbߩjTuinK' pAސsktx G}Y[FMBnDnJN 6U P]`:qܰ_@  (Mv0 0U(e,= N6~bNp fsdS)0O@ gSrh sރF0]pы A nV ˀ&@X&<>0MfJ` `XP0`XP0`XP00`XP01b. M׳Y`:0.>0S``k <``k$ OP``k  f % =inp C``Pp &C V=inp C``Pp &wC  =inp ` &FEgp   sTx}@k`QhpؘZPPTEuUɆ(p y;^@.F@FnHLP`S^hd0Sr gؠhCʙր}֐wIhm (h 0騅vP $08 @@`ڀ @`@`0@PZX\u  $F lC~1xs"F TH  F!O0b,m| 0=T k  J 9gKaALPi  Vh^qXp0P@U(p yqO0b,m|1gpؘMĎ㐋s p J 9gKaALPi  Vh^qXp0@ @UmVlb \>BnDnJN 6U}! % 7 d@>P(DNPvb5!#L@: d. _/L&z0 L 6dg !=dPvLVO`w@&^W-d&!@'_BnDnJN 6U^J{t)+T(d| fP ߱ l(h^/`lUU` 0Rpa9`'/`F0?UU`h>€ vHwnT%/!CnUG𗏸@_U8-2ɸ Vp_tU3c^pH_ V,W:-(0&!^qp V o_W2U^ V g0dt0FK)dOUp nU{6MF@T0dpU-(:,UnUe6PpYJnUQ6P ZPP 2=]L00*=  0 PP0Z Vh<U/p nU 6P#-W 牥<q*0'~@RrdD$%gsXilv yp'.kd* ?H0` (X80C!PlpEF, A$r"""X"rϞ Hw"1#BD";F$ H$5i`@jC$ =rY r ҦOG2􁪁D!K$&t5XH#p# /˙7wQ3k̹_?aQƌX@pk }y27 x+[v"F,9;Y(XӔtԩlM /P؁ *!@>1#Ot SXY ظbHt64ܣ 1^`B"|y@hFLi<_Ș?2%O"= '= d܋dn:#0(d $ʍ@Mވ%019HU4:v ik*,&SP :BHONBXdT@_)a`tنݞ`u")%^c=6H|fdސ}@ċÌs`aD;PG)1>>c; ?܂.Mn ͋^W/sg[[voJ P <`iA P!)$l 5 FA\1Xp' 3Sn 'X X `'hІ6!]rZ & q-݂#tcXg,pg2a}&hH А(@Ettƀ@2ԁ APKgΐ0@OpPAԤ}2a ^th7D83`׽L9 FuP6! !aGr @ "! t7G0l4أ :ap P`9rHkzP@_!ʩV89amf{mmW1; fg#I`B&-Hq! 5lׁZ0|Nluo6d= 3_"6:moo;S=lD7D0[?ɡ c0^r~R0xalOx걃}gxy7yٶ;п* ;U lrm rž ; "GC z/zonmg=[.tCgd'FhnUhSPbk UpxUDWMY:Pr3xgh:g>Ђ/>P'hAkc'qojGm }6x0lfd2h5jOPtTqփk#e@f{Kqn@Bd hVVpxWu@Aev$?RGukS76q8rtA&5߀Ir8 5 ' @T0 r&2NV806ZX@(kc8r n1xf8:o, (dqIi(_ZeR6Ȋ:>TP li8F`9SuV8ӘfֈTHfhhxksGq&e%pec֌P&e//r9 5Ř36 &x˜iXdؐ'v5i uQu, .01@Ȍ[10fg\xthN9RtBey:vηp_~:eqr# 5@ X7XX@C7e]T?YPe H9RW|\d ِr.eّy,]& 0t )VVdVؙX)fGhXSih6wtD`5 Pe(0A'AГR霮ə^' X(kai4xƝXy0}?8S;AFtdOũGgTP6lWPD :fvTU SJfF IAPRT(ٚBRC?1 5 +ْ486 d\Г(PF)e1 8@-08gv7RٜXyKzMyc)?)XZ)e) 59R梐?\ctR rʐ,hdRX)1p(gdN9ʣ   P   I@4J jG L @aK?ݗK,cp&5us7kV00*E fTADATADATADATADATADATA76(5*Apq%n[d<)M0?_7 ,xH|'zr`%{$xr`8lp_c3Ol7?g{D;=D8GlI yL|3@k?s?fwf@= e= m0?!lj~ @N:)NF.e~<0@A\9m p dWgNم] \Z!zmF@p EGrZ 30xswFa`o[aDGu WWiAI1`ޖZ9 УJ?tA>p7DzZwؖ+L!eF$ƅpv S`y`QedM1`Nhj"ln$guGMXa'I/XN$`aSh )Bo E"0ÝAM$Rp BCq zE=놷-;G:ӄyޖ[5lml:A/_D@-kļFSGgMQZV 7rHiJ\e@mq1C@>1BW`W=QqEeAiD0EEh>T}5E"dv5dtBL  '`LXd֠4B(ge:f AyGR)򟋢7Fr|祙Jj݀iEDIT.EXEC=M /FS] Mh@@yљ 4[QB@ke 􅒄^0 <@e羝c D\%M!j)~8qUk꭫ͮVCbqւZj-JHQ_~.K/V[o@A L<&3́2'ʼ)08 4֣jZާ ~nC8O~Fᑄ^K8/̄SnN<D\!Fc)Oʳ*_|ʣ+)EϴIE'ɟ(@,Ƣw,jɢ,͢,zB)B|ħe|ǧ|ɧ|J+̪Ϭ\(+!&«#r«+n+:ޣBD@8Rmܾ-R(-0í DdEo2v=.`CIM|O,1,lƠll23xD@"كH !O$"H!s$"هH"Ȉd3")H#$="yΖ.oK2.4.Ht.ǁKy M\j? %Q/BX^ uV/Qp~ayӒ0<Mj#4=:xA#uOc{l\5hfdžQ;S0hяN}?b = hABLN{{Að}C=^pё=#=tvtO]BYjaMG>5:VяPZv5:"V|u\u—d0tEbv]ww|6wu7y|fklsGxցkm`s=fߖzpqatgooq"q xx#&h( /8p707w4xa:ȃAo@j6>pjx&xGGq  v due fa00*M  s bi(s& tDgb(VuJ|~Xk7XGux8xuxvF0Fh}p0PR~fg S{z7z~ g|׌ggs$"Yg]b_ sYucv'xd~ ߦl(wufabP փ{7j&%&B&)Pry0mQmY ff@kbFf `xHlwlp%xa h ]09s ˩( jɖAu3@q CV/$5ŹЛe2@0@ZЕ>}t0D]@)` ȹɖpII@iivl@7Hj @ B*TJ{j %zئ +( |izf}mj8: ڨVjim9ym@V PjЖEv`:p hYsp i.f}``|YjP/j R@ PuTKPp`uI! cT ʠ $Eu +U8qiz۠ F& ѯMPwPy8sg戅FPMDKR/؟20 "˪ [I Kd3k(ZBЈpj8x?tq+rx A cԀ4KJ0F@ рspQ{[};VP K`䈴 L+~uPzu[[xxg[װJ(k|0)+i;`t۰ 3PpA䠸B { sP-  k۵ěb L$ c˻{}Y%(a'U: *<J-Ku u0G US[`ܻ+[,.lbm(: &r@tpn$pfP07[b 5p.l Pܺ'`\:uuPM<`x̻q\G [& nu0Y3ܠV ̎7usYw%-ЯQPQ̬X<*ЯGP > {Y[ Gŝ Gu`4[t,ONLrkt[ʉXrg)s˷=WKSL~VlLūK E<`|hޏ^wQn`0ygghޏ^. cHtf灦u ?¯T_l0msӣmǦ. cyk|?o^ 8]Fx|Wj(x_/nk^ /|ghzz.^꧎0mAӣm:0|ghޏ襮i>p]}}0m|hޏ襮inPdge}ؗNܧ . 6sp#?X(jHu E* '(@N܆1a^ ƅJ;ʕܵpq]PApo VRܵpq] 0if`h~Pr7-XU (dU!We1Y `h~Pr7-XUɔ xOiBPlru _] gvj @VFij`UFz0 V6,Vjc'aV^]&!F0 0 p0 WP Ai@^Any uu0jt9=ږ0 p0 WP Ai@^An d\e`0\׹lr9q7jjE ^kpB(*l܆187ƅJ;ʕq^@] hm}v0hv f O`s8'y˦̝>F+AqYq&xnlxa;rur &ॲV a;r?@)M}F ]\i ܅|F }}0@`n:nVy# 4nJ? PcUn#8Unܰ5p y塈~dPcܠcPcV N/wn0+BHoToPӶΙP8k  P$k k  Pʫ oFٝF T T1myM qv c0 4Yp#m}hذ80f ? fذ80f ?`Fn0Fك BHCQP ATqko 1;] 0ifo@AP0kY.^7@ ۨ8ORD + m,ףm<-_u[ @DyPpD @?~&^fࣘ> :`' FypԀ$oPD @EkP<Ұ~ Y Vpf\ ׀:`'ʕF F9 I pD @ (.ps^j7B*&J0)bneBfLƝ u TA ONmrk]B)]A TA婒 㫗/ ک ܆J ATA婒 㫗/ ک . cAi 5qpP* @^ANdz@i@]p d0 AGEp< YRfIe^f] cˠ @  eV``ʴ ] ``0 <` ~ @ & 7B00`ϸe0& @ 0 ] hQfv`_f@  ʀeF [p'`t``@Pf`@  T evF` t<t`op"] hQf\fPP @pQd PR @ (@&0 Gd&0 `[  @  @&`mR `f#u !]  % @ PGe@&[!`;7" 0 0&H`Pv&0 TAhpD@0`pD&b!& d.v#s @  @ eP 3 P @p{P]  @ & 3u & 3 0@S˛}`GP  / @ 0@  !<= % 2 X`[5 ?`[_5 A ] `e?< 0` jPv&0 XR `&0 Z rP @ @  ! @ 0@  !<= %] / @ PX 0 t P+hp \PRؠ \ ؠ 3 P@ % & X`[@ Z`[` %aؠ 3TA ( !ˀ @ ,&` aˠ "_ @ 0@  !P p"P       W      a W  PDTPSE@I@FPN0EPn@e  dPlm a0r-@et<@ei>a0r Pn@r @e mntPd'CutN a0r a0 ePnetPrPdWrig.ee0trnpenta0tvPpo knp.Q?9hS@rnp:0lsPdflP `ie poPl@ o@ `i@,lPf@ pP5fiewudntfao0e@ `ieE rrw i@igflPCo0e@ `ieE rrco0igflPQdt  0c ePnE@i@o]E rri `ieaeOee@ `ieTpP  `o  0omn@ i0tCmadMdP:  0c ePnmdP0  0rPa@eflPu-RPa@ `ie0A  n0e tflP@  @a sFTT,@FTt  prtP `ieP  PxtadsvP @eti rgnlflP  i@ Pdtc ePnmdP:`1-SPtdrPc@in @F   lcP 0ee0tmkPe3-Fn@ 0t igF@  ptsPlPc@e@ @00*e fTADATADATADATADATADATAetFP  `idnPx@ `6-Ps@ei a0tP u`fPe7-MvP e`toewr@ F  o`ergtoewr@`9-SPtdrPc@indw F0 e0e@ 0ee0aJR   e@ @ocmadmdP F0  @e`ieMc o@A `5-Ee0u@eMc o4u@ @'0 nclPmsy|attb0.1P4P6p80UK5?E rri `ieaeOee@ `ieOee@ `ieSr y 0antrPa@,flPs@iloePcSr y 0antrPa@,flPs@iloePcOee@ `ieE rri `ieaeo r,flP s@iloePclOqS 3iؔQD7r@qs00m6|qbEn0p`BH4t&͜ƍ7t@S& w œ :Aߘ 2T) 5E2r-iY`"?1*mRmv>CE"[W!ӆB/E&k @@̘A98(TFbzѱ l>4):owt"!P 5?(\R!fmii8 Eel1-%Ta Tk] y0DWv ^;' D'*OULfG?) 0 eyAf%N J|S<]hȨed$CiL.qYՓ9^^AMª^CYNiWx5/9`oV38lc $ SHfB~Fd"i Pd z'[N8VGĪ1#\6D#ظ,Agk+{e2dpkR|C t3 Z E7\\% ]k?- vsA(1@$΋@-|]1M'TkhҽiS[bQStۘ&_.!#翲 W\+(-1N9~$-iS9hv6yJ6hDk^.1GCwҝnϭ$en4+K>QW{{YWϙzEsLk8oj^\hlw/iK 0p xy}~&Ļ z lxz oeS{xfyF"`7\՛4g܀1E~jR 腎br r]95}Pѕ4/wK1e{WZ.!Ee471}4kT~w5d}Wm8p|ѷBFt@V 0.W\l4pY]3\2}DՃȓdЂ 88  7]'uÃi@@T3k3qs~9DN.z02~GN1ah(kX(Tᆤmtiw~,ahx(^xu臅X؇= _#ȇp[8q6lԈGCWm858hr8!M037#y舠ȉXsoňXCXxH@:H6@XBոn],cLJ)HC`c<ѱИHhH_߸F،~8y(x$萛H}ȑy$hx$KSPMF@:`1]09m,-YXI4P.׎iyH 5ux5 iu$95$e؏i;y5I:[Øm)C;<>y=cI@E):H)>X5NY"#;aI2[%^00*m  S2 $E(p;F~S0Maoٜ0)$q ƞOV: BHԇH᠈dџR@w5 "A $VR4R rRC2[q,JQ;4EǢ8M!!C7ĢQ.s,H?,Z9go5LAD48* w1DY SFqUCT,!t\k"1AO"1v0G!y2BDBsi'H|qZ :tB~%R JACp凛JBLTP1ШG;J%uצ:b 13n`Tb,r(/})J/ ~<.e<75%TRr4g {nI|U<Ӂ%\.؃* *NYAT~:N99 zi9; KۯKf e j+K &˖_ėKK+ $Kđc4c7PES4Kf⚅"F+tz$ycGc*˴lA/c:#'v(!FZW&s\K1]'#*U;2Dr>BL"|3c%\%yK3Q9q"j5";f.RAd롷#RTjڹ!G #[1$2œj$aɹ;&Y⥺,!HK$B"{Fûdh_wy۶ٽMrR4"{!hы$@cX#[;lkJW[vpkmBCKylqˎA!N[U[[p\Ep衑qLNsP4OWUC)Deg A,.U]g|\Rwl QC@INPR2cov1s*˅rI@3y>`LCJj4p`~w-Ҟ粯 %441A#L.>=ZMY}x=՟N^aehrs MZ]DRUTK8aגq$xJmCr~A0rȧrFNNsNLNωޡrT^Nom(1.dG;=,B.]N"AKdbnj^@@~^Ƹ\ƢrNgRGNRMۮPI<3 0o04PI3IGRF.BASCC6M :Fd 1`8@ '@PAf € Sp9#'LwAE7 Ƽq1tҬIe@@BG$ɐ)g Q'&y@y#0rȤ|'O gʸ)ӑNOǂ Aba:SMAKɤ1cX: i# mD7tj3ʗ]XY#G)ø)Xc2aӆl1aذ:'2Zɝ'cgMf2e8P:7wPMSDFl& pLkqؾN \D uݰTfUNVtUDEEӀ+%DSufēO @ԱDQGW)BcHeƆAabc&OQt) 6eRפsa`g̘oFIksb=9GСQtBu'V\ÝgaYWUorǐg9U*D)iլzY2iZZh&9!(Acl#8Ί2wPy"6MR2\:6w-km \ hpn8i[@Mvk(@b B;IĠBBwZe_9,qh@XhBЃL 07m啘l`o ~p"ps jP^!IpBJh`I0Xq[7 I(/"}&ƹ+;[dΔ4#KKF)5P)E9$ ܁:)a2S r f1e>sԼg~r-KK /ic0q+HB h:zT3yEAf?jժ8iNtxhǼO+ed-r D@h6'E!&*VF+4+4 *! t#6BR~GUu`)g-s˵ސ)'IV2UN5p~4#7iMljtND鷋m(EN`2Vӻ^!T/K`Z>/00*u fTADATADATADATADATADATAF~:S!VzGu@Z:,-遧 m }0Hh: h6m@>ӘQ!Jy~R;٥%E'c=!̆y@%@QD&z 035.♝_[B &/͞g eJ0J}Lb@n*&}(@񼗾 -d6H򻟓ҟrb7U*md[8y3POwq+qe50MXzT /QNh$XzuWww"1pazh!g@86M/s`3w x^MpC `Q9Q ORyA8D/xiӄ̖` &/us&aqG#=(/#$&cHAg(-gXV.>x}SXN-TGa7!R"ՁBW8*%~SvT|{c7$Q(9xHB؉~GWnI\3/w~ Wx*Y ` #1;7bdX:1G>kXC38w8h&b}`4 ( h0x|#&_EGp4 ps*py1Sh##ցUCP:a'4(=[eWf1s$y&V$7DF="DB!U=7lSn6_=k661`J>ACiEn2D6h003e"0xyt{% ==TnU2B30JL,@xWt+V2O~W5U#,`0kYV,Y2f9X g?3#1Gz7V2bYBd93?)jmx##=`ZŗZ1=_x22 }U@6z(`cZ9Bq3#5L~7}6!Ra(#0|9~9I1Ty{ٞ33') 4Bq_wYڗL YR0a)CpmX:&e5¢h!LYQs*z؆B{]9QPch j6KϧBQsI.J0z"(;xwUڟ6 KOBQzEj٧ÈjHG%- ^ymOrdlxJ7+N 'JEc)H#1<-Gg-;yW/hh_zVWu:|buX?Ӣo70/ R3aZ$nUtAtC3 k&Gllrj}EDsCjd <3KFo:iInh1125KwH7u3j|cF7 "z'M18'un;NQ" oЈ_i#AƁ99AAh%A)lN@F1UaF@3y80-N0V^nX{8,Zn !5sRRKhKk۶w9p#1N@afH^6r^6b;춤@RW=T"=DRKM09lp+ ]wT9(44QS #?;9|J+\Ea:g%Lρ! t;9S <<",YyF=O\k;̻(bЛӋlM3{+˛4O`Ka,X%KL>N6tꃭAPQBMs|=0V~뽀;yKwD+ .@ `$O> cJ" 0uRsjf5$R?#d,К(ccucƿ><” pjJ@%?Ɠ`\^6S,s<&qw pkJp0*d1-$Ŏdr3\bv\ !FИ0D.P@>7_:[D.F:#˨Fi+8 z@K W]8?.W7YP'GTek <6܍y'Ԕ 0fhim\ؒ}KYj e_Dž<ȀlT;ȇW[MkQR8y[ənɔ3jpo7o ! >4@k NvZh?過I:Q>Cn&B'NO¾j7gSTVw *65~!锳".%c0&[粃C 'w x?K)?иw$My~E0YGЌVlQR_,Sg?,Z,p1/Ob/OCPh<7j>~%Ѽcp1M1oH/`qd^f~-g%?EY?XPC8gΉ@_JoI/~/K/5._7.).pn~7r 5̳+\|=a̬Sq2 GɺqM"qr$r;ׅ E lRhȴ*xrJKH0Qa 9wԉh+ ?JGa̬SWsȠh=~]]Zlmga-؉L˪!Ulx8;Va|ρyd$؅c*w/7~gc櫀7n}T.9`qĬ^ ),˪5Xo[ h"qr [r-[a̬Ss]Bz (<<jsO3'|D/P5Q4sEisPI`D@<S`4X&0 a\읝8_ׅ E \+)p)IcŁ:uI1\L{eOp+`N1+@;0;MVMP_lLu\MP_Yp<hT'dE5NGl<|/0NGp@I8H`~q\MP_t(c<|/0NGp@IS`S+dEP@WO\M;5 6S+MVM^D00*}  ;YQX+MVM*0EP@v3hk餦3PNnz<40J37(tSY-S*@@(tS0(0XSpd71 B(@@/@)HS/@T7D`bIVa(*MVMP_lLurH`~qMVMP_t(ht+\MP_Yp<hT7E5NGYp<htZ\MDQD(\M-HMVM)B0|^DIS@E+(0EP(*dEP+ NIsDRS/@Iۀ;v{g9mL˪xJ9x^yxPǬSws8{:uz絛9ћxysIseSSrH`~qLpE]YnG6:G6{gY(40k$ln6n9m_ȆGZ&o.d&UP"O# #p^jw*{GR+x^%RQ4P.0lBfW*ajl^%RQ4#p^G/uuS,M>f OIyiq(f#t@HP puVQ+6n)̼*oS@ܚA,1&7JS@*.wj.iI1R!4Xa'b(<)lNMP_l\c@+٬-٬w݄U읝incqN 9I_ˢAj](<HPQd'IcLEvM9pIA+rr $y"^bMq{26I+^5sjK^HcIQH1Ngd~N uz Nt^IqBs܍uƃ3,tuS<60DhI3~K>Ia\)xL,ئ.b/6V*k6d7tInNngn6KtBa4_#'*tBӚպ 1(I[ap[bM(Qx$M"(AA'Iq|73moֿ' pBA=p!A=MN6_#έ G$D"A?*'`ϭI!EQ2  $=3Xvt {/|0Q&.bਲ਼/ez5V8dp4`RQAn?xI7nNngn6K4a33 o7%o!o%K1_#L@U3Ha P2  $=3E6skf+Ij~ $LS&,˪w+Q1IagMT -iIa4-eDΪ8;wgctk=fBMPLT -iI'`wT>s4-D"ڒ5sdf` s'A >GMT -ɕ;:Gn7-@%o1IRMT V;:Gf8-09a'A >GMT -yB;Ia9-0L>!pa^MT ;Ia srDΪ00-D"ڒV<8_O'T!-`2"%O!1X_PD"ʋ 7V+)p)k h~ðe6enS`UCl8^lQO3ړzF>6eV`PxQNzlS=5 mAX{"NP=lzlS65 mAXDP   u^1I>6e8f`hR9.5N5 mS8Nч(g6ef`(~^g6eiW6T">͌Zg6e_`(~^ l6f~g"~^ l^ NP~gU9gfTf<8_O'T=0OuX/l9ffA'-p69QI*R(1{fN5 m O+0k.H+P+0kZfwc.6Pi&xT3Hf6"Čgk~ Rl8fҖN7. i0CRc#QEPVR4Pi( .0>k:{sfdk~ MT pxA )wBm4.wCqU.Up'-p*O616#+^m/*шRPrO2oP&(6T.96Q/sGo`854BI4d@s37L=>Qqe#b1e0O @}yo'b;38 `.wc>Pp'Dp8o!e R&!a3 .U:-"S~%ӛG tviyvٗtyi)I)A)#Q pX%:2h .xVȼy'" M>w 0yp:yӗdC.2avY" 9 iocƄpX!3q'$}7Qa 9 ipww2Z$q4ʃq !>O~w}m `*FQp ~w}7Q!MjQp <6/~wf #2Ո&U(^_QqNY~w.!$3#a( 2Hvɐ }eQQ95_/#!ʲ6P 2*qFxP!KA-o-~w6!%}p =~pvr)\j#t@*#b33vB_S2 Pt/ς7ga-lRPyU'5* a$g7(0 SQP'M@WgJtu1wg礮}F@>x*xS!A'd!*wׁUap$PH'qw yCF @W}Y{!S&*,zAO t;Hd@v}o(`.#AguZal1Hv}p~8Dh;tuSL<*}T3f~wC#d3N(a+La4H^S591,O!jv+ *Vc4(+ 0a+8sM@E>q"$rLd>tE99k&TK$M4tD+K.P_K.P_}č[ٳP9 1N0.P_Ca88GX &EZ:Y &aXPE9 N0<ЈN0.P_eOGX &P{/0NGp@[,Y<И8^P{Op(Ba.)tt^[\<2N0.*R( /N0.u.P_CPeO(CP=|DZaX8P,(aXY.)p00* fTADATADATADATADATADATAT.P_Y.*PY.^rH`~q5NG/0NGp@V.P_t( )t&q.P_t(ataE5NG/0NGp@r^X &E.ZZ.&&aXPPEP$`X &P:@YEY &Ps^MBa.*PI!0OuBa.* H!Hv@C`/2*Ba.:@C4Y &P7&M&=MPBa.)9MPa=PPBa.)7P0B@.`2P*d./`IֱB@.=.-0GCS'DB@.)(PDD_DDY@v*sM@E>Gb2.)(@.`.6BGb2PX.`ϻP-PX.`.6B^-Q(&FwgK>չ(Q(&;ub=`H`0`;zM>b=`H000;M>40b=`Htu~qM8*r^'@%3 8I P.P_(.+X &P2ç6/d.)M(`tN{gfكP.nZ/.P_{-{*(0bP(Ba./ !0|/0.M(t2dXB7JF(i.`3 죬ef餦8)8p"Z23Qg3 7 *Pa~+As6+X;7j;ww)x㛌7u{JvɌvg)x㛌7u{?v'}ԗ>7:x_M'}ԗ3 62BX>(@aPMP*`#!+0qBnB40X>EaPX &P/d.)6)x1z h%A=}!4=@{>>(`IPP*)9؀f\$c!4=~$c!4Y<JdA,R89R`YXT!F-hh 0@0y2$" ,@Pt@ A )W|5'2!#)K0e\!#̩<}2CkI3Rz tҌ&5s@qC:mĔlҸ)xZCV)I1@PAR 6Nn2'RHSI2&= ~BI,§B琂[q^` LXva-kݡ,)XؚczyI{p( ˧祷^I|uw\A-^|)~UR @B݁ 7|Pg܄ ރځ(XC ]ehoapZ YH]x.ԠNz)K}(Z1x^ǨXI4CB܂CԚFT CBT=ذk)<]%J 5[SgZ Q:pmO,8䃩^9袓.4g̀R`a9[UL=E`Ӧ{Ꭻ_~&a!c 8gXFf%IYCd|YB庫D;Rܧ@LЎ P//ou# >h4L|C'& YTh@نTC <(a = Fu()j"ϊȿG'j"y (&HfVKɬDUUCQӹUWFB!@ "D3P U,(@^5&/FVtխ\$SKt(6i!e%rbb ɥL2a 0I OҎj*1[4J z޹.+|"̠*%Arku4rso8! h"#Fpa#8A#FAP"`HQǞ!\A;JBp1d̼ ШX=.(.@1]D 3RFr< o.)mn iX썒}HC8ɍWN4]D9@GС}$Jì 2\H-Û4 . w: aC2[Rg 2,:BRb f$$8N، 1@ARզ)i#ԺŎk/B*eBjW06&k{ۀvboF%UɁ3YIdž] ,PXqZhwc)ηS]}wWJm;6!cy[@$D8w]sFO` FB,n7~W` *#|^UnpӃ n!ǘp!CCL vpLa ?ҁ|]{.s^rǼ22' 汔G*Kax`V\h$OMcR.4;> oٴy>p|` rIx!9= eMkPGԫ5TnE-`[΁d-q߬aLi6}=$W20ړC|)Ӯ5ylyiR]^qw{nwͫoVg\0 w#j5YF]zl$Fֱǧ`Y^@'Y2X b$(|HxB@lGR( '(.޲ ) r0 >xA|@*AAhG槱eGE6)gBٱ&GJ ڞ }Mųd f'q6VLz'mBmKOь\(ͷ/\IIЇ^tue4@:PyAaCG6СC@04 W*Z7SLAǵpG͍aUf HA߄ojWfM Ʀ'Iy jpܪ`}RtUN ,,BQi`XdwYaP1 xVp!uQY@55F_i+W:Y,pD^6~lqFB 0i{&5Rs~kuBBuA :GA, g>WsVMANUSQ.HLPL y H.i )M7u°a& iH pȡ3ʙCg N0ʓ!,@" 8rq@0bxcĘ7nI* lҌY:`3rʔiG)e<a^{&@e(NLʤ)bN:Z!# >H :n-w"=)VXDЃk@B23Sc4v QS4aR- z芦Q ӹK!M9˘ SMܲŨA82$X OyIO^B-*SvNzF*w8Y|)J1DPd%A)d`idl QSbW 7 塔Dl uFLszsGYCa4ׇm1fdEM5TE~ZOcsPteʽc)W%QQ dBՖyUxDu;4G\ͶDbQRl,lyMRTde`OvXbwIFEUyUmefVa$(mד * Ge1DiAGBtO q<.w(a!k EB)')"TN3,!`+7cb!`99Xӟ$rdh"$5O<2'8 ~kSݚMaS 9}NWb[hV1ɺ~[` vZM!ɿ.0k6Mt rfYN3YE,/iGT/Xu3}⢎ Mn v At ĆaA Sp^^HrMt55jbTWߏzD 3 EriKt滌4.4G6D%F=3^ k~l)<:3A0jY9֋vuh2H9D"=z @R1+x;A,[U\|k;A&ﳚ!d B$_#ז.<< XA Fp0Y~qy& ޿b88 bI4KS9 $XlE VV@}/C %@RR 7pTYaQ5bk6B aN<5a<+4??qeTRQyu|AHCB#,2?.vaaBVPa+;l4y7[!U![ATU}|xZR*4?$( 4aY2":!?Qo0!B=xAFg)qGIF5-[PapBt薯yIcO?ts <HkR4Dok.c7עeol00* fTADATADATADATADATADATANP Aľ/41\ IƁj .Ele 5itZ\&Fɾ" T{S$YLuP)5GjLл.f&w#I.FʙbgOكuwjBgFρ$(Iz'1XOK)C 67K2۪DQK)9v§B]I1u @2@=qTC _K@A T`ћ U XT<)P C4Q$ $:!5]LUBeO:SoqE2,61OԹ.[t¶ mf%EN)@chBFUkgxjy"锣&2 }CEEE%(}6v)1tXمL"tF*yWm05aip|1 k[Nk4#WxF:m'9-vVL26`[h\j U]rWVk{b98 *_]:oAD=&ߢ521 \ZV=rm"\ (QL#.i.$A2IHDLqihԸ\riA,BA[%E%S RI@F1yC10ZzO8%~hKbC=sA (: Gd. aG28 ڋ!%Ym0\Dm2zw ͖ȜꕴC4 (͔9Ԡg>CJeǐ!W̕7V D>.'pLP:\s&9Iwe&MCʙX$y=)F#<{bJe2SRD.e=+fȧW%_sU7.mzDNdnfl (FR-L2LY"0IX D10B4880a+`c3BN3"Ôzf؄X1ARuТSA;OEY PO N$bBT96(#]8cmc1rٰGcO@@3AO?Q.0",CK.Z4@L(2@r J@%"F@,T1;a&xϛSbBSC( z, 1ĭx1A4,bH:X?ݮ3 ~h @%@1\3:T'=lssh"`1R^h&#A1x(@>q#2.&ذ5fdy0Erh,P' %qD"$s/:ICa@QxaD  @4¦2ͨ;F6# "`A;0@n1C$$U?\%:.b(1u|` W,pG3`9\RF(TT)MmVj.~Z5 NfC]:A`y0ٕlMo#pPq_5 P3Z4@Z2*V,?E1GFtHCd=hR頇@^_A[ , D2СpF"_G  !qccuHuQݟ݀$U)!Am*#.3⊑Ԁ4icYc2;f !b`@o œO7@8N@{ Śj'jf31< 8## œ\\͇ ,@C@edB]( @C4&=WQ/#.xlōnp8*C[ h _&"":E6hQ86E!^_D6 ^<M!{؇˲i|0k`2Ä4$")bt`BņMZ௎5iDzn8`Wb1:a ľKXoL;`Ӑ-;PNg deZRNԁhaauV &1`;# uԟψ!brЁACJYZ5 *HJ ;zjABQc :xjiޖ @ ]thh*wһOpfՐu`*>ف](600*  ( 0n9`xX_Lpx b*1[@D@!3 ¼mvjDx 1\@:bu 0h@<R4 ttPv;=S<p< Ia v`%eM 0^n@ SuxTAdL}@8l7 =KmKhpExB,B<胿 vЅNOS}7 nh3Qf⃃8#^tHJȄTҵU؇1jhmWw9aRi=H- *% e8,bP\GULv`@;ijJEpvd V|ZVtG91W\uD F " @rh~#63bXoeU>fDSI3P@'P_GBD2]kyY1)D&mҥy2}|sVG5,=GSjH1& }qqqC3P#Wrt 99 5E.YdG D=gUIy.]f GpZ*Q2x&ǔ6S >L6 2 @`9A0Ea=0@{|HhY=Y]U0𚠙iXJi6 9ׂIi^a 9КHyFř V|=:Ipϩ&hg i3@9)i0 O K6c542%S;(# CdA$#gh;8T@?3[I3b `ā%0[v 3CZPu@У* Q/Ց6YYju ?U3? HU \L[u@A\&0PlvG1/d0/] [6qZg7G iUZpZPm*W[RY yiYit_xm*P?1JpכtlPA)V1 ZB0P60g;J5Qح9!6 uB6 @ J* ~:Ҙf9 Dyqv'k QsipFGMǀWЛAt:o* Jj0A (ӪB0[hMЦ(=1p JJa~daaYyGf` MǕn%/698_+s${\xj P:@Q0Z%0Zu ӪXTF;C`JdK2,0aqTaWuZK H{[=M`+nK(q FXЗAT0Q'~PeH9c{GFO -t@\@Kۥx >ap<ՏYk]9[Zг(seKvpY1J}90hg of0bX c$̨Ip0e; :SG8 e!;cG0& &@~P] HćE;%#(%_uSA‡ Xw  0KJ(ľ/O&`c.!p$)a2croijU\h3KQBjssY&> ^WAlZ 1<#@ 05lGS%*в/?7gDlH^ 0~GCk,sLţW\A8 ^̇V^H2  UP:5u p0|uo\Vj$#]˫1'  yy~`SfpO nUxTxhg$#`,}J45c Su3,%kmϞw],|/2 ؠ2sE!>J 0 vE4 ;`\0A` I-3] P$7 JKD `է 4a\x@t##Ftq})z~R Q`i^nn` ԇv @03ܒ`Lf9kw\֖1mT1&4j7*8`;=A:HjK9p OjFZ2=P0Up< 3[? qJTc0&m5T:و /f0/gTi. xapNjYmiUI80n-Hepx4 dc֏Dg @$+;j0#$60ʀ1'.r.p3 >o.eP; ɾ0BrS>N `w0Gz<{ H = /e PI >^ a\LG ?{O4z@0 &D B6?z$:$ =OE/]0)_ B2g:_󫦗\^ @_Tdm"]Qe jx ܋uɇ l yI:P0@,Dl <"/8̶%3<@G S&%0ǏI yc0c̓hg:#%ht8I@ϳį$Ϗqu2 9n IQ:?:.h=o=0"}pKo =ZI$]Kh:}lgk'95qp uZ[ :o uދQ%>t@7&Z Q%>t t/Pp`4 ܯIr·WM%VqZ=j3" /g8>Mx\'fs%; cp=- S 0b4ؚ; `12 ~`2S]gBU $10H#pL}ؚ;*]$1sLqnmKe&I}s81 Av2 1 AvdUA-.Fl$3 a:ASlҥbO`-DU .`cOKWgOhA1PHE8s`9 h?VcO h?V vuVtuV|h82g$1sLq[ A?V[ cOKxL?VPpxhW`+ ;@X XDh8pқS~0::DIYK#`FNZ8`[%PDuu.]1q.D<܂+ ]HKPL[\80Q!1By FA2(3\Rs8k8à),UXXX Y6?" /G `FhKzIY2P2`1 Q51P6PBU%4ދI%P\`W7z$D=zruCzIut Y[ ]pmzқS~@[%Pt:tv00* fTADATADATADATADATADATA`4fNJ v@8p8su Trs]1q.D]e_˻]`:W6OAP ` 1X| '95T`SIt0R־[ÛHNJ Pl;מ'95T`SIt0 ־[ÛHNJ v@8v@8Pl2/Gc!0!!0!  XXX "ؐe\2or 9:M 0A8p8'95c1::`t0D}vM>7.ri~Pr-Kj1[%PuR- S^:F4mCܛ:dɹstkMC/fʩo;^` ܒ\Ó@8vz>DI 耍-u'95F#08>fKD.ҌorқS~: 08>ĀO(iĀz_ yYorқS~Ъv@:$~Ni *0~Q%c?8b J^8v{% h 3mK 1:JDsUA\$J1:IAj(ȋ0Л$%S:792FMKH2:`]%GDѠ1:I=t$ #ܯqqs#c $V%[r$tѠ1:I=\$AtFh:I 2:6hP`G h>`@o]INv4F,` p^ жc12:6hP`G `61l `GnO j K ?R0F@^0ɠ Av4F `P#c` B -3$- + ]OmG(c1>`P\1 NvF1>`@o~Fv؊v1 -"ČHVѰѠ HlG %_j`Ga Fu 3$v+ ]OmGG(c1>`P\1 NvF1>`@o~Fv1 }j 0ӯ" 1a  ڀv]VvDF `P?IrѢv@+(30 61P D`OO4 Mu?"`Oc>@A"V0*O0H0A6p8a (P (pW(0(qx puh`L& ;@X (X2OǾ}@D)@Mʡ;H?0Qx@@vkƚ XYAdxHv B>0Pԉp$2*S2(ciA(pҕE҅2AхGr`Шm>@r(#tv]-n-WJ~Eb}Y$](cJMk~ҕtDS$B:eAb<@2$H$H3VYt(0Qx<@2].]Khwm0`0p$Q⸃s".] ]7& ]: ! [ oL @p&'2eO w0P\ ۡ2 0`luh~  8GB&BS(-B^@܀C^ q?sLnK~YG"33  mG`rR %#ɠ ˂6@ Aa (3tP^(pVXbGa `V0b0|; u|&  a{+?@p ^`$7 8 mWoJKZ$ 5w0 HG B`a @% pO;$W A 0^ SO{s,b'e#$11Ҁ& v1(a u00E ˂ v0)Npˀ3  Ct yPkR>jP  a; K:h Ȱ|Hmg"[U o^  p0p0ӐM1 ˇv 0 #p7 Km;]FB1@1 #p7 KG w71s{|Hma J@s0/8j 4@\|Fܺ^*3[J Hx1nj z[Sc[8e>5\BN1~ jMnt`nrVܛ`CԐu xP0Pp+ uS@>Xi hg3\`B6H`BZ6C'DzO|8&tgE,6'DEp6(Dz?aÛ^8tP J @ܯ҈bشG?Nʰ0EsB 3 8aUp yS3 1Q3` yp e x0 ` ; r0+ Cuְ!    ְ  P&" rP+ Cu Sqz -|p> | ݷ< Q%D&8\11   `ѐ Ѡ OP`oo$V S\`P@i` PYU\?,``E@~NjP00 <T.D ]-O7kP PX 0J@FPXʰc01.B H1xp*%}P ZP<| DJN (@~`J1G`E|qC^|pSqzLOi48j2 <t{PJ£TvD@n_ 1 <7 <600*  2<8940As?%VVv0zuz <Z0$'EpPso0<>? Ps- Ps %0 a0 n`ai@ @e0o@e`rPeszPt 0a'мc e e%0UsuPeig W i@ee rӑn%0TR O  yce0k0u Pr o0i PsKdnP.pOP e"XrP PO` nipP  P! #5! %@  ` & p*` P\   ( p; HP[ Kp `   `%  @ vs qCnppPns@dnflP4a'мoe 0t@oPkie5cnP0O  p nPR  l0tPS@  ltP ATPp@1@ AT 0aPxFAPXFcmFCMFcm 0CM 0r@ygk$D  ku kU @nPlPU @nPl UL0 0204P6p8A C@E0 H "  p  `%QR  P,`rӸp0 32K`#H  %P G= H ["$s0  "p Ӏ! N F@P pPV0€ @ 3 0& G f0!%svK^ ! "` pX/@ @ -# $,Pce@ `iei0 0o rPp@ , ZERO.EXEC&M @Fm0 M a 3. U A~caPD(:xDL@u0WA6$+Kt`?z|XȈ>1M 'O4P7Kѩ5XdϪp h d 4-K@U=)abƎ!a-incF G6> L3&H߽rbc ( ώ?t(Iγ r[>\5\>ّNΞ]0;?oByQ~,H9] 300m%`FHHx0{a D3N.#jE 1`၊AG3$6&.rI(xtH0@=\ :(bb-"^PE3&ȱR]ތ0y#09B#3dG$K6d)Rijɥ|)c͔ pbp y.e+@NM8-i#@2P(<12 1@:M1.< Ӏ1s 6,@6 O 86$b$C3! `5p/ Q0d" A 1Oq/cQt@"`FN S& 0 8Cu H/|L@#L"CU#8"> <9̣ u?/-1?6 P, G,A{v%ѱ( x CC. R@> K$[L"(  7,3߁^x ?g|=8Zl8Sl60x=f_., P?7"ؠGqc{\Au v0:\  A0X`S`ʡ"&Ґ4DF0@y<2h ADCx8i":F,^! Q vvhb/ADE v_ 00* fTADATADATADATADATADATAC D)ð1@%ðX1}?a50!0Q¡xDL@u8 J@ѕ0h-IJ&RR; &\^>Vb yH0&Lѓaa. xqpJpR4F3Q(:юlt JCR>a)KgntMo[q)aM["|Dx1C[V$O:B&9tk 0DE(p@r1t}PQT,+!{`cSabU\U@:Je=kZ*"&p zڱx^"dRː*Lu* p?|9/a ,,BNa Or$:Ѐ> X iv!x1>ww+^O]TMe ]؊tH#{TM.v\1Q箃 )Ppғ [ MppA“L_$> aGx7F`Kb!V%[.1)TBd p"D-"h5(l 찎a(O 3<?FGqqA@ûn DOiN blԪq;8v'LPa2i\ip_< -fR$F4͔ C`{,ׁ {5efÉvgPY; =@G.js{侇P%ֈibEX6>`QP5p'Yీ g[O`뀀Ãl3w{tj{D ,94pfn #G>*Jc @7_D't e# 9(6)ွ: > + @6qxa٘=:4`>:`c>X.!HX 6 KL0?D`psocX K!4O (7R97w;EB`h,;ҽirK 7 p0v1) Pr p'vpƠKp d/du!RZwPс},8 0 @EPp  dZg0MXP ;Є*0 CЄA0cGb5MPpWMİ` 3Є0Psub؄0`qQM 8S0!Y@gY-сzsȀ3 ( FFgFUU  p-P2VWuU׸*p !pV6 6kCtb*g1d% h!=1G0 `G YK`Bh D&/D` )m{!@3Y"y DN+{:uC k Fu–ifAdHH n`lZyG'9BW/F8 qò{ؘ ڈݨA戎5莁CeKht>8x@/)G0   &@p9E )E 1D@В p~$`;FQ%\ՔOY JDJa <w0h:Gffu@dU  l8$VBLSW jE KR 12@#"6ψv7Zqt x0cոMAQ}Va10`=U :`9r ,Np.FF}0&D&03y<cFv0dTॏcs+v0hp jMĨ~}$cꩋ@acکuzf@ Vs\c !+D@@1DGj \K *!! RR#za hGW"IMH\N#! 1+4GWA$6,atp;P `b4Tgdž'YA))I͡w?V1%ٴAd)]G$Weڳqd@ H9Sp qpÎ"VJL2,dDP #`0霍630PV_+a cEX: kg);䴞5y "K#@" G"))l—y[ $ Gpl0"g :9rкƸihjQ=0}pVi( pQ# pk~iU,3SPh`JH kU\%E)3{u@DL¯uaْk&RiDZ1~"'HsZ(GZN Llt®\2\=0q e\ >; {G۰m5VLu"9@t0@ V{;x~F'd- Hya)uP\Y$07 19V۹@@.ٿ0H !p0˝)^{\ lt c ˧˧QSG)13[upYK/0/ ,KɜA"\M(CQ\ L۷#]+pDa+]0k=y9 ˺jVAW}= 3l XˏB$m^ǚKґҚIR0+4[-鰔^`,-9,E˿GaE|{a1\˷<|P$A@› \۴+5Ќi+ plE[6LB3.߆QR̎)P "ܩF(m*} N" `$˄8ᚾہ½ɾ*[-;ɒua']dӝd]L.K|k-3,XW9d- =A3N ے:pHC_= Rֱ͎֒s4 0pf~\PѬKbǂj1+v0ݎ ?.ˎ/<%A岜,iO LDEF:0@uHKpH<ެwH= =0[3+0)˞F\s|N燄n s;tyoQIljή:燄 j8 ~L;}sMJ%bfYlgDP/ʇ !O'ӥ [: aJ^Gq{>ܦJq1scˎc#i~Na/:wrːttV<*$4naTUK#C 0j4Ac{iql:YcI>YYPND\00*  1 M Itz`78k0 Ap0 jb$nN7F*F L$SbFsVԆ4ྭplp6`p)2"6-P_@ZM|  p 5rXt`"0A? J@@ݻ1`?װ) 3#0]PU$i8`K$ PRc>=K#5|sp00  0P-Fp 00@ .@ py*b07=ZX& {&` X<{0.=ZP0  :0js ۣX<<r<wF==ZPApB<w@X<Pw@ ZP2t` +C1t CkZP9 Cp=X<r0 ` ZP2r <t` ZP2r <r ZP9Sp=Xn5`׃PA@/<w ۣ_Yi _ǘ p Fp *!=[^f[^p@;p P tp@PFp *` ^`2cF=Z^fZ^p8Prw Fp=r=S Up 30C2jh=F00 9pVhjpk ys P "cؔeYYf 0 U ۣ^A :0 LS=Z[p :0 tSD`Wp{f^0 Vp_Àg~P 0t(xGnC$ x x`j x & pC0ŲݰsP pH `)1KYY`b` 0 b' yb@YYې 6bpp0`W dOrဗp p` _pV Q:`)L) s0Do { +,Ӏ%Gʇ {a{p WD`0pР! [Z_ w@W`R30) {  `t `  "{ap Fp`{ pV Q:`)L) s0 ʠx9Ґ @YY qP  j*rp `p Fѐd@1)  p p pvqӜ?^0 W`R-) y0,P;.  @9a4pC,Ѣ   3*Bs `)VJXY^0Y3MD`D`XY^ 0! p ɠ"D 1[Z_0 W`R-) y0,q F.  n b2w0{ $ Lp8 р*K р @  p@ 3M[Z_ !  p ɠ")y[Z_#5fY^`Q0ڒېb 8)Lq Рt"K 2 0Np {  b5 ?"Wp  D$r ЀCN / F` eY[^` p [^ !  X s[^P> 51)p p p  `QP60@} wpD5j@X^. À)b 0 W`a) b}| F.f  $pP;@@b РډU3 /X_0 P:@@b^;@@b H 0NRЀ0 dw)4 !4ڒ  0ڒ) @m$ð52ڒ 0ڒ) Rw耐ZRgJZÀW`R) . F@(Рt-  P3 IPɰ*R*RVZ WVZXY^"$ tʰ0@^g{ + 40  *  0:P@b#{E P WIP ` A#{E P WI@5˵ p{E P P WpIP@{Qu`J    0 B  * ̐ [Z_0 W`R) . F Р*{Q@(Р[Z_| I0 PP {Q W$PP  uA* `@ " uɐVA *  @u r˰ʰP$A \P p*:@ w0'r;@ wrp; A+ @  @ *C0 @ u0  pV Q:!)|l    @XY^HXРP0XY^0 I0 y0 +r0 -r0 /r0 1J@ @ @ *   &    ~t`+`{ W~tpP 8}Z @pR @N~@K /GpP ЧDZ +-PP  DZ ++P P @N (1GpR ЧDZ +/PP  DZ +-ytQ ++PP  0ZV@#5BWV/S-92s>(v 2ll>-B1ղyJ>$R-CtR-W `* KGm^0 ^F7f?R-7f?s0wcJ MX2mS@ @d.ղy200l|sGa @ >/S-W tP~tpP 8}Z @pR @N~@K00* + TADATADATADATADATADATA /GpP ЧDZ +-PP  DZ ++P P @N (1GpR ЧDZ +/PP  DZ +-ytQ ++PP  0ZV@#5BWV/S-92s>(v 2ll>-B1ղyJ>$R-CtR-W `* KGm^0 ^F7f?R-ǎPA :C@:`ՔU0ape zPr |U/a@ @rvP ubPf%0:cno@ pPn@Zw i@ee rfw i@ee rfg F`nteohmPmrȟCN/!NS@:*0ot o 0e h02@`$ P@@@.  >DvdP yZPreO`e fopeE rri `la@igPitP|* unpacker *5 fARC.EXE xw ARC51.COM(ARC51, version 1.07, created on 01/31/86 at 12:44:11 (C) COPYRIGHT 1986 by System Enhancement Associates; ALL RIGHTS RESERVED This program delivers the latest version of ARC, along with its documentation. Please wait while I unpack everything. $I couldn't find the unpacker! $I lost the unpacker! I know it's around here somewhere . . . $I have a bad name for the unpacker! $Too many open files, no handles left for me! $DOS won't let me create the unpacker! $I lost my handle on the unpacker! $Something went wrong! $I have no room to run the unpacker! $E !0F<tn<u@ !s*0@شJ!s; 7K!rL!`=t+=t#=t=t=t Y=tA !L!ARC.DOC`F 2 ( "$҉ R0H6e@3M;йN GX)#gN7n@pc›6m6,bH C@"%$T@ȁ LmĔ;QӴ )7tM4B#W\-c3=Ƥ6mw~kvk.ܜw,u3^8 I /W2̨oHGʰNSiciшRp0O!ՈR0äA)BNP!DT1IA ЄJͩ/WYb*#"3t iҔ$ {I HT00+  ŗ=JdnAB|0*nXE9*P01|j©  Y94t,ė.Ws7zO;{%,|̃\o>Zs,fٍf r(^.΂U-l7wsR+uA3h@a">TIFHz24;IWG>Yah\gFx1^-b7v_^F^ce1eak\e>QP.SCa-YX-@Zq>5A4]7?ux_E.4Xz"za6fzrxo4sS1z=UdkDYUt]USfIhED4DLC1 [A^lZ2؂8(12%&>g!Eblr,8~WEB1"0 7h"xHz wT~NHluD,*"cnuYUФn@6W/G)xGOfBsJWG1HmH IpFe1>w Z%`qBS%7mUexvjnVP7PUCmtap2~d of&7Tck01rMP|'ηDlM8%A0(0 qtS0IUQE":U\}]'c;M)VJz(AC1Cc3%Xs×69s 3$PGAux%awUьHUC7T&8x Vbj[kZMr]@DgxAy7W(0AO4ese,sO'blٚSᙖ(ۧN0)P̖nnp"eP#$F$O)bэ1Qg@Ւ'iNIt4@Z "CyF,)HIM9rǠ:8́[#D*;"pQT&*g"#?gwX1S'*D'Zpn~c zrp>Fnpx]s\p!fr7oI>HlCgT1Ye$"0nv+",!CB^!!A*`gHbZet!G-R6g;4yj@~"r}' DIwM0{-ǫ Xqw"qa$2$'W q"xi#{Qu'sau_:aEમiCљht't[˺'b ⪪WBvr2x"gqwt sYȥ(f#yD|߆$~h 88ڑUjTa)ע)~DY@7WtL!lD֛bRuZ5az"q ւ1q8FZwrLTk,VWe!;' a[JRoS"'!Z1QeyKZr}IFws9k@, {:!AD0Ѹe]qA"35!#}49f6qZ+u@X@,멥Q^S"TS_ VD@̳FLDdJ2TקvŬrA]٢Ag()R"U0UO"`kw]?3|bľJ)[拄ؐ6xEa TeQ@)½$7]wwBwɶHlud^'}OO#\Hv.`}$wC,ۿɁxS{*O{fLzT܋2}lU{|B(>;9ZnGlr8J)Cڝ!TTDTg`)"Y|*$d)EYEmЛR|y'.PDs},J TCg:S8TPF齁UK!Oarrx Arj.0f*6@NH2[o+hƹBjw "0U<,ʘ7hURrcJZNeP%AydVdΟMZQ# `tP#+S;kb>3n/I)3 Ÿ%B}w][Z}-9KE-v CdXVv9;Ji┦vmfiI45Skf!H]'iT=EqMdʝ☋-J-:?ACⳠZz'`L^Uuf~p1kc1jэy~:E"SitݴWVCOÊMG7=llz*עCyK'r?@}H% ɆgPͩ@<.c\Y!Y.nl( zDY"ݝq!Ҝe}ACуB<\l.ӓ,VyWɀZ\ ҳE@;Ѳ"&N\`ĴLD~:>|3&ٞ v8CId#t$6P͵yg>hYS"(U|y!dחivTON!ZIwAyjn+O+*~kڄ+<7c pEP= [+qSݚsY%E@4;[Xt;*(@" l,)=GܰuI94;͞HO˚eP7GRSЧ'!xSc&|h-gN)?l-ywջ ~XQWw2 ]}?#P*B:ur A>ދŏU ү~޺Jo\:`ʞCLdhwl$$&-dXeGSdү~޺Jo\:୫TN<DA R {I)IEPoBpD@D"+ N5JЪ\rlkۢTB3-wDZӸ.ߖl߬!1<knp$A{IћAHۓ+'o E@ {4@u \+r-( %YB+2ޢV@E+ ldI0c>ͤ}>U߬!B-fx¡NHvӐ}dKM̯߬!4׿;bȖQT$P'`v T]՛NР @q"=sLHsa7RR'"bO I1{320/ O I 5<1 MMM!@ *N P4`9M:CD"IЅIDzʢx"o"@Wg+Y?U/\3ᄙO.<銳Qޠaٶr!T2ܟv00+  TADATADATADATADATADATA*"@A:[ޤԸxl#9Y8ivG "?oPq/qAOaDM?!bxot$P'`v T]U ol@S03a0F BG D1pTم'4(O;s@p*EB'4(Oj5o/@/[̛3Sfx.+Y?U/~N#Px~unxpY%@DžCâ$N631,ah7$fPtIv>WC0!?DS Wiיrzkbep&MI4 OOeqI:K>?1{lll\I$IڔR(񾁍"Dj*B]Cm -1}>U߬!6`-ش._DOD*-1ӤbsZ]N)X߬!6`>@*)k:xnҞ t\t!R;m+ d]c>͸U1V_M`=.иS]ȜtJw]պ;ӏ}rb R.и .\ļSMY"xi-EAI$fYrpvn!tp%H"?t=xm+Y?U/Bc>ͮEj~.T~r"̀ZM`=.f"PM`=.ДCd3H)(U s=xn@~ZZy%fER@Hv9䃝2EDbi=$ S=TZU_a!LO Ao@ڋO}R9c& !-o EwbFq.}"5`1A*Q.&"ifRl utpѫNAHADbepE*Tt'Y+ ¢_IJkd tcuE)f}ff.J,'C4'W2EDb+QtO%vM]bepG)ȷ[nEm'_z@OY).S?Tn" :W%\yg@/L@DDS Z! ׊o>; 4?1xꂬm^f7JЪלrqgTrL˚IJkd<զKM̯߬!ڦ[~N`IHypA!AI D["=B{LwC+bF.eJeh'4hD>kuY72gdƟW*aAJ P[Ǝ|2::A92 TV:1Q2?|Oȋ.ȊmޥO%όYIJkd ('3d*8 ɿM-TeUqHSպͧ* O/SϵlI?}>U|үk!-J1);"c="c=aN#qD~y7,UTHW?u1I7b+Fm 4ӭw]^>YzgQi΢1wKZ \nQef(,%-+Dk !~*_pB\_z-O\[^&n7\YY$ߧxHAKC1k0hn& *w\i‘IOTx\ĉIdrd Y#1C(CB "ͫb}'o2Ί1׿ؙ0rire}oFc\)r!wwHo.JWz؇OgퟧgMIT-‘vՖ~`)SѻNC6:$$ĠU_1=Ti *2w`OW63ݺ!z|آ.@@gYdz1woFyxqUG$2֝\fGD(zM!aw9$$n*'f)0S$i!wvU \H$wPO|E&VAf;>{OT"J,fZ:j&F|IyGفYdO+f>}]%OqNT+rRcwBc$(B@IӥfNeO1{OZAd*8)Z](%>U/ش"p<,GNa廴bӻlںͫ|ZQ˾M{O *Q?TJwmJU&W,^cSa廴b+Pktl+K+xNCTUN>zkϗnpO(;~1ApE`UP ~փHB*-h4Ms{:nYrL7YBxX6jBsYCCO]Ynb 4d*.Spܽ;2H:erѥOYA \Y["}>U߼x#lyD;>|\?$IQQR('E&]ia00+  ! npLl ;N0RP@=DPC Yc=D5xc\T-ׁ) t\+r-z(pqT?q)¢q1g+G~޸UGU+ "6IUd$VDND!|DmtxꂬشևW,=%όt5xB+rQSA2n%DPBPSpRMȦ߼g ,ZQN)Ḻ1iܯN[AT1տ삛[ > qLwV!Y(Orvܬb먼E.(O nWA-O8lNhݘ$nqj"#֍I ΢f$VƖaeqE~:|:;3Lw),zhA2nE>:( %.`eDZg{Ip!A,9 TI5x7+D+ TaМYeOI)Xfx.(\p@ .r֑ljtbsDi֒)nқٜahLnU`2gQf{II'O+ Ta xlYO1CWG1DONaS]hG ._U yɱDj%/y'e BO]D5x}yA,46T PiU%Oaٮ.2oU ܾ8W&ai_O/'o'2gT~dbqc "עL;Vg۞NA2SEt6u-J_#/ӓ6䔗wtP5h.5dF)lYUv%EWɼPiVnblzoPOxn{l/]-!-MSVQPO T@X!-MSVQPO T`^nߒE;;>-$;׻ؔb+qDwZ$yNv:E*_ǐ[.S"xU]6AMFO0qO#:M0-|IQO޾6/M>1-2%1AȦ"@M.0VJ*'vuñ$:(AJx&w]X1n~HM\@\oA5BA~0tc׷&{ll/]s/&.AX&.aB 4A u#O8N&)V D6hTxw Wn"Jޜ.5C(."H!*ZR |ͲtDLEr23j * ZA@ҡ*Z"ʌcޠ*?0z4j6:0":ţ>MOt{*9*Y{ q!%tti":A:2!ƖY}5碣W$lP@(4]ň|O>\X',.HiJݝ3d*8-!n&IU3}ȬF)̯.2`-شN7Ԙ'>}~"IJݝl"pȆ-B<.2̓.2޺JDYoStAhaA1aZV" V+2޺Jc .IGn@|Fӻ!y%q9RIT\i䴗 kej/@P7銳A>XAܯN$պdE,}]"?]ݛ$r!1]of-9SҥǶ~DGlg[} 46YbAbZ7YCBY32!iR ԬDcj1_B*":ţ>MOt3r2TܟvT,VxꂬشNTٜ$*@Wl:U mںъMtܯN}Zy(Xbp":#-SUl/⭫V8Bt )ktz:Bo[#DŕFN{l /!i=xB! RC-q1[!q4gj#!o0m 0pUS|>[nRiϡ"*ޤT*/ v2\id">Omxf_l^sϡ"*T*/*'gH&|DtD*5A:Ղeh&1?*bq;yO^2ߴ/JSt6Lh}}\2*BuGs\*R- }gf~L~΀D:q:ugjRP770jw>m=P"Hs80m 0|"*KVBP!^nu'xP?YCuTDmAp jUnRi!^nRmrlYlIJ;S@٨U)&7kri lJ;CtvIyIR 69,1arStQl]j\.,ʦYh7G7!Y]Yg=8)Z]ك#Ÿk!-PW.!Xgrg@0%]zPzq!wI'ۖl>|AXR,frWmדg1]7K~؎1I-}U!Q_GlyOꍢ8k$BeA1dC#&1ԙbڜbq.vPֺ-'B4q;LMY{00+  TADATADATADATADATADATAO"Sj݉ĢM0m 0uj)U:B]ET$dr@G4߈H$`1*5Kxe{A uIY7WAq!w-E,8U"g>MFO0qOؕ׃I^#zu8stEOH"   RE"' A''ܙt7^v(GSM%$d]j\7g٘gz8]=n8_Sj}jz8]fo px@߻'Cʐӊ "ԃR !waQ Ip+y_"}wm>>$ܞy_$O&J^e޷&e+QvGadw:( ..и{V2l}PB·#QF!?g`T#F11>gQAj2T;8n#h@AJ vR-BM,!?r^#7E@# qa䃝23BQ C'VINy^sOUhሌ1u;*X&$Y0EЖQ C'VINy^sOi!#O|dF+;$Y0a4izAUNB;RSR%;'N$%Wr@mhPlYVPqO*XMvUZKvA BeAbi\:l]TxZAZ *i_ qafƎa3"iYd[BAd>o8RgDuI^ /Q{(G=2`/A1 Fb*krlY  T-}U( Pb|كDN?HTrF.qiZAtW,17r1ANc [NFv4i!"ԃ: yfiUQ,AM^$鋞en[AaQo9I~ULĀAXC&hj9Q Hf}blI}$?nRrvhP)?Z3"f BeQLR䷷Ji@|xS0N]EUAJ#4+pwct%a7K51ЧQOubq192 beheVllV3>7RPVi= IO Y@X}aIHRpCA~!i=CDub+A|S IC0!eA4bq!Խ&NbH"oyA|@?sb)G%bů@rrskDtFv@dg>C0!?u.3%Jbů@]38'gO&"EH+ gO7)a>M=Ef63O,aխ@{iA\$.E7kn>u,SfNnpOb໩LƘT^70ߦdFɆ 皫!֜381@OJ}C^T"JgDjhMhWIb?rl~,'ƖܟvA)24BnqjcC反•NߑfzLni֜IsTmxHɻpCA~!i= -iZ\i>WK~*_pBM>Cm[e>,OGA_pBd|>U+41Z؅_@}JT[1M%*EBC#K/C)"$7C[D^vX<%.C0{'^ v*%Knȅ+faxF丁Z]H"䕪qəq׸C"`3Rvv|uwR$h.5c)VTBrk;.Xw.ewNobbu' iy;(@|82_F,^fqP0R$-HMnZ#"y}C"!#X<%.#x见":r#˘}ZO2%l}}]ix8LJ棤PwH;}'g31PqlĄ:xN.م_!)YrRf!a JIqYэy˗QDO-f( ?Pw*x^[|8XB"i",ʺF.5brS[1T@b,1u+yP0q4|$=+.zL>i[Vigǁ(r:%aUI`aWm'S]*2GCtQ1՜WxNw#M)1EDDDj.gzW!zL vtp՜' ,JqnW!zL j.f;aQsN%"ЗGt6ԙ!4DU(#j!n"{I)k9H < Rj,/6Esᘄ| YnkH\﹍\$W(b@V'eQIOQvpR\#OHRq阽!n5%sBH cU(0I.w]F*FNmڐ-IKIDjS4IF.aw^8l\i!R%,:B6CTES`l&“"Z*ϝًaTuO(<r*OmiJ4:&}&Ewg$<0%54"ەx!~r%ݶ1c Ѕr*DQVAdK@Q9 6EӉ}'*{uPGfGO)W_5geY61lj5o/otpCA~!i= 6h]_gjS4k˕z*tGUuNep)IDpZH?A{.0Y8B'BĜX6MFO0qO#:B^#ׁWx-ɯxlFn)nA#xFvhn&5R*)8uϯThm>`!=҆Jn_v˝m"B{EwA:;VQx౻!N OjPUU֠-DtV2@N}x&罄 C&﹍ @NUQٜ$N!$j^sB,FXR]nO{'oY bjtAd,g]UBwx.D!ĖUsVA'_UdLs8H)HtL[iql7K]`ř.$'%C1kl,ݝui ~ƒGHtNER|MHޚGâs+d@N[r50FQ+@k_6A!f Y([,J8d7f`(].e.S2.6mDϑO`!_V顀=C00+  $/P~R5ع\s4*[Do>wPO2 x(SM>!֜kϗnpo8Ak9H < R#CDNc&e}ayAhM0T2'g;s)?uOvȩd1W=8P+yPeϯrwbiPUqaI)? Dr}=3yD%i1BqO5 :3VApaG1oBRH'4F-9&  DUEmRo' JE*4gq TU25%#o!@D4YtݝB%cj4VB%ciiuID@s@I&4eȀLn΀D9cФSI7ɔaSN$˴1ɦG#ICo܌)Y1T7oDD7,!PSg x2[N Ĺʤi˪nN#G TTqMRw "e7A #ӡ,IA.jlS2NgZUk:)A co<۔# RhlG1MH gǼi&1]kn° ֹ2uč~9DvQMFodp_s)w HPe㕧Qmqt DS$1D r7GSi1.$Qs]xi͆[qԑ[%EGedTxaIG$]owqZјY.ATfKfG}ݡM,5Qu|GG fFAc 'YF.a_We^ ܑI6M%1edR{@T. ! QoUG֙eh~ $aaS[qbIHAK؞ӎ4m1]IgvҡRp a~k.RnjWtFe٩G%F n;[hgF-;THhJԪzru`]kdRp`֬,xGq ڬRX(tuBr0:Y 5Y.-^AP|4"pD˙ˍԐ.TgLoYkwY,fS41+ASn976pAYFFNeLX^X(DghYEٹg^v$ڢܕ]V,\/t8H" c+|̗DlOKeS-YR0_Y3MY}t8 F;1俤,lV+_AtzcްoZcMQP3SPLScXCr 6wQ 3H3dç28$jD$F7kXMP '<*ipIBiCLDX(Eư,CS/ Ȁ728 Z#67!2_O)!aDQ$9_KD3DP_KoAUF|7ֱiʢ91Mn)&V2;e&zB¢͚HfBPTIQ΅&’"bZa4R2+ibp_t3oBN&'ydZK6"2Yx=4l:H O]36A)IS2bH ,Mh6H-CS|z*o).X[d7W2wQe3ATk*4W"uUݠ94 czHpD"I{]VPѢ P-ܠRtuҤ&@x8{I$RG2/P+^rp"1FLRU*&a XzB!Q4H{f3Mq>KMN=aeTd6[AWFּ]*\63ʴ -#̳|7P=,Sl KeN4ŨvX㮰]+䠤Hq(\/2gArImNYQCEv'ke$OV]'%'%L' :,lFCS7,'!103W:4G'k*ǂeۃ3Be*lwR|1|2go{cNH4-kkOpn%pw'=4Ft(qS5xc#OCQ528Cg,Ŗ?:Y8@҆*^&RpE'# "Bf4, 1Yt>/*4+N$PD-u~"0"YU1,OL:$;612%>h3#;Y!)QQWgQU7x&})BLQ;"gqOV+18P)/E5|*(sEHgWlMh4"!x72;H C43#DW#Rntkm  gK32qaea2Mu%9A~j™#d21pqPƁ7:b,f5uԵcbE#NHLO`Ƣ]єOy^ADuD4d%>2c,j6`^e(:QSb%YyrQA6tIA,k`}%A7b7KB>E\AXR8c5ʔd_ISq9h43!c 0y30qY%W2aaA#rQau+39"1X5?Cuu٦:HKQW#f4Rc>u12%ā9_'/a9!RQʔ)AH"-!2N!wBsMJrP~, MxJj$TmSP U @c#"@ O&|F#o2xeDVzegiol!P*7EGvreJH>D2V)LW0X[E{UC /B33&4+RIfY@ ~8V\L}44AYIWJjzmvUf8*jsq>:\<^ǜ =om$`>LκϾ]2\ | ՚ژ/o|r˴˘mٞZu7+ ת7,qh !%D䭜_o9-M^]a^754Q(kw kIW r1K.D/a.lqzW4W .dqe7MnpS@C̩@.^Fsq_=D[iS\^"'3yvjP^q;W>RZ` P7_=o۝Ϻ%ЅjW\ < R[1^p!3o(mpJppHJ~S6p޽E7;hfhtg=cQ{)pC[fMx;:Q؇i q2υR)n+~L\7@nN%q^\aל&y,1S^l=I垈#O\8&wtǕ/bop.33}Mfw#G<Գ`6$8DzrRG#;(`/q5Oa,*M~"%Z~KFI`/&"Yr^g9CKz @rp$| Y9^?N0(9Q/)N]LAz̼]F-x9Ԑ0 I3FMpr//o?sӊa( _pé"ՓN zwәѹ\Ar{=i P 2%g.ROVe6Tk&∞hID]=j4$ ? 1(!ŬVjM1pWx8O@qM޻n2)CC;0ySo?%$Wbq+g (V=7+-B rLmՎG$@r`V`2+^6f 0f4ޗ-:$n%%R:aN @q$ /F$6$g1$NAr 0CЕQ i $wlDNPD6ACg  E`ؗء77a" Z J[-.J`7@79A;a]gN#US.!v`5)? Jq6/5)-B .>;USB9(1vޭ %8rOmr6dP~8;$Em.GARC.EXE~E Q2ڭ~MZ@ d ݚVVWdU3F~|PTEVPJEP@EP6EP,EP"EPEDPEUPEPDPDPDPDPD+PD^PDwPDPDPDPD PDDPDyPxDPnDPdDPZD PPD.PFDTPPR* uFPR*FF;F}vF4WFPKPv4 MPPPPLZPPUPLv4vv uvPZP0H t*F tvPFPhP5BvFvBu vWu 3 vNu3"xvGuF@,v tFNQvSu &=vKu ()v-t v/uvP}PuAFF u P]AFFFtPFUtPFMtPFPFP FPFPFPtPFPFP$FPFP |wFPFP" aFPFP KFPPx@:P;MA``4````````J`/`.]Uv3FFFF~}Fv3FF;F|vF4FPT\PFPHF u1/PFPHF u:PFPHF uFHFFF3PvF4>Fv u03F00+  FFPv9VFFPv'VFvv$TFP4L@PGvVFPvFH4SFvVsT=rv v vvvvk FF t tF t5t t1FF t)vNF4.JvF4JvJvJ3FF3PPFF t  tvF4P>FF uv v vvvv FF t tF t5t t1FF t)vNF4VIvF4DIv9Iv0IF t  t P=]U3FFH;FF@FދF;F|vF4vF4L ~lvF4vvF4~F5FvVvF4vvF4~F5FvVFaFH3FFH;FvF@4vF4K uPvF4K uPvF4K uZPvF4K uovF4GvF4GFFދFH;F~7vF@4~F5vF@4~F5FNFPvF4J uPvF4J uZPvF4J u'vF4FvF4FNF u3]3FFH;F~KvF@4vF4WJ u#vF@4vF4P:F문P3FF;F})vv vF4vF4F6vV t$6vV|vv6636vVRPF tJ3FF;F}=vF4^Y t"  tvF4Pr:.F뻋F]U@3F*PvhJF u  tv-P.:.]vFPzN33҉F͉V3FՍvVvVv( uG6EBFV6vV  uFPFPH uIFF uF t5F;FrF;Fu%F;Fw3Pvv6C>v[Q]ÍFPFP=H }56vVvv66C6AFVIF t+" t vCP 9Pvv6=LF t3Pvv6=vP]Ë" t vZP83Pvv6t=&F t vP]Ë" t vqP86@FV6vV vV6v3Pvv6=6vV Pvv6<vO]UR* t6*PP7PPPAP3FF;F}3vˋVFvvF u6vV^  t{3FɉFF;F}3vF4FPz tFɍvˋVFŋF t vV"6vV vv66 s6vV  t vVk36vVe P" t<3FF;F}/vˋF uvF4P6.Fɋ]UPPFF uPP5" tvPPD6vv613P3RPv:6{>FV6v v6v3Pvv6:6v^ Pvtt 6:vMPpT t  tP P5.]U^33҉FVFVFV3FF;F}3vVFvv( t P'5$ t + P5F P 5$ t R P4` P4b P4$ t y P4 P4$ t P4 P43Pn F u6vV` u3FFF;F}3vF4FPy tFvVFŋF tH( u vVFVFV^Nʉ^NFV^Nʉ^NPvv68Bp6vV t^( u vV2FVFV^Nʉ^NFV^Nʉ^NPvv6783P ( u& PO3$ t P=3 P33vvvv P3 $ t P12 P1& P1P={{d3ҋv\LQSd3QSvtt I[YQSH[Y+RP PZ1vtt PG1dPFP[R4FH4v P1$ t6vt~ ~paPv~ ~F FP P0 P0]UVFP8F3FF;F|3vNjV\PvF48F uL/PvF48F u/:PvF48F uvF4vF@vVFh3PF u6vV00+  TADATADATADATADATADATA t|3FʼnFF;F}3vF4FP tFōvNjVFŋF tvvF4vVPvv6P4r%6vVF tv PvV\3P" t<3FF;F}/vNjF uvF4 P/.Fv*:]UF tv6i68* P.]vFP.C\PFP 7F u1/PFP6F u:PFP6F uFHFvPF@PB" tFP P`.  u PFPe>4 u4FFP P$. tM P.6gȸdP6PhL6PI66Yt 6Nu묍6Nu&FP5 P-Pvtt 6j2]øH PFP=4 u2  tFPK Pr-.Pvtt 6"2]v46(vtvt44E]U 3PP33RP616X5FV3P3RP616vV te6%5FV;V|u;FvFP] P,.5FP{ P,vV3P6' t. Pk,뉁>.} PW,">.u PC,6. P3,]U3FF u3]vU: t3]vHu  tP P+.v: u>FvHu+vvHP2D | ~v9 tL tP P*  t v PV+v9 t3]vH }P P* u3]Ê~:v PPFPHPFP; P*m P*P#>u.vPPvHvD TvDTvPPvgH3L]UvP=vP= u]vPPv4vD;0wvD;0u vD;2vvD0vD2]UFV FV tvvFP ׋]UF tvFP@=u P)]URF u P(3FF;F}3vˋVFvv P6vV u3FɉFF;F}3vF4FP.  tFɍvˋVFŋF t,Pvv6-" tFP P("6vVDvv66P36vVP" t<3FF;F}/vˋF uvF4 PF(.Fɋ]U PPF8 u%F tP P (P Po'F t$3 PP8 uP6 PD']U t 6?F u626066}? tb t>ZPAFZPPzB tZPPU P&ZPl PE'PF tP P&PP*B tPP Pw&]UF%NV^3Ӂ3]UWFvFvVV3%t v P&FvFv]UvAWFv3FFFFFvVV)3%t v PA&]UvD]Ut3F& t" t  P&* t6* PFP%FPP P/PFP5F3"33҉FV#%3'ovv/)vqFt!FVvvvFVvuFV#33҉#%3҉FVFVFV3P3RPv)'vD#%vDT3"#%;V~u;Fv#%;V~u;Fv#%;V~u;Fv( tFV+#%RPP$" t #Pt$3'#%v4Ftvv['vD#%vD TvDTFV;V~u;Fs|FV;Vqu;Fsj( tFV+FVRP-P#" t 4P#FVvD TvFtvvFV;VXu;FsQ( tFV+FVRP>PU#" t EPC#vv;vD T( tFV+FVRPQP#" t XP"FVvD TF t13P3RPv'v?Ftvv4vv+ vpFtvv vF t1vL:FP A t  tFPdP<"." t P&"]U"0"v)]Ë)x3"3]ø]ø+v-;)u>+}+ߋ+)-)]ø")]ø"]Ãtރtt=u{댸"-)]ø"+]øP ttȃu3 uً]Uv=Ftv6''#%F]UvFPP ]UvV7F tFFNFN t3]øOF3NFF/VPM/vVVH-%t3]øMP,@P](FMPv4F]U3FF;F}3gVF00+  vv\3PF u6JV u3eFF;F}EFPPvF4)PJP tegVF볋e t JVPYW6+$f 6JV  t JVW3Pi" t=3FF;F}0gF uvF4P.Fȋ]U6PvPP(P6P- uPFP 3P6Pw- uP6Pb- uP6PM- uPFP24  tvPPD.Pvtt 6"]Ë  t&:P6P/.4 t6P=PngP6PvP^P'P-4 u6PkP7" tvPPP9Fv464o5FP/v;v(6P&< t  t6PPA.]U,Z]UZ t+6Z u,ZFP6ZZZ3Ћ‹]ËF]Ë]Uvh1v_1v t v.uv tzv.tovPvZ;tTv?tIv*t3]Ëv tv.tFv tv.tF FFgv tv.uFv tv.uFv u v t?vPvZ;t%v?tv*t3]ø]FF뭸]U3FF;F}o\PvF4#F u6/PvF4#F u:PvF4#FF tF@vVF뉋]Urutu'')rutu|WuvPvuxuRP3RPw%XZFVu uFVFVRP6tu6ru1XZFV-vuxuRPrutuRP3RP8XZRP1XZFVFV;%|u;#vFV#%933҉#%P,NP6d/"!vP]UpuF`uFduF~}FVЉVfv[v#‹V^Rv# ‹vF+FV+ЉV+FVV~|FvFVVnF tFv`upu`u;puuEduF`uFvuxuʉvuxuvvFP+NF u3pu;bu >!>pu~AduF`uFvuxuʉvuxuFN tvvFP3pu! t `uHbu3!&`u>`u u Pbu`uHbuTPpu[Fvuxuʉvuxu>pu~FN tvvFP 3pu]UduF>! j;l| ;bu;bu~&`u>`u u Pbu`uHbu>!~ `uHbu3!3ll;`u}#v'FtFdu6llӁ>l]3jl`u+‰ljF`uFFVЉVfvF%VF+FV+ЉV+FF~|$vF%VV ЉVFnv%[v#‹VV ЉV`ujF]U3pu3҉vuxu3!3҉#%3҉rutu'3҉') `uHbuP,NP6d `uv P ]U tgF%zu3/+-+-)us"/3RP6-6+-XZ+-ʸ+//3]ÁrutuF%3RP 3RP3XZRPzu3[Yʉ+-F%/3zuF6dFT;-u;+u|uFzu]Ë6dFT us|+FF~uFFV+ЉV}F6dFT;-u;+u|uFzu]Ë6dFT|u vv6zu0F%zu;P}0|uV+-6d^Trutu;)|u;'r v]Uv6zuvPvuxu]U voF t PvP `u3! `uHbuF~|#36fVF%6hvNָv<FF~u]vFPJFvF~uCF~|36fVN!vFuFFF;|FvFFF~|&6hv%vF6fFFӋ6hv%FvFvNv0PnV;wF;P}$F6fVF6hvF@FF]UF0F 3҉FVvvvv+*XZFVRP3RPDXZ%1ҋ]U:F0F%]U`FDF tFFF]UF0Pv61փF`F uF]vFe%F`PF^vv tFF=u 3F`FF׋FP`FXDF]Ë]UF0Pv61փF tT`PF^vvD;FuF%vT;uF]ËvD u]ËvDF륋]U3P`P`P"3F~00+  TADATADATADATADATADATAsvPF\]U`PSvvZ^vv3vDFvDFvD]U>\uavj Fu]ÁfvM \u]Á&\F%\‰F&\6v Fu]Áf\%FF\F]UF6^^^=| P^]U>^~^^%]ø]Ë]UF t 31313^Q37]U7 t/37v9`9D%;]Ë^ tvzFFu]ø`PF^vv u#9F`PF^v6;vDt,vD0PvDF`PF^vɋvD%;P3 t6;693F9]U3F~}R3=V3=VD=VD=VDF3F~}33ҾMċ^TFߋ]U~uF=V‰FtvMċFT]U33҉FVP3҉FvFPF[3F3F}C= t(3=DVFvPvP 6E3P,u`3SȉQȉ}=GRPMċt4#XZ^Nʉ^N뻸3RPFVRP"XZFV>E}3EF^Nʉ^NFV]U3FFF~}:F+F=V;vF=FVЉVF뿋F@F3F3F~}==FF;Fs ~tF=VFF뼊F%tT~~,3F~} FP=F[3Fً]UPF[F~|FHPvv N]UF@FvFFF;F}F;F}&vF@4vF4] tFvF4vA t6vFvVFvVvvv`]U=F=F;v]þ=F=F;u+=F=FE;D~]3]U F~vFvNFvFHP3PvvF=V‰FFFvFvDFvD=F=Vv=Ft=Ft+@vDFHP3Pv+vE]UF;F~FF]U3F~}3GVF]U=FDF=FDF~uG~u@FGVKĺ+^#¾I‹V~~3]Á~t0VЋK#ЉKvF@P\u]Á~t.VK ЉKvF@P'u]3]UvF0PvFP]U >E}3EFvv3FEFF;F}{=FDF=FDF~}F@E+FF~}F@E+FFvv;vv/FN}F]U3FFS;F|D~uF]ËUȺ+VV ЉVFUȋUȋF)SȋF%]Á>S~UȺ+VV ЉVS)F>Qu3Sȁ~uF]vQȃuQȾI‹QUȾGQS/UvLFVvFtvvFV׋FV]U3YȋvD T[ȉ]3WQAv=Ftvvv9vFtvvyvPvFtvvN3PSvFtvv3P(vTFtvvPv(Ftvvkvv]  tvPPl&Pb.Pvtt v]PzA@@A5A`AAAAvD;Yt#  tvPOP.]3]UFP6YۃYvFP ً]UWvF0=u WvF%_P]ÊF%tNF%tv6_ vPy3Wȋ]6WȸqP t t]U[ȋ] u]Á[]vP]UvPvZ Ћ‹]Ucaveȁ>e|>e| P(==3FF;e}Avv=VvX=VF붋]U3F~}aȋaȃ~Avcȃu]3aȾ=F#c‹F/=FRcȋcZ#‹FvF@؉F~uFF]U츮P6kvVv6kPRPP6ktP]Uvv4v 00+  FvЉ3v4]UvVvvV*EPC]UvVv6iPRP#]UvVvvaPRP]Uv%utv0%tAFFFv%tv0%tF+F3PvvvփFF$FFv0-tȉF tFv%F~0uF Fv0*uv F FF53Fv0P  t FvF0‰FЋv0.tȉF tXFv0*uv F FF53Fv0P  t FvF0‰F3Fv0P!ltȉF tFv0FF FFFF uBv0As t t!v0Zv t t1FF t!F FvFTFVFF ,~}v F FVv F 3҉FVv荆dPvvgF udFFV usFv FF t>F@;Fv5F@PFF@+FPvT 0PF@+FPvF@FF@PFF+F@PFF+FP .vV+VdFP FF FvF4vVFFF F tF;FsFF3FcF F FF3FKFFF3F8P/ csdDxXuUoObB.IIHeGeG]G]GUGUGMGMGEGEGF u^F;FvVF t/v0-u#~0uPFFPvvփNNFN;FvPvVvvփF;FvF)F3FvvvvփF t&F tFN tPvVvvփF]Uvub$ t V.=tJF VN<t <t<t7ڋDDʋӰB\!3ɉLLLI#ى\ A+ˉL ]DxD @Ћ]UF0Pve]UX uP PW PFFvF%FFN t$v0 t v0 u3vF3vFFFvF%@FFN tvPPmȉgȸ6gȉ6gȉD6gȉD 36gȉD6gȉDDFFvVV5F%t:PP_oȉiȸ6iȉ6iȉD6iȉD6iȉD EFFvVVPP oȉiȸ6iȉ6iȉD3RP6i&RPXZ6iȉD 6i+D 6iȉD F6iȉD6iȉDPPqȉkȸ6kȉ6kȉD6kȉD 6kȉD6kȉD~ |PPPYPvFPv訲Ph ]U؎~NF]UvYF t3PvvP PPF]UF0Pva]UP33RPvW]U3PRPviv~3vF0:u&3F~}vF%vVF߸F\Pv u/Pv tu3Fv0\t8v0/t,~A} FF}v%vVFF뼋v0/u v%\vVFFiCFv%t-v0.t!~K}v%vVFFɸLFv%t!~P}v%vVFFՋ]U\PvFPv|3vv%tF\Pvnv%tF\PvKv%tFC\CPv(v%tFL\LPvF]UPRQFV N v FV YZX]U3FF;Fs+vvv P=;FuFVЉVF͋F]_ȎX& A&5؎UFFv;tP PPȉFFv4v tF;FvFFFFދF;Ftv4~5Fv;Ft4FVvT;u!vDvDvDv4~5 FFFFF t2FVvT;uvDvDvDv4~5VvT;uF3v]_Ȏ[&+&;]r&aU؎v~N;rNO]UߎNj~33I-+]UF00s t tF09v t t1]U^OWw Gww [!S^ OWw GG GX]Uv sD拜m t8u3 uNvt/2QVSP3=t^YF]øPPzPG +G;+ȑPS@O W_![r];uSY2W;|J#+PS@_![r8;u.Y O 'GGG GG F]GwG@]À u&'tSPPPS=t[ Uv%tvDvD0u]Ëv~E;Dt3]øDFvDFvVV6%t@v ЉF%ȋF%t5]UfV!]UߎNj~33Iы~vtututH@]U4,PF3Fvv%uFFv%t$v0Pvv%Z;uFFҋv%uwvFFPm0=u`FFvFFPP%t00+%  TADATADATADATADATADATAF+FPF t(FFvFFP%vF%tދF]vFFP%u3]U3FF3Fv%uvF0[FߋF uFNˋF uFF uFN몋F%tN F%tN u+tـatwtrtbtFK3PFFPvF~u~u>t,PFFPvFKttt~u~tP33RPv ~tmȋF4Ƌ]3] !P،&;v+߁;sǾ;s+;r;vߋ+=v+Y׋3UQW0! u2[t[X+؉J!s +ۋPÿ+3)P$U7FvVVF%]UFv {~H^`^V^VA%t `=@sv|}%}P|Pv|PzP|P fVC3n|pjrPF t%3PjnVjv FvF]U3F~ }mȋF4 t v Fv ]UF^' t;~ twF@GO;O }P]tS P=t ^ˀ t'tcSPPPS=tP[ 떃u w!S@OW_![r%;u3GGG GG 'ߋF]GwG@]UߎNj~33Iыv~tF]UFFv%t-v0arv0zwvЈFɋF]UFA|FZ PZFˆFF]UF+3ҋ]U*3FVփ!V~ |FVusFFV؃FVn3RPF RPvvXZ؃RPXZ%NvF ؙRPvvXZFV uYFVFVn3RPF 3RPvv~XZRPXZ%NvF RPvvMXZFV uF t -NvFփ!+F3҉F@PvvF]Ët T\DU3FF@%FF uovDFvV+ЉV6ȉvF tvD;Fs v4vF t%F;FtvFPFPFFv F tRF;FsFFF tF;FtvvFP6F;Fv3PF+FPFFPF]P2 PPPSQRVUWFVv~u y ؃ y ރS 3SN;w r;w+@N^Yt tu t؃FV_]^ZY[XU3Fv% tv uF3mȋ~U>FvDFvvVV%tF%ȸ]ËF]UPRF fF FfF FfFV ZX]Uv ЉFvDF]U*3FFvuHv0:u93Fց~}vv֊0PvvֈF3vFFFF u#t)FFF;sFFFFFF=V‰F3FFFvVvVVM%tFFFFDFvVV%%tF%t]F%t3DFFFF% FvVV%tF F%tF%tFFF3F܁~ }mȋF4 uF~ tiPFރPF uOF@%vFދvDvD FvDF܋vDFmȋVF܋]ËF%ȋF t v-F t&>FFFvVV%t F%ȋF t v]UvV&FFVFFFFFvVV%t]3]Uv% t vEFvDFvVVP%t@v Љ(FF>FvVV&%t @v Љv%@t3]UFa|FzPZFˆFF]UV u3]ÍvV%FFvJ t&vF0:uv0PA%FPk%FPFPFAvGFFvVV>%t3]ÍFP@PF u3]ÍFPvF]U^u% u,G;G}5w@2G<tQ< tX]À'G2]S=t^S?O W_![rK=tGGG GG tO.tuSl=t'< tO 끀@G]UvD]U u]ÍvVFF;FvVV%t]3]U3FF;Fs] [ . . .] Where: a = add files to archive m = move files to archive u = update files in archive f = freshen files in archive d = delete files from archive x,e = extract files from archive r = run files from archive p = copy files from archive to standard output l = list files in archive v = verbose listing of files in archive t = test archive integrity c = convert entry to new packing method b = retain backup copy of archive s = suppress compression (store only) w = suppress warning messages n = suppress notes and comments g = Encrypt/decrypt archive entry Please refer to the program documentation for complete instructions. ARCTEMPTEMP.ARC.$$$.BAKAMUFDXEPLVTCRCannot mix %c and %c%c is an unknown commandI have nothing to do!I don't know how to do %c yet!*.*No files match: %s No files were added. Duplicate filenames: %s %sCannot unsave %s rbCannot read file: %s Updating file: %-12s Adding file: %-12s Adding file: %-12s %s$ARCTEMP.CVT$ARCTEMP.CVTFile not found: %s wrbUnable to create temporary file %sConverting file: %-12s reading, Cannot unsave %s Name Length Stowage SF Size now Date Time CRC ============ ======== ======== ==== ======== ========= ====== ==== ==== ======== ==== ======== Total %6ld %8ld %3ld%% %8ld File not found: %s JanFebMarAprMayJunJulAugSepOctNovDec%-12s %8ld -- Packed SqueezedcrunchedCrunchedUnknown! %3d%% %8ld %2d %3s %02d %2d:%02d%c %04x File not found: %s Extracting file: %s rbWARNING: File %s already exists! Overwrite it (y/n)? %s not extracted. wbCannot create %s Archive truncated in file %s Testing file: %-12s okay No errors detected One error detected %d errors detected An entry in %s has a bad h00+5 ,< TADATADATADATADATADATAeader.%s is not an archive %d bytes skipped. Invalid header in archive %sI don't know how to handle file %s in archive %s I think you need a newer version of ARC. Write fail (disk full?)You must tell me which files to delete!Deleting file: %s File not found: %s rbCreating new archive: %s Cannot read archive: %swbCannot create archive copy: %sCannot rename %s to %sKeeping backup archive: %s Cannot delete old archive: %sCannot rename %s to %sGet timestamp fail (%d) Set timestamp fail (%d) analyzing, %s$ARCTEMP.CRN$ARCTEMP.CRNwrb(%ld) storing, (%ld) packing, (%ld) squeezing, (%ld) crunching, Cannot delete temporary file %s done. Bug - bad ncr state .*File not found: %s $ARCTEMP$ARCTEMP.BASBASICA $ARCTEMP$ARCTEMP.BAT$ARCTEMP.COM$ARCTEMP.EXE$ARCTEMPFile %s is not a .BAS, .BAT, .COM, or .EXE rbTemporary file %s already exists$ARCTEMPwrbUnable to create temporary file %sInvoking file: %s Cannot unsave temporary file %s File packed with %d bits, I can only handle %dStack overflow I don't know how to unpack file %s I think you need a newer version of ARC WARNING: File %s fails CRC check Bad NCR unpacking state (%d)File has an invalid decode tree ABORT:- NEEDS DOS 2.0$ TOO MANY ARGScALLOC$FREE$WRITE NO CORE$C COMSPEC :\ $READ' + / 3 7 ; ? C G K O S @AAŁ@ Aρ@ ʁ@  AAہ@ށ@Aԁ@AAс@01A3@26@754A<@=?>A:;A9@8(@)+*A./A-@,$%A'@&"@#! A`aAc@bf@gedAl@monAjkAi@hx@y{zA~A}@|tuAw@vr@sqpAP@QSRAVWAU@T\]A_@^Z@[YXAHIAK@JN@OMLAD@EGFABCAA@@?`|u`0123456789ABCDEFARC.TXTl? lm "eHf0MAA*t'!$I .b\Ő <EJ#HG 8lĔAdܦۏnjjne X&8RIQ*(6P|r(l m1gҋ ]s†o`gk&^Y¡ۨr0樰h!UF%͡KƖm`~;&gFFa:z#6_hix8 H7R oL$ [t([Y\F QTŌs%uf}F_R /8:o] (;!FUZ]y~v{!kX*nu,r뭇oAx+klKP;Xy a=\SLffn=hVa6襕_WZzգFSP`y(.\ himTVC}fbʊ$CRQG%TSOE5UWV]}Q2P;eeG6pIENPB@0`IRS%A S_rfPQCdpUA֕"N7\VU0574z;:CTҠ*Q+ж$A 6'1F./]%7`c-P2V192Fv=hf ]|}tȓtvv3P(vTFtvvPv(Ftvvkvv]  tvPPl&Pb.Pvtt v]PzA@@A5A`AAAAvD;Yt#  tvPOP.]3]UFP6YۃYvFP ً]UWvF0=u WvF%_P]ÊF%tNF%tv6_ vPy3Wȋ]6WȸqP t t]U[ȋ] EXECIT.ASM IINCOR.ASM IMASK.ASM INDEX.ASM LIBUNP.BAT  PCRIM.ODLR  SDATE.ASMSWRT.ASM TTYIN.ASM USRCMD.F32 USRCMD.F33 USRCMD.FOR UVTGEN.FOR00-=  FIG351.TXT4 wXi|"-{_ҫGϱ|z" $ =|}0"A|"!.Y [z 8+moX0't$@y 1y"e 0q_wI7=DYb@TèAG;[uu~]Q _}%xcj{6+0z:S7u:zRwK:m+ot#Kd[O\#2Z˸W7FfYߘzdLEaTUBY*,Q,1k ŢFXOu.z"ɺREX-B HY-zQ@w>uT| | >Qj4[44[ |H qG;> 뮬cdRťs!%N|M^u{ tgϫ6 Jw#;z̽ThHd/64 NhI"I!tAʺlrn__넶^3cڔ4KM0>^m ,0 ~{ V*=*[~1dmkgN+.e9>ݟ۶f CNRØ9ȥN b6 Q%9ȝ˰3|Ü3DQ !X 9  5h%nFܶj~ZhԦZ{]F1CVZ֩V5DRC鿙唆ԶYP3_2p zmj=<{A$$Ev i>HV!YPY2ܻs*eu A$} χ5ks-k7"?B=12)M5 FU@JdQ Afpm0jK^!S425T\w$B݁UE!jٜFUa +-_ߴRFຆڄbDZ;xb*UϤ]=ڜfPFՂS!?^ +5gNVS܊(fxHhB+޻l咄hzȽ?8 o+UJBqG]wSђsoY$J> VXf38i7} GvSAVAB˶d: AJB"5Lv#ߴ=E P}bRysFĨg$ Aޝް! &@quַv%*GG_3N7ϝ{RبGN A)lK|:k+B󈐑j|)MY#~8IkQxQɜR RIMDOC.DOC%4 X)۶ ! GϱJi( r|Qe ě|Z>)i0"A`ı%Z|ҧq=]4X"|a%%+%900-E < TADATADATADATADATADATAR+V+r!@ YiR z|ԷωKϑje  -țrDҢg#+-KY|ޖ|K j5ri.l_c53-O Wϕ=edSE)YX\ gϑ3K|rƩc^IY4Qk 8 !YYR o衙$yb܉e|찈G8IFk6q|QϦy_|R԰!ɉi嚩'}hg>nkN|p,|gR GV̙dc`J|<ʩ6t4(UErR|" e $x||=[o4K+|ыCn |ăK<<,RԶ Ԧ&Ӑ9VOV`*M8e]#}İ; ZO| ܿ"E/(* t c!`=VL= H!i N$ KgJc_6F@4嘞'O4Iyj`NISA0=Wx!f~~W~ԱPNXpc a6xE!kIRFpN HV h-I޺FѿjPEjRv^R S㓄':лԹyYs % KcXa"rAqkgWA}G&Bʂ"M5漋*Nn5JfyQ Q=ry"*GϝsZNXN67毋mUr;r]ب!i!SN3[c&YKҦۻ m[4 }*I(4Xț=%4Q?p԰S-YnsZ;Zj#,`YȜ rKa<=ho K_ c mdk+l=nлkkٙ핒ȗK0*ܡ**ITmfO쓄x=-F0^Ena6hoUx@ W2.<%4he{& SH?mK3ޭ-K嫤*I y+?`޿ * k:IR* $ ˥Y+kF4xmIḽfK 7nźieE>H]>l:h-:$VaegRt@J챺]d;MEԾG G>Ä&Tij/lg*Ckh>W[!eǫ #VUב{VF9 |]G3gP$<UU={9 )8L׆ʰ>@ @n Ktxk}KErT]>k3^JXNK8$W>rZJa$~d#SҁN5nmU}ދ cc쑝𖰍&[u/]K$f9k)U%|[HJe%H_=ƻy usd7Qj[gT ,f=/A+4X&[drKy=M-|7ce|8eV>?_8)0Ѐٜ T [.Y8/4l$΍!%rQBi5屨TH7SAUԲUXa+Tc/|! AxAx8k^ԄP -O| `OT !\ )xh'DmH.Qiia>˼Q+:̪^"3|fnӺQ̙ο^ЖG;puQU)jCфs +LY>I}A#!L~?@*d!JVJ˥/{/Bn'-/^<îQ2"m&an҅.Κ+ JlMNA: ^#}Kdmw>iKjCA(Fy ҵI [ f9 Ъޡ.x6;2a a/ުRyBu8>F<=!R""nhl"hJ H0FюFusxD` d* jnr E6/}`c7며R$nKӴ_u}T]!kA&H~T<*QJkdcVd"eV-PFP lŢ*ZGhfLYz[֝r G1̊L٫=XNn|ӿM6ΰCKP@Z>TрRg $ˡ]Q؜FպyhJ@*JIH6w;s և;TWF2Yzƫ*Q i{D#1TȖHtes1Fp nG> I"#4Oeɩ_+ ߎG4!1BWi9] P AHN$j!Q}iJF9ݭ*[Gv{L{->{OH"oe1Puz+iuMO(>sK2J!R;j]l+Vd6|bZR;IVY•KMG,mwQ.O-jcfʶ,V|*KCL;s<$۽M?c @$p 2BUn olG6p>JEY@\]ϞIHH#[1rQ(*ǰb8ܔ05%zU*&7w%P*"=(.sbF; !kdJpXB'+xPڪmB[ \0SnN [HC~G]%{? 񀏟_l^g}>4-PcLG;q~J[\u( q&!~2O*MLq|grrerk5Bfp/>QR6[:p*D;@Vk׶)),DBmfmQ_un"`T 7}4S4hǥ|O>,H1B}`nFU>!|yq24Q~,V+#Zך.?-2=!#tW+5セ i6x^1t A &g V6B~̼d/*oS!)!R^B|W K=o6}_TJ4{c~,KtƎ`DA !ˁ9H*JB1sE̺3 8Q}fD0!iPW <^?-.s<]L 51QdvYD,)ީiȪI85 ýdTb7I!_t&J܇z+  nac>_HS߿j0':y^bxtF4 K2fR;LJSh$`Mc|OS4T* bYrk[ ХA؆-{' (2% (?=lS~[ii3E)Dg.{ $)K2#=wѶNbg! hMB`MK̨_po+ QB!1w00-M  TBKvy Ż-d ^:Ii N13!5i#ZP7,}ڡ aNh찋Db=߀BHdt )WGRdj$UZZYYF0*IL0 bY"zD5Z׾4]BShHR5_:[⠖$E*V%&t_ĸ4xPe^LsߒR!Y1PV}XjɜQ|]0NR5 3 C̣w  >ԙ&"~ 8JBij˛q!(Y֬͟6*;h 1 ]8lTQH>տ|`D2bre?n1$<7aOu'^#ԱK̰JRݐ޶I篸.v*W [JiM+=Wh'U[`{6Ni =#ΟbըHa0"ŴG+u=pQ 6hñL'V x|`WY NAG_3W;;@7nj?z2|ZfÉKR9hY⋢ʶ=:(dJ;hHJLEL{>dWr=dN+|0H8(8)t Jk :;5-0eN_>ab0Gry}Zt i?+=䣜=+]>63/iRtC g WrvܟQ $I%$\ΈQ#3 e /2ɚgٙR2/oUV)W)OҠkr*ֲ%""ִi[~FpWx*}#O晟nw^fΈuxa`Gۜ=f|6D5S2<-8-G^^q/}Zo5s*Kd_* kH|k+_ֻi}>ЏIQ}*:':zU.Y`s()}VAH;;ckaT(q{+26;{[2ͱ?X\i P\}>?撼c.3jă~j]2R8h}Lwc4%v@wxPי D^z*J$ @Gq1VM71 8ovh۶x}jY[ ڰ_5? @ Jj Ke#% >o~ ;L2WlJ0%Z26"01 {|ĆݲI4%mp~r쭤ʲMc ܩwѩ!H;OY*N"cf6fyg`]| __܍;$^q=oӺ5V_wqnwߖVcf6o)eS4Dчp/ý jNvps;8% G4JD`q~uB)N\pSUb|8 3\}8@a-fUj 4圶eA܇B YTMwwխɚD`lW'WB0*XS45Hak MS4י 6ҡrLH4ri J8h[ p 骠:*;%s9Y6%N:3!QʝJj‹ԽKԽJ71&V䦷΃BN.z,W9!*!M^klF՟Jg5bQyAHӜ@-^F~Pf6 6f6!: Hq΋_5% H3N`~(%c`: HqΈNj! IуFEny#c`c`v: Hq΋_&X% E|dV*g<66 6 6}: HqΌ-! N(B]Oc`c`v: Hq΋_ز|8#Z=%\5f6 `P_[q=%\5"c`ci1!oP64i1qcc`: Hq΋_A%g!.μh5"c`c`v: Hq΋_J-gMST Zߤ866 `-×T $ÂF՟Jhw×T4%,2./&I{J$\n&pЅ8ꫭHCNPjiDUU8ꫭOBo>$Sc4'ղhS~gU8ꫣͬ3^j4OBot3bkʗ}^%1ZdV>.wЖ R5P >ZnN\&'qn cH&b& =n%}nH`-EV43S ֎=\IOߵȑfƨNnqZcZn,2,OI{L$&p=!Ub? ~Qm'"kب) Cԣ+xxQSj=!ML ߿OTSn{ 2e%-s|ߙԆ ,wh:/ÛP,yB 벁Z. 3 6vTLp<N\&$ꎘ cF<`k1_G@SG+}mT3%'# f-lEW4ܼFDĄQ`OTS t7NI-dFP։q@S~$H$ ҈ &B04A^Nbv 2ez[GC٠bMi|Wk3)25U/KPW#;Lj3!QƗ2I{0og "(rH =ZI\3!QE9!Q– =eZҽ00-U < TADATADATADATADATADATAbJ4c"E*SB*5;64 5)9c4%|8!.wh ˥=BN\D,Zk%:vm9+ iwQ'Q!Q 8I^p5\IsZodi@@!ʭ"7V04AY 7>&W;L2Wlh3gH=L]V1ỲEZcQ!QƗ=BB@8PNbP!ʵe:xR>6-4S=B*5;64 5)9c4%Z8!.=&,zN\D,hE5]#d=ihk ߺY=Ub|=m5m| ߆e cH3uDU˥ւ)h\ `}+q/+8o1s>+q/+zFԽMԋ&I{E$\n&%@4r q/+穴o;4c  k;OT]$r ynhkugm˷A* j .RH3uDwB*uJΧ >аwv )' y|R>.hB*uJ^PEI}IN N.8ƩS~ RH3u@`qG0kYez.Rp Nf(^8A$E wIB񌢖EL-"֩VrH񌢖륜b9`^ﰲ *iU $Â/rF>o uq{/q ؜b9txFIu򑝑k/ebp[ @9trbN[ @9[P|;Pk/`v,?bI\y$8.0 V^N-^Gbv6YU o2p)C#lEPF9YbFEnY(A 9d]#=~id3)aҳ?M-{/ ;QDqO" B rx& VOt3P|Z>~N\&( 8d>k>@u&oMf]#n{C7fu̢nGRx!.?Ih=[L_4D~힛־ؽZ7`\#C> wk? ٣X!g}jD"l2d7 &p^'!zW 7@^dٕpЕԕ@g:/]Hl;K6>A8:2@G#+'tE;Ìɓ:D[sg gQ-B>uƿ~/kNZN\p2ư-Uig 2NZ8Rz|P-<PjaPPvxb\9 V3 Y *{6簟2jsx!g7mk%PWEodDF-Rǟk y".PձpexK<P!>@߽EspԿ^EfƨCnJ[q026.> G폝Fs;8)YL .AgBo6k%PiK<k 5^ '#]m9+\xL ,,k%}CE<TȝҢ'@ZS).} M"us#=8#yjZ&x}ﶎW/>AByS*ZdmY2'E{6EYd&м W&<PȜ!F0y*ABy݀t+ ml.'Bm{ϦQ˭ Y,# \ T@ 5# \Ű T[Jj[JkTLU2Xd7$\n&py)*1Y8Bg*⹃]BN.%lХr7PŬ4-K6,XQɜHQ%ߌlrjZ dc*t^}!:u~7y’cqO˸辘~.Ag(c*;ØRVN,\Q̑aǬ<h%~O(F44A"9Ki8h8j"ijȴT[()*)IpС[Je p9OY, XRWb1m?, J.`ƗVur)h\?B2@k//![+W|ZUs=<h#t\ueUƗ'ur丂j+'I.4DF2L(IQo c7,/gY/mpRkʗ}8@n6I" f|ZU)dH'+#NoG;Ӝ6xu f -NT8ovI\Q,kYY۾-h=[L|#y9Lb2rNMF-%#{"b0_[q;ъozPNϓ9&  N8ov"iKw>nZȩHEb5$s;8% Gʚ Q߁lvp)II eP>,v/[*,M-%# mS)$(5߻y%iLY [y+~ LZ3>8LbLQ |.yclU 캭OáRi).Ag(fŒ>Hm^㞠EI>㞪D?w͔d!㽒"L`ч"x&Z1Y`j h$o}.k$ߎ:jy|#2:: x7ɜM؂m) &⹃S`O_5 *-o @O@O@ELЎnrS܊ZOƠLFm{ϦQt* ܅.Vٟc]H^@DzƎs;8% Grm١EfƨK[Hd7$g2A5&ogry!g -Y`HJ-\  DA[91raƒIs0ez/ Y*$=/?*fzGOzx>e<u:2|T'\a#,=\] vk2E!t:޻(^/?W{/,j[ XRZ mc,Fzk ܅.6%~4(_2oԦr#qW.' Bh5bQyBN. Jj"7xABy5!L_L_LULЈAByrS܊ZOƠLFm{ϦQt* ~+5Vٟc]H^@DzƎs;8% Grm١P*oj.FIԡQ4AH'oؿ֬[igAByݰ<-00-]  O)(AByL9g'/9-0<e=TIQN>%s;8% L^m1ԕpQ,I߉.Tv!$Â]sa\a+1ZeJj>&E_.Һ\$WP` ILϰn+>dtҘR4%zrק!ompPI[ q?k]][o;r'~hd ɩ<0|h^7NzpgY.xŠx;xŠx䉅$hd7$’A5&oP-3"7HF@#v|h^6 pş@4r  1p H9퍙-|HFG@:85~8|z819PƃJ818'PƃBr 1s|8|E'=J84~8|E'9 d@?8|H #+'Y9 +'1p|8|E'"84@?8|E'9 +'& *1YȬ,Krβ-ðvny)ɩ9FRu#m1Ԝ MYh.lИm~N&"lѦ$pe,3 {ny"l]T/[3-T+xrv!$Âtr>>?cYt+ T(TphCx$%l99p QU݉CF7GUE_}ꓡڡݍؖXR\4m~iO@wI6?)gI6 -aSb{r¯ONsk4!ۡKiO%%K&j[Jh x$oSbx$hqSf~Sj{r¯WJ!ۡKiOD[Jj[Jg Ocgmls&kp59>ny$8qb|ު20=rػ "!_y~Xު J<5nF̯FQJiCO`+ScL$ЧNu] }*؎AH=;<0=~3|ec S^1we +6<5n60Q*ظ9I56||åyה|Qiȷ`=qsN\xFGHe˻&v-tUbd?Bѝ<[FSZHRn)y.qi'_Iki1wfrS(iJ^Z}ZqNsk*-oQ_xFwӊ L ߹JX[o<$|eX/?ۑ.ӈ8y)u̢ZܙMP152ݒwC%YVonCXhnL2QkF2-u~?J-Vmbs1ho $sYP7kF2-4S־9OY.V'$eO"bL',\mOVOr L G(2+'!"k#R}M-%%oBn,V4ɷ&,|8Yׄ#YoYx@~|!fN,!d VA +7:t0y)9r @YjƃA礑c P7"2-@>`ޒx_4v@YbXr,wĶpyۉep 2η& Qޝ;ъnImnY.V^NDuRҠ c 礒,E -OY(Rpuh+ 礔 VI\wޥd bn,V*Mo`G+';ъnI9OY.V^9LDη#zGXm~΁%P7: 礑;ъk㞪D"h/?*c*;Ņn-puh#>,pmS־9\2d7e@ogY.Vz{ǺVr>hs/ 礓ŝxAk㞪D"u *ERoVr>hs˷zIoT~d:Y^ H0c 礓.Էr!+2ʗ}Bo;CzP Ht P 'oRbYѣi+jꖧ\%ɐEgZjQṾ s>MpӈIhpt\mObVSLvC98\9S9 p)[H2ob_J tyѣnl<31$4t@dmۂ d, -+g}8rJ81U% E T[¾زxYg߫f 5&Vpg:`)-g $>,00-e < TADATADATADATADATADATAlQ^g}8rM O4m[[>83YO@&T $ՠ8 $]p !O}' Z-Z e5pe5_}# -O@J-zl2d7ePoz$kJ|8|1g}8}MÕ+[ Cj&l9 SZf TP] Ü(ꠔ&=Jlc`5;p Ü(rX*v+nJ=!T rӈJ*> /m8PDcT-D -^A[N& 8x쐘gE#NB-+)\@W:n:&O O|hY|8nYׄ 0Q8nYW6xGؘ87-o6- 80$zÃYIתܮΜ87$zÃ{IתܮΜ83c1{f~h2jx/?6M2 7+  ,F~k "7*8%sK|h^YNzpmk.V쀊pAܻp 98M-Jck sF PMget5W:^$8Ukybc@尌9%+6%_6%[dwY@封HFGq3[d@封HFH`[Yɩ8 [Ú`[Â`[1s`2I{oP射@封HFF=,[Y=,YHFGK\Y՟t,e@-\YK\Y,e@-HK\HFM SF<Л54cO_81sY(F<Л54cO_8ÂY(F<9cO_8dlsO_8Y=,eZYd٬qd~8|H #!d8N@iUáY9 #Ú|8^ h>ԡÂ|8^ h>' z8391tPsԫcH1tPs>z81HFD@=z85@?8|=z81PƃMz81PƃBr +'1p|8|E'"84@?8|E'9 +'ル6|8 [`83Z3q*k$Xn:K8x *>H?^2 y ꪙ iÙBRʚ @#\'DH+'i+;(/) R`/!휚* )a{ +w@#\'DH0y.Q clW5;?ðM/|5>F2t^}/?PmnY%[NI͙}ԮJݗfp>8.?H=t!N5 *E OJ26q9?1s˷jN|]D M @oPK?E;PK!F> hgmð:{pKI ;Pd!NɷrE)JI#)gyc=MQZD^}/?Pm39OY,DzjLJ IȓQNy2ra*:Ah"it,-?o I^|t)P=TIQz i &ЕԬnn>_8:Hnn;ӜDT&pz<), |td>vvY׆մļu&U+%UIbWeZY @>iGk/'eZYm8$S>IQ,Y54 2dx53荬=.lkW:;j6N .l?IG*FQd*BLb+ v#+'e Q'/f Е8#6q P*5#$*8%sI6*F i,-$mG^`u k9Sm" =^)h\'#sЂ![?|HFG =" ? 8_.:tLTIQ m[Ԯdd7e\n&pЈ8,;ѶӒֿ,|hY|8nYׄ[o6xGxGؕ{6,$zg6,$zg6*<$zg6*<$zg6 c1|fr#}!o.DЂg#v8 _|NwxGؗ %okW:-oh^YNwxJpf.Ep~GMXTry'4!>jNfU7]paVʗ}10DN_q!%A)23픙g,V4ɷ'63gUbc1vy ihRGy.spڔUnÜpޒjO{n>R}ä*MN@ݽdŮl>B>/r>d؄ æ*8.j%%s$4b>e*&O 1vy7ohg}8r#v|kNwϧ `(d7eg2A5&og fI W1vy A,F~k i%$;$q=g}8FQJiCOA,F~k i%$8*k_1H% ÚM $Zi5|' ܇1sW*A,F8&k 4ߟ󂦱*8"5d|$i1wfFQJi@f.DЂgq=OA1vyw߸Fwӆwe +6$1sgq=g}8gvZR*8%Jmd$OOA,F~k *4kQ9_2QfKA,d՞H84mYg}8AXqeN\xFGHe˻Nߒm>_4ILVS00-m  ``/ʑ\o"+vηbk%hѢ*tP3eg$j?ABy>Z{`& cTey}kcnԫ'gdlv^ R?Z{ǓmrFnݟ%ZkZUnFeܖuLJ[&pLsa֭<P[S Y6t߶DƨOV%jǩT]kZ{ƎЀ>IZ{]jt/#6w[| $52I_B6Fec1tA h__?ABy ,ͬh*e:qvWҙDi()#-{/nΥJ>9PYUb>l9PY;1ba=ABL_>|=m&ݓ;ig3m?ٷri!fqQ[Y=]06{/%Ԅna@m-^L k\nk9PY2I{\)$\n&p\8@m L^n3o MylBk,zذDRyj^Gn~hUGÜ% e&[GDd rԹ׊ \$)N$L&Y*na˰qDRٿbgI\sÜ%ٰ,e&.8l>.pݬk9PY*-o~p!%N\Dܠ߈u-.'zB.'%P*RK 7C[ q?k!%ٺXqFA>Y' !QÂ`&"B8.1 K˝@>) ׉e mrZk >XR\W=LM&)SPv%d!QÂes5E+#vk "7okpd`d5; [Z&*>dxBȇTUL(?'ٕR}-V\:@>-Rcқ lj)d /eJ=ľg`VDJ/3W"d,{7 l@,2.d7eA5&og5L;{JQÂRyBgm{ϦQÂHd =T9DN;VeO"`8a*}E~fPmnY.V /ro81k ց* *tOO'hO $~ fI(B8'G!Q [|' ܆wӆwe +6((B8*cg_1H% fgvZR*8#' ܇1sG*!QÂT95fAH=8*k Q8!9׺Xq~i`#Z_/b\[r1ԪZA`H3 O)(ABynJ=&p:8RLNmLA8&Y"bNA8.1Ԫt)P=S rK 7+ ܞ@_$bA8/hYO Rߜ;r'|kڶD@zD^ܮΜ))잖Tz >*8.jni &)SQbt٭g7? ZYr'h=[L[5-^Q_bgZ >"N\&"js ,@S|JZqZk"g}8r#zk#&^n޻(.g}oJ$ /Ek >o4c -, B(8.e$H`D,S>FaZ~hĐ/\VJhꅂԤk%W4Rwٶpz#33DE̯&V\cB)<|`TP5+y xOUZ\DY~Sgjrof5h;/Z| f^&` h#1orn 75# rKdv!$۸B(;?B(8.e$H$bA8#' ܉=|eS;FQJiAt|k5߸GdPNmbAv!$Â/3Z8%+=*9k/3Z8!HFG-?AB(8/_6wӄi%$GϦ*8#Z=|HFE* L$$bA`$%Yy|_6nl4NkQ9J%d$r9b gFQJiKq擢hZ_/b\[r1ԪEoOI{^1&{jNv!$ÂF՟J`8RO)(ABynJ=&p:[)-OLNmLA8$mYN\&$ $ÂF՟J`?B1Ԫޗ6:2'=/ZjW/>j2dIP v!$ÂF՟Ji=ߙc SZ8 rN\&(5^ ,J ]bn{<ߍWS5Y+=#Yo;r*pQ&Xٸ /]B7L&^n'ZY%TJo/Ddx'[1@i2g#yjZ@*-׶YL-mrh+h=[LVv#&i Yܩwh qq<P%1m5tz$~/3Z8#Z=ߛ*Nf$ڶ$~/3Z8#' ܉= V EԽKԽJOI{=pog \BP]b4UA b1Ԫmrj_V#P`~ur>7snc,tx jRvF7ڌi--^TsIϤhE˰#A[7}\Sj%#Ԧ73 L ټ0ehMP_)⬙ Qׄ#N\D,Jy.6Gb4x,vi~tUHr'4ϮSP% nb_ky'"3 xh=[Lja\Zk"b:Jh#s;r $Âb _2Y"b'/0c,C0=[LU4jbbpOsGbA8/hJd!_?ArȲ<3ZB SZ8+~+5N\Y.Jժޗ0M-VI\k~/3Z8+~+5r#u+=ߙlV&egrh qq\>BcZG`&($p8.E=m9*fg?b6vUZGχ,2&I{|$&pT7WwUb\[ba3Pߙ婯D&m<^ni"ޡn?'~ #F<L{b\ =.Q;$D\`& cZ3DE̯9&@"k8 -WqD/~h3K3;}PZtrOGf9:$;$D\ɜYr#Y_sZ3̡r.ؓonN;*-o~8gλnN; @>Bo)|毯5 ,ly *!bf€L3/Ho%_ nN;Ę@>,$Inj XB㯂|&wrEakt<P:@K~1x1&IeR5Z ov x o sby![Z Z ZvkZ OPv@7Je8Ħ"JⓤT zmlB OOAJh I>-?kOz00-u < TADATADATADATADATADATAoĦMsJh ҪgvJkd;$D\: ZK6|*Zjm.rTV3ϤEBrK> F!f[2ʗ}Bo=-amny%Iv-acxG.5rp['vܻt4 &k$&3DE̯9: C ro/3Z;? p[閩ᩭ3DE̯9~1x1|YoY_sZ3̋oV3*-|5 rb.)eo /]NnoIVFJcŽKd7PoO˷߫d!/3Z8$䅱  Z Z HTP`$䅴%-?oJjH\ZFg`$] ˃*fZqo RFq4GER{G[0ʚݥ fVN^9i#E*Y=[ig  7VGSnpvpB(8.e$HǗ9II#W Ȭm>/?-3DE̯9FÞ4,u'h()#r-K=mnq/*m1[V3ϤOMRk>-J`y*qo7K/ؓj5ZqI\&*$;$D\_5 55;ȶ %1λ蒖QQ&;~1{6rp/3Z͹o pby*:3T[ SdD/3Z8$ of ڶDKZӱ堋  SjD@_Ħ!JdD-?!%JhIDJFg _Ħ!*Ώn0{Ԗ;$D\@DN~n<Xc+Aj[%hmnޕBm Aj*^PAA[V3Ϥ푩"z{JAmj-mn=N*KZ-YEXym'hQS2kpBzS`3DE̯9yFŨM"f%k 塉B*^V0ms9* s{ծxpq{wѩԹߵRQxS~u!&I{u$\n&pЃ;$D\~˵ě7}CQ,0O$>Լ<]hN+'p' Edؿ3;N\&&=; l@>Wn #}ZƢ3;<DkanI}?MHtrjBot %3; h y%LD Jezp!Ot~hSĴðW:? x/?:<\K+{&">%3; A3;r*-V3~-_5 "75nN;ؓQԦ5;!|kHFO|pkYŠ;Š&'Ϧ*8.Ƣ3; ~:-jJ >k٣Z#3Tb.ҷU =ǿGmrpAa3;>]"fG|k >YsVr|HFL&)ɩ6PYb~rI$[ݬK *|t)QZ5z\a53 Oqɜ#-je-) ЕI- K *|t)0)Is;Cr*-!&oNWqr# Qf6BzvooZ@K~1z-O\@8%%C%;pO@O@OAO@6fزx>\$h > \eM!i8%b&^/ð=;ٔDkKy"}&hLE0y/-K>=\F|iUn^RA"kL=EKhZd9I\4s\VfԷr[izFժ4 SZ8+ վڭԪ-O)h#3~0TJD+(c+Aj[%hmnޕBm Aj-)yN; @>؟Ƭ푩Y,$6FB*^B+%RPƃM=q%).UAj-mn=N*KZ-YEXym1QS2nk YI/?GE?h #3٠FK{T!`&.6eIB)<9S~IBY?#ute j<^n;.J>V(7 /]Nnjу>=QNny"S<^!+e /EGB)<9;B)<9-fr#YV3|hY6Sؘc1{okNzp뻦*8.j%%̩7IjZYq7zM&)SQbd;.kuV m9+GJ ˰@jm nn'W /]NnZ!Ƌ&I{}5&ogfLD))w$Vؿx!ߟgBB'BB5O@$!A;xO@!pkO@ %!>M #YT5  QNN;%~1ָsO@-Tߥ`BZĦ!0MkҬ̤fy) TϤ (7ZĦ!BQ3s ZYi\܀v T!5Jh Mƾ ɜ]NnBB5^KKy%I)hUV@JlJie$$ z(!$CZB-fAH=8%nN;$!/3Z8!^|"*8 AY4 TϤ$CZB$$!/3Z8'(ڶPkg O@5(O-Tߨ%0ġ_5kNG(&(4p*OߵA[U[&K/ALO%Hfʚ .k7MFaxAZ9]NnZi.AgEJˀ޸B(8.e$C`u\O)h!@DN~n<Xc+Aj[%hmnޕBm Ai"nN;r*8.EcBzcl.Uben.ɖU4sDR}Ι蹽e j<^nM iI4Doq\56%l25?[E Q'cA*8.xbQj;-3DE̯9ML=P6QcVMpen.ݺV+=^2%Kk"A.-2U;m IQ /ERl.ى l. !k !55;!퉋"onN;*-o~8g Էtd7g2A5&ogЛAZ9]I >r(qJ,V3ϤȬ͕00-}  p!5wUrݞ2;r*-f'zݞcYt+ `~lQh֒V3ϤjZtXVIQvpA[N@>an'̤InLD)(Pjn>$!%$l4sZB'$!/3Z8%6$$BY㷋 (>ӱp ;O@ ;O@ ;X W>M #YZ5 5 Q\k4 * RN|\܈ JlJ`(7ZĦ BQ3MkҬ ̤fyf JlJ`ӕȋ! T!5Jh  Bb&' n̩o7u]NnjsZB\|ẠFwӇ$!Ԧ5;ɝ)uV3|!$!/3Z8 A`g hmnBYVBOΥ$CZ6ڶ`BB5|A`O p~Z `l kYg R\'DN~n<ҺJ$9֯VYd&м $֪^PA8y*q3Ϥ[#Bo'b^m8ɜJ$6FB*^A[V3ϤbnpÄuB/bQK;ȡyg&ceXŽKHd7’A5&og_6 Â`DU=Ԅ\B?&nT &Q8!`{E_6 þg+N\Pvqf0I ^8)8l$ v"pߜqvS)$ۆPAq՞HUb Eu+H zP,?ݠJ XQ zP-\O}YP%X OGMXeQ zP-ؖ )+ =ۄ V7LwOwv)dUf?`& k$KYUZ=x JP%X [9DUA 4ɒ652I2LYjsX _W&L<ԳtY}K;|v ۀ h#ƣ_2QfKN\DܳL#,V8i}gI\k%dߵ>wԳVrYd6M h#?+7n2L5+hV;"im1Ԓ s>eQo\wѩIG[ԽMԋ&I{ogq*-N1;Y+5HUb cF<`kEmgtR%;6NIez/ di{F=B 9]iʑ7h63Tf_Z@wmg̤ITWIٯSdÖJX]&Nn{F TWȬ-c,'M5IO @tы nXGFηn{W/tÖF%ڱg>/>TWE{W/tk%mgo>TWInxk^w/VuXGKW/OG6:rk^ Xc,2* d7ogq5qnwߖÜnXYP[&puXa&$4IA.IBPWCƭAQmgS*G[nFqY&v!V@Ss q &á`+%߂n!FfU 6Z֌dؓc 7kʧbcvpB=D+'T{~bZ֌dlgpl{(+6簇o6&ynďZ2QF< m2bRs1tI^U,%\FaЍÞ5ZܙIǵɚ14UNzq 92n< M-s;8% GTYgq|dtY q &ʧEyГ 0P[sgKb& 8 rF wnd!OÜn\Es*$%~%b_0уPꗔ!|9$W` уQ~dV*g|9$W` у]6|qWq=oK|9YOyB*$%~%ÂY68 `P|iaY60Љ 7T7%I%ZB--’&@MDƨOHN&')Iۈ\ԌdfU 6SŊ~=n|CR|dV*g@|8"m4)y|.JXQ^ri A$&݅G`AG 7k9!Xq0YR!z|5 @|;%ЎhUX(#y ꩾjP~*#p,FSpވ ƆwE[1@l_-2* d7]00- < TADATADATADATADATADATAA5&ogq0h/jl*/3Z8"у]n P7uUb7~J3&勵 _ lLwޯ4ꪙP>|5 @|8$mYMfP7uUivzB!2n7bǍI.' \!FlWrT c@ঋ {iP?ABy s١W/>ABy&B*/3Z8"NQş+=ۀ~+5DfP7uUb7-<<P*ضBN.]_zۀ~+5DfP7uUe&B_ zB!.'z<P" @W/>)&Bt2'>AByN}`E)-AI-:ֈ*|Ԅ.'~z>wbQyBN.]_zۀ~+5DfP7uUepW/읧O0c,y7푩FHYۀ~+5z]-"OA[t€MXQ݊b>#8 UX(\10&j@Ers<P2.d7%2A5&og+t ycÃc < .SmJ89I*g'% T 3(kqÜ(hQce=n*QġeӾW9(n JbrO4mӵ T Jh4!(}jD"i׽oY.Vo'cI #;cd XVO)92gx=%'!G|8yRe /~ -g<P^rR7 $ԘdL-9R7 $1dux/nclZRm1jYSOw(d@k֓Bmֺ bn*:QQ&7ʙƿJoz9R799Dc~6Igv Yk݉+[6~~to]R|8(H%Ўn_B_-,wڮ~.,ˆ z\1e_-F< @U7>wbQyBN.]_zۀ~+5C6ssʗ}EV&:\5nK yyy+'~**iJQÂ[cVtftB%]dVuL*|k۟(;%cq~64~>XV ॿiaY68 =ώgYJga:3pYD]QTp7U~zŖ2 yg k9!,2I{Άs$\n&p08\95V F!e΃X4̤n3DJa3gC("ծtec-8\av| Y=2VĘTE/a{/!zEPtx eVKq圵 Y=2VͰK0h nS#ZœBii[, M T.E _Yz<]ޔngƳjIPIy}E6%;YR!fP .}MQ]vedSxt=F yGy%l:n}-@cI _J= 5#E+V?K TYkTϕ> Y.*b*&!@V#X'DHaSvrWs&@/ݷeFVdL }U&)d&;cBis N}2dL5Mˁ΂E)4!/?rUD N&̄.IP0z2xR"K,} 8mSN[ g onYkTnp R ()$FjZ3zP Bu\c*%MXQe>;H ȬGWTO|DFsiEHAjU$"?{ nS}6:P֬d'CbZ/nk>6f>QBy^ﰲ,Kb_{w ޵=&)jb!d'9'cF<Ct5B*5n*5]H JcZR!TCN}'DcRpjN5WJcZB~0cF<C"wF<C0R5qnK4nr-fEsc%3̏уU1wJcZ=!J 8.8;OޮAF:( v ?oМH˲5;E̕|iZPq_-$^ցU W (d7&%\~5Ď`O(A8)%=bݧޟ-3~ 57m2~y+I^!lv^#ioM z@DhU> 5&n@|8.E~RH?%n{":v-ػK B*f0^֤Ab$^(P$e{#Ts;]⹃Z$~Ts;ЉJQþOA·58&K|$U5)Ruzk BVAΊ-fH68eZYd|ݎe$5y9=^] ߣB)RAΎ|HFHgi[Z+HJiÓ&׼eڶ$6n1tcw;cfnl*8 +n$I~T3kH5)RA΃F ЉJQtwnw#u5RyBH_KA we7SK~c%]gJgdq]Y$*ÃZ]\HOAT5"Ϝ\HOAT ߫~*T|'YQYA;$;HHdiJQtwgϜ f.D$|'Y&.DNJR|Ja;$N&yB|*A5@Q.QkH~+5F(C`zl$rt1tcHHdFҢŞ;{!QΜ $G5I=^]%ԉoP6Hw8&K|$R]]4 &I{Ή?$\n&ps1x_3;N=n1p]#?5BD]3ϜVAG*\&%8$!Hؘ1rv!̭1rՎz$$rY5H3HЂ#-X J$$r\㜜|Ja+{H8%65n8) a!QŠ$$rs\㜜]+{H8 %+BA\$cf6e @HJgcf6 J$eV6ch^d|*|6chYlHeA6ch^d|*|6chYlH߫bA\cf6e @HJgcf6 %3y~'μgY`g VМHp--;c[iguL5x:2YVRp $mb^8'n3&ӈB~Y殶𙿣`\~5nAByÃPj8=҅0@HABy' V} u ۔m2,y},yB穉PL.pcF<CY*Y+=Ze1wJcZ%ԉXhHZ8=҅0<5XhXz^ﰲŝyv,]]vI5au fwb9%ØM Ď ժ^ﰲ;] h-; +j YWX1wJcZR~4ZܮN OM҅0<9x t)%hSEîN%jԓj7`lh `-` *DjV $]/(0 <h-ؼW\2Axd7og 4irtN;gb/9xbc.,8@e? 2$ԻIݞtbZivØM Ď aP|_Iu-nX,n^Opu-/7g^S #Zrw/P>JCɐERj.K\Bl|}ߠ ăP@*JaK|N6MIԪABj0q#9Z{5̷73PI4j.35̷x+X`Rig2׶_4!o"dR rJaK 5'3]06x1Ibcj]M5)?JcZ~~)8@n~`y+8:qv_@O@O\M]T⋡aK3D*aK@O@O@E\~5B~y8.1wJcZVJk.'@O@O@E\~5) %KFG2 !==r@O`Hd7*A5&oOF.vE股`>4I(4E.'@O@O@O(==orG*:3n;(1wJcZ~1w/Yλ"[*1v£^dFayaN=: ߙ *\er;VO\~5KqDJ(҅04-#{n[ØM ăPJ@n#Zry-xRqm1nn;+s=TI-ABy5E"nurJaKY} aPyi(1wJcZmR*܄bY?Y|Jܠ(O)b=҅04#kSh/ 4(L /L( ܷcXV|k΂Bb^t€{֫IQ,*Tjo| 4+堾9OY.V^_{nzr684/Yd /ٕ60hF.+()$P7iC;~6:Ņn*ܿM[F+`je |@%; -;hTiDr"vBw͔^nNW`sFvBZ /끵V'+_c_E&I{Ҭ$&pMF PP|_Iu-/륂r^Opn#Zr %t,F5/r0UJ r;H=-"HrrJaK 5* 1IbcjZĦ5̷Ħ5D?JcZm98@n~`y+3&6!㽂u `ec1~\%K_Y2 !===zc~5G.,X*|*1vӵ1wJcZmR*܄bY?Y|Jܠ,Qs"ߙ|׫FaObr,BPIꎞɜ]H2ܒ45 ZF3vUIJcZ>ڃE&ň-:9恳m1!IJM00- < TADATADATADATADATADATAjPn3vU&Z*5"u 6B(8+jsVr2iWpn[{ BLZF;ΣZ(VH&WPS N|EtPp,9>nE)%eiD3]-|{@(lv绲SF97N^/LhnA\~5גc.$OˡAޮ(PC c6{)$zh ;бn[ØM K;˶RA)&K/ؿqcZ]|2 q#I5"JcZ**5JaK.+[ԽJOI{ҥ$\n&p\~5kc *7`*9x/ܒE40 (F;())׾!X.͚no@JŁ*h 5P^UN#Էrc*_8fZ5 -UYU-Ȳ@N ?jk >ron C~5P;d̉HFHÙBk_U n ?j@Jk >w | 6ZavE%PegL99/d$9RU  ?j@Jk$Ѓ~#ժ$ t7OpO+h-(y'L:@N8j"c1s^ 8)iOvV)B)VK雁F, 9~#ժ @O0@A"h/?OID^~u~O@*9xDμx'v526pxD#G|HFDW:"`*(2TDM/O )!b* dn*DK[D"h/?OȡD.~^~w_^w_N i*9xjX^r` ӈIh @^r~ ()*)qݪ3cXVf-K~^~bԹu܌Z@Nu f-Kr^*9x۟ ӈM[AV7O @^r~ j@I()*)qݪ+Թjܼj^~zԹuܼu^w_N@zԹ*9xj[ɝr^r@M IT: I|JqFu *.d7*%2A5&ozb-J)N^ -T 陰Q 陰k$׆5 /󤫆5P݈Q.;p΂()$*8%sLvWPMF PsEO@1W|ZWWɄI~DT>fqG&EV*8"mR-d|s5F5HFH9'3q ЉNؐÚҠ^iNd@2mRS&+A.VkrmRY[㞪D"n &+MX  &+;MX ,:aͰq9So8| mR$0)6&+S q ?8| mRn)e6&+]"yΊ[FHR"yΊ[FC`o-q~8| Œ"ygΊ[FO96%=>`0So8[`1 ?8 eVe6ɩ9;ϫ>`ה9So8 $VyI6ϫ>`ה ?8| >`ה6So8|s &{˥`59So8"`5So8sQɩ956ɩ95|6΂&+%=>`ȰSo8|ɩ9Ƚ6ɩ9ȶ⣗ 8|⣗ 8>*9xqڋ ⣗d 8>B:J=q9So8| xJ=pSo8| k/΂>B:J=}6So8|(K`%=>)؟\< 6j|bȔS&I{ү}5&og1wJaK.y(F92£2x8LΜ ҅0$()+())׾!X.͚/tPnnZh$尋Đ5P=݈/ FPcw | $<錒8y!>Kh$ӄ錝5=!ؼ߫e[1sVU=Є m'Pa8!%eS&N@ݝ>K5,9МH?|ZCփ6pgťux,L<N$@]&yϤECj ybcN$@]&yϤ4 j N:(.DЂgiL$&+_8@2mRg \@j<: q9&+J p&+Z q|8| mR߫b8Lq9b8Lpb8Lq|8 $*9]$1wJcZ((F92A\$҅0,52{x}١r:Ł*hu8s(PC  P2Y-@#-$gL5uQ1Qݎu()!bs8Fh/Cn5&iY.VLZ\ {ɪ̣8^E/e쪛h/XuI OY.V<:\ {ɪ̣)(Q9?%Ȅ/`^x^ArOM Xpn9̣OV.()$P7is;~6:Ņn*ܿ̑()$Ѕ+srpMF P%2ܒiFSșYG/ /4Y+ň䠶PDc"JcZ*t9sI6W^/&I{Ơo=V~>jȱɡ7"=ZNIO n㪜["ntbQ5Ї/Yq5 ̣x _5:l1% yi`E^<>81 Ҩ1 =#ժ$픙 XpnӱO[DQO[D1s.VSeI Z$8j"o8 8j"fp1s,YO [y( 8j"j$r y [y(4!҅ap [y*x롱DZ%t꛱禩zj禩zj꛱禩zj禺Z ߬~"Ȳ "Ȳ co"Ȳ !_|_z~  4  &T  co l ~-O9ʛ56_|z^~"Ȳ "Ȳ co"Ȳ !_|_~"Ȳ "Ȳ co"Ȳ !_|Z00-  zj禩zj禩zj禩zkؘ0%65n8$ !=;$D 7Ap[[ ;6|{SgA#[cVO[cVOv @1*Sj66gĨŇl& v EA6jg * Ӿ`io2˨ :f ȲpŅn+ ƛv C,ӫ`' b*`ioJdn`.[r A 6 ȲpTR߷ TRޜ`&t`'|z`'`x 2I{Ҭ)$\n&$1wJcZ(F92A`$҅0,()+())׾!X.͚nI{hu.45OP݈ػ--|JL5uQ5"fUPØL9e4 =@#-]MF(1wJcZ((F92\PoPoPo(1wJcZKcHZ(҅00)()+())׾!X.͚nȡ)h\Л Dພhu Nß6Pq#@@Su!@#-]MF<2aJcZBt5޻(7j5_q#9Z(^⿃(5!QrJcZLy9rjc ܮMR5P[ŽKԽKwOI{ҩ?$\n&¤RY.= q4I륎s;3bgb/9bs;8)YL"F՟J`c,yJQ˭b[~6?h"oxFb:pd3O@[Jj@BŠ@LXV,\% J@Aġ[+ 0b:pd4m!Z[Jj@AZ TŰ T⹃S`znYQNzpi(_2c`zohBN. JgAByJd!_8Pcc1z h5bQyBN. JgABy5!_8Pcc1z ]] 将3!xH hd ɩ<0 8rQ(hQþOQ1|(hQH 尃;r#thd _73"7oh^NzphQYrQQH󚶅 pX;(⹃Z  L"`-`YNyɩ?֫bzf60Eɷ,$9QU<;xx~Sn<:{QcgI=Y4jWIYbcN~ FEny3b~+5,|hYѕ$xI2VѕexI~Sog}8r#}${΢ѕ$xI~Sj@@$zj_d7*oOYIתܮ~Sj@Cc1z@FN$@]&yh _xGQ8NwxM)*8-F?hd g QQ1|(hQH;>*8%6 hd 6 DO_85QZ kSfZ5"di()$$ B_FEny3̏&v/B>e.a DCc1z 9PY*-o `9]]pB]M^k (B8&W=TR7fr#v*z6OI{oOD5;D`dD [DZ]=%\5-6pv!$Âߜ;r'|kڶ@@z^ܮΜ bA8/hJd!_?ArȲ@CZBbv!$ÂF՟Ji=ߙcB(8/_8fr#zkڶ "hf\DY0~Sgg}8rȲ "%ԉzc5&׼e8 尅+=ߙl03! ~/3Z8+~+5r#u+=ߙj ~5p8.h cFH*F-6p3DE̯9-_5 !55;!퉋$onN;*-o~Sg #3!nF*-_5 !5nN;#Yؘ@E5;!*8/hd pjZYŠ;Š\r*-fr#Y_sZ3̡r.ؘ@FV3̍Q6xJpiɜk !5nN;ؘ@OhY6Q6xO kNzpdD63\!.MU6pYb;"pߡeY䉈< $J 9Oߡ_2QfKV#-6p%#Ԧ73 L"B(8&#Ԧ73 L d7k@o.!R߁>M^k T Y7o8BY8'x@ 0ɜ嗄|)c1z@J.a5嗄6 >gMU6p3!Q DJcZ3c=B|h:qA$D5;6: 9Y dV垡5V 8*pbVJ`c,y= = bաbաe=7T|_Eo!Tpb Ď[ 9oB-298lޜ  B8#v'qsTQYxGBAByxJؘ@FbQ5+hJo dbk0Ջ{?+Ƌ&I{ּe&NMGFe@[{h;YQ62Qk;@|;\~5B~y8. @Tc8#{ޗ~n{`BocF 1wJcZ H6pgY`ze1wJcZVJk.' @S .'ʹ,y\~5]HX @S XQ%Ȃz^ﰲŝs5k/ƊٌcYPiv,-^ 1wJcZR~)X @S t)%hSEXQY+9x݆ !vI+9x݆ *k(D3̏&v/B 1wJcZ\~5̷x̀Y!庭£j*> A0$#yA|]E.'V'+_c$]E2'V'+_c$!IQ"N6Z@N;R $g钂8y*qؖh$X52]Kiv\~5G. @S Ar7nQiCRVĨ #F 1wJcZmR*܄bY?Y|Jܠ A0$n-Ç00- < TADATADATADATADATADATA/L( ⠷cVc.ơAb/L( ׿̑j?2~$ 9OY.V^* _{nzr68A-/ٕ60h.()$P7iO3aH6;=n ӈM[Ȏ`j Y5.^W wm+'!$IQ,Zih |I^nNW`ؖh Ӡ^_{nzr68rtN;@|;\~5iגc. @S Nd7&(())? ꪙ{-:q6 r7h( kP7 R 1wJcZ*y(F92̮C~£B:J=(Kn @S ())׾!X $x}١@M閬Kv[Đ5P^R^ڶ@N_='&Z5iIPe JcHFBȘ|HFM|HFHs(odRQ5P*8.Qx?"*9x9S)$݆J)iOB:JgĐ5P݈Q.:((Kn|52IkW:9h  1wJaK.+y(F92£2x8LΜ @S ())׾!X $x}١@M閬Kv[Đ5P=݈/ Ӥԫb*9錒8y!:Oh(ӄ[1\ma-Є m'`8&N@ݝ=\~5"גc(pn @S ())׾!X $x}١@M閬Kv=BNP@S IP5 Ac%2lZ 1wJcZy(F92ޮA0(()){K͚noޙjh(5 IP݈ػ--{\~5!Qגc(pn @S ())׾!X $x}١@M閬KvIP5؍(C-\~5(F> @S ())׾!X $x}١@ED h &I{ֲS$\n&CЏ0Eh香EEwůt]FkOyn`w$VKidJ8ec1t[Xq֫6*i=q%:=tqP$ũJh rPY SZ8)j9OY,=-ſ,F~k T.DЂgi1tWRn8p*8 Y SZ8!HFHfBQ!" Scd!_:5!_:[Jjb: N(3D*aK ~6:Zi25+755H25Q[Jj`5za4N|[c|e. 4N|5HFDvp@|;`/3Z8ֲ Q*=* 1wJcZ=!`/3Z ec1z 1wJcZ\$rW9n;\~5̷r5Jd!_:5!_:+75Ü'm'_> Qs*=or )B8rϡ%Τ!_2! yڶ ZJd! ϡ%D!_:5B8rgb_=$I`<$K⡒5ג5sZj9&ؘ9$A%g+|$cn3|$cnϵ*F62Q 1wJcZ+r5H1%gEsVze1wJcZmR/3ZYyB׫[JjH49I9?1zb> Qs*=r Q[Jo8Ң :%u TQ[Jo8[H Qb?8R Qb:%# yڶ DvCס5H5g!]zQ[JjH49I9?1z%#C +|$cn3|$cnhF6̧%$cn Q3 e>W*MpEsVg ,F~k T.DЂgi1tWRn8mMw馱*8 Y SZ8!HFHfB\?"/3Z8ֲ=zb\~5i25H%ΡK_Y2Q3|1Sj 5HFD~sb/3ZdNu8 5HFDq f/3ZdN׵/8\1z d7k\n&/3Z8 E5zo=6B8z[FC`ze1wJcZ*/3ZcSm/3Zd^%ΡK_Y2Q3"*/3Z cEu+Vo\~R25H? Qs*=6**MpEsVze1wJcZ(9Ű6> Qs*=/r '69Ű69h1K⩼$9B8ֺ9 Dv·*9Ű69-V-_83'!·* +pȽ*%V6 ^==z*rW9n;%ΡK_1u+s*=1pW9n;_=$I`>1rJaK*+yaKrj%pꎘуg $nEsVze1wJcZ H6s6ڶ  2./&I{ֶs$\n&eZYӳ k7O(#S)$]پ4Md+Enn޶ 7FKZ-Pښ.m!>"kvR`-z."i`NU .$V9OY.V^l5תA*-H i׍z졛 $8ݤ .}Ƕpʾ,e :'o7EѤiVElmO587G~{ۘ9ɷr]벌޳ZdߘQJcZ%,V)d,Ƙ"r=Uwӂ&y*nN;[ n9ˀ.Z3*_=|Z5^e$Aْ<=*E[\;%aP7ϛmHtŷ ǽVdߘ A Yu틲ຢ#E*DFZ'-]o.4as+t)%mrTy'StW$N'bk_G1@h5/?pbYbnu>2P8\?&Kex$%Hrv,-Rb* Y|U/n9!Q =B*dV4G1@c>!/?bYɩ>vpmrTy+nSrdo.=M[D[2欄G*Љ()$u fZٗOnjN$,IsL!bdϦ*8.2\>jN$2d7k’A5&oqHCޮʷ nI'ӽVB'?4le [w]%!d'o.=;2 eIcɚ.8 Q,ܭZj'!J>PV[)h\tㆺRg3ue+F2-0X=;ӳVM-ٷ ù{e;P7iOÆ='o,q 5. $Bm00-  Pb OsSF4I$|$rf'0ȧLϰK<џ"M<7Oeo.F&!nQQH%M<2Qٸ%/=a?%YBhu֭Y5?,B9.(ODTt<0Ǧ4@p 8+{".Z*"tVF<> K;ԨbT"5’il\[ׅu A4J/Ml~ͳ l [5$:I -< I1H tNd7kA5&og c;nuLm)l{h ƯR!P&֩,벎]#RGlBcMG$dN,վLf%IP FNӞ}2˨ϩܝrE;@PYf"p n0$>wѢ{!ph!(Q! 灙2˨$]sݶb4c"{c9 O.PYw籔#L_jddVby$8gࡷ,ۥۀZSyj(tc=p]!rF2-O|.3"h?@{EohVM- FNL l !>`E\<'3CQ,A礓iH 楫nƘXGHEj2X=dp[DUZXd`YFQ&I{־1&Cd$yuq1od3#a,FөDlv."5mӻ~BHVfDYl!=n.|+6f+%Aqj@CyV F7+ptU'"h[DW&uL m&$O{3u& oW(9RJj*6TZftU'*f*q[Y7YV̀P=7Yo.;~BHVqn$N3NnJk~ٌ89 Z󃜩7m"bl8RBF7+ptU'"h[DW^eL"j)b Hf+%r8d UO(=M>Brcqb>B:o3Op{2R=&TιR/ƢM>f-o.1FEvwn1tW2o>usUfݷ Z7jb,va_ E'۽3˰O~6Fo_dc>[N!$u'W>bZZc8u~ mb 3v23tZ7Y@8Lc.I\i 7%}ϖZc>Vb-j)K&3 MdRZ|QQޒ&Z7Yo%9IbiT/C2˨Axd7:$\n&C_4e=̊ZY*%dZK&3'$؎dVO8Lb)|QQFL j G"#2iK\DsE'ZK&3H#W;I/b^Y*gHҷힿ$O{3u M.؟̮FNI"3tZ7Y e_ lH#Wf.Q,8۟i 4Mg=&LOp"))w$VSɚ#7A%LjȓD8e{jPh Ys&^ i>1 %J-;5-χ:ZYZeY;Z-ZZZZe;Z-ZZ$KZ;Z>;R4/XH[ _p?*c1t5R>"ArK fn:c2Ũ1o s8s:-eJ-;9I"A|ﰆO|zJϰ7Yw LZLPHZm9wdL"2~4CJ6ӞdL$Q@骔AX^C7Y,WP7ig2+2sKLIQ阧˟꥙A@*OߵɁ>'C&GrC&W m9M d7<$&pKɧ\mf!S#Vm9꫍dL$mEȴuzX -ۥojc;!9#_2o8BY`[q|#_2ܠŃ+*5Q*dVB"p V'$d/呙) '9n1wꊝΙԊϻdߘ>fjT>Œ>RIO'F>f)FR$3uˆlE~w΅dh(ZŃ+V1~ MPEnK\Ƙ@X xS9IUYZR/`\)`pE uyuy(0S/RYuU7}\.k\K9X1rJo8> MPE2.d726n]L)/kNZN\6D I?"hf\D6^1["b46|$["NSle NSl$]>Ü%NSle>ÕNSc !S6;BNSaZ96|e!3;NSf=!tNSi;VZ{`?Sle>1}n-U*Sl$ZnNSl$N_6 Â`?Si;Yv,60ۥ NSl$]BNSaSQ!Q6EmY2'O}T!%NSle>B)<96}I{ch1&pFGH6Όe!60ܡ$p8&6|$ SZ8 rNSc SZ8+~+5NSlN- \NSlg0,3c1vyNSleg1YNSi;cH3uD6E쿢Хr6Fs5r6Fs5H6~1UnNSa!_2QfKNSi;,2*d76eI0ɜ]H2ܒ45 ZF3vUIJcZ>ڃE&ň-:9恳m1!IJM00. < TADATADATADATADATADATARIM.EXEu 8r|Y M J ԋ_3@2)$ rU Ď+V i1(&8A*Ys&7P9Ub29=ԓEF;7ѭ[]2!f{1MB%rBO4}j"Q (QD{C\>1 = %:F\D=@4aKQ79Sqizj*cdn{j(LJ `9BIgC^_-Bp\C9͟@1ؽsp:4krMi'J(L\3C3BJ<Df[ML4SBP$MrxDK@ hrK d"JT8B$@HgO@@ѐEC1$f2.$Lex 1d-Bvȱ.I}ؠ# 2Dn0jF: bX F&jd:/fÏ !=DҦ ڊ+~ !@Nhs 0%,YzCz_~AW8.&,U~qUr`XX<n05HVX @ 7" 1;2;[E@ ,%qtD l/,0$1Br5.D!_yHp ,Ƣ`: 5 @`@"vÈ8}(GML0 ,p~ĸD.8 @x>9薋~G[=t*W# }oxSκ@::s0H8ȣd`}g*(]9s:N7HG%T0*)+4r`@-:` &E=p..MK(Ҵ6IqJ׶-\(BxժWjVUv "B p8P|Pb _XD9AI"\Hh#+$(! _08%\Bq`يZpAheSEo9&1ac#~(`R@",@A7"HJ*(I `A"8)D2Q&B ' Y7Qt<"xI/ X sd'b+7:;e@W<`0`&Lsf 9 [m t,9s VPtn@I4y6&7 `ә5{tLOҘq1h;%-!bm̹B8((J64! @9,A:zc0:HᨷZjSCO @s?ـ%ƑƠ*bv tRa~$ XD0RJ|cu]^r\H%P BF1W ,` ZIrD4 >^PU7/J 5:` Pw`c! LƛAUu:@Hx,1 C4,Q< E 4ix>oC_.*z\тܺtѴ@;C;J\0UseQAP"M8' 3̤8)Ό3̬ .\!P%|'(\!pZh>>*:LpvTB@v* .(hV:&a\`>tS`P`31u.(@6$88HRDOGт8=HVR&bγ3E<9oNr[cs6LG:jA cl $v9v@e7ў6 EejJr8t+:u7/hF?MG0vp ʼnB.6 (7$LX@%hXv]Gr Z9pܠvg Uuv A=}]tPNUg(J+B <6{E0l/[t`P,6ԗƅ`i|ZuOT;+Z[^ 75堂a]?YP,g#:)lbtlBm7. 殹V\7gv& rbzS- 8?HAEwt>uKNQ Ququ|Byч }j.&q#W,r3 ,/n2.Go,}@&ry7pv vp pĆ#DŽ0l&mT z0|MQ|x g y58nR9Y@hosW=1"ÀE'?K'NgQ7}Q ~uiǰX{? `j),` j`j`x`|` ؉ ( {( g{f Ũj t~-X-gsqVx9,@SomPf5iv cz~w`ff-Ue~/ Arݸ07uws/` z(,ffivyB r Y,r؃lN" PIxق1h3i5is Ў~# x8/S w6Kyx,Բբz0gq07Qlw~-q MmA``C2^8%!|Rw7x[yx0jyiB0Gh xxS4)}iy`h6yb cu0j)[ES `6ԅFELٛzy @x(`I*xr$_20 N-0W,BP2Yr v%)2Dp `NID)T _L`ZS韍WS dB! >!M7Z_7_e Jʂ 77ـ :@ Jj@, Zؐ BP ٟ40Xs"@P^CZ?z4 fKP Kڨ- 0`Tjfj JzWXW|꧀ _LS= z*TK=O PZŪ;Qv0du\G֤*Qpy" o ٦ 3 PZS: Y*.0P~L22D "I% `RijD uP*cKpٙe00{oe-c'eP s} 3; %I' %;K'; ¸Iy ;KIF>6ZIjN{=Ъ:Q_pD `8xb0˜0yPUPRO+I`wc ;KǖVTFUkv^3Z^D:_@M6p@j5@XKdkfh{ CVU@`0b9A]Fqc"YR鯛d77 IP2H :KvS @`7䯭:d6@E|`}c[ekg`+`00PU *zvs;%5c `VF"AoF>5N`'!w,@ aLM@#ҳ==P[ G ȅ0pƝk\)-3ԅ#"  cPcdqtc7xF8מc9P0*!MA׀hx?* hy pٛk ,w}z   ڤfju>p h[`ۢۦ}r ,w3( " ݻGݽmG ĝw& ۩۾] 7w.`O5'=xj~ tmk ,ͷި0dƐ:#|>y=> :&.R ֛=VlAKIRDŽtppqCnpN'*A Fs*o2K* wmH}y Vp٘ސu6vp B D`)ppYy;p^0 Pbs0W pf0jj >n$&~Ӆ'V%N⸨^p*.$̹'UA-N>`ӁXwn^%1` f7qE. GJT΋' >R c=%f^暰M}q~6Xk 1f ,`$ ^Dø@0]$/ h :0! Ҡ8j"Rm h I $ 0p0,؝oR/ n_ < b#0jK,50eT`^nApp  2p00 =PMp0`r hYjc Ȏ ٟjoh?hH.}hߪV  *p>].;_j `6 A *A UAUz9 >PN `!* y!|,pMq!" Bp w h *A UAUz9$ * !lĜ`NFP!L`NFP-@o!dup+ !dNFP-P';U!P'B !d !%.z`NFP Œ_`wfs-;u]C ,yPH~p[Mu]C=Pt  ( *A @[fPWr>p ]{ܼ=o!PP0 4` <  =3>~ jv=.Q4~ @P~=.Q4Ծ uWp[Nr]YG~ $@ Jgُ=Ul/ I$;Tb> /6rptw`,( wo PApHSNnqFr`W4[NrI t>(ٟ b#GWpWFP ,X/!<Imu]C=0BA Xc 8>%TrI P'Ba 8`NFPo!d0 d   *` @갺De sua\@ƣ I*  ُ /o  g/ I@ b 0}0@ b갣 IJ [Nr`| *` `0 KZ  IB㲐` O(0  |  &@~ 0BA Xc 8>%TrI P'Ba 8`NFPo!d0 d   *` @갺De sua\@ƣ I*  )ُ /o  @ bD갣 IB:p$D65  ˉ @#x>  &@~ 0@ @~9^tT @[E$PPU  $fBA  z#H @~9~~.TN 0 d  *` _rI  z#FE b@ Iv㖻$    0Kr  IrC 0v| U #_nlME9ԕEބ# `J 4p9=˜BDr# ED0$@ѡ3    0  |3@HL ޡ `>ү8 @$AЁ 0 ##  G_9갣 I$ Ъ6 Skqleq@]YDmȀ  Ā`   rD# v4Ȱ 0K|/>Ӊ K`#ak D`E +/> Ȱ 0K/> Ȱ 0KP/> ҞȰ$ 0K/>  Ȱt /> 8Ȱ pȰ$ 0K/> Ju/> aE \ġ 0K/> @E 6K/> Ȱd 0K/> A K  KX6K/> EȰ$ =Sġ` 0K/> Q4E ʰ HȰ 0K/> A3E ҰD 0QĢ/> E ڰ XȰ 0K/>  KD`Ȱd 0K/> A KhȰ 0K/> 11E DSHJ/> A KB/>  P[ġ 0K@> EL ` h K % KK> ?Qġ  0K@> 5?Qġ` 0K@> B ?Qġ 0K@>  ?Qġ 0K @>  ?Qġ  0K$@>  ?Qġ` `ä E Ԥ &Ȱ 0K0@> b& K2D K6 mȰ 0K<@> " K> Ȱ$ 0KD@> Ȱd 0KH@> B ?Qġ 0KL@> BE N EK 0KT@> : KV E\Q 0K\@> 9O O E ?Kd@> E|T X00. < TADATADATADATADATADATA E j ɓȰ @w XȰ4z* Za v E z ?QF> ?Qġ  0K E o9>` PM5 Цe U1 캉pX6TSVm P_[\\. 캉pX` =0~ Ba zFTSmJ P_[\U#Рή a ˠ ` ̀  6,* 8 >,* J f,*  i,* F,* ,* ` P X Ɛ,*  h ,*  x ֐,*  %`  P`  `   & ,* b &,* "` @ؾ  O ,* :`  ,* `,* <   ,* _,* R  `  ,* R%`    (` vY0lME9ԕE0K<0A> VQġ0K@0A> Ȱ$0KD0A> Ȱd0KH0A> ҞȰ0KL0A>  NȰ$0KT0A> 8Ȱd0KX0A>  KZؠ$OO\ġ 0Kd0A> E|TX Tġ0Kl0A> FL ,*A ,*A  ԀӾ Ԡ$ ( ,*A ,*A j,*A  H ,*A  X ",*A  h ^p ,*A  p ,*A ] ,*A 5 ,*A  r,*A  z,*A b"   . J,*A ,*A ,*A :  ,*A   ,*A 2 @,*A   E *,*A  2,*A >  U ,*A  ,*A  ",*A  ,*A `! ,*A   X ` @| ,*A P,*A r  p J,*A E   P        ,*A   E ,*A s     ,*A "   ; ,*A b   ,*A Z,*A    ,*A >-    ,*A  ,*A - ,*A  ,*A "  P ,*A J  ,*A '  p  x  p ,*A E"  P#   T\]df/X#5/Xc5/XqP0K@ 0\I0K}@0KP*I@0K}@@0KP*FI0Akdُ  Y ԺFfY ԺF HY ԺF&~)Ff~)]]Յ 0KY $  $ `țMg9k $Lg>'BA  z/%G aP@K\`1@2PU A  #/ H@ 8>j& a #@ *&"L/P *B(R(L/P@ * H 0@L/Pl~[ NvJx~R ְdwtgx3Z@ 06dwtgx3Z>M LBBle5]\]( 8ơ@ @^`##)DINv8H@GAHc2 LrhKm`2 8Q@C@C *Ab8Ɓ*Ab8(P>@[`2 k %Pyo%le5]\]i 0 @## 0 (n>9B *0`00b  :Fě~#- мPU JF_6ۺPXpX@0KF0.Dd Dd D0KJ=6PѲztom`nH M<\/GF0K6Ĵ;Y4d`08 s?w0K.KI.Ple8\]" < E͐Ox2jpPU 9`\P 9T = hf%MdPc\DPM~ <  = ddALFIf0jalf DPMP \= < MdPW@0KfĴ`dd`0l PU]e\]"0]20 $ dWYG2jpPU P000.   5P = ˇfDо <  4`D~ <  = ti; ti0|` U% fDP 4`= < MW@0K@If0 PU]eb]PW\UJxe% ӱU SI:vFܼ؅60PD}3 ˝E EAҷ?Pܩ]d0PDp}+˝E E`T`,@xSj oTTy Exd0PDK1D$YJxd0PD}+3@KLakܯG Eܷ&1D@WA_Ik]xk Ea 600bxk Eܷ*1D$YJxd0PD@}3@KLakܯG E ݷ21D@WA_IE]e\]iIi} 5!M=fH  !O` `X#d@ MP   !M MP MPPD`  " `/`  0  Q I0@@pL]#9ԕE`ZS&3+4*0K\I($y j&)FׯL= xk䊮 L=Q/le_fՅ#`Jp @^`##)DIpm'@GС$ >0 ZTq 4( MQArh$ .AB$ # ED0a [PD0`|N#`б $ 8:(*A= BM@ ʩ0$ .AJ!$ ԧB^B%le5]\](M ! @HBHV ( Pkj Ple5]!8 M!B"- !`눁 MaBu"@ M2 k@ M!!@ sL&@ "@ ʙ!B *6w@7/|ãЪ6px{`  0z  .   0@!, @   .   0@!`{  0@!4 @   @   .`  0@!  0@!H @   b @   .  0@!W  0 td@! td@!b"QUBae% Y'VB\u(LI y4"iyUS  yYK+~r  $XWDc2ԴWK篇#+>FӠ1쿈WsvjAR;tc$|1(." _+%;c4|Q~/ W!}E 4Hǐ=z@BGXR5 DA&GDhQ|x䇆$QS(x䉆.")M**GhS #)!*Q #9!!Q ]I\؅#+1xQB2PW;u]a1Nu\I<3.D& . H x @E.Ť8ਡA$B]hQDPT1e1E @:{ ZZNXND6p"DP +<\"j*LSjTo::PbJ$@$*$I80 . :MOj22CDp+{DL[zsu4p\ [,= GX-+̇(]D*֚ bLDp3&[}$5݊p pth@ ! ¹">rCPN@6Ÿ m;Rbh t-xCHP?p(wX Dc"ET w+EjQhGq+'ɭ$@I;FHT xu5tPR@wKD/?6O &DHBI$PBp @ uP 5Bb(&Mhb: w$Q?*xIi& B ! mCp( th&:ֺvEFj%F gB:R%la+WʼnKdy.+ g7MdH6G rp.v:NDnׯZWU@lxU($f8EyG1Yyl$7H DW 0*|a 1C9J $I>U \bH:o̢E/R$]@FÔQcDJ^oe@jcvq\XD'59%T0k`+Z+@ ($T$ P&da\U*Sڇ|c$B}pG=F6IsVJ@y$(1A(+4=q{r7k(ZUA %E,?V^@&h>A|BD%RC 7uY@P|!"lf  /yqwU.'Teӌܚ\4M]P'@bt'\@a>DEU*NOX@D,sF5;sAϣ* h: wV3)hz%@"LԎ51m/_8_%Û; ]2 Ŗ5a\ h`.\!TQ=u*X_X#.l<4ŷmm`ӞTjQxo BN%oe"e@ݭ|b76[ pF \t9x­uo*@o}GQn)l7 !.̛t0je@"nxǻ)sY ؁E8@) AMA {+tc Z+ & XXmH@څ^!Z=\x^3p0 ՚C%VUӇDF*X*&\y^RHR?<[E a1wyn'L`& pVgeݞ}(-vϟann& iQ{k}XHVq]!6r'J02uTu'P{$ 8QG>7l..00. < TADATADATADATADATADATAKĀq2%$x THT`d|9:6@UZZ|'28jW:~DT?QE8QGX6XJHZT8@g4YLx`(1x!(xcfgr PgZ0]IcK7d\^c^* ×:llWx0 yH ʹ);V>jd+'0Z XXZ~=~WPGBӋ9 6r1qs=8#t~C2!LG+ V&n'fwd>  dfE pPp {Hi0L f0_ r_ߓ/t"yzP'= .) _ 4(`@ ;y 8 AJr ؏Y ܠl&l)*yb%)cć vxo p!UД6)D p0U`2s=UTg&)61{i} 0VH>_)oȠ8NPmA  σ|9e#hC kO0`5 I pٖ 1 "@|DyT`F`МkY6v6}I/DRʚU h9Fɟ )jY66I` T+03j*/ Txa ʠ P SmDTJ4p Ǟy$@iOyJjڔBPE@ -FzzڗdPz/k&)c:Fڡ:(0mnrm J6 @Oԫp0p 4e  jqjDo <0*@gk>"xx]%ȠtAt@_5ӈHFv )l H S.b e4T>ЩSSP.wB:0Ӱn- fM/͠ L0G(M>X"d8;)e )2W+ wѴj'=S[3eɴFvUPi`z/7WbT-hf亝G-G$x,2gh;Tb Q:@]6pL8W%`ͻHxB̈́ZP\HX[]m'ChWkXPMZ]H_x|d>qOZ`{gsM$Z& S'e ؍Tה~ԁ̈́,Ѓ. W ڗ֣MZ0Ѓ2 ىM5'ӻ/ap[66lۻŋ6kݰ5},z :8ѓ*} :P>L>@ U0^+fk< |p/зC0 Ų  m4}ЎXsR'wAzX ܆  )P< 5 9n1fj-K0䢆Jp4><^HPe^p\'P"PH帰e *)Pd 4>uUwuY^vbcb l kʾ((R)3BF_ Aھ_ 9 gggh 0~ `1  3N YO2o`h%2J5J` ;o=_`U@69'X`eZzݢp^/)P`>/g hԠxo'` 9 {~? d f`["Sڵ Ϣ80˦/  r/ p)txO U x1__OS>>z`W@$6 oR-K'SO::zf  < @6p`Ű> |`CpGUP*p=-ȟ:/g#e68򰑰ʎGO/2@=A?E>@@GO#$:/*(}*3?C_GDUɣ@o>`w4Pp,0D, |`CpG" |`CpGe0t} 0P;[2~y ? {-~~Q n L N:P(}*3ϑ` -g O  :phGO/o0.sX;zX; K` *]a.\ۂ/ŵ-4,H_KKڮ@/ ()2)GB<+, | d(B*r (@/ X@0?)*>Fp ANP擁ekn`0P@ `NFU;T-{  cszW h5sknZZwD  6>P;PK`pa; y'wD9x>Unx?E xy {M52bz LϢM{z k_ ofe{Mq >` ֿW / X#|`/Y >P5 @i/Zf΄~3 }$0& aR,hvh߼տ8н,9|B 0` TP&J>Q'N Tذ8H|` ֺ@> 0=h00.  ԥ' Tذ8H\؃w]| o@> 䰃٥'  vh@ n~ - .e  I Yȉ ' U#+ X~eL̸  }$OPƨ(ł0 e>'P䡅 ;>Unx?gsze>a oV~ `e c'Lp-Ppε-N>80,T,w~  _j ,Up/s 8v.8 Vp݂2l PXRp5Pml ~r-\pZp5s\pV@>N,@e2'^pRXRpVv8v -dpy,T,|bQhp۾؛Cۮ\̜ (ל`-hpN>ec6hpΣ`-h fp0 jp2 !dp'-dpN>] =N>q U0EPUp,T,*p  (60-dpێ*M:m "(틽9$EF]|Qpp۾؛CNZRMTmnp 8틽9$npmpp۾؛Cۮ\|pp۾؛CN=xץ'np8틽9$5TPإ'np 8틽9$npmpp۾؛CNZ٥'np8틽9$Uڨuچмpp۾؛Cڰ npmppEppێ*6=-\p-ZpP6jph`RpA--Tpec6Xpi/|"vp5( E))rp))O*2`xpvb*02)۞=ג-zp947" TA^.;6R~JL& 5EeEۮk ?:&: :p9[;,Up/pA  [ ][ɣ-p۞= "cQc` `c6p d@8b  @ @p{V rpm[$G`B E\>1G%tO>~pw4PG CPDpA0 pHZp}Zppe6\pdFhk$FAr$((TB ZppGUP@}P=Q\pE$p-p\pڧ-\ pP6ZphIfFε- zp  [إ]R@>N,sTГ,|tqгpoژ>rpo-tq _۞= 3F>U``V` `6N` /6N p`b8Ǡb_%:p# 4 pA o!N,Y@e> (*: :plP;("=  rpm G$&eere8f-~(KLClW ʢ?0r`bH()W۞=v` -pp p` -pDClW &ec 6pTc  $`70`bLSVwN/ML`bH()/p@pp AGD`1)p }p݂ YZLUkM - p & ۞=v` -pp p` -pDClW &ec 6p|0`  $`m j" p`70`bL`1緂` pg -pP DUkM - p c@ p @4s`D &۞=@$`70U. CAp` ~_%I4۞=@$`7 ZD0WM4۞=@$`7 ZD`.M4۞=@$`7 ZD9M4۞=@$` ZD>,&F&FO O4۞=v<9W ۞=v&0W14+U޵6W~ 6&&A]eP۞=v] UAp` ~C&UB ӴكAp` ~&1g ,m9X $p pC`FPJv`",ۮkX $p pC` ,ۮk",۾؛۾ @pp 2tC`F`M v@=-3tU`۾ @pp 7v`,N>CW&@ v=-ӄߩҵ>@2+U&&A]eHuh(/`7X`0>PjLss(. ;h/`m`0>P -pp0 ۾0 pB p`p`p\ ` -p xp A۾5 p `(RD v+@4Ű>`oPq oP6ph pvec 6p -p۞=#>pW*vZ`y=ph P6ph 0 p݂*pؕmppPE `- p >p  `+P`P 8pq>pw4PEG` >pw4PEG` pA]%6! p pGUPd}s" p `( +  @p 9` p "h(RD v xp 6`FPJ`"+H v xp ` +H v=-۞=`Ep2 T x` ~C۾fa pp7 +0 pB pe#6p}p` ~C2>PY >pp p 0߰[P p­-pyyTZ`1,>pC `&&AĒ҂&&@]e8fz'Pe|XpZ,Z iP3e(e|Rip OG-U1?ފ?PGh1RXχA CRX'6A C rnSUb (~ Jҵ>~ J6e`00. < TADATADATADATADATADATAblǠb "oe_&TW/@p X|Z -$"Ao "AN,/{hPe{en e_&H \ۂ^4 :`(`-8-@ۮ\L.TUԣ-@/UkM -%U  8<AێPp" :01 S2Rج͗>Fɣ-LJ0 RBonc T x` ~C ۾p~΄MmSN.TUe6@pp A ۾U66h`|0QSTe6@mC xp A `F` Spr@ N@p7m0>PjN Np  vPE -P ec685p` ~2>PjNp  '`-XvٿUSߊKUǰT F _eXU z F mgbzP3e \N xp \`Z Z @p ml ZAێPp}r UF1 `FSq͚P 7 ^jms`v>`-`VPX^9"jms`  jm_?D N>O[Q{ K` UF1 jN>O[ Сw^#N@p ml}jmgbz xp 6 G HێPp}r cX96`:׬ Ű>P|`-H^>F0 ^jms`j_P3e \p" b1/ j_eX96`:׬ Ű>P|`-Hv =W F m>F0 ^`(Rִ6  7  qM  F/j8`-hBQZ-lf &F_cAN>]REAێPp} F1 S2Rج͗>Fɣ-LJ0 nonc  T x` ~C ۾p~΄M/eBUE]6>h 0ypp A ۾U66h?@y>ULU6>h6$ N@p 9v` 60p)w/FN-Pe6p5ZIJ҂ &&@]e,nsz1 3tU +  `7Xސ^`3tU``" @p mlp,*B @p[p,0DK(" U` N>O[ С#&&A],nL xټ>}"BIf`Ǧ :  Ԗ &*` ~r-00  c d/P3>og::'> Ǫ A ~@j8`Q@y, : 1) İT tچм@y : 1) İ ۆ0 c A ~@4pZU``@y  rP,|PD>y  B툹w53P6"hC< "BI`& :  Ԗ n*@\/J03J5ʐn.cZe6<v v * m>vN7 ~ "A0 -29PX ` ``~#~Ȱ0>P PP 悐A`#P6h6 v# *= m>vN7 ~PX~XȰZ ۮL +<U6;6IE N>U+P6:hi "A0 2/ 0P.>~w4P G Y 30 B A]u/6 A]" 6ٛe6|@潲 k@4< k@-540A0*STe6<C@- au@,'Csy@ĢXa@ 8a3 ]~|dXdHQY$FR D``Th Ry% UyNFVa`%4CÐ@NP&m&RA"F4sCAzI=Uy \^~W$ >0MU|=Ua0GYW- &sWda>xx'y:A8`>hQ-L}TZH_NhDR}8 Sh"*.炙/f@38!U: YQ0pUV(\KJbҭc?6/xҨh@m+/(!q5:Ҽ:nhjyʟ;iZ\(#6/5?\)]uYVyByy - l$R>XUWK1=6R^֮yH4!\j"A6tYr4yKl(( $>U8o!$} &'-f}K ;؎k#כruJ;.ty/ +BXje#YV.<..8Se@10}?/ܐA?,pR@A_LNHC(?}l? !#B XJh0Å5Z@pp|x?  h(# _XD9 aUX;\ (<`VxYb+:Tni\\H&v" XHPhl](@r\(T!.@)ЈBXG4Q|@C W.(@: C00.  ApZJT?LaIMU &SMI.hjRݼ&(A(y~ Є \AvFx].(䢞B F@8 fn`.:nj,>d9(٬7&\9R1RB,)*u\8AvŅ@ zT Ze8T8C W̵˱.j T:€ 1 @F?PZPq5Y`i(pXA-L@f8& AЫܗZ0 i0D\`Di )cHD*" IYbcqa~0"ʫ? `|]D%,j ]2Ȓx6  =FTeK;@,[?vCD\!8r91HV*'ʊC!b812 1HHlF q <1>CbxQ(WGp4n@..  `0*$s- $3Ki bFp(Fs 13bV$~]3n(^4C!aζBqkz Wzm_x4|$"A`)eb=LKz61]ݺUl͈k2'A5Tc&8FHl?"QKM5 .#슸[nl3pp`6D02,B[<_x,{v7:aپ{mgVe'7og<_r] κ+q%H>`G1>/Hms]o[푿 b$r`x 4~(ϒ`12+R|ʶv%WXx:0\ܔ,0* P+u#oִ 1Z6h\1x@  bgn\1 v 6#tRsSw G_Tr}(x*m%~[5 U,|}||WG%!;e V7b( UY0YQ'kv g@aȀ&`V8Ɓ!hu&gglŅ^h W q 85HE 5PkXZ hTK` g(rv X14Ȇ>-7LЋ,-gH8g7s Keh`` ( k HwHw}qtԡ姍h ,(@`a8юٸ88d ejxm8v4tx(wHy؁"xu{7|eH0+x/.ɨ!6؂_| 6% {]jjjvbHPɀ܀kkP, Y f\I$Ї#(JS)\Xq%F%,A W`> )X4wTpH3Zi\in%!b}Gq%@0ooR5 [yT@Hٚh`ri~@lj ~ } bSi eWvL8IRytItɚ' 2f'@ 鶖Gnz˶7Iى9xz $hi7>p s$(sТi( *rRIe؍ٙYU6@)㨤?ʏD38i9LPI km9uH\1>P!?ngz y)jy70L `dvjjU{]޵^HD>0 VЕjZ0>f)1äfJL@* ڪl@@q  Km &)_Hzaɮ*[։C@H tBWJHg PG.௴ft+j\G^g۰Aaۍd' n:Z1Qۖx JGh3~ujwÚwwH:L=l [8L"@>p&gw⚢dN G+sQ;Ykڵ77L./CX ۟ilPǟgW@8Py;A:fmxKHj72Q+i74ZG fZz}uj"y6J5L6=z#kg{jє pchjA^Gvc.y%>`F%_,14 6 Л ` ^ $ za XN `0j+ѿ a\0{.p|2@ a' 41&)< # &,6& #hL~ 0 /#any \Hk6w-l Ƈi\ ̀8u: yl{,zJ\1*jXRY1Ɖ lm rP{ǤLz>@ȟk<Ŝ*좶:Y2U{9 <>пR̗pI^6 vcK%r7vؠl \͋@+fP)La,ۿX H~|z.ֵ2 |~,; + 13+ n.!8Y'n)>|+bG,2NU8~3:=`.PGNmܤ ]@m}N%a F滀Ƃ@ifBWZ0َ^ ;6~{3㪞dv| P|>w8[M? G]_DխVP`Pb 3>]= 2g OOAg!H"@p"T &P->~Mn^oLNg` $>0;S vNل f `  `  ÁgHl|AOh j;bGJ?; NLgypW#PD lΠo8O:_@o>`KJy?|[/ UW41B[  o7ްe_n:_ ו` GJoPf GJ@H?\ M8u Xo(@3~``n ~`0W \ @mn#`k UE0-p|xQ~*F8va_U#۲ Gp!lo8O:_@oA FޡR7UW41z[ o7e_ekv?0u4uoTGap!؄S`>E@a ν.D>WP}d-ۡ*[$ $.`\ n@@ @$AJ@ a-@ 6Eƿ FޡR @ bXJO._O @ QEq r] ו` GJ;`oQ q _\M8 _\%B@:_PR@^(-E@F' M,B\J3@:_ln@^(-E!F,Ҹv` H bFo!8vGvG Uz0 m톺 "@  WK `D* X " bT Ya"""`w D ú`@JǤ4"`L%! @k \ O+:@ Q B@ \  U \ < ?5 d Ya" d ,a"`nMe\ U$0"N@ V"j "j TR@ "VU/@p "0 l Y"`$&0 p -~` DOm@kÀ"Om@k O+Z@ ` P@"P\P@"S@"f @"f Tf@ A"j@ \H) n5f" " Tr@ A"v@ \H@ "0 t&Y! "`$&0 Ya "nF Om@kÀ "OU6 ` ?ew @" %> H H @k O+@ `P "P\P "S@"f @"f "؄S*h ," ,"J@ a `..B ". {> Y@ ^lY Y" '"eT M-/epp .B ". X[K-M-z+`V|ˡ M8 0'#eT M-5Ya#@+ @k (0O+d  ` P#P\P5"P400Y!#`\# EC#P###`nH#60##~z#\ E#20@#60W(0A"P440<<U?o ,!" Y!N"9Ͽ o @"@ "Pۉ 40,a#~$@ێ ލPW#`W# i M> @:A#>0a"+PW# #~Xf<0#e 0v5<#0 0Y! "Ў ލPW##~D`\#\ E#20<U?p> @J"8 xk ,"Pl" @"f  0 d Ya"p##`a(#`W#P<Y!#D0/@(0@ @ADA4Xf@0'#y"P4d Ya"" "0 z0Y#Pjp<U?o80z<:" 9"ێ ލ xHH@ @  o ێ ލPW## i M> @:A#>0a"+PW# #~Xf<0#e@0 =<##B@Q> @ !"HI xk ,"Pl" @"f  0 d Ya"z0 #`|^ ,!"0 ~0YD"P4d Ya" ,a "0 0YA#Pj=80U?o80z< hi Ph#0#0#t6{f 0,#Pl`#0 a#`}T~#08`S@ %#0{0Y#0 Ag# ,!" Y! @J"ݨPW ` P "p?> @J"x xk@0 = "PQ<Y#`AЎ α xk<0=e#p|>0^###.>0<Y! "Ў ލPW"  6 Y"$@ێ0ލPWF"f  0 d Ya"0 A#` (##P<Y!#Ŗ" " 5272{b 7 If$֧WMx ,"Pl" @"f {d Ya"0 A #` a #"`@@ @$A @ @ADA "@0 !#`^$w I #0 "`}Qң`#@Q>@  "`}TQTf#@Q>@ Qa#04A KH "0 #@<:Q|D @J`#04ÑQ |D @tԡa#04A KH@Q0 #@<:Q|D @U a#04ÑQ |D 7-J Iғ @Q vHA/awހKH "lD[#P ##0 0Y# ,! Fps~> u-=ym\ғ  N@ρ ۆ"mSK  E Xy* F 00.   "m\  E Xy* F ۆ "A Fe Ŗ" " >HYA$PjlWp^ p "p ` P b Wp^ &O 'O> -TQ۟ "`}TQ˅$GI I KHm$GJp  ,"Pl" #@ 0 0Y$@ A$`X% P" " `$@ūfpޡ"  6 Y" 7 IW "`}~u~0~$8`S \ E#0#0: ;#P$&~%AZvDm W IA K; GI IA ; w I #0#@ 0 0Y$@ $` Xe > Ж Ŗ$ @ Ŗ" < ?5 d Ya"  @o # \H"pw3a#p%E` C/ @ !R 40A G @ ƒwC ƒ􋔸WMĈ^ݣ $@ $@{; @,A$@YA$^0L@f`$@{@Y$@ $ 2 @YAge$tF-`;Uve$`;Ag$b=# gެ 5B7B֌/}@,Ag$Pݣ$tFOM fRBg$/@A@ A $`2$${@d獇 fRpΒ@/Bs0 $($/@ $ f! $@0 @YAei $$@A a $,($` 8Zc$e $$P#$p#e) $"$p͎QoN<J7L@ $PBB]K^0L@܋y0 $$/$@{ $00$@Be $`Aa$  PJ@_e$@{@Y$@ A $0Y=՞j~  R0+>~b+ R-S mFiDmnwdwP \H ЀP ذôDd> 0L*P 0LBP $p`%(P!X,%~MH&P,%0WnA&O%ORP VP *P U *P< ?5 2PYA% 2P,A%`nM*PU%bP V`%8P`%8PTfP %jP \H } "`4%4%`$&0 >PY%nF Om@kÀ%Om@k RPO+nP !``P %P\PRU%P42PYA% 2P,A%`nRP%U 2P,A%з@&O%OP P ZP U W%S %4P %4PTP %pUD W%P V %dP %dPTP %9Upp "0 fPY%`$&0 jPY%nFOm@kÀ`%Om@k ~PO+P P ~PP%ZPE#%4P %4PPP %ZP\H %4P 0U6 U N0Sv |@4A NѐrYP ؀ D܊πR}@&O`%Ob P P P U P< ?5 2PYA% 2P,A%~%؄S`%8P  bP,A%X a `)QtQݢ%.lP{> YP ^lYPY %P %{PG %yä%P42PYA%%@%0 PY %Pjp %P %P: %P9 %Ѐ!ێPލNxHHP P PoLJ@J %8@xkP,A %PiLMͬQ %Pa %+PW %Pe %p|P^& %P %.P %Ԁ "ЎPލPW %P 6 PY % 2P,A%Pp %4Pa %PFu %P %!ŭä%P42PYA% jP,%0 PY%PjlPU?oP, %?P ^z)PY% P,A%0 PYA%PjpP,%Pl%P %`}T~qP8`S@ y*@rP/A  VO>AJPC%P 0 PY%P A%`8Q1 %P9 %Ѐ!ێPލNxHHP P PoLJ@J %x@xkP,A %PiLMͬQ %Pa %+PW %Pe %p|P^& %P %.P %Ԁ "ЎPލPW %P 6 PY % 2P,A%Pp %4Pa%PFyP,A %Pݣ %Ԁ! "P A %`T~P%P42PYA% PU?pQ-eN1 ht&` "0 lt&`A0 pt 0>@JZ6 [)U%*PE#%4P %PJ@J v D @Q 6 KKH "lp"0;;pp" 1[ d̐| @:lp"<|[̐| @ !'bnΣc KH$Aalp"<Ab̐| @tԡ'bn KH@Qlp"<:Q̐| @U 'bnÑQ 6 k&P,̀ò̐pr̀pr̀J@JZ6 aG!X,%Nu4D-=yAbvHR@Q 6 awހKH `%lD[! %Ԁ> ʼnP,A  ʼn%F1ȂXdZ b>t("  'cR$c00. < TADATADATADATADATADATA&QFT Ȓ'JA"_J %:+Ʌz, r)!JԩWW"FC7Aў[-WVիOŒz6m+HiiE 0K\-PʖC0JYJ$\0  iYP+:w_QS& gih c'xZ hUh"(2I*!6'Cui@hb:]ue.h*&nTH@10P&n  ˱.BcDW:*+W檸H"H 2ķˮ#.Zpy2lw` h 0qh(&^|H9],#LNU,N wͻ00X?(NP'4CPb`q .:)"P䬀]~@H]( 9kC(c3D K$2vAwWy5Za tsc#}NO"Vs"/y+w  (nKɁK0tRv#S@ k.)0*D UlҔTT)RRW-TVfR*6:IO5҂qHQRզH1`QBP2 +0NT'CEPk(+x2d3[$r)0Ww2Gf=K~Noj AV0<=f.ځ5yt;,D",l-3"5U++q}6;2'yhC\WUA([ѵ@buαʖP<(ls(::ڂvEzZ֤#@^:yL0p 2ِO K, BwAl&V.Ea}p;bW&ձW;~ @n ya sݙ| pnG<M~ySӑ  tC".bIGvX/P8 я$G b  v\hb8z=w}7?1&S4~DXU܁x\'6e[;Zo !!Ol40[o/EeBs}b .4 [ȼT}mhlwUy v v)E90@ls- o0.reLM$cgm12 {&E0yP8 h. .,2ag>ewmPh#' pJ|sqA '_9xL(Ddc)PQ)0fx'cƱ8hvPeyx8"CS|o5pgWϔE?@op-08Y- owb1'EI0uurYx<0(@q>T #P\ ^0|PA1d,D&")(ˈ@E( @`!3 WU`Ћq")0Dr// C;Q 0G@ p0h#@mWyxmmm#I  !8WE@z)HhXxHp،x`r26l \؏> /8XZ>)Y,.)na 9 ii6" $h>Y@9B-Ei)MxhVp! !glӈdu`ȅ i&`8BH9 ~Xph02 2F0v$~l)d y &R0lrV0!K- @6-9;H=pȉTL ^ ǠwG#ryqi`6b' )CTa`y'! <)`4& `/ 1 P `8::: 8ZİgwM$`8 DVv_pq5 ~PQ[*"fbjC^&vpr DAl5)zS瞈! 9Zz}Puz ˙rJBagdfDTahPuG4@j>0vѓȐz&i جjHBq!zRϰ` ªbhʍDTmprjiZD @0D`ݚFgJ0` &E8~xȇJʮ [+XĨ~ :i wp `~hHbq9 B:j!p2%:u:'qo"o` V r`K7 P!' jkHжvrl ukrжǠsl" %s` ktl Em pul" mk* (*P4 *T?pkk0ЛСV'7?R ig:f*pǀl" y"kʫP&0sP*`s + ЛYۅfweb΋lu+)+(AQ*p CL | sɻ LfkG`}" Z{-kǀ r[㛇 kS*Vá"\DM"r69r:)HBɽ;=*hL00.  {؃ԾJN@[ƶ(\ft!6|  \(Y> bQŸ+± 2\5 7L* 9}  @p|@A8Ƌ# h ¹Q]Œ 9 lE&JEAڱZ؎Ml0s5ED'%r 3 *`@l4D60 0ǖɹ L4q2]M\ k ' |`? n ~ճb P֧ t$0v ' -nH=0  7nrV0z\ k֧ JH_JɌ% >P(A N)&V >,@%- ]aΓceNhrL_mUao  Wn %N]m!Qav╱O\AQg^W0]UYȧU&,lNXۥ0րwyn{ш0 PԚpԸ Y ,N]Ý,l< rzM 3 xi+p F] P&Jp_NJ-5̀ق h_ .R&NpDhsbsϷGM+:AB (Vl‹+P+ˏ?lv@,`2 b|P0^p6: 0!,0) /5A0RƵ:cPEUT -  -\yU8I @lW-E`.WG-P|-* ʪ!-P^ -  -jU8I. -0- )6? J5 -͋-P r Q`z - a?>@U@lW&PhjfV:/#hhfDchT@8/"PhiAD /Q'!l>@ /7N!l>@饵ND 6#A Dc0<ƀiA Dc0<i-N>^Adw-Qk>&U7?4@lV 0 (Q΋U8.PE-*v`:<> ~} -.\8 ,- t ַ0 &mUU-%E`.7/-P , -ã-u ( QUh^@lW*P%,X-Źm ku>   K-P - j? q?4!p& = 4a- ~p@!'rN J uO &* 0O r  ටO 9z `O U%u!   ,0WUTU8>PE-ȅ-P0Pz ,x0X߸O \ ?`\"-v X- X P,p-P--p2pP,0ġ-K-P ,*XQ`z -  -1 O \%@a?-B:%-0->\8 <-`xa ,0  ,  p Ґ@ ,0-7  ,T - @^7Ѹ` U%u!G ,* D.AM$h^P`0&UcŹm 4 a-P%8X-0?@ ,0-*  PA N-0-:\(9lb/ 8 kWC-P:-* D@- X&( ˏ-ѿ,8 PE P-p-P-:<mrP-0ċ8 PE  @a?-:\8 8-`x`!, 8bp ,x `a$= -  --ѿ,8 PE`  8 ˅-P:A ,0A N,0-Mp#5/*ha 8bpl?8 ˅bL}O \& %`6 }O \ ?`\  8 kW?"9*  'L,x " -P2{UP{A -80p URP],, @0 =~ -:v5D8- lB,p-P-:%2@a?> MyU -%3 -j.]]"U -%XD+2{U`U" -%-ѿ,8 PE h.ѿ,8 PE*,*tC8ꋣUZP-p_ OҺ8PE U 8ܓ)Һ80p U 8 xXtꋃ U8 PEU  - -ҁ-PA K '``ȪH.  -\8/"Pழz\--vHrд-vU L˂ b -*ha 8"`p|e -jѧ"Ձ Z DG` -,Pj.J~<|#r ,8,9 a.0v|3 a.P%X.̀8Ȁ 8ƈ,P~N"Ձ 88/"PK[P8/"P+X>D}|8/"PK& {Md>\c -,Pj.J~<| n ,,  a.0v|3 a.P%X.ɀ8ŀ 800. < TADATADATADATADATADATAs`L>3 |, ˲8ꋣUԑP6 < -ը}\R  !p@,PFao0-P-u Dګp! Ɗ1-PPURrD-pD.AM$h^P`0&UcŹm 8 ˅bUB-%6#^Ⱥ`pH,PUhaG H} Ul> ˏ@ .ѿ,8 PE 8 kWC-P:  ˲8ꋣU@-6j0^:`vc= a/0/p  /`Pæ /vc /Pa/"ˏR   a/ў/\^7ѡ` /:%<UPVUԠTVP uX6uT%U> JKl_HՕ Kl1\PV\20 /j8SĆK,,` /05pj-pD P3`b @8f / @lb0?Ƣ V< pD0  /ڢ ˏZ  PUкPæ:%v0v4. .00*R V ',0xj0͋b /a/_/Pa/P(*0?(b } U" l1` /u  0yj /:%p` /:%HT.R4UԠT4wP uX 1\RȠT4C%U> Kl1\PVCκPU s/ ˏZ R  00P]P}$@b0Px0P|1\RȠT@l`Db0 v05 JeA*> M$0P|Al0?Ƣ V< pDAlb 0? V< pDxAk0Al 0? o`ɣ b @A0zl98ĆK,?P1\TQ`z:< @j, o`ɣ b @dжa?` /:%"PUPPxq Ķ}U`:x@l`Db0 a 1ݔ7  1`.7/ 1Pi9/"PK&sa/ 1Ɗ 1P 8/"PĠM&sa/ 1Ɗ 1P 8/"P,K.&sa/ 1Ɗ 1P 8/"Pழz\# 1:Al 1? o`ɣ b @ 8/ɖA 1AK 19 1@l 1? o`ɣ b @ 8/ɖAK 19@"A x 8/"P,.0"A ʲTಠ# 1@l# 1? o`ɣ b @ 8/ɖAK 19 1:Al1? o`ɣ b @ 8/ɖA 1AK 19P 1%LA 1  1`*20ĆK,  V< pDl9A 1l9A2͖AK 19 1: Al2? o`ɣ b @ 8/ɖA 1AK 19p ĆK,j  V< pDl9Ak 1l9TAl 2?&UC?8PU,tc˟bz//,a,2/ס`xR I9)783PP]]"rη=)vD רZY;ƵRe[bjU~}S+ +}Y\Y=)vD 耱BM^8bG+I9pZs=o\:.E.~}SF.~}I9pZs=o`xۭ:fY A~}S+ +=)vD K \TXYS=)vD K XTXYU=)vD  `P `B>O^5RUR3Ƶ:7AUI\ @>`>I$@4@^@ʪ^Y*4\0dj3 Y*4^j J@fh @ A40v|3 @A4P%@X48b([Ak>@v !lrn38@m4 ;`Kl4*>044/a>3 d3*@" 4`x଒@>044*@–ƨ'8/y 4>0 4*lyqSb`/u##c @ SmM44 + WmM44 Mb8MmM44 JMfuW`.7/' 4\+V @CdT`XA0D;!& 4\4bK* 4त@I9 V \4\4bs8 @C@$`3?>@ \4a4\4\40 @ 4@FH@FK 4ब@ 4P@!4)vD!P~@`B>O 4`P!4)vD ^` 4P@!4)vD @TT`# @mg @#@bGA6@bGA6@bG4`aCa 4)vJW& *@٪ H3 C$>6@% +s @>`>*IeeQ ܔ 0?7 4@c$ 4P@U 4%@c _p WmM44 *] D`.7/' 4\4\4\4bs 0`A\ b 0\ \4a4W"44 %HN@ :IUk15 i9/"@CP`$ LѺ W@z5 i9/"@CP`$ *F@bGAD /T A% 0  bK* 4त@44 %H@@ .a 4)vD!P~@`B>O 4`Pa 4)vD ^` 4P@a 4)vD @TT`# @mg @#@bG4@5 @ 4@bG%x4@x4\4\44 4@@T PP  4 5@%y@N 4 x4@x4@bGAW 4*@j 4JW *@ H>`>@c:aQ 0?p3 TV6@%00.  HM 3  @ A40vO2 @A4P%@XB 40?-0D5 D @CvE0@T*Π @#*֠ @TmM44 +WVz5 Q0 Fd30 Al H>`>@c:aQ 0?l4 TV6@%HM 3SMd 4P@ 4P%@X 4,d3*@–QW ]15 \b:`/Y4[3&@3*@JMA 0sж>044*@–ƨ'8/y 4 0 BH6 4*lyqSb:%P0Ɩ 4b30,PM0 ##z5 \el@CDT 4@z5 ([!4)֥3><044 %H@@ \2 @ A40v|3 @A4P%@X 48`` BS0"-B㏘L,\@H)   f@0IT,6=XQȤ Dc4PD،GzDVipe^%]d"+8@AY "A4%DPh,Ɗ46Xg@:`ܢB:f,cG+0Iau; XQ4*_3E6ji#D:mX? \=@ [+?v^v˛g+7t,B 9tD %FhG!TI)KDN݃Msh bT?(34\e@d DAq ILGsmLٴHR@|з%O3&C~iQ-"TIc^x&{jŷ_\MBE,Ha4=XLG ,|}fu6bhmPlBW:uc ʤNBY #m&Gh44 Ҭdx #(xQF,beDc 07pQ{f@G- 1~8` X"4 o://XrB`Ӏ Dq \ Ђ_h@Uď(0@~AZ~it@s"# 8c8l19@:L 1 i@.\'>IEV\1$גP!:hHǼIwqг14om&M{,4ml#B K&n bHϬtM8 eC.90Pxkιw1zTުʹЮOAx%Os:xG2xo&Z!TX BNr+͜G{¨^ǓՎpD\*4`X_6?)~ ]LE@vr( |Z:@ޙ}`wanj aE4bX=0,1{. =)Mg]-# D<#i?@&#qh9n]ZV7!JQ@\;܁ )܀xT[(f98Fs4{K_ v9Sh+tlA O^"e0Z@/W( $$4X fSl9527{ H#@Y&dmgp@/̦0 B 7n`ЎB))GDm Q l8Rp$`[l 3OCҘaE݈ J;M`D] ܍tQ*IHl `aR.%S' XT9Р4j BЁ>Xth* ʮtA8O,XBJ5aiܠXƎl^Ȭl;۲̀M+J+FCk [Jt-Yqȶгmttti5.);,t]N7.o?˜c?ax Z"4z8c;[He`E![X"4~ \;`Ng4-|wV 0؃ %n5'Yi :+5ME)+R*],&Qb6MA8Sb"~r(d㎃֘tL6|l<@.Ks@;H@!޳̃ @g r cR1p@P< h!!E)*JU|pHE`(qG&v/bN&Z8[h-ZAAD1Xa[26Qh"ɜ}XwZ͍nu~|glcR:CҶEdQZBunk^!TX@FPy0m(L Z.~\>8t'tmp 9x-(n.q"aFE:6jvIv;i>7tmSCij^Vq+Ւ &647tڜU{s؏[ͷXhYT)NrSg +"8H0 AjBib|HF kvAH S t <7\HcX6$0 :.{+EE%]P0y+\X?D1kJ } "~CLt`(+ XL׀ymzGzz/H`}}6g .}}~"(0 p}8 C8FT3ia 88 c8j06>Ӂ"c8Lr`jh_orRHLHF3u"ch1{,h.4l@F8Pz Fz> V`Z}A@a*5 DHG苃D b` f`~| p8 j`~ &@(p8X n  i" ~ ݗNǎ- H0( "`< }bAU0*E(8|@W vPlrzĔӁ!$0xzL6(hh-9`XY(I+À/i6( 79y {Hh d P ( VI҉01i@vin@9 `ʠ=i 08wA @Ht`Jàџ嶟џ0ڋx*j9 @},- J 9~P E7.ڡ8p=?.`(0[!wȋWd` 8)i/ڠ@ )dj/ހȍ9 `鎸 (Z D( g@PPrG50PVЁ1dD0 @bV ZpVp~XʨND!ljHu 8 E?^ yXvA ESu` pǀrЮ @z*P'GS)wx00.% < TADATADATADATADATADATA* .x3X==i)⹎y i s*w|:+WG`J `{p':I j<9 }@ ,p G X̩״頲Y+h.31P$68˺z") $0hۘ h* ȑm{,eZi8`;TJjME*ˤK=€ *9H`/.G 2eb/6 Hf0z9r>@xy}BP):i/F ,C J NȈ(P⫐! `^`pB5t 𹙤Yi/bдf{Rxjp۳J[; h3 k+| -l/zz̈́`i/0P`Y*zq@.Ƴ rLǖpǙSj *j*00-X(2Yh@5v+1 z+ Mk D FАZ˭9E`p l ;M@}0!&ל8WFZ -{:n u14-`ʠΠ%|Ҡc ̼8mНt* ȸ a eea6ft3'w{>9-=dTz`  k/`Œ@PnU#j@ 9ӥz+ `튠 ͸K *m`>l閣 9 =} pۇܛ|P؎"~ȍ4#ur`گ; }2mȝ &ڹ`߮= ͋ -9@9`ڪC MG}~]۷ -=ܶJ2 ݿ|pZMH|kT+:`7 .: 6Os} m*kP>:`L4H^({6PgUncv^ `>8a:P 0K.-@Tu}@W:^>߾/B tl%"`"BDvanHp!壠a:"H{."~nNn냁-ʇC=(`/N J(Yb`*1Ёvqr *N˾> VX0@rw@Z /RV?ާWPr 0=k E+~gu >k>Pé)M.aNrҐg->nG#A_꣠AcͰבq}AhaAaS0no$5O*~:P'vx`D9- _ WoYAFM>^n >^nrtPT'p;} J&|"w`a:'_0 ~怐RVt2 n?,>`pGU`ToЁiatz|| R oo! "">0 0>po$_>0)  X1:)Z1Qg ax3j?@~xm|Җ"`!aNSn-nnnxlaeg~(vV. N p ޶@wVy qA̫!oOa:06PĊ pX+- .oO No8n%O N ~aVa:CP'9qeNdnU=@a N eA@\ 0p6:6:p?}Ը ̝ȅi̝f [Mi]ydND:PPO@ v@b@gye$D>-_ ;3M!`;0 ;r>-D_ x;g `@jpݢ;p` - xCi|`  i p0xȼjxPИ  @ ;Pn;Q;x; ;0 Zm<+xPftס; yp  ̫ ܞuB p0xȼjܞ; yp  ,AIb mIݢ; yp A ,AIb Mݢ; yp Ӂ ,AIb (pn p0@x t$t-p0@x t$_>@9p0xȼܞuB; yp lxȼ `!@\u:~s֑w3j-fwN X6>@k"nBfnafRn2c ;0;ab&&qb&sl&"0 6Ё+_p2A;=Xh% PQqmGqm0[`/:o`;0<ň;0<@&>5bA:~* p2A;4Ѓ;sE;@<8 :;uBqm0[0 `0Gqm0[`/:o`;0<ň;0<@&>5bD&;0+Df;+Bu֑w3j-fenB y`  q P'nB`@-0p{` ܞu' in% p0$`F=v_>*&n% p0$`F=b`pu(**n% p0$`F`pu@'Bnn% p0$`F` "v@_> "V yp @v` 0*2@ v_>V- y` B9n/P'nB`@-0p{0[ܞuV:>7P`gMi 3kmyw C 1 !x1! Cnbd?O- p3P ^o@0v;`fbA;;0`;` ;0d;`}  Cp֑7yj-fwN N30`o;; v .a; ٲ-FhiqE  C 1 !x1 "0&FB 7;0vĪ @0v00.-  ;|f~;;0|;|;0;|}  Cpv ;r'wA0 0pgcA  C6@;ϲB 7;0vĪ @0v;|f~;;0|;|;0;|}  Cp֑7yj-fwN X6@ ` ;Pē?P`概1 aE6^`0[u aEPiu6E` Yɳr @X $mK U[gnP`uܔ0֖wN NBIt֑e0֖wN X6> fn*hgy7eVpܔ0֖wN N40y ;rg,20/(ްYgMˋ'P+5pӂ6 զצ#-!;rk| BѾ̫!;06 ̫ Eb;@< ;P ;P(iPS*nR`p3tCii0BѾ 7C7D~  콾`а0[UuΓf`4p{= FZ  Ѣ& ;r> YUb2Ua -$ TUb}V B@T TeU} BI ް! C 7v"wz C" 7;p06 i))Zt{0[ `/q Y X> iRg.ec'C- R 4NK)gkvV'&< q kǀF ̫s @q-ja @ Ċ  g <0pАA <`h1ג! <k6@` q-ja @ Ċ  g <0pАA < j @ 6@puY@u8P'fRnЁ <  <4|va < <3E !00.5 < TADATADATADATADATADATAja @ Ċ  g <0pАA < j @ 6Ib UEv K @ 6Ib @EN!v 6@p! <0l <k j @ 6la H07,> <k j @ 6la r~n#v @j--! <k@jcڒ C! <>F8~ Jb! <k6@ko*P'pG ) <!ja @ ju.' <0pАA <0T`! <k6@ko*P'pG ) <3g! <k6@ko*P'pG ) <! <k6@ko*P'pG ) <E!ja @ ju.' <0pАA <! <k6@ko*P'pG ) <'ja @ ju.' <0pАA <PP! <k6@BF 0u' 'RpG ) <la ɫ! <k6@BF A c*P' @ bC6' <0pАA gN@>gN@>2h3>2:~L@ A:)q10@ "`G G7A@>@7h[]'0@ 1x3G h3G J2Kux3G agN@G :1sѤP* 1sѤ$,$[MPiJ <! <Ba<@ @)7C7D5! <e<@ @)7C7D' <T|P*!1z$h3G I2y1x3PI agN@PI :1@*gN@G |A@-pu0tQ^h3E rWE TgN@E QUgN@>@@ GzD@ )@ 6|xgMi]ydNe\@ ;{   \[9<CP'd@ := :=P \ 0>> *=@t1L+" %"L,b (cD"e(:Jvzt@>8, i@XXdQzz$GL0  tz Wԙ5#kQ]]wi/_LXBU Ď+V1ʒ/|%*'1?$3Xwf!=y "Esr9tBbNK(jh l-cGPl`meHp ."`r1Woe-xpVxρXr#QuL TB>D&(Hf_JTUD@}6XHD6[yd2Q80tH!J<y1xCAx9BSQMs@Qu\pIʗ"P J)2A &i$ 郼1W`z xz BO""TB| AOhtf9bKh0 niɺK:ZӴJTį;tl,K|R޴ q#P©MuHf+<= Ҭ">nƉ67=@DLCJ"T&oeW1XY@9=Ҥ33n`Rp  :r >(0Dms? "?+?m r ?Qqa0vgvo=7vuq,bڙ7,̃Q>%t0{}sTh@ [ޥ38CkeYΛ/nE\DY@'$İPxN7oLh@`=؏1){R""4DȧN&<=ӫ^wկvG> }T84wu2A=΀70},юM4‚]NEۜ.5/A֩NOx1zXkA;IDx .lU U>@)솀P$ 6 `*X4S']hS6IiRCVPC%cA Ϩp 5.jmVXb̤G BR E4q e%0q5L+Df:f@%|PF`t#Jй'@DCE(C!JQPK)IQRBX:ͅ*H"-G"B+KH&Rvną/ # rT NE '> PPHLHMR m݊ `Q]WejSrɪJBQJ۪b"A(?Umtvi^ Y)2oG<`:p`5dEPc#iG f O 6_}0 rXv1S`< LpX$: [n8hWbs53CA [d(<+o_1N1Q@:!"PĪ-.@ۺ aX7!szA@1upKU \&x'|V)W&q|l+"LV+!wT~e @> Lj5>0$kΌօ.El'}l\ 1ruOL@ᶃڇLQK)ԞBPCrP|+ ʶpbQ`M&>2H8F|k@8M,@:MX/y_ :Z@+wG LjF{Jntޠ@+iR ? ~ 3e-hrQ>`,.Au@6+K1]qM8M!:_x&SB.(P^ "H 0 B`홒p@_?vH .ȇhOg}%k`DžX+b5 W̵`L~00.=  W yO"0|&z z3z׀W{{{G' |'6}0}lL!|:Ňl%h~~2 \p{^0QUp`p{bvx@yyP>~0  l]8 % &t|w`Gx|n6wukFw"  Jz QuX]NR~2W@Hy@h腝'h zzX7$&W" YV(ŧ\W@  ggc'p4h6Ȍׄ;bv{\ ?P\ moǁr$ub40X`a[ф_|?P>B[p hg& %fhk7 p{j 0JXyjh{,a |({&ɓ ?@0L'@@0| o?o (Y)1|f I%irЖYp)Cv9X  ֒.\d` 9u9W?6dA+0 @`.1r9  }upɚБdÚSёi.W" ٘p쓛ٛDF)D H铞D9F](_s>`|,I@)iV5_8阁#%TN  ّP@p~#aÇJi@ %"$!x $NJB ؄L)C4Zɕ^ ` \WCbhv~јxqǙd)I(51eW  "$ a7 wzZ9SiI)8\bX@  !:@Pq٩Н*gn P{ { [!_AJTu)A6  >j@EO`L1T*@1:szR)@) +.K z.ifڛXY欲_JeMepQŪ$#SA-j :)0 Z70uA?NDKt'l&:22<ʱ8:0H\rF)pyp  b @k۶os[w$`GkA)OP> h66۩CQcۘTШpL qP@-=~N DB~  b;K=<F1nKODɻ[;F+x4.˼{"9"QA!˽u, TA'"D?"4+[H,y 1>~AH'0zbx 2;lRIXǰ?Mx$#/sd! X8t g(u[yVN?|q R;X-S! ;[4 "5WP`\ 'q7z( Pz)v x 9ȋ|FLADfl 2X{,?櫣=A\i7 q S NJl<jҼJ%Jj zlzL i jΉ+$pbv@kܣpω3`S|S1PpJ ' +LJ& А%E+l ;˪<lн!˼ܨl:@*b<K|b@0jJ ߜ]j7 rP =`Μ({ ݊1c9Fx uR2|zs G&`Ѷ_!kfk Qx1d0a0om.`b0 i @0v~("0[y\3rѽ!0P @)} mܒl݅vh @&0& n< } m)iI6ڮ-*㠣 S1[q_JS '0l0 =ٱ2QĠl<۽ȫAӛܚǥ ϝmݝ  ͯmZ%i!;V0 mp=oini >@n.o^Vd<0z⪩աGT 0pΖ Cjjjvn0|0.  P *6ty `Nc홓]1Վk)ns@1pl@ A E U  -#='<@Oۣ |s6ˣ ) 䴽)$O6&m $!=*6=䔫8"2[Vn-\^gܭ*^ޚ٭$&N]$&?o$?&o|@_aN .N(>h_JU1@Vm^C> ԠO ϸco&//O5 :}6SǦB(D\O;dN\r"sn]iOe༏jC<Im)Tpp1q=kWk܀`ؔ ?o?/)-o>QFO]܍gMmh\ZHQFO]M\BZ"rquNp@q=q! R " !2>%!2"" %!d"#$(%3R#72$Y9h]%P Lҁ5%U$p%Bt "P :# &}X"! AA0&er&>3P lRrJ wP\BAZ@7%  P a(SA (LAP|b,SA\+Aހs7**%N(s7** ,LApvAvA%4iAPCA@@\>@)eçX)+AxvAvAPa0j@A 4=~ ]00.E < TADATADATADATADATADATAA] ,LAPg8Sf )g<3!̵r8r]%N8r]`: BSAA%FAtJ+::F>@ ` 0q a4 FSpi:CciA\A!pi?C'iA\A!piA D'iA\AhBLAAF_A BLAA0 FSz'XM#m_hAH`A0hw:NA@A)J0P <A'HA` 2^SAf_A0 ZLA0oZSANURLAA0oRSAA VLAR_AA,-L`A 'B2-`l1W!%N ,Ap AʁU^A- $LaA0o$Sa0r?Qp cgpA0\`AX>³+~0& _g`0ҿ AP @ < <\BB+h a8P tWBMdB%(  %*  P , < 4 B@vfB0> B> /H ʿ@Bj2 ' 6 D 9 \BB 1@ tp @B AV>qp#P p@B0V B @ {~0 @B D hlP @B`P>)Ki< LB /VB*&4 ( SB : ,ɟP S`ZeB> -' P 4 B ,apz@B ( LlB0* B> -`v0r P ( ,p zBhP   {p#@0`P 1ҿB`P>r tB`P>KuB* [B> N5B*&F`F,aɟP S`ZeB*&< _BT( LlF`F,ɟP S >͘`\BBB*& a( SB%L hN ` ,!%P hR B* [B> | P )L'S:B*&4 T SaB%   P X T 3 ' j X 9 \B B&X 3֣@B0f @Bf H>@ )gh 3agBзn rKvD0 Z` )BhT LalK`V[B> |0'H ʿ BF,p z BP 2BQ `VpF͐^ BvP>r@u @BV& _`V[B> |0'x V@B0V BB-A P , T ,apzBXB , B, cr# /QP ِr B0v X }p+tkxKP q%` )BPBN  BN ))ij88L ɫ P 3UyEF {p#@&`Ble-BB _B05P ِrB0v X }p+tkxK4 L LlK'SEPȡBp P  ȡ@BV&4 T SaB ` ?*/ڱB B> [ABV |'B /n A0\qWN03!e@B@V ZC9 03q>@0\qW03ag@Cзn rKvzCзn rKvD0C~ , CɏC , Cɏ\B 1 D P 0_ C@'`BBPC00B@@` A[ CpC@'`BBpC0 BP 2B Q [ C0tB0h0 # ` 0w?c ~0w?tB0h06 C6 ҭa@ C@60B0* P ( LBa3 ( SyeP 1ҿB`P>r QbP   {p#*P(  ,B( ,B ,B4 3AEpBN B`P>r QbP   {p#%P#  ,B( ,B ,B0G6 L LBЁ!P gp C0\ A )g03!̵P q.P ِrFD0\ !q- cRUq6.( A )g@3agA``lxK[5~m? A )gP3!̕<6'RE )g8P3agA``lxKAf``lxKk:/$P ِr E0\ :/$P ِr E0\:wb$P ِrF0\ '5!-P\$P ِrF0vd VvDd VvDPp!|- 7:/u  A )g`3agA``lxK+7: -F$P ِr F0\|!-r A )gp3!̕p!-b2$P ِrG0vd VvDP l!-SR2$P ِrfG0vd VvDP l!-b$P ِr&G0vd VvD0P~m?A&R$P ِr&H0vd VvD0v@P ,MhހhhhfS,P QtW!HP )6&\H@vfgH0`A t24H@@>,P @w !SI>A t24Hc(`,P @w !SI?>A t24Hcx`,P @w 00.M  !h*H 'LDP tW!,P 1W!PP kИS\b%ZhP«HqmKBt`pm?nRcLP ِr&I0\ݹ+ 07 <`<d`c4K H0vmF`F  )gT3ag`F`D6hCPX,P G,P D'9  :FF'0P 悾U@&\֨AHP H<̶r 'qXzI H'0P „c>¹* c> ,Ip P&X 4P W ء(,P A>@k,P   DO4P ZrP',P 1Rǀ@HP W@I0FvmK`V` ' D9 @IX$p  pl@,P G,P I-Fq&> )gT3ag`F`D6hCPq`> pl@&  Tړ :F &|'qmF`F, ɟ2H3H%h`.[k_H0Y[k_H@'02@`b

@-BL /u:J+`GCs  )g̐3!̕R~>pm;J02‹P NSaJ !@wk,P ,l c< @n;H@@a,P *DP q>@)dH6HPH c<@4P )LcHO,P hT+ ɟPP SҦeqw+' p>nPP qwA0/ pmKBt̶r Y  6d,P F %h ׶ _BtJ ',P 1R@/ @,P 1Rǀb J"B`CHJ0&  #u x,P I-F"

,P N> pl@/J"J0*J0.)@J(,J ,J0E JvJ0`<dOnTNu ;H@@aHP AI,P `J ;H@@-Pq J+`}gr³PL7KJ0T`+ ɟPP SҦeqw+'p>nPP qwA0? ,P ׶ڽ$Dl+gɟ,P aC6@n  A`b

`H@@46@0  c4K?SH L7KJ0J  p@n ce̦<<>TNɟPP SҦeqw+'p>nPP qwA0_ pmKBt̖uɟ,P aC6@n A`CJ0j ʿIl׶ _`V` ' H9 Ip *-H LHK #u P`4P AI,P `ͨO4P I+[Jj͘P`V U7`U`%zе6b~/:&vջ6߂ r1(@hn5 UoU~ 968g"T$\9Q*ge6Ix{I+[i_.5`Gޑdxܑg}3p|c14w6^J_4dmoW}owhZTmfiS>]HDWt]Hvk&mÐ [oOqw{)ɤuigdhb|ԗi5{t}!Arp (x"" "\V1ef-b#V"`9X^&$ 8dvfa 8HIHt Tاv6m@ &:Dx=k͖:U!|6ˬJCVCKl>ɭG Q%Fp_tHFH4}3ȪLJ3.q2J8?I Ĝ L('-r3,ĻQ#|r'&CL$=Um)Z/4PB.lR"Ll-b )MwT}B5>3DD/Nmw׸1ޕjtĐ ǜGIq 2Dѱ$߉A$wDPlG,< @^|H9](0V;VANq`U4 _[$HTsM` 0&c ؟DЄcMK(2tApHceXPЄ X00Ј^ @4a`00.U < TADATADATADATADATADATAaCT0A FG"FDQ(Yr!Daa411"?@ P _4Ux*F|PM 0  :`691Is쇃`~X4!܃i2Q$`F ʠ x: db(jِ[ab<;( Zj`q`&X " E &&ąup8)+T(4cҎB?Prp\b/;ZQbɇWdBŢyV lvCA>h$!iI$hds4 ͘ԤrM?SOij \"6`hj(g. +4%A$G(@T q28}୚ʽ-f>@bc;,t'.\ dH'( coSDP(:+8 uhgHV1C1l|B,,>Z{% ``ʠU J/,--]&˺s3!<Тrh XkPt0`:ѡ뽊p:8A1vpxa\XڅmUG:zst]Ё$B;⁼zpB(^ܐ*MCŃ1玂%ߘD: @} xPN!-czJc,Ql*` ,g$/Ҙ&#Ylv f-=3 knJ5 DW2to| #dn8 _[7I&q(~k+&ۣ+ '!Wޣ2`o\-6zm|Wiy(mlk&9b<> [F/-R@0Bo;{zu\)PIm~nf ޤ6A]`ƷwB/:ˎ)Va ]n7oXA;,zo<0T !<FA(~Ey :W/'^׮uA?2ڟv?6{/;I>wl@>.7t]t?^6_bduB~l~6cVfvlw'|~7,}U~'7}rFg6`gBzgGölvGd|vkhnt*d@;fIWI#vҶ$P94`@;bƀ rbbEXz'-Y}9HJAb~m0Fe7biKiUi2c''[V1-|痁7gjPbd BhF C sos0TnpGÉR؅hXx UHn2mEj-"8!(fa5kU`xIʘb͘ %}6ɕ(A؋hS`jGA:uhd~\^f(H Ȏ|8VǍ헏H|yӧؐv|W0aifv( 똊G))!i:y6@j7pyn)+ɏ-yh$A@B!&If9PX`E ^\pI_p `X>A{ gv` A@#>G x Ax;h6 @^Pj~\Vɞ ` N  Yhk 6ZqhkƟN g)gz}iP50'511 @^ c9;z (|&g)g =j;:d%z E 2F ahk j9;G4 @^ؐ6`rFLhFkff x E2ƨ ᨣ`l*r0g@kfڨ*nz~, jکLz z E~E9EEp"E1 0rN ɪ LpG4b  hz cj*E2 !@Wq``2 2vPOⶣ Op [1 zA A#Yf $ 'S?;<:+EEN]~?1F'K M9XB *g+g>ERDEVB&@TMO7 kj9 rr淡` yjA{: { k;  $O!n;Ѱm q`OpY.k6rv `gzW ;0  ~{j; *,ۼ24P:.`[A!g+g h+ A+ {S1"t  [ qѬO*gkg'zsi$8AT)Zf6 VX2+**ZMH7h kbjdhk6-jf = } -g-g y )-/ GT4j6*` KKՊ!էq rrg []F#=礔R 6ezmx|-dTM7\@;^pll;Ej !vv@vj~$TD`֢o*]j[np|-gz]]bfzf|+Kmx ڣ ݣ rjfֽf ݇܊!ܪ m}epmWݡ@ q HWqܾ čEEPEEPڬ,¢`>08 PW܊!= | mR= *m€zM`, ,χG "IAJXX u˴N ` ,'CWl +~0?' P K ϣ`    "   } (l0(Q a WA  nx}~ n; Ě5:`ǜ^k.n~fڜP=u\j^Xr+ K m Aܻx'`$g.gNK m R 飠  ; Qa銁7 <&6j{|>s00.]  lN XdX$X4XDE~2z 4=?LQ#H2J2si^Q4 ff? ~ oʍI,Ҵ@hIB 1DLMplb_T@e.`*DӣF+/GAb!1:GRSϰj dRR8+C(r֯!"nOz=~@ `O]:9(]y   >!C}2Onޗ?!uo`bk܅bk􀽘 `oZJ!A†`}^0 /2Onޗ?!}>Lwug0bkܥ/~/2Onޗ?!uo`bk܅bk􀽘 >`On7!%dP1<11 ۯ Of`yn5eA1)gTdOf`yQTTw#CwBZB ԏEodRR8+C(r֯!"nOz=~@ `O] :9(]y   >!C}2Onޗ?!uo`bk܅bk􀽘 `oZJaA†`}^0 wug0*" tJaB!CZ+}_1c`bkܥ/~/2Onޗ?!uo`bk܅bk􀽘 >`On7!%dP1<11 ۯhfOvZ+wrZZRleOf ( D^`=rug0hfOvGI '.uYl & ? E+/ )5ϿX> V PpPP|P} ipl`y1#> HV &!Pq6@ #Z]> ] &p1P $ K oÌ=iF 5{` '~`$F ;h#Ppp$} ggxPpp$} ppi#`$P P`@+@F F;cPw*"F 5{` ( D^@`*"cPw* @;"F 5{` #@F S]w/ P P`@F B;bPw p1/  oIs,}1à os,}1%P_ @`i V p1#> V PpPP|IXП3<Ġi]S0P`0B=Tp` 'QTd=o /|>ЯXƥԠiPp*P|P* Pp0F Pf+P$p1P &|6I #Z]>@ ] &p1P $ KA oÌ=ԠiÌ= p1/ n P` YW Pe\] &p1P $#)٫е`@_aJ;G> Pp*"P0P@oX6A i ]Q܀| :ȧP1No` P܅ P@P = p13ȧP1N!Rc` P}!| = P>ȧP1No` P܅ P@P =pHCNMh#P1ό6 P0:Œ#5ϿX#X`@+S.t_`i:uEMk Pp蠊ϱ0!` PPQ (gZ6އ  #'a yp GAIF #'qug0vP  pp$w`Fvug0#vP  p^6v@`=bPw蠊ϱ0!` PPP #>R pv+& #әA1ο)ѯA2)U P's^7 p@aE.@v   GW P+P+P`*RE]}K3)U =A2)U} W Pp.AGP d*"pAP $P"$P yp GA(A6Pp@G0)WPpp2B"=-b  6 P y` BPPPPU`PP|  P0Pp P0PP@P  xߧPpP@od  } W P p@+S.1 rz  ٫w@_p&Pp 2ch&PfۯPp P y` P WPB!CZ6ާP1No`܅PFF y` (AD^`PН}ug0 P yp GIB7!5!%B ٫u@_+J /jWA_A'>!CZ6ާP1N!RcP=IBo- oPQZ6ާP1 |22$Pne}A?P1PQ]PQP h#p@+D` PTpp GAQTh  P0PA]ڵ (Ppb d;:Œ6 P0_A#=\qXl\μF'ckt1 h` fC;hfQfkQQ _DQQp$`_d p@+` A/Pΐ$` R-b Qpp GA(,+Fp@+` A/Pp:!cjtp GB6/Q@Q"ExoQQp"AQ(TQ y` B(Z +pp` "Z%p^,Uwt.5j},}1ˢ#!500.e < TADATADATADATADATADATA ` 9 6WQ 6FwFgX_A`6c{f:kQ+J_d@`QpH_d<p !Q y` B(Z I0-r-6qWv Qpp GA(!` ZwOBp@+` A/Pp:!cBpp,4o6WQ# _dDx? BWAQpFQ(U!Q yp GA(!0F Zr`u@ Q yp G(,\ Bp^,Uwt.5j},}1ˢ#!ϐQ`Q ZFC1.5ƥ$` K3)U QptBgQ yp 6_:=$` .a_QxQpp| 6q 10!pp$$` EZBp<11h,` fC; :M#%]Qp`Q yp G(,eEQpQQp*`k`_dn{EP ErQ@=E0E`E|* F y` B(PF`?Eug0Z`Q `@+0` ^`)ZPwQ yp e0` uZZ2g^v ,($Q!T#},}17 p@+0` A/PԒWA Q p@+Nm Qp`Qpp , Qp`_dQ:WrQ FP EQW_d*4sPSV˧rʿ`Q `@+0` ^@`)ZPw F y` (PF Zug0p^6PZ5!Pa fC;fVWrQS? kt1 3k4<Fr>SEhQf*[QQ pp0` "ZPw U4sZkh,` fC;Q*:WrQ#W EQprQQokd*tErQPQQ E@ QX 0 Q pp$0`  E@ QPw E QX 0 Q pp$0`  E QPw E QX 0 Q p^60 _dug0_`6cnmrQ:WrQ ErQ S`k_d_n QxVWQ\h& Q yp ItFg= 'eBB5#a RE;DdV߈:1S?a kt1B F y` B(PF?ug0Z`d Q `@+0` ^`)ZPw p^6PZ5!%BE@ _ yp I0 _dug0]zRp K3)U Rp €E N1$EQ A RĜ l&<` GJ RE @4Rp a R```R`x }a6c R "lRѪ " h < n{E'#CR$h` QP 1YkWs2 ~7  & W Rp pπ? WaR ` R u0e gR g R dP` K#=-bA R "@ °|]0S!q vp  X RE6 XR|{h epDR B]ڥ h ߥ] Rp  h R jEh +g r RRf @Rp Da K#=-bA R   ``R`f; WaR<` uH;f kfR@Rp I.m R h rfR g j<` Q LA A } vp  X R€E ˷* ` R]<` RDCTDI<` CSDCTDGA01QH`PS11# XS4 0WS V N?S|4 0WS V lR-$rnp/upWf y9'SẄ́-RwUkWs280~7PH`PCH` &`E@OlS B0&.!4` QQ`6cKWA Q`QpKcu C68W Q4`  $ Qp cd Qp ЧQp0Љ QQ0Ƴ<x0Qp(0 WQ4` C #0 RFReF0@U=>@S4` e( 0RE0NOSR`R V N?S`RRb :EB 0 F X€Ep0P=d ]@_dQ4` h#EAЎh#EAp,`6b _dAoh#EAh#ELAh#EA2=EA2= _dAأbE A@ Ì6"_Q4` c6b_%Q4` $ah#EQ4` $أb EAŌ3J€ER XSP? Lu"8` KIBP_2<` K/Pw<` uH;CSS &.(ߥ]70=6S@t0Z^@2_!=61S@t0Z^@Sp~011fSg-]oSp0BX|SnEm.1tSgS` 8bp 2zb FNh#06G0677|p 61 S`RB:1JaRQOghX ~6 XS4 0WS 0N?`hX 0x`hWs2V@~uS ;D U?7A7fC;M`RP?+ *7 ! Mi d`hX 4oV WR`hWs2@~RR ;}հc 멻 SPcSP |0Xd*e =R<` G2DSn).I0- b-@o|!@` 00.m  $<` )Ct0Zł7e =R<` G<` K/P_6:=n `RP? Z qRS5JSlx = J`RJ WR=6S d<` not012DSn,7Wa S 0 a Sp a R(S0SHSS Ct02_!=61S@t0Z^@Sp~011fSgS `` R0 0W S`/7Z^@_C76 # 'ʰ~`A/P`6BSmSxDS`nSp0 S` `` ƈSn Zx` ƈSn Z ƈSn Z 3A*B!"\4ts"M" X`6|,V.|0ţ9`J" b?r2ʖ/g֑ :<|1ebQPfN+T|ACHX*d([E4)Maǖ-Qx4eEU :8D}7t"O9I9͝?MԪRa$ =m8MrڵdܺlQS I_X ybp%g=Sg)\|"לeH">1E4@?x@YY+ Pzwš b B :PhG@` Cx&yA#f&t +T3AY!f4zFPhT"FPaMi)=U0!E@(%h: %Z" P2X2(e'SIrL1Na}e X|ХD7(pSN; PDyh>=eLXᅋdȆ8x5`swZzRo(jA):){()*' ,L3tB:x (SÇEPETX(/6e&( Ҥ}i:T&Kݚ"|ypVh,_Šd5=>{1N8e`pC]PQ'%կplSPz39!Q?zԫO+?RA9ѫ.( @xG%{a[x7֢]nTi;;ă&jR@'񫮡z?3 2R ` !;'D41@cרe,"?aT@Y! D6s!:QFHa*~|D&8"H2Bd$1bs<]PX&,0X+U6+_)YТe#sE<}uC F,Qj fTf| g>x&4AjX*8†@:^! D7Mp0)h,r8LչN5fpbP*O "AL) T0?a4BJ|Z V e*[^FKf-dzt"45EGtH*;kRijI%kZ,ջf p5d-xzZY0lvb]?A yHax)٘ CyG!IorUFT3u19FBu!ƆDd)J.@1%.}I/.Pfd;}qMRAJظiF6- NеltI{UL>ZP BƣiD"D&1ReVMjԤv< %r g >T&lbXt(f!bh] , c(7fc\uWxUs<&?'?JP%D%%順;`;ڔȵXaFjT 0EqSYUH1ioG)t(Nl jЪ*t|)| =@Zj%0ճYb Q h>kH^" C/&јY)Hke~YeNᦝ&[-(|{뉳osvn\Drp<fDFQf.b|#i!P @V0@5!܃˜|4Dp;ppR1stȌQb^"e Pv,ƃ*>0v A@BldU8r0dr h 0x%c:0[iIR&p MAPZe,QHlXKx>wW`* 'xw9sNl UҠvxU0 y@y31!yygz` z؄G}gzx9Ҵ|H|G7p|P|h@ yLWQ~A]) 7?'CH`{xC#÷hfB {U@)f)h%@yըѨU xNePS|VYmY^!Ui ] {DFH7!Y]b㚹fY&6]?AUy p NRhT8u`)pYQiU GqLN4Ot˸$M $p pl8 nhph)W(B qQ7uUX.0\u@bgP@^0YP'2 +b2al pY&`Eʏ>ࡰ $r tBՅv0ATl2Z6ZHbY ĤpF͐^2Уv3ZtnCEJ6$~РP'uT 0,q_vT B*2ZPVVpVVڧA}z FK:TPy gG)Z(Gz" QOr2b#;%UpP]׵aѭצhZ]jz2;@ HQz ̰@ѯ:J!8鸰{ DH 6pƀ>m!k#Xs+{;Czz:2J4%[?" Z +z W{X: p \` EZC`.kP%X;j5X00.u < TADATADATADATADATADATA `N|]ʴa1M[p R`s yot,&#r mf8KPq˜ ΄JZªڧ{*Ph<`$JC'2a&C,jZ j;2R4kˮ*f" @"2˴EmDkH UrYj`b p`h5$jVpvzV~@ b`* K6bbZc|< x@  f=~@ 쑩Ѽ>`*Kc.h`xy -Up>*T -S `Ěe` S C@ m|ÀH6P `(aA [Oi-#Qb}sV4puiz-WP6 $&@j'G [ZgGӔݘ2| ] c`}YWiW@))Wpt 6(pg .2L*/W"Գp0 P ͣz&FQ~(Q6@,$a∬0ۅp =~2p*]l(ELP 54p]BS/%хCz&1U)@> @ O-F >0 DFp]._j]uHm @yCHPL㐜 荷R b.]WQ@'W Gak.]z-mTV^~Xt9w9}~}-X P:u  W~Zpm>~ ,N8 `b@ Y Q?_ 4 6~=!}*.@k 6?XAAJ(Wac,b@zm _:o*}z1lh#(*$o@bzeSprgB_@πU'UG "4EV_@$r')O"\`?(mxx|]R]ַߎkm)W"8~N`W4}o_-zmpF0J"o%+[ O}֦oth% 4a*͓b:ڢ.N'~q "3i ,z0E u?Q.xz`2Ub̀OonR7n>ۛU.;gN)f)hN`G桰'G`-`' ׵%^*@) )ض]q:I6ѱMrLr/s3Ws7sL,vlC 6 Y z ! >ǀ C&i=^UԾ  E csp~ >{-a-"~=,%^"NG1 G!XNX@w`"!$TKap?R :߾& 2PPJX2XsPI,_` .c?>XpXpXbX2XP XgT&$]RGA)"Xd> G!X ߶0E zm W}X 'n? X ׵>Q2UB o ~ ض`p Ert6` W$r` -r17s5ws9gс ZG p eQPP Q!p 8p Vi$ p FB XLq cb ``? XP4" >@ p Q{PU "B>@&`$p ```? XPˡcb@,2p p y  p FB KRa`$p WχXpz~@ AX *PbA_ A6X`pw@{e>_|aKt y !(p _|4p> XLq c `? XP"t`?hIXp-X@)xXW(9 `$(p $ 0p FBCj+20p Ӹ"`FB0<$"0FBJ]"J$p <"`y!0p 2B"0\!0p ᛾>d!0p 2(p  #4>C~a`$(p ǀ`? XPˡc,2 p hT <=$18_i`]q:X "sY9,% < YYp2wq |Y)2@)r 1 w > Ӹ ]ppaAP: 4GaY̚HYpٷwq eQФBY)6@eQZ` @)4bN;Lp Er!r9`Aet |aI\]Dp $Yp:Yp:a`]q:Y "ljet |!V ,`]q:AY "slYpv, -YY`P"C`$Pp h(4p Fp v)r YpYpa`]q:A Y HgYt*Gr/s3Ws7sY9,% < YYp2wq |Y)2@ Ќϐ54GaY r 1 w r 1]paP@Yp6 'Y@)4bY/Lp Ert6YMsKMr8GY6gYYP4p Fv)r aA`$Pp b( 'Y_GY 4'aY@)N@aA0FBp v!D0FvqaHp { v00.}  ya`]q:A Y "sY9,%Dp Yأ ΓȐ50G!YpHJ@)0"OpΠr 1 ҠwN` > w W@)0"Y , N0 WgDD" Lp E r!r9`A@ Yأ'@⭧ Ypٷڐ4p { v)rHp { v)r0a`]q:A[ Hr/s3Ws7sHp ڐYDp O٣Yp:a`]q:!Y "slcZpvX, YY`׻VUeZ0Z V!*XؔiZPZWg|P a`]q:!Z "!lZ4@!8%xȂ76Z9Zpv^6` BGA\`"k\pHq Nl\pvPPPeQ FYoN6Pg'\pvTZ(\pD &V\9BZ'\q&9B\9b%N \pD.F&f\>{@|l\*`n>nG\ j'\P9 n MarGA\ ^'\p*rB\_nG\ n Mq (;\pLq yN'\e\9\@w`hp d n~9\ \9\{zKC\D'~'\Lv'\p*B\# \p\p`b\*n>G \ '\𕓰'\0 G \ Um " \06` \0@Яrtp Y/'A \_GA \ ' \_G \ F'\pFG\@) \_`/ \tp &\p b \pf\p`\px"\*n>GA \ ^'\p*\c \p " \06` \0@П[o!`/ \p\p \p*.GA \ ' \bb \p\p \pPf So*G[o/ \p% \p` \pe \p`\pHgm\pH \)` \p * \p~ h \ P #e!4 G \ oi 2e!4 GA \ oi 2Be!4 Gq{` \`GaG \J\9j \`P\pl_2\plG \  ' \u v'\p* \# \p " \tp l  'q{e \p ' \_G \s ^'\p*B \c \p b \tp l  'q{e \p 'A \_GA \ F'\FG\@))|EnE 'A \_GA \ 'A \ [^M' \p v'\p* \# \p " \tp  \p`\px \*n>G \ G`jG\n ^'\p*B \c \p b \tp & \p\p`" \*n>G \ G`jG\ 'A \p*j\PBa*R+J2\pl " \մ\pl\pl\pl \pPr/ \p% \p` \pe \p b \tp l  F'\pFG\@)B \ ' \G \@) \W (2[32Cɴ:'\pc02'\0 :G\ R'A\_RGA\Ȁl!9\ pp ErQ>`zFG\ -\p<r q]  #s@r VR'A\*ضR'A\0 G] r8 x E rt6]Ms @,vl#]pvgg]pvg]pvd> Gu!zGA^p N`^pl^pv PPeQ FYo 6 g^pvg'^pvgg^pvZ]pP`^9]`P^p _  U9#^9&%N]pP1  'A^_GA^ *^x Ov*"B^#^p4^p0Y2 a6G^ "'A^p*6^#^p4 "^p^p0^p0-`%R '^_G^ '^d`N}a`]q:^ Hg!^t92'A^b"^p4 "^6q ^p,^9.G{ Єx ڳ1.^@q ^1P'^p y '^p l[* ^@w`p d ` ^p *` ^p g 2YbA ^p ^ #PbA ^p ^ #PbA ^p yf ^p^9.c ^`P^p0_2^p0 ^p~2 ^pY` ^p ^*n>G ^  ?& ^0@п`@) ^p_GQ! ^p ^p0 ^p$ ^*n>GA ^  ?& ^0@п`@) ^p_GQ! ^p ^p ^p)^p ^)|EnE ' ^_G ^ ' ^ [^M' ^p ' ^p* ^ ^p ^Бq  ^p` ^p ^*n>GA ^ G`.G^n "'A^p* ^# ^p " ^Бq  ^p ^p$ ^*n>GA ^ G`.G^ ' ^p*.^PBz +0+4; .'^ [^M.'^_.G^ .'00. < TADATADATADATADATADATA^0 G ^ U-' ^_G ^ 'A ^_GA ^  ? ^0@п`@)^pg-^pb ^) ^p) ^pb ^)W (2+t]~< ^Li]p7 ']0 G] '^_G^\l#]`]q: ^ آ`zGA^ -`]px q]  ']``U^px Amk_q^p_p ]p a`]q:_ Hgѡ_t9gс M=$~u C%`  %SZ[2!p XY=" kyl~Nugliep XBU"pK͠d'"<Љc!p XBWS"pK͠d'<Љc!p XBV";`pK 32Xee>LqpKv ϰ8B %SZ!~ zKpKv@,vip Q5B #4P _@w"m _p` Rg-=/Q+J*p 1 Nr$]p_`` Rg2Ae > 8<4$]pz Zr @ <*Mw&*p fr$]pP p T 6g _ p ٣ _p RgPlc _ `_G [T2 G_ N+RgPp `_pP~NeK Rg _p{{ =w` _f_0@A&1{{ ${{ F 0<*{Rg_ u Rմ Rg_p` _ _Pvb{ ${{ F 0<_9{RgJ{{ =wɦ _0@A[춷WltnCn{{ =w _**.G _ u@ _GA _@)_W-`Vdz Rgn>G _ u _@) _J `PkE 2p &`E@`E}C/$!Rg_ !RgCda `]q:!_ "ljx `p0G[tw`p0a `  Rg!_pa `]q:!` HW_Ms p *@*p E'CɴL> ʅ.P j02B u _"a p = GA _p Y3ZG` 3N+Rg3Np i_} p & uD" TEEHXT(/`YfbHeFt_Zt U,N V"L|Ah |a_r"rbA6B` % /IdUr HC[؈30tʒ@dG4I.PЖa_f1' @KgO&b?XO 4SM ?h .">HV$daee! 36Y !D-PCU[:d6[Mǰ,V+I. M:ʶv MmQRmDP Lþ^8`.$Z[Ⱟ`N𜛮4.5Hp2#\ (;`rF<;qd ZoFF:6"3l6i9~l  >:ꨥB(!*+C8GH~8 -W+@ \5vC6l+ Tb2Ƹ<{.@$pD dQaZG/~ ~J34s|(/J@ھl}e%) ;Wb@!TS|cK#U$^j0 %H&DB@%$`%JP3ID>ywPNOY@ LHc IBXKt57@ M\HRԧ' 8:Bt5WQn@OW&%6,I>Vkd,YPP,Y`K.ApAx"L+q" ӑ ~T FaY`1 a0 •-d gY7xtPj!`rn󉭉*!:`W CcB n ڬYJ@)_xx 蟗? / m*8;Fa"G T/}Thw2 WQD A+p0IX C)zhVOH K-̒ ulo 6W@\+NL fa asU8ӑ p1g}0d; "mf`9CA &v8AtM"?(2+@0!FUl4@:> _ K@0 ԺJ71l"xʲ`e!r*|aqYDtp]^TwiZܲbn Y(2=b,uNStT^#{⣜ۛL'}zLMR K4 p&b, ϬTb.~ _-T='ljr:= qEս>9u|=E.n%o,ڀK  E$p+gyˤ7=Uπ9o~;R1P!]32Q7xva`s';W{uvn ^ GX26u+|b|pg )` 1uGuj gywbw}}6TgFFyǰ}}"00.  rDq3ACa!|QhCAgB2ðs h;j0WĂH!8! %tB8j,07 x{aP2($Xm'pM;eEUh5 j0Klp?6@vg 7z 7^7`r t0zBZ x?Kh^'jhtd>ЉEbƨ]Q8R1Qh!!utKka!oHH0R!,w%.W]9xXL5Q@ e9Xs|75}w cAAU`8V̘w/Y}?F D{ȁd3` 'uWwuQVhagfwxEYt1U% =ړȯFlSQZ+%#&tR#UR'Z^;R [68SѨx_F&$$h5 |ZB[nkp3j0|@ۯI&ti{dB{Sӳ }VDyD [;Q 4z#9,kͫ [mt 0 ۩F6EU:U:vTF[mh[ ۸eMu Km9hQ,-O[XZ@Þj8lF;,3()0@,Pq}Vq ? ~\a!5,aF^xAs@/ Ja,b 04 \TL[:@2׋G\Af,&˰hA?uALL٪* t0Pe`[M0<,t̰/KvҪdhc 됱)5 00!c ( iV2 4`Уc`s ( K -ݽC,;.`B d7D(;*`BG8`p*[^ԎaґϒݚrpŠkּt B@lpH\aqKQ\6 @wvS0ڶi^NvLWLP#knVNh==ŀ\VbyipwΪzGIXjL=er*_}b^/'bNStu_ ] XPR0`TV`>p .Et싒tRau`O;(> fU k\NȐ 0P>Bs~ n,Gn^\#?LZ L6 OR4?O~L-G)r0rn%8ƚ P!.z0bTZT,I !?+?-?#gnU/}n[3 \^U#`ǚH"K MAV0!Ui ,G(/ED[]撎bl^W@ؿ< OVi p@/ y~@kj@ hdf 7`O et>@Vh*PP _o׿O鲟M~* &2f,c@:tmϪ pM 6o, pa'6E6W!tdmO' pag6hpa6EШ'6WS~ m 6W{n"f paA+A paoeđYpa1eq5Aapa#&$x0~$zIc$ xzЎ9?P paTtc&|00&x_roz-Ў9 ?@m L-ؚ&d L-J!tu цx7FWMx;0}xFW{7Ӈ9oFWQ&`|>9oţFWQ&pZho6WV l*W0;2pZYpaQeqMAapaQeqxZEM* p Ԇ` >qJJpZho6WVl*W0;2`_Ypa!ea v8apa!ea v8EPW> `_;M. pa^e^M7)DLmF?v8Efp垛;ɜxl*WQ&`_Yp'Aapa1TPىG EM* paae!g DLmFGfpaCeD5!+A pa!eaW.ipaxG@!6W!t)HԆ` >өn"fpaEe!EM ˦,!pax -ZYpa#w Bapa BEPW Q{ -Z;M. pMpDLmF`!-Zho6W!t00. < TADATADATADATADATADATA' -:,! paBE0WE]Gt n!6W+Q.Ԇ` >ElW0;2l!!WZ@>FThnCaWZ@M VB \ ^lp502 pa1TPu>`%Ԁ@ \i+A9*M~*F\^C34չϢ\Xv9,pչ"a蓤\Pp巓;x:f'<#= ?>@׿/ -  L- po  cc N 7vN m N 9hzZ7"!t!4` 8| (Ef&`| *P $f8M93t"4d93{"4d MA.ê(pa1eq@' Ǹ I_'>@\nta`>\19J'B\EF\^hro0h>\^J `c`Bw@U `co WE]G]xe t5WM] r-P>. 0paQeq5c 0h0pa1TPuc 0h L0\19?'B\NvTЕ_@sk96WM pQd@d@  @ pM82f"@dpp >h d@ @d zp >\Nv0h\^Y paѨea! @d zp >AI6s>ָ| Yp93t"4d93{"4d MA] \!a@!d @ILdP@X0H)P,o\P(pa!eahqd(@4 @d@!dx @ pM82f"dpp >h d@d zp >'\Nv0h\^Y paѨea 6P  @ p 80c Ǹ\19J'B\Nv0h\19?'B\NvT AW&2WcQgQI$pGi"!*Q*6@ $@lMpJLzL 6d6d sv+0@ MJJ%d2@@d0d $@fW>c,gtP,"M  l@d0 h@dP# Q (] l@d0 t@ad S5pdP@Rdj p@"d`Adr@Adv@| ha 5 h@dH ON5Kx@d x@dh@d,8"P@ WNVT`@o\@O&Ԏd(j@ 9%dj@w1>IlP@ WNVT( h@d0 |@d s>h8%dr@V /^@ Adf@  p@"d`Adr@d~@| h 5{@!d h@d0 l@ho-JA/hmh ON5}/3">`%8Ű!0 @ad @bd  @bdP#idn@^+%dn@ AW>,"M  l@d0 h@dn h@d0 @d s>h8%dr@V /^@ Adf@7  p@"d`Adr@d@| h 5{@!d @bd0{`d(j@  -.Jь@u0Pd(j@O=Qd@5{@a d E" d0 @ dR @IP@ WNVT`91 d@* 2}I d(@% d@V /^@ Adf@G @ d`A d@ d@| h V%C d@w1>I,P@ WNVT@b dP2@ d0 @a d p@"d`dr@ d@rtJ@b d/3vP )LpdKU x ݆ d@d(@`@`Es3 l@d @"dP2l@ dP#i\|ddP#iw1>(L V#zP A@d@@d(@ `@d(@5]+@a d @b d@0 p|q.:Z @b ֶA d@*Jь@dP#.d@IQdA@Bdd0 @ d @d0 @ d @"dH p@IP@ WNVTQd(@Qd@d(r@@% d0%0 p@!d@ d @ dxA`@`Es3 @! d@EШadb@ @" d  0 @! dR2@ ( dDp#h"txA`@`Es3 h@dϰd(j@ d(j@@ d@* 2S2p@ (d/3^@ Adf@ p@"d`Adr@A d@| hќh@!d h@d0 l@h,h -.YNve `l@d l@d0 @ d # A\!A~6dPvЄDj~@Hp@"d`Adr@ d@| h A\^hov/g2f AW>,"M &!ov/VKQn-WcQgQ&]2@EШadb@vDp#h"tC` J A\!vTЕB@"dP2l@ dl@d$@Mb@` \^J`@!d`BOXxAdf@& d(n@ 00.  d@d(@`dP@Ƞ>W>c,gA&M p@qģs.dd P@NR dj @ dK@ d p@"d`dr@ d@b[id(n@@ d@d(@dP@Ƞ>W>c,gA&5 p@Q(@~> dj @ dK@ d p@"d`Adr@A d@| h pd(n@ d@d(@逦dP@Ƞ>W>c,gA&e p@ǣs.dd P@NR dj&@T,jP @ d d@d(r@Ip@!d@ d,^W@Ha @5!A CB \9eQ#R040*Ωݝ9Ha#eQ#R040*9Y\9eDE0" A CBJd(j@@EШadb@N h@d  H"!:`X1j:`f.RafPE zLe6`GԌߙMe6`8?>`ufRafPEڐ`fDpok-%B`j_Cf8JF`f F`f0 N`f %Yhf81eMHc@H>`offPgf J`f`AfL`fP`|ph1RafPE fT`RafdR`eM - 6`f`af8`f<`Bt-05v*w7*pE9` g_!A CBlpuP .o    G- gpg `(T 8" g f`(` 8A9Pf` n f``f`1أf`18fe]E fP ` f`]EhM f`][Q  f`]E[Q F f`][Q J` f`][Q N f`][Q R fP@[Q V f`]YQ `` ft P0 p g p g`dpKPpKt >JO ` gp` g(p& O p1a g(p& `~xaP T\!6M;XEШ'6MXE0 MP S]o `%P]ő`%P]ő`%P _o SPPh `%ő`%DPKlEШ'6SHPh\^JbP =EAfĞP I, ŐpQ'>@\nt@0gĦP I ŀ">-# `I ŐIJP IgĶP t$ g"> Pr@  ŐľP IgP t$ 8b ŐP IgP t$ gP Il ŐNpI P@GDl oP I,ŐNpIlP@Gl oP IŐNpI,P@Gl oP IŐNpIP@G pI,ƐJNpIP@G pI,gpVsBgpM7 pIƐ` Ig` t$ Ɛ` Ig"` t$ 8bƐ*` Ig.` t$g2` IlƐNpIP@Gco5g(p`g>` I gNpI,P@Gb5g(pL NpIlƐJ` Ilgp1 `5g(gZ0Hd( =%E"DhJS b>ؠt +X̥Eb\Fy) ݙ".1>et@6 ɠ2*Z haYdQ1Y`w&vfj(qg 8 %[p@ngTD4mdD0Ȑ?TPĥk'DiC H+dx0΀DtQ!VRA*Ib$Qm<.\i/145%bǚ!w]ᮠo:%z:*$dV80Jb_>CC" :n ADp* m0ް< aZXx:H$#&5lb9m "f 5@HCh8. !&&(sX  Ys`,B 2Ni`E@ 6P%XetoH)5zo,訁 Hf 8ctpt̀ tO|3W0hJ6DT $ӖM`)K8:K @Ct } Av 'D[ S^ezf5m,"zmsF n0\r0]2)X5\Ln~ 8*9Duq( Vchi5,ph(Q=!b$QC@W.Pbrb\q `r@(F 4T#jd>) (k|2ԇ4' EBP$:JժTf65Oh0q EBDCTR| *$dT7}Cv鐇>".\1"1KB:E@8GfZgS:  @6% ?4ŔN"bYe_sF!|[B;7{BD51Voq~FhP a0Khh94_KS\b\M×=Vq0Z% )K]B}xBQh >Ӎp#XBv_#Y6H D>:WgxQ@W5*tn:t\a.bX+&E∷;X É0GXǶb,tP.*S]ղF8ҭP+IEK~Ba/Ha?җ0 a c(&eٰMLDXpS0O xp5(q$PXLbaMMydU}00. < TADATADATADATADATADATA`5hCde0isJ\LB+:5P>ȊiW[E{f ``oat7|@j`ŁyCImb 3F2 jl F~Ab\9'nP<ꎉc%pI.`RzɦwUꘈ;V"1ՉutBYӃ2.ce}6FAVqP{5Wni~0`e\8/{hx' ˧\ gv}>zz3p@uqCK (  het g(?%?'Ȃ x~:~3 74 T|VM$ȧjhd xBHEGVfcSKSM>/M6E9e `\{f wzXpbX8$8K8؅|ȃz8 d|fp61Ұ- _@@ \!炣  `b@FpPpb69| 2xF 6)-\РeXh0a =7`P @ Bu u VsoXP8C¨f xhҰ{8ԉ<>B[Cxp]؋;ֶJm::NxF yF1x y[Zۉy "K7? x Kz`l@: ZP^b`v0m il }u0X j*bNSr<X1Qhbn431ظߗhllm~(a0KDܡ)+k.HvjzfڷKjWYrV[> ~Pb->`KAWS2۶(l Uٛ@{EPu{+mƊᘿ lʎc xYn+}B 9ZKۘk3&C6HX[>Ior ma )Rԛ=ZP * *D3GJ;" ¡C̨E: 훪YYMI^,O"\%|z+ Mqc/61=3<pfd{}7f! mpPHˣm50m@_<P PaliĝɌʤğ ;r0@ɦɩW LƴT7,#X]|V,Ɯċ h &+kʒ' [fƀC'z~}WoVo666 b m`luP1 @ m\- 0 `  Lp# 1? ; = -@6vRKM'K-M WmMmS9E*m[\A$Nmmb&o@# yp* +oP|+}-4~ Vulxy=s vk0{npH}mL |PV=;  ܁ Av+-Nbn ԭ~1,Pg&nbY}-nCaL{  K?=}QV㭉pY_C>@MA33o6ǔLn ̄Ng$ UM6= ,^1 NCQŠp5c=>^.z#y,(jU8N7A $nQ.uOd`O`mx p~Pࡱd>`܏] f޴{ #x./z^A `S~Sn. b@\qۀHbqۮM_=,2 ~k<k.m^A*`SSMmh{ބrhVaO^:<.ߡѼ#Ǥ>a`Ŗ͖F&6'Ϫ1Bnco`5Y8PUI:cԋ5u ^ԜmpB&5C v4 )o$"2 PAµ3<`+@DN5:mNǰS?u3f? bAo'7_69E}vO`R/{^p/@`Cbz?u/5 L=o/"o#)ho ooX1\A69dl p}olm-__^E6V ogpEo~Q_u_+b\-`o#twyo _+b.O?@!or*m!o0=0 k.qX#;ID/[;)z?81Oݟaoܾ:0xT8O6`hQ_6poDmTPT)VDP @.PI@>ObXOT D-5';OL/\5l S/O7d|op/?OeoaQ_6poDeT`Voi* ZaQ_6poD8b \oҠI6Z^o a>#؏!PJPObXOTBQ_6poD۴T Q_6poD8({@io00.  Za@!0 @0o0 7o"  \oPI` a<@k8 &(&\o`Sp&\oP/oo0 opv):O;):;Io0mI-> \oaQ_6poDeT`VR\oaQ_6poD8b(o6n%Zolo,x",6E?: 0OeoPZao>OO/O 0x_ǞE?GHG 0O-59nlѡ^؏!l1 1ad!~C0OO`ocTo[a@CS`oZГ~p3 24a,04/\lIo2~P 16?0oPR/o4(O6Z^o a>@-@ hoZa@!{5I!a,046I,o DYo `oGw6 Cc"  \oPI` a|04_ >4zoHoS6p:&q &10 Y  t |04e?;2bS2p@o&(&\o`Sp&\oP/oo< PO C 2\Aom`~p#Z6o0nUoWFD0.@2` \oҠIo`YWlQ3L3Dڲn o4(OCeS2p@ o@_4)+hOrKaoL/\oPZ F` *\o 2o`?J?:_0O/n o4#)+ho`2E24/\ o4Z&q &10 Y 1eoPZ8ao>OO/`?,04/\6eSoG|gA:0xT8O6 -0OT8O6჏ObSp`YWlQ3L36) I->P OonOo02-c 0OCeS6p:uCeS2p@?:PO C 2\Aom`~p#Z6o0nUoWFD0.@2` \oҠIo`YWlQ3L36) I->XOMaQ3L36) I->@lڭ=Zo>q3LPB :rHғ S vu&u 3 P>>  o0mX06QL@0ӆm;>>   o0mX06QL@KBf oP9 Ώ 6 { ! o0mP۷& ~\ oI &tcf ofA  \ ?ho0*i6X0D` o@z \ o`Sp ?:FTEptS o@ o  o@PI] A36 oC3X`D`M\ o ь o@ ʉ# \ oh o`Sp opYX+ o`b2 c˽( o  o F ʉ#. F́ \ o`LP # A# [@0BP-@5:Vy R @P<@+BFTLEH oPw2s@ȰH;dp5P KMf o>)M;CXOTV Hܴ3TDM@"` o@_>)M;CXO8b o@_>)M;CXOmTVc>)M;CXOTVc>)M;CXOT Vczk ovtmȰH;dF_ ` o@_ o[wtm!ȰH;dF_ ` oP9~M\  oࣣ $o6 /o> o'mΜOTEpt  \ o Z roΜOTEptc  \ oPBbdE48f!o@_M\ ?hO ovt*@V@ #O o PIor` PIo0mH0-*  \ࣣ[)M;CXO8b8^o uHܴ3TD0.@2`8^o  o# .lo\o0 1` 6 o  \o`Sp@?:e \o`Sp?:O oP> @PO-cL$o( !o0mLP26#; o oPZF`P> @PO6<3u,D' o6 oSaȰH;d@F_ K \ oPߏDX_NG>* oo;l @PO6 oF`` o o0 [@0Br8@p4LP #Pcѵ>o uN+LP26<3u,D'fo>[80:r6%  # (=@p4LP  g[mSpH  \A ol& O uHSA0 q`oܴ3TDP6@`8^`o 3 P>)M;CXO8b8^`o 3 P>)M;CXOT V!A \o0 1`/ oP> @PWlLHܴ3LP>o QL#\uLPulLHܴ3TZ?G\o%oP> @Px_6Y\AuLP,046  @00. < TADATADATADATADATADATAPOCcL3S'Bxo.8lIo\o0 `LP|046`ot>  @PO cLlHOLLP>/+nH @PO L|L @PO/ 3S. [ @PO/;<3u5LPdT)rL @PO_ 3su23G6Hܴ3TZ?G\o @PO6<3Ba @P;<313Ca)M;CXsV  @P;<35D6LPRTOp @P<LaHla`~pS[uLPdT)L @PO_f<+L&q &10  S[uHܴ3TZ?G\o\LPRTo[L @PO_fL @PO_ouLP2T)L`F`To} \A o0 P> @PO LP pypPJ^6Hܴ3TZ?G\_I?6Hܴ3TDp@PI 6Hܴ3TD@PI6Hܴ3TDP6@PI`Hܴ3TDq@`:& 0mLp ZW \A ouGw )M;CXO۴T VI1<R a0mLp ZW \A or'mΌ )M;CXO8b:0mLp ZW \A or'mΌ )M;CXOTV۷b > Hܴ3TD0.@2`(>}0n > Hܴ3TD@*`(>}!0v > \A oPI`P>z lo C t'm>* \A o Zo LN (g6Qgx>[80:P6% o[> @Pl_6 >bF>X ooPZ O oPgӳ [ފ%p@>ފ%p@vފp@[ފ p@h [ފ p@H [ފq@o \A o L8pLb oTf\ X j\ XPj!\ X~ >N-0 SG,=Ϭ(>pYh @Fm MBB3BOaKh0̓=.KxsYh@F>=W`L; t01v 4 W`Lr@F3Kt`P`P EA bA qxpW`t0hlpd^8 ! q0ml0;pSAclưMtp W`t0hlpGCB]6Fpݧ^A3lưMtp W`t0hh06HJt`P`P '8 12M63BKh0̓=.KxsYh@F>=W`L; t01v 4 !18pYl-t0hx0pYl @FgNa]6Fpݧ^A3lưMtp  W`t0hlpT 0M#; -=D=6Lk tMw x0(pYl @Fg~4ug ! q0ml0;pSAclưMtp  W`t0hlpGcW0M#; -=D=6Lk tMw x08pYl @Fg~4H ! q0ml0;pSAclưMtp  W`t0hlpGCB]6Fpݧ^A3lưMtp W`t0hlpG2X0M#; -=D=6Lk tMw x0PpYl @Fg~4 ! q0ml0;pSAclưMtp W`t0hlpGBNvu&up@ bA q  ! q0ml0;pSAclưMtp=kV`.  rp2.  r8fF@|0JebQ 8eCN" 8#Mx0JE <4*d"|"Le!"V2A,FM9) UqF9F U*΀tR"\NھV أIM.cV\\Vjj rf ;Y`<"gAǨxF D0 ) iF9IFN(^lE>G;75?b0 (QfN1ثq/@4‰g.gzc׳oo蝘EP`B"TL^єBAlTM^i@p c$bnHvX$$KpgQ"ArAtXnm$G9.~<&dEC(=zd 6?rF$nxor"e[j(ĈqQzrc v$I0ʁK{3Hйi9-bCј ]Cyg ,c:Wp|n^g(}zEbW)tRJ+DG"N9dZuݩ Z*yaIr'jYɛknj۝jL%A>h/~{7J ʭUi\˼+~*gDZiǏZmܱzV#,g,8{<#kܲ(66J{vldAlbIh|8''B4 s%C4""IC nI.嗠Oߩr+i^]y'r\-"grr,7.Hg踕0CJC:j<W; ^DGɩYkܖjI[L:CB7N~q:hA'}'wA giOelt)](dXڐaeٻC܍4Q3I\+@ tMyjE$8(o $pWl`E}~&D? jI&j[iS ya,G`ZÖ$(~(o 3L &O[]rS•^1(py]*^ r#؈V00%dR 2*!X0 )0HBĉ~ȴV!Sx`cI+IxJ -!@5AbHC*x (G#*"vW gD?q*8!f@*Qj-@HSԡ͠0 eA2‰!"b0? D1 pU_} R00.  ӮNj  Z!PR3x(V %FU}8G+QO6C1d)])\H @4)N9Tt0T\ࡹu. w +@в9B׵=+ZsH( W¼H`s ]EiG*@%@{KDs\%bhAג( ppCV;ʼ0#cEwyLTkDY{Ќĭ4=c;?.Wz`G#KMYcpDLp_ET*%(XXs+vE1Zj![ Vg-r0ork.[B: %Ir»~h1 ( xtXm"{@ U;=^c\[{Ǐ.t $ogDu7 IpĞ7NEa!"j,K9LqHG;W\$zq7Q¼(>oYU]9=nRP^G79̞Ҿ0/0zz`W0K9@ab"<b q PAx:`=~<|]Tc:A*c F WqE`@7P  *x(Y*h""h$'(h>eX 3 ]  P|'ǷP& - pul@wwHsIs A`Jeq ^`wB-hvI7rh`7 {gQxu_]vtuʓ xEx/y`^`yEygwzׂ;{wBhg|1|Wh|׉w|7}՗חٷ}''~g~~@)G+r X;Ȃ:0H#|& ;0뀃+؃!!ɀMbcdAQH. +0i…r 2\9yWȅޖ̐5uhw?P9D<5@}H'r^5tP7DWxb:7s`5 Ȗ)4p p Wb@WC'pVzr%|pxӥ pyR--Eo.wo:R%US7S %EeՅ  ^0 `^]@@`U  $EE__v-t *P`e &`։6aRha qa9 `^]zb5bTL5 yYcecHfZcljMvp<&eJ.RYfVe3 fb@f3c5ffРrFguXgY--<: d5f]&tT^t0 u@^tp >xl`JVTVkn>k^х хHņ\]FfA{j6@fc j n/)nr onj]n6oJoЪwp]  By-ƛС^ Im7r޹]Ê`ޅ:@͚sjsԺz 婯g-杣 Jt Ъڮz`گ>eǘhwʭ o]wHĝ ]*^& 0{ ۖz׉{ wG/@4Tt*S qI Q\G~0 K x>053 "0$suK +ПJy`pdطaۆg!PQ{tyS 37 *0,@>8&@WY _;5[; \{^ kk[ۉ204@(}g}ا}PWW~~w PPPPPhdm돭Ss{u[HɐAɐK%8C.>́2 \ "Ƀ,v'9lSX{10-LCiKˆn(  к^ @ ԺRrHq0 :L^>0k `{_ xNԳe̦dlb؂# @T[VkXkJ˴ȼ>k<[۵_K<4;f.B5K(z˷~˸7\ b*Eиnx/³ pʛۊ[(Uy608ky8'>$[tg0>ƛɻO?qAD{כȽK7hG  @ p  {볏**sl ֌E$, ­7r )!m%\<<|)vLQ|jhm7=<]?͆K9 pēR pؒ[ٕ99, f Zgϙ,5; 7Kl:n=tPthG)i[M2;rZz躨-օi!Lݨ4 ̃q P--]xՅ+/3%EJ@-N0mM}K il*Iǩt@  =_%!Պfb@ F W1hf0)b 16a5v]al>j6 tNf)j΢ .e֦]6Zc^fc m]egV8^!2b P+ !5] &g*Jl*^Aܣ`vjJ>jc]lJ.k c& H&]FfA{jctnmvcx "nX nlnt`!oAopo> Tۨ_[֯n݄ "ɱb4l:n>@~ >~~z0|~> aL}s~04#Q$Nd^= 0־ڞ!p]z1ϋ2_4ۉ~/1D064_pK.z P2 !e  Avύ]xP`ɀJ>yJPG^BgĬ%gAHi? 0̘`PѹRz+_Q7 _+L/s0yo||?x0ЧX0}0}̳}|嫎    0 *] 0Oo;YA Yσ/_ClZ7„ILa7 :Q>Ysܦy( #tP-q?7t A_0)m-:ҿ?׿ L& /3OLRtP؁A?dX؁5ymꞇ20B8טH$X=5>p bk+# ֜8x0lG2xx^10Pp>p b ŊŌ;` \z0N$Jw +kHxǰAހ#tp ;X]8b@Pq?:鬐(ހ#tp ;X]8b@Pq`-kހ#tp ;X]8b@Pq0 0 8b@PqՅ# tp & (i_kF do>o00Rس b/shꞇ:@բsm@X=6@$K_k .ơ` 8bLp00@բ sm@|pU:b 0܀# g lj tP-0 t A`ڐ֜8x0l50@B glg*upP^A gjuu 0؀d@+L'J:} 0@B g l u}`Z0 p uP-PBu +"u-P|pt:#A 8b p00b܄ tP-0 t Aڐ֜8x04LĀ#` gj lj tP-0 tT 0܀#A g lj tP-0 tLKg _ i͉'J ֐֜8x0隰0y8 0@" sm@<`ڭ%X0#2 P[T[[!u`$P"PPP!uuPPur[=pS~ SUa !uu"P:PPr?#F|Sq FQRS T •SaHYt0Z4`ZtBPvS0#)P#^ ~>H)P9.0׉PH5 `Av@` v aHvvO"vavPq.M$`uAcP ` `^vP3PZPP \PСv)bv0.02wE8@E~zEgav`03~PPP PСv) v`PPP Pav)3' `) ` u u`镣 PPP PСv)v `P2PP 4P)`v`PPP P!HU`Av0 `Av$HU`vvv `^vqjtjv-` X=~`H&@` Fvp\P v  &Tk>k(6&բvP6PSv$~"v `R- `tjbv-`| R aH5 `kvp\ `uPvB"`lv `;:zuPq.M$`o"~HeTsOpuu0 `Av`uuPz`jjG3b!`vv0`vP `w.;vP"`02ސF^UkC `^v Ѣv@vP-&`؂v + `^vB`kG3b!!v$`rkl"v'vpZPp \P~,Suu`)` u@uuug (v)PPP PCy`` u@ uvv`)` u u?PPP P vuavPq.M$`uAcP` `^vP3PZPP \P!v)bv0.02wE8@E~zEgav`03~PPP Pav)3'`)` u u`镣 PPP Pv`kvСv)v@2P@ 4PP.PP 0Pv `R- `tjQlSl| v`Mkkv`k/+QSv$~" Kmuu0 `Av `^vS+ `!|$~0MWP;$O"v0K.TKH?` u@ u0 Pv% !v)PZPP \PgvvÀTddS `vp  `!v` #_* k`.Pv1v `R- `tjv-0`| G3b!!v$`rklHU`vvv `^vB`k!v)`v`+PPP P `^vP` u u0*P9.;^9P׉0P$~0MWP;$O"v0K.TKH?` u u0g(v)"v@P@ P u u ` _nP;$O"vP1Eu)CխH)P9.0׉P$~0MWP;$O"v0K.TKH?T^9PY.$~0MWP;$O"v0K.TKH?t[(Ś,•SMT%rEEEg $ww$HU2pAwPz6pwS0#)2p9*0׉PaHUw6w@`@p%w`DpqT0#2 Fpt!H5 Np~Z$:pnZq*M$RpuAcP)3Ґ`3oVpw VpU~bw-Hp*vLwLwP-Vp؂w AzEXՉZpw Zp^ww,wP-ZpwB:pos,w,wB:posБ9*;Brr w6w@2zE,w,w9*:pos $w) r rb`vvJp):*0v#vJpr `w#00.  w>w)rrP`P C)3'Jp)Jp` v0$^9ڐ` v0$Сw)5~7~P>vp w w vv MHU:pwPw6w$HU@p1qwpLwLwLwLwPwpwԣwPwP-Npw A`gyHa3b!OtQt(6"բwPB`vJpI*+r >Pwpw ѢwPwP-^pw +"Tq~awp\hp)wLwP3C6jpw B`b%qosСw)Pf`P h`Hw)7@npw&w0&wPnpwP-6pU} l(fp~!wׁ Bpr!wpEY*$t!wPq*M$RpoOBpr $wpDpTKH?&np^w0 rpAw0 rwp SwPjp02ސF^UkCJp7~R-JpE~"w-tp| ~~ dwphpwppwlpwplpСw)w@f`@ h`wppPf`P h`Сw)w@p@ p`ww:p):pv#v`wwgQ w)P`P C2gaw)P`P `1qw:p):p` v0$` v0$r ` vБ;$O"wP1Ew) r rb`vv:p):*0v#v:pr `w#w>;CyСw)w@`@ Cb镣 P`P C(bp}k<(bp}W~r(/Jp)Jp3h@ @`P:`P <`5~7~R-JpE~bw-xp| wwPzbp~K-ww1< vj`!w$~" Kmwwg<~~!wPq*Bpr!wpEY*;3b!^92pY*$t!wPq*M$Rpo"TKH?t[(Śҗ19[@ A MHxx@V x TOQ[$RnV';$O"xP1Ex)`xPxP3PpP pСx)bx0"02wE8@E~zEgaxX03~PpP pСx)CPpP ax)#3'Z)Zw^9ڐwxZ Z^x`wwp  VUP&P (;3b!!xTqMTaxX`xpXpZ^xԣxp\x-` X=ˁTk_aa҄T'xp!x`T9@Tx`բxPp! wZI"x\R-ZxP-f؂x +>H5 jw ,wxxR w wPzVx[P "0pSnxPVPq"@0x`\qT0#2 nx Z^xBZxpբx-\}  CR)R99 w0 w w wR)R` w w w wg (x)PpP Cy`R`xx0 VxR)Rwwx1DxPpnV';$O"xP1E)x)`xPxP3PpP p!x)bx0"02wE8@E~zEgaxX03~PpP pax)#3'R)Rw^9ڐwx(jc xpt(/Z)Z`ww w@w Z^x Ѣxp\"x-t| acxplpjck/+PJp! wjI"@Yw ,wxxR w wPzVx  P  C! 7fZaxp ' C@Z x G3b!xpp@x\ xp\pn^xP-Zx 0G3b!axX`xpX!x)`xPx` w w AP!x)PpP Cy`R`xx0 VxR)Rwwx1DxPpnV';$O"xP1E)x)`xPxP3PpP p!x)bx0"02wE8@E~zEgaxX03~PpP pax)#3'R)Rw^9ڐwx@`, 9[@ A MHuy.y@z y G3b!+-TZ$vnz';$OyP1Ey)#3Ґ`3o#ymymyP-~yby-0T ypEXՉA y k<(v " y07ypy.y@  Сy)#C +pypypy.y@2zWD # $#y)b x x)z#^ +PҀP Ԁ!y)PJ?RLpypyxxz;Cy!y)"y@@ ^9ڐxx ^Ay x@xp ky0py y@yS0#b&y&ypy.y$Hu0yp'y@oyp/y(y (yB~- yO yPyP-؂y A`gyHHa3b!~q(6>Q-6>Q-,`(\D((Ab~DK>B5\dP NQ u̳€<,`'atjA`bQUҔG%< rDgYisWRgQ%Vx 7(=PLUb^D 3"ITz2M"<..B;@Kn :Ə 8'j(QPIYGAԕxG@ c(ulcO%XL*slX5"B\Q[ ~mœkתy2g| )\UuǝwHU%!mMSJW> G }Thi(TYie]VX!ap$a{BDX%8pxUm]Yg6DL"cXuV^{`}Ic[bLgq@OP59rk^5W](҈}gݘ#%ރph#{x!Q-7MuTI5)P.04@UC 00. < TADATADATADATADATADATA%WoycI'RK$+D/jQC4feTOQсRA - QE4QE=_,RNʀ0B2@;]a%16  P(@K=ܓk/PT<0PHP;Տ5OO hRL01P!=2P13o7Wyr T 7G}" T䱚5yĶ6 E j478G?; *1N*T@11^b:OtXb=.dIցPP%NqRF-] t( P^e0DPFv'5! Uczƣ H-@RDCKH4C]'}6sM-Jwil9ZҐY/-G3&T07KgקiPgļz@f' \k.g&0 hM%+W0t{hpR!q0XyA#ՅĜ"Tl ,ٌxhlc`~axP&P<}>h|8"8`%c`8< l{#em= F{ j =xzwiQDf#vp}uZmp[Kڠo:idܸw{>@X]!o-" Vq pDk>`n lW|Ǧ>f /I?6N9^ƕ !$(:!$x:jE@! WKpKK<0{P@@q K'q>@V\ȄNb pH>@x (aTAWxyhq{ .\:,.0 "*A{& ({@h0e+Ґ!{P+A"h"""%2 B%Y/pxPymn  5h$8 J0L`-HiP{TaWXǀ\\ H{ H-1Azأ(cBa{pݧIyv4 9 ^0`0@!db0d0sE }kO#-11> 6YB*1TפQq-9 /1$y  /1Yf[i]y >f=& eQ:}4"2Hi+@`@*'@+(1adc6PI/+n[pr'ШǛ4 [hRK*qK;;֓Am* Y-\`zzfe èjC;QϻK;8*q-1 `,ċĸ<МΖZ*-!1QCPj @k kp:İ239P9a00ijfa|lHP<,9|:m0v:ȭf Jt6eSk>܇Z&*ê/.\/lAy|1Ʒz|~7tm82V͸`,|W\l%:>`(ø}I}w~>p˯b, @(ˆ٘%93'l91r*A |PooW0|P| :03Mokp11ӳ lrәQ2Ah Jm` *{ }}ZGs |Rt|=tE]]JpJPcF}:ؐ *u} ]؊ڧ̮$K` u |pԻ6 Mk͑o=߰ wr t@ 0A W]'1*-1ۻ-ڵ-:<00.  M}7 'qph%FڇxeC L@qөF>I@@p4|>H@a:Ϊ@{@COYZ*@`5RH- |=eȮA:S4dX1tTxU/D/F} 0Νw:?:[MnOy+i㪆U$a^J7^YYI@93@i>OP5^S<5Y^.5KSn^JaӪU靾\N4`]JN\^xE ?Ow ^6|8gRV`({"ήZ^ ̇ Ɛtt !HG>>A.hGNҪȺ,k ,hY" @ qT ~P >+0= | v?/:0O]| B8|?w} ,@ J Ph}PlImf҃,Y&}0`ZOorT=7q'}q/rgolPL=$ P0{`%/@؆ډͬNtٿq}l<}=@ wP P, 0Bp@}a֏}@h%rpߤ*Ȃ &*1ȉ*T` {peSo#%~-1[Q}PoO }} ?`ز߲Տ,Fh {0`ࠩi0zSF ~E۽ FO4 -+- 8sgnſA8 կؿ/ڇ+__0mP1}p}0;NU!G#wa}r/bfgmeoLM4 x`~ՂTn ׆8ԅ$!qإ?s#C ̛V</r0ַFVbe m}"VJ`?0a\S((@PC@-ɔwj=Ex@n02 9u` ԒL}VJ@ o zߍJJ> }Ex@n02 9͚J> }Ex@n02 9( }P8S(-P&R!ǀ"u KQ-`Z\y!T }P`> }PȰt5 `> }P现` o ֯ zߍ& }/ }P06p %  o / \S((@*2@u cT }PL(p  Vj\S((Ӊ<]L@u cT }PL(p o^6I@ oP" }p } ` ǣ@ o }1 }_  ǣ / }1a }0;U!0 s11ЀA~lVΆ~lZ~^$ g ~rҸ 0~Q ?fwjv8@Cpn@~0` B~PL~-~w$ g~rҸ ˀ/%ꀇpn&pe  Շ 0 * ~p:( @- ~l ҆p՗)0 * ~p:( @- ~  0 *! ~p: b- ~[ ! ~&&- Mpn~`,- n2_6p $  w%p:$ grҸ ˀ/%ꀇpn&pe , Շ 0 * ~p:( @- ~l p՗)0 * ~p:( @- ~Bː  ~C Z1 ~ ~-njڒ$ gr0pn&pe 8 qQ r@}QA@TA~P܁ '2, @vTA~P܁ e, @vB rCpnz,-JJ'm~/@ B ~I[bCJGif؃Jw ^( *ntJ'mD Շ 0 * ~p:( @- ~ H Q} ~:ln1 ~hp@- ~ L 0 *! ~p: b- ~[ ! ~&&- Mpnˈ0,-Bpn&pe P q@Q r@}QA@JGi~tJ'mX @`%\  os @a~* ` x萤@ ]6=N޷ˠ} ь l  0b  p x͸@ ]6=N 00. < TADATADATADATADATADATA@a} * x x  os } * x͸@ ]6=Nٷˠ} tV ]6=N:&4&з x@ ]6=NЉط ˠ} V ]6=Nط ˠ} VB ]6=N:02з;>Cpn@,-!nAJw b} * tf@~ -, 0m/ ՗)0 *p:( --|p: 4 1@¡Z \ @ Շ 0 * C: 1 B `|@r>b1A* n} dN;,z1p:$ gr 0|ϢI/ ՗)0 *p: 4 1@¡   |ϢIP} p: @-Mz, ીвh-k6cs*A  A `_B1A 0;z,&/ ՗)0 * p:( --a $/lЧ@uP>@O-a ڒ$ g,r ^ :^M `- )Cpn ,-΀ tx^ p0>@~Pܛ6dQ re2(@B=@rP*~ ~@nښa~ "Cpn˾P*YJGit& JGit}GO-!d,$ՀO` b $pԀ2 9T >Y,p: [bl -9e#:K Ч@ubl -вfa367+ Ԁp: Z~/C @Q EyppԀp: )(C t Jw )(C@t Jw )(CӉ91A -2p:$ gw: (,?>/> *A p: cO  ^  . -! CpnBp- ~в8YP~Z`@@X~*{!6@~Aa(0~Q r?fwjW6sP!w0t"(B~PL\-о-Z$ g Gu-@n, *YOu .@n, b1A-Z$ gGu .@n, *YOu0@n,  -Z$ gGu0@n, *YOu1@n, j1-,p:$ g,ײ- ~,  a~*a~@-`-0;;U!4X~ :X*~ X~d2-.p:$ grҫ~@~piT~P܁*2, @v  ~@Xu-2, vdbl T~P(`WAfhT~Pl(`WAࢀ@Xu12, vUZ2(`YTuI)2, vd^`w$ g @~` qpqo>8>l T_Gn,   ߡ@~` '@n,   ߡ@~` , ]6@~VYI~VCpn˪,- ~/ B ~I[ Շ 0 * ~p:( @- ~ ~l @- ~$ 0 * ~p: b- ~[ Q} ~:ln1 ~O o 1 ~Oڏ  1 ~- MpnˈP,-\npo> pOȌY \n:,- X~0 N*@u .@n, i 9@u-@n, `p:  T4. @CpAE@!  ~, _(pqo>Hu-@n, *TA~P\(,Ou1@n, *Y%`C\nl@~`*@n, ȌTA~PL\(,Ou .@n, *TA~P\(,(B~Pl6@ \nˆ@~`*@n, ȌTA~PL\(,Ou .@n, *TA~Pl\(,Ou1@n, *Y \nˢ@~`*@n, ȌTA~PL\(,Ou .@n, *TA~Pl\(,Ou1@n, *Y a~*a~N10; Ta~ \n,- Ta~ 8@G~Pd\Yi؃ lD_i`z>> *e2\-p:( =Q ? *e(0 * 9:@z ~ _Gn, Ȍa |P_0, ȌC` p} - в8Y9:*~.AP A~`pqo>!=ѩ X0 H/`>>>>>? ?в- ,IK-P&ڲIK>3 *.a~*a~UU0;U!.\n ,- Ta~D~` '@n, Wpe _Ypq pf nn2vvlGM \n2 @~` qpqo>0`86&&`wjv~ _Gn, 00.  Ȍ 0`@~PL~u,w,_ ~rҒe2(@B8v0$v-Cpnpo>P(@ twlG/p:$ gLr8,Ԕ,\2A \p 0ns11nApwIp1h>".nAIED,d-3 4@CPIF2Ct4`A:,@i..-"1IA pe ,nApwP 1:*˚p 0 s11;1!L`z[C1[5_6csɣRAl|TC|x;J9 X*0 `*!;;APX.ǣ^-b_d]= \*a%\JAlfљ<!>!ģnգ@v{ da>hd*a@dQY*A`tJ{bQ.BX U~= U~-O@Tl0 l* da\1-; p!>ǣr-Av_BJ9 p*! p!@ɓvdT*A`@f-^]v2 ] ]FɓYvUZa%ܰ <=Z՗[@f-^N鬳U #s0 iɣʫ DiJg}0*дH!E4 (NY(E"тE!-@-)\È+&2/`pQJZPA :(V%]u{, 2F E"QC{i1z%򂏑}nʥ+ > &BYjKwEu{1|3lbЍЃ,is홱虤MKay? 6d2iT dj &oo/_0 ] vp*~Aa101E@8tSĔd U~HpALIp8PA LIPeq@&l@AD0@"JU̔ UvVYIQus J mXE4n68=P"tj 2JHEH8fVDE> `X M84 5%Y i: 7%yѝ MN;"eY[0љrv9C DH 5Raztq+<ݭ^9"|@Pt7"x%@"E[."luk.O"vc?Tt^fnQl-886ij>`{6ݣ(ja:,HLge׍F)w*xzy鑇?P G=(%& t7^[ ~' m'LH|IOb`(f9§#Jz*L.f@C"*+V ~ dvL%LQ!v`p!bg փb{ 9Jx D!c"H&D !c$Y HFDQbw`BdF$2&A*R 1l$S"1NT  #p  < Iෘ8[z@Očj-ڛ$z0'Qٓf1(h u !tT/L:b+?cjjy0%ʬSQS#(UBxGn[rHM Xg\ Z@ tȶh " jP% g}꛹eF7F.2H%MP$^eьl6ֵY@ׂسUNAiiW6oh;sc|8qE݊ڵ{3=N4N〃B"7y?U rC BÌ]9N Hbg*4Kx& ӥA01ғ =T$ 20$ 6_Y-I$1j^Pl$V=[>?[b)c] !Ad=R(K\onbmmg9wF1g$~D/ړ;(@y4r%we@m# x wJXRV xCv` P@nl7!+h$RuLV-L-ppZ LL?f3A'p\(V1@I;DLH_FoϖoGhk0Ut|I;,@DGj>pDXu9 dCD RJwdhQJw0 abX K`IH' Z-=C~ x * y4 !hNL|$ĨOǘ>h9`FP ;H&SHj6J6"9RB' * -f숅x+ iX5B #P YR0W ` PĘX8  ]uSn:y >00. < TADATADATADATADATADATA @` JɔFYԔЊO$K9x7Ҋi:1Eq@8 P8~ CC@b PJBv```rP <  5 =W7pPG2 ii pp^F`0`̠ Lpv  4IȩYi iFD:dpw PJzĠ7 aj<w) $ &: 8:)(p 8h7 2'*Ji8ZKҰ> B DBD>,4FRZ~*@ !0plilH J, , .() -4`mG-sQqR>@87YYwPDGl|tICY E͐fcSi?O1AիkY9e=dff%k20~`-' @:À"7Ha0`/R ! ylo: ` ,J`$@  蠭ajK`L>0c&AS̀&`Jy隳 v vF`vIP郳b@@9PIXBl*``6@{_b0Dkh!:HAeP"ln0-]_ۛpBk< ܐEG>ŴN RKVa\ [$e{a[ykknÖrKvz˷@+nJyppP'Qz+j ԊjJZwCH)檶jۮzZ /b6R0up+,l˽p P%u)A .tvPK[zxzÜğ| HLūī빭k6+ŬAų˷`ܺ K;a\psZRǁ{'LJ A6u7- {P:ǡ- HΚ)>< 4ˮp | ܥL̮ެl|lF KL$¹̨ڋJ-Y !d qq t1"÷ <<7L{\>`0m6!/-Q wMֱ#+ --\ UPN% O {)BDDbܬ )}@t|&%D F=S^bų5PZȥa z1| Ĝ"]~]7* mصH6ۼWb5B+U0ٓ =ڥozN OlQ ͷ ) }]Ơ҅д+ u->ॸM޷m޿-ޢÍ \Ҧ~`ݫ 8xG!m׍"P ok>)վaqa6ݎ KУN*|:;; > f^j! q>unL ßn-; 龜޿>~샑Y굽.!/}~۾.@4xzA@* ) ^ݛ/n 0|\h/ ߳o#%ʝڮη*%egǴA~PnÞNxV/X_΀~N~R?4`[? NV6٨ݱ~ѫM@m;MNUbÈ?Sy~ ӄN}?ST`l[? .0X}2݁ * Nd ]n͆q]p@4C>Ϭ-31M\|p]O)> 6ە>@R 0*E[ ] ,8{Q濈Նe@o*oOR^vU W1C4@T-XG蛏Yws+Vq#PJjjhYws++e#jhYY!-@``  *P]>P%\t[1csP t Űy ˵<()"@   p-l e@  "ڪq]}i@42BE+Fn T DD=T$ajnl t @P]>@P0X2l t @@`P]>@@Td<4z@l='~ @4{\ PJ4 j}7B X6X1@`}7B oW92@`}7B oW9CE LO@6p`|`|Y>lT+EuP4lT+x+z.nll,PJLhN 4 a@:xlA6NΉ::p0݁ˏ-1 ?60AE Q 60AE X6Xq/Ps>lTVq#pezwn^`m]lPJtz{00 P!z{@`0>R%PRppL0AE oW9TajTVq#`|@`pL0AE X6XA?TV<Tape/HP1ZR)NB)V00.  l Dt“` P !R[ JQ 0` ٛDYDٛ@O@@N)R< yfN@:@ @` r[)-`\9@tp[V7@H )PЛ4`HHٛ@H4FUޗ1Pi  m& ` w "! P39jK)&G lH 2,;   >aadڡ nl! a ,  ! ( 0 !   a pǴa  -Aڔ*  ! 9ʠ?:D!{Ɇ5?M 0POc wEB+u6@ py%JT}i:D$40 $p[a,>4A p& B p[ !"p[A&p[|0 U vfƲ8p[ @ o 8p[ :p[ fsYb6 D _v ;0 w-j6h#-Z0 h ةz{np[,!($(U1t[!UV7@) p pp[`7@ɷ  t ةz{lp[z{UP| mIlp[C;\p[ Alp[w[-Pxm x ة& L^p[*P,Uĕ{[5`hI> {v|@'NQ @94hp[hp[ٛhp[Ydp[ڮ!{(lp[5CFiD;\p[ A\p[ R5ҝ^ٽ)np[Ivp[f6?&ue|tp[a[D;|p[n> sJx[Lx[9Itp[h͔q tp[w[Ivp[@ wc6J1n2panp[v[v[9w[w[@lp[;|p[n> 'kf ńQTUIlp[Kvr E}%Iv[!p[a|A@ / Ei!̀)jp[RJVIJm~7݁p[CAFaF@CE'i~;ɵOZp[ /  ةZZ圌p[u[p[-:0*np[~p[cM92Fɚ Xp[ؙAI> L||p[z{np[I|p[hܰgW p)|p[w[~p[w[w[@lp[ Xp[y;nv[! t u[` ` Xp[5@@ p[p[@u[! %]ҩr[p[# ypiX%\jp[H/*u[ ! 5U1-@jp[RJҩ{p[}[@p[ t p[` ` II@ E1@I|p[ ;dp[Uq ^p[*P_|p[w[v[ K~p[I|p[hgW p)u[ ! I> L||p[U^勷u[ ! 5ҐU1CAFaF@Uq ^p[*P齿lp[ Xp[p[̀Iw[w[np[Ilp[ ֮z{5CAFaF@C ֮;p[yٮz{5CF!;p[y&\ {v@GQU W1Cw +:% z7 W+ZUSPJp[RJLp[ p[~[ II  ImZYn*1}7B #6wB rR6Rws+Vq,@ަ6\YEW 4mZmCɕUIp[ Ap[ Rt4mZmCnhgW t PpJDq:!IZiAC)$+V=ڔ*J:77)Hx1PIw_hX8lȡjX#ʩMr=DassʟJDq:!IZiI赋C)$+@3ڔ*J:77)Hx1C !> E"V@    aK "  0^P$bP $hpj0  d ^Pk$b " P@5 $ a (`cxB00.< TADATADATADATADATADATA0|p OB(  u( u* R @kQ  B@kQ`( r E(  u( u@G`( 8 E(  u( uxX 30 (  ( Rt`* ,> n Nː*( > n *+1 r w  b8`2 ! !f@`> _ lt 0&A  p   UUޗ D:Dڕ)  ^R40 D aw~aVrJ]\>mR(:]p ^gEP]f}D aP}< R w`@ !-+ $U Dn `n P P pi@0 b & p L p Wp& p ` p  Ӵܠ sS tF 0M 0 0[k Ӵ sSCD  ECDp P? 0M0 0[k@Ӵ sS `Ӵ sSC0 A4p5 A40  U0۰Ґ1P sӰp0p`װ@'P* @s m# ,qP Pհ\@S t  @ ` G   ٰPpp*ŀ0 Y+  sPM00 0 Y uŠ ypiX%| D`ڰҐU13 `yp ` g `u  `uhҀ!ې$U1Ҡ#` h! ` h1 8 3 @0XP0  PX[S:Dj 0Fpq pD5` (1 pDup۰0ڐ!B`p0 V 6`检CDG ;`T rw@P] ApN` \ s$!D i ~0O@ !D ZNpF sS!Db pN` \ s|\A*vȩ~0O@ |\A pg ȫ00HFAd?F[  "H!Dc pf  "H!Dc  ppt@Ad?F ppt@Ap| ADS5HG;s 6`0 D$; v`Ȱ^v r;Vp s$; v`ѐ P ; AްPtr r;Vp sp@`v ;e >`0 @.@`v A @GpC0P; ~ `v Xp[&?PG`  zq[? xp|  `v  u[BU `T V P& XP0 PX[SDXP0+XP0 P\ MXC[Z&@.` Z Q0 0 0 X (   8 @ ` H Ad€` &p &P00 ~ (`PG`8prw0C  r= .~p`PG`pC  &0PG O; { >0`' P'z w`@0CGp`i.D R ` u@| A 00D;`p0N, 吣r 30"Ad    ^s@SpN`P9*0#dD^˩ `PG @@ `pC 0ַ[ѐDF `uװp[ tؔ| p` `e!ZptP2 ˰|06@pP@4 A^0y`v@ I@@FD |A^0y`@ IF @ TQd4 @ |A P `d -D 0?'@P p@>P p  C v ) P BP P  ȥ0@ /!D0:'@P p@>P p  C v )P BP  BP j1U-*EUȉNPA1;AT~t~ c>+ G&twBt$@GLL\} :Sb (#0x1#| 8  S-uYa""e#UIʳJ'N X `0 ݤVi#`jl9|L: cCȋ@O+\@*1u <δFI%咥c*2F%aRE`0Q^0p6r,^\"G#E˄%@1@: ?.|HR AENRsqeiؑe F Qo"EA0oqiAGg Haviw2EN|)C<1 aqFma% r!efF!a LHU81 R<(#Ckb> 0]'IZr@1櫀AGca FTHskGl'P%^)uqhт5ҡ* 3 `@:.@"»$@ SB6 A5 @+ ,@S<$S^fn74L-@fλ(.̻X+M.) (.+b@!L ˻@ dTڻ:0N r@4w! =7mS Sr-S`9}S2 0NL 00R L 0N3zz L,3E:K3D:;N&02&.(rAv 2 :000.   g>t LBX1v!M`H@EP-a@Rx 449yZC,h qFlØ6c%XA>E CA Gh'1pq#C,bq A? ~aHD AD06A%nqf0&1>q w=@3 8:XȆ<ĎN ht± @ $q2ɚ(?@ @Ljҕ:@㎾qZQ%|Z0!kК ,qB?9@%4@Ǭ߼D8YNS2L8@14nXЅ`G|<3S0.HPhS`ءl9anBvt@GHl43BM# @Xġ*@ X&arh5T}`CsH- bXG<4 PT䠃J-@M0 e.`ԡf>3y1 `M 83H"A!@s VAEav`_eAgpV:@v TVP`4a L :d`8&.ύt+ dw+. `=.,o4jI #H2wAD8;X?P1! s9 Ӂ-CqDg0@D0+Qux"mBtCL8`aJ`A~P so؋ ã3GG\X0@c&( CvE`],`ƠC `MpIc.)%uhb<È"0 `HB;6aDCu"1cȡ֕C!c@bߺxL!tt%>яa\C ?aL &L@>Ȫ-A 0~AE!+G a>q@haA"LM1bAi 6+hhh.n H&KG VP4!G P PX7 Z(6(ckG}ϾZ] ApWja!PEeh2v kcмUqxF.<1P,Pz_9(h y $@QMWհgMktv &P0@$f@tA@"<luXO@ '5  7XIoG XpC@0 kE$P  klX V ~txBưxH @. N`FkQ80 p&x pw +G":À >Ygw `pE uE" R @QA{ 3`I0~pvV P P@+`.01P> 2@VY&@xph`!$ V 4Hq{YW`+}urHPSrpt;pDЎFV:^0000q9 %N gѰ 0ӰFh @b9S際P[?pr0  I9;7& y 0 s vyspY  40Ȏ>P p pU#[K(ll8  5vL`5 p Oàİ`RqV@90 q tApٰˠ  0`Y9w# %T0͠ o rPP 5 ~ ~P ?0@~ &Ĩ꧚Z  40 @zJ ,@:< 4@ *9Pکƪ 8`z :*ڊPzZ z * ;ʬ z z < %p +W - p@0Bف_5n]@ !2 P B0BQAP t F(5P79BY@ @Fˠ KKQ 0c[؀Pe[4怶P; Pڀ}0 Ш P< 0 &Opɐ @ 0UPɰ? s*Ѡ  P 9 hhJL0н@pHpнKQK^  .0`` P? 0 0 t  q   g p P A @ Alt 0 -@@G< pŢ^ 3  4  M`00 9z|<@0p  _Ш@>PX@Y|ɜpg\.pő `+$y!  ֠ 000 W Q0bP     mАPY0@G L0 Oa4Fe4  ndo0 V!Y  t `[ FpА @1p; t2x~23 p ڰ> k0 Ð `&` @. !}u0`u :t P #j)`)mM MT/m1m4 Pt0@ҧ= tGxMQ=U}Y$İVP ;PՕ_cMeA=L()!]p ٚMztP 0؅]>m$@}ߑۨ ; n~ Bj H P#  ( fAiPPkOi%ZD`H xнP뺚ENH2O[0z G~3Q뭫|!5 5^>JKk5 : 00.< TADATADATADATADATADATAIN8 ^  RPp~.07x0 - @q4>N u@ )푪VpN^  DPH?Mo@ P0 $M_` `] @ 4  @ + P @%PO0@p 0P @ D  @P vp0 kP'pp| 1C` /@`$0 p? ; O0,P Xp #@GG p l  7` zP@ `  a@p̰ [M@ @ `SuM @ 9P   ;azY ~ S _/ PD9P ' *@@|` U[0Tp:z0%01  8 G OװyP|_pVF_!@WP0H Đ>4@ RDEup` `cPG x +  00 @ptM [ KD `8 Nft+3!N:NP RR[8 PװU!0E+5J+I1%OذRWCS E2}!}2{ #b M|7P|` PN p 8]0 #0`Ft 1Lp0` `00; Lq1>ğ%0 |j`iᇪ IS  op3pud 'dXMSMH0  7 }- P-2gGg0 B -A u Fq F@qM1.AufUWPq F`1p F@qM1ֱG  3pln=p[YW}Q 0odTF` p Fq F@qxVQQ 0 !v >`  q~l- Q Fr U}@ }d- P46 P @Qq`Vp Fq F@qd4# y @3  zP4-M zP=| t`G3-M @\p F`1p F@q}0F31н-M +p0UQ 0i4`V`P`  @p0/4`V`%P -M P p Fq F@qxh-  d `SP 0i Z! ^GiV`F` F`+a4600.  P @Qq[pF0p Fr ˄ B.pd| P bG! 0!NQ(|IP@Q ݑ  egHFu}w 0@]a,}dTGx0ԅU,  >` U `L1` fP(B vOAa>0Y : LE> A:T> A:`U4>So 䠳 A0E!k!0 @Q U$A* `U4>So 䠳 V>So 䠳 LU& A:!k!@Qd P ZA PX 3B vOAa> V>F`F  B.p v R!!ꀒlE`~P`p F`1dF@+AJp FaZ ڊ`@W' >>` wn0~;F@#Rd`paF@u `׮@F=u` PoA0` ! ˄ PB p  0r!-M ) uPoA0@ 1"}@ ` 0 @z4  C}P  C6  p  >hFr!R N 6`#fn C`Zp E`ІkZ% @Q WA Ld@Q!JjW  Px@ P&@ F` ! W! 6 ׳F0k60!  @ F`~P0`o  C`Z C`Z`E3 pwU%PIÀ L d@Q!k0 C @ `Y @z4   C`Z`Ej-mZ`E3P0!NP`E3qɸ %P0A0OPpi`oPF@A@0-N铈 P`$ C@W|pW` qmZ`E3P YVF`E `W``p E`MW@ FF+v@FFvv%-P@ P  d@Q!k0 C @ ` 0P `~P0`oPFW$ CPOA- @z4  C`Z P d@Q!k0 C @ ` 0M`@ E0k60nPoA0P0 Э 0 P d@Q%xEq!k0 C @ ``Z @4  C`Z`EniEnnx`P0!`oPF$ C0OPt[x`@ AF0k60F F W   C6 QmP#fn C°L 0 ld>>p LA XLA @ >`E/u `@  E0k60E i  Cp $p0 popPP -Qo U04  U p0 r =bCQ   C6 "pok AJmP#fn C6`oPFE0k60`@  E0k60E ~ WLA PB PB.pd| P bG! 0!NQ(IQ AqB -A 6 pg#fn @Q U < F` !  $d-M ) uPoA0@ . F`~SPoA0}P  C!%- PmH~ɸX PX B.pd| P bG! 0!NQ(IQ  ܠ ` >` !  $B ,P `|`*po` d`paFu !K4  C  L O@ `@ D W z [D @[D qBEw/ S# D 1 }ErEpD90YP 0R w. @N/ 30$ ! P [D 0@EEv L P 1 #םA {-,#6l PP 3q@ PL0.> 0jF@`@ F0k60@ P E~ ~``A`0L0od@ P`ciE ~ }P> 0jR_ T @PPh >P ` } ` FP ;`>P  >P `a>P `qF+*p F~p(P ]`P[P 0P RPFxW *P @ @PW`F R 0> @4  C0YN 0Y@ [*P Lpq.P LPF [P .P׸ @P 0 .P @ 3 .i0 L P[*P GP7 LPF[P E@Ҹ p  R 0[  P ?NPF LPF0YN 0Y@ [P 0@ғ5 0 ,P ,P p PoA03Y3P d0 L [P Np @Pce :P ;,0 @4  Cp @4  CF+p FakD `paF5l0Gn PoA0@ p0a0 6P 6P ݗ60G3 PP00.%< TADATADATADATADATADATAiPo`P8P npE G3@Pg ^P 0P5 R 3fPP n>L> 0jF ,0Pʖ@ n~F F0 ^P 0^ u i@Wu pؐF @P0pv  !d ,`j@~p0 @4  C 0poVP>u 0 4P ! R @ Ppo@ [8 4  C[8 >Y@  8 p pP Y& G3@4  C[8  0 * ;`: 1 : 0 <    0`~ P& 8~pŅ*0) p0 8 0 L    @  C0Y@ ݃ BP "E P 0>` CL0 FP 0 J  PW@B A  "P ePV @UDP !>P `H`iH @  @Q W d@Q%BPʖ@ 3e >@ >P ?x@?PP 3PoA0@ P@ PBg>P ֑A#| 06 p0 E eߡ@  u= Ṕ ݇P3P n^T0 ,P p7d0 `|`P`T C`paFж?FvS C ,P @FCFF`a|``ZNdd@FfP) B ˴A U&P 3!! `0PB[*P 4  C   P&. B ˶A *iod| E  B Ԍaod/N a VP  @Q %P aT`P3P 3!;^,ذA#AQ ,P }`Fv ! - |B ˴A *i Fl' ?  @4  C @N!# 1 @Q e  ldFFV-M =P!! ۰? @o!A@QFFV4ҠF` P-B ? - -qp P` F+0p F>0~P` :`*P dWʱR`paFuP xEq"p2q!!!R  > >< @&F %*B.p v R!!ꀒ ܠ ` }  d@QE,P `|```A`0t @uAWP*~,Z t0EvE@u0PoA0@ " tp @>@a`paF`uE`&p ;j`4`FPFA`р† @4  C=d&@c& @Q UB -A A PpA? рsJjW Tc @Q UL }d@Q``gHFrcF0} r 4F` F` `W 0 GHo!A@QȽ PLLP d@Q JjW`oD B 0<FATcC&@cF` f=dpr; @4  @Q UL }d@Q``gHFrcF0} r 4F` F` `W 0GHo!A@QȽ PL  w A @Q v R!!ꀒP F` ! W16 P4 E>E! ! ' Ld@Q>s@ ڀ Zp z  ڊ[z  ? 0 @ @ .!&Xotp Pl>`p F@q@b@ f `paFu  P&@B A  C0> i`c @Q  lP~PE`|`aH,Ds`Z#[@ t`ddqmZ0~@dZ#[@ t`dgPF@FfP@zP>^? P.! 1 }d@Qt[hvUiO@ 1"9+>  ePP@ W.@Uu06> E4> M@ 4B >@ E `]l. PP `H> uU  @ P>  gpF> @NP @ Ƞ(@00.-  Qo PPt ݷ> E0 vP PP0@}@ P vP0 PPL@ P>]PN0 PPvp |Tpp 3`  0  p PP PLZ B ˴A &p ;j`> o^1T> E Jj4f,R> 0j Jj4f,>> 0jp&@c&@ &@c&Pvp |T0 Z000 @Q e*@B ˴A  Fd@C&@c @Q e&B ˴A ^11> #qw0"( v` 6 z So{ AmP F`~ɸLɘNɘp E`ІmZaZp `H~ɘ`@ pEfgJjJj::6 @mP#fn C6 `! x,d9> JjPc50> @ E4" JjPw0"|TP` @Q e Q Ld@Q!JjW @D= P&B.pd| P bG! 0!NQ(IQ F` !  ˆ B -A eFP6`PR F lPoA0PFt-W@FGj vp فF`@@9P8I` tp FpF-T,P 6P}p?imGu 0 WlF #AQGaoPF C tp s0`o C0F0p @>P @= PXWݱ  d@Q4I@ B 3! = PX ˄\B ݷA u F`1p F@qd 0f si PA3`V``V";dP@o@ C qԌ PL 2B A AQ? ? рF`aa = PL@ }d@Q``gHFrcF0}@r 4F` F` A0GHo!A@Q @Q ˄ B.pd| P bG! 0!NQ(IQ ܠ ` O B -A ` " `ǰ @Q U! B -A ` " `ǰ&p PXW do> ք@ > `4f,` 0> ` &@c Pe0Yt@ M@ 6 u0R>  u0EAp !  -LB v@ P@ 1"@ ``Zp E`ІEs ppppPHP Fp HP $ x` ّ Päp FaZ0~#@HP Px` @F=u0݉`k@ `+`F4 E0F# x` `~0pEAd  @  @ `  P fTܮ 0 > P AFPXW! Au0@ .@ @ X@ ɸ  Pz4  CPW @ PB AmP#fn CṔ B6  E0k60 F`~`E PP&݇B >P ; z`PP 3G3=}P @4  C @4  C @ `> ``Zp0j0FŭvPPoA008` FPr%nP 0Y @ ;`@ uPE 0[0 @[0 0@6 60 mP#fn C 5 r 0eP 0 فF`(`Z`E3 8` >P `Z 0 P0 ` -3 >P 0 FP !;pvv  CṔ JB ˴A  | P&F&}dF0Ls}0"g@{py F@q`~@q`p F@qp+` s @E`a1B!kFGHo!A@QFGF0 @3F0 PL `@ !! /`mP#fn C @ `  V"E@ e` F`~ɘ/Ppo $ C`Z`E/uPoA0P%0 C`Z$`H>bZ V"0 @P FP _ UPFW$ C 0 <k+0thPop0`>@Po0 A@0-3 @P @ P%0 CÀ -i Ld@Q`gHFw0"H >P ; 0">P ` >P O@  @ndg@PP 3>P ᡱ CtPʖ@ nLf @ ``Z`E3%0=; FǭaE@fP 0B+P `k;B!k  C`Z0j"F`~P%0 C#d p`0P&P 3@PoA0` nddEȠ P&-B ݷA *i4-M #r tG`-=O`-=O+Ȉ@~d1 !- VQ@I;JT!QdJ;+ 棠DVĤh#{IpO[A^,*E@Gx(IK\ W3R:2Q @: p#xW_ġTZa0M~v8ֹptDE~+ @:o(=E<%qٴYe!7(Ddsd@>M T:[G$;>P]F"E(B ~ <ZAt]AFSG900.5< TADATADATADATADATADATA块N4WDot a;`D%stW_A-HRXI" r( yh|#kqGG VXd#PI ir/%5V_yNNX R Y%B(!bVc<?#xp iEm10t~jOdH|v< d@Qv beU˄5\rsKAX-3YTմr\Ь@b(zI4,RȜ @(RD0%a֚A$PDP1,69 @]ͥ,:JK o.0KISZ[R2,jŕ2*(.[ih Џzj(; QK' d~a-^Cc 8Vn,0 iB_M:Ɍf@nq0I6H]Φl4``~t6{T Gi%4 *kBr$DMO$USHԉu`@@6c] B5렀Ep d8aY4X \M>@2(/t|Tv0 CxDؤG#egXo >UE@*%/WAJ)0]f .R%l;XzuŸ2lEIQU % H $ $@G<牎)B4PS:z0P C8^pcaE(" <nF!3>،ؔ *$"B옐 LpB1R8pD( T  #hL%&a9NӒ%eBjUZ{m}$@OLb^O(=p Pp_?Êt34!$aEg)Nf5qW+ExL-l@¯kp=kQP *O}$WGWa !x~߇p/GO: !4 ??ԑzc2B  0@( ܗ=0}$ ;@T(gu@g ` tp}W E}ח}@!|X})@[}~`h #>@u7wCl}Ђups ą ZX`~cu}̧#zuEu!0/ax!P%xP'^v%`4$c$bu:`{Rp%<Zu塅@3? Tv,)VA7Qq'&.@ H0y8 !P H N`!DkVE}Xh@I@a1A @94` pDq3!x7@ @^Nh$8 y^6Ày I-֖H)ci$9ґHM xBSQUIWُZY"a An9xpq ّ( :'ˆ'i`ȩɖYs6&Q@ `Ъ+НЖ /vڥ9G=s ڠDgtHtLtP'uTguXu\ Ecc2  8:v;29:PVCD-R0E|@AkDEb1}LPvu0VJ2+k08Q; 0 *0 d @5;4Ѯi1kKm $tp4 L:ih[;,.:0,Iz22ܶ `)*($4†B+۲: T` T ]׸,X* Tw (ĂIv+  V±FBEHб}`:P) ~`"'ʵ˩.P_`["ھ ҀA !  @ BK[!0!=@Sunʧa  hrO(6PFU)P`Aċ ` `0P(u A۽Ť\anbDTFR r u}`u72 q6ucsנU&Pș Q-N $*x6}AlQ8/Ɛ%Ȏ*,\p@ `Q8-`_V&P# u1Q:pG3r3fpALtJ[im}s10+YlΟ}@*sd@zɠHP6u RC+  ī ӊ/p0TM5  PҚ@{Άqϻ;KCü1,":\9wBD}Z}źRQ%p!0T;ǯ Q3+r>"b:p }z 00.= % ҙ K&m*.D ]J Rj@+4;uPeC38͊ɄB@0+(TwB\'$5DhlК5-Qh<͏Qm;P{@I($a8!%B': E@rt)=$0`;+툚ݘཋt1Dڇֱ@E l@ D ٸa Uv>{& QX N?k( }KItϝ'u` 3` R"@ 8ǚ!"1.!'JMmuNPeu' LB#/pE"*# )z+ N~E}BP"0*AND \hD0w}P! Nvp̉{ZDWMdNd {m~.40>F!p#>n烱Q}G"¶$@8( uvkAvgKR͑x)NkF[L\i ΍" ?BND:NIunvep_AG|,aZ{]LLK" W])Au!N$nG)(E/7+JoL.M}"ҡt MЂ `DJ2>B])rO(aա +u!:1Ts ͐&Fá)8{E DsFP !!%1p0r@0.  P ¯7!v k[(ԛT!F\# p ~ҡw(&@\0M j 9>8Bˎ \ Nv |ڍN% " əy >< jC!AB@P$UGBHw= /x `-F%og؆c:w@pPGڍt :z{_PH ⩇`D>S<+++ Tz@"p0 .z>'؆c:wvjHJ ^Qe,p `K p Hb4}s t*Z.0Cv`qι. y_pCPLU%S; v)x bq O[D[w +1@`_Ӣy1)x bqv њӢyńQ; Akt B)r{O[D[w +1@ _ӢyQ#qmtp` ^'" r@Gkv `x # ypJM|Fp0rp`A P=T0жhlsp$0°@Qb>:)S; r@)t "q @EuBC, GNk4 r 5-G:;)t "GkgHH7HV :'@N@kMRN%p`Fϸ> AK[D[w +0@_ӢyČK0@6)z WVvФ@ 5]e:VVeXp`FSssJ *ZZbak1xq!/0a"d xj xrLiG71A` 0 00v5 W[O0q-q6 A2u pLAvQ`48_E/ z3+-@Ys1ϐ!U6( L0Nϐ!m*_UaOs&Lt#  9 @ Y)L 1ϐ`1>DuG#J@J:+j) 9?9?9h_E&Tt!mj/ 9$aZ `&5 9H$aX X0pϐ0<@a0x0ϐ@6`## G 9)T _U 4jЂ [4rgCfs'}#v@4,:`c !|9{~hH s嗼Kq + K  0NV-H/7'0°P\c,~Pz b+ AN n b$uA); C IvFU,`gxY'ـ^s!Z!W0+p ðABX "F~@ бN Їu=z< ]a`uE{/!ru|.!9(uYo޾v=``FX<H8$kT!9 9p9 hD`!$|H 0Fu;|pPI9 , @Az~  Y% vUpڛ]#Drm:Wz, ʯ* Z)\PaY  c# ypJLa;vTG bBv&/&~`g" =AF4Xib!A 0 Y p 00.E< TADATADATADATADATADATAtv~ ۝v!3m+! !!0Tz5 okP(Kkj oeuG jQ;UK > d*˯ME-m}倅 ZCAW'(? ۝w X( =|X6X@{jX^6XZ oZv}@ Tz5 oc,  @+&\ _3ӸG.}@&եMKM tm٥MMCPxhɍ!bc/VX:8E#MC(TTz5 o7N`Iq6=$uJȫ, :Vys t*ZZGc! :3D PMc ic3D p QHr ZZ|9 Gvt@spA CKp F8D s:Wz, ʯ*f-4 -׷JQqEЋ`-ȫkoW tWk&/`1p`vS W)}` Q3 5G{T xj:0P ׍ V7N3Vpsc;7@ʯ:@zSPG t sA @+z7 A@>06ҐSPG t_y_yP9W,|9D 29|a.@{9|^@ѡ z2 u 9Ebp`pBc!UNEp F/@ T 0ѯi`1w `1vp lPN p F@j ψ T w F }s t*Z<i  wjf@   0p0p  3 0 _0 : Q0W 4P !.Kp  p_Y6s >P  9' +p pp097 r y00` ` | 4P@  ! !0`!@2 b1 s @~LL{@ 0 PRp 4PP@0@PZX o0 bs1 N8p(0_. Q $.&_?. <. Q $.p_T.s3apL t uP O/ t`G/ u@``L0 7g 0. WH8@p  mPX @`@t ~@ `ǀt ~πP U C À P p=PSX1  n@ A$.0 o 0 `SRy^uNАӠААӰ p vL;`t@fϴ ` 64 F6L;`D  p ,`Gϴ6LSfduvL;`D# p , `W6L;`tf䏁  u@ S?`an 0fe0t   y0 p  fb ̰zPX [ ʰ0 ` h 0   @    vϴʰLw@l̰4PX p ` ` > /p˰ `  !4i@t8 f_Y^j$t `8k Wp Wp p ?` I p `x `x `_Y^P Py$|RS ( <  0 p p  0@  p y0pW  0 `  ,XYY=x% X;`u @ ڶ yS B P̀ 0@*  P vKG~ `  Y _ `_1 0@ `i@ u#8 0@u@6 F`5 @@.p &:1 ,*0 YU<4 .4 Y5 %0 ? ? 0  4 .4 ?= ?P&0@0]P0> >ӛӀP0 H H H ? HC2 ?P&0 ]°`Gϴ6Lh6L`?= ŀ@N( `@&` ˜!\PP (N(^]PX5}3}+}- }}}%  ^}C>  @P  c߮ p @ 9aPp9@`B12!+0&5: LdMhϠ   AP???AYA,       }A,l  lw7l???YYA}0B0Wp_  H# @;p{*# @]` j` 0$!0e Bp # `T@d 0@p `s! p샍5 h  hq K@ hq)ؘ @@b y p MC {<i>7 ` 9w ` > X`PosS;Py T>c`πp 9 sFp @ ^`642 @ P` T Ѡ հ0  RpL[Bϐ00.M PXr@PC@ tca8` bs@ epL$[ /[XK $`0pL;@`t`p @Tq0 J ossw8p ڐU 0N@  ;p pq $!1`5 H> _qɀ /@ĠY>s [ >`3  _q @_ T>UŀN@UX^] P Py!Q06 W ~@Gp 0 0 0 Ð p ^ 0 @a|RS`@k{p@P P 0 ! 0t#0а°zp0t#0а°[Gp5pG0%Nhȭ0@. WH_   p-S[`GϴxW@. ?r p  аааа0a0 pdP Pkϴfx@tP>1  @ aϴ6Lo0h6L4@ YY _Р&U  @ `TZ1X  / ,p / 4p fϴ6L0f4 0ǜ 0@pnu p`PpptpFamA   Lp а0  lpМnqnmGϴ6L_0f4 _0 ɡ @@ @p@ pJ@ Pw C Z 2@G2@uBA'H`p_A4>P>0 t4  k#x0Pt4 _4Y_4@DxPX6 0 .P .P .P .P .P .P  0ð#@ րŰP 9pwP`ͼp` H=0U 2` yАݰM] xRШW7٠Q۠Qn5U Q  Pĭ 0pP7t @@4Ѱ˰.p@T )0`|02 ĠP `   +p@)   ; "8 P ?0J Ѡ |P t@ XK0\@0     0 @PXw+@\@00pppppP`   `1@ P2 R0P 0۰˰ t F  BGJ>2 |000G p   AXpbɰ t#U@ |+"y$J>2 |+"yD*ًP |+"Xpb۰ tP͎ 0 -B t#U@ |`@ 0 -B t#cp 40"p 40"? P 'RG tP͎  AyDJ>Rp   Aycp   AQ0ɐG tP͎ "yU@ |+"ydP^  YѰ˰؀J}2 2 U Vp!60_  E  zH3       PU<ܦFHs߆3;` s  ApAp Sp 3PO*/O*p00 j-r`@( 4[Ӱΰ ]P  0z|`j=>s+z||j=@z @b P 3BxX@ pAuǠݠΠp Ԡ P p QgP p pǰt@ P  tP_JЀrЀr p '`"X@Ѐr@X@ƀp } 0 a3P #ЀrЀs Ġ p`P t_JЀrЀr@wrxmX@rj P PY3ƀ  s@F0 ҰIPXЀ t _JЀrЀr q ,`'X@rj P PY30  s@F xM ]]P  }p!B0 gP 0 _0  # P 0 Ѐr_J@ P 0edt `` Ѐ @ vL;`t /e f2`<t<0N  @zF T<|PDPD @Àd` `}u *dF *p _1,H/ ypi .  %\P~@ Ĵр d I鰳`16Ly PLPGD=>} =@dpр @ @ vT0t_J#АААrАrWrwP0 Q 0 Pb!А_ @t` 0 0 Аr` @x  @xP _0  1>@ 0  `JB@ð . @ @ʰچ `7@JT ` @P2   π  `dp  2 @`Tf16L;`t ft``P& & `1   ; P p   ; \0, cϤL uu' uTu2 . @T #ЀЀЀrЀr @:`°tPDLp0€0 P "ypP@|@ 0PЀO ˰\ LDPа"  + Ѱ Ѡ а"  ð 0B,  0`_\#АААr@Аr@ АOP L@߰h  tGnTp\PD     P ð `@10ݰӀ cGϴ6Jf$ɀL P  chGϴ6J!h6LMDP} Ded@ 0 kdD@fD0״|\ T u@ ͩ t@3 xZ! 0 h ``@?0۰Ӏ "6L;`t f$ɀL PR[ } lP X3-m `Z! ð `GdD@u0@ `0PpM Au0@ R+ = 2 x`@ ð@h A`GϴL? ״|\ Xb P 0 cq0 @] PD @@ 3 0 P p % Ѱ Ѡ  @ \ pM0 2 IJ@0}@ Ѱ Ѡ s  Ѱ Ѡ @ F_J{1@u{1u "s2  = ư#P`Du @^ܰϰcϴ6JP!h6L H & p@N a (0%@zF PM upM 5 ްl` pM ug l$bc`9{P \(0j vt^ r Ef[i.VAH"F=!I 3K%63n1Cϒ'-tPDG s&*@:X5Nʑ hR@dzPW@R}`dA-5X]/‡O&;[tmw @MU_5/ՉfϨ&Z2恵"8_QzT [T4t(P,{\ }σDWI1" .3Hstp="e(06p4〨@?q aA|c[Bc <#Gw8 d cPÓ#A=tC xN9`If9f6@t\b~7 HCJUYh1C ׈qT.2M Dc"P .z.*...̴:. Pb:#N-2"B)VKJp3@# ulN3:T: =8` Z 1E(H,…0A"TJtD4DM4DO" ?r :9HK3N/\1:s ?=|M7. LI/]"`A"H#3H0LM4ۈH$ 1<|/ ;4a=\ ^k0:2#TU8H^QWp U:S sG2#H0Zi^h2uDEsJ-P6utm;V!p zr-pYϒ= .*t70[)~q:"o*t _>mi1(vE. &LX.xQE&l B'I1bx$ :#Ѓ^"@1+ '>TR707a@ 0pFPfx xvcb8j@ .cCf gX1 a c 8p`a# YuuDH1 E#xZ f&jl3 \ѸAm`֧Du)&FndyblfxYlg9Yw0t|3t gbȞt]9 h^XD9X*f`t@P353@fj (A H&eqp9  KG-SCaPf3vHVnہ`Qg G:!{j D!l,+?.\v;Cnlc#P3=t]j6&;H7p(@L<\P#f(Otrb5ǭ p/?r SMw7=/p! f#^s5_s嵏sg|{W{{iKdq&6`Vesd9fE?Kf `@yvy{TC ^s&G0h9`&8uVw0w ]vp P @8°.peq qH(/2 Pe`aZ"?K`%acp = .185HЅ@]vI +iXc KoE&P^Y\  NЊ|` i`P`Њ00.] AЈHJ;HK& gRdc` pw2d0@^jfzY vY i KFyh$$cWց.(Hxy}h0HoƌIhv{mxu؁ o |WWn)גVDW`pX1&` 0W@⋪wQ( ^ p@k $~pЅ0(H&YnM0Fy,Ay ` 9G4ht0/Hjy !X#Ex8 i>cЋ}~@xƖ؏0.ȂFF)9 v iTqw8oPv{|=Yw@)k /v]&F `Yqw!b EEF`MY Y?t3HtFWHtn~yxv'?FzgLƙ8Wx'"i }``io 40 )z zEf?g נf氓In~fIz)u WxQwP*@ZdVJ{vХI;S4Y6N6jAFTP`f p˗g:d0j{ À'Y&e  jt WPWdc(}Tx(gtKy@P(P *@R狧 Wz.(;M=;t`ڭoИ MPp@zNGP 0 IO@* E ffpj/pz گ0ҐF`h*pO WEf : n` Kf "K&{G* ,PE @C[ Hkд- `.kQ{"uXf U'~Xu^rvcWvE y騐ڦf cڰl v $7v jj j j zjy( %m Pdzug0 hۀBE R B CLb a y-(0)0oy iph@ i0rsf +p18PulpitPra0sne 0-RMI.`O  51F@8-Q(p EA@INLD M0 `\6 0I$Z0G-q)TPPT1,pBPG0M@'248 `E SNGA0IT 0Hlb m,@q( [ (01`H P CN@DP,,xE<2ET MU +| ʋȏ}10<ȟUpE9 dĬ|HɊ,Q\XPCP ,T\q< /*Pī<1-Rp[5,1 ʤ,2 MPS@ ɛD36EBK0L L gBEO` BՉMS0 6&T@͐,9KNQ\ѽlP|a{ 3pī 2m-˦,p>x<Ͱ0s5>;剭OO`G],`hnATn;?~{I@RΚ.u.cxIp0Mӎ.˳Ѝ LLp=WMs =<;VpÊ\KT=lЮN ؊E*.1.U=ԱʜpL+ҕɹ7`ڣoŧ>2vu}Ξn2 `N5ԞQ] \<¬Ӧ-%],pN0\)pTx|zlLӲ9]ô 2nԅ=\RRoZO.OP@*D,T)#BV}+Cn-S@FpHKZ/7NF-ӳ>>2WL/F.H=>7~ooˣ~ ApS5,0$}BFXP"\ -+!-1l߈\2/PQE \ |9œ p9_ 9+,*0\ \Q ԉ-G.L-=ԙF0P*D ,>L >1Qm:=ŲD0oU\λ QPF])=KPYF*BU@X@sN EP\*nTTRS֒-?---1O_/--!--/--_-qMp2B7nE7nN ` 7^9 7^q-ÒOU ,}CE7^&~7^v7^ \XT-QՌM0$\} <Ɋ,U í-\QP5\E@\OL Z҇_\OΏ- P^NoN, Wp">KO_YS5,~-13ŻJNĜN*.FQ<\,:XP/H5 ,L@A\A̢]L|߾ LUSnT0F4nԄCؽPȟ-QoɄψ_,-m\-O$L. C@\<PDE/0}, /p> N ~0q3!Tp> * g- @5< P *<k8r0m@.`s&/]pW ^ T l ɂ~BP?ɿX# eEIUMP@P\\N̢T@O0υ*##M0P*#*LE BLT 0L 1@3^@-SpT,T)/=IO@[,*B\\^m+00.e< TADATADATADATADATADATA.z(P)$A@Y` E:B4M[N,L.QP],TYT9{o>;M*H:Bٰn>*<=F=WF?|BEE־=VYD 2PN\?ɊLU]{*S=}$|o}T0޴.+%},縟:,L.}x^A?BU 8e׽-[ߊOθɲ}T LLOSpT 跬EJp]T  T;{ L g}K|\Հ~-`B- Tp 0&n܂`B m \Nڊl}]7,Tmld2-q-TʗŸ}%O0 4 pK`#L;^߆-/V}/nFw5_"Y0hkԷ]E@,@߾݉lT0޴߿'A?LB N\ϻOD:-\NڊAGoF]ô-;?].}ԖnA4]?ޟ\m:ڿ0QYJ?,LižL\ϻOD& `E߿EKPYpBu}n1O-qF  &TgF  rF0| L0 &TNL/ |NTpqPO~T0L%B}< /{}.HHP}׫=LܸȄiT eN|}EpM鏬x,0.)UL#-; ˆ&jT3 UY; ˆP LL) Mˏ %̑55L&T<3~SՆ-R~3 cLL< AR3/M c</^}׫=ULoԸȕ`E,0^.#\y=hLŮ,)O =%c Rm"@7mKɄO/PPȏ4DY QP]铎զH |-ğY` ~ FMˬcL-R,,`""04Ι.ϑ 0<3Ţ?RGm[c]kx|ְmNnŬcL,RL|Ψ.<4p͢?,՜,Y@l}- B\ x_? /&OmŦ QPY_$TM.]ӋY`T0޲Cٓ] -BEEUMr<N Ӎ,՜\.i.Tj*Lr\rlh pZ\0?<-].ͻ|.̨My5\O`*&T_p5HpqJI܂ x_? /&OmŦ QPY_$Tb־r<BMUSnlT0mGm܍yY-˙lF]^ : QPdܤ\Pq ]T4ۢ?JNަ&F̻|Rªm Oml‘mܮɫm3ۢ?|ؼGŒڔIPJVO-/?M* roT@E<vPCP\M NEvP\3ۢ?,G@®6oԎ ْM'?}Ԗ~L?\BV>B}_ \LŏPRm_+,55ۢ?YΥ/,5@^^@D\ȟ<",Nrv얜RWO-i.T]@3ۢ?Gmގ/TS=OUSnL~Ԗnԙ\ȟ^B n?m&^cL} X Nrdό2d)=|=..գ}کM].=քD 2 [Û&EB( p,\. :8,l +, \^ +N,/:ƬY :~ƘH ZH 5oĀ>-oĮEN2 ^@Lr, phmNT0 B޽6WlH5 6L376WH-/VX3@޽6WHb,m<76WHs Y06376WHb[I`Mm<}lm|tLl/Y=VT3@(Ȏ2|o|*cr</Y*>:Q<PI<P߿QߕL̂Y}*, -1,PH#-̛*\\\E`!]1*, -AN/Ps*0Ҥ*`PUTR]"lԤ)-B*3X`I`1PMٔM}*, -1Ɍ*#Y-^Τ)-B*33*#,^ΤN )-B*3OY*#MQ<}_ \L}*, -A% 00U]›>* M*1*, -A/P,P׬=0_ OGF5UVM`P~-!< BPS Y S=_d/1 ͕^ RT2 `0ˎL2 R=ZPS}؉ B4`=.գ}کM-FM` J@Tp-1Bl 0LPU/\.mOpN\l IUF!Tt@3 SPCNU>=H:BLl*< P}ׂ6mjMŒOcMx` ²lԤUP θ<׌ON$TD3`Ŵ߿ -g=U - U/\.mOpN\l IU,YA"Y@ˬc -FM7@LN^ PPh PXR{R@|.7@NϻO`%,O|\[ ij/n )DS}lE: IUTd|3 1O[|]%~<"L(PMWL/nT0ބN\>A mT0ބN\>A? B %EE-]QU L2_Up)@L5WFۅ/ۢ-|S5 KPYp\QPI&MP EEU o p_ \LɪL)/ EEU  Dή(PM0/X ۢߊ,Lm,YD2?%~lT0,PYE<ގ?S`F5ͻ|4?SL[E-No-=,ˌoT0]U/mS¼TS "Y BO/pH<,Ƚn-߅}D #I X]ÂY,/L_4d- Njb]-^ NJAv(d])Mí]MOpNCPĈ?4?,G@GKnT0޲Cٓ)plZOPÂ> ~;A*H0 0YP2nL`S -TpnL`S  A@- AP ܍߿W { gp}; rpLN &TB@ gB@ * gB@L|LoN &TTPR@p/ 0.}lQPI φ=ˎ2i.TIUTT?ԊCIL(,) ۏ=}L4 U/\NڿF].ڿ0QYJ?=B<-].ͻ|.̨My52I`Tˎ^+>IP,0*^*mmP_|:/nO/S`S`YSD|m:}/nmo,3n?m&^c(3 EwS].Aȕ H_)8ߐZ=Y=1^.M*=Dz=ƽ$\RmԎ ْM,Px,L]QPڏLŲ p<%40w_T7POŬ+7Pl(DRm_+,fh .m Pd?,h,1`l^L| 4`=.գ}کM].rû}ÔPP>̉|-p} XPȿ Pb)-B*3.E<K]#]].Mޅ ,hLE 1pH,LZ\\E`!])-B*3!E<]7;$]].Mޅ )-B*3!ELH}$Τ+0ҤN\].Mޅ :QNp XXnBl}|}O* : *&Oޅ\-G/1_{Q~lѻ?B,g}X  /p M00.u< TADATADATADATADATADATA ߿./P$T.]7;$*^U` I0 yO_F=ˆ8_,3V 5`=QP/o1)0|M2VL( ŒOcx` ²lԤUP θo4 ˣNOUY`-ۭ|,ˣNQPI- ´2 ێ A ĵfƽrxh$A@YXTPE^.8@26m+/NZ#Z\.]ƘT\^m+.z(LN?¼ ƭ}\m+.V(P¼TQmENmξd'_.գ}ک*Z}lƽ->,fixѰ =Rm{>n],( m0DPP0喿?GmFɅف_ pBR=ZPڧ*:^.-Պd)pf↓m* z^L  e@{oBN,;)@B}\^@/UOOpN,;M2I`b,܍L\ôN0]ԣP x?ƍ\ŻKl: A-]MNpH?/=M3?& řS$M/n\ Do4PmL-ۏ=}L( Uqߏ_Mֽ͏^GPl-ۏ=}LOQPɊ φ]:-}$|oMím)@p 0U mѻ? YN\Z<U0F߲]B0ܪn؏].=āI I`b\uɕ x-t^LW5A @TOB ‚<܂0᧾΂05<P  r>Ѥw>M`L / pVpn0/ P;ƼO C?| Y;A0]?|N`cʾLٶ}-B ElcCodl/ɾ)@x^DEl].2W,m|dNW,m<)`chL^-W<5,.XocѵÄElcʾL|L z.T'pЬoۂѶb3SՆ-RՆ] #Tb4~SզMDJҩLBT.HL׼=\^ߣ|HB(c=Y=1^.M8(c=m*\.bmɮ p<%4Ȑx,PH_7 >)&}"E KPYEB-HLH@mŦ =%\.M=F],xˀ/M( HCod/ H ȇL8,M222W,H,`m<-,m|lLflm<-,m|2Om<,,m|2/ml232]. IUT2UR=( uLm|<( uLm\( Hѵ,H ^^ߣd,Dzd2Āb,뵞=Lr,1N82Į) h|.HRՆ؊2,h 감mNnŬc<,].}Ԗ~,hU}2)@(c}Ԗ~Iu- l^9ˁ\ێcƽ6"lSf ͕92pͬL.N߾,P3ICRCDCP,lL=Ofo_٬cRm P,LmNnŬc</.-FE/Y@3LLII 9ˁ\ێ0ǐ<4Ţ?KPY ۏ=}LNȿ^=VEL0,H,<"M²C٧ <<4p͢?2P?MS]N q5,=x,gH<^. ݈M0?cL/.MíMݫ=MPÏ^ğH<^. ݈M0?c IUT0ԽS]N q5pH<^. ݈M0?όlɀ,- >X}ԖndloDO, Ҍּ$R)ό<=.գ}کM-FNPɀ~#ȏ,ƻ.գh,1؇\QP5,ǐǼ,]..UOD;My(cR=ZPڧڄRm,07x OG>~^@L.UOOpN\܂p |P0SpP T~ ߮ rVm WpE=, C߿߿R0P=nBS s_B`\B`Li@g.+&Ti/W %~NRpYpN.NN F C?Kpm<KPC76N RC W Bpp V @@@@@@LL@Bp"W@B`B0=\ ,TD,TD O ˌ?TEUI@¬M0$|`D|\K\ (PA@|pl A@W ț A@W ț P~>-aY Wp00.} `YpRp`Y<NN EpUN0F?Bp"W ]v`j>Ev  flPK @a@ap"He`[ aL pa@inp"hiessmpDPvPeklоe +flPl `ien{"He`[ `K8UkopndPvPe`ienkoPn@Pp;K `ie#lP о PsPL `ienһ @a@afra@L лnPolnprLc{嬢ǽ;Ki e0KBo0kоgEB5E,El  m#T|a cnPxP.g-T]Bpg/_^ T g `iuup0 _/^N1#?R\##? 6jS v @@ @-B`uuup0 |B,g (DeE@3dPfоi[nоi@ilzPdop e`iu-{r@۾g`KhtP ;e@o $lraDP;K$ P e0iPosL¦tK PpcPn0t u0to3epaon[mpad. B`lm cp0 ln0.[P"TN B`i.[E|nB`lo uup0 |Be `}} (LP B`ehp0 ms.[' o  -q C_0 B`i0h.+g/T #0NP10l#0Dp f@7` .& b0.fW.V`b bm.v0 bm.Y.Y.` b @x. b@x. bˆ b Dp א `q l@@p60 `?0{<j#-!m3 `P` Pp `PPlg`#-?   P0lgp`#-(  P0epp#-j  ^ѐp45 h  ZA@-!#`?"@% /04omn@.0o2oRxP@E p "T ;0_ l1_ l2oRxPb"Ti_xPcnvia lP n` .K!T M J ֠ K "K L L  P  K "K  P  P [۰ R M J  P  K "K 2 R  K RK  R  P  K b R "K  S  K ۰ R RK RK "K  P 0 S  P 0r [hp> S kp> P L L 0r [hp>0 J  P ۰K *S 0 J  P ۰K RK mp> S  P ۰K np>RK *S p>p [hp> S b J L ۰L hp> P ۰b R L * P * P p> R  P np>q> P np>q>p [hp>o R  P RK *r [ p J  P ۰K RK * R  [۰ R b R  K p> K * P ۰L mp> P ۰s>*S 0 P * J  P  K RK 0r [hp>o R kp> P  K RK * P S VJ  P  K RK *b R P  K  P  R K L o P  J  P  S ۰K RK  R K *S  p J  P "K L VJ  P ۰K RK  P  P  P 2 S 0 P p P 2 S  P  P  P\%A n &MI!n KQ $h.l0E@C i1fM'2(89zjiћ`zLjz/Rf@M .beQv%H-ӥk fm;&T 0[pRΞHس#W%af `kʆB8,vGOD-Ȃ%%5%Jvi> tbܺOeI=/7,䉤Xu=gĽ{l87ׂy2FgLEF"(]`(A\>Q aTuv`zewܙF"%s-zGW7Q}ɕuryA@8!ioՔb#A!y" MDck5XCF]MNhgP-rVA',g Pv:hC"e b(BuL!'x%p PGjy@y)•lgdkM*9H+&ہf騯jb⴪֬ S|K[þz-$r{b+5Ἓ(߄Yv御B5&QMSP-nM€,0,LQD(<3D- TArrl O8N#4$ 0\\ Y{=Ԑ`es]]sbg]m{sm~s@Yvփ542#+p5,ra70u##4y+]qgM@+:pwfٹzz]z\nn캟>'o';Ymێ9 Ͼ Vm~_g#2$pSAQndsÁ rhV0Bhj; P@zx!` ` ID08OBB 8`1'H FH\@ P~e 000.< TADATADATADATADATADATAmd;Ƹ k[`>4 @3M`^WG5vs OvpT8<.tC_$UpŘ!a1u|@IˬRY0TB'POB^Qd4#ZЂfR!PH7RSS,6oA;r|dGO~S~f pY@'9PP%"gYpyl^ ʵ* ;"';}~=W~#5:069?RW6Rm(eT}=QԐT]&'i;+(Mju˝8 ԝjY:u (]\SFcj$PUUP'k_cWiɡ.i+Њ՟m&-٬ lhvL X6Če O7zjq&:tneJʤw^=oFLg pM9z9Lہd5vXB/l=ۼc:x\϶[,0q$3$MVB#zUh~_oe⦢ [{59{vΣk%jjDӍS魧Ɩ(S:5i~=2uT"ob]z}$lACtVVV,YqͭcfLMƳq+z2>nYyhUTUZ|M@*SmVM񇓻lmxYӂ H3uw+SWXjx9A|[wXv]gH\km0mmJ]O譵ް:'gjMv:ι@tn?3Wm-yQTwŗzrV(㫾ws5V(Fsε eVaV5kTq@)EZ6hoS>vP#iJ~gl;۸ફW̒RO`Op?X;=b3(79?n_iಅ<(>5 y\CY|h85 X|H !awc;W:h{ys!wЁt?s^X%>o 5&cWuf2YsHYyYy2ƃt SS\4HPMS@FJxX#Hg?co{R{D]>'\`h\5FS05Pm#G;cRD@D 5Ї=2z ؇?85*臀 |H1CXC S5d@G 6AZ 3A6 8 p8F858D2S@oP oprmtPriadAaPsP$Pep e0socn@X(G4##AYOXi ( 0 uieCFh 8gobakP8XɌeTP3Y3DOx vaI(8tDSvsnP5%Z HXSW ]9 `a  320HmH0?E% `xCdp Dȍ pL05 E3f@P0 @C4di;99\8DELiUeul5B)QN F)e`cPӘYd Pv ͙gP`TPDsoЍia yj HsH p2 @*BPl0 ;"6O@ P 2 E؀  G0 6 : @` Ӏt + p MQP [ N F@P p< u`+*t 3 n 0 `t` 0R68`blt ` p 6y W Lp8k `Yi%)p@m@0BP p0p@  P   @`mE@PC@@@@P P&PrPPPPPPPPP```Sp#;]jߠ).wްE]9Tgl    P@ 0 @ P  P  @`  0 @ P0P0  @  0 pPpp P    P `  @P p00  P  @  0  P       L5 @ p  !!!@!!p !0 ! !`!`"`"P"P"P" " " "`"p####`#$$P$ $ $ $pUSP-PNPPPP&`+`H`M`Z`s``````p4''''@'P'' 'P 'P((`((` ( (p (p)))0 ) ))p)******p * EJzְ߰3P"bgx7]+\glq/a\  U z /@)F,9bLLRp* 00@@@;PJPlPP2````pkÐ2Qb|Ӡ 6Ht(Ist >Y` ` `@ `P``aPapa a apb0bc cc HA@n@@@@PFPP`Q``Vppp*Ā-2i`jjPl lP l0 l l`llmv:Q| #EnnP n n0 n n`nooo0 o oPp p pqp R * K0000@@%@\@PP6P@PMPiu0uu u u uv@vv v vww`xyyyyyPy`zpzzzz zz{{|0p D  [N00.  p ` n(pp"2.bMN  N a t K0 0 0 0 0 @ ^@ @ @ @ !P hP P P ` ` sp p p  J W o @ { Ր t  ٰ * 2 7 & W     % ? D S o t :P p``@p  ` M .@ ]@ b@ o@ @ @ @ @ P P 7P EP JP TP qP vP P P P ` ` ` 0p }p p p  4 P ΀ | - b İ  6 O ( W F l  {  K0  P  P P    P p@ 00 P p PPPp p@p  P `# W ~ % P p     8 h .pÐ Ð50 @ Tİİ ``_ P P P ` =` d` l` ` ` ` ǰP0 ǰȠ@  Ƞ `0ɀ0 @ ɀ ` ʀ pʐ@ ː5 Z ;  P P P P ` "` 6` @` r` ` ` 4p |p  3  ( 9 J ɐ ΐ e  \ v ? 7 ^ f  / E U % a s &Rd Caz  s }   L0x@@@.PN@0P0p 0  P P`pp@` p $ x+[|/D 8 X x    0~00@@@PPP```` p/pQprpppp*ZJy7aޠ  >mϰ(FeKmU_@j @Ͱ l7Q000z 0   @0 p   p ` P `QπԀ_l͐'Ik/jư6@a"'CHOa{5Vi"NfpG2L] 30w000ٻ 0 @YgP|PPPPP`F`  P`p  @p Ec&+`rސ/͠AFop  ` `  _+m~ P` h| ` ` w?IW! ! !!""p"@""P ,  0###### #@ # aK%@3p$ $ $p $p$@% %P%% % %%&&0&&&&&0&&&&&& & &0 &Pzp ppMppp2ƀ"'Ð֐$7DQVǠԠ!-2+ ++@+++ +P + +p +@ +p++@,,, Ok . //000 1p2456@pbpppҀؐ?ΠE==0 = = =<TinH@PP}`PDGpGGPGPGpG G GGHpHH` H HI0IIIII I I II@JJJJJů̠<n)8d<M`MMMP M@+MNPN@ N N@NO0^otOO O Op OPPP PpPP P0 PPPQQPQ@ Q0 Q QQ`R R@RR` R R R R@RRSpS SSpS0 SP S SSSTPTTpT T0 T  TTTU`]LPmPPPPPP``O`\` V V V0VPWWpWWW 4p)aXY`Y`YP YZ0ZZP ZZZ [\0 \]P]]] ] ^  !`_`p`p ` ` aPa@b bPbpcc0 c0dd`effpfpffP ffgggg` ggh@h0hhh h h hi~ii0jjjkk@k k kkpl`ll0 lm`Y3 oppP| @P`p>izİY IBA m  $0=00PP!`A`F`T`Y  `@ p ` @@` ` j  0 80 @0 k0 0 0 0 0 @ @ E@ W@ @ @ @ @ P P IP P P P P P ` ` (` Z` _` ` ` p p @p [p jp p p p p  ؐ N c P ` 5 J    30 F0 P0ࣀ`p\ GP P :   ` ` p P `0 0 0 ` p 4 8 B h  ^ P@ ` 0 0 p @  0 00.< TADATADATADATADATADATA `PP`P `  ` P P0`@P `  ` p00 @ @P` p p  p0 0 0 0P`   p0€\/ W0 @ P CP vP P P ` U` ` p p zp p p p  * L r 0 :  K ^ c Ű O  n < t m  @       D 0 ' Ӡp `ٰـ٠0 P  ` p0ڀڐڰp ڀ P P0@`ܐ 0` p 0 ݀ ݀ ߰ @ P `p P @p  PP@  `  @   P @ p0` 0 p  p 0 @  p@P P  p P@SC* 0?p%  p  P  `pٰ/HP8G  90000&@3PAPP @ 0     ܰ7@PPp   u $ !P!"###0##p # ###$ $@$%% %9`e`0pAp5|֐9mܰj p-..0 /` / /p /@//P//p0@00 000 0 0 001 1P 1 12 2P 2 2`233`3` 3 3 3@4444 4p4 405 56@66 6 6 6 7P77 7 7990: : : : ;<0<@ < <`==>`> >p? ? ? ? ? @pA A B BP B E`Ep EF F FFF@GGGGG0 G GP GpH H`HpHII0 I IIPIII`J@\yͰ?%(2m 9kp1>JOTku& 3 8 I f    0(0KS@S0SS S STT TpId T Tp T M@PP3PuPPP`;`\````` p& WXX XY YPL` ` `aa0jY   00cddpep h0i`iiPiÐАՐѠ &^{հ ,MllmnooooP o op o0ppp@ pq qPqqpr 9PP8 0 @`  @P@ P } dp { : e A  &0 0 P@ @ @ ` ` ` ` p p N ̀ n  p     `` p p9` >` i` |` `  ) . E u r " @ d . P n  1 %  n b0 0 0 @ A@ f@ @ @ @ @ P 5P TP vP P P h` ` ` ` ` p Wp p p p A d ׀ ܀  < q v Đ 3 8 X < J { ̰ 0 E n  P ` p ̀ΐ `ϰϠ`π А @ Ѡ P`@ p p @ O: 0 @ @ "@ >@ R@ _@ d@ @ @ @ @ P .P IP SP P P P P P P ` 5` :` G` Y` t` ` ` ` ` p p +p 0p ;p p p 4 E . K Ő a r B B  c ߀ߐ 0 0 @ 0@  0@    `  P0 00@ P  @ @0p Pp0 0p 0P p@`      'm0`L`Q`m`r   0`  ݎ!:@  `  0 ,Akɠ'F[ݰ;Zo'P  0 @  0    .`,x n  w& &@)`** ,- - -@..0 0p 0 +A s 00@+P^PZPphݐ| ;02@TFFG` GHH K LN OPP PQ@QpV0w00@@P%`F``Ppp".ݰ%"i ]@@j`o`}```pgg g g@gh0hhрǐ=Z( mPnP Ll-  W000-@2@@@@@@@zu uuu@ u uuvv@ vP v0wwp wx xpyy yz0zz@zp z z@z{{ {@{{ { {@{ |0|` |} }}} }P }p }~0~~~@ ~ ~0~~A}00. =ds V000M@@J@@@PQPVPkPPPPPPP`/`8`y`~``````!pmprpY `` @ @p0 @@` `  p PP @`3eYC7 S  * / s x 0 N0 a0 f0 @ :@ Y@ -P @P EP wP P P P@ p @ p@ p@  ` @Pܟ y   ) 3   6 A F Z _ t y 5 O T r   & D I  " ' ? Y ^ | . 3  % N S  T Y    + ; T n s ,0 10 ^0 |0 0 0 0 Y ` 0pp @ p `0 @k ) @ p $ I  H ` y0 4@ M@ @ @ OP P P Xp b m  t , ; J ʠ  * ; = 8  ^      0 ǀp  w İ p q  D` ` Rp jp p ސ Wpۀ ۠@ܠ 0 pޠ 0ޠ} UqUm   50Y000 @R@l@P(PMPZP`2`\`````}p6gz5H&`"]      0!0*030<0E0N0*  PpP``  0  0 PpPpŰ԰EA`"0p  p 0P0mIY99`   05>Ihqz# ( / A J \""p" " "0 "@ ,  0.0M0p0#` # # #0 #@#$`$@ % % %P`p2ېtؠ%*Cm}O~-P - - -P-.`.. . .0.../////P /0 / /:!:Zkf; L a z  / 2 22335H0V000000@"@'@H4@ 45@55567P 78p8@8 8880 899909 9 9p 9 9 9 99@::: : :`:;PC0;@;; ; ; ;;<0<<<<< < < < << =p===@= ==== > >0>`fZ| C@ApAPAA L E [ i      0c0000@4@@@@@EE`EP lC`H````````p ppppp !4bDIFWʐӐ$JJ JJKKpK KP+8F5MM@NNN`N N NpNNOOO O  , mR@R R R R R0 R RpR9]0v000000000008@J@W@p@@@@@@P1PkP|PPPY`i V VWW W0 W WWX`X@XX`YZZ Z Z`Z[@[P[p[ [ [p[P\\\\\\p \\] _0 _ __`@`PaaP aPaPbb b`b c c0cPddYPP `5`D`Y```OpTpupp,ԀـN kl YCoo@ o@opPp` p p p0Mt $ > Y     0`0`s sssttttP t` t tp t t ttuuupu u uu`uv@ v ipppp@@PPPPPPPPPPPP  | X N D   Р f [ } o ^ A 7  j B ' Ȱ Pd~ {  i _ ޞ  PPP0 0 00`@    P `D `    `     `   ` ` ` &"92B>`FNb^ZVRnjfvrz~ڠ֠ҠΠʠƠ ` ` `   2:62.*&"~zvfb^ZVRNJFʰư°ְҰΰްڰ^k ` ` ` `)b` ` +`  ` `    `   32.*&;й``` ` `  E~zv `00./TADATADATADATADATADATA 0` ` `` ` NZV^fbzvrnj~`` ` `u ` ` `>0`` ` ` g v `  0zi w *&"p y j    `    `   P   ` !`ְ!!*&"62.FB>:RNJ^ZVjfbzvrn~P!` ! ! ! !` ! ! ! !` !!"       ," "",V R N J F B > : 6 v r n j f b ^ Z     ~ z              " " " "` " " " " #""`" """0.0*0&0"0000006020>0:0B0N0J0F0^0Z0V0R0f0b0##`# # ###<0000000000000000000000000&@"@@@@@@ @@@##`# #$$`$ $$$`$ $$$ $$$`$ $Pj@f@b@^@Z@V@R@@@@@@@@@@@@@@@@@@s˺@@@@$ $ $% P@@@@PPPPP"PFPBP>P:P6P2P.P*%%`% %%%`% \JPzPvPrPnPPPPPPPPP~PPPPPPPPPPPPPPPPPPPPPPPPP````` `&&&&52`B`F` N`zV``J`R`\`ON&    @   `     @`NTRV^\ZXd`K i ( 0 uieCFh 8gobakP8XɌeTP3Y3DOx vaI(8tDSvsnP5%Z HXSW ]9 `a  320HmH0?E% `xCdp Dȍ pL05 E3f@P0 @C4di;99\8DELiUeul5B)QN F)e`cPӘYd Pv ͙gP`TPDsoЍia yj HsHHELPDB1g # Z_60 H0BDR4!JN8)5^ȡqF.bpA#,A9/cB9S&͛6s)neʀ+^̸'S&9 !zU DV)Zԉsgׯ\u^#rI,3"4pR ʱRD G(*vL9I&A1bέ{kXϠF9 HELPDB2g # Zop H0BDR4!JN8)5^ȡqF.bpA#i,5;S@2N(!ly% i&2YĦO< :t@ ZX @`Р5kK D'*htҦOAN2e怠Ę0pˆI& <߀x#N4n@x9iI&t Bm-ߠs[a|f#ބMuJf ѤӘ3gн=SM9a(gDxdh\8}؝ǍgPAIn8`ei B^l% xɘ&'bUE$\6vՉR[q `PƎ}ta5uᑦjNZȉD$k{A`)IAQK|FI;R8d1v$ζVNaqP~ HPTAFDCaOj8mSTRdBd -]1E k NN7CT8!_4]}VJ!k2dt\dXeVK!! m]Y%eMZwa~b\Zq Be蕉$ɺZkqӉa{l\`QMbƍYToFes`@q- T$!QELDC;qP89BbX.D.NGaZ^y\*;4 Ew}`cikr;@z_f၆ Ê>1wpr R,H<2ˎc7QCâ a xG``PX@]v< E^ Ҝ&5ÎoW #A8FO[(9b.=  C8Xw_, ae,ĈfI F# vIaaS" F52"j,Peh GɁ]&ad-GπAߑ L}!tD.r5"q/ Ȅ/H VUpD[C Is\媈ޙ9Dc1y4f*L6 ? M%g ˝2(a:[6"A bBF^PE,` N9@Rw֒`\ D+)IUTB;DwV5 լ,]ؚdll%I5muۜ榗:؇2 ȃN BTqe@T"4JCʵ tQhV:hqT\tƬ0*a=ҺuM>Ff@cL9z`H!ˌnQft4=dZ K$bK2. LxOD̦~ U]7 s[SNS::A`!2l(a!|_ZvQы*gH*n2S|Шq+\X\LDi*ro{nb a(T! T t1mWUeI /2\eebāj8XRb-!00/  1Xb :or ;'Ig5@"MADžFJ10Η3!K %i݊"8D|9jv-6iM zB1B( AL?Yt]VƽzѲ0KDlZh%8iP}:ʙs\LPv 2#dcN-5df O;qWgp'Pq. @w h|^w#zSo@"19ru}=7q1HWRD,x~ ~8agF#DBd'Z^77tP_q7Pd%Jg~ׄ/viCpHPQxm)_HJ~[%k0tu`YAm zK.X8*<kwmQ' @2Go1oP|{8Ćx.~Qe9%"%r`(;Gz}XwjbOe6(0K䆲Xz*FQ,f(a:H|!> ^Uzr5ff(UP-Hh`fe@K戎Klx#?eY/1wnB'CL6\FsVkH}y1k gn>q)&50l@hK 2^H,8BY4UmUWu09, fP J9) S gSt. "_C>‹$rQQ! 6oy*I1-8`r0"° @ҘMHP{@$d0 {F1U 8؏{#P*#I0iBٳakfcpP}6u,&ɞJqsh|ujUyH!`W)YQ-GtP7 ﹀yc@4AiHOSwc%\(m{ڰ @1J8q@BqDFJ`D";-Aq&+nvՓ.*1ivL7B"WOc=qr Т.:FFQO/azw%RH6(1 cQ _qNF$Q2"{8+}}2YX`LcbzQ]ו]G1]t]|?1`iBxɉFp!)`r[{SD"wPqt@cZ=Cp`:0w(*,v9M @ĉ9%Bs -0 #ufZun2$9;꣢7Tϱca2xCƠnڦp`bt'+l"ASa7yI;Qw EITQ1f@ ĩ0ʴƙ{f1 +8AMFAzwLS`jlc?g%ei WPpmʯp|`Q>7;…Xc>s#+:+ ְkol: h#ޡ"C [ K U+B<3Ju7ra|wJ"I@"s}sSz@0fh E"&wsy)Ǻ?Y܅w˸1keԁAWrxҾ9  {kB-Pc*"/Dar$)!Z cC0 4 {O@Rf0]A2 TP `K2|i4<68LR Fb' 1ryE7գHWqb (k/t$"%@ln*$דy7A%e2&.TMq# ,bzu=nZ@ncm`9,6Ά"uMYcAnC[q˺sFp bB"^ @a%}uheqAkc閁]!NmEY |Hw8.:J9B PA~M%NP PAR> lQSQA -~! &mjNBq#LM:9$P^e#Y`tk}zbޑ}-TܗhrA[@ e  ?UzQQ&lA; $[+@" @Q< ' !5m$gEO* 1^/` p!=\Ƞ @ B goMon!(jO- iOw^ $ݏQH|W=~%Vwyiɀ$>r10 `n7^z[Yq%AP0>.@2w7r&M/]@"0Ol߻FO1booA]sll E(0)gRBJ+Ry1)uW=~ hHBK)^AGH D `;l(ɾ ]%" @@>B[W! 9Uwz( @ e0~8!sJZ00/TADATADATADATADATADATA0@ZC0O !aO !da1"KN]6dfDӴ="KN x|UQR"²N!ҲcF]4UAE P lC0O !B@i8 | wA[-A K >MC0O !F|*!!F u$X"%O7%$HILC0O !T!! RP=B, -ҳ={1KP-qICD)"=۳CI]{ S IC '!\tnQR@""K`A!!QA$|!z1K|Z\wx>#aS{V邇np]yܸ%pC 8AWa"ׇE7^Zs2Z$"=۳CǙ1K[ US`+ @Π $߈F㍹-A$߈7]59=D P$ϐv#H_+҇J ZZ9 PI@Xu{TA@X$ߘo8 P'`dT?$x@ F=t藙(qҎ6x@HXw=;[x(ʔX"/H6 b$ߘ%b}a#U.O9xZ`f,sI@XqQMSb\g^"DPF00c%`U-adI$F(m4F-p_adI$F(}UPXHNP{~%^|Q@?FHbdϐv#H_+҇J ZZ9A2FHbdߘo8 P'Fd}pEX$cdI$F uJP,K?FHbdx@ F=t藙(qҎ6xŀ `dI$Fw=;[x(ʔX"/X  FHbdߘ%b}a#U.O9xZ`f,61p/FHbdi`_y9%|k%BE`C>[V VBBsAX8l-4$`8a-dn-4e-CV O`-dn-4EА|BsAX38hn6{N;!fL-Qk-dn-4EЊaz[&/WH_d ӏwAwpBBsAXʈa[W"1n PsU0 BBsAX)Awau&%a/C/BBsAX`nNީӵGbY_] BBsAXݻF1WO԰e~aaڨ7!P CBBsAX9qa(KP2NQQOl-dn-4EЊ.')/&:ɡi[aP PBBsAX;<`a(3Nt ݓA\ҁŠx-a-dn-4rBsAX%9GE`HBE`s-G8LE`C-]Q` GE`HBE`s-GI,P@ +DPF$DPF00llҎDPF$DPF00R-[`ዤ1쫕ס n*`2!pаoDPF$DPF001g(P'#h>[F(1Cxk10TF$DPF00=y^zٚ"*_~pyIE`HBE`s-PIE`C P8 tIE`HBE`s-ɤF$Ba&n?}hw8\ ITF$DPF008gpF}_l/7a^bT9@Y ITF$DPF00F&Ʀ,[¥"k8@ ITF$DPF00苋Q PN ) |m¡ܮ&F7Nu7 ITF$DPF00eƑ;BZoXO2+|㰏(GE`CM;EeOp#eW0*iz[kOp- @ UOv#eW0*iz[+V鵇 5Op#eW0*wgzW0Xt[fxPT tATB`0EPSCL5F nLT@ !S5 ;T@ !S5FnLT@ !S5 ;$VdenLT@ !S5 @გ3/4& tATB`0EPS^u U&ahajm~coLF`&' ` lnLT@ !S5 @⃭*Əρ>)B?a\PlnLT@ !S5 @ԧf6K"CE@.K/X@A1,n tATB`0EPS.V.k!D`!]u# lzJjp OnLT@ !S5 UW%Xp0'~8P˼Ȭm.A tATB`0EPS ()^"~Pn߱g1}peA F tATB`0EPS`"!Q#hʬTKPJ%yH ` g`lnLT@ !S5 PQ %O$au7W 1{[wQ,e >TtATB`0EPS hnCGg:P^pPLxUu%rà>TtATB`0EPS (YH00/  @OѨa=uŔfӯAnLT@ !S5 V[DDH@ǣrKJ> S_N2F0ӯAnLT@ !S5 ZcQXXZ< m`f@>TtATB`0EPSn@O[gj#̿"+ f `znLT@ !S5 +"l@AQ[lZWglA"*BC@O& 9 ItAnLT@ !S5 e>Q"8u^R}?%Rn=Q d ItAnLT@ !S5 *PHhE1D%+"l K]L3aLDTtATB`0EPS\ĻyyUH"[¥u@AZA`  PT tATB`0EPSCL5PRAnLT@ !S5 ;T@ !S5ҦRAnLT@ !S5 ;$Vde)DTtATB`0EPS2.AbܱE1- _oWe> tATB`0EPSսs'kGE1AQ0 KPBX`C- tATB`0EPSh[Hl10`!!_%x|Qa bnLT@ !S5 ЀFNJfӵ1"'CHI]j E1f ` nLT@ !S5 @̄n[|haTHy,\ylɚ*Pa-a nLT@ !S5 ZYXy۸>֌g8BpdLXKPӺQa nLT@ !S5 *PȐq/ͪ녕 qi>$;ɕq z tATB`0EPS>(y`j2`#̿"S ;$VdŪ|qA tATB`0EPS+Ckukqajm~&u> ҩB p ` tATB`0EPS`QS]\ oaS9eƤmБfL9.@b9t@qCRDT4+N*T$RJ) )xOoN LTt)###*h FX"1a)L4xʐPOh)sK*|3ND"UAS;a(Xp6u<$H,29oH;2f 8{vvƜD)(A=tOO9I$ְSC3ili rAA(0߆"XABʮ+2fQ!Gu ,B -W`FypGTs-QD 5GyL^a?qJ) OgVnڇVVJDuQ:>IQ $+%-PO<5eW"5mD\ A K6d_Ra%IiS-@y!nBbsfyOU lR6)tm%9mj{"hBoN7 lhf NieXJdHF#;adT\ѵBf䁣ad@IhN><5aAƇ XKP1WTaUd >y;k{fVAw.0CSޡ^#1BА<%Ü\ZR$ dVּ=o|S8AN AD N4`%G M[!AbeG"aO / 3Kf!<B1`e1!00 1oZ@|2$|/C24"4s CFF b`1,(yIl.$yK d"THP FOд擖D€ȡr+CTP0]p2T )(z&ִƵ:m)']j451Lh:L<3Jۤf9l2,O{ӟp*'猦զ:5r[\%iAfY`d AZh$:F=D@Ӝf5QaHg?Ap $ fL94 MD5PV%Hh0` GRu",]9pB@TY~jc׫Є'! FPJT)XH]Rk)T"1EgYk5 Mશ _2,MU:]'P6KvvWWN63{5j)RQpec6%f9#!`gY ZMij(Xòmmc<%*tcjZt!(w96qs*C-ds "%ŰĂ }Hn`Z:WzbYCRnIP$;\d0M}pp=\.kSU"M +WC**f CL;pW0Cek A n["A Z0$嫂z6f\Po<-';x $ NAiPl`-BD"qCЉAuSv+ZVN)&jU'HcHx @lagIra땶Ohh($o.iy|L`c*k4sbM>Ӎy*@$HB{S7)cҥ{y`Fiys@L3%F b_ǡ=y΢UE~ Rzlٛ } ;wg? )GA`r'qf 51 $ej>^ x{A?Rw7ü/ r$]iw3p "{})Nt&Zdf섧GVٙ ,CF PF ]wgb4C<] d8F u}RVd`"*rS%2DtgDhuq.70wH0w*|7 s@-xsW-{PQ T{xAIG- `0*]J99&E(E "(`!`RHgY1, 5X,xQB%!.6Ah6Be h HpHu>[IZFp$~gI Ȏ9@:0 99ȈpEH 0S(@e`j  PJfL`Б;'$U&8I>!Q;׃CEGiYp7&)ϑ0?@Nx-YUJ 6"<0utt(^PX00/TADATADATADATADATADATA|Y_9y h ȖTixuWz )w @XIY:l2OE@ H\qɔ"*6jQh 瀛>"ٕTКr)αt>%a^@u +Pщ9A0/cߙqdҙi){yH0 APɒŧȉ  jY|x#G hV30p^S[2G}4\8n#!хaڂ0 Xk'R]Dd]5e9i6h6Jw Y|7~g8SU_B`Sy yu:|m6]I c<ރ+A$O&k )smu?*Tk@1C4d[WTJ![5d(e 0 e ln=vdQbğŹog3 ЃK!WJQWI0oqy|«jꙝ#i?Dg}s{p p *9nu*}Z2B#6fgJ˖J|o(zdGtڡ[H<)t0.G>3i@ʪ G Yx;H!esԨvfKiAM|-TKn<|”P`Fuӳ |&k=c !( op6™[aQ1).i l%h53pWWzxAkаYo! |w*0[#$aq)jr #pP$ZOS0i `<9q xWw&+`nsKc0!sg{=e8R2'ѥ `Y(OK[Ų.\2 6D% 9!Kgz"{'z : ?,Jjo(_"hI1#!G4 p:" FD"_zB)T9: L-|䝖ޕ @ B|6<;)m#ԩẰ;xW{ 98X%7\X`mq8i€l8x rL>yb P"w dž8s0*E3+Ccg"w&s) BƁ\BƖ|(Yu~DB0|3ɯ,˄\˘l%uROpcWMp7Ɣ,&Dy9ڒ~`Iiͳ\ȇLV%F1!"{0\̃͗ (uEG1SP yǰLжmYUXԍ1 |̉85A BQg_16)PleLO@ҩC<p8-pQMs\R'u81od fV>E p0e}ymtZIUTbBɲ, @oJ -Wi m0=Bm7~ȏ*@PRHJލ ؍W  C^8~$Ni2 B܏c6PڒQp ZN]niY$M&3P0B 1ᇜ0100iP萡9Qg r4r9 k"階D;#1=*_' QkL꠨9W>qp;oPP,{ʶd=kd`ndZTwp@* PP[{Nz֎ë ^Tiy0s c^Imـ$+H(1c; I`!>z ʍ丫ƴd9J@p+kI=bw@XAf9=eyPJޑsW3 \/p9* iO;9 .OWOoϡ"*7ʰ ނB9RW*i~r(0¯0N0 @q   k NG%%-IAAag`X(ЃR='tfctP)l_^U ^cE0 l_.aE0-AVPC*` ]Lp`3 =(D Kg9fu s"0l_^U ^cE0 l_.aE0-AVPC*oIiAJ!%!a7#ő{O! o*2 ! MƤ 2jO/9(08PPC50a^3 D.+/IQmI(rc(m01( 10]q 2&rdI jOF0BT @rc)`+Kg9fN ؀Bd*)-+-a3-(rc( 10]qcn Gʀ0Ŀ>a#DJ! Kg9fu h >V0-a30NjO.-J0ڢ qj9i1CL=\*F@ͤ^9f p:~M0 #ʔu}6)v9B7@~- 9n6bP5gc^aȖ @h*,ɡDc9n0 - .ڝnIj9Y亢`Oɟna+dũ\`0O ڝnI]\ Y00O ڝnI0C8p00 |j aP亢Yu4pS 0PΧ0O ڝnI> Pk/ڝnI H%O3 Pk/ڝnI HO83 @0k/ڝnI˜UAC82 ^k/ڝnI<㺢wO!nz{ [̴9"p c;f벶pc+ڝnIN0 b# C9iI 1+ڝnIS0 [㺢9L|1 2Ȋ+ڝnImok9z!  #P7cqtut6C` Cga31 &r9Ag[Gga3Ԑutut6C`0t6CV '{["0t4d KYGg[Gga370sDt*!rDgLPIUq >Ag[Gga3_Z8 %tut6C` 9t6CAPbRetut6C`0)AtC%+fpAG1!l: &tut6C`9t00/ 6CXBB bR ztut6C`3oI6sAt(b2|bCilNc.:tut6C`:*H{k1 ſ#Jb7bKpCg[Gga3;WA2H;i!-qjNaC%+ , ?tut6C`0Knp2%Ku\ # Wnp2<6htut6C`OBc*39ci[l,Ǥ` w`:>Ag[Gga3'*Fpc#qU/lϮosA69 (?tut6C` :mhl`P#GhD3\$i8h@(?tut6C`0 INKr0S$1wPtt+ Cg[Gga3dPPl`j 8>Ag[Gga3ڲ@tut6C` Cga31 #@tut6C`߻/߽ctut6C`~9t6CXҢfp-[@[fpܘ-u-+-k0#Mg[Gga3/`R` Btut6C`U!G PQ$dPا FP%pS9 M Ștut6C`p!G hd5 Eh6bgcp6Rk1nKp쀌9Ag[Gga38:Vb&A?b( ^E @Cg[Gga3dMdM'^#IrDGC'a#;`\tut6C` _V$sE+!Z g "9#P ^&\tut6C`0 2 t[f _&KxFPsAOESY \tut6C`0bʫcp6 B$Gyϋ6s"d3 @Cg[Gga3~*Q*e)t;i^aJi ICg[Gga3~x#qUU]v B bC alh-+ $tut6C`p4 yc%f@XKzl|{2Ux@-PF?$tut6C`pi=6gPbO\!pDU lP" -K fУtut6C` 4`>yFpc#qU% 9Ag[Gga3}O@B !4`>yP:v:j\(0 ؀ $tut6C`wKzluFpc#qU?j@B ! @9Ag[Gga3~4`>yP:v:j\(0Qzlu%tGE g mOg[Gga3 cIg[Gga3bQ•:Vb&!j.k 7tut6C` Cga31=/r9Ag[Gga3`Z0tut6C`pd_dPkq[v h3GPe)l 0tut6C`w_P;Di=6gP{QbsKfH&i; YGg[Gga3PZ$j7arl0> Jg[Gga3"Gdn*iJS㮯~ KLDg[Gga3a_7GPhe)y ^ztut6C`F@A=l!c6i@<SCsEz,tut6C`$ Is>b pTgRБ,D ٠>0^tut6C`|VL `tut6C`:V d:bgcp6XQb5$GtQ?2 K-``tut6C`p`#Iaa7îX!18Kp&kIs$&u?I` P~>Ag[Gga3d1"d9sE-P!LkG!d) "c`tut6C`:cf)=6)CC{yq9c&!äl4^ 7>Ag[Gga3dO9c&Ѹo93\փsatut6C`~e{a/I93\(@hyBVVCCg[Gga3*d"\;ÅT6#Lityc%f:^l` ?tut6C`0  %!1uvdrDG$9W!;WP 0>Ag[Gga3y ~Lg[Gga30t6C~Lg[Gga30 7tut6C`ߜmfCt6CV,- >Ag[Gga3%\ @ga31{11TRT) ;p tut6C`PX9ǒ4I`E0V0ctut6C`Ֆ5y D@Ig[Gga3XmYps< Ig[Gga3X}4`j>;=3 tut6C`i97L PN9Ag[Gga3S | tut6C`0t6C!v`C%OG@OEg[Gga3PR1O%9+aV- 0&9Ag[Gga3XV@tut6C`jXj^1X10 Mg[Gga3˜S41>~9Ag[Gga3XmY0,X20 Mg[Gga3˜S 42 d Ltut6C`iʼn `tut6C` -lp ۰9Ag[Gga30t6C̠9Ag[Gga3  0>Ag[Gga3%\ @ga31Qx@vjkRT)tut6C` >07V@7PHg[Gga3_' tut6C` > Wtut6C`9]ި-@tut6C` >N9 O` tut6C` W AP5RU=vPHg[Gga3_^ O`7 tut6C` > ` tut6C` >ÍRg̐PmOg[Gga30lPmOg[Gga30Fptut6C` -0>Ag[Gga30t6Cj sjpHg[Gga3 \tut6C` C;ɯEx@Lb/ꮯ.7m`l0tut6C`p'ԒUh!ᴫA;"A;TP YGg[Gga3#0d t?i죧P?aOGga31&>Ag[Gga3_/V ctut6C`Bga31XҢfp-B5-x,ܸ=`w Rٲ7tut6C`9ϒҢfp0tut6C`PX9r,1ǥ--Cg[Gga3 H"e(-)GpOg[Gga3/APNtut6C`bRKg[Gga3'1rDgLP)Uq2y&K9Atut6C`x5B6MP~>Ag[Gga39et00/TADATADATADATADATADATA6CAPbRkN2Q8CKQ8t` 9Ag[Gga35@H1H98],0&VdRdL17r@)3(AY J9e@aΜ2,@93$EQ 9y\4ZB1b7JL˘ES 1yt Th4(iT % aց;~ bc 6e "q"X4q69Ҍ*=D]2'fK!վ] `(#5vAJVqI̦:߸!Ns@ WL1oڈI-!MBfap!G@-h)D@  $B@M{nNǟfȑALɑhB BɖPRaFz2|zcLl%GsȠ@ qRfDd$@HZSP1E#N@W TAqh&SFƶ>pj:hh 4E|lJЬ"j+EDN|jIMyDi6 aQGNHDZ*Ԇ{)@;o99J8,<@ G|0`ܧʫ1p G ?$ogrY1,/˄0`7W+# G/3!Ӵ,l1ǐSV[immp^+ d lҶ*wh _beB+1$?wA†Wx#/8X=\WNxǙ#x- 9k+7y鈟^D+ ^r쒏NyOS{B? o n+@ @~L@&}+g%u[O ==3sБCZa ,h /I W(|t7A?A;Z@Oi #QЂLI J.rk`FXOJUv{@ E.)\$^D$n&P G!: + 6b(@^WI$W6'W"|k]57rRhE9A ~p-涌! IxGe 1=>8  'H(@\ Prp)=F+0ЬRrCCp7)i`re 02ҖsrLm*a0(#BIqfҝ4 LdKJ ɜ DrDN6@ iCq2!3DCP tBͣ HZK! `J_~o|j1 d7܀@~@P* Lu* 98 w@ʀ`2,PyHb[M*(nHRP̉ dJ[4ĕ-n0P P`ChP*Pp+ܱ v`ym yNiCSbΚe˜ܡ<ɢ 8YY~t!)f Y8:@ַ1eX9q1 vJe0uq6! xHC.|1Dw:Zz18@G;qA1]U 4HYR[9eA$ ø0M׸Ӌ`"=M Pwis4o%[+[> phcA)ըR)M .6XSM27溚Ca*2X _vp-SqIDj æD-H2C5*'Y򀼌.ga  1is⁐<Ό 2 VPQX_n4?= qG.xaNƚ"/!,'7ۗ0S7>tN`  =!99@J҉ dxCĀ'c@%i0CMC\ B)+H?ώ46|ZxH#tDuD&!}ܔ?pq83= Hxho ?7:/!xŋ똅ի<+)eҐ>3$AAsTK A/nĭ 4|z^@NK5%?aL}|`RB9  qaEN٦A8*400˶6Io+Hlh iOQ7Zd`.pFPW}3Z)rCW6qS's·r9ti1q7HbGv)avMvavC#?3%e^7o6. G`%ts fh>Gx;DyaLg~]1Qp [EI%сGaZփbl P6CwY?U wIņR@U!A`C7uyj|4~dI4TBK!HsRnA e,G;PbTn6&eN6#PRG1yvl%g p~GtaxpmLq!}1' {`577(n&sXts%aAQ}An2af./NЀVV1^ 0hlam1f$fB!{[3Yi)"$Dѐ/y@"duZak %oP'dg+8'ḑ p G:PP7 !!A,s*h9f ! PX1ZW_B2o ;Y-IKaKNjbXz7h7r`| )7Uta{Qtp0$q.1 rp N |Su9xrVHL:(id&YYaXa MQUQcpdwѓ t HQ%(rXYi#d75nGen)`2&464|oVoa%'pnu6wFAxi#B^v1`2`3.OuWI5 C &&*f,f_ 攪&>~/v0(kOu#UV kU4 bX pqq(A)#D 98BnJ B{ɉgyQG&iz4_ t~+w; P:Sa,ui<- 0pTơU`6FkVF#qB#-XOC,ѫ /Qmj@w~VwA%S4o?AK b5ŽZ v b y+G<ItLo!dfkiq)o&dJMJO@ ZZwcIr$qmM2$Is wy%AA5$ vrniuha56{P N )P#vJћ6RsWw1hnQ.Et1ho1hoH Rmu:f1fIn`y]'Ǩ #1EyCҥ&oWNY%֚a@ sC{4Jښ7wtMY#w  ۣ:ͥ)o{d5wj K#&#bS&('p@2ĉ1E2 3ʈ<G6h5h_ën"^ pWKa=m )1|:-Bedz='p@ >k~-6RL';!P Y.-2*F4P.A""MY-. G>N%..+k^9 ˲\˕^}ε<[@T. o36@_~n ONQ%raWwQ\I1a@&/OEP*TG'S 6*._qB<΁p0LLCQ=uWB(9q-,bR %&a%R@&p7a|~/,MD~ɢL@5_O0_j4Qy_/qEG!F1"_ P::O>_<+*%r"%TSPCA%[P0ͩyF/U?EPPON K!.BB0wOOr4LD ~\FI(sswO\FI(A RI5 PN౩,W{'OOTNP*݁aYWD@Hi˯Ob/'oT40 P`D L8T*{I1T)(JqN"W0I'(JqLq I'(Jq4wru(JqgvU66tu(}PڎI'(Jq!'Wy VuY?qDj<T*{I1 7qxۆCMI*bA_ I'(Jqü'A7$vi9MgJ (PT*{I1n9p9+(Jq`[˽\L}d̢XH˜ MnI'(JqìgRx4BJq=}B~_roo`i 6aXPƂ0<T*{I1z)K#>Fqy o5Xay o<l /I'(JqQho@i=='Q@Y0RR-!U0 CW!5&A*uY1hbLl![1 v:P I`P RPc{ˈ e1"Mta)js GP I`P RPc⾖R-!U0p C`{2U T)CPP2䑐 @1'CPP2| @qq {C`{2U OLCPP2妶uZW\hV} 7Q0'CPP2| Шtnftsb8FpM7e C`{2U )yu l*rQZVf{2U 5CPP2 {0OPN@ g{2U A}2ls y'CPP2|G*1g{2U A}2Vg{2U A}20?'Q 0'CPP2| pzWmŤZFйf7Ly h= $Mv" Vf{2U [ J&Yna՗PnǥͼH2T0C`{2U ՗йRdfy4a K[Blr%w86SC`{200/TADATADATADATADATADATAU }H> !sPhe'CPP2| @2U MO.Vhe'CPP2| @qLie'CPP2| pjBrmL` W~vNy 8f{2U {+[Fйs{%fP} : P GC`{2U 6`UOlT@RBP2"YRT@RBP24E~4'CPP2| @oCWR IC`{2U e20OPN@LPA`Vf{2U )2l2?L8(@:|Є!me'CPP2| *Cʦ1Ä$0M8R ]?'CPP2| S%2V2L9$2AC% C`{2U =U*CS2L9$2AC% C .rPa@5H`8{2H`"S0{2wҀx@ ߡ&/ Ty22@ ߡ&/ Tylrp ߡ&/ imY/#ab`xR`:j2 {of!i@wr6 ߡ&/ a16 ! @U@I0A S ^ߡ! *1 ! 0B ! N0ߡ! *1 ! p !  P! 0Bn9]2 # TP<2 #t  {<2 #t pJ2 #妶uZan|"Ұ<2 #twĚ:'! 0B! 0B,5)r`Ȉ<! 0Bz*Joqxjv,An" #P6! 0BQe`N^^}8f W\: ! 0B8k8PqH4"{! @U@I0A >?)2 DPC2\*N^n 0u LG('2 DPC2fdH]K/('2 DPC2/Bj[wdգ'/#M 0 a<"{! @U@I0A >/1 Ik)Z%QrK#4*["Rf:Qsҝ"{! @U@I0A >?JJK#W.&*(O-A-2,A1U T A1('2 DPC26[)y7b#' 0"{! @U@I0A >?82 DPC2\*[`l++P@* 0 ="{! @U@I0A >/1KD\8BisuǪێՍ(9"8P="{! @U@I0A >,*;|8|թU( 1Wա'2 DPC2ȝ)p pU'JVTyJVN^n3`pU'JVTylJq{oΚJVj[wĚ6h1p4Jq{on)a@i1&zp y'JVP,"ToG2@GC'C&2E0 A(M&2E0 6bGC'C&2E0 A(f1 RC'C&2E0 A(OLC&2E0 妶uZ nM5*u9 J*>H`8{2H`"SA " A\vWa΅6Aivs2aV'C&2E0 A(R!uA\vA7.0j:bV'C&2E0 A(iAaeH`8{2H`"SA 5C&2E0 AOfe`A 04aζ'JqMTyJqMN^nSP4dζ'JqMTylSp (ζ'JqM!1Q"L!nmC JqMCζ'JqMP,*cJqMA@T I U Ó \,Jl{Ţ2KOIN0x 1Ja8{KT@RBPTDH2BJ'A B$B1M6aܐ8`¡I ,t#Nx1F*D$=!%z\lCAPQ@*X 2 cF C4b;#H QgNtހ&tp 7f@b7q.,u L6pWfѪ `ɔ1S: 4oL÷  Llbubv`I٩5$u!!x*ĖvQ\]c 8! L)R#='MUDB?pal\뵇^Hx Fw Vis֞ ŗj ̀9Te݁Wf~XdfnAGqp1Fn`Ǘ_Fs!4K ,FbfE\Veȑ}nda6o4a!&؍5:Xs ty<EDa!udrep$1Ǐo1FrDfU0١&% ݑlV_nEFv=\-e_r%EL1bp-QD څ#A*`,Q"`էniw0?i-,$Oy)k[ؘ,Ps& ݋4\GabB[b":TB.`7v6E0V!I<1|R%!Lᄸ1H B$]NTAL1. C$AEsaH!Q .$ 00/ <uiqxB^E'~@/9C> {3~z a[3a]Gd`-Yirx4Xl-| G peVr;̥FMnW Ծu5!HB9Tow>U:<HJC'D up2",O4HCj0 :^E 0픘,`!* F4#Ԭ5M(a L`Rs$>P$;0b06J &YW\G7J!Ta of3w\uE QDPӚ/ '<ػYNxsQ$¬k=׆:FGn^HzXP?yw.NIO5l$ȲDyd$^X .=bRHNPG։])Bcs+y`K9kN0@#Ug@O̓' n JNЀ@&TU Ԇw ]4fyIe"D($@ZC@֎  D$ 0`+mi6Jq| ЎZlKh@ZkZ3( =L-qg{v<:(>$*cBr8y 50OFSHk Ӆqik[lAxR!~UEL D uUqܟ!nqp+ai0Ȳ>Dhpv" 6C6 F C& d Qj[;2$f^H+GNZTYvΖ$4Yj%bOHȄ9#;v^jSʕ,TaoC$f7_iH X^XBsԌպx/PT5[,t C CK-t;|T0[ץס!حud yM-1w^-l.'*ѭ.jzC.A8(0iʇ 33Kf@V Z;NX8 ^S(Da -,8D,*/Oe FYeЂf JA-7㌆G&0iH2#VڅfC5tY^}g:AIҕC}![dX%櫣j|ŀկ;еH.4 x,t2g@P"K0gPPz/ Fo+ ?"!V@*l<-_y~2`5« 1qqCq!Ew!,aQ$sqz'T&T`f{wd9>m_PRl? upoxkP_R$ eX{j|&vS =dcEXx#vP3q8wA!f2m2G@_qs}&'mB'n*b jOH3oa /l,qPh{j^ P2@'@p8GjZHgJB0G?7Y@؇W >Ai'vG:K4$8GBBh80@ + y 0QFCJMC SPP H\H5 oHQehx8 pQ?qH \p aէ @!6 A8 $A9 >p@ oqppu9pB4)wqC-50Dč6I hi tpmisQr;U z҄\s'f_Q*^Q,CalQ n5Qr8fW( MH,I2ut$s)ps21rI"YIh`0;޸;\QFsAG(rb$v)3uX^z/x8`]隶G,D6 {LA|WʷG (X GpИrlr(/HkUiQE:P RppWhaj z2ؚ4cxJXHu0'9jAհ 94jsx 5@ 3Jhe:ikZ `rJdz 6r8,ɒ.YE^4pS: G:Qzt^!21$赀ӓ.*Ts#đ?"5 0hRxchq'$" <)<>WU ɨκ) J/U!#?su"d:"DЫz$Q ֬H:ʯlr*hHyĩmzU `r{$X @I`71."<4zq?idiض?)TP'j{Ցwy:<,h^2$a'Jgm !#,'ziԸ.Dbi"YMB؝A$aZ CEnSk!$t,HEW{<-oB .\q|-/8A?,S{A90 *00/TADATADATADATADATADATA <S m* FYYIt-eyb? N uCt0.!Feu~ -Ğ$a};>ڂ[{*CUDB %^}L(SgP+pPd2KS^a1Sa p)-I N: k$Pɀ<ɕ<P$,M5@VCXJaTٱ1^6!pe20@`}Ix>ՠnћj3g9 Z p`e@>ao]B|.iK_|'5`6 UpdYz7 8`9`vn22@MN/6X {Sۋ;ˇ p:t(a;ew  nV`@7.ߐGz)dlv`l/АI#`  fog`} ?_   ok U8o %},.i `}.pLɠRܭ]QdVn`_rob$?VДo sݞ>̤^WA=B{2P ~P؋pd;=ϡҦԾbsy+ ׀ Go++^i4sM.2A+8W Д?*F=kR <]i1(ʾPL2?qŰpF0+1Cb1&viYEp^.1b!q ~`0 Da4BZ^ <]i1G3=p Rok. fIz_ pcd'e"0f=*Q]4E)ٻZ  p Y 60*=F.QITӭ? p< '} 3 'OQ,^CJz *  J rHyOQ;uf\1Gͬ T)M_ J qbxv?h"T i9!c t J 0*m'z"&yPr$wGh׾OQh M'ӞOGr1Š  J p:HXJ{!!Cxk]{0~a~npc+p '׾OQ۾.L4W0G J @fP&pݎ.770qq J 0In!oL,CHx"#bEBsL p $7 J ]zt>&-/jBT!vPE7 0 J Ik殫/l"a x0 J @$ !";ҕ!!q eOQUP :wnl  J .y/P#?OQ,^CJz  J rHy˿OQt6PPO5EpC >OQGXo6嘐o`rPPclьOy J >!  J 28p75SP|ZM5A@ZXAHp J 36xzCSjrw5-8A097>OQGh5@o7R`.HE-8POkw OQ/ 20oSZGZ0!7x7XMЌCp L۸ J >!gOQzBe$v6 tn7P OQGPAu}Us7R`.4(7. p2 J B\oЌO #&5OQjC>1$ .0 OQX[3.?A4 90 OQ47Sj^?9@2 J QSZGZ0A09x@  J . w (OQ,^CJzB  J rH OQdOGZPR]Ei@ OQXϦ𦡷kxu GP9OQkwqMF/kin&s+8X}f J "aTi*.p*kGB2X V  J M457K\XV  (,D,SB`ApOX` V  (,D,Е (,SB`Ap !I E"Jz| H B`Ar )MBˆGQu??hx$!\PB`Ar o3#1$^Q# F]I ';nB`Ar 0ܞ )P0G (,deSB`Ap, kB`Ar (FCxkWˇ p0J (,NW~n~~0 |wB`Ar 0<r׌$ڭ#S'` wB`Ar ѽ <#xF$K/xyq (,ݭ'3"=F4x B`Ar sqk1Ob)gpU9S!P#B`Ar .aB`Ar M"0U $`B`Ar M])j (,LUYx˵J: /JB`Ar VoC`rCà 𗎡 (,ME6mS 6H(7CcrPPclьO B`Ar Q 8B`Ar 0(1x[3.?1ܭ3ܫ5AH&  (,M36xzCSjr34p#@[TMЌH7  (,6P4 Ќn|p#2!700/ x7XMЌC ȶB`Ar  48@6pCW f`Azc@1  (,&2(20oSZGZ0!7`  (,oFjo#*m\oC:w B`Ar p:HX(grCFCXoCE6ĿE6br 'ԘB`Ar v?$oC#WnnvxH6.y.\ ?9  (,6oCY`!B`Ar 8Po(7B`Ar X)6$12 (,Э6 1tbv7 B 53 [sp# EppS\y ([3C5W7,^!y0Д[3C5W7&p✓55NPM,.Mן5NPM =p✓55NPM,.MA:>>^mB55NPMB#nB0s*"[^t`C&?$:o9YS8Y M"5NPM3ِYp*YS8Y @xIrFBb#nB0xeC! '`&`F z0 p fB fT,.MA:>@]'`&`F I @,`&`F  X`F.A1T^`&`F ` *@q??"A1T/=dp$dCSv$BpSfB fT뛌S͢W!A1T2TER#z!q$ t 5`&`F Xmk|?e)I?rqwA6BBq&? A!OY`*D-DWa#:= S 6BBq&?4p`*D-DWaD@D-DW DxmA$ERԯ1҃9HGB&>4`GBz!В#?6;b[3.,.M `[3.Yp (0` 65  p0;6;b[3.|b=l@IBz!s Ӏ*yPpd6;b[3.dͧ16^P;6;b[3.D,65= ` 65  M6 %t" nP!TSA!̦6"y@ 0{ G DI@ #?8{Dܐ,.MA:>>q@{ G 0W Ʋ[ti=#";Y|8{DܐD,G=8{DܐݭPB'bΩ@z!ܶ[$b! 70Do8{DܐcjaPW&mJlp$10A$Ƽ 1d9(!$`tFqP+M@C RApLgR14\g$ LH"FqP+M@C 4ECiaa?$A X10@"FqP+M@C 4>]r)JLwFqP+M@CCXqbQ-P$zR?`h<*s N0gLwFqP+M@CHaX!}$&C)$VY 5PLgR14-LtgR14,.M Mi'opkBtgkBPPa䉔&ABB@D H @ȥ(Q 81AH'<ˆqHM7e\h Κ7s1⦙7rڄ';iR3BFFҁ0^+ބ mFYrd}!W&:UU6 krRJr34R늢7@s`e>Cn4eiKqZC,6celF`#'I@"Cܞ]"6J`F>gӺ}   fol\f-8FCD!ЉV51TL<$*&zIQl=0L\S2 oCͪLZ$$lH,$jǣ뎣&?Xlࠗr\Ttêm҈D2Rz'b#p'` 2u-JO/`Io'KCJ S)Sciè810WJiɘ`z.P | $A@Kxy8f1'NmR)D\uE #pz3>\&/ѥxGLj py4 9`iêguѤ-^༾tqLSHtSpeEf pO#-BAR]8g!W\{>dC46i0ଊ#)RE[2 M&&M NHN@:$!!DD g!ܐNؔ=t0\ T rEj ^"$nw~F 2񤞸R.30gMדA$OqRh$@[]$[00/TADATADATADATADATADATA\BRIK6(ձ2LF2/dۢ+ d鷺' ̡ r-‡TRP \r'EEAӨ/ZѸe.|b;eD"kZY1 c 42D, v`P foAR7u"i  ^:,ك?zuwBFMf&R?+@Kޅ.2 ,o;KJ$Lk'`Rc߬1_2k9PWn!r54BXi`XQPD~Vclnrs2&;WFXI@QfۄVgkBBoCC0UA{? }WM{U"Q4~3s~KhKDSEUآ:zrZ67)HANDI-B#18-Mk 8mU8$  pU_GVST?h fŧ)r ~UV2v &Ko3ՃJO(`Tg "" bky`#(pK7Xm&(0N v{8"]DM8+>x`clV7_1 r|0@A2$ #0@b$y#6˱ `$x6CSQ9F2 '}#! P |Yi$HV B0bgG"4n#2(/1Y xgQBdS)TJ(h)Ðt7:B}@r9A8I/Rc)=R?, 젹[g۳Qt-2Kֲ%"  P9<71ufꊄpDpVBL㲭s&(p+p`A"8+ ;A,"Bnq{j8(Ɖ[9\P =Y7uӵEZ)(l!ƈACp&C#AD̸'4qB#"1ێYUy8⣨ˌ, 2u؛: fX\%EBɇƿt¢*`:pxg#.t &,}n\^r .@oAq:).TB(kc*nV}==Ȋ{[$r/M7KAq7lu!- i츱gKA 0 gORǫ;ʜff3\hp x`|q*LpdA_h${v,xg'~A26 sA E<0׬[+$A|Β\MJ.m6zVu] t۾ 7:&">of`, $I|ؿn P 4Ӌ"3L_&QEbb[lЌ v0;Pa,J=@N, >+P)F,&=NOfΈ --PԸkӬq"ٺ!csh=D3܈-ҊM#@M"+^#~?V~s  0 PYL{cn1#ob۷1BEF,)D$$h0hExV thoJjK^EQ]zTM!;lt!k1oO <`2?}A58੭D-1Fu#޻đH*qQtнiLGwrJTMK;he@NB2(}xж0`I1 fpv+K 6] z[ 7kI: M^OٜSx`; 2d  &o2Ϻ=%A?„($]I2埡9s\E@:2,nĬaUNazـ <1B;{w6789NP//Ss@NG> 2t}+>!4þs=wg } 'DR 14ݰ 06?+= /ȯ .O2s}pG(^L;OJL~ֺ?r9Zp\do= QگmuiV{0Wf0Rj$CaJrX @bTϓIL:sNc G{GN;{ گԫD!N)<1åV&:~%QI 0_r41YҬ 8`݀ 6њ=  6CU  =١70e4pQy0Rcc0cRs@_Fp"w!5v:UJ\ƕCiQ c0cRs 'jDz: -@ԫDb izbX0A>3)H8(Jj  N=D۞ S%jH8`LA9a)b[}c`_?dJDjcqmc0cr 炊v9|@mホP$ƖTcc0cRs UO.. e6~ 163)H88h`WGq)QZA>3)]r@n7oq BhRBrp NQJ[ @ ½ @eoo2Ly@jepec=@ @e4C=Ly@jOX DLA `)'0EI^zbQPO@E0&૷bBA00/  K]0 A⡟2bPU0= ^૷bCM: * y )!_Pm- Hw 6^pE0awx>jNOjOh)8qcc0cRv QD 95FLf]XbAnWo1@=goz!;_,刾V0)Ş/N#h~@ J2orjy}Nzh.%&#w"S5LA =ULc | n''b:QCM=@< P쿙~zn"^հ:sT~-Jw:ڌ$5.z :RDLTSy~qɨ#5.zV]<_W"|N=J4]A2IZ `FHJC-Rul(C 2%&ny0TA nDH8`"Ş%L FH݀A>1/EHC)@%t%`Wa o0  m .+^5F^Gq)QZԯV 쿙>@ 6њp 6CU* |b:Q#OLR$c^ @|b:QCM8< 0*Ġl・=W>~O|b:Q(OO`Fc~@^,CQ?n )p.(163)H8*0 =١>m0Y2YTX 5QC-B L4yP]x 6@6SN/SN@A.2!a*!1>U =SN/SN@A.II4ά0Q0Q&p0Y2YTXZU359xrp Y'Iň.Gg.T=nZ `SN/SN@A.9 rM}C0YWRMÔƺa:n]TqS0 %SN/SN@A.PF&2Ly@j:zjKL8 =Y2YTXp3eoqZQe.h8u @:Y2YTX01nZDPF E"HPLAODc; abrd |:Y2YTX0IS_9w A.D1nZD0Qe7ሞ@ u1Y2YTXp3Qd "3o m-0[bȦD8L1~pSN/SN@A.>DLT1tq\ob2@A  SN/SN@A.?Gq)QZ@lߒ@0Y2YTXߞ` P6SN/SN@A.2![c5T"DP DSՅ: m0Y2YTX 6C[??` +SN/SN@A. 6SN/SN@A.OlX?`$m'SN/SN@A._L~qW-crSN/SN@A.'lX!2"e: ,J;Y2YTX`SN/SN@A.OtXPv1Y2YTXpRL~SJKc0)7Y2YTXBKAiCtX!-R@J;Y2YTX`_ L9Y2YTXB9 uu=e)< GpI<Y2YTX0TL~(xyEbq8.z, I<Y2YTXpBe #-RAs2z"L4B#8xc_0qSN/SN@A.v 98Y2YTXZWLZX\eC]&f p0Y2YTX+b"a/W X23jH8 SN/SN@A. bm0Y2YTX 5QC-B L4yP]x_@ 6SN/SN@A.2!a*!1>U SN/SN@A. KSN/SN@A.>MII *?C)fFՋ C) (?SN/SN@A.r3aftNo1Y2YTX}Y$pT SN/SN@A.O@HPSP:*3=Y2YTXZ!I DÔb U `%SN/SN@A.>};A.D1Ly@j:ں~W'xn? 9^1Y2YTX.'c 0E(J-bRM"WEp[L5E ULCE0 ]PpSN/SN@A.) ?SPLF OWE [L5[P [PrSN/SN@A.23c 0E-bR pHP-BE[P?@4Y2YTX w&#I[=h`ƓC&4JR;Y2YTXp3\&NcPLq xPSN/SN@A.;}3o ?#rfQҡ>o($pPSN/SN@A.9"Iled>cPLqa/PS00/TADATADATADATADATADATAN/SN@A. 97R2?2o(BN|sA|r'd#lPL9Y2YTX`3!IqJn]o\s0Y2YTXߠ P6SN/SN@A.2![c5T"DP DSՅ: Q6SN/SN@A.2!a*!1>U0Y2YTX`1Y2YTXZeLD Gu"Z%&L$N% YSN/SN@A.>#86?W/ZCT_vEB: e 2Y2YTX0(bcZ)boEO;id@(G<Rʖ/cAgQ9qqbŋͼa M6b*6y3Ξ! ڶ$MU%L4BtSwy*e!Us rM_1괉Oh, aZoM'@9f—ۄaD2vZMnu hN ~.+l_i/-R 4%ufQDAG QkrX_8yq!p 8!$H 8<nf<|7| t!@B auOaWFuauҡA(3a[0: e~(%MŐB~T  LC@YN{6$ 3h27.NKDB1 'yPt!]D 0 16|jAj¤8% t8̆B4n щ P6rCw &@>QYb,!>,'OJހ2T)gU6ALFW _cd.ߨ! ?(Hȿ! p9%8I"/4!41lcpչ[ pϹM;rXCn0 ZڱPb3F1 h C'(?@;> %T 萄h-{ہl"ơn$2QP ` $hrG*AT|\PT J4HAD%_34D'"DWO'2d CabE82HiJTDie4;m?¤okiD4H0 Aeq8.R BI! N8B5P : "&6<1jl!0u4`z-lNBg'Haob~B tK$HT!t0)TDacO(Uu@ ;֠`O\uNi.o A0@ OƖ:W%8_H)_Vkrf~WA8mC҃.IS( 3 "J? qoR!:AaHB}8|K^{ԓ].DFXCP * OI^[AbTw hUun {!|3",Jz>)aTHPMH,tPMTHvǩ'ר9FbsSC=EϹq/ 5UkG B %;iHnNA2Й 1UJV3T&k0`|6͵\2! aCWI$$|M)NL}$UU\U|odH `B- &`B0A(l-IO8a_D:ȴypn"S# FyEZ֘H7I d|k$|`I{R:7oC+N+w& `P . \P@]`\.A =cC C ei0A sL RÆ2Åd)9Ȫ `3[R~a,0V  #Y P_ #"A@*i.h7r H0W"' x\2^R`@E>NPbBAB3"CE0[=S0hx7Av@~EXx VV 0vd n6aj NDHFhjVOpNPR1!1OHgx W2" PTpWBYE007ȇQh9dB]{ EL { }E= E8'!VWoDVЀV @fU"؇SUX` Wtej|@(fH(a@OPB`hP؀RH(Vp? kXh8C`XȈD 0G(hIJ 7$ ){w0!U [$HIZҋq`))'ؒH049 8RaQ:9<UNP $pU* Ԙ4 \9+Y`Y# /(r" LPI)HՕ%(Bg< Wt^X9-5r69@ qIhV88WYD@)ShIRaܶ؉ @Yqؑe Sii 0x RWLp@VO6iQf{)DFPȩ>I6aҞ)!qXXyG7*U)YY5"pй)6mM.1)@fT)ЉRPL 'j(!e [WAe{PQ{0Њ*x'xY2V". B :ٓ(qx&G?@ɒiGv h`rjtj*a"n* s`PxH8x*U m.{}0 }X% 0p+!CͥM!158@mڭ# `n<s`:'.ה L`2.a4ǃFÐdP-,.[ 0S0L ;; M~dl)U:ʧ!V kG] %%p1! ӔA >h(菕=@J<8 xj-?}9ÎֻC=p`?L N P~Y1HiOep3:0 ~ۡcNQWi׆oqrU@;/*W ㉞P!hV(vDPP0CP0ǒi'F)cPPH\E0iעd-!^VCPNVȉNMvh^C?jBZшk>F_yF?PX*MV(;ʉ^/ֈ A`}AsP<$i0^:r ۗߝxaZF)B IH @ ˿2yG&@ v!aT`,k Y P\` O,kܘ-2( d@ Lpo?myG&s]@ VV*SVV* @P VV*p @ VV*po*md b2 70⑯V8BP?wY? zG&Da[2pШH b2@ ||Jp?qs ,+@ #b{,{pРs !A^ 7ᩮyd b2b@ mFHP~dApMˁh˾2)i7<S`{ ;`SnW`pMȝA ڛgV8W"U^pL{MkXiX. !Akޛ$m_P`. пIHo yxW;@r rBN$p VoViT@[QM$o@ň!4H @ . yx9oH)|d @r rI!AqP IH TX|NhXqdMC0K_bxџ ?\`K_(QkhT I eξ2H̙ ^p!mFH ~ˁhw--pW?n H.A `!AkX>)[DNs΃ [ ppz|@V+@@mܙha![tppwQhPIX~s>{H)qQ@IX ,MkPpFąA` UX;oO` ! `xii@yeb !M6rYxQVTii@ % +WWx%P?!% =UXxU% UUXxyNPQ {np ~eNkȃLTpQ Ð Mxp(&_"R - P?!!p UX|NxFOP *UX; P yxF;x?KeL`m3'`x.(PX&UX|N,:$K` wb2e`b2 NPYX|EPQ  ŝ%oX. Ԑy(ŝ%oX.R5o]!2@,9-U@2s- pAm::yQs+ ŝ%oX.OU@2spb@fA6`nM]Goe]"prX:1&qs0'!QY<NPY5e.H:G<6aamh6XiteEP E0ŝ%oX.F-xWHf6aamTzPAgIgb0}QPNPYbr߁D Q!WH!IzIZy 0 ŝ%oX.*`D@!pdvw %:!`&`FgIgb0}I"p:WfAŝ%oX.qFHdvw f 1ŝ%oX.X F6]Go$e{GV p^\qK% @ŝ%oX.X F[aA!`K#a,en[zNPY9`uwHqd:?cӓzkWu("_ Dŝ%oX.,1spB1kfn-0=00/%TADATADATADATADATADATArXp3R(ŝ%oX.(1߁DDpFp1s:TqDŝ%oX.5ME&F!>/ W)^GV p^\]Hd:Dc* J`NPY04[ahJp?C1u&Aa!QXi "hb0} u8NPY`3'(U@2sڱJcR%dI$cr8NPY`d&"FJ)0t|?/Ql3NPY!Q5NPYX|EPQ5NPYX,m!Q^(ŝ%oX.R5B 10,9-U@2- pAm::yQ NPYCRD H]"prX:1&qs0'!!P!ŝ%oX.^`65E\#&Hq!6^p fa NPYBF-[a!!BCd0:H!q/2ea,URa":ܙhPZo=NPY`4-f.&[as̃B"4Dhb0}!wkWu("NPY`DuB5sCu [eoJgCY2e#"!aUNPY9`{2cn; P>)f0Z&W>)5^ua pNNPYg4QD kX4&QBQW!A2&'b5ŝ%oX.Fk[WFAFq!G}f@EQffSQng= PwwN"`UfPwwN"`BbPwwFUy!iOn!Q:am2FRym`w@e:a wwm2Qwy @&Sf0;td0!lR!Xmci`1w$QqWM`m}W {W 3uK!GDjG&%d@e::` wW {W !qW {W PVBNr)x+>9xN ` }W {W pV4H2x-8gX2g!oH}W {W pvX )BP8ox٢ph?J@j9wwY`0v5ViEpy8F!#Og>'#wwFbVHm啦RiOFU.zIj9wwVO;B|?odC(xiɡlĠwwY`iT@pxsW {W `0(qW {W `4-&0Yxv@7J>)@7dxd` `!qW {W 9`u mcR#[":n`ltAT Qb8s` \`awwX"XdF =wwIh sW {W !aKsW {W $V/i!{W {W UXLS=wwIhww;YxvsPb8 Qpr qDvdRBT3'!a lsW {W ` 0`(qW {W +% xvFp !qW {W r׵/z` zww g<{~y !qW {W rϳɚnkww_` pىɚ)`* ?ww]` t ɚidpTwwXxpYww[kj yW {W f@"wW {W ``aⳟ2u mcuK!GDjG&%d@e:sb\wwIh TwwX PU=ww)0w@7fius0v}tWh ww`Ę*Ba::`&ܺq i3wwܙh'qY]pNP.U)1&X!q`!q5U ` #ݟpZ(q5UB|qNPE:ATIa`B2V5cewpR `RA#X'@`!Q f+ 5f] )]J|Q>)@7pPާy @fJ'"r l7&lp`ޝR>4ny `FO0Ob [!b1l2p*&i05 TqCޝR>Z#@ɵabi0%,u!(17F!H$cxXpSBq ޝR>Z#d|S;wnJs6sfg5ey 8ZiwGfoqHqQPuqe0p7ű[*2$RRiHQ_)hgb$OaA'ksoI8eGH ̡e\.JS W_|m4c:0SU+CeQFo X{'HqD۟ZT[OAGo )N%b:h #AHt?){^_qswR ay jaK @B5.Z,)$(q @ I$ d $6>9V3 #2i3F`Ր_{sCntsC;G\AF{0pO6xw(xo`G5IB{QyǠp&4>8R!*&r =F 1*qǽup i`紎ӦoC2."FnPty0ŊbullF@G1G:F{\ՠ00/-0/lq ={Of2e(:@л;A387>KoIB"ylk2&&( m p=8hi& I&&Sm) !Jhc+ CͰ1gA P7I|3ĵ|͈ml_؆аD4e88P!b=Qw 9"YhG?I(^F$q:(F)kd8 E)ԡ GC"}j fr@ PXOd i2), W`GfCӕuQLJ ++Z !$.RHBE,vSBH#,P_P*M?s>Ι>M}xmOF!x6 hPlv DZJl2ʚFV3 Lt"D!'؃:HELPDB3g 6# ZHELPDB RIMDATA NONE 85/09/0311.16.49~L FH݀A>1/EHC)@%t%`Wa o0  m .+^5F^Gq)QZԯV 쿙>@ 6њp 6CU* |b:Q#OLR$c^ @|b:QCM8< 0*Ġl・=W>)$A@I“U74)TV!%xJO,!" 9J!&b ıW1ЈW*3qfN,qɢqI:l]C6&h"ammqE=C4yuH/IPj]*FK!/|>$QWuK}kLzGASy \|7?˝k{R:Ou C';EJ}:نRfSes];纲MS(sLxC0<O`#=O>tqyHHFQSiI)|iXچymE@DPRw, :i\)TFs$rd-a~^#DA( ˗TV,—[,P QA#;U1IWYigG$^-@B@KX<ėNPYI Ą{q%Qt "9%U@QU:`\D'V6FCyVc`OA`IwVeA-ZhM,èBEL1)nFt9>+PضS/ńATTDEL.FOR4 2K $<1I*C0a2S<H4d`J!RTI)EăUpH&UV8A*.0Yr @@"ʓ)7XɤHOTTJ'TVRMjEI$BF`'NBj $T" Hxv, &l E4&VHCoTbh:&+z @q b.[@WdiRthчs^YD-d`)-1PQ "{i󮙒pBJ'˔ /.*j@EZ 1D?A+*,B++Qt3Qۂm +wٲCҹ=[Q4llϋ& .xWYFy֡YehPxj.hj*D_PKlnG .8 & WÊ`)ެ6lE`zRL;8=KO 3愛nu" B8< _Btǖ+a ]Ie5 7oYG9WGF(_@$+2JrIuS]f 9n,4 @ !VG4L%,32P@ATTNEW.FOR4 4Kf $<1I*C0a2S<H4d`J!RTIB MxIJ $JaRT`B%'Q *RZxNIӻ:f.inh-ɚmRak[͕k)ATTPUT.FOR4 7Kk $<1I*C0a2S<H4d`J!RTI@"*SR8$Qr*D.R B,9pHQ VJdō$ȐTRET'T@PBMjEI$BFZ'G!5)wA K$]'S@8 KDIEoJTMb"(]$9Y(}0+X%ݚTcI&zETBLKCHG.FORS4 8K?v $<1I*C0a2S<H4d`J!RTIB,DX8 ye!OpH&U\b٢R*@ITtl)SHf>x*M cvaϡGY> q"IU2};P)dq6 7kCT1bd4NCz2i'#OFd \,rIvA`zl4%SP`3 .G<1C|PUv-!ihvXrQf^ t]-`qBN1Mմ|IQS9 TFQAT|yYf#fU0ЦzUQKB ╟ 8|Y}&cr9%Y]ߜh5e]qQPp%DR:c@6yywЕQZ.p2i78A!'~B(t+ڪ.Lx 7Ԡ 4'D9!dxU'4Vk ̊~+g"%`䚛޺yk*.01ȖX)Dh{) u+0,[jxZıs,EgY"iO\ktOY7AsBÕYBLKCLN.FOR4 9K $<1I*C0a2S<H4d`J!RTIB,ĉC%YV!r"XH!?ARE 000=/'S.`Y$"d'$Rň"R@gСc4)rS-ZhØLf֌9N>:IS #2!%IŌy`+oB)IR=I+[\ $F!bw"O@ĀD1X8DA$"Q\HHr rn`I zTYp.IT1Q , QO0WR^ ) B BHᧀqa8 &GMDD|2+8{iw_| !$XTEҌ(r)֣?eZ\T=1o9EJ]1XG1IPBJVbBt`x왔1YE)h$ eHe%XkFȄgejhVTҍ\EBLKCLR.FOR94 :K˸ $<1I*C0a2S<H4d`J!RTIB,D DR8$Qe"OP)KN82(U@y2F,"ʂC0 *HN֜xRH#FHZ MPJ"c- H$+iDDLLlJMke1lrCBLKDEF.FOR4 ;K}t $<1I*C0a2S<H4d`J!RTIB,!RDX8 ye!OpH&UX8A*.R.9pHS Tɔ 4Rd&,8d #APArēB1RDJӧQPlR l,PR*l@'eA4Oj2J!uA A`Np2sѪ=;35P'J)T%Ӈ>o_Iqitg Cpi_ *BLKEXT.FOR&4 "XB~RJwaNnѢٹj""dY;ySlj }iTI>$i2IE5r\mSPiSƎFPPwQ$ )@yҖ0`H7@4&W*ʼn^Jԓu.{Gɥ_^Qqj0_}](w|BLKMOV.FORB4 =K $<1I*C0a2S<H4d`J!RTIB,i ,lɕDpH&U\irINdڵ+6@q QkN&a&(vk!OBR)b:Q=*f3Kvudȕ;a&- m5eӶ1{mF TI5tTHYD8BLNKFL.BLK4 3H7K C( H@!N@,aġBXpȓ&MDɐT$CP)°+EDI* 8!bJ&EP($,CF|A#LVʤӒG`y+S $IDIJStht,-9"%D<\OP:I4CEB*E\Dd^vBIE"2hldQ$Nd,BTADD.FORQ4 BK $<1I*C0a2S<H4d`J!RTIB!BUX$BE *YID!LxJ,T\a!OARE 'S.nW@ Zd  YӨSPlRĨ l$P*RVi"Y<J!e`fM{*PDJ#g$1{8`y723KIdI!ENeY <IҤ*Ydž E*@(<Ȓ'WU ЋwQ<d͖LVJۨS;Hw@ EMDRL9OA F0M0TO8a ( 5qaKm U1"0zxBDr%"KܘFmVERXT<  1FاREDQEcAI(tLXLSxpI[hQIS$ a9  _.{>XWn&y[}(B.,QHަ*j 0pU& ~9(ju } EX&ZסJDW:(0-^ ~zwĴjU[ĵP]̀+JP JW0A$FLD0P LAF% J0j{Dzghɀq~IgQ꧙ V.q) (9˥jAKܲ D0V 6QO]&e ]1rjz 3zTWq.}B$qDA-ι+ݼ_H]K˞?'4qdaˠ h6Xi *򗖣uR+R]qIx%{F{l"@2.ADTsԻgB2yu'Ju)Q"  {O~XBЄ,!FL'5ԑEl.@p>ԀmKhJs4 Dhؽg~Z0IӁ3X]^GAOgC,&L1$ ahI&RAr7 OP KȖwk^=\ n%0]jcE1Bth|q8:V$V jF NjA$o\AHGmf [[V%|2ݲvJI*TKTBdAm [|d hI dIFUj000ETADATADATADATADATADATA P{Ur.yMg*#6Ylj*gȨ\ʵȒs5 96'(| ;H63v®KE#ch1= 2Hz=2֝t$|Uk4(&Ir;=O=-dAA e0x$ (SAzJ]4Snat&JK0$H9̹ъ+6US#4*[jʒԜ6Y)[YX{>5T@¢KiW I@cՏ5k Nmug+:q}k9[rJTX,AS^$YK.OQbbuz3` E RBl0ykq d˿P`jCae.iaX@%cElVU[CA:mJb*5v1^hW;$,a:Rqlf }/@YM'Xs4oc+ mGXܔL&ۭoO^ߦFX}ØH-.cgW'F3#fAM7zlΗ\WE"G5`)4ןMUlalX1BTBUF.BLK4 3H͏ C( H@! 0 BLd)EV1bRJ#0ddȒ)dc&O(BEȅAQ:yrRIID50U+AT)bP4P$J$`EVhYlkA!e/Yh}ww7ߴ +%I!rA)bc*INс Q <=DH *"}#RTS#[ L~D -r EB.)psϣOR]vA{W [hPtRo*$y;AGY @3wvQCBNP_NpCnpBQQIKI|\^݈zCLpĀ8{e~"BTGET.FORM4 EKSp $<1I*C0a2S<H4d`J!RTIBX" N"J!CT!r"Xd C(O\H@J*VX99T* @%"\h@.*ebE4T0dcM8e <$J!;DH^ x0X #yAVT)'<>ĩ)KZn'9w &čϣOwԓI$'C VՈ 0`|,G %F. NT 3XY )p}$h~9AdEx9l5v^z}V{(gjR]_MtHWUR(ݘ'MHL4VT:W(L.XBA`!`g I 9MH啥z) =%+ܧB*Za mPu%X>INIiqZ[5ٞK "4h Zke .DUxkR)ڠU(kM| ~ȑ®Z}p(eWRbK. ߂@Crea T,kz{'w%UcwD [*nT _*(T.1x!cSVD5ZeiD9S?wr. 2H(D KRW< XSKڮL`%-P "jhعl=ywO޹=!rP9 FZDI$ v , 7QEeKQ`>\h{-6/ORC 1.vc׆QkYCؿDcK&m26q]73M+ߓ\yIkK'1zv3KTm]1ː :u-<@IDSδ'$%۟鮣9s:.4!@u^hN5QXpxu҆ט|mxwP]2V谸5| @*>Mz7Xl&--Y NqBTINIT.FORl4 EK L $<1I*C0a2S<H4d`J!RTIBH:IBE RpH&U\Y [0IȶJ1SDw"Wȑ=2ȗ}  nC$K'agr)DŽXK |U'nׁ*a}-FBESNxCBTLKI.FORx4 GK,7 $<1I*C0a2S<H4d`J!RTIB0Y,@"E'$pH&U\YRJԐCLR#K42%"b>b"E4T0d#RI Hp> ;)$2i&Pd^terI+eA#I2bƎXfp3A0)D._A$iuD,'Him(S%./O@8adƐ'M.gСMXC緧R{=g.Ra)[_ \E]%(EA(%JA NvRNXg!\%%AB R߆Fx`BNh.џТ 0]%= TF5 @B%[͡YRJԐCLR#K42%"b>b"E4T0d#RI Hp> ;)$2i&Pd^terI+eA#I2bƎXfp3A0)D._A$iuD,'Him(S%./O@8adƐ'M.gСMXC緧R{=g.RRPc WQBWJDJRȁT41.(8WIIt`R88P &D)0,:T1߁Xc Be^C B $NQB  8bLNd9A; @Bt )I^QZG8 EPGD< BD%Pfr5.dC,[R!- npDD:fFc()PDy:p000M/ d`arX^iDY* R묵2Tau '[U$JIaQU CIB%nhHdQ(QTYDȶart2pE..0]s{*6.ڨGVWWDDg %ifjĨ9x*.0U-G%P/CI1R nxs]mYiUo\ElK &; \P%VkW`]]hRphPt3ucȴ\k;ȫyy[LBLPC81e.怋OD~&{l6#xnq BxtF:K?rCBTLKT.FOR/4 IKF $<1I*C0a2S<H4d`J!RTIB0YB,@"E'$pH&U\YRJԐCLR#K42%"b>b"ELRI Hp> ;/4Z2/T29$$B1cE,yxlLJ.`Sl RPw~"X  ]OoE ') y&уd$(\svq$^S9EXBTMOVE.FOR(4 JK2 $<1I*C0a2S<H4d`J!RTIB4yb WXRT'BTPUT.FOR4 KKJ $<1I*C0a2S<H4d`J!RTIB@" I¤ 'BŅ&KN82R J WFE)T' e59d}rIQ( G'.8P0PingqC-)&Gk(q&a Ĺ` KhR)EܢVi1:]*|8(ꟄqH@E -Ԗx([LN<:薱ꄮ ĖBX kDswDlA[ Im3 =BbNL'E n p^1VzicKD FiWHADG "K(iι%K8ױD^B<̩|'.TD# a21#m) KgjQ0 ^$oB)xm /UWB$q7'0hBwlRpt'iQ3m'zB( ݏھh >?֪T D \qI&FW|qDo~"mGmB2Ʃ)Tgt1=+<30ĵED`%RflazXyB Nw)n4X; k5O`m2AtpdRҪń&[@!O  AP\|k ] :Z~ij94 pҗ pE o PWA6mʂ3 V H@AƂ2!Ikc݈šd H>@~:!x㖷1-r ȈI"ʏ I?$WI\ҋ+`@(Bhc^I7RbxK,f36ns3ZV*N!v"璺%۔KUp~8fYZ&&a&ɤ{FNv j%TG4)1{8"9nZrjHTPrBTSERT.FORi4 PKDN $<1I*C0a2S<H4d`J!RTIBL)" + Y$"b!Kj,8DI¤ 'BŅ&KN82+[ xR"N!2 *HN ʓJZG"IJ"U!%HiJ HT,ydlE/eȓT9MX)ҢEՄ +EЂB6HCT-zT #3<iTi#M)Q7fK7[Ģ hHUI5Ʉs&v8Վ-^IW `zSMYX2–keTfyfκif2Q (^꯮+YKrD2€:q .3L%Y=9!C/( z*(\[\kR6πs]s#VF/NjuW,+WJk&de L\Dp|[1\'IŢ (l B;b蔯l q$BSO`?- WbZޤ$AАz!GHe*T?BUFFER.BLK4 4HQ C( H@!DF (BBX0!OPRň"A &E$O@@ r$F ٤' IDBI)000UTADATADATADATADATADATA(h؀#Pi)ʫnEɐ&O6-h%$AAIt2Ec^hVJ,,s"yf&Lʦ]w@BUILD.FOR6 wu] $<1I*C0a2S<H4d`J!RTIB$aB!CT!r"Xd C(O\r%A@,)DIX@ T*T$IyӪרR09.aʤㄔ&LC3kޝ _q \Wl(a}xnM*U0)Drtmf,ʌO4bHiO1'mde?[nɐ'MLS]`E}ndk^Ar$n QX$A gNU5jDNq)Y(XMk: ^ $iFi}DA7Q K0I}c )ߠ:ISX,`5 H=V)4 >dur{<3eZ傰 ]'RV>UL3ɷ%h&9QO_Bհܫb+LŨ^W WV9O*udq(%p槤PFRZj"P$RI&ܬQIA)ȕ\8U` | ya YS5NKSwqu\;%O>%ZLKR;qUk 9T}YKPӬfrLnPTFJP LU{R"t0 @,),? |"[2ٹnWtRLKD&(k:/RsOdTw)T+W^?VG2?=ػ/ކ:!v";Ӎ/Dc0H\lq PCDCDBS.BLK4 5Hw C( H@AC BRE"N@ B% SRDJ N@4J"$h!YBȓ"IIQ H9*)+TJW^{zu{k'.a((\YM$mb[ITI4I]Ra=|CVQ!LM!L$uD1pȜ ~4HA 1iֆ 2Xč QYD 38#QWWOa@"XRE0IvvYP `I }[;Vy B @P0TAO,MtDDE!+B)X$" OQqД((L: kMLW* 5((I.G<1WH1, B0i4X $E "*JLQVQYERQ*)dM+n B@f%U؝tEDD4!] ^5%OPYQ^c,(q$&5i)X3 3 | L%NPQ3vm 2WJ?{ISdbX<YR(<8 wY!: sZڶCθk dtS~׵ j5(аBMu -ؘK b$9 "QGb^üNA3I\{E;ękK=b <d˻JRTК:ڕnG8&U-dϢRյ%h"@ATVЦm)tfVXX^o@ވeE]Y`0#JP*ⓟ-% %a R;͠Sl'*YTVE[j@?o ɒXH+"Ą,0\b0VGzM+U(([P% ܐH.,˨p`;t+T#!J-@ QySN0w൒0K TLdfeJ&BCVl&cA^$SJۼ4P БwTHIy81; C$Z##6/S!J>$P)O XLh%Ap(~I %) Ƅ~iK]r\IePԣrgJ"4EpV3*.E`Q݂+z"NխԾPj5UZQ %Tb47V[ knV~HeB|gp-H-dP0&eԵBY#C^8s(AG 'L0 p&0 0FqjbR2l#"*8{KR#78}UY8d(OOd)I7p&j\ZYJ[0~K~3=UhV-BqF7ڊ>Qo Pik y6d[3=Z+8ROL˂x8`goPB/` 8LqQ՗+HjX9֫ŬvaZFR9`LDi P>5H6 ٫r }YjQZ 9/*p.D_3Q[[+ 2+ߌ S@WQ|ji8 h| 2K1G1Eb\*湍KCBqcY&d INӔp dYVҟL`7%[LmHhUl>.=Ké~Ek/ ~km{^S0ӪPRg #9_着H/(+)P+{^_ 1&૧z&<xuTzE F0kkBfFS n6TorVk'iOktwJjJRN7FHURn!lHoYblNIZuWWN%tpWwjvUgu.ނaIB25_36+3R8ĖoVȶUU8L2DP<>8Fv1@myv+-s}<b8"e(1g?܅f+EI3.@.ŧXN{>iQ ք'PJcGzTT=|c< 7_b2~+gd ,g&ODH(q)3HJP0]HG҈r6VHcO{7)!BK!bDy6{8nw3!.A"xg274N+tD+fA0&HQx3֘" 7w##5WRpcGHK@7VA<(g }%IB|ؐ79Ϸ#7}R}w+ ) ~ #~2Nr~|42T~EG6@96ygy&-emAEK2m'"3ȏx3xCZhPD YBa9lmfgk!"28XBzLĂl/8UFJeeFeI外#$-?9v\{ͣ0NAc8WbDuXaxՍڲn̘nF8.IXÄfdijX|W@9%Bh}L`G4HH[ηHyًt(f+D7ӈ8ן5(i*GH!z#2ը׸2&8M٩`06ɎI|"+v^",jK!Ipc"[7f5YQ")DH>2(1_$MY%:(`+A;&dÃw{HkZ# &T.U)ZVyhzJJiJIbِ+uyH Jm3NafT("+w uƑ%2BnCu65/,/ɍibSw'CVosgQ2Q*cթƘgI}/N1-WtI %EJJH!ɜzWڥ T2Z&hlQf ӰfCZ"1kxm2Haɯed7!+Mڝ8n8kC 8s#яQ^*v{ Tyl 2H**JL 9Y=+~`I+v$g"_˓>"~30p~Jy$i{ z]7"^[!8uyt_wC;npXk (8yyU:TɧÖzl|9Fz;48.ẩƌ9i Q`؛` * .rXbҙ0BV#hBp<?a2kw0&j0wJOKwϺ DkFU=W0r#dzWi pN@ȣ> Dg lk2@KzgI3- 5yt5TyX: z.LJy= 8"=2bCJ)Ga넡Y0YO ç9MYUkMZ̞z 6dkɌs̒RU"v$wLHYAں3̟;, %C; Uȁ0DO Aڳ}Z' 6;p4 S)ɢ`XɷL:X:qQ˴DD' AH\'M1AAŹo,b̜rUXK^q7B*'FkB2DvFL:2QUPP94PU8HL$ [@AmrNK8I2'W2T&k*/] 0Kag25Gݴ|rU\$2t%eBK9L1L&Ǥ+fID8+nt%22EԒӢealB}Xp+v[אS)A] I)v_wD-4Wӎy=/6k C)XīOQIB#ZTiZ[? 2Bsy> 7n&>;.Ƣ-3@=N%X ,6 E6-EZ(GHIG("%G=0@֭#10/W,03;*Q*8b@b"Q e}/QPI@R$]a{eu^,#4CPu$uxfYUWf%,e2CHKATT.FOR4 aK $<1I*C0a2S<H4d`J!RTIC,9H*NpRI&EXRJ $JaRT`B%' $I9"DPz$K)I<$+OXErR̓I "HCCqB݃Eaֻ$jd Xr;EUJq2UF&>1Ad}~yIV;F;ԟz000eTADATADATADATADATADATAtb ȁv?Bmp@|ݠh難'* NUA'86N k 8)r\B8Wi)CݞTǺ T .E BaB&2¶ f]uZV7ݮze5` d fb9~TkG5DwVT&["T{CHKREL.FOR4 cKqU $<1I*C0a2S<H4d`J!RTIC,R PHiD"1X$x M\q!CT!r"Xd C(O\ܚȐ%SlsJ'N@H!d# 2H*N !"Ndr[cΤ['rTW̾jQ+):3)g HJKPzP&I)Gw@씴Gl ̍V֤weUuS&aV x M@q R@ CӖ9@(Ef.TШO['\.G,=)mᄄCHKRUL.FOR4 eKK $<1I*C0a2S<H4d`J!RTIC,R )N4)!CT!r"Xd C(O\DȐ% I) @$ gt**\09J8):”YEsIs'T.N:N ТG+;ɹf'q|6jrR4du蛣/Jvܯ}V![$oѤ1hdʐ㸓 讕 bHDY#ם ogI$7D.W)%SZ'btE|IB$R Q B. 0 0hđ`BR!G$>B RR5\X IU!FLD W-Շbw) Jv~*O@v_3}D K 5A]j &(bhɀb -TXffxzX"d3)e^BA^(WQNW%ex0ץMDt1%RhХѶ eIev ( }KDtP4=j䬃.YhK.PaMPE'ûM@5ŀWN[%PYe.peAU PLF)Ą]' QNVfLpOXRcE 8 2L؜(G",pQ øuIaITEcU4!w`EXd5MtRInĂ+4[ (b1WMB 6fjȪB6 |}_p '(48cAY=_G"C*㬟۪=jݐdKjv} 2N+NVuY.# qPL=Q_`}dUm4'%)ET[ ;sdg{n K[ZFK pwur"!9   ;ͮvUU@H"Z6kY`W#_t3 :,HX` A:(? >A@kj4PCBqP:

BIRh )A"- rlR`AR&Rx"L>qB5lXad"'KXA۶@*shIPɹO'΁69=yϣ'iw^Pa5^ gznHP{rGAmx_'_1IjBDux)0FtD 1 QTF$EB 8)@EPie 4d]qO4 fFlYW\-gjC)C {dV(d'X ^B#QLwq[V^Zr$CЃL@iC:UIXĘjU9VFEtf'jZ6qbZ+ 8 )A1.BF6(y' ߲ .{ B'L4E p*S!Q:XŶ*SCBڤB_EI$O  D1PChSE4LW$8eˑ  B6՟{NTUp-J[IDȥj ycI(몰t_a  0 t` 0-Kb;?\'_BtҷmD%D`!f6[8 I(rGr`BJjn(((;Cn6螯fAѫ*ᚏk+/0TidAuG`euu.TDBOZ)?{fOnkCYn:YB%hA(Dq\H[tER! B!_0? Ns t(NPda\A!P20 R'%7<~ѐk8f1XNDŽS4OP E$ d|pnU8.LT1Ǣ1@0O!("R#)R-w2k~)`Tw%F:#XYl{^l`Ȑ )k FNbN2|G;8!mRWXb#dpܰ, )XEMbgPpy+R'p΅S<:sP%'O1D異+"Qh d6mh*`TejhQƀQ"(P©rjr^z QϚ3$~XSƀZXQJUȘP0VW#)Sɦ9̧+Lgzݭ y[#'ֵ@8z@@l&ftՃ& ͊t"$HLl*j#O qs''FRCMPUTE.FOR_ 4 nK $<1I*C0a2S<H4d`J!RTIC@Y!CT!r"Xd CR 'S.n$%"S|&M8!PAP.aʤㄔTLC3k]R$>:'N"ޱ5$a^dO4I2e㷇ڬqˆ!פ™p#KIoԙ# bHi@TЃ|2B )0P\A 1VA4qҗg,}E' RJ3]W쬃o OX : ZHP`$@a& ZP밯  9?;=Ӥ%|NfXфOLbgl/+DBЇ5qp)E\:9$=l|;d!h͹|ŝq v GdH$ IQplT[ζ $Z68v5PP WK" -%0G?7 Zg4%m| *L9vд 0h[\%M8o.(([Ro{&Ġ9.S ;'է9,G#>U0c<'Di69AN~(@"wȦa)؛6IiL~gTħ;' O#J*'G ,*r%*ꂋ&Ўq62t$ i- a3D3dMyrKaۮӄғԣA*oPSz$rZP _-e-}ĠZ={c'pMI VsDTOI{hRi~VzfS^ҟ 2QnW# J$H=}UD#FQS"]rXJW0Ult 9wQmGm@TS ' 1fB$zKj`q^FkHr p}:#ڬ] ஌ڤޛB_ SQj@*6A[Gi2Mzv.K< +`\31]Qqe-;6.Id#ڠ?Nc'p㳮k] ;LwA4Hrt|l|ApHAqHNaHj1y1-]b+jҍWtW>F(ŵ {IvخneUKkn9]n%ۉ"y8uL|5sDLC,l4YE">^[a*ՊtyWO6nR›|1 M=dTG< (d oԮ 2eA`\! V5۟T z^WGnLy %rX1󷿔SGKt4ބۯgJT]*I2蕃v{[ tէwWYJ#9&@aP60DnaϷ[ rAw GIM]ǜ{-%T1%reUJW«#wLrpӼݴ~ 78)p3|FI C( H@A ' BXI)C0aI'U$yd T$h"F Cd"R@\y"DRa¢IaRdJ A@2I WcR aq(8iIg[2 `)։߳OHK% NdS&p L^ b$ H/H&=:&D޶MB`g9dgSI8) Ip`IG'h LxO~re \"A^ W8ρU֤K5%ZZ[]su_{eXx  fb9dqem tڄgf\vVkp&{BnIoZQp\1tQwu؝wp}a`xsŞ{g#K6}_CSC.FORLK 4 sKo $<1I*C0a2S<H4d`J!RTIC qH&U\-p0 #jqDD#6pYlgش1l!{&2N`PShX0\&ޥ.0b_WuP{eJƇ", 9 ÝB_Ȯ" 01*6DGuQs#Ȼ0ZZ.!n+1{Cȳ(ȮyBhw4šD]Wٚ9QgcAdJ#A #1`i ZR FEH1,-' W0 ZZ>Ih <%u z _%* `%CfIb &N$,@9eP@ֲGdV ,,(f[YYpd -T33I4f9Y~&Fc*'jxKk ƼyBhֶ5+jBt)qOD Q'-phYͩyeyΎ MJIct{+*NYyꄸ gљ h:[?)z$ jR*j4hS zӫPתИ a"Ij@3N0 q$BjㄡoV@.p|*r5+f;u>evnw.A`)I6s! $cPp+lk6*Lm7d[ӁyӫP)|D׵0؅\jC敗k*Bh3/P mH06T[ C!2SDᵐS2gFU~plafiB]kh$N;3 >. ycAU< LaRy^RB;sUf8fZjbߤX(nx [tNm@UV5XXIIfQu0 ᚘNT Hp0iL4 ?RVtWH;XNiu笁 9i5KZ"Ol) TYͪ3=`"O(*3Ijj֚ON薷Z@ ` h9Ї,A ZOљb$jRCLabMfÜ;*l-g vMb6ykA݀іڣڔ6lo6S#V@{Z /nݻUyYZϯ2guAH9#5*,c)¢bap}ң1{5F<<8 G҇U)K9}e\7ص_1v"; 郓S|p)6Q4YaLXdzy-BBZ(bطD)&O͕Yrd cHz/?q =ſqHD3J8Z?,* fAlH4^=.P0KMA 3J!#yr-oCpSNMm?5l 6(x$IB& Di8n"1Hq}wSD Axr(TrBBN IM<mEvڽT-BJND)hQFXD 0IB 0xhW焈MH jX )"} $x8EePtQPVzA qU.V>(L`Q% KАM'PBWeRE0qPvGWHu BG&"b 2ԀEtW` ԵVX[u¦ 0Ę]6ēQ>:BU+  yWWl )hk}3*c:VK\QD0C+XHiV#0İ)1|z(`é-TV~DZ4AD4}*TdSTj꺧PJR4CD&.9;nm[D($ADgQ @ޛHF p#D7|(>VsL(PSdIj'E `N,&Z 1 2p-,zbej}TSj섔"юNLPI?#.̞"VA)Ҟ%*?4ຩF~M z<6 8 Sl1'hGϬR,\D}Y`eA$Q+ڜ@+I~ŷgi' Z:.DIPf F Խ! |X6F#4"3 Hv:n!bEf]h3 j"J^BV a"BddY"6D#2AL <Co( '$a-SO 0000}//"%W Sh!C(9@ MBd$DZ>X L(LpK]\;7S+cj +>:+~`AiK]ET P.ڒRMd'H!O2Y&w:DCLAR1.BLK4 8H[ C("LPI 'A* LT0Q@I2b';~ 9RJ"2b\Y挌 *"%*TC"0ϣdb $M ;d$O7izYؔ~ZͱWab)EMU'B&qTMX0ā6eU@AY6iqagVLM1Wst@Ԋ i DELDAT.FORr4 xK"|A $<1I*C0a2S<H4d`J!RTID0!rEɔXX$!!CTI"Xd C(O\8 %K@A &'lITIRA(6)SJ!%x D *" 9J!% 1ĕ$@#R|"ĉM:y0"cȓ&C}{R4׊cRa)N'SN`?-J1<[CVqr9=铝?K! 9KDtխDy |FXiB`q6C8LdNTD}iQcB D< 0Y10ÊIkNPD.T(q.$w"gcNX8dQ. GD Wf"_X'5QED(x%"wYQhaQ>XP&i6Ii}BOA(@r \8Ø!f'D~Jq-qKDÒ ZcG1BpOZ`DZs!B1XNAjSꝣID凚JDD-)2YTM~*mQTXXj)mЫK eN F e+ lIòUs*- c-N%kQGc;feu*>n uJ9J+/21TY.P!żJ!A8aAbU{(*ح%* B Lct-R.yMtMOŒrڥ3YXWRVRS@QI(d`W΁`D(DW2]}x)+%B0,q]^'x׽ݿtSQNiD8DELDUP.FORa4 |KH $<1I*C0a2S<H4d`J!RTID0!R &S8$Qr*)uR B,9pHэR2)eK&I"ȒEB* $TKB "Ċ'X$ -$"O"$XZDOP۷ʃI "RD"TH99J!I f X`AT"+Vv=J!'M&r׮A`CZ{4nqRSM5FkP*X.) iQAGDWF(ĄēERMM(:ahRkQa@I8]lMLՁVXDR^OMPZX|\DUDYy _ց˂!# .s1f0"hF ED {9 0 B H nvZjIԦgM1GD _ I5Kp~N3Unf 7'nuA,XtP-nB]3 Q% { tMW wEӁ`mXN9Ã$;ֈK@:qQAETT)`vg @HAsf1!x1lݴfW BEnS_hBhkm E߼xS^'Ȃ,Av[_ ).+֪ގ2Xab=RnYZReFyq','$80VMppJ T{?iD.X # Ye+ʱdxaT)N%\L rw4Y]k Q ȨU1K{UQ0"ȀCeJ<+ZR@(/!R7RS$KW4_DIS͓,bM6Pǜ9 ,C"Pk_0'N~<'~:F>$qoNx>ٴS#vc `~a<`i&=$#&-/9:YtEM9s|D8y3(-ᲩKyɢ4mgtk>5jT!4CvaB-A*'eZ4 4 ydObi_Cut1ʼnP&k8iay(-,-)^2VHeJHs Akt2Am]}NF%&|~F<-kV|"3 7ynv+@}8O Qeƀ/+Jo000TADATADATADATADATADATAl6i>1f`5.P'Q0[8k嶆"D_7,1G\4}_ز~nh7\C3'D7U; ӛ,B$P 3E2noS_z͖%y7<2 KӲGjJE $WXPzfKiç'\t qBԥm3f;aWNXzYG*5C> }m˭T2 ߫dn^T4⮄kcKFp2{uF,[]z,"`RL$BLMړzwH{hř]ksnܽ9HMu٘r82`1t6%hPk]DŽ]sQʑ7NIu&%9ģc>. v :Zga:+*bf6` l\*asJs8u8pkJfDELETE.FOR4 Kɗ) $<1I*C0a2S<H4d`J!RTID0)B&S8$Qr*)uh !Lp8(T$"Ȓ'Rdʔ TdɦI j tP `RiZY> " DZʙ5o<OB;+ :a:4YR$˕͑=OVl "APw )a< yŸ@dʋ$Y9Eq:,\F%[ZB&NȺ=J$l'SѸZ'T^}rQĐV#G' eTU1IW Q'DW՟u%S2E4RTL\B 61 K\,uIB. )p^ bh@# Y`DP `HR7B^RMEI@zZRK;rt^ )dTE'&BbhYĐE^hUwGRH8u tP\VE9㔮J^Dvm2<[NLZBL4DAO,A, ,kR j> IdTY,qdi~qЋC@_JUVeD^uqI1үĊ TTN,A#4X+:9pV$[T2& #:{p(\\ v&K4G_]|wxD4'o˂PCE w_.Q}uJ7 0@J3N6&V\ A\P[)BDpqP17yс_;x(`t.D!)$O"| \p!hoHT+̋pl Y?Hzev (81\{։c.}JO0A GpguecMW]iR4EGE}1_SL=RYD8EQ.FOROR4 K $<1I*C0a2S<H4d$ 0R*I8Q$ +`S )HbI"OP) !Lp8)PHdōqIRHbm(ܰDkZ{(䰮$*.ư*LKyKƠ* *ivҌiK|:ZĞW[ОbٞBG 6oTcF1COM.BLK4 ;HXl C( H@aD h B4I4iIH'TSC8#Т̹3e&000/ҤL&S)΃Tvaf;h'VR|G$dHw)F $jɯaN4w[ΧSde,`Ӊ,$Lq(ȜI.R4A 1+{AXDDxXb/EIQ!uUS${)4%~'DFW)Hs& :O\Ue jRW!0TOXb9AEHqPVpEVay" TND4i B )AE Rgah@haJX Q[&INTQFAhL ` !`tA:eɐRAᦒ9i ߅ZPKi O\a,` ʰ:N;(fO*+ 7;R$n /L䥅ޢ:e_ 0bC1FTAy~ ks fV`TV[ uV=vR8QYXnlZ*E[dH+-}"q AV* b}Y,luq[Xs tŗ7dd`~) 7m@0q'y4|ɚZ2lBP|3"RVECF2CLO.FOR[4 KҌ $<1I*C0a2S<H4d`J!RTIFd )DɕU\yl-$HKXr^vXTY gzf:C@I+zJzTk¸N4Z]uʊĄVdۺDDM q - H.CDPr}μS#35 &I1t:DI ( !UMSs\W̛QC$6hY/ߥykqs 0DJ1wJA=`]vWy aIE.Nc~X|(nZx$8{&bN iEPAF2COM.BLKN4 >y[0$P "cH .ѢE#A8@Xc\I-hDcqzNuAS Dpa4@F2OPN.FOR4 K $<1I*C0a2S<H4d`J!RTIFd<$LpH&U\EA_iNPvZQ~iB N``U -E  eACxI"^V hX%,gr(•* E8SqaGEY #ihO DX]yw}FA[B2:F0*ZE8lH %0C 読* pW$E:*5{jꃓ $+B$Y|j *-*;k$qg悐Cmufk g>DJRj02j]JWHAĞum9. h~ޘ/Bp \qE <;EgLU1;ܾ8Z*i528-i$9!4b9LIYϼC,Sd)- ")K@@ NmO`݈@# djf o @P3 %! d$ϰXXc_ІyD1LuDHB4Uy F3CLO.FORe4 Kw $<1I*C0a2S<H4d`J!RTIFf )DɕU\[ds'N"ȹõmuH ]jWJ&}u)-BbDq3 VbYOAFRDS$!Aɗd O$($8RPB T1m +0G -aOa1 U‡["& &儃z5E wG`zIDD  38aWGi$so9ARtEg_p'T 4ILYvE!E"4"GB]DOXfx @ND2ę\^lh8H,J&ޙ"`W$EirZ 7'Zi9agB"Ph)U|xRUIJIó DD\j!r(ևֱf)xԬ7ʨc<^#AHXcUTDuF3COM.BLK4 doiv U"XJqQGOwJ!rQSfҵtvܫL)H&U$ )I?4PG|M@AGPRnt1gUNxO'fDPa -4DH0^2=!2  IQas 4'yXi'!'eB$"sq- >x JOU 7V +6%tB7eJ0hUWIM%1EYAFYDEL`Y='Q 7C ,̠YBQ0DV˜ևh*:XBP` 0Yg4,e*z"d]Gtu9"*"Dz|<~;X61lejɒi&38 vHMpr5= X MNn;aG8q T?R@ 184$!\m4yQ28;WSCW:1+ClO<GETT.FORR{4 K"T{ $<1I*C0a2S<H4d`J!RTIPAQJ I2H $JaRT`B%'Q *R̠/t!V.7_(D"d8|Iأ((1CRWE)sB(8ǹ ST@B )@ B<5GHq -C! %}Q aI<^$egq23m]Ԡd+<3+~jTxc*Ugh(QzE,S:=8Lt1Qd1,{ HASH.FORR4 K0(w $<1I*C0a2S<H4d`J!RTIHLAJ&PX8ID!Lx%*.0YrB#ǒ.-J& 4l4@ 0@$CQJ@` Q65V,Y1r\"[4nY6 )ԯt6;CƋQptrdbv 8]@ #Ip81䉓s&\tꪋ8IyFQ`|7sHNt]vElXPBkTBDU1vO0zPwTT`tqtWD ` 0N5*@2_EQ>]!E.UB 068C@ 5q|Xp*DWTrJA@S۱ .9JR8I g7bʐ" +ZI0 77o6d u NtćB o gL|)`)Oid _Ggs"s|^u5pN', -XT(,|Gj/ λ )coA>"O2> J{SI #C`,=dQD^DD%Q[BYx'M[E,QPdbg&ij0t!dY=! RVbhvZj6ل16#r!ý,b=f^uƐaѵXc%P|0 qg^ er-DD\՞6qTGiIEXP.FORN4 K i $<1I*C0a2S<H4d *E,Ja!Tq"(TR8$Qr*D.R B,9pHQ TɔH I2Dȑ%OB fU'<D`A,2ʣ$D)I!H`gT)"%K AM! eK)I{)).Mb"o+,A =թ,BVUI$.`%o(;)0r\ט̊0`hOBbn%)xlY¯b m7N8U%a/\$QDll HNۘӡ&b@yn R%k@bIlxd{JR 9ː(b$XLĐb]4UdDUSv?$AMb l1[:1M+L-h@8") "XdnVgөns'dFձuRh}|v]i@f4 (>Z6+ǽD^VU,-)M$5'>=}UPd=2oTYNU4pge ! 5SG7/Pq+<؅ a = Dш]'uAJB6U\ZmJU>Oџ:%"@7E+bV /D7QosxְCW= y/!<2 F(XާzO:>-hT(4 fD|bU\b{,7B)eѲT+y-ldU4`bX!Pȴ@,Bjdz "HX"\6 !euj/񺸔;Q+,[+d03_¢rx*G&E$hOs`&LXSik?k_Xo]b݈:ʑ->7xS%\?3ঽmE[f|*eOj=㶙dz۠Fr}lE.rj%;Z[˭e9-ɤH2Wi?L*-I.êܤm(nzՑw$fTP)}rO:ߔXej._f3f0RubB*|J!uj|x]1ު6j`Jd000/!RdV`P2|4!c,/YZD f2Oo fC|-kЊV v^}cn'?Rz&7,,}ĐŰ/C56,&}7p"qp$v+pe`ѣY$q4ZbqG[u[[tq.]Y)%KTf\YEzم1gAVޤ/IDeqWaA‚3#Cl<2Xt{\4VHM_3^oSWwDAvxDS0I@7ar*T5s-s0ӃRR0x II>78w#UuP\sx-E?m84Ӈ'u5l/3G5~!6FW*-` ~m lPP|A`3n1>VȆ{C8F8+Ez}]SHWH0h`Y Np4zqINTDEF.FOR4 Kk= $<1I*C0a2S<H4d`J!RTI%)b Ma *)(9I:NP) !Lp8)PHdET$"Ȓ'lrk֓UJad"V$'K`'NBZ H*IĐO隤 )C},RʐF0)B/"LA*RYi'2D"\2Wd}ճW&]t9nT K ,(nnRz"4T6ECLeL! Z}0'u ۉuQ59QOM$eX'gUtJF _‰PDBL4p%1C< t6QI-=tM,QDWਔN1QA:ģ?fEH%S*yA݈ԑ;8cfmY&AQQfT 5g36jD4݊ 2B 3@ӝX0ZIB 0ir  4`pzO uw['iRPYYZ)TXmRfkDd޶, تreLX1PTM8I'Ьbz,ĐBN {/6鸞FK0 [ŕY2z gJ,Rl1ʐǟ~jQ'n뗐DBl@JEX̳ϏQqPZ\=Þ]thR'L WuR=IHvYDٲ]I .G(8fOyW*@bê=0f(I I`{Cwl`=h(Av@ֹ _a&LO.P./")BX0 py=Yg쵳B1ȰabD_C@DM¨L`"sIǟBk4` 4(@R#&Cзa 㗿QD p&9ſ+}ZAQ8R@m\_%$ f0:bP8EHXNɠ~p#%n=O琢%|B>Y"S!,[DNFgMI`u 0E`!H&*. G%')VQG" >GNIP= d$)TfVhjYDQI@'%pe+TVX%D"&AAXpdұ.͌ѦL\t #Р `* 95Sd*,Pyp Rg} l` 8́`HSFmS36NR0WF҄ S:VF\ 7E1ٱҗt+bRc$5BNh T7 %yˋA`zY~Ĭ`NJh }cASV|#B"PFxi*A 0~wJ# SXZ$ x(8!l\ 3GTG9TxU 8ʏʴ3@782$EF*`0)JsbG޼ 5` V ~M,{Ⱦw5>D>5T K>Mq2"0}.YJrPi!VQgJIy:6D9T(fXqV f5QA;J]U+jB%f2yTUӌ(yA] ֚ qB߻8Ag >O~TX2^W c b0]`iaM[O҆LmQB@ϵ.вnx!1Ԑ9\݀@%)ipE7ںvGBѤj"`[usIР@ ɂ֞e?:D{XC+YBGGӑ`dIkb:n=APK:0$5+~jncͣYϰ֖5s DڷFĉnO18 pr.cRf@K(-tUH1s@'Ӥf5Cw\C,5:BVH7 NDIpfߍ*^V2 !U{CNwD, VX,&m.)o3[2>{,X ȕ2+DoB)P`/{l5hHP=H>vgqp&8>gRawa].6:Z:b7(8Bm}i#i RuZ%\ɵ^utGzwnuu!vqa9jDm W$r%[5dZb)"'i%Ypr[N[F$s@ty):'C^ge^gFtiDm6qT3UG':t3CrKQ@׆)Q3r(tZ A*H-8ur(\Bq-DWc˥Ƈ>ȉBqRG~(.ur8(9XDp#ZuŸc.`O`Hu~ Ѩ5rSȊݸbልD0GHs"aG(l,́!.Ӓ+;7NAC` JTE5sWaOVeDGR؁vԇ$?C ג.>)ȒRHP\DW:GU( () 0qgAggHdj\sZWb6 d(胰bIe Е.vqg9GRs `%!?;`9>%?K YDU1~XeCAfxdI[juLFDi(7b)q)>bk-YH9•pyfFlKGPry'Y! $|MBy(~Ɨ$)ju+F3>\\bI>i(auW乛6RqQI| I9i੃'G[> GgXB*BkCY!Q69@i@96EIe Cwt~8C補LA6.PYZu[IU'&CV:$p>:eyQ0i@k.gjTj[]7s8(OqȜc1LS%VfwWw#\zV1"7ZrxxxT(q)9RqJ8gVl29@5]t!Eu#E#굏C^Ez=Zzvfg!G,yV!y\Aox!,"! C AEHH#鬋?QGw$H`|2000TADATADATADATADATADATA*^I M+y =鏾}s=  7`lȌavǵ@+ K%`‡n%vfNjA/koAU08a[+@L9-//F Ěfɇ72t)R,o 7DET|(hò pC~[V.{fɸ*ca6/OQ D0{)YF*1.[d8qZ ץYи3`[BҹtS1pdjY p4Z*:Y*Nzbq*c4>-1 pڼXYj˘[)?/{0[*2>*% *{E u1;Rc/;1P < <6%tNd*{y7tczqAsuIx0{^5vUPZ+݁R( : :B::w~P|?R;l8$z_na/ knXz[íqS:'R(E$*2vE:ӣD7Pf14G$ƪɛLCR2Ub }kck[Ԙ[):݉ >gicҖֆ\ȭ1|E 4ێٸ2m?V* =eۓ]< lJX̔,@)T.P+`1,3}AE;.z="Nཝ$!, m:u[>,G\#n.30@:ٯ3!wTZTyk(U%ؒw`A<%)㸍Mn<9|E)3c56)#3 $ZXjK4yǪ bFaQ\ 'H'.`BAKjO91)caUcӾK )Kn*8Oծ:./N*QٮnGDE 雒|"\>:3틸?(>gM0Vz&fiM<)⠎Aa&2T0`ܩRum폢2t(B l̸-PH0R@7uWObY/)Y9N*.-lOgn4X"3JnbY/we4S&< :Uy$" ]~=slY*8J6쉫Kd"+X'$2ڿ: V/ۤT@i*0]Đ%7 b*`"6HѹRfh eR@D j/BBIjK6$QNKVU1]UPc혥`*B.(;IO|000/WC RRd|" T825M&ĝ ضa-X_Rpg^ qEqR>m_k.gcsx8}P9٪+BثXꃢS얀:;fl`Iv;;}05D@jCy%La )zNd#K(HBpR?jg;|e,Y`>%n#zi%< &0y(<oq+40]4P%N7ByphaR4PqHE $(IcA"PKCd2JM HPE,C΂!$jˊޱ-9`N! #ܛ$ ,X2(Ƀ%̛d9SʙR\Zg8)9jHł|Jn }_\)LXB LeGZ]~ILXkPV5ӦƂ fp=j{23S T0Fb4tN@^C֣5Ĝ)+b+c=| Έ3>nʦofEAnbxs 8 Xr&tjɓlsFW8ƂrWոq!HA8rNdޣC9}*1`] %]GKYѣ&{nj6 s (L L͙U^, +X{*A|Q!rGz ]L(I^l/SBK<: / طlF.ajnkp|(TDeLQӥ UD+@O2R՟<딫s^gy ,Ǟj? WU6_f.i)M+q1D}tK::훍ڎ.WtJ.5:ՔZ5ƓxZNtZl n3cKFB 7amoR }7I@ l&]cnz#4hd椏#Ġ8  "Fi7!KDY c״x *h$HH aNwKXǢt3~Ki"5*dA8*>pxD!9\ISCAN.FOR4 K@ $<1I*C0a2S<H4d *E,Ja!TuT#C0B Xd C(O\8`B )B2 BeǍ H@yR!49(7ڸs|ےeOZ Ҥ):B*$FEd$jR7c&MnJ'G oleve'uͤeӼ4CV53k߾)cwDߵK[Y@wW8@i5d\J,٥ ,5CKF T!c8K06 T_Ov(!\ʕItaOx!f lT`dA_{PFdKQe#ҵ4E!lL^@HP\uFHEI1@ّ(HRBeBEr8_wF$bz sr42c9ehG20-1  V ڣLǡ0i . = +C dr3GU!)-kRӆe{V"JIܗ9"i:ҝ0I*g^A/We&rŧdUT񢩫NTuD8ISECT.FOR4 Kv $<1I*C0a2S<H4d`J!RTIIB'Ae"3X49$!OXdpjS myXeFgO`uRp֜a)&-%E{~E'0Qa&D@5A}FFu)uy~jhel1|DLjI (Еh{*U 7Sj Q!,{lUR$)'uRt b(6^ ,r&]!oQź 8q/`rގ;MaYj nX[4$ܱ&KD+0žj KD$Z&C O22 (3L\*EQO"HǓ +h0pg$W/EDa3G<11 -DHMNP=fKD!̈́YגxK,DŽ z۵Z7~ V$}R18Ex[ ZhRPrdOE~D^l)TNKw @NU-ƵK 5w^1-+%YPԜ~ W_UiBqv* IJE#@/ϳg5,$EB֨%}Cv}݋d)tTjr8 K@ECɁloAW}Opi 6 a SI1ALt!]1( NEp,ׂA*$T" k),ݒT] ZB]Ft{ tѸ-ajBx$UqoKp߼8Ѡj*Yf@%4bȒM& #IQs3A8B m(M5ʗaIb?rd g,MU)I M-ⲋŪ%Q10L8A,~hKLn`3gIWH!Z瑮% ^}`0JrJ$yT,e-F)po0kRR&s%3Pc.Tz&zQ&k.]Zz%iKLM0EIE?ji&0;m ֲ,vƝwlUO *HJ0j hMdUPN͖. M%$W,!(|rr&(ﯓۗ`Q@Q,R8ְbe$;"z'" +fЗxpd2?ww68aZ50l+}`3b%+ayNㄤ lU9Q,d&\  Yv!6hЋ&yIV3dVm@`\Tt}#iMn:Tj.d{L e_} <(U̺ηp[IV5(ˣ3z+wS.Vׇ"J.D`zTp/x*^jEfSZ. 2o 8*1rL.7O.L!?-F2҈΃9XBTo 2jastx Y Ur`\dq o_%}:)t*#5 $ U ݍ8AANI''޽""cM[91W3d?C -H$HkUgܑ}H1:ma^M$T`ArKW Zjl4H8ƜZ a1]%vLkY3t 8.2u&2AhPTP^rfmkE!i4-$WELK]&drISREL.FOR?4 Kޥ$ $000TADATADATADATADATADATA<1I*C0a2S<H4d`J!RTIIH)!CT!r"Xd CAIJ!Gqb +On(qg\@s4qu/A G\,3 s?UIR=CW؀5Ex`I75Td V(!9ZUw+\u%Uw 1zaLN =0nM@:J(W\1,АC0\nc;i0FL 7a7K9XWD($ADe-w}y.A^f(ܰ;%PtDSgvO,D3dVT'[<`2`p e1/P`;mx )VyXt㜼1n!9 PfgL^؋p$q5) 'uRk) ` 5@37NebBCs 9 5F^S --#i;5e +pW@I.9f@ XpP@ ``̃HxK۾Z`e+k X.t XD\ J[(֊"anH5f.]ߥJY@-I]qLe2L"Q|ܘ%&?=Hl$8-ˡ+Kڎ@(0͛C @)pE\oX(AԸC FF3} :ўC3M&F*Ch4=+ &WEd'.!@)ʏ*7XdϚ9"PA.Y()D ]nS;H 5hZ/U 5"K= pNeivELnCV`Cz1S%-J%,hس,hp$0\V2"@QgjG'v k鱾r%MaۙNP|ok2 _e%Fif \|P0hxqtm3J<@EQʁxhp* &ɹnݖI\ a MuLEӵǖv Gx^Ոv@QpFgme%rvgX)eYA72IE ʊ>cHo>f`A־"@˓K?~?l[^ =%.]2+xȩQŜ'Kɕ8MsNGy+'1&ik^t]Gcy^WowGrӡD5|ygW 5#OΝ2(I5PQqm.dlE8jRuʆ{QWk~_oF o؃v1M@4Gɬ:EO/qM 'aG LiG4Sk1ƪm) W2@m};zZwyt Eʽux9"y2KAInrw}_Gt.vosYq>r"s~'*',6.snso{{(<s'wqC3F(gW9ikW{w{{4E7CT|]@#~Sn҂|(|(g8^U}Tp}7nڷ.mVxgkpCqTU/,`4PL+`p(K\t!e123h'·K =2AHe'oEX~w`7R݇wrr(r!3.5 WETzxFYw9VTi%цC~C_gwh ~uIYU^ 1,7~(qHH#H 8r8W:rr>pRs Jr׌h'+Ew7.uhjLX / D+]! '200x5[dIwoh:Cxdq'4FWe=Zd| Kn)'cA\1{8yWXhvIK0wJr('_WjjAVEatN؉:i!))YFxW{U*Wqmd/1fy1X>q'2`A_] 3SzŃ\ G"7Ah3Pkx9|]xvPCl:=.XOK80Wlu!)F S= 'kL+BR!OWVn"ul*Hnh;~oEC)ri7%ZP4YTR0zZ` D I ١=r2Zq)*1-Z7J:m$!;J"!n8ൣ'NNq =2DW/]0- HyV9grb6jJnܩθdn~"HX%T_d-R6kHI9IH9-IвjmE- &!_u$e:LKЇ> ҋI{N8Ը~!3.:ӝByqXس'QJ %IZ3v"1x2vYvV#y)>Չ>2 rثt|aJxz.7^R$D۱扎L(4؃s\smTrJДާzuY'nk%" z#Qϓ66kɰN:"ȳ!"9PQ9i﹣rud`[C)o+fpIOFKCa[@)zM;U|v^E^(TF]4ilIU VadQ;5oV5*:/|j1ӠPCzz'1fqaGUɯKxbx3yLm j3JccRX<%6j# OIwWZ֥?QWw57qb $R@y2%, LKx`[* Ȥx'"NqHӸ˛,[xUɎSqa|@Wt= A 4]10LeB|eדq@&\dp~eluѥ4g1CF!' QMUNRMt5DTiđB )Da R@e\D$qWJFEIXPIBcueK`掤jgGf0!w krDD6wU^6_+LeBE,yO;jn4@ .HN|1Si)Q} 8iIB}.U)\S ,[&SSS:!Pim"+)†-DE *W΅+$fiE p2{1RxUx'* (Ǖ CeZE:QcN+^. *Dj*+%Yx Xn̚{. \lpi]p Z]QA]Wc*77k/T5o9u&qP'IDƨ2HSD_g8MA~WrI'Yi^ rzӧ".آy}:૶-$At .[<2Gv[tITOH.FOR4 KX $<1I*C0a2S<H4d`J!RTII$"AKR8$Qr*D.R B,9pHQ TɔTq%Ȑ%(AqBFB6ѬWLѤ P$)UH1`@*¬A z h0 P BJ9J)BepuJOIN.FOR4 K $<1I*C0a2S<H4d`J!RTIJD!I&Ebh M:d&<R J!L%Edj*YpH&U\xī@k+ɐ8JfS(@zK Gp A$ ayRh))z3Z\gt2Kch|űc2S H=z o+MAHWȬ\"3eE(BGGA'x$@р>c|ȫr"Ж^. MA%c2 Pp{6znР*Dx*І$C@ e$K2ۨ7mM~Kan5_6e04WZ. pԨ 6!$M+JI@ 3!f|TL$g: OyeUu[%іӒYK#I5~%589'DUF՟|qHW Vrc+P:Qjv ݞqέWsA=JӼvk%[y*P*[۟BM wTq[#h*Ķ˪: Yt ,k{23 K7xYVf6cݥZu>p9.[Nι*yYJoiY3p.{ [ `mo( W@>. "S堨jm+c㽭<цƱ;i+d]ZqV8ܮ@U#Ie

7&#xa"⒡Y&_CX)PNI!y=GqB H&(fFqbl ILAH^Z3fjHEm5݉ x4_DXe0] qRO\fW'J5qO(DM¡ʡaD 0[I 0J:!mRBr*9@B|PRTd`EI̺%i| e^ ǜ2Ģj)oA@HWL Bv%22t/}Vu31<WtO$42Mr G4'yˮ9 7zI~:^gN; 9ܞ,F-NЃXXD($ADe%XMFQE`"!I2P K07:!PUk(>t@5.W)_AN!@`SKw7=sK bpAyWǑo_y +d3 bP!Pv!000TADATADATADATADATADATA'h=ZLt0q$q/M$p!y dp²$lB7#@' خ1Z Wg5"bŞ4ᑑ(o"fg+l GU')Y{ѩ0tV 'y s|rjAcȴ!(}mZ yhR{,付VK#@,HK Ĵ,礓.@Ly^PM'1yZp {Nhڇny XH1$`,$C%itAFM:rs\=ɒȓF+ *e7]Y'Ȏ\:Q?2æ-ҧ6$4XD&[Ej_qB#Rr]sT*SpZ5lK22`N?-1.@F}2$UF1=.ʬʞRMҭ+9y33g)A{֞g`9~' ׂPN# CX>QdAnZŏ: "MkI $,b\+OkyTޒuE(Őuu}j#gܜj[3j\)шC@F>x7Ԁ4-DVg< ]˕'Lܒ42.VYN8\ BSMX qYH.D웄B7[l-/ f%nu;ax л?x+'G@8ǘk 箾 CamLcb&E #G{ڣmo]m7%>WNzr*Kp1 aqeuJߖ#K1=j  Hg S≹y}x" X,wZՉE@AY%cX=^3GDA#2 ٷL1i?a(0Yv^C>;VWx-) H "aW֮ FWe[e=iѥ^<8锧YcD7gatqfg+- wxk[gnn!'q6r}sGvmooto%r z̆<{pt:aqwFIrs&ǃ(6*r:s2sVsJ63Xq>wrAjWt[ydvK'tv7s+k !#1Wq!x/h~!eflӁh8`ii$qfU!VƆlΑ\v'E,lvvXtq{q;!gx4)tr'Ar7FY(^'rAĄ!BE4@_]5%S։.vryP0C?xtԘFXKRmf7e2-79EAL^h7vPEKIKC-y'R`ȐY ("IɐslYҐRΡِげ*.0r.y7 y(+DВ"=I"!XBx&S1gKPeMOoDKS b@TSp S(D/ (iFpH T^e*znS֊OH1qHn4%wO"cIM,0YZZrx>t"!2O2_RyJ$&;D9Ǡ–k v>Fy4HKcF,8/l3!NaFC,PdpxIC۹xe'),b$U^bvNkIRX97:borsPW{!,9Vgur}ctC~4`HdR2#h|tni#eH] q2Ņ+) n*!ȍѢ49\>++;T@.Gz}nN4RD #A5+dY&@qFu!l# Jႊ<9B$ὅCLvAeRUTTTi"Iu UI@N PX]7 1Pj2HPI$D}Kp=[C Q6?Y{ФI.Ȑ 0VDN.P Wf)2!l֐^4/ IPf.g iڵf 2IɱvC0&ڦ~t' P j)o% sӧ'Py\#XZi9 `+Nk)>Z@)b8p:C:ZmI.B)$ګ*z.[k) D۬0rxmrS:vрiT~Jh*l nV r&AgN{랲R 0^Zu b({񾠊&o'겫1#ڧLZl-YpMMt=+qV-ƸS,Zb j:=c wD?ѓ=t_K ~EPqV  -l| iCa;z}]w^4ǫ9[wN &oC SL}k+=(}pSϢԤ灯wĎ7>z  p=J"*Hj1 KMPARI.FOR4 KG $<1I*C0a2S<H4d`J!RTIK@ "% + &2X0)℅%,,ID!7\q2Ņ+) n*!ȍѢ49\>++;T@.000/Gz}nN4RD #A5rdY&@qFu!l# Jႊ<9B$ὅCLvAe ld@IMYh(ĐBM QrTI$D}K 59oei^(h 2|u0 a 5Mx/ IŒA8JB DGRr]9c2 Xڥ% k~8BXdGē02rVe9Fmؘ2)y]~(ĸ. [D)5\yvِgV֍ri dK6yLV z2iL@U,Zr%YR¸.jjZ*B*hèo 7;.Fk6*dТn~mlk-ɞm+(GR )ckj{_ XN(KMPARR.FOR4 K $<1I*C0a2S<H4d`J!RTIK@ "E + &2X0)℅%,,ID!7\q2Ņ+) n*!ȍѢ49\>++;T@.Gz}nN4RD #A5+dY&@qFu!l# Jႊ<9B$ὅCLvAeRUTTTic vL(ĐBMP!Q ld@AG$-A h HD~ O}{@I.Ȑ 0VD5zDL# .D `ÍD%C @Sn78 Id.Ff REe [GRry8]9PdqZigI2i P m )XjyC_dKŰ L@l&q^:f.§8*tN؝j Ft0(V:Y꫘njB.)ip졫*sym .̺m|kʰ쮄Idz Eß(x)geC^kCr:jXm/"+; 䡉. Nl ^\㢫)Ӣj r q=۪k|+-'U';ò:g?fK!doz.: /Jj5y0(D4 B cmY[@, c f G6s:zkw3G>^Wް <8Pa c%꠶7/,7zH/{#i>ɟ/j7 %{g_P3KMPART.FOR4 K= $<1I*C0a2S<H4d`J!RTIK@ " + &2X0)℅%,,ID!7\\ zqȦf 9s>űV[2rB!Z N(goI<KOMPXX.FOR4 K% $<1I*C0a2S<H4d`J!RTIK4 + &2X0)℅%,JIrT`B%' $I9!*RDM1@qB"2>1$F")DT $l뢥'S\heR*1-ZnţKߕwBJI H}hһ6J!E02ڕk^Z6B0 *KQT<z"Ve̺EIQFF' Mm}uV=TSOIATdfVImXS:DXCTuUViQIQY$i(Ā@c6>S;c h@AG$-$`(I.#B 00F^ iFZ DPDWVP Q{ͧd$8lFnܜ\矁cVb%{fl HVJ e'af ZLS`.,Eu AvR$&4ͦO>%Tp뛹jB+űpZN5R9-!n,JLBH.O/ӹF5U.DogTܛ:*UHᄒKDcI` 0P-ˣ]`dv𧈴dݮ qxTTWw*_L000TADATADATADATADATADATAZQ:`o zNZ[nYʂI|YnsY';D졃 CGEH:@ ݼ$ J|  gE [ 0ٞd:s! PgY/PZһ- Bzd|pjF)4GcJ8`w[wɄ[A'?=/zRHIJV{ {`a @BBRLS: oZ B+F2BQJS9Ԃõ.UJpi\)mjvDa` ijR[0"d)՜%'$CXrR WJ(,rxB"^&IhV&m H@)BWNP P48`i&RǦ%c_ h)\r F،7'\$fiXM+>`} +1Љ$L̹͟Z >-TLW3abtT@2L<FRjNN3A6):VamD։00E'JJ"NB)6{"u EES_@ &cR.vUt D(PVp!Bp{ɂ#.v[e+$6NlL@VOT7ǁ-e\Aqy Ly-fb-vͳYJOt: k'7ouҸtVa6 rY9R#j><_UY\.gQ5֊ure4܆񨡃Kd @d <8Ij O&wYJоI:j;0 hެo4X):NKpW#28ܘطNL'p ,$dz%3&9JV/q4_0j"rqOX 8㠂 9 >wr(k#9_dhr\9 鋛rDs;Y;Q4RLOCATT.FOR04 K1 $<1I*C0a2S<H4dH'C$yDT$H",|!$ T!r"Xd C(O\8% Lq$B R098 Y )5װ?BjvHH2 BO)StMe̤;Wb)KA咆 lL 1dɎAT˖͝|^|kV!kp DKdx $MCtqkE>Įgn)Bsg&I ^F$ID(q~ EW{ٹ}v'qP'}BRRu51Qf9A.x_F BlKG<150E cEQchL.eNgEyTd\Q[&DQY4]rHTafhf[mj AHNTq} #] NM U 6zP*,.hTfVa+vuWfP(ZjƦ%qg **㩏ޘc.!TPeĐE  ^J)B ,$ LFJ 5 nNA.Ґn 1M&$I0nc/xmKc+ÿ,0\Kl{+0wi;R͹bAYD}۬(_zWE1j9 mJr M^AVO\1]U+NGR( '$J &q){[1G0$t)ZOwXՖTZeo'{Jl cM 3ͩqj_ I& 4GlF1h z K.` 蝋ˮ#,x۱37}r W{[\,6N>Lh:ڹViPKꬖY$YsK$u7Μn X&o w  (E^JZL򄫰m6DH0%^^G0D  h.RiSp"!LOCBOO.FOR4 K`s $<1I*C0a2S<H4dH'C$yD!BQQNXLOCPRM.FORo4 K $<1I*C0a2S<H4dH'C$yD!P4A!I&EX(HI$ɤM'BŅ&KN8!H YJILYDA@Tr5 G"Lrui a 2EGSH Z,ҀqE3k66Mj&1b*mˠe,OlҢœե,aB4iOZ\ != XqQJy$Mh6y4թT*:+ouy I "QN9)NEuEXQTDuVWLDsu)Ka )pm 0"PÉgNDET8SAׂ .#R(`Ff NB !X(Iien(W P Hb0F,UeJrԥM)utFyxrO\ѤqhƐ)1RI8N6 x)VBki9mgcTj|Y+yb+ .:ibSѰ&=J BA~US0\Z≛iqm 61..G[lNLOCREL.FORY4 KU $<1I*C0a2S<H4dH'C$yD!R0A!I&ER8$$*D.R B,9pHQ Tɔ| HȒ5APARdJ*AvIѤA()e|Y.a+R@ d 'h`) M$h `3U b.R@WdYs͜:NpEPkI &EJ&NML8Mu'il4PHL@DlǍQpȨ/cd [ tYXƖ.8^uyGEE$Ph AHNTQFWPTR!S$!z( &X($?1%DFO% B ,$ PJ B0e%giɥ.0ӘOF)3TI(R`EXc)ig59~f ]^0Za!XS{bh Y;jZ[]8VYNtaEx P鏟H#bՒD0DSt%j쇪U RW}DI$!iDŽR )Pr4Nzxɒ"Y4Wũgf)wҍ7:|wOvqTI$EDq]vVIM5`U=qi9(SNg\[q,5E&yS1nbTE x`J06u#GIX$1T($ADmYFŐG<2h .x 1`C [v%96& ebwfkv& 9j9yfWD, yd*k5NJ"|6ZC, ꜥ^$h0ëjU8QG8Elv_BTTDFv($W 49]D 0M B Re0TNXh9Q=vfE +kf 0* &!0Kh0&Cp[qTdW 7"kɊLHB`T B7D(KaEo)[|tH"|2I<4Z!,C+(VCt@s}03K4rurk51ىu< trwm &C06dK) uK'`Dɡ0 r- eTY@іC$Dst: S{? oׁkI~&dAĄVWDkc2)%V&3>' s$P.D0hQ:9~CK]B3ń*MBD@AWΕƱK# `z;1%! X7 j}50rjIZ7`D"|W9]FL!0#H|OҔzS%-q,`U _"߁Oj5cɮ-  ɆE&+bD0FmIMJT(@S ڇ)|sl@呒"]Ip2rᵲAB ,EAYrF|$DQl $#}m+^y컓!$:+aIqV jY 3 zG?@./|n?`pd@XQY@ SpRNr @Fȥ$ӫo,r/ z%dI.~#f/P.IU5Dqմĥ0']rihS*fjZǝQ\'Ԡ6u/" FH)j;4_ҒM฀C5NS ZvW(_O{SD*KwXN58U-&Visabkg`Fⴛ:Eӳ[XMQbW2 _Kix5Q1ebč&j\udXH-k57h UDMQ;r$xL͗)z<^$"o 1Қr'U{_j$Kݢ8䬘;7rA<`8r` ] HIFBP!v'Qm&e 6_` d%RjPV~$|; 3Yn…tVdcC&OV^D&rȋ^ UB֧0u@L&hВrp4m˅?q y Ԥ+3J5PK`"hPJoI\y]33i LSpTׄծ _:+'5-g;U}Y2hW}4ڬj`#;"Î,2&u5md[)q+J_o`\:v;P_, gFށDB0,->ז^0$@ DR\m,cS2hQ]$H$ 7Xs66 'bެ}InK_Hs{GŊsEznlCDPFCIDBڄg4zH`YG[Q7z w{AwixE xr`>[VEyl'Yk(@È Ux!LODPAS.FOR4 KAC $<1I*C0a2S<H4d`J!RTI@ 2E)!pH&U\/2PM|p / [ &қkZ_i~WE:C /[42, rdCc!bR2Zs[*M|k2 Bs8tg4x*-Y sMDP.q(OUi3ɵ2980w`  !' !yFWC) ɾy؟ߴg;6;3lM P^::3іM8&Uo Xhl\.}qOmn"l,Ѐ0 GM( .1mc Ŵi:- l@I/iS >MM Ԋ% O3 ( Lr+92:t%ݎ8MjA ǑYpyl_wq'A9nvY7oBqE/BcV,WQs^(,0FVMUtË2'T8ox,HaSԡ$y,%"9VWx,N@,k\T $'P!U9z*c/yQ9* M)FjUE> MJ|Rd6D"O:NHMʔI>t3%Edq~JDO'DF$'t{AD_ |'dV)DBLjQICY$y6M!SRbS=VU$[D O [Eh)IXVD($ALMd GCnG<1^bW K\!S,rJB ' z矁T N Bs.裑'W 9hʩ:*y)ਁBa*뤤JQC,Ԡkj@JN Dz RD`Ihf.P $SUD^ODZ)YXpN@ 0 5B4:BVJ!aC,D XENӿغm/U,zCh3`%n.1م kA*N #&VSOUDV6v5]<(KlQD3APYizPimkgRҚGH\U& ЍB+,XԂIXLC+(,,ȁ3QLIY JaLiSj2 u,\ԥNԩPjQ20KA+PUKC\3&Wm3PJai5(=EҸ܅dŜvˆ6vQO+ #E,LA#%p(Rbʂmxr%bOWi++Ea1>4@2C4 Ӣv\ml]kNk^_BYRnlpDf:&*u twiJY`^ƍf}AGSx0f ,h/N0X2B7.ěAWE+ԷUI cVmp[17^=&.bk3X1XP- ZrqDpi2-BsX C%Z–Zu2mGcQ O]Rk愳h ab3KȤf^hךkXImK.^I_&ipYZ;øj+Y{򔨤*k@wV fL WƌphkK000/RBOL`j˦sWqۺU +o\Ѵd5[FUb=aNkmDkM o Z+ h0@d_wvh!! S\: F/,QĠSQ)`^D}<t{V,C2lW 5 ;iM W5d n\zMrns m̛4hm ၡc 9M>oWCߛJ:.'$A (cͫs;u%VPE`ntbjFb>~..É$0`vYF3mj?j;iS+ŭcslI\7 {XOhWϱ>vJ7wM %G$w0P =ZM,SB1g Hczegz3t%}+{Ju2i$daw6SBK7)S*{70KXLl8s;%FxBNg&Qx7`%qn;$| F wyk1X04TD%75R55C}H4R2'^$N)8LSTREL.FOR 4 LK}Y $<1I*C0a2S<H4d`J!RTI H)!CT!r"Xd CAI) B,yc&A$RiѓUIH>qb IYL2ۇ0eqB T*T3k]R$˕>] Lw؈4}WnMN"␬2+/'ٴeT@a55c.b_i櫑cɛx0kq$ID(ϣOWd'ҩ[BEH"ʕNo]}gtČ÷g1 md@XE4T(a`(QE)*OB2[Cl4G(\֙XAQI|U!%$h(0,Ϻ`ґdPQDEJҘT*gC  * ],,DPB&iN[DJ1ľmBjBnBV[nKE O\akd 7d]@&-$ ).[7/;(2 ɋ[ңXd.04z IT"XH MRX1i= ][Zndt _=斏έj5Sc BiD2˄*b`( *KN}>u] P9 C(#6 cZ[G`ɀCHcZ9It'aЍrd!T XJ=qۢ'̈%4C d.vjUZ p ם2.z$RƂ ҋK:Z4?()v< ֽ .A|L c%%˚Vs+(wHr-VZH"h23fE~#^x2/ W|YI]'޺׳!`c ]^Ԡ`9Q£ !,QP8BlfAǶbID imD{V6"2_!i6ˠ22Cl2i(&bPFJ60Io4ZHMUH00CBU$AO)6r-ICt@eX.5l =-dsk:O~IMZ˨qf'E{ܳ,TťœeL"26eΆ lt]wF2bb{J|Zܟ9 I׆䖲ӛycV ?$(" h*I,[mPձ2S&BW[EQ׆K၀B8dOnNok+Űxrp&!X{`Kغf}*s;~-¥:H8h'_ }+m`)$o3@Byb-0ceEu$A#9 M8+( y.`B>-aeaHYA8߆@"z't&ɪdQOHa@ς&])WLBׅn03Q,R YtVVFbqnIL7,{6@ESӛJt(+np6,F8ëQQQw,kA'fW[yy?r›/gL&;ss,;WT]LX0˹ G5$'}R԰,!' %NL:ٸABTU"Y`rTixބ+,f0TGSlWRuf6ny\lX@֋{A$L :pL]7}֘sG: lww mo$'IKH.nwfG6!bퟚVۍD@"QM|+YnW=D^FQ]~9[0hxM$wYއx[_90`DFZIPD.h a 'JB䟢1" «`FQ޺GUQZ]V EHV>8mj֞ jjJTt2.QDP4m -qNZ_wzeL[LF.b  LXCARD.BLK74 BH C(R*HL1I&Oɐ% #R ŽFHiJ )B, `a"A#A$aE AOIS\Y+N\tR"R@J&%"*Cm$("QVukׯaA@id5Ja;R-[,XmI)Ax͚"z3/qIgXx1Sr͉FA̺HߢVZ ,PH="pJTXHxAHJTD("OĔRByDXSR\zq%xL<\}T5Be%IHr*uy;AhuuDTDGRhNfcQ#ehBWMH<\EG$1Dx @]؞P2tQVP>HhLE%TZ\*Pq>ZImhGX@ d@CLWSN\, 9ٴi =0_(,^~`xZbv*$XD& pիgVoUzi`,lWFxlFLXCIT.BLK14 CH  C(R*HL1I&Oɐ% #R ŽFHiJ yR EV"IiB`I"e  -r R )# r &A"-(çQz5N>RPbU'1I+ BG*GւhJ& qI La|(KyKϠE։% ,DM*3!=%H(TH;%ʗ{8!}IUٜtM(EJH.}{ЙH'ITW,> ]/4|9K_ NTae|1}YU[p aVoaؕDRTtDCRBVF`eb WDG1P7Up!K.ݘcUT<uDvGV]V@MFte "8V}VLD_ULii$bAށGYH!Cڭ AamEDCM7,ZٍDbbNPCUHQWmEM\*PDB$ 'iTIG(C ] 6XaRb-ABz}2Q[ ŢudSn,J gX} dV 21#U, EXoZIuiBW,[KGa{MgGqWiّ`'bRqk#,(ʨBXUzp$mj­fkJЮ˛v[|faF;Ca@LXCONS.FOR4 L $<1I*C0a2S<H4d`J!RTIL yÒCT!r"Xd C(O\AI) B,yd h)I$Or -qBjDBZ $ S$'S2RdHT$MNqqJ hdS hB)&[@))-:K'1gLO͜UfD צ7ۃyVP+"D@-R%KkӶ}I&y>ek7)ELndB D9CBLQDE G_IW2!1D (`L)0^ _2@~/n-B*Ʉ!cIA4QDA@ل9ډ E9%VdLUFbM zM7D,FY@v:PԄ%a(T`ؠFfDńJ5+}''Ok)KI.YYG(|MqK`I[0 Ns֩D>:}z'kif2fYo*.,BЮ*촯F:Z韷n&RJ/PlzjI60[jҞ*ON,!+KظD|M FU|11%{ 2OȖ'P|^¬32VB! #:4=rL+ 0C 3ȑn%]^UP^Ae4O 3KD}swәoîsu# 3,FjwJo~kƞs0+0+:0+zo=>^ BBԅFɍ͕=_3U]HećseCwv9wo*q+;qDE/C݄ DC 6PB@GxE ^XsT'!̳2Iݤ  'd5h`h)(&A+=PA U(fH%!~ Bb pzh!F@#\e (Pb z SsbQъma3!$! BM@p 0JqxDI PT I@# /<"@ud"吅$͹B"M&"UWr/|BA':Lv81I}*"k 1} 8b- &If )0i`gz6ڜ&f͕NA r̈R (x& y{p1pfqZB89y,fC!@++6atQ"bΜ4L+SH0);gmH" ]ٺ.VPt 'ld"59P%c  OlcG6 *Yrd*X]+܊V8'0, N>jĦjeUczJdl\'FV 7000 /ȫdwUklmS%`eJv,iG[q%m**78psD tub N ༫"NOzuuYY՜yWϙsz=gxGWIu]^Yg]zwS=^kg݀7w-Հ{W`T Fq +LXCREC.FORX4 LM $<1I*C0a2S<H4dH'C$y,C" %)HI"OP) !Lp8T$#H$AREIP$A(,"@YA$麶H 0)b DTh'K&Y(OLIT_"w IV)WqAT&!6q8q2"?}9t$S ȱ! zewIC $11RH-B*mē8I+NOpJ#ΜwT@)2 .v$߼;EJI+ }Ё7Ose\}TD{%DETgD /`JsGCLXEND.FORB4 L*I $<1I*C0a2S<H4d`J!RTILqBEX0Y)M&4yeI¤ 'BŅ&KN82uc*HLr$LO,jd""ObJ&I@Rtk xVT`%FPt" ZMd- nʕnRN bX). "(U k J+MPE )SPIFDmNLĀPGrTI$hA8\`=\b:QE,(EC_Vi@  q$K+0 0O 3gClޑH'+CwL(d EDBIa(&*飙ૉ.:+:ĩjS+2ꧭZlDk)h ΆZ.X$J&hRꄥ_P<[Ot,b%q@/:ֺmth: YmcS a(<HP {_u[@K"lw Ι t*wG-Z 0i=hEZTȔc!۷{=@]=ːjwϙA!TB#T chP R8XLXGEN.BLK4 EH{X" C(R*HL1I&O0H%H' qRDJ*I"R" .y"ǐN\$h"H':xq"IF* W 4%"M,X@Ŝ-bY$CMʒWPHI&$\W/ᶉ j' 4rtm@ 4|(,_ؼ" )XXsqLXGENR.FOR=4 L $<1I*C0a2S<H4d`J!RTILXt"!CT!r"Xd Cn,@I) <I$R4) Ҩ AqBi"JB(ZD(PRTbԮ%Q D+P$ C&K2i82";{|yf͔+3|$ɕ ޼' bx# Wh *YA$"Q\6W*dwy V<9}޿/~<9V&Υ\/zصK^| W-iֻ*MDE{ `wQQQ)UD8LXGENS.FORd4 $Lɛ $<1I*C0a2S<H4d`J!RTILXt2"C&aCX8҄ ͒EhYJM',4B*e&̙))(9I"OP) !Lp8T$"H Pn+LI]2A I'9p ;dviO6hq8". (FB6ɫIPBؤ38S8z$.e$B7r8q&?۶IH0+DUH/ edw@| {J[%E%|ه_Cǟaޝ]8)AKQ!EE=]Px!bMXTM5XaӁPD QUusVTKTT!aIPWY=ĕW`pBJ vVZk9 aQYؕjiW]ZajRRYhf)I4a1 Gehaѐ(B ~VI$ BDQ1 f'GYMRIVfM44RC^=Q)L+ä>IX$'P,`*DeS%Igw0Xh kj[*.uc$F .T( _Q N&,$l0p0O+PE\sZ%@ȥGXrRnGMLXGETI.FORw4 %Lt $<1I*C0a2S<H4d`J!RTILX$"GX0)E#%JI¤ 'BŅ&KN82uc(U@y2d 9hR \1$A(Q*eYAuԢSB*PY_:95\vE,+v0IN4۸A抵[2-I0b86.m.SV|Y(dū7<NT(dOZ\9`T-zTljC4;*UFIA^OEhQv GDBLt=Y`B]_vu0&q^2hDKB )` MT)p1YS؈#b3# ` 5IhPLJB $c|);M5fogUAO,qYEĆDe&W7՗gAAXfD0 ' `L4aXj*C ,# DED6&A((BK:Cʀj~yV *_E\ɺ u.'>a!w¹+oUP_ "Xx IF0%N`Hh LXGETR.FOR4 +L\E $<1I*C0a2S<H4d`J!RTILX"ED)%`R $FQŠ*ER8$Qr*D.R B,9pHՍTɔ-@@ "+ t*J!EH"DNG.(w+H 8!DEPI,wa%{SMdOdj 2o b'?˵-MDWίN\bC6>>A;S$d avɳDhNIs+fO?5trsARL.@2ZL\rxGq'E49!gFG( P K1UD^h1[q1OG id[HJQMyE`ˍN9&NId"̥RJR{DuZXߝE&A1h݉uN $PUQIpBJCTT)bL((J[dRP )TSZRq$% 58#7ٕ D+ǜY3ɝ=*hd}:Yp5$FPtqD' \q2n&E\8)rI உM% "+[64TwLXIREC.FOR4 0L{ $<1I*C0a2S<H4dH'C$y,I"I $dRT`B%'$IR$I*TD" d(Uq5QE ɔ+*:I" `d5U.T*LWkh )sM:NL(HϟA6~|s2@5r|ryEHb &j]0I_:ye!3k8q2"<}}x9$Cȑ! z@#,]0#ӨSԾ{ 'E87pT@)2"Q\ĤbQ sT>P~+\FގB c&]<~*LXLENW.FOR4 4L d $<1I*C0a2S<H4dH'C$y,L8"I $dRT`B%'$IR$IRP"ʼnңELt"%e(`ʖߢ( 1`$ŐA<EHh8vS ْC(fqi0eiSlj 3v7T#Ǔ)W{q[`3F SUu_~IScW8_T:q|͇ۀF@EPR . b*~^~B#6J{1u'B(}(_ W„&r cDCLXLINE.FOR4 6L<  $<1I*C0a2S<H4d`J!RTIL0)Y"C&aCX8҄ M4m|2$C%0B *EPq!ɒ000/dX $S@E*a4)eY#Q B"(AL)$FPĹR  $5A8)7 3AaxR[5K8*!)EÁ  -JO$$bdw)I@au'V:#9I`= ޮh}tiS'R&BU(eJjW^'D$gr0%Ae 18(I.4hVv qSO OL1h`Ӈ|x4k=cMĐrTSq.2((BQPC \!EP` [ޕZDM!,! $hQp TY 1MD \dRmR AdhcJE| F(Wx5 ]IU1)v)R)$P$x6H@\zjWʡ@#]@;(|T0!DPlx fKR6 HH `v lnj$ +vVELS:iS m1@̠ UB2ث àŠL@K GL$N~&!*X_ 2L6o ',<:? BǠnONJ܋/=)K($ΐhڂGC6)>;0gw\DER,ɫx\%q@/Ed%BUA8DCC8tC,sx }-hP+ϼ.&S|ys/7m 9p).^'j_ֵX%'U^,_ΈmFǜյZDv^ayuTP P%'u"Mbz?0-˂ 5Pqf< )p$سmZFS82qN1DIlrF z-h.5ݺoR gWuw߭(";f  .a֤ 2y=K//Pnp-̐C1PjVqgXx $0`s*Ӏi؂fc{ҏ4 IG3S~"wr R^u"@$PIo@[08B*LZmF0~Th#hB6!$1HwRR P$'AEn Ą: 1TfWte H&~J3 ZN@@8IԤ'[Y`UF|'R4I-7;eI R%X8&Q.%S1a&Ga%4IX7qrXP~ߓb*/uS?X`.Y B(;_EDxE  4oT ɓIRDNxyd\`NH]F#YTK w@c*Pz b0Ffc 2! .pĆٽDBŚ#TH[=|A@p(,Bj/`t!$mB Jk*TPG%ӊ#9~ ))6APE%H}9!] iаc j"LCƔ* ڄ$T Wj5i@> CJ8 nn PB^%SL_ !.՟ZWݪ ?t0mGΎՎ !"2K9Bp+Ώ_e>가R0dy7A5/u ^(. xvK'"w@~7`i0*ԕ- VSOU- 7տ_znGBRp)X؆$ZPm)uAHKLR1]oWaΪb*V\Liw3mcrx,2q,9T6ȌjOX [#/sY)000%TADATADATADATADATADATAE>mߘ sz&Ds~ #m`[(/nnB.+$-g0[`:2+zc87 |727sK0nE0wuAL1~qe5wO fÄ!ZX:mb #.A;sϖUѮMglze9o-F_nTs&Iə` 4(\AgXaȑUrw~I0q4v7jv|5<(6'`j6WU6ER 86gTe~uGB7?8SX!q3t~t~W9j6`Gi~V~T~!G4h춂X?a*xUe?AK*8+iT2/QgM(&*6oL7SMg}DpUGgMdm݃mgP w{!'rv3'TpuAf@|l't?@NEQ&HnDG761G'LtHt~|,P9%u/7uWi[s"RFrݳ<7%saRFe{Rf`tB{vu<|̘WQF0O93tZNJ777(8KR#Qy+5x1%2/Iy3,a~hvbsAKT7evcY"IBBR$UO~W"9%'ֱ/"2Hz,XDC0r'&#u->:IGDĊ" @ѵ*_TAR] '^h=@l 0 AXB˘N޲`2n#((n 03 疆E<rl"T)dʕAXJ*U8aCLXNEXI.FORN4 LL  $<1I*C0a2S<H4d`J!RTILĒEXD " &EpH&U\%'4]I-C55ȔFD9MDvN lG${BFWERހUPBECDu]tOFnٹ]~Yדu%row}h Oi0DY(.BQ4hJ*&bIrLFj ):9W .ɛoˆtrcZ` l g4Z f 2鄜]zE駡ZE fꠞ(Wh锬0 캚 RSoƦq2X:y~)vu qR9:"o1T2U,tˆ 35më93-oSPE7mԿ!s ,\i$Y\U" BMD Vf[r-Fm`.ک-0{;iK'| U v 5H^*{*^ҜcXDm] Y ^ DQEgEZm(-?Ov 9 o6~UAOnDn9q{n '"ոn6?<ӯC/kSe<% cU!p $ %/z,R 0,H!IT PtAF@1MaO%?ǁ c鰧 6:R['7M x֙dB||lP8.].DE%0ދFPDk9? ب4a3A+֮9-iT =)} (=9uJ:%P^Fhx+u^dĢGiLښ( ""$!n,/ҹ^tD,|gK23ڒ*I%Xdy1ZFĖY.9);'91x3'y C6)F:`@+[f\M.T 9on\6*g2 'Jp#i;TeP[^N T:+pB\S(-u(e2`Tɝ ɱ.2Z@,EŴ6W48̧Et$1XkM&Wu8h%Vk\fdZO '"]z˼1#fZVvl/(gi'Ɇ􊴍 Ш@OʴٔA IlکtQ L-9H8uIJj(: I&VU"9"FĤmb r4.5K\:.@k{(wUj ۯTKQEx_2D.V,v ZW5xyԈ.MъN ] J$Ƭ[ ;\g\`ɀye]εJYUM'aT[\k04Z1QM4owl+Ҡf8Ʃ(ˋԉRmo\Z$`D JoM*TA ?5LXSET.FORX4 PL} $<1I*C0a2S<H000-0/4d`J!RTILL)B$YbEa $JaRT`B%'Q$I9ɨ $B"+bEH52+)H)TGB1pH&PRPF˃. L2زAװ̬$ HW9ɖ3Yhʓ)S=,֎aR)|XH&F+$&(\ʞ@ ܍nJ&?iEleC67m:&JIEDMyQtI% F_uHB BePD0P s 1)lJ>*6 56IOL$YZ-Bb1xu+5DM&т9!"&"]+XFa% e:>=")yW}H@T(*:X%0Q @FQ5EXDCJQ$I]'5{nvlQe !ՇLł['1^_~gCO B ! %ƀrUăWM (Հ XInEJkY a k%ʙXZ;ױr%D:oq* fN:'hQG%P=^ #;̱e9O)]!P2G%eg-mUV 1 5TXk͵@3mK¹` KdAw-W10۝lA.Ytע THŅdE> 9Gvw, yݠcmƹ]'}g1԰wm-8Ies&Y[X8ы'[-iR7뮧 { ZjRq2}) *oJ~^.}k *+3_]Ĉ~&o{V׺EЀ]&:!C@X%EGc(g.!Z-ĀIMl>,V $HwY.A/&-UXH 0*M[ 7EHjcw(E5Ⅲ4 %oQ%C0Qe\HFmdyt#(G,0Gw 诓LT!f2g ZIiRp]G,7dSҴ2] ɄLŗKXP]F0GbRDj:s~|8Bqt V-y!)MS*T%#zSyrǼ3̋^Ȟ"jh/^GmQ牫yIĞdӑAyP̅ Ul7""8LXSREC.FOR4 TL $<1I*C0a2S<H4d`J!RTILLRd$, "% 'U aQJ#<Ф!CT!r"Xd Cn,@I) <I$(# B& CJk$d]O&qD+I-)1,NĕHά de 8!@ġF|HNlUK@IF:eYY* r$r"w'-B&$![ <+ ~2rX"UTljC8ZK§IUVERHFMIAEPCQ ldZBkeaSTxaTh@u/Tpx "IpT&]D *X؋1h nd"<"/ $ BJ8$Y@QK)` @ʘ%Y(H`B(!E`TlxX9v6'"f ` e+0dRţfhNbv5cnBfB5(ȒK_ BLٴ?5L^ٖ|eUQDzmͶ⋕%у*thQj,,vr鸧J!DfUHFi;oI"_6 9Or)3Li9]\ZB,`႘bi61jM 0$飋Wxof)g LXSTOR.FOR4 WL $<1I*C0a2S<H4d`J!RTILDJ(,‚I",$f'j7cOf@Ft%A1R]-e xRW㕷P\9@jTT@L&I' R"N:5Rh8vtE5 g9^ 8agT'E$|FuvH~SPCpBJ9SN=4PDk6%@ifJW7Emnd@AG9GD$!V`/ę0B `B, mNtiYPU1Tā `jDj2Ԑ)p~ $,jN@ H]0lr,(I.H)F;Ƅ Pf K,b;C.,B+/d. n[[tp lm&`9Vp *5͂|&,4ٻX9dcJgܵ ``lAf, p l>Q*k5|CbY/Fsrx"f@_orabdB`X(FA WԚ^@cYϨ{@R >y7x~(z e5laFc1p2 6HlG3d!HLhJ>q8p'2MT0jVY:ī15VZF#}P%=ՙ F9GpBDfљ?2 Oۡgm bؠK* V~#Ɓ A#= e]B#]b5`P)8AMSLXWRDS.BLK4 FHL C( H@W@HA 8 'L OXeJB0Y!&R $NL($C4iĉB&XpI , ɚeW"\p5 $\peµ <OBSRZrV̡6p(0DJ A Be'VQ SdhdD R4)dEȑ%5)$]<D#G P I$J-b2̚7sS*BFJRN;~$Ie() Sau,[(Zv}tܵG!RCQ"xɖ+Wc4aWU8G§HL<1č1f%Wi%MdZy ;h$M79Q3co-d>vb;NdvSk~{-څR<>4|CzXQxOԷH/QD%/to1|ľ-Ο%ՙpvwÑg< /j" 6D6:a}2'#D0K X@ ͂$H0P`B TX Rn04\`fPE,?~JI]Dӑ @#ݍqxT1h02q ^`RDN@kBG$Z"G:2Xv=d![$X) G vC@ S%H#$[AHJK$!Dᑄl1?Q&Ec?PH\RSɤhɦQ@v1'(RÐL@%ր0ȁ A ӌ%FCYӗE=)V$=1jȤT+W U^͞ TJ!F4:LVէQt@7,`+kYTBVbә2thr 6ɖWus)^aT[31ጯZKb1YbȔ& RhZZrVKMHzE8)*Jv-h-Lh;±6fqs+⪔ o AqU8 Gܪ]ֵͭZp~2a TXEפ|lݫ_,_Na9`'LM'#L0u/@Wsxް_5'@uwm,J\,XG.\7/vpns`KƐm hƑ՚؀3rB"4-1 VLBwe./r UDf9pu@`&pظ(kg'TX-.A5\ٚ=I4F9T tkqLӂcDn&ꌱ,«%X5bF0]_[iC/ ף4rӼCة" ybwXoGMmWu4-;Jf;)WHSxK^V5+"Ji:քdr drAi{Lqj|0+'OZ!N#u(moVLFgͥNG:϶e: hs: 4]߽>+d m,x<L~N xa_AD@7uW3wKz(:WrYM '(cӁze9xH H Xv(.08Q~Bfey(^seVlwE~ J(4NXn(y<I(_XG=ZG[Y_wFń]]HzGrIKŃ~3whXGhX%Oph'}XYy;l0]Ju};|؉}H?jy@ZaPa{({.7/ׅM狽u(uhu7A&(t"،^hTFԘFw_tGoHTe(}CMЎ_szLUWGnH7'9lTؐwo%Ccdrz000=/pn֊MI IJT-AA0y4iEPǓ9)@5 0'~-WC7P'7PQƴ 0Xx=4xb90YyVkxkyxX omR0yxo#/~NhGG6tow.dח`~S-R7e%9~Z94.?B)dQq"')isdo$iWl pɘ)'e^( ^)쥙׈ؘxPp9S𜺙9ES5 Fm_s8IwOSPBLi)jўRduLWKYt3 _jKژW0D1Ez?yrŖj#(jחySrdkH0B8)<;Z*5wr@40@֙5(PJC*d@je*hj]6*\ڦ/ gJnbJg yN*JCym榅sz%ꟌZZ*G7;XW *(S ڪN`k!:@hʧZZʐ ŪV zU3ڡ7 ZZZZ,z7˪pB:rSaǬ=LqdcOX=ԯ RtlPQƤ\J"k%R1* KToֱ64 dR)Eɚ:7 p+K7I&/;VBV6k#2KWBR*9.[Һ9Vr7E>HK-Ҵ ɴE1GpdO`R+Vvakf%X5XoRBXSHd |[Sb/6TG钜+;;*n,aduG(aU׊`$ 9tA*xЗĦ5!VuaSUaX_nH+$Е'&%Mq4*WūwlJ0W0e2X*'$Rpߋk+U4A :w!MISC.BLKR4 FH= C( H@DS@\xp 6I2eH&L8)J!OL"JDE`%'F@@ qE @٤IJ;.t !!,aȩA@I, r&Ad¢"W*TJ*p*$N9RD L,a ūŁ8,ƛ•3#+A$ "ENB%I):.MP5-D:xoW)\\ om רTq搙p'ݵOgD -'\d}r@'YDp7WMNI%A͡aMTZ&tHO\p@E;hq%؂]((2' *VMODIFY.FOR 4 rLH>" $<1I*C0a2S<H4d`J!RTIMIb$C%0B *EPq!ɒ $S@Y$ҢHNJ) LDeA@ 2/cάĐ'N"C4mJiH+|u"3p]w$ \T@aR$ōY翖8H۞QIӕgRň6mؔlt I "Q Q:u LrdzQ@_KDf)1ݞ{9  ,CUu[QODa xDXfV[~%I)D\"8ނJ5O(8DMx,0XD 0J 0pB]66#,c,8P p`JBZ IQP C INTQđ PTE'QS$Ęm>DA8A[&9$n)'F.P!BNNN q61cՈvW K\1`C >b)$ EBªjh+?] az)6flęf9^& fNxN$Zu. Yң' XE[Wb{$ &NXT/" 'J6.0 fɫ SH+ 2(lD;* GtPKdլZ&Io@?۪ ~m 5 E%E8eTO=E&klMqDD66e{ -Bq FC  k:68ncK۾=sOIFnǓٯ$D." 3(NfP~s.JszuJbTtZ` Ss>1LxJ=JZ-1 5cDc _z+&-=zU2Sa X4 . >a( p9@nۚVH%(@Ted4@ZpH X]̔& j9I Z11 B pXքQd8X@" S8"Y A{ҩƵ.*Q ̤1_ xC㦵i=8{BG|| 2^idr#+tr{eFhJR}dG_ +d`nIy*I y8F 0"NB+000ETADATADATADATADATADATA%b Vi[*  :yL&ENs@fWt&lX UD -Y IYRFv>G9OՌ7sJ³$'sR +xU7?tN %m0Rtf'Mr+#h,n9P"N5 NuzJoDPuAр*db )Q#*4Y!?Ae)GPbDK%! k$=;E PQ_$ʮ1$^xU]m;l%(P-^:@ORQQ?&̀j舭f*J{hZ%s-kbSڎ3ac p ) Y%;j"cN/kIdhk>d3on[Vlt cyaԾmL: 0)^tSִ a"b+^8BpT^K+`c Ho{B 4Cj%B}E`c1cYBb%k7*NYpb=/`Al~\BEY. y9,`*X) ܺT|ÊYM rP$ֲlI$%r_!BRQfɸ Ċe2PbWBFeY#67 $)tX3)x 7ҕ24GƭK4l$(X'U~K\XqT]zc aXB0xDHBPr>|J2]iǐ+MmR>wq9-VH&w9S WN/G%2Q N"jl[8KAGW^b U^`:&LT4֐l(>jձ^-t;s%D!  q~T,zLI1 HTdZOŎ x^#D_*sɴKs-5={8$FbSݯ)(Vv-$8Y"%&!gPlVȴ!$E!L8Ma6ȵ>Nk2NfN f g՘g"dKّ2$j'CNR rK80JMҐ/$%Rf"- x ĭHLqe"ERQ1dɔ-KAg&nMe)6$E6s[8LDaEa"yld@fdUZr0SH)YoEx=J;{qB!UE<_C7] 0YQKiB 06NsqwBQC GETNDE ruL \TlEG .nd@B &!$iP`Z^BDT$MN 3BoZf8%_ dt) &pavI>"ؙD韐 DE$Tڗ(+(8:b'p[J!nѩ"%9{ y-* NE.FORFOR4 uLod $<1I*C0a2S<H4d$ 0R*I8+`S )HbI"OP) !Lp8)PHdōuHᐄ!Lx$*.0Yr @@"ʓ)7($*HL"%"!HPDYdG3c&Di`hrٴoݞVjISt`T o HuºI"n8]ܔNDL.˼gX NpMIΦi`$ڲg}Sm\q2m_Q.tpGV_ŦKѦvXILBH BL,XiQI^yQ ldAv2HUtMRH%aZh9S vI4dF@YB ĠbGF0 L@C f briN_ C4fzۖd^.lic` I6&!CBc"â (( B9I#)D.􄂤)yrVΰFar*GUQĞ}ZG(',Y8_a)Y tu0q]^OD^-†pɇcqB ̮>ǒq.yPAGDAT.BLK4 GH7\ C( H@DG@qBT!O4yD! GI,Tp !UaŌ,F1ON"$N9RD :yjXJ)I,"I$!t`4c@'CT| X\!}Iu<2 _i.u-J).Kzud=(N$jDISABnI%J!UA<1wR 3 PARVAL.FOR 4 |Lܪ $<1I*C0a2S<H4d`J!RTIPHE",dq0 ",\Hd Wry„ $EHID!LxJ,T\a!_7$!G;/D2#E9/Q# a776%Rle0ZE]-## ;&vc$>pLuΊi04ȥݱ`b"ؼI.k5Q;d9962ku_Go:ΆH7eMf@ CHbSXBp fԪ#^p3|w'G7⦘bH}ԠJJai+fA1sq+PBS"ΉN0d(/zA`qVGuP|f'Pk֔֫(Z@ŕF̧YtP̈́v>U|/%!9N7s(HJBĢ=L0ٝbS) }#PBɵ]0'O$d,%GmݭrQW!+VBs# QG"Z˳)@").[-W_Kh0Ѓ9n٢Cgh(b]*T)Ӌ @=% Px|rg:ǵm&#z;, d  % ȊWFu:,][v5zwr:xι([n2q@xV )FMTMURwԭ 1y鮮{fpjb6tٌJƠ G9!w^,ŭ 5!"G!x 4"e˅(<%o+l:̪, @KS ǮkOGZXe.p,a8SX k-GI*ILlh%f0_+atbLRCNYw`5`}f&M[FZj? 42ZVhm2tqf21m-jv15#$G+vf!"ilZQWyiWa@eOXx(m'Dj$d|9%t͘ *{{IofcċHoM3w"\:b;r,;SoBi\^T~zGwu" p lE:T2_{>Yq |&p2hA,A4~V}s}gNG/w-h'S'=3`Ek~6G$$R~IPwpo7wXzu'wcJF/OG6m5_uL+w>+cPJECT.FORW 4 L $<1I*C0a2S<H4d`J!RTIPB!CT!r"Xd CAI) B,yJ)F&6A I)I2AR%$O QN$- X.ErrJ'T`1pnӮ+I N8 BP @2 Ma$d˘QkZHZ v@ H6"M@@I(#:& AA"RVD'&?J'sOKQ+kے${93d⇠Q{އ~]>O0XtB{Eǟt5wBi%~ #JwCTa .l@\̱"5|Nh"7B Wc"Qʽw^znOE bDQA@TTRL2Ѥ R$ԓw/9L5IEdq>)g5]aM 'tIEP0~iM:!:I8:qJZF(O}fg'4qjZƺm)%dQTFtDV z" ,^E r)gSa*PZme' GBO1IeE+G&=.)H/ vSQCuG+1_O,, K A)f^z-6AO7]C,zNZCa* ZU$(5 mjLm ( y|,,q}MC00f?(:Bt|wJh w XLa! ,,89lO A ď7,NqzLB.PlqбQh>%тp. b;8 79a 6Ú~%/΀0ts :@` c DX‡$9Fk^bV4e,٪# i 2`8#YK j)!Т&/K3 AI$$D!k>J &xrBs)K - P%FKPO9ɷɼ$d*'Ă5H6J8ms*WB' 0Ek9Mv_Jk Ku2-lEa ,C>6P\Ҋ2GǛҾ)@ $("4Wk ؀YbBs˜AЭ63@ Rܶ,`[+JF$ XREXHJpc]e$yټʖ< j6%ikum!#&-oC$VM͌{G@P =7aPBD3|U—4txu4ۈNmm4KH|[cm+[EpiՔh4av.uBJ`[U DkB.WyKzo 3D`+7USL%F>fHP000UTADATADATADATADATADATA,-xa{W޲5 2#cp%!Kb S,;[Pj+cJK .URA\*Js*$h Dxill@(|܄*L sKR8MD8PROM.BLKR4 GH C( H@O@4Qh &qB C$R'Mtr$A>8@ APN6Y͜;hLDD٘DϚ!%(ڤ$T$rc)Th%LPRULE.FOR4 L2U $<1I*C0a2S<H4d`J!RTIPTaR*MT2ID!LxJ,T\a!GA$!GtyWotH|02T:R@[Eh 4q 2@ ؗ21 1`acSaCH` r hU )bcl9ADqTI$EDJ1GYW`KYIB0@2@ &F\z )H3 KaĘc,$QÃ!yX]=ŔSo!D<5(C (0P ((9zMG5<+-t'߱VJ#) 9hZV-$ˢZ2` X q 0hHlAn60Mw hh7',LSNbM#*.1` 28-AVlzJu*5AHd88 E~ł&0.\fo:NP pvZ1*K" h$k kl8!4"sD>NVV$c(I腖AG(duc55PN a9> $DTܤ.k hD ndiPYra Xaʠ^T,4 Z\j/uޫ/% PhPJ\c" A+qt8='.ʀXKINYHs )6h1QZ?Ap 5(BƝġJ4GXYlh ©ASWxJT*S5u!i1&1R*>z95 X yѱZ1w“Fhih0Y0HK&\' ^0P2g%ܢNRJj9IV ǖVA! `RT!=J[~vQU3XS}/7Tc(ЦEd" J!,MS:XR3:U2 QS(VFLBH2>bGE?WU. 楡-oiكV=|N`uᘥ3} _ULWitA0Y31 CpAUXFE͋g5_Þ|7FUPTRCOM.BLK4 HH\ C( H@R@|BX'G "RR V B%' <q ̖B<ąF I P´’DTi",r_Y8)ʓ)jٺ)X t ,+S5Hٞ0 l(GVHI$hK"ELRIEfH[ A9DIUI}W,Yc]۷IL@0Y ""0aRֶ}ZCA0|=6q$R2GW>qtxsy^KnW|8g~! x1kn \{M(ISR_kaJQLP}cNyJ- ^pePTRS.FORK4 L $<1I*C0a2S<H4d`J!RTIPH" ,\`TfHD",~:I% ")(9I"OP) KN8*HLrdɓN $ IVIɩr%I'N)%E8G!* 2W EVU#G-Y **`$FP,qqM*9S8k0`tn "FI:Rk=@,q(t&IH0t BFp걯w{5/QR]j2 m\B ]&-QEA1Ԁ6gE%~֞sK 97^9@BFǗ1 zfN3Gpvbo X000]/ F`'V_!QHT]0f6 ùbtAr$T~AHYEPQgD8PUTDAT.FORr4 L6 $<1I*C0a2S<H4d`J!RTIPF9$"XX$!"YX0)$)(9I:NPIŅ&KN82*RQҽv7榰s &ďV9qsefnqCX պ)b%f2xR<.sVki5Yt8e,-7СԕM_fuBu?Ib{n a"M(H=p~+2XaVCc^4V2VZR܆%OD8PUTT.FORR4 Ll $<1I*C0a2S<H4d`J!RTIPFRAQJ I2H $JaRT`B%'Q e)PLq@J* 9i$ BqHP) ) ZqLLQ Ҥ):B* $-KIk$زp'5[ N̖a&њugA`RV%U"&Z FA/uMKl4rgs墈q|y @_[szu)у{[9JIzEVQUERY.FOR 6 wt $<1I*C0a2S<H4d`J!RTIQ!CT!r"Xd CAI) B,y(Q$'HIbe%#Qd bӓS r0!Aq%L4u );{|vfMKdק['1IDD &cTpD>8$M7̗MPBzrWn3*P B۴mܺY4\\\$\YnCz?1E 'kXHL@xx+1%D"ODJ A)0PRFf%$~gRNO@B ,CA0G(ZXZ B I cAcCP).pEN@ 0eƚfPLe䴺^KEYIJ5xUVEt}W4*1!LI.ew-7Qc{JxpID@N1pb̑W,|j-il+s|{!] 1mߋw(=E JM  t2,D,;bjLX߭i9~L7o, 3 Z;/8s۾سҚv3&dAjTB3V 9?pӂHN2 Jغa64- zT G 4$IТA1 ݑP5d4c긮V+IYAQƓ LI{_fV22p9H[s6+ USMn3$PtLl xI1qݩ!p+Sf%-90 kdv ,UvgMYs6v{Bfqމ\'w5I{}dHv3Fl 0IMx)1 a~NXBfF-La+ BUk jj2oN\db hekU8䒪%jНJUlD݂*3|D1`Ԫeu!k 'ABr$Lw"O˘}jDH ;. C4 SQQɏ6T-=.LA* ud}iYeFd"(YI: YXQlmJq@GBy=ֆF%`=k!q\oX~c;uf UXi@g;[_FPayiN@(Eˑ2LvAJL.Dke 3 yی Xoqg\5ܸ 1xCڅ1驮@еh5/ʹm9 s ümמ;~=i/zPgy 4ie[LvBͦ*G{hoQ@놪nڍ!mIȽO֣g@ 9 jޝq/ 7UCRK$'ºaNb2< (jȅ,iQ4E-*$:-?AM0Fy5ON sUJ 0%K".%=Gwk8B;QӁbfՁ}`4pHeJG5%h{bY@LGzf85%Ew&w#8"/ @Py>yg=_XZuWgISHCl$VZ4gDyU!=Y@ XwwewpOkjsDiX2i'OCF(xM̲~HQ4.(*P@L05uVQu;g_W8P uVUGzvxZBRRСG0GjVhJ4\R7nx r{h`=VR0'k qO0븈ᎆ4eXWk!rZPJ0TZ!Le=phVDF({dzC7 YC000eTADATADATADATADATADATABy$ّ.R)đ D c Q9%8Z)PpqLz}H}v8$y'6eKX5K{SXVQtqp=Ql9,CWqe2\2 ?5'Q&=39,VX[KQmcQMu)1ЗP%E@n&P7(/Fu֕346$pOW"Fk֛Ed5DKiᢜJtE*!X;rq2*Pa2zhz'*&R65Z1׍Y2yX AFm RELADD.FORF4 L. $<1I*C0a2S<H4d`J!RTIR0 BC%0B *EPq!ɒJ)PLqK" 0y*PhɔLD`'N9XJC4m˄ϵNd}k$Ɛ'MڅM(V`QTR񤑉Q[<2HիYH@)d1UJ+9&\H #(^Ǧ"$ h "۸O~~ 1'1""Q\ RHi_ L rzCA4ybeWD$!5UqmāaDs^= I7t)nLYJ| )DM yB!XaUH,H N3L`Mu! LNwQX!UNVYd]FEh1PfN&"#f$Wi:c1d|&XAE}mh.0WE.M wޅ% UR_eD]qUDI,TTR5\I_ `6Ł&ZJJ Z!zlMRW8[pffEjkp RELDEL.FOR4 LP $<1I*C0a2S<H4d`J!RTIR0!!CTa"Xd C(O\8%"7APArrєNH)#!HR%eLĉPH QJD[CIBJrQD!)u S&2󧂍ADJ+.Dq##ObCAĉű'p`+j".^cE ?s&Ρ{~r%F ZC!e 3+n~ ZhDI^AIIV^)]\7{&y$&+\Le:RELOAD.FOR 6 $w{ $<1I*C0a2S<H4d`J!RTIR B!CT!r"Xd C(O\8 J" 9I`B(e!O`DSrH&B!5ɤ'NL:NHir^>:9&ؼThƁG19kJI )+f(uVkcg]SH#Fr#V}v Rt:&`^;0)3o$ɔ!Ӌל䒵G{F$QWvCAZy%A8UUTPMU`]qQAG$ F}XD %SN @F(EC Z7I DM!5*`D -qG)E5VeIM<`E#Kň:&aDPiUxeYBOFBF0q: )pDWP DZ 9ai)En$85ER (jC kbddZդi-FLD DZMN4m]2PhEpU 0D1pC yj - ILŤBFBew6`ao, ,@p564Ȱ3G6q-LФe9,=Թt7I- PbWv N +v A@0U9fEN`UrjO$UZ_%Pj DIG(ST)B  * jܧUR M !PP' ,+q=DJCPq 0F@D΂M4/Rd1}CRy7&!=H8_|S[<AOz[җlOuُp %A (*c 9@1+WM(IrH;ZWS#xTO(-e=)~ia,o3)`Aִ2ё3qC> 6tB(ymI$9W˥(+'3 l`M] aO@ P/'Df< Qc-'GzK f -BR@&DhY$TqqҋJD@JrECn­g *VPHJ1ґ pɤ*K1jM`$"rȯĕ:zȡUd m$(Z,S @)ԡzY8h ]Ak?8P$93.1^H\ `SHH=lVҩ;yGSY%)hI,e-[`B/b8Z81 ՔniTؔq(7T6 R#(q lb3\,vQB`DתY<׌WL^ƂW/xlG ~״˲^hdoLĐ 씿)h񵍚|%`BXГjܸU y$Qb.A<h=UdOvY;,ލKa w%ժ"p-,ܙ׸刚+ _'zTvؓ"(t;=NAI 6k%*כJ2e<s?*6)d3a|ԡT#(-#[O(KQZe-zYF(HuQ%EgYKI r& 2^h8nbzF5٢!nsY^,-%0T%000m/!HaԨ6F!Nk+I$f.TB m֡PU&l5 +د$V=pedļԑNTe4LlK@@Dhבݙö {ާNu .RPxr3 5rulxMSOL@$;#^AZx%^ʆBe;UmTW$hm=_*K'zQMA-ŵ}E &5Ix2/lgjJTޞ:J@5HЉ |}7r0LuS -fPoDI[F:zs`-1ۗOsJ2,pY_AL!DpMS~J'gǴ%L.F7O%YZ(TQ!1)ng4$ݡlcb#8"'7qe7.1qbP=Oc#T#9LPC"R-RQ#bf*X(R&5T`4}h1_6&&V(Tg&&aIS,pa- Q8tUZ#}"A}ZeBHCgG2Q(19C^WQ3U#HR2Њ5XMRsQ#055W9LS&EMIcEkŃ8R\ǕqDc)%lO#q8ti5fRTȸIG0}҈Ew0gԘTR8j)PR`;!D@dY5f[ty-k7'MZBYJ2 1HIvNrNKt'3#8)g1"k#S͵H}DG;%Zp9),r'csMi(TY#Oɕb1_4 eT:CJMut0c!()7Њ:Re'#37L;c>s36I).-`\`!VP!?#BO*يgCjő OWx^,Sz9-0s/32چP-3"thʼn:5c:Ƌt&ًb Yf )lBl50ܒBYXMX€҆T40:bE&wnWor:&dDwLȆIIȑ~ޒ}4S޲3ls~i"~ʁ󀫨$"$H.()X%7*P&eVXWTFOǛxAWKiF#KX2jz:!rRELPAG.FOR4 L $<1I*C0a2S<H4d`J!RTIR0R$EB^ID!LxJ,T\a!GARE 'S.n@Ҋ%2";02˓)PR$OMzb">LёR2[(ɔ (\q%DFICTQxDU(i&!UYfΝ:N]D(Q])%I!O. ݱ.|(q iQJ阊*T'FR$"Σ[ 45N 0tY )JPfD+F'`)vb Ҵ]QPJAHaI/%~EY.щ(d8 EDRWV}6 0h] 4aU]uDVAR%"C4c^x #WQxM%ĉPH IJD[CIIzQD!)u S&M'VχgUJe 91Z&/o4 &X\qQ$ )@y•wH+2+RFbHo Ǟ-|u… x.1ni(dJ N4)BF 3ޓi~^ 1 [ b V 7$(ۂ Dŀ`y 0WL!~!RDFф1bf9AĀѷq1q 1İ" F]{2Уv8ÑM@M&f\] 0`k[RTQ F^m䄙'v%[MCRELTBL.BLK4 IH˺ C( H@!DL@P!BXPH#F4'Lx! GD$aBEHDLPIR@ لB=,0dH(X@ qILм‰'l6%B ^ $qBH̆T? bɚͻ_;2W$û K1TWi1#E"Q$R!Q*g&WYHazƂ$ !"F&rߐnѢjȆF4dL6'yD@3*uԪY3q DAްH)IXV=ayxqXeBCTkS=4E DrEDO ziAMQ!\ #RQI[*"ZAG{aD7η\OA\&1ąN-YA81N<1韙 dQSbfĊ2'T/dREUSE.FOR4 L/Z $<1I*C0a2S<H4d`J!RTIRTR!CT!r"Xd C(OXH %K* 9ID}b%N;dU&Y)FfmO  N4#MQY IA[ -HIŨ8!RIM.FORR4 L ) $<1I*C0a2S<H4d`J!RTIR4qH&U\%8 BDc HKI"A]"&]O>#O 1lVaF}{d_w߅7^y H16qDzqiNv 1L0F 7 0F#xL@8!C8` 5Ԡf PF `0DĄe# 28U7d`ii$5$"R!%T`%eY$]~QQ'Ef J`kPp.Z 5≣W~z :a>ir% DǩizkGjI2+3zgU@\ڊMTW%[VJB dZĦ jfqjvrTB ; Jwk -+^)i2sypo'6%# opK:d000uTADATADATADATADATADATAŸNϝWTcٱ0FLtk/̐ poHR `ALA4qR='I1`,V H(E9qR4DMRL <a 1ÐN^y) ShlX#+b 9k &a[T@t$S,hN,d'd' ` Yp|l3V&HHBP8ԍIPLdF5w0kEm~HU2L1ű$sĐ5eG;lP]2 `@1!y" |eX$\@FߑG5H昸 bLR$D ԑ%`Lj;.0B&I ,%mڨ@$WWh+ PR7 d$R`+&܀v;p9P>KA2vJ!-:2$o[S @W˹ s>йgf͚n$DˉtE4|' /S&B)zԂ|U0g=AABþ)`rdteRN( UKʀ,p`SNcG<ʃy n`5]x) +YFYֵKBc=&>8 3cz\;Fc!KYL;V5mϱ:࠭}L/&e٤2%3}2E機3U13&~u[[$2.*+X=7q4Hȋjv@`M/K46zV;BrQʼn\i_+q6L)WCIMon߸#>A SDor6+a\] '^_w+͔,<"A4(yL&2 %|߯'.Us+( %h1s]$G~me&Ox+ YXi5y0`qV[L^/:ru:[0÷ڄd%ژqP99&u6W~Iq]g9ґ i[]պ5&3&udI@w@O[e"Dqr"IlumZ6)=e6#m+ͅn69@SoInESUpBAH,T\Yd Ҭa{`=2ɱϨѾs[k@%h5w fC_(p;*&UT.HGZV}d\v}FC)8$G^ 7ݫ)bF"#UaJ "eONp8?ߌ,zymBk~t^UAF Iބ!@4(S3p8a_Eg0aޡG &^[8,<ĚF! ;x7(H>9Hr~^{037 6{˨Sο lGoĀ=Ddϻq~u]Ip붜7vH 4xQvWb%<Am&UeX'!H5ȃHP:t#oqs9@4p$""no7luk5RP#ri\} (jU& 8LaHL;H !P+{C%r".BQM9@`O k5%UVN;[GY`{5h^rhR/F%.{%DA&@}5>CT0 T>E?,S◱_yuY2 b]- ؒki 𸑍Ygt' vt)CRR({3Iv6Zqm)rycOaڠR/}9rSu@ W'K#?:T{9ڔK!RIJ&!G YN!)azvig&q57}#rH2Mw & 0ʤo ژUXR#S'*ɘBO6Ħ҄êzQ|y)+7Pݩ?6Ҳ=Q}ݔso ҘwZcjGDZu +3 ƥL3ʔ?]16ٱIU`t6RIMCOM.BLK4 KHQ C( H@!DM@|QA,(%ID#OPĉC'TH1dHSRe'M[k/^[}PA[jeR@oӵHN1*c\RīԽoˀCk%)/Ϳ 0H`ݤ,6@f#8T%0eWH_;TIjV´@'*"sHTJhI!pґ1* HT%) Q>>HDDHyXrCQYt&!BIdq$%ǁQ 6(я$CIG@$F2 (D1#{4BҀ"3ِMƈ[RIMPTR.BLK4 LH C( H@!DM@@ABXPJIP)"I&)eF I'NzlId000}/P&,$!ҦSX4yȐ*RXTm L+! B)AD" 12 $8@Г- *EJ@y I&BHTh-ZЬċL1%)F< E&0x6VÈ(fTS"RQwhg9Rv2%)Ou:"aI#уt(U=Izu⌭A 򤣏ng"G'~U WE {(REGBx32G BU0qq6rLe qO AaCZ' ʼnQVa[REA  AHg^eBTʶUWqG5Xd yRX-y &}RIO.BLKLK4 LHe C( H@!DOD(0R8! #IaXd)D@JE 0٤' $y0P#ˋ DHDtN'S*L-f̢& I:9 N`B$JN4Rmj!ƎC˪gh1#сRIOIN.FORo4 L4 $<1I*C0a2S<H4d`J!RTIR<)H&EXH)2d"B1RD 'WLarJ $JaRT`B%' *RmO0AD]]cW0ЭO[>k3jC𚰿:DGЕD^I 2Q\.!N@\@Qղ } I/ݴO5 S$rD .t ȐC*C1řfk[RIOOUT.FOR4 L1 $<1I*C0a2S<H4d`J!RTIR<I$LRdD",T1bNBI¤ 'BŅ&KN8(U@y26DɲI#QqBI,R X֮_PlRD):BJ2f HSJ*H@ѓ4mJ!ҢE Ti"d핹Rgk=9T!:2ٴ|s׵}6z@ăUMɾ0@0k!EQILL+piӧ:VaPT WYq` TM* 1 U8Bt2aA1 I‰ X4 ( ED 7pO ^a\.8SM=QTԃQ74PT1%QDEX! شaIU@8&<脈 Zn9DNEVTIVgftfX]RMATTS.BLK4 LHZ C( H@!DA@PbBXI)C0aI'U,yd T,h )ITRDb(EhMT(IS.bSRJ5Il*H&\•'D!RpjWM׮VM:TRMCLOS.FOR4 L $<1I*C0a2S<H4d`J!RTIR )aɕU\w}ozB'$8}Dvw}Aa~3tE+gwiB nD6vvk !:N∍n⳷^]}xʉW0=#m#5"ew\R?8hr}9HKvIo5Io%RNUai?03ڗRĄi>Ql^"M!Mh_"{Fnbi{HQRAOjƓ9x* }wCO("pK{ 8&tP\7*G%u\W)UnZKmnm+ U>*kֲ K*JkQcDD-*Z.em!SA5)$b `C0  Ew.-,P™,+g9.jO CN3X-"{I{movFU`YA 5`uơA%k"'Z֙P#Ix" S)>LR*ϥH HNzbeB'AM60:!I%J=@qٞ>J9袺0s eذPF*ng*$9+9]+ɊmUfd,fQ̳4S4p6-̎i v3Z I DgSφv&vJ+ҚP)lYVZ`n)iIBd|XJ}4R rv4%4Y rD@@'xA ^䖧'(O|[: NhVf[`u_ 'mD&L`1!7-+#npkaw3b80R7}1{ g8 +ݢDe*W6+|7mybcG3+zN4Bpِ13aVoe;7 cɞ\lt1wwf|pv)@J,9)E8 Q3Va\iahZ͝[_יT4Ռ]himY+ i?M-chWۮf-io;n8!6af7;-a T޺f4ᆽcp%j [r:&ܰ7W7[Ö+manVݰU]wh*9;l+on仫y3S ~ou-o$vN0tcӑC5RӑӑFeґWKulґMug7W,Ē55xIʷ-4ً7)[4y} N䕉⚉b8bǞbǞadґ nԑYG=?*C*)WyH  9I9I++v(ʒi`莪4%P$Şbğ2_)R֐  RMCONS.FOR 4 L $ $<1I*C0a2S<H4d`J!RTIR yÒCT!r"Xd C(O\JI)(E4 d h)I$Or -qBjDBb $ $M\z ͪP*M(Ed*H@ B)ڸ ld%)8I" u 5ȒEuHL:N8egϟ/ĜY!}ҶM<7ڈ4-vTpHQJ*p UC!,K!B%='AwRE> ݯ{,!RGEP I{V( F${H!{+5aS!zDM!^)'DG$wVD8T{M$V{8]^I=R5ɣzO\1{Dt} 9&9pgwyhh,4P%@r Ig$ExC Qy,H^{'_U~ J_zz`8,ؠ ()ʡXꗒh)(i(Ij)h)(EBKzQ1UieLhig:yfPEDQE&6I(XJzo,–{++d07_|o{G_%Cܱi) ~̱ |2=,G =>`*3Ȯ*Ƞ( +=5 Kuy^?saO8 _3r*vͷfxaskb r~JwžH^ჯ\,*&~."^HPpyCPlByGc)$IhzHRޭJQmṸ["^I^񔣋%WQ%y%Q#z0=![&+p>sCƚ!:Q4'Ky\AiLfSkZE O,aF7΀3L! , 9 顁(T $lQ 2R*d!\C I6P C6(B$N+la!V3xD"@kXTC.ЍL!Z.G'dDc8TH"4HGI!8CB>%K!K@µ$qB Fё{a$z>4H%9!x'U%0O2 laA.)RҠErdI P,0 \I&b>RI!JJQz̥ @'w)LZR(A;w$Ò@xE*3W(K #3pM}&.hLjrL! RX pt RXS6H R>)hLå2 AD<#*3e8H3 !d&%AP*D + XjT×a2qb'OA5O x Yjjz ୾28)Sխg^E( x݈^Zǹw b[UkP5&q \Rc`gȺjA:2P`+|XPG1,m%kL-\E؊ umZ >]I06beu_;Ndҝw`d%+L5!',T/){J򾪤bJ微Onvߛ] M-n ^6 L6 ϭs[dw$eB7`n# Q@*ҬP:U!jNvXemf0͈5%R3n=mBҗk*Sהu:@v}?N?؏U}UNw]UvJJ_M6}rz^+JS % e|/[t79XC9n"#.Z/1`If,֐\/LpZXt˓~Xck뜐v$IN_Ro)Y-LJNGMtuIGzʍ+z]%2,td> ztyCtb#sBUEM5vO5UYXKB{B@1`'QD vk `$$r.8Gv*,h@v#-HXDJk 0h;,ДD()iwXCi1CSQ(X) /]TɃ>9,QYC;!aZchK0)LOOyuѩ)uYv *iv݉H6~Gnr~^AXmƔT"9E^4ιI^pZ9Z\.|Uo Xmy✄K䦲n+Hل_ sJEl'rݵ:O*U@˨X8)ټi/ ᜈQצ}O(&ot!ql)LuSZVc*e6s D|8, T BefL7IYi=t'^w|N_`z':7x^n +}g_ᄟ`!ky^#Rҥ;2h|i=y+9Tۧh:V2e}%Po*K{bCZuRpJ!.9*PKr;#?V&lЀ`CwP)G8aOp !T 0l~sDuAshA N:bwH0ti' hQ;Pt'`->c-H!JaBpGU'jr?Og4~r7׆jM9gG- q!Iup:ð Y4{>xxIY7,(A C!ȋ>)cxSG ok3gڅ@p= @+W-<_{,11ܕ>GCr ~|ɲ-4!,vW|\wL7u#|mWl%xh}EUxD!]45gXx%T}T |n6EZ|4~4O(wH0wAC3w4w5#H6w7wDdr|'WwDaaQ04췁U@ (T&h|vwB.7ZTZS؆J`)laZm81u(B2Zl!b)"}ӈk3AaC1)I< #DuqPG Bw<C.q)A@9/p)X'o%2'8jQN00ouͨhH|،TH000TADATADATADATADATADATA(؎؍xͨRO -nh|1g@xRБ9+$ɍ(}ٌH4y&&9 t׌,98DIwF`Iْ>GOYw懍W~XX>H*SI*`98` (=``'ьr ѓ~bNCY:IX`44~i,T@LՓLғҙ=DЖ،ψ,,a'S18X`I2x7H`yZxZ`)`S`0Ƀ` HY`= M` ``' `'0` '@`YX`ih`yx`͈`ؘmIHݹi=Pj!بI()~i؈`y쇍)2+~UYzדQp,,jBzG,-GιXzIpDXJYzNڤY1 PAPCGɢj*bzo,jrjqQNѣXBB`"Gj G:F!VZAG BBq췊E,!i,I9O=@"ɪقOz:Y%RB: 7H HCÊz:z::ê:::ˊڪjC;J;z;S9D`GJ;SɖjG1BG%%:">;' ' 'jNNc;&eNJ 銰ؐxx2JK`LҰx *;)~k( k(7. B$#{ {ع][DxAi++1k ٩rw;¸fHuD,"%A'P{+8k++`ˌ(!jpʖkIyʻgI"#chIɿ} kڈRk )ҋ;)l5U5SS[K%lkX[*`A4l2Ku69lQU*tқUUHlk쁽+1\ޔCqXpWY^yVj.lN*Hn>W.(HH.t{ˁwYw{h^H>~~!!vQቂ䕙C㥞'^##..W~'*W*H^LVN@.uH'΂.R/yYYyGG?<o<ϰHOY>I?"I?J߲o##O,=߳>뮟_?/oMoM>OݟN??#/t *vk;X*>" ~"(B0Ϻl!x&ވg"x$#-N"X*~"ވ""H!䲛H-B;2OQk;$ӛ${{&% +䦖&jqAb.(؟+#U>R!*R">-"W~"W~5%vk7!r.*H.*"R~*`!;}B.>1MN]EU!cO>VƘ+9+lV="*E$RD"kƉ!W ~}%e}#XqA,EX!ӂ>-#䑬-xC\*ɥ"R.u9!hO7hR R>.e!䮵Zk!2!."+4+Ƙ[.%."{VgE!B,"B],%voxOTC9TC !^}"^#h=-_>.%>.-B.&#!1"v`xO#>2H*R(#OaƘwq7(&nbO 0s23'#03!U^%!#U^%>#%^c#h d@&RH9RHP KTN!.(~-,-E5]T#`ffNTN5-TsfN5g&|fO7|fR ".*c#FG3nt4# .Kt.&f}cbN-R.u)!-~xc4R&RMDATE.FOR84 LEq $<1I*C0a2S<H4d`J!RTIR9XE*)(9I"OP) !Lp8(PHdō *HNQ* +w( "KM BM54&SH(/[pĪk`Y}H&N'$2gС 6(ӢMxEbeYQB8Ram`A씢")LLAB;lxq Z>]5!ENMd'E3 $F^ 6@yPAУ{p~ChBc~XiJgy2DMADS.`EX`exiS["}OXQ !E1@000/߱B,0Hi&aC0GaD(QED~VXRQ%%^8Ԁ@_ie.Іނa>C B}b U)(vg{&F Z*KO , & I!ᐖʖ,juV꩙qDDĂ F^V`RTP ĄjHp̶6UUFCiRMDBGT.FOR4 LD $<1I*C0a2S<H4d`J!RTIRr 'AT a2I¤ 'BŅ&KN8(U@y2"*HLA)IW,a (4A Z!A0r-")tB)FqqɶT=$HB'Rdى J\٬^" g$?A.tؗT1b# :ԵJ(MhR*1A IDSTaDIEzIGlSLČ9Q$_1qЪNԠBPBl CAQ}{Ԉ)Y$|ze pDPk.|.A), 0x(h^%*-P*XgP`赉){iEVV]}X_CPK5W@c脍B 1KDy: zak]2A-a.Fk V'5C׊ 2S4*sJ= q AB,]YI#~+B έ (Yo]}PQ$C-}ǎ(2Y*UU[1XbtcF3|9`5fm8cV|R!&&c%O.j֦_RB(E,.fHJz( FYhu^ZďLCc F(d W&AeV`R .Y$ 0-.!` 0GFQdŰlSx']Yao *fIn{C$M#+,WnLET4I!Z,1Ik T~}ƊEL٬S"E1hP{S؋)^鄿,,$(TawD&E43Q( ,dR]/zƌR>  S~ߞg 39d;as=%M!8 'In7WaUw)O)Lt 1ñ ˆ՛B GZ7oB rd,N8BW@p$A#!ЄR)cԋN>XijHf"+NvڗzU0j  WC 1-/V#c B`L IDHԐ!D8FQtX09 f&;2}#vZiCV# *a f6UPaZ`;Pσ-.^tWYV*SX@@" wL0 [FkThz/_%JJExCRMGATT.FORt4 LG $<1I*C0a2S<H4d`J!RT000TADATADATADATADATADATAIR9HE'AaA% MZ)2 RX0)$P2X y„Œ"YR8$Qr*D.R B,9pHY Tɔ I2H&AXRWI"021.CJ!JK)I,rR #Ve&9I.`䕫i%A'qW{tŝfh(hLU (PXPDi1.a uY3ȊꂈGVY 1%QxLtɑLYK",|B ,TZTj8+"+* ".Y7ૡF hI.hiF V(&V*ddžfh"yy*mJRA0nR;Dq_LE߆ʱLrT>mr ,l*Ù |SAlcTfBӞR9ؕ!׬m5M<3D* jbm Iat 8D:QEIug(=S#:"C[NTCRMGREL.FOR4 L $<1I*C0a2S<H4d`J!RTIRR )N4)‚(Wj6Y3H&DX8 DT!CT!r"Xd C'S.$"Ia[' ĵHN1 -&yD,(JB W 2D+EYdE(l lPPy1g4%ŌA.+ ne"d}N2z .(W)_r/9$IoH#YO^Rw>DD -uwFa˩g{DB7TQTPAB FI#k8pRPlHT `RFQ%IбȄ SSND5UU"61MlWA%U:@PESHSV.NDT"$'4 ehUZU) M5YAU蠅 GQqĨ+.1B wi2`y>iBkVEDTŀtfoR؀kta=å%jX%P'yDq[:F ,j DlyD t=!1 -GRqp>BqȘ\i. 0kXIkV &ʚTe s;X޴ .V6+-0;ZPhhrdL* ñRAE loRtO8zDP8Egp%]DZg:jZi` Y 0EB@N&-JE\1EI&Idm-TAUH8x+WOܶbv}' UY赝(+ >ɴ,܊BѮē!ElJ k[^$5ʲ^i]qȽS˳IW~)D Э~%U!@]C qr,L)ls}Y=},N*i2T@O޶·7_$זE+φ9Ğg~z6κhqIAƠ~fA kPt" .&5-rP3L 4"x .mN‚8h$TPJBavE>'R2N)?A%KA !$ԏcF B0QLhϠs^ ,N8_3Z!P9$U*BB E)sB@7Gtg@QXǂ3H `[k000/#D 2' E)1c&xE-r,2 6"%M+>œs=f1t]PuBX?5sj#Ʒ$x &dP@E41C,@`$Rm }mqD$HAl} N-_qͥ@K>d@ )h+0N8Q ƣH(7`qPw@/OQzQ AaNeAI1Y N,d9t*1A͛EZ@PeJ) S000TADATADATADATADATADATAJuoRdܲwT )I yRj%ףI*ws%E|.>;yBP;O8=WU}]B]Ds9 &(TJQ߁k8I!~XD+^xBDwFUEMSNF#r8jDD#]=XM^eoDhuU%AD&a DwD Z1NRqQ`Ün$9[ dUEZ 1R[*uZWzZZ~%DP%oBDBFB8`Lxf` 0i_qE4IReVgUq IbװCr)0Tk6E+e~(Tѕ,ZJ:JjdX oV AaBQdyi&EpQ33[([5QomM1E^NVTTuIzM딿I,) `,¸kmKYstQgBwI!B'H'mUEvZ2Mmg:QET\0}R6 r{T$Mfp|.R(܎6H9w(| Bf tWBJPq*I̔'&PIr5 ͺ`r3M.B8@@|QĈ)g_,˹.r˼FƲ}'ڛ.;|Px ݦ-w)[ 'P&aĦ(-"(pR_1)DŽSbHB\ %h!-,M$} zhQRG}漈Wrd P֤z ACń\3J$$#9bioC@^ yVϦ=|ag@gbQ&P Db]uw1.oH?ދ[wX-,1ܼ8qBdn@ I"ŧ;ͅKfsa%`FP[)C pkN![x _HáEuBJQ1ESOEDu C  B"gCTP I4a^b9e x'HHES2~V r@D;{TPPrTI$QT , Ri` BQIœ0EBu[cn] nWRMEgWIŕtADYJed(8q mv`̀h +pyVDeQY!Uq.PIkDi:AO'uځOF:!O`I!Q:QEP+>Ab/G.Q`QcVD((L/)DD!*TP0> b)tBS3 |r+ Z!;/Km2*Ll+U=? MH.h(_VD Z V%,qJӚ,1Z8GsC8GjߘE.xzz@8.({<M-MtmN; к+ޒ UdDH2-2L/y^㚹ETn5-YL17)I5 > a7%\ ?jsaZr׼G1a WRfG8j qAO\Tz!`ʤF (H Jh7A$Pm/ W诉&P,1b?EI{k--Z.ZY1`/oZAji1d8 t&GUI($^2zKx 6J`q#G(!SWTdmĝՖ0(`  vG%kPhX0%NcKX>D-'-b镭%fY4Z1ԥrp=09r ]1EX@L5(6YE6-AL8FzƑ-&%-I,xe_MDtBU.:n f)C1uu _6 pLE"yI=="U$LdD#L2*'^YK% FyɄ+w--='dW&a*dԉ tZ0qxCQa+< .#cˉ"\jJIWε.q% ӕuoP>6@ 3gwnf%f:l,'"99)i?sONhJ(5aQbx~dS5<h;'z P,q;̿lbv:7:舘؉söxJ.|saKvv"M7Agס VB[5L֟m6:moVDq (*UBXHL@cʈAt'DUBC6&hdI,@xEUSY&YtIGXK7cUv[CRMMAIN.FOR\4 MZ5* $<1I*C0a2S<H4d'G(6!I I8lII8Q"'tNM8bJEFI -@X)"eP5f* $S@x)g DBaU):A aH͛BuThQEM"d_.u!,_$~=*f'R+A8I,%$9RCtNRd٦TXa:Ec7R%B&U=嬓#1F FX/J퐱O= sWrMD DBC@EWVDU t*^US\Y[ia!1cєRT PiIDRU-b \_ 6Bd7UAd!DRDtXAUpASDI0m!PvvțT\ׇo9AP1P[1E4QDaARD4 rA&D+ ccO^QxjYUNơD,&A?IիI!]`*ߋ]Jn: jV1IW>+] M^W+k^khQJUQbEP:c_4MUMq޶kvp4F$zajjCEj)hUIEu ꦙqJ/DUDerf6vTzPL$.fEGkWUeezQuDJqXO4}WinRA ;M!ّ[v 1p 0\ҲnyIbN81Ou}VPIU+ iۼ{MNZZZuVmwFT&  kŕD4\|0蒮K؍=ZO 8ai D펃s1Dk BvmM 6_ҋLr ܘ+2%Y\$Y*O_xG1ua;VR rDGHoBY,D 4eAҦ]5&+W%jSRPA 晓(a"E1`Dtrkj6ZPe) n<'`ˊfmtz P ;ĀJci*|q-Mkۣ|S/'>L;'J)frZJE/ 4hk1咜$Qޠ:-Ӓ˼#9ܧ֔\J{a{ 5%,spMY *$j I Lu+ۋ弇/jZu@6+d0F zAق͌5!dIXX =[W!Ќb*?$9Y)Ny]0z=Qd` C]2A]@9/G-%OS/ک$c `T(c/9:}@}d1+=E"q6#8&EDYQZ8gF$2(P(',b}tvPA Ȥb\Ɩ#M2IZT BVSM:0fIh[} Zrl@el-:RiZ{F6l1`֡K%E-90"wY"%k{9PpEsz fT9U$%--( D3E ՝7 't'L+W"d'^ɘSY7ڍ b][CWo[k+Z PNʶ*Ke\ y &iYID 5=+Jt6Cq(*8|#f >}bELCW+:Edo; Ln`QP$FR;#vae( WyW>2@$O1!yb\їB,rz zWl^%W^!#ysd7t:1)Gh f{Hze87QM<Df&w- 2EcEӄzgGi@"S*[$GTd&ixi`-&FH^1#ssWDwEM}'@($AwuGxї{TB-8dC_] '|X0gJ=@Xg&4oKt^^$H|'i%%A!>v@2GAXW<'q;QUtP1-_AX'q6m~1NRAr`/|kBØbhRth"!d_q&fNC@6W1$qG4ò'S)KPUWZ\T'P45][ٕVyNDeyq WQhF Fw _\{!9'pN7!6yUs z4 a-:CYbgDaߥFRMOPEN.FOR,4 Ma  $<1I*C0a2S<H4d`J!RTIR$ɔ!)}HγvV@`I.9|"Q\Hu=@0Plt2"r+@82A0*4gԓA8@FTHD{N$ABIhQ~MGwUR5DGGTRQ_ tW^-x^i@O::ؗV&5qBxRxrt^MV DdMC2IRZP q%M*.ua(- YA XIC{= KETPRL3TPYt^]j:wG)2Q{2āU\({ǩm6FjeńU@IޘWW\UD xJV: ~.+rYB^2HNe,,AC 2\;W¹2(. 2{ *YM{@+V@yhD +t.»M'Iڥ.` PC jgvuK+!Cje_lA$`Ư*.\ @1;Ȃ!1DqAt}r+m5c3*HWXDa"95[.j)W?jdѡ)9唟>ZN9q^KD8RMPUT.FORQ 4 #Mf $<1I*C0a2S<H4d`J!RTIR@$(TR ")(9I"OP) !Lp8)T$R$I VRJ`FB6Z&"99)EPzSYPlRd):BJ-\Ĕ VN"}2d X1 rT0dc64ʔ"R@襘ĕ$QQdHrɦ'P'(RĝTJ&C49tԑ[ۜ;ҍm2uy;Ӈ?AѧZ6~MA_YRLU0v`PW 1a!'tV#Ua \wqVŖOM8qc݄B Rs` 4ruBUFTC(Q)piCy,4z#\b*qzqKHp~}e CB$s ny X=]GXR X@I B f\NHԤ4a*[RabRF`r3Ld>3h44:1~[8@qQ g9N)/M(`"Ke hMKp I)}s0Aǩ8-, mJCf | 2NO6k^sd"yלL3 '%io%Z8Ä˔.F UWx22qz()/ c։P-QzN-N23R3T5҄9 !BAe+赌'}F̀ ے6f[T) @ꗔȐ(Q v0ٙhD3D+,pQU z]gW6 [m3dSPVJt"38f2̸Z&n} M*r%SdZʚ䦱i0S^mk"&CZ箜Yp#Pp0f(==‚b|xMgQjYmS&#|GcU958 h+dRf]uW$ҶS{$v CKQ%*r~([Ns:pva4 6 L' B$3 0=*ŭ15&W6_M'q000/" %\ rԊސ?t &*b E/>u޶btSvM3ÎA{c[ HWd7\=)mc3ɟ%& -Fk糛v_(vH 2QU2pӘݮ4X#bgzD\j *6)gaޠ=X^jJynȣ>/N^u]͔'32Xiewp˳?VmYL4/],,gϲά,==a~k"{n;Gt}HNkenZqJUQU3=沥9u)^+hvW;֘5gtփt}Yo?o +w>ۭ!&~򶼟zf n;Tct 1w:44Hㅡ .+7yw|-^+}}r/p*JӢ2a#(a2%-l*Z1ggbwTw%wqb6-&qr136EY9V;ZvsGU3s5tg.ϗ5]4>BQ6eDWe=~Ir7eU%uX%Fe&X'Xт#QYӉRlFlkH`F]ʦ#lTzk(SXhtZŌ2f[T\SzeFn+Ћ=emYLjTHG2j#3"26-:n+f^9Rmpa@mሏOndxmX{#wa҈q YFƗH`h#MHD=|Mh9&!%6H :\dAO]~GeG%7y7gF o0qYY.fR.)68u^4Q%,jn!$ RMRES.FOR4 &MH $<1I*C0a2S<H4d`J!RTIRH)2EI"PHID!LxJ,T\a!GARE 'S.n2ēT,SKp-"e #Ad=J#s|vR'h k+xo0wu\255޹WCLɠ6JJL~z*VD 0;1а;d5!Z yQWnݘǠ r uRgvMݗx06.*Ȁ{g@ 1X#38Q{eG >?x<_x>-sS\$G{f݌s880};`m@N2$2Q)"Tpz0٦0L } 0AnFH$@~,`b1NGJA!L3"΀Q ڒ O$Pia880@AdDт~YDJlPP ^wL8~:i$XxYꭀSԈDW`aB' k "'pH\ְ}|I% ʌa49H]Fsn[5@&dz{%7&:NՌ[Ω9u2%8#P! ج20.Sl^U3ͼ3bsl_mJl>'Q$R4 '$T: )KtHF;S*ԛE0'1zQNVjRu87jjzEIXT8JVRT$36Acj1:1ZS"!RMRULE.FOR4 (MG $<1I*C0a2S<H4d`J!RTIRH¤)W D!CT!r"Xd C(O\8@*T\C<`EJؤO)St(̯-Z6) ~-E'W8uq)CU@ɟ;S#ǕaA".L{62LEeԫ]Q(56n:] RMSAV.FORd4 ,M;ޑ $<1I*C0a2S<H4d`J!RTIRL bEI"PHID!LxJ,T\a!GARE 'S.nI*HN)ʼn¥O2 j%ɑI810)M0! I(!PlB#A=dI\v dJEҗ1hg' d((:HAfΝ:N PF{;g$S/ZwKd!rpzr"&ޫ~BRWx$M১/>%wGE}~Ӂ J`!]%IPŬ'p|) S@*L,&] c/Ci+5܄7xy^* %000TADATADATADATADATADATAщ/y鄆rҲxi-|!\ y4'%QҔ8LA&|4Dž ^!)1:G-Kp(Ky͋ E(*m`ԣIZh:.)_(U 2 iF7̛/)F OvA@&jC8ʕҨuєJ6u8Ԥ:q{QO_tҭ-5ju<%*A17$ѕ7Qunvd~\[lox}BeKڳFnTe@M%eu{WshAݭB!z[M`6aYPa*P ~eY7@Uάr{[b*d!.-]̑\yl|aؾ| BTpbXogL Tk}d& A>L_0nJI!$[Y|^3Y`/_4T8rmNN^RԔI&R쁺2E3ҙV4h#nuGSXJƋcRMSBUF.BLK4 NHV C( H@!DS@Q 8'RHbHF@ETq"*'Rd@ yҤ/4"RA )X4 YT+6R j瑓AJ]km vk/dXJ)IaHNPIrt@!TRMTҥ)0,ȋ+qbNIgS[,"2eqCteŮ=;f\ܔw&2H{#RMSORT.FOR 6 +wt4 $<1I*C0a2S<H4d`J!RTIRLHEI"PHaI&EpRA*,VJ(%C%0B *EPq!ɒdJ)PLKN@*H!'C,yR" A$]TP&i Yv B'):Br2-TaB ELҷ$$K][Dd5o̘bADȜ 5OT`>.5n# uJ'z} x"m) GpK)y'_&IH!-pD azY`RMpBJ?MAUX= SNքe^Jq(6UU"jH"N]_M!R/xCh%F8`>xB6y?SaDkMTTYATSYn)9 iY IMTW@PEEdDLhўΉDşQAĢ^ALD HVz: 5 1BI= D(X Mb /$)MBUyA'Y>-qGRDKID;(1)pvR,1؀v:{W_$tiqmDnWiE TKاJMyqܦ{ &C^w'nQ1nVaJ(0D1O.lANS6qGGE--q(,BQL2vv4*3gB2/*3u* _oSD* SomwRH ɺCC|_)s5D `z9'DU'} q ~g ~ˊuU2q@)T1 ?]A!,.-7G `ۺZA%[J2IbUBA plI0e'aƼ1 @# *Hp 0>N1SHJH`2HjZQP>n al!Ѕ:H!:(!(%@b*Q L":rKN-A LF+yLZ1p5ccA{p876KKan,pO 8L L6btOh#.'7gI͞3`bwip=3B6R\&-Ns@%:gvO.30Wأ]jbm]C܇dza)e2&$|g8h clx.*K>B8˙ /5rxpDrZ˼%aΘLLvfr:*lX10_[ OXKMw^9a'\Ĝ`96eHEy]aXIP=9_Xli[i 1 %{ LS(000/S <` )hRN#c{SҰ3>WO˛o1T:L roɒ'^u1ڪ}F DQO] Vˀ\a@2XD7QDo3.AG89s^l%cYn9/rP(3X|#7 6Xhfk>Wiwo]:1IskS|'9G%aQjPgP/|6-zX&,2=KnNsa#ƾD,|?-t% FqnERMTIME.FOR4 6M-23 $<1I*C0a2S<H4d`J!RTIRlRE*)(9I"OP) !Lp8(PHdō *HNQ* IX54E;LaR-8bʵW,A&M\L&>iML3P 1dHZ1`2RBiETIbE!-IdFKh=24 .ui)cϮv$RX8=AFD :`ċ %bXńK=ff@~L 5.Q ,`C@DeV 5JT~Ax(N(ȠEȂ ^hzdI$a! S%}%ndTTIѢNECRMTOL.FORW4 7M<@* $<1I*C0a2S<H4d`J!RTIRHdŠBPH!CT!r"Xd C(O\\* *HNɐ.$ B%fad"N:)HH2 BIStpɤ$[~ Ny'c''2uRHb4<@=@2ag%S qLk7,YA҇8uq`)CU@ɟ?~݄5rjjvq!޺]F G\՟-eqTTtq}a/ Q7^yc. \%9֞9D{RMUSER.FOR4 9M D $<1I*C0a2S<H4d`J!RTIRTRD $DR8$Qr*D.R B,9pHQ T K CJ)ʖ0>zW) QEH)r I8`"+\.r8|;TfBc֐ $$W&@p)Dd?>|p[@RU:u֫O׮`wQ*e& `l\+)?LI6q@}@f_{'CGHomd =a_VD!6 iMmD@HW' 46SQDMi0$]Ca9L'q=0nIDe|_m)M8I7Ke!hTY MTg=OApBJvMRL O@ -NFj([M4ل(Bb:CIXBZ Mp5NQm]$e{ޤ 1#P%aD'9QEB6i,U]xUQ0ADW5pId(Y@exDFēSD$jaAO@BҪRBk 5y 0!MLtVePZ\HE]IEZ ($U,@6>0͐1TgFFXزrA-/פg%05` =6pW< #B*S. \}F@paI. 1;]Wx?nyY+7S弝]T" 3^^^UM,,BNsP< Ԟ;.€CQɺ0 ٻ` -buG_Aǎ|W(W:C1 } B2gR4A*T`AJ RpsA%h>',A 4A('_ .&o TpB7,!QCc 3Z  f0LBф5 B-Hae!͊#r;c 8!1^D""*đstEQ# EBcPCN2K~T$.i!fo4C3D.1*Ѩʷr,EFQ.gU:R<0KZ=h;J9mL2)7:`S pz`&Fπ`L# F0nI ᓒ/ 1 %?(Pk#^Γy.Јt(D}Q`gI3Idԉ)¢9atPm KfRABSTR$GeA%s`DJjdW<Ǒ1 RMWHER.FOR4 HM' $<1I*C0a2S<H4d`J!RTIR\ARD DP" MLaJ˝VtRIP&,`"ɓE>ID!LxJ.0Yr @@"ʓ)B 9DAP&ibe˓XT $*,A8fa'^ R,ZA(a$(3d2󙞉Q9łs yTTm|*ŔSLIQ 6D&E VlvZ\.(['!DawmDQOw 0RD1؀2~$<^ YI]"KwiytmMHBk.w!CNNE@Ōxgo'!ZQTkK0XNQE.TLkJ,LM}` .{߿c*K4 /NKh_ͤ{ tR {f]'- W}r9 Jg"+L> n1_"x%-Txg&Ht$#KtHD%.+ T cHeR^ P&yo 4L q_B4 X :/-xeSL!E@P0` )p_$Eq1A hw -7y,B0"n&]<y f=A48Mo"wEjp?[g:UpH000TADATADATADATADATADATAj\ABo8e;` w1-t&6^d&G)BLH>1c`Or[@=G %$utrL֒b"T(z8Ju윈AHyU 0I 9& >A ((aS>D3`LTAJ0 4riftr6Y *+ܔx/-"j" C(qj>t{k9MrS~.*859H52.} Y,(2z NɤE\0n&雁+a3ɺX}T҂r LUźy(qdǯvKaP; P| 3Zr71:XȪlϲ.dH&2e> Z׸'{˭֊]735pYS- W-sZp K 8WNiJdeÎjMN5^7KrWU kTL{^6)f9{c boF; 'c{ڹl2I`rht1K%BܜfDݛ/tIVMf݊ ʆ:n6l#:F.q4]5OwE2 A-033<Y1yMA<"E@7QVN[hzU L$Tږ4`q&'MT Fh8he^PW8I`;|2m>tmkw:N:V܀ Ga [_hRGZ@_AbIN Dc/iӾC,7VKy)sLWpZEg\w:QpovϹ08VtF5Ih+ _W:F'P'uQ4K)@H([gDY% @XeF<ù~VB:XCNZbY{(XVwIӫlYño1RU~?wO _?Kݫ;C+ pG o ϓ&r]umu\4PMNv$k9UXVFu6Gvm2284gMRW>h)E4T3K&HvN}Oa~dD5ڗ4҂~ELvTqw`'W2^VTA66.v(Y!w|*xpRQ eO&BNp#a|(R,R+xHn%%uPehW$iy4WFaa n)ׇ3=~C?}}b>qF|#|GJI m!OE4@qumjiXK6ҁijE~%qLVXihvxsHux1.$J0Gz )%s1}Ud! [!A\ckO:qv(r[]I|ys&1w sEB#*lI^ y8( +(W9Iyr&!Vx#)%j$<ɒI&I;I\%M?iA){qEِNP+@4RBaWɕY[^ tiGLy8 iikWŏ5')rIc=iG V~)$) ]98jDi0㏅V<!V2G2 kÐTeUÊ a"7DqrR.SkgWVEAC }qw([,"t[9霼Id&2qgu Z8gu9@w~rTȚ\Մi֞GTF|*J7Ui7IPtgXjW(SG0P9Ir\l\|juԛ¥VaGFH9y461c%q YFi$E@P.#ahDϨ(؁3J;.0t Sx+ËUttP9an&R?$XX<}þ_rk+t#)fԹ efuRt{:e5+{L@{N^~!Lku1[J RMZIP.FORC4 IML$NOFLOATCALLS $STORAGE:4 SUBROUTINE RMZIP RETURN END RNAMEA.FOR 4 OM0 $<1I*C0a2S<H4d`J!RTIRiR$$pH&U\-qs&M5S)(V k4s7 k] RTc!XL(P7 1 y ?ŒHc93 z?CݶE.6L.~. sy GVp)] B ^Aa~}6#`Hh3Rٰ]ǫ(`Y,PDsNq;sQć{!$M̽J2o Hz6,UoQBTqZI;%, .A 4X1&t axЀ~dC ە»yf; 3$0r2Td1( W:)a[Y95OA)|Ȣ\,"; &&`aȒp"gAl\Ǿ1s[g3@# [F/.J42bk|BBIrӦ;my# $DE!000/9Ʊ%!B'[ǂ@&/ZJIHMm$s?\]s>.&BADR)qvU)Tc 5]3zrlnS_̔X4· iKQs-i3y1M\`&|BAzs)KZb5 ^1t7]jԩvrғ,GQ3P$a.,hӇ"&TfbE)#yvvne_K>IfyY>s4(W?ɤ4 (`Vt az pns*6r௰l,%2N调4!EY {[3"<ÖnS<[SѳOWTa7U2fEfVUZѓVjڞ oJKd,+!aAò&OhT*XGЙ2gqŠ/<4%\SmGQܮk]@<LGm*&)c gz[@a$ԭ7a7ފӼJ[rDA[EB )kyNddr6_E 7GusD9NJTK(X@`-6{䤐 |gB#ŇJ޻6^' 6Ø&* 8{yóg&@h (`2'MEy7H1|۠ a!3 V*)DZ+A XZ1 .[P޶-EXuXWa(^-ƵbZЀ 8*pcP umW[YlD6msr6x7uvjk/"(zR[׭ܮN1Z7~Yހ-ZFBZ/Kkתxc:kPn!ׯVmyg{lCu9pp=Vo/9ŻϬ396X{' -ynM8 9ڿ /Wۄ{MJ0?ᠳs$&,1[Z2Ԉ׃Tί` KS,ce)uM xk9pܖJk0՟dóCaJ{N=_q߂Nس1˂.A JYfZD}4@|CfH}k}9^3b7~U#ZDA0aJ#y}vVa~5JUhJc1 cScA:Ƃ,>3Pw%d&2)(dS$.8fx>e dH3ha*)Q.ba RNAMER.FOR4 SM~ $<1I*C0a2S<H4d`J!RTIRiRDC%0B *EPq!ɒX#H$MJ 4er0' b$RC T@e$EDU6#]"9) .JӦ&LC5uH+u"!W#l&~4BE ɕ/ß-߬nמSۤB鞒aVg܈mF "e' bHKUIrwsԠ7I2e'd|p/ ֯7(7!EDcq_` h@85V 0E4BDTD &aĆf 5O," 0@2@# Nx 4 C *"0H# (Xxe(E.Đ nBX<9DWD"S289 >^!ETГ[K&GF2$h `DRUS&]{:nVw~Y 1 q~Ĥ>1ĝLPr$6CgC 0 (h+D^T tX'~vb(+R, dj- 1`TH RHRlo4UUW! SUhKEQ8hl+ ^ŨRVziÙZi_,<!ZЫxqޚ GҐf+f(z2 :0k$ /ZR!S82ɚ)r/,3KApVOpeD @xSLarT׎BPC 9캫o#!1QZCR4It2[Y['aEKYPD\&8rх'N5,6OeQQqпFL/Şn< 7<9Pt QQO5'V+Є =ъr^ݾrTlAk0ҬO1RGe}c_GُF-)XK rVTIxbt v `AFx)"‘Dح (a2%*NP᝖g A"sPX p_w 8!8xy 2`'1BE"#O#:IBw9G'ԛC;wLS䙇m]N!`PP`x桧-DIDBL1!)XT`-` g$NtUE)WJK1TqM$NVUHlERTOF.FORRr4 ZMP $<1I*C0a2S<H4d`J!RTIR$AQJ#, "% 'UD +EpH&U\DW"KoBqXt^1܌QF;s%U!0申&{O 'dN9߾ڼRMPo.F G=o r9w,,AC8M!t`RFqӪFN䕿7M1S43. N+*tíQ>h${N2ړ.'8DV Uoƥi)D>adUR#RV;\jXln3Ip\Jj&mkSJ6,pi 8:Pr3߆B. s@(BL.0'l]Tky9һPP#!âoG39I2 &sbqju)ۅt)0,SH[LBdviC@E6rH=)-2IZ4 ְ4i,dRl1!%qHp夥dWH N`Sdnr9 q&CҜ. Pz<$[lt΀z{67tB]) a9]NA)d9A+\glFx"+@Wt_Q;RS}%ʐL̥9aQ\T6.VP0rIbhA 㤺2Id 'dFGqks fy=,uB.Wrם+H\0&r?M*Ą_n2L b1Id{kj*TA N_RULCOM.BLKs4 OH=w C( H@!DL@|BXPJ&E$")2dI'G@ B%F I'NzdBB)IH2PD8ĉҝN4AFLP՝E)H&*p0 :tcLeϦ]X'9RΦvͻ/ÏQ%GR2yr$ɐA @I$9EGgH mI&!Aede\ulIi B7o`U °p8Udҧ!œ}$҅]ԩrByA@YQWEpqTR]bJ1 J5ƒVwqeRK*ROa{GAg RULDEL.FORl4 aM^p $<1I*C0a2S<H4d`J!RTIR0!R )N4)I&)pH&UX8A*.0Yr @@"ʓ)APAd J$MJ 9^`ɤHQ*OyҤI'DB̢R*1LEZ@󤔖xgnuDU` x:'%B<ۇ*!ͺi I&edd2RAE&!k%dOÒ.A]?>DPx r=D'+%ۖ0כ5+wL? 0eFt77VJs0G$&~iQUԼP=fЉA' 5]Jm#!EW;}Wv2wV!UqĭJZlV7.][.`)ldIQk 0[ASPa(B p3HG ^Rb%]8x$D d'v47y QV,Pg_яRULES.FOR4 cM- $<1I*C0a2S<H4d`J!RTIR0)a!LxJ,T\a!?A$*R(1)U j%Z 0yr$ɐ L@sA btkǡP $!, $EUwaa6~NC.8p~4EB7߆6CdDhNJ[kHDS  btԦ6Q11dF[x Mvo%oDhCc2V^X*tMBS 9S dYĢo ϫ 12e3+SELECT.FOR4 hMAQ $<1I*C0a2S<H4d`J!RTIS0)2C%0B *EPq!ɒX $S@Y$ NLjdʕ-A yҤ T".9RR2OҴIDnu"sY(! oYB1RD}͞d q YJ=flH >r%KIdЄcۜ o!>{6 I "OLݤFʙ+B&Y*B4%L@Dm⑧_D \7 T@)`~9W 80)4}3 U`.P|އ(T%a}.xCAR@s]ER JEWW KQwe F(RX # eNxN+Of0L4 ]1N HR0m9"QITBcfɑBkeNLD`Dj D*x E8!$VMti+qgW8'0E.N&FmLVQC[B;& 1B+9-X@A*,MDDC8J:@ 0hIea jwke㖋FyvV qJ̟iEt&9@B~ЁPC %Ce咤 QNeu\U/y:Bg XdAtў9[b8*r1Я8>R|Bl )Aw *rЂ}ybw~+8<x}3,rZӉNb+ fNEt^0}DKN < ;{z) OZ)_HWazͺ.Zvzo}}ؿ|ϮEZS^'7י/#@ P~O^e69iN[xE=M̢sPJ$B 4E)V&~$SMӰ%jH@AS'PYBX#x^K؊ B>g rvmq~37?p[!] f.KBU$a:1Y 7C|Ő1Ԉ}dA i$b3C@r:# ( CJ>♞?\0IQ (x dT5a"'ݭU+$epIT\XHx!0` RE$^" #E&$Pc@!|.b &30Z "u%"WfGmvǔor"QH: 9tS}ɶ ՞ND*%H5*)TSF@ Jd#)tPyT4U, M{T)EArSP(8TOBmH+T$X/gB`(N\%:: Cy+Io(U-P# .VSYP%BPTie yF/* SELOUT.FOR[4 mMۃ $<1I*C0a2S<H4d`J!RTISAIRa)(9I"OP) !Lp8T$"Ȓ'#V1bjԓC8dEH) In" ȔDȓVV9YR"&XAx`j <).B:@`ŌNK _C/,޾A8Dc%Q7. .Lvۈ' HT'G1BC>8!%3)G.Ϡ)n^N7:DE81E\N 1DBLeIvI=eh@PV;_RT<̀# 0 I 2×li+;DVQKvqZ R WH Y$MYGQ~e) F  [hIءް[y񠨿Hsl&H[2P<5Ȋ08/2aTю7c`HVSuBU.AV|6 POt$,ϒ4W&?Il` FHefY@հMnDʰT9^ntQ)U[;[1KBJu{tK0q6Mykuv`Njm(l.Ρv)*MT,B|ncm/31@kў !SELPAR.FOR 4 tM$ $<1I*C0a2S<H4d`J!RTIS0D $T2ɒ!CT!r"Xd Cn,@I) B,yȓ"PJ )IĊJ!I$)B' L, yҤI'mE1]-IɊ$I*uA0X*'ǭ I*P7\^1xEBDϛZ߸>]%N@ G@uPeR+c=]o|$CosBݩDv6pzՂ$-9KX KW6)uAA -.^J`bz'AFn΋u _FD,[8OCA!H-HRID⾤%NN"3'E&A:JJ2o9,[EZZ +GKq]lH~% )2L2l0Nl4ybFs ]//TGA;v^2b#16f[nhwMZA>ȁ3z]U $x- S__//i;<ˏ}cF?{csf;{3('D4)0)`vR"Y"m1vpb7&nds"!Bh7Y^d&1D+a3)L' G(yM@%UdjwC7mH!]#dѳmN_`GoqqJROpWd[-Q">(.xd+'#8dKW6χ5H-8!!R44sM8 Hn#18R"+V(`X-fGDLAT"Pf!3QgkA󆉣E"At(T=A6(X-{Q>)YX"BCѣZmH/Qb`r8`5؎yHJ4~8RBe|loxb}pm,a(_KisgqPVDP4888ps$)H2HQq!+xiyy#Khm` Cp`gB9(6@!x!ɎCCJD9ʈ/S8G8S`h!paK7d )OvO2P!rx|?є,vm{UxARWT-2ɦ(n3!-hdITBXWw/j).c E vt(8IKH0Y381`˘[8-bg^i铦Vm>o/BGL 9823Px.I9Q1l*q+%ȏQh )%A/Z/~65s闥^924pQG"#Q%lXmwœ )nW"*F`f_A(@,7+Y).SELPUT.FOR4 vMw $<1I*C0a2S<H4d`J!RTIS02,dRŕ$D a1*U"0*T ӨSg8 \QEiN0A(U$ [ZL,.oq] )PR1,x`,DtPSpIWXC&JU`aÈ%^f`u*RO0A8ƠcY5MqvR7EV$fe THѣ}5h%b:A&{ K Q8"tTN桝 SETOUT.FOR4 zMt] $<1I*C0a2S<H4d`J!RTISH$LpH&U\Aa1JEUSOUaX,FŋPacHIW},脓V>ɄC6"$p'58@IQTd(pՃk12Xpwњ%{5ȧ@PJB ~Z 8E'`yfUC D@\U`:qnyR"OyCjVrd݂˝FI̶6V mwǖ$|AR@~TqB [!"SC,AAOV/K|.\'+M B)HF~ PaL` KTTxH '% SETRUL.FOR4 M $<1I*C0a2S<H4d`J!RTISPRC%0B *EPq!ɒ $S@YdJ*I@)䤔"L&y$!EL "%K' BdRQHS-Â02`Ŗ>|OӦTЀOQÀd`Q!mR0XL4aD~wBH aa{(:R)5YwWn҉g"rDMK`F%RMqP(d D( 8C;W%2`)!CRDDVibYDl99J[?IADI@pgpYADFRy&]Ž= )ffhZ&Hz͸ڐ(Ɖ[BZD.QYi#(B )؜mB 9ww[98r(u)M%& %+ N\¢9Aif@jNhJK9QEBVe6,BOPi>.EIT{VJ,NU#iR]9L%}JdE|۱?@ 0ZW享:.e^n&fJ&oЮɧx9q9J{lB \Z.)Iyzqk"&{Rv%,J.YkJ/5I ĽDeJ‭ܮ >/06X]bOc\l)j|0 㢈D&6/p},X8Z]d}j#\dν7ݧ<PA\_ V!e%lP@Mf C+Ou t]b  xČH}YqBSNqR ldq!VҒqgq~1`dyuRIN=ْEthҁ2Ч:Li' nQq Yi%EQ$)jG%ѕŪ j6&]LFi)M. 0pfՠi9WڹY9@2@x X4kt{PYg 0VWSRVSD6DSR!)GkikiiU\|[Y/HAUO &XYIfsiY;kDO|~T2mYO02̒K>[ Bm 7|+2SiWc'Y 6͐ DbYAWAuRg+{/xt4:߇wڬ{RQ%/A-GD *C iB )GDmT`Ο &a5 yҺvM:mbIܥ.`Őcļu9^)jˀ7+ Zu3wURٔd]~vZ.?< _b!8~Sޘ'k]9֞6B1%Sg'1!-M()(t&bNNYhM pkLrb|]* Z4B, >/ vͯlzI7dt~iD%ǡ̱$uH8ǁ(r’(`K]B W` c7ELqjÂĘd-db 'EH"S.gd&7Ncs>X 7Y~`kc9ۣ#)Kܔ89nwL77H,dF 7FQax,Sv^;5$?f4;S`c!G\C7(/âԊFqy (rzċAQ`2,e)ꨥX[EIN<~&dnfkń $&IiՂW.:ʟ xQP U!^2S 6ַ.kede.Tʄv'F|´.fRK1Zdi!g^P`Py8BNyb,*STACK.BLK4 SHz/ C( H@1A@\ BDJ BihMXI"O8B)E`IA@20I3_LdȒK.A!F SʒJ#ENFuU@;~ I$yd ZH.i Y@<1SPt kW#ެ| C$:B7 PSTART.BLK4 SH) C( H@1A@Hq BBEJ" B%# {d D"C$[d۷;i>|4!7h)*d1C ;Q!BQILYD1 !CC`DKyQQZsj-B&a ̹D.ymFBֆ$2,dM#*`&t`jt]Ii%JGčV>Iv1Ã=ܔӓߡ LBO*ɤ+CQel[EY)SUBREL.FOR 4 M, $<1I*C0a2S<H4d`J!RTIAaD!LxJ,T\a!?A$!GQ,@Ђ&aӶÌE4BDT^FoB.tB:옋 W 5nC`f >QQgKEHarqNjxSP l ,6IxLW+ [Vz/.oO~\,͑[Ps-`c%=\H U [JRJ.B 5pz>"18i- }HBt+r%/C!:9>΃^uQޙkZ'zL!>\1r~QO-I57Z3Piӊ&OqU=6$a-5/`wSBH'ހDLB Xֶ+B5 yz[렸$TY`@'*lHH0S0UhWVhšQg)"@Y›QLXȿk?8^ WEx`@d%ct* -P0.wXF]+(d)i&VK./aU^լḆ9հ. f ɆkexIP gy !(zFQGqFuڽji|ZA{7kFWe `uK8VBhpZst>I'2t Rzm\ά+S= 䎋ѡFl.-3d.{>d7.]~jD+9d&+s嫝\`f6~O྾6my~SA$Vnx{ؓ[ v2/~̅VÑBBτ}FpHdBWGQV6۪WKY^[$^12w`WcwOY$troDq&7gV€AG2=2@/3Wi^qxz&#lsqrxĀbwsjVvXpY<5oBKIC,6!8)i'%',)), l2mÂ& (Dӓ͖5 y=r<2YS@90W >A7nN)KZ"!ͥyHHÁUm '=$~ĕiUmXCS<Ta*ke6,SG0UsQ<8TC-(yHYHLt"PU)D@6saSh]؇j8^6e+\TW~Ǒ@f6#a&C")z"7:IQɞ=Tpp&rR9p.F~,E3gϺ"̭e)ꉙ7:Ϡ3;$œc)Rz#tATenIdQ^{~ghT#g%pTRKOd\"]v-EEUUgxZS{A]V(T.N%Ńεq :&TDC`E'Fk1іWaUVrKɖ[`$fYuWkd>QRIWvZfMՄl&: aĞsFW (~I&a@M<̀B ])EXކJ ,  [llUR$)'AOb=Dt;DDD@!=lI]Zjr:Ÿ* oAC4DŽK k+G6{1FDDRe 0q3\9FqO"H$ e+h0g$W%;oEDG<11ܰ -O 4 ͂zkCPj-_6J(Ȱ6ē1!GMxLr[=>aE'9 ])I"}:*e&=Dfl,8qD^EĴ2N, [R-ٻKa +Ou1t} bGdAx%`~AGTE+ iVz($A^ 4- M;Ұ:%e{򷿑ݫ4-x{q2H4)o)+녉\"th4 8CXBrDiIP:]Lڠ\f B $ 45 R&;WKa}ֶ"hJ‚"QۜBD4bӖ@$BHNf5ٍk=Y6&(i1F?plG9&gF ᰈ0 =I$Y2%m$,k nEIy/)EЊ$Ĝvq \sCJ(a+# G }Re$%$CT* X,0 /^Rxa?} PJZa$2oIR[hP0\l݄9,SdAeL,$ISJplTeWr- eFiH(ftڰxJE>KB< A(zL簚Ux%B,ZD&4!0iZ9tU* ^xEA 2EJP` Ovdq;Mu@͑O9RilC=f8iP7d4jwLR2z oqkҥ\f&׮sfZ^Q#Z Z7##%^ pXU.q˫yAK(-{]`qSoLs`LxISWCON.FOR4 M" $<1I*C0a2S<H4d`J!RTIS y*F‚K#,JI„H*;{&)%C%0B *EPq!ɒdJ)PL9 b*!<"Ȓ'LD9J֭  ܒ4 )T)MNqI!H@,)Id+J"b)ETIo'.l`A@a8HՓ႐X6)Y@lk'iSFrAi vw_N:H͒K@ЎF/ :ITa֮]S R};aQ_vIhQeDǂvR$I ztIF!!XERbNU8@W8k%pF[h\gNXP'9^PI(E 9F_NKTlb%yYnN$aэ3%F $ Eg3tS V 80ÂpF/| p947TUP|2!s9P~3:0q  5>", d7?*ßM`*N1l ^felR} 0%yzyBD3 Qh'Fi 8fvHPt"Iߪ0C*nS$ue5K8dycG@,%V`Ǟ-y<[d  i2F0!uU`)H&NϓQ %W@24ʊ4~H2V^rmwAfY>LePxK`BB d1keE""{yAgV1gSWCOST.FOR,4 Mw $<1I*C0a2S<H4d`J!RTIS y@(ALaDJ!,9e"+#pH&U\D 5T&b%ZٴAQzy'+$A^{'-bP|e"C\Ut'IH>qֈAm(^ofYTi"nLELSG%U\SEE8ABBITDxClM߱D`WHI(H'ED"&P)PDkH hJ%kw1Z&PyWMǟdݖiu QtLTمjȡ^mD@q`[VgFIv``ЦOiB.Զ_Ua%tKrI%!6IDp^ 1QgVXdmD|7fg $IVRZZjRzר FѬqkZʢkeE^ӺGR-J v o&!Uv7Я 묹&sVl"J DdSX>?Qp\lAQ0nZ~ĕZxE9R:0nE5UU ldEXpq"ɒNʶTtZgQF! DD BSմzf}f݅RuUtXmo&ro7\qXSwmI8 iǝm\9vD8SWFILO.FOR4 Mf= $<1I*C0a2S<H4d`J!RTISIR*F‚ *PjJ)2;{:)y3FHlPr%"8MD!LxJ,T\a!gARE 'SN(H#kLDQ[ l1d)``$X[*H@eRՒlrw*NlZ[W% `# $ήCxs;Q0"An/E1e!Hf1f!I*SlbA S+M}Py&΍pV,PWLD:V]V$AD mt Dv1Y^F%(ł [F`fO9QEB؇|A!H0nT2zD@ Y-p`m%vAkMdS'9D'9'E "]fԘOSNURD>&_R4qWTnYp$tig"^٦A<dWx>d%b«naTxa CMzXfb{,K|>6,9 So1^wrEND|^g*R(_hėcIPp,cfVm IIB WK<@? lb 8Y  ;b 22|&Sxʄ^e:8CL ̥IVRUYm S(\Xbe@'1.KGTI,3 u+|A]I5 1O%Uj;.s B |N%{Pm/ϖ'OUNu}.nτ!|Il'8G}?^s;3;\Em= %LG,ɛ&g9Qs>nZ> {RdYZ'm YJ6&oct?yeMW@@@Ѕ$ 9})Sh8MOY ZW4F=%[|4lInIu 6̄+fqcg!@{Q^§~3I7%(yb H?MXI`_BQp+ Fs8(cθ=量kg>2X&?L@W EL x`nO7D*R'<\M6Q#GJ2{^bEH B{iQ&f(\e@SWFLFS.FORh 4 M $<1I*C0a2S<H4d`J!RTIS42EI#II)Cl`Ӧ !1*F‚Q#MH‚TIJID!LxJ,T\a!oARE 'SN "% LAC&2J\H NL89B *UdnniMt~rҀ "1mRB,$H k# Bl桟8 $$%OyPPLmV !t>i[/G~rNIBRz#чdMA\DUT (E[NLy,b 4_}dD%Dx}1aFW"A 8тxY Ian[p]^prR$Cl9RCp/^000-0/U4!`]DIG!qie%hJeRPuleDQFQEQT_1R)q6֥W09_%hǦ6m4M'9Dj  yEE (V\Wt4*]&q%RLlWUGY DI<;`E꬝]׶MBF+BO\hI1YeeYg ;..EjLK)dNL[;}zyf0 /l6*PPl1EHNfJf+Ek+,>vwcVx3ej4Z]Ajj+jjSz)ٴL*WO1 <$ 9+NEjG't31α-*=D YH'1$ dVk&nwUysE(t }J9$!u\_qA'F@a HA0`#u:i.2ukd3ѲN\UA3$i%'=N$HjsL K0怚dzdtIPeqebS fO6E3#hnj>d|H)ɋ hsSA6sq*/:'g3&5 CcK4RAߩ# *Fȑǔ$I)9'iʒ{,D+Ja|.W%pɓU-2` QZl* ~B% :kI|g1 j$DDqF{b6@I`(@tybS`4n:6@JcqK .HvՑb%StTJd(ZgX%rZ@"_yY戕;'vxrI^^ ES{УOiYrM-j*{V'3AQ?;ZN \ś; hz+f3l(_ÚЦQ?N7=KyڌM h)+S sdn `6k(WtqȺwNq6$(8WlBF1ye/7M18pY%1yl8+4#CCaxusbj@U+Mҗ%tTO|K8Y|Y#h}:\NB_pK~8paX7T]gvuU$Hop:QqȌ69WSWHART.FOR4 Mz $<1I*C0a2S<H4d`J!RTIS " F0a!J̙B1RD &HSJ $JaRT`B%'*eTlj)-q+,Z0eyI&'`()@L2F/KT`*@aR0ədf&EEDuBRm@At|'%RoA} tـNBO\a\y 7]X1 }NAwNDĉ-@anEwSv(P!K) C ? a\2Xć8BcQ(Sv39dE&qOƗr+JtyuE`y xkgy{5Weul)I~!QğSBOt$TyFYR%] L&لӚ}HE%^c'e,剂vY]):#jAgh9JB APBp,IDRK5Fhы)%D},*էGD$1SxL 뤳r:gr$+S 0005TADATADATADATADATADATA1`+m +2내TழJW+xKB/*߶F(Rpŗ%vk C 0cIUOzz̉Ln wHl -Ѯ* vs@ ûZ\! @_ -t :KK3W K!(I ѧU`J҇=݃-;2 {l](!-(BQSE1C  =1 0'*e)sBqU1ڕRdy14/M/#RrE 8nbN.S-|k{=c>$Illq r k p,43[;@_F4" Wj<~#Z.m3; ^0 ؚl0q}K]Ts+{KB=A HCVz@ E qP"%@D}J/<щP &F͈5#2_՟, ev K -1)p 0pZ۵Čݠobˡ %tL  :J ADTqkw1rJN@N1eGf:sߒ WvYK*d S2`)gȌKLY)AǼSN^@T1AeB=0MNj3|^9 D\|D(!OIೣB8AMPSRzH y [h]P O̅sAoa.񪄅0,*X V 3Ve 2`!8YA[iFŕ=*ו5?#@90;zDraERv*a)Po+c9Ւ^Z8\f2 fjO>r6]xT(6q c\b9ɠzR @VMq|h$jf = JCYp]j(`l Y6, :&uPq .y|IAG0jI*(9 {6>t rۭ*B lrz~usQ5vӭ5)k]Tjn\gJZW8ސcTvȌPv]WKl"p.+ U"&ŀW̢D0a^n|F1^2ы+:,¸ R ew K -XAs 0Eݠpj 0DUJ@ЂlKK@ Y/;8l4&2gJ^. @mxX,r?+5AP=nzR23rPQ䤀Ml䑀j~eFܦOiAdeA2CRTLLbZlܡF [S @4uh9L WR3`+i T:k 5}+kL%%99L'D&>j&KSPMEKSP-U*UY̮Kw+ujت@* t\ ,Ll]ץ'ƚPn4@% Mmr'93LyY|8N&̳dĤ7N䔚ZVt˫6 h## Y V5@h\9B3=+;J7`* ?&t<'0̍Te0 M3 eo4KMu򓝞&heKOr7ȁp%v7D)Z{zUgW{AI9zhrP2ZY^pԣ )ZgF3)J[L*\R[̒ƉPѹ'g,@ꂕH@hTϺW:kmݩ@q0sY֮e*[=lXb=3b63q W,C5Xz֪ ?[ME)aˆW$V'k&0.iuZlڵlv~ G%ln#QeY2׫vk80{`%Cb ҋawq>n:T^pBELB QHH bЈ޸[hPZq!CSWICST.FOR4 Mj $<1I*C0a2S<H4d`J!RTIS$E&,`:ID!LxJ,T\aFD4)dJ'N@4A#E̩UѪ(U@y2$QN"ʏeQ$J$I#qB+$EYw n"Q WClRF.`@ '*8A1ǑA4R2 I| BqO) !w1bc}R/Q{}ywcDM;erQ!%pR"R̔'jަ:yNQ?ID*hxᥔJP C(  BP=D (C ,IB ` إ%Èm!(V p3P_%UQD@!:UNXxɰ$^8/e'xDP " eIQaEYk IeWْQ&&d&ᢡe Lɡ 2J*A:*IJRJpZj2д_0p8$Fb A* V&4,Xd . %KVR*h 1 ,;C1`UOHQvgTW)+Ħ-Gٻ(*!K0: o 0K._ܯbr**1/J\)onl'yh Yzfˬ2/ B M ch1GCR7"d^9kzr5[?ӪVyU4QMDUKz镞,G`ubS^D@PP@gzx §UJm:,:yڒ߭f4ҝZD{fR{RWwSvĕV He=͂,L?mb^ze=Go?:ϑ߀cWƱޒg;:%I6Jq]U# "Ǟ@$PaBJܟ:ǥ%UgT tc:Mi^T>HB5O_oCH*nh+ !SWIDCP.FOR4 M1 $<1I*C0a2S<H4d *E,Ja!TnM񡠠K)C ,0 Bfa yD5NDD<٢2LV\ک\aE($G{|I~xWZ t#؞h\ߗ 2A[Y(x `"H]&DNqI8vPz'_qD'WOZfq G(D,L1DP$^cN[HO dBJ&Er.nVҠ'DnoH{LFVe 0ae|G4+1ЭBi&1gre5[g2lɂZѬ\I s 4 LĔ1ŗ ,.ŰB5dOEUYFvpsD<3e@̂ v Tމ ^,d\dH4l g%\B6n+ʹNN5WӠ5 :{y"}El:ύ7IN=6b7Y -JCD$,L}'mL\Alh*iMºo @`~vl"8343y?t|-hh?b%3G&R9 j+FĀkK]f74—p }ad$%p֛ 8鯀900ЍtRfXBe!YZSWIRCP.FOR4 MĶ $<1I*C0a2S<H4d *E,Ja!T[ytSWSHEL.FOR4 M6 $<1I*C0a2S<H4d`J!RTISLAR &,pH&U\PDpbRM=FPhт)4LJ. nAG5!J8-{DJ!)=K->qGg  _ M/ %!C2(4M'83VS3t-t<GTb>SEGܴŰs #0 1#N; (r&.  JB.}W{C fs(]-=wbߍ.ɠ|7 )È䌧P9N^/܏Kv:g`%5pF ED ]3 /G(.Fc\Nm42N"`.0!=;n\~ʃ`3?ڼ{l{>  afM$ G(B#KV>,y[OKUD!jeEIhRv:sF:1p3" vH!4CCSWSMFL.FOR\ 4 M!8 $<1I*C0a2S<H4d`J!RTISLiB*Fb %cpbLzd!"CS#X6NpBѤLBzEI#I(I $JaRT`B%' PL9 i@A<1F@u2DI|!1R!*ػa*HD J*A,\H vLAR$33b(U`D<]gN@ɍDdOb)nPzQh'V+7i[Nv_~a֚fEK1&EuE(W'A$1ćݴpʡDd$pTL_#)DP(7PhB]QiO(ǙUAUX=F߆Sނ hID<=bD,g$n7iED W焎N0ŕ%0N18$!E=H_ %hRL6D_ŰWMd@6bWIm&adVReHWgQabt)O&fWU4!LMVD &Eb,`+ A;*2[BlIԵٮiQWZ*z\*ziQeVcIDjg$]ڂei1E4s6X ,|ȝtvO$"XXh.+FLUTF&_elD Ua%c;{qXMi_[V[a Id'1󶒖T齑V|pm&3JOD~劎]gи_ ;և\&벍c}/.ЉyhI` sto4NW+ z.oJXvv7 p#o lR2ej6`@La -u!-Q5" *ors|@0@z2҆gAH&R@A r5N9KW”) a(c(N0HW0Qq200~mF$a^9IAF!o[vyn*Ayme`H2*!ԇ((n:qAaި=dTxSҎ8pFUEV&+X"(K,&AT /wT.-KezbD/*e*ʖP4$T%G(IVeNl"I|IӅ2 2X F+p L0Ԋ>)=ӘY@#DYqx2c(=ټ!B~ͦ/YM[ݽ*N@QW*|pF@37䂧iTGPbpd1T"R3)Syr1`z͡IDJJ-ά-HB.X%zdbaUbRΆJ9p|>=m GI-Ā& k k&e>$]C _0cF:Js-r^* V RMP+2 3Rpr=Tf[nh]f;GeX|NC RL[ߊΧ̍eu2t#=-hĀidd);_)c0Gq]{/< ^ť5=ߑ<#O;_9KfJfkFgtvl V`jg yP9h xcyʞ}W3. |I,VK βe{uw &0F'+7 CACw,;+W_{a!=5_GWUIB;ͤP܈y -R΍mmȒP?F#q)@@La -R!Q&lhf%}Yu-QVܜ39 Q"alȯ{bF 7A3 bp-vQYJVҔ)` 3)m0HAG=-u1yH?pc0C)ݯpmr KvbP@Ԭ_ojKbFv34P`S$ oً`(g C- נ#l>3<:Vd\l7[rAobY89%)Mˬ] M$j)VT"=՘q ,\*N-y73q` $W)j&9#B_ZY6VӢk Hj h; L3.rlP Ԓ RfrvA): GU!dad庖+& "h~j2d#SLj9 24 eW |L3_vs#c:!ySaq6-Re^·ޔpQ`"`PHQ% \w!0FBDOq12(A(T(YcKwy>մˎ[}JGQP@l ;):65NE줤;NwXxޢjY l⫸'{KrMdjM6<8+]Njg7ӸwqH_j-u0AkZf $UECZ<_|aB_,FR%'QG$) #9,x=/ۮ+f_ /:A6݆@n/2[`3r+]@=AO%sKB =&l|n"MODhVU$PGSLPb5T&S2$oBhX/Z#̄A|拪p!J9y)8)nfne_tFLkll i]m'mݦFmhn6^6Y1o"nLee| SWUNLO.FOR4 M' $<1I*C0a2S<H4d`J!RTISTqR*Fb %cpbLzdR,'0R P)E(i$ "Te!CT!r"Xd C(O4L DYJ`# :DL)yIŇQNIc&aSbѹFxT])I!`ha%DM1Sf_RR!t1%ÖDh4h^ RMmdeNZf&sQUQ2+ ;je(fX- If𮊖1VTn/&)zOذ5E =`DiĮ*kW,jO,%9 ,CC 3]MGsFTus']]IIh=CP%1wR+ӂ嬯s;?MuI9c &bi+vw"2 tpy4Է|.3[2IB njTc;VbB00+uC{>D3JBIhQT'([OXoE5}\HBVHQN.KVf? X 8[ G5FP]OdZpQzәu& %|]Hp  I *2PvT 2n̳H`wS"e$v A Z@; Nbݒ NV<H;`).Alf7)*y2;M|H.1Z2Ǻ 6k"iXAWb?&+mt6yQUxřdcdS"EavhiUy?S(1o]b ɺu P$FD.T$_85Fsp<*zǬ2tw2000UTADATADATADATADATADATA MoTrK].ʍ0> A3 =8>֩,7[5D(ح P"u0`*G2 ޒB;5QAιvSe 2 U!$C*Ge2;51@#Lnt)?}$ZC u*^[@CP@F8ErѸjy"H stȾ4%% [Ȕ#T"20دTZ¨βQmH V5f֓C'*HkW(=Ѯ$i*kb`=E"6]aqcuY>$oGNOvSWUNVL.FOR4 McI $<1I*C0a2S<H4d`J!RTISTqb !U)"$AJ`fN',,B#X6N(ys')E(i$ "Te! LxJ,T\a!oARE 'SNBЄEOL,BCLQRb\H Ic&qbթFxT])I_h^ahOBU4!M%Fg}I$ JPn 8kP[,!uٵJ٭ρ[^&rQeQ3+ ;je(bUX- If01VTnE{)cPl q?-vWcJr =`D通B+˪LQ3z=-cE2,=D1Klam[ZW^3| b]b~g6Us9_ &a.uJ2 rP7wq5zkWx& E rװyӃEQŗ$)I1Nxu ,k]弪센l.E@E8(kQރ~[g_9 ÐTF?b?i$Gu$jDŽ$hS9IANZkY# WS^&0-$BEo'.؋? I'CqUψbb2;OޢH3y uyKAPcħD(؎S٥(yl*E0a>&}U[NH$`nPľk Kb2>`KK"LH˹Rt@٬C$)]F$ XBi}>LsbaHOt  XDh) Ⱦ\LaICMRG12XQUXLHnq&Oiџ7AEM$gYsѝ:J+U3-ӁS"퓛 ](8gҜB'p`vrg+I(WLҠɌL{PRRhC(U"FL*nK5b ڲ!,\{*4VG 'T%2krS=t:/M-dռ&LͣR1KBhXdv(B"UvYaF&0La֦GeTʌXY 2AdPJvʳdeYBex8gJg$NDL8eT3WVɠQ< +[I@;8X zD)^Wi+z:Bqu "T9, PPb5m TBPIIVnu ], 4\벵9XFͦ״YSKU (f YDZE ߎ§fWuNx I?X (V!J`kaܽf(XqMՋ0'xYL 39\bʈS  ";Y ΋FZ eI۫+KlA΀.ֹp1(;e9nIDDAT?J CifH() ђ@CF2P(mx҈U Fa?$g`Y| SWVLFS.FORa 4 M;* $<1I*C0a2S<H4d`J!RTISXabd F0a!J̙S܌"M,4B*ec!U)"FBRU0!CT!r"Xd C(OADJ+LAf-L<9e" a% lO2)$ T6) $"ŶK ųG@^d "13)k!&A )y,db9RLٸIܼ5u#L$$UW^dMa\DUT .(E [NLTz,b 4`7dD$)y~5DaF "A0 8тeY IaQopiD^pEsR$l'͸9 7|XEB6vA{( _V҉&4tqفx`AVEITRQJUh"SMipW19`HeI(\Mݔy'M&+(E Rng)$$^]wZu8j]Fڪ%LrWūaGY DI@{`Eh[w_FYA@@Iڻ-&0%tuND `+ ξB=ĄUvYfX Z2YLf1iMzkEk[BvxifXH:sr L-vAMJZO fsJO9ٴLJ:\򼚩(P9f魸VҜLW<ޓ!CtC@gLD>_J]B=AOrՆsbYjY9YTyHSImD@6A+?7X9(5QrMCc}+ Wlߋ7O9S8^ R3 v:۸N!JK G\*ӊF1N ¨J [ z-UI4R0{fBU s+c]P37j3LA2)*3T6! ZRETK2* Fk ‴81&3( 9zbE+;rZtUΐvd- P|" G0* 5$Eر WM^xG1E7z$YhGAb c\TMVő@b 8h*;[qHyԜ .SK:nMr Ip|1筸٪@b@ӉIҒZzht9gdN:SLl(S&tRKE'n\E1 KRQO (ARz4%U)P PS,'O:B4LPA4I7Ժ1(HO&TƱD]JDʨԔ= z`Xak[AVc HUd1;=9$(]2N`6qUl Ż=֮^yFhAeS-겑^N`c+v`թh3l]A \ xH&!.ڟ`26Zoe[΂ Dֳu d- ^$Y>Pwb)?`#/ Vԛ=@_w@ŁVV*viMTaZZ e3ra&*HcTĮȟVv2XkGL\Ou|S Vǰɱ*S'.TTJt(000]/RgX6%tgkc#)ngKU;OHu49Ik oXhW%a޺qn:F7 ),"35P#kK>?^8A" zg2Qߙ@Gy9fѬD*cټ`k3N̗@aL)Gݗ}B۩]B&'A rjS1zu(/6Op(vI5t3;%+)!yC7Ыdb #At?I̛f` }&Nu4+۬gL}&.M# ,.*Ztk5t ,jO.ߊSv fg @~˞k$Ivٿ8m#TN >rި_柠'6eϸܣ`_{ئۣ[d՛H%1 CdGktAq;+ gfUXhx"v#eJpi+'v*&\ }|wo+oJ,0rPUUnWzW:v֖fVC;SWVLLO.FOR{4 M!S[ $<1I*C0a2S<H4d`J!RTISXY*F‚"CX8$LX3$)(9I"OP) !Lp8+PHdI)yl)S@bh-L<9e" a%$AdR*H@PqC]1%لU,x W ʕE y\XS&1ՂEdPB|=Pw%XcۙYcB'E TAI|Ʉ UEhW&@D Y%K"!!$M3s3!˶GF#TSYSTIM.FOR<4 Mt $<1I*C0a2S<H2&HJ)F )B")UHyR G.DED))4ARTĀq[BJ#8E#GUTU@*(UtdIr3'ٝ=EJQJ:tXdUI-_qd"BD Hɸ3z,ɓ k79D*H@$J)SU0 $D#UdvB&eY/M4gq +Ipw.HqSlvJ'$;IM1DIHD:}9YTALLY.FOR4 Må $<1I*C0a2S<H4d`J!RTIT2D!LxJ,T\a!?ARE 'S. $!G< %"S>ezRJ&(Uf1I&AthMؔ2E&>|sRR2E'O{I4 lɗ_M6إ4 ̙g'$at~O4q:ĵg4T1bەc'eBzנRu@l4PHL@yW:Hr!Kч,ErȓO<H'N|d>1VO'qy%U4!o TCUS-B}T8Q CMNE(Wm IzMWMI{A$ 6GEDQEV(Tb'(Đ Kd)^P3&EL@ia B 0@r$a .c&n`5&5@xOPhvn©wuYEPY 0顛z j Pé(DNp&o^F`pPR^WqfC,ft THQŧt lo@XZx'ڪ QD å9TΠzCƒNfH Dk`N5GMá +#q{/ުF(8 ![ ,rjC<SL53qsČHѹ]0D10(*mOXd=,TM .4J3=g2DIm*\kIU3 2T]e@CM^ $̡9 QAQ.S5R Y. eї mIΚG05 ~ 000eTADATADATADATADATADATAmP2{wL J}ISXMߘҪ{P|Z KhaN>P3Ǜ?GHw( sG+a1ŨOc`"X@Z˓ 8&'LW!P!K{ Q^HxXYѽ7:ʍ|3-ogG X,hlH[B.&dRbC)+,g&yw'IRLREAݓ—T7M[#U3Px;5:P cQ ]$m`bU,Gkrt/QVx A@H\Z"G^ٍ;x v(2*_3 up .ZSltTurnYR@PzJ'!cFzrŌ;*$2'YZ,2ȑFg:b=&W'Z@b"PuAM &tRz\ok9̱;]fׄtY Om*E!QpK7*mjԅ51k T+4D8YXH|⫄) /%"lXĦuFBɻk:Ϫb riR W:*DХ oq|`a9rLMRکfgkbzRdgȄx:f\@%ETEXT.BLK4 TH_ C@$RTIA@ " 'F&iJ)Sh)MHaĐ'L)Q H6iHE,dII&,j2 Q&,t$ARBd `y k(E.)Aa%YÈ3XSI<"13oКpmԣYs;j-7e19 N)W-Z5˘3'5v'AQY٧P)H4q2Uz6wZGՕDvDA E< D= q !Z)P=EZRE -@UPI;hLX4 aQ*:kC:qOu(Sy0V 6Hb"QQUEpz \ 蚂N0B&Uy8G!b{T7[$# KJMހsxXvniKƄ=_'A;f8ZWD#h^{PNF%Ju+8TXKNg x(HIXʹzYE8ACUNDATA.FORi 4 M $<1I*C0a2S<H4d`J!RTIU9 LX$2 )2Wfaqe", 2 'A<$C%0B *EPq!ɒJ)PLH6e DJ*-hy7E\ Y*Stf H nV9ޅ ar0'rh1J!!"X fּ؀*MBf$?˭L4j#YXkS~8t*#A -XAO)?so$S[(Q$ I +I wፇDyH)v6D]C,Qe000m/DSL&s=QQrIKaD]1[Uș4SQMU'HqXHUB.QDWNH$܁F R" U>ZET%VxrL1řIy N1_iUanx*I4^rIEPzhv5e0&gRi@n* )3%aeoLt 2 QTV,Y,hIXlADQAݴ,0i,DTB*Po(ٶZī{Q5B "KEE䚄 Q|[δR C .P ;e1&dPbMb@#Ԯ ЮC,܀@)B 4o.u  I,I"WĠK; 5lI2YQRDTʼnGǫB)p*^6i%^t%+C GllR>x \tR$x39 DzRE>z5}64Y=f.iO>!^ʎ~?.踴脛h:d.T($.8%w7 __}/A@&D/bE[UyJ78#vOwpXd>֜5c/yF4]}X3޿*j7JT~@S{s \2}N oۇ=@<5wBPwweZWBSN7"{Fw}^Kq]BW2XlD^g^8T_(U1]b|qrk#i. i!uw`W{ngiB&C hj1K'j~]SFpyeREp1rXcG8l!gG2$%jՆ{-.>hHCB(4b`Q`mFPk6$3HIP,.]&1'7~/GCq_}[F8TVXj3M6;LC(e+eE!JVXxcP n71HSS32?uS[&C@ܧTa7ab?R@91R~.tړ%8ŒUxDۦ?HxHR6l I@t&uTD~] ItJe"XT e}(3 W,я؄6wn&sPU.VB{w1A552+"!7bAG!.5.!a~gK>X,ǎx@؎ @De9_(~bGTfjRi\54AvYr4IgLxhDEDh!W$'iiSfIKhaGSty 42=nb@wYAixI] ߇=`vcXviԞj@j@JahEtRM/rsp1Hz2gXF.x0s=[u"h#GC-On*UNDEF.FOR6 4 N۹ $<1I*C0a2S<H4d`J!RTIU)b LX$2 )2D"1X0Ad N4yr RDpH&UV8A*.0Yr @@"ʓ)Ӧ,T\idO"T)ZąY J2EZH `fIZ!I R(ENRcC6*YN4RDOvr7kزv9:]# ^ޭ3A y O)@o$gfO*V'HQ5VYE6DY\a Y9qՂ[4L`U W&^ Ia }1Q0"MX7D (DFQ2HPE8Ea;nEEPQrER`)V,3) 0nd@AG$-l G)%B 0  * 0jԕEE$EC@ErTDU$aBEXx CYܠdJRh &:+IDM:Ej1QRIћq=óoYHI, 2ert*H8͐I5՞`D,܀_˂ k7-e KTPP˲ C OF R K@T$\ T :22sK3ļ YKU.919$, P>=mtH4Mc;f2&W2W5RஜM,А.4+AL(Q;dWSԭZ nV&d\+jZ Aj< xHЭ]6II»\SIC 7˩QXO n_% crV)$Ւ\r/9.qRTxHҘ.!7 90n4.ÿ)N( 1y <Apn`2X1pTG񤤄.{փj)yo^*fPE*UDkVq&< 1 PCX=N+N7$r|=)'zʌܖC@aavHj'37MYI!мhs2\)YwU'1 T6<T($P]^P dRXYԹyV!jd֮mV` ӲYW̢he?Ur = Tcn+)e % Tn֔WnYh3|w'g)&.r-uvc 'VutA"s3 Vn' m!_7e Ί$ *YM-Q 7`4!3O򃙼;ߐE-W 1ae v#dB\,\;.wTlAsn\c.F&Uk$hF/G`906ɫ|bp37yPz`^%IQ(V''nLq~ayϰ/mN":+ l&^~ip}Wtm>-q3*01%,ϦUNLOAD.FOR 4 N= $<1I*C0a2S<H4d`J!RTIU B!CT!r"Xd C(O\H&A ARdȒ) dqB%OTi'Mqbvٔ+4T0d# CL$R 9*JRBH"D\ MkJ"p+E}9/Z(LLARX5QHJ!L4u$"=vsfMqqݎ\Kk bH)՛c~`E</$M6 >n*UP}M"1!E 9L(C30n hЄjCзR 8DL 0G%dQbS  5J!ËEIXPĝv}b ,XD1tDm I L |5AIU4!9L@ )] JF4DIffka&V/ / ՚W셨 5(9atKK0T%5 Got 7s]Ƽ3lN 4) #*|oc/*O+'~);fT}>+$T4uFtGqGHS9'1, 0Dm7B7-|. 2d@ؐu9QEGaWNxXrYY`^D +OLۆ;RRy RB_J(8B2֞3X)}v%)Œes,e1DYL}ayH4v 0fA-2n] Z+$}7 D ' Cnv8A_5:.HihB,Xpō{N|nɈAfT]$@jϭ{nAQ:!eyu EqwVc'pyw_R0vytI ,Ġ\Di$eI(Uu8FypbfPTD4EB|TTE(ǜlP@RK/4S^.wܘ?)AD/reCD]q 'q '1 B*ơC:ơDJơEZƇFjơGzơHơIơJơKơLiJhqqq(qhqq΁+$@štZšujšvzšwšxšyšzNDf=`gzpIJkZFuԌG:hUTT!NBVARDAT.BLK4 WHQ C( H@aDR@qBXJ)IaR!* TRH*PITG^H Jmт aW$I(d9!UH)b&/ ;!q-<"@ V\J錳M)Wr8l2n#׬b(ˍ*WARN.FORK4 N]G $<1I*C0a2S<H4d`J!RTIWHqI&,L$#L)(9I"OP) !Lp8)PHdō,TVQtRT)%9dN ҤP)St8TdT*:l҂oʕeA RD2,L O(TL!!ߤl殚}'P'dhҥH&EV5oDz1wS $1 .bq  dhxP-ERaij#D $E ,W@ILjVAEq!%gutuw9Ft5q].ĝw0%q^z# {'>u}I(pJ! U8o&y(E f*⋐0Ì v 3lWwy' H4SM|2~1_xh 1I"  Ã3J(Z%}I_)d24zxW% mcAr -Ԭ]%%U|y6bw0pCz|c %X5] ~YLQC3#1WI(ntSI4#\Kfǚoy{_' 9|̋Z(Y1%A Wj#V*5T7@{c1t^oA2@pߡP⫬q'!}qfцj!ZM} U[9P<1h#1]%c^}Wz2g!n{!{"Ϩ0)x#rGv':$:,4 :**U7` 9$JN&@!DH)]᭩q_xZa3:ʀrY 74PeF뇝j7**A(* +"KAPf&<(G@+ЊU h2+P>0$[2A6T֨(‘ZILMA{ $[q1P?wQ;1$I}qх {6 -qh$@S# $K,#A$U VZt!*H ?WHCOM.BLK4 XH < C( H@qh B"2'MEc^Y\YRWHERE.FOR.4 N]' $<1I*C0a2S<H4d`J!RTIWRE))(9I"OP) !Lp8(PHdţPB)2e $iR%K5TqJ( )eliI $v]y$$,\B1L6q8!A*S~͜rE000TADATADATADATADATADATANj^^<䉓4Xk(Tg\TF$ID(9k~¿GD={AAk1vi  9`BhGK4U-T4~TVɉ94tIԄU2EE4ᒍP4'9 %a DO2O 0@2@Y H-p1`FDI 0W1C>]S.YKء9-cLd RAEjz&aIU_cNDưO ,ACN!O+6FzNK"b6K.ӑ0]^2tefY"*]%VBTĜ 9( OwKS&B )XP IDKO f BB域:I U|ZU37)-c`?WyLW!0WyFȫޚ$S+ :0G]ƩFRdO\ŸZg97`)Q9ŴodZdtrtV; H,䐧i 1c -J61Im_NoJ|ńXN y^Y%19 ̰Ó?qE4ϑ(kDgyGt^_5IJYf IqZ U\BMJ"g BխQmG>sYL\HASiy_ԴG'u N[05 ̄A0Q Z":d (Z~Mj.Sf0EO$LTg9^ C PgR"R 4x IB+.7]BNG 2Xh4Ҏyy#%F+^tA\0)fScnæ%P9d͸MsWqB"" :A3""Ć , ,kA0Y*W E򢂻 55=f _ \FpC/{iP%\4B84zѨ1mntDlA 즊U^-D!0Y;}$kppv&^;왜%XKV]Y+.܉U pd;a>&ʭl=uƩW,\ h [GJA$;c a\4""=냩W)%W l&ËCe 0Ֆse `^]JMTH X擬~r~Jag,|@hAcN biaLtfJ 3%"` 9bQ&6JG.ZHvJy[lbGt %RPlDiAh܀K2 %|ٌep"|)#efQald1p?_;_b)X# wY j2rbɵU7ECrO8΢K(QX#u$!LWoD04FkgŰ w۶ʍyGxКȦ0AxI$@Ys +HvulK@mO- W)D#P*"^!N4)kA-7eկTn9*,1jyYa=sd>R_?M?%xpHq(r$'aX>7@NV;Hq/#@(CdDC6y&""Nx=hY\x z!Ro^r T@'}rG2 gO؄g= ,0s)S1s_hr|(_wz/!}Fqh]u5P__K86Xn2Q0fr7xaDAV,F5w[*ZX\Zd7.6R.hvZkx/vw"wmwwRF8x#xdCxUextW'81pxUaJr3a%Z%4i+Vc%vs!X8Ј1Pk HJ8:e4`&fߘQ!d¡b/yVq g GO3oGb'~c8|N)-]bw/ABKuTmT9h<krfHrhhzPg{ Rv6A,C2Iم8x)xp\ceWgvF7iC3,IXmIFǸwg Qxbyx֘mmlXz$'łJ6dE6/t[GYe3OSt59TT]Ld]sLSLLY7v'N {(O(OOɑ1rKMIEB(Pf%c9v{Lj؎;FA/@Ur[hdr""u4PG&D-86/MQZv@؏QNU/ԏ}Qub.$S@Z9R2=D083Z Z# DT- EHAY#04a)p Z?e)^̷$Xa$$Z2syَ9()J-J{`iNiNI }V |yHO}H0Rv!H$h_ _a$h?d,&A@htHR j1k'u)f9Ho(6~I#wg+vuI.-K%.lS);*Gt:MYar#$c3:SfU&j%(UUZ:`}^z/ƫPcZZzjYlꦑ"tzHZwډy{ЧYnH!TGNp3E}pe@P $Q8oqq9 jҟhta\zJAJ&KQ1UZG`z!}^8q L:<,%5emՏV%S'W3lIWs<#6S"x7 H<8HeѶRW2ua!,,j,ySbZH7q{kp8GNe9HX )>;ec;'+$>A' (pB=W!pkxO*!5#,RsQQ%WHETOL.FOR4 N*a $<1I*C0a2S<H4d`J!RTIW!CT!r"Xd Cn,@I) B,y0002r N,"-z2e)M4i O,!1iEP &W)*VPLg @e }\A-0%E(Y6A$LTar*02D+WLy(h62¯'t=YP"L:NHirʔ=>>g}Vw|&yϾ|v)I@"%$a ,PD.B fQQNhđ(8!O b 8eQO KhB :T "$RAb,jG1Xcʁ Y17X" I`7OdUXj$g_Y֘\;B @Cb2Uw |'u 1SPY[YPt1 UFp9fNe䜦 (G>اй*I. J@)e!f!QR^BJRZa^T̂@cWfb/2%fag"!L,W >fffC Btf*:q 2Ȼ҂*R*0$qZFpqǘ[pWRLINE.FOR4 N@ $<1I*C0a2S<H4d`J!RTIW0)y!,D; {F0?WQ$6[SC m$T.ITE,*}{_~(GQx0FITλZp83<ipp ~2.v\)t!_zJ¹`- BJUD%,mɪuZT7`$1H 0!z##he7g7 ABIxu, -}Ȥ1Tᄊ(ZEROIT.FOR4 "N"ZU $<1I*C0a2S<H4d`J!RTIZLBE)prȔI¤ 'BŅ&KN8(U@y2)CID'^aɲӗA*eҀcAH!d'El 7Mu 8ҤF@\hDIHN%J x38?s$D 0,1fCL'I]1h(emT' qB!?HxHR6l I@t&uTD~] ItJe"XT e}(3 W,я؄6wn&sPU.VB{w1A552(/* find vol name.... usign funcall 11 */#include main(){ char str[20], vname[20]; get_volname(0, vname);}get_volname(str, vname)int str; char *vname;{8#define FIRST 0x11 /* search first */B#define NEXT 0x12 /* seach next */8#define SETDTA 0x1a /* set disk transfer address */int i;struct fcb_str{A unsigned char fcb_extid; /* extended fcb flag */A unsigned char fcb_xxx[5]; /* reserved */aA unsigned char fcb_attr; /* search attribute */e; unsigned char fcb_dr; /* drive specification */a7 unsigned char fcb_fn[8]; /* the file name */ 7 unsigned char fcb_ft[3]; /* the file type */ };/ struct fcb_str fcb[sizeof(struct fcb_str)];E/ struct fcb_str dta[sizeof(struct fcb_str)];n int j; fcb->fcb_dr = str; fcb->fcb_extid=0xff; * fcb->fcb_attr=0;) strcpy(fcb->fcb_fn, "????????.???"); strcpy(fcb->fcb_ft, "???");  bdos(SETDTA, dta); bdos(FIRST, fcb); ' printf("\n%s", dta->fcb_fn);  while (1) {e! i=bdos(NEXT, fcb)&0xff;c if (i==0xff) break; ' printf("\n%s", dta->fcb_fn); e } } 00345TADATADATADATADATADATA $ set verify$!&$! Build libc libraries -- runs on VMS$!$ build :== $bin:build$!?$ build -ax vaxnative libc:*.c -o libc:vnlibc.com -l c:vaxlibc<$ build -ax vaxrsx libc:*.c -o libc:vxlibc.com -l c:libc<$ build -ax vaxboth libc:*.c -o libc:vblibc.com -l c:libcE$ build -ax rstsrsx libc:*.c -o libc:rxlibc.cmd -s [6,5] -l c:libcE$ build -ax rstsrt11 libc:*.c -o libc:rtlibc.cmd -s [6,5] -l c:libcB$ build -ax rsxnative libc:*.c -o libc:mlibc.cmd -s sr: -l c:libcC$ build -ax rt11native libc:*.c -o libc:tlibc.com -s src: -l c:libcA/****************************************************************a * ** CC (C Checker) *r * *5* C Source Paren, bracket and comment Checker *s * *.* T. Jennings -- Sometime in 1983 * * * * *A****************************************************************/t#include #include I/* Very crude but very effective C source debugger. Counts the numbers of Mmatching braces, parenthesis and comments, and displays them at the left edge*@of the screen. The best way to see what it does is to do it; try CC CC.C /* C Check CC.C */HProperly handles parens and brackets inside comments; they are ignored. */main(argc,argv) int argc; char **argv;{ int file; char c,lastc;*int parens,brackets,comments;*int line, col; char hdr[40];c file= open(argv[1],0x8000); if (file == -1) {6 cprintf("File missing. Try CC \r\n"); exit();i } brackets= parens= comments= 0;a line= 0; col= 0; lastc= '\0'; while (read(file,&c,1)) {* if (c == 0x1a) break; /* stop if ^Z */ if (col == 0) {/E sprintf(hdr,"%d: {%d} (%d) /*%d*/",line,brackets,parens,comments);r1 while (strlen(hdr) < 23) /* gross but works */g0 strcat(hdr," "); /* to hell with elegant, */1 cprintf("%s|",hdr); /* we got a job to do !*/( } /* (real programmers dont ...) */J/* Dont count parens and brackets that are inside comments. This of courseIassumes that comments are properly matched; in any case, that will be thewfirst thing to look for. */f if (comments <= 0) { if (c == '{') ++brackets; if (c == '(') ++parens; if (c == '}') --brackets; if (c == ')') --parens; }lE/* Now do comments. This properly handles nested comments, whether orh/not the compiler does is your responsibility */ / if ((c == '*') && (lastc == '/')) ++comments;./ if ((c == '/') && (lastc == '*')) --comments;e ++col;- if (c == 0x0a) { /* newline == New Line */  col= 0; /* set column 0 */a ++line; }i" putchar(c); /* display text */$ lastc= c; /* update last char */ } cprintf("\r\n\r\n");+2 if (brackets) cprintf("Unbalanced brackets\r\n");3 if (parens) cprintf("Unbalanced parenthesis\r\n");e2 if (comments) cprintf("Unbalanced comments\r\n");}l+ CC.C C language checker  CC.EXE 006MZ =`6Pv4V,FʋF=t P,DD!3F҉FΉF3F3F3F͸PvVv, umVF̘^;tZF=tNvvvvԸ)PFPs/ VFP/DD^;|9PFPp/FP;P,F=~d{VF̘^;t vЁ(VF̘^;t v΁}VF̘^;t vЁ,)VF̘^;t v΁,*VF̘^;t /VF͘^;t vҁ/VF̘^;t *VF͘^;t vҁ,vց VF̘^;t3F֍vԁPF̘P?"F̘F{?P+DDF u DP*DDF u ZP*DDF u sP*DD]ËGtw VU v2F%1FF0CP3PPP!FV^ t؃]^Ëܸ1GVUF tFuv~vv~~D+EtyEȻYKKyً3x CC%CCE y3CC1W^~FuF]^^XZ^X33SS^XZ^X3SS y ؃πRP0CPSVWW^3؎W_E %E%] VW_^D %  DEËE E E E uE6E tm ]]]]E ueUUU )]WUFtF uv~LvvFv~=3SSSSSS_ǟD . t.] .]CCsCCtڋF-0@FFދF3FF܋'~]_" " " " WUF uv~FuFFF F~ vo[Y3PPPPQS vZ5Qv~;rwNNOOv~FFGGvFFYċF-?)FF1F~Iv~%]_ ܊o w y2y:}ĹW9Wu KK$t w$t$t2 ܉G_ttt4^XZ[YU]MQSRP_D3۹%uPPP8PRS3PD%-?=#=|)D-8yT\D 3E_Xˎ& A.2 UWFVv~ u y ؃ y ރS 3SN;w r;w+@N^Yt tu t؃FV _]UF fF FfF FfFV ] v Ìҡ+=vྀ +ڋ>>9&s 3  !UF t5x t/PV±$'@'NuӴ !9nvnX ^3^.U+;&v^.PF^;r PvX^P^ƉƋ4F uF]øP PPK]3FF输XvR~ZX uv;m~@3F辛!vX u3]ËF=|3]ËF udF=FP/~v, uFvv! Pv~-X u Fv, ukPvYFP6GX;v5X u5FP6XF'PvYP@vX u Fv, ukPvYFP6Xv9X u5FP6GXzFrxPvY+PvIX u# PF/H5v,3Pm~vFvFv4X@PvXvv^ PvjX uPvAX u3PvVPvYF uvn~sv\vbF]Ë]dF F6v0X u"vQ~$vƸ-F=|tvƸ0vƸ.vvYF=|vvY+3F3Vv^;|vƸ0rv~FF0PvXYvvMe~Ov, uF uvƸ.v, uIv<FF0PvXv)vN~v3VF+F ^ t3]Ë]v u%Pv^;tF-Pv4^;ƸtHF u vvF0PF^;u F*Pv^;tv 4XFvF3Fv0065TADATADATADATADATADATAPDD u-0PvƊX+V PvX^^ƉF.Pv^;ƸtHF uv*Pv^;tv 4XFvF3FvP5DD u-0PvƊX+V PvX^^ƉF3FlPvP!DD^;ƸtHF u vvPF uFF Fv~FF 3PvV!F޸gPv^;tF=|F=PF^PvVPvދYvP\Pv*P\^ƉF܍v܋ƸEF=|v܋Ƹ-F؉Fv܋Ƹ+v޸Pv\Pb DDF썆\FF uFF Fv~FF 3PvVF޸PvދF^^PvVPvދYvFށP\Pv+P\^ƉFܸgPv^;t=0Pv܁,4^;t v3.Pv܊^;tv3\PiDDF썆\FFF9FF*F FFF FFދF u)F Fvt4vXZTFF EF=|v 4XRPvXZTv 4X3RPvXZTvލ\Pvt4aF u2\F3RPvt4XZ^_;u;r v܁vADDFF uPvXVF^;rbPF^PPvX^PPvX^PF^Ɓ^+Pv0PPF^+FPvPF^ƉFPF^PPvX^PPvX^PF^^+ƁPPvX^PPvX^PF^^+P|PF+F^PvX.\Fv;DDFv 4XFvDDFF uF;FrFF3Ftv FܸF3FZFFܸF3FFCcsdDxXuUoObBfegizog\TIA6.3F uF;FwF u-Pv܊^;t 0PF^;t,Pv4vvЃv,v,vVv,^;wPvVvvЃF;FwvvY+3FvvvvЃF uF u(v, uPvVvvЃvPv4vvЃ]4vF̍v4^Fv4,X u? Pv̊^;t Pv̊^;t PvXv́4XPvXF҉FЉF΍vF̸FPv4^^ƉFv4,X uv̊ u<Pv̊^;t F́F<>Pv̊^;t F́FFPv4^VF^ƉXF=}P P P/v̊ uv́4Xv,4Xv́4X+F̸>PvЊ^;tvЁ4XF̸PPv ^;uPvv ^;uPPvj ^;uP P PnPFԉXFPvP ]FFF=|,vV^ƉƋ4 u v4XF=tPPFF uPv4X5^#PvtXPvz^;:PFƊ^;tGFF=|6FF=|AvVPvX^P^ƉƉ^ƉƊPvVF^ƉƊP}^;t v4XF=t*PF^#PPvX^P^ƉƊD^;tPvtY PvX^P^ƉƊDPvXPPvtX^#^;t3Pv4^;tPvtX PvtX PvtX v4XPvtX5^# utv_PvX uF uv4VPPv4VFP{^;PYPvtXvtmPvtX uPvtvtVFPvV^ƉXPvtX5^# u F u:v4ttvtXZTPZPvtX^# uvttXZ uPYRPvttXZ^_##RFZF u PYFPvXRPvttXZ^_+Y8RPv4t!XZTPZvtVPv4V!P FF;F|1PvVvt^ƉƊ^;t v4XF+FRPvtTY[ӉTF]ËF u#v4 u v4Vfv]]Ë]PvtX^# uPvtX^# uPv4^;tuvtvtV P  PPvt Pvt^Pvt Xvt XPvtX pv4VDDPvtXPvtX^# u Pvt^;tvt vt  vt ]øRPvtt XZY["RFZ3FFF=|vttPvX^RPvtt XZ^_^_;u;rPvX^Pvt^PPFF3RPv4t!XZTPZv4V!PFF=t-3PPPvX^Pvt006^P3F F=t3F F u vF u@PvtY PvX^Pvt Xvtt vttXZ^_+RPvt X^_;u;w&vtt vttXZ^_+RPvt XZ]- PvtX^# ugvtvt X^;|Pvt vt^ƉXvt XRPvtt XZ^_RPvttXZ^_;u;r.vt XRPvtt XZ^_RPvtXZTPZFvt PYPvX^^;|PYPvX^Pvt^PPvXRPPvtt XZYa^_RPv4t!XZTPZv4V"PA u@PvtY v4XIPvtY#]UfV!]vvX^Fv F uPvv'F]Ë]]PF^P u]vPFPvtX5^# u v4VIvt u vtV-v$PPvX^P^ƉX]Ë]FF=|0vV^ƉƋ4 u v,v4Xv,]lPF^+PvDDFPvtX^# u PvtX^# uvDD3RPvttXZRPv4tXZT^_## uPvtX^# uv4tt4TXZVv4VP ^;@PvtY @PvtX^# uP3PX]Ë]kFFFv uv4^PdFF uFPvY F uFF uFPvY Cawrb _FPRPFFPvFF=u F=t3PFFPvFVF=tF=uPRPv=F=u F]ø]Ë]PPvVPF^+P) ^;uFF]Ë]PvY+v4VF^;uP PPEDD6Fv4 uvVv4^;rFFƋ4Fv4VvXFPvXPvtX^PvXVF^;t+PvtX^PvtYv4VvX FFFFv4FPvtX^PvXVF^;t(PvtX^PvtYv4VvX6464^X+VPvtX^PF^Ɓ^;t#PvtX^P6Y+3PvX]'FP0^;ƸvH uH uP9PF^;ƸvH uHPX]Ë]vDDFPvtX^# u 3ҋ]øPvtY#F Pvt XRPvvvtt XZ^_^_׉VFvvXZVFvt XRPvtt XZ^_RPvttXZ^_;u;r*vt XRPvtt XZ^_RPvtXZTvvvttXZ^_׉VF3ҋ]=aNvt X u$vtt vvXZ^_;u;r9vt XRPvtt XZ^_RPvvXZ^_;u;sR PvtX^# uvDDRPvvXZ^_##RPvt XZTvt 3vDDvtt vvXZ^_+RPvt XZvt vt X^;vt vt XvvXZ]Ë]*FP!PF^ƉFXF =|RPvvXZ^_;u;r FvvXZ؃VFRPv XRPvvXZ؃RP8ލ^YƉƊPv,4^XF ؙRPFu5sXZU ujvvXZVF3RPv X3RPvvFݍ^YƉƊPv,4^Xv X3RPFu5 XZU uF u-Pv,4^XP!PF^+F^ t3FFPvvF]Ë] P%P^F u:PFƊ^;tIvPFF=A}F=P~F@PvXgPvY P PvtV0vVPvtVF uvVPvt V( uF]vc]Ë]v4Fv udv4^PFF=.t:F=!|]ËF uv,4XFPv4^XFPvX]Ë]PPF^^#ƉF6Fv4F uvVvtX^;sPF^PvtX^;sMPvX^PF^ƁFv4VvXPvtX+F^+PvtXFPvX vtXFv4VvX FFSF uPF^PF u%FPvtXFPvXPvYF]Ë]U؎v~N;rNO]8۸Pvv]Ë]ۍvVvPL2PX]Ë]vDDFPvtX^# uP P*P DD3FvVvX^;r3VvDDF^;|vƋFvPvtX^# uF=tvt Xv,nF= tR3VvDDF^;|JF= tv 0vtF00678TADATADATADATADATADATAPvtY F= t@PvtX^# uPFPX]Ë]ٸPvtX^# uPvtY#vD]Ëvt vt X^;} PvtX^# uv$DDPvtX^# uOvtvt X^;t*vtXRPvt TY[ӉTvt 3vt X uvt 3vDDvt vt X^;}]Ëvt PvtX]Ë]64v2X+VF^;s3]Í6464X^+ƉFv6YF]Ë]U؎~NF]*vv4VvPvX^PvYPv4X]׍vVvvV0P*݃]Ë]FFv4^ uv,4Xv4^Pv4^X uF]Ë]wv4XFv4^ uPF+F^ t3]Ë].׊FPA^;~ ZPF^;~ PvYF]Ë]֊FPa^;~ zPF^;~PvYF]Ë]vփFPvtX^# uP PP6փPvtX^# uwFvVvX^;r^ Pv^;tPvtX^# u Pv4Vrv4^Pv4VXv4XFvVvX^;rX Pv^;tPvtX^# u v Ptvv4^P]v4Xvt vt X^;vt vt X@PvtX^# uPFPX]Ë].Ջvtvt X^;}Ovtvt XvvtXRPvt TY[ӉTPvt XPvt Xvt X uPvtX5^# u3Pvt Xv~vt X u Pvt X PvtY FPvt 4vt^ƉX]File missing. Try CC %d: {%d} (%d) %s| Unbalanced brackets Unbalanced parenthesis Unbalanced comments BAD FILE$%03dcon: TOO MANY ARGS$warw REDIRECTION ERROR$cFREE$READ$WRITE$% NO CORE$ $$@Y@@חA7yACnF?O8M30HwZ?sOu?{Gz?-C6?:0yE>ؗҜ<2#I9~1t. 2>~4t. 3_>FR ؎$ *&N拜t$@A$ IuN拜QͰYްABy6FwDu â  <  $ 8   !"#$%&'(*)+0,-./02.0001.00U]U ]UߎNj~33I-+]új !P،v&;v+߁;sǾ;s+;r;vߋ+=v+Y׋3UQW0! u2[ft [X+J! +ۋPÿ+3tPt T\DUFz t(x t"PVz)x ! t 9nvnXf tL!6t,±$'@'NuUZf tP PRP{FFvFFFN t+v uv uvF˸vFFFvFFFN tav tKFvVF~ |PPPPv tFNF땸vVF~|FPPP666D6D 6D6D`DFFvVvVpF tBPP46V66D6D6D EFFvVvV PP6V66D3RP6RPXZ6D 6T +‹6D F6D6D^PPW6V66D6D 6D6D$FDvFPvP@]U^7CC_^ZY[X!WVRQSP^ 6CCX]UF~ }6F4 t vFv:]UfV!]UPSQWȎ~F& A&F_Y[X]Uv sB拜 t8u3 uNvt/2QVSP=t^YF]øP PJPG +G;+ȑPS@O W_![r];uSY2W;|J#+PS@_![r8;u.Y O 'GGG GG F]GwG@]À u&'tSPPPS=t[ UF3RPF3RPaXZFVFVruvF vdF tPvv8F]UPRPv~]P2 PPPSQRVUWFVv~u y ؃ y ރS 3SN;w r;w+@N^Yt tu t؃FV_]^ZY[XU(FvuNv:u=F؁~} vv؊P=vv؈FٸvFFFF t# t)FFF;sFFFFFF=V‰FFFFvVvVvV! tFFF~ v6DFFFvVvV tF tiF t9DFFFF FvVvV tF$FЃ tF tFFFFށ~ }6F4 tF߁~ ugPFPFF tHFЃvFvDvD FvDFދvDF6VFދ]ËFF t va]UPRF fF FfF FfFV ZX]UFa|FzPZFˆFF]UFFv;tP PPFFv4v tF;FwFFFF܋F;Fu믋v4~5Fv;Ft4FVvT;u!vDvDvDv4~5 FFFFF t2FVvT;uvDvDvDv4~5hVvT;uFhv]Uvub$ t Va=tJF VN<t <t<t7ڋDDʋӰB\!3ɉLLLI#ى\ A+ˉL ]DxD @Ћ]U6F4}]U؎~NF]UFF~v]ÍFv4v tovD;Fr[FvT;r6v4Fvv4~5vD+FvDFv vDFv4~5 FFF tFPTF tFvFvDFF]U@NV!r;u]øU^' t:~ twF@GO;O }O]tS P=t ^̀ t'tdSPPPS=tQ[ 뗃u w!S@OW_![r&;uGGG GG 'ߋF]GwG@]Uv@\LT!r;uLLD )D $ߋ]ÈDDw @]UFF00:;s~v]ËFPF+h3Z;s]ËhFFhЉhF]Uv t vN6~U>FvDFvvVvV tF]ø]WRITERainbow 100 Character SetRainbow 100 Character Set NO CORE$ $NEEDS DOS 2.0$ TOO MANY ARGScFREE$  /* * c t i m e . c */ /*)LIBRARY */ #ifdef DOCUMENTATION title ctime Convert time value to ascii index Convert time value to ascii index asctime Convert time buffer to ascii index localtime Convert time() to time buffer Usage .s.nf #include char * ctime(tloc) long *tloc; /* Time value pointer */ char * asctime(tm) struct tm *tm; /* Time buffer pointer */ struct tm * localtime(tloc) .s.f Description ctime() converts a time value, as returned by time() to an ascii string. For compatibility with previous versions, ctime(NULL) obtains and converts the current time of day and removes the trailing newline. Note, however, that ctime(NULL) is not portable. asctime() converts a time vector, as returned by localtime() to an ascii string which is statically allocated. It has the format Sun Sep 16 01:03:52 1973\n\0 012345678901234567890123 4 5 0 1 2 All the fields have constant width. To remove the trailing newline, just: char *tp; extern char *ctime(); long tloc; time(&tloc); /* Get time */ tp = ctime(&tloc); /* in Ascii */ tp[24] = '\0'; /* Fix newline */ localtime() converts the time() value (seconds since Jan. 1, 1970) to a structure containing the components: struct tm { int tm_sec; /* Seconds */ int tm_min; /* Minutes */ int tm_hour; /* Hours */ int tm_mday; /* Day in month */ int tm_mon; /* Month, Jan = 0 */ int tm_year; /* Year - 1900 */ int tm_wday; /* Day in week, Sun = 0 */ int tm_yday; /* Days since Jan 1 */ int tm_isdst; /* Daylight savings */ } Bugs There is no range checking on the information passed. #endif #include #include #ifdef M68000 #include #endif #define EOS 0 #define FALSE 0 #define TRUE 1 char * ctime(tloc) register long *tloc; /* * Convert time() value to ascii string. */ { long temptime; register char *result; extern char *asctime(); extern struct tm *localtime(); if (tloc == (long *)NULL) { time(&temptime); result = ctime(&temptime); result[24] = EOS; } else return (asctime(localtime(tloc))); } #ifdef M68000 RAM_SECT(ram00) #endif static char ctime_work[25]; #ifdef M68000 ROM_SECT(rom00) #endif char dayname[] = "SunMonTueWedThuFriSat"; char monname[] = "JanFebMarAprMayJunJulAugSepOctNovDec"; #ifdef M68000 IRAM_SECT(iram00) #endif static short montab[] = { 31, 28, 31, 30, 31, 30, /* Thirty days hath September */ 31, 31, 30, 31, 30, 31, /* All the rest I don't remember */ }; #ifdef M68000 ROM_SECT(strings) #endif char * asctime(tm) register struct tm *tm; /* * Format the time buffer */ { sprintf(ctime_work, "%.3s %.3s %2d %02d:%02d:%02d %4d\n", &dayname[tm->tm_wday * 3], &monname[tm->tm_mon * 3], tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec, tm->tm_year + 1900); return (ctime_work); } static struct tm tbuf; struct tm * localtime(tloc) long *tloc; /* * Break time() value into its component parts. */ { register long tod; register short todi; /* For year.day */ register short diy; /* Days in this year */ register short temp; if ((tod = *tloc) < 0) tod = 0; tbuf.tm_sec = tod % 60; tod /= 60; tbuf.tm_min = tod % 60; tod /= 60; tbuf.tm_hour = tod % 24; todi = tod / 24; tbuf.tm_wday = (todi + 4) % 7; for (temp = 70; (diy = 365 + (((temp & 3) == 0) 00;<TADATADATADATADATADATA? 1 : 0)) < todi;) { temp++; todi -= diy; } tbuf.tm_year = temp; tbuf.tm_yday = todi; for (temp = 0; todi >= montab[temp]; temp++) { todi -= montab[temp]; if (temp == 1 && (tbuf.tm_year & 3) == 0) todi--; } tbuf.tm_mon = temp; tbuf.tm_mday = todi + 1; return (&tbuf); } #ifdef M68000 ROM_SECT(const) #endif #ifdef TESTING main() { long tvec; time(&tvec); printf(ctime(&tvec)); } #endif MZ s뎂 5U;Fu$vV)vVFvvwP ]Ë]UvD lPv4vtvtvtPvD^VPvD ^V PP]U vTFVus FV<RPvvXZ<RPvvXZFV<RPvv~XZ<RPvv]XZFVRPvvNXZRPvv-XZFPF[%FFFumF;F} FF)F֋F#F'F6F;F06FV+ЉV~u#uNF뾋F!F]UvVvVP]U)F*F-FFFFDFFFFNv6FVЉVށ~v6 FVЉV~v F tFFFF3RP<RPF3RP<RPF3RP6XZ[YQS)XZ[Yʉ^NQRPF3RP XZFVvT]UV3!]ð3!´ô,!Ŵô,!ô,!ƴô*!ô*!ƴô*!´ô*!P2 PPPSQRVUWFVv~u y ؃ y ރS 3SN;w r;w+@N^Yt tu t؃FV_]^ZY[XUPRF fF FfF FfFV ZX]UZd tBP PP<FFvFFFN t+v uv uvF˸vFFFvFFFN tav tKFvVF~ |PQPPGP{v tFNF땸vVF~|FPPP61+6+6+D6+D 6+D6+D`DFFvVvVF tBPP61V-6-6-D6-D6-D EFFvVvV<#PPH61V-6-#6-D#3RP6-qRPXZ6-D #6-T +‹6-D F6-D6-D^PP61V/6/6/D6/D 6/D6/Dq)FD`vFPvP]UvVv6-P~P]úh !P:K،t&;'v+'߁;sǾr;s+;%r;!v!ߋ+=v+Y׋3UQW0! u2[dt [X+J! +ۋPÿw+3&PUvv4vFvЉv4]UvVvvV8P~]U^7CC_^ZY[X!WVRQSP^ 6CCX]UFx t(x t"PVx)v ! t 9nvnXd tL!6r,±$'@'NuUF~ }61F4 t v$Fvi]U؎v~N;rNO]UfV!]UPSQWȎ~F& A&F_Y[X]UFFvVPFPPAX tFP2>FPFFPP^X t]Á~}]ËF t]~~FRPeFPNF tPFPPwۍFPFPLP]FP RPX tk FFN tXVV6sFVEFP>X t'6FV#FPPFFPRPZX u FFN tZVV6FVFP(X t)6sFVFPoP\n뜍FP~RPX t RPFP]6P#NRPFP FFF00<Fv@vFPFP  PFP RPiX tFPRPh7X tPvV\VЉVF tFP FPnFPvV]F]UF FFPsPkX tFP\h FP-vF~}I0vF.vFFF~} F)FFFF} 0vFcFPG XZFF0vFPFPFRPP k FPNF t믋F t .vFFN tGFP XZFF0vFPbFP[FRP ( FP미vF+F 3ҋ]Uv uiv%tFFFFڋvڊ tvڊ%tF+F3PvvvփFډFFFv-tȉF tFvF~0uF Fv*uv F FF8FvP t FvF0‰F΋v.tȉF t]Fv*uv F FF8FvP t FvF0‰FFvPltȉF tFvPF tFF FvFVVFP FF PvVFދvgu~} ~~FPvVVЉVލZPvPZPFP\^vڸEvFڈ~}-vFڈF؉F +vFڈvލ}PvZPFZFF tFF FvFV]FP# FF PvVFދFFPvVVЉVލZPvFރPZPFP|^vڋvgu1Nڋvڊ0u vڈvڊ.uvڈZPFZF3FF6FF(F FFF FFދF t!F FvFTFVFF ,~}v F FVv F 3҉FVvލZPvv F uZFڋFV usFvFF tLF;FvAFPFڋVƒV+Pv0PF+FPvFFFPFڋV‹V+ƒPFڋV‹V+P|.vڋV+VZFvRFF F܋v܁F4vڋF܉F v*FF tF;FsFFFnF F FڸFFVFFڸFFCcsdDxXuUoObBfegaIF t`F;FvXF t1vڊ-u#~0uPFFPvvփNNFN;FvPvVvvփF;FvF)FFvvvvփF t&F tFN tPvVvvփF]Uv sB拜1 t8u3 uNvt/2QVSP =t^YF]øPP PG +G;+ȑPS@O W_![r];uSY2W;|J#+PS@_![r8;u.Y O 'GGG GG F]GwG@]À u&'tSPPPS =t[ UF3RPF3RPyXZFVFVruvF v F tPvv F]UPRPvv ]UvD]U(Fv uNv:u=F؁~} vv؊P6vv؈FٸvFFFF# t### t)FFF;#sFFFFF#F=V‰FFFFvV vVvVs tFFF~ v6DFFFvVvV? tF tiF t9DFFFF FvVvV tF$FЃ tF tFF#FFށ~ }61F4 tF߁~ ugPFPFF tHFЃvFvDvD FvDFދvDF61VFދ]ËFqF t v]PSQRVWUfF]_^ZY[XЎW_E %E%] VW_^D %  DEËE E E E uE6E tm ]]]]E ueUUU )]UF tv ]= vHF%1FF0CP3PPPpF^ t؉F v F%1FF0CP3PPP2FV^ t؃FVv! vFtF uv~vv~~D+EtyEȻYKKyً3x CC%CCE y3CC1Wp^~NF uF vFVvF33SS0vFV vF3SS y ؃πvRP0CPS~F tFuv~vvzv~q3SSSSSS_ǜB . t.] .]CCsCCtڋF-0@FFދF3FF܋[~8" " " " Fuv~F u00<=TADATADATADATADATADATAFFF F ~ v[Y3PPPPQS v5Qv~;rwNNOOv~FFGGvFFYċF-?)FF1F~v~[ &nv! y2y:}!ĹR9u NN$t w$t$t2 F ~FFEFEFE~iFFvD3۹%u؋8FV^F;+F%-?=#=|)F-8yV^F 3~EUFa|FzPZFˆFF]UF0s t t%F9v t t]UFFv;tP P6PksFFv4v tF;FwFFFF܋F;Fu믋v4~5Fvs;Ft4FVvT;u!vDvDvDv4~5 FFFFF t2FVvT;uvDvDvDv4~5fVvT;uFfv]U*FVփ!V~ |FVusFFV؃FV6RPF RPvvXZ؃RPqXZNvF ؙRPvvXZFV t^FVFV6RPF 3RPvvXZRPXZNvF RPvvRXZFV t뮋F t -NvFփ!+F3҉FFPvvF]Uvub$ t V=tJF VN<t <t<t7ڋDDʋӰB\!3ɉLLLI#ى\ A+ˉL ]DxD @Ћ]PSQRVWUfF]_^ZY[XÃFFvDFDFDFFUߎNj~33I-+]U61F4]U؎~NF]UFF~v]ÍsFv4v tovD;Fr[FvT;r6v4Fvv4~5vD+FvDFv vDFv4~5 FFF tFPF tFvFvDFF]UFA|FZ PZFˆFF]U@NV!r;u]øU^' t:~ twF@GO;O }O]tS P=t ^̀ t'tdSPPPSa=tQ[ 뗃u w!S@OW_![r&;uGGG GG 'ߋF]GwG@]Ët T\DUv@\LT!r;uLLD )D $ߋ]ÈDDw @]UFF~v]Ë)FPF+f3Z;s]ËfFFfЉfF]Uv t vN61~U>FvDFvvVvV tFq]ø]WRITE%.3s %.3s %2d %02d:%02d:%02d %4d NEEDS DOS 2.0$ TOO MANY ARGScy NO CORE$ $%03dFREE$SunMonTueWedThuFriSatJanFebMarAprMayJunJulAugSepOctNovDecnmmmnmmmnmmmnmmmnmmmnmmm;Zx0N$@Y@@חA7yACnF?O8M30HwZ?sOu+?{Gz?-C6?:0yE>ؗҜ<2#I98Pk`ǨQʅ!TI)K1TM9OA UD칗@ho E{\yUXf!b"@ZkV\sPd% cQR,U)$HW%te` dVppdU){5X\C8fStp”Kї.aEfF `8zbBgvBaFlGQ  wOQlE  DF9 n@Eit(woohnYwv]UjMUU5pFqfafQWcpv륨p"f!G\e)tѡy0ubfƒK0pKweH $h;?˃@aeoDm2Y_QY%D 0YhnLG+Gc@JuKwWb Qx2OK"T'$0Noғ"2Y׆6`F~av@\A`kP^/!%1;?4(a00=caoRFXYYCg¥<%WzD3L|NtP81g`50ADa; V.;d.3H(Z?pLҎ:/΀grT&&1)Ԙ-pt&4՚n+@jUӶm^)IѪе^GsBê2PSQ %Z5UyC3yD$BdO7)'h Hv=*~Jz $]|R߲ r8-DEᲈ_4Av ␈ᐁ$U AD 4;Aܠ )JPU4;lV0x/~#?*8|B{} [| 0[xMJcV-nl3  gAYpӓ'xR( dlżO1g'>l\ )\\iWUZ0л>=P dPiHsp2[_9]dg7y6>ȍ=Ahz}2?}ig rpѝzˇ.e#w!A<_{ (qk|߿ T:v}}68}#{||gzv6u80j7rjv'y}}{t'gvrj'8pgg|c| (}W}}'oz)x@in07Ag%F~#F4* q$4MpfZXq2_q\XdepbSqJV(aGu[q|+hȆ c}_h@iBWsi!vu".iæYQ3 ,I)p8x{Fa&*($VLVq1g=h8)eeP3[qP<>Wdgg=u2؃H/@\JX[$(u4H٘r8tQ *20@S$艪B)c!0Á5<@X&>(,0H8ICe>+qb$dA]腈*ٍ&ّ4ՒXt.(ߘ(-@\fM9i9%KDy1LH9eH\Xt-=(XQASoƓؓEVّ[ycx X1 Z4ykiR_ 4YWdP]XUx@E1C% HZ RڬXQZBՉE3g@ҢE`$a&lT1Ţ.ʮjE `KiXyGʬVHѪd%vPh%5^^Sk&'4N%4k&T~j'N5-:wzG|k$M 4;Kڻ!@Ud'`QQЛI-~|%k۰q;T뛍VRHJNfQ6pGcr ]۰9v?&SUkM2Me{LQq#6 LI⺬}q*> caĪeƈ; uʈ11+E0TYo [Pr $@nGW&i(S)qF|3{NPLR[7J{p ,t""PsǙTg EE&uxE%! ]n@W p&id$ "$a(!jJ 4a8<@BAF &O"rN10]\=,hlp!taY,$ %%l.`&?VT̹bNIiwB]D.0nsJ-:SO0(Z"y(?X:?*\zP]( ]V"bmVY/SrAp}mjPE+^P>SS4w0^ReHcnr:p5>=-m-2%;LkMgK6#'|:ي}\@Mڟ-;}Pa0MM)' 1aE,K:b 6lA+(Oǽ$MxPfNgO9p؊B 9E|֡?;Lfґmqnࡄhc J~ 0$,^1(^b+)=EnlE[18Ţ*j-(!l9("3,4FkRmm^^~n /JLLFY)L( 4IvrmgPeE&l@EsE2p []>I k9Uie^$ﷲ)nP$az7NEbYae"?<,>I> /?E4mE00=TADATADATADATADATADATAw;wpHAd0r,*rf%,?mpI59b FL*`D7A݈ɾl=82?8 rO,gam@F]Ky> *RKxKrP$"P1BJk"p'|R=irPq_Ga$8QR/^TiI,Rp>~fH_wttdUIL_LA4lO / m|O m)Q?Ǘ<.]T,(.Ut@ 󏣯'/V~E.Ri~.,i~1Y+!IjI%YӿNLI'BסV"I9/I^ .! ~""D$${8""GI^ E".qI^TIDIt;r Fo5=~xɳTeqF^"_ F Mhat ½Pj@K= e,,h=PQbڠML(k_dK甓_ 4 1Tj.IhMP`py`+U4 1T.Ih=P n *,oOJ9ŝ_ MP`KU1(`np8CERY$k*]UdY[l}3 Rj{.1,bl ?NY$ Ur .нOJ9ŝ_ [I.`IY`IYU>Y]Ք6 ż 0 ]07s0!U.Ih MP`{Fe`$__ d_c0T=`7s0j-$kH ӌżWB[lI slI`+UO&r .!.]NEL!IN MP`7s0.qBqF^"_'˼'}6`'Bס`+UѪh= c gT_ MP`KU1(`np8CERY$k@inQslL(iތٱ_l0(p[l8>^+{Y[l9 WB[lP`+UO&r"-%' j.IhFvH{F^"_a.Ic@⹦APj@KtF^"_ $kn MP`IREj.Ic(pFe]Ud5,cq)e RTlRIj@K$__ .1l8E6=d U+{Y[l9 REܓQ_ MP`KU1(`np8CERY$k(NEL( UE>IL)UILq&ڠj@Kj.Ig%r`{&r  Y$k [Ih=PQ-': j.Ih . Y]Ud;y`+UĄнOJGż'~MP`+Uъ+{1$__ B RELWH)tg%r;{RM2(p;p8CE p)tREܓQ_ MP`KU1(`np8CERY$ Urj@KWH)tg%ri,'* Uk [I'q)t{Nk_ mR Pj@K$__ .gT_UE p)e 4|!$1i1 ]0){1y%d !U=PQ-'# j.IhFvH{F^"_ƠAj@K4hj@K4h$__ RY$ Urj@K+:(ktH_d[xqF__ƟRBįQIE0od}gPi ˼^e('R.$qż'{}N5:k\`K+:$__ ĄgT_UEq)e 1 ]07s0y[lP`Kq`+UĄнOJ.E $__ 7H{74  |F[8t[l>!ILeo`3(s6\@ _$Obxmm}i]o'$cE3 mg%r pH)tMtI6A,o6',t ?Vtc{kg4(n:p'Bסe-LO,e\ vg%r:t ?mm$__jRYURY.UE!~.{Nd_cE+jI]:&h= sP}jr9YRYNammkZ}7C(,/,ai(Xm.ekke Qk}H(@7 Kl@uH(=ӔR_ٿl@KUPk86 e\P:;.Rkwfc[cQXӌQVkEm.ƈ mgP ^R&BPGN.hIPj@KtF^"_KPj@KtF^"_lR!BPGN$hf\p۹hf"xPj@KtF^"_w.$k\.Ig%r&U"EpIoKL@kR$__lRY$U"EpIoj4%mmQ9 5}3u Y[lIN |%d IF[$J[mgT_\WH)tg%roڨ *B_t [I'q)ttBqF^"_'K'BסH)tg%r* [I''Pj@Kt*p`{)t{Nk_Pj@Kt/poKLWH)tg%ront)tW4Ydo[ߖbmm'_!EEm}Pj@KtF^"_rA^emMP`+IQqO@Dl}Pj@KtF^"_r+^e*}NrO@Dl&U"EEo{ m^"ʐ 搂r " "3E `x E ~V"ȜE+r'P>aj\#+:)r (ipe_V#|&&E*~+r'P>aj@]Bm?͞ "3? )r00|)r (a%/q>E"~f'E0L(>QR  _HmAy ʐ !DŽ.a< l @, $pGorNk)BCpq'ln 6or2HA#|##m !%l($en0Hs^%]B-"T|K˙?A,B00=u13+"=_@BC1[ll#|&&l004k)'ӆ)"b+)a+AE.B- -mOIY$&$[ >41 AyC0]ᏡORbpNh@0or$BNdE6sqq'Uk"iG/2lJd@\tAz4@1 #2)j'I`,32ELW I2X72xF}2HF22FmLW I2fX72c`%:)j'I`,#)jFOpB,cfu3CɷPyKrZf/>BEf*/tKa p13+"=mk&kmkP)$tU=q,(FPc'8t+O:@Tp0bii:ɐ1q13+x]!OpBT!$v4߮=t0!U+G3ڱ$RLW I@^'|(F@K: G">XtPȼ* Kv* ]}PV=qⳆxP!Xᖀ%OUOH5iMtb%&ѡ$DG>VO!6n0).+Qᯊ_1 qP yPK%aqKJV=qⳆxO gKD!aιQ@DSLYFPN0 YQ@ qM=^P ((ydISG朎@)=@@)@@)q%)(Mbr~SAP*Pk7mpN].d%)(6F_rN_4So(쨖oA 1@)(/cЃ5Et!bn/ t+.e|T.)('v,)Y8"_|T.)('v,p#fHn%).e0(T.~k''&)^v_T@f?/v0Na*ԃEd1dp @ )Ad O*݃Edq|7Z\T@fO`F@Nh]1@)(d%l Q6qaBh h!"%l Q6qa"s_S?rd@E2)HPe'?&)(dps_D`&d@E2)HPe'?&)q%)(wFr(>ÂAS=DjijYrЎts(>ÂA@RqNG-%)(w w@7g~S=,P]\ 1@)(^rq,(>=q0dt0vR,)Th,g~S=,O]1@/"rP1l $TWGd,R dLjj_ Sp'U@/1 dXk1H]qRK*yBD6Eab3NN_ Sp'N]i~>.2b%)q%)(h(,_$lqAHYzx~@)qDa2(~Sq@V'l~@)(h@&~pA g@YrLAb%)(h*&~pA g@t",MqN,(Ab%)(h~~pA g@4ؤ1QoQ6qs%)qj(~Sq@V'YrLEuN v @xl~1A_$lp*~^$TtAt1-vbx`'t!%)q%)o_WC'4kojF &D)jkoWsP\arFko_8 vQ,zܮVӇjYyYéI9HbN13ALxd/W|2ABm&@E,x QԿ&Lx73A؁0 )jԜLx>r'D7aP6qEkV؁FL؁sǫ/W|2AB EkR؁kFT؁1)jԜ!Jx)jԜOx2QB'DD2s0-,!@EkHД0ë/W|2ADz~jQԿx 2)jԜx)jԜ4xq)jԜx9)jԜ tSn(JP!S1+a YԿ6nf6'FNN*UQ_C<$u[c `-4+1_`r=b)_\& 霊bR0*IIGιMbr~SZq> 4Iwz\1@;P1@H~Sm{l~~*~ZwHNNpG%d%d`ߖ霊,:U@jUC N@+2=(NN@$u?bJMR_'0)F$ulbae|'~>$)(gd4IJMR_')O_|'~>$)(gd4IJMR_'ЦFHMR_')O_PS~ZqCJMbr~pFHNN@$uKb*v_(NNpGMR_'p)vGMR_')vGmN=(NNpGMR_'Ц$umbwԖ) @84Iw$u5bw$umbwԖ*݃A84Iw$u5bw$umbwԖE(NNpGMR_')vGm h@_(MR_C<$u#bw$u3bwԖ@b_(MR_C<$u#bw$u4bwԖhqs_(MR_C<$u#bw$u5bwԖ@xs_(MR_C<$u#bw$u6bwԖ&C@E JRNp TTU@+qh,g~S'm2> x1$)(>FH~sw h@7g~S'm2> xs0$)(>FHdńJ~s`d$)(tSadDh hńJ~sw w@7g~S'm2> xs0$)(>FHdps_Lzǘ<>%g7~S7Zq&SKxq,c00j@ 0QHSMh`_q,ڰ-j[T_-'b yW$trjA{OrRjׁ$toJJ(5Q8KῶOKFH1_`rńJM7~S٣n _`rŘh,g~SOZq&Sxt,Co)_L$~~SFn _`rńhpq,(>,?)@t,>i>H`A0TPR\E@Ua?+a3TA8$5CMR_')vGMR_' )vGmXk @8$5CMR_')vGMR_4mLj_(MR_C<$u(bw$u)vGm00=TADATADATADATADATADATA "J%qIGU"Cι,S0.8<<<<<<<<<<<<<<<<<<<<:B,,,,,,,,,,,,,,,,,,,s!T<<<<<<<<<<<<<<<<<<<:B,,,,,,,,,,,,,,,,,,,h(P3ѪZqR3Ѫ(Q?uDRsZSlQGH+IHƄٟI]:o)_L$~5=FHM75EMb)_v@&5'5i@VP;V,`ڥӡ_`rńJ(5=ů(P3+$q,(+EM(VPFn _`rŘDa2(P3ѪZqR3ѪTP;T,`ڥӡ,:;,]:o)_L$~5M%jd$q,(P31P$<ׄn _`rńJh(P3>tcH_`rńJM(P3>+X$,ׄJM75sW$<ׄn _`rŘb2(P3ѪZqR3Ѫ%)L]:(,OSI,`ڥӡ_`rńJM(P3BPFHM75EMb)_L~5s@G -0o)_L$~5sEBM$q,(P3>+pEMb)_h~5'5*PJ0;L,`ڥӡRS)J]:o)_L$~5JׄJM75EMb)_L~5s@G -0o)_L$~5sE"JׄJM75sW$<ׄn _`rŘjj(P3ѪZqR3ѪTSIJ]:(,/J0;B,`ڥӡ_`rńJM(P3TM$q,(P31P$<ׄn _`rńJv@&5CGѪcH_`rńJM(P3+-JׄJM751P$<ׄn _`rŘ*o2O*Zw2O*6}8ńJh@&N^l McDEfddDa2Al@G)Pl MlDؕdDa2Al@G)p*V$=-@l]Jh*&S_l McDEfdd3T>TԿV#SԿKPY0Z>-n5koBw|FٿHf=[ko_}MV&(IgφbFko>|Fko_}MEeS+b@k&zbaoc-4bDR5NP$0fPJ4bDR5NP$0 odoIŤ]KPYx؁1Fb>, ѥqq.a< l @, ⚰/6oTP纒7%̽>Llaf7aE\#Ԍ#-y#A·i/],6)xa+b0-6EE!Pa+oa,bAjij@]!w,o)m.PY|i^t'Mx&/C#$8VA/0qrrHҐ_iijEBF`:>2'11|WnC,V6sKBr"NAxj-͞<>)jF5JPFm_ J_PFm_@X(DXE_PX(UXE_X(LX0?*_e)[_[FA_)85EPS$ 5EP:`HPS$ 5EPS$ 5S>sXPS$P3E5SP$P35SP$P3EPS$ 5S>y97\ |\`\@ PS$ 5EPS$ 55EPS$ 5EP8cr08ljE 5EPS$ 5EP:`HPS$ 5EPS$ 5S>f3RXB0E_E_E_PP$ PP$ PP$ P8{C7(! #@%`'O_E_E_E_PP$ PP$ PP$ P8_S7d,.lDEDEDEDDEDEDEDS>uDq4@p7F_@XP$_@XP$ PP$ P:`H_E_E_E_S>Koϧ;pT>PP$_PXP$_PXP$_PX:`(_PXP$_PXP$ UEU890K@B0ScGO_PE_PE_PE_PUP$ UP$ UP$ U8#207 oIKMOO_PE_PE_PE_PUP$ UP$ UP$ U80Q D\VpUP$ UP$ UP$ P:`H_E_E_E_S>8R Y[]_O_ELELELLELELE_S>H7`Pc1gO_E_E_E_LP$ LP$ LP$ L83w05pOjlkO_E_E_E_LP$ LP$ LP$ L8v0Q*qu`wO_E_E_E_PP$ PP$ PP$ 5S>{ oxz|Z&2ACNpPAedj_ l.<fzsEqoa*V$o.s Iu1e70Z B*@KEj_lFOYkmLp%_̴)c}P[`JoahL+S֟L_̴HPL+R_LJoL~ N`Op&"Ykm@P.lkm8"Y_BP.l_:"Õ %"#o1K %:"~K %#oah@P2p#o!SOAP22#oLPEq!o %Lj#o$I %^j#o!R %s R#oLPEq!o~K %s~KLНCpZktRV &ip6X"e bPN`O%q2ҦGr,"26dȉ{LoR(5'?oPN)EBeP$E)x5YBK%Ej_fm@J ǖǧT_\Rs*mR[Lrk絧% dEj(i%d00=Ej(iCNw  Q>ET0=GZ]!rʁ.j, \ ? 2 Br˹TJ&c|N6e U0bhY3IG\æ2 Z 4>70y9x_3y2%0\`HArF0R$0e0wM@EJ b(6s9"Pb$T|RDʗ!HHI0]s x͟G㺛I_PB+O,DK+'V,f蜳n,]J/QU d0Vg4 \MmR o(MGD<GDQXiv&23|FVxG[C]%TJM:I0 5G_Ucȑ{74Qm?B%-@rU=OOz+͡lWJ  p:VJ4Vavw04 N%Y s2;6='H,Jhȗ^ee BӮ$e})P9,UZ]Յ ٕ4萔](F%!m)&e{- ]K\\ 9H!AVY?%J/aAp pV4+XBP4(!Pd k!P| A2\XIlnTd̢1HW Y>tEig?84SuѼQxyrBb P&1I[2h U50QG~$>'r= H ֤R mN'v*לn)UŪ $ Yd>,CȤ/ VEDh4mTG3>[J .ed֊\,g6ժuOۺKq=\zWꕯKŶ]+pNnIEZdVeWFڣ5-d^n'Mo};^of ehs^Qdh} 5h 0J nQ_~I'hEn8Q)׼l /u,P+_iױaȎNѮSX+抜 ljݬ8rsCF:A2r p5TlR E9#xsR 82҈4Z)8M͕ӳNPh*2a tA$4", RGUHVu-hlG]wiH-- ST36"Nĝ5nQfKns>0EMt =oɀ֜m MҬY3=(3-ϩ@?69Kv0Kস{J!eM:j$\x%Q N:luYR[޺4P ƣRn&h.=nzU^MΔ MiERGp3%\/מۣ< m_+RTpnp^4rR(CC)o&ka콤(R&^}pz/-)9R0=uB@Waf0̀4E^ x^2D?P7ODu % o:>%şH bAϚgJzSYw+۫޲ f/MT-U%rq=n^_rVRW,M7e$ʄ3w'G:(a$ŁEtL%EK~vWtex\*P[A%u/'el{W{{G{׃W"Ps }6'1a q\4t>/s I6Z4sAk6Y*efq@fe >q< wFc5OMR rP!"6&8Vd!yKE4^J608@'PXRR7[Gw'x*L4uk0w:uAфyj?&WyT?R4fʼndr%5`k6@+j\Ah!y Dy_P>#6[]7hEElkP-frxm 3 ku[xLW;NJ#x@.b%WA Bfs@~ehxdTLr^vULfH"NL"CBP-!kk6g1(!b; k%x.Gi!h:sjjVrLdKUE.uEgi?1[R1 8l Slkvl4qvkAd &rrd$/t0/trx2M*?dTr2F_7'ewjF %FCQ pkՁ+vE ~RUyB/G{Ott0d" X;gD!$d-]%S|W| Gn)JpU\!PTVQU~%WTf?0]_&Xh"cD9E);spPl B/>ryE"]0C1nJ];~p71w3yQy`[l9ԟ5Si$F\LS_22Y*:;af_DY{9Q/ *ږdAQɘTYM4@'o5Sfa"I+~"AU+z? NQ-O5Y::r93C ('ڨB?v_q(v4"?R;0@9n;m'Oe:lq";k%G*~?y#'cy:Z'@ teA(211`}֗sYRxe0<@w?+*#*Q{7q3nuC4ipcINH!h*4'hk hд n ZRP⧧X4F;ƚ' 7ǣBbr {4BR CFSBEKMpi m$cSbL+Tha{*kE 00=TADATADATADATADATADATAG~JDj>H.d6fW!r.0"CXeod "D!"w p#>qyb R8IE{#+l>n@I ʑnDE% 9D,xE#Dln > I Zo26KGD+{g!"T>&P"al#t SÓȘ4|$IY K<#`E!9dQq;?:2-o/@:uU|gasxn~ᴆ|׍ 7-.RB % UpAb&v˵՜RFŔؽA67:ƧSXJFCb+P ۰m:#crCmZIBE#v9D2k!"EATc!/aQ;eR4!/(ګueKe]-ib%^AEr`:"2ᔂByO9k1<2U\]vO(9SX0m*Z)g%_P;u^(q#+A:np]1egXR?\F"aE\_x ֫x糢X4FE$7@˙FѓG 55`5CE3F*6I[aY&)^8Z ڔ+D[fOQFSUS,_ `bDMA`9T}g׾Zur"^!1]>-&e$vdrBjm%RN\c`C;m"N1H4wS@@!\CqޖY 5S#7Z/ '-hhjvgn}&7Od݈(I.(BZR6]$lWu>%d^;7ALgHNSndBQmzuF-'Ϣq|jd'E8c޴("B4 ड= gCt=L1+(//Te&)"?º4ߚ/)QFL/"ލoJ*DC1G}dS2=+[[?ٿT$mVF-0+#/ omJ!szk=1u? ^=1u? ^;$x)UHc7nTBA2x蔑f:ϔ34Qء-(h& ȔF';hFΉ9 €(y2"7Di1t)#E Pdڣlj1'@UkGOGKrFV$I(Ϡ( 8&YݪM7͐Q\rR f(fNpSfRRۈصb;a),!L:FoF0R$8XiԁUXu.7aҶq" c:9 }Uo\%B i]7s⁠@5XFpnqFtas D7]ucapo~d)puX` r]~w׋.8#cn,EvPd]V:>B)%[&"(,%>&VvGjtq.Mr`XI(b91q\ [OiuDQ ]fRr&RfFe%wPBm^GX^ -3NT౟pzR7r*CN0Ԇa6o+G%jKQXՙ%WyѱWG(<]D]fᇇU,u%| T`M5fMc=SƴIe\IYFr 7*Ekuo; Pa5)M ш7zaUJe< `FAfFDzeDL1dpԁ\M_KrW) QuG@r1hva2':r ZӠ#YvDon eBZ6 U8|TÇP@ҕ5K 2f kH8EE|.""ze\F3#tF9R61,rz Եfc4&k[Y$eBד3% ?0͒vIi =D84hIK8BBMd $#vuRHH-"UK S82"D6әa>9 Ơ̤ZBX%^ۘ!H!RȂ9 P& T'D+Dt_6AR<fPM( rC氼d+ }hD0! 5oF9< p`G9 fCl_BUj u@I` :N!Z )D%TmpAP34S@zG79XnCsFoTx*V1ɩ_Y| z&Q+`2x(R0赃*Mr#s7@%QcLۿZ13.*-kK4QGy+~8`0yƻp7VAW$ ~KÌmk&8.Ur ~0 (fZc[$qyFK{"Qpc`}Nكvu}_Oe07Zv^ `Mm+{ ^ 2[-P< N^AC7U -9gRu-$u}AW9sOh9p4'?]G,y ~8E5rrNM8S>g'@EPmFvRyy/00=$NzDaNDzBNOTzOPUPug p|GIO0QŗQӆoqR/SA}8ew~?3,'~6E~1UR~We*y؂7 -gV8YXt %4q88X p#8,ZQ T@5":<_R BDxyf9IN=ȁR(UNXz[O7w{5֍#1 ;UU_ԃ#5QJ!rQ>^N]E|(}HS6 pA3!3(u`bYd#gAA*@V !ESR'y9s+) )Ap24*9-)0Is0}6U KHyJLTU~a)rB7Mуzz YAc"e>'V BH ,S5S1D|PؖI(]!w(=)Va)al/  vHT/%2yre`MHH\@w[Gv !YZUHYу6"^z^XW pɖU9]3>(?ȡv`e`Wrי"N񞧹y99Iɛ$ѓs=!\VQ[~Qk9xz=uAy9v89$#!Bc?qâHRs(!Qnd0B;m o2 "VJ eP1^SyqG8D]賖F#%t`NTz:r<at;?9$:TZ\5o0)XE?L%>9sQ0]GHXcȊWT43 ђ=yA9#%r,>,A*Xy]i!AS1E4Z\dp|ckyє=ڛ :Fzt  Ǚ՚'z@Jџ (Qڧʝt:oC;2p p.$ x&a[y K˪ iC)SY ]zٱ: 7&[X_?Pn%`Wq˲ڳZg+pP: ;?I@XQ7 ;D$ba9q6"FwssLS@G*뜢$H͛pH/1tj;& [)˷[1ܛw貙Q9 `y!/Kx}5O!zSNVzYz\_{bH{eP(|/()A||35o)cU)OEx~V~""$<<`abcK- eu uaGT&aWr >C΍Xe,U2rGD+)m̌'̶ Q7yLxRNxA ">kEZQIThz ̎{a8{dh{fxDB'=*x Bmҵ+JL=a}8}2LtuLA.mP1ԊmVN./dhB|C͈3 eihy}?]DeCj]҈5Hj\ PDa&l`;[MzG]+TAWKvZ7q]M!iY<(&s=D3|Uw`ڇY߹ڙi**(y]93~ZJyNT]~_aNE|)ZԁpJKUWXe^\ė|aWA`"I: 0U\Glݫh==! L +'75nuEӎ>es˵P;l((+ `:+l=U'<='&="}~P1,9_1.b9偝ԇgj*ɧޗ.|ve@ח8ETɗ"6]ZIK3EiֿE"H.g?D]DF_=gb o`x/]|ZxbV(U?D$8K OXA&S.pRP  >1?,sy@\H Ռ>9@;cťoE6XuE6Xu C'7sSL6a|)9s L6e@E2e挑F 0bNcФq3gM8eƤXLǏ!Q `Ȉ!J i,IfsI&E7r@!M:9ɞAG'3i-2rܸBfaذysg;ɴW i,]C ;o3 b`n挛4zM+p" 4vLN < ,:n1-\4׺Ibx[IelZU!ŔY||reS>tY9 Suxހ-atLԂwq1ęq%pZHiV5%[A']v .Z!FNq^^%^n\VUQ&Q17a8&UPCQ`/ z"t_169V 0F(쨕!-UdhW5@ai2DQdQJJg]}W`tQMrdZUPr%`ydH^dA&NF3'Dn[51gwoTZ =D]T_́Ru~EJF4 lhWvcj_J1nyڰ AdE]N (F ǟY$ԤZQ,"|'| .%k kNCNFc|Z.f)}UFBF-!_xs֥QjfGZ+oCdfbkUn."=da\xR' $\}iӭB[QuSl[Wb.ͪAF@89-8(-C~ӶFW7͎m2s0J*_:Af ъ9o0'4Uړw)>^c?n :Ap!U0i2$h~Ђ ;A | K'iMvd֣}01 wʎw\Mm7`AGqaܐЃiCZ31A'sC'GMJсNd'"0w*|%oxyֱl7,CtaCĔD$&:Cbݪ00=&TADATADATADATADATADATA6,Ah\53dY m%zw[ȲǚH.9HbE.r޶=s`xf ivI yJD*R.WןDA0IhbIxNkNlC(rW^ѓ ?N+"8]ҦΛ&V6"g(] 0”(8}A.@cjPMѫ<AD0ъ^Ԍ J0J3D(FK(>Y@tk*e % *iT}9ٹ50Ng-̇K&0'EJ@Ђ0(dvd B .XpCE0q#)6K̈2TL AE 6|2'Lsl;pn! 姢xIy{@ԥ[2TM $hlq6"0 w  +:,w( X3M7{AO'Ha X} TU{&-C!cnrd$ AhL>OShqs.u cPp%2h+}J3n1dRo!g3DFxH:މH9b&̋D.9h7-8Br}MHn1 [S>CؠOdDE(R )u[/2sb^&*6o*B+4q*a'l&y0Xxq,C,(Bq=bu-%o3S],f$-(tE6Cn1~0ͅc!r O:111bUT tHЈB? 3?xde@ d5 tA@HgXM!tTBB-,g_Xavtu@4DFDMI$8\d\UZaZ\Ďai4l4GiyTUJsE2%JTMD\3pY (ĒI/i/ ac6 J9bNs$HKDN"EKUD4kPL3NLhi"w·GT2S5NxN&HuمNUX:C4eObqmYP}yM&dQEQ]#*V[RizI4exSbx H=5$?59ITcØf&WTMOeJa YU`C@eY&R!lV"x1rvgx%f{/upՇyjğ  ;`#0dzc.> 8 MX52SP0%*5`ʢlCA  *!!O +ڢ PC36 AY4H:LS0&jlNZʥ4z7w;7 LP\*f MN lZ P= {DGTУ>:|Aী UMʨnGP=ZEDAp5`ӑcp& jJ ֖=0 / 0sZsA(* m**'([1mlPh[ $j ڭnA(g>uv*v@Kn (r1 dÐiNb.kImfp:f) `m$:vxZcdH¯mm :n1ɺGU( %0"_A1{n& `&Я[[ v?p_^ [ 媵 f V AOı__ѫn11gv1%Jׯci0_3K[Dp;r'ɚ+۹ I!趭;D((0)˪BgiK0[xA7ݚX_c@˺+Ъ [t<Ȼg༫;{fɫX웬;['@>盬k[+v@ۺZ˿Ɋ)V/LSO+Z#&U%+3븫5 FD+xjH'yHR*ܸۺ7‚[1W(`Êo<M#p+kp(dqrAt{snn ^1qç;D'ġfvL:yHQ ŃDr@ZlNJi>nܽ v8⽺.0s!51nr!Y;ȝVsj.@7~l>.9Q[`1]fymR6[N屢 >3kέkGr𻛬n뿰AXLo(Pjl:1oEgj$/̢Lo 0aƓh~\LX(P+at1 m/K | +J,; k00=. *@@۵q;7p[TXF˾^_% Äq„mٚQ*}-н vBsM\*Ț.&N̪je;.FzYAK[Ξ Ҳ-j?ا--h.ا--h.e&*ّ  C'sP  9&c@ip!!uT90c*D1AJ ޴|J6pvr)!LLd3 Pp /'R2s6 V\AiJHoRUhB~ˠ!XKBTʥ IæLXc}ք!zvmۯaCq {W$8uT$S ϶>-zfHp ΔMݜ9XL2p&1M9NuI9Sd{1e7`ȕe$Qb( Րlfp! @p1xX Fk.M[Ja[CCA$EyF)]X%ENQD $FiFl4ЂcRJj$G!h+`yv qd7fo96(gma2hhf* o_mYA&`1#k)_ztWJpI FT$a"T2`C {FUɡsT櫀nzyz r%d,TS]Ln0`W{)&`)*c%. "baP4]@@@rDYB_U"PaoYa_ DI4PWo A|h@zVq d@F'0Fm(k-`_p9$k,Nz BD|N` \}Hp@yfѪI0QDGÒ8㙾(c wb,/Cޠ?.Gt8ǝn*`'Q\f#8h o@EA ZpZ9]٠"ES/W*ⓇEPYll,_D2&$ g\7G $ Utf x>5XoIT!J!u@L 1Tb ,ا?u:n< aȃSP1xsЭ3$٤3O()(>3q͝ c jS "l3ŸB@2ҟ>(6$F-<zxh(Xi R1|AddhzŢnW}u)cvGAr.P u}MWS}KFsGK 0r_NYaxcr`S xk9%B)AIv~ǣy 9futpeC%2\`6H)Qs'PFD2U.hp"ip{cݤ{A.0t5LB0%R ' 0_! @O0UXTOWAt>%FnPwG5XNag c)9x"'S7W3y)p0%.0.pJ^^(RZD`c`9pAewuXu`OH89s-\($)O `\15XW9tH3 7`7O qTܑg jTAG)4j ' q' !2n Sx~(h(Xv&e@YAl`("iue`aR bΦLohd*"8PPُ7%'B 5W3WȋV'Yoa%0`-7o`lkUtQH!e@Veaeeʂr ȕQCsrx0.?`Yso> Z6?T^1e#'cQި6mqXthxhzȇ~N h X`R `B P#-m|􅟘 ܡ+&_芰(fxfYU@/8xvȑ &'nXYBY)X9lqBr`dyf TB52N<1OԩiT UP{wc𗛓<y.>Yf*whzHw鉺J35(P_q0paUPg L_@b5::axK?hЛ_lnrXLqه` yo‰g'艪6J(tЊ2IZPrq zeO2:Ol0d3X"ڍ%(Z*ZQ?5S7cУ?A:EJgL O.RJVZ]JY 9GZl!!fZ]ì̺ۤk̵ϹЌKlUSܱUlno j'K:"+cUqyrڼl? plr t2RGn)hڪϐ-3= Ќ\ lL`InٻZr`= "%'ܮ) è,j&@:8:|հK˳{؎Mn_]23sPڭQ,X|(k]\c9)ͽkMZj\ De{~i\>N( С ૴O,юۖ.-rpFmё)cB=9Wݓ6$SPeF&2&|JB3 =Z]ޫs`\u!T|!ޟr}t J*)=1MNa,yMC{]o^AWmLlnѬ #m-;5aQ0jZq١c&D -+ L:>jRͯ]Y]@lݓb9QKL朹o>Y y]cNXw辙ͳF[ -We ~̴ R;.(Êڪ>㮾N,эo*~B;8N4>uYıBmpA@>ӿ]MNN־؞biOy݉D>$}_BUY]p*a[sGgз#w)ǁ  QDrRAYTTQZHrmFo<ԹfVA*`bVvb=DvpITuH$ꪣ`PuԁyBBk0` Roj,k 'EY %Ԑb#YDrT%U(qEI ]Ž@oA3i)B"~1 *_1p@v71E h1ȟ 8W:$P/l 3/ ӠB7QrRC\XGOLJը2Yu`RA'E=. 'vJv IKPC'[mЖ4!$! ɛήX2H7QA 尓E@Tq:x<OfheZ+Xw;dZE'{d'=OP8)ݬEJ@ "Erp@$KsTȐF hB#%2rH13>' QV+_ EJ#&NG!5A>L%)\$HpHQeK F}А0L ؾ-P$B{!D!%iR nEEXTIE)Q]ؑ9Ih~TЂ:PTJժZ+:Q[X*(@|; 1~E c :pNWh"-"B_B@[rR2.B=j(rnu]# 2TN[Y&5NMnrC{A6a=~!lICfU@`A,KjQOF7Kd1z CڮIea +*`ovs{ ߂a݄>Yc>6a`#6mpgF 뚻:[H!?8ɏ;5Z%(cCe13ЁN1A!W4E']88r2cym;ᄬvb>ocpCAb^Ѵg@?| *gd"Đjh0 =_+(N:Ϥ> 7}7T' H_G'"u1`݆e8  j`u1):"#r.Q6F~l`~ @~H4(M Q6cLV&qtʆ.pT%z#ޗ]th/g,]&C -:~} ,lb#'2H@( k<> }LaFh0pT؂ &X~)>A؂FeX5dȄ5aWR&fi2u؂6(sc/hgy{X^}·2`@aw$700=>}"P}$'h~1}4"@ff恍*nOb$Jqh~oaX3c`Q2lp%s(wf 8m&"6N#7eZ>K(C29SgEp~7R19FÎ/'1G%4(;|\4y812h $b0yͅb'b'DTvYUB "G":guA !C"-)^("Œ (h)b9@9P@-901xEDvŔ=QCEI pVN -ɇd)Ɉ҆]_ a9@xCr hbK-eI)w,y2 ~iFYYhUٖ+b4I~(MfNço)a( 53PdKg1`Yy!R`_#d7TqewNBp\LiyԐ ^tD)g×<`:|Uf)Bh(2> }=w?$| 0LU Xe 曄{? @aa"y%)V'QYPH9Eil_ҷ8a-J5-Ptq7H:]7_ a MO Q!WdwRjƣ h^|y|mi5懣Q"@hzY{ihj0 ZMQYX%lq=Ap֡ɶ6 (W10Q,-;.d%_\EQ6c>a1|u_\7\n4vB-11%>`X،'/t[2yD+r!=|"wx@0baWeNe0 07}8K! SR@RPq3S3G̒8o^=,+2eU%}9 '4-P LscTLI- =T`җJ5S5@V-ԕ#]-73['6S62u2f=7g%,<-C7`7@-j ؑ=h= o [E%(05e%L`@Q3eم!U`$A--Zp*. (o'-7$-[$B}m_٦6ؔ C؄g?= W0E rܰlD0KD3-MA0Rc m3[u'гfA P"F\m]!?lCS wEjג>=\4+[͇}d%|$Fz-#x EUTxCdjAp n:+ c̸bWpG.{^|b|}oU)! aMK)^g.1jN U+n/FoP <]xH@v0!4"AcG`3ng 5&i.=T@sمg;Դ.+dMݒMUܖ~7ewUݖ}}<!=ْm9kddN)>=4XHh2_^^1@7Vp\Bl_oѓwk#+YQ^SNIn|2sj7|2Y/ssBn/2_p2swj|2GW,W]0(|q!䆺;|'? vB =mBnL_`l1|'p <r%B+{8rsBX^*R"]\a b 'I#7+ӽ3$$OPB8A0rsBHo!+]#һu?N08a|0d1N9rB;1!"=!r(S2m@A#ĸ,]ʃ!P8|eT͇%=҃0Sf`e6۶%CP"'B=^|L :#3 ^"!%u(Zn8&aL=%2PTiKS>'Aڨ Z<rPFR(`L=%2-!%> (`L=%2-4Pn,(`L=%2d5Q\ FCP"sOb5 FCP"sO.Y#-ٍFCP"sOUnLJ!=t(`L=%2$5Q\#"R!M(`L=%2A5Q\L!} 4rS(`L=%24@4Pe3FCP"sOT51  FCP"sOd5Q\FP (`L=%24@7Pe FCP"sO5Q\F0 (`L=%2d5Q\ FCP"sOBRt(`L=%2!M7(`L=%2!j](`L=%23P%=L FCP"sOI5Q\PjV(`L=%25PeX@ FCP"sOi5Q\2- FCP"sOy5Q\ŵ_0(u!_7-"69P\K&60ŵ_x{j2`5P\K:zj2p<ŵ_08}j2`9P\Kj$'7=]K#Hrgŵ_!7S\KD@r2:ŵ_@7#8A25P\KO`{j2Cޅ_ =;8A29P\KPjV@r,=]K68~j,8ŵ_ ǂ5P\K\ƂCޅ_pG8nj,ŵ_FfS\KK]n>ŵ_Pf6P\KK,]nŵ_P$7X\KKSMr3 ŵ_P`6^\KK^nw=]KK_nwCŵ_Pv7Cޅ_PCޅ_P@A0H@n9ŵ_P`M06P\KK9P\K!r(j8?s#,,,,,,,,,,,,,,,,,ޯh͛ Hv?d8{C(<ޯ;,Y<9eB2a#:2Whj޿kg29nE8; ȓlXnޯ(<Ϲ 5&HHrޯ(<ޏI [O@!_G[Wxޯ2`-05g7.K]W=yAjwSs-,Sᨨ#s |C,y2ka tA?1Ss- K]W>k#kwDF1n)U-S K] I:&ɢ`_P"aG245n8U-FSCȢ#12+;2nHw_Ȣ#12+72n0-Pp7.A0:2"pU-Q{ѲPURf:2XmS+xχ-Pp7.K]E,:r7\d c_Y1!.Hnj2-Pp7.D559s_?q ,)ؙ1Bn5O -TbѲPURf:tmS+xޟ~-7@.K]\%e#_@2 _1!.wzޯ,,,,,,,,,,,,,,,,,=uCޅ>x(0Qn|h͈?ljS\Tn|h͈c$$O7$'hTQa4=s{Mn|h]F/`\E3 Er($=5Aޅ1X 6x'y|Z|NCc*s_ Bn]n|5+T%mFZP#A_`O"F$'X BUFo?^=XP@"H Bn6`'X BUFo,ЬAiJ=XmSACS]n|5]fWtNt{4^tmSkj:$'\CJevEMDWHf|s_`I`u]n|rxQ+I=zx#I'A_$W]n|\sQ+I=uTrX_p~$''ZQ+I=EnTrXS|jCr|rx\0w\7S;T#,,,,,,,,,,,,,,,,,ޯh޼٭,f$1lHﮉ$,,,,,,,,,,,,,,,,,RAr^Cr|h -LfK$w[E$'h ”A.Y!+v[$'hLo!+f_n^Jr|h͐d4^-Yl9v[$'hޜSM&5!&O'VbFcA'Vb4^2J$'VbƆcڌx/`x'bDp{S]n|"uƆc.an{zFOn|"nԶ D@"xNn|"uƆcEZ++ǹAEe*6N1(Ի(Q];(AncxP];(Ansxsb,nP5'(A\(, YT˅xyy˅xyPT3(AnG5sxK5A޻,N4ajAc0,nP 8,,,,,,,,,,,,,,,,,(^_ SFԑxA|""3cjB0_xC޵M_ SP@"Hx3D%Ojl,DdA4D%A0:dNr5DB0l,D[gnL_0!!_A0"H<]D% O@!nL_ S _ >mj9DB0_PV@'""bjDB0_`O sƇnL_ SA0:dNnDB0_@$~nL_ S6V$''&.3.#.P,_ SRquD3;\_@VZnD%Oj_KF!M;Y_@| 8,,,,,,,,,,,,,,,,,(>H8|'A^TB0q$w!ƒ]jBQd5|'U@01WLx!c:sA@dH8|'A^@qz"<2<_`G4A_pF3|'L@Vo~z"<2<_PLi3_`l1|'L@Vool8vz"<#т4A_`×A|qr?S8A"<؅z@d^[0X빁"|mFZPs!ƒ]1_`lpwj|Rscq0^,/ "<X9l') 8,,,,,,,,,,,,,,,,,(<h.}41&iPF.֮2W_m_@7`(</,,,,,,,,,,,,,,,,,ϋ1!3 d c_o0de .s0|'FPsᎇvj"<#,l .s0|', X掇fj"<#| .<|R7#a$w!c:BOyA|tj|.?B0.+w!3Ê#,,,,,,,,,,,,,,,,,ޯh.}41&iPF.֮2W!cBnޯ,,,,,,,,,,,,,,,,,X2Bn_@2 k:BO;x|Bc/i#(st!c:BOx|Rn03Ϭ`;?Br"<#_@0;|'#x"<#ѱt;|'U|.?XFr"<#_`$wj|d1c.++σv!c:BOf,_Gn|R7#σ[w!c:BOf,ۑ6)1|'NFB L2|'5H0.++t"<#_`lKgj|i+ta c:BOd`rgj|BQ?T#7s!c:BOd`r?|'+te#oA5r<"<#_`4.÷u|2> FaqAYn"<38,,,,,,,,,,,,,,,,,(-Pp7.K]\%eWh/obMFn_-Pp7. PURffN@/obzޯ,,,,,,,,,,,,,,,,,|! 8,,,,,,,,,,,,,,,,,(WG6HnM̍UX- CsexJ@e`]G>4S~SC39%/`R%$/ TD!dɔWw#+<=VG1U"{֑#LWww9G`K(M4}592:@=exj2418@:1U2x?#.B%Qja!+/3[o;)L8VxB1Ae0WǠlSqm-0:v)ZfV2̍e=-TKnfr+=2o"#QǠ#sSE!SG;"ͮ`w~S <"j B%,e0̿<DAhmA)]F3Kn(.tsj/4sSE!Se`?"Sj/1U2lOKnY5|7roQp.39o({xsnfT7\ax4Bt1>C>dIQ -+-B0k 1vl[_0/DVBX@VBEFp)bR-, Q _p+<H C>C>7HPp=$?RDPCP"'CAnE PG\RZ_T5B%BXwn+<3RbMbA#L4V/qoA5Psm2aQV0tssEQ'iAIlv-~8d<+<{r-cL#Dn8bkR&sђ<~T5Z?OƧ6CLF/! @n\G~6@-0+Dn"0-a`UTeJfPEa5&IQhrAnS% SSx;f.(pP]s>×A|2u j 4#cjr3|J4HR1hjEnDF7 %r":f.(p Q0_{q1+.&q{29S "+D3cb*.Y/xT»O9NrI29ug%7X77,d!F4Sb1B0f.^Mx\Č0f.0cP'b0dpb.Yo@279V,8ixŚf.0cP'A'6T8q{I+(?f.^ņs{Uolp;1fG0:O :LPa @n\G~6@-@+Dn"0-N4H[,'T|,'ri#+T C0'QEU+1xC 1sAFmtPP"'­xAș/, l^X oC0̷\QEZ<lQOq1!?B4caj4B 1Bv3T8q{800=^rm" 2.N3#KQwY,AxoZ l!!$/, 8^1TQQ.q{%bαUBL6msm<1șѲ]&>ob,s4oRrB!p0sAn}S+Dn$GHwBvc}-[n_________>4u,,󵩲hE \6vKNF@zlapu.Uj@pgN#2ͮ<5r$lۡ$+ehw)D9,&ɪ$!s^nH+aOٴaȃT)Ę4 ^-P6 TS\{Jo0lޅp*iRQҾJ~FgR 02Fz1In]flAmDA Xī[WƵų1 '2S=F%/!- k ⿍XzT|FBVaZM9bO]Cc:! LGd=E&mމ{9R0&侀LTFJT6L lHbYmlǶ1bY~j|BՏ\CO`'pP -B 6y3FJe։`MJgXKr8CtU(}Z`j:`Nf݋Aѝ GCG22 N9h(ѭ-]fr=WndC@VEjGQƤR◎deSKIbe%t(VA!!(h^g0mLZ)%)|b S*+MA6[lj65Dq_w/і'0C&&[>],sMڝ&a'-I(R HV'6rG7zZWדM Fl7ROl90']o9W 3o620pmV=uG?|86ugp^w&訚tŻɠ(EkZtGGZaC"$5`'HR]W&gc.0vˆsٚz{d_So39"XxIo޹ !'#vty Z grC#HZX:iyiRH>xvՃWȉU%sW-1:JH"rЄ(_Vӄ_BaЀ^s'2sp4;6`x4Wb_¡eum6WlnQ{şksph/' p'AP R"U`:TcZa`쵦`,o*qjNuyn*CŦa*dJ*?jC''U'p=}>anSlD(s$z^sgQ5tKY*cWryI5җ;lh0*FҀ>x%6"-wG7ᑫ|00=fTADATADATADATADATADATAw]gxhRGK8=3_l5dp5u$jq9#xr+e#8E&WF"o֚"\e )03N9ss٧K8B* u=i~zptOZ8pɵ7g Kq$rbgP-@:&f5+:=Lf0v>> >Txa2@ a;LÎ+vrT 9P+& khG7Y@PdiQdId8eVee"w$&f>Vfd&jSS0$C48<5?ED>DT{&BTFgU*3V7#2b[f1\51_w+U;7z8k@ǩ7R}+LD=G(~PՍM3b];rE Q<z6]i"y!-Pq/PS"0YV UXdG2>z垄HRDk8M)FSX0Ep 9{Cxv#n\~ Jb@Fɲe]ZJysZՠVͅ7b3=uso/*5!*.y9؏oRJE)xq=VM Fh-as4?חDց9pWRs^l3,q 0ڿIPlkdo%skQeqK-pB\$"/7aI*.KS3TTSu&ruAuD?TTTDHT4h͛V&&xc_m:-Wd8q^/CcZ,.霎eIDm"f|1'%],\h7!vr'l1O ~'L/`_?B+)ů݄I5nM)qS `/ic. 7є72 Hx;'dOdED uo-RAȡk6O&qS `/i0.KS3TTSu&ruAuD?TTTDHT$YsbE*wZUg+T?TTTD;DJ20@O4V{EK+7h͛V&(,SUg+T?TTTD;DJL06sUV{EK+7h͛V&әؓ!3!ݟV oi0MB&z2YZ,spp#8-_~=4%vcc>W~]$ LcJ-9{3Ө~YCt'+[ƺ/RMȟK+8>:s dЂ^!.B);Oc.dЂ^!.B);O|P 5, $QOz6LBA@-+Td./S꒸85CE>Ug+T?TTTD;DJ20<4V{EK+7h͛V&(2uW(ïd@ sMC*Ԗb!i8eI45'87R;{"ӝd CKW^_~=4%vc<=Lc>@F?o=uv_},$J޼#J-9{9 QXߑvz=%h;+`_?B+)ů݄I2д/Qct#RQ_$1Խ.t#RQ_$1-k,O)QcUIk,qR*$t#RQ_$1R+.' 8k x~2E1_0/;h͛V&E1(ЀcJ {'b'_$LݩI&_.#vnQ 8KX7!8~ p\pScWjqe^̛&ǓGms,,Wq\e ΛکԙHaC} %!({% 'gּTB`6\@'yR7 d@Kd{,WG=It6Iٓ86SdZd] !rO) 6 cbKGX>`D%OŊ!IWI~-zb45' PN|=~.XM$KݟbKXopM~*a&x2}\ p\PחHabs\Pc9d_i0'\I \H: vc9Ը1_i0Wy{d 8fZcp4/'.pj}8K^\ʕW^ZTBw\@'ƺ/RMȟK+!r: QxtE0ygO?c^OWc/hPnў!'8BȡΉ#$TxtE0yw꒸!'87OwqcjjZ:L0r"+?YMlҜ 1*}sr/0Rt{P/PO&USdߜ !d?LOMZќ qU/0}`KhϻVE_,##GD}蜯cjR9"&onzY^jD M#OBvKZC#OBl&#%z:ɵl#'bWRܪYo >f~Z~'2奉!kR%!-Z^bA^G7kȮyy}<+c/  Cz^'C-7b2_B(H#xXZ{"F8$t̛}; c¼t}8cZQuA?nPǪts%^L&sRTH8Fi-[r7slJۊO5rٟŪ.$`_Pj&"yYlph^'8H#ۦei;:z@83"- )P`$)ů݄I2/a e)F9&qF*xi] \bcgDd2m,🴞aQxz7$e)F9&qF*xi.KS3TTSbAuD?TT1f*xP1KUNּieh2mWy7eZ:z$*xPŰ$*x`ǂozC#'oe:ź7{ !f*xP'b SIb٥2axР2P{T6šZEn6ו]mH"F(|iajۢOiҤ+uu45',-}^5W͔3YfШ@^1rf*xW՝OZ?qibx2 &'nCHb?qibxDm ӪA iX!*xa^`سOf*xW՝OZ?qibm=z /1M\L7VW#@9XKg|d"D+f*xm7œ7W*V&719М*S^ʭ #a ͩ)v%yspu= {b0BCŹl XD"9ZS8kvVc3!qSdj{dx@ޅcx2*擛agGf*xnrejIz-gx@c/Y4\|>WqWCJgQ/f*xTGCEcT$Uˬ5d@(`x&rbFnfw^&KhϻVk5d@%Hu7!f*xqe^^՞*xpd$3ʑ*:޺n*5fHQtiX;2z!G7 |a#'w{kt{dmA-gi9[l^ ,%tո1^!=WHl@z-gK[SyޝǪ^G9Xq==W8 5o *lR'wZZCdW\+ϋ+_cx>`m=z"y` =7$o'ƺ/RMȟK;f5d9 dO  &T*x. 3A@rbiB)ђGP$QOaZCU(Q5d9$dO  &T*xR+.KS3TTSbAuD?TT1f*xP1KUN2L`aZCf,`mZAFnfw^&wJNj*d[0Q3qibxjdvּieh2mZCs=!f5dyP HjGZ{@XlZZbX" ͥiZ2i2]'_Jc/힀${3f-ZAב10KHq10Kb0YE .΂5AQ~<I~8]8.8bxjd*֔ǩ)fL98h,X3mbZCs4'gKgP&'+MmjL+YrbTRDȓtOn`Y&gusm*7*7$*x`Dp~ p\ P u@_Rokx+&f*xp*8}/<#bm*1Gx*[qx+W2/f*xTGCEcT$6(`xaL`axke;?+f*xt?be!7]%]nI1/f*xTGCEcT$UnP(`x&۱aL`axpU*`mp1qiKhϻVknP(`x&qnPhG8*x7xba<̩ڰ:ݭ΄WHLb͡0(r;tS&6o亸NQŞnPXhG8hI9Xmx0|bN%, =+JmaXA| \Rb&RA8D:E!4b#BZCd%imH^7x0K4l`7 n{%Nf/f*xTGCEcT$&U֭f۱!gpZ)fL`axp1qiKhϻVk֭f۱JUF9fWRz'&< niRwa7]ѿJ>f*xW՝OZFbjJXމd aǩ)|L/`_?B+)ů݄I3/axsUxO5qtsL]aɅkb20c^$]3G@7\!F*x-qdjd2 e&z7xiBBE$]3G@7\!F*xR+.KS3TTSbAuD?TT00=~1f*xP1KUN2L`axfWu"FnfwJQ&cp"KhϻVQx=ȫI7(-*V&p*V%Nf(`xpU'%yspztɋYvxxXam1bX!='bGJ;+ZYsp_Pw\ד7G'z=yspaxxm-tS&C@L̲+iX6Z,'Q~*'OW}t)]N:GHX'f`ҼrM9| d6`Jb(vlxB}]rɫuຖxW]n|6`Pgx` nM$"6W;rf*x~G+A8hw7מ5ttf{='%_N0lxp=`I&+KwrՂmrf*xp=iZh;+`_?B+)ů݄I1fgGǮ/+zo {b2еqF{tR6X+F*x-iadJ&PfEȡZV K7qR6X+F*xR+.KS3TTSbAuD?TT1f*xP1KUN2L`Qx+(`x&۱aL`axpU*`mp1qiKhϻVkf,`m\bSd&̓ix 6cj&z'&2ovDl"7!ו]',5fWv_2*oZU𓹡]EG,8W^MW֭9SJx X  FN0{e-}k-gjQ5_BNr9hi$]UӫM$ɓ8}J}W~'lŒ\\8q=fq3zV ɰCŹƬ fIki"q=f&;,m/cv,NtN`j/ &*8[Aǩr]Yr#ȓ\JXa5HNj#W]}|mvޟnI~[|IE14&d٪'wy.MZGr0ͥ>ܪ'7^ȻZx#>0xx/+zͦZbTxpp#s#W}|~5nձ$TRSU.ۼҲkPax*Z9SAsg:d}zvxzџ-ײkPaЦ9ȗ]"9ǗZHbY_Gb#|bGmz^#z]W!;YKW7*4:N[C|xs=Hn]PxH-Vu)xxx+Si:ܪm /\hoωf8R5nugXRHp$ح{NQ|%×ZHbY-de;ah >~UAOO&z p8!7TYb1!%zxnz-w#>G\EHyԾr6x='8}wx}td^ 7qbmcV5pv͔ů݄I30N/##S$Ob!{WCWF )j`*r6x3upEJ& k$4HYr9&]ݚ8}WZi&zy%xzn%5Qs=gKg܅]r]g2)c|1bmԥ2nO{5tb}Nd /tuOm^'- :Z@' [кw,Nt<0\Q$A-ki"}|rL\+Y$dI8/9}|u)cZwDwtNjwH9}|Χun2ZʼM0tm_>#W&kZDž^fz%|z]q,Nt%lZLz-Z:4%q2E-'n׎x8#1 AtzAI$w!%S*%] @I_v!&f0FN_}wH$W&G_A'u"k0n]tFN7O_'rX5FuCKal7'|؊X'\;_'UݽYK:js.A\ ~Yn[%{G⪥'\e7$!WrrZT[e/ٓ̓8}|~uWhXx$hxœn0)`e:gpTENi~}ו]sZeVU#qiRH5ZKu@өj"@q )7$yO5y@zDh0mO-]6LGQH~zߥp)7GRݔ'zg|0t|sM$]֓լ>Xzs0}%@A~-l-e9}|~U8W8S&)Yr&j-zy'9zyeIrp*k8=-ɥa͓OײkPaL7V 5I8}|ѲkPaWXZ}|.\iYEix|1MaYF #%z[wҲkPa vRbƺ/Ru8H2U01zb. e 9΄ol_lvǺ8Z7]MȟKK982M$f0}|~U8jz%|mA}`5v1dє=OX~tZ\rd?/RMȟKK&r qg${4 !S {2*.01GpFG#x2* +SђE6,GPnd2 ea"gUQ,x$ug${4 !S {2*R+.['D7p?/SP]hsX[ #2 AtpX[ּieh2m"g(,T^G7UMbOa #T#r=ttu XZt6PלIys={DfP[W"ep&HƭRwZ]᪲&r(b0dk" c=-Epp%=@QgH^' [_yT*[ƺ/RMȟKKMc)RsrcNpz7iЇx3 srcNpz7iЇxѲEPn;, u$QO1;v"BQ,")!$.n0'GA9wsAP*i}K*R+.U1;v"a6uOr@aI6uUQ$KhϻV$)Y\xrg:3 ijz:%Xmmnx7%,tuLxӸ11.5f0#>o0S0DPgH'R^ =3'0Z!"a9Gf0#Y_5c2al!UY_fjz:B^uO 9;00=TADATADATADATADATADATAv"a@^o9fWRz \-g' qzh2bxh^?B+)ů݄I4/o"1K2* I7aw2u XZthS30(+S qSv'SPbEA6-Ij _dn2 eoHȡrop+S qSv'SPbehS/B꒸Qp?Y*pE KhϻVDoh ,T^e4cv%{$bm$H`Cro7]%8K#r=b##%XZfoGߙ;n{^&2(b04k,c22cv%{tdPCHbz[*Doh,c@#&b0k*ƺ/RMȟKKQsp AtpPopBBSpp 98vU2Խ.0j.I &*%{gBc$RQ6bg: o/ُt I\[?*F%9Jo I\2$2Y]̒j[Yy|Z)ta!%t1%MY0@w'D t'!,Ixb-]-g>yng|\'d agBDǪrP7AF۳L/`_Pj&"Og88^RQM#Q|rLYMȟKK;qQ#c.07Q# 嶊,MdqMQ, Q$4Q#0.KqLx]vm2*o'tg7qc`&R$Y@l޳}B _ O2*_ <鄓*k0f[kUS{MnNbm-8iGl0q-\l&XSvE'06 l2AGXWIb٥2-HM::L&*d{Z:'z7L&aH5ZލA{ZqStmd0F)"ts΂i'2m2*nͩr]2*'%.'"c]Ua(㢒LG-aޝk0xr|iiuZd,UvK!k0sgƹvtX4r2k0$"Y@qET!oW5VQ+RZD28.8M";5::AQ qF /."/q*e2q/D_Ïů݄I4 */QَE;rOV*p_OWQXw"_m7f7GXw"ugL43fBQ7_m7f7G%S*Pw&p3c&)WD3C2){vwZ{d (p})}d |%g83$k71O{d 7c@2a71wZ}O@!!+\U'0gU&c0%XVlM,)泄s-awyo'f74fle/^JP QbX&h]]Q"1b<GѲkPaG:+^7guAl$RPtT8s*  9M;]MȟKKj+7)cCTmA.㕜96H,AdrdIr$QMayrM5,H*8LBS96H,Ad/B꒸Qj%,`m)?0778 525H{[٨;h͛V&Ӗju48b)cc8+w%MV>V{ϼW$fK@H#cd^NғeyP8'脊X[*iG7V+7[d"t[*}7P/FI6UayPGcx58K+תҕoqe^^oy{ӯ7x\ޓdHiz̥7,AߚZEדjfī$uppr%Mߓ {*h%zF|q5WbyP[{UVInyP!Dˉd\_Alr%~˄e7lxs9+gėH{ nMV87Vbb1d4LlIz,AV(`y{,010fx$!;e-H"flyPxYLu^$ǥb!Q-~&gY*,c@#&1kq='&iֹ?rn$Wx%"pQts6OwbA}=Bm:ttolMz L(Pb0<P '}w<ɯ/i0%b,%XZt*l!EY|"ffo d2!w=t*lnHRLYRxT[b`&i/f74*78͔ů݄I40N/ayrS96H,Ad&m:G6=9Kl`)c7x˴/RMȟK[0{zA2}2*.03f+S 7?!SѲ@$QMOV5,*v$}ɼ2}2*R+.U!?;h͛V&0{r T^e4cu^lx^[)[H6 G$7VKq1볨l61(Xӭ7&0{r@^5KꬪK;j#̛/;+`_?B+)00=݄I50/K4A '$4Ru8ivU2Խ.0]Ug+T?TTTD;DJDA1K&0a:sEּieh2=rkbm*ju XZ7ʼyZn*0{4jd.UE*W+9fH"F轄Cri s oz,vg#yinK-ͩrV!{=|1sMkn6Gvtԛw*o)d2cv%C,SppN~d85Щ^g8SH(bm$ ǵ>WnGyu)G3w$%X&O"bd r`1 IO%|/RMȟK[FH8pB H%ici48pB H%Bi[dDPMd.zk流'T ^*zq;f/S꒸qMrSA LPˋhA L!.q+VB#(@TBtpU*y0Zz(@,0p CA L!*@w^@wJ;R ]Ck(@TBtpU*y0A,w\@,0p CA L!*@wJw^k@wJǫc/e0!!pe yc/0TBtpU*ypqc/ekmYO%_wAne\tڵ%YO%0c/EBBի)gR %J7&|c/)xOl!@12e]&r@l 1Xo$*?Ӛ6AYP +K>l.8E.v]Ck^7ݢ|Z+@5E/͔ů݄I5Pn'T ^*zq;fT< '{"oc/M8i~2c~&v+77a$ RH@5&7'l{%co7R?8 YoW"s ![%>e\O+doXJ`iYFlx79fA穥6 uOz8Evdɓz6[v9`^G1~Z#׸1Q$tܻj8H~yb$TˣZz%!Tatf7?%`dI!g[+y}]8K+;r@]MVۀm6KF%JK+ ]3*%/ J,Wsd^BX\7dImUF9f2&Q Qt%&2*oyXN7wvL8K+&X02*ݸ1=v#߮%^̛ᬪKt(`8(7[uK+תҕn!*P}TQ2d)"" *V^ys"Oͯw%[h7]%$h0{Ъ79UWzަr,`d 1r׎jcU31Ie6 !g@U]|#!Ib)+WbVNX2*YzeS^SL/YO4* y%4*,&96G$6Bb7H{w\e{4 v͵_~U]6,׳_3b(Pߌ׬n8ר'+ZiR;r@1Bc%7v#vmo%/Y8-ne0c/YO%0m )Ө'+ yc/Ǔc/pc/)xOl6@5=%_N3.a='+J^61I}=,vJRz,sUs@g"zsaW@HWHKz&'+J^`I1=~8$@H#FI1M{NQ| yJU!{4R_P6 @5*i5K 4ުcQ'͔ů݄IFH8pB H%iF{,mx`ig='tXR}=^'?Y*yprc/epRb(tdzawJ?(tdJ,w,^ `@vcc/%>@0\O/(Kz@v3pO} U¼>OaUn"z<]%.œ'":?s'+%\p9n_W!5Kmsˌ#T>M:@5zW2WtuH]2$< r8ag.! ZX(@,0pI:-7"՛PӞ&ˑc/ l%|e@^==^Hl`7HU]sM1n3pmcfgo<ٸ11b(͔ů݄I5 */Ki2^a ]q;f12ٜ&S0AIBkI $QOKQuzk$Vٜ&S0AIi0.UK(}i t`p?Y* Ż}_Z=$aqQڥ2dJwj,BIO5@""dK(P*-WB6(P͒~%t`9""Ӧt7]%xbFWGS5|*GQVbjg0%w*,WB6[);yK^Ԫ_ ǘos=CJ7jj=m$O9YCvեJr]oI\0&t`jwŔ|]x]<ו]hWor4f^XnN6< J7}Kx5IOwOqW"[߫ÓNFIO%`I6xUXKOK+7Lq%?$˼IOmE`E -G>W2q<b?%nGi6N#͔ů݄I5?/Ki2^a ]q;fO:zsv39rKA6@F8ʼ$7VKސ\xrޖ6b2Kq%bu5l1iЫY0(ɓnn:W=EKxe"Fq HY7Q2\9ĹL/`_?B+)ů݄I50N/qmpDH,A߷ici1Tm};'dPn{dIv$QDe!sm7A$QՒRMv$4H,A߷i0.ljx?Yt0K+ Blm)?Yt0 ampU*" MV(ϯK0aW4h͛V&Ӊ{Ϭ8p:amAi[wmeWGW6ao,Adw Fl+tuF|Yߞ{`H{,AV[\2FtpcC͑S%s*g#a{߫ovX.}sGal-ljx%a~!~s!sm=ғֈ}m1aN99&=WY,ݪ'7x1"AϑS%xHhxmffc8Ee}%gBlm)%YQNm[*LmmrWZ8CDuW͑co$[7H/y#s`},OXQjz4*0MnRs<]MȟKkMGDˎTm};fO7@+t(,c@#wyfB0b2Ց=hjpqU,%&g}'n8Pr3BXI#"wx&9z_6׃nT7W[|ّ,A;V>evt0׃zme !smDFzYno׸1a Cvח'=l~П=bsl3+bo"inXK9J 4*0x jx*WXFɪch;+`_?B+)ů݄I60/a88TZeBF0S۟jTZeBF0SRdG1,rofOQxz\JHRT j8H,Q)UY&!8l;*R+.f?;h͛V&f@*j"_΅Epa񆍃KxGeS~n9]N"PY&!a={_(ް1?HP[ƺ/RMȟKkM|n AtpPopҷU,W2Խia+'}XXr%C@ѲD o|y%OQxz+ $DtpPopҷU,W2R+.KS3TTSu&BCEHEDSHD[|"{U;3W4h͛V&|"p0sn4ÓlޒלΆ]tZ9fWV (GvJlvU(תcQHٓ)B^|"<[P s sXZ(_vVVrȎtvq3ѯ=G!"hw6lj&Ԓל΀TH%JW'& Gcx5'rohvpGH8[_isf͗)Z|o>ƶ❔_HlB%#tYrfH[T⥜5'We&#FS:R<!O Kop͗)RzV BRPAxEWn]bz!mh]'!&G~ƺ͔ů݄I6/aXZ\vc_Vbvlce7e%fX&GVdjAEvE$QzSXZ[v7e%fX&0.KS3TTSbX_#T?TT1vh[Nּieh2mWy7eZ:z$cX&lSSX&/,<4"y&]_HzwHhX&%VF^vpQ%/hKGeSZVl}]U)$bm"0bajX[nOiҤ+uMU~̈́I?~I~8'zÙ|q"Fn71=8(VcXZm*Տ"ݪ*=2mX&&GFKI#(TMd^r H7%!w-mX&ƺ/ӢhXZ~mtM$+ 9ȫ&hon:FZ'D Z'JRz.TݭTX&XSו]6_#^z*c^X'^',5%zf5dP[Ƽ-?B+)ů݄I6PaXZr%PzVlcY]!W7aX&I$QMaXZM5,8EBr%PzVlRO/S꒸85CE>/vE0BCEcX_ƹ$ `SUUaX&(Dm&IwJQ&0aSUUaCd0(vpUV0^vpU' `SUUaCp`,aSUop`w^W$856(vaSUop`KhϻVaX&zd'f<yspX&le5_x#bx& ͩrYԝ:*=$Z>^gPߡwA/?oX&(DmJUF9fA*]dX&m0+Kw~K+'YgX񥬉#~yUy#q*-5,^Gcyv@:d@cPdP%m00=>c8lv@:dP%H҅[%ASX&6|Os4cCd0YxhBv,Q)UO0׳,X͔ů݄I6/aXZr%PzVlcEOv@:d@caCJ^dSXpd$3ʑ*-:ުZK%0׍C|tb|q"{`ns *=rv\NTrve CK7@{hjyZKr ,%tCVWӿL%_N3.arvl"Bd8F>WU6Wx%r&2ѓZ aX[XWY'ow\J9mIZK9+Gx 18at]97ZܻRCq[ńts%q?_![QsѸa%> (U9YBC)7 -G"9ZS8kv);!qSdj{dŇcn2*ʾpdX&gtverejIzne0vpQ|8zOl&qWCJgQ|ԨHC&'ުZ:J{dX&Xl0 Y9!%6:?2?GaX&-`$ R v06Gc7vlt?}ie!7VŞWvlBýѪiU━J^+vFF8k]tSaaj3:01KhXZ]sO2bb ]nd„sbM10 os=iDI97zBȇ'r "q 9e?p8]᪲f5d@@bM8d@M9X]Bmv@:d@cW>˓0f;|=Tϙ)Wc|8WhX&Wɫ`z9"j7X&g.j&|Gqvl"=`&h^?BqPEDXA ӔII@Y@I RYn Xp(L$w@%9H#x]~G+?%rCx--(CONCAT@CODE+@DATAB@DATAC@DATAI@DATAT@DATAU@DATAV21CODEDATABDATACDATAIDATATDATAUDATAVDGROUP(Qߘ( .( ,( *( (( &($4 CONCATUUFFFFvF4vtvFvFtNиvF]NJtCPYSTR@CODE+@DATAB@DATAC@DATAI@DATAT@DATAU@DATAV21CODEDATABDATACDATAIDATATDATAUDATAVDGROUP(& ( .( ,( *( (( &($4 CPYSTRw*UvFvFtF]tCTIME@CODE+@DATAB@DATAC@DATAI@DATAT@DATAU@DATAV21CODEDATABDATACDATAIDATATDATAUDATAVDGROUP(( .(" (S ט( ((+ ($4STDIN STDOUT STDERRDAYNAMEXMONNAME6?SunMonTueWedThuFriSatJanFebMarAprMayJunJulAugSepOctNovDecc;=?ACEGIKMOTIME: SPRINTF= CTIMEU;Fu$vV;vVFvvP]Ë]É & ASCTIMEJ =J+JUvD lPv4vtvtvtBqPvD^VPvD ^VPP](-1&8k LOCALTIME 6#' $LSMODŒ $LSDIV?U vTFVus FV<RPvvz3XZ<RPvvXZFV<RPvvXZ<RPvvXZFVRPvvXZRP00>TADATADATADATADATADATAvvXZFPF[%FFFumF;F} FF)F֋F#F'F6;F;F06;FV+ЉV~u#uNF뾋F!F]Þ[&&0&6G&`&fw&Ď%)&%.3s %.3s %2d %02d:%02d:%02d %4d QtDELETE@CODE+@DATAB@DATAC@DATAI@DATAT@DATAU@DATAV21CODEDATABDATACDATAIDATATDATAUDATAVDGROUP( ( .( ,( *( (( &($4STDIN STDOUT STDERR UNLINK DELETE Uv' ]r&tERROR@CODE+@DATAB@DATAC@DATAI@DATAT@DATAU@DATAV21CODEDATABDATACDATAIDATATDATAUDATAVDGROUP(( .( ,( *( (( &($4STDIN STDOUT STDERRFPUTSՌEXIT/ ERRORԠ U6UvP]ǜ&&tFGETSS@CODE+@DATAB@DATAC@DATAI@DATAT@DATAU@DATAV21CODEDATABDATACDATAIDATATDATAUDATAVDGROUP(Uۘ( .( ,( *( (( &($4STDIN STDOUT STDERRFGETS STRLEN FGETSSUvvv賠IF t2vF~~vv u vvF]{ &&tFPUTSS@CODE+@DATAB@DATAC@DATAI@DATAT@DATAU@DATAV21CODEDATABDATACDATAIDATATDATAUDATAVDGROUP(;( .( ,( *( (( &($4STDIN STDOUT STDERRFPUTSՌFPUTC FPUTSSwUvv詠5 u]v Pu]ø]U &&ڊtTIMEG@CODE+@DATAB@DATAC@DATAI@DATAT@DATAU@DATAV21CODEDATABDATACDATAIDATATDATAUDATAVDGROUP(2( .( ,(F ( (( &($4nmmmnߠ mޠ mܠmڠnנm֠mԠmҠnϠmΠm̠mʠ nǠ"mƠ$mĠ&m (n*m,m.m02;4ZȠ6x8:g<F>%@B0 DOS_YEAR DOS_MONTH DOS_DATE DOS_HOURS DOS_MINUTES DOS_SECONDS TIME1$LMUL UFFFFFFDFFFFNv6FVЉVށ~v60FVЉV~v F tFFFF3RP<RPF3RP<RPF3RPXZ[YQSXZ[Yʉ^NQRPF3RPXZFVvT]g8&& &&&&@^&&&֠DNÊtWILDF@CODE+@DATAB@DATAC@DATAI@DATAT@DATAU@DATAV21CODEDATABDATACDATAIDATATDATAUDATAVDGROUP(( .( E( ( ((U ј($4STDIN STDOUT STDERRxv00>ʠnjFOPEN DOS_ERROR STRLENERROR݌ SEGREADh SYSINT{FPUTSՌEXIT/ STRCPY STRCAT FCLOSE FWILDUv觠X N| Pv~ $PFF~s16FuPF^vFȋFu MPFFFvFF t*F:u F\u F/uFFŋFuvEFFFF;Ftvv^FӋFڸv^Ӌ6"V&*6V6V!PFN6V6V!P t2uv]66PvvPvPvDNPHPvDNPvvPvvDNPFuv]ËFvvF]d& &&%)&@Wy}&+/&6:>BIMRZ& dkrv{& ŊŎřųŷ&& & & & & & &u FNEXT^y^UFF~s16IvF;vuPF^vFȋFu cPv tvvƋ]Ëvt PO6V6V!P t4t66Pv]ËvPvDNPHPvDNPvPvDNPFuv]ËFvF]$t9=&l&x|&ĆĊď& ĞĢĭĶĺ&& & & & &FGETNAMESUFF~s16ZF;vuPF^vFȋFu PvDNPv]9=&M& ` FCLEAN)()UFu]øFF~s16]MF;vuPF^vFȋFu Pvv]99=&F&cfwild called with filespec too longfwild called with access string too longfwild out of channelsfnext called for invalid streamimplicit fclose failed in fnextfgetname called for invalid streamfclean called for invalid streamŊt"W?&094MH+DQ\`ASCTIMECONCATCPYSTRCTIMEDAYNAMEDELETEERRORFCLEAN FGETNAME FGETSSFNEXT FPUTSS FWILD LOCALTIMEMONNAMETIME 00>?TADATADATADATADATADATA*-дfNs$@FNaF C4yc/6v$1k@1S22s\ 9oc32 Moܔr/ڄɣ6a %0mʼ3G;oI@$8XyuCG%K3ifћ9w9vm۷q̭^-_+tQHV1']Ez4N9hyXtj2MN 6iaqӶ:bTA4"ⶣ: o0pvnϏz cwc ?8 jؔ cZ}!u̅j AZ&~%`PG__$'͑gu rtv@1萀Pc4+\pa y7c( 5*D_wb}2ބ`{&%` NrD8<$ bn(D^E GYҠlebg̽[m Q'eeI(0QEMG<}aDlTJI(BXAiЁFo4^:VBPuUXÚZWe cmqɖZlWoo)4pVq#yҁ]n⑷g{Zʗ HTxZjt(D ! 䛤QJ'k*VZe񆸩Bl8R'iݚzFd0q,1'lal\e%m^0L3⺯fvۛ:]kvA 7Wqf`'&O:թQrFSͥ3ϱXЎj_ QcXMslb66m]~m dP\s5Osf6)?dJfb &ƹ Gzԯ0N=bEHCk|/z0ndkZRr ]fT7۽S78z;SI,\b4q\09ncZʡ}ՠNKHŰ(NU! yh<̕ls\X)"O V>c l;Lk6pc,`Z;71k--pg zG^=9|/|[MfЇ@I&Xu A~e_=x h@[ڄLX m6w ^ EFF31, fCqISM F9bHxއMExhIZ.􎂦Ă0qu)utCҩ7,H\`@|J/s 3{/t!4}OOҖ C(j_j/0!9jLUHՖ] i8:fUb#j 8MQ4uWo)Cb43䰸Ƅ d, AWL$ǒMK5 ku9 "ztkQ'@-iM˺5 b%Ykfۮl:߾ 7Ah:#tet=:S2Ax׺NUvS!+MyC,bC LMP:T:YяrS(W .FA "И 'bx& ,7#aA`GUuO0XFuP3y*NE(`M՚7dFl-ˁg FҾd)› 5?0\&*0[b8 iÒD# ,`BuHFT՘= n,US֩V.am: ^ KPZFH* )`պm(HBb$^ m-u znx;r9x;{ }nV'A7pz/rF\5[jC:PW* IPW Ea+P@~Q4ʶuhxgzn(;(kzux'zk+@n~ww@heP~x+=KGlhWjF7 h{* ((hȁh6h(X+8-185s7l]x=A(e0HX%IFx[@KxNl8W I@EPni(kkvƊthxV3ȇC$HfnX8Xx9l艽e0qWGgo*,i.B2iq wGefA*P3Wؕ1P&ehx{k@sB@hF!9<9e͸p  hzgYe:{XkB Zwb6}'lS={u陠[R=@5)֗ÆMlou| = reR4+#(eV+ymZc5m9u)ize0ɜLeYAmYC6m9ęٶ詛MNf{'o 0לc ,9iѶ}Y>ugQ ]>i-[LPtMvY>0'h oʠ+JNE f6ަpLhJgդ61J 9"Pfi+,0z vr C4bHE.XEp&IP:pzZ\KZʢMX m#ymxc0~AWxXlɠ"ʢZIlZ.plZGaz, =@m|) Df%oG!@W(͚.0> oBzF J[tٺݪ|z嚊 J*:lb*.zѝ*wZvRDjt :mmh֋snֲV00?jvک:m>~+*2Jf@*`npQz7BJ z) ZMO3HSJ m:pܢqufʎ"˧"[zK ZRg%*]:۱d_JZ_=t=>[1jcײik 6JMʲ0Zۋ3No nFДCn̊[eiE-l2N0IǢ#<-КBY4;ílA-6N|ePphϫkmO\eVoOumpnp( Hʍ:P?Nj= r^]ݽ݊iȍ6hYePZSiR[(du)h`t}ln{CO]l+I;؞ lE]n v;b;!\ҹp1KAke: Ϫ L!pwJAҡ)`ZNk i/+*ݤ,m%-ӡE KxWlې}w)]E,ҩ4pQ I||^ߍ(tl-J\^AnN>\ ͟öE͢}¿y {Ύ-za ߻­ˢ򶍻d9, 6&` /)xpPoNo~)pG-]4A?3ޖmQ/8ߟa&C9K_ZmigNcS}`Q DQ#C9I{^Qj➘lB; 37`F,Зq?7)?ڮlO$'$@1Ё響Oy=/2 _ǟ~>0qꅚ[S _4n驞^[~PML(^otpYF}~TE$NnJ髫ȩ>~LnJk.\FF,qvPiX`7qbnd66lͱJ^n+\FF,qvPi`ď5a;ZJOUԠqk~ҽ.CGܰ ˳@||NYEznn.lɎEklMroNoao ɱ/fh?m<0J8j+n}^ɻ>oao z{.1+r?Zr?ZHd_4wOģu{ ¥]e[ nJ8z1 lU攱_P̤6ƖZtx6kV{엂ٖⰹm -T0N5o B.T@ģe`Ysk 1Jj+(mJjǎVɻκ"Js딻YRi m8zmmjm*nm 6mV2T0NlsK¸FģpTMwskFģuT0lD9ٖⰹ^`bfhmjmqr?ZꦄCLz̀wxlY̡U-$ >y_yLz>O&n{wDKܳ8Yגx=M⎿Ǥ6!1>9ٖⰹ^mt{Cr?Z]lTMZmOģuYm/wOF?7I|ew9)N:_g%(~,և@YOYKkJ(0&0wfbq*@?U-9ݎ$DL^}*n}DZnls;;Kq*nVCE3C룕pfls{Fģls딻Y""JDZJskFģ֟kDIB=P8 #noâ?룥V2=\4fhj?maS񻎣B!,pV=\4c룕pVk=\4c00?TADATADATADATADATADATAEv?,E>Z7 `C𩵦emJÖZB.U_{M񸸟&U_s_k>Zyh)~SҺ;n~UաCIAWEP{\s>kR- Tf Jlft Et> v)޺>=m?룅^\kbNS٦&jE룕pVk>ZdgmJ >UInĞ-`C𩵦emJJuI "_E?F)pk"_El?kJ,ܤK$1|(/g-WvnNpLNNpLlNp_:PVWw5yiVC:,01NP{엺&nNl+< )-v>ukJ(wL,01NP{엺&n(Np{+6opNP&?(oIpyNzk~4bcc:օ?f4AVxAD~63z1BFDS6^AVxADSFJsl79BFD~6zAVxADSF ^W}i52g}`d9.g-`vk4jVsirsW3[] qF P߮1qd\{f~,r@^ظlfO6@Mzj.jtpj1}uql';7[PexB,u0*cbh6P-c-0 v-dgP{b 08`2 c-` LvgdP!6P-c-` c-dgP{{!6P-c-0 v-dgP{{+!6P-c-0 v-dgP{kPyb 08`2 c-` LvW@!b6P-c-0 v-dgP{b 08`2 c-` LvW@m!6P-c-0 v-dgP{sQ!6P-c-0 v-dgP{ 08` ( {!V1xB!f @V߸H$fCNLS@/LSVFb @m6/OI0TALfO!$fCNLS@/LmM!$fCNLS@/LZNP!$fCNLS@/L PDБ!$fCNLS@/L PN@!$fCNLS@/L PYb @m6/OI0TALzE@Tb @m6/OI0TALDP!$NLS@ I @ nUiCMCMyMPNP,PDБ,PNj,`DP,ISs@@+_a+:`;xt/bKK6xB 1=bc6c-0 v-dgP{b07 c-` LvgdP!sc-` c-dgP{{!sc-0 v-dgP{{+!sc-0 v-dgP{kPyb07 c-` LvW@!bc0 c-` LvH!sc-0 v-dgP{1b07 c-` Lv7ub07 c-` Lvi@obab!ƖbU(0Gn#1s-0I 6 PqP-"18Pc0f)6Fb8c:cc7(0f2Ve4b-Fb8c6!{4b-Fb8c6!v@0V5b`3NFaP>[sfve`3JaIਥa[s^f1CV=d[s^f1CVfpVMj!wuVMA3Sy+oW^f16M` :6zM` :ezj[^f1CFM` @KDsp]HASkF^f1CVsiyŽhVfpg6wff[H>a^-ܣ**ܣ*MWopxFfH` ghV5u&5 `e`3n5TP|s30]S,]eL3JQSJy_JhVf2μd4[[ ]pCLM]2a^->[[ ](HLM]2k(52s]2!IA Ne`3NF⎟e[Hfm~DPEgt!tgt@BC?-trpY]IAW>[s[") 6+0]jJ[s4ËTgF1gM` :]@ƟM` :]Ae6ҵ0M` :]j1gpeJd ZwGGq0aM\35 w&`oӚл ̍>q (LAȹ%F 2'Y'aNxI s(-Gnp 3"1Kf+Jƚ X&6mQRKQRFTe|b!'FXTMS̜D¬$.%{֋{*wÕau3l8r,i(u:*3$jK*K3,a-oYVD+U+NLZL)RD4j4juaKngyYszH ImvxHV C؀2A9_ %; J[Bư:gdK[[vM1#.vu9:W+9 I/vA7=W}%,2S_~%d='X$N:EL=E?0(MuVŪWF Jw9y9VֆG" bW+Ұ4oHj!12',"!WJ\44"F ^䤏}S䩥)KrϘF.PC2[c4PnXfMZ9יNe˟햿|Y.}R.B|8 jP=\(.Bq x+Y2ytT(_g0FR+qrRxSbt4)1uZ1U7O+R"t_A!<&iv"#PBѐ#A]5a@3lPUCYfvjbWc&Uaim_TE"rZ "Z<+ 'Ew*$x0VlY/P.2##+/R+nA+^,jWy-e3ɲ,uQuNa5jbf3k>AG8zIu(G0E7M%d)F7`/:i#v[%:(6:N4gq#mRڶndn2=ނQgn%;w;=k^K%B royr>@ TF'qKWq*q'PITjҝ6u q]KڤSBbQ>(.u*.qyfy.IzDMsT CK]I,&wri֧1P!v*xHJWԧWdfe>ꨄjڃI3\X"*JxJ,`>*=0uz+6慦py|rnkYZC5!mz/ozq:uLJ;~)zJVGʮNfEʏzB*: :j*2&ZA6(1JȪg૧ʰ3*3xAIZ)B4j&$lmFP%^u\EQ\5}*0R:T's<;C;xPasz '[F:dmdiRn*.sc'a iJ)Cpn[vqa ;c[.Pv|W13zq2`|a3DԈ7;>Awz8`٧| ;'Ps^SU,2Zwj%q02A6>qg)P=3pg12dAT)@"g3zሦZl\ w&CMIEwF`.gY>8,/Cg]@ɘ;+ww|xýNq;z~ȝ$ ̬c=/I"0E@TEPTT , >ڒ ~&ocj2t@ :ϑ>d|޲w* `U)B?z:32p `w-])| ,%Bb\O`ub?~'f4"} ϱ5uX{{M+W7+?'zAѓ6?=tE(H**xRBxA:Mfҷ@)wf a³|ƶ1 ܹzG- S;+$bH88#ڍ3)'nb}x/]Ҳ:1O{Q Qۆi0 "eroZD3(b2ۡ4q+i03;[p,2 Pڮb:Y1̻-Vv$*Q"PǛ;Ƃ˙>871p>"IExg,ne}ʞ֊P(+P5))Aי߉pRtf`^!9`\$^ =0.~3 j"`t;&>Qp9'y!mne ڠt_"\:*tY3f JJ~mL!!^Um4j"(-trX"r:꨻ޞ$%BnQu+eRy9&\KPh׻Ly]LL4_G7:,†+<&gM|ai@-,͐+)'p'ˋy"9$Oڌ(-F`o1?yp A'Ϙ ]WtGߟ%/"?3mC7_y/;W ڜA'' >p9{NPO=BoI*0CsDosdTo-zΗ'@<[00?TADATADATADATADATADATA #+=Lx3O5( 3CU[IO)s gnTohx/;ο/+OL֟o/uq.O .؉ 1C: Vb)b\uW6 oޓ}'WyA5T+C .ty(sΌ9?;u\# sy()B_SY89 -ݝ>#?cu[?]'4_W~eQx&O 0EvAVDQiEj 0EQw; 0o  0U>X_3oR*a v`_[f~uO1v/%Nm [.lTb{ AŨ5}R$B\, E"0CbM, E"0Db-}R$C^r.}R$C^< , E"0Mńy}R$CP^,vI$}R$DAfK}R4E^, Esy^, Es9^, Es^ٱ&, E"pEʼn, E"^}Rt}R$Kţ, E"D0-&dUM, E"I0-&E6, E"Kń-, E"S0-&, E"^L}Rd"LcS}Rd"S'ۮ7t, E+^<, E" E^,IZ}R$R`^&Ah, E" LNr, E" SpN}RWF}RKŇ}RU ^|Z}lY0^|aN}ygt?f=Ŏ6u%)-F,=q4H1sy(svotO\"Cl 5?`iV)Kj=%K6Qy2#x&l·KI.=rBuBVYjNVW=qohut3;'\d;'*-"C;^Dž-"C;^ǥ8]:%_*lO1q:-kRطr:PBkz(&| + ? طd% Èw6urth+l·K ?Nmoxth+l·K ?Nmo3;*Ϫ,)a`3;@*3;;xap˓DJ3;wzth+l·K ?N Lp'~Sz[Yy}'Mq}K+y@sU;-ӊQ&C;^uPF %/"\EC\" tx/n; ߓx/n;Q2cB]rZ ^+PCBEP(TwȈ|ٝ$!P=;tιݝ<|އ8UtM:n'69r\PZj.,"8("vଢ଼"Fӝ=S:-Uc{9kݝ=S A,"\,bD$7<ʗ IlB_%|헯'ͳ/"\,bDB_,NяȈ#?N9|qgV#h\, b~><|އ9UtM:n\Ur\PZj.,"8("ଢ଼B_"\"Fӝ _,6OUc{9kݝ _,6G)YA,"\,bDB_,""IU^ӲOkDd[U+ +4;A. x[NQ08p "<-³!-3/-<|+_d=@?Be1FmQDw_+) E&_0x76s\,bDd][_]Bȼ+Hڀ\"\"F:DL^,A-;@.g5B`z5Fzso/]FMfZ `5BNZQm(zu 0pp'Q*rG]]:*0y\w(Tw+" u'3.BuWkLcJ.XIM,_|v ! f~gM>LlU-Na^ Ƹ`lmvx.|<[MaUR֎G1-BFzB><) ?( -D򬚒B\2wxtK9N:_bM:Qf~gysr̾l[^>nw#b[jrtK9n`c]*dN`)/1n=>[7{[j7يy<ˡeֺxg{p<>nw#b00?[j{ptK9N:`c)dN@:Q#"m=>[ZlHʏi-vy\w֏j<{ptK9~$SwְgN?NkL IJꞾi{PJ|OJc3C 3dePѝ"<+l·K9dk={C;^B^C;^baԭ56u%)l/F,=qohut3;'\d;'*ma2u\ȱ&C;^ǥ8]:%_*lO1q:Rg#=:Rg#=:](R(lbl%GaΞTLN!Aapp&ifniݩ:-{Н=pxcbt =pxt fn3#7S8jfn>=zS?ңfnRg#=:'iphP?ңfn](R(lbl(TLJGan)NҌIrqܨ994އ96uމmH~eĹ8`YtP^EgN=PqrH .}S-F"FUrQO Pn$w(Tw O!eNpJ:\먟1JIjڏ[KI JI 8$N7<- ͳݽS- YAyݝm'69- ڵju=-"~^:텢~2r FrBuڹ3^tʵIJI1گȩ1Y 1>;}B_< 5B_, `5×#18)g>Bm'pd.wՍ\\8~7p8p7p y'd!NC1O@N1p  ]ukΡC1(}.h*C2@N1p= K No!C2@C1(kw!t]4\u>a a<\\gO@/.l5\dnZ @G|Oo;A`xȟۯ[Ч2h Fr7,:FDL^A`x,eNpJĤ,LLĤگȩĄn><*>a5soZ @24{C;^Eݺ|B_7HYݡ|ٝ|+~?|3--m.07pqh(0)k.B gS ;wE!RqEm0/O!Eٕw18PI!ah  YE7.>^1U,REfh  YEbQEfh  YEbd@h  0.Q_YrsyO~1ո? >]wrs>]w,B%Sj]wi80QS?ңy7S8jΛg#=:[yw,?;%yG<"QCNwC;^bwUUUtwH~a%7j&6Ayw3w;w9Hyx/^(Hs>]`xoMrށyfwƻ w|JQ_B_:!恀a[W3#&恀a[R8iphP?ңhxf_, 'J(?&FyTLO/xf_L,,i-vO8"j/Karp؆NѥttI7qGaZ0K]'ut'*=xg#=:q>i-j/)ܽR<qh*:=P9mhqut'}*=xg#=:q3#FҮ"RQKH9m+mܽR<qh*:=P9mh!ut'-*=x>@?c?:93#F1Rg#=:FҮ" iph*:=)ܽRqho<)j?:PrinN&iPAwI"2HFztPAwT"Ba/^ĝzҌO1TLEI]=M?y\İX=Q.@+#[P8f~gFQs@==: Q.@+#Z8.)N:Salў)|<[M!ȼ"^ھ&FHaN|B?c?:GitF$iphP?ңa1xgDn`[%0,,,`I0ި7X΁L_H?c?:ߥ'p*3#ߥ' *Rg#=:ߥ'*t =]JqxT_Ha GtWqlµ!^.V_؆)_bmѸҮHgLG| N}5}yúl`ZȻZA P9ef=Ŏ>PTt>B<9Mh@9@qݝ<<=w\6ݥ)w1R.%]kS=/-XK50J7c/Qc*Ϫqn00?TADATADATADATADATADATAv\tϑx)l]}(Tw%,}xxúQۓw3_疻DzPӊQ&t>`0J7+ Gꗳ\EC<=/-XK50J7c/V }<~)""}?k-sYݡdݝ<<ihyhщA9qM1]m)1t[Ϙ)B_z\#XJe{umj[J5hݍB_<Z*zB_W;F %^("oB]rJ:=> iphP?ң}<~)d۸5mm6q3T>Fzc}zq}88Utއ9:^Eג(-у/"T+C ^JXJ]*W XJw<0S8jH>x>>#?3#h^e5H:Ҹ{as)1RcB]rJ:=> iphP?ңI2C;^ǥ8=Y<\ݥ\Wy9>!}<~)_h۸5-m6q3T>Fz#}z}88Ut_(.Ȟ:^Eג( f߭#m("T+C }W+"w<0S8jH>x>>#?3#]'4_?/]V^(H/C ԭ˹3_7F %V-T+C yC: t2`/{C;^ǥ8Mݺܝ.(t2p:-{C;^ԭC: t2-j{9k<> NCnW6 ګ5NV3*ϸ+t; `52>C: t>GꗳBm&C;^ǥ8](V#h\мm)7g/͜?k-é-͜?k-ٽ4D2ASJrج5*urtE$GPzC: t>."kb+_d\6xtE$GPzC: t>."kbdpo@)o{9k<>QgYצ,VVh\мm52>Jdݱ?k-|ٝǛgiphP?ң-@?c?:>2!$7<- b2>)|/wS>spu[?5hT+C yC: t>?;u\#ԭ邂0J7s:-{C;^ԭC: t>]HJ4~ejr\fTKC . j!͢n\u(woy}Sx$Iw&˻hIB`Brށρ|/ &$hp[{003?0hp:-{$h8@|"30[3NCh I|al%,Or}F>C@,ᘫ (8]9yBmn0 Pyk [ѻk rjr"dzbMeW%fRbg,^&v8QآW%6?-N!vf˲ kuibMpDW%UI$N!vf˲ kuibg1;w_C NC8$^ۦB_,AB_<gC5B_<׷<% ˈ~}Hĩ}=G>\@ 1{] ˈ{Kḻj&6=9)1k[t?p*p:PЇE"rեt-y^!t."W]^!t"2kp`D"CtЇ"0XЗ=9)1kq?>\t"2kp`D"s2ƍ}X-%'=Зc)ړISiF$2 &$h`mˈˈXӗ~}8}=GIw/x_pw_pxye~Qe_pG+oVmˈ!cJL)1kcۛ6pgA)ae)1kr'_pG|e~eH~)_pP}9'_p wna7kapi7?֩'vl`|ҝ=pxc|W@ǁ|UIe|t4@-F"FU^;kapi_p֩e'_p'_=e~z_p |UIUt|t5'H~eĹ8-H~eĹq8@-FctP^ t4P"UIUt|t5'H~eĹ8:N{e;a_pP}9hv?53;;0}І?edveu߸zzb瘫srׁC5woy-8UU^8lІW@=UIUtt5`}Sx$IwN{pH~eĹq2}ޝ{II?)NQǥ8lFKU)b\UI+`FKU:5`u=-4\f*0BuWBuBA]*{r\? "|%{g-c5B5-a^'Ivc}΁\6Xmz=`t^>c]*ڬ^>Y'^1c)g\,0^ j=kLmZ ٱ&O:텢g.Y4%|}KF y8X_w+t79)1k7qS^^EH~ep2qyyBPxX ?S؈Ø<1.Q_YrsyO~1U:*J2Q9NmP0(}Qp0(3<ո? >]wrs>3<. @a:3 ?/1.Le5yC;^bw%y|w9w3#>:!iphP?ңyy;w9woywj&6A׈⅂4;1yz=yzhHQ_B_Gt+д]) (IM,Pl!0+`lmf~gM>Līy0$@ӣNrZ^ v٦{&FBaN|>pFgTKiphP?ңaGDn`[%0,,,`I0ި'*-">=]'}*itFzR""iphP?ң=]'M*-"TLJȱzI"2HߒVi-G N\Ęk n,TXf~gd_Q$s0/fġL>Līn&H+`lmf~gM>LīnLطd0sa<.e!C6kf@q}Kz/z}Kq}Kbbv7) q:j=\wY;U=TC2昵L};8˓$8$AkLpqh(0)k.B gS ;wE!RqEm0/O!Eٕw18P1(2*T{۷r7IS'C@,ᘫC: (8މ8g003?0lhBZˈ!c"+ 836\ pu"+ 83P)(v;f2(KI@*$p˅*$PD`7+ 836 \ pP 30P 30[7P 003P) #љ&AhpZA:-b:N׭aVYJD(c>qBړ#w(Tw+4]rwB>}Q08ۿzNԧ ^X>ȑC: !\<yB5HN%(V#h\мm)7gb[%³!-éb[%xI<4]r͜,IV#h\мm)7gXXi54]rǑ><:%4]r 53}I>4]rw4]rhb55ݝ<ʑHN%E>̈ '-F-<ihkHN%*=9▻]0EL1 *I"R+oVҍۈo+pj&6Џ}[V }H:mУk;Mc-ϑ^,Ef[*迍f&nbVh@?Be1FmQDw [VR]υwS W]S`mX߸zz^8 h![C`HMtgeŸ:/e\x7xե8V}ӌ͇e8iJ雖/I ]4Jaf~gkL9Nm .lJ&/obO#&_8L>J&N:Jarw`!.g韲JꞾiī9Nm ^/_|v)mL4~M!ȼL>Gd^kYgqa&)" B@.%N w(Tw%~GJꞾi^tJS0NA=9Nm ^/kA>1=9Nm ^/GIlTB6:"2=@M=o.Tiz1,"ST6f~gM>T CS6]"2=@M=D-1iz1,"STT CS6."2=@o#A(x"JU k*@`J܂I7N`Z Yd^kYgqa&)" B@.%N w[%c8p Pf~gB%c< -*M.XIM,_vc`y\wAsļȜ.|/|c@| S=@P:NUc:ǯc I]-"wf\<,s <Ɲe~g  >G[A_)>b۸c@| S=@P:"}<~)"*00?TADATADATADATADATADATA"b5ʗI("YTk6o7jI\j=y\w`cdz mLmZASZ94U)*ȼ!"VRq5.ÎmQ°8@Dzm)q(к]=pg +oVmˈǻͧaS` ]k)qӌ͇]v7Cs_emL+kYbp*,okioM.%w[R9F% zùĹHĩؖ7ەfؖX2طS` =!9g9X=h7|l`7|lP(&TP8P8P P{PPjz?76tCԤ*mLR*0 BPP8B*y,'5wP`y7wPy9 w% >~ h 2 5678ْmLY-cv'q^&eBZj4(/obo=@cJ雖qH>/obxkLobVP!y/ob=mLo"ymdGo&^I bos (`Fv "lmw{KgzF Xo·Zj4IҪff˾$'9(?Rg#=:9tx/n;a/B$ӷr8iphP?ң-)-&NB$S,']S(lӋb2,F@@T'U(s9ҕ[x9H:{KgzcF XoVZj'FjnT@bimnPт,'[f'U:nP>E%c@J雖>1,҄&?aJmZ vRb c c^/o[ +$!CN).π30z 83Ҵ]30kh*}/%DDqH'[)(tBp[)2?1H'0'JϹ(+02vtDp[)?)t1p9%DDqHA}R+0V)./[)2V__H'@'JB Ϲ(+@XXitJB Ϲ(+c4]JmXJt8p)./[) 8HӥԆHx)./[)@9mWLӃ)t2p9%DDqHA}R+`cHJB Ϲ(+?c4]JmXJt1p)./[)>2V__H'0'JB Ϲ(#_4]JmXJt4p)./[)>V__H'P'JB Ϲ(cc4]JmXJt6p)./[)>4 V__H''JB Ϲ(Stc4]JmXJ'JB Ϲ(c؆z54=H'0'JQBDDg'J_()+kU''JB Ϲ(c4]JmXJt2p)./[)>@9HӥԆH'0'JB Ϲ(?c4]JmXJt4p)./[)2 cOͥԆVԆkU'@'JmB ?(+{4=H'P'JmB ?(+0t4=H'`'JmB ?(+ mҮBBLDRqP`ZP9mh*}/%DDqH''JϹ(+0)tqp[)trp[)3`1H'0'JϹ(+04 ttp[)3Pt1H'P'JϹ(+0tvp[)31H'p'JϹ(+0@txp[)3?1Hpq[)4 c7H''JϹ(+@|tlp[)4 љH'[)4`1H''JϹ(+@@tPp[)4@H''JϹ(+@EtRp[)41H'0'JϹ(+@ tJJϹ(+H' 'JϹ(+ tCp[)3 c7H'@'JϹ(+VrtJ ;Q+DI.eu&:?wv7F(JRlRE=~Uk bB6 ; }eU\Ĩ.6b68x`EpU(s9.L>9xH(Hgz+Pbҕ[x9VpRb a)\'O^kC`rHtv4@3"?lO^ħwUAʅw>1,A:QoŸ[y|Jy{@Dz7+ }}yúl{!9g-nZ {۷rZΔy2#x&l·KBQeֺ-W׍Ns$!3=M?yO5w[l17tha&˄DZf$!@[ػ) h![CpT?-Dgܝlֺy-=[в߼8_餂9ᗍ;̒|b5s|i7x?1_龋)ᗍ;̒|"eNF?1_龋)m6q3T>F?1_龋))-_zB|. /":-lֺy-_餂9ᗍ;̒|b5s|i7x?1_龋)ᗍ;̒|"eNF?1_龋)m6q3T>F?1_龋)-_zB|.\a֓}vGgy-) ҕ[x9?A:,}FO^<̱!,3;@.N}c]*qB9% >]wϸ+;y9pRg#=:Ah@a2u\#B_zzGk{9k-}ܝ%1GW( zMHC`%Wihщ|@`3Ӡ$'k3|"s 5b+s#"J$9>ub۸5M:}zA1}88Utlއ9:^EV(-ڌ'?;u\ B_zzG|5( }ܝ%;'W{g93#F1S>S>3S8j/?"/]pY˹3&C;^B_zzGk{9k-}ܝ%l4@7jIc)7>a۸5~99tx/n;a/޽=@?Be1FmQDw}[V,SwS`Տ}X=] h![C`HMtg++`R,SwSp$~]9-døe+{P08yG`B3ݽ-_d}<~)"m~V}Mָl`շsg!>-4av7V6Uj"H.+TjrGP% ᇬP}vr/Z6p~]j%)o3h$D.07pqh(0)k.B gS ;wE!RqEm0/O!Eٕw18PI!ah  YEbQEfh  YEr(Ud."󞵒wOQ-ͣ: Y991ۧ20Qu 0p5p/^(9]wQ邵5yC;^bw9w= Qu 0pp'A15՝y} t3yQF JY93+Xcfv^:%1% m5'>\"0RDԭC;^%Ϫ]&C;^bFU=Da2u\aܝ+@a>`5R%)l/Fwf55ݝ~`+dwTz?+`mxm;lBuV3*n/z"A-.1,V 4)Nq:НL,@ݺ?;u\Opa2;@.fQe: tVGdga%TP}9a2u\A5wFicVh\,`5RAy%_*lX?k-']m.z9hvw<@dsV3*0Vxb*Ϫqnv\6R#5DlC h![C`HMtg/"9_+`R,SwSp!m՗am!aA<eFicV#h\мm)7g/B_U B_><|"Y;%5#"w&sP=u"s 5b*?\Bp5qnv\6R+_dgB_<qMԬblFvw<@!sV3*0V""sb*Ϫqnv\6R$s 5DlC h![C`HMtg/"9_+`R,SwSp!m՗am!a)YAVP}pz1,V 4)Nq: YWDz%@, ͯWDD!!Y||(ͣɣq }c H %,(Twm5'>OQe:&C;^uTsg=n6m55V3*7_ڌ><|ݥX( z}~U_Ub$s 5c*?\Bp5qnv\6"Y;%5G=n6m5B`z5Fzsc$Yf!(Y%l?""yMԬͨNaF1B_><""Y;%54|cC 4B_z)i !Z q m5'>wf55V3* %]m>i'>c:yQr[Ң9;N>®^ݺ^+!^+`"^+[ [K굒 Ѱk:Ym۸j ;Ѱk:7,rs*a:yq0cMZW%CF8d&@i,v-TUI4֔qcnrwsH\IT}ԢEa`@C]CpL?-5@g-ap0nZ P„} M7n&'z7w.ΕDG-Zh?Z0e19 ?-q+ap0nZ `:7>c:yq0cMZ6Dt[oG(Bϸ+6,m5܊ϡw*n/z"A-.J^+`!Lc+z*!>@B*Qa2u\A5\7uh5R']bc*Ϫqnv\6ݥ!S͜9><|Ҫ"͘S"?><i55V3*[*?5*!-S\sxC:b55w?5*g/"*³!-* Ca :@C]:74:3t4p5*g)Ҫ"hp><<Ъ Ъ"<><1^)*³!-SCJ:@C]:9 lC ?|5*g)Ҫ"hp><<Ъ Ъ"<><1^)*³!-SҪ"ܪ"E"Dh5ڥrxܪ"8\ɰ72Dϱ^+`k/|xclWQpDC!jK%[J/>`5]Oz)ݝ<)_pDC!jr.ƀJOH(B9\sx#XwxcQpDC!jr.XsFJ굒"=PpDC!jK%W/\67ݥ{ߘS"?V3*5?5*Vݥ{%?@S2><ˀ:=rCz0eCpLlC ?CGg/\sxcb5B`z5UI4րJr(* 7k-ت Ъ"<><1^)*³!-SCJ:@C]:9 lC ?|5*g)Ҫ"hp>PO*³!-:텙Ҫ"<><%(*ي2D)\Ӫ]*ͭ*\rEB_z*\ɰ72Dϱ^+`k/(ͯwxclWQpDC!jK%[J"sV3*)%lW"s1UI4o/b "Dh5<B_z<QpDC!jm5Bp5qnB_<Rc^+!UI4otZ_z52ksB_SRFy?5*=ɑ\SbB_SRF}/B_U3Mw^^%3i6J5FDe$IT!T2jOa,($J~prgVh\gsTmp7JUef5B`z51z Y;%5_zJuRFg9{/8$2q/3AiBBuV3*n/z"A-.DU=D/a2u\auh5R'00?TADATADATADATADATADATA]b5ݝ`5rlo7<EnIv D=?7,FݝOQe:&C;^u$V3*u%)l/Fr~\6ݥ!qg=n6m55V3*ʑKav><x%_*lX;GsSRc><}%<kppȻZA[_V3*n/z"A-.~ҝtϑxOQe&C;^u/Q7_V3*u%)l/F\{~Ů$7_V3*Xsb*Ϫqnv\6RݥH:>`5rlo7<E1kppȻZu+_dg\"V3*&\6Hj'ks{ݥO"V3*ݝ<a1kppȻZu+_dgF"V3*>?;u\auh5R']b5ݝ<IWJrh5B1l:*ihyhut'*=΁\67ݥH:>`5rlo7<E1kppȻZu+_dg\"V3*&\6Hj'ks{ݥO"V3*ݝ<a1kppȻZu+_dgF"V3*>?;u\auh5R']b5ݝ<IWJrh5B1l:*ihkS*]mz\ I"z}~U_Ub5B_,""s 5c*?\Bp5qnv\6"Y;%5GW( zM?N""s 5b*?\Bp5qnv\6"Y;%5q*}/B_<#|IuX[v/%Nm `U+ lg>X_%oR*ak* ?Ka [ " BC }R$E ^~}R$W?5*}R$CŹ, EsŦ'}R$L;, E"^C$, E&Ŧs*K}R$Ap^ X}R$A ^jjh, EQ\N4^Q}RRRk}R$VV 4)Nq}R$W/%~U ;<f$aBa ꣩o`(uX[؁kR '3kz(*PB NQ0>,ٱ&:@ݺ?;u\,@C;^bFU=Dhu Yݡ|)}ܝK!;aiJacZ'?[b<%)l/F$Y+*Ϫ,)a -@C$Y+74-3t4pX;xap-4lAݒqZl$Y+<9 lAݒCGg?[bLp=@ݒQz[Yy$=|;<i@; Shc5Tb n$.aJ,$aBa [F[q"? | 0,ٱ&: YWDB_z%@,ݡWDD!!Y|(ͣ|ɣq=qtq̻\eB_5qtB_nq̻\eGŋ:wXƞGy` h cpcygc" r-0byW+Wq@,pBQ_4]y95:!Y"6."^1Ut,qc[oh YEbQEfh  YEr(Ud."^1U,v@<."@<.z-y׋b2lQu 0p5p/^(9]wQ3[y;w9wo,0lywyz[ 0. @a:30Q_[Kӧ20à=1)ܧ2/¿4}*00?]wջ$}*]w¿4}*3"S>"E>"L>"EQ^,<C>"Bp>!!< S^,<T^,<L^,<`T^,<P^,<0R^,<0O^,<0"D02^,<@C0>"D04^,<A>"S"E@S^"C"E>"SPB^,"F0>"G0>"S^,yb_gu1I>(Oc)ɏ˓$Пs1I>(Пs1IYh@](C8 N(XI>(/XIYh(ɏD"?3\{0l^1I>([Kc)ɏn>< ?>!eNȟrț'e ίwΣۡ[b^`8(&|^L.+rGVpIR[WK¿mKa Kzҙ;xap\WKПs/#/(5),¿WK9G(!B(K~g!BI!CNbtxeGbv7)Е"qiفeț'u}KDDG&+U6ۿz>=y7co7xzk5p~i'бڏjiJacZ'Gŋ:wX|bD> i59'zo5Bp5,|b5'>\@|lF<8}(к]8BRrgW翍|K:\Ext}]Xc|a߸zz/@/<i=7"[z '~:B*IRbp~i[cp~isF 6Joa`@*)ap%ip~=/O: %)O: CP+V}h}ӌ͇sgvKM i59'zo5Bp5,|b5'>\@|lF<8}(к]8BRrgW翍|K:\Ext}]Xc|a m{؍'l? Apv/y-"MeϨW5}ۈ268ѹٻ|2)Fƙ-WƥBE/qH4Oљ(]/h^7/)q&}s~<)h5Bp5,FAp)* Xȃ C8GXᩄl"[V("XȄO^j}[V("jm8s m{(q(߸zzWhp=vzҥh'J]9G^ϜXA!xեxC_hp~F Gg]J苤}Oe¥[sh}ӌ͇sgdֺ(-X* ҕ[x9A:-WIAZckY:WL_uB[PA}*3\ !Prto@Ka&ο+?o;A~X>1,5Rlqٲ7F(/]:crBuWK/5Zݫq.O1)  χ}Nk 鵲/]:cR*rg*0QC8pN:NalnBq "4~M!ȼ/]:xgf@w>,Z/'fپ߻$ 9?bp *-"o (, 4?#"\/]::'fgu1x@;s~G(oM(4?G\/]:ui-֦om5'/]:2I.[Ч20%9BM w(Tw C'̀ut(!Aұ3!APrtο.m`_:k ҥۡ[!cp Kt/ {y/(4Hҁ]py/[0]@t/[0]@t/[ftq"lj @("G9(D8y4g 5epS2rD 9eIc Iz%F'`T;thQ<"|$ѣ B >($ !G!(td0 2\= 1pLJG.U_ )Dx_{L(Ԑ GGr,א)titfS TedWPJl _kpi+%'p& }&B 8&v'厁&iqFD桧{:P:0C d-Äy rJ@BoFM0** _1MaG@DL,`ke|& ukhq #3zplcr粧]V;+ %Wrٺ-\2䙁"P d8zm%LrFX( A ԅRDmtbB5 8"]v}kvoo]j:pY,dVWֶ}T}uݙMAư?~ mY_ t ?AFv @ U6fhГ:P[xg΁] f#@Ӑ8SB. UЇ+!J `d4`AVLԻ_FA:Lzy+Q[Lp/jZzۼqڸ) c;&O(0,/%#‘ZwJل#̥]  8|`  #djV~"#h] AAzt;trG'O kls|;S4۾+6apS ƾ''Y <}>[S00ԖqKm p >h>}YM#ȃ[VM=OR>vs֐ZՐa`D-oP-q.`Er TTEpU(Y$]IW17SPD@Е$O,F$0SETPE0CAI@ SSNU@bIABKp`NPBU`ŽB2F`N.-ͭ=TTPSWR IP}ݜ=B`L@M٩LNpP^PEp, n @E: nޟ= D.B@ػ52X`::)<>~@䟍.FHK~ECJU~F>n$N$.*Mn~1Nh^Y><~F{|mnXnw~^ 0T L0,GUE0HI}OpڜR^ڸMؘ;s0 yc!nۥ} PN~jU3MQNP^= ໕m- - 1>L#MMF@U!p)RP,@+I0#%/86H@q:OO=`OM =~TV_Y_`!p)>M,Pv?y"/=2> RPT-T᭾ɇeP?89j4 sWuPTSd1~?#,6 څ_F#0fhÿSA@Ry}F0nQo=]N_pFLP| PB] PB]TLa%F 4P82$H'EDA)E(P@*AP$#wLFa@DI7r@ÆN8lʀ#'bf1tș(Ωo -D9cQ:L:e܌)32+Oc'Vő7t *#!L@2%A#Nzx  A00?$3*I;aq9fQd"YH'C4$6L )M<)2'$K7ٿ2daݼ"G'QX`… y%GaXIeE LAtlqsaU7uZHQonquݕ^}%W``b1F`H#AQ *eƉJeV ᡊAT\9G7FFqFxŗ_1O6ZJ,Hc#  1!Wak]*%b-F3x#NnHRfSFO Ng;#` 1Fl!]Zkq ]hpZjpaGYHQx *ZIGX!zFmfLUYmƒ!qhJDlvW EQclVZqFUNaaW2"aUhOIyGIiTEVpF 8 ^8e l"7hAmo݂XT4ʥC̰[3Wŭnyk2l׺s{\aṰmu&5JUE8/p4[PX;ߠ)$V^*x+],"Ya 8c@%@OcfX7C0@x I;X%b8&RZ`Ō} B\e?5 bZR dR z $0 fH{Y79W <R,bW6C0 Pr(LXbs35IHU\@f oMO^D+ӡp~Yy0~Sc9d y3^kC©@GAY A[u9 {E}H66VVs hvR9p*BX+jRaul*ưm f&LAфU($y0&;E!lllyZ9vPT3a =ރY%`XdA;$T: <v` y -$A0Bzp`A Nt8|u GtΕ׵K` u+]yu08 L0=aoӾ? b` ߁Y7= ;O'0B_+yҟn|Ya0}n/&j?xSF>5_ݳZyPGAbp7r>e @]uv/=Pw:vw+wws'xX'z'xw~l}@~'hgk=з'}s!^~}b~G{~ֆmA7t0`~{Pvv nt n%u~Hn@[pn6h'Nh=sy2zF2C'T&dnCDl06"}MGtn[Z= 106"otV&hB( \V6 \ p''xUFƉS8?pl *LjQhU{(fLhV`Oa"(`ӕ؋`4N xH(ҌrT3Pɘبv84@h8ad*Dxha8 u,rnsEVn4gszb1&bkTb?؈x3?0(O!r/gxSv7'vTeZIP80thSH!}rRS6yr1)Aa&xzh=/p 9Y*1_9!.)@YeXU5r `"/ $@`RG Ѝ9flrLV~ z2Zn\0W=S3r=$URs`hY1-mz="ml @e"#=zvq\_:wqSn!_6\7[=O!mX |7G;4# #"z.Z1Mf\)B4hmY n1YLr)k!sh9&2ޣ=njbu[&CC@m)E>Y#!@i"`JcuZу&\i%B!dfnhLM*ӞWR"0D(l'f3XZ#3Ԯxy%>ز~E/6ߙRﱎ㳎 Y'ݩ׿!ٝg #~%`=2=BqV'2xV2`T}Q^`i7C5Ca)WkP]R3R0BXڿ_tYyp7}2`ƙ2d@=jj%i\QVTSUw(3YF_0IJ)WSQ/!SGYWN5_?sB"!nIp.{U}vS ^x@ccP `::,M@SB(Y0vTOȯ(GH8POO_G_!}@9aA!*"XPif;d&(*9{@zDT!OA1D!2Df^HehGx4. o"E^p|l.=~^*4ܝ)D8H=)NC$!sڏ)Cft\fiDo^iL?!qUAգ\OcC$!sڏ)Cft\CfiDo^iL?!qUAգ\Ou:? (n&^iJqս.0r^͍+ܝ)-̤=5OIaYXSXa5H\vPS\\vPN_\\?B'=P\\`=Pf@ySD9e@yL7g@A7giEa@X Ĕ2d('4l؀P`0b!&CKiχwy34J $Hj7s脉47 fSg XHZmU+MM0 'Sl$JuKgM%UBBxS xѠ=&o2Uxa!4\I$bR1YFpQR1i8:lDu&iuR7^yEIiIGw湧.\攘硝V*#f8#TkQoTFsU{B0/4!/Fy!`t.PŁɉi#ov$Yr$ZO;UI֦'zH; n]UFuV% QF +9\rrD 4qIO4/F@>yE`PD3$GLc|5Fr FuaPsA=4>P"2=se =S4N.dN)TFY C]p< QEȅNfaEҞOE\"nV2PWP0p L{O]?ǺT'qp+2`QC!%St .L \j+To;.VxB5;ץrr8aoW3 ~-J4(*]u4cH GB9C $8!@4Bbו%9A T`jB ! 4!.9 x+d hu3,M"E*^.L .r2~ZʌU "Ř+0 xH 8:!+EYW uHF(N#8F'q#sI J|(zres0AE+1!$cBlҎ I-K6,r\&0G9Ge$A0Hi|d.C M "/<ᙀy @`!cVPa =wO1t@g#'vT pP>thAyQG(Q$Ԥb;ӞS'YZ8  `%&եlAɡ!bStKII4Tx>а!{Oe1[UL+>'OصEE(@; |B%s]*Zҏ<fF9x.] c9a/58!u.170 5kySL/=(irt-r⃹hEe3u欱xuN!:)==k\ɀ$1IWLSD71K0c!D !!(b TV%ºעE(uN{ "3xOlכؽ֑E FQo, HvVFAh64,@B_î\ V)LιBIXPE\( N࡞,7 ٲ()"9ٻuiw[ CVokU{x'KX0EG^v" m e@ow` 485-(sAYAw24  ۳~ 얶p{`Ea OeW&Sx7TqkldJ i䰆/B/#8["|Ꚁߓ` g<4<ǨM}DIie&4XcRIGun6TU@Q'(;8n'"A@ٳ0I' xw$GE~w~} A~y@W~seM !DbE8$ x4 2p~U6xvqW6xU!g9u) 3PPt'*40A@qI 50EYq [xTIgC肷Q|yDs!z1{00?.L{e@mbG?'|ph|vxW{z'X `a!7Q ziEe+Xׇ0y쒉ԉʢHqx)AxMGWd'xyvAzy|yoH|qEg4hXb!ejA8_Z!wyguwv{΁fo_?$w~hУGXacwJey1cFF1f`/)U Gy F"1[ 9F#ȋ00:"xxS0IG~[уVC3$60.ШXqUר:f(k3Sgx5(ȁ;x2QSY"Wyx![u48V4Bso@fhZ_Z IH(YɈ_zh%tpw`!v"Tv"vq2 9=AR\Ch Yfᘖɋ?xj 6bh%_lL 9^lUWo)9dgzYfkKXd8Ev/R:ɛfyٚG$Sdʁh҈_>*ٓ Ђ @Ɂgx x FY; + @"ZSQyɓ i<Җ3HxH,j$. iY) :F t\$+ Е#aGC ꕐgT)6*J*W@M@٧]sj2ُiC94WRS YɦG85,GUZgpb _bQ+wWFA-?ј{F_*֝_RB+Ebbʲ ce(H_ xyQ_Ql yE Ar7Jݢ9g/223إS8Tb3 /Zzy`9#y79sW$ n!s@i:4уd Pʯ:#ĪS_ !d `8I4~tӭ093i2P.ߚ3={5+htHo{W{['! _{HgceڱcË&H[DS5[Ә ("[HwA>qx2ch Ҳu5=A4d( ´|F&:HbZh>{+SˆV õPK$|1#.@[S0PQ5PY PdՖRiYu}#E]ռ'R)R ]3S3TeT/KTFTJTݧTISUUU&W]%`E UVg%RkGE&7WUx65~u_N_`X$ZXrUHSYT9Z%V%uZmEZZƻWd@^[%"\`lMȥ\uJHV;]HR]]«_Te^^հ_9LXcXf`n_$+V.u `.Ehv,}#dabsCgrb.cpg4fc{c|f>@673wq3voJ&ߊTwvQ.Uf{YȆb^fxg!fg~fȚ vVȶb{fgAghggVhsu2hvrhifnviijt3fjj,lʶs=vyki&YO+;f;(pw9( guLudiYqaAdrVW$7hQq+wѲK0w9Gsl%9'FktVt=qJ/!O,TqW_6\lvO=v:IfP&hkG K88 wz'~U9x!H1ywyw:zyzzׇ {RkX QHϘ|v|}T8}w}}߷7H ǀDXp `AHۜ[؈w[X^(-n{)ȋ}/ m71 z@gH­)zMHS(^(ͅe-bH4y×Ψ~2KhTv:85>RȶaM82`ኖo(z)ޏKkF~" `ۆ~|?H'bJ,H}0zjX}o !Ax![3qSǐzٞY}y * rΒjJ/v,8y:;i\n LiOiRK}mȒ8*xe=- !kx{9}y)Iby/Ky{Ə7y)H>`1׎N3臣)oإ2 ߮vy+izޭ`GN㚾¡.opǣI* - m4.Po=xI ;WepjLNP*r2a8ͮc:Q:rhb~IuyzeIxJj%dZ Sa"E8وy:곚z,ᒝ׫S:Ax:Ѭϱb7*#˭,?1,eẮߨ*Jg:_WFp p aܔySgC޸M2dR(P 8 2I30y@2x(0FS,C:f̔0ԑ#B8uY˘lfּs'?-zR9ʤ*OYA%jtjҝ+eW3Ү֬%e CDXuaHISx3f1e&1L9cp#!xqƏvsF#2^n1ȋ&Q|f& `)jAދEF`ؖFl6PHeCvqRaQ"gED!0;TTuokfH /(Cf k4%Or( hƙ++\G9Moi;eDALmRMUNm40D D,ZD$u &r_j Dz[AL*R$*uMt BB 1}`.~;1z0j&N[~ |Fɤ^O4~$_VR^;-O;ǧѝYTuO^_@saǣ-[1K_Jpg" d C @TMF(*MLp*%#dK ABBe0 ~@p}8A:A8™Ȁ n=!A2 "M\)tϐaeUF$B΀:T%4`s>SAYۚ&LSL2fA D9,qL4tcSѐI>4g)#@p1` _a2B'A@KZn*R1`v 00?6TADATADATADATADATADATAZIF eZ:Ќ4ل7!IVZR:$pM.Ka`&4M{WYW~T+CIQz$Շ,UJ9'򩷄*|V5]*VsUޠAjE+Y@;iƣ ULsOYZimoWT{S}WfG s„F44lv hc1dlcHEiŌ%4p}j 0Rj6XLkӠlUȧ5tesSףmmm\p77MrPM'lwÝIq 9rM]z"QhHG<~ 8b^}vt`-/Rtqwh-Zhyi0Mo3(b=={ -nz1+yqAԵ-~_H$!<%8Ie?.Kk 7AFQΑIc\"ao.^qIB*>aBcw8& 0-207>Yz: 9)OnVd%pҾAi\c3)d"+2be"a m Ec  c%eаސPA2)hP9V*b9 KY5]\Dd D^#"_A!l2QZ]fQI]\fPnr{ז]8@ rYBfjX" {;oP o|+U\2Rx`ع+BF@f  vT#de9)0\#v-$AKrR]!2CQ Ȧ߹yt3Xaը9:!b0fBIjm\* EXu(W&CF;c#2&RkƠzI٘vԝ:O“uёa%A;ݚNf1dP͍*3lѳY Qz&mv>3!m,?[b=^JҠY 6rC޿ڎO5A(vؒdw۞QVmdЙg/IO*^g|GݧxB)yX͇G|y`-52 #K4"w7  8: ]I/TsQ[!:W{GyK!gcg"m7yY3p7|Tw*dz %OHQH{΢vQayAW{8fO8Vj:<#uPx @FX~hmx hQk``H@,ї;,p##$%2T4sZ,Lurzn%A U2'ӃM5,G{(%1Hsma 2T_?[rP8r)(D1,XyCb`8?xZ1:!_1L6w `F!{5_aCFVjxeaCDKady㘄ҐguQEq )F0&rx5aF YWx'H9 , 6yzLM@ XEH*x 0'i{@Qr3D_ b)d L \qaoC &)pX~ID{"Bb# ý':XOGzcA-p"XٙX)$C 7?\Eƚyyi22m!a !,)o)BZyʈ1eBɘ9a$9iVqXR$:-ZEU2?x({9#)2/8bRW4!g'@#=<#$kX^LT!vwAͥ*2g_䦃BGgw:,r?Hyw}FUVB}i{E-$Om, !tY7\:tOz -4k*Qs.oǒ6q| fVVQq|jCmaO ":DHȄ,4!X6vvs9x!ө i҆oh ɵ8Yi sĢyeΙ lpg:,i5-Um}z5-cQV5ȡ*X}u5R5A0BYV+,󮁙U &iy@u2֖ls UAw0ґMNB_rr>01L0%K(K+[5I0-!D0:@A 1c(DWC{K"p"P? Q;3N,6P 1+1PGJK2R`+2pFC:G=SдO: v۵2| 4`@k[B,kr;;{0`8WP>kE "@(V[{0X'kG@ W70Hr˸0pCi8pQp80Rp,YkS rK9+k3[kr{0ۻkX@Qac&[q+&+9Kufi3+a˹5;MqWp+Y L@v^ԜkIk Q}S]UNԻՂݻb=K֖ӛj׽o7זNז~׆N˾:]6 ӵ¥@,TFI,Kl?;.VOѝ-ɭܙk\~ݡjolln0^P睬EP` (᫛:+~D N.৮,u+f\ jU 1>$NM (tTK{ݵ]rc-=g{,KSL h0!ֈz >~.XԮ,{: մ,ƻ gkA=ל[ϫ|=뇛6.Ҭt$,< k׍& َm|(|ăŒlƭ$00?>)¨-/\|묭 Q A0QlNt<Nl^_5pQ %\[Ψ_Ǫ/z~ˎ2>4>⩿n|<~,:>B]>B] 1!DL"6tP1  !CǑ" 3 8C) G҈XJʁ4n2F(t8!)@Ĝ2d R: $:)*GqN2eNAv9eʸQH*o䀰RFk7kc!jRi2N0c褱S;hMio,egB4t0J,/4)t4&1o:nE!Åq f v9wVQ@ 6y@y4b4 ["Tk,PC %E т 0~qA [u\sZ&yTVe܉XY&zAWW|൑rhK'Fc o!GmbwqY5$sra-YfԵY%V)9wUC H5)qadezc~n2lVQMV{$Nfđe>c 쪟DmL)bي+C ,kmh0bx esYқ_^ybj fcan| ܩcF쓖{U Za6&F,ȍ% (x.҂`ܓGM6&Xfgi-˪l21f&l6=mFtΐ1@Lt"ZcQVu)iHX1jiMwTu5F^z(>xBJV`mctGU'*˨s>IF`r!0*E'oj~{ʵ@c|@tţs:R*_lSt K8Ay?a&`OƲ4=Tpo[~MhlJdm ݓ|k Ч<́L~0~j8 G.*zX2(mG2Y=G'`ib*hJ FI 32D'>8q J'R!p ytP, ꐕ`.Mkj՗ˈm[E5 8oU9Ȑ?$Y)¶]nTg)t߰e0SMws(AJ=CB``^L\Xl+(,L-.GU9s (ܟdH)Eh * 4&`yC V#ҁ%|k43^$/o>K#ƖN5{QE / ZK[io~*leÐn4D@]K//>tNݔц+``}OkdDo+Z'>CUg~aǡQ7e>ҭl(#lʌa1Nf`”t+fњd^sxe)`DSwsfԛF*-"Yt2eФ;&00*; Q5<MFKi-v<Ț|_Ìԟ1h oR.hM%߶GE%ymN?!v]dkmsدͬA[u6nDhY#3}j+OYftuLno!߉V `Fn8ǽtcm$WMoK1fd``ynE_,uK2ՓyZ3A-*ʞaD4O'ct &7Z.lWaH㖑KGF^qIu;A:Jʬߝ%:;ÀՃ /nE&5 r2 qo$+Tx"6>ǐ)"A' ejݥm܀Fd.(2N2`bcXrN`G#Se_} Ga[b4~=%჻&%4pQ ICqNDv297`bt$13D}C>~d2XZ/gM(~PDHD.g-V5(]!Y1`*&d11@:gG hvb <ՉF2K5[*[5*XRAաxh/:‹\3 Q10CIw/F͂")#HTH8$%Uvx{rI`"&x)&qY#>0'#W(3'A0C7b0'!'&Q_4`F;K0D8c>!4GA'uJ,8[a@#C'DN kcO{X%\%~(F/W?0><ӑ!%:$ wG7tjOx 4t>&d7'(d8kqc6|(yE$/ROKi2MYIL`  W%%nfT(%7N(Gq"gsOHk1\;Y#X3Fp) "yUs[t#;cjI.e4@`2,'boInW( "%r SRI'&!QG%`1.v *B$ 5b 0ZcA/H$OɷrŋJ`Xb2SZ'dfL1=HT!P0eLPRL7Z=VX2  qW3P5#HQ te'Ֆ7d=*TWPVWwu2:\A2?jqq P@%L!e!YXcC# S#;p22=,I%9|ηd)JJ2htX4N@::*O".:9phQWFXdGw9L;:>I gcbEv0~&YMd'u*#zad`WҖ[ š-n(`AtZEdWT?v*HQBEp)45j_&u_=0A-(P?O^1Q2%3*w[tU"bJVZů窏i09|!c Ffs6-KHO8S{IjU Q牧u1?DeV.o(FT0Zda%VR*H V*7)L+[U )!+#Qi- ;XQ'{E|l'1Tx<%0Tj1k%G(L3cҤ{"k6 i'<‘ 7F)# /; ^˩hMH%i!5K#?ǫK K > cҽų?5૝u%rѵ!fyHZcu)"F1or'Hʣd0r~(e>HG.Xr'5#h34k`kI[Q!!x"]00?FTADATADATADATADATADATAhb#kVy~]^,jEa`JB#e']9uI%0ha"U(%`bSsov?7^)'wj:oXf$>iEw͂c%hqɖ@{c46 >T6CiUojӷ!jWŅ,} 1uW'2B-;/\h@W5PP_fHcD$39/vŜTBfNЎY\ׯTE̳Ɉ`9%*t8z9(JbrΜ$[^זÇBPr+je* /hYX/hYXsdʰ)C 0 ƠfLC9J C:h*fN i ?XGΜ7)Ír*^| 2nyƨ%e c4$f0"8o$fCivy S\x Q4lDX7b2,@)i$oڴhNI&J12kyS:rĞq7^tART!4o( m1I7 8,ażREQ\9YՕ\TTAF1s nhvqӜwkAYS`TF_oɕL=&SwDF` PAÃNP7 b4\Ia!C8yȔQ1 $W9$FfgmYY BRцN^[@mehQFQYYGC/~HQ95FpaDɱYY'w…ju(i"ncQӤn)b3iuĚo.tjhC[=UYqtKt$ucP{Qeh)o뢍֚aQ&]~&Am{0Y:dq:ސثm&AгZ-HAhvjxp8a] sX3>lںZyB1yFVFjPAJ0ij:z홷Y5$Os&Z_u5GFQG%^~\DEoJy%FFJʁIh/ﰜMZ}QfDjqE( X! c-7C>jzGT`qC` 8ާ2p䔋>ù \R;ay?4QIuF}egtdjQo– zbpLjpu2揉tCIswa}˷ns*!{—ӡa|1"AXԣ (jy &e8/1Kg",d{&pRsI!5L7|ZLf/m֤C8!!IqRI^n!",#g8٤S208=T0 ɃYַ6)cݒ;,~!Xuw 52đ5:2jt'?0k2t"nC@g}r`Je Rd7;ÚN>wB-hpaPtjhL+%sz[vFJ $LW'הȬ5ټ)eL1BBLzHYA.VcLRKʙ[&BEښڐ(ЈEo?YB#Q[CRV$4[$.hAu Pqe.0$A o@J)283m"&̒!ZͶ9Gb%Ci=lp\4VGr]֓K͟5˥rO"Y)g1QzBl8nK 3MqSeޠ8.yk;K7YUŌ!}1{Î1pSEW"η~/3. R`{},AK_DO[ 7Ld% FcY[~tHz#nl_?&;͐7:7Y0W9ERr'fG~nd"S;9]Ca]c~5cg ^fgqAh0fCpFsCR?7{Fu"'#tv[vs0fPpF$ D$uo07wDzт >s{cQ6$CM $S@:a @#bTc;aaX1=i\UX7X|]#5~AfTP b+(D3$pP153EXe*bwtsA0zd⇀h*nh׀ `TG,!0[pQq-#YieHc!b9"tx$VScPXb 4)PBPTwC 00?N ls/+!,DsP.#wБhtXaE$.pb5)[8O%Rccdz.(#0W{ғz#^cswyy1XM&s9fC\e_ <ʼn`D8HovXC 8T}ÆHeXS_cȑ"Ke'yeAQ8Ez#9'rq"%ՋDQTJe(&rd4u$ԋ ,WTñAVGlfqzAAEIr E@qBlx#]W gn !j'"h-oQnQ pxgGgpL"FF3)ИBV )bx PKؓys]Tq8Wy & Ab`9 aAT!STϹY1hɃB~CaHsL]DIxc1v - {046zeQir |EY{fY}]XC!jBue7X 0]4SŢceE IFoT7rtt]f棗D_D:]FEF6]^!X3%\$1OGН1&)EBXK]$ zea!Wӣ]&h'kS1QEtR3fq}>:J}zUnCX\7_E+LbT>J]oWCR⣡IFK J&XJĠC{TEq@%1|!ZEZ 6bJz9^!:4H &d279 rᥭSh:9D8_:E!ԛ)c/^ Е j#%E"e7SqF]b \e!q`!=3 2yDbflbB ]QqI@)AWC9fVNbS F1`-#Up5A0jF1 uc$m+jѶʺ$`Y @e xKjlm8qEt(Xkڷ,cOaFzm˟[ҙ.20ӳ) F1˷Y#4A@ܒ5ck6aҲ5L x]_c@³%K+.72ȗȽSyh02K3+H;Sn]1-C+.,P1۠K+m[ɼFkIK+tഒ3Z' p(&//(b!r칈 ?uqXs!,>㲟 |㼸LK,ճr<ګb4CNTv\FKT HLÏ]azA]ڒ.OP1as|(y/D>j'5Y ̱S<CH-0CY.&,dLf{ȿ;9\\ Eʍ -@іb]`Qb#8cl7X#Z˷‡b{0*WNER 22+#|*$! !+l0zn35C Fl0,Y(/*&ɟhEp<b}yB;Ǘ+-{>:`%",ҹSY+9ޒ5E#ZHcEh?9Mc.m} L>0PJJB"Hk]uIR k !r N=y">d3uH.ݣ ( ٣ wQRf͛æE?D/!QSuTc%z%&A(y#Ayٱ;RT&:G!Ai !/Bp 0 E)ʀ.$Zvß~LF <0*^P{Nv#p\/ ~@@[)镊̺ @P}a(38N0K̖BkvtA0웒7|AЩ.юb+>Ebo>MV0KQY6@n+y/Yja~8pc}:Mp> C0Im>}Axs"?D0K]CAAc<&W:.8E@TP+y0M3W]!\&A( }-xF ɬ֠&A ɔ|l=OB:\0ZئJq z!N Br8)U|-D?=|l9+" /_A+5&NB/oE@ a745CX;E /,|G,r@Ə¿SF!o{|SV$J? O"o? O"oXx)&M4tI6e,x0B 2SfL Ąf )e1M6aܐ"fҰ)cƆ#bq"n #2+$]Z3dB)3 C~z͛>)fH2I30y@!9sœ2i)̘`J"Ta,T&H B +tEip%լAYQڤ !􍛡K }H'MBC\”9uu>2G=8}ÆLZ# q3yDA1FiFrџBiID3`aՑAau! zuH<ٔcX >@cH[U/ұ[ɸ^v7gbc,)11cH&#L:c2M9dVFC1r=t 0Fd!DMqo+uw}Q~ :hQpVHƅfu L("&NJ۔,Mn4墘 ĩaŒ7E$M+јZ2,{!k&%:DզۇeBAQr 儩!JOu $bJbwķ <TB6LPgx@AŰQ&'t H 8N:FPKrh'&UdVv+SPSXu3Gu+"A2W^,YN;}sZ UE@e O18ґF6PR4adYM/փ;6~ WsM5OJ5 Jـە鄚r∂^OcDotjCe?i.[J0z[ب?. IǮgIv٘Ƀ2qBƓ7n\$$G\fXAghЀGL(ZYf0?,QL(\ Uأ/,%\c$+<7t7!Q:BF h8Je~q-:@7 00?VTADATADATADATADATADATA]P2t]sm/gDQDQbqkU7rb8Hc0%lx.%EI(i--  C /L7fKVC~d kCaСh!#ZPU')>!薐<-/FeH7IJfq ]2TXB0rC.u "3?a )&;ͱ ,fFLaYL-!}~Cնu*`@khV;! P]s9 #ܛuRpGС h_~ר#Gxd9 ޤ .ݎJ4i% 5t[-1L `ͻ*"IT%F`t0Vp 2DqIepd (0 fp3A4Ȉh dD+Zm.` Ά80 "d cbQEȆc0Acfq018NFs D8 P 0c&r1/9?1hʈePze6&fF+Z&Թ%2sR6> v81'-h'P ]7%4Pw4 _%*Ap!4vk:`=Ayun}n7-v܇n v+:ڐnULJ[6z ljnw ~ g#8:n[7?"Gʥ4v C\0@فCrvkcHAyp A!ghS-B8@8ّp` 8 ^d A D0Am{yzm v,A4Iu (ނtAaP߅>t[91~wyty/[yeݧ-L@2G~hyWTAp}"|!(= 4_6o`e|5Ӓ_{3{=9s{v{3PGy5#42y2cbxfJ a {0XI_f(p0p+%pk: i>(ّiɋ yׄOXx#zE((, o,r>YTiK)=|UI=WaE}#ȓGt9I;PȔ708t0yP,w ek)mɄ `MfC$1¸gKȖhgٗiЈd_ a?J!8|70 (ZEZIt2(07;<;ʙi%_i&{E~xq#6E[k YWYY|93; eR{2 | Ys P[y^i`)H8Z}6IpI`!HaXX=@=)"Xxu=Bh9ʂa"NW*k!GGHjjåO 0'z([ˈhss269pN`?+2RT#DkszlW+XڨU؛X+㩂ʌ:ِJ8=1X ''}yol@ZԨ'zڂ7)ڍ*p ƩI)2*:Jj u:` ,`{jPI(3J RzY(\`n[ 9 ہ'P X .yHH#zxgZ,iF,qɉ/kf \Rd%91j#͗Z2K/e  z6ZG2s{( ,%@13jkn+Ii4kz'9vZ6 ʊ)+J2,ت+ʜ0v9a۰30D~)j06+ut{z{P6r5Yk+]{0_~1GR]r#{FᙼtRһ K2K82xˤ{e ;)+@$VK2-KVK݋k{{ܾL+=~)z9~N;G7$cºr ͋,|L؉[˾0ܟLKq ptK+Zl˴+:[(̤ ˹3-)tLKDz[{\Z7{ K;܋ɈCxK\+Ll3Ð ˻T ȣJy{F||Ƥ[tv<"lȣsC\Ë,8lL:<νllxl ˬģĥ9*[u X3+q~[0Ylw{% ` P"+ t `fDPy+Jy} },}*Z 6bF0 2} 9|.B|E.NIkl }WQyr XЗԫ*:M}.QiW37.37X$mғڍͨ˜H ؒX{ Ȍ'K{z s2sAW0Dh{tq D + DD@IM]n0~mh{>nP|G5|M4)=>:) m;4(Q*ОDz@|K(ݹ+XM=,9f-W PHA,:t]{v}-+ Nå&9I|3,({5n' l*{\Pl <0(ֽڱD79-`{ Db0](PWΤmc^m)=͍k̹ K{ 4._}cqN:{ $N蒞+N:-~ꢓTͰV-[];D`C궍̢ħݯG 헎s6.)flD~գc 㢾NʶŪ>葾y>>O{UiS ȉt=.RUEX\h` i~>KͤW[ό;~K~t)偦֛neN:,kgOx 황hL}%OƒgǮ_Z8zK]bW&`tIn;A^[nM-z?JEjϺ\'>:ei`KdI_HKepB/00?^@`AaBbepB/u# )I:_" #"4nhǐ7lzHeL5a\8$H8OC:pn2 .= Bs:]*Սb #GN_I#a9]vPNl .+HYxy3("ӵ[rg LxH=N8زg!&֛P%&斠?iBٴs]R(T:125eg8VMsEp J) "5pDY b3lʀ(3͛2dGa tq /(0 R)Hw(TCaWAFADuTnSH~UE }1cf}eF N&c@g QF Yj䒂5iXjiUbocUi!\ XOgycA x5eDo,T7Js8yUb9N (>"Y㕀 mIU WphiimQq=jQ ;UwE=tcU A$t!A\iE=dBdDcI[Z6d( 3 A|!LdvoBϛp +/_Te!qHCD;Аqs,E|1FY +< 'q¡;Geg0EB7_}Kcx .RhQNYgydghd\  ;7!l} U{*8fF(o \{vș q:mP4Sp/kdM6#ԛB{hǝw-[?թz~f_Ft6ߛKil cV SmV /mV#include /* * fgetss (buf, len, stream) * * Like fgets but strips trailing newline */ extern unsigned char *fgets (); fgetss (buf, buflen, fd) unsigned char *buf; unsigned int buflen; FILE *fd; { int len; unsigned int addr; if (addr = fgets (buf, buflen, fd)) { len = strlen (buf) - 1; if (len > 0 && buf[len] == '\n') buf[len] = '\0'; }; return (addr); } 8#include /* * fputss (char *string, FILE *stream) * * Like fputs but also writes newline. */ fputss (string, stream) unsigned char *string; FILE *stream; { if (fputs (string, stream) == EOF) return (EOF); if (fputc ('\n', stream) == EOF) return (EOF); return (NULL); } CMAKE.BATv L lƀhfM  3F 1@8a)C& ̤asP9m@C& 2; qD\re 2tB"5rB$+[dLoA񙹓SVp8wAqYdzS &{$Ht4产|+K079dQAȐi8\̓M֭ pIfn#sAݮ[(Q'*XQNmm_ra-!VYgqB @pRegoflf!@t|ArȁNX7FK_*b5FQ-Er'ԝP'pXM_  Ǚldnślh((xR c0Gzg ƜeHYneh9A Vål>"7RIrͱ!XHM-%iu!xy|Kʊ}a%tJ&_Kv&$] XYwLfkL H{.y]tn ɩuD.@D0Gsyg19 Ӵiz CbUݛ'Cfq(1iL9T eB'|Ŕiek\tS̡(rJnqGC[x@kxL!7xppG"UnWzlb;wX% nJh +21Ӂ/W>8jl 0n[1tBUUl-NGC")Hƥ +1g&]S#t$ˁI)RZZ|SO% UV1[LF1VrɛQJ$0>k;OJ. K U18A0x;igOy_n#/fS s"NI8--3 (pSaC 6<> 6C--QNhdlc3#(7%.l,V)Ջ1Bn a"d)3! gP./Se3QnLf$&E+PN(Y Q&YJC))JN P6/JhLCA ꀕmw,8L żS6,IN OxdDbK@5`IPؙwAUX yO|E uI34$Ţ?e2TՋ0/! g@?Asr iG;{4)iI46@dG(fNsD՜`"8n̈́CTQSTz@\Ô)P39-n":᫹cDĤMACRO.CTd |dKU #Ҹæ2 x̡C&h|4Pp` D D'P1 MŒc̙#LI/B*IRIP1FNWSG4tqGOMs:-O\xMRDSM6bxcJ :u7s4dJA)cFh8 B_$jt hd$A@e 7aڔIqDIFZaM6eZAFJ:B%>+btө}8]2xqC&0XaFxb:t'nT ;v2(ab,iꡟtxq 'Iѧ};L$D~ H܀M% IsHɶTH1EZta ֗}cQtOF6B 8#@°"g(у|;pa00BfTADATADATADATADATADATA *a*$HI +XJB f_ <4~-Đtl]!+BB@4 TGЇN_9eU)b%Jmh`Y%!y 'y ~V (eʦH9G`z“&*S~* Ts BzFt W) B Ǻ +&`觑¥@iWDL0&f $Pw TƵw%"l+JhbB ~ j`i𙪰rJBh}\jdS‰'vz+Iit^.VUA8ѹ:t [b,i؁h 4oaܥ'h-$ǶiUdFYg=Jq`^BY0}N}_ћPоO~vۡwA @|T(y`M'kE&D !(2+j -"!%oD:Od N%1k"`thQK.wCÔ1df YC1A ZEF1zk"TDa6 ^R; <LVր|L8HaĦ0ґXZQJP H"=LttND|CKcbSbRJЕ("F%$ MAKE.CT* 7 #Ҹæ2 x̡C&h|4Pp`  D4PD0k<1q AH$Ȓ" ZhF n@)QN:缩#g B3iؔ dqʔ$S&Ėf@@l0mϺۂL\7aڔi @5D N-se&A3a갡dŀS8̜9uÆM7d4O]-1J"7mDEXN9yx&Ehn ygKeBal,tހ|dSv9o8wLAWl Zz[{RU CQq nb tXh)^ b5&zh$a#5zݱnix`ATAOH7NT.@DqO@.H) -Qt@M1I@AI0I(A$ Q"$oeY B9b -_*)gPQFI8 G&עA"kiqTzN4œ&@Dj& Bt뛺EeARa!TT rbb !uј^~T!E+ŷȆ ¸{ae;Y 9bslV 6Ybx} 9`, D'wt'=eyv$- bDB@ 4Pn8@d?DBf9g*N1He^YܢӦceCV̈l `i89Iua ܱ KAm LTIPhP&@ \GH(H(/%RP@c.ΐTX?Jp5 m2N *J`I`4XR[8vRs&!-Ġ )gN ` AbN$|LUA~P;& 9%BeyZtitD` WCLqQbK*BJ9ub JvYQ`1'G7jV#ūMLu:МK]Viѯj c(|LUzm+_ 7~IDMR mYdW*6b]6C'f)CCS nXC )0L]p(D;VW& (CO-|D z[p΍U5r^UL[+*VnB=uH-q 47@!@f未\mHUvGTMԁ3wg(vB248Ud{$ MHGA| M !nm1mn`WAy[k: 8RІ5 cE}iK"@@(94 ?~j:M4$>H6>Gc];ٺsJEY:a S.p'ēPqW’p ҳ2\DCFWع\s0ò0`6 8b`LTb; &yD1tA$rCAYW]2\Lj[Dz݇ee}F%ZV)tLNERRR6SL1Vv#aO2o!b'e4|WЇ{wU?'~iF~p`~+P9D~~zgo(/QnE(>FrQg`i:clszz-vMPP HR.(-`Xf`?|1RO@P6gٗn|}g7(U_:XrF(!(}#(X%wzxLr}sWQzAdhg\y({}}Euf ʑI:ȃfbohDAF'BQq{aiAB5g!h4&i.q#ɱF!̸ixFe4jVtGf9%T)vf *r9:JJ@KmkJȄ(e~1UQ Z"Czǔ\xtjK4Քzmb16Ac]׃Nc@C`Dg%?BQNŀXVi{b#VbA0  [Z'TWZvJBB# UVg|tFr@t0lXA>Q@w1m2dphXn<Bhe10 f`p6׏ sG1E$<`Y3BZvD5S?$^ՇBa'w@luQt^Weq~Iz >I2 F)'@fyjgGE U'ylIJ=Ɔ)NDEgV2JۆKfʜqxa ?ԝqӐ<6Bʪ!3K4OIaQ5c:"BquNH( pơ!J*(pMAKE.HT ~26 /TA4n$&SEAq3M6ea x8 `Hc Yʴ "S ADJ0\thSL1k 3 7nPBt)3$0eҴ "'SvPFO9Tc| C0 AAd9 b+YQAC4Z43vrƜ %MC!/cdӞnwبkBF:"Nh5p̆g򹡧^oI[{EQ Є )FTH1EZ$PC 2HHiX4CZ dt>FiQe@FtI`I0AE0C ޭcQzrd/1d7BR<P) E"wpa UfWA_|Dp"rH9 SuFBU1lq -FgL}\yz/RDDTQNyp @jF`_aZ +&fTO*+gĩPp:1(-Ibt <Ǜhht+b4[zf>$&pj$Ic Cd-+MiAyxaŦ{_Wa5̯flu߅qF$16le<@ӞHi =7 lʯ m tkAvvF,Swv[n TpW;5TZl1zݭ╷uZhtur]!Њ,ä́)`+0z <\gXf@q5;ff m+^fXG}F(nӹ go 0MAKE.LISX 5l rʄ!Ӧ 6a֔qe̤acBbyxq1r޸HB7#(FΜ2d B"EoѸ0̜6 X\qPlQMAKE.MAN ѐ= M,)"Ix 48` 0jT$H"P,6aҸ:l褁æ 9ocLs@ +M D(ŌXdqʔ$SB.d[A[0kM66]@e#F"E  $OH2M0 dN*I#S1頱YM<(Ib̛6(xchs i ONP*YGΛ3rέ߸CGN1t<0Mؗ疙;@yΙ~)(¾zwh@zcȑ년wbS5\tmWftN#I4rk0bvV:OsPAPJphLI;hV9XI<9NZ3evkPF&@N2z:@l r ֡•hrDs^6vplȬ2\0mmgs@N ,Fi9>w&_ MALZ^ 5f-a;:p(\ѷ%g6ǧ]\p 3o q`ָewM}3nQf8uJ7$6wmC1!Cm"^g^kq#dXqA6Xo(pO ِf,)Y)#ɑVY8$&92JᘊXƊh"I30R1U^{1) `o.)%W'x)rAg6q`G7J_H7#SmD)geyNc.vJ)l(;?,$ !!I/Ek'0z_%Ft.ITK-N"0# P]33gzuMGmm_'1OBJkDVVeN_geNVQ%O@=foI1GsO %9SUΙU&cy}Ordd _dTb L6&f"`'abuS-ubeGbô2zVd$Zʓv6!9h!r +1!xSt8UkX'1AD *e(A#JG Eŕ%A+&#6(9LbRh 1V[jcP)S UD, ʍ*EMj5:#]D>=ChesIAq?8EJ^&'@'p[$"" P Bt6GSP{N7>:{YdA:N!@ၢ 0g*d%I#94p:lR@{D¢V20!wJKgF.w`3 ';|%vXq.1@x!gckc2`%Z!vdDjS4ab;eBL?KX-K~:Y P;@6&kWSPF67q=˖L->C< {q`RS[/:n#&t%I!&^ L"~By,^H_ 8 #^c촁 n_yV{{NcQ1UN@NmgM񤔖M%|HUuoU(q)NV_M|ƺ+.'q'F} %zkHqc0{^}kNշ{ȫƜP(V_;U$%Dk[;`gUk^㫼q_  BKP83SR3m %eք LF)ϧ$HTÿeKE$,2";:`;/!^9<8ӹ lU O^AOK$\"Pr+Uݶ.AkRP,pp/6i(@C`P`*L!̹5YG  c)L:1!I'j) %TLJȁ\+9a!M 湪NżU@=[girGD#=uEA PP?P7P?cDpVvk- 1ESF-#%A ~oC4"9P04MAKEEXE.EXE5 <5J MX` $#PqҀ8 !Mpa4^т,`u ` pO|NŢ `1ly0Hs%_M(b 8FB4j<`჎= Hیd@Ku6@$*zd: 8 ~+gfH#m]fMk,`AX4  - &G0Xl6:y@S`"]rDvcb|'RXp#Ь=O D# f`p|8`#H>Q 20:0(`DA6v<4,2L 8&gFOhNDU-ZsUV U ԰=@"&dSh2F0fZ+?66'vE: ΄Poo<8M@dC( AáA';mn<^0TCEG.N7HF1?x!@:B Mx>n-pчtKױi- ME[х27pB<G \d+xq@ VjG,_tK@h;) 0x `6_8;`x%D=/31Dđ ncx?.@gӝwcz=aax,H  PcAt -vȧ;ڞsxtO`0QHq 0`)xuA,椄g:8`| Wo"| j@ @2 k|2#蘀Ci3(گl sW=;63!@2][ ]4.?\7OoـeElALp=Fey|%pIV 'l(~ʰj$ +F g.uD{yT P'EH'@@ HG]E0 4F7py=dP`va5rup4f?1UttP-304E/)4 uwP?zOC2 |7jxYhgy](.xlXtT o6 T-2QB3 av/ p^`3H4~@ä@X8L :HSwE[;p&zbotd NQ" < P4Fd(HSd @g`cPUgԤO:~ dRT:|^p\t1&eD`e`Xa|)spe}(}ͧwWpnGe>ƖU~HJf7Ç Gr6c3+10 9J]c;󪸠ZX۠ENG0 @U4Gͺ,gi2rZ3 rF&P zWv93PPۊ ~Ms j:0uY{6E.V@2 5 K Ws@5s5a {OE040Gcp"C3Ȇ[v^Fda@2cFP44V`cĂMK :p. xJv@f/ '/m/sb t5t UK+03prC@2fKuN /*1Qo Ip6S?`E3P@h57pP0'QQmkN 1j?3һ՚1й{;4sc:~h֛+:nK:Pм0@ 7; {0sw03aNi=p;FXAp3 }`t04Pɴ۷BfL5ANVREQOl 9cJTk.Etj.btuF n )zU]K3@GP0HEx`a6ڣؔc  Bأt1'v0`Osl7xﻐ6v֕s[w^"R3eHКXmsou?Bmo0eǖlGǶ[vL7CdW1ZT=*  W3#b{l F wѼ@bS4+gY68h7%V  NkyaS9ŔxfPE Lf\Pȍ8'zĈ[ܐ/Hw&B eU G`1Zi(P0oT}TЫ@4%M)ʦ :434]Tj)=ʺac6@hCh2p @h8 w \IvΔ .e\iw/z|(Bm1nsyd/`H}y=xJO=Q JwSM{l] 2@hS0M~ `_,iL=`=t's wFsaKki!g~tLK7Pa10p(^cR&[c=7-hрѰ 4]|~p&`ir.)g0g 7mDw : e*t>M7G)PG}ԝ-p@ W-l` `ԍ 5vjlb$K]Nj(@2KЊ@ջiklǰbj{}$#wTWY?Rڳev4-|`~|p/k Phc W1>7t`6zjJ) ;pjh]4o\(aӆ6LɆ0 @ \ 6`nsSS$ Ƃ5\4֮X n0GW_[`W0 0 aN03ZpD! e0`sd0P;S `8p <` rUqu0^08eh!Ysm> pwA3ưl/wp+pN`tp  w_dn?A5E-O%05ڏo?3J?l<;XX'_k^ؠJBj@zoNgueڰY1憎E~O|.Ow9 i*+y 7l/gf*-4 )< FUfc$0-4 & "]J`҈l % 0->]$mҳh2%P2q%Mԃd1N`싀P숝 eF+ֶa͕dm %}:ƧnTu}/f/d1Nͷ xFɊ`ˎU2e}6F (m1ɍ3۟cVi|ؐں*Yt8E +C!j# %=015֢5rZ 07 t8팰 +C10O Rjj,PZS@ JP[  jps3 + q G ܾ O  ? _D3o]D[b'.Px`kT5c ./ ӝD ./ %ӝh)v794 =p4A3 RuF`G#= U="}pLʌ`}1p L3AtPrݖ^b2v%@J^ceDŞO 79FvNtvEHnkHDXu=g 0 G#5$ @FC4 .in00Hu=gx[SA*D2/|0in8 y;6?8 ;6}E3-p[%5[*1V`a2#`ss[%500`T`O PI`68eVA0M2 7Z~0At /8eZVl/8e VlSVl4h;T =o8eTW5SVlPHu8eE#/0 0 # <$0$<<`074hs.~0Cwv>` WϺ<$qikE3Y`s ݩ9U_; u 8+[Hp .QƮ`s`=G2/| 03A3A®`{07v@ o@<0o@d0Psp`C =P Fj 79Fv Wo\EHNk2` 80U 80 붸[v@u 2ǹ`%3%1 PI`TSVN70>3dC pf.~@R3%0(?nك~ G~pF 07` ǚ^u}/i4P.s/fW 03` ON_3$ sX| 2<ff ~z0>5_ Z> qIs/4pI:.~of `^)'S^@ݰKG~pF p7077`OIss%@ % %@ %C0 `<'BF4`^h@Esv!&k0+kD] 7072<2?nco8q#&k0+Vr .FPt>%uR-0 oc 3v ?Md 0 tH?/pΧbn0oi P 7pȩ)1ZN?7UhI.~@rЃNvc ݄.2<tg, [=?> q䗉sC(ZĀoY'dTyN@2<>C#փE Nؓ%φBLГ%0yMkK*d6[96تYflȵ-SFf svcaHl g=?OE~Ё*=Y0 hHlɚ 7l/g%H~:&0p9.=Y0 #څ<ܦRU  F1mN`L6^BkH*d8?]-.g۵nm Q0 M[p"ja~ުGUpcd2, F1mN@ <"u7`'/-? `d0נmcRu= lOFF:?l pld!|`싀PcV20 í?0=r-)3bʇ}%zc7 Zړ%0fU[IWy^ApK_ȇ=Yl^/0zcJsf 2fnm$2-`;c;6F1Y'm:003A% dJ?.B0~:P?:0`d:P羑% deL\?: Ӻ)oF` $<t"$~YB\ 2j $<1Y;YЄ?3#e>7@N N:vy3y(a! o m BpV0^nm133Rvy3Ԁ\yo f>7@2;%LѬ+. L &̠b  Jl L _ F `P?MCD "HJ< +[8ox>3#e>7@N Njvy3y([3 o ARA1 "VѰѠ o 0&Jmoa Fu ij/+[8oGx>3#e>7@N Njvy3y([3 o A P1 o 0J VѰѠ o 0&Jmoa Fu ijs+3f/ y3y(IP3/4-u}/~]Nu@H"/ ev@;N `q94hss&<e5g.iI00 /:=xu S - <00<0^N 8op?W*`|‡ @3?/A>3ԹQ0#$t"0Ap0 ={[?0~ }u0F`^c~0FOF`3dBg< .@z?33bBg<0L-?aN4d@2<00=L03;@0L.3< .;#yr@`\(tF v8+tFF@2Bg<0L0 .Nh8+tFFI$#tF #$HC2Bg<0L. .;#yp/8f癍sxBg<zn P $#tF v8+tFFٔ$#tF$#tF"3vsxBg<zn ,D2Bg<0L0@2<00=LE1Fy`E&b<0L-p^MI2Bg<0L+/ NsLp0 Jl ;ƙP~"u0 v p=+tF t]"? u0F`^c~0FOF`3dBg< .@z%lin@:pc i0>ppJ1 5EH~N-|PcIo n˂F{aa 68n00B`AaBb`Faˢ ڄ,EHn"1  pJhh]0' MRdI#1 0@쉃>Xc"#21 X\ 6F{asp3 @  L-^`ʍ.<1:%v rJ6o@3At Q9eѫ^"#V }VA; 17M|Sv+0v1)2"s Խ +0v1>> 5%pN( 7L !.   02v<F+sQq"5vo\h 0v1 JJ 074/.d6F{as1p3 Ap)0Ѱ' O apP0`)8-   D;#`艰Qc jNI2\ 00Ƞs:l @Gp-5u0(c0eDZ=Ȱ6ӐMy@Gp 50 Խ +`^ PcHN^SU e?1Xb@۰F0 5T1F ]1Pᷬ|4H1؀Ho HM\39 pCsSPP; 9n/H0 XWy/ 6EWyy}`STl^^{jibOOdSTl^^yjAbO^^(4oْ=YBvއB<3Г΁EldG\ N$lE+'aUEwFE1gF,[A~)__B=Uܔ%jca]8 t-f7BXiإ^m8!aTPI(GP}jYNnV%y]l:̘@ VIQFJݚ^KLNXB҃ wct. T8.u6!1ڝ5:BQG%T`^M{Q0UUj+ EKsG9b_eDbn1AluCH=M1H)ReAƌKEUB+xGixۨD1yrT{SѯxFףPYh%XC- vhzc e'))D %TRB*Iled,ZXF:ia:R A(䉶vXb5*h¡m* ]aG0_;$ UΦA)GƩ^*{TchKx|kyv- lmz(FЩ~J_j6p)Uwdt|}ZfpH82Bږb FnDU؜NQeȀM0s)T+2,Gi^m\ӌ%1uLj&s3N86S]d:*VQ zpQn !gHCN2)P4'aHNg ӻH549(l(aL %)uRt0b=%ig|C1 CћjӚ &č$|TOKEN.C.CB t q #Ҹæ2 x̡C&h|4Pp`  D4PD0k<1q Aq nIMJ7 y4xRl֑4 8o)#i񦫓*L935u^fkמszũ&0rn1B)ӵ d0n΀͛fҔ!Xq?AyfN&:mp%K wЄE8 0ހeB)8)Bs8;&99cU>]wpr7n @aH#!{ᨀ&?No such directory name - "demo:lib.c"@type smallc:lib.c/*** lib.c -- function library**** Copyright 1982 J. E. Hendrix*/9#define NOCCARGC /* don't pass arg count to functions */1 /* called by these functions */#include stdio.h/*7** dtoi -- convert signed decimal string to integer nbr2** returns field length, else ERR on error*/.dtoi(decstr, nbr) char *decstr; int *nbr; { int len, s;/ if((*decstr)=='-') {s=1; ++decstr;} else s=0;+ if((len=utoi(decstr, nbr))<0) return ERR; if(*nbr<0) return ERR;6 if(s) {*nbr = -*nbr; return ++len;} else return len; }/*;** itod -- convert nbr to signed decimal string of width sz4** right adjusted, blank filled; returns str**,** if sz > 0 terminate with null byte&** if sz = 0 find end of string*** if sz < 0 use last byte for data*/5itod(nbr, str, sz) int nbr; char str[]; int sz; { char sgn;" if(nbr<0) {nbr = -nbr; sgn='-';} else sgn=' '; if(sz>0) str[--sz]=NULL; else if(sz<0) sz = -sz;! else while(str[sz]!=NULL) ++sz; while(sz) { str[--sz]=(nbr%10+'0'); if((nbr=nbr/10)==0) break; } if(sz) str[--sz]=sgn; while(sz>0) str[--sz]=' '; return str; }/*=** itou -- convert nbr to unsigned decimal string of width sz4** right adjusted, blank filled; returns str**,** if sz > 0 terminate with null byte&** if sz = 0 find end of string*** if sz < 0 use last byte for data*/5itou(nbr, str, sz) int nbr; char str[]; int sz; { int lowbit; if(sz>0) str[--sz]=NULL; else if(sz<0) sz = -sz;! else while(str[sz]!=NULL) ++sz; while(sz) { lowbit=nbr&1;* nbr=(nbr>>1)&32767; /* divide by 2 */& str[--sz]=((nbr%5)<<1)+lowbit+'0'; if((nbr=nbr/5)==0) break; } while(sz) str[--sz]=' '; return str; }/*2** itox -- converts nbr to hex string of length sz7** right adjusted and blank filled, returns str**,** if sz > 0 terminate with null byte&** if sz = 0 find end of string*** if sz < 0 use last byte for data*/5itox(nbr, str, sz) int nbr; char str[]; int sz; { int digit, offset; if(sz>0) str[--sz]=NULL; else if(sz<0) sz = -sz;! else while(str[sz]!=NULL) ++sz; while(sz) {$ digit=nbr&15; nbr=(nbr>>4)&4095;+ if(digit<10) offset=48; else offset=55; str[--sz]=digit+offset; if(nbr==0) break; } while(sz) str[--sz]=' '; return str; }/*2** left -- left adjust and null terminate a string*/left(str) char *str; { char *str2; str2=str; while(*str2==' ') ++str2; while(*str++ = *str2++); }cout(c, fd) char c; int fd; { if(fputc(c, fd)==EOF) xout(); }(sout(string, fd) char *string; int fd; {$ if(fputs(string, fd)==EOF) xout(); }$lout(line, fd) char *line; int fd; { sout(line, fd); cout('\n', fd); }xout() {" fputs("output error\n", stderr); abort(ERR); }/*:** printf(controlstring, arg, arg, ...) -- formatted print6** operates as described by Kernighan & Ritchie5** only d, x, c, s, and u specs are supported.*/printf(argc) int argc; {, int i, width, prec, preclen, len, *nxtarg;/ char *ctl, *cx, c, right, str[7], *sptr, pad;8 i = CCARGC(); /* fetch arg count from A reg first */ nxtarg = &argc + i - 1; ctl = *nxtarg; while(c=*ctl++) {+ if(c!='%') {cout(c, stdout); continue;}3 if(*ctl=='%') {cout(*ctl00CDTADATADATADATADATADATA++, stdout); continue;} cx=ctl;/ if(*cx=='-') {right=0; ++cx;} else right=1;/ if(*cx=='0') {pad='0'; ++cx;} else pad=' ';9 if((i=utoi(cx, &width)) >= 0) cx=cx+i; else continue; if(*cx=='.') {9 if((preclen=utoi(++cx, &prec)) >= 0) cx=cx+preclen; else continue; } else preclen=0;% sptr=str; c=*cx++; i=*(--nxtarg); if(c=='d') itod(i, str, 7);$ else if(c=='x') itox(i, str, 7);, else if(c=='c') {str[0]=i; str[1]=NULL;} else if(c=='s') sptr=i;$ else if(c=='u') itou(i, str, 7); else continue;( ctl=cx; /* accept conversion spec */( if(c!='s') while(*sptr==' ') ++sptr;0 len=-1; while(sptr[++len]); /* get length */1 if((c=='s')&(len>prec)&(preclen>0)) len=prec;9 if(right) while(((width--)-len)>0) cout(pad, stdout);7 while(len) {cout(*sptr++, stdout); --len; --width;}/ while(((width--)-len)>0) cout(pad, stdout); } }/*8** sign -- return -1, 0, +1 depending on the sign of nbr*/sign(nbr) int nbr; { if(nbr>0) return 1; else if(nbr==0) return 0; else return -1; }/*<** strcmp -- return -1, 0, +1 depending on str1 <, =, > str2*/)strcmp(str1, str2) char *str1, *str2; { char c1, c2;: while((c1=*str1++)==(c2=*str2++)) if(c1==NULL) return 0; return sign(c1-c2); }/*9** utoi -- convert unsigned decimal string to integer nbr1** returns field size, else ERR on error*/.utoi(decstr, nbr) char *decstr; int *nbr; { int d,t; d=0; *nbr=0;( while((*decstr>='0')&(*decstr<='9')) {( t=*nbr;t=(10*t) + (*decstr++ - '0');$ if ((t>=0)&(*nbr<0)) return ERR; d++; *nbr=t; } return d; }/*/*,** xtoi -- convert hex string to integer nbr0** returns field size, else ERR on error*/.xtoi(hexstr, nbr) char *hexstr; int *nbr; { int d,t; d=0; *nbr=0; while(1) {+ if((*hexstr>='0')&(*hexstr<='9')) t=48;0 else if((*hexstr>='A')&(*hexstr<='F')) t=55;0 else if((*hexstr>='a')&(*hexstr<='f')) t=87; else break;! if(d<4) ++d; else return ERR; *nbr=*nbr<<4; *nbr=*nbr+(*hexstr++)-t; } return d; }/*'** abs -- returns absolute value of nbr*/abs(nbr) int nbr;+ {if(nbr<0) return -nbr; else return nbr;}@|O, V ,|SYSYSYSYTICLzNQ,LzVx8J8J8J8JLL̝F"QNO|00DaBbQw &?  w ff :%  (   f d* @7r*wp*  ;  4*     ^ , *w~ * *7 *w *mZ.)w )mN.)mN.)w )mB.)))))f e ))v.)))) Ve ))d)z)|) r) ef& e NHB<L)F) 2ef& Fef&$)) *ef&< e00DTADATADATADATADATADATA )(v*ַ((mؤN mΤ ef&(( 0ef&ӷ \e & X % (*z( t(h( Pe 0@ X   ww ff f 82f f ff ef& ef& ef&f f ff ef&fS eww -'  '-'  '7tz'7x' x''  l'x'p'ww  N'> N';-p'p'; l'  Z' V'ȕ-N'N'; J'  8' 4'ȕ-,','; ('  & ]&' 'w6w &@7*7*w*@@m7*Z!*? v ww &&&v2?|& t&v7X&e@Pww ww 55wD Dm-̋B Bm@ @mwTwLEec " w%wffe& e7%-%  %Twffe& fe7z%hffe& Le7X% T%-N% F% @e'm,%7(%m%7%m%7 %4@ @m&&$@ eD? fA$ ee &? :%  yw u-wh@1E@& % @7z$G@& t% @7X$I <%&? %  xw~ w n DB Eec&  $̋  @m @mEec  @m& w w # ( 7##Ȟ p%#  & t# %7j# R#beP# e @# J &? % 7:#74#;2#.#*#wd w T #  7""* %"  & " J%7"g" >e "  &? % ҝ̝ t &  z"j `e&? %=7r"7j"?f"d" `"w w @=,B E f@  weV&w P&!5 !  u w-w-@5@=,C ÒE f@  w*e%w % 7vL!f& ee@ 5u5uy el?A @@P e el? /@5 DDm el?A @@P e el?v j -% $ $ e el?Hp Z -$$-$$ w  ww  ' m$@ m$7$w$-$P--x$H)p$j$ v5u@@]"ff8$2$ e5u"$$$$vf& e5uw-$ w-#w#w# 8 ww l?H <Eje e e e e e e e e e e e e e e    x2 qe e e e e e e e e e e e e e e e  m!~w xm!rm!rw lm!f7 !7 !7 !7 !7 !7 !7 !@!ww ~ w `Eu̴a&@ @@t&N ´aEU  @t5  R @t5 Jm`\-XZmR w ;D re7 2- 2( &; Lem w 7  e-7t 7W-<w- 8@- ; emH w B 7  HW-& J     xPTe ;& re7aw 7 *; r ww D&& en  $ .     `4 EwDw 4D& e   &?  % ww D  >C 04# E&  5 S5u-u@m5 u @w\w L DC ("    5u-u@m5 uww @ww @& he&? %ww @=ww DC  f %7 ޺f e &Ef e00DaBbf %w>w .Df" , %  f&  & %f %ww DE! Eec7h7e"  xZ&  eww p wt w ^ | w TD  !   +  - 0   C``  w @& BF  6  r@  & r V A B      N  6  r&@  & r V A B      vw 8 ,A  vw  De !  e@   $e   C E  E D   A @ Ί     . 7 z vD 3w 8N#7 DW 5 7! O&6 0!4 D55  ze ^*7l& 4  5 4 E  t4   f6 0 4 V 5  w ` D@- v--j-b Д -7Е_pqr <- EeAАE6 Е: Е[6E Е,6E Е]\ b ^ ` &Е.b dЕ;6 @w| t  6w TfNaf (wJw :Dw 0  f w D wC J w CD   B r  5 50 ww D w    5 EUw2eE5U555# ; `;ȥ8ȥ500  )5F# b5   5# **UE04D # ΍UUU@U ^0-pp0-rrUwZ7ڌ  f wFw 6CD   B b 5 50 w  A45  P e BCDEFiw h eEX55a 6 6  E 7 ݇& & B  e Jw% (7ЊE &    N  Ep p`  e@ `   &f    N   EEp p`  e@ ` Bq@a  e@ a   w :ƊNK# f/f' ww w D@ (5 ww D5E B D    ~ Am ED `*wzw jB& f&Naf 0wL ы Ћ@  a zE W @c w 8 `# w  & ؉҉  w D 5 w55 &f&5@  wF5E 5  5 44 f&- % b % %e ee e  (@w A@ Е1  0  А wl C C C  Е- f e:  w "CDw % >5 5   -  05 u . u r uCeBe5%l  e E f F g Gl#@$lU Amulff& & ffff& XeWuAe l uue du5 5 uu  cBe5* sB$! d  o  u x X ff& Teu wLы A-Au  A  f  wAA@ D  * ?Ae  0  9 f e`0&&5 2  6 45@     5@50 4    5     <   @  U jʋ"Ҡ@Eub5U5U45UwDR 7؄A P R@ 9ȕ ^4 ~ e 00DTADATADATADATADATADATA PeeV76wڶ ګ 24j ( J @ w0: v%  []<>  %468 w* C6 t !et  6&ff w .A EZB` LB eC      & fY $``w rwaoutputinput?C-Standard %s, ?C-No memory. Is this task checkpointable? ?C-Can't parse command line. %C-Can't install vms v3 patch. Get help. #()+,-/>?]^w *W w8  `f& & AA mwe? z% dlց-ҁ ́-ƁCL" T#  W"`3 F-  ~T 36 3w&).` D%C"å 4̠ԋå[å<>]ɋ C ɕ w nR  ѕ>ѕ B& HBҋ:& & & $&& ص& Ε ! & & & & Hf& ص& Ε ׭m  @E%Hq 0 BS  q3v޵ܵ&  67el3\  7Ly3n3@>p3 & 7$r3w3j e ,w3R w w B`5 Q7!6&. 5 \ "~5 E  eU  :~6& & & f&& ص& Εf "U @~76~5  ep U >7~ e 4 4U  }U ;@B'd w DBC & W-d8W-u;W-o  B @ B @ B @ W-o B @ W    e0 9eW-Xe  & ԕ-  8  C B    e0eW ,8e0Ԑ wF&f5@7!} 5  &} Uep r>7||U%+5 *=&(5 `ѕ  ʋ  ׬  U  50 w v@ыe : w &BE W W W f   2 '" <>    A Z 2 e = !  wp ψea(O'00DaBb00DTADATADATADATADATADATA00DaBb00DTADATADATADATADATADATA00DaBb00DTADATADATADATADATADATA00DaBb00DTADATADATADATADATADATA H?ź̺Ӻں*;JZmǻۻRR""aԀTI``@ti:f<??????{Null}SY 2ddBMVX&Zt~^pbTF8*HH""""""%ld chars in, %ld bytes out, compression ratio: (%) %ld.%02ld seconds (process time) for compression. input bytes per second. Error when compressing "%s" to "%s" lzcomp fatal error%s%ld.%02ld%sThe following options are valid:-B Binary file (important on VMS/RSX, ignored on Unix)-M val Explicitly set the maximum number of code bits-V val Print status information (or debugging) to stderr-X val Set export (compatiblity) mode: -X 1 (default if -X specified, output format is compatible with Unix compress V3.0 -X 2 Compatible with Unix compress 3.0, block compression supressed.Illegal -M value Illegal -X value: %d Unknown option '%c' in "%s" %s --Too many file arguments rnrwn%s: is a terminal. We object. Memory buffer [%d bytes] filled -- fatal. LZ_CLEARLZ_SOHLZ_STXLZ_EORLZ_ETX???%2d: %02x " \n\t\b\f\rFile system errorIllegal file nameNo room for fileFile not foundBad device nameI/O channel in useI/O channel not openEnd of fileFatal system I/O errorDevice errorFile already presentToo many open filesFile lockedNo memory space availableNo access to fileIllegal record size%s: %s %s: Unknown error %06o %d. %s: No current error ((((( DDDDDDDDDDAAAAAABBBBBB rwaun$+ {dtoa?}P,4f&f ` *  נ נ  נננ"D נaנz E ѐEp(p נ$נ0נ9נAנZנ_נ:  Vנ[ȕ]נ<ȕ>ȋ8 ~נ%נ*נ-נ.נ0נ9נAנZȠ yנ0נ7נ*נ,A jȠh f  oנ"A   #A aנ$נ%נ*נ0נ9נAנZנ_נ.  נ.נ; dנ0נ9 ]נ- X נ* QA  נ, Dנ=  >5 B>U (w^נ/* . ,נ$נ-נ.נ0נ9נAנZ נ_ נ:  Dנ"  0f&f E^`  UQ  UQ ËUI U `e  !ddC    D%*.C U 0 0 W ,Uw6W /@ : ^BDaW-Ί WNWOD!BΊz CECCD! D! ΋5  e ΐ TpRpR΋pBC5N KR΋KBAE:D0CĊ f e00DaBbB  Dҁ CSĊ `! WB E Br Ε f)& 6 l(*  E 'W " =N  W :+W = 1 #W ,W / %W %W *Հ W <W [W >W ] v(* 6 e00DTADATADATADATADATADATA6õTw  $ҥ[֥< , (e  5 sC~ D w w R *8F )98 eB &&  U **e *Nlv ΋*.) p  & #!)&eP(e && z p*  w( w N ) 8C * ) *w *  ep p  C  =  0* =Eե^A e@ v Ep |p  , J *` l C#   D w ( D B 8#"#)%ĥ ĥ w 0 *0 @Q$    0 40 60))  z :# 2 3&*w #( P) @#**fff   &*wD. H35(8e$8w22&(e %p8q #) r *R*)@#0l C# 028 00ĥۇAĥĊ  000 0 @0 &*0 @  u b#eB h *  eBe>  # #D #&0 #   0@e 6@#040 6wT!p2w f( D  8#"#)%ĥ ĥ w  0 *0 @Q$    0 40 60))eB  z :# 3&*w z #( P) @#**fff  &*wD. H35(8e$8w22&(e : %p8q #) , *R*)@#0l C# 028 v00ĥۇAĥĊ  000 0 @0 &*0 @ u #eB : " *  eBe>  # #D #&0 #   x0@e 6@#040 6w!p2eB  8 r $&w *   w *)  * Rw46l0w  >o832de& & & B  2PΕ   N Υ$Ε  22Υ   v Ε f e j* *e*w *0,  T  )*)   l 0l     ee@ 4 r- E ep )w ,   N w $  L B # 2 f  `**w)0406 l0 &ff 5%& w &Ba +- ʥ# . U 0   b   `     82e&( 0 0 0 80 B00DaBb0 0 0 0)#0.0+1(e  \%&p*w f( f)f z) . 0 .8Ae f"( UCɗ&+(e$&% *w  w & W+W- Ba. W#  B0  c  c S W %ec e`s  # 3  & ˥ Z ^C  *) l0, *) $ )*)0,40,6 w *  zw   ,,  *e6p 4 `8    )  8   ***  DP5R~RRR~141612epl2l0p Mw    f bu   f &* *. 00l  0 *w ~eE D` bl lrw :  B eE"s    s-  Cslw Z(B C DBe ?D(1 >0f(& e %&&eH U   Ef p  wxw BC "& <SY&*p0p21E%0*w(*e "f D CB.Ew *.*#&  U@  *e   ew.1  %,,  &feʥ[ʥ< `Ew *D BTOU(1etS~:ӕ: ͥ_ 5e&  T ee qqC ӥ: ~ Ce   *w **  (Ĕ%.%%;C~ 5)5@DD ͥ*Ce a%wUX5@ 5U U*U  5@XU@5 U*U  ʥ*%C!.D` R*weC5U5  5 5@e* 6 p 4 0`p .f 64 p46 F e*w ) !f j D e) . e6p 4 08*w*&f  EU   pr0 =B@&& p&  N pv C`B `v 0rr D wC r UeeA e* 0s rp v& sBvrp   ,*1 U4 6w Bfep`pwf8e2 &f (*Xe( - 1 Je$e (  & | 1-1- 111 rrrrr 1  & U ʥ. N ,N&  (+et w&(ete & * e 8*ʥ[ʥ<`E *&fe ~  2 $ L La Ta Wq(W!ZW!AW!9W!0@0,0, f 톇,, w      .% eB U5UU plp & NeՀ)*f&5ҕ[ "5ҕ, 5ҕ]Et55tF e0ҐtIDez$ $ $ %  ,. e   ҥ. *V    e    1 DEe $ $ 00E&TADATADATADATADATADATA|O,Ϳ77 V n-jSYSYSYSYTICLzNPn-zVx8J8J8J8JLL̝76PNO|00E.aBbPw <  wff X%  * | j$ R 7l$wj$ < 6 5 >$W-   ʒ:y P%F< D $9 $ $7 $w $yyyy## ef& ef&yy## ef&x e & l % #`# #K|#$~x e xq    w w 5 -0#w-H#H#@# <#E< 4# 5 fx e< x%-""" "E< " 5-""" "E< " 5@"7 |"fw e< %  x@E76"W= 7*"-" "$"ɓ&w <e w (e< %7t!7! !-!!! !E< ! e7!  !!!w w @7%7%@@m7%w%D$%@ L 5 W-~%@Pv f %< %w w r 55wD Dm-̋B Bm@ @mwRwJEea >00E6TADATADATADATADATADATA w wffe& e7 -~ u %Swffe& de7Z gffe& Je78 4 -.  & 6u L e&-  7 - 74@ @m&&$t e@ fAt ee < 0% yw u-wj@1E@& % @7XG@& % @76I4t J %< %  xw\w LDB Eea&   $̋  @m @mEea  @m&  ww    7rnps %`  & R %7HJsb< e , v < % 7*7$<"x"wPw @ 8 7r % 8 &  v %7 re V e  <  %r jhkh  e X < %>7^7V@RP"Lwxw h L` @=, f@  @&@  Pw ; 8fL`& eL`"gnq e<  %  h J o ڂ x od  L`$ eL`L`5$fL`& eL`o   eL`L`H loBww*w   L  !L7 L`        Lboww \-oo o-oZVn7tn 7n7 n-nn<n\ e7n nl7 nn n 7nnn 5`E@  t&N eNEE  A AECtDPe@&N N`AECtDPmn(n!7!z 7 n mm  xww DBo&& e(o .  ^     `4 Ew4w $Dn& en    < "% ww D  >C 04# E&  5 S5u-u@m5 u @wLw < DC ("    5u-u@m5 uww @ww @&rm e< %ww @=ww DC k f %7 kܖf .e &Ef ef %w.w Df" \%  f&  & %f %ww DE! Eea7$k7!k"  x&z Bezwpw ` wdw TD  !   +  - 0   C``  w @& BF  6  r@  & r V A B      N  6  r&@  & r V A B      vw 8 ,A  vw  De !  e@   $e   C E  E D   A @ Ί     h 7hh  @jj h3 5  w & D@. j6.-i-i Д .7Е_pqr i. EeAАE6 Е: iЕ[6E Е,6E Е]\ b 6^ .` &Е.b dЕ;6 @wB   w $fNaf ww Dw h  w D wC w CD   B  5 50 ww D w  n @ j 5 EUw2eE5U555# ; g;ȥ8ȥ500  )5F# f5 g  5# .*UE04D # hgUUU@U f0-pp0-rrUw*7tf   ww CD   B  5 50 wP e BCDEFiw eE e55a d d  E d7 d݇& dB  e Jwd% (00E>aBb7dE w PeNI# f-f%e ww pew D@ 5 ww D5E bB D    ~ Am ED `cw:w *B& f&Naf w  ы Ћ@  a zE W @a d  & d~d  w nD 5 wdw T̑ # lwBf&6. % b % %e ee e  (@w A@ Е1  0  А w C C C  Е- f e:  w T"CDwL % >5 5   -  05 u . u r uCeBe5%l  e E f F g Gl#@$lU Amulff& & ffff& ieWuAe l uue du5 5 uu  cBe5* sB$! d  o  u x X ff& deu wLы A-Au  A  f  wAA@ D  * ?Ae  0  9 f e`0&&5` v   45@     5@50 4 B   5     <   @  U hʋ"Ҡ@Es`5U5U45Uww &7 _DW 5 7!j_O&6 0!ȑ D55  e &~*7^& N4  5 84 E  4   6 0 ȑ l^R 7_A P R@_$ lf9ȕ i4 ^ e^.  |eeV*P76__w_n  t^4j j^ ^ X^ Nw<r^: %  []<>  %46\]̑ w Cʑ t !et  6&ff w A E]B` ]B eC      & fY f]`\]`Z]w^ rwaoutputinput?C-Standard %s, ?C-No memory. Is this task checkpointable? ?C-Can't parse command line. %C-Can't install vms v3 patch. Get help. #()+,-/>?]^w [W w[̑  f& & AA mtwV\et?t % [4\[\-\ \-\CLd[ [# T} [ W"[05 -[  [T 4ʑ 4w&).` [%C"å Z5̠ԋå[å<>]ɋ C ɕ w [R  ѕ>ѕ B& [[ҋ|[& & & $&& l& Ε ! & & & & Hf& l& Ε ׭ZmY  ZE%Hq 0 BS  R4 rp& D 67BZe4Y 7YY44Y>4 & 7YfY4w4Y e w5Y w&f&5zY J w5E 5  5 644 ;@B'd w @DBC & W-d8W-u;W-o  B @ B @ B @ W-o B @ W    e0 9eW-Xe  & ԕ-  8  C B    e0eW 8e0Ԑ wt e 4 4U  WU &f5@7!W 5  &W 7@WU%+5 *=&(5 `ѕ  ʋ  ׬  U  5055 w v@ыe w BE W W W f   2 '" <>    A Z 2 e = !  wRw |B`5 Q7!U&U X5 \ "00EFTADATADATADATADATADATA5 E  eU  :6& & & f&& l& Εf "U T7T5  ep }U >7T %F}1Wѕ00ENaBb00EVTADATADATADATADATADATA00E^aBb00EfTADATADATADATADATADATA00EnaBb? Öʖіؖ(9HXkŗٗRttRH""aԀTIԐti:<??????{Null}SYP *2BMVX HbjJ:     P"P"P"l%f%`%%r%x%Decompress didn't finish correctly. %ld.%02ld seconds (process time) for decompression. Error when decompressing "%s" to "%s" lzdcmp fatal errorIncorrect first header byte 0x%X Incorrect second header byte 0x%X %s: compressed with %d bits, lzdcmp can only handle %d bits Decompress to memory failed. The following options are valid:-B Binary file (important on VMS/RSX, ignored on Unix)-M val Set the maximum number of code bits (unless header present)-V val Print status information or debugging data.-X val Set export (compatibility) mode:-X 0 VMS private mode-X 1 Compatibility with Unix compress-X 2 Do not read a header, disable "block-compress" mode (If a header is present, lzdcmp will properly configure itself, overriding the -X, -B and -M flag values.Illegal -M value Illegal -X value: %d Unknown option '%c' in "%s" %s --Too many file arguments rnwnwnw Unexpected control 0x%X Memory buffer [%d bytes] filled -- fatal. LZ_CLEARLZ_SOHLZ_STXLZ_EORLZ_ETX???%2d: %02x " \n\t\b\f\rFile system errorIllegal file nameNo room for fileFile not foundBad device nameI/O channel in useI/O channel not openEnd of fileFatal system I/O errorDevice errorFile already presentToo many open filesFile lockedNo memory space availableNo access to fileIllegal record size%s: %s %s: Unknown error %06o %d. %s: No current error ((((( DDDDDDDDDDAAAAAABBBBBB rwaun{dtoa?}|P$+ -f5f&f ` *  נ נ  נננ"D נaנz E ѐEp(p נ$נ0נ9נAנZנ_נ:  Vנ[ȕ]נ<ȕ>ȋ8 ~נ%נ*נ-נ.נ0נ9נAנZȠ yנ0נ7נ*נ,A jȠh f  oנ"A   #A aנ$נ%נ*נ0נ9נAנZנ_נ.  נ.נ; dנ0נ9 ]נ- X נ* QA  נ, Dנ=  >5 B>U (w^נ/* . ,נ$נ-נ.נ0נ9נAנZ נ_ נ00EvTADATADATADATADATADATA:  Dנ"  0f&f E^`  UQ  UQ ËUI U `e  !ddC    D%*.C U 0 0 W ,Uw6W /@ : ^BDaW-Ί WNWOD!BΊz CECCD! D! ΋5  e ΐ TpRpR΋pBC5N KR΋KBAE:D0CĊ f eB  Dҁ CSĊ `! WB E Br Ε f)& 6 l(*  E 'W " =N  W :+W = 1 #W ,W / %W %W *Հ W <W [W >W ] v(* 6 e00E~aBb4Rw  $ҥ[֥< , (e  5 sC~ D w w R *8F )98 eB &&  U **e *Nlv ΋*.) p  & #!)&eP(e && z p*  w( w N ) 8C * ) *w *  ep p  C  =  0* =Eե^A e@ v Ep |p  , J *` l C#   D w ( D B 8#"#)%ĥ ĥ w 0 *0 @Q$    0 40 60))  z :# 2 3&*w #( P) @#**fff   &*wD. H35(8e$8w22&(e %p8q #) r *R*)@#0l C# 028 00ĥۇAĥĊ  000 0 @0 &*0 @  u b#eB h *  eBe>  # #D #&0 #   0@e 6@#040 6wT!p2w f( D  8#"#)%ĥ ĥ w  0 *0 @Q$    0 40 60))eB  z :# 3&*w z #( P) @#**fff  &*wD. H35(8e$8w22&(e : %p8q #) , *R*)@#0l C# 028 v00ĥۇAĥĊ  000 0 @0 &*0 @ u #eB : " *  eBe>  # #D #&0 #   x0@e 6@#040 6w!p2eB  8 r $&w *   w *)  * Rw46l0w  >o832de& & & B  2PΕ   N Υ$Ε  22Υ   v Ε f e j* *e*w *0,  T  )*)   l 0l    00ETADATADATADATADATADATA ee@ 4 r- E ep )w ,   N w $  L B # 2 f  `**w)0406 l0 &ff 5%& w &Ba +- ʥ# . U 0   b   `     82e&( 0 0 0 80 B0 0 0 0)#0.0+1(e  \%&p*w f( f)f z) . 0 .8Ae f"( UCɗ&+(e$&% *w  w & W+W- Ba. W#  B0  c  c S W %ec e`s  # 3  & ˥ Z ^C  *) l0, *) $ )*)0,40,6 w *  zw   ,,  *e6p 4 `8    )  8   ***  DP5R~RRR~141612epl2l0p Mw    f bu   f &* *. 00l  0 *w ~eE D` bl lrw :  B eE"s    s-  Cslw Z(B C DBe ?D(1 >0f(& e %&&eH U   Ef p  wxw BC "& <SY&*p0p21E%0*w(*e "f D CB.Ew *.*#&  U@  *e   ew.1  %,,  &feʥ[ʥ< `Ew *D BTOU(1etS~:ӕ: ͥ_ 5e&  T ee qqC ӥ: ~ Ce   *w **  (Ĕ%.%%;C~ 5)5@DD ͥ*Ce a%wUX5@ 5U U*U  5@XU@5 U*U  ʥ*%C!.D` R*weC5U5  5 5@e* 6 p 4 0`p .f 64 p46 F e*w ) !f j D e) . e6p 4 08*w*&f  EU   pr0 =B@&& p&  N pv C`B `v 0rr D wC r UeeA e* 0s rp v& sBvrp   ,*1 U4 6w Bfep`pwf8e2 &f (*Xe( - 1 Je$e (  & | 1-1- 111 rrrrr 1  & U ʥ. N ,N&  (+et w&(ete & * e 8*ʥ[ʥ<`E *&fe ~  2 $ L La Ta Wq(W!ZW!AW!9W!0@0,0, f 톇,, w  00EFaBb    .% eB U5UU plp & NeՀ)*f&5ҕ[ "5ҕ, 5ҕ]Et55tF e0ҐtIDez$ $ $ %  ,. e   ҥ. *V    e    1 DEe $ $ MZ~) _( T(<(9U#F Pk&fP`&PU&PJ&9P?&FPFPFPFPLP# P%FPP"FPP"FPP"FPKP"P%P0!]U""F  F      P@%FދF;FrFvV4;tvF4P "P6  F;FvvFދF46 -yvF4VvF46  &P6  4 (P6 !nmfd3F u,P$PvF47!P#vVvF4uBP#PjvF4vF4*!FFaLP6 i  uNPt#P FFtvDvtv6 bP t iP"#FދF;FsvF4F~uP FFtvD t vtvFuP"P]vtt^PD]UTFFvFF t%F=tFvFĸvvFP ]UxFF u tvPFFvFFP:" tivP&" tF~uP!PSFF;F}vvF4hFvaLv FvIFF tvP[FFFFvFF ufFP^! tFvF5vvF tFP! tFъFPFvF tFP  tFэFPvVFFqFvF tFP  tFvFPF*FPvVF==:v/~ ~PPnF t FFF t/PP>vF tFP tFэFFFF uvFFFuFPt uFV;uvFFF;F}FPvF4F݊FuMvF tFP tFэFFFvF~uv4;6 uF t v4Dv-6 ]Uu6 PyP" uysssr t3r!ur#u ss볍yPFyF uyNV~uQFPuyPuuF-uuF\tuNV6 PyPysssr t3r!ur#u ss볍yPVЉVFPwuwyPwuHwuuF uuNVu]Ëu]U tvvXP FFuvtwPPuvvtuFvD t]ËvtvPvDvvt]ËFFvtvi P{FFuPAPvDvvVP7vDvtuPPvvtdvPvDvtuPPMvvtv00FTADATADATADATADATADATAD u F FvD]UPvru u v  ]Ë FFtOvtPPvvttuF]ËFFvtvv(F u F FvDF]U PFFuPP#vvvDvDvDvDv.uvD F]UP7FFuPPvDvvPvDvtuPPQvvt vtvt@vtPvPvtv tFFFvD FvD]U tvvttP/vtvFuv)PvD]ËFtKv{t PPpvttvu]ËFFvtvvPdvD]UdvFvFFFFFvFF uF$tFvFbvFF(uF{tF(u)}FFFFvFF t9FV;t~R}FvFF밸vFvvFvFPF tvvP0vKFF;Ft5F+FVЉVvFvvgvFFvvFPv^v[vF]U FFtKvt7PvPvtvuu vtƋ]ËvtvvGPHe]UP?FFufPPvD{vFvDF]U FFF tLvtpPPHvtvuF]ËFFvtv뭸PFFuPTPvv$Fu F FvDF]UFvFP'vDvtuPPvvtTvDTvDvF t).t뽸PPbvD vt uP"PPvt _ t*Ƹ_PPvD vt uPP)_Pvt ]U/o 6 V6o V  F F6 V {  u o 6 V6o V  { Fu s No 6 V6o V[    t  tvP]ËF{ Fu o 6 V6o V  3҉FVFVRPRPXZFV 3FVFVFV]U  tvPDFFFVvFu PPP vtDTu uvttXvtDTvtu vvtv uF u vttvFPvFvttR tvttvtDTu uvttvtDTvtDT;Vru;FvvtDTFVvt~}EU;Tr u;DvvtDTu+u&vttvFPvFvtv t&vvvtttvttPc vtDT;VwTu;FsMvIP vKPvttMPvtt OPvv v ]Uv Pv ZЃRv%FvvF]UP FvF]Uv P} FFFvFF t%F.tFvFĸvF]U tvttQP vtvFu`P Pe F uvt|P P; vtFv@u FF6 v8FF t PB  v[ v vtvevttvtDT]U FF t)vttv uF]Ëvtvи]U tvttP  \u]Ë\t^u]Ë^t-vtt ^ttg u ^t^ʋ^u]Ë^t^uvtt `P ^tt`PD P`P u tvtt ^ttP6 S ^ttFP vtt FP FPrZt@ tvtt`PP]`PvZt~u]]UFP]Í]Í]Í-]ÍA]ÍO]Í^]Íl]Í~]Í]Í]Í]Í]Í]Í]00FaBb]Í]v'P P  ] zrj]UFFFv tlvFPCF܋F tFNƋF tFF tFNawrbFPDPFFPv# F~t~u.PFFPv FO5~u~tPRPva~t6 F4Ƌ]ø]UFF;F~2v F~uFvVF uøvvF tF]ø]Ë]UFFFF tovDFv7V+ЉV6 vF tvD;Fs v4vF t%F;FtvFPFPFFvF tUF;FsFFF tF;FtvvFP F;FvPF+FPFVPqF]U^7CC_^ZY[X!WVRQSP^ 6CCX]UZr t=P Pp P FFvFFFN t+v uv uvF˸vFFFvFFFN tav tKFvVF~ |PLPP&P# v tFNF땸vVF~|FPPP;6  6 6 D6 D 6 D6 D`DFFvVvVAF tBPP6 V 6 6 D6 D6 D EFFvVvVPPp6 V 6 6 D3RP6 RPXZ6 D 6 T +‹6 D F6 D6 D^PP6 V 6 6 D6 D 6 D6 D"! [ FD[vFPvރP]UF~ }6 F4 t v Fv ]UFFv;t]P P4 P  FFv4v tF;FwFFFF܋F;Fu믋v4~5Fv ;Ft4FVvT;u!vDvDvDv4~5 FFFFF t2FVvT;uvDvDvDv4~5tVvT;uFtv]ð7!+UvVv6 P48P ]UߎNj~33I-+]UPSQWȎ~F& A&F_Y[X]UߎNj~33Iыv~tF]Uv t vt6 ~U>FvDFvvVvVx tFH ]ø]UFv{~H^`^V^V t `@sv|}cP|Pv|PfP|PfVn|pjrhPF t&PjnVjv FvF]UFF~v]Í Fv4v tovD;Fr[FvT;r6v4Fvv4~5vD+FvDFv vDFv4~5 FFF tFPF tFvFvDFF]Uv-Fvv6 P;Ft]6 P0t]ø]UF t uF t u t uF t u]UQRPN v FV FV XZY]UvPFvvvP;Ft]ø]UߎNj~33Iы~vtututH@]UߎNj~33Iыы~3IOtF]úv !P&S،&;v+߁;sǾ;s+;r;vߋ+=v+Y׋3UQW0! u2[rt [X+J! +ۋPÿo N +3jPpUvv4vFvЉv4]UvVvvV(P]Ët T\DU(FvuNv:u=F؁~} vv؊Pvv؈FٸvFFFF t# t)FFF;sFFFFFF=V‰FFFFvVvVvV tFFF~ v6DFFFvVvV tF tiF t9DFFFF FvVvVp tF$FЃ tF tFFFFށ~ }6 F4 tF߁~ ugPFPFF tHFЃvFvDvD FvDFދvDF6 VFދ]ËFH F t v]U^u% u,G;G}5w@2G<tQ< tX]À'G2]S=t^S00FTADATADATADATADATADATA?O W_![rK=tGGG GG tO.tuSl=t'< tO 끀@G]UF t(x t"PV) ! t 9nvnXr tL!6,±$'@'NuU؎v~N;rNO]UfV!]Uv vv6 F4#]UFF~v]ËFPF+t3Z;s]ËtFFtЉtF]U6 F4]U؎~NF]UFFvVFP. P X tFP)FPFFP6 PIX t]Á~}]ËF t]~~FRPPFPNF t> PFPyuPbۍFPfFP_7PHFPN RPX tk FFN tXVV6FV FPX t'6, FVFPPFFPRPvEX u FFN tZVV6, FVFPX t)6FVeFP^ZPGn뜍FPFRPX t RPFP%!PNRPFPFFFFv@vFPFPPFP RPmTX tFPRPS"X tPvV\VЉVF tFPs FPYFP_vVHF]UF FFP;F P3X tFP$S FP -vF~}I0vF.vFFF~} F)FFFF} 0vFcFP2 XZFF0vFN PFPFRP;V FPjNF t믋F t .vFFN tGFPH XZFF0vFV P*FP#FRP FP미vF+F 3ҋ]Uv uiv%tFFFFڋvڊ tvڊ%tF+F3PvvvփFډFFFv-tȉF tFvF~0uF Fv*uv F FF8FvP t FvF0‰F΋v.tȉF t]Fv*uv F FF8FvPo t FvF0‰FFvPltȉF tFvPF tFF FvFVFPFF PvVFދvgu~} ~~FPvVVЉVލZPvPZPFP\^vڸEvFڈ~}-vFڈF؉F +vFڈvލPvZPjFZFF tFF FvFV%FP FF PvVFދFFPvVVЉVލZPvFރPZPFP|^vڋvgu1Nڋvڊ0u vڈvڊ.uvڈZPFZF3FF6FF(F FFF FFދF t!F FvFTFVFF ,~}v F FVv F 3҉FVvލZPvv F uZFڋFV usFvFF tLF;FvAFPFڋVƒV+PvR0PF+FPvFFFPFڋV‹V+ƒPFڋV‹V+P.vڋV+VZFvFF F܋v܁F4vڋF܉F vFF tF;FsFFFnF F FڸFFVFFڸFFCcsdDxXuUoObBfeg766x5r5j5d5\5V5N5H5@5:5^4e3e3F t`F;FvXF t1vڊ-u#~0uPFFPvvփNNFN;FvPvVvvփF;FvF)FFvvvvփF t&F tFN tPvVvvփF]Uv sB拜 t8u3 uNvt/2QVSP=t^YF]øPPp PG +G;+ȑPS@O W_![r];uSY2W;|J#+PS@_![r8;u.Y O 'GGG GG F]GwG@]À u&'tSPPPS =t[ UJ &L V^F K_ּW!r3SڜZJ &L R]UF3RPF3RPFXZFVFVruvF vF tPvviF]U64,P FFvv  uFFv t'vPvv Z;uFF̋v tvFFP =uiFFvFFPo  tFV+PF t,FFvFFP9 vF tڋF]vFFP  t]UPRPv]UvD]P2 PPPSQRVUWFVv~u y ؃ y ރS 3SN;w r;w+@N^Yt00FaBb tu t؃FV_]^ZY[XU^' t:~ twF@GO;O }O]tS P=t ^̀ t'tdSPPPS=tQ[ 뗃u w!S@OW_![r&;uGGG GG 'ߋF]GwG@]Uv@\LT!r;uLLD )D $ߋ]ÈDDw @]UPRF fF FfF FfFV ZX]PSQRVWUfF]_^ZY[XЎW_E %E%] VW_^D %  DEËE E E E uE6E tm ]]]]E ueUUU )]UF tv ]= vHF%1FF0CP3PPPpF^ t؉F v F%1FF0CP3PPP2FV^ t؃FVv! vFtF uv~vv~~D+EtyEȻYKKyً3x CC%CCE y3CC1Wp^~NF uF vFVvF33SS0vFV vF3SS y ؃πvRP0CPS~F tFuv~vvzv~q3SSSSSS_=@? . t.] .]CCsCCtڋF-0@FFދF3FF܋[~8" " " " Fuv~F uFFF F ~ v[Y3PPPPQS v5Qv~;rwNNOOv~FFGGvFFYċF-?)FF1F~v~[ &nv! y2y:}!ĹR9u NN$t w$t$t2 F ~FFEFEFE~iFFvD3۹%u؋8FV^F;+F%-?=#=|)F-8yV^F 3~EUFa|FzPZFˆFF]UF0s t t%F9v t t]U*FVփ!V~ |FVusFFV؃FV6^ RPF RPvv(XZ؃RPXZNvF ؙRPvvXZFV t^FVFV6^ RPF 3RPvvXZRP]XZNvF RPvvXZFV t뮋F t -NvFփ!+F3҉FFPvvF]Uvub$ t V=tJF VN<t <t<t7ڋDDʋӰB\!3ɉLLLI#ى\ A+ˉL ]DxD @Ћ]PSQRVWUfF]_^ZY[XÃFFvDFDFDFFUFA|FZ PZFˆFF]U@NV!r;u]øUv&]WRITEThis program may be copied freely for noncommercial purposes. It maynot be copied for commercial use without my prior written permission. This program is an imitation of the MAKE program supplied with Unix.It works exactly like Unix MAKE (and VAX/VMS MMS) except that it hasno default rules. Usage: make [%cf makefile] [%cn] [%cd] [%cmLEFT=RIGHT] target ... Options: %cf makefile specify makefile, default is MAKEFILE %cn trace and print, but don't execute, commands %cd print debugging messages %cmLEFT=RIGHT define macro LEFT whose expansion is RIGHT (overrides any definition of LEFT in makefile)MAKEFILEMAKE version 4.07 Copyright (C) 1984 by Larry Campbell, Maynard Mass. -d -n too many target filesno memoryrcan't open makefileMFLAGS-------------------- Makefile parsed OK --------------------no targets in makefileMakefile Input: "%s" Target line must come before shell linesExpanded input: "%s" too many targets in one lineline neither macro nor target definitionMacro definition: "%s" = "%s" bad macro chainno memoryno memoryno memory.SUFFIXESbad target_listno memoryno memoryno memorybad shell chainlink_new_source (%s : "%s") bad source chainmacroexpand ("%s") => "%s" bad macro chainNo expansion found for $(%s) no memorybad file_node_list chainno memoryno memoryno memoryno memorygetdatetime: can't find file "%s", assuming it's old... Making %s Target not foundmake failed Target "%s" datetime is %ld, newest source is %ld <?@*Building "%s" No shell commands specifiedbad sh00FGTADATADATADATADATADATAell nodeLooking for default rule for target %s rLooking for default rule named %s%s Inferring source %s for target %s invalid functionfile not foundpath not foundtoo many open filesaccess deniedinvalid handlearena trashednot enough memoryinvalid blockbad environmentbad format for EXE fileinvalid accessinvalid datainvalid drivecan't remove current directorycan't rename across devicesno more filesunknown error code %dNEEDS DOS 2.0$ TOO MANY ARGScFREE$C COMSPECP NO CORE$ $%03d$@Y@@חA7yACnF?O8M30HwZ?sOu?{Gz?-C6?:0yE>ؗҜ<2#I9?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdZ+x{ P3Z p$0a&B^މ9cd.7VB=<͹5Պ>psܚjŐ&VpAh^xtSجHҁ9/Zn o`MC6wWPN"Dd1) }jfesC< 5p?nWkJ+kFʌz|^}?Yofs<͹5Պ>psx{k/VoYߡbN z)3B-WG/<͗ߴz)3BrucϿi4Rf_Ϟ-WG/<VO#eFGw/O㟿C+Fʌ~={y|7_ҊN _9Ʃ/dmhB+zHA*0NqtLlJBZi9 8)YيmWhgƒEB$0Nfi,Y\$DBZi9#3 8B%3 vVZy}ΰT]Fd@xTh9SuaG'_<*ʳs%x{Vm3HH I$ =p"K0xFȴB v"^$Dg[;W6+#xFȴBƒEB$x}ν%nW ׁWhd&"!<>ޒiWȃ3#Yc:$}MI60iN"xEL"q%ۀ32RyxS6v:~ #+εB $Z$DYpr\ 3Z^kg$Z$D P+F*Za򕳨3q%ZazHA*d1) 9#3 P+g J+>o(R϶IH:3VZy}`g+EB$0N8a2yɳs;[/":B+Sf5lDV'϶%KHK.d<Za<>gHگ(%υVGVZy}h,Y\$D P+F*Za<>g4,].":B+Sf5lDVGVZy}+JiI+C0NFL^hqlW"!j.8+gQ,B+ӣB+<;69<>g"!Vd<Ziٱ9#3 8ՙIH$J+ώM|VtgDJiqC_uVFX+gǽiqbrZB+z*BiPgwoZ5={00GaBbەhl+Qs\,Q:G,$Hʒln\B&x{ tۮЪ٣J`\ȂEʒln\B ë3s45$hȖ{d@]UӳG]46T֕0N`JÎM "\}?FcCe] 7M21;1'mWhn06yЉ9#3;1':~I_~Y t0r~Z5={[ >1lI.M2| ۮЪ٣ݾ@225^MI~ =MyZ5={[?2d&Pns2hHx\}?+jzhar{F A'LCY:~Zщa]#>iU:#h.:0B|,VFX+iqbg+ShUrV+SVJzuu7 2Zg? {WڮЪtgDJŒoOo غ, 3 يxI3fZe&"!Ғg8,bg+VI bİG0k1 $,C֪٣ݛ'wVYh fp2gw P+:[]r2_}rBwݰERDv"PV)_9< YrUՀqc0 Go?V))H\myƋ/bX!AcɓYrVi2ж9fԾ muͽ{ŰL0zՀq2_tða2lV7.'d!s!Ajj5 yHA*̸)a]RI5Y!Acɓ0V{a5iN"VðYDh3jt6:޽bX`L2R7.'z0<*0Nl̽{1Ch1M+0N&C$KkKj8 -;[ۣǷo:=wv!trv"0 d]Հq flV?=jI+ܻy1 úc;[C\IZaL V> Ϭ٣ݾ`g+bd#HF+3kzh4=9B+?=+[kQ3LmWhB+fems̨}ڼ{ 0NMi]c"K}'DŽƒK+ɣ^kqڬL"70N %K JZ r̨}s^Ɵ&Ccq 6a]7.'0҈cpWV?=j8 ml0;\[rgŰa2H Y%V΃$RDj8ձB`a`g+Sܻi5 "YK.Ѳ+zM+0NI1M`o\Nho+0NMa]Ò'F$F h&zO'0~csfVãb]$b2P8=*5H"6+Z,O,vVպ 56 ;[kZ+ 2r a.BqxгϝxB=1 '&Æ^\\9iBdl,~E)-iZ+Qp+J y(K'+B22,D!}Vv"FfizV"YRZBV;$#i9 PUUru2BVlW"!VZwZaj/!N+S-)"ex{Kk3dl,~E)-xÃG`=lC2B]Sh2`FR 9ZoRz}+Ji LVhywϞu8z~VJ*=vVBSƌB+i*cƛ?{\|Jhspt1t)gH&#nB+,D3޿{whPR+l4e$PWhe2^B$`gSd8Wfm$D*ĽB BGZ}j]kF /HZ D !3 1$":528d&VZieI6iq%uZ+gQ+ʳsFf-"$D*zVOM)^jX#1d"xÃG`=H;++zJMVH0t)gHЊ+=tV&CItp+ =p-ڭT{ <ۼ9GItp+iq%uVHYtLlJŒ8:&6%WRWhItp8,$D:8-]erruBGZ}j]kqtLlJ V; c:`SB$_QpHA*B+o/3ĕT ð8^+ Z+o/ f0k8fk{&z{w'>><,a]}{zgǽ 0Ó/7;|b^tV&Cq7VZ=5Y o{ƩF8C:~gHN^02#Iۏv<TlwWRWh$L+%=|ZaZi>z̈[i5|ȌvȌ1uٔCf$.}+-+zJMV1) 3^"RCf$.}*:&6%aFtLlJCUtLlJŒؔ{h^"RCf$.}gSRWhe{+hcbSRWhHOZkPtgV\IVB=ܮ =!{9b ^6' ;!Vv"hPWҝQf$"_Q~+;[ZK.{ GtLk6%¥<\xlE'V^K.{ aO);[m,ynaC]J(R[o.(g0nW$; N2jzh,Y7L6d+'6:gK +JI+CI{PҪtgĕiEVJ*zg v"^$D TUVm3K. 8Ս%KVZM%TZa6yi,Y,"ex{Kk3+wfG@;B$dZi%!Kc%fZ mVB8뛅ѲN+C0NMيY%nB+wh;#d$ۮ dhK.1NK.dg"!jv*zg  8^BB+Za꼌VZ=5Y o{Ucpv{u3&E#l?݁N34WRWh$L+HV~E)-x.2Z/!߿E}WPNo(7 6+ P+z NKWxgϖOw8z~E ])/#fx NPNb)kzhWGߏ?cz 0NYӳGq1ZaLiɒ:gvaX81b M2B;kB(^kqiuY߽gu Z{m^Ʈ %D /! ZaZiff1) 3*ؔN34WRWhHOZkPß{R+ZO(WPNVZiٱ9úP3D+: Z+C0NF$)I d1dY#/ d YVhq2x 0NFY~eV'#, VZyvlr+g8վiqwZa2zFW7}y]h?L%ڼVYy je8B+|m1 L1 ޝc"K/<PNZ+7VI6nj7uZa2zFW޽טZ32ðᚆ$d_xg"!Y,lEV\IVYJ*zg v"^$D TUVllE$j2вUV'lA+43N3q%ugvZ B+;[a;[ pQ%= i_?OM)^jX# vDOSERROR.CD  o!"#$%&'()*+,-./0123456789:;<=>?@ABC?!E)b==n0<8{Q?^޾ƃ`9yD9:"~+z=B蘨SJFQE etSz+=qp,| Jv`v@b<=?&E'gPOb!@^B+2 {g;sL7NYx+Vzb .(`8xm)b= #{ov[ -㞽1$89o1E)bEؕf2b|'SĚ"s23sa/O'ً?1[FRz4Xit3FښW^:sh9z:bb`31ERL5> )b^R)î5[wG̖1;)b|'R&~L;EKPGy),6 ["%#&SX07XuRļud zTCAg:N)b^:l`2C5֢W9IFS/LaP5rS"%#&SX0T/Wm>cWɍ8y x UDaXNSwLaP򴣧SoLaP\KW1/Ai),E3H$Sp>o`2ChFgW2|7"%#?o`2Cr34rSp~ UjSp UT)EKPG8d T>0J {`,8y LaPG&ўst\1/An),X o8yiifKtRj_blf߹@̖ t)8y3'ſv#ENVFETCH.C@  !"#o$%&'()*+,-./0123456789:;<=>?٬u5EE)a>Т'CS[;Ҷ‡R%H|DD#H;OˈD޴(Qwra>ˡ3H \J:{X N4 {Mέ{BmѹJp Cf& ? u+2f [5}Fy&Z2 <-#y GP;ш27^}^vJIx>/J Y0 (yF1Q +Yӻ`K%,Lb¥p( &.ZO ʃp1a%kzL%x+oQ O(ݶQ 1fnp'|> x)S *x(qrw_<x7a>hVw8~ݝ?ZL.0'S c|<Д6L8_wҮvFvQ2hJs%WBsv74]m <-m[C { A8R +Yӻ`%y2HMVgr묆ʃpD1<rwp'\ބ#![4nwCCbbpic dA\J8R +Yӻ`*bx*Ⱥjބ#La\ J\ ? +?SwLaP򴣧SoLaP\KW1/Ai),E3H$Sp>o`2ChFgW2|7"%#?o`2vEXEC.ASM7  !"#$%&'()*+,-./0123456o__G%0!/xi*3N&zV,=w'Ri'FՆq7iPl2?OR`a>A,KP1X'iBD+RyxJ<6B00GHTADATADATADATADATADATAZ#1Җh A HNax KTcTx p<BN! G-j1<\!Xk* Received: from COLUMBIA-20.ARPA by DEC-MARLBORO.ARPA with TCP; Fri 27 Jul 84 14:27:57-EDT Received: from CU20B by CUCS20 with DECnet; 27 Jul 84 14:21:45 EDT Date: Thu 26 Jul 84 09:36:11-EDT From: Frank da Cruz Subject: [Alan Crosswell :] To: Eiben@DEC-MARLBORO.ARPA Here's the MAKE manual... --------------- Received: from CUVMA by CU20B with HASP; 26 Jul 84 00:23:24 EDT Received: from CUVMB by CUVMA id 1352; Wed, 25 Jul 84 23:35:51 EDT Received: by CUVMB id 0791; Wed, 25 Jul 84 23:35:20 EDT From: Alan Crosswell Date: 25 Jul 1984 23:35:13-EDT Sender: UNIXA at CUVMB Message-id: UTSROUTE alan rmail:alan x To: sy.fdc@cu20b ------------------------------- Page i ------------------------------- Make - A Program for Maintaining Computer Programs S. I. Feldman Edited for UTS ------------------------------- Page ii ------------------------------- TABLE OF CONTENTS 1. Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 1 3. Basic Features . . . . . . . . . . . . . . . . . . . . . . . . 2 4. Description Files and Substitutions . . . . . . . . . . . . . . 5 5. Command Usage . . . . . . . . . . . . . . . . . . . . . . . . . 7 6. Implicit Rules . . . . . . . . . . . . . . . . . . . . . . . . 8 7. Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 8. Suggestions and Warnings . . . . . . . . . . . . . . . . . . . 11 9. SCCS Files . . . . . . . . . . . . . . . . . . . . . . . . . . 12 10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . 13 11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Appendix A. Suffixes and Transformation Rules . . . . . . . . . . 14 Last Page 15 -------------------------------- Page 1 -------------------------------- 1. ABSTRACT In a programming project, it is easy to lose track of which files need to be reprocessed or recompiled after a change is made in some part of the source. Make provides a simple mechanism for maintaining up-to-date ver- sions of programs that result from many operations on several files. It is possible to tell make the sequence of commands that create certain files, and the list of files that require other files to be current before the operations can be done. Whenever a change is made in any part of the program, the make command will create the proper files simply, correctly, and with a minimum amount of effort. The basic operation of make is to find the name of a needed target in the description, ensure that all of the files on which it depends exist and are up to date, and then create the target if it has not been modified since its generators were. The description file really defines the graph of dependencies; Make does a depth-first search of this graph to deter- mine what work is really necessary. Make also provides a simple macro substitution facility and the ability to encapsulate commands in a single file for convenient administr00HaBbation. 2. INTRODUCTION It is common practice to divide large programs into smaller, more manage- able pieces. The pieces may require different treatments: some may need to be run through a macro processor, some may need to be processed by a sophisticated program generator (e.g., yacc [1] or lex [2]). The outputs of these generators may then have to be compiled with special options and with certain definitions and declarations. The code resulting from these transformations may then need to be loaded together with certain libraries under the control of special options. Related maintenance activities involve running complicated test scripts and installing vali- dated modules. Unfortunately, it is easy for a programmer to forget which files depend on which others, which files have been modified recently, and the exact sequence of operations needed to make or exercise a new version of the program. After a long editing session, one may easily lose track of which files have been changed and which object modules are still valid, since a change to a declaration can obsolete a dozen other files. Forgetting to compile a routine that has been changed or that uses changed declarations will result in a program that will not work, and a bug that can be hard to track down. On the other hand, recompiling everything in sight just to be safe is wasteful. -------------------------------- Page 2 -------------------------------- The program described in this report mechanizes many of the activities of program development and maintenance. If the information on interfile dependences and command sequences is stored in a file, the simple command make is frequently enough to update the interesting files, regardless of the number that have been edited since the last 'make'. The description file is usually easy to write, and changes infrequently. It is usually easier to type the make command than to issue even one of the needed operations, so the typical cycle of program development operations becomes think -- edit -- make -- test . . . Make is most useful for medium-sized programming projects; it does not solve the problems of maintaining multiple source versions or of describ- ing huge programs. 3. BASIC FEATURES The basic operation of make is to update a target file by ensuring that all of the files on which it depends exist and are up to date, then creating the target if it has not been modified since its dependents were. Make does a depth-first search of the graph of dependences. The operation of the command depends on the ability to find the date and time that a file was last modified. To illustrate, let us consider a simple example: A program named prog is made by compiling and loading three C language files x.c, y.c, and z.c with the lpw library. By convention, the output of the C compilations will be found in files named x.o, y.o, and z.o. Assume that the files x.c and y.c share some declarations in a file named defs that z.c does not. That is, x.c and y.c have the line #include "defs" The following text describes the relationships and operations: prog: x.o y.o z.o cc x.o y.o z.o -lpw -o prog x.o y.o: defs -------------------------------- Page 3 -------------------------------- If this information were stored in a file named makefile, the command make would perform the operations needed to re-create prog after any changes had been made to any of the four source files x.c, y.c, z.c, or defs. Make operates using three sources of information: a user-supplied description file (as above), file names and 'last-modified' times from the file system, and built-in rules to bridge some of the gaps. In our example, the first line says that prog depends on three '.o' files. Once these object files are current, the second line describes how to load them to create p00HTADATADATADATADATADATArog. The third line says that x.o and y.o depend on the file defs. From the file system, make discovers that there are three '.c' files corresponding to the needed '.o' files, and uses built-in information on how to generate an object from a source file (i.e., issue a 'cc -c' command). The following long-winded description file is equivalent to the one above, but takes no advantage of make's innate knowledge: prog: x.o y.o z.o cc x.o y.o z.o -lpw -o prog x.o: x.c defs cc -c x.c y.o: y.c defs cc -c y.c z.o: z.c cc -c z.c If no source or object file has changed since the last time prog was made, all of the files would be current, and the command make would just announce this fact and stop. If, however, the defs file had been edited, x.c and y.c (but not z.c) would be recompiled, and then prog would be created from the new '.o' files. If only the file y.c had changed, only it would be recompiled, but it would still be necessary to reload prog. If no target name is given on the make command line, the first target mentioned in the description is created; otherwise the specified targets are made. The command make x.o -------------------------------- Page 4 -------------------------------- would recompile x.o if x.c or defs had changed. If the file exists after the commands are executed, its time of last modification is used in further decisions; otherwise the current time is used. It is often useful to include rules with mnemonic names and com- mands that do not produce a file with that name. These entries can take advantage of make's ability to generate files and substitute macros. Thus, an entry 'save' might be included to copy a certain set of files, or an entry 'cleanup' might throw away unneeded intermediate files. In other cases one may maintain a zero length file purely to keep track of the time at which certain actions were taken. This technique is useful for maintaining remote archives and listings. Make has a simple macro mechanism for substituting in dependency lines and command strings. Macros are defined by command arguments or descrip- tion file lines with embedded equal signs. A macro is invoked by preced- ing the name by a dollar sign; macro names longer than one character may be parenthesized. The name of the macro is either the single character after the dollar sign or a name, possibly parenthesized. The following are valid macro invocations: $(CFLAGS) $CFLAGS $2 $(xy) $Z $(Z) The first two and the last two invocations show that parenthesis are optional. Both the parenthesized and the non-parenthesized versions have identical meanings. $$ is a dollar sign. All of these macros are assigned values during input, as shown below. Four special macros change values during the execution of the command: $*, $@, $?, and $<. They will be discussed later. The following fragment shows the use of macros: OBJECTS = x.o y.o z.o LIBES = -lpw prog: $(OBJECTS) cc $(OBJECTS) $(LIBES) -o prog ... The command make loads the three object files with the lpw library. The command -------------------------------- Page 5 -------------------------------- make "LIBES = -ll -lpw" loads them with both the lex ('-ll') and the PWB ('-lpw') libraries, since macro definitions on the command line override definitions in the description. (It is necessary to quote arguments with embedded blanks in UTS commands.) The following sections detail the form of description files and the com- mand line, and discuss options and built-in rules in more detail. 4. DESCRIPTION FILES AND SUBSTITUTIONS A description file contains three types of information: macro defini- tions, dependency information, and executable commands. There is also a comment con00HaBbvention: all characters after a sharp (#) are ignored, as is the sharp itself. Blank lines and lines beginning with a sharp are totally ignored. If a noncomment line is too long, it can be continued using a backslash. If the last character of a line is a backslash, the backslash, new-line, and following blanks and tabs are replaced by a sin- gle blank. A macro definition is a line containing an equal sign not preceded by a colon or a tab. The name (string of letters and digits) to the left of the equal sign (trailing blanks and tabs are stripped) is assigned the string of characters following the equal sign (leading blanks and tabs are stripped). The following are valid macro definitions: 2 = xyz abc = -ll -ly -lpw LIBES = The last definition assigns LIBES the null string. A macro that is never explicitly defined has the null string as value. Macro definitions may also appear on the make command line (see below). Other lines give information about target files. The general form of an entry is: target1 [target2 ...] :[:] [dependent1 ...] [; commands] [# ...] [ commands] [# ...] ... Items inside brackets may be omitted. Targets and dependents are strings of letters, digits, periods, and slashes. (Shell metacharacters '*' and -------------------------------- Page 6 -------------------------------- '?' are expanded.) A command is any string of characters not including a sharp (except in quotes) or new-line. Commands may appear either after a semicolon on a dependency line or on lines beginning with a tab or a blank immediately following a dependency line. A dependency line may have either a single or a double colon. A target name may appear on more than one dependency line, but all of those lines must be of the same (single or double colon) type. 1. For the usual single colon case, at most one such dependency line may have a command sequence associated with it. If the target is out of date with any of the dependents on any of the lines, and a command sequence is specified (even a null one following a semicolon or tab), it is executed; otherwise a default creation rule may be invoked. 2. In the double colon case, a command sequence may be associated with each dependency line; if the target is out of date with any of the files on a particular line, the associated commands are executed. A built-in rule may also be executed. This detailed form is of par- ticular value in updating archive-type files. If a target must be created, the sequence of commands is executed. Normally, each command line is printed and then passed to a separate invocation of the shell after substituting for macros. (The print- ing is suppressed in silent mode or if the command line begins with an @ sign.) Make normally stops if any command signals an error by returning a nonzero error code. (Errors are ignored if the '-i' flags has been specified on the make command line, if the fake tar- get name '.IGNORE' appears in the description file, or if the com- mand string in the description file begins with a hyphen. Some UTS commands return meaningless status.) Because each command line is passed to a separate invocation of the shell, care must be taken with certain commands (e.g., cd and shell control commands) that have meaning only within a single shell process; the results are forgotten before the next line is executed. Before issuing any command, certain macros are set. $@ is set to the name of the file to be 'made'. $? is set to the string of names that were found to be younger than the target. If the command was generated by an implicit rule (see below), $< is the name of the related file that caused the action, and $* is the prefix shared by the current and the dependent file 00HTADATADATADATADATADATAnames. If a file must be made but there are no explicit commands or relevant built-in rules, the commands associated with the name '.DEFAULT' are used. If there is no such name, make prints a mes- sage and stops. -------------------------------- Page 7 -------------------------------- 5. COMMAND USAGE The make command takes four kinds of arguments: macro definitions, flags, description file names, and target file names. make [flags] [macro definitions] [targets] The following summary of the operation of the command explains how these arguments are interpreted. First, all macro definition arguments (arguments with embedded equal signs) are analyzed and the assignments made. Command line macros over- ride corresponding definitions found in the description files. Next, the flag arguments are examined. The permissible flags are -z Print a detailed trace of make's analysis of your description file. -i Ignore error codes returned by invoked commands. This mode is entered if the fake target name '.IGNORE' appears in the description file. -s Silent mode. Do not print command lines before executing. This mode is also entered if the fake target name '.SILENT' appears in the description file. -r Do not use the built-in rules. -n No execute mode. Print commands, but do not execute them. Even lines beginning with an '@' sign are printed. -t Touch the target files (causing them to be up to date) rather than issue the usual commands. -q Question. The make command returns a zero or nonzero status code depending on whether the target file is up to date. -p Print out the complete set of macro definitions and target descrip- tions -d Debug mode. Print out detailed information on files and times exam- ined. -f Description file name. The next argument is assumed to be the name of a description file. A file name of '-' denotes the standard input. If there are no '-f' arguments, the file named makefile or Makefile in the current directory is read. The contents of the description files override the built-in rules if they are present. -------------------------------- Page 8 -------------------------------- -I file Include the file name specified along with the description file. Finally, the remaining arguments are assumed to be the names of targets to be made; they are done in left to right order. If there are no such arguments, the first name in the description files that does not begin with a period is 'made'. 6. IMPLICIT RULES The make program uses a table of interesting suffixes and a set of transformation rules to supply default dependency information and implied commands. (The Appendix describes these tables and means of overriding them.) The default suffix list is: .o object file .c C source file .h header file .f Fortran source file .t test file .s assembler source file .y yacc/C source grammar .l lex source grammar .q quickscreen source file .*+ Save files where * is q, y, l, c, s, h, or f. The following diagram summarizes the default transformation paths. If there are two paths connecting a pair of suffixes, the longer one is used only if the intermediate file exists or is named in the description. An exception is an SCCS transformation, such as .c->.c, .s->.s, .q->.q, .y->.y or .l->.l. .o .c .s .y .l .h y .l .q .c+ .s+ .y+ .l+ .h+ y+ .l+ .q+ If the file x.o was needed and there was an x.c in the description or directory, it would be compiled. If the file x.o was needed and there was an x.c+ in the description or directory, it would be restored 00HaBband -------------------------------- Page 9 -------------------------------- then compiled. If there were also an x.l, that grammar would be run through Lex before compiling the result. However, if there were no x.c but there were an x.l, make would discard the intermediate C language file and use the direct link in the graph above. It is possible to change the names of some of the compilers used in the default, or the flag arguments with which they are invoked by knowing the macro names used. The compiler names are the macros AS, CC, F77, YACC, QS, and LEX. The command make CC=newcc will cause the 'newcc' command to be used instead of the usual C com- piler. The macros CFLAGS, FFLAGS, QFLAGS, YFLAGS, and LFLAGS may be set to cause these commands to be issued with optional flags. Thus, make "CFLAGS=-O" causes the optimizing C compiler to be used. 7. EXAMPLE As an example of the use of make, we will present the description file that maintains the make command itself. The code for make is spread over several C source files and a yacc grammar. The description file con- tains: -------------------------------- Page 10 -------------------------------- # # Description file for the "make" command # OBJECTS = main.o doname.o misc.o files.o dosys.o gram.o LIBES= LINT = lint -pxa CC = cc CFLAGS= -O -n I = /usr/include nmake: $(OBJECTS) $(CC) $(CFLAGS) $(OBJECTS) $(LIBES) -o nmake /bin/make: nmake /etc/instcmd nmake /bin/make rm $(OBJECTS) doname.o: doname.c defs $I/stdio.h $I/ctype.h \ $I/sys/types.h $(CC) $(CFLAGS) -c -TR2 doname.c dosys.o: dosys.c defs $I/stdio.h $I/ctype.h \ $I/sys/types.h $I/signal.h $I/errno.h \ $I/sys/stat.h files.o: files.c defs $I/stdio.h $I/ctype.h \ $I/sys/types.h $I/sys/stat.h \ $I/pwd.h $I/ar.h $I/a.out.h \ $I/sys/stat.h $I/dir.h gram.o: gram.y defs $I/stdio.h $I/ctype.h \ $I/sys/types.h misc.o: misc.c defs $I/stdio.h $I/ctype.h \ $I/sys/types.h lint : dosys.c doname.c files.c main.c misc.c ident.c gram.c $(LINT) dosys.c doname.c files.c main.c misc.c ident.c gram.c rm gram.c Make usually prints out each command before issuing it. The following output results from typing the simple command make in a directory containing only the save/restore source and the descrip- tion file: rest main.c cc -O -n -c main.c rest doname.c -------------------------------- Page 11 -------------------------------- cc -O -n -c -TR2 doname.c rest misc.c cc -O -n -c misc.c rest files.c cc -O -n -c files.c rest dosys.c cc -O -n -c dosys.c rest gram.y yacc gram.y cc -O -n -c y.tab.c rm y.tab.c mv y.tab.o gram.o cc -O -n main.o doname.o misc.o files.o dosys.o gram.o -o nmake It is not necessary to include all the file names and explicit commands as make can find them by using its suffix rules and then it will issue the needed commands. However, it is a good idea to be as explicit as possible with dependencies and commands. The first few entries in the description file are useful maintenance sequences. The 'nmake' entry is the default procedure and will create a make program named nmake in the current directory (to avoid any con- flicts). The '/bin/make' entry depends on the nmake entry and will cause a new copy of make to be installed in the '/bin' directory. The latter is done with the 'make /bin/make' command, the former with either 'make' (with no arguments) or with 'make nmake'. 00HTADATADATADATADATADATA 8. SUGGESTIONS AND WARNINGS The most common difficulties arise from make's specific meaning of depen- dency. If file x.c has a '#include "defs"' line, then the object file x.o depends on defs; the source file x.c does not. (If defs is changed, it is not necessary to do anything to the file x.c, while it is necessary to re-create x.o.) To discover what make would do, the '-n' option is useful. The command make -n orders make to print out the commands it would issue without taking the time to execute them. If a change to a file is absolutely certain to be benign (e.g., adding a new definition to an include file), the '-t' (touch) option can save much time: instead of issuing a large number of -------------------------------- Page 12 -------------------------------- superfluous recompilations, make updates the modification times on the affected file. Thus, the command make -ts ('touch silently') causes the relevant files to appear up to date. Obvi- ous care is necessary, since this mode of operation subverts the inten- tion of make and destroys all memory of the previous relationships. The debugging flag ('-d') causes make to print out a detailed description of what it is doing, including the file times. The output is verbose, and recommended only as a last resort. The trace flag ('-z'), causes make to print its analysis of the descrip- tion file. It primarily notes implicit and explicit dependencies, nest- ing, and implicit and explicit command executions. 9. SCCS FILES When there exist dependencies on SCCS files, one would ideally like make to do "gets", do the necessary compiles and other actions, and then remove the "gotten" file. However, because of make's current prefix and suffix limitations, such capabilities are not entirely available. Make's SCCS capabilities are limited. It is recommended that dependencies be kept simple; use of explicit commands is encouraged. One-step transfor- mation path "gets" can be handled implicitly, however. Specifically, try such constructions as: frog.o: frog.c frog.c: s.frog.c The following will not work correctly: frog.o: s.frog.c or frog.o: frog.c where frog.c does not exist and s.frog.c does -------------------------------- Page 13 -------------------------------- 10. ACKNOWLEDGMENTS I would like to thank S. C. Johnson for suggesting this approach to pro- gram maintenance control. I would like to thank S. C. Johnson and H. Gajewska for being the prime guinea pigs during development of make. 11. REFERENCES [1] S. C. Johnson, Yacc -- Yet Another Compiler-Compiler, [2] M. E. Lesk, Lex -- A Lexical Analyzer Generator. -------------------------------- Page 14 -------------------------------- APPENDIX A. SUFFIXES AND TRANSFORMATION RULES The make program itself does not know what file name suffixes are interesting or how to transform a file with one suffix into a file with another suffix. This information is stored in an internal table that has the form of a description file. If the '-r' flag is used, this table is not used. The list of suffixes is really the dependency list for the name '.SUF- FIXES'; make looks for a file with any of the suffixes on the list. If such a file exists, and if there is a transformation rule for that combi- nation, make acts as described earlier. The transformation rule names are the concatenation of the two suffixes. The name of the rule to transform a '.r' file to a '.o' file is thus '.r.o'. If the rule is present and no explicit command sequence has been given in the user's description files, the command sequence for the rule '.r.o' is used. If a command is generated by using one of these suffixing rules, the macro $* is given the value of the stem (everyt00HIJbhing but the suffix) of the name of the file to be made, and the macro $< is the name of the dependent that caused the action. The order of the suffix list is significant, since it is scanned from left to right, and the first name that is formed that has both a file and a rule associated with it is used. If new names are to be appended, the user can just add an entry for '.SUFFIXES' in his own description file; the dependents will be added to the usual list. A '.SUFFIXES' line without any dependents deletes the current list. (It is necessary to clear the current list if the order of names is to be changed.) The following is an excerpt from the default rules file: .SUFFIXES : .o .q .q+ .y .y+ .l .l+ .f .f+ .c .c+ .s .s+ .h .h+ .t YACC=yacc YFLAGS= LEX=lex LFLAGS= CC=cc AS=as CFLAGS= F77=f77 FFLAGS= .c.o : $(CC) $(CFLAGS) -c $< .s.o : $(AS) -o $@ $< .y.o : $(YACC) $(YFLAGS) $< $(CC) $(CFLAGS) -c y.tab.c rm y.tab.c -------------------------------- Page 15 -------------------------------- mv y.tab.o $@ .y.c : $(YACC) $(YFLAGS) $< mv y.tab.c $@ ------- B #include /*****************************************7*********************** * * * - makedb - <* * * * Convert a binary file to a bunch of DB's3 * * for an assembler. * * * * M8 T. Jennings 25 Oct. 82 * * * **************C**************************************************/ main(argc,=argv) int argc; char **argv; { int infile; unsigned i; Bint column; char data; printf("\nMake DB's from a binary fileA to \n"); printf(" T. Jennings 25 Oct. 82\n"); if (Aargc < 2) { printf("Must supply a file name!\n"); exit(1); > } infile= open(argv[1],0x8000); if (infile == -1 ) { ?printf("Can't find %s\n",argv[1]); exit(1); } column= 80>; while (read(infile,&data,1) ) { if (column > 28) { <printf("\n\tdb\t"); column= 0; } if (column > 0) = printf(","); printf("%u",data); /* KLUDGE: Guess thGe length of the thing we just typed, so we can keep the columns neat. ?*/ i= data; column+=2; /* count the comma, 1's digit, */: if(i > 10) ++column; /* tens, */ if (i > 100) : ++ column; /* 100's */ } printf("\n"); exit(0); %} %$=.he MAKEDB Convert binary to "DB's" Page # .op .pl 60 E MAKEDB takes input from a file and outputs lines of text that contGain the decimal value for each byte, separated by commas. This is usedG mostly for entering large arbitrary blocks of data to an assembler orD for BASIC data statements. MAKEDB keeps all lines less than 47 Gcharacters long, so they'll fit on 80 column paper when used with MASME. Output is sent to the console, so you'll need to use redirection Gto save the output. The Lattice runtime package has built in redirectiBon, so this works even on version 1.xx DOS. If your binary inDput file contains: 0000: 00 10 20 c0 ff 00 10 20 c0 ff 00 10 20 c>0 ff The output looks like: db 0,16,32,192,255,0,16,3<2,192 db 255,0,16,32,192,255,0,16,32 db 192,255 For ?BASIC, just change the DB's to DATAs. To invoke, type:  MAKEDB 00KLMTADATADATADATADATADATAEXCONOBJECTS = exconi.obj excona.obj excon.obj excon2.obj C86ASMLIBS = e:\ubin\c86\v210\model.h e:\ubin\c86\v210\prologue.h - e:\ubin\c86\v210\epilogue.h rainbow2.lib : auxfun2.obj auxmisc.obj auxctl.obj cursor.obj getkey.obj - leds.obj putcon.obj putcons.obj marion -u rainbow2 $? auxfun2.obj : pc100aux.h auxmisc.obj : $(C86ASMLIBS) auxctl.obj : $(C86ASMLIBS) leds.obj : $(C86ASMLIBS) rainbow.lib : auxfun.obj cursor.obj getkey.obj hardware.obj - putcon.obj putcons.obj marion -u rainbow $? auxfun.obj : pc100aux.h cursor.obj : $(C86ASMLIBS) getkey.obj : $(C86ASMLIBS) hardware.obj : $(C86ASMLIBS) putcon.obj : $(C86ASMLIBS) putcons.obj : excon.lib : kbdin.obj $(EXCONOBJECTS) excont.exe excont.map : excont.obj $(EXCONOBJECTS) link /map excont $(EXCONOBJECTS),,excont,e:\ubin\c86\v210\c86s2s cs.exe : cs.obj \usr\rainbow\rainbow.lib excon.lib \usr\video\new\video.lib link /map cs,,cs,\usr\video\new\video.lib excon - \usr\rainbow\rainbow e:\ubin\c86\v210\c86s2s cs.obj : excon.obj : excon2.obj : excona.obj : exconi.obj : excont.obj : .SUFFIXES : .exe .lib .obj .c .asm .c.obj : cc $* .asm.obj : masm $* ; .obj.lib : marion -u $* $? .SUFFIXES : .exe .lib .obj .asm .c .c.obj : cc $* .asm.obj : masm $* ; C86ASMLIBS = e:\ubin\c86\v210\model.h e:\ubin\c86\v210\prologue.h - e:\ubin\c86\v210\epilogue.h rainbow.lib : auxfun.obj cursor.obj getkey.obj hardware.obj putattr.obj - putcon.obj putcons.obj putline.obj marion -u rainbow $? auxfun.obj : pc100aux.h cursor.obj : $(C86ASMLIBS) getkey.obj : $(C86ASMLIBS) hardware.obj : $(C86ASMLIBS) putattr.obj : $(C86ASMLIBS) putcon.obj : $(C86ASMLIBS) putcons.obj : putline.obj : $(C86ASMLIBS) -дdʘQBEI@Å8f!cc*^(P0Bb7e@ 3fMtHD ȕ%F< B%6o,dx)SE HciN0a43(#SFcVɛG ?>z*i1u!FyᆮgDFtk*)lz Ƨ/r@('fFk=Z<*yAB*1H1GB ék-Fj챳+h'@mBfLuJf^QtnX@_ lwFwmnQFTH 1l˩k(iH,dF%Uo_%[wm)(oӰ Ƽ ŭK)MQC<1-h1e\jnAH6G ;_NV;bX|jEO-ҫ@փwsOk{l7_lk YdzGus!ҋ73YXUSA^Ry5ݽ(9Y m}sO`&F(|:9EN9'5t + z/?Қ| rZ 5t 0 ^0`spC9h9Ѧ`T[TDLtbϨEKg؂mk C80$ CyIxɳT/MqLJH2y$:\ wm, gOBRPp)> /P”p$_*ŽrTp 8 л`jqfVdJ oxèL-%Bh[N( A`AU]p#3Y@ "LBOvJ%8Ad "a <]0ΞpL8Lg=_iG,ťLE'@!h$&&*է@օjqW&DJKpג 'ro1N<|ZTf A@p|Γ9PduaZQt*P KX-keB:ajʶ𕱀]QԪESAp}'fWZJ!?000MJboP-g@LOgEVkm1\AJMvh*Lkܢue_Iwui".u\4o.g9Pvlq7]C!^qJGKY*\\aҗL8py xJKhaR}/Yh:wC98JZ@9:j,ClˡBZtۈ=9";eH2e'CYT!aTv]LKR? ASHnpm݌鉖&3UuGZQ{ӲnvtbD\p䡀9\ n8 jB/[S ƮTmC\Δeb]O$ Hܐ&P*]! l-BsMm pCyŷ]y'0waf"Y,lŖBu0/33#$HRb(á3)3R8C0N)ss -xxYzHIJɕL[ٓ3QIta1뙋#p( L9:yd%YcXQФ0^xf⟰ (HF #TBėZٍI֙y^zoh&1(j4KQiy3jBf9|F:Ᵽ,*܈9"7).rbZ:{N0{:Y>gl AdnꝈ٥vM;xƷ]@*<;"xAy9DI ]yFO=e AYWƙFxӟ494iVْZM)3zHSÉ22CVR"p@2 Ыizź:(9"¬bUw3i @xN Q*ʭc4zٖIq)osgtq1kꝔ'y,Ш4j|˯Kભ`Ȓم62)5 76 ʱR|j,B7+1[3Y$ s׶#z!ۯ> (:J?);++.s $$PKQ:{xӳ%zȵńC E:fJw"S^D?K" ⁷e)'Bۤn; c*,VI *}'mcJ+@sk|WH-Xj(oFyؗ ʺI*qfމۧKtҋGpy j|ݧtkg{{%|R~: Z W靨 6¿E6+{޹]+:KEK,L]t6ڥm~1\]-`ñ #; '}w;S=C۷r-m,ً{e@)x@RU;Á"]I,S۶GܿI2ϝѭޙd۸{L۹7-1Q4ښlݱ୅,=c@q|}^۾M he˷M -R^t<B7=&;U|+ż k#~w> v)557;:=lK6GN~믌-Yj8MOE4ڌisvDujט[|c>S杻ӟۢ= p'=B[Вs RUxаttЅ|\ᝌԹ|VɅ=M.N RPs ^DZNk f˰U8ng޴B9 flC>H4՞)i)J+&Ύ십nw8qvȃ#zt*~,Ԇ.yp-s:_N.](t[(^J xXāh#pXā ##xP$_"*5*rA EU N@|Xm<>\@mI$oA^W0}#*ƪL9iP<>W0}0iA"\ \@m$ <> %VQTPR) A*o PQTPR(pNp=<> oVQTPR(`Dp=<>EU N r=<> !VQTPRIA;)VQTPRB9EA;"yrUEU Ng<> ~ l *zeQQTPR Go<>~ l *hWEU N|vA""yrVEU Ng<> z%l *"eQQTPR(pA"V"yrVEU Ng<> %l *yeQQTPR(pA""yrTEU Ng<> >"yrozWEU Ng<>+ l *eQQTPRA" "yrWEU N +<>= l *HqeQQTPR.9nA"= l *HyVEU NSvP<> *"yrMQPEU NSvP<> /"yrmeQQTPR.9nA"P= l *(eQQTPR.9nA""yrqNPEU NSvP A){@}QM (p1+)wr&͛(h=\QTPR|6WʯEzl *a@%o(p1+5m PQTPRܟXj A){pS!EU NpzGЄ<>F[1Pl *h[H=*2wH1Tf.@hEU N<>{@}z")D*""D+`TLE`T,|){@})Qwrԣ*s1Ae!oPwH֪hEU N W<> W0}\@mRr,7}($\EU N@|<> *rs'yU N@|<>\@mwLeQQTPRGA\@mwLeQQTPRBAEU N_AF?iEU Nr=<>@VQTPR1=<>VQTPR[OEp=<fVQTPRB`A$ PQTPR[ u=<>.QQTPR9uA{EU N_A{wr;WEU NBA{wr [EU NsA`{wr:78WEU N <~uwr}PeQQTPR|˶A`A+ PQTPR|{A PQTPRJXp=<>pVQTPRA7EU NzAtswrTEU N<>`?l *\WEU N<>@$wql *BbzWRoAyr!4BeQQTPRoA`$wql *ATEU N<>A{ }qrԣ*s1h.@hEU N<>"*rR0 A#*r>&*rAP$\EU N \<`(.P A.yrwH0#yU NwH0PT

[ wr,}0Pc@%P"}*r'H=e1T1 ""EU NS~ , PQTPR^""EU NeZ""EU Nr=

.  PQTPR;E" PQTPRG|( PQTPR7" PQTPRć|) PQTPRķ|\{@}D{@}sUnPwHd(%jwEU NZ\./4(p1['9]ql *x\9 %)&(p1[] ]l *x\@-oyrwH1#ZQTPR(ۯ%m"wr,e!/P?\@mwqyHeph}u+%ȪLer,.yrwH0#yU NZ<)>"b-er,e1bPfY0PsV:(0bPfP"u`[@]pWc u`[zl *h[H=*2c u`i.@hEU Nm#{\@mwqyHepht$\*rA<)> \\ "pc u`[@Y' <),c"\@w1bPfu\91> \"$R1bPfu\@<),c"\\ w1bPfu\<)>| 1> \" ] w1bPfu<c""p*r]c u`[@ޛr:(0bPfP/4(0T= ZQTPR(F %EU N Mk1>vwdZwF#,!$\*rA<c.wom8'5a'9d5b2V2/4(p0>`y0bPfkU@%w(:rQ-/&(pCY|k2g>k={'QKu\91iwȪL>b(YE 1i(V0CKA(01}+*rD jgc"4(.FsPߺ#]p"(0) .0& /1!12u8'uqoh#pX8jh;e ޒc5t2g[oEx2P6`K{2R 5`#EvveqdK}vveG0vkvveG14:K^vvel4P"A`.):.)R.)>EU"R.)lL.)~:C.)1T&72r!+-a4(ߺ=˝:x8Ñvksw.),\ 0*9$/Q-ܿo49 7S^]:x8d0iv9$'ՂY<:xG[vkw<)~HK94:K1'qo0DCGIEoThCtJġH-- # @$*,x#؃ 42[gXy<DR2v'[gXy<\ [gXy<2DR2ZFDª0EI!1J P%KA9HHF0A+o00M.Jb0gR-&a CtpCIђ9V.;~W@pP5Wv7J%MS. .+IotUdWN%';l!$V0CQޥUd-/A+o1'c&M#ip+C\ []p9,o"aFc|0\%F4*}qegx+r1(Pd!72isB=CIPk5g[o!(Pd-a@f2m!F*Pߍtpa"FAaMD;G# k>>(VA]qjE/4(e7^ipX>^42[-]W\4iKT pjEkE#si1#GTKA(425nl+%^ZTvL0"]׸+K0%gnm!2r1(`P-/>w)4h4o4vPv4 ifR/na P/iCovCoa@d?sI(/(`EfQF%UV0 >,(=ezŪejFc|iwvPru(,]w(`dhkE,(]w(`)d@(P2ZE:,]w(`),k<oZ,"Yc,CsvPk ^UY.)! 8ic,CsvP:r1^j?vPk D8iyOe!>op V%`&C8r1/(`5}31UP1iɤN)(B d)-a`MPm)c;1ap5_t+Eai2-KcԃPhHH[Hb P/b#fI(/(EfQFKX2v'[0}p]W&%c|(]w():i%Uzຄp5{T( Fvkpu\KA(p%X--iPB(++C1Uw()]R((t+nKA(+ᧈ.)1TFS?}pPt+n^UY1Uw()]0p_1Uvkp%B(pt+n1P.)! 8i$V1UvkpP1Uw()]0Yg"]R((t+nKA(ZyOe!>op V%`&CHSE\/(5KA(1p=m>wvn\L-2'v-!^u>w*N0B=vc p#/4(/(`]Yt+nCVe:hhЎp\+ᧈ.)1:?vP,s(jKA02i^U.)1T>N@q(jKA02i^UY/4(`w(I*8}G~h&o4&:iKHS?iv()]RE:i>wpP:iKAjhh-?i8ivz>N@q(jKAU%lL/4(P2v'[]W&fD=v'[]p1 Z2Z+ KA>mR85 _B;(>sR/b4-3a -1iK✅-t+n1PKA(p3ruNTKA( F*d@bE*۲R8^T2v۲R8^T2eƀPBA4n CG; )s&:eH(PC%Q T"6aذy3&1RFO7fT&LAdI'U0Ia0;D$AHAE!CE 2)CJ&]*{رlf &p_~9X[4L$DRsT]~!si\z |m„ǂp QNy!l8AH#TZ"(~ h:qhsع On]x mdK dY&ĘcE6YI*HJ:a(fu項 B :v FpԁQ{I#F PHb;@)0 TPGVb40lyPIg]Ȯjz)a5dfYg X#dvtЮ[<{w3yVS@c |^F耓NC0z R-7~WI/8HW{ϻ ?q5Z C6cTv.Y%H83+ TAJjE cX+ e;cӈ<+a )UBpw-!$00M6MTADATADATADATADATADATA^5: b#[(ORk\Rao=D P~,_(rnk\3~tML]Gfq uYtC(QlQĺE%Z(V&kGI=VP;IA4 ?UٔA^0BZM P%naPr=>?K|jG rPSJG;* 76]̰rtU0mKdfCµm+ZwڟՀI+Z^F5Q epV\IwB0Ev(2(7ю,ưx<сV,jZM :.)Q ׶'Nm0nxX⭡0Qc $J҂T2wO).Cfu!4,ҽˉTP.,'YzD$ ]07勿%JtcLCMRv>Ek 2=0+Dϟű~~8d{pJ5VdW#O4tw.tA0.>|WVւ-}-aցnGV#X~$(pw"L' "wOQ.:4Aaa.u28?TBocX6ut_$vvw,"v'a!A&YOr5HYb.Zr)np29W -R1s3pǩ/x"੢i KH*&u aup!:I:?so6a H0Wىqڥڧ!"*eQ3/gha٘y$\JuIwYb1KZJ"!jIʣuvsDy^ʗI ZAuwѓ]0z0_1 .lg?! @]?CZZKZ]Q8!it(0%!0  kM PvJX$9 q/KW#r%ae @1`9/ D{ĘV %l!PKi!Q$ Ei2sCZGl ЈR/+hJɵ/!J@.0 +L3g@[+)6қ+B6:7j!!9k o"!"$/󢴓!)CvQ!oFp{ a"vډ“Gʣ]yg:Ǣbtpsw.?5Z{{  1 e@  l3egArD}l l-,0 l2P-P1 `:L2pjfk sHiI`ð|>'J۫w XU;])nWyS:¢vF [rI1| 4y,qk4TG9&7i';# ,5'6Z 1$' yL!b!t+1iG%Mn"2 ̠'쫼!L6[{x2{h)#3H̷,#i'u'\ʊɾAL& j.r@g`aW @i9p0 @mS7+bʷ:C}ۉ+"b˲|, PnyR FNsw1ҭ!!o ډ ѩLA!#Wv4%PcS]*M\ؓ͞7!wt1"]Yze.0 0c%*H>T2Z'[0"(0)~= h/180"#g=i$+ܜz=h\.>{pbd_蚔[%,1m7}P=-1(=}C"0`] 8jSrpa5(EweaĽ sM{LCA mȊ=>wPފ@ܯMcHHSc(o"@C 9!hm9R4ga&@$56s/c!l2AQ.vi)B^ dAR22^xFH,ׁ=R+Qؕcؐ-ٔbי3٠-ڤmڂYMmb.毪fk~.ٱN E ps~*>悑RPC0I50 Üa1[p빾E$Ɏ^EP@YYqƩM밒pbL@<+FRRۭW"Q*h+!w/gz;#z]­OSҥ 4FyFYXg7^ I@ מY18AD7"!Kw&X2+KҵfL9=1}|} +9%`bOafOhcfonije/xw_st~z|o} O^e}n'hw4{ T́W>|)y:\ R**`S@wpѯ(00M>Jb֏.HNeoeXa67OLcqv@sGqv@sGv93scI&LRP A3 Pqc& 2 zb {PM; N7 €pSXb6eڈ)#ʼn' "TxN)WHCĜ ȦHg uCG(ъsF!hN+MvL+yv}ު0I'A #ȑx&&GF:fPysAKFAe>ddbwqyʼno-ry2aw+Fi #pMTΛFP 1aܜhl۰!Qu q *H1I"zp q Xwrd$G#Qbr'b=!f^#% &08PF‡q6v#|xސF0"șsy!TZ!)Ē [ᤓ{>0z\ebGʑ$ J VE} H"+HQS$EL Wx#G` 0«' Ll0v:`Er`QsfAŒ!(hF?%U: i%b%NZ[|IZa>A֎#P~HSP!Eb!ǹ-`Y pne .#\u] .մөɊF_vb\mա Ox'Qm$\At9k3s&aQHW^HGMöta7p3Gt5GZ@c}W3RMEv t{1*1E,Gs`OiQ #:үќ\saA29gg(A0A 2alApJꨩX޺q*lćl|Db',*w"2LxArHuVq8ak" v6H|u5A-K}% cZ0Th` Hf,4yybu$n;QP;,(wq@6i\ ؇ChIPy pn %Oӄx`$M"hS}ģ?TUUKY yy+q L(xE:1l! ]pL@E+jIup+CH:1sVeH-ڧZU^Xo 6NJ#%=Y iDNt$$#2yg4YN I%,dKW*!tyL&'lC Ă _B 5M!3rA](BS"(PC8* 'RhK+tNPnXO69! \JeOBR % xRDEH8|(>nH[B(P! P,P"d`L*;)iTƒL6Y' (tJa[!og|!#f45E_ȸڋbP2VoXT#\Otu2;XoINk]GYg aR[4A42MԳAp*t +}y507ԩY{5z<x4cvtf$2+m$ 1 .>5 .~lޛx~ξgF?dd<'Is<'#Iara"y)4ڈinG  g WP q Ut q4ƲU#=Fp$L-'$`8d ,p,O¢{;3xPuٞM;_ח`GxnN -{iGik:_PI"w'(fcs&i|Q;t~`Bs(/R~j޶ڶ:9u0F8g jX%8uB2蘏w!o|NbbucEEcz\ |4 +Z(߄GxNp|5_nFO>0!2'&(۔}A!D82M[8D (l!G#&?zuUX5 h4Tv#T!B,O}'07BgW۔O x6LR,(z( r_\Rvo!W1xtJ1Sf$bdӶRl7x+ˆhHBw8}:dCt!7;!G+1{щG5Xk+y@vw{3h@޲.0{wʳYwcC:t?vsAsd]"(0)0nP @81/3 1]s6Aupt3hh a~6I Y"o.w'Y* "w}< @OOpE /'26K?=ruuZQg!Pnylnt\vP,S&cٕ4c0eQRxxaPnѱ-u] n*gP@,4g a 7h7F\#vA7CLVA-n-L1Fl_\snp6bFEW9?ad`;[s nIz#eA;DUwAfP!s#HֱL^ ĤxDV):&Q:ɓ> 湧1 n#d U]2ЧP8UE MA{diN᝙zK.*[T5y{JxRړ?viWjkk 2AꨐJC]QRs`c"u4MBTKґDq@epئj 9'Zs1sj¨w'Ep?ZT]_Z(37pA'DBUX5 "ƪ+n"1!^Y(lj ڲSP !į !9 Lس: A+D˫ ew6 u(Y[D?tM[PHR7s&i&"BJ!vȌo(Rܕ4/)J!ˮZVMyQ l!4vaxVt"bv*˧b667TQkx=D#"nP#+lGfZK!f9H fͫnћ^ɦ(pK aJ|x嚪Z$!ҶGGupm1#s;vHZ +q c6)>ʡc@{AQqј|>f[P1 =6"c ppw&t%2*(.#+'e,%8zcrAkcÃ$KBHZBZn csG|qsHBe&q00MFMTADATADATADATADATADATA :@jh=3`'edg0—ʩWQwut>(@Ʉ;`lb D|%a1>ȷ%v:˸1 0pČ{C@EApaOY0f,u:bpE3!kp53ѿq1ťSU CP=}giu .#\?e\@9}=M>`l?mk-$*Q"ĒI A R|Kr3ozTh 4H]GI-вKSCc [hU>4i}gk#-l]hLK^q=Q~F&:Ye+'yiP~ `)A@q"3 /0,rs/ Ak$@WY-lڹ]]{@.MDR1^im"3#- -0@N=O*ԶwLQ-"P ) [lcYt!)ƖA{-ٛq8N0ߧ-u "]$-+)ёNB&-a"ݝ{^ޒk'Lc(6>/}2MD]V=GY-C*p.*>Z*Uacf]8^yAc7"$(@- #m:@=@ٜJIa"ڶ<9HfhA8o2cPاctr i )m/rt!)&*@<9(l,a!˾Ax9>^=/@~t'(ўdAe`~WQ( &JeCЩf*x3ȝ'a7y`"~ eekMozGaN=0оxp0bTϿ+$b4b@W68(\xFsC_->U _#.O/,p і0O2خendϰfDhaШG7w,p,|3> ^?kAY.m#g@?t401rT/?13?^O/1Ln{Ŀ3aq)a3Pa!dRpL* B<{$SL9tY <уÀ LO n󰥓)TPIɑN9nPIq!#C A bŌ;~ 9R+DWZ5&֚7s I,P-cR U15U1YKBU#G E4V%ɆcVW'vuhҥM*V2 G8,dּ6b8=t(龧 ^=ՙ8]EoK\Yd2n|.y"zpk:mG_\+vcλd|ufO@ ilpAP|WՕQcnk[3I`yX܁~`vohe0FlQC0t\)eELTQps!p1v..7aރcP8} `!9tgJT&pLE2\{kafV%X[W)a@,TL(TiYֵi |W(:FxBr=+tlf,NJ:eҁB EwnWU^I8A 1XcI($p4Ƭd0yAGtC/TGm F \. 1h1c1Gdle")X B 1 "\4BdXƇFQk|CN  $!Gc%-4QmJc< nцխ2DpwSq̗y=qA41!i,hOH1 G" > `B'O:o{w{]ELΑR<}8ͷC/=᳟>G>> ear*\2ɯ\DH0iH0/` UPD׺*$r@ QHA.{x ЃS 9\+[fPs..D]T:l-z+P*Lr"(fD4aSc)..VH''fh,1u%c+.ю[b^P!PQCƐIOJ!E6u hU D] ZIpn`%EIJA(kp' h}`zWI[G#T´K® B&ԍ|CGdRAt&+i R 8D:qr &i.tb+'+gsȄ$χ` .r I8z3w[x%ΡbBB!Xi0'E0^ԡŝ 8ƏZ9ڄ94 (hJ$fХ'/+ ! А6AjQA!t*6vz(]z04S'fiЃw]ubH!<\U[ze0 TiU#EQv j/" &G>(k`P0TxPJlgnQPv"J h桶6Mm+Q*!%R9pjXs˅n&"xԠl[;hb5+8@g;MV-` vVv)8pOgc V8Eoec - ^0|%7@-_'/  F B^jn[Ҷ 0_5\ )VZZiN) Q2l! HBX/ܰ06-r! NIF:yxֳQAcІni;6}9;_Jn*_y*5i,aXn8Ӽa r7턙ŁpJ{wfG9t8Ki}Yzoέ섁y_Z"爫HjnXj$F1ao.P2eG)'@:xZ \.P2xďYxuFsd@q|Ai(:jpCC`n4noPp'>=6oUi:jQs7|BpաT7,{m6: ͏UC|Y]axڰGy8aq Ω!201yxCΑ r xF0\16 p7q꯶½rz@5#0TGﱄ gupȡ>T.p$(c"4Unj eb08&w]m05 y bQ{32A]1RTcTb1v3luw l #5rm{b 8 &@8m tb} 0|05vyr@8wM$-g{-'Br PFutswp-crew(gbu`-4S&\/"9>'+Rs.Nt(gpF0w:|a 2vp1W%lg)ղTG @G9S!AX#|z61-{ h0CFE*rxs~'t[UO2Tsbx 0T"qt2p|Su-swb#|DpG%tpu Cu-PwҧH\y uUO'!q3U#C z00MNJbq&C##|#Ad45F8z2Gmp(DžJw/'ŷ+wYp'v3r|z21+x.n@HD \.X{.qr>Ts9+OԘ28Ղ2.H-&Dh6xR\~Ҕz((qC7{Rp6LJBH(pdZ'Cg`TFy9i#)pI2 zsakw[yp7sH 103.P[ǵY8JhbX*W{c|w8gA&Ɗxq*MUIWu<'7ɇ87tHusb7|({r8t$75Gyw2-q'C&#z7hPIXyН 0&D8QǏeG#!^JsU(5:mTɎa'} zٙqnpzu8ɊFsMcf ʼns<|MsDdzwty5疣7ѹ)t tɠpTz$pZ0rՈ2)Y.-+GqY9:1ޅsɤ^ɁցDU7Yv7331fF'te6UW1o-*he' w6ǁgJsWtD)DP#s7iwwyj8v F7fjs moXXU'ҕ) ;X8g]isSn'G'yr>zr&擩7 Z!ޕOS1fz$G"XʩZ/2LNĐy2 s'GEsm"7Wy=ҁ.+Cvs ;UǨf*#o5vh5T)a@UiyR-ꈳ 8'5T6:Q%XwGycqׁE#HqxOc6bS&#qX S`&v0tsH2e`v'L%(9-c[T^} 0-u2 0m`3騆AFl7ɸ-p2yxy{YKe'#۸&V׺A1`kKRv̛}+G::;V/;˦*{1[m*eYÐ#S2'\,208c38ý=44CS4G44N5䕴K^5ㅴ#D&+:5[![Bt4o)5AC`f U 4M̊[6M1@6Z`ܧf]}c7Y\feƀӉz @bLd:ʳZA#(Ƴhx<³&U0Y{"^27+[Pt<q2'9qn+#(0)@LpZNȄ d#Kmk:#>l.,Tp@,.0Z^\ͦufX L0B@R %|یb `[<|SlP2z̨Ȫ4~\(PRj!'6_Oeed1@"*Rbq 8jХʫ˫bfg3!| âu-+  d$!12_Fh'(R|:&h AҜ2"qb vnVAψDvg #/ Po9hLVT 1_B&n]  P3Y&*s, f fsd µٛsF}n/" VgWZ8ghVswNgjv1Xmڼ =+d,G}ڡ p`TN%zs#n@!*`za00391 ڸM*xKqܽ2}ۗc&C+l %S$J#zL[#aXиu"oj̝J(Y-?fЁݓ bNkh-N[ ,ᗁL6NOyagjVE:g*`B#xs gkX ν} g54lg~rao %M0Vqݓݵӑ)ѪaȀ;-艬]0-yNFl(+N(k7A7Ȭ&]Mpsrs;f3Q+ _J1`b$((4}.#Mt&~0BF-ʪs/0x"\84)9/<# l%-CPkB1O2H i.$/ƹNޕR(٪w.#Ljny>˞>㗡h /qn=֤L;aʧ[H=ffnNc: ]79=ޡ611Qo+ БqNn]kP&+Z#aestS:/ڻgh P2b^L @_-rpx.Dxnj0:dj0cC(@Li6&/Ezc|h/㛡?a3Omnָys 9e؄捛0l@SF7r@ #7)v(H0&̜2 Pё (`:uAAGN2!G&HM:Qx2(I(a4ӡEQ"Ds)"u2˘!Oi{Y#K-4=jMP{eX-#m._!1DL0fxs!FCPQiGP!$i 4ıGo *,H"\  ELAFd_ Qfx1mCNQffX~ 7IjBBU&I# aDNꦀn]@@~)Q*+يvdD^ٓSke4GM+C'ܯU묽5#{oC|)%i5` 6HĞ\j @f\f)B5ת Re7Jմw(lB}4-[ r7КdtuCwwp,(nO:tF_NGs\>ntiL%to m wA F@NJALᆤr/뱿\ \pvluNf|$(禫xNZ)sQbʠp p@y`\cYnuDcC3mي þ`:+ӏ -H5iA PքRCġ {04gyO8iqc T(o!xZA(Pŏ3T|B73:3i C/,z)C61 XQZ^/}pjR@! z(RK<"9R|$t4`.k0< W;:.jhTn'(aI 4!132hiCA, FɖImtIJ*$&FR3lZVC'T۸ZZ&oX,b١xv5_bN`T' dۼ v ťB& ZvE{\Ѐ͋r&: =&z{<'L!H%Ljb CQ~t(!L*F7 z D@x3ԡ @ǡ )0(L˄ V'*LȓTN5@P(0_Yb$x'p+@G6(> ?t$jJyR TZ<I[ @^) AA䁅&cj%Fk=~4i> ɺh2~^x͋\f2 _dAX&le#LNsJ^Z&$S/޵Z0/9]$T{dvHpAwkE0`acgr3d E$jl@D|yPƚfOҞ ^ BEF!B"LE(y~tr"@aY}(vlPv+~o0!/y;A߰GuSk@ _ }cK~*L!ejN_ZKl<F6 Iq~ΟWly XZyDž;q\m jesltrC  |hOo(5\T930 EWI7I!4yHΗ<Cs>G1ҷmhG%>'H*: n֧kGkaWu;!l?)~ L'hnC6qFAir[r.c#wZA0tN5HVHr0mJLbc_04o&oX&|PaM`h$V%F6} Їo!hCqT&8>GXova5C(uX4;hnAf `8r$asA89',oe2Nt#tl4Xcgx!^v`Xw[SPB@fe-|uwy*z8Xg|MF`t$wU{W{Ce7TvP#h3IziV YyyA{_=X7Ҹ{gb/ WEwtBQGVAteu1ubYWuQ03|醌2g'8}R"lq~wl!~ MdqaH'mr7nQq#!#j=1RŸl'ėr|(=eM5MyNz Hf H=1p f瓙P+臶qMɇN15X!o&hoBTYEh.Hb&A\ l'ae5I6Rc4{o0^x7V?2j IB6,X(A2@p9~?pr5c(O5vcם!ieRYCAO6rCYz[rwm <67'4aVV6lҕQhZlw9icidi"`ڢ&k"h&IAt$L)51Zfqfl;.ypƜ$*p .$AJ/ lhQ0'5z}*LVy~1Kۥڅ$ԛ!gfڡUsi#'QM[F0iZ3\X+g:B0,z6x&ܤ! "sb@8LʦS9e9=@c#:>ڬ#!&~0(u|A vƘ-$jy)_ީPPid#E$t_N(RZOiԁ=uZCUpTmFZo1OőC:+ `H5S1dqQEB/=kECe==#K@{TOF* SFv_Bwbv02ue^Uʚ3WۡOA @2Y|xe;QLBF 6"SHyrZ/vvg#a&RZ~j,7쫵\~& )s!@͜E 6$) T`5XEIwt0_`ǽW^xɭ'zR&JMJ9XlA!Bds^n]#[$x5.`R !o#8okjMC``A1.3703P9P4931K6`31K6`4@1CA`I4+bGN7tDJ 踈g1cF5 q0`ذ!s .!b̛:E c/fd"ezP%K0e$N8! Q!C\u%.T5bv GFh aZbc.Ny h#:(df!o>v6JNBk*%C)9ݛb x"6ɧ7cN"WGjD`i I(Nn͇(mzwy' E sIDt&&jw}@1di[mvR[\tn +{Sȁ@t++E8AĎ" PohM[F"zҖQU ӵr[@5T8[xGх [r],tE]AF; $ȗy0r 0)8l8,aDe i o=uvGT'XсF_Y)NXOlLU wB啩 bg/`T IuFZk& 7|8[tR0!(  PG1&W9l 1Gg1zoRMJ~el=eT GB駋]&i:R9[A|'.cqW|ݎTJ@|)`t]e(A! քyl#a(/ YG6K, -`C- "E`8(d{pֆa;ElG1͌h 2ȡj#/6#*tܚ:C+bzob#E HBtv8É Ili44/ cP* H.RsQ62(("%*0dRsxz%1&[Q' @c l@XS) 4VD&IDmɄAp$88 E@a"MYG r(C@8@*b3!6 S w<>b 'r/ ִQaa`1ih0P!@ru3KdWE۹*ws%"EQ4t2\aa,\똺3A!UJNoLIg#Й) U=ƚtdPנ GF R"Y5REhWU5=bE֌ n\+WU(+BcP |XȪRxl*" 9}DԀQ]֦;P_Dp7rJQf#uxq! P34*AgD H@ > g0]@`0fX 1`6^d`e/$DPz33N {@!]P(10xkPtƑ'G@ҦĘsԲfba :R~,c7n8PPe`#HV2/FyNݞ5v?U3$*ƹ2Uv(lpE027bȚ3v5(IޅFL{DSchP,hQ&fV"ŏuN]lNn6\h;V t3FX 7~|-mhnBm/~QJ[:#sa O#b 78wa z /*m.)KT{ub(ƈC4脖8ȴ_Gc%#P:4CIRN*. S7Z5f*ujp-z?b # ZV {FEP.|(9L̏1sP4ܖM)@ptTrO[>^9}W!b)VN.hz 8?&6Aċ`<6%7GiOE><œ#Faѹ<m띧Alea*,0(NP M8,+y(slʫcx_zu3Ћ%?3'ue0{2A3b@8ȁTNC2+76xMfey[RhaL|-ebk6f@x}H@awf"T~hu~8肊$ )3~8L@uQdnTTR~ "yH [*;rH&t6R&cBe]^"6xiaF0-'Ud@gx|ijUB\ 6s:ⵂ"-WWp!=_+^}5JcV@YmQӗX1 {ʕ_]"`&,9PFDv1hbi|& F-$dAd@wƐ#JJ!ٔc`qa]~"Z<㽉x{28z!"u`fp3e΍40>]tJϴحQ^$>mM44}E B>C= YAw"|$&fPj TʐV s pcY}XԳ4ۊMŽE(#΍߿"@:8'6)l d<rQUn..E]!ΆMw/Mw,F^)zr#5b8B|pg|`l+y~~^#k0|ylP#m@in^.Nnp#n`|hjm~oo|`(|`|`|pǵtPt|Ptn^#w >`||p76ػ=ŸNrE&`NTA_ve,͋S :L|Rgg.Qg~Q ǠY4 7E ,ژdXf:PtF0?›,E9[#2.-}rgP5+A8e$gUw&H^Kg0)]v(a,㔢$5NRgd: _/O/͔8֬;Cj?.U%lxUWEk)k/pX5Qa( C`k P-Ïuo F.*0Ty B:/HM.``-0 Qn?Q>D/ GGg&ޖVo@yi AaBU>M?[lR|zbN8N8e@q:e |S>LP`:lc1dsxce 0l8#ʕ (RH' 02D"tGì@&8rҸq(" (*GaXŪ Č:HaXu+1p-KWr%{"߶H-)AH_QzIh:oڰيq1#}ϰV@ѥvvysñcv2S[G9N'u H:[83%atٰ\E DFt3P 1F|L,@N:@Fv p̠10 9$Fl(S3$ kC 6$FnX 18rCI QF,@ 11U`RrA%9Ph7ЀCa؀Ú9А 10jܱ!%s d цCc8x(#}` Yhm 6bzRjaǚ70ZSgQkP 74tK x1F 0ärY2f9,z.&$gt B @KC SJյ:F3,kCmFnNh)F5> nzR q60>4lj<)@yqm'Fnks*t 9N \T!jfRj,8w$pڡt41h?f C11zAd݆ĠrZfuQ/&pFkr*NFMciDF Sh^F3wqTpz &S^ptnRr.v2 sqCFnrc$9G"jT͠`F37d߳B.қ^~-3. =o&55}R)br]>' ZIR*#PܱACZ$@9tʑހ:(\RJ!!NGuC8*-MgjCBP0ZqCѦȬFݡp̓ȱmb74 GcԖ1K CbĿMm$1{U,v3pZBA ? Ʈ{G`a'P &/ I[&L!~z&Fxz' $ c`:% %1E )!Kె} 4BWWd 2`w }~ AlE'A6g :<1ad+A v,䙼Fp~W\tb/1pT cQg'3AΨtg-k:xC#ZD ;!,Arl Zl^[Pf:gdz;QBmCC \ĽA yg;N׋lWln[?DZ-$̴=3a]jX>!% ܐ f< .3@Rƒ@P1p _!RiM^4s# >w.U Cw9 sa,vHmCsFFGz s|,CRbQjV%Ta| AB_ 0jȪԼ (;͎v)h'4 HD$ F xj% *x nx"_E= ^A S*^@V_P(*WW{|qL Z 췡xwAT8IA PPx%QQGR.08R1R-R15S6U8% !SoS>:.P%XS7]S=w4* Cm bSM;/P8(o:(%WmAKs xç*D1EZKi @ `i@#Mp TAV[х23SepODX Apa8l`x8|Ux:6n81uxw}THC$HuP*P)h FR!dZa{+~ArP#N xTR1H$MU6VMP'"(%00MnNsOtbsyH5hsOc i0:((*rC nPy[hPy:nK(xcMt:rzZq`.`_\|j|@eNFDDktn7Y93Å.)D} 13yRِz@Ko`r )# 'IRUƒ. N)Mbr$ppq!ٕ -Ǒb0dv/׎ops?upsv @c$P)t9D!^y[L0D&~rDaonK"Izy}>0N5[%I/Utɕ)fɗpT}XG1L /rHQ ~ɜ ЈY)ry9{:HiMɟv)%6މi2ٜ才aeE։U56EP@Y 9 9ٖGћO  *%Jӹif`Ȣ/ i!ji&c!;ڏ=?Mq3$)KiTcPRcA<c*`=M xǑQilJo:tg9t"3FWj"xppO: {Ti0\<u +G)pizwzz1LepɫqI(MĄRצ6H<`qTx(TI&&)wJ%k ej9iAʅjG!*vq!pJ k9*@y*/3yȱ#+RT +;xXj.D#`a2:.H.U=9YtRJMx+kyUKKvp ~: ڊ [*InbV {QG `/{(0M|/bi+hyZWg1DH[s7s%0p`>ҙZu4wI瘢룥{*JŲoۧY 䎅ezZʰArjJv@Kx}عpqw ڢJ%UGa{+J1}tx;\W;B8:_;r/gCt빡;[yTLtKѹug)@<L3n++[mZĿ3>Y{h+Z\zrK+QwR &TK1(0;׷Gq\'@7jw9%2b[s@9kLg@!= Ļy4Z91BG[~zTQkrNhxDkA%P6JCKEM˔˹oкah)i,ͼ :*Wx̔3J&p~j8r\(}-1=-CVq Ҳ=MƸf0FLφ|Ok>Ȕ\^7Ϡ{<MklY-kА/nLT!MJ_I=_xn^ʸn_̺"\kW07tK{~MlTs yok*ͫ H!Ѣ*^ ƽ mg ^ ƽ  ^ AThis area contains a number of mainly MSDOS utilities, almost all@written in C. They come from some Decus Europe distributions and<may be of some interest for those with Decus C to translate./* standard i/o header file for c86 */ #ifdef _C86_BIG #define NULL (0L) #else #define NULL 0 #endif #define EOF (-1) /* standard end of file */ #define EOS '\0' /* standard end of string */ #define AREAD 0 /* ascii read */ #define AWRITE 1 /* ascii write */ #define AUPDATE 2 /* ascii update (take care with this one) */ #define BREAD 4 /* binary update */ #define BWRITE 5 /* binary write */ #define BUPDATE 6 /* binary update */ typedef char FILE; #define getchar() fgetc(stdin) #define getc(x) fgetc(x) #define putchar(x) fputc(x,stdout) #define putc(x,y) fputc(x,y) #define ungetch(c) ungetc(c,stdin) /* definition for setjmp and longjmp */ #ifdef _C86_BIG typedef int jmp_buf[4]; #else typedef int jmp_buf[3]; #endif extern FILE *stdin, *stdout, *stderr; /* end of standard header file */ 00PvQwTADATADATADATADATADATA ----------system.c strcpy(cline+1,"/C "); strcpy(cline+4,prog); ----------fixed/system.c cline[1]=get_switch_char(); strcpy(cline+2,"C "); strcpy(cline+4,prog); ----------------------------------------------- ----------system.c strcpy(cline+1,"/C "); strcpy(cline+4,prog); ----------fixed/system.c cline[1]=get_switch_char(); strcpy(cline+2,"C "); strcpy(cline+4,prog); ----------------------------------------------- E /**************************************************************** ,* * * P R I N T * * * 9* ASCII file transfer to PRN device. * * * * ;T. Jennings 6 Nov. 82 * * created 23 Sept. 82 * D> * * *************************************************>***************/ #include #include 9#define NUL 0x00 #define CR 0x0d #define LF 0x0a #defi8ne HT 0x09 #define FF 0x0c #define DEL 0x7f #define> PAGELEN 66 #define BOTTOM 58 FILE *printfile, *fopen(); FIALE *printer; char c; int line,column; int tabwidth; int formfAeed; int number,lineno; int brackets,brkt_level; int pageno; Aint printable; int titles; int margin; int i; char filename[1<2]; main(argc,argv) int argc; char **argv; { fprintfD(stderr,"\nFile Print Utility 6 Nov. 82\n"); number =0; /* dont nAumber lines */ titles= 0; /* no top of page title */ margin=B 0; /* no left margin tab */ brackets =0; /* dont count bracke=ts */ brkt_level =0; column =0; line =0; tabwidth =8>; formfeed =1; lineno =0; /* current line number, */ pa=geno =1; printable =0; if (--argc) { if ((printfile=Dfopen(*++argv,"r")) ==NULL) { fprintf(stderr,"PRINT: Can't find <file '%s'.\n",*argv); exit(); } strcpy(filename,*aArgv); /* save filename for title */ if ((printer= fopen("PRDN","w")) ==NULL) { fprintf(stderr,"PRINT: Can't open LST device\:n"); exit(); } while (--argc) { /* look for opt:ions */ c= **++argv; switch(tolower(c)) { case= 't': fprintf(stderr,"\t-Page headers\n"); titles= 61; break; case 'n': /* line numbers */ =fprintf(stderr,"\t-Line numbers\n"); number =1; bre3<ak; case 'c': /* C source */ fprintf(stderr,"\t-'C8' source\n"); brackets =1; break; case 'm'<: fprintf(stderr,"\t-Left margin\n"); margin= 1; : break; default: fprintf(stderr,"Illegal optio6n: '%s'\n",*argv); break; } } title(); > printchar(LF); while ((i=fgetc(printfile)) !=EOF) { ?c=i; /* type conversion, */ printchar(c); /* print chara<cter, */ if (c =='{') /* count bracket levels, */ A++brkt_level; if (c == '}') { /* if closing bracket, and */ = if ((--brkt_level ==0) && brackets) { printchar(FF6); /* top level, formfeed */ } } } fput?c(LF,printer); fputc(FF,printer); /* do a formfeed, */ eCxit(); } fprintf(stderr,"\nYou must specify a file, followed byC any options"); fprintf(stderr,"\n\tT\tTop of page headers"); fFprintf(stderr,"\n\tN\tLine numbers"); fprintf(stderr,"\n\tC\tC sourcCe"); fprintf(stderr,"\n\tM\tLeft margin"); fprintf(stderr,"\nEx~Bample: PRINT N C T M"); exit(); } /* Print charact>er to the printer. */ printchar(c) char c; { switch: (c) { case LF: ++lineno; fputc(CR,printer); fpButc(c,printer); /* then line feed, */ if (++line >= BOTTOM) ?/* if bottom margin, */ printchar(FF); /* formfeed, */ @if (number) fprintf(printer,"%3d: \t",lineno); if (margi;n) printchar(HT); /* left margins */ break; case =FF: fputc(LF,printer); fputc(c,printer); line =0; ++:pageno; title(); break; default: fputc(c,printe;r); break; } return; } /* If the title flag is setB, type the title across the top of the page. */ title() { if E(titles) { fprintf(printer,"File: %-12s%58sPage %d\n",fil00Q~RRSename," "1,pageno); ++line; } return; } %%; TPRINT is yet another print program, that has three -marginally useful features. You invoke it by:  TPRINT ; And it just prints the file to PRN:. must be Bunambiguous, and cannot be a path. TPRINT always expands tabs Bevery eight columns. All options are single letters (no - or /) and must be separated by spaces. Options are: C 'C' source file; This is the only really useful one, besides T. This Bcauses a formfeed after each C function, to make it easier to Bread C programs. it also counts the wiggly bracket level, and +displays this along the left edge, like so:t {0} main() {{1}e{2} if (nothing) { {2} die();n{2} } otherwise {n{2} if (nothing) {T{3} if (nothing) { {4} die();c{3} }A{2} }{1} }s{0} }e; Adding line numbers makes debugging from compiler error omessages a lot easier. e; NOTE: This makes finding screwed up brackets easier. If Byou see a new page start before the end of a function, you had an ?extra }, if it starts a new page too early, you had an extra {.e T Top of page title.; Puts the name of the file and the page number across the hBtop of each page. 80 columns is assumed, will of course work on wider paper. N Line numbers; Like ancient PIP, numbers each line with a three digit number.  M Add a left Margins; Just causes a tab to be added after any other optional r&rubbish at the left edge of the paper.tMZ Y- PP%333333333v, u3P!Pv44V$^;tv4V#PP_%X"v4VP]13PEPAP#^;tGPP %"v, uv44P1DDPzePP$yuPP$aPP$IPP$1v4VPPx$mcntq; PDDV6"DD^;ukPDD{V^;t 6}V^;t)3V6,^;t u PDD|6 P#6 P# PP#PP#PP#PPq# PPc#0PPU#N ]FP66 PO#6FP@#:V6^;} PDD u6TP6" u PDDW6 P"6FP"36/$6FP" 1]Ë] u%6sPP[P6A" 6]Ë]ËGtw VU v2F%1FF0CP3PPP!FV^ t؃]^Ëܸ1GVUF tFuv~vv~~D+EtyEȻYKKyً3x CC%CCE y3CC1W^~FuF]^^XZ^X33SS^XZ^X3SS y ؃πRP0CPSVWW^3؎W_E %E%] VW_^D %  DEËE E E E uE6E tm ]]]]E ueUUU )]WUFtF uv~LvvFv~=3SSSSSS00SwTADATADATADATADATADATA_] . t.] .]CCsCCtڋF-0@FFދF3FF܋'~]_" " " " WUF uv~FuFFF F~ vo[Y3PPPPQS vZ5Qv~;rwNNOOv~FFGGvFFYċF-?)FF1F~Iv~%]_ ܊o w y2y:}ĹW9Wu KK$t w$t$t2 ܉G_ttt4^XZ[YU]MQSRP_D3۹%uPPP8PRS3PD%-?=#=|)D-8yT\D 3E_Xˎ& A.2 UWFVv~ u y ؃ y ރS 3SN;w r;w+@N^Yt tu t؃FV _]UF fF FfF FfFV ] v Ìҡ+=vྀ +ڋ>>9&s 3  !UF t5x t/PV±$'@'NuӴ !9nvnX ^3^.U+;&v^.PF^;r PvX^P ^ƉƋ4F uF]øuP PPK]3FFXvR~ZX uv;m~@3F辇!vX u3]ËF=|3]ËF udF=FP/~v, uFvv! Pv~-X u Fv, ukPvYFP63X;v5X u5FP6}XF'PvYP@vX u Fv, ukPvYFP6}Xv9X u5FP63XzFrxPvY+PvIX u# PF/H5v,3Pm~vFvFv4X@PvXvv^ PvjX uPvAX u3PvVPvYF uvn~sv\vbF]Ë]dF F6v0X u"vQ~$vƸ-F=|tvƸ0vƸ.vvYF=|vvY+3F3Vv^;|vƸ0rv~FF0PvXYvvMe~Ov, uF uvƸ.v, uIv<FF0PvXv)vN~v3VF+F ^ t3]Ë]v u%Pv^;tF-Pv4^;ƸtHF u vvF0PF^;u F*Pv^;tv 4XFvF3FvP6DD u-0PvƊX+V PvX^^ƉF.Pv^;ƸtHF uv*Pv^;tv 4XFvF3FvPDD u-0PvƊX+V PvX^^ƉF3FlPvP!DD^;ƸtHF u vvPF uFF Fv~FF 3PvV!F޸gPv^;tF=|F=PF^PvVPvދYvP\Pv*P\^ƉF܍v܋ƸEF=|v܋Ƹ-F؉Fv܋Ƹ+v޸Pv \Pi DDF썆\FF uFF Fv~FF 3PvVF޸PvދF^^PvVPvދYvFށP\Pv+P\^ƉFܸgPv^;t=0Pv܁,4^;t v3.Pv܊^;tv3\PpDDF썆\FFF9FF*F FFF FFދF u)F Fvt4vXZTFF EF=|v 4XRPvXZTv 4X3RPvXZTvލ\Pvt4F u2\F3RPvt4XZ^_;u;r v܁vHDDFF uPvXVF^;rbPF^PPvX^PPvX^PF^Ɓ^+Pva0PPF^+FPv&PF^ƉFPF^PPvX^PPvX^PF^^+ƁPPvX^PPvX^PF^^+PPF+F^PvX.\FvBDDFv 4XFv#DDFF uF;FrFF3Ftv FܸF3FZFFܸF3FFCcsdDxXuUoObBfegizog\TIA6.3F uF;FwF u-Pv܊^;t 000SRSPF^;t,Pv4vvЃv,v,vVv,^;wPvVvvЃF;FwvvY+3FvvvvЃF uF u(v, uPvVvvЃvPv4vvЃ]4vF̍v4^Fv4,X u? Pv̊^;t Pv̊^;t PvXv́4XPvXF҉FЉF΍vF̸FPv4^^ƉFv4,X uv̊ u<Pv̊^;t F́F<>Pv̊^;t F́FFPv4^VF^ƉXF=}P P P/v̊ uv́4Xv,4Xv́4X+F̸>PvЊ^;tvЁ4XF̸PPv ^;uPvv ^;uPPv ^;uP P PnPFԉXFPvP ]FFF=|,vV ^ƉƋ4 u v4XF=tPPFF uPv4X5^#PvtXPv^;:PFƊ^;tGFF=|6FF=|AvVPvX^P^ƉƉ^ƉƊPvVF^ƉƊP^;t v4XF=t*PF^#PPvX^P^ƉƊD^;tPvtY PvX^P^ƉƊDPvXPPvtX^#^;t3Pv4^;tPvtX PvtX PvtX v4XPvtX5^# utvPvX uF uv4VPPv4VFP{^;PYPvtXvtPvtX uPvtvtVFPvV ^ƉXPvtX5^# u F u:v4ttvtXZTPZPvtX^# uvttXZ uPYRPvttXZ^_##RFZF u PYFPvXRPvttXZ^_+Y8RPv4t!XZTPZvtVPv4V!P FF;F|1PvVvt^ƉƊ^;t v4XF+FRPvtTY[ӉTF]ËF u#v4 u v4Vv]Ë]PvtX^# uPvtX^# uPv4^;tuvtvtV P  PPvt Pvt^Pvt Xvt XPvtX pv4VDDPvtXPvtX^# u Pvt^;tvt vt  vt ]øRPvtt XZY["RFZ3FFF=|vttPvX^RPvtt XZ^_^_;u;rPvX^Pvt^PPFF3RPv4t!XZTPZv4V!PFF=t-3PPPvX^Pvt^P3F F=t3F F u vF u@PvtY PvX^Pvt Xvtt vttXZ^_+RPvt X^_;u;w&vtt vttXZ^_+RPvt XZ]- PvtX^# ugvtvt X^;|Pvt vt^ƉXvt XRPvtt XZ^_RPvttXZ^_;u;r.vt XRPvtt XZ^_RPvtXZTPZFvt PYPvX^^;|PYPvX^Pvt^PPvXRPPvtt XZYa^_RPv4t!XZTPZv4V"PA u@PvtY v4XIPvtY#]UfV!]vvX^Fve F uPvvPF]Ë]]PF^P u]vPFPvtX5^# u v4Vvt u vtVvPPvX^P ^ƉX]Ë]FF=|0vV ^ƉƋ4 u v,v4Xv,]lPF^+PvDDFPvtX^# u PvtX^# uvDD3RPvttXZRPv4tXZT^_## uPvtX^# uv4tt4TXZVv4VP ^;@PvtY @PvtX^# uP3PX]Ë]kFPPvVPF^+Pn ^;uFF]Ë]+FFFv uv4^PdFF uFPvY F uFF uFPvY awrb _FPRPFFPvFF=u F=t3PFFPvFVF=tF=uPRPvaF=u F]ø]00SwTADATADATADATADATADATA]vVvFP4P]Ë]PPvVPF^+P ^;uFF]Ë]`PvY+v4VF^;uP PPDD6)Fv4 uvVv4^;rFFƋ4Fv4VvXFPvXPvtX^PvXVF^;t+PvtX^PvtYv4VvX FFFFv4FPvtX^PvXVF^;t(PvtX^PvtYv4VvX6464^X+VPvtX^PF^Ɓ^;t#PvtX^P6Y+3PvX]FP0^;ƸvH uH uP9PF^;ƸvH uHPX]Ë]vDDFPvtX^# u 3ҋ]øPvtY#F Pvt XRPvvvtt XZ^_^_׉VFvvXZVFvt XRPvtt XZ^_RPvttXZ^_;u;r*vt XRPvtt XZ^_RPvtXZTvvvttXZ^_׉VF3ҋ]aNvt X u$vtt vvXZ^_;u;r9vt XRPvtt XZ^_RPvvXZ^_;u;sR PvtX^# uvDDRPvvXZ^_##RPvt XZTvt 3vDDvtt vvXZ^_+RPvt XZvt vt X^;vt vt XvvXZ]Ë]9*FP!PF^ƉFXF =|RPvvXZ^_;u;r FvvXZ؃VFRPv XRPvvVXZ؃RPݍ^YƉƊPv,4^XF ؙRPFu5XZU ujvvXZVF3RPv X3RPvvgݍ^YƉƊPv,4^Xv X3RPFu5XZU uF u-Pv,4^XP!PF^+F^ t3FFPvvF]Ë]P%PF u:PFƊ^;tIvPrFF=A}F=P~F@PvXgPvY P PvtVvVPvtVF uvVPvt V( uF]vc]Ë]v4Fv udv4^PFF=.t:F=!|]ËF uv,4XFPv4^XFPvX]Ë] PPF^^#ƉF6)Fv4F uvVvtX^;sPF^PvtX^;sMPvX^PF^ƁFv4VvXPvtX+F^+PvtXFPvX vtXFv4VvX FFSF uPF^PF u%FPvtXFPvXPvYF]Ë]U؎v~N;rNO]vDDFPvtX^# uP PPDD3FvVvX^;r3VvDDF^;|vƋFvPvtX^# uF=tvt Xv,nF= tR3VvDDF^;|JF= tv 0vtFPvtY F= t@PvtX^# uPFPX]Ë]ٸPvtX^# uPvtY#vD]Ëvt vt X^;} PvtX^# uvDDPvtX^# uOvtvt X^;t*vtXRPvt TY[ӉTvt 3vt X uvt 3vDDvt vt X^;}]Ëvt PvtX]Ë]o64v2X+VF^;s3]Í6464X^+ƉFv6YF]Ë]U؎~NF]vv4VvPvX^PvYPv4X]׍vVvvV2P݃]Ë]FFv4^Pv4^X uF]Ë]pv4XFv4^ uPF+F^ t3]Ë]'׊FPA^;~ ZPF^;~ PvYF]Ë]֊FPa^;~ zPF^;~PvYF]Ë]vփFPvtX^# uP PP/փPvtX^# uwFvVvX^;r^ Pv^;tPvtX^# u Pv4Vkv4^Pv4VQv4XFvVvX^;rX Pv^;tPvtX^# u v Ptvv4^P]v4Xvt vt X^;vt vt X@PvtX^# uPFPX]Ë]'Ջvtvt X^;}Ovtvt XvvtXRPvt TY[ӉTPvt XPvt Xvt X uPvtX5^# u3Pvt Xvwvt X u Pvt X PvtY FPvt 4vt^ƉX] File Print Utility 6 Nov. 82 rPRINT: Can't find file '%s'. PRNwPRINT: Can't open LST device -Page head00STUers -Line numbers -'C' source -Left margin Illegal option: '%s' You must specify a file, followed by any options T Top of page headers N Line numbers C C source M Left margin Example: PRINT N C T M%3d: File: %-12s%58sPage %d BAD FILE$%03dcon: TOO MANY ARGS$warw REDIRECTION ERROR$cFREE$READ$WRITE$P NO CORE$ $$@Y@@חA7yACnF?O8M30HwZ?sOu?{Gz?-C6?:0yE>ؗҜ<2#I9 /* * \usr\decusc\lib\wild.c * * This module provides wilcard file manipulation through * the following functions: * * FILE *fwild (char *pattern, char *access) * FILE *fnext (FILE *stream) * char *fgetname (FILE *stream) */ extern FILE *fopen (); extern unsigned char *dos_error (); #define DOS_ERROR(n) { fputs (dos_error (n), stderr); exit (); } #define DOS(n) { srv.ax = n << 8;\ status = sysint (0x21, &srv, &rrv);\ if (status & 1) DOS_ERROR (rrv.ax); }; /* These lengths all include the trailing null */ #define MAX_FILENAME_LENGTH 9 #define MAX_FILETYPE_LENGTH 4 #define MAX_PREFIX_LENGTH 64 #define MAX_FILESPEC_LENGTH (MAX_PREFIX_LENGTH + \ MAX_FILENAME_LENGTH + \ MAX_FILETYPE_LENGTH + 1) #define MAX_WILD_CHANNELS 4 static unsigned int status; struct regval {int ax, bx, cx, dx, si, di, ds, es;}; struct segval {int scs, sss, sds, ses;}; static struct regval srv, rrv; static struct segval seg; static struct { unsigned char reserved[21]; unsigned char attr; unsigned time; unsigned date; unsigned size_l; unsigned size_h; unsigned char pname[13]; } find_buf; static struct wild_file { unsigned char pattern[MAX_FILESPEC_LENGTH]; unsigned char name[MAX_FILESPEC_LENGTH]; unsigned char prefix[MAX_PREFIX_LENGTH]; unsigned char access[4]; unsigned int first_flag; FILE *stream; } files[MAX_WILD_CHANNELS] = { 00UwTADATADATADATADATADATA {"", "", "", 0, NULL}, /* MAX_WILD_CHANNELS = 4 */ {"", "", "", 0, NULL}, {"", "", "", 0, NULL}, {"", "", "", 0, NULL} }; FILE *fwild (pattern, access) unsigned char *pattern, *access; { unsigned int i, findex; FILE *fd; struct wild_file *wfile; char c, *sp, *terminator; if (strlen (pattern) >= MAX_FILESPEC_LENGTH) error ("fwild called with filespec too long"); if (strlen (access) > 3) error ("fwild called with access string too long"); wfile = NULL; for (findex = 0; findex < MAX_WILD_CHANNELS; findex++) if (files[findex].stream == NULL) { wfile = &files[findex]; break; }; if (wfile == NULL) error ("fwild out of channels"); sp = pattern; terminator = NULL; while (c = *sp++) if (c == ':' || c == '\\' || c == '/') terminator = sp; /* find last prefix terminator if one exists */ if (terminator == NULL) wfile->prefix[0] = 0; else { /* copy drive and directory */ i = 0; for (sp = pattern; sp != terminator; sp++) wfile->prefix[i++] = *sp; wfile->prefix[i] = 0; }; segread (&seg); srv.ds = seg.sds; srv.dx = &find_buf; /* set DMA to GNJFN block */ srv.ax = 0x1A00; sysint (0x21, &srv, &rrv); srv.dx = pattern; /* pathname */ srv.cx = 0; /* attributes */ srv.ax = 0x4E00; /* GTJFN */ status = sysint (0x21, &srv, &rrv); if (status & 1) if (rrv.ax == 18) { wfile->stream = NULL; return (NULL); } else DOS_ERROR (rrv.ax); strcpy (wfile->pattern, pattern); /* copy pattern */ strcpy (wfile->name, wfile->prefix); strcat (wfile->name, find_buf.pname); /* copy first name */ strcpy (wfile->access, access); /* copy access string */ if ((fd = fopen (wfile->name, access)) == NULL) { wfile->stream = NULL; return (NULL); }; wfile->stream = fd; wfile->first_flag = 1; return (fd); } FILE *fnext (stream) FILE *stream; { unsigned int findex; FILE *fd; struct wild_file *wfile; wfile = NULL; for (findex = 0; findex < MAX_WILD_CHANNELS; findex++) if (files[findex].stream == stream) { wfile = &files[findex]; break; }; if (wfile == NULL) error ("fnext called for invalid stream"); if (wfile->first_flag) { wfile->first_flag = 0; return (wfile->stream); }; if (fclose (wfile->stream) != NULL) error ("implicit fclose failed in fnext"); srv.ax = 0x4F00; /* GNJFN */ status = sysint (0x21, &srv, &rrv); if (status & 1) if (rrv.ax != 18) DOS_ERROR (rrv.ax) else { wfile->stream = NULL; return (NULL); }; strcpy (wfile->name, wfile->prefix); strcat (wfile->name, find_buf.pname); if ((fd = fopen (wfile->name, wfile->access)) == NULL) { wfile->stream = NULL; return (NULL); }; wfile->stream = fd; return (fd); } fgetname (stream, name) FILE *stream; unsigned char *name; { unsigned int findex; struct wild_file *wfile; wfile = NULL; for (findex = 0; findex < MAX_WILD_CHANNELS; findex++) if (files[findex].stream == stream) { wfile = &files[findex]; break; }; if (wfile == NULL) error ("fgetname called for invalid stream"); strcpy (name, wfile->name); } fclean (stream) FILE *stream; { unsigned int findex; struct wild_file *wfile; if (stream == NULL) return; wfile = NULL; for (findex = 0; findex < MAX_WILD_CHANNELS; findex++) if (files[findex].stream == stream) { wfile = &files[findex]; break; }; if (wfile == NULL) error ("fclean calHled for invalid stream"); fclose (stream); wfile->stream = NULL; } 00WU RSX SIG Fall 1986 Tape Collected README files#+++++++++++++++++++++++++++++++++++#+++++++++++++++++++++++++++++++++++#+++++++++++++++++++++++++++++++++++ =========> [200,006]README.DOC D This diskette contains five tasks.APFEL1 ... APFEL4 are for F experimental purposes only.In APFELM all functions tried up to now are included.G The tasks and all subroutines needed are written in FORTRAN_77.E They work well with P/OS V2.0A,later releases are supposed to/ function too.All sources are included. I To start any of the tasks you must first install the CORE graphicG cluster-library and,if you intend to use the playback facility,I install the file-read-task (CGLGRT).All preliminary action needed@ you can find in the indirect command-file APFELMRUN.CMD.@ A typical set of start-parameters for the task APFELM is) X = -2.0) Y = -2.0( Window = 5.0' Iterations = 50& Resolution = 5F When you use the Graphic-Microscope the cursor position is theG origin of a new picture.You can change the origin with the fourE Cursor-Keys and select a specific origin with the Select-Key.F To continue with a new frame you have to press the Resume-Key.H When you intent to save a picture on disk be sure to have enoughB space.The disk-space used for GIDIS-Metafiles is enormous. < Aachen,December 19856 R.J.Wilden#+++++++++++++++++++++++++++++++++++#+++++++++++++++++++++++++++++++++++#+++++++++++++++++++++++++++++++++++ =========> [200,007]README.1ST0 Regis to HPGL Conversion Program0 --------------------------------AThis disk contains the sources and other information to construct>this program. The files and their functions are listed below: [301,30]! README.1ST This file; ABSTRCT.TXT Program description for publication; ERROR.FTN Routines to generate error messages9 GETCDS.FTN Routine to prompt for a file name: QIOSYM.FTN Routine to read error message file: RHP.FTN Main program and other subroutines- GCML.MAC Fortran callable GCML7 LENGTH.MAC Routine to get length of stringD POS.MAC Routine to find position of string in string( RHP.TSK Compiled program9 RHP.CMD Command file to build the program* RHP.DOC User documentation3 TEST.RGS Test file of ReGIS commandsATwo additional DEC-supplied files are required: QIOSYM.MSG, whichAshould be in directory LB:[1,2], and IECIO.FTN (supplied with the@IEC-11 driver), which should be in directory LB:[1,1]. If theseCfiles are in other directories, edit the source files appropriately%(QIOSYM.FTN or RHP.FTN respectively).DThe driving of the plotter is all carried out through the subroutineDIEEE (entry points IEEINI, IEEWRT and IEEEXI) in RHP.FTN. Note thatCan HPIB address of 9 for the computer and 31 (i.e. listen only) for@the plotter are assumed. To change the computer address, changeGparameter COMADR in routine IEEE (in file RHP.FTN). To use a different:interface (e.g. RS232), only this routine need be changed.#+++++++++++++++++++++++++++++++++++#+++++++++++++++++++++++++++++++++++#+++++++++++++++++++++++++++++++++++" =========> [240,003]AAAREADME.1ST&AnalytiCalc for the IBM PC, and clonesF The three directories below contain archived kits of the threeEdisk set of AnalytiCalc for the IBM PC and most other MSDOS machines.HThe files are archived with the ARC utility to conserve space. Since notKall sites may have ARC, it is included here. Just move ARC51.COM to a blank.disk and run it to creat00WwTADATADATADATADATADATAe ARC.EXE and ARC.DOC.E Each archive represents one 360K floppy disk full of softwareE(or a bit more). On the original version, some files were squeezed toEget them to fit. Here, ARC does all squeezing. Thus you may need moreCthan one disk for the unsqueezed files. Note also that the VMSSWEEPGprogram (elsewhere in this submission) allows you to look at or extractKfiles from archives while in VMS. You should get the complete distribution.DEven though you will not need both the 256K and the 320K versions ofGANALY.EXE, each archive has unique items which are not present on otherIarchives, and each has something important besides the ANALY.EXE files in$the first and third. Don't skip any!A Note that the PC-RIM DBMS has been added here. The archives have@all docs, sources, and the .EXE for 512K or more MSDOS machines. Enjoy! Glenn Everhart#+++++++++++++++++++++++++++++++++++#+++++++++++++++++++++++++++++++++++#+++++++++++++++++++++++++++++++++++ =========> [240,004]README.1STAThis area contains a number of mainly MSDOS utilities, almost all@written in C. They come from some Decus Europe distributions and<may be of some interest for those with Decus C to translate.#+++++++++++++++++++++++++++++++++++#+++++++++++++++++++++++++++++++++++#+++++++++++++++++++++++++++++++++++ =========> [300,021]README.1ST< Note: IAS version is in [330,21]. This directory is the RSX version.  + RSX BASIC - MICHAEL REESE VERSION F AUTHORS: L. Simpson, F. Borger, Michael Reese Medical Center, Chicago, IL C Operating IAS, RSX-11D, RSX-11M, VMS (compatibility mode) $ Source Language: MACRO-11 F Special hardware: Floating point processor or FPP emulator (supplied.) ' Keywords: BASIC, Reese Basic F Abstract: Reese Basic is a highly upgraded version of what5 used to be a DECUS library program for DOS. F 1. Full FILES-11 I/O is supported, (fixed length random ac-& cess, shared mode, etc.) F 2. String functions and user defined functions are muchF more flexible than in either the original version or in DEC's BASIC-11.F 3. Multi-user implementation is supported with separate= pure and impure areas. (IAS and RSX-11D only.)F 4. Since it is an interpreter, it includes the special de-9 bugging commands: STEP, CON and SET TRACE. F 5. Although an interpreter, significant manipulation of the; source program is done to speed up operation. E 6. OVERLAY and a data preserving CHAIN are also supported.F 7. A clean "break" feature is implemented via the TT handler. F 8. a number of BASIC+2-like features have been added in-F cluding: virtual arrays, integer and byte variables,/ continued lines and IF-THEN-ELSE. C 9. The capability of Spawning another task is supported.  B MEDIA: 1200' Magtape, 1600BPI, FORMAT: BRU, VMS Backup From: Frank R. Borger To: Basic UsersK Subject: Summary of changes to Michael Reese Basic August 1985   K The following changes have been made to make basic work nicely with lower case input: K This version of basic automatically converts all lower case char-K acters to upper case, thus Program source may be in lower case.K saving a program via the "save" command will result in an allK upper case version. Case conversion does not take place under# the following conditions:E 1. During string input via a regular "INPUT" command. ' 2. During "INPUT LINE". K 3. On source text enclosed in quotes. (This includes promptG 00WU strings and variables, which now may be lower case.) 5 4. On source text in a comment field.L Note that string comparisons are still case sensitive. To enable K input of commands, etc. in lower case a new SET command has beenK added, SET UPPER ON/OFF. The following is an enhanced (and cor-1 rected) description of the SET command. ; 3.14 SET PROMPT/TRACE/PASS-ALL/ECHO/UPPER ON/OFF K This statement is used to set or clear a number of system condi-K tions. The number of conditions is likely to increase in the fu-K ture as functionality is added. Conditions now serviced include: ! TRACE: Default is OFF.K SET TRACE is equivalent to the TRACE verb and should be used inK preference to it because the TRACE verb is expected to disappear1 in future releases of this interpreter. # PROMPT: Default is ON. K The PROMPT condition is used to turn the INPUT and INPUT LINEK question mark prompt on or off. The OFF mode is designed forK special screen or page formatting and may be used in conjunction! with the BREAK command. ! UPPER: Default is OFF.K Causes string variables read with an "INPUT" statement to be con-K verted to upper case. Useful for command parsers, specifying file names, etc.* PASS-ALL-INPUT: Default is OFF.K Causes reads to be done with TF.RAL set. Note that ctrl-C,K ctrl-O, ctrl-Q, ctrl-S and ctrl-X will have their usual effectK from a terminal, unless the terminal is set to be BINARY. Turned! OFF when program STOPS. * PASS-ALL-PRINT: Default is OFF.K Causes writes to be done with TF.WAL set. Note that no carriageK control characters will be added to any output. Turned OFF whenK program STOPS. ,fg 1 ECHO: Default is ON. If turned off,K causes terminal reads to be done with TF.RNE. No input will be1 echoed. Turned OFF when program STOPS. Example:! 210 SET PROMPT OFF 220 SET TRACE ONK The following change has been made to the INPUT command. (Previo-K usly the INPUT command rejected lower case ascii data, and only7 the INPUT LINE command could read lower case. " INPUT V1,V2,V3 etc.K Where N is an optional file number and V1, V2, V3 etc. are legalK string or numeric variable names. The second form follows theK rules for random access described for the PRINT statement.K Numeric data must be separated by commas or spaces, successiveK string variables must be separated by a comma after the requiredK number of characters have been typed in. A character legalityK check is performed to ensure that all characters are between oc-K tal ASCII codes 40 and 137 inclusive and 11 (tab). If a "SETK UPPER ON" command has been issued, lower case ascii will be con- verted to upper case. K Under RSX, BAS cannot spawn itself, making life a little harder.K You can get around this by installing separate versions as ...BA1 ...BA2 etc.K Under VMS, BAS can spawn anything that has a 3-character .EXE: file in the standard system account, SYS$SYSTEM. K The RSX11M and P/OS versions now have imbedded error messages. NoK more looking in the back of the manual. The only thing they don't. do is report the FCS error code too.K P/OS users should be aware of the conditional assembly in BASPREK which prevents the error 28. error on starting up. (This essenti-K ally omits the initial GMCR$ call which was commented out on theK version that00WwTADATADATADATADATADATA seems to be floating around on a lot of bulletin bo- ards.)K I tried to go thru both the IAS and RSX11M versions to get rid ofK obsolete and confusing command files. In general both now haveK been cleaned up. (Anything that was in [1,203] on any earlier ver9 sions of this package are now in the VMS part.)#+++++++++++++++++++++++++++++++++++#+++++++++++++++++++++++++++++++++++#+++++++++++++++++++++++++++++++++++" =========> [302,100]AAAREADME.DOC AAAREADME.DOC& SCRIPTThe directories contains: SCRIPT.FTN Source SCRIPT.OBJ Object" SCRIPT.TSK Executable< SCRNOLIB.TSK Executable without resident FCS lib.( SCRIPT.TXT Reference Manual" SCRIPT.HLP Help Files> SCRIPT.CMD Command file to compile and TKB Script8 SCRBLD.TKB TKB command file called by aboveN SCR.TKB TKB command file called by above, uses another library scheme+ SCRIPT.DOC Notes on RSX ScriptF PASS.FTN A small program, to implement the PASSWORD andJ PRIVILEGE functions in SCRIPT. Not meant to saveJ the world, it was written to check the concept andK hooks out. If you replace this with something moreG formidable and/or friendlier, you are more thanK welcome. Note: This function was never used here,K the source only was found in a two year-old backup.) PASS.OBJ Compiled PASS.FTN' PASS.TSK TKB'ed PASS.FTNA PASS.DOC As much info as is on-hand about PASS.FTNN *.SCR Two directories that contains sample systems and misc.2 other scripts as examples.#+++++++++++++++++++++++++++++++++++#+++++++++++++++++++++++++++++++++++#+++++++++++++++++++++++++++++++++++ =========> [304,340]README.DOC King James BIBLE online> This area contains the entire King James version of the BibleEonline. All known typos have been fixed, though the text is still all upper case.- MINIMUM REQUIREMENTS- =====================;1) 5 MEG OF DISK [ FLOPPY ONLY SYSTEMS DON'T MAKE SENCE ]L2) BASIC [ ALL THE SOURCES ARE IN BASIC 11 -THE MIN. COM. DENOM.-]K___________________________________________________________________________; QUICK AND DIRTY UP & RUNNING; ===================================F1) COPY BIBLE.BIB,BIBLE.I,BIBLE.R,BIBCV.BAS,SEARCH.BAS FROM TAPE....@2) START UP BASIC AND RUN BIBCV TO PRINT CHAPTER AND VERSE@ OR SEARCH TO FIND ALL STRING MATCHESJ__________________________________________________________________________; DISKETTE ONLY OR NONE TAPE SYSTEMS; ===================================/1) COPY 66 FILES NAMED BOOK??.BIB TO YOUR DISKD2) COPY MKNBRK.BAS,BIBLE.I,BIBLE.R,BIBCV.BAS,SEARCH.BAS TO YOUR DISK@3) RUN MKNBRK.BAS ( THIS WILL MAKE BIBLE.BIB FROM BOOK??.BIB )J NOTE: YOU CAN ERASE BOOK??.BIB AT THIS POINT IF YOU NEED SPACE@4) START UP BASIC AND RUN BIBCV TO PRINT CHAPTER AND VERSE@ OR SEARCH TO FIND ALL STRING MATCHES#+++++++++++++++++++++++++++++++++++#+++++++++++++++++++++++++++++++++++#+++++++++++++++++++++++++++++++++++" =========> [312,371]AAAREADME.1ST;This is the AnalytiCalc main source area for VAX and PDP11.@The AAINSTALL.COM file will build the VAX version and set things=up for you. For PDP11, have a look at the README.1ST file for;build instructions. Basically you edit either PCCPDP.COM or=PCCPRON.COM to compile and follow instructions in comments in9those files to get a working task image. The VMS build in>AAINSTALL.COM is a skeleto00WUn to use and you should look it over0to see that directories are named as it assumes.> Task images are in another directory on this tape for PRO 3xxand PDP-11 RSX.+; This directory is named either [003205] or [PCCUNV]s7on various distributions. Document files are in another?directory named either [003005] or [PCCVDOC] depending on whereu&you get your AnalytiCalc distribution.@ On the RSX SIG tapes this directory is [312,371] and the document directory is [312,345].B It is hoped that the AAINSTALL.COM file will be helpful to)VMS sites trying to bring up AnalytiCalc. ! Glenn C. Everharte#+++++++++++++++++++++++++++++++++++f#+++++++++++++++++++++++++++++++++++i#+++++++++++++++++++++++++++++++++++a" =========> [321,100]AAAREADME.1ST6 This directory has the submission from for theFall 86 RSX SIG tape. File Descriptiont---- -----------CTTDAT.SLP Patch to M+ v3.0 to provide I/D space on Qbus DH-11  clones. TTYH.SLP Same as above;PROTREE.86A RSX SIG Other media working group tape tree <PRO.86A RSX SIG Other media working group users listC The patches to the YH driver were used at our site to allowhGan EMMULEX CS01 to be used on an 11/73 sysgened with I/D space support. JThe existing gen procedure provided by Emmulex required the sysgen be donewith no I/D space support.G To use the patches apply them to the sysgen kit before starting Jsysgen, then proceed with the Emmulex instructions except choose I/D spaceJsupport in Executive configuration. This patch also allows terminals to beset to 19200 baud.N The other media working group has started the spring 86 tapes down theMtree. Our working group is made of volunteers that will convert the SIG tapes0Jto other media including but not limited to RX50, RL02, TK50, 800BPI TAPE,Land 6250BPI TAPE. For more information contact me on how to volunteer or how"to obtain something off the tapes. Bob UleskiBaker Instruments Corp.o100 Cascade Drive:Allentown, PA 18103(215) 264-2800 (work)(215) 395-9018 (home)#+++++++++++++++++++++++++++++++++++o#+++++++++++++++++++++++++++++++++++t#+++++++++++++++++++++++++++++++++++  =========> [330,100]README.1STo iP This is an anotated copy of the command file used to generate theP Reese's Pieces BRU tape. Be advised that documentation is all over, and= not congregated except into help files and dp1:[1,10]s< Note: See the RSX86BTPE.DOC file for the correlation of the7 PIECE1, PIECE2, etc., backup set areas to UICs on this  distribution. ;n ; 1 ; piece 1, general utility programsi ; & /REW/DIS/MOUNTED/BACKUP:PIECE1G dr3:[1,10]*.*;*,[1,12]*.*;*,[1,16]*.*;*,[1,22]*.*;*,[1,25]*.*;* MM:n5 1,10 Lots of programs, a catchall account.; 1,12 The INForm package, updated for version 3.2eA 1,16 DUPLEX and XMIT, updated for IAS (term emulators)tK 1,22 BRU and DSC tape directory pgms, unknown tape listers, tape L copy programs, our on-line ROLLIN image mode disk save pgms.K 1,25 COOKIE, DAMMIT, HEADACHE, MURPHY and MAY, smart remark pgms( ; 6 ; piece 2, more general utility programs ;s& /APP/DIS/MOUNTED/BACKUP:PIECE2G dr3:[1,26]*.*;*,[1,30]*.*;*,[1,31]*.*;*,[1,32]*.*;*,[1,40]*.*;*t MM:eM 1,26 Programs to list the external page, software used to generate+@ bootstrap roms for non standard device addressesN 1,30 Programs to help you patch disks, examine FCS file structures,L show disk activity, recover lost files, show file attributes6 1,31 Screen based clock, and system displayM 1,32 An RSX mail program, updated to run on IAS, (Uses Reese styleeA login info, but could be adopted to regular IAS.)4 1,40 Program 00WwTADATADATADATADATADATAto list current FCB's in use ;cN ; MRH HELP, help modified to use multiple help files, instead ofK ; one humongous file, so its faster For a command of AID ZAP,eI ; help first tries to use ZAP.HLP, then defaults to MCR.HLPf ;a$ /APP/DIS/MOUNTED/BACKUP:HELP dr3:[1,2]*.*;* MM:o ; H ; Much of the documentation for packages in Reese's Pieces% ; resides on dp1:[1,10]n ;e$ /APP/DIS/MOUNTED/BACKUP:DOCS dp1:[1,10]*.*;*q MM:h ;eN ; errors, aids to process error logging reports, and some simple' ; on-line diagnostic aidsi ;t& /APP/DIS/MOUNTED/BACKUP:ERRORS dr3:[1,6]*.*;* MM:r ;e< ; mrhlogin, reese mcr login package, DCL style ;rP PAGE 2P  e o( /APP/DIS/MOUNTED/BACKUP:MRHLOGIN dr3:[11,13]*.*;* MM:rL [11,13] Contains the sources to HEL, BYE, etc that were developed toM let an MCR based system use the protection features of a PDX+K system. Passwords, etc are in the user profile file, with a L modified version of the protection code. Also has same loginI for batch. (Modified task image of pdx is included.) Also K includes a catachall task that does some one-line DCL style * commands, (DIR,PRINT,etc.) ;1) /APP/DIS/MOUNTED/BACKUP:MRHLOGIN1P dp1:[1,100]*.sys;*,[1,100]*.bas;*,[1,100]autostart.dat,[1,100]pdsupf.vir MM: ;lI *.sys Reese basic programs used to update the user profile file; *.bas Programs to aid in logging, accounting etc.sD pdsupf.vir a virgin file, with only SYSTEM and SCITERMINALB autstart.dat command file for autostarting selected users.M Note that we still use an older format of the PDSUPF.DAT fileo ; @ ; vtlvdiecr, screen lister, directory, editing mcrH ; some great 11m Programs by Robin Miller, updated for IAS ; ) /APP/DIS/MOUNTED/BACKUP:VTLVDIECRi dr3:[351,*]*.*;* MM:p ; H 351,70 Contains VTL, a VT100 terminal listing program, commands@ like KED, options for viewing 2 files, lots moreH 351,72 VAX style directory command, short version with multipleG entries per line, full version with all file attributeseJ 351,73 ECR, Editing MCR. MCR with command line editing, much more#+++++++++++++++++++++++++++++++++++ #+++++++++++++++++++++++++++++++++++T#+++++++++++++++++++++++++++++++++++  =========> [330,107]READ.XMTfE*********************************************************************sE* *EE* README.XMT XMITR PROGRAM *sE* *BE* If you have any problems with or questions about XMT *iE* please contact: *cE* *aE* Michael D. Lampi * E* McDonnell Douglas Corporation *rE* mail location 35-44 *eE* 3855 Lakewood Blvd. *tE* Long Beach, Cal. 90846 *nE* telephone (213) 593 - 2029 * E* * E*********************************************************************xAXMTBLD.CMD Command file to assemble & task buil00WUd XMTn ABREAK.FTN ASCII8.FTN BREAK.FTNw CLSFIL.FTN COPYMD.FTN CTLCHR.FTN CTLSUB.FTN DELAY.FTNeECHO.FTN ENQUE.FTN FORMAT.FTNHELP.FTN INPFIL.FTN OPNGET.FTN OPNPUT.FTN OUTFIL.FTN PROMPT.FTN READST.FTN REDEF.FTNn SETUP.FTN STATUS.FTN STOPIT.FTN XMITR.FTN HGETSQ.MAC (Just as written in the FORTRAN-IV User's Guide)ICNT.MACB The following MACRO-11 subroutines may have to be tailored1 to correspond to your respective systems.h ITTOUR.MAC TTYOUT.MAC TWAIT.MACaI This version of XMT has been modified by Glenn Everhart to run oneC IAS and to have lower CPU overhead. Its IAS code is (I hope F fully) conditioned by I$$AS, so it may work on 11M systems tooB (where some considerable effort to reduce its overhead wasD made), but no guarantees. Use the original submission if youB can't get this to work on 11M, or retailor stuff yourself.D All tests were done with the full duplex drivers. In IAS youD must set the terminal you'll communicate over as /FULLDUPLEX4 and as /BINARY yourself, using commands likePDS>>SET /UIC=[1,1]cPDS>>TER TTn:/FULLDUPLEXPDS>>TER TTn:/BINARYPDS>>TER TTn:/WIDTH:132 G to get it set up. That terminal will NOT be logged in in normal D use. XMT will set your terminal fullduplex and binary, so beC prepared to set it back if you have a crash. You'll have toiD experiment with prompted/promptless transmission, duplexing,B and other toggles a bit to get things working most likely.G For a bit more background, this program was originally designedeH to run in an RT-11 environment using DL-11W's for communication.E It was then transported over to RSX-11M 3.1 using DZ-11's and E 212 modems. No loss of information was found at speeds of 300eD baud when talking with ANY system, but PDP-11/70's were ableD to out-talk our poor 11/34 at 1200 baud and cause us to loseC information, but usually only when XMT was checkpointed for C extended lenghts of time. Under RSX-11M v3.2 a few features G were added to the ITTOUR.MAC and INPTT1.MAC subroutines to make B use of a few v3.2 TT: driver features, such as full-duplexA and 8-bit characters. This program has been successful in(A receiving and transmitting at rates up to 4800 baud on ani? 11/34 system (under v3.1) with no data loss. Under v3.2o5 there should be no loss of data at any speed.#+++++++++++++++++++++++++++++++++++r#+++++++++++++++++++++++++++++++++++ #+++++++++++++++++++++++++++++++++++a =========> [330,110]README.DSC[332,100] README.1ST n'THIS ACCOUNT CONTAINS SUBMISSIONS FROM:s e BILL BURTONe4 TEXAS RESEARCH INSTITUTE FOR MENTAL SCIENCES 1300 MOURSUNDi HOUSTON, TEXAS 77030b  (713)-797-1976 EXT 501 THE SUBMISSION CONSISTS OF:e e71. THE FINAL VERSION OF TWO PROGRAMS FOR DOING PARTIALr) RESTORES OF DISKS FROM DSC TAPES.tB THESE PROGRAMS FIRST APPEARED ON THE SPRING 1981 RSX TAPE. FILES:; DSCTAP.TXT DSC TAPE FORMAT DESCRIPTION D DSCDIR.* PROGRAM TO GET DIRECTORY OF DSC TAPE@ DSCCPY.* PROGRAM TO RESTORE A SUBSET OF A1 DSC TAPE TO DISK.e> DSCFTN.FTN FORTRAN SUBROUTINES FOR ABOVE.< DSCMAC.MAC MACRO SUBROUTINES FOR ABOVE. >2. REPRINT AND PATCH FILES FROM THE MARCH, 1982 ISSUE OF THE; UNSUPPORTED (RETIRED) VERSIONS OF RSX WORKING GROUPr mC THESE FILES PATCH THE FLX UTILITY DISTRIBUTED WITH RSX-11M nH VERSIONS 3.0 AND 3.1 TO ALLOW 9-CHARACTER FILE NAME CATALOGS AND SEARCHING. l FILES:C FLX.TXT REPRINT OF THE MULTI-TASKER ARTICLEr .; LIPRC2.M30 PATCH FILES FOR VERSION 3.0t MTFLCK.M30  SETOUT.M30 ; 00WwTADATADATADATADATADATA LIPRC2.M31 PATCH FILES FOR VERSION 3.1  MTFLCK.M31 SETODT.M31#+++++++++++++++++++++++++++++++++++d#+++++++++++++++++++++++++++++++++++n#+++++++++++++++++++++++++++++++++++w =========> [343,036]README.1ST.- FLYINSK FLYINS is a flying install / flying indirect catchall task+K developed at the Mayo Clinic. It incorporates a user settable+K install and indirect device and UFD scheme which allows tailoringK to the individual site. It is also more intelligent than the DEC K TDX catchall in that it tries FSL, RES and thenKA .TSK file names when trying to do flying installs.nK It is the ideal secondary catchall to put behind the KMSKITeK CCL. And, like CCL, it will try to spawn the next catchall in . line if it can't handle the command.K To build it, invoke the build command file: @FLYBLD. EditbK the source file FLYINS.MAC as necessary to reflect your personalr6 preferences for UFD and device search order.6 Direct any suggestions or inquiries to:9 Bruce R. Mitchell < ECG Computer Systems1 2 Plummerh3 Mayo Clinica< Rochester, MN 55902#+++++++++++++++++++++++++++++++++++ #+++++++++++++++++++++++++++++++++++o#+++++++++++++++++++++++++++++++++++  =========> [343,037]README.1ST < POOL Monitoring and Analysis PackageK This is a POOL monitoring and analysis package for the K disk-based series of RSX operating systems. It consists of twotK parts: (1) A privileged, Exec-mapping data acquisition task+K (POOLMN), and (2) an unprivileged Fortran data analysis task= (POOLANAL).O5 POOLMN - POOL MonitorKK This is a POOL monitor, but it's not like the POOL monitor K that comes with RSX. This is a remote descendant of the originalTK POOL enforcer task written by Dale Donchin of the DEC RSXP implementation group.K Dale's original task protects a system from low POOLK conditions. This task, however, is a monitor and not anK enforcer. It scans POOL four times per minute (at the 0, 15, 30 E and 45 second marks) over a 5 minute monitoring period for:.% o Number of POOL fragmentsE: o Size of second largest POOL fragment in words3 o Size of largest POOL fragment in wordsF- o Size of total free POOL in words_* o Number of active tasks in GENK After obtaining this information, it averages the values K taken for each of the above items and writes them to a logging K file in LB:[1,4]. It then resynchronizes to the current time and.? stops until the next monitoring period 0 second mark.RK The monitor logs high and low POOL for the previous hour onOK the system console CO: every hour. This can be disabled byE. editing a conditional in the source.K Two output formats are available for the logging file+K (LB:[1,4]POOLANAL.DAT). The formats are human readable and3K compressed. Human readable is the default. See the source for details.K The task is not abortable by ABRT$ or MCR request. OnceoK started, it runs until the system crashes. If you need to abort K it, PIP /NV, then delete, its output file. It dies at the end of* the current monitoring interval.K The monitor should be sta00WUrted by the startup command file,rK but POOL is often unstable during and shortly after startup. TheeK task waits 5 minutes before beginning scans to allow POOL tooK stabilize. This can be disabled by editing a conditional in thef source.B To build it, invoke the build command file @POOLMN.6 POOLANAL - POOL AnalysisK An analysis task? You want an analysis task, you say? This D is indeed your lucky day. Here is just the thing for you.K POOLANAL reads logging files produced by POOLMN, processes4 and averages them on a weekly basis, and -K o Produces a table of low, high, mean, standard deviation and1K coefficient of variance for each sampled variable on a dailya and overall basis. ? o Notes significant POOL variations by day and time. ; o Pseudoplots POOL availability by day and time. K Output is dumped to a file which is printable on any 132 columne1 line printer with upper and lower case.SD To build it, invoke the build command file @POOLANAL.#+++++++++++++++++++++++++++++++++++#+++++++++++++++++++++++++++++++++++3#+++++++++++++++++++++++++++++++++++h =========> [343,041]README.1ST H This UFD contains Runoff source for the Multi-Tasker from AugustH 1986 to November 1986. Because the target device is a QMS 1200H laser printer, the escape sequences embedded in the source will@ bollix up many other printers. Forewarned is forearmed. Bruce R. Mitchell Editor, The Multi-Tasker- "Fine Realtime Commentary since 1975"e#+++++++++++++++++++++++++++++++++++t#+++++++++++++++++++++++++++++++++++r#+++++++++++++++++++++++++++++++++++X =========> [343,042]README.1ST - EMPIREt6 War Game of the CenturyK Empire is a strategy and tactics war game, you against the2K computer. It is played on a computer generated map containing+K land areas, sea areas, and cities. The object is to eliminate+K the opponent by capturing cities and destroying enemy forces.eK Cities, once captured, have production capability, and cansK produce units such as armies, fighters, destroyers, etc. fore offense or defense. dK Early in the game, exploration is most predominant, followedEK later by planned offensives and holding actions, till eventual  victory or defeat.K Typical games take as long as ten hours, and some peopleDK find the game addictive. The program keeps the game in a disk1K file, as a single game usually takes multiple terminal sessions.tK The .DOC file containing the instructions is correct and6K complete, but is terse and lacks examples. This may causen8 confusion in the first games. Don't sweat it.K This is an RSX11M version of Empire. It has been heavily K modified since the last release to add FCSFSL support (reduced K overlays greatly) and add special video attribute handling. The K damn bug in the piece locator routine is still here, but at least30 it doesn't hang the terminal any more.K EMPIRE uses a PLAS region to handle its variables and is K known to work under M-Plus V2.1 with FPP. It hasn't been checked K out on any other systems. There are apparently some problems K with the non-FSL version now, but I haven't had time to check1 them out.kK This version uses UFD [377,377] to store maps generated whenSK a "new game" is initiated. If you want to change this, go ahead,uK but please leave the or00WwTADATADATADATADATADATAiginal code here if you're going toK resubmit this to a SIG tape - I had to hack the code somewhat tofK get all 6 (group, member) characters in and it makes it so mucheK easier to change the save UFD now (just add leading zeroes if you want some other UFD).TK By all means drop me a line if you have changes or  suggestions. Bruce R. Mitchellc3 Machine Intelligence and Industrial Magice PO Box 816 Byron, MN 55920:#+++++++++++++++++++++++++++++++++++ #+++++++++++++++++++++++++++++++++++o#+++++++++++++++++++++++++++++++++++  =========> [343,120]README.1STa(Fall, 1986 RSX Sig Tape Submissions from Cargill Inc. Research P.O. Box 9300 Minneapolis, Mn. 55440=This area contains four packages which we have found useful. DVirtual Disks: This is a composite of previous VD (and VE) software,B with a few additions. It has worked flawlessly forG us for some time. M+ V2.1 and V3.0 and maybe M as well.*J Virtual disks are especially nice on single disk Micro-PDPC systems. We have put together files that will helpo@ unfamiliar people overcome their hesitancy about putting in VDs.t See README.VD.EClunk Conversion: We pulled a CLUNK time routine from an old article,aC then discovered it told time like a 2 dollar watch! B This is the fixed up version. Any M or M+ version. See README.CLU.c>EFN: Everyone sooner or later writes or borrows an @ event flag manipulator. This is ours. Works from> indirect command file or TI:, can set or clearA ranges of flags with a single command. Does Groupg@ Globals as well as Globals. Any M or M+ version. See README.EFN.SBKEY: Time to put those VT220 programmable keys to work!B This is our program to setup the programmable keysA (shifted function keys) on the VT220 terminals. ? It can do programming on the fly, or do it fromo? commands in an existing setup file. Task imageDC should run on any M or M+ system. Need OMSI Pascal= to recompile sources, but the main source is i? supplied should you wish to do it in some othern* language. See README.KEY.EMost of this is in MACRO, with a bit of FORTRAN and PASCAL thrown in.eBSee individual README files for addresses or tel numbers of peopleCwho can answer questions or receive comments about each submission.+Enjoy. Jim Bostwick Philip Hannay+ Bob Thomas#+++++++++++++++++++++++++++++++++++=#+++++++++++++++++++++++++++++++++++*#+++++++++++++++++++++++++++++++++++*" =========> [351,070]AAAREADME.1ST Program: VTL $ Author: Robin Miller! Date: Fall 1985  Description: I This program is used to list file(s) on a VT100 family terminal. I The file(s) are displayed one screen at a time for easy viewing. I Various commands can be entered to change listing parameters or to I position to a particular portion of the file. Many of the commandsMI are the same as the Digital editor EDT. Commands can be enterednI either by using keys on the VT100 keypad, or by entering commands toaI the prompt at the bottom of the screen. Some of the major featuresd' of the program are outlined below: 6 o CTRL/C detection for aborting searches, etc.* o Delete the file being displayed.4 o Display a ruler along the top of the file.6 o Display the next file or next the directory.7 o Display record numbers along the left margin.*: o Display the file header of file being displayed.) o Prin00WUt the file being displayed.87 o Search (forward only) for a specified string.S1 o Shift the display window left or right.N1 o Split screen mode to display two files.F' o Teco compatible see-all mode.n5 o Write portions of the file being displayed..I The maximum record size that can be displayed is 512 characters.I All commands have a repetition count of one. Relative and indexed  files are not supported.iI The special wildcard characters "* and %" can be used with VTL on I RSX-11M using FCS for I/O instead of RMS. Previously these were only I valid on VMS since a native image was being called to lookup files. I The Digital files ASCR50.MAC and PARSFN.MAC were modifed to alloweI this type of wildcard lookup. Unfortunatly, since they are Digital I source files I can't submit them to the SIG Tape. I hope to submitlI an article on this to the RSX News Letter in the near future. ThesesI modified modules are in the object library (VTL.OLB) and can beLI extracted an used with other programs. Refer to module VTLOPE forIH further information on using these (must save the file name block).E [ File "VTL.DOC" contains full documentation for this program. ]nN------------------------------------------------------------------------------ Fall 1985 DECUS Submission.I This version of VTL has several bug fixes and will now sense the AVOrI setting of the terminal characteristics. Previously, either the /AVOnH qualifier had to be specified, or a taskbuild option changed to letF VTL know the terminal was equiped with the Advanced Video Option.#+++++++++++++++++++++++++++++++++++r#+++++++++++++++++++++++++++++++++++Z#+++++++++++++++++++++++++++++++++++s" =========> [351,072]AAAREADME.1ST! Program: DIRectoryi$ Author: Robin Miller! Date: Fall 1985/ Description:I The DIRECTORY command lists the files contained in a directory. WhenoI you use certain qualifiers with the command, additional information isuI displayed, along with the names of the files. The output of thekI DIRECTORY command depends on certain formatting qualifiers and their I defaults. These qualifiers are: /COLUMNS, /DATE, /FULL, /OWNER,e /PROTECTION, and /SIZE.I In studying the qualifiers and the capabilities they offer, watch forsI qualifiers that override other qualifiers. For example, if you specifyI the /FULL format, the system cannot display all the information in I more than one column. Thus, if you specify both /COLUMNS and /FULL,32 the number of columns you requested is ignored.+ Format: DIRECTORY [file-spec[,...]] $ Additional information available:F ALL BEFORE BRIEF COLUMN CONTROL CREATEDE DATE DETACH EXPIRED FID FILEID FORMATIG FORMFEED FULL GRANDTOTAL HEADING HELP MODIFIED E OUTPUT OWNER PARAMETERS PRINTER PROTECTION REWIND9F REVISED QUALIFIERS SINCE SIZE SPOOL STARTUP. TODAY TOTAL TRAILING VERSION= ******************************************************= * Refer to the help file (DIR.HLP) for descriptions * = * and examples of the above qualifiers. *O= *****************************************************AN------------------------------------------------------------------------------Fall 1985 DECUS Submission.EI This version of DIRectory has several bug fixes and now supports  directorys of ANSI magtapes.1#+++++++++++++++++++++++++++++++++++ #+++++++++++++++++++++++++++++++++++ #+++++++++++++++++++++++++++++++++++" =========> [351,073]AAAREADME.1ST Program: AUXr$ Author: Robin Miller! Date: Fall 1985 Description:I The AUX program allows VT100 auxillary ke00WwTADATADATADATADATADATAy definitions and commandCI line editing ala VAX/VMS V4.x systems. The program also saves the lastTI twenty commands which can then be recalled. In this release of AUX,+I the auxillary keys are statically defined. A "DEFINE KEY" interfaceMF may be added for the next version of AUX if it becomes widely used.I The main AUX documentation is contained in file AUXKEY.PAD. This file I is used by AUX to display help from the program when the PF2 (help) I key or the PF1 (GOLD) PF2 key is pressed. This help file must be - placed in LB:[1,2] for system wide access.tI To start AUX, simply type "AUX" if it is installed, or "RUN AUX". The,I program is not currently setup as a Command Line Interface (CLI). AUXyI will accept input and spawn the command line to your default CLI whenb7 you press the return key. To exit AUX, type CTRL/Z.w0 The following is the control key definitions: Control Keys:A CTRL/A Toggle between overprint and insert mode.d> CTRL/B Skip backward to next character input.7 CTRL/C Delete the entire command line.n6 CTRL/D Delete to end of command line.8 CTRL/E Position to end of command line.= CTRL/F Skip forward to next character input. > CTRL/H (BS) Position to beginning of command line.1 CTRL/J (LF) Delete the previous word. ; CTRL/M (CR) Terminate the current command line. : CTRL/R Recall all previous command lines.7 CTRL/T Display one line status report.+< CTRL/U Delete to beginning of command line.; CTRL/V Display the current version number.n9 CTRL/W Refresh the current command line.n2 CTRL/Z Exit from the AUX program.6 DELETE Delete the previous character.7 !n Recall command line number 'n'.p#+++++++++++++++++++++++++++++++++++P#+++++++++++++++++++++++++++++++++++F#+++++++++++++++++++++++++++++++++++  =========> [351,144]README.1ST A This directory contains two papers that were to be presented i'at the Fall 1986 DECUS U.S. Symposium -e> Introduction to the RSX, P/OS, and RT Indirect Command File  Processor (RX018)T: Programming in the RSX Indirect Command Language (RX019)?Also included are the command files from which the examples in RX019 came.i& The files in this directory include:+ README .1ST;1 2./2. This filew/ RX018 .TXT;1 70./70. Paper - RX018n/ RX019 .TXT;1 66./66. Paper - RX019t2 CRASHDUMP.CMD;1 22./22. CDA Preprocessor6 PPORT .CMD;1 4./4. Printer port handler6 SCRED .CMD;1 16./16. Single screen editor2 SYMDMP .CMD;1 15./15. .STB file dumper. 7. Files selected 7. Files total+ Selected blocks used/allocated: 195./195.e#+++++++++++++++++++++++++++++++++++A#+++++++++++++++++++++++++++++++++++ #+++++++++++++++++++++++++++++++++++e =========> [352,110]README.1STaA This directory contains RENUM, a program which willrA renumber a Fortran program so that all statement labels ineA each compilation unit are numbered in ascending order. ThelA program currently generates labels starting with label 10sA and increasing in steps of 10, but this can be easily / changed by modifying the LOOKUP routine. A If installed, the program will read the name of theA file which is to be renumbered from the command line. If nobA command line is present (e.g., if the task isn't installed,eA but was invoked with a RUN command), the user will besA prompted for a filename. An extension of .FTN (or .FOR ineA the VMS edition) is assumed if no extention is provided. If A a second filename is provided, it will be used as the outputo file name. uA Essentially the same program is provided for use on aa00WUA VAX/VMS system in the files RENUM.FOR and RENCOM.FOR. ThenA only changes required to produce the VMS version were tosA change the call to GETMCR to a call to LIB$GET_FOREIGN, and 8 to change the default filename extension to .FOR. A The RENUM program only calls routines which areeA provided in the RENUM source file or in the standard systemLA library, and no overlays are required even with all compileraA error checking enabled, so no special link commands are re-y quired. A To allow a command line to be passed to the program A when run under RSX, the program must be installed with awA prototype command name such as ...REN. At sites using DCL,eA the name ...RNM would be preferable, since this wouldn'tnA conflict with the DCL RENAME command. To do this, an IN-b STALL command such as g! INS $RENUM/TASK=...RNM i; should be placed in the system startup command file. eA To allow a command line to be passed to the program A when run under VMS, the program must be invoked as a foreign7 command. To do this, a symbol definition such as  RENUM == "$RENUM" 9 should be placed in the system login command file. 3A Any questions or suggestions can be directed to theS author: ( John Kodis1 Goddard Space Flight Center . Building 26, Room 1153 Greenbelt, Maryland, 20771, USA * (301) 286-4543#+++++++++++++++++++++++++++++++++++ #+++++++++++++++++++++++++++++++++++h#+++++++++++++++++++++++++++++++++++e =========> [355,100]README.1ST*Submission to Fall 1986 DECUS RSX SIG Tape Jerry Ethington+ Prolifix, Inc. 245 Hawkeegan Drive  Frankfort KY 40601 (502)223-5489 P/OS Memory Disk Driver HThis account contains full sources and binaries implementing a memoryHdisk driver for P/OS versions 2.0 and later. It also includes a copy ofHthe PROLOD system server task for P/OS 2.0 systems, necessary for theHuse and development of loadable drivers on P/OS. PROLOD was not readyHfor distribution when P/OS 2.0 shipped, so it was finally included onthe P/OS V3.0 distribution.e+The files included in the distribution are: D MDBLD.CMD - DCL command file to rebuild package from sources8 MDINS.CMD - DCL command file to install binaries3 MDDRV.DOC - documentation for MDDRV packageo! MDDRV.MAC - driver source * MDTAB.MAC - driver database source7 MDLOAD.MAC - source of a program to load driverl; MDUNLOAD.MAC - source of a program to unload driver @ MDDRV.TSK,.STB - binaries of driver and its symbol table. MDLOAD.TSK - binaries of driver loader2 MDUNLOAD.TSK - binaries of driver unloaderB PROLODV2.TSK - loadable driver server for 2.0/2.0A systems- PROLOD.DOC - driver development noteseH PROLODZAP.CMD - ZAP command file to correct bug in distributedB PROLODV2.TSK from V3.0 kit, PRODCL2 floppyD Editor's note: This thing works SPLENDIDLY on my Pro 350 and speedsFheavily overlaid tasks (like AnalytiCalc) up greatly. Highly useful!!!#+++++++++++++++++++++++++++++++++++n#+++++++++++++++++++++++++++++++++++s#+++++++++++++++++++++++++++++++++++t" =========> [356,030]AAAREADME.TXT5 This is a combined effort by the DATATRIEVE / FourthtDGeneration Languages SIG to produce a library of items related to orusing DATATRIEVE.e=[356,30] Machine readable past issues of the Wombat Examinerr@[356,32] Additional PLOTS and articles on adding your own plots?[356,31] Process RSX-11M-Plus system accounting with DTR, also 1 RSX console logs, and a routine for all 11s tog7 convert DTR DATE types to/from ASCII outside of DTR.y3[356,33] Transcriptions of some Symposia sessions.e'B. Z. Lede00WwTADATADATADATADATADATArman DTR/4GL SIG Library Rep.e#+++++++++++++++++++++++++++++++++++ #+++++++++++++++++++++++++++++++++++e#+++++++++++++++++++++++++++++++++++ " =========> [356,041]AAAREADME.TXT Brian NelsonComputer Services University of Toledo2801 West BancroftToledo, Oh 43606(419) 537-2841Brian@Uoft01.bitnet *Submissions for the RSX Fall 1986 Sig TapeHCLE.DIR;1 A command line editor/recall. This is really forH RSTS/E, but the basic principle is applicable toH RSX. One of the source files, K11EDI.MAC, should( be usable as is. Renamed to [356,45]+5KERMIT11.DIR;1 Version 3.54 of PDP-11 Kermit9 Renamed to [356,40]rJSLIDES.DIR;1 Copies of Slides for the Kermit talk this symposia Renamed to [356,44]DTED.DIR;1 A text editor, VMS, RSX11M+, P/OS and RSTS/E Renamed to [356,43]e:VMSTPC.DIR;1 A fast tape copy program, VMS only Renamed to [356,42]l#++++++++++++++++++++++++++++++++++++#+++++++++++++++++++++++++++++++++++#+++++++++++++++++++++++++++++++++++e" =========> [356,043]AAAREADME.TXTBrian Nelson 21-MAY-1985 11:34 29-JAN-1986 15:25 21-APR-1986 10:21H This is yet another text editor which was first written a few yearsHago in Macro-11 and used on RT, RSTS/E and RSX. The Macro-11 versionH(not included here) predates EDT change mode, which is one of theHreasons why it was written to start with. This is a complete redesignHand rewrite in C with some Macro-32. It functions as both a line editorHand full screen editor. The main reason it was rewritten in C was forHportability and to be able to run in native mode. Documentation is inHthe *.MEM files and also in online help. Note that it is copyrightedHand can not be ported to any other system and sold. It does allowHmultiple paste buffers and multiple file windows, see HELP and notes atthe end of this document. H The PDP11 task image dynamically determines actions at run time basedHon the underlying operating system, thus the same task image run underHP/OS, RSX11M+ and RSTS/E. On the PDP11, it takes 38KW user + 4KWshared. H The shared section is clustered against RMSRES for RSTS/E and P/OS. OnHRSX11M Plus v 3.0 you can recompile and task build with RMSRES as aHsupervisor mode library (on the PDP 11/44, 11/70, 11/73 and 11/84) andHget a very significant improvement in speed due to the elimination ofHthe constant remapping back to the first library from RMSRES. The fileHTEDSUP.TSK takes advantage of this. The file TEDID.TSK is an I/D spaceHversion of this editor; it runs on 11/44's and J11 based systems underCRSX11M+ and MicroRsx V3, and is currently being used on RSTS/E 9.3 H The speed difference between TED.TSK and TEDID.TSK (or TEDSUP.TSK) isHquite dramatic, the difference in file loading and writing being almostHthree to one. This points out the price you pay when you use clusteredresident libraries. H While the use of such an editor could be considered by some to be ofHquestionable value now that TPU is available, this one does run on VMSHand the PDP11 execs (RSTS/E, P/OS, RSX11M+). There is no reason why itHcould not be ported to RT11 and MSDOS, giving the appropiate exec%interface. You have full source here.M#+++++++++++++++++++++++++++++++++++.#+++++++++++++++++++++++++++++++++++e#+++++++++++++++++++++++++++++++++++a =========> [370,020]README.1ST README.1STP This submission consists of several files in addition to this README.1STOfile. The first file, RX030.DOC is RUNOFF output of information as submitted to Kthe RSX Session Notes for Session RX030: Designing Useful Utilities in ICP. LSLIDES.OUT is a copy of the slides presented at the session. The other filesLare the indirect command procedures, UIC.CMD and WHO.CMD as discussed at theLsession. Another file, named PROJECT.CMD, is a s00W X#hort command procedure whichJmay be useful for displaying contents of a short file onto the screen of aCVT241, in a manner suited for making slides or transparancies for aspresentation. K These procedures have been very popular with most of our users, andiEperhaps, they may be useful for others. If you have any questions orasuggestions, let me know.= Submitted by: James I. Shultz G U.S. Dept. of AgriculturecM Nutrient Composition LaboratorysI Room 216, Bldg. 161, BARC-E C Beltsville, MD 20705S#+++++++++++++++++++++++++++++++++++o#+++++++++++++++++++++++++++++++++++p#+++++++++++++++++++++++++++++++++++a =========> [370,364]README.TXTbBThe purpose of these files is to demonstrate how one could access @the I/O page from Decus C. The example accesses a clock/calender@card and sets the system time. Since the clock data is read from@registers on the card a program must somehow access the I/O page?to get this data. By building these files and creating a devicel/partition, the I/O page can easily be accessed.fKPrior to building the tasks, look at CLOCK.CMD and make sure you understand-Mwhat is going on. To build the set of programs, execute the indirect commmandfile CLOCK.CMD . VTL has several bug fixes and will now sense the AVOrI setting of the terminal c? RSX/IAS SIG Tape Distribution - Fall 1986 @ ===========================================   M This is the RSX/IAS SIG Symposium Tape from the Fall 1986 DECUS M Symposium San Francisco. The tape contains material submitted by the 5 user community for the tape at that meeting.  M The programs on this tape are from user submissions. The DECUS M staff, the RSX & IAS SIG staffs, and DEC are all in complete ignorance M of the contents of the tapes. No warranty of any kind is implied in M the distribution of these tapes. The programs may or may not be well M documented, they may or may not work, they may even crash your system. M If you have a problem with the contents of the tape, contact the M author of the program. Do not contact DECUS, DEC, or the RSX or IAS  SIGs.  M The tape contains about 2580 files requiring 58,000 blocks of M disk space. Since this will fit on a single 2400 foot tape only in M BRU at 1600 bpi, it is being distributed as such. To simplify M distribution and production, the tape is a single BRU container file I followed (for the LUG distribution only) by several extra files.  M Directory [300,1] contains the files documenting the contents of 4 the tape. The following files are present: N RSX86BTPE.DOC contains an abstract of the contents of the tape by UIC. M ALLREADME.86B contains a concatenated list of all the README files on  the tape. M RSX86BDIR.LIS contains a directory of all the files on the tape (BRU M does not produce nice directories). This is a brief listing with 6 UICs and filenames only for space reasons. M SUBMIT.DOC contains guidelines for submissions to the RSX/IAS Sig Tape M collection. This is MUST reading for everyone who desires to - submit a program to the SIG tape. . BEGIN86B.DOC has a copy of this text. M UICSET86B.CMD contains the UFD commands to create all the needed UIC's M on a device whose name is asked for in the command file. Edit it M to match your needs before using BRU to extract the tape contents. M A word of caution: under at least some circumstances, 11M V4.0 M BRU's /UFD switch creates directories even when it doesn't put  anything in them. 00X(Y+TADATADATADATADATADATA M If your disk is smaller than an RM03, you may want to exclude some M files from the copy in order to have a backup set that fits on a M smaller disk. Copy these off in separate passes. Directories M [200,*], [240,*], and [356,40] between them contain about 9000 M blocks and they may be pulled off in a separate pass. If these are M omitted, the rest of tape will fit on an RK07. A second pass M through the tape can extract the other directories onto another  device.    ; Glenn C. Everhart K RSX/IAS SIG Tape Copy Coordinator D RCA AD Engineering ms 206-1 0 _ 0 Rt. 38 A Cherry Hill, N.J. 08358 8 (609)-486-6328  .ps 60,80.lm 5;.rm 75;.nhy;.ap-.c ;RSX/IAS SIG Tape Distribution - Fall 1986/.c ;===========================================.bD This is the RSX/IAS SIG Symposium Tape from the Fall 1986 DECUSISymposium San Francisco. The tape contains material submitted by the user)community for the tape at that meeting. K The programs on this tape are from user submissions. The DECUS staff,Gthe RSX _& IAS SIG staffs, and DEC are all in complete ignorance of theAcontents of the tapes. No warranty of any kind is implied in theAdistribution of these tapes. The programs may or may not be wellJdocumented, they may or may not work, they may even crash your system. IfKyou have a problem with the contents of the tape, contact the author of the;program. Do not contact DECUS, DEC, or the RSX or IAS SIGs.B The tape contains about 2580 files requiring 58,000 blocks ofGdisk space. Since this will fit on a single 2400 foot tape only in BRU-at 1600 bpi, it is being distributed as such.KTo simplify distribution and production, the tape is a single BRU containerEfile followed (for the LUG distribution only) by several extra files.I Directory [300,1] contains the files documenting the contents of the&tape. The following files are present:.lm +3;.p -3,0G RSX86BTPE.DOC contains an abstract of the contents of the tape by UIC.F ALLREADME.86B contains a concatenated list of all the README files on the tape.* RSX86BDIR.LIS contains a directory of allthe files on the tape (BRU doesNnot produce nice directories). This is a brief listing with UICs and filenamesonly for space reasons.G SUBMIT.DOC contains guidelines for submissions to the RSX/IAS Sig TapeFcollection. This is MUST reading for everyone who desires to submit aprogram to the SIG tape. & BEGIN86B.DOC has a copy of this text.6 UICSET86B.CMD contains the UFD commands to create allIthe needed UIC's on a device whose name is asked for in the command file.LEdit it to match your needs before using BRU to extract the tape contents. A word of caution:Eunder at least some circumstances, 11M V4.0 BRU's /UFD switch creates6directories even when it doesn't put anything in them..pBIf your disk is smaller than an RM03, you may want to exclude some@files from the copy in order to have a backup set that fits on a0smaller disk. Copy these off in separate passes.JDirectories [200,*], [240,*], and [356,40] between them contain about 90005blocks and they may be pulled off in a separate pass.!If these are omitted00Y0Z1, the rest ofDtape will fit on an RK07. A second pass through the tape can extract*the other directories onto another device..lm -3;.spr 5,2.s 3;.lm 40;.nfGlenn C. Everhart!RSX/IAS SIG Tape Copy CoordinatorRCA A&D Engineering ms 206-1Rt. 38Cherry Hill, N.J. 08358(609)-486-6328  @ RSX/IAS SIG Tape Copy Infomation - Fall 1986   M These are the instructions for copying the Fall 1986 RSX/IAS Sig B Tape, and for processing the tapes through the Copy Tree.  5 TAPE COPY INFORMATION  M The tape contains over 2580 files requiring 58,000 blocks of disk M space. Since this will fit on a single 2400 foot tape only in BRU at 3 1600 bpi, it is being distributed as such.  M If the distribution must be made to fit an RK07, the directories M [200,*] (DEC PRO items) and [240,*] (MSDOS utilities and code) between M them occupy some 4544 blocks and 76 files and may be omitted. Also M the [356,40] directory, containing Kermit-11, contains 5091 blocks. M These directories may be omitted from a copy on one pass and picked up M on another pass over the tape to get the entire distribution. If M these directories are excluded, the rest of the tape will fit on an M RK07 and these directories can be captured onto a second device in a # second pass over the tape.  M In addition to the BRU backup set, the tape contains the C following files in ANSI-PIP format at the end of the tape:  TPC.EXE for use on VAX's % TPC.TSK for use on RSX systems = BEGIN86B.DOC to describe how to start to use the tape. 8 RSX86BTPE.DOC for a summary of the tape contents. 7 and a couple more for the LUG distribution only.  M Because of this tape structure, the only practical way to make M copies of the tape is via TPC or some other structure-insensitive M program. Note there is now a VMS native mode TPC in [356,42] for VAX M sites. If you attempt to copy the tape with BRU you will lose the M trailing files, unless you then copy them with PIP. Don't make copies M without ALL of the files, or someone below you on the tree will have a # hard time doing their job.  M There are two ways to extract a copy of TPC from the tape. The M first is to extract a copy of the task image from the 1st backup set, 6 using BRU. The command lines are as follows:  >UFD SY:[300,2] 2 >BRU /NOINI/DENS:1600 MM:[300,2]TPC.TSK SY:  M If you cannot run BRU, then you must use the second method, which is M to get either the .TSK or .EXE file from the end of the tape. To do : that the commands are [or their VAX equivalents]: B >MOU MM:BACKUP/NOWRITE/DENS=1600 [MOU/NOWRITE MTA0: BACKUP] = >PIP =MM:TPC.TSK [COPY MTA0:TPC.EXE *]  M To use TPC with the distribution you need a disk with at least M 60,000 blocks of free space, not necessarily contiguous. Otherwise M you need at least a free RK07, and will have to copy the backup set C and following ANSI files individually, as discussed above.  M To read in a copy of the master tape onto your disk, use the  following commands:  >RUN TPC 1 TPC>DB:RSX86B=MM:/HD/BL:30000./SA:1024./MI M (Use either /VE or /MI, not both. If you don't use /VE, try to check " the tape by other means.)     M NOTE: The /HD switch is for High Density (1600 bpi). Use the /HElp M switch to TPC for further information on the optional /BL:nnnn and M /SA:mmmm swit00Z8+TADATADATADATADATADATAches, which provide much better performance in M transferring to disk. Note the use of the /VErify switch, to better M guarantee that your copy is valid. Also, TPC now supports the TU78 M (MF:), and the buffer size in the .EXE version is large enough to copy M such things as VMS BACKUP tapes. The source code for TPC is in M [312,315] on the tape. If you are running on VMS V4, you may need to M use the /MI (magtape in) or /MO (magtape out) switches to get TPC to M know that one of your devices is a tape. These are needed if TPC M can't parse your VMS device names; if you have the $$n names in wide M use, TPC will probably need this. It only affects VMS V4 and later. M Just add the /MI switch when reading tape and the /MO switch when M writing it. Alternatively, have a look at Brian Nelson's VAXTPC in M [356,42] here. This will allow copies to be done in VMS native mode. M Alternatively the TCPYE.MAC program for PDP11 or the TCOPY.MAR program M for VAX allow format independent tape to tape copies for those with = two drives. These are located in directory [300,2].   M To make a copy of the tape for someone, use the following  commands:  >RUN [300,2]TPC % TPC>MM:/MO=DB:RSX86B.TPC/HD/VE G (If you use /MO, Don't use /VE; it will fail. You only need /MO - if TPC fails to recognize the tape.)  M Again, don't forget the /HD switch, or you'll be generating an 800 bpi M copy, which WON'T FIT. And no, TPC doesn't have the vaguest idea how M to do a two-volume copy. (The /EV switch allows you to ignore EOV M errors but it requires the output tape be enough longer than the input ? tape to record everything before hitting physical EOV.)  M If you don't have 1600 bpi capability yourself, PLEASE locate M someone in your area who can make the necessary copy(s), at least M enough to continue the distribution tree. It will make life very M difficult indeed otherwise, particularly trying to preserve the stuff at the end of the tape.  M If you need to make LOCAL copies at 800 bpi, you will have to M copy the container file to disk via BRU. In generating the 800 bpi M output tapes, you should use the BRU /LENGTH:2000. switch, so that the M output tapes can be copied (very hard to do if your original goes all M the way to the EOT marker). You can then use TPC to make further & copies of your 800 bpi tapes.  M Note that the /EV switch of TPC might let you copy multivolume M backup sets by causing TPC to ignore the IE.EOV errors at end of tape M and look for the endfiles beyond. The probability is significant M you'll run the output of the end of reel if you do this however, so it ; is not recommended except as an emergency measure.  2 TREE PROCEDURES  M The Tape Copy tree has been mailed in advance to all nodes, along M with instructions to contact the person above them on the tree. Don't M forget, YOU need to contact your parent on the tree, not vice versa. M And you, not he, should send off the blank tape, unless you mutually M agree on other arrangements. Everyone gets the whole tree, so if your M parent node is flaky, please try someone else to get the tape AND let ? the tape copy coordinator know so we can fix problems.     M With each tree sent, there will be included a letter and a copy M of these instructions. Please try to copy these and send them to M nodes below you when you send tapes out. We are trying this approach M in the hope that everyone will be reminded to return their letter as M soon as they have the tape. 00Z@[DIf you fail to return the letter I am M likely to assume that you are either not interested in or not able to M particpate in future Tape Copy projects. I say this because in the M past only about 50% of those on the tree EVER return their letters. A M letter will go out with each tree copy. ONLY send back a reply ONCE M and please do so WHEN YOU GET THE TAPE. This way, you are assured of M having a copy of the letter. If the next symposium is imminent and M you STILL don't have the tape, return the letter with that box M checked. IF you can't get the tape from your parent node, TRY going M up a level in the tree and SO NOTE WHEN YOU RETURN YOUR LETTER. M People move a lot on a national scale and this will help get the tape M to users quickly. You have all the information there is about who has M the tapes; please try to get them as quickly as possible and make M your copies for child nodes as fast as possible. It is sometimes M helpful to contact child nodes to remind them you need a tape from K them. For all we write, some librarians never read these letters.  M VAX systems: Some VMS systems don't leave newly mounted tapes at M BOT. Please be sure tapes produced on a VAX can be read. You may I need to manually rewind a tape before starting a tape-tape copy.  & Thank you for your help.   ; Glenn C. Everhart K RSX/IAS SIG Tape Copy Coordinator I RCA G.S.D. Engineering MS 206-1 0 Rt. 38 A Cherry Hill, N.J. 08358 8 (609)-486-6328  .ps 64,75,5,2 .ap;.nhy;.nhd0.c ;RSX/IAS SIG Tape Copy Infomation - Fall 1986.b= These are the instructions for copying the Fall 1986 RSX/IAS=Sig Tape, and for processing the tapes through the Copy Tree..b;.c ;TAPE COPY INFORMATION= The tape contains over 2580 files requiring 58,000 blocks ofGdisk space. Since this will fit on a single 2400 foot tape only in BRU-at 1600 bpi, it is being distributed as such.A If the distribution must be made to fit an RK07, the directoriesF[200,*] (DEC PRO items) and [240,*] (MSDOS utilities and code) betweenFthem occupy some 4544 blocks and 76 files and may be omitted. Also theE[356,40] directory, containing Kermit-11, contains 5091 blocks. TheseCdirectories may be omitted from a copy on one pass and picked up onCanother pass over the tape to get the entire distribution. If theseFdirectories are excluded, the rest of the tape will fit on an RK07 andGthese directories can be captured onto a second device in a second passover the tape.9 In addition to the BRU backup set, the tape contains the:following files in ANSI-PIP format at the end of the tape:.br;.nfTPC.EXE for use on VAX'sTPC.TSK for use on RSX systems6BEGIN86B.DOC to describe how to start to use the tape.1RSX86BTPE.DOC for a summary of the tape contents.0and a couple more for the LUG distribution only..f@ Because of this tape structure, the only practical way to make Acopies of the tape is via TPC or some other structure-insensitive@program. Note there is now a VMS native mode TPC in [356,42] for VAX sites.1If you attempt to copy the tape with BRU you willlose the trailing files,Iunless you then copy them with PIP. Don't make copies without ALL of theIfiles, or someone below you on the tree will have a hard time doing theirjob.; There are two ways to extract a copy of TPC from the tape.IThe first is to extract a copy of the task image from the 1st backup set,-using BRU. The command lines are as follows:.nf>UFD SY:[300,2]+>BRU /NOINI/DENS:1600 00[H+TADATADATADATADATADATAMM:[300,2]TPC.TSK SY:.f;.s 1If you cannot run BRU,Lthen you must use the second method, which is to get either the .TSK or .EXE;file from the end of the tape. To do that the commands arer their VAX equivalents]:.nf;>MOU MM:BACKUP/NOWRITE/DENS=1600 [MOU/NOWRITE MTA0: BACKUP]6>PIP =MM:TPC.TSK [COPY MTA0:TPC.EXE *].f1 To use TPC with the distribution you need a diskFwith at least 60,000 blocks of free space, not necessarily contiguous.MOtherwise you need at least a free RK07, and will have to copy the backup set:and following ANSI files individually, as discussed above..pATo read in a copy of the master tape onto your disk, use thefollowing commands:.nf>RUN TPC*TPC>DB:RSX86B=MM:/HD/BL:30000./SA:1024./MIF (Use either /VE or /MI, not both. If you don't use /VE, try to check the tape by other means.).f;.s 1MNOTE: The /HD switch is for High Density (1600 bpi). Use the /HElp switch to+TPC for further information on the optionalH/BL:nnnn and /SA:mmmm switches, which provide much better performance inNtransferring to disk. Note the use of the /VErify switch, to better guaranteethat your copy is valid..Also, TPC now supports the TU78 (MF:), and theFbuffer size in the .EXE version is large enough to copy such things asGVMS BACKUP tapes. The source code for TPC is in [312,315] on the tape.FIf you are running on VMS V4, you may need to use the /MI (magtape in)Ior /MO (magtape out) switches to get TPC to know that one of your devicesHis a tape. These are needed if TPC can't parse your VMS device names; ifHyou have the $$n names in wide use, TPC will probably need this. It onlyGaffects VMS V4 and later. Just add the /MI switch when reading tape andDthe /MO switch when writing it. Alternatively, have a look at Brian CNelson's VAXTPC in [356,42] here. This will allow copies to be doneDin VMS native mode. Alternatively the TCPYE.MAC program for PDP11 orCthe TCOPY.MAR program for VAX allow format independent tape to tapeIcopies for those with two drives. These are located in directory [300,2]..pD To make a copy of the tape for someone, use the following commands:.nf>RUN [300,2]TPCTPC>MM:/MO=DB:RSX86B.TPC/HD/VE@ (If you use /MO, Don't use /VE; it will fail. You only need /MO& if TPC fails to recognize the tape.).f;.bFAgain, don't forget the /HD switch, or you'll be generating an 800 bpiHcopy, which WON'T FIT. And no, TPC doesn't have the vaguest idea how toEdo a two-volume copy. (The /EV switch allows you to ignore EOV errorsDbut it requires the output tape be enough longer than the input tape2to record everything before hitting physical EOV.)B If you don't have 1600 bpi capability yourself, PLEASE locateKsomeone in your area who can make the necessary copy(s), at least enough toHcontinue the distribution tree. It will make life very difficult indeedLotherwise, particularly trying to preserve the stuff at the end of the tape.C If you need to make LOCAL copies at 800 bpi, you will have to copyLthe container file to disk via BRU. In generating the 800 bpi output tapes,%you should use the BRU /LENGTH:2000.#Gswitch, so that the output tapes can be copied (very hard to do if yourForiginal goes all the way to the EOT marker). You can then use TPC to*make further copies of your 800 bpi tapes.? Note that the /EV switch of TPC might let you copy multivolumeEbackup sets by causing TPC to ignore the IE.EOV errors at end of tapeGand look for the endfiles beyond. The probability is significant you'llFrun the output of the end of reel if you do this however, so it is not+recommended except as an emergency measure..b;.c ;TREE PROCEDURESK The Tape Copy tree has been mailed in advance to all nodes, along withIinstructions to contact the person above them on the tree. Don't forget,JYOU need to contact your parent on the tree, not vice versa. And you, notFhe, should send off the blank tape, unless you mutually agree on otherEarrangements. Everyone gets the whole tree, so if your parent node i00[P\TsDflaky, please try someone else to get the tape AND let the tape copy(coordinator know so we can fix problems.; With each tree sent, there will be included a letter and aCcopy of these instructions. Please try to copy these and send them+to nodes below you when you send tapes out."We are trying this approach in theBhope that everyone will be reminded to return their letter as soonNas they have the tape. If you fail to return the letter I am likely to assumeIthat you are either not interested in or not able to particpate in future Tape CopyDprojects. I say this because in the past only about 50% of those on#the tree EVER return their letters.EA letter will go out with each tree copy. ONLY send back a reply ONCEKand please do so WHEN YOU GET THE TAPE. This way, you are assured of havingKa copy of the letter. If the next symposium is imminent and you STILL don'tLhave the tape, return the letter with that box checked. IF you can't get theHtape from your parent node, TRY going up a level in the tree and SO NOTEFWHEN YOU RETURN YOUR LETTER. People move a lot on a national scale andJthis will help get the tape to users quickly. You have all the informationFthere is about who has the tapes; please try to get them as quickly asEpossible and make your copies for child nodes as fast as possible. ItCis sometimes helpful to contact child nodes to remind them you needDa tape from them. For all we write, some librarians never read theseletters..p@VAX systems: Some VMS systems don't leave newly mounted tapes atEBOT. Please be sure tapes produced on a VAX can be read. You may need;to manually rewind a tape before starting a tape-tape copy..PThank you for your help..s 2;.lm 40;.nfGlenn C. Everhart!RSX/IAS SIG Tape Copy CoordinatorRCA G.S.D. Engineering MS 206-1Rt. 38Cherry Hill, N.J. 08358(609)-486-6328$[H$[J Entering digest ...H15 May 86 shebs@utah-cs.arpa (Stanley Shebs), PCLS Common Lisp Available$[KGThis is to announce the availability of the Portable Common Lisp SubsetF(PCLS), a Common Lisp subset developed at the University of Utah which%runs in Portable Standard Lisp (PSL).IPCLS is a large subset which implements about 550 of the 620+ Common LispLfunctions. It lacks lexical closures, ratios, and complex numbers. StreamsEand characters are actually small integers, some of the special formstHare missing, and a number of functions (such as FORMAT) lack many of theImore esoteric options. PCLS does include a fully working package system,bFmultiple values, lambda keywords, lexical scoping, and most data typesJ(including hash tables, arrays, structures, pathnames, and random states).IThe PCLS compiler is the PSL compiler which produces very efficient code,.Gaugmented by a frontend that does a number of optimizations specific tohGCommon Lisp. Gabriel benchmarks and others show that PCLS programs cansEbe made to run as fast as their PSL counterparts - almost all uses ofeDlambda keywords are optimized away, and a type declaration/inferenceFoptimizer replaces many function calls with efficient PSL equivalents.IPCLS has been used at Utah and elsewhere for about 6 months, and a numberJof programs have been ported both to and from PCLS and other Common Lisps.FPCLS is being distributed along with an updated version of PSL (3.2a).HWe require that you sign a site license agreement. The distribution feeBis $250 US for nonprofit institutions, plus a $750 license fee forHcorporations. Full sources to both PSL and PCLS are included along withHdocumentation on the internals and externals of the system. At present,Bwe are distributing PCLS for 4.2/4.3 BSD Vax Un*x and for Vax VMS.HReleases for Apollo and Sun are anticipated soon, and versions for otherLPSL implementations are likely. If interested, send your USnail address to: Loretta Crusea%Computer Science Department, 300\X^\_^TADATADATADATADATADATA160 MEBhUniversity of UtahSalt Lake City UT 84112i>cruse@utah-20.ARPA {seismo, ihnp4, decvax}!utah-cs!cruse.UUCPETechnical questions about PCLS, flames about absence of closures, etctAmay be directed to shebs@utah-cs.ARPA, loosemore@utah-20.ARPA, ornkessler@utah-cs.ARPA.V------------------------------ ... Exiting digest ?20 May 86 AIList Moderator Kenneth Laws $set verify$type MDA1:[200,006]README.DOC$type MDA1:[200,007]README.1ST!$type MDA1:[240,003]AAAREADME.1ST$type MDA1:[240,004]README.1ST$type MDA1:[300,021]README.1ST!$type MDA1:[302,100]AAAREADME.DOC$type MDA1:[304,340]README.DOC!$type MDA1:[312,371]AAAREADME.1ST!$type MDA1:[321,100]AAAREADME.1ST$type MDA1:[330,100]README.1ST$type MDA1:[330,107]READ.XMT$type MDA1:[330,110]README.DSC$type MDA1:[343,036]README.1ST$type MDA1:[343,037]README.1ST$type MDA1:[343,041]README.1ST$type MDA1:[343,042]README.1ST$type MDA1:[343,120]README.1ST!$type MDA1:[351,070]AAAREADME.1ST!$type MDA1:[351,072]AAAREADME.1ST!$type MDA1:[351,073]AAAREADME.1ST$type MDA1:[351,144]README.1ST$type MDA1:[352,110]README.1ST$type MDA1:[355,100]README.1ST!$type MDA1:[356,030]AAAREADME.TXT!$type MDA1:[356,041]AAAREADME.TXT!$type MDA1:[356,043]AAAREADME.TXT$type MDA1:[370,020]README.1ST$type MDA1:[370,364]README.TXTGThe following is a list of the contributions to the RSX SIG Tape at the+Fall 1986 DECUS Symposium in San Francisco.[DIRECTORY] Author ContentsA=========== ============ ========================================9[200,006] R.J. Wilden APFELM Maldelbrot set generator for PRO 3XX.0[200,007] E. D. Willink ReGIS to HP-GL converter;[240,003] G. Everhart AnalytiCalc for 8088/MSDOS. Also 8088* version of RIM DBMS with src, doc, and* current ARC utility dist'n to separate it all.;[240,004] various MSDOS utilities (in C mainly) from Decus Europe RSX group5[300,001] MASTER INDEX DIRECTORY ... Read it first!8[300,002] various TPC and VMSTPC tools for copying tape)[300,021] Frank Borger RSX Basic (11M/M+)A[300,022] Frank Borger Dammit utility.. snappy remarks on demand.A[302,100-102] Warren Falls SCRIPT - command language menu program7[304,340] Dean Lampman King James Bible - all uppercaseB[312,*] Glenn Everhart AnalytiCalc update, VMS VD: driver, a few other items.3[321,100] Bob Uleski Tape Copy tree for other media. Patch for Q-bus DH11 drvr to use I/D space?[343,120] Jim Bostwick Virt disks, clunk time conv, manip EFNs, define VT220 keys$[330,021] Frank Borger Basic for IAS>[330,100-???] Frank Borger "Reese's Pieces" utility collection [330,100] Docs [330,101] Errors [330,102] Help files$ [330,103] MRHLOGIN (and CLI) tasks [330,104] MRHLOGIN1 [330,105-111] PIECE1 [330,112-116] PIECE2' See the ALLREADME.86B file for the+ contents of this large and varied area.E[343,36-41] Bruce Mitchell Flying install, pool monitor, Multitaskers' since last symposium, EMPIRE w/src.?[351,70-73] Frank Borger VTL, AUX, DIR reissues. VTL is a nifty' fullscreen lister. AUX is a command* processor that allows keypad commands. DIR is a directory lister.8[351,144] Tom Wyant Intro to programming in Indirect (@):[352,110] John Kodis RENUM - renumbers FORTRAN statementsD[355,100] Jerry Ethington Memory virtual disk drivers for PRO seriesF[356,30-33] Bart Lederman Datatrieve SIG submissions. Newsletters, RSX3 accounting in DTR, plots info, and some session transcripts.B[356,40] Brian Nelson Kermit-11 V3.54. (Probably the most powerful Kermit of any of them.)&[356,41] Brian Nelson Docs for [356,*]9[356,42] Brian Nelson VMSTPC - TPC in native mode for VMS+[356,43] Brian Nelson TED fullscreen editor,[356,44] Brian Nelson Slides for DECUS talks)[356,45] Brian Nelson Command Line Editor:[370,000_c`daj20] Jim Shultz Useful Utilities in Indirect Cmd Proc@[370,364] C. Staase Set external clock from DECUS C via I/O page3$set file/own=[200,006] [000000]200006.DIR;1 3$set file/own=[200,007] [000000]200007.DIR;1 3$set file/own=[240,003] [000000]240003.DIR;1 3$set file/own=[300,001] [000000]300001.DIR;1 3$set file/own=[300,002] [000000]300002.DIR;1 3$set file/own=[300,021] [000000]300021.DIR;1 3$set file/own=[300,022] [000000]300022.DIR;1 3$set file/own=[302,100] [000000]302100.DIR;1 3$set file/own=[302,101] [000000]302101.DIR;1 3$set file/own=[302,102] [000000]302102.DIR;1 3$set file/own=[304,340] [000000]304340.DIR;1 3$set file/own=[312,315] [000000]312315.DIR;1 3$set file/own=[312,345] [000000]312345.DIR;1 3$set file/own=[312,371] [000000]312371.DIR;1 3$set file/own=[312,375] [000000]312375.DIR;1 3$set file/own=[312,376] [000000]312376.DIR;1 3$set file/own=[321,100] [000000]321100.DIR;1 3$set file/own=[330,021] [000000]330021.DIR;1 3$set file/own=[330,100] [000000]330100.DIR;1 3$set file/own=[330,101] [000000]330101.DIR;1 3$set file/own=[330,102] [000000]330102.DIR;1 3$set file/own=[330,103] [000000]330103.DIR;1 3$set file/own=[330,104] [000000]330104.DIR;1 3$set file/own=[330,105] [000000]330105.DIR;1 3$set file/own=[330,106] [000000]330106.DIR;1 3$set file/own=[330,107] [000000]330107.DIR;1 3$set file/own=[330,110] [000000]330110.DIR;1 3$set file/own=[330,111] [000000]330111.DIR;1 3$set file/own=[330,112] [000000]330112.DIR;1 3$set file/own=[330,113] [000000]330113.DIR;1 3$set file/own=[330,114] [000000]330114.DIR;1 3$set file/own=[330,115] [000000]330115.DIR;1 3$set file/own=[330,116] [000000]330116.DIR;1 3$set file/own=[343,036] [000000]343036.DIR;1 3$set file/own=[343,037] [000000]343037.DIR;1 3$set file/own=[343,041] [000000]343041.DIR;1 3$set file/own=[343,042] [000000]343042.DIR;1 3$set file/own=[343,120] [000000]343120.DIR;1 3$set file/own=[351,070] [000000]351070.DIR;1 3$set file/own=[351,072] [000000]351072.DIR;1 3$set file/own=[351,073] [000000]351073.DIR;1 3$set file/own=[351,144] [000000]351144.DIR;1 3$set file/own=[352,110] [000000]352110.DIR;1 3$set file/own=[355,100] [000000]355100.DIR;1 3$set file/own=[356,040] [000000]356040.DIR;1 3$set file/own=[356,041] [000000]356041.DIR;1 3$set file/own=[356,042] [000000]356042.DIR;1 3$set file/own=[356,043] [000000]356043.DIR;1 3$set file/own=[356,044] [000000]356044.DIR;1 3$set file/own=[356,045] [000000]356045.DIR;1 3$set file/own=[370,020] [000000]370020.DIR;1 3$set file/own=[370,364] [000000]370364.DIR;1 K GUIDELINES FOR SUBMISSION OF PROGRAMS TO THE RSX/IAS SIG TAPE < (Updated for Fall 1986 SIG Tape)  R Submissions may be made using any standard DEC tape copy utility. FLX R (or EXCHANGE on VAX) DOS format at 1600BPI is the preferred format UNLESS R you have a previously assigned UIC for the tapes. In that case, BRU is the R recommended format, as long as all files are in your previously assigned R UIC(s). If you make you00ak\_^TADATADATADATADATADATAr submission on a VAX, VMS Backup is the preferred R submission format. Submissions may be at any density (800, 1600, 6250) but R 1600 is preferred. Submissions on floppy or TU58 can be handled, but not R in general during symposia. If your submission contains files in a format R which FLX will garbage, e.g. ISAM, or fixed-length records, please contact R the Tape Copy Coordinator for a UIC assignment so that you can use BRU. R Alternatively, place the files in a universal library and submit the .ULB % file (which FLX handles OK). R Each UIC should contain a README.1ST file that describes the contents R of that UIC. Submittors are encouraged to include as much documentation as R possible (in STANDARD RUNOFF if possible) and to use command files where R possible. If you must submitt a DOC file that is the output of RUNOFF make R sure you pass it through TECO (see below) or FLX will put extra * carriage-return line-feeds in it. R It will be GREATLY appreciated if you can label the UICs used on the R tape with a sticky label. If you haven't an assigned UIC, please use UICs R with group numbers in the range 101-277 so there will not be collisions R with assigned UICs. Remember that the stuff must be assigned a new UIC if R your UIC isn't assigned, so you'll make life a lot easier for others if you R don't make your programs UIC dependent and if you make it easy to copy to a H new account (or set of accounts) from whatever is on your tape. R Submittors MUST NOT supply any licensed software. Submissions should R not contain listing files, map files, or task image files where these can R be recreated by any site. (Task images of programs that need compilers not R all sites may have are OK.) If you must submit any of these, please R indicate why. To keep the tape volume down please submit only source R modules if you can. Also submit a command file to assemble and task build R the program. Make SURE all modules required by your submission are R present. Watch out for those private libraries that contain an object 8 module for which you didn't include the source. R If you are updating a program that was originally submitted by you, R you should resubmit the entire program, not just the changes. You should R also use the orginal UIC you were asssigned. If you are updating a program R that some else submitted, do NOT use the original submittor's UIC, unless R you have made arrangements with the original submittor. Allocate a new UIC R of your own and make a reference to the original submittor's UIC, as well 4 as the version/tape from which you started. R Please do not submit grab-bags of software which include unmodified R versions of programs from previous tapes. That just makes life very R difficult for those people who are trying to make indices of the SIG tapes, D as well as making the Symposium Tape longer than necessary. R Below you will find a list of submittors and their current UIC R assignments. When you bring software to the symposium meeting please have R it in the proper UIC. If you do not have a UIC or wish to have another one R please contact the Tape Copy Coordinator prior to the symposium. You will R notice that Lugs have been given UIC's of the form [nnn,*]. The local LUG R Librarian is responsible for allocating the member UICS. For example, if R you belong to CARTS (UIC 300,*) you should contact Ben Burch, not the Tape R Copy Coordinator, for your UIC assignment. Only those poor unfortunate R souls who do not belong to a LUG need bother to call the Tape Copy  Coordinator.  R 00asdaj Page 2    R If you have a DOC file from RUNOFF to submit, please apply the R following proceedure with TECO before putting the DOC file on tape with FLX.  >TEC filename.DOC  *ex$$ ($=)  >PIP filename.DOC/PU > R This causes TECO remove the embedded carriage control from the DOC file. R FLX does not understand embedded carriage control and it will put extra R carriage-return, line-feeds in the DOC file which we cannot get out at the  tape copy site. R As an alternative to the above, use John Clement's version of RUNOFF, R UIC [332,12] on the S83 or S84 tapes, with the /-CR switch to output D records with implied rather than imbedded carriage control.  R Page 3    > THE CURRENT UIC ASSIGNMENTS FOR THE RSX/IAS SIG TAPE  @ 70,* PASCAL (much better versions on the STRUCTURED % LANGUAGES SIG tape) " 200,* P/OS SUBMISSIONS * 250,* RAINBOW ETC. SUBMISSIONS 5 300,* CHICAGO LUG (CARTS) (Ben Burch) 7 301,* SOUTHERN CALIFORNIA LUG (Jim Neeland)  301,050 Alan Frisbie ! 301,100 D. A. Truesdell 6 302,* SEATTLE LUG (Ray French) 8 303,* LOS ALAMOS LUG (Jim Harrison) < 304,* MIDLANDS LUG (Robert Fairchild) 2 305,* COPEUS LUG (offical RUNOFF) . 306,* SANDIA LABS ???? 8 307,* BAYLUG (Gary Maxwell) ! 307,110 G.S. Whittlesey . 310,* TARLUG (Toronto) ???? 6 311,1 AUSTIN LUG (Marge Knox)  311,not 1 LOS ALAMOS 7 312,* G. Everhart, G. Hoffing, R.J. Kirkman 7 312,375 Larry Finger (PortaCalc applications) 7 313,* OAK RIDGE (K. J. Cross) ? 314,* David Sykes (RATFOR) (Structured FORTRAN) F 315,* DUKE UNIVERSITY (Henry Tumblin, Scott Wells) 7 316,* TECHNOLOGY, INC. (Paul Elliot) 9 317,* ST. LOUIS LUG (Michael Scott) " 320,* NEW ORLEANS ???? 6 321,* PHILADELPHIA LUG (A. Gaughan)  321,100 Bob Uleski 9 322,* INDIANA LUG (Larry Dollens)  323,* PORTLAND LUG 8 324,* WRUG (Cleveland) (Douglas Fair)  325,* DENVER LUG 9 326,* NORTH TEXAS LUG (Jeff Hamilton) 4 327,* SOUTH MAIMI LUG (Angel LI) F ============================================================ 6 330,* IAS SIG - IAS-SPECIFIC PROGRAMS ONLY F ---------please contact IAS SIG for ,nnn assignments ------- F ============================================================ 8 331,* STRUCTURED LANGUAGES SIG CONTRIBUTIONS  332,* HOUSTON LUG 6 332,12 John Clement (Rice Univ.)  333,* Alan Watson  333,100-105 HANS JUNG  334,* Scott Snadow 6 335,* GREATER LANSING LUG (Hugh Gregg) 0 336,200 NETWORK contributions from DEC / 336,300 John Covert (DEC) 337,20 Walter I. Levy ! 337,24 Gilbert DeLeeuw  337,30 Ken Demers  337,40 J.S. Toms 337,50 Jim McGlinchey H 337,60 Mark Goegelman (Johnson and Johnson Products) C 337,100 Chuck Turley (DEC) RSX-11D accounting  R Page 4     337,110 Chuck Turley  337,120 Chuck Turley K 337,140-170 Edward Dekker (Computer Corporation of America) 6 337,200 Arthur T. McCLinton (MITRE CORP) : 337,210 Denny J. Walthers (American McGaw) 9 340,* ASDARC L00a{\_^TADATADATADATADATADATAUG (Mark Johnson) E 341,* MAINE LUG (John Guidi) (JACKSON LABS) : 342,* TECO versions from DEC (Andy Goldstein) < 343,1 Robert A. Nance (Johnson Controls) 8 343,10-14 John Isakson (ZIMPRO, Inc.) G 343,21-26 Paul D. Clayton (Republic Management Systems) E 343,30 Bruce Mitchell (3M Engr. Syst. Technology) ; _ E 343,36-37 Bruce Mitchell (3M Engr. Syst. Technology) ; _ 4 343,40 Peter Hunter (UC Davis) E 343,41-42 Bruce Mitchell (3M Engr. Syst. Technology) ; _ M 343,50-54 M. Eric Husby (Project Syst. Software & Develop.) > 343,60 Robert L. Reed (Peterson A.F. Base) A 343,70 Jack Harvey (National Data Systems) & 343,100 RT/RSX Emulator Task F 343,120 Jim Bostwick (Cargill, Minneapolis Minn.) C 343,130 Mark Northrup (Miller, Milwaukee, Wis.) M 344,* Jim Downward (CCL console command language, etc. < from KMS FUSION) C 345,* Dave Argue (Atomic Energy of CANADA) 5 346,* Ralph Stamerjohn (Monsanto)  347,* H. L. Coleman : 350,1-3 Harold Levy (APPLICON, Inc.)  350,30 Kerry Wyckoff > 350,31 Ed Cetron (University of Utah) 350,34 Richard Newell 9 350,50 Kitty Bethe (Bankers Trust)  350,60-61 Ross Amann : 350,100 Harold Levy (APPLICON, Inc.) 8 350,120-123 Dan Eisner (Perkin Elmer) 8 350,131 Al Bennett (Lear Siegler) ; 350,200 George Velez (Revlon Research) E 350,240 Mike Drabicky (Rockwell, Richardson, TEX)  350,300 Paul Sorenson 4 350,340 Utah Power Light (Eddie Fey)  _ / 351,1-7 Mike Pettengill (DEC) ! 351,20 Benson Ackerman  351,30 Brian Nelson # 351,40-51 Dennis Costello C 351,70-103 Vincent Graham ROBIN MILLER (Project Software) % _ 2 351,110-111 J.F. Vibert (FRANCE)  351,120 Derek Franks  351,130 Barry Breen = 351,140 Dan Sedlacek ( 40 Bellevue,Neb.)  351,142 Larry Finger 9 351,144-145 Thomas Wyant II (Richmond, Va.)  351,150 Scott Smith 5 351,160 Raymond Willis (Berea,Ky.)  352,* NASA/GODDARD I 353,* Robert K. Stodola (Institute for Cancer Research) E 354,* Steve Illenick (Republic Buildings, Corp.) " 355,* Mike Blake-Knox  R Page 5    ! 355,100 Jerry Ethington ! 356,10 Carl Mickelson  356,20 E.F. Beadel " 356,30-31 Bart Lederman ? 356,40 KERMIT (Columbia University) # 356,50-51 Vince Perriello  356,60 Gordy Ross 356,70 Dennis Jensen : 357,* SEABOARD LUG (C.A. Ianniello) C (Mobil Oil, Toxicology) N 360,* ARAP (Aeronautical Research of Princeton) " 361,* BATTEL NORTHWEST / 362,* Bruce Mcnaughton (DEC) ! 363,* DUKE UNIVERSITY P 364,* Harry Atherton (University of Cincinnati Medical Ctr) B 365,* SRD of Files-11 working group - see also [352,4] I 366,* CISCO (Robert Watson and Gary Siftar)  367,* John Wood C 370,1 Mark Weston 00abj (City of Gainesville, FL) 5 370,10 Hal Hackney (Dallas TX) : 370,11 John P. McGrath (Washington, DC) 4 370,20 L.M. Fraser,J. Shultz (Maryland)  370,21 Don Rubin ; 370,30 Robert Grandle (NASA/LANGLEY MD)  370,37 David Corey ! 370,40-41 Marvin Brown 2 370,50 Gerry Pelletier (OTTAWA) > 370,60 Wayne Dernoncourt (NAVAL ORD Maryland) / 370,70 Bob Abramson (DEC) 2 370,100 Richard Evans (BOSTON) ; 370,106 Jared Spool, John Dunning (Cambridge, MA) @ 370,110 Bruce Bernstein (General Electric, NY) A 370,112 Gus Altobello (Reuters, Hauppage, NY) < 370,120 Stever Duff (Orange County CA) 9 370,130 Mike LeVine (China Lake CA) 9 370,140 Reb Burroughs (Fort Worth TX) 6 370,150 Kevin Angley (Raleigh NC)  370,160 not used ? 370,170 Bob Rock (Northern Telecom NH) 9 370,200 Carl Zimmerman (Scott AFB, IL) B 370,210 Rick Webster (Caterpillar Tractor IL) G 370,220 B. Z. Lederman (ITT World Communications NY) ? 370,230 Thomas Wyant (DuPont, Richmond VA) : 370,340-344 Brian Nelson (U of Toledo OH) : 370,350 George Cornelius (Mayo Clinic MN) 7 370,352 Steven Jobes (Mayo Clinic) I 370,360-61 Bob Awde (General Mills, Minneapolis MN)  370,364 C. Staase > 371,* Gerald Johnson (Battelle Northwest) 6 372,* Bruce Montague (Brooks AFB) D 373,* Phil Stephensen-Payne (Consourse Computer Center ; LEEDS England.) C 374,* Bob Denny (Creative Systems Design) / 375,* Todd Little (SAI) 7 376,* DECUS Catalogue (Lars Palmer)  R Page 6      R If this list contains any errors or omissions please send a S correction as soon as possible to the RSX/IAS SIG Tape Copy Coordinator. + Glenn C. Everhart 4 RCA AD Engineering MS 206-1 _ Rt. 38 / Cherry Hill, NJ 08358 ( (609)-486-6328  .page size 60,80 .lm 5;.rm 80.nhy .spacing 1.autoparagraph.center=GUIDELINES FOR SUBMISSION OF PROGRAMS TO THE RSX/IAS SIG TAPE.center (Updated for Fall 1986 SIG Tape).skip 1.fill.paragraph 5,0ESubmissions may be made using any standard DEC tape copy utility. FLXB(or EXCHANGE on VAX) DOS format at 1600BPI is the preferred format@UNLESS you have a previously assigned UIC for the tapes. In thatEcase, BRU is the recommended format, as long as all files are in yourApreviously assigned UIC(s). If you make your submission on a VAX,DVMS Backup is the preferred submission format. Submissions may be atCany density (800, 1600, 6250) but 1600 is preferred. Submissions onBfloppy or TU58 can be handled, but not in general during symposia.&If your submission contains files in aIformat which FLX will garbage, e.g. ISAM, or fixed-length records, pleaseJcontact the Tape Copy Coordinator for a UIC assignment so that you can useEBRU. Alternatively, place the files in a universal library00b\_^TADATADATADATADATADATA and submit%the .ULB file (which FLX handles OK).9 Each UIC should contain a README.1ST file that describes?the contents of that UIC. Submittors are encouraged to includeMas much documentation as possible (in STANDARD RUNOFF if possible) and to useIcommand files where possible. If you must submitt a DOC file that is the?output of RUNOFF make sure you pass it through TECO (see below)7or FLX will put extra carriage-return line-feeds in it.A It will be GREATLY appreciated if you can label the UICs used onHthe tape with a sticky label. If you haven't an assigned UIC, please useLUICs with group numbers in the range 101-277 so there will not be collisionsFwith assigned UICs. Remember that the stuff must be assigned a new UIC@if your UIC isn't assigned, so you'll make life a lot easier forGothers if you don't make your programs UIC dependent and if you make itCeasy to copy to a new account (or set of accounts) from whatever is on your tape. Submittors MUST NOT supply6any licensed software. Submissions should not contain9listing files, map files, or task image files where these;can be recreated by any site. (Task images of programs that:need compilers not all sites may have are OK.) If you must)submit any of these, please indicate why. To keep the>tape volume down please submit only source modules if you can.BAlso submit a command file to assemble and task build the program.EMake SURE all modules required by your submission are present. WatchGout for those private libraries that contain an object module for whichyou didn't include the source.D If you are updating a program that was originally submitted by you,Iyou should resubmit the entire program, not just the changes. You shouldCalso use the orginal UIC you were asssigned. If you are updating a(program that some else submitted, do NOTHuse the original submittor's UIC, unless you have made arrangements with;the original submittor. Allocate a new UIC of your own andMmake a reference to the original submittor's UIC, as well as the version/tapefrom which you started.D Please do not submit grab-bags of software which include unmodifiedNversions of programs from previous tapes. That just makes life very difficultIfor those people who are trying to make indices of the SIG tapes, as well3as making the Symposium Tape longer than necessary.? Below you will find a list of submittors and their current UICEassignments. When you bring software to the symposium meeting pleaseDhave it in the proper UIC. If you do not have a UIC or wish to haveAanother one please contact the Tape Copy Coordinator prior to theGsymposium. You will notice that Lugs have been given UIC's of the formC[nnn,*]. The local LUG Librarian is responsible for allocating the=member UICS. For example, if you belong to CARTS (UIC 300,*)@you should contact Ben Burch, not the Tape Copy Coordinator, for>your UIC assignment. Only those poor unfortunate souls who doBnot belong to a LUG need bother to call the Tape Copy Coordinator.; If you have a DOC file from RUNOFF to submit, please applyFthe following proceedure with TECO before putting the DOC file on tape with FLX..nf >TEC filename.DOC *ex$$ ($=) >PIP filename.DOC/PU >.fill5This causes TECO remove the embedded carriage controlEfrom the DOC file. FLX does not understand embedded carriage controlAand it will put extra carriage-return, line-feeds in the DOC file.which we cannot get out at the tape copy site.> As an alternative to the above, use John Clement's version ofLRUNOFF, UIC [332,12] on the S83 or S84 tapes, with the /-CR switch to output;records with implied rather than imbedded carriage control. .lm 0;.nf;.pg5 THE CURRENT UIC ASSIGNMENTS FOR THE RSX/IAS SIG TAPE 4 70,* PASCAL (much better versions on the STRUCTURED LANGUAGES SIG tape) 200,* P/OS SUBMISSIONS 250,* RAINBOW ETC. SUBMISSIONS& 300,* CHICAGO LUG (CARTS) (Ben Burch), 301,* SOUTHERN CALIFORNIA LUG (Jim Neeland) 301,050 Alan Frisbie 301,100 D. A.00bj Truesdell 302,* SEATTLE LUG (Ray French)% 303,* LOS ALAMOS LUG (Jim Harrison)' 304,* MIDLANDS LUG (Robert Fairchild)" 305,* COPEUS LUG (offical RUNOFF) 306,* SANDIA LABS ???? 307,* BAYLUG (Gary Maxwell) 307,110 G.S. Whittlesey# 310,* TARLUG (Toronto) ???? 311,1 AUSTIN LUG (Marge Knox) 311,not 1 LOS ALAMOS, 312,* G. Everhart, G. Hoffing, R.J. Kirkman. 312,375 Larry Finger (PortaCalc applications) 313,* OAK RIDGE (K. J. Cross)0 314,* David Sykes (RATFOR) (Structured FORTRAN)4 315,* DUKE UNIVERSITY (Henry Tumblin, Scott Wells)% 316,* TECHNOLOGY, INC. (Paul Elliot)% 317,* ST. LOUIS LUG (Michael Scott) 320,* NEW ORLEANS ????$ 321,* PHILADELPHIA LUG (A. Gaughan) 321,100 Bob Uleski# 322,* INDIANA LUG (Larry Dollens) 323,* PORTLAND LUG& 324,* WRUG (Cleveland) (Douglas Fair) 325,* DENVER LUG' 326,* NORTH TEXAS LUG (Jeff Hamilton)" 327,* SOUTH MAIMI LUG (Angel LI)D ============================================================+ 330,* IAS SIG - IAS-SPECIFIC PROGRAMS ONLY= ---------please contact IAS SIG for ,nnn assignments -------= ============================================================- 331,* STRUCTURED LANGUAGES SIG CONTRIBUTIONS 332,* HOUSTON LUG" 332,12 John Clement (Rice Univ.) 333,* Alan Watson 333,100-105 HANS JUNG 334,* Scott Snadow' 335,* GREATER LANSING LUG (Hugh Gregg)' 336,200 NETWORK contributions from DEC 336,300 John Covert (DEC) 337,20 Walter I. Levy 337,24 Gilbert DeLeeuw 337,30 Ken Demers 337,40 J.S. Toms 337,50 Jim McGlinchey6 337,60 Mark Goegelman (Johnson and Johnson Products)0 337,100 Chuck Turley (DEC) RSX-11D accounting 337,110 Chuck Turley 337,120 Chuck Turley< 337,140-170 Edward Dekker (Computer Corporation of America)* 337,200 Arthur T. McCLinton (MITRE CORP)+ 337,210 Denny J. Walthers (American McGaw)" 340,* ASDARC LUG (Mark Johnson) - 341,* MAINE LUG (John Guidi) (JACKSON LABS). 342,* TECO versions from DEC (Andy Goldstein)* 343,1 Robert A. Nance (Johnson Controls)' 343,10-14 John Isakson (ZIMPRO, Inc.)9 343,21-26 Paul D. Clayton (Republic Management Systems)6 343,30 Bruce Mitchell (3M Engr. Syst. & Technology)7 343,36-37 Bruce Mitchell (3M Engr. Syst. & Technology) 343,40 Peter Hunter (UC Davis)7 343,41-42 Bruce Mitchell (3M Engr. Syst. & Technology)> 343,50-54 M. Eric Husby (Project Syst. Software _& Develop.), 343,60 Robert L. Reed (Peterson A.F. Base), 343,70 Jack Harvey (National Data Systems) 343,100 RT/RSX Emulator Task3 343,120 Jim Bostwick (Cargill, Minneapolis Minn.)1 343,130 Mark Northrup (Miller, Milwaukee, Wis.)8 344,* Jim Downward (CCL console command language, etc. from KMS FUSION), 345,* Dave Argue (Atomic Energy of CANADA)# 346,* Ralph Stamerjohn (Monsanto) 347,* H. L. Coleman& 350,1-3 Harold Levy (APPLICON, Inc.) 350,30 Kerry Wyckoff5 350,31 Ed Cetron (University of Utah) 350,34 Richard Newell$ 350,50 Kitty Bethe (Bankers Trust) 350,60-61 Ross Amann& 350,100 Harold Levy (APPLICON, Inc.)' 350,120-123 Dan Eisner (Perkin Elmer)# 350,131 Al Bennett (Lear Siegler)( 350,200 George Velez (Revlon Research)3 350,240 Mike Drabicky (Rockwell, Richardson, TEX) 350,300 Paul Sorenson' 350,340 Utah Power & Light (Eddie Fey) 351,1-7 Mike Pettengill (DEC) 351,20 Benson Ackerman 351,30 Brian Nelson 351,40-51 Dennis Costello< 351,70-103 Vincent Graham & ROBIN MILLER (Project Software)" 351,110-111 J.F. Vibert (FRANCE) 351,120 Derek Franks 351,130 Barry Breen4 351,140 Dan Sedlacek (#40 Bellevue,Neb.) 351,142 Larry Finger, 351,144-145 Thomas Wyant II (Richmond, Va.) 351,150 Scott Smith$ 351,160 Raymond Willis (Berea,Ky.) 352,* NASA/GODDARD9 353,* Robert K. Stodola (Institute for Cancer Research)2 354,* Steve Illenick (Republic Buildings, Corp.) 355,* Mike Blake-Knox  355,100 Jerry Ethington 356,10 Carl Mickelson  356,20 E.F. Beadel  356,30-31 Bart Lederman ( 356,40 KERMIT (Columbia University)00bcdTADATADATADATADATADATA 356,50-51 Vince Perriello 356,60 Gordy Ross  356,70 Dennis Jensen % 357,* SEABOARD LUG (C.A. Ianniello) (Mobil Oil, Toxicology) 3 360,* ARAP (Aeronautical Research of Princeton) 361,* BATTEL NORTHWEST 362,* Bruce Mcnaughton (DEC) 363,* DUKE UNIVERSITY= 364,* Harry Atherton (University of Cincinnati Medical Ctr)7 365,* SRD of Files-11 working group - see also [352,4]. 366,* CISCO (Robert Watson and Gary Siftar) 367,* John Wood- 370,1 Mark Weston (City of Gainesville, FL) 370,10 Hal Hackney (Dallas TX)) 370,11 John P. McGrath (Washington, DC)( 370,20 L.M. Fraser,J. Shultz (Maryland) 370,21 Don Rubin) 370,30 Robert Grandle (NASA/LANGLEY MD) 370,37 David Corey 370,40-41 Marvin Brown! 370,50 Gerry Pelletier (OTTAWA)/ 370,60 Wayne Dernoncourt (NAVAL ORD Maryland) 370,70 Bob Abramson (DEC) 370,100 Richard Evans (BOSTON)2 370,106 Jared Spool, John Dunning (Cambridge, MA)0 370,110 Bruce Bernstein (General Electric, NY)/ 370,112 Gus Altobello (Reuters, Hauppage, NY)( 370,120 Stever Duff (Orange County CA)% 370,130 Mike LeVine (China Lake CA)' 370,140 Reb Burroughs (Fort Worth TX)# 370,150 Kevin Angley (Raleigh NC) 370,160 not used( 370,170 Bob Rock (Northern Telecom NH)( 370,200 Carl Zimmerman (Scott AFB, IL)/ 370,210 Rick Webster (Caterpillar Tractor IL)6 370,220 B. Z. Lederman (ITT World Communications NY), 370,230 Thomas Wyant (DuPont, Richmond VA)* 370,340-344 Brian Nelson (U of Toledo OH)* 370,350 George Cornelius (Mayo Clinic MN)$ 370,352 Steven Jobes (Mayo Clinic)5 370,360-61 Bob Awde (General Mills, Minneapolis MN) 370,364 C. Staase+ 371,* Gerald Johnson (Battelle Northwest)# 372,* Bruce Montague (Brooks AFB)8 373,* Phil Stephensen-Payne (Consourse Computer Center LEEDS England.)+ 374,* Bob Denny (Creative Systems Design) 375,* Todd Little (SAI)% 376,* DECUS Catalogue (Lars Palmer) .lm 8;.fill.s 2: If this list contains any errors or omissions please sendJa correction as soon as possible to the RSX/IAS SIG Tape Copy Coordinator..nf Glenn C. Everhart RCA A&D Engineering MS 206-1 Rt. 38 Cherry Hill, NJ 08358 (609)-486-6328 TCPY< TCPY WILL COPY (ON VAX OR PDP11) ONE TAPE TO ANOTHER. IT IS?SET UP TO COPY THE TAPE ON LUN 1 TO THAT ON LUN 2, AND THE TASK?IMAGE COPIES MM0: TO MM1:. THE TASK NAME USED IS ...T2T, SO YOUENEED ONLY PUT THE TAPES UP (UNMOUNTED FOR RSX11M, MOUNTED FOREIGN FORFRSX11M+ OR VMS) AND RUN IT. ON VAX, MOUNT AND SET THE DENSITY WITH THEBMOUNT COMMAND. WITH THE PDP11, ONE OF THE COMMANDS OF DGT WILL SET6THE DENSITY OF THE OUTPUT (THE A COMMAND), SO A SIMPLECDGT A 1,4000 WILL SET MM1: TO 1600 BPI DENSITY. LIKEWISE A COMMANDO>LIKE DGT A 0,4000 WILL SET THE DENSITY OF MM0: TO 1600, THOUGHON A TE16 THAT IS NOT NEEDED.A; THIS PROGRAM HANDLES ALMOST ANY TAPE, COPIES TO DOUBLE EOFSAAND DOES NOT POSITION TAPE PRIOR TO USE. USE DGT (INCLUDED ON THE AEARLIER TAPE) TO DO THAT. ALL THIS PROGRAM DOES IS READ AND WRITE 6AND ASSUMES THE OTHER TAPE CHARACTERISTICS ARE PRESET.A TCPY IS IN HEAVY USE AT OUR SITES ON BOTH VAX AND PDP11 FOR TAPEE TO TAPE COPY. .TITLE TCPY .IDENT /GCE000/.;TAPE COPY FROM LUN 1 TO LUN 2, IMAGEMODE WITH0;BIG BUFFERS. ALLOCATE 1 BUFFER OF HUGE SIZE AND';BOUNCE DATA THROUGH IT. IGNORE ERRORS.*BUFFR: .BLKW 15000. ;SUITABLY GIANT BUFFER0;NO TAPE POSITIONING FIRST...USE TPP TO DO THAT. .MCALL EXIT$S,QIOW$S .GLOBL TCPY,DOITIOIN: .WORD 0,0IOOUT: .WORD 0,0 ;I/O STAT BLKS%EOFFLG: .WORD 0 ;COUNTER OF EOF CHARSB;START AT "DOIT" FOR 1600BPI OUT, OR "TCPY" TO LEAVE DENSITY AS IS&;(USE DGT TO SET UP VIA 'A' COMMAND.)_00dP O  ;DOIT:  .IF DF,DO16006 QIOW$S #IO.STC,#INLUN,#1,,,,<#4000> ; SET TO 1600 BPI .ENDCTCPY:L< QIOW$S #IO.RLB,#1,#1,,#IOIN,,<#BUFFR,#30000.>;READ A RECORD BCS LOSE ;LOSE IF NO DRIVER;IOIN = BYTES SEEN?;CHECK FOR EOF, AND IF SEEN, COUNT IT AND WRITE TO OUTPUT TAPE. ,;OTHERWISE WRITE DATA OUT. ON 2ND EOF, EXIT. .MACRO ETST ERR CMPB IOIN,#ERRB BEQ DOEOF .ENDM# ETST IE.EOF ;1 ENDFILE SEEND7 ETST IE.EOV ;END OF VOLUME (2 EOF ON TAPE) SEEN(% ETST IE.EOT ;END OF TAPE SEEN CMPB IOIN,#IE.PRI BNE 1$O EXIT$ST1$:L CLR EOFFLG ;SAY GOT DATA6! MOV IOIN+2,R0 ;GET BYTES READ IN.> QIOW$S #IO.WLB,#2,#2,,#IOOUT,,<#BUFFR,R0> ;WRITE WHAT WE READ BR TCPY#DOEOF: QIOW$S #IO.EOF,#2,#2,,#IOOUTE# INC EOFFLG ;COUNT EOFS CONSECUTIVEO CMP EOFFLG,#2 BLT TCPYW LOSE: EXIT$S .END DOITXIT. .MACRO ETST ERR CMPB IOIN,#ERRB BEQ DOEOF .ENDM# ETST IE.EOF ;1 ENDFILE SEEND7 ETST IE.EOV ;END OF VOLUME (2 EOF ON TAPE) SEEN(% ETST IE.EOT ;END OF TAPE SEE6 Volunteers for phoning trees (VAX, RSX) for verifying correctness of nodes: Glenn Everhart 409 High St. Mt. Holly, NJ 08060 3/20/1986 609-486-6328 work 609-261-3709 home Gus Altobello, Jr. Programmer/Analyst North America REUTERS% 90 Davids Drive, Hauppauge, NY 11788 516-435-7036 (Eastern Area) Paul M. Kvamme Systems Programmer Idaho Power P.O. Box 70 Boise, Idaho 83707 208-383-2928 (Central Area) Paul Waterstraat Programmer, Dept. of Geology University of California Davis, California 95616 916-752-7421 David Edelman0 Technical Systems Development, Plant Automation Electronic Data systems Corp./ 300 East Big Beaver Rd. (also will edit lib P.O. Box 7019 items) Troy, Mich. 48007-7019 313-524-8303 Gilbert DeLeeuw Systems Analyst; Graduate Cardiology Consultants, Inc. (also will edit lib Suite 101 items)+ Frederick S. Pepper, Jr. Memorial Pavilion One Graduate Plaza Philadelphia, PA 19146# 215-893-7467 (home: 609-772-9290) J. Lemmons% Analyst, Regional Coin/CTOCS Service Bell Tri-Co Services 931 14th Street, Room MA 1020 Denver, Colorado 80202 303 624 1313 (home: 680 8183) J. Mark Baldridge Senior Systems Analyst( Benton Dickinson (also will edit lib1 BD Microprocessor Systems items and move tapes6 4917 Waters Edge Drive, Suite 270 to RL01/RL02/TK25/ Raleigh, N.C. 27606 RX02) 919 851 0195.ENABLE SUBSTITUTION!.ASKS DVC DEVICE (INCLUDE COLON)>UFD 'DVC'[200,006]UFD 'DVC'[200,007]UFD 'DVC'[240,003]UFD 'DVC'[240,004]UFD 'DVC'[300,001]UFD 'DVC'[300,002]UFD 'DVC'[300,021]UFD 'DVC'[300,022]UFD 'DVC'[302,100]UFD 'DVC'[302,101]UFD 'DVC'[302,102]UFD 'DVC'[304,340]UFD 'DVC'[312,315]UFD 'DVC'[312,323]UFD 'DVC'[312,345]UFD 'DVC'[312,371]UFD 'DVC'[312,375]UFD 'DVC'[312,376]UFD 'DVC'[321,100]UFD 'DVC'[330,021]UFD 'DVC'[330,100]UFD 'DVC'[330,101]UFD 'DVC'[330,102]UFD 'DVC'[330,103]UFD 'DVC'[330,104]UFD 'DVC'[330,105]UFD 'DVC'[330,106]UFD 'DVC'[330,107]UFD 'DVC'[330,110]UFD 'DVC'[330,111]UFD 'DVC'[330,112]UFD 'DVC'[330,113]UFD 'DVC'[330,114]UFD 'DVC'[330,115]UFD 'DVC'[330,116]UFD 'DVC'[343,036]UFD 'DVC'[343,037]UFD 'DVC'[343,041]UFD 'DVC'[343,042]UFD 'DVC'[343,120]UFD 'DVC'[351,070]UFD 'DVC'[351,072]UFD 'DVC'[351,073]UFD 'DVC'[351,144]UFD 'DVC'[352,110]UFD 'DVC'[355,100]UFD 'DVC'[356,030]UFD 'DVC'[356,031]UFD 'DVC'[356,032]UFD 'DVC'[356,033]UFD 'DVC'[356,040]UFD 'DVC'[356,041]UFD 'DVC'[356,042]UFD 'DVC'[356,043]UFD 'DVC'[356,044]UFD 'DVC'[356,045]UFD 'DVC'[370,020]UFD 'DVC'[370,364]00fdTADATADATADATADATADATA %U.S RSX SIG Tape Copy Tree, Fall 1986 PRELIMINARYANOTE: This list is all the LUG contacts currently known and their@statuses. Please look for your LUG contact. If there's a mistakeAor your contact isn't there, ADD IT TO THIS LIST OR FIX THE LIST.>The codes inside *** *** brackets are Spring 86 tape status. N<means requested participation for Fall '86. T means have the2Spring '86 tape. P means Pro 350 interest locally.6 If you know your LUG is CORRECTLY represented, please)also write a note that it is on the list.+--------------+|Eastern Region|+--------------+Barton F. Bruce ***NT*** >>#Cambridge Computer Associates, Inc.222 Alewife Brook PkwyCambridge, Mass. 02138 617-868-1111*Bob Freeborn *** off tree in spring 85 *** Savin Corp. P.O. Box 4500Binghamton, NY 13902607 729 6531 Triple Cities LUG Pro activity: Mark Berman Berman's Motoe Express, Inc. P.O. Box 1566 Binghamton, NY 13902Joe Bingham Mantech International2320 Mill RoadAlexandria, Va. 22314(703) 838 5600 VAX SIGDECUS Australia: >> Richard A. Wittenoom Managing Director' Richard Wittenoom & Associates PTY LTD 3 Ord St. West Perth, W.A. 6005 AUSTRALIA 0-9-3-222-777DECUS Europe: >> Alan Silverman CERN (European organization for nuclear research) Computer Operations 1211 Geneve 23 SWITZERLAND 022-83-24-87 DECUS Canada: David J. Wilson DECUS Canada Library Committee! Canada Centre for Remote Sensing 2464 Sheffield Rd. Ottawa, Canada K1A 0Y7 613 998 4993 Brad L. Tinney >> Canadian National Government Canadian Hydrographic Service Bayfield Lab 867 Lakeshore Rd. P.O. Box 5050 Burlington, Ontario L7R 4A6 CANADA 416 637 4728 Bob Uleski100 Cascade Dr.Allentown, PA 18103)215-264-2800 (Other Media Working Group)DECUS Library >> Dom DiNolloLoral ElectronicsECC Ridge HillYonkers, NY 10210 914-968-2500 Marty Dwyer Bicknell Photo Service, Inc.71 U.S. Route 1Scarborough, Maine 04703(207) 775 3126 Maine Thomas VianaNaval Underwater Systems Center Code 3511 Bldg. 1711-1Newport, R.I. 02841#(401) 841 2648 Naval Underwater LUG STEVE LADDTSC INCMount Support Rd Lebanon, NH03766(603) 448 3838 X159 Upper VallPeter H. Theune SY70TNATC Patuxent RiverPatuxent River, Md. 20670 Mal GwynneBendix Corp. Field Engineering One Bendix Rd Ms 111/PAOColumbia, MD. 21045301 964 7632 DC RSX LUGDr. L. Michael Fraser200 East Tazewell RoadSterling, Va. 22170DC LUGA F BALDWIN IIIUNIVERSITY OF VERMONTCOMP SCIENCE AND ELEC ENG DEPTVOTEY BUILDINGBURLINGTON, VT 05405(802) 656 3330 VT INSTALLLance F Jackson Harvard Univ Science Center 1 Oxford StCambridge, MA 02138'(617) 495 1266 MITLUG/GreaterBoston LUGMICHAEL REILLYDIGITAL EQUIPMENT CORPPK2/M21 129 Parker St Maynard, Mass DEC internalDONALD ELLIS MERUSI ***N***PRATT & WHITNEY AIRCRAFT400 MAIN ST 161-05EAST HARTFORD, CT 06108(203) 565 3970 CONN VALLEDONALD E STERN, JR ***N****Warner Lambert Co10 Webster Rd.Milford, CT 06460(203) 878 9351 X302 Ken MoserCognitive Systems234 Church St. Suite 901New Haven, Conn. 06510!203 773 0726 Stamford Student LUGGerald McCaffreyMIT Lincoln LaboratoryRM C-391Lexington MA 02173(617) 863 5500 x3532 MIT/LincoJohn Hasstedt ****NT*****LILUG Physics Dept.SUNY at StonybrookStony Brook, NY 11794-3800(516) 632 8154 Pro: Howard Austerlitz Materials Science SUNY Stony Brook, NY 11794-2275 516-246-7918 Gus AltobelloReruters US, Inc. 90 Davids Dr.Hauppage, NY 11788 516 435 7036 LILUGRobert P. Tinkelman#Cambridge Computer Associates, Inc. 56 Beaver St. NY, NY 10004(212) 425 5830 NY Metro LIZ DISKANT New Rochelle City School Dist515 North Ave.New Rochelle, NY 10801(914) 632 9000 x341 NY EDUC LU Rene RobinsonMonmouth Medical Center300 Second Ave.Long Branc00fO  h NJ 07740201 - 222 5200 x 2010 SeaboardEDWARD F BEADEL JR CAUSE INSTRUCTIONAL COMP CTR SUNY - OSWEGOOSWEGO NY 13126(315) 341 3055 LAKESHOREDENNIS P COSTELLO ***NTL***Cornell UniversityNATIONAL SUBMICRON FACILITYG-02 KNIGHT LABITHACA NY 14853(607) 255 2329 ITHACA MIN Pro: Wendy Busch 102 Malott Hall JGSM Computing Cornell U. Ithaca NY 14853 607 256 6300 Ron PanettaGENERAL ELECTRIC COEP3-144 PO BOX 4840SYRACUSE, NY 13221(315) 456 2555 CENTRAL NY Judith B. Marx CCTC-CSHael Bldg. 320 Kodak ParkRochester, NY 14650 GRALUG 716-722-5219 PRO interest: G. L. Griswold PO Box 81 Webster NY 14580 716-872-3522 work 716-722-1723Robert F Curley Room 410133 South 36th StPhiladelphia PA 19104(215) 662 3083 IAS SIG PAUL KESSLER AMD BUILDING 515BROOKHAVEN NATIONAL LABUPTON NY 11973(516) 282 4156 UptonRobert E GRANDLE ****NT*****NASANASA LANGLEY RES CTR MAIL STOP 462Hampton Va 23665(804) 865 3577 TIDEWATERRobert B. Hoffman University of Pittsburgh306 Alumni HallPittsburgh, PA 15260(412) 624 1729 Pittsburg Pro: Chuck Glassmire U. of Pgh. Computer Center 110 O.E.H.# Pittsburgh PA 15260 412 624 6355Hal Hudler JRC-41Phillip Morris USAR&DP.O. Box 26603Richmond, VA 23261(804) 274 2888 Central ViRONALD H KLAUSEWITZ WEST VIRGINIA WESLEYAN COLLEGE59 COLLEGE AVEBox 39BUCKHANNON WV 26201(304) 473 8000 x8333 WEST VIRGISusan Hassell $Burlington Industries Corp. R+D LabsP.O. Box 21327Greensboro, NC 27420#(919) 454 3161 Central Piedmont LUG Don W. OldsWofford College SpartenburgSC 29301(803) 585 4821 Decus CaroJim Shultz ***NT***USDA/BHNRC Nutrient Comp LabRoom 216 Bldg. 161 BARC EastBeltsville, MD 20705 301 344 2147Wash Area Lug Sharon WeissNAVSEA SYSCOM Headquarters Code 05NG31Washington, DC 20362Washington PRO LUG 202 692 0789.Fred Rybczynski *** MOVED, no forward addr ***Commander, USAMRICDBuilding E3100Aberdeen Proving GroundMD 21010(301) 671 3581 x3582 APGLUGJOHN F STITZINGER HRB SINGER PO BOX 60300 SCIENCE PARK ROADSTATE COLLEGE PA 16801(814) 238 4311 PENN STATEJANET E ANDERSON BERNTSEN )Environmental Monitoring & Services, Inc.800 EASTOWNE DRIVE SUITE 200CHAPEL HILL NC 27514 (919) 493 2471 RESEARCH TriangleWilliam Leroy Resourceful Solutions, Inc Suite 1020470 East Paces Ferry NEAtlanta, GA 30305(404) 231 3117 ATALUGPaul Ferrill ***NT***Computer Science & Applications 2-H David St.Fort Walton Beach, Fla. 32548(904) 883 0310 FLA PanhanMICHAEL NEWELL FLORIDA INSTITUTE OF TECHNOLACADEMIC COMPUTER SERVICES150 West University BlvdMelbourne, FL 32901(305) 723 3701 x7255 Fla PDP-11Bill Tabor ***N***Computer Software Consulting9411 NW 8th St.Pembroke Pines Fla. 33024 305-431 1942Tri-County LUG Bob ThompsonMartin Marietta Corp.Cape Canaveral Ops.POB 1399Cocoa Beach, Fla. 92921305 853 5643 Central Fla. ARTHUR SMITHUNIVERSITY OF FLORIDADEPT OF STATISTICS219 ROLFS HALLGAINESVILLE, FL 32611(904) 392 1949 GATORLUGHumberto Sosa ***N****RCA Service Co. Box 3935 USNSF.P.O. Miami, Fla. 34051-3935(809) 865 7314 Puerto Rico NUG+--------------+|Midwest Region|+--------------+Amanda F. Stokes #27 ***NTP***!Teledyne Brown Engineering MS 102Cummings Research Park300 Sparkman Dr.Huntsville, Alabama 35807 205-532-1842 Pro: Bob Payne DEC Suite 1200 1200 Sparkman Huntsville, Ala. 35807 205 837 3440 Mark R. VevleGreater Birmingham Area LUGUniv. of Alabama at Birmingham 244B SDB13University StationBirmingham, Ala. 35294Elizabeth Bailey Shoals Area LUGTVA222 CEBMuscle Shoals, Ala. 35660 205 386 2788Dan Tipton #14East Tennessee LUGGE117 Flint RoadOak Ridge, TN 37830 615 482 5000Jerry Ethington #83 Kentucky PDP-11 LUGProlifix, Inc.245 Hawkeegan Dr.Frankfort, Ky.00fdTADATADATADATADATADATA 40601 502-223 5489Frank Atkinson #71 Central Ohio LUG1900 E. Dublin-Granville Rd. Suite 100Columbus, Ohio 43229 614-889-0841 Brian Nelson Toledo Ad Hoc LUGUniv. of ToledoComputer Services2801 W. BancroftToledo, Ohio 43606 419 537 2511Rick Sharpe #65 Toledo Sci+Tech Prog LUG Toledo EdisonM/S 3085 300 MadisonToledo, OH 43652419 259-5000 470Ryan Harvey ***n***Muskingum College LUGComputer CenterMuskingum CollegeNew Concord, Ohio 43762 614 826 8493Tom Haase #72 Western Reserve LUGSOHIO4440 Warrensville CenterCleveland, Ohio 44128 216 581 5724 PRO address: Jamie Doll 4440 Warrensville Rd Cleve. OHIO 44128 216-581-5395Harry Atherton #42 Tri-State LUG RSX LibrarianU. C. Medical CenterML 541231 Bethesda Ave.Cincinnati, OH 45267 513 872-5341 PRO: Tom Glenchur 1599 Glen Parker, Apt. 12 Cincinnati, Ohio 45223 513 542 3847 (home)Mike Fauber #12 Dayton LUG2000 Forrer Blvd.Delco Products, P.O. Box 1042MS 4-07Dayton, Ohio 45401 513-258-7707 Rodger OrrOwens Corninf FiberglasBox 415Granville, Ohio 43023 Attn: G-22-1614 587 8038 LAMA LUGJohn C. CollinsIUCF2401 Milo B. Sampson LaneBloomington, IN 47401 812-335-2891IU/Bloomington LUG Stuart Boyle Central Indiana LUGPurdue University(ADN) Smith Hall rm. 105W. Lafayette, IN 47907 317-494-8339; replces: ;Tim Gardner #61  ;Central Indiana LUG ;Purdue University ;Smith 105, AG Data Network ;West Lafayette, IN 47907 ;317 494-83339Jim Downward #37 ****NT***** (new name: Robert L. Hays.)Southeastern Michigan LUGKMS Fusion Inc. P.O. Box 15673621 S. State St.Ann Arbor, MI 48106 313 769-8500Mike McPherson #91 Greater Lansing LUGMichigan State University269 EngineeringEast Lansing, MI 48824 517 353-9769$Kreigh Tomaszewski #63 ****NTLP****West Michigan LUGAmway Corp. (good guy..upgrade)EDP Technical Support 21A-2D7575 E. Fulton Rd. Ada, MI 49355 616 676-7955 Pro: Gary Wagner Amway Corp. 7575 E. Fulton Rd 26-2C Ada, Mich. 49355 616 676 7734Jim Flatten #35 Skunk River Small Systems LUGAmes Laboratory ISU/VSDOE304 metallurgyAmes, IA 50011 515 294-4823Bob Streeper #04Bi-State DECUS LUGThe Cedar Rapids Gazette500 Third Avenue SE P.O. Box 511Cedar Rapids, IA 52401 319 398-8275Mark Buda ***NTL***Souteastern Wisconsin LUGEMS12000 W. Park PlaceMilwaukee, Wis. 53224414-359-9800 x228William Patterson #23 Madison Wisconsin LUGAlmark Enterprises, Inc.6425 Odana Rd.Madison, Wisconsin 53719 608 274-3140Steven Peschke #90Northeastern Wisconsin LUGNetwork-Systems Design230 Koeller Rd.Oshkosh, WI 54901 414 231-3333 John Vilandre #01 ***TP***Loon LUGUniversity of Minnesota 1-210 HSUA EpidemiologyMinneapolis, MN 55455 612 376-4066Jim Leedham #36 Southeast Minnesota LUGMayo FoundationSection of Engineering200 First Street SWRochester, MN 55905 507 284-2620Tony Scandora #09 >>Chicago Area Real Time SocietyArgonne National LaboratoryCMT 205Argonne, Ill. 60439 312 972 7541Gerald McGinnisArgonne LSI LUGArgonne National Labs817-A105Argonne, IL 60439 312 972-6963Jerald Wray #06Central Illinois LUGUniversity of Illinois 487 Loomis Laboratory of Physics1110 W. Green St.Urbana, IL 61801 217 333-4922Ralph W. Stamerjohn St. Louis LUGMeridian Technology Corp. P.O.Box 2006St. Louis, Mo. 63011 314 394-1600Steve Harrison Hallmark Cards, Inc.2501 McGee, Mail Drop 352Kansas City, Mo. 64141 816 274 4579#Dr. Robert Fairchild #67 ****NTL*** Midlands LUG Nebraska Wesleyan University 5000 St. PaulLincoln, NE 68504-2794%402 465-2341 (needs to be leaf node)Gene Dugger #19 Arkansas LUGHarding UniversityAcademic Computer Center P. O. Box 753Searcy, AR 72143501 268-6161 266 Guy Dunbar Central Oklahoma PDP11 LUGWm. E. Davis & Sons Inc.37 NW 122n00fO  d St.Oklahoma City, Oklahoma 73114 405 751-4660Paul Sandwell #44 Tulsa LUG8611 E. 78th Street SouthTulsa, OK 74133 918 252 5815 Jeff HamiltonNorth Texas LUG E-Systems P.O. Box 1056CBN27Greenville, Texas 75401 214 457 4175(tape copy volunteer: Mike DrabickySOHIO Petroleum5420 LBJ Freeway Suite 900Dallas, TEXAS 75240 214-387-5187)Dr. Terry D. Marriott ***N***Greater Houston Area LUGRice UniversityDept. of Chemistry P.O. Box 1892Houston, Texas 77251713 527-8101 x3256 Pro: Dr. Steven Welch Dept. of Chemistry University of Houston Houston, Texas 77004 713 749 1179Paul Tompkins #82 Brazosport LUGDow Chemical Co., Texas Div.Computer Engineering Dept. APB BuildingFreeport, TX 77541 409 238-7040 Fred Duzik LOTALUGUTHSC- Computing Resources7703 Floyd Curl DriveSan Antonio, Texas 78234 512 691-7351Douglas H. Threatt #77 Alamo Area LUG USAFSAM/TSDSBrooks Air Force BaseSan Antonio, TX 78235 - 5000 512 536-3886Craig Bentsen #75 Coastal Bend LUGCelanese Chemical Co. P.O. Box 9077Corpus Christi, TX 78469 512 241-2343 Margaret H. Knox #02 Computation CenterUniversity of TexasAustin, TX 78712 512 471-3241+--------------+|Western Region|+--------------+# David Taff #76 ***NOT THERE*** Denver Area PDP-11 LUG U.S.G.S. Box 25046 MS 978 Denver Federal Center Denver, CO 80225 (303)234-6479Wilma L. FredricksonBall Areospace Systems Div.POB 1062Boulder, Colo. 80306 303 939 5150Peter ValkonenPikes Peak Area LUG INMOS Corp. PO Box 16000Colorado Springs, Co. 80935(303)-630-4310Dave Healey #85Intermountain Area LUGUtah Power & Light Room 125-511407 North West Temple P.O. Box 899Salt Lake City, UT 84110 (801)535-2804 James F. Harrison #22 ***n***Los Alamos 16 Bit LUGLos Alamos National Lab MP-1, MS H810Los Alamos, NM 87545 (505)667-5688James K. Neeland #38 >>Los Angeles RSX LUGHughes Research LabsM/S RL633011 Malibu Canyon Rd.Malibu, CA 90265 (213)317-5333Roger Jenkins #50 Orange County LUG Wycliffe Bible Translators, Inc.19891 Beach Blvd.Huntington Beach, CA 92648 (714)536-9346Paul WaterstraatSacramento Valley LUGUniversity of California Davis Geology Dept.Davis, CA 95616 (916)752-7421&Clifford Lloyd #99 drop from RSX treeEGG LUGP.O. Box 1912 MS C-81Las Vegas, NV 89125 (702)295-03923Wayne Little #53 ** moved, no forwarding address...Idaho Falls LUG E G & G Idaho Bldg. TSA-F6Box 1625Idaho Falls, ID 83415 (208)526-9353Bradford Castalia #43 Tucson LUG&Idaeim Studio/The Graphics Studios Co.712 N. 7th Ave.Tucson, AZ 85705 (602)624-6629Thomas E. Chenault #84Southern New Mexico LUG!US Army White Sands Missile Range"ATTN: STEWS-NR-AD-A (Mr. Chenault)#White Sands Missile Range, NM 88002 (505)678-5432!Ruth Heide #52 (off tree for F85)Caltech/JPL LUGCalif. Institute of Technology MC 220-47Pasadena, CA 91125 (818)356-4293C. H. Stockley #03 ***NTL***Bay Area RSX/IAS LUGSandia National Labs ORG - 81817011 East Ave. P.O. Box 969Livermore, CA 94550 (415)422-2143&Robert N. Perry #32 ***LT**** >> (NLO)Portland Area LUGTektronix, Inc. M/S 50-454 P.O. Box 500Beaverton, OR 97077 (503)627-5410Paul M. Kvamme Idaho LUG"Idaho Power ; good copy facilities P.O. Box 70Boise, ID 83707208 322 4662 home208 322 2151 work&Larry Ebinger #69 remove from RSX treeCentral New Mexico RSX LUGSandia National Labs Division 7121Albuquerque, NM 87185 (505)844-4186Larry Levine #45Biomedical Computing UCLA LUGDept. of Chemistry 2072 YoungUCLALos Angeles, CA 90024 (213)825-3288Paul Wilfong #30 San Diego PDP-11/VAX LUGVerac9605 Scranton Rd. Suite 500San Diego, CA 92121(619)457-5550 x209Richard E. Russell Getty Oil PO Box 5197XBakersfield, Cal. 93388805 399 2961 x00fQ TADATADATADATADATADATA2440Kern County LUG.Allan Van Lehn #55Livermore National Lab LUGLawrence Livermore Natl. LabMS L-454 P.O. Box 808Livermore, CA 94550i (415)422-6652lSteve Lorentzen #34 n2401 Fourth Ave., Suite 555rSeattle, WA 98121 (206)223-6453 SEALUG Jeff HarrisonIUniversity of Alaska Comp. Net 303 TanakaFairbanks, Alaska 99775-5180 907 474 6329Respectfully submittedGlenn C. EverhartiRCA Aerospace & Defense3MS 206-1Rt. 38Cherry Hill, NJ 08358U 609-486-6328 ac VAX SYSTEMS SIG TREE, Fall 1986 P r e l i m i n a r y(PLEASE HELP BY FIXING UP THESE ADDRESSES IF YOU CAN.Note:+ This file represents our best info on the 0current state of the VAX tape distribution tree /as of Fall 1986 using whatever information was (readily available. Addresses with known -corrections have been fixed up but there are /probably many errors. PLEASE help by fixing up 2these addresses here so a timely notification can ,be set up of VAX tape availability. The New 0England information has been re-inserted from a 1983 vintage tape and updated.% The VAX tapes are available via NLO -(contact Bob Perry, whose address is on this .list, for the contact) and the DECUS library. )Both VAX and RSX tapes are now generally .available, so if you are a LUG librarian, you ,should try to obtain the tapes now for your membership. JOE BINGHAMMANTECH INTERNATIONAL2320 MILL ROADALEXANDIRA VA 22314(703) 838 5600 1 1___ LIBRARY SUBMISSIONS 1 DECUS US 1 249 NORHTBORO ROAD 1 BP02 1 MARLBORO, MA 01752 1 CHANGED 1 (DECUS FOR LIBRARY) 1 1___ OZAN YIGIT 1 YORK UNIVERSITY! 1 DEPT OF COMPUTER SCIENCE 1 4700 KEELE ST 1 DOWNSVIEW, ONT M3J 1P3 1 (416) 667 3976 1 (CANADIAN DISTRIBUTION) 1 1___ GLENN C EVERHART" 1 RCA A&D ENGINEERING 206-1 1 ROUTE 38 1 CHERRY HILL, NJ 08358 1 (609) 486 6328) 1 (RSX SIG and build initial tape) 1 ; 1 ;___ Wendy Koenig( 1 Strategic Information# 1 80 Blanchard St.* 1 Burlington, Mass. 01803 1 617 273 5500 1 /* 1 /___ Ken A. L. Coar8 1 / Engineering Computer Station0 1 / 100 Engineering East2 1 / Univ. of Massachusetts0 1 / Amherst, Mass. 01003( 1 / 413 545 1580 1 /( 1 /___ Thomas Viana8 1 / Naval Underwater Systems Ctr% 1 / Code 3511' 1 / Bldg 1711-1/ 1 / Newport, R.I. 02841( 1 / 401 841 2648 1 /& 1 /___ Steve Ladd# 1 / TSC INC, 1 / Mount Support Rd- 1 / Lebanon, NH 03766: 1 / (603) 448 3838 X159 Upper Vall 1 /) 1 /___ Marty Dwyer 8 1 / Bicknell Photo Service, Inc.+ 1 / 71 U.S. Route 14 1 / Scarborough, Maine 047030 1 / (207) 775 3126 Maine 1 /+ 1 /___ A F BALDWIN III1 1 / UNIVERSITY OF VE00Q O  RMONT: 1 / COMP SCIENCE AND ELEC ENG DEPT* 1 / VOTEY BUILDING0 1 / BURLINGTON, VT 054055 1 / (802) 656 3330 VT INSTALL 1 /) 1 /___ John Hasstedt! 1 / LILUG) 1 / Physics Dept.. 1 / SUNY at Stonybrook6 1 / Stony Brook, NY 11794-3800* 1 / (516) 632 8154" 1 / ;A 1 / ;___ DENNIS P COSTELLO ***NTL***8 1 / ; Cornell UniversityA 1 / ; NATIONAL SUBMICRON FACILITY5 1 / ; G-02 KNIGHT LAB5 1 / ; ITHACA NY 14853? 1 / ; (607) 255 2329 ITHACA MIN" 1 / ;1 1 / ;___ Ron Panetta9 1 / ; GENERAL ELECTRIC CO- 1 / ; EP3-1441 1 / ; PO BOX 48408 1 / ; SYRACUSE, NY 13221? 1 / ; (315) 456 2555 CENTRAL NY 1 /- 1 /___ Steven L. Feldman! 1 / LILUG' 1 / ADAPCO, LTD0 1 / 60 Broad Hollow Road. 1 / Melville, NY 11747( 1 / 516 549 2300 1 // 1 /___ DONALD ELLIS MERUSI4 1 / PRATT & WHITNEY AIRCRAFT. 1 / 400 MAIN ST 161-053 1 / EAST HARTFORD, CT 061085 1 / (203) 565 3970 CONN VALLE 1 /. 1 /___ DONALD E STERN, JR- 1 Warner Lambert Co* 1 10 Webster Rd.- 1 Milford, CT 06460/ 1 (203) 878 9351 X302 1 1 1___ TOM GERHARD! 1 ADVANCED DATA MANAGEMENT 1 15-17 MAIN STREET 1 KINGSTON, NJ 08528 1 (609) 799 4600" 1 (MAKE INDEX) SEABOARD LUG 1 1___ ALAN ZIRKLE% 1 NAVAL SURFACE WEAPONS CENTER 1 CODE K105 1 DAHLGREN, VA 22448 1 (703) 663 7815# 1 WASHINGTON DC AREA VAX LUG 1 ! 1 !___ PETE THEUNE 1 ! SY-70T 1 ! NATC* 1 ! PATUXENT RIVER, MD 20670 1 ! (301) 863 4157' 1 ! SOUTHERN MARYLAND LUG* 1 !  1 !___ BUZ BROWN) 1 ACADEMIC COMPUTING EAST- 1 MEDICAL COLLEGE OF VIRGINIA% 1 BOX 16, MCV STATION$ 1 RICHMOND, VA 23298& 1 CENTRAL VIRGINIA LUG 1 1___ LARRY HAYDEN 1 PFIZER, INC. 1 EASTERN POINT RD 1 CONNECTICUT DATA CENTER 1 GROTON, CT. 06340 1 203 441 4280 1 S. CONN. VAX LUG 1 ;" 1 ;___ LANCE F. JACKSON. 1 ; HARVARD UNIV. SCIENCE CENTER 1 ; OXFORD ST.( 1 ; CAMBRIDGE, MASS. 02138 1 ; 617 495 1266 1 ; MIT LUG 1 1___ DAVE SCHMIDT& 1 MANAGEMENT SCIENCE ASSOCIATES 1 5100 CENTER AVENUE 1 PITTSBURGH, PA 15232 1 (412) 683 9533 1 THREE RIVERS VAX LUG 1 \ 1 \___ JOSEPH SKLARIN. 1 \ METRO COMPUTER SERVICES, INC% 1 \ 60 BROADHOLLOW ROAD$ 1 \ MELVILLE, NY 11747 1 \ (516) 351 7090 1 \ LI LUG 1 \ ;B 1 \ ;___ BOHDAN SEREDA (addressee refused mail)3 1 \ ; AT&T INFORMATION SYSTEMS$ 1 \ ; LZ ID-2127 1 \ ; 30700Q TADATADATADATADATADATA MIDDLETOWN LINCROFT ROAD- 1 \ ; LINCROFT, NJ 07738) 1 \ ; (201) 576 2375* 1 \ ; HOLMDEL VAX LUG 1 \ ;* 1 \ ;___ RICHARD GARLAND8 1 \ ; COLUMBIA UNIV, CHEMISTRY DEPT2 1 \ ; BOX 351, HAVEMEYER HALL- 1 \ ; NEW YORK, NY 10027) 1 \ ; (212) 280 3183' 1 \ ; NY METRO LUG 1 \ ;) 1 \ ;___ JOHN L PRATHER$ 1 \ ; TECHNICON+ 1 \ ; 511 BENEDICT AVE. 1 \ ; TARRYTOWN, NY 10591) 1 \ ; (914) 681 2694. 1 \ ; WESTCHESTER VAX LUG 1 \ ;' 1 \ ;___ PAUL KESSLER 1 \ ; AMD' 1 \ ; BUILDING 5152 1 \ ; BROOKHAVEN NATIONAL LAB) 1 \ ; UPTON NY 11973) 1 \ ; (516) 282 4156M$ 1 \ ; UPTON LUG/ 1 \ ; D, 1 \ ;___ JOHN F STITZINGER% 1 \ ; HRB SINGER $ 1 \ ; PO BOX 600 1 \ ; 300 SCIENCE PARK ROAD1 1 \ ; STATE COLLEGE PA 16801c) 1 \ ; (814) 238 4311r 1 \ ;E, 1 \ ;___ THOMAS W BURTNETT, 1 \ DICKINSON COLLEGE* 1 \ COMPUTER CENTER, 1 \ CARLISLE PA 17013) 1 \ (717) 245 1256a. 1 \ EASTERN PA RSTS LUG 1 \+ 1 \___ JANET E ANDERSON BERNTSENy; 1 \ ENVIRONMENTAL MONITORING & SERVICES, INC. $ 1 \ 800 EASTOWNE DRIVE 1 \ SUITE 200w& 1 \ CHAPEL HILL NC 27514 1 \ (919) 493 2471' 1 \ RESEARCH TRIANGLE LUG3 1 \ IL8 1 \ I___ R E GRANDLE ***REPLIED, OK*** 1 \ I NASA / 1 \ I NASA LANGLEY RES CTR ( 1 \ I MAIL STOP 462+ 1 \ I HAMPTON VA 23665D) 1 \ I (804) 865 3577L( 1 \ I TIDEWATER LUG 1 \ I . 1 \ I___ RONALD H KLAUSEWITZ9 1 \ I WEST VIRGINIA WESLEYAN COLLEGE ) 1 \ I 59 COLLEGE AVE3. 1 \ I BUCKHANNON WV 26201) 1 \ I (304) 473 80083 1 \ I WEST VIRGINIA PDP-11 LUGS 1 \ I ' 1 \ I___ KATHY FURTEK 4 1 \ I LOCKWOOD GREENE ENGINEERS/ 1 \ I SPARTANBURG SC 293XX ( 1 \ I CAROLINAS LUG 1 \ Ii- 1 \ I___ MICHAEL L MCKINNEY ' 1 \ I PIEDMONT TEC ) 1 \ I PO DRAWER 1467 - 1 \ I GREENWOOD SC 29646 ) 1 \ I (803) 223 8357 1 1 \ I SC VAX EDUCATIONAL LUGm 1 \ I * 1 \ I___ TRINA S JACKSON6 1 \ ATLANTA REGIONAL COMMISSION. 1 \ 100 EDGEWOOD AVE NE, 1 \ ATLANTA, GA 30225) 1 \ (404) 656 7730 & 1 \ ATLANTA LUG 1 \ 1 \___ FRANK BUSH- 1 D W MATTSON COMPUTER CENTER . 1 TENNESSEE TECHNOLOGICAL UNIV/ 1 BOX 5071, CLEMENT HALL RM 220a& 1 COOKEVILLE, TN 38505 1 (615) 528 3387 1 TENNESSEE LUGe 1 i ) 1 i___ WILLIAM F LAKE# 1 i AD/KRESSg- 1 i BLDG 380, ROOM 2347- 1 i EGLIN AFB FL 32542 ) 1 i (904) 882 5818 " 1 i FPU LUG 00Q O  1 i / 1 i___ JOSEPH M HILLEBRANDT - 1 i FACILITIES MGT SER * 1 i 601 N. MAGNOLIA, 1 i ORLANDO, FL 32801) 1 i (305) 422 5880 . 1 i CENTRAL FLORIDA LUG 1 i ) 1 i___ MICHAEL NEWELL 7 1 i FLORIDA INSTITUTE OF TECHNOL 5 1 i ACADEMIC COMPUTER SERVICES 3 1 i 150 WEST UNIVERSITY BLVD . 1 i MELBOURNE, FL 32901. 1 i (305) 723 3701 X255. 1 i FLORIDA VAX/PDP LUG 1 i ) 1 i___ DAVID STANFSKI 6 1 i TRT TELECOMMUNICATIONS CORP& 1 i PO BOX 88764 1 i FORT LAUDERDALE, FL 33310) 1 i (305) 792 5100 ) 1 i TRI COUNTY LUG  1 i < 1 i___ AMANDA F. STOKES ***REPLIED...***< 1 TELEDYNE BROWN ENGINEERING MS 1021 1 CUMMINGS RESEARCH PARK + 1 300 SPARKMAN DR. . 1 HUNTSVILLE AL 35807) 1 (205) 532 1842 , 1 NORTH ALABAMA LUG 1  1___ GARY GREBUS$ 1 BATTELLE MEMORIAL INSTITUTE 1 505 KING AVE  1 COLUMBUS OH 43201 1 (614) 424 7156/ 1 ( 1 (___ JACK D CUNDIFF# 1 ( MUSKINGUM COLLEGE & 1 ( NEW CONCORD OH 43762( 1 ( (614) 826 8151 OR 8493" 1 ( CENTRAL OHIO LUG 1 ( )N% 1 ( )___ DAN TIPTON 1 ( ) ORFMA) 1 ( ) 117 FLINT ROADL- 1 ( ) OAK RIDGE TN 37830 ) 1 ( ) (614) 482 5000 , 1 ( ) EASTERN TENNESSEE 1 ( )r* 1 ( )___ JERRY ETHINGTON) 1 ( ) PROLIFIX, INC. , 1 ( ) 245 HAWKEEGAN DR.. 1 ( ) FRANKFORT, KY 40601) 1 ( ) (502) 425 9946N. 1 ( ) KENTUCKY PDP-11 LUG 1 ( ) & 1 ( )___ JOHN S TOMS+ 1 ( ) ALLEN-BRADLEY CO5* 1 ( ) 747 ALPHA DRIVE0 1 ( ) HIGHLAND HTS OH 44143/ 1 ( ) (216) 449 6700 X3979' 1 ( ) OHIO VAX LUG  1 ( ) , 1 ( )___ RONALD J FERGUSON, 1 ( ) XAVIER UNIVERSITY/ 1 ( ) 3800 VICTORY PARKWAY / 1 ( ) CINCINNATI, OH 45207 ) 1 ( ) (513) 754 3111 ( 1 ( ) TRI-STATE LUG 1 ( )O* 1 ( )___ MARION M FAUBER) 1 ( DELCO PRODUCTS/ 1 ( PO BOX 1042, MS 4-07* 1 ( DAYTON OH 45401) 1 ( (513) 258 77070% 1 ( DAYTON LUGO 1 ( 1 (___ STEVE BURNS # 1 ( EATON CORPORATIONA" 1 ( 9475 CENTER ROAD" 1 ( FENTON, MI 48430 1 ( (313) 629 5361 1 ( |' 1 ( |___ BRUCE DANNER + 1 ( | ROSE-HULMAN INSTC& 1 ( | 5500 WABASH0 1 ( | TERRE HAUTE, IN 47803) 1 ( | (812) 877 15117 1 ( | RSTS USERS OF INDIANA (RUIN)  1 ( |S' 1 ( |___ STUART BOYLEO, 1 ( | PURDUE UNIVERSITY4 1 ( | (ADN) SMITH HALL, RM. 1051 1 ( | W. LAFAYETTE, IN 47907 ) 1 ( | (317) 494 8339d. 1 ( | CENTRAL INDIANA LUG 1 ( | ) 1 ( |___ JAMES DOWNWARD % 1 00Q TADATADATADATADATADATA ( | KMS FUSION3 1 ( | 3941 RESEARCH PARK DRIVE ' 1 ( | P O BOX 1567 - 1 ( | ANN ARBOR MI 48106 . 1 ( | (313) 769 8500 X362" 1 ( | SEM LUG 1 ( |S) 1 ( |___ MIKE MCPHERSON14 1 ( | MICHIGAN STATE UNIVERSITY* 1 ( | 269 ENGINEERING- 1 ( | E LANSING MI 48824 ) 1 ( | (517) 353 9769 . 1 ( | GREATER LANSING LUG 1 ( | ? 1 ( |___ BOB DYKSTRA (WAS KREIGH TOMASZEWSKI) ' 1 ( | LEAR SIEGLER * 1 ( | 4141 EASTERN SE! 1 ( | MS 121 3 1 ( | GRAND RAPIDS, MICH 49508E) 1 ( | (616) 241 8686 , 1 ( | WEST MICHIGAN LUG 1 ( |A& 1 ( |___ JIM FLATTEN0 1 ( IOWA STATE UNIVERSITY) 1 ( METALLURGY 304U0 1 ( AMES LABORATORY USDOE( 1 ( AMES IA 50011) 1 ( (515) 294 4823B$ 1 ( SKUNK LUG 1 ( 1 (___ GARY BREUCKMAN, 1 ( COMPUTER SERVICES DIVISION& 1 ( MARQUETTE UNIVERSITY 1 ( 517 N 14 ST $ 1 ( MILWAUKEE WI 53233 1 ( (414) 224 7395 1 ( MILWAUKEE LUG 1 ( ! 5 1 ( !___ ANN VARDA (REPL. TOM MOOG)A2 1 ( ! UNIVERSITY OF WISCONSIN7 1 ( ! PHYSICAL SCIENCES LABORATORY / 1 ( ! 3725 SCHNEIDER DRIVEy- 1 ( ! STOUGHTON WI 53589S) 1 ( ! (608) 873 6651W0 1 ( ! MADISON WISCONSIN LUG 1 ( !5* 1 ( !___ BRUCE L GAARDER- 1 ( ! MACALESTER COLLEGE ) 1 ( ! 1600 GRAND AVEE, 1 ( ! ST PAUL, MN 55105) 1 ( ! (612) 696 6170N6 1 ( ! TWIN CITIES TIMESHARING LUG 1 ( ! ( 1 ( !___ JOHN VILANDRE2 1 ( ! LAB OF PHYSICAL HYGIENE2 1 ( ! UNIVERSITY OF MINNESOTA% 1 ( ! 1-210 HSUAZ/ 1 ( ! MINNEAPOLIS MN 55455A) 1 ( ! (612) 376 4056O# 1 ( ! LOON LUG  1 ( ! & 1 ( !___ JIM LEEDHAM) 1 ( MAYO FUNDATIONP( 1 ( 200 1ST ST SW. 1 ( ROCHESTER, MN 55905) 1 ( (507) 284 2620 5 1 ( SOUTHEASTERN MINNESOTA LUG  1 ( 1 (___ TONY SCANDORA  1 ( CMT 205 , 1 ( ARGONNE NATIONAL LABORTORY( 1 ( 9700 SOUTH CASS AVENUE" 1 ( ARGONNE IL 60439 1 ( (312) 972 7541 1 ( CARTS LUG  1 ( * ( 1 ( *___ EUGENE ALPERN7 1 ( * SABER COMPUTER SERVICES, INCT" 1 ( * BOX 2320 1 ( * MORTON GROVE IL 60053) 1 ( * (312) 998 5950 1 ( * CADUS 1 ( * ( 1 ( *___ JERALD J WRAY1 1 ( * UNIVERSITY OF ILLINOIS 4 1 ( * 487 LOOMIS LAB OF PHYSICS. 1 ( * 1110 W GREEN STREET* 1 ( * URBANA IL 61801) 1 ( * (217) 333 4922N/ 1 ( * CENTRAL ILLINOIS LUG  1 ( ** 1 ( *___ RICHARD F WRENN8 1 ( * WASHINGTON UNIV SHCOOL OF MED5 1 ( * DEPARTMENT OF BIOCHEMISTRY * 1 ( * CAMPUS BOX 8094, 1 ( * ST LOUIS MO 63110) 1 ( * (314) 362 300Q O  354  1 ( * - 1 ( *___ ROBERT W FAIRCHILD 7 1 ( NEBRASKA WESLEYAN UNIVERSITY - 1 ( 50TH & ST PAUL STS + 1 ( LINCOLN NE 68504 . 1 ( (402) 466 2371 x341' 1 ( MIDLANDS LUG  1 (! 1 (___ MARGARET H KNOX% 1 UNIVERSITY OF TEXASI$ 1 COMPUTATION CENTER! 1 AUSTIN TX 78712 1 (512) 471 3241) 1 AUSTIN MINICOMPUTER LUG  1 + 6 1 + 9 1 +___ STEVE ATTAYA (WAS JOHN WILKES) * 1 + 5725 POWELL ST.0 1 + NEW ORLEANS, LA 70118) 1 + (504) 733 7055 4 1 + LA OK TX AR LUG (LOTALUG) 1 + < 1 +___ CLYDE POOLE (WAS SCOTT STEVENSON)/ 1 + UNIV. OF NEW ORLEANS % 1 + LAKE FRONT*0 1 + NEW ORLEANS, LA 70124) 1 + (504) 286 6760C2 1 + S. LA AND MI (SLAM) LUG 1 + & 1 +___ GENE DUGGER- 1 + HARDING UNIVERSITY " 1 + BOX 753+ 1 + SEARCY, AR 72143B. 1 + (501) 268 6161 X266! 1 + ARKLUG  1 + % 1 +___ GUY DUNBARN0 1 + WM E DAVIS & SONS INC- 1 + 37 NW 122ND STREET(1 1 + OKLAHOMA CITY OK 73114A) 1 + (405) 751 4660 / 1 + CENTRAL OK PDP11 LUG  1 + ( 1 +___ PAUL SANDWELL) 1 8611 E 78 ST S * 1 TULSA, OK 74133) 1 (918) 252 5815$ 1 TULSA LUG 1  1___ Paul M. Kvamme ? Idaho Power Needs to move out... no more VAX access  P.O. Box 70 Boise, Id. 83707F (208) 322 2151  Idaho LUG /# /___ DOUGLAS H THREATT ' / BROOKS AIR FORCE BASE  / USAFSAM/TSDS. / SAN ANTONIO TX 78235 - 5000 / (516) 536 3886" / ALAMO PDP-11 LUG / \& / \___ ERIC S ZIPP / \ TDC$ / \ SUITE 130+ / \ 624 SIX FLAGS DRE. / \ ARLINGTON, TX 76012. / \ (817) 461 1242 X2824 / \ DALLAS/FORT WORTH VAX LUG / \ ( / \___ PAUL TOMPKINS- / \ DOW CHEMICAL U S A) / \ TEXAS DIVISION. / \ A P BEUTEL BUILDING, / \ FREEPORT TX 77541) / \ (409) 238 7040) / \ BRAZOSPORT LUG / \ 5 / \___ PETER BUREK ***DEAD LUG***U' / \ SIVALLS, INCA& / \ PO BOX 2792+ / \ ODESSA, TX 79760 ) / \ WEST TEXAS LUG  / \ ( / \___ CRAIG BENTSEN/ / CELANESE CHEMICAL CO & / PO BOX 90773 / CORPUS CHRISTI, TX 784691/ / (512) 241 2343 X4342R* / COSTAL BEND LUG /& /___ Wilma L. Fredrickson- / Ball Areospace Systems Div.  / POB 1062& / Boulder, Colo. 80306 / 303 939 5150! / DENVER AREA LUGd / ; . / ;___ PETER VALKONEN (OK), / ; INMOS CORPORATION) 00Q TADATADATADATADATADATA / ; P.O. BOX 16000 5 / ; COLORADO SPRINGS, CO 80935 ) / ; (303) 630 4310 . / ; PIKES PEAK AREA LUG / ;7/ / ;___ DARWIN L MECHAM (OK), / ; Argonne Natl Labs# / ; BOX 2528(/ / ; IDAHO FALLS ID 83403 ) / ; (208) 526 7211 $ / ; SparkpLUG / ; B / ;___ RAYMOND P BOVET ***WANTS OFF TREE *** ? / ; NCAR *** but still at this addr.***A! / ; P.O. Box 3000 + / ; BOULDER CO 80307 ) / ; (303) 497 8907 1 / ; ROCKY MOUNTAIN VAX LUGD / ; / / ;___ J R WESTMORLAND (OK) 2 / UTAH POWER AND LIGHT CO# / ROOM 184J1 / 1407 WEST NORTH TEMPLEN3 / SALT LAKE CITY, UT 84116) / (801) 535 2387U" / IMA LUG / /___ BRUCE HOBBS4' / AF WEAPONS LAB (ABGT)L / AFWL/ARDF - / KIRTLAND AFB, NM 87117-6008T / (505) 844 2496$ / NEW MEXICO VAX LUG / I % / I___ JANE FURZE ( / I GENRAD DESIGN' / I PO BOX 32183 , / I PHEONIX, AZ 85064) / I (602) 266 2032I / I D / I___ BOB NORBY (moved, no forwarding address), / I GTE MOCROCIRCUITS) / I 2000 W 14TH ST ) / I TEMPE,AZ 85281 ) / I (602) 968 4431 & / I ARIZONA LUG / IR: / I___ JOEL SNYDER (WAS BRAD CASTALIA)+ / I UNIV. OF ARIZONA # / I MIS DEPT . / I BPA BLDG., ROOM 400+ / I TUCSON, AZ 85721G) / I (602) 621 2748 % / I TUCSON LUG( / IC2 / I___ THOMAS E. CHENAULT (OK)4 / I WHITE SANDS MISSILE RANGE6 / I STEWS-NR-AD-A (MR CHENAULT)( / I WSMR NM 88002) / I (505) 678 5432 * / I SOUTHERN NM LUG / I , / I___ James F. Harrison2 / I Los Alamos National Lab' / I MP-1 MS H810 / / I Los Alamos, NM 87545S' / I 505 667 5688() / I Los Alamos LUG  / I - / I___ SUSAN DEMAY (NEW) 4 / I CODE 32 COMPUTER FACILITY/ / I NAVAL WEAPONS CENTER* / I CODE 32502-60013 / I CHINA LAKE, CALIF. 935551 / I 619 939 7350 (OR 7245)  / I 8 / I___ CLIFFORD P LLOYD **there, mayA / PO BOX 1912 not want on tree** # / M/S C-81 . / LAS VEGAS, NV 89125) / (702) 295 0392L# / EG&G LUG7 /1 /___ R.E. (DICK) ADAMS ***Notify***E% / DOUGLAS AIRCRAFT COL! / MAIL CODE 41-56($ / 3855 LAKEWOOD BLVD% / LONG BEACH CA 90846 . / (213) 593 4164 (or 593 0290)) / LA AIRPORT AREA VAX LUGG / i ' / i___ LARRY LEVINEO, / i DEPT OF CHEMISTRY% / i 2072 YOUNG  / i UCLA / / 00Q O   i LOS ANGLES, CA 90024 ) / i (213) 825 3288H# / i UCLA LUGA / i0 / i___ JAMES K. NEELAND (OK)/ / i HUGHES RESEARCH LABS # / i M/S RL6332 / i 3011 MALIBU CANYON ROAD+ / i MALIBU, CA 90265) / i (213) 317 5333 * / i LOS ANGELES LUG / i1 / i___ RICHARD A BALDWIN (OK) + / i NO CTY COMP SERV * / i 2235 MEYERS AVE- / i ESCONDIDO CA 92025E) / i (619) 745 6006 ( / i SAN DIEGO LUG / iS, / i___ PAUL WILFONG (OK)% / VERAC, INC , / 9605 SCRANTON RD.$ / SUITE 500. / SAN DIEGO, CA 92121. / (619) 457 5550 x2093 / SAN DIEGO PDP-11/VAX LUGO /9 /___ ROSEMARY ALLEN (moved.new address here)  / LBLM0 / COMPUTER SERVICES MS: 50B:2239 / 1 CYCLOTRON RD& / BERKELEY, CAL. 94720 / 415 486 6203 / BAY VAX LUG  / ( M / (___ JON FORREST (CHAIR IS EVERETT BATEY 805 982 5881)0 / ( DEPARTMENT OF PHYSICS3 / ( UNIVERSITY OF CALIFORNIA 2 / ( SANTA BARBARA, CA 931061 / ( (805) 961 2602 or 2896 4 / ( SANTA BARBARA USERS GROUP / (C7 / (___ LUKE RYNDA (REPL MARK VIERS) G / ( (Note: David Goppelt may also be contact) / / ( NAVAL WEAPONS CENTER $ / ( CODE 3665. / ( CHINA LAKE CA 93555) / ( (619) 939 3468w) / ( CHINA LAKE LUGs / (5 / (___ ALLAN LESLIE VAN LEHN (OK) 1 / ( LAWRENCE LIVERMORE LAB . / ( BLDG 131, ROOM 13787 / ( PO BOX 5504, MAIL STOP L-454 . / ( LIVERMORE, CA 94550) / ( (415) 422 6652M- / ( LIVERMORE AREA LUG 0 / ( 0 / (___ Paul Waterstraat (OK)3 / UNIVERSITY OF CALIFORNIA " / Geology) / DAVIS CA 956161) / (916) 752 7421/0 / Sacramento Valley LUG /& /___ STEVE LORENTZEN (OK)! 2401 FOURTH AVE  SUITE 555V" SEATTLE WA 98121 (206) 223 6453" SEATTLE AREA LUG )0/ )___ KEVIN DOUGLAS WALKERR2 ) UNITEK ELECTRONICS, INC3 ) 2850 PAA STREET, STE 222 - ) HONOLULU, HI 96819 ) ) (808) 836 0877 $ ) ALOHA LUG ). )___ ROBERT N PERRY (OK)$ ) TEKTRONIX& ) P O BOX 500% ) M/S 50-454 - ) BEAVERTON OR 97077 ) ) (503) 627 54104, ) PORTLAND AREA LUG ) - )___ ROSS W MILLER (OK) 6 ) ONLINE DATA PROCESSING, INC) ) N 637 HAMILTON, ) SPOKANE, WA 99202) ) (509) 484 3400  ) - )___ Richard E. Russell $ ) Get00Q i j TADATADATADATADATADATAty Oil' ) PO Box 5197X 2 ) Bakersfield, Cal. 93388- ) 805 399 2961 x2440 * ) Kern County LUG ) ( )___ Jeff Harrison9 University of Alaska Comp. Net/% 303 Tanaka 7 Fairbanks, Alaska 99775-5180 ' 907 474 6329 crkpLUG / ; B DTCOPY is a high speed, drive-to-drive, content insensitive tape copyGprogram. It will copy any kind of tape that your drive can read. It has>been used to make copies of BRU, BACKUP, FLX and ANSII tapes. TCOPY.DOC Roger Jenkins Wycliffe Bible Translators 19891 Beach Blvd. Huntington Beach, CA 92648 (714)-536-9346 INTRODUCTIONC TCOPY is a high speed tape copy program. It uses two tape drives Hand copies from one to the other. Double buffering is utilized to keep Jboth drives moving as much as possible. It copies physical records, so itIis contents insensitive, and should copy any kind of tape that your driveFcan read. I have been using it to make copies of BRU, BACKUP, FLX andANSII tapes for almost a year. PROGRAM OPERATIONJ1) Place the tapes on the tape drives. You may allocate them, but do not 3need to mount them. TCOPY will mount them for you.K2) The program is started by typing $ RUN TCOPY. No command line is used. E3) You will be asked to enter the input drive. The input and output Kdefault devices are MFA0: and MMA0:. If you press return without entering 'anything, both devices will be assumed.G4) If you enter the input drive, you will be asked to enter the output drive also. Default is MMA0:.L5) You will be asked if you want the program to print the number of records in each file. Default is NO.K6) You will be asked how many files you want copied. Default is all files. (See Caviats)H7) You will be asked to enter the output density. Default is the input Etape density. The program assumes that your output drive density is #software selectable. (See Caviats)L7) At this point, the tape will be copied until the desired number of files Fhave been copied or a double end-of-file is encountered. Since it is Jpossible (but unlikely) that there may be data beyond the double EOF, you Fare told that the double EOF was encountered and asked if you want to 1continue. If you do, this step will be repeated.I8) When you finally tell the program that you do not want to continue or ?when the desired number of files are copied, you will be asked:%What do you want done with the tapes:/ 1 - Rewind input, dismount output (default) 2 - Dismount both tapes* 3 - Rewind both tapes and leave online' 4 - Leave tapes at current positionBAnswer with one of the numbers 1 through 4. TCOPY will then stop. TCOPY Page 2ERROR RECOVERYE TCOPY has extensive error checking built into it. With all errors, Kit will tell you what it was trying to do when the error occured. Then it Lwill list the VMS error message that tells what happened. Then it will ask Kyou if you want to continue. If you say that you do not want to continue, KTCOPY will ask you what you want done with the tapes (as shown above under Jstep 8) then it will stop. If you do want to continue, TCOPY will either Dretry the operation that failed or simply go on, which ever is most (appropriate. An example of an error is:Error mounting input tape,%MOUNT-F-DEVMOUNT, device is already mounted%Do you want to continue? (Y/N) [D: N]FYou always have the option of continuing or stopping after each error.00jk CAVIATSIWe use TCOPY exclusively for copying whole tapes. The ability to copy a 9specified number of files has not been tested exaustivly.GTCOPY does not make sure that the output density was set correctly. ItKassumes that if it told the drive to write at 1600 then it followed orders.CIf the density is not software selectable, the program will proceedGignorantly. If your drive has a physical (but no software) switch, you3will have to set it to the right density manually. KTCOPY has occasionally placed my system in a mode where processes cannot beJcreated. When logging in, the "Welcome to VAX/VMS" message comes out thenDthe loggout message is printed. Batch jobs and subprocesses respondJsimilarly. Existing processes don't seem to be affected. Other sites whoJhave used TCOPY have not reported the problem. The Colorado CSC has givenJup on trying to solve it. If you duplicate the problem and learn anythingHabout it, PLEASE call me. I have been told that the problem really liesJwith a micro-code bug in the controller of our third-party drive, but haveFnot confirmed this yet. Our work-around is to copy all tapes the lastthing at night then reboot. OM0@L0204WhTCOPY3.13BW03-06     ?$ !  VMSRTL_001$! DISMNTSHR_001$! MOUNTSHR_001 Type one of the following numbers to indicate what you want done with the tapes: 1 - Rewind input, Dismount output (default) 2 - Dismount both tapes 3 - Rewind both tapes and leave online 4 - Leave tapes at current positions " Error while rewinding input tape#, Error while rewinding output tape$W Error while dismounting input tape% Error while dismounting output tape# Error while deassiging input tape$ Error while deassiging output tape TCOPY - TAPE COPY PROGRAM3* Enter input device [D: IN - MFA0:, OUT - MMA0:]: MFA0:MMA0:!oEnter output device (Eg. MMA0:): , Input and output devices must be different3Print number of records in each file? (Y/N) [D: N] v:How many (more) files do you want to copy? [D: All files] 4Y Error while assigning I/O channel to input device:5 Error while assigning I/O channel to output device:1 Error while reading input tape characteristics:2  Error while reading output tape characteristics:2E Error while setting output tape characteristics:6Illegal density. Legal values are 6250, 1600 and 800.  Read error: Write error:> Double EOF encountered on input tape. Possible end of data.(.File number !UL contained !UL record!%S.Aj Error mounting input tape Error mounting output tape&Do you want to continue? (Y/N) [D: N] ;D`  ** CAUTION ** Be sure output tape density is set to software select or the correct density before continuing! Enter output tape density [D: ]: PB B DV^* `Z^+, 00k j TADATADATADATADATADATAPlease mount input tape for TCOPY on Please mount output tape for TCOPY on _  aA0zZ9W70< R <R<R|P|SS@CUSU+2U-T)QUAUAQ&AUURzRPUPQSTPPP PP^,nnnXlլPмPPV^PVVI!CR: bQQS?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~1t@(0xa+9uwi[+"1G;} 51,&1 2FE.M}u@|~|~|~<$~<~ P `Q\|~|~|~]<$~ ?UPBA",(yPQ2Z(sP QQ QHPPQQPP.!m3Y00k"l$ @@xxX VMSRTL DISMNTSHRMOUNTSHR TCOPY . BLANK .ZBUFFERS READ_WRITEb READ_ONLY! .TITLE TCOPY - TAPE COPY PROGRAM .IDENT /3.13/' .SUBTITLE MACRO AND SYMBOL DEFINITIONSB;*****************************************************************;>; THIS PROGRAM WILL MAKE AN IDENTICAL COPY OF A MAGNETIC TAPE.=; IT COPIES PHYSICAL RECORDS USING A DOUBLE BUFFERING SCHEME.A; IT WILL STOP WHEN IT ENCOUNTERS A DOUBLE EOF, BUT WILL GIVE THED; OPTION TO CONTINUE. ALL ERRORS ARE REPORTED, BUT THE PROGRAM WILL1; GIVE THE OPTION TO CONTINUE IN SPITE OF ERRORS.;B;*****************************************************************;; LOCAL MACRO DEFINITIONS;B;***************************************************************** .MACRO IFABORT _DEST,?OKLBL- BLBS CONTINUE,OKLBL ;;;; IS ABORT FLAG ON? .IF IDN,_DEST,RETURN$ RSB ;;;; YES - RETURN TO CALLER .IFF BRW _DEST ;;;; YES - JUMP .ENDCOKLBL: ;;;; NO - CONTINUE .ENDMB;*****************************************************************;; DEFINE MACRO SYMBOLS;B;*****************************************************************$ $MTDEF ; MT$ SYMBOL DEFINITIONS. $MNTDEF ; VOLUME MOUNT SYMBOL DEFINITIONS .PAGE .SUBTITLE I/O BUFFERSB;*****************************************************************;*; THIS PSECT CONTAINS THE TWO I/O BUFFERS.;B;***************************************************************** .PSECT BUFFERS,NOEXE,PAGE&IO_BUF_SIZE=65534 ; I/O BUFFER SIZE .ALIGN PAGEBUFFER1: .BLKB IO_BUF_SIZE .ALIGN PAGEBUFFER2: .BLKB IO_BUF_SIZE .PAGE .SUBTITLE READ/WRITE DATAB;*****************************************************************;%; THIS PSECT CONTAINS READ/WRITE DATA;B;***************************************************************** .PSECT READ_WRITE,NOEXE1READ_EFN=1 ; EVENT FLAG NUMBER USED FOR READS3WRITE_EFN=2 ; EVENT FLAG NUMBER USED FOR WRITES"LF=^X0A ; LINE FEED CHARACTER)CR=^X0D ; CHARRIAGE RETURN CHARACTER*BELL=^X07 ; FOR RINGING TERMINAL BELL PRINT_NUM_RECS:6 .BLKB 1 ; PRINT NUMBER OF RECS IN EACH RECORD? Y/N NUM_FILES:% .BLKL 1 ; NUMBER OF FILES TO COPY FILES_READ:$ .LONG 1 ; NUMBER OF FILES COPIED-READ_IO_STATUS_BLOCK: ; READ STATUS RETURN .BLKQ 1/WRITE_IO_STATUS_BLOCK: ; WRITE STATUS RETURN .BLKQ 1 FORCE_PROMPT:5 .LONG 1 ; TO FORCE PROMPTING FROM LIB$GET_FOREIGNB; NOTE!! THE CONTENTS OF THE FOLLOWING TWO POINTERS ARE EXCHANGED; AFTER EACH READ!! IN_BUF_PTR:* .ADDRESS BUFFER1 ; INPUT BUFFER POINTER OUT_BUF_PTR:+ .ADDRESS BUFFER2 ; OUTPUT BUFFER POINTER READ_CHAN:% .BLKL 1 ; READ I/O CHANNEL NUMBER WRITE_CHAN:& .BLKL 1 ; WRITE I/O CHANNEL NUMBER CONTINUE:0 .LONG 1 ; CONTINUE FLAG: 1=CONTINUE, 0=ABORT READ_LENGTH:' .BLKL 1 ; NUMBER OF BYTES LAST READ5WRAPUP_ACTION_DESCR: ; DESCRIPTOR OF WRAPUP_ACTION .LONG 1 .ADDRESS WRAPUP_ACTIONWRAPUP_ACTION: .BLKB 1:INDEV_DESCR: ; DESCRIPTOR OF INPUT DEVICE REPLY STRING .LONG 20 ; LENGTH OF NAME .00l* j TADATADATADATADATADATAADDRESS INDEV ; ADR OF NAME&INDEV: .BLKB 20 ; INPUT DEVICE NAME<OUTDEV_DESCR: ; DESCRIPTOR OF OUTPUT DEVICE REPLY STRING .LONG 20 ; LENGTH OF NAME! .ADDRESS OUTDEV ; ADR OF NAME?OUTDEV: .BYTE ^A/ /[20] ; OUTPUT DEVICE NAME (INIT TO BLANKS)PRINT_NUM_RECS_LEN:$ .BLKW 1 ; LENGTH LENGTH OF REPLYNUM_FILES_REPLY:" .BLKB 8 ; PUT ASCII REPLY HERENUM_FILES_LEN:. .BLKL 1 ; NUM CHARS PUT IN NUM_FILES_REPLY2OUT_DENS_DESCR: ; DESCRIPTOR OF OUTPUT_DENSITY .LONG 4 .ADDRESS OUTPUT_DENSITY$OUTPUT_DENSITY: ; ACTUAL DENSITY .ASCII / /'OUT_DENS_PROMPT: ; PROMPT DESCRIPTOR0 .LONG ODP_END-OUT_DENS_PROMPT-8 ; PROMPT LENGTH! .ADDRESS .+4 ; PROMPT ADDRESSM .ASCII /** CAUTION ** Be sure output tape density is set to software /B .ASCII /select or the correct density before continuing!/0 .ASCII /Enter output tape density [D: //IN_DENS: ; FILL IN INPUT DENSITY AS DEFAULT .BLKB 4! .ASCII /]: / ; REST OF PROMPTODP_END:1SET_MODE_CHAR_BUF: ; CHARACTERISTICS TO BE SET .LONG 4 ; BUFFER LENGTH .BLKL 1 ; BUFFER CONTENTSNUMBER_OF_EOFS:/ .BYTE 0 ; COUNTS NUMBER OF CONSECUTIVE EOFSNUMBER_OF_RECORDS:, .LONG 0 ; NUMBER OF RECORDS IN EACH FILE4BUFFER_DESCR: ; DESCRIPTOR OF UNFORMATTED BUFFER .LONG 80 .ADDRESS FORMATTED_BUFFERFORMATTED_BUFFER: .BLKB 804FORMATTED_DESCR: ; DESCRIPTOR OF FORMATTED OUTPUT( .BLKW 1 ; LENGTH OF FORMATTED OUTPUT .BLKW 1 ; UNUSED .ADDRESS FORMATTED_BUFFER8IN_MOUNT_LIST: ; ITEM LIST FOR MOUNTING INPUT DEVICE; .BLKW 1 ; LENGTH OF INPUT DEVICE NAME (FILLED IN LATER)' .WORD MNT$_DEVNAM ; DEVICE NAME CODE2 .ADDRESS INDEV ; LOCATION OF INPUT DEVICE NAME .LONG 0 ; UNUSED .WORD 4 ; FLAGS LENGTH& .WORD MNT$_FLAGS ; MOUNT FLAGS CODE) .ADDRESS IN_MOUNT_FLAGS ; ADR OF FLAGS .LONG 0 ; UNUSED .WORD 4 ; BLOCKSIZE LENGTH( .WORD MNT$_BLOCKSIZE ; BLOCKSIZE CODE- .ADDRESS MOUNT_BLOCKSIZE ; ADR OF BLOCKSIZE .LONG 0 ; UNUSED1 .WORD IN_COMMENT_LEN ; LENGTH OF MOUNT COMMENT* .WORD MNT$_COMMENT ; MOUNT COMMENT FLAG' .ADDRESS IN_COMMENT ; ADR OF COMMENT .LONG 0 ; UNUSED .LONG 0 ; END OF LIST:OUT_MOUNT_LIST: ; ITEM LIST FOR MOUNTING OUTPUT DEVICE< .BLKW 1 ; LENGTH OF OUTPUT DEVICE NAME (FILLED IN LATER)' .WORD MNT$_DEVNAM ; DEVICE NAME CODE4 .ADDRESS OUTDEV ; LOCATION OF OUTPUT DEVICE NAME .LONG 0 ; UNUSED .WORD 4 ; FLAGS LENGTH& .WORD MNT$_FLAGS ; MOUNT FLAGS CODE) .ADDRESS OUT_MOUNT_FLAGS ; ADR OF FLAGS .LONG 0 ; UNUSED .WORD 4 ; BLOCKSIZE LENGTH( .WORD MNT$_BLOCKSIZE ; BLOCKSIZE CODE- .ADDRESS MOUNT_BLOCKSIZE ; ADR OF BLOCKSIZE .LONG 0 ; UNUSED2 .WORD OUT_COMMENT_LEN ; LENGTH OF MOUNT COMMENT* .WORD MNT$_COMMENT ; MOUNT COMMENT FLAG( .ADDRESS OUT_COMMENT ; ADR OF COMMENT .LONG 0 ; UNUSED .LONG 0 ; END OF LIST IN_COMMENT:/ .ASCII /Please mount input tape for TCOPY on /IN_COMMENT_DEV:% .BLKB 5 ; NAME OF DRIVE GOES HEREIN_COMMENT_LEN=.-IN_COMMENT OUT_COMMENT:0 .ASCII /Please mount output tape for TCOPY on /OUT_COMMENT_DEV:% .BLKB 5 ; NAME OF DRIVE GOES HEREOUT_COMMENT_LEN=.-OUT_COMMENT CONT_REPLY: .ASCID / / ; FOR THE Y OR N .PAGE .SUBTITLE READ ONLY DATAB;*****************************************************************;; READ ONLY DATA;B;***************************************************************** .PSECT READ_ONLY,NOEXE,NOWRT4WRAPUP_PROMPT_DESCR: ; DECRIPTOR OF WRAPUP_PROMPT .LONG WRAPUP_PROMPT_LEN .ADDRESS WRAPUP_PROMPTWRAPUP_PROMPT:@ .ASCII /Type one of the following numbers to indicate /4 .ASCII /what you want done with the tapes:/C .ASCII / 1 - Rewind input, Dismount output (default)/+ .ASCII / 2 - Dismount both tapes/: .ASCII / 3 - Rewind both tapes and leave online/9 .ASCII / 4 - Leave tapes at current positions /<WRAPUP_PROMPT_LEN=.-WR00l2$ APUP_PROMPT ; LENGTH OF WRAPUP_PROMPTIN_REWIND_ERROR:2 .ASCID /Error while rewinding input tape/OUT_REWIND_ERROR:3 .ASCID /Error while rewinding output tape/IN_DISMOUNT_ERROR:4 .ASCID /Error while dismounting input tape/OUT_DISMOUNT_ERROR:5 .ASCID /Error while dismounting output tape/IN_DEASSIGN_ERROR:3 .ASCID /Error while deassiging input tape/OUT_DEASSIGN_ERROR:4 .ASCID /Error while deassiging output tape/ WELCOME_MSG:+ .ASCID /TCOPY - TAPE COPY PROGRAM/IN_DEV_PROMPT:C .ASCID /Enter input device [D: IN - MFA0:, OUT - MMA0:]: /MFA0: .ASCII /MFA0:/MFA0_LEN=.-MFA0MMA0: .ASCII /MMA0:/MMA0_LEN=.-MMA0OUT_DEV_PROMPT:+ .ASCID /Enter output device (Eg. MMA0:): /OUT_DEV_ERROR:< .ASCID /Input and output devices must be different/5PRINT_NUM_RECS_DESCR: ; DESCRIPTOR OF REPLY STRING$ .LONG 1 ; LENGTH OF REPLY STRING0 .ADDRESS PRINT_NUM_RECS ; ADR OF REPLY STRINGPRINT_NUM_RECS_PROMPT:= .ASCID #Print number of records in each file? (Y/N) [D: N] #0NUM_FILES_DESCR: ; DESCRIPTOR OF REPLY STRING$ .LONG 8 ; LENGTH OF REPLY STRING0 .ADDRESS NUM_FILES_REPLY ; ADR OF REPLY STRINGNUM_FILES_PROMPT:D .ASCID /How many (more) files do you want to copy? [D: All files] / IN_ASN_MSG:D .ASCID #Error while assigning I/O channel to input device:# OUT_ASN_MSG:E .ASCID #Error while assigning I/O channel to output device:#SENSE_MODE_ERROR:A .ASCID /Error while reading input tape characteristics:/OUTPUT_SENSE_MODE_ERROR:B .ASCID /Error while reading output tape characteristics:/SET_MODE_ERROR:B .ASCID /Error while setting output tape characteristics:/ BAD_DENSITY:@ .ASCID /Illegal density. Legal values are 6250, 1600 and 800./ READ_ERROR: .ASCID /Read error:/ WRITE_ERROR: .ASCID /Write error:/DOUBLE_EOF_MSG:N .ASCID /Double EOF encountered on input tape. Possible end of data./ NUM_RECS_MSG:2 .ASCID /File number !UL contained !UL record!%S./IN_MOUNT_FLAGS:2 .LONG ; INPUT FLAGSOUT_MOUNT_FLAGS:% .LONG MNT$M_FOREIGN ; OUTPUT FLAGSMOUNT_BLOCKSIZE:$ .LONG IO_BUF_SIZE ; IO BLOCK SIZEIN_MOUNT_ERROR:+ .ASCID /Error mounting input tape/OUT_MOUNT_ERROR:, .ASCID /Error mounting output tape/ CONT_MSG:0 .ASCID %Do you want to continue? (Y/N) [D: N] % .PAGE .SUBTITLE AA - MAIN CODEB;*****************************************************************;; BACK TO OUR MAIN PSECT; START OF CODE;B;***************************************************************** .PSECTTCOPY:: .WORD 0, JSB BA_SETUP ; SET THINGS UP FOR THE COPY IFABORT AA_EXIT JSB BB_COPY ; COPY THE TAPEAA_EXIT:" JSB BC_WRAPUP ; CLEAN THINGS UP' $EXIT_S ; TELL VMS WE WANT TO STOP .PAGE .SUBTITLE BA - SETUPB;*****************************************************************;; SETUP SUBROUTINE - ; GET PARAMETERS FROM USER; INITIALIZE I/O DEVICES; INITIALIZE INPUT BUFFER;B;***************************************************************** BA_SETUP:4 JSB CA_PRINT_WELCOME_MESSAGE ; TELL USER WHO WE ARE1 JSB CB_GET_INPUT_DEVICE ; GET INPUT DEVICE NAME3 JSB CC_GET_OUTPUT_DEVICE ; GET OUTPUT DEVICE NAME IFABORT RETURN6 JSB CD_GET_PRINT_NUM_RECS ; PRINT NUMBER OF RECORDS?4 JSB CE_GET_NUM_FILES ; GET NUMBER OF FILES TO COPY7 JSB CF_ASSIGN_CHANNELS ; ASSIGN CHANNELS TO I/O TAPES IFABORT RETURN# JSB CM_MOUNT_TAPES ; MOUNT TAPES IFABORT RETURN) JSB CH_READ ; INITIALIZE INPUT BUFFER IFABORT RETURN/ JSB CJ_READ_WAIT ; WAIT FOR READ TO COMPLETE IFABORT RETURN9 JSB CG_SET_OUTPUT_DENSITY ; SET DENSITY OF OUTPUT DRIVE RSB ; RETURN TO CALLER .PAGE .SUBTITLE BB - COPY TAPESB;*****************************************************************;"; COPY SUBROUTINE - COPY THE TAPES;B;*************00l: j TADATADATADATADATADATA****************************************************BB_COPY: JSB CI_WRITE ; START A WRITE IFABORT RETURN JSB CH_READ ; START A READ IFABORT RETURN5 JSB CK_WRITE_WAIT ; WAIT FOR THE WRITE TO COMPLETE IFABORT RETURN3 JSB CJ_READ_WAIT ; WAIT FOR THE READ TO COMPLETE IFABORT RETURN$ JSB CL_EOF_CHECK ; CHECK FOR EOFS IFABORT RETURN6 CMPL FILES_READ,NUM_FILES ; HAVE WE READ ENOUGH YET?# BLEQ BB_COPY ; NO - DO IT AGAIN! RSB ; YES - RETURN TO CALLER .PAGE .SUBTITLE BC - WRAPUPB;*****************************************************************;&; WRAP THINGS UP AND STOP THIS PROGRAM;B;***************************************************************** BC_WRAPUP:& PUSHAL FORCE_PROMPT ; ALWAYS PROMPT9 PUSHAL WRAPUP_ACTION_DESCR ; WHERE TO PUT ANSWER LENGTH% PUSHAQ WRAPUP_PROMPT_DESCR ; PROMPT: PUSHAQ WRAPUP_ACTION_DESCR ; DECRIPTION OF ANSWER BUFFER8 CALLS #4,G^LIB$GET_FOREIGN ; WHAT TO DO WITH THE TAPE?2 CMPB #^A/ /,WRAPUP_ACTION ; DEFAULT ACTION? (#1) BNEQU BC_CASE ; NO3 MOVB #^A/1/,WRAPUP_ACTION ; YES - MAKE ACTION "1"BC_CASE:6 CASEB WRAPUP_ACTION,#^A/1/,#3 ; GO TO PROPER SECTION BC_CASE_TBL:$ .WORD BC_CASE_1-BC_CASE_TBL ; IF 1$ .WORD BC_CASE_2-BC_CASE_TBL ; IF 2$ .WORD BC_CASE_3-BC_CASE_TBL ; IF 3$ .WORD BC_CASE_4-BC_CASE_TBL ; IF 41 BRB BC_WRAPUP ; ASK AGAIN IF NONE OF THE ABOVE BC_CASE_1:8 JSB BC_REWIND_IN ; OPTION 1 - REWIND IN, DISMOUNT OUT JSB BC_DEASSIGN_BOTH JSB BC_DISMOUNT_OUT BRB BC_EXIT BC_CASE_2:1 JSB BC_DEASSIGN_BOTH ; OPTION 2 - DISMOUNT BOTH JSB BC_DISMOUNT_IN JSB BC_DISMOUNT_OUT BRB BC_EXIT BC_CASE_3:, JSB BC_REWIND_IN ; OPTION 3 - REWIND BOTH JSB BC_REWIND_OUT JSB BC_DEASSIGN_BOTH BRB BC_EXIT BC_CASE_4:: JSB BC_DEASSIGN_BOTH ; OPTION 4 - LEAVE BOTH TAPES ALONEBC_EXIT:' $EXIT_S ; TELL VMS WE WANT TO STOPB;*****************************************************************;$; MINI-SUBROUTINES USED BY BC_WRAPUP;B;***************************************************************** BC_REWIND_IN:- $QIO_S EFN=#READ_EFN,- ; REWIND INPUT TAPE FUNC=#IO$_REWIND,- CHAN=READ_CHAN,- IOSB=READ_IO_STATUS_BLOCK# BLBS R0,10$ ; DID REWIND GO OK?7 MOVAL IN_REWIND_ERROR,R1 ; NO - GET OUR ERROR MESSAGE% JSB DA_ERROR ; ASK USER WHAT TO DO10$: RSB ; RETURN TO CALLERB;*****************************************************************BC_REWIND_OUT:. $QIO_S EFN=#WRITE_EFN,- ; REWIND OUTPUT TAPE FUNC=#IO$_REWIND,- CHAN=WRITE_CHAN,- IOSB=WRITE_IO_STATUS_BLOCK# BLBS R0,10$ ; DID REWIND GO OK?8 MOVAL OUT_REWIND_ERROR,R1 ; NO - GET OUR ERROR MESSAGE% JSB DA_ERROR ; ASK USER WHAT TO DO10$: RSB ; RETURN TO CALLERB;*****************************************************************BC_DEASSIGN_BOTH:3 $DASSGN_S CHAN=READ_CHAN ; DEASSIGN INPUT CHANNEL/ BLBS R0,BC_DEASSIGN_OUT ; DID DEASSIGN GO OK?9 MOVAL IN_DEASSIGN_ERROR,R1 ; NO - GET OUR ERROR MESSAGE% JSB DA_ERROR ; ASK USER WHAT TO DOBC_DEASSIGN_OUT:5 $DASSGN_S CHAN=WRITE_CHAN ; DEASSIGN OUTPUT CHANNEL% BLBS R0,10$ ; DID DEASSIGN GO OK?: MOVAL OUT_DEASSIGN_ERROR,R1 ; NO - GET OUR ERROR MESSAGE% JSB DA_ERROR ; ASK USER WHAT TO DO10$: RSB ; RETURN TO CALLERB;*****************************************************************BC_DISMOUNT_IN:. $DISMOU_S INDEV_DESCR ; DISMOUNT INPUT TAPE% BLBS R0,10$ ; DID DISMOUNT GO OK?9 MOVAL IN_DISMOUNT_ERROR,R1 ; NO - GET OUR ERROR MESSAGE% JSB DA_ERROR ; ASK USER WHAT TO DO10$: RSB ; RETURN TO CALLERB;*****************************************************************BC_DISMOUNT_OUT:0 $DISMOU_S OUTDEV_DESCR ; DISMOUNT OUTPUT TAPE" BLBS R0,10$ ; DID MOUNT GO OK?: MOVAL OUT_DISMOUNT_ERROR,R1 ; NO - GET OUR ERROR MESSAGE% JSB DA_ERROR ; ASK USER WHAT TO DO10$: RSB ; RETURN TO CALLER .PAGE% .SUBTITLE CA - PRINT WELCOME MESSAGEB;*****************************************************************;; PRINT WELCOME MESS00lB$ AGE;B;*****************************************************************CA_PRINT_WELCOME_MESSAGE: PUSHAL WELCOME_MSG- CALLS #1,G^LIB$PUT_OUTPUT ; WELCOME MESSAGE RSB .PAGE .SUBTITLE CB - GET INPUT DEVICEB;*****************************************************************;; CB_GET_INPUT_DEVICE;C; IF DEFAULT IS RETURNED, THEN SET INPUT TO MFA0 AND OUTPUT TO MMAO;B;*****************************************************************CB_GET_INPUT_DEVICE:& PUSHAL FORCE_PROMPT ; ALWAYS PROMPT2 PUSHAL INDEV_DESCR ; WHERE TO PUT ANSWER LENGTH( PUSHAQ IN_DEV_PROMPT ; WHAT TO PROMPT+ PUSHAQ INDEV_DESCR ; WHERE TO PUT ANSWER( CALLS #4,G^LIB$GET_FOREIGN ; GET INDEV TSTL INDEV_DESCR ; DEFAULT?( BNEQ CB_EXIT ; NO - USE WHAT WE HAVE3 MOVC3 #MFA0_LEN,MFA0,INDEV ; DEFAULT INPUT DEVICE< MOVL #MFA0_LEN,INDEV_DESCR ; DEFAULT INPUT DEVICE'S LENGTH5 MOVC3 #MMA0_LEN,MMA0,OUTDEV ; DEFAULT OUTPUT DEVICE> MOVL #MMA0_LEN,OUTDEV_DESCR ; DEFAULT OUTPUT DEVICE'S LENGTHCB_EXIT: RSB .PAGE! .SUBTITLE CC - GET OUTPUT DEVICECB;*****************************************************************;*; CC_GET_OUTPUT_DEVICE;=; IF OUTDEV IS NOT BLANKS, THEN WE PROBABLY GOT THE DEVICE AS#; DEFAULT FROM CB_GET_INPUT_DEVICE.D;LB;*****************************************************************CC_GET_OUTPUT_DEVICE:P& CMPL #^A/ /,OUTDEV ; IS IT BLANK?/ BNEQU CC_CHECK_FOR_SAME ; NO - LEAVE IT AS ISI CC_ASK_AGAIN:R& PUSHAL FORCE_PROMPT ; ALWAYS PROMPT3 PUSHAL OUTDEV_DESCR ; WHERE TO PUT ANSWER LENGTHA& PUSHAQ OUT_DEV_PROMPT ; WHAT TO SAY, PUSHAQ OUTDEV_DESCR ; WHERE TO PUT ANSWER) CALLS #4,G^LIB$GET_FOREIGN ; GET OUTDEVOCC_CHECK_FOR_SAME:= CMPC5 INDEV_DESCR,INDEV,#^A/ /,- ; ARE IN AND OUT DIFFERENT?E OUTDEV_DESCR,OUTDEV, BNEQU CC_EXIT ; YES - THATS WHAT WE WANT CLRL R0 ; NO SYSTEM MESSAGE, MOVAB OUT_DEV_ERROR,R1 ; OUR ERROR MESSAGE2 JSB DA_ERROR ; SEE WHAT HE WANTS TO DO ABOUT IT IFABORT RETURN*4 MOVL #20,OUTDEV_DESCR ; RESET ANSWER BUFFER LENGTH BRB CC_ASK_AGAIN ; ASK AGAINTCC_EXIT: RSB .PAGE+ .SUBTITLE CD - GET PRINT NUMBER OF RECORDSEB;*****************************************************************;*@; FIND OUT IF WE ARE TO PRINT THE NUMBER OF RECORDS IN EACH FILE;*B;*****************************************************************CD_GET_PRINT_NUM_RECS:& PUSHAL FORCE_PROMPT ; ALWAYS PROMPT8 PUSHAL PRINT_NUM_RECS_LEN ; WHERE TO PUT ANSWER LENGTH, PUSHAQ PRINT_NUM_RECS_PROMPT ; WHAT TO ASK3 PUSHAQ PRINT_NUM_RECS_DESCR ; WHERE TO PUT ANSWER*4 CALLS #4,G^LIB$GET_FOREIGN ; PRINT NUMBER OF RECS?1 TSTW PRINT_NUM_RECS_LEN ; DID HE TYPE ANYTHING?*0 BNEQ CD_NOT_DEFAULT ; YES - USE WHAT HE TYPED/ MOVB #^A/N/,PRINT_NUM_RECS ; NO - USE DEFAULT " BRB CD_EXIT ; RETURN TO CALLERCD_NOT_DEFAULT:M/ CMPB #^A/N/,PRINT_NUM_RECS ; DID HE TYPE "N"?C% BEQLU CD_EXIT ; YES - ALL IS WELLR/ CMPB #^A/Y/,PRINT_NUM_RECS ; DID HE TYPE "Y"?L& BEQLU CD_EXIT ; AGAIN, ALL IS WELL7 BRB CD_GET_PRINT_NUM_RECS ; INVALID ANSWER, TRY AGAINCD_EXIT: RSB ; RETURN TO CALLER .PAGE# .SUBTITLE CE - GET NUMBER OF FILESIB;*****************************************************************;_; GET_NUM_FILES ; B;*****************************************************************CE_GET_NUM_FILES:I& PUSHAL FORCE_PROMPT ; ALWAYS PROMPT7 PUSHAL NUM_FILES_LEN ; WHERE TO PUT LENGTH OF ANSWERH' PUSHAQ NUM_FILES_PROMPT ; WHAT TO ASKR/ PUSHAQ NUM_FILES_DESCR ; WHERE TO PUT ANSWERS4 CALLS #4,G^LIB$GET_FOREIGN ; GET NUM FILES TO COPY- TSTL NUM_FILES_LEN ; DID HE TYPE ANYTHING?H% BGTR CE_CONVERT ; YES - CONVERT ITU/ MOVL #^X7FFFFFFF,NUM_FILES ; NO - SET DEFAULT1" BRB CE_EXIT ; YES - OK TO STOP CE_CONVERT:U, PUSHAL NUM_FILES ; BINARY NUMBER OF FILES1 PUSHAQ NUM_FILES_REPLY ; ASCII NUMBER OF FILESR8 PUSHL NUM_FILES_LEN ; LENGTH OF ASCII NUMBER OF FILES2 CALLS #3,G^LIB$CVT_DTB ; CVT NUM FILES TO BINARY+ TSTL NUM_FILES ; IS THE NUM00lJ j TADATADATADATADATADATABER POSITIVE? ' BLSS CE_GET_NUM_FILES ; NO, ASK AGAINICE_EXIT: RSB ; RETURN TO CALLERE .PAGE .SUBTITLE CF - ASSIGN CHANNELSOB;*****************************************************************;V'; ASSIGN CHANNEL NUMBERS TO TAPE DRIVES(;TB;*****************************************************************CF_ASSIGN_CHANNELS:L6 $ASSIGN_S DEVNAM=INDEV_DESCR,- ; GET INPUT CHANNEL # CHAN=READ_CHAN9 BLBS R0,CF_ASSIGN_OUTPUT ; BRANCH IF NO ERROR (LSB SET)I* MOVAL IN_ASN_MSG,R1 ; OUR ERROR MESSAGE! JSB DA_ERROR ; ERROR PROCESSOR  IFABORT RETURNY1 BRB CF_ASSIGN_CHANNELS ; IF CONTINUE, TRY AGAINSCF_ASSIGN_OUTPUT:E8 $ASSIGN_S DEVNAM=OUTDEV_DESCR,- ; GET OUTPUT CHANNEL # CHAN=WRITE_CHANI. BLBS R0,10$ ; BRANCH IF NO ERROR (LSB SET)+ MOVAL OUT_ASN_MSG,R1 ; OUR ERROR MESSAGEl! JSB DA_ERROR ; ERROR PROCESSORo IFABORT RETURNI/ BRB CF_ASSIGN_OUTPUT ; IF CONTINUE, TRY AGAINN10$: RSB ; RETURN TO CALLERA .PAGE" .SUBTITLE CG - SET OUTPUT DENSITYB;*****************************************************************;.; CG_GET_OUTPUT_DENSITYT;B;*****************************************************************;N6; GET INPUT DENSITY (TO USE AS DEFAULT OUTPUT DENSITY);GB;*****************************************************************CG_SET_OUTPUT_DENSITY:; $QIOW_S EFN=#READ_EFN,- ; GET INPUT TAPE CHARACTERISTICS FUNC=#IO$_SENSEMODE,-E CHAN=READ_CHAN,- IOSB=READ_IO_STATUS_BLOCK11 BLBS R0,CG_GET_INPUT_DENSITY ; DIRECTIVE ERROR?D@ MOVAL SENSE_MODE_ERROR,R1 ; YES - GET ADR OF OUR ERROR MESSAGE& JSB DA_ERROR ; CALL ERROR PROCESSOR IFABORT RETURNIB;*****************************************************************;R; DECODE INPUT DENSITY.F; MOVE DENSITY TO PROMPT.0; B;*****************************************************************CG_GET_INPUT_DENSITY:M0 CMPV #MT$V_DENSITY,- ; IS INPUT DENSITY 6250? #MT$S_DENSITY,-L READ_IO_STATUS_BLOCK+4,- #MT$K_GCR_6250+ BNEQU CG_INPUT_NOT_6250 ; NO - CHECK 1600O5 MOVL #^A/6250/,IN_DENS ; YES - PUT "6250" IN PROMPT_ BRW CG_PROMPT_FOR_DENSITYCG_INPUT_NOT_6250:0 CMPV #MT$V_DENSITY,- ; IS INPUT DENSITY 1600? #MT$S_DENSITY,- READ_IO_STATUS_BLOCK+4,- #MT$K_PE_1600S* BNEQU CG_INPUT_NOT_1600 ; NO - CHECK 8005 MOVL #^A/1600/,IN_DENS ; YES - PUT "1600" IN PROMPTV BRW CG_PROMPT_FOR_DENSITYCG_INPUT_NOT_1600:7 MOVL #^A/800 /,IN_DENS ; 800 IS OUR ONLY OTHER CHOICEPB;*****************************************************************;M+; SEE WHAT USER WANTS OUTPUT DENSITY TO BE._; (DEFAULT IS INPUT DENSITY)..;GB;*****************************************************************CG_PROMPT_FOR_DENSITY:& PUSHAL FORCE_PROMPT ; ALWAYS PROMPT7 PUSHAL OUT_DENS_DESCR ; WHERE TO PUT ANSWER'S LENGTHN' PUSHAQ OUT_DENS_PROMPT ; WHAT TO ASK . PUSHAQ OUT_DENS_DESCR ; WHERE TO PUT ANSWER8 CALLS #4,G^LIB$GET_FOREIGN ; PROMPT FOR OUTPUT DENSITYB;*****************************************************************;*; GET CURRENT OUTPUT TAPE CHARACTERISTICS.6; (WE WANT TO CHANGE THE DENSITY ONLY AND LEAVE OTHER ; CHARACTERISTICS UNCHANGED.)t;pB;*****************************************************************< $QIOW_S EFN=#WRITE_EFN,- ; GET OUTPUT TAPE CHARACTERISTICS FUNC=#IO$_SENSEMODE,- CHAN=WRITE_CHAN,-R IOSB=WRITE_IO_STATUS_BLOCK2 BLBS R0,CG_SET_DEFAULT_DENSITY ; DIRECTIVE ERROR?F MOVAL OUTPUT_SENSE_MODE_ERROR,R1 ; YES - GET ADR OF OUR ERROR MESSAGE& JSB DA_ERROR ; CALL ERROR PROCESSOR IFABORT RETURNB;*****************************************************************;L?; SET OUTPUT DENSITY TO SAME AS INPUT DENSITY JUST IN CASE USERT; WANTS TO USE THE DEFAULT.e;tB;*****************************************************************CG_SET_DEFAULT_DENSITY:R@ MOVL WRITE_IO_STATUS_BLOCK+4,- ; MOVE INPUT CHAR TO OUTPUT CHAR SET_MODE_CHAR_BUF+4.+ EXTV #MT$V_DENSITY,- ; PUT DENSITY IN R8e #MT$S_DENSITY,-C READ_IO_STATUS_BLOCK+4,- R8B;*******************************00lR$ **********************************;T,; SEE WHAT USER REQUESTED AS OUTPUT DENSITY.-; IF NOT DEFAULT, THEN CHANGE OUTPUT DENSITY.;.B;*****************************************************************3 CMPL #^A/ /,OUTPUT_DENSITY ; IS ANSWER DEFAULT?p6 BEQLU CG_WRITE_OUTPUT_CHAR ; YES - KEEP IT THE SAME.1 CMPL #^A/6250/,OUTPUT_DENSITY ; IS ANSWER "6250"S BNEQU CG_OUTPUT_NOT_6250 ; NO., MOVL #MT$K_GCR_6250,R8 ; PUT DENSITY IN R84 BRW CG_WRITE_OUTPUT_CHAR ; SEND CHARS TO THE DRIVECG_OUTPUT_NOT_6250:L1 CMPL #^A/1600/,OUTPUT_DENSITY ; IS ANSWER "1600". BNEQU CG_OUTPUT_NOT_1600 ; NO.+ MOVL #MT$K_PE_1600,R8 ; PUT DENSITY IN R8C4 BRW CG_WRITE_OUTPUT_CHAR ; SEND CHARS TO THE DRIVECG_OUTPUT_NOT_1600:_1 CMPL #^A/800 /,OUTPUT_DENSITY ; IS ANSWER "800 "0 BNEQU CG_OUTPUT_NOT_800 ; NO. , MOVL #MT$K_NRZI_800,R8 ; PUT DENSITY IN R84 BRW CG_WRITE_OUTPUT_CHAR ; SEND CHARS TO THE DRIVECG_OUTPUT_NOT_800: CLRL R0 ; NO SYSTEM ERROR.+ MOVAL BAD_DENSITY,R1 ; OUR ERROR MESSAGEG% JSB DA_ERROR ; PRINT ERROR MESSAGEi IFABORT RETURNr' BRW CG_PROMPT_FOR_DENSITY ; TRY AGAINIB;*****************************************************************;T9; WRITE OUTPUT CHARACTERISTICS (WITH DESIRED DENSITY) TO U; OUTPUT DRIVE.;SB;*****************************************************************CG_WRITE_OUTPUT_CHAR:>2 INSV R8,- ; PUT DENSITY INTO OUTPUT DESCRIPTOR #MT$V_DENSITY,-: #MT$S_DENSITY,-E SET_MODE_CHAR_BUF+4O< $QIOW_S EFN=#WRITE_EFN,- ; SET OUTPUT TAPE CHARACTERISTICS FUNC=#IO$_SETMODE,-g CHAN=WRITE_CHAN,-i IOSB=WRITE_IO_STATUS_BLOCK,- P1=SET_MODE_CHAR_BUF% BLBS R0,CG_EXIT ; DIRECTIVE ERROR?s> MOVAL SET_MODE_ERROR,R1 ; YES - GET ADR OF OUR ERROR MESSAGE JSB DA_ERROR ; PROCESS ERROR IFABORT RETURNSCG_EXIT: RSB ; RETURN TO CALLER2 .PAGE .SUBTITLE CH - READ INPUT TAPE B;*****************************************************************;#; READ RECORD FROM INPUT TAPE DRIVED;lB;*****************************************************************;G; READ SUBROUTINE CODE:!"; PUT ADR OF BUFFER INTO QIO PARMS; ISSUE READ QIO; CHECK FOR ERRORS; SWAP POINTERST;AB;*****************************************************************CH_READ:1 $QIO_S EFN=#READ_EFN,- ; READ RECORD FROM TAPET FUNC=#IO$_READLBLK,- CHAN=READ_CHAN,- IOSB=READ_IO_STATUS_BLOCK,- P1=@IN_BUF_PTR,- P2=#IO_BUF_SIZEt* BLBS R0,CH_SWAP_PTRS ; CHECK FOR ERRORS* MOVAL READ_ERROR,R1 ; OUR ERROR MESSAGE! JSB DA_ERROR ; ERROR PROCESSOR* IFABORT RETURN* CH_SWAP_PTRS:* MOVL IN_BUF_PTR,R0 ; SWAP( MOVL OUT_BUF_PTR,IN_BUF_PTR ; BUFFER% MOVL R0,OUT_BUF_PTR ; POINTERS* RSB ; RETURN TO CALLER .PAGE! .SUBTITLE CI - WRITE OUTPUT TAPE B;*****************************************************************;P#; WRITE RECORD TO OUTPUT TAPE DRIVEN;IB;*****************************************************************;B; WRITE SUBROUTINE CODE:"; PUT ADR OF BUFFER INTO QIO PARMS4; COPY LENGTH OF BUFFER FROM INPUT IOSB TO QIO PARMS; ISSUE WRITE QIO; CHECK FOR ERRORS;SB;***************************************************************** CI_WRITE:*0 $QIO_S EFN=#WRITE_EFN,- ; WRITE RECORD TO TAPE FUNC=#IO$_WRITELBLK,-E CHAN=WRITE_CHAN,-C IOSB=WRITE_IO_STATUS_BLOCK,- P1=@OUT_BUF_PTR,-C P2=READ_LENGTH/ BLBS R0,CI_EXIT ; CHECK FOR DIRECTIVE ERRORSJ+ MOVAL WRITE_ERROR,R1 ; OUR ERROR MESSAGEE! JSB DA_ERROR ; ERROR PROCESSORGCI_EXIT: RSB ; RETURN TO CALLERI .PAGE .SUBTITLE CJ - READ WAIT B;*****************************************************************;O ; READ_WAIT ; WAIT FOR COMPLETIONA; CHECK FOR ERRORS; CHECK FOR EOF;BB;***************************************************************** CJ_READ_WAIT:D4 $WAITFR_S EFN=#READ_EFN ; WAIT FOR READ TO FINISH/ CMPW READ_IO_STATUS_BLOCK,#SS$_NORMAL ; ERROR?P BEQL CJ_EXIT ; NO0 CMPW READ_IO_STATUS_BLOCK,#SS$_ENDOFFILE ; EOF?# BEQL CJ_EXIT ; YES - IGNORE IT* MOVAL READ_ER00lZ j TADATADATADATADATADATAROR,R1 ; OUR ERROR MESSAGE6 CVTWL READ_IO_STATUS_BLOCK,R0 ; SYSTEM ERROR MESSAGE! JSB DA_ERROR ; ERROR PROCESSORJCJ_EXIT:= MOVZWL READ_IO_STATUS_BLOCK+2,READ_LENGTH ; GET # BYTES READ  RSB ; RETURN TO CALLER .PAGE .SUBTITLE CK - WRITE WAITB;*****************************************************************; :; WAIT FOR A WRITE OPERATION TO COMPLETE THEN CHECK STATUS; B;*****************************************************************CK_WRITE_WAIT:5 $WAITFR_S EFN=#WRITE_EFN ; WAIT FOR WRITE TO FINISH*0 CMPW WRITE_IO_STATUS_BLOCK,#SS$_NORMAL ; ERROR? BEQL CK_EXIT ; NOI+ MOVAL WRITE_ERROR,R1 ; OUR ERROR MESSAGE*6 CVTWL WRITE_IO_STATUS_BLOCK,R0 ; SYSTEM ERROR MESSAGE! JSB DA_ERROR ; ERROR PROCESSOR CK_EXIT: RSB ; RETURN TO CALLERE .PAGE .SUBTITLE CL - EOF_CHECKPB;*****************************************************************;C; CHECK FOR EOF. ; IF NOT EOF THENI%; RESET COUNT OF NUMBER OF EOFS .P ; RETURN./ ; END IF.C; WRITE EOF ON OUTPUT DRIVE.#; COUNT NUMBER OF CONSECUTIVE EOFS.W#; IF MULTIPLE EOFS ENCOUNTERED THEN1; ASK USER IF HE WANTS TO STOP (VIA "ERROR").T ; END IF.C; IF SINGLE EOF THEN/; POSSIBLY WRITE NUMBER OF RECORDS IN FILE.E ; END IF.T; READ NEXT RECORD._2; SEE IF IT WAS AN EOF (**** RECURSIVE CALL ****).;L@; NOTE: THERE ARE ONLY TWO WAYS OUT OF THE RECURSIVE CALL LOOP:8; 1) IF WE READ A NON-EOF, WE WILL RETURN TO THE CALLER,B; 2) IN THE CALL TO "ERROR", THE USER CAN SPECIFY THAT HE DOES NOTC; WANT TO CONTINUE. IN THIS CASE, THE PROGRAM WILL CLEAN THINGSJA; UP AND STOP, BUT NEVER COME BACK TO US (IE, THE STACK IS NOT:,; UNWOUND - UNSTRUCTURED, BUT EFFECTIVE.);JB;***************************************************************** CL_EOF_CHECK:NB;*****************************************************************;L;; CHECK FOR EOF. IF NOT EOF, RESET COUNT OF NUMBER OF EOFS*;*B;*****************************************************************0 CMPW READ_IO_STATUS_BLOCK,#SS$_ENDOFFILE ; EOF?+ BEQL CL_PROCESS_EOF ; YES - CHECK IT OUTI9 CLRB NUMBER_OF_EOFS ; NO - CLEAR # OF CONSECUTIVE EOFSI0 INCL NUMBER_OF_RECORDS ; COUNT RECORDS IN FILE" BRW CL_EXIT ; RETURN TO CALLERB;*****************************************************************;R; WRITE EOF ON OUTPUT DRIVE,"; COUNT NUMBER OF CONSECUTIVE EOFS%; DETERMINE IF MULTIPLE EOF CONDITION*;*B;*****************************************************************CL_PROCESS_EOF:E6 $QIO_S EFN=#WRITE_EFN,- ; "COPY" EOF TO OUTPUT DRIVE FUNC=#IO$_WRITEOF,-B CHAN=WRITE_CHAN,-I IOSB=WRITE_IO_STATUS_BLOCK/ INCB NUMBER_OF_EOFS ; COUNT CONSECUTIVE EOFSO% CMPB #2,NUMBER_OF_EOFS ; 2 OR MORE? - BGTR CL_EOF_PRINT ; NO - TRY ANOTHER READ*B;*****************************************************************;S;; MULTIPLE EOFS ENCOUNTERED. ASK USER IF HE WANTS TO STOP.I0; IF HE DOES, WE WILL NEVER RETURN FROM "ERROR".;RB;***************************************************************** CLRL R0 ; NO SYSTEM ERRORS- MOVAL DOUBLE_EOF_MSG,R1 ; OUR ERROR MESSAGE# JSB DA_ERROR ; PROCESS CONDITIONK IFABORT RETURNAB;*****************************************************************;AN; IF THIS IS A SINGLE EOF, CHECK TO SEE IF WE WRITE NUMBER OF RECORDS IN FILE.;*B;***************************************************************** CL_EOF_PRINT: - CMPB #1,NUMBER_OF_EOFS ; FIRST EOF IN FILE?K BGTR CL_READ_NEXT_REC ; NO7 CMPB #^A/Y/,PRINT_NUM_RECS ; PRINT NUMBER OF RECORDS?S BNEQU CL_READ_NEXT_REC ; NOR< $FAO_S CTRSTR=NUM_RECS_MSG,- ; FORMAT "NUMBER OF RECS" MSG OUTBUF=BUFFER_DESCR,- OUTLEN=FORMATTED_DESCR,- P1=FILES_READ,-I P2=NUMBER_OF_RECORDS5 PUSHAQ FORMATTED_DESCR ; ADR OF FORMAT DESCRIPTION,+ CALLS #1,G^LIB$PUT_OUTPUT ; WRITE MESSAGEO* INCL FILES_READ ; INCREMENT FILE NUMBER2 CLRL NUMBER_OF_RECORDS ; RESET NUMBER OF RECORDS EB;*****************************************************************;*; READ NEXT RECORD.M2; SE00lbmi E IF IT WAS AN EOF (**** RECURSIVE CALL ****).D; NOTE: UPON MULTIPLE EOFS, THE USER IS ASKED IF WE SHOULD CONTINUE.;EB;*****************************************************************CL_READ_NEXT_REC: " JSB CH_READ ; READ NEXT RECORD IFABORT RETURN*8 JSB CK_WRITE_WAIT ; WAIT FOR OUTPUT EOF TO BE WRITTEN IFABORT RETURNU/ JSB CJ_READ_WAIT ; WAIT FOR NEW INPUT RECORD  IFABORT RETURN*. JSB CL_EOF_CHECK ; **** RECURSIVE CALL ****CL_EXIT: RSB ; RETURN TO CALLER .PAGE .SUBTITLE CM - MOUNT TAPESB;*****************************************************************;P; CM_MOUNT_TAPES; SAME AS $ MOUNT/FOREIGN ddcu: ;PB;*****************************************************************CM_MOUNT_TAPES:A MOVW INDEV_DESCR,IN_MOUNT_LIST ; GET LENGTH OF INPUT DEVICE NAMEED MOVW OUTDEV_DESCR,OUT_MOUNT_LIST ; GET LENGTH OF OUTPUT DEVICE NAME? MOVC3 #5,INDEV,IN_COMMENT_DEV ; PUT DEV NAME IN MOUNT COMMENTD, $MOUNT_S IN_MOUNT_LIST ; MOUNT INPUT TAPE* BLBS R0,CM_MOUNT_OUT ; DID MOUNT GO OK?1 MOVAL IN_MOUNT_ERROR,R1 ; GET OUR ERROR MESSAGE*. JSB DA_ERROR ; ASK USER WHAT TO DO ABOUT IT IFABORT RETURN CM_MOUNT_OUT:E@ MOVC3 #5,OUTDEV,OUT_COMMENT_DEV ; PUT DEV NAME IN MOUNT COMMENT. $MOUNT_S OUT_MOUNT_LIST ; MOUNT OUTPUT TAPE% BLBS R0,CM_EXIT ; DID MOUNT GO OK?*2 MOVAL OUT_MOUNT_ERROR,R1 ; GET OUR ERROR MESSAGE. JSB DA_ERROR ; ASK USER WHAT TO DO ABOUT ITCM_EXIT: RSB ; RETURN TO CALLERS .PAGE .SUBTITLE DA - ERROROB;*****************************************************************;W; ERROR PROCESSOR. ; PARAMETERS: .; R0 - SYSTEM ERROR MESSAGE NUMBER OR ZERO4; R1 - ADDRESS OF CALLER'S ERROR MESSAGE OR ZERO;6; IF EITHER IS ZERO, THEN THAT MESSAGE IS NOT PRINTED.;R@; AFTER PRINTING THE MESSAGE, ASK IF THE USER WANTS TO CONTINUE.; IF NOT, STOP THE PROGRAM.;R; R0 AND R1 ARE NOT PRESERVED.;BB;***************************************************************** DA_ERROR:  TSTL R1 ; IS IT ZERO?4 BEQL DA_SYS_ERR_MSG ; YES - SKIP OUR CALLER'S MSG* PUSHR #^M ; SAVE SYSTEM ERR NUMBER+ PUSHL R1 ; PUSH ADR OF CALLER'S MESSAGE 4 CALLS #1,G^LIB$PUT_OUTPUT ; WRITE CALLER'S MESSAGE, POPR #^M ; RESTORE SYSTEM ERR NUMBERDA_SYS_ERR_MSG:N TSTL R0 ; IS IT ZERO?E/ BEQL DA_ASK_CONT ; YES - SKIP SYSTEM ERR MSG*B;*****************************************************************;RA; IF THIS IS A "SEVERE" ERROR, CHANGE IT TO "ERROR" SO THE SYSTEMA; WON'T ABORT US.A;RB;*****************************************************************' EXTZV #0,#3,R0,R1 ; EXTRACT SEVERITYO CMPL #4,R1 ; IS IT "SEVERE"? BNEQ DA_NOT_SEVERE ; NO- INSV #3,#0,#3,R0 ; YES - CHANGE TO "ERROR";DA_NOT_SEVERE:' PUSHL R0 ; PUSH SYSTEM ERROR NUMBERN5 CALLS #1,G^LIB$SIGNAL ; PRINT SYSTEM ERROR MESSAGE DA_ASK_CONT:& PUSHAL FORCE_PROMPT ; ALWAYS PROMPT/ PUSHAL CONT_REPLY ; WHERE TO ANSWER'S LENGTHR PUSHAQ CONT_MSG ; WHAT TO ASK) PUSHAQ CONT_REPLY ; WHERE TO PUT REPLY,* CALLS #4,G^LIB$GET_FOREIGN ; "CONTINUE?"& CMPB #^A/Y/,CONT_REPLY+8 ; CONTINUE?* BEQLU DA_EXIT ; YES - RETURN TO CALLER4 CLRL CONTINUE ; NO - CLEAR CONTINUE FLAG: 0=ABORTDA_EXIT: RSB ; RETURN TO CALLER* .END TCOPYU PROGRAM TCPY IMPLICIT INTEGER*4 (A-Z) INCLUDE '($IODEF)' INCLUDE '($SSDEF)' BYTE Z(64000) BYTE BELL BYTE FLAG CHARACTER*4 ALLMT0,ALLMT1 INTEGER*4 IOSB$L(2) INTEGER*2 IOSB$W(4)" EQUIVALENCE (IOSB$L(1),IOSB$W(1))$C DATA ALLMT0/'MTA0'/,ALLMT1/'MTB0'/ BELL=7( STATUS = SYS$ASSIGN( 'MTA0', INCHAN,, ) C STATUS = SYS$ALLOC( ALLMT0,,,)BC IF(STATUS.NE.SS$_NORMAL.AND.STATUS.NE.SS$_DEVALRALLOC)GO TO 9000) STATUS = SYS$ASSIGN( 'MTB0', OUTCHAN,, ) C STATUS = SYS$ALLOC( ALLMT100mjnmopTADATADATADATADATADATA,,,)AC IF(STATUS.NE.SS$_NORMAL.AND.STATUS.NE.SS$_DEVALRALLOC)GOTO 9000A STATUS = SYS$QIOW(,%VAL(INCHAN),%VAL(IO$_REWIND),IOSB$L,,,,,,,,). IF(STATUS.NE.1) CALL LIB$SIGNAL(%VAL(STATUS))B STATUS = SYS$QIOW(,%VAL(OUTCHAN),%VAL(IO$_REWIND),IOSB$L,,,,,,,,). IF(STATUS.NE.1) CALL LIB$SIGNAL(%VAL(STATUS))& IF(IOSB$W(1).EQ.SS$_WRITLCK)GOTO 9100 DO WHILE (.TRUE.)5 STATUS = SYS$QIOW(,%VAL(INCHAN),%VAL(IO$_READVBLK),. 1 %REF(IOSB$L),,,%REF(Z),%VAL(64000),,,,)/ IF(STATUS.NE.1) CALL LIB$SIGNAL(%VAL(STATUS))) IF(IOSB$W(1).EQ.SS$_ENDOFTAPE)CALL EXIT$ IF(IOSB$W(1).EQ.SS$_ENDOFFILE)THENE STATUS = SYS$QIOW(,%VAL(OUTCHAN),%VAL(IO$_WRITEOF),IOSB$L,,,,,,,,)0 IF(STATUS.NE.1) CALL LIB$SIGNAL(%VAL(STATUS)) FLAG=FLAG+1 IF(FLAG.EQ.2)CALL EXIT ELSE FLAG=08 STATUS = SYS$QIOW(,%VAL(OUTCHAN),%VAL(IO$_WRITEVBLK),3 1 %REF(IOSB$L),,,%REF(Z),%VAL(IOSB$W(2)),,,,)0 IF(STATUS.NE.1) CALL LIB$SIGNAL(%VAL(STATUS))3 IF(IOSB$W(1).NE.1) CALL LIB$SIGNAL(%VAL(STATUS)) END IF END DO9000 WRITE(6,9010)BELL:9010 FORMAT(/,1A1,'ERROR - Cannot allocate tape drive.'//) GOTO 99999100 WRITE(6,9110)BELLE9110 FORMAT(/,1A1,'ERROR - Cannot write to MTB0: Please insert write 1 ring.'//)9999 CALL EXIT END .TITLE TCPY .IDENT /GCE000/.;TAPE COPY FROM LUN 1 TO LUN 2, IMAGEMODE WITH0;BIG BUFFERS. ALLOCATE 1 BUFFER OF HUGE SIZE AND';BOUNCE DATA THROUGH IT. IGNORE ERRORS.-*BUFFR: .BLKW 15000. ;SUITABLY GIANT BUFFER0;NO TAPE POSITIONING FIRST...USE TPP TO DO THAT. .MCALL EXIT$S,QIOW$S5 .GLOBL TCPY)ERR: .ASCII <15><12><7><7>/*** ERROR ***/l9 .ASCII / TAPE WRITE PROTECTED. TCPY ABORTED./<15><12> ERRE=.-ERR  .EVENIOIN: .WORD 0,0tIOOUT: .WORD 0,0 ;I/O STAT BLKSN%EOFFLG: .WORD 0 ;COUNTER OF EOF CHARS ATCPY: QIOW$S #IO.RLB,#1,#1,,#IOIN,,<#BUFFR,#30000.>;READ A RECORDI BCS LOSE ;LOSE IF NO DRIVER;IOIN = BYTES SEEN?;CHECK FOR EOF, AND IF SEEN, COUNT IT AND WRITE TO OUTPUT TAPE. ,;OTHERWISE WRITE DATA OUT. ON 2ND EOF, EXIT. .MACRO ETST ERR CMPB IOIN,#ERR BEQ DOEOF .ENDM# ETST IE.EOF ;1 ENDFILE SEEN*7 ETST IE.EOV ;END OF VOLUME (2 EOF ON TAPE) SEENB% ETST IE.EOT ;END OF TAPE SEEN CMPB IOIN,#IE.PRI BNE 1$D EXIT$S 1$:B CLR EOFFLG ;SAY GOT DATAT! MOV IOIN+2,R0 ;GET BYTES READ INR> QIOW$S #IO.WLB,#2,#2,,#IOOUT,,<#BUFFR,R0> ;WRITE WHAT WE READ CMPB IOOUT,#IE.WLK BEQ ERROUT BR TCPY#DOEOF: QIOW$S #IO.EOF,#2,#2,,#IOOUT # INC EOFFLG ;COUNT EOFS CONSECUTIVET CMP EOFFLG,#2 BLT TCPY. BR LOSE0ERROUT: QIOW$S #IO.WVB,#5,#3,,,,<#ERR,#ERRE,#40> LOSE: EXIT$S .END TCPY .TITLE TCPY .IDENT /GCE000/.;TAPE COPY FROM LUN 1 TO LUN 2, IMAGEMODE WITH0;BIG BUFFERS. ALLOCATE 1 BUFFER OF HUGE SIZE AND';BOUNCE DATA THROUGH IT. IGNORE ERRORS.*BUFFR: .BLKW 17000. ;SUITABLY GIANT BUFFER'; (HOPE NOBODY USES MORE THAN 32 KBYTES0;NO TAPE POSITIONING FIRST...USE TPP TO DO THAT. .MCALL EXIT$S,QIOW$S .GLOBL TCPY5RWERR: .ASCII <15><12>/** READ ERROR SEEN **/<15><12>RWERRL=.-RWERR .EVEN)ERR: .ASCII <15><12><7><7>/*** ERROR ***/9 .ASCII / TAPE WRITE PROTECTED. TCPY ABORTED./<15><12> ERRE=.-ERR .EVENIOIN: .WORD 0,0IOOUT: .WORD 0,0 ;I/O STAT BLKS%EOFFLG: .WORD 0 ;COUNTER OF EOF CHARSATCPY: QIOW$S #IO.RLB,#1,#1,,#IOIN,,<#BUFFR,#34000.>;READ A RECORD BCS LOSE ;LOSE IF NO DRIVER;IOIN = BYTES SEEN?;CHECK FOR EOF, AND IF SEEN, COUNT IT AND WRITE TO OUTPUT TAPE.,;OTHERWISE WRITE DATA OUT. ON 2ND EOF, EXIT. .MACRO ETST ERR CMPB IOIN,#ERR BEQ DOEOF .ENDM# ETST IE.EOF ;1 ENDFILE SEEN7 ETST IE.EOV ;END OF VOLUME (2 EOF ON TAPE) SEE00orptqvN% ETST IE.EOT ;END OF TAPE SEEN CMPB IOIN,#IS.SUC BEQ 20$$; SAW SOME SORT OF ERROR. TELL USER.- QIOW$S #IO.WVB,#5,#3,,,,<#RWERR,#RWERRL,#40>20$: CMPB IOIN,#IE.PRI BNE 1$ EXIT$S1$: CLR EOFFLG ;SAY GOT DATA! MOV IOIN+2,R0 ;GET BYTES READ IN> QIOW$S #IO.WLB,#2,#2,,#IOOUT,,<#BUFFR,R0> ;WRITE WHAT WE READ CMPB IOOUT,#IE.WLK BEQ ERROUT BR TCPY#DOEOF: QIOW$S #IO.EOF,#2,#2,,#IOOUT# INC EOFFLG ;COUNT EOFS CONSECUTIVE CMP EOFFLG,#2 BLT TCPY BR LOSE0ERROUT: QIOW$S #IO.WVB,#5,#3,,,,<#ERR,#ERRE,#40> LOSE: EXIT$S .END TCPYTCPYE3/CP/-FP=TCPYE3/ ASG=MT0:1 ASG=MT1:2ASG=TI:3:4:5:6UNITS=6PRI=70 STACK=100; BUILD FILE FOR TCPYE3*; BUILD UNDER VMS WITH MCR TKB @TCPYE3.CMD"; BUILD UNDER RSX WITH TKB @TCPYE3&; ASSEMBLY IS JUST "MAC TCPYE3=TCPYE3"&; (OR MCR MAC TCPYE3=TCPYE3 UNDER VMS)9; COPIES ALL OF MT0: ONTO ALL OF MT1: IGNORING EOV ERRORS7; AND COPIES TO DOUBLE EOF. THUS WILL WORK WITH INITIAL(; REELS OF MULTIVOLUME TAPE BACKUP SETS.6; FORMAT INDEPENDENT, ACCEPTS HUGE BLOCK SIZES WITH NO6; COMPLAINTS. PRINTS OUT WARNING ERROR MESSAGES IF ANY6; ERRORS OCCUR DURING THE COPY BUT COPIES TAPE ANYWAY.// .TITLE TCPY .IDENT /GCE001/.;TAPE COPY FROM LUN 1 TO LUN 2, IMAGEMODE WITH0;BIG BUFFERS. ALLOCATE 1 BUFFER OF HUGE SIZE AND';BOUNCE DATA THROUGH IT. IGNORE ERRORS.*BUFFR: .BLKW 17000. ;SUITABLY GIANT BUFFER'; (HOPE NOBODY USES MORE THAN 32 KBYTES0;NO TAPE POSITIONING FIRST...USE TPP TO DO THAT. .MCALL EXIT$S,QIOW$S .GLOBL TCPY;ETERR: .ASCII <15><12>/** ENDTAPE ERROR, IGNORED**/<15><12>ETERRL=.-ETERR .EVEN5RWERR: .ASCII <15><12>/** READ ERROR SEEN **/<15><12>RWERRL=.-RWERR .EVEN)ERR: .ASCII <15><12><7><7>/*** ERROR ***/9 .ASCII / TAPE WRITE PROTECTED. TCPY ABORTED./<15><12> ERRE=.-ERR .EVENIOIN: .WORD 0,0IOOUT: .WORD 0,0 ;I/O STAT BLKS%EOFFLG: .WORD 0 ;COUNTER OF EOF CHARSATCPY: QIOW$S #IO.RLB,#1,#1,,#IOIN,,<#BUFFR,#34000.>;READ A RECORD bcc 3990$ jmp lose3990$:; BCS LOSE ;LOSE IF NO DRIVER;IOIN = BYTES SEEN?;CHECK FOR EOF, AND IF SEEN, COUNT IT AND WRITE TO OUTPUT TAPE.,;OTHERWISE WRITE DATA OUT. ON 2ND EOF, EXIT. .MACRO ETST ERR CMPB IOIN,#ERR BEQ DOEOF .ENDM# ETST IE.EOF ;1 ENDFILE SEEN<; special version... ignore eot errors and consider only EOF8; ETST IE.EOV ;END OF VOLUME (2 EOF ON TAPE) SEEN&; ETST IE.EOT ;END OF TAPE SEEN CMPB IOIN,#IS.SUC BEQ 20$ cmpb ioin,#ie.eov( beq 200$ ;report eov errors separately cmpb ioin,#ie.eot beq 200$$; SAW SOME SORT OF ERROR. TELL USER.- QIOW$S #IO.WVB,#5,#3,,,,<#RWERR,#RWERRL,#40> br 20$200$:, qiow$s #io.wvb,#5,#3,,,,<#eterr,eterrl,#40>&; separate message for eot type errors20$: CMPB IOIN,#IE.PRI BNE 1$ EXIT$S1$: CLR EOFFLG ;SAY GOT DATA! MOV IOIN+2,R0 ;GET BYTES READ IN> QIOW$S #IO.WLB,#2,#2,,#IOOUT,,<#BUFFR,R0> ;WRITE WHAT WE READ CMPB IOOUT,#IE.WLK BEQ ERROUT BR TCPY#DOEOF: QIOW$S #IO.EOF,#2,#2,,#IOOUT# INC EOFFLG ;COUNT EOFS CONSECUTIVE CMP EOFFLG,#2 bge 6733$ jmp tcpy6733$: ; BLT TCPY BR LOSE0ERROUT: QIOW$S #IO.WVB,#5,#3,,,,<#ERR,#ERRE,#40> LOSE: EXIT$S .END TCPY00rzs~pTADATADATADATADATADATA PROGRAM TCPY IMPLICIT INTEGER*4 (A-Z) INCLUDE '($IODEF)' INCLUDE '($SSDEF)' BYTE Z(32000) BYTE BELL BYTE FLAG CHARACTER*4 ALLMT0,ALLMT1 INTEGER*4 IOSB$L(2) INTEGER*2 IOSB$W(4)" EQUIVALENCE (IOSB$L(1),IOSB$W(1))$C DATA ALLMT0/'MTA0'/,ALLMT1/'MTA1'/ BELL=7( STATUS = SYS$ASSIGN( 'MTA0', INCHAN,, ) C STATUS = SYS$ALLOC( ALLMT0,,,)BC IF(STATUS.NE.SS$_NORMAL.AND.STATUS.NE.SS$_DEVALRALLOC)GO TO 9000) STATUS = SYS$ASSIGN( 'MTA1', OUTCHAN,, ) C STATUS = SYS$ALLOC( ALLMT1,,,)AC IF(STATUS.NE.SS$_NORMAL.AND.STATUS.NE.SS$_DEVALRALLOC)GOTO 9000A STATUS = SYS$QIOW(,%VAL(INCHAN),%VAL(IO$_REWIND),IOSB$L,,,,,,,,). IF(STATUS.NE.1) CALL LIB$SIGNAL(%VAL(STATUS))B STATUS = SYS$QIOW(,%VAL(OUTCHAN),%VAL(IO$_REWIND),IOSB$L,,,,,,,,). IF(STATUS.NE.1) CALL LIB$SIGNAL(%VAL(STATUS))& IF(IOSB$W(1).EQ.SS$_WRITLCK)GOTO 9100 DO WHILE (.TRUE.)5 STATUS = SYS$QIOW(,%VAL(INCHAN),%VAL(IO$_READVBLK),. 1 %REF(IOSB$L),,,%REF(Z),%VAL(32000),,,,)/ IF(STATUS.NE.1) CALL LIB$SIGNAL(%VAL(STATUS))) IF(IOSB$W(1).EQ.SS$_ENDOFTAPE)CALL EXIT$ IF(IOSB$W(1).EQ.SS$_ENDOFFILE)THENE STATUS = SYS$QIOW(,%VAL(OUTCHAN),%VAL(IO$_WRITEOF),IOSB$L,,,,,,,,)0 IF(STATUS.NE.1) CALL LIB$SIGNAL(%VAL(STATUS)) FLAG=FLAG+1 IF(FLAG.EQ.3)CALL EXIT ELSE FLAG=08 STATUS = SYS$QIOW(,%VAL(OUTCHAN),%VAL(IO$_WRITEVBLK),3 1 %REF(IOSB$L),,,%REF(Z),%VAL(IOSB$W(2)),,,,)0 IF(STATUS.NE.1) CALL LIB$SIGNAL(%VAL(STATUS))3 IF(IOSB$W(1).NE.1) CALL LIB$SIGNAL(%VAL(STATUS)) END IF END DO9000 WRITE(6,9010)BELL:9010 FORMAT(/,1A1,'ERROR - Cannot allocate tape drive.'//) GOTO 99999100 WRITE(6,9110)BELLE9110 FORMAT(/,1A1,'ERROR - Cannot write to MTA1: Please insert write 1 ring.'//)9999 CALL EXIT END|,?? VAЯSYSYSYSYTITIzOЯzVzxO' TPC>P00stqv8}gSY8}gSYHEBLySCSA}COEVHDNR ER@ANEBRTTRTWSZLOFRCT IM@FLNINOMIMOCMVEIMGFILO:&_ $ TPC - Tape / Disk utility program This program will copy magtapes to RSX-11 disk files and record them in a special image mode. This allows very fast multiple copies of tapes to be made from the disk image (much faster than FLX). Maximum block size is 11000. bytes. per tape block. The command format is standard RSX-11: TPC>outfile=infile[/BL:nnnn][/SA:mmmm][/CO][/HE] Where: -One "file" must be a magtape device /BL:nnnn = An optional allocation specification if disk is the output device. /SA:mmmm = An optional secondary allocation amount if disk is the output device. /CO = Disk file to be contiguous /HE = This help text /NR = Do not rewind tape before use /HD = Use high density (1600 BPI) on tape /ER = Ignore input tape errors except EOT/EOV/EOF /EV = Ignore End-Volume or End-Tape errors /AN = ANSI format tape, use EOV1 and EOV2 for endtape /EB = EBCDIC labels (requires /AN switch) /SC:nnnn Sets tape characteristics to nnnn (octal) /TR = Read disk as if tape, to file on output /TW = Write file to disk as if tape output /SZ:low:high = Size in blks of disk to read on /TR /LO:low:high = Low blk number to start with on nonfile disk /FR = Rewind tape after writing /RT = RT11 version of ANSI format (Not 80 byte lbls) /VE = Verify tape/disk transfer after copy /CM = Compare tape and existing disk file /MI = Magtape In (overrides device name recog.) /MO = Magtape Out (overrides device name recog.) /IM:lo:hi:blkfct = Image copy, output blk no (lo:hi) and block factor args (blkfct=8 default) Image mode subswitches: /FL:filnam = Create FLX label first on tape of filnam.OLB[1,1]<233> /CT = Include control QIOS even if dsk-dsk /NI = "Nibble copy" In (read input in 1 blk a time) /NO = "Nibble copy" Out (wrt output 1 blk at a time) Defaults: /AN/-HD/-EB/BL:100/SA:50/-CO/SZ:494.:0/LO:0:0/-CTTPC -- Disk I/O error. Code=%DTPC -- Magtape I/O error. Code=%DTPC -- Compare error. Files are different.00s~pTADATADATADATADATADATA00stqv00s~pTADATADATADATADATADATA00stqv00s~pTADATADATADATADATADATA00stqv00s~pTADATADATADATADATADATA00stqv00s~pTADATADATADATADATADATA00stqvMMMSMTMFMUMAEOF2VVHDR2ddJJJJJ.*DY*>* f17 V7 V7 U5UU7 UTPC -- Starting verify pass.VU & TI 4d(d$HDz  :EOF2VVHDR2"T7 T7 T7 T7 7 $U U7 U7 UU7 U7 U7 U7 U7 UU U*:0 b #`3TPC -- Command line input errorUU wzRrR | TPC -- Command line syntax error8T T wf jTFȕ "ȕ "%DT!TPC -- /VE and /CM Not valid at same time.NT*JT w5SS7 SQQ  Sȕ D"ȕ 4" TPC -- Invalid switch(SS ww5:RU2R5RF1R15Qwp5Q S7 R R7 RR R7 R2RRR "eB5BR 3 . b315BR5R  R=Rw R "# N.. "# 4.TPC -- Open error on output filebR ^R w0 R ȕ p ȕ \ w00s~pTADATADATADATADATADATA"w(5Pwz"b&eBb5AQ 2 b- >25AlQ5bQ  (TPC -- Open error on input filenQQ w0$# -؇~|5@P"x TPC - Specify 1 file & 1 magtape deviceҴQ'Q wPPPPmPPw PmPPPPPP5@P  P wt wwBq%  z ^*$& & & & & & & & & Ε  & & & & & & & & & Ε x 1$& & & & & & & & & Ε  & & & & & & & & & Ε x O7OЋ BO  w)5 rO TPC -- Compare OK.nOO w>wB w w w( (FOwDO  w7 n7 n7 hFB5N5 NG& & & & & & & & & Ε 5 jM& & & & & & & & & Ε 5&  5MeMw Me Я̇ MwdPP  e& f6f4& f&  m6u 4eڇw5 we*Mw $M5M -MMs-M MnD5@Kͥ5K͕ͥͥͥ͋35Km5KW-Pe7-B7> |KZ7 vK7-.7-(bKL7-H7- D LKA7 FK>58K ͕ͥͥͥͥͥ;5K- K K5U 5J  U LeEhu  w& & & & & & & <& Ε  U&w$!szKvK`KXK7 7 7 5 BKwb& & & & & & & & & Ε & & & & & & & & & Ε 5 I$& & & & & & & & & Ε & & & & & & & & & Ε 5xI5lI]J& & & & & && & & Ε@ & & & & & && & & Ε@ 55 >& & & & & & &  5=5H=-D= >=U L0,wd :e  z& 64& f&f&  mv6s 4wU5=5 =^& & & & & & J&  & & & & & & (&  & & & & & & &  & & & & & & Ε  5L=& & & & & & & Ε !s5 LE5}fe^w (@f ťZ+ťAť9%ť0ť$ ť  ť.@&fA pEAa$ w ~ ť ť 0B (Aaw L' UD$BA ,&( U BQ bЕ*  & & @( f  e ee e ABDEFIMNOPQRSTUXYZ<>"Ba$ep|v$JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDECw L&& D¥%  B&ХVA C ed!  aeNbE  Е%̥V A6D Ћ  AP AЕ Bf  & e6& e/& e *AHŀ ȕ Е Е Е & eX & eDЕ A %& eA Е A EA <EЕ A A   $Е.  AЕ;     w 5 funhj uhmB$ Jjwa wL 8 8w3AdBbAepf& P aNNffn  AnC*WB8"ÕOP aAAf@pnp C*7AB`f Xa`& WaWz  ɥ"N  ajhu-nhwNɥ;_a+wנ$å0@j  a < Fw@ ŀajTI& af* r*`V @e,w jjlj ɥ@Baujk,bp 5f fˇ ȕ ‡ ReSY e,5 funhwe,aja`W- f`nwDuhnw@ DlljaCeH###33 & 8 *R&·w  8jDl@ TeBT85l@ @( D >eB&  & @# & V @ An5jP a@@` > ~ &@ . eRa-eR BAnB X/   @   RՀaeRÕweRR)K@j aŀajw D&& bЕ- eaePPPЕ-$w |D  &Е. ce 8 Е:   FBf&f ` *  נ נ  נננ"D נaנz E ѐEp(p נ$נ0נ9נAנZנ_נ:  Vנ[ȕ]נ<ȕ>ȋ8 ~נ%נ*נ-נ.נ0נ9נAנZȠ yנ0נ7נ*נ,A jȠh f  oנ"A   #A aנ$נ%נ*נ0נ9נAנZנ_נ.  נ.נ; dנ0נ9 ]נ- X נ* QA  נ, Dנ=  >5 B>U (w^נ/* . ,נ$נ-נ.נ0נ900s~pTADATADATADATADATADATAנAנZ נ_ נ:  Dנ"  0f&f E^`  UQ  UQ ËUI U `e  !ddC    D%*.C U 0 0 W ,Uw6W /@ : ^BDaW-Ί WNWOD!BΊz CECCD! D! ΋5  e ΐ TpRpR΋pBC5N KR΋KBAE:D0CĊ f eB  Dҁ CSĊ 8 WB E Br Ε f)& 6 l(*  E 'W " =N  W :+W = 1 #W ,W / %W %W *Հ W <W [W >W ] v(* 6 eJyw .BC" && @SY&*p0p210=E%0=w(*e "f D CB.Ew *8I D *=)98 eB &&  U **e *Nlv ΋*.2 F  & #!)&eP(e && >e >E p* ww f*f hf V ! fP ŀ)Bw (3B C DBe ?D1 BB(e(%2  1 >w    w w ( D p 8#"#)%ĥ ĥ w 0 *0 @Q$    0 40 60))eB  W# P&* =wV 2s q EW!p0p2(B&#"rCfE @#U   P3)/ #( P) @#**fff V  &*wv. zB5(8e$8w2A&(e 4p8q  (#5=00stqvA#@)) h *R*)@#0l C# 028 00ĥۇAĥĊ  000 6 0 @0 &*0 @ & & e# eB&B `B X *  eBe>  # #D #=0/H#@&0 # = e0   ,0@e 6=#02/002# @#?@#040 6wt/! 0s0 0/0q0p!0 .=p0p2eB  8 $&w * X& *     V *   w *D B 43 UqqC ӥ: ~ Ce    *&ff  8 !Հ)wF*w*&  m  f A N  %&f  5 ߥ& *  + 23E Ew    Е-   0@A XW e`fÊ    E 82e&( 0 0 0 80 B0 0 0 0)#0.0+1(e  %&p*w f( f)f j)"(. 4 = . B  E  (.8Ae f"( UCɗ&+(e$&% w z w p& W+W- Ba. W#  B0  c  c S W %ec e`s  # 3  & ˥ Z ^C 0,0, f 톇,, w      .% eB U5UU plp & NeՀ)*   f R >5>Eu Z  f&5ҕ[ "5ҕ, 5ҕ]Et55tF e0ҐtIw L*D ~ww 0 ) &8C * ) *w&*  ep p  n = EW9ť^*0p CaC  = H  0* =Eե^A e@  = Ep+!"8eE`l0  0s00/pq0`p l064p 4 p  8 V *`)w  NC#   D @)  6?0D)w *) * Fw46l0 4   U*O*K9 "&ee%%%  Uf& W!W   p*ŋ(De e( " U* r5)%Eefffff f% EDD%][%>< D  1 141612epl2l0p fMw~e6p 4 8 81416  .  T   f &* x*> =00l&8el2 0 *w heE D` bl lrw $  B eE"s    s-  CslU=f(& e %&&eH =&e0  ^U   E > >E(C2C=uf .p  w*,(#$w f $ :T~U@w  w1  %,,:4 w *  ע"wd(Ĕ%.%%;C~ 5)5@DD ͥ*Ce e%w00stpTADATADATADATADATADATA U\5@ 5U U*U  "5@\U@5 5LU*U  ʥ*%C!.D` *weC5U5  5 5@e*=U Ee& REe  ӥ" wX ˥"   ˥" Ք     Օ 5%& w &Ba +- ʥ# . U 0   b   `     &   `@ ` B   & A @    8e2 ..8em,0l0!D0e6p 4.) &f   e) .  e6p 4 08*wX=p!Օ^ *) l0, *) $ )*)0,40,6 8  ***  DP5R~RRR~=D ( `p46 f 64/=  @) 0  8w 246 $8 e*w (e( 1  ^(( V  <:~5 eCeC X0CB >BDe $ $ $ Hz  DEe    ~*1 ,*1 U8UMw w~ B 00fep=& /e`pwL46f  8 E D/D!pq0l8epl0pɥ .ɕ*w&fe ~  2 $ L La Ta Wq(W!ZW!AW!9W!0@w " )* n fU ~%  BA `6p 4p`4 %60 4w  ҥ[, &]  5 sC~ D w|, @S TxuSYSYSYSYTICLzOTzVxO00ttqv'B TPC>P8}gSY8}gSYHEBLSCSACOEVHDNR ER@ANEBRTTRTWSZLOFRCT IM@FLNINOCMVEIMGFILO:&_ D TPC - Tape / Disk utility program This program will copy magtapes to RSX-11 disk files and record them in a special image mode. This allows very fast multiple copies of tapes to be made from the disk image (much faster than FLX). Maximum block size is 4200. bytes. per tape block. The command format is standard RSX-11: TPC>outfile=infile[/BL:nnnn][/SA:mmmm][/CO][/HE] Where: -One "file" must be a magtape device /BL:nnnn = An optional allocation specification if disk is the output device. /SA:mmmm = An optional secondary allocation amount if disk is the output device. /CO = Disk file to be contiguous /HE = This help text /NR = Do not rewind tape before use /HD = Use high density (1600 BPI) on tape /ER = Ignore input tape errors except EOT/EOV/EOF /EV = Ignore End-Volume or End-Tape errors /AN = ANSI format tape, use EOV1 and EOV2 for endtape /EB = EBCDIC labels (requires /AN switch) /SC:nnnn Sets tape characteristics to nnnn (octal) /TR = Read disk as if tape, to file on output /TW = Write file to disk as if tape output /SZ:low:high = Size in blks of disk to read on /TR /LO:low:high = Low blk number to start with on nonfile disk /FR = Rewind tape after writing /RT = RT11 version of ANSI format (Not 80 byte lbls) /VE = Verify tape/disk transfer after copy /CM = Compare tape and existing disk file /IM:lo:hi:blkfct = Image copy, output blk no (lo:hi) and block factor args (blkfct=8 default) Image mode subswitches: /FL:filnam = Create FLX label first on tape of filnam.OLB[1,1]<233> /CT = Include control QIOS even if dsk-dsk /NI = "Nibble copy" In (read input in 1 blk a time) /NO = "Nibble copy" Out (wrt output 1 blk at a time) Defaults: /AN/-HD/-EB/BL:100/SA:50/-CO/SZ:494.:0/LO:0:0/-CTTPC -- Disk I/O error. Code=%DTPC -- Magtape I/O error. Code=%DTPC -- Compare error. Files are different.00t pTADATADATADATADATADATA00ttqv00tpTADATADATADATADATADATA00t"tqv00t*pTADATADATADATADATADATA00t2tqv00t:pTADATADATADATADATADATA00tBtqv00tJpTADATADATADATADATADATAMMMSMTMFEOF2VVHDR2ԟԟ(6(^jnnj~jBj .7 e7 e7 e5ee7 eTPC -- Starting verify pass.xee,& TI ԟԟ40  lEOF2VVHDR2c7 c7 c7 c7 7 dd7 dd7 d7 d7 d7 d7 dd d*l0 b #`3TPC -- Command line input errorjdd,w,b$b * TPC -- Command line syntax errorZd Vd,wj dFȕ 00tRtqv|"ȕ n"%c!TPC -- /VE and /CM Not valid at same time.c*c,w5cc7 c`aXa ^ zcȕ !ȕ ! TPC -- Invalid switchtcpc,ww5aUa5aF1R15aw`5a b7 b b7 bb b7 b2|b fbbb "eB5BHb 0 + d0-5B0b  :b=4bw *b "# +. "# +TPC -- Open error on output file b b,w0 a ȕ  ȕ ww05D`w"&eB5A,a n/ * H/ 5Aa  (TPC -- Open error on input fileޤ4a0a,wD$# n*؇5@`"x TPC - Specify 1 file & 1 magtape deviceB`'`,wf`h`^```mV`\`w V`mJ`P`J`P`B`H`5@4`  H` wt wwq%   ($& & & & & & & & & Ε  & & & & & & & & & Ε |  j.$& & & & & & & & & Ε  & & & & & & & & & Ε  _7_Ћ B_, w)5 "_ TPC -- Compare OK.ަB_>_,wRwV w w  wH NH^w^ ,w7 n7 n7 hJF5r^5 j^G& & & & & & & & & Ε 5 ,]& & & & & & & & & Ε 5\5\]]& & & & & && & & Ε@ ԟ u e PP0 eBeC D5]& ]]& &B&  5^]e^]w X]e Ṫ ^]wfԟPP  e & f6f4& f&  m6u 4eڇw5 we\w \5\ -\\s-\\nD5@[ͥ5[͕ͥͥͥ͋35b[m5Z[W-Pe7-B7> >[Z7 8[7-.7-($[L7-H7- D [A7 [>5Z ͕ͥͥͥͥͥ;5Z-Z Z5U 5Z  U LeEhu  w& & & & & & & <& Ε  U&w$!s*[&[[[7 7 7 5 Zwb& & & & & & & & & Ε & & & & & & & & & Ε 5 Y$& & & & & & & & & Ε & & & & & & & & & Ε 5:Y5.Y]4Z& & & & & && & & Ε@ & & & & & && & & Ε@ 5Y0׭YA&f 0 wY $ wYwY7 Y& & & & & & & Ε -YHHYYt 5nY& nYhY& & ª& Ε Y&NYf&f0Y.Y& f&& f& ª& Ε eD e&TPC -Warning- Input read errorYY, 5@Ww |thTPC -Warning- IMG error on input disk^X%X,*5@.WwT54X&  & && ª& Ε M&ft& & f& ª& Ε eB eTPC -Warning- IMG write error2WW, 7ZRFTPC -Warning- IMG error on output diskW&W,u7  7aWw W7aw - Wt wr5 Vy& & & & & & & &  & & & & & & & &  & & & & & & & &  & & & & & & & &  & & & & & & & &  & & & & & & & Ε  5V& & & & & & & & Ε w^5 w\͋ u  wH& & & & & & & & Ε  Uvwvo!sԟ  s  l #wC CC2  =MXd^)JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDECw t&& D¥%  B&ХVA C ed!  aeNb A  Е%̥V P Е Bf  & eB& e~;& e86Hŀ ȕ  nЕ Ћ  Е Е & e. & eЕ A %& eA Е Е A A   $Е.  AЕ;    A EA  .E 6Dw 5 funhj tuhdB$ 8jwaw< 8 v8w &  n*AdBbAep& f  B P aAAf@pnp 6C*8֋ 88*Ë7AB`f Va`& WaWz  ɥ"N  ajfu-nhwFɥ;]a)wנ"å.@j  a Bw@ ŀajTI& af* v*`V @e,w jjlj ɥ@@aujk,bp @5f fˇ ȕ ‡ eSY e,5 funhwe,aja`W- f`nw^uhnw@ Dllja!CeH###33@# * & L8 *:w  8jDl@ @TeBT85l@  @( D \eB& # An5j)f & 2/      RՀa@w D&& bЕ- eaePPPЕ-$w tD  &Е. ce 0 Е:   Bf&f ` *00tbtqv  נ נ  נננ"D נaנz E ѐEp(p נ$נ0נ9נAנZנ_נ:  zנ[ȕ]נ<ȕ>ȋ8 נ%נ*נ-נ.נ0נ9נAנZȠ sנ0נ7נ*נ,A dȠb `  iנ"A   A [נ%נ*נ0נ9נAנZנ.  נ.נ; fנ0נ9 _נ- Z נ* SA  נ, Fנ=  @5 B@U (wjנ/* 0 .נ$נ-נ.נ0נ9נAנZ נ_ נ:  Dנ"    0f&f E^`  UQ  UQ ËUI U `e  !ddC    D%*.C U 0 0 W ,Uw6W /@ : ^BDaW-Ί WNWOD!BΊz CECCD! D! ΋5  e ΐ TpRpR΋pBC5N KR΋KBAE:D0CĊ f eB  Dҁ CSĊ  WB E Br Ε f)& 6 l(*  E 'W " =N  W :+W = 1 #W ,W / %W %W *Հ W <W [W >W ] v(* 6 epǟw t*8F )98 0 eB &&  U "**e *Nlv ΋*.2  & #!)&eP(e && >e >E ~p* w~w ^*f f  !  tŀ)Bw (B C DBe ?D(1 >w ev wx w ( D 8#"#)%ĥ ĥ wl 0 *0 @Q$    0 40 60))eB t D \# U&* =w `p!2 EW!p0p2 H ׇ#( P) 8@#**fff   &*wb. fB5(8e$8w2A&(e N 4p8q  (#5=A#@)) 0 *R*)@#0l C# 028 0000tjpTADATADATADATADATADATAĥۇAĥĊ  000 0 @0 &*0 @ u #eB  4 *  eBe>  # #D #=0/H#@&0 # = e0   B0@e 6=#02/002# @#?@#040 6w/&!0/ l0/!/0/l0p!0 .=p0p2eB  8 $&w R*   ( w 6*D !UqqC ӥ:  Ce   "* 8 !Հ)w**w&  m  f A N  %&f 82e&( "0 0 0 80 B0 0 0 0)#0.0+1(e  %&p*w f( f)f )"(. T = . B  E 4 (.8Ae f"( UCɗ&+(e$&% &ff *w  w & W+W- Ba. W#  B0  c  c S W %ec e`s  # 3  & ˥ Z ^C 0,0, f 톇,, w      .% eB U5UU plp & NeՀ)*   f ( >5>Eu 0  w *D  ww ) ,8C * ) *w*  @ ep p  |#= EW9ť^*0 ` Ca C   X  0* = Eե^ A e@ ߇ = Ep2!)8eE`l0  0 0/ &l0 `p l064p 4  p  8 V *`)w,  FC#    D @)  6?0D)w *)  F46l0e wJ * )fff f f1    1  141612epl2l0p Mwe6p 4 d8 81416 2 6  X   f &* *> =00l&8el2 0 *w BC "& @SY&*p0p210=E%0=wb(*e "f D CB.Ew eE D` bl lrw b  B eE"s    s-  CslM=f(& e %&&eH =&e0  U   E > >E=uf p  ww *#   U@e 0  e$w^1  %,,  w *  ע"wf)Ĕ%.&%;D  5)5@DD ͥ*Ce e%w U\5@ 5wU U*U  "5@\U@5 5LU*U  ʥ*%C!.D` *weC5U5  5 5@e*=U Ee& REe  ӥ" wV ˥"   ˥" Ք     Օ  w &Ba +- ʥ# . U 0   b   `     &   `@ ` B 00truvv  & A @    8e2 ..8em,0l0!D0e6p 4.) &f  X je) .  e6p 4 08*w=p!Օ^ *) l0, *) $ )*)0,40,6 8  ***  DP5R RRR =D  `p46 f 64+=  @) 0  8wJ . 8 e*w (*Ie(  1 :&e  1-1- 111 rrrrr fe w,*1 U8UM w (B 00fep=& /e`pw46f %8 E D/D!D l0l8epl0pɥ .ɕ*wh&  &Be  wd*&fe    : $ L ( La Ta  @ `W!ZW!AW!9W!0@w  )* N fU `%  BA `6p 4p`4f&5ҕ[ "5ҕ, 5ҕ]E 5 5  e0Ґ 1 z  B 1 1 1 1 1 1 DEee $ $    f e  C C C e`w  ҥ[, &]  5 s  D w6/* VMSTPC Fast Tape Copy program VMS V4, native mode.= VMSTPC uses multiple ast driven QIO's to get the tape= drive streaming during copy operations. A sample copy of an= ANSI D tape blocked at 8192 with serveral hundred files (a= Columbia U Kermit tape) took 21 CPU seconds with the TU805 streaming about 95% of the time (done on an 11/785).8 22-MAY-1986 09:15 Brian Nelson ( BRIAN@UOFT02.BITNET ) Files: VMSTPC.C VMSTPC.COM VMSTPC.CLD File TC.CLDdefine verb tc$ image "sys$sysroot:[brian.c]vmstpc": parameter P1,label=inputarg,prompt="From",value(REQUIRED)9 parameter P2,label=outputarg,prompt="To",value(REQUIRED) qualifier ANSI qualifier APPEND qualifier BACKUP qualifier REWIND qualifier RT11 qualifier DOS11 qualifier VERIFY2 qualifier DENSITY value(REQUIRED,TYPE=$NUMBER)2 qualifier ALLOCATION value(REQUIRED,TYPE=$NUMBER)2 qualifier EXTENDSIZE value(REQUIRED,TYPE=$NUMBER)2 qualifier BLOCKSIZE value(REQUIRED,TYPE=$NUMBER)2 qualifier BUFFERS value(REQUIRED,TYPE=$NUMBER)& qualifier DIRECTORY, syntax=DIRECTORY! disallow DENSITY and NEG REWIND! disallow VERIFY and NEG REWIND disallow ANSI and DOS11 disallow BACKUP and DOS11 qualifier JUNK,label=outputargdefine syntax DIRECTORY$ image "sys$sysroot:[brian.c]vmstpc": parameter P1,label=inputarg,prompt="From",value(REQUIRED); The qualifier /DENSITY=nnnn MAY not work. I can't test it.) Check the function SET_DENS(LUN,DENSITY) Usage:. $ set command vmstpc ! Define the TC command. $ mou msa0:/for ! The drive must be mounted1 $ tc msa0: tape.con ! Copy the tape to TAPE.CON3 $ tc tape.con msa0: ! Copy TAPE.CON to a new tape9 $ tc/ansi msa0: ansi.con ! Allow NULL length ANSI files.9 $ tc/ver msa0: tape.con ! Copy from tape and verify it.7 $ tc/dir container.file ! Get directory of tape image? $ tc/buf=30/blo=512 msa0: t.t ! Optimize for a DOS format tape5 $ tc/dos msa0: t.t ! Optimize for a DOS format tapeH The /ANSI q00uzpTADATADATADATADATADATAualifier is used to allow VMSTPC to avoid stopping when itHfinds a NULL length file on an ANSI tape. A null file is simply TWO eofHmarks following the last HDR label. Since VMSTPC normally thinks thatHtwo EOF marks in a row signify the end of the tape, this qualifierHenables special checking for corresponding HDR2/EOF2 marks beforedeciding about EOT. H The /VERIFY qualifier will force VMSTPC to rewind the tape and verifyHthat was was read from (or written to) the tape is identical to theHcopy in the disk container file. The /VERIFY option is SLOW; no attempt=is made during the verification pass to optimize throughput. H The /APPEND qualifier is a bit unusual; if you do NOT speficy any otherHqualifiers it will simply use the MTAACP IO$_SKIPFILE call to find theHend of the tape. Additionally, if the tape happends to be ANSI, theHfiles appended may not show up later because the SEQUENCE fields of allHthe files will be incorrect. This is not a problem for VMSBACKUP, whichHbypassed RMS, but COPY and DIRECTORY will fail. Thus, for ANSI tapes,Heither the /ANSI or /BACKUP qualifier should be used with /APPEND. ThisHwill cause VMSTPC to look for HDR1 and EOF1 records and modify the fourCcharacter SEQUENCE field. As you can imagine, this is a bit risky. H Also note that the /BACKUP qualifier also uses the IO$_SKIPFILE call,Hwhereas the /ANSI qualifier reads records until it gets a correct END ofHTAPE; ie it keeps track of HDR2 and EOF2 counts so it can detect a NULLHlength ANSI file, which is a file composed of HDRn records, followed by=two tape marks and the EOFn records followed by a tape mark. H The /[NO]REWIND qualifier is dangerous when used with /APPEND on ANSIGtapes, as the file sequence fields (described above) will be incorrect.edits:G12-JUN-1986 12:54 BDN Add /DIR, fix status checking for disk file open and creates.F25-JUN-1986 11:52 BDN Add /BUFFERS=nnn/BLOCKSIZE=nnn to optimize when3 reading/writing tapes with small blocks, like RT3 tapes. Also, /RT11 implies /BUF=30/BLOCK=512 if% those qualifiers were not present.*07-JUL-1986 11:55 BDN /APPEND and /BACKUPG17-JUL-1986 13:50 BDN Wait for event flag after start_tape_dump to fix2 getting the VOL1 out of sequence on 8600's (ie, faster CPU'sH11-NOV-1986 11:13 BDN Fix (hopefully) event flag wait bugs that show up" on the faster cpus like 86xx's.*/#include #include #include #include #include #include #include #include #include #define then#define RMS$_EOF 0x1827a union pointer { int *intbuf ; char *charbuf ; } ;struct itmlst {# unsigned short int bufferlength ; unsigned short int item_code ; union pointer addr ; int *retlength ; } ; struct dsc { int len ; char *addr ; } ;struct devdsc { int dev_class ; int dev_type ; int dev_lun ; int dev_char ; char dev_name[NAM$C_DVI] ; char dev_spec[128] ; } in_dev, out_dev ;struct FAB parse_fab ;struct NAM parse_nam ;#define ANSI_NULLFILE 1#define EOF_MARK 0#define ANSI_HDR_SIZE 80#define DOS_HDR_SIZE 14#define BUFFER_SIZE 32768#define NBUFFERS 6#define RT_BUFFER_SIZE 512#define RT_NBUFFERS 30#define DOS_BUFFER_SIZE 512#define DOS_NBUFFERS 30 #define MAX_NBUFFERS RT_NBUFFERS#char *buffer_list[MAX_NBUFFERS+1] ;#char *altbuf_list[MAX_NBUFFERS+1] ;'short int iosblist[MAX_NBUFFERS+1][4] ;'int eventf[MAX_NBUFFERS+1], wakeup_ef ;>int eov, eof_count ,n_files_save, n_files_skipped, rec_count ; (/* Internal tasking dispatch table */struct dispatch { int state ; char *bufaddr ; char *altaddr ; int (*readproc) () ; int (*writeproc) () ; int iodone ; int iopending ; int efn ; int param ; int endoflist ; } proc_header[MAX_NBUFFERS+1] ;char vol_id[7] ;char *getmsg(), *getcpu() ;0int tape_dump() 00uvv, read_qio_ast() ,tape_write() ;/extern char *strcpy() , *strcat() , *malloc() ;#define DEF_ANSI 0#define DEF_RT11 0#define DEF_DOS11 0#define DEF_DENSITY 1600#define DEF_ALLOCATION 2000#define DEF_EXTENDSIZE 250#define DEF_VERIFY 0#define DEF_DIR 0#define DEF_BUFFERS NBUFFERS!#define DEF_BLOCKSIZE BUFFER_SIZE;#define DEF_APPEND 0 /* This default should ALWAYS be 0 */;#define DEF_BACKUP 0 /* This default should ALWAYS be 0 */;#define DEF_REWIND 1 /* This default should ALWAYS be 1 */int qual_ansi = DEF_ANSI ;int qual_rt11 = DEF_RT11 ; int qual_density = DEF_DENSITY ;&int qual_allocation = DEF_ALLOCATION ;'int qual_extendsize = DEF_EXTENDSIZE ;int qual_verify = DEF_VERIFY ;int qual_dir = DEF_DIR ;int qual_buffers = NBUFFERS ;"int qual_blocksize = BUFFER_SIZE ;int qual_dos11 = DEF_DOS11 ;int qual_append = DEF_APPEND ;int qual_backup = DEF_BACKUP ;int qual_rewind = DEF_REWIND ;#define SET_ANSI 1#define SET_RT11 2#define SET_DENSITY 4#define SET_ALLOCATION 8#define SET_EXTENDSIZE 16#define SET_VERIFY 32#define SET_DOS11 64#define SET_DIR 128#define SET_BUFFERS 256#define SET_BLOCKSIZE 512#define SET_APPEND 1024#define SET_BACKUP 2048#define SET_REWIND 4096int set_flags = 0 ;int hdr_count = 0 ; main(){% $DESCRIPTOR(inputarg, "INPUTARG") ;& $DESCRIPTOR(outputarg, "OUTPUTARG") ;$ $DESCRIPTOR(density, "DENSITY") ;' $DESCRIPTOR(allocation,"ALLOCATION") ;' $DESCRIPTOR(extendsize,"EXTENDSIZE") ;! $DESCRIPTOR(ansitape, "ANSI") ;! $DESCRIPTOR(rt11tape, "RT11") ;# $DESCRIPTOR(verify, "VERIFY") ;& $DESCRIPTOR(directory, "DIRECTORY") ;# $DESCRIPTOR(outputfile,"OUTPUT") ;$ $DESCRIPTOR(buffers, "BUFFERS") ;& $DESCRIPTOR(blocksize, "BLOCKSIZE") ;" $DESCRIPTOR(dos11tape, "DOS11") ;# $DESCRIPTOR(append, "APPEND") ;# $DESCRIPTOR(backup, "BACKUP") ;# $DESCRIPTOR(rewind, "REWIND") ; int retlength , status ,temp ; char inarg[128], outarg[128] ; getparam(inarg,&inputarg) ; getparam(outarg,&outputarg) ;* qual_ansi = setqual(&ansitape,DEF_ANSI) ;. qual_dos11= setqual(&dos11tape, DEF_DOS11 ) ;* qual_rt11 = setqual(&rt11tape,DEF_RT11) ;, qual_append = setqual(&append,DEF_APPEND) ;, qual_backup = setqual(&append,DEF_BACKUP) ;, qual_verify = setqual(&verify,DEF_VERIFY) ;, qual_dir = setqual(&directory,DEF_DIR) ;, qual_rewind = setqual(&rewind,DEF_REWIND) ;- if ( status = getqual_value(&allocation) ) { qual_allocation = status ; set_flags |= SET_ALLOCATION ; } ;- if ( status = getqual_value(&extendsize) ) { qual_extendsize = status ; set_flags |= SET_EXTENDSIZE ; } ;* if ( status = getqual_value(&density) ) { qual_density = status ; set_flags |= SET_DENSITY ; } ;* if ( status = getqual_value(&buffers) ) {0 if ( status >= 1 && status <= MAX_NBUFFERS ) { qual_buffers = status ; set_flags |= SET_BUFFERS ; }  else@ printf("/BUFFERS out of range 1 to %d, qualifier ignored\n", MAX_NBUFFERS) ; } ;, if ( status = getqual_value(&blocksize) ) {1 if ( status >= 512 && status <= BUFFER_SIZE ) { qual_blocksize = status ; set_flags |= SET_BLOCKSIZE ; }  else@ printf("/BLOCK out of range 512 to %d, qualifier ignored\n", BUFFER_SIZE) ; } ;  if ( qual_rt11 )+ if ( ( set_flags & SET_BUFFERS ) == 0 &&. ( set_flags & SET_BLOCKSIZE ) == 0 ) {< printf("RT11 buffer count raised to %d\n",RT_NBUFFERS) ; qual_buffers = RT_NBUFFERS ;% qual_blocksize = RT_BUFFER_SIZE ; } ; if ( qual_dos11 )+ if ( ( set_flags & SET_BUFFERS ) == 0 &&. ( set_flags & SET_BLOCKSIZE ) == 0 ) {> printf("DOS11 buffer count raised to %d\n",DOS_NBUFFERS) ;! qual_buffers = DOS_NBUFFERS ;& qual_blocksize = DOS_BUFFER_SIZE ; } ;  if ( init() == 0 ) exit() ; switch ( qual_density ) { case 800: case 1600: case 6250: break ; default:0 printf("Unknown density %d\n",qual_density) ; exit() 00upTADATADATADATADATADATA; break ; } ;D if ( qual_rewind == 0 && qual_append && (qual_ansi || qual_backup))B printf("Ansi HDR1 and EOF1 labels may not be accessable\n\n") ;! status = process(inarg,outarg) ; exit(status) ;} process(in,out)char *in,*out ;{ int in_chan,out_chan,status ; if ( qual_dir ) {) if ( *in == 0 ) return( SS$_INSFARG ) ;? if ( ((status=parse(&in_dev,in)) & 1) == 0 ) return(status) ; } else {6 if ( *in == 0 || *out == 0 ) return( SS$_INSFARG ) ;1 if ( ((status=parse(&in_dev,in)) & 1) == 0 ||0 ((status=parse(&out_dev,out)) & 1) == 0 ) then return(status) ; } ; eov = 0 ; eof_count = 0 ;, switch ( in_dev.dev_class ) { /* Case */ case DC$_TAPE: if ( qual_dir ) {9 printf("The /DIR qualifier is only for containers\n"); return(0) ; } ;' if ( out_dev.dev_class == DC$_TAPE &&6 strcmp(out_dev.dev_name,in_dev.dev_name) != 0 )" then status = tape_to_tape() ; else) if ( out_dev.dev_class == DC$_DISK )% then status = tape_to_disk() ;# else status = SS$_IVDEVNAM ; break ; case DC$_DISK:> if ( qual_dir ) then return(container_dir(in_dev.dev_spec));& if ( out_dev.dev_class == DC$_TAPE )" then status = disk_to_tape() ; else status = SS$_IVDEVNAM ; break ; default: status = SS$_IVDEVNAM ; break ; } ; /* end Case */ sys$dassgn( in_dev.dev_lun ) ; sys$dassgn(out_dev.dev_lun ) ; return(status) ;} container_dir(f) char *f ;{3 int block_count = 0,size,status, total_block = 0 ;$ char *cp, dosname[20] , *r50toa() ;% int found_dos = 0 , found_ansi = 0 ;@ if ( (( status = open_disk(f) ) & 1 ) == 0 ) return( status ) ;> if ( ( cp = malloc( qual_blocksize ) ) == 0 ) return( 0 ) ;G if ( (( status = read_disk(cp,&size) ) & 1 ) == 0 ) return( status ) ; F if ( (found_dos = qual_dos11) == 0 && (found_ansi = qual_ansi) == 0 ) switch( size ) { case ANSI_HDR_SIZE:' if ( strncmp(cp,"VOL1",4) == 0 ) {9 printf("Container set appears to be ANSI labeled\n") ; found_ansi++ ; } ; break ; case DOS_HDR_SIZE:< printf("Container set appears to be DOS-11 labeled\n"); found_dos++ ; break ; default:= printf("Container does not seem to be a know format\n"); return(0) ; break ; } ; printf("\n") ; block_count = -1 ; while ( status & 1 ) { switch ( size ) { case ANSI_HDR_SIZE: eof_count = 0 ;3 if ( found_ansi && strncmp(cp,"HDR1",4) == 0 ) { if ( block_count != -1 )( printf(" %d\n",block_count); block_count = 0 ; *(cp+21) = 0 ; printf("%s ",cp+4) ; } ; break ; case DOS_HDR_SIZE: eof_count = 0 ; if ( block_count != -1 )& printf(" %d\n",block_count); r50toa(&dosname[0],cp) ; r50toa(&dosname[3],cp+2) ; dosname[6] = '.' ; r50toa(&dosname[7],cp+4) ; printf("%s ",dosname) ; block_count = 0 ; break ; case EOF_MARK: if ( ++eof_count > 1 ) {& printf(" %d\n",block_count);" total_block += block_count ; } ; break ; case ANSI_NULLFILE: eof_count = 0 ; break ; default: eof_count = 0 ; block_count++ ; break ; } ; status = read_disk(cp,&size) ; } ; close_disk() ;> if ( status == RMS$_EOF ) return(1) ; else return( status ) ;} /* VERIFY( tape_lun )= VERIFY makes absolutly NO attempt to optimize transfer= rates, as it will tend to be cpu bound anyway comparing= data, as well as infrequently used. It is called with the= tape channel number passed; all other needed information is= global already. It can be called from Tape_to_Disk or Disk_to_Tape. */verify(tape_lun,disk_file) int tape_lun;char *disk_file ;{ char *cp, *tp ; short int iosb[4] ; int i,size,status,waiting ;$ if ( qual_verify == 0 ) return(1) ; else {, printf("Starting verif00uvvication pass\n\n") ; close_disk() ;1 if (((status=open_disk(disk_file)) & 1) == 0) return(status);7 sys$qiow(0,tape_lun,IO$_REWIND,0,0,0,0,0,0,0,0,0) ; cp = malloc(qual_blocksize) ; tp = malloc(qual_blocksize) ; status = read_disk(cp,&size) ; while ( status & 1 ) {8 status = sys$qiow(0,tape_lun,IO$_READLBLK,&iosb,0,0,+ tp,qual_blocksize,0,0,0,0) ;& if ( ( status & 1 ) == 0 ) break ; switch (iosb[0]) { case SS$_ENDOFFILE: if ( size > ANSI_NULLFILE ), printf("End of file mark mismatch\n"); break ; case SS$_NORMAL: if ( size != iosb[1] ), printf("Tape block size mismatch\n") ;* else if ( strncmp(cp,tp,size) != 0 )( printf("Data compare error\n") ; break ; default: printmsg(iosb[0]) ; break ; } ; 4 if ( status & 1 ) status = read_disk(cp,&size) ; } ;( if ( status == RMS$_EOF ) status = 1 ; } ;@ sys$qiow(0,tape_lun,IO$_REWIND+IO$M_NOWAIT,0,0,0,0,0,0,0,0,0) ; close_disk() ; return(status) ;}tape_to_tape(){H printf("Tape to Tape called %s %s\n",in_dev.dev_name,out_dev.dev_name); inistats() ; return(1) ;} /*& This is the real work of Tape_to_DiskH It functions by setting up a dispatch table for processing to be doneHAFTER I/O completetion. Ie, the AST completion routine simplyH'schedules' a 'task' to be run which will process the result of theHtape read. Thus the copy operation is done basically done via internalHmultitasking. When the ast completion routine is entered it simplyHtakes the ast parameter and uses that to index into the process list toHmake a process eligible for execution. It then sets an event flag toHget the scheduler to wake up and scan the process table for someoneHrunnable. In the interests of generality, the address of the process toHcall is placed into the process table by INIT(), though in reality weHalways call the same routine and pass it the process number, which thus=specifies the buffer, IOSB, and so on that it should access. I*/tape_to_disk(){i short int iosb[4] ;" int current,i,scan_start,status ;G if (((status=create_disk(out_dev.dev_spec)) & 1) == 0) return(status);U: sys$qiow(0,in_dev.dev_lun,IO$_REWIND,0,0,0,0,0,0,0,0,0) ; inistats() ; 8 printf("Tape dump starting to %s\n",out_dev.dev_spec) ; scan_start = 0 ;F rec_count = 0 ; eof_count = 0 ; eov = 0 ; sys$clref( wakeup_ef ) ;C@ if ( ((status=start_tape_dump()) & 1) == 0 ) return( status ) ; sys$waitfr( wakeup_ef ) ;# while ( !eov && ( status & 1 ) ) {,& for ( i=0; i < qual_buffers; i++ ) {1 current = ( scan_start + i ) % qual_buffers ;i' if ( proc_header[current].state ) {r" if ( scan_start != current )= printf("Completion routines out of sequence %d %d\n",q current,scan_start) ;; status = (*proc_header[current].readproc) (current) ;N. scan_start = ++current % qual_buffers ; break ;a } ;F } ; ! if ( !eov && ( status & 1 ) ) {i sys$clref( wakeup_ef) ;O sys$setast(1) ;Y sys$waitfr(wakeup_ef) ;V } ;n } ; printstats(rec_count) ;. if ( (status & 1 ) == 0 ) printmsg(status) ; E if ( status & 1 ) status = verify(in_dev.dev_lun,out_dev.dev_spec) ;bF sys$qiow(0,in_dev.dev_lun,IO$_REWIND+IO$M_NOWAIT,0,0,0,0,0,0,0,0,0) ; close_disk() ;a return(1) ;}n Ytape_dump(procnum){ int size , status ; char null_buffer[] = "" ; char *cp ;s! proc_header[procnum].state = 0 ;a size = iosblist[procnum][1] ;" switch ( iosblist[procnum][0] ) { case SS$_ABORT: case SS$_CANCEL:e status = 1 ; break ;o case SS$_ENDOFFILE: status = 1 ;2 if (hdr_count == 0) eov = ( ++eof_count >= 2 ) ; if ( !eov )oF status=sys$qio(eventf[procnum],in_dev.dev_lun,IO$_READLBLK,7 &iosblist[procnum],&read_qio_ast,procnum+1, 1 proc_header[procnum].bufaddr,qual_blocksize,o 0,0,0,0) ;p1 size = ( hdr_c00upTADATADATADATADATADATAount ) ? ANSI_NULLFILE:EOF_MARK ;t: if ( status & 1 ) status=write_disk(&null_buffer,size) ; break ;A case SS$_ENDOFTAPE: status = 1 ; eov = 1 ;H break ;i case SS$_NORMAL:h eof_count = 0 ;F rec_count++ ;o% cp = proc_header[procnum].bufaddr ;a? proc_header[procnum].bufaddr = proc_header[procnum].altaddr ; % proc_header[procnum].altaddr = cp ;F status = sys$qio(eventf[procnum],in_dev.dev_lun,IO$_READLBLK,7 &iosblist[procnum],&read_qio_ast,procnum+1,d1 proc_header[procnum].bufaddr,qual_blocksize,  0,0,0,0) ;n2 if ( status & 1 ) status = write_disk(cp,size) ;: if ( qual_rt11 || (qual_ansi && size == ANSI_HDR_SIZE )) then {& if ( strncmp(cp,"HDR2",4) == 0 ) then hdr_count++ ;> else if ( strncmp(cp,"EOF2",4) == 0 && hdr_count > 0 ) then hdr_count-- ;p8 else if ( strncmp(cp,"EOV",3) == 0 ) eov = 1 ; } ;b break ;S default:o! status = iosblist[procnum][0] ;t eov = 1 ; break ;o } ;@ if ( eov ) { sys$setast(0) ; sys$cancel( in_dev.dev_lun ) ; } ; return( status ) ;h}  Sstart_tape_dump()r{o int nqio , status ;0 for ( nqio = 0; nqio < qual_buffers; nqio++ ) {< status = sys$qio(eventf[nqio],in_dev.dev_lun,IO$_READLBLK,1 &iosblist[nqio],&read_qio_ast,nqio+1,t. proc_header[nqio].bufaddr,qual_blocksize, 0,0,0,0) ;a$ if ( ( status & 1 ) == 0 ) break ; } ; return( status ) ;f}A/*H AST Completion, used for both tape reads and tape writes. Enter withHthe QIO number (+1) that completed. We disable AST delivery, mark theHtask table STATE entry to flag that we have something to process, andHthen set the event flag to wake up the copy routine. The copy routine=then clears the event flag and enables further ast delivery. */read_qio_ast(param)d int param ;a{  sys$setast(0) ;% proc_header[param-1].iopending = 0 ;8! proc_header[param-1].state = 1 ;S sys$setef(wakeup_ef) ;}r idisk_to_tape(){l char *cp, *tp ; short int iosb[4] ;) int i,size,save_skipped,status,waiting ;iD if (((status=open_disk(in_dev.dev_spec)) & 1) == 0) return(status);' if ( qual_append == 0 || qual_rewind )t= sys$qiow(0,out_dev.dev_lun,IO$_REWIND,0,0,0,0,0,0,0,0,0) ; F if (set_flags & SET_DENSITY) set_dens(out_dev.dev_lun,qual_density) ; n_files_skipped = 0 ;" if ( qual_append && qual_rewind )B if ( (n_files_skipped = position_eot(out_dev.dev_lun)) == 0 ) {7 printf("?Failure to position tape to logical EOT\n");s return(0) ;< } ;! save_skipped = n_files_skipped ;g rec_count = 0 ; eof_count = 0 ; eov = 0 ;8 printf("Tape dump starting to %s\n",out_dev.dev_spec) ; inistats() ;A if ( ((status=start_tape_write()) & 1) == 0 ) return( status ) ;s# while ( !eov && ( status & 1 ) ) {d$ for ( i=0; i < qual_buffers; i++ ) if ( proc_header[i].state )*0 status = (*proc_header[i].writeproc) (i) ;! if ( !eov && ( status & 1 ) ) {  sys$waitfr(wakeup_ef) ;d sys$clref( wakeup_ef) ;d sys$setast(1) ;n } ;u } ; while (1) { waiting = 0 ;u$ for ( i=0; i < qual_buffers; i++ )3 waiting = waiting | proc_header[i].iopending ;0 if ( waiting == 0 ) break ;d sys$clref( wakeup_ef) ;d sys$setast(1) ;d sys$waitfr(wakeup_ef) ;d } ; if ( save_skipped ) _E printf("%d HDR1 and EOF1 label record SEQUENCE fields modified\n",B" n_files_skipped-save_skipped) ; printstats(rec_count) ;- if ( (status & 1 ) == 0 ) printmsg(status) ;N; sys$qio(0,out_dev.dev_lun,IO$_WRITEOF,0,0,0,0,0,0,0,0,0) ; if ( qual_rewind == 0 )D sys$qiow(0,out_dev.dev_lun,IO$_SKIPFILE,&iosb,0,0,-2,0,0,0,0,0) ; else {bG if ( status & 1 ) status = verify(out_dev.dev_lun,in_dev.dev_spec) ;aI sys$qiow(0,out_dev.dev_lun,IO$_REWIND+IO$M_NOWAIT,0,0,0,0,0,0,0,0,0) ;d } ; close_disk() ;; return(status) ;i}p #define HDR1_SEQ 32-1tape_write(procnum)F int procnum ;h{v int i, param , size , status ;p int eof1, hdr1 ;m c00uvvhar *cp ,seq[5] ;,! proc_header[procnum].state = 0 ;  if ( eov ) return(1) ;C if ( (status=iosblist[procnum][0]) != SS$_NORMAL ) return(status);f$ cp = proc_header[procnum].bufaddr ; status = read_disk(cp,&size) ;I* if ( rec_count == 0 && qual_append ) then% if ( ansi_check(cp,"VOL1",size) ) n# status = read_disk(cp,&size) ;  if ( status & 1 ) switch ( size ) { case EOF_MARK:A eov = ( ++eof_count >= 2 ) ;? status = sys$qio(eventf[procnum],out_dev.dev_lun,IO$_WRITEOF,Y& &iosblist[procnum],&read_qio_ast, procnum+1,0,0,0,0,0,0) ; break ;d case ANSI_NULLFILE: eof_count = 0 ; ? status = sys$qio(eventf[procnum],out_dev.dev_lun,IO$_WRITEOF,u& &iosblist[procnum],&read_qio_ast, procnum+1,0,0,0,0,0,0) ;s break ; default:k eof1 = 0 ; hdr1 = 0 ; eof_count = 0 ;1 rec_count++ ;p$ if ( qual_append && qual_rewind ) / if ( (hdr1 = ansi_check(cp,"HDR1",size)) ||0 (eof1 = ansi_check(cp,"EOF1",size)) ) {. sprintf(seq,"%04d",n_files_skipped+1) ;4 for (i=0; i<4; i++) *(cp+HDR1_SEQ+i)=seq[i] ;& if ( eof1 ) n_files_skipped++ ; } ;_ 5A status = sys$qio(eventf[procnum],out_dev.dev_lun,IO$_WRITELBLK,E& &iosblist[procnum],&read_qio_ast,, procnum+1,proc_header[procnum].bufaddr, size,0,0,0,0) ; break ;I } ;t7 if ( status & 1 ) proc_header[procnum].iopending = 1 ;; return( status ) ;y} start_tape_write(){l int i , status ;" sys$setast(0) ;' for ( i = 0; i < qual_buffers; i++ ) {s iosblist[i][0] = SS$_NORMAL ;r status = tape_write(i) ;+ if ( ( status & 1 ) == 0 || eov ) break ;d } ; sys$setast(1) ; return( status ) ;l}O "ansi_check(cp,s,n) char *cp,*s ;Sint n ;E{IE if ( qual_rt11 || ((qual_ansi || qual_backup) && n==ANSI_HDR_SIZE) )E+ return( strncmp(cp,s,strlen(s)) == 0 ) ;R else return(0) ; }#define SKIPCOUNT 32766Nposition_eot(lun)g int lun ; {m short int iosb[4] ; int eov, i, n_files, status ; char *cp ;t eov = 0 ; n_files = 0 ; hdr_count = 0 ; eof_count = 0 ; cp = malloc(qual_blocksize) ; t vol_id[0] = 0 ;" if ( qual_ansi || qual_backup ) {= sys$qiow(0,lun,IO$_READLBLK,&iosb,0,0,cp,qual_blocksize,N 0,0,0,0) ;=? if ( iosb[0] == SS$_NORMAL && iosb[1] == ANSI_HDR_SIZE ) {F- for (i=0; i<6; i++) vol_id[i] = *(cp+4+i) ;E vol_id[6] = 0 ;i } ; } ;* if ( qual_ansi == 0 && qual_rt11 == 0 ) { while ( 1 ) {> sys$qiow(0,lun,IO$_SKIPFILE,&iosb,0,0,SKIPCOUNT,0,0,0,0,0) ; switch ( iosb[0] ) { case SS$_NORMAL: case SS$_ENDOFFILE:z n_files += iosb[1] ; break ; case SS$_ENDOFVOLUME:t n_files += iosb[1] ;t) if ( qual_backup ) return(n_files/3) ;_ else return(n_files) ; break ; default: return(0) ; break ; } ;= } ; } else {E while ( !eov ) {s : sys$qiow(0,lun,IO$_READLBLK,&iosb,0,0,cp,qual_blocksize, 0,0,0,0) ; switch ( iosb[0] ) { case SS$_ENDOFFILE:X if (hdr_count == 0) {# eov = ( ++eof_count >= 2 ) ;) n_files++ ; } ; break ; case SS$_ENDOFTAPE:o eov = 1 ; break ; case SS$_NORMAL: eof_count = 0 ;5 if ( ansi_check(cp,"HDR2",iosb[1]) ) hdr_count++ ;r else 9 if ( ansi_check(cp,"EOF2",iosb[1]) ) hdr_count-- ;e9 else if (ansi_check(cp,"EOV",iosb[1])) eov = 1 ;_ break ; 0 default: return(0) ; break ; } ;n } ; } ;6 sys$qiow(0,lun,IO$_SKIPFILE,&iosb,0,0,-1,0,0,0,0,0) ; return(n_files-1) ;}  /*? Someone else will have to test this. My TU80 is 1600 only, and ? my CDC 92185's density is set via the drive control panel. Theu code should work.*//*< Since SYS$LIBRARY:MTDEF.H does not exist, the following are taken from STARLET.MLB.*/#define MT$M_DENSITY 7936)#define MT$K_NRZI_800 3i#define MT$K_PE_1600 4#define MT$K_GCR_6250 5#define MT$S_DENSITY 5#define MT$V_DENSITY 8set_dens(lun,density) int lu00upTADATADATADATADATADATAn ;{b5 struct char_buffer_type { unsigned short int dummy ;& unsigned short int size ;p! unsigned long int tchars ;y } tape_chars, sense_chars ;u short int iosb[4] ;' int dens,field_pos,field_size,status ;F status = sys$qiow(0,lun,IO$_SENSEMODE,&sense_chars,0,0,0,0,0,0,0,0) ; switch (density) {f *# case 800: dens = MT$K_NRZI_800 ; break ;a" case 1600: dens = MT$K_PE_1600 ; break ;# case 6250: dens = MT$K_GCR_6250 ;= break ;$ default: return(0) ; break ;_ } ; field_pos = MT$V_DENSITY ;s field_size = MT$S_DENSITY ;< lib$insv(&dens,&field_pos,&field_size,&tape_chars.tchars) ; tape_chars.dummy = 0 ; $ tape_chars.size = qual_blocksize ;C status = sys$qiow(0,lun,IO$_SETMODE,0,0,0,&tape_chars,0,0,0,0,0) ;e= printf("Status from IO$_SETMODE for density: %x\n",status) ;t return( status ) ;A}& parse(dev,s,def_string)estruct devdsc *dev ; char *s ;n{a char *cp,*dp ;e* int i,status,temp1,temp2,temp3,tempchan ; struct dsc devname ;t struct itmlst dvilist[4] ; int devtype, devclass ; parse_fab = cc$rms_fab ;  parse_nam = cc$rms_nam ;a dp = dev->dev_spec ;t# parse_fab.fab$l_nam = &parse_nam ;o parse_fab.fab$l_fna = s ;" parse_fab.fab$b_fns = strlen(s) ; parse_nam.nam$l_esa = dp ;E parse_nam.nam$b_ess = 127 ;( parse_nam.nam$b_nop = NAM$M_NOCONCEAL ;D if ( ((status=sys$parse(&parse_fab)) & 1) == 0 ) return( status ) ;* *(dp + (parse_nam.nam$b_esl&0377) ) = 0 ; cp = &parse_nam.nam$t_dvi ; devname.len = *cp++ ; devname.addr = cp ;? for (dp=dev->dev_name,i=0; i if ( ((status=sys$assign(&devname,&tempchan,0,0)) & 1) == 0 ) then return( status ) ; dev->dev_lun = tempchan ; dvilist[0].bufferlength = 4 ;' dvilist[0].item_code = DVI$_DEVCLASS ;e+ dvilist[0].addr.intbuf = &dev->dev_class ;u dvilist[0].retlength = &temp1 ; dvilist[1].bufferlength = 4 ;& dvilist[1].item_code = DVI$_DEVTYPE ;* dvilist[1].addr.intbuf = &dev->dev_type ; dvilist[1].retlength = &temp2 ; dvilist[2].bufferlength = 4 ;& dvilist[2].item_code = DVI$_DEVCHAR ;* dvilist[2].addr.intbuf = &dev->dev_char ; dvilist[2].retlength = &temp3 ; dvilist[3].bufferlength = 0 ; dvilist[3].item_code = 0 ;6 status = sys$getdviw(0,tempchan,0,&dvilist,0,0,0,0) ;4 if ( ( status & 1 ) && dev->dev_class == DC$_TAPE ) theni+ if ((dev->dev_char & DEV$M_MNT) == 0 )(! then status = SS$_DEVNOTMOUNT ; - else if ((dev->dev_char & DEV$M_FOR) == 0 )= then { status = 0 ;t5 printf("%Tape device must be mounted foreign\n") ;  } ; return( status ) ;"}o t printmsg(n)_int n ; { printf("%s\n",getmsg(n)) ;r}fchar *getmsg(n);int n ;k{ struct dsc msgd ; int mlen ;c char junk[4] ; mlen = 0 ;= msgd.len = 256 ;f msgd.addr = malloc(256) ;$ sys$getmsg(n,&mlen,&msgd,0,&junk) ;! *(msgd.addr + (mlen&0377)) = 0 ;6 return( msgd.addr ) ;}ainit(){p int i ; lib$get_ef( &wakeup_ef ) ;t! for (i=0; ilen &= 0377 ;i strncpy(s,arg->addr,arg->len) ; *(s+arg->len) = 0 ;}" printsta00uvvts(n)oint n;{) char s[80] ;i int code = 2 ;(. lib$show_timer(&handler,&code,&cpuformat,s) ;- printf("Records processed: %d %s\n",n,s) ;D}0 accstats(){ lib$show_timer(&handler) ;  lib$init_timer(&handler) ;i} t/* CLI interfacing */;getparam(s,arg)schar *s;struct dsc$descriptor_s *arg ;{I struct dsc out ;, int retlength ; out.len = 128 ; out.addr = s ;( *s = 0 ; ! if ( (cli$present( arg ) & 1) &&)2 (cli$get_value( arg,&out,&retlength ) & 1 )) then { *(s+(retlength&0377)) = 0 ;m return(1) ;  }  else return(0) ; L}setqual(arg,def)struct dsc$descriptor_s *arg ; int def ;h{) int status ;i status = cli$present(arg) ;8 if ( status == CLI$_PRESENT || status == CLI$_LOCPRES ) return(1) ; elseg; if ( status == CLI$_NEGATED || status == CLI$_LOCNEG )  return(0) ; else return(def) ;f}agetqual_value(arg)struct dsc$descriptor_s *arg ; e{n char valbuf[128] ;,# struct dsc out = { 128,&valbuf } ; int retlength,val ; *valbuf = 0 ;! if ( (cli$present( arg ) & 1) &&l2 (cli$get_value( arg,&out,&retlength ) & 1 )) then {" *(valbuf+(retlength&0377)) = 0 ;0 return( (sscanf(valbuf,"%d",&val)) ? val:0 ) ; }  else return(0) ; e}r e/* Disk Input and Output */ /* The disk image file*/struct FAB disk_image_fab ; struct RAB disk_image_rab ; int inisiz = 2000 ;oint deqsiz = 256 ;6char default_outputname[] = "SYS$LOGIN:VAX_TPC.DATA" ;init_fab(fname)h char *fname ;p{i disk_image_fab = cc$rms_fab ;G disk_image_fab.fab$l_alq = (qual_allocation) ?qual_allocation:inisiz ;sG disk_image_fab.fab$w_deq = (qual_extendsize) ?qual_extendsize:deqsiz ;g1 disk_image_fab.fab$l_dna = &default_outputname ;e8 disk_image_fab.fab$b_dns = strlen(default_outputname) ;I disk_image_fab.fab$l_fna = ( disk_image_fab.fab$b_fns = strlen(fname) ) e ? fname:0 ;, disk_image_fab.fab$w_mrs = qual_blocksize ;' disk_image_fab.fab$b_org = FAB$C_SEQ ;h' disk_image_fab.fab$b_rfm = FAB$C_VAR ;o' disk_image_fab.fab$b_shr = FAB$M_NIL ;a disk_image_rab = cc$rms_rab ;- disk_image_rab.rab$l_fab = &disk_image_fab ;i disk_image_rab.rab$b_mbc = 32 ; disk_image_rab.rab$b_mbf = 8 ;) return(1) ;}ncreate_disk(s) char *s ;,{, int sts ; init_fab(s) ;E if ( ( (sts = sys$create(&disk_image_fab)) & 1 ) == 0 ) return(sts); ) return( sys$connect(&disk_image_rab) ) ;e}= open_disk(s) char *s ; {C int sts ; init_fab(s) ;C if ( ( (sts = sys$open(&disk_image_fab)) & 1 ) == 0 ) return(sts);) return( sys$connect(&disk_image_rab) ) ; }=read_disk(buffer,size)char *buffer ; int *size ;+{) int sts ;$ disk_image_rab.rab$l_ubf = buffer ;, disk_image_rab.rab$w_usz = qual_blocksize ;# sts = sys$get( &disk_image_rab ) ;u5 *size = ( sts & 1 ) ? disk_image_rab.rab$w_rsz : 0 ;; return( sts ) ;} write_disk(buffer,size)cchar *buffer ; int size ;{ int sts ;$ disk_image_rab.rab$l_rbf = buffer ;" disk_image_rab.rab$w_rsz = size ;' return( sys$put( &disk_image_rab ) ) ; }y close_disk(){y int sts ;5 if ( (sts = sys$disconnect( &disk_image_rab )) & 1 )i, then sts = sys$close( &disk_image_fab ) ; return( sts ) ;}a char *r50toa(dst,r50val) char *dst ;unsigned short int *r50val ;{W char *cp ;I= char rlist[] = " ABCDEFGHIJKLMNOPQRSTUVWXYZ$.?0123456789 " ;Y unsigned short int val ; val = *r50val ; cp = dst ;u1 *cp++ = rlist[ val/03100 ] ; val = val % 03100 ;p *cp++ = rlist[ val/050 ] ;  *cp++ = rlist[ val % 050 ] ;c *cp++ = 0 ; return(dst) ;} e SS$_ABORT: case SS$_CANCEL:e status = 1 ; break ;o case SS$_ENDOFFILE: status = 1 ;2 if (hdr_count == 0) eov = ( ++eof_count >= 2 ) ; if ( !eov )oF status=sys$qio(eventf[procnum],in_dev.dev_lun,IO$_READLBLK,7 &iosblist[procnum],&read_qio_ast,procnum+1, 1 proc_header[procnum].bufaddr,qual_blocksize,o 0,0,0,0) ;p1 size = ( hdr_c00vwpTADATADATADATADATADATAdefine verb tc$ image "sys$sysroot:[brian.c]vmstpc": parameter P1,label=inputarg,prompt="From",value(REQUIRED)9 parameter P2,label=outputarg,prompt="To",value(REQUIRED) qualifier ANSI qualifier APPEND qualifier BACKUP qualifier REWIND qualifier RT11 qualifier DOS11 qualifier VERIFY2 qualifier DENSITY value(REQUIRED,TYPE=$NUMBER)2 qualifier ALLOCATION value(REQUIRED,TYPE=$NUMBER)2 qualifier EXTENDSIZE value(REQUIRED,TYPE=$NUMBER)2 qualifier BLOCKSIZE value(REQUIRED,TYPE=$NUMBER)2 qualifier BUFFERS value(REQUIRED,TYPE=$NUMBER)& qualifier DIRECTORY, syntax=DIRECTORY! disallow DENSITY and NEG REWIND! disallow VERIFY and NEG REWIND disallow ANSI and DOS11 disallow BACKUP and DOS11 qualifier JUNK,label=outputargdefine syntax DIRECTORY$ image "sys$sysroot:[brian.c]vmstpc": parameter P1,label=inputarg,prompt="From",value(REQUIRED)0DX0205(~}h+$W VMSTPCV1.0 ~}04-00BTUU V ??!d FORRTL_001v!  LIBRTL_001Y       N .*;*.*;*/sys$disk...*;*.*;*DIR.DIRP`D ,,LX $INPUTARGOUTPUTARGDENSITYALLOCATIONEXTENDSIZEANSIRT11VERIFYDIRECTORYOUTPUTBUFFERSBLOCKSIZEDOS11APPENDBACKUPREWIND/BUFFERS out of range 1 to %d, qualifier ignored /BLOCK out of range 512 to %d, qualifier ignored RT11 buffer count raised to %d DOS11 buffer count raised to %d Unknown density %d Ansi HDR1 and EOF1 labels may not be accessable The /DIR qualifier is only for containers VOL1Container set appears to be ANSI labeled Container set appears to be DOS-11 labeled Container does not seem to be a know format HDR1 %d %s %d %s %d Starting verification pass End of file mark mismatch Tape block size mismatch Data compare error Tape to Tape called %s %s Tape dump starting to %s Completion routines out of sequence %d %d HDR2EOF2EOV?Failure to position tape to logical EOT Tape dump starting to %s %d HDR1 and EOF1 label record SEQUENCE fields modified VOL1HDR1EOF1%04dHDR2EOF2EOVStatus from IO$_SETMODE for density: %x %Tape device must be mounted foreign %s Allocation failure on TAPE buffers from MALLOC() Records processed: %d %s %d ABCDEFGHIJKLMNOPQRSTUVWXYZ$.?0123456789 DCLMCRSHELLerror 0not ownerno such file or directoryno such processinterrupted system calli/o errorno such device or addressarg list too longexec format errorbad file numberno childrenno more processesnot enough corepermission deniedbad addressblock device requiredmount device busyfile existscross-device linkno such devicenot a directoryis a di00wvvrectoryinvalid argumentfile table overflowtoo many open filesnot a typewritertext file busyfile too largeno space left on deviceillegal seekread-only file systemtoo many linksbroken pipemath argumentresult too largeI/O stream emptySYS$LOGINSYS$COMMANDSYS$DISKPATH=HOME=TERM=USER=PATHHOMETERMUSERft1-132ft1-80ft1ft2-132ft2-80ft2ft3-132ft3-80ft3ft4-132ft4-80ft4ft5-132ft5-80ft5ft6-132ft6-80ft6ft7-132ft7-80ft7ft8-132ft8-80ft8la12-132la12-80la12la120-132la120-80la120la24-132la24-80la24la34-132la34-80la34la36-132la36-80la36la38-132la38-80la38unknown-132unknown-80unknownvk100-132vk100-80vk100vt05-132vt05-80vt05vt100-132vt100-80vt100vt101-132vt101-80vt101vt102-132vt102-80vt102vt105-132vt105-80vt105vt125-132vt125-80vt125vt131-132vt131-80vt131vt132-132vt132-80vt132vt173-132vt173-80vt173vt52-132vt52-80vt52vt55-132vt55-80vt55vt200-132vt200-80vt200undefined@SHELL$FILE_  0@       $ 5 J̄*55Q$5d,5 |Ą45<5DD5L5 T5  \5 D  Ԅ  d5 $  l5 t5|5l@AHr555  5(5555Ā5̀5Ԁ5܀5PD55\555 !!!!!̂!! 5!""Ă"5"5#SYS$LOGIN:VAX_TPC.DATA00wpTADATADATADATADATADATA@\TX  & 8 H T f v   - A R a p #||^&RSTUQVNT|~b̀ ͇̈́͆ޢ ͈͎͌͏ޢ͐ ͔͖͗ޢ͘ ͜͟͞ޢ&ͤͦͧ͠ޢ1ͨͬͮͯޢ6ͰʹͶͷޢ;͸ ͼ;ͿޢBޢLޢS ޢ[ޢeޢkޢrޢy|!̈́|ͤNP:Pͬ&PPPpʹPͼPXPP͔P Pc͜P Pc͌PPdcP P Pfȏc €i4yP.PP Peȏc<~²,4c c4f<ejc c3f<ePd *d@ djd%3# 9p3| PaP^VW\UTg#ЬP`<PPdyPQQ@QPЬP`ЬSc<PPdNPRRSe=PRRRPdQdsgk2PeSHP PRDe PR3 NPTˏTRTPgVRRRe#(RP@c\lR@\l\lPTRRegTfxfgTPReQRQ(R\L\lPRRQPffx[[~cx(T T|~|~|~|~(ݨ |~|~~|~߭%ݨ -T ݨPT|~|~|~|~~ݨ  TP^UGWP[ZV(SCgRbPxP2@RRRPCP`X߭X4 PYk+#ݭśXP߭X PYY1GѭRխ1jRjRR|~|~|~ЬRR~xRP?@)(ݦB PY1j|~|~|~ЬRR~zxRP?@(ݦB PY1Tjkf^ݭŠXPݭťXPT5~Ū߭'RXSQRSP`RT^|~|~ݭЬR(RP@P`R~xRP?@7 ݦB PYY (P@RbYP|^>VTSRf"xR\LcRPUU dRRfUP^/Ѭ P%ݬ<;Pݬݬ-=QPQQPP ^SWY~ZK[VXTgfj7PUkGi?|~|~jU|~߭!ݬ PRkQUPRP`Rg_|~|~<~|~߭%ݬ 2PP5Pp* P  2PPT2PPTiTPTPPX1|~|~jU|~߭!ݬ 2QQ1LQp1QPPp0o?ghfPfPPXTVXQf2~ïU#Pg62~ôU Pg2~ùUPXPX13|~|~~|~߭%ݬ TP ^S|~|~|~|~'ݬ Ѭ ,Ѭ@ Ѭj P߭߭߭(r'|~|~|~#ݬ PRRý"RP^JZWDV(Pf(`gЬY Xg(Ь,ݬ,8P4X  f0P RʏRXRbRRSRUcUȞXTխ TTh|~߭PPЬSЭ̰cޭ԰ذڞޭ枣 ޭԭ|~|~߭ݭPTT"c |T Ti!TP^RݬP B!^ԭ<<~3P߭߭ݬˏPP`ЭP^VAW>YKSXU2ToRi1g^3PBdgO3PBe P(R\LcP`LPBd`LPBe`L P]`LPg`LP`LP`LPR`L PR`L$\lBh^oRRi1e(i\L$RbP^}Vo^ЬRʏbbݢݬ5bRb^vR߭߭+o߭ݬB^nn^ЬRRbݬUP%߭00wpTADATADATADATADATADATAݬVPˏPPRbPP^ݬUP P1PP P0PЬP l^SllRbݬLUPB߭ݬ|UP/ˏPPRb߭^l ЭQPQPPP^XV(PfRSRRTSTTRSRRUSUUQ0I3P5ЬSS3P4PRSWWW,36 (Dhf< 76P^ݬ1PQQQP0^ݬPQQQP^TЬ$ dPRR"SSόP[~Zj7P[j@ݬ ݬݬϵЏ5P1ѭ  ЏL5P1~>nYЫX^YP0^SYR0Di }P~^S ~^Tcd~^ZkЬTЭU~~5TVPFTCU/P TU^TUVV^(Ud(όnnV~^Tώ ~^R|~߮~~^V|~fb<~PxяBnS1 H~^SXϥ~~~~ZS~T AhPU! ~^TdUPPЫ PЏ\5P10d^^U nqR^S0P1ZS[k[1WnSZGV5*4R.UeUTVDRTU[TW R* %HZP%ƅPP(P&c^SR^S0hP1W1tIP76РР^[nkZZR^S0#PCZn[kkךZЬ [0@PZЬ[03P nR^S0"PP$+ШPRR^nSЬT|~|~Rc|~<1~< ~ ʏ< ~T |~ݏݏݏ?`PPPը ߨ]P[P0`PР P] ^]PP`ݠݠP'ЎPРPlЏL5P1[k9kZ Z[l լЪݪjkZ'ЎPЏT5P1P|&PPct~^Qa?a: VPPVVZ VnVZVZZn0tnZɔkЬPЏL5P0`[甼PЬWP0 g0 Pg֧PЬWP0j 0kPP֧g,P߬ l~n ߬l~n0 ЬUЬRSVSrVSw Sa1b+VP0 HЭZYЭ\01HSwhP#Sa<ɼPPPY0h,-)*Z a ~Zt[PЏ5P0PЬWP0O )^^[߬ ݬ[,P PZ0ЎPPЬWP0 7gV0-gV,֧g   ,02ЬPѧ $!Ч $(çPP( P֧$P(ЬPPЬWP0 4Ь[ЏZ:Zk Џ5P04[QZ0 ЏL5P0PЬWP0U $Ь[Ь ~լЬZ0 nÎ PPЬ WP0 P ~6Լ lЬWP0 Pѧ $(VV ЏzP0P߬ ݬݬ.ЬWP0 }~ ~ϰPPЬWP0  ~ ~ώЬWP0y -Ь[Ь ~ЬZ00enЬ PЏL5P0PЬWP0; iPP0W1F0j&RDžSlլ 3 P'R=ӹRйS(SbcᄍPPיּЬP{WP0 LЬ[ЏZZ~gV0 4: VPPVVZ VnVZVZZn0 nZɔ{ЬP[PЬWP01 Z~n[0ЎPP0 P@P0 P@P0 Z [1 ѧ 0;,6ˏ@Vя@V(ݩnՎϬ +Џ5P0IPP[[Zլ 1$[(Z,g Z[[P[PZP iY[$6Z(0ipPPz0 Ч$[<(Z[Z,1dV[ZipVяzPяP0 1,0Ϭ +Џ5P0r [Ч PPP[çUUZ$[(Z<V Z[[PЏ5P02 [$jx $T(TVT~ݬcPrx [UZUTUVTTUUTTggT}T~,nT,nTTTg01}TTUƨ,Y[ g0[ [8i0  , [$'Z(!<(PPZTT(PS,nTc, ZVgZ0~[x [[Z[P0 iPP07 0ЬUVP0`ՎYЬPPPzP0 Ш,045ǂVЦ  h0PJӏ4 ӏ4 Џ5P1E:Tæ HUUTЦ U}T~^R~l>n~l>nYY~l> nRPPP0ЎP0s P0}UʏVP0l;Ь P ﱵPY0 Yl@lZZެ\0J @hP4ˏQя Q Џ5P1ӏGhPnяPӏ Џ5P1Lh,,(*Z  ZZP0l WP0)^^[߬ݬ[ %P PZ0ЎPPLW1N@WP0Z5Ь[ЏZ:Zk Џ5P0 [QZ0C[Z0PZЬWP0Ь~^[0~ЬP0 00wpTADATADATADATADATADATA ,P0 0 Z P82-<PP P0z]P$PPP1@B,@9 *h0L,h01<6R@<֧ Ч 8iP#я P , ,ЧЏgPק 0Џ5P0,1/Ч<gP,0Ч<g,0Pg/,0(Ч<g,  0J֧ ,gP1rZ, : ZkQ[QZgV0gKZVZV,(VkVgSQ[VnVZ0=! , 0"nZPՎPgV0 %ZVZV,(VkSVgQ[VZPЧVVU0} PЧ<gP0ЏPѧ $,çQQ(<(Q,QP,<ЧR,gPAb<"Ч(Ч 8iя P i0 }U~>?TV,TVTU ЏP1TP.1 EU12~T^, EU00wvvn1U1~f f ;,%, ~}U~ޮVU0}UT}U~1f  ,19Pf P1Q+Q, Q,E  ,U:E U/,'Q1P Q $QQ EU1_Q~P (UfVSUfJ@E@xUTT^^S, R R RU S,^V^SUT^1mU"V(ˏ@Sя@S,i@@i?VUVVVVV( (֧$T^}Uя P i0), P` çPP6P ,nPSЧ QçP PQQ$Q$(P(P(ZQ00}PsZŬQQ0}P}PWXݭPRˏRPP ݭx߭8:RRMOc9я|PcT9PPT9PPRP?T9PP ^ʟRj9\P\\P}QP PPPbPPPЬQ:aìQP|}SV:dVTQR (RdcQTVcЬP}SVЬ WD:dVTQRRWWRVRW(RdcQTVЏVVWWV ,nVcVWЬP|}QV:aQS:bVRQP (PbcQRVcЬP}QЬ W5V:aQS:bVRQPPWWPPW(PbcQRVڔcЬP<^,nnUЬQ6ЬR :a&P@nQT:dUTQ*QdnUìQP<^,nnUЬQ6ЬR :a&P@nQT:dUTQ+QdnUìQP|^,nnUЬQ.P@nЬQQT:dUTQ*QdnUQP Ь S}QP P SPbPPP0^XYʞWީ ީ%nީ+ީ1ho hxb|z|~x?bXb|P)ЧRb<RRRt|~?ﱜPP"|~2~B 22~PRRԧRSRPc֧ՀҤ 1{d<~PPPT֧eߩ7FP ߩ<8Ч RPߩA&Ч RPߩFЧ RP 1+լ`Al!hkj?dh25d22dRBA2d~ZlpPdZ2d~ݧJP֧2dRRBjЬS<~ݣݷзT<RBdݷ<RRRTT ݮ TJPTݧ$T:PtZTRR!RRpr|~p?p XPRt{RTPpAQPP%-%77777777777777777777 t?P@1P@T?P`1P`9S1?ޢZS1ޢmS1€S1~“S1v¦S1n¹S1fS1^S1VS1N S1F#S1>9S16OS1.eS1&S1œS1³S1ЬP¸S1S1ЬPS1S1ЬPS100wpTADATADATADATADATADATAS1ЬPS1 S1ЬPS1&S1ЬP5So?ShЬPNSUXSNЬPgS;qS4‘S-§S&ЬP¬S¶S SSSݬj^|~|~ݬ|~<#~ݬ Ó Џ .c/csPcPPnnc~P/cRn:.nQQR/bRcPPnRccR:]nbQQc :>nbQQcPlZjWWVЬ YYXY /gjX1YY Y1ЬXY( Olg jr/jY ЬX /gj.GY@1ЬX /gj.j.jX 0j(XXjY!j*VQQjXX:%XfQQ?aQVPPXQVYPP>R/b.b.bPR/b.b.b.bP[~Z,^lլYЬYPѬPPXЬ$QVPPPPPQPVQ1Ь$j,| 0004ЏЏЏ$,n$V  + fP1', ,w[j0T0PTP- j ,.j0T0PTP9jU- i-e-.ejN.jdT<V1,,,,YjPPW, ..`[`j,.j(VVj]jXz,nPPƐϞP؞ܞ,iPPj,n`P`PR$TZP\0PRERk1ZWj,*, ,Y1jP.j]j,.j,jP%.j,5,jQ.jPQP a**j.j$, ,kz,nPPƐϞP؞ܞgPPj,n`P`PR$TZP\0Pk1,00w pTADATADATADATADATADATA,kPWHP[SP(PTnSP@$.RYWR,PPWRPݬP SP(PnTk[WPPfY[XzW$^g,| 0004ЏЏЏ$,n$nn:QìQЬ J Ph1m,s[g0V0PVP- i ,.g0V0PVP9gT- i-d-.dg( <PPg.gfVѬE<V/gP, ..`[`g,.g(VVg]gg1,gP.g]g(<PPg,.g( <PPg,gP%.g,;,gQ.gPQP a**g.g($(<$PPghPPxWV(VVg:g:gP|zxV(f:fPdXyW^VЬUUP/U-Uhw-Uh8VgЮTPTP$- hקd^ 6O P&ЮPU Ь `V֧֧PPxЬxP<xUѬ8ЬTcSeRPPa Pz PQPQReЬPbxЬ^xP~(w[ЬZTУSµfV;P@LݢLgPS8SSQ[5Q%ܑQ?׊QQSVVVTXRdPdTVRXQQWWQQ]ȑQ-QӑQ]S-SWґSQ QQSšQQ]1\hq i.; z.;@_ ::"":[<]>.m-6'.]>b.--.]>. 9r]>*pr- *pq%pq1s/@r/Fr.`r;pr *z.pr ;pr @ !""., ./*p6r-y$ ryr*?} q[]-eVAXCMSG@@8@H`H@( x(( 0HP @FORRTLLIBRTL00wvv VMSTPC +$main'process*) container_dir +verify_{, tape_to_tape6, tape_to_diskI. tape_dump%n0start_tape_dumpz0 read_qio_ast9!1 disk_to_tape>_3 tape_write[5start_tape_writeX5 ansi_checkO6 position_eot7set_dens 8parse89printmsg$ :getmsgG M:initD;inistatsW; cpuformat'~; printstats<;accstats ;getparamI#<setqual?b< getqual_valuer<init_fab= create_disk4= open_disk4= read_disk84> write_disk T> close_disk, >r50toa3 +$yyyy  yy z y (SHELL$FROM_VMSܓSHELL$FROM_VMS ܓ :4͔SHELL$$RMS_PARSE ͔ 3(fTERMINATE_PARSE f m  SHELL$TRANSLATE_VMS  9)- DEFAULT_DIR - A2 [ Ж COPY_TOKEN Ж r}B     . INSERT_MINUS  /!-+ DOTDOTDOT + \!3DCLI$DATA _LIB$KEY0$ _LIB$STATE$_tCLI$READ_ONLY_DATAܓCLI$CODESHELL$CLI_NAMEoshell$cli_namepshell$is_shell@N oo  SHELL$TO_VMS^ SHELL$TO_VMS ^ Z J    "   d a  9BSHELL$$VMS_FILE  ͹;   #    SAVE_NODE  Y)'ʞSAVE_DEV ʞ  &SAVE_DIRECTORY  :B SAVE_NAME  @ & SAVE_TYPE  m-(  Y SAVE_VERS   &COPY_STR  H1! FREE_DIRECTORY_DESCRIPTORS  w  00wy pTADATADATADATADATADATA4> MATCH_REGEX > C, # ҡMATCH_SUBSTRING ҡ *' R Q#PRUNE_FILESPEC # g^&    Ƣ FIND_LAST_DOT Ƣ " .TERMINATE_PARSE     CLI$READ_ONLY_DATALCLI$DATA8 _LIB$KEY0$j _LIB$STATE$4^CLI$CODE  . ABS . C$DATAC$$MAINCsc$$mainw expand_buffery lowercase/y get_paramsqQzget_terminal_typez| c$$ctrlc_hando:} c$$cond_hand.y tCs0y " y  &! y" C$$TRANSLATE c$$translatef C$GETENV >getenv E >C$SIGNAL Gdeclare_control_c_handlerD signalDssignal&jgsignalm G# ! $  SHELL$CLINTSHELL$GET_ARGVCLI$CODEDSHELL$MATCH_WILDXSHELL$MATCH_WILDXCLI$CODEC$SIGVEC ysigvec}sigblock5 sigsetmaskGsigpause4{sigstack>y y;5; COMMAND FILE TO ASSEMBLE BASIC FOR USE UNDER RSX11M;IDNTFY,IDNTFY/-SP=BASPRE,IDNTFY"BASIC0,BASIC0/-SP/CR=BASPRE,BASIC0"BASIC1,BASIC1/-SP/CR=BASPRE,BASIC1"BASIC2,BASIC2/-SP/CR=BASPRE,BASIC2"BASIC3,BASIC3/-SP/CR=BASPRE,BASIC3"BASIC4,BASIC4/-SP/CR=BASPRE,BASIC4CATB,CATB/-SP=CATBSPAWN,SPAWN/-SP=BASPRE,SPAWN;A; FOLLOWING COMMAND LINE IS USED TO ASSEMBLE THE MODULE IMPUR.MAC:; FOR USE IN A TASK IMAGE. IT THEREFORE DEFINES THE SYMBOL3; "TASK" BY INCLUDING THE HEADER FILE IMPURTASK.MAC;)IMPUR,IMPUR/-SP/CR=BASPRE,IMPURTASK,IMPUR;:; FOLLOWING COMMAND LINE IS USED TO ASSEMBLE IMPUR.MAC FOR7; SYMBOL TABLE USE ONLY. IT THUS OMITS REFERENCE TO THE6; HEADER MODULE IMPURTASK.MAC WHICH DEFINES THE SYMBOL; "TASK";$IMPURNOMO,IMPURNOMO/-SP=BASPRE,IMPUR;5; FOLLOWING COMMAND LINE USED TO ASSEMBLE SINGLE USER6; VERSION OF IMPUR.MAC. IT INCLUDES BOTH GLOBAL SYMBOL2; DEFINITIONS AND FSRSZ$ MACRO. THESE ARE MUTUALLY1; EXCLUSIVE IN THE LIBRARY (MULTI-USER) VERSIONS.;1IMPURSNGU,IMPURSNGU/-SP/CR=BASPRE,IMPURSNGU,IMPUR;-; finally... assemble error message text file;!BSCERR11M,BSCERR11M/-SP=BSCERR11Mrent fashion. In other words the same input text will print inN identical fashion on different printers with different control codes and escape sequences. N Table of contents, indexing and sub-indexing are all supported. 00z#{&|'}*8; $ALOG OBJECT TO MACRO CONVERSION V01.1 13-AUG-86 16:24   .TITLE $ALOG ; .IDENT /F40002/ .PSECT OTS$I ,I,LCL,RW,CON ac0=%0 ac1=%1 ac2=%2 ac3=%3 .ENABL LSBALOG10:: MOV (PC),R4 BR 6$ALOG::  CLR R4 6$: SETF  SETI MOV #126$,R0 LDF @2(R5),AC2 CFCC BLE 116$ STEXP AC2,R1 LDCIF R1,AC3 MULF (R0)+,AC3 LDEXP #0,AC2 LDF R2,AC1 SUBF (R0),AC2 ADDF (R0)+,AC1 DIVF R1,AC2 LDF R2,AC1 MULF R1,AC1 MOV #3,R1 LDF (R0)+,AC062$: MULF R1,AC0 DEC R1 ADDF (R0)+,AC0 BGT 62$ MULF R2,AC0 ADDF (R0)+,AC0 ADDF R3,AC0 TST R4 BEQ 106$ MULF (R0)+,AC0106$: STF AC0,-(SP) MOV (SP)+,R0 MOV (SP)+,R1 114$: RTS PC116$: TRAP 323 CLR R0 CLR R1 BR 114$<126$: .word 040061,071030 ;these are actually floating point: .word 040065,002363 ;variables, but the disassembler does3 .word 037632,014525 ;not know about floating point .word 037714,120036 .word 040052,125332 .word 040400,000000 .word 137661,071030 .word 037736,055731 .DSABL LSB .ENDilding RNO for anyN supported operating systems. Nearly All file names are 6 characters orN less to acommodate all operating systems. Once you have built the exe-N cutable image, you can use it to generate documentation and help fil*^*PL(`((v/+h/0h `(* VBPV*&BA  &*LӉ  1@r5@?U?*@ڪArr?[ have been fixed. 9 3. CHANGE.DOC lists the latest enhancements. N 4. RUNOFF.DOC is the full document for VMS. This is not distri-N buted on small (floppy) kits, but is included with mag tape , @@U 05JU85t`:jnQ C7$7 @ 7@7 *De *E C777P7 *De *E C777x7 *De *E!ANDOR.ATK/-HD/-FP,ANDOR/-SP=ANDORRSXBASIC.STB/SS/STACK=0UNITS=0/is very compatible withHprevious versions of Runoff. The document and help file for this versionKcan also be used for DSR. The intent of this program is to support completeMscientific word processing to produce publication quality output. It has been00~+.2TADATADATADATADATADATA N FJ   f DATE: 12-MAY-82  p FROM:  Hans Goebel ( Department of Medical Physics   TO:  Basic users  + RE: Boolean Functions for Basic  K Anyone who uses Basic soon notices the lack of boolean functions K And, Or, and Exclusive Or if they try to do any number diddling. K This lack has now been corrected. All you need to do is use the K loadable routine ANDOR. This resides in the account DP:[1,202]. E  M2 10 LOAD "DP:[1,202]ANDOR" - 20 CALL "AND"(I,J,K) , 30 CALL "OR"(I,J,K) - 40 CALL "XOR"(I,J,K)   K This is equivalent to saying K=I.AND.J in any decent language G like Fortran. If you have any troubles, please let me know.   h l  Hans Goebel  l HWG/pdp s toNfacilitate constructing lists of arbitrary items. These allow page and sectionHreferences. A 2 pass option allows forward references to symbols definedlater in the text. .pEThis runs under VMS-native mode, RSX, IAS, RT11, TSX, P/OS, and RSTS.;ANDOR BOOLEAN AND AND OR/; ; CALL "AND"(I,J,K) K=I.AND.Ju; CALL "OR"(I,J,K) K=I.OR.Jt; CALL "XOR"(I,J,K) K=I.XOR.JM; AC0=%0;  .MCALL ULODHD;D ULODHD START,END,AND,OR,XOR; START:;L#AND: JSR R4,@#GTRGPI ;GET ARGUMENTS .BYTE 1,1,2 .EVEN SETI  SETF  LDF (SP)+,R0 ;GET FIRST ARG" STCFI AC0,A1 ;CONVERT TO INTEGER LDF (SP)+,R0 ;GET SECOND ARGa" STCFI AC0,A2 ;CONVERT TO INTEGER MOV A1,R0 ;ARG 1 IN R0# COM R0 ;BIC ISN'T REALLY AN "AND" - ;IT DOES A "NOT" ON SOURCE FIRST (SNEAKY)D BIC R0,A2 ;DO AND, STORE IN A2, LDCIF A2,AC0 ;LOAD AND CONVERT TO FLOATING MOV SP,R5 ;R5 => 3RD ARG' JSR PC,@#NSTORE ;RETURN ARG TO PROGRAMH$ ADD #12,SP ;UN-KLUTZ STACK POINTER JSR PC,@#PARCHK ;CHECK FOR ")"U RTS PC ;BACK TO MAIN PROG;T; A1: .WORD 0( A2: .WORD 0F;T;G"OR: JSR R4,@#GTRGPI ;GET ARGUMENTS .BYTE 1,1,2 .EVEN SETIR SETFC LDF (SP)+,R0 ;GET FIRST ARG" STCFI AC0,A1 ;CONVERT TO INTEGER LDF (SP)+,R0 ;GET SECOND ARG " STCFI AC0,A2 ;CONVERT TO INTEGER MOV A1,R0 ;ARG 1 IN R0 BIS R0,A2 ;DO OR, STORE IN A2;, LDCIF A2,AC0 ;LOAD AND CONVERT TO FLOATING MOV SP,R5 ;R5 => 3RD ARG' JSR PC,@#NSTORE ;RETURN ARG TO PROGRAMN$ ADD #12,SP ;UN-KLUTZ STACK POINTER JSR PC,@#PARCHK ;CHECK FOR ")"T RTS PC ;BACK TO MAIN PROGR;(#XOR: JSR R4,@#GTRGPI ;GET ARGUMENTSG .BYTE 1,1,2 .EVEN SETI1 SETF. LDF (SP)+,R0 ;GET FIRST ARG" STCFI AC0,A1 ;CONVERT TO INTEGER LDF (SP)+,R0 ;GET SECOND ARG+" STCFI AC0,A2 ;CONVERT TO INTEGER MOV A1,R0 ;ARG 1 IN R0 XOR R0,A2 ;DO XOR, STORE IN A2, LDCIF A2,AC0 ;LOAD AND CONVERT TO FLOATING MOV SP,R5 ;R5 => 3RD ARG' JSR PC,@#NSTORE ;RETURN ARG TO PROGRAME$ ADD #12,SP ;UN-KLUTZ STACK POINTER JSR PC,@#PARCHK ;CHECK FOR ")"A RTS PC ;BACK TO MAIN PROG ;A;T END: .ENDR* :L.I.@8X@8@*8@Z`@:d @( *t`:jnQ 8X88&.I.&;(*(7$7 @ 7@7 e&Z`N  :d .I.b*b777P7 e $Z`  S:d  .I.*777x7 e $Z`  :d 003589:.LS 1:.NONUMBER;.DATE .LM 10;.RM 748 .PS 62,74*P@ PBCD Ef*IA@?0@ @׳>:L]L?ƪ@+SD:BASBRO/PR/DA,BASBRO/-SP=SD:[1,200]BASBROLB:[1,1]EXEC.STB/SSSD:IMPURNOMO.STB/SS/ASG=TI:1UNITS=1/ 5 APPENDIX<This is a long line of text. Does it reach the right margin?,If it doesn't I will have to make it longer..R;Right margin.STYLE CHAPTER 1,1,1,0,-2,-2#.APPENDIX APPENDIX LEFT/TITLE RIGHT<This is a long line of text. Does it reach the r!BASBRO/PR,LB:BASBRO/-SP=LB:BASBRO2LB:[1,1]EXEC.STB/SSXIMPURNOMO.STB/SS/OASG=TI:1UNITS=1=/1.APPENDIX All right justified<This is a long line of text. Does it reach the right margin?,If it doesn't I will have to make it longer.#.DISPLAY APPENDIX 'Section (',RU')'.APPENDIX New header.appendix last one00;.2TADATADATADATADATADATA .TITLE BASBRO;R;; PROGRAM TO KEEP A "BIG BROTHER" EYE ON BASIC INTERPRETERS; CALL: MCR>BRO ;N .MCALL QIOW$ DIR$ EXIT$S GMCR$$PSW =-2 .MACRO .INH0 MOV $PSW,-(SP) BIS #140,$PSW .ENDM .INH0; MCRDPB: GMCR$:QIODPB: QIOW$ IO.RPR,1,1,,IOST,, IOST: .BLKW 2INBUF: .BLKB 80.*NAM: .ASCII <15><12>/3 LETTER TASK NAME: /NAMEN:TIPR: .ASCII <15><12>/TI = TT/TIPREN:. .EVENRAD...: .RAD50 /.../RADNAM: .WORD 0ITINUM: .WORD 0BATFLG: .WORD 0A-QIOM01: QIOW$ IO.WVB,1,1,,IOST,, -QIOM02: QIOW$ IO.WVB,1,1,,IOST,,L-QIOM03: QIOW$ IO.WVB,1,1,,IOST,,M'MESS01: .ASCII /CURRENT PROGRAM FILE: /,BUFF01: .BLKB 30.P*MESS02: .ASCII /CURRENT LINE, STATEMENT: /BUFF02: .BLKB 14.,,MESS03: .ASCII /CURRENT FREE SPACE (BYTES) /BUFF03: .BLKB 68 .EVEN;S7; FOLLOWING BUFFERS FOR RETRIEVING DATA FROM BASIC TASK<;< DATSIZ=50/PRGNAM: .BLKW 5 ;PROGRAM NAMED.DATBAS: .BLKW DATSIZ ;OTHER MISCELLANEOUS DATA; .ENABL LSBM/START: DIR$ #MCRDPB ;CHECK ON MCR COMMAND LINE2 MOV @#$DSW,R1 ;CHAR COUNT -> R1& CMP R1,#4 ;MORE THAN JUST TASK NAME?, BLT BASBRO ;IF SO, GET COMMAND REGULAR WAY0 MOV #MCRDPB+G.MCRB,R0 ; ADDRESS OF BUFFER -> R0#14$: CMPB (R0)+,#40 ;LOOK FOR SPACEK3 BEQ 15$ ;IF WE FOUND IT, BRANCH INTO REST OF CODE SOB R1,14$ 8 BR BASBRO ;IF FINISHED LOOP, MISTAKE: GET LINE FROM TI3BASBRO: MOV #NAM,QIODPB+Q.IOPL+6 ;SET UP FOR PROMPTR MOV #NAMEN-NAM,QIODPB+Q.IOPL+10 DIR$ #QIODPBU TST IOST ;DID IT GO OK?T BGE 10$ JMP 9$;10$: TST IOST+2 ;CR ONLY?( BGT 12$ ;IF NOT, DO REGULAR PROCESSING# TST TINUM ;SOMETHING ALREADY SET?B BEQ BASBRO ;IF NOT, RE-PROMPTR MOV TINUM,R0 ;GET PUD IN R0 BR 41$ ;AND SKIP SOME CODE212$: MOV #INBUF,R0 ;GET INPUT BUFFER ADDRESS -> R02 CMPB (R0),#'X ;IS FIRST CHARACTER AN 'X' FOR EXIT BNE 15$ ; NO - CONTINUE, JMP 9$ ; YES, EXIT*15$: CLR R1 ;GET SET TO CONVERT NAME INTO JSR PC,$CAT5 ;RAD-50A. MOV R1,RADNAM ;STORE AWAY 3 LETTER RAD50 WORD. CLR BATFLG ;CLEAR THE FLAG FOR BATCH VERSION" CMPB (R0)+,#', ;DO WE HAVE COMMA?" BEQ 13$ ;IF SO, SKIP NEXT PROMPT5 MOV #TIPR,QIODPB+Q.IOPL+6 ;SET UP FOR ANOTHER PROMPTP" MOV #TIPREN-TIPR,QIODPB+Q.IOPL+101$: DIR$ #QIODPB TST IOSTE BGE 11$ ;IF OK, BRANCH AROUNDU JMP 9$E+11$: MOV #INBUF,R0 ;CHECK THIS INPUT STRINGA2 CMPB (R0),#'X ;IS FIRST CHARACTER AN 'X' FOR EXIT BNE 13$ ; NO - CONTINUE; JMP 9$ ; YES, EXIT$13$: MOV R0,R1 ;COPY BUFFER ADDRESS+ CMP R0,#QIODPB ;CHECK FOR MCR COMMAND LINER) BLO 16$ ;IF SO, SKIP PUTTING TERMINATOR4 ADD IOST+2,R1 ;MAKE R1 POINT TO FIRST FREE POSITION. MOVB #':,(R1) ;JUST MAKE SURE IT'S TERMINATED16$: CMPB (R0),#'B ;IS IT BATCH?$ BNE 18$ ;IF NOT, DO REGULAR NUMBER INC BATFLG ;SET BATCH FLAG1 CLR TINUM ;IF BATCH MAKE SURE UNIT ZERO FOR NOW;$ BR 19$ ;AND SKIP NUMBER CONVERSION.18$: JSR PC,$COTB ;AND GET BINARY NUMBER IN R1 MOV R1,TINUM ;SAVE IT; ; SCAN PUDS;:19$: MOV .PUDBA,R0 ;START -> R0C MOV .PUDEA,R1 ;END -> R1C MOV #"TT,R2 ;NAME -> R2 MOV TINUM,R3 ;NUM -> R3& TST BATFLG ;LOOKING FOR BATCH TASK??$ BEQ 2$ ;IF NOT, ALL IS OK (BRANCH)& MOV #"BA,R2 ;ELSE LOOK FOR BATCH PUD2$: CMP R0,R1 ;PAST END?1( BHIS 1$ ;IF SO, NOT THERE -> RE-PROMPT CMP R2,(R0) ;NAME MATCH?! BNE 3$ ;IF NOT, GO AROUND AGAINO CMPB R3,2(R0) ;UNIT MATCH?M BEQ 4$ ;IF SO, WE HAVE ITC!3$: ADD #U.SZ,R0 ;TRY ANOTHER ONEM BR 2$"4$: MOV R0,TINUM ;SAVE PUD ADDRESS+41$: MOV R0,R2 ;ALSO IN REGISTER FOR SPEEDE! .INH0 ;NO TASK SWITCHING WHILEN- MOV .ATLLH,R0 ;WE'RE MESSING AROUND WITH ATLT MOV R0,R1 ;COPY START -> R1%5$: MOV (R0),R0 ;POINT TO NEXT ENTRYM! CMP R0,R1 ;BACK AT END OF CHAIND% BNE 51$ ;IF NOT, THERE'S STILL HOPE * JSR PC,..ENB0 ;ELSE ENABLE TASK SWITCHING! BR BASBRO ;AND START OVER AGAINO51$: CMP R2,A.TI(R0) ;TI MATCH?N BNE 5$ ;IF NOT, BRANCH# MOV A.TD(R0),R3 ;STD ADDRESS -> R3 % CMP RAD...,(R3)+ ;CHECK OUT 1ST PART; BNE 5$A CMP RADNAM,(R3)+ ;THEN 2ND BNE 5$ ;IF NO MATCH, TRY AGAIN4 CMPB A.TS(R0),#TS.RUN ;SE00CH89:E IF IN LEGIT STATUS RANGE BLO 5$ ;IF NOT, TRY AGAIN1 CMPB A.TS(R0),#TS.WF4 BHI 5$); -; WE'VE FOUND IT (ADDRESS OF ATL ENTRY IN R0)D;  MOV #77606,-(SP) ;FIRST MAP MOV A.HA(R0),-(SP) ;INTO TASK JSR PC,..SPD3 ;HEADER MOV #60000,R2 ;THEN MAP INTOE# MOV H.PA0(R2),(SP) ;START OF BASICT! MOV H.PD0(R2),2(SP) ;TASK ITSELFV JSR PC,..SPD3;D0; NOW WE'VE MAPPED INTO FIRST 4K OR LESS OF TASK;% MOV #PRGNAM,R1 ;SET UP FOR NAME XFER MOV #COMFNB+60000+N.FNAM,R2 MOV #5,R3 ;FIVE WORDS TO XFERF6$: MOV (R2)+,(R1)+E SOB R3,6$5 MOV #DATBAS,R1 ;START OF MISCELLANEOUS POINTERS ETC.  MOV #WORK+60000,R2D MOV #DATSIZ,R3Y#7$: MOV (R2)+,(R1)+ ;MOVE IT ALL INT SOB R3,7$;(; NOW WE'VE GOT DATA;R ADD #4,SP ;GET RID OF PAR/PDR2( JSR PC,..ENB0 ;RE-ENABLE TASK SWITCHING MOV #BUFF01,R0V# MOV #PRGNAM,R3 ;GET SET TO CONVERTP MOV #3,R4 ;PROGRAM FILE NAME8$: MOV (R3)+,R1 JSR PC,$C5TA SOB R4,8$) MOVB #'.,(R0)+ ;PUT IN DELIMITER FOR EXT6 MOV (R3)+,R1 ;RAD50 EXT -> R1 JSR PC,$C5TA ;CONVERT ITR' MOVB #';,(R0)+ ;DELIMIT VERSION NUMBERS% MOV (R3)+,R1 ;BINARY VERSION # -> R1M CLR R2 ;NO LEADING ZEROESS# JSR PC,$CBOMG ;CONVERT IT TO ASCIIA, SUB #MESS01,R0 ;CALC TOTAL STRING LEN -> R0* MOV R0,QIOM01+Q.IOPL+2 ;SET LEN OF OUTPUT DIR$ #QIOM01 ;PRINT IT; MOV #DATBAS-WORK,R4 ;ESTABLISH BASE ADDRESS TO OFFSET FROMR- MOV #BUFF02,R0 ;ADDRESS OF NEXT BUFFER -> R0)) MOV LINENO(R4),R1 ;GET LINE NUMBER -> R1, CLR R2 ;NO LEADING ZEROESX$ JSR PC,$CBDMG ;CONVERT IT (DECIMAL) MOVB #',,(R0)+ ;PUT IN COMMA  MOVB #40,(R0)+ ;AND SPACE- MOV STCOUN(R4),R1 ;NOW STATEMENT WITHIN LINE JSR PC,$CBDMG% SUB #MESS02,R0 ;LEN OF MESSAGE -> R0T# MOV R0,QIOM02+Q.IOPL+2 ;SET LENGTHA DIR$ #QIOM02 ;PRINT IT. MOV STGOSB(R4),R1 ;CALCULATE TOTAL BYTES LEFT SUB ENUDAT(R4),R1 ;IN R1S$ BNE 17$ ;IF NON-ZERO, OK SO BRANCH7 MOV BOLNHD(R4),R1 ;IF ZERO, CALCULATE IN DIFFERENT WAY): SUB ENDTXT(R4),R1 ;(WE ASSUME BASIC IS IN IMMEDIATE MODE)&17$: MOV #BUFF03,R0 ;ADDRESS OF BUFFER JSR PC,$CBDMG ;CONVERT TO ASCII& SUB #MESS03,R0 ;R0 HAS LENGTH OF LINE# MOV R0,QIOM03+Q.IOPL+2 ;PUT IN DPBH DIR$ #QIOM03P JMP BASBRO ;GO AROUND AGAINO 9$: EXIT$S ;QUICK EXIT FOR NOW .END STARTLs)%; /OD 200 Output odd pages (1=yes)); /DE 400 Type all input lines (1=yes)?; /TT 1000 Do write all to output device. (1=yes) (default=1)%; /2P 2000 Perform 2 passes (1=yes)&; /WR 4000 Suppress warning messages+; /EO 10000 Errors ar* _L @@ @ @8@* v@X@%'@t!Ԁ@!<@*p6 @p6@:s@:2@vL!@*[W@ya@y`@s@Ґ@*@*D@9x@:@:_@*GP}@[(}@s@1 THEN LET E$=SBS$(E$,1,PP-1)T*80 PRINT #4, " ";FRMT$(N,3);". ";E$85 N=N+1 90 GOTO 60 100 CLOSE 105 EXIT l K                     7 BASIC DOCUMENTATION 1 06/11/85  ; Michael Reese Medical Center  5 Frank R. Borger   L BASIC DOCUMENTATION PAGE 2 K 06/11/85  6 TABLE OF CONTENTS  L CHAPTER 1 INTRODUCTION. . . . . . . . . . . . . . . . . . . . 1-1 L 1.1 STATEMENT AND LINE FORMAT. . . . . . . . . . . . 1-2 L 1.2 VARIABLE NAMES . . . . . . . . . . . . . . . . . 1-2 L 1.3 VIRTUAL ARRAYS . . . . . . . . . . . . . . . . . 1-3 L 1.4 STRING CONSTANTS . . . . . . . . . . . . . . . . 1-3 L 1.5 DATA AND FILE PRESERVATION . . . . . . . . . . . 1-4 L 1.6 STRING VARIABLES . . . . . . . . . . . . . . . . 1-4 L 1.7 EXPONENTIATION . . . . . . . . . . . . . . . . . 1-4 L 1.8 MCR COMMAND LINE . . . . . . . . . . . . . . . . 1-4 L 1.9 CONTROL C. . . . . . . . . . . . . . . . . . . . 1-5 L 1.10 CONTROL O . . . . . . . . . . . . . . . . . . . 1-5 L 1.11 LOGICAL EXPRESSIONS . . . . . . . . . . . . . . 1-5 L CHAPTER 2 LOADING/RUNNING/SAVING PROGRAMS . . . . . . . . . . 2-1 L 2.1 STOP . . END . . . . . . . . . . . . . . . . . . 2-1 L 2.2 RUN. . . . . . . . . . . . . . . . . . . . . . . 2-1 L 2.3 CLEAR. . . . . . . . . . . . . . . . . . . . . . 2-2 L 2.4 SAVE [N1][-N2][,N3...]. . 2-2 L 2.5 OLD . . . . . . . . . 2-2 L 2.6 CHAIN . . . 2-3 L 2.7 OVERLAY . . 2-3 L 2.8 LIST [N1][-N2][,N3...] . . . . . . . . . . . . . 2-3 L 2.9 DELETE N1[-N2][,N3...] . . . . . . . . . . . . . 2-4 L 2.10 EXIT. . . . . . . . . . . . . . . . . . . . . . 2-4 L 2.11 STEP [LINE #] . . . . . . . . . . . . . . . . . 2-4 L 2.12 CON [LINE #]. . . . . . . . . . . . . . . . . . 2-4 L CHAPTER 3 PROGRAM STATEMENTS. . . . . . . . . . . . . . . . . 3-1 L 3.1 GOSUB N . . GOTO N . . . . . . . . . . . . . . . 3-1 L 3.2 ON GOTO . . . . . . . 3-1 L 3.3 RETURN . . . . . . . . . . . . . . . . . . . . . 3-1 L 3.4 DIM. . . . . . . . . . . . . . . . . . . . . . . 3-2 L 3.5 DIM #N, . . . . . . . . . . . . . . . . . . 3-2 L 3.6 DEF. . . . . . . . . . . . . . . . . . . . . . . 3-3 L 3.7 LET. . . . . . . . . . . . . . . . . . . . . . . 3-3 L 3.8 IF . . . . . . . . . . . . . . . . . . . . . . . 3-4 L 3.9 REM . . !. . . . . . . . . . . . . . . . . . . . 3-4 L 3.10 READ . . DATA . . . . . . . . . . . . . . . . . 3-4 L 3.11 FOR . . . . . . . . . . . . . . . . . . . . . . 3-5 L 3.12 NEXT. . . . . . . . . . . . . . . . . . . . . . 3-5 L 3.13 BREAK . . . . . . . . . . . . . . . . . . . . . 3-5 L 3.14 SET PROMPT/TRACE/PASS-ALL/ECHO/UPPER ON/OFF . . 3-6 L 3.15 ON ERROR GOTO . . . . . . . . . . . . . . . . . 3-6 L 3.16 SLEEP . . . . . . . . . . . . 3-7 L 3.17 WAIT . . . . . . . . . . . . 3-7 L 3.18 PRIORITY . . . . . . . . . . . . . 3-8 L 3.19 TRACE ON AND OFF. . . . . . . . . . . . . . . . 3-8 L CHAPTER 4 ARITHMETIC FUNCTIONS. . . . . . . . . . . . . . . . 4-1 L 4.1 RND. . . . . . . . . . . . . . . . . . . . . . . 4-1 L 4.2 RANDOMIZE. . . . . . . . . . . . . . . . . . . . 4-1 L 4.3 ABS. . . . . . . . . . . . . . . . . . . . . . . 4-1   L BASIC DOCUMENTATION PAGE 3 K 06/11/85  L 4.4 SGN. . . . . . . . . . . . . . . . . . . . . . . 4-2 L 4.5 INT. . . . . . . . . . . . . . . . . . . . . . . 4-2 L 4.6 LOG (NATURAL & BASE 10). . . . . . . . . . . . . 4-2 L 4.7 EXP. . . . . . . . . . . . . . . . . . . . . . . 4-2 L 4.8 SIN COS. . . . . . . . . . . . . . . . . . . . . 4-2 L 4.9 ATN. . . . . . . . . . . . . . . . . . . . . . . 4-3 L 4.10 SQR . . . . . . . . . . . . . . . . . . . . . . 4-3 L 4.11 NRC . . . . . . . . . . . . . . . . . . . . . . 4-3 L 4.12 ERR . . ERL . . FCS . . . . . . . . . . . . . . 4-3 L 4.13 COR . . . . . . . . . . . . . . . . . . . . . . 4-3 L 4.14 DAT$. . . . . . . . . . . . . . . . . . . . . . 4-4 L 4.15 DDAT$ . . . . . . . . . . . . . . . . . . . . . 4-4 L 4.16 TIM$. . . . . . . . . . . . . . . . . . . . . . 4-4 L 4.17 DCEN. . . . . . . . . . . . . . . . . . . . . . 4-5 L 4.18 SEC . . . . . . . . . . . . . . . . . . . . . . 4-5 L CHAPTER 5 STRING FUNCTIONS. . . . . . . . . . . . . . . . . . 5-1 L 5.1 INX . . POS. . . . . . . . . . . . . . . . . . . 5-1 L 5.2 LEN. . . . . . . . . . . . . . . . . . . . . . . 5-1 L 5.3 VAL. . 00cTUVW. . . . . . . . . . . . . . . . . . . . . 5-1 L 5.4 OCT. . . . . . . . . . . . . . . . . . . . . . . 5-2 L 5.5 AR5. . . . . . . . . . . . . . . . . . . . . . . 5-2 L 5.6 ASC. . . . . . . . . . . . . . . . . . . . . . . 5-2 L 5.7 CHR$ . . . . . . . . . . . . . . . . . . . . . . 5-2 L 5.8 SEG$ SBS$ RIGHT LEFT MID . . . . . . . . . . . . 5-2 L 5.9 PIECE$ . . . . . . . . . . . . . . . . . . . . . 5-3 L 5.10 STR$. . . . . . . . . . . . . . . . . . . . . . 5-3 L 5.11 LTR$ TRM$ . . . . . . . . . . . . . . . . . . . 5-4 L 5.12 OCT$ OCS$ . . . . . . . . . . . . . . . . . . . 5-4 L 5.13 R5A$. . . . . . . . . . . . . . . . . . . . . . 5-4 L 5.14 FRMT$(X,W[,D]). . . . . . . . . . . . . . . . . 5-4 L 5.15 RJS$ . . LJS$ . . . . . . . . . . . . . . . . . 5-5 L 5.16 SPACE$ . . STRING$. . . . . . . . . . . . . . . 5-5 L 5.17 TAB . . . . . . . . . . . . . . . . . . . . . . 5-5 L CHAPTER 6 I/O & FILE MANIPULATION . . . . . . . . . . . . . . 6-1 L 6.1 RESTORE. . . . . . . . . . . . . . . . . . . . . 6-1 L 6.2 PRINT. . . . . . . . . . . . . . . . . . . . . . 6-1 L 6.3 INPUT. . . . . . . . . . . . . . . . . . . . . . 6-2 L 6.4 INPUT LINE . . . . . . . . . . . . . . . . . . . 6-3 L 6.5 SCRATCH . . . . . . . . . . . . 6-3 L 6.6 OPEN . . . . . . . . . . . . . . . . . . . . . . 6-3 L 6.7 CLOSE N1[,N2...] . . . . . . . . . . . . . . . . 6-4 L 6.8 IF END [#N] THEN . . . . . . . . . . . . 6-4 L CHAPTER 7 LOADABLE SUBROUTINES. . . . . . . . . . . . . . . . 7-1 L 7.1 LOAD . . . . . . . . . . . . . 7-1 L 7.2 UNLOAD . . . . . . . . . . . . . . . . . . . . . 7-1 L 7.3 CALL "NAME"(ARG1,ARG2,...) . . . . . . . . . . . 7-2 L 7.4 INSTRG . . . . . . . . . . . . . . . . . . . . . 7-2 L 7.5 OPEN LIBRARY . . . . . . . . . . . . . . . . . . 7-2 L 7.6 QUESTION DISPLAY . . . . . . . . . . . . . . . . 7-3 L 7.7 MDIS . . CDIS . . RDIS . . . . . . . . . . . . . 7-5 L 7.8 MPOS . . CPOS . . RPOS . . . . . . . . . . . . . 7-7 L 7.9 MQTXT . . CQTXT . . RQTXT. . . . . . . . . . . . 7-7   L BASIC DOCUMENTATION PAGE 4 K 06/11/85  L 7.10 MATXT . . CATXT . . RATXT . . . . . . . . . . . 7-7 L 7.11 CQNAM . . RQNAM . . . . . . . . . . . . . . . . 7-7 L 7.12 SPAWNB. . . . . . . . . . . . . . . . . . . . . 7-8 L APPENDIX A BASIC ERROR VALUES . . . . . . . . . . . . . . . . A-1 L APPENDIX B SAMPLE LOADABLE MACRO SUBROUTINE . . . . . . . . . B-1 L APPENDIX C USEFUL INTERNAL BASIC SUBROUTINE CALLS . . . . . . C-1 L APPENDIX D INDEX. . . . . . . . . . . . . . . . . . . . . . . D-1   K 06/11/85         / CHAPTER 1  1 INTRODUCTION     L This BASIC follows DEC's BASIC-11 in its basic orientation. L Advanced features tend to follow RSTS BASIC-PLUS (e.g. virtual L arrays). Primary differences are in the file I/O. The OPEN, L PRINT and INPUT statements have been modified to provide full L FILES-11 capability for ASCII files both fixed and variable L length and se00kL2TADATADATADATADATADATAquential and random access. The statement concate- - nation character is the colon (:).  L BASIC can be used in an IMMEDIATE mode. Any legal command en- L tered without a line number (or leading "tab") will be performed L immediately. Nearly all the BASIC codes presented in this docu- L ment can be used in the IMMEDIATE mode and a few can be used only ! in the IMMEDIATE mode.  L The other BASIC mode is the PROGRAM mode. Any legal command fol- L lowing a line number or with a leading "tab", (effectively a con- L tinuation line,) will be stored with the current program and exe- ( cuted in normal program flow.  L BASIC comes in several 'sizes'. When a user invokes BASIC by L calling for BAS, the space reserved for the program and data in L main memory contains 2570 bytes. The next 'size' is BA2, 4618 3 bytes. The largest is B11, 23050 bytes.  L If a user's program calls for more than the space alloted to it, L the computer stops execution and prints out a USERS OVERFLOW er- L ror message. Exit and re-enter the BASIC mode at a higher ver- L sion. BASIC may be conditionally assembled to automatically ex- 1 tend itself if it runs out of storage.  L All numeric calculation is done in floating point (REAL*4 for you L FORTRAN buffs) regardless of the variable types in the expres-  sion.    L INTRODUCTION PAGE 1-2 K 06/11/85  ) 1.1 STATEMENT AND LINE FORMAT  L Multiple statements may be concatenated on a single line by use L of the colon (:) character. A backslash (\) is also allowed for L BASIC-PLUS compatibility. A line may be continued on the next L line without using a new line number by starting the continued L line with a tab or two spaces. Continued lines are treated the L same way as in BASIC-PLUS: the end of a physical line is ignored L during execution so long as an individual BASIC element is not L broken across line boundaries. The end of line does not serve to L end a statement except when there is no continued line following L it. Thus a statement which begins on a continued line must ei- L ther have a concatenation character at the start of its line or L the end of the previous line. There is an exception in the case L of a comment (! only) terminating the previous line, in which L case no concatenation character is used. Care should be taken L not to start an immediate mode command with a tab or double space L as it will not be executed but added to the existing program as a 9 continuation of the last entered program line.  L This version of basic automatically converts all lower case char- L acters to upper case, thus Program source may be in lower case. L saving a program via the "save" command will result in an all L upper case version. Case conversion does not take place under $ the following conditions:  ( 1. During string input.  ( 2. During "INPUT LINE".  6 3. On source text enclosed in quotes.  6 4. On source text in a comment field.  L Note that checking of program statements for verb legality as L they are read in by the interpreter is no longer done as it was F in earlier versions. All checking is now done at run time.      1.2 VARIABLE NAMES  L Variable names may be one or two characters of which the first is L alpha and the second (if used) is alphanumeric, fol00sTUVWlowed by an L optional type character. If no type character is used, the type L is REAL*4. A $ denotes a string variable, % is an integer vari- L able (16 bits) and & is a byte variable (8 bits). Note that un- L like standard BASIC, the second character of the variable name is L allowed to be alphabetic. In order to gain this flexibility in L naming variables, some restrictions had to be made in the allowed L format of the program text: spaces are not allowed within a var- L iable name; variable names must not be the same as BASIC key L words (e.g. TO and IF). Also, ambiguities may sometimes arise L when a variable is next to a keyword in the program text. This   L INTRODUCTION PAGE 1-3 K 06/11/85  L can usually be resolved by re-writing the text. Although it is L theoretically possible to resolve these cases in the interpreter, L the expense in terms of interpreter code length and execution L time does not seem to warrant it. Consider the following  example: . 100 IF A < MT OR B=5. THEN 500 L The T of MT and the O of OR are misinterpreted by BASIC to form L the keyword TO. The statement can be rewritten unambiguously as  follows: 2 100 IF (A < MT) OR (B=5.) THEN 500      1.3 VIRTUAL ARRAYS  L Virtaul arrays are used to store extensive numbers of variable L values, usually more than is practical to store in an in-memory L array. The use of virtual arrays involves a special form of the L DIM statement and the file OPEN statement with the block mode L switch /BL. See the DIM statement documentation for details of 5 variable mapping into virtual array files.  L Mechanics of virtual array files: Virtual array files are opened L in block mode using the /BL switch. There is no record structure L superimposed over the basic block structure. Therefore only the L file access mode switches can be used in conjunction with /BL. L This also implies that a virtual array file does not subtract L from the total number of files (record type) which may be open ( simultaneously (currently 6).  L Virtual arrays are maintained in memory one block at a time (512 L bytes). When a variable is accessed, the appropriate block is L calculated and, if necessary, read into memory. If any writing L to that block is done, a flag is set and when a different block L needs to be read in, that one is written out. This has several L implications: First, on a virtual file opened for read only ac- L cess, an illegal write will not be detected until the block as a L whole attempts to be written out. Also, in the case that the in- L terpreter aborts or the system crashes, new or changed data may : be lost for that block which is then in memory.     1.4 STRING CONSTANTS  L String constants are specified with double quotes. At this point L it is not possible to represent a double quote in a string con- L stant, i.e. a string delimited by double quotes. However, this L limitation may be gotten around by using INPUT or READ or the  CHR$ function.    L INTRODUCTION PAGE 1-4 K 06/11/85  * 1.5 DATA AND FILE PRESERVATION  L User data is now kept intact except for CLEAR and RUN commands. L User files are automatically cl00{L2TADATADATADATADATADATAosed on execution of the RUN or L CLEAR commands and on exit from BASIC. They remain open (unless L explicitly closed by a CLOSE command) on program stop for debug-  ging purposes.     1.6 STRING VARIABLES  L String variables are declared in a DIM statement and can be ei- L ther fixed or variable length. See DIM statement for the specif-  ics.      1.7 EXPONENTIATION  L Exponentiation (^) is done in two ways. If the exponent is an L integer, the base is multiplied (or divided) by itself the appro- L priate number of times. If the exponent contains a fractional > part, a log - antilog calculation sequence is used.     1.8 MCR COMMAND LINE  L BASIC is called from the MCR by typing BASIC (or BAS) in response L to the MCR prompt. A may follow for normal interactive use L or one of two other options may follow before for special  uses.  L If a space and a ? followed by an arithmetic expression follows L BAS, the value of the expression will be printed on the next line L followed by a return to the MCR. This is useful for quick desk ( calculator type calculations.  L If a space (or tab) and a file name with an optional switch fol- L low, then that file will be read in as a user program just as in  the OLD command.  L If the switch (/RN) is specified, the program will also be run as L though the RUN command had been typed. A switch of the form L "/RN:NNN" will cause the program to start execution at line #  NNN.  L If the switch (/CO) is added, then the file retrieved will be as- L sumed to be previously compiled and a default extension of BAC  will be used.   L INTRODUCTION PAGE 1-5 K 06/11/85  - NOTE  H Note that no quotes are used here as opposed to the OLD and RUN commands.    Examples:  MCR>BAS % MCR>BASIC PROG.BAS/RN # MCR>BAS PROG/RN:150  MCR>BAS ? 4*3+2      1.9 CONTROL C  L The break key for BASIC is the Control-C (^C). A ^C typed at the L keyboard when running will cause the program to stop at the next L sequential line (not at a line entered via GOTO, GOSUB, IF etc.). L When in immediate mode, ^C will bring up MCR if the terminal has L not been set hostile. ^C typed during a list command will termi- L nate the listing process after the current line is finished L printing out. It causes an immediate return to the interpreter L as opposed to ^O which only suppresses printing while the BASIC L interpreter still goes through the motions of completing the  listing.      1.10 CONTROL O  L Control-O (^O) will stop all output from a LIST command and re- L sume printing with READY. It also stops all printing following a L RUN command including non-fatal errors. Printing resumes with a K STOP or ^C or a fatal error (one which stops program execution).     $ 1.11 LOGICAL EXPRESSIONS  / Logical expressions are of the form: A [...] L Where expressions are either arithmetic or string and relational L operators can be formed by any combination of <, > and =. The L two expressions which are related by the relational operator must L be of the same type: i.e. s00TUVWtring or arithmetic. The result of L evaluating the relationship (termed here a logical subexpression) # is either true or false.  L Strings are compared character by character on the basis of their L ASCII codes. When two strings of unequal length match at all L common character positions, the shorter one is considered less   L INTRODUCTION PAGE 1-6 K 06/11/85   than the longer one.  L Logical subexpressions can in turn be related by the logical (Bo- L olean) operators: AND, OR, XOR and NOT. The order of evaluation L is from left to right, but logical subexpressions may be nested 1 with parentheses to any depth desired.  L One restriction exists with respect to parentheses: no leading L arithmetic expression in a logical subexpression should begin L with an open parenthesis, otherwise the interpreter will attempt L to evaluate it as a nested subexpression. This can easily be L gotten around by rearranging the arithmetic expression or adding  it to 0.  Examples:  A < B OR B = .5 ' NOT (X1 < 1 AND A >= 5)   K 06/11/85         / CHAPTER 2  ; LOADING/RUNNING/SAVING PROGRAMS    L The subset of commands listed in this chapter is primarily used L to control execution of BASIC programs. Their purpose is to let L one load saved programs, interactively modify/debug them while L running, and possibly save modified versions for later use. As L such, the equivalent commands normally do not exist for compiled % languages such as FORTRAN.      2.1 STOP . . END  L STOP and END statements. Stop user program execution and tell * user where program has stopped.  Example:  10 STOP  20 END      2.2 RUN  L May be used in immediate mode to start the program in memory or L by specifying a file in quotes to run another BASIC program  stored on disk.  L In program mode, it may be used with a file specifier to chain to L another program. The assumed file extension is .BAS. Note that L no data is saved across a "RUN" type chain. User loaded subrou- L tines are also unloaded. To preserve data and user files, use L "CHAIN" command. If basic fails to find the required file, it L will also look under the "default UIC", (usually [1,1],) if this L option is enabled. This allows frequently used programs to be J available to any user without having multiple copies available.  L A previous restriction against using a variable in the string ex- L pression following the RUN command has been removed. The option- L al switch /RT may be used as with OLD to trim REM and ! L statements when the file form of the command is used. The F switches /LI and /CO may be used as in the CHAIN statement.  Example:   L LOADING/RUNNING/SAVING PROGRAMS PAGE 2-2 K 06/11/85   RUN  RUN "PROGRAM"  10 RUN "PROG1"      2.3 CLEAR  L This command clears the user data area. It closes all user files , before doing the clear operation.     = 2.4 SAVE [N1][-N00L2TADATADATADATADATADATA2][,N3...]  L Primarily an immediate mode command. It makes a copy of the pre- L sent program on the file named in the string filespec (string L variable or string in quotes). Optional line numbers or line ) number ranges can be included.  L The optional switch will produce a psuedo-compiled version which L can be read back with the same switch without re-interpreting the L code thus saving a considerable amount of time for long programs. G The default extension will be BAC if the switch is included.  L The default file specifier is: SY:PROGRAM.BAS or the name, ex- L tension and device in the last OLD, RUN, CHAIN or OVERLAY com-  mand.  Example:  SAVE "PROGRAM"  SAVE "LP:" # SAVE "DK2:PROG.BAS"  SAVE     / 2.5 OLD  L The OLD command reads in a previously saved or edited program L from the file named in the string filespec (as in SAVE). The op- L tional switch, when specified, causes truncation of REM and ! L statements. The default file specifier is: SY:PROGRAM.BAS The L CO switch indicates that a compiled basic file is to be used (de- fault extension BAC). L If basic fails to find the required file, it will also look under L the "default UIC", (usually [1,1],) if this option is enabled. L This allows frequently used programs to be available to any user 4 without having multiple copies available.  Example:  OLD "PROG1" % OLD "DK3:PROGRAM.BAS"    L LOADING/RUNNING/SAVING PROGRAMS PAGE 2-3 K 06/11/85  : 2.6 CHAIN  L The CHAIN command reads in another BASIC program while preserving L variables and open files' FCB's. GOSUB/RETURN pointers, FOR loop L control tables, user DEFined functions and scratch items are all L deleted from the user data area. Thus user functions must be re- - defined in any new program module.  L The default file specifier and switches are the same as for the L OVERLAY command with the addition of the /LI switch which can A specify an optional line number to continue execution. L If basic fails to find the required file, it will also look under L the "default UIC", (usually [1,1],) if this option is enabled. L This allows frequently used programs to be available to any user 4 without having multiple copies available.  Example: 20 CHAIN "PROG2"     = 2.7 OVERLAY  L The OVERLAY command reads in additional program text from the L specified file and adds them to the existing program just as L though they were typed from the keyboard: i.e. new statements L with the same line number as an existing statement replace the L existing statement. The same precautions regarding function de- L finitions and DATA statements during debugging should also be ob- C served when using the OVERLAY statement in program mode.  L The optional switch (/LI) is significant in program mode only and L can be used to specify the line at which execution should resume. H The /RT and /CO switches are the same as for the OLD command. L If basic fails to find the required file, it will also look under L the "default UIC", (usually [1,1],) if this option is enabled. L This allows frequently used programs to be available to any user 4 without having multipl00TUVWe copies available.  Example: OVERLAY "PATCH1" / 100 OVERLAY "PATCH2.BAS/LI:500"     & 2.8 LIST [N1][-N2][,N3...]  L This is primarily an immediate mode command. With no arguments, L the whole program is listed at the user's terminal. Single argu- L ments separated by commas will list only the line numbers re- L quested. Two arguments separated by a dash (minus) will list an ' inclusive line number range.  Example:  LIST  LIST 20   L LOADING/RUNNING/SAVING PROGRAMS PAGE 2-4 K 06/11/85   LIST 50,100 & LIST 50-80,135,710-750     & 2.9 DELETE N1[-N2][,N3...]  L This also is primarily an immediate mode command. It will delete L individual lines with single parameters or inclusive ranges with L numbers separated by a dash (minus). If no numbers are speci- L fied, the whole program text is deleted (but not program data - L this must be done with the CLEAR command). It can be used in L program mode also, usually to delete a range of line numbers in 0 preparing to OVERLAY another routine.  Example:  DELETE 30  DELETE 50-70 " DELETE 10-40,60-80      2.10 EXIT  L This statement stops program execution and exits from BASIC to L the MCR. All files are closed before exit. It is equivalent to 5 a STOP followed by a ^Z from the keyboard.  Example:  1000 EXIT      2.11 STEP [LINE #]  L This statement allows one to step through a program one line at a L time. The optional line number may be used to start at a differ- L ent line. If no line number is specified, execution resumes at L the line following the last stop. Note that if a branch is taken L the line being executed, the program will not stop until the next L line after the branch. The stop uses the same internal facili- ( ties as the ^B break feature.  Example:  STEP  STEP 510      2.12 CON [LINE #]  L This command allows one to resume execution of a program after L stopping it for interactive de-bugging. When used with the op- L tional line number, it functions just like GOTO with the excep-   L LOADING/RUNNING/SAVING PROGRAMS PAGE 2-5 K 06/11/85  L tion that the next available line after the one specified is used L if there is no exact match. If no line number is specified, exe- A cution is resumed at the line following the last stop.  Example:  CON  CON 100   K 06/11/85         / CHAPTER 3  4 PROGRAM STATEMENTS    L The subset of commands listed in this chapter is primarily used L to control the flow of program execution, reserve storage area ? for variables, perform arithmetic calculations, etc.     " 3.1 GOSUB N . . GOTO N  L Transfers program control to statement N, where N can be a posi- L tive integer constant or an expression which will be truncated to L an integer. Note that an expression will not produce correct re- . sults in the event of a resequence.  Example:  10 00L2TADATADATADATADATADATAGOTO 50  20 GOSUB A(I)     3 3.2 ON GOTO  L This statement transfers control to the Nth line number in the L list. The expression is evaluated as a normal BASIC expression L (floating point) and then truncated to get an integer value. If L this value does not correspond to a line number in the list, a L GOTO error happens. The transfer is handled just as in the stan- * dard GOTO and GOSUB statements.  Example: , 100 ON I GOTO 1000,1200,1400 3 210 ON X-A(C1) GOSUB 2000,2100,3000      3.3 RETURN  L Returns to statement following GOSUB which got you here. Other L statements may follow a gosub on a line. If the line containing L a GOSUB is interactively modified while the subroutine is in the L middle of executing, the GOSUB must occupy the same relative L statement position in the line before and after the modification:   L PROGRAM STATEMENTS PAGE 3-2 K 06/11/85  K i.e. it must be the first or third etc. statement in the line.  Example:  10 RETURN      3.4 DIM  L Declares size of arrays and strings. Also specifies strings as L either fixed or variable length. Arrays may have one or two sub-  scripts.  L String lengths are indicated in square brackets [ ] which are L followed by a 'V' if the string is to have variable length. In L the case of a variable length string, the length is the maximum L length which the string may assume. A string undeclared in a DIM L statement is assumed to be varible length with a max of 15 char- L acters. For strings declared in a DIM statement, the defaults B are 15 character length (or max length) and fixed type.  L Arrays have a zeroth element which is the same as the unsub- L scripted variable name: i.e. B(0) or B(0,0) is the same as B. L Unlike other versions of BASIC, arrays do not have any assumed E dimensions; they must be declared if they are to be used.  Example: $ 10 DIM A(5,5),B$[10] + 20 DIM C$[20]V(10,10),D$(5)      3.5 DIM #N,  L This statement declares certain variables as "virtual arrays" and L defines their allocation on the file whose LUN is the value of L "exp". A virtual array has its values stored on a file and main- L tains only a small part of the array in memory at any one time L (currently 512 bytes - 1 disk block). The DIM # statement only L defines the mapping of the array onto the file. The file itself L must be opened via an OPEN statement using the /BL switch. L Consequently, several DIM # statements may define several map- L pings of different variables onto the same file with an effect 6 similar to a FORTRAN EQUIVALENCE statement.  L The rules for mapping follow RSTS BASIC-PLUS. Essentially, no L array element may cross block boundaries. This implies that var- L iable sizes must be powers of two. Numeric variables automati- L cally fulfill this condition. Strings are allocated their speci- L fied size whether fixed or variable. Variable length strings are L null padded on disk, and when used in a program context are auto- L matically trimmed to their size without the null padding. Fixed L length virtual strings, as with standard fixed length strings, L are blank padded. If the allocation of a variable in a DIM # L00TUVW list would cause it to cross block boundaries because of previous   L PROGRAM STATEMENTS PAGE 3-3 K 06/11/85  L allocations in the list, it is started at the next disk boundary. L Subscripts may range up to 32767 and string elements up to 512 ' characters (in powers of 2).  Example: 2 20 DIM #3,A(20,100),A$[256]V(5000) 2 30 DIM #3,B(20000),B$[128]V(10000) . 40 DIM #7,X(100),Y(100),Z(200)      3.6 DEF  L One line function definition. The function name is formed with L the letters FN followed by any legal variable name. e.g.: FNA, L FNX1, FNM$ etc. Dummy arguments may be any numeric or string L variable with any number of arguments subject to fitting on one L line. The definition itself may be any legal numeric or string @ expression including system and other user functions.  L Function names returning string values must end in '$', those re- L turning numeric values must not. Functions are recursive, i.e. E they may use themselves as arguments in the function call.  L Function definitions create an internal pointer to the ASCII text L to the right of the equal sign. For this reason they should be L placed near the beginning of the program to avoid being moved L during debugging runs by insertions, deletions or changes to 3 lines preceding the function definition.  C Function definitions are deleted by the CHAIN statement.   Example: ! 30 DEF FNA1(A)=A2 ( 40 DEF FNC$(X$)=X$+"ABC" 5 50 DEF FNZ3$(X$,I)=SEG$(X$,I,LEN(X$))      3.7 LET  L This is the numeric assignment statement. It is also allowable L for string assignment. The word itself is optional in this ver- L sion of BASIC. A single variable name to the left of the '=' is L given the value of the numeric or string expression to the right H of the equal sign. Variable and expression types must match.  Example: # 20 LET A=EXP(10.34)  30 A$="ABC"+B$    L PROGRAM STATEMENTS PAGE 3-4 K 06/11/85   3.8 IF   Format: G IF THEN [ELSE ][ELSE  ] ; IF THEN " " : IF GOTO " " L If the logical expression is true (see Logical Expressions), then L the line number following the THEN or GOTO is branched to or all L statements following THEN up to the end of the line or an ELSE  are executed.  L If the condition is false, a matching ELSE is searched for. If L found, the line number following the ELSE is branched to or all L statements following the ELSE to the end of the line or the next L ELSE are executed. If no matching ELSE is found, execution con- ( tinues on the following line.  L IFs and ELSEs are paired like matching parentheses from the in- L side out. That is, an ELSE is matched with the IF most immedi- L ately preceding it in the line which does not already have a L matching ELSE. This implementation of IF-THEN-ELSE is intended  to match BASIC-PLUS.  Example: % 10 IF A > B THEN STOP 0 20 IF A$ <> B$ GOTO 110 ELSE 500 I 30 IF A >= 12.5 THEN 160 ELSE PRINT "A < 12.5" : GOTO 300       00L2TADATADATADATADATADATA 3.9 REM . . !  L The REMark statement is used to insert comments into the text of L the BASIC program. It has two forms: REM and !. All text fol- L lowing the REM or ! will be ignored by the BASIC interpreter up L to the end of a physical line. No other statements may follow on D the same line as they are treated as part of the comment.  Example: > 10 REM PROGRAM TO ADD ALL NUMBERS FROM 1 TO 10 5 20 ! AND DEMONSTRATE USE OF REM AND !      3.10 READ . . DATA  L The READ statement inputs data from the DATA statement. The L rules for INPUT apply to READ, but DATA lists are used as needed ; whereas INPUT inputs an entire line from a file.  Example: * 10 DATA 10.5,-76,1E7,FRANK 50 READ A,B,C,D$    L PROGRAM STATEMENTS PAGE 3-5 K 06/11/85   3.11 FOR   Format: ? FOR = TO [STEP ] L This statement sets up and controls execution of a FOR-NEXT loop. L Any numeric expressions may be used. The variable must be, > however, a simple floating variable (no subscript).  L The statements following the FOR statement until the associated L NEXT statement comprise the loop. The loop begins with the vari- L able set equal to EXP1 and continues by incrementing the variable L by EXP3 (defaulted to one) until it reaches or passes the value L of EXP2 (therefore the loop may not be executed at all). Final L value of the variable is its value the last time through the lo-  op.   - NOTE  H Changing the value of the variable within the loop will ? affect the number of times the loop is executed.    Example: ) 40 FOR I=1 TO 5.5 STEP .5 / 100 FOR J1=-.1 TO -1.5 STEP -.1      3.12 NEXT   Format:  NEXT L This statement terminates the loop begun by the immediately L preceding FOR statement with the same variable name. A concaten- L ated form of two NEXT statements is shown in the second example. L Note, however that it is not possible to branch to the second ? (implied) NEXT (NEXT J) without encountering NEXT I.  Example:  70 NEXT I  100 NEXT I,J      3.13 BREAK  L This command causes all output accumulated in the terminal buffer L to be printed in write-pass-all mode and with null carriage con- L trol. All carriage control must be supplied in the buffer by the L program. In order to accumulate text in the terminal's buffer, L PRINT statements with trailing commas or semicolons must be used. L Note: Execution of the BREAK command does not affect the status @ of flags which are set or cleared by the SET command.   L PROGRAM STATEMENTS PAGE 3-6 K 06/11/85   Example: 6 110 PRINT "START TAPE INPUT";CHR$(17);  120 BREAK     < 3.14 SET PROMPT/TRACE/PASS-ALL/ECHO/UPPER ON/OFF  L This statement is used to set or clear a number of system condi- L tions. The number of conditions is likely to increase in the fu- L ture as functionality is added. Conditions now serviced include:  " TRACE: Default is OFF. L SET TRACE is equivalent to the TRACE verb and should be used in L 00TUVWpreference to it because the TRACE verb is expected to disappear 2 in future releases of this interpreter.  $ PROMPT: Default is ON. L The PROMPT condition is used to turn the INPUT and INPUT LINE L question mark prompt on or off. The OFF mode is designed for L special screen or page formatting and may be used in conjunction " with the BREAK command.  " UPPER: Default is OFF. L Causes string variables read with an "INPUT" statement to be con- L verted to upper case. Useful for command parsers, specifying  file names, etc.  + PASS-ALL-INPUT: Default is OFF. L Causes reads to be done with TF.RAL set. Note that ctrl-C, L ctrl-O, ctrl-Q, ctrl-S and ctrl-X will have their usual effect L from a terminal, unless the terminal is set to be BINARY. Turned " OFF when program STOPS.  + PASS-ALL-PRINT: Default is OFF. L Causes writes to be done with TF.WAL set. Note that no carriage L control characters will be added to any output. Turned OFF when L program STOPS. ,fg 1 ECHO: Default is ON. If turned off, L causes terminal reads to be done with TF.RNE. No input will be 2 echoed. Turned OFF when program STOPS.  Example: " 210 SET PROMPT OFF 220 SET TRACE ON      3.15 ON ERROR GOTO  L This statement sets the line number for a transfer on any type of L error. It does not cause any branching when it itself is execut- L ed, rather it changes the processing of errors in the BASIC in- L terpreter. If this statement has been previously executed with a L non-zero line number specified, no error message will be printed   L PROGRAM STATEMENTS PAGE 3-7 K 06/11/85  @ and a branch to the specified statement will be made.  L Normal error processing will be restored after the branch is made L or by executing the statement with a zero line number. Thus at L least one ON ERROR GOTO must follow the last error and precede 9 the next one for user error handling to occur.  L This processing is designed to minimize the chance of an endless L loop occurring because of an error in the error handling routine. L Precise information as to the cause of the error can be had from : the functions ERR, ERL, FCS detailed elsewhere.  Examples: & 100 ON ERROR GOTO 1500 I 510 ON ERROR GOTO 0 ! THIS RESTORES NORMAL ERROR HANDLING     ) 3.16 SLEEP  L The SLEEP command causes the executing program to pause for the L specified amount of time. any valid arithmetic expression may be L used to specify the time magnitude. However, a negative result L will give an error and zero will be treated as a no-op. D Truncation of the floating expression value will be used.  L The unit of time may be specified as TICKS, SECONDS, MINUTES, L HOURS or any abbreviation of those words with the same first C letter. No units specification will default to SECONDS.  Examples: $ 510 SLEEP 10 SECONDS  105 SLEEP 2 M  632 SLEEP 25     ( 3.17 WAIT  L The WAIT command sets parameters for the timeout of terminal in- L put. The format is similar to the SLEEP command. Note that no L explicit action is taken on execution of the WAIT command. It is L used only to set the length of time to wait for terminal input / before causing a00L2TADATADATADATADATADATA timeout error trap.  L The user may check for the occurence of a timeout error by use of L the ON ERROR GOTO command and then check the error code, current- L ly 44. (decimal.) Appropriate action may be taken at this point  (EXIT for example).  K The no timeout condition may be restored by using a 0 magnitude.  Examples: J 400 WAIT 40 S :! ALL TERMINAL INPUT TO TIME OUT AFTER 40 S @ 500 WAIT 0 :! RESTORE TO NO TIMEOUT CONDITION    L PROGRAM STATEMENTS PAGE 3-8 K 06/11/85  & 3.18 PRIORITY  L The PRIORITY command causes the interpreter to change its priori- L ty to that specified in the following expression. Priorities up  to 100 are allowed.  Example  500 PRIORITY 30     ! 3.19 TRACE ON AND OFF  L This statement turns the trace feature on and off. When the L trace is on, all transfers out of the normal flow of normal pro- L gram execution are printed on the user's terminal. This can be L used in either immediate mode or program mode (for selective  tracing).  Example:  TRACE ON  READY  RUN OR  100 TRACE ON  ...  200 TRACE OFF   K 06/11/85         / CHAPTER 4  5 ARITHMETIC FUNCTIONS    L The functions listed in this chapter are primarily arithmetic in L nature. They return arithmetic values or certain system values ( such as the Date or the Time.      4.1 RND  L This function returns a random number evenly distributed between L 0 and 1. The dummy argument has no effect on the value returned. L The sequence of numbers returned may be changed by using the RAN-  DOMIZE statement.  Example:  120 X=RND(0)      4.2 RANDOMIZE  L This statement resets the random number generator to a new start- L ing point. The effect of this is to make successive runs of the L same program return different values for the RND function. A L program should first be debugged without the RANDOMIZE statement . and then add it for production use.  Example:  50 RANDOMIZE      4.3 ABS  L This function returns the absolute value of the numeric expres-  sion argument.  Example:  10 A=ABS(A1+5)    L ARITHMETIC FUNCTIONS PAGE 4-2 K 06/11/85   4.4 SGN  L +1 returned if argument > 0; -1 if argument 0; 0 returned if  argument = 0.  Example:  10 A=SGN(A1)      4.5 INT  L Returns greatest integer in the argument. Note: INT(-1.5)=-2  etc.  Example:  10 A=INT(X)     ' 4.6 LOG (NATURAL & BASE 10)   LOG K Returns the natural log of the value of the argument expression.  Example:  30 A=LOG(X)   LOG10 L Returns the base ten (common) log of the value of the argument  expression  Example:  50 B=LOG10(X)      4.7 EXP  @ Returns the base e exponential of the argument v00TUVWalue.  Example:  10 A=EXP(X)      4.8 SIN COS  L These functions return the sine and cosine functions of the argu- : ment values. The input argument is in radians.  Example:  20 S=SIN(X)  30 C=COS(Y)    L ARITHMETIC FUNCTIONS PAGE 4-3 K 06/11/85   4.9 ATN  L Returns the arctangent function of the argument value. The re- & turned value is in radians.  Example:  10 A=ATN(X)      4.10 SQR  L Returns the square root of the argument value. If the argument 0 value is negative, an error is given.  Example:  20 S=SQR(X)      4.11 NRC  L This function calculates the number of records in the file number L which is specified in the argument. The file must be a fixed L length record type. A -1 returned indicates a non-existent FDB. ; A -2 returned indicates variable length records.  Example:  10 A=NRC(4)     $ 4.12 ERR . . ERL . . FCS  L These functions return respectively: the number of the last er- L ror, the line number of the last error, and the FCS error code L (negative) for the last FILES-11 related error. An argument for L the function must be included atlhough it will usually be zero. L If a non-zero argument is used, it will be treated as a word off- L set from the interpreter location containing the normal informa- L tion for that function. Thus a non-zero offset should only be @ used in conjunction with a map and assembler listing.  Example:  100 A=ERR(0)  110 B=FCS(0)  120 CON ERL(1)      4.13 COR  L This function returns the free core (in bytes) minus the value of  the argument.  Example:   L ARITHMETIC FUNCTIONS PAGE 4-4 K 06/11/85   100 A=COR(255)      4.14 DAT$  L An 8 character string is returned containing the date in the form L MO/DA/YR. if the argument is absent or a single character zero, L the system date (today's date hopefully!) is returned. If the L argument is a positive value, the number is interpreted as the L day of the century, and a corresponding date string is returned. L The positive argument is interpreted modulo 36524 (the number of L days in a century). If the argument is a zero or negative value L (other than a single character '0'), then a null string is re-  turned.  Example: 4 50 A$=DAT$(0) : ! RETURN SYSTEM DATE $ 60 PRINT DAT$(12752) 4 70 A$=DAT$() : ! RETURN SYSTEM DATE      4.15 DDAT$  L This function returns a string containing the DEC standard date L in the form: DD-MMM-YY. The string may be either 8 or 9 chars L depending on the number of digits in the day. The argument is ? interpreted in the same way as in the DAT$ function.  Example:  40 A$=DDAT$(0)      4.16 TIM$  L Returns time in an 8 character string in the form HR:MN:SC. If L the argument is absent or a single character zero, the system L time is returned. Otherwise, the argument is evaluated. If ne- L gative, a null string is returned; if zero or positive, the L number is 00L2TADATADATADATADATADATAinterpreted as the number of seconds since midnight and L the corresponding time is returned as a string. The number is 7 interpreted modulo one day worth of seconds.  Example:  30 A$=TIM$(0) 3 40 A$=TIM$() : !RETURN SYSTEM TIME G 50 A$=TIM$(A-B) : ! RETURN TIME OF DAY CORRESPONDING TO 9 ! A-B SECONDS SINCE MIDNIGHT    L ARITHMETIC FUNCTIONS PAGE 4-5 K 06/11/85   4.17 DCEN  L This function accepts a single string date argument and returns a L number which is the day of the century. The date argument may be L the common slash notation of MM/DD/YY, the DEC standard notation L of DD-MMM-YY or the undelimited form of MMDDYY. The resulting L number is the number of the day in the century with 1 correspond- L ing to 1-Jan-00, and 36524 corresponding to 31-Dec-99. This L number is thus suitable for calculating differences between two L dates. A thorough check is made of the date string before the L conversion and an error code will be returned instead of the day L of the century in case of an error. Therefore this function may L be used to verify dates which are input from a user program. L This routine is programmed to account for 24 leap years per cen- L tury, omitting a leap year during the '00' year. The error codes # returned are as follows: ) 0 = Null string supplied $ -1 = Bad date format % -2 = Bad day of month 2 -3 = Bad month (not in range 1-12) 2 -4 = Bad year (not in range 0-99)  Examples: & 150 A=DCEN("12/15/46") & 160 B=DCEN("5-AUG-72") $ 170 C=DCEN(DDAT$(0)) $ 180 D=DCEN("121546")      4.18 SEC  L This function accepts a single string time argument and returns a L number which is the number of seconds since midnight. The time L string must be in the form HH:MM:SS in 24 hour notation. The L string is checked for validity and if valid, a positive (or zero) L numeric value is returned. If an error is detected, a negative 0 or zero value is returned as follows: 7 0 = Null string argument (or 00:00:00) $ -1 = Bad time format -2 = Bad seconds -3 = Bad minutes  -4 = Bad hours  Examples: % 210 A=SEC("12:05:31")  220 B=SEC(A$)   K 06/11/85         / CHAPTER 5  3 STRING FUNCTIONS    L The functions listed in this chapter are primarily character L string oriented. They provide wide capability for examining and L altering variables which contain character strings, and for 1 conversion from/to other data formats.      5.1 INX . . POS   Format: 0 POS(STRING1,STRING2 [,P1] [,P2]) L This function computes the position of STRING2 in STRING1 start- L ing at optional position P1 (P1 assumed to be 1 if not speci- L fied). A second optional parameter P2 specifies the final char- L acter position. If it is not specified, it is assumed to be the ? end of the first string. INX and POS are identical.  Example: # 10 A=POS("ABC","B") % 20 X=POS(A1$,A2$,5,7)      5.2 LEN  L This function computes the length of00TUVW a single string expression  argument.  Example:  30 X=LEN(A$)      5.3 VAL  L This function takes an ASCII string containing a legal numeric 9 expression and returns a floating point value.  Example:  10 A=VAL(A$)    L STRING FUNCTIONS PAGE 5-2 K 06/11/85   5.4 OCT  L This function takes an ASCII string containing a legal octal in- C teger representation and returns a floating point value.  Example: 10 A=OCT("1777")      5.5 AR5  L This function returns a numeric value corresponding to the DEC L RAD50 conversion of the first three characters of the argument L string. If less than three characters are supplied, the result L is as if the input were blank padded at the end. All legal RAD50 ? characters including blank and period are converted.  Example: ! 100 A%=AR5("ABC") ! 110 B1=AR5(A$+B$)      5.6 ASC  L This function returns the numeric value of the first ASCII char- K acter in the string argument. For a null string, 0 is returned.  Example:  10 I=ASC("A")      5.7 CHR$  L Routine to return a one character string corresponding to a num-  eric ASCII value.  Example: " 10 LET A$=CHR$(65)     ( 5.8 SEG$ SBS$ RIGHT LEFT MID   Format: " SEG$(STRING,A[,B]) " SBS$(STRING,A[,B]) ! MID(STRING,A,[B])  RIGHT(STRING,N)  LEFT(STRING,N) L Where 'STRING' is a legal string expression and A is the first L character in the string to be selected. In SEG$, B is the last L character to be included in the output string; in SBS$, it is   L STRING FUNCTIONS PAGE 5-3 K 06/11/85  h L the number of characters to include. If not specified in either L case all characters to the end of the string are included. A L null string is returned when the first character position is not L within the source string. When the ending position or length L places one beyond the end of the source string, all characters to L the end are included with no blank fill. If the first position L is after the final, a null string is returned. If A is less than L 1 a null string is returned. If B places the final character po- L sition past the end of the string, it is as though the ending po- sition was specified.  .L RIGHT LEFT and MID are provided for compatibility with other ver- L sions of BASIC (in particular RSTS BASIC-PLUS). Note that the L names are not followed by '$' even though the results are string L values. These functions return the right-most or left most N L characters of the string respectively. MID returns B characters, L starting at position A, and is thus a synonym for SBS$. Note L that some BASIC RIGHT functions return the N thru end characters L of the string. If programs expect this action, the RIGHT(N) = function should be replaced by a SBS$(N) function.  Example: " 10 A$=SEG$(B$,1,5) 30 X$=SBS$(Y$,6)      5.9 PIECE$   Format: 0 PIECE$(STRING1,STRING2,N1 [,N2]) L PIECE$ inspects a specified string (STRING1) and takes from it L 00L2TADATADATADATADATADATA that substring which lies between two specified occurrences of a L particular dividing string (STRING2). The resulting substring L begins immediately after the N1 minus one occurrence of the di- L viding string and ends immediately before the N2nd occurrence (or & N1st if N2 is unspecified).  Example: XK 110 M$=PIECE$("12/1/77","/",1) :! EXTRACT MONTH FROM STRING TI 120 A$=PIECE$("12/1/77","/",1,2) :! EXTRACT MONTH AND DAY   N ]  5.10 STR$  L Numeric to character string conversion. (No leading or trailing J blanks.) The Ascii string represents the value of the argument.  Format:  STR$(X) .5 Where 'X' is any legal numeric expression.  Example: .& 30 A$=STR$(EXP(X)+1.4)    L STRING FUNCTIONS PAGE 5-4 K 06/11/85    5.11 LTR$ TRM$  L Leading and trailing blank trim functions. The resulting string L is the argument string without leading blanks for LTR$ or without $ trailing blanks for TRM$.  Example:  30 A$=LTR$(A$)  40 B$=TRM$(C$)      5.12 OCT$ OCS$  L A single numeric argument is converted to ASCII representation of L an octal integer. The numeric expression is evaluated and trun- L cated to an integer prior to conversion. OCT$ produces an un- L signed string, while OCS$ produces a signed string. Magnitudes A are limited to those representable in one PDP-11 word.  Example: " 40 PRINT OCS$(-53) # 50 PRINT OCT$(I*16)     - 5.13 R5A$ .  TL The RAD50 source value (value range of one integer word) is con- * verted to a 3 character string.   Example: . 110 A$=R5A$(A)  120 B$=R5A$(X%)      5.14 FRMT$(X,W[,D])  L This function creates a string from a number allowing control L over the total number of digits and the number of digits to the L right of the decimal point. The value to be converted is X, the L number of total digits (including sign and decimal point) is W L and the number of digits to the right of the decimal point is D. L If D is unspecified, then the number produced is an integer with L no decimal point. If D is zero, then the number produced will L have a decimal point but no numbers to the right. If a negative L number is given for D, then the output will be filled with W as- L terisks unless W is zero or less. If W is less than or equal L zero, in any case then a null string will be returned. If W is L positive non-zero and unable to fit the number, a string of W as- L terisks will be returned. Note that meaningless digits will be L produced if more than 6 or 7 are asked for. If only significant   L STRING FUNCTIONS PAGE 5-5 K 06/11/85   J digits are wanted, use STR$. Numbers are rounded for printout.  Example: % 130 A$=FRMT$(A+6,5,2) ( 140 B$=FRMT$(12.75+Z1,7)      5.15 RJS$ . . LJS$   Format:  RJS$(B$,I)  LJS$(B$,I) L Where I is the length of the returned string with B$ right or L left justified in it and with leading or trailing blank fill if L necessary. If B$ is longer than I characters, then the rightmost 5 or leftmost I characters will be returned.  Example: 00TUVW 40 A$=RJS$(B$,9) 70 A$=LJS$(B$,5)  O   # 5.16 SPACE$ . . STRING$ -  Format . SPACE$(I)  STRING$(C$,I) L Where I is the length of the string to be created. In the case L of SPACE$, a string of blanks is created. For STRING$, a string L of characters matching the first character of C$ is created. If < I is zero or negative, a null string is returned.  Examples: ! 120 A$=SPACE$(40) & 130 B$=STRING$("-",40)     1 5.17 TAB  L The TAB function is used only in the print statement to space to L a given column (the value of the numeric argument). The column L specified is the one in which subsequent printing will begin. L Columns are numbered starting with 1. If the specified column is L greater than the width of the device being printed on, the tab is L calculated modulo the device width. If the specified column is L less than the current print position, the function is ignored. 1 TAB is ignored on binary output files.  Example: E% 10 PRINT A;TAB(20);A$  - K 06/11/85    P      / CHAPTER 6  P7 I/O & FILE MANIPULATION    L The commands listed in this chapter are primarily concerned with L Input and Output. They provide the capability of opening files, L reading/writing data in various formats, and closing the files  when done. L     6.1 RESTORE  L Resets data pointer to start of data statements. For files, the L RESTORE statement may be followed by a # sign and an arithmetic L expression giving the file number. A sequential file open for L read only will be reset to the start. To read a sequential file L currently being written, it is necessary to close and then  re-open for read.  Example:  10 RESTORE      6.2 PRINT A  Print statement.  Format: ( PRINT [#N,]V1,V2,V3 etc. or ( PRINT #N@R,V1,V2,V3 etc. L Where N is an optional file number and V1, V2, V3, etc. are any L legal numeric or string expression. In the second form R is a L random access record number expression. It may have any value up L to the maximum allowed in a double precision signed integer. L Floating point values are truncated before use. The file N must L have been opened for random access via the /RN switch in the OPEN  statement.  L When expressions are separated by commas, results are printed in L fields of 14 characters each. When expressions are separated by L semicolons, results are printed next to each other without any L spaces added. A trailing semicolon will suppress . When L printing with comma separation, as many fields are allowed as can  - L I/O & FILE MANIPULATION PAGE 6-2 K 06/11/85   L fit on the printing device. Note that numeric values, when con- L verted in a PRINT statement normally have a space at each end. 0 To avoid this, use the STR$ function.  L On binary files, the following conditions hold: TAB is ignored, L no "field" justification is performed and all data list items L must fit into the existing buffer. Floating values are stored as L four consecutive bytes which are not word aligned.00L2TADATADATADATADATADATA Strings and L numeric values are packed together and may be combined in any L order. It is up to the user to keep track of the internal sto- L rage arrangement for future use with INPUT or other non-BASIC  programs.  mL A synonym for PRINT is "?" primarily for convenience in immediate  mode use.  E Example: c) 50 PRINT A,3.5,"HELLO";A$ E' 60 PRINT #3,EXP(.5);XY; o i h R A 6.3 INPUT a f Format: ) INPUT [#N,] V1,V2,V3 etc. e or n( INPUT #N@R,V1,V2,V3 etc. L Where N is an optional file number and V1, V2, V3 etc. are legal L string or numeric variable names. The second form follows the L rules for random access described for the PRINT statement. L Numeric data must be separated by commas or spaces, successive L string variables must be separated by a comma after the required L number of characters have been typed in. A character legality L check is performed to ensure that all characters are between oc- L tal ASCII codes 40 and 137 inclusive and 11 (tab). If a "SET L UPPER ON" command has been issued, lower case ascii will be con- verted to upper case.  L For input from the terminal (no file number), a prompt string L (only string defined in quotes allowed) may be specified before L the variable list. This is equivalent to a PRINT followed by an + INPUT. See third example below.  L For binary files the following conditions hold: four bytes are L used for each numeric (floating) variable, strings use as many L bytes as they have been dimensioned for. More data than vari- L ables is not considered an error. Insufficient data is an error L with the following exception: a variable length string will have L its length shortened to the available data if data runs out, and L a fixed length string will be blank filled. If data runs out L while filling a numeric variable, the results are unpredictable ? and in any case terminate the program with an error.  Example:   lL I/O & FILE MANIPULATION PAGE 6-3 K 06/11/85o n " 30 INPUT #3,A1,B1$ ) 50 INPUT #4@R+5,X1,X2,A1$ tE 80 INPUT "WHAT IS YOUR NAME",N$ : ! READ NAME INTO N$ e o n e s 6.4 INPUT LINE  oL This is the same as the input statement except that only string L variables are permitted in the input list and no character check- L ing is performed. Thus no delimiters are recognized and string L variables are filled sequentially to their dimensioned length L whether fixed or variable. Random access is the same as for IN- B PUT. For binary files INPUT LINE is the same as INPUT.  Example: $ 30 INPUT LINE #3,A1$  a o m a) 6.5 SCRATCH l L The SCRATCH command must have a file specifier with an explicit L version number in order to delete a file. The default file spec- $ ifier is: SY:PROGRAM.BAS  Example: $ SCRATCH "DATA.DAT;3" ) 50 SCRATCH "DK1:DAT3.TMP" r t  a m 6.6 OPEN  " OPEN command processor.  Form: J OPEN #EXP,STRING (WHERE STRING CONTAINS FILESPEC/SWITCHES)  Allowed switches: E /FX for FIXED LENGTH records (VARIABLE assumed) @ /RN for RANDOM ACCESS (SEQUENTIAL assumed) H /LN:LEN to specify buffer length in bytes (80 assumed) E /EN:LNO to specify line00TUVW no. for control xfer on EOF n@ /BN to specify BINARY file (ASCII assumed) F /BL for virtual array files (not to be used with  above) 5 The following switches specify file access nF They are mutually exclusive except for /SH (shared access): 8 /RO for read only access (default) > /WR for write access (creating new file) 8 /UP for update (read,write,append) 7 /MO for modification (read,write) v) /AP for append only m9 /SH to set shared access bit in FDB g T n FL I/O & FILE MANIPULATION PAGE 6-4 K 06/11/85   L Possible values of EXP range from 3 to 16. Up to 6 record type L files (not /BL) may be open simultaneously. Any number of block L mode files (up to 14) may be open simultaneously subject only to L total memory availability. The default device for all LUNs is  SY0:.   Examples: $ 50 OPEN #4, "LP:/WR"  60 OPEN #3,N$ r h o w 6.7 CLOSE N1[,N2...]  L This command closes a user data file whose number is N1, N2 etc. L Note that no # sign precedes the number. If used with no file - number, all user files are closed. l Example:  60 CLOSE 4  70 CLOSE I1  95 CLOSE     ) 6.8 IF END [#N] THEN  bL This statement is used to reset the end of file branch on a given L file or without the "#N", it sets the terminal end of file L branch. The specified file must have been opened with the possi- L bility of being read from (i.e. cannot be /AP or /WR in sequen-  tial mode).  Examples: K 100 IF END THEN 1500 :! SET TERMINAL END OF FILE LINE NO. K 120 IF END #3 THEN 2100:! SET END OF FILE LINE NO. ON LUN 3 h T e K 06/11/85  y h    i  e / CHAPTER 7 L 5 LOADABLE SUBROUTINES  s o sL This chapter is primarily concerned with the operation of user L written MACRO subroutines. The capability of calling a machine L language subroutine to perform some complex calculation can pro- L vide much simpler program operation, and/or significantly incre- & ase the speed of operation.  yL Several special MACRO subroutines proved so useful that they were L made a permanent part of BASIC and as such do not have to be lo- < aded. Those routines are listed in this chapter.  eL A sample of a MACRO subroutine which will reverse a character L string along with a description of the internal BASIC subroutines B it uses is included in Appendices B & C of this manual.  s e r a& 7.1 LOAD  tL This command loads the specified file as a user callable subrou- L tine. The default extension is BTK. See Append. B for a sample # user loadable subroutine b Example: b! 610 LOAD "REVERS"  t , e a 7.2 UNLOAD  L This command unloads all user assembly routines loaded by the LO-  AD command.  Example  500 UNLOAD   R CL LOADABLE SUBROUTINES PAGE 7-2 K 06/11/85   T* 7.3 CALL "NAME"(ARG1,ARG2,...)  tL The CALL statement is used by the BASIC user to call specially L written MACRO00L2TADATADATADATADATADATA subroutines which will perform special functions. L The called routine name must be enclosed in quotes as above, or L reside in a string expression which is enclosed in parentheses. L The NAME may be up to 6 characters in length. The enclosing par- L entheses are necessary to keep the argument list which follows > from appearing as a subscript to a string variable.  L The arguments can be string or numeric variables or expressions. L In the case that a value is to be returned, the argument must be L a simple variable (may be subscripted). For values which are L passed, either expressions or variables may be used. The vari- L ables and expressions used in the argument list must match the ? type (string or numeric) expected by the subroutine. R L User routines must preserve the text pointer (R1) and on exit, if L an argument list is present, must position it just past the close F parenthesis. See APPEND. B for a sample loadable routine.  Example: w$ 100 CALL "ABC"(A$,B) ( 120 CALL (B$)(A-X,Y$+Z$)  n l e i 7.4 INSTRG  = Subroutine to insert a string into another string. c BASIC CALL: / 120 CALL "INSTRG"(S$,E$,P [,L]) a WHERE: iA S$ = STRING VARIABLE INTO WHICH INSERTION IS MADE i5 E$ = STRING EXPRESSION TO BE INSERTED 0 P = POSITION TO START INSERTION 5 L = OPTIONAL MAX LENGTH OF INSERTION L If L is not specified, the length of E$ is used by default for L the length of the insertion. If L is specified, justification of L E$ in a field of that size is performed. A positive value is L left justify, negative means right justify. This routine is at L least three times as fast as the "cut and paste" method using the L SBS$ function. If the "cut and paste" is formatted as a user de- L fined function, the speed increase is a factor of seven. G Therefore it is almost always preferable to the SBS$ method. r s h  o 7.5 OPEN LIBRARY   Format: 4 50 OPEN LIBRARY #N, L This command functions similarly to the standard OPEN command ex- L cept that a MACRO library file is opened for question text output   L LOADABLE SUBROUTINES PAGE 7-3 K 06/11/85  L and other question processing subroutines invoked by the CALL L statement. A LUN must be used that is not already in use and is L one of the allowable numbers as for the standard OPEN. No L switches are allowed as all file options are determined internal- . ly for handling the library format.  Example: 0 100 OPEN LIBRARY #5,"QUESLS.MLB" & 200 OPEN LIBRARY #3,A$  p e t 7.6 QUESTION DISPLAY  eL A series of routines can be used for displaying questions at a L terminal for interactive data entry applications. The text of L the questions themselves resides in a file made by the RSX li- L brarian (LBR) and formatted as a MACRO library (.MLB extension). D There are three types of questions that can be displayed: * 0) Multi-line text display 4 1) Single line question (text input) * 2) Multiple choice display  OL The questions are formatted as macros with the name of the ques- L tion being the name of the macro. There is a single argument to L the macro, a number which is the type as specified above except L in the case of type 2, it is the total number of choices for that ? 00TUVW multiple choice question (can never be less than 2). e lL The question names are used for linking of multiple choice ques- L tions and for question replacement by the librarian. Question L names may be up to 6 characters in length. The characters must L be legal RAD50 characters i.e. alphanumeric, period and dollar L sign. After display, the input of a response is left to the user  program.   MULTI-LINE TEXT  L The multi-line text question (need not be an actual question) is L reproduced exactly as entered with the carriage (cursor) positi- L oned to the start of the next line. The text display is termi- L nated when the .ENDM directive is encountered as the first entry > on a line other than space or tab. Type code is 0.  Example: i! .MACRO MULTXT 0 h' THIS IS AN EXAMPLE OF A c, MULTIPLE LINE TEXT QUESTION. 4 IT MAY BE USED AS A QUESTION OR JUST 5 TO PRINT OUT SOME INFORMATION FOR THE a1 PROGRAM USER. ANY NUMBER OF LINES y MAY BE USED.  .ENDM h i SINGLE LINE QUESTION  t  L LOADABLE SUBROUTINES PAGE 7-4 K 06/11/85   L This type of question is usually used to solicit text information L from the user (name, age etc.). Only one line is printed and the L carriage (cursor) is positioned at the end of the line. Any L further lines of text entered for this question type will not be  displayed. i Example: ! .MACRO SINGLE 1 i+ TYPE YOUR NAME: LAST, FIRST  .ENDM s l# MULTIPLE CHOICE QUESTION e AL This type of question is used to solicit a number response which L is selected from a finite set of choices displayed to the user. L A succeeding question may be selected depending on the response L to the displayed question. Thus multiple choice branching struc- L tures may be set up. The character used to separate the response L text from its associated branching question name is the back- L slash. The number of choices is the number following the ques- ( tion name in the .MACRO line.  Example: p! .MACRO MULCHC 3 f) SELECT YOUR STATE OF MIND e GOOD\MULCH1  FAIR\MULCH2  TGIF\MULCH3 a .ENDM n U? COMMON INFORMATION FOR ALL QUESTION PROCESSING CALLS r rL Sbroutines are provided in three different forms to perform a H number of different functions. The functions are as follows: # 1) Display question ' 2) Position to question q' 3) Return question text % 4) Return answer text l' 5) Return question name  v= The three forms of the subroutines are as follows: 5 1) 'M' form: perform function by name oI 2) 'C' form: perform function on question linked to prev. o quest. G 3) 'R' form: perform function on last question accessed  L In general the 'M' form and 'C' form of the subroutines reset the L last question accessed. The 'R' form, since it acts on the last L question accessed, does not change it. The one exception is the L 'C' form of the return question name function (CQNAM). It does 1 not change the last question accessed.  L The 'M' form of the subroutines uses a name specified as an input L string argument (3rd parameter) to position to the specified 9 question and then perform the required action. 1 N00 L2TADATADATADATADATADATAL The 'C' form uses the last question accessed (positioned to) in   tL LOADABLE SUBROUTINES PAGE 7-5 K 06/11/85o l L order to position to another question. To do this, the last L question must have been a multiple choice question and a link L must be provided for the answer number specified as the third , parameter in the subroutine call.  L The 'R' form uses the previously accessed question (whether by L 'M' or 'C') to perform its action. The third parameter is a dum- my numeric parameter.  e GENERAL PARAMETERS Y mL Following is a description of the symbolic parameter names used L in describing the various subroutine calls. They are, of course, L replaced in the actual calls by legal BASIC expressions in the L case of input values and by legal variable names in the case of  output values. eG LUN: Input value containing LUN used in OPEN LIBRARY , command eI STATUS: Output value returning status of action requested pJ +2 or greater = max response # for multiple choice  ques. oI +1 = question was a text input type (single line) tA 0 = question was multi-line info display "I -1 = LUN not found (OPEN LIBRARY not done on this s LUN) 2 -2 = FCS error during read J -3 = Question not found (for a variety of reasons) H NAME$: Input string containing question name ('M' type) K ANS: Input numeric value with answer to prev. ques. ('c'  type) 6 DUMMY: Dummy numeric input ('R' type)   - NOTE A /H The value of -3 returned for STATUS can indicate a varie- H ty of conditions. For 'M' type calls, it means the spe- H ciied question name is not present in the library file. H For 'C' type calls, it will be returned if the previous H question was not a multiple choice type, if no linked H question was recorded for the specified answer, or if the H linked question specified was not present in the library.  c h    & 7.7 MDIS . . CDIS . . RDIS  i& DISPLAY QUESTION SUBROUINES  Formats: e= CALL "MDIS"(LUN,STATUS,NAME$[,STRING$,COUNT]) ,; CALL "CDIS"(LUN,STATUS,ANS[,STRING$,COUNT]) s= CALL "RDIS"(LUN,STATUS,DUMMY[,STRING$,COUNT])   L LOADABLE SUBROUTINES PAGE 7-6 K 06/11/85E / VL The named question, linked question or previous question will be L displayed respectively by the above three subroutine calls ac- L cording to the following rules. If the optional parameters are  not specified:  L MULTI-LINE INFO DISPLAY: Text is displayed as typed. Carriage L (cursor) is positioned to the start of the next line. All lines K up to the line with a leading .ENDM directive will be displayed.  vL SINGLE LINE TEXT INPUT: The line of text is displayed with the L carriage (cursor) to the immediate right of the text just displa- L yed. Any spaces required after the text must be either included L in the question text or added from the program via a PRINT state-  ment.  eL MULTIPLE CHOICE QUESTION: For this type question the first line L is displayed as typed. Subsequent lines are displayed with a L leading space and a number which starts at one and in00TUVWcreases by L one for each succeeding line. The number is then followed by a L right parenthesis ')' and another space and then the text for L that line. After all lines have been displayed, the carriage E (cursor) is then positioned to the start of the next line.  m l- NOTE c aH The total number of lines displayed is the number given H as the argument on the .MACRO line plus one and is inde- H pendent of where the .ENDM line occurs. This may lead to H not displaying all of the typed in question text or the H output of garbage if the question has not been typed in  properly.   L If the optional parameters are specified (both must be present),  the following holds: 1 2L MULTI-LINE INFO DISPLAY: If N is the number specified in COUNT, L then the text is displayed preceded by N characters of STRING$ L for each line until the characters in STRING$ are exhausted or K the display is complete (normally these should happen together). p rL SINGLE LINE TEXT INPUT: The line of text is displayed as before 8 but with N chracters of STRING$ preceding it.  aL MULTIPLE CHOICE QUESTIONS: In this case the first line is dis- L played as above, but the subsequent lines (answers) are each pre- . ceded by N characters from STRING$.     L LOADABLE SUBROUTINES PAGE 7-7 K 06/11/85i q a& 7.8 MPOS . . CPOS . . RPOS  + POSITION TO QUESTION SUBROUTINES  Formats: T- CALL "MPOS"(LUN,STATUS,NAME$) #+ CALL "CPOS"(LUN,STATUS,ANS) o- CALL "RPOS"(LUN,STATUS,DUMMY) L In the first two cases, a new question is positioned to (ac- L cessed) and a status (count) value returned. In the last case, L the positioning remains unchanged, but the status (count) is re-  turned.  e t p) 7.9 MQTXT . . CQTXT . . RQTXT  + RETURN QUESTION TEXT SUBROUTINES a Formats: 6 CALL "MQTXT"(LUN,STATUS,NAME$,STRING$) 4 CALL "CQTXT"(LUN,STATUS,ANS,STRING$) 6 CALL "RQTXT"(LUN,STATUS,DUMMY,STRING$) L The question text of the named, linked or current question is re- L turned in the variable STRING$ (must be a single variable name). L In the case of a multi-line info display (type 0), the first line  is returned. U N A G* 7.10 MATXT . . CATXT . . RATXT  ) RETURN ANSWER TEXT SUBROUTINES  Formats: 0; CALL "MATXT"(LUN,STATUS,NAME$,STRING$,ANS1) 9 CALL "CATXT"(LUN,STATUS,ANS,STRING$,ANS1) e; CALL "RATXT"(LUN,STATUS,DUMMY,STRING$,ANS1) L The text corresponding to ANS1 is returned in STRING$ for the L named, linked or current question. In the case of a multi-line L info display, the first answer corresponds to the second line of L text and so on. Note that there is no way to discern in advance L how many lines there are in this case. Thus the user program L should test for the presence of '.ENDM' in the returned line. No L internal restraints are placed on the value of ANS1 and so parts K of following questions may be returned if care is not exercised.    . 7.11 CQNAM . . RQNAM  + RETURN QUESTION NAME SUBROUTINES r Formats: 4 CALL "CQNAM"(LUN,STATUS,ANS,STRING$) 6 CALL "RQNAM"(LUN,STATUS,DUMMY,STRING$) L In the first case, the name of the question linked by ANS is re- L turned in STRING$. Note that the linked qu00L2TADATADATADATADATADATAestion is not positi- L oned to, thus enabling a user program to record multiple linked  L >L LOADABLE SUBROUTINES PAGE 7-8 K 06/11/85e o L names without having to reposition to the original question. In L the second case the current question name will be returned in  STRING$. h e  e 7.12 SPAWNB  iD Subroutine to spawn a task using the IAS spawn directive.  FORMAT: ! CALL "SPAWNB"(C$ [,S]) L This routine passes the MCR command line in C$ to the operating L system. Commands to another BASic program, PIP, etc may be L passed in the command line just as with MCR. The exiting status H of the spawned task is returned in the (optional) variable S.  rL If the STATUS variable is present, the issuing BASIC program will L STOP, and continue when the SPAWNED task exits. If no STATUS L variable is present in the call, BASIC execution continues imme-  diately.  L During the time that BASIC is STOPPED for the SPAWNED task, con- L trol-C's will not have the normal effect. Also BASIC detaches E the terminal so PIP lists to the terminal etc. can occur.   - NOTE f rH SPAWN knows about things like DIR, PRInt, etc., but the H task in question must be installed in the system. The H auto-install function for infrequently used tasks does H not work for SPAWNB. If SPAWN detects that the requested H task is unavailable, it returns the system failure status 4 (currently -2 -- Task not installed.)  u  s n iK 06/11/855 h     e  o s0 APPENDIX A  4 BASIC ERROR VALUES   e & 0. User storage overflow 8 1. Unrecognized statement - check spelling & 2. Illegal GOTO or GOSUB ? 3. Illegal character in or terminating input line r% 4. RETURN without GOSUB ' 5. Badly formed subscript ' 6. Subscript out of range :' 7. Mismatched parentheses & 8. Illegal LET statement 2 9. Illegal relational operator in IF  10. Illegal IF d 11. Illegal PRINT . 12. Device or file error on input  13. Bad dimension 9 14. Not enough room in storage for the array $ 15. Badly formed define 7 16. Illegal line number or dimension value 5 17. Dim of previously used variable name s+ 18. Bad variable in input list * 19. Bad variable in read list ( 20. Out of data during read - 21. Bad data in a data statement & 22. Illegal FOR statement - 23. No NEXT without matching FOR m! 24. NEXT without FOR v. 25. Unmatched quotes in statement 6 26. External function not properly set up ( 27. Badly formed expression 4 28. Error in command string interpreter # 29. Sbs function error ) 30. Syntax error in function i% 31. Syntax error in OPEN r& 32. Syntax error in CLOSE $ 33. Invalid file number " 34. End of file error ' 35. FCS error during close l& 36. FCS error during open - 37. Error during call processing r, 38. Error in call argument list 5 39. Error in store during called routine g; 40. Syntax error or lun in use in library open : 41. FCS error during library open or 1st read   L 00#TUVWBASIC ERROR VALUES PAGE A-2 K 06/11/85   . 42. Syntax error in SLEEP command - 43. Syntax error in WAIT command < 44. Timeout error - you waited too long to type  45. Priority error r* 46. Basic program file error 1 47. File access mode error (seq/ran) f0 48. Error in loaded user subroutine / 49. Virtual access error from fcs 2 50. Virtual file open error from fcs % 51. Error in SET command = 52. Use of "/co" switch with normal basic source i6 53. Immediate mode command in source text ( 54. Variable type mis-match 9 62. Debugging error #1 - call system manager a9 63. Debugging error #2 - call system manager b/ 64. Log of negative or zero number i/ 65. Square root of negative number f( 66. Floating divide by zero ( 67. Number too large to fix " 68. Floating overflow # 69. Floating underflow s& 70. Non-existent variable $ 71. Too much data typed & 72. Not enough data typed , 73. Illegal characters on input ( 74. Error in value function  t s tK 06/11/85  r i e n e h d  0 APPENDIX B  ; SAMPLE LOADABLE MACRO SUBROUTINE i r n ; 3 ; TEST SUBROUTINE FOR BASIC LOAD COMMAND f ; 4 ; THIS SUBROUTINE SHOULD REVERSE A STRING ; / ; CALL IS CALL "REVSTR"(IN$,OU$) E ; : ; WHERE IN$=STRING TO BE REVERSED 5 ; OU$=RESULTANT STRING ;  ; IDENTIFYING INFO: 4 .MCALL ULODHD ;CALL MACRO H ;IDENTIFY START OF CODE, END OF  CODE = ;AND ONE ENTRY POINT i2 ULODHD REVSTR,END,REVSTR ; ; NOW THE CODE ITSELF ; ; D REVSTR: ;LABLE ACTUAL START OF CODE H JSR R4,@#GTRGPI ;GO GET ARGUMENTS IN PI FASHION ? .BYTE 3,4,0 ;THIS IS ARG TYPE LIST J ;3 = INPUT STRING (TO SUBROUTINE) K ;4 = OUTPUT STRING (TO MAIN PROG.) C .EVEN L ;WE NOW HAVE THIS DATA ON THE STACK J ;SP+4 5-WORD STRING TABLE ENTRY B ; FOR OUTPUT STRING H ;SP> 2-WORD INPUT DESCRIPTOR E ; (SP)=LEN, 2(SP)=ADDR hH JSR PC,@#PARCHK ;CHECK FOR TRAILING RIGHT PAREN C ;(ALSO BUMPS TEXT POINTER) 7 MOV R1,-(SP) ;SAVE TEXT PTR aC MOV 2(SP),R0 ;LEN OF INPUT STRING -> R0 o9 BEQ 3$ ;IF ZERO, BRANCH H JSR PC,@#TSTU00 ;CHECK FOR ROOM IN USER STORAGE  AREA 6 ;WIPES R3,R4, I ;R5 -> NEXT BYTE IN USER STORAGE  AREA ? BHI 1$ ;BRANCH IF ROOM EXISTS r y aL SAMPLE LOADABLE MACRO SUBROUTINE PAGE B-2 K 06/11/85   AD OVFERR ;ELSE DO ERROR TRAP ; 1$: MOV R0,R4 ;SAVE LENGTH IN R4 G BIS #160000,R0 00+L2TADATADATADATADATADATA ;MAKE R0 A "SCRATCH" DATA TYPE  HEADER A MOV R0,(R5)+ ;PUT HEADER IN USER AREA CL MOV R5,R2 ;SAVE STRING ADDRESS (IN USER AREA) G MOV 4(SP),R3 ;ADDRESS OF INPUT STRING -> R3 eG MOV R4,R0 ;STRING LENGTH -> LOOP COUNTER hJ ADD R4,R3 ;BUMP R3 PAST END OF INPUT STRING < 2$: MOVB -(R3),(R5)+ ;REVERSE THE STRING  SOB R0,2$ E MOV R2,R3 ;OUTPUT STRING ADDRESS -> R3 DF ;STRING LENGTH STILL IS IN R4 J 3$: MOV SP,R5 ;GET ADD OF RETURN ARG DESCRIPTOR / ADD #6,R5 ;IN R5 aF JSR PC,@#SSTORE ;AND RETURN THE RESULT TO THE  CALLER : MOV (SP)+,R1 ;RESTORE TEXT PTR @ ADD #7*2,SP ;CLEAN STACK OF 7 WORDS 4 RTS PC ;AND RETURN ; END: ;LABLE END OF CODE  .END  MACRO COMMAND FILE > REVSTR,REVSTR/-SP=LB:[1,202]LOAMAC/ML,[1,202]REVSTR  TKB COMMAND FILE a / REVSTR.ATK/-HD/-FP,REVSTR/-SP=REVSTR LB:[1,1]BSCPUR.STB/SS /  STACK=0  UNITS=0 /   tK 06/11/85l  1 d n u b n m i0 APPENDIX C  n> USEFUL INTERNAL BASIC SUBROUTINE CALLS  o t lJ ; GETARG: TO RETRIEVE ADDRESSES OR VALUES FROM AN ARGUMENT LIST ) ; IN A BASIC "CALL" STATEMENT. ; J ; ON ENTRY: R5 POINTS TO A USER TABLE FOR RESULT TO BE PLACED  IN K ; R1 POINTS TO POS IN ARG LIST (MUST BE "," OR "(" ) K ; R0 POINTS TO LIST OF BYTE ARG TYPES (TERM. BY 0 OR  > 4) K ; ON RETURN: R5 POINTS TO THE FIRST WORD PAST THE RETURNED DATA G ; R1 POINTS TO NEXT CHAR FOLLOWING LAST ARG JUST A RETURNED G ; R0 POINTS TO FIRST BYTE AFTER TERMINATING BYTE " ; ARG TYPES IN R0 LIST: I ; 1 = INPUT NUMERIC EXPRESSION (2-WORD FLOATING i POINT) ; B ; 2 = OUTPUT NUMERIC TARGET (5 WORDS) H ; 2-WORD FP VALUE I ; 2-WORD FP OFFSET I ; 1-WORD OFFSET TO u HEADER ; G ; 3 = INPUT STRING EXPRESSION (2 WORDS) LEN, h ADDRESS ; B ; 4 = OUTPUT STRING TARGET (5-WORDS) G ; 1-WORD ADDRESS F ; 1-WORD LENGTH I ; 2-WORD FP OFFSET sF ; 1-WORD HEADER  ADDRESS R ; H ; FOR STANDARD VARIABLE, FP-OFFSET IS FROM STUDAT L ; FOR VIRTUAL VARIABLE, FP-OFFSET IS FROM FILE START ; 3 ; 0 OR > 4 = LIST TERMINATOR ; ; ALL OTHER REGISTERS WILL BE USED AND DESTROYED R ; L ; GTRGPI: POSITION INDEPENDENT ARGUMENT RETRIEVAL FOR USER LOADED G ; ROUTINES. THE ARGUMENT TYPE LIST FOLLOWS THE CODE IN A JSR i R4,GTPRI H ; INSTRUCTION. THE ARGUMENT LIST ITSELF IS CONSTRUCTED ON THE  d cL USEFUL INTERNAL BASIC SUBROUTINE CALLS PAGE C-2 K 003TUVW 06/11/85e s h STACK e, ; AND POINTED TO BY SP ON RETURN.  ; ON ENTRY: C ; R4 POINTS TO ARG TYPE LIST (VIA JSR R4,@#GTRGPI) i3 ; OLD R4 ON STACK (WILL BE POPPED)  ; ON RETURN: rF ; SP -> ARG LIST (ON STACK - TO BE REMOVED BY CALLING  ROUTINE) - ; OTHER REGISTERS: POTENTIALLY ALL h ; ; C ; NSTORE: TO STORE AWAY A VALUE FROM AC0 INTO A LOCATION e@ ; STORED IN A TABLE SUCH AS THAT FILLED IN BY GETARG. 7 ; ON CALL: R5 CONTAINS POINTER TO ADDRESS 8 ; AC0 CONTAINS VALUE TO BE STORED ( ; ON RETURN: NOTHING CHANGED $ ; REGISTERS USED: R0, AC1 ; ; ; ; ; K ; SSTORE: TAKE A STRING DESCRIBED BY LEN IN R4 AND ADDRESS IN R3 E ; AND STORE IT INTO A STRING VARIABLE WHOSE TABLE ENTRY IS  ; POINTED TO BY R5. ; < ; ON CALL: R3 = ADDRESS OF STRING TO BE STORED ; ; R4 = LENGTH OF STRING TO BE STORED tB ; R5 = POINTER TO OUTPUT STRING TABLE ENTRY ; 5 ; ON RETURN: R3 POINTS PAST END OF STRING o ; R4 = 0 i% ; R5 UNCHANGED h; ; OTHER REGISTERS USED: R0,R2 (ALL BUT R1) S ; ; , ; ARGCNT: COUNT ARGUMENTS ROUTINE < ; ON ENTRY: R1 POINTS TO LEADING OPEN PAREN "(" % ; ON EXIT: R1 UNCHANGED oH ; R0 CONTAINS COUNT OF ARGUMENTS UP TO ")" IN THE  LIST K ; QUOTED STRINGS AND SUBSCRIPTS ARE ACCOUNTED FOR % ; OTHER REGISTERS USED: R2 pL ; NOTE: AN END OF LINE WILL TERMINATE THE SCAN IRRESPECTIVE  OF F ; ENCLOSING QUOTES AS LONG AS IT IS USED AS THE  INTERNAL : ; LINE DELIMITER (S.EOL1 OR S.EOL2) ; ; ; ; 5 ; TSTU00 - CHECK FOR USER STORAGE OVERFLOW o ; 6 ; CHECK FOR POSSIBLE USER STORAGE OVERFLOW   rL USEFUL INTERNAL BASIC SUBROUTINE CALLS PAGE C-3 K 06/11/85h e o ;  ; ON ENTRY < ; R0=NUMBER OF BITES TO PUT IN USER STORAGE  ; ON EXIT ; ; R5-> NEXT AVAILABLE BYTE IN USER STORAGE d! ; OTHER REGISTERS USED n ; R0,R3,R4 t ; % ; STATUS RETURNED IN C-BIT R1 ; BHI WILL BRANCH IF ROOM EXISTS s ; ; ; ? ; PARCHK: CHECK THAT NEXT CHARACTER IN TEXT IS A ")" ;  ; CALL WITH $ ; R1-> PROGRAM TEXT ;  ; SUCCESSFUL RETURN  ; ")" IN R2 ; R1-> PAST ")"  ; ERROR RETURN x? ; CALL TO "ERROR IN PROCESSING CALL STATEMENT" H ; ; ; ; J ; SKIP00: SKIP OVER BLANKS IN PROGRAM TEXT - GET NEXT CHARACTER ; " ; ENTER WITH R1 -> TEXT ;  ; EXIT STATUS ! ; R2 = CHARACTER D ; R1 -> NEXT CHARACTER (AFTER R2 CHARACTER) IN TEXT ; ; ( ; OTHER REGISTERS USED - NONE ; ; ; 3 ; FORMAT FOR BASIC LOADABLE SUBROUTINES: 2/ ; SET UP BY THE "ULODHD" MACRO ;  ; FIRST THREE WORDS: K ; .WORD ID0001 ;THESE THREE WORDS ARE FILLED IN BY GLOBAL  SYMBOLS I ; .WORD ID0002 ;FROM A SYMBOL TABLE FOR BASIC, ENSURING a CORRECT cJ ; .WORD ID0003 ;SYMBOL LINKAGES (OR ELSE ERROR MESSAGE). ( ; NEXT TWO WORDS ARE LENGTHS: F ; .W00;L2TADATADATADATADATADATAORD ?????? ;LENGTH (IN BYTES) OF CODE PLUS ENTRY  POINTS C ; .WORD ?????? ;LENGTH (IN BYTES) OF ENTRY POINTS n3 ; .WORD ?????? ;# OF ENTRY POINTS G ; NEXT ENTRIES ARE THREE WORD BLOCKS DESCRIBING ENTRY POINTS   IL USEFUL INTERNAL BASIC SUBROUTINE CALLS PAGE C-4 K 06/11/85L E NH ; .RAD50 /NAME/ ;TWO WORDS OF RAD50 ENTRY POINT  NAME B ; .WORD ?????? ;OFFSET FROM START OF CODE PROPER I ; FINALLY, ONE WORD CONTAINING NUMBER OF WORDS OF CODE PROPER: ? ; .WORD ?????? ;LEN (IN WORDS) OF CODE PROPER < ; F ; NOTE: THESE MODULES MUST BE TASK BUILT WITH /-HD/-FP AND:  ; STACK=0  ; UNITS=0 ; L ; IN ADDITION POSITION INDEPENDENT CODING TECHNIQUES MUST BE USED  IN J ; WRITING THE CODE BECAUSE ITS POSITION IN THE INTERPRETER WILL  VARY 9 ; DEPENDING ON WHAT OTHER ROUTINES ARE LOADED.  c i nK 06/11/85i d   r t i . h 0 APPENDIX D  . INDEX  )   / ! . . . . . . . . . . . . . . . 3-4  / ABS . . . . . . . . . . . . . . 4-1 / Absolute value function . . . . 4-1 / AR5 . . . . . . . . . . . . . . 5-2 / Arctangent function . . . . . . 4-2 / Arithmetic assignment . . . . . 3-3 / ASC . . . . . . . . . . . . . . 5-2 1 Ascii to RAD50 conversion function 5-2 / Ascii value of character . . . . 5-2 h/ ATN . . . . . . . . . . . . . . 4-2 a h/ Binary input . . . . . . . . . . 6-2 h/ Binary output . . . . . . . . . 6-1 / Blank trim functions . . . . . . 5-3 / BREAK . . . . . . . . . . . . . 3-5 e n/ CALL . . . . . . . . . . . . . . 7-1 / CATXT . . . . . . . . . . . . . 7-7 t/ CDIS . . . . . . . . . . . . . . 7-5 o/ CHAIN . . . . . . . . . . . . . 2-3 N2 Character from Ascii value function 5-2 / CHR$ . . . . . . . . . . . . . . 5-2 4 CLEAR . . . . . . . . . . . . . 1-4, 2-2 / CLOSE . . . . . . . . . . . . . 6-4 a/ CON . . . . . . . . . . . . . . 2-4 s/ Control C . . . . . . . . . . . 1-5 p/ Control O . . . . . . . . . . . 1-5 c/ COR . . . . . . . . . . . . . . 4-3 b/ COS . . . . . . . . . . . . . . 4-2 / Cosine function . . . . . . . . 4-2 x/ CPOS . . . . . . . . . . . . . . 7-7 / CQNAM . . . . . . . . . . . . . 7-7 n/ CQTXT . . . . . . . . . . . . . 7-7  r/ DAT$ . . . . . . . . . . . . . . 4-4 l/ DATA . . . . . . . . . . . . . . 3-4 / Date function . . . . . . . . . 4-4 / Date validity check . . . . . . 4-4 / Day of century function . . . . 4-4 1/ DCEN . . . . . . . . . . . . . . 4-4  r rL INDEX PAGE D-2 K 06/11/85   / DDAT$ . . . . . . . . . . . . . 4-4 r/ DEC standard date function . . . 4-4 / DEF . . . . . . . . . . . . . . 3-3 1/ DELETE . . . . . . . . . . . . . 2-4 (/ DIM . . . . . . . . . . . . . . 3-2 / DIM # . . . . . . . . . . . . . 3-2 u t/ ECHO . . . . . . . . . . . . . . 3-6 / END . . . . . . . . . . . . . . 2-1 / ERL . . . . . . . . . . . . . . 4-3 f/ ERR . . . . . . . . . . . . . . 4-3 / Error code functions . . . . . . 4-3 / EXIT . . . . . . . . . . . . . . 2-4 e/ EXP . . . . . . . . . . . . . . 400CTUVW-2 e/ Exponential function . . . . . . 4-2 (/ Exponentiation . . . . . . . . . 1-4  / FCS . . . . . . . . . . . . . . 4-3 e9 File close . . . . . . . . . . . 1-4, 2-2, 6-4 / File open . . . . . . . . . . . 6-3 / File restore . . . . . . . . . . 6-1 O/ FOR . . . . . . . . . . . . . . 3-5 S/ Free core function . . . . . . . 4-3 / FRMT$ . . . . . . . . . . . . . 5-4 / Function - user . . . . . . . . 3-3 A / GOSUB . . . . . . . . . . . . . 3-1 f/ GOTO . . . . . . . . . . . . . . 3-1 d l/ IF . . . . . . . . . . . . . . . 3-3 / IF END . . . . . . . . . . . . . 6-4 ./ IMMEDIATE mode . . . . . . . . . 1-1 f/ Index string function . . . . . 5-1 / INPUT . . . . . . . . . . . . . 6-2 / INPUT LINE . . . . . . . . . . . 6-3 / INSTRG . . . . . . . . . . . . . 7-2 s/ INT . . . . . . . . . . . . . . 4-2 / Integer function . . . . . . . . 4-2 / Introduction . . . . . . . . . . 1-1 / INX . . . . . . . . . . . . . . 5-1 n e/ LEFT . . . . . . . . . . . . . . 5-2 / LEN . . . . . . . . . . . . . . 5-1 / Length of string function . . . 5-1 / LET . . . . . . . . . . . . . . 3-3 h/ Library open . . . . . . . . . . 7-2 / LIST . . . . . . . . . . . . . . 2-3 / LJS$ . . . . . . . . . . . . . . 5-5 / LOAD . . . . . . . . . . . . . . 7-1 r/ LOG . . . . . . . . . . . . . . 4-2 s/ LOG10 . . . . . . . . . . . . . 4-2 / Logarithm - base ten . . . . . . 4-2 / Logarithm - natural . . . . . . 4-2 h/ Logical Expressions . . . . . . 1-5 r/ LTR$ . . . . . . . . . . . . . . 5-3 o e oL INDEX PAGE D-3 K 06/11/85  1 B S/ MATXT . . . . . . . . . . . . . 7-7 / MCR COMMAND LINE . . . . . . . . 1-4 t/ MDIS . . . . . . . . . . . . . . 7-5 l/ MID . . . . . . . . . . . . . . 5-2 l/ MPOS . . . . . . . . . . . . . . 7-7 / MQTXT . . . . . . . . . . . . . 7-7  / NEXT . . . . . . . . . . . . . . 3-5 / NRC . . . . . . . . . . . . . . 4-3 2/ Number of records function . . . 4-3 / Number of seconds from time . . 4-5 i/ Numeric to character string . . 5-3 0 Numeric to string format function 5-4 / Numeric value of string . . . . 5-1 e l/ OCS$ . . . . . . . . . . . . . . 5-4 / OCT . . . . . . . . . . . . . . 5-1 a/ OCT$ . . . . . . . . . . . . . . 5-4 s/ Octal to string functions . . . 5-4 / Octal value of string . . . . . 5-1 h/ OLD . . . . . . . . . . . . . . 2-2 h/ ON GOSUB . . 3-1 / ON GOTO . . 3-1 n/ ON ERROR GOTO . . . . . . . . . 3-6 / OPEN . . . . . . . . . . . . . . 6-3 R/ OPEN LIBRARY . . . . . . . . . . 7-2 2/ OVERLAY . . . . . . . . . . . . 2-3 M T/ PASS-ALL-INPUT . . . . . . . . . 3-6 / PASS-ALL-WRITE . . . . . . . . . 3-6 / Piece of string by delimiter . . 5-3 :/ PIECE$ . . . . . . . . . . . . . 5-3 r/ POS . . . . . . . . . . . . . . 5-1 n/ Position string function . . . . 5-1 e/ Powers of numbers . . . . . . . 1-4 / PRINT . . . . . . . . . . . . . 6-1 / Print tab function . . . . . . . 5-5 / PRIORITY . . . . . . . . . . . . 3-8 e/ Program chain . . . . . . . . . 2-3 i/ Program continue . . . . . . . . 2-4 / Program delete . . . . . . . . . 6-3 u/ Program line delete . . . . . . 2-4 a/ Program list . . . . . . . . . . 2-3 e/ Program overlay 00KL2TADATADATADATADATADATA . . . . . . . . 2-3 m/ Program retrieve . . . . . . . . 2-2 / Program save . . . . . . . . . . 2-2 h/ PROMPT . . . . . . . . . . . . . 3-6 y r/ Question Display . . . . . . . . 7-3  / R5A$ . . . . . . . . . . . . . . 5-4 !1 RAD50 to ASCII conversion function 5-4 )9 Random access I/O . . . . . . . 6-1, 6-2, 6-3 / RANDOMIZE . . . . . . . . . . . 4-1   L INDEX PAGE D-4 K 06/11/85  / RATXT . . . . . . . . . . . . . 7-7 / RDIS . . . . . . . . . . . . . . 7-5 / READ . . . . . . . . . . . . . . 3-4 u/ Record count function . . . . . 4-3 m/ REM . . . . . . . . . . . . . . 3-4 n/ RESTORE . . . . . . . . . . . . 6-1 m/ RETURN . . . . . . . . . . . . . 3-1 u/ RIGHT . . . . . . . . . . . . . 5-2 / Right justify function . . . . . 5-5 / RJS$ . . . . . . . . . . . . . . 5-5 / RND . . . . . . . . . . . . . . 4-1 r/ RPOS . . . . . . . . . . . . . . 7-7 u/ RQNAM . . . . . . . . . . . . . 7-7 / RQTXT . . . . . . . . . . . . . 7-7 t4 RUN . . . . . . . . . . . . . . 1-4, 2-1  c/ SAVE . . . . . . . . . . . . . . 2-2 / SBS$ . . . . . . . . . . . . . . 5-2 / SCRATCH . . . . . . . . . . . . 6-3 / SEC . . . . . . . . . . . . . . 4-5 n/ SEG$ . . . . . . . . . . . . . . 5-2 h/ SET ECHO . . . . . . . . . . . . 3-6 d/ SET PASS-ALL-INPUT . . . . . . . 3-6 n/ SET PASS-ALL-PRINT . . . . . . . 3-6 / SET PROMPT . . . . . . . . . . . 3-6 / Set system conditions . . . . . 3-6 / SET TRACE . . . . . . . . . . . 3-6 / SET UPPER . . . . . . . . . . . 3-6 5/ SGN . . . . . . . . . . . . . . 4-1 / Sign function . . . . . . . . . 4-1 / SIN . . . . . . . . . . . . . . 4-2 / Sine function . . . . . . . . . 4-2 / Single line execute . . . . . . 2-4 / SLEEP . . . . . . . . . . . . . 3-7 / SPACE$ . . . . . . . . . . . . . 5-5 / SPAWN . . . . . . . . . . . . . 7-8 / SQR . . . . . . . . . . . . . . 4-3 a/ Square root function . . . . . . 4-3 u/ Statement and line format . . . 1-2 t/ STEP . . . . . . . . . . . . . . 2-4 o/ STOP . . . . . . . . . . . . . . 2-1 r/ STR$ . . . . . . . . . . . . . . 5-3 / String comparison . . . . . . . 3-3 / String variables . . . . . . . . 3-2 / STRING$ . . . . . . . . . . . . 5-5 "/ Strings . . . . . . . . . . . . 1-3 / Suboutine call . . . . . . . . . 7-1 / Substring functions . . . . . . 5-2  / TAB . . . . . . . . . . . . . . 5-5 / TIM$ . . . . . . . . . . . . . . 4-4 / Time function . . . . . . . . . 4-4 / Time string validity check . . . 4-5 r/ TRACE . . . . . . . . . . . . . 3-6 t/ TRACE ON and OFF . . . . . . . . 3-8 n  L INDEX PAGE D-5 K 06/11/85  X ./ TRM$ . . . . . . . . . . . . . . 5-3 S R/ UNLOAD . . . . . . . . . . . . . 7-1 o/ UPPER . . . . . . . . . . . . . 3-6 a/ User defined functions . . . . . 3-3 P/ User subroutine call . . . . . . 7-1 . / VAL . . . . . . . . . . . . . . 5-1 / Value of string function . . . . 5-1 s/ Variables . . . . . . . . . . . 1-2 4 Virtual arrays . . . . . . . . . 1-3, 3-2  / WAIT . . . . . . . . . . . . . . 3-7 ) / ^C . . . . . . . . . . . . . . . 1-5 / ^O . . . . . . . . . . . . . . . 1-5 n00STUVW$%5A %D%8A %D - USER STORAGE OVERFLOW6%5A %D%8A %D - UNRECOGNIZED STATEMENT - CHECK SPELLING$%5A %D%8A %D - ILLEGAL GOTO OR GOSUB=%5A %D%8A %D - ILLEGAL CHARACTER IN OR TERMINATING INPUT LINE7#%5A %D%8A %D - RETURN WITHOUT GOSUB.%%5A %D%8A %D - BADLY FORMED SUBSCRIPT.%%5A %D%8A %D - SUBSCRIPT OUT OF RANGEE%%5A %D%8A %D - MISMATCHED PARENTHESES $%5A %D%8A %D - ILLEGAL LET STATEMENT0%5A %D%8A %D - ILLEGAL RELATIONAL OPERATOR IN IF%5A %D%8A %D - ILLEGAL IF.%5A %D%8A %D - ILLEGAL PRINT/%5A %D%8A %D - DEVICE OR FILE ERROR %D ON INPUTW%5A %D%8A %D - BAD DIMENSION7%5A %D%8A %D - NOT ENOUGH ROOM IN STORAGE FOR THE ARRAYR"%5A %D%8A %D - BADLY FORMED DEFINE5%5A %D%8A %D - ILLEGAL LINE NUMBER OR DIMENSION VALUER3%5A %D%8A %D - DIM OF PREVIOUSLY USED VARIABLE NAMEP)%5A %D%8A %D - BAD VARIABLE IN INPUT LIST(%5A %D%8A %D - BAD VARIABLE IN READ LIST&%5A %D%8A %D - OUT OF DATA DURING READ+%5A %D%8A %D - BAD DATA IN A DATA STATEMENT$%5A %D%8A %D - ILLEGAL FOR STATEMENT+%5A %D%8A %D - NO NEXT WITHOUT MATCHING FORF%5A %D%8A %D - NEXT WITHOUT FOR ,%5A %D%8A %D - UNMATCHED QUOTES IN STATEMENT4%5A %D%8A %D - EXTERNAL FUNCTION NOT PROPERLY SET UP&%5A %D%8A %D - BADLY FORMED EXPRESSION2%5A %D%8A %D - ERROR IN COMMAND STRING INTERPRETER!%5A %D%8A %D - SBS FUNCTION ERROR '%5A %D%8A %D - SYNTAX ERROR IN FUNCTION5#%5A %D%8A %D - SYNTAX ERROR IN OPENT$%5A %D%8A %D - SYNTAX ERROR IN CLOSE"%5A %D%8A %D - INVALID FILE NUMBER %5A %D%8A %D - END OF FILE ERROR(%5A %D%8A %D - FCS ERROR %D DURING CLOSE'%5A %D%8A %D - FCS ERROR %D DURING OPEN +%5A %D%8A %D - ERROR DURING CALL PROCESSING *%5A %D%8A %D - ERROR IN CALL ARGUMENT LIST3%5A %D%8A %D - ERROR IN STORE DURING CALLED ROUTINEX9%5A %D%8A %D - SYNTAX ERROR OR LUN IN USE IN LIBRARY OPENR;%5A %D%8A %D - FCS ERROR %D DURING LIBRARY OPEN OR 1ST READR,%5A %D%8A %D - SYNTAX ERROR IN SLEEP COMMAND+%5A %D%8A %D - SYNTAX ERROR IN WAIT COMMANDE:%5A %D%8A %D - TIMEOUT ERROR - YOU WAITED TOO LONG TO TYPE%5A %D%8A %D - PRIORITY ERRORE*%5A %D%8A %D - BASIC PROGRAM FILE ERROR %D/%5A %D%8A %D - FILE ACCESS MODE ERROR (SEQ/RAN)A.%5A %D%8A %D - ERROR IN LOADED USER SUBROUTINE,%5A %D%8A %D - VIRTUAL ACCESS ERROR - FCS %D/%5A %D%8A %D - VIRTUAL FILE OPEN ERROR - FCS %DR#%5A %D%8A %D - ERROR IN SET COMMAND8;%5A %D%8A %D - USE OF "/CO" SWITCH WITH NORMAL BASIC SOURCE84%5A %D%8A %D - IMMEDIATE MODE COMMAND IN SOURCE TEXT%%5A %D%8A %D - VARIABLE TYPE MISMATCH .%5A %D%8A %D - DEBUG #1 AT R3=%P R0=%P R4=%P7%5A %D%8A %D - DEBUGGING ERROR #2 - CALL SYSTEM MANAGERO-%5A %D%8A %D - LOG OF NEGATIVE OR ZERO NUMBERQ-%5A %D%8A %D - SQUARE ROOT OF NEGATIVE NUMBERR&%5A %D%8A %D - FLOATING DIVIDE BY ZERO&%5A %D%8A %D - NUMBER TOO LARGE TO FIX %5A %D%8A %D - FLOATING OVERFLOW!%5A %D%8A %D - FLOATING UNDERFLOW8$%5A %D%8A %D - NON-EXISTENT VARIABLE"%5A %D%8A %D - TOO MUCH DATA TYPED$%5A %D%8A %D - NOT ENOUGH DATA TYPED*%5A %D%8A %D - ILLEGAL CHARACTERS ON INPUT&%5A %D%8A %D - ERROR IN VALUE FUNCTION$%5A %D%8A %D - NOT ENOUGH DATA TYPED*%5A %D%8A %D - ILLEGAL CHARACTERS ON INPUT&%5A %D%8A %D - ERROR IN VALUE FUNCTION'%5A %D%8A %D - SYNTAX ERROR IN FUNCTIONE#%5A %D%8A %D - SYNTAX ERROR IN OPEN %5A %D%8A %D - FLOATING OVERFLOW!%5A %D%8A %D - FLOATING UNDERFLOW,%5A %D%8A %D - LOG OF NEGATIVE OR ZERO VALUE,%5A %D%8A %D - SQUARE ROOT OF NEGATIVE VALUE/VARIANT - use _.VARIANT instruction. Multiple file input or _.REQ mayR"also help in simulating variants. .els 0.p.The DSR TOC options may be simulated by using:.list 0 ;.le;_.INDENT HEADER TITLES simulates varying level indents.hM.le;_.DISPLAY 00[L2TADATADATADATADATADATA@%5A %D%8A %D - USER STORAGE OVERFLOW @%5A %D%8A %D - UNRECOGNIZED STATEMENT - CHECK SPELLING @%5A %D%8A %D - ILLEGAL GOTO OR GOSUB @%5A %D%8A %D - ILLEGAL CHARACTER IN OR TERMINATING INPUT LINE @%5A %D%8A %D - RETURN WITHOUT GOSUB @%5A %D%8A %D - BADLY FORMED SUBSCRIPT @%5A %D%8A %D - SUBSCRIPT OUT OF RANGE @%5A %D%8A %D - MISMATCHED PARENTHESES @%5A %D%8A %D - ILLEGAL LET STATEMENT @%5A %D%8A %D - ILLEGAL RELATIONAL OPERATOR IN IF @%5A %D%8A %D - ILLEGAL IF @%5A %D%8A %D - ILLEGAL PRINT @%5A %D%8A %D - DEVICE OR FILE ERROR %D ON INPUT @%5A %D%8A %D - BAD DIMENSION @%5A %D%8A %D - NOT ENOUGH ROOM IN STORAGE FOR THE ARRAY @%5A %D%8A %D - BADLY FORMED DEFINE @%5A %D%8A %D - ILLEGAL LINE NUMBER OR DIMENSION VALUE @%5A %D%8A %D - DIM OF PREVIOUSLY USED VARIABLE NAME @%5A %D%8A %D - BAD VARIABLE IN INPUT LIST @%5A %D%8A %D - BAD VARIABLE IN READ LIST @%5A %D%8A %D - OUT OF DATA DURING READ @%5A %D%8A %D - BAD DATA IN A DATA STATEMENT @%5A %D%8A %D - ILLEGAL FOR STATEMENT @%5A %D%8A %D - NO NEXT WITHOUT MATCHING FOR @%5A %D%8A %D - NEXT WITHOUT FOR @%5A %D%8A %D - UNMATCHED QUOTES IN STATEMENT @%5A %D%8A %D - EXTERNAL FUNCTION NOT PROPERLY SET UP @%5A %D%8A %D - BADLY FORMED EXPRESSION @%5A %D%8A %D - ERROR IN COMMAND STRING INTERPRETER @%5A %D%8A %D - SBS FUNCTION ERROR @%5A %D%8A %D - SYNTAX ERROR IN FUNCTION @%5A %D%8A %D - SYNTAX ERROR IN OPEN @%5A %D%8A %D - SYNTAX ERROR IN CLOSE @%5A %D%8A %D - INVALID FILE NUMBER @%5A %D%8A %D - END OF FILE ERROR @%5A %D%8A %D - FCS ERROR %D DURING CLOSE @%5A %D%8A %D - FCS ERROR %D DURING OPEN @%5A %D%8A %D - ERROR DURING CALL PROCESSING @%5A %D%8A %D - ERROR IN CALL ARGUMENT LIST @%5A %D%8A %D - ERROR IN STORE DURING CALLED ROUTINE @%5A %D%8A %D - SYNTAX ERROR OR LUN IN USE IN LIBRARY OPEN @%5A %D%8A %D - FCS ERROR %D DURING LIBRARY OPEN OR 1ST READ @%5A %D%8A %D - SYNTAX ERROR IN SLEEP COMMAND @%5A %D%8A %D - SYNTAX ERROR IN WAIT COMMAND @%5A %D%8A %D - TIMEOUT ERROR - YOU WAITED TOO LONG TO TYPE @%5A %D%8A %D - PRIORITY ERROR @%5A %D%8A %D - BASIC PROGRAM FILE ERROR %D @%5A %D%8A %D - FILE ACCESS MODE ERROR (SEQ/RAN) @%5A %D%8A %D - ERROR IN LOADED USER SUBROUTINE @%5A %D%8A %D - VIRTUAL ACCESS ERROR - FCS %D @%5A %D%8A %D - VIRTUAL FILE OPEN ERROR - FCS %D @%5A %D%8A %D - ERROR IN SET COMMAND @%5A %D%8A %D - USE OF "/CO" SWITCH WITH NORMAL BASIC SOURCE @%5A %D%8A %D - IMMEDIATE MODE COMMAND IN SOURCE TEXT @%5A %D%8A %D - VARIABLE TYPE MISMATCH @ @ @ @ @ @ @ @%500cTUVWA %D%8A %D - DEBUG #1 AT R3=%P R0=%P R4=%P @%5A %D%8A %D - DEBUGGING ERROR #2 - CALL SYSTEM MANAGER @%5A %D%8A %D - LOG OF NEGATIVE OR ZERO NUMBER @%5A %D%8A %D - SQUARE ROOT OF NEGATIVE NUMBER @%5A %D%8A %D - FLOATING DIVIDE BY ZERO @%5A %D%8A %D - NUMBER TOO LARGE TO FIX @%5A %D%8A %D - FLOATING OVERFLOW @%5A %D%8A %D - FLOATING UNDERFLOW @%5A %D%8A %D - NON-EXISTENT VARIABLE @%5A %D%8A %D - TOO MUCH DATA TYPED @%5A %D%8A %D - NOT ENOUGH DATA TYPED @%5A %D%8A %D - ILLEGAL CHARACTERS ON INPUT @%5A %D%8A %D - ERROR IN VALUE FUNCTION @%5A %D%8A %D - NOT ENOUGH DATA TYPED @%5A %D%8A %D - ILLEGAL CHARACTERS ON INPUT @%5A %D%8A %D - ERROR IN VALUE FUNCTION @%5A %D%8A %D - SYNTAX ERROR IN FUNCTION @%5A %D%8A %D - SYNTAX ERROR IN OPEN @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 00kL2TADATADATADATADATADATA @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 00swUVW @ @ @ @ @ @ @ @ @ @ @ @ @ @%5A %D%8A %D - FLOATING OVERFLOW @ @%5A %D%8A %D - FLOATING UNDERFLOW @ @ @ @ @ @ @ @ @%5A %D%8A %D - LOG OF NEGATIVE OR ZERO VALUE @%5A %D%8A %D - SQUARE ROOT OF NEGATIVE VALUE you define a sequence which changes the character style it shouldIalways be defined as a lock/unlock pair. An example of changed charactereFstyle is hardware underlining, shadow printing, bolding, font changes,or ribbon color changes..pFThe LCK at .PS 60,79 .LS 1 .LM 10;.RM 75 .TS 15,25 .FG 18 .DT 06/11/85.WC ^^BASIC DOCUMENTATION\\ .WC 06/11/85.TITLE ^^BASIC DOCUMENTATION\\.FG 1;.C ^MICHAEL ^REESE ^MEDICAL ^CENTER.FG 1;.C^FRANK ^R. ^BORGER.PAGE .CENTER ^^TABLE OF CONTENTS .FG 1;.NOFILL  ACHAPTER 1 INTRODUCTION. . . . . . . . . . . . . . . . . . . . 1-1B 1.1 STATEMENT AND LINE FORMAT. . . . . . . . . . . . 1-2 B 1.2 VARIABLE NAMES . . . . . . . . . . . . . . . . . 1-2 B 1.3 VIRTUAL ARRAYS . . . . . . . . . . . . . . . . . 1-3 B 1.4 STRING CONSTANTS . . . . . . . . . . . . . . . . 1-3 B 1.5 DATA AND FILE PRESERVATION . . . . . . . . . . . 1-4 B 1.6 STRING VARIABLES . . . . . . . . . . . . . . . . 1-4 B 1.7 EXPONENTIATION . . . . . . . . . . . . . . . . . 1-4 B 1.8 MCR COMMAND LINE . . . . . . . . . . . . . . . . 1-4 B 1.9 CONTROL C. . . . . . . . . . . . . . . . . . . . 1-5 B 1.10 CONTROL O . . . . . . . . . . . . . . . . . . . 1-5 B 1.11 LOGICAL EXPRESSIONS . . . . . . . . . . . . . . 1-5  ACHAPTER 2 LOADING/RUNNING/SAVING PROGRAMS . . . . . . . . . . 2-1VA 2.1 STOP . . END . . . . . . . . . . . . . . . . . . 2-1 A 2.2 RUN. . . . . . . . . . . . . . . . . . . . . . . 2-1 B 2.3 CLEAR. . . . . . . . . . . . . . . . . . . . . . 2-2 C 2.4 SAVE _ [N1][-N2][,N3...]. . 2-2 C 2.5 OLD _. . . . . . . . . 2-2 C 2.6 CHAIN _ . . . 2-3 C 2.7 OVERLAY _. . 2-3 RB 2.8 LIST [N1][-N2][,N3...] . . . . . . . . . . . . . 2-3 B 2.9 DELETE N1[-N2][,N3...] . . . . . . . . . . . . . 2-4 B 2.10 EXIT. . . . . . . . . . . . . . . . . . . . . . 2-4 C 2.11 STEP [LINE _#] . . . . . . . . . . . . . . . . . 2-4 ]C 2.12 CON [LINE _#]. . . . . . . . . . . . . . . . . . 2-4 [ ]ACHAPTER 3 PROGRAM STATEMENTS. . . . . . . 00{L2TADATADATADATADATADATA. . . . . . . . . . 3-1VA 3.1 GOSUB N . . GOTO N . . . . . . . . . . . . . . . 3-1[E 3.2 ON _ GOTO _ _. . . . . . . 3-1 A 3.3 RETURN . . . . . . . . . . . . . . . . . . . . . 3-1 B 3.4 DIM. . . . . . . . . . . . . . . . . . . . . . . 3-2 D 3.5 DIM _#N,_ . . . . . . . . . . . . . . . . . . 3-2 B 3.6 DEF. . . . . . . . . . . . . . . . . . . . . . . 3-3 B 3.7 LET. . . . . . . . . . . . . . . . . . . . . . . 3-3 B 3.8 IF . . . . . . . . . . . . . . . . . . . . . . . 3-4 B 3.9 REM . . !. . . . . . . . . . . . . . . . . . . . 3-4 B 3.10 READ . . DATA . . . . . . . . . . . . . . . . . 3-4 B 3.11 FOR . . . . . . . . . . . . . . . . . . . . . . 3-5 B 3.12 NEXT. . . . . . . . . . . . . . . . . . . . . . 3-5 B 3.13 BREAK . . . . . . . . . . . . . . . . . . . . . 3-5 B 3.14 SET PROMPT/TRACE/PASS-ALL/ECHO/UPPER ON/OFF . . 3-6 B 3.15 ON ERROR GOTO . . . . . . . . . . . . . . . . . 3-6 D 3.16 SLEEP __. . . . . . . . . . . . 3-7 D 3.17 WAIT __ . . . . . . . . . . . . 3-7 C 3.18 PRIORITY _ . . . . . . . . . . . . . 3-8 B 3.19 TRACE ON AND OFF. . . . . . . . . . . . . . . . 3-8  ACHAPTER 4 ARITHMETIC FUNCTIONS. . . . . . . . . . . . . . . . 4-1 A 4.1 RND. . . . . . . . . . . . . . . . . . . . . . . 4-1/A 4.2 RANDOMIZE. . . . . . . . . . . . . . . . . . . . 4-1 A 4.3 ABS. . . . . . . . . . . . . . . . . . . . . . . 4-1>B 4.4 SGN. . . . . . . . . . . . . . . . . . . . . . . 4-2 B 4.5 INT. . . . . . . . . . . . . . . . . . . . . . . 4-2 C 4.6 LOG (NATURAL _& BASE 10). . . . . . . . . . . . . 4-2 B 4.7 EXP. . . . . . . . . . . . . . . . . . . . . . . 4-2 B 4.8 SIN COS. . . . . . . . . . . . . . . . . . . . . 4-2 B 4.9 ATN. . . . . . . . . . . . . . . . . . . . . . . 4-3 B 4.10 SQR . . . . . . . . . . . . . . . . . . . . . . 4-3 B 4.11 NRC . . . . . . . . . . . . . . . . . . . . . . 4-3 B 4.12 ERR . . ERL . . FCS . . . . . . . . . . . . . . 4-3 B 4.13 COR . . . . . . . . . . . . . . . . . . . . . . 4-3 B 4.14 DAT$. . . . . . . . . . . . . . . . . . . . . . 4-4 B 4.15 DDAT$ . . . . . . . . . . . . . . . . . . . . . 4-4 B 4.16 TIM$. . . . . . . . . . . . . . . . . . . . . . 4-4 B 4.17 DCEN. . . . . . . . . . . . . . . . . . . . . . 4-5 B 4.18 SEC . . . . . . . . . . . . . . . . . . . . . . 4-5  ACHAPTER 5 STRING FUNCTIONS. . . . . . . . . . . . . . . . . . 5-1 A 5.1 INX . . POS. . . . . . . . . . . . . . . . . . . 5-1 A 5.2 LEN. . . . . . . . . . . . . . . . . . . . . . . 5-1 A 5.3 VAL. . . . . . . . . . . . . . . . . . . . . . . 5-1 B 5.4 OCT. . . . . . . . . . . . . . . . . . . . . . . 5-2 B 5.5 AR5. . . . . . . . . . . . . . . . . . . . . . . 5-2 B 5.6 ASC. . . . . . . . . . . . . . . . . . . . . . . 5-2 B 5.7 CHR$ . . . . . . . . . . . . . . . . . . . . . . 5-2 B 5.8 SEG$ SBS$ RIGHT LEFT MID . . . . . . . . . . . . 5-2 B 5.9 PIECE$ . . . . . . . . . . . . . . . . . . . . . 5-3 B 5.10 STR$. . . . . . . . . . . . . . . . . . . . . . 5-3 B 5.11 LTR$ TRM$ . . . . . . . . . . . . . . . . . . . 5-4 B 5.12 OCT$ OCS$ . . . . . . . . . . . . . . . . . . . 5-4 B 5.13 R5A$. . . . . . . . . . . . . . . . . . . . . . 5-4 B 5.14 FRMT$(X,W[,D]). . . . . . . . . . . . . . . . . 5-4 B 5.15 RJS$ . . LJS$ . . . . . . . . . . . . . . . . . 5-5 B 5.16 SPACE$ . . STRING$. . . . . . . . . . . . . . . 5-5 B 5.17 TAB . . . . . . . . . . . . . . . . . . . . . . 5-5  BCHAPTER 6 I/O _& FILE MANIPULATION . . . . . . . . . . . . . . 6-1A 6.1 RESTORE. . . . . . . . . . . . . . . . . . . . . 6-1 A 6.2 PRINT. . . . . . . . . . . . . . . . . . . . . . 6-1 B 6.3 INPUT. . . . . . . 00wUVW. . . . . . . . . . . . . . . 6-2 B 6.4 INPUT LINE . . . . . . . . . . . . . . . . . . . 6-3 C 6.5 SCRATCH _. . . . . . . . . . . . 6-3 B 6.6 OPEN . . . . . . . . . . . . . . . . . . . . . . 6-3 B 6.7 CLOSE N1[,N2...] . . . . . . . . . . . . . . . . 6-4 E 6.8 IF END [_#N] THEN _. . . . . . . . . . . . 6-4  ACHAPTER 7 LOADABLE SUBROUTINES. . . . . . . . . . . . . . . . 7-1 B 7.1 LOAD _ . . . . . . . . . . . . . 7-1A 7.2 UNLOAD . . . . . . . . . . . . . . . . . . . . . 7-1 B 7.3 CALL "NAME"(ARG1,ARG2,...) . . . . . . . . . . . 7-2 B 7.4 INSTRG . . . . . . . . . . . . . . . . . . . . . 7-2 B 7.5 OPEN LIBRARY . . . . . . . . . . . . . . . . . . 7-2 B 7.6 QUESTION DISPLAY . . . . . . . . . . . . . . . . 7-3 B 7.7 MDIS . . CDIS . . RDIS . . . . . . . . . . . . . 7-5 B 7.8 MPOS . . CPOS . . RPOS . . . . . . . . . . . . . 7-7 B 7.9 MQTXT . . CQTXT . . RQTXT. . . . . . . . . . . . 7-7 B 7.10 MATXT . . CATXT . . RATXT . . . . . . . . . . . 7-7 B 7.11 CQNAM . . RQNAM . . . . . . . . . . . . . . . . 7-7 B 7.12 SPAWNB. . . . . . . . . . . . . . . . . . . . . 7-8  AAPPENDIX A BASIC ERROR VALUES . . . . . . . . . . . . . . . . A-1  AAPPENDIX B SAMPLE LOADABLE MACRO SUBROUTINE . . . . . . . . . B-1  AAPPENDIX C USEFUL INTERNAL BASIC SUBROUTINE CALLS . . . . . . C-1  AAPPENDIX D INDEX. . . . . . . . . . . . . . . . . . . . . . . D-1 \\.FILL .CHAPTER ^^INTRODUCTION\\X.SKIPA.X ^INTRODUCTIONH^THIS ^^BASIC\\ FOLLOWS ^^DEC\\'S ^^BASIC-11\\ IN ITS BASIC ORIENTATION.J^ADVANCED FEATURES TEND TO FOLLOW 'SIZE' IS ^THE END OF LINE DOES NOT SERVE TO END A STATEMENT EXCEPT WHEN@THERE IS NO CONTINUED LINE FOLLOWING IT. ^THUS A STATEMENT WHICH;BEGINS ON A CONTINUED LINE MUST EITHER HAVE A CONC00L2TADATADATADATADATADATAATENATIONA=CHARACTER AT THE START OF ITS LINE OR THE END OF THE PREVIOUSR>LINE. ^THERE IS AN EXCEPTION IN THE CASE OF A COMMENT (! ONLY)=TERMINATING THE PREVIOUS LINE, IN WHICH CASE NO CONCATENATIONNCHARACTER IS USED.4^CARE SHOULD BE TAKEN NOT TO START AN IMMEDIATE MODEACOMMAND WITH A TAB OR DOUBLE SPACE AS IT WILL NOT BE EXECUTED BUT CADDED TO THE EXISTING PROGRAM AS A CONTINUATION OF THE LAST ENTEREDN PROGRAM LINE.I.SG^THIS VERSION OF BASIC AUTOMATICALLY CONVERTS ALL LOWER CASE CHARACTERS JTO UPPER CASE, THUS ^PROGRAM SOURCE MAY BE IN LOWER CASE. SAVING A PROGRAMFVIA THE "SAVE" COMMAND WILL RESULT IN AN ALL UPPER CASE VERSION. ^CASE>CONVERSION DOES NOT TAKE PLACE UNDER THE FOLLOWING CONDITIONS:.LISTS.LE ^DURING STRING INPUT.E.LE ^DURING "^^INPUT LINE\\.'.LE ^ON SOURCE TEXT ENCLOSED IN QUOTES. '.LE ^ON SOURCE TEXT IN A COMMENT FIELD.E.ENDLISTC^NOTE THAT CHECKING OF PROGRAM STATEMENTS FOR VERB LEGALITY AS THEYT=ARE READ IN BY THE INTERPRETER IS NO LONGER DONE AS IT WAS INA8EARLIER VERSIONS. ^ALL CHECKING IS NOW DONE AT RUN TIME..S.HEADERLEVEL 1 ^VARIABLE NAMES .X ^VARIABLESL.BRUH^VARIABLE NAMES MAY BE ONE OR TWO CHARACTERS OF WHICH THE FIRST IS ALPHAFAND THE SECOND (IF USED) IS ALPHANUMERIC, FOLLOWED BY AN OPTIONAL TYPEKCHARACTER. ^IF NO TYPE CHARACTER IS USED, THE TYPE IS USUALLY MORE THAN IS PRACTICAL TO STORE IN AN IN-MEMORY ARRAY.H^THE USE OF VIRTUAL ARRAYS INVOLVES A SPECIAL FORM OF THE MAY FOLLOW FOR NORMAL INTERACTIVE USE OR ONE OF TWO OTHER3OPTIONS MAY FOLLOW BEFORE _<^C^R> FOR SPECIAL USES. .FG 1OI^IF A SPACE AND A ? FOLLOWED BY AN ARITHMETIC EXPRESSION FOLLOWS ^^BAS\\,RETHE VALUE OF THE EXPRESSION WILL BE PRINTED ON THE NEXT LINE FOLLOWEDABY A RETURN TO THE ^^MCR\\.E<^THIS IS USEFUL FOR QUICK DESK CALCULATOR TYPE CALCULATIONS..FG 1RD^IF A SPACE (OR TAB) AND A FILE NAME WITH AN OPTIONAL SWITCH FOLLOW,GTHEN THAT FILE WILL BE READ IN AS A USER PROGRAM JUST AS IN THE ^^OLD\\>COMMAND..FG 1OD^IF THE SWITCH (/^R^N) IS SPECIFIED, THE PROGRAM WILL ALSO BE RUN AS*THOUGH THE ^^RUN\\ COMMAND HAD BEEN TYPED.@^A SWITCH OF THE FORM "BAS MCR>BASIC PROG.BAS/RN MCR>BAS PROG/RN:150 MCR>BAS ? 4*3+2\\.FILLS.SLU.HEADERLEVEL 1 ^CONTROL ^C.BRY.X _^^CS.X ^CONTROL ^C7^THE BREAK KEY FOR ^^BASIC\\ IS THE ^CONTROL-^C (_^^C).TA^A _^^C TYPED AT THE KEYBOARD WHEN RUNNING WILL CAUSE THE PROGRAMI>TO STOP AT THE NEXT SEQUENTIAL LINE (NOT AT A LINE ENTERED VIA__[___...]O\\.BRLK^WHERE EXPRESSIONS ARE EITHER ARITHMETIC OR STRING AND RELATIONAL OPERATORSL0CAN BE FORMED BY ANY COMBINATION OF _<, > AND =.I^THE TWO EXPRESSIONS WHICH ARE RELATED BY THE RELATIONAL OPERATOR MUST BE-,OF THE SAME TYPE: I.E. STRING OR ARITHMETIC.A^THE RESULT OF EVALUATING THE RELATIONSHIP (TERMED HERE A LOGICALP'SUBEXPRESSION) IS EITHER TRUE OR FALSE.E.FG 11I^STRINGS ARE COMPA00L2TADATADATADATADATADATARED CHARACTER BY CHARACTER ON THE BASIS OF THEIR = 5)L\\.F,.CHAPTER ^^LOADING/RUNNING/SAVING PROGRAMS\\K^THE SUBSET OF COMMANDS LISTED IN THIS CHAPTER IS PRIMARILY USED TO CONTROLH?EXECUTION OF STRING EXPRESSION FOLLOWING THE ^THE OPTIONAL SWITCH /^R^T MAY BE USED AS WITH ^^OLD\\ TO TRIMC^^REM\\ AND ! STATEMENTS WHEN THE FILE FORM OF THE COMMAND IS USED.NC^THE SWITCHES /

  • [N1][-N2][,N3...]\\ .BREAK%^PRIMARILY AN IMMEDIATE MODE COMMAND.R<^IT MAKES A COPY OF THE PRESENT PROGRAM ON THE FILE NAMED IN:THE STRING FILESPEC (STRING VARIABLE OR STRING IN QUOTES).=^OPTIONAL LINE NUMBERS OR LINE NUMBER RANGES CAN BE INCLUDED.S.FG 1X;^THE OPTIONAL SWITCH WILL PRODUCE A PSUEDO-COMPILED VERSIONT3WHICH CAN BE READ BACK WITH THE SAME SWITCH WITHOUTL:RE-INTERPRETING THE CODE THUS SAVING A CONSIDERABLE AMOUNTOF TIME FOR LONG PROGRAMS.>^THE DEFAULT EXTENSION WILL BE \\I.BREAKB^THE ^^OLD\\ COMMAND READS IN A PREVIOUSLY SAVED OR EDITED PROGRAM<FROM THE FILE NAMED IN THE STRING FILESPEC (AS IN ^^SAVE\\).:^THE OPTIONAL SWITCH, WHEN SPECIFIED, CAUSES TRUNCATION OF^^REM\\ AND ! STATEMENTS.E2^THE DEFAULT FILE SPEC00wUVWIFIER IS: ^^SY:PROGRAM.BAS\\=^THE .HEADERLEVEL 1 ^^CHAIN _\\.BREAK?^THE ^^CHAIN\\ COMMAND READS IN ANOTHER ^^BASIC\\ PROGRAM WHILEE/PRESERVING VARIABLES AND OPEN FILES' ^^FCB\\'S. H^^GOSUB/RETURN\\ POINTERS, ^^FOR\\ LOOP CONTROL TABLES, USER ^^DEF\\INEDDFUNCTIONS AND SCRATCH ITEMS ARE ALL DELETED FROM THE USER DATA AREA.A^THUS USER FUNCTIONS MUST BE REDEFINED IN ANY NEW PROGRAM MODULE.A.FG 1@^THE DEFAULT FILE SPECIFIER AND SWITCHES ARE THE SAME AS FOR THEJ^^OVERLAY\\ COMMAND WITH THE ADDITION OF THE /
  • \\E.BREAKL^THE ^^OVERLAY\\ COMMAND READS IN ADDITIONAL PROGRAM TEXT FROM THE SPECIFIEDIFILE AND ADDS THEM TO THE EXISTING PROGRAM JUST AS THOUGH THEY WERE TYPEDDFFROM THE KEYBOARD: I.E. NEW STATEMENTS WITH THE SAME LINE NUMBER AS AN2EXISTING STATEMENT REPLACE THE EXISTING STATEMENT.L^THE SAME PRECAUTIONS REGARDING FUNCTION DEFINITIONS AND ^^DATA\\ STATEMENTSCDURING DEBUGGING SHOULD ALSO BE OBSERVED WHEN USING THE ^^OVERLAY\\ASTATEMENT IN PROGRAM MODE..FG 1YK^THE OPTIONAL SWITCH (/^L^I) IS SIGNIFICANT IN PROGRAM MODE ONLY AND CAN BER:USED TO SPECIFY THE LINE AT WHICH EXECUTION SHOULD RESUME.D^THE /^IF NO LINE NUMBER IS SPECIFIED, EXECUTION RESUMES AT THE LINEFOLLOWING THE LAST STOP.8^NOTE THAT IF A BRANCH IS TAKEN THE LINE BEING EXECUTED,?THE PROGRAM WILL NOT STOP UNTIL THE NEXT LINE AFTER THE BRANCH.R2^THE STOP USES THE SAME INTERNAL FACILITIES AS THE_^^B BREAK FEATURE.X.BRE ^EXAMPLE:I.NFL^^ STEPR STEP 510V\\.F.SLL .X ^^CON\\.X ^PROGRAM CONTINUE .HEADERLEVEL 1 ^^CON [LINE _#]\\.BRE9^THIS COMMAND ALLOWS ONE TO RESUME EXECUTION OF A PROGRAMO-AFTER STOPPING IT FOR INTERACTIVE DE-BUGGING.R6^WHEN USED WITH THE OPTIONAL LINE NUMBER, IT FUNCTIONSJUST LIKE ^^GOTO\\GWITH THE EXCEPTION THAT THE NEXT AVAILABLE LINE AFTER THE ONE SPECIFIEDT#IS USED IF THERE IS NO EXACT MATCH.RK^IF NO LINE NUMBER IS SPECIFIED, EXECUTION IS RESUMED AT THE LINE FOLLOWINGETHE LAST STOP..BR ^EXAMPLE:S^^.NFE CON CON 100\\.F.CHAPTER ^^PROGRAM STATEMENTS\\HC^THE SUBSET OF COMMANDS LISTED IN THIS CHAPTER IS PRIMARILY USED TOU.CONTROL THE FLOW OF PROGRAM EXECUTION, RESERVEASTORAGE AREA FOR VARIABLES, PERFORM ARITHMETIC CALCULATIONS, ETC.R.SKIPN .X ^^GOSUB\\ .X ^^GOTO\\#.HEADERLEVEL 1 GOTO _\\E&.X ^^ON _ GOSUB _\\:.HEADERLEVEL 1 ^^ON _ GOTO _ _\\.BRF^THIS STATEMENT TRANSFERS CONTROL TO THE ^NTH LINE NUMBER IN THE LIST.D^THE EXPRESSION IS EVALUATED AS A NORMAL OCCUPY THE SAME RELATIVE STATEMENT POSITION IN THE LINE BEFORE>AND AFTER THE MODIFICATION: I.E. IT MUST BE THE FIRST OR THIRDETC. STATEMENT IN THE LINE.2.BREAK ^EXAMPLE:-.NOFILLU^^ 10 RETURN\\.FILLS.SKIPX .X ^^DIM\\.X ^STRING VARIABLES.HEADERLEVEL 1 ^STRING LENGTHS ARE INDICATED IN SQUARE BRACKETS [#] WHICH ARE<FOLLOWED BY A '^V' IF THE STRING IS TO HAVE VARIABLE LENGTH.;^IN THE CASE OF A VARIABLE LENGTH STRING, THE LENGTH IS THEI+MAXIMUM LENGTH WHICH THE STRING MAY ASSUME.B9^A STRING UNDECLARED IN A \\T.BREAKJ^THIS STATEMENT DECLARES CERTAIN VARIABLES AS "VIRTUAL ARRAYS" AND DEFINES>THEIR ALLOCATION ON THE FILE WHOSE ^FUNCTION NAMES RETURNING STRING VALUES MUST END IN '$', THOSE"RETURNING NUMERIC VALUES MUST NOT.C^FUNCTIONS ARE RECURSIVE, I.E. THEY MAY USE THEMSELVES AS ARGUMENTSIIN THE FUNCTION CALL.R.SKIPFA^FUNCTION DEFINITIONS CREATE AN INTERNAL POINTER TO THE ^^ASCII\\.$TEXT TO THE RIGHT OF THE EQUAL SIGN.@^FOR THIS REASON THEY SHOULD BE PLACED NEAR THE BEGINNING OF THEAPROGRAM TO AVOID BEING MOVED DURING DEBUGGING RUNS BY INSERTIONS,R@DELETIONS OR CHANGES TO LINES PRECEDING THE FUNCTION DEFINITION..SKIPF=^FUNCTION DEFINITIONS ARE DELETED BY THE ^^CHAIN\\ STATEMENT.E.SKIP ^EXAMPLE:U.NOFILLO^^ 30 DEF FNA1(A)=A^2I 40 DEF FNC$(X$)=X$+"ABC"E& 50 DEF FNZ3$(X$,I)=SEG$(X$,I,LEN(X$))\\.FILL.SKIPO .X ^^LET\\.X ^ARITHMETIC ASSIGNMENTR.HEADERLEVEL 1 .HEADERLEVEL 1 ^^SET PROMPT/TRACE/PASS-ALL/ECHO/UPPER ON/OFF\\.BR:F^THIS STATEMENT IS USED TO SET OR CLEAR A NUMBER OF SYSTEM CONDITIONS.@^THE NUMBER OF CONDITIONS IS LIKELY TO INCREASE IN THE FUTURE AS9FUNCTIONALITY IS ADDED. ^CONDITIONS NOW SERVICED INCLUDE:K.FG 1;_\\.BRR=^THE _\\E^THE \\.BRUD^THE 0; -1 IF ARGUMENT < 0;0 RETURNED IF ARGUMENT = 0.E.BREAK ^EXAMPLE:D.NOFILL^^ 10 A=SGN(A1)A\\.FILLR.SKIPN .X ^^INT\\.X ^INTEGER FUNCTION.HEADERLEVEL 1 IS INTERPRETED MODULO 36524 (THE NUMBER OF DAYS IN A CENTURY).A^IF THE ARGUMENT IS A ZERO OR NEGATIVE VALUE (OTHER THAN A SINGLEE/CHARACTER '0'), THEN A NULL STRING IS RETURNED. .BREAK ^EXAMPLE: .NOFILL^^% 50 A$=DAT$(0) : ! RETURN SYSTEM DATE  60 PRINT DAT$(12752)H% 70 A$=DAT$() : ! RETURN SYSTEM DATE\\.FILLL.SKIP .X ^^DDAT$\\.X STRING MUST BE IN THE FORM ^WHEN EXPRESSIONS ARE SEPARATED BY COMMAS, RESULTS ARE PRINTED IN FIELDS OF 14 CHARACTERS EACH.B^WHEN EXPRESSIONS ARE SEPARATED BY SEMICOLONS, RESULTS ARE PRINTED,NEXT TO EACH OTHER WITHOUT ANY SPACES ADDED.3^A TRAILING SEMICOLON WILL SUPPRESS ^^__\\. C^WHEN PRINTING WITH COMMA SEPARATION, AS MANY FIELDS ARE ALLOWED ASICAN FIT ON THE PRINTING DEVICE.AB^NOTE THAT NUMERIC VALUES, WHEN CONVERTED IN A ^^PRINT\\ STATEMENT"NORMALLY HAVE A SPACE AT EACH END.*^TO AVOID THIS, USE THE ^^STR$\\ FUNCTION..SKIPSD^ON BINARY FILES, THE FOLLOWING CONDITIONS HOLD: ^^TAB\\ IS IGNORED,FNO "FIELD" JUSTIFICATION IS PERFORMED AND ALL DATA LIST ITEMS MUST FITINTO THE EXISTING BUFFER.HC^FLOATING VALUES ARE STORED AS FOUR CONSECUTIVE BYTES WHICH ARE NOT< WORD ALIGNED.WF^STRINGS AND NUMERIC VALUES ARE PACKED TOGETHER AND MAY BE COMBINED IN ANY ORDER.G^IT IS UP TO THE USER TO KEEP TRACK OF THE INTERNAL STORAGE ARRANGEMENT\>FOR FUTURE USE WITH ^^INPUT\\ OR OTHER NON-^^BASIC\\ PROGRAMS..SLHF^A SYNONYM FOR ^^PRINT\\ IS "?" PRIMARILY FOR CONVENIENCE IN IMMEDIATE MODE USE.B.SL ^EXAMPLE:O.NOFILLJ^^ 50 PRINT A,3.5,"H00wUVWELLO";A$ 60 PRINT _#3,EXP(.5);X^Y;\\.FILLI.TP 6U.SKIP .X ^^INPUT\\.X ^BINARY INPUT.X ^RANDOM ACCESS ^I/^OC.HEADERLEVEL 1 ^THE SECOND FORM FOLLOWS THE RULES FOR RANDOM ACCESS DESCRIBEDFOR THE ^^PRINT\\ STATEMENT.?^NUMERIC DATA MUST BE SEPARATED BY COMMAS OR SPACES, SUCCESSIVE$GSTRING VARIABLES MUST BE SEPARATED BY A COMMA AFTER THE REQUIRED NUMBERX!OF CHARACTERS HAVE BEEN TYPED IN.IF^A CHARACTER LEGALITY CHECK IS PERFORMED TO ENSURE THAT ALL CHARACTERSDARE BETWEEN OCTAL ^^ASCII\\ CODES 40 AND 137 INCLUSIVE AND 11 (TAB).F^IF A "^FOR INPUT FROM THE TERMINAL (NO FILE NUMBER), A PROMPT STRING?(ONLY STRING DEFINED IN QUOTES ALLOWED) MAY BE SPECIFIED BEFORERTHE VARIABLE LIST.6^THIS IS EQUIVALENT TO A A VARIABLE LENGTH STRING WILL HAVE ITS LENGTH SHORTENED TO THE:AVAILABLE DATA IF DATA RUNS OUT, AND A FIXED LENGTH STRINGWILL BE BLANK FILLED.L?^IF DATA RUNS OUT WHILE FILLING A NUMERIC VARIABLE, THE RESULTSAFARE UNPREDICTABLE AND IN ANY CASE TERMINATE THE PROGRAM WITH AN ERROR..BREAK ^EXAMPLE:M.NOFILLA^^ 30 INPUT _#3,A1,B1$ 50 INPUT _#4@R+5,X1,X2,A1$ 6 80 INPUT "WHAT IS YOUR NAME",N$ : ! READ NAME INTO N$\\.FILL .SKIPR.X ^^INPUT LINE\\A.HEADERLEVEL 1 \\E.BREAK;^THE ^^SCRATCH\\ COMMAND MUST HAVE A FILE SPECIFIER WITH AN 2EXPLICIT VERSION NUMBER IN ORDER TO DELETE A FILE.2^THE DEFAULT FILE SPECIFIER IS: ^^SY:PROGRAM.BAS\\.BREAK ^EXAMPLE:H.NOFILLS^^ SCRATCH "DATA.DAT;3"O 50 SCRATCH "DK1:DAT3.TMP"\\.FILLE.SKIP .X ^^OPEN\\F .X ^FILE OPEN .X ^RANDOM ACCESS ^I/^OE.HEADERLEVEL 1 \\L.BRNB^THIS STATEMENT IS USED TO RESET THE END OF FILE BRANCH ON A GIVENDFILE OR WITHOUT THE "_#^N", IT SETS THE TERMINAL END OF FILE BRANCH.A^THE SPECIFIED FILE MUST HAVE BEEN OPENED WITH THE POSSIBILITY OF ABEING READ FROM (I.E. CANNOT BE \\.BROE^THIS COMMAND LOADS THE SPECIFIED FILE AS A USER CALLABLE SUBROUTINE.I^THE DEFAULT EXTENSION IS ^THIS COMMAND UNLOADS ALL USER ASSEMBLY ROUTINES LOADED BY THE.BRBA^THE ^IN THE CASE THAT A VALUE IS TO BE RETURNED, THE ARGUMENT MUST*BE A SIMPLE VARIABLE (MAY BE SUBSCRIPTED).A^FOR VALUES WHICH ARE PASSED, EITHER EXPRESSIONS OR VARIABLES MAYABE USED.=^THE VARIABLES AND EXPRESSIONS USED IN THE ARGUMENT LIST MUST.>MATCH THE TYPE (STRING OR NUMERIC) EXPECTED BY THE SUBROUTINE..FG 1N@^USER ROUTINES MUST PRESERVE THE TEXT POINTER (^R1) AND ON EXIT,>IF AN ARGUMENT LIST IS PRESENT, MUST POSITION IT JUST PAST THECLOSE PARENTHESIS./^SEE ^THEREFORE IT IS ALMOST ALWAYS PREFERABLE TO THE \\O.F?^THIS COMMAND FUNCTIONS SIMILARLY TO THE STANDARD TOTAL NUMBER OF CHOICES FOR THAT MULTIPLE CHOICE QUESTION (CANNEVER BE LESS THAN 2)..SLXE^THE QUESTION NAMES ARE USED FOR LINKING OF MULTIPLE CHOICE QUESTIONS.AND FOR QUESTION REPLACEMENT BY THE LIBRARIAN.4^QUESTION NAMES MAY BE UP TO 6 CHARACTERS IN LENGTH.B^THE CHARACTERS MUST BE LEGAL ^SBROUTINES ARE PROVIDED IN THREE DIFFERENT FORMS TO PERFORM ANUMBER OF DIFFERENT FUNCTIONS.^THE FUNCTIONS ARE AS FOLLOWS:.NF  1) ^DISPLAY QUESTIONI 2) ^POSITION TO QUESTIONE 3) ^RETURN QUESTION TEXT. 4) ^RETURN ANSWER TEXTI 5) ^RETURN QUESTION NAMEQ.SLO3^THE THREE FORMS OF THE SUBROUTINES ARE AS FOLLOWS:' 1) '^M' FORM: PERFORM FUNCTION BY NAMEEB 2) '^C' FORM: PERFORM FUNCTION ON QUESTION LINKED TO PREV. QUEST.9 3) '^R' FORM: PERFORM FUNCTION ON LAST QUESTION ACCESSEDG.SLS.FD^IN GENERAL TH00 L2TADATADATADATADATADATAE '^M' FORM AND '^C' FORM OF THE SUBROUTINES RESET THELAST QUESTION ACCESSED.IE^THE '^R' FORM, SINCE IT ACTS ON THE LAST QUESTION ACCESSED, DOES NOT CHANGE IT.H^THE ONE EXCEPTION IS THE '^C' FORM OF THE RETURN QUESTION NAME FUNCTION (^ALL LINES UP TO THE LINE WITH A LEADING <.ENDM DIRECTIVE WILL BE DISPLAYED.".SLS^^SINGLE LINE TEXT INPUT\\:C@^THE LINE OF TEXT IS DISPLAYED WITH THE CARRIAGE (CURSOR) TO THE+IMMEDIATE RIGHT OF THE TEXT JUST DISPLAYED. B^ANY SPACES REQUIRED AFTER THE TEXT MUST BE EITHER INCLUDED IN THE?QUESTION TEXT OR ADDED FROM THE PROGRAM VIA A ^THE QUESTION TEXT OF THE NAMED, LINKED OR CURRENT QUESTION ISCRETURNED IN THE VARIABLE ^IN THE FIRST CASE, THE NAME OF THE QUESTION LINKED BY ^IN THE SECOND CASE THE CURRENT QUESTION NAME WILL BE RETURNED IN OF THE SPAWNED TASK IS RETURNED IN THE (OPTIONAL) VARIABLE ^S..FG 1D^IF THE 2-WORD INPUT DESCRIPTOR ; (SP)=LEN, 2(SP)=ADDR1 JSR PC,@_#PARCHK ;CHECK FOR TRAILING RIGHT PARENE ;(ALSO BUMPS TEXT POINTER) MOV R1,-(SP) ;SAVE TEXT PTR( MOV 2(SP),R0 ;LEN OF INPUT STRING -> R0 BEQ 3$ ;IF ZERO, BRANCHP6 JSR PC,@_#TSTU00 ;CHECK FOR ROOM IN USER STORAGE AREA ;WIPES R3,R4, ) ;R5 -> NEXT BYTE IN USER STORAGE AREA4 BHI 1$ ;BRANCH IF ROOM EXISTS OVFERR ;ELSE DO ERROR TRAPA!1$: MOV 00#wUVWR0,R4 ;SAVE LENGTH IN R4S6 BIS _#160000,R0 ;MAKE R0 A "SCRATCH" DATA TYPE HEADER& MOV R0,(R5)+ ;PUT HEADER IN USER AREA/ MOV R5,R2 ;SAVE STRING ADDRESS (IN USER AREA) , MOV 4(SP),R3 ;ADDRESS OF INPUT STRING -> R3* MOV R4,R0 ;STRING LENGTH -> LOOP COUNTER- ADD R4,R3 ;BUMP R3 PAST END OF INPUT STRINGB(2$: MOVB -(R3),(R5)+ ;REVERSE THE STRING SOB R0,2$( MOV R2,R3 ;OUTPUT STRING ADDRESS -> R3! ;STRING LENGTH STILL IS IN R4I03$: MOV SP,R5 ;GET ADD OF RETURN ARG DESCRIPTOR ADD _#6,R5 ;IN R506 JSR PC,@_#SSTORE ;AND RETURN THE RESULT TO THE CALLER MOV (SP)+,R1 ;RESTORE TEXT PTR,& ADD _#7*2,SP ;CLEAN STACK OF 7 WORDS RTS PC ;AND RETURNEND: ;LABLE END OF CODE .ENDA E OMACRO COMMAND FILE M3REVSTR,REVSTR/-SP=LB:[1,202]LOAMAC/ML,[1,202]REVSTR  M 3TKB COMMAND FILE R$REVSTR.ATK/-HD/-FP,REVSTR/-SP=REVSTRLB:[1,1]BSCPUR.STB/SSM/RSTACK=0TUNITS=0G/D4.APPENDIX ^^USEFUL INTERNAL BASIC SUBROUTINE CALLS\\.NOFILL;^^?; GETARG: TO RETRIEVE ADDRESSES OR VALUES FROM AN ARGUMENT LISTT; IN A BASIC "CALL" STATEMENT.;A@; ON ENTRY: R5 POINTS TO A USER TABLE FOR RESULT TO BE PLACED IN5; R1 POINTS TO POS IN ARG LIST (MUST BE "," OR "(" )O:; R0 POINTS TO LIST OF BYTE ARG TYPES (TERM. BY 0 OR > 4)?; ON RETURN: R5 POINTS TO THE FIRST WORD PAST THE RETURNED DATAE:; R1 POINTS TO NEXT CHAR FOLLOWING LAST ARG JUST RETURNED1; R0 POINTS TO FIRST BYTE AFTER TERMINATING BYTEF; ARG TYPES IN R0 LIST:I7; 1 = INPUT NUMERIC EXPRESSION (2-WORD FLOATING POINT) ;V&; 2 = OUTPUT NUMERIC TARGET (5 WORDS); 2-WORD FP VALUE; 2-WORD FP OFFSETO; 1-WORD OFFSET TO HEADER;E5; 3 = INPUT STRING EXPRESSION (2 WORDS) LEN, ADDRESS(;O%; 4 = OUTPUT STRING TARGET (5-WORDS)S; 1-WORD ADDRESS ; 1-WORD LENGTH; 2-WORD FP OFFSET ; 1-WORD HEADER ADDRESS;E2; FOR STANDARD VARIABLE, FP-OFFSET IS FROM STUDAT6; FOR VIRTUAL VARIABLE, FP-OFFSET IS FROM FILE START; ; 0 OR > 4 = LIST TERMINATORP0; ALL OTHER REGISTERS WILL BE USED AND DESTROYED;UA; GTRGPI: POSITION INDEPENDENT ARGUMENT RETRIEVAL FOR USER LOADEDFE; ROUTINES. THE ARGUMENT TYPE LIST FOLLOWS THE CODE IN A JSR R4,GTPRINC; INSTRUCTION. THE ARGUMENT LIST ITSELF IS CONSTRUCTED ON THE STACK!; AND POINTED TO BY SP ON RETURN.R ; ON ENTRY: 3; R4 POINTS TO ARG TYPE LIST (VIA JSR R4,@_#GTRGPI)E"; OLD R4 ON STACK (WILL BE POPPED) ; ON RETURN:>; SP -> ARG LIST (ON STACK - TO BE REMOVED BY CALLING ROUTINE)"; OTHER REGISTERS: POTENTIALLY ALL;T; 8; NSTORE: TO STORE AWAY A VALUE FROM AC0 INTO A LOCATION5; STORED IN A TABLE SUCH AS THAT FILLED IN BY GETARG.O); ON CALL: R5 CONTAINS POINTER TO ADDRESSC"; AC0 CONTAINS VALUE TO BE STORED; ON RETURN: NOTHING CHANGED; REGISTERS USED: R0, AC1;N;O;E;O; @; SSTORE: TAKE A STRING DESCRIBED BY LEN IN R4 AND ADDRESS IN R3:; AND STORE IT INTO A STRING VARIABLE WHOSE TABLE ENTRY IS; POINTED TO BY R5.I;(.; ON CALL: R3 = ADDRESS OF STRING TO BE STORED%; R4 = LENGTH OF STRING TO BE STORED ,; R5 = POINTER TO OUTPUT STRING TABLE ENTRY; ); ON RETURN: R3 POINTS PAST END OF STRINGF ; R4 = 0 ; R5 UNCHANGEDL*; OTHER REGISTERS USED: R0,R2 (ALL BUT R1);A; !; ARGCNT: COUNT ARGUMENTS ROUTINET/; ON ENTRY: R1 POINTS TO LEADING OPEN PAREN "("; ON EXIT: R1 UNCHANGEDE7; R0 CONTAINS COUNT OF ARGUMENTS UP TO ")" IN THE LIST 5; QUOTED STRINGS AND SUBSCRIPTS ARE ACCOUNTED FOR ; OTHER REGISTERS USED: R2?; NOTE: AN END OF LINE WILL TERMINATE THE SCAN IRRESPECTIVE OFI9; ENCLOSING QUOTES AS LONG AS IT IS USED AS THE INTERNALT$; LINE DELIMITER (S.EOL1 OR S.EOL2);F;R;F; *; TSTU00 - CHECK FOR USER STORAGE OVERFLOW;S+; CHECK FOR POSSIBLE USER STORAGE OVERFLOWN;R ; ON ENTRY+; R0=NUMBER OF BITES TO PUT IN USER STORAGEA ; ON EXIT *; R5-> NEXT AVAILABLE BYTE IN USER STORAGE; OTHER REGISTERS USED ; R0,R3,R4; ; STATUS RETURNED IN C-BIT ; BHI WILL BRANCH IF ROOM EXISTS;I;R;S4; PARCHK: CHECK THAT NEXT CHARACTER IN TEXT IS A ")";R ; CALL WITHI; R1-> PROGRAM TEXT ;L; SUCCESSFUL RETURNT00+.2TADATADATADATADATADATA ; ")" IN R2; R1-> PAST ")" ; ERROR RETURN.; CALL TO "ERROR IN PROCESSING CALL STATEMENT";G;V;L;?; SKIP00: SKIP OVER BLANKS IN PROGRAM TEXT - GET NEXT CHARACTER;0; ENTER WITH R1 -> TEXTN;E ; EXIT STATUSN; R2 = CHARACTER3; R1 -> NEXT CHARACTER (AFTER R2 CHARACTER) IN TEXTS;;0; OTHER REGISTERS USED - NONEN;B;;H(; FORMAT FOR BASIC LOADABLE SUBROUTINES:; SET UP BY THE "ULODHD" MACRO; ; FIRST THREE WORDS:A; .WORD ID0001 ;THESE THREE WORDS ARE FILLED IN BY GLOBAL SYMBOLS ?; .WORD ID0002 ;FROM A SYMBOL TABLE FOR BASIC, ENSURING CORRECTC8; .WORD ID0003 ;SYMBOL LINKAGES (OR ELSE ERROR MESSAGE).; NEXT TWO WORDS ARE LENGTHS:N;; .WORD ?????? ;LENGTH (IN BYTES) OF CODE PLUS ENTRY POINTSU1; .WORD ?????? ;LENGTH (IN BYTES) OF ENTRY POINTS "; .WORD ?????? ;_# OF ENTRY POINTS<; NEXT ENTRIES ARE THREE WORD BLOCKS DESCRIBING ENTRY POINTS4; .RAD50 /NAME/ ;TWO WORDS OF RAD50 ENTRY POINT NAME0; .WORD ?????? ;OFFSET FROM START OF CODE PROPER>; FINALLY, ONE WORD CONTAINING NUMBER OF WORDS OF CODE PROPER:-; .WORD ?????? ;LEN (IN WORDS) OF CODE PROPERW; ;; NOTE: THESE MODULES MUST BE TASK BUILT WITH /-HD/-FP AND:W ; STACK=0N ; UNITS=0W; D; IN ADDITION POSITION INDEPENDENT CODING TECHNIQUES MUST BE USED IND; WRITING THE CODE BECAUSE ITS POSITION IN THE INTERPRETER WILL VARY.; DEPENDING ON WHAT OTHER ROUTINES ARE LOADED..APPENDIX ^^INDEX\\D.PXA?; GETARG: TO RETRIEVE ADDRESSES OR VALUES FROM AN ARGUMENT LISTO; IN A BASIC "CALL" STATEMENT.;O@; ON ENTRY: R5 POINTS TO A USER TABLE FOR RESULT TO BE PLACED IN5; R1 POINTS TO POS IN ARG LIST (MUST BE "," OR "(" )I:; R0 POINTS TO LIST OF BYTE ARG TYPES (TERM. BY 0 OR > 4)?; ON RETURN: R5 POINTS TO THE FIRST WORD PAST THE RETURNED DATAS:; R1 POINTS TO NEXT CHAR FOLLOWING LAST ARG JUST RETURNED1; R0 POINTS TO FIRST BYTE AFTER TERMINATING BYTET; ARG TYPES IN R0 LIST:A7; 1 = INPUT NUMERIC EXPRESSION (2-WORD FLOATING POINT) ;V&; 2 = OUTPUT NUMERIC TARGET (5 WORDS); 2-WORD FP VALUE; 2-WORD FP OFFSETO; 1-WORD OFFSET TO HEADER;E5; 3 = INPUT STRING EXPRESSION (2 WORDS) LEN, ADDRESS(;I%; 4 = OUTPUT STRING TARGET (5-WORDS)S; 1-WORD ADDRESS ; 1-WORD LENGTH; 2-WORD FP OFFSET ; 1-WORD HEADER ADDRESS;E2; FOR STANDARD VARIABLE, FP-OFFSET IS FROM STUDAT6; FOR VIRTUAL VARIABLE, FP-OFFSET IS FROM FILE START; ; 0 OR > 4 = LIST TERMINATORP0; ALL OTHER REGISTERS WILL BE USED AND DESTROYED;UA; GTRGPI: POSITION INDEPENDENT ARGUMENT RETRIEVAL FOR USER LOADEDFE; ROUTINES. THE ARGUMENT TYPE LIST FOLLOWS THE CODE IN A JSR R4,GTPRINC; INSTRUCTION. THE ARGUMENT LIST ITSELF IS CONSTRUCTED ON THE STACK!; AND POINTED TO BY SP ON RETURN.R ; ON ENTRY: 2; R4 POINTS TO ARG TYPE LIST (VIA JSR R4,@#GTRGPI)"; OLD R4 ON STACK (WILL BE POPPED) ; ON RETURN:>; SP -> ARG LIST (ON STACK - TO BE REMOVED BY CALLING ROUTINE)"; OTHER REGISTERS: POTENTIALLY ALL; ;E8; NSTORE: TO STORE AWAY A VALUE FROM AC0 INTO A LOCATION5; STORED IN A TABLE SUCH AS THAT FILLED IN BY GETARG. ); ON CALL: R5 CONTAINS POINTER TO ADDRESSE"; AC0 CONTAINS VALUE TO BE STORED; ON RETURN: NOTHING CHANGED; REGISTERS USED: R0, AC1; ; ;N; ;B@; SSTORE: TAKE A STRING DESCRIBED BY LEN IN R4 AND ADDRESS IN R3:; AND STORE IT INTO A STRING VARIABLE WHOSE TABLE ENTRY IS; POINTED TO BY R5.I;(.; ON CALL: R3 = ADDRESS OF STRING TO BE STORED%; R4 = LENGTH OF STRING TO BE STOREDE,; R5 = POINTER TO OUTPUT STRING TABLE ENTRY; ); ON RETURN: R3 POINTS PAST END OF STRINGF ; R4 = 0 ; R5 UNCHANGEDL*; OTHER REGISTERS USED: R0,R2 (ALL BUT R1);A; !; ARGCNT: COUNT ARGUMENTS ROUTINET/; ON ENTRY: R1 POINTS TO LEADING OPEN PAREN "("; ON EXIT: R1 UNCHANGEDE7; R0 CONTAINS COUNT OF ARGUMENTS UP TO ")" IN THE LIST 5; QUOTED STRINGS AND SUBSCRIPTS ARE ACCOUNTED FOR ; OTHER REGISTERS USED: R2?; NOTE: AN END OF LINE WILL TERMINATE THE SCAN IRRESPECTIVE OFI90037UVW; ENCLOSING QUOTES AS LONG AS IT IS USED AS THE INTERNALT$; LINE DELIMITER (S.EOL1 OR S.EOL2);F;R;F; *; TSTU00 - CHECK FOR USER STORAGE OVERFLOW;S+; CHECK FOR POSSIBLE USER STORAGE OVERFLOWN;R ; ON ENTRY+; R0=NUMBER OF BITES TO PUT IN USER STORAGEA ; ON EXIT *; R5-> NEXT AVAILABLE BYTE IN USER STORAGE; OTHER REGISTERS USED ; R0,R3,R4; ; STATUS RETURNED IN C-BIT ; BHI WILL BRANCH IF ROOM EXISTS;I;R;S4; PARCHK: CHECK THAT NEXT CHARACTER IN TEXT IS A ")";R ; CALL WITHI; R1-> PROGRAM TEXT ;L; SUCCESSFUL RETURNT ; ")" IN R2; R1-> PAST ")" ; ERROR RETURN.; CALL TO "ERROR IN PROCESSING CALL STATEMENT";G;V;L;?; SKIP00: SKIP OVER BLANKS IN PROGRAM TEXT - GET NEXT CHARACTER;0; ENTER WITH R1 -> TEXTN;E ; EXIT STATUSN; R2 = CHARACTER3; R1 -> NEXT CHARACTER (AFTER R2 CHARACTER) IN TEXTS;;0; OTHER REGISTERS USED - NONEN;B;;H(; FORMAT FOR BASIC LOADABLE SUBROUTINES:; SET UP BY THE "ULODHD" MACRO; ; FIRST THREE WORDS:A; .WORD ID0001 ;THESE THREE WORDS ARE FILLED IN BY GLOBAL SYMBOLS ?; .WORD ID0002 ;FROM A SYMBOL TABLE FOR BASIC, ENSURING CORRECTC8; .WORD ID0003 ;SYMBOL LINKAGES (OR ELSE ERROR MESSAGE).; NEXT TWO WORDS ARE LENGTHS:N;; .WORD ?????? ;LENGTH (IN BYTES) OF CODE PLUS ENTRY POINTSU1; .WORD ?????? ;LENGTH (IN BYTES) OF ENTRY POINTS !; .WORD ?????? ;# OF ENTRY POINTST<; NEXT ENTRIES ARE THREE WORD BLOCKS DESCRIBING ENTRY POINTS4; .RAD50 /NAME/ ;TWO WORDS OF RAD50 ENTRY POINT NAME0; .WORD ?????? ;OFFSET FROM START OF CODE PROPER>; FINALLY, ONE WORD CONTAINING NUMBER OF WORDS OF CODE PROPER:-; .WORD ?????? ;LEN (IN WORDS) OF CODE PROPERW; ;; NOTE: THESE MODULES MUST BE TASK BUILT WITH /-HD/-FP AND:W ; STACK=0N ; UNITS=0W; D; IN ADDITION POSITION INDEPENDENT CODING TECHNIQUES MUST BE USED IND; WRITING THE CODE BECAUSE ITS POSITION IN THE INTERPRETER WILL VARY.; DEPENDING ON WHAT OTHER ROUTINES ARE LOADED. ;********* ; * ; BASIC0 * ; * ;*********;O;O;P1; LIST OF MAJOR ROUTINES USED IN BASIC MODULE #E; ATOF00 ;ASCII TO FLOATING 1 ATOI00 ;ASCII TO INTEGER 1 # CLOS00 ;CLOSE ANY OPEN FILES 3O, CLRU00 ;CLOSE TEMP USER SPACE (IF ANY) 3 CRLF00 ;DO [CR,LF] 3* DIMC00 ;CHECK LEGALITY OF DIMENSIONS 3, EVAL00 ;EVALUATE ARITHMETIC EXPRESSION 2( EVLS00 ;EVALUATE STRING EXPRESSION 2& FIND00 ;FIND LINE NUMBER (IN R0) 3% GETV00 ;GET TRUNCATED VARIABLE 3*& ITOA00 ;CONVERT INTEGER TO ASCII 1, JUNK00 ;SKIP OVER TRASH TO END OF LINE 3+ PCK00 ;PACK LINE INTO WORKING STORAGE 3; PRNT00 ;PRINT CHARACTER 3& PRN00 ;PRINT LINE, R0=FBA,R1=LBA 3 PRLN00 ;PRINT LINE NUMBER 3* PUSH00 ;PUSH ONE WORD INTO USER LIST 3+ SCR00 ;DELETE N BYTES FROM USER SPACE 3O, SKIP00 ;SKIP OVER SPACES IN INPUT TEXT 3. SQU00 ;DELETE TEXT TO TERMINATOR AND PACK 34 SRCH00 ;SEARCH FOR LINE FEED USING R1 AS POINTER 3+ SRL00 ;SEARCH FOR ITEM IN USER STORAGE 3 $ STRL00 ;COMPUTE STRING LENGTH 3. TST00 ;TEST CHAR (IN R2) ALPHA VS NUMERIC 3. TSTU00 ;CHECK, IS THERE ENOUGH USER SPACE 3, FNMB00 ;GET FILE NUMBER AND SET UP FILE 3 ,-; ERROR CALLS IN BASIC ARE MADE BY TRAP CALLSP;05; THE FOLLOWING IS A LIST OF IMPLEMENTED ERROR CALLS. ;E; FATAL ERROR CALLSO;S# OVFERR ;USER STORAGE OVERFLOW - 0T$ UNRERR ;UNRECOGNIZED STATEMENT - 1" GOERR ;ILLEGAL GOTO OR GOSUB - 20 ILCERR ;ILLEGAL CHARACTER TERMINATING STMT - 3" RETERR ;RETURN WITHOUT GOSUB - 4$ SBSERR ;BADLY FORMED SUBSCRIPT - 5$ SUBERR ;SUBSCRIPT OUT OF RANGE - 6$ PARERR ;MISMATCHED PARENTHESES - 7 LETERR ;ILLEGAL LET - 8 / OPRERR ;ILLEGAL RELATIONAL OPERATOR IN IF - 9  IFERR ;ILLEGAL IF - 10 PRNERR ;ILLEGAL PRINT - 11" LINERR ;INPUT LINE TOO LONG - 12 DIMERR ;BAD DIMENSION - 137 DMVERR ;NOT ENOUGH ROOM IN STORAGE FOR THE ARRAY - 14N" DEFERR ;BADLY FORMED DEFINE - 155 LNNERR ;ILLEGAL LINE NUMBER OR DIMENSION VALUE - 16T6 DMDERR ;DIM OF PRE00;.2TADATADATADATADATADATAVIOUSLY DECLARED OR USED ITEM - 17) INPERR ;BAD VARIABLE IN INPUT LIST - 18U( REAERR ;BAD VARIABLE IN READ LIST - 19 RE1ERR ;OUT OF DATA - 20- RE2ERR ;BAD FORMAT IN A DATA STATEMENT - 21N$ FORERR ;ILLEGAL FOR STATEMENT - 22# NXTERR ;NO NEXT MATCHING FOR - 23  NXMERR ;NEXT WITHOUT FOR - 24 , UNMERR ;UNMATCHED QUOTES IN STATEMENT - 254 EXFERR ;EXTERNAL FUNCTION NOT PROPERLY SET UP - 26$ ILFERR ;ILL FORMED EXPRESSION - 27# CSIERR ;COMMAND STRING ERROR - 28L! STRERR ;SBS FUNCTION ERROR - 29L' STXERR ;SYNTAX ERROR IN FUNCTION - 30A# OPNERR ;SYNTAX ERROR IN OPEN - 31R$ CLSERR ;SYNTAX ERROR IN CLOSE - 32" FNMERR ;INVALID FILE NUMBER - 33 EOFERR ;END OF FILE ERROR - 34% CLOSER ;FCS ERROR DURING CLOSE - 352$ OPENER ;FCS ERROR DURING OPEN - 361 CALERR ;ERROR IN PROCESSING CALL STATEMENT - 37C1 ARGERR ;ERROR IN PROCESSING CALL ARGUMENTS - 38N3 STOERR ;ERROR IN STORE DURING CALLED ROUTINE - 39E8 OPLBER ;ERROR IN SYNTAX OR LUN IN USE IN LIB OPEN - 406 OPLFER ;FCS ERROR IN LIBRARY OPEN OR FIRST READ - 41% SLPERR ;ERROR IN SLEEP COMMAND - 42R$ WATERR ;ERROR IN WAIT COMMAND - 43% TMOERR ;TIMEOUT ERROR ON INPUT - 44N PRIERR ;PRIORITY ERROR - 45L! PRFERR ;PROGRAM FILE ERROR - 46U% FACERR ;FILE ACCESS MODE ERROR - 47U. LODERR ;ERROR IN LOADED USER SUBROUTINE - 48( VFIERR ;VIRTUAL FILE ACCESS ERROR - 49& VOPERR ;VIRTUAL FILE OPEN ERROR - 50# SETERR ;ERROR IN SET COMMAND - 51-6 COMERR ;USE OF /CO SWITCH ON NORMAL BASIC SOURCE -526 IMMERR ;IMMEDIATE MODE COMMAND IN SOURCE PROGRAM -53! TM1ERR ;DEBUGGING ERROR #1 - 62M! TM2ERR ;DEBUGGING ERROR #2 - 63  M; ; NON-FATAL ERROR CALLSR; ;I- LOGERR ;LOG OF NEGATIVE OR ZERO NUMBER - 64F- SQRERR ;SQUARE ROOT OF NEGATIVE NUMBER - 65A. DVFERR ;DIV.-MUL. OVERFLOW OR UNDERFLOW - 66& FIXERR ;NUMBER TOO LARGE TO FIX - 67& FOFERR ;FLOATING POINT OVERFLOW - 68' FUFERR ;FLOATING POINT UNDERFLOW - 69 $ NXVERR ;NON-EXISTENT VARIABLE - 70" IN1ERR ;TOO MUCH DATA TYPED - 71$ IN2ERR ;NOT ENOUGH DATA TYPED - 72* IN3ERR ;ILLEGAL CHARACTERS ON INPUT - 73$ VALERR ;ERROR IN VAL FUNCTION - 74 ;; END OF DIAGNOSTIC CALLS ;O A;R; (TRAP01: VA ARYL00 ;COMPUTE ARRAY LENGTH VA ATOF00 ;ASCII TO FLOATING VA ATOI00 ;ASCII TO INTEGERF$ VA CLOS00 ;CLOSE ANY OPEN DATASETS/ VA CLRU00 ;DELETE TEMPORARY USER SPACE IF ANYF VA CRLF00 ;TYPE O" VA DIMC00 ;CHECK LEGAL DIMENSION VA EVAL00 ;EVALUATE EXPRESSION) VA EVLS00 ;EVALUATE A STRING EXPRESSIONY- VA FIND00 ;FIND LINE NUMBER SPECIFIED IN R0, VA GTDR00 ;GET ADDRESS OF VARIABLE ELEMENT& VA GET00 ;GET PARAMETERS FOR COMMAND% VA GTSD00 ;GET A STRING VAR ADDRESS# VA GETV00 ;GET TRUNCATED VARIABLE  VA ITOA00 ;INTEGER TO ASCIIL& VA JUNK00 ;FIND LOGICAL END OF LINE* VA PCK00 ;PACK LINE INTO WORKING STORAGE' VA PRNT00 ;TYPE ONE CHARACTER FROM R2F' VA PRN00 ;PRINT LINE - R0=FBA, R1=LBA  VA PRLN00 ;TYPE LINE NUMBERL' VA PSH00 ;PUSH NAMED VARIABLE ON LISTA* VA PSHS00 ;PUSH NAMED STRING VAR TO LIST, VA PUSH00 ;PUSH ONE WORD ON THE USER STACK$ VA PUT00 ;PUSH A VALUE ON THE LIST* VA SCR00 ;DELETE N BYTES FROM USER SPACE+ VA SKIP00 ;SKIP BLANKS IN WORKING STORAGET% VA SQU00 ;DELETE TEXT TO TERMINATORG! VA SRCH00 ;SEARCH FOR LINE FEEDG+ VA SRL00 ;SEARCH FOR ITEM IN USER STORAGEW% VA STRL00 ;CALC STRING ARRAY LENGTHH) VA SUBS00 ;COMPUTE SUBSCRIPT EXPRESSIONR& VA TST00 ;TEST ALPHABETIC VS NUMERIC( VA TSTU00 ;CHECK FOR ENOUGH USER SPACE% VA TWO00 ;PACK TWO CHARACTERS IN R4V) VA TXT00 ;GET EVEN USER STORAGE ADDRESSH- VA FNMB00 ;SETUP FILE CONTROL BLOCK FOR I/OI; ; END OF TRAP HANDLERd a third and the 8third contained a fourth. The fourth level is ignored. #.le; RNO -- Too many tabs specifiedu.pG The maximum number of tabs stops you may specify is 32. Any specifiede)beyond the thirty-second one are ignored. .helpc Undefined!00C7UVW/ BASIC0 MACRO Y05.02 Wednesday 27-Aug-86 15:06Table of contents# 2- 7 TRAP MACRO DEFINITIONS" 4- 82 JSR MACRO DEFINITIONS1 7- 390 TRAP ERROR CALLS - MACRO DEFINITIONS 9- 478 ERROR TRAP HANDLER7 BASIC0 MACRO Y05.02 Wednesday 27-Aug-86 15:06 Page 16 1 ; CONDITIONAL TO ASSEMBLE MODULES OF BASIC 2 ; 3 000001 RSX11M=1 4 5I 6 ; FOLLOWING LINE USED WITH IMPUR.MAC TO ASSEMBLE A VERSION OFI 7 ; IMPUR HAVING FSR PSECTS ALONG WITH GLOBAL SYMBOL DEFINITIONlC 8 ; ** USED TO CREATE A SINGLE USER (NON-SHARED) BASIC **J 9 ;T 10 000001 SNGUSR=1  11A 12II 13 ; FOLLOWING LINE CAUSES OF BASIC UNDER RSX11M OR IAS V 3.2 TO7B 14 ; DYNAMICALLY EXTEND ITSELF WHEN USER STORAGE RUNS OUT 15 000001 M11EXT=1 16 ;IASEXT=1X 17  18 E 19 ; HEADER FILE TO DEFINE SYMBOL TASK FOR ASSEMBLING MODULEVG 20 ; IMPUR AS A TASK MODULE (AS OPPOSED TO SYMBOL TABLE ONLY).L, 21 ; ** USED FOR SHAREABLE BASIC ** 22 ;N 23 ;TASK=1 24  25  260M 27 ;DEFINE THE CONDITIONAL TO HAVE UNDEFINED VARIABLES AUTOMATICALLYC$ 28 ;DEFINED WHEN REFERENCED 29 ;A 30 000000 DEFVAR=0T 31S 32  330G 34 ;DEFINE THE CONDITIONAL TO GENERATE FULL ERROR MESSAGE TEXT 35 ;D 36 000000 FULTXT=0I 37V 38 M 39 ;DEFINE THE DEFAULT UIC VARIABLE TO BE OTHER THAN 0 TO ENABLE THE U 40 ;DEFAULT UIC OPTION WITH THE VARIABLE SET TO THE OCTAL UIC CODE, (USUALLY R 41 ;1,1 OR 401, IF BASIC TRIES TO DO AN "OLD" "CHAIN", "RUN" ETC AND DOESQ 42 ;NOT FIND THE PROGRAM IN QUESTION UNDER THE CURRENT UIC, IT WILL ALSOFS 43 ;TRY TO FIND THE PROGRAM UNDER THE DEFAULT UIC. THIS ENABLES FREQUENTLY 2 44 ;USED PROGRAMS TO BE USED FROM ANY UIC 45 ;= 46 000401 DEFUIC=401  47N 48AP 49 ;DEFINE THE CONDITIONAL TO INCLUDE FPP EMULATION PACKAGE (FPPEMULAT). 50 ;FOR USE WITH A PDP 11/40 WITH FIS 51 ; FPPEMU=0 52, 53 R 54 ;DEFINE CONDITIONAL SO THAT SPAWN TRIES SENDING COMMAND LINE TO ...MAS 55 ;IF FIRST CALL FAILS 56 ;TRYMAS=1  57T9 BASIC0 MACRO Y05.02 Wednesday 27-Aug-86 15:06 Page 1-1U 584T 59 ;DEFINE CONDITIONAL SO THAT IF WE ARE RUNNING ON A PRO UNDER P/OS, WE DOO 60 ;NOT DO A GETMCR COMMAND LINE DIRECTIVE, (NOT AVAILABLE UNDER P/OS)U 61 ;PRO=17 BASIC0 MACRO Y05.02 Wednesday 27-Aug-86 15:06 Page 2  1 ;********* 2 ; * 3 ; BASIC0 * 4 ; * 5 ;********* 6 .TITLE BASIC0* 7 .SBTTL TRAP MACRO DEFINITIONS 8 ;.S 9 ; DOS VERSION FROM WHICH THE RSX VERSION EVOLVED WAS ORIGIANLLY A DECUSAG 10 ; LIBRARY PROGRAM MODIFIED BY FRANK KORZENIEWSKI OF RPSLMC.D 11 ;A8 12 ; BASIC TRAP HANDLER OBJECT MODULE 31 MAY 729 13 ; PROVIDES ONE WORD TRAP SUBROUTINE CALLS ANDP 14 ; ERROR HANDLING 15 ; F 16 ; MODIFIED BY LARRY SIMPSON 12-SEP-75 FOR ERROR TRAPS ONLYA 17 ; AND USE OF WORD ON STACK RETURNED BY RSX EXECUTIVE.M 18 ;S. 19 ; MODIFIED FOR "MO" ERROR HANDLING( 20 ; BY LARRY SIMPSON 15-OCT-75 21 ; > 22 ; MODIFIED FOR "ON ERROR GOTO" USER ERROR HANDLING( 23 ; BY LARRY SIMPSON 13-DEC-76 24 ;OB 25 ; MODIFIED FOR FLOATING POINT EXCEPTION ERROR HANDLING( 26 ; BY LARRY SIMPSON 17-DEC-76 27 ; a 28 ; MODIFIED FOR FLOATING POINT EMULATION (CONDITIONAL ON 'FPPEMU') ;DSS1Fa 29 ; FPPEMU IS DEFINED (OR NOT) IN PREFIX ASSEMBLY FILE ;DSS1Aa 30 ; BY DANIEL STEINBERG 18-JAN-79 ;DSS1Ra 31 ; 00K.2TADATADATADATADATADATA ;DSS1 a 32 ; MODIFIED TO INCLUDE 'VARIABLE TYPE MISMATCH ERROR' (VTMERR - 52) ;DSS1 a 33 ; WHEN STRING AND NUMERIC VARIABLES ARE MIXED TOGETHER (PREVIOUSLY, THE ;DSS1 a 34 ; PROGRAM TRAPPED OUT ON ODD ADDRESS OR ILLEGAL INSTRUCTION OR MEMORY FAULT) ;DSS1 a 35 ; *** THIS IS NOT THE ONLY ERROR THAT CAN BE GENERATED WHEN THERE IS ;DSS1 a 36 ; A MISMATCHED EXPRESSION....THE WHOLE ERROR CODE STRUCTURE WILL ;DSS1 a 37 ; EVENTUALLY BE MODIFIED *** ;DSS1 a 38 ; BY DANIEL STEINBERG 14-FEB-79 ;DSS1 a 39 ; ;DSS1La 40 ; FIXED MINOR BUG IN ERROR ROUTINE UNDER RSX11M ;DSS1 a 41 ; D.S. ;DSS1 a 42 ; ;DSS1 a 43 ; ;DSS1 a 44 ;-355,,/;DSS1/ ;DSS1 D 45 ; TV VTMERR ;VARIABLE TYPE MISMATCH CHANGED TO #54, (FB)P 46 ; DEFINE FOR RSX11D IF RSX11M IS NOT DEFINED BY HEADER FILE TO MACRO 47 ;  48 .IF NDF RSX11M 9 49 RSX11D=1 ;DEFINE FOR RSX11D MO ERROR HANDLING  50 .ENDC& 51 ; GLOBAL PROGRAM EXTERNALS 52 ; 7 53 .GLOBL ENDSTK STOP02 TINPT TOTPT INPT OTPT = 54 .GLOBL STUDAT ENUDAT DETACH GOTO03 FPEXFL LINEFL 55 ; " 56 ; GLOBALS DEFINED HERE! 57 .GLOBL FPERMS CTCENTA9 BASIC0 MACRO Y05.02 Wednesday 27-Aug-86 15:06 Page 2-1ETRAP MACRO DEFINITIONS 58 .IF DF RSX11D 59 .GLOBL STRD 60 .ENDC 61 ; ' 62 ; MO PARAMETER LIST GLOBALSH< 63 .GLOBL PARLST P.ERCD P.LINE P.FCS P.FLNM P.FNAM 64 ;  65 ; MACRO CALLS  66 .MCALL DIR$ ASTX$SP 67 .IF DF RSX11D& 68 .MCALL MOUT$ MODF$ MOWA$S 69 .ENDCE 70 ;TRAP ENTRY POINT GLOBALS - FOR SVTK$ AND SFPA$ IN BASIC3S 71 ;2! 72 .GLOBL TRAP00 FPEXTR- 73 ;D 74 ;  75 .MACRO TV .SYM  76 .SYM = TRAP  77 TRAP=TRAP+1  78 .GLOBL .SYM 79 .ENDM7 BASIC0 MACRO Y05.02 Wednesday 27-Aug-86 15:06 Page 4.JSR MACRO DEFINITIONS ) 82 .SBTTL JSR MACRO DEFINITIONS 83 ; 3 84 ; MODIFICATION BY FRANK BORGER 5-SEP-75O 85 ; C 86 ;CODE TO CONVERT TRAP SUBROUTINE CALLS TO NORMAL JSR'S & 87 ;FOR OPERATION UNDER RSX. 88 ;E 89 ;DEFINE A GENERAL MACRO TO GENERATE A SECOND MACRO WHICHY1 90 ;CONVERTS A TRAP NAME OF XXXXXX TO A+ 91 ; JSR PC,XXXXXX 92 ; 93 .MACRO TRPSUB A,B 94 .MACRO Ag 95 JSR PC,BI 96 .ENDM 97 .ENDM 98 ; 8 99 ; NOW ALL THE ONE-TIME TRAPS THAT BASIC USES 100 ; 8 101 000000 TRPSUB ATOF,ATOF00 ;ASCII TO FLOATING7 102 000000 TRPSUB ATOI,ATOI00 ;ASCII TO INTEGER.= 103 000000 TRPSUB CLOSEF,CLOS00 ;CLOSE ANY OPEN FILESAG 104 000000 TRPSUB CLRUSR,CLRU00 ;CLOSE TEMP USER SPACE (IF ANY) 1 105 000000 TRPSUB CRLF,CRLF00 ;DO [CR,LF] E 106 000000 TRPSUB DIMCHK,DIMC00 ;CHECK LEGALITY OF DIMENSIONSPE 107 000000 TRPSUB EVAL,EVAL00 ;EVALUATE ARITHMETIC EXPRESSION B 108 000000 TRPSUB EVALS,EVLS00 ;EVALUATE STRING EXPRESSIONA 109 000000 TRPSUB FINDLN,FIND00 ;FIND LINE NUMBER (IN R0)0? 110 000000 TRPSUB GETVAR,GETV00 ;GET TRUNCATED VARIABLEP? 111 000000 TRPSUB ITOA,ITOA00 ;CONVERT INTEGER TO ASCIIUG 112 000000S7UVW00 TRPSUB JUNKIT,JUNK00 ;SKIP OVER TRASH TO END OF LINEUD 113 000000 TRPSUB PACK,PCK00 ;PACK LINE INTO WORKING STORAGE8 114 000000 TRPSUB PRINTC,PRNT00 ;PRINT CHARACTERA 115 000000 TRPSUB PRINTL,PRN00 ;PRINT LINE, R0=FBA,R1=LBAU: 116 000000 TRPSUB PRNTLN,PRLN00 ;PRINT LINE NUMBERC 117 000000 TRPSUB PUSH,PUSH00 ;PUSH ONE WORD INTO USER LIST F 118 000000 TRPSUB SCRNCH,SCR00 ;DELETE N BYTES FROM USER SPACEE 119 000000 TRPSUB SKIP,SKIP00 ;SKIP OVER SPACES IN INPUT TEXTKJ 120 000000 TRPSUB SQUISH,SQU00 ;DELETE TEXT TO TERMINATOR AND PACKQ 121 000000 TRPSUB SRCHLF,SRCH00 ;SEARCH FOR LINE FEED USING R1 AS POINTERTF 122 000000 TRPSUB SRLST,SRL00 ;SEARCH FOR ITEM IN USER STORAGE> 123 000000 TRPSUB STRLEN,STRL00 ;COMPUTE STRING LENGTHI 124 000000 TRPSUB TSTCH,TST00 ;TEST CHAR (IN R2) ALPHA VS NUMERIC I 125 000000 TRPSUB TSTOK,TSTU00 ;CHECK, IS THERE ENOUGH USER SPACE1G 126 000000 TRPSUB FNMBR,FNMB00 ;GET FILE NUMBER AND SET UP FILE 7 BASIC0 MACRO Y05.02 Wednesday 27-Aug-86 15:06 Page 5 JSR MACRO DEFINITIONS0 128 ;+1S 129 ; .SKIPE 130 ; .X ^INTRODUCTIONV 131 ; ^THIS ^^BASIC\\ FOLLOWS ^^DEC\\'S ^^BASIC-11\\ IN ITS BASIC ORIENTATION.X 132 ; ^ADVANCED FEATURES TEND TO FOLLOW MAY FOLLOW FOR NORMAL INTERACTIVE USE OR ONE OF TWO OTHERA 306 ; OPTIONS MAY FOLLOW BEFORE _<^C^R> FOR SPECIAL USES.S 307 ; .FG 10W 308 ; ^IF A SPACE AND A ? FOLLOWED BY AN ARITHMETIC EXPRESSION FOLLOWS ^^BAS\\,S 309 ; THE VALUE OF THE EXPRESSION WILL BE PRINTED ON THE NEXT LINE FOLLOWEDN) 310 ; BY A RETURN TO THE ^^MCR\\.^J 311 ; ^THIS IS USEFUL FOR QUICK DESK CALCULATOR TYPE CALCULATIONS. 312 00k.2TADATADATADATADATADATA ; .FG 1OR 313 ; ^IF A SPACE (OR TAB) AND A FILE NAME WITH AN OPTIONAL SWITCH FOLLOW,U 314 ; THEN THAT FILE WILL BE READ IN AS A USER PROGRAM JUST AS IN THE ^^OLD\\S 315 ; COMMAND. 316 ; .FG 1PR 317 ; ^IF THE SWITCH (/^R^N) IS SPECIFIED, THE PROGRAM WILL ALSO BE RUN AS8 318 ; THOUGH THE ^^RUN\\ COMMAND HAD BEEN TYPED.N 319 ; ^A SWITCH OF THE FORM "{BAS}A% 333 ; MCR>{BASIC PROG.BAS/RN}<$ 334 ; MCR>{BAS PROG/RN:150} 335 ; MCR>{BAS ? 4*3+2}E 336 ; \\ 337 ; .FILL  338 ;- 339 ;+2YY 340 ; ^THE SUBSET OF COMMANDS LISTED IN THIS CHAPTER IS PRIMARILY USED TO CONTROLTM 341 ; EXECUTION OF 472 000000 TV IN3ERR ;ILLEGAL CHARACTERS ON INPUT - 738 473 000000 TV VALERR ;ERROR IN VAL FUNCTION - 74 474 ;L% 475 ; END OF DIAGNOSTIC CALLS 476 ;B7 BASIC0 MACRO Y05.02 Wednesday 27-Aug-86 15:06 Page 9LERROR TRAP HANDLER& 478 .SBTTL ERROR TRAP HANDLER 479 ;R 480 ; $ 481 ; TRAP AND ERROR HANDLERF 482 ; FATAL ERRORS WIPE OUT THE SYSTEM STACK AND RETURN TO THEI 483 ; COMMAND INTERPRETER AFTER GIVING THE DIAGNOSTIC. NON-FATAL 3 484 ; ERRORS RETURN TO THE CALLING ROUTINE. " 485 ; REGISTER ASSIGNMENTS 486 ; = 487 000000 R0 = %0 ;TEMPORARY AND PARAMETER TRANSFER = 488 000001 R1 = %1 ;TEMPORARY AND PARAMETER TRANSFER$ 489 000002 R2 = %2 ;SCRATCH$ 490 000003 R3 = %3 ;SCRATCH$ 491 000004 R4 = %4 ;SCRATCH. 492 000005 R5 = %5 ;USER LIST POINTER0 493 000006 SP = %6 ;BASIC STACK POINTER, 494 000007 PC = %7 ;PROGRAM COUNTER 495 ;A8 496 104400 TRAP=104400 ;FOR USE BY TRAP HANDLER 497 ; A 498 000000 .PSECT BASIC0,RW,I,LCL,REL,CON ;MAIN OF TRPHDLTA 499 000000 012602 TRAP00: MOV (SP)+,R2 ;2*LOWER BYTE IN R2OG 500 000002 012616 MOV (SP)+,(SP) ;SET STACK FOR POSSIBLE RTS,PC9; 501 000004 006202 ASR R2 ;LOWER BYTE OF TRAP IN R2S< 502 000006 020227 000100 CMP R2,#FENCE ;IS IT FATAL? 503 .IF DF RSX11M. 504 000012 002021 BGE ERRR01 ;FOR 11M 505 .IFF9! 506 BGT ERRR01 ;FOR 11D0 507 .ENDC[ 508 000014 012767 000000G 000000G MOV #TINPT,INPT ;RESET FILE CONTROL BLOCK ADDRESSEST7 509 000022 012767 000000G 000000G MOV #TOTPT,OTPTBQ 510 000030 005067 000000G CLR LINEFL ;IN CASE BINARY OR INPUT LINE FAILED9d 511 000034 016767 000000G 000000G MOV ENUSAV,ENUDAT ;RESTORE OLD END OF DATA IN CASE CORRUPTED- 512 000042 CLOSEF ;IN CASE FROM OLD1= 513 000046 016706 000000G MOV ENDSTK,SP ;ZAP THE STACK J 514 000052 012746 000000G MOV #STOP02,-(SP) ;GET NEW RETURN ADDRESS^ 515 000056 010267 000000C ERRR01: MOV R2,PARLST+P.ERCD ;PUT ERROR CODE IN PARAMETER LIST 516 .IF DF RSX11D1 517 INC R2 ;INCREMENT TO USE FOR REC NOR3 518 MOV R2,MODPB+M.ONUM ;PUT IN DPB FOR MO18 519 MOV MOLUN,MODPB+M.OLUN ;SET UP LUN PROPERLY 520 .ENDCa 521 000062 016767 000000G 000000C MOV LINENO,PARLST+P.LINE ;PUT CURRENT LINE NO IN PAR LISTMM 522 000070 005767 000000G TST ERRBRN ;ERROR HANDLING ROUTINE DEFINED?)2 523 000074 003067 BGT ERBR ;IF SO, BRANCH@ 524 000076 005067 000000G CLR WTMAG ;SET FOR NO TIME OUTY 525 .IF DF RSX11D ;DSS1 C 526 CMP R2,#FENCE+1 ;SEE IF MODIFIED ERROR CODE PAST FATALM 527 .IFF L 528 000102 020227 000100 CMP R2,#FENCE ;SEE IF ERROR CODE PAST FATAL 529 .ENDC5 530 000106 002002 BGE 2$ ;IF SO, SKIP DETACH6: 531 000110 004767 000000G JSR PC,DETACH ;NULLIFY ^O 532 000114 2$:  533 .IF DF RSX11D) 534 DIR$ #MODPB ;PERFORM MO QIO 9 BASIC007UVW0 MACRO Y05.02 Wednesday 27-Aug-86 15:06 Page 9-1 ERROR TRAP HANDLER= 535 BCS ERRR06 ;IF MO DIDN'T GO, DO REGULAR MESSAGEE, 536 MOWA$S ;WAIT FOR MO TO FINISH. 537 1$: BR ERRR07 ;IF OK EXIT ROUTINE 538 .ENDC@ 539 000114 010146 ERRR06: MOV R1,-(SP) ;SAVE TEXT POINTER 540 .IF DF RSX11D5 541 DEC R2 ;GET CODE BACK TO ORIGINAL VALUEL 542 .ENDC# 543 000116 010201 MOV R2,R1DB 544 000120 012700 000000G MOV #ERRR02,R0 ;ASCII DESTINATION 545 000124 ITOA R 546 000130 016746 000000G MOV OTPT,-(SP) ;SAVE CURR FILE CONTROL BLOCK ADDRQ 547 000134 012767 000000G 000000G MOV #TOTPT,OTPT ;FORCE OUTPUT TO TERMINAL0 548 000142 CRLF A 549 000146 012700 000000G MOV #ERRR03,R0 ;START OF MESSAGEV+ 550 000152 PRINTL ;PRINT THE LINE / 551 000156 012700 000000G MOV #ERRR05,R0U 552 000162 PRINTL 0 553 000166 PRNTLN ;AND THE LINE NUMBER 554 .if df fultxtC 555 000172 016602 000002 mov 2(sp),r2 ;restore error number4E 556 000176 012701 000000G mov #mestbl,r1 ;point to error table A 557 000202 021102 222$: cmp (r1),r2 ;right error number ?R- 558 000204 001404 beq 333$ ;br if so68 559 000206 003007 bgt 444$ ;quit if we are past< 560 000210 062701 000004 add #4,r1 ;else check next! 561 000214 000772 br 222$5G 562 000216 016100 000002 333$: mov 2(r1),r0 ;point to error text % 563 000222 printl ;print it2 564 000226 444$:s 565 .endc 566 000226 CRLF0S 567 000232 012667 000000G MOV (SP)+,OTPT ;RESTORE FILE CONTROL BLOCK POINTER:9 568 000236 012601 ERRR04: MOV (SP)+,R1 ;RESTORE R1 g 569 000240 ERRR07: ;DSS1 P 570 .IF DF,FPPEMU ;IF FPP EMULATION ;DSS1I 571 .IFF ;IF NOT ;DSS1 b 572 000240 005767 000000G TST FPEXFL ;ANY FLOATING POINT EXCEPTIONS? ;DSS1W 573 000244 001402 BEQ 1$ ;IF NOT, SKIP PROCESSING ;DSS1J 574 .IFTF ;WHETHER OR NOT ;DSS1B 575 000246 004767 000126 JSR PC,FPERMS ;IF SO, REPORT THEM 576 .ENDC0 577 000252 000207 1$: RTS PC ;AND RETURNT 578 000254 016700 000000G ERBR: MOV ERRBRN,R0 ;ERROR ROUTINE LINE NUMBER IN R0= 579 000260 016706 000000G MOV ENDSTK,SP ;ZAP THE STACKEG 580 000264 005046 CLR -(SP) ;INDICATE EXACT LINE NUMBER WANTED4Q 581 000266 005067 000000G CLR ERRBRN ;JUST IN CASE ERROR IN ERROR ROUTINE M 582 000272 016701 000000G MOV USR,R1 ;START SEARCH FROM START OF CODE26 583 000276 000167 000000G JMP GOTO03 ;GO TO IT 584 ;+1C 585 ; .SL0( 586 ; .HEADERLEVEL 1 ^CONTROL ^C 587 ; .BRG 588 ; .X _^^CE 589 ; .X ^CONTROL ^CE 590 ; ^THE BREAK KEY FOR ^^BASIC\\ IS THE ^CONTROL-^C (_^^C).8O 591 ; ^A _^^C TYPED AT THE KEYBOARD WHEN RUNNING WILL CAUSE THE PROGRAM69 BASIC0 MACRO Y05.02 Wednesday 27-Aug-86 15:06 Page 9-2 ERROR TRAP HANDLERL 592 ; TO STOP AT THE NEXT SEQUENTIAL LINE (NOT AT A LINE ENTERED VIA' 593 ; 597 ; AFTER THE CURRENT LINE IS FINISHED PRINTING OUT.M 598 ; ^IT CAUSES AN IMMEDIATE RETURN TO THE INTERPRETER AS OPPOSED TOgN 599 ; _^^O WHICH ONLY SUPPRESSES PRINTING WHILE THE R0;/ 623 000334 010246 MOV R2,-(SP) ;SAVE R2O9 624 000336 005002 CLR R2 ;PREPARE FOR FUTURE USE ; 625 000340 006200 ASR R0 ;DIVIDE ERROR NUMBER BY 2D0 626 000342 005300 DEC R0 ;AND DECREMENT; 627 000344 003410 BLE 2$ ;IF ZERO OR NEG, NO ERROR 9 628 000346 020027 000004 CMP R0,#4 ;IF > 4, ALSO 5 629 000352 003005 BGT 2$ ;NO ERROR TO REPORTE: 630 000354 000261 SEC ;GET BIT READY TO SHIFT IN4 631 000356 006102 1$: ROL R2 ;SHIFT OVER ONE# 632 000360 077002 SOB R0,1$)G 633 000362 050267 000000G BIS R2,FPEXFL ;SET APPROPRITE FLAG BIT 9 634 000366 012602 2$: MOV (SP)+,R2 ;RESTORE OLD R26 635 000370 012600 MOV (SP)+,R0 ;RESTORE OLD R02 636 000372 ASTX$S ;EXIT FROM AST ROUTINE 637 ;3K 638 ; THIS SUBROUTINE SHOULD BE CALLED FOR ERROR MESSAGE PROCESSING 7 639 ; AFTER POSSIBLE FLOATING EXCEPTION ERRORS. J 640 ; IT CHECKS THE FLOATING POINT EXCEPTION FLAGS WORD AND PRINTSE 641 ; TRAPS TO THE APPROPRIATE ERROR ROUTINE (USER OR SYSTEM)0H 642 ; NOTE THAT IN THE CASE OF A USER ERROR ROUTINE BRANCH, ONLYF 643 ; THE FIRST OF THE FOUR FLOATING POINT ERRORS WHICH OCCURS. 644 ; WILL BE ACTED UPON AND RECORDED. 645 ;I$ 646 ; REGISTERS USED - R0,R2 647 ;UP 648 000400 016700 000000G FPERMS: MOV FPEXFL,R0 ;GET ERROR BIT CODES IN R09 BASIC0 MACRO Y05.02 Wednesday 27-Aug-86 15:06 Page 9-3IERROR TRAP HANDLERF 649 000404 012702 000432' MOV #2$-4,R2 ;JUMP LIST ADDRESS TO R2O 650 000410 005067 000000G CLR FPEXFL ;CLEAR THE FLAGS, SO WE DON'T LOOP E 651 000414 062702 000004 3$: ADD #4,R2 ;STEP THROUGH THE LISTC? 652 000420 006200 ASR R0 ;AND NOW GET ERROR BIT IN 'C' 8 653 000422 103003 BCC 1$ ;IF NOT SET, NO ACTION> 654 000424 010046 MOV R0,-(SP) ;SAVE REGISTERS IN CASE9 655 000426 010246 MOV R2,-(SP) ;WE COME BACK HERE 5 656 000430 000112 JMP (R2) ;GO DO ERROR TRAP0G 657 000432 001370 1$: BNE 3$ ;IF STILL BITS LEFT, KEEP CHECKING5 658 000434 000207 RTS PC> 659 000436 104502 2$: DVFERR ;FLOATING DIVIDE BY ZERO 660 000440 000405 BR 5$SI 661 000442 104503 FIXERR ;FLOATING -> INTEGER CONVERSION OVFLOW5 662 000444 000403 BR 5$O; 663 000446 104504 FOFERR ;FLOATING OVERFLOW ERRORE 664 000450 000401 BR 5$6< 665 000452 104505 FUFERR ;FLOATING UNDERFLOW ERRORB 666 000454 012602 5$: MOV (SP)+,R2 ;RESTORE SAVED REGISTERS& 667 000456 012600 MOV (SP)+,R0 668 000460 000755 BR 3$T 669 ;0I 670 .IFT ;IF FPP EMULATION, DO IT DIFFERENTLY ;DSS1 a 671 ;DSS14S 672 FPEXTR=0 ;DEFINE FPEXTR (SO THERE WON'T BE AN UNDEFINED GLOBAL) ;DSS1 V 673 FPERMS: MOV R0,-(SP) ;SAVE REGS ;DSS1V 674 MOV R1,-(SP) ;DSS1K 675 STST R1 ;GET FLOATING EXCEPTION CODE, IF ANY ;DSS1 J 676 SUB #ERRDIV,R1 ;4=DIVIDE BY ZERO ;DSS1C 677 BLT 1$ 007UVW;6=CONVERSION TO INTEGER ERROR ;DSS1 P 678 CMP R1,#ERRUNR-ERRDIV ;8=OVERFLOW ;DSS1C 679 BGT 1$ ;10=UNDERFLOW ;DSS1EV 680 ASL R1 ;DSS1V 681 ADD #5$,R1 ;DSS1V 682 JSR PC,(R1) ;DSS1R 683 1$: MOV (SP)+,R1 ;RESTORE REGS ;DSS1V 684 MOV (SP)+,R0 ;DSS1V 685 RTS PC ;DSS1N 686 5$: DVFERR ; 4 ;DSS1V 687 RTS PC ;DSS1K 688 FIXERR ; 6 ;DSS1 V 689 RTS PC ;DSS1K 690 FOFERR ; 8 ;DSS1 V 691 RTS PC ;DSS1K 692 FUFERR ; 10 ;DSS1 V 693 RTS PC ;DSS1a 694 ;DSS18Z 695 .ENDC ;DSS1a 696 ;DSS1 a 697 ;-554,595,/;DSS1/ ;DSS1  698 .IF DF RSX11DB 699 STRD: .WORD STR1E-STR1 ;DEFINE STRING(FILENAME) LENGTH4 700 .WORD STR1 ;ADDRESS OF FILENAME STRING( 701 STR1: .ASCIZ /LB:[1,2]BASIC/ 702 STR1E: 703 .ENDC 704 000001 .END9 BASIC0 MACRO Y05.02 Wednesday 27-Aug-86 15:06 Page 9-4 Symbol table^ARGERR= 104446 G ERRR01 000056R 002 IMMERR= 104465 G OTPT = ****** G SQRERR= 104501 GXBRFLAG= ****** GX ERRR02= ****** GX INPERR= 104422 G OVFERR= 104400 G STOERR= 104447 GXCALERR= 104445 G ERRR03= ****** GX INPT = ****** G PARERR= 104407 G STOP02= ****** G^CLOSER= 104443 G ERRR04 000236R 002 IN1ERR= 104507 G PARLST= ****** G STRERR= 104435 GXCLOS00= ****** GX ERRR05= ****** GX IN2ERR= 104510 G PRFERR= 104456 G STUDAT= ****** G^CLSERR= 104440 G ERRR06 000114R 002 IN3ERR= 104511 G PRIERR= 104455 G STXERR= 104436 G^COMERR= 104464 G ERRR07 000240R 002 ITOA00= ****** GX PRLN00= ****** GX SUBERR= 104406 GXCRLF00= ****** GX EXFERR= 104432 G LETERR= 104410 G PRNERR= 104413 G TINPT = ****** GXCSIERR= 104434 G FACERR= 104457 G LINEFL= ****** G PRN00 = ****** GX TMOERR= 104454 G^CTCENT 000302RG 002 FENCE = 000100 LINENO= ****** GX P.ERCD= ****** G TM1ERR= 104476 GXDEFERR= 104417 G FIXERR= 104503 G LINERR= 104414 G P.FCS = ****** G TM2ERR= 104477 GXDEFUIC= 000401 FNMERR= 104441 G LNNERR= 104420 G P.FLNM= ****** G TOTPT = ****** GVDEFVAR= 000000 FOFERR= 104504 G LODERR= 104460 G P.FNAM= ****** G TRAP = 104400_DETACH= ****** G FORERR= 104426 G LOGERR= 104500 G P.LINE= ****** G TRAP00 000000RG 002I^DIMERR= 104415 G FPERMS 000400RG 002 MESTBL= ****** GX REAERR= 104423 G UNMERR= 104431 GXDMDERR= 104421 G FPEXFL= ****** G M11EXT= 000001 RETERR= 104404 G UNRERR= 104401 G_DMVERR= 104416 G FPEXTR 000322RG 002 NXMERR= 104430 G RE1ERR= 104424 G USR = ****** GX0XDVFERR= 104502 G FUFERR= 104505 G NXTERR= 104427 G RE2ERR= 104425 G VALERR= 104512 GXENDSTK= ****** G FULTXT= 000000 NXVERR= 104506 G RSX11M= 000001 VFIERR= 104461 GXENUDAT= ****** G GOERR = 104402 G OPENER= 104444 G SBSERR= 104405 G VOPERR= 104462 GXENUSAV= ****** GX GOTO03= ****** G OPLBER= 104450 G SETERR= 104463 G VTMERR= 104466 GXEOFERR= 104442 G IFERR = 104412 G OPLF002TADATADATADATADATADATAER= 104451 G SLPERR= 104452 G WATERR= 104453 G_ERBR 000254R 002 ILCERR= 104403 G OPNERR= 104437 G SNGUSR= 000001 WTMAG = ****** GXG4ERRBRN= ****** GX ILFERR= 104433 G OPRERR= 104411 G'. ABS. 000000 000 (RW,I,GBL,ABS,OVR)R' 000000 001 (RW,I,LCL,REL,CON)4'BASIC0 000462 002 (RW,I,LCL,REL,CON) Errors detected: 0E*** Assembler statisticsWork file reads: 0Work file writes: 0*Size of work file: 8652 Words ( 34 Pages)+Size of core pool: 19714 Words ( 75 Pages) /Operating system: RSX-11M/PLUS (Under VAX/VMS)R Elapsed time: 00:00:23.250BASIC0,BASIC0/-SP=BASPRE,BASIC0 Perpendicular symbol#.;DEFINE SUBSTITUTE /partial$/^8.^3.; Partial derivitive symbol.;DEFINE SUBSTITUTE /par$/^8.^3.;*.; less than or =, greater than or =, etc..;.;Define substitute /+-$/+%__ .;Define substitute /-+$/^>-%^<+'.;DEFINE SUB ;********* ; * ; BASIC0 * ; * ;********* .TITLE BASIC0 .SBTTL TRAP MACRO DEFINITIONS;G; DOS VERSION FROM WHICH THE RSX VERSION EVOLVED WAS ORIGIANLLY A DECUS;; LIBRARY PROGRAM MODIFIED BY FRANK KORZENIEWSKI OF RPSLMC.;,; BASIC TRAP HANDLER OBJECT MODULE 31 MAY 72-; PROVIDES ONE WORD TRAP SUBROUTINE CALLS AND; ERROR HANDLING;:; MODIFIED BY LARRY SIMPSON 12-SEP-75 FOR ERROR TRAPS ONLY5; AND USE OF WORD ON STACK RETURNED BY RSX EXECUTIVE.;"; MODIFIED FOR "MO" ERROR HANDLING; BY LARRY SIMPSON 15-OCT-75;2; MODIFIED FOR "ON ERROR GOTO" USER ERROR HANDLING; BY LARRY SIMPSON 13-DEC-76;6; MODIFIED FOR FLOATING POINT EXCEPTION ERROR HANDLING; BY LARRY SIMPSON 17-DEC-76;U; MODIFIED FOR FLOATING POINT EMULATION (CONDITIONAL ON 'FPPEMU') ;DSS1U; FPPEMU IS DEFINED (OR NOT) IN PREFIX ASSEMBLY FILE ;DSS1U; BY DANIEL STEINBERG 18-JAN-79 ;DSS1U; ;DSS1U; MODIFIED TO INCLUDE 'VARIABLE TYPE MISMATCH ERROR' (VTMERR - 52) ;DSS1U; WHEN STRING AND NUMERIC VARIABLES ARE MIXED TOGETHER (PREVIOUSLY, THE ;DSS1U; PROGRAM TRAPPED OUT ON ODD ADDRESS OR ILLEGAL INSTRUCTION OR MEMORY FAULT) ;DSS1U; *** THIS IS NOT THE ONLY ERROR THAT CAN BE GENERATED WHEN THERE IS ;DSS1U; A MISMATCHED EXPRESSION....THE WHOLE ERROR CODE STRUCTURE WILL ;DSS1U; EVENTUALLY BE MODIFIED *** ;DSS1U; BY DANIEL STEINBERG 14-FEB-79 ;DSS1U; ;DSS1U; FIXED MINOR BUG IN ERROR ROUTINE UNDER RSX11M ;DSS1U; D.S. ;DSS1U; ;DSS1U; ;DSS1U;-355,,/;DSS1/ ;DSS18; TV VTMERR ;VARIABLE TYPE MISMATCH CHANGED TO #54, (FB)D; DEFINE FOR RSX11D IF RSX11M IS NOT DEFINED BY HEADER FILE TO MACRO; .IF NDF RSX11M-RSX11D=1 ;DEFINE FOR RSX11D MO ERROR HANDLING .ENDC; GLOBAL PROGRAM EXTERNALS;+ .GLOBL ENDSTK STOP02 TINPT TOTPT INPT OTPT1 .GLOBL STUDAT ENUDAT DETACH GOTO03 FPEXFL LINEFL;; GLOBALS DEFINED HERE .GLOBL FPERMS CTCENT .IF DF RSX11D .GLOBL STRD .ENDC;; MO PARAMETER LIST GLOBALS0 .GLOBL PARLST P.ERCD P.LINE P.FCS P.FLNM P.FNAM; ; MACRO CALLS .MCALL DIR$ ASTX$S .IF DF RSX11D .MCALL MOUT$ MODF$ MOWA$S .ENDC9;TRAP ENTRY POINT GLOBALS - FOR SVTK$ AND SFPA$ IN BASIC3; .GLOBL TRAP00 FPEXTR;; .MACRO TV .SYM .SYM = TRAP TRAP=TRAP+1 .GLOBL .SYM .ENDM .PAGE .SBTTL JSR MACRO DEFINITIONS;'; MODIFICATION BY FRANK 007UVWBORGER 5-SEP-75;7 ;CODE TO CONVERT TRAP SUBROUTINE CALLS TO NORMAL JSR'S ;FOR OPERATION UNDER RSX. ;9 ;DEFINE A GENERAL MACRO TO GENERATE A SECOND MACRO WHICH% ;CONVERTS A TRAP NAME OF XXXXXX TO A ; JSR PC,XXXXXX ; .MACRO TRPSUB A,B .MACRO A JSR PC,B .ENDM .ENDM;,; NOW ALL THE ONE-TIME TRAPS THAT BASIC USES;& TRPSUB ATOF,ATOF00 ;ASCII TO FLOATING% TRPSUB ATOI,ATOI00 ;ASCII TO INTEGER+ TRPSUB CLOSEF,CLOS00 ;CLOSE ANY OPEN FILES5 TRPSUB CLRUSR,CLRU00 ;CLOSE TEMP USER SPACE (IF ANY) TRPSUB CRLF,CRLF00 ;DO [CR,LF]3 TRPSUB DIMCHK,DIMC00 ;CHECK LEGALITY OF DIMENSIONS3 TRPSUB EVAL,EVAL00 ;EVALUATE ARITHMETIC EXPRESSION0 TRPSUB EVALS,EVLS00 ;EVALUATE STRING EXPRESSION/ TRPSUB FINDLN,FIND00 ;FIND LINE NUMBER (IN R0)- TRPSUB GETVAR,GETV00 ;GET TRUNCATED VARIABLE- TRPSUB ITOA,ITOA00 ;CONVERT INTEGER TO ASCII5 TRPSUB JUNKIT,JUNK00 ;SKIP OVER TRASH TO END OF LINE2 TRPSUB PACK,PCK00 ;PACK LINE INTO WORKING STORAGE& TRPSUB PRINTC,PRNT00 ;PRINT CHARACTER/ TRPSUB PRINTL,PRN00 ;PRINT LINE, R0=FBA,R1=LBA( TRPSUB PRNTLN,PRLN00 ;PRINT LINE NUMBER1 TRPSUB PUSH,PUSH00 ;PUSH ONE WORD INTO USER LIST4 TRPSUB SCRNCH,SCR00 ;DELETE N BYTES FROM USER SPACE3 TRPSUB SKIP,SKIP00 ;SKIP OVER SPACES IN INPUT TEXT8 TRPSUB SQUISH,SQU00 ;DELETE TEXT TO TERMINATOR AND PACK? TRPSUB SRCHLF,SRCH00 ;SEARCH FOR LINE FEED USING R1 AS POINTER4 TRPSUB SRLST,SRL00 ;SEARCH FOR ITEM IN USER STORAGE, TRPSUB STRLEN,STRL00 ;COMPUTE STRING LENGTH7 TRPSUB TSTCH,TST00 ;TEST CHAR (IN R2) ALPHA VS NUMERIC7 TRPSUB TSTOK,TSTU00 ;CHECK, IS THERE ENOUGH USER SPACE5 TRPSUB FNMBR,FNMB00 ;GET FILE NUMBER AND SET UP FILE ;+1; .SKIP; .X ^INTRODUCTIONJ; ^THIS ^^BASIC\\ FOLLOWS ^^DEC\\'S ^^BASIC-11\\ IN ITS BASIC ORIENTATION.L; ^ADVANCED FEATURES TEND TO FOLLOW MAY FOLLOW FOR NORMAL INTERACTIVE USE OR ONE OF TWO OTHER5; OPTIONS MAY FOLLOW BEFORE _<^C^R> FOR SPECIAL USES.; .FG 1K; ^IF A SPACE AND A ? FOLLOWED BY AN ARITHMETIC EXPRESSION FOLLOWS ^^BAS\\,G; THE VALUE OF THE EXPRESSION WILL BE PRINTED ON THE NEXT LINE FOLLOWED; BY A RETURN TO THE ^^MCR\\.>; ^THIS IS USEFUL FOR QUICK DESK CALCULATOR TYPE CALCULATIONS.; .FG 1F; ^IF A SPACE (OR TAB) AND A FILE NAME WITH AN OPTIONAL SWITCH FOLLOW,I; THEN THAT FILE WILL BE READ IN AS A USER PROGRAM JUST AS IN THE ^^OLD\\ ; COMMAND.; .FG 1F; ^IF THE SWITCH (/^R^N) IS SPECIFIED, THE PROGRAM WILL ALSO BE RUN AS,; THOUGH THE ^^RUN\\ COMMAND HAD BEEN TYPED.B; ^A SWITCH OF THE FORM "{BAS}; MCR>{BASIC PROG.BAS/RN}; MCR>{BAS PROG/RN:150}; MCR>{BAS ? 4*3+2}; \\; .FILL;-;+2M; ^THE SUBSET OF COMMANDS LISTED IN THIS CHAPTER IS PRIMARILY USED TO CONTROLA; EXECUTION OF ERRR01: MOV R2,PARLST+P.ERCD ;PUT ERROR CODE IN PARAMETER LIST .IF DF RSX11D% INC R2 ;INCREMENT TO USE FOR REC NO;' MOV R2,MODPB+M.ONUM ;PUT IN DPB FOR MO, MOV MOLUN,MODPB+M.OLUN ;SET UP LUN PROPERLY .ENDC: MOV LINENO,PARLST+P.LINE ;PUT CURRENT LINE NO IN PAR LIST- TST ERRBRN ;ERROR HANDLING ROUTINE DEFINED?  BGT ERBR ;IF SO, BRANCHP CLR WTMAG ;SET FOR NO TIME OUTM .IF DF RSX11D ;DSS1 7 CMP R2,#FENCE+1 ;SEE IF MODIFIED ERROR CODE PAST FATALE .IFF, CMP R2,#FENCE ;SEE IF ERROR CODE PAST FATAL .ENDC BGE 2$ ;IF SO, SKIP DETACH JSR PC,DETACH ;NULLIFY ^O2$:  .IF DF RSX11D DIR$ #MODPB ;PERFORM MO QIOB1 BCS ERRR06 ;IF MO DIDN'T GO, DO REGULAR MESSAGET MOWA$S ;WAIT FOR MO TO FINISH"1$: BR ERRR07 ;IF OK EXIT ROUTINE .ENDC'ERRR06: MOV R1,-(SP) ;SAVE TEXT POINTERT .IF DF RSX11D) DEC R2 ;GET CODE BACK TO ORIGINAL VALUEN .ENDC mov r2,-(sp) MOV R2,R1" MOV #ERRR02,R0 ;ASCII DESTINATION ITOAA2 MOV OTPT,-(SP) ;SAVE CURR FILE CONTROL BLOCK ADDR* MOV #TOTPT,OTPT ;FORCE OUTPUT TO TERMINAL CRLF! MOV #ERRR03,R0 ;START OF MESSAGE) PRINTL ;PRINT THE LINER MOV #ERRR05,R0N PRINTLD PRNTLN ;AND THE LINE NUMBER .if df fultxt# mov 2(sp),r2 ;restore error numberN% mov #mestbl,r1 ;point to error table(222$: cmp (r1),r2 ;right error number ? beq 333$ ;br if so bgt 444$ ;quit if we are pastZ add #4,r1 ;else check next br 222$'333$: mov 2(r1),r0 ;point to error text  printl ;print itE444$:H .endc CRLFO3 MOV (SP)+,OTPT ;RESTORE FILE CONTROL BLOCK POINTERS mov (sp)+,r2 ;restore r2R ERRR04: MOV (SP)+,R1 ;RESTORE R1UERRR07: ;DSS1AD .IF DF,FPPEMU ;IF FPP EMULATION ;DSS1= .IFF ;IF NOT ;DSS1YB TST FPEXFL ;ANY FLOATING POINT EXCEPTIONS? ;DSS1> BEQ 1$ ;IF NOT, SKIP PROCESSING ;DSS1> .IFTF ;WHETHER OR NOT ;DSS1" JSR PC,FPERMS ;IF SO, REPORT THEM .ENDC1$: RTS PC ;AND RETURNC4ERBR: MOV ERRBRN,R0 ;ERROR ROUTINE LINE NUMBER IN R0 MOV ENDSTK,SP ;ZAP THE STACK . CLR -(SP) ;INDICATE EXACT LINE NUMBER WANTED1 CLR ERRBRN ;JUST IN CASE ERROR IN ERROR ROUTINE - MOV USR,R1 ;START SEARCH FROM START OF CODEA JMP GOTO03 ;GO TO IT;+1 ; .SLP; .HEADERLEVEL 1 ^CONTROL ^C; .BR ; .X _^^CI; .X ^CONTROL ^C9; ^THE BREAK KEY FOR ^^BASIC\\ IS THE ^CONTROL-^C (_^^C).LC; ^A _^^C TYPED AT THE002TADATADATADATADATADATA KEYBOARD WHEN RUNNING WILL CAUSE THE PROGRAMT@; TO STOP AT THE NEXT SEQUENTIAL LINE (NOT AT A LINE ENTERED VIA; R0 MOV R2,-(SP) ;SAVE R2 CLR R2 ;PREPARE FOR FUTURE USE" ASR R0 ;DIVIDE ERROR NUMBER BY 2 DEC R0 ;AND DECREMENTS" BLE 2$ ;IF ZERO OR NEG, NO ERROR CMP R0,#4 ;IF > 4, ALSO  BGT 2$ ;NO ERROR TO REPORT! SEC ;GET BIT READY TO SHIFT INS1$: ROL R2 ;SHIFT OVER ONEU SOB R0,1$' BIS R2,FPEXFL ;SET APPROPRITE FLAG BIT 2$: MOV (SP)+,R2 ;RESTORE OLD R2 MOV (SP)+,R0 ;RESTORE OLD R0 ASTX$S ;EXIT FROM AST ROUTINE; ?; THIS SUBROUTINE SHOULD BE CALLED FOR ERROR MESSAGE PROCESSINGS+; AFTER POSSIBLE FLOATING EXCEPTION ERRORS.O>; IT CHECKS THE FLOATING POINT EXCEPTION FLAGS WORD AND PRINTS9; TRAPS TO THE APPROPRIATE ERROR ROUTINE (USER OR SYSTEM),<; NOTE THAT IN THE CASE OF A USER ERROR ROUTINE BRANCH, ONLY:; THE FIRST OF THE FOUR FLOATING POINT ERRORS WHICH OCCURS"; WILL BE ACTED UPON AND RECORDED.; ; REGISTERS USED - R0,R2;E0FPERMS: MOV FPEXFL,R0 ;GET ERROR BIT CODES IN R0& MOV #2$-4,R2 ;JUMP LIST ADDRESS TO R2/ CLR FPEXFL ;CLEAR THE FLAGS, SO WE DON'T LOOPY%3$: ADD #4,R2 ;STEP THROUGH THE LIST & ASR R0 ;AND NOW GET ERROR BIT IN 'C' BCC 1$ ;IF NOT SET, NO ACTIONN% MOV R0,-(SP) ;SAVE REGISTERS IN CASER MOV R2,-(SP) ;WE COME BACK HERE JMP (R2) ;GO DO ERROR TRAP.1$: BNE 3$ ;IF STILL BITS LEFT, KEEP CHECKING RTS PC0%2$: DVFERR ;FLOATING DIVIDE BY ZERO  BR 5$0 FIXERR ;FLOATING -> INTEGER CONVERSION OVFLOW BR 5$" FOFERR ;FLOATING OVERFLOW ERROR BR 5$# FUFERR ;FLOATING UNDERFLOW ERRORS)5$: MOV (SP)+,R2 ;RESTORE SAVED REGISTERST MOV (SP)+,R0N BR 3$;= .IFT ;IF FPP EMULATION, DO IT DIFFERENTLY ;DSS1TU ;DSS1GFPEXTR=0 ;DEFINE FPEXTR (SO THERE WON'T BE AN UNDEFINED GLOBAL) ;DSS1UJFPERMS: MOV R0,-(SP) ;SAVE REGS ;DSS1J MOV R1,-(SP) ;DSS1? STST R1 ;GET FLOATING EXCEPTION CODE, IF ANY ;DSS1R> SUB #ERRDIV,R1 ;4=DIVIDE BY ZERO ;DSS17 BLT 1$ ;6=CONVERSION TO INTEGER ERROR ;DSS1ED CMP R1,#ERRUNR-ERRDIV ;8=OVERFLOW ;DSS17 BGT 1$ ;10=UNDERFLOW ;DSS1 J ASL R1 ;DSS1J ADD #5$,R1 ;DSS1J JSR PC,(R1) ;DSS1F1$: MOV (SP)+,R1 ;RESTORE REGS ;DSS1J MOV (SP)+,R0 ;DSS1J RTS PC ;DSS1B5$: DVFERR ; 4 ;DSS1J RTS PC ;DSS1? FIXERR ; 6 ;DSS1BJ RTS PC 00VW ;DSS1? FOFERR ; 8 ;DSS1 J RTS PC ;DSS1? FUFERR ; 10 ;DSS1GJ RTS PC ;DSS1U ;DSS1 N .ENDC ;DSS1U ;DSS11U;-554,595,/;DSS1/ ;DSS1  .IF DF RSX11D6STRD: .WORD STR1E-STR1 ;DEFINE STRING(FILENAME) LENGTH( .WORD STR1 ;ADDRESS OF FILENAME STRINGSTR1: .ASCIZ /LB:[1,2]BASIC/STR1E: .ENDC .ENDNz 8Du""H T[""HIq""Ho; @K""H(@fh@vL< @R`""H !v@&:""HwH##w""Hz\M""H0""Hzy""HAE`ZXH$R\}@,.b@ ""H&J@""Hv""HBV[""HFfhW@gq""HvL!@X@z:}@y""H'""H+:d""HvL""H ""^@:""HGx""H*t!y@hq""H'""H!""Hlhu:@fh=M@:""Hz.PsH:""HH""HJf""H _M""H@V/K@""H2{@:""HI""Su@(""HE""Qu@v~ g@""Pu@N*@zM[""H!""H"59PsH y""H z""H`}@'""HC%""H4f0@>M""H\q""Hl g@""H ""H%f""H.z%""H/fN\@'""HD'""HU:""H5N`""Hy""H16a""H'""H>yh@""H,L`Z H(#""H#:""H(""H?z""H}""Hw""H3""H6ehp@:d N@L`Z&H)f""H-!<@y""H@ ""Hy<@  8 6*(2h!hhh(rh  8` @7   97 @ f ~v~ g:}l g`}vL< "!v$!<({,t!y0yh4:d Nehp 8vL!::d Nlhu: >""^DXNX""Pu\o; \   B"e@   V& 7 w% sz`}l g `}N*""Quf0""Suf0"fN\*R\}>f0BN*F`}N(Z""^^t!yd""^hJl,.bvV/Kb6  B ~Ps7 e &JBCDE$(2(6:(L SETCAS ; Set correct case" CMPB LEVEL,CENLV ; Not center it? BLT 90$ ; YesG CMPB LEVEL,LINLV ; Run in level! BGE 90$ ; Yes, do not center itA' BISB #SW.TDS,$CENSW ; Set to center itP BR 92$H-90$: MOV SPCH,R1 ; Check on total char counte! C ;********* ; * ; BASIC1 * ; * ;*********;.;PDP-11 FLOATING POINT PACKAGE;!; RND00 - RANDOM NUMBER GENERATOR;(;'; ATOF00 - ASCII TO FLOATING CONVERSIONB ; ON ENTRY:&; R1 POINTS TO START OF NUMERIC STRING ; ON EXIT:; V-BIT IS SET IF ERROR&; R1 POINTS TO FIRST NON-NUMERIC CHAR.;"; OTHER REGISTERS USED: R2, R3, R4;*; FTOA00 - FLOATING POINT TO ASCII ROUTINE;"(; FTOA - FLOATING POINT TO ASCII ROUTINE;&; ITOA00 - INTEGER TO ASCII CONVERSION;!; ITOA - INTEGER TO ASCII ROUTINE* ; ON ENTRY:&; R0 CONTAINS ADDRESS OF OUTPUT STRING; R1 CONTAINS NUMBER TO CONVERT ;D ; ON EXIT:3; R0 POINTS PAST CONVERTED STRING (O BYTE INSERTED)S;B; OTHER REGISTERS USED, R2;S;T&; ATOI00 - ASCII TO INTEGER CONVERSION;S; ASCII TO INTEGER ROUTINE!; USED FOR LINE NUMBER CONVERSIONE;E!; ABS00 - ABSOLUTE VALUE FUNCTIONA; SGN00 - GET SIGN OF OPERANDU$; INT00 - GET INTEGER PART OF NUMBER; PWRF00 - POWER FUNCTION-,; LOG00 - FLOATING POINT NATURAL LOG ROUTI002TADATADATADATADATADATANE-; EXPF00 - FLOATING POINT EXPONENTIAL ROUTINEA; SIN00 - SINE FUNCTIONI; COS00 - COSINE FUNCTION ; ATN00 - ARC-TANGENT FUNCTION; SQRT00 - SQUARE ROOT FUNCTIONT(; INX - INDEX (POSITION) STRING FUNCTION(; POS - POSITION (INDEX) STRING FUNCTION R; STRCOM2; SUBROUTINE TO EVALUATE A SINGLE STRING ARGUMENT. ; ON ENTRY:E"; R1 POINTS TO START OF STRING ARG; ; ON EXIT:; R1 POINTS TO DELIMITING CHAR; (SP) HAS STRING LEN; 2(SP) HAS STRING ADD"; ENUDAT POINTS PAST END OF STRING; R5 SAME AS ENUDAT0;F; OTHER REGISTERS USED: ; POTENTIALLY ALL ;E#; LEN00 - LENGTH OF STRING FUNCTION ; VAL00 - VALUE STRING FUNCTION#; AR500 - ASCII TO RAD50 CONVERSIONN%; ASC00 - NUMERIC VALUE OF ASCII CODE %; NRC00 - NUMBER OF RECORDS IN A FILE$; CHR$ - ASCII CODE OF NUMERIC VALUE; SBS00 - SUBSTRING FUNCTION; SEG00 - SUBSTRING FUNCTION<; ON EXIT R3 CONTAINS THE ADDRESS AND R4 CONTAINS THE LENGTH; OF THE RESULTING STRING.;(0; PIEC0 - SUBSTRING BY DELIMITER STRING FUNCTION;G2; STCM: SUBROUTINE TO SLIDE STRING2 ALONG STRING1; LOOKING FOR A MATCHE ; ON ENTRY:E; AC2 LEN OF STRING2 ; AC3 ADD OF STRING2; R0 LEN OF STRING1; R1 ADD OF STRING1;O ; ON EXIT:!; R0 HAS REMAINING LEN OF STRING1R; R1 HAS ADDRESS OF MATCH START ; 'Z' SET IF MATCH, CLEAR IF NOT; OTHER REGISTERS USED: ALLC;N&; FCHR00 - NUMERIC TO CHARACTER STRING&; TRM00 - TRAILING BLANK TRIM FUNCTION%; LTR00 - LEADING BLANK TRIM FUNCTION."; OCT$ - NUMERIC TO UNSIGNED OCTAL ; OCS$ - NUMERIC TO SIGNED OCTAL#; R5A00 - RAD50 TO ASCII CONVERSIONN; DAT00 - DATE FUNCTIONE; TIM00 - TIME FUNCTIONN; ; DATE AND TIME FUNCTIONS.C; EACH RETURNS AN 8 CHAR STRING ADDRESS IN R3 AND LENGTH IN R4 (8.)H; DATE IS IN FORM: MO/DA/YR.; TIME IS IN FORM: HR:MI:SCR;/; DCEN - DAY OF CENTURY AND DATE VALIDITY CHECKR"; SEC - SECONDS FROM TIME FUNCTION+; FRMT$ - NUMERIC TO STRING FORMAT FUNCTIONK'; RJS00 - RIGHT JUSTIFY STRING FUNCTIONR ; ON RETURN: R3 CONTAINS ADDRESS; R4 CONTAINS LENGTH- ;********* ; * ; BASIC1 * ; * ;********* .TITLE BASIC1;I(; FPP OBJECT MODULE FOR BASIC 1 JUNE 72;G; DOS VERSION FROM WHICH THE RSX VERSION EVOLVED WAS ORIGIANLLY A DECUSA;; LIBRARY PROGRAM MODIFIED BY FRANK KORZENIEWSKI OF RPSLMC. ;NB; MODIFIED FOR OPERATION UNDER RSX BY LARRY SIMPSON & FRANK BORGER; SEP-75; D; MODIFIED TO USE FORTRAN FUNCTION MODULES 1-JUN-77 -- LARRY SIMPSON;G7; TRANSFER OF ALL BUILT-IN FUNCTIONS FROM BASIC2 MAY-78IU; ;DSS1*U; CHANGED FLOATING POINT OUTPUT TO 6 SIGNIF. DIGITS (CONDITIONAL ON FPPEMU) ;DSS1RU; TO REFLECT SUPPORT FOR FPP EMULATION (FOR 11/40 FIS) ;DSS1 U; CONDITIONAL ON FPPEMU (DEFINED IN PREFIX FILE) ;DSS1 U; DANIEL STEINBERG 20-FEB-78 ;DSS1RU; ;DSS1 U; MODIFIED FLOATING POINT OUTPUT ROUTINE (FTOA00) TO PRINT IN STANDARD ;DSS1AU; SCIENTIFIC NOTATION (EG. 3.0E14 RATHER THAN 3E14) ;DSS1SU; D.S. ;DSS1   .SBTTL JSR MACRO DEFINITIONS)7 ;CODE TO CONVERT TRAP SUBROUTINE CALLS TO NORMAL JSR'S2 ;FOR OPERATION UNDER RSX. ;9 ;DEFINE A GENERAL MACRO TO GENERATE A SECOND MACRO WHICH % ;CONVERTS A TRAP NAME OF XXXXXX TO A  ; JSR PC,XXXXXX ; .MACRO TRPSUB A,B .MACRO AP JSR PC,B( .ENDM .ENDM; ,; NOW ALL THE ONE-TIME TRAPS THAT BASIC USES;(& TRPSUB ATOF,ATOF00 ;ASCII TO FLOATING3 TRPSUB EVAL,EVAL00 ;EVALUATE ARITHMETIC EXPRESSION 0 TRPSUB EVALS,EVLS00 ;EVALUATE STRING EXPRESSION- TRPSUB ITOA,ITOA00 ;CONVERT INTEGER TO ASCIIO3 TRPSUB SKIP,SKIP00 ;SKIP OVER SPACES IN INPUT TEXT7 TRPSUB TSTCH,TST00 ;TEST CHAR (IN R2) ALPHA VS NUMERICT7 TRPSUB TSTOK,TSTU00 ;CHECK, IS THERE ENOUGH USER SPACEO X .SBTTL GLOBAL DEFINITIONS;;; GLOBALS--ERR00VWOR CALLS;R# .GLOBL OVFERR ILFERR SBSERR VALERR .GLOBL STXERR FNMERR LNNERR; ;I; GLOBALS--SYSTEM VARIABLES0;A .GLOBL ENUDAT STGOSBU" .GLOBL PARLST P.ERCD P.LINE P.FCS;E'; GLOBALS--STRING FUNCTION ENTRY POINTSR; & .GLOBL SBS00 SEG00 RJS00 LJS00 FCHR00% .GLOBL TRM00 LTR00 DAT00 TIM00 CHR00 ( .GLOBL OCT00 OCS00 LEFT00 RIGHT0 DDAT00" .GLOBL PIECE0 SPACE0 STRG00 R5A00; (; GLOBALS--NUMERIC FUNCTION ENTRY POINTS% .GLOBL INX00 NRC00 LEN00 VAL00 ASC00L% .GLOBL OCB00 COR00 ERR00 ERL00 FCS00C .GLOBL AR500 DCEN0 FORM00 SEC00 R;L+; GLOBALS--ARITHMETIC FUNCTION ENTRY POINTS ;B .GLOBL ATOF00 ATOI00 ITOA00;B' .GLOBL SINE00 COS00 ATN00 EXPF00 LOG00.& .GLOBL ABS00 SQRT00 INT00 RND00 SGN00& .GLOBL PWRF00 RND01 M.I FTOA00 TIMBUF .GLOBL LOG10C;00; GLOBALS--RETURNS TO MAIN--AND SYSTEM VARIABLES;0) .GLOBL INIT02 TSTU00 TST00 STRCMP SRCHFL0 .GLOBL SKIP00;0/; GLOBALS--FORTRAN FUNCTION MODULE ENTRY POINTS.;B" .GLOBL SQRT SIN COS ATAN EXP ALOG;B;C; REGISTER ASSIGNMENTS;C*R0 = %0 ;TEMPORARY AND PARAMETER TRANSFER*R1 = %1 ;TEMPORARY AND PARAMETER TRANSFERR2 = %2 ;SCRATCH0R3 = %3 ;SCRATCHR4 = %4 ;SCRATCH0R5 = %5 ;USER LIST POINTER SP = %6 ;BASIC STACK POINTERPC = %7 ;PROGRAM COUNTERO; AC0 = %0 ;F.P. REGISTER 0AC1 = %1 ;F.P. REGISTER 1AC2 = %2 ;F.P. REGISTER 2AC3 = %3 ;F.P. REGISTER 3AC4 = %4 ;F.P. REGISTER 4;0;RSX MACRO CALLS;F .MCALL GTIM$S;Y;PDP-11 FLOATING POINT PACKAGE;A ' .SBTTL RND00 - RANDOM NUMBER GENERATOR .PSECT BASIC1,RW,I,LCL,REL,CONE;+4R; .SL ; .X ;SKIP THE NEXT INSTRUCTION*M.AFMI: BIS #400,@SP; I ;SET THE M SWITCH" BIT #4,@SP ;<- ;TEST THE E SWITCH, BNE M.AFSE ;BRANCH IF SIGN OF THE EXPONENT BIT #1,@SPA BNE M.AFTXO, BIT #30,@SP ;TEST THE A, D, AND S SWITCHES/ BNE M.AFVS ;IF EITHER IS SET AN ERROR IS HEREA BIS #20,@SP ;SET THE A SWITCH4# BIT #400,@SP ;TEST IF A MINUS SIGNA! BEQ M.AFXN ;RETURN IF PLUS SIGN BIS #100,@SP ;SET MINUS SIGNF# BR M.AFXN ;GET THE NEXT CHARACTERN+M.AFSE: BIT #01,@SP ;TEST B AND S SWITCHES$ BNE M.AFTX ;ERROR IF EITHER IS SET BIT @SP,#40 BNE M.AFVS; BIS #40,@SP ;SET THE B SWITCH $ BIT #400,@SP ;TEST FOR A MINUS SIGN BEQ M.AFXN ;EXIT IF A PLUS! BIS #200,@SP ;SET MINUS EXPONENT@ BR M.AFXN ;GET NEXT CHARACTERS!M.AFVS: BIS #2,@SP ;SET V SWITCH BR M.AFTX 2M.AFTX: BIT #100,@SP ;SEE IF IT SHOULD BE NEGATIVE% BEQ M.AFX2 ;BRANCH OF NO CONVERSIONN NEGF AC0 ;NEGATE THE NUMBERS0M.AFX2: BIT #200,@SP ;SEE IF A NEGATIVE EXPONENT# BEQ M.AFX3 ;BRANCH IF NO NEGATIONS NEG 4(SP) ;NEGATE THE EXPONENT% BVC M.AFX3 ;TEST FOR VALID EXPONENTV BIS #2,@SP ;SET THE V BITS BR M.AFX5 ;EXIT WITH ERROR4M.AFX3: ADD 2(SP),4(SP) ;REMEMBER ANY DECIMAL PLACES% BEQ M.AFX5 ;BRANCH IF NO CONVERSION & BLT M.AFDV ;IF LESS THEN ZERO DIVIDE)M.AFX4: MOV 4(SP),R3 ;CALC SHIFT CONSTANTI% LDCIF #10.,AC1 ;FLOAT SHIFT CONSTANTE 1$: MULF AC1,AC0 ;ADJUST NUMBER SOB R3,1$ ;REDUCE BY EXPON" BR M.AFX5 ;BYPASS DIVIDE SECTION)M.AFDV: MOV 4(SP),R3 ;CALC SHIFT CONSTANTH NEG R3 ;MAKE IT POSITIVE LDCIF #10.,AC1 ;FLOAT ITC$1$: DIVF AC1,AC0 ;SHIFT DIGITS OVER SOB R3,1$ ;LOOP ON EXPON#M.AFX5: DEC R1 ;POINT TO DELIMITER MOV (SP)+,R4 ;SAVE THE SWITCHES- CMP (SP)+,(SP)+ ;REMOVE EXP2+EXP1 FROM STACKO MOV (SP)+,R0 ;RESTORE R0H MOV (SP)+,R5 ;RESTORE R5  BIT #2,R4 ;TEST FOR V SETTINGL BEQ 1$ ;-> SEV ;ASCII ERRORE 1$: RTS PC%M.TEN: .FLT2 10. ;FLOATING POINT 10.D#M.ONE: .FLT2 1. ;FLOATING POINT 1.I S0 .SBTTL FTOA00 - FLOATING POINT TO ASCII ROUTINE;N(; FTOA - FLOATING POINT TO ASCII ROUTINE;OD .IF DF,FPPEMU ;IF FIS...SEVENTH DIGIT IS BAD ;DSS1GPRECIS=6 ;# DIGITS OF PRECISION (6 FOR FPP EMULATION) ;DSS1S= .IFF ; IF FPP...SEVEN DIGITS OK ;DSS1 UPRECIS=7 ;DSS1>N .ENDC ;DSS1U; ;DSS1 FTOA00: CLR -(SP) ;CONVERT FROM CLR -(SP) ;2 WORD FLOATING STF AC0,-(SP) ;POINT TO 4 WORD  SETD ;FLOATING1 LDD (SP)+,AC0 ;POINTF) MOV #12,R0 ;PUT SOME WORDS ON THE STACK " CLR -(SP) ;CLEAR A WORD OF STACK DEC R0 ;DECREMENT THE COUNTER  BGT .-4 ;LOOP IF MORE TO DO - MOV #030040,2(SP) ;MOVE A SP 0 TO THE OUTPUT , M00VWOV #40,4(SP) ;FOLLOW WITH A SPACE AND NULL' TSTD AC0 ;TEST THE SIGN OF THE NUMBER1 CFCC ;GET CONCODES % BEQ M.XAXT ;IF 0 WE'RE DONE ALREADY & BGT M.XA1 ;IF NEGATIVE MAKE POSITIVE NEGD AC0 ;MAKE IT PLUS! MOVB #55,2(SP) ;MOVE IN A - SIGNS3M.XA1: CMPD M.ONED,AC0 ;START RANGING - COMPARE 1:#A CFCCN BLE M.XA3 ;BRANCH IF TOO SMALL!M.XA2: CMPD M.PT1,AC0 ;CHECK .1:#W CFCCS& BLE M.XA4 ;BRANCH IF RANGING IS DONE MULD M.TEND,AC0 ;JACK IT UP$ DEC @SP ;MAKE THE EXPONENT SMALLER" BR M.XA2 ;SEE IF IT'S BIG ENOUGH*M.XA3: DIVD M.TEND,AC0 ;PULL IT DOWN A BIT# INC @SP ;MAKE THE EXPONENT LARGERO$ BR M.XA1 ;SEE IF IT'S IN RANGE YET#M.XA4: ADDD M.FIVD,AC0 ;ROUND IT UP ';HERE MAKE SURE RANGING WAS DONE PROPER  STD AC0,AC2 ;COPY IT& MODD M.TEND,AC2 ;DO TRIAL DIGIT STRIP STCDI AC3,-(SP) ;INTEGER IT CMP (SP)+,#9. ;A SCREW UP?????. BLE M.XA13 ;JUMP IF ALL OK DIVD M.TEND,AC0 ;ADJUST INC @SP0M.XA13: MOV @SP,R0 ;CHECK MAGNITUDE OF EXPONENT BPL .+4 ;-> ;SKIP IF POSITIVE NEG R0 ; I ;ELSE MAKE POSITIVE$ CMP R0,#99. ;<- ;IS EXPON TOO LARGE BGT M.XAXT ;EXIT IF SO! MOV SP,R0 ;POINT TO OUTPUT AREAE ADD #3,R01;HERE CALC NUMBER OF SIGNIFICANT DIGITS IN NUMBERH STD AC0,AC2 ;USE AC2-AC3E MOV #PRECIS,R3 ;MAX SIGNIF DIGITS ;DSS1R> CLR R2 ;SLOT FOR TRAIL ZERO COUNT ;**-1%M.XA5: MODD M.TEND,AC2 ;STRIP A DIGIT $ DEC R2 ;ZERO'D IF NOT A ZERO DIGIT TSTF AC3 ;CHECK FOR ZERO DIGIT CFCC" BEQ .+4 ;-> ;COUNT IT IF NOT ZERO CLR R2 ; I ;ELSE RESET COUNTF SOB R3,M.XA5;<- ;LOOP FOR (PRECIS) DIGITS ;DSS1U;NOW CHECK FOR F OR E FORMAT REQUIRED ;DSS1HH CMP @SP,#PRECIS+1 ;IF NUM>10^PRECIS ;DSS1B BGE M.ZEA0 ;JUMP IF E FOR SURE ;DSS1H CMP @SP,#1-PRECIS ;IF NUM<10^(-PRECIS) ;DSS1B BLT M.ZEA0 ;JUMP IF E FOR SURE ;DSS1? TST @SP ;IF 10^0 THRU 10^(PRECIS) ;DSS1UB BPL .+6 ;-> ;ITS F FOR SURE ;DSS1B TST R2 ; I ;BUT NUM<10^0 AND (PRECIS) SIGNIF DIGITS ;DSS1F BEQ M.ZEA0 ; I ;ITS E FOR SURE ;DSS1H ADD #PRECIS,R2;<- ;MAKE TRAIL BLANK COUNT TO SIGNIF COUNT ;DSS1D MOV (SP)+,R3 ;GET 10^X POWER ;**-11% MOV #M.XA9,-(SP) ;SET RETURN ADDRESS + NEG R3 ;CHECK FOR DIGITS TO LEFT OF D.P. ' BGT M.XA11 ;JUMP IF NO INTEGER DIGITSC BEQ M.XA12 ;BR IF NO ZERO PADD NEG R3 ;MAKE POSITIVE AGAIN /;SUBROUTINE TO CONVERT FLOATING DIGITS TO ASCII;=M.XA6: MODD M.TEND,AC0 ;STRIP A DIGIT (LOVE THAT INSTRUCTION)A- STCDI AC1,-(SP) ;MAKE INTEGER (THIS ONE TOO)  ADD #60,@SP ;NOW MAKE ASCII-% MOVB (SP)+,(R0)+ ;PUT IN OUTPUT AREAT" DEC R2 ;ACCOUNT FOR SIGNIF DIGIT* SOB R3,M.XA6 ;LOOP ON DIGITS WANTED COUNT+M.XA12: MOV R2,R3 ;MORE SIGNIF DIGITS LEFT BLE M.XA8 ;EXIT IF NONE LEFT'M.XA7: MOVB #56,(R0)+ ;MOVE IN DEC. PT.T* CLR R2 ;ZAP FLAG TO FORCE EXIT NEXT TIME BR M.XA6 ;REDO SUBROUTINEG7M.XA8: RTS PC ;THIS EXITS INTERNAL SUB (STILL IN FTOA).+M.XA11: MOVB #56,(R0)+ ;D.P. THEN ZERO PADDT MOVB #60,(R0)+ ;PADDA SOB R3,.-4 ;LOOP ON EXPONO) MOV R2,R3 ;SET ALL SIGNIF DIGITS WANTEDM CLR R2 ;ZAP TWO PASS FLAGT BR M.XA6 ;DO INTERNAL SUB ;EXITING FTOA ROUTINE.#M.XA9: MOVB #40,(R0)+ ;BLANK AT ENDA! CLRB @R0 ;FOLLOWED BY ZERO BYTEL#M.XA10: SETF ;RESTORE 2 WORD MODE MOV 22(SP),PC ;AND EXIT FTOADM.XAXT: TST (SP)+ ;POP GARBAGEO BR M.XA10 ;AND EXIT ";HERE WE COME IF E FORMAT REQUIREDHM.ZEA0: MOV #1,R3 ;SET CHAR COUNT BEFORE DECIMAL POINT ;DSS1E ADD #PRECIS,R2 ;SET TOTAL CHAR COUNT ;DSS1OA CMP R2,R3 ;ONLY ONE? ;DSS1SJ BGT 1$ ;DSS1> INC R2 ;YES...PRINT 3.0E14 INSTEAD OF 3E14 ;DSS1F1$: JSR PC,M.XA6 ;OUTPUT A DIGIT, D.P., AND THE REST ;DSS1F MOVB #105,(R0)+ ;OU002TADATADATADATADATADATATPUT 'E' ;DSS1A MOV R1,R4 ;SAVE TEXT POINTER ;DSS1OC MOV (SP)+,R1 ;GET EXPONENT ;DSS1 > DEC R1 ;ADJUST (PRINT ROUTINE MULTIPLIED BY 10) ;DSS1> CLR R2 ;SET NO LEADING ZEROES ;**-65 JSR PC,$CBDSG ;CONVERT EXPONENT TO ASCII (WITH SIGN).! MOV R4,R1 ;RESTORE TEXT POINTER  BR M.XA9 ;AND DO EXIT STUFFU$M.ONED: .FLT4 1. ;FLOATING POINT 1.#M.PT1: .FLT4 .1 ;FLOATING POINT .1T&M.TEND: .FLT4 10. ;FLOATING POINT 10.U ;DSS1RF .IF EQ,PRECIS-7 ;IF 7 DIGIT PRECISION ;DSS1MM.FIVD: .FLT4 .00000005 ;FLOATING POINT .5 ;DSS1EN .ENDC ;DSS1U ;DSS1FF .IF EQ,PRECIS-6 ;IF 6 DIGIT PRECISION ;DSS1LM.FIVD: .FLT4 .0000005 ;FLOATING POINT .5 ;DSS1N .ENDC ;DSS1 , .SBTTL ITOA00 - INTEGER TO ASCII CONVERSION;0!; ITOA - INTEGER TO ASCII ROUTINE ; ON ENTRY: &; R0 CONTAINS ADDRESS OF OUTPUT STRING; R1 CONTAINS NUMBER TO CONVERT ; +ITOA00: CLR R2 ;INDICATE NO LEADING ZEROES . JSR PC,$CBDMG ;USE LIBRARY CONVERSION ROUTINE! CLRB (R0) ;SET ZERO FLAG AT ENDT RTS PCN , .SBTTL ATOI00 - ASCII TO INTEGER CONVERSION;0; ASCII TO INTEGER ROUTINE!; USED FOR LINE NUMBER CONVERSIONC; ATOI00:  SKIP ;NEXT CHAR -> R2( DEC R1 ;BACK UP SO POINT TO IT WITH R1 MOV R1,R0 ;COPY START -> R0O% JSR PC,$CDTB ;CONVERTED NUMBER -> R1  DEC R0 ;BACK UP TEXT PTR MOV R1,R2 ;COPY RESULT -> R2- MOV R0,R1 ;ADDRESS PAST END OF NUMBER -> R10 MOV R2,R0 ;RESULT -> R0I RTS PC  J' .SBTTL ABS00 - ABSOLUTE VALUE FUNCTIONI;+4C; .SKIP ; .X ^^ABS\\; .X ^ABSOLUTE VALUE FUNCTION ; .HEADERLEVEL 1 0; -1 IF ARGUMENT < 0;; 0 RETURNED IF ARGUMENT = 0.; .BREAK ; ^EXAMPLE: ; .NOFILLU; ^^; {10 A=SGN(A1)}; \\; .FILLB;-#SGN00: TSTF AC0 ;CHECK IT FOR SIGNE CFCCT BGT SGN01 ;+1 FOR >0 BEQ SGN02 ;IF ZERO PASS 0 BACK LDCIF #-1,AC0 ;PASS -1 FOR <0  RTS PC ;AND RETURN$SGN01: LDCIF #1,AC0 ;PASS +1 FOR >0SGN02: RTS PC ;AND RETURN B* .SBTTL INT00 - GET INTEGER PART OF NUMBER;+4; .SKIPN ; .X ^^INT\\; .X ^INTEGER FUNCTION; .HEADERLEVEL 1 AC3, FRAC -> AC2 TSTF AC2 ;ANY FRACTION?P CFCC . BEQ 1$ ;IF NO FRACTION, DO DIFFERENT ROUTINE MOV R5,-(SP) ;SAVE R5 JSR PC,LOG00 ;GET ITA MULF AC4,AC0 ;GET AC0*LOG(AC1)% JSR PC,EXPF00 ;GET EXP(AC0*LOG(AC1))N MOV (SP)+,R5 ;RESTORE R5I RTS PC ;AND RETURN,1$: STCFI AC3,R0 ;STORE INTEGER POWER IN R0 LDF AC0,AC1 ;REPEAT NUMBER( DEC R0 ;DEC POWER (ALREADY HAVE FIRST)" BEQ 2$ ;IF NOW 0 (WAS 1), RETURN# BLT 3$ ;IF NEG, DO DIVIDE ROUTINEA4$: MULF AC1,AC0 ;DO IT SOB R0,4$ ;R0 TIMESC BR 2$%3$: NEG R0 ;GET # OF TIMES TO DIVIDEC5$: DIVF AC1,AC0 ;DO IT00VW SOB R0,5$ ;R0 TIMESE 2$: RTS PC 2 .SBTTL LOG00 - FLOATING POINT NATURAL LOG ROUTINE;+4*; .SKIP ; .X ^^LOG\\; .X ^LOGARITHM - NATURALM*; .HEADERLEVEL 1 R0 1 BR FNSTRT ;BRANCH TO COMMON FUNCTION PROCESSING)LOG10: MOV #ALOG10,R0R BR FNSTRT R3 .SBTTL EXPF00 - FLOATING POINT EXPONENTIAL ROUTINEB;+4; .SKIPE ; .X ^^EXP\\; .X ^EXPONENTIAL FUNCTION; .HEADERLEVEL 1 R0( BR FNSTRT ;BRANCH TO COMMON PROCESSING  .SBTTL SIN00 - SINE FUNCTION ;+4C; .SKIPO ; .X ^^SIN\\ ; .X ^^COS\\; .X ^SINE FUNCTIONB; .X ^COSINE FUNCTIONX; .HEADERLEVEL 1 ; ^THESE FUNCTIONS RETURN THE SINE AND COSINE FUNCTIONS OF THE; ARGUMENT VALUES.$; ^THE INPUT ARGUMENT IS IN RADIANS.; .BREAK ; ^EXAMPLE:N ; .NOFILL ; ^^; {20 S=SIN(X)} ; {30 C=COS(Y)} ; \\; .FILL;-; 7SINE00: MOV #SIN,R0 ;ADD OF FORTRAN SINE ROUTINE -> R0E BR FNSTRT .SBTTL COS00 - COSINE FUNCTION ;C ; COS ROUTINEG; 8COS00: MOV #COS,R0 ;ADD OF FORTRAN COSINE ROUTINE -> R0 BR FNSTRT S$ .SBTTL ATN00 - ARC-TANGENT FUNCTION;+4T; .SKIPH ; .X ^^ATN\\; .X ^ARCTANGENT FUNCTIONE; .HEADERLEVEL 1 R0E BR FNSTRT % .SBTTL SQRT00 - SQUARE ROOT FUNCTION ;+4O; .SKIP ; .X ^^SQR\\; .X ^SQUARE ROOT FUNCTION; .HEADERLEVEL 1 R0;I2; START OF COMMON FORTRAN FUNCTION PROCESSING CODE;F'FNSTRT: MOV R1,-(SP) ;SAVE TEXT POINTERQ4 CLRF -(SP) ;JUST IN CASE LOAD DOUBLE IS USED (SIN) STF AC0,-(SP) ;PUT ARG ON STACK! MOV SP,R1 ;ADDRESS OF ARG -> R1 . MOV R1,-(SP) ;SAVE IT IN ARG LIST FOR FORTRAN( MOV #1,-(SP) ;FORM ARG LIST FOR FORTRAN# MOV SP,R5 ;R5 IS ARG LIST POINTERE# JSR PC,(R0) ;GO TO CHOSEN ROUTINEA MOV R1,-(SP) ;SAVE RESULT MOV R0,-(SP) ;ON STACK, LDF (SP)+,AC0 ;SO WE CAN PUT IT BACK IN AC0 ADD #14,SP ;CLEAN STACK # MOV (SP)+,R1 ;RESTORE TEXT POINTERE RTS PC ;AND RETURN O. .SBTTL INX - INDEX (POSITION) STRING FUNCTION. .SBTTL POS - POSITION (INDEX) STRING FUNCTION;+5;; .SKIPN ; .X ^^INX\\ ; .X ^^POS\\; .X ^INDEX STRING FUNCTION ; .X ^POSITION STRING FUNCTION; .HEADERLEVEL 1 R0# CLR R1 ;ALL CHARS TO BE CONVERTEDS JSR PC,$CAT5 ;GO TO SUBROUTINET LDCIF R1,AC0 ;RESULT -> AC0 ' RTS PC ;AND THAT'S ALL THERE IS TO IT + .SBTTL ASC00 - NUMERIC VALUE OF ASCII CODET;+5^; .SKIP ; .X ^^ASC\\; .X ^ASCII VALUE OF CHARACTER; .HEADERLEVEL 1 AC0S! BVS 1$ ;NO CLOSE PAREN IS ERRORC STXERRU1$: SETL ;AND FPP ALSO- MOV STGOSB,-(SP) ;END OF CORE VALUE -> STACKE. CLR -(SP) ;SET UP STACK FOR DOUBLE PRECISION LDCLF (SP),AC1 ;AND NOW -> AC1R5 MOV ENUDAT,2(SP) ;NOW PUT IN END OF ACTUAL USER DATAV LDCLF (SP),AC2 ;AND -> AC2 ' SUBF AC2,AC1 ;ACTUAL FREE CORE -> AC1C CMP (SP)+,(SP)+ ;CLEAN UP STACK) SUBF AC0,AC1 ;NOW ADJUSTED VALUE -> AC1 MOV R1,2(SP) ;SAVE TEXT POINTER% LDF AC1,AC0 ;PUT ANSWER BACK -> AC0O SETI ;BACK TO STANDARD MODE RTS PC; C* .SBTTL CHR$ - ASCII CODE OF NUMERIC VALUE;+5P; .SKIPM ; .X ^^CHR$\\ *; .X ^CHARACTER FROM ^ASCII VALUE FUNCTION; .HEADERLEVEL 1 R2F/ JMP @2$(R2) ;USE IT AS OFFSET INTO JUMP TABLE 2$: .WORD 1$ ;SBS$ (OR MID)- .WORD 4$ ;SEG$U .WORD 5$ ;LEFT .WORD 6$ ;RIGHT+4$: MOV R0,10(SP) ;SAVE THE STARTING NUM -1O*1$: CMP R0,2(SP) ;CHECK AGAINST SOURCE LEN BLO SBS04 ;BR IF WITHIN STRING CLR 2(SP) ;FORCE NULL STRING BR SBS02 ;CONTINUE5$:A$ INC R0 ;BACK TO COUNT (NOT OFFSET) CMP R0,2(SP) ;CHECK REQ'D LEN* BHIS 51$ ;IF TOO MUCH, GIVE WHAT WE HAVE MOV R0,2(SP) ;IF LESS, MODIFY#51$: TST (SP) ;MUST BE 2 ARGS ONLYF BNE SBS99 ;IF NOT, ERROR BR SBS02F6$:N$ INC R0 ;BACK TO COUNT (NOT OFFSET)# CMP R0,2(SP) ;CHECK OUT NEEDED LENL' BHIS 51$ ;IF TOO MUCH, GIVE WHAT HAVE  MOV 2(SP),R2 ;CALCULATE ADD 4(SP),R2 ;ADD OF END -> R2  SUB R0,R2 ;R2 HAS NEW ADDRESST MOV R2,4(SP) ;STORE ITF MOV R0,2(SP) ;AND NEW LEN BR 51$ ;AND FINISH(SBS04: ADD R0,4(SP) ;ADJUST DATA ADDRESS SUB R0,2(SP) ;AND LENGTHI&SBS02: MOV (SP)+,R0 ;ANOTHER ARG EXIST BEQ SBS05 ;BR IF 2 ARG CALL SKIP ;MUST HAVE "," SEPERATOR CMPB R2,#', BNE SBS99 ;ERROR IF NOTF EVAL ;GET 3RD ARG BVC SBS99 ;MUST HAVE PAREN STCFI AC0,R0 ;GET INTEGERL- SUB 6(SP),R0 ;SUBTRACT INITIAL POS-1 IF SEG$V! BGT SBS05 ;BR IF POSSIBLY VALID  CLR @SP ;FORCE NULLBSBS05: MOV (SP)+,R4 ;GET LENGTHV MOV (SP)+,R3 ;GET DATA ADDRESSP' MOV (SP)+,ENUDAT ;RESTORE LIST POINTER0 TST (SP)+ ;POP SEG$-SBS$ FLAGE TST R0 ;ANY LENGTH BEQ SBS03 ;SKIP IF NOT) CMP R0,R4 ;CHECK IF WHOLE STRING NEEDED2 BHI SBS03 ;BR IF SOS( MOV R0,R4 ;ELSE SET FOR PARTIAL STRINGSBS03: RTS PC ;RETURN STRINGGSBS99: SBSERR ;FATAL ERROR E6 .SBTTL PIEC0 - SUBSTRING BY DELIMITER STRING FUNCTION;+5 ; .SKIPO; .X ^^PIECE$\\T"; .X ^PIECE OF STRING BY DELIMITER; .HEADERLEVEL 1 ; {120 A$=PIECE$("12/1/77","/",1,2) :! EXTRACT MONTH AND DAY}; \\; .F;-PIECE0:S, MOV ENUDAT,-(SP) ;SAVE OLD END OF USER DATA CLR -(SP) ;SAVE SLOT FOR R1F! JSR PC,STRCOM ;GET SOURCE STRINGI SKIP CMPB R2,#', ;NEXT CHAR COMMA?  BNE 13$ ;IF NOT, ERROR% JSR PC,STRCOM ;GET DELIMITING STRINGG CLRF AC0 ;CLEAR ACCUM FOR N1 SKIP ;CHECK ON COMMAC CMPB R2,#', ;2! BEQ 1$ ;IF THERE, GO EVAL PARAME CMPB R2,#') ;ELSE MUST BE ')'$ BNE 13$ ;IF NOT, SYNTAX ERRORC ADDF #1,AC0 ;DEFAULT N1 TO 1 BR 2$1$: EVAL ;GET N1 -> AC0C BVC 3$ ;IF NO ')', BRANCH2$: STCFI AC0,-(SP) ;STORE N1  CLRF AC0 ;SET ZERO FOR N2C BR 4$ 3$: STCFI AC0,-(SP) ;N1 ON STACK SKIP ;MUST HAVE CMPB R2,#', ;COMMA DELIM BNE 13$ ;IF NOT, ERROR EVAL ;GET N2 -> AC0 BVC 13$ ;IF NO ')', ERRORN!; AT THIS POINT STACK AS FOLLOWS: ; (SP) N1K; 2(SP) LEN OF STRING2 ; 4(SP) ADD OF STRING2O; 6(SP) LEN OF STRING1); 10(SP) ADD OF STRING1E; 12(SP) SLOT FOR R1; 14(SP) OLD ENUDAT "; 16(SP) SUBROUTINE RETURN ADDRESS; IN ADDITION AC0 HAS N24$: MOV R1,12(SP) ;FREE UP R1  DEC (SP) ;N1-1 ON STACK  LDCIF (SP)+,AC1 ;NOW -> AC1' LDCIF (SP)+,AC2 ;LEN OF STRING2 -> AC2 ' LDCIF (SP)+,AC3 ;ADD OF STRING2 -> AC3# MOV (SP)+,R0 ;LEN OF STRING1 -> R0T# MOV (SP)+,R1 ;ADD OF STRING1 -> R1O$ TST R0 ;CHECK LEN OF SOURCE STRING0 BLE 12$ ;IF ZERO OR LESS, RETURN NULL (BRANCH) SUBF AC1,AC0 ;N2-N1+1 -> AC0 CFCCG BGT 41$ ;IF POS, BRANCHE$ LDCIF #1,AC0 ;MAKE IT 1 BY DEFAULT%41$: TSTF AC1 ;CHECK ITERATION COUNTE CFCCN BGT 5$ ;IF POS, GO FIND MATCH1- CLR -(SP) ;IF DOWN TO ZERO, RECORD POSITION$ BR 7$ ;ON STACK AND SKIP SOME CODE&5$: JSR PC,STCM ;OTHERWISE FIND MATCH* BNE 12$ ;IF NO MATCH, RETURN NULL STRING% SUBF #1,AC1 ;DECREMENT LOOP COUNTER+ CFCCD BLE 6$ ;IF ZERO, THIS IS START& INC R1 ;PUSH STRING DESCRIPTORS PAST DEC R0 ;CURRENT CHAR BR 5$ ;ELSE GO AROUND AGAIN+ 13$: STXERRC36$: STCFI AC2,-(SP) ;LEN OF DELIM STRING + START OFI27$: ADD R1,(SP) ;ITS OCCURRENCE = START OF RESULT8$: INC R1 ;PUSH SOURCE STRINGF DEC R0 ;UP ONE CHAR % JSR PC,STCM ;GO LOOK FOR NEXT MATCH ) BNE 10$ ;IF NONE, RETURN REST OF SOURCEC% SUBF #1,AC0 ;DECREMENT LOOP COUNTER  CFCCM BNE 8$ ;IF NOT ZERO, LOOPB/9$: MOV R1,R4 ;R4 HAS ADD OF 1ST CHAR PAST END6! ;OF DELIMITED STRING (RESULT) # MOV (SP)+,R3 ;R3 HAS START ADDRESSR/ SUB R3,R4 ;NOW R4 HAS LEN OF DELIMITED STRING BR 11$ ;GO TO FINISH UP CODE/10$: ADD R0,R1 ;R1 PTS TO END OF SOURCE STRINGP BR 9$#11$: MOV (SP)+,R1 ;RESTORE TEXT PTR + MOV (SP)+,ENUDAT ;AND OLD END OF USER DATAA RTS PCP12$: CLR R4 ;SET NULL STRING  BR 11$$;I+; SUBROUTINE TO SLIDE STRING2 ALONG STRING1 ; LOOKING FOR A MATCH ; ON ENTRY:E; AC2 LEN OF STRING2B; AC3 ADD OF STRING2; R0 LEN OF STRING1; R1 ADD OF STRING1; ; ON EXIT:!; R0 HAS REMAINING LEN OF STRING1D; R1 HAS ADDRESS OF MATCH STARTE ; 'Z' SET IF MATCH, CLEAR IF NOT; OTHER REGISTERS USED: ALLD;,STCM: & MOV R0,R5 ;COPY LEN OF STRING1 TO R5+ ADD R1,R0 ;NOW R0 PTS PAST END OF STRING1+- STCFI AC2,R4 ;LEN OF DELIMITER STRING -> R42 SUB R4,R5 ;R5 NOW HAS # OF INC R5 ;ITERATIONS FOR COMPARE% BEQ 2$ ;IF ZERO TRIES, UNSUCCESSFUL ' DEC R1 ;BACK UP FOR INC WHICH FOLLOWSI#1$: INC R1 ;MOVE UP SOURCE ADDRESS  MOV R1,R2 ;COPY IT TO R2( STCFI AC2,R4 ;GET LEN OF COMPARE -> R46 STCFI AC3,R3 ;AND ADDRESS OF DELIMITING STRING -> R3! JSR PC,STRCMP ;DO ACTUAL COMPARE  BEQ 3$ ;ON SUCCESS, BRANCH. SOB R5,1$ ;KEEP GOING TILL SUCCESS OR FINISH2$: CLZ ;INDICATE FAILUREO' SUB R1,R0 ;MAKE SURE R0 IS PROPER LENT RTS PC -3$: SUB R1,R0 ;CALCULATE REMAINING LEN -> R0; SEZ ;INDICATE SUCCESS RTS PCF, .SBTTL FCHR00 - NUMERIC TO CHARACTER STRING;+5N; .SKIPO ; .X ^^STR$\\ !; .X ^NUMERIC TO CHARACTER STRINGR; .HEADERLEVEL 1 R5' MOV #160003,(R5)+ ;PUT IN DUMMY HEADERX' MOV R5,R0 ;START FOR CONVERSION -> R0  STCFI AC0,R1 ;NUMBER -> R1 JSR PC,$C5TA ;DO CONVERSION SUB R5,R0 ;R0 HAS ACTUAL COUNT) MOV R0,R4 ;NOW -> R4 WHERE WE EXPECT IT- MOVB R4,@ENUDAT ;STICK COUNT IN DUMMY HEADERN" MOV R5,R3 ;START OF STRING -> R3 MOV (SP)+,R1 ;RESTORE TEXT PTRO RTS PCR  .SBTTL DAT00 - DATE FUNCTION  .SBTTL TIM00 - TIME FUNCTIONE;+4; .SKIP1 ; .X ^^DAT$\\X; .X ^DATE FUNCTIONC; .HEADERLEVEL 1 R2 CMPB R2,#') ;NULL ARGUMENT?I BEQ 6$ ;IF SO, GET SYSTEM TIME CMPB R2,#'0 ;EXPLICIT ZERO?I# BNE 8$ ;IF NOT, EVALUATE (BRANCH) # SKIP ;IF SO, CHECK NEXT CHAR FORM CMPB R2,#') ;CLOSE PAREN% BEQ 6$ ;IF SO, ALSO GET SYSTEM TIME+)8$: MOV R3,R1 ;GET BACK TO START OF ARG.+ EVAL ;GET NUMBER -> AC0 BVS 3$ ;IF CLOSE PAREN, BRANCH STXERR ;ELSE SYNTAX ERROR3$: TSTF AC0 ;CHECK ANSWER( CFCCB, BLT NFILL ;IF NEGATIVE, RETURN NULL STRING CMP (SP),#TBTIM ;TIME OR DATE?  BNE 9$ ;IF DATE, BRANCH#$ JSR PC,TFILL ;FILL IN TIME FROM AC0% BR 7$ ;AND GO FINISH IN COMMON CODEI'9$: CFCC ;GET RESULTS OF LAST FP TESTN8 BEQ NFILL ;IF CALCULATED ZERO DATE, RETURN NULL STRING$ JSR PC,DFILL ;FILL IN DATE FROM AC0 BR 7$6$: GTIM$S #TIMBUF%7$: MOV (SP)+,R3 ;TABLE ADDRESS IN R3 $ MOV (R3)+,R4 ;DELIM00CVWITING CHAR IN R4 MOV R1,-(SP) ;SAVE R1 ON STACKY7 MOV ENUDAT,R0 ;R0 CONTAINS ADDRESS OF RESULTING STRINGI4 MOV #160012,(R0)+ ;PUT IN HEADER FOR SCRATCH STRING MOV @(R3)+,R1 CMP R4,#'- ;IS IT DEC DATE?J BEQ 4$ ;IF SO, BRANCH JSR PC,2$ MOVB R4,(R0)+ MOV @(R3)+,R1 JSR PC,2$5$: MOVB R4,(R0)+F MOV @(R3)+,R1 JSR PC,2$ MOV ENUDAT,R3' TST (R3)+ ;PUSH R3 TO START OF STRINGL SUB R3,R0 ;GET LEN IN R0) MOV R0,R4 ;NOW IN R4 WHERE IT SHOULD BE;& MOVB R4,-2(R3) ;AND IN SCRATCH HEADER MOV (SP)+,R1  RTS PCR#2$: CMP #10.,R1 ;IS NUMBER GE 10.?A BLE 1$ ;IF SO, OKR, MOVB #'0,(R0)+ ;IF NOT, INSERT LEADING ZERO1$: CLR R2 ;NO LEADING ZEROES. JSR PC,$CBDMG ;USE LIBRARY CONVERSION ROUTINE RTS PC 4$:S* JSR PC,1$ ;CONVERT DAY WITHOUT LEADING 0 MOVB R4,(R0)+ ;PUT IN DELIMITER MOV @(R3)+,R2 ;MONTH -> R2R DEC R2 ;DECREMENT FOR OFFSET" MOV R2,R1 ;AND COPY FOR MPY BY 3 ASL R2 ;BY DOING SHIFT ADD R1,R2 ;AND ADD! MOV #MONTH,R1 ;OFFSET INTO MONTH3 ADD R2,R1 ;TABLE MOVB (R1)+,(R0)+ ;PUT IN 3 CHAR MOVB (R1)+,(R0)+ ;MONTH MOVB (R1)+,(R0)+ ;F' BR 5$ ;AND GO FINISH IN PREVIOUS CODE (NFILL: TST (SP)+ ;POP ADDRESS OFF STACK CLR R4 ;INDICATE NULL STRING RTS PC ;AND RETURNCCENTUR: .FLT2 36524. ;# OF DAYS IN A CENTURY (365*100+24 LEAP DAYS)0+DAYSEC: .FLT2 86400. ;# OF SECONDS IN A DAY>(HRSEC: .FLT2 3600. ;# OF SECONDS IN HOUR)MINSEC: .FLT2 60. ;# OF SECONDS IN MINUTEYDFILL:18$: CMPF CENTUR,AC0 ;MORE THAN A CENTURY OF DAYS?I CFCCT BGE 7$ ;IF NOT, OK (BRANCH)R5 SUBF CENTUR,AC0 ;IF SO, CALCULATE MODULO ONE CENTURYV BR 8$17$: LDCIF #365.,AC2 ;# DAYS IN NORMAL YEAR -> AC2. LDCIF #366.,AC3 ;# DAYS IN LEAP YEAR -> AC3 CLR R0 ;YEAR COUNTER -> R0- CMPF AC0,AC2 ;COMPARE # DAYS TO NORMAL YEARY CFCCC8 BLE 3$ ;IF THAT OR LESS, WE'RE IN '00' YEAR, SO BRANCH/ SUBF AC2,AC0 ;SUBTRACT 1 YEAR'S WORTH OF DAYSN INC R0 ;BUMP UP THE YEAR1$: BIT #3,R0 ;LEAP YEAR? BNE 2$ ;IF NOT, BRANCH4 CMPF AC0,AC3 ;DO WE HAVE OVER A LEAP YEAR OF DAYS? CFCCK5 BLE 3$ ;IF NOT, WE'VE FOUND THE RIGHT YEAR (BRANCH)N& SUBF AC3,AC0 ;ELSE SUBTRACT 366 DAYS INC R0 ;INCREMENT THE YEAR BR 1$ ;AND TRY IT AGAINI92$: CMPF AC0,AC2 ;DO WE HAVE OVER A NORMAL YEAR OF DAYS?C CFCC;% BLE 3$ ;IF NOT, RIGHT YEAR (BRANCH)& SUBF AC2,AC0 ;ELSE SUBTRACT 365 DAYS INC R0 ;INC THE YEAR BR 1$ ;AND TRY AGAIN13$: STCFI AC0,R2 ;# OF DAYS INTO THIS YEAR -> R2 1 MOV #1,R3 ;WE'RE AUTOMATICALLY AT LEAST IN JAN.C- MOV #MONCHK,R4 ;ADDRESS OF MONTH TABLE -> R4Y15$: MOVB (R4)+,R5 ;# OF DAYS FOR THIS MONTH -> R5  CMP R3,#2 ;CHECKING FEB.?  BNE 4$ ;IF NOT, BRANCH BIT #3,R0 ;LEAP YEAR?E BNE 4$ ;IF NOT, BRANCH TST R0 ;ZERO YEAR?# BEQ 4$ ;IF SO, ALSO NOT LEAP YEARA3 INC R5 ;WE HAVE FEB. OF LEAP YEAR, SO MAKE IT 29.04$: CMP R2,R5 ;COMPARE DAYS LEFT TO MONTH IN R53 BLOS 6$ ;IF NO EXCESS, THIS IS THE MONTH (BRANCH)2. SUB R5,R2 ;ELSE SUBTRACT DAYS FOR THIS MONTH INC R3 ;INCREMENT THE MONTHN" CMP R3,#12. ;ARE WE AT DECEMBER?! BLO 5$ ;IF NOT, GO AROUND AGAINR$6$: MOV R0,TIMBUF+G.TIYR ;STORE YEAR MOV R3,TIMBUF+G.TIMO ;MONTH MOV R2,TIMBUF+G.TIDA ;DAY RTS PCLTFILL:% CMPF DAYSEC,AC0 ;FIRST GET # SECONDS; CFCC ;MODULO 1 DAYF BGT 1$  SUBF DAYSEC,AC0 BR TFILLH.1$: MOV #TBTIM+2,R5 ;ADDRESS TABLE FOR RESULTS# MOV #HRSEC,R4 ;ANOTHER TABLE -> R4 LDF AC0,AC2 ;COPY # SEC -> AC2 DIVF (R4),AC2 ;# HRS -> AC2# MODF #1,AC2 ;INTEGER HOURS -> AC3N STCFI AC3,@(R5)+ ;HOURS -> SLOT LDF (R4)+,AC2 ;SEC/HR -> AC2M, MULF AC3,AC2 ;CALC # SECS IN INTEGER HOURS/ SUBF AC2,AC0 ;AND SUBTRACT THEM (< 1 HR LEFT)G! LDF AC0,AC2 ;COPY # SECS -> AC2 DIVF (R4),AC2 ;# MINUTES -> AC2% MODF #1,AC2 ;INTEGER MINUTES -> AC3M STCFI AC3,@(R5)+ ;MIN -> SLOT LDF (R4),AC2 ;SEC/MIN -> AC2T. MULF AC3,AC2 ;CALC # SECS IN INTEGER MINUTES- SUBF AC2,AC0 ;AND LEAVE < 1 MIN. OF SECONDS  STCFI AC0,@(R5)+ ;SEC -> SLOT RTS PC2 M5 .SBTTL DCEN - DAY OF CENTURY AND DATE VALIDITY CHECKH;+4-; .S ; .X R0* ADD R4,R3 ;R3 NOW HAS END OF STRING ADD.# CLRB (R3) ;MAKE SURE WE TERMINATEN CMP R4,#6 ;6 OR LESS CHARS?$7 BGT 20$ ;IF MORE, CANNOT BE UNDELIMITED FORM (BRANCH)H8 CMPB 1(R0),#'/ ;CHECK ONE OF TWO POSSIBLE POSITIONS FOR) BEQ 20$ ;SLASH, IF SO, GO TO SLASH CODEE) CMPB 2(R0),#'/ ;NOW CHECK OTHER POSITIONT BEQ 20$1 JMP 21$ ;IF NEITHER, MUST HAVE UNDELIMITED DATEE+20$: JSR PC,$CDTB ;DECIMAL(ASCII) -> BINARYS ;DELIMITER -> R2 CMPB R2,#'- ;IS IT DASH?/ BEQ 2$ ;IF SO, DEC STD DATE NOTATION (BRANCH) . CMPB R2,#'/ ;OR IS IT COMMON SLASH NOTATION?* BNE 13$ ;IF NEITHER, BOGUS DATE (BRANCH) DEC R1 ;MONTH-1 -> R1O BMI 15$ ;IF NEG, BAD MONTH, CMP R1,#12. ;CHECK HIGH END OF MONTH RANGE( BHIS 15$ ;REPORT BAD MONTH IF OVER 12. MOV R1,2(SP) ;STORE MONTH-1# JSR PC,$CDTB ;CONVERT DAY OF MONTHT ;DELIMITER -> R2+ CMPB R2,#'/ ;DO WE HAVE PROPER DELIMITER?: BNE 13$ ;IF NOT, REPORT ERRORB MOV R1,4(SP) ;SAVE DAY OF MONTH% BR 7$ ;GO TO COMMON YEAR PROCESSING,#2$: MOV R1,4(SP) ;SAVE DAY OF MONTHP- MOV #MONTH,R1 ;ASCII MONTH TABLE START -> R1E1 MOV R3,-(SP) ;SAVE END OF SOURCE STRING POSITIONO CLR R2 ;R2 IS MONTH-1 COUNTERB& MOV R1,R5 ;REMEMBER WHAT MONTH IN R5+ MOV R0,R4 ;REMEMBER START OF SOURCE MONTHI"6$: MOV #3,R3 ;3 CHARS TO COMPARE*3$: CMPB (R0)+,(R1)+ ;SEE IF MONTH MATCHES BNE 4$ ;IF NOT, BRANCH SOB R3,3$ ;IF WE FINISH LOOP MOV (SP)+,R3 ;THEN RESTORE R3 MOV R2,2(SP) ;SAVE THE MONTH, CMPB (R0)+,#'- ;CHECK DELIMITER BNE 13$ ;IF BOGUS, ERROR, BR 7$ ;ELSE CONTINUE WITH COMMON YEAR CODE34$: CMP R2,#11. ;DID WE JUST CHECK OUR LAST MONTH?N BLO 5$ ;IF NOT, BRANCH& MOV (SP)+,R3 ;IF SO, RESTORE TEXT PTR# BR 15$ ;AND REPORT ERROR IN MONTH*5$: ADD #3,R5 ;MOVE DOWN INTO MONTH TABLE MOV R5,R1 ;RESET PTR MOV R4,R0 ;ALSO SOURCE PTR INC R2 ;KEEP TRACK OF MONTH-14 BR 6$ ;AND TRY AGAIN*7$: CMP R0,R3 ;CHECK POSITION AGAINST END$ BHIS 13$ ;IF AT OR PAST END, ERROR JSR PC,$CDTB ;GET YEAR -> R1K DEC R0 ;BACK UP TEXT PTR- CMP R0,R3 ;COMPARE WITH WHERE WE SHOULD ENDY$ BNE 13$ ;IF NOT, DATE FORMAT ERROR27$: MOV R1,(SP) ;SAVE IT CMP R1,#99. ;CHECK HIGH ENDP BHI 16$ ;IF OVER, ALSO ERROR CMP 2(SP)00SVW,#1 ;FEBRUARY?- BNE 8$ ;IF NOT, CAN SKIP LEAP YEAR BUSINESSH) BIT #3,R1 ;OTHER THAN MULTIPLE OF FOUR? ( BNE 8$ ;IF SO, CAN ALSO SKIP LEAP YEAR TST R1 ;ZERO YEAR?# BEQ 8$ ;IF SO, ALSO NOT LEAP YEARI5 MOV #29.,R2 ;IF WE GOT HERE, IT IS FEB OF LEAP YEAR BR 9$ ;GO TO CHECK8$: MOV 2(SP),R0 ;MONTH-1 -> R0P+ MOVB MONCHK(R0),R2 ;PROPER # OF DAYS -> R2 09$: CMPB 4(SP),R2 ;CHECK DAY OF MONTH AGAINST R2 BHI 14$ ;IF HIGH, ERRORR TST 4(SP) ;CHECK LOW END$ BLE 14$ ;IF ZERO OR LESS, ALSO BAD;#'; NOW READY TO CALCULATE DAY OF CENTURYL;  MOV (SP),R0 ;# YRS -> R0< LDCIF R0,AC0 ;# YRS SINCE START OF START OF CENTURY -> AC0 LDCIF #365.,AC2 ;* MULF AC2,AC0 ;365 DAYS/YR (NORMAL YEARS)( DEC R0 ;DON'T INCLUDE CURRENT YEAR YET BLT 10$ ;IF '00' YEAR, BRANCH  ASH #-2,R0 ;DIVIDE BY FOUR# LDCIF R0,AC1 ;# LEAP YEARS -> AC1O$ ADDF AC1,AC0 ;ADD IT TO TOTAL DAYS10$: MOV (SP)+,R0 ;YEAR -> R02 MOV (SP)+,R1 ;MONTH-1 -> R1 CLR R2 ;SET NO LEAP YEAR CMP R1,#2 ;MARCH OR LATER?. BLT 11$ ;IF NOT, DON'T WORRY ABOUT LEAP YEAR& BIT #3,R0 ;IS THIS MULTIPLE OF FOUR?( BNE 11$ ;IF NOT, BRANCH (NO LEAP YEAR) TST R0 ;IS THIS '00' YEAR? BEQ 11$ ;ALSO NOT LEAP YEARS6 INC R2 ;IF WE GOT HERE, THEN IT'S LEAP YEAR PAST FEB011$: ASL R1 ;MPY MONTH-1 BY 2 (FOR WORD OFFSET)3 ADD MONTOT(R1),R2 ;ADD IN TOTAL OF PREVIOUS MONTHSC& ADD (SP)+,R2 ; AND DAYS OF THIS MONTH/ LDCIF R2,AC1 ;TOTAL DAYS FOR THIS YEAR -> AC1M ADDF AC1,AC0 ;NOW WE HAVE IT!A 12$: RTS PCR;2; ERROR RETURN PROCESSING$;I+13$: LDCIF #-1,AC0 ;BAD DATE FORMAT RETURN0 BR 17$S%14$: LDCIF #-2,AC0 ;BAD DAY OF MONTHB BR 17$ &15$: LDCIF #-3,AC0 ;BAD MONTH OF YEAR BR 17$$(16$: LDCIF #-4,AC0 ;BAD YEAR OF CENTURY17$: ADD #6,SP ;CLEAN UP STACKF BR 12$ ;AND GO TO RETURN;Y$; DO 5 OR 6 DIGIT NON-DELIMITED DATE;; 30$: .FLT4 .01 ;FLOATING 1/100.%21$: MOV R0,R1 ;STRING ADDRESS -> R1$ MOV R3,-(SP) ;SAVE OUR END POSITION) ATOF ;MAKE STRING INTO FLOATING NUMBERA. CMP (SP)+,R1 ;WE MUST NOW BE AT END OF STRING BNE 13$ ;ELSE ERROR (BRANCH) STF AC0,-(SP) ;SAVE RESULT4) SETD ;MAKE SURE WE DON'T LOSE ANYTHING79 LDCFD (SP)+,AC0 ;GET OUR RESULT BACK IN DOUBLE PRECISIONL/ ADDD 30$,AC0 ;MAKE US JUST A LITTLE > INTEGERP- MODD 30$,AC0 ;YEAR/100 -> AC0; MO,DA -> AC1# DIVD 30$,AC0 ;INTEGER YEAR -> AC0A STCDI AC0,R1 ;YEAR -> R1$ LDD AC1,AC0 ;COPY REST BACK -> AC0( ADDD 30$,AC0 ;MAKE SURE JUST > INTEGER) MODD 30$,AC0 ;DAY/100 -> AC0; MO -> AC1I" DIVD 30$,AC0 ;INTEGER DAY -> AC0& STCDI AC0,4(SP) ;DAY -> SLOT ON STACK STCDI AC1,R0 ;MONTH -> R0)! SETF ;BACK TO REGULAR FLOATINGW DEC R0 ;MONTH-1 -> R0L' CMP R0,#12. ;IF 12. OR MORE (OR NEG.)U# BHIS 15$ ;BRANCH TO ERROR ROUTINEU" MOV R0,2(SP) ;SAVE VERIFIED MONTH BR 27$E 1( .SBTTL SEC - SECONDS FROM TIME FUNCTION;+4E; .S ; .X R0S+ MOV #20$,R4 ;CHECKING TABLE ADDRESS -> R4A$ MOV #3,R3 ;GO THROUGH LOOP 3 TIMES33$: JSR PC,$CDTB ;CONVERT NUMBER (TERMINATOR -> R2)S CMPB R2,#': ;MUST BE COLON, BNE 10$ ;IF NOT DATE FORMAT ERROR (BRANCH)( CMP R1,(R4)+ ;CHECK OUT RANGE OF NUMBER* BHI 12$ ;IF TOO MUCH OR NEGATIVE, BRANCH# MOV R1,(R5)+ ;IF GOOD, PUT IT AWAY) SOB R3,3$, CMP (SP)+,R0 ;DO WE END UP WHERE WE SHOULD? BNE 11$ ;IF NOT, BRANCHS" LDCIF #60.,AC1 ;MULTIPLIER -> AC1 LDCIF (SP)+,AC0 ;HOURS -> AC0' MULF AC1,AC0 ;HOURS -> MINUTES -> AC0K LDCIF (SP)+,AC2 ;MINUTES -> AC2$ ADDF AC2,AC0 ;TOTAL MINUTES -> AC0) MULF AC1,AC0 ;MINUTES -> SECONDS -> AC0S$ LDCIF (SP)+,AC2 ;ODD SECONDS -> AC2$ ADDF AC2,AC0 ;TOTAL SECONDS -> AC04$:P RTS PC &10$: TST (SP)+ ;POP END OF STRING PTR(11$: ADD #6,SP ;GET RID OF NUMBER SLOTS2 LDCIF #-1,AC0 ;PUT IN BAD TIME FORMAT ERROR CODE BR 4$ ;AND GO RETURN"12$: INC R3 ;PUSH UP LOOP COUNTER) NEG R3 ;AND MAKE IT NEGATIVE ERROR CODEF LDCIF R3,AC0 ;STORE IT AWAY  ADD #10,SP ;CLEAN STACK- BR 4$ ;AND RETURNA13$: CLRF AC0 ;SET ZERO RESULT  BR 4$ ;AND RETURN020$: .WORD 23. .WORD 59. .WORD 59. S1 .SBTTL FRMT$ - NUMERIC TO STRING FORMAT FUNCTIONC;+5O; .S ; .X AC0) BVS 99$ ;IF CLOSE PAREN, ERROR (BRANCH)G STF AC0,-(SP) ;SAVE X SKIP ;NEXT CHAR CMPB R2,#', ;MUST BE COMMA BNE 99$ ;ELSE ERROR (BRANCH) EVAL ;W -> AC0.4 STF AC0,-(SP) ;STORE IT (COND. CODES NOT DISTURBED)# BVC 1$ ;IF NO CLOSE PAREN, BRANCH % MOV #-1,R0 ;IF D NOT SPEC'D, USE -1  BR 2$ 99$: STXERRS1$: SKIP ;NEXT CHAR -> R2  CMPB R2,#', ;MUST BE COMMA BNE 99$ ;ELSE ERROR6 EVAL ;D -> AC0F, BVC 99$ ;MUST HAVE CLOSE PAREN, ELSE ERROR STCFI AC0,R0 ;D -> R0V# BMI 41$ ;IF NEG, GO TO ERROR FILLE2$: LDF (SP)+,AC0 ;W -> AC0- STCFI AC0,R2 ;W -> R2X0 BLE 30$ ;IF NEG OR ZERO, GO RETURN NULL STRING0 ADD #2,R0 ;W MUST BE AT LEAST 2 GREATER THAN D CMP R2,R0 ;CHECK W VS D+2O& BLT 40$ ;IF W < D+2, THEN ERROR FILL SUB #2,R0 ;RESTORE ORIGINAL DT3 SETD ;SET DOUBLE PRECISION, SO DON'T LOSE DIGITSE CLRD AC2 ;SET NO SIGN# LDCFD (SP)+,AC0 ;X -> AC0 CFCC ;O! BGE 11$ ;IF POS OR ZERO, BRANCHM" ADDD #1,AC2 ;INDICATE '-' NEEDED ABSD AC0 ;AND MAKE POSITIVE$!11$: LDCID R2,AC3 ;SAVE W -> AC3D INC R2 ;ROUND UP W BIC #1,R2 ; #12$: SUB R2,SP ;MAKE ROOM ON STACK,% MOV SP,R5 ;PUT PTR FOR STRING -> R5M MOV R2,-(SP) ;SAVE ROUNDED UP W MOV R0,-(SP) ;SAVE D  TST R0 ;POSITIVE D?  BLE 4$ ;IF NOT, BRANCH3$: MULD #10.,AC0 ;SCALE US UP SOB R0,3$ ;BY D FACTORS OF TEN14$: MODD #1,AC0 ;INTEGER -> AC1, FRACTION -> AC0(# CMPD #.5,AC0 ;SHOULD WE ROUND UP?1 CFCC  BGT 5$ ;IF POS, NO ADDD #1,AC1 ;ELSE ADD 1 %5$: LDD AC1,AC0 ;INTEGER BACK -> AC0 STCDI AC3,R2 ;W -> R2W M00cVWOV (SP)+,R0 ;D -> R0 BLE 7$ ;NEG OR ZERO, BRANCHB$6$: JSR PC,20$ ;DO DIGIT CONVERSION% DEC R2 ;KNOCK OFF 1 FROM TOTAL LEFT, SOB R0,6$ ;DO IT D TIMES)7$: BLT 8$ ;IF R0 NEG, BRANCH (SKIP '.') % MOVB #'.,(R5)+ ;PUT IN DECIMAL POINT0 DEC R2 ;ACCOUNT FOR IT8$: TST R2 ;ANY W LEFT?( BEQ 10$ ;IF NOT, BRANCH TO FINAL CHECK(9$: TSTD AC0 ;ANYTHING LEFT TO CONVERT? CFCC BEQ 13$ ;IF DONE, BRANCH JSR PC,20$ ;CONVERT DIGIT( SOB R2,9$ ;KEEP GOING TILL NUMBER DONE(10$: TSTD AC0 ;IF WE GOT HERE, CHECK IF CFCC ;ANYTHING LEFT BGT 42$ ;IF SO, ERROR2 TSTD AC2 ;SIGN?R CFCCD BGT 42$ ;IF SO, ALSO ERROR BR 16$ ;ELSE GO TO COPY CODE$13$: STCDI AC3,R0 ;ORIGINAL W -> R06 CMP R0,R2 ;IS IT SAME AS LEFT (NOTHING PRINTED YET)? BEQ 22$ ;IF SO, BRANCH8 CMPB -1(R5),#'. ;DO WE HAVE ANYTHING TO LEFT OF DECIMAL BNE 21$ ;IF SO, BRANCH-22$: MOVB #'0,(R5)+ ;IF NOT, PUT IN LEADING 0 + DEC R2 ;KEEP TRACK OF HOW MANY CHARS LEFT,$21$: TSTD AC2 ;CHECK IF SIGN NEEDED CFCCC BLE 14$ ;IF NOT, BRANCHF TST R2 ;ANY ROOM LEFT?' BLE 42$ ;IF NOT, BRANCH TO ERROR FILLN MOVB #'-,(R5)+ ;PUT IN SIGN DEC R2 ;ACCOUNT FOR IT14$: TST R2 ;ANY SPACE LEFT?3" BEQ 16$ ;IF NOT, GO TO COPY CODE*15$: MOVB #40,(R5)+ ;FINISH FILLING STRING SOB R2,15$ ;WITH BLANKSC16$: MOV (SP),R0 ;W -> R0 MOV R5,R2 ;STRING PTR -> R2E' TSTOK ;CHECK FOR ROOM (ENUDAT -> R5)  BHIS 17$ ;IF OK, BRANCH19$: OVFERR ;ELSE OVERFLOW17$: STCDI AC3,R0 ;W -> R0  MOV R0,R4 ;ALSO -> R4C BIS #160000,R0 ;SET HEADERC MOV R0,(R5)+ ;PUT IT AWAY MOV R5,R3 ;SET START OF STRING MOV R4,R0 ;RESET W -> R0&18$: MOVB -(R2),(R5)+ ;COPY THE STRING SOB R0,18$ ;INTO SCRATCH AREAQ! MOV (SP)+,R0 ;ROUNDED UP W -> R0: ADD R0,SP ;CLEAN STACK SETFT RTS PCB020$: MODD M.PT1,AC0 ;INTEGER -> AC1, REM. -> AC0 MULD M.TEND,AC0 ;GET DIGIT BACK STCDI AC0,R4 ;MAKE IT 16 BITS- ADD #60,R4 ;AND NOW ASCII CHAR MOVB R4,(R5)+ ;PUT IT AWAYW' LDD AC1,AC0 ;COPY REST OF NUMBER BACK4 RTS PC>30$: ADD #4,SP ;CLEAN STACK 31$: CLR R4 ;RETURN NULL STRING SETF, RTS PCS%42$: MOV (SP)+,R0 ;ROUNDED UP W -> R0  ADD R0,SP ;CLEAN STACK STCDI AC3,R0 ;W -> R0, SETF ;BACK TO FLOATING MODE BR 44$R;D; W ON STACK, X ON STACK;C41$: LDF (SP)+,AC0 ;W -> AC0 STCFI AC0,R0 ;W -> R0G& BLE 31$ ;IF ZERO OR NEG, NULL RETURN BR 43$I;A; X ON STACK, W IN R2E; 40$: MOV R2,R0 ;W -> R043$: ADD #4,SP ;CLEAN STACK44$: TSTOK ;CHECK FOR ROOM" BLO 19$ ;IF NOT, REPORT OVERFLOW MOV R0,R4 ;COPY LENE BIS #160000,R0 ;SET HEADERN% MOV R4,R0 ;GET BACK UNADULTERATED WV" MOV R5,R3 ;REMEMBER STRING START!45$: MOVB #'*,(R5)+ ;PUT IN STARS  SOB R0,45$ ; RTS PC ;AND RETURN E- .SBTTL RJS00 - RIGHT JUSTIFY STRING FUNCTION1;+5F; .SKIP0 ; .X ^^RJS$\\C ; .X ^^LJS$\\>; .X ^RIGHT JUSTIFY FUNCTION ; .HEADERLEVEL 1 R4 BNE 5$ ;IF NON - ZERO, BRANCHR231$: MOV R3,R5 ;DUPLICATE ADDRESS OF STRING IN R5 MOV R0,R4 ;AND REQ'D LEN IN R4 MOVB #40,R2 ;SPACE IN R2!4$: MOVB R2,(R5)+ ;FILL IN SPACEST SOB R0,4$ TST (SP)+ ;POP RIGHT-LEFT FLAG BR 62$ ;AND FINISH%5$: TST (SP)+ ;RIGHT OR LEFT JUSTIFYR" BNE 10$ ;IF LEFT JUSTIFY, BRANCH; RIGHT JUSTIFY CODE+ MOV R3,R2 ;DUPLICATE STRING ADDRESS IN R2N4 ADD R4,R2 ;MAKE R2 POINT PAST END OF ACTUAL STRING751$: CMPB #40,-(R2) ;BLANK TRIM THE STRING FROM THE END- BNE 52$ SOB R4,51$-#53$: TST -(SP) ;FAKE FLAG ON STACKI BR 31$ ;AND FINISH,52$: MOV R4,R5 ;DUPLICATE TRIMMED LEN IN R52 BEQ 31$ ;IF ZERO, BRANCH AND RETURN BLANK STRING$ MOV R3,R2 ;DUPLICATE ADDRESS IN R20 SUB R0,R5 ;ACTUAL MINUS REQUESTED LENGTH IN R5/ BLT 7$ ;IF ACTUAL LESS THAN REQUESTED, BRANCHS7 ADD R5,R2 ;MAKE R2 POINT TO START OF REMAINING STRINGE+ MOV R3,R5 ;DUPLICATE STRING ADDRESS IN R5P16$: MOVB (R2)+,(R5)+ ;SHIFT STRING LEFT SO WE GET $ SOB R0,6$ ;RIGHTMOST R0 CHARACTERS)61$: STCFI AC0,R4 ;STORE REQ'D LEN -> R4K+62$: MOVB R4,@ENUDAT ;AND IN SCRATCH HEADERM RTS PC )7$: ADD R0,R3 ;LET R3 POINT TO REQ'D END ' ADD R4,R2 ;AND R2 POINT TO ACTUAL ENDV NEG R5 ;MAKE R5 POSE(8$: MOVB -(R2),-(R3) ;MOVE STRING TO THE SOB R4,8$ ;RIGHT/9$: MOVB #40,-(R3) ;AND FILL IN FIRST PART WITHA SOB R5,9$ ;BLANKSI BR 61$ ;AND FINISH; LEFT JUSTIFY CODE5/10$: MOV R3,R2 ;REPEAT STRING START ADD. -> R2+.11$: CMPB (R2)+,#40 ;TRIM OFF BEGINNING BLANKS) BNE 12$ ;BRANCH ON FIRST NON-BLANK CHARR SOB R4,11$'- BR 53$ ;IF WE FINISHED, RETURN BLANK STRINGT312$: DEC R2 ;MAKE R2 POINT TO FIRST NON-BLANK CHAR MOV R3,R5 ;DUPLICATE ADD IN R5 MOV R4,-(SP) ;SAVE TRIMMED LENE'13$: MOVB (R2)+,(R5)+ ;NOW MOVE IT DOWNN SOB R4,13$B. SUB (SP)+,R0 ;SEE HOW WE MUCH WE NEED TO FILL$ BLE 15$ ;IF ALREADY ENOUGH, BRANCH'14$: MOVB #40,(R5)+ ;FILL IN THE BLANKSD SOB R0,14$R 15$: BR 61$  I$ .SBTTL SPACE$ AND STRING$ FUNCTIONS;+5T; .SKIPE ; .X AC0! BVS 1$ ;SHOULD HAVE CLOSE PARENG STXERR ;ELSE SYNTAX ERROR!1$: STCFI AC0,R0 ;GET CHAR COUNTE' TSTOK ;CHECK FOR ROOM (ENUDAT -> R5)E" BLO 4$ ;IF NO ROOM, REPORT ERROR) MOV #160000,(R5)+ ;PUT IN SCRATCH HEADER4# MOVB R0,-2(R5) ;AND SET CHAR COUNT0 MOV (SP)+,R2 ;GET CHAR TO USE" MOV R0,R4 ;COPY CHAR COUNT -> R4 BLE 3$ ;IF ZERO OR NEG., DONER% MOV R5,R3 ;COPY START ADDRESS -> R3S$2$: MOVB R2,(R5)+ ;FILL IN THE CHARS SOB R0,2$3$: RTS PC ;AND RETURNT 4$: OVFERR .END z 8Dy:Ё@:`@fh@ 0@&:""@#w""@a W@GP}@6x@M""@:@z)%@U@)@ @6a""@[(}@"{@)%@#@ehp@:d N@!<@t!J@:_@/0@zy""@  8 K0hTo; h_MphVo =hSZ0h0:0h2N0h}0\hx ( hn 0hn0h""0hzmeh; 000sVWh0hu~0h*0hu0hZ#r0h Ayh+0hh0h:^0hpq>5hK΁ho N*hH &0hz_M0hPw0h #w0h 3 0hy0h'Vh &Nuh<0hgN*hzy΁ht"0hL0h r0h0hl:0hJrXh w0h6x$hbK^0hw0h#N*h\΁hL^0h$  8pE=& tm 7Uwf&& & & B¥E*¥-D¥+>¥.5 _BUU&u~2u~ :u~ >UFUJy:ЁZxhz 0|05B7R5 Up `%A5;UEB -+UM5 'UEU5P 055U5U@53 U 5UU5@56 UmW ~ W t~ %5 B@& & &  &  0 @f-777 7 7% 7   c?e C ~#/#,  (ez   7pfe0 ~Е. ЕVzl.Е0~ Е  e  ЕED  @> BV4Cz  @ B:l:txh|6x +a Wzy}:!<BxhRxhd"Ojxhv"Ova  vfBa@   &U    ~  a Ew&H &F!<Xy""\"{l!<vy""z"{\ )v&   )v )ӥ $ aӕ, f Ew @  V 2xh"{"!<(xh`!<j!<rGP}|xh )v  )v Ē@E  v% D !<"""{xh.9x6"{N`66 6 4"O !<D!<LxhX"Oh6jBl>nNp`L 6 6 - 6 m66`6  ,    & r &BxhL"O`!<p#w""t!<~xh,; d ,)0@ & & ,! v V *A&  @W@ xh("O6xh@"ODN` "@D` @`  B H@@ f C  y"",!<Ly`"Ol!<e  Ceפ  & ¥) aר פ  & f&4"{8xh@y""l"Opy""x!<<   ? f @ @?C: /-JANFEBMARAPRMAYJUNJULAUGSEv:_:`!<$"O(y""2 >[(}F!<Pu~Ru~Tu~ Xu~Zu~\u~`u~bu~du~POCTNOVDECC )0 ) @F#  > =f !-6"xh2xh>"OBy""Lbu~r!<4 "   3% Е0   B``PPP  HHaFpC77!<8:N mn  5   T  5  B 77v7n T ~`  eBe#= p=ף t%& 7777776@  Ն6  v"{zy""~xh )v -`ԕ:&  :T U~% W< e  e;; & $ ,y""D ^6a"" ;********* ; * ; BASIC2 * ; * ;*********;;"; STOP00 - STOP AND END STATEMENTS!; REGISTERS USED - R0,R1,R2,R3,R4 ;!; RUN00 - START PROGRAM EXECUTION!; REGISTERS USED - R5; ; GOSB00 - GOSUB STATEMENTE; GOSB00 - GOSUB STATEMENT, PUSH CLASS 1 ITEM ON STACK THEN DO A GOTO!; REGISTERS USED - R0,R1,R2,R3,R4;; GOTO00 - GOTO STATEMENT~;?; GOTO00 - GOTO STATEMENT - RESET LINENO TO NEW EXECUTION POINT!; REGISTERS USED - R0,R1,R2,R3,R4;; RES00 - RESTORE STATEMENT*4; RES00 - RESTORE STATEMENT - CLEAR THE DATA POINTER; REGISTERS USED - NONEO;N; RET00 - RETURN STATEMENT:; RET00 - RETURN STATEMENT - FIND LAST GOSUB ITEM IN LIST,<; GET ITS LINE NUMBER, PLACE IN LINENO, AND DELETE THE ITEM.$; REGISTERS USED - R0,R1,R2,R3,R4,R5;I; J; STFIND: STATEMENT FIND ROUTINE TO POSITION OURSELVES TO PROPER STATEMENT1; IN A LINE (USED FOR RETURN AND NEXT STATEMENTS)E ; ON ENTRY: ; R0 HAS LINE NUMBER; R5 HAS LINE HEADER ; R1 POSITIONED TO START OF LINE$; R2 HAS COUNT OF STATEMENTS TO SKIP; ; ON EXIT:; R0 -> LINENO; R5 -> LINEHD; R1 AT START OF R2+1 STATEMENTE; R2 UNDEFINED;U;S; DIM00 - DIM STATEMENTB2; DIM STATEMENT - GENERATE DIMENSIONED TABLE ENTRY"; REGISTERS USED - R0,R1,R2,R3,R4.;S.; SUBROUTINE STRGLN FOR USE WITH DIM STATEMENT ; ON ENTRY:I; R1 POINTS JUST PAST '$' ; ON EXIT:); R1 POINTS JUST PAST LEN INFO [IF THERE] %; R0 HAS LEN (+ FOR FIXED, - FOR VAR)N; 'V' SET IF SYNTAX ERRORD; OTHER REGISTERS USED: R2 ;E6; SUBROUTINE SUBSUB TO RETURN SUBSCRIPT VALUES FOR DIM ; ON ENTRY:O); R1 POINTS TO START OF INFO [OPEN PAREN]T ; ON EXIT:9; R1 POINTS PAST END OF SUBSCRIPT INFO [PAST CLOSE PAREN]N; R3 HAS FIRST SUBSCRIPT VALUE/; R4 HAS 2ND SUBSCRIPT VALUE (0 IF NONE SPEC'D)U; 'V' SET IF SYNTAX ERRORH; OTHER REGISTERS USED: R2,R0 ;P;T; SUBROUTINE SUBONEN(; TO GET SUBSCRIPTS VIA SUBSUB AND CHECK'; THEM FOR IMMEDIATE (NON-VIRTUAL) USE.R ; ON ENTRY: ; R1 = TEXT PTRO ; ON EXIT:; R1 POINTS PAST CLOSE PAREN; R3 HAS 1ST SUBSCRIPT; R4 HAS 2ND SUBSCRIPT; R0 HAS PACKED SUBSCRIPTS; 'V' SET IF ERROR; OTHER REGISTERS USED: R2;1#; DEF00 - DEFINE FUNCTION STATEMENTAF; DEFINE STATEMENTS ARE DONE HERE - ONE TABLE ENTRY IS MADE, CONFLICTS.; ARE NOT CHECKED. REGISTERS USED - R1,R2,R4.;O,; EVAL00 - EVALUATE AN ARITHMETIC EXPRESSION;RC; EVAL - EVAL00, EVALUATE AN ARITHMETIC EXPRESSION. UPON ENTRY, R1I<; POINTS TO THE CURRENT TEXT POSITION. ON EXIT AC0 CONTAINS=; THE NUMERIC VALUE OF THE EXPRESSION. RE00VWGISTERS USED - ALL.TE; V-BIT WILL BE SET IF EXPRESSION TERMINATED BY ')', CLEAR OTHERWISE.R&; ON V SET, R1 POINTS PAST CLOSE PAREN+; ON V CLEAR, R1 POINTS TO TERMINATING CHARE;T; GTP00 - GET AN OPERAND;N!; GETOP - GTP00, GET AN OPERAND. H ; ON ENTRY:T; R1 POINTS TO START OF OPERAND0;E ; ON EXIT:); R1 POINTS TO NEXT CHAR AFTER SCAN ENDEDE; AC0 HAS VALUE OF OPERAND;N'; OTHER REGISTERS USED: POTENTIALLY ALLN;ED; NOTE: THIS ROUTINE MUST BE RE-ENTRANT SINCE IT MAY RE-ENTER ITSELF; VIA CALLS TO "EVAL". T#; LEN00 - LENGTH OF STRING FUNCTIONE"; FNSET - PARAM SETUP FOR USER FCN;N); FNSET - SET UP PARAMS FOR FUNCTION CALLC7; RETURN ADDRESS IS PULLED FROM STACK AND STACK IS USEDN8; TO STORE INFO ON ALREADY DEFINED DUMMY PARAMS. ENTRIES7; FOR DUMMY PARAMS ARE PUT INTO USER AREA AND NAMES FOR -; PREVIOUSLY DEFINED DUMMY PARAMS ARE ZEROED. ; ON CALL:; R3 POINTS TO FCN ENTRY'; R1 POINTS TO FIRST ACTUAL ARG IN LIST ; ON EXIT:; R1 POINTS PAST CLOSING ')'#; R0 POINTS PAST = SIGN FOR FCN DEFV;.;T-; FNCLR: SUBROUTINE TO RESET DATA ITEMS AFTER ; FUNCTION EVALUATION.; REGISTERS USED: R2,R0P;M'; EVLS00 - EVALUATE A STRING EXPRESSION ;L;; EVALS, EVLS00 - EVALUATE A STRING EXPRESSION OF THE FORM:D; STRE1 + [STRE2 + ...]I; WHERE:&; STRE1 AND STRE2 ARE STRING ELEMENTS; A STRING ELEMENT MAY BE:'; A STRING CONSTANT (IN DOUBLE QUOTES):$; A STRING VARIABLE (ENDING IN '$')-; A STRING FUNCTION (SYSTEM OR USER DEFINED)1 ; ON ENTRY:C;; R1 POINTS TO START OF PROGRAM TEXT WITH STRING EXPRESSIONN;: ; ON EXIT:0; R1 POINTS TO FIRST CHAR PAST END OF EXPRESSION ; R3 HAS ADDRESS (IN FREE SPACE) ; R4 HAS LEN6; 'V' SET FOR BAD STRING EXPRESSION AND R1 AS ON ENTRY;S; GSTR00 - GET A STRING OPERAND ;E%; GSTR, GSTR00 - GET A STRING OPERANDA;S2; AT END OF SUCCESSFUL COMPLETION OF THIS ROUTINE,1; R3 CONTAINS AN INDIVIDUAL STRING ADDRESS AND R4R; CONTAINS ITS LENGTH ;);  S-; GETHDR - GET ADDRESS OF DATA ELEMENT HEADERE;Y ; ON ENTRY:T5; R1 IS TEXT PTR WHICH SHOULD POINT TO VAR NAME START;N ; ON EXIT:&; R1 POINTS TO CHAR FOLLOWING VAR NAME; R3 HAS HEADER ADDRESSN,; R0 HAS RETURN CODE (FOR USE AS JUMP INDEX) ; 0 = SINGLE PRECISION FLOATING; 2 = INTEGER ; 4 = BYTEN; 6 = DOUBLE PRECISIONS; 10= STRING VARIABLE!; R4 HAS HEADER TYPE AND VAR NAMEM-; 'Z' SET IF VAR NOT DEFINED, CLEAR OTHERWISEV!; IN THIS CASE R3 IS NOT DEFINEDT*; 'V' SET IF NO VAR IN TEXT (SYNTAX ERROR)-; IN THIS CASE R4, R3 AND R0 ARE NOT DEFINEDY;B; NOTE: ON RETURN, 'V'-BIT SHOULD BE TESTED FIRST AND THEN 'Z' BIT;;1$; GTOFFS - GET OFFSET OF ACTUAL DATA;H ; ON ENTRY:R; R3 POINTS TO DATA ITEM HEADERS<; R1 POINTS TO TEXT FOLLOWING VAR NAME (OPEN PAREN IF THERE);R ; ON EXIT: ; R3 AS ABOVEL0; R1 POINTS PAST CLOSE PAREN (IF SUBSCRIPT USED) ; AC0 HAS:*; 1) FOR STANDARD VAR, OFFSET FROM STUDAT*; (R0 HAS ABSOLUTE ADDRESS IN THIS CASE):; 2) FOR VIRTUAL ARRAY, OFFSET FROM FILE START (IN BYTES);C,; OTHER REGISTERS USED: R2, R0, R4, AC1, AC2;N;T; SUBROUTINE VIRACCE-; TO GET NEEDED DISK BLOCK IN MEMORY GIVEN ANS/; OFFSET INTO THE FILE. THIS ROUTINE ALSO TAKES 5; CARE OF WRITING OUT AN EXITSING BLOCK IF NECESSARY.L ; ON ENTRY:E"; R3 IS PTR TO VIRTUAL DATA HEADER+; AC0 HAS OFFSET (IN BYTES) FROM FILE STARTR8; R5 HAS WRITE FLAG (1 TO INDICATE WRITE TO BE PERFORMED; AFTER ACCESS); ; ON EXIT: ; R3 AS ABOVES; AC0 AS ABOVE ; R0 HAS ADDRESS OF BLOCK BUFFER%; R2 HAS OFFSET INTO BLOCK (IN BYTES)E;T ; OTHER REGISTERS USED: AC1, AC2;T;  R; SUBROUTINE WRITBKG:; TO WRITE OUT BLOCK BUFFER ON BLOCK ACCESS FILE IF NEEDED%; AND SET UP FDB FOR BLOCK OPERATIONSO;R ; ON ENTRY:E.; R3 POINTS TO BASIC FILE CONTROL BLOCK HEADER ; ON EXIT:; R0 POINTS TO FDB PROPERA; F.BKDS AND F.BKDS+2 SET UPD; F.BKVB(R0) SET UP WITH BLOCK NUMBER OF WRITTEN BLOCK IF WRITE DONE4; 14(R3) ZEROED (NO UNRECORDED WRITES TO THIS BLOCK)1; F.ERR(R0) SET WITH IO STATUS CODE IF WRITE DONEO,; 'C' SET IF ERROR IN WRITE, CLEAR OTHERWISE; OTHER REGISTERS USED:R2 00~2TADATADATADATADATADATA;R:; GETNUM - TO RETURN NUMBER -> AC0, GIVEN INFO FROM GTOFFS;C ; ON ENTRY:E; R3 IS PTR TO DATA ITEM HEADERO; AC0 HAS OFFSET*; 1) FOR STANDARD VAR, OFFSET FROM STUDAT/; 2) FOR VIRTUAL ARRAY, OFFSET FROM FILE STARTO ; ON EXIT: ; R3 AS ABOVE ; AC0 HAS NUMERIC VALUEU; OTHER REGISTERS USED: R0, R2;K; 8; NUMSUB: COMMON CODE FOR READ AND WRITE OF NUMERIC DATA;C ; ON ENTRY:0; R3 IS PTR TO DATA ITEM HEADERE; AC0 HAS OFFSET*; 1) FOR STANDARD VAR, OFFSET FROM STUDAT/; 2) FOR VIRTUAL ARRAY, OFFSET FROM FILE STARTE*; R5 HAS READ/WRITE FLAG (0=READ, 1=WRITE) ; ON EXIT:; R3,AC0,R5 AS ABOVE; R2 HAS ADDRESS OF DATA; R0 HAS TYPE INDICATORF; 0 = FLOATING (REAL*4); 2 = INTEGER*2; 4 = BYTE (LOGICAL*1) ; 6 = DOUBLE (REAL*8); ; 0; STONUM - STORE A NUMBER FROM AC0 INTO VARIABLE;K ; ON ENTRY:B; R3 POINTS TO DATA ITEM HEADERO; AC0 HAS VALUEC; AC1 HAS OFFSET*; 1) FOR STANDARD VAR, OFFSET FROM STUDAT/; 2) FOR VIRTUAL ARRAY, OFFSET FROM FILE START ; ON EXIT: ; R3 AS ABOVEF; AC0 AS ABOVE; AC1 AS ABOVE; OTHER REGISTERS USED: R0, R2 ;E7; GETSTR - TO RETURN STRING ELEMENT DESCRIPTOR IN R3,R40;S ; ON ENTRY:O; R0 IS PTR TO DATA ITEM HEADER2; AC0 HAS OFFSET*; 1) FOR STANDARD VAR, OFFSET FROM STUDAT/; 2) FOR VIRTUAL ARRAY, OFFSET FROM FILE START ;I ; ON EXIT:; R0, AC0 AS ABOVE; R3 HAS STRING ADDRESS; R4 HAS STRING LENGTH#; 'V' SET IF ERROR, CLEAR OTHERWISEF;T; OTHER REGISTERS USED:I;A;R;,/; STRADD: COMMON CODE FOR STRING READ AND WRITEV; ; ON ENTRY:E; R0 IS PTR TO DATA ITEM HEADERR; AC0 HAS OFFSET*; 1) FOR STANDARD VAR, OFFSET FROM STUDAT/; 2) FOR VIRTUAL ARRAY, OFFSET FROM FILE START *; R5 HAS READ/WRITE FLAG (0=READ, 1=WRITE);O ; ON EXIT:; R0,AC0,R5 AS ABOVE; R3 HAS ADDRESS OF STRING;E; OTHER REGISTERS USED: R0,R2I;3; STOSTR - STORE STRING IN MEMORY (REAL OR VIRTUAL)S;R ; ON ENTRY: ; R0 IS PTR TO DATA ITEM HEADERF; AC0 HAS OFFSET*; 1) FOR STANDARD VAR, OFFSET FROM STUDAT/; 2) FOR VIRTUAL ARRAY, OFFSET FROM FILE START; R3 HAS STRING ADDRESSH; R4 HAS STRING LENGTH; ; ON EXIT:; R0, AC0 AS ABOVE:; R3 HAS ADDRESS PAST END OF USED PORTION OF SOURCE STRING; R4 = 0 /;T;L;(; FILSTR; TO FILL IN A STRING VARIABLE; ; ON ENTRY:3; R3 HAS ADDRESS OF SOURCE; R4 HAS LEN OF SOURCE; R2 HAS ADDRESS OF VARIABLE; R5 HAS FILL COUNT ; R0 HAS FILL CHAR;E ; ON EXIT:; R4 = 0; R5 = 0(; R3 HAS ADDRESS PAST END OF USED SOURCE,; R2 HAS ADDRESS PAST END OF FILLED VARIABLE; R0 HAS FILL CHAR;L1; NEWVAR - TO CREATE A SIMPLE VARIABLE OF R0 TYPE ;G ; ON ENTRY:E; R0 HAS TYPE INDICATOR ; 0 = REAL*4S; 2 = INTEGER ; 4 = BYTES ; 6 = REAL*8 ; 10= STRING; R4 HAS VARIABLE HEADER; LOWER 12 BITS HAVE VAR. NAMEE; TOP 3 BITS ARE DATA TYPEO;E ; ON EXIT:; R0 AND R4 AS ABOVE; R3 POINTS TO DATA ITEM HEADERL; ENUDAT UPDATED;L; OTHER REGISTERS USED: R5;0; LET00 - LET STATEMENTE; REGISTERS USED - ALL.; ;H%; EVALC0 - EVALUATE LOGICAL CONDITION;0A; THIS CODE EVALUATES A COMPOUND CONDITION, ALLOWING FOUR LOGICALP; OPERATORS: NOT, AND, XOR, OR.P;N ; ON ENTRY:0&; R1 POINTS TO START OF CONDITION TEXT ; ON EXIT: ; R1 POINTS TO NEXT CHAR OF TEXT'; R0 HAS CONDITION -1 = TRUE, 0 = FALSEN; 'N' SET IF TRUE ; 'Z' SET IF FALSE N; IF00 - IF STATEMENTA; REGISTERS USED - ALL. ;M; PR00 - PRINT STATEMENT,; REGISTERS USED 0,1,2,3,4-OR ALL FOR SHORT;E#; INP00 - INPUT STATEMENT PROCESSOR.; $; STRCMP - STRING COMPARISON ROUTINE ; ON CALL:%; R3 CONTAINS ADDRESS OF FIRST STRINGI&; R2 CONTAINS ADDRESS OF SECOND STRING ; R4 CONTAINS LEN FOR COMPARISON;0 ; ON RETURN:&; Z BIT CONDITION CODE CONTAINS RESULT&; BEQ WILL BRANCH IF STRINGS ARE EQUAL;C; REGISTERS USED : PROBABLY ALL ; ; ;T+; FILL00 - COMMON DATA ELEMENT FILL ROUTINET;N ; ON ENTRY:R; R1 POINTS TO START OF DATA4; LINELN HAS LENGTH OF DATA FOR BINARY OR INPUT LINE?; STACK AS ON EXIT FROM COM00 PLUS TEXT PTR AND SUBROUTINE LINKS;N ; ON EXIT:8; R1 POINTS PA00VWST END OF DATA USED (TO EOL CHAR IF ASCII)5; LINELN = REMAINING CHAR COUNT (USUALLY 0) ON BINARYN#; 'V' SET ON BAD DATA (ASCII ONLY):(; BGT TRUE IF TOO MUCH DATA (ASCII ONLY)8; BLT TRUE IF NOT ENOUGH DATA (ASCII AND BINARY NUMERIC);:G; NOTE: CONDITION CODES ONLY RELEVANT FOR ASCII DATA AND BINARY NUMERIC;2; OTHER REGISTERS USED: R0 THROUGH R5, AC0 AND AC1;S;N'; FILL1: INDIVIDUAL ITEM FILL PROCESSORT; ; ON ENTRY:O.; R5 POINTS TO 4 WORD ITEM DESCRIPTOR ON STACK&; R1 HAS START OF TEXT WITH INPUT INFO;E ; ON EXIT: ; R5 AS ABOVE (; R1 POINTS PAST END OF THIS ITEM'S TEXT;B; OTHER REGISTERS USED:D 6; COM00 - COMMON EXPRESSION HANDLER FOR READ AND INPUT; ; ON ENTRY:O; R1 IS TEXT PTR ; ON EXIT:!; R1 POINTS PAST END OF STATEMENTO#; 'V' SET IF ERROR IN VARIABLE LISTB; STACK ON EXIT:; DATA PTR (1 WORD)S; DATA TYPE (1 WORD); OFFSET (2 WORDS)I ; DATA PTR ; DATA TYPE ; OFFSET; . ; .Y; .5; NULL; SP -> PTR TO START OF LIST;; OTHER REGISTERS USED: POTENTIALLY ALL (INCL FLOATING PT.);5; ;V; ROUTINE EOSCHK%; TO CHECK FOR LEGIT END OF STATEMENT ;I ; ON ENTRY:; R2 HAS CHAR TO BE CHECKEDO ; ON EXIT:; 'Z' SET IF END; 'Z' CLEAR IF NOT END CHART; OTHER REGISTERS USED: NONE;T#; READ00 - READ STATEMENT PROCESSORR; FOR00 - FOR STATEMENTC; REGISTERS USED - ALL.;D/; NEXT00 - NEXT STATEMENT TO TERMINATE FOR LOOP ; REGISTERS USED - ALL. ;S;;; SCHFOR: ROUTINE TO SEARCH FOR A GIVEN FOR/NEXT CTRL BLOCK ; ON ENTRY:T; R4 HAS SIXBIT NAME ; ON EXIT:; R4 UNCHANGED; 'Z' SET IF NOT FOUND, R3 = 00; 'Z' CLEAR IF FOUND, R3 = ADDRESS OF CTRL BLOCK; OTHER REGISTERS USED: NONE;;N1; DELFOR: ROUTINE TO DELETE A FOR/NEXT CTRL BLOCKA ; ON ENTRY:E'; R3 POINTS TO CTRL BLOCK TO BE DELETEDT ; ON EXIT:; R3 UNDETERMINEDO; OTHER REGISTERS USED: R0,R2  L;;=; CHKFOR: ROUTINE TO CHECK ON FINISHED/NOT FINISHED CONDITIONS; OF FOR/NEXT LOOP. ; ON ENTRY:N"; R3 POINTS TO FOR/NEXT CTRL BLOCK ; ON EXIT:; R3 UNCHANGED8; 'Z' SET IF CTRL VARIABLE AT END VALUE, CLEAR OTHERWISE:; 'N' SET IF CTRL VARIABLE PAST END VALUE, CLEAR OTHERWISE3; R0 HAS ACTUAL STORAGE ADDRESS OF CONTROL VARIABLEF; REGISTERS USED:T; AC0/;T;Rreserves n lines independent of spacing for+inserting drawings, or other artwork later.A.le;_.BREAK starts a new line. This is called breaking the text..LE;_.PAGE starts a new page.J.le;_.FILL automatically fills each line by stringing together w ;********* ; * ; BASIC2 * ; * ;********* .TITLE BASIC2;>; OBJECT MODULE FOR PART 2 0F MAIN BASIC INTERPRETER 8JUNE 72;G; DOS VERSION FROM WHICH THE RSX VERSION EVOLVED WAS ORIGIANLLY A DECUS;; LIBRARY PROGRAM MODIFIED BY FRANK KORZENIEWSKI OF RPSLMC.; ; MODIFIED FOR USE UNDER RSX-11D; BY: LARRY SIMPSON; MICHAEL REESE MEDICAL CENTER; JULY-OCTOBER 1975;.; MODIFIED TO CLOSE ALL USER FILES ON 6-APR-76;U; MODIFIED TO TURN ECHO ON AND TURN PASS-ALL-INPUT OFF ;DSS1U; AFTER ANY FATAL ERROR OR STOP (AT STOP02) 18-JAN-79 ;DSS1U; ;DSS1U; MODIFIED NOT TO CRASH ON MIXED STRING AND NUMERIC VARIABLES IN EXPRESSIONS ;DSS1U; ;DSS1U; (CONDITIONAL ON DEFVAR ) ADDED CODE IN GETHDR TO DEFINE UNDEFINED VARIABLES ;DSS1U; (THIS MEANS THAT ALL REFERENCES TO ORDINARY UNDEFINED VARIABLES DEFINE THEM) ;DSS1 U; WHEN A VARIABLE'S VALUE IS REQUIRED, AND THE VARIABLE DOES NOT EXIST, ;DSS1RU; IT'S NAME AND TYPE ARE ENTERED AND IT IS GIVEN A DEFAULT VALUE (SEE THE ;DSS1U; SUBROUTINE NEWVAR ) ;DSS1UU; THIS ALLOWS, FOR INSTANCE, THE FOLLOWING PROGRAM: ;DSS1O; 10 FOR A=1 TO 5 ;DSS1 O; 20 PRINT B 00~2TADATADATADATADATADATA ;DSS1 O; 30 B=A*5 ;DSS1 O; 40 NEXT A ;DSS1IU;THE FIRST TIME B IS PRINTED, IT HAS A VALUE OF ZERO ;DSS1 U; ** THE VARIABLE DEFVAR IS DEFINED IN A PREFIX FILE ** ;DSS1NU; DANIEL STEINBERG 13-FEB-79 ;DSS1I E7 ;CODE TO CONVERT TRAP SUBROUTINE CALLS TO NORMAL JSR'SE ;FOR OPERATION UNDER RSX. ;9 ;DEFINE A GENERAL MACRO TO GENERATE A SECOND MACRO WHICH % ;CONVERTS A TRAP NAME OF XXXXXX TO AE ; JSR PC,XXXXXX ; .MACRO TRPSUB A,B .MACRO A JSR PC,B  .ENDM .ENDM;),; NOW ALL THE ONE-TIME TRAPS THAT BASIC USES; & TRPSUB ATOF,ATOF00 ;ASCII TO FLOATING% TRPSUB ATOI,ATOI00 ;ASCII TO INTEGER 5 TRPSUB CLRUSR,CLRU00 ;CLOSE TEMP USER SPACE (IF ANY)  TRPSUB CRLF,CRLF00 ;DO [CR,LF] 3 TRPSUB DIMCHK,DIMC00 ;CHECK LEGALITY OF DIMENSIONS 3 TRPSUB EVAL,EVAL00 ;EVALUATE ARITHMETIC EXPRESSION50 TRPSUB EVALS,EVLS00 ;EVALUATE STRING EXPRESSION/ TRPSUB FINDLN,FIND00 ;FIND LINE NUMBER (IN R0) - TRPSUB GETVAR,GETV00 ;GET TRUNCATED VARIABLED5 TRPSUB JUNKIT,JUNK00 ;SKIP OVER TRASH TO END OF LINE 2 TRPSUB PACK,PCK00 ;PACK LINE INTO WORKING STORAGE& TRPSUB PRINTC,PRNT00 ;PRINT CHARACTER/ TRPSUB PRINTL,PRN00 ;PRINT LINE, R0=FBA,R1=LBAE( TRPSUB PRNTLN,PRLN00 ;PRINT LINE NUMBER1 TRPSUB PUSH,PUSH00 ;PUSH ONE WORD INTO USER LIST 3 TRPSUB SKIP,SKIP00 ;SKIP OVER SPACES IN INPUT TEXTO? TRPSUB SRCHLF,SRCH00 ;SEARCH FOR LINE FEED USING R1 AS POINTERA4 TRPSUB SRLST,SRL00 ;SEARCH FOR ITEM IN USER STORAGE, TRPSUB STRLEN,STRL00 ;COMPUTE STRING LENGTH7 TRPSUB TSTCH,TST00 ;TEST CHAR (IN R2) ALPHA VS NUMERICI7 TRPSUB TSTOK,TSTU00 ;CHECK, IS THERE ENOUGH USER SPACET5 TRPSUB FNMBR,FNMB00 ;GET FILE NUMBER AND SET UP FILEP  .SBTTL GLOBALS AND DEFINITIONSA;(; GLOBALS--ERROR CALLS;0- .GLOBL GOERR, RETERR, DIMERR, DMVERR, DMDERRG. .GLOBL DEFERR, PARERR, OVFERR, ILFERR, NXVERR- .GLOBL LETERR, OPRERR, IFERR, PRNERR, INPERR0. .GLOBL IN1ERR, IN2ERR, IN3ERR, REAERR, RE1ERR. .GLOBL RE2ERR, FORERR, NXTERR, NXMERR, SBSERRJ .GLOBL STXERR FNMERR LNNERR VTMERR ;DSS1U; ;**-1P; GLOBALS--RETURNS TO MAIN;P# .GLOBL INIT00 INIT02 INIT10 INIT13P .GLOBL OLD01 CLSEAL FIND01 ;B; GLOBALS--REFERENCES TO FPP;  .GLOBL PWRF00+ .GLOBL SINE00, COS00, ATN00, EXPF00, LOG00N* .GLOBL ABS00, SQRT00, INT00, RND00, SGN00 .GLOBL FTOA00, M.I1; ; GLOBALS--SYSTEM VARIABLES ;A# .GLOBL DATI LINENO RUNF USR LASTEX * .GLOBL STUDAT ENUDAT S.DATA S.NEXT S.EOS1" .GLOBL PARLST P.ERCD P.LINE P.FCS# .GLOBL STCOUN S.EOL1 S.EOL2 S.EOS1;;C; GLOBALS--ENTRY POINTSP;T, .GLOBL STOP00, RUN00, GOSB00, GOTO00, RES00* .GLOBL RET00, DIM00, DEF00, EVAL00, GTP00' .GLOBL LET00, IF00, PR00, INP00 EOSCHKL, .GLOBL READ00, FOR00, NEXT00, REM00, STOP02( .GLOBL RUN01 EVLS00 STRCMP INP01 ONGT00* .GLOBL ATTACH DETACH GOTO02 GOTO03 GOTO04* .GLOBL GETHDR GTOFFS GETNUM STONUM GETSTR# .GLOBL STOSTR NEWVAR STRADD WRITBKX;R; PART 2 OF MAIN INTERPRETER;F;R; REGISTER ASSIGNMENTS; *R0 = %0 ;TEMPORARY AND PARAMETER TRANSFER*R1 = %1 ;TEMPORARY AND PARAMETER TRANSFERR2 = %2 ;SCRATCH R3 = %3 ;SCRATCHRR4 = %4 ;SCRATCHR5 = %5 ;USER LIST POINTERISP = %6 ;BASIC STACK POINTERNPC = %7 ;PROGRAM COUNTERN; AC0 = %0 ;F.P. REGISTER 0AC1 = %1 ;F.P. REGISTER 1AC2 = %2 ;F.P. REGISTER 2AC3 = %3 ;F.P. REGISTER 3AC4 = %4 ;F.P. REGISTER 4AC5 = %5 ;F.P. REGISTER 5 ;A; RSX MACRO CALLSN .MCALL DIR$ WAIT$ READ$ WRITE$T;U; LOCAL MACROS;.;1; PSECT DEFINITIONSC;.3 .PSECT BASIC2,RW,I,GBL,REL,CON ;PSECT FOR RO CODE;L#; ATTACH AND DETACH PROCESSING CODEP; !ATTACH: MOV #IO.ATA,ATTDET+Q.IOFNB BR COMATD!DETACH: MOV #IO.DET,ATTDET+Q.IOFNECOMATD: DIR$ #ATTDET RTS PC;+1B; .TP 6 ; .SLN; .HEADERLEVEL 1 ^CONTROL 00VW^O; .BRV; .X ^CONTROL ^O ; .X _^^OLA; ^CONTROL-^O (_^^O) WILL STOP ALL OUTPUT FROM A ^^LIST\\ COMMANDM%; AND RESUME PRINTING WITH ^^READY\\.TC; ^IT ALSO STOPS ALL PRINTING FOLLOWING A ^^RUN\\ COMMAND INCLUDINGS; NON-FATAL ERRORS. A; ^PRINTING RESUMES WITH A ^^STOP\\ OR _^^C OR A FATAL ERROR (ONEE!; WHICH STOPS PROGRAM EXECUTION).=;- C( .SBTTL STOP00 - STOP AND END STATEMENTS;+2 ; .SKIP ; .X ^^STOP\\ ; .X ^^END\\!; .HEADERLEVEL 1 ^^STOP . . END\\C; .BREAK"; ^^STOP\\ AND ^^END\\ STATEMENTS.G; ^STOP USER PROGRAM EXECUTION AND TELL USER WHERE PROGRAM HAS STOPPED. ; .BREAK ; ^EXAMPLE: ; .NOFILLE; ^^ ; {10 STOP} ; {20 END}L; \\; .FILL$;-!; REGISTERS USED - R0,R1,R2,R3,R4S;.!STOP00: JSR PC,DETACH ;NULLIFY ^OS( MOV #TINPT,INPT ;RE-ASSERT TERMINAL I/O( MOV #TOTPT,OTPT ;IN CASE DOING FILE I/O CRLF MOV #STOP01,R0 ;TELL USER! PRINTL ; THAT ALL HAS STOPPED ! PRNTLN ; AT SOME FUNNY PLACE$ CRLF ;AND THENHSTOP02: CLR WTMAG ;SET ZERO TIMEOUT ;DSS1C CLRB RPASFL ;CLEAR PASS-ALL-INPUT BYTE (SO USER CAN TYPE) ;DSS1LE MOVB #1,ECHOFL ;AND SET ECHO ON ;DSS1SD MOV ENDSTK,SP ;RESTORE THE STACK ;DSS1H MOV LINENO,LASTEX ;SAVE LAST EXECUTED LINE NO. ;**-1 CLR LINENO  JMP INIT00 ; ASK WHAT NEXTSTOP01: .ASCIZ /STOP AT LINE / .EVEN' .SBTTL RUN00 - START PROGRAM EXECUTIONE;+2; .SKIPL ; .X ^^RUN\\; .HEADERLEVEL 1 ^^RUN\\; .BREAKE; ^MAY BE USED IN IMMEDIATE MODE TO START THE PROGRAM IN MEMORY OR BYE>; SPECIFYING A FILE IN QUOTES TO RUN ANOTHER ^^BASIC\\ PROGRAM; STORED ON DISK.{; .FG 1A; ^IN PROGRAM MODE, IT MAY BE USED WITH A FILE SPECIFIER TO CHAIN ; TO ANOTHER PROGRAM.^*; ^THE ASSUMED FILE EXTENSION IS ^^.BAS\\.<; ^NOTE THAT NO DATA IS SAVED ACROSS A ^^"RUN"\\ TYPE CHAIN.-; ^USER LOADED SUBROUTINES ARE ALSO UNLOADED.P<; ^TO PRESERVE DATA AND USER FILES, USE ^^"CHAIN"\\ COMMAND.D; ^IF BASIC FAILS TO FIND THE REQUIRED FILE, IT WILL ALSO LOOK UNDERG; THE "DEFAULT R5 12$: MOV #13507,M.I ;RESET RANDOM NUMBER GENERATORG JSR PC,ATTACH ;ATTACH TERMINALE- JMP INIT13 ;GO BACK AND LOOK FOR LINE TO DO .SBTTL GOSB00 - GOSUB STATEMENT;+3I; .SKIP ; .X ^^GOSUB\\ ; .X ^^GOTO\\R%; .HEADERLEVEL 1 R5 - MOV LINENO,-(R5) ;PUT IN PRESENT LINE NUMBERE& MOV STCOUN,-(R5) ;AND STATEMENT COUNT, MOV R5,STGOSB ;AND SET UP NEW START OF PTRS .SBTTL GOTO00 - GOTO STATEMENTB; ?; GOTO00 - GOTO STATEMENT - RESET LINENO TO NEW EXECUTION POINT!; REGISTERS USED - R0,R1,R2,R3,R4T;R/GOTO00: CLR -(SP) ;INDICATE EXACT MATCH WANTEDK6GOTO04: EVAL ;ARGUMENT FROM R1 LIST TO NUMBER IN AC0 TSTF AC0 ;CHECK FOR NEGATIVE CFCC  BLE 1$ ;IF NEG, ERRORL CMPF TWO16,AC0 ;CHECK OUR RANGE CFCC  BGT 2$ ;IF IN RANGE, BRANCHD1$: LNNERR ;ELSE ERROR-2$: CMPF TWO15,AC0 ;ARE WE IN UNSIGNED REGIONE CFCCN" BGT 3$ ;IF NOT (1-32767), BRANCH4 SUBF TWO16,AC0 ;IF SO, MAKE NEGATIVE FOR CONVERSION%3$: STCFI AC0,R0 ;CONVERT TO INTEGER ,GOTO03: MOV STUDAT,R1 ;SET UP LOW # LINE PTR# MOV BOLNHD,R2 ;AND HIGH # LINE PTR1& TST LINENO ;CHECK WHERE WE CAME FROM% BEQ 2$ ;IF ZERO (IMMEDIATE), BRANCH;/ CMP R0,LINENO ;CHECK REQUESTED AGAINST CURRENT  BHI 1$ ;IF FARTHER ON, BRANCHR9 MOV LINEHD,R2 ;IF SAME OR BEFORE, SET NEW HIGH FOR RANGE  BR 2$/1$: MOV LINEHD,R1 ;SET NEW LOW FOR SEARCH RANGEE'2$: JSR PC,FIND01 ;AND DO MODIFIED FINDW" BNE GOTO01 ;IF NOT EXACT, BRANCH GOTO02: TST RUNF ;RUN FLAG SET? BNE 1$ ;IF SO, SKIPO INC RUNF ;IF NOT, SET IT& JSR PC,ATTACH ;AND MAKE SURE ATTACHED1$: TST (SP)+ ;POP OFF FLAG TSTB TRCFLG ;TRACE WANTED? BEQ 2$ ;IF NOT, BRANCH. CLR STCOUN ;IF SO, CLEAR THE STATEMENT COUNT* JSR PC,TRCLIN ;AND GO PRINT TRACE MESSAGE2$:C JMP INIT13R(GOTO01: TST (SP) ;EXACT MATCH REQUIRED? BEQ 1$ ;IF SO, ERROR0 SUB #4,R5 ;ELSE POINT TO FOLLOWING LINE HEADER" BR GOTO02 ;AND FINISH PROCESSING 1$: GOERRTRCLIN:1) PRNTLN ;PRINT THE LINE NUMBER WE'RE AT- MOV #TRCMSG,R0 ;ADDRESS OF MESSAGE FOR TRACE  PRINTL ;PRINT IT ( MOV (R5),R1 ;LINE # TO BRANCH TO -> R1 JSR PC,PRLN01 ;PRINT IT% MOV #TRCMS2,R0 ;NEXT PART OF MESSAGEZ PRINTLD% MOV STCOUN,R1 ;STATEMENT COUNT -> R1E* INC R1 ;MAKE R1 STATEMENT WE'RE GOING TO JSR PC,PRLN01 ;PRINT IT OUT CRLF ;END THE LINET RTS PC !TRCMSG: .ASCIZ / BRANCH TO LINE /RTRCMS2: .ASCIZ / STMT /  .EVEN .SBTTL ON GOTOD .SBTTL ON GOSUB;+3 ; .SKIPE'; .X ^^ON _ GOTO _\\ (; .X ^^ON _ GOSUB _\\<; .HEADERLEVEL 1 ^^ON _ GOTO _ _\\; .BR H; ^THIS STATEMENT TRANSFERS CONTROL TO THE ^NTH LINE NUMBER IN THE LIST.F; ^THE EXPRESSION IS EVALUATED AS A NORMAL R0 (INTEGER) BLE 1$ ;ZERO OR NEG => ERROR SKIP ;GET NEXT BYTE" CMPB R2,#S.GOTO ;CHECK FOR PROPER BEQ 3$ ;CODES - GOTO CMPB R2,#S.GOSB ;OR GOSUB BEQ 3$ ;ELSE NOT A UNRERR ;RECOGNIZED STATEMENTN"3$: MOV R2,-(SP) ;SAVE A BYTE CODE# DEC R0 ;DECREMENT FOR COMMA COUNT  BEQ 6$ ;IF ZERO, BRANCH 4$: SKIP ;GET NEXT CHAR1 CMPB R2,#', ;IS IT A COMMA?N& BEQ 5$ ;IF SO, GO THROUGH LOOP COUNT) CMPB R2,#S.EOS1 ;IS IT END OF STATEMENT?N00VW BHIS 1$ ;IF SO, ERRORS' BR 4$ ;IF NOT, KEEP LOOKING FOR COMMAS$5$: SOB R0,4$ ;KEEP COUNTING COMMAS+6$: CMP (SP)+,#S.GOTO ;WAS THE CODE A GOTO?L BEQ 7$ ;IF SO, BRANCH , JMP GOSB00 ;IF NOT, MUST HAVE BEEN A GOSUB7$: JMP GOTO00 S! .SBTTL RES00 - RESTORE STATEMENTA;+6O; .SKIPO; .X ^^RESTORE\\; .X ^FILE RESTORE; .HEADERLEVEL 1 R3 CMP R3,STFONX ;ANYTHING THERE?;" BHIS RET03 ;IF NOT, REPORT ERROR* MOV R3,-(SP) ;SAVE THIS ADDRESS FOR LATER&RET02: MOV 2(R3),R0 ;LINE NUMBER -> R0 BEQ 3$ ;IF ZERO, BRANCHK FINDLN ;POSITION TO IT.& BNE RET03 ;IF NOT FOUND, BIG TROUBLE$ MOV (SP)+,R3 ;GET BACK LAST ADDRESS& MOV (R3),R2 ;GET COUNT OF STATEMENTS; JSR PC,STFIND ;FIND PLACE IN LINE (PRINT MESSAGE IF TRACE)A# ADD #4,STGOSB ;UPDATE PTR AREA PTR1" JMP INIT03 ;AND CONTINUE IN CODE23$: ADD #4,STGOSB ;DELETE GOSUB ITEM FROM PTR AREA JMP STOP02L RET03: RETERR ; B; STATEMENT FIND ROUTINE TO POSITION OURSELVES TO PROPER STATEMENT1; IN A LINE (USED FOR RETURN AND NEXT STATEMENTS)U ; ON ENTRY:S; R0 HAS LINE NUMBER; R5 HAS LINE HEADER ; R1 POSITIONED TO START OF LINE$; R2 HAS COUNT OF STATEMENTS TO SKIP;- ; ON EXIT:; R0 -> LINENO; R5 -> LINEHD; R1 AT START OF R2+1 STATEMENTN; R2 UNDEFINED;ESTFIND:E MOV R0,-(SP) ;SAVE LINE NUMBER-* MOV R2,STCOUN ;UPDATE STATEMENT COUNT NOW42$: INC R1 ;PUSH PAST POSSIBLE STATEMENT TERMINATOR;IJ; FOLLOWING CODE IS TO MAKE SURE AN ELSE JUST AFTER A STATEMENT TERMINATORJ; (MEANING A COMMENT IN PREVIOUS LINE) DOES NOT GET COUNTED TOO MANY TIMES;C MOV R2,-(SP) ;SAVE R2/ SKIP ;POSITION R1 TO JUST PAST 1ST SIG. BYTEM% DEC R1 ;AND BACK IT UP TO SIG. BYTEV MOV (SP)+,R2 ;GET BACK R2 CMPB (R1),#S.ELSE ;IS IT ELSE$ BNE 3$ ;IF NOT, DO REGULAR PROCESS INC R1 ;IF SO, PUSH PAST IT ;1%3$: JUNKIT ;GET TO END OF STATEMENT$ SOB R2,2$ ;DO IT R2 TIMES  TSTB TRCFLG ;TRACE WANTED? BEQ 1$ ;IF NOT, BRANCH8 MOV R1,-(SP) ;SAVE TEXT PTR WE'VE WORKED SO HARD TO SET JSR PC,TRCLIN ;GO PRINT MESSAGE# MOV (SP)+,R1 ;RESTO00~2TADATADATADATADATADATARE OUR TEXT PTRS)1$: MOV (SP)+,LINENO ;NOW SET LINE NUMBERR MOVB (R1)+,R2 ;TERMINATOR -> R2 MOV R5,LINEHD ;AND LINE HEADER  RTS PC N .SBTTL DIM00 - DIM STATEMENT ;+3D; .SKIP ; .X ^^DIM\\; .X ^STRING VARIABLES; .HEADERLEVEL 1 ; FOLLOWED BY A '^V' IF THE STRING IS TO HAVE VARIABLE LENGTH.=; ^IN THE CASE OF A VARIABLE LENGTH STRING, THE LENGTH IS THEC-; MAXIMUM LENGTH WHICH THE STRING MAY ASSUME.R;; ^A STRING UNDECLARED IN A R21 CMPB R2,#'# ;IS THIS A VIRTUAL ARRAY DIMENSION?R* BEQ DIM01 ;IF SO, BRANCH TO THAT ROUTINE DEC R1 ;ELSE BACK UP TEXT PTRIJDIM02: JSR PC,GETHD5 ;VARIABLE NAME -> R4 ETC. ;DSS1A BVS DIM99 ;IF ERROR, REPORT IT ;**-10 BNE DIM97 ;OR IF USED ALREADY, DIFFERENT ERROR/ MOV R4,-(SP) ;SAVE 2 CHAR NAME (SIX BITS EACH)R MOV R0,-(SP) ;SAVE TYPE OFFSET  CMP R0,#10 ;IS IT STRING?U BEQ 2$ ;IF SO, BRANCHL% JSR PC,SUBONE ;AND GO GET SUBSCRIPTS BVS DIM99 ;IF ERROR, REPORT IT MOV (SP)+,R2 ;TYPE OFFSET -> R2 MOV R0,-(SP) ;SAVE DIM INFO INC R3 ;ADD ONE TO EACHH INC R4 ;DIMENSIONL MUL R4,R3 ;PRODUCT -> R3 BIT #160000,R3 ;TOO BIG?2$ BNE DIM98 ;IF SO, DECLARE OVERFLOW& MOV R3,R0 ;COPY # OF VARIABLES -> R0+ ASH 8$(R2),R0 ;SHIFT BY APPROPRIATE AMOUNT  INC R0 ;ROUND UP, IN CASE2' BIC #1,R0 ;AN ODD # OF BYTE VARIABLES  MOV R0,-(SP) ;SAVE ON STACK" ADD #4,R0 ;ADD HEADER + DIM INFO' TSTOK ;CHECK FOR ROOM (ENUDAT -> R5)X1 BLO DIM98 ;IF NOT ENOUGH ROOM, DECLARE OVERFLOWY) ADD R5,R0 ;R0 POINTS TO NEW END OF DATA # MOV R0,ENUDAT ;SET NEW END OF DATAT0 MOV (SP)+,R3 ;RESTORE # OF FLOATING TOTAL BYTES ASR R3 ;NOW # OF WORDS MOV (SP)+,R2 ;POP DIM INFOO% MOV (SP)+,(R5)+ ;HEADER -> DATA AREA $ MOV R2,(R5)+ ;DIM INFO -> DATA AREA1$: CLR (R5)+ ;CLEAR THE AREA SOB R3,1$ ;R3 TIMESX BR 7$ ;AND GO TO FINAL FINISH 8$: .WORD 2 ;REAL*4, .WORD 1 ;INTEGERU .WORD 0 ;BYTE .WORD 3 ;REAL*8;U; STRING SECTION;C2$:1 JSR PC,STRGLN ;GO GET SIZE OF INDIVIDUAL ELEMENTT BVS DIM99 ;IF ERROR, BRANCH 2 MOV R0,(SP) ;SAVE LEN WITH SIGN (OVER TYPE CODE) BPL 3$ ;NOW GETR NEG R0 ;ABSOLUTE VALUE!3$: DIMCHK ;AND CHECK ITS RANGE  BNE DIM99 ;BRANCH IF ERROR MOV R0,-(SP) ;SAVE ABS VALUE 5 JSR PC,SUBONE ;R3,R4 WITH INDIVIDUAL DIMS, R0 PACKEDR BVS DIM99 ;REPORT ERRORC MOV R1,-(SP) ;SAVE TEXT PTR) MOV R0,R1 ;COPY PACKED SUBSCRIPTS -> R1#1 MOV 2(SP),R0 ;ABS LEN OF INDIVIDUAL STRING -> R0O) MOV R1,2(SP) ;PACKED SUBSCRIPTS ON STACKU% STRLEN ;GET TOTAL STRING LEN -> R0  ADD #6,R0 ;ADD 3 HEADER WORDSM TSTOK ;CHECK FOR ROOM( BLO DIM98 ;IF NOT ENOUGH, REPORT ERROR MOV (SP)+,R1 ;TEXT PTR  MOV (SP)+,R3 ;PACKED DIMS MOV (SP)+,R2 ;LEN WITH SIGN% MOV (SP)+,(R5)+ ;HEADER -> DATA AREAR MOV R3,(R5)+ ;PACKED DIMENSIONS TST R2 ;FIXED OR VARIABLE? BPL 4$ ;IF FIXED, BRANCH% NEG R2 ;IF VARIABLE, MAKE ABS VALUER" BIS #177400,R2 ;WITH HIGH BYTE -1'4$: MOV R2,(R5) ;PUT LEN AND TYPE AWAYC- BIS #400,(R5)+ ;MAKE SURE NON-ZERO HIGH BYTEI- SUB #6,R0 ;GET LEN INDEP. OF 3 HEADER WORDSC ASR R0 ;CONVERT LEN TO WORDS 5$: CLR (R5)00VW+ ;AND CLEAR IT ALL SOB R0,5$ ;OUT (NULLS)& MOV R5,ENUDAT ;RECORD NEW END OF DATA7$: SKIP ;NEXT CHAR -> R2E# CMPB R2,#', ;SOMETHING TO FOLLOW? BEQ DIM00 ;IF SO, DO IT AGAIND" DEC R1 ;IF NOT, BACK UP TEXT PTR JMP INIT02%DIM97: DMDERR ;PREVIOUSLY USED NAME1DIM98: DMVERR ;OVERFLOW>DIM99: DIMERR ;BAD DIMENSION;+3I; .S; .X ^^DIM#_#\\V; .X ^VIRTUAL ARRAYS#; .HEADERLEVEL 1 ^^DIM#_#N,_\\L; .BREAKL; ^THIS STATEMENT DECLARES CERTAIN VARIABLES AS "VIRTUAL ARRAYS" AND DEFINES@; THEIR ALLOCATION ON THE FILE WHOSE AC0 STCFI AC0,R0 ;INTEGER -> R0 ! BLE DIM99 ;NEG OR ZERO IS ERRORU& CMP R0,#OP.MXL ;CHECK AGAINST MAX LUN' BHI DIM99 ;ALLOWED, IF TOO BIG, ERRORV% MOV R0,-(SP) ;SAVE IT FOR FUTURE USED# CLR -(SP) ;SET ACCUMULATED OFFSETR CLR -(SP) ;32 BIT ZERO SKIP ;NEXT CHAR SHOULD BE CMPB R2,#', ;COMMA BNE DIM99 ;ELSE ERRORNG1$: JSR PC,GETHD5 ;VARIABLE NAME -> R4 ;DSS1HA BVS DIM99 ;IF SYNTAX ERROR, BRANCH ;**-1H$ BNE DIM97 ;IF ALREADY USED, BRANCH BIS #10000,R4 ;SET VIRTUAL FLAG% MOV R4,-(SP) ;AND SAVE NAME AND FLAGU MOV R0,-(SP) ;SAVE JUMP PTR SUB #10,R0 ;DO WE HAVE STRING? BGE 3$ ;IF SO, BRANCH  JSR PC,SUBSUB ;GET SUBSCRIPTS BVS DIM99 ;REPORT ANY ERRORG MOV (SP)+,R0 ;JUMP OFFSET -> R0$ MOV 7$(R0),R2 ;ELEMENT LENGTH -> R2 MOV R2,-(SP) ;AND ON STACK$ BR 2$ ;GO TO COMMON FINISHING CODE'7$: .WORD 4 ;SINGLE PRECISION FLOATINGB .WORD 2 ;INTEGER (16 BIT)# .WORD 1 ;BYTE( .WORD 10 ;DOUBLE PRECISION;E; STRING SECTION;3$:I7 JSR PC,STRGLN ;GET LENGTH OF INDIVIDUAL STRING ELEMENTO1 MOV R0,(SP) ;SAVE SIGNED LENGTH (OVER JUMP PTR)M BPL 4$ ;NOW GETO NEG R0 ;ABS VALUE,)4$: MOV R0,-(SP) ;SAVE ABS VALUE ON STACK  MOV #12,R2 ;UP TO 12(8) BITS! CLR R3 ;THIS IS THE BIT COUNTERH5$: ASR R0 ;SHIFT BITS OUTC BCC 6$E INC R3 ;AND COUNT THEM6$: SOB R2,5$ ;WE SHOULD HAVE DEC R3 ;ONLY 1 BIT IF 1 BNE DIM99 ;LENGTH IS POWER OF 2 (0 NOT ALLOWED) - TST R0 ;NOTHING SHOULD BE LEFT IN R0 EITHERE% BNE DIM99 ;ELSE BIGGER THAN A BLOCKI$ JSR PC,SUBSUB ;GET ARRAY SUBSCRIPTS MOV (SP)+,R2 ;ABS LEN -> R2 BR 2$ ;AND FINISH UP;;-; COMMON CODE FOR VIRTUAL DIMENSION STATEMENTJ;P; ON ENTRY (VIA JUMP OR BRANCH)MC; R2 HAS POSITIVE SIZE OF INDIVIDUAL ELEMENT (MUST BE A POWER OF 2),; R3 HAS THE FIRST SUBSCRIPT; R4 HAS THE 2ND SUBSCRIPT7; (SP) WITH ITEM LENGTH INCL SIGN IF NEEDED FOR STRINGSP00~2TADATADATADATADATADATA; 2(SP) HAS HEADER WORDD<; 4(SP) AND 6(SP) HAVE ACCUMULATED LONG INTEGER OFFSET VALUE"; 10(SP) HAS LUN FOR VIRTUAL ARRAY;I$; EXIT TO REPEATED PART OF CODE (1$)1; (SP) AND 2(SP) WITH FLOATING ACCUMULATED OFFSETN; 4(SP) WITH LUN.; OR TO STATEMENT INTERPRETER WITH STACK CLEAN;O2$:- MOV R3,-(SP) ;SAVE DIMENSIONS MOV R4,-(SP) ;T$ INC R3 ;ACCOUNT FOR ZEROTH ELEMENT INC R4 ;+ LDCIF R3,AC0 ;NOW LOAD UP FP ACCUMULATORSR; LDCIF R4,AC1 ;WITH DIMENSIONS (ADJUSTED FOR 0TH ELEMENTS);" MULF AC1,AC0 ;GET PRODUCT -> AC0# LDCIF R2,AC1 ;ELEMENT SIZE -> AC1R' MULF AC1,AC0 ;TOTAL # OF BYTES -> AC0' MOV #16,R0 ;SIZE OF VIRTUAL DATA ITEMJ TSTOK ;ENOUGH ROOM? BLO DIM98 ;IF NOT, BRANCHS' ADD R0,ENUDAT ;UPDATE END OF USER DATA ! MOV (SP)+,R4 ;RESTORE DIMENSIONST MOV (SP)+,R3 ;N* MOV (SP)+,R0 ;SIGNED ELEMENT LENGTH -> R0( MOV (SP)+,(R5)+ ;STORE HEADER WITH NAME! MOV R3,(R5)+ ;SAVE 1ST SUBSCRIPTB MOV R4,(R5)+ ;AND 2ND# MOV 4(SP),(R5)+ ;LUN -> DATA BLOCKN$ MOV R0,(R5)+ ;SIGNED ELEMENT LENGTH;A0; FOLLOWING CODE ROUNDS UP ACCUMULATED OFFSET IN<; ACCORD WITH RSTS BASIC+ RULES FOR VIRTUAL ARRAY ALLOCATION;I! MOV R2,R4 ;ELEMENT LENGTH -> R41" MOV 2(SP),R2 ;LOWER 16 BITS -> R2 MOV #1000,R3E, BIC #177000,R2 ;GET # BYTES OVER EVEN BLOCK- SUB R2,R3 ;# REMAINING BYTES IN BLOCK -> R3  CLR R2 ;GET SET FOR DIVIDE# DIV R4,R2 ;DIVIDE BY ELEMENT SIZEE TST R3 ;CHECK REMAINDER, BEQ 8$ ;IF ZERO, NO ROUND UP" BIC #777,2(SP) ;CLEAR BYTE OFFSET, ADD #1000,2(SP) ;GET TO START OF NEXT BLOCK1 ADC (SP) ;AND MAKE SURE OF DOUBLE PRECISION ADD !8$: SETL ;SET LONG INTEGER MODET LDCLF (SP)+,AC2 ;RESULT -> AC2 - STCFL AC2,(R5)+ ;STORE IT AWAY IN DATA BLOCKO! ADDF AC0,AC2 ;NEW OFFSET -> AC2N STCFL AC2,-(SP) ;STORE IT" SETI ;RESET 16 BIT INTEGER MODE; SKIP ;DO WE HAVEV CMPB R2,#', ;MORE ITEMS? BEQ 1$ ;IF SO, LOOP AROUND DEC R1 ;ELSE BACK UP TEXT PTRR ADD #6,SP ;CLEAN STACK2 JMP INIT02 ;AND GO BACK TO STATEMENT INTERPRETER;L.; SUBROUTINE STRGLN FOR USE WITH DIM STATEMENT ; ON ENTRY:O; R1 POINTS JUST PAST '$'F ; ON EXIT:); R1 POINTS JUST PAST LEN INFO [IF THERE]A%; R0 HAS LEN (+ FOR FIXED, - FOR VAR)L; 'V' SET IF SYNTAX ERROR ; OTHER REGISTERS USED: R2;0STRGLN: SKIP ;NEXT CHAR -> R2S. MOV #17,R0 ;SET DEFAULT LENGTH OF 15 DECIMAL! CMPB R2,#'[ ;DO WE HAVE LENGTH?  BNE 1$ ;IF NOT, BRANCH ATOI ;IF SO, GET IT -> R0 SKIP ;NEXT CHAR -> R2# CMPB R2,#'] ;IS IT CLOSE BRACKET?,( BNE 3$ ;IF NOT, BRANCH TO ERROR RETURN SKIP ;NEXT CHAR -> R2&1$: CMPB R2,#'V ;VARIABLE LEN STRING? BEQ 2$ ;IF SO, BRANCH  DEC R1 ;IF NOT, BACK UP PTRF RTS PC ;AND RETURN%2$: NEG R0 ;INDICATE VARIABLE LENGTHN RTS PC ;RETURN3$: SEV ;SET ERROR RTS PC ;RETURN;-6; SUBROUTINE SUBSUB TO RETURN SUBSCRIPT VALUES FOR DIM ; ON ENTRY:E); R1 POINTS TO START OF INFO [OPEN PAREN] ; ON EXIT:9; R1 POINTS PAST END OF SUBSCRIPT INFO [PAST CLOSE PAREN]E; R3 HAS FIRST SUBSCRIPT VALUE/; R4 HAS 2ND SUBSCRIPT VALUE (0 IF NONE SPEC'D)R; 'V' SET IF SYNTAX ERRORE; OTHER REGISTERS USED: R2,R0U;PSUBSUB: SKIP ;FIRST CHAR -> R2T" CMPB R2,#'( ;START OF SUBSCRIPT?* BNE 3$ ;IF NOT, BRANCH AND RETURN ZEROES ATOI ;CONVERT 1ST NUMBERT MOV R0,-(SP) ;SAVE NUMBER SKIP ;NEXT CHAR -> R2! CMPB R2,#', ;ANOTHER SUBSCRIPT?5 BNE 1$ ;IF NOT, BRANCH ATOI ;IF SO, CONVERT IT! SKIP ;GET FOLLOWING CHAR -> R2E MOV R0,R4 ;2ND VALUE -> R4!2$: MOV (SP)+,R3 ;1ST VALUE -> R3B! CMPB R2,#') ;FINAL CLOSE PAREN?T BNE 4$ ;IF NOT, SET ERROR  RTS PC ;ELSE RETURN NICELY#1$: CLR R4 ;SET ZERO 2ND SUBSCRIPT, BR 2$ ;AND FINISH UP3$: DEC R1 ;BACK UP TEXT PTR  CLR R3 ;SET ZERO CLR R4 ;SUBSCRIPTS RTS PC ;AND RETURN4$: SEV ;SET ERROR BIT RTS PC ;AND RETURN;R; SUBROUTINE SUBONER(; TO GET SUBSCRIPTS VIA SUBSUB AND CHECK'; THEM FOR IMMEDIATE (NON-VIRTUAL) USE. ; ON ENTRY:; R1 = TEXT PTRE ; ON EXIT:; R1 POINTS PAST CLOSE PAREN; R3 HAS 1ST SUBSCRIPT; R4 HAS 2ND SUBSCRIPT; R0 HAS PACKED SUBSCRIPTS; 'V' SET IF ERROR00VW; OTHER REGISTERS USED: R2; %SUBONE: JSR PC,SUBSUB ;GET SUBSCRIPTSR BVS 1$ ;ON ERROR BRANCH( MOV R4,R0 ;CHECK 2ND SUBSCRIPT DIMCHKR BNE 1$ ;IF TOO BIG, ERROR & MOV R3,R0 ;NOW CHECK FIRST SUBSCRIPT DIMCHKR# BNE 1$ ;IF TOO BIG, DECLARE ERROR#" SWAB R0 ;SET COMBINED SUBSCRIPTS BISB R4,R0 ;IN R0  RTS PC 1$: SEV ;INDICATE ERRORL RTS PCA >) .SBTTL DEF00 - DEFINE FUNCTION STATEMENT ;+3,; .SKIPA ; .X ^^DEF\\; .X ^FUNCTION - USERE; .X ^USER DEFINED FUNCTIONS; .HEADERLEVEL 1 R2 (EVEN S.EOL1) JMP INIT03 ;AND PROCEEDC"DEF99: DEFERR ;HORRIBLE ERROR!!! R2 .SBTTL EVAL00 - EVALUATE AN ARITHMETIC EXPRESSION;TC; EVAL - EVAL00, EVALUATE AN ARITHMETIC EXPRESSION. UPON ENTRY, R1 <; POINTS TO THE CURRENT TEXT POSITION. ON EXIT AC0 CONTAINS=; THE NUMERIC VALUE OF THE EXPRESSION. REGISTERS USED - ALL.9E; V-BIT WILL BE SET IF EXPRESSION TERMINATED BY ')', CLEAR OTHERWISE.R&; ON V SET, R1 POINTS PAST CLOSE PAREN+; ON V CLEAR, R1 POINTS TO TERMINATING CHARE;SEVAL00: CLR R0 TSTOK ;CHECK FOR BACKUP ROOM- BLO EVAL18 ;ON ERROR, BRANCH PUSH ;CLEAR THE PAREN COUNT' MOV #-1,-(SP) ;PUSH NULL (-1) ON STACKP)EVAL02: SKIP ;GET A NON-BLANK CHARACTERS# CMP R2,#'+ ;IS THIS A UNARY PLUS?E BEQ EVAL03 ;YES, IGNORE IT" CMP R2,#'- ;IS IT A UNARY MINUS? BNE EVAL01 ;NO MOV R2,R0 ;YES, SET OPERAND2=0& CLRF AC0 ;AND PUT THE OPER00~2TADATADATADATADATADATAATOR IN R0 BR EVAL05EVAL03: SKIP ;GET ACHARACTER.EVAL01: CMP R2,#'( ;IS OPERAND AN OPEN PAREN?$ BNE EVAL04 ;NO, GET A REAL OPERAND% CLR -(SP) ;PUSH A NULL ON THE STACKC' INC -2(R5) ;INCREMENT THE PAREN COUNT$ BR EVAL02 ;GO BACK AND DO IT AGAIN0EVAL05: STF AC0,-(SP) ;PUSH OPERAND ON THE STACK# MOV R0,-(SP) ; OPERATOR ON STACKR BR EVAL03 ;AND GO BACK AROUNDP0EVAL04: DEC R1 ;MOVE CHARACTER POINTER BACK ONE" MOV -(R5),-(SP) ;SAVE PAREN COUNT JSR PC,GTP00 ;GET AN OPERANDF MOV ENUDAT,R5 ;RESTORE R5) MOV (SP)+,(R5)+ ;RESTORE THE PAREN COUNT EVAL12: MOV R2,-(SP) ;SAVE R2  SKIP ;GET A CHARACTER& MOV #EVAL07+7,R0 ;GET ADDRESS OF LIST.GTPR01: CMPB -(R0),R2 ;IS IT A LEGAL OPERATOR? BEQ GTPR02 ;JUMP IF LEGALC% CMP R0,#EVAL07+1 ;HAS SEARCH FAILED?  BHI GTPR01 ;NO, CLR R0 ;YES - SET ZERO AND BACK UP POINTER DEC R1 ; TO POINT AT FAILURE GTPR03: MOV (SP)+,R2 ;RESTORE R2 BR EVAL19 ;AND CONTINUEB)GTPR02: MOV R2,R0 ;PUT A CHARACTER IN R0N BR GTPR03 EVAL19: TST @SP ;IS STACK NULL? BLE EVAL17V+EVAL06: MOV R1,-(SP) ;SAVE THE TEXT POINTER#( MOV #EVAL07+7,R1 ;GET THE TABLE ADDRESS&EVAL08: CMPB -(R1),R0 ;FIND OPERATOR2 BNE EVAL08 ;IT MUST BE FOUND% ASR R1 ;GET RID OF THE BYTE POINTERB2 MOV R1,(R5)+ ;PUT RESULT ON USER LIST FOR A WHILE* MOV #EVAL07+7,R1 ;GET TABLE ADDRESS AGAIN(EVAL09: CMPB -(R1),2(SP) ;FIND OPERATOR1 BNE EVAL09 ;IT MUST BE THERE ASR R1 ;CLEAR LOW ORDER BITK MOV R1,(R5)+ ;SAVE IT FOR NOW# MOV (SP)+,R1 ;RESTORE TEXT POINTERN2 CMP -(R5),-(R5) ;COMPARE OPERATOR1 WITH OPERATOR2, BLT EVAL05 ;GO BACK IF PRECEDENCE IS WRONG% MOV R0,(R5)+ ;SAVE OPERATOR2 FOR NOWV MOV #EVAL07+7,R0A9EVAL10: CMPB -(R0),@SP ;FIND APPROPRIATE OPERATOR IN LISTO BNE EVAL10 ;IT MUST BE FOUND# SUB #EVAL07+2,R0 ;GET DISPLACEMENTD ASL R0G ASL R0O0 ADD #EVAL11,R0 ;WE NOW HAVE THE ROUTINE ADDRESS MOV R0,(R5)+ ;SAVE IT" TST (SP)+ ;DISCARD OLD OPERATOR1 LDF AC0,AC1 ;PUT SOURCE IN AC1 LDF (SP)+,AC0 ;AND DEST IN AC0  MOV -(R5),R2 ;ROUTINE ADDRESS JSR PC,(R2) ;GO COMPUTE VALUEV MOV -(R5),R0 ;RESTORE OPERATOR2 TST @SP ;IS STACK NULL?7, BGT EVAL06 ;NO, TAKE CARE OF REST OF STACK1EVAL17: CMP R0,#') ;IS OPERATOR2 A CLOSED PAREN?D BEQ EVAL14 ;YES  TST R0 ;NO, IS IT NULL?R BGT EVAL05 ;NOT NULL - GO BACK% TST -(R5) ;IS THE PAREN COUNT ZERO?E BNE EVAL13 ;NO TST (SP)+ ;POP NULL; CCC) RTS PC ;RETURN WITH RESULT IN R2,R3,R4.A!EVAL13: PARERR ;PAREN COUNT BADR(EVAL14: TST -(R5) ;IS PAREN COUNT ZERO? BNE EVAL15 ;NOEVAL16: TST (SP)+ ;POP NULL, SEV ;YES, ERROR - BUT DON'T TELL USER YET RTS PCEEVAL15: TST @SP ;JUMP BLT EVAL16 ;IF NULL = -1 TST (SP)+ ;POP NULL" DEC (R5)+ ;DECREMENT PAREN COUNT BR EVAL12 ;AND DO IT AGAINEVAL18: OVFERREVAL07: .BYTE 0,') ;DO NOTG .BYTE '+,'- ; CHANGE .BYTE '*,'/ ; THE ORDER .BYTE '^ ; OF THIS TABLE .EVEN:; END OF TABLE REFERENCED AT: EVAL06+2, EVAL08+8, EVAL10-2+; ARGUMENTS ARE FIRST IN AC0, SECOND IN AC10 EVAL11: ADDF AC1,AC0 ;DO AN ADD RTS PCA SUBF AC1,AC0 ;DO A SUBTRACTT RTS PC MULF AC1,AC0 ;DO A MULTIPLY2 RTS PCP DIVF AC1,AC0 ;DO A DIVIDE0 RTS PCA' JMP PWRF00 ;POWER IS EXTERNAL TO HERE#  .SBTTL GTP00 - GET AN OPERAND;Q ; GETOP - GTP00, GET AN OPERAND. ; ON ENTRY:T; R1 POINTS TO START OF OPERANDT;R ; ON EXIT:); R1 POINTS TO NEXT CHAR AFTER SCAN ENDED(; AC0 HAS VALUE OF OPERAND; '; OTHER REGISTERS USED: POTENTIALLY ALL3;AD; NOTE: THIS ROUTINE MUST BE RE-ENTRANT SINCE IT MAY RE-ENTER ITSELF; VIA CALLS TO "EVAL".; -GTP00: MOV R1,-(SP) ;SAVE TEXT BACKUP POINTERT SKIP ;GET FIRST CHARACTER" BIC #177400,R2 ;CLEAR SIGN EXTEND CMPB R2,#S.SAST ;IN FCN RANGE?* BLO 3$ ;IF BELOW, TRY FOR SOMETHING ELSE. CMPB R2,#S.SAEN ;PAST END OF SINGLE ARG FCNS?, BHI 1$ ;IF SO, TRY FOR OTHER FUNCTION TYPE SUB #140,R2 ;CALCULATE TABLE ASL R2 ;OFFSET MOV R2,-(SP) ;AND SAVE IT EVAL ;ARG VALUE -> AC0 # BVC 21$ ;IF NO CLOSE PAREN, ERRORI# MOV (SP)+,R2 ;RESTORE TABLE OFFSETD' TST (SP)+ ;REMOVE BACKUP TEXT POINTERC& J00VWSR PC,@INIT12(R2) ;GO TO THE ROUTINE RTS PC;+1$: CMPB R2,#S.NFBO ;PAST END NUMERIC FCNS?A BHI 2$ ;IF SO, ERROR SUB #140,R2 ;CALCULATE TABLE ASL R2 ;OFFSET- MOV ENUDAT,(SP) ;COVER TEXT PTR WITH EOD PTRT CLR -(SP) ;SLOT FOR TEXT PTR" JSR PC,@INIT12(R2) ;GO TO ROUTINE) MOV (SP)+,R1 ;GET PROPER END OF TEXT PTRA' MOV (SP)+,ENUDAT ;AND END OF USER DATA RTS PCE2$: CMPB R2,#S.FN ;USER FCN? BEQ 7$ ;IF SO, GO DO ITM BNE 6$ ;IF NOT, ERRORT 3$: TSTCHE BVS 15$ ;JUMP IF BAD OPERAND BNE 9$ ;JUMP IF NOT NUMERIC ,18$: MOV (SP)+,R1 ;RESTORE CHARACTER POINTER1 ATOF ;CONVERT THE NUMBER, IGNORING ERROR FLAGS# BVS 6$N RTS PCE115$: CMP R2,#'. ;DOES THE NUMBER START WITH "."?P BEQ 18$ ;YES BR 6$ ;NOG)7$: GETVAR ;GET FOLLOWING VARIABLE NAMER. BVS 6$ ;ERROR IF NO VARIABLE NAME AFTER "FN"+ MOV STUDAT,R3 ;GET ADDRESS OF USER STORAGE& CLR R0 ;SET ZERO MASK FOR THE SEARCH BIS #060000,R4 ;SET CLASS 3& SRLST ;SEARCH THE LIST FOR THE ITEM( BEQ 6$ ;GO REPORT ERROR IF NOT DEFINED JSR PC,FNSET ;GO SET UP PARAMS MOV R1,-(SP) ;SAVE TEXT POINTER" MOV R0,R1 ;PUT DEF ADDRESS IN R1 EVALR BVC 20$ ;NO ')' ALLOWEDT21$: PARERR ;ERROR IF NOTE 6$: ILFERR'20$: SKIP ;NEXT CHAR IN FCN DEF -> R2 & CMPB R2,#S.EOS1 ;AT END OF STATEMENT? BLO 6$ ;IF NOT, ERROR+ MOV (SP)+,R1 ;RESTORE R1 ' JSR PC,FNCLR ;CLEAN UP MESS WE'VE MADED& TST (SP)+ ;CLEAR BACKUP TEXT POINTER RTS PCQ29$: MOV (SP)+,R1 ;IT'S A VARIABLE, RESTORE POINTER. JSR PC,GETHDR ;GET HEADER ADDRESS OF VARIABLEU ;DSS1TE .IF NDF,DEFVAR ;IF NO AUTOMATIC VARIABLE DEFINITION ;DSS1 ? BEQ 12$ ;VARIABLE NOT DEFINED....ERROR ;DSS1N .ENDC ;DSS1U ;DSS1H< JMP @11$(R0) ;GO TO APPROPRIATE ROUTINE ;**-111$: .WORD 13$ ;REAL*4 .WORD 13$ ;INTEGERF .WORD 13$ ;BYTE .WORD 12$ ;REAL*8I .WORD VTMR ;STRING (ERROR 52) ;DSS1 $12$: NXVERR ;NON-EXISTENT VARIABLE# CLRF AC0 ;ZERO RESULT PASSED BACKL RTS PC:"13$: JSR PC,GTOFFS ;GET THE OFFSET JSR PC,GETNUM ;AND THE NUMBER RTS PC) .SBTTL LEN00 - LENGTH OF STRING FUNCTIONS( .SBTTL FNSET - PARAM SETUP FOR USER FCN;M); FNSET - SET UP PARAMS FOR FUNCTION CALLR7; RETURN ADDRESS IS PULLED FROM STACK AND STACK IS USEDI8; TO STORE INFO ON ALREADY DEFINED DUMMY PARAMS. ENTRIES7; FOR DUMMY PARAMS ARE PUT INTO USER AREA AND NAMES FOR -; PREVIOUSLY DEFINED DUMMY PARAMS ARE ZEROED.O ; ON CALL:; R3 POINTS TO FCN ENTRY'; R1 POINTS TO FIRST ACTUAL ARG IN LISTE ; ON EXIT:; R1 POINTS PAST CLOSING ')'#; R0 POINTS PAST = SIGN FOR FCN DEF ; 'FNSET: MOV (SP)+,R2 ;POP RETURN ADDRESS  MOV ENUDAT,-(SP) ;SAVE ENUDAT& CLR -(SP) ;SET BOUNDARY FOR ARG INFO& MOV R2,-(SP) ;PUT BACK RETURN ADDRESS TST (R3)+ ;PUSH PAST HEADER: MOV (R3)+,R0 ;COUNT IN R0+ MOV (R3)+,R2 ;ADDRESS OF PAST = SIGN IN R2E&6$: MOV (R3)+,R4 ;NEXT DUMMY ARG IN R40 LDCIF R2,AC1 ;SAVE A FEW REGISTERS FOR A WHILE LDCIF R3,AC2T LDCIF R0,AC3C MOV STUDAT,R3 CLR R0S SRLST ;IS DUMMY DEFINED?P' BEQ 1$ ;IF NOT FOUND, THINGS ARE EASY;# MOV (SP)+,R2 ;RETURN ADDRESS IN R20 MOV (R3),-(SP) ;SAVE HEADER MOV R3,-(SP) ;AND ITS ADDRESS& MOV R2,-(SP) ;PUT BACK RETURN ADDRESS)1$: STCFI AC1,-(SP) ;SAVE REGISTERS (R2)L& STCFI AC2,-(SP) ;FOR REENTRANCE (R3) STCFI AC3,-(SP) ; (R0)D MOV R4,-(SP) ;SAVE PARAM NAME BIT #020000,R4 ;STRING PARAM? BNE 2$ ;IF SO, BRANCHO EVAL ;EVALUATE ACTUAL PARAM! BVC 10$ ;BACK UP IF CLOSE PARENF DEC R1 10$: SKIP  MOV #10,R0 ;CHECK FOR ROOM TSTOK BLO 14$ ;IF NO ROOM, BRANCH' MOV (SP)+,(R5)+ ;PUT AWAY NAME  CLR (R5)+ ;ZERO DIMENSIONS STF AC0,(R5)+ ;STORE VALUEU& MOV R5,ENUDAT ;MAKE IT SEMI-PERMANENT BR 4$12$: MOV #10,R0 ;MAKE ROOM FOR STRING HEADER INFOE TSTOK BHIS 9$ 14$: OVFERRE09$: MOV #160006,(R5) ;SAFEGUARD THESE FOUR WORDS00~2TADATADATADATADATADATA ADD R0,R5, MOV ENUDAT,-(SP) ;SAVE OLD END OF USER LIST MOV R5,ENUDAT ;CREATE NEW END* EVALS ;GET STRING, ADD -> R3, LEN -> R4 BVS 7$ ;REPORT ERROR MOV (SP)+,R5 ;RESTORE OLD R5D MOV (SP)+,(R5)+ ;PUSH NAMEN CLR (R5)+ ;ZERO DIMENSIONS, MOV R4,(R5)+ ;AND LEN ALONG WITH FIXED TYPE MOVB R4,(R5)+ ;ACTUAL LEN BEQ 13$'3$: MOVB (R3)+,(R5)+ ;AND STRING ITSELFU SOB R4,3$!13$: INC R5 ;ROUND R5 UP TO EVEN  BIC #1,R5 ;BOUNDARY) MOV R5,ENUDAT0 SKIP ;GET NEXT CHAR IN R2 (NOT DONE BY EVALS)'4$: MOV (SP)+,R0 ;RESTORE COUNT OF ARGS  MOV (SP)+,R3 ;AND ARG ADDRESS' CMPB #'),R2 ;AT END OF ACTUAL PARAMS?$ BEQ 8$ ;IF SO, BRANCHF CMPB #',,R2 ;IS IT COMMA BEQ 5$ ;IT BETTER BE 7$: ILFERR*5$: MOV (SP)+,R2 ;ADD OF PAST = SIGN IN R2 DEC R0 ;DEC AND DO IT AGAIN " BEQ 7$ ;SHOULD NEVER GET TO ZERO JMP 6$U8$: DEC R0 ;IF COUNT WAS 1, OKR" BNE 7$ ;ANYTHING ELSE = BAD NEWS' MOV (SP)+,R0 ;ADD OF PAST = SIGN IN R0B$ ADD USR,R0 ;MAKE INTO REAL ADDRESS# MOV SP,R2 ;GET ADDRESS OF LIST OFD TST (R2)+ ;BLANKED PARAMSV#11$: MOV (R2)+,R3 ;ADDRESS OF PARAMT! BEQ 12$ ;ZERO MEANS END OF LISTI BIC #7777,(R3) ;CLEAR OUT NAME  TST (R2)+ ;SKIP OVER OLD NAMES BR 11$ ;DO ALL OF THEM-12$: RTS PC ;RETURN WITH SAVED INFO ON STACK;V&; SUBROUTINE TO RESET DATA ITEMS AFTER; FUNCTION EVALUATION.; REGISTERS USED: R2,R0(;+$FNCLR: MOV (SP)+,R0 ;SAVE RETURN ADD"1$: MOV (SP)+,R3 ;ADD OF DATA ITEM BEQ 2$ ;BR IF AT END! MOV (SP)+,(R3) ;RESTORE OLD NAME  BR 1$22$: MOV (SP)+,ENUDAT ;GET US BACK TO WHERE WE WERE" MOV R0,-(SP) ;PUT BACK RETURN ADD RTS PC P- .SBTTL EVLS00 - EVALUATE A STRING EXPRESSION;;S;; EVALS, EVLS00 - EVALUATE A STRING EXPRESSION OF THE FORM:E; STRE1 + [STRE2 + ...]); WHERE:&; STRE1 AND STRE2 ARE STRING ELEMENTS; A STRING ELEMENT MAY BE:'; A STRING CONSTANT (IN DOUBLE QUOTES)0$; A STRING VARIABLE (ENDING IN '$')-; A STRING FUNCTION (SYSTEM OR USER DEFINED)T ; ON ENTRY:B;; R1 POINTS TO START OF PROGRAM TEXT WITH STRING EXPRESSIONE;O ; ON EXIT:0; R1 POINTS TO FIRST CHAR PAST END OF EXPRESSION ; R3 HAS ADDRESS (IN FREE SPACE) ; R4 HAS LEN6; 'V' SET FOR BAD STRING EXPRESSION AND R1 AS ON ENTRY;VEVLS00:M' MOV #2,R0 ;CHECK FOR HEADER ROOM ONLY  TSTOK ;(ENUDAT -> R5)% BLO 18$ ;IF NOT ENOUGH ROOM, BRANCHA8 MOV R5,-(SP) ;SAVE HEADER ADDRESS (AND ORIGINAL ENUDAT)0 MOV #160000,(R5)+ ;SET UP HEADER WITH NO LENGTH MOV R1,-(SP) ;SAVE TEXT PTR3$:B2 MOV R5,-(SP) ;SAVE CURRENT POSITION OF R5 (END OF ;ACCUMULATED STRING) INC R5 ;ROUND IT UPO BIC #1,R50 MOV R5,ENUDAT ;AND PROTECT WHAT WE ALREADY HAVE0 JSR PC,GSTR00 ;GET STRING ELEMENT (WHICH MAY IN ;TURN EVALUATE A STRING) BVS 4$ ;IF ERROR, BRANCH! BLE 2$ ;IF ZERO OR LESS, BRANCH! MOV R4,R0 ;LEN OF OPERAND -> R0R MOV R3,-(SP) ;SAVE ADDRESSE TSTOK ;CHECK FOR ROOM BLO 18$ ;IF NOT ENOUGH, BRANCH- MOV (SP)+,R3 ;RESTORE STRING ELEMENT ADDRESSC( MOV (SP)+,R5 ;AND CURRENT END OF STRING MOV @2(SP),R2 ;HEADER -> R2 BIC #160000,R2 ;CLEAR DATA TYPE ADD R0,R2 ;ADD IN NEW LEN  BIT #160000,R2 ;IS IT TOO BIG?I BNE 18$ ;IF SO, BRANCH BIS #160000,R2 ;SET HEADER TYPE! MOV R2,@2(SP) ;AND STORE IT AWAYA)1$: MOVB (R3)+,(R5)+ ;MOVE IN NEW ELEMENTK SOB R0,1$* MOV R5,-(SP) ;JUST TO KEEP STACK STRAIGHT22$: MOV (SP)+,R5 ;RESTORE R5 (END OF ACCUM STRING) SKIP ;NEXT TEXT CHARG CMPB R2,#'+ ;MORE ELEMENTS?+ BEQ 3$ ;IF SO, GO ADD THEM DEC R1 ;ELSE BACK UP TST (SP)+ ;POP OLD R1P& MOV (SP)+,R3 ;ADDRESS OF HEADER -> R31 MOV R3,ENUDAT ;ALSO RESTORE ORIGINAL END OF DATAB/ MOV (R3)+,R4 ;HEADER -> R4, R3 AT STRING STARTE2 BIC #160000,R4 ;CLEAR HEADER TYPE, LEAVING LENGTH CCC ;SET SUCCESSL RTS PCR'4$: TST (SP)+ ;POP END OF ACCUM STRING ' MOV (SP)+,R1 ;RESTORE R1 AS WE ENTEREDL' MOV (SP)+,ENUDAT ;AND END OF USER DATA  CLR R4 ;ZERO LEN SEV ;NO EXPRESSION$ RTS PC 18$: OVFERRH M% .SBTTL GSTR00 - GET A STRING OPERANDR;C%; GSTR, GSTR00 - GET A STRING OPERANDI;2; AT END OF SUCCESSFUL COMPLETION OF THIS ROUTINE,1; R3 CONTAINS AN00VW INDIVIDUAL STRING ADDRESS AND R40; CONTAINS ITS LENGTH;E"GSTR00: SKIP ;GET NEXT TEXT CHAR& BIC #177400,R2 ;CLEAR OUT SIGN EXTEND< CMPB R2,#S.SFST ;ARE WE IN RANGE OF STRING FUNCTION TOKENS?$ BLO 1$ ;IF NOT, TRY SOMETHING ELSE CMPB R2,#S.SFEN ;OVER THE TOP?;* BHI 2$ ;IF SO, GO LOOK FOR USER FUNCTION- SUB #140,R2 ;MAKE R2 INTO JUMP TABLE OFFSET ASL R2;# JSR PC,@INIT12(R2) ;GO TO FUNCTIONC$ TST R4 ;SET LENGTH CONDITION CODES' RTS PC ;AND GO BACK WHER WE CAME FROM,,2$: CMPB R2,#S.FN ;USER FUNCTION DEFINITION?$ BEQ GSTR01 ;IF SO, GO TO THAT CODE BR GSTR09 ;IF NOT, ERROR1$: TSTCH ;WHAT IS IT " BVS GSTR10 ;NOT ALPHANUM MAYBE " BEQ GSTR09 ;NUMBER=ERROR%GSTR06: DEC R1 ;RESTORE TEXT POINTERE" JSR PC,GETHDR ;GET HEADER ADDRESSB BVS GSTR09 ;ERROR IN VAR ;DSS1U ;DSS10E .IF NDF,DEFVAR ;IF NO AUTOMATIC VARIABLE DEFINITION ;DSS1 B BEQ GSTR09 ;NO VARIABLE ;DSS1N .ENDC ;DSS1U ;DSS1 B CMP #10,R0 ;IS THIS A STRING? ;**-2" BNE GSTR09 ;IF NOT, REPORT ERROR JSR PC,GTOFFS ;GET THE OFFSET! MOV R3,R0 ;HEADER ADDRESS -> R0P% JSR PC,GETSTR ;AND THE STRING ITSELF .GSTR02: TST R4 ;SET CONDITION CODES ON LENGTH RTS PC ;BACK TO CALLER GSTR09: SEVF RTS PC ;AND RETURN+GSTR10: CMP R2,#'" ;THIS A STRING CONSTANT BNE GSTR09 ;ERR IF NOT& MOV R1,R3 ;SAVE STRING START ADDRESS CLR R4 ;REGISTER FOR LENGTHT%GSTR11: CMPB (R1)+,#'" ;END OF STRINGS BEQ GSTR02 ;RETURN IF SO! CMPB -(R1),#S.EOL1 ;END OF LINE?T BHIS 1$ ;RETURN IF SO TOO  INC R1 ;SKIP OVER CHAR INC R4 ;ADD TO LENGTH BR GSTR11 ;LOOP TILL END FOUND$1$: UNMERR ;UNMATCHED QUOTES ERRORT ;DSS1DVTMR: VTMERR ;VARIABLE TYPE MISMATCH ;DSS1; ,; ADDED CODE TO HANDLE USER STRING FUNCTIONS;S*GSTR01: GETVAR ;NAME OF STRING FCN IN R4$ BVS GSTR09 ;IF UNSUCCESSFUL, ERROR% CMPB R2,#'$ ;IS IT STRING FCN NAME?G BNE GSTR09 ;IF NOT, ERROR  SKIP! CMPB R2,#'( ;MUST HAVE ARG LIST BNE GSTR09 ;ELSE ERROR MOV STUDAT,R3 CLR R0 ;NO MASK>$ BIS #100000,R4 ;SET STRING FCN TYPE SRLST! BEQ GSTR09 ;IF NOT FOUND, ERRORS JSR PC,FNSET ;SET UP PARAMS MOV R1,-(SP) ;SAVE R1! MOV R0,R1 ;TEMP R1 FOR FCN EVAL# EVALS BVC 1$ ;IF OK, SKIPB ILFERR ;OTHERWISE ERROR!R1$: SKIP& CMPB R2,#') ;NO EXTRA PARENS ALLOWED BNE 2$N PARERRR&2$: MOV (SP)+,R1 ;RESTORE TEXT POINTER MOV R3,R2 ;SAVE STRING ADDRESS JSR PC,FNCLR ;CLEAN UP MESS MOV R2,R3 ;RESTORE ADDRESS TST R4 ;SET CON CODESC RTS PC 3 .SBTTL GETHDR - GET ADDRESS OF DATA ELEMENT HEADERET ;DSS1D .IF DF,DEFVAR ;IF AUTOMATIC VARIABLE DEFINITION ;DSS1U ;DSS1R; ; ON ENTRY:E5; R1 IS TEXT PTR WHICH SHOULD POINT TO VAR NAME STARTR; ; ON EXIT:&; R1 POINTS TO CHAR FOLLOWING VAR NAME; R3 HAS HEADER ADDRESS,; R0 HAS RETURN CODE (FOR USE AS JUMP INDEX) ; 0 = SINGLE PRECISION FLOATING; 2 = INTEGER ; 4 = BYTE0; 6 = DOUBLE PRECISION; 10= STRING VARIABLE!; R4 HAS HEADER TYPE AND VAR NAMESO; 'V' SET IF NO VAR IN TEXT (SYNTAX ERROR) ;DSS1H; IN THIS CASE R4, R3 AND R0 ARE NOT DEFINED ;DSS1U; ;DSS1RU; *** 'Z' NO LONGER SET IF VARIABLE UNDEFINED...INSTEAD, THE VARIABLE ;DSS1AU; IS CREATED (BY NEWVAR) **** ;DSS1TU; ;DSS1 KGETHDR: JSR PC,GETHD5 ;DO OLD GETHDR00~2TADATADATADATADATADATA STUFF ;DSS1> BVS 6$ ;ERROR ;DSS1> BNE 5$ ;OK ;DSS1C MOV R5,-(SP) ;(SAVE R5) ;DSS1 D JSR PC,NEWVAR ;DEFINE THE VARIABLE ;DSS1C MOV (SP)+,R5 ;(RESTORE R5) ;DSS1R?5$: CLZ ;CLEAR Z, JUST IN CASE ;DSS1M6$: RTS PC ;DSS1 U ;DSS1 U ;DSS1 U; GETHD5 IS EXACTLY LIKE GETHDR, EXCEPT THAT, ON RETURN, ;DSS1RU; THE Z-BIT IS SET IF THE VARIABLE IS UNDEFINED ;DSS1 U;***TEST 'V' FIRST, THEN 'Z' ....... VARIABLES ARE NOT AUTOMATICALLY CREATED ;DSS1 UGETHD5: ;DSS1 U ;DSS1;= .IFF ;IF NO AUTOMATIC VARIABLE DEFINITION ;DSS1(U; GETHDR AND GETHD5 ARE IDENTICAL, IF UNDEFINED VARIABLES ARE ERRORS, RATHER ;DSS1VU; THAN ZEROES ;DSS1 UGETHDR: ;DSS1UGETHD5: ;DSS1 E .ENDC ;IF DF,DEFVAR ;DSS1 U ;DSS1 > CLR R0 ;CLEAR R0 FOR SEARCH MASK ;DSS1C MOV R0,-(SP) ;AND SET ERROR RETURN CODE ;**-8I1 GETVAR ;2 CHAR VAR NAME -> R4 (3RD CHAR -> R2) BVS 11$ ;ON ERROR, BRANCH.& CMPB R2,#'$ ;DO WE HAVE STRING TYPE? BEQ 1$ ;IF SO, BRANCH  CMP R2,#'% ;INTEGER TYPE? ' BEQ 2$ ;IF SO, BRANCH TO INTEGER CODE CMPB R2,#'& ;BYTE TYPE SPEC'D? BEQ 3$ ;IF SO, BRANCH ; 4; OTHER VARIABLE TYPE DETERMINATIONS TO BE DONE HERE;V3 DEC R1 ;BACK UP TEXT PTR IF ORDINARY FLOATING VART& ;STACK LEFT AT 0 FOR FLOATING VAR.! BR 10$ ;BRANCH TO COMMON FINISHH-1$: BIS #120000,R4 ;SET STRING TYPE IN HEADER % MOV #10,(SP) ;SET STRING RETURN CODEH! BR 10$ ;BRANCH TO COMMON FINISH %2$: BIS #20000,R4 ;SET INTEGER HEADER ( MOV #2,(SP) ;SET INTEGER TYPE ON STACK BR 10$ "3$: BIS #40000,R4 ;SET BYTE HEADER MOV #4,(SP) ;AND TYPE ON STACK BR 10$ ; 3; CODE FOR OTHER VARIABLE TYPES TO BE INSERTED HERE ; %10$: MOV STUDAT,R3 ;SET UP FOR SEARCH  SRLST ;SEE IF IT'S THERE  BEQ 12$ ;IF NOT THERE, BRANCH "11$: MOV (SP)+,R0 ;SET RETURN CODE CLZ ;INDICATE VAR FOUND RTS PC G12$: MOV (SP)+,R0 ;POP RETURN TYPE CODE ;DSS1S< SEZ ;VARIABLE NOT DEFINED ;DSS1J RTS PC ;**-2* .SBTTL GTOFFS - GET OFFSET OF ACTUAL DATA;Y ; ON ENTRY:B; R3 POINTS TO DATA ITEM HEADERE<; R1 POINTS TO TEXT FOLLOWING VAR NAME (OPEN PAREN IF THERE);K ; ON EXIT: ; R3 AS ABOVEO0; R1 POINTS PAST CLOSE PAREN (IF SUBSCRIPT USED) ; AC0 HAS:*; 1) FOR STANDARD VAR, OFFSET FROM STUDAT*; (R0 HAS ABSOLUTE ADDRESS IN THIS CASE):; 2) FOR VIRTUAL ARRAY, OFFSET FROM FILE START (IN BYTES);$,; OTHER REGISTERS USED: R2, R0, R4, AC1, AC2;)GTOFFS:T BIT #10000,(R3) ;VIRTUAL ARRAY? BNE 3$ ;IF SO, BRANCHE MOV R3,-(SP) ;SAVE R3 MOV (R3)+,R0 ;HEADER -> R0 ASH #-14,R0 ;SHIFT BITS DOWN( BIC #177761,R0 ;CLEAR ALL BUT ITEM TYPE% MOV R0,-(SP) ;AND SAVE TYPE ON STACKF SKIPH CMPB R2,#'( ;SUBSCRIPT?R! BNE 1$ ;IF NOT, SIMPLE VARIABLER CMP R0,#12 ;DO WE HAVE STRING? BNE 6$ ;IF NOT, BRANCH& CLR R0 ;GET SET TO GET STRING LENGTH# BISB 2(R3),R0 ;WITHOUT SIGN EXTENDB INC R0 ;AND ADD LENGTH BYTE  MOV R0,-(SP) ;SAVE IT ON STACK  BR 7$56$: MOV 5$(R0),-(SP) ;LEN OF NUMERIC ELEMENT ON 00VWSTACKT-7$: MOV R3,-(SP) ;SAVE CURRENT POSITION OF R3E EVAL ;GET 1ST SUBSCRIPT BVS 8$ ;IF CLOSE PAREN, BRANCH' STCFI AC0,-(SP) ;STORE FIRST SUBSCRIPT SKIP ;GET NEXT TEXT CHARO CMPB R2,#', ;MUST BE COMMA BNE 98$ ;ELSE ERROR  EVAL ;GET 2ND SUBSCRIPT$ BVC 98$ ;MUST END WITH CLOSE PAREN# STCFI AC0,R0 ;2ND SUBSCRIPT -> R0  BR 9$68$: STCFI AC0,-(SP) ;1ST (AND ONLY) SUBSCRIPT ON STACK CLR R0 ;2ND IS IMPLIED 09$: MOV 2(SP),R3 ;RESTORE R3* CLR R2 ;MAKE SURE R2 CLEAR SO WE CAN GET) BISB (R3)+,R2 ;2ND SUBSCRIPT LIMIT -> R23" CMP R0,R2 ;COMPARE ACTUAL TO MAX BHI 99$ ;IF TOO BIG, ERROR! CLR R2 ;GET SET TO GET UNSIGNEDR) BISB (R3)+,R2 ;1ST SUBSCRIPT LIMIT -> R2C+ CMP (SP),R2 ;COMPARE 1ST SUBSCRIPT TO MAXI BHI 99$ ;IF TOO BIG, ERROR MOV R3,2(SP) ;RE-SAVE R3  CLR R2 ;GET Y.MAX -> R2; BISB -2(R3),R2 ;IN UNSIGNED WAY MOV R2,R3 ;NOW DO WORK IN R3$ INC R3 ;ADD ONE FOR ZEROTH ELEMENT MUL (SP)+,R3 ;X*(Y.MAX+1) -> R3 ADD R0,R3 ;Y+X*(Y.MAX+1) -> R37 MOV (SP)+,R2 ;R2 NOW HAS PTR TO START OF DATA ELEMENTSP) MUL (SP)+,R3 ;MULTIPLY BY ELEMENT LENGTH ADD R2,R3 ;ADD IN OFFSET&10$: CMP (SP)+,#12 ;DO WE HAVE STRING? BNE 2$ ;IF NOT, BRANCH6 ADD #3,R3 ;ELSE ADD EXTRA WORD PLUS LEADING LEN BYTE2$: MOV R3,R4 ;COPY -> R4 MOV R3,R0 ;AND -> R0 MOV (SP)+,R3 ;HEADER ADDRESSA SUB STUDAT,R4 ;OFFSET -> R4 LDCIF R4,AC0 ;NOW -> AC0 RTS PC 1$: DEC R1 ;BACK UP TEXT PTRR TST (R3)+ ;PUSH TO 3RD WORD( BR 10$ ;AND GO FINISHR%98$: SBSERR ;BADLY FORMED SUBSCRIPTB%99$: SUBERR ;SUBSCRIPT OUT OF RANGE3!5$: .WORD 4 ;REAL*4 (NORMAL TYPE)X .WORD 2 ;INTEGER*2I .WORD 1 ;BYTE .WORD 10 ;REAL*8U;G; VIRTUAL SECTION2;S53$: JSR PC,VSUBSC ;GET ELEMENT NUMBER (LINEAR) -> AC0B& LDCIF 10(R3),AC1 ;ELEMENT SIZE -> AC1 ABSF AC1 ;MAKE SURE POSITIVE. MULF AC1,AC0 ;GET TOTAL BYTE OFFSET IN ARRAY SETL ;LONG INTEGER MODE0 LDCLF 12(R3),AC2 ;START OFFSET FOR ARRAY -> AC2) ADDF AC2,AC0 ;ADD IT IN FOR FILE OFFSETA SETI ;BACK TO 16 BIT INTEGERS RTS PC ;AND RETURN;T; VIRTUAL SUBSCRIPT CALCULATIONL;PVSUBSC:L SKIP ;NEXT CHAR -> R2" CMPB R2,#'( ;CHECK FOR SUBSCRIPT( BNE 3$ ;IF NONE, (0,0) ELEMENT ASSUMED! MOV R3,-(SP) ;SAVE DATA ITEM PTRD EVAL ;FIRST SUBSCRIPT -> AC0E% BVS 1$ ;IF CLOSE PAREN, SHORT CALC.0! STF AC0,-(SP) ;STORE IT ON STACK  SKIP ;CHECK NEXT CHAR.F CMPB R2,#', ;FOR COMMA- BNE 4$ ;IF NO COMMA, BADLY FORMED SUBSCRIPTX EVAL ;GET 2ND SUBSCRIPT3 BVC 4$ ;IF NO CLOSE PAREN, BADLY FORMED SUBSCRIPTB$ LDF (SP)+,AC1 ;1ST SUBSCRIPT -> AC122$: MOV (SP)+,R3 ;RESTORE PTR TO VIRTUAL DATA ITEM( STCFI AC0,R0 ;INTEGERIZE 2ND SUBSCRIPT CMP R0,4(R3) ;CHECK ITS RANGE" BHI 5$ ;IF TOO HIGH, RANGE ERROR1 LDCIF R0,AC0 ;RE-LOAD 2ND SUBSCRIPT INTEGERIZED(! STCFI AC1,R0 ;GET 1ST SUBSCRIPT  CMP R0,2(R3) ;CHECK ITS RANGE" BHI 5$ ;IF TOO HIGH, RANGE ERROR2 LDCIF R0,AC1 ;1ST SUBSCRIPT -> AC1 (INTEGERIZED)' LDCIF 4(R3),AC2 ;SIZE OF 2ND DIMENSION, ADDF #1,AC2 ;PLUS ONE -> AC2% MULF AC2,AC1 ;TIMES FIRST SUBSCRIPTS' ADDF AC1,AC0 ;ADDED TO 2ND FOR RESULT  RTS PC ;AND RETURN01$: LDF AC0,AC1 ;MAKE SURE 1ST SUBSCRIPT -> AC1% CLRF AC0 ;2ND SUBSCRIPT = IMPLIED 0,! BR 2$ ;GO FINISH IN REGULAR WAYS3$: DEC R1 ;BACK UP TEXT PTRR! CLRF AC0 ;ZEROTH ELEMENT WANTEDC RTS PC ;AND RETURN$4$: SBSERR ;BADLY FORMED SUBSCRIPT$5$: SUBERR ;SUBSCRIPT OUT OF RANGE;,; SUBROUTINE VIRACC -; TO GET NEEDED DISK BLOCK IN MEMORY GIVEN AN /; OFFSET INTO THE FILE. THIS ROUTINE ALSO TAKESB5; CARE OF WRITING OUT AN EXITSING BLOCK IF NECESSARY.> ; ON ENTRY: "; R3 IS PTR TO VIRTUAL DATA HEADER+; AC0 HAS OFFSET (IN BYTES) FROM FILE STARTI8; R5 HAS WRITE FLAG (1 TO INDICATE WRITE TO BE PERFORMED; AFTER ACCESS);R ; ON EXIT: ; R3 AS ABOVEP; AC0 AS ABOVE ; R0 HAS ADDRESS OF BLOCK BUFFER%; R2 HAS OFFSET INTO BLOCK (IN BYTES)5;; ; OTHER REGISTERS USED: AC1, AC2;CVIRACC:U MOV R4,-(SP) ;SAVE A COUPLE MOV R5,-(SP) ;OF REGISTERS  MOV 6(R3),R4 ;LUN -> R4 DEC R4 ;BACK IT OFF BY ONE BIS #10000,R4 ;SET BLOCK MODE00 ~2TADATADATADATADATADATA MOV #7400,R0 ;MASK TO IGNORES MOV R3,-(SP) ;SAVE DATA PTR JSR PC,SRCHFL ;LOOK FOR IT  BEQ 4$ ;IF NOT THERE, BRANCH SETL ;SET 32 BIT INTEGER MODE+ STCFL AC0,-(SP) ;CONVERT OFFSET TO INTEGER # MOV (SP)+,R4 ;AND PUT IN REGISTERSE MOV (SP)+,R5 ;FOR FURTHER WORK) ASHC #-11,R4 ;MAKE IT JUST BLOCK NUMBERU, ADD #1,R5 ;OFFSET BLOCK (SINCE START AT 1) ADC R4 ;MAKE SURE OF 32 BITS! MOV R5,-(SP) ;STORE 32 BIT BLOCKT MOV R4,-(SP) ;NUMBER ON STACK' LDCLF (SP)+,AC1 ;REQUIRED BLOCK -> AC1N' LDCLF 6(R3),AC2 ;CURRENT BLOCK -> AC23, CMPF AC1,AC2 ;IS REQUIRED SAME AS CURRENT? CFCCB) BEQ 2$ ;IF SO, BRANCH (NO NEED TO READ) & JSR PC,WRITBK ;GO WRITE THE BLOCK OUT BCS 3$ ;ON ERROR, BRANCH1 LDCLF F.EFBK(R0),AC2 ;CURRENT EOF BLOCK # -> AC2S' CMPF AC1,AC2 ;COMPARE REQUIRED VS EOFO CFCCB- BLT 5$ ;IF REQ'D < CURRENT EOF, OK FOR READC TST 2(SP) ;CHECK ON WRITE FLAG BNE 2$ ;IF WRITE, SKIP READT. ;ELSE CONTINUE SO WE GET EOF ERROR ON READ65$: STCFL AC1,F.BKVB(R0) ;REQUIRED BLOCK NUMBER -> FDB CLR -(SP) ;IO STATUS BLOCK CLR -(SP) ;ON STACKJ' MOV SP,F.BKST(R0) ;WITH ADDRESS IN FDBN READ$ ;DO BLOCK READ  BCC 6$ ;IF OK, BRANCH TO WAITA? MOVB F.ERR(R0),(SP) ;IF NOT, GET ERROR CODE WHERE EXPECTING ITE BR 1$ ;AND BRANCH AROUND WAITH$6$: WAIT$ R0 ;WAIT FOR IT TO FINISH(1$: MOV (SP)+,R2 ;IO STATUS RETURN -> R2 TST (SP)+ ;POP XFER COUNT;! MOVB R2,F.ERR(R0) ;STATUS -> FDB  BMI 3$ ;ON ERROR, BRANCH$2$: STCFL AC0,-(SP) ;OFFSET -> STACK TST (SP)+ ;POP HIGH ORDER PART MOV (SP)+,R2 ;LOW PART -> R2 / BIC #177000,R2 ;CLEAR OUT ALL BUT BLOCK OFFSET?' STCFL AC1,6(R3) ;STORE CURRENT BLOCK #D MOV R3,R0 ;BASIC FDB PTR -> R0 MOV (SP)+,R3 ;RESTORE DATA PTRR MOV (SP)+,R5 ;RESTORE SOME,' BIS R5,14(R0) ;SET WRITE FLAG IF IN R5C0 ADD #S.FDB+26,R0 ;MAKE R0 POINT TO BLOCK BUFFER MOV (SP)+,R4 ;REGISTERS SETI ;BACK TO 16 BIT INTEGERS RTS PC ;AND RETURN;F; ERROR ROUTINES; 3$: MOVB R2,R2 ;EXTEND SIGN* MOV R2,PARLST+P.FCS ;STORE FCS ERROR CODE SETI ;RESTORE INTEGER MODER' VFIERR ;ERROR IN VIRTUAL FILE ACCESS 4$: SETI VOPERR ;VIRTUAL FILE NOT OPEN;N; SUBROUTINE WRITBKR:; TO WRITE OUT BLOCK BUFFER ON BLOCK ACCESS FILE IF NEEDED%; AND SET UP FDB FOR BLOCK OPERATIONSG;E ; ON ENTRY:D.; R3 POINTS TO BASIC FILE CONTROL BLOCK HEADER; ; ON EXIT:; R0 POINTS TO FDB PROPERU; F.BKDS AND F.BKDS+2 SET UPD; F.BKVB(R0) SET UP WITH BLOCK NUMBER OF WRITTEN BLOCK IF WRITE DONE4; 14(R3) ZEROED (NO UNRECORDED WRITES TO THIS BLOCK)1; F.ERR(R0) SET WITH IO STATUS CODE IF WRITE DONE ,; 'C' SET IF ERROR IN WRITE, CLEAR OTHERWISE;?; OTHER REGISTERS USED:R2U;NWRITBK:D% MOV R3,R0 ;MAKE R0 POINT TO FCS FDBV ADD #26,R0 ;" MOV R0,F.BKDS+2(R0) ;STORE PROPER' ADD #S.FDB,F.BKDS+2(R0) ;BLOCK ADDRESS  MOV #1000,F.BKDS(R0) ;AND SIZE0* TST 14(R3) ;CHECK # WRITES TO THIS BLOCK, BEQ 2$ ;IF NONE, BRANCH (NO NEED TO WRITE)) MOV 6(R3),F.BKVB(R0);SET UP BLOCK NUMBER$# MOV 10(R3),F.BKVB+2(R0) ;FOR WRITEA CLR -(SP) ;MAKE A STATUS BLOCK CLR -(SP) ;ON THE STACKD& MOV SP,F.BKST(R0) ;AND ADDRESS IN FDB WRITE$ ;DO THE BLOCK WRITEU BCC 4$ ;IF OK, BRANCH TO WAITE7 MOVB F.ERR(R0),(SP) ;PUT ERROR CODE WHERE EXPECTING ITE BR 3$ ;AND BRANCH AROUND WAITB(4$: WAIT$ R0 ;AND WAIT FOR IT TO FINISH(3$: MOV (SP)+,R2 ;IO STATUS RETURN -> R2 TST (SP)+ ;POP XFER COUNTO SEC ;SET 'C' FOR ERROR RETURN' MOVB R2,F.ERR(R0) ;STORE STATUS IN FDBN BMI 1$ ;IF NEGATIVE, BRANCH "2$: CLC ;ELSE SET SUCCESS RETURN 1$: RTS PC@ .SBTTL GETNUM - TO RETURN NUMBER -> AC0, GIVEN INFO FROM GTOFFS; ; ON ENTRY:I; R3 IS PTR TO DATA ITEM HEADERT; AC0 HAS OFFSET*; 1) FOR STANDARD VAR, OFFSET FROM STUDAT/; 2) FOR VIRTUAL ARRAY, OFFSET FROM FILE STARTR;; ; ON EXIT: ; R3 AS ABOVE.; AC0 HAS NUMERIC VALUE ;M; OTHER REGISTERS USED: R0, R2;TGETNUM:; MOV R5,-(SP) ;SAVE CURRENT R5# CLR R5 ;NO WRITE FLAG (READ ONLY)R2 JSR PC,NUMSUB ;GO TO COMMON READ/WRITE SUBROUTINE& JMP @1$(R0) ;AND JUMP TO PROPER CODE1$: .WORD 2$ ;FLOATINGO .WORD 3$ ;IN00VWTEGERH .WORD 4$ ;BYTE .WORD 9$ ;DOUBLE PRECISION(2$: LDF (R2),AC0 ;LOAD IN FLOATING VALUE BR 8$%3$: MOV (R2),R0 ;INTEGER VALUE -> R0;)5$: LDCIF R0,AC0 ;CONVERT IT TO FLOATING 8$: MOV (SP)+,R5 ;RESTORE R5 RTS PC ;AND RETURN*4$: MOVB (R2),R0 ;CONVERT BYTE TO INTEGER BR 5$ ;AND FINISH LIKE INTEGER;O>; TEMPOROARILY FOR LOGICAL TIE-UP OF CODE FOR DOUBLE PRECISIONF; EVENTUALLY THE USE OF DOUBLE PRECISION (REAL*8) HAS TO BE RE-THOUGHT;S9$: LDCDF (R2),AC0 BR 8$;E0; COMMON CODE FOR READ AND WRITE OF NUMERIC DATA;S ; ON ENTRY:T; R3 IS PTR TO DATA ITEM HEADERA; AC0 HAS OFFSET*; 1) FOR STANDARD VAR, OFFSET FROM STUDAT/; 2) FOR VIRTUAL ARRAY, OFFSET FROM FILE STARTT*; R5 HAS READ/WRITE FLAG (0=READ, 1=WRITE); ; ON EXIT:; R3,AC0,R5 AS ABOVE; R2 HAS ADDRESS OF DATA; R0 HAS TYPE INDICATOR ; 0 = FLOATING (REAL*4); 2 = INTEGER*2; 4 = BYTE (LOGICAL*1)T; 6 = DOUBLE (REAL*8);INUMSUB:@/ MOV (R3),R0 ;ARE WE IN RANGE FOR NUMERIC DATAF" ASH #-14,R0 ;MAKE TYPE INFO INTO$ BIC #177761,R0 ;A JUMP TABLE OFFSET, CMP R0,#6 ;ARE WE IN RANGE OF NUMBER TYPES! BHI 8$ ;IF NOT, BRANCH TO ERROR  BIT #10000,(R3) ;VIRTUAL? BNE 6$ ;IF SO, BRANCHN STCFI AC0,R2 ;OFFSET -> R2- ADD STUDAT,R2 ;MAKE IT INTO ABSOLUTE ADDRESSN 7$: RTS PC;T; VIRTUAL SECTIONF;S6$: MOV R0,-(SP) ;SAVE JUMP PTRY+ JSR PC,VIRACC ;GO ACCESS APPROPRIATE BLOCKI& ;(RETURN WITH BLOCK ADDRESS -> R0) ;(OFFSET -> R2)B BVS 8$ ;IF NO FILE, 'V' SET)# ADD R0,R2 ;MAKE R2 POINT TO VALUEE MOV (SP)+,R0 ;RESTORE JUMP PTR, BR 7$ ;AND GO FINISH LIKE REGULAR VARIABLE 8$: NXVERR6 .SBTTL STONUM - STORE A NUMBER FROM AC0 INTO VARIABLE;O ; ON ENTRY:A; R3 POINTS TO DATA ITEM HEADERH; AC0 HAS VALUEG; AC1 HAS OFFSET*; 1) FOR STANDARD VAR, OFFSET FROM STUDAT/; 2) FOR VIRTUAL ARRAY, OFFSET FROM FILE START ;= ; ON EXIT: ; R3 AS ABOVEI; AC0 AS ABOVE; AC1 AS ABOVE;; OTHER REGISTERS USED: R0, R2;@STONUM:3 MOV R5,-(SP) ;SAVE R5 MOV #1,R5 ;SET WRITE FLAG0 STF AC0,-(SP) ;SAVE VALUE, STF AC1,AC0 ;AND PUT OFFSET WHERE EXPECTED JSR PC,NUMSUB ;DO COMMON CODE# LDF (SP)+,AC0 ;GET VALUE OFF STACK# JMP @1$(R0) ;GO TO PROPER ROUTINE;1$: .WORD 2$ ;REAL*4A .WORD 3$ ;INTEGER*2A .WORD 4$ ;LOGICAL*1 (BYTE) .WORD 9$ ;REAL*82$: STF AC0,(R2) BR 8$-3$: STCFI AC0,(R2) ;CONVERT TO 1-WORD INTEGERR BR 8$)4$: STCFI AC0,R0 ;CONVERT 1ST TO INTEGERU MOVB R0,(R2) ;THEN TO BYTE8$: MOV (SP)+,R5 ;RESTORE R5 RTS PCI; "; TEMPORARY DOUBLE PRECISION STORE; 9$: STCFD AC0,(R2) BR 8$= .SBTTL GETSTR - TO RETURN STRING ELEMENT DESCRIPTOR IN R3,R4 ;E ; ON ENTRY:T; R0 IS PTR TO DATA ITEM HEADERT; AC0 HAS OFFSET*; 1) FOR STANDARD VAR, OFFSET FROM STUDAT/; 2) FOR VIRTUAL ARRAY, OFFSET FROM FILE STARTT;A ; ON EXIT:; R0, AC0 AS ABOVE; R3 HAS STRING ADDRESSE; R4 HAS STRING LENGTH#; 'V' SET IF ERROR, CLEAR OTHERWISEA;E; OTHER REGISTERS USED:T; GETSTR:  MOV R5,-(SP) ;SAVE CURRENT R5 CLR R5 ;SET READ ONLY#! JSR PC,STRADD ;GO TO COMMON CODES BIT #10000,(R0) ;VIRTUAL? BNE 8$ ;IF SO, BRANCHX TST 4(R0) ;FIXED OR VAR? BMI 1$ ;IF VAR, BRANCH MOVB 4(R0),R4 ;FIXED LEN -> R4R BR 2$'1$: MOVB -1(R3),R4 ;ACTUAL LENGTH -> R4A)2$: BIC #177400,R4 ;CLEAR ANY SIGN EXTENDA BR 5$ ;AND THAT'S IT;L; VIRTUAL STRING RETRIEVE$;$8$: MOV 10(R0),R4 ;SIZE -> R4W! BPL 5$ ;IF POSITIVE, WE'RE DONE, NEG R4 ;MAKE ABSOLUTE VALUEM MOV R4,R2 ;GET END OF STRING ADD R3,R2 ;IN R2 4$: TSTB -(R2) ;CHECK FOR FIRST BNE 5$ ;NON-NULL (BRANCH)  SOB R4,4$ ;ELSE KEEP LOOKING%5$: MOV (SP)+,R5 ;RESTORE ORIGINAL R5I RTS PC3; '; COMMON CODE FOR STRING READ AND WRITET;H ; ON ENTRY: ; R0 IS PTR TO DATA ITEM HEADERR; AC0 HAS OFFSET*; 1) FOR STANDARD VAR, OFFSET FROM STUDAT/; 2) FOR VIRTUAL ARRAY, OFFSET FROM FILE START3*; R5 HAS READ/WRITE FLAG (0=READ, 1=WRITE); ; ON EXIT:; R0,AC0,R5 AS ABOVE; R3 HAS ADDRESS OF STRING;; OTHER REGISTERS USED: R0,R2V;USTRADD: MOV (R0),-(SP) ;HEADER ON STACK$ BIC #17777,(SP) ;CL00~2TADATADATADATADATADATAEAR ALL BUT TYPE CMP #120000,(SP)+ ;IS IT STRING BNE 6$ ;IF NOT, ERRORX! BIT #10000,(R0) ;VIRTUAL STRING?H BNE 3$ ;IF SO, BRANCHE STCFI AC0,R3 ;OFFSET -> R3 ADD STUDAT,R3 ;MAKE IT ABSOLUTE 7$: RTS PC+3$: MOV R0,R3 ;GET HEADER WHERE WE NEED IT'* MOV R0,-(SP) ;AND SAVE SINCE R0 GETS USED" JSR PC,VIRACC ;GO ACCESS THE ITEM MOV R0,R3 ;BLOCK ADDRESS -> R3 ADD R2,R3 ;NOW ABS ADDRESS( MOV (SP)+,R0 ;HEADER ADDRESS BACK -> R0 BR 7$)6$: NXVERR ;THIS ERROR SHOULDN'T HAPPEN;9 .SBTTL STOSTR - STORE STRING IN MEMORY (REAL OR VIRTUAL) ;) ; ON ENTRY: ; R0 IS PTR TO DATA ITEM HEADERM; AC0 HAS OFFSET*; 1) FOR STANDARD VAR, OFFSET FROM STUDAT/; 2) FOR VIRTUAL ARRAY, OFFSET FROM FILE START ; R3 HAS STRING ADDRESSF; R4 HAS STRING LENGTH;A ; ON EXIT:; R0, AC0 AS ABOVE:; R3 HAS ADDRESS PAST END OF USED PORTION OF SOURCE STRING; R4 = 0; STOSTR: MOV R5,-(SP) ;SAVE A REGISTER& MOV R3,-(SP) ;SAVE STRING DESCRIPTORS MOV R4,-(SP), MOV #1,R5 ;SET WRITE FLAG#! JSR PC,STRADD ;GO DO COMMON CODEP& MOV R3,R2 ;DESTINATION ADDRESS -> R2 MOV (SP)+,R4 ;POP LENGTH,) MOV (SP)+,R3 ;AND ADDRESS OF DESTINATIONA& BIT #10000,(R0) ;VIRTUAL DESTINATION? BNE 4$ ;IF SO, BRANCHU MOVB 4(R0),R5 ;MAX LEN -> R5;* BIC #177400,R5 ;CLEAR OUT ANY SIGN EXTEND5 SUB R4,R5 ;R5 HAS DIFFERENCE BETWEEN MAX AND ACTUAL % BGE 1$ ;IF POS OR ZERO, OK (BRANCH) . ADD R5,R4 ;IF NEGATIVE, REDUCE ACTUAL TO MAX, CLR R5 ;AND SET ZERO DIFFERENCE (FOR FILL)'1$: MOV R0,-(SP) ;SAVE DATA ITEM HEADER $ TST 4(R0) ;CHECK FIXED OR VARIABLE BMI 2$ ;IF VARIABLE, BRANCH. MOVB #40,R0 ;IF FIXED USE SPACE AS FILL CHAR BR 3$42$: MOVB R4,-1(R2) ;STORE ACTUAL LENGTH IN ITS FIELD CLR R0 ;USE NULL AS FILL%3$: JSR PC,FILSTR ;GO FILL THE STRINGH$ MOV (SP)+,R0 ;RESTORE DATA ITEM PTR# MOV (SP)+,R5 ;AND REGISTER WE USED  RTS PCE;O; VIRTUAL STRING SECTION;=$4$: MOV R0,-(SP) ;SAVE DATA ITEM PTR' MOV 10(R0),R5 ;GET STRING LENGTH -> R5S) BPL 5$ ;IF POSITIVE THEN FIXED (BRANCH)W1 CLR R0 ;IF NEGATIVE, THEN VARIABLE => NULL FILLV NEG R5 ;MAKE LENGTH POSITIVE BR 6$05$: MOV #40,R0 ;USE SPACE FILL FOR FIXED LENGTH'6$: SUB R4,R5 ;LENGTH DIFFERENCE -> R5A$ BGE 3$ ;IF POSITIVE, WE'RE SET NOW' ADD R5,R4 ;IF NEG, MAKE LEN = MAX LEN# CLR R5 ;AND NO FILLY% BR 3$ ;AND GO FINISH FILL OPERATIONR;E; FILSTR; TO FILL IN A STRING VARIABLE; ; ON ENTRY:N; R3 HAS ADDRESS OF SOURCE; R4 HAS LEN OF SOURCE; R2 HAS ADDRESS OF VARIABLE; R5 HAS FILL COUNT ; R0 HAS FILL CHAR; ; ON EXIT:; R4 = 0; R5 = 0(; R3 HAS ADDRESS PAST END OF USED SOURCE,; R2 HAS ADDRESS PAST END OF FILLED VARIABLE; R0 HAS FILL CHAR; -FILSTR: TST R4 ;DO WE HAVE AN ACTUAL STRING?D BEQ 2$ ;IF NOT, BRANCH/1$: MOVB (R3)+,(R2)+ ;MOVE IN THE ACTUAL STRING( SOB R4,1$ ;E'2$: TST R5 ;DO WE HAVE ANY FILL TO DO?E BEQ 4$ ;IF NOT, BRANCH.3$: MOVB R0,(R2)+ ;MOVE IN THE FILL CHARACTERS SOB R5,3$ 4$: RTS PC7 .SBTTL NEWVAR - TO CREATE A SIMPLE VARIABLE OF R0 TYPEV;H ; ON ENTRY:N; R0 HAS TYPE INDICATORV ; 0 = REAL*4E; 2 = INTEGER ; 4 = BYTEE ; 6 = REAL*8E ; 10= STRINGO; R4 HAS VARIABLE HEADER; LOWER 12 BITS HAVE VAR. NAME;; TOP 3 BITS ARE DATA TYPEE; ; ON EXIT:; R0 AND R4 AS ABOVE; R3 POINTS TO DATA ITEM HEADERE; ENUDAT UPDATED;F; OTHER REGISTERS USED: R5;LNEWVAR:O MOV R4,-(SP) ;SAVE HEADER ASR R0 ;DIVIDE INDEX BY TWOE MOV R0,-(SP) ;AND SAVE IT% MOVB 10$(R0),R0 ;GET ITEM SIZE -> R0S TSTOK ;CHECK FOR ROOM BLO 12$ ;IF NOT ENOUGH, ERRORH# MOV (SP)+,R0 ;RESTORE JUMP POINTER0 MOV (SP),R4 ;AND HEADER ' MOV R5,R3 ;COPY DATA ITEM START -> R3  MOV R4,(R5)+ ;PUT IN HEADER CLR (R5)+ ;SET ZERO DIMENSIONS CMP R0,#4 ;STRING? BNE 1$ ;IF NOT, BRANCH8 MOV #177417,(R5)+ ;IF SO, SET VAR LENGTH 15 BYTE STRING21$: MOVB 11$(R0),R4 ;GET WORD COUNT TO CLEAR -> R42$: CLR (R5)+ ;AND  SOB R4,2$ ;CLEAR SPACE$ MOV R5,ENUDAT ;SAVE NEW END OF DATA" MOV (SP)+,R4 ;RESTORE DATA HEADER ASL R0 ;AND TYPE INDEX RTS PCV 12$: OVFERRT:10$: .BYTE 10,6,6,14,26 ;REAL*00$VW4,INTEGER,BYTE,REAL*8,STRING11$: .BYTE 2,1,1,4,10 ; " " .EVEN N .SBTTL LET00 - LET STATEMENT ;+3R; .SKIPH ; .X ^^LET\\; .X ^ARITHMETIC ASSIGNMENTE; .HEADERLEVEL 1 __[___...]O; \\; .BRM; ^WHERE EXPRESSIONS ARE EITHER ARITHMETIC OR STRING AND RELATIONAL OPERATORSI2; CAN BE FORMED BY ANY COMBINATION OF _<, > AND =.K; ^THE TWO EXPRESSIONS WHICH ARE RELATED BY THE RELATIONAL OPERATOR MUST BEG.; OF THE SAME TYPE: I.E. STRING OR ARITHMETIC.C; ^THE RESULT OF EVALUATING THE RELATIONSHIP (TERMED HERE A LOGICAL(); SUBEXPRESSION) IS EITHER TRUE OR FALSE.,; .FG 1TK; ^STRINGS ARE COMPARED CHARACTER BY CHARACTER ON THE BASIS OF THEIR = 5)} ; \\; .F;-;EA; THIS CODE EVALUATES A COMPOUND CONDITION, ALLOWING FOUR LOGICAL ; OPERATORS: NOT, AND, XOR, OR.H;C ; ON ENTRY:T&; R1 POINTS TO START OF CONDITION TEXT ; ON EXIT: ; R1 POINTS TO NEXT CHAR OF TEXT'; R0 HAS CONDITION -1 = TRUE, 0 = FALSES; 'N' SET IF TRUED; 'Z' SET IF FALSE;E(EVALC0: CLR -(SP) ;SET STOPPER ON STACK1$: SKIP ;FIRST 00,~2TADATADATADATADATADATACHAR -> R2& BIC #177400,R2 ;CLEAR ANY SIGN EXTEND CMPB R2,#'( ;OPEN PAREN? BEQ 12$ ;IF SO, BRANCH& CMPB R2,#S.NOT ;IS IT A LEADING 'NOT' BNE 2$ ;IF NOT, BRANCH MOV R2,-(SP) ;IF SO, SAVE ITE BR 1$ ;AND GO BACK FOR MOREN!2$: DEC R1 ;BACK UP TEXT POINTER:, JSR PC,SNGLCN ;GO EVALUATE SINGLE CONDITION%8$: MOV (SP)+,R3 ;SEE WHAT'S ON STACKO BEQ 11$ ;IF ZERO, BRANCH, SUB #S.NOT,R3 ;ANYTHING ELSE IS AN OPERATOR% ASL R3 ;MAKE IT INTO A TABLE OFFSETN, JMP @3$(R3) ;AND GO TO APPROPRIATE ROUTINE3$: .WORD 4$ ;NOT .WORD 5$ ;ANDT .WORD 6$ ;XORE .WORD 7$ ;OR.4$: COM R0 ;COMPLEMENT THE EXISTING CONDITION* BR 8$ ;AND SEE IF ANYTHING MORE ON STACK'5$: MOV (SP)+,R2 ;PRIOR CONDITION -> R2I COM R2 ;HAVE TO FUSS TO GETN BIC R2,R0 ;LOGICAL AND BR 9$ ;NOW SEE WHAT'S NEXT+6$: MOV (SP)+,R2 ;GET PRIOR CONDITION -> R2 1 XOR R2,R0 ;WE HAVE INSTRUCTION FOR EXCLUSIVE OR  BR 9$67$: BIS (SP)+,R0 ;THIS IS THE INSTRUCTION FOR INCL. OR9$: SKIP ;GET NEXT CHAR -> R2& BIC #177400,R2 ;CLEAR ANY SIGN EXTEND& CMPB R2,#S.AND ;SEE IF WE HAVE BINARY BLO 10$ ;LOGICAL OPERATORI CMPB R2,#S.OR& BHI 10$ ;IF NOT, AT END OF CONDITION+ MOV R0,-(SP) ;IF SO, PUT CURRENT CONDITION $ MOV R2,-(SP) ;AND OPERATOR ON STACK$ BR 1$ ;AND EVALUATE NEXT CONDITION"10$: DEC R1 ;BACK UP TEXT POINTER# TST (SP)+ ;POP STOPPER FROM STACKT TST R0 ;SET CONDITION CODESO RTS PC ;AND RETURN11$: CLR -(SP) ;RESET STOPPER( BR 9$ ;AND GO LOOK FOR BINARY OPERATOR112$: JSR PC,EVALC0 ;CALL THIS ROUTINE RECURSIVELYW SKIP ;NEXT CHAR -> R2! CMPB R2,#') ;IS IT CLOSE PAREN?; BEQ 8$ ;IF SO, BRANCHN PARERRS-S.LT =1 ;DEFINE BITS FOR RELATIONAL OPERATORSRS.EQ =2KS.GT =4 SNGLCN: EVALS ;IF STRING OKI BVC 1$ ;GO DO STRING COMPARE EVALR BVC 10$ ;IF NO PAREN, BRANCH$ PARERR ;CLOSE PAREN HERE IS ERROR"10$: STF AC0,-(SP) ;SAVE THE VALUE) CLR -(SP) ;SPACE TO SET TRUE CONDITIONSB& JSR PC,OPSET ;SET THE TRUE CONDITIONS EVAL ;GET SECOND ARG -> AC0$ BVC 12$ ;IF NO CLOSE PAREN, BRANCH! DEC R1 ;IF ONE, BACK UP OVER IT##12$: MOV (SP)+,R0 ;CONDITIONS IN R0$" CMPF (SP)+,AC0 ;DO ACTUAL COMPARE! CFCC ;COPY THE CONDITION CODESI BR 6$ ;GO FINISH1$: MOV R4,-(SP) ;SAVE LEN AND& MOV R3,-(SP) ;ADDRESS OF FIRST STRING' MOV ENUDAT,-(SP) ;SAVE OLD STORAGE ENDD* CLR -(SP) ;SAVE SLOT FOR TRUE CONDITIONS MOV R3,R5 ;SET NEW END OFR ADD R4,R5 ;USER STORAGE PAST INC R5 ;FIRST STRING BIC #1,R5 MOV R5,ENUDAT% JSR PC,OPSET ;SET TRUE REL OPERATORS2 EVALS ;GET SECOND STRINGO BVS IF99 ;ON ERROR, BRANCH# MOV (SP)+,R0 ;GET TRUE CODES IN R0C2 MOV (SP)+,ENUDAT ;RESTORE OLD END OF USER STORAGE' MOV (SP)+,R2 ;1ST STRING ADDRESS -> R2R MOV (SP)+,R5 ;ITS LEN -> R50 CLR -(SP) ;PUT LENGTH RELATIONAL FLAG ON STACK& CMP R5,R4 ;COMPARE 1ST LEN TO SECOND( BEQ 2$ ;IF SAME, DON'T DO ANYTHING YET1 BLT 3$ ;IF LESS, GO SET NEG & NEW COMPARE COUNT  INC (SP) ;IF GT, SET POS, BR 2$ ;AND KEEP PRESENT COMPARE COUNT (R4) 3$: DEC (SP) MOV R5,R4 ;MIN LENGTH IN R4O$2$: MOV (SP)+,R5 ;LEN RELATION IN R5 TST R4 ;CHECK LENGTH( BLE 5$ ;IF NEG OR ZERO, GO BY LEN ONLY&4$: CMPB (R2)+,(R3)+ ;CHECK EACH CHAR.( BNE 6$ ;IF DON'T MATCH, END OF COMPARE SOB R4,4$ ;KEEP COMPARINGA)5$: TST R5 ;IF FINISHED CHECK, GO ON LEN,6$: BLT 7$ ;GO TO APPROPRIATE TEST FOR TRUE BEQ 8$ ;CONDITIONS BIT #S.GT,R0 ;IS > TRUE BR 9$7$: BIT #S.LT,R0 ;IS < TRUEE BR 9$8$: BIT #S.EQ,R0 ;IS = TRUEG9$: BEQ 11$ ;IF FALSE, BRANCH MOV #-1,R0 ;SET TRUE CONDITION RTS PCS!11$: CLR R0 ;SET FALSE CONDITION; RTS PC  N .SBTTL IF00 - IF STATEMENTO;+3N; .SKIPV ; .X ^^IF\\ ; .X ^STRING COMPARISONS; .HEADERLEVEL 1 ; ^FORMAT:H; ^^IF _ THEN _[ELSE _][ELSE _]0; IF _ THEN _ " "1; IF _ GOTO _\\ " "G; .FILL F; ^IF THE LOGICAL EXPRESSION IS TRUE (SEE ^LOGICAL ^EXPRESSIONS), THENO; THE LINE NUMBER FOLLOWING THE ; ^THIS IMPLEMENTATION OF B THEN STOP}_%; {20 IF A$ _<> B$ GOTO 110 ELSE 500} >; {30 IF A >= 12.5 THEN 160 ELSE PRINT "A _< 12.5" : GOTO 300}; \\; .FILLI;-; REGISTERS USED - ALL.L;C'IF00: JSR PC,EVALC0 ;EVALUATE CONDITION  BNE IF15 ;IF TRUE, BRANCHI# MOV #1,R0 ;ACCOUNT FOR CURRENT IFO 1$: MOVB (R1)+,R2 ;GET NEXT CHAR CMPB R2,#S.IF ;IS IT IF?T) BLO 1$ ;IF LESS, NOT INTERESTING AT ALLE BNE 2$ ;IF NOT SAME, BRANCHF INC R0 ;IF SO, COUNT IT " BR 1$ ;AND KEEP LOOKING FOR ELSE*2$: CMPB R2,#S.EOS1 ;END OF ANY STATEMENT? BLO 3$ ;IF NOT, BRANCH& CMPB R2,#S.EOL2 ;END OF LOGICAL LINE? BEQ 4$ ;IF SO, BRANCHD5 INC STCOUN ;KEEP TRACK OF STATEMENTS FOR GOSUB ETC. BR 1$4$: DEC R1 ;ELSE BACK UP  JMP INIT02 ;AND GIVE UPH(3$: CMPB R2,#S.ELSE ;DO WE HAVE AN ELSE? BNE 1$ ;IF NOT, KEEP LOOKING, INC STCOUN ;ESLE'S COUNT AS NEW STATEMENT!# DEC R0 ;ALSO, COUNT DOWN THE IF'SI# BNE 1$ ;IF NOT ZERO, KEEP LOOKINGS" BR IF01 ;IF THIS IS IT, GO TO ITREM00:) MOV LINEHD,R5 ;CURRENT LINE HEADER -> R5F$ MOV R1,-(SP) ;SAVE CURRENT TEXT PTR) MOV 2(R5),R1 ;START OF LINE OFFSET -> R1E+ ADD USR,R1 ;ADD IN OFFSET OF PROGRAM TEXT\ CLR R0 ;CLEAR FLAG4 SKIP ;GET FIRST SIGNIFICANT THING IN CURRENT LINE MOV R1,R3 ;SAVE POSITION IN R3- MOV (SP)+,R1 ;AND GET BACK OUR REAL POSITION$ CMP R3,R1 ;DO THE TWO MATCH?6 BNE 2$ ;IF NOT, BRANCH (WE ARE NOT AT START OF LINE)5 INC R0 ;IF MATCH, SET FLAG THAT THIS IS FIRST THING 52$: CMPB (R1)+,#S.EOL1 ;LOOK FOR END OF PHYSICAL LINE BLO 2$R- BNE 1$ ;IF NOT END OF PHYSICAL LINE, BRANCHN' MOVB #S.EOS1,R2 ;FAKE END OF STATEMENTC" TST R0 ;WERE WE AT START OF LINE BEQ 3$ ;IF NOT, BRANCH, DEC STCOUN ;IF SO, BACK US OFF TO ZERO NOW% ;SO RETURN AND NEXT WORK PROPERLYI43$: JMP INIT03 ;AND JUMP INTO MIDDLE OF INTERPRETER1$: DEC R1 ;BACK UP# JMP INIT02 ;AND DO THINGS REGULARE;+3T; .SL ; .X ^^REM\\; .X !; .SLE; .HEADERLEVEL 1 ;RELATIONAL OPERATORS  BEQ 3$B! DEC R1 ;IF NOT, BACK UP POINTERM, TST 2(SP) ;CHECK FOR AT LEAST ONE OPERATOR BNE 4$ ;IF SO, RETURNR OPRERR ;ELSE ERROR 4$: RTS PC$1$: BIS #S.LT,2(SP) ;SET APPROPRIATE BR OPSETT&2$: BIS #S.EQ,2(SP) ;OPERATOR FLAG BIT BR OPSETE!3$: BIS #S.GT,2(SP) ;ON THE STACK BR OPSETA00<~2TADATADATADATADATADATA E .SBTTL PR00 - PRINT STATEMENT;+6T; .SKIP ; .X ^^PRINT\\; .X ^BINARY OUTPUTD; .X ^RANDOM ACCESS ^I/^O}; .HEADERLEVEL 1 ; ^WHERE ^N IS AN OPTIONAL FILE NUMBER AND ^V1, ^V2, ^V3, ETC.-; ARE ANY LEGAL NUMERIC OR STRING EXPRESSION.HE; ^IN THE SECOND FORM ^R IS A RANDOM ACCESS RECORD NUMBER EXPRESSION.I>; ^IT MAY HAVE ANY VALUE UP TO THE MAXIMUM ALLOWED IN A DOUBLE; PRECISION SIGNED INTEGER.F2; ^FLOATING POINT VALUES ARE TRUNCATED BEFORE USE.>; ^THE FILE ^N MUST HAVE BEEN OPENED FOR RANDOM ACCESS VIA THE+; ^^/RN\\ SWITCH IN THE ^^OPEN\\ STATEMENT.B; .SL@; ^WHEN EXPRESSIONS ARE SEPARATED BY COMMAS, RESULTS ARE PRINTED"; IN FIELDS OF 14 CHARACTERS EACH.D; ^WHEN EXPRESSIONS ARE SEPARATED BY SEMICOLONS, RESULTS ARE PRINTED.; NEXT TO EACH OTHER WITHOUT ANY SPACES ADDED.5; ^A TRAILING SEMICOLON WILL SUPPRESS ^^__\\.TE; ^WHEN PRINTING WITH COMMA SEPARATION, AS MANY FIELDS ARE ALLOWED AS !; CAN FIT ON THE PRINTING DEVICE.D; ^NOTE THAT NUMERIC VALUES, WHEN CONVERTED IN A ^^PRINT\\ STATEMENT$; NORMALLY HAVE A SPACE AT EACH END.,; ^TO AVOID THIS, USE THE ^^STR$\\ FUNCTION.; .SKIP@F; ^ON BINARY FILES, THE FOLLOWING CONDITIONS HOLD: ^^TAB\\ IS IGNORED,H; NO "FIELD" JUSTIFICATION IS PERFORMED AND ALL DATA LIST ITEMS MUST FIT; INTO THE EXISTING BUFFER.DE; ^FLOATING VALUES ARE STORED AS FOUR CONSECUTIVE BYTES WHICH ARE NOTE; WORD ALIGNED.IH; ^STRINGS AND NUMERIC VALUES ARE PACKED TOGETHER AND MAY BE COMBINED IN ; ANY ORDER.I; ^IT IS UP TO THE USER TO KEEP TRACK OF THE INTERNAL STORAGE ARRANGEMENTR@; FOR FUTURE USE WITH ^^INPUT\\ OR OTHER NON-^^BASIC\\ PROGRAMS.; .SLEH; ^A SYNONYM FOR ^^PRINT\\ IS "?" PRIMARILY FOR CONVENIENCE IN IMMEDIATE ; MODE USE.R; .SL ; ^EXAMPLE: ; .NOFILLN; ^^; {50 PRINT A,3.5,"HELLO";A$}H; {60 PRINT _#3,EXP(.5);X^Y;}.; \\; .FILL ;-;+5 ; .SKIPR ; .X ^^TAB\\; .X ^PRINT TAB FUNCTION; .HEADERLEVEL 1 R3! MOV 14(R3),R3 ;FDB POINTER -> R3;) CMP R3,#OUTQIO ;IS THIS TERMINAL OUTPUT?+ BEQ 2$ ;IF SO, IT'S ASCII NO MATTER WHAT! , BITB #FD.CR!FD.FTN,F.RATT(R3) ;IF CARR CNTL" BNE 2$ ;BRANCH (NOT BINARY FILE) BIS #2,LINEFL ;SET BINARY BIT-2$: CLR -(SP) ;A SWITCH TO FORCE A DELIMITER 9PR01: MOV #34,R0 ;MAKE SURE THIS MAY BYTES ARE AVAILABLEI TSTOK ;AND FIND OUT FOR SURE! BLO PR02 ;JUMP IF NOT AVAILABLET SKIP ;GET THE NEXT CHARACTERE* CMPB R2,#', ;CHECK FOR A VALID DELIMITER BEQ PR04 ;IS IT A COMMA? CMPB R2,#'; BEQ PR09 ;IS IT A SEMI-COLON? ) JSR PC,EOSCHK ;IS THIS END OF STATEMENT?U# BEQ PR13 ;IF SO, GO TO FINAL CODEN TST (SP) ;IT'S NOT A DELIMITER+ BLT PR11 ;IF NEGATIVE THEN WE WANTED ONE!E0 DEC R1 ;BACK UP TO THE START OF THE EXPRESSION! MOV R1,R3 ;SET UP FOR TAB CHECKE MOV #ASCTAB,R2L MOV #4,R4 JSR PC,STRCMP BEQ PR03 ;IF TAB, PROCESS IT# EVALS ;TRY FOR STRING EXPRESSIONO) BVC PR15 ;BR IF VALID STRING EXPRESSION  EVAL ;GO FIND THE VALUE BVS PR11 ;OVERFLOW IS AN ERROR TST LINEFL ;BINARY?P BEQ 1$ ;IF NOT, BRANCH MOV OTPT,R3 ;FCB POINTER -> R3# MOV 2(R3),R2 ;MAX BYTE COUNT -> R2R S00DVWUB 6(R3),R2 ;#BYTES LEFT -> R2 CMP R2,#4 ;ENOUGH? BGE 2$ ;IF YES, BRANCH7 PRNERR ;(REPLACE WITH MORE SPECIFIC ERROR IN FUTURE)E,2$: STF AC0,-(SP) ;GET 4 BYTE VALUE ON STACK# MOV SP,R0 ;R0 IS POINTER TO VALUE MOV #4,R2' ADD R2,6(R3) ;ADJUST ACTUAL BYTE COUNTT ADD R2,SP ;RESET THE STACK' MOV (R3),R4 ;CURRENT BUFFER PTR -> R4L$3$: MOVB (R0)+,(R4)+ ;PUT VALUE AWAY SOB R2,3$" MOV R4,(R3) ;SAVE BUFFER POINTER BR PR17'1$: MOV R1,-(SP) ;SAVE THE TEXT POINTER  JSR PC,FTOA002 MOV SP,R0 ;THE OUTPUT AREA WAS LEFT ON THE STACK PRINTLN$ ADD #24,SP ;REMOVE THE OUTPUT AREA,PR10: MOV (SP)+,R1 ;RESTORE THE TEXT POINTER%PR17: MOV #-1,(SP) ;FORCE A DELIMITERS PR12: BR PR01#PR04: TST LINEFL ;BINARY?% BNE PR09 ;IF SO, SKIP JUSTIFICATION * MOV OTPT,R2 ;CONTROL BLOCK POINTER IN R2& MOV 6(R2),R0 ;ACTUAL BYTE COUNT IN R0# MOV 2(R2),R2 ;MAX BYTE COUNT IN R2N) SUB #14,R2 ;SUBTRACT LENGTH OF ONE ZONEF$ CMP R0,R2 ;ENOUGH ROOM TO JUSTIFY? BLT 1$ ;IF SO GO DO IT JSR PC,PR18 ;PUT OUT THE LINER, BR PR05 ;ACT AS THOUGH WE HAD A TERMINATOR*1$: CMP OTPT,#TOTPT ;IS THIS THE TERMINAL?/ BNE PR05 ;IF NOT DON'T ACCOUNT FOR CARR CONT.,+ DEC R0 ;ACCOUNT FOR FORTRAN CARR. CONTROL )PR05: NEG R0 ;CALCULATE THE MOD 14 COUNTR/PR06: BGT PR07 ;ADD 14 UNTIL A POSITIVE RESULTR ADD #14.,R0 ;ADD AND GO AGAINR BR PR06"PR07: MOVB #040,R2 ;OUTPUT SPACES PR08: PRINTC& DEC R0 ;DECREMENT THE MOD 14 COUNTER BGT PR08 ;LOOP IF MORE TO DO.PR09: MOV #1,(SP) ;SET DELIMITER FOUND SWITCH BR PR01!PR11: PRNERR ;ISSUE FATAL ERRORK.PR13: TST (SP)+ ;CHECK FOR TRAILING DELIMITER' BGT PR14 ;NEGATIVE OR ZERO MEANS CRLFI JSR PC,PR18(PR14: DEC R1 ;BACK UP TO THE TERMINATOR CLR LINEFL ;CLEAN UP FLAGS% JMP INIT02 ;BACK TO THE INTERPRETERO)PR02: OVFERR ;STORAGE OVERFLOW IN PRINT "PR15: TST R4 ;CHECK STRING LENGTH BEQ PR17 ;IGNORE IF NULL TST LINEFL ;BINARY OUTPUT? BEQ PR16 ;IF NOT, SKIP TEST MOV OTPT,R0 ;FCB ADD -> R0# MOV 2(R0),R2 ;MAX BYTE COUNT -> R2R SUB 6(R0),R2 ;BYTES LEFT -> R2  CMP R4,R2 ;ENOUGH ROOM?  BGT PR11 ;IF NOT, ERROR##PR16: MOVB (R3)+,R2 ;GET CHAR IN R20 PRINTC ;PRINT ITU# SOB R4,PR16 ;KEEP GOING TILL DONE  CLR (SP) ;SET NO DELIMITER BR PR12 ;AND CONTINUEE%PR03: MOV R3,R1 ;UPDATE TEXT POINTER  EVAL ;GET TAB NUMBER BVC PR11 ;MUST END WITH ')'R TST LINEFL ;IF BINARY, SKIP BNE PR17 ;REST OF TAB NONSENSE MOV R1,-(SP) ;SAVE TEXT POINTER* MOV OTPT,R2 ;CONTROL BLOCK POINTER -> R2! MOV 6(R2),R0 ;ACTUAL COUNT IN R0H!5$: MOV 2(R2),R2 ;MAX COUNT IN R2  STCFI AC0,R4 ;TAB COUNT IN R4H- DEC R4 ;WANT TO END JUST BEFORE DESIRED COLE#2$: CMP R4,R2 ;GET COLUMN IN RANGER BLT 1$ ;BY SUBTRACTING MODULON SUB R2,R4 ;OUTPUT WIDTHP BR 2$*1$: CMP R4,R0 ;RELATIVE TO OUTPUT POINTER BLE 3$ ;WHERE ARE WE?L" SUB R0,R4 ;GET SPACE COUNT IN R4+ MOVB #40,R2 ;CHAR TO OUTPUT IN R2 (SPACE)T 4$: PRINTC SOB R4,4$3$: BR PR10 ;GO FINISH UP'PR18: TSTB WPASFL ;WRITE PASS ALL SET?2 BEQ 1$ ;IF NOT, BRANCH> MOV #IO.WVB!TF.WAL,OUTQIO+Q.IOFN ;SET WRITE PASS ALL FCN CODE* CLRB OUTQIO+Q.IOPL+4 ;SET NO CARR CONTROL1$: CRLF RTS PCN 0) .SBTTL INP00 - INPUT STATEMENT PROCESSOR ;+6 ; .TP 6 ; .SKIPP; .X ^^INPUT\\; .X ^BINARY INPUT; .X ^RANDOM ACCESS ^I/^O ; .HEADERLEVEL 1 ; ^INSUFFICIENT DATA IS AN ERROR WITH THE FOLLOWING EXCEPTION:@; A VARIABLE LENGTH STRING WILL HAVE ITS LENGTH SHORTENED TO THE<; AVAILABLE DATA IF DATA RUNS OUT, AND A FIXED LENGTH STRING; WILL BE BLANK FILLED. A; ^IF DATA RUNS OUT WHILE FILLING A NUMERIC VARIABLE, THE RESULTSTH; ARE UNPREDICTABLE AND IN ANY CASE TERMINATE THE PROGRAM WITH AN ERROR.; .BREAK ; ^EXAMPLE: ; .NOFILLI; ^^; {30 INPUT _#3,A1,B1$} ; {50 INPUT _#4@R+5,X1,X2,A1$}9; {80 INPUT "WHAT IS YOUR NAME",N$ : ! READ NAME INTO N$}A; \\; .FILL;-;+6P; .SKIPH; .X ^^INPUT LINE\\U; .HEADERLEVEL 1 R3, BIT #4000,-2(R3) ;IS BINARY CONTROL BIT SET BEQ 2$ ;IF NOT, SKIP FLAG SET  BIS #2,LINEFL ;SET BINARY BIT2$:U JSR PC,COM00 ;GET VARIABLET BVC INP02 ;IT IS OKB 3$: MOV R0,-(SP) ;FRB SAVE A REG, MOV OTPT,R0 ;PUT CNTRL BLOCK ADDRESS IN R0' CRLF ;FORCE OUT PROMPT IF STILL HUNGT MOV (SP)+,R0 ;RESTORE A REG INPERR ;ISSUE FATAL ERRORINP02:$ MOV R1,-(SP) ;SAVE THE TEXT POINTER0INP10: CMP #TINPT,INPT ;IS THIS TERMINAL INPUT?? BNE INP07 ;SKIP PROMPT IF NOT TSTB PRMTFL ;PROMPT MODE SET?L BEQ INP07 ;IF NOT, BRANCHF% MOV #'?,R2 ;TELL HIM TO GET WITH ITA PRINTCPAINP07: BIS #LOWNOC,LOWFLG ;SHOW NO CONVERSION OF LOWER CASE ALPHAE PACK ;GET A LINEE BIC #LOWNOC,LOWFLG ;RESET FLAGK* JSR PC,FILL00 ;TRY TO SATISFY THE REQUEST! BVS INP06 ;OVERFLOW IS BAD DATAR! BGT INP04 ;TOO MUCH INPUT TYPEDT# BLT INP05 ;NOT ENOUGH INPUT TYPEDD' MOV (SP)+,R1 ;RECOVER THE TEST ADDRESS$' MOV (SP)+,R5 ;INPUT LIST POINTER -> R5+ MOV R5,SP ;THIS IS WHERE STACK USED TO BE, ADD #2,SP ;(ALMOST)T# DEC R1 ;BACK UP CHARACTER POINTERS" CLR LINEFL ;BACK TO NORMAL INPUT$ TST RUNF ;CHECK FOR IMMEDIATE MODE, BNE INP03 ;OMIT THIS LITTLE BIT IF RUNNING MOVB #S.EOL2,(R1)INP03: JMP INIT02R"INP04: IN1ERR ;HE TYPED TOO MUCH BR INP10 ;TRY AGAINR&INP05: IN2ERR ;HE DIDN'T TYPE ENOUGH BR INP10 ;TRY AGAINP%INP06: IN3ERR ;HE IS A LOUSY TYPISTR BR 00TVWINP10 ;TRY AGAINP;T$; STRCMP - STRING COMPARISON ROUTINE ; ON CALL:%; R3 CONTAINS ADDRESS OF FIRST STRINGT&; R2 CONTAINS ADDRESS OF SECOND STRING ; R4 CONTAINS LEN FOR COMPARISONSTRCMP: TST R4 ;IS LEN ZERO?I BEQ 3$ ;IF SO, DONEC'4$: CMPB (R3)+,(R2)+ ;CHARACTERS EQUAL? " BNE 3$ ;IF NOT, RETURN AS FAILED! SOB R4,4$ ;KEEP GOING TILL DONE, 3$: RTS PC S1 .SBTTL FILL00 - COMMON DATA ELEMENT FILL ROUTINET; ; ON ENTRY:T; R1 POINTS TO START OF DATA4; LINELN HAS LENGTH OF DATA FOR BINARY OR INPUT LINE?; STACK AS ON EXIT FROM COM00 PLUS TEXT PTR AND SUBROUTINE LINKR;P ; ON EXIT:8; R1 POINTS PAST END OF DATA USED (TO EOL CHAR IF ASCII)5; LINELN = REMAINING CHAR COUNT (USUALLY 0) ON BINARYL#; 'V' SET ON BAD DATA (ASCII ONLY)T(; BGT TRUE IF TOO MUCH DATA (ASCII ONLY)8; BLT TRUE IF NOT ENOUGH DATA (ASCII AND BINARY NUMERIC);IG; NOTE: CONDITION CODES ONLY RELEVANT FOR ASCII DATA AND BINARY NUMERICI;T2; OTHER REGISTERS USED: R0 THROUGH R5, AC0 AND AC1;HFILL00:U* MOV 4(SP),R5 ;START OF LIST ADDRESS -> R5FILL01:R3$:O! JSR PC,FILL1 ;DO INDIVIDUAL ITEMC BVS 99$ ;ON ERROR BRANCH) BLT 99$ ;ALSO BRANCH IF NOT ENOUGH DATAG SUB #10,R5 ;POINT TO NEXT ITEM TST (R5) ;ANOTHER ITEM?E BEQ 4$ ;IF NOT, BRANCH) TST LINEFL ;DOING BINARY OR INPUT LINE?  BNE 2$ ;IF SO, BRANCHN( CMPB (R1),#', ;DO WE HAVE NEEDED COMMA? BEQ 1$ ;IF SO, BRANCHB CMPB (R1),#S.EOL2 ;AT END?E! BNE 3$ ;IF NOT, GO AROUND AGAIN'5$: CCC ;ELSE SET LESS THAN CONDITIONS SEN BR 99$ ;AND EXIT!1$: INC R1 ;PUSH PAST TERMINATORF BR 3$ ;AND GO AROUND AGAIN2$: TST LINELN ;ANYTHING LEFT? BNE 3$ ;IF SO, GO AROUND AGAIN0 BR 5$ ;ELSE GO SET LESS THAN (NOT ENOUGH DATA); $; COME HERE IF NO MORE ITEMS TO FILL;D,4$: TST LINEFL ;DOING BINARY OR INPUT LINE?' BNE 98$ ;IF SO, BRANCH (EXCESS IS OK)D# CMPB (R1),#S.EOL2 ;AT END OF LINE? + BEQ 98$ ;IF SO, BRANCH TO SUCCESSFUL EXIT 3 CCC ;SETS GREATER THAN CONDITION (TOO MUCH DATA) -99$: RTS PC ;RETURN WITH ERROR CONDITION SET498$: CLR R0 ;SET 'Z' (SUCCESS)  RTS PC1; ; INDIVIDUAL ITEM FILL PROCESSOR;E ; ON ENTRY: .; R5 POINTS TO 4 WORD ITEM DESCRIPTOR ON STACK&; R1 HAS START OF TEXT WITH INPUT INFO;T ; ON EXIT: ; R5 AS ABOVEM(; R1 POINTS PAST END OF THIS ITEM'S TEXT;O; OTHER REGISTERS USED: ;BFILL1:# CMP -2(R5),#10 ;DO WE HAVE STRING?  BEQ 20$ ;IF SO, BRANCH* TST LINEFL ;STRAIGHT FILL OR CONVERSION?& BNE 1$ ;IF STRAIGHT (BINARY), BRANCH ATOF ;ELSE CONVERT NUMBER BVS 99$ ;ON ERROR, BRANCH;) SKIP ;SKIP OVER ANY TERMINATING BLANKSF& DEC R1 ;AND POINT TO FIRST NON-BLANK BR 8$ ;GO TO STORE CODEB$1$: BIT #1,LINEFL ;DOING INPUT LINE? BNE 98$ ;IF SO, ERROR( MOV -2(R5),R0 ;DATA TYPE -> R0  ASR R0 ;DIVIDE BY TWO/ MOVB 10$(R0),R2 ;# OF STACK BYTES NEEDED -> R2) SUB R2,SP ;GET US THE ROOM ON THE STACKC, MOVB 11$(R0),R2 ;GET # BYTES FOR XFER -> R2" SUB R2,LINELN ;ADJUST LINE LENGTH% BLT 9$ ;IF NOT ENOUGH INPUT, BRANCHO# MOV SP,R3 ;ADDRESS FOR XFER -> R3T!2$: MOVB (R1)+,(R3)+ ;TRANSFER IN  SOB R2,2$ ;BINARY INFO ASL R0 ;BACK TO ORIGINAL VALUE$ JMP @3$(R0) ;AND GO TO PROPER CODE3$: .WORD 4$ ;REAL*4 .WORD 5$ ;INTEGER .WORD 6$ ;BYTET .WORD 7$ ;REAL*8T$4$: LDF (SP)+,AC0 ;REAL VALUE -> AC0 BR 8$ ;GO TO FINISHE#5$: LDCIF (SP)+,AC0 ;INTEGER -> AC0  BR 8$ ;GO TO FINISH5*6$: MOVB (SP),R2 ;INTEGER VALUE FROM BYTE TST (SP)+ ;CLEAN STACK" LDCIF R2,AC0 ;AND INTEGER -> AC0 BR 8$ ;GO TO FINISH /7$: LDCDF (SP)+,AC0 ;CONVERT DOUBLE TO FLOATINGO(8$: MOV (R5),R3 ;DATA ITEM HEADER -> R3 LDF -6(R5),AC1 ;OFFSET -> AC1 JSR PC,STONUM ;STORE NUMBER RTS PC ;AND RETURN9$: ADD R2,SP ;CLEAN STACKI+ RTS PC ;AND RETURN WITHOUT CHANGING VALUE(-10$: .BYTE 4,2,2,10 ;# BYTES NEEDED FOR STACKW,11$: .BYTE 4,2,1,10 ;# BYTES NEEDED FOR XFER;R; STRING SECTION;U20$:% MOV (R5),R0 ;DATA ITEM HEADER -> R0E BIT #10000,(R0) ;VIRTUAL? BNE 22$ ;IF SO, BRANCH MOVB 4(R0),R4 ;LENGTH -> R4& BIC #177400,R4 ;CLEAR ANY SIGN EXTEND$ TST 4(R0) ;IS THIS VARIABLE LENGTH BGE00\~2TADATADATADATADATADATA 21$ ;IF NOT, BRANCHB8 NEG R4 ;IF SO, MAKE IT NEGATIVE FOR FURTHER PROCESSING(21$: BR 23$ ;BRANCH AROUND VIRTUAL CODE122$: MOV 10(R0),R4 ;GET VIRTUAL ITEM LENGTH -> R47*23$: MOV R1,R3 ;SET START OF STRING -> R3# TST LINEFL ;INPUT LINE OR BINARY?I BNE 30$ ;IF SO, BRANCH ;ELSE REGULAR ASCII INPUT  TST R4 ;FIXED OR VAR?L BPL 26$ ;IF FIXED, BRANCHE;S; ASCII INPUT, VARIABLE LENGTH;>' CLR R4 ;START WITH ZERO LENGTH STRINGS#24$: MOVB (R1)+,R2 ;NEXT CHAR -> R2 CMPB R2,#', ;IS IT COMMA?E BEQ 25$ ;IF SO, BRANCH CMPB R2,#S.EOL2 ;END OF LINE? BHIS 25$ ;IF SO, ALSO BRANCH$ INC R4 ;ELSE IT'S A GOOD CHARACTER$ BR 24$ ;SO ADD 1 AND KEEP COUNTING;("; ASCII INPUT, FIXED STRING LENGTH;O26$: MOV R4,-(SP) ;SAVE LENGTH#27$: MOVB (R1)+,R2 ;NEXT CHAR -> R2S CMPB R2,#', ;LOOK FOR COMMA  BEQ 29$ ;IF SO, END OF STRING0) CMPB R2,#S.EOL2 ;OR COULD BE END OF LINEH BHIS 29$ ;IF FOUND, BRANCH2 SOB R4,27$ ;KEEP LOOKING FOR WHOLE STRING LENGTH528$: MOVB (R1)+,R2 ;AND LOOK FOR TERMINATOR OF STRING CMPB R2,#', ;EITHER COMMAT BEQ 29$ CMPB R2,#S.EOL2 ;OR END OF LINE* BEQ 29$ ;WHEN FOUND, GO TO COMMON FINISH$ BR 28$ ;KEEP GOING TILL IT'S FOUND029$: SUB R4,(SP) ;REDUCE LENGTH STORED ON STACK, MOV (SP)+,R4 ;AND POP ADJUSTED LENGTH -> R4,25$: DEC R1 ;BACK UP TEXT PTR TO TERMINATOR' BR 32$ ;AND BRANCH TO STORAGE SECTIONB;C*;BINARY (OR INPUT LINE) FIXED AND VARIABLE;R30$: TST R4 ;MAKE SUREG BPL 33$ ;LENGTH IS POSITIVE; NEG R4 +33$: CMP R4,LINELN ;DO WE HAVE ENOUGH BYTES$ BLE 31$ ;IF SO, BRANCH) MOV LINELN,R4 ;ELSE USE JUST WHAT'S LEFTA+31$: SUB R4,LINELN ;ADJUST REMAINING LENGTHT032$: MOV (R5),R0 ;SET UP R0 (DATA ITEM ADDRESS) LDF -6(R5),AC0 ;AND OFFSETH JSR PC,STOSTR ;STORE IT% CCC ;MAKE SURE EVERYTHING LOOKS OKA99$: RTS PC ;AND RETURN 98$: INPERR  B< .SBTTL COM00 - COMMON EXPRESSION HANDLER FOR READ AND INPUT; ; ON ENTRY:I; R1 IS TEXT PTR;N ; ON EXIT:!; R1 POINTS PAST END OF STATEMENT #; 'V' SET IF ERROR IN VARIABLE LISTF; STACK ON EXIT:; DATA PTR (1 WORD) ; DATA TYPE (1 WORD); OFFSET (2 WORDS); ; DATA PTR ; DATA TYPE ; OFFSET; .O; . ; .; NULL; SP -> PTR TO START OF LIST;:;; OTHER REGISTERS USED: POTENTIALLY ALL (INCL FLOATING PT.)A;PCOM00:0 LDCIF SP,AC2 ;MARK WHERE START OF LIST WILL BE% LDCIF (SP)+,AC3 ;SAVE RETURN ADDRESST" STF AC3,AC5 ;AND MOVE BOTH ITEMS STF AC2,AC4 ;OUT OF THE WAY CLR R2 ;IN CASE OF ERROR&3$: JSR PC,GETHDR ;GET HEADER AND TYPE BVS 5$ ;ON ERROR, BRANCHT ;DSS1E .IF NDF,DEFVAR ;IF NO AUTOMATIC VARIABLE DEFINITION ;DSS1U> BNE 1$ ;VARIABLE EXISTS ;DSS1D JSR PC,NEWVAR ;NOT DEFINED....DEFINE IT ;DSS1N .ENDC ;DSS1U ;DSS1OG1$: BIT #1,LINEFL ;INPUT LINE IN PROGRESS? ;**-2A BEQ 2$ ;IF NOT, BRANCH' CMP R0,#10 ;IF SO, DO WE HAVE STRING?A BNE 5$ ;IF NOT, ERRORS(2$: CLR -(SP) ;SPACE FOR HEADER ADDRESS MOV R0,-(SP) ;SAVE DATA TYPET' JSR PC,GTOFFS ;GET OFFSET FOR VARIABLE # MOV R3,2(SP) ;STORE HEADER ADDRESS, STF AC0,-(SP) ;AND OFFSET SKIP ;NEXT CHAR -> R2 CMPB R2,#', ;COMMA?T BEQ 3$ ;IF SO, GO AROUND AGAIN#5$: CLR -(SP) ;SET LIST END MARKERC+ LDF AC4,AC2 ;LET'S GET BACK START OF LISTG! LDF AC5,AC3 ;AND RETURN ADDRESSR* STCFI AC2,-(SP) ;CONVERT START TO INTEGER2 STCFI AC3,-(SP) ;AND ALSO RETURN ADDRESS ON STACK! JSR PC,EOSCHK ;END OF STATEMENT?V BEQ 4$ ;IF SO, BRANCH  SEV ;ELSE SET ERROR CODEE4$: RTS PC ;AND RETURN  ; ; ROUTINE EOSCHK%; TO CHECK FOR LEGIT END OF STATEMENT ; ; ON ENTRY:;; R2 HAS CHAR TO BE CHECKED ; ; ON EXIT:; 'Z' SET IF END; 'Z' CLEAR IF NOT END CHAR ; ; OTHER REGISTERS USED: NONE; EOSCHK: * CMPB R2,#S.EOS1 ;END OF STATEMENT PROPER?" BHIS 1$ ;IF SO, SUCCESS (BRANCH)00dVW CMPB R2,#S.ELSE ;AN ELSE TOKEN? BEQ 1$ ;IF SO, ALSO END1 CMPB R2,#S.EXC ;COMMENT?G BEQ 1$ ;IF SO, ALSO ENDS CCC( RTS PC ;RETURN WITH NO COND. CODES SET1$: CCC + SEZ ;INDICATE SUCCESS (END OF STATEMENT)F RTS PC ;AND RETURN) .SBTTL READ00 - READ STATEMENT PROCESSOR);+3 ; .SKIPS ; .X ^^READ\\R ; .X ^^DATA\\2 ; .HEADERLEVEL 1 R5S( MOV R5,SP ;WHICH IS START OF OLD STACK ADD #2,SP ;IF YOU ADD 2E DEC R1E JMP INIT02 ;BACK TO THE BOSS'5$: MOV ENDTXT,R3 ;FIND THE UPPER LIMIT56$: CMPB #S.EXC,(R1) ;ARE WE ENTERING COMMENT FIELD ? BNE 61$ ;NO BIS #2,DATASK ;YES SET FLAG% BR 65$ ;AND CAN SKIP FURTHER CHECKSA(61$: CMPB #S.REM,(R1) ;OR REMARK FIELD ? BNE 62$ ;NO( BIS #2,DATASK ;YES, SET FLAGM! BR 65$ ;AND SKIP FURTHER CHECKSP562$: CMPB #'",(R1) ;OR ENTERING/LEAVING QUOTE FIELD ?E BNE 64$ ;BR IF NOT- BIT #1,DATASK ;ARE WE ALREADY IN QUOTE FIELD BEQ 63$ ;NOT- BIC #1,DATASK ;YES, SHOW EXITING QUOTE FIELDS BR 65$ ;AND SKIP FURTHER TESTS-63$: BIS #1,DATASK ;SHOW ENTERING QUOTE FIELDM BR 65$ ;AND SKIP FURTHER TESTS.64$: CMPB #S.EOL1,(R1) ;FINALLY, END OF LINE ? BNE 65$ ;BR IF NOT( CLR DATASK ;YES, CLEAR SKIP DATA FLAGS165$: CMPB #S.EOL2,(R1) ;OR END OF PHYSICAL LINE ?T BNE 651$ ;BR IF NOTH( CLR DATASK ;YES, CLEAR SKIP DATA FLAGS9651$: TST DATASK ;SHOULD WE NOT TRY FOR DATA STATEMENT ?  BEQ 66$ ;NO, DO CHECKH& INC R1 ;YES, JUST SKIP THE CHARACTER BR 67$ ;AND TRY AGAINP466$: CMPB #S.DATA,(R1)+ ;IS WE AT A DATA STATEMENT??-67$: BEQ 3$ ;IF SO GO FINISH WHAT WE STARTEDT! CMP R1,R3 ;SEE IF IT'S ALL OVERN BLO 6$ ;BRANCH IF MORE TEXTG RE1ERR ;FATAL ERROR7$: RE2ERR ;FATAL ERROR  R .SBTTL FOR00 - FOR STATEMENTE;+3 ; .SKIPS ; .X ^^FOR\\; .HEADERLEVEL 1 = _ TO _ [STEP _]\\B; .FILLH; ^THIS STATEMENT SETS UP AND CONTROLS EXECUTION OF A ^^FOR-NEXT\\ LOOP.'; ^ANY NUMERIC EXPRESSIONS MAY BE USED. <; ^THE VARIABLE MUST BE, HOWEVER, A SIMPLE FLOATING VARIABLE; (NO SUBSCRIPT). ; .FG 1 F; ^THE STATEMENTS FOLLOWING THE ^^FOR\\ STATEMENT UNTIL THE ASSOCIATED'; ^^NEXT\\ STATEMENT COMPRISE THE LOOP.R>; ^THE LOOP BEGINS WITH THE VARIABLE SET EQUAL TO ^^EXP1\\ ANDG; CONTINUES BY INCREMENTING THE VARIABLE BY ^^EXP3\\ (DEFAULTED TO ONE)5F; UNTIL IT REACHES OR PASSES THE VALUE OF ^^EXP2\\ (THEREFORE THE LOOP; MAY NOT BE EXECUTED AT ALL).E; ^FINAL VALUE OF THE VARIABLE IS ITS VALUE THE LAST TIME THROUGH THEI; LOOP. ; .NOTEE:; ^CHANGING THE VALUE OF THE VARIABLE WITHIN THE LOOP WILL2; AFFECT THE NUMBER OF TIMES THE LOOP IS EXECUTED. ; .ENDNOTE ; ^EXAMPLE:T ; .NOFILL$; ^^; {40 FOR I=1 TO 5.5 STEP .5} #; {100 FOR J1=-.1 TO -1.5 STEP -.1}S; \\; .FILL;-; REGISTERS USED - ALL.;1FOR00: JSR PC,GETHDR ;GET CONTROL VARIABLE HEADER1 BVS FOR99 ;ON ERROR, BRANCHT 00l~2TADATADATADATADATADATA ;DSS1E .IF NDF,DEFVAR ;IF NO AUTOMATIC VARIABLE DEFINITION ;DSS1R> BNE 1$ ;VARIABLE EXISTS ;DSS1D JSR PC,NEWVAR ;NOT DEFINED....DEFINE IT ;DSS1N .ENDC ;DSS1U ;DSS1 @1$: SKIP ;GET NEXT CHAR ;**-26 CMPB R2,#'= ;IS IT EQUAL SIGN (SIMPLE VARIABLE ONLY) BNE FOR99 ;IF NOT, ERROR BIT #10000,(R3) ;IS IT VIRTUAL? BNE FOR99 ;ALSO ILLEGAL IF SO # CLR -(SP) ;SET UP A SLOT ON STACKL' MOV R4,-(SP) ;AND SAVE VARIABLE HEADERE, DEC R1 ;BACK OFF TO EQUAL SIGN SO THE NEXT$ ;SUBROUTINE DOESN'T GET CONFUSED/ JSR PC,GTOFFS ;AND GET OFFSET (R0 HAS ADDRESS). SKIP ;NOW POINT TO NEXT NON-BLANK AFTER '='&FOR02: MOV R0,2(SP) ;SAVE DATA ADDRESS& MOV (SP),R4 ;RESTORE VARIABLE HEADER. JSR PC,SCHFOR ;SEE IF WE HAVE A CONTROL BLOCK BEQ FOR03 ;IF NOT, BRANCH # JSR PC,DELFOR ;IF SO, GO DELETE ITA"FOR03: MOV #20,R0 ;CHECK FOR ROOM TSTOK BHIS 1$ ;IF OK, BRANCH OVFERR /1$: MOV STGOSB,R2 ;START OF BLOCK TO MOVE -> R2O" MOV STFONX,R3 ;END OF BLOCK -> R3( JSR PC,SLDN ;SLIDE IT DOWN BY R0 BYTES SUB R0,STGOSB ;ADJUST POINTERS  SUB R0,STFONX1 MOV STFONX,R3 ;R3 HAS START OF NEW CONTROL BLOCK 9 MOV (SP)+,(R3) ;GET SIXBIT NAME FROM STACK TO CTRL BLOCKT6 MOV (SP)+,R0 ;STORAGE ADDRESS FOR CTRL VARIABLE -> R0 MOV R0,6(R3) ;STORE IT AWAY SUB STUDAT,6(R3) ;AS OFFSET% MOV LINENO,2(R3) ;SET UP LINE NUMBERI& MOV STCOUN,4(R3) ;AND STATEMENT COUNT& MOV R3,-(SP) ;SAVE CTRL BLOCK ADDRESS( MOV R0,-(SP) ;AND CTRL VARIABLE ADDRESS! EVAL ;GET THE STARTING FORMULA  MOV (SP)+,R0 ;DESTINATION" STF AC0,(R0)+ ;PUT AWAY THE VALUE SKIP ;NEXT CHAR -> R2 CMPB R2,#S.TO ;IS IT 'TO' TOKEN BNE FOR99 ;NO' EVAL ;YES% STF AC0,-(SP) ;PUT ENDING VALUE AWAY, SKIP ;GET NEXT CHAR CMPB R2,#S.STEP ;IS IT STEP?  BEQ 2$ ;IF SO, BRANCHQ DEC R1 ;ELSE BACK UP LDCIF #1,AC0 ;SET DEFAULT STEP' BR FOR04 ;AND SKIP EVALUATION OF STEP#2$: EVAL ;EVALUATE THE STEP VALUEF&FOR04: LDF (SP)+,AC1 ;GET ENDING VALUE0 MOV (SP)+,R3 ;RESTORE START OF CTRL BLOCK -> R3# STF AC1,14(R3) ;STORE ENDING VALUEB( STF AC0,10(R3) ;PUT THE STEP VALUE AWAY8FOR06: JSR PC,CHKFOR ;GO CHECK IF AT END OF LOOP ALREADY BGE FOR12 ;IF NOT, GO EXECUTEI5 MOV (R3),-(SP) ;SAVE SIXBIT VARIABLE NAME FOR FUTUREE( JSR PC,DELFOR ;DELETE FOR CONTROL BLOCK' BR FOR09 ;AND GO LOOK FOR END OF LOOPA(FOR12: JMP INIT02 ;GO DO NEXT STATEMENT FOR99: FORERRC;FOR09: MOV BOLNHD,R3 ;SET UP TO LOOK IMMEDIATELY FOR END OFK8 MOV LINEHD,R5 ;LOOP (FOR LOOP IS OVER BEFORE IT STARTS)FOR10: SKIP ;NEXT CHAR -> R2! CMPB R2,#S.NEXT ;IS IT A "NEXT"?(! BEQ FOR11 ;IF SO, GO LOOK AT ITN) JUNKIT ;IF NOT, SKIP REST OF STATEMENTT! CMPB (R1)+,#S.EOL2 ;END OF LINE?S0 BNE 2$ ;IF NOT (JUST END OF STATEMENT), BRANCH' SUB #4,R5 ;GET NEXT LINE HEADER -> R5T CMP R5,R3 ;PAST END? BHIS 1$ ;IF NOT, CONTINUEP* NXTERR ;IF SO, ERROR (FOR WITHOUT NEXT)*1$: MOV 2(R5),R1 ;START OF NEXT LINE -> R1 ADD USR,R1 ;ADD IN OFFSETO$ MOV #1,STCOUN ;INIT STATEMENT COUNT BR FOR10 ;AND KEEP LOOKING 2$: INC STCOUN ;PUSH ON IN LINE BR FOR10 ;AND KEEP LOOKING FOR11: GETVART" CMP R4,@SP ;IS VARIABLE CORRECT?) BNE FOR16 ; LOOP UNTIL FOUND OR FAILUREB TST (SP)+ ;WE-UNS IS HERE BOSS FOR15: DEC R1S* MOV R5,LINEHD ;UPDATE CURRENT LINE HEADER MOV (R5),LINENO ;AND LINE # BR FOR12 ;AND IS DONEL,FOR16: CMPB R2,#', ;LOOK FOR FORM: NEXT I,J BEQ FOR11 ;IF SO, TRY AGAINC( BR FOR10 ;ELSE CONTINUE REGULAR SEARCH A5 .SBTTL NEXT00 - NEXT STATEMENT TO TERMINATE FOR LOOPR;+3R; .SKIPT ; .X ^^NEXT\\ ; .HEADERLEVEL 1 \\; .FILL2; ^THIS STATEMENT TERMINATES THE LOOP BEGUN BY THE); IMMEDIATELY PRECEDING ^^FOR\\ STATEMENTT; WITH THE SAME VARIABLE NAME.E; ^A CONCATENATED FORM OF TWO AC1 SUBF AC0,AC1 ;TERM-NEW -> AC1( DIVF 10(R3),AC1 ;(TERM-NEW)/STEP -> AC1 CFCC ;COPY CONDITION CODESM, BMI NEXT01 ;IF PAST TERMINAL VALUE, BRANCH! STF AC0,(R0) ;PUT BACK NEW VALUET MOV 2(R3),R0 ;LINE # -> R0R* MOV 4(R3),-(SP) ;STATEMENT COUNT ON STACK FINDLN ;FIND WHERE IT BELONGS$ MOV (SP)+,R2 ;STATEMENT COUNT -> R28 JSR PC,STFIND ;FIND PLACE IN LINE (PRINT TRACE MESSAGE)) JMP INIT03 ;AND CONTINUE IN INTERPRETER "NEXT99: NXMERR ;NEXT WITHOUT FOR$NEXT01: MOV R2,-(SP) ;SAVE NEXT CHAR! JSR PC,DELFOR ;DELETE CTRL BLOCK<& CMPB (SP)+,#', ;IS NEXT CHAR A COMMA?% BEQ NEXT00 ;IF SO, START CHECK OVERL DEC R1 ;BACK UP TEXT PTR% JMP INIT02 ;AND CONTINUE PROCESSINGE;T3; ROUTINE TO SEARCH FOR A GIVEN FOR/NEXT CTRL BLOCKO ; ON ENTRY:J; R4 HAS SIXBIT NAME;G ; ON EXIT:; R4 UNCHANGED; 'Z' SET IF NOT FOUND, R3 = 00; 'Z' CLEAR IF FOUND, R3 = ADDRESS OF CTRL BLOCK;E; OTHER REGISTERS USED: NONE;O>SCHFOR: MOV STFONX,R3 ;START OF FOR/NEXT CTRL BLOCK AREA -> R31$: CMP R3,STUFDB ;AT END YET? BHIS 3$ ;IF SO, BRANCH% CMP R4,(R3) ;IS THIS THE RIGHT ONE?C BNE 2$ ;IF NOT, BRANCH CLZ ;IF SO, INDICATE SUCCESSL RTS PC ;AND RETURN'2$: ADD #20,R3 ;ADD SIZE OF CTRL BLOCKR/ BR 1$ ;SO WE POINT TO NEXT ONE AND LOOK AGAINN3$: CLR R3 ;INDICATE FAILURER RTS PC ;AND RETURN;R); ROUTINE TO DELETE A FOR/NEXT CTRL BLOCKI ; ON ENTRY:I'; R3 POINTS TO CTRL BLOCK TO BE DELETEDN ; ON EXIT:; R3 UNDETERMINEDT; OTHER REGISTERS USED: R0,R2;T7DELFOR: MOV STGOSB,R2 ;START OF BLOCK TO BE MOVED -> R2C MOV #20,R0 ;AMOUNT TO MOVE UPE JSR PC,SLUP ;GO SLIDE IT UP; ADD R0,STGOSB ;ADJUST PTRSC ADD R0,STFONX RTS PCJ;I5; ROUTINE TO CHECK ON FINISHED/NOT FINISHED CONDITIONC; OF FOR/NEXT LOOP.T ; ON ENTRY:"; R3 POINTS TO FOR/NEXT CTRL BLOCK ; ON EXIT:; R3 UNCHANGED8; 'Z' SET IF CTRL VARIABLE AT END VALUE, CLEAR OTHERWISE:; 'N' SET IF CTRL VARIABLE PAST END VALUE, CLEAR OTHERWISE3; R0 HAS ACTUAL STORAGE ADDRESS OF CONTROL VARIABLEL; REGISTERS USED: ; AC0S;D)CHKFOR: LDF 14(R3),AC0 ;TERM VALUE -> AC0C, MOV 6(R3),R0 ;OFFSET OF CTRL VARIABLE -> R0& ADD STUDAT,R0 ;MAKE IT ACTUAL ADDRESS1 SUBF (R0),AC0 ;TERM VALUE - CURRENT VALUE -> AC0A, DIVF 10(R3),AC0 ;(TERM-CURRENT)/STEP -> AC0 CFCC ;COPY CONDITION CODES  RTS PC ;AND RETURN .ENDR;Pz 8Dy:@y:@u""@T[""@Iq""@y:Ё@fh@K""@y:@y:΁@y:с@AI@:2@zy"&@4{2@<&@R`""@){%@ 0@<@8@,N@)sE@o =@vL< @.{`@&:""@%{M@oMg'@z#w""@y0@vL @nL`@""@&{P@vL.!@3{(@ya@u@J@""@V[""@Aw@gq""@zvL!@X@:}@%{_@sw@:d""@%{_@:""@:a @)G@( @n 0@xh@f}@0@zt!y@yO@)2H@&@&@y`@hq""@.{#@'""@e;@""@y2@ ~@lhu:@:""@z.Ps@:""@n^@%{`@4{]@f""@@X@t@""@:""@v~ g@)t @ձ@|@z2{H!@y`@M[""@N*@59Ps@d0@s%@ z""@[g6@/{p@.{%@+0@'{`@`}@t!Ԁ@z'{`@<C @o N*@f0@_M0@t @;K}@>M""@:@${a @\q""@!{ X@l g@<&(@)%@zf΁@U@xW@3{00|~2TADATADATADATADATADATA@fN\@'""@fO\@ak@_X@ @y""@gN*@zy΁@6a""@)Ps@z:@\` U@xd@r0@Bx@%{x@:0@3{L @`;@'N@}""@""@ehp@:d N@^@z:@g'@w0@6x$@3{}@!<@3{V&@&'@oMY@#N*@y""@&{W@ ""@y<@ z 8`,2h ,Zh ,.bh,.bh,.bhB,.bhUq0hT'0hK0h yyh N9h`X΁hu0h0hzt hyh`! hs0hhsXh_΁hfh:Xhz:0hyh "OhyZhl Iqh".0h+.NhZ[q0h,yh [}h \q0h6.&h "{hTyhh_Xhx yhh:h  8R  Z 7 7|:a t n^ :t n^ t  v~ g":}&l g(`},N*0Z4f08fN\<N*@XDswJ^Nt!yN7 wSTOP AT LINE G7  Е" !ДЕ" w  tvL!;K} vL!y:΁"s%(U,vL!0xh4%{`@:NBxTBx`d|h_Xlp|tvL!x&G .wHH w& @777 7   hUy: "6a""&y`*vL!.ya2y`H>M""Zy<^XbvL!hvL!nvL tvL x&~s%F 7 w   A   BRANCH TO LINE STMT  ^s%g'ya y:,.Ps0fN\48f0>fO\BFf0JyaPfO\TN*v.Ps~xh  , ~%ww # 5 fe  w7  V'{` '{`""xh$%{`.'{`   ewew&  W ~f Bw #i daP& y`$y:с*y`0\q""6ya>xhF%{MNAITg'bvL!hvL nxh&& & [& p5R2t E&e F@a7  ~2 \5 /& +fv(8 @!<hu6 e   UU  ~w , w  && & , U&&>yO 8!<o =xho =xhDuLu\xh`&{Wf,Nvxh& 7 (/C (& #$U  ), = sw Bw \y< y0!<[g6$[g6([g62,NBxhH[g6\xhjJp!<tAIzy:с|"" n  + -  (& && f     %f@ U2  [g6xh*xhJ!<RxhV^vsv Ue) e @B @  )     )+-*/^ "$,T:d""j6a""wf E" `  7 ` &   '  JgN*xh$3{L *3{By:H.{%T!<Zy:`!<f&{Wn 0xo N* .  U`  Ff n   FxVfff`F  &  BP ,Ny<y0.:d""0&:""4xh8%{`NVPfRfTfV`XF ZV[""n!< f&5     w `w j Ք E8y<y02xh: F!<P T6a""^!<b!<w 00zVW¥) ¥, wZ m E & ;fff Ew `',!< xh&:""0JP!<\ r!<~ (E`5UՔ~f + E  E` 8 0xh@!<R!<Z6a""^xhf3{(l3{V&xy:%  %  | "C W"W  녗$ ( U  f8&{W 0D%{_N}""P""T,N`xhjy<ty0v  )  f  & $ % &  U U U@ & &:""xh:d""@,Nzy<~y0 5StE& (>   &&  f & ,, T)&    Ԃ#(xhD Rxhn   p`p`% e  s  (# & , V *y<6#w""8 z""\xhpxh 3 @3 @@B@ &f U E &weD f&V h,4#w""6 z""Ny2|)%f  p& &    & EspQ ee0e d)2H)Gձ")Ps(`;0)PsN&{PZ:d Nfh ^y""b""l)sEp&{Pr)sEx)sE & &    f x" * . 6 :  tE 5m&H)2H)2H)Ge; )Ps&`;0)PsB" D* F. H6 J: zy<^ `f&@ x    f 25  ĜE  `&EV[""$ & ( * ,  %5m& &`f& 5EDa &  2 "&  y<*V[""V  Da  Ҕ B& & C    w   & :& ". 2 L T!<\6a""|xh =  V  d w& E(0 `$ {2:>FL@ B @xU@.y:Ё0""2:d""4K"":xhH.{`\.{`b2d:f>hFjLN E& &  )  &&   %&& a Ew 2xh!{ X/{p0xh8:d""F:d""f!<v!<u& D!  D  555 ;B    w& !<\){%h%{`n%{_tya|y:ЁF #fAm C  W•  w w  wNw < n%{M yavL J$xh2%{_:%{`ByaFy:сLy:ЁPxhT4{2Zxh` 0ly:p'{`t59Psxxh= > UUUTAB(  U&  n ,<;Y Z @R`"">'NB`}JakP<&<&( R)t ZvL< d jxh>W C l V DH  &``~  f  e 0 &vL< ,`}(D,HvL.!VXZ \^&@5 E  C !  B, &B,  B,   7! 0vL< D%{_X%{_h%{_~vL.!7@5 L 5  & & & ,& 2vL.! vL.!:""2vL< Lxhj%{`p%{Mv%{x7 fmWW, A wFe wɥUɥUɥ" 5V vL< Iq""<@8 J&J*%{_@JD<@8Ty:ЁXt!Ԁ\%{xd<C j2{H!r<C E Uɥ7 ɥ7  ѥC χ ^ =Y5V& &  6 @ V V<C  <C <C %{_ <C $%{_*<C .<C 8${a @gq""Bhq""Lxhfxh~  773& L  :&   "Vs 3 V6a"" y`y`xWy`y`y`*y<0vL!6yaHxhL4{]Xxh\3{} w  W C!Am  ! ww, H t3b y:Ё'""XvL xh.{#$AI(%{_4T[""; SQUISH - SQU00, DELETE LINE WHOSE HEADER IS POINTED TO BY R5 ; ON ENTRY: ; R5 HAS POINTER TO LINE HEADERT ; ON EXIT:3; R5 = OLD R5 + 4 (POINTS TO PRECEDING LINE HEADER)S@; R1 POINTS TO INSERTION POINT FOR NEW LINE (WHERE OLD LINE WAS)+; OLD LINE HEADER AND LINE TEXT ARE DELETEDR; ENDTXT AND BOLNHD UPDATED0;E; SRCH00 - SEARCH FOR EOLO;H>; SRCHLF - SRCH00, SEARCH FOR EOL, POINTER IN R1, WHEN DONE R17; POINTS ONE BYTE AFTER THE EOL. REGISTERS USED - R1.Q; 8; FIND00 - SEARCH TEXT FOR LINE NUMBER (SPECIFIED IN R0); ; FINDLN - FIND00N5; SUBROUTINE TO FIND A GIVEN LINE IN THE PROGRAM TEXTA*; BY SEARCHING THROUGH LINE NUMBER HEADERS ; ON ENTRY:L; R0 HAS REQUIRED LINE NUMBERS ; ON EXIT:(; R1 HAS ABSOLUTE START OF LINE IF MATCH,; R1 HAS INSERTION POINT IN TEXT IF NO MATCH; R5 POINTS TO HEADER IF MATCH1; R5 POINTS TO HEADER INSERTION POINT IF NO MATCHC; 'Z' SET IF MATCH; 'Z' CLEAR IF NO MATCHI; R0 UNCHANGED; OTHER REGISTERS USED: R2;1(; GETV00 - GET VARIABLE AND PACK INTO R4;RE; GETVAR - GETV00, GET A VARIABLE AND PACK IT IN TRUNCATED ASCII INTON8; R4. ON RETURN R4 HAS VARIABLE, R2 HAS NEXT CHARACTER.; REGISTERS USED - R1,R2,R4.;H,; DIMC00 - CHECK RANGE OF DIMENSION (IN R0) ;SB; DIMCHK - DIMC00, MAKE SURE DIMENSION IN R0 IS IN BOUNDS 0 TO 255; REGISTERS USED - R0. E); SAVE00 - LIST PROGRAM ON "SAVE" DATASET ;N; OLD00 - RESTART ON OLD FILET;1; CHAIN0 - START EXECUTING NEW FILE WITH OLD DATAE;T>; OVERLAY - ADD PROGRAM LINES FROM FILE AND OPTIONALLY EXECUTE;E*; TSTU00 - CHECK FOR USER STORAGE OVERFLOW;U:; TSTOK - TSTU00, CHECK FOR POSSIBLE USER STORAGE OVERFLOWB; R0 HAS NUMBER OF BYTES TO ENTER. REGISTERS USED - R0,R3,R4,R5.;N; SCRA00 - DELETE A FILE/; FNAME - CHECK STRING EXPRESSION FOR FILE SPECI#; ON ENTRY R1 CONTAINS TEXT POINTERD); ON EXIT FOLLOWING REGISTER ASSIGNMENTS:E8; R0: ZERO IF NO STRING TO INTERPRET, OTHERWISE = OLD R1; R1: TEXT POINTER.; R2: ZERO TO INDICATE NO SWITCH TABLE FOR CSI8; R3: ADDRESS OF STRING IN STRING WORK AREA (FROM EVALS)7; R4: LENGTH OF STRING IN STRING WORK AREA (FROM EVALS) ;C'; OPEN00: COMMAND PROCESSOR (FILE OPEN)R"; CLOS00 - USER FILE CLOSE ROUTINE;E;U; ROUTINE DELFDB?; TO DELETE SPACE FOR BASIC FDB (INCL BUFFER AND POINTERS ETC.) ; ON ENTRY:I ; R3 POINTS TO FDB TO BE DELETED ; ON EXIT:; STUFDB,STGOSB,STFONX UPDATED; REGISTERS USED: R0,R2R; ;I2; ROUTINE SRCHFL - TO SEARCH FOR FILE WHOSE HEADER%; MATCHES R4 AND MASK TO IGNORE IN R0R(; PTR TO FCB -> R3 IF FOUND, 0 OTHERWISE;A?; FNMBR/FNMB00 - PROCESS FILE NUMBER, SETUP FILE BLOCK POINTERSM;A; PRLN00 - PRINT LINE NUMBER;S%; PRNTLN - PRLN00 - PRINT LINE NUMBERC; REGISTERS USED - R0,R1,R2.;E6; GET00 - GET LINE L002TADATADATADATADATADATAIMITS FOR COMMAND (LIST OR DELETE);T6; GET00 - GET LINE LIMITS FOR COMMAND (LIST OR DELETE) ; ON ENTRY::"; R1 POINTS TO START OF PARAMETERS ; ON EXIT:*; R1 POINTS PAST END OF THIS SET OF PARAMS1; R3 HAS ADDRESS OF LOWEST LINE # HEADER IN RANGEO2; R4 HAS ADDRESS OF HIGHEST INCLUDED LINE # HEADER'; 'Z' SET IF NO LINES INCLUDED IN RANGEU&; OTHER REGISTERS USED: R0,R2,R5 (ALL) N;-;I; LIST00 - LIST THE SOURCE TEXTL!; REGISTERS USED - R1,R2,R3,R4,R5R;S;-+; SUBROUTINE TO PRINT OUT LINE WHOSE HEADER ; IS POINTED TO BY R5);T%; DEL00 - DELETE TEXT IN USER PROGRAM %; REGISTERS USED - R0,R1,R2,R3,R4,R5.I; (; INIT00, INIT02 - STATEMENT INTERPRETER;T.; PDP-11 BASIC - COMMAND/STATEMENT INTERPRETER$; REGISTERS USED - R0,R1,R2,R3,R4,R5;4;S;D;S%; ASSM00 - ASSEMBLE LINE OF USER CODEZ;ED; ASSEMBLE LINE OF CODE INTO WORKING STORAGE - TRANSFER TO USER AREA"; REGISTERS USED - R0,R1,R2,R3,R4.;R;T2; NOW DEFINE THE VERBS AND THEIR ROUTINE ADDRESSES;R9; SET - COMMAND TO SET UP MISCELLANEOUS SYSTEM CONDITIONSR ; EXIT STATEMENT (DOCUMENTATION); ON ERROR GOTOE2; IF END - RESET END-OF-FILE ERROR ROUTINE ADDRESS; SINGLE LINE STEP INSTRUCTION; PROGRAM CONTINUE; SLEEP COMMANDI3; WAIT0 - WAIT COMMAND - SPECIFY TIMEOUT PARAMETERS; PRI00 - PRIORITY COMMAND&; LOAD - USER ASSEMBLY SUBROUTINE LOAD; (; FORMAT FOR BASIC LOADABLE SUBROUTINES:; FIRST THREE WORDS:A; .WORD ID0001 ;THESE THREE WORDS ARE FILLED IN BY GLOBAL SYMBOLSR?; .WORD ID0002 ;FROM A SYMBOL TABLE FOR BASIC, ENSURING CORRECTT8; .WORD ID0003 ;SYMBOL LINKAGES (OR ELSE ERROR MESSAGE).; NEXT TWO WORDS ARE LENGTHS:O;; .WORD ?????? ;LENGTH (IN BYTES) OF CODE PLUS ENTRY POINTS1; .WORD ?????? ;LENGTH (IN BYTES) OF ENTRY POINTST!; .WORD ?????? ;# OF ENTRY POINTSR<; NEXT ENTRIES ARE THREE WORD BLOCKS DESCRIBING ENTRY POINTS4; .RAD50 /NAME/ ;TWO WORDS OF RAD50 ENTRY POINT NAME0; .WORD ?????? ;OFFSET FROM START OF CODE PROPER>; FINALLY, ONE WORD CONTAINING NUMBER OF WORDS OF CODE PROPER:-; .WORD ?????? ;LEN (IN WORDS) OF CODE PROPERW; ;; NOTE: THESE MODULES MUST BE TASK BUILT WITH /-HD/-FP AND:W ; STACK=0N ; UNITS=0W; D; IN ADDITION POSITION INDEPENDENT CODING TECHNIQUES MUST BE USED IND; WRITING THE CODE BECAUSE ITS POSITION IN THE INTERPRETER WILL VARY.; DEPENDING ON WHAT OTHER ROUTINES ARE LOADED. N; ;N;; UNLOAD - COMMAND TO UNLOAD ALL USER LOADED MACRO ROUTINESW; ; SLIDE UP ROUTINE SLUP 2; TO MOVE A BLOCK OF WORDS FROM LOW TO HIGH MEMORY ; ON ENTRY: ; R2 HAS START ADDRESS OF BLOCK ,; R3 HAS END ADDRESS (FIRST WORD PAST BLOCK)-; R0 HAS # OF BYTES TO MOVE UP (ASSUMED EVEN) ; ON EXIT:; R2 HAS OLD START ADDRESS; R3 HAS OLD START ADDRESS; R0 UNCHANGED; NO OTHER REGISTERS USED ;E;C; SLIDE UP ROUTINE SLUP01T2; TO MOVE A BLOCK OF WORDS FROM LOW TO HIGH MEMORY ; ON ENTRY:.; R2 HAS START ADDRESS OF BLOCKT,; R3 HAS END ADDRESS (FIRST WORD PAST BLOCK); R4 HAS NEW END (TOP) ADDRESS ; ON EXIT:; R2 HAS OLD START ADDRESS; R3 HAS OLD START ADDRESS; R4 HAS NEW START ADDRESS;H;E; SLIDE DOWN ROUTINE SLDN ; ON ENTRY:H; R2 HAS START ADDRESS OF BLOCK ; R3 HAS END ADDRESS; R0 HAS # OF BYTES TO MOVE3 ; ON EXIT:; R2 HAS OLD END; R3 HAS OLD END; R0 UNCHANGED; NO OTHER REGISTERS USEDI;S;0; SLIDE DOWN ROUTINE SLDN01S ; ON ENTRY:H; R2 HAS START ADDRESS OF BLOCKS; R3 HAS END ADDRESS; R4 HAS NEW START ; ON EXIT:; R2 HAS OLD END; R3 HAS OLD END (UNCHANGED); R4 HAS NEW END;S;D ;********* ; * ; BASIC3 * ; * ;********* .TITLE BASIC3;?; OBJECT MODULE FOR PART 1 OF MAIN BASIC INTERPRETER 6 JUNE 72;G; DOS VERSION FROM WHICH THE RSX VERSION EVOLVED WAS ORIGIANLLY A DECUS;; LIBRARY PROGRAM MODIFIED BY FRANK KORZENIEWSKI OF RPSLMC.; ; MODIFIED FOR USE UNDER RSX-11D; BY: LARRY SIMPSON; MICHAEL REESE MEDICAL CENTER; JULY-OCTOBER 1975;;3; MODIFIED FOR IMPLIED LET AND ^Z ON INPUT 6-APR-76;; FEATURES CURRENTLY SUPPORTED:-; 1. PROGR00zVWAM (FILES-11) SAVE VIA SAVE COMMAND.; 2. PROGRAM (FILES-11) RECALL VIA OLD COMMANDA; 3. PROGRAM (FILES-11) EXECUTE VIA RUN COMMAND (ALLOWS CHAINING)$; 4. IMMEDIATE MODE MCR PRINT VIA ?; 5. MULTI-USER WITH PURE AREA; 6. ^B BREAK FEATURE6; 7. FILES-11 SEQUENTIAL DATA FILES VIA OPEN STATEMENT*; 8. IMPLIED LET (BUT NOT IN IF STATEMENT)=; 9. FILES-11 RANDOM ACCESS FILES VIA OPEN AND INPUT OR PRINT1; 10. GENERALIZED ONE LINE USER DEFINED FUNCTIONS; A) ANY # OF ARGS6; B) RECURSIVE -> ONE FCN DEFINED IN TERMS OF ANOTHER; C) STRING AND NUMERIC ARGS4; D) LETTERS FN & VARIABLE NAME (NUMERIC OR STRING)&; E) NUMERIC OR STRING VALUE RETURNED5; 11. PRESERVATION OF USER DATA UNLESS EXPLICIT CLEAR!; 12. IMPLIED LET IN IF STATEMENT); 13. PROGRAM CHAIN STATEMENT (30-SEP-76)*; 14. PROGRAM OVERLAY STATEMENT (1-OCT-76); 15. ON ERROR GOTO (15-DEC-76); 16. BINARY I/O6; 17. GOSUB - RETURN IN MIDDLE OF MULTI-STATEMENT LINE); 18. FOR - NEXT LOOPS NESTED ON ONE LINE=; 19. DEFAULT PROGRAM FILE NAME, EXTENSION AND DEVICE CHANGED*; BY OLD, CHAIN, RUN, OVERLAY (31-MAR-77).; 20. WAIT STATEMENT ADDED (TIME OUT ON INPUT)+; 21. CTRL-C AST FOR PROGRAM STOP 11-MAY-77; 22. PRIORITY STATEMENTG; 23. ONE BYTE TOKEN REPLACEMENT FOR FCNS + OTHER KEY WORDS - 24-JUN-773; 24. SAVE + RECALL OF COMPILED PROGRAM - 29-JUN-77"; 25. IF END STATEMENT - 22-JUL-77'; 26. LOADABLE ASSEMBLY ROUTINES OCT-77,; 27. LINE HEADERS WITH BINARY SEARCH MAR-78; 28. TRACE FEATURE MAR-78; 29. VIRTUAL ARRAYS MAY-78; 30. CONTINUED LINES JULY-78; 31. IF-THEN-ELSE SEP-786; 32. WRITE PASS ALL AND OTHER TERMINAL CONTROL NOV-78U; ;DSS1U; ;DSS1U; MODIFIED FOR FPP EMULATION (CONDITIONAL ON FPPEMU) ;DSS1U; FPPEMU DEFINED (OR NOT) IN ASSEMBLY PREFIX FILE ;DSS1U; BY DANIEL STEINBERG 18-JAN-79 ;DSS1U; ;DSS1U; MODIFIED TO FORBID WILD CARDS IN FILE SPECS (THEY USED TO ONLY MATCH ;DSS1U; THE FIRST OCCURRENCE OF A FILE (WHICH DEPENDS ONLY ON THE ORDER IN THE ;DSS1U; DIRECTORY FILE....NOT A GOOD THING TO COUNT ON) 18-JAN-79 ;DSS1U; ;DSS1U; MODIFIED TO STOP EXECUTION AT NEXT LINE NUMBER WHEN BRFLAG IS SET (CONTROL-C) ;DSS1U; (USED TO BE THAT BREAKS WOULDN'T OCCUR IF NEXT STATEMENT WAS BRANCHED TO) ;DSS1U; ;DSS1U; ;DSS1U; ;DSS1U; CONDITIONAL ON M11EXT ---- ;DSS1U; MODIFIED TO EXTEND ITSELF ( 1K BYTES AT A TIME ) WHEN STORAGE RUNS OUT ;DSS1U; (SEE TSTU00) ;DSS1U; DANIEL STEINBERG 13-FEB-79 ;DSS1H; SAME ALTERED TO WORK WITH IAS VERSION 3.2 F.BORGER, JULY 1981 ;FRB3.2  .SBTTL MACRO DEFINITIONS7 ;CODE TO CONVERT TRAP SUBROUTINE CALLS TO NORMAL JSR'S ;FOR OPERATION UNDER RSX. ;9 ;DEFINE A GENERAL MACRO TO GENERATE A SECOND MACRO WHICH% ;CONVERTS A TRAP NAME OF XXXXXX TO A ; JSR PC,XXXXXX ; .MACRO TRPSUB A,B .MACRO A JSR PC,B .ENDM .ENDM;,; NOW ALL THE ONE-TIME TRAPS THAT BASIC USES;% TRPSUB ATOI,ATOI00 ;ASCII TO INTEGER+ TRPSUB CLOSEF,CLOS00 ;CLOSE ANY OPEN FILES5 TRPSUB CLRUSR,CLRU00 ;CLOSE TEMP USER SPACE (IF ANY) TRPSUB CRLF,CRLF00 ;DO [CR,LF]3 TRPSUB EVAL,EVAL00 ;EVALUATE ARITHMETIC EXPRESSION0 TRPSUB EVALS,EVLS00 ;EVALUATE STRING EXPRESSION/ TRPSUB FINDLN,FIND00 ;FIND LINE NUMBER (IN R0)- TRPSUB 002TADATADATADATADATADATAGETVAR,GETV00 ;GET TRUNCATED VARIABLE- TRPSUB ITOA,ITOA00 ;CONVERT INTEGER TO ASCII5 TRPSUB JUNKIT,JUNK00 ;SKIP OVER TRASH TO END OF LINE2 TRPSUB PACK,PCK00 ;PACK LINE INTO WORKING STORAGE& TRPSUB PRINTC,PRNT00 ;PRINT CHARACTER/ TRPSUB PRINTL,PRN00 ;PRINT LINE, R0=FBA,R1=LBA4 TRPSUB SCRNCH,SCR00 ;DELETE N BYTES FROM USER SPACE3 TRPSUB SKIP,SKIP00 ;SKIP OVER SPACES IN INPUT TEXT8 TRPSUB SQUISH,SQU00 ;DELETE TEXT TO TERMINATOR AND PACK? TRPSUB SRCHLF,SRCH00 ;SEARCH FOR LINE FEED USING R1 AS POINTER, TRPSUB STRLEN,STRL00 ;COMPUTE STRING LENGTH7 TRPSUB TSTCH,TST00 ;TEST CHAR (IN R2) ALPHA VS NUMERIC7 TRPSUB TSTOK,TSTU00 ;CHECK, IS THERE ENOUGH USER SPACE * .SBTTL GLOBALS, REGISTERS AND MACRO CALLS;; GLOBALS--ERROR CALLS;* .GLOBL LINERR ILCERR OVFERR SBSERR SUBERR* .GLOBL UNRERR UNMERR LNNERR CSIERR OPNERR* .GLOBL CLSERR FNMERR EOFERR CLOSER OPENER* .GLOBL TM1ERR TM2ERR SLPERR WATERR TMOERR .GLOBL PRIERR PRFERR LODERR;&; GLOBALS--REFERENCES TO OTHER MODULES;& .GLOBL LET00 READ00 REM00 RUN00 RES00& .GLOBL RET00 DIM00 PR00 GOSB00 GOTO00& .GLOBL IF00 FOR00 NEXT00 INP00 STOP00 .GLOBL DEF00 RND01 RUN01" .GLOBL PARLST P.FCS ATTACH DETACH) .GLOBL GOTO02 GOTO03 GOTO04 ERRBRN INP01* .GLOBL FPEXTR FPERMS CALL00 OPLB00 ONGT00;!; GLOBALS--INTERNAL, DEFINED HERE;( .GLOBL PRNT00 CRLF00 PRLN00 PRN00 TST00( .GLOBL SKIP00 FIND00 SQU00 PCK00 SRCH00( .GLOBL TSTU00 JUNK00 PUSH00 SRL00 PCK03) .GLOBL CLRU00 SCR00 ARYL00 DIMC00 GETV00* .GLOBL CLSEAL FILFND FIND01 INIT01 INIT03" .GLOBL CLOS00 OLD01 STRL00 FPEXFL .GLOBL FNMB00 LINELN LINEFL* .GLOBL CSDSPT CSINT0 FILFN1 OP.LUN COMFNB! .GLOBL WTMAG WTUNIT CTCENT OLD02! .GLOBL VECTAB UNLD01 SRCHFL SLUP( .GLOBL SLUP01 SLDN SLDN01 PRLN01 LOAD00;# .GLOBL INIT00 INIT02 INIT10 INIT13 .GLOBL INIT12;& .GLOBL ENDSTK RNDM DATI STUDAT ENUDAT% .GLOBL LINENO RUNF USR ENDUSR ENDTXT$ .GLOBL TINPT TOTPT INPT OTPT LASTEX# .GLOBL STCOUN S.EOL2 S.EOS1 S.EOS2" .GLOBL S.DATA S.NEXT S.EOL1 S.BAS;; REGISTER ASSIGNMENTS;*R0 = %0 ;TEMPORARY AND PARAMETER TRANSFER*R1 = %1 ;TEMPORARY AND PARAMETER TRANSFERR2 = %2 ;SCRATCHR3 = %3 ;SCRATCHR4 = %4 ;SCRATCHR5 = %5 ;USER LIST POINTERSP = %6 ;BASIC STACK POINTERPC = %7 ;PROGRAM COUNTER;AC0 = %0 ;F.P. REGISTER 0AC1 = %1 ;F.P. REGISTER 1AC2 = %2 ;F.P. REGISTER 2AC3 = %3 ;F.P. REGISTER 3D .PSECT VERBAD,RW,I,GBL,REL,CON ;ROUTINE ADDRESSES FOR VERBS IN HERE3 .PSECT BASIC3,RW,I,GBL,REL,CON ;START OF MAIN BODY;RSX MACRO CALLS .MCALL GET$ PUT$ OPEN$R OPEN$W .MCALL CLOSE$ OPEN$ CSI$ DELET$! .MCALL CSI$1 CSI$2 NMBLK$ FDAT$R .MCALL DIR$ EXIT$S CMKT$S .MCALL CSI$SW CSI$SV .MCALL CSI$ND FDAT$R FDRC$R .MCALL MRKT$S WTSE$S" .MCALL CLEF$S QIO$S WTLO$S RDAF$S .MCALL ALTP$S QIOW$S;D .IF DF,M11EXT ;IF EXTEND TASK ;DSS1E .IIF NDF,RSX11M .ERROR ;MUST BE RSX11M ;DSS1E .IIF NDF,SNGUSR .ERROR ;SNGUSR MUST BE DEFINED ;DSS1> .MCALL EXTK$S ;EXTEND TASK DIRECTIVE ;DSS1N .ENDC ;DSS1- .IF DF,IASEXT ;OR IAS VERSION 3.2 ;FRB3.2@ .MCALL EXTK$S ;EXTEND TASK DIRECTIVE ;FRB3.2P .ENDC ;FRB3.2 - .SBTTL PCK00 - GET A LINE FROM INPUT DATASET;-; PACK - PCK00 GET A LINE FROM INPUT DATASET3; USE OLD DEVICE IF INITIALISED, OTHERWISE TERMINAL;3PCK00: MOV INPT,R2 ;GET FILE CONTROL BLOCK POINTER MOV R0,-(SP) ;SAVE R0& CMP #TINPT,R2 ;IS THIS TERMINAL INPUT BNE PCK06 ;BR IF NOT! TST TCOUNT ;ANYTHING IN BUFFER? BLE 3$ ;BR IF NOT2 MOVB #'$,OUTQIO+Q.IOPL+4 ;PUT IN CARRIAGE CONTROL# TSTB WPASFL ;WRITE PASS ALL FLAG? BEQ 5$ ;IF NOT, BRANCH0 CLRB OUTQIO+Q.IOPL+4 ;SET NULL CARRIAGE CONTROL> MOV #IO.WVB!TF.WAL,OUTQIO+Q.IOFN ;SET WRITE PASS ALL FCN CODE,5$: MOV #TOTPT,OTPT ;POINT TO TERM OUT BLOCK JSR PC,PRNT01 ;FORCE OUT STUFF.3$: CLEF$S #1 ;MAKE SURE MARK TIME FLAG CLEAR00zVW4 MOV #IO.RVB,INPQIO+Q.IOFN ;SET NORMAL READ FCN CODE! TSTB RPASFL ;READ PASS ALL SET?T BEQ 6$ ;IF NOT, BRANCH: BIS #TF.RAL,INPQIO+Q.IOFN ; SET READ PASS ALL SUBFCN CODE6$: TSTB ECHOFL ;ECHO SET?O BNE 7$ ;IF SO, BRANCH (NORMAL)9 BIS #TF.RNE,INPQIO+Q.IOFN ; SET READ NO ECHO SUBFCN CODEI7$: DIR$ #INPQIO ;DO THE READ BCC 4$ ;IF OK, BRANCH  JMP PCK14 ;ELSE REPORT ERROR 4$: TST WTMAG ;TIME OUT SPEC'D? BEQ 2$ ;IF NOT, SKIP MARK TIME& MRKT$S #1,WTMAG,WTUNIT ;SET MARK TIME.2$: WTLO$S 0,#3 ;WAIT FOR SOMETHING TO HAPPEN+ SUB #10,SP ;ALLOCATE SPACE FOR 4 WD BLOCK MOV SP,R0 ;PTR TO BLOCK -> R0! RDAF$S R0 ;GET THE 4 FLAG WORDS& MOV (R0),R0 ;GET FIRST FLAG WD -> R0 ADD #10,SP ;CLEAN UP STACK) BIT #1,R0 ;CHECK FOR FLAG 1 (MARK TIME)/ BEQ 1$ ;IF FLAG CLEAR, READ FINISHED - BRANCH1 MOV #IO.KIL,INPQIO+Q.IOFN ;SET KILL READ REQUEST DIR$ #INPQIO ;DO THE KILL* JSR PC,ATTACH ;AND NOW RE-ATTACH TERMINAL TMOERR ;ERROR TRAP (TIMEOUT) 1$: CMKT$S #1 ;CANCEL MARK TIME MOV INPSTA,R1 ;IO STATUS -> R1 ADD #14,R2 ;UPDATE R2 AND% MOV INPSTA+2,R0 ;PUT AWAY THE COUNT TSTB R1 ;ERROR?! BMI PCK13 ;IF SO, PROCESS ERROR* BR PCK15 ;ELSE PROCESS LINE SUCCESSFULLYPCK06: ADD #14,R2 ;& MOV (R2),R0 ;R0 CONTAINS FDB ADDRESS= GET$ ,-4(R2),-12(R2) ;GET RECORD WITH EXPLICIT RECORD BUFFER BCC PCK02$ MOVB F.ERR(R0),R1 ;ERROR CODE IN R1PCK13: MOV (SP)+,R0 ;RESTORE R0$ CMPB R1,#IE.EOF ;IS IT END OF FILE? BEQ 1$ ;IF SO, BRANCH3 CMPB R1,#IE.PRI ;MIGHT BE READ PAST END OF RAN ACC1 BNE PCK01 ;FILE, IF NOT PRIVILEGE ERROR, BRANCH* BIT #2000,-16(R2) ;MAKE SURE RAN ACC FILE" BEQ PCK01 ;IF NOT, REGULAR ERROR-1$: CLR LINEFL ;IN CASE BINARY OR INPUT LINEA BIC #LOWNOC,LOWFLG ;IN CASE READING TEXT WITH NO CASE CONVERSION( CMP #LNKOLD,R2 ;IS THIS EOF ON OLD D.S. BEQ PCK09 ;BR IF SO) MOV 2(R2),R0 ;MAYBE SAVE EOF LINE NUMBER! BNE PCK07 ;IF THERE, GO PROCESS CMP #LNKTIN,R2 ;IS IT TERMINAL! BEQ PCK12 ;IF YES CHECK FURTHER) ;ELSE DO ERROR WHICH CLOSES ALL FILESPCK08: EOFERR ;EOF ERROR# ;EOF IN RUN MODE WITH USER EXIT!PCK07: MOV ENDSTK,SP ;RESET STACK FINDLN ;GO LOOK FOR IT BNE PCK08 ;ERROR IF NOT FOUND JMP INIT13 ;ELSE GO PROCESS!PCK12: TST RUNF ;ARE WE RUNNING? BEQ PCK11 ;IF NOT, EXIT JMP STOP00 ;ELSE, JUST STOP-PCK11: CLRUSR ;DO CLEAR SO FILES GET CLOSED) EXIT$S ;WE GOTTA GET OUTA THIS PLACE..;EOF ON OLD INPUT FILEPCK09: CLOSEF ;CLOSE OLD. CLR OLDFLG ;SHOW NORMAL END IF PROGRAM INPUT MOV ENDSTK,SP ;RESET STACK TST RUNF ;ARE WE IN RUN MODE BEQ PCK10 ;BR IF OLD COMMAND JMP RUN01 ;ELSE RUN IT'PCK10: JMP INIT00 ;GET ANOTHER COMMAND-PCK01: CMPB R1,#IE.DNR ;IS THIS A HUNG-UP TTY# BEQ PCK11 ;IF SO, CLOSE DOWN SHOP+ MOV R1,PARLST+P.FCS ;RECORD FCS ERROR CODE(PCK14: LINERR ;ELSE GIVE ERROR MESSAGE+PCK02: MOV F.NRBD(R0),R0 ;RECORD SIZE -> R0+PCK15: MOV -4(R2),R1 ;ADDRESS OF DATA IN R14 MOV R0,LINELN ;RECORD LINE LEN IN CASE "INPUT LINE"$ ADD R1,R0 ;CHAR AFTER RECORD IN R0 TST LINEFL ;DOING LINE?, BEQ PCK03 ;IF NOT, CHECK LEGALITY OF CHARS) MOV R0,R1 ;ELSE POINT R1 TO END OF LINE) BR PCK05 ;AND DO END OF LINE PROCESSING!PCK03: CMP R0,R1 ;END OF STRING? BLE PCK05 ;IF SO BRANCH' CMPB #'",@R1 ;TEXT STRING IN SOURCE ? BNE 2$ ;IF NOT IGNORE: BIT #LOWNOC,LOWFLG ;DOING INPUT WITH NO CASE CONVERSION ?& BNE PCK04 ;IF SO, " IS BAD CHARACTER@ BIT #LOWSTR,LOWFLG ;HAVE WE ALREADY TURNED OFF CASE CONVERSION? BEQ 1$ ;BR IF NOT, TURN IT ONA BIC #LOWSTR,LOWFLG ;EXITING TEXT STRING, TURN CONVERSION BACK ON BR 2$ ;AND SKIP NEXTE1$: BIS #LOWSTR,LOWFLG ;ON FIRST " IN SOURCE FILE, DISABLE CASE CONV.>2$: CMPB #'!,@R1 ;REMARK FIELD SHOULD ALSO TURN ON LOWER CASE BNE 22$ ;BR IF NOT= BIT #LOWSTR,LOWFLG ;BUT ! IN STRING NOT REALLY COMMENT FIELD BNE 22$= BIS #LOWCOM,LOWFLG ;DISABLE CASE CONVERSION IN COMMENT FIELD222$: TSTB UPPFL ;UPPER CASE CONVERSION TURNED ON? BNE 23$ ;BR IF IT IS7 BIT #LOWNOC!LOWSTR!LOWCOM,LOWFLG ;LOWER CASE ALLOWED ? BNE 3$ ;BR I002TADATADATADATADATADATAF IT IS%23$: CMPB #140,@R1 ;CHECK NOT TOO BIG BGT 3$ ;BR IF OK0 BICB #40,@R1 ;CONVERT LOWER CASE TO UPPER CASE'3$: CMPB #40,(R1)+ ;CHECK NOT TOO SMALL BLE PCK03 ;DO NEXT CMPB #11,-1(R1) ;WAS IT TAB? BEQ PCK03 ;IF SO, IT'S OK9PCK04: BIC #LOWNOC!LOWSTR!LOWCOM,LOWFLG ;CLEAR CON. FLAGS ILCERR-PCK05: MOVB #S.EOL2,(R1) ;SET LINE TERMINATOR MOV -4(R2),R1 ;SET DATA ADDRESS MOV (SP)+,R0 ;RESTORE R0= BIC #LOWSTR!LOWCOM,LOWFLG ;CLEAR ANY POSSIBLE PGM CONVERSION RTS PC ;AND RETURN  .PSECT BASIC3 USDFNB: NMBLK$ BASDAT,DAT,0,SY,04SCDFNB: NMBLK$ SCR,BAS,0,SY,0 ;DFNB FOR SCRATCH FDB ) .SBTTL PRNT00 - OUTPUT CHARACTER OR LINE;*; PRINTC - PRNT00 OUTPUTS CHARACTER IN R21; ON SAVE DEVICE IF INITED, OTHERWISE ON TERMINAL;<; FOLLOWING CODE OUTPUTS A SINGLE CHARACTER INTO FILE BUFFER .PSECT BASIC3PRNT00: MOV R0,-(SP) ;SAVE A REGISTER( MOV OTPT,R0 ;GET CNTRL BLOCK ADD -> R0' CMP 2(R0),6(R0) ;COMPARE MAX TO ACTUAL BHI 1$ ;IF STILL ROOM, BRANCH" JSR PC,PRNT01 ;IF NOT, PRINT LINE*1$: MOVB R2,@(R0) ;PUT CHARACTER IN BUFFER INC (R0) ;PUSH PTR ALONG$ INC 6(R0) ;AND ADD TO ACTUAL COUNT MOV (SP)+,R0 ;RESTORE R0! RTS PC ;AND RETURN WHERE CALLED;'; SUBROUTINE TO PRINT OUT A LINE BUFFER; WHICH HAS BEEN ACCUMULATED ; ON ENTRY:!; OTPT IS PTR TO DEVICE FOR PRINT ; ON EXIT:; LINE PRINTED; BUFFER PTRS INITIALIZED; REGISTERS USED: NONE;CRLF00:#PRNT01: MOV R0,-(SP) ;SAVE A COUPLE MOV R1,-(SP) ;OF REGISTERS% MOV OTPT,R0 ;POINT TO CONTROL BLOCK MOV R0,R1 ;COPY ADD -> R1& MOV 10(R1),(R1) ;RESET BUFFER ADDRESS8 MOV 14(R1),R0 ;FDB ADDRESS (OR QIO BLOCK ADDRESS) -> R0( CMP R1,#TOTPT ;IS THIS TERMINAL OUTPUT? BEQ 2$ ;IF SO, SPECIAL CODE# PUT$ ,10(R1),6(R1) ;DO PUT TO FILE' BCS 4$ ;IF ERROR, GO TO ERROR ROUTINE1$: CLR 6(R1) ;CLEAR THE COUNT MOV (SP)+,R1 ;RESTORE REGISTERS MOV (SP)+,R0 ; RTS PC ;AND RETURN02$: MOV 10(R1),Q.IOPL(R0) ;SET ADDRESS OF BUFFER* MOV 6(R1),Q.IOPL+2(R0) ;SET BUFFER LENGTH BNE 6$ ;IF NON-ZERO, BRANCH' CLRB @10(R1) ;ELSE PUT NULL IN BUFFER/ INC Q.IOPL+2(R0) ;AND ADD ONE TO BUFFER LENGTH6$: DIR$ R0 ;DO THE QIO. MOVB #40,Q.IOPL+4(R0) ;RESET CARRIAGE CONTROL* MOV #IO.WVB,OUTQIO+Q.IOFN ;RESET FCN CODE BCS 3$ ;IF ERROR, BRANCH BR 1$ ;AND GO FINISH33$: MOV OUTSTA,PARLST+P.FCS ;SET UP FILE ERROR CODE BR 5$ ;AND GO DECLARE ERROR:4$: MOVB F.ERR(R0),R0 ;ERROR CODE WITH EXTENDED SIGN -> R0# MOV R0,PARLST+P.FCS ;STORE IT AWAY$5$: PRNERR ;DECLARE ERROR IN PRINT & .SBTTL BREAK - WRITE PASS ALL COMMAND;+3; .S ; .X R0R MOV 2(R3),R1 ;DIMENSIONS -> R1T* BEQ 1$ ;IF BOTH ZERO, SHORT CUT (BRANCH)- JSR PC,STRL00 ;ELSE GO COMPUTE STRING LENGTHE ADD #6,R0 ;ACCOUNT FOR HEADERR)2$: ADD R0,R3 ;MOVE US AROUND THE STRINGB BR SRL08 ;AND GO LOOK AGAIND51$: ADD #10,R0 ;ADD 6 FOR HEADER, 1 FOR LEN BYTE ANDO ;1 FOR ROUNDUP BIC #1,R0 ;MAKE SURE EVEN  BR 2$)SRL10: TM2ERR ;SHOULDN'T HAVE THIS TYPE &SRL11: MOV (R3),R0 ;HEADER BACK IN R0 ADD #3,R0 ;ROUND UP LENGTH) BIC #160001,R0 ;MAKE EVEN AND CLEAR TYPEA ADD R0,R3 ;GET TO NEXT ITEM$ BR SRL08 ?SRL12: MOV R3,PARLST+P.FCS ;STORE ADDRESS IN FCS ERROR LOCATION1+ MOV R0,PARLST+P.FLNM ;STORE LAST INCREMENT & MOV R4,PARLST+P.FNAM ;AND SEARCH TYPE" TM1ERR ;DECLARE DEBUGGING ERROR>SRL13: ADD #16,R3 ;GO AROUND VIRTUAL ARRAY ELEMENT DESCRIPTOR BR SRL08D - .SBTTL ARYL00 - COMPUTE NUMERIC ARRAY LENGTH ; ; ON ENTRY:2; R0 HAS DATA TYPE (0=REAL*4, 2=INTEGER*2, 4=BYTE) ; R3 POINTS TO CURRENT DATA ITEM;A ; ON EXIT:5; R0 HAS LEN OF ITEM ROUNDED UP, BUT EXCLUDING HEADER ; R3 AS ABOVE ; ; OTHER REGISTERS USED: R1; .ENABL LSB ARYL00: 5 MOV 5$(R0),-(SP) ;PUT MULTIPLICATION FACTOR ON STACKC' MOV 2(R3),-(SP) ;AND PACKED DIMENSIONS! BNE STRL01 ;IF NON-ZERO, BRANCHU CLR R0 ;ELSE SHORT CUT BR 2$5$:I .WORD 4 ;REAL*4I .WORD 2 ;INTEGER*2 .WORD 1 ;BYTE ;T3 .SBTTL STRL00 - COMPUTE LENGTH OF STRING DATA ITEMP;2 ; ON ENTRY:M!; R0 HAS INDIVIDUAL STRING LENGTH; R1 HAS PACKED DIMENSIONS;R ; ON EXIT:@; R0 HAS TOTAL LENGTH OF STRING ROUNDED UP, BUT EXCLUDING HEADER;TSTRL00: + INC R0 ;ACCOUNT FOR LENGTH BYTE IN STRINGN. MOV R0,-(SP) ;SAVE IT AS MULT FACTOR ON STACK) MOV R1,-(SP) ;PACKED DIMENSIONS ON STACKT#STRL01: CLR R0 ;CLEAR OUT REGISTERT* BISB (SP),R0 ;FIRST DIM -> R0 (UNSIGNED)% BEQ 1$ ;IF ZERO, CAN SKIP COME CODE; CLR R1 ;CLEAR OTHER REGIST00zVWER1 BISB 1(SP),R1 ;GET 2ND DIM -> R1 (ALSO UNSIGNED)E% BEQ 2$ ;IF ZERO, ALSO CAN SKIP CODEB INC R0 ;ADD ONE TO EACH DIMF' INC R1 ;TO ACCOUNT FOR ZEROTH ELEMENTB MUL R1,R0 ;PRODUCT -> R0, R1 TST R0 ;CHECK HIGH ORDER WORDN BNE 4$ ;IF NON-ZERO, ERROR$ MOV R1,R0 ;IF OK, PUT RESULT -> R0% BR 3$ ;BRANCH AROUND SHORT CUT CODE 1$: BISB 1(SP),R0 ;2ND DIM -> R0'2$: INC R0 ;ACCOUNT FOR ZEROTH ELEMENTS3$: TST (SP)+ ;POP DIMENSIONS. MUL (SP)+,R0 ;MULTIPLY BY LENGTH OF 1 ELEMENT) TST R0 ;AGAIN CHECK HIGH WORD OF RESULTA BNE 4$ ;IF NON-ZERO, ERROR MOV R1,R0 ;RESULT BACK TO R0 INC R0 ;NOW DO ROUND-UPA BIC #1,R0 ;IN CASE ODD SIZE RTS PC,-4$: OVFERR ;OVERFLOW ERROR IF ARRAY TOO BIGA .DSABL LSBB< .SBTTL SCR00 - DELETE BYTES FROM R3 TO R4 FROM USER STORAGE;,B; SCRNCH - SCR00, DELETE THE NUMBER OF BYTES FROM THE USER STORAGE7; SPECIFIED BY R4. R3 POINTS TO STARTING POINT FOR THEN&; DELETION. REGISTERS USED - R2,R3,R4;T,SCR00: MOV R3,R2 ;GET A COPY OF THE POINTER+ ADD R4,R2 ;R2 HAS START OF REMAINING DATA4+ MOV ENUDAT,R4 ;END OF REMAINING DATA IN R4A( SUB R2,R4 ;LEN OF REMAINING DATA IN R4! ASR R4 ;# WDS OF REMAINING DATAC BEQ 2$ ;IF ZERO, SKIP THE MOVE'1$: MOV (R2)+,(R3)+ ;MOVE OLD DATA DOWNR SOB R4,1$,2$: MOV R3,ENUDAT ;ESTABLISH NEW END OF DATA RTS PCI' .SBTTL SQU00 - DELETE ONE LINE OF TEXTR;0>; SQUISH - SQU00, DELETE LINE WHOSE HEADER IS POINTED TO BY R5 ; ON ENTRY:S; R5 HAS POINTER TO LINE HEADER, ; ON EXIT:3; R5 = OLD R5 + 4 (POINTS TO PRECEDING LINE HEADER)B@; R1 POINTS TO INSERTION POINT FOR NEW LINE (WHERE OLD LINE WAS)+; OLD LINE HEADER AND LINE TEXT ARE DELETEDO; ENDTXT AND BOLNHD UPDATEDE; $SQU00: MOV 2(R5),R1 ;GET TEXT OFFSET" ADD USR,R1 ;ADD BASE FOR ABS ADD MOV R1,R2 ;GET TWO COPIESP# SRCHLF ;START OF NEXT LINE -> R1 MOV R1,-(SP) SUB R2,(SP) MOV ENDTXT,R3 ;CALC # OF CHARSE SUB R1,R3 ;TO MOVE -> R3% BEQ 2$ ;IF ALREADY THERE, SKIP CODEI-1$: MOVB (R1)+,(R2)+ ;SLIDE REST OF CODE DOWNE SOB R3,1$32$: MOV BOLNHD,R2 ;BOTTOM OF LINE HEADER AREA -> R2. MOV R5,R3 ;CURRENT POSITION IN HEADERS -> R3 MOV R0,-(SP) ;SAVE R0 MOV #4,R0 ;4 BYTES TO MOVE UPE JSR PC,SLUP ;SLIDE IT ALL UP" ADD R0,R5 ;ADJUST POSITION OF R5) ADD R0,BOLNHD ;AND BOTTOM OF HEADER AREAI MOV (SP)+,R0 ;RESTORE OLD R0E5 MOV (SP)+,R2 ;# OF BYTES WE MOVED TEXT DOWN BY -> R2O MOV #4,R3* MOV R5,-(SP) ;SAVE HEADER INSERTION POINT/3$: SUB R3,R5 ;NOW GO THROUGH ALL HEADERS PASTR/ CMP R5,BOLNHD ;ONE WE DELETED AND ADJUST THEIRE- BLO 4$ ;OFFSETS TO ACCOUNT FOR MISSING TEXTU SUB R2,2(R5)K BR 3$24$: SUB R2,ENDTXT ;ALSO ADJUST END OF TEXT POINTER- MOV (SP)+,R5 ;RESTORE HEADER INSERTION POINT#( CMP R5,BOLNHD ;IS IT AT END OF PROGRAM? BNE 5$ ;IF NOT, BRANCH0 MOV ENDTXT,R1 ;IF SO, ENDTXT IS INSERTION POINT BR 6$<5$: MOV -2(R5),R1 ;GET INSERTION OFFSET (START OF NEXT LINE)" ADD USR,R1 ;AND MAKE IT ABSOLUTE 6$: RTS PC .SBTTL SRCH00 - SEARCH FOR EOLO;L>; SRCHLF - SRCH00, SEARCH FOR EOL, POINTER IN R1, WHEN DONE R17; POINTS ONE BYTE AFTER THE EOL. REGISTERS USED - R1.K;G;SRCH00: CMPB (R1)+,#S.EOL2 ;IS THIS CHAR A LINE TERMINATOR?B BNE SRCH00 ;NO RTS PCE O> .SBTTL FIND00 - SEARCH TEXT FOR LINE NUMBER (SPECIFIED IN R0);A; FINDLN - FIND00 5; SUBROUTINE TO FIND A GIVEN LINE IN THE PROGRAM TEXTB*; BY SEARCHING THROUGH LINE NUMBER HEADERS ; ON ENTRY:; R0 HAS REQUIRED LINE NUMBERA ; ON EXIT:(; R1 HAS ABSOLUTE START OF LINE IF MATCH,; R1 HAS INSERTION POINT IN TEXT IF NO MATCH; R5 POINTS TO HEADER IF MATCH1; R5 POINTS TO HEADER INSERTION POINT IF NO MATCH ; 'Z' SET IF MATCH; 'Z' CLEAR IF NO MATCHR; R0 UNCHANGED; OTHER REGISTERS USED: R2;M8FIND00: MOV STUDAT,R1 ;R1 PTS ABOVE LOWEST LINE # HEADER/ MOV BOLNHD,R2 ;R2 PTS TO HIGHEST LINE # HEADERIFIND01: CMP R1,R2 ;ANY TEXT?L BEQ 8$ ;IF NOT, BRANCH"1$: CMP R0,-4(R1) ;SEE IF IN RANGE3 BLO 4$ ;IF TOO LOW, R1 IS INSERTION POINT, BRANCHO BEQ 7$ ;IF MATCH, BRANCH' CMP R0,(R2) ;CHECK OTHER END OF RANGEL1 BHI 8$ ;IF TOO HIGH, R2 IS INSERTION002TADATADATADATADATADATA PT, BRANCH3' BEQ 11$ ;IF MATCH AT THIS END, BRANCHT" MOV R1,R5 ;OTHERWISE LET'S SPLIT% SUB R2,R5 ;DIFFERENCE: DIVIDE BY 8,# ASH #-3,R5 ;CLEAR REMAINDER CLC ;(C-BIT) AND ASH #2,R5 ;MPY BY 4T ADD R2,R5 ;ADD BACK OFFSET# CMP R0,(R5) ;AND SEE WHERE WE AREC BEQ 3$ ;IF A HIT, BRANCH" BHI 2$ ;IF IN UPPER HALF, BRANCH$ MOV R5,R2 ;IN LOWER HALF, SO RESET BR 1$ ;RANGE AND TRY AGAIN'2$: MOV R5,R1 ;IN UPPER HALF, SO RESETF BR 1$ ;RANGE AND TRY AGAIN#3$: MOV 2(R5),R1 ;SET POINT IN TEXT. ADD USR,R1 ;WITH OFFSET IN SEZ ;SUCCESS INDICATORM RTS PC ;AND RETURN*4$: MOV R1,R5 ;SET HEADER INSERTION POINT BR 5$ 7$: MOV R1,R5 ;SET FOR MATCH ON SUB #4,R5 ;FOLLOWING LINE2 BR 3$ ;AND FINISH MATCH CODE=8$: MOV R2,R5 ;SET HEADER INSERTION AT HIGH END OF LINE NOS.R8 CMP R5,BOLNHD ;AT BOTTOM OF HEADERS (PAST END OF PROG)? BEQ 10$ ;IF SO, BRANCH=5$: MOV -2(R5),R1 ;START OF NEXT LINE IS TEXT INSERTION POINTR* ADD USR,R1 ;ADD IN START OF TEXT SECTION9$: CLZ ;SET NO MATCHF RTS PC ;AND RETURN210$: MOV ENDTXT,R1 ;END OF TEXT IS INSERTION POINT BR 9$ ;GO FINISH211$: MOV R2,R5 ;MATCH AT HIGH LINE # END OF RANGE BR 3$ ;GO FINISH. .SBTTL GETV00 - GET VARIABLE AND PACK INTO R4; E; GETVAR - GETV00, GET A VARIABLE AND PACK IT IN TRUNCATED ASCII INTOI8; R4. ON RETURN R4 HAS VARIABLE, R2 HAS NEXT CHARACTER.; REGISTERS USED - R1,R2,R4.;TGETV00: SKIP ;GET A CHARACTERT TSTCH ;ALPHABETIC?A BEQ 99$ ;NOR BVS 99$ ;NOI BIC #177700,R2 ;TRUNCATE IT MOV R2,R4 ;AND CLC2 ASH #6,R4 ;SHIFT OVER THE FIRST PART OF THE NAME MOVB (R1)+,R2 ;NEXT CHAR -> R2D TSTCH ;NUMERIC OR ALPHA?- BVS 1$ ;NO* BIC #177700,R2 ;CLEAR OUT EXTRANEOUS BITS( BIS R2,R4 ;YES, ZOT IT INTO THE HEADER" MOVB (R1)+,R2 ;ANOTHER CHAR -> R21$: CCCR RTS PC ;RETURN OK )99$: SEV ;SET OVERFLOW FOR BAD VARIABLES RTS PCS S1 .SBTTL DIMC00 - CHECK RANGE OF DIMENSION (IN R0)0;)B; DIMCHK - DIMC00, MAKE SURE DIMENSION IN R0 IS IN BOUNDS 0 TO 255; REGISTERS USED - R0.;N)DIMC00: CMP R0,#377 ;IN 0 -> 255. RANGE?L BHI 1$ ;IF NOT, BRANCH# SEZ ;SET EQUAL CODE IF IN BOUNDS RTS PCR 1$: CCC ;SET ILLEGAL DIMENSION RTS PCE A/ .SBTTL SAVE00 - LIST PROGRAM ON "SAVE" DATASET ;+2O; .SKIP3 ; .X ^^SAVE\\R; .X ^PROGRAM SAVEC; .HEADERLEVEL 1 ^^SAVE _ [N1][-N2][,N3...]\\$; .BREAK'; ^PRIMARILY AN IMMEDIATE MODE COMMAND.R>; ^IT MAKES A COPY OF THE PRESENT PROGRAM ON THE FILE NAMED IN<; THE STRING FILESPEC (STRING VARIABLE OR STRING IN QUOTES).?; ^OPTIONAL LINE NUMBERS OR LINE NUMBER RANGES CAN BE INCLUDED.V; .FG 1A=; ^THE OPTIONAL SWITCH WILL PRODUCE A PSUEDO-COMPILED VERSIONE5; WHICH CAN BE READ BACK WITH THE SAME SWITCH WITHOUTD<; RE-INTERPRETING THE CODE THUS SAVING A CONSIDERABLE AMOUNT; OF TIME FOR LONG PROGRAMS.@; ^THE DEFAULT EXTENSION WILL BE \\L; .BREAKD; ^THE ^^OLD\\ COMMAND READS IN A PREVIOUSLY SAVED OR EDITED PROGRAM>; FROM THE FILE NAMED IN THE STRING FILESPEC (AS IN ^^SAVE\\).<; ^THE OPTIONAL SWITCH, WHEN SPECIFIED, CAUSES TRUNCATION OF; ^^REM\\ AND ! STATEMENTS.F4; ^THE DEFAULT FILE SPECIFIER IS: ^^SY:PROGRAM.BAS\\?; ^THE R2C+ MOV #4,R3 ;SET TO XFER NAME AND EXTENSIONS"11$: MOV (R0)+,(R2)+ ;MOVE IN NAME SOB R3,11$ ;AND EXTENSION  ADD #14,R0 ;POINT TO ADD #14,R2 ;DEVICE NAMEN MOV (R0)+,(R2)+ ;TRANSFER IT IN MOV (R0)+,(R2)+ ;AND UNIT #;-! JMP INIT04 ;BACK TO INTERPRETERDCLRTXT: MOV USR,R5 ;DELETE ALL, INC R5 ;LEAVE ORIGINAL LF MOV R5,ENDTXT ;SAVE CLR LINENO ;CLEAR LINE NUMBERE' MOV STUDAT,BOLNHD ;DELETE LINE HEADERS  RTS PC ;RETURN4SETEXT: MOV #6273,COMFNB+N.FTYP ;SET "BAS" EXTENSION& BIT #2,REMTRM ;DO WE HAVE /CO SWITCH?# BEQ 1$ ;IF NOT, ALL OK AND BRANCHQ- MOV #6253,COMFNB+N.FTYP ;SET "BAC" EXTENSIONE/ MOV #1,LINEFL ;ENABLE READING OF STRANGE CHARS01$: RTS PC ;AND RETURN7 .SBTTL CHAIN0 - START EXECUTING NEW FILE WITH OLD DATAC;+2 ; .SKIP+; .X ^^CHAIN\\; .X ^PROGRAM CHAINN@; .HEADERLEVEL 1 ^^CHAIN _\\; .BREAKA; ^THE ^^CHAIN\\ COMMAND READS IN ANOTHER ^^BASIC\\ PROGRAM WHILER1; PRESERVING VARIABLES AND OPEN FILES' ^^FCB\\'S.J; ^^GOSUB/RETURN\\ POINTERS, ^^FOR\\ LOOP CONTROL TABLES, USER ^^DEF\\INEDF; FUNCTIONS AND SCRATCH ITEMS ARE ALL DELETED FROM THE USER DATA AREA.C; ^THUS USER FUNCTIONS MUST BE REDEFINED IN ANY NEW PROGRAM MODULE.; .FG 1B; ^THE DEFAULT FILE SPECIFIER AND SWITCHES ARE THE SAME AS FOR THEL; ^^OVERLAY\\ COMM002TADATADATADATADATADATAAND WITH THE ADDITION OF THE /
  • R1" MOV (R3)+,R0 ;SIZE AND TYPE -> R0& BIC #177400,R0 ;CLEAR OUT SIGN EXTEND STRLEN ;CALC LEN -> R0D ADD R0,R3 ;ADD IT ON" BR CHAIN1 ;AND LOOK AT NEXT ITEM.CHN14: TM2ERR ;SHOULDN'T HAVE THIS DATA TYPE)CHN16: MOV (R3),R4 ;SCRATCH HEADER -> R4N$ ADD #3,R4 ;ADD HEADER AND ROUND UP* BIC #160001,R4 ;ALSO CLEARING HEADER TYPE BR CHN03 ;AND DELETE ITEM01CHN13: ADD #16,R3 ;SKIP AROUND VIRTUAL DATA ITEMU BR CHAIN1D .SBTTL OVERLAY - ADD PROGRAM LINES FROM FILE AND OPTIONALLY EXECUTE;+2R; .SKIP ; .X ^^OVERLAY\\; .X ^PROGRAM OVERLAYKC; .HEADERLEVEL 1 ^^OVERLAY _\\1; .BREAKN; ^THE ^^OVERLAY\\ COMMAND READS IN ADDITIONAL PROGRAM TEXT FROM THE SPECIFIEDK; FILE AND ADDS THEM TO THE EXISTING PROGRAM JUST AS THOUGH THEY WERE TYPED,H; FROM THE KEYBOARD: I.E. NEW STATEMENTS WITH THE SAME LINE NUMBER AS AN4; EXISTING STATEMENT REPLACE THE EXISTING STATEMENT.N; ^THE SAME PRECAUTIONS REGARDING FUNCTION DEFINITIONS AND ^^DATA\\ STATEMENTSE; DURING DEBUGGING SHOULD ALSO BE OBSERVED WHEN USING THE ^^OVERLAY\\N; STATEMENT IN PROGRAM MODE.; .FG 1M; ^THE OPTIONAL SWITCH (/^L^I) IS SIGNIFICANT IN PROGRAM MODE ONLY AND CAN BE <; USED TO SPECIFY THE LINE AT WHICH EXECUTION SHOULD RESUME.F; ^THE / ASR R0 ;# WORDS (SHUFFLE INCLUSIVE OF STGOSB) ;DSS1> BEQ 1$ ;DONE! ;DSS1I5$: MOV -(R1),-(R2) ;SHUFFLE (NOT @ENDUSR) TIL AFTER @STGOSB ;DSS1EJ SOB R0,5$ ;DSS1F1$: MOV (SP)+,R2 ;RESTORE REGS ;DSS1J MOV (SP)+,R1 ;DSS1J MOV (SP)+,R0 ;DSS1N CLC ;DSS1N10$: RTS PC ;DSS1U ;DSS1TN .ENDC ;DSS1U ;DSS1TM .SBTTL SCRA00 - DELETE A FILE ;**-1N;+6M; .SKIP1; .X ^^SCRATCH\\; .X ^PROGRAM DELETE/; .HEADERLEVEL 1 ^^SCRATCH _\\H; .BREAK=; ^THE ^^SCRATCH\\ COMMAND MUST HAVE A FILE SPECIFIER WITH AN 4; EXPLICIT VERSION NUMBER IN ORDER TO DELETE A FILE.4; ^THE DEFAULT FILE SPECIFIER IS: ^^SY:PROGRAM.BAS\\; .BREAK ; ^EXAMPLE:2 ; .NOFILLH; ^^; {SCRATCH "DATA.DAT;3"}; {50 SCRATCH "DK1:DAT3.TMP"}F; \\; .FILL$;-SCRA00: SKIP ;GET NEXT CHARB DEC R1 ;RESET TEXT POINTER! CMP R2,#S.EOS1 ;A NEW STATEMENT?M BLO 1$N CSIERR ;MUST HAVE TEXT STRING-1$: JSR PC,FNAME ;CHECK FOR STRING EXPRESSIONI 002TADATADATADATADATADATA MOV R0,-(SP) ;SAVE R0 FROM EVIL JSR PC,CSINT0 ;GET FILE SPECS4 DELET$ #COMFDB,SCRFER ;DELETE FILE SPECIFIED IN FDB( MOV (SP)+,R0 ;RESTORE R0 BACK INTO EVIL& TST R0 ;WAS A STRING EXPRESSION USED BEQ 2$ ;SKIP IF NOTA$ MOV R0,R1 ;ELSE RESET TEXT POINTER%2$: JMP INIT02 ;GO TO COMMAND INTERPN5 .SBTTL FNAME - CHECK STRING EXPRESSION FOR FILE SPEC ;E2; FNAME - CHECK FOR STRING EXPRESSION IN FILE SPEC#; ON ENTRY R1 CONTAINS TEXT POINTER); ON EXIT FOLLOWING REGISTER ASSIGNMENTS:,8; R0: ZERO IF NO STRING TO INTERPRET, OTHERWISE = OLD R1; R1: TEXT POINTER.; R2: ZERO TO INDICATE NO SWITCH TABLE FOR CSI8; R3: ADDRESS OF STRING IN STRING WORK AREA (FROM EVALS)7; R4: LENGTH OF STRING IN STRING WORK AREA (FROM EVALS)A; &FNAME: MOV R1,-(SP) ;SAVE TEXT POINTER# EVALS ;TRY FOR STRING EXPRESSION, BVC 2$ ;BR IF OK STRINGS&3$: MOV (SP)+,R1 ;RESTORE TEXT POINTER CLR R0 ;SET NO STRING FLAG RTS PC ;AND RETURN 2$: TST R4 ;IS IT A NULL STRING BEQ 3$ ;IGNORE IF SO TST (SP)+ ;DELETE TEXT POINTER CLR R2 ;SET NO SWITCH TABLED' CLR REMTRM ;RESET ALL OF THE SWITCHESB# MOV R1,R0 ;INDICATE STRING EXISTST RTS PC ;AND RETURN R .SBTTL OPEN COMMAND PROCESSOR;+6V; .SKIPV ; .X ^^OPEN\\K; .X ^FILE OPENE; .X ^RANDOM ACCESS ^I/^OL; .HEADERLEVEL 1 ,OP.LUN  CSI$SW WR,<400*FO.WRT>,OP.LUN CSI$SW UP,<400*FO.UPD>,OP.LUN CSI$SW MO,<400*FO.MFY>,OP.LUN CSI$SW AP,<400*FO.APD>,OP.LUN CSI$SW SH,<400*FA.SHR>,OP.LUN CSI$NDELENVAL: CSI$SV DECIMAL,OP.LEN,2O CSI$NDMEOFVAL: CSI$SV DECIMAL,OP.EOF,2  CSI$ND;^;SET DEFAULTS FOR FILE OPEN ;:(OPEN00: MOV #S.FDB,R0 ;SIZE OF FDB IN R0 ASR R0 ;NOW IN WORDS$1$: CLR -(SP) ;CLEAR SPACE ON STACK SOB R0,1$ ;FOR FDB MOV SP,FDBSAV MOV SP,R05 FDAT$R R0,#R.VAR,#FD.CR,#80.,#-5 ;ESTABLISH DEFAULTSV MOV #80.,OP.LEN MOV #OP.LUN,R4) CLR (R4)+ CLR (R4)+ CLR (R4)+< MOV #,(R4)+ ;SET DEFAULT TYPE & CARR CNTL' FDOP$R R0,OP.LUN,#CSDSPT,#USDFNB,FO.RD,; END OF FDB INIT CODE SKIPI& CMPB #'#,R2 ;FILE NUMBER TO FOLLOW?? BNE OPEN01 ;ERROR IF NOT EVAL ;GET FILE NUMBER BVS OPEN01 ;PAREN IS ERROR( STCFI AC0,R4 ;MAKE FILE NUMBER INTEGER MOVB R4,OP.LUN ;FILE # = LUNO/ MOV FDBSAV,R0 ;R0 POINTS TO START OF STACK FDBD CMP R4,#2 ;#1 & 2 RESERVED BLE OPEN01#0 CMP R4,#OP.MXL ;SEE IF GREATER THAN MAX ALLOWED BGT OPEN01$ CLR R0,# JSR PC,FILFN1 ;FINISH GETTING FILEL( BNE OPEN01 ;ERROR IF RE-OPEN ATTEMPTED SKIPI CMPB #',,R2 ;SEPARATOR?? BNE OPEN01 ;ERR IF NOT EVALS ;GET FI00zVWLE SPEC. BVC OPEN07 ;BR IF OKOPEN01: OPNERR'OPEN07: MOV R1,-(SP) ;SAVE TEXT POINTER! MOV R4,R0 ;LEN -> R0 FOR CSINT0V+ MOV #OPENSW,R2 ;SWITCH TABLE ADDRESS IN R2P JSR PC,CSINT0 ;DECODE STRINGJ# MOV (SP)+,R1 ;RESTORE TEXT POINTERN/ MOV FDBSAV,R3 ;R3 POINTS TO START OF STACK FDBR6 MOV OP.LUN,F.LUN(R3) ;PUT IN LUN AND FILE ACCESS BITS MOV OP.RTP,F.RTYP(R3)0 BEQ OPEN02 ;IF NO RECORD TYPE, THEN BLOCK XFER MOV OP.RAC,F.RACC(R3), BITB #FD.RAN,F.RACC(R3) ;IS RANDOM BIT SET?& BEQ 2$ ;IF NOT SKIP NEXT INSTRUCTION2 BISB #R.FIX,F.RTYP(R3) ;IF SO FORCE FIXED RECORDS92$: BITB #R.FIX,F.RTYP(R3) ;SEE IF FIXED RECORD SPECIFIEDR" BEQ 1$ ;DON'T DO ANYTHING IF NOT0 BIC #R.VAR,F.RTYP(R3) ;IF SO CLEAR VARIABLE BIT1$: 0; CHECK BUFFER LENGTH AND CONTROL BLOCK FOR ROOM INC OP.LEN ;ROUND UP TO EVEN" BIC #1,OP.LEN ;WORD BUFFER LENGTH MOV OP.LEN,R0 ;PUT IT IN R0 MOV R0,F.RSIZ(R3) ;AND IN FDB: ADD #S.FDB+30,R0 ;ADD IN CONTROL BLOCK LEN AND WORD FUDGE TSTOK ;ENOUGH ROOM? BHIS 11$ ;PROCEED IF OK" OVFERR ;REPORT STORAGE OVERFLOW11$:$ JSR PC,CREFDB ;GO CREATE FDB REGION% MOV R5,R4 ;SAVE A COPY OF FDB STARTN;R0 ASSUMED CLEAR FROM SOB LOOP / MOV FDBSAV,R3 ;R3 POINTS TO START OF STACK FDB,- BITB #FA.WRT,F.FACC(R3) ;WAS WRITE SPECIFIED  BEQ 13$ ;IF NOT GO SET READM( BIS #1000,R0 ;SET WRITE IN CONTROL WORD. BITB #FD.RAN,F.RACC(R3) ;IF RANDOM BIT IS SET BNE 13$ ;SET READ BIT TOO ; BITB #FA.CRE!FA.APD,F.FACC(R3) ;SHOULD FILE BE WRITE ONLY?I BNE 12$ ;IF SO, SKIP READ SETU13$: BIS #400,R0 ;SET READ BIT,/12$: BITB #FD.RAN,F.RACC(R3) ;RANDOM SPECIFIED?S BEQ 5$ ;IF NOT, SKIP BIT SET BIS #2000,R0 ;SET RANDOM BITR&5$: BITB #FD.CR,F.RATT(R3) ;ASCII SET? BNE OPEN06 ;BRANCH IF SO BIS #4000,R0 ;SET BINARY BIT3:OPEN06: BISB F.LUN(R3),R0 ;SET FILE NUMBER IN CONTROL WORD' DEC R0 ;STORE FILE NUMBER AS ONE LESSE MOV R0,(R5)+ ;OUTPUT IT! MOV R5,(R5) ;BUILD CHAR POINTER#& ADD #S.FDB+24,(R5)+ ;BUFFER AFTER FDB/ MOV OP.LEN,(R5)+ ;GET MAX BYTE COUNT (REC LEN)C" ADD #4,R5 ;SKIP OVER 2 LOCATIONS$ MOV -10(R5),(R5)+ ;SET DATA ADDRESS3 CMP (R5)+,(R5)+ ;SKIP TWO PLACES (LB ERR, FDB PTR)E& MOV OP.EOF,(R5)+ ;END OF FILE ROUTINE) ADD #4,R5 ;SKIP OVER 2 UNUSED LOCATIONS # MOV R5,R0 ;START OF FDB NOW IN R0B% MOV #S.FDB,R2 ;# BYTES TO XFER IN R2R ASR R2 ;# WORDS TO XFER IN R2C 3$: MOV (R3)+,(R5)+ ;HEAD 'EM UP SOB R2,3$ ;AND MOV 'EM OUT$ ADD #S.FDB,SP ;GET RID OF STACK FDB3 MOV -14(R0),F.URBD+2(R0) ;ADD OF REC BUFFER IN FDB$, MOV -22(R0),F.URBD(R0) ;LIKEWISE ITS LENGTH JSR PC,.OPEN ;NOW OPEN FILE5 MOVB F.ERR(R0),R0 ;ERROR CODE WITH SIGN EXTEND IN R0F. MOV R0,PARLST+P.FCS ;PUT IN MO PARAMETER LIST& BCC 8$ ;IF OPEN OK GO ADD BUFFER LEN) MOV R4,R3 ;GET SET TO DELETE UNUSED FDBV JSR PC,DELFDB ;DELETE FDB OPENER ;REPORT FCS ERROR(%8$: MOV R4,STUFDB ;SAVE NEW FDB STARTX" JMP INIT02 ;GO TO NEXT STATEMENTOPEN02: . MOVB #R.FIX,F.RTYP(R3) ;SET FIXED RECORD SIZE/ MOV #1000,F.RSIZ(R3) ;AND MAKE IT 1 BLOCK LONG;7 MOV #1030+S.FDB,R0 ;SET SIZE OF FDB+BUFFER AND CONTROLI TSTOK ;CHECK IT BHIS 1$ ;IF OK, BRANCH OVFERR ;ELSE ERROR '1$: JSR PC,CREFDB ;CREATE AN FDB REGIONL) MOV R5,R4 ;COPY START OF NEW FDB REGION & MOV FDBSAV,R3 ;GET START OF STACK FDB/ MOV #10400,R0 ;SET BLOCK MODDE AND READ ACCESS + BITB #FA.WRT,F.FACC(R3) ;WAS WRITE SPEC'D?N BEQ 2$ ;IF NOT, BRANCH& BIS #1000,R0 ;IF SO, SET WRITE ACCESS$2$: MOV #1000,OP.LEN ;SET BUFFER LEN8 BISB #FD.RWM,F.RACC(R3) ;SET READ/WRITE IO (BLOCK MODE)3 MOVB #1,F.BKEF(R3) ;USE EVENT FLAG #1 FOR I/O SYNCI. BR OPEN06 ;AND BRANCH BACK TO MAIN LINE CODE-CREFDB: MOV STGOSB,R2 ;START OF BLOCK TO MOVE\$ MOV STUFDB,R3 ;END OF BLOCK TO MOVE) JSR PC,SLDN ;SLIDE IT ALL DOWN R0 BYTESE SUB R0,STGOSB ;AND ADJUST PTRSE SUB R0,STFONX SUB R0,STUFDB0 MOV STUFDB,R5 ;GET START OF CURRENT BLOCK -> R5 MOV R5,-(SP) ;SAVE R5 ASR R0 ;WORD COUNT IN R0#2$: CLR (R5)+ ;CLEAR THE DATA AREAF! SOB R0,2$ ;AND BRANCH TILL DONE  MOV (SP)+,R5 ;RESTORE OLD R5C RTS PC  T( .SBTTL CLOS00 - USER FILE CLOSE ROUTINE;+6M00 2TADATADATADATADATADATA; .SKIPT; .X ^^CLOSE\\; .X ^FILE CLOSE%; .HEADERLEVEL 1 ^^CLOSE N1[,N2...]\\E; .BREAKE; ^THIS COMMAND CLOSES A USER DATA FILE WHOSE NUMBER IS ^N1, ^N2 ETC.I,; ^NOTE THAT NO _# SIGN PRECEDES THE NUMBER.:; ^IF USED WITH NO FILE NUMBER, ALL USER FILES ARE CLOSED.; .BREAK ; ^EXAMPLE:M ; .NOFILLI; ^^; {60 CLOSE 4}; {70 CLOSE I1}L ; {95 CLOSE}; \\; .FILLB;- CLSE00: SKIP# CMPB R2,#S.EOS1 ;END OF STATEMENT?G BHIS 2$ ;IF SO, ALL WANTED DEC R1 ;REDO LAST CHAR1$: EVAL ;GET A FILE NUMBER  BVS 4$ ;PAREN IS ERROR STCFI AC0,R4 ;GET FILE NUM DEC R4 ;ADJUST CMP #255.,R4 ;VALID?? BLO 4$ ;NOPE MOV #17400,R0 ;SET MASK" JSR PC,CLSEIT ;GOTO CLOSE ROUTINE SKIPF CMP #',,R2 ;MORE FILES?? BEQ 1$ ;GO DO IF SOE BR 6$ ;EXIT2;I; CLOSE ALL FILES ROUTINEV;32$: JSR PC,CLSEAL ;CALL CLOSER 6$: DEC R1 ;ADJUST TEXT POINTER JMP INIT02 ;NEXT STATEMENT4$: CLSERR ;ERROR IN CLOSE;0; ACTUAL CLOSE ROUTINE;N<CLSEIT: JSR PC,SRCHFL ;SEARCH FOR FILE WHOSE NUMBER IS IN R4' BEQ 4$ ;BR NOT THERE (IGNORE REQUEST)S- BIT #10000,(R3) ;DO WE HAVE BLOCK MODE FILE?L BEQ 2$ ;IF NOT, BRANCH& JSR PC,WRITBK ;DO ANY NECESSARY WRITE& BR 3$ ;AND GO BRANCH TO DIRECT CLOSE2$: BIT #1000,@R3 ;THIS OUTPUT BEQ 5$ ;SKIP BUFF CHECK IF NOT BIT #2000,@R3 ;OR IF CONTIG BNE 5$ ;SKIP CHECK' TST 10(R3) ;ANYTHING LEFT IN BUFFER??I BEQ 5$ ;OK IF NOTC MOV R3,R0 ;SET REG TST (R0)+ ;ADJUSTA! JSR PC,PRNT01 ;ELSE FORCE IT OUTP5$: MOV R3,R0 ;GET FDB ADDRESSF ADD #26,R0 ;IN R033$: CLOSE$ ;AND CLOSE 5 MOVB F.ERR(R0),R0 ;ERROR CODE WITH SIGN EXTEND IN R0C0 MOV R0,PARLST+P.FCS ;STORE IN MO PARAMETER LIST# BCC 1$ ;IF NO ERROR, DON'T REPORTN CLOSER ;REPORT FCS ERRORN!1$: JSR PC,DELFDB ;DELETE THE FDB;4$: RTS PC ;AND RETURN,"CLSEAL: CLR R4 ;SEARCH FOR A FILE MOV #17777,R0 ;MASK JSR PC,CLSEIT ;DO A CLOSE# BNE CLSEAL ;IF OK TRY FOR ANOTHERR RTS PC ;ELSE RETURN(;+; ROUTINE DELFDB?; TO DELETE SPACE FOR BASIC FDB (INCL BUFFER AND POINTERS ETC.)C ; ON ENTRY: ; R3 POINTS TO FDB TO BE DELETED ; ON EXIT:; STUFDB,STGOSB,STFONX UPDATED; REGISTERS USED: R0,R2T;R'DELFDB: MOV 4(R3),R0 ;CALCULATE SIZE OF: ADD #S.FDB+30,R0 ;BLOCK -> R0/ MOV STGOSB,R2 ;START OF DATA TO BE MOVED -> R2# JSR PC,SLUP ;SLIDE IT UP ADD R0,STUFDB ;ADJUST PTRSE ADD R0,STGOSB ADD R0,STFONX RTS PC ;AND RETURN;E2; ROUTINE SRCHFL - TO SEARCH FOR FILE WHOSE HEADER%; MATCHES R4 AND MASK TO IGNORE IN R0(; PTR TO FCB -> R3 IF FOUND, 0 OTHERWISE;R.SRCHFL: MOV STUFDB,R3 ;START OF FDB AREA -> R3-1$: CMP R3,ENDUSR ;AT END OF BASIC TASK AREA?O# BHIS 2$ ;IF SO, GO REPORT FAILUREP MOV (R3),R2 ;HEADER -> R2D BIC R0,R2 ;CLEAR OUT MASK  CMP R2,R4 ;MATCH? ' BEQ 3$ ;IF SO, GO RETURN SUCCESSFULLYY! ADD 4(R3),R3 ;OFFSET TO NEXT FDB  ADD #S.FDB+30,R3 ;N BR 1$2$: CLR R3 ;INDICATE FAILURET(3$: TST R3 ;TEST FOR SUCCESS OR FAILURE RTS PC ;AND RETURN O& .SBTTL FNMB00 - FILE NUMBER PROCESSOR;I?; FNMBR/FNMB00 - PROCESS FILE NUMBER, SETUP FILE BLOCK POINTERSN;N"FILFND: MOV R0,-(SP) ;SAVE IO TYPE EVAL ;GET NUMBERI BVS FNMB99 ;PAREN IS ERROR MOV (SP)+,R0 ;RESTORE IO TYPE STCFI AC0,R4 ;GET NUMBERFILFN1: DEC R4 ;IN RANGE 0-255N CMP #255.,R4 ;VALID?? BLO FNMB99 ;NOPE BIS R0,R4 ;SET SEARCH MASK, MOV #177400,-(SP) ;CALCULATE MASK TO IGNORE BIC R0,(SP) MOV (SP)+,R0 ;AND PUT IT IN R0Y JSR PC,SRCHFL RTS PCS FNMB00: SKIP! CMP #'#,R2 ;FILE NUMBER THERE??M BEQ 1$ ;BR IF YESA DEC R1 ;BACKUP POINTER RTS PC ;AND RETURN1$: JSR PC,FILFND  BEQ FNMB99 ;ERROR BR BIT #400,(R3)+ ;INPUT?? BEQ 2$ ;NOPE MOV R3,INPT ;SET INPUT POINTER2$: BIT #1000,-2(R3) ;OUTPUT?? BEQ 5$ ;NOPE! MOV R3,OTPT ;SET OUTPUT POINTER1,5$: MOV R3,14(R3) ;SET UP PROPER FDB POINTER< ADD #24,14(R3) ;IN I/O CONTROL BLOCK (WHICH MAY HAVE MOVED). MOV R3,10(R3) ;UPDATE DATA BUFFER ADDRESS PTR ADD #24+S.FDB,10(R3)O) MOV 10(R3),(R3) ;AND NEXT BYTE AVAIL PTR  ADD 6(R3),(R3)P SKIP ;BUMP R1 PAST COMMAS$ CMPB R2,#', ;MAKE SURE IT IS COMMA' BEQ00zVW 6$ ;AND CHECK THAT ACCESS IS SEQ. % CMPB R2,#'' ;IS CHAR A SINGLE QUOTEI BEQ 7$ ;IF SO, PROCESS4 CMPB R2,#'@ ;ALLOW THIS TYPE OF RECORD # INDICATOR BEQ 7$N( DEC R1 ;OTHERWISE BACK UP TEXT POINTER! BR 6$ ;AND MAKE SURE SEQUENTIALC'6$: BIT #2000,-2(R3) ;IS RANDOM BIT SETR BNE FNMB98 ;IF SO, AN ERROR 3$: RTS PC ;RETURNR&7$: BIT #2000,-2(R3) ;CHECK RANDOM BIT, BEQ FNMB98 ;IF NOT SET, ACCESSM MODE ERROR MOV R3,-(SP) ;SAVE FCB POINTER,# EVAL ;EVALUATE THE RECORD NUMBER;% BVS FNMB99 ;IF ERROR, DO ERROR EXITI1 MOV (SP)+,R3 ;RESTORE FILE CONTROL BLOCK POINTER ! MOV 14(R3),R3 ;FDB ADDRESS IN R3  SETL 6 STCFL AC0,F.RCNM(R3) ;STORE LONG RECORD NUMBER IN FDB SETIN0 BLE FNMB99 ;NEG OR ZERO RECORD NUMBER IS ERROR SKIP ;GET NEXT NON-BLANK CHAR CMPB R2,#', ;CHECK FOR COMMA! BNE FNMB99 ;IF NOT REPORT ERROR1 BR 3$ ;RETURN SUCCESSFULLY2FNMB98: FACERR ;FILE ACCESS MODE ERROR (RAN/SEQ)FNMB99: FNMERR " .SBTTL PRLN00 - PRINT LINE NUMBER; %; PRNTLN - PRLN00 - PRINT LINE NUMBER ; REGISTERS USED - R0,R1,R2.; 0PRLN00: MOV LINENO,R1 ;CURRENT LINE NUMBER -> R1 PRLN01: SUB #10,SP ;DESTINATION MOV SP,R0 ; IS ON THE STACK ITOA ;CONVERT TO ASCII MOV SP,R0 ;PRINT THE RESULTING PRINTL ;PRINT NUMBER  ADD #10,SP ;RESTORE THE STACK  RTS PC  < .SBTTL GET00 - GET LINE LIMITS FOR COMMAND (LIST OR DELETE);N6; GET00 - GET LINE LIMITS FOR COMMAND (LIST OR DELETE) ; ON ENTRY: "; R1 POINTS TO START OF PARAMETERS ; ON EXIT:*; R1 POINTS PAST END OF THIS SET OF PARAMS1; R3 HAS ADDRESS OF LOWEST LINE # HEADER IN RANGE 2; R4 HAS ADDRESS OF HIGHEST INCLUDED LINE # HEADER'; 'Z' SET IF NO LINES INCLUDED IN RANGE &; OTHER REGISTERS USED: R0,R2,R5 (ALL); GET00: SKIP ;GET 1ST CHAR $ CMPB R2,#'* ;ASKING FOR LAST LINE? BNE 1$ ;IF NOT, BRANCH" MOV BOLNHD,R3 ;POINT TO LAST LINE+ CMP R3,STUDAT ;DO WE REALLY HAVE ANYTHING?  BHIS 7$ ;IF NOT, BRANCH;# MOV (R3),R0 ;INDICATE EXACT MATCH  BR 8$1$: DEC R1 ;BACK UP ONE CHARL ATOI ;GET NUMBER -> R0  MOV R1,-(SP) ;SAVE TEXT PTR FINDLN ;FIND THE LINE BEQ 2$ ;IF EXACT MATCH, BRANCH. SUB #4,R5 ;ELSE POINT TO 1ST INCLUDED HEADER"2$: MOV R5,R3 ;COPY POINTER -> R3 MOV (SP)+,R1 ;RESTORE TEXT PTR 8$: SKIP ;NEXT CHAR -> R2R CMPB R2,#'- ;DO WE WANT RANGE? BEQ 4$ ;IF SO, BRANCH  DEC R1 ;BACK UP TEXT PTR TST R0 ;CHECK FOR LINE # 0 BNE 3$ ;IF NOT, BRANCH: MOV BOLNHD,R4 ;IF SO, IT WAS A PLAIN LIST, SO INCLUDE ALL BR 6$ ;GO TO FINAL CHECK3$: CMP R0,(R3) ;EXACT MATCH?* BNE 7$ ;IF NOT, BRANCH TO NO TEXT FINISH MOV R3,R4 ;COPY START -> END BR 6$ ;GO TO FINAL CHECK4$: SKIP CMPB R2,#'* ;LAST LINE ASKED?D BNE 5$ ;IF NOT, BRANCH* MOV BOLNHD,R4 ;PUT LAST LINE HEADER -> R4 BR 6$ ;GO TO FINAL CHECK5$: DEC R1 ;BACK UP ONE CHAR ATOI ;GET SECOND LINE # -> R0 MOV R1,-(SP) ;SAVE OUR TEXT PTR FINDLN ;FIND THE HEADER -> R52 MOV R5,R4 ;COPY -> R4 (NO MATTER IF EXACT MATCH) MOV (SP)+,R1 ;RESTORE TEXT PTR *6$: CMP R3,R4 ;SEE IF ACTUAL RANGE EXISTS BLO 7$ ;IF NOT, BRANCH" CLZ ;MAKE SURE NO 'Z' (SUCCESS) RTS PC ;AND RETURN 7$: SEZ ;SET NO TEXT (FAILURE) RTS PC  % .SBTTL LIST00 - LIST THE SOURCE TEXT ;+2 ; .SKIPS ; .X ^^LIST\\ ; .X ^PROGRAM LIST+; .HEADERLEVEL 1 ^^LIST [N1][-N2][,N3...]\\1; .BREAK/; ^THIS IS PRIMARILY AN IMMEDIATE MODE COMMAND. ?; ^WITH NO ARGUMENTS, THE WHOLE PROGRAM IS LISTED AT THE USER'S ; TERMINAL. :; ^SINGLE ARGUMENTS SEPARATED BY COMMAS WILL LIST ONLY THE; LINE NUMBERS REQUESTED. C; ^TWO ARGUMENTS SEPARATED BY A DASH (MINUS) WILL LIST AN INCLUSIVER; LINE NUMBER RANGE.; .BREAK ; ^EXAMPLE:H ; .NOFILLL; ^^; {LIST} ; {LIST 20}T; {LIST 50,100}; {LIST 50-80,135,710-750}; \\; .FILLR;-!; REGISTERS USED - R1,R2,R3,R4,R5F;HLIST00: ( JSR PC,ATTACH ;ATTACH TERMINAL (FOR ^O)'1$: JSR PC,GET00 ;GET LINE HEADER RANGE  BEQ 31$ ;IF NONE, BRANCH MOV R1,-(SP) ;SAVE TEXT PTR( MOV R4,-(SP) ;SAVE FINAL HEADER ADDRESS% MOV R3,R5 ;INITIAL HEADER ADD -> R5S(2$: CMP R5,(SP) ;PAST END OF RANGE YET?002TADATADATADATADATADATA BLO 3$ ;IF SO, BRANCHO JSR PC,4$ ;GO DO THIS LINE' TSTB BRFLAG ;HAS USER TRIED TO BREAK?F( BNE 32$ ;IF SO, BRANCH TO STOP LISTING! SUB #4,R5 ;POINT TO NEXT HEADER  BR 2$ ;AND GO AROUND AGAIN(3$: TST (SP)+ ;POP FINAL HEADER ADDRESS MOV (SP)+,R1 ;RESTORE TEXT PTRG 31$: SKIP ;NEXT CHAR OF PARAMS0 CMPB R2,#', ;COMMA SEPARATING SETS OF NUMBERS? BEQ 1$ ;IF SO, DO IT AGAIN DEC R1 ;ELSE BACK UP TEXT PTR  CLOSEF ;CLOSE FILE IF OPENI, JSR PC,DETACH ;DETACH TERMINAL (NULLIFY ^O)' JMP INIT02 ;AND GO GET NEXT STATEMENTL32$: ADD #4,SP ;ADJUST STACK . JMP STOP00 ;AND DO A STOP SO WE KNOW IT'S ^C;R+; SUBROUTINE TO PRINT OUT LINE WHOSE HEADER); IS POINTED TO BY R5G; '4$: MOV (R5),R1 ;GET LINE NUMBER -> R1: JSR PC,PRLN01 ;PRINT IT MOV 2(R5),R1 ;SET UP TEXT PTR! ADD USR,R1 ;ADD IN BASE ADDRESSR"5$: MOVB (R1)+,R2 ;NEXT CHAR -> R21 CMPB R2,#'" ;START OR END OF STRING IN SOURCE ?N BNE 52$ ;SKIP IF NOT8 BIT #LOWLST,LOWFLG ;DID WE SET SKIP TOKEN SEARCH FLAG ? BNE 51$ ;IF SO, CLEAR IT2 BIS #LOWLST,LOWFLG ;IF NOT, TURN OFF TOKEN SEARCH BR 52$E251$: BIC #LOWLST,LOWFLG ;TURN TOKEN SEARCH BACK ON852$: CMPB R2,#S.EXC ;REMARK FIELD CAN ALSO BE LOWER CASE BNE 53$ ;BR IF NOT? BIT #LOWCOM!LOWLST,LOWFLG ;S.EXC NOT REAL IN STRING OR COMMENTP BNE 53$ ;SO SKIP ALSOO1 BIS #LOWCOM,LOWFLG ;SHOW WE ARE IN COMMENT FIELDN BR 54$ ;BUT CONVERT THIS TOKEN453$: CMPB R2,#S.EOL1 ;IS CHAR ONE OF 4 TERMINATORS ?" BHIS 15$ ;BR TO TERMINATION CODE BIT #2,REMTRM ;COMPILED PROG.?($ BNE 14$ ;IF SO, CAN SKIP SOME CODE" BIC #177400,R2 ;CLEAR SIGN EXTEND: BIT #LOWLST!LOWCOM,LOWFLG ;IN A QUOTED STRING OR COMMENT?& BNE 14$ ;SKIP TOKEN SEARCH IF WE ARE CMPB R2,#140 ;A TOKEN? BLO 14$ ;IF NOT, BRANCHO354$: CLR -(SP) ;SET NO FLAG FOR SURROUNDING BLANKSF) CMPB R2,#S.VBEN ;ARE WE IN VERBS PROPER?I$ BLOS 6$ ;IF SO, BRANCH TO SET FLAG6 CMPB R2,#S.THEN ;MIGHT BE IN OTHER TOKENS WITH BLANKS) BLO 7$ ;IF NOT, BRANCH (DON'T SET FLAG)D*6$: INC (SP) ;SET SURROUNDING BLANKS FLAG-7$: MOV #INIT11,R0 ;START OF PROTOTYPES -> R0/( SUB #140,R2 ;MAKE R2 INTO LOOP COUNTER3 BEQ 9$ ;IF ZERO, SKIP LOOP TO FIND PROTOTYPE TEXT.)8$: TSTB (R0)+ ;SKIP THROUGH A PROTOTYPEM BNE 8$ ; SOB R2,8$ ;R2 TIMESN"9$: TST (SP) ;SURROUNDING BLANKS? BEQ 10$ ;IF NOT, BRANCH1# MOVB #40,R2 ;IF SO, PRINT LEADINGL BR 11$ ;BLANKD+10$: MOVB (R0)+,R2 ;GET NEXT PROTOTYPE CHAR BEQ 12$ ;IF AT END, BRANCH"11$: PRINTC ;PRINT THE CHARACTER BR 10$ ;AND LOOK FOR ANOTHER+12$: TST (SP)+ ;POP SURROUNDING BLANK FLAGO$ BEQ 13$ ;IF NONE, DON'T PRINT CHAR MOVB #40,R2 ;IF ONE, PRINT IT 14$: PRINTC..13$: BR 5$ ;AND GO BACK FOR MORE PROGRAM TEXTC15$: BIC #LOWLST!LOWCOM,LOWFLG ;CLEAR LOWER CASE FLAGS JUST IN CASEE MOV R2,R0 ;COPY TERM CHARB NEG R0 ;MAKE IT POS.$ ASL R0 ;MPY BY TWO FOR WORD OFFSET, JMP @16$-2(R0) ;AND GO TO APPROPRIATE PLACE16$: .WORD 17$ ;EOL2, .WORD 18$ ;EOS2< .WORD 19$ ;EOS1 .WORD 17$ ;EOL1S/18$: MOVB #S.CON2,R0 ;PUT IN CONCATENATION CHARE BR 20$I819$: MOVB #S.CON1,R0 ;PUT IN 1ST TYPE CONCATENATION CHAR)20$: BIT #2,REMTRM ;SAVING COMPILED MODE?S BNE 14$ ;IF SO, BRANCH$ MOV R0,R2 ;IF NOT, COPY ASCII CHAR BR 14$ 17$: CRLF ;DO END OF LINEF/ CMPB R2,#S.EOL2 ;WAS THIS END OF LOGICAL LINE?. BNE 5$ ;IF NOT, PRINT MORE RTS PC ;ELSE RETURNP N+ .SBTTL DEL00 - DELETE TEXT IN USER PROGRAMC;+24; .SKIP#; .X ^^DELETE\\,; .X ^PROGRAM LINE DELETEC+; .HEADERLEVEL 1 ^^DELETE N1[-N2][,N3...]\\O; .BREAK4; ^THIS ALSO IS PRIMARILY AN IMMEDIATE MODE COMMAND.F; ^IT WILL DELETE INDIVIDUAL LINES WITH SINGLE PARAMETERS OR INCLUSIVE2; RANGES WITH NUMBERS SEPARATED BY A DASH (MINUS).J; ^IF NO NUMBERS ARE SPECIFIED, THE WHOLE PROGRAM TEXT IS DELETED (BUT NOT?; PROGRAM DATA - THIS MUST BE DONE WITH THE ^^CLEAR\\ COMMAND).D; ^IT CAN BE USED IN PROGRAM MODE ALSO, USUALLY TO DELETE A RANGE OF8; LINE NUMBERS IN PREPARING TO R0 MOV R1,-(SP) ;SAVE A REGISTER MOV 2(R3),R1 ;MAKE R1 POINT TOF* ADD USR,R1 ;START OF DEST FOR BLOCK MOVE' MOV -2(R4),R2 ;CALCULATE # OF BYTES TO1 ADD USR,R2 ;MOVE IN R0 AND% SUB R2,R0 ;START OF BLOCK ADD -> R2I BEQ 4$ ;IF ZERO, BRANCHF!3$: MOVB (R2)+,(R1)+ ;DO THE MOVEM SOB R0,3$(4$: SUB R1,R2 ;R2 HAS DISTANCE WE MOVED& MOV R1,ENDTXT ;RECORD NEW END OF TEXT MOV (SP)+,R1 ;RESTORE R1N) MOV R2,-(SP) ;SAVE DISTANCE OF TEXT MOVE 9 MOV R3,-(SP) ;SAVE R3 (TOP OF HEADER) AREA TO BE DELETED 6 MOV BOLNHD,R2 ;BOTTOM OF BLOCK OF HEADERS TO BE MOVED# MOV R3,R0 ;R0 TEMPORARILY HAS NEWI# ADD #4,R0 ;TOP ADDRESS TO MOVE TOT& MOV R4,R3 ;GET OLD TOP ADDRESS -> R3 MOV R0,R4 ;NEW TOP -> R4. JSR PC,SLUP01 ;SLIDE UP THE REMAINING HEADERS) MOV R4,BOLNHD ;SET NEW BOTTOM OF HEADERSS8 MOV (SP)+,R5 ;POINTS TO START OF HEADERS TO BE ADJUSTED& MOV (SP)+,R0 ;COUNT OF DISTANCE MOVED& MOV 2(R5),R2 ;SEE IF TEXT POINTER FOR' ADD USR,R2 ;DELETE INSTRUCTION WAS INR CMP R1,R2 ;MOVED CODE  BLO 5$ ;IF NOT, BRANCH SUB R0,R1 ;IF SO, ADJUST IT:+5$: CMP R5,BOLNHD ;FINISHED WITH ADJUSTING? BLO 6$ ;IF SO, BRANCHT, SUB R0,2(R5) ;ADJUST TEXT PTR FOR EACH LINE SUB #4,R5 ;THAT WAS MOVED? BR 5$ ;AND KEEP GOING +6$: SKIP ;GET NEXT CHAR IN DELETE COMMANDI$ CMPB R2,#', ;IS IT A COMMA (MORE)? BEQ 1$ ;IF SO, DO IT DEC R1 ;ELSE BACK IT UPE$ JMP INIT02 ;AND GO ON WITH PROGRAM . .SBTTL INIT00, INIT02 - STATEMENT INTERPRETER;A.; PDP-11 BASIC - COMMAND/STATEMENT INTERPRETER$; REGISTERS USED - R0,R1,R2,R3,R4,R5;TUINIT02: ;DSS1FD .IF DF,FPPEMU ;IF FPP EMULATION ;DSS1= .IFF ;IF NOT ;DSS1MB TST FPEXFL ;ANY FLOATING POINT ERRORS? ;DSS1> BEQ 1$ ;IF NOT, SKIP SUBROUTINE ;DSS1> .IFTF ;EITHER WAY ;DSS1D JSR PC,FPERMS ;IF SO, PROCESS THEM ;DSS1N .ENDC ;DSS1U ;DSS1D@1$: SKIP ;GET THE NEXT CHARACTER ;**-3-INIT03: CMPB R2,#S.EOL1 ;AT END OF STATEMENT?( BLO 4$ ;IF NOT, ERROR % COM R2 ;MAKE TERMINATOR INTO A JUMPT ASL R2 ;POINTER JMP @2$(R2) ;AND GO TO ROUTINE2$: .WORD 3$ ;S.EOL20 .WORD INIT20 ;S.EOL1 .WORD INIT20 ;S.EOS# .WORD 8$ ;S.EOL1#4$: CMPB R2,#S.ELSE ;AN ELSE TOKEN?K BNE 5$ ;IF NOT, BRANCH- SRCHLF ;IF SO, SKIP TO END OF LOGICAL LINEC' BR 3$ ;AND CONTINUE ON IN INTERPRETER4,5$: CMPB R2,#S.EXC ;EXCLAMATION TYPE REMARK?! BNE 6$ ;IF NOT, BRANCH TO ERROR0$ JMP REM00 ;GO TO REMARK PROCESSING 8$: MOV R1,-(SP) ;SAVE STACK PTR) SKIP ;GET FIRST SIGNIFICANT CHAR -> R2B. CMPB R2,#S.EXC ;DOES LINE START WITH COMMENT? BEQ 9$ ;IF SO, BRANCHN MOV (SP)+,R1 ;GET BACK TEXT PTR$ BR INIT20 ;AND DO NORMAL STATEMENT#9$: MOV (SP)+,R1 ;GET BACK TEXT PTRN. BR INIT10 ;AND DO REMARK WITHOUT COUNTING IT16$: ILCERR ;ILLEGAL CHARACTER TERMINATING STMT.*3$: TSTB QFLG ;CHECK FOR 1 LINE MCR PRINT BEQ 7$ ;IF SO  JMP PCK11 ;EXITC7$: TST RUNF ;IS RUN MODE SET ;DSS1VB BEQ INIT19 ;JUMP IF NOT ;DSS1D MOV LINEHD,R5 ;GET CURRENT LINE HEADER ;DSS1A SUB #4,R5 ;AND POINT TO NEXT LINE HEADER ;DSS1RIINIT13: TST BRFLAG ;SEE IF BREAK SET 00,2TADATADATADATADATADATA ;DSS1^B BNE INIT26 ;IF SET, STOP ;DSS1D CMP R5,BOLNHD ;AT END OF PROGRAM? ;DSS1B BLO INIT26 ;IF SO, BRANCH ;**-71 MOV R5,LINEHD ;ESTABLISH NEW CURRENT LINE HEADER - MOV (R5),LINENO ;AND NEW CURRENT LINE NUMBERL MOV 2(R5),R1 ;AND TEXT POINTERL ADD USR,R1 ;ADD IN OFFSETE) CLR STCOUN ;SET STATEMENT COUNT TO ZEROT7INIT20: INC STCOUN ;INCREMENT STATEMENT POSITION COUNTR0INIT10: MOV ENDTXT,R3 ;CURRENT END OF TEXT -> R3 INC R3 ;ROUND IT UP TO BIC #1,R3 ;NEXT WORD BOUNDARYC5 CMP R3,BOLNHD ;DOES IT MATCH BOTTOM OF LINE HEADERS?E BEQ 2$ ;IF SO, SKIP THE MOVE, MOV BOLNHD,R2 ;START OF BLOCK TO MOVE -> R2" MOV R2,R0 ;CALCULATE DISTANCE TO SUB R3,R0 ;MOVE IN R0E* MOV ENUDAT,R3 ;END OF BLOCK TO MOVE -> R3 JSR PC,SLDN ;SLIDE IT ALL DOWN' SUB R0,BOLNHD ;AND ADJUST THE POINTERSE SUB R0,STUDAT ;INVOLVED SUB R0,ENUDAT- TST LINEHD ;NON-ZERO LINEHD (PROGRAM MODE)?I# BEQ 2$ ;IF NOT, DON'T DO ANYTHINGR% SUB R0,LINEHD ;IF SO, ADJUST IT TOO!02$:)7 MOV ENUDAT,ENUSAV ;SAVE END OF USER DATA IN CASE ERROR SKIP ;GET VERBA" BIC #177400,R2 ;CLEAR SIGN EXTEND( SUB #S.BAS,R2 ;GET ADDRESS DISPLACEMENT" BGE 1$ ;IF REGULAR CODE, PROCEED DEC R1 ;ELSE IMPLIED LET JMP LET00/1$: CMP R2,#S.VBEN-S.BAS ;ARE WE IN VERB RANGE?F) BHI 3$ ;IF NOT, BRANCH TO ANOTHER CHECKR ASL R2T1 MOV #TINPT,INPT ;SET FILE CONTROL BLOCK POINTERSR MOV #TOTPT,OTPT JMP @INIT12(R2) ;GO DO IT03$: CMPB R2,#S.ELSE-S.BAS ;DO WE HAVE ELSE TOKEN BNE 4$ ;IF NOT, ERROR (BRANCH) SRCHLF ;IF SO, IGNORE IT ALLT DEC R1 ;BACK UP TEXT PTR" JMP INIT02 ;AND START OVER AGAIND4$: CMPB R2,#S.EOL2-S.BAS ;ARE WE AT END OF LINE (FROM REMARK TRIM)? BNE 5$ ;IF NOT, ERROR (BRANCH)9 MOVB #S.EOL2,R2 ;IF SO, RESTORE R2 (SIGN EXTEND AND ALL)R! JMP INIT03 ;AND GO AROUND AGAIN 5$: UNRERRINIT26: JMP STOP00/INIT19: MOV #TINPT,INPT ;RESET INPUT AND OUTPUTT1 MOV #TOTPT,OTPT ;IN CASE IMMEDIATE I/O WITH FILE.*INIT00: CLR RUNF ;CLEAR RUN FLAG TO START" CLR BRFLAG ;CLEAR THE BREAK FLAG MOV #RDY00,R0 ;TELL USER THAT PRINTL ;ALL IS READY  3INIT04: PACK ;GET A COMMAND#/INIT01: MOV R1,WORK ;SAVE INITIAL TEXT POINTERF SKIP ;GET THE FIRST CHARACTER, CMP R2,#S.EOL2 ;IGNORE IF ONLY A TERMINATOR BEQ INIT04T MOV WORK,R1 ;GET TEXT POINTERN! ATOI ;GET INTERNAL LINE NUMBER $ MOV R1,R3 ;TEST ADDRESS ALSO IN R3) CMPB @R1,#S.EOL2 ;CALL IT A DELETE IF NOB BNE INIT08N FINDLN ;FIND THE LINE NUMBERT BNE INIT04 ;NO SUCH LINE SQUISH ;FOUND,DELETE IT BR INIT04%INIT08: BIT #2,REMTRM ;COMPILED FILE?R/ BEQ INIT05 ;IF NOT, DO REGULAR INTERPRETATION,,1$: CMPB (R1)+,#S.EOL2 ;LOOK FOR END OF LINE BNE 1$F DEC R1 ;BACK UP TEXT POINTER) JMP INIT06 ;AND SKIP THE INTERPRETATIOND;0H; THIS SECTION TAKES THE BUFFER POINTED TO BY R1 AND R3 AND COMPACTS IT.J; IN EFFECT, R1 IS A LEFT BUFFER POINTER AND R3 IS A RIGHT BUFFER POINTER.;R@INIT05: MOV #INIT11,R0 ;START OF VERB AND TOKEN PROTOTYPES -> R0,12$: CMPB (R3),#40 ;IS CURRENT CHAR A SPACE? BNE 13$ ;IF NOT, BRANCHF614$: MOVB (R3)+,(R1)+ ;IF SO, MOVE IT INTO LEFT BUFFER( BR 12$ ;AND KEEP LOOKING FOR NON-SPACE313$: CMPB (R3),#'" ;IS THIS START OF QUOTED STRING?9" BEQ 7$ ;IF SO, GO PROCESS STRING% CMPB (R3),#S.CON1 ;DO WE HAVE COLON?T BNE 22$ ;IF NOT, BRANCHV5 MOVB #S.EOS1,(R1)+ ;IF SO, REPLACE IT WITH EOS TOKEN! INC R3 ;AND PUSH UP LINE MARKERM BR 12$ ;GO AROUND FOR MORE;22$: CMPB (R3),#S.CON2 ;OTHER TYPE OF STATEMENT TERMINATOR?  BNE 23$ ;IF NOT, BRANCHR0 MOVB #S.EOS2,(R1)+ ;IF SO, PUT IN SPECIAL TOKEN INC R3N BR 12$I$23$: CMPB (R3),#S.EOL2 ;END OF LINE?/ BEQ INIT06 ;IF SO, GO TO NEXT SECTION OF CODE ;NE; NEXT SECTION OF CODE DOES CHECK FOR ALPHA CHAR. IF NOT, WE CAN SAVE B; SOME PROCESSING SINCE ALL PROTOTYPES START WITH AN ALPHA, ! OR ?;U MOVB (R3),R4 ;CHAR -> R4 CMPB R4,#'? BLO 15$ CMPB R4,#'Z BLOS 16$I015$: CMPB R4,#'! ;THIS IS THE OTHER POSSIBILITY) BNE 14$ ;IF NOT, NOT START OF PROTOTYPE2 M004zVWOVB #S.EXC,R2 ;SAVE OURSELVES SOME TIME THIS WAY INC R3 ;ADJUST RIGHT BUFFERB) CLR -(SP) ;DUMMY TO KEEP STACK STRAIGHTW0 BR 20$ ;AND GO FINISH LINE WITH NO FANCY STUFF;;&16$: CLR R2 ;INITIALIZE TOKEN COUNTER,11$: MOV R3,-(SP) ;SAVE RIGHT BUFFER POINTER)1$: CMPB (R3),#S.EOL2 ;IS IT END OF LINE?,( BEQ 4$ ;IF SO, NO TOKEN MATCH (BRANCH)-2$: CMPB (R0),#40 ;IS PROTOTYPE CHAR A SPACE?F BNE 3$ ;IF NOT, BRANCH-26$: CMPB (R3)+,#40 ;SKIP OVER SPACES IN TEXTE BEQ 26$$ DEC R3 ;BACK UP TO FIRST NON-BLANK627$: CMPB (R0)+,#40 ;SKIP OVER ALL SPACES IN PROTOTYPE BEQ 27$( DEC R0 ;AND BACK UP TO FIRST NON-BLANK03$: CMPB (R0)+,(R3)+ ;DO PROTOTYPE & TEXT MATCH?+ BNE 4$ ;IF NOT, GO TRY FOR NEXT PROTOTYPER TSTB (R0) ;END OF PROTOTYPE? BNE 1$ ;KEEP TRYINGH ADD #140,R2 ;FORM TOKENR,20$: CMPB R2,#S.VBEN ;IS THIS A VERB PROPER? BLOS 21$ ;IF SO, BRANCH2 CMPB R2,#S.THEN ;ARE WE IN TOKENS NEEDING SPACES? BLO 19$ ;IF NOT, BRANCH 021$: CMPB -1(R1),#40 ;IS PRECEDING CHAR A SPACE? BNE 18$ ;IF NOT, BRANCHI$ DEC R1 ;IF SO, CAN ELIMINATE SPACE.18$: CMPB (R3),#40 ;IS FOLLOWING CHAR A SPACE? BNE 19$ ;IF NOT, BRANCHM& INC R3 ;IF SO, CAN ELIMINATE IT TOO!519$: MOVB R2,(R1)+ ;PUT IT INTO LEFT JUSTIFIED BUFFERI TST (SP)+ ;CLEAN STACK! CMPB R2,#S.DATA ;DATA STATEMENT?P) BEQ 17$ ;IF SO, NO FURTHER TOKEN SEARCH ) CMPB R2,#S.EXC ;EXCLAMATION TYPE REMARK?  BEQ 25$ CMPB R2,#S.REM ;STD REM?T BEQ 25$$ BR INIT05 ;AND CONTINUE ON IN LINE*4$: MOV (SP)+,R3 ;RESTORE RIGHT BUFFER PTR)5$: TSTB (R0)+ ;SKIP TO END OF PROTOTYPET BNE 5$E) CMP R0,#PROTEN ;END OF TOKEN PROTOTYPES?  BHIS 6$ ;IF SO, BRANCH& INC R2 ;ELSE INCREMENT TOKEN COUNTER BR 11$ ;AND GO TRY AGAIN46$: MOVB (R3)+,(R1)+ ;PUT IN CURRENT CHAR (RT -> LT) BR INIT05 ;AND START OVER'7$: MOVB (R3)+,(R1)+ ;PUT IN OPEN QUOTE; 9$: MOVB (R3)+,R4 ;GET NEXT CHAR CMPB R4,#S.EOL2 ;END OF LINE? BNE 8$ ;IF NOT, BRANCH( UNMERR ;IF SO, UNMATCHED QUOTES ERROR8$: CMPB R4,#'" ;END OF QUOTE?A BEQ 10$ ;IF SO, BRANCH# MOVB R4,(R1)+ ;IF NOT, PUT IN CHARF BR 9$ ;AND KEEP GOINGB&10$: MOVB R4,(R1)+ ;PUT IN CLOSE QUOTE BR INIT05.17$: MOVB (R3)+,R4 ;THIS SECTION MOVES REST OF/ CMPB R4,#S.EOL2 ;RIGHT BUFFER INTO LEFT BUFFER BEQ INIT06 ;LOOKING FOR ( MOVB R4,(R1)+ ;BUT WITH NO TOKEN SEARCH BR 17$A&25$: BIT #1,REMTRM ;DOING REMARK TRIM? BEQ 17$ ;IF NOT, BRANCHE,INIT06: MOVB #S.EOL2,(R1)+ ;MAKE END OF LINE MOV R1,R3 ;END OF LINE -> R3" MOV WORK,R1 ;START OF LINE -> R1 ATOI ;GET LINE # -> R0 TST R0 ;CHECK LINE # BNE 11$ ;IF NON-ZERO, BRANCH5 MOV WORK,R1 ;ELSE RESTORE LEADING SPACES AND BLANKSP211$: SUB R1,R3 ;CALCULATE LEN WITHOUT LINE NUMBER0 MOV R1,WORK ;AND REMEMBER START WITHOUT LINE #&8$: TST R0 ;ANY NON-ZERO LINE NUMBER?( BNE ASSM00 ;IF SO, PUT IT INTO PROGRAM% CMPB (R1),#40 ;LEADING CHAR A SPACE?  BEQ 12$ ;IF SO, BRANCH CMPB (R1),#11 ;OR A TAB?4 BEQ 12$ ;ALSO BRANCH IF SO6 TST OLDFLG ;IMMEDIATE MODE COMMAND IN FILE PROGRAM ? BEQ 122$ ;NO' CLR OLDFLG ;YES, CONSIDER IT AN ERRORH4 IMMERR ;IMMEDIATE MODE DURING FILE INPUT AN ERROR'122$: CLOSEF ;ELSE CLOSE OFF OLD FILER JMP INIT10 ;AND DO COMMAND?7$: MOVB #S.EOL2,(R1)+ ;PUT IN END OF LINE TO TRIM REMARK SHORTA$ MOV R1,R3 ;NOW RE-CALCULATE REMARK! MOV WORK,R1 ;RE-ESTABLISH STARTS* SUB R1,R3 ;R3 NOW HAS LENGTH (SHORTENED)( BR 8$ ;AND BRANCH BACK TO REGULAR CODE$12$: BIT #1,REMTRM ;TRIMMING REMARKS1 BEQ ASSM00 ;IF NOT, GO ASSEMBLE STRAIGHTFORWARDT SKIP ;GET NEXT CHAR( CMPB R2,#S.EXC ;EXCLAMATION TYPE REMARK BEQ 13$ ;IF SO, BRANCH CMPB R2,#S.REM ;STANDARD REMARK BEQ 13$ ;IF SO, ALSO BRANCHL) MOV WORK,R1 ;RE-ESTABLISH START OF LINE1 BR ASSM00 ;AND ASSEMBLE LINE813$: JMP INIT04 ;IF CONTINUED REMARK DOING TRIM, IGNORE/SKPQT: CMPB (R1),#'" ;START OF STRING CONSTANT?R BEQ 1$ ;IF SO, BRANCHE RTS PC ;ELSE RETURNB&1$: INC R1 ;PUSH POINTER TO NEXT CHAR CMPB (R1),#'" ;END OF QUOTE?S BEQ 2$ ;IF SO, RETURN6 CMPB (R1),#S.EOL1 ;END OF STATEMENT OR PHYSICAL LINE? BLO 1$ ;IF NOT, BRAN00<2TADATADATADATADATADATACH" UNMERR ;IF SO, UNMATCHED QUOTES 2$: INC R1 RTS PCT+ .SBTTL ASSM00 - ASSEMBLE LINE OF USER CODE3; D; ASSEMBLE LINE OF CODE INTO WORKING STORAGE - TRANSFER TO USER AREA"; REGISTERS USED - R0,R1,R2,R3,R4.;)*UPUSRD: CMP ENUDAT,STGOSB ;AT TOP ALREADY? BHIS 3$ ;IF SO, WE'RE DONE MOV R3,-(SP) ;SAVE R3 MOV STGOSB,R4 ;NEW TOP -> R4  MOV BOLNHD,R2 ;OLD START -> R2, MOV ENUDAT,R3 ;OLD TOP -> R3C" MOV R4,R0 ;CALC DISTANCE TO MOVE SUB R3,R0 ;IN R0 JSR PC,SLUP01 ;SLIDE IT UPI MOV (SP)+,R3 ;RESTORE R3O,4$: ADD R0,ENUDAT ;SAVE NEW END OF USER DATA7 MOV ENUDAT,ENUSAV ;AND ERROR RECOVERY END OF USER DATAR ADD R0,STUDAT ;AND START * ADD R0,BOLNHD ;AND BOTTOM OF LINE HEADERS 3$: RTS PCUASSM00:: ;DSS1PC MOV R3,-(SP) ;SAVE LEN OF LINE ;DSS1-C MOV R0,-(SP) ;AND LINE NUMBER ;DSS1SU ;DSS1 I555$: JSR PC,UPUSRD ;MOVE UP LINE NUMBERS ;DSS1:D MOV BOLNHD,R0 ;NOW CHECK FOR ;**-4 SUB ENDTXT,R0 ;ROOM SUB #4,R0 ;FOR NEW CMP R0,2(SP) ;LINEO> BGT 2$ ;IF OK, BRANCH ;DSS1U ;DSS1O5 .IF DF,IASEXT ! M11EXT ;IF SELF-EXTENDING ;FRB3.24D JSR PC,EXTEND ;TRY TO GET MORE ROOM ;DSS1@ BCC 555$ ;!!GOT IT!!---NOW GO INSERT LINE ;DSS1N .ENDC ;DSS1U ;DSS1,? OVFERR ;ELSE ERROR (OVERFLOW) ;**-1C2$: MOV (SP),R0 ;LINE # -> R0' BNE 8$ ;IF A LINE WITH NUMBER, BRANCH ) MOV LSTLIN,R0 ;IF NOT, USE PREVIOUS LINEO BNE 11$ ;IF THERE, BRANCH (OK) LINERR ;ELSE ERRORG'11$: INC R0 ;LOOK FOR NEXT HIGHER LINE  FINDLN ;FIND IT! BNE 10$ ;IF EXACT MATCH, BRANCHS ADD #4,R5 ;ELSE ADJUST R5 PTRUC10$: MOVB #S.EOL1,-1(R1) ;PUT END OF PHYSICAL LINE IN PREVIOUS LINE( TST (SP)+ ;CLEAN STACK" BR 9$ ;AND SKIP SOME OTHER STUFF8$: FINDLN ;GET LINE& BNE 1$ ;IF NOT ALREADY THERE, BRANCH7 SQUISH ;IF IT'S THERE, DELETE IT (REGISTERS NOW SET)L+1$: MOV R5,R3 ;COPY HEADER INSERTION POINTC+ MOV BOLNHD,R2 ;BOTTOM OF HEADER AREA -> R2T" MOV #4,R0 ;SLIDE THAT RANGE DOWN1 JSR PC,SLDN ;BY FOUR BYTES (ONE HEADER'S WORTH)I* SUB R0,BOLNHD ;AND ADJUST POINTER TO AREA1 SUB R0,R5 ;AND MAKE R5 POINT TO HOLE WE CREATEDI# MOV (SP)+,(R5) ;PUT IN LINE NUMBERR* MOV (R5),LSTLIN ;RECORD LAST LINE ENTERED' MOV R1,2(R5) ;AND ADDRESS OF LINE TEXT0 SUB USR,2(R5) ;MAKE IT AN OFFSET INTO TEXT AREA89$: MOV (SP),R3 ;GET LENGTH OF LINE (MINUS LINE NUMBER)- CMP R1,ENDTXT ;IS INSERTION POINT AT THE ENDE& BEQ 6$ ;IF SO, WE CAN SKIP SOME CODE$3$: SUB #4,R5 ;POINT TO NEXT HEADER CMP R5,BOLNHD ;PAST END YET?C BLO 4$ ;IF SO, BRANCH 6 ADD R3,2(R5) ;IF NOT, ADJUST ALL THE HIGHER LINE PTRS BR 3$)4$: MOV ENDTXT,R4 ;SET UP TO MOVE TEXT UPO MOV R4,R2 ADD R3,R2 ;GET NEW END -> R2& MOV R4,R0 ;CALCULATE # BYTES TO MOVE SUB R1,R0 ;IN R0 BEQ 6$S$5$: MOVB -(R4),-(R2) ;MOVE IT ALL UP SOB R0,5$.6$: MOV (SP)+,R3 ;GET LENGTH OF NEW TEXT AGAIN" ADD R3,ENDTXT ;UPDATE END OF TEXT$ MOV WORK,R2 ;ADDRESS OF TEXT -> R2!7$: MOVB (R2)+,(R1)+ ;MOVE IT ALL^ SOB R3,7$ ;INN" JMP INIT04 ;AND GO GET NEXT LINE .SBTTL DATASET ERROR ROUTINES;.; DATASET ERROR ROUTINES;LOLDFER:TSCRFER:P&SAVFER: CLR REMTRM ;CLEAR SOME FLAGS& MOV #COMFDB,R0 ;ADDRESS OF FDB -> R0) MOVB F.ERR(R0),R0 ;FCS ERROR CODE -> R0A' MOV R0,PARLST+P.FCS ;STORE IN MO LISTA+ PRFERR ;AND GO TO NORMAL ERROR HANDLINGN  .SBTTL STATEMENT LIST;R/; DEFINITIONS OF LINE AND STATEMENT TERMINATORSE8S.EOL1 =374 ;END OF PHYSICAL LINE (BUT NOT LOGICAL LINE)-S.EOS1 =375 ;1ST TYPE OF STATEMENT TERMINATOR0-S.EOS2 =376 ;2ND TYPE OF STATEMENT TERMINATOR 00DzVWAS.EOL2 =377 ;END OF LOGICAL LINE (MAY BE MULTIPLE PHYSICAL LINES):+S.CON1 =72 ;COLON FOR ONE ALLOWED SEPARATORB"S.CON2 =134 ;BACKSLASH FOR ANOTHER;C+; DEFINE MACRO VERB AND ADDRESS DEFINITIONSI .MACRO VERBDF NAME,ROUTIN,VDEFO( .ASCIZ /NAME/ ;NAME WITH TRAILING NULL .IF NB,VDEF VDEF=S.MAXN .GLOBL VDEF .ENDC& .PSECT VERBAD ;GET INTO PROPER PSECT .WORD ROUTIN ;DEFINE ADDRESS% .PSECT BASIC3 ;BACK TO BASIC3 PSECT$$ S.MAX=S.MAX+1 ;UPDATE VERB COUNTER .ENDM;O;; DEFINE MACRO FOR TOKEN DEFINITION (NO ASSOCIATED ROUTINE)MJ; THIS MACRO MUST BE USED ONLY AFTER ALL TOKENS WITH ASSOCIATED ADDRRESSES&; IN PSECT 'VERBAD' HAVE BEEN DEFINED.;O .MACRO TOKDEF NAME,TDEF .ASCIZ /NAME/ .IF NB,TDEF TDEF=S.MAXR .GLOBL TDEF .ENDC S.MAX=S.MAX+1T .ENDM;S'; DEFINE ADDRESS OF START OF VERB PSECT  .PSECT VERBADINIT12:; .PSECT BASIC3 S.BAS=140V S.MAX=S.BASS;E2; NOW DEFINE THE VERBS AND THEIR ROUTINE ADDRESSESINIT11: VERBDF LET LET00F VERBDF IFEND0E VERBDF IF IF00 S.IFT VERBDF GOTO GOTO00 S.GOTOM VERBDF FOR FOR00 VERBDF NEXT NEXT00 S.NEXT# VERBDF GOSUB GOSB00 S.GOSB VERBDF RETURN RET00T VERBDF ! REM00 S.EXC VERBDF REM REM00 S.REM VERBDF PRINT PR00 S.PRIN VERBDF ? PR00M VERBDF INP01 VERBDF INPUT INP00 VERBDF READ READ00 VERBDF REM00 VERBDF REM00 VERBDF REM00R VERBDF TRACE TRACE0 S.TRAC VERBDF ONG00W VERBDF ON ONGT00 S.OND VERBDF CALL CALL00 VERBDF DIM DIM00 VERBDF DATA REM00 S.DATA VERBDF DEF DEF00 VERBDF RESTORE RES00 VERBDF OPLB00, VERBDF OPEN OPEN00 VERBDF CLOSE CLSE00, VERBDF LOAD LOAD00 VERBDF UNLOAD UNLD00 VERBDF CON CON00 VERBDF PRIORITY PRI00 VERBDF RANDOMIZE RND01A VERBDF STOP STOP00 VERBDF END STOP00C VERBDF STEP STEP00 S.STEPI VERBDF RUN RUN00 VERBDF CLEAR CLEAR0  VERBDF DELETE DEL00E VERBDF LIST LIST00 VERBDF SAVE SAVE00 VERBDF CHAIN CHAIN0 VERBDF OVERLAY OVL00 VERBDF OLD OLD00 VERBDF SCRATCH SCRA00  VERBDF EXIT PCK11  VERBDF SLEEP SLEEP0  VERBDF BREAK BREAK0P VERBDF SET SET00 VERBDF WAIT WAIT0 S.VBENVERBEN:1FNADD: VERBDF SBS$( SBS00 S.SFST  VERBDF SEG$( SEG00 VERBDF RJS$( RJS00 VERBDF LJS$( LJS00 VERBDF STR$( FCHR00; VERBDF TRM$( TRM00 VERBDF LTR$( LTR00 VERBDF DAT$( DAT00 VERBDF TIM$( TIM00 VERBDF SEC$( DUM00 VERBDF CHR$( CHR00 VERBDF MID( SBS00S VERBDF LEFT( LEFT00  VERBDF RIGHT( RIGHT0 VERBDF DDAT$( DDAT00 VERBDF PIECE$( PIECE0  VERBDF FRMT$( FORM00 VERBDF SPACE$( SPACE0  VERBDF STRING$( STRG00  VERBDF STREP$( DUM00 VERBDF R5A$( R5A00 VERBDF OCT$( OCT00 VERBDF OCS$( OCS00 S.SFEN  VERBDF SIN( SINE00 S.SASTS VERBDF COS( COS00E VERBDF ATN( ATN00N VERBDF EXP( EXPF00 VERBDF LOG10( LOG10J VERBDF LOG( LOG00E VERBDF ABS( ABS00D VERBDF SQR( SQRT00 VERBDF INT( INT00O VERBDF RND( RND00. VERBDF SGN( SGN00 S.SAEN VERBDF INX( INX00 S.NFST VERBDF POS( INX00K VERBDF NRC( NRC00R VERBDF LEN( LEN00O VERBDF VAL( VAL00C VERBDF ASC( ASC00D VERBDF OCT( OCB00P VERBDF COR( COR00S VERBDF DCEN( DCEN0 VERBDF TIME( DUM00 VERBDF SEC( SEC000 VERBDF ERR( ERR00R VERBDF ERL( ERL00  VERBDF AR5( AR500A VERBDF FCS( FCS00 S.NFBO;I TOKDEF FN S.FN TOKDEF THEN S.THENI TOKDEF TO S.TON TOKDEF NOT S.NOTB TOKDEF AND S.AND  TOKDEF XOR S.XORB TOKDEF OR S.ORO TOKDEF IMP S.IMPO TOKDEF EQV S.EQVT TOKDEF OFF S.OFF  TOKDEF ELSE S.ELSEC TOKDEF PROMPT S.PRMT; TOKDEF PASS-ALL-INPUT S.RPAL TOKDEF PASS-ALL-PRINT S.WPAL TOKDEF UPPER S.UPP7 TOKDEF ECHO S.ECHO PROTEN:$ .EVEN .PSECT BASIC3:DUM00: TM2ERR ;DEFINE ERROR FOR NON-IMPLEMENTED ROUTINES I? .SBTTL SET - COMMAND TO SET UP MISCELLANEOUS SYSTEM CONDITIONSE;+3R; .S; .X R2) MOV #SET01,R0 ;START OF TOKEN LIST -> R0D1$: CMPB (R0)+,R2 ;DO WE MATCH?M BEQ 2$ ;IF SO, BRANCH  CMP R0,#SET02 ;AT END OF LIST?I BLO 1$ ;IF NOT, KEEP LOOKING*4$: SETERR ;IF THROUGH, WE HAVE AN ERROR(2$: SUB #SET01,R0 ;GET BYTE OFFSET -> R0& DEC R0 ;ACCOUNT FOR FACT OF AUTO INC SKIP ;NEXT CODE -> R2" CMPB R2,#S.ON ;TURN CONDITION ON? BNE 3$ ;IF NOT, BRANCH1 MOVB #1,TRCFLG(R0) ;PUT FLAG IN APPROPRIATE BYTEI BR 5$ ;AND WE ARE FINISHED#3$: CMPB R2,#S.OFF ;DO WE WANT OFF?  BNE 4$ ;IF NOT, AN ERROR3 CLRB TRCFLG(R0) ;IF SO, RESET THE APPROPRIATE FLAG5$: JMP INIT02 O& .SBTTL EXIT STATEMENT (DOCUMENTATION);+2;; .S ; .X ; ^IT DOES NOT CAUSE ANY BRANCHING WHEN IT ITSELF IS EXECUTED,G; RATHER IT CHANGES THE PROCESSING OF ERRORS IN THE ; ^PRECISE INFORMATION AS TO THE CAUSE OF THE ERROR CAN BE HAD900TzVW; FROM THE FUNCTIONS ; {510 ON ERROR GOTO 0 ! THIS RESTORES NORMAL ERROR HANDLING}; \\; .F;-"ONG00: EVAL ;GET THE LINE NUMBER BVS 1$ ;CLOSE PAREN IS ERROR' STCFI AC0,ERRBRN ;PUT AWAY LINE NUMBERQ$ JMP INIT02 ;AND CONTINUE EXECUTING 1$: STXERR 48 .SBTTL IF END - RESET END-OF-FILE ERROR ROUTINE ADDRESS;+6C; .SL); .X ^^IF END\\S1; .HEADERLEVEL 1 ^^IF END [_#N] THEN _\\T; .BRAD; ^THIS STATEMENT IS USED TO RESET THE END OF FILE BRANCH ON A GIVENF; FILE OR WITHOUT THE "_#^N", IT SETS THE TERMINAL END OF FILE BRANCH.C; ^THE SPECIFIED FILE MUST HAVE BEEN OPENED WITH THE POSSIBILITY OFTC; BEING READ FROM (I.E. CANNOT BE R21 CMPB R2,#'# ;FILE SPEC'D?  BNE 1$ ;IF NOT, BRANCH/ MOV #400,R0 ;LOOK FOR FILE WITH READ POSSIBLE?& JSR PC,FILFND ;FIND IT WITH PTR -> R3 BNE 4$ ;IF THERE, BRANCH FNMERR ;ELSE ERRORU4$: SKIP ;NEXT CHAR -> R2E6 TST (R3)+ ;AND MAKE FCB PTR CONSISTENT WITH TERMINAL BR 2$ ;AND BRANCHI(1$: MOV INPT,R3 ;TERMINAL FCB ADD -> R3&2$: CMPB R2,#S.THEN ;DO WE HAVE "THEN" BEQ 3$ ;YES, BRANCHD! CMPB R2,#S.GOTO ;OR MAYBE "GOTO"C BEQ 3$ ;OK TOO5$: IFERR ;ELSE ERRORR3$: MOV R3,-(SP) ;SAVE FCB PTR EVAL ;EVALUATE LINE #% BVS 5$ ;CLOSE PAREN AT END IS ERROR  MOV (SP)+,R3 ;RESTORE FCB PTR STCFI AC0,16(R3) ;SAVE LINE #& JMP INIT02 ;AND GO TO NEXT STATEMENT$ .SBTTL SINGLE LINE STEP INSTRUCTION;+2E; .SL ; .X ^^STEP\\ ; .X ^SINGLE LINE EXECUTE$#; .HEADERLEVEL 1 ^^STEP [LINE _#]\\;; .BROB; ^THIS STATEMENT ALLOWS ONE TO STEP THROUGH A PROGRAM ONE LINE AT ; A TIME.RE; ^THE OPTIONAL LINE NUMBER MAY BE USED TO START AT A DIFFERENT LINE.F@; ^IF NO LINE NUMBER IS SPECIFIED, EXECUTION RESUMES AT THE LINE; FOLLOWING THE LAST STOP.:; ^NOTE THAT IF A BRANCH IS TAKEN THE LINE BEING EXECUTED,A; THE PROGRAM WILL NOT STOP UNTIL THE NEXT LINE AFTER THE BRANCH.H4; ^THE STOP USES THE SAME INTERNAL FACILITIES AS THE; _^^B BREAK FEATURE.U; .BRN ; ^EXAMPLE:H; .NF7; ^^; {STEP} ; {STEP 510}E; \\; .F;- $ .SBTTL PROGRAM CONTINUE;+2B; .SL2 ; .X ^^CON\\; .X ^PROGRAM CONTINUE"; .HEADERLEVEL 1 ^^CON [LINE _#]\\; .BR ;; ^THIS COMMAND ALLOWS ONE TO RESUME EXECUTION OF A PROGRAM#/; AFTER STOPPING IT FOR INTERACTIVE DE-BUGGING.E8; ^WHEN USED WITH THE OPTIONAL LINE NUMBER, IT FUNCTIONS; JUST LIKE ^^GOTO\\I; WITH THE EXCEPTION THAT THE NEXT AVAILABLE LINE AFTER THE ONE SPECIFIEDA%; IS USED IF THERE IS NO EXACT MATCH.;M; ^IF NO LINE NUMBER IS SPECIFIED, EXECUTION IS RESUMED AT THE LINE FOLLOWINGI; THE LAST STOP.; .BR# ; ^EXAMPLE:4; ^^; .NFA; {CON}H ; {CON 100}O; \\; .F;-8STEP00: INC BRFLAG ;SET UP FOR STOP AFTER LINE EXECUTEDCON00: SKIP ;GET NEXT CHAR" CMP R2,#S.EOS1 ;END OF STATEMENT? BLO 1$ ;IF NOT, BRANCH, MOV LASTEX,R0 ;GET LAST EXECUTED LINE IN R0 INC R0 ;WE WANT NEXT ONE% MOV #1,-(SP) ;FLAG FOR INEXACT MATCH  JMP GOTO03 ;FINISH AS A GOTO!1$: DEC R1 ;BACK UP TEXT POINTER,/ MOV #1,-(SP) ;FLAG TO TAKE NEXT AVAILABLE LINE # JMP GOTO04 ;AND DO A REGULAR GOTOC A .SBTTL SLEEP COMMAND:;+3#; .SLM ; .X _\\O; .BR?; ^THE ; ^HOWEVER, A NEGATIVE RESULT WILL GIVE AN ERROR AND ZERO WILL; BE TREATED AS A NO-OP.<; ^TRUNCATION OF THE FLOATING EXPRESSION VALUE WILL BE USED.; .FG 1BC; ^THE UNIT OF TIME MAY BE SPECIFIED AS R0> BR 7$1$: CMPB R2,#'S ;SECONDS? BNE 2$E MOV #2,R0 BR 7$2$: CMPB R2,#'M ;MINUTES? BNE 3$O MOV #3,R0 BR 7$3$: CMPB R2,#'H ;HOURS? BNE 4$M MOV #4,R0 BR 7$&4$: CMPB R2,#S.EOS1 ;END OF STATEMENT? BHIS 6$ ;IF SO, DEFAULTS5$: SEC ;INDICATE ERRORO RTS PCT"6$: DEC R1 ;BACK UP TO TERMINATOR MOV #2,R0 ;SET SECONDS TYPEH'7$: STCFI AC0,R3 ;INTEGERIZE MAGNITUDE  CLC ;SUCCESS  RTS PC 4SLEEP0: JSR PC,SLPWTC ;USE COMMON CODE IN SUBROUTINE BCC 1$ ;IF OK, BRANCH 2$: SLPERR(1$: BMI 2$ ;NEGATIVE MAGNITUDE IS ERROR BEQ WTSLPC ;ZERO IS NO-OP  MRKT$S #1,R3,R0 ;SET MARK TIME  BCS 2$ ;BRANCH ON ERROR  WTSE$S #1 ;WAIT FOR A TIME BCS 2$#WTSLPC: JUNKIT ;SKIP REST OF LINEB MOVB (R1)+,R2 JMP INIT03  S9 .SBTTL WAIT0 - WAIT COMMAND - SPECIFY TIMEOUT PARAMETERS ;+3 ; .SL ; .X _\\G; ^THE ; {400 WAIT 40 S :! ALL TERMINAL INPUT TO TIME OUT AFTER 40 S}4; {500 WAIT 0 :! RESTORE TO NO TIMEOUT CONDITION}; \\; .F;-8WAIT0: JSR PC,SLPWTC ;USE COMMON CODE FOR SLEEP AND WAIT BCC 1$ ;IF OK, BRANCH: 2$: WATERR(1$: BMI 2$ ;NEGATIVE MAGNITUDE IS ERROR MOV R3,WTMAG ;STORE MAGNITUDE MOV R0,WTUNIT ;STORE UNIT BR WTSLPC ;NOW EXIT COMMAND  E .SBTTL PRI00 - PRIORITY COMMAND;+3H; .SLS; .X \\; .BR;F; ^THE \\; .BROG; ^THIS COMMAND LOADS THE SPECIFIED FILE AS A USER CALLABLE SUBROUTINE.J!; ^THE DEFAULT EXTENSION IS ; FINALLY, ONE WORD CONTAINING NUMBER OF WORDS OF CODE PROPER:-; .WORD ?????? ;LEN (IN WORDS) OF CODE PROPERL;);; NOTE: THESE MODULES MUST BE TASK BUILT WITH /-HD/-FP AND: ; STACK=0F ; UNITS=0T;ID; IN00dzVW ADDITION POSITION INDEPENDENT CODING TECHNIQUES MUST BE USED IND; WRITING THE CODE BECAUSE ITS POSITION IN THE INTERPRETER WILL VARY.; DEPENDING ON WHAT OTHER ROUTINES ARE LOADED.;SLOAD00:I JSR PC,FNAME ;EVALUATE STRING BNE 1$ ;IF ONE, BRANCH CSIERR ;ELSE ERROR&1$: JSR PC,CSINT0 ;INTERPRET FILE NAME2 MOV #7653,COMFNB+N.FTYP ;".BTK" EXTENSION DEFAULT ;OPEN FILE IN LOCATE MODE.! OPEN$R LNKOLD,,,#FD.PLC,,,OLDFER$ MOV R1,-(SP) ;SAVE TEXT POINTER CLR R1 ;SET UP REGISTERS .IF DF,RSX11M ;IF 11-M 0 MOV #3,R2 ;THE TASK STARTS AT RECORD 3 FOR 11M .IFF ;IF 11-D OR IASI0 MOV #2,R2 ;THE TASK STARTS AT RECORD 2 FOR IAS .ENDC! CLR R3 ;TO POINT TO ZEROTH BYTEF, JSR PC,.POINT ;OF 2ND OR 3RD BLOCK (RECORD) GET$ ,,,OLDFER ;AND READ IT IN+, MOV #IDNTFY,R3 ;ADDRESS OF IDENT INFO -> R3= MOV F.NRBD+2(R0),R4 ;ADDRESS OF LOAD MODULE IDENT INFO -> R4V MOV #3,R2 ;SET TO "2$: CMP (R3)+,(R4)+ ;COMPARE 3 WDS BNE 3$ ;IF NO MATCH, BRANCHT SOB R2,2$& MOV (R4)+,R0 ;GET TOTAL LENGTH NEEDED MOV R4,-(SP) ;SAVE INPUT PTRG TSTOK ;CHECK FOR ROOM BHIS 4$ ;IF OK, BRANCH3$: LODERR ;ELSE ERROR&4$: MOV USR,R2 ;START OF AREA TO MOVE# MOV ENUDAT,R3 ;END OF AREA TO MOVER JSR PC,SLUP ;GO SLIDE IT UP+6$: MOV USR,R2 ;OLD START OF PROGRAM -> R2- MOV #USR,R3 ;START ADDRESS OF PARAMETERS TOR ;BE ADJUSTED ADD R0,(R3)+ ;NOW ADJUST ;USR ADD R0,(R3)+ ;THEM ;ENDTXT ADD R0,(R3)+ ; ;BOLNHD ADD R0,(R3)+ ; ;STUDAT ADD R0,(R3) ; ;ENUDAT. MOV (R3),ENUSAV ;AND UPDATE SAVED END OF DATA TST RUNF ;ARE WE RUNNING BEQ 61$ ;IF NOT, BRANCH % ADD R0,2(SP) ;IF SO, UPDATE TEXT PTRO' ADD R0,LINEHD ;AND LINE HEADER ADDRESSS$61$: MOV (SP)+,R4 ;RESTORE INPUT PTR3 MOV (R4)+,R3 ;LEN OF ENTRY PT. TABLE (BYTES) -> R3I- MOV R2,R1 ;COPY OLD END OF CURRENT ROUTINESP/ ADD R3,R1 ;NEW END FOR CURRENT ROUTINES -> R1P MOV R1,-(SP) ;SAVE IT MOV R2,R0 ;CALCULATE) SUB STUROU,R0 ;LEN TO MOVE (BYTES) -> R0T+ MOV STUROU,-(SP) ;SAVE PLACE TO INSERT EPT  ADD R3,STUROU ;ADJUST PTR- MOV (SP),R5 ;END OF PREVIOUS ROUTINES -> R50' TST -(R5) ;LAST ROUTINE ADDRESS -> R5S.62$: CMP (R5),#TRAP00 ;IS IT A LOADED ROUTINE?) BHIS 63$ ;IF NOT (IN PURE CODE), BRANCHN$ ADD R3,(R5) ;IF SO, ADJUST ADDRESS SUB #6,R5 ;AND LOOK AT NEXT$ BR 62$ ;ROUTINEJ63$: ASR R0 ;LEN NOW IN WORDS% BEQ 8$ ;IF ZERO, CAN SKIP SOME CODE .7$: MOV -(R2),-(R1) ;MOVE UP EXISTING ROUTINES SOB R0,7$18$: MOV (SP)+,R2 ;PLACE TO INSERT ENTRY PTS -> R2B# MOV (R4)+,R3 ;# OF ENTRY PTS -> R3  BEQ 10$ ;IF ZERO, CAN BRANCH" MOV (SP),R0 ;CALCULATE OFFSET TO,9$: MOV (R4)+,(R2)+ ;MOVE IN TWO RAD50 WORDS" MOV (R4)+,(R2)+ ;WITH ROUINE NAME) MOV (R4)+,(R2) ;AND NOW OFFSET INTO CODED+ ADD R0,(R2)+ ;PLUS OFFSET TO START OF CODE SOB R3,9$610$: MOV (SP)+,R2 ;INSERTION PT FOR NEW ROUTINES -> R2- MOV (R4)+,R3 ;# OF WDS OF CODE TO XFER -> R31 BEQ 13$ ;IF ZERO, BRANCH MOV LNKOLD,R0 ;RESTORE FDB PTR + MOV F.NRBD+2(R0),R1 ;START OF BUFFER -> R1N& ADD #1000,R1 ;NOW END OF BUFFER -> R1(11$: CMP R4,R1 ;ARE WE AT END OF BUFFER BLO 12$ ;IF NOT, BRANCHR" GET$ ;IF SO, GET ANOTHER RECORD# MOV F.NRBD+2(R0),R4 ;AND RESET PTR(12$: MOV (R4)+,(R2)+ ;MOVE IN SOB R3,11$ ;THE CODE#13$: CLOSEF ;CLOSE THE INPUT FILE0 MOV (SP)+,R1 ;RESTORE TEXT PTR  SKIP ;CHECK FOR CMPB R2,#', ;COMMA BNE 14$ ;IF NOT, END (BRANCH) $ JMP LOAD00 ;IF SO, GO AROUND AGAIN114$: DEC R1 ;OTHERWISE AT END (BACK UP TEXT PTR) 4 BIC #FD.PLC,F.RACC(R0) ;AND CLEAR LOCATE BIT IN FDB( JMP INIT02 ;AND CONTINUE ON IN PROGRAM;KA .SBTTL UNLOAD - COMMAND TO UNLOAD ALL USER LOADED MACRO ROUTINES;+7E; .SLA ; .X R3 BEQ 2$ ;IF ZERO, BRANCHT ASR R3 ;NOW MAKE IT WORDSE"1$: MOV (R2)+,(R4)+ ;MAKE THE MOVE SOB R3,1$2$: MOV R2,R3 ;COPY OLD END RTS PCB& .SBTTL VARIOUS POINTERS AND VARIABLES; ); SYSTEM VARIABLES DEFINED OR STORED HEREO/; USR AND ENDUSR SET UP AT BEGINNING OF PROGRAMB;F .PSECT BASIC3RDY00: .ASCII /READY/QRDY01: .BYTE 15,12,0 .EVEN .GLOBL TRAP00VECTAB: .WORD 0, .WORD 0 .WORD 0 ;T-BIT TRAP OR BPT .WORD 0 .WORD 0 .WORD 0 .WORD TRAP00 ;TRAP INSTRUCTION .WORD 0 .ENDUz 8Do; @K0@oM N@ ~p@Ty@\`s@_Mp@X@\`K@(@fh@vL< @y"&@zo =@4{2H;Mv@<&@){%Hb<@8@!v@SZ0@.{`H:2@)E@yr@`@w@#w""@z\M""@6{V HvL @nL`@6_ g@\`p@7{4dH%{MH&{P@O@oMg'@,.b@;M_@E`ZX@vL.!@zL`N@'ą@3{(H)@,.b@,.b@,.b@Uq@)@ya@:0@2N0@5{fHJ@Uq0@z'0@K000tzVW@fhW@Aw@vL!@(2@)Ty@:}@}0\@k@X@N9@ ~r@'IR@`X΁@z}@sw@""@t!y@%{_H%{_H'@vL""@0@""^@\`VN@n 0@u0@x""@<&%t@zr@Q@%x@0@y`@)Bx@ ~@""0@.{#He'""@""@|@4{]H)p@oMy@<&p@z$9f@fh=M@me@f""@; 0@n^@%{`H%{`H!@ NvL@t @)@0@$9B@,y g@zX@/{WHt'@u~0@t<@V/K@*0@s0@u0@sX@%{mH#r0@v~ g@)t @"{8 H`z2{H!Hiy`@!""@59Ps@_΁@f@<&e@s%@:X@ z""@%@%""@0@5@:0@Ay@_M0@ &0@K΁@"O@z(@)Z@)W@ay@;K}@)p@oM%@>M""@w0@${a Hw}@!{ XHl g@#w0@%{Hz<&(@""@3 0@/{p&H%@+.N@f""@Iq@"&v@[q0@0{qHjy0@)@%""@3{Hz;Mv~@'V@*D@&Nu@[}@2{4dH.{(Hak@U:""@=@N`""@<0@Gw@)'@8 ~@z@=@%@0{rH\q0@6@<@C@)Ps@6a""@'""@"{@:k@yh@K@' q@zzy΁@"0@""@\` U@L0@r0@0@%{xHht @%"&@:0@#:""@(""@h@$9!@z""@Ա(@rX@}""@3{L Hw""@\`!@hp!@)p@:d N@^@){SH3{}H8{`H4{pHrzЅ`'@g'@w0@:@K^0@6x$@f""@:y@!<@w0@t!J@3{V&H%'@oMY@#N*@zy""@΁@_g'@@(r@L^0@_XvL@:4F@&{WH}@y<@ Z `y:h 8`Pzy:hy:h y:Ёhy:΁hy:ρhy:сhAIh,Nh 0hy0h>xO\h*) OhK*}h@uh2K Vhzxhh Zh.xhhyOh&h&hy2hT hth( {h|hN*h^d0h[g6hYMhzJw0h f0hdhy6hf΁h>xWhfN\h4 fO\h8 _Xh h_hxdh'Nh }y0h$&'hv &'h   8N&%e $7 ,U:} v~ g}aknL` Aw$aknL` (:2 ~ *akn^ .l g0`}B:sD:kn^ HswJUw & & +&'e5  & n ~p:kn^  ^ ~r:kn^ :k"X*X.Xb:4Fd:kn^ h:knt p""e Ne  @WW15-7 E%% fw w l:y :y)p$)p(}.)Ps4$9!:$9fHvL< LoMYNoMg'R;M_^;Mv~b!""ft!yts%zyhzB3 7  wwBWw7@` 5 3ɥ"5(5EUɥ!5|_g't!ys%sX&$9B,:d Nfh .vL""2)p:vL.!@vL< ToMYVoMg'\oMy^oMg'doMyfoMg'loMynoMg'xoMyNU5ɥ` ѥ  EɕEloMg' oM% oMg'Ѕ`'oMYoMyoM% oMg'6oMYoMyoM% 8oMg':#:""HoMyoM% JoMg' <<SY&&Jw ::SY&0,  &fI@ W pp 1 pp9 & L `}.`}(""P:d Nfh T:d Nfh=M X:d NfhW Z'""d    p @ p @ Ea AmB ZfCR~C& `7`&46a"")t Dt F)J<&L)t PGwR)pV,y gX)p\'^)bhp!l,y gn`}  B8 P  f  W   w6  5xs%""8(;M_0Ա(66_ g8)p<6_ g>)pB' qD)Hhp!NԱ(\(d(n(tUqz<&(|)t t<7 e~e e wF  w7  5 7 |Uq%"" 6_ g:}6_ g_g')W%'8J>t!ԀBvL!Fy<HXP%' VUq^%' dvL< ls%p<@877f 54Etx <$& e` C e E `Jy"&y` y`y<!<.8:<>@BD$F&|(""(eEeLIRRTCO7 8  w`D`8  & LR Uq(Uq0_XvL6_XvL>""B8J_XvLP_XvLRvL!VvL!`!<hy`Y&f@````B` b~  & 2  R  wjf >t!Jy`"t!J&y"&*y`.y`P""^%"&bKz"{j   7 @FXRNLN EN BNBLROWRUPMOAPUqt<\`s"<&p$\`p. 6 <\`sD\`sJ' q L\`VNR' T\`VNZ'ą \\`VNb'IR d\`VN^ SH & ~PP   ' \`VN %x \`VN\`K\`!"&{P,"&v2t 4)8<&:)t @)BxF)ZL\`KP\`VNZ<&t  ~  ¥# 7!!  ` ¥, f4 p|\`VN)p Ty )Ty)'' q)&"O.\`VN2"&v<\` UT"{XN`""`4 j"&vn\`VNp)pt\`sv)|\`p`Z E E3e  D U|)<&p )t<)t<)t  )$\`K*\`K.\`K2)Bx6&{P>6a""H"&vL%N)X<&pZ)z UUU MeeUU%e@ ~e00 7 |%% )<&p)<&)t ()p2&{P6\`KD\`!N&{PX&{P^)pd)phhp!l)Psp:d Nfh , 7wJ 8 *DU 777f  ~ |E`ZXy"&t<))Bx&{P$6a""."&v6%8)D\`KH<&%tJ)P)EVy`Zy"&by`fy`jy"&ny"&   %  %, P w p 5 5 5  Re 7 4"O:""J[}p`t)Psx:d Nfh |w$   00zVWe 7`7`7` @ le & Z %TP@ "%<&{P y`(y"&,y`0y`6y"&:t!JL&{PZ"O # B55 e el ,' @ 55  :}&`}8&{Pt"O 3 ,  le n* 0  f "C @-   8)%""'""vL!(o; BXFy<Ro =vX  "* f D  f&N! 0  , wzewA $&Xo =4t LV/KlxyhAmB" 5UEh5U.5'E5!`&  n`Ћ~j JoM NoMg'oM N oMg'&oM N(oMg'2oM%oM N 4oMg':oM%*DL*DPo =jUq|n єע"[ע:ѕ ע\ѕ עaĒ?Z!•h &  ע, פ    ȋe`x W  ע  wh!iЋ  єєĔ"Ĕ5ѕC@V}""vUq Cw PW W  7 wѕCC55 xhi*wVW" W"W>*D o =*D*D,_g'2_g'4U:""F*DPUqf*Dp - r7`7`7`& 6   eb}""!<y`y`X"!<0!<4!<6!v:y<>XLXPt!Ԁb6a""j NvLnvL""   (C 7wuw w!``@"~`~wX7 JX$X, NvL4J>  8 8/ /PRIORITY Z @@j  8j 888RANDOMIZE Z BBrX 8B BSTOP Z DDyh 8GGEND Z FFyh 8K KSTEP Z HH  8 8PPRUN Z JJs0 8T TCLEAR Z LL&  8& 8Z ZDELETE Z NN  8 8a aLIST Z PP   8  8f fSAVE Z RR@  8@ 8k kCHAIN Z TT  8 8q qOVERLAY Z VVX  8X 8yyOLD Z XX  8 8} }SCRATCH Z ZZ  8 8 EXIT Z \\>  8> 8 SLEEP Z ^^"  8" 8 BREAK Z ``  8 8SET Z bb  8 8 WAIT Z ddV  8V 8 SBS$( Z ff#w0 8 SEG$( Z hhw0 8 RJS$( Z jj#r0 8 LJS$( Z llL0 8 STR$( Z nn&Nu 8 TRM$( Z pp0 8 LTR$( Z rr2N0 8 DAT$( Z tt<0 8 TIM$( Z vvu~0 8 SEC$( Z xx  8 8 CHR$( Z zz0 8 MID( Z ||#w0 8 LEFT( Z ~~K΁ 8 RIGHT( Z q>5 8 DDAT$( Z ΁ 8 PIECE$( Z me 8 FRMT$($ Z 'V 8   SPACE$( Z Ay 8 STRING$( Z y0 8 STREP$( Z   8 8" "R5A$( Z u0 8( (OCT$( Z L^0 8. .OCS$( Z K^0 84 4SIN( Z 6x$ 89 9COS( Z +0 8> >ATN( Z n 0 8C CEXP(( Z #N* 8H HLOG10($ Z _Mp 8O OLOG(I Z _M0 8T TABS( Z 0 8Y YSQR( Z zy΁ 8^ ^INT( Z :0 8c cRND( Z r0 8h hSGN( Z w0 8m mINX( Z :0 8r rPOS( Z :0 8w wNRC( Z SZ0 8| |LEN( Z K0 8 VAL( Z 0 8 ASC( Z ; 0 8 OCT( Z :^0 8 COR( Z *0 8 DCEN( Z }0\ 8 TIME( Z   8 8 SEC( Z w0 8 ERR( Z ""0 8 ERL( Z "0 8 AR5( Z 3 0 8 FCS( Z  &0 8_FNTHENTONOTANDXORORIMPEQVOFFELSEPROMPTPASS-ALL-INPUTPASS-ALL-PRINTUPPERECHOr   헠t00VW0w( 7w T헠#   > D(""w"""4g'@g'H"ON""^Ty""j'""v:}c 3w   w w  엠TSMH,59Ps"OV/K,;K}6,.b@,.bD"O  & &) Bw8 v7  d&& &   &x""R""XX\Xb"Onf""    f   $~&  ````l""%' ;M_' q) <&e")&hp!::>}H8 ~L)pb\M""fJj!<rJvJ ` 6`7``f` W#` ~ `~e! ~ H!v s%vL &yr*yr.yr6hd;M_h)pt}x)pb 6뗠,w Ew  7w7 ^~ ꗠt7w&J<&e)(s%0vL 8|M""@\M""@_M0@*_Mp@ NvL@2N0@_XvL@`X΁@*SZ0@:^0@K^0@L^0@6_ g@*_g'@_΁@E`ZX@L`N@N`""@*\`!@\`K@\`VN@\` U@\`p@*\`s@`}@ak@ay@6a""@*:d N@me@f""@f""@f""@*f@fh@fh=M@fhW@5@#r0@r@Q@*r0@rX@sw@s%@s0@*sX@t<@t @u0@#w""@*#w0@Gw@w0@w0@w""@*w0@6x$@x""@,y g@Ay@*zy΁@ya@y`@y`@yh@*y0@y<@y"&@yr@y""@* z""@!{ XH"{8 H`${a Hw%{H*%{MH%{_H%{_H%{`H%{`H*%{mH%{xHh&{P@&{WH'{`Hf*'{`Hc){%Hb){SH.{#He.{%H*.{(H.{`H/{p&H/{WHt/{pH*0{qHj0{rH2{H!Hi2{4dH3{H*3{L H3{V&H3{(H3{}H4{2H*4{]H4{pHr6{V H7{4dH8{`H*}@ ~p@ ~r@ ~@u~0@*v~ g@""@'""@(""@l g@*h@g'@0@|@}""@*""@J@0@""@*D@*Aw@[}@X@X@`@*=@@=@K@}@hp!@*:@}@(Z hy:h* 8h) Oh`K Vh{hh*th N*hZhuh&'h *&'h &h8&h@'Nh ,Nh*y:΁00s2TADATADATADATADATADATAhy:ρhy:Ёhy:сhy:hJ*y:h&AIhzYMh_Xht_h*d0hdhfN\h fO\h f΁h*f0hX[g6hJw0hxhhdxWhX*xO\hfxdh8xhhF}y0hy2h *y6h0y0hyOht h 0h2|hK*}h|  8&%e $&:} v~ g}aknL` 7(Aw aknL` :2 ~ & "akn^ l g `}:s@U*:kn^ sw ~p:kn^ $PUw & (^ ~r :kn^ :kX*p& +&XX*'e5  & (:4F:kn^ :k"t $""*e Ke :y:y()p* =WW.5* )p })Ps$9!$9f*7 %% w vL<  ;M_;Mv~!""t!y*. w \3 D7   s% yh_g'"t!y&s%"TwwWw7(sX$9B:d Nfh vL"")p*r@`   ɥ`ѥ  vL.! vL< ɕ #:"" <<SYJw *SY&0,  & `}*fI@ W pp "`}l g)p$)p(}**1 pp9 &nL`nL`$nL`P $nL` :2akn^ ayd7*:d Nfh  )Ps:d Nfh f""t7*l g`} :2 ~  akn^  |w4  aknL` v~ g:}& & \7 7 &(%"&)  Gw,y gUq vL< $ M w !&%"&` <&e)l g`}*,&(f,  B~7єCk6"<* ȕ &k 6<=k(@=*  0  9 A k""*F Z B¥ *l¥ WWhW W*  7 w!&<@8y<!< y`(6a""*C 5JtEx "$&(*<>fEU& +  <>!<* e` Ne`  J**e`eEeE`(""(:d Nfh *P77e&n  (:d Nfh=M  :d NfhW  '""n*v&f    p @ * p @ Ea 6a""!<*AmB ZfCR~!<Jt!Ԁ*C& B`7`fw!XX&X*w!AmW t!ԀXt!Ԁ"J*4B "1  (EWu y<X*ZWu` BAAmE J*Ew!AmXJ"t!Ԁ* EuB nEP*B  | ,$k*   6    5(;Mv Uqt )<&<&( ,()t  t  )<&)t Gw@ wB *)p,y g )p')hp!*Zw7   ,y g`}s%""& P f t& ;M_6_ g)p6_ g)p$ w 57 &' q) hp!Uq<&()t e&Uq%"" 6_ g :}6_ g_g'*~e e w  w)W%'$J$7  5 (t!ԀvL! y<X%' Uq" 7 77(%'  vL< s%<@8y"&y`*2f 54Etx^y00VW` y<!<&^*X <nnn e` " n nn*~0C e E `((""*eEeLIRTCO "Uq*7  $Uq _XvL_XvL""&_XvL* wD`8  _XvLvL! vL!!<y`*& Y&f@$t!J*<````B` b~ y`t!J y"&y`y`*b  & X   ""%"&"K* w*f    7 "{(Uq*@FXRNLN EN BN" t< \`s<&p\`p & BLROWR$\`s\`s' q \`VNUPMO&' \`VN 'ą \`VNAPSH&'IR \`VN ' \`VN$  & ~&%x \`VN\`K\`!&{P, P&"&v t  )<&)t )BxF P   &)Z \`K\`VN<&t  ^ *\`VN)p Ty )Ty)'' q*r ¥# 7!! )"O\`VN"&v(\` U*  ` ¥, f "{N`""& p& "&v\`VN)p\`s)\`p &)<&p )t<)t< E E3&) t  )\`K\`K\`K* e  D U()Bx&{P6a"""&v% ), U(<&p) %% )<&p*B UU Me()<&)t )p$&{P(\`K*h eUU%e@ ~e0\`!&{P$&{P  0 7 *)p )php!)Ps:d Nfh $ 7w  8(E`ZXy"&t<))Bx&{P* *DU&6a"""&v%)$\`K(<&%t$  R 777&) )Ey`y"&y` y`* f  ~ > y"&y"&$"O*6 %  %, P wb*\ p 5 5 5 ""[}*  xe 7  "`)Ps:d Nfh  w*  e t 7`7`7`&{Py`"y"&&y`*  @ le y` y"&t!J &{P* & Z %TP@ "O* H%# B55:}*@  e el ,`}&{P*f ' @ 55*  3 ,"O)&%""('""*   e *vL!o; * 0  f HC fXy<o =* -    H*X*$  f D  X o =&t *J f&N! 0  V/K*p ,  w:ewA $Ayh* mB*5#E`& JUq*  `Ћ~ • *  •  x  "$&(*\:5  Uq*.?7! me1f XJt!ԀX$t!Ԁ*Tmm~BwJJt!Ԁ(X*ze 7BmB w!X J*5 , w  X$(* B zFF D(rFF*h wf fhUq0$#:""(>  8 8m mPRIORITY Z @@  8 8vvRANDOMIZE Z BBrX 8 STOP Z DDyh 8END Z FFyh 8 STEP Z HH  8 8RUN Z JJs0 8 CLEAR Z LL  8 8 DELETE Z NN*  8* 8 LIST Z PPD   8D  8 SAVE Z RR  8 8 CHAIN Z TT  8 8 OVERLAY Z VV  8 8OLD Z XXb  8b 8 SCRATCH Z ZZb  8b 8 EXIT Z \\8  88 8 SLEEP Z ^^Z  8Z 8 BREAK Z ``r  8r 8SET Z bbV  8V 8 WAIT Z dd  8 8 SBS$( Z ff#w0 8 SE00VWG$( Z hhw0 8 RJS$( Z jj#r0 8 LJS$( Z llL0 8 STR$( Z nn&Nu 8 TRM$( Z pp0 8 LTR$( Z rr2N0 8 DAT$( Z tt<0 8   TIM$( Z vvu~0 8 SEC$( Z xxN  8N 8 CHR$( Z zz0 8 MID( Z ||#w0 8$ $LEFT( Z ~~K΁ 8* *RIGHT( Z q>5 81 1DDAT$( Z ΁ 88 8PIECE$( Z me 8@ @FRMT$($ Z 'V 8G GSPACE$( Z Ay 8O OSTRING$( Z y0 8X XSTREP$( Z N  8N 8` `R5A$( Z u0 8f fOCT$( Z L^0 8l lOCS$( Z K^0 8r rSIN( Z 6x$ 8w wCOS( Z +0 8| |ATN( Z n 0 8 EXP(( Z #N* 8 LOG10($ Z _Mp 8 LOG(I Z _M0 8 ABS( Z 0 8 SQR( Z zy΁ 8 INT( Z :0 8 RND( Z r0 8 SGN( Z w0 8 INX( Z :0 8 POS( Z :0 8 NRC( Z SZ0 8 LEN( Z K0 8 VAL( Z 0 8 ASC( Z ; 0 8 OCT( Z :^0 8 COR( Z *0 8 DCEN( Z }0\ 8 TIME( Z N  8N 8 SEC( Z w0 8 ERR( Z ""0 8 ERL( Z "0 8 AR5( Z 3 0 8 FCS( Z  &0 8*FNTHENTONOTANDXORORIMPEQVOFF*ELSEPROMPTPASS-ALL-INPUTPASS-ALL-PR DINTECHON Nr (""V*V P UP 헠t PUw""P*|0w. 7w g'g'"O ""^&y""*헠#  B '""":}*c 3w z  59Ps"O V/K* w w  P;K},.b,.b "O*TSM*:H  *`& &) x""*Bw> v7  ""XX""O*d&& &     f""""(%' *  f &;M_ ' q )<&e)hp!*  $~&: }8 ~)p*  ```` `  \M""J!<JJ*D 6`7``f !v s%vL $yr(yr*j` W#` ~yrh* `~e! ;M_)p&}*~  뗠,w Ew)p"<&e$)*  7w7& s%vL |yr"J&!<* ^~ J뗠t J&g'*(7w&`  g'""*N ~&  ~tREADY h002TADATADATADATADATADATA?; GETARG: TO RETRIEVE ADDRESSES OR VALUES FROM AN ARGUMENT LIST; IN A BASIC "CALL" STATEMENT.@; ON ENTRY: R5 POINTS TO A USER TABLE FOR RESULT TO BE PLACED IN=; R1 POINTS TO CURRENT POS IN ARG LIST (MUST BE "," OR "(" ):; R0 POINTS TO LIST OF BYTE ARG TYPES (TERM. BY 0 OR > 4)?; ON RETURN: R5 POINTS TO THE FIRST WORD PAST THE RETURNED DATA:; R1 POINTS TO NEXT CHAR FOLLOWING LAST ARG JUST RETURNED1; R0 POINTS TO FIRST BYTE AFTER TERMINATING BYTE; ARG TYPES IN R0 LIST:7; 1 = INPUT NUMERIC EXPRESSION (2-WORD FLOATING POINT)V;E&; 2 = OUTPUT NUMERIC TARGET (5 WORDS); 2-WORD FP VALUE; 2-WORD FP OFFSET ; 1-WORD OFFSET TO HEADER; 5; 3 = INPUT STRING EXPRESSION (2 WORDS) LEN, ADDRESS(%; 4 = OUTPUT STRING TARGET (5 WORDS)T; 1-WORD ADDRESS); 1-WORD LENGTH; 2-WORD FP OFFSET ; 1-WORD HEADER ADDRESS;T1; FOR STANDARD VAR, OFFSET IS OFFSET FROM STUDAT 8; FOR VIRTUAL VAR, OFFSET IS OFFSET FROM START OF FILE;R; 0 OR > 4 = LIST TERMINATORE0; ALL OTHER REGISTERS WILL BE USED AND DESTROYED; ;EH; GTRGPI: ENABLE POSITION INDEPENDENT ARGUMENT RETRIEVAL FOR USER LOADEDE; ROUTINES. THE ARGUMENT TYPE LIST FOLLOWS THE CODE IN A JSR R4,GTPRIDC; INSTRUCTION. THE ARGUMENT LIST ITSELF IS CONSTRUCTED ON THE STACKR!; AND POINTED TO BY SP ON RETURN. ; ; ON ENTRY:F2; R4 POINTS TO ARG TYPE LIST (VIA JSR R4,@#GTRGPI)"; OLD R4 ON STACK (WILL BE POPPED) ; ON RETURN:E; SP POINTS TO ARG LIST (ON STACK - TO BE REMOVED BY CALLING ROUTINE)T"; OTHER REGISTERS: POTENTIALLY ALL;B;S5; NSTORE: STORE AWAY A VALUE FROM AC0 INTO A LOCATIONE5; STORED IN A TABLE SUCH AS THAT FILLED IN BY GETARG. ); ON CALL: R5 CONTAINS POINTER TO ADDRESSA"; AC0 CONTAINS VALUE TO BE STORED; ON RETURN: NOTHING CHANGED; REGISTERS USED: R0, AC1O;E@; SSTORE: TAKE A STRING DESCRIBED BY LEN IN R4 AND ADDRESS IN R3:; AND STORE IT INTO A STRING VARIABLE WHOSE TABLE ENTRY IS; POINTED TO BY R5.P;I.; ON CALL: R3 = ADDRESS OF STRING TO BE STORED%; R4 = LENGTH OF STRING TO BE STOREDN,; R5 = POINTER TO OUTPUT STRING TABLE ENTRY;F); ON RETURN: R3 POINTS PAST END OF STRINGL ; R4 = 0H; R5 UNCHANGEDE;G*; OTHER REGISTERS USED: R0,R2 (ALL BUT R1) !; ARGCNT: COUNT ARGUMENTS ROUTINE/; ON ENTRY: R1 POINTS TO LEADING OPEN PAREN "("0; ON EXIT: R1 UNCHANGEDE7; R0 CONTAINS COUNT OF ARGUMENTS UP TO ")" IN THE LIST 5; QUOTED STRINGS AND SUBSCRIPTS ARE ACCOUNTED FOR ; OTHER REGISTERS USED: R2?; NOTE: AN END OF LINE WILL TERMINATE THE SCAN IRRESPECTIVE OFI9; ENCLOSING QUOTES AS LONG AS IT IS USED AS THE INTERNALT$; LINE DELIMITER (S.EOL1 OR S.EOL2)ing.LIn addition it must be reissued after each _.NUMBER CHAPTER if you intend to9control chapter numbering but wish running page numbers. GYou may permanently disable chapter numbering with _.DISABLE NUMBERING CHAPTER. .helpd LEVEL .endif small< ;*********; * ; BASIC4 *; * ;*********;T .TITLE BASIC4;N3; OBJECT MODULE FOR USER SUBROUTINE CALL PROCESSINGH; ; ORIGINAL ENTRY DATE: 22-DEC-76; AUTHOR: LARRY SIMPSONR'; DEPARTMENT OF MEDICAL PHYSICS&; MICHAEL REESE MEDICAL CENTER;EU; CONDITIONAL ON DEFVAR....ALL REFERENCES TO UNDEFINED VARIABLES DEFINE THEM ;DSS1SU; (SEE COMMENTS IN BASIC2.MAC) ;DSS1U; ;DSS141 .SBTTL MACRO DEFINITIONS AND GLOBAL DECLARATIONSE;M .PSECT BASIC4,RW,I,GBL,REL,CONO .MACRO TRPSUB A,B .MACRO AD JSR PC,B- .GLOBL BR .ENDM .ENDM;  TRPSUB EVAL EVAL00  TRPSUB EVALS EVLS00 TRPSUB GETADR GTDR00I TRPSUB GETSAD GTSD00T TRPSUB SKIP SKIP00L TRPSUB TSTOK TSTU00 TRPSUB CRLF CRLF00T TRPSUB ATOI ATOI00C TRPSUB PRINTC PRNT00  TRPSUB PRINTL PRN00 TRPSUB SRLST SRL00 ; ; GLOBAL SYMBOLS DEFINED HERE * .GLOBL GETARG CALL00 NSTORE SST00VWORE OPLB00 .GLOBL PARCHK;$; GLOBAL REFERENCES TO OTHER MODULES) .GLOBL STUDAT ENUDAT INIT02 $CAT5 $CBDSGE* .GLOBL OP.LUN OP.MXL CSINT0 FILFN1 INIT02" .GLOBL S.EOL1 CSDSPT PARLST P.FCS;(; GLOBAL ERROR CODES - DEFINED IN BASIC0* .GLOBL ARGERR CALERR STOERR OVFERR OPLBER .GLOBL OPLFER TM1ERR TM2ERR;U; MACRO CALLS:( .MCALL NMBLK$ FDRC$R FDOP$R GET$ FDOF$L;T; DEFINE FDB OFFSETS LOCALLYFDOF$L;0%; FLOATING POINT REGISTER DEFINITIONSMAC0=%0AC1=%1AC2=%2AC3=%3AC4=%4AC5=%5 T= .SBTTL GETARG - ARGUMENT PROCESSING FOR "CALLED" SUBROUTINESD;S; GETARG ROUTINE7; TO RETRIEVE ADDRESSES OR VALUES FROM AN ARGUMENT LISTF; IN A BASIC "CALL" STATEMENT.@; ON ENTRY: R5 POINTS TO A USER TABLE FOR RESULT TO BE PLACED IN=; R1 POINTS TO CURRENT POS IN ARG LIST (MUST BE "," OR "(" ) :; R0 POINTS TO LIST OF BYTE ARG TYPES (TERM. BY 0 OR > 4)?; ON RETURN: R5 POINTS TO THE FIRST WORD PAST THE RETURNED DATAG:; R1 POINTS TO NEXT CHAR FOLLOWING LAST ARG JUST RETURNED1; R0 POINTS TO FIRST BYTE AFTER TERMINATING BYTEC; ARG TYPES IN R0 LIST:U); 1 = INPUT NUMERIC EXPRESSION (2 WORDS) 5; 2 = OUTPUT NUMERIC TARGET (5 WORDS) ADDRESS, VALUEC5; 3 = INPUT STRING EXPRESSION (2 WORDS) LEN, ADDRESSL;; 4 = OUTPUT STRING TARGET (5 WORDS) HD ADD, OFF, LEN, ADDA; 0 OR > 4 = LIST TERMINATOR0; ALL OTHER REGISTERS WILL BE USED AND DESTROYED; %GETARG: MOVB (R0)+,R4 ;ARG TYPE IN R4S" BEQ ENDARG ;IF ZERO, END OF LIST$ CMP R4,#4 ;SEE IF OTHER TERMINATOR BHI ENDARG ;IF SO, ALSO ENDT ASL R4 ;MAKE INTO WORD OFFSETT. JMP @JMPTBL-2(R4) ;SELECT APPROPRIATE ROUTINEJMPTBL: .WORD INPNUM .WORD OUTNUMU .WORD INPSTRT .WORD OUTSTREENDARG: RTS PC;I7; ROUTINE TO CHECK INITIAL DELIMITER AND SAVE REGISTERSTDLMCHK: SKIP ;GET NEXT CHARA CMPB R2,#', ;COMMA IS OK BEQ 1$T CMPB R2,#'( ;SO IS OPEN PARENR BEQ 1$ ! ARGERR ;ANYTHING ELSE IS ERRORB&1$: MOV (SP)+,R2 ;RETURN ADDRESS -> R2 MOV R0,-(SP) ;SAVE R0 AND R5,. MOV R5,-(SP) ;IN CASE USED IN CALLED ROUTINES JMP (R2) ;DO EFFECTIVE RETURN ;D; ROUTINE FOR INPUT NUMERIC;9INPNUM: JSR PC,DLMCHK ;CHECK DELIMITER AND SAVE REGISTERST EVAL ;GET ARG VALUE IN AC0T BVC 1$ ;IF OK, BRANCH" DEC R1 ;BACK UP OVER CLOSE PAREN21$: MOV (SP)+,R5 ;GET BACK ADDRESS TO STORE RESULT STF AC0,(R5)+ ;AND STORE IT BR FINUP ;GO AROUND AGAINS;E; ROUTINE FOR OUTPUT NUMERIC(OUTNUM: JSR PC,DLMCHK ;DO INITIAL SET UP JSR PC,GETHDR ;GET HEADER BVS AER ;IF ERROR, BRANCHMU ;DSS1OE .IF NDF,DEFVAR ;IF NO AUTOMATIC VARIABLE DEFINITION ;DSS1V> BNE 1$ ;VARIABLE EXISTS ;DSS1D JSR PC,NEWVAR ;NOT DEFINED....DEFINE IT ;DSS1N .ENDC ;DSS1U ;DSS1PE1$: CMP R0,#10 ;IS IT STRING? ;**-2  BEQ AER ;IF SO, ERROR ! JSR PC,GTOFFS ;GO GET ANY OFFSETD/ MOV (SP)+,R5 ;RESTORE LOCATION TO STORE RESULTE# MOV R3,(R5)+ ;STORE HEADER ADDRESS; STF AC0,(R5)+ ;AND OFFSET JSR PC,GETNUM ;GET VALUE -> AC0 STF AC0,(R5)+ ;AND STORE IT TOO,FINUP: MOV (SP)+,R0 ;RESTORE R0 LIST POINTER' BR GETARG ;AND LOOK FOR NEXT ARGUMENT AER: ARGERR;;1; ROUTINE FOR INPUT STRING%INPSTR: JSR PC,DLMCHK ;INITIAL SET UP  EVALS ;GET THE STRING BVC 1$ ;IF OK, BRANCH? ARGERR %1$: MOV R3,R5 ;SAFE GUARD THE RESULTR ADD R4,R5 ;IN USER STORAGE INC R5T BIC #1,R5 MOV R5,ENUDAT/ MOV (SP)+,R5 ;GET BACK LIST POINTER FOR RESULT  MOV R4,(R5)+ ;PUT IN LENGTH MOV R3,(R5)+ ;AND ADDRESS BR FINUPE;A; ROUTINE FOR OUTPUT STRINGN%OUTSTR: JSR PC,DLMCHK ;INITIAL SET UPS* JSR PC,GETHDR ;LOOK FOR DEFINED DATA ITEM BVS AER ;IF ERROR, BRANCHRT ;DSS1E .IF NDF,DEFVAR ;IF NO AUTOMATIC VARIABLE DEFINITION ;DSS1E> BNE 1$ ;VARIABLE EXISTS 002TADATADATADATADATADATA ;DSS1D JSR PC,NEWVAR ;NOT DEFINED....DEFINE IT ;DSS1N .ENDC ;DSS1U ;DSS1KE1$: CMP R0,#10 ;IS IT STRING? ;**-2  BNE AER ;IF NOT, ERROR JSR PC,GTOFFS ;GET OFFSET. MOV (SP)+,R5 ;RESTORE LIST POINTER FOR RESULT" MOV R3,(R5)+ ;SAVE HEADER ADDRESS STF AC0,(R5)+ ;AND OFFSET! MOV R3,R0 ;HEADER ADDRESS -> R01, JSR PC,GETSTR ;SO WE CAN GET THE STRING NOW MOV R4,(R5)+ ;PUT AWAY LENGTH MOV R3,(R5)+ ;AND ADDRESS BR FINUP ; ; SUBROUTINE GTRGPI C; TO ENABLE POSITION INDEPENDENT ARGUMENT RETRIEVAL FOR USER LOADED E; ROUTINES. THE ARGUMENT TYPE LIST FOLLOWS THE CODE IN A JSR R4,GTPRI C; INSTRUCTION. THE ARGUMENT LIST ITSELF IS CONSTRUCTED ON THE STACKE!; AND POINTED TO BY SP ON RETURN.S;O ; ON ENTRY:U2; R4 POINTS TO ARG TYPE LIST (VIA JSR R4,@#GTRGPI)"; OLD R4 ON STACK (WILL BE POPPED) ; ON RETURN:E; SP POINTS TO ARG LIST (ON STACK - TO BE REMOVED BY CALLING ROUTINE) "; OTHER REGISTERS: POTENTIALLY ALL;  .GLOBL GTRGPIGTRGPI:G TST (SP)+ ;POP OLD R4I( MOV R4,R0 ;ESTABLISH ARG TYPE LIST PTR1$: MOVB (R4)+,R3 ;GET TYPEU BEQ 3$ ;IF ZERO, END OF LIST CMP R3,#4 ;CHECK LIMIT' BHI 3$ ;IF TOO HIGH, ALSO END OF LISTT# SUB #4,SP ;ADD TWO WORDS TO STACKO BIT #1,R3 ;CHECK FOR ODD TYPEY% BNE 2$ ;IF SO, INPUT (2 WORDS ONLY)S" SUB #6,SP ;ELSE OUTPUT (5 WORDS)2$: BR 1$ ;GO BACK FOR MORE3$: INC R4 ;ROUND R4 UP TOT BIC #1,R4 ;RETURN ADDRESSG" MOV SP,R5 ;SAVE ARG LIST POINTER& MOV R4,-(SP) ;AND SAVE RETURN ADDRESS$ JSR PC,GETARG ;GO TO NORMAL ROUTINE. RTS PC ;AND RETURN TO ADDRESS SAVED ON STACK G( .SBTTL NSTORE - NUMERIC STORAGE ROUTINE;P; NSTORE ROUTINE0; TO STORE AWAY A VALUE FROM AC0 INTO A LOCATION5; STORED IN A TABLE SUCH AS THAT FILLED IN BY GETARG.R); ON CALL: R5 CONTAINS POINTER TO ADDRESS "; AC0 CONTAINS VALUE TO BE STORED; ON RETURN: NOTHING CHANGED; REGISTERS USED: R0, AC1RNSTORE:" MOV R3,-(SP) ;SAVE SOME REGISTERS MOV R2,-(SP) # MOV (R5),R3 ;HEADER ADDRESS -> R3  LDF 2(R5),AC1 ;OFFSET -> AC1; JSR PC,STONUM ;AND STORE IT MOV (SP)+,R2 ;RESTORE THOSE MOV (SP)+,R3 ;REGISTERS RTS PCR S' .SBTTL SSTORE - STRING STORAGE ROUTINEO;O; SSTORE ROUTINE;; TO TAKE A STRING DESCRIBED BY LEN IN R4 AND ADDRESS IN R3E:; AND STORE IT INTO A STRING VARIABLE WHOSE TABLE ENTRY IS; POINTED TO BY R5.U;O.; ON CALL: R3 = ADDRESS OF STRING TO BE STORED%; R4 = LENGTH OF STRING TO BE STORED,,; R5 = POINTER TO OUTPUT STRING TABLE ENTRY;(); ON RETURN: R3 POINTS PAST END OF STRINGA ; R4 = 0-; R5 UNCHANGEDT;M*; OTHER REGISTERS USED: R0,R2 (ALL BUT R1);MSSTORE:R# MOV (R5),R0 ;HEADER ADDRESS -> R0S LDF 2(R5),AC0 ;OFFSET -> AC0% JSR PC,STOSTR ;STORE STRING IN R3,R4G RTS PCD .SBTTL ARGUMENT COUNT ROUTINE; ; COUNT ARGUMENTS ROUTINEV/; ON ENTRY: R1 POINTS TO LEADING OPEN PAREN "("U; ON EXIT: R1 UNCHANGEDR7; R0 CONTAINS COUNT OF ARGUMENTS UP TO ")" IN THE LISTE5; QUOTED STRINGS AND SUBSCRIPTS ARE ACCOUNTED FOR; OTHER REGISTERS USED: R2?; NOTE: AN END OF LINE WILL TERMINATE THE SCAN IRRESPECTIVE OFI9; ENCLOSING QUOTES AS LONG AS IT IS USED AS THE INTERNAL $; LINE DELIMITER (S.EOL1 OR S.EOL2)2ARGCNT: MOV R1,-(SP) ;SAVE SO WE CAN RESTORE LATER INC R1 ;BUMP PAST OPEN PAREN CLR R0 ;INITIALIZE COMMA COUNT CLR -(SP) ;PAREN COUNTING WORD0 CLR -(SP) ;CLEAR FLAG INDICATING QUOTED STRING3$: MOVB (R1)+,R2 ;CHAR -> R2R CMPB R2,#S.EOL1 ;END OF LINE? BLO 1$T ARGERRS 1$: TST (SP) ;ARE WE IN STRING? BNE 4$ ;IF SO, BRANCH TST 2(SP) ;INSIDE PARENTHESES? BGT 7$ ;IF SO, BRANCHC CMPB R2,#', ;IS CHAR A COMMA BNE 2$ ;IF NOT, BRANCH INC R0 ;ELSE INCREMENT COUNT BR 3$ ;AND KEEP LOOKINGO2$: CMPB R2,#') ;END OF LIST? BNE 5$ ;IF NOT, TRY FOR QUOTEN CMP (SP)+,(SP)+ ;POP FLAGSC MOV (SP)+,R1 ;RESTORE R1R& INC R0 ;COUNT ARGS INSTEAD OF COMMAS RTS PCI.5$: CMPB R2,#'" ;IS I00VWT START OF QUOTED STRING BNE 6$ ;IF NOT, TRY NEXT CHAR INC (SP) ;SET FLAG ON STACK) BR 3$ ;AND GET NEXT CHAR'6$: JSR PC,OPNPRN ;CHECK FOR OPEN PARENA# BNE 3$ ;IF NOT, TRY SOMETHING NEW INC 2(SP) ;SET FLAGA BR 3$ ;AND TRY NEXT CHAR&7$: JSR PC,OPNPRN ;ANOTHER OPEN PAREN?! BNE 8$ ;IF NOT, TRY CLOSE PARENR INC 2(SP) ;ADD TO NESTED COUNT BR 3$8$: CMPB R2,#') ;CLOSE PAREN?" BNE 3$ ;IF NOT, TRY ANOTHER CHAR+ DEC 2(SP) ;IF SO, DECREMENT NESTING COUNTR BR 3$ 4$: CMPB R2,#'" ;CLOSING QUOTE? BNE 3$ ;IF NOT, TRY AGAINT CLR (SP) ;IF SO, CLEAR FLAGE BR 3$ ;AND KEEP TRYING/OPNPRN: CMPB R2,#'( ;IS IT REGULAR OPEN PAREN?O BEQ 1$ ;IF SO, GO SET EQUALITY5 CMPB R2,#S.SFST ;SEE IF IN RANGE OF FCNS WITH ( INCLY# BLO 2$ ;IF NOT, GO SET INEQUALITYR+ CMPB R2,#S.NFBO ;CHECK AGAINST END OF FCNSE! BHI 2$ ;IF PAST, SET INEQUALITYT,1$: SEZ ;SET EQUALITY (WE HAVE OPEN PAREN) RTS PCN)2$: CLZ ;SET INEQUALITY (NO OPEN PAREN)E RTS PCE N .SBTTL CALL STATEMENT;+7,; .SLL ; .X R0&6$: CMP (R0)+,2(SP) ;FIRST PART MATCH? BEQ 4$ ;IF SO, CHECK MOREN! TST (R0)+ ;IF NOT, BUMP POINTERR( BR 5$ ;AND CONTINUE WITH NO MATCH CODE#4$: CMP (R0)+,(SP) ;2ND HALF MATCH?T BEQ 8$ ;IF SO, BRANCH *5$: TST (R0)+ ;BUMP UP JUMP TABLE POINTER& CMP R0,STUROU ;AT END OF RAD50 TABLE? BLO 6$ ;IF NOT, KEEP TRYING, CALERR ;IF SO, ERRORH,8$: CMP (SP)+,(SP)+ ;CLEAR THE STACK OF JUNK# MOV (SP)+,R1 ;RESTORE TEXT POINTERR- MOV ENUDAT,-(SP) ;SAVE END OF USER DATA AREA JSR PC,@(R0) ;GO TO THE ROUTINE+ MOV (SP)+,ENUDAT ;RESTORE END OF USER DATAF0 JMP INIT02 ;CONTINUE WITH NEXT BASIC STATEMENT;;; ROUTINE TO CHECK FOR CLOSE PAREN AND POSITION R1 PAST IT.; PARCHK: SKIP CMPB R2,#') BEQ 1$A CALERR 1$: RTS PC P9 .IF NDF AC0 ;THIS CONDITIONAL ELIMINATES FOLLOWING CODEL;"; TEST ROUTINE TO REVERSE A STRING CALTBL REVSTR .PSECT BASIC4RVSTB1: .BYTE 3,4,0S .EVEN .PSECT IMPUR4,RW,REL,CON,GBL,D RVSTB2: .BLKW 7U .PSECT BASIC40REVSTR: MOV #RVSTB1,R0 ;ARG TYPE TABLE ADD -> R0( MOV #RVSTB2,R5 ;ARG TABLE ADDRESS -> R5 JSR PC,GETARG ;FILL IN TABLEN$ MOV RVSTB2,R0 ;GET CHAR COUNT -> R0) BEQ 3$ ;IF ZERO, CAN SKIP A LOT OF THIS ' TSTOK ;CHECK ON S002TADATADATADATADATADATAPACE (ENUDAT -> R5) BHI 1$ ;IF OK, BRANCHT OVFERR1$: MOV R0,R4 ;LEN -> R4O( BIS #160000,R0 ;SET SCRATCH ITEM HEADER* MOV R0,(R5)+ ;SCRATCH HEADER -> USER AREA) MOV R5,R2 ;SAVE ADDRESS OF RESULT IN R2V MOV RVSTB2+2,R3 ;ADDRESS -> R3, MOV R4,R0 ;LEN -> R0, ADD R4,R3 ;POINT PAST END OF SOURCE STRING,2$: MOVB -(R3),(R5)+ ;NOW REVERSE THE STRING SOB R0,2$% MOV R2,R3 ;SET UP ADDRESS OF RESULTR+3$: MOV #RVSTB2+4,R5 ;POINT TO OUTPUT ENTRYZ JSR PC,SSTORE ;STORE RESULT" JSR PC,PARCHK ;FINISH UP ARG LIST RTS PCI .ENDC ,;+7C; .SKIPR; .HEADERLEVEL 1 R3, OFFSET -> AC0 ;**-1" MOV R3,-(SP) ;SAVE HEADER ADDRESS STF AC0,-(SP) ;AND OFFSET! JSR PC,70$ ;CHECK FOR DELIMITER  EVALS ;GET STRING EXPRESSIONS BVC 7$ ;IF OK, BRANCHO 10$: ARGERR ;ELSE REPORT ERROR%7$: MOV R3,-(SP) ;SAVE STRING ADDRESS. MOV R3,R5 ;AND PROTECT IT  ADD R4,R5 ;BY SETTING NEW  INC R5 ;END OF DATA  BIC #1,R5 ;AREA  MOV R5,ENUDAT MOV R4,-(SP) ;SAVE LEN ' JSR PC,70$ ;WE NEED ANOTHER DELIMITER  EVAL ;GET START POSITION,& BVS 1$ ;IF END OF EXPRESSION, BRANCH> STCFI AC0,-(SP) ;STORE START POSITION ON STACK (INTEGER FORM) BMI 10$ ;NEG IS BAD BUSINESS# JSR PC,70$ ;NOW WE NEED 4TH VALUEE EVALG BR 2$(1$: STCFI AC0,-(SP) ;SAVE START POSITION. LDCIF 2(SP),AC0 ;USE STRING EXPRESSION LENGTH2$: + DEC (SP) ;MAKE FIRST POSITION INTO OFFSETR$ BMI 10$ ;IF NEGATIVE, ERROR BRANCH# STCFI AC0,-(SP) ;SAVE LEN ON STACK,+ MOV 14(SP),R0 ;ADDRESS OF DATA BLOCK -> R0  LDF 10(SP),AC0 ;OFFSET -> AC0 MOV #1,R5 ;SET WRITE FLAGB5 JSR PC,STRADD ;ACCESS VARIABLE FOR WRITE (ADD -> R3); MOV (SP),R4 ;SPEC'D LEN -> R4T BPL 11$ ;IF POS, BRANCHI NEG R4 ;ELSE MAKE POS0%11$: MOV 2(SP),R5 ;START OFFSET -> R5 . ADD R4,R5 ;NOW TOTAL LENGTH WE NEED FOR XFER BIT #10000,(R0) ;VIRTUAL ARRAY? BNE 12$ ;IF SO, BRANCH MOVB 4(R0),R2 ;LEN -> R2O" BIC #177400,R2 ;CLEAR SIGN EXTEND SUB R5,R2 ;DIFFERENCE -> R2A BGE 3$ ;IF PLUS OR ZERO, OK0& ADD R2,R4 ;ELSE ADJUST SPEC'D LENGTH ADD R2,R5 ;AND TOTAL LENGTH,"3$: TST 4(R0) ;FIXED OR VARIABLE? BPL 4$ ;IF FIXED, BRANCH" MOVB -1(R3),R2 ;CURRENT LEN -> R2" BIC #177400,R2 ;CLEAR SIGN EXTEND+ CMP R5,R2 ;COMPARE NEW MAX TO CURRENT MAXR+ BLE 4$ ;IF CURRENT MAX SUFFICIENT, BRANCHL MOVB R5,-1(R3) ;ELSE ADJUST IT0 BR 4$ ;GO TO COMMON CODE;1; VIRTUAL STRING SECTION;0!12$: MOV 10(R0),R2 ;MAX LEN -> R2C BPL 13$ ;MAKE IT NEG R2 ;ABS VALUE 13$: SUB R5,R2 ;GET DIFFERENCE, BGE 4$ ;IF POS OR ZERO, OK$ ADD R2,R4 ;ELSE ADJUST LEN OF XFER!4$: LDCIF R4,AC0 ;NEW LEN -> AC0V TST (SP00VW)+ ;CHECK ORIGINAL SIGN BGE 6$ ;IF PLUS, LEAVE ITL# NEGF AC0 ;IF MINUS, TRANSFER SIGN +6$: MOV (SP)+,R0 ;START CHAR POSITION -> R0N) MOV R3,R5 ;START OF SOURCE STRING -> R5,-8$: TSTF AC0 ;CHECK ON RIGHT OR LEFT JUSTIFY  CFCC  BMI 83$ ;IF RIGHT, BRANCH ; LEFT JUSTIFY CODE2) CLRF AC1 ;ZERO NUMBER OF LEADING BLANKS 1 SUB (SP),R4 ;GET AMOUNT SPEC'D OVER WHAT WE HAVET BGT 81$ ;IF POS, BRANCHP/ LDF AC0,AC2 ;IF NOT, USE FIRST "L" CHARACTERSF" CLRF AC3 ;AND NO TRAILING BLANKS BR 82$ ;AND BRANCH*81$: LDCIF (SP),AC2 ;ACTUAL LEN TO BE USED2 LDCIF R4,AC3 ;PLUS DIFFERENCE IN TRAILING BLANKS&82$: BR 88$ ;END OF LEFT JUSTIFY CODE; RIGHT JUSTIFY CODE083$: SUB (SP),R4 ;GET # OF CHARS NEEDED TO FILL! BGE 84$ ;IF POS OR ZERO, BRANCH % SUB R4,2(SP) ;BUMP UP STRING POINTERC" ADD R4,(SP) ;AND DECREMENT LENGTH! CLRF AC1 ;SET NO LEADING BLANKS' BR 85$A084$: LDCIF R4,AC1 ;SET NUMBER OF LEADING BLANKS)85$: LDCIF (SP),AC2 ;SET LEN OF CHAR XFERR CLRF AC3 ;NO TRAILING BLANKS-88$: ADD R0,R5 ;GET START POSITION IN SOURCEA MOV 2(SP),R3 ;AND IN EXPRESSION( STCFI AC1,R4 ;NUMBER OF LEADING BLANKS" BLE 42$ ;IF ZERO OR LESS, BRANCH+41$: MOVB #40,(R5)+ ;MOVE IN LEADING BLANKSO SOB R4,41$D*42$: STCFI AC2,R4 ;NUMBER OF ACTUAL CHARS" BLE 44$ ;IF ZERO OR LESS, BRANCH+43$: MOVB (R3)+,(R5)+ ;MOVE IN ACTUAL CHARSR SOB R4,43$O-44$: STCFI AC3,R4 ;NUMBER OF TRAILING BLANKS;! BLE 5$ ;IF ZERO OR LESS, BRANCHL,45$: MOVB #40,(R5)+ ;MOVE IN TRAILING BLANKS SOB R4,45$N5$: ADD #12,SP ;CLEAN STACK RTS PC ;AND RETRURNC70$: SKIP ;NEXT CHAR -> R2 CMPB R2,#'( ;IS IT OPEN PAREN? BEQ 71$ ;IF SO, OK (BRANCH)E CMPB R2,#', ;OR IS IT COMMA? BEQ 71$ ;THAT'S OK TOO!A ARGERR ;IF NOT, ERROR 71$: RTS PC; B& .SBTTL OPEN LIBRARY COMMAND PROCESSOR;+7S; .SLH; .X ^^OPEN LIBRARY\\ ; .X ^LIBRARY OPEN!; .HEADERLEVEL 1 ^^OPEN LIBRARY\\ ; .NFR ; ^FORMAT:-; 50 ^^OPEN LIBRARY _#N,_\\5; .FA; ^THIS COMMAND FUNCTIONS SIMILARLY TO THE STANDARD S.QLBF=S.FDB+80.+<11.*2>+2 ;DEFINE SIZE OF USER DATA ITEM SIZE;T?LIBNAM: NMBLK$ QESLIB,MLB,,SY,0 ;DEFINE DEFAULT FILE NAME BLOCKB;H(OPLB00: SKIP ;GET NEXT CHAR AFTER VERB CMPB #'#,R2 ;IS IT POUND SIGNN BEQ 1$ ;IF SO, OKL2$: OPLBER ;OTHERWISE ERRORD1$: EVAL ;GET FILE NUMBERE BVS 2$ ;REPORT ERROR" STCFI AC0,R4 ;STORE NUMBER IN R4+ MOVB R4,OP.LUN ;STORE FOR FUTURE REFERENCEE CMP R4,#2 ;CHECK LUN IN RANGEP BLE 2$Y CMP R4,#OP.MXL} BGT 2$ + CLR R0 ;NO OTHER BITS REQUIRED FOR SEARCHS; JSR PC,FILFN1 ;SEE IF WE CAN FIND ANOTHER FILE WITH NUMBERI BNE 2$ ;IF SO, ERROR SKIP ;NEXT CHAR CMPB #',,R2 ;SHOULD BE COMMA BNE 2$ ;IF NOT, ERRORE EVALS ;GET FILE NAME  BVS 2$ ;ON ERROR, BRANCH CLR R2 ;NO SWITCH TABLEE0 MOV R3,R0 ;MAKE SURE R0 <> 0 (WE HAVE STRING!)( JSR PC,CSINT0 ;INTERPRET COMMAND STRING4 MOV #S.QLBF,R0 ;SET SIZE FOR USER LIBRARY FILE AREA" TSTOK ;CHECK (AND ENUDAT -> R5) BHIS 3$ ;IF OK, BRANCH OVFERR2'3$: MOV STGOSB,R2 ;SET UP TO MOVE BLOCKS MOV STUFDB,R3 ;OF DATA DOWN% JSR PC,SLDN ;TO ACCOMMODATE NEW FDB* SUB R0,R2 ;R2 POINTS TO START OF NEW FDB MOV R2,R3 ;ALSO R3 SUB R0,STGOSB ;UPDATE PTRSR SUB R0,STFONX SUB R0,STUFDB) ASR R0 ;R0 NOW WORD COUNT FOR ZERO LOOPI4$: CLR (R2)+ ;CLEAR OUT AREA SOB R0,4$ MOV R3,R0 ;MAKE R0 POINT TO0 ADD #11.*2,R0 ;FDB START! FDRC$R ,#FD.PLC ;SET LOCATE MODEL- FDOP$R ,OP.LUN,#CSDSPT,#LIBNAM,#FO.RD!FA.SHR> JSR PC,.OPEN  BCC 5$R$ MOV #S.QLBF,R0 ;SIZE OF LIBRARY FDB% MOV STGOSB,R2 ;SE002TADATADATADATADATADATAT UP TO MOVE IT ALLD MOV STUFDB,R3 ;BACK UPT JSR PC,SLUP ; ADD R0,STGOSB ;ADJUST PTRS BACK ADD R0,STFONX ADD R0,STUFDB6$: OPLFER ;DECLARE ERRORP$5$: GET$ ;GET FIRST RECORD (BLOCK) BCS 6$ ;ON ERROR, BRANCH# MOV F.NRBD+2(R0),R2 ;ADDRESS -> R2 " MOVB 32(R2),2(R3) ;STORE MNT SIZE& MOV #80.,4(R3) ;PUT IN MAX BYTE COUNT) MOV 34(R2),6(R3) ;STARTING BLOCK FOR MNTF" MOV 36(R2),10(R3) ;NO. OF ENTRIES MOV R0,12(R3) ;CLACULATE BUFFER ADD #S.FDB,12(R3) ;ADDRESSB MOV R0,16(R3) ;FDB ADDRESS  MOVB OP.LUN,R4 ;CALCULATE AND( DEC R4 ;DECREMENT FOR INTERNAL STORAGE BIS #10000,R4 ;SET HEADER FOR MOV R4,(R3) ;LIBRARY FILEP' JMP INIT02 ;GO ON WITH NEXT STATEMENTI; ; INITIAL SET UP ROUTINE%; ON ENTRY: R0 CONTAINS ARG TYPE LIST;'; R1 POINTS TO "(" OF ARG LIST IN CALL 0; ON EXIT: R0 POINTS TERM. BYTE OF ARG TYPE LIST8; R5 POINTS PAST LAST FILLED IN VALUE OF ARG VALUE LIST7; R1 POINTS PAST END OF ARG LIST AND IS SAVED ON STACKA; QLUN CONTAINS START OF FCBV; QLUN+2 CONTAINS START OF FDBP;N1SETUP: MOV #MPARLS,R5 ;ARGUMENT RETURN LIST -> R5L! JSR PC,GETARG ;GET THE ARGUMENTSR+ JSR PC,PARCHK ;CHECK FOR FINAL CLOSE PAREN02 MOV (SP),-(SP) ;MOVE RETURN ADDRESS DOWN ON STACK MOV R1,2(SP) ;SAVE TEXT POINTER LDF QLUN,AC0 ;LUN IN AC0S STCFI AC0,R4 ;INTEGER -> R4 ( DEC R4 ;DECREMENT FOR INTERNAL STORAGE BIS #10000,R4 ;SET TYPE! MOV #7400,R0 ;SET MASK TO IGNORET JSR PC,SRCHFL ;GO FIND IT BNE 1$ ;IF FOUND, BRANCH LDCIF #-1,AC0 ;SET ERROR CODEV, JMP ERRFIN ;AND GO FINISH ERROR PROCESSING21$: MOV R3,QLUN ;SAVE START OF FILE CONTROL BLOCK+ MOV R3,12(R3) ;RE-CALCULATE BUFFER ADDRESS;/ ADD #26+S.FDB,12(R3) ;SO WE DON'T CLOBBER COREV,11$: ADD #26,R3 ;MAKE R3 POINT TO FDB START! MOV R3,QLUN+2 ;AND STORE IT AWAYL RTS PCS;S; RAD50 CONVERSION ROUTINE8; ON ENTRY: R0 POINTS TO START OF STRING TO BE CONVERTED ; R4 CONTAINS LENGTH OF STRING7; ON EXIT: 2 RAD50 WORDS ON STACK (1ST 2(SP), 2ND (SP))U%; R0 POINTS TO TERMINATING CHARACTERC; ALL REGISTERS USED;O+R50CVT: MOV (SP)+,R5 ;POP RTN ADDRESS TO R5A MOV R0,R3 ;NOW MAKE R3 ADD R4,R3 ;POINT PAST END ANDE! MOVB #',,(R3) ;PUT IN TERM. CHAR() JSR PC,$CAT5 ;GET FIRST RAD50 WORD -> R16 MOV R1,-(SP) ;SAVE IT ON STACK( BCC 1$ ;IF SCAN NOT TERMINATED, BRANCH/ CLR -(SP) ;ELSE PUT DEFAULT 2ND WORD ON STACK0 BR 2$"1$: JSR PC,$CAT5 ;CONVERT 2ND WORD MOV R1,-(SP) ;AND SAVE IT"2$: JMP (R5) ;DO EFFECTIVE RETURN; ; FIND AND POSITION ROUTINE :; ON ENTRY: STACK CONTAINS 2 RAD50 WORDS FOR QUESTION NAME; QNAM CONTAINS LEN OF NAMED/; ON EXIT: QUESTION TYPE (MAX ANS #) -> 14(FCB)3#; BLOCK # (.MACRO LINE) -> 20(FCB))'; BYTE OFFSET (.MACRO LINE) -> 22(FCB)F;T(FILPOS: MOV QLUN,R3 ;START OF FCB -> R3 MOV QLUN+2,R0 ;FDB START -> R0 * MOVB #R.FIX,F.RTYP(R0) ;SET FOR FIXED LEN5 MOVB #FD.PLC!FD.RAN,F.RACC(R0) ;RAN ACC, LOCATE MODEV+ MOV 6(R3),F.RCNM+2(R0) ;MNT STARTING BLOCK $ CLR F.RCNM(R0) ;CLEAR OUT HIGH WORD( MOV 10(R3),R5 ;NO. OF MNT ENTRIES -> R5# MOV (SP)+,R4 ;RETURN ADDRESS -> R4O- MOV (SP)+,R2 ;SECOND RAD50 PART OF QUES NAMEI MOV (SP)+,R1 ;AND FIRST HALF 0 MOV R4,-(SP) ;SAVE RETURN ADDRESS BACK ON STACK7$: GET$ ;READ IN MNT BLOCK2 BCC 19$ ;IF OK, BRANCH2 JMP FCSERS ;GO RECORD FCS CODE AND RETURN STATUS919$: MOV F.NRBD+2(R0),R3 ;STARTING ADDRESS OF BLOCK -> R3  MOV R3,R4 ;END ADDRESS -> R4 ADD F.NRBD(R0),R4,5$: CMP R1,(R3)+ ;COMPARE FIRST PART OF NAME BEQ 3$ ;IF MATCH, TRY SECOND+ TST (R3)+ ;OTHERWISE POP PAST SECOND PART BR 4$ ;AND TRY AGAIN$3$: CMP R2,(R3)+ ;SECOND PART MATCH? BEQ 8$ ;IF SO, BRANCHM 4$: DEC R5 ;ARE WE THROUGH LIST$ BLE 6$ ;IF SO, RETURN ERROR STATUS' ADD #4,R3 ;JUMP OVER BLOCK AND OFFSETB! CMP R3,R4 ;AT END OF BLOCK YET? ! BLO 5$ ;IF NOT, DO SMALLER LOOPT, BR 7$ ;ELSE READ IN NEW BLOCK AND CONTINUE*6$: LDCIF #-3,AC0 ;LOAD ERROR RETURN CODE% JMP ERRFIN ;FINISH ERROR PROCESSING38$: MOV (R3)+,R2 ;BLOCK -> R2 CLR R1 ;BLOCK HIGH CLEAR MOV (R3)+,R3 ;BYTE OFFSET -> R3( MOVB #R.VAR,F.RTYP(R0) ;SET FOR VAR LEN9 BICB #FD.00VWRAN!FD.PLC,F.RACC(R0) ;SEQUENTIAL AND MOVE MODEM JSR PC,.POINT ;POINT TO RECORDT! MOV QLUN,R5 ;START OF FCB -> R5T& GET$ ,12(R5),4(R5) ;GET HEADER RECORD BCS 9$P! JSR PC,.MARK ;MARK FILE POSITIONO MOV R2,20(R5) ;SAVE BLOCK AND MOV R3,22(R5) ;BYTE OFFSETC" GET$ ;NOW GET FIRST REAL RECORD- MOV F.NRBD+2(R0),R1 ;ADDRESS OF BUFFER -> R1R BCC 11$ ;IF ALL OK, BRANCH59$: JMP FCSERS ;GO RECORD FCS CODE AND RETURN STATUS+-11$: MOV R1,R3 ;GET ADDRESS OF BYTE PAST END # ADD F.NRBD(R0),R3 ;OF LINE READ INC- CLRB (R3) ;AND SET STOPPER FOR ATOI ROUTINE,1 SKIP ;POINT PAST FIRST NON-SPACE (OR TAB) CHARC ADD #5,R1 ;POINT PAST '.MACRO' SKIP ;NEXT NON-BLANK CHAR CMPB R2,#', ;IS IT COMMA?O BNE 12$ ;IF NOT, BRANCHK' SKIP ;GET NEXT NON-BLANK AFTER COMMA 12$: DEC R1 ;BACK UP POINTERM3 ADD QNAM,R1 ;ADD LEN OF QUES NAME TO TEXT POINTER$" SKIP ;GET NEXT NON BLANK OR TAB+ CMPB R2,#', ;IS IT COMMA (ALSO DELIMITER): BNE 13$ ;IF NOT, BRANCH  SKIP ;NEXT NON BLANK OR TAB013$: DEC R1 ;BACK UP POINTER TO START OF NUMBER' ATOI ;GET NUMBER WHICH FOLLOWS -> R0I2 MOV R0,14(R5) ;SAVE QUES TYPE (INCL MAX RESPONSE)' LDCIF R0,AC0 ;STORE AWAY MAX RESPONSE MOV #QSTAT,R5 ; JSR PC,NSTORE RTS PC )FCSERS: LDCIF #-2,AC0 ;PUT IN ERROR CODEF% MOVB F.ERR(R0),R5 ;SIGN EXTEND IN R5E4 MOV R5,PARLST+P.FCS ;AND STORE FOR FUTURE REFERENCE JMP ERRFING;N; DISPLAY ROUTINEBC; ON ENTRY: FILE POSITION ASSUMED TO BE STORED AS IN FILPOS ROUTINEA%; ON EXIT: SCREEN HAS QUESTION PUT UP3E; TYPE: 0) TEXT DISPLAY (NO NUMBERS BUT OPTIONAL STRING CAN BE USED)C'; 1) SINGLE ANSWER QUESTION (NO CR-LF)E3; 2+) MULTIPLE CHOICE (TYPE IS MAX # OF RESPONSES)Y;X?DISPLA: JSR PC,FILPNT ;POINT TO START OF QUESTION (.MACRO LINE)D* GET$ ,12(R5),4(R5) ;GET 1ST LINE (.MACRO) BCS FCSERSN$ MOV 14(R5),R4 ;RESPONSE COUNT -> R4! DEC R4 ;DECREMENT FOR BRANCHINGP' BLT 11$ ;IF INFO (MULTI-LINE), BRANCHT! BEQ 21$ ;IF SINGLE TEXT, BRANCHR GET$ ;GET QUESTION TEXT BCS FCSERS ;ON ERROR, BRANCH MOV 12(R5),R1 ;ADDRESS -> R1( MOV F.NRBD(R0),R3 ;LEN -> R3C! BEQ 2$ ;IF ZERO, CAN SKIP A LOTU"1$: MOVB (R1)+,R2 ;CHARACTER -> R2 PRINTC ;PRINT IT SOB R3,1$2$: CRLF CLR R4 ;INIT ANSWER NUMBER%8$: JSR PC,5$ ;PUT OUT LEADING CHARS $ MOV 12(R5),R0 ;BUFFER ADDRESS -> R0 MOVB #40,(R0)+ ;PUT IN SPACEE! INC R4 ;INCREMENT ANSWER NUMBERM% MOV R4,R1 ;PUT IN R1 FOR CONVERSION( CLR R2 ;NO LEADING ZEROES$& JSR PC,$CBDSG ;CONVERT TO ASCII -> R0& MOVB #'),(R0)+ ;DELIMIT FOR GOOD FORM# MOVB #40,(R0)+ ;AND PUT IN A SPACE( CLRB (R0) ;PUT IN DELIMITERC! MOV 12(R5),R0 ;GET START ADDRESSU, PRINTL ;AND PRINT THE LINE (NO CR-LF YET)! GET$ QLUN+2 ;GET IN ACTUAL TEXT BCS FCSERST MOV F.NRBD(R0),R3 ;LENGTH -> R3 MOV F.NRBD+2(R0),R1 ;ADD -> R1,"6$: MOVB (R1)+,R2 ;NEXT CHAR -> R24 CMPB R2,#'\ ;IS IT BACK SLASH (END OF TEXT PROPER) BEQ 7$ ;IF SO, BRANCH1 PRINTC ;ELSE PRINT IT SOB R3,6$ ;DO WHOLE LINE7$: CRLF ;END THE LINE# CMP R4,14(R5) ;UP TO MAX RESPONSE?G! BLT 8$ ;IF NOT, DO ANOTHER LINEI RTS PC ;DONE WITH DISPLAYI;E-; SUBROUTINE FOR INSERTING LEADING CHARACTERSP%5$: LDF COUNT,AC1 ;GET CHARS PER LINEE STCFI AC1,R3 ;AND PUT IN R3L BLE 4$ ;IF ZERO OR NEG, RETURN% MOV STRIN+2,R1 ;STRING ADDRESS -> R1,/3$: TST STRIN ;ANYTHING LEFT IN SOURCE STRING?2 BLE 4$ ;IF NOT, DONE MOVB (R1)+,R2 ;PUT CHAR -> R2 PRINTC ;AND PRINT IT& DEC STRIN ;DECREMENT REMAINING COUNT SOB R3,3$6 MOV R1,STRIN+2 ;PUT IN MODIFIED ADDRESS FOR NEXT TIME 4$: RTS PC;8; MULTI-LINE TEXT OUTPUT11$: GET$ ;GET TEXT LINE BCS FCSERSU$ MOV 12(R5),R1 ;BUFFER ADDRESS -> R1* MOV #ASCENM,R4 ;ADDRESS OF '.ENDM' STRING# SKIP ;GET FIRST NON-BLANK OR TABE) DEC R1 ;BACK UP TO FIRST NON-BLANK CHARR MOV #5,R2 ;LENGTH -> R2$14$: CMPB (R1)+,(R4)+ ;MATCH BNE 12$ ;IF NOT, DO OUTPUT SOB R2,14$ ;KEEP GOING RTS PC ;IF FINISH, RETURNA+12$: JSR PC,5$ ;PUT OUT LEADING CHARACTERSG% MOV F.NRBD(R0),R3 ;LEN OF LINE -> R3T# MOV F.NRBD+2(R0),R1 ;ADDRESS -> R1$#13$: MOVB (R1)+,R2 ;CHARAC002TADATADATADATADATADATATER -> R2T PRINTCT SOB R3,13$ ;PRINT WHOLE LINE CRLF ;END OF LINE BR 11$ ;KEEP GOING TILL DONE;A5; ROUTINE FOR SINGLE LINE TEXT ENTRY QUESTION DISPLAYO'21$: JSR PC,5$ ;PUT OUT LEADING STRINGA GET$ ;GET QUESTION TEXT MOV F.NRBD(R0),R3 ;LEN -> R3  MOV F.NRBD+2(R0),R1 ;ADD -> R1P22$: MOVB (R1)+,R2 ;CHAR -> R2 PRINTCF SOB R3,22$R RTS PCJ)MDRTN: MOV (SP)+,R1 ;RESTORE TEXT POINTERV 1$: RTS PC5ERRFIN: TST (SP)+ ;POP OFF SUBROUTINE RETURN ADDRESS>,ERRFN1: MOV #QSTAT,R5 ;ADDRESS POINTER -> R5$ JSR PC,NSTORE ;STORE THE BAD STATUS BR MDRTNE;OD; QLINK ROUTINE TO LINK TO QUESTION LINKED BY ANSWER # GIVEN IN CALL; ON ENTRY: QLUN HAS FCB ADD.1; QLUN+2 HAS FDB ADD.(; PREVIOUS QUESTION TYPE 2 (OR GREATER).; ON EXIT: R1 POINTS TO ADDRESS OF LINKED NAME; R4 HAS LEN OF LINKED NAME+; NOTE: POINTERS ONLY GOOD UNTIL NEXT GET$;S&QLINK: MOV QLUN,R5 ;FCB POINTER -> R56 LDF QNAM,AC0 ;GET NUMBER OF RESPONSE TO LAST QUESTION STCFI AC0,R4 ;INTEGERIZE -> R4 BLE 4$ ;ZERO OR NEG IS ERROR/ CMP R4,14(R5) ;COMPARE TO MAX RESPONSE ALLOWEDE BLE 1$ ;IF IN RANGE, BRANCHO+4$: LDCIF #-3,AC0 ;ERROR: NO SUCH QUESTION JMP ERRFINN$1$: MOV QLUN+2,R0 ;FDB ADDRESS -> R0) CLR R1 ;CLEAR HIGH PART OF BLOCK NUMBER, MOV 20(R5),R2 ;SET UP LOW PART OF BLOCK NO. MOV 22(R5),R3 ;AND BYTE OFFSET 3 JSR PC,.POINT ;POINT TO FIRST RESPONSE TEXT RECORD:$ MOV 12(R5),R1 ;BUFFER ADDRESS -> R1 GET$ ,R1,4(R5) ;.MACRO LINE GET$ ;QUESTION LINE2$: GET$ ;GET NEXT ANSWER4* SOB R4,2$ ;GET AS MANY RECORDS AS ANSWER$ MOV R1,R4 ;CALCULATE END OF BUFFER ADD F.NRBD(R0),R4( MOV R4,R2 ;DUPLICATE END ADDRESS IN R2 SUB R1,R2 ;GET BACK LEN -> R2$ BEQ 4$ ;IF ZERO, ERROR(3$: CMPB (R1)+,#'\ ;FOUND START OF LINK? BEQ 5$ ;IF SO, BRANCH2* SOB R2,3$ ;GO THROUGH WHOLE LINE LOOKING- BR 4$ ;IF NO LINK, ERROR (NO LINK QUESTION)F%5$: SKIP ;GET NEXT NON-BLANK OR TAB, DEC R1 ;BACK UP TO IT SUB R1,R4 ;LEN -> R41 MOV R4,QNAM ;LENGTH STORED FOR FUTURE REFERENCEA RTS PCS;R; FILE POINT ROUTINE5; ON ENTRY: FILE POSITION STORED AS IN FILPOS ROUTINEA; QLUN CONTAINS FCB POINTER; QLUN+2 CONTAINS FDB POINTER"; ON EXIT: R5 CONTAINS FCB POINTER; R0 CONTAINS FDB POINTER-; FILE IS POSITIONED FOR READ OF .MACRO LINEF ; OTHER REGISTERS USED: R1,R2,R3#FILPNT: MOV QLUN,R5 ;FCB PTR -> R5O MOV QLUN+2,R0 ;FDB PTR -> R0F CLR R1 ;CLEAR HIGH BLOCK NUM.O% MOV 20(R5),R2 ;SET UP LOW BLOCK NUM.R2 MOV 22(R5),R3 ;SET UP BYTE OFFSET FOR .MACRO LINE JSR PC,.POINT ;POINT TO ITR RTS PCP;T; STORE STATUS ROUTINEL; USED TO RETURN FILE TYPE (COUNT FOR MUL CHC) ON PREVIOUSLY POSITIONED FILE,; ON ENTRY: FILE SET UP AS IN FILPOS ROUTINE; QLUN CONTAINS FCB POINTER9; ON EXIT: 14(FCB) STORED IN QSTAT VARIABLE (2ND IN LIST)F; REGISTERS USED: R5,AC0#STATST: MOV QLUN,R5 ;FCB ADD -> R5T& LDCIF 14(R5),AC0 ;TYPE (COUNT) -> AC0" MOV #QSTAT,R5 ;ADD. FOR STORE PTR JSR PC,NSTORE ;STORE IT RTS PCM ;+72; .SL3#; .HEADERLEVEL 1 ^QUESTION ^DISPLAY; .X ^QUESTION ^DISPLAYI; .BRSA; ^A SERIES OF ROUTINES CAN BE USED FOR DISPLAYING QUESTIONS AT A 3; TERMINAL FOR INTERACTIVE DATA ENTRY APPLICATIONS.YE; ^THE TEXT OF THE QUESTIONS THEMSELVES RESIDES IN A FILE MADE BY THEE@; ; 0) ^MULTI-LINE TEXT DISPLAY(; 1) ^SINGLE LINE QUESTION (TEXT INPUT); 2) ^MULTIPLE CHOICE DISPLAY; .F; .SLIF; ^THE QUESTIONS ARE FORMATTED AS MACROS WITH THE NAME OF THE QUESTION; BEING THE NAME OF THE MACRO.A; ^THERE IS A SINGLE ARGUMENT TO THE MACRO, A NUMBER WHICH IS THE A; TYPE AS SPECIFIED ABOVE EXCEPT IN THE CASE OF TYPE 2, IT IS THEE@; TOTAL NUMBER OF CHOICES FOR THAT MULTIPLE CHOICE QUESTION (CAN; NEVER BE LESS THAN 2).; .SLRG; ^THE QUESTION NAMES ARE USED FOR LINKING OF MULTIPLE CHOICE QUESTIONSE0; AND FOR QUESTION REPLACEMENT BY THE LIBRARIAN.6; ^QUESTION NAMES MAY BE UP TO 6 CHARACTERS IN LENGTH.D; ^THE CHARACTERS MUST BE LEGAL ; ; -3 = ^QUESTION NOT FOUND (FOR A VARIETY OF REASONS)>; ; ^THE TEXT CORRESPONDING TO ; ^NO INTERNAL RESTRAINTS ARE PLACED ON THE VALUE OF R0 2 CLRF COUNT ;CLEAR COUNT OF OPTIONAL INPUT STRING BR 4$#2$: MOV #MDARG1,R0 ;LONG LIST -> R0O 4$: RTS PC&MDIS02: JSR PC,SETUP ;DO INITIAL SETUP. MOV QNAM+2,R0 ;ADDRESS OF QUESTION NAME -> R0 MOV QNAM,R4 ;LEN -> R4:MDIS03: JSR PC,R50CVT ;COME BACK WITH RAD50 WORDS ON STACK' JSR PC,FILPOS ;GO GET FILE IN POSITION!MDIS04: JSR PC,DISPLA ;DO DISPLAYQ( JMP MDRTN ;AND RETURN WITH RESTORED R1(CDIS: JSR PC,MDIS01 ;DO INITIAL CHECKING. ADD #CDARG-MDARG,R0 ;ADJUST THE ARGUMENT LIST JSR PC,SETUP ;SET UP THE FILE7 JSR PC,QLINK ;GET POINTERS FOR LINKED QUES NAME STRINGM MOV R1,R0 ;ADDRESS -> R0# JMP MDIS03 ;FINISH UP AS FOR MDISI;I; RE-DISPLAY PREVIOUS QUESTION.; CALL "RDIS"(LUN,STATUS,DUMMY[,STRIN$,COUNT]) .PSECT BASIC4(RDIS: JSR PC,MDIS01 ;DO INITIAL CHECKING2 ADD #CDARG-MDARG,R0 ;USE CHAIN TYPE ARG TYPE LIST JSR PC,SETUPL, JSR PC,STATST ;STORE STATUS (TYPE OR COUNT) BR MDIS04 .PSECT BASIC4(MPOS: MOV #MDARG,R0 ;ARG TYPE LIST -> R0% JSR PC,SETUP ;DO INITIAL FILE SET UP,' MOV QNAM+2,R0 ;ADD. OF QUES NAME -> R0T MOV QNAM,R4 ;LEN OF NAME -> R4.MPOS01: JSR PC,R50CVT ;GET RAD50 NAME ON STACK)002TADATADATADATADATADATA JSR PC,FILPOS ;POSITION FILE TO QUESTIONE JMP MDRTN ;AND RETURND(CPOS: MOV #CDARG,R0 ;ARG TYPE LIST -> R0% JSR PC,SETUP ;DO INITIAL FILE SET UPT8 JSR PC,QLINK ;DO QUESTION LINK (R1 HAS ADDRESS, R4 LEN) MOV R1,R0 ;ADDRESS -> R0 BR MPOS01 ;FINISH UP AS ABOVE (RPOS: MOV #CDARG,R0 ;ARG TYPE LIST -> R0% JSR PC,SETUP ;DO INITIAL FILE SET UPR5 JSR PC,STATST ;STORE QUESTION STATUS (TYPE OR COUNT). JMP MDRTN .PSECT BASIC4MQARG: .BYTE 1,2,3,4,0CQARG: .BYTE 1,2,1,4,0)MQTXT: MOV #MQARG,R0 ;ARG TYPE LIST -> R0;" JSR PC,SETUP ;INITIAL FILE SET UP( MOV QNAM+2,R0 ;ADD. OF QUES. NAME -> R0 MOV QNAM,R4 ;LEN -> R4.MQTXT1: JSR PC,R50CVT ;GET RAD50 NAME ON STACK$ JSR PC,FILPOS ;POSITION TO QUESTION(MQTXT2: JSR PC,FILPNT ;POINT TO QUESTION$ GET$ ,12(R5),4(R5) ;GET .MACRO LINE BCC MQTXT5P'MQTXT3: LDCIF #-2,AC0 ;LOAD ERROR CODEI JMP ERRFN1 ;AND FINISH UPT!MQTXT5: GET$ ;GET QUESTION LINE.,MQTXT4: MOV F.NRBD(R0),R4 ;LEN OF LINE -> R4' MOV F.NRBD+2(R0),R3 ;ADD OF LINE -> R3V' MOV #STROUT,R5 ;ADDRESS TO STORE -> R5, JSR PC,SSTORE ;GO STORE STRINGQ JMP MDRTN)CQTXT: MOV #CQARG,R0 ;ARG TYPE LIST -> R0-! JSR PC,SETUP ;INITIAL FILE SETUPD' JSR PC,QLINK ;GET LINKED QUESTION NAMEN MOV R1,R0 ;ADD. OF NAME -> R0N* BR MQTXT1 ;FINISH UP AS IN PREVIOUS CODE)RQTXT: MOV #CQARG,R0 ;ARG TYPE LIST -> R0 " JSR PC,SETUP ;INITIAL FILE SET UP1 JSR PC,STATST ;STORE STATUS OF PREVIOUS QUESTIONL! BR MQTXT2 ;AND FINISH AS BEFOREN .PSECT BASIC4MAARG: .BYTE 1,2,3,4,1,0CAARG: .BYTE 1,2,1,4,1,0 .EVEN)MATXT: MOV #MAARG,R0 ;ARG TYPE LIST -> R0S% JSR PC,SETUP ;DO INITIAL FILE SET UPQ! MOV QNAM+2,R0 ;ADD OF NAME -> R0P MOV QNAM,R4 ;LEN OF NAME -> R45MATXT1: JSR PC,R50CVT ;CONVERT NAME TO RAD50 ON STACK ) JSR PC,FILPOS ;POSITION TO NAME ON STACKN+MATXT2: JSR PC,FILPNT ;POINT TO .MACRO LINEE$ GET$ ,12(R5),4(R5) ;GET .MACRO LINE BCS MQTXT3 ;ON ERROR, BRANCH GET$ ;QUESTION LINE BCS MQTXT3Q# LDF ANS1,AC0 ;ANSWER NUMBER -> AC0 STCFI AC0,R4 ;INTEGERIZE -> R41$: GET$ ;GET NEXT LINE. BCS MQTXT3M& SOB R4,1$ ;GET ANSWER LINE WE WANTED( BR MQTXT4 ;AND FINISH AS QUESTION CODE)CATXT: MOV #CAARG,R0 ;ARG TYPE LIST -> R0 " JSR PC,SETUP ;INITIAL FILE SET UP3 JSR PC,QLINK ;LINKED QUESTION ADD -> R1, LEN -> R4S MOV R1,R0 ;ADDRESS -> R0% BR MATXT1 ;USE ABOVE CODE TO FINISHO)RATXT: MOV #CAARG,R0 ;ARG TYPE LIST -> R0E" JSR PC,SETUP ;INITIAL FILE SET UP, JSR PC,STATST ;STORE STATUS (TYPE OR COUNT)' BR MATXT2 ;AND FINISH WITH ABOVE CODE  .PSECT BASIC4)CQNAM: MOV #CQARG,R0 ;ARG TYPE LIST -> R0M" JSR PC,SETUP ;INITIAL FILE SET UP3 JSR PC,QLINK ;ADD OF LINKED QUES. -> R1, LEN -> R4: MOV R1,R3 ;ADD -> R3/ MOV #STROUT,R5 ;ADDRESS OF STORE POINTER -> R5! JSR PC,SSTORE ;STORE NAME STRING-1 JSR PC,STATST ;STORE STATUS OF PREVIOUS QUESTIONA JMP MDRTN)RQNAM: MOV #CQARG,R0 ;ARG TYPE LIST -> R0;" JSR PC,SETUP ;INITIAL FILE SET UP, JSR PC,STATST ;STORE STATUS (TYPE OR COUNT)0 JSR PC,FILPNT ;POINT TO .MACRO LINE OF QUESTION# GET$ ,12(R5),4(R5) ;GET THE RECORDM BCC 4$ ;IF OK, BRANCHS5 JSR PC,FCSERS ;DO ERROR EXIT (JSR PC FOR STACK ONLY)L(4$: MOV 12(R5),R1 ;ADDRESS OF LINE -> R1$ MOV R1,R3 ;DUPLICATE ADDRESS -> R3* ADD F.NRBD(R0),R3 ;POINT PAST END OF LINE' MOVB #',,(R3) ;PUT IN DELIMITING COMMAT# SKIP ;GET FIRST NON-BLANK OR TABA ADD #5,R1 ;PUSH PAST '.MACRO'01$: SKIP ;NEXT NON-BLANK CHARE CMPB R2,#', ;IS IT COMMA?R) BEQ 1$ ;IF SO, THEN WANT SOMETHING ELSEJ MOV R1,R3 ;MAKE R3 POINT TOI DEC R3 ;START OF NAME("2$: MOVB (R1)+,R2 ;NEXT CHAR -> R2 CMPB R2,#40 ;SPACE?P BEQ 3$ ;IF SO, END CMPB R2,#11 ;TAB?N BEQ 3$ ;ALSO END' CMPB R2,#', ;COMMA IS ALSO TERMINATORD BNE 2$ ;IF NOT, NOT ENDD!3$: MOV R1,R4 ;END ADDRESS -> R4I DEC R4 ;BACK UP TO TERMINATORT SUB R3,R4 ;LEN -> R4- MOV #STROUT,R5 ;ADD OF PTR FOR STORAGE -> R5T! JSR PC,SSTORE ;STORE NAME STRINGA JMP MDRTN .END#00$VWz 8DLm` @Ty@fh@y:Ё@y"&@o =@yr@,2@,Z@3{(@ ""@yy@}@zy""@Z@%{_@\`VN@xh@%x@y`@y2@5lW@<&p@t<@ya@9x@y`@N*@z<&e@Ssr@.{%@yp:@y@f0@-Z@"O@:@yZ@f΁@""@,y@xW@ 8r@zy!@ql@Q@ @6a""@.&@'""@"{@' q@@\` U@xd@L`Z @t @(""@:d N@z:@L`Z&@hp!@!<@&'@y<@  8`v )qvh:d hOhL`Nh.p h|Q hZ`hz"OP,2\.&f,Zn ""v"{z ""| Ew       5 E& Cu @  !<,2(.&4,yvyZ5 f & & B & , )% "  *   ) " ( yy%{_  ""t f`ԕ, f&  f6$ $ 7 % w )V3{(.{%"{ ""29x>9xDy!Xyr\""d!<l!<py:Ёtxh|""  & a Ew& & &6 & 6  a5E2 ,2.&"{  ""0!<:"OH"OfylB`` œEB! s B` @  6aD`DՕ ,ՔՕ e (,xh( "" kjL"S**SY ¥# 7!!  ¥,     777  ~eh xhL`Z "O\`VN(\` U0&'6xh@"{JZR V6a""Zy`^y"&bxWjy`ny`ry"&"$&#  7`7`7` P3 e` 3ĝ Ub<&e \`VNTy' q%x $hp!.y`2y"&6xd:y`>y`By"&DL`Z&H}x\`VN" w v7 U wB ev ea˕, f&  fMHy:Ё Ssr5lW.y2<5lWN5lW^9xj9xr5lWv5lWzt<0 & wlS    e w  p p <<&e<&p  }\t b<&p<&e h:l5lW|}  wHCl e , m , 5  h*ww p L 8r}(xh0xh:xh@ql@QDxhNxhTo =^Lm` p:d Nfh p D Lh A B ~  P@ Е  Е)Е @  B\ ~: }}.f΁4N*L:^f0b5lWf}|f΁ 5! wC  B ~w A B T~ B ~  BRN*-Zyp:yp:&f΁*yp:0yp:6}@BDxhdf΁jN*t} ~  >75! w BC A pp DlBW\~ @f΁Lm` 5lW"ql@Q85lWF:X}\}`}|xhK D7 BC 5  .MACRO.ENDM^,ql@Q5lW5lW :&5lW.Lm` RR    G7K  w e | @w e f dG , ""(G,-Z2K@  z  pp p ć 7 : ya ( BzJql@QNql@Qj}p}v|} V @ F D  8 C (w    p p  PA Cl˕, e$ ( 6yaF b}zxh8B ,C B  ,D  w xh.ya10 ! DO ALL BASIC DOCUMENTATION 11 DIM A$[1]'15 ! EXTRACT DOCUMENTATION FROM SOURCES}020 B=0 : CALL "SPAWNB"("BAS BASREMOVE.BUG/RN",B)C21 B=0 : CALL "SPAWNB"("PIP BASIC0.RNO,BASIC1.RNO,BASIC2.RNO/PU",B)C22 B=0 : CALL "SPAWNB"("PIP BASIC3.RNO,BASIC4.RNO,BASIC5.RNO/PU",B) 23 PRINT "RUNOFF TEXT EXTRACTED"25 ! EXTRACT TABLE OF CONTENTS-30 B=0 : CALL "SPAWNB"("BAS BASTOC.BUG/RN",B)&32 PRINT "TABLE OF CONTENTS EXTRACTED"35 ! GET RID OF FIRST OUTPUT.40 B=0 : CALL "SPAWNB"("PIP BASIC.TMP;*/DE",B)45 ! USE RNP TO INSERT TOC350 B=0 : CALL "SPAWNB"("RNP BASIC.RNO=BASIC.1ST",B) %51 PRINT "TABLE OF CONTENTS INSERTED"A55 ! MAKE DOCUMENT FILE0"56 INPUT "DIABLO OUTPUT (Y/N) ";A$>60 IF A$="N" THEN LET B=0 : CALL "SPAWNB"("RNO BASIC=BASIC",B)E61 IF A$="Y" THEN LET B=0 : CALL "SPAWNB"("RNO BASIC.DIA/SC=BASIC",B)!62 PRINT "DOCUMENT FILE READY"*65 B=0 : CALL "SPAWNB"("PIP BASIC.*/PU",B):66 B=0 : CALL "SPAWNB"("PIP BASIC.TOC;*,BASIC.1ST;*/DE",B)70 EXIT10 ! DO ALL BASIC DOCUMENTATIONB 11 DIM A$[1]'15 ! EXTRACT DOCUMENTATION FROM SOURCESI,20 B=0 : CALL "SPAWNB"("BXC BASREMOVE/RN",B)C21 B=0 : CALL "SPAWNB"("PIP BASIC0.RNO,BASIC1.RNO,BASIC2.RNO/PU",B)EC22 B=0 : CALL "SPAWNB"("PIP BASIC3.RNO,BASIC4.RNO,BASIC5.RNO/PU",B) 23 PRINT "RUNOFF TEXT EXTRACTED"25 ! EXTRACT TABLE OF CONTENTS-30 B=0 : CALL "SPAWNB"("BXC BASTOC.BUG/RN",B)/&32 PRINT "TABLE OF CONTENTS EXTRACTED"35 ! GET RID OF FIRST OUTPUT.40 B=0 : CALL "SPAWNB"("PIP BASIC.TMP;*/DE",B)45 ! USE RNP TO INSERT TOC350 B=0 : CALL "SPAWNB"("RNP BASIC.RNO=BASIC.1ST",B)F%51 PRINT "TABLE OF CONTENTS INSERTED"X55 ! MAKE DOCUMENT FILE0"56 INPUT "DIABLO OUTPUT (Y/N) ";A$>60 IF A$="N" THEN LET B=0 : CALL "SPAWNB"("RNO BASIC=BASIC",B)E61 IF A$="Y" THEN LET B=0 : CALL "SPAWNB"("RNO BASIC.DIA/SC=BASIC",B)!62 PRINT "DOCUMENT FILE READY"*65 B=0 : CALL "SPAWNB"("PIP BASIC.*/PU",B):66 B=0 : CALL "SPAWNB"("PIP BASIC.TOC;*,BASIC.1ST;*/DE",B)70 EXIT*; CONDITIONAL TO ASSEMBLE MODULES OF BASIC;RSX11M=1=; FOLLOWING LINE USED WITH IMPUR.MAC TO ASSEMBLE A VERSION OF=; IMPUR HAVING FSR PSECTS ALONG WITH GLOBAL SYMBOL DEFINITION7; ** USED TO CREATE A SINGLE USER (NON-SHARED) BASIC **;SNGUSR=1=; FOLLOWING LINE CAUSES OF BASIC UNDER RSX11M OR IAS V 3.2 TO6; DYNAMICALLY EXTEND ITSELF WHEN USER STORAGE RUNS OUTM11EXT=1 ;IASEXT=19; HEADER FILE TO DEFINE SYMBOL TASK FOR ASSEMBLING MODULE;; IMPUR AS A TASK MODULE (AS OPPOSED TO SYMBOL TABLE ONLY). ; ** USED FOR SHAREABLE BASIC **;;TASK=1A;DEFINE THE CONDITIONAL TO HAVE UNDEFINED VARIABLES AUTOMATICALLY;DEFINED WHEN REFERENCED;DEFVAR=0;;DEFINE THE CONDITIONAL TO GENERATE FULL ERROR MESSAGE TEXT;FULTXT=0A;DEFINE THE DEFAULT UIC VARIABLE TO BE OTHER THAN 0 TO ENABLE THEI;DEFAULT UIC OPTION WITH THE VARIABLE SET TO THE OCTAL UIC CODE, (USUALLYF;1,1 OR 401, IF BASIC TRIES TO DO AN "OLD" "CHAIN", "RUN" ETC AND DOESE;NOT FIND THE PROGRAM IN QUESTION UNDER THE CURRENT UIC, IT WILL ALSOG;TRY TO FIND THE PROGRAM UNDER THE DEFAULT UIC. THIS ENABLES FREQUENTLY&;USED PROGRAMS TO BE USED FROM ANY UIC; DEFUIC=401D;DEFINE THE CONDITIONAL TO INCLUDE FPP EMULATION PACKAGE (FPPEMULAT)";FOR USE WITH A PDP 11/40 WITH FIS ; FPPEMU=0F;DEFINE CONDITIONAL SO THAT SPAWN TRIES SENDING COMMAND LINE TO ...MAS;IF FIRST CALL FAILS ;TRYMAS=1H;DEFINE CONDITIONAL SO THAT IF WE ARE RUNNING ON A PRO UNDER P/OS, WE DOC;NOT DO A GETMCR COMMAND0045VW LINE DIRECTIVE, (NOT AVAILABLE UNDER P/OS);PRO=1RING _.DISABLE#NUMBERING e_.ENABLE#NUMBERING#CHAPTER A_.DISABLE#NUMBERING#CHAPTER 0_.HEADERS#UPPER _.HEADERS#LOWER _.HEADERS#MIXED 3_.HEADERS#PAGE _.HEADERS#NO#PAGE _.HEADERS#SPACING T'_.NO#HEADERS _.HEADERS _.INDENT#LEVELS w0_.PAGE#SIZE _.TOP#MARG>1 REM PROGRAM TO EXTRACT DOCUMENTATION FROM BASIC MACRO FILES 2 REM 15-OCT-76 - LARRY SIMPSON23 REM READS FROM SOURCE FILES BASIC0-BASIC4(.MAC)&4 REM AND MAKES RUNOFF FILE BASIC.RNO*10 DIM L$[80]V,L1$[80]V,C2$[7]V,S$[40]V(7)20 DIM N$[40]V(7),M$[40]V,A$[1] 30 C2$=".WC"35 CF=00040 M$="----------------------------------------""50 INPUT "DIABLO OUTPUT (Y/N) ";A$"200 ! SET UP SEPERATE CHAPTERS201 DATA ^^INTRODUCTION\\O,210 DATA ^^LOADING/RUNNING/SAVING PROGRAMS\\220 DATA ^^PROGRAM STATEMENTS\\P!230 DATA ^^ARITHMETIC FUNCTIONS\\M232 DATA ^^STRING FUNCTIONS\\C%235 DATA ^^I/O _& FILE MANIPULATION\\ !240 DATA ^^LOADABLE SUBROUTINES\\ 300 FOR I=1 TO 7"310 N$(I)="BASIC"+STR$(I-1)+".RNO"320 OPEN #3,N$(I)+"/WR")"330 READ S$(I) : S$(I)=LTR$(S$(I))340 PRINT #3,".CHAPTER ";S$(I) 390 CLOSE 3-400 N$(I)=N$(I)+"/AP"- 410 NEXT I420 F=0O!500 ! EXTRACT TEXT FROM BASICS501 FOR I2=1 TO 501510 N$="BASIC"+STR$(I2-1)+".MAC/RO/EN:600/LN:132"G520 OPEN #4,N$530 INPUT LINE #4,L$$540 IF SBS$(L$,1,2) <> ";+" THEN 530550 GOSUB 3000 560 GOTO 530 600 CLOSE 4C605 PRINT "END FILE";I2-1N 610 NEXT I2!620 OPEN #4,"SPAWN.MAC/RO/EN:670"630 INPUT LINE #4,L$#640 IF SBS$(L$,1,2)<> ";+" THEN 630P650 GOSUB 3000 660 GOTO 630 670 CLOSE 4L 1000 CLOSE 31001 ! SET RNO INITIAL INFO 1010 OPEN #3,"BASIC.1ST/WR"P,1020 PRINT #3,".PS 60,79" : PRINT #3,".LS 1"41030 PRINT #3,".LM 10;.RM 75" : PRINT #3,".TS 15,25"1045 PRINT #3,".FG 18"1050 L$=DAT$(0)N1055 PRINT #3,".DT ";L$,1060 PRINT #3,C2$1'1065 PRINT #3,"^^BASIC DOCUMENTATION\\" 1070 PRINT #3,C2$ 1075 PRINT #3,L$.1080 PRINT #3,".TITLE ^^BASIC DOCUMENTATION\\"1082 PRINT #3,".FG 1;.C"01083 PRINT #3,"^MICHAEL ^REESE ^MEDICAL ^CENTER"1084 PRINT #3,".FG 1;.C""1085 PRINT #3,"^FRANK ^R. ^BORGER"1098 PRINT #3,"@BASIC.TOC""1099 ! MERGE SEPERATE CHAPTERS1100 FOR I=1 TO 7951110 OPEN #4,SEG$(N$(I),1,LEN(N$(I))-3)+"/RO/EN:1150"R1120 INPUT LINE #4,L$51130 PRINT #3,L$1140 GOTO 1120 1150 CLOSE 411155 PRINT "FINISHED ";SEG$(N$(I),1,LEN(N$(I))-3)^ 1160 NEXT IN1164 ! ADD APPENDICES211165 PRINT #3, ".APPENDIX ^^BASIC ERROR VALUES\\" (1166 PRINT #3,".NOFILL" : PRINT #3, "^^" 1167 CF=1 : ! SHOW CHECK FOR #-1170 OPEN #4, "BSCERRNUM.DOC/RO" : GOSUB 20005?1175 PRINT #3, ".APPENDIX ^^SAMPLE LOADABLE MACRO SUBROUTINE\\" (1176 PRINT #3,".NOFILL" : PRINT #3, "^^")1177 PRINT #3, ".TS 18,24,32,40,48,56,64")*1180 OPEN #4, "REVSTR.MAC/RO" : GOSUB 2000A1182 PRINT #3," " : PRINT #3," " : PRINT #3, "MACRO COMMAND FILE"DS1183 PRINT #3," " : PRINT #3, "REVSTR,REVSTR/-SP=LB:[1,202]LOAMAC/ML,[1,202]REVSTR"#M1184 PRINT #3," " : PRINT #3," " : PRINT #3,"TKB COMMAND FILE" : PRINT #3," ""*1185 OPEN #4, "REVSTR.CMD/RO" : GOSUB 2000E1186 PRINT #3, ".APPENDIX ^^USEFUL INTERNAL BASIC SUBROUTINE CALLS\\"P(1187 PRINT #3,".NOFILL" : PRINT #3, "^^")1190 OPEN #4, "BASIC.SBS/RO" : GOSUB 2000T#1220 PRINT #3,".APPENDIX ^^INDEX\\"01280 PRINT #3,".PX"/ 1290 CLOSE 3 1300 EXITI#2000 ! SUB TO INPUT OTHER FILES"2005 IF END #4 THEN 20252010 INPUT LINE #4,L$32012 IF CF=1 THEN GOSUB 40002015 PRINT #3, L$E2020 GOTO 2010 2025 CLOSE 4 2030 RETURNP&3000 ! CHANGE CHAPTER IF NECESSARY3005 F1=VAL(SBS$(L$,2)).3010 IF F1=F THEN 3050 3020 CLOSE 3 3030 F=F1^3040 OPEN #3,N$(F)3050 INPUT LINE #4,L$%3060 IF SBS$(L$,1,1) <> ";" THEN 3050"&3070 IF SBS$(L$,2,1) = "-" THEN RETURN3071 IF A$="Y" THEN 3080-3072 PP=POS(L$,CHR$(123)) : IF PP<1 THEN 3076O%3074 L$=SEG$(L$,1,PP-1)+SEG$(L$,PP+1)U-3076 PP=POS(L$,CHR$(125)) : IF00<=>1TADATADATADATADATADATA PP<1 THEN 3080I%3078 L$=SEG$(L$,1,PP-1)+SEG$(L$,PP+1)U3080 PRINT #3,LTR$(SBS$(L$,2))3090 GOTO 3050#4000 ! HANDLE # IN MACRO SOURCEA 4001 CP=1 ,4005 JJ=POS(L$,"#",CP) : IF JJ<1 THEN RETURN4010 CP=JJ+2 : NC=NC+1;4015 L$=SEG$(L$,1,JJ-1)+"_"+SEG$(L$,JJ,LEN(L$)) : GOTO 40055000 END10 DIM A$[80]V12 RF=0=15 FOR I=1 TO 3E(20 OPEN #3, "BASIC"+FRMT$(I,1)+".MAC/RO"(30 OPEN #4, "BASIC"+FRMT$(I,1)+".DOC/WR"50 IF END #3 THEN 100=60 INPUT LINE #3, A$/62 IF SBS$(A$,1,2)=";+" THEN LET RF=1 : GOTO 601/63 IF SBS$(A$,1,2)=";-" THEN LET RF=0 : GOTO 60 64 IF RF=1 THEN 60S65 IF POS(A$,".SB")>1 THEN PRINT #4, ";";SEG$(A$,POS(A$,"TTL")+3,LEN(A$)) : GOTO 60"66 IF SBS$(A$,1,1)<>";" THEN 60(70 PRINT #4, A$H 80 GOTO 60 100 CLOSEL 105 NEXT IB10 ! PROGRAM TO EXTRACT TABLE OF CONTENTS FROM BASIC DOCUMENTATION/20 DIM A$[79]V,PG$[4]V,DD$[60],OU$[80]V,B$[11]V)E30 DD$=". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",32 NF=0 340 B=0 : CALL "SPAWNB"("RNO BASIC.TMP=BASIC.1ST",B)N50 OPEN #3, "BASIC.TMP/RO"60 IF END #3 THEN 200(65 ! WRITE INTRO STUFF70 OPEN #4, "BASIC.TOC/WR"71 PRINT #4, ".PAGE"72 PRINT #4, ".CENTER""73 PRINT #4, "^^TABLE OF CONTENTS"74 PRINT #4, ".FG 1;.NOFILL"80 INPUT LINE #3, A$ 85 ! CHECK FOR SPECIAL WORDS(90 IF POS(A$,"PAGE ")>65 THEN GOSUB 1000*100 IF POS(A$,"CHAPTER")>1 THEN GOSUB 2000+110 IF POS(A$,"APPENDIX")>1 THEN GOSUB 3000 '120 IF POS(A$,".") = 12 THEN GOSUB 4000 130 GOTO 80B&200 PRINT #4, "\\" : PRINT #4, ".FILL" 205 CLOSE0210 EXIT1000 ! GET NEW PAGE NUMBER#1001 PG$=SBS$(A$,POS(A$,"PAGE ")+5)0 1010 RETURNS2000 ! GET NEW CHAPTER2001 A$=SBS$(A$,POS(A$,"CH"),9)P2005 PG$=SBS$(A$,9,1)+"-1"2010 B$=A$+" "*2015 INPUT LINE #3, A$ : INPUT LINE #3, A$;2016 IF POS(A$,CHR$(13))>1 THEN LET A$=SBS$(A$,1,LEN(A$)-1)O12017 IF POS(A$,CHR$(13))=1 THEN LET A$=SBS$(A$,2)02018 A$=SBS$(A$,2,LEN(A$)-1)2019 IF POS(A$," ")=1 THEN 2018.2020 GOSUB 5000B2021 PRINT #4, " "2022 PRINT #4, OU$;PG$2025 PRINT OU$;PG$ 2030 RETURN 3000 ! GET NEW APPENDIX 3001 A$=SBS$(A$,POS(A$,"AP"),10)3005 PG$=SBS$(A$,10,1)+"-1"03010 B$=A$+" "*3015 INPUT LINE #3, A$ : INPUT LINE #3, A$;3016 IF POS(A$,CHR$(13))>1 THEN LET A$=SBS$(A$,1,LEN(A$)-1) 13017 IF POS(A$,CHR$(13))=1 THEN LET A$=SBS$(A$,2)T3018 A$=SBS$(A$,2,LEN(A$)-1)3019 IF POS(A$," ")=1 THEN 3018E3020 GOSUB 500023021 PRINT #4, " "3022 PRINT #4, OU$;PG$3025 PRINT OU$;PG$ 3026 NF=1S 3030 RETURN14000 ! GET HEADLEVEL NAMEO;4001 IF POS(A$,CHR$(13))>1 THEN LET A$=SBS$(A$,1,LEN(A$)-1)A4002 IF NF>0 THEN RETURN4005 A$=SBS$(A$,2,LEN(A$)-1)4010 IF POS(A$," ")=1 THEN 4005*4015 IF ASC(SBS$(A$,1,1)) > 55 THEN RETURN4020 B$=" "4025 GOSUB 5000$4030 PRINT #4, OU$;PG$4035 PRINT OU$;PG$ 4040 RETURNE5000 ! FIX <,#, AND &B 5000 NC=0( 5002 CP=19*5005 JJ=POS(A$,"<",CP) : IF JJ<1 THEN 50155007 CP=JJ+2 : NC=NC+1;5010 A$=SEG$(A$,1,JJ-1)+"_"+SEG$(A$,JJ,LEN(A$)) : GOTO 5005R 5015 CP=10*5016 JJ=POS(A$,"&",CP) : IF JJ<1 THEN 50255017 CP=JJ+2 : NC=NC+1;5020 A$=SEG$(A$,1,JJ-1)+"_"+SEG$(A$,JJ,LEN(A$)) : GOTO 5016A 5025 CP=1-*5026 JJ=POS(A$,"#",CP) : IF JJ<1 THEN 50355027 CP=JJ+2 : NC=NC+1;5030 A$=SEG$(A$,1,JJ-1)+"_"+SEG$(A$,JJ,LEN(A$)) : GOTO 5026T5035 K=LEN(A$)+LEN(B$)+NC$5037 J=K-2*INT(K/2)05039 IF J=1 THEN LET A$=A$+" "5040 OU$=B$+A$+DD$5045 OU$=SBS$(OU$,1,62+NC) 5050 RETURNress MOV #1,R1 CALL PBYT ; Output count% BITEQ #FILLF,F.1,80$ ; no ellipses ?M CALL CBYT ; Standard ellipses 80$: DEC LINBK INC SPCHH CALL NUMCV 120$: MOV #TTBF,R2 CALL OUTCH ; Output charso BCC 130$ ; Done ?? CALL OUTE& MOV PARIN00DGJVW;K; BIGBASIC.CMD;H:; THIS COMMAND FILE BUILDS A NON-LIBRARY VERSION OF BASIC.>; THE MODULES BASIC0 THRU BASIC4 CONTAIN RE-ENTRANT CODE ONLY.>; IF YOU WANT THEM TO BE LINKED AS A PURE CODE AREA, THEY MUST9; BE RE-ASSEMBLED WITH ALL OF THEIR PSECTS DECLARED 'RO'.0#; THE ABOVE APPLIES TO IDNTFY ALSO.N;)CRSXBASIC/DA/MU,RSXBASIC/-SP/CR,RSXBASIC=BASIC0,BASIC1,BASIC2,BASIC35BASIC4,IDNTFY,IMPURSNGUA; FOLLOWING MODULE MUST BE DIFFERENT FOR RSX11D V6.2 AND IAS V3.0KSPAWN) MATHLIB/LBCATB/K UIC=[1,202]I TASK=...BASH; ;; FOLLOWING LIBRARY REFERENCE IS USED FOR SOME MODULES FROMH>; SYSLIB; IT CAN BE ELIMINATED OR YOU CAN SUBSTITUTE YOUR OWN.;ULIBR=SYSRES:RO +EXTSCT=$$$$US:42300 ;THIS EXTENDS USER AREA- STACK=256I3GBLDEF=OP.MXL:20 ;THIS SETS MAX # OF LUNS ALLOWABLEP-UNITS=16 ;MUST BE SAME # AS IN PREVIOUS LINEAASG=TI:2ASG=SY:5:6:7:8:9:10:11:12IASG=SY:13:14:15:16POOL=100;G; NOTE:L6; MAKE SURE THAT IF THE MODULE CATB IS INCLUDED IN ANY9; PURE CODE AREA, THE ONE DISTRIBUTED WITH BASIC IS USED;A8; THE SYSLIB VERSION (IN V6.2 RSX-11D) IS NON-REENTRANT.;S/ONXBF,R3 ; get index buffer# TSTNEB STAT,10$ ; Already set up ?C CLRB FIRST ; first letterw! CALL BEGBF ; Start at beginning CALL GWRD BCS 11$ ; no index items?V MOV R1,FLINK; CLR LINKd CLR BLINK210$: MOV LINK,BLINK ; Current is now backw;; BIGBASIC.CMD DEBUG VERSION;:; THIS COMMAND FILE BUILDS A NON-LIBRARY VERSION OF BASIC.>; THE MODULES BASIC0 THRU BASIC4 CONTAIN RE-ENTRANT CODE ONLY.>; IF YOU WANT THEM TO BE LINKED AS A PURE CODE AREA, THEY MUST9; BE RE-ASSEMBLED WITH ALL OF THEIR PSECTS DECLARED 'RO'.#; THE ABOVE APPLIES TO IDNTFY ALSO.;*RSXBUG/DA/MU,RSXBUG/-SP/CR,RSXBASIC=BASIC0BASIC1BASIC2,MATHLIB/LBBASIC3BASIC4IDNTFY,IMPURSNGUCATB6; Include the following for full RSX11M error messages BSCERR11MA; FOLLOWING MODULE MUST BE DIFFERENT FOR RSX11D V6.2 AND IAS V3.0SPAWN/ UIC=[1,200] TASK=...BAS;;; FOLLOWING LIBRARY REFERENCE IS USED FOR SOME MODULES FROM>; SYSLIB; IT CAN BE ELIMINATED OR YOU CAN SUBSTITUTE YOUR OWN.;+EXTSCT=$$$$US:42300 ;THIS EXTENDS USER AREA STACK=2563GBLDEF=OP.MXL:20 ;THIS SETS MAX # OF LUNS ALLOWABLE-UNITS=16 ;MUST BE SAME # AS IN PREVIOUS LINEASG=TI:2ASG=SY:5:6:7:8;; NOTE:6; MAKE SURE THAT IF THE MODULE CATB IS INCLUDED IN ANY9; PURE CODE AREA, THE ONE DISTRIBUTED WITH BASIC IS USED;8; THE SYSLIB VERSION (IN V6.2 RSX-11D) IS NON-REENTRANT.;/OV LSPCH,SPCH ; Restore count CALL OUTAD ; Get R3 SEC RETURN/;(; Subroutine to convert number to buffer;'NUMCV: CLR NUMB ; No numbers convertedO( CLR PAGSAV ; Initially no page numbers MOV #TTBF,R3 CALL CLRBFS MOV SP,STAKS 10$:;; BIGBASIC.CMD;:; THIS COMMAND FILE BUILDS A NON-LIBRARY VERSION OF BASIC.>; THE MODULES BASIC0 THRU BASIC4 CONTAIN RE-ENTRANT CODE ONLY.>; IF YOU WANT THEM TO BE LINKED AS A PURE CODE AREA, THEY MUST9; BE RE-ASSEMBLED WITH ALL OF THEIR PSECTS DECLARED 'RO'.#; THE ABOVE APPLIES TO IDNTFY ALSO.;+RSXBASIC/MU,RSXBASIC/-SP/CR,RSXBASIC=BASIC0BASIC1BASIC2,MATHLIB/LBBASIC3BASIC4IDNTFY,IMPURSNGUCATB6; Include the following for full RSX11M error messages BSCERR11MA; FOLLOWING MODULE MUST BE DIFFERENT FOR RSX11D V6.2 AND IAS V3.0SPAWN/ UIC=[1,200] TASK=...BAS;;; FOLLOWING LIBRARY REFERENCE IS USED FOR SOME MODULES FROM>; SYSLIB; IT CAN BE ELIMINATED OR YOU CAN SUBSTITUTE YOUR OWN.;+EXTSCT=$$$$US:42300 ;THIS EXTENDS USER AREA STACK=2563GBLDEF=OP.MXL:20 ;THIS SETS MAX # OF LUNS ALLOWABLE-UNITS=16 ;MUST BE SAME # AS IN PREVIOUS LINEASG=TI:2ASG=SY:5:6:7:8;; NOTE:6; MAKE SURE THAT IF THE MODULE CATB IS INCLUDED IN ANY9; PURE CODE AREA, THE ONE DI00LMNQSDATADATADATADATASTRIBUTED WITH BASIC IS USED;8; THE SYSLIB VERSION (IN V6.2 RSX-11D) IS NON-REENTRANT.;/; Subroutine to find index entry;NGETENT: CLRB STAT ) MOV #SUBTXT,R3 ; Destination for literal CALL GETLIT ; Get literalQ BCS 20$ ; No literal ??Q TSTEQ R1,20$ ; Null literal ?? CMP R1,#SUBSZ ; Is it too big ? BLE 10$ ; OK ? JMP ILCM 0BINSRC,BINSRC/-SP=[1,202]LODMAC/ML,[1,202]BINSRCNo entry ?" BITNEB #X.SEN,R1,30$ ; Subentry ?- MOV BF.FUL(R3),R5 ; Save current entry begin - MOV #SUBTXT,R2 ; Location of text to compareH40$: CALL GBYT ; Get entryo BEQ 50$ ; Done ?$ CMPEQB (R2)+,R1,40$ ; Is it same ?? BR 30$ ; No try next o,?? @@U 05JU85 y C *EU%  L6 Je  @ABW@WACC ,, p DŽe+1BW@ p ^ DŽeҤ @A@e *De @B@@&e`0 10 ! BINSRC6 ! PROGRAM TO TEST NEW BINARY SEARCH AND BINARY DECODE100 DIM R$[10],S$[254]"110 LOAD "BINSRC.ATK","DBLBIN.ATK"120 R0=0 : R1=0(130 OPEN #4,"TRNINDV1.SRT/RN/LN:10/RO" :" OPEN #5,"LEVEL1.DAT/RN/LN:254/RO"140 CALL "BINSRC"("38856",4,R0)#150 PRINT "INDEX FILE RECORD # ";R0160 INPUT LINE #4@R0,R$+170 PRINT "INDEX FILE RECORD ";SBS$(R$,5)180 CALL "DBLBIN"(R$,R1)#190 PRINT "LEVEL FILE RECORD # ";R1200 INPUT LINE #5@R1,S$.210 PRINT "LEVEL FILE RECORD ";LEFT(S$,50) :. PRINT " ";SBS$(S$,51,50) :/ PRINT " ";SBS$(S$,101,50) :/ PRINT " ";SBS$(S$,151,50) :/ PRINT " ";SBS$(S$,201,50) :* PRINT " ";SBS$(S$,251)220 STOP/DISABLE BOLDING + FLAGS BOLD - Too much overhead. / g) FLAGS COMMENT - Probably not ( h) REPEAT - Probably not N i) SET DATE/TIME - Probably not (simulated by .DELETE/DEFINE SUBSTITUTE) ; ; BINSRC.MACD; SOURCE FOR MACRO SUBROUTINE TO DO A BINARY SEARCH ON AN INDEX FILE ; BASIC CALL:L; CALL "BINSRC"(A$,A,B)B; WHERE: ; A$ = STRING TO BE SEARCHED FOR; A = FILE # OF INDEX FILEL3; VALUE IS THAT ASSIGNED IN BASIC OPEN COMMANDN4; EXECUTED ONCE BEFORE FIRST CALL TO SUBROUTINE#; B = REC # RETURNED BY SUBROUTINEN;5 .MCALL ULODHD FDOF$L FCSBT$ ULODHD START,END,BINSRC;#; DEFINE FLOATING REGS;1AC0=%0AC1=%1AC2=%2AC3=%3FDOF$LFCSBT$;:*; DEFINE A00T[JVWDDRESS OF .GET ROUTINE IN SYSRES0; THIS VALUE WILL BE DEFINED IN TKB COMMAND FILE .GLOBL ADDGETSTART:&BINSRC: JSR R4,@#GTRGPI ;GET ARGUMENTS4 .BYTE 3,1,2,0 ;STRING,NUMERIC,NUMERIC RETURNED,END .EVEN* JSR PC,@#PARCHK ;CHECK FOR TRAILING PAREN MOV SP,R5 ;R5 HAS ARG LIST PTR/ CMP (R5)+,(R5)+ ;R5 POINTS TO NUMERIC FP VALUET LDF (R5)+,AC0 ;PUT LUN # IN AC0 SETIF" STCFI AC0,R4 ;CONVERT TO INTEGER DEC R4 ;ITS LUN - 1N MOV #17400,R0 ;PUT MASK IN R0" JSR PC,@#SRCHFL ;FIND FCB ADDRESS TST R3 ;IF 0 ERROR" BEQ 10$ ;BRANCH TO ERROR ROUTINE ADD #26,R3 ;FCB + 26 = FDB4 MOV R3,R0 ;FDB ADDRESS WILL BE KEPT IN R0 FOR GETS LDCIF #2,AC3 ;WE WANT REC # 2N SETLI. STCFL AC3,F.RCNM(R0) ;PUT REC # WANTED IN FDB. JSR PC,GETCOM ;SET READBUF ADDRESS AND LENGTH JSR PC,@#ADDGET ;DO GET9 LDCLF @F.URBD+2(R0),AC3 ;PUT CONTENTS OF 2ND REC IN AC0U& ADDF #3,AC3 ;+2+1 = LAST REC IN FILE SETII% LDCIF #2,AC0 ;AC0 IS LOWER BOUNDARY7$ STF AC3,AC2 ;AC2 IS UPPER BOUNDARY1$: SETI STF AC0,AC1 ;AC1 IS THE MIDDLE$ ADDF AC2,AC1 ;= (UPP + LOW + 1 )/2 ADDF #1,AC1 DIVF #2,AC1 STCFI AC1,R3 ;TAKE THE INT() LDCIF R3,AC1 ;PUT BACK IN FPPC) CMP R3,#2 ;IS MIDDLE EQUAL TO LOW BOUNDR BEQ 11$ ;BRANCH TO NOT FOUND- CMPF AC1,AC3 ;IS MIDDLE EQUAL TO HIGH BOUNDH CFCCP BEQ 12$ ;BRANCH TO NOT FOUND SETL). STCFL AC1,F.RCNM(R0) ;PUT REC # WANTED IN FDB. JSR PC,GETCOM ;SET READBUF ADDRESS AND LENGTH JSR PC,@#ADDGET MOV (SP),R4 ;PUT LEN IN R40 MOV 2(SP),R2 ;R2 HAS ADDRESS OF CHECKING STRING3 MOV F.URBD+2(R0),R3 ;R3 HAS ADDRESS OF READ STRING8 ADD #4,R3 ;FIRST FOUR BYTES ARE LONG INTEGER PTR, SKIP#3$: CMPB (R2)+,(R3)+ ;COMPARE CHARSC2 BLT 4$ ;WANTED STRING IS LOWER THAN WHERE WE ARE3 BGT 5$ ;WANTED STRING IS HIGHER THAN WHERE WE ARE  SOB R4,3$ ;CHECK EACH CHAR ;FOUND ITN"9$: STF AC1,AC2 ;PUT REC # IN AC2 SUBF #1,AC1 ;BACKUP ONE RECORD SETLC. STCFL AC1,F.RCNM(R0) ;PUT REC # WANTED IN FDB. JSR PC,GETCOM ;SET READBUF ADDRESS AND LENGTH JSR PC,@#ADDGET MOV (SP),R4 ;PUT LEN IN R40 MOV 2(SP),R2 ;R2 HAS ADDRESS OF CHECKING STRING3 MOV F.URBD+2(R0),R3 ;R3 HAS ADDRESS OF READ STRING$8 ADD #4,R3 ;FIRST FOUR BYTES ARE LONG INTEGER PTR, SKIP#8$: CMPB (R3)+,(R2)+ ;COMPARE CHARS  BLT 6$ ;BACKED UP TO FAR SOB R4,8$ ;CHECK EACH CHAR BR 9$ ;GO DO AGAIN10$: CLRF AC2 ;ERROR END  BR 6$(11$: LDF #3,AC2 ;WE WANT TO RETURN A -3" BR 20$ ;BRANCH TO NEGATE ROUTINE112$: STF AC3,AC2 ;STORE # OF RECORDS IN FILE + 1  BR 20$ ;BRANCH TO NEGATE;13$: ADDF #1,AC2 ;WE SUBTRACTED ONE SO NOW WE MUST ADD ONE 20$: NEGF AC2 ;NEGATE ROUTINE26$: STF AC2,AC0 ;PUT ANS IN AC0 FOR STORE ROUTINE* ADD #10,SP ;PUT STACK AT ADDRESS FOR ANS/ MOV SP,R5 ;R5 SHOULD HAVE ADDRESS FOR ROUTINE SETI " JSR PC,@#NSTORE ;STORE THE RESULT ADD #12,SP ;CLEAN STACKO RTS PC ;RETURN4$: SUBF #1,AC2 ;DEC AC21, CMPF AC2,AC0 ;ARE HIGH AND LOW BOUND EQUAL CFCCN BEQ 13$ ;BRANCH TO NOT FOUND# STF AC1,AC2 ;MOVE DOWN HIGH BOUND  BR 1$ ;BRANCH TO REPEATA5$: ADDF #1,AC0 ;INC AC0U, CMPF AC0,AC2 ;ARE HIGH AND LOW BOUND EQUAL CFCC; BEQ 20$ ;BRANCH TO NOT FOUND# STF AC1,AC0 ;MOVE DOWN HIGH BOUNDA BR 1$ ;BRANCH TO REPEATD.GETCOM: MOV R0,-(SP) ;PUT FDB ADDRESS ON STACK ADD #S.FDB,(SP) ;ADD OFFSET> MOV (SP)+,F.URBD+2(R0);PUT ADDRESS OF READ BUF INTO FDB BLOCKD MOV F.RSIZ(R0),F.URBD(R0);PUT REC SIZE IN READ BUF LEN IN FDB BLOCK RTS PC ;RETURNEND: .END$* :L,@.I.@8X@*8@8@Z`@:d @y2@(" * y  U% 8X88.I.":d *&  Je  y2*L @ABW@WACC,*r ,, p e,*+1BW@ p ^  ,*eҤ @A@e* e @B@ 00\]^_`cTADATADATAZ` @&e`0ls.text.r;John Clement .r;Bonner Lab.r;Rice University.r;Houston, Tx. .end text'BINSRC.ATK/-HD/-FP,BINSRC/CR/-SP=BINSRC[1,1]BSCPUR.STB/SS/Z7; FOLLOWING GLOBAL DEFINITION SHOULD BE 161412 FOR V6.0; AND 161422 FOR IAS V3.0 ; GBLDEF=ADDGET:161422STACK=0UNITS=0.LIBR=SYSRES:RO//$BINSRC.ATK/-HD/-FP,BINSRC/-SP=BINSRCRSXBASIC.STB/SS/7; FOLLOWING GLOBAL DEFINITION SHOULD BE 161412 FOR V6.05; AND 161422 FOR IAS V3.0 AND 161506 FOR IAS V3.1 AND; 160544 FOR IAS V3.25; (it is obtained from a cross-ref map of BSCPUR, the; address of .GET);GBLDEF=ADDGET:143746STACK=0UNITS=0/"BINSRD,BINSRD/-SP=LODMAC/ML,BINSRDDigital Equipment Corporation has no commitment 0to offer or support at this time. This document is believed to be an accurate description of RUNOFF. KYou may feel free to distribute this program to other users. Please do notsell this program., @@U 05JU85  yT[y 7 7  CW, CeVC E *EU%  L6 Ke  x nvW@7 5Ҥ21@ABW@WAfVWA *0BW@ tҤ@A @A@B  `e *De @B@@&e`0p ǂm  @WR@eL *D 10 ! BINSRD$ ! PROGRAM TO TEST NEW BINARY SEARCH100 DIM R$[12],S$[254]110 LOAD "BINSRD.ATK"120 R0=0 : R1=0 : RC=254(130 OPEN #4,"TRNINDV2.SRT/RN/LN:12/RO" :" OPEN #5,"LEVEL1.DAT/RN/LN:254/RO"%140 CALL "BINSRC"("38856",4,R0,R1,RC)#150 PRINT "INDEX FILE RECORD # ";R0160 INPUT LINE #4@R0,R$+170 PRINT "INDEX FILE RECORD ";SBS$(R$,7)180 ! CALL "DBLBIN"(R$,R1)#190 PRINT "LEVEL FILE RECORD # ";R1200 INPUT LINE #5@R1,S$.210 PRINT "LEVEL FILE RECORD ";LEFT(S$,50) :. PRINT " 00deJVW ";SBS$(S$,51,50) :/ PRINT " ";SBS$(S$,101,50) :/ PRINT " ";SBS$(S$,151,50) :/ PRINT " ";SBS$(S$,201,50) :* PRINT " ";SBS$(S$,251)220 STOPabRice University P.O.#Box 1892Houston, Tx, 77251Tel (713) 527-4018 .end right .end text; ; BINSRD.MACD; SOURCE FOR MACRO SUBROUTINE TO DO A BINARY SEARCH ON AN INDEX FILEJ; THIS ROUTINE FINDS THE FIRST INDEX RECORD THAT MATCHES THE GIVEN STRING. ; BASIC CALL:!; CALL "BINSRC"(A$,A,B,C,D); OR; CALL "NXTSRC"(A$,A,B,C,D); WHERE: ; A$ = STRING TO BE SEARCHED FOR; A = FILE # OF INDEX FILE4; VALUE IS THAT ASSIGNED IN BASIC OPEN COMMAND.5; EXECUTED ONCE BEFORE FIRST CALL TO SUBROUTINE.#; B = REC # RETURNED BY SUBROUTINE3; IF NEGATIVE, NO MATCH BUT VALUE IS PLACE WHERE A,; MATCH WOULD GO. ZERO MEANS FILE NOT OPEN.8; (NXTSRC ONLY) ON ENTRY THIS WILL BE FILLED IN WITH THE4; RECORD NUMBER OF THE LAST INDEX FILE RECORD WHICH6; MATCHED. THE SEARCH WILL THEN LOOK ONLY AT THE NEXT4; INDEX FILE RECORD. NXTSRC IS USEFUL ONLY IF USING1; THE OPTIONAL ARGUMENTS TO OBTAIN THE MAIN FILE ; RECORD."; C = REC # RETURNED FOR MAIN FILE ; NOT CHANGED IF B NEG OR ZERO.; D = RECORD SIZE FOR MAIN FILE; .MCALL ULODHD FDOF$L FCSBT$ ULODHD START,END,BINSRC,NXTSRC;B; FOLLOWING MACRO IS USED TO GET THE ABSOLUTE ADDRESS OF A LOCALLYD; DEFINED LABEL IN POSITION INDEPENDENT FASHION (NEEDED FOR LOADABLE ; ROUTINES).; .MACRO GTABAD ADDRES,LOC .NTYPE ...ATP,LOC .IF GT ...ATP-5 MOV PC,-(SP) ADD #ADDRES-.,(SP) MOV (SP)+,LOC .IFF MOV PC,LOC ADD #ADDRES-.,LOC .ENDC .ENDM GTABAD;; DEFINE FLOATING REGS;AC0=%0AC1=%1AC2=%2AC3=%3AC4=%4AC5=%5FDOF$LFCSBT$0; THIS VALUE WILL BE DEFINED IN TKB COMMAND FILE .GLOBL ADDGETSTART:(NXT: .WORD 0 ;FLAG FOR WHICH ENTRY POINTRSIZE: .WORD 0STROFF: .WORD 0RECNAD: .BLKW 3;NXTSRC:% INC NXT ;INDICATE WHICH ENTRY POINT BR COMBINSRC:$ CLR NXT ;KEEP TRACK OF ENTRY POINTCOM:) CLR RECNAD ;CLEAR RECORD NUMBER ADDRESS" SETI ;MAKE SURE IN INTEGER MODE JSR R4,@#GTRGPI ;GET ARGUMENTS4 .BYTE 3,1,2,0 ;STRING,NUMERIC,NUMERIC RETURNED,END .EVEN CMPB (R1),#', ;MORE ARGS? BNE 2$ ;IF NOT, BRANCH JSR R4,@#GTRGPI ;GET THEM IF SO .BYTE 2,1,0 .EVEN MOV (SP)+,RECNAD ;STORE ADDRESS MOV (SP)+,RECNAD+2 ;(3 WORDS) MOV (SP)+,RECNAD+4 ADD #4,SP ;SKIP VALUE OF C" LDF (SP)+,AC1 ;RECORD SIZE -> AC1 STCFI AC1,R3 ;INTEGERIZE IT INC R3 ;ROUND IT UP TO NEAREST BIC #1,R3 ;WORD BOUNDARY MOV R3,RSIZE ;AND REMEMBER IT-2$: JSR PC,@#PARCHK ;CHECK FOR TRAILING PAREN MOV SP,R5 ;R5 HAS ARG LIST PTR/ CMP (R5)+,(R5)+ ;R5 POINTS TO NUMERIC FP VALUE LDF (R5)+,AC0 ;PUT LUN # IN AC0" STCFI AC0,R4 ;CONVERT TO INTEGER DEC R4 ;ITS LUN - 1 MOV #17400,R0 ;PUT MASK IN R0" JSR PC,@#SRCHFL ;FIND FCB ADDRESS TST R3 ;IF 0 ERROR" BEQ 10$ ;BRANCH TO ERROR ROUTINE ADD #26,R3 ;FCB + 26 = FDB4 MOV R3,R0 ;FDB ADDRESS WILL BE KEPT IN R0 FOR GETS LDCIF #1,AC3 ;WE WANT REC # 1 SETL. STCFL AC3,F.RCNM(R0) ;PUT REC # WANTED IN FDB. JSR PC,GETCOM ;SET READBUF ADDRESS AND LENGTH JSR PC,@#ADDGET ;DO GET- MOV F.URBD+2(R0),R3 ;ADDRESS OF RECORD -> R3+ MOV #6,STROFF ;REMEMBER OFFSET INTO RECORD514$: LDCLF (R3),AC3 ;GET MAX RECORD NUMBER IF V1 SORT15$: TST NXT ;WHICH ROUTINE?# BEQ 16$ ;IF BINARY SEARCH, BRANCH@ LDF 16(SP),AC1 ;GET INDEX FILE RECORD NUMBER FOR PREVIOUS MATCH$ ADDF #1,AC1 ;PUT UP TO NEXT RECORD- LDF AC1,AC2 ;COPY FOR SUBSEQUENT PROCESSING! CMPF AC1,AC3 ;CHECK AGAINST MAX CFCC( BGT 20$ ;IF TOO BIG, NO GO - SO BRANCH% JSR PC,READCM ;DO READ OF INDEX FILE4 BEQ 6$ ;IF NULL COMPARISON STRING, SUCCESS ALREADY017$: CMPB (R3)+,(R2)+ ;SEE IF KEY STRING MATCHES* BNE 20$ ;IF NOT, BRANCH TO FAILURE POINT SOB R4,1700l]^_`cTADATADATA$* BR 6$ ;GO TO SUCCESS POINT IF FULL MATCH(16$: ADDF #1,AC3 ;+1 = LAST REC IN FILE# LDF #2,AC0 ;AC0 IS LOWER BOUNDARY$ STF AC3,AC2 ;AC2 IS UPPER BOUNDARY1$: STF AC0,AC1 ;AC1 IS THE MIDDLE$ ADDF AC2,AC1 ;= (UPP + LOW + 1 )/2 ADDF #1,AC1 DIVF #2,AC10 STCFL AC1,-(SP) ;DO INTEGER CONVERSION ON STACK# LDCLF (SP)+,AC1 ;AND BRING IT BACK% CMPF #2,AC1 ;ARE WE AT LOWER BOUND? CFCC* BEQ 11$ ;IF SO, BRANCH TO NOT FOUND CODE- CMPF AC1,AC3 ;IS MIDDLE EQUAL TO HIGH BOUND CFCC BEQ 12$ ;BRANCH TO NOT FOUND JSR PC,READCM9 BEQ 18$ ;IF NULL COMPARISON STRING, SUCCESS AT 1ST REC.#3$: CMPB (R2)+,(R3)+ ;COMPARE CHARS2 BLT 4$ ;WANTED STRING IS LOWER THAN WHERE WE ARE3 BGT 5$ ;WANTED STRING IS HIGHER THAN WHERE WE ARE SOB R4,3$ ;CHECK EACH CHAR ;FOUND IT"9$: STF AC1,AC2 ;PUT REC # IN AC2 SUBF #1,AC1 ;BACKUP ONE RECORD JSR PC,READCM#8$: CMPB (R3)+,(R2)+ ;COMPARE CHARS BNE 6$ ;BACKED UP TOO FAR SOB R4,8$ ;CHECK EACH CHAR BR 9$ ;GO DO AGAIN,18$: LDF #3,AC2 ;POINT TO FIRST REAL RECORD BR 6$ ;AND GO TO SUCCESS10$: CLRF AC2 ;ERROR END BR 6$(11$: LDF #3,AC2 ;WE WANT TO RETURN A -3" BR 20$ ;BRANCH TO NEGATE ROUTINE112$: STF AC3,AC2 ;STORE # OF RECORDS IN FILE + 1 BR 20$ ;BRANCH TO NEGATE;13$: ADDF #1,AC2 ;WE SUBTRACTED ONE SO NOW WE MUST ADD ONE20$: NEGF AC2 ;NEGATE ROUTINE6$:- TSTF AC2 ;CHECK ON INDEX FILE RECORD NUMBER CFCC) BMI 7$ ;IF NEG, ERROR RETURN, SO BRANCH1 TST RECNAD ;SEE IF MAIN RECORD NUMBER REQUESTED BEQ 7$ ;IF NOT, BRANCH# JSR PC,RCNOUT ;IF SO, GO RETURN IT7$:. STF AC2,AC0 ;COPY INDEX RECORD NUMBER -> AC0* ADD #10,SP ;PUT STACK AT ADDRESS FOR ANS/ MOV SP,R5 ;R5 SHOULD HAVE ADDRESS FOR ROUTINE SETI" JSR PC,@#NSTORE ;STORE THE RESULT ADD #12,SP ;CLEAN STACK RTS PC ;RETURN4$: SUBF #1,AC2 ;DEC AC2, CMPF AC2,AC0 ;ARE HIGH AND LOW BOUND EQUAL CFCC BEQ 13$ ;BRANCH TO NOT FOUND# STF AC1,AC2 ;MOVE DOWN HIGH BOUND BR 1$ ;BRANCH TO REPEAT5$: ADDF #1,AC0 ;INC AC0, CMPF AC0,AC2 ;ARE HIGH AND LOW BOUND EQUAL CFCC BEQ 20$ ;BRANCH TO NOT FOUND# STF AC1,AC0 ;MOVE DOWN HIGH BOUND BR 1$ ;BRANCH TO REPEAT.GETCOM: MOV R0,-(SP) ;PUT FDB ADDRESS ON STACK ADD #S.FDB,(SP) ;ADD OFFSET> MOV (SP)+,F.URBD+2(R0);PUT ADDRESS OF READ BUF INTO FDB BLOCKD MOV F.RSIZ(R0),F.URBD(R0);PUT REC SIZE IN READ BUF LEN IN FDB BLOCK RTS PC ;RETURNREADCM:. STCFL AC1,F.RCNM(R0) ;PUT REC # WANTED IN FDB. JSR PC,GETCOM ;SET READBUF ADDRESS AND LENGTH JSR PC,@#ADDGET0 MOV 4(SP),R2 ;R2 HAS ADDRESS OF CHECKING STRING3 MOV F.URBD+2(R0),R3 ;R3 HAS ADDRESS OF READ STRING7 ADD STROFF,R3 ;FIRST STROFF BYTES ARE RECORD PTR, SKIP MOV 2(SP),R4 ;PUT LEN IN R4 RTS PCRCNOUT:1 STCFL AC2,F.RCNM(R0) ;STORE PROPER RECORD NUMBER JSR PC,GETCOM JSR PC,@#ADDGET ;GET OUR RECORD# MOV F.URBD+2(R0),R3 ;ADDRESS -> R35 SETD ;DO DOUBLE PRECISION FOR FILES > 32 MEGABYTES2 MOV (R3)+,-(SP) ;REVERSE THE ORDER OF THE BLOCK #6 MOV (R3)+,-(SP) ;BECAUSE THEY'RE REVERSED IN THE FILE LDCLD (SP)+,AC0 ;BLOCK # -> AC0 SUBD #1,AC0 ;BACK IT DOWN BY 1 SETI, LDCID (R3),AC3 ;BYTE NUMBER IN BLOCK -> AC3* LDCID #512.,AC1 ;# BYTES PER BLOCK -> AC1< MULD AC1,AC0 ;TOTAL BYTES TO START OF PRESENT BLOCK -> AC04 ADDD AC3,AC0 ;ADD IN NUMBER OF BYTES IN THIS BLOCK( LDCID RSIZE,AC3 ;GET RECORD SIZE -> AC32 DIVD AC3,AC0 ;AND GET FINAL RECORD NUMBER -> AC0' ADDD #1,AC0 ;RECORDS START AT 1 NOT 0& SETF ;BACK TO SINGLE PRECISION MODE92$: GTABAD RECNAD,R5 ;MAKE R5 POINT TO STORAGE INFO FOR C JSR PC,@#NSTORE ;STORE IT RTS PCEND: .ENDN):.SKIP.NOFILL .INDENT +16^INPUT:###^^SY:RUNOFF.RNO\\.SKIP .INDENT +16^OUTPUT:##^^SY:RUNOFF.DOC\\.SKIP.FILL!.NOTE ^EDITING ^^RUNOFF\\ ^OUTPUTD^^RUNOFF\\ OUTPUT FILES MAY NOT BE EDITED NORMALLY WITH THE STANDARDF^^RSX/IAS\\ FI00tvw{|b :D:d @Z`@8@8X@y2@8@.I.@,@  $  yT[y 8X88&)& 7 7  W, .I.$.I.LLeVC E U%  Ke  x nvW@7 5Ҥ2$:d 6y2R,1@ABW@WAfVWA *0BW@ tҤ@A @A@B  `eD e @B@@&e`0p m  @W Z`J,h,"R@eL Z`LLOWED BY ANY$BINSRD.ATK/-HD/-FP,BINSRD/-SP=BINSRDRSXBASIC.STB/SS/7; FOLLOWING GLOBAL DEFINITION SHOULD BE 161412 FOR V6.05; AND 161422 FOR IAS V3.0 AND 161506 FOR IAS V3.1 AND; 160544 FOR IAS V3.25; (it is obtained from a cross-ref map of BSCPUR, the; address of .GET);GBLDEF=ADDGET:143746STACK=0UNITS=0/100 DIM FL%(255)120 SZ%=255 \ TT=100122 ! PRINT TIME(0%)123 A=TIME(0%)125 FOR II=1 TO TT 130 CO%=0e140 FOR I=0 TO SZ% 150 FL%(I)=1 160 NEXT I190 FOR I=0 TO SZ% 200 IN%=I3210 IF FL%(IN%)=0 GOTO 290220 PR%=IN%+IN%+3 230 K%=IN%+PR%240 IF K%>SZ% GOTO 280 250 FL%(K%)=0 260 K%=K%+PR%0 270 GOTO 240 280 CO%=CO%+1D 290 NEXT I 295 NEXT II4300 ! PRINT TIME(0%)310 B=TIME(0%) 320 PRINT CO%," PRIMES FOUND IN"330 PRINT TT," TIMES"S"340 PRINT "TAKING ";B-A;" SECONDS"350 ENDs!BP2ERATO,BP2ERATO/-SP=BP2ERATO/MPTLIBR=BASIC2:RO UNITS = 14 ASG = TI:13)ASG = SY:5:6:7:8:9:10:11:12= EXTTSK= 2488 //^ [sQ _ [v ` ""` a 8[ b 8Rc 8?Td 8re 8#wf 8[g 8 Nh 8kQi 8^ j 8[k 8kQl 8^m 8[ .ROOT BASIC2-RMSROT-USER,RMSALLUSER: .FCTR SY:BP2ERATO-LIBRLIBR: .FCTR LB:[1,1]BASIC2/LB8@LB:[1,1]BP2IC1T@LB:[1,1]RMS11X .END(~ 8 8 yE  yk  y  ykQ y^ y{ y{ yE  yk  y  ykQ y^ y{ "X; B S C B U G . C M D;,;A#; LINKS DIAGNOSTIC VERSION OF BSCRBXC/MU/DA,BXC/-SP/CR=IMPUR/:;1;2LIBR=BSCBUG:RW STACK=256NUNITS=16ASG=TI:2ASG=SY:5:6:7:8:9:10:11:12=ASG=SY:13:14:15:16POOL=100ATRG=10=/+ine feed the last lineBSC/RW/MU,BSC/-SP=IMPUR/;; LIBR=BSCPUR:RO STACK=256 UNITS=16ASG=TI:2ASG=SY:5:6:7:8:9:10:11:12IASG=SY:13:14:15:16POOL=100ATRG=10= TASK=...BAS5/7hite as snow.And everywhere that Mary went,The lamb was sure to go..c .; *** ERROR 1!.i-215 .i -216 *** ERROR 2) .i 0 .end right.c;This is a centered line! Normal line..br;_.RIGHT TEXT -5.RIGHT TEXT -5Mary had a little lamb.!It's00}_`cTADATADATA; B S C A L L B U G . C M D;;G; FOLLOWING COMMAND FILE LINKS AND INSTALLS TEST COPY OF BSCPUR LIBRARYP; CALLED BSCBUG AND LINKS CORRESPONDING DEBUGGING VERSION OF BSC AND INSTALLS IT;9;MODIFIED BY F.BORGER TO MAKE A TEST COPY (CALLED ...BAZ);A;FIRST RE-DO IMPURNOMO IN CASE WE CHANGED THE IMPURE STORAGE AREATKB @IMPURNOMO;;TKB THE PURE AREATKB @BSCPUR.BUG%PIP LB:[1,1]/NV=BSCBUG.TSK,BSCBUG.STB REM ...BXC REM BSCBUG/LIINS LB:[1,1]BSCBUG/LI/ACC=RW;TKB THE IMPURE AREA TKB @BSC.BUG REM ...BXCINS BXC/TASK=...BXCOL-75;; RUNOFF COMMANDS;;$; CHANGES BY J. CLEMENT AUGUST 1982$; ADD EXTRA FLAGS (SPACE,ACCEPT...)1; MAKE ALL ENABLE/DISABLE COMMANDS THE SAME LOGIC; Lots of new commands added;;(; ALL COMMAND ROUTINES ARE ENTERED WITH:;*; R4=A; B S C B U G . C M D; ;P#; LINKS DIAGNOSTIC VERSION OF BSCSBXC/MU/DA,BXC/-SP/CR=IMPUR/K;O;SLIBR=BSCBUG:RW STACK=256LUNITS=16ASG=TI:2ASG=SY:5:6:7:8:9:10:11:12LASG=SY:13:14:15:16POOL=100ATRG=10R/I: CALL GETLIT ; Get literal BCS 30$ ; None ? TSTEQ R1,30$ ; No characters ?"20$: MOVB (R0)+,R2 ; Get character MOV R2,R0 ADD #CHTABL,R0 BISB R5,(R0) ; Set the bit! SOB R1,20$ ; Continue till done30$: RETURN ; ;; NO PERIOD comman@ LISTING OF BSCBUG.STB 01/21/82 15:55:11@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> BASIC0 000000 MODULE NAME 000> 08NO78 000000 VERSION ID 000> . ABS. 000000 P-SECT NAME 104> IDNTFY 100000 GLOBAL SYMBOL 110> $CAT5 100132 GLOBAL SYMBOL 110> $CBDAT 100266 GLOBAL SYMBOL 110> $CBDMG 100274 GLOBAL SYMBOL 110> $CBDSG 100302 GLOBAL SYMBOL 110> $CBOMG 100310 GLOBAL SYMBOL 110> $CBOSG 100316 GLOBAL SYMBOL 110> $CBTA 100372 GLOBAL SYMBOL 110> $CBTMG 100324 GLOBAL SYMBOL 110> $CBVER 100310 GLOBAL SYMBOL 110> $CDTB 100010 GLOBAL SYMBOL 110> $COTB 100024 GLOBAL SYMBOL 110> $C5TA 100530 GLOBAL SYMBOL 110> .CSI1 100634 GLOBAL SYMBOL 110> .CSI2 102132 GLOBAL SYMBOL 110> .DELET 103454 GLOBAL SYMBOL 110> .MARK 103606 GLOBAL SYMBOL 110> .POINT 103546 GLOBAL SYMBOL 110> .READ 103634 GLOBAL SYMBOL 110> .WAIT 103702 GLOBAL SYMBOL 110> .WRITE 103724 GLOBAL SYMBOL 110> ..RWCK 104050 GLOBAL SYMBOL 110> ..RWLG 104230 GLOBAL SYMBOL 110> ..WTRD 104122 GLOBAL SYMBOL 110> CTCENT 105070 GLOBAL SYMBOL 110> FPERMS 105160 GLOBAL SYMBOL 110> FPEXTR 105102 GLOBAL SYMBOL 110> STRD 105242 GLOBAL SYMBOL 110> TRAP00 104560 GLOBAL SYMBOL 110> ABS00 106632 GLOBAL SYMBOL 110> AR500 107622 GLOBAL SYMBOL 110> ASC00 107662 GLOBAL SYMBOL 110> ATN00 107030 GLOBAL SYMBOL 110> ATOF00 105374 GLOBAL00vw{| SYMBOL 110> ATOI00 106604 GLOBAL SYMBOL 110> CHR00 110214 GLOBAL SYMBOL 110> COR00 110142 GLOBAL SYMBOL 110> COS00 107022 GLOBAL SYMBOL 110> DAT00 111570 GLOBAL SYMBOL 110> DCEN0 112442 GLOBAL SYMBOL 110> DDAT00 111554 GLOBAL SYMBOL 110> ERL00 110072 GLOBAL SYMBOL 110> ERR00 110064 GLOBAL SYMBOL 110> EXPF00 107006 GLOBAL SYMBOL 110> FCHR00 111110 GLOBAL SYMBOL 110> FCS00 110100 GLOBAL SYMBOL 110> FORM00 113470 GLOBAL SYMBOL 110> FTOA00 106110 GLOBAL SYMBOL 110> INT00 106662 GLOBAL SYMBOL 110> INX00 107102 GLOBAL SYMBOL 110> ITOA00 106572 GLOBAL SYMBOL 110> LEFT00 110252 GLOBAL SYMBOL 110 @ LISTING OF BSCBUG.STB 01/21/82 15:55:15@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> LEN00 107376 GLOBAL SYMBOL 110> LJS00 114222 GLOBAL SYMBOL 110> LOG00 106772 GLOBAL SYMBOL 110> LOG10 107000 GLOBAL SYMBOL 110> LTR00 111220 GLOBAL SYMBOL 110> NRC00 107732 GLOBAL SYMBOL 110> OCB00 107432 GLOBAL SYMBOL 110> OCS00 111310 GLOBAL SYMBOL 110> OCT00 111316 GLOBAL SYMBOL 110> PIECE0 110544 GLOBAL SYMBOL 110> PWRF00 106704 GLOBAL SYMBOL 110> RIGHT0 110260 GLOBAL SYMBOL 110> RJS00 114230 GLOBAL SYMBOL 110> RND00 105264 GLOBAL SYMBOL 110> RND01 105324 GLOBAL SYMBOL 110> R5A00 111404 GLOBAL SYMBOL 110> SBS00 110266 GLOBAL SYMBOL 110> SEC00 113272 GLOBAL SYMBOL 110> SEG00 110244 GLOBAL SYMBOL 110> SGN00 106636 GLOBAL SYMBOL 110> SINE00 107014 GLOBAL SYMBOL 110> SPACE0 114524 GLOBAL SYMBOL 110> SQRT00 107036 GLOBAL SYMBOL 110> STRG00 114532 GLOBAL SYMBOL 110> TIM00 111562 GLOBAL SYMBOL 110> TRM00 111226 GLOBAL SYMBOL 110> VAL00 107426 GLOBAL SYMBOL 110> ATTACH 114616 GLOBAL SYMBOL 110> DEF00 117200 GLOBAL SYMBOL 110> DETACH 114626 GLOBAL SYMBOL 110> DIM00 116046 GLOBAL SYMBOL 110> EOSCHK 126524 GLOBAL SYMBOL 110> EVAL00 117440 GLOBAL SYMBOL 110> EVLS00 120724 GLOBAL SYMBOL 110> FOR00 126720 GLOBAL SYMBOL 110> GETHDR 121430 GLOBAL SYMBOL 110> GETNUM 122602 GLOBAL SYMBOL 110> GETSTR 123010 GLOBAL SYMBOL 110> GOSB00 115136 GLOBAL SYMBOL 110> GOTO00 115172 GLOBAL SYMBOL 110> GOTO02 115302 GLOBAL SYMBOL 110> GOTO03 115236 GLOBAL SYMBOL 110> GOTO04 100_`cTADATADATA15174 GLOBAL SYMBOL 110> GTOFFS 121554 GLOBAL SYMBOL 110> GTP00 120042 GLOBAL SYMBOL 110> IF00 124206 GLOBAL SYMBOL 110> INP00 125364 GLOBAL SYMBOL 110> INP01 125354 GLOBAL SYMBOL 110> LET00 123446 GLOBAL SYMBOL 110> NEWVAR 123344 GLOBAL SYMBOL 110> NEXT00 127364 GLOBAL SYMBOL 110> ONGT00 115462 GLOBAL SYMBOL 110> PR00 124550 GLOBAL SYMBOL 110> READ00 126560 GLOBAL SYMBOL 110> REM00 124306 GLOBAL SYMBOL 110 @ LISTING OF BSCBUG.STB 01/21/82 15:55:19@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> RES00 115570 GLOBAL SYMBOL 110> RET00 115666 GLOBAL SYMBOL 110> RUN00 114750 GLOBAL SYMBOL 110> RUN01 115074 GLOBAL SYMBOL 110> STONUM 122730 GLOBAL SYMBOL 110> STOP00 114644 GLOBAL SYMBOL 110> STOP02 114710 GLOBAL SYMBOL 110> STOSTR 123156 GLOBAL SYMBOL 110> STRADD 123102 GLOBAL SYMBOL 110> STRCMP 125650 GLOBAL SYMBOL 110> WRITBK 122462 GLOBAL SYMBOL 110> ARYL00 131744 GLOBAL SYMBOL 110> CLOS00 131026 GLOBAL SYMBOL 110> CLRU00 131434 GLOBAL SYMBOL 110> CLSEAL 135334 GLOBAL SYMBOL 110> CRLF00 130616 GLOBAL SYMBOL 110> CSINT0 131136 GLOBAL SYMBOL 110> DIMC00 132532 GLOBAL SYMBOL 110> FILFND 135452 GLOBAL SYMBOL 110> FILFN1 135466 GLOBAL SYMBOL 110> FIND00 132274 GLOBAL SYMBOL 110> FIND01 132304 GLOBAL SYMBOL 110> FNMB00 135516 GLOBAL SYMBOL 110> GETV00 132452 GLOBAL SYMBOL 110> INIT00 137430 GLOBAL SYMBOL 110> INIT01 137454 GLOBAL SYMBOL 110> INIT02 136764 GLOBAL SYMBOL 110> INIT03 137002 GLOBAL SYMBOL 110> INIT10 137200 GLOBAL SYMBOL 110> INIT13 137142 GLOBAL SYMBOL 110> JUNK00 131376 GLOBAL SYMBOL 110> LOAD00 142760 GLOBAL SYMBOL 110> OLD01 132770 GLOBAL SYMBOL 110> OLD02 133012 GLOBAL SYMBOL 110> PCK00 127614 GLOBAL SYMBOL 110> PCK03 130414 GLOBAL SYMBOL 110> PRLN00 135750 GLOBAL SYMBOL 110> PRLN01 135754 GLOBAL SYMBOL 110> PRNT00 130556 GLOBAL SYMBOL 110> PRN00 131334 GLOBAL SYMBOL 110> PUSH00 131460 GLOBAL SYMBOL 110> SCR00 132064 GLOBAL SYMBOL 110> SKIP00 131350 GLOBAL SYMBOL 110> SLDN 143604 GLOBAL SYMBOL 110> SLDN01 143622 GLOBAL SYMBOL 110> SLUP 143544 GLOBAL SYMBOL 110> SLUP01 143562 GLOBAL SYMBOL 110> SQU00 132114 GLOBAL SYMBOL 110> 00vw{| SRCHFL 135410 GLOBAL SYMBOL 110> SRCH00 132264 GLOBAL SYMBOL 110> SRL00 131546 GLOBAL SYMBOL 110> STRL00 131770 GLOBAL SYMBOL 110> TSTU00 133604 GLOBAL SYMBOL 110> TST00 131266 GLOBAL SYMBOL 110> UNLD01 143434 GLOBAL SYMBOL 110 @ LISTING OF BSCBUG.STB 01/21/82 15:55:23@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> VECTAB 143650 GLOBAL SYMBOL 110> CALL00 144516 GLOBAL SYMBOL 110> CATXT 150220 GLOBAL SYMBOL 110> CDIS 147546 GLOBAL SYMBOL 110> CHKMFT 150776 GLOBAL SYMBOL 110> CPOS 147652 GLOBAL SYMBOL 110> CQNAM 150256 GLOBAL SYMBOL 110> CQTXT 150042 GLOBAL SYMBOL 110> GETARG 143670 GLOBAL SYMBOL 110> GTRGPI 144170 GLOBAL SYMBOL 110> INSTRG 144664 GLOBAL SYMBOL 110> MATXT 150114 GLOBAL SYMBOL 110> MDIS 147442 GLOBAL SYMBOL 110> MPOS 147616 GLOBAL SYMBOL 110> MQTXT 147724 GLOBAL SYMBOL 110> NSTORE 144246 GLOBAL SYMBOL 110> OPLB00 145364 GLOBAL SYMBOL 110> PARCHK 144646 GLOBAL SYMBOL 110> RATXT 150240 GLOBAL SYMBOL 110> RDIS 147574 GLOBAL SYMBOL 110> RPOS 147672 GLOBAL SYMBOL 110> RQNAM 150314 GLOBAL SYMBOL 110> RQTXT 150062 GLOBAL SYMBOL 110> SPAWNB 150474 GLOBAL SYMBOL 110> SSTORE 144272 GLOBAL SYMBOL 110> ALOG 151132 GLOBAL SYMBOL 110> ALOG10 151126 GLOBAL SYMBOL 110> ATAN 151424 GLOBAL SYMBOL 110> ATAN2 151314 GLOBAL SYMBOL 110> COS 151662 GLOBAL SYMBOL 110> EXP 152066 GLOBAL SYMBOL 110> SIN 151676 GLOBAL SYMBOL 110> SQRT 152312 GLOBAL SYMBOL 110> INIT12 152406 GLOBAL SYMBOL 110> ANS1 002656 GLOBAL SYMBOL 110> ARGERR 104446 GLOBAL SYMBOL 110> ATTDET 001116 GLOBAL SYMBOL 110> A.BFSR 000004 GLOBAL SYMBOL 110> A.DFBC 000100 GLOBAL SYMBOL 110> A.DFDR 000050 GLOBAL SYMBOL 110> A.DFUI 000102 GLOBAL SYMBOL 110> A.DPB 000014 GLOBAL SYMBOL 110> A.EFSR 000006 GLOBAL SYMBOL 110> A.FIPR 000012 GLOBAL SYMBOL 110> A.IOST 000044 GLOBAL SYMBOL 110> A.OWUI 000010 GLOBAL SYMBOL 110> BOLNHD 002572 GLOBAL SYMBOL 110> BRFLAG 002530 GLOBAL SYMBOL 110> B.BBFS 000010 GLOBAL SYMBOL 110> B.BFST 000015 GLOBAL SYMBOL 110> B.NXBD 000012 GLOBAL SYMBOL 110> B.VBN 000004 GLOBAL SYMBOL 110> CALERR 104445 GLOBAL SYMBOL 110> CH.AND 000001 GLOBAL SYMBOL 00_`cTADATADATA 110> CLOSER 104443 GLOBAL SYMBOL 110 @ LISTING OF BSCBUG.STB 01/21/82 15:55:27@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> CLSERR 104440 GLOBAL SYMBOL 110> COMERR 104464 GLOBAL SYMBOL 110> COMFDB 002150 GLOBAL SYMBOL 110> COMFNB 002310 GLOBAL SYMBOL 110> COUNT 002650 GLOBAL SYMBOL 110> CR 000015 GLOBAL SYMBOL 110> CSBUFF 002422 GLOBAL SYMBOL 110> CSBUFL 002472 GLOBAL SYMBOL 110> CSBUFS 000050 GLOBAL SYMBOL 110> CSDSPT 002354 GLOBAL SYMBOL 110> CSIBLK 002346 GLOBAL SYMBOL 110> CSIERR 104434 GLOBAL SYMBOL 110> DATI 002610 GLOBAL SYMBOL 110> DEFERR 104417 GLOBAL SYMBOL 110> DIMERR 104415 GLOBAL SYMBOL 110> DMDERR 104421 GLOBAL SYMBOL 110> DMVERR 104416 GLOBAL SYMBOL 110> DVFERR 104502 GLOBAL SYMBOL 110> D.DFDV 000024 GLOBAL SYMBOL 110> D.DFID 000016 GLOBAL SYMBOL 110> D.DFUN 000026 GLOBAL SYMBOL 110> ECHOFL 002545 GLOBAL SYMBOL 110> ENDSTK 002536 GLOBAL SYMBOL 110> ENDTXT 002570 GLOBAL SYMBOL 110> ENDUSR 002606 GLOBAL SYMBOL 110> ENUDAT 002576 GLOBAL SYMBOL 110> ENUSAV 002612 GLOBAL SYMBOL 110> EOFERR 104442 GLOBAL SYMBOL 110> ERRBRN 001026 GLOBAL SYMBOL 110> ERRR02 001006 GLOBAL SYMBOL 110> ERRR03 001000 GLOBAL SYMBOL 110> ERRR05 001014 GLOBAL SYMBOL 110> EXFERR 104432 GLOBAL SYMBOL 110> FACERR 104457 GLOBAL SYMBOL 110> FA.APD 000100 GLOBAL SYMBOL 110> FA.CRE 000010 GLOBAL SYMBOL 110> FA.DLK 001000 GLOBAL SYMBOL 110> FA.ENB 100000 GLOBAL SYMBOL 110> FA.EXC 002000 GLOBAL SYMBOL 110> FA.EXT 000004 GLOBAL SYMBOL 110> FA.NSP 000100 GLOBAL SYMBOL 110> FA.POS 010000 GLOBAL SYMBOL 110> FA.RD 000001 GLOBAL SYMBOL 110> FA.RWD 004000 GLOBAL SYMBOL 110> FA.SEQ 040000 GLOBAL SYMBOL 110> FA.SHR 000040 GLOBAL SYMBOL 110> FA.TMP 000020 GLOBAL SYMBOL 110> FA.WCK 020000 GLOBAL SYMBOL 110> FA.WRT 000002 GLOBAL SYMBOL 110> FDBSAV 002512 GLOBAL SYMBOL 110> FD.BLK 000010 GLOBAL SYMBOL 110> FD.CCL 000002 GLOBAL SYMBOL 110> FD.COM 020000 GLOBAL SYMBOL 110> FD.CR 000002 GLOBAL SYMBOL 110> FD.DIR 000010 GLOBAL SYMBOL 110 @ LISTING OF BSCBUG.STB 01/21/82 15:55:31@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> FD.FTN 000001 GLOBAL SYMBOL 110> FD.F11 00vw{| 040000 GLOBAL SYMBOL 110> FD.INS 000010 GLOBAL SYMBOL 110> FD.ISP 002000 GLOBAL SYMBOL 110> FD.MNT 100000 GLOBAL SYMBOL 110> FD.OSP 004000 GLOBAL SYMBOL 110> FD.PLC 000004 GLOBAL SYMBOL 110> FD.PRN 000004 GLOBAL SYMBOL 110> FD.PSE 010000 GLOBAL SYMBOL 110> FD.RAH 000001 GLOBAL SYMBOL 110> FD.RAN 000002 GLOBAL SYMBOL 110> FD.REC 000001 GLOBAL SYMBOL 110> FD.RWM 000001 GLOBAL SYMBOL 110> FD.SDI 000020 GLOBAL SYMBOL 110> FD.SQD 000040 GLOBAL SYMBOL 110> FD.TTY 000004 GLOBAL SYMBOL 110> FD.WBH 000002 GLOBAL SYMBOL 110> FF 000014 GLOBAL SYMBOL 110> FF.CHR 000005 GLOBAL SYMBOL 110> FF.NV 000003 GLOBAL SYMBOL 110> FF.POE 000002 GLOBAL SYMBOL 110> FF.RWD 000001 GLOBAL SYMBOL 110> FF.RWF 000006 GLOBAL SYMBOL 110> FF.SPC 000004 GLOBAL SYMBOL 110> FIXERR 104503 GLOBAL SYMBOL 110> FNMERR 104441 GLOBAL SYMBOL 110> FOFERR 104504 GLOBAL SYMBOL 110> FORERR 104426 GLOBAL SYMBOL 110> FO.APD 000106 GLOBAL SYMBOL 110> FO.MFY 000002 GLOBAL SYMBOL 110> FO.RD 000001 GLOBAL SYMBOL 110> FO.UPD 000006 GLOBAL SYMBOL 110> FO.WRT 000016 GLOBAL SYMBOL 110> FPEXFL 002532 GLOBAL SYMBOL 110> FUFERR 104505 GLOBAL SYMBOL 110> F.ACTL 000076 GLOBAL SYMBOL 110> F.ALOC 000040 GLOBAL SYMBOL 110> F.BBFS 000062 GLOBAL SYMBOL 110> F.BDB 000070 GLOBAL SYMBOL 110> F.BGBC 000057 GLOBAL SYMBOL 110> F.BKDN 000026 GLOBAL SYMBOL 110> F.BKDS 000020 GLOBAL SYMBOL 110> F.BKEF 000050 GLOBAL SYMBOL 110> F.BKP1 000051 GLOBAL SYMBOL 110> F.BKST 000024 GLOBAL SYMBOL 110> F.BKVB 000064 GLOBAL SYMBOL 110> F.CHR 000075 GLOBAL SYMBOL 110> F.CNTG 000034 GLOBAL SYMBOL 110> F.DFNB 000046 GLOBAL SYMBOL 110> F.DSPT 000044 GLOBAL SYMBOL 110> F.DVNM 000134 GLOBAL SYMBOL 110> F.EFBK 000010 GLOBAL SYMBOL 110> F.EFN 000050 GLOBAL SYMBOL 110> F.EOBB 000032 GLOBAL SYMBOL 110> F.ERR 000052 GLOBAL SYMBOL 110 @ LISTING OF BSCBUG.STB 01/21/82 15:55:35@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> F.FACC 000043 GLOBAL SYMBOL 110> F.FFBY 000014 GLOBAL SYMBOL 110> F.FNAM 000110 GLOBAL SYMBOL 110> F.FNB 000102 GLOBAL SYMBOL 110> F.FTYP 000116 GLOBAL SYMBOL 110> F.FVER 000120 GLOBAL SYMBOL 110> F.HIBK 000004 GLOBAL SYMBOL 110> 00_`cTADATADATA F.LUN 000042 GLOBAL SYMBOL 110> F.MBCT 000054 GLOBAL SYMBOL 110> F.MBC1 000055 GLOBAL SYMBOL 110> F.MBFG 000056 GLOBAL SYMBOL 110> F.NRBD 000024 GLOBAL SYMBOL 110> F.NREC 000030 GLOBAL SYMBOL 110> F.OVBS 000030 GLOBAL SYMBOL 110> F.RACC 000016 GLOBAL SYMBOL 110> F.RATT 000001 GLOBAL SYMBOL 110> F.RCNM 000034 GLOBAL SYMBOL 110> F.RCTL 000017 GLOBAL SYMBOL 110> F.RSIZ 000002 GLOBAL SYMBOL 110> F.RTYP 000000 GLOBAL SYMBOL 110> F.SEQN 000100 GLOBAL SYMBOL 110> F.SPDV 000072 GLOBAL SYMBOL 110> F.SPUN 000074 GLOBAL SYMBOL 110> F.STBK 000036 GLOBAL SYMBOL 110> F.UNIT 000136 GLOBAL SYMBOL 110> F.URBD 000020 GLOBAL SYMBOL 110> F.VBN 000064 GLOBAL SYMBOL 110> F.VBSZ 000060 GLOBAL SYMBOL 110> GOERR 104402 GLOBAL SYMBOL 110> HT 000011 GLOBAL SYMBOL 110> ID001 034060 GLOBAL SYMBOL 110> ID002 047516 GLOBAL SYMBOL 110> ID003 034067 GLOBAL SYMBOL 110> IE.DNR 177775 GLOBAL SYMBOL 110> IE.EOF 177766 GLOBAL SYMBOL 110> IE.PRI 177760 GLOBAL SYMBOL 110> IFERR 104412 GLOBAL SYMBOL 110> ILCERR 104403 GLOBAL SYMBOL 110> ILFERR 104433 GLOBAL SYMBOL 110> IMMERR 104465 GLOBAL SYMBOL 110> INPBUF 001162 GLOBAL SYMBOL 110> INPERR 104422 GLOBAL SYMBOL 110> INPQIO 002116 GLOBAL SYMBOL 110> INPSTA 002144 GLOBAL SYMBOL 110> INPT 002062 GLOBAL SYMBOL 110> IN1ERR 104507 GLOBAL SYMBOL 110> IN2ERR 104510 GLOBAL SYMBOL 110> IN3ERR 104511 GLOBAL SYMBOL 110> IO.ATA 001410 GLOBAL SYMBOL 110> IO.DET 002000 GLOBAL SYMBOL 110> IO.KIL 000012 GLOBAL SYMBOL 110> IO.RVB 010400 GLOBAL SYMBOL 110> IO.WVB 011000 GLOBAL SYMBOL 110> LASTEX 002552 GLOBAL SYMBOL 110> LETERR 104410 GLOBAL SYMBOL 110 @ LISTING OF BSCBUG.STB 01/21/82 15:55:39@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> LF 000012 GLOBAL SYMBOL 110> LINEFL 002546 GLOBAL SYMBOL 110> LINEHD 002516 GLOBAL SYMBOL 110> LINELN 002550 GLOBAL SYMBOL 110> LINENO 002520 GLOBAL SYMBOL 110> LINERR 104414 GLOBAL SYMBOL 110> LNKOLD 002056 GLOBAL SYMBOL 110> LNKSAV 001632 GLOBAL SYMBOL 110> LNKTIN 001156 GLOBAL SYMBOL 110> LNNERR 104420 GLOBAL SYMBOL 110> LODERR 104460 GLOBAL SYMBOL 110> LOGERR 104500 GLOBAL SYMBOL 110> LSTLIN 002524 GLOBAL S00vw{|YMBOL 110> MODPB 001050 GLOBAL SYMBOL 110> MOLUN 001046 GLOBAL SYMBOL 110> MPARLS 002622 GLOBAL SYMBOL 110> M.I 001074 GLOBAL SYMBOL 110> M.OLUN 000004 GLOBAL SYMBOL 110> M.ONUM 000016 GLOBAL SYMBOL 110> NB.DEV 000200 GLOBAL SYMBOL 110> NB.DIR 000100 GLOBAL SYMBOL 110> NB.NAM 000004 GLOBAL SYMBOL 110> NB.SD1 000400 GLOBAL SYMBOL 110> NB.SD2 001000 GLOBAL SYMBOL 110> NB.SNM 000040 GLOBAL SYMBOL 110> NB.STP 000020 GLOBAL SYMBOL 110> NB.SVR 000010 GLOBAL SYMBOL 110> NB.TYP 000002 GLOBAL SYMBOL 110> NB.VER 000001 GLOBAL SYMBOL 110> NEWLIN 002474 GLOBAL SYMBOL 110> NXMERR 104430 GLOBAL SYMBOL 110> NXTERR 104427 GLOBAL SYMBOL 110> NXVERR 104506 GLOBAL SYMBOL 110> N.DEVD 000000 GLOBAL SYMBOL 110> N.DID 000024 GLOBAL SYMBOL 110> N.DIRD 000004 GLOBAL SYMBOL 110> N.DVNM 000032 GLOBAL SYMBOL 110> N.FID 000000 GLOBAL SYMBOL 110> N.FNAM 000006 GLOBAL SYMBOL 110> N.FNMD 000010 GLOBAL SYMBOL 110> N.FTYP 000014 GLOBAL SYMBOL 110> N.FVER 000016 GLOBAL SYMBOL 110> N.NEXT 000022 GLOBAL SYMBOL 110> N.STAT 000020 GLOBAL SYMBOL 110> N.UNIT 000034 GLOBAL SYMBOL 110> OINPT 002042 GLOBAL SYMBOL 110> OLDFLG 002560 GLOBAL SYMBOL 110> OPENER 104444 GLOBAL SYMBOL 110> OPLBER 104450 GLOBAL SYMBOL 110> OPLFER 104451 GLOBAL SYMBOL 110> OPNERR 104437 GLOBAL SYMBOL 110> OPRERR 104411 GLOBAL SYMBOL 110> OP.EOF 002504 GLOBAL SYMBOL 110> OP.LEN 002500 GLOBAL SYMBOL 110> OP.LUN 002502 GLOBAL SYMBOL 110 @ LISTING OF BSCBUG.STB 01/21/82 15:55:43@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> OP.MXL 000020 GLOBAL SYMBOL 110> OP.RAC 002506 GLOBAL SYMBOL 110> OP.RTP 002510 GLOBAL SYMBOL 110> OTPT 002064 GLOBAL SYMBOL 110> OUTQIO 002070 GLOBAL SYMBOL 110> OUTSTA 002112 GLOBAL SYMBOL 110> OVFERR 104400 GLOBAL SYMBOL 110> PARERR 104407 GLOBAL SYMBOL 110> PARLST 001030 GLOBAL SYMBOL 110> PRFERR 104456 GLOBAL SYMBOL 110> PRIERR 104455 GLOBAL SYMBOL 110> PRMTFL 002542 GLOBAL SYMBOL 110> PRNERR 104413 GLOBAL SYMBOL 110> PR1 000040 GLOBAL SYMBOL 110> PR2 000100 GLOBAL SYMBOL 110> PR3 000140 GLOBAL SYMBOL 110> PR4 000200 GLOBAL SYMBOL 110> PR5 000240 GLOBAL SYMBOL 110> PR6 00000_`cTADATADATA300 GLOBAL SYMBOL 110> PR7 000340 GLOBAL SYMBOL 110> PS 177776 GLOBAL SYMBOL 110> P.ERCD 000002 GLOBAL SYMBOL 110> P.FCS 000010 GLOBAL SYMBOL 110> P.FLNM 000012 GLOBAL SYMBOL 110> P.FNAM 000014 GLOBAL SYMBOL 110> P.LINE 000006 GLOBAL SYMBOL 110> QFLG 002540 GLOBAL SYMBOL 110> QLUN 002622 GLOBAL SYMBOL 110> QNAM 002640 GLOBAL SYMBOL 110> QSTAT 002626 GLOBAL SYMBOL 110> Q.IOFN 000002 GLOBAL SYMBOL 110> Q.IOPL 000014 GLOBAL SYMBOL 110> REAERR 104423 GLOBAL SYMBOL 110> REMTRM 002476 GLOBAL SYMBOL 110> RETERR 104404 GLOBAL SYMBOL 110> RE1ERR 104424 GLOBAL SYMBOL 110> RE2ERR 104425 GLOBAL SYMBOL 110> RNDM 002534 GLOBAL SYMBOL 110> RPASFL 002543 GLOBAL SYMBOL 110> RUNF 002526 GLOBAL SYMBOL 110> R.FIX 000001 GLOBAL SYMBOL 110> R.SEQ 000003 GLOBAL SYMBOL 110> R.VAR 000002 GLOBAL SYMBOL 110> SBSERR 104405 GLOBAL SYMBOL 110> SCOUNT 001624 GLOBAL SYMBOL 110> SETERR 104463 GLOBAL SYMBOL 110> SLPERR 104452 GLOBAL SYMBOL 110> SOTPT 001616 GLOBAL SYMBOL 110> SQRERR 104501 GLOBAL SYMBOL 110> STCOUN 002522 GLOBAL SYMBOL 110> STFONX 002602 GLOBAL SYMBOL 110> STGOSB 002600 GLOBAL SYMBOL 110> STOERR 104447 GLOBAL SYMBOL 110> STRERR 104435 GLOBAL SYMBOL 110> STRIN 002644 GLOBAL SYMBOL 110 @ LISTING OF BSCBUG.STB 01/21/82 15:55:47@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> STROUT 002644 GLOBAL SYMBOL 110> STUDAT 002574 GLOBAL SYMBOL 110> STUEPT 002562 GLOBAL SYMBOL 110> STUFDB 002604 GLOBAL SYMBOL 110> STUROU 002564 GLOBAL SYMBOL 110> STXERR 104436 GLOBAL SYMBOL 110> SUBERR 104406 GLOBAL SYMBOL 110> SWR 177570 GLOBAL SYMBOL 110> S.AND 000310 GLOBAL SYMBOL 110> S.BAS 000140 GLOBAL SYMBOL 110> S.BFHD 000020 GLOBAL SYMBOL 110> S.DATA 000167 GLOBAL SYMBOL 110> S.ECHO 000322 GLOBAL SYMBOL 110> S.ELSE 000316 GLOBAL SYMBOL 110> S.EOL1 000374 GLOBAL SYMBOL 110> S.EOL2 000377 GLOBAL SYMBOL 110> S.EOS1 000375 GLOBAL SYMBOL 110> S.EOS2 000376 GLOBAL SYMBOL 110> S.EQV 000314 GLOBAL SYMBOL 110> S.EXC 000150 GLOBAL SYMBOL 110> S.FATT 000016 GLOBAL SYMBOL 110> S.FDB 000140 GLOBAL SYMBOL 110> S.FIDS 000014 GLOBAL SYMBOL 110> S.FN 000304 GLOBAL SYMBOL 110> 00vw{|S.FNAM 000006 GLOBAL SYMBOL 110> S.FNB 000036 GLOBAL SYMBOL 110> S.FNBW 000017 GLOBAL SYMBOL 110> S.FNTY 000004 GLOBAL SYMBOL 110> S.FSR2 000104 GLOBAL SYMBOL 110> S.FTYP 000002 GLOBAL SYMBOL 110> S.GOSB 000146 GLOBAL SYMBOL 110> S.GOTO 000143 GLOBAL SYMBOL 110> S.IF 000142 GLOBAL SYMBOL 110> S.IMP 000313 GLOBAL SYMBOL 110> S.NEXT 000145 GLOBAL SYMBOL 110> S.NFBO 000303 GLOBAL SYMBOL 110> S.NFEN 000020 GLOBAL SYMBOL 110> S.NFST 000265 GLOBAL SYMBOL 110> S.NOT 000307 GLOBAL SYMBOL 110> S.OFF 000315 GLOBAL SYMBOL 110> S.ON 000164 GLOBAL SYMBOL 110> S.OR 000312 GLOBAL SYMBOL 110> S.PRIN 000152 GLOBAL SYMBOL 110> S.PRMT 000317 GLOBAL SYMBOL 110> S.REM 000151 GLOBAL SYMBOL 110> S.RPAL 000320 GLOBAL SYMBOL 110> S.SAEN 000264 GLOBAL SYMBOL 110> S.SAST 000252 GLOBAL SYMBOL 110> S.SFEN 000251 GLOBAL SYMBOL 110> S.SFST 000223 GLOBAL SYMBOL 110> S.STEP 000204 GLOBAL SYMBOL 110> S.THEN 000305 GLOBAL SYMBOL 110> S.TO 000306 GLOBAL SYMBOL 110> S.TRAC 000162 GLOBAL SYMBOL 110> S.VBEN 000222 GLOBAL SYMBOL 110 @ LISTING OF BSCBUG.STB 01/21/82 15:55:51@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> S.WPAL 000321 GLOBAL SYMBOL 110> S.XOR 000311 GLOBAL SYMBOL 110> TCOUNT 001376 GLOBAL SYMBOL 110> TF.RAL 000010 GLOBAL SYMBOL 110> TF.RNE 000020 GLOBAL SYMBOL 110> TF.WAL 000010 GLOBAL SYMBOL 110> TIMBUF 001076 GLOBAL SYMBOL 110> TINPT 001142 GLOBAL SYMBOL 110> TMOERR 104454 GLOBAL SYMBOL 110> TM1ERR 104476 GLOBAL SYMBOL 110> TM2ERR 104477 GLOBAL SYMBOL 110> TOTPT 001370 GLOBAL SYMBOL 110> TRCFLG 002541 GLOBAL SYMBOL 110> TRMSIZ 000204 GLOBAL SYMBOL 110> UICSTO 002554 GLOBAL SYMBOL 110> UNLDSV 002614 GLOBAL SYMBOL 110> UNMERR 104431 GLOBAL SYMBOL 110> UNRERR 104401 GLOBAL SYMBOL 110> USR 002566 GLOBAL SYMBOL 110> VALERR 104512 GLOBAL SYMBOL 110> VFIERR 104461 GLOBAL SYMBOL 110> VOPERR 104462 GLOBAL SYMBOL 110> VT 000013 GLOBAL SYMBOL 110> WATERR 104453 GLOBAL SYMBOL 110> WORK 002514 GLOBAL SYMBOL 110> WPASFL 002544 GLOBAL SYMBOL 110> WTMAG 002620 GLOBAL SYMBOL 110> WTUNIT 002616 GLOBAL SYMBOL 110> $DSW 000000 GLOBAL SYMBOL 11000_`cTADATADATAz 8SD8 ~H9xHZ:<H:H:H€:_HȀ:`H΀:(}H:HԀ:ZHȀ5HHz#r0H0r0HBrXHbu0H#w0HNw0HRw0Ha WHa \H+H#H6xHzy}Hy:HփH ""H&zt HN (H %HB 2&H( (HD PdH (H :H `H$ HXH~V/KHX H(H TH zH""H%tHwH#""H %""H4%"&Hh%'H-ZHH 6H)[MH ) H2)PH8),H/)nEH)sEHz)EH()_GH))GH)2HH4)4H=)ZH)'H&)TyH$)H\)%H)'H()^H)PsH*)H#)%H z)WHH)WHB)HN)ZHP)8H)pH") H,) H-)w H.)pH)KqH)H)H)t H)Hz)H)BxH)H)!H@)dH:)VgH<)[}H)XH^)pH)H4)H0.PsH 5H 8XH058HJUz8H85$9BH$9!H$9fH59PsH #:""H&:""HU:""H5:Hr:""H:kHN:yHd:}H2:""HG:""HHz:""HI:a H:H:4FH :sH:2H;K}HnK""HKH vL< HjvL HNvL.!HlvL!HPvL""H ;M_H.z;MvH;Mv~Hn>M""H\M""H0_M""H@oM%HoMg'HhoM NHoMYHoMyH NvLHTSPdH(SpH&SsrHUH<zUVNHUZHWHWzH@WWHWwHWwHWxH WyHWBzHWHWZH_XvLH<M[""HT[""HzV[""HF["H[8H[;H[H[8H[WH[YH[H [ZH[#H[<}H[XH6_ gH"_g'HtzE`ZXH$L`Z H(L`Z&H)N`""HR`""H \`!HD\`KH@\`VNHB\` UH\`pHF\`sHH`}H4akH8ayHJ6a""Hz:d""H:d NHf""H.f""H-f}Hbf""H fH fH@fH`fHfHfHfHfHehpHzfhHfh=MH fhWH lhu:H\q""Hgq""Hhq""Hz00{|r@QH\swHcs%HVtv~ gHb""H,'""H>(""H?l gHg'HaBxHyHp|Hz}""H""HЅ`'HfJHz""HJy""H1""H2H ""H6""H+*DHLAwHdXHXHsHBA1.TSK=RSXBASIC.TSKBA2.TSK=RSXBASIC.TSKBA3.TSK=RSXBASIC.TSKne after the page header was improperly justified.H.le;_.NO FLAGS EQUATION causeed an infinite loop if preceded by _.FLAGS EQUATION. O.le;_.TEXT would sometimes lose sections of the input text if _.SKIP or _.BLANK occured at the end of a page.b>.le;6 .MAIN. MACRO Y05.02 Thursday 28-Aug-86 17:51 Page 1> 1 ; generate error messages for use with 11m version 2 ;M 3 ; This generates a table of error messages, along with a table of= 4 ; message numbers, starting addresses and lengths 5 ;P 6 ; If we include message numbers, error routine can search thru tableT 7 ; and skip over error numbers for which there is no message, thus making" 8 ; text storage minimum 9 ;N' 10 ; F. borger August 27, 1986 11 ; 12 ;a 13 .macro err a bh 14 .psect mestxt 15 aaaaaa=.n 16 .asciz ?b?e 17 bbbbbb=.b 18 .psect mestbl# 19 .word a ;error numberg 20 .word aaaaaa  21 .endm 22 ;r3 23 ; put error messages in their own psect 24 ;r1 25 000000 .psect mestxt,rw,i,gbl,rel,coni6 26 000000 mestxt:: ;start of ascii messages 27 ;.; 28 ; and put the number/address table in its psect 29 ; 1 30 000000 .psect mestbl,rw,i,gbl,rel,cona- 31 000000 mestbl:: ;start of table 32 ; - 33 ; Now generate error messagese 34 ; 6 35 000000 err 0. < - User Storage overflow>H 36 000004 err 1. < - Unrecognized statement - check spelling>6 37 000010 err 2. < - Illegal GOTO or GOSUB>O 38 000014 err 3. < - Illegal character in or terminating input line> 5 39 000020 err 4. < - RETURN Without GOSUB>27 40 000024 err 5. < - Badly formed subscript>o7 41 000030 err 6. < - Subscript out of range>37 42 000034 err 7. < - Mismatched parentheses>6 43 000040 err 8. < - Illegal LET statement>B 44 000044 err 9. < - Illegal relational operator in IF>+ 45 000050 err 10. < - Illegal IF> . 46 000054 err 11. < - Illegal PRINT>> 47 000060 err 12. < - Device or File error on input>. 48 000064 err 13. < - Bad DIMENSION>I 49 000070 err 14. < - Not enough room in storage for the array> 4 50 000074 err 15. < - Badly formed define>G 51 000100 err 16. < - Illegal line number or dimension value>eE 52 000104 err 17. < - DIM of previously used variable name>e; 53 000110 err 18. < - Bad variable in input list> : 54 000114 err 19. < - Bad variable in read list>8 55 000120 err 00_`cTADATADATA20. < - Out of data during read>= 56 000124 err 21. < - Bad data in a data statement>46 57 000130 err 22. < - Illegal FOR statement>8 .MAIN. MACRO Y05.02 Thursday 28-Aug-86 17:51 Page 1-1= 58 000134 err 23. < - No NEXT without matching FOR>m1 59 000140 err 24. < - NEXT without FOR> > 60 000144 err 25. < - Unmatched quotes in statement>F 61 000150 err 26. < - External function not properly set up>8 62 000154 err 27. < - Badly formed expression>D 63 000160 err 28. < - Error in command string interpreter>3 64 000164 err 29. < - SBS function error>a9 65 000170 err 30. < - Syntax error in function>15 66 000174 err 31. < - Syntax error in OPEN>N6 67 000200 err 32. < - Syntax error in CLOSE>4 68 000204 err 33. < - Invalid file number>2 69 000210 err 34. < - End of file error>7 70 000214 err 35. < - FCS error during CLOSE> 6 71 000220 err 36. < - FCS error during OPEN>= 72 000224 err 37. < - Error during CALL processing>e< 73 000230 err 38. < - Error in CALL argument list>E 74 000234 err 39. < - Error in store during called routine> K 75 000240 err 40. < - Syntax error or LUN in use in library open>xJ 76 000244 err 41. < - FCS error during library open or 1st read>> 77 000250 err 42. < - Syntax error in SLEEP command>= 78 000254 err 43. < - Syntax error in WAIT command>rL 79 000260 err 44. < - Timeout error - you waited too long to type>/ 80 000264 err 45. < - Priority error> 9 81 000270 err 46. < - Basic program file error> A 82 000274 err 47. < - File access mode error (seq/ran)> @ 83 000300 err 48. < - Error in loaded user subroutine>> 84 000304 err 49. < - Virtual access error from fcs>A 85 000310 err 50. < - Virtual file open error from fcs> 5 86 000314 err 51. < - Error in set command>dM 87 000320 err 52. < - Use of "/co" switch with normal basic source>>F 88 000324 err 53. < - Immediate mode command in source text>8 89 000330 err 54. < - Variable type mis-match>I 90 000334 err 62. < - Debugging error #1 - tell system manager>8I 91 000340 err 63. < - Debugging error #2 - tell system manager>t? 92 000344 err 64. < - Log of negative or zero number>a? 93 000350 err 65. < - Square root of negative number>oE 94 000354 err 66. < - Under/overflow in multiply or divide> 8 95 000360 err 67. < - Number too large to fix>2 96 000364 err 68. < - Floating overflow>3 97 000370 err 69. < - Floating underflow>96 98 000374 err 70. < - Non-existent variable>4 99 000400 err 71. < - Too much data typed>6 100 000404 err 72. < - Not enough data typed>< 101 000410 err 73. < - Illegal characters on input>8 102 000414 err 74. < - Error in value function> 103 000001 .end8 .MAIN. MACRO Y05.02 Thursday 28-Aug-86 17:51 Page 1-2 Symbol table_AAAAAA= 004024R 002 BBBBBB= 004057R 002 MESTBL 000000RG 003 MESTXT 000000RG 002 '. ABS. 000000 000 (RW,I,GBL,ABS,OVR)4' 000000 001 (RW,I,LCL,REL,CON)'MESTXT 004057 002 (RW,I,GBL,REL,CON)d'MESTBL 000420 003 (RW,I,GBL,REL,CON) Errors detected: 0e*** Assembler statisticsWork file reads: 0Work file writes: 0*Size of work file: 8340 Words ( 33 Pages)+Size of core pool: 19714 Words ( 75 Pages)0/Operating system: RSX-11M/PLUS (Under VAX/VMS)t Elapsed time: 00:00:15.010BSCERR11M,BSCERR11M=BSCERR11MLliteral define with .listD; i.e .list "o", then the next time .list was called without the "o"-; the literal field would not be cleared out.5; Dan L. Eisner, Perkin-Elmer Corp., Garden Grove, CA;-483,,/;DLE001/ mov lstkp,r0 ; Set pointer1 c00{|2; generate error messages for use with 11m version;A; This generates a table of error messages, along with a table of1; message numbers, starting addresses and lengths;D; If we include message numbers, error routine can search thru tableH; and skip over error numbers for which there is no message, thus making; text storage minimum;; F. borger August 27, 1986;; .macro err a b .psect mestxt aaaaaa=. .asciz ?b? bbbbbb=. .psect mestbl .word a ;error number .word aaaaaa .endm;'; put error messages in their own psect; .psect mestxt,rw,i,gbl,rel,con$mestxt:: ;start of ascii messages;/; and put the number/address table in its psect; .psect mestbl,rw,i,gbl,rel,conmestbl:: ;start of table ;!; Now generate error messages;$ err 0. < - User Storage overflow>6 err 1. < - Unrecognized statement - check spelling>$ err 2. < - Illegal GOTO or GOSUB>= err 3. < - Illegal character in or terminating input line># err 4. < - RETURN Without GOSUB>% err 5. < - Badly formed subscript>% err 6. < - Subscript out of range>% err 7. < - Mismatched parentheses>$ err 8. < - Illegal LET statement>0 err 9. < - Illegal relational operator in IF> err 10. < - Illegal IF> err 11. < - Illegal PRINT>, err 12. < - Device or File error on input> err 13. < - Bad DIMENSION>7 err 14. < - Not enough room in storage for the array>" err 15. < - Badly formed define>5 err 16. < - Illegal line number or dimension value>3 err 17. < - DIM of previously used variable name>) err 18. < - Bad variable in input list>( err 19. < - Bad variable in read list>& err 20. < - Out of data during read>+ err 21. < - Bad data in a data statement>$ err 22. < - Illegal FOR statement>+ err 23. < - No NEXT without matching FOR> err 24. < - NEXT without FOR>, err 25. < - Unmatched quotes in statement>4 err 26. < - External function not properly set up>& err 27. < - Badly formed expression>2 err 28. < - Error in command string interpreter>! err 29. < - SBS function error>' err 30. < - Syntax error in function># err 31. < - Syntax error in OPEN>$ err 32. < - Syntax error in CLOSE>" err 33. < - Invalid file number> err 34. < - End of file error>% err 35. < - FCS error during CLOSE>$ err 36. < - FCS error during OPEN>+ err 37. < - Error during CALL processing>* err 38. < - Error in CALL argument list>3 err 39. < - Error in store during called routine>9 err 40. < - Syntax error or LUN in use in library open>8 err 41. < - FCS error during library open or 1st read>, err 42. < - Syntax error in SLEEP command>+ err 43. < - Syntax error in WAIT command>: err 44. < - Timeout error - you waited too long to type> err 45. < - Priority error>' err 46. < - Basic program file error>/ err 47. < - File access mode error (seq/ran)>. err 48. < - Error in loaded user subroutine>, err 49. < - Virtual access error from fcs>/ err 50. < - Virtual file open error from fcs># err 51. < - Error in set command>; err 52. < - Use of "/co" switch with normal basic source>4 err 53. < - Immediate mode command in source text>& err 54. < - Variable type mis-match>7 err 62. < - Debugging error #1 - tell system manager>7 err 63. < - Debugging error #2 - tell system manager>- err 64. < - Log of negative or zero number>- err 65. < - Square root of negative number>3 err 66. < - Under/overflow in multiply or divide>& err 67. < - Number too large to fix> err 68. < - Floating overflow>! err 69. < - Floating underflow>$ err 70. < - Non-existent variable>" err 71. < - Too much data typed>$ err 72. < - Not enough data typed>* err 73. < - Illegal characters on input>& err 74. < - Error in value function> .endput CR/LF (1=yes) (default=1)&; /EV 100 Output even pages (1=yes)%; /OD 200 Output odd pages (1=yes)); /DE 400 Type all input lines (1=yes)?; /TT 1000 Do write all to output device. (1=yes) (default=1) ; /2P 2000 Do 2 passes (1=yes)(00_`cTADATADATAB :D RԀ`/RԀhR\}`R\}h RԀ - User Storage overflow R\} RԀRԀ/ - Unrecognized statement - check spellinge R\} RԀRԀDD - Illegal GOTO or GOSUB R\}D RԀDRԀ]6] - Illegal character in or terminating input line R\}  ] RԀ]RԀ - RETURN Without GOSUB R\} RԀRԀ - Badly formed subscript R\} RԀRԀ - Subscript out of range R\} RԀRԀ - Mismatched parentheses R\} RԀRԀ - Illegal LET statement R\}   RԀRԀ) - Illegal relational operator in IF R\}$$  RԀRԀ33 - Illegal IF R\}(( 3 RԀ3RԀAA - Illegal PRINTU R\},, A RԀARԀR%R - Device or File error on input R\}00 R RԀRRԀss - Bad DIMENSIONg R\}44 s RԀsRԀ0 - Not enough room in storage for the array R\}88 RԀRԀ - Badly formed define R\}<< RԀRԀ. - Illegal line number or dimension value R\}@@ RԀRԀ, - DIM of previously used variable name R\}DD RԀRԀ" - Bad variable in input list R\}HH RԀRԀ7!7 - Bad variable in read listB R\}LL7 RԀ7RԀTT - Out of data during read R\}PPT RԀTRԀo$o - Bad data in a data statement R\}TTo RԀoRԀ - Illegal FOR statementI R\}XX RԀRԀ$ - No NEXT without matching FOR R\}\\ RԀRԀ - NEXT without FOR R\}`` RԀRԀ% - Unmatched quotes in statement R\}dd RԀRԀ- - External function not properly set upR R\}hh RԀRԀ&& - Badly formed expressionR R\}ll& RԀ&RԀA+A - Error in command string interpreter R\}ppA RԀARԀhh - SBS function error R\}tth RԀhRԀ~ ~ - Syntax error in function R\}xx~ RԀ~RԀ - Syntax error in OPEN R\}|| RԀRԀ - Syntax error in CLOSE R\}  RԀRԀ - Invalid file number R\}! RԀRԀ - End of file error} R\}" RԀRԀ - FCS error during CLOSE R\}# RԀRԀ - FCS error during OPEN R\}$ RԀRԀ*$* - Error during CALL processing R\}%* RԀ*RԀJ#J - Error in CALL argument list R\}&J RԀJRԀi,i - Error in store during called routine R\}'i RԀiRԀ2 - Syntax error or LUN in use in library open R\}( RԀRԀ1 - FCS error during library open or 1st readS R\}) RԀRԀ% - Syntax error in SLEEP command R\}* RԀRԀ $  - Syntax error in WAIT command R\}+  RԀ RԀ-3- - Timeout error - you waited too long to type R\},- RԀ-RԀ\\ - Priority error R\}-\ RԀ\RԀn n - Basic program file error R\}.n RԀnRԀ( - File access mode error (seq/ran) R\}/ RԀRԀ' - Error in loaded user subroutinea R\}0 RԀRԀ% - Virtual access error from fcsa R\}1 RԀRԀ( - Virtual file open error from fcs R\}200{| RԀRԀ - Error in set command R\}3 RԀRԀ.4. - Use of "/co" switch with normal basic source R\}4. RԀ.RԀ^-^ - Immediate mode command in source textr R\}5^ RԀ^RԀ - Variable type mis-match R\}6 RԀRԀ0 - Debugging error #1 - tell system manager R\}> RԀRԀ0 - Debugging error #2 - tell system manager R\}? RԀRԀ& - Log of negative or zero number R\}@ RԀRԀ& - Square root of negative number R\}A RԀRԀ>,> - Under/overflow in multiply or divide R\}B> RԀ>RԀff - Number too large to fix R\}Cf RԀfRԀ - Floating overflow R\}D RԀRԀ - Floating underflow R\}E RԀRԀ - Non-existent variableR R\}F RԀRԀ - Too much data typed R\}G RԀRԀ - Not enough data typed R\}H RԀRԀ# - Illegal characters on input R\}I RԀRԀ - Error in value function R\}  J  RԀ 0. User storage overflow- 1. Unrecognized statement - check spelling 2. Illegal GOTO or GOSUB4 3. Illegal character in or terminating input line 4. RETURN without GOSUB 5. Badly formed subscript 6. Subscript out of range 7. Mismatched parentheses 8. Illegal LET statement' 9. Illegal relational operator in IF 10. Illegal IF 11. Illegal print# 12. Device or file error on input 13. Bad dimension. 14. Not enough room in storage for the array 15. Badly formed define, 16. Illegal line number or dimension value* 17. DIM of previously used variable name 18. Bad variable in input list 19. Bad variable in read list 20. Out of data during read" 21. Bad data in a DATA statement 22. Illegal FOR statement" 23. No NEXT without matching FOR 24. Next without FOR# 25. Unmatched quotes in statement+ 26. External function not properly set up 27. Badly formed expression) 28. Error in command string interpreter 29. SBS function error 30. Syntax error in function 31. Syntax error in OPEN 32. Syntax error in CLOSE 33. Invalid file number 34. End of file error 35. FCS error during close 36. FCS error %d during open" 37. Error during call processing! 38. Error in call argument list* 39. Error in store during called routine0 40. Syntax error or lun in use in library open/ 41. FCS error during library open or 1st read# 42. Syntax error in SLEEP command" 43. Syntax error in WAIT command1 44. Timeout error - you waited too long to type 45. Priority error 46. Basic program file error& 47. File access mode error (seq/ran)% 48. Error in loaded user subroutine# 49. Virtual access error from FCS& 50. Virtual file open error from FCS 51. Error in SET command2 52. Use of "/co" switch with normal basic source+ 53. Immediate mode command in source text 54. Variable type mis-match. 62. Debugging error #1 - call system manager. 63. Debugging error #2 - call system manager$ 64. Log of negative or zero number$ 65. Square root of negative number 66. Floating divide by zero 67. Number too large to fix 68. Floating overflow 69. Floating underflow 70. Non-existent variable 71. Too much data typed 72. Not enough data typed! 73. Illegal characters on input 74. Error in value function00_`cTADATADATA 1}MICHAEL REESE MEDICAL CENTER - - - DEPARTMENT OF MEDICAL PHYSICS COMPUTER BSCERRNUM.DOC;5 PAGE 1ILLISTING OF DP0:[001,202]BSCERRNUM.DOC;5 ON 4-NOV-80 AT 14:27:20 PAGE 1? 0. USER STORAGE OVERFLOW O? 1. UNRECOGNIZED STATEMENT - CHECK SPELLING ? 2. ILLEGAL GOTO OR GOSUB X? 3. ILLEGAL CHARACTER IN OR TERMINATING INPUT LINE E? 4. RETURN WITHOUT GOSUB T? 5. BADLY FORMED SUBSCRIPT ? 6. SUBSCRIPT OUT OF RANGE E? 7. MISMATCHED PARENTHESES ? 8. ILLEGAL LET STATEMENT ? 9. ILLEGAL RELATIONAL OPERATOR IN IF ? 10. ILLEGAL IF ? 11. ILLEGAL PRINT ? 12. DEVICE OR FILE ERROR %D ON INPUT ? 13. BAD DIMENSION ? 14. NOT ENOUGH ROOM IN STORAGE FOR THE ARRAY ? 15. BADLY FORMED DEFINE ? 16. ILLEGAL LINE NUMBER OR DIMENSION VALUE ? 17. DIM OF PREVIOUSLY USED VARIABLE NAME ? 18. BAD VARIABLE IN INPUT LIST ? 19. BAD VARIABLE IN READ LIST ? 20. OUT OF DATA DURING READ ? 21. BAD DATA IN A DATA STATEMENT ? 22. ILLEGAL FOR STATEMENT ? 23. NO NEXT WITHOUT MATCHING FOR ? 24. NEXT WITHOUT FOR ? 25. UNMATCHED QUOTES IN STATEMENT ? 26. EXTERNAL FUNCTION NOT PROPERLY SET UP ? 27. BADLY FORMED EXPRESSION ? 28. ERROR IN COMMAND STRING INTERPRETER ? 29. SBS FUNCTION ERROR ? 30. SYNTAX ERROR IN FUNCTION ? 31. SYNTAX ERROR IN OPEN ? 32. SYNTAX ERROR IN CLOSE ? 33. INVALID FILE NUMBER ? 34. END OF FILE ERROR ? 35. FCS ERROR %D DURING CLOSE ? 36. FCS ERROR %D DURING OPEN ? 37. ERROR DURING CALL PROCESSING ? 38. ERROR IN CALL ARGUMENT LIST ? 39. ERROR IN STORE DURING CALLED ROUTINE ? 40. SYNTAX ERROR OR LUN IN USE IN LIBRARY OPEN ? 41. FCS ERROR %D DURING LIBRARY OPEN OR 1ST READ ? 42. SYNTAX ERROR IN SLEEP COMMAND ? 43. SYNTAX ERROR IN WAIT COMMAND ? 44. TIMEOUT ERROR - YOU WAITED TOO LONG TO TYPE ? 45. PRIORITY ERROR ? 46. BASIC PROGRAM FILE ERROR %D ? 47. FILE ACCESS MODE ERROR (SEQ/RAN) ? 48. ERROR IN LOADED USER SUBROUTINE ? 49. VIRTUAL ACCESS ERROR - FCS %D ? 50. VIRTUAL FILE OPEN ERROR - FCS %D ? 51. ERROR IN SET COMMAND ? 52. USE OF "/CO" SWITCH WITH NORMAL BASIC SOURCE ? 53. IMMEDIATE MODE COMMAND IN SOURCE TEXT  I}MICHAEL REESE MEDICAL CENTER - - - DEPARTMENT OF MEDICAL PHYSICS COMPUTER BSCERRNUM.DOC;5 PAGE 2RLLISTING OF DP0:[001,202]BSCERRNUM.DOC;5 ON 4-NOV-80 AT 14:27:20 PAGE 2? 54. ? 55. 00 {| A? 56. C? 57. M? 58. T? 59. ? 60. E? 61. ? 62. DEBUG #1 AT R3=%P R0=%P R4=%P ? 63. DEBUGGING ERROR #2 - CALL SYSTEM MANAGER ? 64. LOG OF NEGATIVE OR ZERO NUMBER ? 65. SQUARE ROOT OF NEGATIVE NUMBER ? 66. FLOATING DIVIDE BY ZERO ? 67. NUMBER TOO LARGE TO FIX ? 68. FLOATING OVERFLOW ? 69. FLOATING UNDERFLOW ? 70. NON-EXISTENT VARIABLE ? 71. TOO MUCH DATA TYPED ? 72. NOT ENOUGH DATA TYPED ? 73. ILLEGAL CHARACTERS ON INPUT ? 74. ERROR IN VALUE FUNCTION ? 75. NOT ENOUGH DATA TYPED ? 76. ILLEGAL CHARACTERS ON INPUT ? 77. ERROR IN VALUE FUNCTION ? 78. SYNTAX ERROR IN FUNCTION ? 79. SYNTAX ERROR IN OPEN ? 80. ? 81. ? 82. ? 83. ? 84. ? 85. ? 86. ? 87. ? 88. ? 89. ? 90. ? 91. ? 92. ? 93. ? 94. ? 95. ? 96. ? 97. ? 98. ? 99. ? 100. ? 101. ? 102. ? 103. ? 104. ? 105. ? 106. ? 107.  }MICHAEL REESE MEDICAL CENTER - - - DEPARTMENT OF MEDICAL PHYSICS COMPUTER BSCERRNUM.DOC;5 PAGE 3 LLISTING OF DP0:[001,202]BSCERRNUM.DOC;5 ON 4-NOV-80 AT 14:27:20 PAGE 3? 108. ? 109. ? 110. ? 111. ? 112. T? 113. ? 114. 00 _`cTADATADATA E? 115. ? 116. ? 117. ? 118. ? 119. ? 120. ? 121. ? 122. ? 123. ? 124. ? 125. ? 126. ? 127. ? 128. ? 129. ? 130. ? 131. ? 132. ? 133. ? 134. ? 135. ? 136. ? 137. ? 138. ? 139. ? 140. ? 141. ? 142. ? 143. ? 144. ? 145. ? 146. ? 147. ? 148. ? 149. ? 150. ? 151. ? 152. ? 153. ? 154. ? 155. ? 156. ? 157. ? 158. ? 159. ? 160. ? 161.  }MICHAEL REESE MEDICAL CENTER - - - DEPARTMENT OF MEDICAL PHYSICS COMPUTER BSCERRNUM.DOC;5 PAGE 4 LLISTING OF DP0:[001,202]BSCERRNUM.DOC;5 ON 4-NOV-80 AT 14:27:20 PAGE 4? 162. ? 163. ? 164. ? 165. ? 166. T? 167. ? 168. E? 169. ? 170. ? 171. ? 172. ? 00   {| 173. ? 174. ? 175. ? 176. ? 177. ? 178. ? 179. ? 180. ? 181. ? 182. ? 183. ? 184. ? 185. ? 186. ? 187. ? 188. ? 189. ? 190. ? 191. ? 192. ? 193. ? 194. ? 195. ? 196. ? 197. ? 198. ? 199. ? 200. FLOATING OVERFLOW ? 201. ? 202. FLOATING UNDERFLOW ? 203. ? 204. ? 205. ? 206. ? 207. ? 208. ? 209. ? 210. ? 211. LOG OF NEGATIVE OR ZERO VALUE ? 212. SQUARE ROOT OF NEGATIVE VALUE EQUIRE 'DEFINE'.require 'misc' .require "IF".REQUIRE "INDEX".require "TOC" .ifnot small.require "EQATN" .endif small .endif micro.require "charap".require "comnap" .ifnot small.require "errors" .endif small.lm .helpb author LB:[1,1]BSCBUG/LI/ACC=RO&LB:[1,202]BSC.TSK/TASK=...BAS/INC=1024LB:[1,1]BSCPUR/LI/ACC=RO&LB:[1,202]BSC.TSK/TASK=...BAS/INC=1024&LB:[1,202]BSC.TSK/TASK=...BA2/INC=2048&LB:[1,202]BSC.TSK/TASK=...BA3/INC=3072&LB:[1,202]BSC.TSK/TASK=...BA4/INC=4096&LB:[1,202]BSC.TSK/TASK=...BA5/INC=5120&LB:[1,202]BSC.TSK/TASK=...BA6/INC=6144&LB:[1,202]BSC.TSK/TASK=...BA7/INC=7168&LB:[1,202]BSC.TSK/TASK=...BA8/INC=8192&LB:[1,202]BSC.TSK/TASK=...BA9/INC=9216'LB:[1,202]BSC.TSK/TASK=...B10/INC=10240 'LB:[1,202]BSC.TSK/TASK=...B11/INC=11264 'LB:[1,202]BSC.TSK/TASK=...BTW/INC=12288 00   " $ cTADATADATA'LB:[1,202]BSC.TSK/TASK=...BTH/INC=13312.LB:[1,202]BASBRO/TASK=...BBRnchIF.ELS=^o40 ; Set if no ELSE&IF.VAR=^o100 ; Set if variant command .varsFIELD: .BLKA 1 TYPE: .BLKA 1INLAB: .BLKB IFMAX+1 .even .code;"; Routine to test if label present ; And if not enter it into table;LABEN0: CLR R5 BR LA TKB @ANDORTKB @BINSRCBSCTKB @BINSRDBSCTKB @DBLBINBSC TKB @DIRECT TKB @EXITST TKB @LOWCASTKB @ONCREGBSC TKB @REVSTR TKB @UPPCASTKB @FRMRETBSCck end of string40$: RETURN ; No success;; Test if label present%; Input: R5 = 0 if wild chars ignored; R5 = -1 wild chars parsed; Output: Carry set if no label; Carry clear if label; and R1 = status;"MISERR: MOV #7,R0 ; Er; B S C P U R B U G . C M D;; /; MAKES SEPERATE VERSION FOR DEBUGGINGA;.:; COMMAND FILE FOR LINKING OF PURE CODE AREA OF BASIC INTO:; A LIBRARY. THIS HAS SEVERAL BENEFICIAL RESULTS: THE PURE:; CODE IS NOW IN HIGH ADDRESS SPACE, ALLOWING FOR THE /INC:; SWITCH TO BE USED ON INSTALLING SEVERAL COPIES WITH DIF-:; FERENT SIZES OF THE IMPURE AREA; A SHARED VERSION IS NOW!; POSSIBLE FOR USE UNDER RSX-11M. ;B>BSCBUG/-HD/RW,BSCBUG/-SP/CR,BSCBUG=BASIC0,BASIC1,BASIC2,BASIC3 BASIC4,IDNTFY :; FOLLOWING FILE IS DIFFERENT FOR RSX11D V6.2 AND IAS V3.0SPAWNEI; FOLLOWING FILE NOT FROM SYSLIB BECAUSE SYSLIB VERSION IS NOT RE-ENTRANTACATB6; FOLLOWING FILE USED TO RESOLVE IMPUR AREA REFERENCESIMPURNOMO.STB/SS%;LIB CONTAINING FORTRAN MATH ROUTINES MATHLIB/LB/TSTACK=0UUNITS=0SBASE=16ELIBR=SYSRES:RO UIC=[1,1]E;T6; FOLLOWING PATCH IS USED FOR BSCBUG VERSIONS OF BASIC2; IT CHANGES THE DEFAULT EXTENSION FOR LOADED USER$; SUBROUTINES FROM ".BTK" TO ".ATK".4; COMMENT IT OUT FOR BASPUR LIBRARY VERSION OF BASIC;OGBLPAT=BASIC0:LOAD00+16:4553/Eint this entry; R0=points to $IFSTT;$STKERR: MOV #53.,R0 ; Error number JMP ILCMA ; Kill this comand6INSERT: TSTNEB SUBSTK,STKERR ; Error in stack depth ?" CLR FIELD ; Clear field counter)1$: INC FIELD ; Increment field counter CAL;U ; BSCPUR.CMD; :; COMMAND FILE FOR LINKING OF PURE CODE AREA OF BASIC INTO:; A LIBRARY. THIS HAS SEVERAL BENEFICIAL RESULTS: THE PURE:; CODE IS NOW IN HIGH ADDRESS SPACE, ALLOWING FOR THE /INC:; SWITCH TO BE USED ON INSTALLING SEVERAL COPIES WITH DIF-:; FERENT SIZES OF THE IMPURE AREA; A SHARED VERSION IS NOW!; POSSIBLE FOR USE UNDER RSX-11M.A; >BSCPUR/RW/-HD,BSCPUR/-SP/CR,BSCPUR=BASIC0,BASIC1,BASIC2,BASIC3 BASIC4,IDNTFYA:; FOLLOWING FILE IS DIFFERENT FOR RSX11D V6.2 AND IAS V3.0SPAWNRI; FOLLOWING FILE NOT FROM SYSLIB BECAUSE SYSLIB VERSION IS NOT RE-ENTRANTACATB6; FOLLOWING FILE USED TO RESOLVE IMPUR AREA REFERENCESIMPURNOMO.STB/SS MATHLIB/LB/RSTACK=0,UNITS=0 BASE=16ILIBR=SYSRES:RO UIC=[1,1]I;A6; FOLLOWING PATCH IS USED FOR BSCPUR VERSIONS OF BASIC2; IT CHANGES THE DEFAULT EXTENSION FOR LOADED USER$; SUBROUTINES FROM ".BTK" TO ".ATK".4; COMMENT IT OUT FOR BASPUR LIBRARY VERSION OF BASIC;IGBLPAT=BASIC0:LOAD00+16:4553/R@ LISTING OF BSCPUR.STB 06/28/85 15:08:29@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> BASIC0 000000 MODULE NAME 000> 05JU85 000000 VERSION ID 000> . ABS. 000000 P-SECT NAME 104> IDNTFY 100000 GLOBAL SYMBOL 110> $CAT5 100114 GLOBAL00%   {| SYMBOL 110> $CBDAT 100274 GLOBAL SYMBOL 110> $CBDMG 100302 GLOBAL SYMBOL 110> $CBDSG 100310 GLOBAL SYMBOL 110> $CBOMG 100316 GLOBAL SYMBOL 110> $CBOSG 100324 GLOBAL SYMBOL 110> $CBTA 100400 GLOBAL SYMBOL 110> $CBTMG 100332 GLOBAL SYMBOL 110> $CBVER 100316 GLOBAL SYMBOL 110> $CDTB 100010 GLOBAL SYMBOL 110> $COTB 100024 GLOBAL SYMBOL 110> $C5TA 100536 GLOBAL SYMBOL 110> CTCENT 101152 GLOBAL SYMBOL 110> FPERMS 101242 GLOBAL SYMBOL 110> FPEXTR 101164 GLOBAL SYMBOL 110> STRD 101324 GLOBAL SYMBOL 110> TRAP00 100642 GLOBAL SYMBOL 110> ABS00 102726 GLOBAL SYMBOL 110> AR500 103716 GLOBAL SYMBOL 110> ASC00 103756 GLOBAL SYMBOL 110> ATN00 103124 GLOBAL SYMBOL 110> ATOF00 101456 GLOBAL SYMBOL 110> ATOI00 102700 GLOBAL SYMBOL 110> CHR00 104310 GLOBAL SYMBOL 110> COR00 104236 GLOBAL SYMBOL 110> COS00 103116 GLOBAL SYMBOL 110> DAT00 105664 GLOBAL SYMBOL 110> DCEN0 106536 GLOBAL SYMBOL 110> DDAT00 105650 GLOBAL SYMBOL 110> ERL00 104166 GLOBAL SYMBOL 110> ERR00 104160 GLOBAL SYMBOL 110> EXPF00 103102 GLOBAL SYMBOL 110> FCHR00 105204 GLOBAL SYMBOL 110> FCS00 104174 GLOBAL SYMBOL 110> FORM00 107564 GLOBAL SYMBOL 110> FTOA00 102172 GLOBAL SYMBOL 110> INT00 102756 GLOBAL SYMBOL 110> INX00 103176 GLOBAL SYMBOL 110> ITOA00 102666 GLOBAL SYMBOL 110> LEFT00 104346 GLOBAL SYMBOL 110> LEN00 103472 GLOBAL SYMBOL 110> LJS00 110316 GLOBAL SYMBOL 110> LOG00 103066 GLOBAL SYMBOL 110> LOG10 103074 GLOBAL SYMBOL 110> LTR00 105314 GLOBAL SYMBOL 110> NRC00 104026 GLOBAL SYMBOL 110> OCB00 103526 GLOBAL SYMBOL 110> OCS00 105404 GLOBAL SYMBOL 110> OCT00 105412 GLOBAL SYMBOL 110> PIECE0 104640 GLOBAL SYMBOL 110> PWRF00 103000 GLOBAL SYMBOL 110 @ LISTING OF BSCPUR.STB 06/28/85 15:08:34@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> RIGHT0 104354 GLOBAL SYMBOL 110> RJS00 110324 GLOBAL SYMBOL 110> RND00 101346 GLOBAL SYMBOL 110> RND01 101406 GLOBAL SYMBOL 110> R5A00 105500 GLOBAL SYMBOL 110> SBS00 104362 GLOBAL SYMBOL 110> SEC00 107366 GLOBAL SYMBOL 110> SEG00 104340 GLOBAL SYMBOL 110> SGN00 102732 GLOBAL SYMBOL 110> SINE00 103110 GLOBAL SYMBOL 110> SPACE0 100-   " $ cTADATADATA10620 GLOBAL SYMBOL 110> SQRT00 103132 GLOBAL SYMBOL 110> STRG00 110626 GLOBAL SYMBOL 110> TIM00 105656 GLOBAL SYMBOL 110> TRM00 105322 GLOBAL SYMBOL 110> VAL00 103522 GLOBAL SYMBOL 110> ATTACH 110712 GLOBAL SYMBOL 110> DEF00 113312 GLOBAL SYMBOL 110> DETACH 110722 GLOBAL SYMBOL 110> DIM00 112160 GLOBAL SYMBOL 110> EOSCHK 122720 GLOBAL SYMBOL 110> EVAL00 113552 GLOBAL SYMBOL 110> EVLS00 115036 GLOBAL SYMBOL 110> FOR00 123114 GLOBAL SYMBOL 110> GETHDR 115542 GLOBAL SYMBOL 110> GETNUM 116740 GLOBAL SYMBOL 110> GETSTR 117146 GLOBAL SYMBOL 110> GOSB00 111250 GLOBAL SYMBOL 110> GOTO00 111304 GLOBAL SYMBOL 110> GOTO02 111414 GLOBAL SYMBOL 110> GOTO03 111350 GLOBAL SYMBOL 110> GOTO04 111306 GLOBAL SYMBOL 110> GTOFFS 115712 GLOBAL SYMBOL 110> GTP00 114154 GLOBAL SYMBOL 110> IF00 120336 GLOBAL SYMBOL 110> INP00 121514 GLOBAL SYMBOL 110> INP01 121504 GLOBAL SYMBOL 110> LET00 117604 GLOBAL SYMBOL 110> NEWVAR 117502 GLOBAL SYMBOL 110> NEXT00 123552 GLOBAL SYMBOL 110> ONGT00 111574 GLOBAL SYMBOL 110> PR00 120700 GLOBAL SYMBOL 110> READ00 122754 GLOBAL SYMBOL 110> REM00 120436 GLOBAL SYMBOL 110> RES00 111702 GLOBAL SYMBOL 110> RET00 112000 GLOBAL SYMBOL 110> RUN00 111062 GLOBAL SYMBOL 110> RUN01 111206 GLOBAL SYMBOL 110> STONUM 117066 GLOBAL SYMBOL 110> STOP00 110740 GLOBAL SYMBOL 110> STOP02 111004 GLOBAL SYMBOL 110> STOSTR 117314 GLOBAL SYMBOL 110> STRADD 117240 GLOBAL SYMBOL 110> STRCMP 122052 GLOBAL SYMBOL 110> WRITBK 116620 GLOBAL SYMBOL 110 @ LISTING OF BSCPUR.STB 06/28/85 15:08:39@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> ARYL00 126276 GLOBAL SYMBOL 110> ASSM00 135260 GLOBAL SYMBOL 110> CLOS00 125350 GLOBAL SYMBOL 110> CLRU00 125766 GLOBAL SYMBOL 110> CLSEAL 132052 GLOBAL SYMBOL 110> CRLF00 125140 GLOBAL SYMBOL 110> CSINT0 125460 GLOBAL SYMBOL 110> DIMC00 127064 GLOBAL SYMBOL 110> FILFND 132170 GLOBAL SYMBOL 110> FILFN1 132204 GLOBAL SYMBOL 110> FIND00 126626 GLOBAL SYMBOL 110> FIND01 126636 GLOBAL SYMBOL 110> FNMB00 132234 GLOBAL SYMBOL 110> GETV00 127004 GLOBAL SYMBOL 110> INIT00 134246 GLOBAL SYMBOL 110> INIT01 134272 GLOBAL SYMBOL 110> 005   {| INIT02 133602 GLOBAL SYMBOL 110> INIT03 133620 GLOBAL SYMBOL 110> INIT10 134016 GLOBAL SYMBOL 110> INIT13 133752 GLOBAL SYMBOL 110> JUNK00 125730 GLOBAL SYMBOL 110> LOAD00 137612 GLOBAL SYMBOL 110> OLD01 127322 GLOBAL SYMBOL 110> OLD02 127344 GLOBAL SYMBOL 110> PCK00 124002 GLOBAL SYMBOL 110> PCK03 124610 GLOBAL SYMBOL 110> PRLN00 132466 GLOBAL SYMBOL 110> PRLN01 132472 GLOBAL SYMBOL 110> PRNT00 125100 GLOBAL SYMBOL 110> PRN00 125666 GLOBAL SYMBOL 110> PUSH00 126012 GLOBAL SYMBOL 110> SCR00 126416 GLOBAL SYMBOL 110> SKIP00 125702 GLOBAL SYMBOL 110> SLDN 140436 GLOBAL SYMBOL 110> SLDN01 140454 GLOBAL SYMBOL 110> SLUP 140376 GLOBAL SYMBOL 110> SLUP01 140414 GLOBAL SYMBOL 110> SQU00 126446 GLOBAL SYMBOL 110> SRCHFL 132126 GLOBAL SYMBOL 110> SRCH00 126616 GLOBAL SYMBOL 110> SRL00 126100 GLOBAL SYMBOL 110> STRL00 126322 GLOBAL SYMBOL 110> TSTU00 130204 GLOBAL SYMBOL 110> TST00 125620 GLOBAL SYMBOL 110> UNLD01 140266 GLOBAL SYMBOL 110> VECTAB 140502 GLOBAL SYMBOL 110> CALL00 141334 GLOBAL SYMBOL 110> CATXT 145034 GLOBAL SYMBOL 110> CDIS 144362 GLOBAL SYMBOL 110> CHKMFT 145612 GLOBAL SYMBOL 110> CPOS 144466 GLOBAL SYMBOL 110> CQNAM 145072 GLOBAL SYMBOL 110> CQTXT 144656 GLOBAL SYMBOL 110> GETARG 140522 GLOBAL SYMBOL 110> GTRGPI 141006 GLOBAL SYMBOL 110 @ LISTING OF BSCPUR.STB 06/28/85 15:08:44@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> INSTRG 141502 GLOBAL SYMBOL 110> MATXT 144730 GLOBAL SYMBOL 110> MDIS 144256 GLOBAL SYMBOL 110> MPOS 144432 GLOBAL SYMBOL 110> MQTXT 144540 GLOBAL SYMBOL 110> NSTORE 141064 GLOBAL SYMBOL 110> OPLB00 142200 GLOBAL SYMBOL 110> PARCHK 141464 GLOBAL SYMBOL 110> RATXT 145054 GLOBAL SYMBOL 110> RDIS 144410 GLOBAL SYMBOL 110> RPOS 144506 GLOBAL SYMBOL 110> RQNAM 145130 GLOBAL SYMBOL 110> RQTXT 144676 GLOBAL SYMBOL 110> SPAWNB 145310 GLOBAL SYMBOL 110> SSTORE 141110 GLOBAL SYMBOL 110> ALOG 145746 GLOBAL SYMBOL 110> ALOG10 145742 GLOBAL SYMBOL 110> ATAN 146240 GLOBAL SYMBOL 110> ATAN2 146130 GLOBAL SYMBOL 110> COS 146476 GLOBAL SYMBOL 110> EXP 146702 GLOBAL SYMBOL 110> SIN 146512 GLOBAL SYMBOL 00=   " $ cTADATADATA 110> SQRT 147126 GLOBAL SYMBOL 110> INIT12 147222 GLOBAL SYMBOL 110> .CSI1 147532 GLOBAL SYMBOL 110> .CSI2 151002 GLOBAL SYMBOL 110> .DD2CT 153216 GLOBAL SYMBOL 110> .DELET 152364 GLOBAL SYMBOL 110> .MARK 152536 GLOBAL SYMBOL 110> .OD2CT 153230 GLOBAL SYMBOL 110> .POINT 152456 GLOBAL SYMBOL 110> .RDFDR 152564 GLOBAL SYMBOL 110> .RDFFP 152644 GLOBAL SYMBOL 110> .RDFUI 152734 GLOBAL SYMBOL 110> .READ 153002 GLOBAL SYMBOL 110> .RFOWN 152700 GLOBAL SYMBOL 110> .WAIT 153050 GLOBAL SYMBOL 110> .WDFDR 152612 GLOBAL SYMBOL 110> .WDFFP 152660 GLOBAL SYMBOL 110> .WDFUI 152750 GLOBAL SYMBOL 110> .WFOWN 152714 GLOBAL SYMBOL 110> .WRITE 153072 GLOBAL SYMBOL 110> ..D2CT 153444 GLOBAL SYMBOL 110> ..RWCK 153502 GLOBAL SYMBOL 110> ..RWLG 153662 GLOBAL SYMBOL 110> ..WTRD 153554 GLOBAL SYMBOL 110> ANS1 002662 GLOBAL SYMBOL 110> ARGERR 104446 GLOBAL SYMBOL 110> ATTDET 001116 GLOBAL SYMBOL 110> BOLNHD 002576 GLOBAL SYMBOL 110> BRFLAG 002530 GLOBAL SYMBOL 110> CALERR 104445 GLOBAL SYMBOL 110> CLOSER 104443 GLOBAL SYMBOL 110> CLSERR 104440 GLOBAL SYMBOL 110> COMERR 104464 GLOBAL SYMBOL 110 @ LISTING OF BSCPUR.STB 06/28/85 15:08:49@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> COMFDB 002150 GLOBAL SYMBOL 110> COMFNB 002310 GLOBAL SYMBOL 110> COUNT 002654 GLOBAL SYMBOL 110> CR 000015 GLOBAL SYMBOL 110> CSBUFF 002422 GLOBAL SYMBOL 110> CSBUFL 002472 GLOBAL SYMBOL 110> CSBUFS 000050 GLOBAL SYMBOL 110> CSDSPT 002354 GLOBAL SYMBOL 110> CSIBLK 002346 GLOBAL SYMBOL 110> CSIERR 104434 GLOBAL SYMBOL 110> DATI 002614 GLOBAL SYMBOL 110> DEFERR 104417 GLOBAL SYMBOL 110> DIMERR 104415 GLOBAL SYMBOL 110> DMDERR 104421 GLOBAL SYMBOL 110> DMVERR 104416 GLOBAL SYMBOL 110> DVFERR 104502 GLOBAL SYMBOL 110> ECHOFL 002545 GLOBAL SYMBOL 110> ENDSTK 002536 GLOBAL SYMBOL 110> ENDTXT 002574 GLOBAL SYMBOL 110> ENDUSR 002612 GLOBAL SYMBOL 110> ENUDAT 002602 GLOBAL SYMBOL 110> ENUSAV 002616 GLOBAL SYMBOL 110> EOFERR 104442 GLOBAL SYMBOL 110> ERRBRN 001026 GLOBAL SYMBOL 110> ERRR02 001006 GLOBAL SYMBOL 110> ERRR03 001000 GLOBAL SYMBOL 110> ERRR05 001014 GLOBAL SYMBOL 110> EXFERR 104432 00E   {| GLOBAL SYMBOL 110> FACERR 104457 GLOBAL SYMBOL 110> FA.APD 000100 GLOBAL SYMBOL 110> FA.CRE 000010 GLOBAL SYMBOL 110> FA.SHR 000040 GLOBAL SYMBOL 110> FA.WRT 000002 GLOBAL SYMBOL 110> FDBSAV 002512 GLOBAL SYMBOL 110> FD.CR 000002 GLOBAL SYMBOL 110> FD.FTN 000001 GLOBAL SYMBOL 110> FD.PLC 000004 GLOBAL SYMBOL 110> FD.RAN 000002 GLOBAL SYMBOL 110> FD.RWM 000001 GLOBAL SYMBOL 110> FF 000014 GLOBAL SYMBOL 110> FIXERR 104503 GLOBAL SYMBOL 110> FNMERR 104441 GLOBAL SYMBOL 110> FOFERR 104504 GLOBAL SYMBOL 110> FORERR 104426 GLOBAL SYMBOL 110> FO.APD 000106 GLOBAL SYMBOL 110> FO.MFY 000002 GLOBAL SYMBOL 110> FO.RD 000001 GLOBAL SYMBOL 110> FO.UPD 000006 GLOBAL SYMBOL 110> FO.WRT 000016 GLOBAL SYMBOL 110> FPEXFL 002532 GLOBAL SYMBOL 110> FUFERR 104505 GLOBAL SYMBOL 110> F.BKDS 000020 GLOBAL SYMBOL 110> F.BKEF 000050 GLOBAL SYMBOL 110> F.BKST 000024 GLOBAL SYMBOL 110> F.BKVB 000064 GLOBAL SYMBOL 110 @ LISTING OF BSCPUR.STB 06/28/85 15:08:55@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> F.CNTG 000034 GLOBAL SYMBOL 110> F.DFNB 000046 GLOBAL SYMBOL 110> F.DSPT 000044 GLOBAL SYMBOL 110> F.EFBK 000010 GLOBAL SYMBOL 110> F.ERR 000052 GLOBAL SYMBOL 110> F.FACC 000043 GLOBAL SYMBOL 110> F.FFBY 000014 GLOBAL SYMBOL 110> F.FNB 000102 GLOBAL SYMBOL 110> F.LUN 000042 GLOBAL SYMBOL 110> F.NRBD 000024 GLOBAL SYMBOL 110> F.RACC 000016 GLOBAL SYMBOL 110> F.RATT 000001 GLOBAL SYMBOL 110> F.RCNM 000034 GLOBAL SYMBOL 110> F.RSIZ 000002 GLOBAL SYMBOL 110> F.RTYP 000000 GLOBAL SYMBOL 110> F.URBD 000020 GLOBAL SYMBOL 110> GOERR 104402 GLOBAL SYMBOL 110> HT 000011 GLOBAL SYMBOL 110> ID001 032460 GLOBAL SYMBOL 110> ID002 052512 GLOBAL SYMBOL 110> ID003 032470 GLOBAL SYMBOL 110> IE.DNR 177775 GLOBAL SYMBOL 110> IE.EOF 177766 GLOBAL SYMBOL 110> IE.PRI 177760 GLOBAL SYMBOL 110> IFERR 104412 GLOBAL SYMBOL 110> ILCERR 104403 GLOBAL SYMBOL 110> ILFERR 104433 GLOBAL SYMBOL 110> IMMERR 104465 GLOBAL SYMBOL 110> INPBUF 001162 GLOBAL SYMBOL 110> INPERR 104422 GLOBAL SYMBOL 110> INPQIO 002116 GLOBAL SYMBOL 110> INPSTA 002144 GLOBAL SYMBOL 110> INPT 002062 GLOBAL SYMBOL 110> IN1ERR 00M   " $ cTADATADATA 104507 GLOBAL SYMBOL 110> IN2ERR 104510 GLOBAL SYMBOL 110> IN3ERR 104511 GLOBAL SYMBOL 110> IO.ATA 001410 GLOBAL SYMBOL 110> IO.DET 002000 GLOBAL SYMBOL 110> IO.KIL 000012 GLOBAL SYMBOL 110> IO.RVB 010400 GLOBAL SYMBOL 110> IO.WVB 011000 GLOBAL SYMBOL 110> LASTEX 002556 GLOBAL SYMBOL 110> LETERR 104410 GLOBAL SYMBOL 110> LF 000012 GLOBAL SYMBOL 110> LINEFL 002552 GLOBAL SYMBOL 110> LINEHD 002516 GLOBAL SYMBOL 110> LINELN 002554 GLOBAL SYMBOL 110> LINENO 002520 GLOBAL SYMBOL 110> LINERR 104414 GLOBAL SYMBOL 110> LNKOLD 002056 GLOBAL SYMBOL 110> LNKSAV 001632 GLOBAL SYMBOL 110> LNKTIN 001156 GLOBAL SYMBOL 110> LNNERR 104420 GLOBAL SYMBOL 110> LODERR 104460 GLOBAL SYMBOL 110> LOGERR 104500 GLOBAL SYMBOL 110 @ LISTING OF BSCPUR.STB 06/28/85 15:09:00@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> LOWCOM 000010 GLOBAL SYMBOL 110> LOWFLG 002550 GLOBAL SYMBOL 110> LOWLST 000004 GLOBAL SYMBOL 110> LOWNOC 000001 GLOBAL SYMBOL 110> LOWSTR 000002 GLOBAL SYMBOL 110> LSTLIN 002524 GLOBAL SYMBOL 110> MODPB 001050 GLOBAL SYMBOL 110> MOLUN 001046 GLOBAL SYMBOL 110> MPARLS 002626 GLOBAL SYMBOL 110> M.I 001074 GLOBAL SYMBOL 110> M.OLUN 000004 GLOBAL SYMBOL 110> M.ONUM 000016 GLOBAL SYMBOL 110> NEWLIN 002474 GLOBAL SYMBOL 110> NXMERR 104430 GLOBAL SYMBOL 110> NXTERR 104427 GLOBAL SYMBOL 110> NXVERR 104506 GLOBAL SYMBOL 110> OINPT 002042 GLOBAL SYMBOL 110> OLDFLG 002564 GLOBAL SYMBOL 110> OPENER 104444 GLOBAL SYMBOL 110> OPLBER 104450 GLOBAL SYMBOL 110> OPLFER 104451 GLOBAL SYMBOL 110> OPNERR 104437 GLOBAL SYMBOL 110> OPRERR 104411 GLOBAL SYMBOL 110> OP.EOF 002504 GLOBAL SYMBOL 110> OP.LEN 002500 GLOBAL SYMBOL 110> OP.LUN 002502 GLOBAL SYMBOL 110> OP.MXL 000020 GLOBAL SYMBOL 110> OP.RAC 002506 GLOBAL SYMBOL 110> OP.RTP 002510 GLOBAL SYMBOL 110> OTPT 002064 GLOBAL SYMBOL 110> OUTQIO 002070 GLOBAL SYMBOL 110> OUTSTA 002112 GLOBAL SYMBOL 110> OVFERR 104400 GLOBAL SYMBOL 110> PARERR 104407 GLOBAL SYMBOL 110> PARLST 001030 GLOBAL SYMBOL 110> PRFERR 104456 GLOBAL SYMBOL 110> PRIERR 104455 GLOBAL SYMBOL 110> PRMTFL 002542 GLOBAL SYMBOL 110> PRNERR 104413 GLOBAL SYMBOL 110> 00U   {| PR1 000040 GLOBAL SYMBOL 110> PR2 000100 GLOBAL SYMBOL 110> PR3 000140 GLOBAL SYMBOL 110> PR4 000200 GLOBAL SYMBOL 110> PR5 000240 GLOBAL SYMBOL 110> PR6 000300 GLOBAL SYMBOL 110> PR7 000340 GLOBAL SYMBOL 110> PS 177776 GLOBAL SYMBOL 110> P.ERCD 000002 GLOBAL SYMBOL 110> P.FCS 000010 GLOBAL SYMBOL 110> P.FLNM 000012 GLOBAL SYMBOL 110> P.FNAM 000014 GLOBAL SYMBOL 110> P.LINE 000006 GLOBAL SYMBOL 110> QFLG 002540 GLOBAL SYMBOL 110> QLUN 002626 GLOBAL SYMBOL 110> QNAM 002644 GLOBAL SYMBOL 110 @ LISTING OF BSCPUR.STB 06/28/85 15:09:05@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> QSTAT 002632 GLOBAL SYMBOL 110> Q.IOFN 000002 GLOBAL SYMBOL 110> Q.IOPL 000014 GLOBAL SYMBOL 110> REAERR 104423 GLOBAL SYMBOL 110> REMTRM 002476 GLOBAL SYMBOL 110> RETERR 104404 GLOBAL SYMBOL 110> RE1ERR 104424 GLOBAL SYMBOL 110> RE2ERR 104425 GLOBAL SYMBOL 110> RNDM 002534 GLOBAL SYMBOL 110> RPASFL 002543 GLOBAL SYMBOL 110> RUNF 002526 GLOBAL SYMBOL 110> R.FIX 000001 GLOBAL SYMBOL 110> R.VAR 000002 GLOBAL SYMBOL 110> SBSERR 104405 GLOBAL SYMBOL 110> SCOUNT 001624 GLOBAL SYMBOL 110> SETERR 104463 GLOBAL SYMBOL 110> SLPERR 104452 GLOBAL SYMBOL 110> SOTPT 001616 GLOBAL SYMBOL 110> SQRERR 104501 GLOBAL SYMBOL 110> STCOUN 002522 GLOBAL SYMBOL 110> STFONX 002606 GLOBAL SYMBOL 110> STGOSB 002604 GLOBAL SYMBOL 110> STOERR 104447 GLOBAL SYMBOL 110> STRERR 104435 GLOBAL SYMBOL 110> STRIN 002650 GLOBAL SYMBOL 110> STROUT 002650 GLOBAL SYMBOL 110> STUDAT 002600 GLOBAL SYMBOL 110> STUEPT 002566 GLOBAL SYMBOL 110> STUFDB 002610 GLOBAL SYMBOL 110> STUROU 002570 GLOBAL SYMBOL 110> STXERR 104436 GLOBAL SYMBOL 110> SUBERR 104406 GLOBAL SYMBOL 110> SWR 177570 GLOBAL SYMBOL 110> S.AND 000310 GLOBAL SYMBOL 110> S.BAS 000140 GLOBAL SYMBOL 110> S.DATA 000167 GLOBAL SYMBOL 110> S.ECHO 000323 GLOBAL SYMBOL 110> S.ELSE 000316 GLOBAL SYMBOL 110> S.EOL1 000374 GLOBAL SYMBOL 110> S.EOL2 000377 GLOBAL SYMBOL 110> S.EOS1 000375 GLOBAL SYMBOL 110> S.EOS2 000376 GLOBAL SYMBOL 110> S.EQV 000314 GLOBAL SYMBOL 110> S.EXC 000150 GLOBAL SYMBOL 110> S.FDB 000140 GLOBAL S00]   " $ cTADATADATAYMBOL 110> S.FN 000304 GLOBAL SYMBOL 110> S.GOSB 000146 GLOBAL SYMBOL 110> S.GOTO 000143 GLOBAL SYMBOL 110> S.IF 000142 GLOBAL SYMBOL 110> S.IMP 000313 GLOBAL SYMBOL 110> S.NEXT 000145 GLOBAL SYMBOL 110> S.NFBO 000303 GLOBAL SYMBOL 110> S.NFST 000265 GLOBAL SYMBOL 110> S.NOT 000307 GLOBAL SYMBOL 110> S.OFF 000315 GLOBAL SYMBOL 110 @ LISTING OF BSCPUR.STB 06/28/85 15:09:10@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> S.ON 000164 GLOBAL SYMBOL 110> S.OR 000312 GLOBAL SYMBOL 110> S.PRIN 000152 GLOBAL SYMBOL 110> S.PRMT 000317 GLOBAL SYMBOL 110> S.REM 000151 GLOBAL SYMBOL 110> S.RPAL 000320 GLOBAL SYMBOL 110> S.SAEN 000264 GLOBAL SYMBOL 110> S.SAST 000252 GLOBAL SYMBOL 110> S.SFEN 000251 GLOBAL SYMBOL 110> S.SFST 000223 GLOBAL SYMBOL 110> S.STEP 000204 GLOBAL SYMBOL 110> S.THEN 000305 GLOBAL SYMBOL 110> S.TO 000306 GLOBAL SYMBOL 110> S.TRAC 000162 GLOBAL SYMBOL 110> S.UPP 000322 GLOBAL SYMBOL 110> S.VBEN 000222 GLOBAL SYMBOL 110> S.WPAL 000321 GLOBAL SYMBOL 110> S.XOR 000311 GLOBAL SYMBOL 110> TCOUNT 001376 GLOBAL SYMBOL 110> TF.RAL 000010 GLOBAL SYMBOL 110> TF.RNE 000020 GLOBAL SYMBOL 110> TF.WAL 000010 GLOBAL SYMBOL 110> TIMBUF 001076 GLOBAL SYMBOL 110> TINPT 001142 GLOBAL SYMBOL 110> TMOERR 104454 GLOBAL SYMBOL 110> TM1ERR 104476 GLOBAL SYMBOL 110> TM2ERR 104477 GLOBAL SYMBOL 110> TOTPT 001370 GLOBAL SYMBOL 110> TRCFLG 002541 GLOBAL SYMBOL 110> TRMSIZ 000204 GLOBAL SYMBOL 110> UICSTO 002560 GLOBAL SYMBOL 110> UNLDSV 002620 GLOBAL SYMBOL 110> UNMERR 104431 GLOBAL SYMBOL 110> UNRERR 104401 GLOBAL SYMBOL 110> UPPFL 002546 GLOBAL SYMBOL 110> USR 002572 GLOBAL SYMBOL 110> VALERR 104512 GLOBAL SYMBOL 110> VFIERR 104461 GLOBAL SYMBOL 110> VOPERR 104462 GLOBAL SYMBOL 110> VT 000013 GLOBAL SYMBOL 110> VTMERR 104466 GLOBAL SYMBOL 110> WATERR 104453 GLOBAL SYMBOL 110> WORK 002514 GLOBAL SYMBOL 110> WPASFL 002544 GLOBAL SYMBOL 110> WTMAG 002624 GLOBAL SYMBOL 110> WTUNIT 002622 GLOBAL SYMBOL 110> $DSW 000000 GLOBAL SYMBOL 11000e   {|z 8SD8 ~H9xHL:<H:H€:HȀ:_H΀:`HԀ:(}H:Hڀ:ZH΀5H#r0HԐr0H悴rXHu0H@z#w0Hw0Hw0Hw0Hڅ6x$HHAyHzy΁HZy0Hu~0H0HҊ0HRt Hʑ0HʖHґu0Hpz! HХ"OHj"{H'0HL,2Hb,ZH,yHf+.NH,.bHĒ,.bH ,.bH,.bHƒ.&Hʛ.0HlN9Hޠz:0HL:XHDK0H_XHB`X΁Hj_΁H|fHIqHUq0H[q0H“\q0Hs0H2sXHyZH6yhHzyhHyyH̞yHyH*[}H) OHK VH{H課HtH*N*H`ZH0uH4&'Hx&'Hz&H&H'NH,NHy:΁Hy:ρHy:ЁHy:сHy:Hy:HAIHثYMH_XHҮ_H䮃d0HzdHfN\H6fO\H:f΁H@f0H[g6H Jw0HxhH«xWHxO\H,xdHxhH }y0H&y2HVy6Hzy0H@yOHҬ H 0H|HK*}HBOH HivH DRHOvH6vHH:| Hɜ, HR.I.Hz:HB|Q HQvHSvHS H`ɌZ`H4L`NH:d H4üp H,)qvHsvHF6sHHX#H6xHJzy}HVy:H΋=HZϋ@=HҤH֥KH 8rH^\Hz:H.Ա2&HtԱ&HԱ(HձHֱfaHՙ`;H(֜2&H՜&H՜(H՞faHժe;H:dH$rCHBrHzwHl׃H ""H&t HNXH~V/KHX""H%wH#""H %""H4%"&Hh%'H-ZHH 6HzM""H\M""H0_M""H@zoM%HoMg'HhoM NHoMYHoMyH NvLHTSPdH(SpH&SsrHUH<UVNHUZH_XvLH<M[""HT[""HzV[""HF6_ gH"_g'HtE`ZXH$L`Z H(L`Z&H)N`""HR`""H \`!HD\`KH@\`VNHB\` UH\`pHF\`sHH`}H4zakH8ayHJ6a""H:d""H:d NHf""H.f""H-f}Hbf""H fH fH@fH`fHfHfHzfHfHehpHfhHfh=MH fhWH lhu:Hz\q""Hgq""Hhq""Hr@QH\swHcs%HVtv~ gHb""H,z'""H>(""H?l gHg'HaBxHyHp|H}""H""HЅ`'HfJHz""HJy""H1""H2H :""H6""H+*DHLAwHdXHXHsH00m n o " $ cTADATADATA; B S C R E M B U G . C M D(; REMOVES ALL DEBUGGING VERSIONS OF BSC"; AND GETS RID OF TASK IMAGES TOO;REM ...BX9,...BX3-PIP BSCBUG.TSK;*,BSCBUG.STB;*,BSCBUG.MAP;*/DE REM BSCBUG/LI(PIP LB:[1,1]BSCBUG.TSK;*,BSCBUG.STB;*/DE$PIP BXC.TSK;*,BX3.TSK;*,BX9.TSK;*/DE; B S C R E M . C M D; REMOVES ALL VERSIONS OF BSC;R-REM ...BAS,...BA1,...BA2,...BA3,...BA4,...BA5O;REM ...BA6,...BA7,...BA8,...BA9,...B10,...B11,...BTW,...BTHG REM BSCPUR/LI (PIP LB:[1,1]BSCPUR.TSK;*,BSCPUR.STB;*/DE REM ...BBRine can be any ; size and is not limited.;$ULNSZ=150. ; Underline buffer sizeD; This needs to be larger than the maximum number of characters/line5; for your printer if either /UL:S or /UL:L are used.;; 6; This determines storage for trac$JOB SYSTEM BASIC 999D$SET DEF [14,106]R$!/$! PAUL D. CLAYTON RMS AT NADC, WARMINSTER, PA.B$!F$! THIS FILE WILL BUILD A MULTI-USER SHARED LIBRARY VERSION OF REESE'SI$! BASIC. THIS FILE IS A COMBINED FILE FROM ALL THE ONES DISTRIBUTED WITHSK$! THE PROGRAM. IT DOES NOT DO ALL THE THINGS THAT REESE HAS MADE AVAILABLE)$! BUT IT WILL WORK. YOU CAN BUILD ON IT.$!P$! I HAD PROBLEMS GETTING THE ERROR MESSAGES TO PRINT CORRECT AND FOUND THAT THEM$! FILE LB:[1,2]BASIC.MSG WAS FORMATTED WRONG. THE FORTRAN PROGRAM, "MSG.FTN"C$! WILL CREATE THE MESSAGE FILE INSTEAD OF USING THE BASIC PROGRAM AL$! "BASDOKMAK.BAS" WHICH IF IT HAS A PROBLEM YOU WON'T KNOW BECAUSE THERE ISR$! NO ERROR MESSAGE FILE IN LB:[1,2]. ITS THE OLD CAT CHASING ITS TAIL TRICK$!$!$!J$! ANYWAY, THE MSG.FTN PROGRAM WILL READ IN THE FILE 'BASIC.MES' AND WRITEL$! OUT A CORRECTLY FORMATTED FILE IN LB:[1,2]. IF YOU HAVE ANY PROBLEMS WITHP$! THIS FILE CALL ME AT (215) 441-2708. ANY QUESTIONS ABOUT THE BASIC CALL FRANK&$! BORGER AT (312) 791-2515. GOOD LUCK$!$DCW$ON ERROR CONTINUE$!L$! FIRST ORDER OF BUSSINESS IS TO $REMOVE ANY INSTALLED COPIES OF BASIC FROM$! THE SYSTEM.$MCR REM ...BASH$MCR REM $$$BASO$MCR REM BASPUR/LI$!6$! COMMAND FILE TO ASSEMBLE BASIC FOR USE UNDER RSX11D$!-$MCR MAC IDNTFY,IDNTFY/-SP=BASPRE/PA:1,IDNTFYI0$MCR MAC BASIC0,BASIC0/-SP/CR=BASPRE/PA:1,BASIC00$MCR MAC BASIC1,BASIC1/-SP/CR=BASPRE/PA:1,BASIC10$MCR MAC BASIC2,BASIC2/-SP/CR=BASPRE/PA:1,BASIC20$MCR MAC BASIC3,BASIC3/-SP/CR=BASPRE/PA:1,BASIC30$MCR MAC BASIC4,BASIC4/-SP/CR=BASPRE/PA:1,BASIC4$MCR MAC CATB,CATB/-SP=CATB $!0$! FOLLOWING MODULE IS FOR USE UNDER IAS V3 ONLY$!*$MCR MAC SPAWN,SPAWN/-SP=BASPRE/PA:1,SPAWN$!C$! FOLLOWING COMMAND LINE IS USED TO ASSEMBLE THE MODULE IMPUR.$MACS;$! FOR USE IN A TASK IMAGE. IT THEREFORE DEFINES THE SYMBOLR5$! "TASK" BY INCLUDING THE HEADER FILE IMPURTASK.$MACB$!7$MCR MAC IMPUR,IMPUR/-SP/CR=BASPRE/PA:1,IMPURTASK,IMPUR2$!<$! FOLLOWING COMMAND LINE IS USED TO ASSEMBLE IMPUR.$MAC FOR8$! SYMBOL TABLE USE ONLY. IT THUS OMITS REFERENCE TO THE8$! HEADER MODULE IMPURTASK.$MAC WHICH DEFINES THE SYMBOL $! "TASK"U$!2$MCR MAC IMPURNOMO,IMPURNOMO/-SP=BASPRE/PA:1,IMPUR$!$!>$! FOLLOWING COMMAND FILE IS USED TO LINK A MULTI USER VERSION $! OF BASIC UNDER RSX11D OR IAS.G$! THIS COMMAND FILE IS FOR USE WITH THE INDIRECT COMMAND PROCESSOR AT. $!($! FIRST BUILD IMPURE AREA SYMBOL TABLE:$!$MCR TKB @IMPURNOMOT$!$! NOW BUILD PURE AREA:C$!$MCR TKB @BASPUR$!,$! NOW PUT LIBRARY UNDER [1,1] ON LB: DEVICE$!0$MCR PIP LB:[1,1]/NV=BASPUR.STB,BASPUR.TSK/FO/CO+$MCR INS LB:[1,1]BASPUR/LI/ACC=RO/UIC=[1,1]K$!#$! NOW BUILD THE IMPURE TASK IMAGE:B$! $MCR TKB @BAS!$!B$! WE SHOULD PUT THE TASK IN DOWN IN [11,1] ON THE DEVICE LB: NEXT$!#$MCR PIP LB:[11,1]/NV=BAS.TSK/FO/COO$!9$! NOW THE TASK MAY BE INSTALLED WITH ANY INCREMENT UP TO9$! A TOTAL TASK SIZE OF 16K WORDS. THE TOP 16K OF ADDRESS@8$! SPACE IS USED BY THE LIBRARY (PURE) PORTION OF BASIC.,$! THE CURRENT INSTALL IS FOR 00u v w x { | |THE MAX. SIZE.$!+$MCR INS LB:[11,1]BAS/TASK=...BAS/INC=13000P$!L$! NEXT IS THE CREATION OF THE ERROR MESSAGE FILE IN LB:[1,2]. THE FOLLOWINGL$! PROGRAM WILL HANDLE IT. YOU MUST BE LOGGED INTO A SYSTEM ACCOUNT AND HAVE$$! YOUR DEFAULT SET TO THIS ACCOUNT.$!$MCR F4P MSG=MSG$!K$! F4POTS IS ASSUMED TO BE IN THE SYSLIB LIBRARY. CHANGE THE FOLLOWING LINE! $! IF NOT.$!$MCR TKB MSG=MSG$!$RUN MSG$!$! THATS IT FOLKS, HAVE FUN.$SET DEF$EOJ910 ! PROGRAM TO CHANGE A DOCUMENT FILE IN UPPER CASE ONLY;11 ! TO ALL LOWER CASE SO YOU CAN GO IN WITH THE EDITOR ANDB12 ! MAKE A FEW CHARACTER CHANGES AND HAVE TEXT-LIKE DOCUMENTATION413 ! WHERE CONVERSION TO RUNOFF SOURCE IS NOT VIABLE!20 DIM A$[132]V,B$[132]V,NA$[30]V25 LOAD "LB:[1,202]LOWCAS.ATK"30 INPUT "FILE NAME ";NA$35 OPEN #3,NA$+"/RO/LN:132"40 OPEN #4,NA$+"/WR/LN:132"45 IF END #3 THEN 10050 INPUT LINE #3,A$55 CALL "LOWCAS"(A$,B$)60 PRINT #4,B$ 70 GOTO 50 100 CLOSE*XLW@(j9xh  ZA90$ .*@(w f  W*.   @SqTAa ߇  ock/unlock sequencea+ES.VSP=2 ; Vertical spacing param presents(ES.HSP=4 ; Horiz spacing param present)ES.PSP=10 ; Spacing is permanent changef!ES.WRD=40 ; Lock till next worde"ES.CHR=100 ; Lock till next charES.NUL=200 ; Dummy statusa;0C; ROUTINE TO REPLACE ASCII TO BINARY CONVERSION ROUTINE SUPPLIED IN @; SYSLIB, EXCEPT THIS ONE SHOULD WORK IN A PURE CODE ENVIRONMENT; (A RESIDENT LIBRARY).E;X; 2-JUN-77 LARRY SIMPSON;E; DECLARE ENTRY POINTS .GLOBL $CDTB $COTB;D ; ON ENTRY:$%; R0 CONTAINS ADDRESS OF ASCII STRINGW ; ON EXIT:/; R0 POINTS TO NEXT CHAR AFTER CONVERTED STRING1; R1 HAS UNSIGNED BINARY VALUE; R2 HAS TERMINATING CHAR;I1; .WORD 0 ;THIS IS TO MAKE ENTRY POINTS THE SAMET%$CDTB: MOV R5,-(SP) ;SAVE FOR SCRATCHO( MOV #71,-(SP) ;SAVE UPPER CHARACTER '9'$ MOV #10.,R2 ;NUMBER BASE (DECIMAL) BR CONCOM%$COTB: MOV R5,-(SP) ;SAVE FOR SCRATCH! MOV #67,-(SP) ;UPPER CHAR IS '7'U! MOV #10,R2 ;NUMBER BASE (OCTAL)N$CONCOM: CLR R1 ;START WITH ANSWER 0)2$: MOVB (R0)+,R5 ;GET LEADING CHAR -> R5I CMPB #40,R5 ;IS IT A SPACE?T BEQ 2$ ;IF SO, GET NEXT CHAR# CMPB #HT,R5 ;IS IT HORIZONTAL TABE BEQ 2$ ;IF SO, ALSO SKIP64$: CMPB (SP),R5 ;COMPARE UPPER ASCII CHAR WITH GIVEN, BLO 3$ ;IF OUT OF RANGE, END OF CONVERSION$ CMPB #60,R5 ;NOW CHECK LOWER LIMIT BHI 3$ ;IF OUT, ENDA- MUL R2,R1 ;MULTIPLY PREVIOUS ANSWER BY BASES! SUB #60,R5 ;MAKE ASCII -> VALUEP ADD R5,R1 ;AND ADD IT IN# MOVB (R0)+,R5 ;GET NEXT CHAR -> R5 BR 4$ ;AND CONTINUE CONVERSION&3$: MOV R5,R2 ;TERMINATING CHAR -> R2 TST (SP)+ ;POP UPPER CHARB MOV (SP)+,R5 ;RESTORE R5R RTS PCH .ENDI: :D 5@ DGP}h R3 MOV #4,R2 MOV SP,R0$ CMP R4,R2 ;SEE IF WE HAVE FULL LEN BLT 2$ ;IF NOT, BRANCH)1$: MOVB (R3)+,(R0)+ ;PUT NUMBER ON STACKT$ SOB R2,1$ ;ENSURING WORD ALIGNMENT BR 5$%2$: SUB R4,R2 ;GET MISSING LEN -> R2 &3$: CLRB (R0)+ ;CLEAR OUT A FEW BYTES SOB R2,3$# TST R4 ;CHECK LEN OF WHAT WE HAVER BLE 5$ ;IF ZERO, BRANCH)4$: MOVB (R3)+,(R0)+ ;PUT IN WHAT WE HAVEC SOB R4,4$!5$: SETL ;SET LONG INTEGER MODES$ LDCLF (SP)+,AC0 ;CONVERT THE NUMBER SETI ;BACK TO INTEGER MODEO" JSR PC,@#NSTORE ;STORE THE RESULT& ADD #12,SP ;GET RID OF REST ON STACK RTS PC ;RETURNEND: .END 2 XII .le;13 XIII .le;14 XIV .le;15 XV.s .number list 40 .le 40 or XL.le XLI.le XLII .le XLIII.le XLIV.le XLV.le XLVI .le XLVII .le XLVIII.le XLIX .le 50 or L.le LI.le LII.le LIII.le LIV.le LV.s .number list 90 * :L.I.@8X@8@*8@Z`@:d @(T F\  H8X88.I.* DC!Д~~ Д:d B  e Z`00   x { | |$DBLBIN.ATK/-HD/-FP,DBLBIN/-SP=DBLBINRSXBASIC.STB/SS/STACK=0UNITS=0/~ 8 8 yE  yk  y  ykQ y^ y{ y{ yE  yk  y  ykQ y^ y{ "X B -F 25-apr-84  - RSX BASIC - MICHAEL REESE VERSION 8 G AUTHORS: L. Simpson, F. Borger, Michael Reese Medical  Center, Chicago, IL  G Operating Systems: IAS, RSX-11D, RSX-11M, VMS (compatibili- E ty mode) 0 % Source Language: MACRO-11 T G Special hardware: Floating point processor or FPP emulator ( (supplied.)  ( Keywords: BASIC, Reese Basic  G Abstract: Reese Basic is a highly upgraded version of what 6 used to be a DECUS library program for DOS.  .G 1. Full FILES-11 I/O is supported, (fixed length random ac- c' cess, shared mode, etc.) : AG 2. String functions and user defined functions are much G more flexible than in either the original version or in n DEC's BASIC-11.  (G 3. Multi-user implementation is supported with separate > pure and impure areas. (IAS and RSX-11D only.)  G 4. Since it is an interpreter, it includes the special de- : bugging commands: STEP, CON and SET TRACE.  -G 5. Although an interpreter, significant manipulation of the n< source program is done to speed up operation.  oF 6. OVERLAY and a data preserving CHAIN are also supported.  'G 7. A clean "break" feature is implemented via the TT  handler.  G 8. a number of BASIC+2-like features have been added in- cG cluding: virtual arrays, integer and byte variables, g0 continued lines and IF-THEN-ELSE.  G 9. User written machine language subroutines are supported.  D 10. The capability of SPAWNING another task is supported.  AG Also included on the tape are two entertainment programs, lG MURPHY, which randomly produces versions of Murphy's law, dG and MAY, which gives curses of the form "May the bird of d happiness ..." l n9 MEDIA: 1200' Magtape, 800BPI, Format: DOS-11 TNEB EOFSW,40$ ; END OF INPUT FILE? MOV R3,-(SP)& MOV BUFADD,R3 ; Set nothing in buffer CALL CLRBF ; Clear it! MOV R3,R1 ; Save buffer address MOV (SP)+,R31 MOV R1,BUFAD ; Reset subst stack to input buffer- CLRB SUBSTK ; At bottom of sub .PS 60,70d.DATE 25-APR-84M.LS 1 .LM 10.TS 10^^!RSX BASIC - MICHAEL REESE VERSIONr\\.FG 1eF(level'x:.word 1'x ;Logical unit number .word 0 ;Block number+ .word rnoend+1 ;Current character address .endr+docblk::.word doc.ch ;Logical unit number .word 0 ;Bl0; MACRO SUBROUTINE TO ISSUE ANY SYSTEM DIRECTIVE; ; MAIN CALL; CALL "DIRECT"(A,S);; WHERE>; "A" IS THE 0TH ELEMENT OF A DIMENSIONED VARIABLE CONTAINING ; THE DIRECTIVE PARAMETER BLOCK.;; TYPICALLY A "DIM A%(N) FACILITATES CREATING THE DIRECTIVE; PARAMETER BLOCK.;C; THE ROUTINE MAKES ROUTINE CHECKS OF THE VALIDITY OF THE DIRECTIVE@; CODE, AND RETURNS A -99. IF THE DIRECTIVE FAILS. OTHERWISE THE%; DIRECTIVE STATUS IS RETURNED IN "S";:; TO ASSIST IN CREATING ADDRESSES IN DPB'S THE ENTRY POINT;; CALL "GETADR"(A,B);>; RETURNS THE ABSOLUTE ADDRESS OF VARIABLE "A" IN VARIABLE "B",; A & B ARE EXPECTED TO BE INTEGER VARIABLES;;ad50 "RNO" ;CSI default file extensions .rad50 "DOC" .rad50 "RNT" .word 0;; Text storage block; .text5oprtxt: .ascii <7><7><7><7><7><200> ;Ring user's bell4return: .ascii <15><12> ;Carriage return, line feed .EVEN  .sbttl 0; MACRO SUBROUTINE TO ISSUE ANY SYSTEM DIRECTIVE; ; MAIN CALL; CALL "DIRECT"(A,S);; WHERE>; "A" IS THE 0TH ELEMENT OF A DIMENSIONED VARIABLE CONTAINING ; THE DIRECTIVE PARAMETER BLOCK.;; TYPICALLY A "DIM A%(N) FACILITATES CREATING THE DIRECTIVE; PARAMETER BLOCK.;C; THE ROUTINE MAKES ROUTINE CHECKS OF THE VALIDITY OF THE DIRECTIVE@; CODE, AND RETURNS A -99. IF THE DIRECTIVE FAILS. OTHERWISE THE%; DIRECTIVE STATUS IS RETURNED IN "S";:; TO ASSIST IN CREATING ADDRESSES IN DPB'S THE ENTRY POINT;; CALL "GETADR"(A,B);>; RETURNS THE ABSOLUTE ADDRESS OF VARIABLE "A" IN VARIABLE "B",; A & B ARE EXPECTED TO BE INTEGER VARIABLES;;; IDENTIFYING INFO: .MCALL ULODHD ;CALL MACRO( ;IDENTIFY START OF CODE, END OF CODE ;AND ONE ENTRY POINT ULODHD DIRECT,END,DIRECT,GETADR;AC0=%0;;.PAGE&DIRECT: ;LABLE ACTUAL START OF CODE0 JSR R4,@#GTRGPI ;GO GET ARGUMENTS IN PI FASHION$ .BYTE 2,2,0 ;THIS IS ARG TYPE LIST1 ;MAKE FIRST ONE OUTPUT NUMERIC SO 00  cTADATADATAWE CAN FIND ;ITS ADDRESSS ;2 OUTPUT, RETURNED STATUS .EVEN' ;WE NOW HAVE THIS DATA ON THE STACK' ;SP+12 5-WORD DESCRIPTOR FOR STATUS" ;SP> 5-WORD DESCRIPTOR FOR DPB( ;FORMAT 2-WORD FLOATING POINT VALUE$ ; 2-WORD OFFSET (FP) TO ELEMENT" ; HEADER ADDRESS FOR VARIABLE0 JSR PC,@#PARCHK ;CHECK FOR TRAILING RIGHT PAREN MOV (SP)+,R0 ;GET HEADER OFFSET MOV (R0),R0 ;AND HEADER! BIC #17777,R0 ;ISOLATE TYPE BITS& CMP R0,#20000 ;IS IT INTEGER VARIABLE BEQ 1$ ;BR IF OK- ADD #4*2,SP ;CLEAN FIRST VARIABLE OFF STACK BR BADDPB ;AND RETURN ERROR"1$: LDF (SP)+,AC0 ;OFFSET INTO AC0" CMP (SP)+,(SP)+ ;GET RID OF VALUE SETI ;SET INTEGER MODE STCFI AC0,R0 ;GET OFFSET IN R0! ADD @#STUDAT,R0 ;MAKE R0 ADDRESS5 MOV R0,-(SP) ;PUSH DPB ADDRESS ONTO STACK ONTO STACK$ MOV (R0),R0 ;GET DPB CODE AND SIZE BIT #1,R0 ;CODE BETTER BE ODD BEQ BADTYP ;ELSE CODE IS BAD+ BIT #200,R0 ;LOWER BYTE CAN'T BE NEGATIVE BNE BADTYP ;SO DO ERROR! SWAB R0 ;GET SIZE IN LOWER BYTE! BIC #177400,R0 ;CLEAR UPPER BYTE# CMP R0,#41. ;MAX SIZE IS 41 BYTES BGT BADTYP ;ELSE ERROR" EMT 377 ;OK - - DO THE DIRECTIVE' LDCIF @#$DSW,AC0 ;GET DIRECTIVE STATUS BR RETURN ;AND RETURN STATUS.BADTYP: TST (SP)+ ;POP DPB ADDRESS FROM STACK BADDPB: SETI ;SET INTEGER MODE' LDCIF #-99.,AC0 ;PUT BAD STATUS IN AC05RETURN: MOV SP,R5 ;POINT R5 TO ARG TYP LIST ON STACK+ JSR PC,@#NSTORE ;STORE THE RETURNED STATUS ADD #5*2,SP ;RESTORE THE STACK RTS PC.PAGEGETADR: ;LABLE ENTRY POINT0 JSR R4,@#GTRGPI ;GO GET ARGUMENTS IN PI FASHION$ .BYTE 2,2,0 ;THIS IS ARG TYPE LIST1 ;MAKE FIRST ONE OUTPUT NUMERIC SO WE CAN FIND ;ITS ADDRESSS ;2 OUTPUT, RETURNED ADDRESS .EVEN' ;WE NOW HAVE THIS DATA ON THE STACK( ;SP+12 5-WORD DESCRIPTOR FOR ADDRESS' ;SP> 5-WORD DESCRIPTOR FOR VARIABLE( ;FORMAT 2-WORD FLOATING POINT VALUE$ ; 2-WORD OFFSET (FP) TO ELEMENT" ; HEADER ADDRESS FOR VARIABLE0 JSR PC,@#PARCHK ;CHECK FOR TRAILING RIGHT PAREN% TST (SP)+ ;GET RID OF HEADER OFFSET LDF (SP)+,AC0 ;OFFSET INTO AC0" CMP (SP)+,(SP)+ ;GET RID OF VALUE SETI ;SET INT MODE STCFI AC0,R0 ;GET OFFSET IN R0! ADD @#STUDAT,R0 ;MAKE R0 ADDRESS+ LDCIF R0,AC0 ;CONVERT ADDRESS TO FLOATING. MOV SP,R5 ;POINT R5 TO ARG TYP LIST ON STACK+ JSR PC,@#NSTORE ;STORE THE RETURNED STATUS ADD #5*2,SP ;RESTORE THE STACK RTS PCEND: ;LABLE END OF CODE .END* :L.I.@8X@8@*8@Z`@:d @y<@s@( % z,dF 8X88 .I."*" E e%g&:d &y<*H5 5 E ) "sn e   Z`.I.$ %g e :d y<Z`100 DIM FL%(255)110 PRINT "1 ITERATION" 120 SZ%=255Z 130 CO%=0140 FOR I=0 TO SZ% 150 FL%(I)=1 160 NEXT I 170 A$=TIM$() 180 A=SEC(A$)190 FOR I=0 TO SZ% 200 IN%=I210 IF FL%(IN%)=0 GOTO 290220 PR%=IN%+IN%+3230 K%=IN%+PR%240 IF K%>SZ% GOTO 280 250 FL%(K%)=0 260 K%=K%+PR% 270 GOTO 240 280 CO%=CO%+1 290 NEXT I 300 B$=TIM$() 310 B=SEC(B$)320 PRINT CHR$(7);CO%," PRIMES"!330 PRINT "TAKING ";B-A;" SECOND" 340 ENDOERATO=ERATO,LB:[1,1]F77OTS/LB1/Eed into r1" call pbyt ;Put byte into buffer# call begbf ;Set to top of buffer  pop ;Restore r4 and r5 returnr i! .sbttl Character output routinese;d ; Call fout; r1 = characterk;1(fout:: tstneb $outsw,OUTPUT ;No output?= cmp doc00  |CR LOGICAL*1 FLAGS(255)S INTEGER COUNT, PRIME, SIZEZC3 SIZE=2554CO START=SECNDS(0.)LC) DO 1000 ITER=1,10 COUNT=0 I=0 DO 100 I=1,SIZE100 FLAGS(I)=.TRUE.=C DO 200 I=1,SIZE IF(.NOT.FLAGS(I)) GOTO 200 PRIME=I+I+1 COUNT=COUNT+1 K=I+PRIME DO 150 J=K,SIZE,PRIME150 FLAGS(J)=.FALSE. 200 CONTINUE 1000 CONTINUE CT TIME=SECNDS(START)C2A TYPE *,COUNT,' PRIMES FOUND ',ITER-1,' TIMES IN ',TIME,' SECOND'C  STOPA END%10 ! PROGRAM TO RETURN AN EXIT STATUS20 LOAD "EXITST"(30 PRINT "WILL NOW RETURN A STATUS OF 2"35 B=240 CALL "EXITST"(B)N!50 PRINT "I SHOULD NOT GET HERE "R60 EXIT ansfer stringr2 mov r5,l.chr(r4) ;Save current character address pop ;Restore r4 and r5 1$: return;(2tocout: cmp r5,l.end(r4) ;Check for end of buffer% ble 1$ ;Continue until buffer fulls( call write ;Transfer buffer to device3 mov l.chr3EXITST,EXITST/-SP=LB:[1,202]LODMAC/ML,[1,202]EXITSTI2 passes ?3 mov #docblk,r4 ;Point r4 to .DOC descriptor blockm% call null ;Null out rest of bufferv% .close l.lun(r4) ;Close output fileu4 tstneb $tocsw,1$ ;Did we make a Table of Contents?3 mov #rntblk,r4 ;Point r4 to .RNT descriptor blockP% c,?? @@U 05JU85* #  C *E& 6 0$10 ! PROGRAM TO TRY EXIT WITH STATUS20 B=0$30 CALL "SPAWNB"("BA3 EXITRET/RN",B)40 PRINT "RETURNED STATUS = ";B 50 EXITBrint out ASCIZ stringr return4;;; Call ttinou(; Type out the whole input line buffer;$8ttinou::mov #ibuf1,r0 ;Point r1 to input buffer address. mov bf.MAX(r1),r1 ;Number of bytes IN BUFFER sub #2,R1 ;Skip CR,LF* mov bf.beg(r0),r0 ;Poi$EXITST.ATK/-HD/-FP,EXITST/-SP=EXITSTRSXBASIC.STB/SS/STACK=0UNITS=0/TSTEQB (R2),2$ ;ZERO BYTE ?l! .ttyout (r2)+ ;Print character;! sob r1,1$ ;Loop until completer'2$: .ttyout #CR ;Send carriage returnr .ttyout #LF ;Send line feed mov (sp)+,r2 ;Pop r2 off stack returnc;b; Call oprwat0; Finish pag00  cTADATADATA&; MACRO SUBROUTINE TO EXIT WITH STATUS .LIST MEBP;S ; MAIN CALLT; CALL "EXITST"(S);T; WHERED;; "S" IS THE STATUS WORD TO BE RETURNED TO THE ISSUING TASKRC; IF "S" IS NOT PRESENT, A STATUS OF "WARNING" (0) WILL BE RETURNEDs;fA; ALTHOUGH ANY STATUS CAN BE RETURNED, UNDER NORMAL CIRCUMSTANCES>; (AS FOR USE WITH INDIRECT MCR,) ONE SHOULD RETURN ONE OF THE; FOLLOWING STATUS TO RETURN (0 IF NONE SPEC'D)0 JSR PC,@#PARCHK ;CHECK FOR TRAILING RIGHT PAREN SETI ;SET INTEGER MODE SETF ;NORMAL FLOATING LDF (SP)+,AC0 ;GET STATUS" STCFI AC0,R0 ;CONVERT TO INTEGER MOV R0,-(SP) ;PUSH STATUS0 MOV (PC)+,-(SP) ;PUSH DIRECTIVE CODE AND LENGTH .BYTE 29.,2! JSR PC,@#CLSEAL ;CLOSE ALL FILESC% JSR PC,@#DETACH ;DETACH THE TERMINALO EMT 377 ;DO THE DIRECTIVE/ LODERR ;REPORT LOAD ERROR IF DIRECTIVE FAILSR END: .END * :Lt@@.I.@*8X@8@8@\M""@:d @(8 ** #    8X88.I. :d &&  t\M""PRE,INP:RNPRE,INP:index'OUP:pindx=INP:RTPRE,INP:RNPRE,INP:pindx'OUP:rncmd=INP:RTPRE,INP:RNPRE,INP:rncmd)OUP:runoff=INP:RTPRE,INP:RNPRE,INP:runoff%OUP:init=INP:RTPRE,INP:RNPRE,INP:init)OUP:escape=INP:RTPRE,INP:RNPRE,INP:escape'OUP:rnoif=INP:RTPR .TITLE $EXP .IDENT /F40002/ .psect OTS$I ,CON,RW,REL,LCL,IEXP:: MOV 2(R5),R4 MOV (R4),R0 BGT E00020 CMP R0,#141660 BHI E00160 BR E00026E00020: CMP R0,#41660 BHI E00154E00026: ASL R0 CMP R0,#63000 BCS E00144 SETD SETI MOV #E00170,R0 LDCDF (R4),R2 MODF (R0)+,R2 stcfi R3,R4 LDF #^F1,R0 DIVF (R0)+,R2 SETF LDCDF R2,R2 CFCC BEQ E00122 LDF R2,R3 MULF R3,R3 ADDF (R0)+,R3 LDF (R0)+,R1 DIVF R3,R1 ADDF R2,R1 ADDF (R0)+,R1 DIVF R1,R2 MULF #^F2,R2 SUBF R2,R0 MULF R0,R0E00122: STF R0,-(SP) MOV (SP)+,R0 MOV (SP)+,R1 SWAB R4 CLRB R4 ASR R4 ADD R4,R0 BMI E00154 RETURNE00144: CLR R1 MOV #^F1,R0 BR E00166E00154: TRAP 310 BR E00162E00160: TRAP 312E00162: CLR R0 CLR R1E00166: RETURNE00170: .word 040270,125073 .word 024534,013761 .word 040470,125073 .word 024534,013761 .word 041560,056133 .word 042426,071571 .word 141100,036602 .END*d*PL(`((#h `(*D 1 C+  f# x(x*&@ PCBP*LA& a @ȉʉ&r  @;\)8A;\)pC[\Eys@‚=)10 DIM A(255),B(255),C(255),D(255),E(255))11 DIM F(255),G(255),H(255),I(255),J(255))12 DIM K(255),L(255),M(255),N(255),O(255)00  | .TITLE FPP5 .IDENT /V1.1/;FIS FLOATING POINT EMULATOR;5&;WRITTEN 15-DEC-78 BY DANIEL STEINBERG4; SRI INTERNATIONAL loc K1023-; 415 326-6200 ext.5539;E; MODIFIED 8-MAR-79 TO CORRECT LDF,LDCDF,LDCIF INPUT BYTE COUNT ERRORV;;D;The basic idea is this:I; On the PDP 11/40 or 11/03 with FIS (Floating Instruction Set), the FP11SF; floating point processor op-codes are illegal instructions. RSX-11MM; provides a mechanism whereby tasks may be notified, via an SST (SynchronousM; System Trap), when an illegal instruction is encountered. The task is then I; free to handle it as it wishes, without further Executive interference. M; This emulator is entered at FPPSST when illegal instructions occur. If theTN; offending op-code is not a floating point op-code, then the emulator removesM; its entry point from the SST vector table and returns to attempt to executeeJ; the instruction again. This time, either the task itself will field theN; instruction, or the Executive will abort the task. If the offending op-codeK; is a legal FPP instruction code, the emulator will decode and execute it,iO; using the FIS instructions. As far as i know, the emulator functions exactly ); like FPP with the following exceptions:eF; 1) As of now, all arithmetic is 32-bit floating point, regardless ofC; the state of the FD-bit.....one day, 64-bit precision might bet; implemented.nF; 2) The emulator does not issue any interrupts on -0 or other errors.D; 3) Chop mode is always used, regardless of the state of the FT-bitC; 4) The FER, FID, FIUV, FIU, FIV, FIC, FT, and FMM bits of the FPS 2; (Floating Point Status register) are ignored.@; 5) The FEC (Floating Exception Code) register never contains aI; 2, 12., or 14. (floating op-code error, -0 error, maintenance trap).nE; Other errors set the FEC register and the FEA register (FloatingiH; Exception Address), and the STST instruction reads and clears theseI; locations. Thus, if STST recalls a zero from FEC, no error occurred %; since the last STST instruction.RH; 6) Note that immediate mode addresses (code: 27) are legal destination+; addresses (though they make no sense).F,; There are a few pitfalls to watch out for:D; 1) The SST vector table may be set up as a Task or Debugging LevelA; SST. There are two entry points to reflect this difference.rB; Debugging Level SST addresses are used, if they exist, beforeC; Task Level SST addresses. If a task specifies two of the samerD; type of SST vector tables, the last (in time) specified will beF; used. ODT, for instance, uses Debugging Level SSTs when the userI; task is running. To enable a Task Level SST when running under ODT,sI; the user must clear the Debugging Level SST entry first ( $#V, wherebA; # is a number from 0 to 7, corresponding to the SST number). I; [All this sounds extremely complicated because it is. The ExecutiveeC; Reference Manual for RSX sheds some light on what's going on.]sD; Most people using this emulator will not be running ODT, so theF; call: CALL FPINIT :as the first instruction of their programsC; will effectively implement the emulator and make it invisible.u r@; 2) FPPEMULAT dynamically inserts the entry point FISSST in theG; SST vector table when it is entered, and removes it when it exits.TD; This is so that FIS overflows, underflows, and divide by zeroesD; are caught by the emulator and dealt with expediently. BecauseB; of this, it is not sufficient to place the entry point FPPSSTF; in a user SST vector table, rather than calling FPINIT or FPPINI.G; However, you could place both FPPSST and FISSST in your SST table, F; assuming that you don't intend to generate any FIS errors in yourD; own code, or you could place your own vectors in the emulator'sF; SST table (at SSTTBL), if you really want to be perverse. You're; on your own. C; 3) T-bit traps are suspended until after SST routines execute the C00  cTADATADATA; RTI instruction. That means that ODT will single step throughiC; FPP instructions as though the hardware was there (nice, eh?). A; If you want to set a breakpoint in the emulator code itself, ; that's perfectly kosher.iG; 4) This code buys you nothing unless you have FIS (if anyone modifiesc5; it to work with no FIS/EIS, please let me know).tB; 5) I wrote this code trying to optimize speed and size both, andD; consequently, it is not a shining example of easy-to-read code.; Good luck.sG; I have made references to details about the FP-11 processor which areiE; only comprehensible if you have a manual for it....It is documented D; in the 1978-79 PDP11 Processor Handbook, and g-d knows where else.;hG; This emulator has successfully been incorporated into the DECUS BASICfK; program, which uses exclusively FPP instructions, by merely inserting theiK; instruction: CALL FPINIT :at the start of the program, an by modifyingn"; the floating point trap routine.;d;**** NOTE ****kI; This code is NOT position independent. The instructions and data areasrO; have been separated into two psects (FPPPUR and FPPIMP), but i've never triedt2; incorporating this code into a resident library.;e;**** ANOTHER NOTE ****oM; It might be possible to munge around with the Executive a little to includeeM; this package right in the Exec. This would mean that the Exec code to saveFN; and restore FPP status during task-switching would work just as if there wasO; an FP-11. This is probably no small task, though, and if anyone accomplishesn; it, please let me know.;Daniel Steinberg....8-MAR-79p .PSECT FPPPUR I ;PURE CODE AREA .MCALL SVTK$S,SVDB$S,ENAR$SFPINIT::C SVDB$S #SSTTBL,#8. ;SET DEBUGGING SST TABLE (USE MOST OF THE TIME)s BR FPENFPPINI::< SVTK$S #SSTTBL,#8. ;SET TASK SST TABLE (USE WITH DDT, ETC.) FPEN: ENAR$S RETURNl e=; FPP SST ENTRY....MAIN INSTRUCTION DECODE/EXECUTE DISPATCHER FPPSST:: MOV R0,SVR0 ;SAVE R0. MOV #SVPC,R0 ;GET ADDRESS OF TOP OF REG STACK MOV (SP)+,(R0)+ ;SAVE PCe MOV (SP)+,(R0) ;SAVE PS MOV #SVSP,R0 ;POINT R0 AT SVSPr MOV SP,(R0) ;SAVE SP' MOV R5,-(R0) ;AND THE REST OF THE REGSK MOV R4,-(R0)S MOV R3,-(R0)S MOV R2,-(R0)8 MOV R1,-(R0)G. CLR IL ;CLEAR SSTTBL ENTRY TO AVOID RE-ENTRY< SUB #8.,SP ;RESERVE STACK SPACE IN CASE OF D.P. -(SP) FDST" MOV SVPC,R3 ;GET PC AT INTERRUPT- MOV -(R3),R2 ;GET INSTRUCTION THAT CAUSED ITU5 MOV R3,INSPC ;SAVE INSTRUCTION ADDRESS FOR FEA LATERM SUB #170000,R2 ;FPP?S BLT CRASH ;NO....GIVE UP- MOV FPS,R1 ;GET CURRENT FP STATUS REG VALUE" BIT #7000,R2 ;ESOTERIC OPERATION? BNE TYPE3 ; YUPP BIT #700,R2 ;SIMPLE OPERATION? BNE TYPE2 ; YUP( CMP R2,#12 ;TRIVIAL OP?R& BHI CRASH ; NOPE...NONE OF THE ABOVE'TYPE1: ASL R2 ;TURN VALUE TO AN OFFSET. JMP @TBL1(R2) ;AND DISPATCHTBL1: .WORD COPYCC ;CFCCS .WORD SETF ;SETF .WORD SETI ;SETI* .WORD CRASH,CRASH,CRASH,CRASH,CRASH,CRASH .WORD SETD ;SETD .WORD SETL ;SETL A; TYPE 1 INSTRUCTION EXECUTERS#SETF: BIC #FD,R1 ;CLEAR DOUBLE BIT; BR EXFPS )SETI: BIC #FL,R1 ;CLEAR LONG INTEGER BITI BR EXFPS?SETD: BIS #FD,R1 ;SET DOUBLE, BR EXFPS SETL: BIS #FL,R1 ;SET LONG('EXFPS: BR EXIT ;DONE (THAT WAS EASY!) ,;REGACC IS CALLED BY ACCOP AND ACCRV (BELOW);INPUT: R4 - PTR TO SVR#);OUT: R4 - PTR TO AC# (ERROR IF # > 5)C=REGACC: SUB #SVR0,R4 ;CONVERT GENERAL REGISTER ADDRESS TO ACCC CMP R4,#10. ; ALLOW ACC0-5 BGT CRASH ;ELSE ERRORD ASL R4E ASL R4 ;EACH ONE IS 8 BYTESE ADD #AC0,R4 MOV R4,R5 RTS PCD L; FPP SST EXIT ROUTINES @CRASH: SUB #2,SVPC ;POINT PC BACK TO INSTRUCTION THAT FUCKED UP4 BR OUT ;AFTER RTI, SST WILL NOT GO TO FPPSST AGAIN COPYCC: MOV R1,R2 ;COPY THE FPS. BIC #177760,R2 ;CLEAR ALL BUT CONDITION CODES' BIC #17,SVPS ;CLEAR PS CONDITION CODES & BIS R2,SVPS ;AND SET THE NEW ONES IN2EXIT: MOV #FPPSST,IL ;SET UP THE SST ADDRESS AGAIN8OUT: MOV SVSP,SP ;RESTORE STACK PTR (POSSIBLY MODIFIED)' MOV #FPS,R0 ;POINT TO TOP OF REG MESSE MOV00  | R1,(R0) ;SET FINAL FPS MOV -(R0),-(SP) ;PUSH PST MOV -(R0),-(SP) ;PUSH PC, TST -(R0) ;SKIP SVSP MOV -(R0),R5 ;RESTORE REGSB MOV -(R0),R4T MOV -(R0),R3 MOV -(R0),R2A MOV -(R0),R1O MOV -(R0),R0T CLR FIS ;NO FIS SST * RTI ;GO HOME AND STAY THERE (HOPEFULLY) C-;FPP TYPE 2 INSTRUCTION DECODING AND DISPATCHTTYPE2: CMP R2,#400 ; > STST ? BGE 1$ ;YEST CMP R2,#300 ; < STST?U BGE 2$ ; STST EXACTLYS JSR R3,OPRAND2 .WORD REGOP,OFF2 ;YES...GET A SINGLE WORD SRC/DST BR 5$1$: JSR R3,OPRANDL9 .WORD ACCOP,OFF48 ;GET A DOUBLE/QUADRUPLE WORD FSRC/FDST, BR 5$-2$: JSR R3,OPRAND ; FOR STST...REG OR 4 BYTES, .WORD REGOP,OFF4 ;GET A DOUBLE WORD SRC/DST&5$: ASR R0 ;TURN BYTE CNT TO WORD CNT ASL R2 ;SET UP FOR DISPATCHM ASL R2Y CLRB R2 SWAB R2 ASL R2T5 JSR PC,@TBL2-2(R2) ;DISPATCH (R2 NEVER HAS 0 OFFSET)R BR EXIT ;AND GO HOMETBL2: .WORD LDFPS3 .WORD STFPS .WORD STSTS .WORD CLRF .WORD TSTFD .WORD ABSFP .WORD NEGFG A-;FPP TYPE 3 INSTRUCTION DECODING AND DISPATCHL%TYPE3: CMP R2,#5000 ;SIMPLE AC/FSRC ?P BLO 40$ ;YES# MOV R2,R4 ;NO...DO SOME TWIDDLINGT" CLRB R4 ;LOOK AT JUST THE OPCODE CMP R4,#6400 ;MAP 6400 -> 5000 BLO 1$ ; 7000 -> 5400O SUB #1400,R4 ; 7400 -> 60001$: CMP R4,#5400 BLO 20$ ;AC/(SRC/DST)T" BHI 30$ ;AC/(FSRC/FDST....[~FD])(10$: JSR R3,OPRAND ;AC/(SRC/DST....[FL]) .WORD REGOP,OFF24 BR 100$)20$: JSR R3,OPRAND ;SIMPLE 2-BYTE SRC/DSTD .WORD REGOP,OFF2P BR 100$;30$: JSR R3,OPRAND ;FSRC/FDST, LENGTH DOESN'T FOLLOW FD-BITY .WORD ACCRV,OFF84 BR 100$440$: JSR R3,OPRAND ;FSRC/FDST, LENGTH FOLLOWS FD-BIT .WORD ACCOP,OFF48"100$: MOV R2,R4 ;GET OPCODE AGAIN! BIC #177477,R4 ;CLEAR ALL BUT AC7 ASR R40 ASR R4# ASR R4 ;TURN INTO OFFSET ADD #AC0,R4" BIC #17,R1 ;CLEAR N,Z,V,C IN FPS! ASR R0 ;R0 <- WORD COUNT FOR R5J- MOV #FISSST,FIS ;SET UP ROUTINE FOR FIS SSTsP CLRB R2 SWAB R2 ASL R2,' JSR PC,@TBL3-4(R2) ;DISPATCH ON OPCODEG JSR PC,TSTR3 ;SET FCCs IN FPS BR EXITTBL3: .WORD MULF .WORD MODF- .WORD ADDFA .WORD LDF .WORD SUBF: .WORD CMPFD .WORD STF .WORD DIVFW .WORD STEXP .WORD STCFI .WORD STCFD .WORD LDEXP .WORD LDCIF .WORD LDCDF E"; MAIN OPERAND DECODING DISPATCHER-OPRAND: MOV R2,R4 ;GET A COPY OF INSTRUCTION7" BIC #177770,R4 ;CLEAR ALL BUT REG ASL R4O9 ADD #SVR0,R4 ;POINT TO SAVED REG (WILL ADJUST IF MODE 0)S MOV R2,R5 ;GET ANOTHER COPYR# BIC #177707,R5 ;CLEAR ALL BUT MODEO; BEQ MODE0 ;IF 0, WHAT HAPPENS DEPENDS ON CALLER SUBR LISTR# TST (R3)+ ;SKIP MODE 0 SUBROUTINE. ASR R5 ;SET UP FOR DISPATCHC ASR R5O/ JMP @MODE-2(R5) ;AND GO DO SPECIFIC OPERATIONSMODE: .WORD MODE1L .WORD MODE2 .WORD MODE3 .WORD MODE4 .WORD MODE5 .WORD MODE6 .WORD MODE7 (;MODE 0 DISPATCHER, AND RELATED ROUTINES@MODE0: JMP @(R3)+ ;DISPATCH TO CALLERS ROUTINE TO HANDLE MODE 0(REGOP: MOV R4,R5 ;USE GENERAL REGISTERS( TST (R3)+ ;AND SKIP THE OFFSET ROUTINE#OFF2: MOV #2,R0 ;2 BYTES AVAILABLEA RTS R3 AACCOP: JSR PC,REGACC ;CONVERT REGISTER ADDRESS TO FPP ACC ADDRESSA$ TST (R3)+ ;SKIP THE OFFSET ROUTINE+OFF48: MOV #4,R0 ;LENGTH DEPENDS ON FD-BITI& BIT #FD,R1 ;IF SET, DOUBLE PRECISION BEQ 1$ ;ELSE SINGLEM ASL R0O 1$: RTS R3#OFF4: MOV #4,R0 ;4 BYTES AVAILABLEI RTS R3 %ACCRV: JSR PC,REGACC ;GET ACC ADDRESS TST (R3)+ ;SKIP OFFSET ROUTINE/OFF84: MOV #4,R0 ;LENGTH IS OPPOSITE OF FD-BITG BIT #FD,R1( BNE 1$D ASL R0 1$: RTS R3+OFF24: MOV #2,R0 ;LENGTH DEPENDS ON FL-BITR BIT #FL,R1J BEQ 1$ ;LONG INTEGER IF SETA ASL R0 1$: RTS R3 A; MODE 1 - 7 DECODING ROUTINESMODE1: MOV (R4),R5 ; (R)% JMP @(R3)+ ;GO SET AVAILABLE LENGTHF#MODE2: MOV (R4),R5 ; (R)+ or #nS CMP R4,#SVPCO BNE 1$  TST (R3)+ ; #n" MOV #2,R0 ;ONLY 1 WORD AVAILABLE BR 2$31$: JSR R3,@(R3)+ ; (R)+ .... SET OFFSET AS NEEDEDF-2$: ADD R0,(R4) ;AUTO-INCREMENT THE REGISTERS RTS R3-%MODE3: MOV @(R4),R5 ; @(R)+ or @#A$3 ADD #2,(R4) ;AUTO-INCREMENT THE REG (EVEN IF PC)I JMP @(R3)+ ;AND SET OFFSET00  cTADATADATAMODE4: JSR R3,@(R3)+ ; -(R) SUB R0,(R4) ;AUTO-DECREMENTD+ MOV (R4),R5 ;GET ADDRESS OF OPERAND VALUEJ RTS R3 MODE5: SUB #2,(R4) ; @-(R) MOV @(R4),R55 JMP @(R3)+ ;GET OFFSET"MODE6: MOV @SVPC,R5 ; X(R) or A1 ADD #2,SVPC ;GET NEXT WORD AND POINT PC PAST IT & ADD (R4),R5 ;ADD IN REG (EVEN IF PC) JMP @(R3)+ ;AND SET OFFSET$MODE7: MOV @SVPC,R5 ; @X(R) or @A. ADD #2,SVPC ;GET NEXT WORD AND POINT PC PAST ADD (R4),R5 ;ADD REG MOV (R5),R5 ;AND DO INDIRECT JMP @(R3)+ ;SET OFFSET R; TYPE 2 INSTRUCTION EXECUTERS LDFPS: MOV (R5),R1 ;SET NEW FPS RTS PCO.STFPS: MOV R1,(R5) ;GIVE BACK THE CURRENT FPS RTS PC8STST: MOV #FEC,R2 ;GIVE USER SOME CLUE ABOUT HIS FUCKUP1$: MOV (R2),(R5)+. CLR (R2)+ ;CLEAR FEC (AND FEA) AFTER STORAGE SOB R0,1$ RTS PCD&CLRF: MOV R5,R3 ;SAVE FOR TSTR3 LATER 1$: CLR (R5)+E SOB R0,1$ BR S1FCC)&ABSF: BIC #100000,(R5) ;CLEAR SIGN BIT BR TSTF)NEGF: TST (R5) ;IF ZERO, DON'T SET TO -0A BEQ TSTFE" ADD #100000,(R5) ;SWITCH SIGN BIT"TSTF: MOV R5,R3 ;SET UP FOR TSTR38S1FCC: BIC #17,R1 ;CLEAR ALL FCC'S (C AND V STAY CLEAR)*TSTR3: BIT #77600,(R3) ;EXPONENT ALL ZERO? BEQ 2$ ;YES; TST (R3) ;NEG? BPL 1$ ;NO BIS #FN,R1 ;YES...SET FN-BIT 1$: RTS PC#2$: CLR (R3) ;MAKE SURE IT'S CLEAR, BIS #FZ,R1 ;AND SET FZ-BIT RTS PCF T; TYPE 3 INSTRUCTION EXECUTERS%MODF: JSR PC,XXXF ;SET UP FOR FIS OPR FMUL R3 ;FISA<-PRODUCT" MOV (R3),R2 ;GET RESULT EXPONENT$ MOV 2(R3),-(R3) ;DUPLICATE A INTO B MOV R2,-(R3) ;R3 POINTS TO B ( MOV #377,R4 ;SET UP TO INTEGERIZE FISB MOVB R4,R5 ;SIGN EXTEND IN R5S* JSR PC,R2EXP ;CONVERT EXPONENT TO INTEGER BGT 5$ ;BR IF OK2 MOVB R5,R4 ;ZERO RESULT EXPECTED, SO SET R4, TOO05$: NEG R2 ;SHIFT THE R4,R5 MASK RIGHT TO CLEAR* ASHC R2,R4 ;ALL BUT INTEGER BITS IN FISB BIC R4,(R3)+ ;CLEAR HIY BIC R5,(R3) ;AND LOW MOV DST,R4 ;GET DST SUB #AC0,R4 BIS #10,R4 ;GET ACv1 ADD #AC0,R4& MOV -(R3),(R4)+ ;STORE HIGH INT(PROD)% MOV 2(R3),(R4)+ ;STORE LOW INT(PROD)( CLR (R4)+ CLR (R4)+ ;CLEAR VERY LOWU) FSUB R3 ;FISA<- PROD - INT(PROD) = FRACT" BR ATODST ;SET RESULT AND RETURN N&XXXF: JSR PC,R5TOB ;SET FSRC INTO FISB+ JSR PC,CHOPB ;AND CHOP TO SINGLE PRECISIONO" JSR PC,ACDST ;SET UP DST AND DSTL JSR PC,R4TOA ;SET AC INTO FISA ! MOV #FISB,R3 ;SET PTR FOR FIS OPR JMP CHOPA ;AND CHOP IT, TOOA%MULF: JSR PC,XXXF ;SET UP FOR FIS OP4 FMUL R3 ;MULTIPLYC BR ATODST ;AND FINISH UP%ADDF: JSR PC,XXXF ;SET UP FOR FIS OP( FADD R3 ;ADD BR ATODST ;AND FINISH UP%SUBF: JSR PC,XXXF ;SET UP FOR FIS OP< FSUB R3 ;SUBTRACTF BR ATODST ;AND FINISH UP%DIVF: JSR PC,XXXF ;SET UP FOR FIS OP  FDIV R3 ;DIVIDER BR ATODST ;AND FINISH UP'STCFD: JSR PC,R5DST ;SET UP DESTINATIONL" JSR PC,R4TOA ;AND LOAD THE SOURCE0 BR XXCDF ;ROUND IT, IF NECESSARY, AND STORE ITLDF:-LDCDF: JSR PC,R5TOA ;GET FSRC IN DESIRED MODEO" JSR PC,ACDST ;SET UP DST AND DSTL*XXCDF: CMP DSTL,#8. ;DOUBLE PRECISION DST? BGE 1$ ;YUP% JSR PC,TRNCA ;NO...CONVERT TO SINGLE 1$: ;GO RIGHT INTO ATODSTATODST: MOV #FISA,R4 ;SET SRCC MOV DST,R3 ;AND DSTN3 MOV R3,R2 ;R2 IS DST PTR....R3 IS FOR TSTR3 LATERIR4TOR2: MOV DSTL,R0 ;GET COUNTF1$: MOV (R4)+,(R2)+: SOB R0,1$ RTS PC  T!LDCIF: MOV (R5)+,R2 ;GET HI ORDERH BIT #FL,R1 ;LONG OR SHORT? BNE 1$ ;...LONG ( MOV R2,R3 ;SHORT--WE GOT THE LOW ORDER, SXT R2 ;EXTEND SIGN SINCE SINGLE PRECISION BR 3$*1$: CLR R3 ;CLEAR LOW ORDER, JUST IN CASE DEC R0 ;HOW MANY AVAILABLE?, BEQ 3$ ;ONLY ONE....DONE MOV (R5)+,R3 ;GET 1ST INT WDT"3$: JSR PC,ACDST ;SET DST AND DSTL$ MOV #241,R4 ;SET STARTING EXPONENT TST R2 ;NEG? BGE 5$ ;NO" BIS #400,R4 ;YES...SET HI WD NEG NEG R3 ;AND MAKE # POS ADC R2R NEG R2S) BVC 10$ ;OK...CONVERT A POSITIVE NUMBERH DEC R2 ; MAP 100000 -> 077777B BR 10$ ;AND CONVERTR5$: BGT 10$ ;NON-ZERO SRC TST R3 ;ARE THEY BOTH ZERO?I BEQ 15$ ;YES...DONEB)10$: DEC R4 ;INTEGER TO CONVERT IN R2,R3A, ASL R3 ;SHIFT UNTIL "HIDDEN BIT" C00  |OMES OUT ROL R2.% BCC 10$ ;IT'S GOTTA COME EVENTUALLY MOV R2,R5 ;COPY HIGH WORD 2 ASHC #7,R4 ;AND SHIFT IN TO MAKE A HI-ORDER WORD6 ASHC #-9.,R2 ;AND SHIFT LOW TO MAKE A LOW-ORDER WORD, MOV R4,R2 ;SET THE HIGH....RESULT IN R2,R3&15$: MOV #FISA,R0 ;SET FISA FOR ATODST MOV R2,(R0)+; MOV R3,(R0)+0 CLR (R0)+ CLR (R0)+ BR ATODST %STCFI: MOV R5,-(SP) ;SAVE DST ADDRESSB! MOV (R4)+,R2 ;GET HIGH ORDER SRC BPL 1$ ;BR IF POSE BIS #FN,R1 ;SET NEG FLAG1$: MOV (R4)+,R5 ;GET LOW ORDERM MOV R2,R4 ;AND SET HIGH ORDER % JSR PC,R2EXP ;CONVERT R2 TO EXPONENTP BLE 5$ ; RESULT IS ZERO;- MOV #16.,R3 ;16. IS UPPER EXP LIMIT IF S.P.. BIT #FL,R1F BEQ 3$ ;WHICH IT ISE% ASL R3 ;32. IS UPPER LIMIT FOR D.P.S3$: CMP R2,R3 ;IS R2 TOO BIG? BGE 7$ ;YES...OVERFLOW SUB #8.,R3 ;R3 <- 8. or 24.R' SUB R3,R2 ; ( -8. or -24. ) < R2 < 8.: BIS #200,R4 ;SET 'HIDDEN BIT'0 BIC #177400,R4 ;AND CLEAR THE EXPONENT AND SIGN# ASHC R2,R4 ;SHIFT TO PROPER PLACE$ BEQ 5$ ;ZERO BIT #FL,R1 ;LONG INTEGER?A BNE 9$ ;YES...NON-ZERO1 CLR R5 ;NO...CLR LOW SIDE IN CASE OF FUTURE NEG 2 TST R4 ;AND USE DIFFERENT CRITERIA FOR ZERO TEST BNE 9$ ; AND FINISH UP5$: CLR R4 ;ZERO RESULT CLR R5U BIS #FZ,R1 ;SET FZ-BIT, BIC #FN,R1 ;AND CLEAR FN-BIT, JUST IN CASE BR 10$ ;AND STORE RESULT'7$: BIS #FC,R1 ;OVERFLOW....SET FC-BIT MOV #ERRCNV,FEC ;SET ERROR CODE MOV INSPC,FEA ;AND ADDRESSD MOV #77777,R4 ;AND SET HIGH MOV #177777,R5F9$: BIT #FN,R1 ;NEG?Q BEQ 10$ ; NO...STORE RESULTI NEG R5 ;YES...NEG RESULT ADC R4C NEG R4 ;-OVERFLOW WORKS, TOO#10$: MOV (SP)+,R3 ;RETRIEVE DST PTRI0 MOV R4,(R3)+ ;SET HIGH ORDER (OR ALL OF RESULT) DEC R0$" BEQ CCCQ ;ONLY ONE WORD TO STORE MOV R5,(R3) ;SET LOW ORDER'CCCQ: JMP COPYCC ;COPY TO CCs AND QUITB/STEXP: JSR PC,R4EXP ;GET EXPONENT FROM AC TO R2O MOV R2,(R5) ;AND STORE IT AWAY BGT CCCQ ;AND DONE IF >0 BEQ 1$  BIS #FN,R1 ;MINUS, BR CCCQ1$: BIS #FZ,R1 ;ZEROF BR CCCQ ;COPY CCs AND QUIT $)R4EXP: MOV (R4),R2 ;GET EXPONENT INTO R2 R2EXP: ASL R2C CLRB R2 ;EXTRACT THE EXPONENT SWAB R2 SUB #200,R2 ;FROM EXCESS 200 RTS PC 4CMPF: JSR PC,R5TOB ;GET AS MUCH OF FSRC AS AVAILABLE MOV #FISB,R5 ;AND POINT TO IT, TST (R4) ; 1ST, CHECK IF BOTH ARE NEGATIVE BGE 1$ ;NOT THIS ONE TST (R5)X BGE 1$ ;NOR THIS1 MOV R5,R3 ;THEY ARE BOTH NEG...REVERSE THE TESTC" MOV R4,R5 ;BY REVERSING THE PTRS MOV R3,R4;1$: CMP (R4),(R5)+ ;COMPARE SIGN, EXPONENT, AND HI FRACTION (2$: BGT LT ;IF AC GREATER, THEN FSRC R3( ADD #4,R3 ;SKIP OVER SENDING TASK NAME( MOV SP,R5 ;ADD OF RECORD # STORE -> R5 TST R0 ;CHECK ON STATUS  BLT 3$ ;IF NEG, BRANCH) LDF (R3)+,AC0 ;RETRIEVED RECORD # -> AC0C1 MOV R3,-(SP) ;SAVE R3 BECAUSE USED IN SUBROUTINE1$ JSR PC,@#NSTORE ;STORE THE RECORD # MOV (SP)+,R3 ;RESTORE REGISTERB+ ADD #00  |12,R5 ;MOVE R5 UP TO NEXT STORE DATAD MOV (R3)+,R4 ;STRING LEN -> R4L$ BEQ 4$ ;IF NO STRING, DON'T MODIFY" JSR PC,@#SSTORE ;STORE THE STRING 4$: ADD #24,SP ;CLEAN THE STACK' RTS PC ;AND RETURN TO CALLING PROGRAMR$3$: LDCIF R0,AC0 ;ERROR CODE -> AC0 JSR PC,@#NSTORE ;PUT IT AWAY  BR 4$ ;AND FINISH UP; @; FOLLOWING CODE SYNCHRONIZES THE SENDING OF A DATA BLOCK TO THEB; DATA BASE MANAGING PROGRAM AND THE RECEIPT OF DATA BACK FROM IT.; 'SYNC: CLEF$S #EVFL ;CLEAR EVENT FLAG 1S) MOV R2,R0 ;COPY THE ONE ADDRESS WE KNOWE1 ADD #AST-VSRDPB,R0 ;MAKE IT POINT TO AST ROUTINE; SRDA$S R0 ;DECLARE ITY DIR$ R2 ;SEND DATA TO DBM TASK$ MOV @#0,R0 ;CHECK DIRECTIVE STATUS BLT 2$ ;IF NEG, BRANCH. ALTP$S ,#STPRI ;PUT PRIORITY DOWN TO STANDBY+ WTSE$S #EVFL ;AND WAIT FOR THE EVENT FLAG &2$: SRDA$S #0 ;UN-DECLARE RECEIVE AST% ALTP$S ;BACK TO INSTALLED PRIORITYO! RTS PC ;WE'VE RECEIVED THE DATAA;T; NOW THE AST ROUTINE ;M'AST: ALTP$S ;BACK TO DEFAULT PRIORITYT% MOV R2,R0 ;COPY THE ADDRESS WE KNOWR4 ADD #VRCDPB-VSRDPB,R0 ;MAKE R0 POINT TO RECEIVE DPB MOV @#ENDUSR,R3 ;CALCULATEA# SUB @#ENUDAT,R3 ;AVAILABLE STORAGEA+ SUB #4,R3 ;SUBTRACT SPACE FOR SENDER NAMET/ CMP R3,#203 ;IS IT BIGGER THAN MAX WE CAN USEI BLE 1$ ;IF NOT, BRANCH& MOV #203,R3 ;IF SO, REPLACE WITH MAX&1$: MOV R3,R.VDBL(R0) ;AND PUT LEN AND MOV @#ENUDAT,R3 ;ADDRESS IN DPB MOV R3,R.VDBA(R0) DIR$ R0 ;RECEIVE THE DATAO& MOV @#0,R0 ;RECORD STATUS OF RECEIVE2 SETF$S #EVFL ;SET EVENT FLAG TO RESUME MAIN TASK ASTX$S ;AND EXIT FROM AST;,; SUBROUTINES ANYRET AND ALLRET; LOADABLE BASIC SUBROUTINES4; FOR RETRIEVAL OF RADIATION ONCOLOGY LEVEL1 RECORDS7; BY MATCHING EITHER ANY OR ALL OF THE MATCHING STRINGS ; BASIC CALLS:8; CALL "ANYRET"(F0,R0,R1,S$,D$,D [,D1$,D1] [,D2$,D2]...)8; CALL "ALLRET"( " " " " ); WHERE:; F0 IS RECORD INCREMENT; +2 FOR FORWARD SEARCH; -2 FOR BACKWARD SEARCHR; R0 IS RECORD # TO START FROM*; R1 IS VARIABLE TO RECEIVE FOUND RECORD # ; 0 = NONE FOUND (S$ UNCHANGED); - = FAILED DIRECTIVE STATUS/; S$ IS STRING VARIABLE TO RECEIVE FOUND RECORDE'; D$ D1$ ETC. ARE STRINGS FOR THE MATCH3; D D1 ETC. ARE CORRESPONDING COL #'S TO START ATG; NOTE:I5; THE SUM OF THE LENGTHS OF THE MATCHING STRINGS PLUSD7; 4* THE NUMBER OF STRINGS SHOULD BE LESS THAN OR EQUAL 6; TO THE RECEIVED STRING LENGTH (S$). IF NOT, THE USER; RISKS A MEMORY PROTECT ERROR.A;S6; FOR THE ROUTINE "ANYRET" A MATCH ON ANY STRING (KEY)5; WILL RETRIEVE THAT RECORD. FOR THE ROUTINE "ALLRET"N$; ALL STRINGS (KEYS) MUST MUST MATCH;$+TYPSAV: .WORD 0 ;PLACE TO SAVE TYPE OF CALL;$2ANYRET: MOV #1,TYPSAV ;REMEMBER THAT THIS IS "ANY" BR COMRET2ALLRET: MOV #2,TYPSAV ;REMEMBER THAT THIS IS "ALL";L4COMRET: JSR R4,@#GTRGPI ;GET ARGUMENTS IN PI FASHION .BYTE 1,1,2,4,0 .EVEN& MOV 30(SP),R0 ;LEN OF STRING S$ -> R0% ADD #16,R0 ;ADD LEN OF OTHER PARAMS . JSR PC,@#TSTU00 ;CHECK FOR ROOM, R5 AT ENUDAT BHIS 1$ ;IF OK, BRANCH OVFERR ;ELSE OVERFLOW ERROR)1$: MOV PC,R2 ;LET'S RECORD WHERE WE ARET9PCREF1: SUB #PCREF1-VSRDPB,R2 ;AND CALCULATE START OF DPB , MOV R5,S.DRBA(R2) ;MOVE IN ADDRESS OF BLOCK' MOV #6,S.DRBL(R2) ;LEN OF OTHER PARAMS;R;; FOLLOWING CODE INSERTED TO ENABLE DEBUGGING COPIES OF THES9; DATA BASE MANAGER TO EXIST IN ACCOUNTS [205,16] (PEGGY)07; AND [205,20] (BONNIE). IF THE SIGN-ON ACCOUNT IS NOT6=; [205,15] (RADIATION ONCOLOGY) OR [205,16] (PEGGY), BONNIE'SM:; COPY OF THE DATA BASE MANAGER IS USED, I.E., [205,20] IS ; ASSUMED.;$$ CMPB @#UICSTO,#15 ;IS IT [205,15] ?( BEQ 1$ ; IF YES, DON'T CHANGE DBM NAME$ CMPB @#UICSTO,#16 ;IS IT [205,16] ?1 BEQ 5$ ; IF YES, CHANGE DBM NAME TO DBP (PEGGY)E3 MOV (PC)+,R4 ; ASSUME [205,20], PUT NEW NAME IN R4E8 .RAD50 /DBB/ ; [205,20] NAME SHOULD BE FRMDBB (BONNIE) BR 6$/5$: MOV (PC)+,R4 ; [205,16], PUT NEW NAME IN R4.0 .RAD50 /DBP/ ; NAME SHOULD BE FRMDBP (PEGGY),6$: MOV R4,S.DRTN+2(R2) ;STORE AWAY NEW NAME0 MOV R4,VRCDPB-VSRDPB+R.VDTN+2(R2) ; IN 2 PLACES1$:0;S+ MOV TYPSA00   cTADATADATAV,(R5)+ ;PUT IN TYPE OF RETRIEVAL2' MOV (SP)+,(R5)+ ;MOVE IN INCREMENT AND - MOV (SP)+,(R5)+ ;DIRECTION (FLOATING NUMBER)" MOV (SP)+,(R5)+ ;AND NOW STARTING MOV (SP)+,(R5)+ ;RECORD NUMBERS* MOV @#ENUDAT,-(SP) ;SAVE END OF USER DATA MOV R5,-(SP) ;SAVE R5 MOV R2,-(SP) ;AND R2*2$: MOV R5,R4 ;CALCULATE TEMPORARY END OF, ADD #4,R4 ;USER DATA SO WE DON'T OVERWRITE MOV R4,@#ENUDAT ;SEND BUFFERS) JSR R4,@#GTRGPI ;GET SOME MORE ARGUMENTSR .BYTE 3,1,0 ;STRING AND COL #L .EVEN MOV 10(SP),R2 ;RESTORE R2 MOV 12(SP),R5 ;AND R5 LDF 4(SP),AC0 ;COL # -> AC0" STCFI AC0,(R5)+ ;INTO SEND BUFFER" MOV (SP),R0 ;LEN OF STRING -> R0" ADD #5,R0 ;ROUND UP TO NEXT WORD ASR R0 ;PLUS OTHER PARAMS@/ ADD R0,S.DRBL(R2) ;AND ADD IT TO BUFFER LENGTHP( MOV (SP)+,R0 ;LEN OF STRING -> R0 AGAIN MOV (SP)+,R3 ;ADD -> R3* MOV R0,(R5)+ ;PUT AWAY LEN IN SEND BUFFER BEQ 4$ ;IF ZERO, BRANCHD(3$: MOVB (R3)+,(R5)+ ;MOVE IN THE STRING SOB R0,3$4$: INC R5 ;ROUND UPS BIC #1,R5 ;R5* ADD #4,SP ;CLEAN OFF THE COLUMN # PARAMS MOV R5,2(SP) ;RE-SAVE R5A/ JSR PC,@#SKIP00 ;GET NEXT NON-BLANK CHAR -> R2F DEC R1 ;BACK UP TEXT PTR% CMPB R2,#', ;IS NEXT THING A COMMA?X BEQ 2$ ;IF SO, TRY FOR MORER" JSR PC,@#PARCHK ;CHECK FOR AT END MOV (SP)+,R2 ;RESTORE R2P MOV (SP)+,R5 ;AND R5 6 MOV (SP)+,@#ENUDAT ;RESTORE PREVIOUS END OF USER DATA CLR (R5)+ ;PUT IN STOPPER4# JMP COMEND ;AND GO TO COMMON CODE(END: .END 810 ! SAMPLE USE OF DIRECTIVE MACRO TO DO GTSK$ DIRECTIVE20 DIM DP%(12),BU%(16)30 LOAD "LB:[1,202]DIRECT.ATK"40 DP%(0)=63+2*25650 CALL "GETADR"(BU%(1),DP%(1))60 ST%=070 CALL "DIRECT"(DP%,ST%)P390 PRINT "TASK NAME ";R5A$(BU%(1));R5A$(BU%(2))R4100 PRINT "REQ. NAME ";R5A$(BU%(5));R5A$(BU%(6)) 102 U=BU%(8)104 U1=INT(U/256)R106 U2=INT(U-256*U1)$108 IF U1<0 THEN U1=U1-OCT("177400")0110 PRINT "UIC ";OCT$(U1);",";OCT$(U2)120 ! NOW GET TI INFO5 130 PRINTD140 DP%(0)=5+3*256150 DP%(1)=2 !LUND 155 CALL "GETADR"(BU%(1),DP%(2))160 CALL "DIRECT"(DP%,ST%)165 PRINT "TASK TI ";".170 C1=INT(BU%(1)/256) : C2=INT(BU%(1)-C1*256).175 C3=INT(BU%(2)/256) : C4=INT(BU%(2)-C3*256)$180 PRINT CHR$(C1);CHR$(C2);OCT$(C4)185 DP%(0)=3+7*2561190 DP%(1)=OCT("2540") ! GET TERM CHARACTERISTICS 195 DP%(2)=2 ! LUNU#200 DP%(3)=3+50*256 ! EV FLAG & PRIU0205 CALL "GETADR"(BU%(1),DP%(4)) ! IO STAT BLOCK210 DP%(5)=0 ! NO AST!215 DP%(6)=8 ! GET TERMINAL TYPER220 CALL "DIRECT"(DP%,ST%)'225 PRINT "TERM TYPE ";OCT$(BU%(2)))230 DP%(6)=4 ! CHANGE TO SPEEDT235 CALL "DIRECT"(DP%,ST%)'240 PRINT "TERM SPEED ";OCT$(BU%(2))(245 STOP{QQn21*n{ Q1QR1Q&Վ0 G1_ LCGA0Q~nՎ.'10~Qn0Џ}TQRQU{0QU1 .Rn)R~ЂPQ{PPQ|QQ礪 T MICHAEL REESE MEDICAL CENTER - - DEPARTMENT OF MEDICAL PHYSICS COMPUTER GETTI.BAS;6 PAGE 1 P LISTING OF DP0:[001,202]GETTI.BAS;6 ON 20-FEB-81 AT 12:12:51 PAGE 19 10 ! SAMPLE USE OF DIRECTIVE MACRO TO DO GTSK$ DIRECTIVEO 20 DIM DP%(12),BU%(16)R 30 LOAD "LB:[1,202]DIRECT.ATK"U 40 DP%(0)=63+2*256 50 CALL "GETADR"(BU%(1),DP%(1)) 60 ST%=0% 70 CALL "DIRECT"(DP%,ST%)4 90 PRINT "TASK NAME ";R5A$(BU%(1));R5A$(BU%(2))5 100 PRINT "REQ. NAME ";R5A$(BU%(5));R5A$(BU%(6))A/ 105 U1=INT(BU%(8)/256) : U2=INT(BU%(8)-U1*256)O 108 IF U1<0 THEN LET U1=-U11 110 PRINT "UIC ";OCT$(U1);",";OCT$(U2), 120 ! NOW GET TI INFO 130 PRINT 140 DP%(0)=5+3*2561 150 DP%(1)=2 !LUN! 155 CALL "GETADR"(BU%(1),DP%(2))O 160 CALL "DIRECT"(DP%,ST%)3 165 PRINT "TASK TI ";/ 170 C1=INT(BU%(1)/256) : C2=INT(BU%(1)-C1*256)D/ 175 C3=INT(BU%(2)/256) : C4=INT(BU%(2)-C3*256)9% 180 PRINT CHR$(C1);CHR$(C2);OCT$(C4)5 185 DP%(0)=3+7*256T2 190 D00  !P%(1)=OCT("2540") ! GET TERM CHARACTERISTICS 195 DP%(2)=2 ! LUN$ 200 DP%(3)=3+50*256 ! EV FLAG & PRI1 205 CALL "GETADR"(BU%(1),DP%(4)) ! IO STAT BLOCK" 210 DP%(5)=0 ! NO ASTG" 215 DP%(6)=8 ! GET TERMINAL TYPE 220 CALL "DIRECT"(DP%,ST%)( 225 PRINT "TERM TYPE ";OCT$(BU%(2)) 230 DP%(6)=4 ! CHANGE TO SPEED 235 CALL "DIRECT"(DP%,ST%)N( 240 PRINT "TERM SPEED ";OCT$(BU%(2)) 245 STOPU;1B; FOLLOWING MACRO IS USED TO GET THE ABSOLUTE ADDRESS OF A LOCALLYD; DEFINED LABEL IN POSITION INDEPENDENT FASHION (NEEDED FOR LOADABLE ; ROUTINES).;2 .MACRO GTABAD ADDRES,LOC5 .NTYPE ...ATP,LOC .IF GT ...ATP-5 MOV PC,-(SP)% ADD #ADDRES-.,(SP)E MOV (SP)+,LOC .IFF2 MOV PC,LOC6 ADD #ADDRES-.,LOC .ENDC .ENDM GTABADD;S;; IDENTIFICATION MODULE;!; DEFINE MACRO FOR IDENTIFICATION; .MACRO IDNTFY DA,MO,YR .IDENT /DA'MO'YR/ ID001=="DA ID002=="MO ID003=="YR .ENDM;6; FOR ACTUAL IDENTIFICATION, FORMAT SHOULD BE DA,MO,YR; WHERE:; DA & YR ARE TWO DIGITS EACH2; MO IS TWO ALPHA CHARACTER ABBREVIATION FOR MONTH IDNTFY 29,AU,86 .PSECT .GLOBL IDNTFYIDNTFY: .WORD ID001 .WORD ID002 .WORD ID003 .WORD 0 .ENDJ :TD8H868XH298HAU 8 ~h  29AU86^ [sQ _ [v ` ""` a 8[ b 8Rc 8?Td 8re 8#wf 8[g 8 Nh 8kQi 8^ j 8[k 8kQl 8^m 8[;8; COMMAND FILE TO ASSEMBLE IMPURE AREAS UNDER RSX11D/IAS;8A; FOLLOWING COMMAND LINE IS USED TO ASSEMBLE THE MODULE IMPUR.MAC:; FOR USE IN A TASK IMAGE. IT THEREFORE DEFINES THE SYMBOL3; "TASK" BY INCLUDING THE HEADER FILE IMPURTASK.MACR;W.IMPUR,IMPUR/-SP/CR=BASPRE/PA:1,IMPURTASK,IMPUR;A:; FOLLOWING COMMAND LINE IS USED TO ASSEMBLE IMPUR.MAC FOR7; SYMBOL TABLE USE ONLY. IT THUS OMITS REFERENCE TO THE06; HEADER MODULE IMPURTASK.MAC WHICH DEFINES THE SYMBOL; "TASK";%)IMPURNOMO,IMPURNOMO/-SP=BASPRE/PA:1,IMPUR ;E5; FOLLOWING COMMAND LINE USED TO ASSEMBLE SINGLE USERM6; VERSION OF IMPUR.MAC. IT INCLUDES BOTH GLOBAL SYMBOL2; DEFINITIONS AND FSRSZ$ MACRO. THESE ARE MUTUALLYA; EXCLUSIVE IN THE LIBRARY (MULTI-USER) VERSIONS ASSEMBLED ABOVE.,;U6IMPURSNGU,IMPURSNGU/-SP/CR=BASPRE/PA:1,IMPURSNGU,IMPUR .TITLE IMPUR .IDENT ?21FE81?N; MODIFIED FOR FPP EMULATION SUPPORT (CONDITIONAL ON FPPEMU) ;DSS1N; DANIEL STEINBERG 18-JAN-78 ;DSS1N;NOTE: FPP EMULATION IS TAKEN CARE OF BY CALLING FPINIT BEFORE EXECUTING ;DSS1N;ANY FPP INSTRUCTIONS. FPINIT SETS UP A TASK DEBUGGING SST TABLE (SVDB$S)DSS1N;THAT HANDLES ILLEGAL INSTRUCTIONS (AND FIS ERRORS, WHEN EMULATING FPP). ;DSS1N;SINCE FLOATING POINT EXCEPTIONS DO NOT OCCUR, SOME CHANGES (CONDITIONAL ;DSS1N;ON FPPEMU) HAVE BEEN MADE TO MODULES BASIC0 AND BASIC3, ALSO. ;DSS1N; FPPEMU DEFINED (OR NOT) IN ASSEMBLY PREFIX FILE ;DSS1C .IF DF,FPPEMU ;DSS1> .GLOBL FPINIT ;GLOBAL REFERENCE ;DSS1G .ENDC ;DSS1N; ;DSS1N; 00!  cTADATADATA ;DSS1N; ;DSS1N; ;DSS1;; DEFINE THIS MODULE FOR RSX11D); IF RSX11M IS NOT DEFINED BY HEADER FILE; .IF NDF RSX11MRSX11D=1 .ENDC;/; DEFINE TRAP SUBSTITUTIONS USED IN THIS MODULE; .MACRO TRPSUB A,B .MACRO A JSR PC,B .ENDM .ENDM;"; NOW THE ONE TIME TRAPS USED HERE; TRPSUB CRLF CRLF00 ;DO TRPSUB PRINTL PRN00 ;PRINT LINE7 TRPSUB SKIP SKIP00 ;GET NEXT NON-BLANK OR NON-TAB CHAR; .IF NDF TASK2; MESSAGE LINE FOR ERROR REPORTING MODULE (NO MO:);* .GLOBL ERRR03 ERRR02 ERRR05 ERRBRN PARLST) .GLOBL P.ERCD P.LINE P.FCS P.FLNM P.FNAM .IF DF RSX11D! .GLOBL MODPB M.OLUN M.ONUM MOLUN .ENDC .IFF .IF DF RSX11D .GLOBL .MOLUN .ENDC .ENDC .IF DF SNGUSR .IF DF RSX11D .GLOBL .MOLUN .ENDC .ENDC;; DECLARE MACROS TO BE CALLED; .IF DF RSX11D .MCALL MODF$ MOUT$ .ENDC; DEFINE GENERAL IMPURE PSECT; .PSECT IMPUR,RW,CONERRR03: .ASCII /ERROR /ERRR02: .ASCII / /ERRR05: .ASCII / AT LINE / .BYTE 0 .EVEN;8; DATA BLOCK FOR MO PROCESSING AND STORAGE OF ERROR INFO;7ERRBRN: .WORD 0 ;LINE NUMBER FOR ERROR HANDLING ROUTINEPARLST: .WORD ERRR03 ; .WORD 0 ;ERROR CODE HERE .WORD ERRR05 ; .WORD 0 ;LINE NUMBER HERE .WORD 0 ;FCS ERROR CODE HERE .WORD 0 ;FILE NUMBER (LUN)% .WORD 0 ;POINTER TO FILE NAME STRINGP.ERCD=2P.LINE=6P.FCS=10 P.FLNM=12 P.FNAM=14 .IF DF RSX11D:MOLUN: ;DEFINE PSUEDONYM FOR .MOLUN FOR SYMBOL TABLE LINK=.MOLUN: .BLKW 1 ;PLACE FOR TASK BUILDER TO FILL IN LUN FOR MO MODF$ ;DEFINE MO SYMBOLS5MESDST=SY$STM ;OUTPUT TO LOGGING DEVICE (I THINK TI)/MODPB: MOUT$ STRD,PARLST,,CONT,MESDST,,,,.MOLUN .ENDC;#; MATH ROUTINE IMPURE AREA (BASIC1); .IF NDF TASK .GLOBL M.I TIMBUF .ENDC*M.I: .WORD 13507 ;THIS WORD GETS MODIFIED-TIMBUF: .BLKW 8. ;BUFFER FOR TIME PARAMETERS ; .IF NDF TASK; IMPURE AREA FOR BASIC2;# .GLOBL ATTDET STATUS Q.IOFN Q.IOPL .ENDC;$; MACRO CALLS FOR BASIC2 IMPURE AREA; .MCALL QIOW$EATTDET: QIOW$ IO.ATA,2,1,,STATUS,, ;DPB FOR ATTACH AND DETACHSTATUS: .BLKW 2 ;; IMPURE AREA FOR BASIC3;.; MACRO CALLS USED IN THIS PART OF IMPURE CODE;* .MCALL FDBDF$ FDAT$A FDRC$A FDOP$A NMBLK$ .MCALL CSI$ QIO$ .IF NDF TASK;; GLOBALS USED IN BASIC3;( .GLOBL TRMSIZ TINPT LNKTIN INPBUF TOTPT) .GLOBL TCOUNT LNKTOT OUTBUF SOTPT SCOUNT' .GLOBL LNKSAV SAVBUF OINPT LNKOLD INPT( .GLOBL OTPT ERRADD COMFDB COMFNB LOWFLG# .GLOBL LOWNOC LOWSTR LOWLST LOWCOM* .GLOBL CSIBLK CSDSPT CSBUFS CSBUFF CSBUFL* .GLOBL NEWLIN REMTRM OP.LEN OP.LUN OP.EOF* .GLOBL OP.RAC OP.RTP FDBSAV OUTSTA OUTQIO .GLOBL INPSTA INPQIO OLDFLG;%; GENERAL SYSTEM POINTER AREA GLOBALS;% .GLOBL WORK USR ENDUSR LINENO STCOUN& .GLOBL RUNF BRFLAG FPEXFL ENDTXT DATI& .GLOBL RNDM ENDSTK STUDAT ENUDAT QFLG* .GLOBL LINEFL LINELN LINEHD BOLNHD DATASK) .GLOBL LASTEX STUEPT STUROU WTUNIT WTMAG) .GLOBL STUFDB ENUSAV UNLDSV TOTPT STGOSB# .GLOBL STFONX UICSTO MAXLUN LSTLIN;; FLAGS FROM SET COMMAND;* .GLOBL TRCFLG PRMTFL RPASFL WPASFL ECHOFL .GLOBL UPPFL .ENDC;% .SBTTL FILE CONTROL BLOCKS AND FDB'S;";TERMINAL INPUT FILE CONTROL BLOCK;%TRMSIZ=132. ;DEFINE MAX TERMINAL SIZE" .WORD 0 ;FLAGS WORD IN CASE USED$TINPT: .WORD INPBUF ;OUTPUT POINTER .WORD TRMSIZ ;MAX BC .WORD 0 ;UNUSED .WORD 0 ;ACTUAL BC .WORD INPBUF ;DATA ADDRESS .WORD 0 ;LINK BLOCK ERR LNKTIN: .WORD 0 ;NO FDB POINTER .WORD 0 ;EOF ADDRESSINPBUF: .BLKB TRMSIZ+2 ;BUFFER;; TERMINAL OUTPUT CONTROL BLOCK;"TOTPT: .WORD OUTBUF ;CHAR POINTER .WORD TRMSIZ ;MAX BC .WORD 0 ;UNUSED"TCOUNT: .WORD ;ACTUAL BYTE COUNT .WORD OUTBUF ;DATA ADDRESS .WORD 0 ;LINK BLOCK ERR'LNKTOT: .WORD OUTQIO ;LINK DDB POINTER .WORD 0 ;EOF ADDRESS%OUTBUF: .BLKB TRMSIZ+2 ;OUTPUT BUFFER;; SAVE OUTPUT CONTROL BLOCK;"SOTPT: .WORD SAVBUF ;CHAR POINTER00 !  ! .WORD TRMSIZ ;MAX BC .WORD 0 ;UNUSED#SCOUNT: .WORD 0 ;ACTUAL BYTE COUNT .WORD SAVBUF ;DATA ADDRESS .WORD 0 ;LINK BLOCK ERR'LNKSAV: .WORD COMFDB ;LINK DDB POINTER .WORD 0 ;EOF ADDRESSSAVBUF: .BLKB TRMSIZ;; OLD INPUT CONTROL BLOCK;#OINPT: .WORD 0 ;NOT USED FOR INPUT .WORD TRMSIZ ;MAX BC .WORD 0 ;UNUSED .WORD 0 ;ACTUAL BC .WORD INPBUF ;DATA ADDRESS .WORD 0 ;LINK BLOCK ERR'LNKOLD: .WORD COMFDB ;LINK DDB POINTER .WORD 0 ;EOF ADDRESS;%; INPUT/OUTPUT CONTROL BLOCK POINTERS;INPT: .WORD TINPTOTPT: .WORD TOTPTERRADD: .WORD 0;;VARIOUS FDB'S;/OUTQIO: QIOW$ IO.WVB,2,1,,OUTSTA,,OUTSTA: .BLKW 2;6INPQIO: QIO$ IO.RVB,2,2,,INPSTA,,INPSTA: .BLKW 2;COMFDB: FDBDF$ FDOP$A 1,CSDSPT,COMFNB!COMFNB: NMBLK$ PROGRAM,BAS,0,SY,0;; IMPURE AREA FOR CSI WORK; CSI$1CSIBLK: .BLKB C.SIZE ;DEFINE CSI PARAMETER BLOCKBCSDSPT=CSIBLK+C.DSDS ;DEFINE DATA SET POINTER ASSOCIATED WITH CSI%CSBUFS=40. ;DEFINE LENGTH OF BUFFER&CSBUFF: .BLKB CSBUFS ;ALLOCATE BUFFER,CSBUFL: .WORD 0 ;LOCATION FOR ACTUAL LENGTH;!; SWITCH TARGETS FOR OVERLAY ETC.;NEWLIN: .WORD 0"REMTRM: .WORD 0 ;REMARK TRIM FLAG ;%; IMPURE AREA FOR USER FILE OPEN CODE;= .GLOBL OP.MXL ;GLOBAL DEFINED AT TKB TIME FOR MAX # OF LUNS(OP.LEN: .WORD 0 ;BUFFER FOR FILE LENGTH OP.LUN: .WORD 0 ;BUFFER FOR LUN,OP.EOF: .WORD 0 ;BUFFER FOR EOF LINE NUMBER$OP.RAC: .WORD 0 ;RECORD ACCESS WORD"OP.RTP: .WORD 0 ;RECORD TYPE WORDFDBSAV: .WORD 0;; GENERAL SYSTEM POINTER AREA;%WORK: .WORD 0 ;TEMP TEXT POINTER SAVE8LINEHD: .WORD 0 ;POINTER TO LINE HEADER FOR CURRENT LINE+LINENO: .WORD 0 ;TEMPORARY LINE NUMBER CELL1STCOUN: .WORD 0 ;STATEMENT POSITION COUNT IN LINE5LSTLIN: .WORD 0 ;LAST PROGRAM LINE # TYPED OR READ INRUNF: .WORD 0 ;RUN FLAG BRFLAG: .WORD 0 ;BREAK (^C) FLAG/FPEXFL: .WORD 0 ;FLOATING POINT EXCEPTION FLAGSRNDM: .WORD 1 ;RANDOMIZE WORD ENDSTK: .WORD 0 ;BOTTOM OF STACK"QFLG: .BYTE 0 ;FLAG FOR MCR PRINT;J; FOLLOWING FLAG BYTES MUST BE IN ORDER CORRESPONDING TO SET COMMAND TABLE;$TRCFLG: .BYTE 0 ;FLAG FOR TRACE MODE+PRMTFL: .BYTE 1 ;FLAG FOR ? PROMPT ON INPUT#RPASFL: .BYTE 0 ;READ PASS ALL FLAG$WPASFL: .BYTE 0 ;WRITE PASS ALL FLAGECHOFL: .BYTE 1 ;READ ECHO FLAG+UPPFL: .BYTE 0 ;CONVERT LOWER TO UPPER FLAG; .EVEN;LOWFLG: .WORD 0 ;FLAG FOR NO LOWER CASE CONVERSION ON INPUT;LOWNOC=1 ;TRUE=DOING STRING READ, DON'T CONVERT LOWER CASE3LOWSTR=2 ;TRUE=READING PROGRAM AND IN ASCII STRING3LOWLST=4 ;TRUE=LISTING PROGRAM AND IN ASCII STRIMG=LOWCOM=10 ;TRUE=READING/LISTING PROGRAM AND IN COMMENT FIELDDDATASK: .WORD 0 ;SEARCHING FOR DATA STATEMENT AND IN QUOTE/REM FIELD,LINEFL: .WORD 0 ;FLAG FOR INPUT LINE COMMAND.LINELN: .WORD 0 ;LENGTH OF LINE FOR INPUT LINE/LASTEX: .WORD 0 ;LAST LINE EXECUTED BEFORE STOP8UICSTO: .WORD 0 ;PLACE TO STORE UIC WE ARE RUNNING UNDER8MAXLUN: .WORD 0 ;PLACE TO STORE MAX LUN ALLOCATED BY TKB3OLDFLG: .WORD 0 ;SPECIAL FLAG FOR PGM BEING READ IN;5STUEPT: .WORD CALNAM ;START OF USER ENTRY POINT TABLE5STUROU: .WORD 0 ;START OF USER DEFINED MACRO ROUTINES(USR: .WORD 0 ;START OF USER PROGRAM TEXT)ENDTXT: .WORD 0 ;END OF USER PROGRAM TEXT'BOLNHD: .WORD 0 ;BOTTOM OF LINE HEADERS(STUDAT: .WORD 0 ;START OF USER DATA AREA&ENUDAT: .WORD 0 ;END OF USER DATA AREA/STGOSB: .WORD 0 ;START OF GOSUB/RETURN POINTERS.STFONX: .WORD 0 ;START OF FOR/NEXT CTRL BLOCKS'STUFDB: .WORD 0 ;START OF USER FDB AREA+ENDUSR: .WORD 0 ;END OF BASIC TASK AREA AND ;END OF USER FDB AREA-DATI: .WORD 0 ;DATA POINTER (OFFSET FROM USR)7ENUSAV: .WORD 0 ;SAVE LOCATION FOR ENUDAT IN CASE ERROR*UNLDSV: .WORD 0 ;SAVED LOCATION FOR UNLOAD;'WTUNIT: .WORD 0 ;UNITS FOR WAIT TIMEOUT'WTMAG: .WORD 0 ;CORRESPONDING MAGNITUDE .IF NDF TASK;.; IMPURE AREA FOR QUESTION PROCESSING ROUTINES;% .GLOBL MPARLS QLUN QSTAT QNAM STROUT .GLOBL ANS1 STRIN COUNT .ENDCMPARLS:.QLUN: .BLKW 2 ;INPUT LUN FOR QUESTION LIBRARYQSTAT: .BLKW 5 ;OUTPUT 00!  cTADATADATASTATUS#QNAM: .BLKW 2 ;INPUT QUESTION NAME(STROUT: .BLKW 5 ;OUTPUT STRING VARIABLE#ANS1: .BLKW 2 ;INPUT NUMERIC VALUE;STRIN=STROUT ;INPUT STRING FOR DISPLAY IN FRONT OF MC ANS,COUNT=STRIN+4 ;COUNT OF CHARS PER RESPONSE;'; START OF PSECT FOR EVENTUAL USER AREA;> .PSECT $$$$US,RW,CON,REL ;PSECT TO DEFINE END OF USER STORAGEENDBAS:1 .BYTE S.EOL1 ;LEADING LINE FEED FOR USER PROGRAM;; MACROS USED IN INIT CODE;( .MCALL DIR$ SVTK$S SRDA$S SFPA$S FINIT$) .MCALL GTSK$S GLUN$S OPEN$W GMCR$ CSI$SW .MCALL CSI$ND CSI$SV FSRSZ$,MSG001: .ASCII /RSX BASIC/<15><12>/VERSION / .BYTE 0 .EVEN .SBTTL BEGIN - INIT CODE;; BASIC INITIALIZATION CODE7; THIS CODE RESIDES IN THE USER'S AREA AND IS OVERLAYED"; BY THE USER TEXT AND USER STACK.-; ONLY ONCE EXECUTED CODE MAY BE HERE!!!!!!!!F .GLOBL BEGIN ;DSS1N; ;DSS1NBEGIN: ;DSS1= .IF DF,FPPEMU ;IF FPP EMULATION ;DSS1= JSR PC,FPINIT ;SET DEBUGGING SST TABLE FOR EMULATOR ;DSS16 .IFF ;IF NOT ;DSS1< LDFPS #3400 ;SET FPP STATUS REG FOR INTERRUPTS ;DSS1? SFPA$S #FPEXTR ;SPECIFY FLOATING POINT EXCEPTION AST ;DSS1G .ENDC ;DSS1F .IF NDF PRO ;DSS1= DIR$ #MCRDPB ;GET MCR COMMAND LINE (JUST TO CLEAR) ;DSS1A MOV @#$DSW,MCRCNT ;GET CHAR COUNT FROM DSW ;DSS1 .ENDCB SVTK$S #VECTAB,#8. ;SET UP SST VECTOR TABLE ;DSS1G FINIT$ ;**-6% GTSK$S #TSKPAR ;GET TASK PARAMETERS, BIC #1,TSKPAR+G.TSTS ;MAKE SURE END IS EVEN, MOV TSKPAR+G.TSTS,R0 ;AND PUT IN ITS PLACEN ;DSS1A SUB #2,R0 ;***********ADJUST ;DSS1N ;DSS19 MOV TSKPAR+G.TSPC,UICSTO ;STORE UIC WE ARE RUNNING UNDER3 MOV TSKPAR+G.TSNL,MAXLUN ;AND MAX LUN ALLOC BY TKB MOV R0,ENDUSR MOV R0,BOLNHD+ MOV R0,STUDAT ;SET UP USER DATA AREA START MOV R0,ENUDAT ;AND END& MOV R0,ENUSAV ;AND ERROR SAVE POINTER, MOV R0,STUFDB ;AND ALSO START OF USER FDB'S. MOV R0,STGOSB ;START OF GOSUB/RETURN POINTERS- MOV R0,STFONX ;START OF FOR/NEXT CTRL BLOCKS) GLUN$S #2,#TSKPAR ;GET TERMINAL LUN INFO$ MOV TSKPAR+12,R1 ;LEN OF LINE IN R13 CMP #TRMSIZ,R1 ;CAN ONLY HANDLE MAX TERMINAL WIDTH BGE 1$ MOV #TRMSIZ,R161$: MOV R1,TOTPT+2 ;PUT IT IN CONTROL BLOCK FOR OUTPUT MOV R1,TINPT+2 ;AND FOR INPUT: MOV #ENDBAS,R1 ;SET BEGINNING OF USER AREA AT END OF CODE! MOV R1,USR ;SET UP TEXT POINTER% MOV R1,UNLDSV ;SET UP UNLOAD POINTER* MOV R1,STUROU ;AND START OF USER ROUTINES% MOV R1,R5 ;SET UP USER LIST POINTER/ MOVB #S.EOL1,(R5)+ ;WITH LF IN FIRST TEXT BYTE MOV R5,ENDTXT ;SAVE FOR RESTART MOV SP,ENDSTK ;SAVE FOR ZAPPING# CLR LINENO ;CLEAR THE LINE NUMBER- MOV #MCRDPB+G.MCRB,R1 ;START OF BUFFER -> R1" MOV R1,R3 ;DUPLICATE START IN R3 MOV MCRCNT,R0 ;LEN IN R0 ADD R0,R3 ;R3 POINTS PAST END"2$: MOVB (R1)+,R2 ;NEXT CHAR IN R2 CMPB R2,#40 ;LOOK FOR SPACE BEQ 3$ ;BR IF FOUND# CMPB R2,#11 ;ELSE IT MIGHT BE TAB BEQ 3$ ;BR IF FOUND SOB R0,2$ ;KEEP LOOKING+ BR BEGIN1 ;NOTHING SPECIAL, SO DO MESSAGE)3$: SKIP ;GET NEXT NON-BLANK CHAR -> R2 DEC R1 ;BACK UP POINTER' CMPB R2,#'? ;IS IT ONE LINE MCR PRINT BEQ 4$ ;IF SO, BRANCH*5$: SUB R1,R3 ;GET LENGTH OF STRING -> R3& MOV R3,R4 ;PUT IT IN PROPER REGISTER' BEQ BEGIN1 ;IF ZERO, DO REGULAR START MOV R1,R3 ;ADDRESS IN R3, MOV #STRSWT,R2 ;STARTING SWITCH TABLE IN R2( JSR PC,CSINT0 ;INTERPRET COMMAND STRING% JMP OLD02 ;GO FINISH AS OLD COMMAND%4$: MOVB #1,QFLG ;SET MCR PRINT FLAG MOV R3,R0 ;END ADDRESS -> R09 MOV #MCRDPB+G.MCRB+80.,ENDTXT ;DON'T 00!!  !WIPE OUT MCR BUFFER MOV ENDTXT,R5 ;SAME GOES FOR R5( MOV #S.EOL1,(R5)+ ;COPY ABOVE PROCEDURE1 MOV #MCRCNT+4,R2 ;FAKE OUT R2 INTO THINKING IT'S' MOV R1,MCRCNT ;IN A DATA CONTROL BLOCK, CLRB -1(R1) ;KLUDGE SO LINE NOT MOVED OVER& MOV #INIT01,-(SP) ;ADDRESS FOR RETURN* MOV R0,-(SP) ;JUST TO KEEP STACK STRAIGHT( JMP PCK03 ;GO CHECK STRING AND EXECUTE'BEGIN1: MOV #MSG001,R0 ;INITIAL MESSAGE PRINTL8 MOV #IDNTFY,R0 ;GET IDENTIFICATION STRING ADDRESS -> R0 PRINTL ;PRINT IT OUT CRLF ;AND TERMINATE IT JMP INIT005MCRCNT: .WORD 1 ;COUNTER FOR MCR COMMAND LINE BUFFER .IF NDF PRO MCRDPB: GMCR$ .ENDC-TSKPAR: .BLKW 20 ;BUFFER FOR TASK PARAMETERS!STRSWT: CSI$SW RN,1,RUNF,,,STRSVT CSI$SW RT,1,REMTRM CSI$SW CO,2,REMTRM CSI$NDSTRSVT: CSI$SV DECIMAL,LINENO,2 CSI$ND;C; THE FOLLOWING LINE SHOULD BE INCLUDED ONLY IN THE FINAL TASK LINK; THEREFORE THE CONDITIONAL; .IF DF TASK ! SNGUSR, FSRSZ$ 6,512.*6 ;ALLOW 6 OPEN FILES AT ONCE .ENDC ;K; THE FOLLOWING MACRO IS USED TO GENERATE TABLE ENTRIES IN A PSECT ($$$$UR)+; WHICH IMMEDIATELY PRECEDES THE USER AREA. .PSECT $$$$UR,RW,I,GBL,REL,CONCALNAM: .MACRO CALTBL NAME .NCHR $$$CH1,NAME .IF GT,<$$$CH1-6> .ERROR .ENDC .RAD50 /NAME/ .GLOBL NAME .IF LE,<$$$CH1-3> .WORD 0 .ENDC .WORD NAME .ENDM;E; FOLLOWING ARE THE ENTRY POINTS FOR THE QUESTION PROCESSING ROUTINES;) CALTBL INSTRG ;INSERT STRING SUBROUTINE& CALTBL MDIS ;DEFINE CALL ENTRY POINT CALTBL CDIS CALTBL RDIS CALTBL MPOS CALTBL CPOS CALTBL RPOS CALTBL MQTXT CALTBL CQTXT CALTBL RQTXT CALTBL MATXT CALTBL CATXT CALTBL RATXT CALTBL CQNAM CALTBL RQNAM+ ;CONDITIONAL TAKEN OUT CAUSE 11M NOW CAN ;DO A SPAWN' CALTBL SPAWNB ;THE BASIC SPAWN ROUTINE .END BEGINzX:O%Dy:΁@y:ρ@s@)qv@p@:2@K*}@p @|Q @(2@Z@%{_@zxh@:a @N*By:΁$RNRRT:CO:L. X:R  X:: X:: X:Ld:Qviv)qvSvOvsvS | IMPURN 000000 MODULE NAME 000> 21FE81 000000 VERSION ID 000> . ABS. 000000 P-SECT NAME 104> ANS1 002662 GLOBAL SYMBOL 110> ATTDET 001116 GLOBAL SYMBOL 110> BOLNHD 002576 GLOBAL SYMBOL 110> BRFLAG 002530 GLOBAL SYMBOL 110> COMFDB 002150 GLOBAL SYMBOL 110> COMFNB 002310 GLOBAL SYMBOL 110> COUNT 002654 GLOBAL SYMBOL 110> CSBUFF 002422 GLOBAL SYMBOL 110> CSBUFL 002472 GLOBAL SYMBOL 110> CSDSPT 002354 GLOBAL SYMBOL 110> CSIBLK 002346 GLOBAL SYMBOL 110> DATI 002614 GLOBAL SYMBOL 110> ECHOFL 002545 GLOBAL SYMBOL 110> ENDSTK 002536 GLOBAL SYMBOL 110> ENDTXT 002574 GLOBAL SYMBOL 110> ENDUSR 002612 GLOBAL SYMBOL 110> ENUDAT 002602 GLOBAL SYMBOL 110> ENUSAV 002616 GLOBAL SYMBOL 110> ERRADD 002066 GLOBAL SYMBOL 110> ERRBRN 001026 GLOBAL SYMBOL 110> ERRR02 001006 GLOBAL SYMBOL 110> ERRR03 001000 GLOBAL SYMBOL 110> ERRR05 001014 GLOBAL SYMBOL 110> FDBSAV 002512 GLOBAL SYMBOL 110> FPEXFL 002532 GLOBAL SYMBOL 110> INPBUF 001162 GLOBAL SYMBOL 110> INPQIO 002116 GLOBAL SYMBOL 110> INPSTA 002144 GLOBAL SYMBOL 110> INPT 002062 GLOBAL SYMBOL 110> LASTEX 002556 GLOBAL SYMBOL 110> LINEFL 002552 GLOBAL SYMBOL 110> LINEHD 002516 GLOBAL SYMBOL 110> LINELN 002554 GLOBAL SYMBOL 110> LINENO 002520 GLOBAL00+!!  ! SYMBOL 110> LNKOLD 002056 GLOBAL SYMBOL 110> LNKSAV 001632 GLOBAL SYMBOL 110> LNKTIN 001156 GLOBAL SYMBOL 110> LNKTOT 001404 GLOBAL SYMBOL 110> LOWFLG 002550 GLOBAL SYMBOL 110> LSTLIN 002524 GLOBAL SYMBOL 110> MAXLUN 002562 GLOBAL SYMBOL 110> MODPB 001050 GLOBAL SYMBOL 110> MOLUN 001046 GLOBAL SYMBOL 110> MPARLS 002626 GLOBAL SYMBOL 110> M.I 001074 GLOBAL SYMBOL 110> NEWLIN 002474 GLOBAL SYMBOL 110> OINPT 002042 GLOBAL SYMBOL 110> OLDFLG 002564 GLOBAL SYMBOL 110> OP.EOF 002504 GLOBAL SYMBOL 110> OP.LEN 002500 GLOBAL SYMBOL 110> OP.LUN 002502 GLOBAL SYMBOL 110> OP.RAC 002506 GLOBAL SYMBOL 110 @ LISTING OF IMPURNOMO.STB 06/28/85 15:11:11@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> OP.RTP 002510 GLOBAL SYMBOL 110> OTPT 002064 GLOBAL SYMBOL 110> OUTBUF 001410 GLOBAL SYMBOL 110> OUTQIO 002070 GLOBAL SYMBOL 110> OUTSTA 002112 GLOBAL SYMBOL 110> PARLST 001030 GLOBAL SYMBOL 110> PRMTFL 002542 GLOBAL SYMBOL 110> QFLG 002540 GLOBAL SYMBOL 110> QLUN 002626 GLOBAL SYMBOL 110> QNAM 002644 GLOBAL SYMBOL 110> QSTAT 002632 GLOBAL SYMBOL 110> REMTRM 002476 GLOBAL SYMBOL 110> RNDM 002534 GLOBAL SYMBOL 110> RPASFL 002543 GLOBAL SYMBOL 110> RUNF 002526 GLOBAL SYMBOL 110> SAVBUF 001636 GLOBAL SYMBOL 110> SCOUNT 001624 GLOBAL SYMBOL 110> SOTPT 001616 GLOBAL SYMBOL 110> STATUS 001134 GLOBAL SYMBOL 110> STCOUN 002522 GLOBAL SYMBOL 110> STFONX 002606 GLOBAL SYMBOL 110> STGOSB 002604 GLOBAL SYMBOL 110> STRIN 002650 GLOBAL SYMBOL 110> STROUT 002650 GLOBAL SYMBOL 110> STUDAT 002600 GLOBAL SYMBOL 110> STUEPT 002566 GLOBAL SYMBOL 110> STUFDB 002610 GLOBAL SYMBOL 110> STUROU 002570 GLOBAL SYMBOL 110> TCOUNT 001376 GLOBAL SYMBOL 110> TIMBUF 001076 GLOBAL SYMBOL 110> TINPT 001142 GLOBAL SYMBOL 110> TOTPT 001370 GLOBAL SYMBOL 110> TRCFLG 002541 GLOBAL SYMBOL 110> UICSTO 002560 GLOBAL SYMBOL 110> UNLDSV 002620 GLOBAL SYMBOL 110> UPPFL 002546 GLOBAL SYMBOL 110> USR 002572 GLOBAL SYMBOL 110> WORK 002514 GLOBAL SYMBOL 110> WPASFL 002544 GLOBAL SYMBOL 110> WTMAG 002624 GLOBAL SYMBOL 110> WTUNIT 002622 GLOBAL SYMBOL 110> BEGIN 003054 GLOBAL SYMBOL 110> CSBUFS 0003!$!&! cTADATADATA00050 GLOBAL SYMBOL 110> F1.ACR 000001 GLOBAL SYMBOL 110> F1.BTW 000002 GLOBAL SYMBOL 110> F1.BUF 000004 GLOBAL SYMBOL 110> F1.CCO 000020 GLOBAL SYMBOL 110> F1.ESQ 000040 GLOBAL SYMBOL 110> F1.HLD 000100 GLOBAL SYMBOL 110> F1.LWC 000200 GLOBAL SYMBOL 110> F1.RNE 000400 GLOBAL SYMBOL 110> F1.RPR 001000 GLOBAL SYMBOL 110> F1.RST 002000 GLOBAL SYMBOL 110> F1.RUB 004000 GLOBAL SYMBOL 110> F1.SYN 010000 GLOBAL SYMBOL 110 @ LISTING OF IMPURNOMO.STB 06/28/85 15:11:15@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> F1.TRW 020000 GLOBAL SYMBOL 110> F1.UIA 000010 GLOBAL SYMBOL 110> F1.UTB 040000 GLOBAL SYMBOL 110> F1.VBF 100000 GLOBAL SYMBOL 110> F2.ALT 000020 GLOBAL SYMBOL 110> F2.CUP 000100 GLOBAL SYMBOL 110> F2.DCH 000004 GLOBAL SYMBOL 110> F2.DKL 000010 GLOBAL SYMBOL 110> F2.FDX 000200 GLOBAL SYMBOL 110> F2.GCH 000002 GLOBAL SYMBOL 110> F2.SCH 000001 GLOBAL SYMBOL 110> F2.SFF 000040 GLOBAL SYMBOL 110> IE.ABO 177761 GLOBAL SYMBOL 110> IE.ACT 177771 GLOBAL SYMBOL 110> IE.ADP 177636 GLOBAL SYMBOL 110> IE.ALC 177654 GLOBAL SYMBOL 110> IE.ALG 177654 GLOBAL SYMBOL 110> IE.ALN 177736 GLOBAL SYMBOL 110> IE.AST 177660 GLOBAL SYMBOL 110> IE.BAD 177777 GLOBAL SYMBOL 110> IE.BBE 177710 GLOBAL SYMBOL 110> IE.BCC 177676 GLOBAL SYMBOL 110> IE.BDI 177714 GLOBAL SYMBOL 110> IE.BDR 177716 GLOBAL SYMBOL 110> IE.BDV 177711 GLOBAL SYMBOL 110> IE.BHD 177700 GLOBAL SYMBOL 110> IE.BLB 177672 GLOBAL SYMBOL 110> IE.BLK 177754 GLOBAL SYMBOL 110> IE.BNM 177712 GLOBAL SYMBOL 110> IE.BTF 177664 GLOBAL SYMBOL 110> IE.BTP 177725 GLOBAL SYMBOL 110> IE.BVR 177701 GLOBAL SYMBOL 110> IE.BYT 177755 GLOBAL SYMBOL 110> IE.CKP 177766 GLOBAL SYMBOL 110> IE.CKS 177742 GLOBAL SYMBOL 110> IE.CLO 177732 GLOBAL SYMBOL 110> IE.CNR 177667 GLOBAL SYMBOL 110> IE.CON 177752 GLOBAL SYMBOL 110> IE.DAA 177770 GLOBAL SYMBOL 110> IE.DAO 177763 GLOBAL SYMBOL 110> IE.DFU 177750 GLOBAL SYMBOL 110> IE.DNA 177771 GLOBAL SYMBOL 110> IE.DNR 177775 GLOBAL SYMBOL 110> IE.DSQ 177646 GLOBAL SYMBOL 110> IE.DUN 177767 GLOBAL SYMBOL 110> IE.DUP 177707 GLOBAL SYMBOL 110> IE.EOF 177766 GLOBAL SYMBOL 110> IE.EOT 177702 GLOBAL SYMBOL 110> 00;!!  ! IE.EOV 177765 GLOBAL SYMBOL 110> IE.EXP 177665 GLOBAL SYMBOL 110> IE.FEX 177717 GLOBAL SYMBOL 110> IE.FHE 177705 GLOBAL SYMBOL 110> IE.FIX 177767 GLOBAL SYMBOL 110> IE.FLG 177647 GLOBAL SYMBOL 110> IE.FLN 177657 GLOBAL SYMBOL 110 @ LISTING OF IMPURNOMO.STB 06/28/85 15:11:20@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> IE.FOP 177713 GLOBAL SYMBOL 110> IE.HFU 177744 GLOBAL SYMBOL 110> IE.HWR 177772 GLOBAL SYMBOL 110> IE.IBS 177647 GLOBAL SYMBOL 110> IE.ICE 177721 GLOBAL SYMBOL 110> IE.IDU 177644 GLOBAL SYMBOL 110> IE.IEF 177637 GLOBAL SYMBOL 110> IE.IES 177656 GLOBAL SYMBOL 110> IE.IFC 177776 GLOBAL SYMBOL 110> IE.IFU 177747 GLOBAL SYMBOL 110> IE.ILL 177726 GLOBAL SYMBOL 110> IE.ILU 177640 GLOBAL SYMBOL 110> IE.ILV 177755 GLOBAL SYMBOL 110> IE.INS 177776 GLOBAL SYMBOL 110> IE.IOP 177655 GLOBAL SYMBOL 110> IE.IPR 177641 GLOBAL SYMBOL 110> IE.ISQ 177703 GLOBAL SYMBOL 110> IE.ITI 177643 GLOBAL SYMBOL 110> IE.ITP 177650 GLOBAL SYMBOL 110> IE.ITS 177770 GLOBAL SYMBOL 110> IE.IUI 177645 GLOBAL SYMBOL 110> IE.LCK 177745 GLOBAL SYMBOL 110> IE.LNL 177646 GLOBAL SYMBOL 110> IE.MAP 177657 GLOBAL SYMBOL 110> IE.MOD 177753 GLOBAL SYMBOL 110> IE.NBF 177731 GLOBAL SYMBOL 110> IE.NBK 177727 GLOBAL SYMBOL 110> IE.NDR 177670 GLOBAL SYMBOL 110> IE.NFI 177704 GLOBAL SYMBOL 110> IE.NFW 177673 GLOBAL SYMBOL 110> IE.NLK 177661 GLOBAL SYMBOL 110> IE.NLN 177733 GLOBAL SYMBOL 110> IE.NNC 177663 GLOBAL SYMBOL 110> IE.NNL 177662 GLOBAL SYMBOL 110> IE.NNN 177674 GLOBAL SYMBOL 110> IE.NOD 177751 GLOBAL SYMBOL 110> IE.NSF 177746 GLOBAL SYMBOL 110> IE.NST 177660 GLOBAL SYMBOL 110> IE.NSW 177756 GLOBAL SYMBOL 110> IE.NTR 177651 GLOBAL SYMBOL 110> IE.NVR 177652 GLOBAL SYMBOL 110> IE.NVW 177651 GLOBAL SYMBOL 110> IE.OFL 177677 GLOBAL SYMBOL 110> IE.ONL 177675 GLOBAL SYMBOL 110> IE.ONP 177773 GLOBAL SYMBOL 110> IE.OVR 177756 GLOBAL SYMBOL 110> IE.PES 177655 GLOBAL SYMBOL 110> IE.PNS 177642 GLOBAL SYMBOL 110> IE.PRI 177760 GLOBAL SYMBOL 110> IE.PTS 177775 GLOBAL SYMBOL 110> IE.RAC 177724 GLOBAL SYMBOL 110> IE.RAT 177723 GLOBAL SYMBOL 110> IE.RBG 177730 GLOBAL SYMBOL 110> IE.RBS 177761 GLOBAL SYMBOL 00C!$!&! cTADATADATA 110> IE.RCN 177722 GLOBAL SYMBOL 110 @ LISTING OF IMPURNOMO.STB 06/28/85 15:11:25@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> IE.REJ 177650 GLOBAL SYMBOL 110> IE.RER 177740 GLOBAL SYMBOL 110> IE.RNM 177715 GLOBAL SYMBOL 110> IE.RSU 177757 GLOBAL SYMBOL 110> IE.SDP 177635 GLOBAL SYMBOL 110> IE.SNC 177735 GLOBAL SYMBOL 110> IE.SPC 177772 GLOBAL SYMBOL 110> IE.SQC 177734 GLOBAL SYMBOL 110> IE.SRE 177762 GLOBAL SYMBOL 110> IE.STK 177706 GLOBAL SYMBOL 110> IE.TCH 177765 GLOBAL SYMBOL 110> IE.TMM 177671 GLOBAL SYMBOL 110> IE.TMO 177666 GLOBAL SYMBOL 110> IE.ULK 177653 GLOBAL SYMBOL 110> IE.ULN 177773 GLOBAL SYMBOL 110> IE.UNS 177774 GLOBAL SYMBOL 110> IE.UPN 177777 GLOBAL SYMBOL 110> IE.VER 177774 GLOBAL SYMBOL 110> IE.WAC 177743 GLOBAL SYMBOL 110> IE.WAT 177741 GLOBAL SYMBOL 110> IE.WCK 177652 GLOBAL SYMBOL 110> IE.WER 177737 GLOBAL SYMBOL 110> IE.WLK 177764 GLOBAL SYMBOL 110> IE.WOV 177653 GLOBAL SYMBOL 110> IE.2DV 177720 GLOBAL SYMBOL 110> IO.ACE 007400 GLOBAL SYMBOL 110> IO.ACR 006400 GLOBAL SYMBOL 110> IO.ACW 007000 GLOBAL SYMBOL 110> IO.ADS 014000 GLOBAL SYMBOL 110> IO.APC 014000 GLOBAL SYMBOL 110> IO.APV 014010 GLOBAL SYMBOL 110> IO.ATA 001410 GLOBAL SYMBOL 110> IO.ATF 001000 GLOBAL SYMBOL 110> IO.ATT 001400 GLOBAL SYMBOL 110> IO.ATX 000400 GLOBAL SYMBOL 110> IO.BLS 004010 GLOBAL SYMBOL 110> IO.CAS 015420 GLOBAL SYMBOL 110> IO.CBO 015510 GLOBAL SYMBOL 110> IO.CCI 014000 GLOBAL SYMBOL 110> IO.CCO 000440 GLOBAL SYMBOL 110> IO.CER 004200 GLOBAL SYMBOL 110> IO.CEW 004210 GLOBAL SYMBOL 110> IO.CIN 016500 GLOBAL SYMBOL 110> IO.CLK 015000 GLOBAL SYMBOL 110> IO.CLN 003400 GLOBAL SYMBOL 110> IO.CNT 017000 GLOBAL SYMBOL 110> IO.CON 015400 GLOBAL SYMBOL 110> IO.CPR 015410 GLOBAL SYMBOL 110> IO.CPW 016520 GLOBAL SYMBOL 110> IO.CRC 001040 GLOBAL SYMBOL 110> IO.CRE 012000 GLOBAL SYMBOL 110> IO.CRJ 015440 GLOBAL SYMBOL 110> IO.CRX 014400 GLOBAL SYMBOL 110> IO.CSI 013000 GLOBAL SYMBOL 110> IO.CSM 016470 GLOBAL SYMBOL 110 @ LISTING OF IMPURNOMO.STB 06/28/85 15:11:30@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> IO.CSR 015000 GLOBAL SYMBOL 110> IO.CTI 00K!!  ! 015400 GLOBAL SYMBOL 110> IO.CTL 016400 GLOBAL SYMBOL 110> IO.CTR 015610 GLOBAL SYMBOL 110> IO.CTY 003400 GLOBAL SYMBOL 110> IO.DAC 010000 GLOBAL SYMBOL 110> IO.DCI 014400 GLOBAL SYMBOL 110> IO.DEL 012400 GLOBAL SYMBOL 110> IO.DET 002000 GLOBAL SYMBOL 110> IO.DGN 004150 GLOBAL SYMBOL 110> IO.DIS 016000 GLOBAL SYMBOL 110> IO.DLB 016540 GLOBAL SYMBOL 110> IO.DPT 016010 GLOBAL SYMBOL 110> IO.DRX 015000 GLOBAL SYMBOL 110> IO.DSE 003040 GLOBAL SYMBOL 110> IO.DSI 013400 GLOBAL SYMBOL 110> IO.DTI 016000 GLOBAL SYMBOL 110> IO.DTY 006400 GLOBAL SYMBOL 110> IO.ENA 006000 GLOBAL SYMBOL 110> IO.EOF 003000 GLOBAL SYMBOL 110> IO.ERS 003020 GLOBAL SYMBOL 110> IO.EXT 011400 GLOBAL SYMBOL 110> IO.FDX 003020 GLOBAL SYMBOL 110> IO.FLN 012400 GLOBAL SYMBOL 110> IO.FNA 004400 GLOBAL SYMBOL 110> IO.GLC 016430 GLOBAL SYMBOL 110> IO.GLI 016420 GLOBAL SYMBOL 110> IO.GNI 016410 GLOBAL SYMBOL 110> IO.GRC 016450 GLOBAL SYMBOL 110> IO.GRI 016440 GLOBAL SYMBOL 110> IO.GRN 016460 GLOBAL SYMBOL 110> IO.GTS 002400 GLOBAL SYMBOL 110> IO.HDX 003010 GLOBAL SYMBOL 110> IO.HIS 015000 GLOBAL SYMBOL 110> IO.HMS 004000 GLOBAL SYMBOL 110> IO.HNG 003000 GLOBAL SYMBOL 110> IO.INI 014400 GLOBAL SYMBOL 110> IO.INL 002400 GLOBAL SYMBOL 110> IO.ITI 017000 GLOBAL SYMBOL 110> IO.KIL 000012 GLOBAL SYMBOL 110> IO.LDI 007000 GLOBAL SYMBOL 110> IO.LED 012000 GLOBAL SYMBOL 110> IO.LEI 007410 GLOBAL SYMBOL 110> IO.LKE 012000 GLOBAL SYMBOL 110> IO.LOD 014000 GLOBAL SYMBOL 110> IO.LOV 001010 GLOBAL SYMBOL 110> IO.LPC 004100 GLOBAL SYMBOL 110> IO.LSI 011000 GLOBAL SYMBOL 110> IO.LTI 007400 GLOBAL SYMBOL 110> IO.LTK 000050 GLOBAL SYMBOL 110> IO.LTY 010000 GLOBAL SYMBOL 110> IO.MAO 003410 GLOBAL SYMBOL 110> IO.MCS 013400 GLOBAL SYMBOL 110> IO.MDA 016000 GLOBAL SYMBOL 110> IO.MDI 014400 GLOBAL SYMBOL 110 @ LISTING OF IMPURNOMO.STB 06/28/85 15:11:37@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> IO.MDO 015400 GLOBAL SYMBOL 110> IO.MLO 006000 GLOBAL SYMBOL 110> IO.MOD 003000 GLOBAL SYMBOL 110> IO.MSO 005000 GLOBAL SYMBOL 110> IO.NLB 016530 GLOBAL SYMBOL 110> IO.NLK 011400 GLOBAL SYMBOL 110> IO.OFF 004020 GLOBAL SYMBOL 110> 00S!$!&! cTADATADATA IO.ONL 017400 GLOBAL SYMBOL 110> IO.RAD 010400 GLOBAL SYMBOL 110> IO.RAL 001010 GLOBAL SYMBOL 110> IO.RAT 013000 GLOBAL SYMBOL 110> IO.RBC 003000 GLOBAL SYMBOL 110> IO.RCI 015000 GLOBAL SYMBOL 110> IO.RCV 015000 GLOBAL SYMBOL 110> IO.RDB 001200 GLOBAL SYMBOL 110> IO.RDD 010010 GLOBAL SYMBOL 110> IO.RDH 004030 GLOBAL SYMBOL 110> IO.RDN 000022 GLOBAL SYMBOL 110> IO.REL 013400 GLOBAL SYMBOL 110> IO.RHD 001010 GLOBAL SYMBOL 110> IO.RLB 001000 GLOBAL SYMBOL 110> IO.RLC 001020 GLOBAL SYMBOL 110> IO.RLV 001100 GLOBAL SYMBOL 110> IO.RMT 010020 GLOBAL SYMBOL 110> IO.RNA 005400 GLOBAL SYMBOL 110> IO.RNC 001040 GLOBAL SYMBOL 110> IO.RNE 001020 GLOBAL SYMBOL 110> IO.RNF 004060 GLOBAL SYMBOL 110> IO.RNR 004070 GLOBAL SYMBOL 110> IO.RNS 001020 GLOBAL SYMBOL 110> IO.RPB 001040 GLOBAL SYMBOL 110> IO.RPD 004170 GLOBAL SYMBOL 110> IO.RPR 004400 GLOBAL SYMBOL 110> IO.RST 001001 GLOBAL SYMBOL 110> IO.RTC 003400 GLOBAL SYMBOL 110> IO.RTD 004120 GLOBAL SYMBOL 110> IO.RTF 015400 GLOBAL SYMBOL 110> IO.RTI 016400 GLOBAL SYMBOL 110> IO.RTK 000060 GLOBAL SYMBOL 110> IO.RTM 001200 GLOBAL SYMBOL 110> IO.RTT 005001 GLOBAL SYMBOL 110> IO.RVB 010400 GLOBAL SYMBOL 110> IO.RWD 002400 GLOBAL SYMBOL 110> IO.RWU 002540 GLOBAL SYMBOL 110> IO.R1C 002400 GLOBAL SYMBOL 110> IO.SAO 004000 GLOBAL SYMBOL 110> IO.SCF 001200 GLOBAL SYMBOL 110> IO.SCS 013000 GLOBAL SYMBOL 110> IO.SDI 013000 GLOBAL SYMBOL 110> IO.SDO 012400 GLOBAL SYMBOL 110> IO.SEC 002520 GLOBAL SYMBOL 110> IO.SET 000030 GLOBAL SYMBOL 110> IO.SLO 005400 GLOBAL SYMBOL 110> IO.SMD 002510 GLOBAL SYMBOL 110> IO.SMO 002560 GLOBAL SYMBOL 110 @ LISTING OF IMPURNOMO.STB 06/28/85 15:11:42@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> IO.SPB 002420 GLOBAL SYMBOL 110> IO.SPF 002440 GLOBAL SYMBOL 110> IO.SPW 016510 GLOBAL SYMBOL 110> IO.SSO 004400 GLOBAL SYMBOL 110> IO.STA 015400 GLOBAL SYMBOL 110> IO.STC 002500 GLOBAL SYMBOL 110> IO.STP 016400 GLOBAL SYMBOL 110> IO.SWI 016400 GLOBAL SYMBOL 110> IO.SYN 003040 GLOBAL SYMBOL 110> IO.TDD 004140 GLOBAL SYMBOL 110> IO.TRM 002410 GLOBAL SYMBOL 110> IO.UDI 011410 GLOBAL SYMBOL 110> IO.UEI 011450 GLOBAL S00[!!  !YMBOL 110> IO.UER 011440 GLOBAL SYMBOL 110> IO.ULK 005000 GLOBAL SYMBOL 110> IO.UNL 000042 GLOBAL SYMBOL 110> IO.USI 011460 GLOBAL SYMBOL 110> IO.UTI 011420 GLOBAL SYMBOL 110> IO.UTY 011430 GLOBAL SYMBOL 110> IO.WAL 000410 GLOBAL SYMBOL 110> IO.WAT 013400 GLOBAL SYMBOL 110> IO.WBT 000500 GLOBAL SYMBOL 110> IO.WCK 004050 GLOBAL SYMBOL 110> IO.WDD 000540 GLOBAL SYMBOL 110> IO.WDH 004040 GLOBAL SYMBOL 110> IO.WLB 000400 GLOBAL SYMBOL 110> IO.WLC 000420 GLOBAL SYMBOL 110> IO.WLS 000410 GLOBAL SYMBOL 110> IO.WLT 000410 GLOBAL SYMBOL 110> IO.WLV 000500 GLOBAL SYMBOL 110> IO.WMS 000420 GLOBAL SYMBOL 110> IO.WNS 000420 GLOBAL SYMBOL 110> IO.WPB 000440 GLOBAL SYMBOL 110> IO.WPD 004160 GLOBAL SYMBOL 110> IO.WTD 004130 GLOBAL SYMBOL 110> IO.WVB 011000 GLOBAL SYMBOL 110> IO.XMT 014400 GLOBAL SYMBOL 110> IO.XNA 014410 GLOBAL SYMBOL 110> IQ.Q 000002 GLOBAL SYMBOL 110> IQ.S 000004 GLOBAL SYMBOL 110> IQ.UMD 000004 GLOBAL SYMBOL 110> IQ.X 000001 GLOBAL SYMBOL 110> IS.BV 000005 GLOBAL SYMBOL 110> IS.CC 001401 GLOBAL SYMBOL 110> IS.CLR 000000 GLOBAL SYMBOL 110> IS.CR 006401 GLOBAL SYMBOL 110> IS.EOT 002001 GLOBAL SYMBOL 110> IS.ESC 015401 GLOBAL SYMBOL 110> IS.ESQ 115401 GLOBAL SYMBOL 110> IS.PES 100001 GLOBAL SYMBOL 110> IS.PND 000000 GLOBAL SYMBOL 110> IS.RDD 000002 GLOBAL SYMBOL 110> IS.SET 000002 GLOBAL SYMBOL 110> IS.SPD 000002 GLOBAL SYMBOL 110> IS.SUC 000001 GLOBAL SYMBOL 110 @ LISTING OF IMPURNOMO.STB 06/28/85 15:11:47@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> IS.TAB 004401 GLOBAL SYMBOL 110> IS.TMO 000002 GLOBAL SYMBOL 110> IS.TNC 000002 GLOBAL SYMBOL 110> LOWCOM 000010 GLOBAL SYMBOL 110> LOWLST 000004 GLOBAL SYMBOL 110> LOWNOC 000001 GLOBAL SYMBOL 110> LOWSTR 000002 GLOBAL SYMBOL 110> M.OLUN 000004 GLOBAL SYMBOL 110> M.ONUM 000016 GLOBAL SYMBOL 110> OP.MXL 000020 GLOBAL SYMBOL 110> P.ERCD 000002 GLOBAL SYMBOL 110> P.FCS 000010 GLOBAL SYMBOL 110> P.FLNM 000012 GLOBAL SYMBOL 110> P.FNAM 000014 GLOBAL SYMBOL 110> P.LINE 000006 GLOBAL SYMBOL 110> QI.VER 000340 GLOBAL SYMBOL 110> Q.IOFN 000002 GLOBAL SYMBOL 110> Q.IOPL 000014 GLOBAL SYMBOL 110> SE.BIN 00000c!$!&! cTADATADATA003 GLOBAL SYMBOL 110> SE.FIX 000002 GLOBAL SYMBOL 110> SE.ICN 000001 GLOBAL SYMBOL 110> SE.LPR 000011 GLOBAL SYMBOL 110> SE.NIH 000014 GLOBAL SYMBOL 110> SE.NSC 000012 GLOBAL SYMBOL 110> SE.PAR 000010 GLOBAL SYMBOL 110> SE.SPD 000006 GLOBAL SYMBOL 110> SE.SPL 000007 GLOBAL SYMBOL 110> SE.TER 000005 GLOBAL SYMBOL 110> SE.UPN 000013 GLOBAL SYMBOL 110> SE.VAL 000004 GLOBAL SYMBOL 110> SF.DEF 000010 GLOBAL SYMBOL 110> SF.GAC 002600 GLOBAL SYMBOL 110> SF.GMC 002560 GLOBAL SYMBOL 110> SF.GSC 002540 GLOBAL SYMBOL 110> SF.RDF 002460 GLOBAL SYMBOL 110> SF.SAC 002620 GLOBAL SYMBOL 110> SF.SMC 002440 GLOBAL SYMBOL 110> SF.SSC 002420 GLOBAL SYMBOL 110> SF.STS 002520 GLOBAL SYMBOL 110> SF.STT 002500 GLOBAL SYMBOL 110> S.EXTA 000023 GLOBAL SYMBOL 110> S.EXTB 000024 GLOBAL SYMBOL 110> S.0 000001 GLOBAL SYMBOL 110> S.100 000004 GLOBAL SYMBOL 110> S.110 000005 GLOBAL SYMBOL 110> S.1200 000013 GLOBAL SYMBOL 110> S.134 000006 GLOBAL SYMBOL 110> S.150 000007 GLOBAL SYMBOL 110> S.1800 000014 GLOBAL SYMBOL 110> S.200 000010 GLOBAL SYMBOL 110> S.2000 000015 GLOBAL SYMBOL 110> S.2400 000016 GLOBAL SYMBOL 110> S.300 000011 GLOBAL SYMBOL 110> S.3600 000017 GLOBAL SYMBOL 110> S.4800 000020 GLOBAL SYMBOL 110 @ LISTING OF IMPURNOMO.STB 06/28/85 15:11:52@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> S.50 000002 GLOBAL SYMBOL 110> S.600 000012 GLOBAL SYMBOL 110> S.7200 000021 GLOBAL SYMBOL 110> S.75 000003 GLOBAL SYMBOL 110> S.9600 000022 GLOBAL SYMBOL 110> TC.ACR 000024 GLOBAL SYMBOL 110> TC.ALT 000031 GLOBAL SYMBOL 110> TC.ANS 000073 GLOBAL SYMBOL 110> TC.BIN 000065 GLOBAL SYMBOL 110> TC.BLK 000042 GLOBAL SYMBOL 110> TC.BSP 000023 GLOBAL SYMBOL 110> TC.CCF 000030 GLOBAL SYMBOL 110> TC.CEQ 000046 GLOBAL SYMBOL 110> TC.CSQ 000074 GLOBAL SYMBOL 110> TC.CTC 000075 GLOBAL SYMBOL 110> TC.CTS 000072 GLOBAL SYMBOL 110> TC.DLU 000041 GLOBAL SYMBOL 110> TC.EPA 000040 GLOBAL SYMBOL 110> TC.ESQ 000035 GLOBAL SYMBOL 110> TC.FDX 000064 GLOBAL SYMBOL 110> TC.FRM 000043 GLOBAL SYMBOL 110> TC.HFF 000017 GLOBAL SYMBOL 110> TC.HFL 000013 GLOBAL SYMBOL 110> TC.HHT 000021 GLOBAL SYMBOL 110> 00k!!  !TC.HLD 000044 GLOBAL SYMBOL 110> TC.IMG 000032 GLOBAL SYMBOL 110> TC.ISL 000006 GLOBAL SYMBOL 110> TC.LCP 000036 GLOBAL SYMBOL 110> TC.LPP 000002 GLOBAL SYMBOL 110> TC.LVF 000020 GLOBAL SYMBOL 110> TC.MAX 000076 GLOBAL SYMBOL 110> TC.NEC 000047 GLOBAL SYMBOL 110> TC.NKB 000033 GLOBAL SYMBOL 110> TC.NL 000015 GLOBAL SYMBOL 110> TC.NPR 000034 GLOBAL SYMBOL 110> TC.NST 000022 GLOBAL SYMBOL 110> TC.PAR 000037 GLOBAL SYMBOL 110> TC.PRI 000051 GLOBAL SYMBOL 110> TC.P8B 000070 GLOBAL SYMBOL 110> TC.RAT 000007 GLOBAL SYMBOL 110> TC.REM 000066 GLOBAL SYMBOL 110> TC.RSP 000003 GLOBAL SYMBOL 110> TC.SCP 000012 GLOBAL SYMBOL 110> TC.SCR 000011 GLOBAL SYMBOL 110> TC.SFF 000016 GLOBAL SYMBOL 110> TC.SLV 000050 GLOBAL SYMBOL 110> TC.SMO 000027 GLOBAL SYMBOL 110> TC.SMP 000026 GLOBAL SYMBOL 110> TC.SMR 000025 GLOBAL SYMBOL 110> TC.STB 000005 GLOBAL SYMBOL 110> TC.TAP 000045 GLOBAL SYMBOL 110> TC.TBF 000071 GLOBAL SYMBOL 110> TC.TTP 000010 GLOBAL SYMBOL 110> TC.UC0 000052 GLOBAL SYMBOL 110> TC.UC1 000053 GLOBAL SYMBOL 110 @ LISTING OF IMPURNOMO.STB 06/28/85 15:11:57@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> TC.UC2 000054 GLOBAL SYMBOL 110> TC.UC3 000055 GLOBAL SYMBOL 110> TC.UC4 000056 GLOBAL SYMBOL 110> TC.UC5 000057 GLOBAL SYMBOL 110> TC.UC6 000060 GLOBAL SYMBOL 110> TC.UC7 000061 GLOBAL SYMBOL 110> TC.UC8 000062 GLOBAL SYMBOL 110> TC.UC9 000063 GLOBAL SYMBOL 110> TC.VFL 000014 GLOBAL SYMBOL 110> TC.WID 000001 GLOBAL SYMBOL 110> TC.XSP 000004 GLOBAL SYMBOL 110> TC.8BC 000067 GLOBAL SYMBOL 110> TF.AST 000010 GLOBAL SYMBOL 110> TF.BIN 000002 GLOBAL SYMBOL 110> TF.CBF 000040 GLOBAL SYMBOL 110> TF.CCO 000040 GLOBAL SYMBOL 110> TF.ESQ 000020 GLOBAL SYMBOL 110> TF.NOT 000002 GLOBAL SYMBOL 110> TF.RAL 000010 GLOBAL SYMBOL 110> TF.RCU 000001 GLOBAL SYMBOL 110> TF.RNC 000040 GLOBAL SYMBOL 110> TF.RNE 000020 GLOBAL SYMBOL 110> TF.RST 000001 GLOBAL SYMBOL 110> TF.SYN 000200 GLOBAL SYMBOL 110> TF.TMO 000200 GLOBAL SYMBOL 110> TF.WAL 000010 GLOBAL SYMBOL 110> TF.WBT 000100 GLOBAL SYMBOL 110> TF.WMS 000020 GLOBAL SYMBOL 110> TF.XCC 000001 GLOBAL SYMBOL 110> TF.XOF 000100 GLOBAL SYMBOL 100s!v!&! cTADATADATA10> TRMSIZ 000204 GLOBAL SYMBOL 110> T.AS33 000001 GLOBAL SYMBOL 110> T.AS35 000003 GLOBAL SYMBOL 110> T.KS33 000002 GLOBAL SYMBOL 110> T.LA36 000006 GLOBAL SYMBOL 110> T.L120 000016 GLOBAL SYMBOL 110> T.L180 000014 GLOBAL SYMBOL 110> T.L30P 000005 GLOBAL SYMBOL 110> T.L30S 000004 GLOBAL SYMBOL 110> T.SCR0 000017 GLOBAL SYMBOL 110> T.UNK0 000000 GLOBAL SYMBOL 110> T.USR0 000033 GLOBAL SYMBOL 110> T.USR1 000034 GLOBAL SYMBOL 110> T.USR2 000035 GLOBAL SYMBOL 110> T.USR3 000036 GLOBAL SYMBOL 110> T.USR4 000037 GLOBAL SYMBOL 110> T.VT05 000007 GLOBAL SYMBOL 110> T.VT50 000010 GLOBAL SYMBOL 110> T.VT52 000011 GLOBAL SYMBOL 110> T.VT55 000012 GLOBAL SYMBOL 110> T.VT61 000013 GLOBAL SYMBOL 110> T.V100 000015 GLOBAL SYMBOL 110> $DSW 000000 GLOBAL SYMBOL 110zX:O%DoM NHy:΁@y:ρ@s@fhH)qv@p@:2@nL`H K*}@p @|Q @z(2@fhWH Z@%{_@xh@:a @f}h^t!yhZ|hy`hr@QhX5lWhyhnz NvLhP,y ghXh|ahV/KhTu~h(""Suh yahv~ ghV""Puh""Quhy`hs%hRN*By:΁00{!|!  !$RNRRT:CO:L. X:R  X:: X:: X:Ld:Qviv)qvSvOvsvS | r@QH\swHcs%HVvHGwH,y gHy[H\yaHRzy`Hy`Hyp:HyaHy<Hy!Hvy"&HyrHx}Hu~H>v~ gHbl gHg'HayHp|HzЅ`'HfJHz*DHLAwHdXHXHO p:H,CH(t*Ht*Ht*Ht*GHt*I"H t*3H@t*NHzt*rHt*sHt*sHt*sHt*zHt*H t*Ht*bH@t*։H*4H*H@*H*H*8&H*@,Hz*@wH*wH $9H$9H$9H$9#H$9'H$9.H$9L H$9 H$9 H$9 H$9) H$92 H$96 Hz$9 H$9bH$9kH$9H$9H$9H$9H$9|H$9H$9H$9H$9H$9&H$9)H$97Hz$9H$91H$9BH$9 H$9VH$9XH$9!H$9!H$9!H$9#H$9`&H$9&H$9'H$9g'H$9n'Hz$9'H$93H$95H$98H$98H$98H$99H$99H$939H$9E9H$9,:H$95:H$96:H$9:H$9:Hz$9:H$9I;H$9i;H$9p;H$9s;H$9;H$9KH$9wH:KwH:iwH:owH:wHP:wH:xH :xHH:xHp:ByH:FyH :WyHH:yH :yHz:yH@:yH:azH:zH :}H`:H:H:H(:H :+H :|H":AH0:iH:yH:Hz:H:$H@:CH(:dH`:hH :H:H:H:H:H@:ۑH:H:BH :DHp:HXz:2H:H:1H;@jH;vH;LH;HT;HT;8HT;HT;H T;!HT;;"HT;I"00!!! cTADATADATAHT;dHzT;4fHT;$qHT;wHT;DyHT; zHT;*}H T;HT;3HoM%HoM NHoMYHoMyHUVNHUZH\` UHzehpHfhHfh=MH fhWH lhu:HkZHn^HnL`H w Hw'Hw8HwMH wXH w{ZH w:dHzwDyHwLyHw}Hw΅H wHwHw+Hw-Hpw.H`w&qH0wvHwxH wyHwyHPwyH@z%{!H%{"H>{H?{0H?{pH?{H ?{H?{pH?{NH @{0H@{NH @{NHA{0H A{HB{NHzC{HD{0H E{HE{HG{H}H}4H}H;} H5}kH"}H}>H}H&}H<}H=z}H:}H!}!H }I"H}8&H4}](H#}2H}2H }T3H}3H$}O:H}D;H}KH}MH}vNHz}QH>}KXH'}:YH}`YH }ZH}ZH}:dH}fH)}iH8}pH}UqH6}sH}HwH }JwH }wHz}xH(}xH}xH}xH}yH}8}H%}V}H9}0H}փH*}׃H+}؃H,}كH-}ڃH.}ۃH/}܃H0z}݃H1}ރH2}߃H3}|H },H}H}H7 ~L H ~ H ~H ~GH ~I"H ~YH ~pH ~ qHz ~rH ~rH ~sH ~zH ~H ~H ~$H@ ~ۑH ~{H ~^H@BxHa |Ha |Hk |Hl HzlHlH lHlHsHuVYHuyHuyHuyHuyHuyHvӁHvHvH vH vH vH sH;1=; FOLLOWING LINE USED WITH IMPUR.MAC TO ASSEMBLE A VERSION OFV=; IMPUR HAVING FSR PSECTS ALONG WITH GLOBAL SYMBOL DEFINITIONA;GSNGUSR=1 BR 10$B#20$: MOV #TTBUF,R0 ; BUFFER ADDRESSv# MOV BF.FUL(R3),R1 ; SIZE OF STRINGa CALL TTOUT ; OUTPUT IT$30$: SUB #TRCLN,(SP) ; Next string ? CMP (SP),#TRCBUF ; At end ? BHI 1$ ; Non BICB #^o20,$UNLSW ; underlining TST (SP)+" MOV #TTBUF,R0zX:O%DoM NHy:΁@y:ρ@s@fhH)qv@p@:2@nL`H K*}@p @|Q @z(2@fhWH Z@%{_@xh@:a @f}h^t!yhZ|hy`hr@QhX5lWhyhnz NvLhP,y ghXh|ahV/KhTu~h(""Suh yahv~ ghV""Puh""Quhy`hs%hRN*By:΁$RNRRT:CO:L. X:R  X:: X:: X:Ld:Qviv)qvSvOvsvS | 60$: MOV BF.FUL(R3),LSTSP;SET LAST SPACING CHARACTER BACK HERE CLR BF.SPC(R3)r; 10 ! TEST OF LOADABLE ROUTINE20 DIM A$[64]V,B$[64]V,C$[64]V30 LOAD "LB:[1,202]INSTAL.ATK" 40 A$="LB:[11,1]FLX/TASK=...FLX" 50 INPUT LINE "COMMAND LINE ",B$60 IF B$="" THEN B$=A$70 S=0 : CALL "INSTAL"(B$,S,C$)80 PRINT "STATUS = ";S90 PRINT "LENGTH = ";LEN(C$)100 PRINT "STRING = ";C$ 110 S=0 : CALL "SPAWNB"("FLX",S)120 EXIT00 ! !! cTADATADATA$INSTAL.ATK/-HD/-FP,INSTAL/-SP=INSTALLB:[1,1]BSCPUR.STB/SSLB:[1,1]EXEC.STB/SS/GBLDEF=ASTOR5:100132GBLDEF=INFSTD:156142GBLDEF=INFDEV:156276STACK=0UNITS=0/LR SPCNSVu" CLR SPCH ; AND NON-SPACING CHARS CLR LSPCH! CLR ESCCNT ; NO ESCAPES PENDINGU# CLR OVRCT ; NO BACKSPACE ABORTION1! CLR LCH ; CLEAR LAST CHARACTERs % CLR LTAB ; Address of last tab charN" CLRB $TABPD ; Set no tab pending/ MOV ESMSK ; INSTAL.MAC;; CALL IS CALL "INSTAL"(I$,J);/; WHERE I$ = INSTALL COMMAND LINE MINUS "INS "; J = SUCCESS CODE; > 0 SUCCESSFUL INSTALL!; = -1 UNSUCCESSFUL INSTALL%; = -2 BAD INSTALL COMMAND LINE;3; I.E. CALL "INSTAL"("LB:[11,1]DRS/TASK=...DRS",J);(; NOTE: 1) THE DEVICE MUST BE SPECIFIED#; 2) THE ACCOUNT MUST BE SPECIFIED/; 3) THE INSTALLED TASK NAME MUST BE SPECIFIED;; 4) THE 1ST PART OF THE INSTALLED TASK NAME MUST BE '...';; IDENTIFYING INFO:; .MCALL ULODHD ;CALL MACRO( ;IDENTIFY START OF CODE, END OF CODE ;AND ONE ENTRY POINT ULODHD START,END,INSTAL; .GLOBL ASTOR5 .GLOBL INFSTD .GLOBL INFDEV; .MCALL DIR$ SPWN$ STSE$S;AC0=%0;B; FOLLOWING MACRO IS USED TO GET THE ABSOLUTE ADDRESS OF A LOCALLYD; DEFINED LABEL IN POSITION INDEPENDENT FASHION (NEEDED FOR LOADABLE ; ROUTINES).; .MACRO GTABAD ADDRES,LOC .NTYPE ...ATP,LOC .IF GT ...ATP-5 MOV PC,-(SP) ADD #ADDRES-.,(SP) MOV (SP)+,LOC .IFF MOV PC,LOC ADD #ADDRES-.,LOC .ENDC .ENDM GTABAD;; NOW THE CODE ITSELF;%START: ;LABLE ACTUAL START OF CODE+TSKNAM: .WORD 0 ;RAD-50 TASK NAME (PART 1)+TSKNM1: .WORD 0 ; (PART 2)#VCPUD: .WORD 0 ;PUD ADDRESS OF VC:-STDSW: .WORD 0 ;STORE DSW FROM INSTALL SPAWN%INSLEN: .WORD 0 ;COMMAND LINE LENGTHINSMES: .BLKB 1203STOSCA: STSE$S 1 ;STOP UNTIL SPAWNED TASK FINISHESJINSSCA: SPWN$ ...INS,GEN,,1,1,1,,,INSMES,INSLEN ;SPAWN INS UNDER UIC [1,1];INSTAL:0 JSR R4,@#GTRGPI ;GO GET ARGUMENTS IN PI FASHION& .BYTE 3,2,4,0 ;THIS IS ARG TYPE LIST% ;3 = INPUT STRING (TO SUBROUTINE)& ;2 = OUTPUT NUMBER (TO MAIN PROG.)& ;4 = OUTPUT STRING (TO MAIN PROG.) .EVEN' ;WE NOW HAVE THIS DATA ON THE STACK ;SP+16 5 WORD BLOCK ;SP+4 5 WORD BLOCK ;SP> 2-WORD INPUT DESCRIPTOR ; (SP)=LEN, 2(SP)=ADDR0 JSR PC,@#PARCHK ;CHECK FOR TRAILING RIGHT PAREN ;(ALSO BUMPS TEXT POINTER) MOV R1,-(SP) ;SAVE TEXT PTR;/ MOV 4(SP),R1 ;LET'S CHECK COMMAND LINE FOR ':' MOV 2(SP),R21$: CMPB (R1)+,#': BEQ 2$ SOB R2,1$6 JMP 40$ ;NO ':' (MEANING NO DEVICE SPECIFIED), ERROR;22$: MOV 4(SP),R1 ;LET'S CHECK COMMAND LINE FOR '[' MOV 2(SP),R23$: CMPB (R1)+,#'[ BEQ 4$ SOB R2,3$7 JMP 40$ ;NO '[' (MEANING NO ACCOUNT SPECIFIED), ERROR;(4$: MOV 4(SP),R0 ;LET'S CHECK FOR '=...' MOV 2(SP),R2 MOV #1,R15$: CMPB (R0)+,#'= BEQ 6$ SOB R2,5$7 JMP 40$ ;NO '=' (MEANING NO 'TASK=' SPECIFIED), ERROR;<6$: JSR PC,@#ASTOR5 ;CONVERT 1ST PART OF INSTALLED TASK NAME& CMP R1,#^R... ; WHICH SHOULD BE '...' BEQ 7$: JMP 40$ ;NO '...' (MEANING NO '...XXX' TASK NAME), ERROR;/7$: MOV R1,TSKNAM ;STORE 1ST PART FOR LATER USE MOV #1,R1" JSR PC,@#ASTOR5 ;CONVERT 2ND HALF0 MOV R1,TSKNM1 ;AND STORE IT TOO (FOR LATER USE);0; COMMAND LINE SEEMS TO BE OK, SO LET'S CONTINUE; ; MOV #INSMES,R0 ;MOVE IN 'INS '! GTABAD INSMES,R0 ;MOVE IN 'INS ' MOVB #'I,(R0)+ MOVB #'N,(R0)+ MOVB #'S,(R0)+ MOVB #' ,(R0)+;+ MOV 4(SP),R1 ;FILL IN REST OF COMMAND LINE MOV 2(SP),R210$: MOVB (R1)+,(R0)+ SOB R2,10$; MOV #INSMES,R1 GTABAD INSMES,R1 SUB R1,R04 MOV R0,INSLEN ;STORE LENGTH OF INSTALL COMMAND LINE;; CLR R0 ;SET UP FOR CALL; MOV #"CO,R4 ;DEV NAME IN R4; CLR R5 ;UNIT # IN R5); JSR PC,@#INFDEV ;FIND PUD ADDRESS OF CO&; MOV R5,VCPUD ;SAVE PUD ADDRESS OF VC6; MOV #177777,U.RB(R5) ;MAKE CO PRIV TERM SO INS IS OK); BIS #UT.PR,U.TF(R5) ;AND MAKE PRIV ALSO;; MOV .CRTSK,R4 ;GET MY ATL00 ! ! !!!! !(; MOV A.TI(R4),-(SP) ;SAVE MY TI POINTER,; MOV VCPUD,A.TI(R4) ;MAKE INSTALL RUN AT VC/ GTABAD INSSCA,R0 ;GET ADDRESS OF INSTALL SPAWN6 GTABAD INSMES,R1 ;GET ADDRESS OF INSTALL COMMAND LINE& MOV R1,S.PWCA+0(R0) ; AND INSERT SAME2 MOV INSLEN,R1 ;GET LENGTH OF INSTALL COMMAND LINE% MOV R1,S.PWCL+0(R0) ;AND INSERT SAME( DIR$ R0 ;SPAWN INSTALL TO INSTALL TASK/ MOV @#$DSW,STDSW ;STORE DSW FROM INSTALL SPAWN8 GTABAD STOSCA,R0 ;GET ADDRESS OF INSTALL STOP FOR EVENT DIR$ R0 ;WAIT FOR INSTALL+ CMP STDSW,#1 ;WAS INSTALL SPAWN SUCCESSFUL BEQ 11$ ;YES, CONTINUE$ JMP 31$ ;NO, RETURN DSW FROM SPAWN11$:+; MOV (SP)+,A.TI(R4) ;RESTORE MY TI POINTER+; MOV #TSKNAM,R1 ;POINT TO FULL RAD-50 NAME; JSR PC,@#INFSTD ;FIND HIS STD"; TST R2 ;BETTER HAVE STD ADDRESS; BNE 12$ ;BR IF OK; JMP 30$ ;REPORT ERROR2;12$: BIS #SF.RM,S.FW(R2) ;SET REMOVE-ON-EXIT FLAG;* MOV INSLEN,R0 ;RETURN COMMAND LINE LENGTH' LDCIF R0,AC0 ;>0 = SUCCESSFUL INSTALL20$: MOV SP,R5 ;SET UP ADD #6,R5 ; RETURN ADDRESS5 JSR PC,@#NSTORE ;AND RETURN THE STATUS TO THE CALLER; MOV SP,R5 ;SET UP ADD #20,R5 ; RETURN ADDRESS2; MOV #INSMES,R3 ;ADDRESS OF STRING TO BE RETURNED3 GTABAD INSMES,R3 ;ADDRESS OF STRING TO BE RETURNED MOV INSLEN,R4 ; AND ITS LENGTH6 JSR PC,@#SSTORE ;AND RETURN THE "INS ..." STRING USED MOV (SP)+,R1 ;RESTORE TEXT PTR& ADD #14*2,SP ;CLEAN STACK OF 12 WORDS RTS PC ;AND RETURN;30$:- LDCIF #-30.,AC0 ;-30. = UNSUCCESSFUL INSTALL BR 32$%31$: LDCIF STDSW,AC0 ;STORE DSW VALUE532$: MOV #0,INSLEN ;AND ZERO OUT RETURN STRING LENGTH JMP 20$;40$:1 LDCIF #-40.,AC0 ;-40. = BAD INSTALL COMMAND LINE1 MOV #0,INSLEN ;AND ZERO OUT RETURN STRING LENGTH JMP 20$;END: ;LABLE END OF CODE .ENDytes!e%; Literal is terminated by zero byteM;(!GETLIT:: CALL FNDPAR ; GET next S BCS 50$ ; BAD, NO FILE SPECV( CMPEQ R1,#APOSTR,10$ ; START OF LITERAL. CMPNE R1,#QUOTES,40$ ; NOT START OFF LITERAL?10$: MOV R2,-(SP) ; Save R2! MOV R1,-(SP) ; * :LL `@.I.@8X@*8@8@v:@v:y@Z`@*:d @y`@s@( ":4}~8X88n*n |:, "$* fW:~w.I. :d *W[~w=~w* W |ww" weЕL `L `*IЕNЕSЕ P~e@7*,eJepp&e"s*R&-w2e e$Z`*xe e7y`|wnw)+,R1 ; LAST CHAR IN LIT +1 ADDRESSA MOV (SP)+,R2 ; RestoreC# MOV #TTBUF,R0 ; Buffer for literalR SUB R0,R1 ; NUMBER OF BYTES1 CLC ; OK!  RETURNC 40$: CALL BKSPI ; BACKUP 1 CHAR 50$: CLR R0a CLR R1 ; Setupt no literal SEC ; NOT OK 10 ! INTERNAL.BAS< ! TO GIVE BACK VALUES OF INTERNAL BASIC INTERPRETER VALUES100 DIM L$[20]Ve4120 INPUT LINE "OCTAL ADDRESS OF PARLST IN IMPUR",L$130 GOSUB 1000 140 B=L+13200 INPUT LINE "OCTAL ADDRESS OF PARAM IN IMPUR",L$210 GOSUB 1000220 A=L230 PRINT OCT$(ERR(A-B)) 240 GOTO 2001000 L=OCT(L$)/2 1010 RETURN L ENDUSR->:=================================================================:& : USER FDB'S :E :-----------------------------------------------------------------:NE : 166 LINE BUFFER - VARIABLE LENGTH :, : 26 FDB PROPER (FCS) 140(8) BYTES : : 24 UNUSED :4 : 22 UNUSED ;BYTE OFFSET (QUESTION LIBRARY) :# : 20 EOF ADDRESS ;BLOCK # :  : 16 FDB POINTER :0 : 14 UNUSED ;RESPONSE COUNT ;WRITE FLAG : : 00!!! cTADATADATA 12 BUFFER ADDRESS :== : 10 ACTUAL BYTE COUNT ;# MNT ENTRIES ;32-BIT CURRENT : 0 : 6 UNUSED ;MNT STARTING BLOCK ;BLOCK # : : 4 BUFFER SIZE :+ : 2 BUFFER PTR (OUTPUT) ;MNT SIZE :I$ : 0 CODE BITS + FILE #-1 :# : 000400 = INPUT POSSIBLE :8# : 001000 = OUTPUT POSSIBLE : + : 002000 = (SEQUENTIAL=0)(RANDOM=1) :I( : 004000 = (ASCII=0),(BINARY=1) :$ : 010000 = (BLOCK MODE = 1) :E :-----------------------------------------------------------------:S+ : OTHER FDB'S :  : . :N : . :D : . :KL STUFDB->:=================================================================:# : FOR/NEXT CONTROL BLOCKS :#E :-----------------------------------------------------------------:O1 : 14 TERMINATING VALUE (2 WORD FLOATING) :1* : 10 STEP VALUE (2 WORD FLOATING) :" : 6 CONTROL VAR OFFSET :4 : 4 STATEMENT NUMBER OF FOR (WITHIN LINE) :" : 2 LINE NUMBER OF FOR :* : 0 HEADER WITH SIXBIT VAR NAME :E :-----------------------------------------------------------------:=$ : SUBSEQUENT CONTROL BLOCKS : : . := : . :O : . :L STFONX->:=================================================================:! : GOSUB/RETURN POINTERS :NE :-----------------------------------------------------------------:A$ : 2 LINE NUMBER OF GOSUB :' : 0 STATEMENT # WITHIN LINE : E :-----------------------------------------------------------------: : SUBSEQUENT POINTERS :- : . :- : . :S : . :CL STGOSB->:=================================================================: : FREE AREA (RUN MODE) :L ENUDAT->:=================================================================:$ : USER DATA (VARIOUS TYPES) :E :-----------------------------------------------------------------:= : MASK= 000000 : FLOATING VARIABLES (SIMPLE AND ARRAY) :-- : 020000 : INTEGER (2-BYTE) VARIABLES :) : 040000 : BYTE VARIABLES : & : 060000 : NUMERIC FUNCTION :# : 100000 : STRING FUNCTION :=# : 120000 : STRING VARIABLE :=! : 160000 : SCRATCH ITEM :(E :-----------------------------------------------------------------:= E :-----------------------------------------------------------------:-& : FLOATING VARIABLES (2 WORD) :6 : MASK= 000000, LENGTH = 2 WDS + SIZE OF ARRAY :E : 4... SERIES OF 2 WORD VALUES (MORE THAN ONE VALUE FOR ARRAY ) :0 : 2 DIMENSION VALUES (1 BYTE EACH) :- : 0 MASK + SIXBIT VARIABLE NAME ::E :-----------------------------------------------------------------:0' : NUMERIC AND STRING FUNCTIONS :-; : MASK= 060000 (N), LEN = 3 WDS + # OF FORMAL PARAMS : : 100000 (S) :-5 : 6... HEADER + SIXBIT NAME OF FORMAL PARAM :T3 : 4 OFFSET OF FIRST CHAR PAST '=' SIGN :H) : 2 NUMBER OF FORMAL PARAMS :S0 : 0 MASK PLUS SIXBIT FUNCTION NAME :E :-----------------------------------------------------------------:M : STRING VARIABLES :; : MASK= 120000, LEN = 3 WDS + SIZE OF STRING STORAGE :-A : 6... STRING SPACE; BYTE 1=ACTUAL SIZE, BYTE 2...=STRING : < : 4 LOW BYTE: MAX LEN; HIGH BYTE: -=VAR, +=FIXED :. : 2 DIMENSION VALUES (1 BYTE EACH) :. : 0 HEADER + SIXBIT VARIABLE NAME :E :-----------------------------------------------------------------:S : VIRTUAL ARRAYS : 0 : 14 2 WORD OFFSET OF THIS ARRAY FROM : : 12 START OF FILE :-2 : 10 SIZE OF ELEMENT (-=VAR, +=CONSTANT) :# : 6 LUN FOR ARRAY FILE :O : 4 2ND DIM VALUE :C : 2 1ST DIM VALUE :S> : 0 MASK + 10000 (VIRTUAL BIT) + SIXBIT VARIABLE NAME :E :-----------------------------------------------------------------:A : SCRATCH ITEMS :7 : MASK= 160000, LEN = 1 WD + LEN OF SCRATCH DATA :- 00!!!!!! ! : 2... SCRATCH DATA :7 : 0 HEADER + BYTE COUNT OF SCRATCH DATA LEN : L STUDAT->:=================================================================: : LINE HEADER AREA :E :-----------------------------------------------------------------:D< : 2 OFFSET FROM START OF PROGRAM TEXT FOR THIS LINE : : 0 LINE # :E :-----------------------------------------------------------------: # : NEXT HIGHER LINE HEADERS :0L BOLNHD->:=================================================================:* : ROUND UP TO EVEN WORD (RUN MODE) : : OR :# : FREE SPACE (INPUT MODE) :=L ENDTXT->:=================================================================: : PROGRAM TEXT :-J USR-> :=================================================================:# : LOADED USER SUBROUTINES : L STUROU->:=================================================================:- : LOADED USER SUBROUTINE ENTRY POINTS ::L STUEPT->:=================================================================:. : PREDEFINED SUBROUTINE ENTRY POINTERS : : CONSTANT IMPURE AREA : LOW MEMORYX ; NO OUTPUT THE LINE140$: RETURN ;;j,; DO ACTUAL OUTPUT TO PRINTER OF TEXT STRING;TOUTL0:: CLRB EXLINEl! CALL OUTAD ; GET HEADER ADDRESSD# CALL BEGBF ; SET TO TOP OF BUFFERP&OUTL1: MOVB EXLINE,R2 ; Get skip count CALL $SKIP0 ; Skip R2 39999 102477PUBLIC, JOANIE 924 SWIFTON BLVD. 204 ADDISON IL601013124950513 0107191023BE38840478129SACCO, SANDRA 928 SWIFTON BLVD. ADDISON IL601013126294298 7 2 102577DITE, ERNEST 7748 SOUTH EMERALD 208 CHICAGO IL606203128740012 0801193912PA38841478320STEFAN, MARY 10316 KOMENSKY OAKLAWN IL 3124243451 2 110777ROELL, PEARL 2709 KILLARNEY DRIVE CARIE IL60013312639674231285565290329192722 38856479054ROELL, DONALD 2709 KILLARNEY DRIVE CARIE IL6001331263967423126405019 3 110777PUBLIC, JACKIE Q. 7506 SOUTH VERNON CHICAGO IL606193127832252 0901191921PA38858423550MILLER, DELLA MAE 7506 SOUTH VERNON CHICAGO IL6061931284658183127912000 8 4 012679CASH, CLARENCE B. 8035 S KIMBARK HSE CHICAGO IL60619312375894531274472000624191411BS39336365773CASH, VIRGIL D. 8035 S KIMBARK HSE CHICAGO IL606193123758945 6 120182BEARER, PAUL 987 SOUTH AVENUE 321 CHICAGO IL60606 1010191012 39999123456BEARER, LITE 987 SOUTH AVENUE 321 CHICAGO IL60606 9 ?(5$: SUB R2,LINEC3 ; Subtract from LINEC3 JMP OUTL1 ; And do more -TXDOU3: MOV BF.FUL(R3),R1 ; Get current indexn TXDOU4: SUB #2,R1 ; Backspace 2 BNE 1$ ; Not at beginning ?:! JMP ENDBF ; Go to end of buffer!1$: CALL FNDBF ; Move over to i;2;; COMMAND FILE TO CREATE NEW LOADABLE ROUTINE MACRO LIBRARY1;I/LBR LODMAC/CR:10:10:10:MAC=ULOSTR,ULODHD,ULOEPT9 BITEQ #FOTF,F.1,20$ ; No footnote ?* MOV PFOTHD,R1 ; Permanent footnote header BEQ 20$ ; None ?7 ADD FOTLN,BF.VSP(R2); Add on permanent lines to headern# TSTEQ BF.HED(R3),15$ ; No header ?e, ADD R1,BF.HED(R3) ; Add on permanent header15$: CALL FN00!!! cTADATADATA;2=; THE FOLLOWING MACRO IS DESIGNED TO SET UP THE PROPER HEADER>; INFORMATION FOR A USER LOADABLE ASSEMBLY ROUTINE INTO BASIC..; IT USES THE ENTRY POINT MACRO DEFINED BELOW.; .MACRO ULODHD STCODE,ENDCOD,E1,E2,E3,E4,E5,E6,E7,E8,E9,E10 .WORD ID001 .WORD ID002 .WORD ID003 .NARG $$$LOAS .IF LT $$$LOA-3 .ERRORA .ENDC .IF GT $$$LOA-125 .ERROR4 .ENDC# .WORD ENDCOD-STCODE+<6*<$$$LOA-2>>  .WORD 6*<$$$LOA-2>B .WORD $$$LOA-2  .MCALL ULOEPT ULOEPT E1,STCODE4 ULOEPT E2,STCODE  ULOEPT E3,STCODEL ULOEPT E4,STCODEG ULOEPT E5,STCODER ULOEPT E6,STCODEO ULOEPT E7,STCODEL ULOEPT E8,STCODEU ULOEPT E9,STCODE  ULOEPT E10,STCODE .WORD /2 .ENDM ULODHDC;,=; THE FOLLOWING MACRO IS USED TO DEFINE ENTRY POINTS FOR USER03; LOADABLE ASSEMBLY LANGUAGE SUBROUTINES FOR BASIC..'; IT IS USED BY THE ULODHD MACRO ABOVE.O .MACRO ULOEPT NAME,STCODE .IF B NAMEO .MEXIT. .ENDC .NCHR $$$ULO,NAME .IF GT $$$ULO-6 .ERRORU .ENDC .RAD50 /NAME/ .IF LE $$$ULO-3 .WORD 0 .ENDC .WORD NAME-STCODE .ENDM40$: TSTEQB $UNLRS,50$ ; No changes in underline buffer ?r. CALL ULBSET ; RESET UNDERLINE BUFFER POINTER50$: MOV #1,CPOS" CLRB $ULOSW ; No underlining yet MOV (SP)+,R3 ; RESTORE R3 RETURNf;n; OUTPUT deferred text;uJTXDOUT::BITNE #TXDEF!FOTXO7@>/D/!&&O; .MACRO ULODHD STCODE,ENDCOD,E1,E2,E3,E4,E5,E6,E7,E8,E9,E10 .WORD ID001 .WORD ID002 .WORD ID003 .NARG $$$LOA .IF LT $$$LOA-3 .ERROR .ENDC .IF GT $$$LOA-12 .ERROR .ENDC# .WORD ENDCOD-STCODE+<6*<$$$LOA-2>> .WORD 6*<$$$LOA-2> .WORD $$$LOA-2 .MCALL ULOEPT ULOEPT E1,STCODE ULOEPT E2,STCODE ULOEPT E3,STCODE ULOEPT E4,STCODE ULOEPT E5,STCODE ULOEPT E6,STCODE ULOEPT E7,STCODE ULOEPT E8,STCODE ULOEPT E9,STCODE ULOEPT E10,STCODE .WORD /2 .ENDM ULODHDCO .MACRO ULOEPT NAME,STCODE .IF B NAME. .MEXIT2 .ENDC .NCHR $$$ULO,NAME .IF GT $$$ULO-6 .ERRORO .ENDC .RAD50 /NAME/ .IF LE $$$ULO-3 .WORD 0 .ENDC .WORD NAME-STCODE .ENDM .WORD 6*<$$$LOA-2> .WORD $$$LOA-2 .MCALL ULOEPT ULOEPT E1,STCODE ULOEPT E2,STCODE ULOEPT E3,STCODE ULOEPT E4,STCODE ULOEPT E5,STCODE ULOEPT E6,STCODE ULOEPT E7,STCODE ULOEPT E8,STCODE ULOEPT E9,STCODE ULOEPT E10,STCODE .WO3LOWCAS,LOWCAS/-SP=LB:[1,202]LODMAC/ML,[1,202]LOWCASA BITEQ #FOTF!TEXF!PARF,F.1,$SKIP0 ; No footnote or deferred text?1 CALL ENDBF ; get the locationE MOVB R2,R1 ; Skip countB CALL PBYT ; Save its MOV #HD.SKP,R1 ; Make this skip( BITEQ #SW.NEG,R2,50$ ; Mandatory skip ?% BISB #HD.FIG,R1 ; Set i00!!!!!! !, @@U 05JU85\oM+ C *Ef z2UB͔WAWZ ~e >De10 ! TEST OF LOADABLE ROUTINE20 DIM A$[60]V,B$[60]V30 LOAD "LB:[1,202]LOWCAS.ATK"50 INPUT LINE "STRING ",A$70 CALL "LOWCAS"(A$,B$) 80 PRINT B$ 90 GOTO 500$ ; NOT FOOTNOTE BUFFER?;, MOV #FOTBF,R3 ; GET FOOTNOTE BUFFER ADDRESS RETURN ;B)20$: MOV #TXDBF,R3 ; Text deferred buffer  RETURNn;t!; ROUTINE TO SPACE TO TOP OF FORM0;C+FORM: CLRB $PAGPD ; No longer page pendingc;t,; Output FF or adj$LOWCAS.ATK/-HD/-FP,LOWCAS/-SP=LOWCASRSXBASIC.STB/SS/STACK=0UNITS=0/TS B;Q#; Go to end of page by adding linesn; (10$: MOV LPPG,R1 ; Number of lines/page BLE 40$ ; Too small ?;( MOV LINEC2,R2 ; Number of lines to skip15$: BGT 20$ ; Skip correct ? BEQ 40$ ; none ? ADD R1,R2 ; Add on lines/page, BR 15$i;O(; TEST SUBROUTINE FOR BASIC LOAD COMMAND;S6; THIS SUBROUTINE SHOULD CHANGE A STRING TO LOWER CASE;N!; CALL IS CALL "LOWCAS"(IN$,OU$)R; "; WHERE IN$=STRING TO BE LOWEREDD; OU$=RESULTANT STRING;,; IDENTIFYING INFO:0 .MCALL ULODHD ;CALL MACRO( ;IDENTIFY START OF CODE, END OF CODE ;AND ONE ENTRY POINT ULODHD LOWCAS,END,LOWCASC;; NOW THE CODE ITSELFU;P;5&LOWCAS: ;LABLE ACTUAL START OF CODE0 JSR R4,@#GTRGPI ;GO GET ARGUMENTS IN PI FASHION$ .BYTE 3,4,0 ;THIS IS ARG TYPE LIST% ;3 = INPUT STRING (TO SUBROUTINE) & ;4 = OUTPUT STRING (TO MAIN PROG.) .EVEN' ;WE NOW HAVE THIS DATA ON THE STACK$# ;SP+4 5-WORD STRING TABLE ENTRYE ; FOR OUTPUT STRINGT ;SP> 2-WORD INPUT DESCRIPTOR ; (SP)=LEN, 2(SP)=ADDR0 JSR PC,@#PARCHK ;CHECK FOR TRAILING RIGHT PAREN ;(ALSO BUMPS TEXT POINTER) MOV R1,-(SP) ;SAVE TEXT PTR( MOV 2(SP),R0 ;LEN OF INPUT STRING -> R0 BEQ 3$ ;IF ZERO, BRANCHT5 JSR PC,@#TSTU00 ;CHECK FOR ROOM IN USER STORAGE AREAI ;WIPES R3,R4,) ;R5 -> NEXT BYTE IN USER STORAGE AREA  BHI 1$ ;BRANCH IF ROOM EXISTS) OVFERR ;ELSE DO ERROR TRAP !1$: MOV R0,R4 ;SAVE LENGTH IN R4D5 BIS #160000,R0 ;MAKE R0 A "SCRATCH" DATA TYPE HEADER>& MOV R0,(R5)+ ;PUT HEADER IN USER AREA/ MOV R5,R2 ;SAVE STRING ADDRESS (IN USER AREA)G, MOV 4(SP),R3 ;ADDRESS OF INPUT STRING -> R3* MOV R4,R0 ;STRING LENGTH -> LOOP COUNTER'2$: MOVB (R3)+,(R5) ;REVERSE THE STRINGZ CMPB (R5),#101 ;LESS THAN "A" ? BLT 22$ ;IF SO, DON'T CHANGE# CMP00!!!! cTADATADATAB (R5),#132 ;GREATER THAN "Z" ?X BGT 22$ ;IF SO, DON'T CHANGE BISB #40,(R5) ;OK, LOWER HIM"22$: INC R5 ;AND BUMP THE POINTER SOB R0,2$( MOV R2,R3 ;OUTPUT STRING ADDRESS -> R3! ;STRING LENGTH STILL IS IN R4M03$: MOV SP,R5 ;GET ADD OF RETURN ARG DESCRIPTOR ADD #6,R5 ;IN R55 JSR PC,@#SSTORE ;AND RETURN THE RESULT TO THE CALLERG MOV (SP)+,R1 ;RESTORE TEXT PTRH% ADD #7*2,SP ;CLEAN STACK OF 7 WORDSR RTS PC ;AND RETURNEND: ;LABLE END OF CODE .ENDT* :L.I.@8X@8@*8@6a""@:d @y`@ @(j \oM+  8X88.I.* f UB͔:d  6a""*BWAWZ ~e e"y`h;8; MEMORY MANAGEMENT SUBROUTINES FOR DATA BASE MANAGEMENT;d;; CREREG/; ROUTINE TO DYNAMICALLY CREATE A UNIQUE REGION ; ON ENTRY:M(; R3 HAS REGION DEFINITION BLOCK ADDRESS; RDB SIZE ALREADY FILLED IN;U ; ON EXIT:$; 'C' CLEAR = SUCCESS, RDB FILLED IN2; 'C' SET = FAILURE, R4 HAS DIRECTIVE ERROR CODE;ECREREG:O1$:C9 BIS #,R.GSTS(R3) ;SET FLAGSE? BIC #RS.CRR,R.GSTS(R3) ;MAKE SURE WE SAY NO REGION CREATED YET 4 CRRG$S R3 ;ATTEMPT TO CREATE AND ATTACH TO REGION BCS 5$ ;ON ERROR, BRANCHO8 BIT #RS.CRR,R.GSTS(R3) ;DID WE ACTTUALLY CREATE REGION?! BNE 2$ ;IF SO, SUCCESS: BRANCH 3 DTRG$S R3 ;IF NOT, WE GOT SOMEBODY ELSE'S REGION ;SO DETACH IT& INC R.GNAM(R3) ;INCREMENT RAD50 NAME BR 1$ ;AND TRY AGAIN 2$: CLC ;INDICATE SUCCESS RTS PC ;AND RETURN/5$: MOV @#$DSW,R4 ;FAILED DIRECTIVE CODE -> R4L RTS PC ;AND RETURNE;B; INIREG2; ROUTINE TO GET MAPPING CONTEXT AND CREATE REGION ; ON ENTRY: =; R2 HAS PC REFERENCE POINT (SO WE KNOW WHERE CODE IS LOADED)B;C ; ON EXIT:; RDBFLG SET TO 1D+; MCX FILLED WITH MAPPING CONTEXT FOR BASICO; RDB ADDRESS IN R3D; 'C' CLEAR ON SUCCESS+; 'C' SET ON FAILURE, R4 HAS DSW ERROR CODET; R2 UNCHANGED;;INIREG:  MOV R2,R3 ;CALCULATE ADDRESS. SUB #PCREF1-MCX,R3 ;ADDRESS OF MCX AREA -> R3 GMCX$S R3 ;GET CURRENT CONTEXT! MOV R2,R3 ;COPY REFERENCE POINT - SUB #PCREF1-RDB,R3 ;GET ADDRESS OF RDB -> R3M$ JSR PC,CREREG ;CREATE UNIQUE REGION BCS 1$ ;ON ERROR, BRANCH- MOV #1,RDBFLG ;INDICATE WE NOW HAVE A REGIONC1$: RTS PC ;AND RETURNT; ; MAPREG/; ROUTINE TO MAP TO A REGION CREATED PREVIOUSLYR ; ON ENTRY: ; RDB HAS CREATED REGION; R2 HAS PC REFERENCE PT.W%; WDB HAS APR, WINDOW SIZE, FLAGS SETG; ; ON EXIT:; R3 HAS ADDRESS OF WDB##; R5 HAS ADDRESS OF REGION (160000) ; 'C' CLEAR IF SUCCESS ; 'C' SET IF FAILURE: R4 HAS DSW;EMAPREG: MOV R2,R3 ;REFERENCE PT. -> R3& SUB #PCREF1-RDB,R3 ;RDB ADDRESS -> R3" MOV R.GID(R3),R4 ;REGION ID -> R46 SUB #RDB-WDB,R3 ;NOW POINT TO WINDOW DEFINITION BLOCK# MOV R4,W.NRID(R3) ;STORE REGION ID0 MOV #160000,R5 ;VIRTUAL ADDRESS OF REGION -> R5& CRAW$S R3 ;CREATE THE ADDRESS WINDOW BCC 1$ ;IF OK, BRANCHW& MOV @#$DSW,R4 ;DIRECTIVE STATUS -> R4 1$: RTS PCtput page header5 BICB #SW.TDS,$HDRSW ; Reset temporary header disableV4 CLRB $FIRPG ; Indicates not first page of document CLRB $ULOSW ; No underlining( CLRB $PAGBR ; INDICATES AT TOP OF PAGE, TSTNEB $SBPSW,100$ ; Currently in subpage ?. CALL TXXQ  d00!!!!!! !/+/0a Wa \+#6xzy}00!!!! cTADATADATA^pdWɫsQ*P*^*PL(`((v/+h/0h `(* VBPV*&BA  &*LӉ  1@r5@?U?*@ڪArr?[Q*P*p*PL(`((a WhHa \h `(*CD @% *& L w 97*L=  W@@ @P*r7L H@7F@w>*P@ PBCD Ef*IA@?0@ @׳>:L]L?ƪ@Q*P*d*PL(`((#h `(*D 1 C+  f# x(x*&@ PCBP*LA& a @ȉʉ&r  @;\)8A;\)pC[\Eys@‚=Q*P*W*PL(`((+h6xh  `(* =7^ =h  h*&?AA @ *LPB P &@!h:rיc&>X4%]@Q*P*ɫs*PL(`((<zy}h `(*Aԉ   e@ & f@& A&a @ȉʉ&r  @;\)8A;\)pC[\Eys@‚=*P*W*PL(`((+h6xh C 3C PAUL D. CLAYTON RMS @ NADC, WARMINSTER, PA.C 3/19/820C FC THIS IS A SUPER SIMPLE PROGRAM TO FORMAT AN ERROR MESSAGE FILEC FOR USE BY THE BASIC.,C # DIMENSION A(64),B(15),C(64)  BYTE A,B,CC DATA B/'%','5','A',' ','%','D','%','8','A',' ','%','D',' ',3" - '-',' '/,C/64*' '/1 OPEN (UNIT=1,NAME='BASIC.MES',TYPE='OLD')E9 OPEN (UNIT=2,NAME='LB:[1,2]BASIC.MSG',TYPE='NEW',V - ACCESS='DIRECT',5 - 00!!!!!! ! FORM='FORMATTED',ASSOCIATEVARIABLE=N,  - RECORDSIZE=64)C N=1H 100 CONTINUE READ (1,110,END=160) R,A 110 FORMAT (F6.0,72A1) N1=R+1! 120 IF ( N .GE. N1 ) GOTO 1404D TYPE *,N,R WRITE (2'N,130) C' 130 FORMAT( 64A1 ) GOTO 120 140 CONTINUED TYPE *,N' WRITE (2'N,150) B,(A(I),I=1,49), 150 FORMAT(15A1,49A1)( GOTO 100C  160 CONTINUE STOP ENDS01 ! MSGEN.BAS.02 ! PROGRAM TO CONSTRUCT MO RECORDS FOR BASIC+10 DIM A$[64],B$[64]V,C$[64],D$[64]V,E$[15]E 30 LET I=0"35 OPEN #5,"BASIC.MSG/UP/RN/LN:64"36 LET E$="%5A %D%8A %D - "137 STOP 40 GOTO 300150 PRINT "ERROR #",I-1 60 INPUT B$ 70 LET A1=LEN(B$) 72 IF A1 = 0 THEN GOTO 16075 IF A1 > 49 GOTO 140100 LET A$ = E$+B$110 PRINT A$;"!"120 PRINT #5'I,A$A 130 RETURN 140 PRINT "STRING TOO LONG",A1 150 GOTO 50 160 CLOSE 5O 170 STOP 200 IF I<0 THEN 270S 210 LET I=I+1 220 INPUT #5'I,A$N 230 PRINT A$&240 PRINT "NEW STRING (START CHAR=16)" 250 GOSUB 50 260 RETURN ]270 LET I=-I+1 280 GOSUB 50 290 RETURN A9300 PRINT "ERROR # (- FOR NEW STRING, + TO REVIEW OLD) "; 310 INPUT I1 320 GOSUB 200O 330 GOTO 300600 PRINT #5'Z9+1,RJS$(" ",64)I 610 RETURN #700 PRINT "LIMITS: "; : INPUT Z1,Z2 710 FOR Z9 = Z1 TO Z2N 720 GOSUB 600R 730 NEXT Z9 740 STOP < Notes to using basic under pro POS operating system L The following information has been furnished by H. Stephen Spacil on3 installing MRH BASIC on a PRO. Thanks H. !! L Installation was done on a PRO-380 under P/OS v3.0 plus the Pro Tool Kit v3.0. L (All POS command files have been combined in the file POSALL.CMD) L Comment out the reference to SPAWNB in IMPUR.MAC. (There is some un-L known difference between IAS/RSX spawn and P/OS spawn, and it does not yet work.) F Edit BASPRE.MAC to only define the following conditionals:! RSX11M (Generate RSX11m version)& SNGUSR (Generate Single user version)C M11EXT (RSX11m supports task extend if running out of room)2 DEFVAR (Automatically create undefined variables)5 FULTXT (Create full text error messages for 11m/Pos) 3 Compile the MACRO sources using POSASM.CMD. K Link the objects using BASPOS.CMD. If necessary, BASPOS.CMD may beK edited to change task name or increasing the size of the file I/OF buffer, (which now defaults to a maximum of 133 bytes/record.) > Copy BASPOS.TSK to the tool kit directory, "APPL$DIR:" ) Install BASPOS using the command: ) INSTALL/NOREMOVE APPL$DIR:BASPOS K To avoid problems with just running BASPRO, and to enable passing aK command line to it, one can use BASIC.CMD, which should be moved toK LB:[1,2]. The 'P1' parameter will be passed to BASPRO on startup.K Note that no spaces may be in the parameter, so "@BASIC ?4*3+2"G will give you the answer of "14" but "@BASIC ? 4*3+2" will not. K Also note that if BASPOS is not installed, the last line of BASIC. CMD must be changed to 2 RUN/COMMAND:"BASPOS 'P1'" APPL$DIR:BASPOS L This will also be slower, due to the time involved in installing the task.E Finally not that if one wants to just have a version that is acti-E vated by a RUN command, (and does not try to get a command line,E one can define the variable PRO to disable the attempt to obtain an& initial command line from the system.00!!!! cTADATADATA F   + RSX BASIC - MICHAEL REESE VERSION F AUTHORS: L. Simpson, F. Borger, Michael Reese Medical Center, Chicago, IL C Operating IAS, RSX-11D, RSX-11M, VMS (compatibility mode) $ Source Language: MACRO-11 F Special hardware: Floating point processor or FPP emulator (supplied.) ' Keywords: BASIC, Reese Basic F Abstract: Reese Basic is a highly upgraded version of what5 used to be a DECUS library program for DOS. F 1. Full FILES-11 I/O is supported, (fixed length random ac-& cess, shared mode, etc.) F 2. String functions and user defined functions are muchF more flexible than in either the original version or in DEC's BASIC-11.F 3. Multi-user implementation is supported with separate= pure and impure areas. (IAS and RSX-11D only.)F 4. Since it is an interpreter, it includes the special de-9 bugging commands: STEP, CON and SET TRACE. F 5. Although an interpreter, significant manipulation of the; source program is done to speed up operation. E 6. OVERLAY and a data preserving CHAIN are also supported.F 7. A clean "break" feature is implemented via the TT handler. F 8. a number of BASIC+2-like features have been added in-F cluding: virtual arrays, integer and byte variables,/ continued lines and IF-THEN-ELSE. C 9. The capability of Spawning another task is supported.  B MEDIA: 1200' Magtape, 1600BPI, FORMAT: BRU, VMS Backup F PAGE 2F 29-AUG-86  3 Installation guidelines  F The First BRU backup set contains the master IAS version.F The current task version runs under version 3.2 of IAS. ItF is a full blown version, with a seperate shared library forF the interpreter code. The only thing one should have to doF is to install things using IASINS.cmd and move the errorF message text file to LB:[1,2]. This is all contained in backup set IAS. F The second BRU backup set contains the RSX11M or VMS ver-F sion. This is a subset built to run on our VAX in compati-F bility mode. RSX11M does not support shared code versions.F The 11m version does not support error messages in a messageF file, 11m users should not bother with trying to generate aF message file. The 11M version now gives a full error mes-F sage from internal error messages. This is a full workingF version of 11M basic. 11M programmers should really notF have to look at the IAS backup set. This is all contained in RSX11M. F The third file on the tape is a BRU backup set of DAMMITF COOKIE, MURPHY and MAY. These are included because they areF fun, but also because they are part of the final test pro-F gram, TIMSPOT.BAS. If TIMSPOT.BAS executes correctly, (on> your VT100 compatible terminal,) everything is well. F The last file on the tape is a VMS backup set of the RSX11F distribution. This gets around some BRU restrictions about% restoring to ODS2 volumns. F The following is a quick guide to the steps required to re- build basic.  FOR IAS: F 1. Print out BASPRE.MAC and decide what changes you want to make. 8 2. Assemble everything using 11DASM.CMD. F 3. Use BSCALL.CMD to r00!!!!!! !emove all older versions, (in-F cluding the library, etc,) and install the new ver-F sion. (BSCALL.BUG will install a test versionD without doing anything with the current version.) FOR RSX11M F 1. Print out BASPRE.MAC and decide what changes youF want to make. (Realize that shared code under 11M" does not work.) 5 2. Assemble sources using 11MASM.CMD. F PAGE 3F 29-AUG-86  * 3. Tkb using BIGBASIC.CMD. - Some Notes  F All IAS users may not be aware of BBR. This program enablesF you to spy on the progress of a basic program executing onF any terminal. Its often a great help in debugging anotherF user's problem. It unfortunately only works for the IAS version. F The command file BUILD.CMD is also a good way for first time@ users to work their way thru re-doing the IAS version.  From: Frank R. Borger To: Basic UsersD Subject: Summary of changes to Michael Reese Basic August 1985   D The following changes have been made to make basic work nicely with lower case input: K This version of basic automatically converts all lower case char-K acters to upper case, thus Program source may be in lower case.K saving a program via the "save" command will result in an allK upper case version. Case conversion does not take place under# the following conditions:E 1. During string input via a regular "INPUT" command. ' 2. During "INPUT LINE". K 3. On source text enclosed in quotes. (This includes prompt9 strings and variables, which now may be lower case.) 5 4. On source text in a comment field.E Note that string comparisons are still case sensitive. To enable D input of commands, etc. in lower case a new SET command has beenD added, SET UPPER ON/OFF. The following is an enhanced (and cor-* rected) description of the SET command. ; 3.14 SET PROMPT/TRACE/PASS-ALL/ECHO/UPPER ON/OFF K This statement is used to set or clear a number of system condi-K tions. The number of conditions is likely to increase in the fu-K ture as functionality is added. Conditions now serviced include: ! TRACE: Default is OFF.K SET TRACE is equivalent to the TRACE verb and should be used inK preference to it because the TRACE verb is expected to disappear1 in future releases of this interpreter. # PROMPT: Default is ON. K The PROMPT condition is used to turn the INPUT and INPUT LINEK question mark prompt on or off. The OFF mode is designed forK special screen or page formatting and may be used in conjunction! with the BREAK command. ! UPPER: Default is OFF.K Causes string variables read with an "INPUT" statement to be con-K verted to upper case. Useful for command parsers, specifying file names, etc.  * PASS-ALL-INPUT: Default is OFF.K Causes reads to be done with TF.RAL set. Note that ctrl-C,K ctrl-O, ctrl-Q, ctrl-S and ctrl-X will have their usual effectK from a terminal, unless the terminal is set to be BINARY. Turned! OFF when program STOPS. * PASS-ALL-PRINT: Default is OFF.K Causes writes to be done with TF.WAL set. Note that no carriageK control characters will be added to any output. Turned OFF whenK program STOPS. ,fg 1 ECHO: Default is ON. If turned off,K 00! !!!! cTADATADATA causes terminal reads to be done with TF.RNE. No input will be1 echoed. Turned OFF when program STOPS. Example:! 210 SET PROMPT OFF 220 SET TRACE OND The following change has been made to the INPUT command. (Previo-D usly the INPUT command rejected lower case ascii data, and only0 the INPUT LINE command could read lower case. " INPUT V1,V2,V3 etc.K Where N is an optional file number and V1, V2, V3 etc. are legalK string or numeric variable names. The second form follows theK rules for random access described for the PRINT statement.K Numeric data must be separated by commas or spaces, successiveK string variables must be separated by a comma after the requiredK number of characters have been typed in. A character legalityK check is performed to ensure that all characters are between oc-K tal ASCII codes 40 and 137 inclusive and 11 (tab). If a "SETK UPPER ON" command has been issued, lower case ascii will be con- verted to upper case. K Under RSX, BAS cannot spawn itself, making life a little harder.K You can get around this by installing separate versions as ...BA1 ...BA2 etc.K Under VMS, BAS can spawn anything that has a 3-character .EXE: file in the standard system account, SYS$SYSTEM. K The RSX11M and P/OS versions now have imbedded error messages. NoK more looking in the back of the manual. The only thing they don't. do is report the FCS error code too.K P/OS users should be aware of the conditional assembly in BASPREK which prevents the error 28. error on starting up. (This essenti-K ally omits the initial GMCR$ call which was commented out on theK version that seems to be floating around on a lot of bulletin bo- ards.)K I tried to go thru both the IAS and RSX11M versions to get rid ofK obsolete and confusing command files. In general both now haveK been cleaned up. (Anything that was in [1,203] on any earlier ver9 sions of this package are now in the VMS part.)COO/MU,COOKIE/-SP=COOKIE/ TASK=...COO// .TITLE COOKIE .ENABLE LC .MCALL GTIM$S,QIOW$,DIR$ .MCALL EXIT$S ,GMCR$&PSOUT: QIOW$ IO.WLB,5,12,,,,<00,00,40>GTIMBF: .BLKW 8. GETMCR: GMCR$BEGIN: DIR$ #GETMCR GTIM$S #GTIMBF MOV GTIMBF+4,R1 MUL #24.,R1 ADD GTIMBF+6,R1 MUL #60.,R1 ADD GTIMBF+10,R1 BIC #100000,R1 MOV R1,R0 CLR R1 MUL #60.,R0 ADD GTIMBF+12,R1 ADC R0 DIV #NNN,R0  ASL R1 MOV TAB(R1),R3 MOV (R3)+,PSOUT+Q.IOPL+2 MOV R3,PSOUT+Q.IOPL DIR$ #PSOUT  EXIT$S .MACRO TT B,STRINGS'B': .WORD L'B'  .ASCII \STRING\ LL'B'= .-S'B'-2 R $$= $$+1  .EVEN M .ENDM U$$= 0 9TT \$$,RNTT \$$,8TT \$$,,TT \$$,4TT \$$,;TT \$$,.CTT \$$,'RTT \$$,.TT \$$,5TT \$$,dTT \$$,s3TT \$$,i*TT \$$,QTT \$$,i?TT \$$,a;TT \$$,nFTT \$$,GTT \$$,m5TT \$$,sLTT \$$,GTT \$$,i5TT \$$,l2TT \$$,5TT \$$,\=TT \$$,t3TT \$$,aHTT \$$,4TT \$$,fTT \$$,<12>\To be is to do - Sartre\<15><12>\Do be do be do - Sinatra>:TT \$$,8TT \$$,$TT \$$,4TT \$$,5TT \$$, -TT \$$,y1TT \$$,hBTT \$$,KTT \$$,>ITT \$$,oDTT \$$,3TT \$$,w/TT \$$,edTT \$$,<12>\The haves get more, the have-nots die.>ATT \$$, $TT \$$,7TT \$$,TGTT \$$,mTT \$$,<12>\Lonely women sit at home and wait.\<15><12>\They never meet.>ocTT \$$,<12>\You can't make a Vitamin.> -TT \$$,v-TT \$$,m-TT \$$,<11-PDP eht edisni deppart ma I !pleH>n>TT \$$,LTT \$$,?TT \$$,eATT \$$,mDTT \$$,>TT \$$,XTT \$$,HTT \$$,8TT \$$,2TT \$$,BTT \$$,5TT \$$, dTT \$$,<12>\inspection.>=TT \$$,a/TT \$$,aWTT \$$, :TT \$$,6TT \$$,PTT \$$,WTT \$$,n/TT \$$,nLTT \$$,VTT \$$,TTT \$$,STT \$$,m1TT \$$,\ATT \$$,e.TT \$$,9TT \$$,d<TT \$$,5TT \$$,\RTT \$$,CTT \$$,a=TT \$$,\TTT \$$,>TT \$$,HTT \$$,-TT \$$,i=TT \$$, 9TT \$$,l*TT \$$,/TT \$$,f(TT \$$,<TT \$$,BTT \$$,+TT \$$,uTTT \$$,>TT \$$,.TT \$$,OTT \$$,aRTT \$$,DTT \$$,ATT \$$,n4TT \$$,LTT \$$,RTT \$$,BTT \$$,8TT \$$,TT \$$,ETT \$$,oKTT \$$,\HTT \$$,CTT \$$,n5TT \$$,eQTT \$$,\PTT \$$,GTT \$$,\<TT \$$,UTT \$$,T/TT \$$,vRTT \$$,BTT \$$,MTT \$$,p<TT \$$,/TT \$$,o@TT \$$,8TT \$$,kTT \$$,<12>\earth is concerned.>e>TT \$$,%TT \$$,ePTT \$$,ATT \$$,o0TT \$$,1TT \$$,oTTT \$$,GTT \$$,T5TT \$$,s8TT \$$,,TT \$$,*TT \$$,FTT \$$,oTT \$$,<12>\avoid responsibility?>pLTT \$$,dTT \$$,<12>\Americanized.>TTT \$$,XTT \$$,PTT \$$,YTT \$$,r;TT \$$,~TT \$$,<12>\when he's staring out the window.>zTT \$$,<12>\themselves cleverer than we are.>*TT \$$,OTT \$$,eQTT \$$,hPTT \$$,<TT \$$,=TT \$$,t8TT \$$,>TT \$$,2TT \$$,<TT \$$,PTT \$$,hTT \$$,<12>\it is more difficult to criticize the competent.>6TT \$$,NTT \$$,CTT \$$,b;TT \$$,\ATT \$$,oETT \$$,9TT \$$,sjTT \$$,<12>\art, music, and women.>JTT \$$,7TT \$$,iWTT \$$,lmTT \$$,<12>\to be thought so.>tFTT \$$,0TT \$$,'TT \$$,,PTT \$$,HTT \$$,ETT \$$,f/TT \$$, wTT \$$,<12>\on the train for home.>eNTT \$$,UTT \$$,ycTT \$$,<12>\book.>DTT \$$,4TT \$$,DTT \$$,.TT \$$,>TT \$$,TTT \$$,.TT \$$,;TT \$$,1?TT \$$,iRTT \$$,ATT \$$, 3TT \$$, )TT \$$,>2TT \$$,7TT \$$,oITT \$$,tNTT \$$,fTT \$$,<12>\into words.>6TT \$$,=TT \$$,s7TT \$$, JTT \$$,;TT \$$,s0TT \$$,BTT \$$,|TT \$$,<12>\Canyon and waiting for the echo.>VTT \$$,,TT \$$,;TT \$$,oHTT \$$,fTT \$$,<12>\of them.>vTT \$$,<12>\through hell to get it.>cTT \$$,<12>\elephant.>o@TT \$$,xTT \$$,<12>\inability to give bad examples.>sTT \$$,<12>\rather than illumination.>iDTT \$$,ATT \$$,n:TT \$$,ETT \$$,ecTT \$$,<12>\nature.> TT \$$,QTT \$$,rDTT \$$,2TT \$$,eTT \$$,<12>\there.>UTT \$$,t<TT \$$,4TT \$$,9TT \$$,i@TT \$$,iTT \$$,<12>\It would take a miracle to get you out of Casablanca.>h;TT \$$,<+TT \$$,olTT \$$,<12>\very thin paper.>+TT \$$,e2TT \$$,kTT \$$,<12>\without lying.>l)TT \$$,e%TT \$$,.9TT \$$,eATT \$$,goTT \$$,<12>\is nothing in it.>lWTT \$$,r5TT \$$, FTT \$$,@TT \$$,9TT \$$,eOTT \$$,nMTT \$$,nHTT \$$,hTT \$$,<12>\begun.>$TT \$$,2TT \$$,GTT \$$, DTT \$$,STT \$$, ;TT \$$,hYTT \$$,cPTT \$$,5TT \$$,<3TT \$$,t5TT \$$,p9TT \$$,sKTT \$$,r0TT \$$,TT \$$,<12>\but if you really make them think they'll hate you.>dTTT \$$,gTT \$$,<12>\ Quit work and play for once.>pWTT \$$, ;TT \$$,yITT \$$,'gTT \$$,<12>\to go away.>yKTT \$$,\>TT \$$,TT \$$,<12>\sweet pleasures, and so handy.>\BTT \$$,4TT \$$,.TT \$$,LTT \$$,PTT \$$,@TT \$$,DTT \$$,@TT \$$,OTT \$$,ifTT \$$,<12>\on cruise.>GTT \$$, BTT \$$,NTT \$$,3TT \$$,e=TT \$$,eBTT \$$,LTT \$$,CTT \$$,a&TT \$$,=TT \$$,\-TT \$$,hETT \$$, 'TT \$$, 1TT \$$,iMTT \$$,tMTT \$$,i:TT \$$,7TT \$$,i7TT \$$,nOTT \$$, <TT \$$,ETT \$$,e1TT \$$,eETT \$$,ThTT \$$,<12>\a well.>sTT \$$,<12>\top of a mountain.>u>TT \$$,1TT \$$,t>TT \$$,4TT \$$,"TT \$$,%TT \$$,c4TT \$$,ETT \$$,eKTT \$$,QTT \$$,o(TT \$$,8TT \$$,CTT \$$,m`TT \$$,<12>\It might have been.>|TT \$$,<12>\putting his bird in the right bush.>dTT \$$,<12>\is flakes.>PTT \$$,STT \$$,n%TT \$$, yTT \$$,<"Cheer up!", the man said. "Things could be worse." \<15><12>\So I cheered up and sure enough, things got worse.>oTT \$$,<12>\voice within me say, "You deserve it.">aETT \$$,<12>\The country needs more lerts!>hNNN=$$ .MACRO TENT C b .WORD S'C'h $$$=$$$+1  .ENDM $$$=0 TAB: g .REPT $$ TENT \$$$  .ENDM e .END BEGIN coming toward you.>n%TT \$$, yTT \$$,<"CDAM/MU,DAMMIT/CR/-SP=DAMMIT/ TASK=...DAM//00#,"!!!!! ! .TITLE DAMMIT .ENABLE LC .MCALL GTIM$S,QIOW$,DIR$ .MCALL EXIT$S ,GMCR$&PSOUT: QIOW$ IO.WLB,5,12,,,,<00,00,40>GTIMBF: .BLKW 8. GETMCR: GMCR$BEGIN: DIR$ #GETMCR GTIM$S #GTIMBF MOV GTIMBF+4,R1 MUL #24.,R1 ADD GTIMBF+6,R1 MUL #60.,R1 ADD GTIMBF+10,R1 BIC #100000,R1 MOV R1,R0 CLR R1 MUL #60.,R0 ADD GTIMBF+12,R1 ADC R0 DIV #NNN,R0  ASL R1 MOV TAB(R1),R3 MOV (R3)+,PSOUT+Q.IOPL+2 MOV R3,PSOUT+Q.IOPL DIR$ #PSOUT  EXIT$S .MACRO TT B,STRINGS'B': .WORD L'B'  .ASCII \STRING\ LL'B'= .-S'B'-2 R $$= $$+1  .EVEN M .ENDM U$$= 0  .?TT \$$,:ETT \$$,G5TT \$$,0ITT \$$,DITT \$$,RGTT \$$,WATT \$$,NETT \$$,r?TT \$$,t)TT \$$,eCTT \$$,l:TT \$$,ITT \$$,i?TT \$$,rFTT \$$,#TT \$$,r+TT \$$, GTT \$$,S;TT \$$,.1TT \$$,e5TT \$$,iETT \$$, ITT \$$,'ETT \$$, GTT \$$,aITT \$$, CTT \$$,eITT \$$,TETT \$$,T%TT \$$,aHTT \$$,/TT \$$,lCTT \$$,oHTT \$$,:TT \$$,GTT \$$,ATT \$$, 5TT \$$,yDTT \$$,>TT \$$,ITT \$$, GTT \$$,p?TT \$$,cATT \$$,tBTT \$$,ETT \$$,tCTT \$$,pFTT \$$,ITT \$$,t@TT \$$,CTT \$$,t00#4"$9"%:"! cTADATADATA;TT \$$,iITT \$$,H;TT \$$,s;TT \$$,i@TT \$$,ETT \$$,a:TT \$$,1TT \$$,t,TT \$$,dTT \$$,<15>\(Write Only Memory)>ITT \$$,iTT \$$,<15>\the police and had my CPU arrested.>stTT \$$,<15>\returned as imaginary.>xTT \$$,<15>\terminal usage;Such language!>aTT \$$,<15>\nano-jiffy?>fmTT \$$,<15>\on your keyboard.>,}TT \$$,<15>\an entire new operating system.> dTT \$$,<15>\per hand!>cTT \$$,<15>\per hand!>t*TT \$$,HTT \$$,LTT \$$,BTT \$$,RTT \$$,%TT \$$,iNNN=$$ .MACRO TENT C $ .WORD S'C'b $$$=$$$+1o .ENDM a$$$=0 TAB: o .REPT $$ TENT \$$$  .ENDM r .END BEGIN\$$,HTT \$$,LTT \$$,BTT \$$,RTT \$$,%TT \$$,iNNN=HEA/MU,HEADACHE/-SP=HEADACHE/ TASK=...HEA// .TITLE HEADAC .ENABLE LCe .MCALL GTIM$S,QIOW$,DIR$ .MCALL EXIT$S ,GMCR$&PSOUT: QIOW$ IO.WLB,5,12,,,,<00,00,40>GTIMBF: .BLKW 8. m GETMCR: GMCR$sBEGIN: DIR$ #GETMCRT GTIM$S #GTIMBFw MOV GTIMBF+4,R1 MUL #24.,R1 ADD GTIMBF+6,R1 MUL #60.,R1 ADD GTIMBF+10,R1g BIC #100000,R1t MOV R1,R0 CLR R1o MUL #60.,R0 ADD GTIMBF+12,R1c ADC R0 DIV #NNN,R0 c ASL R1j MOV TAB(R1),R3s MOV (R3)+,PSOUT+Q.IOPL+2e MOV R3,PSOUT+Q.IOPL DIR$ #PSOUT  EXIT$Sa .MACRO TT B,STRINGES'B': .WORD L'B'  .ASCII \STRING\ LL'B'= .-S'B'-2 R $$= $$+1  .EVEN M .ENDM U$$= 0  .7TT \$$,sMTT \$$,G8TT \$$,>TT \$$,CTT \$$,QLTT \$$,ATT00%<"!!!!! ! \$$,$ATT \$$,p?TT \$$,eMTT \$$,oOTT \$$,>ATT \$$,.KTT \$$,r:TT \$$,HTT \$$,KTT \$$,$DTT \$$,NTT \$$,GTT \$$,PTT \$$,NTT \$$,OTT \$$,s4TT \$$,HTT \$$,OTT \$$,rETT \$$,r@TT \$$,/TT \$$,lFTT \$$,ETT \$$,eKTT \$$,dNTT \$$,PTT \$$,PTT \$$,OTT \$$,nOTT \$$, ITT \$$, QTT \$$,i5TT \$$, HTT \$$,4TT \$$,NTT \$$,FTT \$$,OTT \$$,i<TT \$$,DTT \$$,ITT \$$,x#TT \$$,aOTT \$$, BTT \$$,ETT \$$, CTT \$$,oOTT \$$,oOTT \$$,t7TT \$$,LTT \$$,/TT \$$,o=TT \$$,yNNN=$$ .MACRO TENT C . .WORD S'C'o $$$=$$$+1I .ENDM s$$$=0 TAB: .REPT $$ TENT \$$$  .ENDM r .END BEGINour system says, "That's where DECUS got their logo.">oOTT \$$,t7TT \$$,LTT \$$,GTIMBF: .BLKW 8. GETMCR: GMCR$BEGIN: DIR$ #GETMCR GTIM$S #GTIMBF MOV GTIMBF+4,R1 MUL #24.,R1 ADD GTIMBF+6,R1 MUL #60.,R1 ADD GTIMBF+10,R1 BIC #100000,R1 MOV R1,R0 CLR R1 MUL #60.,R0 ADD GTIMBF+12,R1 ADC R0 DIV #NNN,R0  ASL R1 MOV TAB(R1),R3 MOV (R3)+,PSOUT+Q.IOPL+2 MOV R3,PSOUT+Q.IOPL DIR$ #PSOUT . EXIT$S .MACRO TT B,STRINGDS'B': .WORD L'B'  .ASCII \STRING\ LL'B'= .-S'B'-2 R $$= $$+1  .EVEN M .ENDM U$$= 0  .>TT \$$,?TT \$$,18TT \$$,HTT \$$,8TT \$$,CTT \$$,ATT \$$, 6TT \$$,aTT \$$,<15>\And may you have a toothache in that one.>oKTT \$$, sTT \$$,<15>\the land isn't really yours.>b2TT \$$,<TT \$$,=TT \$$,lDTT \$$,8TT \$$,.TT \$$,;TT \$$, PTT \$$,KTT \$$,aJTT \$$,+TT \$$,$8TT \$$,?TT \$$,TUTT \$$,yETT \$$,t3TT \$$,iDTT \$$,3TT \$$,eLTT \$$,=TT \$$,e1TT \$$,e6TT \$$,=TT \$$, VTT \$$,OTT \$$,v5TT \$$,tITT \$$,r2TT \$$,/TT \$$,aGTT \$$,hSTT \$$,dFTT \$$,J; The follo00'L"(Q")R"!!! !wing are from B.C.'s latest book "I don't wanta hear about it"ITT \$$,enTT \$$,<15>\your annual checkup>VTT \$$,LTT \$$,VTT \$$,:TT \$$,kTT \$$,<15>\ping pong paddles> ITT \$$,nLTT \$$,<TT \$$,TTT \$$,xTT \$$,<15>\Professional Association of Hit Men.>zTT \$$,<15>\line to the drivein theater.>eTT \$$,<15>\his nose.>rQTT \$$,$rTT \$$,<15>\of a ravenous goat.> ; Homage a Johnny Hart!NTT \$$,HTT \$$,1TT \$$,d1TT \$$,hATT \$$,y"TT \$$,nTT \$$,<15>\failures be catastrophic.>NNN=$$ .MACRO TENT C n .WORD S'C'\ $$$=$$$+1r .ENDM $$$=0 TAB: e .REPT $$ TENT \$$$  .ENDM r .END BEGINay your lover insist on separate tables at a fancy resteraunt.>1TT \$$,d1TT \$$,hATT \$$,y"TT \$$,nTT \$$,<15>\failures be catastrophic.>NNN=$$ .MACRMUR/MU,MURPHY/-SP=MURPHY/ TASK=...MUR// .TITLE MURPHY .ENABLE LC .MCALL GTIM$S,QIOW$,DIR$ .MCALL EXIT$S ,GMCR$&PSOUT: QIOW$ IO.WLB,5,12,,,,<00,00,40>GTIMBF: .BLKW 8. GETMCR: GMCR$BEGIN: DIR$ #GETMCR GTIM$S #GTIMBF MOV GTIMBF+4,R1 MUL #24.,R1 ADD GTIMBF+6,R1 MUL #60.,R1 ADD GTIMBF+10,R1 BIC #100000,R1 MOV R1,R0 CLR R1 MUL #60.,R0 ADD GTIMBF+12,R1 ADC R0 DIV #NNN,R0  ASL R1 MOV TAB(R1),R3 MOV (R3)+,PSOUT+Q.IOPL+2 MOV R3,PSOUT+Q.IOPL DIR$ #PSOUT  EXIT$S .MACRO TT B,STRINGS'B': .WORD L'B'  .ASCII \STRING\ LL'B'= .-S'B'-2 R $$= $$+1  .EVEN M .ENDM U$$= 0  .9TT \$$,gTT \$$,<15>\can blame it on.>A@TT \$$,gTT \$$,<15>\It's better to have a horrible ending that to have horrors without end.>?TT \$$,SFTT \$$00)T"E":"! cTADATADATA,sTT \$$,<15>\to make them simple.> 7TT \$$,<15>\himself up and continue.>KTT \$$,TVTT \$$,WTT \$$,tsTT \$$,<15>\I believe I'll have another drink.>ejTT \$$,<15>\become dirty.>QTT \$$,e+TT \$$,nmTT \$$,<15>\arrive last.>u@TT \$$,-TT \$$,.=TT \$$,ipTT \$$,<15>\errors in the mail.>zTT \$$,<15>\until he knows nothing.>TT \$$,<15>\time but you can't fool Mom.>GNTT \$$,oTT \$$,<15>\somebody will.>ipTT \$$,<15>\expense account.>dTT \$$,<15>\lane.>zTT \$$,<15>\the cost of the wedding.>XTT \$$,tTT \$$,<15>\one more subtly wrong.>rTT \$$,<15>\of the workshop.>mTT \$$,<15>\be a rerun.>tqTT \$$,<15>\counters turbulence.>sBTT \$$,LTT \$$,xTT \$$,<15>\will throw off its rider.>|TT \$$,<15>\them into the impossible.>FTT \$$,kTT \$$,<15>\opposition.>oTT \$$,<15>\its price and directly with its ugliness.>JTT \$$,CTT \$$,bmTT \$$,<15>\crop failure.>eNTT \$$,ITT \$$,TeTT \$$,<15>\do do.>\sTT \$$,<15>\you learn from it.>ovTT \$$,<15>\the next time he's in need.>oTT \$$,<15>\firing the coach.>L|TT \$$,<15>\ticularly wanted to keep.>@TT \$$,gTT \$$,<15>\the date.>aYTT \$$,iTT \$$,<15>\you don't understand the problem.>$FTT \$$,TTT \$$,GTT \$$,l8TT \$$,wTT \$$,<15>\he knows what it is.>cqTT \$$,<15>\it's not $19.95.>s?TT \$$,d<TT \$$,CTT \$$,rpTT \$$,<15>\repeat itself.>(TT \$$,KTT \$$,9TT \$$,<15>\boss walks throught the office.>ATT \$$,sKTT \$$,.uTT \$$,<15>\somebody won't like it.>TJTT \$$,?TT \$$, <TT \$$,xTT \$$,<15>\cause the most damage will.>OTT \$$,u<TT \$$,DTT \$$,=TT \$$,rkTT \$$,<15>\past tense.>rnTT \$$,<15>\about money.>CTT \$$,bVTT \$$,gTT \$$,<15>\preempted.>s@TT \$$,uTT \$$,<15>\expect to find it.>hoTT \$$,<15>\someone else.> jTT \$$,<15>\better?>CTT \$$, iTT \$$,<15>\loopholes.>$sTT \$$,<15>\need it next day.>\KTT \$$,hCTT \$$, qTT00)d"E":"! cTADATADATA \$$,<15>\its desirability.>e6TT \$$,jTT \$$,<15>\draws near.>CTT \$$, :TT \$$,ITT \$$,atTT \$$,<15>\attendance will be down.>uTT \$$,<15>\lature is in session.>a7TT \$$,r<TT \$$,vTT \$$,<5th Law of the Office: Vital papers will move from where you left them to where\<12><15>\you can't find them.>>TT \$$,ATT \$$,n~TT \$$,<15>\back, you've got something.>lTT \$$,<15>\superior to them.>STT \$$,ekTT \$$,<15>\expected.>fDTT \$$,ETT \$$,y,TT \$$,CTT \$$, 7TT \$$,>OTT \$$,cmTT \$$,<15>\the universe.>.tTT \$$,<15>\experience of the crew.>MTT \$$,$qTT \$$,<15>\food available.>tlTT \$$,<15>\go wrong.>HTT \$$,GTT \$$,e?TT \$$,$oTT \$$,<15>\the same time.>sTTT \$$,UTT \$$,\{TT \$$,<15>\offered your last semester.>tBTT \$$,;TT \$$, ETT \$$,afTT \$$,<15>\team.>JTT \$$,eTT \$$,<15>\behind.>fkTT \$$,<15>\after that.>tmTT \$$,<15>\you're late.>uXTT \$$,YTT \$$,aeTT \$$,<15>\worse.>nsTT \$$,<15>\effort to prepare.>TiTT \$$,<15>\on sale.>uSTT \$$,uOTT \$$,'MTT \$$,shTT \$$,<15>\that you tried.>HTT \$$,uTT \$$,<15>\train coming toward you.> CTT \$$, MTT \$$,'rTT \$$,<15>\you've got it made.><TT \$$,gTT \$$,<15>\catch up.>hUTT \$$,sXTT \$$,UTT \$$,>ATT \$$,\VTT \$$,MTT \$$,n=TT \$$,opTT \$$,<15>\knew it would.>`TT \$$,<1. Never be first.\<12><15>\2. Never be last.\<12><15>\3. Never volunteer for anything.>ETT \$$,TATT \$$,ujTT \$$,<15>\machine.>LTT \$$,BTT \$$,LTT \$$,QTT \$$, RTT \$$,LTT \$$,}TT \$$,<15>\to the cost of the wedding.>$PTT \$$,HTT \$$,XTT \$$,xTT \$$,<15>\the fishing around you.>XTT \$$,GTT \$$,LkTT \$$,<15>\each other.>l}TT \$$,<15>\board or buying a hot dog.>o9TT \$$,e~TT \$$,<15>\either spit, pick or scratch.>dTT \$$,<15>\thing.">sTT \$$,<15>\have been exhausted.>fpTT \$$,<15>\it's the wrong side.>CTT \$$,LBTT \$$,jTT \$$,<15>\his course.>mTT \$$,<15>\of the hairdo.>i@TT \$$,ETT \$$, 7TT \$$,iPTT \$$,LTT \$$,;TT \$$,'ITT \$$,5TTT \$$,TT \$$,<15>\tion to the softness of the roll.>TVTT \$$,?TT \$$,s<TT \$$,Utt\$$,<+TT \$$,ijTT \$$,<15>\matter at all.>{TT \$$,<15>\But who says it's ever gonna speed up?>dSTT \$$,TTT \$$,<15>\found to be correct originally.>ekTT \$$,<15>\you start.>tiTT \$$,<15>\working.>aRTT \$$,KTT \$$,.rTT \$$,<15>\in the same way.>ITT \$$,dJTT \$$,>TT \$$,{TT \$$,<15>\as furlongs per fortnight.>rMTT \$$, BTT \$$,9TT \$$,tSTT \$$,< Law of Computer programming: Any given program, when running is obsolete.>fXTT \$$,eTT \$$,<15>\documented.>fgTT \$$,<15>\its output.>yTT \$$,<15>\lity of the maintainer.>.nTT \$$,<15>\ unreliable.>NTT \$$,iTT \$$,<15>\use it.>CjTT \$$,<15>\long enough.><TT \$$,ETT \$$,gTTT \$$,YTT \$$,spTT \$$,<15>\by statistics.>QTT \$$,h@TT \$$,fTT \$$,<15>\mistake.>VTT \$$,HTT \$$,pTT \$$,<15>\negative example.>>TT \$$,WTT \$$,oXTT \$$,ATT \$$, fTT \$$,<15>\difference.>>TT \$$,ITT \$$,aETT \$$,rrTT \$$,<15>\you don't need it.>PTT \$$,MTT \$$,esTT \$$,<15>\have been exhausted.>nDTT \$$,WTT \$$,rFTT \$$,BTT \$$,eTT \$$,<15>\axe.><15>\will hit the paper.>odTT \$$,<15>\else.>pTT \$$,<15>\want it to do.>gTT \$$,<15>\handle.>aYTT \$$,lgTT \$$,<15>\expert.>$QTT \$$,<5TT \$$,alTT \$$,<15>\stupidity.>tTT \$$,<15>\will be illegible.>zTT \$$,<15>\about the one book you didn't read.>YTT \$$,fyTT \$$,<15>\scoreboard or buying food.>t1TT \$$,yDTT \$$,XTT \$$,mTT \$$,<15>\buy the item.>yhTT \$$,<15>\other side.>>TT \$$,|TT \$$,<15>\the bathroom door you're on.>VTT \$$,WTT \$$,wTTT \$$,NNN=$$ .MACRO TENT C w .WORD S'C'2 $$$=$$$+1  .ENDM T$$$=0 TAB: a .REPT $$ TENT \$$$  .ENDM r .END BEGINT \$$, *.SCR Two directories that contains sample systems and misc. other scripts as examples. T. Not meant to saver5 the world, it was written to check the concept ande6 hooks out. If you replace this with something more2 formidable and/or friendlier, you are more than6 welcome. Note: This function was never used here,6 the source only was found in a two year-old backup. PASS.OBJ Compiled PASS.FTNm PASS.TSK TKB'ed PASS.FTNs3 PASS.DOC As much info as is on-hand about PASS.FTNR> *.SCR Two directories that contains sample systems and misc. other s00."/"R"!!! !! Free software ByG Washington School Information Processing Cooperative (WSIPC) and) Abraxas Consulting (Warren Falls)J This software is furnished for free and may be used and copied asJ desired. This software or any other copies thereof may be providedJ or otherwise made available to any other person. No title to andE ownership of the software is hereby transferred or allowed. J The information in this software is subject to change without noticeK and should not be construed as a commitment by either WSIPC or Abraxas  Consulting.L Neither WSIPC nor Abraxas Consulting assumes any responsibility for theE use or reliability of this software on any equipment whatsoever.  So much for paranoia...= Washington School Information Processing Cooperative (WSIPC) Warren Fallsd 20000 Cypress Way Lynnwood, WA 98036e (206) 775-8471  Program: SCRIPT Date: Autumn 1986s Description: @ Script is a menu-driven, command-language-level user interface.H Simply put, Script reads it own DCL-like control language files andL creates menus, from these and executes whatever commands are associatedM with each chosen menu selection. Its target terminal device is any ANSI.L supporting CRT, but it will deal with hardcopy devices with some grace.K This is Script's first submission. There are no doubt many bugs, rI but on the whole, it seems to be quite functional. This version is -G the original version, which, due to memory limitations, and mostlyeK neglect is a sub-set of the VMS code. See AAAREADME.DOC for a furthere description.v commands are associatedM with each chosen menu selection. Its target terminal device is any ANSI.L supporting CRT, but it will deal with hardcopy devices with some grace.K This is Script's first submission. There are no doubt many bugs, rI but on the whole, it seems to bPASS.DOCIThe Pass task is an example of a program needed to implement the PASSWORDKand PRIVILEGE functions in Script. It is called by Script either as PWD orIPRV. The username is optionally passed in the command line, if it is notIpassed, then it is requested. A '*' passed in the command line will alsoIcause the username to be requested. Then the password is then requested,Kchecked against the entry, (requires exact case match), and the success of,Hor lack of is then reported via exit-status. If PRV is called then the Hsequence is the same until the end, where the privilege mask is returnedin the status word. Summary of Returns:  PWD exstat = 1 Password ok. 2 exstat = 4 Password failed, name was not found,% or the file could not be opened.p5 PRV exstat = mask+1 Password ok, masks are a 16 bitt' but the lower bit is determined byn) Script based on the privilege of thee' user, allowing the lower bit to be  used as a validity flag2 exstat = 4 Password failed, name was not found,% or the file could not be opened. EPASS does not maintain the data file, which is LB0:[1,1]PASSWORD.DAT.rHThe file is made of 80 character records where the username is the firstH35 characters (space filled), the password the second 35 characters, andFthe privilege mask held in a decimal string, in the last 5 characters.LCharacters 71 through 75 are not used. No encoding of the password is done,#(told you there wasn't much to it).lJThe maintenance of the data file was done by a now misplaced command file.HSome kind of encryption can be added with little trouble to the program.:[1,1]PASSWORD.DAT.rHThe file is made of 80 character records where the username is the firstH35 characters (space filled), the password the second 35 characters, andFthe privilege mask held in a decimal string, in the last 5 characters.LCharacters 71 through 75 are not used. No encoding of the password is done,#(told you there wasn't much to it).lJThe maintenance of the000"1""-" cTADATADATA IMPLICIT INTEGER*2 (A-Z) INTEGER*2 PARM(6),IOSTAT(2) CHARACTER*80 BUFFER,MCR CHARACTER*35 NAME CHARACTER*21 FILNAM BYTE BNAME(35) BYTE BIT(80) BYTE BMCR(80) EQUIVALENCE (BIT,BUFFER) EQUIVALENCE (MCR,BMCR) EQUIVALENCE (NAME,BNAME)& DATA FILNAM /'LB0:[1,1]PASSWORD.DAT'/ DATA PARM /0,35,0,0,0,0/- DATA NAME /' '/ CALL GETADR (PARM(1),NAME) CALL GETMCR (MCR,DSW) PROMPT=0 PRIV=0 MLENG=1 IF (DSW .LT. 0) GOTO 20 DO 10,I=1,DSW MLENG=MLENG+1 DSW=DSW-1A IF (BMCR(I) .EQ. 'V') PRIV=1 IF (BMCR(I) .EQ. ' ') GOTO 11A 10 CONTINUEE GOTO 20 11 CONTINUE" IF (BMCR(MLENG) .EQ. '*') GOTO 20 LENG=DSW0 DO 15,I=1,DSW BNAME(I)=BMCR(MLENG) MLENG=MLENG+1 15 CONTINUE() IF (BNAME(LENG) .LT. 32) BNAME(LENG)=' 'O TYPE 1008,NAMEA#1008 FORMAT(X,'Password Name: ',A)  GOTO 50 20 CONTINUE' PROMPT=1E TYPE 1000!1000 FORMAT (X,'Enter Name: ',$)P ACCEPT 1001,LENGTH,NAME1001 FORMAT (Q,A))>50 OPEN (UNIT=1,ERR=88,NAME=FILNAM,TYPE='OLD',READONLY,SHARED) DO 1,I=1,320001" READ (1,1002,END=99)LENGTH,BUFFER1002 FORMAT (Q,A)0 IF (LENGTH .EQ. 0) GOTO 1 HIT=INDEX(BUFFER,NAME)N IF (HIT .NE. 1) GOTO 1 TYPE 1003%1003 FORMAT (X,'Enter Password: ',$)& CALL WTQIO ('1020'O,5,1,,IOSTAT,PARM) DO 60,J=(IOSTAT(2)+1),35F BNAME(J)=' ' 60 CONTINUE  HIT=INDEX(BUFFER(36:70),NAME) IF (HIT .NE. 1) GOTO 199R TYPE 1007'1007 FORMAT(X,/,X,'Password Accecpted')0 CALL DELAYA IF (PRIV .EQ. 0) CALL EXITN% DECODE (5,1004,BUFFER(76:80)) EXSTAT1004 FORMAT(I) EXSTAT=IAND(EXSTAT,'177776'O) EXSTAT=EXSTAT+1 CALL DELAY CALL EXST (EXSTAT)O 1 CONTINUE 99 CONTINUEN TYPE 10051005 FORMAT(X,'Name Not Found')3 GOTO 9999 199 CONTINUE TYPE 1006'1006 FORMAT(X,/,X,'Password Incorrect')0 GOTO 9999 88 TYPE 500)-500 FORMAT(X,'Password Data File Open Error')N9999 CALL DELAYE CALL EXST (4) 999 CONTINUE END SUBROUTINE DELAYc CALL MARK (2,2,2) CALL STOPFR (2) RETURNL END : Da Password Name: ,  Enter Name:  , , Enter Password:   Password Accecpted 2  Name Not Found | Password Incorrect Password Data File Open Error  P4 P1xs R1xs V1xs# X1xs \1xsj ~1xss0##P 1xs   1xs 1xs 1xs"$ *1xs.1xsLB0:[1,1]PASSWORD.DAT#' m G\ : ?   7 7  - ~`xUj Da  , $Da (,Q,1xs01xs61xs:1xs@1xsF1xsJ1xsRjV1xsZ1xsfXV -* pz1xs 1xs"1xsj 1xs"&1xs*1xs2j:j>1xs B1xs"J1xsZj^1xs b1xs" d1xsr  7 7 #  ~1xs1xsj 1xs $1xs(1xs.j 6Da :` >1xsF:J!yRjX1xs `Da d`h!y pDa *d(  #  &  P z>; 1xs:x< 1xs:!y "Da &E`[,j21xs8j @Da .J>;x# N1xsR:x< V1xss^:b!yj  7     # # 7|1xs Da 61xs Da 2$`(!y ,Da 0:41xsDj J1xsV1xs\j `Da d6h1xs`    eK&  E z Da J`!y Da ( "1xs (Da , #}2j :Da d >1xssH L1xsP:x<T!yZ1xs^1xsjJ  -}w  001"2"R"!!! ! | Da  ( Da #}1xs1xs(j.j 6Da f:`>!yFj NDa zR`V!y `Da d`h!y$  0j Da ( j Da #}" #8z`xUj,,Q`:!y>;:x<E`[>;x#6:( " #}#} #8",1z8`yG  Da   G G8eHbv =4  h  Gpf^ K "Da $1xsSG(  Da    G(( ?   *xUj Da zQD Da $ye"xUjzQDyeG $( (Da 1z8`yG  Da   G G8eHbv =|g,]]xx V <2SYSYSYSYTICLTI~AA<~Z& |AAAAAAA|]xw g| 89f"e\e!e C 5f 2* eA &|&  f&&  e#e|& f&&G& & & & && '&&&f& v !# #w)5 C&wCË @ÊAW H  P)& &( &  zRRRI! w\  & & & & ` J fRCҐCҐRC  &w&C & ` `Ba#   L  f aa  2則 8: ? \":  7 7  e-   V  -= *4t fp e \  7Te  e 7>j0 6f # 2 / FF 6 /Z 2\ 1f # 2 / 2^& 2\ 1 P X2 b/ f, 77 ^b 6 ȋ8 ~נ%נ*נ-נ.נ0נ9נAנZȠ yנ0נ7נ*נ,A jȠh f  oנ"A   #A aנ$נ%נ*נ0נ9נAנZנ_נ.  נ.נ; dנ0נ9 ]נ- X נ* QA  נ, Dנ=  >5 B>U (w^נ/* . ,נ$נ-נ.נ0נ9נAנZ נ_ נ:  Dנ"  0f&f E^`  UQ  UQ ËUI U `e  !ddC    D%*.C U 0 0 W ,Uw6W /@ : ^BDaW-Ί WNWOD!BΊz CECCD! D! ΋5  e ΐ TpRpR΋pBC5N KR΋KBAE:D0CĊ f eB  Dҁ CSĊ @ WB E Br Ε f)& 6 l(*  E 'W " =N  W :+W = 1 #W ,W / %W %W *Հ W <W [W >W ] v(* 6 e  &&f  E3  ߆ %  І %ĉĆ BB ĉ , ,‰; ,JJV 3Vȥ ȕ$ȥ+ `l s@ Ps`; Fs,3/"R"'" 3 0As  :   >3  H JhŀdՀ`[WB ;  M  B@ 3VA3 N  & Lw wF3   H Z3 3 V3 N J  "e$"F3 Z NE% % % 5%% W 3W H Nwp `5@ @  E5e73 *,JJ ,J Jҕ JxT96%  Ttr 002""R"!!! !  $%T %T R%TR3,% e3LsNP(3LsN xsP%% %2 hsR%2%4 TsPRNZL&P N N5@ Х,  Np %RN ‰Nc % U%%  2 4 %2R%6RR s%B%.D THwA]h`A6H lT  BE&~WtEB~Ll  *sWwR". x%LHTD` B~ĵRHT%S%.S| *HA]L h`A  $J J N   - ΋  BE~WtEB~w . q%LHT w w Е `CBwД~w TH @` C~p&vJrrrrrrrr$6666(08:Brrrrrr<(0+  "1""$BBDBBDB   Ee f  z % % e@ `5 & & D  6N D D eD e`D %   &fH”E  D   D 慡e BCE DIEN   ` ɕ = -5+-` #"   A s&DE s& sA ae0b  ~ҕ*~%  0   -+% jvp&"'TE 6002"""-" cTADATADATA6____________________;________W_____}__y___;;;;1;;;;;;;13;;9;9;;::;<;P;Z;;;;;6:^:;<,Syntax error in format?Output conversion error@Input conversion errorAFormat too big for 'FMTBUF'BOutput statement overflows recordCRecord too small for I/O listDVariable format expression value errorFInteger overflowGInteger zero divideHFloating overflowIFloating zero divideJFloating underflowKFPP floating to integer conversion overflowPWrong number of argumentsQInvalid argumentRUndefined exponentiationSLogarithm of zero or negative valueTSquare root of negative valueVInvalid error number[Computed GOTO out of range\Assigned label not in list]Adjustable array dimension error^Array reference outside array_Incompatible FORTRAN object module in task`Missing format conversion routineaFTN FORTRAN error callbUser requested tracebackdDirective: Missing argument(s)eDirective: Invalid event flag numberoVirtual array initialization failurepVirtual array mapping error(@@A&&ff&&ff7 7 " @a&&f    fN  5 mB m    ~ B C Ɖ6 v%L@a&&f     D C  & m  % %ljmB m e E D C B ~ Em  6 v%L   4   3eJw \4 \  ҕ C~ss` \F4 \ހbw (   H  :84 ( &F4  H * 3 \s 3D  D sdbD 3sss B`C r*\wD 333b33 \hD 333 \D 3D 33D 3dO ( 3 D A 5 5,'D 5 H4HR'H4 5 5 HRȋ 5 0"ED 5UD ȋ  ' *3 H *3 b3 d33 ͋ %*swNe   *^'i F*` *3&    w *ltʋ3h3 v3 x3 56 26sv7sx.ltՀ5 fd   Aw| *'i*e.B elw*3HsT * 002""R"!!! !8 0 "             *T3H *eH3 *3 T ы *3HT3 * $    D9w| B`*3 l (fA BU%D~  ~(  l뀖% le 5E e . d{lX3 3 d3   ȋ35(Ul lA WBA U l@ 4<(4\(5 5 F(t/ lW-W-UW-5U  l lW-U5U 5  5e3 4 U lU@4( U v %48  l N l4( : l4,  / A t<(t\( l 3 XsXsd3 d 4t l tU 4$ l% lA L\(y(555U5U5U lsZ3 ZEW-U lAWWA@ @ AV ߉ : < &= w @"ssl s*fjePzi8 rl,3Wp6 B~tB P~ 3 ( `     DEBEf&   ` ~   C~%  &ef& v cc6 6` *,%c Wpl@`.œ  `*  3ȋ*s3 b3 3 dwlw &e 3 Z5  #U#U dw{w 5  VfeB & C555 5 551 5p  Z BU %*N5JF##pEUUV#% <):5\)55p,  1 n$p, 1 p s, & L* ¥ ¥¥E0#U " tp te%ʵw . s eWp(eAarV'T<Zw && Z%1*w r*B X    ` T) )) zh F 6) B hы  P ^  {) : V3 ^ f d) 1v. /)  Օ,x  5eT Օ.eZ \Օ; 4)  =)% ` e Օ"F) hJ) \ ( $r&? 6 H") .Օ Օ-   e:f s!pU Օ  D~  A M•0 M M* 3e  ɋ5 U 5   5  B 6 ~3  e 0*ep %ʥ¥bw¥&f Bʋ ~7B EU~& Bp ȕ e e`e f~ *f6E@*p^ pD'%ɉ ˉ!ȉʉ& &fHtEp:E s*# *%߉5& 5Ε ,   e p ep * " P     u쇀3l 3Օ Օ  nff)n sf&X2 % b %e ee e  w f *8I  *=)98 R eB &&  U x **e *Nlv ΋*.)  & #!)&eP(e && p* w w \*eB 8 `  ( w ((B C 002"""-" cTADATADATADBe ?D(1 >w  6 ) 8C * ) *w* D ep p  C  =  0* = Eե^ A e@ ߇ Ep p  8 V *`)w  C#   D w <e w w .*eB 8 2 * w ( D 8#"#)%ĥ ĥ w  0 *0 @Q$    0 40 60))eB p z :# 3&*w #( P) v @#**fff  @ &*wD. H35(8e$8w22&(e %p8q #)  *R*)@#0l C# 028 B00ĥۇAĥĊ  000 d0 @0 &*0 @ u #eB   *  eBe>  # #D #&0 #   t0@e 6@#040 6w !p2eB  8 $&w * P   w  o832de& & & B  2PΕ   N Υ$Ε  22Υ   xv Ε f ~ e N* *e*w0,  P  ,)*)   l 0l     ee@ |2 n+ E ep )w ,  w &  LwB #  f  `**w^)0406 l0 &ff 82e&( 0 0 0 80 B0 0 0 0)#0.0+1(e  \%&p*w f( f)f |) .  .8Ae f"( UCɗ&+(e$&% *w  w & W+W- Ba. W#  B0  c  c S W %ec e`s  # 3  & ˥ Z ^C  l f &* R*w BC "& <SY&*p0p21E%0*w(*e "f D CB.E *) l0, *) $ )*)0,40,6 e6p 4 8     8  ***  DP5R RRR e`w* T)fff f f1    1  MwF141612epl2l0p    f u   . 00l  0 *w ,eE D` bl lrw   B eE"s    s-  Csl0f(& e %&&eH FU   Ef tp  ww *#   U@e   ew1  %,,  w J*D !UqqC ӥ:  Ce x   *w *  )Ĕ%.&%;D  5)5@DD ͥ*Ce a%wUX5@ 5sU U*U  5@XU@002"3"4"!!! !5 U*U  ʥ*%C!.D` *weC5U5  5 5@e* ) !f V 0 e) . e6p 4 ,08*w*,*1 U4 6w4 HBfep`pw8e2 (*He(  1 :&e  1-1- 111 rrrrr fe w&f &  Be  wX* w p&Ba +- ʥ# . U 0   b   `     &fe    : $ L ( La Ta  @ `W!ZW!AW!9W!0@0,0, f 톇,, w 0     .% " eB U5UU F plp & NeՀ)*f&5ҕ[ "5ҕ, 5ҕ]E 5 5  e0Ґ 1 z  ~ 1 1 1 1 1 1 DEee $ $    f e  C C C e`w  ҥ[, &]  5 s  D wxSCRIPT/CP/-FP=SCRIPT [1,1]F4PEIS[1,1]F4PFCS/LB/LIBR=FCSRES:RO TASK=...SCRASG=TI:6//SCRIPT/CP/-FP=SCRIPT2LB:[1,1]F4PFCS/LB:$ERRPT:$ERRLO:$ERRMO:$FPERR:$R50LB:[1,1]F4PEIS.OBJ$LB:[1,1]F4PFCS/LB:$NAM:$SAVRG:$CHASNLB:[1,1]F4PFCS/LB:$SHORT LB:[1,1]F4PFCS/LB:$FCHNL:$INITIO=LB:[1,1]F4PFCS/LB:$ISF:$ISU:$ISL:$OSF:$OSU:$OSL:$ENDF:$ENCDEC%LB:[1,1]F4PFCS/LB:$IRU:$IRF:$ORF:$ORULB:[1,1]F4PFCS/LB:$OPEN:$OPNSTM LB:[1,1]F4PFCS/LB:$FNBST:$ASSIGN6LB:[1,1]F4PFCS/LB:$CLOSE:$CLSSTM:$CLSCAL:$DEFF:$FDBSETLB:[1,1]F4PFCS/LB:$LSTI:$LSTOLB:[1,1]F4PFCS/LB:$FIO LB:[1,1]F4PFCS/LB:$FMTCV:$FCSRMS-LB:[1,1]F4PFCS/LB:$CONVI:$CONVL:$CONVZ:LICSB$R0LB:[1,1]F4PFCS/LB:$GETS:$PUTS:$GETR:$PUTR:$CKRCN5;LB:[1,1]F4PFCS/LB:$EXP:$SQRT:$ALOG:$ATAN:$SIN:$SWPXY:>;LB:[1,1]F4PFCS/LB:$ASIN:$ANINT:$FLOAT:$FLOTJ:$TAN:$PWRI:$PWRR5;LB:[1,1]F4PFCS/LB:$SINH:$TANH:$COSH:$SIGN:$SNGL:$DIMS?LB:[1,1]F4PFCS/LB:$IABS:$IAND:$IEOR:$IOR:$INOT:$MAX0:$MIN0:$MOD,7LB:[1,1]F4PFCS/LB:$ISHFT:$ISIGN:$IFIX:$NINT:$IDIM:$PWIISLB:[1,1]F4PFCS/LB:$INDEX:$CHCMP]@;LB:[1,1]F4PFCS/LB:$DABS:$DACOS:$DASIN:$DATAN:$DSIN:$DMOD:$DMIX1;;LB:[1,1]F4PFCS/LB:$DDIM:$DSINH:$DCOSH:$DTANH:$DPROD:$DSIGNR0;LB:[1,1]F4PFCS/LB:$DINT:$DBLE:$DTAN:$DLOG:$PWDD;;LB:[1,1]F4PFCS/LB:$JABS:$JAND:$JEOR:$JOR:$JNOT:$JMIX:$PWJJ:4;LB:[1,1]F4PFCS/LB:$JSHFT:$JSIGN:$I4FIX:$JDIM:$RJMIX3;LB:[1,1]F4PFCS/LB:$AIMAG:$REAL:$CMPLX:$CONJG:$CABSL>;LB:[1,1]F4PFCS/LB:$FCALL:$CSIN:$CSQRT:$CEXP:$CLOG:$PWCJ:$PWCC0;LB:[1,1]F4PFCS/LB:$ADC:$MLC:$DVC:$TSC:$CMC:$NGC+LB:[1,1]F4PFCS/LB:$OTI:$VINIT:$STPPAU:$EXITH7LB:[1,1]F4PFCS/LB:$MADB1:$MADB2:$MADBN:$AGO:$CGO:$ARYCK:;LB:[1,1]F4PFCS/LB:$VIRT:$MADBV$/LB:[1,1]F4PFCS/LB:$R50WD:$R50ASC:$IRAD50:$RAD5011LB:[1,1]F4PFCS/LB:$ERRSET:$ERRSNS:$ERRTST:$USEREXF,LB:[1,1]F4PFCS/LB:$DATE:$TIME:$SECNDS:$IDATE&;LB:[1,1]F4PFCS/LB:$RAN:$RANDU:$RANDOMLB:[1,1]F4PFCS/LB/:LIBR=FCSRES:RO TASK=...SCRCASG=TI:6//SL>;LB:[1,1]F4PFCS/LB:$FCALL:$CSIN:$CSQRT:$CEXP:$CLOG:$PWCJ:$PWCC0;LB:[1,1]F4PFCS/LB:$ADC:$MLC:$DVC:$TSC:$CMC:$NGC+LB:[1,1]F4PFCS/LB:$OTI:$VINIT:$STPPAU:$EXITH7LB:[1,1]F4PFCS/LB:$MADB1:$MADB2:$MADBN:$AGO:$CGO:$ARYCK:;LB:[1,1]F4PFCS/LB:$VIRT:$005"6"7"" cTADATADATAF77 SCRIPT=SCRIPT/WF:3/NOTR TKB @SCR.TKBSCRIPT Installation and NotesScript installs as a normal: INSTALL ($)SCRIPT8Script files used system-wide should be kept in LB:[1,3]OExamples of scripts and an operational systems are availible in sub-directoriesM[.SCR1] and [.SCR2]. To run this demo, install script as above, and executethe following line: >SCR $MAIN or >SCR $MASTERNotes:MThe RSX version was the orignial implementation of script. The code has beenHuntouched, and unimproved for close to 2 years. A comparison of the twoLreference manuals will show the differences. Scripts written under RSX willIrun under VMS with only minor differences. The biggest difference is theiJguard record at the beginning of the script file, which is not in RSX, butOis in VMS. This guard record can be implemented in RSX by removing the comment Nsymbols at about line 325, commented "GUARD RECORD GUARD RECORD GUARD RECORD."?Script spawns to MCR unless told different by the CLI function.p&See PASS.DOC for details on that task.he twoLreference manuals will show the differences. Scripts written under RSX willIrun under VMS with only minor differences. The biggest difference is theiJguard record at the beginning of the script file, which is not in RSX, butOis in VMS. This guard record can be implemented in RSX by removing the comment Nsymbols at about line 325, commented "GUARD RECORD GUARD RECORD GUARD RECORD."?Script spawns to MCR unless told different by the CLI function.p&See PASS.DOCC)C COPYRIGHT Warren K. Falls. 1984, 1985.C IMPLICIT INTEGER*2 (A-Z)9 INTEGER*2 SELPNT(22),SELECT(400),SELCT1(80),CHOPNT(2,22): INTEGER*2 LINPNT(22),TTSTAT(2),SUB(4),LUNDAT(6),BMASK(16)7 INTEGER*2 PARM1(6),PARM2(6),PARM3(6),PARM4(6),PARM5(6)9 INTEGER*2 PARM6(6),PARM7(6),PARM8(6),PARM9(6),SPSTAT(8)& INTEGER*2 IMCR(40),PARM10(6),PARMS(6); INTEGER*2 RTURN,INIT1,SILNT,LENGX,LEVEL,CLIMOD,NOMCR,SCOPE, INTEGER*2 DEBUG,CALLFL,READF1,READF2,SCOPEX INTEGER*4 CLI INTEGER*4 CLICLI INTEGER*4 CLIMCRO INTEGER*4 SAVCLIa/ BYTE BIT1(132),PASS1(50),PASS2(50),ONEFIL(30)0 BYTE BIT(132),BMCR(80),BILNAM(30),SCREEN(1000)3 BYTE STRING(2000),SELCMP(22),BSBUF(3),SUBBUF(100)N1 BYTE HELP1(50),HELP2(38),BBMCR(79),LINSUB(6,30)38 BYTE SELBUF(20),CURBUF(17),BTBUF(2),BTSTAT(4),TTNUM(2)$ BYTE NUMS(2,22),HELP3(9),SCOPEP(2) BYTE NAMSAV(10,30)( BYTE CNUMS(2,80),BLIBUF(18),LSTLST(30)1 BYTE FILPRE(8),LSTFIL(30),GRPHBF(80),ENDBUF(80)E7 CHARACTER BUFFER*132,MCR*80,FILNAM*30,BCKSLH*1,YESNO*4I6 CHARACTER TTBUF*2,SLVBUF*14,NOSLVB*16,BUFF1*132,BYE*3 CHARACTER CLIBUF*18 EQUIVALENCE (CLIBUF,BLIBUF) EQUIVALENCE (LUNDAT,SPSTAT) EQUIVALENCE (BMCR(2),BBMCR(1))B EQUIVALENCE (TTSTAT,BTSTAT) EQUIVALENCE (BIT1,BUFF1)L EQUIVALENCE (SCOPEX,SCOPEP) EQUIVALENCE (BIT,BUFFER)T EQUIVALENCE (TTBUF,BTBUF) EQUIVALENCE (IMCR,BMCR) EQUIVALENCE (MCR,BMCR)  EQUIVALENCE (FILNAM,BILNAM)/ DATA FILPRE /'L','B',':','[','1',',','3',']'/U DATA CLI /6RCLI.../E DATA CLICLI /6RCLI.../ DATA CLIMCR /6RMCR.../9 DATA BMASK /1,2,4,8,16,32,64,128,256,512,1024,2048,4096,I 9 8192,16384,32768/ DATA PARM1 /0,1,0,0,0,0/E DATA PARM2 /0,2,0,0,0,0/N DATA PARM3 /0,17,0,0,0,0/ DATA PARM4 /0,20,0,0,0,0/ DATA PARM5 /0,3,0,0,0,0/E DATA PARM7 /0,1,0,0,0,0/ DATA PARM8 /0,2,0,0,0,0/ DATA PARM9 /0,80,0,0,0,0/ DATA PARM10 /0,12,0,0,0,0/U DATA PARMS /0,2,0,0,0,0/V DATA BSBUF /8,32,8/2 DATA SELBUF /32,32,32,27,'[',48,49,59,50,52,'r', 9 27,'[',0,0,';',0,0,'H',13/I DATA BCKSLH /'\'/  DATA BYE007""4"!!! ! /'BYE'/ DATA SLVBUF /'SET /SLAVE=TI:'/" DATA NOSLVB /'SET /NOSLAVE=TI:'/$ DATA CLIBUF /'SET /CLI=TI: '/= DATA PASS1 /80,87,68,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, ; 9 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0/ ; DATA PASS2 /80,82,86,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,= 9 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0/0> DATA HELP1 /72,69,76,80,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,; 9 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0/ = DATA HELP2 /80,73,80,32,84,73,58,61,0,0,0,0,0,0,0,0,0,0,0,0,D' 9 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0/C( DATA HELP3 /72,69,76,80,32,77,69,78,85/< DATA NUMS /32,49,32,50,32,51,32,52,32,53,32,54,32,55,32,56,< 9 32,57,49,48,49,49,49,50,49,51,49,52,49,53,49,54,49,55,49, 9 56,49,57,50,48,50,49,50,50/= DATA CNUMS /48,49,48,50,48,51,48,52,48,53,48,54,48,55,48,56,0< 9 48,57,49,48,49,49,49,50,49,51,49,52,49,53,49,54,49,55,49,< 9 56,49,57,50,48,50,49,50,50,50,51,50,52,50,53,50,54,50,55,< 9 50,56,50,57,51,48,51,49,51,50,51,51,51,52,51,53,51,54,51,< 9 55,51,56,51,57,52,48,52,49,52,50,52,51,52,52,52,53,52,54,< 9 52,55,52,56,52,57,53,48,53,49,53,50,53,51,53,52,53,53,53,< 9 54,53,55,53,56,53,57,54,48,54,49,54,50,54,51,54,52,54,53,< 9 54,54,54,55,54,56,54,57,55,48,55,49,55,50,55,51,55,52,55,$ 9 53,55,54,55,55,55,56,55,57,56,48/5 DATA CURBUF /19,32,32,32,27,'[',0,0,';','3','H','-',8 9 '>',8,8,8,17/ DATA RTURN /0/4 DATA INIT1 /1/, DATA SILNT /1/, DATA LENGX /0/, DATA LEVEL /1/, DATA CLIMOD /0/ DATA NOMCR /0/5 DATA DEBUG /0/5 DATA SCOPE /1/1 DATA CALLFL /0/ DATA SCOPEP /'12'O,1/ DATA OVERID /1/ DATA READF1 /'1000'O/ DATA READF2 /'1030'O/C ENTRY POINT INITIALIZATION4/ CALL ERRSET (24,.TRUE.,.FALSE.,.TRUE.,.FALSE.)5/ CALL ERRSET (29,.TRUE.,.FALSE.,.TRUE.,.FALSE.)5/ CALL ERRSET (64,.TRUE.,.FALSE.,.TRUE.,.FALSE.)9 CALL GETADR (PARM1(1),TTBUF)' CALL GETADR (PARM2(1),TTBUF)T CALL GETADR (PARM3(1),CURBUF) CALL GETADR (PARM4(1),SELBUF) CALL GETADR (PARM5(1),BSBUF)/ CALL GETADR (PARM6(1),SCREEN) CALL GETADR (PARM7(1),TTBUF)  CALL GETADR (PARM8(1),TTBUF), CALL GETADR (PARM9(1),MCR)E CALL GETADR (PARM10(1),SCREEN)3 CALL GETADR (PARMS(1),SCOPEP) SPRM10=PARM10(1)S CALL GETCII (SAVCLI,4)U'C DETERMINE IF SCOPE OR HARD_COPY HERE,! CALL WTQIO ('2560'O,6,2,,,PARMS)R SCOPE=SCOPEP(2)C PRIVILEGE TERMINAL CHECKM CALL GETLUN (6,LUNDAT)( PRVMSK=0B/ IF (IAND(LUNDAT(4),'000010'O) .NE. 0) PRVMSK=1R6C LOAD TERMINAL NUMBER INTO "\\0" SUBSTITUTION STRING FLAGEX=IAND(LUNDAT(2),'7'O) TTNUM(2)=48+FLAGEXF! FLAGEX=(IAND(LUNDAT(2),'70'O))/8 TTNUM(1)=48+FLAGEX);C GET COMMAND LINE AND PARSE COMMAND INVOKE TO FIRST SPACE) CALL GETMCR (MCR,DSW) IF (DSW .LT. 1) GOTO 87 MLENG=1 DSW=DSW-1 DO 10, I=1,DSWH MLENG=MLENG+1 IF (BMCR(I) .EQ. ' ') GOTO 11 IF (BMCR(I) .EQ. 'H') THENA SCOPE=0 SCOPEP(2)=0 ENDIF IF (BMCR(I) .EQ. 'D') DEBUG=1 IF (BMCR(I) .EQ. 'N') NOMCR=1 DSW=DSW-1 10 CONTINUES*C PARSE COMMAND LINE SUBSTITUTION STRINGS 11 CONTINUE=" IF (BMCR(MLENG) .NE. '"') GOTO 69 LENGX=LENGX+1 IF (LENGX .EQ. 9) GOTO 87 FILIND=0  MLENG=MLENG+1 DSW=DSW-1 DO 60, I=2,DSWE! IF (BMCR(MLENG) .NE. '"') THEN LINSUB(LENGX,I)=BMCR(MLENG) MLENG=MLENG+1 DSW=DSW-1 GOTO 60 ELSE  MLENG=MLENG+2 DSW=DSW-2 GOTO 61 ENDIF 60 CONTINUEF GOTO 87 61 CONTINUE) GOTO 11'C COMMON SCRIPT FILENAME PARSE ROUTINEW.C COMMON ENTRY FOR ALL FILE PARSE FROM P-CODE 69 CONTINUE FILIND=1= FLAGEX=0(" IF (BMCR(MLENG) .NE. '$') GOTO 14 DO 12, I=1,8X BILNAM(FILIND)=FILPRE(I)  FILIND=FILIND+1 12 CONTINUE  MLENG=MLENG+1 DSW=DSW-1 DO 13, I=1,DSWE BILNAM(FILIND)=BMCR(MLENG)L( IF (BILNAM(FILIND) .EQ. '.') FLAGEX=1 MLENG=MLENG+1 FILIND=FILIND+1 13 CONTINUED GOTO 20 14 CONTINUE DO 15, I=1,DSWU BILNAM(FILIND)=BMCR(MLENG)G( IF (BILNAM(FILIND) .EQ. '.') FLAGEX=1 MLENG=MLENG+1 FILIND=FILIND+1 15 CONTINUE- 007""7"" cTADATADATA20 CONTINUEI IF (FLAGEX .EQ. 1) GOTO 25( BILNAM(FILIND)='.'  BILNAM(FILIND+1)='S'  BILNAM(FILIND+2)='C'D BILNAM(FILIND+3)='R'= 25 CONTINUEC:C FIRST TIME THRU SAVE FILENAME FOR ZERO AND PF3 COMMANDS IF (INIT1 .EQ. 0) GOTO 50 INIT1=0 DO 30,I=1,30' ONEFIL(I)=BILNAM(I) 30 CONTINUELC OPEN THE FILE 50 CONTINUE 9 IF ((SILNT .EQ. 0) .OR. (DEBUG .EQ. 1)) TYPE 1011,FILNAMR< OPEN (UNIT=1,ERR=80,NAME=FILNAM,TYPE='OLD',READONLY,SHARED)"C INITIALIZATION EVERY NEW SCRIPT IF (OVERID .EQ. 1) THEN CLI=CLICLI2 LOGOFF=0( LOCK=0 CURSOR=1I ALLOW=0 CLEAR=1 STPER=1 SILNT=1 WHOLE=1 SPWN=1C CLEARD=1T STPERD=1 SILNTD=1Z WHOLED=1O SPWND=1 ENDTSK=0  READF1='1000'O1 READF2='1030'O PARM1(3)=0L PARM9(3)=0I ELSE  CLEAR=CLEARD STPER=STPERD  SILNT=SILNTDO WHOLE=WHOLED) SPWN=SPWNDA ENDIF INITP=1 GRAPHC=0I SETFLG=0O PARM10(1)=SPRM10) TOPFLG=0I OFFSET=1V STATE=1 FIRST=0 LINE=1  SEL=0 SELOFF=1I STROFF=1  IF (NOMCR .EQ. 1) THEN SILNT=0 SILNTD=0  ENDIF SELBUF(6)=48S SELBUF(7)=49E IF (SCOPEP(2) .EQ. 1) THEN  SCREEN(OFFSET)='33'O OFFSET=OFFSET+1 SCREEN(OFFSET)='[' OFFSET=OFFSET+1 SCREEN(OFFSET)='2' OFFSET=OFFSET+1 SCREEN(OFFSET)='4'  OFFSET=OFFSET+1 SCREEN(OFFSET)=';'  OFFSET=OFFSET+1 SCREEN(OFFSET)='8'W OFFSET=OFFSET+1 SCREEN(OFFSET)='0'= OFFSET=OFFSET+1 SCREEN(OFFSET)='H'P OFFSET=OFFSET+1 SCREEN(OFFSET)='33'OL OFFSET=OFFSET+1 SCREEN(OFFSET)='[' OFFSET=OFFSET+1 SCREEN(OFFSET)='1'  OFFSET=OFFSET+1 SCREEN(OFFSET)='J'S OFFSET=OFFSET+1 SCREEN(OFFSET)='33'OE OFFSET=OFFSET+1 SCREEN(OFFSET)='['F OFFSET=OFFSET+1 SCREEN(OFFSET)='0'F OFFSET=OFFSET+1 SCREEN(OFFSET)='1'F OFFSET=OFFSET+1 SCREEN(OFFSET)=';'F OFFSET=OFFSET+1 SCREEN(OFFSET)='2'F OFFSET=OFFSET+1 SCREEN(OFFSET)='4'F OFFSET=OFFSET+1 SCREEN(OFFSET)='r'F OFFSET=OFFSET+1 ELSEP SCREEN(OFFSET)='15'OE OFFSET=OFFSET+1 SCREEN(OFFSET)='12'OE OFFSET=OFFSET+1 ENDIF%C READ RECORD -- SCRIPT PARSING LOOPT8C GUARD RECORD GUARD RECORD GUARD RECORD GUARD RECORD C I = 0E!C READ (1,2002,END=86)LENGX,BUFF1O5C IF ((LENGX .NE. 1) .OR. (BIT1(1) .NE. ']')) GOTO 868C GUARD RECORD GUARD RECORD GUARD RECORD GUARD RECORD  DO 1, I=1,32000 READ (1,2002,END=90)LENGX,BUFF1C SUBSTITUTION ROUTINEF LENGTH=0 MLENG=1 62 CONTINUEO IF (LENGX .EQ. 0) GOTO 684 IF ((BIT1(MLENG) .NE. '\') .OR. (BIT1(MLENG+1) .NE.$ 9 '\') .OR. (LENGX .LT. 3)) GOTO 67 FLAGEX=(BIT1(MLENG+2))-482 IF ((FLAGEX .LT. 0) .OR. (FLAGEX .GT. 6)) GOTO 67 IF (FLAGEX .EQ. 0) THEN LENGTH=LENGTH+1 BIT(LENGTH)=TTNUM(1)( LENGTH=LENGTH+1 BIT(LENGTH)=TTNUM(2)8 ELSE  DO 63 ,J=1,30) IF (LINSUB(FLAGEX,J) .EQ. 0) GOTO 63, LENGTH=LENGTH+1! BIT(LENGTH)=LINSUB(FLAGEX,J)T 63 CONTINUEF ENDIF MLENG=MLENG+3 LENGX=LENGX-3 IF (LENGX .EQ. 0) GOTO 68 GOTO 62 67 CONTINUE  LENGTH=LENGTH+1 BIT(LENGTH)=BIT1(MLENG) MLENG=MLENG+1 LENGX=LENGX-1 GOTO 62 68 CONTINUE(4 IF ((LENGTH .GE. 132) .OR. (LENGTH .LE. 0)) GOTO 66 DO 65, J=LENGTH+1,132 BIT(J)=0 65 CONTINUE)C EOR DELIMITTER CHECKH 66 CONTINUET LENGX=LENGTH IF (LENGTH .EQ. 0) THEN SCREEN(OFFSET)='12'O  OFFSET=OFFSET+1 SCREEN(OFFSET)='15'OB OFFSET=OFFSET+1 LINE=LINE+1 GOTO 1 ENDIF BOFF=1E"C RETURN POINT FOR PARTIAL RECORD 2 CONTINUE( ENDMRK=INDEX(BUFFER(BOFF:),BCKSLH(1:1)) IF (ENDMRK .EQ. 0) GOTO 101 LENSAV=LENGTH LENGTH=ENDMRK-1 LENGX=LENGTH  IF (LENGTH .EQ. 0) THEN SCREEN(OFFSET)=012 OFFSET=OFFSET+1 SCREEN(OFFSET)=015N LINE=LINE+1 OFFSET=OFFSET+1 GOTO 190T ENDIFC CONTROL CHARACTER PARSE101 BOFFX=BOFF LENGX=LENGTH DHDW=0= DH=01 DO 102,J=1,LENGTH< IF ((BIT(BOFF) .NE. '40'O) .AND. (BIT(BOFF) .NE. '11'O))  9 GOTO 103R BOFF=BOFF+1 LENGTH=LENGTH-1 102 CONTINUE GOTO 110( 007""4"!!! !103 CONTINUE" IF (BIT(BOFFX) .EQ. ';') GOTO 190$ IF (BIT(BOFF) .EQ. '135'O) GOTO 160: IF ((BIT(BOFF) .NE. '44'O) .AND. (BIT(BOFF) .NE. '45'O)) 9 GOTO 110# IF (BIT(BOFF) .NE. '45'O) GOTO 120= C HERE ON CONTROL CHARACTER "%" LENGTH=LENGTH-1 BOFF=BOFF+1 DO 122,J=1,LENGTH< IF ((BIT(BOFF) .NE. '40'O) .AND. (BIT(BOFF) .NE. '11'O)) 9 GOTO 133 BOFF=BOFF+1 LENGTH=LENGTH-1 122 CONTINUE GOTO 1909 133 CONTINUEC LOWERCASE CHECK CONVERT G DO 1133,J=1,LENGTHG( IF (BIT(BOFF-1+J) .LE. ' ') GOTO 21336 IF ((BIT(BOFF-1+J) .LT. '141'O) .OR. (BIT(BOFF-1+J) 9 .GT. '172'O)) GOTO 1133$ BIT(BOFF-1+J)=BIT(BOFF-1+J)-'40'O 1133 CONTINUEB 2133 CONTINUE'C STATE DISPATCH FOR %C GOTO (104,86,105,106,86)STATE9C STATE 1 FOR % PCODE GENERATION OF SCRIPT INITIALIZTION 104 CONTINUE= IF ((BIT(BOFF) .LT. 'A') .OR. (BIT(BOFF) .GT. 'X')) GOTO 109T FUNC=(BIT(BOFF)-64); GOTO (801,802,803,804,805,806,807,808,809,109,811,812,813,7 9 814,815,816,817,818,819,820,821,822,823,824)FUNC 801 CONTINUE IF (BIT(BOFF+1) .EQ. 'L') THENT SELCT1(SELOFF)=29 !ALLOWT GOTO 118T# ELSEIF (BIT(BOFF+1) .NE. 'S') THENC GOTO 1091# ELSEIF (BIT(BOFF+2) .NE. 'K') THEN GOTO 1091# ELSEIF (BIT(BOFF+3) .EQ. 'S') THENF SELCT1(SELOFF)=16 !ASKS GOTO 108O> ELSEIF ((BIT(BOFF+3) .EQ. 32) .OR. (BIT(BOFF+3) .EQ. 9)) THEN SELCT1(SELOFF)=15 !ASK= GOTO 108)# ELSEIF (BIT(BOFF+3) .EQ. '?') THEN7 SELCT1(SELOFF)=36 !ASK? GOTO 1088 ELSE8 GOTO 1091 ENDIF 802 CONTINUE IF (BIT(BOFF+1) .EQ. 'A') THEN  SELCT1(SELOFF)=17 !BATCH9 GOTO 118 # ELSEIF (BIT(BOFF+1) .EQ. 'L') THEN  SELCT1(SELOFF)=27 !BLOCKI GOTO 118) ELSEK GOTO 109G ENDIF 803 CONTINUE IF (BIT(BOFF+1) .EQ. 'O') THEN( SELCT1(SELOFF)=26 !CONTINUE GOTO 118(# ELSEIF (BIT(BOFF+1) .EQ. 'H') THENQ SELCT1(SELOFF)=56 !CHAIN5 GOTO 108G# ELSEIF (BIT(BOFF+1) .NE. 'L') THEN? GOTO 109S# ELSEIF (BIT(BOFF+2) .EQ. 'E') THEN8 SELCT1(SELOFF)=7 !CLEAR GOTO 118N# ELSEIF (BIT(BOFF+2) .EQ. 'I') THEN SELCT1(SELOFF)=24 !CLI9 GOTO 108  ELSEI GOTO 109 ENDIFL 804 CONTINUE IF (BIT(BOFF+1) .EQ. 'I') THEN SELCT1(SELOFF)=30 !DISALLOW GOTO 118N# ELSEIF (BIT(BOFF+1) .NE. 'E') THEN GOTO 109O# ELSEIF (BIT(BOFF+2) .EQ. 'B') THENS DEBUG=1 !DEBUG GOTO 190 # ELSEIF (BIT(BOFF+2) .EQ. 'L') THEN  SELCT1(SELOFF)=48 !DELAY GOTO 108  ELSE0 GOTO 109B ENDIF 805 CONTINUE IF (BIT(BOFF+1) .EQ. 'N') THEN SELCT1(SELOFF)=52 !ENDF GOTO 118)# ELSEIF (BIT(BOFF+1) .EQ. 'X') THEN SELCT1(SELOFF)=20 !EXIT GOTO 118 ELSEO GOTO 109B ENDIF 806 CONTINUE SELCT1(SELOFF)=32 !FREE GOTO 118 807 CONTINUE$ IF (BIT(BOFF+1) .NE. 'R') GOTO 8807 GRAPHC=1 !GRAPHICB FLAGEX=0 *9807 CONTINUE !GRAPHIC/LAST COMMON CODE DO 1807, J=1,LENGTH: IF ((BIT(BOFF) .EQ. '40'O) .OR. (BIT(BOFF) .EQ. '11'O)) 9 GOTO 2807  BOFF=BOFF+1 LENGTH=LENGTH-1 1807 CONTINUE) GOTO 109T 2807 CONTINUEE DO 3807, J=1,LENGTH; IF ((BIT(BOFF) .NE. '40'O) .AND. (BIT(BOFF) .NE. '11'O))F 9 GOTO 4807  BOFF=BOFF+1 LENGTH=LENGTH-1 3807 CONTINUET GOTO 109T 4807 CONTINUER BOFF=BOFF-1 IF (FLAGEX .EQ. 0) THEN GRPHLN=LENGTH !GRAPHIC DO 5807, K=1,LENGTH GRPHBF(K)=BIT(BOFF+K) 5807 CONTINUEC ELSEE ENDLN=LENGTH !LAST DO 6807, K=1,LENGTH ENDBUF(K)=BIT(BOFF+K) 6807 CONTINUEO ENDIF GOTO 190F 8807 CONTINUEG# IF (BIT(BOFF+1) .NE. 'O') GOTO 1098 SELECT1(SELOFF)=3 !GOTO GOTO 108 808 CONTINUE IF (BIT(BOFF+1) .EQ. 'O') THEN  SELCT1(SELOFF)=6 !HOLDB GOTO 118 # ELSEIF (BIT(BOFF+1) .EQ. 'A') THENT SELCT1(SELOFF)=54 !HALT GOTO 118 ELSEA GOTO 109H ENDIF 809 CONTINUE IF (BIT(BOFF+1) .EQ. 'N') THEN  SELCT1(SELOFF)=19 !INQUIREI GOTO 118E# ELSEIF (BIT(BOFF+1) .NE. 'F') THEN GOTO 109 > ELSEIF ((BIT(BOFF+2) .EQ. 32) .OR. (BIT(BOFF+2) .EQ. 9)) THEN SELCT1(SELOFF)=35 !IF 007""7"" cTADATADATA GOTO 108)# ELSEIF (BIT(BOFF+2) .EQ. 'N') THENO SELCT1(SELOFF)=49 !IFNOTI GOTO 108) ELSEO GOTO 109S ENDIF 811 CONTINUE SELCT1(SELOFF)=55 !KILL LAST+ GOTO 118) 812 CONTINUE IF (BIT(BOFF+1) .EQ. 'O') THEN SELCT1(SELOFF)=40 !LOCK GOTO 118N# ELSEIF (BIT(BOFF+1) .EQ. 'A') THEN FLAGEX=1 !LAST ENDTSK=1 . GOTO 9807 !GOTO LAST/GRAPHIC COMMON CODE ELSET GOTO 109I ENDIF 813 CONTINUE SELCT1(SELOFF)=47 !MAINTAIN GOTO 118( 814 CONTINUE SELCT1(SELOFF)=8 !NO CLEARF GOTO 118N 815 CONTINUE IF (BIT(BOFF+1) .EQ. 'N') THEN  SELCT1(SELOFF)=42 !ON GOTO 118 # ELSEIF (BIT(BOFF+1) .EQ. 'F') THENL SELCT1(SELOFF)=43 !OFFN GOTO 118B# ELSEIF (BIT(BOFF+1) .EQ. 'V') THENO SELCT1(SELOFF)=46 !OVERIDES GOTO 118+ ELSE GOTO 109  ENDIF 816 CONTINUE IF (BIT(BOFF+1) .EQ. 'A') THENA SELCT1(SELOFF)=21 !PASSWORD GOTO 108E# ELSEIF (BIT(BOFF+1) .NE. 'R') THEN= GOTO 109N# ELSEIF (BIT(BOFF+2) .EQ. 'I') THEN(! SELCT1(SELOFF)=34 !PRIVILEGE GOTO 118E# ELSEIF (BIT(BOFF+2) .NE. 'O') THEN GOTO 109F# ELSEIF (BIT(BOFF+3) .EQ. 'C') THENT& SELCT1(SELOFF)=10 !PROCEED ON ERR GOTO 118N# ELSEIF (BIT(BOFF+3) .EQ. 'M') THEN. SELCT1(SELOFF)=28 !PROMPT GOTO 118D# ELSEIF (BIT(BOFF+3) .EQ. 'T') THEN 1 IF ((IAND(1,PRVMSK)) .EQ. 0) GOTO 186 !PROTECT) GOTO 190L ELSEO GOTO 109S ENDIF 817 CONTINUE SELCT1(SELOFF)=4 !QUERY GOTO 118T 818 CONTINUE SELCT1(SELOFF)=14 !RETURN GOTO 118E 819 CONTINUE IF (BIT(BOFF+1) .EQ. 'T') THENT" SELCT1(SELOFF)=9 !STOP ON ERR GOTO 118B# ELSEIF (BIT(BOFF+1) .EQ. 'P') THEN( SELCT1(SELOFF)=23 !SPLIT GOTO 118E# ELSEIF (BIT(BOFF+1) .EQ. 'I') THEN  SELCT1(SELOFF)=11 !SILENT GOTO 118E# ELSEIF (BIT(BOFF+1) .EQ. 'L') THEN  SELCT1(SELOFF)=31 !SLAVEO GOTO 118C# ELSEIF (BIT(BOFF+1) .EQ. 'E') THENS SELCT1(SELOFF)=53 !SETL GOTO 108 # ELSEIF (BIT(BOFF+1) .EQ. 'H') THEN, SELCT1(SELOFF)=57 !SHOW SCRIPT FILENAME GOTO 118I ELSEB GOTO 109T ENDIF 820 CONTINUE IF (BIT(BOFF+1) .EQ. 'E') THENB SELCT1(SELOFF)=18 !TEXT GOTO 108S# ELSEIF (BIT(BOFF+1) .EQ. 'I') THEN1 SELCT1(SELOFF)=33 !TIMEOUT) GOTO 108L ELSEO GOTO 109E ENDIFE 821 CONTINUE SELCT1(SELOFF)=41 !UNLOCK GOTO 118= 822 CONTINUE SELCT1(SELOFF)=12 !VERBOSE) GOTO 118T 823 CONTINUE IF (BIT(BOFF+1) .EQ. 'A') THEN SELCT1(SELOFF)=5 !WAIT) GOTO 118L# ELSEIF (BIT(BOFF+1) .EQ. 'H') THENE SELCT1(SELOFF)=22 !WHOLE GOTO 118 ELSEO GOTO 109B ENDIF 824 CONTINUE SELCT1(SELOFF)=50 !XSTATUST GOTO 1080%C STATE 1 PCODE STRING POINTER SETUP 118 CONTINUE SELOFF=SELOFF+1 SELCT1(SELOFF)=0O SELOFF=SELOFF+1 GOTO 190E 108 CONTINUE SELOFF=SELOFF+1 SELCT1(SELOFF)=STROFF SELOFF=SELOFF+1 GOTO 107O'C STATE 3/4 PCODE STRING POINTER SETUPN 1118 CONTINUE+ SELOFF=SELOFF+1 SELECT(SELOFF)=0= SELOFF=SELOFF+1 GOTO 190S 1108 CONTINUE. SELOFF=SELOFF+1 SELECT(SELOFF)=STROFF SELOFF=SELOFF+1 GOTO 107 C STATE 3 PCODE 105 CONTINUE STATE=4 C STATE 3/4 PCODE PARSE FOR "%" 106 CONTINUE IF (BIT(BOFF) .EQ. '?') THENO1106 SELECT(SELOFF)=2 !HELP( GOTO 1108 ENDIF= IF ((BIT(BOFF) .LT. 'A') .OR. (BIT(BOFF) .GT. 'Z')) GOTO 109O FUNC=(BIT(BOFF)-64); GOTO (901,902,903,904,905,906,907,908,909,109,911,109,109,? 9 914,109,916,917,918,919,920,109,922,923,924,109,926)FUNCO 901 CONTINUE IF (BIT(BOFF+1) .EQ. 'G') THENF SELECT(SELOFF)=25 !AGAINL GOTO 1118# ELSEIF (BIT(BOFF+1) .NE. 'S') THEN GOTO 109A# ELSEIF (BIT(BOFF+2) .NE. 'K') THEN" GOTO 109T# ELSEIF (BIT(BOFF+3) .EQ. 'S') THEN SELECT(SELOFF)=16 !ASKS GOTO 1108> ELSEIF ((BIT(BOFF+3) .EQ. 32) .OR. (BIT(BOFF+3) .EQ. 9)) THEN SELECT(SELOFF)=15 !ASKF GOTO 1108# ELSEIF (BIT(BOFF+3) .EQ. '?') THEN9 SELECT(SELOFF)=36 !ASK? GOTO 1108 ELSE9 GOTO 1093 ENDIF 902 CONTINUE IF (BIT(BOF007""4"!!! !F+1) .EQ. 'A') THEN  SELECT(SELOFF)=17 !BATCH5 GOTO 1118* ELSEIF (BIT(BOFF+1) .EQ. 'L') THEN SELECT(SELOFF)=27 !BLOCKT GOTO 1118 ELSEE GOTO 1090 ENDIF 903 CONTINUE IF (BIT(BOFF+1) .EQ. 'L') THENF SELECT(SELOFF)=7 !CLEAR GOTO 1118# ELSEIF (BIT(BOFF+1) .EQ. 'A') THEN  SELECT(SELOFF)=13 !CALL GOTO 1108# ELSEIF (BIT(BOFF+1) .EQ. 'H') THEN?! IF (BIT(BOFF+2) .EQ. 'O') THENS SELECT(SELOFF)=39 !CHOICE GOTO 1118% ELSEIF (BIT(BOFF+2) .EQ. 'A') THEN) SELECT(SELOFF)=56 !CHAINA GOTO 1108 ELSE GOTO 109O ENDIF# ELSEIF (BIT(BOFF+1) .EQ. 'O') THENL SELECT(SELOFF)=26 !CONTINUE GOTO 1118 ELSE GOTO 109  ENDIF 904 CONTINUE SELECT(SELOFF)=48 !DELAYC GOTO 1108 905 CONTINUE IF (BIT(BOFF+1) .EQ. 'X') THENS SELECT(SELOFF)=20 !EXIT GOTO 1118# ELSEIF (BIT(BOFF+1) .EQ. 'R') THENI SELECT(SELOFF)=44 !ERASE GOTO 1118# ELSEIF (BIT(BOFF+1) .EQ. 'N') THEN  SELECT(SELOFF)=52 !END) GOTO 1118 ELSEE GOTO 109H ENDIF 906 CONTINUE SELECT(SELOFF)=32 !FREE GOTO 1118 907 CONTINUE SELECT(SELOFF)=3 !GOTOE GOTO 1108 908 CONTINUE IF (BIT(BOFF+1) .EQ. 'O') THEND SELECT(SELOFF)=6 !HOLDE GOTO 1118# ELSEIF (BIT(BOFF+1) .EQ. 'E') THEN  GOTO 1106 !HELPT ELSE GOTO 109F ENDIF 909 CONTINUE IF (BIT(BOFF+1) .EQ. 'N') THEN) SELECT(SELOFF)=19 !INQUIRER GOTO 1118# ELSEIF (BIT(BOFF+1) .NE. 'F') THENT GOTO 109CE ELSEIF ((BIT(BOFF+2) .EQ. 32) .OR. (BIT(BOFF+2) .EQ. 9)) THEN  SELECT(SELOFF)=35 !IF GOTO 1108* ELSEIF (BIT(BOFF+2) .EQ. 'N') THEN !IFNOT SELECT(SELOFF)=490 GOTO 1108 ELSEB GOTO 109O ENDIF 911 CONTINUE SELECT(SELOFF)=55 !KILL LASTS GOTO 1118 914 CONTINUE SELECT(SELOFF)=8 !NO CLEAR GOTO 1118 916 CONTINUE IF (BIT(BOFF+1) .EQ. 'A') THEN) SELECT(SELOFF)=21 !PASSWORD GOTO 1108# ELSEIF (BIT(BOFF+1) .NE. 'R') THEN) GOTO 109E# ELSEIF (BIT(BOFF+2) .EQ. 'O') THENT& SELECT(SELOFF)=10 !PROCEED ON ERR GOTO 1118# ELSEIF (BIT(BOFF+2) .EQ. 'I') THEN8" SELECT(SELOFF)=34 !PRIVILEGE GOTO 1118 ELSES GOTO 109  ENDIF 917 CONTINUE SELECT(SELOFF)=4 !QUERY GOTO 1118 918 CONTINUE IF (BIT(BOFF+1) .NE. 'E') THENN GOTO 109E# ELSEIF (BIT(BOFF+2) .EQ. 'T') THEN1 SELECT(SELOFF)=14 !RETURN GOTO 1118# ELSEIF (BIT(BOFF+2) .EQ. 'S') THENG SELECT(SELOFF)=45 !RESET. GOTO 1118 ELSET GOTO 109I ENDIF 919 CONTINUE IF (BIT(BOFF+1) .EQ. 'T') THENR" SELECT(SELOFF)=9 !STOP ON ERR GOTO 1118# ELSEIF (BIT(BOFF+1) .EQ. 'I') THEN  SELECT(SELOFF)=11 !SILENT GOTO 1118# ELSEIF (BIT(BOFF+1) .EQ. 'L') THENE SELECT(SELOFF)=31 !SLAVE GOTO 1118# ELSEIF (BIT(BOFF+1) .EQ. 'E') THENG SELECT(SELOFF)=53 !SET) GOTO 1108# ELSEIF (BIT(BOFF+1) .EQ. 'H') THEN , SELECT(SELOFF)=57 !SHOW SCRIPT FILENAME GOTO 1118 ELSE= GOTO 109 ENDIF 920 CONTINUE IF (BIT(BOFF+1) .EQ. 'E') THENE SELECT(SELOFF)=18 !TEXT GOTO 1108# ELSEIF (BIT(BOFF+1) .EQ. 'I') THEN1 SELECT(SELOFF)=37 !TITLEI GOTO 1108# ELSEIF (BIT(BOFF+1) .EQ. 'O') THEN1 SELECT(SELOFF)=38 !TOP GOTO 1118 ENDIF 922 CONTINUE SELECT(SELOFF)=12 !VERBOSET GOTO 1118 923 CONTINUE SELECT(SELOFF)=5 !WAIT GOTO 1118 924 CONTINUE SELECT(SELOFF)=50 !XSTATUSC GOTO 1108 926 CONTINUE SELECT(SELOFF)=51 !ZERO GOTO 1118C STRIP % COMMAND AND SPACES 107 CONTINUE DO 191, J=1,LENGTH(: IF ((BIT(BOFF) .EQ. '40'O) .OR. (BIT(BOFF) .EQ. '11'O)) 9 GOTO 192 BOFF=BOFF+1 LENGTH=LENGTH-1 191 CONTINUE GOTO 109+ 192 CONTINUE DO 193, J=1,LENGTH8; IF ((BIT(BOFF) .NE. '40'O) .AND. (BIT(BOFF) .NE. '11'O))F 9 GOTO 194 BOFF=BOFF+1 LENGTH=LENGTH-1 193 CONTINUE GOTO 109GC STORE THE STRINGE 194 CONTINUE STRING(STROFF)=LENGTH STROFF=STROFF+1 DO 195, K=BOFF,BOFF+LENGTH-1T STRING(STROFF)=BIT(K)D STROFF=STROFF+1 195 CONTINUE 007#"7"" cTADATADATA GOTO 190L 109 CONTINUE GOTO 86C COMMAND "$" PARSING 120 CONTINUE BOFF=BOFF+1 LENGTH=LENGTH-1 DO 144,J=1,LENGTH; IF ((BIT(BOFF) .NE. '40'O) .AND. (BIT(BOFF) .NE. '11'O)) 9 GOTO 155 BOFF=BOFF+1 LENGTH=LENGTH-1 144 CONTINUE GOTO 190 C STATE DISPATCH FOR "$"H 155 CONTINUE GOTO (150,86,151,152,86)STATEC STATE 1 FOR "$" 150 CONTINUE SELCT1(SELOFF)=1O SELOFF=SELOFF+1 SELCT1(SELOFF)=STROFF GOTO 156RC STATE 3 FOR "$" 151 CONTINUE STATE=4C STATE 4 FOR "$" 152 CONTINUE SELECT(SELOFF)=1R SELOFF=SELOFF+1 SELECT(SELOFF)=STROFFC COMMON CODE FOR "$" 156 CONTINUE SELOFF=SELOFF+1 STRING(STROFF)=LENGTH STROFF=STROFF+1 DO 157,J=BOFF,BOFF+LENGTH-1 STRING(STROFF)=BIT(J) STROFF=STROFF+1 157 CONTINUE GOTO 190C TEXT RECORDS PROCESSING 110 CONTINUE BOFF=BOFFXF LENGTH=LENGXO SCREEN(OFFSET)='15'O= OFFSET=OFFSET+1 IF (STATE .EQ. 5) THEN IF (FIRST .EQ. 1) THENR FIRST=0 ELSES SCREEN(OFFSET)='12'O" OFFSET=OFFSET+1 LINE=LINE+1 ENDIF ENDIFC TEXT STATE DISPATCHINGM GOTO (111,112,113,112,111)STATEC TEXT STATE 1/5N 111 CONTINUE FLAGEX=0T TTSEL=0)C TEXT COMMON CODE AND ATTRIBUTE PARSINGF 115 CONTINUE4 IF ((BIT(BOFF) .NE. '!') .OR. (LENGTH .LE. 2)) THEN1115 CONTINUE1 SCREEN(OFFSET)=BIT(BOFF)L OFFSET=OFFSET+1 BOFF=BOFF+1 LENGTH=LENGTH-1 IF (LENGTH .EQ. 0 ) GOTO 9115 GOTO 115)8 ELSEIF (BIT(BOFF+1) .EQ. 'A') THEN !ASCII CHARACTER SET IF (SCOPEP(2) .EQ. 1) THENN TTSEL=0 SCREEN(OFFSET)=27 OFFSET=OFFSET+1 SCREEN(OFFSET)='('3 OFFSET=OFFSET+1 SCREEN(OFFSET)='B'  OFFSET=OFFSET+1 ENDIF GOTO 2115: ELSEIF (BIT(BOFF+1) .EQ. 'S') THEN !SPECAIL CHARACTER SET IF (SCOPEP(2) .EQ. 1) THEN. TTSEL=1 SCREEN(OFFSET)=27 OFFSET=OFFSET+1 SCREEN(OFFSET)='('S OFFSET=OFFSET+1 SCREEN(OFFSET)='2'  OFFSET=OFFSET+1 ENDIF GOTO 2115: ELSEIF (BIT(BOFF+1) .EQ. 'G') THEN !GRAPHIC CHARACTER SET IF (SCOPEP(2) .EQ. 1) THENN TTSEL=1 SCREEN(OFFSET)=27 OFFSET=OFFSET+1 SCREEN(OFFSET)='('3 OFFSET=OFFSET+1 SCREEN(OFFSET)='0'  OFFSET=OFFSET+1 ENDIF GOTO 21155 ELSEIF (BIT(BOFF+1) .EQ. 'N') THEN !NORMAL ATTRIBUTER IF (SCOPEP(2) .EQ. 1) THENT FLAGEX=0L SCREEN(OFFSET)=27 OFFSET=OFFSET+1 SCREEN(OFFSET)='['( OFFSET=OFFSET+1 SCREEN(OFFSET)='0'2 OFFSET=OFFSET+1 SCREEN(OFFSET)='m'5 OFFSET=OFFSET+1 ENDIF GOTO 21153 ELSEIF (BIT(BOFF+1) .EQ. 'B') THEN !BOLD ATTRIBUTET IF (SCOPEP(2) .EQ. 1) THEN FLAGEX=1S SCREEN(OFFSET)=27 OFFSET=OFFSET+1 SCREEN(OFFSET)='['T OFFSET=OFFSET+1 SCREEN(OFFSET)='1'  OFFSET=OFFSET+1 SCREEN(OFFSET)='m'  OFFSET=OFFSET+1 ENDIF GOTO 21154 ELSEIF (BIT(BOFF+1) .EQ. 'F') THEN !FLASH ATTRIBUTE IF (SCOPEP(2) .EQ. 1) THEN( FLAGEX=1F SCREEN(OFFSET)=27 OFFSET=OFFSET+1 SCREEN(OFFSET)='['S OFFSET=OFFSET+1 SCREEN(OFFSET)='5'T OFFSET=OFFSET+1 SCREEN(OFFSET)='m'E OFFSET=OFFSET+1 ENDIF GOTO 21158 ELSEIF (BIT(BOFF+1) .EQ. 'U') THEN !UNDERLINE ATTRIBUTE IF (SCOPEP(2) .EQ. 1) THEN FLAGEX=1T SCREEN(OFFSET)=27 OFFSET=OFFSET+1 SCREEN(OFFSET)='['= OFFSET=OFFSET+1 SCREEN(OFFSET)='4'1 OFFSET=OFFSET+1 SCREEN(OFFSET)='m'F OFFSET=OFFSET+1 ENDIF GOTO 21156 ELSEIF (BIT(BOFF+1) .EQ. 'R') THEN !REVERSE ATTRIBUTE IF (SCOPEP(2) .EQ. 1) THENO FLAGEX=11 SCREEN(OFFSET)=27 OFFSET=OFFSET+1 SCREEN(OFFSET)='['m OFFSET=OFFSET+1 SCREEN(OFFSET)='7'5 OFFSET=OFFSET+1 SCREEN(OFFSET)='m'D OFFSET=OFFSET+1 ENDIF GOTO 21154 ELSEIF ((BIT(BOFF+1) .EQ. 'H') .AND. (STATE .EQ. 1). 9 .AND. (DHDW .EQ. 0) .AND. (DH .EQ. 0)) THEN IF (SCOPEP(2) .EQ. 1) THENO! DHDW=1 ! DOUBLE HEIGHT LINEm SCREEN(OFFSET)=27 OFFSET=OFFSET+1 SCREEN(OFFSET)='#'+ OFFSET=OFFSET+1 SCREEN(OFFSET)='3'S OFFSET=OFFSET+1 ENDIF GOTO 21154 ELSEIF ((BIT(BO007 #"4"!!! !FF+1) .EQ. 'H') .AND. (STATE .EQ. 1) 9 .AND. (DHDW .EQ. 1)) THEN IF (SCOPEP(2) .EQ. 1) THEN= DHDW=0  SCREEN(OFFSET)=27 OFFSET=OFFSET+1 SCREEN(OFFSET)='#' OFFSET=OFFSET+1 SCREEN(OFFSET)='4'E OFFSET=OFFSET+1 ENDIF GOTO 21154 ELSEIF ((BIT(BOFF+1) .EQ. 'T') .AND. (STATE .EQ. 1). 9 .AND. (DH .EQ. 0) .AND. (DHDW .EQ. 0)) THEN IF (SCOPEP(2) .EQ. 1) THEN( DH=1 !TALL LINE SCREEN(OFFSET)=27 OFFSET=OFFSET+1 SCREEN(OFFSET)='#'G OFFSET=OFFSET+1 SCREEN(OFFSET)=':'  OFFSET=OFFSET+1 ENDIF GOTO 21154 ELSEIF ((BIT(BOFF+1) .EQ. 'T') .AND. (STATE .EQ. 1) 9 .AND. (DH .EQ. 1)) THEN IF (SCOPEP(2) .EQ. 1) THEN# DH=0F SCREEN(OFFSET)=27 OFFSET=OFFSET+1 SCREEN(OFFSET)='#' OFFSET=OFFSET+1 SCREEN(OFFSET)=';'' OFFSET=OFFSET+1 ENDIF GOTO 2115. ELSEIF (BIT(BOFF+1) .EQ. 'W') THEN !WIDE LINE IF (SCOPEP(2) .EQ. 1) THEN  SCREEN(OFFSET)=27  OFFSET=OFFSET+1 SCREEN(OFFSET)='#'# OFFSET=OFFSET+1 SCREEN(OFFSET)='6': OFFSET=OFFSET+1 ENDIF GOTO 2115 ELSES GOTO 1115 ENDIF0C TEXT ATTRIBTE COMMON END CODE--REMOVE COMMAND 2115 CONTINUE) BOFF=BOFF+2 LENGTH=LENGTH-2!3115 IF (LENGTH .LE. 0) GOTO 9115 BOFF=BOFF+1 LENGTH=LENGTH-1: IF ((BIT(BOFF-1) .EQ. 32) .OR. (BIT(BOFF-1) .EQ. 9)) THEN IF (LENGTH .EQ. 0) GOTO 9115F GOTO 115  ELSEW GOTO 3115 S ENDIF,C LAST CHARACTER, ATTRIBUTE STATE CLOSE OUT 9115 CONTINUER IF (FLAGEX .NE. 0) THEN FLAGEX=0  SCREEN(OFFSET)=27 OFFSET=OFFSET+1 SCREEN(OFFSET)='[' OFFSET=OFFSET+1 SCREEN(OFFSET)='0'R OFFSET=OFFSET+1 SCREEN(OFFSET)='m'5 OFFSET=OFFSET+1 ENDIF IF (TTSEL .NE. 0 ) THEN TTSEL=0 SCREEN(OFFSET)=27 OFFSET=OFFSET+1 SCREEN(OFFSET)='('E OFFSET=OFFSET+1 SCREEN(OFFSET)='B'I OFFSET=OFFSET+1 ENDIFC TEXT STATE 1-4 CLOSE OUT  IF (STATE .NE. 5) THENH SCREEN(OFFSET)='12'OC OFFSET=OFFSET+1 LINE=LINE+1 ENDIF- IF ((DHDW .EQ. 1) .OR. (DH .EQ. 1)) GOTO 110O GOTO 114TC TEXT STATE 2 AND 4 PROCESSF 112 STATE=3  IF (SCRFOR .LT. 5) THEN SCREEN(OFFSET)='11'O( OFFSET=OFFSET+1 ENDIF IF (SEL .NE. 0) THENL SELECT(SELOFF)=0S SELOFF=SELOFF+1 ENDIF SEL=SEL+1 SELPNT(SEL)=SELOFFT LINPNT(SEL)=LINEF CHOPNT(1,SEL)=OFFSETT,C SCREEN FORMAT DISPATCH FOR TEXT STATE 2/4& GOTO (180,181,182,183,185,1850)SCRFOR180 CONTINUE !FORMAT 1 SELCMP(SEL)=SEL IF (SCOPEP(2) .EQ. 1) THEN SCREEN(OFFSET)='33'OR OFFSET=OFFSET+1 SCREEN(OFFSET)='[' OFFSET=OFFSET+1 SCREEN(OFFSET)='1'T OFFSET=OFFSET+1 SCREEN(OFFSET)='m'R OFFSET=OFFSET+1 SCREEN(OFFSET)=NUMS(1,SEL) OFFSET=OFFSET+1 SCREEN(OFFSET)=NUMS(2,SEL) OFFSET=OFFSET+1 SCREEN(OFFSET)='33'O OFFSET=OFFSET+1 SCREEN(OFFSET)='['F OFFSET=OFFSET+1 SCREEN(OFFSET)='m'O OFFSET=OFFSET+1 ELSEA SCREEN(OFFSET)=NUMS(1,SEL)1 OFFSET=OFFSET+1 SCREEN(OFFSET)=NUMS(2,SEL) OFFSET=OFFSET+1 ENDIF SCREEN(OFFSET)='40'OS OFFSET=OFFSET+1 SCREEN(OFFSET)='40'OS OFFSET=OFFSET+1 GOTO 117 !FORMAT 2R 181 CONTINUE SELCMP(SEL)=BIT(BOFF) LENGTH=LENGTH-1 BOFF=BOFF+1 GOTO 184(182 CONTINUE !FORMAT 3 SELCMP(SEL)=BIT(BOFF) GOTO 117S183 CONTINUE !FORMAT 4 SELCMP(SEL)=BIT(BOFF) 184 CONTINUE IF (SCOPEP(2) .EQ. 1) THENF- SCREEN(OFFSET)='33'O !FORMAT 2 AND 4 COMMON OFFSET=OFFSET+1 SCREEN(OFFSET)='['O OFFSET=OFFSET+1 SCREEN(OFFSET)='1'S OFFSET=OFFSET+1 SCREEN(OFFSET)='m'( OFFSET=OFFSET+1 SCREEN(OFFSET)='40'O( OFFSET=OFFSET+1 SCREEN(OFFSET)=SELCMP(SEL)F OFFSET=OFFSET+1 SCREEN(OFFSET)='33'OT OFFSET=OFFSET+1 SCREEN(OFFSET)='[' OFFSET=OFFSET+1 SCREEN(OFFSET)='m' OFFSET=OFFSET+1 ELSEG SCREEN(OFFSET)='40'O  OFFSET=OFFSET+1 SCREEN(OFFSET)=SELCMP(SEL)T OFFSET=OFFSET+1 ENDIF SCREEN(OFFSET)='40'OT OFFSET=OFFSET+1 SCREEN(OFFSET)='40'O= OFFSET=OFFSET+1 GOTO 117O 185 CONTINUE SELCMP(SEL)=SEL !FORMAT 5 GOTO 1171 1850 CONTINUE=! SELCMP(SEL)=BIT(BOFF) !FORMAT 6S L007#"7"" cTADATADATAENGTH=LENTH-1E BOFF=BOFF+1 GOTO 117TC TEXT STATE 3 PROCESSS 113 CONTINUE SCREEN(OFFSET)='11'OF OFFSET=OFFSET+1 IF (SCRFOR .EQ. 3) GOTO 111 SCREEN(OFFSET)='40'OE OFFSET=OFFSET+1 SCREEN(OFFSET)='40'O  OFFSET=OFFSET+1 SCREEN(OFFSET)='40'OP OFFSET=OFFSET+1 SCREEN(OFFSET)='40'O( OFFSET=OFFSET+1 GOTO 111T+C COMMON TEXT EXIT CODE FOR STATES 2 AND 4G 117 CONTINUE CHOPNT(2,SEL)=LENGTH+12* IF (SCRFOR .EQ. 3) CHOPNT(2,SEL)=LENGTH+1 GOTO 111) 114 CONTINUE GOTO 190NC FIELD SEPARTOR "]" PARSING 160 CONTINUE GOTO (161,86,86,162,86)STATEC "]" STATE 1 PROCESSINGE161 LENGTH=LENGTH-1O BOFF=BOFF+1 SCRFOR=1R STATE=2 SELCT1(SELOFF)=0F SELOFF=1R IF (LENGTH .EQ. 0) GOTO 190 DO 164,J=1,LENGTH< IF ((BIT(BOFF) .NE. '40'O) .AND. (BIT(BOFF) .NE. '11'O)) 9 GOTO 1651 BOFF=BOFF+1 LENGTH=LENGTH-1 164 CONTINUE GOTO 190T 165 CONTINUE. IF (BIT(BOFF) .EQ. '116'O) GOTO 190 !NUMERIC IF (BIT(BOFF) .EQ. '101'O) THEN SCRFOR=2 !ALPHA/NUMERIC GOTO 190N$ ELSEIF (BIT(BOFF) .EQ. '102'O) THEN SCRFOR=3 !BLANK GOTO 190E$ ELSEIF (BIT(BOFF) .EQ. '122'O) THEN! SCRFOR=4 !REPEAT CHARACTERT GOTO 190: ELSEIF (BIT(BOFF) .EQ. '125'O) THEN !UNFORMATTED NUMERIC SCRFOR=5( CURSOR=0. GOTO 190 < ELSEIF (BIT(BOFF) .EQ. '103'O) THEN !UNFORMATTED CHARACTER SCRFOR=6 CURSOR=0 GOTO 190 ELSET GOTO 86 ENDIFC "]" STATE 4 PROCESSINGR 162 CONTINUE STATE=5 SELECT(SELOFF)=0R FIRST=1 GOTO 190R2C COMMON END OF RECORD FOR ALL RECORDS PROCESSING 190 CONTINUE IF (ENDMRK .EQ. 0) GOTO 1 BOFF=BOFF+LENGTH+1O LENGTH=LENSAV-ENDMRK  GOTO 2H 1 CONTINUE6C SCRIPT FILE PROCESSING DONE, DO SOME INITIALIZATION 90 CONTINUES IF (CLEAR .EQ. 1) THEN  CALL CLR (CLEAR,WHOLE,SCOPE)Q CLEAR=1 ENDIF CALLFL=0A DO 1925,I=1,30 LSTLST(I)=LSTFIL(I) 1925 CONTINUEG DO 2925,I=1,30  LSTFIL(I)=BILNAM(I) 2925 CONTINUEE LENGX=LENGX+1 SELBUF(14)=CNUMS(1,LINE)T SELBUF(15)=CNUMS(2,LINE)R SELBUF(17)=CNUMS(1,LENGX) SELBUF(18)=CNUMS(2,LENGX) SELFUN=1. CLOSE (UNIT=1)= SUB(1)=0O SUB(2)=0E SUB(3)=0 SUB(4)=0 SUBPNT=1E SUBCNT=1PC EXECUTE INITIALIZATION PCODET DO 94, I=1,50# IF (SELCT1(SELFUN) .EQ. 0) GOTO 95C FUNC=SELCT1(SELFUN) LENGTH=0E& IF (SELCT1(SELFUN+1) .EQ. 0 ) GOTO 96 SELSTR=SELCT1(SELFUN+1) LENGTH=STRING(SELSTR) 96 CONTINUE GOTO 93 94 CONTINUE9$C POST INITIALIZATION EXECUTE SETUP 95 CONTINUEE FLAG1X=1( INITP=0 RTURN=0 SPWND=SPWNN SILNTD=SILNTS STPERD=STPER( CLEARD=CLEARU2 IF ((CURSOR .NE. 0) .AND. (SCOPEP(2) .EQ. 1))THEN! PARM10(1)=(PARM10(1)+OFFSET-1)S SCREEN(OFFSET)='33'OI OFFSET=OFFSET+1 SCREEN(OFFSET)='133'O OFFSET=OFFSET+1( SCREEN(OFFSET)=(CNUMS(1,(LINPNT(1)))) OFFSET=OFFSET+1( SCREEN(OFFSET)=(CNUMS(2,(LINPNT(1)))) OFFSET=OFFSET+1 SCREEN(OFFSET)='73'OI OFFSET=OFFSET+1 SCREEN(OFFSET)='63'OT OFFSET=OFFSET+1 SCREEN(OFFSET)='110'O OFFSET=OFFSET+1 SCREEN(OFFSET)='-'S OFFSET=OFFSET+1 SCREEN(OFFSET)='>'U OFFSET=OFFSET+1 SCREEN(OFFSET)='10'O. OFFSET=OFFSET+1 SCREEN(OFFSET)='10'O OFFSET=OFFSET+1 SCREEN(OFFSET)='10'O OFFSET=OFFSET+1 ENDIF PARM6(2)=OFFSET-1C BETWEEN SELECTION RE-SETUP) 97 CONTINUES SUB(1)=0R SUB(2)=0= SUB(3)=0I SUB(4)=0 SUBPNT=1F SUBCNT=1S STPER=STPERD' SPWN=SPWND= CLEAR=CLEARDR SILNT=SILNTD' CALL WTQIO ('1400'O,6)S3 IF ((SCOPEP(2) .EQ. 0) .AND. (FLAG1X .EQ. 0)) THENS WRITE (6) (10,10,13,'SCR>') GOTO 301T ELSE FLAG1X=0S ENDIFC WRITE-OUT MENU SCREEN 300 CONTINUE CALL WTQIO ('410'O,6,2,,,PARM6) IF (GRAPHC .EQ. 1) THEN>C GRAPHIC OPTION SPAWN (EXECUTES AFTER MENU OUTPUT EVERYTIME) CALL WTQIO ('2000'O,6). CALL SPAWN (CLI,,,1,,SPSTAT,,GRPHBF,GRPHLN) CALL STOPFR (1) CALL WTQIO ('1400'O,6)S0 IF ((CURSOR .NE. 0) .OR. (SCOPEP(2) .EQ. 1)) # 9 CALL WTQIO ('410'O,6,2,,,PA007#"4"!!! !RM10)( ENDIFC CURSOR INPUT PROCESSING 301 TTSEL=1I MLENG=12 IF ((CURSOR .EQ. 0) .OR. (SCOPEP(2) .EQ. 0)) THEN IF (SCOPEP(2) .EQ. 1) THENE PARM4(2)=19! CALL WTQIO('410'O,6,2,,,PARM4)M PARM4(2)=20 ELSE1 PARM4(2)=3A! CALL WTQIO('410'O,6,2,,,PARM4)E ENDIF GOTO 351 ENDIF)302 CALL WTQIO (READF2,6,2,,TTSTAT,PARM1), IF (TTSTAT(1) .EQ. 2) GOTO 500PG IF ((BTBUF(1) .EQ. 26) .OR. (BTBUF(1) .EQ. 3) .OR. (BTBUF(1) .EQ. 25))( 9 GOTO 376 IF (BTBUF(1) .EQ. 20) GOTO 3570 IF (BTBUF(1) .EQ. '33'O) THEN) CALL WTQIO ('1030'O,6,2,,TTSTAT,PARM2)UG IF ((BTBUF(1) .EQ. 26) .OR. (BTBUF(1) .EQ. 3) .OR. (BTBUF(1) .EQ. 25)) 9 GOTO 376 IF (BTBUF(1) .EQ. '[') THENC IF ((BTBUF(2) .EQ. 'A') .OR. (BTBUF(2) .EQ. 'C')) GOTO 370 !UP,E IF ((BTBUF(2) .EQ. 'B') .OR. (BTBUF(2) .EQ. 'D')) GOTO 371 !DOWNT GOTO 372" ELSEIF (BTBUF(1) .EQ. 'O') THEN FUNC=BTBUF(2)-'117'OT3 GOTO (373,374,375,376) FUNC !PF KEY DISPATCH6 GOTO 372  ELSET GOTO 372B ENDIF 3: ELSEIF ((BTBUF(1) .EQ. ' ') .OR. (BTBUF(1) .EQ. '0') .OR.( 9 (BTBUF(1) .EQ. '11'O)) THEN !DOWN GOTO 3711) ELSEIF (BTBUF(1) .EQ. '10'O) THEN !UP GOTO 370N' ELSEIF (BTBUF(1) .EQ. 13) THEN !21302 SELBUF(20)=13" CALL WTQIO ('410'O,6,2,,,PARM4) GOTO 399 % ELSEIF (BTBUF(1) .EQ. '?') THEN !? TTSEL=TTSEL+100 GOTO 1302= ELSEIF ((BTBUF(1) .LT. 32) .OR. (BTBUF(1) .EQ. '177'O)) THENC GOTO 302S ELSE  GOTO 350 !ALPHA/NUMERIC ENDIF 350 CONTINUE SELBUF(20)=BTBUF(1) BMCR(1)=BTBUF(1)F MLENG=2 CALL WTQIO('410'O,6,2,,,PARM4))C PROMPT INPUT PROCESSING 351 CONTINUE& CALL WTQIO (READF2,6,2,,TTSTAT,PARM1)+ IF (TTSTAT(1) .EQ. 2) GOTO 500 !TIMEOUT8 IF ((BTBUF(1) .EQ. 26) .AND. (LOCK .EQ. 0)) GOTO 99 !^Z8 IF ((BTBUF(1) .EQ. 25) .AND. (LOCK .EQ. 0)) GOTO 99 !^Y7 IF ((BTBUF(1) .EQ. 3) .AND. (LOCK .EQ. 0)) GOTO 99 !^C ( IF (BTBUF(1) .EQ. 13) GOTO 360 ! IF (BTBUF(1) .EQ. 20) GOTO 357 3 IF (BTBUF(1) .LT. 32) GOTO 359 !OTHER CTRL CHAR=- IF (BTBUF(1) .EQ. '177'O) GOTO 358 !DELETET BMCR(MLENG)=BTBUF(1) MLENG=MLENG+1. CALL WTQIO ('410'O,6,2,,TTSTAT,PARM7) !ECHO GOTO 351S 357 CONTINUE TYPE 1014,FILNAM) CALL DELAY! GOTO 300I358 CONTINUE !DELETE PROCESSE IF (MLENG .LT. 2) GOTO 351U MLENG=MLENG-1 CALL WTQIO ('410'O,6,2,,,PARM5) GOTO 351)$359 CONTINUE !CONTROL CHAR PROCESS@ IF ((BTBUF(1) .EQ. 23) .OR. (BTBUF(1) .EQ. 3)) GOTO 300 !^W/^C9 IF ((BTBUF(1) .NE. 27) .OR. (SCOPEP(2) .EQ. 0)) GOTO 351L( CALL WTQIO ('1030'O,6,2,,,PARM2) !* IF (BTBUF(1) .NE. 'O') GOTO 351 !PF KEY? FUNC=BTBUF(2)-'117'O1. GOTO (373,351,375,376) FUNC !PF KEY DISPATCH GOTO 351PC PROCESSING 360 CONTINUE IF (MLENG .EQ. 1) GOTO 300  MLENG=MLENG-1 CALL WTQIO ('410'O,6,2,,,PARM7)5 IF ((BMCR(1) .EQ. '!') .AND. (LOCK .EQ. 0)) GOTO 378O5 IF ((BMCR(1) .EQ. '@') .AND. (LOCK .EQ. 0)) GOTO 379  IF (BMCR(1) .EQ. '?') GOTO 700  IF (MLENG .GE. 4) THEN ; IF (((IMCR(1) .EQ. 'HE') .AND. (IMCR(2) .EQ. 'LP')) .OR.O< 9 ((IMCR(1) .EQ. 'he') .AND. (IMCR(2) .EQ. 'lp'))) GOTO 700 ENDIF/ IF ((SCRFOR .EQ. 1) .OR. (SCRFOR .EQ. 5)) THENC IF (MLENG .GT. 3) GOTO 377 IF (MLENG .EQ. 1) THENO TTSEL=BMCR(1)-48 7 IF ((TTSEL .GT. SEL) .OR. (TTSEL .LE. 0)) GOTO 377, GOTO 399(8 ELSEIF ((MLENG .EQ. 2) .AND. (BMCR(2) .EQ. '?')) THEN TTSEL=BMCR(1)-48L7 IF ((TTSEL .GT. SEL) .OR. (TTSEL .LE. 0)) GOTO 377 TTSEL=TTSEL+100 GOTO 399I8 ELSEIF ((MLENG .EQ. 2) .AND. (BMCR(2) .NE. '?')) THEN+ TTSEL=(((BMCR(1)-48)*10)+(BMCR(2)-48)) 7 IF ((TTSEL .GT. SEL) .OR. (TTSEL .LE. 0)) GOTO 377. GOTO 399 8 ELSEIF ((MLENG .EQ. 3) .AND. (BMCR(3) .EQ. '?')) THEN+ TTSEL=(((BMCR(1)-48)*10)+(BMCR(2)-48)).7 IF ((TTSEL .GT. SEL) .OR. (TTSEL .LE. 0)) GOTO 377E TTSEL=TTSEL+100 GOTO 399. ELSE GOTO 377L ENDIF ELSEI365 CONTINUE+ IF (SELCMP(TTSEL) .EQ. BMCR(1)) GOTO 368T TTSEL=TTS007%#"7"" cTADATADATAEL+1 IF (TTSEL .LE. SEL) GOTO 365 GOTO 377) ENDIF 368 CONTINUE* IF (BMCR(MLENG) .EQ. '?') TTSEL=TTSEL+100 GOTO 399 C CURSOR PROCESSING 370 CONTINUE IF (TTSEL .EQ. 1) TTSEL=SEL+1 TTSEL=TTSEL-1 1371 CONTINUE?% CURBUF(7)=(CNUMS(1,(LINPNT(TTSEL))))+% CURBUF(8)=(CNUMS(2,(LINPNT(TTSEL))))L CALL WTQIO ('410'O,6,2,,,PARM3) GOTO 302T 371 CONTINUE IF (TTSEL .EQ. SEL) TTSEL=0 TTSEL=TTSEL+1 GOTO 1371C OUTPUT A BELL 372 CONTINUE BTBUF(1)=7) BTBUF(2)=7 CALL WTQIO ('410'O,6,2,,,PARM8) GOTO 3026C PF KEY PROCESSING373 CONTINUE !PF1B GOTO 300.374 CONTINUE !PF20 CLEAR=1 TTSEL=TTSEL+100 GOTO 399375 CONTINUE !PF3L IF (LOCK .EQ. 1) GOTO 302 CALL WTQIO ('2000'O,6)?1375 DO 2375,I=1,30L BILNAM(I)=ONEFIL(I) 2375 CONTINUEL RTURN=1 LEVEL=1 GOTO 50376 CONTINUE !PF4T IF (LOCK .EQ. 1) GOTO 302 SELBUF(20)=13 CALL WTQIO ('410'O,6,2,,,PARM4) GOTO 99C OPTION NOT FOUNDT 377 CONTINUE TYPE 1003 CALL DELAYT GOTO 300,C COMMAND LINE SPAWN 378 CONTINUE MLENG=MLENG-1 CALL WTQIO ('2000'O,6). CALL CLR (CLEAR,WHOLE,SCOPE)R* CALL SPAWN (CLI,,,1,,SPSTAT,,BBMCR,MLENG) CALL STOPFR (1) CALL WTQIO ('1400'O,6)C TYPE 1001 IF (LOCK .EQ. 1) THEN READ (5,2001,END=300) YESNO ELSEC READ (5,2001,END=99) YESNO ENDIF GOTO 300NC COMMAND LINE GOTO 379 CONTINUE DO 1379, J=1,30 BILNAM(J)=32, 1379 CONTINUEG DSW=MLENG-1 MLENG=2 GOTO 69-C SELECTION FOUND, DISPATCH FUNCTION OR HELP 399 CONTINUE IF (TTSEL .GT. 100) GOTO 400G SELFUN=SELPNT(TTSEL)0 IF (SELFUN .EQ. 0) GOTO 97O CALL WTQIO ('2000'O,6)IC SELECTION PROCESSING DO 98, I=1,50% IF (SELECT(SELFUN) .EQ. 0) GOTO 92931 FUNC=SELECT(SELFUN)A LENGTH=0=( IF (SELECT(SELFUN+1) .EQ. 0 ) GOTO 93 SELSTR=SELECT(SELFUN+1) LENGTH=STRING(SELSTR) 93 CONTINUED SELFUN=SELFUN+2 IF (DEBUG .EQ. 1) THEN9 TYPE 1012,CLEAR,SILNT,SCRFOR,SPWN,WHOLE,LOGOFF,LOCK,P 9 CURSOR,CLIMOD@ TYPE 1013,ALLOW,STPER,OVERID,LEVEL,FUNC,TTSEL,LENGTH,PRVMSK READ (5,2001,END=99) YESNO  ENDIFC PCODE DISPATCHO; GOTO (201,202,203,204,205,206,207,208,209,210,211,212,213,C; 9 214,215,216,217,218,219,220,221,222,223,224,225,226,L; 9 227,228,229,230,231,232,233,234,235,236,237,238,239,T; 9 240,241,242,243,244,245,246,247,248,249,250,251,252,D 9 253,254,255,256,257)FUNCD 91 CONTINUE IF (INITP .EQ. 1) GOTO 94T 98 CONTINUEOC FUNCTION DONE 92 CONTINUE IF (TOPFLG .EQ. 0) GOTO 97E WRITE (6) ('33'O,'[1;24r')R TOPFLG=0R GOTO 97C FILE PROCESSING ERROR80 TYPE 1007,FILNAM CALL DELAY2-88 CONTINUE ! TRY TO OPEN AN EARLIER SCRIPT9 IF (LSTFIL(1) .EQ. 0) GOTO 89 DO 81, I=1,30 BILNAM(I)=LSTFIL(I) 81 CONTINUE2! IF (CALLFL .EQ. 1) LEVEL=LEVEL-1  RTURN=1 CALLFL=04 GOTO 50C SCRIPT SYNTAX ERROR 86 CONTINUE2 CLOSE (UNIT=1) TYPE 1008,I GOTO 88C ACCESS DENIED ERROR 186 CONTINUE CLOSE (UNIT=1) TYPE 1006 CALL DELAY  GOTO 88C COMMAND LINE ERROR, 87 CONTINUEP TYPE 1009 C ERROR EXITR 89 CONTINUE FLAGEX=40 GOTO 1099C NORMAL EXIT 99 CONTINUER FLAGEX=1N 1099 CONTINUE- IF ((WHOLE .EQ. 1) .AND. (SCOPEP(2) .EQ. 1))0 9 WRITE (6) (27,55,27,91,49,59,50,52,'r',27,56) CALL WTQIO ('2000'O,6,1)U IF (ENDTSK .EQ. 1) THENC EXIT TASK SPAWN- CALL SPAWN (CLI,,,1,,SPSTAT,,ENDBUF,ENDLN)I CALL STOPFR (1) ENDIF0 IF ((LOGOFF .EQ. 0) .AND. (CLIMOD .EQ. 1)) THEN$ CALL R50ASC (6,SAVCLI,BLIBUF(13))- CALL SPAWN (CLIMCR,,,1,,SPSTAT,,CLIBUF,18)  ENDIF IF (LOGOFF .EQ. 1)F* 9 CALL SPAWN (CLIMCR,,,1,,SPSTAT,,BYE,3) CALL EXST (FLAGEX)C PCODE FUNCTION PROCESSING C ACTION 201 CONTINUE1 IF ((ALLOW .EQ. 0) .AND. (RTURN .EQ. 1)) GOTO 945 SELSTR=SELSTR+1 MLENG=1 LENGX=0 1201 CONTINUEH: IF ((STRING(SELSTR) .NE. '#') .OR. (STRING(SELSTR+1) .NE.' 9 '#') .OR. (LENGTH .LT. 3)) GOTO 4201F LENG=(STRING(SELSTR+2)-48)(0 IF ((LE007-#"4"!!! !NG .LE. 0) .OR. (LENG .GT. 4)) GOTO 4201 SPNT=SUB(LENG)P IF (SPNT .EQ. 0) GOTO 3201U LENG=SUBBUF(SPNT) SPNT=SPNT+1 2201 CONTINUEN IF (LENG .EQ. 0) GOTO 3201 BMCR(MLENG)=SUBBUF(SPNT)P LENGX=LENGX+1 MLENG=MLENG+1 SPNT=SPNT+1 LENG=LENG-1 GOTO 2201 3201 CONTINUE. SELSTR=SELSTR+3 LENGTH=LENGTH-3 IF (LENGTH .EQ. 0) GOTO 5201N GOTO 1201 4201 CONTINUE. BMCR(MLENG)=STRING(SELSTR)1 LENGX=LENGX+1 SELSTR=SELSTR+1 MLENG=MLENG+1 LENGTH=LENGTH-1 IF (LENGTH .NE. 0) GOTO 1201) 5201 CONTINUE4 CALL CLR (CLEAR,WHOLE,SCOPE)P( IF ((SILNT .EQ. 0) .OR. (DEBUG .EQ. 1))9 9 WRITE (6) ('15'O,'12'O,'>',(BMCR(J), J=1,LENGX),'15'O)0 6201 CONTINUEB; IF (NOMCR .EQ. 0) CALL SPAWN (CLI,,,1,,SPSTAT,,BMCR,LENGX)= IF (SPWN .EQ. 4) GOTO 912 IF (SPWN .EQ. -1) CALL EXST (1) IF (NOMCR .EQ. 1) THENL SPSTAT(1)=1 ELSEN CALL STOPFR (1) ENDIF IF (SPWN .EQ. 5) GOTO 82011$7201 IF (SPSTAT(1) .EQ. 1) GOTO 8201 IF (SPWN .EQ. 3) THEN= IF ((STPER .EQ. 0) .AND. (SELECT(SELFUN) .EQ. 0)) GOTO 227L GOTO 219E ENDIF IF (SPWN .EQ. 2) THEN IF (STPER .EQ. 0) GOTO 91 GOTO 92 ENDIF$ IF (SELECT(SELFUN) .EQ. 0) GOTO 227 GOTO 2198201 IF (SPWN .EQ. 3) GOTO 227: IF ((SELECT(SELFUN) .NE. 0) .AND. (INITP .NE. 1)) GOTO 91: IF ((SELCT1(SELFUN) .NE. 0) .AND. (INITP .EQ. 1)) GOTO 94 CALL MARK (2,6,1) CALL STOPFR (2) GOTO 91C HELP 202 CONTINUE GOTO 91C GOTO 203 CONTINUE DO 1203,I=1,LENGTHW BMCR(I+1)=STRING(SELSTR+I)E 1203 CONTINUEL MLENG=LENGTH+1) GOTO 379C QUERY 204 CONTINUE SPWN=12 GOTO 91C WAIT. 205 CONTINUE SPWN=22 GOTO 91C HOLD( 206 CONTINUE SPWN=3 GOTO 91C CLEAR 207 CONTINUE CLEAR=1 GOTO 91 C NO CLEAR) 208 CONTINUE CLEAR=0 GOTO 91C STOP ON ERR 209 CONTINUE STPER=1 GOTO 91C PROCEED ON ERR 210 CONTINUE STPER=0 GOTO 91 C SILENTT 211 CONTINUE IF (NOMCR .EQ. 0) SILNT=1 GOTO 91 C VERBOSE 212 CONTINUE SILNT=0 GOTO 91C CALLM 213 CONTINUE DO 1213, J=1,30 NAMSAV(LEVEL,J)=BILNAM(J) 1213 CONTINUE  LEVEL=LEVEL+1 CALLFL=1= GOTO 203 C RETURN 214 CONTINUE LEVEL=LEVEL-1 IF (LEVEL .EQ. 0) GOTO 99 DO 1214, J=1,30 BILNAM(J)=NAMSAV(LEVEL,J) 1214 CONTINUEG RTURN=1 GOTO 50C ASK 215 CONTINUE IF (SUBCNT .EQ. 5) GOTO 91R MLENG=0 LENGTH=LENGTH-1 IF (LENGTH .LE. 0) GOTO 91O SELSTR=SELSTR+2 DO 1215, J=1,LENGTH) IF (STRING(SELSTR) .EQ. ')') GOTO 2215" SUBBUF(SUBPNT+J)=STRING(SELSTR) MLENG=MLENG+1 SELSTR=SELSTR+1 1215 CONTINUE3 GOTO 91 2215 CONTINUE1 IF (MLENG .EQ. 0) GOTO 91 LENGTH=LENGTH-MLENG-2 IF (LENGTH .LE. 0) GOTO 91V SELSTR=SELSTR+1 CALL CLR (CLEAR,WHOLE,SCOPE)N7 WRITE (6) ('15'O,'12'O,(STRING(SELSTR+J), J=1,LENGTH))  READ (5,2001,END=92) YESNON: IF ((YESNO(1:1) .EQ. '?') .AND. (SELECT(SELFUN) .EQ. 36)) 9 GOTO 600O@ IF ((YESNO(1:1) .EQ. 'Y') .OR. (YESNO(1:1) .EQ. 'y')) GOTO 3215 GOTO 91 3215 CONTINUES SUB(SUBCNT)=SUBPNTG SUBBUF(SUBPNT)=MLENGG SUBCNT=SUBCNT+1 SUBPNT=SUBPNT+MLENG+1 GOTO 91C ASKSU 216 CONTINUE IF (SUBCNT .EQ. 5) GOTO 91H SUB(SUBCNT)=SUBPNTL$ IF (STRING(SELSTR+1) .EQ. '(') THEN MLENG=0 LENGTH=LENGTH-1 IF (LENGTH .LE. 0) GOTO 91R SELSTR=SELSTR+2 DO 1216, J=1,LENGTH) IF (STRING(SELSTR) .EQ. ')') GOTO 2216 " SUBBUF(SUBPNT+J)=STRING(SELSTR) MLENG=MLENG+1 SELSTR=SELSTR+1 1216 CONTINUES GOTO 91 2216 CONTINUE5 LENGTH=LENGTH-MLENG-2 IF (LENGTH .LE. 0) GOTO 91S SELSTR=SELSTR+1 CALL CLR (CLEAR,WHOLE,SCOPE)T7 WRITE (6) ('15'O,'12'O,(STRING(SELSTR+J), J=1,LENGTH)) & CALL WTQIO (READF1,6,2,,TTSTAT,PARM9) IF (BTSTAT(2) .NE. 13) GOTO 92H LENGTH=TTSTAT(2)N3 IF ((LENGTH .EQ. 1) .AND. (BMCR(1) .EQ. '?') .AND.S% 9 (SELECT(SELFUN) .EQ. 36)) GOTO 600R IF (LENGTH .EQ. 0) GOTO 4216 SUBBUF(SUBPNT)=LENGTH DO 3216, J=1,LENGTH SUBBUF(SUBPNT+J)=BMCR(J)C SUBCNT=SUBCNT+1 3216 CONTINUE5 SUBPNT=SUBPNT+LENGTH+10075#"7"" cTADATADATA GOTO 91 4216 CONTINUES SUBBUF(SUBPNT)=MLENG SUBCNT=SUBCNT+1 SUBPNT=SUBPNT+MLENG+1 GOTO 91 ELSER CALL CLR (CLEAR,WHOLE,SCOPE)C;5216 WRITE (6) ('15'O,'12'O,(STRING(SELSTR+J), J=1,LENGTH)) & CALL WTQIO (READF1,6,2,,TTSTAT,PARM9) IF (BTSTAT(2) .NE. 13) GOTO 92  MLENG=TTSTAT(2)2 IF ((MLENG .EQ. 1) .AND. (BMCR(1) .EQ. '?') .AND.% 9 (SELECT(SELFUN) .EQ. 36)) GOTO 600D IF (MLENG .EQ. 0) GOTO 5216 SUBBUF(SUBPNT)=MLENGB DO 6216, J=1,MLENGI SUBBUF(SUBPNT+J)=BMCR(J) 6216 CONTINUE2 SUBPNT=SUBPNT+MLENG+1 SUBCNT=SUBCNT+1 GOTO 91 ENDIFC BATCH 217 CONTINUE SPWN=4 GOTO 91C TEXTE 218 CONTINUE 237 CONTINUE SELSTR=SELSTR+1 MLENG=1 LENGX=0 1257 CONTINUE : IF ((STRING(SELSTR) .NE. '#') .OR. (STRING(SELSTR+1) .NE.' 9 '#') .OR. (LENGTH .LT. 3)) GOTO 42571 LENG=(STRING(SELSTR+2)-48).0 IF ((LENG .LE. 0) .OR. (LENG .GT. 4)) GOTO 4257 SPNT=SUB(LENG)2 IF (SPNT .EQ. 0) GOTO 3257 LENG=SUBBUF(SPNT) SPNT=SPNT+1 2257 CONTINUE2 IF (LENG .EQ. 0) GOTO 3257T BMCR(MLENG)=SUBBUF(SPNT)G LENGX=LENGX+1 MLENG=MLENG+1 SPNT=SPNT+1 LENG=LENG-1 GOTO 2257 3257 CONTINUEN SELSTR=SELSTR+3 LENGTH=LENGTH-3 IF (LENGTH .EQ. 0) GOTO 91C GOTO 1257 4257 CONTINUE) BMCR(MLENG)=STRING(SELSTR)R LENGX=LENGX+1 SELSTR=SELSTR+1 MLENG=MLENG+1 LENGTH=LENGTH-1 IF (LENGTH .NE. 0) GOTO 1257  IF (FUNC .EQ. 37) GOTO 1237 CALL CLR (CLEAR,WHOLE,SCOPE)E IF (BMCR(1) .EQ. 34) THEN3 WRITE (6) ('15'O,'12'O,(BMCR(J), J=2,LENGX),'15'O). ELSE33 WRITE (6) ('15'O,'12'O,(BMCR(J), J=1,LENGX),'15'O)E ENDIF GOTO 91 C INQUIRE 219 CONTINUE CALL CLR (CLEAR,WHOLE,SCOPE)R TYPE 1002 IF (LOCK .EQ. 1) THEN READ (5,2001,END=91) YESNO7 ELSEU READ (5,2001,END=99) YESNOR ENDIF> IF ((YESNO(1:1) .EQ. 'Y') .OR. (YESNO(1:1) .EQ. 'y')) GOTO 92 GOTO 91C EXIT5 220 CONTINUE GOTO 99 C PASSWORDL 221 CONTINUE IF (RTURN .EQ. 1) GOTO 91 CALL WTQIO ('2000'O,6)( DO 1221, J=1,LENGTH PASS1(4+J)=(STRING(SELSTR+J)) 1221 CONTINUE1 CALL CLR (CLEAR,WHOLE,SCOPE)- CALL SPAWN (CLI,,,1,,SPSTAT,,PASS1,LENGTH+4) CALL STOPFR (1) IF (SPSTAT(1) .EQ. 1) GOTO 91 IF (INITP .EQ. 0) GOTO 97 TYPE 1006 IF (LSTLST(1) .EQ. 0) GOTO 89 CALL DELAY DO 2221,J=1,30N BILNAM(J)=LSTLST(J) 2221 CONTINUE' RTURN=1 GOTO 50C WHOLE 222 CONTINUE WHOLE=1 IF (SCOPEP(2) .EQ. 0) GOTO 91 SELBUF(6)=48Q SELBUF(7)=49 SCREEN(3)=500 SCREEN(4)=52  SCREEN(15)=48 SCREEN(16)=49 GOTO 91C SPLIT 223 CONTINUE IF (SCOPEP(2) .EQ. 0) GOTO 91 WHOLE=0 SCREEN(3)=CNUMS(1,LINE+1) SCREEN(4)=CNUMS(2,LINE+1) SCREEN(15)=CNUMS(1,LINE+1)T SCREEN(16)=CNUMS(2,LINE+1)T SELBUF(6)=CNUMS(1,LINE+1) SELBUF(7)=CNUMS(2,LINE+1) GOTO 91C CLI 224 CONTINUE IF (LENGTH .GT. 6) GOTO 91I DO 1224, J=1,6 LENGTH=LENGTH-1 SELSTR=SELSTR+1 IF (LENGTH .GE. 0) THEN BLIBUF(12+J)=STRING(SELSTR) ELSES BLIBUF(12+J)=32 ENDIF 1224 CONTINUES+ CALL SPAWN (CLIMCR,,,1,,SPSTAT,,CLIBUF,18)N CALL STOPFR (1) IF (SPSTAT(1) .NE. 1) GOTO 91 CLIMOD=11 GOTO 91C AGAIN 225 CONTINUE CALL CLR (CLEAR,WHOLE,SCOPE)S TYPE 1000 IF (LOCK .EQ. 1) THEN READ (5,2001,END=91) YESNOU ELSEN READ (5,2001,END=99) YESNO  ENDIF? IF ((YESNO(1:1) .NE. 'Y') .AND. (YESNO(1:1) .NE. 'y')) GOTO 91H STPER=STPERDS SPWN=SPWND CLEAR=CLEARD SILNT=SILNTDU SELFUN=SELPNT(TTSEL) GOTO 91 C CONTINUEJ 226 CONTINUE SPWN=5I GOTO 91C BLOCK 227 CONTINUE CALL CLR (CLEAR,WHOLE,SCOPE)) TYPE 1001 IF (LOCK .EQ. 1) THEN READ (5,2001,END=91) YESNO ELSEO READ (5,2001,END=99) YESNOS ENDIF GOTO 91 C PROMPTE 228 CONTINUE CURSOR=0, GOTO 91 C DISALLOW 229 CONTINUE ALLOW=1 GOTO 91C ALLOW 230 CONTINUE ALLOW=0 GOTO 91C SLAVE 231 CONTINUE+ CALL SPAWN (CLIMCR,,,1,,SPSTAT,,SLVBUF,14)T1231 CALL STOPFR (1) GOTO 91C FREE 232 CONTINUE+ CALL SPAWN (CLIMC007=#"4"!!! !R,,,1,,SPSTAT,,NOSLVB,16) GOTO 1231 C TIMEOUT 233 CONTINUE- DECODE (LENGTH,2000,STRING(SELSTR+1)) FLAGEXR2 IF ((FLAGEX .GT. 0) .AND. (FLAGEX .LT. 256)) THEN PARM1(3)=FLAGEX PARM9(3)=FLAGEX READF1='1200'ON READF2='1230'OT ELSE PARM1(3)=0 PARM9(3)=0A READF1='1000'O READF2='1030'OT ENDIF GOTO 91 C PRIVILEGE 234 CONTINUE CALL WTQIO ('2000'O,6), DO 1234, J=1,LENGTH PASS2(4+J)=(STRING(SELSTR+J)) 1234 CONTINUE  CALL CLR (CLEAR,WHOLE,SCOPE),- CALL SPAWN (CLI,,,1,,SPSTAT,,PASS2,LENGTH+4) CALL STOPFR (1). IF (IAND(SPSTAT(1),'000001'O) .EQ. 0) GOTO 91! FLAGEX=IAND(SPSTAT(1),'177776'O)5+ IF (IAND(PRVMSK,1) .EQ. 1) FLAGEX=FLAGEX+1X PRVMSK=FLAGEX GOTO 91C IF' 235 CONTINUE R2 IF ((LENGTH .GT. 2) .OR. (LENGTH .LE. 0)) GOTO 91 FLAGEX=0 IF (LENGTH .EQ. 2) THEN( IF (STRING(SELSTR+1) .NE. 49) GOTO 91 FLAGEX=10 SELSTR=SELSTR+1 ENDIF; IF ((STRING(SELSTR+1) .LE. 47) .OR. (STRING(SELSTR+1) .GT.O 9 58)) GOTO 91L$ FLAGEX=FLAGEX+(STRING(SELSTR+1)-48)3 IF ((FLAGEX .LT. 0) .OR. (FLAGEX .GE. 17)) GOTO 91. IF (FLAGEX .EQ. 0) THEN4 IF ((SETFLG .EQ. 1) .AND. (FUNC .EQ. 35)) GOTO 914 IF ((SETFLG .EQ. 0) .AND. (FUNC .EQ. 49)) GOTO 91 ELSE30 IF ((IAND(BMASK(FLAGEX),PRVMSK) .NE. 0) .AND. 9 (FUNC .EQ. 35)) GOTO 910 IF ((IAND(BMASK(FLAGEX),PRVMSK) .EQ. 0) .AND. 9 (FUNC .EQ. 49)) GOTO 91 ENDIF: IF ((INITP .EQ. 1) .AND. (SELCT1(SELFUN) .EQ. 0)) GOTO 95: IF ((INITP .EQ. 0) .AND. (SELECT(SELFUN) .EQ. 0)) GOTO 92 SELFUN=SELFUN+21 IF ((DEBUG .EQ. 0) .AND. (SILNT .EQ. 1)) GOTO 91  CALL CLR (CLEAR,WHOLE,SCOPE)H TYPE 1005 CALL DELAY) GOTO 91C ASK?) 236 CONTINUE GOTO 91C TITLE 1237 CONTINUEG IF (SCOPEP(2) .EQ. 0) GOTO 910 IF ((WHOLE .EQ. 0) .OR. (CLEAR .NE. 1)) GOTO 91 CALL CLR (CLEAR,WHOLE,SCOPE)E WRITE (6) ('33'O,'[3;24r')U IF (SILNT .EQ. 1) THENF, WRITE (6) ((BMCR(J), J=1,LENGX),13,10,10) ELSE)) WRITE (6) ((BMCR(J), J=1,LENGX),13,10)( ENDIF TOPFLG=1 GOTO 91C TOP 238 CONTINUE IF (SCOPEP(2) .EQ. 0) GOTO 910 IF ((WHOLE .EQ. 0) .OR. (CLEAR .NE. 1)) GOTO 91 CALL CLR (CLEAR,WHOLE,SCOPE)  WRITE (6) ('33'O,'[3;24r') TOPFLG=1T GOTO 91 C CHOICE 239 CONTINUE IF (SCOPEP(2) .EQ. 0) GOTO 910 IF ((WHOLE .EQ. 0) .OR. (CLEAR .NE. 1)) GOTO 91 CALL CLR (CLEAR,WHOLE,SCOPE) WRITE (6) ('33'O,'[3;24r')Q+ WRITE (6) ((SCREEN((CHOPNT(1,TTSEL))+J-1),) 9 J=1,CHOPNT(2,TTSEL)),13,10) TOPFLG=1 GOTO 91C LOCKD 240 CONTINUE LOCK=11 GOTO 91 C UNLOCKN 241 CONTINUE LOCK=0) GOTO 91C ONL 242 CONTINUE LOGOFF=01 GOTO 91C OFF 243 CONTINUE LOGOFF=1W GOTO 91C ERASE 244 CONTINUE IF (SCOPEP(2) .EQ. 0) GOTO 91 IF (WHOLE .EQ. 1) GOTO 245  CALL WTQIO('410'O,6,2,,,PARM4). WRITE (6) (27,'[J') 1 GOTO 91C RESET 245 CONTINUE IF (SCOPEP(2) .EQ. 0) GOTO 91 WRITE (6) (27,'[1,24r',27,'[J') GOTO 91 C MAINTAINT 246 CONTINUE OVERID=1 GOTO 91 C OVERRIDE4 247 CONTINUE OVERID=0  GOTO 91C DELAY 248 CONTINUE- DECODE (LENGTH,2000,STRING(SELSTR+1)) FLAGEXF IF (FLAGEX .EQ. 0) GOTO 91  CALL MARK (2,FLAGEX,2)  CALL STOPFR (2) GOTO 91C IFNOT 249 CONTINUE GOTO 235W C XSTATUS 250 CONTINUE- DECODE (LENGTH,2000,STRING(SELSTR+1)) FLAGEXJ GOTO 1099C ZEROR 251 CONTINUE GOTO 1375C END 252 CONTINUE IF (INITP .EQ. 1) GOTO 95 GOTO 92C SET 253 CONTINUE- DECODE (LENGTH,2000,STRING(SELSTR+1)) FLAGEX4. IF ((FLAGEX .EQ. 0) .OR. (FLAGEX .EQ. 1))THEN IF (FLAGEX .EQ. 0) SETFLG=0 IF (FLAGEX .EQ. 1) SETFLG=1 ELSEA FLAGEX=IAND(FLAGEX,'177776'O)- IF (IAND(PRVMSK,1) .EQ. 1) FLAGEX=FLAGEX+1  PRVMSK=FLAGEX ENDIF GOTO 91C HALT INIT PROCESS 254 CONTINUE IF (RTURN .EQ. 0) GOTO 94 GOTO 95 C KILL LAST REQUEST 255 CONTINUE ENDTSK=0E GOTO 91C CHAIN 256 CONTINUE SPWN = -1 GOTO 201 C SHOW SCRIPT FILENAMED 257 CONTINUE TYPE 007E#"7"" cTADATADATA1014,FILNAMA GOTO 91C HELP FROM THE MENUA 400 CONTINUE TTSEL=TTSEL-100 SELFUN=SELPNT(TTSEL)  IF (SELFUN .EQ. 0) GOTO 444 CALL WTQIO ('2000'O,6)E'401 IF (SELECT(SELFUN) .EQ. 0) GOTO 444 $ IF (SELECT(SELFUN) .EQ. 2) GOTO 410 SELFUN=SELFUN+2 GOTO 401N 410 CONTINUE' IF (SELECT(SELFUN+1) .EQ. 0 ) GOTO 444G SELSTR=SELECT(SELFUN+1) LENGTH=STRING(SELSTR)( IF (STRING(SELSTR+1) .EQ. '(') GOTO 420) IF (STRING(SELSTR+1) .EQ. '"') GOTO 430 TC PASS STRING TO "HELP" DO 415, J=1,LENGTHT HELP1(5+J)=(STRING(SELSTR+J)) 415 CONTINUE CALL CLR (CLEAR,WHOLE,SCOPE)T( IF ((SILNT .EQ. 0) .OR. (DEBUG .EQ. 1))9 9 WRITE (6) ('15'O,'12'O,(HELP1(J), J=1,LENGTH+5),'15'O)G- CALL SPAWN (CLI,,,1,,SPSTAT,,HELP1,LENGTH+5) GOTO 427FC PASS STRING TO "TYPE" 420 CONTINUE DO 425, J=1,LENGTHG HELP2(8+J)=(STRING(SELSTR+J)) 425 CONTINUE CALL CLR (CLEAR,WHOLE,SCOPE)R( IF ((SILNT .EQ. 0) .OR. (DEBUG .EQ. 1))9 9 WRITE (6) ('15'O,'12'O,(HELP2(J), J=1,LENGTH+8),'15'O) - CALL SPAWN (CLI,,,1,,SPSTAT,,HELP2,LENGTH+8)) 427 CONTINUE CALL STOPFR (1) TYPE 1001 IF (LOCK .EQ. 1) THEN READ (5,2001,END=97) YESNO( ELSE1 READ (5,2001,END=99) YESNO5 ENDIF GOTO 97C USE STRING AS HELP TEXT 430 CONTINUE SELSTR=SELSTR+1 LENGTH=LENGTH-2= WRITE (6) ('15'O,'12'O,(STRING(SELSTR+J), J=1,LENGTH),'15'O) TYPE 1001 IF (LOCK .EQ. 1) THEN READ (5,2001,END=97) YESNO. ELSE  READ (5,2001,END=99) YESNO1 ENDIF GOTO 97 444 CONTINUE TYPE 1004 CALL DELAY, GOTO 97C TIMEOUT PROCESSINGT 500 CONTINUE CALL CLR (CLEAR,WHOLE,SCOPE)C TYPE 1010 GOTO 89C HELP FROM ASK/ASKS PROMPT 600 CONTINUE SELFUN=SELFUN-2 CALL WTQIO ('2000'O,6)E 610 CONTINUE SELSTR=SELECT(SELFUN+1) LENGTH=STRING(SELSTR)( IF (STRING(SELSTR+1) .EQ. '(') GOTO 620) IF (STRING(SELSTR+1) .EQ. '"') GOTO 630 C PASS STRING TO "HELP" DO 615, J=1,LENGTHE HELP1(5+J)=(STRING(SELSTR+J)) 615 CONTINUE CALL CLR (CLEAR,WHOLE,SCOPE)( IF ((SILNT .EQ. 0) .OR. (DEBUG .EQ. 1))9 9 WRITE (6) ('15'O,'12'O,(HELP1(J), J=1,LENGTH+5),'15'O)S- CALL SPAWN (CLI,,,1,,SPSTAT,,HELP1,LENGTH+5)A GOTO 627C PASS STRING TO "TYPE" 620 CONTINUE DO 625, J=1,LENGTH1 HELP2(8+J)=(STRING(SELSTR+J)) 625 CONTINUE CALL CLR (CLEAR,WHOLE,SCOPE)R( IF ((SILNT .EQ. 0) .OR. (DEBUG .EQ. 1))9 9 WRITE (6) ('15'O,'12'O,(HELP2(J), J=1,LENGTH+8),'15'O) - CALL SPAWN (CLI,,,1,,SPSTAT,,HELP2,LENGTH+8)) 627 CONTINUE CALL STOPFR (1) TYPE 1001 IF (LOCK .EQ. 1) THEN READ (5,2001,END=91) YESNO( ELSE1 READ (5,2001,END=99) YESNO5 ENDIF GOTO 91C USE STRING AS HELP TEXT 630 CONTINUE SELSTR=SELSTR+1 LENGTH=LENGTH-2= WRITE (6) ('15'O,'12'O,(STRING(SELSTR+J), J=1,LENGTH),'15'O) TYPE 1001 IF (LOCK .EQ. 1) THEN READ (5,2001,END=91) YESNO. ELSE  READ (5,2001,END=99) YESNO1 ENDIF GOTO 91C HELP FROM MENU PROMPT 700 CONTINUE CALL WTQIO ('2000'O,6)6 IF ((BMCR(1) .EQ. '?') .AND. (MLENG .EQ. 1)) GOTO 7206 IF ((BMCR(1) .NE. '?') .AND. (MLENG .EQ. 4)) GOTO 720C HAS A STRING TO PASS TO HELPF DO 705, J=1,MLENG MLENG=MLENG-1 FLAGEX=JT8 IF ((BMCR(J) .EQ. 32) .OR. (BMCR(J) .EQ. 9)) GOTO 710 705 CONTINUE GOTO 97 710 CONTINUE DO 715, J=1,MLENG HELP1(5+J)=(BMCR(FLAGEX+J)) 715 CONTINUE CALL CLR (CLEAR,WHOLE,SCOPE)5( IF ((SILNT .EQ. 0) .OR. (DEBUG .EQ. 1))8 9 WRITE (6) ('15'O,'12'O,(HELP1(J), J=1,MLENG+5),'15'O), CALL SPAWN (CLI,,,1,,SPSTAT,,HELP1,MLENG+5) GOTO 727OC NO STRING, USE A CANNED ONE 720 CONTINUE CALL CLR (CLEAR,WHOLE,SCOPE) ( IF ((SILNT .EQ. 0) .OR. (DEBUG .EQ. 1))2 9 WRITE (6) ('15'O,'12'O,(HELP3(J), J=1,9),'15'O)& CALL SPAWN (CLI,,,1,,SPSTAT,,HELP3,9) 727 CONTINUE CALL STOPFR (1) TYPE 1001 IF (LOCK .EQ. 1) THEN READ (5,2001,END=97) YESNO  ELSEE READ (5,2001,END=99) YESNOE ENDIF GOTO 300.C OUTPUT TEXT<1000 FORMAT(/,X,'Do you wish to repeat this selection: ',$)91001 FORMAT(/,X,'Please pres007M#8P#"!!! !s "RETURN" to continue: ',$) :1002 FORMAT(/,X,'Do you wish to halt this selection: ',$)&1003 FORMAT(/,X,'Selection Not Found')31004 FORMAT(/,X,'No Help Found for This Selection')1)1005 FORMAT(/,X,'Privileged Insufficent'), 1006 FORMAT(/,X,'Access Denied')&1007 FORMAT(X,'File Process Error ',A)(1008 FORMAT(X,'Syntax Error on Line ',I)*1009 FORMAT(X,'Command Line Syntax Error')'1010 FORMAT(X,'Terminal Time-Out Exit')R 1011 FORMAT(X,'Opening File ',A)A1012 FORMAT(X,'CLR ',I1,' SIL ',I1,' FOR ',I1,' SPN ',I1,' WHO ',n2 9 I1,' LOG ',I1,' LCK ',I1,' CUR ',I1,' CLI ',I1)A1013 FORMAT(X,'ALL ',I1,' STP ',I1,' OVR ',I1,' LEV ',I1,' FNC ',R, 9 I2,' SEL ',I2,' LEN ',I2,' PRVMSK ',I7.1)(1014 FORMAT(X,'Present menu script: 'A)C INPUT FORMATS2000 FORMAT(I)2001 FORMAT(A)2002 FORMAT(Q,A) ENDC CLEAR SCREEN SUBROUTINE# SUBROUTINE CLR (CLEAR,WHOLE,SCOPE)y IMPLICIT INTEGER*2 (A-Z),0 IF ((CLEAR .EQ. 0) .AND. (WHOLE .EQ. 1)) RETURN IF (SCOPE .EQ. 0) THENR WRITE (6) (10,10,13)I CLEAR=0 RETURN ENDIF , IF (CLEAR .EQ. 0) THEN' WRITE (6) (27,'[24;1H') RETURNT ENDIF CLEAR=0. IF (WHOLE .EQ. 1) WRITE (6) (27,'[H',27,'[J')& IF (WHOLE .EQ. 0) WRITE (6) (27,'[J') RETURN  ENDC DELAY SUBROUTINE0 SUBROUTINE DELAYR CALL MARK (2,2,2) CALL STOPFR (2) RETURNU END# SUBROUTINE CLR (CLEAR,WHOLE,SCOPE)y IMPLICIT INTEGER*2 (A-Z),0 IF ((CLEAR .EQ. 0) .AND. (WHOLE .EQ. 1)) RETURN IF (SCOPE .EQ. 0) THENR WRITE (6) (10,10,13)I ( The following are the availible topics:, ATTRIBUTES CONTROL DEBUG INPUT STRUCTURE- SUBSTITUTION SYNTAX SUMMARY (CONTROL ITEMS) 6 Valid control items following a field seperator, "]": ALPHA BLANK NUMBER REPEAT: Valid control items following a control item symbol, "%": ALLOW AGAIN ASK ASKS ASK?" BATCH BLOCK CALL CHOICE CLEAR% CLI CONTINUE DEBUG DELAY DISALLOW END ERASE EXIT FREE GOTO! GRAPHIC HOLD IF IFNOT INQUIRY. KILL LAST LAST LOCK MAINTAIN FLAGS NO CLEAR+ OFF ON OVERRIDE FLAGS PASSWORD PRIVILEGET- PROCEED ON ERR PROMPT PROTECT QUERY RESETT" RETURN SET SILENT SLAVE SPLIT& STOP ON ERR TEXT TIMEOUT TITLE TOP& UNLOCK VERBOSE WAIT WHOLE XSTATUS ZERO ?/HELPI All items can be called by the smallest unique character string, such as % "TE" for "TEXT", and "G" for "GOTO".C 2 STRUCTURE Basic StructureL Menu scripts are divivded into three fields: (1) Title and Initialization;L (2) Selection and Action; and (3) Prompt. Each field is separated from the6 others by a "]" as the first character on a new line.N In the Title and Initialization field, text is included in the screen buffer.O Action and control items are processed prior to outputting the initial screen.cJ The final state of the control flags will be used as the defaults for the Selection and Action field.O In the Selection and Action field, text is included in the screen buffer. AnyTJ line without control or action item is considered to be a selection text.L Selection items are seperated from each other by the presents of control orM action items lines. Selection items can have multiple lines. Control flagsb; will effect only the current selection that modified them.u+ In the Prompt field, only text is allowed. 2 SUMMARY O Valid Title and Initialization Control Items (Least unique string capitolized)h: ALlow ASK (insert) text ASKS (default) text ASKS text0 ASK? text ASK? (filespec) ASK? "text" BAtch' BLock CLEar CLI cliname COntinueS$ DEBug DELay n DIsallow ENd+ EXit Free Graphic command HAlt init " HOld IF n IFNot n INquiry+ Kill last LAst command LOck Maintaine No clear OFf ON OVerride: PAssword #/name PRIvilege #/name PROCeed on err PROMpt! PROTect Query Return SEt nI& SIlent SLave SPlit STop on err. TExt text/"text" TImeout n Unlock Verbose WAit WHoleuQ Valid Selection and Action Field Control Items (Least unique string capitolized)r: AGain ASK (in008U#"7"" cTADATADATAsert) text ASKS (default) text ASKS text0 ASK? text ASK? (filespec) ASK? "text" BAtch' BLock CAll filespec CHoice CLeara" COntinue Delay n ENd ERase) EXit Free Goto filespec HElp textr+ HElp (filespec) HElp "text" HOld IF nR. IFNot n INquiry No clear PAssword #/name/ PRIvilege #/name PROceed on err Query RESett! RETurn SEt n SIlent SLavei0 STop on err TExt text/"text" TItle text TOp" Verbose Wait Xstatus n Zero# ? text ? (filespec) ? "text" t2 SYNTAX Syntax SummaryKN A. There are three fields. a Title, a Selection, and a Prompt area which are9 separated by a "]" as the first character in a line. L B. All commands to be passed to the Operating System for execution must be preceeded by a "$".M C. All control commands used by the interpreter must be preceeded by a "%".rK D. Both field separaters must be present, even if the Title or the Prompt fields have no content.N E. There must be at least one selection text and control and/or command item in the Selection fielde 2 CONTROL, Control Characters and Items K There are five control characters. All but one of the control character'soM meaning is position dependent. The only character not position dependent is$G the "\". This character is used as a field delimitter and is treated G essentially as an end-of-line or an end-of-record. The other control lJ characters who has meaning only as the first character of a new line are:A The "]" is used as a field separtor. (See HELP SCRIPT STRUCTURE)e- The ";" is used as a comment line indicator.r+ The "%" is used to preceed a control item.c+ The "$" is used to preceed an action item.oO All items that are not preceeded by a control character are used as menu text.N Leading spaces and tabs are NOT counted as characters in the case of definingL a Control Character as the first character on a line. Also spaces and tabsL immediately following a Control Character are ignored. This allows the use' of indentation for clarity in scripts.TF (An item is defined as a string of characters that is terminated by a$ delimitter or an end-of-line .)2 NUMBER ]NUMBER (Default State)L A formatting control item that will generate a numeric selection prompt for each succeeding items. Example:e- Delete a file equals " 1 Delete a file"i2 List a directory equals " 2 List a directory") Type a file equals " 3 Type a file"l$ (Also See ALPHA, REPEAT, and BLANK)2 ALPHAs ]ALPHAJ A formatting control item that takes the first character of the selectionO and uses it as the selection prompt, that character is not further used in theU output buffer.e Example:). DDelete a file equals " D Delete a file"8 LDirectory of files equals " L Directory of files"% (Also See NUMBER, REPEAT, and BLANK) 2 REPEAT ]REPEATJ A formatting control item that takes the first character of the selection( and repeats it as the selection prompt. Example:N- Delete a file equals " D Delete a file" 2 List a directory equals " L List a directory"$ (Also See NUMBER, ALPHA, and BLANK)2 BLANKt ]BLANK D A formatting control item that displays no character as a selection prompt. Example:a' Delete a file equals " Delete a file" , List a directory equals " List a directory"% (Also See NUMBER, ALPHA, and REPEAT)A2 CLEAR  %CLEAR (Default State)hN An action control item flag that will cause the screen to be cleared prior toL the execution of the first action item or control item that produces outputN to the screen. To re-clear the screen during the proccessing of a selection,M the flag must be set again within the selection. This flag only effects theiN selection where it is encountered, subsequent selection revert to the defaultK flag. (This is a valid initialization field control item which will then : become the default flag if set at the end of processing.) (Also see NO CLEAR) 2 NO CLEAR %NO CLEARM An action control item flag008]#P#"!!! ! that will prevents the screen from being cleareduO prior to the execution of any action or control item. This flag only effects oJ the selection where it is encountered, subsequent selection revert to theM default flag. (This is a valid initialization field control item which willd then become the default flag.)i (Also see CLEAR)o 2 STOP ON ERRw %STOP ON ERR (Default State) N An action control item flag that prevents further execution of a selection ifM an action item returns an exit status of non-one (one being a success code). I This flag only effects the selection where it is encountered, subsequent M selection revert to the default flag. (This is a valid initialization fieldv7 control item which will then become the default flag.)o (Also see PROCEED ON ERR) 2 PROCEED ON ERR %PROCEED ON ERRL An action control item flag that allows further execution of a selection noK matter what exit status is returned. This flag only effects the selectioncJ where it is encountered, subsequent selection revert to the default flag.J (This is a valid initialization field control item which will then become the default flag.)e (Also see STOP ON ERR)v2 SILENT %SILENT (Default State)O An action control item flag that will cause the silent submission of an actionG item to be executed. This flag only effects the selection where it isoJ encountered, subsequent selection revert to the default flag. (This is aK valid initialization field control item which will then become the defaultt flag.)n (Also see VERBOSE)f 2 VERBOSEi %VERBOSEnK An action control item flag that will cause the action item to be executedN to be displayed on the screen prior to its execution. This flag only effectsJ the selection where it is encountered, subsequent selection revert to theM default flag. (This is a valid initialization field control item which will  then become the default flag.)e (Also see SILENT)2 QUERYd %QUERY (Default State)tK An action control item flag that causes the script interpreter to wait forfJ the completion of an action item before continuing. If an exit status ofN non-one is returned, and there are additional items in the selection then theJ screen is held and the user is asked whether to continue with the furtherN execution of the selection. If there were no more items then the interpreterN will treat the case as a WAIT. This selection will override the state of theN "STOP/PROCEED ON ERR" flag. This flag only effects the selection where it isJ encountered, subsequent selection revert to the default flag. (This is aK valid initialization field control item which will then become the default  flag.)l* (Also see WAIT, CONTINUE, HOLD and BATCH)2 WAIT %WAITK An action control item flag that causes the script interpreter to wait forfJ the completion of an action item before continuing. If an exit status ofI non-one is returned, then the screen is held and the user is prompted tofL enter a to continue. Further execution of the selection is determinedL by the state of the "STOP/PROCEED ON ERR" flag. This flag only effects theN selection where it is encountered, subsequent selection revert to the defaultJ flag. (This is a valid initialization field control item which will then become the default flag.)+ (Also see QUERY, CONTINUE, HOLD and BATCH)i 2 CONTINUE %CONTINUEK An action control item flag that causes the script interpreter to wait for L the completion of an action item before continuing. The exit status is notI examined. This flag only effects the selection where it is encountered,sC subsequent selection revert to the default flag. (This is a validtL initialization field control item which will then become the default flag.)' (Also see QUERY, WAIT, HOLD and BATCH) 2 HOLD %HOLDK An action control item flag that causes the script interpreter to wait forcI the completion of an action item, hold the screen and prompt the user toeK enter a to continue. Further execution of the selection i008e#"7"" cTADATADATAs determineaL by the state of the "STOP/PROCEED ON ERR" flag. This flag only effects theN selection where it is encountered, subsequent selection revert to the defaultJ flag. (This is a valid initialization field control item which will then become the default flag.)+ (Also see QUERY, WAIT, CONTINUE and BATCH)g2 BATCHs %BATCHpK An action control item flag that causes the script interpreter to continuenF immediately after the requesting of an action item. The the state ofM "STOP/PROCEED ON ERR" flag is ignored. This flag only effects the selection.J where it is encountered, subsequent selection revert to the default flag.J (This is a valid initialization field control item which will then become the default flag.)h* (Also see QUERY, WAIT, HOLD and CONTINUE)2 ASKE %ASK (insert) textdJ A prompting control item, that causes the text to be outputted and a "yesJ or no" response is expected where a lone is defaulted to a "no". IfE the response is "yes" or "Yes" then the "insert" text is used as theT substitution. (Also see ASKS)2 ASKS %ASKS (default) textqN A prompting control item, that causes the text to be outputted and a responseN expected. if the response is a lone , then the "default" text is used as: the substitution. The "default" text can have no length. %ASKS textnN A prompting control item, that causes the text to outputted and a response isJ required. The response must have length and is used as the substitution. (Also see ASK)e 2 PROTECTi %PROTECThM A control item that allows only privileged users from entering a menu. Thiso: item is only valid in the Title and Initailization Field.2 CLIn %CLI cliname I An action control item that tells the script interpreter to which CLI tobI pass the command. The default state of interpreter is that of terminal.pJ (This is a valid Initialization field control item which will then become the default option.)s 2 TIMEOUT %TIMEOUT nsH A control item that enters an input timeout value for the selection andM prompt items. The timeout length is equal to 10 seconds times n, where n is O a number between 1 and 255. Valid only in the Title and Initialization field.A2 DELAYn %DELAY nhN A control item that causes the interpreter to stop for 'n' seconds, where 'n' is a number between 1 and 999. 2 PROMPT %PROMPTP A menu control item that causes the interpreter to prompt for user's selectionsJ without cursor pointer. Valid only in the Title and Initalization field.2 WHOLEf %WHOLE (Default State)oN A menu control item that causes the entire screen to used by the interpreter.1 Valid only in the Title and Initalization field.n (Also see SPLIT)d2 SPLITA %SPLITAL A menu control item that causes the interpreter to split the screen on the N execution of the selection. Valid only in the Title and Initalization field. (Also see WHOLE)i2 OVERRIDE FLAGS %OVERRIDE FLAGS (Default State)P A menu control item that allows a 'child' script to start with all flags in the normal, default states. (Also see MAINTAIN FLAG)t2 MAINTAIN FLAG  %MAINTAIN FLAGSM A menu control item that forces a 'child' script to adopt the flag states ofd its parent. (Also see OVERRIDE FLAG)m 2 DISALLOW %DISALLOWN A menu control item that prevents the execution of all following action itemsM in the the Title and Initialization field on a menu "RETURN". Valid only inR$ the Title and Initialization field. (Also see Allow)s2 ALLOWs %ALLOW (Default State)lL A menu control item that allows the execution of all following action itemsM in the the Title and Initialization field on a menu "RETURN". Valid only ino$ the Title and Initialization field. (Also see DISALLOW) 2 HALT INITI %HALT INITIALIZATION ON RETURNK A menu control item that halts the execution of the initialization sequnce B on a "RETURN". Valid only in the Title and Initialization field. (Also see ALLOW AND DISALLOW)2 SLAVEs %SLAVEs) A control item that slaves 008m#P#"!!! !the terminal.m (Also see FREE)2 FREE %FREE, A control item that un-slaves the terminal. (Also see SLAVE)a2 LOCK %LOCKM A control item that disables the user command submit (the input "!" option),eJ the script goto (the input "@" option), the script reset (the input "PF3"M option), and the script exit (the input "PF4" option) inputs. Valid only in $ the Title and Initialization field. (Also see UNLOCK)2 UNLOCK %UNLOCK (Default State)N A control item that turns off the "LOCK" control function. Valid only in the Title and Initialization field. (Also see LOCK)2 OFF( %OFFeI A control item that forces the terminal to be logged off when the scriptsF interpretor exits. Valid only in the Title and Initialization field. (Also see ON)2 ON %ON (Default)M A control item that turns off the "OFF" control function. Valid only in theT Title and Initialization field. (Also see OFF)2 ?O %? textL A help control item that causes the interpreter to request the Help ProcessL with the text appended as a topic descriptor. The following control statesO are used for the Help request: (1) PROCEED ON ERR, (2) HOLD on RSX or WAIT one2 VMS, and (3) the CLEAR/NO CLEAR flag is examined. a %? (filespec)L A help control item that causes the interpreter to request the Type ProcessK with the filespec appended. The following control states are used for theoN Type request: (1) PROCEED ON ERR, (2) HOLD, and (3) the CLEAR/NO CLEAR flag is examined.r %? "text"N A help control item that causes the interpreter to write the text to the userL The following control states are used: (1) HOLD, and (2) NO CLEAR. (There is no process requested.) (Also see ASK?)2 ASK?# %ASK? text or (filespec) or "text"lG A help contorl item for the prompt item that must be coupled directly wH following the prompt item in the script. The source of the help is theB same as the normal help control items; see the above three items. (Also see ?) 2 DEBUG %DEBUGxL A control item that will cause the interpreter to display the current stateN of all important flags between the execution of all items. It is also causesN the interpreter to act as though the verbose flag was set. This item is only- valid in the Title and Initialization Field.e2 TEXT %TEXT text/"text"M Outputs the text to the user. Text strings can be surrounded double quotes.lL To pass a null string or a linefeed to the user, you must use the quotes as in (%TEXT "").2 TITLE %TITLE textI A prompting control item, valid only when not in split screen mode, thatoI clears the screen and output the text to the user on the top line of thesI screen. It then set the scrolling margins so that the top title line is : preserved. Valid only in the Selection and Action Field. (Also see TOP and CHOICE)2 TOPx %TOPeI A prompting control item, valid only when not in split screen mode, thatiK clears the screen, homes the cursor and sets the scrolling margins so thatJ the next outputted text will be preserved. This is designed to work withJ the verbose mode, to allow the spawned command to be saved on the screen.. Valid only in the Selection and Action field. (Also see TITLE and CHOICE)2 CHOICE %CHOICEI A prompting control item, valid only when not in split screen mode, thataL will clear the screen, homes the cursor, displays the text of the selectionM from the menu, (first line only), and sets the scrolling margins so that thecF text will be preserved. Valid only in the Selection and Action field. (Also see TOP and TITLE) 2 INQUIRYm %INQUIRYoF Outputs text "Do you wish to halt this selection? ", to the user. A: "YES" response will stop the processing of the selection.2 AGAIN% %AGAINAH Outputs text "Do you wish to repeat this selection? ", to the user. AI "YES" response will restart the processing of the selection. Flags willnP be reset to their default state. Valid only in the Selection and Action field.2 BLOCKb %BLOCKeM Outputs t008u#"7"" cTADATADATAhe text "Please enter to continue: " to the user and wait for input.R2 ERASER %ERASEuK If in split screen, then the cursor is returned to the line below the menuoJ output, then the screen is cleared below it. If no in split screen, thenP it is treated as a screen reset. Valid only in the Selection and Action field.2 RESET SCREEN %RESET SCREENJ Clears all screen scroll control, homes the cursor and clears the screen.. Valid only in the Selection and Action field.2 GOTO %GOTO menuscript filespecI A control item that closes execution of the present script and opens theRK file listed for interpretation and execution. Valid only in the Selectionm and Action field.2 CALL %CALL menuscript filespecI A control item that closes execution of the present script and opens theeK file listed for interpretation and execution. The present script filenamecJ is saved on a stack for later return. The Call does not save any furtherL context than the filename and upon Return execution starts at the beginningO except for Initilization Password processing. Valid only in the Selection andd Action field.  (Also see RETURN)2 RETURN %RETURNK A control item that closes execution of the present script and attempts to G remove a filename from its stack. If there is no further names on thef. stack, then the return is treated as an Exit. t (Also see CALL)2 EXIT %EXITJ A control item that closes execution of the present script and causes the process to exit.e 2 XSTATUS %XSTATUS niM A control item that closes execution of the script and causes the process to K exit with the exit status word equal to the number "n". Valid only in thelG Selection and Action field and only when the LOGOFF flag is not set. v (See SCRIPT OFF)t t 2 PASSWORD %PASSWORD password nameL A control item that causes the password process to be invoked with the nameH given. When this item occurs within the Title and Initialization fieldL it controls entry into the entire menu screen, when this item occurs withinI a Selection and Action field, it controls the further processing of thati selection.t (Also see PRIVILEGE)m 2 PRIVILEGE  %PRIVILEGE password namedL A control item that causes the password process to be invoked with the nameK given. That process returns a 15 element mask that is used in determining  the results of the "IF" item.& (Also see PASSWORD, and IF and IFNOT)2 SET  %SET n P A control item loads "n" into the privilege mask. The low order privilege userN bit is not effected. SET 0 or SET 1 sets or clears an additional logic flag.1 (Also see PASSWORD, PRIVILEGE, and IF and IFNOT)E 2 GRAPHICL %GRAPHIC command stringnK A control item that submits the "command string" to be executed after each M menu screen is outputted and before any input is accepted. Item is designednG to allow the use of the DECUS VTM or VTN screen format output program.O2 LAST %LAST command stringN The command string is executed just prior to the process exiting. The stringN is NOT executed at script changes and has no effect on future scripts. Valid+ only in the Title and Initialization field (See SCRIPT KILL LAST)m 2 KILL LASTc %KILL LAST) Cancels the effects of the LAST command.t (See SCRIPT LAST)2 IF %IF nN A control item that matches the privilege mask with the number n (1 to 16) toM determine whether the next item of the selection should be executed. If theiE match fails then a message is outputted, if in verbose mode, and the I following item of the selection is skipped. The IF 0 command tests the s additional logic flag.t (Also see PRIVILEGE and SET)2 IFNOTC %IFNOT nAN A control item that matches the reverse of the privilege mask with the numberJ n (1 to 16) to determine whether the next item of the selection should beO executed. If the match fails then a message is outputted, if in verbose mode, O and the following item of the selection is skipped. The IFNOT 0 command testst the addit008}#P#"!!! !ional logic flag.h(Also see PRIVILEGE and SET)2 ENDp %ENDL A control item that stops the execution of a selection. Used in conjuctionG the "IF" and "IFNOT" control items to control the flow of a selection.e2 ZERO %ZEROaM A control item that closes the execution of the present script and opens thecI initial script entered by the user. The nesting level is then set to 1. . Valid only in the Selection and Action Field.2 SUBSTITUTION SubstitutionFL Substitution is handled on two levels, the first is based on strings passedM by the command line and replaces the sequence "\\n" where n is a number from.K 1 to 8. This sequence can occur anywhere in the script. The second level N is local to each selection with the strings aquired by the ASK and ASKS itemsJ of that selection. These strings are cleared before each selection. TheJ sequence that would be replaced is "##n" where n is a number from 1 to 4.I In both cases the order in which the string is aquired is related to thew number in the sequence. o t2 INPUTsL Valid cursor control inputs are: (1) arrow keys, (2) tab and backspace, (3)K space and "0". Selection with the cursor is done by a . Selection ofeL help with the cursor is done with a "?". All other characters are acceptedI as the beginning of a string input selection. Strings terminated with a G "" are processed as a selection request, Strings terminated with a1) "?" are processed as a help request.hP If the first character of the string is a "!" then the string is not treated asI a request. The following string is submitted as an Action item with the,H following control states: (1) CLEAR, (2) PROCEED ON ERR, and (3) WAIT.N If the first character is a "@" then the remainder of the string is used as a filespec for a "GOTO" action.M If the first character is a "?" then the rest of the string is treated as ansJ arguement to HELP. A lone "?" or "HELP"/"help" will get menu input help.F Function key also have meaning: PF1 is a screen reset; PF2 is a helpE request; PF3 is a process reset that will return to the first scripta4 entered by the process; and PF4 is an Exit request.2 DEBUG, Debug Output N When the interpreter is in debug mode, (either by the control item "DEBUG" orM by the inclusion of a "D" in the command invocation (SCRIPTDEBUG etc.)) then"J prior to the execution of each control or action item, it will output theO status of 16 important control flags and words. The output appears like this::6 CLR n SIL n FOR n SPN n WHO n LOG n LCK n CUR n CLI n4 ALL n STP n OVR n LEV n FNC n SEL n LEN n PRVMSK n where: E CLR = The status of the CLEAR Flag, which is set by the control itemW$ "CLEAR" and reset by "NO CLEAR".F SIL = The status of the SILENT Flag, which is set by the control item# "SILENT" and reset by "VERBOSE".)L FOR = The status of the screen format word, which is set by the first field= separtor item; 1 = "NUMBER", 2 = "ALPHA", 3 = "BATCH", andt 4 = "REPEAT".F SPN = The status of the action item control word, which can have the B following values: 1 = QUERY, 2 = WAIT, 3 = HOLD, 4 = BATCH, and 5 = CONTINUE.E WHO = The status of the WHOLE Flag, which is set by the control itemE "WHOLE" and reset by "SPLIT".F LOG = The status of the LOGOUT Flag, which is set by the control item "OFF" and reset by "ON". D LCK = The status of the LOCK Flag, which is set by the control item "LOCK" and reset by "UNLOCK".G CUR = The status of the CURSOR Flag, which is set by default and resetc by the "PROMPT" control item.G CLI = The status of the CLIMOD Flag, which is set when a "CLI" controlCE item is successfully executed. If this flag is set, it forces thenG interpreter to reset the terminal to its original CLI when it exits.LE ALL = The status of the ALLOW Flag, which is set by the control item # "ALLOW" and reset by "DISALLOW".gK STP = The status of the STOP ON ERR Flag, which is set by the control itemT/ "STOP ON ERR" and reset by "PROCE008#9#"" cTADATADATAED ON ERR".aH OVR = The status of the OVERRIDE Flag, which is set by the control item& "OVERRIDE" and reset by "MAINTAIN".I LEV = The status of the LEVEL control word which shows the nesting levelhD of the present script. Levels are decended by the "CALL" control% item and ascended by the "RETURN".WF FUNC = The control item/function about to be executed. See the table below for its meaning:f. 1 ACTION 2 HELP/? 3 GOTO 4 QUERY 5 WAIT< 6 HOLD 7 CLEAR 8 NO CLEAR 9 STOP ON ERR 10 PROCD ON ERR/ 11 SILENT 12 VERBOSE 13 CALL 14 RETURN 15 ASKt- 16 ASKS 17 BATCH 18 TEXT 19 INQUIRY 20 EXITy/ 21 PASSWORD 22 WHOLE 23 SPLIT 24 CLI 25 AGAINn4 26 CONTINUE 27 BLOCK 28 PROMPT 29 DISALLOW 30 ALLOW0 31 SLAVE 32 FREE 33 TIMEOUT 34 PRIVILEGE 35 IF+ 36 ASK? 37 TITLE 38 TOP 39 CHOICE 40 LOCKW+ 41 UNLOCK 42 ON 43 OFF 44 ERASE 45 RESETo5 46 MAINTAIN 47 OVERRIDE 48 DELAY 49 IFNOT 50 XSTATUSf2 51 ZERO 52 END 53 SET 54 HALT INIT 55 KILL LASTK SEL = The number of the selection chosen between 1 and 22 with 0 being theBG initialization process. Alpha input is converted to a numeric equalEC to its equivilent if the "NUMBER" screen format had been chosen.2H LEN = The length, if any, of the item/function's object string, such asF filename for the "GOTO" item or the number of the "TIMEOUT". Items4 such as "HOLD" or "CLEAR" have no object strings.I PRVMSK = The state of the Privilege Mask word, which is really a sixteenKE element bit mask. The high order fifteen bits are returned by thewC "PRIVILEGE" item, and the lowest order bit (the 1 bit) is set ord< cleared by whether the user is privileged (1) or not (0).N When evaluating the results, remember, that the output is prior to the actingN on the function in the "FNC n" field, therefore, whatever flags/control words> are modified by that function/item will not have taken place. 2 ATTRIBUTES Screen Attribute Control MacrosM There are a number of attributes that can be manipulated by a set of special L commands. These controls are valid in a text field that is to be displayedM on the menu, not in the text field of any control item. The syntax of theseeN special commands is a "!" followed immediately by the control word which mustI be terminated by a space or tab. (The word can be shorten to its first L character.) When encountered, the "!", the string and the space or tab areO replaced by the appropriate escape sequence. Attributes are only valid on thecG line where they are found. The attributes that can be controlled are:l i !Bold Bold Characters !Flash Flashing Characters !Underline Underline Characters !Reverse Reverse Vidoes! !Normal Cancels above attributeso !Wide Double Wide Characters: !Tall Doulbe Tall Characters (Valid only in Title field)D !Height Double Wide and Tall Characters (Valid only in Title field)# !Ascii Normal/Ascii Character Sete !Graphic Graphic Character Setc' !Special Special Graphic Character SetothecG line where they are found. T :dǸ Da  &Do you wish to repeat this selection:  #Please press "RETURN" to continue:  $Do you wish to halt this sele|ction:  Selection Not Found No Help Found for This Selection Privileged Insufficent  Access Denied File Process Error , Syntax Error on Line 2 Command Line Syntax Error Terminal Time-Out Exit  Opening Fitle , CLR " SIL " FOR " SPN " WHO " LOG " LCK " CUR " CLI " ALL " STP " OVR " LEV " FNC " SEL " LEN " PRVMSK  Present menu script: , 2 , , @p8 lrcx417 2 >dhSCR>[1;24r[;[3;24r[J[1,24r~.@0D2H4D6H:LH@DBHFPHDJHLDNH R1xs8 T1xsn X1xsD Z1xsn ^1xsP `1xs d1xs\ f1xs2z009#P#"!!! ! 1xsh 1xs4 1xst 1xsf 1xs 1xsn 1xs 1xsn 1xs 1xs $1xs &1xsf *1xs ,1xs 01xsF& PTX \ ` 1xs\ 1xs~ 1xs 1xs "1xs0B D1xs,a  Da dDa h| z 01xs 21xs 41xs>@\DF\H` N1xstRT\ X1xs^d b1xs~ f1xs h1xs.ldpr\t` z1xsP\z\ ` 1xs\ 1xs\` 1xsz 1xs8"r$\&` *1xsz ,1xsD:<\>` B1xsz D1xsJL\N`` ~ 1xsh r\` 1xsD$&\(` .1xs24\6` <1xsP@B\D` J1xs N1xsTd X1xs~ \1xs ^1xs9z|\~dH  z 1xs d 1xs~ 1xsc 1xs2\ 1xs 1xs "1xs(d ,1xs~ 01xs2 61xs   GV : ?        ~`xUj Da  ""w $Da (""w ,Da 0""w 4Da 8, 1xsF1xsJ1xsZ1xsb1xs^ -w -  H7 7| Da < ,Q1xs1xs 1xs$1xs*1xs.1xs6j:1xs>1xs B1xs J1xsR1xsV1xs\jfNDN -" - w7 z 1xs1xsj 1xs$1xs*j.1xs21xs61xs>jDjH1xs L1xsT1xsX1xsd1xsL -009##"" cTADATADATA"Wpm1 1xs 1xs1xsS1xs1xsS$j(1xs ,1xs41xs<1xs @1xs B1xsF1xsJ1xsnzev -uwsq $m~ j1xs1xsj"1xs&1xs(S0j:jBjL1xsP1xs T1xs^1xsdjh1xs l1xshb - -g2.e -b`-z 1xs 1xs1xs1xs 1xs(j ,1xs .1xs 21xs@jH1xsL1xsTj\jb1xsf1xsf_2.] -w7Y!.SCR7z j 1xs 1xs 1xs"j*1xs.1xs41xs81xs>j J1xs P1xs V1xs \1xs`1xsd1xsb(S 7 P0 -M -  ~j 1xs1xs1xsj"1xs &1xs (1xsG,1xs01xs:j>1xsD1xs PDa fT` X1xs`:N L -7 7 7 |!y j Da FE`[1xs 1xs"1xs&1xs(1xs,1xs01xs61xs:1xs@1xsF1xsL1xsX7 7 7 51xs1xs1xs1xs 1xs&1xs,1xs01xs61xs<1xs@1xs<D1xsLjP1xsR1xsV1xsB$/7 7 7 1xs1xs 1xs1xs1xs1xs1xsj"1xs&1xs*1xs .1xs01xs41xs :1xs@1xsbb7 7 -7 7 01׭ [ 21xs 1xs1xs1xs1xs 1xs(1xs,1xs2j81xs>1xsB1xsF1xs P1xse X1xse `1xse| 4 ; 8 0 H  [ 1 J  [ 0 1 ; 2z 1xse 1xse 1xse "1xse *1xse 21xse :1xse B1xse J1xse R1xse Z1xse b1xse j1xse r1xse z1xser8 4 r  &   7 | 1xse 1xsej "1xse *1xse01xs6j<1xsBj JDa <T>;x# X1xs\:x< `1xsh:l!yp1xst \\-07   |1xsj1xs1xs 1xs $1xs,1xs 41xs>1xsL1xsV1xs X1xso^1xs `1xsohjrjbWpm r !7e  1| 1xs 1xs 1xs 1xso j,1xs01xs6j<1xsB1xsF1xsPjT1xsX1xs\1xs `1xszt   !4 !7   wz 1xso1xs 1xsj1xs4j 81xsoD1xsJjN1xsV1xs \1xse d1xsej1xsn1xsxjf `f %7  77   |1xs j1xs  1xsp(,a  ,,a 0661xs">1xs@1xs$F1xsJ1xsR1xs X1xse `1xsed1xsVL w7 7 -  ~1xsj1xs 1xs&1xs1xs"1xs(&1xs**1xs01xs41xs1xsB1xsJjPj TDa hX1xs\bj|AwXw@ L wSwKz1xs  1xso 1xso "1xso,1xs, 0Da t61xs F1xsLjTjX1xs  \1xso h1xsoZw@ uG SqwKowSm p 1xso1xs, Da "(j,1xs 01xs 41xsp B1xs H1xspRj Z1xsqdj l1xsrvj~ j w?g $wdwbaA wLx 1xs 1xsr 1xsrj &1xs .1xsr8j B1xsLjVj\j`1xs  d1xspl1xs t1xs |1xsp] wfZwXWL w2AS  w4HPOv j1xs 1xs j*j0j41xs 81xs <1xsp J1xs R1xsp\j f1xs n1xspxj |1xsqv 'wAL 8wIwGOF wCwA@ 0d 1xs 1xsq j *1xs4j>j D1xspNj X1xsbjljrjv1xs ~1xsw=X w^R9 ,wBN6 4w&3w10 n j1xs 1xs 1xsp &1xs .1xsp8j B1xs J1xspTj ^1xshjrjxj|1xszn w- w*O wE&w$w"!~ 1xsj1xs 1xs(j,1xs  01xsp81xs @1xs H1xspRj\jfjljp1xs t1xs x1xspN wFw  #wjN 1wNw^ 1xs 1xsp"j *1xsq 21xsq1xs F1xsPjT1xs \1xsfjj1xs r1xs|jb 3w-  -z1xs 1xsj1xs 1xs$1xs,j01xs  41xso <1xsoD1xs H1009#P#"!!! !xsL1xsP1xsXj`jX(-  -|1xs 1xs1xsj1xs  1xso (1xso01xs 41xs81xs<1xsDjLjP1xsT1xs V1xsM f| m  2  7ww -z1xs  1xs1xs j "1xso $1xsM 01xs41xs0:jDjNjR1xs V1xsZ1xs`1xsd1xsd  -w    j1xs  1xso 1xso"1xs &1xs*1xs.1xs6j@j DDa H1xsLRjV1xs ^1xsb1xsR>     |1xs 1xs 1xsj1xs"j&1xs .1xs21xs61xs<1xs >1xsDjH1xsL1xsP1xsX m  2  7w| 1xsM  1xs 1xs1xs  j $1xso &1xsM 21xs61xs1xse F1xse N1xseT1xsZjb1xs  f1xsppjn׭ [ 7 m wH- ׭~1xs1xs1xs 1xse "1xse *1xse 21xse81xs>jF1xs  J1xspR1xsZ1xs(`1xs*hjl1xsp # 3 wH--׭7 ~ 1xs(1xs 1xse 1xse &1xse,1xs2j:1xs  >1xspF1xsN1xs(Xj\1xsd1xs(h1xs n1xser # 4 wT- ׭ # :~ 1xse 1xse1xsj&1xs  *1xsp21xs:1xs*@1xs(HjL1xsV1xs*Z1xs `1xse h1xse p1xsel T--׭7  # ; |1xsj1xs  1xsp 1xs(1xs*2j61xs>1xs*B1xs H1xse P1xse X1xse^1xsdjj1xs t`W׭ # 6 we  ~ 1xspj1xs1xs "1xse *1xse 21xse81xs>jFjPjVj\1xs b1xsf1xsnjr1xs n   wH 7  [ 0 009##"" cTADATADATAm z1xs 1xs  1xsn 1xsn1xs*j2j8j<1xs@1xsF1xs L1xse T1xse \1xse d1xseljv: 7  ( B - -w>-w2w|1xs4 1xs4 1xse 1xse "1xse*j.1xs 81xse>1xsB1xsHjL1xs(X1xs*j1xspjt1xs^-   0    7~1xs6 1xsej1xs$1xs *1xs.1xs4j>1xs @1xsD1xs F1xsP1xs T1xsX1xs \Da `  ׭ [ 1 m  4 4 ~1xs6 j1xs 1xs1xs 1xs *1xse 21xse :1xse B1xse L1xs N1xse T1xs V1xse ^1xsedb [ m  4 4  7w1| 1xse 1xsej $1xs &1xse ,1xs .1xse6j <1xse D1xseJ1xsTjX1xs \1xs `1xso b1xsL |1wy1w׭|1xs 1xs j1xs 1xs 1xso 1xs*j.1xs 21xs 61xso 81xs>jB1xsF1xsJ1xst ! [ 1 m 2  [ m c 2 ^ ~ 1xse 1xse 1xse $1xse ,1xse 21xs 41xse <1xse D1xse L1xseVj \1xse b1xs d1xselj r1xseXz! XU1 7 P | 1xse1xsj1xs 1xs(j,1xs 01xs 41xso 61xs:1xs8@1xsD1xs LjP1xs V1xseZ! -wN    wC1xs 1xs61xs 1xse 1xs$1xs *1xse.1xs21xs 81xse<1xs@1xs F1xseJ1xsTjX1xsj$" e p- pAw?w= ;  1xs 1xs1xs61xs $1xs*j4j>j BDa F1xsJN1xsTjX1xs ^1xs6d1xsh1xs`" 0  -4  -0.| 1xs1xs1xs1xs1xs"1xs*j.1xs  21xso :1xsoB1xs F1xsJ1xsN1xsVj^jt"NAB)R&U#7 Cz1xs  1xso 1xso1xs6 "1xso,j21xs6 81xsoBjH1xs6 N1xsoXj^1xs6b1xs h1xsorj^V#7 w 0  m 7z1xs6 1xsjj$j*1xs.1xs 41xs:1xs@jD1xs"J1xs N1xsT1xs X1xs$\1xs"p#7w8 -}w -  7  ~1xs1xs1xs j&j*1xs 2Da 6<1xsBjF1xsPj T1xs V1xshj l1xs n1xsJ$   77 77 7 1xs1xs1xs 1xs-1xs "1xs.$1xs(1xs .1xs-01xs 41xs.61xs<1xs: @Da DzH1xsNb$7 7 7  77 71xs 1xs1xs1xs<1xs> 1xs&j*1xs: 01xs 61xs81xs,<1xs @1xs F1xsH1xs@L1xs@N$7w -27 7 | 1xsM  1xsj1xs1xs&j,j21xsB61xs:1xs>1xs@1xsD1xsF1xsJ1xsL1xsT$ ׭` 7 [  2 2 ;z1xs1xs 1xs1xs1xs1xs&1xs ,1xse 41xse:1xs @1xs- B1xse H1xs. J1xse R1xselF% 3 H - >     77 7 7 7 ~ 1xse 1xse 1xse "1xse *1009#P#"!!! !xse 21xse :1xseBjJ1xsN1xsvTjX1xs\1xs`1xsd1xsj1xs<F%   |1xs> 1xs1xs1xs1xs1xs1xs1xs 1xs $Da (:,1xs21xsB<` @Da D:x<\%   7  -  ~ Da  :x< Da :x< Da :"!y*j.1xsB4j:j >Da "B:F1xs NDa 0R: VDa 6ZAybH&  ׭  ׭~ Da J ye Da :1xs1xs $Da N(:.j4j:1xs4@jF1xsJ1xsP1xsV1xs`1xs^z&  w -w׭w׭w׭w׭| Da \ :1xs^j1xs^ "Da \&:,j6j :Da j>:DjH1xszT1xsn`1xsnl1xsnx1xsn'w׭ ׭w׭w׭w׭[׭Aw׭Cw׭Bw׭Dww׭`1xsn Da x:1xsn*1xsn61xsnB1xsnJ1xsoV1xsob1xson1xso~1xsn'OO7& ww׭ ׭0׭ w׭w׭ l j1xso1xs, Da $.j8j>1xsnF1xsnN1xsnXj`1xsnjjr1xsn|jj(  w׭?ed׭ ׭w}||1xs j Da \:1xsn&j,1xs421xsn:1xsnDjNjVj\j`1xsnb1xsf1xsnh1xsz( w -w׭ w׭ w׭ w׭ ׭׭ ׭t1xs Da \:j Da j:"1xsz.1xs21xsnB1xsnR1xsnb1xsnj1xsnr1xsnz1xsn\(  i   we- z1xs 1xsn 1xs1xs Da : j (Da ,` 01xs8:1xsF1xsN1xs Z1xsb1xs pjt1xs6|1xs6F*w w 07 w ww ׭?H07 w wedwH 1xs1xs$1xs.1xs4L1xsVjZ1xsd1xs4z1xs4* ׭?C0Wp 0`AwD w ww ׭??0Wp 0`AwD N 1xsj1xs(1xs41xs4R1xs \j`1xsn1xsz1xs4x>+w wedw:w8767 -w10?ed/|1xs4j(j0j6j:1xs4 >1xs@1xsF1xs4J1xs4L1xsXj^jb1xs f1xsp1xs4vj^+w-- 7, *  77 w%- j1xs41xs1xs4$j(1xs4.j21xs4 81xs >1xs-@1xs D1xs.F1xs JDa N:Xj\1xs4p ,7 $ ! wwedw-wj |1xs 1xs4j1xs4j"1xsn(1xso ,Da 0::jDjJ1xsP1xs4Zj^1xs jDa 0n:rx, w -w$  w  | j 1xsG 1xs1xs$1xs*1xs4j81xsF1xs JDa \N:Xj `Da d`h!y lDa p( Z,w8      009##"" cTADATADATA -z j1xs Da 0: Da   $Da (Ay ,Da J0ye 4Da 8: @Da .D`H!yL1xs XDa :~<-&  &  w  7z"& >;x# 1xs:!y$j ,Da :6>;x# :1xsB:F!yLjVj`j f1xsr1xsv1xs|1xsd-wr-dw 7 w  w77 |1xsj1xs4"1xs4 (1xs*1xs:.1xs: 8Da 0<:B1xsHjL1xs: R1xs \1xs^1xs,b1xsP. 77e-   z 1xs 1xs1xs@1xs@ 1xsM 1xs j&1xs:*1xs 6Da z:` >1xsB:x< F1xsJ:x< N1xs6Pb.         ~:x< 1xs:x< 1xs:x< 1xs:x< "1xs&:x< *1xs.:x< 21xs6:x<:!y BDa F` J1xsN:x!y FDa :P>;x# T1xst/  -w -2w wB   ~ :!yj Da 1xs, &j*1xs61xs:1xsHjL1xs Z` ^Da |b:x< fDa n:r!yjp/7 w    - z1xs  Da ` 1xs":&!y,j 0Da 4( :j>1xsJj N1xs P1xs\1xs`1xsh1xsb/7 wp     ~j1xs1xsj Da $z ,Da 0` 41xs8:x<jB1xsJ1xsV` ZDa |^:x< bDa f:x< jDa |P0         ~:x< Da :x< Da :x< Da :x< "Da &:x< *Da ~.:x< 2Da v:: >Da |B:x< FDa hJ:x<N!yX0 -   -  -zj Da x:1xs Da  Ay $Da J(ye.j21xs81xs @Da Dv; HDa LAyRjV1xsj<1   -wP 7 ##- Da Ayj Da #}"j&1xs,1xs81xs@>1xsB1xsHjL1xs@ P1xsM X1xsN `1xs h1xsO X10   7  1  1xsD 1xs1xsF"1xsF(1xsF ,1xs601xsD41xsF:j>1xsDD1xsFH1xs L1xs6 N1xsR1xsV1xsP1 e 1 ~1xsF 1xsDj1xs@1xs"1xs,j01xs@41xs 81xsM :1xs>1xsB1xs@F1xsJ1xsN1xsjB2 -     e | j Da 1xs1xs(` ,Da 0:x< 4Da 8:x< jB1xs>N1xsR1xsV1xsb1xs@h1xsl1xsn1xsvjTb5)m1 -/w- wt~1xs@ 1xsM 1xs<1xs 1xsM 1xs6 1xs$1xs@(1xs,1xs.1xs6j@jD1xsN1xsR1xsp57 w\      `e&  '| 1xs1xs@ Da &` *Da .:x< 2Da 6:x<>1xsF1xs@ L1xsM R:\1xs`!yfj nDa :p6&  ?  ,$wY y w"  ~@/ >;x# 1xs:!y 1xs*1xs: 01xs <1xs F1xsVjZ1xs>`1xs< d1xsh1xs j1xs6n1xs>h6m w-wp (w7 wBe-1xs1xs<j1xs>*1xs>01xs< 21xs61xs@ :1xsN F1xsJ1xsN1xsZ1xs@`1xsd1xsf1xsR6)m1 -w | j1xs@ 1xsM 1xs<1xs "1xsM $1xs6(1xs,1xs@01xs41xs61xs>jHjL1xsP1xsl<77 w      `e&  | 1xs1xs@ Da &` *Da .:x< 2Da 6:x<>1xsF1xs@ L1xsM R:\1xs`!yfj jDa f7 ׭ w-׭? ,$w  `~: 1xs{1xs|1xs1xs$1xs,1xs: 21xs>1xsD1xs<H1xs J1xs6R1xsZj^1xs< d1xsV8 m 7w m 7w| 1xs61xs>1xs1xsj1xs<"1xs(1xs<2j61xs<:1xs <1xs6@1xs>D1xsJ1xs<Tj`X8     `e&   ׭z Da  ` Da :x< Da ":x<*1xs21xs@ 81xsM >:H1xsL!yRj VDa Z:^1xs{j8 w-׭? ,$w 7!a0 7!71xs|1xs1xs1xs$1xs: *1xs61xs<1xs<@1xs B1xs6J1xsRj Z1xs \1xs6b1xsh1xsn9m  ww 7 ##-~j1xs1xs<1xs>$j*j01xs:j@jD1xs@J1xsN1xsTjX1xs@ \1xsM d1xsN l1xs\90   7  1  1xsO 1xsD $1xs&1xsF*1xsF01xsF 41xs681xsD<1xsFBjF1xsDL1xsFP1xs T1xs6 V1xsZ1xsT9 e w1 ~1xs 1xsF1xsDj1xs@"1xs&1xs4j81xs@<1xs @1xsM B1xsF1xsJ1xs@N1xsR1xsj,: -%w ׭"    e  |1xs 1xs, Da  1xs$1xs(1xs4` 8Da <:x< @Da D:x< R1xsV: `Da d:x<h!yp009##"" cTADATADATA:    e  w. zjj` Da  :x< $Da (:x< 61xs:: DDa H:x<L!yRjV1xs\jfj jDa nr: -&  &  ~ Da Z`!y1xs "Da :&/,>;x# 01xs8:;x# Z1xsb:f!ylj p1xsl;Y wy www-wz  `2  ev 1xs$j.j21xs >Da 0B:J1xsTjX1xs@ ^1xsM `1xsj1xspj tDa x|1xsr;&  -w wz w  ~ ,a  ,a Ay Da Jye 1xs~,1xs :Da >`B!yF1xs PDa T( ^j b1xs d1xsp1xslV<ww012401wwp7  7~1xsj1xs1xs(1xs.1xs41xsh:1xsi@1xstF1xsuPjT1xs^1xsb1xs h1xs/j1xshP<77777w>-w, ~ 1xs01xsi 1xs/1xst 1xs01xsu 1xs/1xs 1xs0 1xs*j.1xs>1xs@DjH1xsN1xsl =2 ~ 7  -www | 1xsM 1xsj 1xsj*1xs@.1xs 2Da 6Ay :Da J>yeB1xs~P1xsZj ^Da b jDa tr= -&  r&  pY ~` !y1xs Da :/$>;x# (1xs0:4!y;x# R1xsZ:^!ydj h1xs r1xsT=y w2 7w hwe |1xs1xs1xs1xs1xs1xs"1xs$1xs(1xs4 .1xs01xs::j@1xsJj NDa Rx2> -&  `&  ^w~\| Da .`!y1xs "Da :&/,>;x# 01xs8:;x# Z1xsb:f!yljvjl>7 wpYw`V7 wRS  Qw2O L1xsj1xs j$1xs.j 2Da 6Ay :Da J>yeDjNj RDa VAy^jb1xs fDa 8j1xs@N?e  -E7 7 z 1xsN   1xs:x<!y1xs 1xs(1xs*1xs<.1xs01xs61xs<1xsDjH1xs<L1xslX?@w>  <`2 : e&~1xs1xsjj "Da 0&:.1xs8j<1xs@ B1xsM D1xsN1xsTj XDa \`1xsj,a ,x?  =w@E7E 4w1 w w7 z ,a  Ay Da Jye1xs~$1xs~,1xs01xs<1xsBjF1xsH1xsRjV1xsl1xsv1xs@4@1w */w:w07` w-w - #wr x 1xsN 1xs1xs@j"1xs@ &1xsN 21xsN >1xsN H1xsL1xsV1xsb1xs,f1xsl1xs ~1xs @ 1wb# 7< #wB7< 1w0 - w  we vj1xs 1xs"1xs 21xs41xsFjJ1xsR1xs: X1xsb1xsh1xs: n1xsz1xs:~1xsz,A-w   www w-w  z1xs Da  Da $`(!y ,Da 0( :jDjH1xsR1xs\1xs hDa lt` xDa |jA  - 009#P#"!!! ! e    ~:x< Da :!y1xs1xs"1xs.` <1xs@: JDa N:x< RDa V:x< ZDa ^:x<b!yhjB  e     w w w-wx j` 1xs$: .Da 2:x< 6Da ::x<>!yDjH1xsNjT1xs ^jb1xsl1xsv1xspB    whwX wN-wB  z Da  ` Da |:x< Da &:*!y01xs :j>1xsH1xsR1xs ^Da bj` nDa |nB    !aef !7  :x< Da :!y`"1xs4 *1xs 61xs <1xsdB:L1xs PDa T:x< XDa \:x<`!yfjl1xs xZCww7 w7 wwwt-   z j1xsj 1xs*j.1xs8j>1xsHjL1xsV1xs ^Da \b:j` nDa |r:x< vDa vC w@w0     ww7 | :!yj1xs*` .Da |2:x< 6Da >: BDa |F:x< JDa R:V!y`jf1xspjt1xs`@Dwe  w  wwxz j1xs Da 81xs@ 1xsN   $1xs(:x<,!y01xs :Da >zQD BDa FyePjZj^1xsbDe  ww-wwde | Da 8 1xs@ 1xsN  1xs:x<!y(j2j61xsHjL1xs PDa 8T1xs@ X1xsN \ `1xshD - 7 -EE ~:x< !y1xs1xs1xs"1xs (j,1xs61xs ;x# 1xs$:(!y0j 8Da :<^0B>;x# F1xsN:R!yXjbjf1xs@j1xsv` zDa hHH  !ae& !7  -z:x< Da :x<1xs@ 1xsM &:01xs41xs 8Da <:x<@!yFj NDa .R`V!yZ1xs fDa :pH&  &  w 009##"" cTADATADATA  z% >;x# 1xs:!y$j ,Da :0^06>;x# :1xsB:F!yLjVj ^Da b`f!y jDa n( ZIwv  w~  77~ j Da  Da J `$!y.j41xs: 8Da 0<:@1xs: F1xsH1xs@L1xs@ P1xsM T1xsX1xs@hnI("w v`2 t - z 1xsN 1xsN 1xs&j*1xs@ 01xsM 21xs81xs>1xsDj HDa LP1xsV1xsb` fDa pI  e!&e !7 re& oz:x< Da :x<1xs &1xs*:41xs 8Da <:x<@!yFjJ1xsT,a @ X,a .\Ayfjn1xsp>J n`2 l -   e!&e~ j1xs@ 1xsM 1xs"1xs(j ,Da 041xs:1xsF` JDa N:x< RDa V:x<Z1xs n1xsjJ !7 je& h  -:1xs Da :x<!y"j&1xs0,a T 4,a B8Ay@j DDa JHye PDa .T`X!y\1xs hDa :tK&  c&  aw_   |/ >;x# 1xs:!y$j ,Da :0^06>;x# :1xsB:F!yLjVjZ1xs@^1xsj` nDa r:x;x#vK X&  VwT ׭?-w׭?-| 1xs:!yj "Da :&^0,>;x# 01xs8:j BDa FJ1xsP1xs\` `Da d:x  -~ Da  :x< 1xs:$1xs (Da ,:x<0!y6j :Da &>AyDj HDa JLye TDa .X`\!y`1xs^M&  9&  7wZ Da :%>;x# 1xs$:(!y0j 8Da :<^0B>;x# F1xsN:R!yXjz`xUj""w,,1:,VN,Q`:!yE`[>;x#:x<j6z`Ayye( v; #}:zQD",1z8`yG DN Da N  Gx/j  Gl  G/n  Gp  Gr  G/v  Gx  G z  G |  G ~  G   Gf   G|   G   G.   G  G   G   G  G0  GF  G  G|  G  G  Gf  G  G  G  G&  G"  G  G"009#P#"!!! !  G  G  Gb  Gx  G  G  G  GX  G  G  Gn  G  G  G  G  Gz  G  G  G  G  G  G  G  G(  G/  GL  GX  G/  G,  G  G!  G  G,  G   G   G   G   G!  G!  Gl"  G/  G/   Gr#   G/  G>,  GH,  G^,  G,  G>,  G(  G^,  G,  GV1  G3   G3   G4  G 4  G04  G@4  GP4  G^4  Gn4  G|4  G4  G4   G4"  G$5$  G6&  G<9(  GL9*  G:,  G;.  G;0  G`<2  G<4  G<6  G\=8  G>:  G$><  G>>  G>@  G>B  G>D  G>F  G>H  Gn?J  G @L  G^AN  GR9P  G^BR  GBT  G^CV  GnCX  G|CZ  GC\  GC^  GC`  G&Db  G6Dd  GDDf  GDh  GDj  GDl  GDn  GDp  GhEr  G|Et  GEv  GE G G:0 16)>ThK G:0*  ( G:0L4 2dl:QJ   G#dMIE<9 $Z  G# 4T G#~ G G# GZ" G G$,H G#^&~  G G  G:( 2 G: D GL ` GXh p  GX  GX G  G:  G: G $ G:, @ GXH R GZ n G:v  GX G  G:  G  G#  GX G& 6 G:> T G:^ Gz G: G     G   2 GL X v   G# G GX  G:  G:& GB P G:X b Gj r  GX  GX G G:  G:  G. G:D G:Zh009##"" cTADATADATA G:p  G:  G: G GX G  G:  G 0 G:8 L G:T f G0j G#t G G: G: G:  G:  G:   G:& : GXB Tr^ Gvi [ G:0   G8V G#v G G# G  G G6JT G\f Gn    G  G6L h%v  G  G   < Z G G G 2 P G G   G(, G4 R r G     G2H d   K6HP j&  G# G/ G#J  G# JR| G G G*Z Gf"t G# G#N GZ#h G# G)% " P G\&d"lz G($!T%! .Z)ft >h GP"& 't  G"  G" !%V! !H!@!.:"X" G#"y""" "W"N"#F##;#,#04# F##N# `#j# G/##$$ $ G..%= %9%%&46&\&d&&&& & & G(& GI& G, ' G,' G,"' G)*'R>' G,J' G,V' G,^'j' G+v' G+' G,' G,' G ,'' G ,' G ,'I'''' G,'( G+ ((( G-0(F(N(`(( GI(( G^0(( G^0(( G^0(k((5(#)) G,)) G-* G.L*** G.L$*0* G.L>*J* Gf+X* G,b*x* G,* G,* G-*** G,* G,* G-* ** G,+ G,+ G- +#+@+ G,H+ G,R+ G-\+ G,d+|+ + G,++ G-+,\, G-, G^02-V-h-  G^0- GE . G@/. @.e.  G^0/Q/\0v08009#:$"!!! !~0401  1>1`11F1B1>1512112V2^2(222223. 3*&3 ,3<3 G$>@3 G:L3p3 G$>t3 G:3 G$>333 4Z5l55 @6 R6 G>I\6f66 GR867z7 7 7 7 G>I7'78 8 8 8 G>I8 v9H~9D9@979499<: GhAT:"t::$:;8;;  =====H>l>&?.? H? ? ?.@ @@@@@@@A,AA"AB BC CEEE&E4ELEE GHE GHF"F GH@F]LF G*HVF FF%FFY G :x< BDa F:x< JDa N:x<R!y^jl` pDa t:x< xDa r| = W/        z:!yj$` (Da ,:x< 0Da 8: >2e&f& v !# $#w)5 C&wCË @ÊAW H  Rw P)& &( &  zRRRI! w\  & & & & ` J fRCҐCҐRC  &w&C & ` `Ba#   L  P aa  ҩ則 ޢ: ? nPY \Y hY tY fzY ^Y VY NY FY >Y 6Y .Y &Y Y 0\fmY dY kV7<\Y 7 Dm=V6m6nVE7&me07 jVE r7 me07iY -lw2/l lll-l1m ll] )]H7 [7Um]D[m]Nn[m ~l ~l-zlpmjmfl]"K 8[-4[ w.7 Nl Fl @ll:k-6k_,l2]\\.]l k- kwk7jYk! .\S\C\R\7jjSk Y7 YjPkj0\;d j-jMk rY-xYW `\ j pLjkY -Tj:JYDYFY@Y7 Pj7 NjJj7 HjDj@jY6j2j.j*j&j"jj7 jXX7 DX7 X5jiiiiiXiiii/ji7 i7 iihX7 iii7 ii7 iii-^X7 NX7 ihj0*f1%fi׭eRQYd [Yd 2Yd 4Yd ;Yd 8Yd 0Yd HYd Yd [Yd 1Yd JYd Yd [Yd 0Yd 1Yd ;Yd 2Yd 4Yd rYd i Yd Yd hihiX*& |c ] R X7 hNhHi "Wd>h]\M]\I-WE]07h < 9Bh  dc] dc]hhWpmgp rpc]h !7gghegV ~Vh ggg1]c] g ZVthg   ! Th4c] !7~g>hV \g Yd Yd Hg JgwhFghV n%7g  gg 7g7U f Yd Yd f fw8gfffpU7 f7 fff-ftgfc] c]  f f f-fHgw>g|fc];wffc]]w~c]$c]%wc]%w 2f 2f*f&f-"fffc] c]  f e e-efwDfee-e&e 7MfMmec] c]a c]zc] pc]Xf e-eHfBfYfe t0fhec]Awc]Xwc]@NeZ :e.e"ed]L awd]Sewe]Kewrf]S e awf] f] e awf]? fe $aw|Rew zHeyBezdd]Afd awfd]L ueHd awHrewpdod*ddd]O awd]H kd 8awd]Lhdwde]E fd awe]I c|d aw`hdw"^^d]Xdcd]I|c aw|d]EY.dw e]BWdQwe]L Td4c 0awRQcw OcNcc00: $$"!!! !d]Nc 4awd]X Jcb awGcwX EcDcb  awAxcbd]Rw&b7 Zb=Xcbb-b] a d]H ]"] a]w]]\ 2a]\  0 a \w6]\  \a \w`|]\  0 ^ \w^]\  \^ |\w">]d\}2]j\c]? V\ ^{]y ]D\c]Awc]Zwc]@*\:Z u\ \[d]G ^d]Sq\wbe]Ko\wPf]S m\ ^f] f] jb\ ^wf]? gF\ $^wd2\wb(\a"\Z[d]AF[ ^wd]L ][([ ^wfZ[wX[W[ [Zd]L ^w2d]A S[  ^w4d]H%P[e]O '^we]A Lf[ 8^wIR[w GH[d]O F8[ ^wC$[wA[@[DZ 0^w=Z6Z*Zd]X ^w^d]R 9Z ,^wBd]N 6Z 4^w&3Zw\1Z0ZY  ^w-|ZY ^w*fZYd]OY ^wd]E&Vc] c]  *V "V V-VVKVVV-UVUc] c]  U U U-UV&VUUAh UmU U bV2c]Ah  U7UFVw Qd]H)-"Q% 2Q" .QQ׭9QPYd #Yd 3Yd PQw\Pd]H&-P"-PQ׭97 PPYd #Yd 4Yd PTQwPd]T(-lP$ ~P! vP*Q׭79bPBPYd #Yd :Yd &PPT,Pd]T%-P!-"PP׭87 POYd #Yd ;Yd OP)Od]WP׭8OYd #Yd 6Yd O^PVPwLPFPe|OrO nO.P fO ^O^Ob] b]  FO wHPOOO N7 NYd [Yd 0Yd mYd O O7 OYd (Yd BYd O-N Yd NNzO-Nw>-Nw2wNROxN-N Yd 8OfN `N 0 ^ VNO  FN^Yd Yd Yd Yd tI H76bI7 67 67 67 6HHZHPHZHNHLHBHJH 7Z P31 zH <|Y (wY w$Y w,Y w u4H7 H5Z Z*Hw HZ BH-0w("׭/w׭/w׭t/w׭h/w׭\/R [ ׭L/wd׭@/wX׭4/wL׭(/[׭!/AwJ׭/Cw>׭ /Bw~׭.Dwrw׭.OXG.O7F[& ~pwb6GwX,GI׭. ׭.0׭.  Gw׭.Fw׭|. F BFZ w׭V.?Fed F׭@. ׭8.FwF}F|F.\B .-zEZ wlFZ -.wz \E׭- w׭- w׭- w׭- k׭-׭- 5׭-#E-] D$[ ֽiEX x\ t r2[ &weE-D D4[ ՘`E׭"-w׭-w׭ --B[ ׭,Ow,O7DP[& nwX@E-C-BdB 7|B,&C rB*ChB b 7!s>7"s>h[ &w%B->BB7 6B$B ,B!BX*S*v[ wBwBAedAwbB-AwjZ xB;d\ hA80:0w PB-TAw$ >Z `w,BW u o2[ V"w8 B AZ (Z @![ PZ nZ V t n-@X-& pt p nAX<7& pt tp zntAwjA`A \ @J@ 7B@>@wr4A-@dwt@ 7^r@ n@wZ 4@@P@ ^w47^0@7 @ ^ 7^4@0@Ah7@@e@-.eX st nc n*u nt nt nt nt nt nc n `mbX 4st jnt bnt Znc Rn u Jn(u Bnu :nt 2n mX<7& ot n l?[(? i?->w >->2w? >wB rY m8Y n l7 >wW Vr\ `n fl`?2[ R?_=QB?s\ 2>-- -?,7 ,wp ?Z dhW qt m k>Z W q k>=>=>-=8׭&4 qY lY lY xl>Y plY hl@Y `l"Y XlY Pl Y mY  \ .- =\ VZ t= < -+(\ Pr0\ *=-<D\ =X\ &= <-l+wP <<7 \+x=Ch0< 5 2 c< <<*p7< < = |<x<<1*p] * < b< \<7 7-777w 76676 w 7Z  j$Y eY e6 6`eAh& Je 6 `dZ7|\ |׭ wx6-t6 ׭n? 6 ,^$wb R6'l6H6*p >66R6`]*p H6 66606m 6 7&6w665*p 6m5 76w6Z  i$Y dY d5 5`eAh& Bd 5 XcR6|\ t׭ w85-45 ׭f? z5 ,^$wZ 5d55*p7!4 5a0]*p 7!4755m4 $5 "5w554w55 447 r#54Ah#HBh#D-4@Ch04 7 4 c4 44*p74 465 44(41*p] " 4 x4 r4 5e`464 24w4D431Ah] " 24 3 4 4- 4%w*Z 3"׭"" g$Y bY b e] Vb $Y b hab4$Z4 |g$Y hbY `b e] b $Y @b a4N34w.4Z FV f `-2X500:%$#"" cTADATADATA& bt b `3X<7& bt b `3tY wty wwl3wb3-6!wzZ x~2 <32`2Ahc `2 3Z bL2e&DV d Z -w 2wzvW e _0w2[ 2s\ 1v w21w0F.1A.2 4 0 1 wV2cwp7 Z1t1 7#s 7$s 7#s 7$s 7#s-7$s-w>2-H1w,\11 .1 (12Ah^1 ^~1 7$100\ Z <-Jwww1Z V dd ^-0X5& r`t P` V^rN1X<7& H`t &` ,^p&1tY ty w2"00"000 00B0 7^@0w h0/we0Z V c ]-/X5& _t _ ]`0X<7& _t ^_ d]^^0w~\T07 Z/wpYF0L/w`V607 >/wRS(0\ Z Q0w2O0\ bL/,/XH/eBh ~Zt ] \ .-. ..v E/7 7 Z@/w>/Z . \ DZz,-" V` e] Z $Y *[Y "[Y [ Y, , ` e] Z $Y ZY Z Y ,+ ,+w ,w +w-+wZ  _Y |ZBY H[ NYp+wh>,KwX B+wN-4+wBZ `  8_Y $ZBY Z X _:+ ~b! |baeXdf Y !7*$Y YY Y X+*w+*w+7 *wx+7 z*wj+j*wZ+gwt-^*Z j b^Y NYHY Z Xw@+#w0 .^Y YJY YY YHY Y Ww*)w*7 )w*)X*eBh 6Ut X W )w\ x\ wl*wxb*)X)eBh Tt dX BWw8*w.*-L)wwd*L)Xh)eBh Tt X V (-( (7 ))-(())E((E  ()(()w) `wFwTx)7 (wj) z(w\)X 0\\ :X @Vw`6)d(|( 7^z( v(wZ <d( ^w(,^eD((8( ^w7^,(((Ah7'(Bh(]Bh"w ' ('`2Ahp ''~(Z  N-T% [$Y vVY nV'e!&ep V !7d'$Y @V U(L'e&lV d Y'(' '>'`2Ahp  ''Z  -% Z$Y UY U&e!&ep \U !7&$Y U jTd'&e&V F'Z ƶV Z .T-2&Xp,& Vt U T&X<7& Ut U S&wh& "&% Y$Y TY T! %aeAh& jT !%7%$Y T tSn&V BY ^S-b%Xp,& PUt .U 4S,&X<7& &Ut U S&w%4W X R2[ $wv%Z W X Rw~%%Z ҵ$ 7^$$Ah7$$Bh(]Bh"w $ vh%$`2Ahp $$tJ%Z  - % VX$Y BSY :SP$e!&ep R !70$$Y S Qr$$e&|lV 0 Yo$# n$ $`2Ahp #l$Z  f-l% W$Y RY R#e!&ep (R !7|#$Y XR 6Qj0$d#e&V | h$Z V V P-"X5& Rt00:-$$"!!! ! R Pc#X<7& Rt R Pa#w_# "" V$Y QY Q! "aeAh& 6Q !"7"$Y bQ @P\:#V V *P-."X5& Rt Q PX"X<7& Qt Q OV"wT"Z ׭ ?-!w׭ ?-!w!!-!P" |!!r!!] ]  !-!LR"wJH"@! I6".!`2]p Z!G"Z \ -% &U$Y PY P e!&ep O !7!$Y O NE! e&LlV 4B!Z d-j T$Y OY Oeq 4O  $Y bO @N@:!\ >,!Z V S N- Xp,& Pt O M9 X<7& Ot O M7 w& ? = W/  S\ N\ N\ N fM= Z  vS\ bN\ .O 4M, = W/ BS\ .N\ N\ N\ N L  S\ M\ N L( ? <\ \ $Y cXr^c cXr^ d cXr^p cXr^p &Do you wish to repeat this selection:  #Please press "RETURN" to continue:  $Do you wish to halt this selection:  Selection Not Found No Help Found for This Selection Privileged Insufficent  Access Denied File Process Error , Syntax Error on Line 2 Command Line Syntax Error Terminal Time-Out Exit  Opening File , CLR " SIL " FOR " SPN " WHO " LOG " LCK " CUR " CLI " ALL " STP " OVR " LEV " FNC " SEL " LEN " PRVMSK  Present menu script: , 2 , , @p8 r417 2 >SCR>[1;24r[;[3;24r[J[1,24rXXXXXXXXXXXXXXX,cb]8cb]DcqPcq\c(phcZdtcb]cb]c]cZdc]cXXXXcXr^]t\V6Y t66zDZ $ZpD@Vl6LbX^t 6* 6 6 !z&(z& !&'''h(x(J)66P*6ttc(YX0YXXhc4YX cXr^t"uX0YXXc0YXXPccXXn^,cYXXn^8c3&3<330YXXn^tc0YXX\cYXX8c3f/<330YXXtc0YXXDc0YXXc cXr^]t948::::;;.;<;L;Z;v;;;C|CC:DDE~EEEEEELFF 1 2 3 4 5 6 7 8 910111213141516171819202122HELP MENU00:=$$"!!! !0102030405060708091011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980LB:[1,3]\SET /SLAVE=TI:SET /NOSLAVE=TI:BYE'&1 T?` L? D? е0葅nv&xvv@wvJww LvvzPv"hȰJ@ vV\flrxܯ5ew =, Bv    5Bw< z {{||~  &&f >  E3  ߆ %  І %ĉĆ BB ĉ , ,‰; ,JJV 3Vȥ ȕ$ȥ+ `l s@ Ps`; Fs,3/"R"'" 3 0As  :   >3  H JhŀdՀ`[WB ;  M  B@ 3VA3 N  & Lw wF3   H Z3 3 V3 N J  "e$"F3 Z NE% % % 5%% W 3W H Nwp `5@ @  E5e73 *,JJ 򋑆,J Jҕ JxȅT96% 00:E$#"" cTADATADATA Ttr  $%T %T R%TR3,% e3LsNP(3LsN xsP%% %2 hsR%2%4 TsPRNZL&P N N5@ Х,  N %RN ‰Nc % U%%  2 4 %2R%6RR s%B%.D THwAoz`AHH lT  BE&~WtEB~L~  *sWwR". %LHTD` B~ĵRHT%S%.S *HAoL z`A   $J J N   - ΋  BE~WtEB~w . %LHT w w Е `CBwД~w TH @` C~8\6HHHH:BJLT<(0+  "1""$BBDBBDB   Ee f  z % % e@ `5 & & D  6N D D eD e`D %   &fH”E  D   D 慡e BCE DIEN   ` ɕ = -5+-` #"   A s&DE s& sA ae0b  ~ҕ*~%  0   -+% |Ć00:M$$"!!! !5  (5(UW       wE5 E  W ͇5  ,E Jڟ@ Ңt\8L`jʧ Zj !!@ *$bdhvx^`____________________;________W_____}__y___;;;;1;;;;;;;13;;9; -- ERRORFCS: in " from " at or afterExiting due to (Error count exceeded)at PC = (@Invalid error callTask initialization failureOdd address trap (SST0)Segment fault (SST1)T-bit or BPT trap (SST2)IOT trap (SST3)Reserved instruction trap (SST4)Non-RSX EMT trap (SST5) TRAP instruction trap (SST6) PDP-11/40 FIS trap (SST7) FPP hardware fault FPP illegal opcode trap FPP undefined variable trapFPP maintenance trapREWIND errorDuplicate file specificationsInput record too longBACKSPACE errorEnd-of-file during readRecord number outside rangeAccess mode not specifiedToo many records in I/O statementClose errorNo such fileOpen failureMixed file access modes Invalid logical unit number!ENDFILE error"Unit already open#Segmented record format error$Attempt to access non-existent record%Inconsistent record length&Error during write'Error during read(Recursive I/O operation)No buffer room*No such device+File name specification error,Inconsistent record type-Keyword value error in OPEN statement.Inconsistent OPEN/CLOSE parameters/Write to readonly file0Unsupported I/O operation1Invalid key specification2Inconsistent key change or duplicate key value3Inconsistent file organization4Specified record locked5No current record6REWRITE error7DELETE error8UNLOCK error9FIND error;List-directed I/O syntax errorSyntax error in format?Output conversion error@Input conversion errorAFormat too big for 'FMTBUF'BOutput statement overflows recordCRecord too small for I/O listDVariable format expression value errorFInteger overflowGInteger zero divideHFloating overflowIFloating zero divideJFloating underflowKFPP floating to integer conversion overflowPWrong number of argumentsQInvalid argumentRUndefined exponentiationSLogarithm of zero or negative valueTSquare root of negative valueVInvalid error number[Computed GOTO out of range\Assigned label not in list]Adjustable array dimension error^Array reference outside array_Incompatible FORTRAN object module in task`Missing format conversion routineaFTN FORTRAN error callbUser requested tracebackdDirective: Missing argument(s)eDirective: Invalid event flag numberoVirtual array initialization failurepVirtual array mapping error@A&&ff&&ff7 7 " @a&&f    fN  5 mB m    ~ B C Ɖ6 v%L@a&&f     D C  & m  % %ljmB m e E D C B ~ Em  6 v%L -   eۉe*3 l & fRA BU%D~  J  l耖% l. d{lX3 3 d3 d 3UlE0@A t  Օ,x  5eT Օ.eZ \Օ;   %  e ZՕ" h” \ ( r&?  H .Օ Օ-   e:f s!pU Օ D~  A M•0 M M5& 5Ε ,   e p ep * " P     u쇀3l 3f& % b %e ee e  Օ Օ  nff)n s. Items may contain both uppercase andlowercase characters.t Summary of Control Characters:r( ] As first character, seperates fields. ; As first character, comment line indicator* $ As first character, action item symbol+ % As first character, control item symbold \ Item delimittero:Valid control items following a field seperator, "]", are:ALPHA BLANK REPEAT NUMBERHThese items control the formatting of the selection area and the kind of&prompt that is generated for the user.>Valid control items following a control item symbol, "%", are:ALLOW AGAIN ASK ASKS ASK?!BATCH BLOCK CALL CHOICE CLEARi$CLI CONTINUE DEBUG DELAY DISALLOWEND ERASE EXIT FREE GOTO!GRAPHIC HOLD IF IFNOT INQUIRYs-KILL LAST LAST LOCK MAINTAIN FLAGS NO CLEARm*OFF ON OVERRIDE FLAGS PASSWORD PRIVILEGE,PROCEED ON ERR PROMPT PROTECT QUERY RESET!RETURN SET SILENT SLAVE SPLITo%STOP ON ERR TEXT TIMEOUT TITLE TOPr%UNLOCK VERBOSE WAIT WHOLE XSTATUSr ZERO ?/HELPNThese items fall into the following general categories: action control flags, Pprompt control, program and system management control, help control, interactive4control, inter-script control and privilege control.HAll items can be called by the smallest unique character string, such as%"TE" for "TEXT", and "G" for "GOTO". I2A. FormattingPNThese four control items select which of the four formats that the interpreterLwill use in the generating of the Selection and Action Field. These controlDwords are only valid immediately following the first field separtor. ]NUMBER (Default State)KA formatting control item that will generate a numeric selection prompt forreach succeeding items.Example:,Delete a file equals " 1 Delete a file"1List a directory equals " 2 List a directory"a(Type a file equals " 3 Type a file" ]ALPHAoIA formatting control item that takes the first character of the selectionlNand uses it as the selection prompt, that character is not further used in theoutput buffer.Example:00;m$`$"!!! !-DDelete a file equals " D Delete a file"R7LDirectory of files equals " L Directory of files"e ]REPEATIA formatting control item that takes the first character of the selectione'and repeats it as the selection prompt.cExample:,Delete a file equals " D Delete a file"1List a directory equals " L List a directory"g ]BLANKeDA formatting control item that displays no characters as a selectionprompt.nExample:&Delete a file equals " Delete a file",List a directory equals " List a directory" 2B. Action Control Flag rNThis set of control items dictates what actions the interpreter will take whenexecuting action statements. %CLEAR (Default State)oMAn action control item flag that will cause the screen to be cleared prior to Kthe execution of the first action item or control item that produces output]Mto the screen. To re-clear the screen during the proccessing of a selection,rLthe flag must be set again within the selection. This flag only effects theNselection where it is encountered, subsequent selections revert to the defaultJflag. (This is a valid initialization field control item which will then 9become the default flag if set at the end of processing.) %NO CLEARMAn action control item flag that will prevents the screen from being cleared.oIThis flag only effects the selection where it is encountered, subsequent hLselection revert to the default flag. (This is a valid initialization field6control item which will then become the default flag.) %STOP ON ERR (Default State)eMAn action control item flag that prevents further execution of a selection iffLan action item returns an exit status of non-one (one being a success code).HThis flag only effects the selection where it is encountered, subsequentLselection revert to the default flag. (This is a valid initialization field6control item which will then become the default flag.) %PROCEED ON ERRKAn action control item flag that allows further execution of a selection no Jmatter what exit status is returned. This flag only effects the selectionIwhere it is encountered, subsequent selection revert to the default flag.sI(This is a valid initialization field control item which will then becomecthe default flag.) %SILENT (Default State)NAn action control item flag that will cause the silent submission of an actionFitem to be executed. This flag only effects the selection where it isIencountered, subsequent selection revert to the default flag. (This is acJvalid initialization field control item which will then become the defaultflag.) %VERBOSE JAn action control item flag that will cause the action item to be executedMto be displayed on the screen prior to its execution. This flag only effectsgIthe selection where it is encountered, subsequent selection revert to the Ldefault flag. (This is a valid initialization field control item which willthen become the default flag.) o %QUERY (Default State)eJAn action control item flag that causes the script interpreter to wait forIthe completion of an action item before continuing. If an exit status oftJnon-one is returned, and there are additional items in the selection then Mthe screen is held and the user is asked whether to continue with the further Mexecution of the selection. If there were no more items then the interpreterhMwill treat the case as a WAIT. This selection will override the state of theaM"STOP/PROCEED ON ERR" flag. This flag only effects the selection where it iscOencountered, subsequent selection revert to the default flag. (This is a valid Kinitialization field control item which will then become the default flag.)o %WAITJAn action control item flag that causes the script interpreter to wait forIthe completion of an action item before continuing. If an exit status ofoHnon-one is returned, then the screen is held and the user is prompted toKenter a to continue. Further execution of the selection is determinedoKby the state of the "STOP/PROCEED ON ERR' flag. This fl00;u$#"" cTADATADATAag only effects theeMselection where it is encountered, subsequent selection revert to the defaulthIflag. (This is a valid initialization field control item which will thenfbecome the default flag.)i %CONTINUEJAn action control item flag that causes the script interpreter to wait forKthe completion of an action item before continuing. The exit status is noteHexamined. This flag only effects the selection where it is encountered,Bsubsequent selection revert to the default flag. (This is a validKinitialization field control item which will then become the default flag.)e %HOLDJAn action control item flag that causes the script interpreter to wait forHthe completion of an action item, hold the screen and prompt the user toKenter a to continue. Further execution of the selection is determinedaKby the state of the "STOP/PROCEED ON ERR" flag. This flag only effects theoMselection where it is encountered, subsequent selection revert to the default Jflag. (This is a valid initialization field control item which will then become the default flag.)f %BATCHeJAn action control item flag that causes the script interpreter to continueEimmediately after the requesting of an action item. The state of thetL"STOP/PROCEED ON ERR" flag is ignored. This flag only effects the selectionIwhere it is encountered, subsequent selection revert to the default flag.lM(This is a valid initialization field control item which will then become thetdefault flag.) l2C. Prompting ItemsJThese control items are used to interact with the user in obtaining action7item substitution strings. (See Substitution section.)i %ASK (insert) textnIA prompting control item, that causes the text to be outputted and a "yesIor no" response is expected where a lone is defaulted to a "no". IfnDthe response is "yes" or "Yes" then the "insert" text is used as the substitution.s %ASKS (default) textiMA prompting control item, that causes the text to be outputted and a responsepMexpected. if the response is a lone , then the "default" text is used as 9the substitution. The "default" text can have no length.o %ASKS textiMA prompting control item, that causes the text to outputted and a response isdJrequired. The response must have length and is used as the substitution. *2D. Program and System Management ControlNThese control items effect how the script interpreter reacts after a selection-is made and a set of system management tools.u %PROTECTsLA control item that allows only privileged users from entering a menu. This9item is only valid in the Title and Initailization Field. %CLI clinameSHAn action control item that tells the script interpreter to which CLI toHpass the command. The default state of interpreter is that of terminal.>This item is only valid in the Title and Initialization Field. %TIMEOUT noGA control item that enters an input timeout value for the selection anddLprompt items. The timeout length is equal to 10 seconds times n, where n isNa number between 1 and 255. Valid only in the Title and Initialization field. %DELAY nnMA control item that causes the interpreter to stop for 'n' seconds, where 'n'cis a number between 1 and 999. %PROMPTOA menu control item that causes the interpreter to prompt for user's selections Iwithout cursor pointer. Valid only in the Title and Initalization field.m %WHOLE (Default State)uMA menu control item that causes the entire screen to used by the interpreter.00Valid only in the Title and Initalization field. %SPLITlKA menu control item that causes the interpreter to split the screen on the tKexecution of a selection. Valid only in the Title and Initalization field.e %OVERRIDE FLAGS (Default State)OA menu control item that allows a 'child' script to start with all flags in theunormal, default states.o %MAINTAIN FLAGSPA menu control item that forces a 'child' script to adopt the flag states of itsparent.i %DISALLOWMA menu control item that prevents the executio00;}$`$"!!! !n of all following action items%Lin the the Title and Initialization field on a menu "RETURN". Valid only in#the Title and Initialization field.l %ALLOW (Default State)iKA menu control item that allows the execution of all following action itemshLin the the Title and Initialization field on a menu "RETURN". Valid only in#the Title and Initialization field.n %HALT INITIALIZATION ON RETURNiKA menu control item that halts the execution of the initialization sequenceeAon a "RETURN". Valid only in the Title and Initialization field.e %SLAVEd)A control item that slaves the terminal. V %FREE+A control item that un-slaves the terminal.O %LOCKPA control item that disables the user command submit (the input "!" option), theNscript goto (the input "@" option), the script reset (the input "PF3" option),Mand the script exit (the input "PF4" option) inputs. Valid only in the Title and Initialization field.s %UNLOCK (Default State)MA control item that turns off the "LOCK" control function. Valid only in thefTitle and Initialization field.t %OFFlHA control item that forces the terminal to be logged off when the scriptEinterpreter exits. Valid only in the Title and Initialization field.( %ON (Default)LA control item that turns off the "OFF" control function. Valid only in the Title and Initialization field. 2E. Help ControlpOThis set of control items deals with what help is availible for each selection,t and the prompting items, if any. %? textKA help control item that causes the interpreter to request the Help Process%Kwith the text appended as a topic descriptor. The following control statestNare used for the Help request: (1) PROCEED ON ERR, (2) HOLD on RSX or WAIT on1VMS, and (3) the CLEAR/NO CLEAR flag is examined.  %? (filespec)KA help control item that causes the interpreter to request the Type ProcesspJwith the filespec appended. The following control states are used for theMType request: (1) PROCEED ON ERR, (2) HOLD, and (3) the CLEAR/NO CLEAR flagc is examined. %? "text"MA help control item that causes the interpreter to write the text to the useroKThe following control states are used: (1) HOLD, and (2) NO CLEAR. (There is no process requested.),# %ASK? text or (filespec) or "text"mFA help contorl item for the prompt item that must be coupled directly Gfollowing the prompt item in the script. The source of the help is thegAsame as the normal help control items; see the above three items., %DEBUG KA control item that will cause the interpreter to display the current stateiMof all important flags between the execution of all items. It is also causesoMthe interpreter to act as though the verbose flag was set. This item is onlyu-valid in the Title and Initialization Field. m2F. Interactive ControlMThese control items deal with all user input and output that do not deal withpsubstitution or help.e %TEXT text/"text"LOutputs the text to the user. Text strings can be surrounded double quotes.KTo pass a null string or a linefeed to the user, you must use the quotes asiin (%TEXT ""). %TITLE textHA prompting control item, valid only when not in split screen mode, thatHclears the screen and output the text to the user on the top line of theHscreen. It then set the scrolling margins so that the top title line is9preserved. Valid only in the Selection and Action Field.u %TOPnHA prompting control item, valid only when not in split screen mode, thatJclears the screen, homes the cursor and sets the scrolling margins so thatIthe next outputted text will be preserved. This is designed to work withrIthe verbose mode, to allow the spawned command to be saved on the screen.s-Valid only in the Selection and Action field.t %CHOICEHA prompting control item, valid only when not in split screen mode, thatJwill clear the screen, homes the cursor, display the text of the selectionLfrom the menu, (first line only), and sets the scrolling margins so that theFtext will be preserved. Val00;$#"" cTADATADATAid only in the Selection and Action field. %INQUIRYtEOutputs text "Do you wish to halt this selection? ", to the user. Ab9"YES" response will stop the processing of the selection.c %AGAINiGOutputs text "Do you wish to repeat this selection? ", to the user. AoH"YES" response will restart the processing of the selection. Flags willObe reset to their default state. Valid only in the Selection and Action field.i %BLOCKnLOutputs the text "Please enter to continue: " to the user and wait forinput. %GRAPHIC command stringIThe command string is executed immediately after every output of the menuuJscreen, but prior to the acceptance of any input. The item is designed toKwork with the DECUS VTM or the modified VTN screen output formatting tasks.o0Valid only in the Title and Initialization field %LAST command stringMThe command string is executed just prior to the process exiting. The stringiMis NOT executed at script changes and has no effect on future scripts. Validn*only in the Title and Initialization field %KILL LAST (Cancels the effects of the LAST command. %ERASEtJIf in split screen, then the cursor is returned to the line below the menuIoutput, then the screen is cleared below it. If no in split screen, theniOit is treated as a screen reset. Valid only in the Selection and Action field.r %RESET SCREENIClears all screen scroll control, homes the cursor and clears the screen.e.Valid only in the Selection and Action field. '2G. Inter-Script and Privilege ControlnLThese control items control what other scripts are presented and both script+and selection password and privilege masks.o %GOTO menuscript filespecHA control item that closes execution of the present script and opens theJfile listed for interpretation and execution. Valid only in the Selectionand Action field. %CALL menuscript filespecHA control item that closes execution of the present script and opens theJfile listed for interpretation and execution. The present script filenameIis saved on a stack for later return. The Call does not save any furtherbKcontext than the filename and upon Return execution starts at the beginning Nexcept for Initilization Password processing. Valid only in the Selection andthe Action field.  %RETURNJA control item that closes execution of the present script and attempts toFremove a filename from its stack. If there is no further names on the-stack, then the return is treated as an Exit.e %ZEROPA control item that closes execution of the present script and opens the initialNscript entered by the user and sets the script nesting level to 1. Valid only&in the Selection and the Action field. %EXITIA control item that closes execution of the present script and causes thefprocess to exit. %XSTATUS nmLA control item that closes execution of the script and causes the process toLexit with an exit status of the number "n". Valid only in the Selection and5Action field, and only if the LOGOFF flag is not set.  %PASSWORD password nameKA control item that causes the password process to be invoked with the nameiGgiven. When this item occurs within the Title and Initialization field.Kit controls entry into the entire menu screen, when this item occurs withinuHa Selection and Action field, it controls the further processing of that selection. %PRIVILEGE password namesKA control item that causes the password process to be invoked with the namenJgiven. That process returns a 15 element mask that is used in determiningthe results of the "IF" item.  %SET nsLA control item that will set the privilege mask with the number n. The low-Morder, privilege user bit is not effected. The SET 1 and SET 0 commands setss?or clears, an additional logic flag, not in the privilege mask.d %IF nMA control item that matches the privilege mask with the number n (1 to 16) to Ldetermine whether the next item of the selection should be executed. If theNmatch fails then a message is outputted, if in verbose m00;$`$"!!! !ode, and the followingPitem of the selection is skipped. IF 0 command tests the additional logic flag. %IFNOT ntMA control item that matches the reverse of the privilege mask with the numbernJn (1 to 16) to determine whether the next item of the selection should be Nexecuted. If the match fails then a message is outputted, if in verbose mode,Nand the following item of the selection is skipped. IFNOT 0 command tests theadditional logic flag. %END OA control item that stops the execution of a selection. This item is used withe>the "IF" and "IFNOT" control items in selection flow control. 3. Error HandlingIScript syntax errors are considered fatal, as are script file processing tHerrors. If this error occurs on the first script, then the process willEexit. On subsequent scripts, then the previous script is re-entered.dHProcess errors are handled by control state flags. Selection errors are+flagged, and the screen is then re-painted. 4. SubstitutionKSubstitution is handled on two levels, the first is based on strings passedcLby the command line and replaces the sequence "\\n" where n is a number fromJ1 to 6. Additionally to these six possible strings, the sequence "\\0" isLreplaced by the lower two octals of the users' terminal number. This stringIcan then be used to create discrete filenames for each version of SCRIPT aKrunning. This sequence can occur anywhere in the script. The second levelrMis local to each selection with the strings aquired by the ASK and ASKS itemsoIof that selection. These strings are cleared before each selection. ThelIsequence that would be replaced is "##n" where n is a number from 1 to 4.tHIn both cases the order in which the string is aquired is related to thenumber in the sequence.r5. User InputKValid cursor control inputs are: (1) arrow keys, (2) tab and backspace, (3)TJspace and "0". Selection with the cursor is done by a . Selection ofKhelp with the cursor is done with a "?". All other characters are accepted Has the beginning of a string input selection. Strings terminated with aF"" are processed as a selection request, Strings terminated with aG"?" are processed as a help request. If the first character of theeKstring is a "!" then the string is not treated as a request. The followingnHstring is submitted as an Action item with the following control states:L(1) CLEAR, (2) PROCEED ON ERR, and (3) WAIT. If the first character of the Jstring is a "@" then the string is treated as a filespec for a "GOTO" likeLaction. If the first character of the string is a "?" then the remainder ofJthe string is used as an argument to HELP. A lone "?" or a string of just;"HELP" or "help" will call for an input syntax help screen.iEFunction key also have meaning: PF1 is a screen reset; PF2 is a helptDrequest; PF3 is a process reset that will return to the first script3entered by the process; and PF4 is an Exit request.e6. Command Line SwitchesgK(There will be no switches defined in the near future. Below functionalityIJcan be accomplished by the use of substitution into "empty" control and/oraction item statements. Example: Title Text % \\1g % whateverPand a command line that includes " SCR "CLEAR\%VERBOSE\%WAIT\%TIME 4" filespec".JIf no switches are required then a "SCR "" filespec" would also be legal. 7. Examples of Scripts A. File Services s] Return to the Main Menu %RETURN List of Current Directory  %HOLD $PIP /BRd Type a Filet %NO CLEAR %ASKS Please enter file: l %HOLD %CLEARo $TYPE ##0 Copy a Fileo %NO CLEAR %ASKS File(s) to copy from:  %ASKS () Copy to:  $COPY ##0 ##1]nPlease enter option: O_______________________________________________________________________________hB. File Services]aReturn to the Main Menu\%RET%List of Current Directory\%H\$PIP /BRc:Type a File\%N\ASKS Please enter file: \%H\%CLE\$TYPE ##0KCopy a File\%N\ASKS Files to copy from: \%ASK00;$#"" cTADATADATAS () Copy to: \$COPY ##0 ##1S]ePlease enter option: O_______________________________________________________________________________ KExamples 'A' and 'B', both will generate the identical screens and results,_Jbut demonstrate different concepts in script generation. Example 'A' is aJclearer functional statement of the script. On the otherhand, example 'B'0accurately portrays how the screen will appear. 8. Summary of Control ItemsNValid Title and Initialization Control Items (Least unique string capitolized)9ALlow ASK (insert) text ASKS (default) text ASKS text_/ASK? text ASK? (filespec) ASK? "text" BAtch &BLock CLEar CLI cliname COntinue#DEBug DELay n DIsallow ENds*EXit Free Graphic command HAlt init!HOld IF n IFNot n INquiry*Kill last LAst command LOck MaintainNo clear OFf ON OVerridec:PAssword #/name PRIvilege #/name PROCeed on err PROMpt!PROTect Query Return SEt nl%SIlent SLave SPlit STop on errs.TExt text/"text" TImeout n Unlock VerboseWAit WHolePValid Selection and Action Field Control Items (Least unique string capitolized)9AGain ASK (insert) text ASKS (default) text ASKS text /ASK? text ASK? (filespec) ASK? "text" BAtchn&BLock CAll filespec CHoice CLear!COntinue Delay n ENd ERasea(EXit Free Goto filespec HElp text+HElp (filespec) HElp "text" HOld IF nn.IFNot n INquiry No clear PAssword #/name/PRIvilege #/name PROceed on err Query RESetx RETurn SEt n SIlent SLave/STop on err TExt text/"text" TItle text TOpn"Verbose Wait Xstatus n Zero"? text ? (filespec) ? "text" 9. Debug OutputMWhen the interpreter is in debug mode, (either by the control item "DEBUG" or Lby the inclusion of a "D" in the command invocation (SCRIPTDEBUG etc.)) thenIprior to the execution of each control or action item, it will output theNstatus of 16 important control flags and words. The output appears like this:5CLR n SIL n FOR n SPN n WHO n LOG n LCK n CUR n CLI no3ALL n STP n OVR n LEV n FNC n SEL n LEN n PRVMSK n where:DCLR = The status of the CLEAR Flag, which is set by the control item# "CLEAR" and reset by "NO CLEAR".gESIL = The status of the SILENT Flag, which is set by the control item # "SILENT" and reset by "VERBOSE".GKFOR = The status of the screen format word, which is set by the first fieldt= separtor item; 1 = "NUMBER", 2 = "ALPHA", 3 = "BATCH", ando 4 = "REPEAT".ESPN = The status of the action item control word, which can have the TB following values: 1 = QUERY, 2 = WAIT, 3 = HOLD, 4 = BATCH, and 5 = CONTINUE.DWHO = The status of the WHOLE Flag, which is set by the control item "WHOLE" and reset by "SPLIT".ELOG = The status of the LOGOUT Flag, which is set by the control item" "OFF" and reset by "ON".sCLCK = The status of the LOCK Flag, which is set by the control itemo "LOCK" and reset by "UNLOCK".FCUR = The status of the CURSOR Flag, which is set by default and reset by the "PROMPT" control item.FCLI = The status of the CLIMOD Flag, which is set when a "CLI" controlE item is successfully executed. If this flag is set, it forces thehG interpreter to reset the terminal to its original CLI when it exits.hDALL = The status of the ALLOW Flag, which is set by the control item# "ALLOW" and reset by "DISALLOW".KJSTP = The status of the STOP ON ERR Flag, which is set by the control item/ "STOP ON ERR" and reset by "PROCEED ON ERR". GOVR = The status of the OVERRIDE Flag, which is set by the control itemo& "OVERRIDE" and reset by "MAINTAIN".HLEV = The status of the LEVEL control word which shows the nesting levelD of the present script. Levels are decended by the "CALL" control& item and ascended by the "RETURN". EFUNC = The control item/function about to be executed. See the tableO below for its meaning: -1 ACTION 2 HELP/? 3 GOTO 4 QUERY 5 WAIT <6 HOLD 7 CLEAR 8 NO CLEAR 9 STOP ON E00;$<$"!!! !RR 10 PROCD ON ERR.11 SILENT 12 VERBOSE 13 CALL 14 RETURN 15 ASK-16 ASKS 17 BATCH 18 TEXT 19 INQUIRY 20 EXITy.21 PASSWORD 22 WHOLE 23 SPLIT 24 CLI 25 AGAIN326 CONTINUE 27 BLOCK 28 PROMPT 29 DISALLOW 30 ALLOWr/31 SLAVE 32 FREE 33 TIMEOUT 34 PRIVILEGE 35 IFc+36 ASK? 37 TITLE 38 TOP 39 CHOICE 40 LOCK *41 UNLOCK 42 ON 43 OFF 44 ERASE 45 RESET446 MAINTAIN 47 OVERRIDE 48 DELAY 49 IFNOT 50 XSTATUS251 ZERO 52 END 53 SET 54 HALT INIT 55 KILL LASTJSEL = The number of the selection chosen between 1 and 22 with 0 being theG initialization process. Alpha input is converted to a numeric equalRC to its equivilent if the "NUMBER" screen format had been chosen.UGLEN = The length, if any, of the item/function's object string, such as F filename for the "GOTO" item or the number of the "TIMEOUT". Items4 such as "HOLD" or "CLEAR" have no object strings.HPRVMSK = The state of the Privilege Mask word, which is really a sixteenE element bit mask. The high order fifteen bits are returned by the2C "PRIVILEGE" item, and the lowest order bit (the 1 bit) is set ort< cleared by whether the user is privileged (1) or not (0).PWhen evaluating the results, remember, that the output is prior to the executionMof the function in the "FNC n" field, therefore, whatever flags/control wordsE=are modified by that function/item will not have taken place.gMAn additional debug feature is setting the no execution flag by the inclusion Oof a "N" in the command invocation (SCRNO or SCRIPTNODEBUG etc.). In this modeGLthe interpreter will be forced into verbose mode but no action items will be executed. $10. Screen Attribute Control MacrosLThere are a number of attributes that can be manipulated by a set of specialPcommands. These controls are only valid in a text field that is to be displayedLon the menu. They are not valid in the text field of any control item. TheMsyntax of these special commands is a "!" followed immediately by the controlnNstring or word which must be terminated by a space or tab. (The string can beKshorten to its first character.) When encountered, the "!", the string and0Mthe space or tab are replaced by the appropriate escape sequence. Attributes Mare only valid on the line where they are found. The interpreter will append Ja sequence to return the attributes to normal, if needed at the end of the1line. The attributes that can be controlled are:h!Bold Bold Characters!!Flash Flashing Characters !Underline Underline Characterss!Reverse Reverse Video+!Normal The above atrributes are cancelleds!Wide Double Wide Charactersr!!Tall Doulbe Tall Characters ***p,!Height Double Wide and Tall Characters ***"!Ascii Normal/Ascii Character Set!Graphic Graphic Character Set&!Special Special Graphic Character Set4*** Valid only in the Title and Initialization Fieldthe end of the1line. The attributes that can be controlled are:h!Bold Bold Characters!!Flash Flashing Characters !Underline Underline Characterss!Rev|Jw,BB V lSYSYSYSYTITITI00<$#"" cTADATADATA~dǸ~ZTvX|d` e BBCC w qqq0 fqC Q IwP NC Q Qqw$  0     e 92       w` &  /<  e 89f"e\e!e 5f 2* eA &f&f  : /<    s ,#b3!  b3!.a & > >2e&|&  f&&  e#e|& f&&G& & & & && '&&&f& v !# $#w)5 C&wCË @ÊAW H  Rw P)& &( &  zRRRI! w\  & & & & ` J fRCҐCҐRC  &w&C & ` `Ba#   L  P aa  V則 b: ? pn@Z LZ XZ zdZ fjZ ^pZ VvZ N|Z FZ >Z 6Z .Z &Z Z 0\fmZ dZ kV7<\Z 7 Dm=V6mmVE7&me07 jVE r7 me07iZ -lw2/l lll-l1^m ll^ )^H7 [7U8m^D[$m^Nn[m ~l ~l-zlllfl^"K 8[-4[ w.7 Nl Fl @lh^\M^\I-WE^07h < 9Bh  dS^ dS^zhphWpmgq rqS^Rh !7gg] b T^H ~]"] bj]w`]Z]\ 2bF]\  0 b \w6(]\  \b \w`]\  0 _ \w\\  \_ |\w"\d\}\j\S^? V\ _{\y\D\S^AwS^ZwS^@*\*[ u^\ \[T^G _T^Sq4\wbU^Ko"\wPV^S m\ _V^ V^ j[ _wV^? g[ $_wd[wb[a[Z[T^AF[ _wT^L ][([ _wfZn[wXd[W^[ [ZT^L _w2T^A S2[  _w4T^H%P[U^O '_wU^A LZ 8_wIZw GZT^O FZ _wCZwAZ@ZDZ 0_w=Z6Z*ZT^X _w^T^R 9^Z ,_wBT^N 6BZ 4_w&3.Zw\1$Z0ZY  _w-ZY _w*YYT^OY _wT^E&Yw$Yw"Y!YZYNYT^N _wT^FYwU^ U^ hY #_wjU^N LY 1_wN8Ywf.Y(YX 7_w YX _w XXXT^A _wT^RXwU^O X  _wU^I X "_wXwX~X"X _w`hXXT^EwU^T JXW _w,U^S ,XW -_wXwD XXWWT^T  _wT^I W  _wT^L W _wT^E W 5_wT^H W 9_wjrWwhWbWWWT^E _wTT^I 6W %_w8T^O W &_wWWV  _wVV _wVxV 2_wVbV 3_wVPVLV-HVV>VS^ S^  *V "V V-VfVK^VVV00<$#"" cTADATADATA-UHVUS^ S^  U U U-UV&VUU1i UmU U U2S^1i  U7UUw Uw(U jU bU^UZU-VUULUS^ S^  8U 0U .U-*UtUwx jU`[U XUT b TT Tb4UT(UT _ TT T_U TTT1i TmT T T2S^1i  tT7tTTw ThT`TBVTDT Ie -:T-4T7 ,T T Ie TpT TfTl[S ~TT7 S7 T{FTSS^!-Sy,TSS1S^Ie S S S SwST^ArS׭u<7 SSIe (Ie BIe fSiSwjST^SgS׭-<bS8SIe (Ie 2Ie S^xSw ST^G\bS׭;SRIe (Ie 0Ie RS.SwRRT^N"QS׭;7 |RRIe [Ie 0Ie mIe RFRwRT^B#DR׭I;*RTRIe [Ie 1Ie mIe 0R9Rw4RT^F#7vR׭:QRIe [Ie 5Ie mIe Q,:Rw^QT^U#*$R׭:QQIe [Ie 4Ie mIe QQw QT^R#Q׭S:4Q^QIe [Ie 7Ie mIe :QQw>QT^H)-"Q% 2Q" .QlQ׭9QPIe #Ie 3Ie P8Qw\PT^H&-P"-PQ׭97 PPIe #Ie 4Ie PPwPT^T(-lP$ ~P! vPP׭79bPBPIe #Ie :Ie &PPT,PT^T%-P!-"P^P׭87 POIe #Ie ;Ie O,P)OT^WP׭8OIe #Ie 6Ie OOOwOOe|OrO nOO fO ^O^OR^ R^  FO wHOOOO N7 NIe [Ie 0Ie mIe LO O7 OIe (Ie BIe $O-N Ie NNO-Nw>-Nw2wNNxN-N Ie NfN `N 0 _ VNN  FN_Ie Ie Ie Ie I H76H7 67 67 67 6HHZHPHZHNHLHBHJH 7[ P31 zH Z zZ zZ zZ h{ ny4nH7 ׭ /Bw~׭.Dwrw׭.OF.O7F \& twbFwXFI׭. ׭.0׭. Fw׭.Fw׭|. tF BhF[ w׭V.?00<$$"!!! !NFed F׭@. ׭8.0Fw&F}F|F.\B .-zE[ wE[ -.wz \E׭- w׭- w׭- w׭- k׭-׭- 5׭-#E-^ D\ ֽirEY >|] Hx Nv"\ &weDE-D D$\ ՘`(E׭"-w׭-w׭ --2\ ׭,Ow,O7D@\& rwXD-7t>X\ &w%~B->BB7 6B$lB ,B!`BX*S*f\ wBBw8BAedAwb"B-Awj[ B+e] hA80:0w A-TAw$ >[ `wA X x r"\ V"w8A A[ ([ @!t\ P[ n[ W 6x Rr-@Y-& Dtu "t (r(AY,8& tu s qAw@@ ] @J@ 7B@>@wr@-@dwt@ 7_r@ n@w[ 4@@P@ _w47_0@7 @ _ 7_4@0@1i7@R@e@-.eX wu Frd >rv 6ru .ru &ru ru ru rd r pRY vu qu qu qd qv qv qv qu q pY,8& ru lr rpt?\(? lb?->w >->2w@? >wB PvZ wzX u] q o>"\ >_=Q>t] 2>-- ->,7 ,wp>[ kX Zuu p non>[ kfX 2u No"\ F>X u .o0>=">=>-=8׭&4 uZ pZ pZ o.Z oZ o0Z oZ oZ oY pZ oY o n=\ .- =] V[ tr= < -+] u ] *N=-<4] 8=H] &*= <-l+wP <<7 \+=<1i#F2i#B-<>3i0< 5 2 c< <<q7< << |<x<<1q^ * < b< \<;  :wwu$;: _w wz-:w r:: _-:w~ b-r:w `] Jh] wXl:wNj:T: i:j:`21i^ 9g: 79wzdp:9wa`:9w^P:9w[@:9wX0:7 9wU":9wR:7 9wO: X(H(N9wL97 4(wxI9H9Wp m(]r b9 ((wB9 ' 'wj?9Wp m'rr] 9'w6:\9-&9w7 8 8 8we98-884$981i)8m811iq z8 8 8-88/8w-8 V8wt8H87x8 w\ 8[ v oZ jZ jD8 `8`e1i& Xj (8 ni'p8Y7& bku @k Fiu?  8 ,_$wuY uy w"87 7cv7q 7mj7 7w7-7wp7 7c72i(w7 ,7 `7 \7wBet7L7-H7D77\71i)L7m*711iq 6 >7 7-77\7w R76676 w 7[  HnZ 4iZ ,i6 6`e1i& h 6 g6l] |׭ wx6-t6 ׭n? 6 ,_$wb R6'l6H6q >66R6`^q H6 66h606m 6 7&6w00<$#"" cTADATADATAP665q 6m5 76w.6[  @mZ ,hZ $h5 5`e1i& g 5 f5l] t׭ w85-45 ׭f? z5 ,_$wZ 5d55q7!4 5a0^q 7!475f5m4 $5 "5wJ5D54w45.5 447 r#541i#H2i#D-4@3i04 7 4 c4 44q74 44 44(41q^ " 4 x4 r44e`464 24wx4D4311i^ " 24 3 4 4- 4%w*[ 3"׭"" JkZ 6fZ .f e^ e Z f d3$3 kZ eZ e e^ e Z e d3N33w.3[ FW Tj pd-2Y6& bfu @f FdF3Y,8& 8fu f d3uY wuy ww2w2-6!wz[ x~2 22`21id `22[ bL2e&4W d [ -w 2wzfX :i Vc0w"\ B2t] 1v w 21w0F.1A.2 4 0 1 w1cwp7 Z1t1 7t 7t 7t 7t 7t-7t-w>1-H1w,\11 .1 (121i}_l1 }_~`1 7$10 ] [ <-Jwww$1[ W g b-0Y6& cu c ar0Y,8& cu c ap0uY uy w2"00"000 00B0 7_@0w hl0/we\0[ W g /wRS/z] [ Q/w2O/] bL/,/YH/e2i ^u ~a \` .-. ..v E6/7 7 Z@/w>/[ . <..`21id .:.[ |.e&HW [ =w@E7 ..E  -4.--w1v.. w w7 -  ".2i1w - .*6..2i/w2i:w2i07`|- x-w-n-w- ^--- #wr p- 1wb#-.- 7'`21iq  'V'[  -% Z^Z FYZ >Y&e!&eq X !7&Z Y W&&e&pW &[ ƶW ] W-2&Y`-& Yu Y W&Y,8& zYu XY ^W`&whV& 00<$$"!!! !"&% d]Z PXZ HX! %ae1i& W !%7%Z X V%W \ V-b%Y`-& Xu X V%Y,8& Xu X V%w%$X R\ nV"\ $wvd%[ X (\ DVw~B%%[ ҵ$ 7_$$1i7$$2i(]2i"w $ v$$`21iq $$t$[  - % [Z VZ VP$e!&e~q `V !70$Z V nUrp$$e&|\W 0 YoP$# n>$ $`21iq #l"$[  f-l% &[Z VZ V#e!&eq U !7|#Z U Tj#d#e&pW | h#[ W bZ ~T-"Y6& pVu NV TTcT#Y,8& FVu $V *Ta,#w_"# "" 0ZZ UZ U! "ae1i& T !"7"Z T S\"W Y S-."Y6& Uu ~U SX"Y,8& vUu TU ZSV\"wTR"[ ׭ ?-!w׭ ?-!w!!-!P " |!!r!!^ ^  !-!L!wJ!@! I!.!`2^q Z!G![ \ -% XZ SZ S e!&e~q 0S !7!Z `S >RE@! e&L\W 4B ![ d-j $XZ SZ Ser R  Z R Q@ ] > [ W |W Q- Y`-& Su hS nQ9n Y,8& `Su >S DQ7F w& ? bA2 W/  0W] R] R] R P=   V] Q] R P= W/ V] Q] ~R] Q] jR pPr  V] rQ] >R DP( ? h@8] ] $Z dYb_d dYb_d dYb_q dYb_q &Do you wish to repeat this selection:  #Please press "RETURN" to continue:  $Do you wish to halt this selection:  Selection Not Found No Help Found for This Selection Privileged Insufficent  Access Denied File Process Error , Syntax Error on Line 2 Command Line Syntax Error Terminal Time-Out Exit  Opening File , CLR " SIL " FOR " SPN " WHO " LOG " LCK " CUR " CLI " ALL " STP " OVR " LEV " FNC " SEL " LEN " PRVMSK  Present menu script: , 2 , , @p8 r417 2 >SCR>[1;24r[;[3;24r[J[1,24rYYYYYYYYYYYYYYYdR^(dR^4dr@drLdqXdJeddR^pdR^|d^dJed^dYYYYdYb_^u]F7Z u77j4J J`v40F\ & < RH Ndz  7!&!7!j')j'!'|(((X)h):*77@+7uudZY ZYYXd$ZY dYb_tvY ZYYd ZYY@ddYY^_dYYY^_(d 44,4r4 ZYY^_dd ZYYLdYYY(d 4V0,4r4 ZYYdd ZYY4d ZYYpd dYb_^u9$9;;;;;<<,<< AABVC`C.DlDD*EEEnF|FFFFF 1 2 3 4 5 6 7 8 910111213141516171819202122HELP MENU0102030405060708091011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980LB:[1,3]\SET /SLAVE=TI:SET /NOSLAVE=TI:BYE~Jw}Fwvwwrww@xvrPbw8Dܵ<~X vwʳгڳ0Pf&f ` *  נ נ  נננ"D נaנz E ѐEp(p נ$נ0נ9נAנZנ_נ:  Vנ[ȕ]נ<ȕ>ȋ8 ~נ%נ*נ-נ.נ0נ9נAנZȠ yנ0נ7נ*נ,A jȠh f  oנ"A   #A aנ$נ%נ*נ0נ9נAנZנ_נ.  נ.נ; dנ0נ9 ]נ- X נ* QA  נ, Dנ=  >5 B>U (w^נ/* . ,נ$נ-נ.נ0נ9נAנZ נ_ נ:  Dנ"  0f&f E^`  UQ  UQ ËUI U `e  !ddC    D%*.C U 0 0 W ,Uw6W /@ : ^BDaW-Ί WNWOD!BΊz CECCD! D! ΋5  e ΐ TpRpR΋pBC5N KR΋KBAE:D0CĊ f eB  Dҁ CSĊ pG WB E Br Ε f)& 6 l(*  E 'W " =N  W :+W = 1 #W ,W / %W %W *Հ W <W [W >W ] v(* 6 e00<$#"" cTADATADATA dd  &&f  E3  ߆ %  І %ĉĆ BB ĉ , ,‰; ,JJV 3Vȥ ȕ$ȥ+ `l s@ Ps`; Fs,3/"R"'" 3 0As  :   >3  H JhŀdՀ`[WB ;  M  B@ 3VA3 N  & Lw wF3   H Z3 3 V3 N J  "e$"F3 Z NE% % % 5%% W 3W H Nwp `5@ @  E5e73 *,JJ U,J Jҕ JxT96%  Ttr  $%T %T R%TR3,% e3LsNP(3LsN xsP%% %2 hsR%2%4 TsPRNZL&P N N5@ Х,  NF %RN ‰Nc % U%%  2 4 %2R%6RR s%B%.D THwA3>`A H lT  BE&~WtEB~LB  *sWwR". N%LHTD` B~ĵRHTb%S%.SR *HA3L >`A  $J J N   - ΋  BE~WtEB~w . G%LbHT w w Е `CBwД~w TH @` C~nޅFLl҅ HHHHHHHH |HHHHHH<(0+  "1""$BBDBBDB   Ee f  z % % e@ `5 & & D  6N D D eD e`D %   &fH”E  D   D 慡e BCE DIEN   ` ɕ = -5+-` #"   A s&DE s& sA ae0b  ~ҕ*~%  0   -+% @LlF00<$$"!!! !l,N|@ F(Ъ,fzԫޫ`">Vnάެ !!@ bdhvx^`0____________________;________W_____}__y___;;;;1;;;;;;;13;;9; -- ERRORFCS: in " from " at or afterExiting due to (Error count exceeded)at PC = (@Invalid error callTask initialization failureOdd address trap (SST0)Segment fault (SST1)T-bit or BPT trap (SST2)IOT trap (SST3)Reserved instruction trap (SST4)Non-RSX EMT trap (SST5) TRAP instruction trap (SST6) PDP-11/40 FIS trap (SST7) FPP hardware fault FPP illegal opcode trap FPP undefined variable trapFPP maintenance trapREWIND errorDuplicate file specificationsInput record too longBACKSPACE errorEnd-of-file during readRecord number outside rangeAccess mode not specifiedToo many records in I/O statementClose errorNo such fileOpen failureMixed file access modes Invalid logical unit number!ENDFILE error"Unit already open#Segmented record format error$Attempt to access non-existent record%Inconsistent record length&Error during write'Error during read(Recursive I/O operation)No buffer room*No such device+File name specification error,Inconsistent record type-Keyword value error in OPEN statement.Inconsistent OPEN/CLOSE parameters/Write to readonly file0Unsupported I/O operation1Invalid key specification2Inconsistent key change or duplicate key value3Inconsistent file organization4Specified record locked5No current record6REWRITE error7DELETE error8UNLOCK error9FIND error;List-directed I/O syntax errorSyntax error in format?Output conversion error@Input conversion errorAFormat too big for 'FMTBUF'BOutput statement overflows recordCRecord too small for I/O listDVariable format expression value errorFInteger overflowGInteger zero divideHFloating overflowIFloating zero divideJFloating underflowKFPP floating t00<$#"" cTADATADATAo integer conversion overflowPWrong number of argumentsQInvalid argumentRUndefined exponentiationSLogarithm of zero or negative valueTSquare root of negative valueVInvalid error number[Computed GOTO out of range\Assigned label not in list]Adjustable array dimension error^Array reference outside array_Incompatible FORTRAN object module in task`Missing format conversion routineaFTN FORTRAN error callbUser requested tracebackdDirective: Missing argument(s)eDirective: Invalid event flag numberoVirtual array initialization failurepVirtual array mapping error@A&&ff&&ff7 7 " @a&&f    fN  5 mB m    ~ B C Ɖ6 v%L@a&&f     D C  & m  % %ljmB m e E D C B ~ Em  6 v%L -   eۉe*3 l & fƗA BU%D~   l耖% l. d{lX3 3 d3 d 3UlE0@A t<Η5t\ȗ l 3 XsXsd3 dW@W@ A@ A% P  R  & .  0  eJw \& \  ҕ C~ss` \l \ހbw (   | H ~  :^ d ( &l \  @ H B * 3 \s 3D  D sdbD 3sss B`C r*\wD 333b33 \hD 333 \D 3D 33D 3dO 3 D A 5 5,ؗD 5 H4HRޗH4 5 5 HRȋ 5 0"ED 5UD ȋ < ֗ *3 H *3 b3 d33 *@B A?W xt/ lW-W-UW-5U  l lW-U5U 5  5e3 4 U lU@4G U v %48  l N l4( : l4,  / A t  Օ,x  5eT Օ.eZ \Օ;   )%  e ZՕ"2 h6 \ ( r&?  H .Օ Օ-   e:f s!pU Օ D~  A M•0 M M5& 5Ε ,   e p ep * " P     u쇀3l 3f&x % b %e ee e  Օ Օ  nff)n sw f *8I  *=)98 R eB &&  U x **e *Nlv ΋*.)  & #!)&eP(e && p* w w \*eB 8 `  ( w ((B C DBe ?D(1 >w  6 ) 8C * ) *w* D ep p  C  =  0* = Eե^ A e@ ߇ Ep p  8 V *`)w  C#   D w <e w w .*eB 8 2 * w ( D 8#"#)%ĥ ĥ w  0 *0 @Q$    0 40 60))eB p z :# 3&*w #( P) v @#**fff  @ &*wD. H35(8e$8w22&(e %p8q #)  *R*)@#0l C# 028 B00ĥۇAĥĊ  000 d0 @0 &*0 @ u #eB   *  eBe>  # #D #&0 #   t0@e 6@#040 6w !p2eB  8 $&w * P   w  o83200<%#"" cTADATADATAde& & & B  2PΕ   N Υ$Ε  22Υ   xv Ε f ~ e N* *e*w0,  P  ,)*)   l 0l     ee@ |2 n+ E ep )w ,  w &  LwB #  f  `**w^)0406 l0 &ff 82e&( 0 0 0 80 B0 0 0 0)#0.0+1(e  \%&p*w f( f)f |) .  .8Ae f"( UCɗ&+(e$&% *w  w & W+W- Ba. W#  B0  c  c S W %ec e`s  # 3  & ˥ Z ^C  l f &* R*w BC "& <SY&*p0p21E%0*w(*e "f D CB.E *) l0, *) $ )*)0,40,6 e6p 4 8     8  ***  DP5R RRR e`w* T)fff f f1    1  MwF141612epl2l0p    f u   . 00l  0 *w ,eE D` bl lrw   B eE"s    s-  Csl0f(& e %&&eH FU   Ef tp  ww *#   U@e   ew1  %,,  w J*D !UqqC ӥ:  Ce x   *w *  )Ĕ%.&%;D  5)5@DD ͥ*Ce a%wUX5@ 5sU U*U  5@XU@5 U*U  ʥ*%C!.D` *weC5U5  5 5@e* ) !f V 0 e) . e6p 4 ,08*w*,*1 U4 6w4 HBfep`pw8e2 (*He(  1 :&e  1-1- 111 rrrrr fe w&f &  Be  wX* w p&Ba +- ʥ# . U 0   b   `     &fe    : $ L ( La Ta  @ `W!ZW!AW!9W!0@0,0, f 톇,, w 0     .% " eB U5UU F plp & NeՀ)*f&5ҕ[ "5ҕ, 5ҕ]E 5 5  e0Ґ 1 z  ~ 1 1 1 1 1 1 DEee $ $    f e  C C C e`w  ҥ[, &]00< %>%?%@%!! !  5 s  D wB8 ~8~rPxlPx}8!W !R File Services % NO CLEAR% HOLD]NUMBERReturn to Master Menu\% RETURN Directory % ? PIP LI"% ASKS (*.*) Enter File Spec(s): % CLEAR% CHOICE $ PIP ##1/LI Type a File % ? PIP COPY% ASKS Enter File: % CLEAR% CHOICE $ PIP TI:=##1 Copy File(s) % ? PIP COPY% ASKS Input File(s): % ASKS Output File(s): % CLEAR% CHOICE% WAIT $ PIP ##2=##1 Print File(s) % ? PRINT% ASKS Enter File(s): % ASKS (0) Form Type: % ASKS (1) Number of Copies: % CLEAR % CHOICE% WAIT$ PRINT /FO:##2=##1/COP:##3Delete File(s) % ? PIP SD% ASKS Enter File(s): I% CLEAR(% CHOICE% WAIT $ PIP ##1/SD Purge File(s) % ? PIP PU% ASKS Enter File(s): O% CLEARS% CHOICE% WAIT$ PIP ##1/PU/LD Rename a File % ? PIP RE% ASKS Old Filename: % ASKS New Filename: % CLEARi% CHOICE% WAIT$ PIP ##2=##1/REDisplay Free Space on Volume % ? PIP FR% ASKS () Enter Volume: % CLEAR(% CHOICE $ PIP ##1/FR]NPlease Enter Option: R % CHOICE% WAIT$ PRINT /FO:##2=##1/COP:##3Delete File(s) % ? PIP SD% ASKS Enter File(s): I% CLEAR(% CHOICE% WAIT $ PIP ##1/SD Purge File(s) % ? PIP PU% ASKS Enter File(s): O% CLEARS% CHOICE% WAIT$ PIP ##1/PU/LD Rename a File % ? PIP RE% ASKS Old Filename: % ASKS New Filename: % CLEARi% CHOICE% WAIT$ PIP ##2=##1/REDisplay Free Space on Volume % ? PIP FR% ASKS () Enter Volume: % CLEAR(% CHOICE $ PIP ##1/FR]NPlease Enter Optio!W !R System Manager Menu]NUMBERReturn to Master Menu\% RETURN3Run Monitor Routine (RMD)\ %? RMD\% NO CLEAR \$ RMD8Run the Account Maintenance Utility\ %? ACNT\$ RUN $ACNT2List Logged-in Users\ %? DEV LOG\% HOLD\$ DEV /LOG3List All Active Tasks\ %? ACT ALL\% HOLD\$ ACT /ALL List Active Tasks for a Terminal % ? ACT TERM% HOLD% ASKS Enter Terminal: $ ACT /TERM=##1 Broadcast% ? BRO% ASKS To Whom: % ASKS Message: $ BRO ##1 ##2% AGAIN3Enable logons\ %? SET LOGON\% NO CLEAR\$ SET /LOGONa8Disable Logins\ %? SET NOLOGON\% NO CLEAR\$ SET /NOLOGON List Devices% ? DEV%% HOLD% ASKS () Enter Device Type: $ DEV ##1cMount a Device% ? MOU$ % NO CLEAR % ASKS Enter Device and Label: % ASKS () Enter Switches: a $ MOU ##1##2Dismount a Device% ? DMOt % NO CLEAR% ASKS Enter Device: $ DMO ##1Create a User File Directory% ? UFD# % NO CLEAR$% ASKS Enter Device and Directory: $ UFD ##1 Initialize a Volume % ? INIn% ASKS Enter Device: $ ALL ##1R%% ASKS () Enter Label and Switches: N $ INI ##1##2 $ DEA ##1N Queue Management Menu\% CALL QUE]Please Enter Option: e: $ DEV ##1cMount a Device% ? MOU$ % NO CLEAR % ASKS Enter Device and Label: % ASKS () Enter Switches: a $ MOU ##1##2Dismount a Device% ? DMOt % NO CLEAR% ASKS Enter Device: $ DMO ##1Create a User File Directory% ? UFD# % NO CLEAR$% ASKS Enter Device and Directory: $ UFD ##1 Initialize a Volume % ? INIn% ASKS Enter Device: $ AL!W !R RSX-11M Master Menu % NO CLEAR]NUMBERFile Services Menu % CALL FILEStandard Utilities Menu % CALL UTILSystem Resources Menu % CALL SYSRTask Information Menu % CALL TASKTerminal Information Menu % CALL TERMSystem Manager Menu % CALL MANGERExit the Master Menu% RETURNLog-ofF% ? BYE% BATCH$ BYE% EXIT]Please Enter Option: 00A%B%C%D%E%cTADATADATA!W !R Queue Management Menu% HOLD]NUMBERReturn to Manager Menu\% RETURN4Start Queue Manager\% WAIT\% NO CLEAR\$ QUE /STA:QMG&Directory of waiting reports\$ QUE /LI)Display printer information\$ QUE /LI:DEVAbort current print report % NO CLEAR% WAIT% ASKS (LP0:) Enter Printer: $ QUE ##1/KILDelete waiting report % NO CLEAR% WAIT% ASKS (LP0:) Entry Number: $ QUE /EN:##1/DEL4Restart printer at beginning of current print report % NO CLEAR% WAIT% ASKS (LP0:) Enter Printer: $ QUE ##1/START:RESTART Pause printer % NO CLEAR% WAIT% ASKS (LP0:) Enter Printer: $ QUE ##1/STOPResume printingQ % NO CLEAR% WAIT% ASKS (LP0:) Enter Printer: $ QUE ##1/STARToSpace print report forward % NO CLEAR% WAIT% ASKS (LP0:) Enter Printer: $ QUE ##1/STOP% ASKS Number of Pages: i$ QUE ##1/START:PA:##2Release print report % NO CLEAR% WAIT% ASKS Entry Number: $ QUE /EN:##1/RELEASEgAssign a Printer % NO CLEAR% WAIT% ASKS (LP0:) Enter Printer: $ QUE ##1/AS:PRINTSpool a printers % NO CLEAR% WAIT% ASKS (LP0:) Enter Printer: % ASKS (0) Enter Form: $ QUE ##1/FO:##2/FL:0/LOW/SP$ QUE ##1/AS:PRINTUnspool a printer % NO CLEAR% WAIT% ASKS (LP0:) Enter Printer: $ QUE ##1/UNSPCreate a Queue % NO CLEAR% WAIT% ASKS (LP0:) Enter Printer: $ QUE ##1/CR:P!Install spooling task for Printert % NO CLEAR% WAIT % ASKS Enter Device w/o colin: $ INS $LPP/TASK=##1n]iPlease Enter Option: % ASKS (LP0:) Enter Printer: %HALT INITH%TEXT This is intended to teach the user how to build menu script files.%DELAY 2 % TEXT ""L%TEXT It assumes that the user knows some basics of file manipulation (copy,@%TEXT type, directory, and delete/purge) and can use the editor.%BLOCK!R !W SCRIPT TUTORIAL]!Basic Stucture -- Getting Started% call $lesson1Screen Formats and Basic Output% call $lesson2Execution Control Flags% call $lesson3Accessing Other Scripts% call $lesson4Basic System Mangament Tools% call $lesson5h Execution Advance Screen Control% call $lesson6s Substitution% call $lesson7"Password and Privilege Control% call $lesson8iAdvance System Management ToolsT% call $lesson9r0Seldom Used Commands (But essential when needed)% call $lesson10Quit% return] Please Enter Option: d% call $lesson1Screen Formats and Basic Output% call $lesson2Execution Control Flags% call $lesson3Accessing Other Scripts% call $lesson4Basic System Mangament TTitle]Exit% exit]Prompt:(!W !R System Resources Information Menu]NUMBERReturn to Master Menu\% RETURN.Run System Monitor Routine (RMD)\ %? RMD\$ RMDMDevice Information\ %? DEV\% ? DEV\% ASKS () Enter device: \% HOLD\$ DEV ##1ECurrent System Status\ %? ASCT ALL\$ TIM \$ DEV /LOG\% HOLD\$ACT /ALL+List System Partitions\ %? PAR\% HOLD\$ PAR]Please Enter Option: !W !R Task Information Menu]NUMBERReturn to Master Menu\% RETURNFList Installed Tasks\ %? TAS\% HOLD\% ASKS () Enter Task: \$ TASK ##1Install a Task% ? INS % NO CLEAR% ASKS Enter Taskfile: % ASKS () Enter Switches: $ INS ##1##2%Remove a Task from the Installed List% ? REM % NO CLEAR% ASKS Enter Task: $ REM ##!0List Active Tasks\ %? ACT ALL\% HOLD \$ ACT /ALLList Active Task Attributes% ? ATL% HOLD% ASKS () Enter Task: $ ATL ##1 Abort a Task00E%F%G!%I#%J$%! !% ? ABOT % NO CLEAR% ASKS Enter Task: $ ABO ##1a&List Clock Queue\ %? CLQ\% HOLD \$ CLQCancel Clock Queue Request% ? CAN\ % NO CLEAR % ASKS Enter Entry: $ CAN ##1R]SPlease Enter Option: KS () Enter Switches: $ INS ##1##2%Remove a Task from the Installed List% ? REM % NO CLEAR% ASKS Enter Task: $ REM ##!0List Active Tasks\ %? ACT ALL\% HOLD \$ ACT /ALLList Active Task Attributes% ? ATL% HOLD% ASKS () Enter Task: $ ATL ##1 Abort a Task !W !R Terminal Information Menu% HOLD % NO CLEAR]NUMBERReturn to Master Menu\% RETURN'Terminal List\ %? DEV\% CLEAR\$ DEV TT:DTerminal Attributes\ %? DEV\% ASKS (TI:) Enter terminal: \$ DEV ##1/List Logged-on Terminals\ %? DEV LOG\$ DEV /LOG0Display Terminal with Specific Type or Attribute% ? SET!% ASKS Enter Type or Attribute: $ SET /##1!Modify Terminal Type or Attribute% ? SET% ASKS (TI:) Enter Terminal: !% ASKS Enter Type or Attribute: $ SET /##2=##1]WPlease Enter Option: Menu% HOLD % NO CLEAR]NUMBERReturn to Master Menu\% RETURN'Terminal List\ %? DEV\% CLEAR\$ DEV TT:DTerminal Attributes\ %? DEV\% ASKS (TI:) Enter terminal: \$ DEV ##1/List Logged-on Terminals\ %? DEV LOG\$ DEV /LOG0Display Terminal with Specific Type or Attribute% ? SET!% ASKS Enter Type or Attribute: $ SET /##1!Modify Terminal Type or Attribute% ? SET% ASKS (TI:) Enter Terminal: !% ASKS Enter Type or Attribute: $ SET /##2=##1!!W !R RSX-11M Standard Utilities]NUMBERReturn to Master Menu\% RETURN%BRU, Backup and Restore\ %? BRU\$ BRU%CMP, Ascii File Compare\ %? CMP\$ CMP/DMP, Physical File or Volume Dump\ %? DMP\$ DMP&EDT, DEC Standard Editor\ %? EDT\$ EDT FLX, File Exchange\ %? FLX\$ FLX)PIP, Peripheral Interchange\ %? PIP\$ PIPIRMS Utilities\ %? RMS\%N \%ASKS Enter 3 Character Suffix: \$ RUN $RMS##1]Please Enter Option: BATCH SERVICES MENU]NUMBERExit % GOTO $MAINDirectory of waiting jobs % ? BMNU WAIT% HOLD$ QUE BATCH:/LIDisplay batch que information % ? BMNU INFO% HOLD $ QUE /LI:DEVAbort current batch job% ? BMNU BABORT$ @[1,2]BABORT.CMDDelete waiting job% ? BMNU BDELE$ @[1,2]BDELE.CMD'Stop Batch System at end of current job% ? BMNU BSTOP% HOLD$ @lb:[1,2]BSTOP.CMDRestart Batch System% ? BMNU BSTART% HOLD$ @lb:[1,2]BSTART.CMD]Enter option: PRINT SERVICES MENU]NUMBERExit% GOTO $PRINTSUPDirectory of waiting reports % ? PMNU $ VTM @[1,64]GPURPOSE)$ VTM {-CL,-DH,REV,BOLD,L=5}QUE PRINT:/LI2$ VTM {-CL,-DH,DW,L=3}DIRECTORY OF WAITING REPORTS$ VTM {-CL,REG=6:21,PLINE=6}$ QUE PRINT:/LI% HOLD$ VTM {-CL,-REG,PLINE=23}Display printer information % ? PMNU INFO$ VTM @[1,64]GPURPOSE'$ VTM {-CL,-DH,REV,BOLD,L=5}QUE /LI:DEV1$ VTM {-CL,-DH,DW,L=3}SYSTEM PRINTER INFORMATION:$ VTM {-CL,REG=6:21,PLINE=6} $ QUE /LI:DEV% HOLD$ VTM {-CL,-REG,PLINE=23}xList Report FilesP% ? PMNU REPORTDIR% HOLD$ pip [100,104]*.rpt;*/li4Submit Report for printing% ? PMNU PRINT$ @[1,2]PRINT.CMD-4Purge Report files (will leave only current version) % ? PURGEL% HOLD$ pip [100,104]*.rpt/pu/ldDelete Report Files (selective) % ? SELECT$ pip [100,104]*.rpt;*/sd Change printer forms % ? PFORM-$ @[1,64]PFORM.CMDAbort current print report % ? PABORT$ @[1,64]PABORT.CMDDelete waiting reportN % ? PDELE $ @[1,2]PDELE.CMD 4Restart printer at beginning of current print report % ? PRESTART$ @[1,64]PRESTART.CMDr Pause printert % ? PSTOP $ @[1,64]PSTOP.CMDResume printingN % ? PSTART$ @[1,64]PSTART.CMDlSpace print report forward % ? PSPACE$ @[1,64]PSPACE.CMD4Release print report % ? PRELE $ @[1,2]PRELE.CMDESpool a printer port % ? PSPOOL$ @[1,64]PSPOOL.CMDUnspool a printer port % ? PUNSPr$ @[1,64]PUNSP.CMD,Reformat Scan Reports for High Speed Printer% ? "Help File To Be Written00J'%K(%L)%M*%N+%O-%TADATADATA"[$ @lb:[1,2]preformat.cmd]eEnter option: ut print report % ? PRESTART$ @[1,64]PRESTART.CMDr Pause printert % ? PSTOP $ @[1,64]PSTOP.CMDResume printingN % ? PSTART$ @[1,64]PSTART.CMDlSpace print report forward % ? PSPACE$ @[1,64]PSPACE.CMD4Release print report % ? PRELE $ @[1,2]PRELE.CMDESpool a printer port % ? PSPOOL$ @[1,64]PSPOOL.CMDUnspool a printer port % ? PUNSPr$ @[1,64]PUNSP.CMD,Reformat Scan Reports for High Speed Printer% ? "Help File To Be WrittenFILE SERVICES MENU]NUMBERExit % GOTO $MAIN Type a file % ? fmnu type% ASKS Enter filespec: % HOLD $ pip ti:=##1 Print a file% ? fmnu print$ @LB:[1,2]print.cmdDirectory of files % ? fmnu dir% HOLD% ASKS () UIC:$ PIP ##1*.*;*/LIUnlock locked files% ? fmnu unlock$ @lb:[1,2]unlock.cmdDelete a file(s)% ? fmnu delete$ @LB:[1,2]FILDELETE.CMDmove a print file to local VAX% ? fmnu movfil$ @lb:[1,2]moverpt.cmd]Enter option:  FLOPPY DISK SERVICES]NUMBERExit % GOTO $MAINFormat a new floppy disk$ @LB:[1,2]FORMAT.CMDDirectory of floppy disk$ @LB:[1,2]FLIST.CMD!Display free space on floppy disk$ @LB:[1,2]FREEFLOP.CMDDisplay label of floppy$ @LB:[1,2]FLAB.CMD]Enter option: THE GAME MENU]NUMBER'The Dungeon Adventure (...if you dare!)% ? dung$ RUN [1,77]DUNGEONPacman% ? pac$ PAC Centipede% ? cen$ CENLog Off System% ? BYE% BATCH$ BYE% EXIT]Enter option: L%text This lesson will show what the basic elements of a script file are and4%text how, and where, to use the control characters.%delay 3%last type lb0:[1,3]trouble.txt( Basic Structure and Syntax -- Lesson #1]Base Structure Text% hold% clearControl Characters Text% clear.Basic Structure and Control Characters Example First Control Items% clear Exit Text% clear Return Text% clear Help/? Text% clear Hold Text% clearAn Example Script% clearBuild a Script% clear Continue to Lesson 2% cleart Exit Lessoni% return]xPlease Enter Option: he control characters.%delay 3%last type lb0:[1,3]trouble.txt( Basic Structure and Syntax -- Lesson #1]Base Structure Text% hold% clearControl Characters Text% clear.Basic Structure and Control Characters Example First Control Items% clear Exit Text% clear Return Text% clear Help/? Text% clear Hold Text% clearAn Example Script% clearBuilSYSTEM SUPERVISOR MAIN MENU]NUMBERPrint Services% ? PMNU % GOTO $PRINTRemote Print Services% ? RMNU% CALL $REMOTEBatch Services% ? BMNU % GOTO $BATCH File Services% ? FMNU % GOTO $FILEStudent System Services % ? STUMNU % GOTO $SSTUSystem Services % ? SYSMNU% GOTO $SYSTEMFloppy Disk Services % ? FLPMNU% GOTO $FLOPPYLog Off System% ? BYE% BATCH$ BYE% EXITExit% CLEAR/% TEXT ************************************ +% TEXT Leaving menu system to command level+% TEXT ************************************$$ CHD% EXIT]iEnter option: M% CALL $REMOTEBatch Services% ? BMNU % GOTO $BATCH File Services% ? FMNU % GOTO $FILEStudent System Services % ? STUMNU % GOTO $SSTUSystem Services % ? SYSMNU% GOTO $SYSTEMFloppy Disk Services % ? FLPMNU% GOTO $FLOPPYLog Off System% ? BYE% BATCH$ BYE% EXITExit% CLEAR/% TEXT ************************************ +% TEXT Leavi00P/%Q1%R2%S5%T6%! !PRINT SERVICES MENU% LOCK]NUMBERExit% RETURNDirectory of waiting reports % ? PWAITING$ @[7,77]PWAITINGDisplay printer information % ? PINFO$ @[7,77]PINFOList Report Files % ? PFILES$ @[7,77]PFILESSubmit Report for printing % ? PPRINT$ @[7,77]PPRINTChange printer forms % ? PFORM$ @[7,77]PFORMAbort current print report % ? PABORT$ @[7,77]PABORT4Restart printer at beginning of current print report % ? PRESTART$ @[7,77]PRESTART Pause printer % ? PSTOP$ @[7,77]PSTOPResume printing % ? PSTART$ @[7,77]PSTARTeSpace print report forward % ? PSPACE$ @[7,77]PSPACESpool a printer port % ? PSPOOL$ @[7,77]PSPOOL7Unspool a printer port % ? PUNSPL$ @[7,77]PUNSP,Reformat Scan Reports for High Speed Printer% ? "Help File To Be Written"r$ @lb:[7,77]preformat.cmd7]OEnter option: rt report % ? PABORT$ @[7,77]PABORT4Restart printer at beginning of current print report % ? PRESTART$ @[7,77]PRESTART Pause printer % ? PSTOREMOTE PRINTER SERVICES% LOCK]NUMBERExit% RETURN)List of active remote printer connections % ? RLIST$ @[7,77]RLIST.CMDConnect Remote Printer % ? RCONN $ @[7,77]RCONN.CMDDisconnect Remote Printer % ? RDISC$ @[7,77]RDISC.CMD Modem set up % ? RMODEM$ @[7,77]RMODEM.CMD]Enter option: PRINT SERVICES MENU]NUMBERExit % GOTO $MAINDirectory of waiting reports % ? PMNU WAIT% HOLD$ QUE PRINT:/LIDisplay printer information % ? PMNU INFO% HOLD $ QUE /LI:DEVList Report Files% ? PMNU REPORTDIR% HOLD$ pip [100,104]*.rpt;*/liSubmit Report for printing% ? PMNU PRINT$ @[1,2]PRINT.CMD4Purge Report files (will leave only current version) % ? PURGE% HOLD$ pip [100,104]*.rpt/pu/ldDelete Report Files (selective) % ? SELECT$ pip [100,104]*.rpt;*/sdChange printer forms % ? PFORM$ @[1,2]PFORM.CMDNAbort current print report % ? PABORT$ @[1,2]PABORT.CMDDelete waiting reportr % ? PDELEm$ @[1,2]PDELE.CMDF4Restart printer at beginning of current print report % ? PRESTART$ @[1,2]PRESTART.CMD Pause printeru % ? PSTOP $ @[1,2]PSTOP.CMDMResume printing] % ? PSTART$ @[1,2]PSTART.CMDSpace print report forward % ? PSPACE$ @[1,2]PSPACE.CMDRelease print report % ? PRELEr$ @[1,2]PRELE.CMDSpool a printer port % ? PSPOOL$ @[1,2]PSPOOL.CMDUnspool a printer port % ? PUNSP.$ @[1,2]PUNSP.CMD ,Reformat Scan Reports for High Speed Printer% ? "Help File To Be Written"L% HOLD$ @lb:[1,2]preformat.cmd]eEnter option: uent print report % ? PRESTART$ @[1,2]PRESTART.CMD Pause printeru % ? PSTOP $ @[1,2]PSTOP.CMDMResume printing] % ? PSTART$ @[1,2]PSTART.CMDSpace print report forward % ? PSPACE$ @[1,2]PSPACE.CMDRelease print report % ? PRELEr$ @[1,2]PRELE.CMDSpool a printer port % ? PSPOOL$ @[PRINTER SUPERVISOR MAIN MENU% LOCK]NUMBERPrint Services% ? PMNU% CALL $PPRINTRemote Print Services% ? RMNU% CALL $PREMOTELog Off System% ? BYE% BATCH$ BYE% EXIT]Enter option: REMOTE PRINTER SERVICES% LOCK]NUMBERExit% RETURNConnect Remote Printer % ? RCONN $ @[1,2]RCONN.CMDDisconnect Remote Printer % ? RDISC$ @[1,2]RDISC.CMD Modem set up % ? RMODEM$ @[1,2]RMODEM.CMD]Enter option: 00U7%V:%W<%X>%+%O-%TADATADATAStudent System Services]NUMBERExit % GOTO $MAINUpdate Requests from SSF% ? STU UPDREQ$ @LB:[1,2]UPDREQ.CMDMove/Change Student Requests% ? STU MOVREQ$ @LB:[1,2]MOVREQ.CMDComputer Balance Schedule % ? STU SCHED$ @LB:[1,2]SCHEDUL.CMDStop Computer Balance Scheduler% ? STU STOPSCHED$ @LB:[1,2]U25STOP.CMDStudent Request Utilities% ? STU REQUTI$ @LB:[1,2]REQUTIL.CMDDeblock Utility% ? STU DEBLOCK$ @LB:[1,2]DEBLOCK.CMD$Advance Grade Level for all Students% ? STU ADVGRD$ @LB:[1,2]ADVGRD.CMDMTransfer Students$% ? STU TRANSFER$ @LB:[1,2]TRANSFER.CMDRGenerate GCF Floppy or Tapeo% ? STU GCFFLOP $ @LB:[1,2]GCFFLOP.CMD)Update Grades from Grade Tape (or Floppy)S% ? STU READGCF $ @LB:[1,2]READGCF.CMDPurge Student Directory File(s)e% ? STU STUPURGE$ @LB:[1,2]STUPURGE.CMDT)Save P223 Microfiche file for transmittal % ? STU STUFICHE$ @LB:[1,2]STUFICHE.CMDl0Save and Restore Student Data Base Files Utility% ? STU SDBUTIL % HOLD$ @LB:[1,2]SDBUTIL.CMDCreate a new School Data Basef% ? STU NEWSCHOOLT$ @LB:[1,2]NEWSCHOOL.CMDZero Attendance File% ? STU ZEROATTo$ @lb:[1,2]ZEROATT.CMD]1Enter option: a Grades from Grade Tape (or Floppy)S% ? STU READGCF $ @LB:[1,2]READGCF.CMDPurge Student Directory File(s)e% ? STU STUPURGE$ @LB:[1,2]STUPURGE.CMDT)Save P223 Microfiche file for transmittal % ? STU STUFICHE$ @LB:[1,2]STUFICHE.CMDl0Save and Restore Student Data Base Files Utility% ? STU SDBUTIL % HOLD$ @LB:[1,2]SSYSTEM SERVICES MENU]NUMBERExit % GOTO $MAINMonitor System Activity (RMD)% ? SYSMNU RMD$ RMDCall text editor (EDT)% ? EDT% ASKS () File: $ EDT ##1Update software% ? SYSMNU UPDATE% HOLD$ @LB:[1,2]UPDATE.CMDList Free Space on System Disk% ? SYSMNU FREE% HOLD $ PIP /FRSystem Disk Backup% ? SYSMNU BACKUP% HOLD$ @LB0:[1,2]BACKUP.CMDSystem Disk Restore% ? SYSMNU RESTORE% HOLD$ @LB:[1,2]RESTORE.CMDDevice Error Log Reports% ? SYSMNU RPTERR% HOLD$ @LB:[1,2]RPTERR.CMDNAuthorize users (ACNT)% ? ACNT $ RUN $ACNTvReconfigure terminal ports% ? SYSMNU RECONFIGt% HOLD$ @LB:[1,2]reconfig.cmdeShut the System down (SHUTUP)r% ? SYSMNU SHUTDOWN% BATCH$ @LB:[1,2]SHUTDOWN.CMDi% EXIT]cEnter option: SYSMNU FREE% HOLD $ PIP /FRSystem Disk Backup% ? SYSMNU BACKUP% HOLD$ @LB0:[1,2]BACKUP.CMDSystem Disk Restore% ? SYSMNU RESTORE% HOLD$ @LB:[1,2]RESTORE.CMDDevice Error Log Reports% ? SYSMNU RPTERR% SYSTEM SUPERVISOR MAIN MENU]NUMBERPrint Services% ? PMNU % GOTO $PRINTRemote Print Services% ? RMNU% GOTO $REMOTEBatch Services% ? BMNU % GOTO $BATCH File Services% ? FMNU % GOTO $FILEStudent System Services % ? STUMNU % GOTO $SSTUSystem Services % ? SYSMNU% GOTO $SYSTEMFloppy Disk Services % ? FLPMNU% GOTO $FLOPPYLog Off System% ? BYE% BATCH$ BYE% EXITExit% CLEAR/% TEXT ************************************ +% TEXT Leaving menu system to command level+% TEXT ************************************$$ CHD% EXIT]iEnter option: M% GOTO $REMOTEBatch Services% ? BMNU % GOTO $BATCH File Services% ? FMNU % GOTO $FILEStudent System Services % ? STUMNU % GOTO $SSTUSystem Services % ? SYSMNU% GOTO $SYSTEMFloppy Disk Services % ? FLPMNU% GOTO $FLOPPYLog Off System% ? BYE% BATCH$ BYE% EXITExit% CLEAR/% TEXT ************************************ +% TEXT LeaviSYSTEM SUPERVISOR MAIN MENU]NUMBERPrint Services% ? PMNU % GOTO $PRINTRemote Print Services% ? RMNU% CALL $REMOTEBatch Services% ? BMNU % GOTO $BATCH File Services% ? FMNU % GOTO $FILEStudent System Services % ? STUMNU % GOTO $SSTUSystem Services % ? SYSMNU% GOTO $SYSTEMFloppy Disk Services % ? FLPMNU% GOTO $FLOPPYLog Off System% ? BYE% BATCH$ BYE% EXITExit% CLEAR/% TEXT ************************************ +% TEXT Leavi00X?%Y@%[D%5%T6%! !ng menu system to command level+% TEXT ************************************$$ CHD% EXIT]iEnter option: M% CALL $REMOTEBatch Services% ? BMNU % GOTO $BATCH File Services% ? FMNU % GOTO $FILEStudent System Services % ? STUMNU % GOTO $SSTUSystem Services % ? SYSMNU% GOTO $SYSTEMFloppy Disk Services % ? FLPMNU% GOTO $FLOPPYLog Off System% ? BYE% BATCH$ BYE% EXITExit% CLEAR/% TEXT ************************************ +% TEXT LeaviPRINT SERVICES MENU]NUMBERExit % GOTO $MAINDirectory of waiting reports % ? PMNU WAIT% HOLD$ QUE PRINT:/LIDisplay printer information % ? PMNU INFO% HOLD $ QUE /LI:DEVList Report Files% ? PMNU REPORTDIR% HOLD$ pip [100,104]*.rpt;*/liSubmit Report for printing% ? PMNU PRINT$ @[1,2]PRINT.CMD4Purge Report files (will leave only current version) % ? PURGE% HOLD$ pip [100,104]*.rpt/pu/ldDelete Report Files (selective) % ? SELECT$ pip [100,104]*.rpt;*/sdChange printer forms % ? PFORM$ @[1,2]PFORM.CMDNAbort current print report % ? PABORT$ @[1,2]PABORT.CMDDelete waiting reportr % ? PDELEm$ @[1,2]PDELE.CMDF4Restart printer at beginning of current print report % ? PRESTART$ @[1,2]PRESTART.CMD Pause printeru % ? PSTOP $ @[1,2]PSTOP.CMDMResume printing] % ? PSTART$ @[1,2]PSTART.CMDSpace print report forward % ? PSPACE$ @[1,2]PSPACE.CMDRelease print report % ? PRELEr$ @[1,2]PRELE.CMDSpool a printer port % ? PSPOOL$ @[1,2]PSPOOL.CMDUnspool a printer port % ? PUNSP.$ @[1,2]PUNSP.CMD ,Reformat Scan Reports for High Speed Printer% ? "Help File To Be Written"L% HOLD$ @lb:[1,2]preformat.cmd]eEnter option: uent print report % ? PRESTART$ @[1,2]PRESTART.CMD Pause printeru % ? PSTOP $ @[1,2]PSTOP.CMDMResume printing] % ? PSTART$ @[1,2]PSTART.CMDSpace print report forward % ? PSPACE$ @[1,2]PSPACE.CMDRelease print report % ? PRELEr$ @[1,2]PRELE.CMDSpool a printer port % ? PSPOOL$ @[10 REM :::::::: BIBCV 14 DIM B$(66) 15 GOSUB 36 20 PRINT 21 PRINTM22 PRINT "BOOK , CHAPTER , START VERSE , NUMBER OF VERSES (I.E. GEN,3,1,4)"23 INPUT B$,C0,S,N"25 IF SEG$(B$,1,4)<>"BOOK" THEN 3026 B=VAL(SEG$(B$,5,LEN(B$))) 27 GOTO 5030 B=0 32 FOR I=1 TO 66 +33 IF SEG$(B$,1,3)=SEG$(B$(I),1,3) THEN B=I 34 NEXT I 35 GOTO 4036 FOR I= 1 TO 66 37 READ B$(I) 38 NEXT I 39 RETURN40 IF B<>57 THEN 5042 IF LEN(B$)>4 THEN 46+44 PRINT "PHILIPPIANS OR PHILEMON WHICH"; 0 45 INPUT B$ $46 IF SEG$(B$,1,5)="PHILI" THEN B=50G50 DATA GENESIS,EXODUS,LEVITICUS,NUMBERS,DEUTERONOMY,JOSHUA,JUDGES,RUTHEK52 DATA 1SAMUEL,2SAMUEL,1KINGS,2KINGS,1CHRONICLES,2CHRONICLES,EZRA,NEHEMIAHOO54 DATA ESTHER,JOB,PSALMS,PROVERBS,ECCLESIASTES,SONG OF SOLOMON,ISAIAH,JEREMIAH6A56 DATA LEMENTATIONS,EZEKIEL,DANIEL,HOSEA,JOEL,AMOS,OBADIAH,JONAHT?58 DATA MICAH,NAHUM,HABAKKUK,ZEPHANIAH,HAGGAI,ZECHARIAH,MALACHID60 DATA MATTHEW,MARK,LUKE,JOHN,ACTS,ROMANS,1CORINTHIANS,2CORINTHIANSP62 DATA GALATIANS,EPHESIANS,PHILIPPIANS,COLOSSIANS,1THESSALONIANS,2THESSALONIANS64 DATA 1TIMOTHY,2TIMOTHYNI66 DATA TITUS,PHILEMON,HEBREWS,JAMES,1PETER,2PETER,1JOHN,2JOHN,3JOHN,JUDEG68 DATA REVALTIONN*110 F$="BOOK"+SEG$(STR$(100+B),2,3)+".BIB"112 C=1 113 V=1I 120 OPEN F$ FOR INPUT AS FILE #1122 ON ERROR GOTO 190O130 LINPUT #1,A$7132 IF SEG$(A$,1,4)="=" THEN C=VAL(SEG$(A$,13,LEN(A$)))K133 IF C%+%O-%TADATADATA=10 REM ::::: PROGRAM NAME = BIBCV OCT 1985 :::::::::U>11 REM :: THIS PROGRAM WILL PRINT THE CHAPTER AND VERSES ::>12 REM :::::::::::::::::::::::::::::::::::::::::::::::::::::::519 REM VT 100 ADDRESSING AND SCREEN ERASE N20 PRINT CHR$(27);"[H";CHR$(27);"[2J OUTPUT TO (LS:=PRINTER TT:=TUBE =NONE)"; 30 INPUT F$ 31 IF LEN(F$)=0 THEN F$="TT"40 IF F$="NONE" THEN F$="TT"50 IF F$="TUBE" THEN F$="TT"60 IF F$="TT:" THEN F$="TT"970 IF F$="TT" THEN 90?+80 OPEN F$ FOR OUTPUT AS FILE #6 DOUBLE BUFP90 DIM B$(66) 91 FOR I=1 TO 66 :92 READ B$(I) 93 NEXT I L100 DATA GEN,EXO,LEV,NUM,DEU,JOS,JUD,RUT,1SA,2SA,1KI,2KI,1CH,2CH,EZR,NEH,ESTL110 DATA JOB,PSA,PRO,ECC,SOL,ISA,JER,LAM,EZE,DAN,HOS,JOE,AMO,OBA,JON,MIC,NAHP120 DATA HAB,ZEP,HAG,ZEC,MAL,MAT,MAR,LUK,JOH,ACT,ROM,1CO,2CO,GAL,EPH,PHI,COL,1THB130 DATA 2TH,1TI,2TI,TIT,PHIN,HEB,JAM,1PE,2PE,1JO,2JO,3JO,JUDE,REV140 DIM #1,A$(4.42880E+06)=1150 OPEN "BIBLE.BIB" AS FILE #1 160 DIM #2,I(66,150)170 OPEN "BIBLE.I" AS FILE #2U 172 GO TO 180U 173 F$="TT" 174 CLOSE #6 F 175 GO TO 180 176 F$=I$ ,177 OPEN F$ FOR OUTPUT AS FILE #6 DOUBLE BUF+180 PRINT "BOOK,CHAPTER,VERSE,# TO PRINT"; T-181 REM .................... INPUT --------D 182 LINPUT I$O183 IF I$="TT" THEN 173H184 IF I$="TT:" THEN 173185 IF I$="STOP" THEN 700L186 IF I$="END" THEN 700187 IF I$="CLOSE" THEN 173188 IF I$="QUIT" THEN 700R,189 IF SEG$(I$,LEN(I$),LEN(I$))=":" THEN 176190 P1=POS(I$,",",1)191 P2=POS(I$,",",P1+1) 192 P3=POS(I$,",",P2+1)U193 IF P1*P2*P3=0 THEN 400194 P4=POS(I$,",",P3+1) 195 IF P4>0 THEN 400196 V=VAL(SEG$(I$,P2+1,P3-1))# 197 N=VAL(SEG$(I$,P3+1,LEN(I$)))198 B$=SEG$(I$,1,P1-1) 199 B1$=B$200 C=VAL(SEG$(I$,P1+1,P2-1))-201 F=0 202 FOR I=1 TO LEN(B$)$210 IF ASC(SEG$(B$,I,I))<48 THEN 225$220 IF ASC(SEG$(B$,I,I))>57 THEN 225 222 GO TO 230225 F=1= 230 NEXT I 1231 IF F=1 THEN 260T240 B=VAL(B$) 241 IF B>0 THEN 340I 250 GO TO 4006260 IF LEN(B$)=3 THEN 290 265 IF LEN(B$)<3 THEN 4003270 B1$=SEG$(B$,1,4) %271 IF B1$="JUDE" THEN B=65 GO TO 340,275 B1$=SEG$(B$,1,3)%280 IF SEG$(B$,1,5)<>"PHILE" THEN 290# 282 B=58 ( 283 GO TO 340N290 FOR I=1 TO 66(300 IF B1$<>B$(I) THEN 320310 B=IE 320 NEXT I -321 IF B>0 THEN 340O 330 GO TO 400) 340 V9=V+N 350 IF B>0 THEN IF B<67 THEN 370 360 GO TO 400I%370 IF C>0 THEN IF C<=I(B,0) THEN 390= 380 GO TO 400390 IF V>0 THEN 410.400 PRINT CHR$(7);"ILLEGAL INPUT TRY AGAIN" 401 GO TO 180N410 I=I(B,C)+(V-1)*64 =411 REM ................. ROUGH START ------------------ 2420 PRINT "BOOK #";B;B$(B);" CHAPTER";C;" VERSE";V430 IF F$<>"TT" THEN PRINT #6H440 IF F$<>"TT" THEN PRINT #6,"* BOOK #";B;B$(B);" CHAPTER";C;" VERSE";V 450 I=I+1 L41 REM ................................... LOOP ------------------452 IF "*"=A$(I) THEN 475T454 IF "="=A$(I) THEN 475C460 IF "#"<>A$(I) THEN 450470 GOSUB 480 471 GO TO 5200!475 PRINT CHR$(7);"NO SUCH VERSE"Y-476 IF F$<>"TT" THEN PRINT #6,"NO SUCH VERSE" 477 GO TO 180.480 J=1 481 V$="" C482 REM ............................... FIND VERSE ----------- 490 J=J+1 491 V1$=A$(I+J) 492 V$=V$+V1$ 493 IF V1$<>" " THEN 490500 V0=VAL(V$) 510 RETURN520 IF V0"TT" THEN PRINT #6,"#"; 550 I=I+1 551 IF "#"=A$(I) THEN 600"555 IF I>4.42870E+06 THEN 180A560 IF "*"=A$(I) THEN 180>570 IF "="=A$(I) THEN 1808$580 IF F$<>"TT" THEN PRINT #6,A$(I);590 PRINT A$(I); 7 591 GO TO 550H 600 GOSUB 480 610 IF V0# 3 ORDER YE THE BUCKLER AND SHIELD, AND DRAW NEAR TO BATTLE.K# 4 HARNESS THE HORSES; AND GET UP, YE HORSEMEN, AND STAND FORTH WITH YOUR9 HELMETS; FURBISH THE SPEARS, AND PUT ON THE BRIGANDINES.H# 5 WHEREFORE HAVE I SEEN THEM DISMAYED AND TURNED AWAY BACK? AND THEIRM MIGHTY ONES ARE BEATEN DOWN, AND ARE FLED APACE, AND LOOK NOT BACK: FOR FEAR! WAS ROUND ABOUT, SAITH THE LORD.G# 6 LET NOT THE SWIFT FLEE AWAY, NOR THE MIGHTY MAN ESCAPE; THEY SHALL D STUMBLE, AND FALL TOWARD THE NORTH BY THE RIVER EUPHHCBF8pF0G,fGDqG~"G^;GhTGbpGvH6HIH&HK4HF>HlGHHVHhHgHH3 HH-H^,Hf4HU>HoKHwQHiZHIeHauH!}H*II@O I@fI@)I3IzI^I@%I@ UH*I@3/I,4I@+8I@I|I@DIFI`cI`q!I@K$Ia'I(I@Q+I@0-Iu0I@,2I@v4I@x6Ii9I @I?IaAI-BI`EI GI@qIIVLI@8OIcQI@RI QUI jVI`[I`i_I@VbI WeIofI lhI@WkI`EmI`oI@qIotI @vI>zI N}I &TAND FAST, AND PREPARE THEE; FOR THE SWORD SHALL DEVOUR ROUND ABOUT THEE.N# 15 WHY ARE THY VALIANT MEN SWEPT AWAY? THEY STOOD NOT, BECAUSE THE LORD DID DRIVE THEM.M# 16 HE MADE MANY TO FALL, YEA, ONE FELL UPON ANOTHER: AND THEY SAID, ARISE,NM AND LET US GO AGAIN TO OUR OWN PEOPLE, AND TO THE LAND OF OUR NATIVITY, FROMI THE OPPRESSING SWORD.N# 17 THEY DID CRY THERE, PHARAOH KING OF EGYPT IS BUT A NOISE; HE HATH PASSED THE TIME APPOINTED.5# 18 AS I LIVE, SAITH THE KING, WHOSCJ !J@ J7J@ J JD JI R$J` J0 JPJP4JJ@#JpJ@?J4JP J`J JuJ@EgJNJ \JPYJP> J\"Jpz#JpR$JPd%J E&J`p(JP')J*Jpu+JpS-J"N EGYPT, FURNISH THYSELF TO GO INTO CAPTIVITY:E< FOR NOPH SHALL BE WASTE AND DESOLATE WITHOUT AN INHABITANT.M# 20 EGYPT IS LIKE A VERY FAIR HEIFER, BUT DESTRUCTION COMETH; IT COMETH OUTT OF THE NORTH.J# 21 ALSO HER HIRED MEN ARE IN THE MIDST OF HER LIKE FATTED BULLOCKS; FORK THEY ALSO ARE TURNED BACK, AND ARE FLED AWAY TOGETHER: THEY DID NOT STAND,WL BECAUSE THE DAY OF THEIR CALAMITY WAS COME UPON THEM, AND THE TIME OF THEIR VISITATION.# 22 C-J`a/J 0JPl2JP4JpRE5J >6JP7JB8J9JpU:J0#;J cJP?J0@JPzAJ@nBJP>CJpCJnDJpbFJ0IlFJyGJ ^00]X%:%W<%X>%+%O-%TADATADATAHJ0IJJJ WMJP&NJ`GOJ0&PJ0RJJSJ@`EY SHALL CUT DOWN HER FOREST, SAITH THE LORD, THOUGH IT CANNOT BEL SEARCHED; BECAUSE THEY ARE MORE THAN THE GRASSHOPPERS, AND ARE INNUMERABLE.L# 24 THE DAUGHTER OF EGYPT SHALL BE CONFOUNDED; SHE SHALL BE DELIVERED INTO% THE HAND OF THE PEOPLE OF THE NORTH.DL# 25 THE LORD OF HOSTS, THE GOD OF ISRAEL, SAITH; BEHOLD, I WILL PUNISH THEK MULTITUDE OF NO, AND PHARAOH, AND EGYPT, WITH THEIR GODS, AND THEIR KINGS;Jq EVEN PHARAOH, AND ALL THEM THAT TRUST IN HIM: @BSJaTJ*UJp+VJPlWJ`XJPYJ@SZJ@\J`)]Jp<_JP`J0`J`EaJ{bJ$dJ+dJRReJufJ` gJhJmiJp`kJ`*lJ0kNEBUCHADREZZAR KING OF BABYLON, AND INTO THE HAND OF HISL SERVANTS: AND AFTERWARD IT SHALL BE INHABITED, AS IN THE DAYS OF OLD, SAITH THE LORD.K# 27 BUT FEAR NOT THOU, O MY SERVANT JACOB, AND BE NOT DISMAYED, O ISRAEL: K FOR, BEHOLD, I WILL SAVE THEE FROM AFAR OFF, AND THY SEED FROM THE LAND OFEN THEIR CAPTIVITY; AND JACOB SHALL RETURN, AND BE IN REST AND AT EASE, AND NONE SHALL MAKE HIM AFRAID.TL# 28 FEAR THOU NOT, O JACOB MY SERVANT, SAITH THE LORD: FOR I AM WITH THEE; FOR I WILL MAKE A (BmJaoJP=pJ 0qJ ZrJ ^sJ0nuJvJgwJ0=yJp{zJ@%|JT|J`e}JP`~J0IJ#JhJLJHyJ@0Jh0 OF THEE, BUT CORRECT THEE IN MEASURE; YET WILL I" NOT LEAVE THEE WHOLLY UNPUNISHED.= CHAPTER 47 F# 1 THE WORD OF THE LORD THAT CAME TO JEREMIAH THE PROPHET AGAINST THE- PHILISTINES, BEFORE THAT PHARAOH SMOTE GAZA.DL# 2 THUS SAITH THE LORD; BEHOLD, WATERS RISE UP OUT OF THE NORTH, AND SHALLF BE AN OVERFLOWING FLOOD, AND SHALL OVERFLOW THE LAND, AND ALL THAT ISL THEREIN; THE CITY, AND THEM THAT DWELL THEREIN: THEN THE MEN SHALL CRY, AND, ALL THE INHABITANTS OF THE LAND SHALL HOWL.G# 3 AT THE NOISE OFAJx@J@-J-JH HOOFS OF HIS STRONG HORSES, AT THELN RUSHING OF HIS CHARIOTS, AND AT THE RUMBLING OF HIS WHEELS, THE FATHERS SHALL9 NOT LOOK BACK TO THEIR CHILDREN FOR FEEBLENESS OF HANDS;TL# 4 BECAUSE OF THE DAY THAT COMETH TO SPOIL ALL THE PHILISTINES, AND TO CUTN OFF FROM TYRUS AND ZIDON EVERY HELPER THAT REMAINETH: FOR THE LORD WILL SPOIL8 THE PHILISTINES, THE REMNANT OF THE COUNTRY OF CAPHTOR.N# 5 BALDNESS IS COME UPON GAZA; ASHKELON IS CUT OFF WITH THE REMNANT OF THEIR( VALLEY: HOW LONG WILT THOU CUT THYSELF?o# 6 O THOU SWORD OF THE LORD, HOW LONG WILL IT BE ERE THOU BE QUIET? xBJpJxsJ`.J` JJxMJNJP( J( Jx%LJ9T J0JJ TDJ@' JXR J8FJhkJ |JPuJMJ "J#Jh2J`"JHJ 'J(iJ(yJAJfTA ASHKELON, AND AGAINST THE SEA SHORE? THERE HATH HE APPOINTED IT. = CHAPTER 48 J# 1 AGAINST MOAB THUS SAITH THE LORD OF HOSTS, THE GOD OF ISRAEL; WOE UNTOG NEBO! FOR IT IS SPOILED: KIRIATHAIM IS CONFOUNDED AND TAKEN: MISGAB ISS CONFOUNDED AND DISMAYED.FM# 2 THERE SHALL BE NO MORE PRAISE OF MOAB: IN HESHBON THEY HAVE DEVISED EVIL,M AGAINST IT; COME, AND LET US CUT IT OFF FROM BEING A NATION. ALSO THOU SHALTx4 BE CUT DOWN, O MADMEN; THE SWORD SHALL PURSUE THEE.R# @BJ0J *J@IJXJpUJ(FJ`>JxOJH"J0hJpSJ]JhJxFJJ?J@<J@_ Jh!J ?!Jp"JX!"J0F#Ja; HER LITTLE ONES HAVE CAUSED A CRY TO BE HEARD. L# 5 FOR IN THE GOING UP OF LUHITH CONTINUAL WEEPING SHALL GO UP; FOR IN THED GOING DOWN OF HORONAIM THE ENEMIES HAVE HEARD A CRY OF DESTRUCTION.D# 6 FLEE, SAVE YOUR LIVES, AND BE LIKE THE HEATH IN THE WILDERNESS.J# 7 FOR BECAUSE THOU HAST TRUSTED IN THY WORKS AND IN THY TREASURES, THOUH SHALT ALSO BE TAKEN: AND CHEMOSH SHALL GO FORTH INTO CAPTIVITY WITH HIS" PRIESTS AND HIS PRINCES TOGETHER.# 8 AND THE SPOILER SHALL COME UPON EVERY CITY, A0B$J%J8&Jx&J'J'J t(J@%)J`(*Jx+J00+JhB,J-J0Q.J.J00/JPS0JP0JHn1JxW1JPQ2JPM3JPhS THE LORD HATH SPOKEN.H# 9 GIVE WINGS UNTO MOAB, THAT IT MAY FLEE AND GET AWAY: FOR THE CITIES9 THEREOF SHALL BE DESOLATE, WITHOUT ANY TO DWELL THEREIN. M# 10 CURSED BE HE THAT DOETH THE WORK OF THE LORD DECEITFULLY, AND CURSED BEN+ HE THAT KEEPETH BACK HIS SWORD FROM BLOOD.NM# 11 MOAB HATH BEEN AT EASE FROM HIS YOUTH, AND HE HATH SETTLED ON HIS LEES,TK AND HATH NOT BEEN EMPTIED FROM VESSEL TO VESSEL, NEITHER HATH HE GONE INTO' CAPTIVITY: THEREFORE HIS TASTE REMAINED IN HIM,00]`%R%D%5%T6%! ! AND HIS SCENT IS NOT CHHB4Jp4Jp^5Jj5Jh{6JpW7J{8J"8J@)9JI:JH:J\;JX;J(NJ>J@s?J8C@J(@J8{AJX{AJXvBJ0sCJx[HAT SHALL CAUSE HIM TO WANDER, AND SHALL EMPTY HIS VESSELS, AND BREAK THEIR BOTTLES. N# 13 AND MOAB SHALL BE ASHAMED OF CHEMOSH, AS THE HOUSE OF ISRAEL WAS ASHAMED OF BETHEL THEIR CONFIDENCE.;# 14 HOW SAY YE, WE ARE MIGHTY AND STRONG MEN FOR THE WAR?SN# 15 MOAB IS SPOILED, AND GONE UP OUT OF HER CITIES, AND HIS CHOSEN YOUNG MENJ ARE GONE DOWN TO THE SLAUGHTER, SAITH THE KING, WHOSE NAME IS THE LORD OF HOSTS.J# 16 THE CALAMITY OF MOAB IS NEAR TO COME, AND HIS AFFLICTION HASTETH FAST.hBDJ0DJEJ@7EJ8}FJFJ(GJ0 HJ%HJ8IJ6IJ8wJJ8#JJVKJ KJhZKJ \LJtLJXxMJ(DMJP4MJpeNJ8NJjOJ@eOJLPJ5PJ %+%O-%TADATADATAANGS.EF# 42 AND MOAB SHALL BE DESTROYED FROM BEING A PEOPLE, BECAUSE HE HATH$ MAGNIFIED HIMSELF AGAINST THE LORD.&# 43 FEAR, AND THE PIT,DKD`KHkK~KK K8.K <K|XKgKK0'K (3KL@K(JK\WKL`K,rKl K8^KpvKDK KXKKUKeKKdKd.K0@KHPKpcK0Kp#K(BKaKtK('K$fK0K\K,>KhSK,kKXuK@K<K`NK\[KXoKpK<2K8PK`_KmKwKK0KHCKdVKLsKpK@K%Kd6KKXlK4KDFKrKx#K|WK<K8-K8VK@KD.KfTHE LATTER DAYS, SAITH, THE LORD. THUS FAR IS THE JUDGMENT OF MOAB.= CHAPTER 49 L# 1 CONCERNING THE AMMONITES, THUS SAITH THE LORD; HATH ISRAEL NO SONS? HATHN HE NO HEIR? WHY THEN DOTH THEIR KING INHERIT GAD, AND HIS PEOPLE DWELL IN HIS CITIES?K# 2 THEREFORE, BEHOLD, THE DAYS COME, SAITH THE LORD, THAT I WILL CAUSE ANKG ALARM OF WAR TO BE HEARD IN RABBAH OF THE AMMONITES; AND IT SHALL BE A DESOLATE HEAP, AND HER DAUGHTERS SHALL BE BURNED WITH FIRE: THEN SHALL @BK\K(:K|wKp!KLBKdoKlKH>K4iKDK:KQH THE LORD.N# 3 HOWL, O HESHBON, FOR AI IS SPOILED: CRY, YE DAUGHTERS OF RABBAH, GIRD YOUI WITH SACKCLOTH; LAMENT, AND RUN TO AND FRO BY THE HEDGES; FOR THEIR KINGTC SHALL GO INTO CAPTIVITY, AND HIS PRIESTS AND HIS PRINCES TOGETHER.?N# 4 WHEREFORE GLORIEST THOU IN THE VALLEYS, THY FLOWING VALLEY, O BACKSLIDINGI DAUGHTER? THAT TRUSTED IN HER TREASURES, SAYING, WHO SHALL COME UNTO ME?DM# 5 BEHOLD, I WILL BRING A FEAR UPON THEE, SAITH THE LORD GOD OF HOSTS, FROM:I ALL THOSE THAT BE ABOUT THEE; AND YE SHALL BE DRIVEN OUT EVERY MAN RIGHTO1 FORTHBKhxKK(2KTJKdkK KX%KD>WANDERETH.YM# 6 AND AFTERWARD I WILL BRING AGAIN THE CAPTIVITY OF THE CHILDREN OF AMMON, SAITH THE LORD.H# 7 CONCERNING EDOM, THUS SAITH THE LORD OF HOSTS; IS WISDOM NO MORE ING TEMAN? IS COUNSEL PERISHED FROM THE PRUDENT? IS THEIR WISDOM VANISHED? M# 8 FLEE YE, TURN BACK, DWELL DEEP, O INHABITANTS OF DEDAN; FOR I WILL BRING ? THE CALAMITY OF ESAU UPON HIM, THE TIME THAT I WILL VISIT HIM.TG# 9 IF GRAPEGATHERERS COME TO THEE, WOULD THEY NOT LEAVE SOME GLEANINGRF GRAPES? IF THIEVES BY NIGHT, THEY WILL DESTROY TILL THEY HAVE ENOUGH.`# 10 BUT I HAVE MADE ECKD`K#K|SKKLKK`oK`$KtKT Kx+KH^KX(Kh@KeKSKp K`_KKtyK\Kh EKp#KXjKX0K\i KT' K\t K7 KhT K~!Kl3!K`}!K$!K^"K,"K<#"K@O"K(q"K`"KDB"Kdo#Kl%#K\_#K #K!#KTQ#K4m$K8. 12 FOR THUS SAITH THE LORD; BEHOLD, THEY WHOSE JUDGMENT WAS NOT TO DRINK OFI THE CUP HAVE ASSUREDLY DRUNKEN; AND ART THOU HE THAT SHALL ALTOGETHER GOAM UNPUNISHED? THOU SHALT NOT GO UNPUNISHED, BUT THOU SHALT SURELY DRINK OF IT. L# 13 FOR I HAVE SWORN BY MYSELF, SAITH THE LORD, THAT BOZRAH SHALL BECOME A DESOLATION, A REPROACH, PC$KLx$K%$K<~%KE%K%K^&K(&K0{&KD8&K$|'KH6'Kdv'KX&'KPf(K|"(K](K(Ka)KL)KH)KX{)K0%)Kxn*KLV*K t*KW+Kh+K8\+Kd "+K K`7>Kt?KT E]?K0R?KH?KT@K@.@K@z@K|DAK0EAST OF THE FLOCK SHALL DRAW THEM OUT: SURELY HE SHALL MAKE THEIRW HABITATIONS DESOLATE WITH THEM.I# 21 THE EARTH IS MOVED AT THE NOISE OF THEIR FALL, AT THE CRY THE NOISED" THEREOF WAS HEARD IN THE RED SEA.N# 22 BEHOLD, HE SHALL COME UP AND FLY AS THE EAGLE, AND SPREAD HIS WINGS OVERL BOZRAH: AND AT THAT DAY SHALL THE HEART OF THE MIGHTY MEN OF EDOM BE AS THE HEART OF A WOMAN IN HER PANGS.$G# 23 @BAKDhAKLBK<"BK ~BKpmCKDGCKlCK@hDKd0DK,DKl=EK8BD: FOR THEY HAVE?J HEARD EVIL TIDINGS: THEY ARE FAINTHEARTED; THERE IS SORROW ON THE SEA; IT CANNOT BE QUIET.HJ# 24 DAMASCUS IS WAXED FEEBLE, AND TURNETH HERSELF TO FLEE, AND FEAR HATHJ SEIZED ON HER: ANGUISH AND SORROWS HAVE TAKEN HER, AS A WOMAN IN TRAVAIL.=# 25 HOW IS THE CITY OF PRAISE NOT LEFT, THE CITY OF MY JOY! K# 26 THEREFORE HER YOUNG MEN SHALL FALL IN HER STREETS, AND ALL THE MEN OF ; WAR SHALL BE CUT OFF IN THAT DAY, SAITH THE LORD OF HOSTS.AL# 27 AND I WILL KINDLE A FIRE IN THE WALL OF DAMASCUS, AND IT SHALL CONSUME THE PAL`BEK@hEK<EK T>EK CKEKHvFKHFKL,FKXPFKhmFK(FKX=FKtWFKsGKdE KINGDOMS OF HAZOR, WHICHAN NEBUCHADREZZAR KING OF BABYLON SHALL SMITE, THUS SAITH THE LORD; ARISE YE, GO, UP TO KEDAR, AND SPOIL THE MEN OF THE EAST.K# 29 THEIR TENTS AND THEIR FLOCKS SHALL THEY TAKE AWAY: THEY SHALL TAKE TOHM THEMSELVES THEIR CURTAINS, AND ALL THEIR VESSELS, AND THEIR CAMELS; AND THEYL, SHALL CRY UNTO THEM, FEAR IS ON EVERY SIDE.M# 30 FLEE, GET YOU FAR OFF, DWELL DEEP, O YE INHABITANTS OF HAZOR, SAITH THEUM LORD; FOR NEBUCHADREZZAR KING OF BABYLON HATH TAKEN COUNSEL AGAINST YOU, ANDNr HATH CONCEIVED A PURPOSE AGAI@AGK<0GK \GK /ARISE, GET YOU UP UNTO THE WEALTHY NATION, THAT DWELLETH WITHOUT CARE,F SAITH THE LORD, WHICH HAVE NEITHER GATES NOR BARS, WHICH DWELL ALONE.L# 32 AND THEIR CAMELS SHALL BE A BOOTY, AND THE MULTITUDE OF THEIR CATTLE AN SPOIL: AND I WILL SCATTER INTO ALL WINDS THEM THAT ARE IN THE UTMOST CORNERS;H AND I WILL BRING THEIR CALAMITY FROM ALL SIDES THEREOF, SAITH THE LORD.K# 33 AND HAZOR SHALL BE A DWELLING FOR DRAGONS, AND A DESOLATION FOR EVER:A@ THERE SHALL NO MAN ABIDE THERE, NOR ANY SON OF MAN DWELL IN IT.# 34 THE WORD OF THE LORD THAT CAME TO JEREMIAH THE PROPHET AGAINST BGK%+%O-%TADATADATAN MAKE HER LAND DESOLATE, AND NONE SHALL DWELL THEREIN: THEY SHALL REMOVE, THEY" SHALL DEPART, BOTH MAN AND BEAST.L# 4 IN THOSE DAYS, AND IN THAT TIME, SAITH THE LORD, THE CHILDREN OF ISRAELM SHALL COME, THEY AND THE CHILDREN OF JUDAH TOGETHER, GOING AND WEEPING: THEY;' SHALL GO, AND SEEK THE LORD THEIR GOD. I# 5 THEY SHALL ASK THE WAY TO ZION WITH THEIR FACES THITHERWARD, SAYING, I COME, AND LET US JOIN OURSELVES TO THE LORD IN A PERPETUAL COVENANT THATE SHALL NOT BE FORGOTTEN.I# 6 MY PEOPLE HAT`AJK@JK`/JKRJK`pJK8JK<>JKhdDS HAVE CAUSED THEM TO GOTI ASTRAY, THEY HAVE TURNED THEM AWAY ON THE MOUNTAINS: THEY HAVE GONE FROMA: MOUNTAIN TO HILL, THEY HAVE FORGOTTEN THEIR RESTINGPLACE.K# 7 ALL THAT FOUND THEM HAVE DEVOURED THEM: AND THEIR ADVERSARIES SAID, WEEI OFFEND NOT, BECAUSE THEY HAVE SINNED AGAINST THE LORD, THE HABITATION OFO3 JUSTICE, EVEN THE LORD, THE HOPE OF THEIR FATHERS.AL# 8 REMOVE OUT OF THE MIDST OF BABYLON, AND GO FORTH OUT OF THE LAND OF THE5 CHALDEANS, AND BE AS THE HE GOATS BEFORE THE FLOCKS.# 9 FOR, LO, I WILL RAISE AND CAUSE TO COME UP AGAINST BABYLON AN ASSEM@AKK@KKx:KKt[ATIONS FROM THE NORTH COUNTRY: AND THEY SHALL SET THEMSELVES IN ARRAYRK AGAINST HER; FROM THENCE SHE SHALL BE TAKEN: THEIR ARROWS SHALL BE AS OF AI. MIGHTY EXPERT MAN; NONE SHALL RETURN IN VAIN.J# 10 AND CHALDEA SHALL BE A SPOIL: ALL THAT SPOIL HER SHALL BE SATISFIED, SAITH THE LORD.H# 11 BECAUSE YE WERE GLAD, BECAUSE YE REJOICED, O YE DESTROYERS OF MINEI HERITAGE, BECAUSE YE ARE GROWN FAT AS THE HEIFER AT GRASS, AND BELLOW AS  BULLS;IF# 12 YOUR MOTHER SHALL BE SORE CONFOUNDED; SHE THAT BARE YOU SHALL BE` ASHAMED: BEHOLD, THE HINDERMOST OF THE NATIONS SHALL BE A WILDERNES@AKKLKK7KKh AND A DESERT.N# 13 BECAUSE OF THE WRATH OF THE LORD IT SHALL NOT BE INHABITED, BUT IT SHALLM BE WHOLLY DESOLATE: EVERY ONE THAT GOETH BY BABYLON SHALL BE ASTONISHED, ANDF HISS AT ALL HER PLAGUES.1K# 14 PUT YOURSELVES IN ARRAY AGAINST BABYLON ROUND ABOUT: ALL YE THAT BENDGN THE BOW, SHOOT AT HER, SPARE NO ARROWS: FOR SHE HATH SINNED AGAINST THE LORD.M# 15 SHOUT AGAINST HER ROUND ABOUT: SHE HATH GIVEN HER HAND: HER FOUNDATIONS L ARE FALLEN, HER WALLS ARE THROWN DOWN: FOR IT IS THE VENGEANCE OF THE LORD:8 TAKE VENGEANCE UPON HER; AS SHE HATH DONE, DO UNTO HER.K# 16 CUT OFF @ALKPLK GLK8qABYLON, AND HIM THAT HANDLETH THE SICKLE IN THEBL TIME OF HARVEST: FOR FEAR OF THE OPPRESSING SWORD THEY SHALL TURN EVERY ONE> TO HIS PEOPLE, AND THEY SHALL FLEE EVERY ONE TO HIS OWN LAND.L# 17 ISRAEL IS A SCATTERED SHEEP; THE LIONS HAVE DRIVEN HIM AWAY: FIRST THEH KING OF ASSYRIA HATH DEVOURED HIM; AND LAST THIS NEBUCHADREZZAR KING OF BABYLON HATH BROKEN HIS BONES.TJ# 18 THEREFORE THUS SAITH THE LORD OF HOSTS, THE GOD OF ISRAEL; BEHOLD, IM WILL PUNISH THE KING OF BABYLON AND HIS LAND, AS I HAVE PUNISHED THE KING OFT ASSYRIA.HH# 19 AND I WILL BRING ISRAEL AGAIN TO HIS HABALKD(LKTN HE SHALL FEED ONJ CARMEL AND BASHAN, AND HIS SOUL SHALL BE SATISFIED UPON MOUNT EPHRAIM AND GILEAD.M# 20 IN THOSE DAYS, AND IN THAT TIME, SAITH THE LORD, THE INIQUITY OF ISRAELKN SHALL BE SOUGHT FOR, AND THERE SHALL BE NONE; AND THE SINS OF JUDAH, AND THEY; SHALL NOT BE FOUND: FOR I WILL PARDON THEM WHOM I RESERVE. K# 21 GO UP AGAINST THE LAND OF MERATHAIM, EVEN AGAINST IT, AND AGAINST THEHL INHABITANTS OF PEKOD: WASTE AND UTTERLY DESTROY AFTER THEM, SAITH THE LORD,4 AND DO ACCORDING TO ALL THAT I HAVE COMMANDED THEE.# 22 A SOUND OF BATTLE IS IN THE LAND, AND OF GREAT DESTR`BMKPMK8>MKYMKrMKtMK`-MKRMKTsNK4-NKLZNK4}NK&NKONKpjDER AND BROKEN! HOW IS/ BABYLON BECOME A DESOLATION AMONG THE NATIONS!HK# 24 I HAVE LAID A SNARE FOR THEE, AND THOU ART ALSO TAKEN, O BABYLON, ANDIH THOU WAST NOT AWARE: THOU ART FOUND, AND ALSO CAUGHT, BECAUSE THOU HAST STRIVEN AGAINST THE LORD.M# 25 THE LORD HATH OPENED HIS ARMOURY, AND HATH BROUGHT FORTH THE WEAPONS OFTN HIS INDIGNATION: FOR THIS IS THE WORK OF THE LORD GOD OF HOSTS IN THE LAND OF THE CHALDEANS. M# 26 COME AGAINST HER FROM THE UTMOST BORDER, OPEN HER STOREH00]%R%D%5%T6%! !OUSES: CAST HERK? UP AS HEAPS, AND DESTROY HER UTTERLYAOKH0OKdYOKhOKL8 BE LEFT.NN# 27 SLAY ALL HER BULLOCKS; LET THEM GO DOWN TO THE SLAUGHTER: WOE UNTO THEM!5 FOR THEIR DAY IS COME, THE TIME OF THEIR VISITATION.CK# 28 THE VOICE OF THEM THAT FLEE AND ESCAPE OUT OF THE LAND OF BABYLON, TONH DECLARE IN ZION THE VENGEANCE OF THE LORD OUR GOD, THE VENGEANCE OF HIS TEMPLE.J# 29 CALL TOGETHER THE ARCHERS AGAINST BABYLON: ALL YE THAT BEND THE BOW,E CAMP AGAINST IT ROUND ABOUT; LET NONE THEREOF ESCAPE: RECOMPENSE HERKM ACCORDING TO HER WORK; ACCORDING TO ALL THAT SHE HATH DONE, DO UNTO HER: FORA SHE HATH BEEN PROUD AGAINST THE LORD, AGAINST THE `BOKHPOKD|PKH3PKPUPKpPKeQKl+QK(aQK8$QK oRK|>RKlxRK^SK0WSKSK]TK<TKpOTKhTKYUKUKt~UK,IVKtVKpqVK HWK,TWKXMOFF IN THAT DAY, SAITH THE LORD.I# 31 BEHOLD, I AM AGAINST THEE, O THOU MOST PROUD, SAITH THE LORD GOD OFS= HOSTS: FOR THY DAY IS COME, THE TIME THAT I WILL VISIT THEE.LM# 32 AND THE MOST PROUD SHALL STUMBLE AND FALL, AND NONE SHALL RAISE HIM UP:RL AND I WILL KINDLE A FIRE IN HIS CITIES, AND IT SHALL DEVOUR ALL ROUND ABOUT HIM.HN# 33 THUS SAITH THE LORD OF HOSTS; THE CHILDREN OF ISRAEL AND THE CHILDREN OF JUDAH WERE OPPRESSED TOGETHER: AND ALL THAT TOOK THEM CAPTIVES HELD THEBWK%+%O-%TADATADATAER ROUND ABOUT.TJ# 3 AGAINST HIM THAT BENDETH LET THE ARCHER BEND HIS BOW, AND AGAINST HIMK THAT LIFTETH HIMSELF UP IN HIS BRIGANDINE: AND SPARE YE NOT HER YOUNG MEN;K! DESTROY YE UTTERLY ALL HER HOST. I# 4 BxK\0xKixKh xK1xK\xKhxyK HATH FILLED HIS BELLY WITH MY DELICATES, HE HATH CAST ME OUT.H# 35 THE VIOLENCE DONE TO ME AND TO MY FLESH BE UPON BABYLON, SHALL THEL INHABITANT OF ZION SAY; AND MY BLOOD UPON THE INHABITANTS OF CHALDEA, SHALL[ JEAK&KRK*2KBATHEREFORE THUS SAITH THE LORD; BEHOLD, I WILL PLEAD THY CAUSE, AND TAKEII VENGEANCE FOR THEE; AND I WILL DRY UP HER SEA, AND MAKE HER SPRINGS DRY. E# 37 AND BABYLON SHALL BECOME HEAPS, A DWELLINGPLACE FOR DRAGONS, ANM5 ASTONISHMENT, AND AN HISSING, WITHOUT AN INHABITANT.K# 38 THEY SHALL ROAR TOGETHER LIKE LIONS: THEY SHALL YELL AS LIONS WHELPS.LK# 39 IN THEIR HEAT I WILL MAKE THEIR FEASTS, AND I WILL MAKE THEM DRUNKEN,OL THAT THEY MAY REJOICE, AND SLEEP A PERPETUAL SLEEP, AND NOT WAKE, SAITH THE LORD.# 40 I WILL BRING THEM DOWN LIKE LAMBS TO THE SLAUGHTER, LIKE RAMS WI@AK XKhKu# 41 HOW IS SHESHACH TAKEN! AND HOW IS THE PRAISE OF THE WHOLE EARTHAD SURPRISED! HOW IS BABYLON BECOME AN ASTONISHMENT AMONG THE NATIONS!K# 42 THE SEA IS COME UP UPON BABYLON: SHE IS COVERED WITH THE MULTITUDE OFL THE WAVES THEREOF. G# 43 HER CITIES ARE A DESOLATION, A DRY LAND, AND A WILDERNESS, A LAND C WHEREIN NO MAN DWELLETH, NEITHER DOTH ANY SON OF MAN PASS THEREBY.TI# 44 AND I WILL PUNISH BEL IN BABYLON, AND I WILL BRING FORTH OUT OF HISKF MOUTH THAT WHICH HE HATH SWALLOWED UP: AND THE NATIONS SHALL NOT FLOW TOGETHER ANY MORE UNTO HIM: YEA, THE WALL OF BABYLON SHALL @K& 45 MY PEOPLE, GO YE OUT OF THE MIDST OF HER, AND DELIVER YE EVERY MAN HIS( SOUL FROM THE FIERCE ANGER OF THE LORD.I# 46 AND LEST YOUR HEART FAINT, AND YE FEAR FOR THE RUMOUR THAT SHALL BEDH HEARD IN THE LAND; A RUMOUR SHALL BOTH COME ONE YEAR, AND AFTER THAT INJ ANOTHER YEAR SHALL COME A RUMOUR, AND VIOLENCE IN THE LAND, RULER AGAINST RULER.IH# 47 THEREFORE, BEHOLD, THE DAYS COME, THAT I WILL DO JUDGMENT UPON THEN GRAVEN IMAGES OF BABYLON: AND HER WHOLE LAND SHALL BE CONFOUNDED, AND ALL HER& SLAIN SHALL FALL IN THE MIDST OF HER.# 48 THEN THE HEAVEN AND THE EARTH, AND ALL THATPBK$K4&KZ;KjKK&\KljKR}KrK *K*JKnKKP8SHALL COME UNTO HER FROM THE NORTH, SAITH THE LORD.M# 49 AS BABYLON HATH CAUSED THE SLAIN OF ISRAEL TO FALL, SO AT BABYLON SHALLA! FALL THE SLAIN OF ALL THE EARTH.DL# 50 YE THAT HAVE ESCAPED THE SWORD, GO AWAY, STAND NOT STILL: REMEMBER THE6 LORD AFAR OFF, AND LET JERUSALEM COME INTO YOUR MIND.K# 51 WE ARE CONFOUNDED, BECAUSE WE HAVE HEARD REPROACH: SHAME HATH COVEREDAK OUR FACES: FOR STRANGERS ARE COME INTO THE SANCTUARIES OF THE LORDS HOUSE.AF# 52 WHEREFORE, BEHOLD, THE DAYS COME, SAITH THE LORD, THAT I WILL DO( JUDGMENT UPON HER GR AK PKXhKKK ALL HER LAND THE WOUNDED SHALL GROAN.TM# 53 THOUGH BABYLON SHOULD MOUNT UP TO HEAVEN, AND THOU00]%:%W<%X>%+%O-%TADATADATAGH SHE SHOULD FORTIFY L THE HEIGHT OF HER STRENGTH, YET FROM ME SHALL SPOILERS COME UNTO HER, SAITH THE LORD.J# 54 A SOUND OF A CRY COMETH FROM BABYLON, AND GREAT DESTRUCTION FROM THE LAND OF THE CHALDEANS:EI# 55 BECAUSE THE LORD HATH SPOILED BABYLON, AND DESTROYED OUT OF HER THEHN GREAT VOICE; WHEN HER WAVES DO ROAR LIKE GREAT WATERS, A NOISE OF THEIR VOICE IS UTTERED:M# 56 BECAUSE THE SPOILER IS COME UPON HER, EVEN UPON BABYLON, AND HER MIGHTYHD MEN ARE TAKEN, EVER AK"8KjSKNmKBKROKEN: FOR THE LORD GOD OF" RECOMPENCES SHALL SURELY REQUITE.L# 57 AND I WILL MAKE DRUNK HER PRINCES, AND HER WISE MEN, HER CAPTAINS, ANDL HER RULERS, AND HER MIGHTY MEN: AND THEY SHALL SLEEP A PERPETUAL SLEEP, AND; NOT WAKE, SAITH THE KING, WHOSE NAME IS THE LORD OF HOSTS.OG# 58 THUS SAITH THE LORD OF HOSTS; THE BROAD WALLS OF BABYLON SHALL BE M UTTERLY BROKEN, AND HER HIGH GATES SHALL BE BURNED WITH FIRE; AND THE PEOPLE I SHALL LABOUR IN VAIN, AND THE FOLK IN THE FIRE, AND THEY SHALL BE WEARY.K# 59 THE WORD WHICH JEREMIAH THE PROPHET COMMANDED SERAIAH THE SON OF N@AK",KBKj^ OF MAASEIAH, WHEN HE WENT WITH ZEDEKIAH THE KING OF JUDAH INTON BABYLON IN THE FOURTH YEAR OF HIS REIGN. AND THIS SERAIAH WAS A QUIET PRINCE.M# 60 SO JEREMIAH WROTE IN A BOOK ALL THE EVIL THAT SHOULD COME UPON BABYLON, 7 EVEN ALL THESE WORDS THAT ARE WRITTEN AGAINST BABYLON.BJ# 61 AND JEREMIAH SAID TO SERAIAH, WHEN THOU COMEST TO BABYLON, AND SHALT% SEE, AND SHALT READ ALL THESE WORDS;RN# 62 THEN SHALT THOU SAY, O LORD, THOU HAST SPOKEN AGAINST THIS PLACE, TO CUTI IT OFF, THAT NONE SHALL REMAIN IN IT, NEITHER MAN NOR BEAST, BUT THAT IT  SHALL BE DESOLATE FOR EVER.J# 63 A AK xK`K2!KH9K(MU HAST MADE AN END OF READING THIS BOOK, THATH THOU SHALT BIND A STONE TO IT, AND CAST IT INTO THE MIDST OF EUPHRATES:N# 64 AND THOU SHALT SAY, THUS SHALL BABYLON SINK, AND SHALL NOT RISE FROM THEK EVIL THAT I WILL BRING UPON HER: AND THEY SHALL BE WEARY. THUS FAR ARE THED WORDS OF JEREMIAH. = CHAPTER 52 H# 1 ZEDEKIAH WAS ONE AND TWENTY YEARS OLD WHEN HE BEGAN TO REIGN, AND HEH REIGNED ELEVEN YEARS IN JERUSALEM. AND HIS MOTHERS NAME WAS HAMUTAL THE DAUGHTER OF JEREMIAH OF LIBNAH.M# 2 AND HE DID THAT WHICH WAS EVIL IN THE EYES OF THE LORD, ACCORDING TO ALLA THA@K dKIM HAD DONE.N# 3 FOR THROUGH THE ANGER OF THE LORD IT CAME TO PASS IN JERUSALEM AND JUDAH,L TILL HE HAD CAST THEM OUT FROM HIS PRESENCE, THAT ZEDEKIAH REBELLED AGAINST THE KING OF BABYLON.RL# 4 AND IT CAME TO PASS IN THE NINTH YEAR OF HIS REIGN, IN THE TENTH MONTH,L IN THE TENTH DAY OF THE MONTH, THAT NEBUCHADREZZAR KING OF BABYLON CAME, HEM AND ALL HIS ARMY, AGAINST JERUSALEM, AND PITCHED AGAINST IT, AND BUILT FORTSD AGAINST IT ROUND ABOUT.F# 5 SO THE CITY WAS BESIEGED UNTO THE ELEVENTH YEAR OF KING ZEDEKIAH.H# 6 AND IN THE FOURTH MONTH, IN THE NINTH DAY OF THE MONTH, THE FA@K tI SORE IN THE CITY, SO THAT THERE WAS NO BREAD FOR THE PEOPLE OF THE LAND.AM# 7 THEN THE CITY WAS BROKEN UP, AND ALL THE MEN OF WAR FLED, AND WENT FORTH M OUT OF THE CITY BY NIGHT BY THE WAY OF THE GATE BETWEEN THE TWO WALLS, WHICH K WAS BY THE KINGS GARDEN; (NOW THE CHALDEANS WERE BY THE CITY ROUND ABOUT:)G' AND THEY WENT BY THE WAY OF THE PLAIN.OG# 8 BUT THE ARMY OF THE CHALDEANS PURSUED AFTER THE KING, AND OVERTOOKZL ZEDEKIAH IN THE PLAINS OF JERICHO; AND ALL HIS ARMY WAS SCATTERED FROM HIM.L# 9 THEN THEY TOOK THE KING, AND CARRIED HIM UP UNTO THE KING OF BABYLON TO< RIBLAH IN THE@K HAMATH; WHERE HE GAVE JUDGMENT UPON HIM.K# 10 AND THE KING OF BABYLON SLEW THE SONS OF ZEDEKIAH BEFORE HIS EYES: HEN. SLEW ALSO ALL THE PRINCES OF JUDAH IN RIBLAH.M# 11 THEN HE PUT OUT THE EYES OF ZEDEKIAH; AND THE KING OF BABYLON BOUND HIM M IN CHAINS, AND CARRIED HIM TO BABYLON, AND PUT HIM IN PRISON TILL THE DAY OFO HIS DEATH.DJ# 12 NOW IN THE FIFTH MONTH, IN THE TENTH DAY OF THE MONTH, WHICH WAS THEM NINETEENTH YEAR OF NEBUCHADREZZAR KING OF BABYLON, CAME NEBUZARADAN, CAPTAINB@ OF THE GUARD, WHICH SERVED THE KING OF BABYLON, INTO JERUSALEM,9# 13 AND BURN00]%^%D%5%T6%! !ED THE HOUSE OF THE LO0BK*$KN=KV`KP{K,EKxK 3K~HK ZKlsKnKHK1K GK /cKlnKfK^Kt>KZKRnK@K BURNED HE WITHE FIRE:J# 14 AND ALL THE ARMY OF THE CHALDEANS, THAT WERE WITH THE CAPTAIN OF THE: GUARD, BRAKE DOWN ALL THE WALLS OF JERUSALEM ROUND ABOUT.L# 15 THEN NEBUZARADAN THE CAPTAIN OF THE GUARD CARRIED AWAY CAPTIVE CERTAINN OF THE POOR OF THE PEOPLE, AND THE RESIDUE OF THE PEOPLE THAT REMAINED IN THEJ CITY, AND THOSE THAT FELL AWAY, THAT FELL TO THE KING OF BABYLON, AND THE REST OF THE MULTITUDE.=X# 16 BUT NEBUZARADAN THE CAPTAIN OF THE GUARD LEFT CERTAIN OF THE PTH AND MAKETH A LIE.I# 16 I JESUS HAVE SENT MINE ANGEL TO TESTIFY UNTO YOU THESE THINGS IN THEEG CHURCHES. I AM THE ROOT AND THE OFFSPRING OF DAVID, AND THE BRIGHT AND  MORNING STAR.J# 17 AND THE SPIRIT AND THE BRIDE SAY, COME. AND LET HIM THAT HEARETH SAY,M COME. AND LET HIM THAT IS ATHIRST COME. AND WHOSOEVER WILL, LET HIM TAKE THE WATER OF LIFE FREELY.K# 18 FOR I TESTIFY UNTO EVERY MAN THAT HEARETH THE WORDS OF THE PROPHECY OF# 16 BUT NEBUZARADAN THE CAPTAIN OF THE GUARD LEFT CERTAIN OF THE PTH AND MAKETH A LIE.I# 16 I JESUS HAVE SENT MINE ANGEL TO TESTIFY UNTO YOU THESE THINGS IN THEEG CHURCHES. I AM THE ROOT AND THE OFFSPRING OF DAVID, AND THE BRIGHT AND  MORNING STAR.J# 17 AND THE SPIRIT AND THE BRIDE SAY, COME. AND LET HIM THAT HEARETH SAY,M COME. AND LET HIM THAT IS ATHIRST COME. AND WHOSOEVER WILL, LET HIM TAKE THE WATER OF LIFE FREELY.K# 18 FOR I TESTIFY UNTO EVERY MAN THAT HEA2O NOT AFTER OTHER GODS TO SERVE THEM, AND YE SHALLM DWELL IN THE LAND WHICH I HAVE GIVEN TO YOU AND TO YOUR FATHERS: BUT YE HAVEJ. NOT INCLINED YOUR EAR, NOR HEARKENED UNTO ME.F# 16 BECAUSE THE SONS OF JONADAB THE SON OF RECHAB HAVE PERFORMED THEK COMMANDMENT OF THEIR FATHER, WHICH HE COMMANDED THEM; BUT THIS PEOPLE HATHC NOT HEARKENED UNTO ME:RN# 17 THEREFORE THUS SAITH THE LORD GOD OF HOSTS, THE GOD OF ISRAEL; BEHOLD, IM WILL BRING UPON JUDAH AND UPON ALL THE INHABITANTS OF JERUSALEM ALL THE EVIL J THAT I HAVE PRONOUNCED AGAINST THEM: BECAUSE I HAVE SPOKEN UNTO THEM, BUT THEY HAVE NHCAC|C8DrDD-DGDbDE E@E(E2EAELEUE@eE@xEE E`E E #E`7E@EJE`WE^E gE sE@FpFF` FFPFpF F#F&F@.F3Fp9F=FPAF@FFKF@NF0SFCOMMANDMENT OFL JONADAB YOUR FATHER, AND KEPT ALL HIS PRECEPTS, AND DONE ACCORDING UNTO ALL THAT HE HATH COMMANDED YOU:L# 19 THEREFORE THUS SAITH THE LORD OF HOSTS, THE GOD OF ISRAEL; JONADAB THE@ SON OF RECHAB SHALL NOT WANT A MAN TO STAND BEFORE ME FOR EVER.= CHAPTER 36 N# 1 AND IT CAME TO PASS IN THE FOURTH YEAR OF JEHOIAKIM THE SON OF JOSIAH KING OF JUDAH, THAT THIS WORD CAME UNTO CWFYF0]FpaFfF@iF mF`qF0vF@|FFXF@FHF FFFhF0FPF0FXFHF`F F F"FP$Fh'F@+Fp.FP/F2F4F`7F9FFX@FHCF8AND AGAINST ALL THEBL NATIONS, FROM THE DAY I SPAKE UNTO THEE, FROM THE DAYS OF JOSIAH, EVEN UNTO THIS DAY.M# 3 IT MAY BE THAT THE HOUSE OF JUDAH WILL HEAR ALL THE EVIL WHICH I PURPOSEDN TO DO UNTO THEM; THAT THEY MAY RETURN EVERY MAN FROM HIS EVIL WAY; THAT I MAY& FORGIVE THEIR INIQUITY AND THEIR SIN.M# 4 THEN JEREMIAH CALLED BARUCH THE SON OF NERIAH: AND BARUCH WROTE FROM THEE MOUTH OF JEREMIAH ALL THE WORDS OF THE LORD, WHICHXBFF GFHFXJF@MFHOF(QFTFWFpYF@[F^FH_FcF`hF`jF`mFhoFpqFxsFpvF@wF`zFH}F F8G@G|ANNOT GO INTO THEO HOUSE OF THE LORD:AM# 6 THEREFORE GO THOU, AND READ IN THE ROLL, WHICH THOU HAST WRITTEN FROM MYAJ MOUTH, THE WORDS OF THE LORD IN THE EARS OF THE PEOPLE IN THE LORDS HOUSEM UPON THE FASTING DAY: AND ALSO THOU SHALT READ THEM IN THE EARS OF ALL JUDAHR THAT COME OUT OF THEIR CITIES.EM# 7 IT MAY BE THEY WILL PRESENT THEIR SUPPLICATION BEFORE THE LORD, AND WILLOM RETURN EVERY ONE FROM HIS EVIL WAY: FOR GREAT IS THE ANGER AND THE FURY THAT_^ THE LORD HATH PRONOUNCED ACGDG4Gx GdGl G,G<G\G`G\G,GG(G(GTG\GLGDGHG4 GL"G A#G $G<%G(&GL(G)Gx*G,G,GD.G0G1G2Gx3GH OF THE LORD IN THE LORDS HOUSE.HN# 9 AND IT CAME TO PASS IN THE FIFTH YEAR OF JEHOIAKIM THE SON OF JOSIAH KINGM OF JUDAH, IN THE NINTH MONTH, THAT THEY PROCLAIMED A FAST B00^%:%W<%X>%+%O-%TADATADATAEFORE THE LORD TOTM ALL THE PEOPLE IN JERUSALEM, AND TO ALL THE PEOPLE THAT CAME FROM THE CITIEST OF JUDAH UNTO JERUSALEM. L# 10 THEN READ BARUCH IN THE BOOK THE WORDS OF JEREMIAH IN THE HOUSE OF THE LORD, IN THE CHAMBER OF GEMARIAH THE SON OF SHAPHAN THE SCRIBE, IN THE HIGHEC4Gt6G47G8G<:G@;G|G>GL@G@GhBG4CG$DGEGFGpGGdHGTIG,JGJGTKG@LGhMGdNGPOGPG|QGhTGDUGhVGHWG(YGxZGON OF SHAPHAN, HAD HEARD OUT OF$ THE BOOK ALL THE WORDS OF THE LORD,L# 12 THEN HE WENT DOWN INTO THE KINGS HOUSE, INTO THE SCRIBES CHAMBER: AND,M LO, ALL THE PRINCES SAT THERE, EVEN ELISHAMA THE SCRIBE, AND DELAIAH THE SONTN OF SHEMAIAH, AND ELNATHAN THE SON OF ACHBOR, AND GEMARIAH THE SON OF SHAPHAN,7 AND ZEDEKIAH THE SON OF HANANIAH, AND ALL THE PRINCES.RL# 13 THEN MICHAIAH DECLARED UNTO THEM ALL THE WORDS THAT HE HAD HEARD, WHEN BARUCH READ THE BOOK@B[G I[GP\GT]G^G_GH`G|aGGpG2G`GGDS AT HIS MOUTH?HK# 18 THEN BARUCH ANSWERED THEM, HE PRONOUNCED ALL THESE WORDS UNTO ME WITH 2 HIS MOUTH, AND I WROTE THEM WITH INK IN THE BOOK.N# 19 THEN SAID THE PRINCES UNTO BARUCH, GO, HIDE THEE, THOU AND JEREMIAH; AND LET NO MAN KNOW WHERE YE BE.TL# 20 AND THEY WENT IN TO THE KING INTO THE COURT, BUT THEY LAID UP THE ROLLM IN THE CHAMBER OF ELISHAMA THE SCRIBE, AND TOLD ALL THE WORDS IN THE EARS OFE THE KING.F# 21 SO THE KING SENT JEHUDI TO FETCH THE ROLL: AND HE TOOK IT OUT OFF ELISHAMA THE SCRAGGG|GXHUDI READ IT IN THE EARS OF THE KING, AND< IN THE EARS OF ALL THE PRINCES WHICH STOOD BESIDE THE KING.M# 22 NOW THE KING SAT IN THE WINTERHOUSE IN THE NINTH MONTH: AND THERE WAS AE' FIRE ON THE HEARTH BURNING BEFORE HIM.WM# 23 AND IT CAME TO PASS, THAT WHEN JEHUDI HAD READ THREE OR FOUR LEAVES, HEDL CUT IT WITH THE PENKNIFE, AND CAST IT INTO THE FIRE THAT WAS ON THE HEARTH,D UNTIL ALL THE ROLL WAS CONSUMED IN THE FIRE THAT WAS ON THE HEARTH.N# 24 YET THEY WERE NOT AFRAID, NOR RENT THEIR GARMENTS, NEITHER THE KING, NOR0 ANY OF HIS SERVANTS THAT HEARD ALL THESE WORDS. # xB GB GLG GjGlG4 KG6 G Gr G RGGtGvGrGGBG>G`GxGpGLG$G&G4G(G"G0GrG~GDGhOULD NOT HEAR THEM.L# 26 BUT THE KING COMMANDED JERAHMEEL THE SON OF HAMMELECH, AND SERAIAH THEN SON OF AZRIEL, AND SHELEMIAH THE SON OF ABDEEL, TO TAKE BARUCH THE SCRIBE AND- JEREMIAH THE PROPHET: BUT THE LORD HID THEM. I# 27 THEN THE WORD OF THE LORD CAME TO JEREMIAH, AFTER THAT THE KING HADDL BURNED THE ROLL, AND THE WORDS WHICH BARUCH WROTE AT THE MOUTH OF JEREMIAH, SAYING,M# 28 TAKE THEE AGAIN ANOTHER ROLL, AND WRITE IN IT ALL THE FORMER WORDS THATG WERE IN@BG,G*GFGG*GXGNGFG\G6GzGhGt G Gf!G"Gd"Gh#G $GF%G8%GH&GP'G M.'G,IM KING OF JUDAH, THUS SAITH THE LORD; THOUJ HAST BURNED THIS ROLL, SAYING, WHY HAST THOU WRITTEN THEREIN, SAYING, THEL KING OF BABYLON SHALL CERTAINLY COME AND DESTROY THIS LAND, AND SHALL CAUSE$ TO CEASE FROM THENCE MAN AND BEAST?M# 30 THEREFORE THUS SAITH THE LORD OF JEHOIAKIM KING OF JUDAH; HE SHALL HAVEOM NONE TO SIT UPON THE THRONE OF DAVID: AND HIS DEAD BODY SHALL BE CAST OUT IN 4 THE DAY TO THE HEAT, AND IN THE NIGHT TO THE FROST.# 31 AND I WILL PUNISH HIM AND HIS SEED AND HIS SERVAN0B(G@)GH*GL*Gb+Gp+GP,G-G/G/G0G&1G1G>2Gv3G 3GH4Gz4Gn5G`6GZ7GP7GjAND UPONM THE MEN OF JUDAH, ALL THE EVIL THAT I HAVE PRONOUNCED AGAINST THEM; BUT THEYA HEARKENED NOT.TL# 32 THEN TOOK JEREMIAH ANOTHER ROLL, AND GAVE IT TO BARUCH THE SCRIBE, THEM SON OF NERIAH; WHO WROTE THEREIN FROM THE MOUTH OF JERE00^%%D%5%T6%! !MIAH ALL THE WORDS OFON THE BOOK WHICH JEHOIAKIM KING OF JUDAH HAD BURNED IN THE FIRE: AND THERE WERE) ADDED BESIDES UNTO THEM MANY LIKE WORDS..= CHAPTER 37 L# 1 AND KING ZEDEKIAH THE SON OF JOSIAH REIGNED INSTEAD OF CONIAH THE SON OF` JEHOIAKIM, WHOM NEBUCHADREZZAR HB8Gx9Gb9Gl:G;Gd;G~G?Gl?Gh@GZ@G^AGvBG0BG"CGDGPEGEG %FGFGGGGGt OF THE LAND, DID HEARKEND UNTO THE WORDS OF THE LORD, WHICH HE SPAKE BY THE PROPHET JEREMIAH.N# 3 AND ZEDEKIAH THE KING SENT JEHUCAL THE SON OF SHELEMIAH AND ZEPHANIAH THEN SON OF MAASEIAH THE PRIEST TO THE PROPHET JEREMIAH, SAYING, PRAY NOW UNTO THE LORD OUR GOD FOR US.UM# 4 NOW JEREMIAH CAME IN AND WENT OUT AMONG THE PEOPLE: FOR THEY HAD NOT PUTS HIM INTO PRISON. K# 5 THEN PHARAOHS ARMY WAS COME FORTH OUT OF EGYPT: AND WHEN THE CHALDEANSGI THAT BESIEGED JERUSALEM HEARD TIDINGS OF THEhBHGIG6IGzJGFJGnKGjLGpMGMGRNGFNGOG@OG~PGDPGDQGQG@RGHRGSGYSG HE BjGjG\kG0kGlGlG|mGmGnGNnG6LEST AWAY TO THE CHALDEANS.L# 14 THEN SAID JEREMIAH, IT IS FALSE; I FALL NOT AWAY TO THE CHALDEANS. BUTI HE HEARKENED NOT TO HIM: SO IRIJAH TOOK JEREMIAH, AND BROUGHT HIM TO THE, PRINCES.NL# 15 WHEREFORE THE PRINCES WERE WROTH WITH JEREMIAH, AND SMOTE HIM, AND PUTN HIM IN PRISON IN THE HOUSE OF JONATHAN THE SCRIBE: FOR THEY HAD MADE THAT THE PRISON.J# 16 WHEN JEREMIAH WAS ENTERED INTO THE DUNGEON, AND INTO THE CABINS, AND' JEREMIAH HAD REMAINED THERE MANY DAYS;HK# 17 THEN ZEDEKIAH THE KING SENT, AND TOOK HIM OUT: AND THE KING ASKED HIM " SECRPBoGzoG>pG.pGTqGPqG>rG$sGsG tGtuGuGvGXLORD? ANDTM JEREMIAH SAID, THERE IS: FOR, SAID HE, THOU SHALT BE DELIVERED INTO THE HANDP OF THE KING OF BABYLON.M# 18 MOREOVER JEREMIAH SAID UNTO KING ZEDEKIAH, WHAT HAVE I OFFENDED AGAINST N THEE, OR AGAINST THY SERVANTS, OR AGAINST THIS PEOPLE, THAT YE HAVE PUT ME IN PRISON?M# 19 WHERE ARE NOW YOUR PROPHETS WHICH PROPHESIED UNTO YOU, SAYING, THE KINGD> OF BABYLON SHALL NOT COME AGAINST YOU, NOR AGAINST THIS LAND?A# 20 THEREFORE HEAR NOW, I PRAY THEE, O MY LORD THE KING: LET MY SUPPLICATION, I PRAY THEE, BE ACCEPTED BEFORE THEE; BwGwGxGxGnxGHyGyGpyG*zGzGHUSE OF JONATHAN THE SCRIBE, LEST I DIE THERE.L# 21 THEN ZEDEKIAH THE KING COMMANDED THAT THEY SHOULD COMMIT JEREMIAH INTON THE COURT OF THE PRISON, AND THAT THEY SHOULD GIVE HIM DAILY A PIECE OF BREADK OUT OF THE BAKERS STREET, UNTIL ALL THE BREAD IN THE CITY WERE SPENT. THUSN. JEREMIAH REMAINED IN THE COURT OF THE PRISON.= CHAPTER 38 J# 1 THEN SHEPHATIAH THE SON OF MATTAN, AND GEDALIAH THE SON OF PASHUR, ANDL JUCAL THE SON OF SHELEMIAH, AND PASHUR THE SON OF MALCHIAH, HEARD THE WORDS6 THAT JEREMIAH HAD SPOKEN UNTO ALL THE PEOPLE, SAYING,# 2 (CzG\{GN{G{Gn|G>|G"}G}GP}G~G~Gh~G.GGLG HH3HPHwH(H^HHMHlH H*HBHjHHFH}HFHnH&HiHH?HiH4HkHHMFOR HE SHALL HAVE HIS LIFE FOR A PREY, AND SHALL LIVE.N# 3 THUS SAITH THE LORD, THIS CITY SHALL SURELY BE GIVEN INTO THE HAND OF THE, KING OF BABYLONS ARMY, WHICH SHALL TAKE IT.L# 4 00^%:%W<%X>%+%O-%TADATADATA THEREFORE THE PRINCES SAID UNTO THE KING, WE BESEECH THEE, LET THIS MANH BE PUT TO DEATH: FOR THUS HE WEAKENETH THE HANDS OF THE MEN OF WAR THATM REMAIN IN THIS CITY, AND THE HANDS OF ALL THE PEOPLE, IN SPEAKING SUCH WORDS| UNTO THEM: FOR THIDHwHHH+H;HVHhHHHBHgHuHHHH)H@H_H;HVHdHH6HBHVHzHH-HAHUHjHH3HWHH:HR H HB H\ H H H3 H? HoHH&H7HMHtHHAHRHaHlHH/HFH]H~HH"H9HLHaH~ TH NH* THq KH7 FH@ LHk H HA Ho H H H8H@H[HH H+HIH_HxHH#HBHH@H_H{HH,H?HXHmHHHH'HWH|H<HHVH)H@HuHHH-H<HIHcHHH2H:HCHNHZHcHoHzHHHH%H1H7HSHZH_HH'H8HKHxHH&H4HNHlHH(HIH_HoxBH|H3HYHHBHfH$HPHH.HlH)HaHHSHHPHH1HjH"H[HHIHH@HtH)HcHHUING, THESE MEN HAVE DONE EVIL IN ALL THAT THEY HAVE DONE TOHN JEREMIAH THE PROPHET, WHOM THEY HAVE CAST INTO THE DUNGEON; AND HE IS LIKE TOK DIE FOR HUNGER IN THE PLACE WHERE HE IS: FOR THERE IS NO MORE BREAD IN THE+ CITY.I# 10 THEN THE KING COMMANDED EBEDMELECH THE ETHIOPIAN, SAYING, TAKE FROMH HENCE THIRTY MEN WITH THEE, AND TAKE UP JEREMIAH THE PROPHET OUT OF THE DUNGEON, BEFORE HE DIE.# 11 SO EBEDMELECH TOOK THE MEN WITH HIM, AND WENT INTO THE HOUSE OF THE K@BHH0HpHHCHsHHOH}H,HUHoLOUTS AND OLD ROTTEN RAGS, AND5 LET THEM DOWN BY CORDS INTO THE DUNGEON TO JEREMIAH. M# 12 AND EBEDMELECH THE ETHIOPIAN SAID UNTO JEREMIAH, PUT NOW THESE OLD CASTEN CLOUTS AND ROTTEN RAGS UNDER THINE ARMHOLES UNDER THE CORDS. AND JEREMIAH DID SO.N# 13 SO THEY DREW UP JEREMIAH WITH CORDS, AND TOOK HIM UP OUT OF THE DUNGEON:2 AND JEREMIAH REMAINED IN THE COURT OF THE PRISON.N# 14 THEN ZEDEKIAH THE KING SENT, AND TOOK JEREMIAH THE PROPHET UNTO HIM INTOI THE THIRD ENTRY THAT IS IN THE HOUSE OF THE LORD: AND THE KING SAID UNTOA. JEREMIAH, I BHH3HQHjHH2HKHfFROM ME.L# 15 THEN JEREMIAH SAID UNTO ZEDEKIAH, IF I DECLARE IT UNTO THEE, WILT THOUN NOT SURELY PUT ME TO DEATH? AND IF I GIVE THEE COUNSEL, WILT THOU NOT HEARKEN UNTO ME?DL# 16 SO ZEDEKIAH THE KING SWARE SECRETLY UNTO JEREMIAH, SAYING, AS THE LORDM LIVETH, THAT MADE US THIS SOUL, I WILL NOT PUT THEE TO DEATH, NEITHER WILL IA9 GIVE THEE INTO THE HAND OF THESE MEN THAT SEEK THY LIFE.ON# 17 THEN SAID JEREMIAH UNTO ZEDEKIAH, THUS SAITH THE LORD, THE GOD OF HOSTS,M THE GOD OF ISRAEL; IF THOU WILT ASSUREDLY GO FORTH UNTO THE KING OF BABYLONSE PRINCES, THENC H HO H H; HM!H!H>!H{!H-!Hc"H7"Hd"Hp"H%"Hq#H#H1#HV#Hm#H/#H?#He$H $HK$H$H'$H\$H%HI%H%Hb%H}&H)&Hc&H&H,&Hi'HP'H'H'Hb(H.(Hj(H)(Hw)H8)HW)H)H9*H*H%*Hh*H*H,*HY*H|+H+HQ+H}+H5+Hs,H,H9,Hk,H ,HITH FIRE, AND THOU SHALT NOT ESCAPE OUT OF THEIR HAND.L# 19 AND ZEDEKIAH THE KING SAID UNTO JEREMIAH, I AM AFRAID OF THE JEWS THATL ARE FALLEN TO THE CHALDEANS, LEST THEY DELIVER ME INTO THEIR HAND, AND THEY MOCK ME.K# 20 BUT JEREMIAH SAID, THEY SHALL NOT DELIVER THEE. OBEY, I BESEECH THEE,E* THE VOICE OF THE LORD, WHICH I SPEAKPC-H &-H;-H-HZ.H+.Hw.HB/H/HU/H/HV0H0HH0H:0HD1H1H<1H1H?1Hp2H#2HM2H3H3H 3H3HK4H4H@4H4HZ5HG5HA6H 6HS6H E6Hj7H!7Hu7H&7H^8H8HX8H~8Hb8Ho9H99HL9H5:H:H;HC KING OF JUDAHS HOUSENN SHALL BE BROUGHT FORTH TO THE KING OF BABYLONS PRINCES, AND THOSE WOMEN SHALLM SAY, THY FRIENDS HAVE SET THEE ON, AND HAVE PREVAILED AGAINST THEE: THY FEETE5 ARE SUNK IN THE MIRE, AND THEY ARE TURNED AWAY BACK.0N# 23 SO THEY SHALL BRING OUT ALL THY WIVES AND THY CHILDREN TO THE CHALDEANS: AND THOU SHALT NOT ESCAPE OUT OF THEIR HAND, BUT SHALT BE TAKEN BY THE HAN A;H#;HgH>HT>H >H)>Hc?H"?Hf?H'?Hh?H{@H"@HcAH5AHTAHZBH-BHyBHtCH5CHcCH!CHuDH;DHvDH6DHoEHJEH%EHwFHFHFHIGHGH[GHcHH(HH]HH-IHIHRIHIH]RCEIVED.E# 28 SO JEREMIAH ABODE IN THE COURT OF THE PRISON UNTIL THE DAY THATO@ JERUSALEM WAS TAKEN: AND HE WAS THERE WHEN JERUSALEM WAS TAKEN.= CHAPTER 39 I# 1 IN THE NINTH YEAR OF ZEDEKIAH KING OF JUDAH, IN THE TENTH MONTH, CAMEEL NEBUCHADREZZAR KING OF BABYLON AND ALL HIS ARMY AGAINST JERUSALEM, AND THEY BESIEGED IT.N# 2 AND IN THE ELEVENTH YEAR OF ZEDEKIAH, IN THE FOURTH MONTH, THE NINTH DAY@BJHLHLHeLH5LH~MHQMH NHLL THE PRINCES OF THE KING OF BABYLON CAME IN, AND SAT IN THE MIDDLEEL GATE, EVEN NERGALSHAREZER, SAMGARNEBO, SARSECHIM, RABSARIS, NERGALSHAREZER,D RABMAG, WITH ALL THE RESIDUE OF THE PRINCES OF THE KING OF BABYLON.L# 4 AND IT CAME TO PASS, THAT WHEN ZEDEKIAH THE KING OF JUDAH SAW THEM, ANDM ALL THE MEN OF WAR, THEN THEY FLED, AND WENT FORTH OUT OF THE CITY BY NIGHT, J BY THE WAY OF THE KINGS GARDEN, BY THE GATE BETWIXT THE TWO WALLS: AND HE WENT OUT THE WAY OF THE PLAIN.x# 5 BUT THE CHALDEANS ARMY PURSUED AFTER THEM, AND OVERTOOK ZEDEKIA`BNH4NHRNHNHNHHNHjOHOH)OHIOHtOHOH3OHQOHvHEY BROUGHT HIM UP TON NEBUCHADNEZZAR KING OF BABYLON TO RIBLAH IN THE LAND OF HAMATH, WHERE HE GAVE JUDGMENT UPON HIM. L# 6 THEN THE KING OF BABYLON SLEW THE SONS OF ZEDEKIAH IN RIBLAH BEFORE HIS= EYES: ALSO THE KING OF BABYLON SLEW ALL THE NOBLES OF JUDAH.UL# 7 MOREOVER HE PUT OUT ZEDEKIAHS EYES, AND BOUND HIM WITH CHAINS, TO CARRY HIM TO BABYLON.L# 8 AND THE CHALDEANS BURNED THE KINGS HOUSE, AND THE HOUSES OF THE PEOPLE,2 WITH FIRE, AND BRAKE DOWN THE WALLS OF JERUSALEM.C# 9 THEN NEBUZARADAN THE CAPTAIN OF THE GUARD CARRIE@APHPH:PHNTOAL BABYLON THE REMNANT OF THE PEOPLE THAT REMAINED IN THE CITY, AND THOSE THATH FELL AWAY, THAT FELL TO HIM, WITH THE REST OF THE PEOPLE THAT REMAINED.N# 10 BUT NEBUZARADAN THE CAPTAIN OF THE GUARD LEFT OF THE POOR OF THE PEOPLE,L WHICH HAD NOTHING, IN THE LAND OF JUDAH, AND GAVE THEM VINEYARDS AND FIELDS AT THE SAME TIME.K# 11 NOW NEBUCHADREZZAR KING OF BABYLON GAVE CHARGE CONCERNING JEREMIAH TO . NEBUZARADAN THE CAPTAIN OF THE GUARD, SAYING,N# 12 TAKE HIM, AND LOOK WELL TO HIM, AND DO HIM NO HARM; BUT DO UNTO HIM EVEN AS HE SHALL SAY UNTO THEE. C# 13 SO NEBUZARADABPHDPHoQHQH=QHdQH$QHHQHpRHUSHASBAN, RABSARIS, B AND NERGALSHAREZER, RABMAG, AND ALL THE KING OF BABYLONS PRINCES;K# 14 EVEN THEY SENT, AND TOOK JEREMIAH OUT OF THE COURT OF THE PRISON, ANDJJ COMMITTED HIM UNTO GEDALIAH THE SON OF AHIKAM THE SON OF SHAPHAN, THAT HE5 SHOULD CARRY HIM HOME: SO HE DWELT AMONG THE PEOPLE.IN# 15 NOW THE WORD OF THE LORD CAME UNTO JEREMIAH, WHILE HE WAS SHUT UP IN THE COURT OF THE PRISON, SAYING,MN# 16 GO AND SPEAK TO EBEDMELECH THE ETHIOPIAN, SAYING, THUS SAITH THE LORD OF HOSTS, THE GOD OF ISRAEL; BEHOLD, I WILL BRING MY WORDS UPON THIS CITY FOR @RHCAND NOT FOR GOOD; AND THEY SHALL BE ACCOMPLISHED IN THAT DAY BEFOREA THEE.M# 17 BUT I WILL DELIVER THEE IN THAT DAY, SAITH THE LORD: AND THOU SHALT NOTT; BE GIVEN INTO THE HAND OF THE MEN OF WHOM THOU ART AFRAID.LK# 18 FOR I WILL SURELY DELIVER THEE, AND THOU SHALT NOT FALL BY THE SWORD,EL BUT THY LIFE SHALL BE FOR A PREY UNTO THEE: BECAUSE THOU HAST PUT THY TRUST IN ME, SAITH THE LORD. = CHAPTER 40 L# 1 THE WORD THAT CAME TO JEREMIAH FROM THE LORD, AFTER THAT NEBUZARADAN THEL CAPTAIN OF THE GUARD HAD LET HIM GO FROM RAMAH, WHEN HE HAD TAKEN HIM BEINGB BOUND IN CHAINS AMONG ALL ARHRH+RH?RHVAY CAPTIVE OF JERUSALEM AND5 JUDAH, WHICH WERE CARRIED AWAY CAPTIVE UNTO BABYLON.FL# 2 AND THE CAPTAIN OF THE GUARD TOOK JEREMIAH, AND SAID UNTO HIM, THE LORD3 THY GOD HATH PRONOUNCED THIS EVIL UPON THIS PLACE.LN# 3 NOW THE LORD HATH BROUGHT IT, AND DONE ACCORDING AS HE HATH SAID: BECAUSEJ YE HAVE SINNED AGAINST THE LORD, AND HAVE NOT OBEYED HIS VOICE, THEREFORE THIS THING IS COME UPON YOU.NK# 4 AND NOW, BEHOLD, I LOOSE THEE THIS DAY FROM THE CHAINS WHICH 00^%:%W<%X>%+%O-%TADATADATAWERE UPONIN THINE HAND. IF IT SEEM GOOD UNTO THEE TO COME WITH ME INTO BABYLON, COME; ANDE I WILL LOOK WELL UNTO TH`ARHsSHSH?SH]SHSH+SHT TO COME WITH ME INTOOJ BABYLON, FORBEAR: BEHOLD, ALL THE LAND IS BEFORE THEE: WHITHER IT SEEMETH0 GOOD AND CONVENIENT FOR THEE TO GO, THITHER GO.N# 5 NOW WHILE HE WAS NOT YET GONE BACK, HE SAID, GO BACK ALSO TO GEDALIAH THEN SON OF AHIKAM THE SON OF SHAPHAN, WHOM THE KING OF BABYLON HATH MADE GOVERNORE OVER THE CITIES OF JUDAH, AND DWELL WITH HIM AMONG THE PEOPLE: OR GOOI WHERESOEVER IT SEEMETH CONVENIENT UNTO THEE TO GO. SO THE CAPTAIN OF THEM6 GUARD GAVE HIM VICTUALS AND A REWARD, AND LET HIM GO.H# 6 THEN WENT JEREMIAH UNTO GEDALIAH THE SON OF AHIKAM TO MI@ATH TH-THO6 WITH HIM AMONG THE PEOPLE THAT WERE LEFT IN THE LAND.K# 7 NOW WHEN ALL THE CAPTAINS OF THE FORCES WHICH WERE IN THE FIELDS, EVEN M THEY AND THEIR MEN, HEARD THAT THE KING OF BABYLON HAD MADE GEDALIAH THE SONOK OF AHIKAM GOVERNOR IN THE LAND, AND HAD COMMITTED UNTO HIM MEN, AND WOMEN, N AND CHILDREN, AND OF THE POOR OF THE LAND, OF THEM THAT WERE NOT CARRIED AWAY CAPTIVE TO BABYLON;M# 8 THEN THEY CAME TO GEDALIAH TO MIZPAH, EVEN ISHMAEL THE SON OF NETHANIAH,LD AND JOHANAN AND JONATHAN THE SONS OF KAREAH, AND SERAIAH THE SON OFG TANHUMETH, AND THE SONS OF EPHAI THE NETOPHATH@ATHTH+TH]H THE SON OF AI! MAACHATHITE, THEY AND THEIR MEN. M# 9 AND GEDALIAH THE SON OF AHIKAM THE SON OF SHAPHAN SWARE UNTO THEM AND TOHK THEIR MEN, SAYING, FEAR NOT TO SERVE THE CHALDEANS: DWELL IN THE LAND, ANDC: SERVE THE KING OF BABYLON, AND IT SHALL BE WELL WITH YOU.N# 10 AS FOR ME, BEHOLD, I WILL DWELL AT MIZPAH, TO SERVE THE CHALDEANS, WHICHK WILL COME UNTO US: BUT YE, GATHER YE WINE, AND SUMMER FRUITS, AND OIL, ANDEG PUT THEM IN YOUR VESSELS, AND DWELL IN YOUR CITIES THAT YE HAVE TAKEN.TL# 11 LIKEWISE WHEN ALL THE JEWS THAT WERE IN MOAB, AND AMONG THE AMMONITES, AND IN EDOM,@AUH 1UH;UHdN ALL THE COUNTRIES, HEARD THAT THE KING OFRL BABYLON HAD LEFT A REMNANT OF JUDAH, AND THAT HE HAD SET OVER THEM GEDALIAH& THE SON OF AHIKAM THE SON OF SHAPHAN;L# 12 EVEN ALL THE JEWS RETURNED OUT OF ALL PLACES WHITHER THEY WERE DRIVEN,K AND CAME TO THE LAND OF JUDAH, TO GEDALIAH, UNTO MIZPAH, AND GATHERED WINE, AND SUMMER FRUITS VERY MUCH.UL# 13 MOREOVER JOHANAN THE SON OF KAREAH, AND ALL THE CAPTAINS OF THE FORCES5 THAT WERE IN THE FIELDS, CAME TO GEDALIAH TO MIZPAH,,M# 14 AND SAID UNTO HIM, DOST THOU CERTAINLY KNOW THAT BAALIS THE KING OF THELG AMMONITES HATH SENT ISHMAEAUHUH@ NETHANIAH TO SLAY THEE? BUT GEDALIAHT% THE SON OF AHIKAM BELIEVED THEM NOT. I# 15 THEN JOHANAN THE SON OF KAREAH SPAKE TO GEDALIAH IN MIZPAH SECRETLYN SAYING, LET ME GO, I PRAY THEE, AND I WILL SLAY ISHMAEL THE SON OF NETHANIAH,K AND NO MAN SHALL KNOW IT: WHEREFORE SHOULD HE SLAY THEE, THAT ALL THE JEWSLK WHICH ARE GATHERED UNTO THEE SHOULD BE SCATTERED, AND THE REMNANT IN JUDAHI PERISH?N# 16 BUT GEDALIAH THE SON OF AHIKAM SAID UNTO JOHANAN THE SON OF KAREAH, THOU? SHALT NOT DO THIS THING: FOR THOU SPEAKEST FALSELY OF ISHMAEL.L= CHAPTER 41 # 1 NOW IT CAME TO PASS IN THE SEV`BUH{VH2VHPVHjVH VH*VHPVHqWH,WHZWH|WH'WHOWHjLISHAMA, OF THE SEED ROYAL, AND THE PRINCES OF THEM KING, EVEN TEN MEN WITH HIM, CAME UNTO GEDALIAH THE SON OF AHIKAM TO MIZPAH;I1 AND THERE THEY DID EAT BREAD TOGETHER IN MIZPAH.LL# 2 THEN AROSE ISHMAEL THE SON OF NETHANIAH, AND THE TEN MEN THAT WERE WITHM HIM, AND SMOTE GEDALIAH THE SON OF AHIKAM THE SON OF SHAPHAN WITH THE SWORD,AH AND SLEW HIM, WHOM THE KING OF BABYLON HAD MADE GOVERNOR OVER THE LAND.N# 3 ISHMAEL ALSO SLEW ALL THE JEWS THAT WERE WITH HIM, EVEN WITH GEDALIAH, AT MIZPAH, AND THE CHALDEANS THAT WERE FOUND THERE, AAXH+XHSXHXH3# 4 AND IT CAME TO PASS THE SECOND DAY AFTER HE HAD SLAIN GEDALIAH, AND NOI MAN KNEW IT,EN# 5 THAT THERE CAME CERTAIN FROM SHECHEM, FROM SHILOH, AND FROM SAMARIA, EVENN FOURSCORE MEN, HAVING THEIR BEARDS SHAVEN, AND THEIR CLOTHES RENT, AND HAVINGK CUT THEMSELVES, WITH OFFERINGS AND INCENSE IN THEIR HAND, TO BRING THEM TOY THE HOUSE OF THE LORD.RJ00^%%D%5%T6%! !# 6 AND ISHMAEL THE SON OF NETHANIAH WENT FORTH FROM MIZPAH TO MEET THEM,K WEEPING ALL ALONG AS HE WENT: AND IT CAME TO PASS, AS HE MET THEM, HE SAIDX/ UNTO THEM, COME TO GEDALIAH THE SON OF AHIKAM.E|# 7 AND IT WAS SO, WHEN THE`BXHEXHyYH2YHYYHYHvZH>ZHyZH@[H[Hh[H'\H\H\HX]H#]Hb]H]Hk^H-^Hu^H^_H4_H_Hl`HJ`H_aHdE PIT, HE, AND THE MEN THAT WERE WITH HIM.K# 8 BUT TEN MEN WERE FOUND AMONG THEM THAT SAID UNTO ISHMAEL, SLAY US NOT: M FOR WE HAVE TREASURES IN THE FIELD, OF WHEAT, AND OF BARLEY, AND OF OIL, ANDDA OF HONEY. SO HE FORBARE, AND SLEW THEM NOT AMONG THEIR BRETHREN.N# 9 NOW THE PIT WHEREIN ISHMAEL HAD CAST ALL THE DEAD BODIES OF THE MEN, WHOMN HE HAD SLAIN BECAUSE OF GEDALIAH, WAS IT WHICH ASA THE KING HAD MADE FOR FEAR] OF BAASHA KING OF ISRAEL: AND ISHMAEL THE SON OF NETHANIAHBaH aHebH)bHjbHBcHcHcH`dH0dHeH A>eHUeH6fHfHfHrAWAY CAPTIVE ALL THE RESIDUE OF THE PEOPLE THATN WERE IN MIZPAH, EVEN THE KINGS DAUGHTERS, AND ALL THE PEOPLE THAT REMAINED INL MIZPAH, WHOM NEBUZARADAN THE CAPTAIN OF THE GUARD HAD COMMITTED TO GEDALIAHF THE SON OF AHIKAM: AND ISHMAEL THE SON OF NETHANIAH CARRIED THEM AWAY3 CAPTIVE, AND DEPARTED TO GO OVER TO THE AMMONITES.LL# 11 BUT WHEN JOHANAN THE SON OF KAREAH, AND ALL THE CAPTAINS OF THE FORCESL THAT WERE WITH HIM, HEARD OF ALL THE EVIL THAT ISHMAEL THE SON OF NETHANIAH HAD DONE,D# 12 THEN THEY TOOK ALL THE MEN, AN@BgH gH;hH"hHthHWiH.iHjHjHkH 0kHhkHblHilH7mHmHEmH mH[nH.nH nHhoH7oH@pH.IBEON.K# 13 NOW IT CAME TO PASS, THAT WHEN ALL THE PEOPLE WHICH WERE WITH ISHMAELCL SAW JOHANAN THE SON OF KAREAH, AND ALL THE CAPTAINS OF THE FORCES THAT WERE WITH HIM, THEN THEY WERE GLAD.AN# 14 SO ALL THE PEOPLE THAT ISHMAEL HAD CARRIED AWAY CAPTIVE FROM MIZPAH CAST= ABOUT AND RETURNED, AND WENT UNTO JOHANAN THE SON OF KAREAH. K# 15 BUT ISHMAEL THE SON OF NETHANIAH ESCAPED FROM JOHANAN WITH EIGHT MEN,O AND WENT TO THE AMMONITES.h# 16 THEN TOOK JOHANAN THE SON OF KAREAH, AND ALL THE CAPT(BpHpHsqH%qHnqHUrH2rH>sHsHsHbtH-tHuHuHRuHuHGvHvHGvHvH}wHCERED FROMWL ISHMAEL THE SON OF NETHANIAH, FROM MIZPAH, AFTER THAT HE HAD SLAIN GEDALIAHL THE SON OF AHIKAM, EVEN MIGHTY MEN OF WAR, AND THE WOMEN, AND THE CHILDREN,8 AND THE EUNUCHS, WHOM HE HAD BROUGHT AGAIN FROM GIBEON:L# 17 AND THEY DEPARTED, AND DWELT IN THE HABITATION OF CHIMHAM, WHICH IS BY& BETHLEHEM, TO GO TO ENTER INTO EGYPT,M# 18 BECAUSE OF THE CHALDEANS: FOR THEY WERE AFRAID OF THEM, BECAUSE ISHMAELFL THE SON OF NETHANIAH HAD SLAIN GEDALIAH THE SON OF AHIKAM, WHOM THE KING OF$ BABYLON MADE GO`BwHwH=xHxHWxH+yH yH0yH5zH zHmzHT{H{HO{HF|H|H]|H8}H}HF}H"}Hr~HT~H~HsH1HqH>HEZANIAH THE SON OF HOSHAIAH, AND ALL THE PEOPLE FROM THE LEAST EVEN UNTO THE GREATEST, CAME NEAR,MB# 2 AND SAID UNTO JEREMIAH THE PROPHET, LET, WE BESEECH THEE, OURM SUPPLICATION BE ACCEPTED BEFORE THEE, AND PRAY FOR US UNTO THE LORD THY GOD,GM EVEN FOR ALL THIS REMNANT; (FOR WE ARE LEFT BUT A FEW OF MANY, AS THINE EYESM DO BEHOLD US:) K# 3 THAT THE LORD THY GOD MAY SHEW US THE WAY WHEREIN WE MAY WALK, AND THED THING THAT WE MAY DO.}# 4 THEN JEREMIAH THE PROPHET SAID UNTO THBH6HYHxHH0HHH_HzH$HFH]HHH)HAHeCCORDING TO YOUR WORDS; AND IT SHALL COMEEL TO PASS, THAT WHATSOEVER THING THE LORD SHALL ANSWER YOU, I WILL DECLARE IT- UNTO YOU; I WILL KEEP NOTHING BACK FROM YOU.CH# 5 THEN THEY SAID TO JEREMIAH, THE LORD BE A TRUE AND FAITHFUL WITNESSM BETWEEN US, IF WE DO NOT EVEN ACCORDING TO ALL THINGS FOR THE WHICH THE LORD: THY GOD SHALL SEND THEE TO US.YM# 6 WHETHER IT BE GOOD, OR WHETHER IT BE EVIL, WE WILL OBEY THE VOICE OF THEEN LORD OUR GOD, TO WHOM WE SEND THEE; THAT IT MAY BE WELL WITH US, WHEN WE OBEYY THE VOICE OF THE LORD BH~HH.HEH\HkHH,H:HXHxHH7HEHqH)THE LORD CAME UNTOE JEREMIAH.J# 8 THEN CALLED HE JOHANAN THE SON OF KAREAH, AND ALL THE CAPTAINS OF THEJ FORCES WHICH WERE WITH HIM, AND ALL THE PEOPLE FROM THE LEAST EVEN TO THE GREATEST,M# 9 AND SAID UNTO THEM, THUS SAITH THE LORD, THE GOD OF ISRAEL, UNTO WHOM YE 1 SENT ME TO PRESENT YOUR SUPPLICATION BEFORE H00^%:%W<%X>%+%O-%TADATADATAIM;LN# 10 IF YE WILL STILL ABIDE IN THIS LAND, THEN WILL I BUILD YOU, AND NOT PULLM YOU DOWN, AND I WILL PLANT YOU, AND NOT PLUCK YOU UP: FOR I REPENT ME OF THEH EVIL THAT I HAVE DONE UNTO YOU.9# 11 BE NOT AFRAPBH?H[HmHHH*H=HRHmH~HH4HM M AFRAID OF HIM, SAITH THE LORD: FOR I AM WITH YOU TO SAVE YOU, AND TO DELIVERE YOU FROM HIS HAND.TL# 12 AND I WILL SHEW MERCIES UNTO YOU, THAT HE MAY HAVE MERCY UPON YOU, AND& CAUSE YOU TO RETURN TO YOUR OWN LAND.N# 13 BUT IF YE SAY, WE WILL NOT DWELL IN THIS LAND, NEITHER OBEY THE VOICE OF THE LORD YOUR GOD,YN# 14 SAYING, NO; BUT WE WILL GO INTO THE LAND OF EGYPT, WHERE WE SHALL SEE NOL WAR, NOR HEAR THE SOUND OF THE TRUMPET, NOR HAVE HUNGER OF BREAD; AND THERE WILL WE DWELL:H?# 15 AND NOW THEREFORE HEAR THE WORD OF THE LORD, Y@AH\HrH RH)HGH_AITH THE LORD OF HOSTS, THE GOD OF ISRAEL; IF YE WHOLLY SET YOUR FACES TO+ ENTER INTO EGYPT, AND GO TO SOJOURN THERE;H# 16 THEN IT SHALL COME TO PASS, THAT THE SWORD, WHICH YE FEARED, SHALLI OVERTAKE YOU THERE IN THE LAND OF EGYPT, AND THE FAMINE, WHEREOF YE WEREAM AFRAID, SHALL FOLLOW CLOSE AFTER YOU THERE IN EGYPT; AND THERE YE SHALL DIE.ON# 17 SO SHALL IT BE WITH ALL THE MEN THAT SET THEIR FACES TO GO INTO EGYPT TOF SOJOURN THERE; THEY SHALL DIE BY THE SWORD, BY THE FAMINE, AND BY THES PESTILENCE: AND NONE OF THEM SHALL REMAIN OR ESCAPE FROM THE EVIL THAT I WI@AHqHSH!H5HUHs FOR THUS SAITH THE LORD OF HOSTS, THE GOD OF ISRAEL; AS MINE ANGER ANDTN MY FURY HATH BEEN POURED FORTH UPON THE INHABITANTS OF JERUSALEM; SO SHALL MYL FURY BE POURED FORTH UPON YOU, WHEN YE SHALL ENTER INTO EGYPT: AND YE SHALLK BE AN EXECRATION, AND AN ASTONISHMENT, AND A CURSE, AND A REPROACH; AND YET SHALL SEE THIS PLACE NO MORE.N# 19 THE LORD HATH SAID CONCERNING YOU, O YE REMNANT OF JUDAH; GO YE NOT INTO; EGYPT: KNOW CERTAINLY THAT I HAVE ADMONISHED YOU THIS DAY.TJ# 20 FOR YE DISSEMBLED IN YOUR HEARTS, WHEN YE SENT ME UNTO THE LORD YOUR GOD, SAYING, PRAY AH T.H)HFH] OUR GOD; AND ACCORDING UNTO ALL THATC THE LORD OUR GOD SHALL SAY, SO DECLARE UNTO US, AND WE WILL DO IT.NL# 21 AND NOW I HAVE THIS DAY DECLARED IT TO YOU; BUT YE HAVE NOT OBEYED THEM VOICE OF THE LORD YOUR GOD, NOR ANY THING FOR THE WHICH HE HATH SENT ME UNTO  YOU.DI# 22 NOW THEREFORE KNOW CERTAINLY THAT YE SHALL DIE BY THE SWORD, BY THENK FAMINE, AND BY THE PESTILENCE, IN THE PLACE WHITHER YE DESIRE TO GO AND TON SOJOURN.S= CHAPTER 43 L# 1 AND IT CAME TO PASS, THAT WHEN JEREMIAH HAD MADE AN END OF SPEAKING UNTOF ALL THE PEOPLE ALL THE WORDS OF THE LORD THEIR GOD, FOAHuHH*HBIR0 GOD HAD SENT HIM TO THEM, EVEN ALL THESE WORDS,K# 2 THEN SPAKE AZARIAH THE SON OF HOSHAIAH, AND JOHANAN THE SON OF KAREAH,AM AND ALL THE PROUD MEN, SAYING UNTO JEREMIAH, THOU SPEAKEST FALSELY: THE LORDCG OUR GOD HATH NOT SENT THEE TO SAY, GO NOT INTO EGYPT TO SOJOURN THERE:TL# 3 BUT BARUCH THE SON OF NERIAH SETTETH THEE ON AGAINST US, FOR TO DELIVERN US INTO THE HAND OF THE CHALDEANS, THAT THEY MIGHT PUT US TO DEATH, AND CARRY US AWAY CAPTIVES INTO BABYLON.FN# 4 SO JOHANAN THE SON OF KAREAH, AND ALL THE CAPTAINS OF THE FORCES, AND ALLF THE PEOPLE, OBEYED NOT THE VO AHUH`HvHHL IN THE LAND OF JUDAH.L# 5 BUT JOHANAN THE SON OF KAREAH, AND ALL THE CAPTAINS OF THE FORCES, TOOKL ALL THE REMNANT OF JUDAH, THAT WERE RETURNED FROM ALL NATIONS, WHITHER THEY0 HAD BEEN DRIVEN, TO DWELL IN THE LAND OF JUDAH;J# 6 EVEN MEN, AND WOMEN, AND CHILDREN, AND THE KINGS DAUGHTERS, AND EVERYL PERSON THAT NEBUZARADAN THE CAPTAIN OF THE GUARD HAD LEFT WITH GEDALIAH THEK SON OF AHIKAM THE SON OF SHAPHAN, AND JEREMIAH THE PROPHET, AND BARUCH THEA SON OF NERIAH.ON# 7 SO THEY CAME INTO THE LAND OF EGYPT: FOR THEY OBEYED NOT THE VOICE OF THE# LORD: THUS CAME THEY@AH1H>HPES. G# 8 THEN CAME THE WORD OF THE LORD UNTO JEREMIAH IN TAHPANHES, SAYING,NF# 9 TAKE GREAT STONES IN THINE HAND, AND HIDE THEM IN THE CLAY IN THEN BRICKKILN, WHICH IS AT THE ENTRY OF PHARAOHS HOUSE IN TAHPANHES, IN THE SIGHT OF THE MEN OF JUDAH;EI# 10 AND 00^%%D%5%T6%! !SAY UNTO THEM, THUS SAITH THE LORD OF HOSTS, THE GOD OF ISRAEL; M BEHOLD, I WILL SEND AND TAKE NEBUCHADREZZAR THE KING OF BABYLON, MY SERVANT,HH AND WILL SET HIS THRONE UPON THESE STONES THAT I HAVE HID; AND HE SHALL% SPREAD HIS ROYAL PAVILION OVER THEM.T# 11 AND WHEN HE COMETH, HE SHALL SMITE THE LAND OF EGYPT, AND DELI@AHbHwHHH&H?TO DEATH; AND SUCH AS ARE FOR CAPTIVITY TO CAPTIVITY; ANDI( SUCH AS ARE FOR THE SWORD TO THE SWORD.I# 12 AND I WILL KINDLE A FIRE IN THE HOUSES OF THE GODS OF EGYPT; AND HEEJ SHALL BURN THEM, AND CARRY THEM AWAY CAPTIVES: AND HE SHALL ARRAY HIMSELFN WITH THE LAND OF EGYPT, AS A SHEPHERD PUTTETH ON HIS GARMENT; AND HE SHALL GO FORTH FROM THENCE IN PEACE.K# 13 HE SHALL BREAK ALSO THE IMAGES OF BETHSHEMESH, THAT IS IN THE LAND OFHL EGYPT; AND THE HOUSES OF THE GODS OF THE EGYPTIANS SHALL HE BURN WITH FIRE.= CHAPTER 44 F# 1 THE WORD THAT CAME TO JEREMIAH CONCERNIAHVHlHHH DWELL IN THEL LAND OF EGYPT, WHICH DWELL AT MIGDOL, AND AT TAHPANHES, AND AT NOPH, AND IN THE COUNTRY OF PATHROS, SAYING,J# 2 THUS SAITH THE LORD OF HOSTS, THE GOD OF ISRAEL; YE HAVE SEEN ALL THEK EVIL THAT I HAVE BROUGHT UPON JERUSALEM, AND UPON ALL THE CITIES OF JUDAH;CJ AND, BEHOLD, THIS DAY THEY ARE A DESOLATION, AND NO MAN DWELLETH THEREIN,K# 3 BECAUSE OF THEIR WICKEDNESS WHICH THEY HAVE COMMITTED TO PROVOKE ME TOFM ANGER, IN THAT THEY WENT TO BURN INCENSE, AND TO SERVE OTHER GODS, WHOM THEY . KNEW NOT, NEITHER THEY, YE, NOR YOUR FATHERS.F# 4 HOWBEIT I SENT UNT@AH+H=HKVANTS THE PROPHETS, RISING EARLY ANDD SENDING THEM, SAYING, OH, DO NOT THIS ABOMINABLE THING THAT I HATE.F# 5 BUT THEY HEARKENED NOT, NOR INCLINED THEIR EAR TO TURN FROM THEIR0 WICKEDNESS, TO BURN NO INCENSE UNTO OTHER GODS.N# 6 WHEREFORE MY FURY AND MINE ANGER WAS POURED FORTH, AND WAS KINDLED IN THEI CITIES OF JUDAH AND IN THE STREETS OF JERUSALEM; AND THEY ARE WASTED AND  DESOLATE, AS AT THIS DAY.L# 7 THEREFORE NOW THUS SAITH THE LORD, THE GOD OF HOSTS, THE GOD OF ISRAEL;L WHEREFORE COMMIT YE THIS GREAT EVIL AGAINST YOUR SOULS, TO CUT OFF FROM YOUJ MAN AND WOMAN, CHI@H[UCKLING, OUT OF JUDAH, TO LEAVE YOU NONE TO REMAIN;K# 8 IN THAT YE PROVOKE ME UNTO WRATH WITH THE WORKS OF YOUR HANDS, BURNINGSK INCENSE UNTO OTHER GODS IN THE LAND OF EGYPT, WHITHER YE BE GONE TO DWELL,NN THAT YE MIGHT CUT YOURSELVES OFF, AND THAT YE MIGHT BE A CURSE AND A REPROACH$ AMONG ALL THE NATIONS OF THE EARTH?L# 9 HAVE YE FORGOTTEN THE WICKEDNESS OF YOUR FATHERS, AND THE WICKEDNESS OFD THE KINGS OF JUDAH, AND THE WICKEDNESS OF THEIR WIVES, AND YOUR OWNK WICKEDNESS, AND THE WICKEDNESS OF YOUR WIVES, WHICH THEY HAVE COMMITTED INNs THE LAND OF JUDAH, AND IN THE STREETS OF JERUPBHqHHH(H:HIH_H~ H H2 HZ H H(EITHER HAVE THEY FEARED, NORIL WALKED IN MY LAW, NOR IN MY STATUTES, THAT I SET BEFORE YOU AND BEFORE YOUR FATHERS.DJ# 11 THEREFORE THUS SAITH THE LORD OF HOSTS, THE GOD OF ISRAEL; BEHOLD, IA WILL SET MY FACE AGAINST YOU FOR EVIL, AND TO CUT OFF ALL JUDAH.WK# 12 AND I WILL TAKE THE REMNANT OF JUDAH, THAT HAVE SET THEIR FACES TO GORM INTO THE LAND OF EGYPT TO SOJOURN THERE, AND THEY SHALL ALL BE CONSUMED, ANDIK FALL IN THE LAND OF EGYPT; THEY SHALL EVEN BE CONSUMED BY THE SWORD AND BYH@ THE FAMINE: THEY SHALL DIE, FROM THE LEAST EVEN UNTO A HC H] HxH @HSWORD AND BY THE FAMINE: AND THEY SHALL BE AN EXECRATION, AND + ASTONISHMENT, AND A CURSE, AND A REPROACH. G# 13 FOR I WILL PUNISH THEM THAT DWELL IN THE LAND OF EGYPT, AS I HAVECH PUNISHED JERUSALEM, BY THE SWORD, BY THE FAMINE, AND BY THE PESTILENCE:K# 14 SO THAT NONE OF THE REMNANT OF JUDAH, WHICH ARE GONE INTO THE LAND OFAM EGYPT TO SOJOURN THERE, SHALL ESCAPE OR REMAIN, THAT THEY SHOULD RETURN INTOEM THE LAND OF JUDAH, TO THE WHICH THEY HAVE A DESIRE TO RETURN TO DWELL THERE: 0 FOR NONE SHALL RETURN BUT SUCH AS SHALL ESCAPE.)# 15 THEN ALL THE MEN WHICH KNEW THAT ANH3HPHlH HNCENSE UNTO M OTHER GODS, AND ALL THE WOMEN THAT STOOD BY, A GREAT MULTITUDE, EVEN ALL THENG PEOPLE THAT DWELT IN THE LAND OF EGYPT, IN PATH00^%:%W<%X>%+%O-%TADATADATAROS, ANSWERED JEREMIAH,4 SAYING,L# 16 AS FOR THE WORD THAT THOU HAST SPOKEN UNTO US IN THE NAME OF THE LORD, WE WILL NOT HEARKEN UNTO THEE.,J# 17 BUT WE WILL CERTAINLY DO WHATSOEVER THING GOETH FORTH OUT OF OUR OWNG MOUTH, TO BURN INCENSE UNTO THE QUEEN OF HEAVEN, AND TO POUR OUT DRINKAM OFFERINGS UNTO HER, AS WE HAVE DONE, WE, AND OUR FATHERS, OUR KINGS, AND OURED PRINCES, IN THE CITIES OF JUDAH, AND IN THE STREETS OF JERUSALEM:@AH,HD8HaWE PLENTY OF VICTUALS, AND WERE WELL, AND SAW NO EVIL.J# 18 BUT SINCE WE LEFT OFF TO BURN INCENSE TO THE QUEEN OF HEAVEN, AND TOL POUR OUT DRINK OFFERINGS UNTO HER, WE HAVE WANTED ALL THINGS, AND HAVE BEEN) CONSUMED BY THE SWORD AND BY THE FAMINE.OM# 19 AND WHEN WE BURNED INCENSE TO THE QUEEN OF HEAVEN, AND POURED OUT DRINK M OFFERINGS UNTO HER, DID WE MAKE HER CAKES TO WORSHIP HER, AND POUR OUT DRINKO% OFFERINGS UNTO HER, WITHOUT OUR MEN?TK# 20 THEN JEREMIAH SAID UNTO ALL THE PEOPLE, TO THE MEN, AND TO THE WOMEN,U? AND TO ALL THE PEOPLE WHICH HAD GIVEN HIM THAT ANSWER, SAYIN A DHyHH%H@HUAT YE BURNED IN THE CITIES OF JUDAH, AND IN THE STREETS OFN JERUSALEM, YE, AND YOUR FATHERS, YOUR KINGS, AND YOUR PRINCES, AND THE PEOPLEL OF THE LAND, DID NOT THE LORD REMEMBER THEM, AND CAME IT NOT INTO HIS MIND?H# 22 SO THAT THE LORD COULD NO LONGER BEAR, BECAUSE OF THE EVIL OF YOURN DOINGS, AND BECAUSE OF THE ABOMINATIONS WHICH YE HAVE COMMITTED; THEREFORE ISE YOUR LAND A DESOLATION, AND AN ASTONISHMENT, AND A CURSE, WITHOUT ANT INHABITANT, AS AT THIS DAY.L# 23 BECAUSE YE HAVE BURNED INCENSE, AND BECAUSE YE HAVE SINNED AGAINST THEG LORD, AND HAVE NOT OBEYED TH@HlOF THE LORD, NOR WALKED IN HIS LAW, NORON IN HIS STATUTES, NOR IN HIS TESTIMONIES; THEREFORE THIS EVIL IS HAPPENED UNTO YOU, AS AT THIS DAY.?L# 24 MOREOVER JEREMIAH SAID UNTO ALL THE PEOPLE, AND TO ALL THE WOMEN, HEAR? THE WORD OF THE LORD, ALL JUDAH THAT ARE IN THE LAND OF EGYPT:HJ# 25 THUS SAITH THE LORD OF HOSTS, THE GOD OF ISRAEL, SAYING; YE AND YOURG WIVES HAVE BOTH SPOKEN WITH YOUR MOUTHS, AND FULFILLED WITH YOUR HAND,EL SAYING, WE WILL SURELY PERFORM OUR VOWS THAT WE HAVE VOWED, TO BURN INCENSEJ TO THE QUEEN OF HEAVEN, AND TO POUR OUT DRINK OFFERINGS UNTO HER: YE WILL6 SUREL@HzLISH YOUR VOWS, AND SURELY PERFORM YOUR VOWS.N# 26 THEREFORE HEAR YE THE WORD OF THE LORD, ALL JUDAH THAT DWELL IN THE LANDN OF EGYPT; BEHOLD, I HAVE SWORN BY MY GREAT NAME, SAITH THE LORD, THAT MY NAMEK SHALL NO MORE BE NAMED IN THE MOUTH OF ANY MAN OF JUDAH IN ALL THE LAND OFH$ EGYPT, SAYING, THE LORD GOD LIVETH.L# 27 BEHOLD, I WILL WATCH OVER THEM FOR EVIL, AND NOT FOR GOOD: AND ALL THEN MEN OF JUDAH THAT ARE IN THE LAND OF EGYPT SHALL BE CONSUMED BY THE SWORD AND. BY THE FAMINE, UNTIL THERE BE AN END OF THEM.I# 28 YET A SMALL NUMBER THAT ESCAPE THE SWORD SHALL RETURN OUT OF T@H OFDJ EGYPT INTO THE LAND OF JUDAH, AND ALL THE REMNANT OF JUDAH, THAT ARE GONEM INTO THE LAND OF EGYPT TO SOJOURN THERE, SHALL KNOW WHOSE WORDS SHALL STAND,  MINE, OR THEIRS. K# 29 AND THIS SHALL BE A SIGN UNTO YOU, SAITH THE LORD, THAT I WILL PUNISHWM YOU IN THIS PLACE, THAT YE MAY KNOW THAT MY WORDS SHALL SURELY STAND AGAINSTI YOU FOR EVIL:J# 30 THUS SAITH THE LORD; BEHOLD, I WILL GIVE PHARAOHHOPHRA KING OF EGYPTL INTO THE HAND OF HIS ENEMIES, AND INTO THE HAND OF THEM THAT SEEK HIS LIFE;I AS I GAVE ZEDEKIAH KING OF JUDAH INTO THE HAND OF NEBUCHADREZZAR KING OF  BABYLON, HIS ENE0BH'HAHf H H JH% TH< HS He WH~ WH SH( SH= HT NHq 1H} H H- HO Hj H H!UNTO BARUCH THE SON OF NERIAH,SK WHEN HE HAD WRITTEN THESE WORDS IN A BOOK AT THE MOUTH OF JEREMIAH, IN THE B FOURTH YEAR OF JEHOIAKIM THE SON OF JOSIAH KING OF JUDAH, SAYING,A# 2 THUS SAITH THE LORD, THE GOD OF ISRAEL, UNTO THEE, O BARUCH: G# 3 THOU DIDST SAY, WOE IS ME NOW! FOR THE LORD HATH ADDED GRIEF TO MYA5 SORROW; I FAINTED IN MY SIGHING, AND I FIND NO REST.AL# 4 THUS SHALT THOU SAY UNTO HIM, THE LORD SAITH THUS; BEHOLD, THAT WHICH I WH~ WH SH( SH= HT NHq 1H} H H- HO Hj H H!UNTO BARUCH THE SON OF NERI00_%%D%5%T6%! !* BOOK01 GENISIS = CHAPTER 1 :# 1 IN THE BEGINNING GOD CREATED THE HEAVEN AND THE EARTH.L# 2 AND THE EARTH WAS WITHOUT FORM, AND VOID; AND DARKNESS WAS UPON THE FACEF OF THE DEEP. AND THE SPIRIT OF GOD MOVED UPON THE FACE OF THE WATERS.:# 3 AND GOD SAID, LET THERE BE LIGHT: AND THERE WAS LIGHT.K# 4 AND GOD SAW THE LIGHT, THAT IT WAS GOOD: AND GOD DIVIDED THE LIGHT FROM THE DARKNESS.K# 5 AND GOD CALLED THE LIGHT DAY, AND THE DARKNESS HE CALLED NIGHT. AND THE, EVENING AND THE MORNING WERE THE FIRST DAY.J# 6 AND GOD SAID, LET THERE BE A FIRMAMENT IN THE MIDST OF THE WATERS, AND* LET IT DIVIDE THE WATERS FROM THE WATERS.K# 7 AND GOD MADE THE FIRMAMENT, AND DIVIDED THE WATERS WHICH WERE UNDER THEOI FIRMAMENT FROM THE WATERS WHICH WERE ABOVE THE FIRMAMENT: AND IT WAS SO. M# 8 AND GOD CALLED THE FIRMAMENT HEAVEN. AND THE EVENING AND THE MORNING WERED THE SECOND DAY.K# 9 AND GOD SAID, LET THE WATERS UNDER THE HEAVEN BE GATHERED TOGETHER UNTOD7 ONE PLACE, AND LET THE DRY LAND APPEAR: AND IT WAS SO. I# 10 AND GOD CALLED THE DRY LAND EARTH; AND THE GATHERING TOGETHER OF THE,5 WATERS CALLED HE SEAS: AND GOD SAW THAT IT WAS GOOD.NK# 11 AND GOD SAID, LET THE EARTH BRING FORTH GRASS, THE HERB YIELDING SEED,AK AND THE FRUIT TREE YIELDING FRUIT AFTER HIS KIND, WHOSE SEED IS IN ITSELF,  UPON THE EARTH: AND IT WAS SO.AH# 12 AND THE EARTH BROUGHT FORTH GRASS, AND HERB YIELDING SEED AFTER HISM KIND, AND THE TREE YIELDING FRUIT, WHOSE SEED WAS IN ITSELF, AFTER HIS KIND:  AND GOD SAW THAT IT WAS GOOD.8# 13 AND THE EVENING AND THE MORNING WERE THE THIRD DAY.H# 14 AND GOD SAID, LET THERE BE LIGHTS IN THE FIRMAMENT OF THE HEAVEN TOK DIVIDE THE DAY FROM THE NIGHT; AND LET THEM BE FOR SIGNS, AND FOR SEASONS,E AND FOR DAYS, AND YEARS:IL# 15 AND LET THEM BE FOR LIGHTS IN THE FIRMAMENT OF THE HEAVEN TO GIVE LIGHT UPON THE EARTH: AND IT WAS SO.OJ# 16 AND GOD MADE TWO GREAT LIGHTS; THE GREATER LIGHT TO RULE THE DAY, AND< THE LESSER LIGHT TO RULE THE NIGHT: HE MADE THE STARS ALSO.K# 17 AND GOD SET THEM IN THE FIRMAMENT OF THE HEAVEN TO GIVE LIGHT UPON THE  EARTH,4I# 18 AND TO RULE OVER THE DAY AND OVER THE NIGHT, AND TO DIVIDE THE LIGHTD1 FROM THE DARKNESS: AND GOD SAW THAT IT WAS GOOD.,9# 19 AND THE EVENING AND THE MORNING WERE THE FOURTH DAY.TL# 20 AND GOD SAID, LET THE WATERS BRING FORTH ABUNDANTLY THE MOVING CREATUREL THAT HATH LIFE, AND FOWL THAT MAY FLY ABOVE THE EARTH IN THE OPEN FIRMAMENT OF HEAVEN.,I# 21 AND GOD CREATED GREAT WHALES, AND EVERY LIVING CREATURE THAT MOVETH,DN WHICH THE WATERS BROUGHT FORTH ABUNDANTLY, AFTER THEIR KIND, AND EVERY WINGED3 FOWL AFTER HIS KIND: AND GOD SAW THAT IT WAS GOOD. J# 22 AND GOD BLESSED THEM, SAYING, BE FRUITFUL, AND MULTIPLY, AND FILL THE8 WATERS IN THE SEAS, AND LET FOWL MULTIPLY IN THE EARTH.8# 23 AND THE EVENING AND THE MORNING WERE THE FIFTH DAY.J# 24 AND GOD SAID, LET THE EARTH BRING FORTH THE LIVING CREATURE AFTER HISM KIND, CATTLE, AND CREEPING THING, AND BEAST OF THE EARTH AFTER HIS KIND: ANDY IT WAS SO.UI# 25 AND GOD MADE THE BEAST OF THE EARTH AFTER HIS KIND, AND CATTLE AFTERIM THEIR KIND, AND EVERY THING THAT CREEPETH UPON THE EARTH AFTER HIS KIND: AND2 GOD SAW THAT IT WAS GOOD.L# 26 AND GOD SAID, LET US MAKE MAN IN OUR IMAGE, AFTER OUR LIKENESS: AND LETK THEM HAVE DOMINION OVER THE FISH OF THE SEA, AND OVER THE FOWL OF THE AIR,AK AND OVER THE CATTLE, AND OVER ALL THE EARTH, AND OVER EVERY CREEPING THINGS THAT CREEPETH UPON THE EARTH.M# 27 SO GOD CREATED MAN IN HIS OWN IMAGE, IN THE IMAGE OF GOD CREATED HE HIM;D! MALE AND FEMALE CREATED HE THEM.KM# 28 AND GOD BLESSED THEM, AND GOD SAID UNTO THEM, BE FRUITFUL, AND MULTIPLY,TK AND REPLENISH THE EARTH, AND SUBDUE IT: AND HAVE DOMINION OVER THE FISH OF H THE SEA, AND OVER THE FOWL OF THE AIR, AND OVER EVERY LIVING THING THAT MOVETH UPON THE EARTH.NM# 29 AND GOD SAID, BEHOLD, I HAVE GIVEN YOU EVERY HERB BEARING SEED, WHICH IS M UPON THE FACE OF ALL THE EARTH, AND EVERY TREE, IN THE WHICH IS THE FRUIT OF 3 A TREE YIELDING SEED; TO YOU IT SHALL BE FOR MEAT.HJ# 30 AND TO EV00_%:%W<%X>%+%O-%TADATADATAERY BEAST OF THE EARTH, AND TO EVERY FOWL OF THE AIR, AND TON EVERY THING THAT CREEPETH UPON THE EARTH, WHEREIN THERE IS LIFE, I HAVE GIVEN* EVERY GREEN HERB FOR MEAT: AND IT WAS SO.M# 31 AND GOD SAW EVERY THING THAT HE HAD MADE, AND, BEHOLD, IT WAS VERY GOOD.T4 AND THE EVENING AND THE MORNING WERE THE SIXTH DAY. = CHAPTER 2 K# 1 THUS THE HEAVENS AND THE EARTH WERE FINISHED, AND ALL THE HOST OF THEM.EG# 2 AND ON THE SEVENTH DAY GOD ENDED HIS WORK WHICH HE HAD MADE; AND HEB? RESTED ON THE SEVENTH DAY FROM ALL HIS WORK WHICH HE HAD MADE.FM# 3 AND GOD BLESSED THE SEVENTH DAY, AND SANCTIFIED IT: BECAUSE THAT IN IT HEE9 HAD RESTED FROM ALL HIS WORK WHICH GOD CREATED AND MADE.WL# 4 THESE ARE THE GENERATIONS OF THE HEAVENS AND OF THE EARTH WHEN THEY WEREF CREATED, IN THE DAY THAT THE LORD GOD MADE THE EARTH AND THE HEAVENS,K# 5 AND EVERY PLANT OF THE FIELD BEFORE IT WAS IN THE EARTH, AND EVERY HERBHM OF THE FIELD BEFORE IT GREW: FOR THE LORD GOD HAD NOT CAUSED IT TO RAIN UPON7 THE EARTH, AND THERE WAS NOT A MAN TO TILL THE GROUND. J# 6 BUT THERE WENT UP A MIST FROM THE EARTH, AND WATERED THE WHOLE FACE OF THE GROUND.L# 7 AND THE LORD GOD FORMED MAN OF THE DUST OF THE GROUND, AND BREATHED INTO? HIS NOSTRILS THE BREATH OF LIFE; AND MAN BECAME A LIVING SOUL.DL# 8 AND THE LORD GOD PLANTED A GARDEN EASTWARD IN EDEN; AND THERE HE PUT THE MAN WHOM HE HAD FORMED.F# 9 AND OUT OF THE GROUND MADE THE LORD GOD TO GROW EVERY TREE THAT ISM PLEASANT TO THE SIGHT, AND GOOD FOR FOOD; THE TREE OF LIFE ALSO IN THE MIDSTA; OF THE GARDEN, AND THE TREE OF KNOWLEDGE OF GOOD AND EVIL. M# 10 AND A RIVER WENT OUT OF EDEN TO WATER THE GARDEN; AND FROM THENCE IT WAS $ PARTED, AND BECAME INTO FOUR HEADS.J# 11 THE NAME OF THE FIRST IS PISON: THAT IS IT WHICH COMPASSETH THE WHOLE& LAND OF HAVILAH, WHERE THERE IS GOLD;M# 12 AND THE GOLD OF THAT LAND IS GOOD: THERE IS BDELLIUM AND THE ONYX STONE.FC# 13 AND THE NAME OF THE SECOND RIVER IS GIHON: THE SAME IS IT THATO' COMPASSETH THE WHOLE LAND OF ETHIOPIA.FH# 14 AND THE NAME OF THE THIRD RIVER IS HIDDEKEL: THAT IS IT WHICH GOETH? TOWARD THE EAST OF ASSYRIA. AND THE FOURTH RIVER IS EUPHRATES.EJ# 15 AND THE LORD GOD TOOK THE MAN, AND PUT HIM INTO THE GARDEN OF EDEN TO DRESS IT AND TO KEEP IT.TL# 16 AND THE LORD GOD COMMANDED THE MAN, SAYING, OF EVERY TREE OF THE GARDEN THOU MAYEST FREELY EAT:M# 17 BUT OF THE TREE OF THE KNOWLEDGE OF GOOD AND EVIL, THOU SHALT NOT EAT OFSC IT: FOR IN THE DAY THAT THOU EATEST THEREOF THOU SHALT SURELY DIE.DJ# 18 AND THE LORD GOD SAID, IT IS NOT GOOD THAT THE MAN SHOULD BE ALONE; I$ WILL MAKE HIM AN HELP MEET FOR HIM.L# 19 AND OUT OF THE GROUND THE LORD GOD FORMED EVERY BEAST OF THE FIELD, ANDL EVERY FOWL OF THE AIR; AND BROUGHT THEM UNTO ADAM TO SEE WHAT HE WOULD CALLJ THEM: AND WHATSOEVER ADAM CALLED EVERY LIVING CREATURE, THAT WAS THE NAME THEREOF. J# 20 AND ADAM GAVE NAMES TO ALL CATTLE, AND TO THE FOWL OF THE AIR, AND TOL EVERY BEAST OF THE FIELD; BUT FOR ADAM THERE WAS NOT FOUND AN HELP MEET FOR HIM.AJ# 21 AND THE LORD GOD CAUSED A DEEP SLEEP TO FALL UPON ADAM, AND HE SLEPT:F AND HE TOOK ONE OF HIS RIBS, AND CLOSED UP THE FLESH INSTEAD THEREOF;M# 22 AND THE RIB, WHICH THE LORD GOD HAD TAKEN FROM MAN, MADE HE A WOMAN, ANDU BROUGHT HER UNTO THE MAN.L# 23 AND ADAM SAID, THIS IS NOW BONE OF MY BONES, AND FLESH OF MY FLESH: SHE9 SHALL BE CALLED WOMAN, BECAUSE SHE WAS TAKEN OUT OF MAN.NL# 24 THEREFORE SHALL A MAN LEAVE HIS FATHER AND HIS MOTHER, AND SHALL CLEAVE, UNTO HIS WIFE: AND THEY SHALL BE ONE FLESH.J# 25 AND THEY WERE BOTH NAKED, THE MAN AND HIS WIFE, AND WERE NOT ASHAMED. = CHAPTER 3 N# 1 NOW THE SERPENT WAS MORE SUBTIL THAN ANY BEAST OF THE FIELD WHICH THE LORDK GOD HAD MADE. AND HE SAID UNTO THE WOMAN, YEA, HATH GOD SAID, YE SHALL NOTA! EAT OF EVERY TREE OF THE GARDEN? M# 2 AND THE WOMAN SAID UNTO THE SERPENT, WE MAY EAT OF THE FRUIT OF THE TREESH OF THE GARDEN:FI# 3 BUT OF THE FRUIT OF THE TREE WHICH IS IN THE MIDST OF THE GARDEN, GODLK HATH SAID, YE SHALL NOT EAT OF IT, NEITHER SHALL YE TOUCH IT, LES00_&%D%5%T6%! !T YE DIE.TA# 4 AND THE SERPENT SAID UNTO THE WOMAN, YE SHALL NOT SURELY DIE:M# 5 FOR GOD DOTH KNOW THAT IN THE DAY YE EAT THEREOF, THEN YOUR EYES SHALL BE8 OPENED, AND YE SHALL BE AS GODS, KNOWING GOOD AND EVIL.K# 6 AND WHEN THE WOMAN SAW THAT THE TREE WAS GOOD FOR FOOD, AND THAT IT WASDM PLEASANT TO THE EYES, AND A TREE TO BE DESIRED TO MAKE ONE WISE, SHE TOOK OF M THE FRUIT THEREOF, AND DID EAT, AND GAVE ALSO UNTO HER HUSBAND WITH HER; ANDA HE DID EAT.G# 7 AND THE EYES OF THEM BOTH WERE OPENED, AND THEY KNEW THAT THEY WERENG NAKED; AND THEY SEWED FIG LEAVES TOGETHER, AND MADE THEMSELVES APRONS.HI# 8 AND THEY HEARD THE VOICE OF THE LORD GOD WALKING IN THE GARDEN IN THELK COOL OF THE DAY: AND ADAM AND HIS WIFE HID THEMSELVES FROM THE PRESENCE OFE. THE LORD GOD AMONGST THE TREES OF THE GARDEN.I# 9 AND THE LORD GOD CALLED UNTO ADAM, AND SAID UNTO HIM, WHERE ART THOU?FL# 10 AND HE SAID, I HEARD THY VOICE IN THE GARDEN, AND I WAS AFRAID, BECAUSE I WAS NAKED; AND I HID MYSELF.ML# 11 AND HE SAID, WHO TOLD THEE THAT THOU WAST NAKED? HAST THOU EATEN OF THE< TREE, WHEREOF I COMMANDED THEE THAT THOU SHOULDEST NOT EAT?L# 12 AND THE MAN SAID, THE WOMAN WHOM THOU GAVEST TO BE WITH ME, SHE GAVE ME OF THE TREE, AND I DID EAT.L# 13 AND THE LORD GOD SAID UNTO THE WOMAN, WHAT IS THIS THAT THOU HAST DONE?< AND THE WOMAN SAID, THE SERPENT BEGUILED ME, AND I DID EAT.I# 14 AND THE LORD GOD SAID UNTO THE SERPENT, BECAUSE THOU HAST DONE THIS,AK THOU ART CURSED ABOVE ALL CATTLE, AND ABOVE EVERY BEAST OF THE FIELD; UPONTK THY BELLY SHALT THOU GO, AND DUST SHALT THOU EAT ALL THE DAYS OF THY LIFE:TK# 15 AND I WILL PUT ENMITY BETWEEN THEE AND THE WOMAN, AND BETWEEN THY SEEDGH AND HER SEED; IT SHALL BRUISE THY HEAD, AND THOU SHALT BRUISE HIS HEEL.G# 16 UNTO THE WOMAN HE SAID, I WILL GREATLY MULTIPLY THY SORROW AND THYTL CONCEPTION; IN SORROW THOU SHALT BRING FORTH CHILDREN; AND THY DESIRE SHALL0 BE TO THY HUSBAND, AND HE SHALL RULE OVER THEE.M# 17 AND UNTO ADAM HE SAID, BECAUSE THOU HAST HEARKENED UNTO THE VOICE OF THYTJ WIFE, AND HAST EATEN OF THE TREE, OF WHICH I COMMANDED THEE, SAYING, THOUM SHALT NOT EAT OF IT: CURSED IS THE GROUND FOR THY SAKE; IN SORROW SHALT THOUG$ EAT OF IT ALL THE DAYS OF THY LIFE;J# 18 THORNS ALSO AND THISTLES SHALL IT BRING FORTH TO THEE; AND THOU SHALT EAT THE HERB OF THE FIELD; M# 19 IN THE SWEAT OF THY FACE SHALT THOU EAT BREAD, TILL THOU RETURN UNTO THEAN GROUND; FOR OUT OF IT WAST THOU TAKEN: FOR DUST THOU ART, AND UNTO DUST SHALT THOU RETURN.HJ# 20 AND ADAM CALLED HIS WIFES NAME EVE; BECAUSE SHE WAS THE MOTHER OF ALL LIVING.M# 21 UNTO ADAM ALSO AND TO HIS WIFE DID THE LORD GOD MAKE COATS OF SKINS, ANDS CLOTHED THEM.K# 22 AND THE LORD GOD SAID, BEHOLD, THE MAN IS BECOME AS ONE OF US, TO KNOWEN GOOD AND EVIL: AND NOW, LEST HE PUT FORTH HIS HAND, AND TAKE ALSO OF THE TREE% OF LIFE, AND EAT, AND LIVE FOR EVER:EK# 23 THEREFORE THE LORD GOD SENT HIM FORTH FROM THE GARDEN OF EDEN, TO TILL % THE GROUND FROM WHENCE HE WAS TAKEN.M# 24 SO HE DROVE OUT THE MAN; AND HE PLACED AT THE EAST OF THE GARDEN OF EDENTN CHERUBIMS, AND A FLAMING SWORD WHICH TURNED EVERY WAY, TO KEEP THE WAY OF THE TREE OF LIFE. = CHAPTER 4 M# 1 AND ADAM KNEW EVE HIS WIFE; AND SHE CONCEIVED, AND BARE CAIN, AND SAID, IK! HAVE GOTTEN A MAN FROM THE LORD. L# 2 AND SHE AGAIN BARE HIS BROTHER ABEL. AND ABEL WAS A KEEPER OF SHEEP, BUT! CAIN WAS A TILLER OF THE GROUND. M# 3 AND IN PROCESS OF TIME IT CAME TO PASS, THAT CAIN BROUGHT OF THE FRUIT OFE& THE GROUND AN OFFERING UNTO THE LORD.K# 4 AND ABEL, HE ALSO BROUGHT OF THE FIRSTLINGS OF HIS FLOCK AND OF THE FATNA THEREOF. AND THE LORD HAD RESPECT UNTO ABEL AND TO HIS OFFERING:FK# 5 BUT UNTO CAIN AND TO HIS OFFERING HE HAD NOT RESPECT. AND CAIN WAS VERY ! WROTH, AND HIS COUNTENANCE FELL.MC# 6 AND THE LORD SAID UNTO CAIN, WHY ART THOU WROTH? AND WHY IS THY  COUNTENANCE FALLEN?I# 7 IF THOU DOEST WELL, SHALT THOU NOT BE ACCEPTED? AND IF THOU DOEST NOTEI WELL, SIN LIETH AT THE DOOR. AND UNTO THEE SHALL BE HIS DESIRE, AND THOUT SHALT RULE OVER00_&:%W<%X>%+%O-%TADATADATA HIM. I# 8 AND CAIN TALKED WITH ABEL HIS BROTHER: AND IT CAME TO PASS, WHEN THEYNM WERE IN THE FIELD, THAT CAIN ROSE UP AGAINST ABEL HIS BROTHER, AND SLEW HIM.OJ# 9 AND THE LORD SAID UNTO CAIN, WHERE IS ABEL THY BROTHER? AND HE SAID, I# KNOW NOT: AM I MY BROTHERS KEEPER?NM# 10 AND HE SAID, WHAT HAST THOU DONE? THE VOICE OF THY BROTHERS BLOOD CRIETH  UNTO ME FROM THE GROUND.BK# 11 AND NOW ART THOU CURSED FROM THE EARTH, WHICH HATH OPENED HER MOUTH TOE* RECEIVE THY BROTHERS BLOOD FROM THY HAND;J# 12 WHEN THOU TILLEST THE GROUND, IT SHALL NOT HENCEFORTH YIELD UNTO THEED HER STRENGTH; A FUGITIVE AND A VAGABOND SHALT THOU BE IN THE EARTH.K# 13 AND CAIN SAID UNTO THE LORD, MY PUNISHMENT IS GREATER THAN I CAN BEAR.OM# 14 BEHOLD, THOU HAST DRIVEN ME OUT THIS DAY FROM THE FACE OF THE EARTH; ANDHN FROM THY FACE SHALL I BE HID; AND I SHALL BE A FUGITIVE AND A VAGABOND IN THEL EARTH; AND IT SHALL COME TO PASS, THAT EVERY ONE THAT FINDETH ME SHALL SLAY ME.L# 15 AND THE LORD SAID UNTO HIM, THEREFORE WHOSOEVER SLAYETH CAIN, VENGEANCEM SHALL BE TAKEN ON HIM SEVENFOLD. AND THE LORD SET A MARK UPON CAIN, LEST ANYA FINDING HIM SHOULD KILL HIM..K# 16 AND CAIN WENT OUT FROM THE PRESENCE OF THE LORD, AND DWELT IN THE LANDO OF NOD, ON THE EAST OF EDEN. F# 17 AND CAIN KNEW HIS WIFE; AND SHE CONCEIVED, AND BARE ENOCH: AND HEL BUILDED A CITY, AND CALLED THE NAME OF THE CITY, AFTER THE NAME OF HIS SON, ENOCH.PH# 18 AND UNTO ENOCH WAS BORN IRAD: AND IRAD BEGAT MEHUJAEL: AND MEHUJAEL- BEGAT METHUSAEL: AND METHUSAEL BEGAT LAMECH.VJ# 19 AND LAMECH TOOK UNTO HIM TWO WIVES: THE NAME OF THE ONE WAS ADAH, AND THE NAME OF THE OTHER ZILLAH.M# 20 AND ADAH BARE JABAL: HE WAS THE FATHER OF SUCH AS DWELL IN TENTS, AND OFN SUCH AS HAVE CATTLE. M# 21 AND HIS BROTHERS NAME WAS JUBAL: HE WAS THE FATHER OF ALL SUCH AS HANDLEO THE HARP AND ORGAN.M# 22 AND ZILLAH, SHE ALSO BARE TUBALCAIN, AN INSTRUCTER OF EVERY ARTIFICER IN 8 BRASS AND IRON: AND THE SISTER OF TUBALCAIN WAS NAAMAH.M# 23 AND LAMECH SAID UNTO HIS WIVES, ADAH AND ZILLAH, HEAR MY VOICE; YE WIVESON OF LAMECH, HEARKEN UNTO MY SPEECH: FOR I HAVE SLAIN A MAN TO MY WOUNDING, AND A YOUNG MAN TO MY HURT.L# 24 IF CAIN SHALL BE AVENGED SEVENFOLD, TRULY LAMECH SEVENTY AND SEVENFOLD.J# 25 AND ADAM KNEW HIS WIFE AGAIN; AND SHE BARE A SON, AND CALLED HIS NAMEN SETH: FOR GOD, SAID SHE, HATH APPOINTED ME ANOTHER SEED INSTEAD OF ABEL, WHOM CAIN SLEW.FJ# 26 AND TO SETH, TO HIM ALSO THERE WAS BORN A SON; AND HE CALLED HIS NAME8 ENOS: THEN BEGAN MEN TO CALL UPON THE NAME OF THE LORD. = CHAPTER 5 L# 1 THIS IS THE BOOK OF THE GENERATIONS OF ADAM. IN THE DAY THAT GOD CREATED) MAN, IN THE LIKENESS OF GOD MADE HE HIM;4L# 2 MALE AND FEMALE CREATED HE THEM; AND BLESSED THEM, AND CALLED THEIR NAME) ADAM, IN THE DAY WHEN THEY WERE CREATED. J# 3 AND ADAM LIVED AN HUNDRED AND THIRTY YEARS, AND BEGAT A SON IN HIS OWN9 LIKENESS, AND AFTER HIS IMAGE; AND CALLED HIS NAME SETH:EM# 4 AND THE DAYS OF ADAM AFTER HE HAD BEGOTTEN SETH WERE EIGHT HUNDRED YEARS: ! AND HE BEGAT SONS AND DAUGHTERS:RL# 5 AND ALL THE DAYS THAT ADAM LIVED WERE NINE HUNDRED AND THIRTY YEARS: AND HE DIED.E=# 6 AND SETH LIVED AN HUNDRED AND FIVE YEARS, AND BEGAT ENOS:FI# 7 AND SETH LIVED AFTER HE BEGAT ENOS EIGHT HUNDRED AND SEVEN YEARS, ANDH BEGAT SONS AND DAUGHTERS:M# 8 AND ALL THE DAYS OF SETH WERE NINE HUNDRED AND TWELVE YEARS: AND HE DIED.2# 9 AND ENOS LIVED NINETY YEARS, AND BEGAT CAINAN:J# 10 AND ENOS LIVED AFTER HE BEGAT CAINAN EIGHT HUNDRED AND FIFTEEN YEARS, AND BEGAT SONS AND DAUGHTERS:L# 11 AND ALL THE DAYS OF ENOS WERE NINE HUNDRED AND FIVE YEARS: AND HE DIED.9# 12 AND CAINAN LIVED SEVENTY YEARS AND BEGAT MAHALALEEL:NG# 13 AND CAINAN LIVED AFTER HE BEGAT MAHALALEEL EIGHT HUNDRED AND FORTYG% YEARS, AND BEGAT SONS AND DAUGHTERS:TM# 14 AND ALL THE DAYS OF CAINAN WERE NINE HUNDRED AND TEN YEARS: AND HE DIED. @# 15 AND MAHALALEEL LIVED SIXTY AND FIVE YEARS, AND BEGAT JARED:G# 16 AND MAHALALEEL LIVED AFTER HE BEGAT JARED EIGHT HUNDRED AND THIRTYE% YEARS, AND BEGAT SONS AND DAUGHTERS::00_&%D%5%T6%! !M# 17 AND ALL THE DAYS OF MAHALALEEL WERE EIGHT HUNDRED NINETY AND FIVE YEARS: AND HE DIED. H# 18 AND JARED LIVED AN HUNDRED SIXTY AND TWO YEARS, AND HE BEGAT ENOCH:M# 19 AND JARED LIVED AFTER HE BEGAT ENOCH EIGHT HUNDRED YEARS, AND BEGAT SONSS AND DAUGHTERS:TL# 20 AND ALL THE DAYS OF JARED WERE NINE HUNDRED SIXTY AND TWO YEARS: AND HE DIED.@# 21 AND ENOCH LIVED SIXTY AND FIVE YEARS, AND BEGAT METHUSELAH:M# 22 AND ENOCH WALKED WITH GOD AFTER HE BEGAT METHUSELAH THREE HUNDRED YEARS,D AND BEGAT SONS AND DAUGHTERS:G# 23 AND ALL THE DAYS OF ENOCH WERE THREE HUNDRED SIXTY AND FIVE YEARS:DA# 24 AND ENOCH WALKED WITH GOD: AND HE WAS NOT; FOR GOD TOOK HIM.AF# 25 AND METHUSELAH LIVED AN HUNDRED EIGHTY AND SEVEN YEARS, AND BEGAT LAMECH.L# 26 AND METHUSELAH LIVED AFTER HE BEGAT LAMECH SEVEN HUNDRED EIGHTY AND TWO% YEARS, AND BEGAT SONS AND DAUGHTERS:AK# 27 AND ALL THE DAYS OF METHUSELAH WERE NINE HUNDRED SIXTY AND NINE YEARS:L AND HE DIED.TG# 28 AND LAMECH LIVED AN HUNDRED EIGHTY AND TWO YEARS, AND BEGAT A SON:RD# 29 AND HE CALLED HIS NAME NOAH, SAYING, THIS SAME SHALL COMFORT USK CONCERNING OUR WORK AND TOIL OF OUR HANDS, BECAUSE OF THE GROUND WHICH THE  LORD HATH CURSED.M# 30 AND LAMECH LIVED AFTER HE BEGAT NOAH FIVE HUNDRED NINETY AND FIVE YEARS,  AND BEGAT SONS AND DAUGHTERS:K# 31 AND ALL THE DAYS OF LAMECH WERE SEVEN HUNDRED SEVENTY AND SEVEN YEARS:L AND HE DIED.TG# 32 AND NOAH WAS FIVE HUNDRED YEARS OLD: AND NOAH BEGAT SHEM, HAM, ANDD JAPHETH.E = CHAPTER 6 M# 1 AND IT CAME TO PASS, WHEN MEN BEGAN TO MULTIPLY ON THE FACE OF THE EARTH,G# AND DAUGHTERS WERE BORN UNTO THEM,NJ# 2 THAT THE SONS OF GOD SAW THE DAUGHTERS OF MEN THAT THEY WERE FAIR; AND. THEY TOOK THEM WIVES OF ALL WHICH THEY CHOSE.K# 3 AND THE LORD SAID, MY SPIRIT SHALL NOT ALWAYS STRIVE WITH MAN, FOR THATE HE ALSO IS FLESH: YET HIS DAYS SHALL BE AN HUNDRED AND TWENTY YEARS.AK# 4 THERE WERE GIANTS IN THE EARTH IN THOSE DAYS; AND ALSO AFTER THAT, WHENTM THE SONS OF GOD CAME IN UNTO THE DAUGHTERS OF MEN, AND THEY BARE CHILDREN TOEC THEM, THE SAME BECAME MIGHTY MEN WHICH WERE OF OLD, MEN OF RENOWN.UK# 5 AND GOD SAW THAT THE WICKEDNESS OF MAN WAS GREAT IN THE EARTH, AND THATFJ EVERY IMAGINATION OF THE THOUGHTS OF HIS HEART WAS ONLY EVIL CONTINUALLY.F# 6 AND IT REPENTED THE LORD THAT HE HAD MADE MAN ON THE EARTH, AND IT GRIEVED HIM AT HIS HEART.K# 7 AND THE LORD SAID, I WILL DESTROY MAN WHOM I HAVE CREATED FROM THE FACEAL OF THE EARTH; BOTH MAN, AND BEAST, AND THE CREEPING THING, AND THE FOWLS OF4 THE AIR; FOR IT REPENTETH ME THAT I HAVE MADE THEM.1# 8 BUT NOAH FOUND GRACE IN THE EYES OF THE LORD. M# 9 THESE ARE THE GENERATIONS OF NOAH: NOAH WAS A JUST MAN AND PERFECT IN HISE' GENERATIONS, AND NOAH WALKED WITH GOD.R7# 10 AND NOAH BEGAT THREE SONS, SHEM, HAM, AND JAPHETH.DI# 11 THE EARTH ALSO WAS CORRUPT BEFORE GOD, AND THE EARTH WAS FILLED WITH VIOLENCE.H# 12 AND GOD LOOKED UPON THE EARTH, AND, BEHOLD, IT WAS CORRUPT; FOR ALL, FLESH HAD CORRUPTED HIS WAY UPON THE EARTH.L# 13 AND GOD SAID UNTO NOAH, THE END OF ALL FLESH IS COME BEFORE ME; FOR THEM EARTH IS FILLED WITH VIOLENCE THROUGH THEM; AND, BEHOLD, I WILL DESTROY THEMF WITH THE EARTH.K# 14 MAKE THEE AN ARK OF GOPHER WOOD; ROOMS SHALT THOU MAKE IN THE ARK, ANDA. SHALT PITCH IT WITHIN AND WITHOUT WITH PITCH.K# 15 AND THIS IS THE FASHION WHICH THOU SHALT MAKE IT OF: THE LENGTH OF THE K ARK SHALL BE THREE HUNDRED CUBITS, THE BREADTH OF IT FIFTY CUBITS, AND THE; HEIGHT OF IT THIRTY CUBITS.M# 16 A WINDOW SHALT THOU MAKE TO THE ARK, AND IN A CUBIT SHALT THOU FINISH ITCH ABOVE; AND THE DOOR OF THE ARK SHALT THOU SET IN THE SIDE THEREOF; WITH5 LOWER, SECOND, AND THIRD STORIES SHALT THOU MAKE IT.KJ# 17 AND, BEHOLD, I, EVEN I, DO BRING A FLOOD OF WATERS UPON THE EARTH, TOI DESTROY ALL FLESH, WHEREIN IS THE BREATH OF LIFE, FROM UNDER HEAVEN; ANDH, EVERY THING THAT IS IN THE EARTH SHALL DIE.M# 18 BUT WITH THEE WILL I ESTABLISH MY COVENANT; AND THOU SHALT COME INTO THEIE ARK, THOU, AND THY SONS, AND THY WIFE, AND THY SONS WIVES WITH THEE. I# 19 A00_&:%W<%X>%+%O-%TADATADATAND OF EVERY LIVING THING OF ALL FLESH, TWO OF EVERY SORT SHALT THOUUI BRING INTO THE ARK, TO KEEP THEM ALIVE WITH THEE; THEY SHALL BE MALE ANDU FEMALE.H# 20 OF FOWLS AFTER THEIR KIND, AND OF CATTLE AFTER THEIR KIND, OF EVERYN CREEPING THING OF THE EARTH AFTER HIS KIND, TWO OF EVERY SORT SHALL COME UNTO THEE, TO KEEP THEM ALIVE.M# 21 AND TAKE THOU UNTO THEE OF ALL FOOD THAT IS EATEN, AND THOU SHALT GATHERL= IT TO THEE; AND IT SHALL BE FOR FOOD FOR THEE, AND FOR THEM.HG# 22 THUS DID NOAH; ACCORDING TO ALL THAT GOD COMMANDED HIM, SO DID HE.O = CHAPTER 7 N# 1 AND THE LORD SAID UNTO NOAH, COME THOU AND ALL THY HOUSE INTO THE ARK; FOR9 THEE HAVE I SEEN RIGHTEOUS BEFORE ME IN THIS GENERATION.CL# 2 OF EVERY CLEAN BEAST THOU SHALT TAKE TO THEE BY SEVENS, THE MALE AND HISJ FEMALE: AND OF BEASTS THAT ARE NOT CLEAN BY TWO, THE MALE AND HIS FEMALE.M# 3 OF FOWLS ALSO OF THE AIR BY SEVENS, THE MALE AND THE FEMALE; TO KEEP SEED;& ALIVE UPON THE FACE OF ALL THE EARTH.M# 4 FOR YET SEVEN DAYS, AND I WILL CAUSE IT TO RAIN UPON THE EARTH FORTY DAYS M AND FORTY NIGHTS; AND EVERY LIVING SUBSTANCE THAT I HAVE MADE WILL I DESTROYE FROM OFF THE FACE OF THE EARTH.@# 5 AND NOAH DID ACCORDING UNTO ALL THAT THE LORD COMMANDED HIM.L# 6 AND NOAH WAS SIX HUNDRED YEARS OLD WHEN THE FLOOD OF WATERS WAS UPON THE EARTH.RI# 7 AND NOAH WENT IN, AND HIS SONS, AND HIS WIFE, AND HIS SONS WIVES WITHB7 HIM, INTO THE ARK, BECAUSE OF THE WATERS OF THE FLOOD.UK# 8 OF CLEAN BEASTS, AND OF BEASTS THAT ARE NOT CLEAN, AND OF FOWLS, AND OFO* EVERY THING THAT CREEPETH UPON THE EARTH,F# 9 THERE WENT IN TWO AND TWO UNTO NOAH INTO THE ARK, THE MALE AND THE# FEMALE, AS GOD HAD COMMANDED NOAH.NL# 10 AND IT CAME TO PASS AFTER SEVEN DAYS, THAT THE WATERS OF THE FLOOD WERE UPON THE EARTH.F# 11 IN THE SIX HUNDREDTH YEAR OF NOAHS LIFE, IN THE SECOND MONTH, THEI SEVENTEENTH DAY OF THE MONTH, THE SAME DAY WERE ALL THE FOUNTAINS OF THE = GREAT DEEP BROKEN UP, AND THE WINDOWS OF HEAVEN WERE OPENED.OA# 12 AND THE RAIN WAS UPON THE EARTH FORTY DAYS AND FORTY NIGHTS.AJ# 13 IN THE SELFSAME DAY ENTERED NOAH, AND SHEM, AND HAM, AND JAPHETH, THEN SONS OF NOAH, AND NOAHS WIFE, AND THE THREE WIVES OF HIS SONS WITH THEM, INTO THE ARK;RI# 14 THEY, AND EVERY BEAST AFTER HIS KIND, AND ALL THE CATTLE AFTER THEIRHL KIND, AND EVERY CREEPING THING THAT CREEPETH UPON THE EARTH AFTER HIS KIND,9 AND EVERY FOWL AFTER HIS KIND, EVERY BIRD OF EVERY SORT.G# 15 AND THEY WENT IN UNTO NOAH INTO THE ARK, TWO AND TWO OF ALL FLESH,T WHEREIN IS THE BREATH OF LIFE.DL# 16 AND THEY THAT WENT IN, WENT IN MALE AND FEMALE OF ALL FLESH, AS GOD HAD) COMMANDED HIM: AND THE LORD SHUT HIM IN.AK# 17 AND THE FLOOD WAS FORTY DAYS UPON THE EARTH; AND THE WATERS INCREASED,E9 AND BARE UP THE ARK, AND IT WAS LIFT UP ABOVE THE EARTH. M# 18 AND THE WATERS PREVAILED, AND WERE INCREASED GREATLY UPON THE EARTH; ANDK* THE ARK WENT UPON THE FACE OF THE WATERS.J# 19 AND THE WATERS PREVAILED EXCEEDINGLY UPON THE EARTH; AND ALL THE HIGH7 HILLS, THAT WERE UNDER THE WHOLE HEAVEN, WERE COVERED.6I# 20 FIFTEEN CUBITS UPWARD DID THE WATERS PREVAIL; AND THE MOUNTAINS WEREC COVERED.MG# 21 AND ALL FLESH DIED THAT MOVED UPON THE EARTH, BOTH OF FOWL, AND OFEI CATTLE, AND OF BEAST, AND OF EVERY CREEPING THING THAT CREEPETH UPON THEA EARTH, AND EVERY MAN:M# 22 ALL IN WHOSE NOSTRILS WAS THE BREATH OF LIFE, OF ALL THAT WAS IN THE DRYA LAND, DIED.L# 23 AND EVERY LIVING SUBSTANCE WAS DESTROYED WHICH WAS UPON THE FACE OF THEK GROUND, BOTH MAN, AND CATTLE, AND THE CREEPING THINGS, AND THE FOWL OF THE6N HEAVEN; AND THEY WERE DESTROYED FROM THE EARTH: AND NOAH ONLY REMAINED ALIVE,( AND THEY THAT WERE WITH HIM IN THE ARK.G# 24 AND THE WATERS PREVAILED UPON THE EARTH AN HUNDRED AND FIFTY DAYS.V = CHAPTER 8 L# 1 AND GOD REMEMBERED NOAH, AND EVERY LIVING THING, AND ALL THE CATTLE THATM WAS WITH HIM IN THE ARK: AND GOD MADE A WIND TO PASS OVER THE EARTH, AND THEE WATERS ASSWAGED;CJ# 2 THE FOUNTAINS ALSO OF THE DEEP AND THE WINDOWS OF HEAVEN WERE STOPPED,) AND THE RAIN FROM HEAVEN WAS RESTRAIN00_ &%D%5%T6%! !ED; M# 3 AND THE WATERS RETURNED FROM OFF THE EARTH CONTINUALLY: AND AFTER THE ENDL6 OF THE HUNDRED AND FIFTY DAYS THE WATERS WERE ABATED.J# 4 AND THE ARK RESTED IN THE SEVENTH MONTH, ON THE SEVENTEENTH DAY OF THE% MONTH, UPON THE MOUNTAINS OF ARARAT.EL# 5 AND THE WATERS DECREASED CONTINUALLY UNTIL THE TENTH MONTH: IN THE TENTHK MONTH, ON THE FIRST DAY OF THE MONTH, WERE THE TOPS OF THE MOUNTAINS SEEN.AM# 6 AND IT CAME TO PASS AT THE END OF FORTY DAYS, THAT NOAH OPENED THE WINDOWM OF THE ARK WHICH HE HAD MADE:L# 7 AND HE SENT FORTH A RAVEN, WHICH WENT FORTH TO AND FRO, UNTIL THE WATERS" WERE DRIED UP FROM OFF THE EARTH.M# 8 ALSO HE SENT FORTH A DOVE FROM HIM, TO SEE IF THE WATERS WERE ABATED FROM  OFF THE FACE OF THE GROUND;I# 9 BUT THE DOVE FOUND NO REST FOR THE SOLE OF HER FOOT, AND SHE RETURNEDNK UNTO HIM INTO THE ARK, FOR THE WATERS WERE ON THE FACE OF THE WHOLE EARTH:ON THEN HE PUT FORTH HIS HAND, AND TOOK HER, AND PULLED HER IN UNTO HIM INTO THE ARK.NM# 10 AND HE STAYED YET OTHER SEVEN DAYS; AND AGAIN HE SENT FORTH THE DOVE OUTW OF THE ARK;M# 11 AND THE DOVE CAME IN TO HIM IN THE EVENING; AND, LO, IN HER MOUTH WAS AN M OLIVE LEAF PLUCKT OFF: SO NOAH KNEW THAT THE WATERS WERE ABATED FROM OFF THEC EARTH.GG# 12 AND HE STAYED YET OTHER SEVEN DAYS; AND SENT FORTH THE DOVE; WHICHR& RETURNED NOT AGAIN UNTO HIM ANY MORE.J# 13 AND IT CAME TO PASS IN THE SIX HUNDREDTH AND FIRST YEAR, IN THE FIRSTI MONTH, THE FIRST DAY OF THE MONTH, THE WATERS WERE DRIED UP FROM OFF THEYN EARTH: AND NOAH REMOVED THE COVERING OF THE ARK, AND LOOKED, AND, BEHOLD, THE FACE OF THE GROUND WAS DRY.J# 14 AND IN THE SECOND MONTH, ON THE SEVEN AND TWENTIETH DAY OF THE MONTH, WAS THE EARTH DRIED.S%# 15 AND GOD SPAKE UNTO NOAH, SAYING, H# 16 GO FORTH OF THE ARK, THOU, AND THY WIFE, AND THY SONS, AND THY SONS WIVES WITH THEE.NG# 17 BRING FORTH WITH THEE EVERY LIVING THING THAT IS WITH THEE, OF ALL N FLESH, BOTH OF FOWL, AND OF CATTLE, AND OF EVERY CREEPING THING THAT CREEPETHN UPON THE EARTH; THAT THEY MAY BREED ABUNDANTLY IN THE EARTH, AND BE FRUITFUL, AND MULTIPLY UPON THE EARTH.OM# 18 AND NOAH WENT FORTH, AND HIS SONS, AND HIS WIFE, AND HIS SONS WIVES WITHH HIM:,F# 19 EVERY BEAST, EVERY CREEPING THING, AND EVERY FOWL, AND WHATSOEVERG CREEPETH UPON THE EARTH, AFTER THEIR KINDS, WENT FORTH OUT OF THE ARK.SL# 20 AND NOAH BUILDED AN ALTAR UNTO THE LORD; AND TOOK OF EVERY CLEAN BEAST,C AND OF EVERY CLEAN FOWL, AND OFFERED BURNT OFFERINGS ON THE ALTAR.TK# 21 AND THE LORD SMELLED A SWEET SAVOUR; AND THE LORD SAID IN HIS HEART, IRL WILL NOT AGAIN CURSE THE GROUND ANY MORE FOR MANS SAKE; FOR THE IMAGINATIONJ OF MANS HEART IS EVIL FROM HIS YOUTH; NEITHER WILL I AGAIN SMITE ANY MORE$ EVERY THING LIVING, AS I HAVE DONE.L# 22 WHILE THE EARTH REMAINETH, SEEDTIME AND HARVEST, AND COLD AND HEAT, AND6 SUMMER AND WINTER, AND DAY AND NIGHT SHALL NOT CEASE. = CHAPTER 9 K# 1 AND GOD BLESSED NOAH AND HIS SONS, AND SAID UNTO THEM, BE FRUITFUL, ANDG# MULTIPLY, AND REPLENISH THE EARTH.MM# 2 AND THE FEAR OF YOU AND THE DREAD OF YOU SHALL BE UPON EVERY BEAST OF THE L EARTH, AND UPON EVERY FOWL OF THE AIR, UPON ALL THAT MOVETH UPON THE EARTH,G AND UPON ALL THE FISHES OF THE SEA; INTO YOUR HAND ARE THEY DELIVERED.,K# 3 EVERY MOVING THING THAT LIVETH SHALL BE MEAT FOR YOU; EVEN AS THE GREENO" HERB HAVE I GIVEN YOU ALL THINGS.M# 4 BUT FLESH WITH THE LIFE THEREOF, WHICH IS THE BLOOD THEREOF, SHALL YE NOTD EAT.NL# 5 AND SURELY YOUR BLOOD OF YOUR LIVES WILL I REQUIRE; AT THE HAND OF EVERYK BEAST WILL I REQUIRE IT, AND AT THE HAND OF MAN; AT THE HAND OF EVERY MANSH( BROTHER WILL I REQUIRE THE LIFE OF MAN.I# 6 WHOSO SHEDDETH MANS BLOOD, BY MAN SHALL HIS BLOOD BE SHED: FOR IN THE; IMAGE OF GOD MADE HE MAN.H# 7 AND YOU, BE YE FRUITFUL, AND MULTIPLY; BRING FORTH ABUNDANTLY IN THE EARTH, AND MULTIPLY THEREIN.N># 8 AND GOD SPAKE UNTO NOAH, AND TO HIS SONS WITH HIM, SAYING,M# 9 AND I, BEHOLD, I ESTABLISH MY COVENANT WITH YOU, AND WITH YOUR SEED AFTERE YOU;II# 10 AND WITH EVERY LIVING CREATURE THAT IS WITH YOU, 00_(&:%W<%X>%+%O-%TADATADATAOF THE FOWL, OF THEFN CATTLE, AND OF EVERY BEAST OF THE EARTH WITH YOU; FROM ALL THAT GO OUT OF THE" ARK, TO EVERY BEAST OF THE EARTH.J# 11 AND I WILL ESTABLISH MY COVENANT WITH YOU, NEITHER SHALL ALL FLESH BEM CUT OFF ANY MORE BY THE WATERS OF A FLOOD; NEITHER SHALL THERE ANY MORE BE AP FLOOD TO DESTROY THE EARTH.L# 12 AND GOD SAID, THIS IS THE TOKEN OF THE COVENANT WHICH I MAKE BETWEEN MEB AND YOU AND EVERY LIVING CREATURE THAT IS WITH YOU, FOR PERPETUAL GENERATIONS:GL# 13 I DO SET MY BOW IN THE CLOUD, AND IT SHALL BE FOR A TOKEN OF A COVENANT BETWEEN ME AND THE EARTH.M# 14 AND IT SHALL COME TO PASS, WHEN I BRING A CLOUD OVER THE EARTH, THAT THEA BOW SHALL BE SEEN IN THE CLOUD:K# 15 AND I WILL REMEMBER MY COVENANT, WHICH IS BETWEEN ME AND YOU AND EVERYLM LIVING CREATURE OF ALL FLESH; AND THE WATERS SHALL NO MORE BECOME A FLOOD TOS DESTROY ALL FLESH.EK# 16 AND THE BOW SHALL BE IN THE CLOUD; AND I WILL LOOK UPON IT, THAT I MAY K REMEMBER THE EVERLASTING COVENANT BETWEEN GOD AND EVERY LIVING CREATURE OF " ALL FLESH THAT IS UPON THE EARTH.L# 17 AND GOD SAID UNTO NOAH, THIS IS THE TOKEN OF THE COVENANT, WHICH I HAVE= ESTABLISHED BETWEEN ME AND ALL FLESH THAT IS UPON THE EARTH.J# 18 AND THE SONS OF NOAH, THAT WENT FORTH OF THE ARK, WERE SHEM, AND HAM,. AND JAPHETH: AND HAM IS THE FATHER OF CANAAN.F# 19 THESE ARE THE THREE SONS OF NOAH: AND OF THEM WAS THE WHOLE EARTH OVERSPREAD.C# 20 AND NOAH BEGAN TO BE AN HUSBANDMAN, AND HE PLANTED A VINEYARD:TK# 21 AND HE DRANK OF THE WINE, AND WAS DRUNKEN; AND HE WAS UNCOVERED WITHINO HIS TENT.M# 22 AND HAM, THE FATHER OF CANAAN, SAW THE NAKEDNESS OF HIS FATHER, AND TOLD HIS TWO BRETHREN WITHOUT.E# 23 AND SHEM AND JAPHETH TOOK A GARMENT, AND LAID IT UPON BOTH THEIRTM SHOULDERS, AND WENT BACKWARD, AND COVERED THE NAKEDNESS OF THEIR FATHER; ANDCE THEIR FACES WERE BACKWARD, AND THEY SAW NOT THEIR FATHERS NAKEDNESS.EI# 24 AND NOAH AWOKE FROM HIS WINE, AND KNEW WHAT HIS YOUNGER SON HAD DONEE UNTO HIM.J# 25 AND HE SAID, CURSED BE CANAAN; A SERVANT OF SERVANTS SHALL HE BE UNTO HIS BRETHREN.J# 26 AND HE SAID, BLESSED BE THE LORD GOD OF SHEM; AND CANAAN SHALL BE HIS SERVANT.TL# 27 GOD SHALL ENLARGE JAPHETH, AND HE SHALL DWELL IN THE TENTS OF SHEM; AND CANAAN SHALL BE HIS SERVANT. B# 28 AND NOAH LIVED AFTER THE FLOOD THREE HUNDRED AND FIFTY YEARS.M# 29 AND ALL THE DAYS OF NOAH WERE NINE HUNDRED AND FIFTY YEARS: AND HE DIED.A = CHAPTER 10 SN# 1 NOW THESE ARE THE GENERATIONS OF THE SONS OF NOAH, SHEM, HAM, AND JAPHETH:. AND UNTO THEM WERE SONS BORN AFTER THE FLOOD.K# 2 THE SONS OF JAPHETH; GOMER, AND MAGOG, AND MADAI, AND JAVAN, AND TUBAL,D AND MESHECH, AND TIRAS.?# 3 AND THE SONS OF GOMER; ASHKENAZ, AND RIPHATH, AND TOGARMAH. F# 4 AND THE SONS OF JAVAN; ELISHAH, AND TARSHISH, KITTIM, AND DODANIM.M# 5 BY THESE WERE THE ISLES OF THE GENTILES DIVIDED IN THEIR LANDS; EVERY ONEE: AFTER HIS TONGUE, AFTER THEIR FAMILIES, IN THEIR NATIONS.A# 6 AND THE SONS OF HAM; CUSH, AND MIZRAIM, AND PHUT, AND CANAAN.MH# 7 AND THE SONS OF CUSH; SEBA, AND HAVILAH, AND SABTAH, AND RAAMAH, AND5 SABTECHAH: AND THE SONS OF RAAMAH; SHEBA, AND DEDAN.AD# 8 AND CUSH BEGAT NIMROD: HE BEGAN TO BE A MIGHTY ONE IN THE EARTH.I# 9 HE WAS A MIGHTY HUNTER BEFORE THE LORD: WHEREFORE IT IS SAID, EVEN ASA* NIMROD THE MIGHTY HUNTER BEFORE THE LORD.J# 10 AND THE BEGINNING OF HIS KINGDOM WAS BABEL, AND ERECH, AND ACCAD, AND CALNEH, IN THE LAND OF SHINAR. J# 11 OUT OF THAT LAND WENT FORTH ASSHUR, AND BUILDED NINEVEH, AND THE CITY REHOBOTH, AND CALAH,SC# 12 AND RESEN BETWEEN NINEVEH AND CALAH: THE SAME IS A GREAT CITY. E# 13 AND MIZRAIM BEGAT LUDIM, AND ANAMIM, AND LEHABIM, AND NAPHTUHIM,HC# 14 AND PATHRUSIM, AND CASLUHIM, (OUT OF WHOM CAME PHILISTIM,) ANDB CAPHTORIM.D5# 15 AND CANAAN BEGAT SIDON HIS FIRST BORN, AND HETH,N:# 16 AND THE JEBUSITE, AND THE AMORITE, AND THE GIRGASITE,4# 17 AND THE HIVITE, AND THE ARKITE, AND THE SINITE,I# 18 AND THE ARVADITE, AND THE ZEMARITE, AND THE HAMATHITE: AND AFTERWARDV3 WERE THE FAMILIES OF THE CANAANITES SPREAD ABROAD.S00_0&%D%5%T6%! !G# 19 AND THE BORDER OF THE CANAANITES WAS FROM SIDON, AS THOU COMEST TOMJ GERAR, UNTO GAZA; AS THOU GOEST, UNTO SODOM, AND GOMORRAH, AND ADMAH, AND ZEBOIM, EVEN UNTO LASHA.CM# 20 THESE ARE THE SONS OF HAM, AFTER THEIR FAMILIES, AFTER THEIR TONGUES, IN ' THEIR COUNTRIES, AND IN THEIR NATIONS.EK# 21 UNTO SHEM ALSO, THE FATHER OF ALL THE CHILDREN OF EBER, THE BROTHER OFN3 JAPHETH THE ELDER, EVEN TO HIM WERE CHILDREN BORN.EM# 22 THE CHILDREN OF SHEM; ELAM, AND ASSHUR, AND ARPHAXAD, AND LUD, AND ARAM.SA# 23 AND THE CHILDREN OF ARAM; UZ, AND HUL, AND GETHER, AND MASH.E4# 24 AND ARPHAXAD BEGAT SALAH; AND SALAH BEGAT EBER.L# 25 AND UNTO EBER WERE BORN TWO SONS: THE NAME OF ONE WAS PELEG; FOR IN HIS> DAYS WAS THE EARTH DIVIDED; AND HIS BROTHERS NAME WAS JOKTAN.G# 26 AND JOKTAN BEGAT ALMODAD, AND SHELEPH, AND HAZARMAVETH, AND JERAH,A'# 27 AND HADORAM, AND UZAL, AND DIKLAH,&# 28 AND OBAL, AND ABIMAEL, AND SHEBA,J# 29 AND OPHIR, AND HAVILAH, AND JOBAB: ALL THESE WERE THE SONS OF JOKTAN.L# 30 AND THEIR DWELLING WAS FROM MESHA, AS THOU GOEST UNTO SEPHAR A MOUNT OF THE EAST.K# 31 THESE ARE THE SONS OF SHEM, AFTER THEIR FAMILIES, AFTER THEIR TONGUES,N% IN THEIR LANDS, AFTER THEIR NATIONS.OL# 32 THESE ARE THE FAMILIES OF THE SONS OF NOAH, AFTER THEIR GENERATIONS, INL THEIR NATIONS: AND BY THESE WERE THE NATIONS DIVIDED IN THE EARTH AFTER THE FLOOD. = CHAPTER 11 I?# 1 AND THE WHOLE EARTH WAS OF ONE LANGUAGE, AND OF ONE SPEECH.NK# 2 AND IT CAME TO PASS, AS THEY JOURNEYED FROM THE EAST, THAT THEY FOUND AL3 PLAIN IN THE LAND OF SHINAR; AND THEY DWELT THERE. I# 3 AND THEY SAID ONE TO ANOTHER, GO TO, LET US MAKE BRICK, AND BURN THEMRI THOROUGHLY. AND THEY HAD BRICK FOR STONE, AND SLIME HAD THEY FOR MORTER.EK# 4 AND THEY SAID, GO TO, LET US BUILD US A CITY AND A TOWER, WHOSE TOP MAYNJ REACH UNTO HEAVEN; AND LET US MAKE US A NAME, LEST WE BE SCATTERED ABROAD" UPON THE FACE OF THE WHOLE EARTH.L# 5 AND THE LORD CAME DOWN TO SEE THE CITY AND THE TOWER, WHICH THE CHILDREN OF MEN BUILDED.G# 6 AND THE LORD SAID, BEHOLD, THE PEOPLE IS ONE, AND THEY HAVE ALL ONE M LANGUAGE; AND THIS THEY BEGIN TO DO: AND NOW NOTHING WILL BE RESTRAINED FROMT& THEM, WHICH THEY HAVE IMAGINED TO DO.K# 7 GO TO, LET US GO DOWN, AND THERE CONFOUND THEIR LANGUAGE, THAT THEY MAY $ NOT UNDERSTAND ONE ANOTHERS SPEECH.J# 8 SO THE LORD SCATTERED THEM ABROAD FROM THENCE UPON THE FACE OF ALL THE, EARTH: AND THEY LEFT OFF TO BUILD THE CITY.H# 9 THEREFORE IS THE NAME OF IT CALLED BABEL; BECAUSE THE LORD DID THEREM CONFOUND THE LANGUAGE OF ALL THE EARTH: AND FROM THENCE DID THE LORD SCATTER , THEM ABROAD UPON THE FACE OF ALL THE EARTH.J# 10 THESE ARE THE GENERATIONS OF SHEM: SHEM WAS AN HUNDRED YEARS OLD, AND* BEGAT ARPHAXAD TWO YEARS AFTER THE FLOOD:I# 11 AND SHEM LIVED AFTER HE BEGAT ARPHAXAD FIVE HUNDRED YEARS, AND BEGAT  SONS AND DAUGHTERS.?# 12 AND ARPHAXAD LIVED FIVE AND THIRTY YEARS, AND BEGAT SALAH:YJ# 13 AND ARPHAXAD LIVED AFTER HE BEGAT SALAH FOUR HUNDRED AND THREE YEARS, AND BEGAT SONS AND DAUGHTERS.2# 14 AND SALAH LIVED THIRTY YEARS, AND BEGAT EBER:J# 15 AND SALAH LIVED AFTER HE BEGAT EBER FOUR HUNDRED AND THREE YEARS, AND BEGAT SONS AND DAUGHTERS.;# 16 AND EBER LIVED FOUR AND THIRTY YEARS, AND BEGAT PELEG: K# 17 AND EBER LIVED AFTER HE BEGAT PELEG FOUR HUNDRED AND THIRTY YEARS, ANDR BEGAT SONS AND DAUGHTERS.1# 18 AND PELEG LIVED THIRTY YEARS, AND BEGAT REU:IM# 19 AND PELEG LIVED AFTER HE BEGAT REU TWO HUNDRED AND NINE YEARS, AND BEGAT  SONS AND DAUGHTERS.9# 20 AND REU LIVED TWO AND THIRTY YEARS, AND BEGAT SERUG:IH# 21 AND REU LIVED AFTER HE BEGAT SERUG TWO HUNDRED AND SEVEN YEARS, AND BEGAT SONS AND DAUGHTERS.3# 22 AND SERUG LIVED THIRTY YEARS, AND BEGAT NAHOR:RK# 23 AND SERUG LIVED AFTER HE BEGAT NAHOR TWO HUNDRED YEARS, AND BEGAT SONSG AND DAUGHTERS. <# 24 AND NAHOR LIVED NINE AND TWENTY YEARS, AND BEGAT TERAH:L# 25 AND NAHOR LIVED AFTER HE BEGAT TERAH AN HUNDRED AND NINETEEN YEARS, AND BEGAT SONS AND DAUGHTERS.F# 26 AND TERAH LIVED SEVENTY YEARS, AND BEGAT ABRAM, NAHOR, AND HARAN.J# 27 N00_8&:%W<%X>%+%O-%TADATADATAOW THESE ARE THE GENERATIONS OF TERAH: TERAH BEGAT ABRAM, NAHOR, AND HARAN; AND HARAN BEGAT LOT.K# 28 AND HARAN DIED BEFORE HIS FATHER TERAH IN THE LAND OF HIS NATIVITY, INA UR OF THE CHALDEES.L# 29 AND ABRAM AND NAHOR TOOK THEM WIVES: THE NAME OF ABRAMS WIFE WAS SARAI;J AND THE NAME OF NAHORS WIFE, MILCAH, THE DAUGHTER OF HARAN, THE FATHER OF! MILCAH, AND THE FATHER OF ISCAH.N,# 30 BUT SARAI WAS BARREN; SHE HAD NO CHILD.M# 31 AND TERAH TOOK ABRAM HIS SON, AND LOT THE SON OF HARAN HIS SONS SON, ANDWN SARAI HIS DAUGHTER IN LAW, HIS SON ABRAMS WIFE; AND THEY WENT FORTH WITH THEMK FROM UR OF THE CHALDEES, TO GO INTO THE LAND OF CANAAN; AND THEY CAME UNTOH HARAN, AND DWELT THERE.M# 32 AND THE DAYS OF TERAH WERE TWO HUNDRED AND FIVE YEARS: AND TERAH DIED IN  HARAN.; = CHAPTER 12 K# 1 NOW THE LORD HAD SAID UNTO ABRAM, GET THEE OUT OF THY COUNTRY, AND FROMEL THY KINDRED, AND FROM THY FATHERS HOUSE, UNTO A LAND THAT I WILL SHEW THEE:K# 2 AND I WILL MAKE OF THEE A GREAT NATION, AND I WILL BLESS THEE, AND MAKES. THY NAME GREAT; AND THOU SHALT BE A BLESSING:K# 3 AND I WILL BLESS THEM THAT BLESS THEE, AND CURSE HIM THAT CURSETH THEE:;8 AND IN THEE SHALL ALL FAMILIES OF THE EARTH BE BLESSED.I# 4 SO ABRAM DEPARTED, AS THE LORD HAD SPOKEN UNTO HIM; AND LOT WENT WITHNM HIM: AND ABRAM WAS SEVENTY AND FIVE YEARS OLD WHEN HE DEPARTED OUT OF HARAN.OJ# 5 AND ABRAM TOOK SARAI HIS WIFE, AND LOT HIS BROTHERS SON, AND ALL THEIRH SUBSTANCE THAT THEY HAD GATHERED, AND THE SOULS THAT THEY HAD GOTTEN INL HARAN; AND THEY WENT FORTH TO GO INTO THE LAND OF CANAAN; AND INTO THE LAND OF CANAAN THEY CAME.TH# 6 AND ABRAM PASSED THROUGH THE LAND UNTO THE PLACE OF SICHEM, UNTO THE8 PLAIN OF MOREH. AND THE CANAANITE WAS THEN IN THE LAND.I# 7 AND THE LORD APPEARED UNTO ABRAM, AND SAID, UNTO THY SEED WILL I GIVETJ THIS LAND: AND THERE BUILDED HE AN ALTAR UNTO THE LORD, WHO APPEARED UNTO HIM.WI# 8 AND HE REMOVED FROM THENCE UNTO A MOUNTAIN ON THE EAST OF BETHEL, ANDEL PITCHED HIS TENT, HAVING BETHEL ON THE WEST, AND HAI ON THE EAST: AND THEREI HE BUILDED AN ALTAR UNTO THE LORD, AND CALLED UPON THE NAME OF THE LORD. 9# 9 AND ABRAM JOURNEYED, GOING ON STILL TOWARD THE SOUTH.OJ# 10 AND THERE WAS A FAMINE IN THE LAND: AND ABRAM WENT DOWN INTO EGYPT TO8 SOJOURN THERE; FOR THE FAMINE WAS GRIEVOUS IN THE LAND.L# 11 AND IT CAME TO PASS, WHEN HE WAS COME NEAR TO ENTER INTO EGYPT, THAT HEK SAID UNTO SARAI HIS WIFE, BEHOLD NOW, I KNOW THAT THOU ART A FAIR WOMAN TOH LOOK UPON:TM# 12 THEREFORE IT SHALL COME TO PASS, WHEN THE EGYPTIANS SHALL SEE THEE, THATUL THEY SHALL SAY, THIS IS HIS WIFE: AND THEY WILL KILL ME, BUT THEY WILL SAVE THEE ALIVE.J# 13 SAY, I PRAY THEE, THOU ART MY SISTER: THAT IT MAY BE WELL WITH ME FOR2 THY SAKE; AND MY SOUL SHALL LIVE BECAUSE OF THEE.M# 14 AND IT CAME TO PASS, THAT, WHEN ABRAM WAS COME INTO EGYPT, THE EGYPTIANSA) BEHELD THE WOMAN THAT SHE WAS VERY FAIR.SK# 15 THE PRINCES ALSO OF PHARAOH SAW HER, AND COMMENDED HER BEFORE PHARAOH:L- AND THE WOMAN WAS TAKEN INTO PHARAOHS HOUSE.SJ# 16 AND HE ENTREATED ABRAM WELL FOR HER SAKE: AND HE HAD SHEEP, AND OXEN,L AND HE ASSES, AND MENSERVANTS, AND MAIDSERVANTS, AND SHE ASSES, AND CAMELS.M# 17 AND THE LORD PLAGUED PHARAOH AND HIS HOUSE WITH GREAT PLAGUES BECAUSE OFL SARAI ABRAMS WIFE.FM# 18 AND PHARAOH CALLED ABRAM AND SAID, WHAT IS THIS THAT THOU HAST DONE UNTOP6 ME? WHY DIDST THOU NOT TELL ME THAT SHE WAS THY WIFE?J# 19 WHY SAIDST THOU, SHE IS MY SISTER? SO I MIGHT HAVE TAKEN HER TO ME TO? WIFE: NOW THEREFORE BEHOLD THY WIFE, TAKE HER, AND GO THY WAY.EJ# 20 AND PHARAOH COMMANDED HIS MEN CONCERNING HIM: AND THEY SENT HIM AWAY,# AND HIS WIFE, AND ALL THAT HE HAD. = CHAPTER 13 LN# 1 AND ABRAM WENT UP OUT OF EGYPT, HE, AND HIS WIFE, AND ALL THAT HE HAD, AND LOT WITH HIM, INTO THE SOUTH.># 2 AND ABRAM WAS VERY RICH IN CATTLE, IN SILVER, AND IN GOLD.M# 3 AND HE WENT ON HIS JOURNEYS FROM THE SOUTH EVEN TO BETHEL, UNTO THE PLACESB WHERE HIS TENT HAD BEEN AT THE BEGINNING, BETWEEN BETHEL AND HAI;J# 4 UNTO THE PLACE OF THE ALTAR, WHICH H00_@&%D%5%T6%! !E HAD MAKE THERE AT THE FIRST: AND, THERE ABRAM CALLED ON THE NAME OF THE LORD.J# 5 AND LOT ALSO, WHICH WENT WITH ABRAM, HAD FLOCKS, AND HERDS, AND TENTS.K# 6 AND THE LAND WAS NOT ABLE TO BEAR THEM, THAT THEY MIGHT DWELL TOGETHER:WF FOR THEIR SUBSTANCE WAS GREAT, SO THAT THEY COULD NOT DWELL TOGETHER.G# 7 AND THERE WAS A STRIFE BETWEEN THE HERDMEN OF ABRAMS CATTLE AND THEBL HERDMEN OF LOTS CATTLE: AND THE CANAANITE AND THE PERIZZITE DWELLED THEN IN THE LAND.L# 8 AND ABRAM SAID UNTO LOT, LET THERE BE NO STRIFE, I PRAY THEE, BETWEEN MEF AND THEE, AND BETWEEN MY HERDMEN AND THY HERDMEN; FOR WE BE BRETHREN.J# 9 IS NOT THE WHOLE LAND BEFORE THEE? SEPARATE THYSELF, I PRAY THEE, FROMM ME: IF THOU WILT TAKE THE LEFT HAND, THEN I WILL GO TO THE RIGHT; OR IF THOUE6 DEPART TO THE RIGHT HAND, THEN I WILL GO TO THE LEFT.L# 10 AND LOT LIFTED UP HIS EYES, AND BEHELD ALL THE PLAIN OF JORDAN, THAT ITL WAS WELL WATERED EVERY WHERE, BEFORE THE LORD DESTROYED SODOM AND GOMORRAH,L EVEN AS THE GARDEN OF THE LORD, LIKE THE LAND OF EGYPT, AS THOU COMEST UNTO ZOAR.L# 11 THEN LOT CHOSE HIM ALL THE PLAIN OF JORDAN; AND LOT JOURNEYED EAST: AND2 THEY SEPARATED THEMSELVES THE ONE FROM THE OTHER.J# 12 ABRAM DWELLED IN THE LAND OF CANAAN, AND LOT DWELLED IN THE CITIES OF. THE PLAIN, AND PITCHED HIS TENT TOWARD SODOM.A# 13 BUT THE MEN OF SODOM WERE WICKED AND SINNERS BEFORE THE LORDH EXCEEDINGLY.AI# 14 AND THE LORD SAID UNTO ABRAM, AFTER THAT LOT WAS SEPARATED FROM HIM,AN LIFT UP NOW THINE EYES, AND LOOK FROM THE PLACE WHERE THOU ART NORTHWARD, AND' SOUTHWARD, AND EASTWARD, AND WESTWARD:IJ# 15 FOR ALL THE LAND WHICH THOU SEEST, TO THEE WILL I GIVE IT, AND TO THY SEED FOR EVER.OL# 16 AND I WILL MAKE THY SEED AS THE DUST OF THE EARTH: SO THAT IF A MAN CAND NUMBER THE DUST OF THE EARTH, THEN SHALL THY SEED ALSO BE NUMBERED.K# 17 ARISE, WALK THROUGH THE LAND IN THE LENGTH OF IT AND IN THE BREADTH OF4" IT; FOR I WILL GIVE IT UNTO THEE.K# 18 THEN ABRAM REMOVED HIS TENT, AND CAME AND DWELT IN THE PLAIN OF MAMRE,E< WHICH IS IN HEBRON, AND BUILT THERE AN ALTAR UNTO THE LORD. = CHAPTER 14 IN# 1 AND IT CAME TO PASS IN THE DAYS OF AMRAPHEL KING OF SHINAR, ARIOCH KING OF? ELLASAR, CHEDORLAOMER KING OF ELAM, AND TIDAL KING OF NATIONS;EH# 2 THAT THESE MADE WAR WITH BERA KING OF SODOM, AND WITH BIRSHA KING OFN GOMORRAH, SHINAB KING OF ADMAH, AND SHEMEBER KING OF ZEBOIIM, AND THE KING OF BELA, WHICH IS ZOAR.IK# 3 ALL THESE WERE JOINED TOGETHER IN THE VALE OF SIDDIM, WHICH IS THE SALTA SEA.TJ# 4 TWELVE YEARS THEY SERVED CHEDORLAOMER, AND IN THE THIRTEENTH YEAR THEY REBELLED.I# 5 AND IN THE FOURTEENTH YEAR CAME CHEDORLAOMER, AND THE KINGS THAT WERENN WITH HIM, AND SMOTE THE REPHAIMS IN ASHTEROTH KARNAIM, AND THE ZUZIMS IN HAM,$ AND THE EMINS IN SHAVEH KIRIATHAIM,F# 6 AND THE HORITES IN THEIR MOUNT SEIR, UNTO ELPARAN, WHICH IS BY THE WILDERNESS.L# 7 AND THEY RETURNED, AND CAME TO ENMISHPAT, WHICH IS KADESH, AND SMOTE ALLD THE COUNTRY OF THE AMALEKITES, AND ALSO THE AMORITES, THAT DWELT IN HAZEZONTAMAR.K# 8 AND THERE WENT OUT THE KING OF SODOM, AND THE KING OF GOMORRAH, AND THE J KING OF ADMAH, AND THE KING OF ZEBOIIM, AND THE KING OF BELA (THE SAME IS? ZOAR;) AND THEY JOINED BATTLE WITH THEM IN THE VALE OF SIDDIM; K# 9 WITH CHEDORLAOMER THE KING OF ELAM, AND WITH TIDAL KING OF NATIONS, ANDTK AMRAPHEL KING OF SHINAR, AND ARIOCH KING OF ELLASAR; FOUR KINGS WITH FIVE.DM# 10 AND THE VALE OF SIDDIM WAS FULL OF SLIMEPITS; AND THE KINGS OF SODOM ANDTL GOMORRAH FLED, AND FELL THERE; AND THEY THAT REMAINED FLED TO THE MOUNTAIN.E# 11 AND THEY TOOK ALL THE GOODS OF SODOM AND GOMORRAH, AND ALL THEIRH VICTUALS, AND WENT THEIR WAY.H# 12 AND THEY TOOK LOT, ABRAMS BROTHERS SON, WHO DWELT IN SODOM, AND HIS GOODS, AND DEPARTED. K# 13 AND THERE CAME ONE THAT HAD ESCAPED, AND TOLD ABRAM THE HEBREW; FOR HEAK DWELT IN THE PLAIN OF MAMRE THE AMORITE, BROTHER OF ESHCOL, AND BROTHER OF - ANER: AND THESE WERE CONFEDERATE WITH ABRAM.;J# 14 AND WHEN ABRAM HEARD THAT HIS BROTHER WAS TAKEN CAPTIVE, HE ARMED HISI TRAINED SERVA00_H&:%W<%X>%+%O-%TADATADATANTS, BORN IN HIS OWN HOUSE, THREE HUNDRED AND EIGHTEEN, ANDN PURSUED THEM UNTO DAN.HL# 15 AND HE DIVIDED HIMSELF AGAINST THEM, HE AND HIS SERVANTS, BY NIGHT, ANDF SMOTE THEM, AND PURSUED THEM UNTO HOBAH, WHICH IS ON THE LEFT HAND OF DAMASCUS.J# 16 AND HE BROUGHT BACK ALL THE GOODS, AND ALSO BROUGHT AGAIN HIS BROTHER8 LOT, AND HIS GOODS, AND THE WOMEN ALSO, AND THE PEOPLE.I# 17 AND THE KING OF SODOM WENT OUT TO MEET HIM AFTER HIS RETURN FROM THEBN SLAUGHTER OF CHEDORLAOMER, AND OF THE KINGS THAT WERE WITH HIM, AT THE VALLEY$ OF SHAVEH, WHICH IS THE KINGS DALE.K# 18 AND MELCHIZEDEK KING OF SALEM BROUGHT FORTH BREAD AND WINE: AND HE WASS! THE PRIEST OF THE MOST HIGH GOD.,I# 19 AND HE BLESSED HIM, AND SAID, BLESSED BE ABRAM OF THE MOST HIGH GOD,6 POSSESSOR OF HEAVEN AND EARTH:SI# 20 AND BLESSED BE THE MOST HIGH GOD, WHICH HATH DELIVERED THINE ENEMIESS. INTO THY HAND. AND HE GAVE HIM TITHES OF ALL.M# 21 AND THE KING OF SODOM SAID UNTO ABRAM, GIVE ME THE PERSONS, AND TAKE THE  GOODS TO THYSELF.K# 22 AND ABRAM SAID TO THE KING OF SODOM, I HAVE LIFT UP MINE HAND UNTO THEL< LORD, THE MOST HIGH GOD, THE POSSESSOR OF HEAVEN AND EARTH,I# 23 THAT I WILL NOT TAKE FROM A THREAD EVEN TO A SHOELATCHET, AND THAT IBL WILL NOT TAKE ANY THING THAT IS THINE, LEST THOU SHOULDEST SAY, I HAVE MADE ABRAM RICH:J# 24 SAVE ONLY THAT WHICH THE YOUNG MEN HAVE EATEN, AND THE PORTION OF THEN MEN WHICH WENT WITH ME, ANER, ESHCOL, AND MAMRE; LET THEM TAKE THEIR PORTION. = CHAPTER 15 AH# 1 AFTER THESE THINGS THE WORD OF THE LORD CAME UNTO ABRAM IN A VISION,J SAYING, FEAR NOT, ABRAM: I AM THY SHIELD, AND THY EXCEEDING GREAT REWARD.L# 2 AND ABRAM SAID, LORD GOD, WHAT WILT THOU GIVE ME, SEEING I GO CHILDLESS,9 AND THE STEWARD OF MY HOUSE IS THIS ELIEZER OF DAMASCUS?EL# 3 AND ABRAM SAID, BEHOLD, TO ME THOU HAST GIVEN NO SEED: AND, LO, ONE BORN IN MY HOUSE IS MINE HEIR.K# 4 AND, BEHOLD, THE WORD OF THE LORD CAME UNTO HIM, SAYING, THIS SHALL NOT M BE THINE HEIR; BUT HE THAT SHALL COME FORTH OUT OF THINE OWN BOWELS SHALL BEE THINE HEIR.J# 5 AND HE BROUGHT HIM FORTH ABROAD, AND SAID, LOOK NOW TOWARD HEAVEN, ANDI TELL THE STARS, IF THOU BE ABLE TO NUMBER THEM: AND HE SAID UNTO HIM, SO  SHALL THY SEED BE.,L# 6 AND HE BELIEVED IN THE LORD; AND HE COUNTED IT TO HIM FOR RIGHTEOUSNESS.J# 7 AND HE SAID UNTO HIM, I AM THE LORD THAT BROUGHT THEE OUT OF UR OF THE0 CHALDEES, TO GIVE THEE THIS LAND TO INHERIT IT.H# 8 AND HE SAID, LORD GOD, WHEREBY SHALL I KNOW THAT I SHALL INHERIT IT?I# 9 AND HE SAID UNTO HIM, TAKE ME AN HEIFER OF THREE YEARS OLD, AND A SHEOM GOAT OF THREE YEARS OLD, AND A RAM OF THREE YEARS OLD, AND A TURTLEDOVE, ANDI A YOUNG PIGEON.L# 10 AND HE TOOK UNTO HIM ALL THESE, AND DIVIDED THEM IN THE MIDST, AND LAID> EACH PIECE ONE AGAINST ANOTHER: BUT THE BIRDS DIVIDED HE NOT.K# 11 AND WHEN THE FOWLS CAME DOWN UPON THE CARCASES, ABRAM DROVE THEM AWAY.AL# 12 AND WHEN THE SUN WAS GOING DOWN, A DEEP SLEEP FELL UPON ABRAM; AND, LO,+ AN HORROR OF GREAT DARKNESS FELL UPON HIM. F# 13 AND HE SAID UNTO ABRAM, KNOW OF A SURETY THAT THY SEED SHALL BE AL STRANGER IN A LAND THAT IS NOT THEIRS, AND SHALL SERVE THEM; AND THEY SHALL! AFFLICT THEM FOUR HUNDRED YEARS;KM# 14 AND ALSO THAT NATION, WHOM THEY SHALL SERVE, WILL I JUDGE: AND AFTERWARDG* SHALL THEY COME OUT WITH GREAT SUBSTANCE.I# 15 AND THOU SHALT GO TO THY FATHERS IN PEACE; THOU SHALT BE BURIED IN AY GOOD OLD AGE.G# 16 BUT IN THE FOURTH GENERATION THEY SHALL COME HITHER AGAIN: FOR THER* INIQUITY OF THE AMORITES IS NOT YET FULL.H# 17 AND IT CAME TO PASS, THAT, WHEN THE SUN WENT DOWN, AND IT WAS DARK,G BEHOLD A SMOKING FURNACE, AND A BURNING LAMP THAT PASSED BETWEEN THOSEF PIECES.J# 18 IN THE SAME DAY THE LORD MADE A COVENANT WITH ABRAM, SAYING, UNTO THYK SEED HAVE I GIVEN THIS LAND, FROM THE RIVER OF EGYPT UNTO THE GREAT RIVER,D THE RIVER EUPHRATES:A9# 19 THE KENITES, AND THE KENIZZITES, AND THE KADMONITES,<# 20 AND THE HITTITES, AND THE PERIZZITES, AND THE REPHAIMS,G# 21 AND THE AMORITES, AND THE CANAANITES, AND THE GIRGASHITES, AND THET J00_P&%D%5%T6%! !EBUSITES. = CHAPTER 16 NK# 1 NOW SARAI ABRAMS WIFE BARE HIM NO CHILDREN: AND SHE HAD AN HANDMAID, ANP EGYPTIAN, WHOSE NAME WAS HAGAR.K# 2 AND SARAI SAID UNTO ABRAM, BEHOLD NOW, THE LORD HATH RESTRAINED ME FROMEF BEARING: I PRAY THEE, GO IN UNTO MY MAID; IT MAY BE THAT I MAY OBTAIN< CHILDREN BY HER. AND ABRAM HEARKENED TO THE VOICE OF SARAI.K# 3 AND SARAI ABRAMS WIFE TOOK HAGAR HER MAID THE EGYPTIAN, AFTER ABRAM HADPL DWELT TEN YEARS IN THE LAND OF CANAAN, AND GAVE HER TO HER HUSBAND ABRAM TO BE HIS WIFE. K# 4 AND HE WENT IN UNTO HAGAR, AND SHE CONCEIVED: AND WHEN SHE SAW THAT SHE 6 HAD CONCEIVED, HER MISTRESS WAS DESPISED IN HER EYES.J# 5 AND SARAI SAID UNTO ABRAM, MY WRONG BE UPON THEE: I HAVE GIVEN MY MAIDK INTO THY BOSOM; AND WHEN SHE SAW THAT SHE HAD CONCEIVED, I WAS DESPISED INE. HER EYES: THE LORD JUDGE BETWEEN ME AND THEE.K# 6 BUT ABRAM SAID UNTO SARAI, BEHOLD, THY MAID IS IN THINE HAND; DO TO HER M AS IT PLEASETH THEE. AND WHEN SARAI DEALT HARDLY WITH HER, SHE FLED FROM HER  FACE.E# 7 AND THE ANGEL OF THE LORD FOUND HER BY A FOUNTAIN OF WATER IN THES0 WILDERNESS, BY THE FOUNTAIN IN THE WAY TO SHUR.I# 8 AND HE SAID, HAGAR, SARAIS MAID, WHENCE CAMEST THOU? AND WHITHER WILTEB THOU GO? AND SHE SAID, I FLEE FROM THE FACE OF MY MISTRESS SARAI.H# 9 AND THE ANGEL OF THE LORD SAID UNTO HER, RETURN TO THY MISTRESS, AND SUBMIT THYSELF UNDER HER HANDS.F# 10 AND THE ANGEL OF THE LORD SAID UNTO HER, I WILL MULTIPLY THY SEED: EXCEEDINGLY, THAT IT SHALL NOT BE NUMBERED FOR MULTITUDE.M# 11 AND THE ANGEL OF THE LORD SAID UNTO HER, BEHOLD, THOU ART WITH CHILD ANDI SHALT BEAR A SON, AND SHALT CALL HIS NAME ISHMAEL; BECAUSE THE LORD HATHA HEARD THY AFFLICTION.M# 12 AND HE WILL BE A WILD MAN; HIS HAND WILL BE AGAINST EVERY MAN, AND EVERYSE MANS HAND AGAINST HIM; AND HE SHALL DWELL IN THE PRESENCE OF ALL HISY BRETHREN.L# 13 AND SHE CALLED THE NAME OF THE LORD THAT SPAKE UNTO HER, THOU GOD SEESTC ME: FOR SHE SAID, HAVE I ALSO HERE LOOKED AFTER HIM THAT SEETH ME?MM# 14 WHEREFORE THE WELL WAS CALLED BEERLAHAIROI; BEHOLD, IT IS BETWEEN KADESHU AND BERED.LL# 15 AND HAGAR BARE ABRAM A SON: AND ABRAM CALLED HIS SONS NAME, WHICH HAGAR BARE, ISHMAEL.AJ# 16 AND ABRAM WAS FOURSCORE AND SIX YEARS OLD, WHEN HAGAR BARE ISHMAEL TO ABRAM.V = CHAPTER 17 DM# 1 AND WHEN ABRAM WAS NINETY YEARS OLD AND NINE, THE LORD APPEARED TO ABRAM,AF AND SAID UNTO HIM, I AM THE ALMIGHTY GOD; WALK BEFORE ME, AND BE THOU PERFECT.EK# 2 AND I WILL MAKE MY COVENANT BETWEEN ME AND THEE, AND WILL MULTIPLY THEEW EXCEEDINGLY.B@# 3 AND ABRAM FELL ON HIS FACE: AND GOD TALKED WITH HIM, SAYING,K# 4 AS FOR ME, BEHOLD, MY COVENANT IS WITH THEE, AND THOU SHALT BE A FATHERI OF MANY NATIONS.AJ# 5 NEITHER SHALL THY NAME ANY MORE BE CALLED ABRAM, BUT THY NAME SHALL BE8 ABRAHAM; FOR A FATHER OF MANY NATIONS HAVE I MADE THEE.M# 6 AND I WILL MAKE THEE EXCEEDING FRUITFUL, AND I WILL MAKE NATIONS OF THEE,;" AND KINGS SHALL COME OUT OF THEE.K# 7 AND I WILL ESTABLISH MY COVENANT BETWEEN ME AND THEE AND THY SEED AFTERTN THEE IN THEIR GENERATIONS FOR AN EVERLASTING COVENANT, TO BE A GOD UNTO THEE, AND TO THY SEED AFTER THEE.K# 8 AND I WILL GIVE UNTO THEE, AND TO THY SEED AFTER THEE, THE LAND WHEREIN L THOU ART A STRANGER, ALL THE LAND OF CANAAN, FOR AN EVERLASTING POSSESSION; AND I WILL BE THEIR GOD.NK# 9 AND GOD SAID UNTO ABRAHAM, THOU SHALT KEEP MY COVENANT THEREFORE, THOU,W. AND THY SEED AFTER THEE IN THEIR GENERATIONS.I# 10 THIS IS MY COVENANT, WHICH YE SHALL KEEP, BETWEEN ME AND YOU AND THYDA SEED AFTER THEE; EVERY MAN CHILD AMONG YOU SHALL BE CIRCUMCISED.EJ# 11 AND YE SHALL CIRCUMCISE THE FLESH OF YOUR FORESKIN; AND IT SHALL BE A* TOKEN OF THE COVENANT BETWIXT ME AND YOU.L# 12 AND HE THAT IS EIGHT DAYS OLD SHALL BE CIRCUMCISED AMONG YOU, EVERY MANN CHILD IN YOUR GENERATIONS, HE THAT IS BORN IN THE HOUSE, OR BOUGHT WITH MONEY+ OF ANY STRANGER, WHICH IS NOT OF THY SEED.AM# 13 HE THAT IS BORN IN THY HOUSE, AND HE THAT IS BOUGHT WITH THY MONEY, MUSTED NEEDS BE CIRCUMCISED: AND MY COVENANT SHALL BE IN YOUR FLESH 00_X&:%W<%X>%+%O-%TADATADATAFOR AN EVERLASTING COVENANT.G# 14 AND THE UNCIRCUMCISED MAN CHILD WHOSE FLESH OF HIS FORESKIN IS NOTAK CIRCUMCISED, THAT SOUL SHALL BE CUT OFF FROM HIS PEOPLE; HE HATH BROKEN MYT COVENANT.J# 15 AND GOD SAID UNTO ABRAHAM, AS FOR SARAI THY WIFE, THOU SHALT NOT CALL- HER NAME SARAI, BUT SARAH SHALL HER NAME BE.MM# 16 AND I WILL BLESS HER, AND GIVE THEE A SON ALSO OF HER: YEA, I WILL BLESS L HER, AND SHE SHALL BE A MOTHER OF NATIONS; KINGS OF PEOPLE SHALL BE OF HER.I# 17 THEN ABRAHAM FELL UPON HIS FACE, AND LAUGHED, AND SAID IN HIS HEART,DN SHALL A CHILD BE BORN UNTO HIM THAT IS AN HUNDRED YEARS OLD? AND SHALL SARAH, THAT IS NINETY YEARS OLD, BEAR?F# 18 AND ABRAHAM SAID UNTO GOD, O THAT ISHMAEL MIGHT LIVE BEFORE THEE!H# 19 AND GOD SAID, SARAH THY WIFE SHALL BEAR THEE A SON INDEED; AND THOUL SHALT CALL HIS NAME ISAAC: AND I WILL ESTABLISH MY COVENANT WITH HIM FOR AN3 EVERLASTING COVENANT, AND WITH HIS SEED AFTER HIM. K# 20 AND AS FOR ISHMAEL, I HAVE HEARD THEE: BEHOLD, I HAVE BLESSED HIM, AND J WILL MAKE HIM FRUITFUL, AND WILL MULTIPLY HIM EXCEEDINGLY; TWELVE PRINCES4 SHALL HE BEGET, AND I WILL MAKE HIM A GREAT NATION.M# 21 BUT MY COVENANT WILL I ESTABLISH WITH ISAAC, WHICH SARAH SHALL BEAR UNTOT( THEE AT THIS SET TIME IN THE NEXT YEAR.D# 22 AND HE LEFT OFF TALKING WITH HIM, AND GOD WENT UP FROM ABRAHAM.K# 23 AND ABRAHAM TOOK ISHMAEL HIS SON, AND ALL THAT WERE BORN IN HIS HOUSE,NN AND ALL THAT WERE BOUGHT WITH HIS MONEY, EVERY MALE AMONG THE MEN OF ABRAHAMSK HOUSE; AND CIRCUMCISED THE FLESH OF THEIR FORESKIN IN THE SELFSAME DAY, ASH GOD HAD SAID UNTO HIM.IJ# 24 AND ABRAHAM WAS NINETY YEARS OLD AND NINE, WHEN HE WAS CIRCUMCISED IN THE FLESH OF HIS FORESKIN.AK# 25 AND ISHMAEL HIS SON WAS THIRTEEN YEARS OLD, WHEN HE WAS CIRCUMCISED IN  THE FLESH OF HIS FORESKIN.TF# 26 IN THE SELFSAME DAY WAS ABRAHAM CIRCUMCISED, AND ISHMAEL HIS SON.K# 27 AND ALL THE MEN OF HIS HOUSE, BORN IN THE HOUSE, AND BOUGHT WITH MONEYS, OF THE STRANGER, WERE CIRCUMCISED WITH HIM. = CHAPTER 18 CL# 1 AND THE LORD APPEARED UNTO HIM IN THE PLAINS OF MAMRE: AND HE SAT IN THE" TENT DOOR IN THE HEAT OF THE DAY;L# 2 AND HE LIFT UP HIS EYES AND LOOKED, AND, LO, THREE MEN STOOD BY HIM: ANDL WHEN HE SAW THEM, HE RAN TO MEET THEM FROM THE TENT DOOR, AND BOWED HIMSELF TOWARD THE GROUND,OH# 3 AND SAID, MY LORD, IF NOW I HAVE FOUND FAVOUR IN THY SIGHT, PASS NOT% AWAY, I PRAY THEE, FROM THY SERVANT:SL# 4 LET A LITTLE WATER, I PRAY YOU, BE FETCHED, AND WASH YOUR FEET, AND REST YOURSELVES UNDER THE TREE:I# 5 AND I WILL FETCH A MORSEL OF BREAD, AND COMFORT YE YOUR HEARTS; AFTEREK THAT YE SHALL PASS ON: FOR THEREFORE ARE YE COME TO YOUR SERVANT. AND THEY SAID, SO DO, AS THOU HAST SAID.G# 6 AND ABRAHAM HASTENED INTO THE TENT UNTO SARAH, AND SAID, MAKE READYHG QUICKLY THREE MEASURES OF FINE MEAL, KNEAD IT, AND MAKE CAKES UPON THEF HEARTH.I# 7 AND ABRAHAM RAN UNTO THE HERD, AND FETCHT A CALF TENDER AND GOOD, ANDE5 GAVE IT UNTO A YOUNG MAN; AND HE HASTED TO DRESS IT. L# 8 AND HE TOOK BUTTER, AND MILK, AND THE CALF WHICH HE HAD DRESSED, AND SETG IT BEFORE THEM; AND HE STOOD BY THEM UNDER THE TREE, AND THEY DID EAT.RL# 9 AND THEY SAID UNTO HIM, WHERE IS SARAH THY WIFE? AND HE SAID, BEHOLD, IN THE TENT.L# 10 AND HE SAID, I WILL CERTAINLY RETURN UNTO THEE ACCORDING TO THE TIME OFJ LIFE; AND, LO, SARAH THY WIFE SHALL HAVE A SON. AND SARAH HEARD IT IN THE! TENT DOOR, WHICH WAS BEHIND HIM.AK# 11 NOW ABRAHAM AND SARAH WERE OLD AND WELL STRICKEN IN AGE; AND IT CEASEDT, TO BE WITH SARAH AFTER THE MANNER OF WOMEN.I# 12 THEREFORE SARAH LAUGHED WITHIN HERSELF, SAYING, AFTER I AM WAXED OLDN/ SHALL I HAVE PLEASURE, MY LORD BEING OLD ALSO?IM# 13 AND THE LORD SAID UNTO ABRAHAM, WHEREFORE DID SARAH LAUGH, SAYING, SHALLA* I OF A SURETY BEAR A CHILD, WHICH AM OLD?L# 14 IS ANY THING TOO HARD FOR THE LORD? AT THE TIME APPOINTED I WILL RETURNF UNTO THEE, ACCORDING TO THE TIME OF LIFE, AND SARAH SHALL HAVE A SON.I# 15 THEN SARAH DENIED, SAYING, I LAUGHED NOT; FOR SHE WAS AFRAID. AND HEW! SAID, NAY; BUT THOU DIDST LAUGH..J# 00_`&%D%5%T6%! !16 AND THE MEN ROSE UP FROM THENCE, AND LOOKED TOWARD SODOM: AND ABRAHAM) WENT WITH THEM TO BRING THEM ON THE WAY. H# 17 AND THE LORD SAID, SHALL I HIDE FROM ABRAHAM THAT THING WHICH I DO;K# 18 SEEING THAT ABRAHAM SHALL SURELY BECOME A GREAT AND MIGHTY NATION, ANDO6 ALL THE NATIONS OF THE EARTH SHALL BE BLESSED IN HIM?H# 19 FOR I KNOW HIM, THAT HE WILL COMMAND HIS CHILDREN AND HIS HOUSEHOLDF AFTER HIM, AND THEY SHALL KEEP THE WAY OF THE LORD, TO DO JUSTICE ANDL JUDGMENT; THAT THE LORD MAY BRING UPON ABRAHAM THAT WHICH HE HATH SPOKEN OF HIM.KK# 20 AND THE LORD SAID, BECAUSE THE CRY OF SODOM AND GOMORRAH IS GREAT, AND7$ BECAUSE THEIR SIN IS VERY GRIEVOUS;L# 21 I WILL GO DOWN NOW, AND SEE WHETHER THEY HAVE DONE ALTOGETHER ACCORDINGB TO THE CRY OF IT, WHICH IS COME UNTO ME; AND IF NOT, I WILL KNOW.K# 22 AND THE MEN TURNED THEIR FACES FROM THENCE, AND WENT TOWARD SODOM: BUTD# ABRAHAM STOOD YET BEFORE THE LORD.SJ# 23 AND ABRAHAM DREW NEAR, AND SAID, WILT THOU ALSO DESTROY THE RIGHTEOUS WITH THE WICKED?AJ# 24 PERADVENTURE THERE BE FIFTY RIGHTEOUS WITHIN THE CITY: WILT THOU ALSOJ DESTROY AND NOT SPARE THE PLACE FOR THE FIFTY RIGHTEOUS THAT ARE THEREIN?I# 25 THAT BE FAR FROM THEE TO DO AFTER THIS MANNER, TO SLAY THE RIGHTEOUSRM WITH THE WICKED: AND THAT THE RIGHTEOUS SHOULD BE AS THE WICKED, THAT BE FARA: FROM THEE: SHALL NOT THE JUDGE OF ALL THE EARTH DO RIGHT?K# 26 AND THE LORD SAID, IF I FIND IN SODOM FIFTY RIGHTEOUS WITHIN THE CITY, 1 THEN I WILL SPARE ALL THE PLACE FOR THEIR SAKES.TM# 27 AND ABRAHAM ANSWERED AND SAID, BEHOLD NOW, I HAVE TAKEN UPON ME TO SPEAKT, UNTO THE LORD, WHICH AM BUT DUST AND ASHES:I# 28 PERADVENTURE THERE SHALL LACK FIVE OF THE FIFTY RIGHTEOUS: WILT THOUAN DESTROY ALL THE CITY FOR LACK OF FIVE? AND HE SAID, IF I FIND THERE FORTY AND FIVE, I WILL NOT DESTROY IT.TK# 29 AND HE SPAKE UNTO HIM YET AGAIN, AND SAID, PERADVENTURE THERE SHALL BEDB FORTY FOUND THERE. AND HE SAID, I WILL NOT DO IT FOR FORTYS SAKE.J# 30 AND HE SAID UNTO HIM, OH LET NOT THE LORD BE ANGRY, AND I WILL SPEAK:K PERADVENTURE THERE SHALL THIRTY BE FOUND THERE. AND HE SAID, I WILL NOT DOC IT, IF I FIND THIRTY THERE.J# 31 AND HE SAID, BEHOLD NOW, I HAVE TAKEN UPON ME TO SPEAK UNTO THE LORD:H PERADVENTURE THERE SHALL BE TWENTY FOUND THERE. AND HE SAID, I WILL NOT DESTROY IT FOR TWENTYS SAKE.TM# 32 AND HE SAID, OH LET NOT THE LORD BE ANGRY, AND I WILL SPEAK YET BUT THISM ONCE: PERADVENTURE TEN SHALL BE FOUND THERE. AND HE SAID, I WILL NOT DESTROY  IT FOR TENS SAKE.E# 33 AND THE LORD WENT HIS WAY, AS SOON AS HE HAD LEFT COMMUNING WITHH. ABRAHAM: AND ABRAHAM RETURNED UNTO HIS PLACE. = CHAPTER 19 DJ# 1 AND THERE CAME TWO ANGELS TO SODOM AT EVEN; AND LOT SAT IN THE GATE OFK SODOM: AND LOT SEEING THEM ROSE UP TO MEET THEM; AND HE BOWED HIMSELF WITH  HIS FACE TOWARD THE GROUND;E# 2 AND HE SAID, BEHOLD NOW, MY LORDS, TURN IN, I PRAY YOU, INTO YOURLN SERVANTS HOUSE, AND TARRY ALL NIGHT, AND WASH YOUR FEET, AND YE SHALL RISE UPI EARLY, AND GO ON YOUR WAYS. AND THEY SAID, NAY; BUT WE WILL ABIDE IN THES STREET ALL NIGHT.G# 3 AND HE PRESSED UPON THEM GREATLY; AND THEY TURNED IN UNTO HIM , ANDEJ ENTERED INTO HIS HOUSE; AND HE MADE THEM A FEAST, AND DID BAKE UNLEAVENED BREAD, AND THEY DID EAT.II# 4 BUT BEFORE THEY LAY DOWN, THE MEN OF THE CITY, EVEN THE MEN OF SODOM,TI COMPASSED THE HOUSE ROUND, BOTH OLD AND YOUNG, ALL THE PEOPLE FROM EVERYO QUARTER:RM# 5 AND THEY CALLED UNTO LOT, AND SAID UNTO HIM, WHERE ARE THE MEN WHICH CAMERF IN TO THEE THIS NIGHT? BRING THEM OUT UNTO US, THAT WE MAY KNOW THEM.H# 6 AND LOT WENT OUT AT THE DOOR UNTO THEM, AND SHUT THE DOOR AFTER HIM,7# 7 AND SAID, I PRAY YOU, BRETHREN, DO NOT SO WICKEDLY.TM# 8 BEHOLD NOW, I HAVE TWO DAUGHTERS WHICH HAVE NOT KNOWN MAN; LET ME, I PRAYEN YOU, BRING THEM OUT UNTO YOU, AND DO YE TO THEM AS IS GOOD IN YOUR EYES: ONLYJ UNTO THESE MEN DO NOTHING; FOR THEREFORE CAME THEY UNDER THE SHADOW OF MY ROOF.K# 9 AND THEY SAID, STAND BACK. AND THEY SAID AGAIN, THIS ONE FELLOW CAME IN L TO SOJOURN, AND HE WILL NEEDS BE A JUDGE: N00_h&:%W<%X>%+%O-%TADATADATAOW WILL WE DEAL WORSE WITH THEE,L THAN WITH THEM. AND THEY PRESSED SORE UPON THE MAN, EVEN LOT, AND CAME NEAR TO BREAK THE DOOR.SM# 10 BUT THE MEN PUT FORTH THEIR HAND, AND PULLED LOT INTO THE HOUSE TO THEM,T AND SHUT TO THE DOOR.C# 11 AND THEY SMOTE THE MEN THAT WERE AT THE DOOR OF THE HOUSE WITHM BLINDNESS, BOTH SMALL AND GREAT: SO THAT THEY WEARIED THEMSELVES TO FIND THEO DOOR.K# 12 AND THE MEN SAID UNTO LOT, HAST THOU HERE ANY BESIDES? SON IN LAW, AND N THY SONS, AND THY DAUGHTERS, AND WHATSOEVER THOU HAST IN THE CITY, BRING THEM OUT OF THIS PLACE:RK# 13 FOR WE WILL DESTROY THIS PLACE, BECAUSE THE CRY OF THEM IS WAXEN GREATBF BEFORE THE FACE OF THE LORD; AND THE LORD HATH SENT US TO DESTROY IT.H# 14 AND LOT WENT OUT, AND SPAKE UNTO HIS SONS IN LAW, WHICH MARRIED HISN DAUGHTERS, AND SAID, UP, GET YOU OUT OF THIS PLACE; FOR THE LORD WILL DESTROYB THIS CITY. BUT HE SEEMED AS ONE THAT MOCKED UNTO HIS SONS IN LAW.M# 15 AND WHEN THE MORNING AROSE, THEN THE ANGELS HASTENED LOT, SAYING, ARISE,OL TAKE THY WIFE, AND THY TWO DAUGHTERS, WHICH ARE HERE; LEST THOU BE CONSUMED IN THE INIQUITY OF THE CITY.EI# 16 AND WHILE HE LINGERED, THE MEN LAID HOLD UPON HIS HAND, AND UPON THETI HAND OF HIS WIFE, AND UPON THE HAND OF HIS TWO DAUGHTERS; THE LORD BEING M MERCIFUL UNTO HIM: AND THEY BROUGHT HIM FORTH, AND SET HIM WITHOUT THE CITY.RJ# 17 AND IT CAME TO PASS, WHEN THEY HAD BROUGHT THEM FORTH ABROAD, THAT HEN SAID, ESCAPE FOR THY LIFE; LOOK NOT BEHIND THEE, NEITHER STAY THOU IN ALL THE6 PLAIN; ESCAPE TO THE MOUNTAIN, LEST THOU BE CONSUMED.1# 18 AND LOT SAID UNTO THEM, OH, NOT SO, MY LORD:II# 19 BEHOLD NOW, THY SERVANT HATH FOUND GRACE IN THY SIGHT, AND THOU HASTNM MAGNIFIED THY MERCY, WHICH THOU HAST SHEWED UNTO ME IN SAVING MY LIFE; AND IEB CANNOT ESCAPE TO THE MOUNTAIN, LEST SOME EVIL TAKE ME, AND I DIE:L# 20 BEHOLD NOW, THIS CITY IS NEAR TO FLEE UNTO, AND IT IS A LITTLE ONE: OH,I LET ME ESCAPE THITHER, (IS IT NOT A LITTLE ONE?) AND MY SOUL SHALL LIVE.EJ# 21 AND HE SAID UNTO HIM, SEE, I HAVE ACCEPTED THEE CONCERNING THIS THINGK ALSO, THAT I WILL NOT OVERTHROW THIS CITY, FOR THE WHICH THOU HAST SPOKEN.TK# 22 HASTE THEE, ESCAPE THITHER; FOR I CANNOT DO ANYTHING TILL THOU BE COMEY9 THITHER. THEREFORE THE NAME OF THE CITY WAS CALLED ZOAR.A# 23 THE SUN WAS RISEN UPON THE EARTH WHEN LOT ENTERED INTO ZOAR.I# 24 THEN THE LORD RAINED UPON SODOM AND UPON GOMORRAH BRIMSTONE AND FIRE, FROM THE LORD OUT OF HEAVEN;TB# 25 AND HE OVERTHREW THOSE CITIES, AND ALL THE PLAIN, AND ALL THE@ INHABITANTS OF THE CITIES, AND THAT WHICH GREW UPON THE GROUND.I# 26 BUT HIS WIFE LOOKED BACK FROM BEHIND HIM, AND SHE BECAME A PILLAR OFE SALT.H# 27 AND ABRAHAM GAT UP EARLY IN THE MORNING TO THE PLACE WHERE HE STOOD BEFORE THE LORD:HL# 28 AND HE LOOKED TOWARD SODOM AND GOMORRAH, AND TOWARD ALL THE LAND OF THEM PLAIN, AND BEHELD, AND, LO, THE SMOKE OF THE COUNTRY WENT UP AS THE SMOKE OFE A FURNACE.FJ# 29 AND IT CAME TO PASS, WHEN GOD DESTROYED THE CITIES OF THE PLAIN, THATM GOD REMEMBERED ABRAHAM, AND SENT LOT OUT OF THE MIDST OF THE OVERTHROW, WHENG0 HE OVERTHREW THE CITIES IN THE WHICH LOT DWELT.H# 30 AND LOT WENT UP OUT OF ZOAR, AND DWELT IN THE MOUNTAIN, AND HIS TWOL DAUGHTERS WITH HIM; FOR HE FEARED TO DWELL IN ZOAR: AND HE DWELT IN A CAVE, HE AND HIS TWO DAUGHTERS.M# 31 AND THE FIRSTBORN SAID UNTO THE YOUNGER, OUR FATHER IS OLD, AND THERE IS M NOT A MAN IN THE EARTH TO COME IN UNTO US AFTER THE MANNER OF ALL THE EARTH:GL# 32 COME, LET US MAKE OUR FATHER DRINK WINE, AND WE WILL LIE WITH HIM, THAT$ WE MAY PRESERVE SEED OF OUR FATHER.M# 33 AND THEY MADE THEIR FATHER DRINK WINE THAT NIGHT: AND THE FIRSTBORN WENTON IN, AND LAY WITH HER FATHER; AND HE PERCEIVED NOT WHEN SHE LAY DOWN, NOR WHEN SHE AROSE.LH# 34 AND IT CAME TO PASS ON THE MORROW, THAT THE FIRSTBORN SAID UNTO THEN YOUNGER, BEHOLD, I LAY YESTERNIGHT WITH MY FATHER: LET US MAKE HIM DRINK WINEM THIS NIGHT ALSO; AND GO THOU IN, AND LIE WITH HIM, THAT WE MAY PRESERVE SEED, OF OUR FATHER.FK# 35 AND THEY MADE THEIR FATHER DRINK WINE T00_p&%D%5%T6%! !HAT NIGHT ALSO: AND THE YOUNGERRN AROSE, AND LAY WITH HIM; AND HE PERCEIVED NOT WHEN SHE LAY DOWN, NOR WHEN SHE AROSE.D# 36 THUS WERE BOTH THE DAUGHTERS OF LOT WITH CHILD BY THEIR FATHER.M# 37 AND THE FIRST BORN BARE A SON, AND CALLED HIS NAME MOAB: THE SAME IS THEO& FATHER OF THE MOABITES UNTO THIS DAY.K# 38 AND THE YOUNGER, SHE ALSO BARE A SON, AND CALLED HIS NAME BENAMMI: THEN; SAME IS THE FATHER OF THE CHILDREN OF AMMON UNTO THIS DAY.O = CHAPTER 20 K# 1 AND ABRAHAM JOURNEYED FROM THENCE TOWARD THE SOUTH COUNTRY, AND DWELLED1 BETWEEN KADESH AND SHUR, AND SOJOURNED IN GERAR. L# 2 AND ABRAHAM SAID OF SARAH HIS WIFE, SHE IS MY SISTER: AND ABIMELECH KING OF GERAR SENT, AND TOOK SARAH.7K# 3 BUT GOD CAME TO ABIMELECH IN A DREAM BY NIGHT, AND SAID TO HIM, BEHOLD,FK THOU ART BUT A DEAD MAN, FOR THE WOMAN WHICH THOU HAST TAKEN; FOR SHE IS AO MANS WIFE. J# 4 BUT ABIMELECH HAD NOT COME NEAR HER: AND HE SAID, LORD, WILT THOU SLAY ALSO A RIGHTEOUS NATION? M# 5 SAID HE NOT UNTO ME, SHE IS MY SISTER? AND SHE, EVEN SHE HERSELF SAID, HETM IS MY BROTHER: IN THE INTEGRITY OF MY HEART AND INNOCENCY OF MY HANDS HAVE II DONE THIS.SM# 6 AND GOD SAID UNTO HIM IN A DREAM, YEA, I KNOW THAT THOU DIDST THIS IN THEAJ INTEGRITY OF THY HEART; FOR I ALSO WITHHELD THEE FROM SINNING AGAINST ME:, THEREFORE SUFFERED I THEE NOT TO TOUCH HER.M# 7 NOW THEREFORE RESTORE THE MAN HIS WIFE; FOR HE IS A PROPHET, AND HE SHALLHK PRAY FOR THEE, AND THOU SHALT LIVE: AND IF THOU RESTORE HER NOT, KNOW THOUO: THAT THOU SHALT SURELY DIE, THOU, AND ALL THAT ARE THINE.E# 8 THEREFORE ABIMELECH ROSE EARLY IN THE MORNING, AND CALLED ALL HISHI SERVANTS, AND TOLD ALL THESE THINGS IN THEIR EARS: AND THE MEN WERE SORET AFRAID.I# 9 THEN ABIMELECH CALLED ABRAHAM, AND SAID UNTO HIM, WHAT HAST THOU DONEIL UNTO US? AND WHAT HAVE I OFFENDED THEE, THAT THOU HAST BROUGHT ON ME AND ONJ MY KINGDOM A GREAT SIN? THOU HAST DONE DEEDS UNTO ME THAT OUGHT NOT TO BE DONE.K# 10 AND ABIMELECH SAID UNTO ABRAHAM, WHAT SAWEST THOU, THAT THOU HAST DONER THIS THING?J# 11 AND ABRAHAM SAID, BECAUSE I THOUGHT, SURELY THE FEAR OF GOD IS NOT IN5 THIS PLACE; AND THEY WILL SLAY ME FOR MY WIFES SAKE.NK# 12 AND YET INDEED SHE IS MY SISTER; SHE IS THE DAUGHTER OF MY FATHER, BUT 7 NOT THE DAUGHTER OF MY MOTHER; AND SHE BECAME MY WIFE.SM# 13 AND IT CAME TO PASS, WHEN GOD CAUSED ME TO WANDER FROM MY FATHERS HOUSE,OM THAT I SAID UNTO HER, THIS IS THY KINDNESS WHICH THOU SHALT SHEW UNTO ME; ATA@ EVERY PLACE WHITHER WE SHALL COME, SAY OF ME, HE IS MY BROTHER.L# 14 AND ABIMELECH TOOK SHEEP, AND OXEN, AND MENSERVANTS, AND WOMENSERVANTS,= AND GAVE THEM UNTO ABRAHAM, AND RESTORED HIM SARAH HIS WIFE.EG# 15 AND ABIMELECH SAID, BEHOLD, MY LAND IS BEFORE THEE: DWELL WHERE IT  PLEASETH THEE.TH# 16 AND UNTO SARAH HE SAID, BEHOLD, I HAVE GIVEN THY BROTHER A THOUSANDN PIECES OF SILVER: BEHOLD, HE IS TO THEE A COVERING OF THE EYES, UNTO ALL THAT: ARE WITH THEE, AND WITH ALL OTHER: THUS SHE WAS REPROVED.L# 17 SO ABRAHAM PRAYED UNTO GOD: AND GOD HEALED ABIMELECH, AND HIS WIFE, AND* HIS MAIDSERVANTS; AND THEY BARE CHILDREN.M# 18 FOR THE LORD HAD FAST CLOSED UP ALL THE WOMBS OF THE HOUSE OF ABIMELECH,I BECAUSE OF SARAH ABRAHAMS WIFE. = CHAPTER 21 M# 1 AND THE LORD VISITED SARAH AS HE HAD SAID, AND THE LORD DID UNTO SARAH ASH HE HAD SPOKEN. J# 2 FOR SARAH CONCEIVED, AND BARE ABRAHAM A SON IN HIS OLD AGE, AT THE SET% TIME OF WHICH GOD HAD SPOKEN TO HIM.HM# 3 AND ABRAHAM CALLED THE NAME OF HIS SON THAT WAS BORN UNTO HIM, WHOM SARAH: BARE TO HIM, ISAAC.J# 4 AND ABRAHAM CIRCUMCISED HIS SON ISAAC BEING EIGHT DAYS OLD, AS GOD HAD COMMANDED HIM.TJ# 5 AND ABRAHAM WAS AN HUNDRED YEARS OLD, WHEN HIS SON ISAAC WAS BORN UNTO HIM.FI# 6 AND SARAH SAID, GOD HATH MADE ME TO LAUGH, SO THAT ALL THAT HEAR WILLL LAUGH WITH ME.HJ# 7 AND SHE SAID, WHO WOULD HAVE SAID UNTO ABRAHAM, THAT SARAH SHOULD HAVE? GIVEN CHILDREN SUCK? FOR I HAVE BORN HIM A SON IN HIS OLD AGE. J# 8 AND THE CHILD GREW, AND WAS WEANED: AND ABRAHAM MADE A GREAT FEAST THE SAME DAY THAT ISAAC WAS WEA00_x&:%W<%X>%+%O-%TADATADATANED.H# 9 AND SARAH SAW THE SON OF HAGAR THE EGYPTIAN, WHICH SHE HAD BORN UNTO ABRAHAM, MOCKING.J# 10 WHEREFORE SHE SAID UNTO ABRAHAM, CAST OUT THIS BONDWOMAN AND HER SON:N FOR THE SON OF THIS BONDWOMAN SHALL NOT BE HEIR WITH MY SON, EVEN WITH ISAAC.J# 11 AND THE THING WAS VERY GRIEVOUS IN ABRAHAMS SIGHT BECAUSE OF HIS SON.K# 12 AND GOD SAID UNTO ABRAHAM, LET IT NOT BE GRIEVOUS IN THY SIGHT BECAUSEK OF THE LAD, AND BECAUSE OF THY BONDWOMAN; IN ALL THAT SARAH HATH SAID UNTOSE THEE, HEARKEN UNTO HER VOICE; FOR IN ISAAC SHALL THY SEED BE CALLED.EM# 13 AND ALSO OF THE SON OF THE BONDWOMAN WILL I MAKE A NATION, BECAUSE HE ISN THY SEED.K# 14 AND ABRAHAM ROSE UP EARLY IN THE MORNING, AND TOOK BREAD, AND A BOTTLETM OF WATER, AND GAVE IT UNTO HAGAR, PUTTING IT ON HER SHOULDER, AND THE CHILD, G AND SENT HER AWAY: AND SHE DEPARTED, AND WANDERED IN THE WILDERNESS OFT BEERSHEBA.OL# 15 AND THE WATER WAS SPENT IN THE BOTTLE, AND SHE CAST THE CHILD UNDER ONE OF THE SHRUBS.DJ# 16 AND SHE WENT, AND SAT HER DOWN OVER AGAINST HIM A GOOD WAY OFF, AS ITN WERE A BOW SHOT: FOR SHE SAID, LET ME NOT SEE THE DEATH OF THE CHILD. AND SHE7 SAT OVER AGAINST HIM, AND LIFT UP HER VOICE, AND WEPT.NM# 17 AND GOD HEARD THE VOICE OF THE LAD; AND THE ANGEL OF GOD CALLED TO HAGARIM OUT OF HEAVEN, AND SAID UNTO HER, WHAT AILETH THEE, HAGAR? FEAR NOT; FOR GODA- HATH HEARD THE VOICE OF THE LAD WHERE HE IS.5L# 18 ARISE, LIFT UP THE LAD, AND HOLD HIM IN THINE HAND; FOR I WILL MAKE HIM A GREAT NATION.L# 19 AND GOD OPENED HER EYES, AND SHE SAW A WELL OF WATER; AND SHE WENT, AND6 FILLED THE BOTTLE WITH WATER, AND GAVE THE LAD DRINK.L# 20 AND GOD WAS WITH THE LAD; AND HE GREW, AND DWELT IN THE WILDERNESS, AND BECAME AN ARCHER.L# 21 AND HE DWELT IN THE WILDERNESS OF PARAN: AND HIS MOTHER TOOK HIM A WIFE OUT OF THE LAND OF EGYPT.K# 22 AND IT CAME TO PASS AT THAT TIME, THAT ABIMELECH AND PHICHOL THE CHIEF5M CAPTAIN OF HIS HOST SPAKE UNTO ABRAHAM, SAYING, GOD IS WITH THEE IN ALL THAT THOU DOEST:L# 23 NOW THEREFORE SWEAR UNTO ME HERE BY GOD THAT THOU WILT NOT DEAL FALSELYN WITH ME, NOR WITH MY SON, NOR WITH MY SONS SON: BUT ACCORDING TO THE KINDNESSK THAT I HAVE DONE UNTO THEE, THOU SHALT DO UNTO ME, AND TO THE LAND WHEREIN THOU HAST SOJOURNED.E$# 24 AND ABRAHAM SAID, I WILL SWEAR.E# 25 AND ABRAHAM REPROVED ABIMELECH BECAUSE OF A WELL OF WATER, WHICH . ABIMELECHS SERVANTS HAD VIOLENTLY TAKEN AWAY.J# 26 AND ABIMELECH SAID, I WOT NOT WHO HATH DONE THIS THING; NEITHER DIDST5 THOU TELL ME, NEITHER YET HEARD I OF IT, BUT TO DAY.RL# 27 AND ABRAHAM TOOK SHEEP AND OXEN, AND GAVE THEM UNTO ABIMELECH; AND BOTH OF THEM MADE A COVENANT.T@# 28 AND ABRAHAM SET SEVEN EWE LAMBS OF THE FLOCK BY THEMSELVES.K# 29 AND ABIMELECH SAID UNTO ABRAHAM, WHAT MEAN THESE SEVEN EWE LAMBS WHICHW THOU HAST SET BY THEMSELVES?PL# 30 AND HE SAID, FOR THESE SEVEN EWE LAMBS SHALT THOU TAKE OF MY HAND, THAT= THEY MAY BE A WITNESS UNTO ME, THAT I HAVE DIGGED THIS WELL.TL# 31 WHEREFORE HE CALLED THAT PLACE BEERSHEBA; BECAUSE THERE THEY SWARE BOTH OF THEM.H# 32 THUS THEY MADE A COVENANT AT BEERSHEBA: THEN ABIMELECH ROSE UP, ANDN PHICHOL THE CHIEF CAPTAIN OF HIS HOST, AND THEY RETURNED INTO THE LAND OF THE PHILISTINES..K# 33 AND ABRAHAM PLANTED A GROVE IN BEERSHEBA, AND CALLED THERE ON THE NAMEW" OF THE LORD, THE EVERLASTING GOD.=# 34 AND ABRAHAM SOJOURNED IN THE PHILISTINES LAND MANY DAYS. = CHAPTER 22 EK# 1 AND IT CAME TO PASS AFTER THESE THINGS, THAT GOD DID TEMPT ABRAHAM, AND 8 SAID UNTO HIM, ABRAHAM: AND HE SAID, BEHOLD, HERE I AM.J# 2 AND HE SAID, TAKE NOW THY SON, THINE ONLY SON ISAAC, WHOM THOU LOVEST,F AND GET THEE INTO THE LAND OF MORIAH; AND OFFER HIM THERE FOR A BURNT> OFFERING UPON ONE OF THE MOUNTAINS WHICH I WILL TELL THEE OF.K# 3 AND ABRAHAM ROSE UP EARLY IN THE MORNING, AND SADDLED HIS ASS, AND TOOKNM TWO OF HIS YOUNG MEN WITH HIM, AND ISAAC HIS SON, AND CLAVE THE WOOD FOR THEEK BURNT OFFERING, AND ROSE UP, AND WENT UNTO THE PLACE OF WHICH GOD HAD TOLDM HIM.L# 4 THEN ON THE THIRD DAY ABRAHAM LIFTED UP HIS EYES, 00_&%D%5%T6%! !AND SAW THE PLACE AFAR OFF.HJ# 5 AND ABRAHAM SAID UNTO HIS YOUNG MEN, ABIDE YE HERE WITH THE ASS; AND I? AND THE LAD WILL GO YONDER AND WORSHIP, AND COME AGAIN TO YOU. K# 6 AND ABRAHAM TOOK THE WOOD OF THE BURNT OFFERING, AND LAID IT UPON ISAACEN HIS SON; AND HE TOOK THE FIRE IN HIS HAND, AND A KNIFE; AND THEY WENT BOTH OF THEM TOGETHER.CH# 7 AND ISAAC SPAKE UNTO ABRAHAM HIS FATHER, AND SAID, MY FATHER: AND HEN SAID, HERE AM I, MY SON. AND HE SAID, BEHOLD THE FIRE AND THE WOOD: BUT WHERE" IS THE LAMB FOR A BURNT OFFERING?I# 8 AND ABRAHAM SAID, MY SON, GOD WILL PROVIDE HIMSELF A LAMB FOR A BURNTA. OFFERING: SO THEY WENT BOTH OF THEM TOGETHER.K# 9 AND THEY CAME TO THE PLACE WHICH GOD HAD TOLD HIM OF; AND ABRAHAM BUILTAN AN ALTAR THERE, AND LAID THE WOOD IN ORDER, AND BOUND ISAAC HIS SON, AND LAID HIM ON THE ALTAR UPON THE WOOD.I# 10 AND ABRAHAM STRETCHED FORTH HIS HAND, AND TOOK THE KNIFE TO SLAY HISN SON.SG# 11 AND THE ANGEL OF THE LORD CALLED UNTO HIM OUT OF HEAVEN, AND SAID,E* ABRAHAM, ABRAHAM: AND HE SAID, HERE AM I.L# 12 AND HE SAID, LAY NOT THINE HAND UPON THE LAD, NEITHER DO THOU ANY THINGN UNTO HIM: FOR NOW I KNOW THAT THOU FEAREST GOD, SEEING THOU HAST NOT WITHHELD! THY SON, THINE ONLY SON FROM ME.LL# 13 AND ABRAHAM LIFTED UP HIS EYES, AND LOOKED, AND BEHOLD BEHIND HIM A RAMI CAUGHT IN A THICKET BY HIS HORNS: AND ABRAHAM WENT AND TOOK THE RAM, ANDS= OFFERED HIM UP FOR A BURNT OFFERING IN THE STEAD OF HIS SON.GM# 14 AND ABRAHAM CALLED THE NAME OF THAT PLACE JEHOVAHJIREH: AS IT IS SAID TOD5 THIS DAY, IN THE MOUNT OF THE LORD IT SHALL BE SEEN.AK# 15 AND THE ANGEL OF THE LORD CALLED UNTO ABRAHAM OUT OF HEAVEN THE SECONDO TIME,L# 16 AND SAID, BY MYSELF HAVE I SWORN, SAITH THE LORD, FOR BECAUSE THOU HAST@ DONE THIS THING, AND HAST NOT WITHHELD THY SON, THINE ONLY SON:K# 17 THAT IN BLESSING I WILL BLESS THEE, AND IN MULTIPLYING I WILL MULTIPLY K THY SEED AS THE STARS OF THE HEAVEN, AND AS THE SAND WHICH IS UPON THE SEAD; SHORE; AND THY SEED SHALL POSSESS THE GATE OF HIS ENEMIES; K# 18 AND IN THY SEED SHALL ALL THE NATIONS OF THE EARTH BE BLESSED; BECAUSEE THOU HAST OBEYED MY VOICE.OF# 19 SO ABRAHAM RETURNED UNTO HIS YOUNG MEN, AND THEY ROSE UP AND WENT7 TOGETHER TO BEERSHEBA; AND ABRAHAM DWELT AT BEERSHEBA.HF# 20 AND IT CAME TO PASS AFTER THESE THINGS, THAT IT WAS TOLD ABRAHAM,L SAYING, BEHOLD, MILCAH, SHE HATH ALSO BORN CHILDREN UNTO THY BROTHER NAHOR;K# 21 HUZ HIS FIRSTBORN, AND BUZ HIS BROTHER, AND KEMUEL THE FATHER OF ARAM,HA# 22 AND CHESED, AND HAZO, AND PILDASH, AND JIDLAPH, AND BETHUEL.DE# 23 AND BETHUEL BEGAT REBEKAH: THESE EIGHT MILCAH DID BEAR TO NAHOR,E ABRAHAMS BROTHER.G# 24 AND HIS CONCUBINE, WHOSE NAME WAS REUMAH, SHE BARE ALSO TEBAH, ANDT! GAHAM, AND THAHASH, AND MAACHAH. = CHAPTER 23 K# 1 AND SARAH WAS AN HUNDRED AND SEVEN AND TWENTY YEARS OLD: THESE WERE THEN YEARS OF THE LIFE OF SARAH.L# 2 AND SARAH DIED IN KIRJATHARBA; THE SAME IS HEBRON IN THE LAND OF CANAAN:: AND ABRAHAM CAME TO MOURN FOR SARAH, AND TO WEEP FOR HER.I# 3 AND ABRAHAM STOOD UP FROM BEFORE HIS DEAD, AND SPAKE UNTO THE SONS OFB HETH, SAYING,G# 4 I AM A STRANGER AND A SOJOURNER WITH YOU: GIVE ME A POSSESSION OF A @ BURYINGPLACE WITH YOU, THAT I MAY BURY MY DEAD OUT OF MY SIGHT.?# 5 AND THE CHILDREN OF HETH ANSWERED ABRAHAM, SAYING UNTO HIM,AM# 6 HEAR US, MY LORD: THOU ART A MIGHTY PRINCE AMONG US: IN THE CHOICE OF OUR M SEPULCHRES BURY THY DEAD; NONE OF US SHALL WITHHOLD FROM THEE HIS SEPULCHRE,D$ BUT THAT THOU MAYEST BURY THY DEAD.K# 7 AND ABRAHAM STOOD UP, AND BOWED HIMSELF TO THE PEOPLE OF THE LAND, EVENT TO THE CHILDREN OF HETH.NL# 8 AND HE COMMUNED WITH THEM, SAYING, IF IT BE YOUR MIND THAT I SHOULD BURYJ MY DEAD OUT OF MY SIGHT; HEAR ME, AND INTREAT FOR ME TO EPHRON THE SON OF ZOHAR,NM# 9 THAT HE MAY GIVE ME THE CAVE OF MACHPELAH, WHICH HE HATH, WHICH IS IN THEMM END OF HIS FIELD; FOR AS MUCH MONEY AS IT IS WORTH HE SHALL GIVE IT ME FOR AF* POSSESSION OF A BURYINGPLACE AMONGST YOU.H# 10 AND EPHRON DWELT AMONG THE CHILDREN OF HETH: AND EPHRON THE HITTITEK00_&:%W<%X>%+%O-%TADATADATA ANSWERED ABRAHAM IN THE AUDIENCE OF THE CHILDREN OF HETH, EVEN OF ALL THATN) WENT IN AT THE GATE OF HIS CITY, SAYING,OG# 11 NAY, MY LORD, HEAR ME: THE FIELD GIVE I THEE, AND THE CAVE THAT ISTL THEREIN, I GIVE IT THEE; IN THE PRESENCE OF THE SONS OF MY PEOPLE GIVE I IT THEE: BURY THY DEAD. B# 12 AND ABRAHAM BOWED DOWN HIMSELF BEFORE THE PEOPLE OF THE LAND.H# 13 AND HE SPAKE UNTO EPHRON IN THE AUDIENCE OF THE PEOPLE OF THE LAND,I SAYING, BUT IF THOU WILT GIVE IT, I PRAY THEE, HEAR ME: I WILL GIVE THEEAC MONEY FOR THE FIELD; TAKE IT OF ME, AND I WILL BURY MY DEAD THERE.T2# 14 AND EPHRON ANSWERED ABRAHAM, SAYING UNTO HIM,H# 15 MY LORD, HEARKEN UNTO ME: THE LAND IS WORTH FOUR HUNDRED SHEKELS OFC SILVER; WHAT IS THAT BETWIXT ME AND THEE? BURY THEREFORE THY DEAD. I# 16 AND ABRAHAM HEARKENED UNTO EPHRON; AND ABRAHAM WEIGHED TO EPHRON THEEM SILVER, WHICH HE HAD NAMED IN THE AUDIENCE OF THE SONS OF HETH, FOUR HUNDREDL4 SHEKELS OF SILVER, CURRENT MONEY WITH THE MERCHANT.L# 17 AND THE FIELD OF EPHRON WHICH WAS IN MACHPELAH, WHICH WAS BEFORE MAMRE,N THE FIELD, AND THE CAVE WHICH WAS THEREIN, AND ALL THE TREES THAT WERE IN THE@ FIELD, THAT WERE IN ALL THE BORDERS ROUND ABOUT, WERE MADE SUREK# 18 UNTO ABRAHAM FOR A POSSESSION IN THE PRESENCE OF THE CHILDREN OF HETH, 1 BEFORE ALL THAT WENT IN AT THE GATE OF HIS CITY.AK# 19 AND AFTER THIS, ABRAHAM BURIED SARAH HIS WIFE IN THE CAVE OF THE FIELDSE OF MACHPELAH BEFORE MAMRE: THE SAME IS HEBRON IN THE LAND OF CANAAN.MM# 20 AND THE FIELD, AND THE CAVE THAT IS THEREIN, WERE MADE SURE UNTO ABRAHAM 8 FOR A POSSESSION OF A BURYINGPLACE BY THE SONS OF HETH. = CHAPTER 24 TK# 1 AND ABRAHAM WAS OLD, AND WELL STRICKEN IN AGE: AND THE LORD HAD BLESSEDE ABRAHAM IN ALL THINGS. J# 2 AND ABRAHAM SAID UNTO HIS ELDEST SERVANT OF HIS HOUSE, THAT RULED OVER< ALL THAT HE HAD, PUT, I PRAY THEE, THY HAND UNDER MY THIGH:M# 3 AND I WILL MAKE THEE SWEAR BY THE LORD, THE GOD OF HEAVEN, AND THE GOD OFAK THE EARTH, THAT THOU SHALT NOT TAKE A WIFE UNTO MY SON OF THE DAUGHTERS OFS$ THE CANAANITES, AMONG WHOM I DWELL:I# 4 BUT THOU SHALT GO UNTO MY COUNTRY, AND TO MY KINDRED, AND TAKE A WIFE UNTO MY SON ISAAC.LM# 5 AND THE SERVANT SAID UNTO HIM, PERADVENTURE THE WOMAN WILL NOT BE WILLING L TO FOLLOW ME UNTO THIS LAND: MUST I NEEDS BRING THY SON AGAIN UNTO THE LAND FROM WHENCE THOU CAMEST?AM# 6 AND ABRAHAM SAID UNTO HIM, BEWARE THOU THAT THOU BRING NOT MY SON THITHERH AGAIN.HM# 7 THE LORD GOD OF HEAVEN, WHICH TOOK ME FROM MY FATHERS HOUSE, AND FROM THE M LAND OF MY KINDRED, AND WHICH SPAKE UNTO ME, AND THAT SWARE UNTO ME, SAYING,GN UNTO THY SEED WILL I GIVE THIS LAND; HE SHALL SEND HIS ANGEL BEFORE THEE, AND0 THOU SHALT TAKE A WIFE UNTO MY SON FROM THENCE.K# 8 AND IF THE WOMAN WILL NOT BE WILLING TO FOLLOW THEE, THEN THOU SHALT BET> CLEAR FROM THIS MY OATH: ONLY BRING NOT MY SON THITHER AGAIN.K# 9 AND THE SERVANT PUT HIS HAND UNDER THE THIGH OF ABRAHAM HIS MASTER, ANDN% SWARE TO HIM CONCERNING THAT MATTER.OE# 10 AND THE SERVANT TOOK TEN CAMELS OF THE CAMELS OF HIS MASTER, ANDIN DEPARTED; FOR ALL THE GOODS OF HIS MASTER WERE IN HIS HAND: AND HE AROSE, AND- WENT TO MESOPOTAMIA, UNTO THE CITY OF NAHOR.AM# 11 AND HE MADE HIS CAMELS TO KNEEL DOWN WITHOUT THE CITY BY A WELL OF WATER K AT THE TIME OF THE EVENING, EVEN THE TIME THAT WOMEN GO OUT TO DRAW WATER. K# 12 AND HE SAID O LORD GOD OF MY MASTER ABRAHAM, I PRAY THEE, SEND ME GOODT: SPEED THIS DAY, AND SHEW KINDNESS UNTO MY MASTER ABRAHAM.L# 13 BEHOLD, I STAND HERE BY THE WELL OF WATER; AND THE DAUGHTERS OF THE MEN$ OF THE CITY COME OUT TO DRAW WATER:K# 14 AND LET IT COME TO PASS, THAT THE DAMSEL TO WHOM I SHALL SAY, LET DOWNNL THY PITCHER, I PRAY THEE, THAT I MAY DRINK; AND SHE SHALL SAY, DRINK, AND IN WILL GIVE THY CAMELS DRINK ALSO: LET THE SAME BE SHE THAT THOU HAST APPOINTEDF FOR THY SERVANT ISAAC; AND THEREBY SHALL I KNOW THAT THOU HAST SHEWED KINDNESS UNTO MY MASTER.TL# 15 AND IT CAME TO PASS, BEFORE HE HAD DONE SPEAKING, THAT, BEHOLD, REBEKAHN CAME OUT, WHO WAS BORN TO BETHUEL, SON OF MILCAH, THE WIF00_&%D%5%T6%! !E OF NAHOR, ABRAHAMS- BROTHER, WITH HER PITCHER UPON HER SHOULDER.SM# 16 AND THE DAMSEL WAS VERY FAIR TO LOOK UPON, A VIRGIN, NEITHER HAD ANY MANAK KNOWN HER: AND SHE WENT DOWN TO THE WELL, AND FILLED HER PITCHER, AND CAMEL UP.L# 17 AND THE SERVANT RAN TO MEET HER, AND SAID, LET ME, I PRAY THEE, DRINK A LITTLE WATER OF THY PITCHER.HK# 18 AND SHE SAID, DRINK, MY LORD: AND SHE HASTED, AND LET DOWN HER PITCHERE# UPON HER HAND, AND GAVE HIM DRINK.ML# 19 AND WHEN SHE HAD DONE GIVING HIM DRINK, SHE SAID, I WILL DRAW WATER FOR0 THY CAMELS ALSO, UNTIL THEY HAVE DONE DRINKING.K# 20 AND SHE HASTED, AND EMPTIED HER PITCHER INTO THE TROUGH, AND RAN AGAINK: UNTO THE WELL TO DRAW WATER, AND DREW FOR ALL HIS CAMELS.M# 21 AND THE MAN WONDERING AT HER HELD HIS PEACE, TO WIT WHETHER THE LORD HAD $ MADE HIS JOURNEY PROSPEROUS OR NOT.L# 22 AND IT CAME TO PASS, AS THE CAMELS HAD DONE DRINKING, THAT THE MAN TOOKM A GOLDEN EARRING OF HALF A SHEKEL WEIGHT, AND TWO BRACELETS FOR HER HANDS OFG TEN SHEKELS WEIGHT OF GOLD;K# 23 AND SAID, WHOSE DAUGHTER ART THOU? TELL ME, I PRAY THEE: IS THERE ROOMD) IN THY FATHERS HOUSE FOR US TO LODGE IN?HK# 24 AND SHE SAID UNTO HIM, I AM THE DAUGHTER OF BETHUEL THE SON OF MILCAH,C WHICH SHE BARE UNTO NAHOR.EM# 25 SHE SAID MOREOVER UNTO HIM, WE HAVE BOTH STRAW AND PROVENDER ENOUGH, ANDS ROOM TO LODGE IN.># 26 AND THE MAN BOWED DOWN HIS HEAD, AND WORSHIPPED THE LORD.L# 27 AND HE SAID, BLESSED BE THE LORD GOD OF MY MASTER ABRAHAM, WHO HATH NOTM LEFT DESTITUTE MY MASTER OF HIS MERCY AND HIS TRUTH: I BEING IN THE WAY, THEU1 LORD LED ME TO THE HOUSE OF MY MASTERS BRETHREN.HI# 28 AND THE DAMSEL RAN, AND TOLD THEM OF HER MOTHERS HOUSE THESE THINGS.EI# 29 AND REBEKAH HAD A BROTHER, AND HIS NAME WAS LABAN: AND LABAN RAN OUTI UNTO THE MAN, UNTO THE WELL.TH# 30 AND IT CAME TO PASS, WHEN HE SAW THE EARRING AND BRACELETS UPON HISJ SISTERS HANDS, AND WHEN HE HEARD THE WORDS OF REBEKAH HIS SISTER, SAYING,M THUS SPAKE THE MAN UNTO ME; THAT HE CAME UNTO THE MAN; AND, BEHOLD, HE STOODS BY THE CAMELS AT THE WELL. L# 31 AND HE SAID, COME IN, THOU BLESSED OF THE LORD; WHEREFORE STANDEST THOUA WITHOUT? FOR I HAVE PREPARED THE HOUSE, AND ROOM FOR THE CAMELS.J# 32 AND THE MAN CAME INTO THE HOUSE: AND HE UNGIRDED HIS CAMELS, AND GAVEM STRAW AND PROVENDER FOR THE CAMELS, AND WATER TO WASH HIS FEET, AND THE MENSN FEET THAT WERE WITH HIM.SK# 33 AND THERE WAS SET MEAT BEFORE HIM TO EAT: BUT HE SAID, I WILL NOT EAT,U6 UNTIL I HAVE TOLD MINE ERRAND. AND HE SAID, SPEAK ON.(# 34 AND HE SAID, I AM ABRAHAMS SERVANT.M# 35 AND THE LORD HATH BLESSED MY MASTER GREATLY; AND HE IS BECOME GREAT: AND L HE HATH GIVEN HIM FLOCKS, AND HERDS, AND SILVER, AND GOLD, AND MENSERVANTS,) AND MAIDSERVANTS, AND CAMELS, AND ASSES.GL# 36 AND SARAH MY MASTERS WIFE BARE A SON TO MY MASTER WHEN SHE WAS OLD: AND) UNTO HIM HATH HE GIVEN ALL THAT HE HATH.RJ# 37 AND MY MASTER MADE ME SWEAR, SAYING, THOU SHALT NOT TAKE A WIFE TO MY? SON OF THE DAUGHTERS OF THE CANAANITES, IN WHOSE LAND I DWELL:KK# 38 BUT THOU SHALT GO UNTO MY FATHERS HOUSE, AND TO MY KINDRED, AND TAKE AD WIFE UNTO MY SON.J# 39 AND I SAID UNTO MY MASTER, PERADVENTURE THE WOMAN WILL NOT FOLLOW ME.K# 40 AND HE SAID UNTO ME, THE LORD, BEFORE WHOM I WALK, WILL SEND HIS ANGEL L WITH THEE, AND PROSPER THY WAY; AND THOU SHALT TAKE A WIFE FOR MY SON OF MY" KINDRED, AND OF MY FATHERS HOUSE:G# 41 THEN SHALT THOU BE CLEAR FROM THIS MY OATH, WHEN THOU COMEST TO MYEJ KINDRED; AND IF THEY GIVE NOT THEE ONE, THOU SHALT BE CLEAR FROM MY OATH.I# 42 AND I CAME THIS DAY UNTO THE WELL, AND SAID, O LORD GOD OF MY MASTER3 ABRAHAM, IF NOW THOU DO PROSPER MY WAY WHICH I GO:EJ# 43 BEHOLD, I STAND BY THE WELL OF WATER; AND IT SHALL COME TO PASS, THATN WHEN THE VIRGIN COMETH FORTH TO DRAW WATER, AND I SAY TO HER, GIVE ME, I PRAY. THEE, A LITTLE WATER OF THY PITCHER TO DRINK;M# 44 AND SHE SAY TO ME, BOTH DRINK THOU, AND I WILL ALSO DRAW FOR THY CAMELS:WJ LET THE SAME BE THE WOMAN WHOM THE LORD HATH APPOINTED OUT FOR MY MASTERS SON.RM# 45 AND BEFORE I HAD DONE SPE00_&:%W<%X>%+%O-%TADATADATAAKING IN MINE HEART, BEHOLD, REBEKAH CAME FORTH L WITH HER PITCHER ON HER SHOULDER; AND SHE WENT DOWN UNTO THE WELL, AND DREW7 WATER: AND I SAID UNTO HER, LET ME DRINK, I PRAY THEE. H# 46 AND SHE MADE HASTE, AND LET DOWN HER PITCHER FROM HER SHOULDER, ANDM SAID, DRINK, AND I WILL GIVE THY CAMELS DRINK ALSO: SO I DRANK, AND SHE MADE  THE CAMELS DRINK ALSO.IJ# 47 AND I ASKED HER, AND SAID, WHOSE DAUGHTER ART THOU? AND SHE SAID, THEJ DAUGHTER OF BETHUEL, NAHORS SON, WHOM MILCAH BARE UNTO HIM: AND I PUT THE9 EARRING UPON HER FACE, AND THE BRACELETS UPON HER HANDS.CL# 48 AND I BOWED DOWN MY HEAD, AND WORSHIPPED THE LORD, AND BLESSED THE LORDG GOD OF MY MASTER ABRAHAM, WHICH HAD LED ME IN THE RIGHT WAY TO TAKE MYL( MASTERS BROTHERS DAUGHTER UNTO HIS SON.M# 49 AND NOW IF YE WILL DEAL KINDLY AND TRULY WITH MY MASTER, TELL ME: AND IF A NOT, TELL ME; THAT I MAY TURN TO THE RIGHT HAND, OR TO THE LEFT.AL# 50 THEN LABAN AND BETHUEL ANSWERED AND SAID, THE THING PROCEEDETH FROM THE- LORD: WE CANNOT SPEAK UNTO THEE BAD OR GOOD. I# 51 BEHOLD, REBEKAH IS BEFORE THEE, TAKE HER, AND GO, AND LET HER BE THY,, MASTERS SONS WIFE, AS THE LORD HATH SPOKEN.K# 52 AND IT CAME TO PASS, THAT, WHEN ABRAHAMS SERVANT HEARD THEIR WORDS, HEM2 WORSHIPPED THE LORD, BOWING HIMSELF TO THE EARTH.L# 53 AND THE SERVANT BROUGHT FORTH JEWELS OF SILVER, AND JEWELS OF GOLD, ANDJ RAIMENT, AND GAVE THEM TO REBEKAH: HE GAVE ALSO TO HER BROTHER AND TO HER MOTHER PRECIOUS THINGS.G# 54 AND THEY DID EAT AND DRINK, HE AND THE MEN THAT WERE WITH HIM, AND N TARRIED ALL NIGHT; AND THEY ROSE UP IN THE MORNING, AND HE SAID, SEND ME AWAY UNTO MY MASTER.L# 55 AND HER BROTHER AND HER MOTHER SAID, LET THE DAMSEL ABIDE WITH US A FEW1 DAYS, AT THE LEAST TEN; AFTER THAT SHE SHALL GO.DL# 56 AND HE SAID UNTO THEM, HINDER ME NOT, SEEING THE LORD HATH PROSPERED MY. WAY; SEND ME AWAY THAT I MAY GO TO MY MASTER.F# 57 AND THEY SAID, WE WILL CALL THE DAMSEL, AND ENQUIRE AT HER MOUTH.L# 58 AND THEY CALLED REBEKAH, AND SAID UNTO HER, WILT THOU GO WITH THIS MAN? AND SHE SAID, I WILL GO.TI# 59 AND THEY SENT AWAY REBEKAH THEIR SISTER, AND HER NURSE, AND ABRAHAMSE SERVANT, AND HIS MEN.I# 60 AND THEY BLESSED REBEKAH, AND SAID UNTO HER, THOU ART OUR SISTER, BESL THOU THE MOTHER OF THOUSANDS OF MILLIONS, AND LET THY SEED POSSESS THE GATE OF THOSE WHICH HATE THEM.K# 61 AND REBEKAH AROSE, AND HER DAMSELS, AND THEY RODE UPON THE CAMELS, ANDWB FOLLOWED THE MAN: AND THE SERVANT TOOK REBEKAH, AND WENT HIS WAY.J# 62 AND ISAAC CAME FROM THE WAY OF THE WELL LAHAIROI; FOR HE DWELT IN THE SOUTH COUNTRY.DH# 63 AND ISAAC WENT OUT TO MEDITATE IN THE FIELD AT THE EVENTIDE: AND HEB LIFTED UP HIS EYES, AND SAW, AND, BEHOLD, THE CAMELS WERE COMING.L# 64 AND REBEKAH LIFTED UP HER EYES, AND WHEN SHE SAW ISAAC, SHE LIGHTED OFF THE CAMEL.SL# 65 FOR SHE HAD SAID UNTO THE SERVANT, WHAT MAN IS THIS THAT WALKETH IN THEK FIELD TO MEET US? AND THE SERVANT HAD SAID, IT IS MY MASTER: THEREFORE SHEO" TOOK A VAIL, AND COVERED HERSELF.<# 66 AND THE SERVANT TOLD ISAAC ALL THINGS THAT HE HAD DONE.M# 67 AND ISAAC BROUGHT HER INTO HIS MOTHER SARAHS TENT, AND TOOK REBEKAH, ANDHI SHE BECAME HIS WIFE; AND HE LOVED HER: AND ISAAC WAS COMFORTED AFTER HISE MOTHERS DEATH.A = CHAPTER 25 E=# 1 THEN AGAIN ABRAHAM TOOK A WIFE, AND HER NAME WAS KETURAH.ML# 2 AND SHE BARE HIM ZIMRAN, AND JOKSHAN, AND MEDAN, AND MIDIAN, AND ISHBAK, AND SHUAH.TL# 3 AND JOKSHAN BEGAT SHEBA, AND DEDAN. AND THE SONS OF DEDAN WERE ASSHURIM, AND LETUSHIM, AND LEUMMIM. I# 4 AND THE SONS OF MIDIAN; EPHAH, AND EPHER, AND HANOCH, AND ABIDAH, ANDB0 ELDAAH. ALL THESE WERE THE CHILDREN OF KETURAH.0# 5 AND ABRAHAM GAVE ALL THAT HE HAD UNTO ISAAC.H# 6 BUT UNTO THE SONS OF THE CONCUBINES, WHICH ABRAHAM HAD, ABRAHAM GAVEL GIFTS, AND SENT THEM AWAY FROM ISAAC HIS SON, WHILE HE YET LIVED, EASTWARD, UNTO THE EAST COUNTRY.NK# 7 AND THESE ARE THE DAYS OF THE YEARS OF ABRAHAMS LIFE WHICH HE LIVED, ANB& HUNDRED THREESCORE AND FIFTEEN YEARS.K# 8 THEN ABRAHAM GAVE UP THE GHOST, AND DIED IN A GOOD OLD AGE, AN OLD MAN,A00_&%D%5%T6%! !3 AND FULL OF YEARS; AND WAS GATHERED TO HIS PEOPLE.TJ# 9 AND HIS SONS ISAAC AND ISHMAEL BURIED HIM IN THE CAVE OF MACHPELAH, INI THE FIELD OF EPHRON THE SON OF ZOHAR THE HITTITE, WHICH IS BEFORE MAMRE;AM# 10 THE FIELD WHICH ABRAHAM PURCHASED OF THE SONS OF HETH: THERE WAS ABRAHAMW BURIED, AND SARAH HIS WIFE.M# 11 AND IT CAME TO PASS AFTER THE DEATH OF ABRAHAM, THAT GOD BLESSED HIS SON- ISAAC; AND ISAAC DWELT BY THE WELL LAHAIROI.NK# 12 NOW THESE ARE THE GENERATIONS OF ISHMAEL, ABRAHAMS SON, WHOM HAGAR THEL. EGYPTIAN, SARAHS HANDMAID, BARE UNTO ABRAHAM:D# 13 AND THESE ARE THE NAMES OF THE SONS OF ISHMAEL, BY THEIR NAMES,H ACCORDING TO THEIR GENERATIONS: THE FIRSTBORN OF ISHMAEL, NEBAJOTH; AND KEDAR, AND ADBEEL, AND MIBSAM,M&# 14 AND MISHMA, AND DUMAH, AND MASSA,2# 15 HADAR, AND TEMA, JETUR, NAPHISH, AND KEDEMAH:G# 16 THESE ARE THE SONS OF ISHMAEL, AND THESE ARE THEIR NAMES, BY THEIRAH TOWNS, AND BY THEIR CASTLES; TWELVE PRINCES ACCORDING TO THEIR NATIONS.J# 17 AND THESE ARE THE YEARS OF THE LIFE OF ISHMAEL, AN HUNDRED AND THIRTYN AND SEVEN YEARS: AND HE GAVE UP THE GHOST AND DIED; AND WAS GATHERED UNTO HIS PEOPLE.I# 18 AND THEY DWELT FROM HAVILAH UNTO SHUR, THAT IS BEFORE EGYPT, AS THOUKG GOEST TOWARD ASSYRIA: AND HE DIED IN THE PRESENCE OF ALL HIS BRETHREN. H# 19 AND THESE ARE THE GENERATIONS OF ISAAC, ABRAHAMS SON: ABRAHAM BEGAT ISAAC:LM# 20 AND ISAAC WAS FORTY YEARS OLD WHEN HE TOOK REBEKAH TO WIFE, THE DAUGHTERID OF BETHUEL THE SYRIAN OF PADANARAM, THE SISTER TO LABAN THE SYRIAN.K# 21 AND ISAAC INTREATED THE LORD FOR HIS WIFE, BECAUSE SHE WAS BARREN: ANDG? THE LORD WAS INTREATED OF HIM, AND REBEKAH HIS WIFE CONCEIVED. K# 22 AND THE CHILDREN STRUGGLED TOGETHER WITHIN HER; AND SHE SAID, IF IT BES8 SO, WHY AM I THUS? AND SHE WENT TO ENQUIRE OF THE LORD.L# 23 AND THE LORD SAID UNTO HER, TWO NATIONS ARE IN THY WOMB, AND TWO MANNERJ OF PEOPLE SHALL BE SEPARATED FROM THY BOWELS; AND THE ONE PEOPLE SHALL BEG STRONGER THAN THE OTHER PEOPLE; AND THE ELDER SHALL SERVE THE YOUNGER.RI# 24 AND WHEN HER DAYS TO BE DELIVERED WERE FULFILLED, BEHOLD, THERE WEREN TWINS IN HER WOMB. I# 25 AND THE FIRST CAME OUT RED, ALL OVER LIKE AN HAIRY GARMENT; AND THEYT CALLED HIS NAME ESAU.I# 26 AND AFTER THAT CAME HIS BROTHER OUT, AND HIS HAND TOOK HOLD ON ESAUSFM HEEL; AND HIS NAME WAS CALLED JACOB: AND ISAAC WAS THREESCORE YEARS OLD WHENW SHE BARE THEM.PJ# 27 AND THE BOYS GREW: AND ESAU WAS A CUNNING HUNTER, A MAN OF THE FIELD;. AND JACOB WAS A PLAIN MAN, DWELLING IN TENTS.I# 28 AND ISAAC LOVED ESAU, BECAUSE HE DID EAT OF HIS VENISON: BUT REBEKAHH LOVED JACOB.NK# 29 AND JACOB SOD POTTAGE: AND ESAU CAME FROM THE FIELD, AND HE WAS FAINT:RE# 30 AND ESAU SAID TO JACOB, FEED ME, I PRAY THEE, WITH THAT SAME REDH= POTTAGE; FOR I AM FAINT: THEREFORE WAS HIS NAME CALLED EDOM.S5# 31 AND JACOB SAID, SELL ME THIS DAY THY BIRTHRIGHT.OK# 32 AND ESAU SAID, BEHOLD, I AM AT THE POINT TO DIE: AND WHAT PROFIT SHALLN THIS BIRTHRIGHT DO TO ME?M# 33 AND JACOB SAID, SWEAR TO ME THIS DAY; AND HE SWARE UNTO HIM: AND HE SOLDE HIS BIRTHRIGHT UNTO JACOB.UK# 34 THEN JACOB GAVE ESAU BREAD AND POTTAGE OF LENTILES; AND HE DID EAT ANDEI DRINK, AND ROSE UP, AND WENT HIS WAY: THUS ESAU DESPISED HIS BIRTHRIGHT.E = CHAPTER 26 MK# 1 AND THERE WAS A FAMINE IN THE LAND, BESIDE THE FIRST FAMINE THAT WAS INAK THE DAYS OF ABRAHAM. AND ISAAC WENT UNTO ABIMELECH KING OF THE PHILISTINES UNTO GERAR.K# 2 AND THE LORD APPEARED UNTO HIM, AND SAID, GO NOT DOWN INTO EGYPT; DWELLB( IN THE LAND WHICH I SHALL TELL THEE OF:K# 3 SOJOURN IN THIS LAND, AND I WILL BE WITH THEE, AND WILL BLESS THEE; FORAJ UNTO THEE, AND UNTO THY SEED, I WILL GIVE ALL THESE COUNTRIES, AND I WILL8 PERFORM THE OATH WHICH I SWARE UNTO ABRAHAM THY FATHER;I# 4 AND I WILL MAKE THY SEED TO MULTIPLY AS THE STARS OF HEAVEN, AND WILL N GIVE UNTO THY SEED ALL THESE COUNTRIES; AND IN THY SEED SHALL ALL THE NATIONS OF THE EARTH BE BLESSED; @# 5 BECAUSE THAT ABRAHAM OBEYED MY VOICE, AND KEPT MY CHARGE, MY( COMMANDMENTS, MY STATUTES, AND MY LAWS.# 6 AND IS00_&:%W<%X>%+%O-%TADATADATAAAC DWELT IN GERAR:AJ# 7 AND THE MEN OF THE PLACE ASKED HIM OF HIS WIFE; AND HE SAID, SHE IS MYL SISTER: FOR HE FEARED TO SAY, SHE IS MY WIFE; LEST, SAID HE, THE MEN OF THEE PLACE SHOULD KILL ME FOR REBEKAH; BECAUSE SHE WAS FAIR TO LOOK UPON.TK# 8 AND IT CAME TO PASS, WHEN HE HAD BEEN THERE A LONG TIME, THAT ABIMELECHEL KING OF THE PHILISTINES LOOKED OUT AT A WINDOW, AND SAW, AND, BEHOLD, ISAAC$ WAS SPORTING WITH REBEKAH HIS WIFE.H# 9 AND ABIMELECH CALLED ISAAC, AND SAID, BEHOLD, OF A SURETY SHE IS THYN WIFE; AND HOW SAIDST THOU, SHE IS MY SISTER? AND ISAAC SAID UNTO HIM, BECAUSE I SAID, LEST I DIE FOR HER.H# 10 AND ABIMELECH SAID, WHAT IS THIS THOU HAST DONE UNTO US? ONE OF THEN PEOPLE MIGHT LIGHTLY HAVE LIEN WITH THY WIFE, AND THOU SHOULDEST HAVE BROUGHT GUILTINESS UPON US.L# 11 AND ABIMELECH CHARGED ALL HIS PEOPLE, SAYING, HE THAT TOUCHETH THIS MAN* OR HIS WIFE SHALL SURELY BE PUT TO DEATH.D# 12 THEN ISAAC SOWED IN THAT LAND, AND RECEIVED IN THE SAME YEAR AN' HUNDREDFOLD: AND THE LORD BLESSED HIM.;M# 13 AND THE MAN WAXED GREAT, AND WENT FORWARD, AND GREW UNTIL HE BECAME VERYI GREAT: H# 14 FOR HE HAD POSSESSION OF FLOCKS, AND POSSESSION OF HERDS, AND GREAT3 STORE OF SERVANTS: AND THE PHILISTINES ENVIED HIM.YK# 15 FOR ALL THE WELLS WHICH HIS FATHERS SERVANTS HAD DIGGED IN THE DAYS OFEK ABRAHAM HIS FATHER, THE PHILISTINES HAD STOPPED THEM, AND FILLED THEM WITHA EARTH. J# 16 AND ABIMELECH SAID UNTO ISAAC, GO FROM US; FOR THOU ART MUCH MIGHTIER THAN WE.L# 17 AND ISAAC DEPARTED THENCE, AND PITCHED HIS TENT IN THE VALLEY OF GERAR, AND DWELT THERE.WL# 18 AND ISAAC DIGGED AGAIN THE WELLS OF WATER, WHICH THEY HAD DIGGED IN THEK DAYS OF ABRAHAM HIS FATHER; FOR THE PHILISTINES HAD STOPPED THEM AFTER THEHI DEATH OF ABRAHAM: AND HE CALLED THEIR NAMES AFTER THE NAMES BY WHICH HISA FATHER HAD CALLED THEM.H# 19 AND ISAACS SERVANTS DIGGED IN THE VALLEY, AND FOUND THERE A WELL OF SPRINGING WATER. I# 20 AND THE HERDMEN OF GERAR DID STRIVE WITH ISAACS HERDMEN, SAYING, THEAL WATER IS OURS: AND HE CALLED THE NAME OF THE WELL ESEK; BECAUSE THEY STROVE WITH HIM.J# 21 AND THEY DIGGED ANOTHER WELL, AND STROVE FOR THAT ALSO: AND HE CALLED THE NAME OF IT SITNAH.;K# 22 AND HE REMOVED FROM THENCE, AND DIGGED ANOTHER WELL; AND FOR THAT THEYAL STROVE NOT: AND HE CALLED THE NAME OF IT REHOBOTH; AND HE SAID, FOR NOW THEB LORD HATH MADE ROOM FOR US, AND WE SHALL BE FRUITFUL IN THE LAND.-# 23 AND HE WENT UP FROM THENCE TO BEERSHEBA.EM# 24 AND THE LORD APPEARED UNTO HIM THE SAME NIGHT, AND SAID, I AM THE GOD OF K ABRAHAM THY FATHER: FEAR NOT, FOR I AM WITH THEE, AND WILL BLESS THEE, ANDG0 MULTIPLY THY SEED FOR MY SERVANT ABRAHAMS SAKE.M# 25 AND HE BUILDED AN ALTAR THERE, AND CALLED UPON THE NAME OF THE LORD, ANDNA PITCHED HIS TENT THERE: AND THERE ISAACS SERVANTS DIGGED A WELL. L# 26 THEN ABIMELECH WENT TO HIM FROM GERAR, AND AHUZZATH ONE OF HIS FRIENDS,+ AND PHICHOL THE CHIEF CAPTAIN OF HIS ARMY.EJ# 27 AND ISAAC SAID UNTO THEM, WHEREFORE COME YE TO ME, SEEING YE HATE ME, AND HAVE SENT ME AWAY FROM YOU?H# 28 AND THEY SAID, WE SAW CERTAINLY THAT THE LORD WAS WITH THEE: AND WEM SAID, LET THERE BE NOW AN OATH BETWIXT US, EVEN BETWIXT US AND THEE, AND LETN US MAKE A COVENANT WITH THEE;I# 29 THAT THOU WILT DO US NO HURT, AS WE HAVE NOT TOUCHED THEE, AND AS WESM HAVE DONE UNTO THEE NOTHING BUT GOOD, AND HAVE SENT THEE AWAY IN PEACE: THOUO! ART NOW THE BLESSED OF THE LORD.I:# 30 AND HE MADE THEM A FEAST, AND THEY DID EAT AND DRINK.K# 31 AND THEY ROSE UP BETIMES IN THE MORNING, AND SWARE ONE TO ANOTHER: AND ; ISAAC SENT THEM AWAY, AND THEY DEPARTED FROM HIM IN PEACE.EJ# 32 AND IT CAME TO PASS THE SAME DAY, THAT ISAACS SERVANTS CAME, AND TOLDJ HIM CONCERNING THE WELL WHICH THEY HAD DIGGED, AND SAID UNTO HIM, WE HAVE FOUND WATER. I# 33 AND HE CALLED IT SHEBAH: THEREFORE THE NAME OF THE CITY IS BEERSHEBAV UNTO THIS DAY.IM# 34 AND ESAU WAS FORTY YEARS OLD WHEN HE TOOK TO WIFE JUDITH THE DAUGHTER OFSC BEERI THE HITTITE, AND BASHEMATH THE DAUGHTER OF ELON THE HITTITE:M:# 35 WHICH WERE A 00_&%D%5%T6%! !GRIEF OF MIND UNTO ISAAC AND TO REBEKAH. = CHAPTER 27 AK# 1 AND IT CAME TO PASS, THAT WHEN ISAAC WAS OLD, AND HIS EYES WERE DIM, SOSL THAT HE COULD NOT SEE, HE CALLED ESAU HIS ELDEST SON, AND SAID UNTO HIM, MY. SON: AND HE SAID UNTO HIM, BEHOLD, HERE AM I.F# 2 AND HE SAID, BEHOLD NOW, I AM OLD, I KNOW NOT THE DAY OF MY DEATH:M# 3 NOW THEREFORE TAKE, I PRAY THEE, THY WEAPONS, THY QUIVER AND THY BOW, ANDA/ GO OUT TO THE FIELD, AND TAKE ME SOME VENISON; L# 4 AND MAKE ME SAVOURY MEAT, SUCH AS I LOVE, AND BRING IT TO ME, THAT I MAY/ EAT; THAT MY SOUL MAY BLESS THEE BEFORE I DIE.PL# 5 AND REBEKAH HEARD WHEN ISAAC SPAKE TO ESAU HIS SON. AND ESAU WENT TO THE, FIELD TO HUNT FOR VENISON, AND TO BRING IT.L# 6 AND REBEKAH SPAKE UNTO JACOB HER SON, SAYING, BEHOLD, I HEARD THY FATHER% SPEAK UNTO ESAU THY BROTHER, SAYING, I# 7 BRING ME VENISON, AND MAKE ME SAVOURY MEAT, THAT I MAY EAT, AND BLESSA& THEE BEFORE THE LORD BEFORE MY DEATH.J# 8 NOW THEREFORE, MY SON, OBEY MY VOICE ACCORDING TO THAT WHICH I COMMAND THEE.M# 9 GO NOW TO THE FLOCK, AND FETCH ME FROM THENCE TWO GOOD KIDS OF THE GOATS; E AND I WILL MAKE THEM SAVOURY MEAT FOR THY FATHER, SUCH AS HE LOVETH:FL# 10 AND THOU SHALT BRING IT TO THY FATHER, THAT HE MAY EAT, AND THAT HE MAY BLESS THEE BEFORE HIS DEATH. M# 11 AND JACOB SAID TO REBEKAH HIS MOTHER, BEHOLD, ESAU MY BROTHER IS A HAIRYA MAN, AND I AM A SMOOTH MAN:F# 12 MY FATHER PERADVENTURE WILL FEEL ME, AND I SHALL SEEM TO HIM AS AA DECEIVER; AND I SHALL BRING A CURSE UPON ME, AND NOT A BLESSING..M# 13 AND HIS MOTHER SAID UNTO HIM, UPON ME BE THY CURSE, MY SON: ONLY OBEY MY  VOICE, AND GO FETCH ME THEM. M# 14 AND HE WENT, AND FETCHED, AND BROUGHT THEM TO HIS MOTHER: AND HIS MOTHERA- MADE SAVOURY MEAT, SUCH AS HIS FATHER LOVED.TL# 15 AND REBEKAH TOOK GOODLY RAIMENT OF HER ELDEST SON ESAU, WHICH WERE WITH; HER IN THE HOUSE, AND PUT THEM UPON JACOB HER YOUNGER SON:ML# 16 AND SHE PUT THE SKINS OF THE KIDS OF THE GOATS UPON HIS HANDS, AND UPON THE SMOOTH OF HIS NECK:I# 17 AND SHE GAVE THE SAVOURY MEAT AND THE BREAD, WHICH SHE HAD PREPARED, INTO THE HAND OF HER SON JACOB.K# 18 AND HE CAME UNTO HIS FATHER, AND SAID, MY FATHER: AND HE SAID, HERE AME I; WHO ART THOU, MY SON?TJ# 19 AND JACOB SAID UNTO HIS FATHER, I AM ESAU THY FIRST BORN; I HAVE DONEL ACCORDING AS THOU BADEST ME: ARISE, I PRAY THEE, SIT AND EAT OF MY VENISON, THAT THY SOUL MAY BLESS ME.F# 20 AND ISAAC SAID UNTO HIS SON, HOW IS IT THAT THOU HAST FOUND IT SOI QUICKLY, MY SON? AND HE SAID, BECAUSE THE LORD THY GOD BROUGHT IT TO ME.TM# 21 AND ISAAC SAID UNTO JACOB, COME NEAR, I PRAY THEE, THAT I MAY FEEL THEE,81 MY SON, WHETHER THOU BE MY VERY SON ESAU OR NOT.AJ# 22 AND JACOB WENT NEAR UNTO ISAAC HIS FATHER; AND HE FELT HIM, AND SAID,@ THE VOICE IS JACOBS VOICE, BUT THE HANDS ARE THE HANDS OF ESAU.K# 23 AND HE DISCERNED HIM NOT, BECAUSE HIS HANDS WERE HAIRY, AS HIS BROTHERM ESAUS HANDS: SO HE BLESSED HIM.?# 24 AND HE SAID, ART THOU MY VERY SON ESAU? AND HE SAID, I AM.SI# 25 AND HE SAID, BRING IT NEAR TO ME, AND I WILL EAT OF MY SONS VENISON,CL THAT MY SOUL MAY BLESS THEE. AND HE BROUGHT IT NEAR TO HIM, AND HE DID EAT:& AND HE BROUGHT HIM WINE AND HE DRANK.L# 26 AND HIS FATHER ISAAC SAID UNTO HIM, COME NEAR NOW, AND KISS ME, MY SON.F# 27 AND HE CAME NEAR, AND KISSED HIM: AND HE SMELLED THE SMELL OF HISM RAIMENT, AND BLESSED HIM, AND SAID, SEE, THE SMELL OF MY SON IS AS THE SMELLN( OF A FIELD WHICH THE LORD HATH BLESSED:I# 28 THEREFORE GOD GIVE THEE OF THE DEW OF HEAVEN, AND THE FATNESS OF THEN$ EARTH, AND PLENTY OF CORN AND WINE:J# 29 LET PEOPLE SERVE THEE, AND NATIONS BOW DOWN TO THEE: BE LORD OVER THYN BRETHREN, AND LET THY MOTHERS SONS BOW DOWN TO THEE: CURSED BE EVERY ONE THAT4 CURSETH THEE, AND BLESSED BE HE THAT BLESSETH THEE.M# 30 AND IT CAME TO PASS, AS SOON AS ISAAC HAD MADE AN END OF BLESSING JACOB,NN AND JACOB WAS YET SCARCE GONE OUT FROM THE PRESENCE OF ISAAC HIS FATHER, THAT+ ESAU HIS BROTHER CAME IN FROM HIS HUNTING.GK# 31 AND HE ALSO HAD MADE SAVOURY MEAT, AND BROUGHT IT UNTO HIS FATHER00_&:%W<%X>%+%O-%TADATADATA, ANDYM SAID UNTO HIS FATHER, LET MY FATHER ARISE, AND EAT OF HIS SONS VENISON, THATE THY SOUL MAY BLESS ME.,L# 32 AND ISAAC HIS FATHER SAID UNTO HIM, WHO ART THOU? AND HE SAID, I AM THY SON, THY FIRSTBORN ESAU.AI# 33 AND ISAAC TREMBLED VERY EXCEEDINGLY, AND SAID, WHO? WHERE IS HE THATDK HATH TAKEN VENISON, AND BROUGHT IT ME, AND I HAVE EATEN OF ALL BEFORE THOU < CAMEST, AND HAVE BLESSED HIM? YEA, AND HE SHALL BE BLESSED.K# 34 AND WHEN ESAU HEARD THE WORDS OF HIS FATHER, HE CRIED WITH A GREAT ANDRM EXCEEDING BITTER CRY, AND SAID UNTO HIS FATHER, BLESS ME, EVEN ME ALSO, O MY, FATHER.I# 35 AND HE SAID, THY BROTHER CAME WITH SUBTILTY, AND HATH TAKEN AWAY THYO BLESSING.J# 36 AND HE SAID, IS NOT HE RIGHTLY NAMED JACOB? FOR HE HATH SUPPLANTED MEL THESE TWO TIMES: HE TOOK AWAY MY BIRTHRIGHT; AND, BEHOLD, NOW HE HATH TAKENI AWAY MY BLESSING. AND HE SAID, HAST THOU NOT RESERVED A BLESSING FOR ME?AM# 37 AND ISAAC ANSWERED AND SAID UNTO ESAU, BEHOLD, I HAVE MADE HIM THY LORD,EN AND ALL HIS BRETHREN HAVE I GIVEN TO HIM FOR SERVANTS; AND WITH CORN AND WINEA HAVE I SUSTAINED HIM: AND WHAT SHALL I DO NOW UNTO THEE, MY SON?AJ# 38 AND ESAU SAID UNTO HIS FATHER, HAST THOU BUT ONE BLESSING, MY FATHER?M BLESS ME, EVEN ME ALSO, O MY FATHER. AND ESAU LIFTED UP HIS VOICE, AND WEPT.OJ# 39 AND ISAAC HIS FATHER ANSWERED AND SAID UNTO HIM, BEHOLD, THY DWELLINGH SHALL BE THE FATNESS OF THE EARTH, AND OF THE DEW OF HEAVEN FROM ABOVE;J# 40 AND BY THY SWORD SHALT THOU LIVE, AND SHALT SERVE THY BROTHER; AND ITL SHALL COME TO PASS WHEN THOU SHALT HAVE THE DOMINION, THAT THOU SHALT BREAK HIS YOKE FROM OFF THY NECK.F# 41 AND ESAU HATED JACOB BECAUSE OF THE BLESSING WHEREWITH HIS FATHERL BLESSED HIM: AND ESAU SAID IN HIS HEART, THE DAYS OF MOURNING FOR MY FATHER0 ARE AT HAND; THEN WILL I SLAY MY BROTHER JACOB.M# 42 AND THESE WORDS OF ESAU HER ELDER SON WERE TOLD TO REBEKAH: AND SHE SENTFI AND CALLED JACOB HER YOUNGER SON, AND SAID UNTO HIM, BEHOLD, THY BROTHERLF ESAU, AS TOUCHING THEE, DOTH COMFORT HIMSELF, PURPOSING TO KILL THEE.G# 43 NOW THEREFORE, MY SON, OBEY MY VOICE; ARISE, FLEE THOU TO LABAN MYF BROTHER TO HARAN;F# 44 AND TARRY WITH HIM A FEW DAYS, UNTIL THY BROTHERS FURY TURN AWAY;K# 45 UNTIL THY BROTHERS ANGER TURN AWAY FROM THEE, AND HE FORGET THAT WHICH I THOU HAST DONE TO HIM: THEN I WILL SEND, AND FETCH THEE FROM THENCE: WHYE2 SHOULD I BE DEPRIVED ALSO OF YOU BOTH IN ONE DAY?D# 46 AND REBEKAH SAID TO ISAAC, I AM WEARY OF MY LIFE BECAUSE OF THEJ DAUGHTERS OF HETH: IF JACOB TAKE A WIFE OF THE DAUGHTERS OF HETH, SUCH ASM THESE WHICH ARE OF THE DAUGHTERS OF THE LAND, WHAT GOOD SHALL MY LIFE DO ME?T = CHAPTER 28 AK# 1 AND ISAAC CALLED JACOB, AND BLESSED HIM, AND CHARGED HIM, AND SAID UNTOT< HIM, THOU SHALT NOT TAKE A WIFE OF THE DAUGHTERS OF CANAAN.K# 2 ARISE, GO TO PADANARAM, TO THE HOUSE OF BETHUEL THY MOTHERS FATHER; ANDEK TAKE THEE A WIFE FROM THENCE OF THE DAUGHERS OF LABAN THY MOTHERS BROTHER.OK# 3 AND GOD ALMIGHTY BLESS THEE, AND MAKE THEE FRUITFUL, AND MULTIPLY THEE,K+ THAT THOU MAYEST BE A MULTITUDE OF PEOPLE;TH# 4 AND GIVE THEE THE BLESSING OF ABRAHAM, TO THEE, AND TO THY SEED WITHK THEE; THAT THOU MAYEST INHERIT THE LAND WHEREIN THOU ART A STRANGER, WHICHH GOD GAVE UNTO ABRAHAM. J# 5 AND ISAAC SENT AWAY JACOB: AND HE WENT TO PADANARAM UNTO LABAN, SON OFE BETHUEL THE SYRIAN, THE BROTHER OF REBEKAH, JACOBS AND ESAUS MOTHER.WD# 6 WHEN ESAU SAW THAT ISAAC HAD BLESSED JACOB, AND SENT HIM AWAY TON PADANARAM, TO TAKE HIM A WIFE FROM THENCE; AND THAT AS HE BLESSED HIM HE GAVEL HIM A CHARGE, SAYING, THOU SHALT NOT TAKE A WIFE OF THE DAUGHERS OF CANAAN;D# 7 AND THAT JACOB OBEYED HIS FATHER AND HIS MOTHER, AND WAS GONE TO PADANARAM;TF# 8 AND ESAU SEEING THAT THE DAUGHTERS OF CANAAN PLEASED NOT ISAAC HIS FATHER;E# 9 THEN WENT ESAU UNTO ISHMAEL, AND TOOK UNTO THE WIVES WHICH HE HADEM MAHALATH THE DAUGHTER OF ISHMAEL ABRAHAMS SON, THE SISTER OF NEBAJOTH, TO BED HIS WIFE.># 10 AND JACOB WENT OUT FROM BEERSHEBA, AND WENT TOWARD HARAN.F# 11 AND HE LIGHTED UPON A CERTAIN PLACE, AND 00_&%D%5%T6%! !TARRIED THERE ALL NIGHT,J BECAUSE THE SUN WAS SET; AND HE TOOK OF THE STONES OF THAT PLACE, AND PUT; THEM FOR HIS PILLOWS, AND LAY DOWN IN THAT PLACE TO SLEEP.NL# 12 AND HE DREAMED, AND BEHOLD A LADDER SET UP ON THE EARTH, AND THE TOP OFL IT REACHED TO HEAVEN: AND BEHOLD THE ANGELS OF GOD ASCENDING AND DESCENDING ON IT.GI# 13 AND, BEHOLD, THE LORD STOOD ABOVE IT, AND SAID, I AM THE LORD GOD OF J ABRAHAM THY FATHER, AND THE GOD OF ISAAC: THE LAND WHEREON THOU LIEST, TO& THEE WILL I GIVE IT, AND TO THY SEED;J# 14 AND THY SEED SHALL BE AS THE DUST OF THE EARTH, AND THOU SHALT SPREADM ABROAD TO THE WEST, AND TO THE EAST, AND TO THE NORTH, AND TO THE SOUTH: ANDH IN THEE AND IN THY SEED SHALL ALL THE FAMILIES OF THE EARTH BE BLESSED.J# 15 AND, BEHOLD, I AM WITH THEE, AND WILL KEEP THEE IN ALL PLACES WHITHERK THOU GOEST, AND WILL BRING THEE AGAIN INTO THIS LAND; FOR I WILL NOT LEAVE = THEE, UNTIL I HAVE DONE THAT WHICH I HAVE SPOKEN TO THEE OF.NJ# 16 AND JACOB AWAKED OUT OF HIS SLEEP, AND HE SAID, SURELY THE LORD IS IN THIS PLACE; AND I KNEW IT NOT.HJ# 17 AND HE WAS AFRAID, AND SAID, HOW DREADFUL IS THIS PLACE! THIS IS NONE< OTHER BUT THE HOUSE OF GOD, AND THIS IS THE GATE OF HEAVEN.K# 18 AND JACOB ROSE UP EARLY IN THE MORNING, AND TOOK THE STONE THAT HE HADHM PUT FOR HIS PILLOWS, AND SET IT UP FOR A PILLAR, AND POURED OIL UPON THE TOPA OF IT. K# 19 AND HE CALLED THE NAME OF THAT PLACE BETHEL: BUT THE NAME OF THAT CITYS WAS CALLED LUZ AT THE FIRST.CL# 20 AND JACOB VOWED A VOW, SAYING, IF GOD WILL BE WITH ME, AND WILL KEEP MEM IN THIS WAY THAT I GO, AND WILL GIVE ME BREAD TO EAT, AND RAIMENT TO PUT ON,EK# 21 SO THAT I COME AGAIN TO MY FATHERS HOUSE IN PEACE; THEN SHALL THE LORD BE MY GOD:BL# 22 AND THIS STONE, WHICH I HAVE SET FOR A PILLAR, SHALL BE GODS HOUSE: ANDG OF ALL THAT THOU SHALT GIVE ME I WILL SURELY GIVE THE TENTH UNTO THEE. = CHAPTER 29 AK# 1 THEN JACOB WENT ON HIS JOURNEY, AND CAME INTO THE LAND OF THE PEOPLE OFU THE EAST.L# 2 AND HE LOOKED, AND BEHOLD A WELL IN THE FIELD, AND, LO, THERE WERE THREEK FLOCKS OF SHEEP LYING BY IT; FOR OUT OF THAT WELL THEY WATERED THE FLOCKS:U, AND A GREAT STONE WAS UPON THE WELLS MOUTH.L# 3 AND THITHER WERE ALL THE FLOCKS GATHERED: AND THEY ROLLED THE STONE FROMI THE WELLS MOUTH, AND WATERED THE SHEEP, AND PUT THE STONE AGAIN UPON THEL WELLS MOUTH IN HIS PLACE.J# 4 AND JACOB SAID UNTO THEM, MY BRETHREN, WHENCE BE YE? AND THEY SAID, OF HARAN ARE WE.L# 5 AND HE SAID UNTO THEM, KNOW YE LABAN THE SON OF NAHOR? AND THEY SAID, WE KNOW HIM.F# 6 AND HE SAID UNTO THEM, IS HE WELL? AND THEY SAID, HE IS WELL: AND,3 BEHOLD, RACHEL HIS DAUGHTER COMETH WITH THE SHEEP.SK# 7 AND HE SAID, LO, IT IS YET HIGH DAY, NEITHER IS IT TIME THAT THE CATTLEYG SHOULD BE GATHERED TOGETHER: WATER YE THE SHEEP, AND GO AND FEED THEM.TL# 8 AND THEY SAID, WE CANNOT, UNTIL ALL THE FLOCKS BE GATHERED TOGETHER, ANDH TILL THEY ROLL THE STONE FROM THE WELLS MOUTH; THEN WE WATER THE SHEEP.M# 9 AND WHILE HE YET SPAKE WITH THEM, RACHEL CAME WITH HER FATHERS SHEEP; FORI SHE KEPT THEM.II# 10 AND IT CAME TO PASS, WHEN JACOB SAW RACHEL THE DAUGHTER OF LABAN HISIM MOTHERS BROTHER, AND THE SHEEP OF LABAN HIS MOTHERS BROTHER, THAT JACOB WENTIJ NEAR, AND ROLLED THE STONE FROM THE WELLS MOUTH, AND WATERED THE FLOCK OF LABAN HIS MOTHERS BROTHER.T@# 11 AND JACOB KISSED RACHEL, AND LIFTED UP HIS VOICE, AND WEPT.K# 12 AND JACOB TOLD RACHEL THAT HE WAS HER FATHERS BROTHER, AND THAT HE WASH/ REBEKAHS SON: AND SHE RAN AND TOLD HER FATHER.AK# 13 AND IT CAME TO PASS, WHEN LABAN HEARD THE TIDINGS OF JACOB HIS SISTERS L SON, THAT HE RAN TO MEET HIM, AND EMBRACED HIM, AND KISSED HIM, AND BROUGHT6 HIM TO HIS HOUSE. AND HE TOLD LABAN ALL THESE THINGS.H# 14 AND LABAN SAID TO HIM, SURELY THOU ART MY BONE AND MY FLESH. AND HE% ABODE WITH HIM THE SPACE OF A MONTH.AK# 15 AND LABAN SAID UNTO JACOB, BECAUSE THOU ART MY BROTHER, SHOULDEST THOULA THEREFORE SERVE ME FOR NOUGHT? TELL ME, WHAT SHALL THY WAGES BE?HI# 16 AND LABAN HAD TWO DAUGHTERS: THE NAME OF THE ELDER WAS LEAH, AND 00_&:%W<%X>%+%O-%TADATADATATHEB NAME OF THE YOUNGER WAS RACHEL.F# 17 LEAH WAS TENDER EYED; BUT RACHEL WAS BEAUTIFUL AND WELL FAVOURED.H# 18 AND JACOB LOVED RACHEL; AND SAID, I WILL SERVE THEE SEVEN YEARS FOR RACHEL THY YOUNGER DAUGHTER.YM# 19 AND LABAN SAID, IT IS BETTER THAT I GIVE HER TO THEE, THAN THAT I SHOULD( GIVE HER TO ANOTHER MAN: ABIDE WITH ME.L# 20 AND JACOB SERVED SEVEN YEARS FOR RACHEL; AND THEY SEEMED UNTO HIM BUT A& FEW DAYS, FOR THE LOVE HE HAD TO HER.K# 21 AND JACOB SAID UNTO LABAN, GIVE ME MY WIFE, FOR MY DAYS ARE FULFILLED,U THAT I MAY GO IN UNTO HER.AL# 22 AND LABAN GATHERED TOGETHER ALL THE MEN OF THE PLACE, AND MADE A FEAST.L# 23 AND IT CAME TO PASS IN THE EVENING, THAT HE TOOK LEAH HIS DAUGHTER, AND- BROUGHT HER TO HIM; AND HE WENT IN UNTO HER.TK# 24 AND LABAN GAVE UNTO HIS DAUGHTER LEAH ZILPAH HIS MAID FOR AN HANDMAID.HJ# 25 AND IT CAME TO PASS, THAT IN THE MORNING, BEHOLD, IT WAS LEAH: AND HEN SAID TO LABAN, WHAT IS THIS THOU HAST DONE UNTO ME? DID NOT I SERVE WITH THEE2 FOR RACHEL? WHEREFORE THEN HAST THOU BEGUILED ME?G# 26 AND LABAN SAID, IT MUST NOT BE SO DONE IN OUR COUNTRY, TO GIVE THEH YOUNGER BEFORE THE FIRSTBORN.K# 27 FULFIL HER WEEK, AND WE WILL GIVE THEE THIS ALSO FOR THE SERVICE WHICHO0 THOU SHALT SERVE WITH ME YET SEVEN OTHER YEARS.I# 28 AND JACOB DID SO, AND FULFILLED HER WEEK: AND HE GAVE HIM RACHEL HIS5 DAUGHTER TO WIFE ALSO.TH# 29 AND LABAN GAVE TO RACHEL HIS DAUGHTER BILHAH HIS HANDMAID TO BE HER MAID.H# 30 AND HE WENT IN ALSO UNTO RACHEL, AND HE LOVED ALSO RACHEL MORE THAN1 LEAH, AND SERVED WITH HIM YET SEVEN OTHER YEARS.NG# 31 AND WHEN THE LORD SAW THAT LEAH WAS HATED, HE OPENED HER WOMB: BUT. RACHEL WAS BARREN.KL# 32 AND LEAH CONCEIVED, AND BARE A SON, AND SHE CALLED HIS NAME REUBEN: FORK SHE SAID, SURELY THE LORD HATH LOOKED UPON MY AFFLICTION; NOW THEREFORE MYA HUSBAND WILL LOVE ME.M# 33 AND SHE CONCEIVED AGAIN, AND BARE A SON; AND SAID, BECAUSE THE LORD HATH L HEARD I WAS HATED, HE HATH THEREFORE GIVEN ME THIS SON ALSO: AND SHE CALLED HIS NAME SIMEON.RM# 34 AND SHE CONCEIVED AGAIN, AND BARE A SON; AND SAID, NOW THIS TIME WILL MYOM HUSBAND BE JOINED UNTO ME, BECAUSE I HAVE BORN HIM THREE SONS: THEREFORE WAS2 HIS NAME CALLED LEVI.M# 35 AND SHE CONCEIVED AGAIN, AND BARE A SON: AND SHE SAID, NOW WILL I PRAISETA THE LORD: THEREFORE SHE CALLED HIS NAME JUDAH; AND LEFT BEARING.M = CHAPTER 30 EJ# 1 AND WHEN RACHEL SAW THAT SHE BARE JACOB NO CHILDREN, RACHEL ENVIED HER> SISTER; AND SAID UNTO JACOB, GIVE ME CHILDREN, OR ELSE I DIE.J# 2 AND JACOBS ANGER WAS KINDLED AGAINST RACHEL: AND HE SAID, AM I IN GODS: STEAD, WHO HATH WITHHELD FROM THEE THE FRUIT OF THE WOMB?K# 3 AND SHE SAID, BEHOLD MY MAID BILHAH, GO IN UNTO HER; AND SHE SHALL BEAR55 UPON MY KNEES, THAT I MAY ALSO HAVE CHILDREN BY HER. M# 4 AND SHE GAVE HIM BILHAH HER HANDMAID TO WIFE: AND JACOB WENT IN UNTO HER.A/# 5 AND BILHAH CONCEIVED, AND BARE JACOB A SON.HJ# 6 AND RACHEL SAID, GOD HATH JUDGED ME, AND HATH ALSO HEARD MY VOICE, AND8 HATH GIVEN ME A SON: THEREFORE CALLED SHE HIS NAME DAN.I# 7 AND BILHAH RACHELS MAID CONCEIVED AGAIN, AND BARE JACOB A SECOND SON.TJ# 8 AND RACHEL SAID, WITH GREAT WRESTLINGS HAVE I WRESTLED WITH MY SISTER,8 AND I HAVE PREVAILED: AND SHE CALLED HIS NAME NAPHTALI.J# 9 WHEN LEAH SAW THAT SHE HAD LEFT BEARING, SHE TOOK ZILPAH HER MAID, AND GAVE HER JACOB TO WIFE.,# 10 AND ZILPAH LEAHS MAID BARE JACOB A SON.@# 11 AND LEAH SAID, A TROOP COMETH: AND SHE CALLED HIS NAME GAD.3# 12 AND ZILPAH LEAHS MAID BARE JACOB A SECOND SON. K# 13 AND LEAH SAID, HAPPY AM I, FOR THE DAUGHTERS WILL CALL ME BLESSED: ANDI SHE CALLED HIS NAME ASHER.NM# 14 AND REUBEN WENT IN THE DAYS OF WHEAT HARVEST, AND FOUND MANDRAKES IN THEM FIELD, AND BROUGHT THEM UNTO HIS MOTHER LEAH. THEN RACHEL SAID TO LEAH, GIVET( ME, I PRAY THEE, OF THY SONS MANDRAKES.H# 15 AND SHE SAID UNTO HER, IS IT A SMALL MATTER THAT THOU HAST TAKEN MYN HUSBAND? AND WOULDEST THOU TAKE AWAY MY SONS MANDRAKES ALSO? AND RACHEL SAID,B THEREFORE HE SHALL LIE WITH THEE TO NIGHT FOR THY SONS MANDRAKES.I# 16 AND J00_&%D%5%T6%! !ACOB CAME OUT OF THE FIELD IN THE EVENING, AND LEAH WENT OUT TO L MEET HIM, AND SAID, THOU MUST COME IN UNTO ME; FOR SURELY I HAVE HIRED THEE8 WITH MY SONS MANDRAKES. AND HE LAY WITH HER THAT NIGHT.M# 17 AND GOD HEARKENED UNTO LEAH, AND SHE CONCEIVED, AND BARE JACOB THE FIFTH SON.DM# 18 AND LEAH SAID, GOD HATH GIVEN ME MY HIRE, BECAUSE I HAVE GIVEN MY MAIDEN 1 TO MY HUSBAND: AND SHE CALLED HIS NAME ISSACHAR. <# 19 AND LEAH CONCEIVED AGAIN, AND BARE JACOB THE SIXTH SON.M# 20 AND LEAH SAID, GOD HATH ENDUED ME WITH A GOOD DOWRY; NOW WILL MY HUSBANDAI DWELL WITH ME, BECAUSE I HAVE BORN HIM SIX SONS: AND SHE CALLED HIS NAMEI ZEBULUN. C# 21 AND AFTERWARDS SHE BARE A DAUGHTER, AND CALLED HER NAME DINAH.AH# 22 AND GOD REMEMBERED RACHEL, AND GOD HEARKENED TO HER, AND OPENED HER WOMB.H# 23 AND SHE CONCEIVED, AND BARE A SON; AND SAID, GOD HATH TAKEN AWAY MY REPROACH:G# 24 AND SHE CALLED HIS NAME JOSEPH; AND SAID, THE LORD SHALL ADD TO MEI ANOTHER SON.OK# 25 AND IT CAME TO PASS, WHEN RACHEL HAD BORN JOSEPH, THAT JACOB SAID UNTOOK LABAN, SEND ME AWAY, THAT I MAY GO UNTO MINE OWN PLACE, AND TO MY COUNTRY. K# 26 GIVE ME MY WIVES AND MY CHILDREN, FOR WHOM I HAVE SERVED THEE, AND LETL; ME GO: FOR THOU KNOWEST MY SERVICE WHICH I HAVE DONE THEE. J# 27 AND LABAN SAID UNTO HIM, I PRAY THEE, IF I HAVE FOUND FAVOUR IN THINEL EYES, TARRY: FOR I HAVE LEARNED BY EXPERIENCE THAT THE LORD HATH BLESSED ME FOR THY SAKE.;# 28 AND HE SAID, APPOINT ME THY WAGES, AND I WILL GIVE IT.AK# 29 AND HE SAID UNTO HIM, THOU KNOWEST HOW I HAVE SERVED THEE, AND HOW THYM CATTLE WAS WITH ME.D# 30 FOR IT WAS LITTLE WHICH THOU HADST BEFORE I CAME, AND IT IS NOWL INCREASED UNTO A MULTITUDE; AND THE LORD HATH BLESSED THEE SINCE MY COMING:6 AND NOW WHEN SHALL I PROVIDE FOR MINE OWN HOUSE ALSO?M# 31 AND HE SAID, WHAT SHALL I GIVE THEE? AND JACOB SAID, THOU SHALT NOT GIVELL ME ANY THING: IF THOU WILT DO THIS THING FOR ME, I WILL AGAIN FEED AND KEEP THY FLOCK.NK# 32 I WILL PASS THROUGH ALL THY FLOCK TO DAY, REMOVING FROM THENCE ALL THE K SPECKLED AND SPOTTED CATTLE, AND ALL THE BROWN CATTLE AMONG THE SHEEP, ANDIH THE SPOTTED AND SPECKLED AMONG THE GOATS: AND OF SUCH SHALL BE MY HIRE.K# 33 SO SHALL MY RIGHTEOUSNESS ANSWER FOR ME IN TIME TO COME, WHEN IT SHALL M COME FOR MY HIRE BEFORE THY FACE: EVERY ONE THAT IS NOT SPECKLED AND SPOTTED N AMONG THE GOATS, AND BROWN AMONG THE SHEEP, THAT SHALL BE COUNTED STOLEN WITH ME.G# 34 AND LABAN SAID, BEHOLD, I WOULD IT MIGHT BE ACCORDING TO THY WORD.FL# 35 AND HE REMOVED THAT DAY THE HE GOATS THAT WERE RINGSTRAKED AND SPOTTED,M AND ALL THE SHE GOATS THAT WERE SPECKLED AND SPOTTED, AND EVERY ONE THAT HAD L SOME WHITE IN IT, AND ALL THE BROWN AMONG THE SHEEP, AND GAVE THEM INTO THE HAND OF HIS SONS.K# 36 AND HE SET THREE DAYS JOURNEY BETWIXT HIMSELF AND JACOB: AND JACOB FEDE THE REST OF LABANS FLOCKS.EJ# 37 AND JACOB TOOK HIM RODS OF GREEN POPLAR, AND OF THE HAZEL AND CHESNUTL TREE; AND PILLED WHITE STRAKES IN THEM, AND MADE THE WHITE APPEAR WHICH WAS IN THE RODS. M# 38 AND HE SET THE RODS WHICH HE HAD PILLED BEFORE THE FLOCKS IN THE GUTTERSSH IN THE WATERING TROUGHS WHEN THE FLOCKS CAME TO DRINK, THAT THEY SHOULD" CONCEIVE WHEN THEY CAME TO DRINK.G# 39 AND THE FLOCKS CONCEIVED BEFORE THE RODS, AND BROUGHT FORTH CATTLEJ$ RINGSTRAKED, SPECKLED, AND SPOTTED.M# 40 AND JACOB DID SEPARATE THE LAMBS, AND SET THE FACES OF THE FLOCKS TOWARD M THE RINGSTRAKED, AND ALL THE BROWN IN THE FLOCK OF LABAN; AND HE PUT HIS OWNA; FLOCKS BY THEMSELVES, AND PUT THEM NOT UNTO LABANS CATTLE.HK# 41 AND IT CAME TO PASS, WHENSOEVER THE STRONGER CATTLE DID CONCEIVE, THAT L JACOB LAID THE RODS BEFORE THE EYES OF THE CATTLE IN THE GUTTERS, THAT THEY MIGHT CONCEIVE AMONG THE RODS.TM# 42 BUT WHEN THE CATTLE WERE FEEBLE, HE PUT THEM NOT IN: SO THE FEEBLER WEREP! LABANS, AND THE STRONGER JACOBS.B@# 43 AND THE MAN INCREASED EXCEEDINGLY, AND HAD MUCH CATTLE, AND6 MAIDSERVANTS, AND MENSERVANTS, AND CAMELS, AND ASSES. = CHAPTER 31 IL# 1 AND HE HEARD THE WORDS OF LABANS SONS, SAYING, JACOB HATH 00_&:%W<%X>%+%O-%TADATADATATAKEN AWAY ALLK THAT WAS OUR FATHERS; AND OF THAT WHICH WAS OUR FATHERS HATH HE GOTTEN ALLL THIS GLORY.M# 2 AND JACOB BEHELD THE COUNTENANCE OF LABAN, AND, BEHOLD, IT WAS NOT TOWARDH HIM AS BEFORE.TM# 3 AND THE LORD SAID UNTO JACOB, RETURN UNTO THE LAND OF THY FATHERS, AND TO,& THY KINDRED; AND I WILL BE WITH THEE.J# 4 AND JACOB SENT AND CALLED RACHEL AND LEAH TO THE FIELD UNTO HIS FLOCK,M# 5 AND SAID UNTO THEM, I SEE YOUR FATHERS COUNTENANCE, THAT IT IS NOT TOWARD : ME AS BEFORE; BUT THE GOD OF MY FATHER HATH BEEN WITH ME.A# 6 AND YE KNOW THAT WITH ALL MY POWER I HAVE SERVED YOUR FATHER.TM# 7 AND YOUR FATHER HATH DECEIVED ME, AND CHANGED MY WAGES TEN TIMES; BUT GODN SUFFERED HIM NOT TO HURT ME. I# 8 IF HE SAID THUS, THE SPECKLED SHALL BE THY WAGES; THEN ALL THE CATTLE,L BARE SPECKLED: AND IF HE SAID THUS, THE RINGSTRAKED SHALL BE THY HIRE; THEN! BARE ALL THE CATTLE RINGSTRAKED.CM# 9 THUS GOD HATH TAKEN AWAY THE CATTLE OF YOUR FATHER, AND GIVEN THEM TO ME.RM# 10 AND IT CAME TO PASS AT THE TIME THAT THE CATTLE CONCEIVED, THAT I LIFTED N UP MINE EYES, AND SAW IN A DREAM, AND, BEHOLD, THE RAMS WHICH LEAPED UPON THE0 CATTLE WERE RINGSTRAKED, SPECKLED, AND GRISLED.H# 11 AND THE ANGEL OF GOD SPAKE UNTO ME IN A DREAM, SAYING, JACOB: AND I SAID, HERE AM I.AJ# 12 AND HE SAID, LIFT UP NOW THINE EYES, AND SEE, ALL THE RAMS WHICH LEAPL UPON THE CATTLE ARE RINGSTRAKED, SPECKLED, AND GRISLED: FOR I HAVE SEEN ALL THAT LABAN DOETH UNTO THEE.M# 13 I AM THE GOD OF BETHEL, WHERE THOU ANOINTEDST THE PILLAR, AND WHERE THOUCJ VOWEDST A VOW UNTO ME: NOW ARISE, GET THEE OUT FROM THIS LAND, AND RETURN UNTO THE LAND OF THY KINDRED.M# 14 AND RACHEL AND LEAH ANSWERED AND SAID UNTO HIM, IS THERE YET ANY PORTION , OR INHERITANCE FOR US IN OUR FATHERS HOUSE?M# 15 ARE WE NOT COUNTED OF HIM STRANGERS? FOR HE HATH SOLD US, AND HATH QUITE  DEVOURED ALSO OUR MONEY.EK# 16 FOR ALL THE RICHES WHICH GOD HATH TAKEN FROM OUR FATHER, THAT IS OURS,TE AND OUR CHILDRENS: NOW THEN, WHATSOEVER GOD HATH SAID UNTO THEE, DO.LD# 17 THEN JACOB ROSE UP, AND SET HIS SONS AND HIS WIVES UPON CAMELS;G# 18 AND HE CARRIED AWAY ALL HIS CATTLE, AND ALL HIS GOODS WHICH HE HADEL GOTTEN, THE CATTLE OF HIS GETTING, WHICH HE HAD GOTTEN IN PADANARAM, FOR TO. GO TO ISAAC HIS FATHER IN THE LAND OF CANAAN.M# 19 AND LABAN WENT TO SHEAR HIS SHEEP: AND RACHEL HAD STOLEN THE IMAGES THATO WERE HER FATHERS.K# 20 AND JACOB STOLE AWAY UNAWARES TO LABAN THE SYRIAN, IN THAT HE TOLD HIMO NOT THAT HE FLED.I# 21 SO HE FLED WITH ALL THAT HE HAD; AND HE ROSE UP, AND PASSED OVER THES1 RIVER, AND SET HIS FACE TOWARD THE MOUNT GILEAD. @# 22 AND IT WAS TOLD LABAN ON THE THIRD DAY THAT JACOB WAS FLED.H# 23 AND HE TOOK HIS BRETHREN WITH HIM, AND PURSUED AFTER HIM SEVEN DAYS4 JOURNEY; AND THEY OVERTOOK HIM IN THE MOUNT GILEAD.M# 24 AND GOD CAME TO LABAN THE SYRIAN IN A DREAM BY NIGHT, AND SAID UNTO HIM, ; TAKE HEED THAT THOU SPEAK NOT TO JACOB EITHER GOOD OR BAD. L# 25 THEN LABAN OVERTOOK JACOB. NOW JACOB HAD PITCHED HIS TENT IN THE MOUNT:< AND LABAN WITH HIS BRETHREN PITCHED IN THE MOUNT OF GILEAD.M# 26 AND LABAN SAID TO JACOB, WHAT HAST THOU DONE, THAT THOU HAST STOLEN AWAYAJ UNAWARES TO ME, AND CARRIED AWAY MY DAUGHTERS, AS CAPTIVES TAKEN WITH THE SWORD? I# 27 WHEREFORE DIDST THOU FLEE AWAY SECRETLY, AND STEAL AWAY FROM ME; ANDGI DIDST NOT TELL ME, THAT I MIGHT HAVE SENT THEE AWAY WITH MIRTH, AND WITH # SONGS, WITH TABRET, AND WITH HARP?HM# 28 AND HAST NOT SUFFERED ME TO KISS MY SONS AND MY DAUGHTERS? THOU HAST NOWT DONE FOOLISHLY IN SO DOING.M# 29 IT IS IN THE POWER OF MY HAND TO DO YOU HURT: BUT THE GOD OF YOUR FATHERHI SPAKE UNTO ME YESTERNIGHT, SAYING, TAKE THOU HEED THAT THOU SPEAK NOT TOD JACOB EITHER GOOD OR BAD.L# 30 AND NOW, THOUGH THOU WOULDEST NEEDS BE GONE, BECAUSE THOU SORE LONGEDSTA AFTER THY FATHERS HOUSE, YET WHEREFORE HAST THOU STOLEN MY GODS?EL# 31 AND JACOB ANSWERED AND SAID TO LABAN, BECAUSE I WAS AFRAID: FOR I SAID,@ PERADVENTURE THOU WOULDEST TAKE BY FORCE THY DAUGHTERS FROM ME.H# 32 WITH WHOMSOEVER THOU FINDES00_&%D%5%T6%! !T THY GODS, LET HIM NOT LIVE: BEFORE OURL BRETHREN DISCERN THOU WHAT IS THINE WITH ME, AND TAKE IT TO THEE. FOR JACOB& KNEW NOT THAT RACHEL HAD STOLEN THEM.K# 33 AND LABAN WENT INTO JACOBS TENT, AND INTO LEAHS TENT, AND INTO THE TWOOK MAIDSERVANTS TENTS; BUT HE FOUND THEM NOT. THEN WENT HE OUT OF LEAHS TENT,T AND ENTERED INTO RACHELS TENT.CK# 34 NOW RACHEL HAD TAKEN THE IMAGES, AND PUT THEM IN THE CAMELS FURNITURE,RH AND SAT UPON THEM. AND LABAN SEARCHED ALL THE TENT, BUT FOUND THEM NOT.K# 35 AND SHE SAID TO HER FATHER, LET IT NOT DISPLEASE MY LORD THAT I CANNOTWM RISE UP BEFORE THEE; FOR THE CUSTOM OF WOMEN IS UPON ME. AND HE SEARCHED BUT  FOUND NOT THE IMAGES.K# 36 AND JACOB WAS WROTH, AND CHODE WITH LABAN: AND JACOB ANSWERED AND SAIDAG TO LABAN, WHAT IS MY TRESPASS? WHAT IS MY SIN, THAT THOU HAST SO HOTLYE PURSUED AFTER ME?M# 37 WHEREAS THOU HAST SEARCHED ALL MY STUFF, WHAT HAST THOU FOUND OF ALL THYUL HOUSEHOLD STUFF? SET IT HERE BEFORE MY BRETHREN AND THY BRETHREN, THAT THEY MAY JUDGE BETWIXT US BOTH.TM# 38 THIS TWENTY YEARS HAVE I BEEN WITH THEE; THY EWES AND THY SHE GOATS HAVE B NOT CAST THEIR YOUNG, AND THE RAMS OF THY FLOCK HAVE I NOT EATEN.K# 39 THAT WHICH WAS TORN OF BEASTS I BROUGHT NOT UNTO THEE; I BARE THE LOSSSM OF IT; OF MY HAND DIDST THOU REQUIRE IT, WHETHER STOLEN BY DAY, OR STOLEN BY NIGHT.AL# 40 THUS I WAS; IN THE DAY THE DROUGHT CONSUMED ME, AND THE FROST BY NIGHT;& AND MY SLEEP DEPARTED FROM MINE EYES.M# 41 THUS HAVE I BEEN TWENTY YEARS IN THY HOUSE; I SERVED THEE FOURTEEN YEARSN FOR THY TWO DAUGHTERS, AND SIX YEARS FOR THY CATTLE: AND THOU HAST CHANGED MY WAGES TEN TIMES.NL# 42 EXCEPT THE GOD OF MY FATHER, THE GOD OF ABRAHAM, AND THE FEAR OF ISAAC,J HAD BEEN WITH ME, SURELY THOU HADST SENT ME AWAY NOW EMPTY. GOD HATH SEENJ MINE AFFLICTION AND THE LABOUR OF MY HANDS, AND REBUKED THEE YESTERNIGHT.C# 43 AND LABAN ANSWERED AND SAID UNTO JACOB, THESE DAUGHTERS ARE MYMG DAUGHTERS, AND THESE CHILDREN ARE MY CHILDREN, AND THESE CATTLE ARE MYHI CATTLE, AND ALL THAT THOU SEEST IS MINE: AND WHAT CAN I DO THIS DAY UNTORA THESE MY DAUGHTERS, OR UNTO THEIR CHILDREN WHICH THEY HAVE BORN?2L# 44 NOW THEREFORE COME THOU, LET US MAKE A COVENANT, I AND THOU; AND LET IT& BE FOR A WITNESS BETWEEN ME AND THEE.8# 45 AND JACOB TOOK A STONE, AND SET IT UP FOR A PILLAR.K# 46 AND JACOB SAID UNTO HIS BRETHREN, GATHER STONES; AND THEY TOOK STONES, 8 AND MADE AN HEAP: AND THEY DID EAT THERE UPON THE HEAP.D# 47 AND LABAN CALLED IT JEGARSAHADUTHA: BUT JACOB CALLED IT GALEED.I# 48 AND LABAN SAID, THIS HEAP IS A WITNESS BETWEEN ME AND THEE THIS DAY.A, THEREFORE WAS THE NAME OF IT CALLED GALEED;M# 49 AND MIZPAH; FOR HE SAID, THE LORD WATCH BETWEEN ME AND THEE, WHEN WE ARE  ABSENT ONE FROM ANOTHER.EJ# 50 IF THOU SHALT AFFLICT MY DAUGHTERS, OR IF THOU SHALT TAKE OTHER WIVESK BESIDE MY DAUGHTERS, NO MAN IS WITH US; SEE, GOD IS WITNESS BETWIXT ME AND  THEE.M# 51 AND LABAN SAID TO JACOB, BEHOLD THIS HEAP, AND BEHOLD THIS PILLAR, WHICHG! I HAVE CAST BETWIXT ME AND THEE:LK# 52 THIS HEAP BE WITNESS, AND THIS PILLAR BE WITNESS, THAT I WILL NOT PASSYM OVER THIS HEAP TO THEE, AND THAT THOU SHALT NOT PASS OVER THIS HEAP AND THIS  PILLAR UNTO ME, FOR HARM.M# 53 THE GOD OF ABRAHAM, AND THE GOD OF NAHOR, THE GOD OF THEIR FATHER, JUDGE = BETWIXT US. AND JACOB SWARE BY THE FEAR OF HIS FATHER ISAAC.EL# 54 THEN JACOB OFFERED SACRIFICE UPON THE MOUNT, AND CALLED HIS BRETHREN TOG EAT BREAD: AND THEY DID EAT BREAD, AND TARRIED ALL NIGHT IN THE MOUNT.HH# 55 AND EARLY IN THE MORNING LABAN ROSE UP, AND KISSED HIS SONS AND HISN DAUGHTERS, AND BLESSED THEM: AND LABAN DEPARTED, AND RETURNED UNTO HIS PLACE. = CHAPTER 32 T=# 1 AND JACOB WENT ON HIS WAY, AND THE ANGELS OF GOD MET HIM. J# 2 AND WHEN JACOB SAW THEM, HE SAID, THIS IS GODS HOST: AND HE CALLED THE NAME OF THAT PLACE MAHANAIM. M# 3 AND JACOB SENT MESSENGERS BEFORE HIM TO ESAU HIS BROTHER UNTO THE LAND OFD SEIR, THE COUNTRY OF EDOM. M# 4 AND HE COMMANDED THEM, SAYING, THUS SHALL YE SPEAK UNTO MY LORD ESAU; THY N SERVANT JACOB S00_&:%W<%X>%+%O-%TADATADATAAITH THUS, I HAVE SOJOURNED WITH LABAN, AND STAYED THERE UNTIL NOW:NK# 5 AND I HAVE OXEN, AND ASSES, FLOCKS, AND MENSERVANTS, AND WOMENSERVANTS: E AND I HAVE SENT TO TELL MY LORD, THAT I MAY FIND GRACE IN THY SIGHT.WH# 6 AND THE MESSENGERS RETURNED TO JACOB, SAYING, WE CAME TO THY BROTHERF ESAU, AND ALSO HE COMETH TO MEET THEE, AND FOUR HUNDRED MEN WITH HIM.K# 7 THEN JACOB WAS GREATLY AFRAID AND DISTRESSED: AND HE DIVIDED THE PEOPLESN THAT WAS WITH HIM, AND THE FLOCKS, AND HERDS, AND THE CAMELS, INTO TWO BANDS;K# 8 AND SAID, IF ESAU COME TO THE ONE COMPANY, AND SMITE IT, THEN THE OTHERE$ COMPANY WHICH IS LEFT SHALL ESCAPE.K# 9 AND JACOB SAID, O GOD OF MY FATHER ABRAHAM, AND GOD OF MY FATHER ISAAC, L THE LORD WHICH SAIDST UNTO ME, RETURN UNTO THY COUNTRY, AND TO THY KINDRED, AND I WILL DEAL WELL WITH THEE:K# 10 I AM NOT WORTHY OF THE LEAST OF ALL THE MERCIES, AND OF ALL THE TRUTH,AN WHICH THOU HAST SHEWED UNTO THY SERVANT; FOR WITH MY STAFF I PASSED OVER THIS' JORDAN; AND NOW I AM BECOME TWO BANDS. K# 11 DELIVER ME, I PRAY THEE, FROM THE HAND OF MY BROTHER, FROM THE HAND OF N ESAU: FOR I FEAR HIM, LEST HE WILL COME AND SMITE ME, AND THE MOTHER WITH THE CHILDREN.J# 12 AND THOU SAIDST, I WILL SURELY DO THEE GOOD, AND MAKE THY SEED AS THE9 SAND OF THE SEA, WHICH CANNOT BE NUMBERED FOR MULTITUDE.HL# 13 AND HE LODGED THERE THAT SAME NIGHT; AND TOOK OF THAT WHICH CAME TO HIS% HAND A PRESENT FOR ESAU HIS BROTHER;YM# 14 TWO HUNDRED SHE GOATS, AND TWENTY HE GOATS, TWO HUNDRED EWES, AND TWENTYO RAMS,L# 15 THIRTY MILCH CAMELS WITH THEIR COLTS, FORTY KINE, AND TEN BULLS, TWENTY SHE ASSES, AND TEN FOALS.H# 16 AND HE DELIVERED THEM INTO THE HAND OF HIS SERVANTS, EVERY DROVE BYM THEMSELVES; AND SAID UNTO HIS SERVANTS, PASS OVER BEFORE ME, AND PUT A SPACEE BETWIXT DROVE AND DROVE.RH# 17 AND HE COMMANDED THE FOREMOST, SAYING, WHEN ESAU MY BROTHER MEETETHK THEE, AND ASKETH THEE, SAYING, WHOSE ART THOU? AND WHITHER GOEST THOU? ANDR WHOSE ARE THESE BEFORE THEE?TJ# 18 THEN THOU SHALT SAY, THEY BE THY SERVANT JACOBS; IT IS A PRESENT SENT6 UNTO MY LORD ESAU: AND, BEHOLD, ALSO HE IS BEHIND US.M# 19 AND SO COMMANDED HE THE SECOND, AND THE THIRD, AND ALL THAT FOLLOWED THE K DROVES, SAYING, ON THIS MANNER SHALL YE SPEAK UNTO ESAU, WHEN YE FIND HIM.UH# 20 AND SAY YE MOREOVER, BEHOLD, THY SERVANT JACOB IS BEHIND US. FOR HEN SAID, I WILL APPEASE HIM WITH THE PRESENT THAT GOETH BEFORE ME, AND AFTERWARD8 I WILL SEE HIS FACE; PERADVENTURE HE WILL ACCEPT OF ME.J# 21 SO WENT THE PRESENT OVER BEFORE HIM: AND HIMSELF LODGED THAT NIGHT IN THE COMPANY.TC# 22 AND HE ROSE UP THAT NIGHT, AND TOOK HIS TWO WIVES, AND HIS TWONE WOMENSERVANTS, AND HIS ELEVEN SONS, AND PASSED OVER THE FORD JABBOK.SJ# 23 AND HE TOOK THEM, AND SENT THEM OVER THE BROOK, AND SENT OVER THAT HE HAD. J# 24 AND JACOB WAS LEFT ALONE; AND THERE WRESTLED A MAN WITH HIM UNTIL THE BREAKING OF THE DAY.TM# 25 AND WHEN HE SAW THAT HE PREVAILED NOT AGAINST HIM, HE TOUCHED THE HOLLOWLN OF HIS THIGH; AND THE HOLLOW OF JACOBS THIGH WAS OUT OF JOINT, AS HE WRESTLED WITH HIM.J# 26 AND HE SAID, LET ME GO, FOR THE DAY BREAKETH. AND HE SAID, I WILL NOT# LET THEE GO, EXCEPT THOU BLESS ME.V@# 27 AND HE SAID UNTO HIM, WHAT IS THY NAME? AND HE SAID, JACOB.L# 28 AND HE SAID, THY NAME SHALL BE CALLED NO MORE JACOB, BUT ISRAEL: FOR ASD A PRINCE HAST THOU POWER WITH GOD AND WITH MEN, AND HAST PREVAILED.J# 29 AND JACOB ASKED HIM, AND SAID, TELL ME, I PRAY THEE, THY NAME. AND HEK SAID, WHEREFORE IS IT THAT THOU DOST ASK AFTER MY NAME? AND HE BLESSED HIMI THERE. L# 30 AND JACOB CALLED THE NAME OF THE PLACE PENIEL: FOR I HAVE SEEN GOD FACE# TO FACE, AND MY LIFE IS PRESERVED.EK# 31 AND AS HE PASSED OVER PENUEL THE SUN ROSE UPON HIM, AND HE HALTED UPON HIS THIGH.AH# 32 THEREFORE THE CHILDREN OF ISRAEL EAT NOT OF THE SINEW WHICH SHRANK,M WHICH IS UPON THE HOLLOW OF THE THIGH, UNTO THIS DAY: BECAUSE HE TOUCHED THEC1 HOLLOW OF JACOBS THIGH IN THE SINEW THAT SHRANK.A = CHAPTER 33 IN# 1 AND JACOB LIFTED UP HIS EYES, AND LOOKED, AND, BEHOLD, ESAU CA00_&%D%5%T6%! !ME, AND WITHN HIM FOUR HUNDRED MEN. AND HE DIVIDED THE CHILDREN UNTO LEAH, AND UNTO RACHEL, AND UNTO THE TWO HANDMAIDS.J# 2 AND HE PUT THE HANDMAIDS AND THEIR CHILDREN FOREMOST, AND LEAH AND HER2 CHILDREN AFTER, AND RACHEL AND JOSEPH HINDERMOST.I# 3 AND HE PASSED OVER BEFORE THEM, AND BOWED HIMSELF TO THE GROUND SEVENF* TIMES, UNTIL HE CAME NEAR TO HIS BROTHER.I# 4 AND ESAU RAN TO MEET HIM, AND EMBRACED HIM, AND FELL ON HIS NECK, AND KISSED HIM: AND THEY WEPT.YL# 5 AND HE LIFTED UP HIS EYES, AND SAW THE WOMEN AND THE CHILDREN; AND SAID,M WHO ARE THOSE WITH THEE? AND HE SAID, THE CHILDREN WHICH GOD HATH GRACIOUSLY. GIVEN THY SERVANT.HK# 6 THEN THE HANDMAIDENS CAME NEAR, THEY AND THEIR CHILDREN, AND THEY BOWEDR THEMSELVES.H# 7 AND LEAH ALSO WITH HER CHILDREN CAME NEAR, AND BOWED THEMSELVES: AND> AFTER CAME JOSEPH NEAR AND RACHEL, AND THEY BOWED THEMSELVES.H# 8 AND HE SAID, WHAT MEANEST THOU BY ALL THIS DROVE WHICH I MET? AND HE7 SAID, THESE ARE TO FIND GRACE IN THE SIGHT OF MY LORD.EF# 9 AND ESAU SAID, I HAVE ENOUGH, MY BROTHER; KEEP THAT THOU HAST UNTO THYSELF.SG# 10 AND JACOB SAID, NAY, I PRAY THEE, IF NOW I HAVE FOUND GRACE IN THYHI SIGHT, THEN RECEIVE MY PRESENT AT MY HAND: FOR THEREFORE I HAVE SEEN THYEK FACE, AS THOUGH I HAD SEEN THE FACE OF GOD, AND THOU WAST PLEASED WITH ME.:M# 11 TAKE, I PRAY THEE, MY BLESSING THAT IS BROUGHT TO THEE; BECAUSE GOD HATHEN DEALT GRACIOUSLY WITH ME, AND BECAUSE I HAVE ENOUGH. AND HE URGED HIM, AND HE TOOK IT.AG# 12 AND HE SAID, LET US TAKE OUR JOURNEY, AND LET US GO, AND I WILL GOR BEFORE THEE.UL# 13 AND HE SAID UNTO HIM, MY LORD KNOWETH THAT THE CHILDREN ARE TENDER, ANDN THE FLOCKS AND HERDS WITH YOUNG ARE WITH ME: AND IF MEN SHOULD OVERDRIVE THEM! ONE DAY, ALL THE FLOCK WILL DIE.HL# 14 LET MY LORD, I PRAY THEE, PASS OVER BEFORE HIS SERVANT: AND I WILL LEADL ON SOFTLY, ACCORDING AS THE CATTLE THAT GOETH BEFORE ME AND THE CHILDREN BE5 ABLE TO ENDURE, UNTIL I COME UNTO MY LORD UNTO SEIR.NM# 15 AND ESAU SAID, LET ME NOW LEAVE WITH THEE SOME OF THE FOLK THAT ARE WITH M ME. AND HE SAID, WHAT NEEDETH IT? LET ME FIND GRACE IN THE SIGHT OF MY LORD. 4# 16 SO ESAU RETURNED THAT DAY ON HIS WAY UNTO SEIR.L# 17 AND JACOB JOURNEYED TO SUCCOTH, AND BUILT HIM AN HOUSE, AND MADE BOOTHSC FOR HIS CATTLE: THEREFORE THE NAME OF THE PLACE IS CALLED SUCCOTH.:I# 18 AND JACOB CAME TO SHALEM, A CITY OF SHECHEM, WHICH IS IN THE LAND OFAK CANAAN, WHEN HE CAME FROM PADANARAM; AND PITCHED HIS TENT BEFORE THE CITY. L# 19 AND HE BOUGHT A PARCEL OF A FIELD, WHERE HE HAD SPREAD HIS TENT, AT THEI HAND OF THE CHILDREN OF HAMOR, SHECHEMS FATHER, FOR AN HUNDRED PIECES OFD MONEY.S@# 20 AND HE ERECTED THERE AN ALTAR, AND CALLED IT ELELOHEISRAEL. = CHAPTER 34 TN# 1 AND DINAH THE DAUGHTER OF LEAH, WHICH SHE BARE UNTO JACOB, WENT OUT TO SEE THE DAUGHTERS OF THE LAND.HL# 2 AND WHEN SHECHEM THE SON OF HAMOR THE HIVITE, PRINCE OF THE COUNTRY, SAW5 HER, HE TOOK HER, AND LAY WITH HER, AND DEFILED HER. I# 3 AND HIS SOUL CLAVE UNTO DINAH THE DAUGHTER OF JACOB, AND HE LOVED THED* DAMSEL, AND SPAKE KINDLY UNTO THE DAMSEL.J# 4 AND SHECHEM SPAKE UNTO HIS FATHER HAMOR, SAYING, GET ME THIS DAMSEL TO WIFE.M# 5 AND JACOB HEARD THAT HE HAD DEFILED DINAH HIS DAUGHTER: NOW HIS SONS WERE M WITH HIS CATTLE IN THE FIELD: AND JACOB HELD HIS PEACE UNTIL THEY WERE COME.SL# 6 AND HAMOR THE FATHER OF SHECHEM WENT OUT UNTO JACOB TO COMMUNE WITH HIM.K# 7 AND THE SONS OF JACOB CAME OUT OF THE FIELD WHEN THEY HEARD IT: AND THENL MEN WERE GRIEVED, AND THEY WERE VERY WROTH, BECAUSE HE HAD WROUGHT FOLLY INH ISRAEL IN LYING WITH JACOBS DAUGHTER: WHICH THING OUGHT NOT TO BE DONE.L# 8 AND HAMOR COMMUNED WITH THEM, SAYING, THE SOUL OF MY SON SHECHEM LONGETH4 FOR YOUR DAUGHTER: I PRAY YOU GIVE HER HIM TO WIFE.L# 9 AND MAKE YE MARRIAGES WITH US, AND GIVE YOUR DAUGHTERS UNTO US, AND TAKE OUR DAUGHTERS UNTO YOU.L# 10 AND YE SHALL DWELL WITH US: AND THE LAND SHALL BE BEFORE YOU; DWELL AND3 TRADE YE THEREIN, AND GET YOU POSSESSIONS THEREIN.WH# 11 AND SHECHEM SAID UNTO HER FATHER AND UNTO HER00_&:%W<%X>%+%O-%TADATADATA BRETHREN, LET ME FIND? GRACE IN YOUR EYES, AND WHAT YE SHALL SAY UNTO ME I WILL GIVE.DI# 12 ASK ME NEVER SO MUCH DOWRY AND GIFT, AND I WILL GIVE ACCORDING AS YEL3 SHALL SAY UNTO ME: BUT GIVE ME THE DAMSEL TO WIFE.OM# 13 AND THE SONS OF JACOB ANSWERED SHECHEM AND HAMOR HIS FATHER DECEITFULLY, 5 AND SAID, BECAUSE HE HAD DEFILED DINAH THEIR SISTER: L# 14 AND THEY SAID UNTO THEM, WE CANNOT DO THIS THING, TO GIVE OUR SISTER TO= ONE THAT IS UNCIRCUMCISED; FOR THAT WERE A REPROACH UNTO US:TM# 15 BUT IN THIS WILL WE CONSENT UNTO YOU: IF YE WILL BE AS WE BE, THAT EVERYS MALE OF YOU BE CIRCUMCISED;D# 16 THEN WILL WE GIVE OUR DAUGHTERS UNTO YOU, AND WE WILL TAKE YOURL DAUGHTERS TO US, AND WE WILL DWELL WITH YOU, AND WE WILL BECOME ONE PEOPLE.M# 17 BUT IF YE WILL NOT HEARKEN UNTO US, TO BE CIRCUMCISED; THEN WILL WE TAKE # OUR DAUGHTER, AND WE WILL BE GONE.4;# 18 AND THEIR WORDS PLEASED HAMOR, AND SHECHEM HAMORS SON.RK# 19 AND THE YOUNG MAN DEFERRED NOT TO DO THE THING, BECAUSE HE HAD DELIGHT I IN JACOBS DAUGHTER: AND HE WAS MORE HONOURABLE THAN ALL THE HOUSE OF HISS FATHER.H# 20 AND HAMOR AND SHECHEM HIS SON CAME UNTO THE GATE OF THEIR CITY, AND- COMMUNED WITH THE MEN OF THEIR CITY, SAYING, K# 21 THESE MEN ARE PEACEABLE WITH US; THEREFORE LET THEM DWELL IN THE LAND,EM AND TRADE THEREIN; FOR THE LAND, BEHOLD, IT IS LARGE ENOUGH FOR THEM; LET US J TAKE THEIR DAUGHTERS TO US FOR WIVES, AND LET US GIVE THEM OUR DAUGHTERS.M# 22 ONLY HEREIN WILL THE MEN CONSENT UNTO US FOR TO DWELL WITH US, TO BE ONEOH PEOPLE, IF EVERY MALE AMONG US BE CIRCUMCISED, AS THEY ARE CIRCUMCISED.L# 23 SHALL NOT THEIR CATTLE AND THEIR SUBSTANCE AND EVERY BEAST OF THEIRS BEB OURS? ONLY LET US CONSENT UNTO THEM, AND THEY WILL DWELL WITH US.K# 24 AND UNTO HAMOR AND UNTO SHECHEM HIS SON HEARKENED ALL THAT WENT OUT OF K THE GATE OF HIS CITY; AND EVERY MALE WAS CIRCUMCISED, ALL THAT WENT OUT OFT THE GATE OF HIS CITY.K# 25 AND IT CAME TO PASS ON THE THIRD DAY, WHEN THEY WERE SORE, THAT TWO OFUN THE SONS OF JACOB, SIMEON AND LEVI, DINAHS BRETHREN, TOOK EACH MAN HIS SWORD,7 AND CAME UPON THE CITY BOLDLY, AND SLEW ALL THE MALES. L# 26 AND THEY SLEW HAMOR AND SHECHEM HIS SON WITH THE EDGE OF THE SWORD, AND0 TOOK DINAH OUT OF SHECHEMS HOUSE, AND WENT OUT.I# 27 THE SONS OF JACOB CAME UPON THE SLAIN, AND SPOILED THE CITY, BECAUSET THEY HAD DEFILED THEIR SISTER. K# 28 THEY TOOK THEIR SHEEP, AND THEIR OXEN, AND THEIR ASSES, AND THAT WHICHT2 WAS IN THE CITY, AND THAT WHICH WAS IN THE FIELD,J# 29 AND ALL THEIR WEALTH, AND ALL THEIR LITTLE ONES, AND THEIR WIVES TOOK: THEY CAPTIVE, AND SPOILED EVEN ALL THAT WAS IN THE HOUSE.I# 30 AND JACOB SAID TO SIMEON AND LEVI, YE HAVE TROUBLED ME TO MAKE ME TO F STINK AMONG THE INHABITANTS OF THE LAND, AMONG THE CANAANITES AND THEM PERIZZITES: AND I BEING FEW IN NUMBER, THEY SHALL GATHER THEMSELVES TOGETHERIC AGAINST ME, AND SLAY ME; AND I SHALL BE DESTROYED, I AND MY HOUSE.HE# 31 AND THEY SAID, SHOULD HE DEAL WITH OUR SISTER AS WITH AN HARLOT? = CHAPTER 35 DN# 1 AND GOD SAID UNTO JACOB, ARISE, GO UP TO BETHEL, AND DWELL THERE: AND MAKEM THERE AN ALTAR UNTO GOD, THAT APPEARED UNTO THEE WHEN THOU FLEDDEST FROM THEN FACE OF ESAU THY BROTHER.J# 2 THEN JACOB SAID UNTO HIS HOUSEHOLD, AND TO ALL THAT WERE WITH HIM, PUTH AWAY THE STRANGE GODS THAT ARE AMONG YOU, AND BE CLEAN, AND CHANGE YOUR GARMENTS:I# 3 AND LET US ARISE, AND GO UP TO BETHEL; AND I WILL MAKE THERE AN ALTARL UNTO GOD, WHO ANSWERED ME IN THE DAY OF MY DISTRESS, AND WAS WITH ME IN THE WAY WHICH I WENT.K# 4 AND THEY GAVE UNTO JACOB ALL THE STRANGE GODS WHICH WERE IN THEIR HAND,AN AND ALL THEIR EARRINGS WHICH WERE IN THEIR EARS; AND JACOB HID THEM UNDER THE OAK WHICH WAS BY SHECHEM.K# 5 AND THEY JOURNEYED: AND THE TERROR OF GOD WAS UPON THE CITIES THAT WERE C ROUND ABOUT THEM, AND THEY DID NOT PURSUE AFTER THE SONS OF JACOB.EM# 6 SO JACOB CAME TO LUZ, WHICH IS IN THE LAND OF CANAAN, THAT IS, BETHEL, HE' AND ALL THE PEOPLE THAT WERE WITH HIM.FM# 7 AND HE BUILT THERE AN ALTAR, AND CALLED THE PLACE ELBETHEL: BECAUSE TH00_'%D%5%T6%! !EREOB GOD APPEARED UNTO HIM, WHEN HE FLED FROM THE FACE OF HIS BROTHER.L# 8 BUT DEBORAH REBEKAHS NURSE DIED, AND SHE WAS BURIED BENEATH BETHEL UNDER4 AN OAK: AND THE NAME OF IT WAS CALLED ALLONBACHUTH.I# 9 AND GOD APPEARED UNTO JACOB AGAIN, WHEN HE CAME OUT OF PADANARAM, ANDO BLESSED HIM.TK# 10 AND GOD SAID UNTO HIM, THY NAME IS JACOB: THY NAME SHALL NOT BE CALLED M ANY MORE JACOB, BUT ISRAEL SHALL BE THY NAME: AND HE CALLED HIS NAME ISRAEL.TJ# 11 AND GOD SAID UNTO HIM, I AM GOD ALMIGHTY: BE FRUITFUL AND MULTIPLY; AN NATION AND A COMPANY OF NATIONS SHALL BE OF THEE, AND KINGS SHALL COME OUT OF THY LOINS; ITM# 12 AND THE LAND WHICH I GAVE ABRAHAM AND ISAAC, TO THEE I WILL GIVE IT, ANDL- TO THY SEED AFTER THEE WILL I GIVE THE LAND.ID# 13 AND GOD WENT UP FROM HIM IN THE PLACE WHERE HE TALKED WITH HIM.L# 14 AND JACOB SET UP A PILLAR IN THE PLACE WHERE HE TALKED WITH HIM, EVEN AK PILLAR OF STONE: AND HE POURED A DRINK OFFERING THEREON, AND HE POURED OILD THEREON.HM# 15 AND JACOB CALLED THE NAME OF THE PLACE WHERE GOD SPAKE WITH HIM, BETHEL.TK# 16 AND THEY JOURNEYED FROM BETHEL; AND THERE WAS BUT A LITTLE WAY TO COMET; TO EPHRATH: AND RACHEL TRAVAILED, AND SHE HAD HARD LABOUR.TL# 17 AND IT CAME TO PASS, WHEN SHE WAS IN HARD LABOUR, THAT THE MIDWIFE SAID3 UNTO HER, FEAR NOT; THOU SHALT HAVE THIS SON ALSO.AK# 18 AND IT CAME TO PASS, AS HER SOUL WAS IN DEPARTING, (FOR SHE DIED) THATA@ SHE CALLED HIS NAME BENONI: BUT HIS FATHER CALLED HIM BENJAMIN.D# 19 AND RACHEL DIED, AND WAS BURIED IN THE WAY TO EPHRATH, WHICH IS BETHLEHEM.HI# 20 AND JACOB SET A PILLAR UPON HER GRAVE: THAT IS THE PILLAR OF RACHELSL GRAVE UNTO THIS DAY.RH# 21 AND ISRAEL JOURNEYED, AND SPREAD HIS TENT BEYOND THE TOWER OF EDAR.J# 22 AND IT CAME TO PASS, WHEN ISRAEL DWELT IN THAT LAND, THAT REUBEN WENTM AND LAY WITH BILHAH HIS FATHERS CONCUBINE: AND ISRAEL HEARD IT. NOW THE SONSN OF JACOB WERE TWELVE:J# 23 THE SONS OF LEAH; REUBEN, JACOBS FIRSTBORN, AND SIMEON, AND LEVI, AND" JUDAH, AND ISSACHAR, AND ZEBULUN:.# 24 THE SONS OF RACHEL; JOSEPH, AND BENJAMIN:A# 25 AND THE SONS OF BILHAH, RACHELS HANDMAID; DAN, AND NAPHTALI:AJ# 26 AND THE SONS OF ZILPAH, LEAHS HANDMAID: GAD, AND ASHER: THESE ARE THE4 SONS OF JACOB, WHICH WERE BORN TO HIM IN PADANARAM.M# 27 AND JACOB CAME UNTO ISAAC HIS FATHER UNTO MAMRE, UNTO THE CITY OF ARBAH,T4 WHICH IS HEBRON, WHERE ABRAHAM AND ISAAC SOJOURNED.?# 28 AND THE DAYS OF ISAAC WERE AN HUNDRED AND FOURSCORE YEARS.BM# 29 AND ISAAC GAVE UP THE GHOST, AND DIED, AND WAS GATHERED UNTO HIS PEOPLE,ND BEING OLD AND FULL OF DAYS: AND HIS SONS ESAU AND JACOB BURIED HIM. = CHAPTER 36 N7# 1 NOW THESE ARE THE GENERATIONS OF ESAU, WHO IS EDOM.MM# 2 ESAU TOOK HIS WIVES OF THE DAUGHTERS OF CANAAN; ADAH THE DAUGHTER OF ELONAL THE HITTITE, AND AHOLIBAMAH THE DAUGHTER OF ANAH THE DAUGHTER OF ZIBEON THE HIVITE;8# 3 AND BASHEMATH ISHMAELS DAUGHTER, SISTER OF NEBAJOTH.<# 4 AND ADAH BARE TO ESAU ELIPHAZ; AND BASHEMATH BARE REUEL;K# 5 AND AHOLIBAMAH BARE JEUSH, AND JAALAM, AND KORAH: THESE ARE THE SONS OFE6 ESAU, WHICH WERE BORN UNTO HIM IN THE LAND OF CANAAN.I# 6 AND ESAU TOOK HIS WIVES, AND HIS SONS, AND HIS DAUGHTERS, AND ALL THE,F PERSONS OF HIS HOUSE, AND HIS CATTLE, AND ALL HIS BEASTS, AND ALL HISM SUBSTANCE, WHICH HE HAD GOT IN THE LAND OF CANAAN; AND WENT INTO THE COUNTRYA$ FROM THE FACE OF HIS BROTHER JACOB.K# 7 FOR THEIR RICHES WERE MORE THAN THAT THEY MIGHT DWELL TOGETHER; AND THE N LAND WHEREIN THEY WERE STRANGERS COULD NOT BEAR THEM BECAUSE OF THEIR CATTLE.0# 8 THUS DWELT ESAU IN MOUNT SEIR: ESAU IS EDOM.M# 9 AND THESE ARE THE GENERATIONS OF ESAU THE FATHER OF THE EDOMITES IN MOUNTN SEIR:K# 10 THESE ARE THE NAMES OF ESAUS SONS; ELIPHAZ THE SON OF ADAH THE WIFE OFS3 ESAU, REUEL THE SON OF BASHEMATH THE WIFE OF ESAU. K# 11 AND THE SONS OF ELIPHAZ WERE TEMAN, OMAR, ZEPHO, AND GATAM, AND KENAZ. J# 12 AND TIMNA WAS CONCUBINE TO ELIPHAZ ESAUS SON; AND SHE BARE TO ELIPHAZ0 AMALEK: THESE WERE THE SONS OF ADAH ESAUS WIFE.M# 13 AND THESE ARE THE SONS OF REUEL; NAHATH, AND ZERAH, SHAMMAH, 00_':%W<%X>%+%O-%TADATADATAAND MIZZAH: - THESE WERE THE SONS OF BASHEMATH ESAUS WIFE.EM# 14 AND THESE WERE THE SONS OF AHOLIBAMAH, THE DAUGHTER OF ANAH THE DAUGHTERSJ OF ZIBEON, ESAUS WIFE: AND SHE BARE TO ESAU JEUSH, AND JAALAM, AND KORAH.L# 15 THESE WERE DUKES OF THE SONS OF ESAU: THE SONS OF ELIPHAZ THE FIRSTBORN< SON OF ESAU; DUKE TEMAN, DUKE OMAR, DUKE ZEPHO, DUKE KENAZ,K# 16 DUKE KORAH, DUKE GATAM, AND DUKE AMALEK: THESE ARE THE DUKES THAT CAMEE= OF ELIPHAZ IN THE LAND OF EDOM; THESE WERE THE SONS OF ADAH.EM# 17 AND THESE ARE THE SONS OF REUEL ESAUS SON; DUKE NAHATH, DUKE ZERAH, DUKE4L SHAMMAH, DUKE MIZZAH: THESE ARE THE DUKES THAT CAME OF REUEL IN THE LAND OF2 EDOM; THESE ARE THE SONS OF BASHEMATH ESAUS WIFE.F# 18 AND THESE ARE THE SONS OF AHOLIBAMAH ESAUS WIFE; DUKE JEUSH, DUKEN JAALAM, DUKE KORAH: THESE WERE THE DUKES THAT CAME OF AHOLIBAMAH THE DAUGHTER OF ANAH, ESAUS WIFE.AH# 19 THESE ARE THE SONS OF ESAU, WHO IS EDOM, AND THESE ARE THEIR DUKES.J# 20 THESE ARE THE SONS OF SEIR THE HORITE, WHO INHABITED THE LAND; LOTAN," AND SHOBAL, AND ZIBEON, AND ANAH,J# 21 AND DISHON, AND EZER, AND DISHAN: THESE ARE THE DUKES OF THE HORITES,* THE CHILDREN OF SEIR IN THE LAND OF EDOM.I# 22 AND THE CHILDREN OF LOTAN WERE HORI AND HEMAM; AND LOTANS SISTER WASS TIMNA. J# 23 AND THE CHILDREN OF SHOBAL WERE THESE; ALVAN, AND MANAHATH, AND EBAL, SHEPHO, AND ONAM.M# 24 AND THESE ARE THE CHILDREN OF ZIBEON; BOTH AJAH, AND ANAH: THIS WAS THATSK ANAH THAT FOUND THE MULES IN THE WILDERNESS, AS HE FED THE ASSES OF ZIBEON HIS FATHER.M# 25 AND THE CHILDREN OF ANAH WERE THESE; DISHON, AND AHOLIBAMAH THE DAUGHTERT OF ANAH.EJ# 26 AND THESE ARE THE CHILDREN OF DISHON; HEMDAN, AND ESHBAN, AND ITHRAN, AND CHERAN.B# 27 THE CHILDREN OF EZER ARE THESE; BILHAN, AND ZAAVAN, AND AKAN.4# 28 THE CHILDREN OF DISHAN ARE THESE; UZ, AND ARAN.K# 29 THESE ARE THE DUKES THAT CAME OF THE HORITES; DUKE LOTAN, DUKE SHOBAL,O DUKE ZIBEON, DUKE ANAH,J# 30 DUKE DISHON, DUKE EZER, DUKE DISHAN: THESE ARE THE DUKES THAT CAME OF- HORI, AMONG THEIR DUKES IN THE LAND OF SEIR.DK# 31 AND THESE ARE THE KINGS THAT REIGNED IN THE LAND OF EDOM, BEFORE THERE6. REIGNED ANY KING OVER THE CHILDREN OF ISRAEL.K# 32 AND BELA THE SON OF BEOR REIGNED IN EDOM: AND THE NAME OF HIS CITY WASL DINHABAH.G# 33 AND BELA DIED, AND JOBAB THE SON OF ZERAH OF BOZRAH REIGNED IN HIS9 STEAD.EK# 34 AND JOBAB DIED, AND HUSHAM OF THE LAND OF TEMANI REIGNED IN HIS STEAD. I# 35 AND HUSHAM DIED, AND HADAD THE SON OF BEDAD, WHO SMOTE MIDIAN IN THEHI FIELD OF MOAB, REIGNED IN HIS STEAD: AND THE NAME OF HIS CITY WAS AVITH.AA# 36 AND HADAD DIED, AND SAMLAH OF MASREKAH REIGNED IN HIS STEAD.NM# 37 AND SAMLAH DIED, AND SAUL OF REHOBOTH BY THE RIVER REIGNED IN HIS STEAD. I# 38 AND SAUL DIED, AND BAALHANAN THE SON OF ACHBOR REIGNED IN HIS STEAD. J# 39 AND BAALHANAN THE SON OF ACHBOR DIED, AND HADAR REIGNED IN HIS STEAD:H AND THE NAME OF HIS CITY WAS PAU; AND HIS WIFES NAME WAS MEHETABEL, THE- DAUGHTER OF MATRED, THE DAUGHTER OF MEZAHAB. I# 40 AND THESE ARE THE NAMES OF THE DUKES THAT CAME OF ESAU, ACCORDING TOIM THEIR FAMILIES, AFTER THEIR PLACES, BY THEIR NAMES; DUKE TIMNAH, DUKE ALVAH,D DUKE JETHETH,,# 41 DUKE AHOLIBAMAH, DUKE ELAH, DUKE PINON,)# 42 DUKE KENAZ, DUKE TEMAN, DUKE MIBZAR,NL# 43 DUKE MAGDIEL, DUKE IRAM: THESE BE THE DUKES OF EDOM, ACCORDING TO THEIRJ HABITATIONS IN THE LAND OF THEIR POSSESSION: HE IS ESAU THE FATHER OF THE EDOMITES. = CHAPTER 37 MN# 1 AND JACOB DWELT IN THE LAND WHEREIN HIS FATHER WAS A STRANGER, IN THE LAND OF CANAAN.NJ# 2 THESE ARE THE GENERATIONS OF JACOB. JOSEPH, BEING SEVENTEEN YEARS OLD,J WAS FEEDING THE FLOCK WITH HIS BRETHREN; AND THE LAD WAS WITH THE SONS OFK BILHAH, AND WITH THE SONS OF ZILPAH, HIS FATHERS WIVES: AND JOSEPH BROUGHTI# UNTO HIS FATHER THEIR EVIL REPORT. J# 3 NOW ISRAEL LOVED JOSEPH MORE THAN ALL HIS CHILDREN, BECAUSE HE WAS THE< SON OF HIS OLD AGE: AND HE MADE HIM A COAT OF MANY COLOURS.K# 4 AND WHEN HIS BRETHREN SAW THAT THEIR FATHER LOVED HIM MORE THAN ALL HISEB BRETHREN, THEY HATED HIM, AND COULD NOT SPE00_'%D%5%T6%! !AK PEACEABLY UNTO HIM.K# 5 AND JOSEPH DREAMED A DREAM, AND HE TOLD IT HIS BRETHREN: AND THEY HATEDN HIM YET THE MORE.M# 6 AND HE SAID UNTO THEM, HEAR, I PRAY YOU, THIS DREAM WHICH I HAVE DREAMED:SH# 7 FOR, BEHOLD, WE WERE BINDING SHEAVES IN THE FIELD, AND, LO, MY SHEAFL AROSE, AND ALSO STOOD UPRIGHT; AND, BEHOLD, YOUR SHEAVES STOOD ROUND ABOUT, AND MADE OBEISANCE TO MY SHEAF.K# 8 AND HIS BRETHREN SAID TO HIM, SHALT THOU INDEED REIGN OVER US? OR SHALTIK THOU INDEED HAVE DOMINION OVER US? AND THEY HATED HIM YET THE MORE FOR HISN DREAMS, AND FOR HIS WORDS. I# 9 AND HE DREAMED YET ANOTHER DREAM, AND TOLD IT HIS BRETHREN, AND SAID,IK BEHOLD, I HAVE DREAMED A DREAM MORE; AND, BEHOLD, THE SUN AND THE MOON ANDH' THE ELEVEN STARS MADE OBEISANCE TO ME.,F# 10 AND HE TOLD IT TO HIS FATHER, AND TO HIS BRETHREN: AND HIS FATHERK REBUKED HIM, AND SAID UNTO HIM, WHAT IS THIS DREAM THAT THOU HAST DREAMED?RM SHALL I AND THY MOTHER AND THY BRETHREN INDEED COME TO BOW DOWN OURSELVES TOO THEE TO THE EARTH?HE# 11 AND HIS BRETHREN ENVIED HIM; BUT HIS FATHER OBSERVED THE SAYING.NB# 12 AND HIS BRETHREN WENT TO FEED THEIR FATHERS FLOCK IN SHECHEM.G# 13 AND ISRAEL SAID UNTO JOSEPH, DO NOT THY BRETHREN FEED THE FLOCK IN N SHECHEM? COME, AND I WILL SEND THEE UNTO THEM. AND HE SAID TO HIM, HERE AM I.I# 14 AND HE SAID TO HIM, GO, I PRAY THEE, SEE WHETHER IT BE WELL WITH THYAL BRETHREN, AND WELL WITH THE FLOCKS; AND BRING ME WORD AGAIN. SO HE SENT HIM3 OUT OF THE VALE OF HEBRON, AND HE CAME TO SHECHEM.TM# 15 AND A CERTAIN MAN FOUND HIM, AND, BEHOLD, HE WAS WANDERING IN THE FIELD:G2 AND THE MAN ASKED HIM, SAYING, WHAT SEEKEST THOU?K# 16 AND HE SAID, I SEEK MY BRETHREN: TELL ME, I PRAY THEE, WHERE THEY FEEDD THEIR FLOCKS.L# 17 AND THE MAN SAID, THEY ARE DEPARTED HENCE; FOR I HEARD THEM SAY, LET USL GO TO DOTHAN. AND JOSEPH WENT AFTER HIS BRETHREN, AND FOUND THEM IN DOTHAN.M# 18 AND WHEN THEY SAW HIM AFAR OFF, EVEN BEFORE HE CAME NEAR UNTO THEM, THEYO# CONSPIRED AGAINST HIM TO SLAY HIM. ?# 19 AND THEY SAID ONE TO ANOTHER, BEHOLD, THIS DREAMER COMETH.AM# 20 COME NOW THEREFORE, AND LET US SLAY HIM, AND CAST HIM INTO SOME PIT, ANDK WE WILL SAY, SOME EVIL BEAST HATH DEVOURED HIM: AND WE SHALL SEE WHAT WILL BECOME OF HIS DREAMS.L# 21 AND REUBEN HEARD IT, AND HE DELIVERED HIM OUT OF THEIR HANDS; AND SAID, LET US NOT KILL HIM.AI# 22 AND REUBEN SAID UNTO THEM, SHED NO BLOOD, BUT CAST HIM INTO THIS PITAK THAT IS IN THE WILDERNESS, AND LAY NO HAND UPON HIM; THAT HE MIGHT RID HIML8 OUT OF THEIR HANDS, TO DELIVER HIM TO HIS FATHER AGAIN.K# 23 AND IT CAME TO PASS, WHEN JOSEPH WAS COME UNTO HIS BRETHREN, THAT THEYII STRIPT JOSEPH OUT OF HIS COAT, HIS COAT OF MANY COLOURS THAT WAS ON HIM; M# 24 AND THEY TOOK HIM, AND CAST HIM INTO A PIT: AND THE PIT WAS EMPTY, THERED WAS NO WATER IN IT.F# 25 AND THEY SAT DOWN TO EAT BREAD: AND THEY LIFTED UP THEIR EYES ANDJ LOOKED, AND, BEHOLD, A COMPANY OF ISHMEELITES CAME FROM GILEAD WITH THEIRL CAMELS BEARING SPICERY AND BALM AND MYRRH, GOING TO CARRY IT DOWN TO EGYPT.G# 26 AND JUDAH SAID UNTO HIS BRETHREN, WHAT PROFIT IS IT IF WE SLAY OUR BROTHER, AND CONCEAL HIS BLOOD?J# 27 COME, AND LET US SELL HIM TO THE ISHMEELITES, AND LET NOT OUR HAND BEN UPON HIM; FOR HE IS OUR BROTHER AND OUR FLESH. AND HIS BRETHREN WERE CONTENT.M# 28 THEN THERE PASSED BY MIDIANITES MERCHANTMEN; AND THEY DREW AND LIFTED UP L JOSEPH OUT OF THE PIT, AND SOLD JOSEPH TO THE ISHMEELITES FOR TWENTY PIECES/ OF SILVER: AND THEY BROUGHT JOSEPH INTO EGYPT.DI# 29 AND REUBEN RETURNED UNTO THE PIT; AND, BEHOLD, JOSEPH WAS NOT IN THEH PIT; AND HE RENT HIS CLOTHES.J# 30 AND HE RETURNED UNTO HIS BRETHREN, AND SAID, THE CHILD IS NOT; AND I, WHITHER SHALL I GO?J# 31 AND THEY TOOK JOSEPHS COAT, AND KILLED A KID OF THE GOATS, AND DIPPED THE COAT IN THE BLOOD; I# 32 AND THEY SENT THE COAT OF MANY COLOURS, AND THEY BROUGHT IT TO THEIR N FATHER; AND SAID, THIS HAVE WE FOUND: KNOW NOW WHETHER IT BE THY SONS COAT OR NO.E# 33 AND HE KNEW IT, AND SAID, IT IS MY SONS COAT; AN EVIL BEAST HATHT6 DEVOURED HIM;00_':%W<%X>%+%O-%TADATADATA JOSEPH IS WITHOUT DOUBT RENT IN PIECES.F# 34 AND JACOB RENT HIS CLOTHES, AND PUT SACKCLOTH UPON HIS LOINS, AND MOURNED FOR HIS SON MANY DAYS.HJ# 35 AND ALL HIS SONS AND ALL HIS DAUGHTERS ROSE UP TO COMFORT HIM; BUT HEM REFUSED TO BE COMFORTED; AND HE SAID, FOR I WILL GO DOWN INTO THE GRAVE UNTOO/ MY SON MOURNING. THUS HIS FATHER WEPT FOR HIM.DH# 36 AND THE MIDIANITES SOLD HIM INTO EGYPT UNTO POTIPHAR, AN OFFICER OF$ PHARAOHS, AND CAPTAIN OF THE GUARD. = CHAPTER 38 M# 1 AND IT CAME TO PASS AT THAT TIME, THAT JUDAH WENT DOWN FROM HIS BRETHREN,A= AND TURNED IN TO A CERTAIN ADULLAMITE, WHOSE NAME WAS HIRAH.DI# 2 AND JUDAH SAW THERE A DAUGHTER OF A CERTAIN CANAANITE, WHOSE NAME WAST. SHUAH; AND HE TOOK HER, AND WENT IN UNTO HER.A# 3 AND SHE CONCEIVED, AND BARE A SON; AND HE CALLED HIS NAME ER.J# 4 AND SHE CONCEIVED AGAIN, AND BARE A SON; AND SHE CALLED HIS NAME ONAN.L# 5 AND SHE YET AGAIN CONCEIVED, AND BARE A SON; AND CALLED HIS NAME SHELAH:) AND HE WAS AT CHEZIB, WHEN SHE BARE HIM.PE# 6 AND JUDAH TOOK A WIFE FOR ER HIS FIRSTBORN, WHOSE NAME WAS TAMAR. J# 7 AND ER, JUDAHS FIRSTBORN, WAS WICKED IN THE SIGHT OF THE LORD; AND THE LORD SLEW HIM.EJ# 8 AND JUDAH SAID UNTO ONAN, GO IN UNTO THY BROTHERS WIFE, AND MARRY HER," AND RAISE UP SEED TO THY BROTHER.L# 9 AND ONAN KNEW THAT THE SEED SHOULD NOT BE HIS; AND IT CAME TO PASS, WHENJ HE WENT IN UNTO HIS BROTHERS WIFE, THAT HE SPILLED IT ON THE GROUND, LEST) THAT HE SHOULD GIVE SEED TO HIS BROTHER.HJ# 10 AND THE THING WHICH HE DID DISPLEASED THE LORD: WHEREFORE HE SLEW HIM ALSO.H# 11 THEN SAID JUDAH TO TAMAR HIS DAUGHTER IN LAW, REMAIN A WIDOW AT THYN FATHERS HOUSE, TILL SHELAH MY SON BE GROWN: FOR HE SAID, LEST PERADVENTURE HEN DIE ALSO, AS HIS BRETHREN DID. AND TAMAR WENT AND DWELT IN HER FATHERS HOUSE.M# 12 AND IN PROCESS OF TIME THE DAUGHTER OF SHUAH JUDAHS WIFE DIED; AND JUDAH I WAS COMFORTED, AND WENT UP UNTO HIS SHEEPSHEARERS TO TIMNATH, HE AND HISA FRIEND HIRAH THE ADULLAMITE.OH# 13 AND IT WAS TOLD TAMAR, SAYING, BEHOLD THY FATHER IN LAW GOETH UP TO TIMNATH TO SHEAR HIS SHEEP.I# 14 AND SHE PUT HER WIDOWS GARMENTS OFF FROM HER, AND COVERED HER WITH AEL VAIL, AND WRAPPED HERSELF, AND SAT IN AN OPEN PLACE, WHICH IS BY THE WAY TON TIMNATH; FOR SHE SAW THAT SHELAH WAS GROWN, AND SHE WAS NOT GIVEN UNTO HIM TO WIFE.H# 15 WHEN JUDAH SAW HER, HE THOUGHT HER TO BE AN HARLOT; BECAUSE SHE HAD COVERED HER FACE.L# 16 AND HE TURNED UNTO HER BY THE WAY, AND SAID, GO TO, I PRAY THEE, LET MEK COME IN UNTO THEE; (FOR HE KNEW NOT THAT SHE WAS HIS DAUGHTER IN LAW.) ANDHD SHE SAID, WHAT WILT THOU GIVE ME, THAT THOU MAYEST COME IN UNTO ME?K# 17 AND HE SAID, I WILL SEND THEE A KID FROM THE FLOCK. AND SHE SAID, WILTA* THOU GIVE ME A PLEDGE, TILL THOU SEND IT?J# 18 AND HE SAID, WHAT PLEDGE SHALL I GIVE THEE? AND SHE SAID, THY SIGNET,L AND THY BRACELETS, AND THY STAFF THAT IS IN THINE HAND. AND HE GAVE IT HER,0 AND CAME IN UNTO HER, AND SHE CONCEIVED BY HIM.L# 19 AND SHE AROSE, AND WENT AWAY, AND LAID BY HER VAIL FROM HER, AND PUT ON THE GARMENTS OF HER WIDOWHOOD. H# 20 AND JUDAH SENT THE KID BY THE HAND OF HIS FRIEND THE ADULLAMITE, TO? RECEIVE HIS PLEDGE FROM THE WOMANS HAND: BUT HE FOUND HER NOT.EK# 21 THEN HE ASKED THE MEN OF THAT PLACE, SAYING, WHERE IS THE HARLOT, THATHN WAS OPENLY BY THE WAY SIDE? AND THEY SAID, THERE WAS NO HARLOT IN THIS PLACE.L# 22 AND HE RETURNED TO JUDAH, AND SAID, I CANNOT FIND HER; AND ALSO THE MEN; OF THE PLACE SAID, THAT THERE WAS NO HARLOT IN THIS PLACE.AI# 23 AND JUDAH SAID, LET HER TAKE IT TO HER, LEST WE BE SHAMED: BEHOLD, I, SENT THIS KID, AND THOU HAST NOT FOUND HER.J# 24 AND IT CAME TO PASS ABOUT THREE MONTHS AFTER, THAT IT WAS TOLD JUDAH,L SAYING, TAMAR THY DAUGHTER IN LAW HATH PLAYED THE HARLOT; AND ALSO, BEHOLD,L SHE IS WITH CHILD BY WHOREDOM. AND JUDAH SAID, BRING HER FORTH, AND LET HER BE BURNT.J# 25 WHEN SHE WAS BROUGHT FORTH, SHE SENT TO HER FATHER IN LAW, SAYING, BYI THE MAN, WHOSE THESE ARE, AM I WITH CHILD: AND SHE SAID, DISCERN, I PRAY3= THEE, WHOSE ARE THESE, THE SIGNET, AN00_ '%D%5%T6%! !D BRACELETS, AND STAFF.OM# 26 AND JUDAH ACKNOWLEDGED THEM, AND SAID, SHE HATH BEEN MORE RIGHTEOUS THANAJ I; BECAUSE THAT I GAVE HER NOT TO SHELAH MY SON. AND HE KNEW HER AGAIN NO MORE.M# 27 AND IT CAME TO PASS IN THE TIME OF HER TRAVAIL, THAT, BEHOLD, TWINS WERE IN HER WOMB.NL# 28 AND IT CAME TO PASS, WHEN SHE TRAVAILED, THAT THE ONE PUT OUT HIS HAND:L AND THE MIDWIFE TOOK AND BOUND UPON HIS HAND A SCARLET THREAD, SAYING, THIS CAME OUT FIRST.M# 29 AND IT CAME TO PASS, AS HE DREW BACK HIS HAND, THAT, BEHOLD, HIS BROTHERN CAME OUT: AND SHE SAID, HOW HAST THOU BROKEN FORTH? THIS BREACH BE UPON THEE:& THEREFORE HIS NAME WAS CALLED PHAREZ.M# 30 AND AFTERWARD CAME OUT HIS BROTHER, THAT HAD THE SCARLET THREAD UPON HISE% HAND: AND HIS NAME WAS CALLED ZARAH.R = CHAPTER 39 BN# 1 AND JOSEPH WAS BROUGHT DOWN TO EGYPT; AND POTIPHAR, AN OFFICER OF PHARAOH,B CAPTAIN OF THE GUARD, AN EGYPTIAN, BOUGHT HIM OF THE HANDS OF THE1 ISHMEELITES, WHICH HAD BROUGHT HIM DOWN THITHER.AL# 2 AND THE LORD WAS WITH JOSEPH, AND HE WAS A PROSPEROUS MAN; AND HE WAS IN& THE HOUSE OF HIS MASTER THE EGYPTIAN.M# 3 AND HIS MASTER SAW THAT THE LORD WAS WITH HIM, AND THAT THE LORD MADE ALLC$ THAT HE DID TO PROSPER IN HIS HAND.K# 4 AND JOSEPH FOUND GRACE IN HIS SIGHT, AND HE SERVED HIM: AND HE MADE HIMC OVERSEER OVER HIS HOUSE, AND ALL THAT HE HAD HE PUT INTO HIS HAND. J# 5 AND IT CAME TO PASS FROM THE TIME THAT HE HAD MADE HIM OVERSEER IN HISK HOUSE, AND OVER ALL THAT HE HAD, THAT THE LORD BLESSED THE EGYPTIANS HOUSETK FOR JOSEPHS SAKE; AND THE BLESSING OF THE LORD WAS UPON ALL THAT HE HAD INR THE HOUSE, AND IN THE FIELD.TI# 6 AND HE LEFT ALL THAT HE HAD IN JOSEPHS HAND; AND HE KNEW NOT OUGHT HEDJ HAD, SAVE THE BREAD WHICH HE DID EAT. AND JOSEPH WAS A GOODLY PERSON, AND WELL FAVOURED.MJ# 7 AND IT CAME TO PASS AFTER THESE THINGS, THAT HIS MASTERS WIFE CAST HER- EYES UPON JOSEPH; AND SHE SAID, LIE WITH ME.HM# 8 BUT HE REFUSED, AND SAID UNTO HIS MASTERS WIFE, BEHOLD, MY MASTER WOTTETH L NOT WHAT IS WITH ME IN THE HOUSE, AND HE HATH COMMITTED ALL THAT HE HATH TO MY HAND;LM# 9 THERE IS NONE GREATER IN THIS HOUSE THAN I; NEITHER HATH HE KEPT BACK ANYAJ THING FROM ME BUT THEE, BECAUSE THOU ART HIS WIFE: HOW THEN CAN I DO THIS' GREAT WICKEDNESS, AND SIN AGAINST GOD?AD# 10 AND IT CAME TO PASS, AS SHE SPAKE TO JOSEPH DAY BY DAY, THAT HE: HEARKENED NOT UNTO HER, TO LIE BY HER, OR TO BE WITH HER.L# 11 AND IT CAME TO PASS ABOUT THIS TIME, THAT JOSEPH WENT INTO THE HOUSE TOJ DO HIS BUSINESS; AND THERE WAS NONE OF THE MEN OF THE HOUSE THERE WITHIN.L# 12 AND SHE CAUGHT HIM BY HIS GARMENT, SAYING, LIE WITH ME: AND HE LEFT HIS0 GARMENT IN HER HAND, AND FLED, AND GOT HIM OUT.J# 13 AND IT CAME TO PASS, WHEN SHE SAW THAT HE HAD LEFT HIS GARMENT IN HER HAND, AND WAS FLED FORTH,L# 14 THAT SHE CALLED UNTO THE MEN OF HER HOUSE, AND SPAKE UNTO THEM, SAYING,L SEE, HE HATH BROUGHT IN AN HEBREW UNTO US TO MOCK US; HE CAME IN UNTO ME TO, LIE WITH ME, AND I CRIED WITH A LOUD VOICE:L# 15 AND IT CAME TO PASS, WHEN HE HEARD THAT I LIFTED UP MY VOICE AND CRIED,= THAT HE LEFT HIS GARMENT WITH ME, AND FLED, AND GOT HIM OUT.AB# 16 AND SHE LAID UP HIS GARMENT BY HER, UNTIL HIS LORD CAME HOME.H# 17 AND SHE SPAKE UNTO HIM ACCORDING TO THESE WORDS, SAYING, THE HEBREWF SERVANT, WHICH THOU HAST BROUGHT UNTO US, CAME IN UNTO ME TO MOCK ME:M# 18 AND IT CAME TO PASS, AS I LIFTED UP MY VOICE AND CRIED, THAT HE LEFT HIS  GARMENT WITH ME, AND FLED OUT.LL# 19 AND IT CAME TO PASS, WHEN HIS MASTER HEARD THE WORDS OF HIS WIFE, WHICHN SHE SPAKE UNTO HIM, SAYING, AFTER THIS MANNER DID THY SERVANT TO ME; THAT HIS WRATH WAS KINDLED.OL# 20 AND JOSEPHS MASTER TOOK HIM, AND PUT HIM INTO THE PRISON, A PLACE WHERE@ THE KINGS PRISONERS WERE BOUND: AND HE WAS THERE IN THE PRISON.L# 21 BUT THE LORD WAS WITH JOSEPH, AND SHEWED HIM MERCY, AND GAVE HIM FAVOUR* IN THE SIGHT OF THE KEEPER OF THE PRISON.M# 22 AND THE KEEPER OF THE PRISON COMMITTED TO JOSEPHS HAND ALL THE PRISONERS K THAT WERE IN THE PRISON; AND WHATSOEVER THEY DID THERE, HE WAS THE DOER OFU00_(':%W<%X>%+%O-%TADATADATA IT.H# 23 THE KEEPER OF THE PRISON LOOKED NOT TO ANY THING THAT WAS UNDER HISM HAND; BECAUSE THE LORD WAS WITH HIM, AND THAT WHICH HE DID, THE LORD MADE ITE TO PROSPER. = CHAPTER 40 WJ# 1 AND IT CAME TO PASS AFTER THESE THINGS, THAT THE BUTLER OF THE KING OF? EGYPT AND HIS BAKER HAD OFFENDED THEIR LORD THE KING OF EGYPT.EK# 2 AND PHARAOH WAS WROTH AGAINST TWO OF HIS OFFICERS, AGAINST THE CHIEF OFS2 THE BUTLERS, AND AGAINST THE CHIEF OF THE BAKERS.J# 3 AND HE PUT THEM IN WARD IN THE HOUSE OF THE CAPTAIN OF THE GUARD, INTO. THE PRISON, THE PLACE WHERE JOSEPH WAS BOUND.H# 4 AND THE CAPTAIN OF THE GUARD CHARGED JOSEPH WITH THEM, AND HE SERVED+ THEM: AND THEY CONTINUED A SEASON IN WARD. K# 5 AND THEY DREAMED A DREAM BOTH OF THEM, EACH MAN HIS DREAM IN ONE NIGHT,YJ EACH MAN ACCORDING TO THE INTERPRETATION OF HIS DREAM, THE BUTLER AND THE< BAKER OF THE KING OF EGYPT, WHICH WERE BOUND IN THE PRISON.K# 6 AND JOSEPH CAME IN UNTO THEM IN THE MORNING, AND LOOKED UPON THEM, AND,W BEHOLD, THEY WERE SAD.AH# 7 AND HE ASKED PHARAOHS OFFICERS THAT WERE WITH HIM IN THE WARD OF HIS8 LORDS HOUSE, SAYING, WHEREFORE LOOK YE SO SADLY TO DAY?D# 8 AND THEY SAID UNTO HIM, WE HAVE DREAMED A DREAM, AND THERE IS NOL INTERPRETER OF IT. AND JOSEPH SAID UNTO THEM, DO NOT INTERPRETATIONS BELONG" TO GOD? TELL ME THEM, I PRAY YOU.I# 9 AND THE CHIEF BUTLER TOLD HIS DREAM TO JOSEPH, AND SAID TO HIM, IN MYN% DREAM, BEHOLD, A VINE WAS BEFORE ME;NM# 10 AND IN THE VINE WERE THREE BRANCHES: AND IT WAS AS THOUGH IT BUDDED, ANDAM HER BLOSSOMS SHOT FORTH; AND THE CLUSTERS THEREOF BROUGHT FORTH RIPE GRAPES:RM# 11 AND PHARAOHS CUP WAS IN MY HAND: AND I TOOK THE GRAPES, AND PRESSED THEMM: INTO PHARAOHS CUP, AND I GAVE THE CUP INTO PHARAOHS HAND.J# 12 AND JOSEPH SAID UNTO HIM, THIS IS THE INTERPRETATION OF IT: THE THREE BRANCHES ARE THREE DAYS:NM# 13 YET WITHIN THREE DAYS SHALL PHARAOH LIFT UP THINE HEAD, AND RESTORE THEEEM UNTO THY PLACE: AND THOU SHALT DELIVER PHARAOHS CUP INTO HIS HAND, AFTER THEW) FORMER MANNER WHEN THOU WAST HIS BUTLER. J# 14 BUT THINK ON ME WHEN IT SHALL BE WELL WITH THEE, AND SHEW KINDNESS, IM PRAY THEE, UNTO ME, AND MAKE MENTION OF ME UNTO PHARAOH, AND BRING ME OUT OFR THIS HOUSE:J# 15 FOR INDEED I WAS STOLEN AWAY OUT OF THE LAND OF THE HEBREWS: AND HEREC ALSO HAVE I DONE NOTHING THAT THEY SHOULD PUT ME INTO THE DUNGEON.YL# 16 WHEN THE CHIEF BAKER SAW THAT THE INTERPRETATION WAS GOOD, HE SAID UNTOM JOSEPH, I ALSO WAS IN MY DREAM, AND, BEHOLD, I HAD THREE WHITE BASKETS ON MYR HEAD:I# 17 AND IN THE UPPERMOST BASKET THERE WAS OF ALL MANNER OF BAKEMEATS FORWD PHARAOH; AND THE BIRDS DID EAT THEM OUT OF THE BASKET UPON MY HEAD.J# 18 AND JOSEPH ANSWERED AND SAID, THIS IS THE INTERPRETATION THEREOF: THE THREE BASKETS ARE THREE DAYS:L# 19 YET WITHIN THREE DAYS SHALL PHARAOH LIFT UP THY HEAD FROM OFF THEE, ANDL SHALL HANG THEE ON A TREE; AND THE BIRDS SHALL EAT THY FLESH FROM OFF THEE.L# 20 AND IT CAME TO PASS THE THIRD DAY, WHICH WAS PHARAOHS BIRTHDAY, THAT HEK MADE A FEAST UNTO ALL HIS SERVANTS: AND HE LIFTED UP THE HEAD OF THE CHIEFA2 BUTLER AND OF THE CHIEF BAKER AMONG HIS SERVANTS.L# 21 AND HE RESTORED THE CHIEF BUTLER UNTO HIS BUTLERSHIP AGAIN; AND HE GAVE THE CUP INTO PHARAOHS HAND:F# 22 BUT HE HANGED THE CHIEF BAKER: AS JOSEPH HAD INTERPRETED TO THEM.B# 23 YET DID NOT THE CHIEF BUTLER REMEMBER JOSEPH, BUT FORGAT HIM. = CHAPTER 41 K# 1 AND IT CAME TO PASS AT THE END OF TWO FULL YEARS, THAT PHARAOH DREAMED:D$ AND, BEHOLD, HE STOOD BY THE RIVER.L# 2 AND, BEHOLD, THERE CAME UP OUT OF THE RIVER SEVEN WELL FAVOURED KINE AND& FATFLESHED; AND THEY FED IN A MEADOW.J# 3 AND, BEHOLD, SEVEN OTHER KINE CAME UP AFTER THEM OUT OF THE RIVER, ILLL FAVOURED AND LEANFLESHED; AND STOOD BY THE OTHER KINE UPON THE BRINK OF THE RIVER.JG# 4 AND THE ILL FAVOURED AND LEANFLESHED KINE DID EAT UP THE SEVEN WELLR) FAVOURED AND FAT KINE. SO PHARAOH AWOKE. M# 5 AND HE SLEPT AND DREAMED THE SECOND TIME: AND, BEHOLD, SEVEN EARS OF CORND' CAME UP UPON ONE STALK, RANK AND GOOD.,I# 6 AND, BEHOLD, SEVEN THI00_0'%D%5%T6%! !N EARS AND BLASTED WITH THE EAST WIND SPRUNG UPL AFTER THEM.F# 7 AND THE SEVEN THIN EARS DEVOURED THE SEVEN RANK AND FULL EARS. AND, PHARAOH AWOKE, AND, BEHOLD, IT WAS A DREAM.K# 8 AND IT CAME TO PASS IN THE MORNING THAT HIS SPIRIT WAS TROUBLED; AND HE N SENT AND CALLED FOR ALL THE MAGICIANS OF EGYPT, AND ALL THE WISE MEN THEREOF:N AND PHARAOH TOLD THEM HIS DREAM; BUT THERE WAS NONE THAT COULD INTERPRET THEM UNTO PHARAOH.M# 9 THEN SPAKE THE CHIEF BUTLER UNTO PHARAOH, SAYING, I DO REMEMBER MY FAULTS THIS DAY:K# 10 PHARAOH WAS WROTH WITH HIS SERVANTS, AND PUT ME IN WARD IN THE CAPTAIN 2 OF THE GUARDS HOUSE, BOTH ME AND THE CHIEF BAKER:G# 11 AND WE DREAMED A DREAM IN ONE NIGHT, I AND HE; WE DREAMED EACH MANI. ACCORDING TO THE INTERPRETATION OF HIS DREAM.G# 12 AND THERE WAS THERE WITH US A YOUNG MAN, AN HEBREW, SERVANT TO THEL CAPTAIN OF THE GUARD; AND WE TOLD HIM, AND HE INTERPRETED TO US OUR DREAMS;5 TO EACH MAN ACCORDING TO HIS DREAM HE DID INTERPRET.PL# 13 AND IT CAME TO PASS, AS HE INTERPRETED TO US, SO IT WAS; ME HE RESTORED% UNTO MINE OFFICE, AND HIM HE HANGED. M# 14 THEN PHARAOH SENT AND CALLED JOSEPH, AND THEY BROUGHT HIM HASTILY OUT OFRN THE DUNGEON: AND HE SHAVED HIMSELF, AND CHANGED HIS RAIMENT, AND CAME IN UNTO PHARAOH.NL# 15 AND PHARAOH SAID UNTO JOSEPH, I HAVE DREAMED A DREAM, AND THERE IS NONEE THAT CAN INTERPRET IT: AND I HAVE HEARD SAY OF THEE, THAT THOU CANSTT$ UNDERSTAND A DREAM TO INTERPRET IT.I# 16 AND JOSEPH ANSWERED PHARAOH, SAYING, IT IS NOT IN ME: GOD SHALL GIVEE PHARAOH AN ANSWER OF PEACE.M# 17 AND PHARAOH SAID UNTO JOSEPH, IN MY DREAM, BEHOLD, I STOOD UPON THE BANKE OF THE RIVER:K# 18 AND, BEHOLD, THERE CAME UP OUT OF THE RIVER SEVEN KINE, FATFLESHED ANDG) WELL FAVOURED; AND THEY FED IN A MEADOW:NH# 19 AND, BEHOLD, SEVEN OTHER KINE CAME UP AFTER THEM, POOR AND VERY ILLK FAVOURED AND LEANFLESHED, SUCH AS I NEVER SAW IN ALL THE LAND OF EGYPT FOR BADNESS: J# 20 AND THE LEAN AND THE ILL FAVOURED KINE DID EAT UP THE FIRST SEVEN FAT KINE:I# 21 AND WHEN THEY HAD EATEN THEM UP, IT COULD NOT BE KNOWN THAT THEY HADJH EATEN THEM; BUT THEY WERE STILL ILL FAVOURED, AS AT THE BEGINNING. SO I AWOKE.DI# 22 AND I SAW IN MY DREAM, AND, BEHOLD, SEVEN EARS CAME UP IN ONE STALK,D FULL AND GOOD: M# 23 AND, BEHOLD, SEVEN EARS, WITHERED, THIN, AND BLASTED WITH THE EAST WIND,Y SPRUNG UP AFTER THEM:M# 24 AND THE THIN EARS DEVOURED THE SEVEN GOOD EARS: AND I TOLD THIS UNTO THED; MAGICIANS; BUT THERE WAS NONE THAT COULD DECLARE IT TO ME.NH# 25 AND JOSEPH SAID UNTO PHARAOH, THE DREAM OF PHARAOH IS ONE: GOD HATH' SHEWED PHARAOH WHAT HE IS ABOUT TO DO.EK# 26 THE SEVEN GOOD KINE ARE SEVEN YEARS; AND THE SEVEN GOOD EARS ARE SEVENY YEARS: THE DREAM IS ONE.EI# 27 AND THE SEVEN THIN AND ILL FAVOURED KINE THAT CAME UP AFTER THEM ARE J SEVEN YEARS; AND THE SEVEN EMPTY EARS BLASTED WITH THE EAST WIND SHALL BE SEVEN YEARS OF FAMINE.UM# 28 THIS IS THE THING WHICH I HAVE SPOKEN UNTO PHARAOH: WHAT GOD IS ABOUT TOO DO HE SHEWETH UNTO PHARAOH.K# 29 BEHOLD, THERE COME SEVEN YEARS OF GREAT PLENTY THROUGHOUT ALL THE LAND OF EGYPT:H# 30 AND THERE SHALL ARISE AFTER THEM SEVEN YEARS OF FAMINE; AND ALL THEM PLENTY SHALL BE FORGOTTEN IN THE LAND OF EGYPT; AND THE FAMINE SHALL CONSUMEN THE LAND;K# 31 AND THE PLENTY SHALL NOT BE KNOWN IN THE LAND BY REASON OF THAT FAMINET* FOLLOWING; FOR IT SHALL BE VERY GRIEVOUS.M# 32 AND FOR THAT THE DREAM WAS DOUBLED UNTO PHARAOH TWICE; IT IS BECAUSE THEOD THING IS ESTABLISHED BY GOD, AND GOD WILL SHORTLY BRING IT TO PASS.L# 33 NOW THEREFORE LET PHARAOH LOOK OUT A MAN DISCREET AND WISE, AND SET HIM OVER THE LAND OF EGYPT.I# 34 LET PHARAOH DO THIS, AND LET HIM APPOINT OFFICERS OVER THE LAND, AND J TAKE UP THE FIFTH PART OF THE LAND OF EGYPT IN THE SEVEN PLENTEOUS YEARS.L# 35 AND LET THEM GATHER ALL THE FOOD OF THOSE GOOD YEARS THAT COME, AND LAYI UP CORN UNDER THE HAND OF PHARAOH, AND LET THEM KEEP FOOD IN THE CITIES.PL# 36 AND THAT FOOD SHALL BE FOR STORE TO THE LAND AGAINST THE SEVEN YEARS OFN FAMINE, WHICH SHALL BE IN THE L00_8':%W<%X>%+%O-%TADATADATAAND OF EGYPT; THAT THE LAND PERISH NOT THROUGH THE FAMINE.J# 37 AND THE THING WAS GOOD IN THE EYES OF PHARAOH, AND IN THE EYES OF ALL HIS SERVANTS.M# 38 AND PHARAOH SAID UNTO HIS SERVANTS, CAN WE FIND SUCH A ONE AS THIS IS, AL" MAN IN WHOM THE SPIRIT OF GOD IS?H# 39 AND PHARAOH SAID UNTO JOSEPH, FORASMUCH AS GOD HATH SHEWED THEE ALL6 THIS, THERE IS NONE SO DISCREET AND WISE AS THOU ART:J# 40 THOU SHALT BE OVER MY HOUSE, AND ACCORDING UNTO THY WORD SHALL ALL MYA PEOPLE BE RULED: ONLY IN THE THRONE WILL I BE GREATER THAN THOU.EL# 41 AND PHARAOH SAID UNTO JOSEPH, SEE, I HAVE SET THEE OVER ALL THE LAND OF EGYPT. I# 42 AND PHARAOH TOOK OFF HIS RING FROM HIS HAND, AND PUT IT UPON JOSEPHS,L HAND, AND ARRAYED HIM IN VESTURES OF FINE LINEN, AND PUT A GOLD CHAIN ABOUT HIS NECK;I# 43 AND HE MADE HIM TO RIDE IN THE SECOND CHARIOT WHICH HE HAD; AND THEY K CRIED BEFORE HIM, BOW THE KNEE: AND HE MADE HIM RULER OVER ALL THE LAND OF  EGYPT. J# 44 AND PHARAOH SAID UNTO JOSEPH, I AM PHARAOH, AND WITHOUT THEE SHALL NO7 MAN LIFT UP HIS HAND OR FOOT IN ALL THE LAND OF EGYPT.EM# 45 AND PHARAOH CALLED JOSEPHS NAME ZAPHNATHPAANEAH; AND HE GAVE HIM TO WIFE N ASENATH THE DAUGHTER OF POTIPHERAH PRIEST OF ON. AND JOSEPH WENT OUT OVER ALL THE LAND OF EGYPT.UI# 46 AND JOSEPH WAS THIRTY YEARS OLD WHEN HE STOOD BEFORE PHARAOH KING OFDM EGYPT. AND JOSEPH WENT OUT FROM THE PRESENCE OF PHARAOH, AND WENT THROUGHOUTH ALL THE LAND OF EGYPT.DJ# 47 AND IN THE SEVEN PLENTEOUS YEARS THE EARTH BROUGHT FORTH BY HANDFULS.J# 48 AND HE GATHERED UP ALL THE FOOD OF THE SEVEN YEARS, WHICH WERE IN THEJ LAND OF EGYPT, AND LAID UP THE FOOD IN THE CITIES: THE FOOD OF THE FIELD,: WHICH WAS ROUND ABOUT EVERY CITY, LAID HE UP IN THE SAME.I# 49 AND JOSEPH GATHERED CORN AS THE SAND OF THE SEA, VERY MUCH, UNTIL HES+ LEFT NUMBERING; FOR IT WAS WITHOUT NUMBER.EH# 50 AND UNTO JOSEPH WERE BORN TWO SONS BEFORE THE YEARS OF FAMINE CAME,E WHICH ASENATH THE DAUGHTER OF POTIPHERAH PRIEST OF ON BARE UNTO HIM. L# 51 AND JOSEPH CALLED THE NAME OF THE FIRSTBORN MANASSEH: FOR GOD, SAID HE,; HATH MADE ME FORGET ALL MY TOIL, AND ALL MY FATHERS HOUSE.HL# 52 AND THE NAME OF THE SECOND CALLED HE EPHRAIM: FOR GOD HATH CAUSED ME TO* BE FRUITFUL IN THE LAND OF MY AFFLICTION.I# 53 AND THE SEVEN YEARS OF PLENTEOUSNESS, THAT WAS IN THE LAND OF EGYPT,; WERE ENDED.I# 54 AND THE SEVEN YEARS OF DEARTH BEGAN TO COME, ACCORDING AS JOSEPH HAD N SAID: AND THE DEARTH WAS IN ALL LANDS; BUT IN ALL THE LAND OF EGYPT THERE WAS BREAD.1M# 55 AND WHEN ALL THE LAND OF EGYPT WAS FAMISHED, THE PEOPLE CRIED TO PHARAOH L FOR BREAD: AND PHARAOH SAID UNTO ALL THE EGYPTIANS, GO UNTO JOSEPH; WHAT HE SAITH TO YOU, DO.M# 56 AND THE FAMINE WAS OVER ALL THE FACE OF THE EARTH: AND JOSEPH OPENED ALLK THE STOREHOUSES, AND SOLD UNTO THE EGYPTIANS; AND THE FAMINE WAXED SORE INW THE LAND OF EGYPT.TI# 57 AND ALL COUNTRIES CAME INTO EGYPT TO JOSEPH FOR TO BUY CORN; BECAUSED* THAT THE FAMINE WAS SO SORE IN ALL LANDS. = CHAPTER 42 TN# 1 NOW WHEN JACOB SAW THAT THERE WAS CORN IN EGYPT, JACOB SAID UNTO HIS SONS,! WHY DO YE LOOK ONE UPON ANOTHER? J# 2 AND HE SAID, BEHOLD, I HAVE HEARD THAT THERE IS CORN IN EGYPT: GET YOUI DOWN THITHER, AND BUY FOR US FROM THENCE; THAT WE MAY LIVE, AND NOT DIE.E<# 3 AND JOSEPHS TEN BRETHREN WENT DOWN TO BUY CORN IN EGYPT.K# 4 BUT BENJAMIN, JOSEPHS BROTHER, JACOB SENT NOT WITH HIS BRETHREN; FOR HEN- SAID, LEST PERADVENTURE MISCHIEF BEFALL HIM.TJ# 5 AND THE SONS OF ISRAEL CAME TO BUY CORN AMONG THOSE THAT CAME: FOR THE" FAMINE WAS IN THE LAND OF CANAAN.M# 6 AND JOSEPH WAS THE GOVERNOR OVER THE LAND, AND HE IT WAS THAT SOLD TO ALLBM THE PEOPLE OF THE LAND: AND JOSEPHS BRETHREN CAME, AND BOWED DOWN THEMSELVESY* BEFORE HIM WITH THEIR FACES TO THE EARTH.K# 7 AND JOSEPH SAW HIS BRETHREN, AND HE KNEW THEM, BUT MADE HIMSELF STRANGEUK UNTO THEM, AND SPAKE ROUGHLY UNTO THEM; AND HE SAID UNTO THEM, WHENCE COME,8 YE? AND THEY SAID, FROM THE LAND OF CANAAN TO BUY FOOD.8# 8 AND JOSEPH KNEW HIS BRETHREN, BUT THEY KNEW NOT HIM.L# 9 AND JOSEPH REMEMBERE00_@'%D%5%T6%! !D THE DREAMS WHICH HE DREAMED OF THEM, AND SAID UNTOB THEM, YE ARE SPIES; TO SEE THE NAKEDNESS OF THE LAND YE ARE COME.K# 10 AND THEY SAID UNTO HIM, NAY, MY LORD, BUT TO BUY FOOD ARE THY SERVANTSC COME.J# 11 WE ARE ALL ONE MANS SONS; WE ARE TRUE MEN, THY SERVANTS ARE NO SPIES.L# 12 AND HE SAID UNTO THEM, NAY, BUT TO SEE THE NAKEDNESS OF THE LAND YE ARE COME.L# 13 AND THEY SAID, THY SERVANTS ARE TWELVE BRETHREN, THE SONS OF ONE MAN INK THE LAND OF CANAAN; AND, BEHOLD, THE YOUNGEST IS THIS DAY WITH OUR FATHER,S AND ONE IS NOT.L# 14 AND JOSEPH SAID UNTO THEM, THAT IS IT THAT I SPAKE UNTO YOU, SAYING, YE ARE SPIES:L# 15 HEREBY YE SHALL BE PROVED: BY THE LIFE OF PHARAOH YE SHALL NOT GO FORTH1 HENCE, EXCEPT YOUR YOUNGEST BROTHER COME HITHER.MM# 16 SEND ONE OF YOU, AND LET HIM FETCH YOUR BROTHER, AND YE SHALL BE KEPT IN M PRISON, THAT YOUR WORDS MAY BE PROVED, WHETHER THERE BE ANY TRUTH IN YOU: ORV1 ELSE BY THE LIFE OF PHARAOH SURELY YE ARE SPIES.N7# 17 AND HE PUT THEM ALL TOGETHER INTO WARD THREE DAYS.RK# 18 AND JOSEPH SAID UNTO THEM THE THIRD DAY, THIS DO, AND LIVE; FOR I FEAR  GOD:UI# 19 IF YE BE TRUE MEN, LET ONE OF YOUR BRETHREN BE BOUND IN THE HOUSE OFP> YOUR PRISON: GO YE, CARRY CORN FOR THE FAMINE OF YOUR HOUSES:D# 20 BUT BRING YOUR YOUNGEST BROTHER UNTO ME; SO SHALL YOUR WORDS BE1 VERIFIED, AND YE SHALL NOT DIE. AND THEY DID SO.SF# 21 AND THEY SAID ONE TO ANOTHER, WE ARE VERILY GUILTY CONCERNING OURM BROTHER, IN THAT WE SAW THE ANGUISH OF HIS SOUL, WHEN HE BESOUGHT US, AND WE 9 WOULD NOT HEAR; THEREFORE IS THIS DISTRESS COME UPON US. K# 22 AND REUBEN ANSWERED THEM, SAYING, SPAKE I NOT UNTO YOU, SAYING, DO NOTUJ SIN AGAINST THE CHILD; AND YE WOULD NOT HEAR? THEREFORE, BEHOLD, ALSO HIS BLOOD IS REQUIRED.EM# 23 AND THEY KNEW NOT THAT JOSEPH UNDERSTOOD THEM; FOR HE SPAKE UNTO THEM BYF AN INTERPRETER.J# 24 AND HE TURNED HIMSELF ABOUT FROM THEM, AND WEPT; AND RETURNED TO THEMH AGAIN, AND COMMUNED WITH THEM, AND TOOK FROM THEM SIMEON, AND BOUND HIM BEFORE THEIR EYES.AH# 25 THEN JOSEPH COMMANDED TO FILL THEIR SACKS WITH CORN, AND TO RESTOREL EVERY MANS MONEY INTO HIS SACK, AND TO GIVE THEM PROVISION FOR THE WAY: AND THUS DID HE UNTO THEM.WC# 26 AND THEY LADED THEIR ASSES WITH THE CORN, AND DEPARTED THENCE.3M# 27 AND AS ONE OF THEM OPENED HIS SACK TO GIVE HIS ASS PROVENDER IN THE INN, = HE ESPIED HIS MONEY; FOR, BEHOLD, IT WAS IN HIS SACKS MOUTH.EM# 28 AND HE SAID UNTO HIS BRETHREN, MY MONEY IS RESTORED; AND, LO, IT IS EVENMM IN MY SACK: AND THEIR HEART FAILED THEM, AND THEY WERE AFRAID, SAYING ONE TOE2 ANOTHER, WHAT IS THIS THAT GOD HATH DONE UNTO US?L# 29 AND THEY CAME UNTO JACOB THEIR FATHER UNTO THE LAND OF CANAAN, AND TOLD' HIM ALL THAT BEFELL UNTO THEM; SAYING, K# 30 THE MAN, WHO IS THE LORD OF THE LAND, SPAKE ROUGHLY TO US, AND TOOK US  FOR SPIES OF THE COUNTRY.<# 31 AND WE SAID UNTO HIM, WE ARE TRUE MEN; WE ARE NO SPIES:L# 32 WE BE TWELVE BRETHREN, SONS OF OUR FATHER; ONE IS NOT, AND THE YOUNGEST3 IS THIS DAY WITH OUR FATHER IN THE LAND OF CANAAN.HL# 33 AND THE MAN, THE LORD OF THE COUNTRY, SAID UNTO US, HEREBY SHALL I KNOWM THAT YE ARE TRUE MEN; LEAVE ONE OF YOUR BRETHREN HERE WITH ME, AND TAKE FOODA0 FOR THE FAMINE OF YOUR HOUSEHOLDS, AND BE GONE:K# 34 AND BRING YOUR YOUNGEST BROTHER UNTO ME: THEN SHALL I KNOW THAT YE AREKL NO SPIES, BUT THAT YE ARE TRUE MEN: SO WILL I DELIVER YOU YOUR BROTHER, AND YE SHALL TRAFFICK IN THE LAND.VI# 35 AND IT CAME TO PASS AS THEY EMPTIED THEIR SACKS, THAT, BEHOLD, EVERYWN MANS BUNDLE OF MONEY WAS IN HIS SACK: AND WHEN BOTH THEY AND THEIR FATHER SAW( THE BUNDLES OF MONEY, THEY WERE AFRAID.E# 36 AND JACOB THEIR FATHER SAID UNTO THEM, ME HAVE YE BEREAVED OF MYOL CHILDREN: JOSEPH IS NOT, AND SIMEON IS NOT, AND YE WILL TAKE BENJAMIN AWAY:! ALL THESE THINGS ARE AGAINST ME.KK# 37 AND REUBEN SPAKE UNTO HIS FATHER, SAYING, SLAY MY TWO SONS, IF I BRINGYH HIM NOT TO THEE: DELIVER HIM INTO MY HAND, AND I WILL BRING HIM TO THEE AGAIN.YM# 38 AND HE SAID, MY SON SHALL NOT GO DOWN WITH YOU; FOR HIS BROTHER IS DEAD,CL AND H00_H':%W<%X>%+%O-%TADATADATAE IS LEFT ALONE: IF MISCHIEF BEFALL HIM BY THE WAY IN THE WHICH YE GO,A THEN SHALL YE BRING DOWN MY GRAY HAIRS WITH SORROW TO THE GRAVE.A = CHAPTER 43 I(# 1 AND THE FAMINE WAS SORE IN THE LAND.G# 2 AND IT CAME TO PASS, WHEN THEY HAD EATEN UP THE CORN WHICH THEY HADAM BROUGHT OUT OF EGYPT, THEIR FATHER SAID UNTO THEM, GO AGAIN, BUY US A LITTLET FOOD.K# 3 AND JUDAH SPAKE UNTO HIM, SAYING, THE MAN DID SOLEMNLY PROTEST UNTO US,HC SAYING, YE SHALL NOT SEE MY FACE, EXCEPT YOUR BROTHER BE WITH YOU.M# 4 IF THOU WILT SEND OUR BROTHER WITH US, WE WILL GO DOWN AND BUY THEE FOOD:TM# 5 BUT IF THOU WILT NOT SEND HIM, WE WILL NOT GO DOWN: FOR THE MAN SAID UNTOI? US, YE SHALL NOT SEE MY FACE, EXCEPT YOUR BROTHER BE WITH YOU.SJ# 6 AND ISRAEL SAID, WHEREFORE DEALT YE SO ILL WITH ME, AS TO TELL THE MAN WHETHER YE HAD YET A BROTHER?E# 7 AND THEY SAID, THE MAN ASKED US STRAITLY OF OUR STATE, AND OF OURHK KINDRED, SAYING, IS YOUR FATHER YET ALIVE? HAVE YE ANOTHER BROTHER? AND WEPM TOLD HIM ACCORDING TO THE TENOR OF THESE WORDS: COULD WE CERTAINLY KNOW THATL' HE WOULD SAY, BRING YOUR BROTHER DOWN?TL# 8 AND JUDAH SAID UNTO ISRAEL HIS FATHER, SEND THE LAD WITH ME, AND WE WILLM ARISE AND GO; THAT WE MAY LIVE, AND NOT DIE, BOTH WE, AND THOU, AND ALSO OURE LITTLE ONES. K# 9 I WILL BE SURETY FOR HIM; OF MY HAND SHALT THOU REQUIRE HIM: IF I BRINGHK HIM NOT UNTO THEE, AND SET HIM BEFORE THEE, THEN LET ME BEAR THE BLAME FORG EVER:M# 10 FOR EXCEPT WE HAD LINGERED, SURELY NOW WE HAD RETURNED THIS SECOND TIME.EK# 11 AND THEIR FATHER ISRAEL SAID UNTO THEM, IF IT MUST BE SO NOW, DO THIS;UN TAKE OF THE BEST FRUITS IN THE LAND IN YOUR VESSELS, AND CARRY DOWN THE MAN AI PRESENT, A LITTLE BALM, AND A LITTLE HONEY, SPICES, AND MYRRH, NUTS, ANDT ALMONDS:SM# 12 AND TAKE DOUBLE MONEY IN YOUR HAND; AND THE MONEY THAT WAS BROUGHT AGAINUM IN THE MOUTH OF YOUR SACKS, CARRY IT AGAIN IN YOUR HAND; PERADVENTURE IT WASB AN OVERSIGHT:># 13 TAKE ALSO YOUR BROTHER, AND ARISE, GO AGAIN UNTO THE MAN:J# 14 AND GOD ALMIGHTY GIVE YOU MERCY BEFORE THE MAN, THAT HE MAY SEND AWAYH YOUR OTHER BROTHER, AND BENJAMIN. IF I BE BEREAVED OF MY CHILDREN, I AM BEREAVED.L# 15 AND THE MEN TOOK THAT PRESENT, AND THEY TOOK DOUBLE MONEY IN THEIR HANDL AND BENJAMIN; AND ROSE UP, AND WENT DOWN TO EGYPT, AND STOOD BEFORE JOSEPH.H# 16 AND WHEN JOSEPH SAW BENJAMIN WITH THEM, HE SAID TO THE RULER OF HISK HOUSE, BRING THESE MEN HOME, AND SLAY, AND MAKE READY; FOR THESE MEN SHALL  DINE WITH ME AT NOON.M# 17 AND THE MAN DID AS JOSEPH BADE; AND THE MAN BROUGHT THE MEN INTO JOSEPHSE HOUSE. K# 18 AND THE MEN WERE AFRAID, BECAUSE THEY WERE BROUGHT INTO JOSEPHS HOUSE;MJ AND THEY SAID, BECAUSE OF THE MONEY THAT WAS RETURNED IN OUR SACKS AT THEM FIRST TIME ARE WE BROUGHT IN; THAT HE MAY SEEK OCCASION AGAINST US, AND FALLE1 UPON US, AND TAKE US FOR BONDMEN, AND OUR ASSES.HJ# 19 AND THEY CAME NEAR TO THE STEWARD OF JOSEPHS HOUSE, AND THEY COMMUNED# WITH HIM AT THE DOOR OF THE HOUSE,H# 20 AND SAID, O SIR, WE CAME INDEED DOWN AT THE FIRST TIME TO BUY FOOD:L# 21 AND IT CAME TO PASS, WHEN WE CAME TO THE INN, THAT WE OPENED OUR SACKS,N AND, BEHOLD, EVERY MANS MONEY WAS IN THE MOUTH OF HIS SACK, OUR MONEY IN FULL2 WEIGHT: AND WE HAVE BROUGHT IT AGAIN IN OUR HAND.M# 22 AND OTHER MONEY HAVE WE BROUGHT DOWN IN OUR HANDS TO BUY FOOD: WE CANNOTA% TELL WHO PUT OUR MONEY IN OUR SACKS.9J# 23 AND HE SAID, PEACE BE TO YOU, FEAR NOT: YOUR GOD, AND THE GOD OF YOURH FATHER, HATH GIVEN YOU TREASURE IN YOUR SACKS: I HAD YOUR MONEY. AND HE BROUGHT SIMEON OUT UNTO THEM.M# 24 AND THE MAN BROUGHT THE MEN INTO JOSEPHS HOUSE, AND GAVE THEM WATER, AND; THEY WASHED THEIR FEET; AND HE GAVE THEIR ASSES PROVENDER.OJ# 25 AND THEY MADE READY THE PRESENT AGAINST JOSEPH CAME AT NOON: FOR THEY( HEARD THAT THEY SHOULD EAT BREAD THERE.I# 26 AND WHEN JOSEPH CAME HOME, THEY BROUGHT HIM THE PRESENT WHICH WAS IN3E THEIR HAND INTO THE HOUSE, AND BOWED THEMSELVES TO HIM TO THE EARTH.K# 27 AND HE ASKED THEM OF THEIR WELFARE, AND SAID, IS YOUR FATHER WELL, THEO+ OLD MAN OF WHOM YE SP00_P'%D%5%T6%! !AKE? IS HE YET ALIVE?BK# 28 AND THEY ANSWERED, THY SERVANT OUR FATHER IS IN GOOD HEALTH, HE IS YETE< ALIVE. AND THEY BOWED DOWN THEIR HEADS, AND MADE OBEISANCE.I# 29 AND HE LIFTED UP HIS EYES, AND SAW HIS BROTHER BENJAMIN, HIS MOTHERSYN SON, AND SAID, IS THIS YOUR YOUNGER BROTHER, OF WHOM YE SPAKE UNTO ME? AND HE) SAID, GOD BE GRACIOUS UNTO THEE, MY SON.HM# 30 AND JOSEPH MADE HASTE; FOR HIS BOWELS DID YEARN UPON HIS BROTHER: AND HEIG SOUGHT WHERE TO WEEP; AND HE ENTERED INTO HIS CHAMBER, AND WEPT THERE.?K# 31 AND HE WASHED HIS FACE, AND WENT OUT, AND REFRAINED HIMSELF, AND SAID,  SET ON BREAD.L# 32 AND THEY SET ON FOR HIM BY HIMSELF, AND FOR THEM BY THEMSELVES, AND FORL THE EGYPTIANS, WHICH DID EAT WITH HIM, BY THEMSELVES: BECAUSE THE EGYPTIANSJ MIGHT NOT EAT BREAD WITH THE HEBREWS; FOR THAT IS AN ABOMINATION UNTO THE EGYPTIANS.UL# 33 AND THEY SAT BEFORE HIM, THE FIRSTBORN ACCORDING TO HIS BIRTHRIGHT, ANDK THE YOUNGEST ACCORDING TO HIS YOUTH: AND THE MEN MARVELLED ONE AT ANOTHER. I# 34 AND HE TOOK AND SENT MESSES UNTO THEM FROM BEFORE HIM: BUT BENJAMINSHM MESS WAS FIVE TIMES SO MUCH AS ANY OF THEIRS. AND THEY DRANK, AND WERE MERRYD WITH HIM. = CHAPTER 44 DJ# 1 AND HE COMMANDED THE STEWARD OF HIS HOUSE, SAYING, FILL THE MENS SACKSL WITH FOOD, AS MUCH AS THEY CAN CARRY, AND PUT EVERY MANS MONEY IN HIS SACKS MOUTH.YK# 2 AND PUT MY CUP, THE SILVER CUP, IN THE SACKS MOUTH OF THE YOUNGEST, ANDII HIS CORN MONEY. AND HE DID ACCORDING TO THE WORD THAT JOSEPH HAD SPOKEN.TL# 3 AS SOON AS THE MORNING WAS LIGHT, THE MEN WERE SENT AWAY, THEY AND THEIR ASSES.M# 4 AND WHEN THEY WERE GONE OUT OF THE CITY, AND NOT YET FAR OFF, JOSEPH SAIDN UNTO HIS STEWARD, UP, FOLLOW AFTER THE MEN; AND WHEN THOU DOST OVERTAKE THEM,9 SAY UNTO THEM, WHEREFORE HAVE YE REWARDED EVIL FOR GOOD?RM# 5 IS NOT THIS IT IN WHICH MY LORD DRINKETH, AND WHEREBY INDEED HE DIVINETH?V YE HAVE DONE EVIL IN SO DOING. B# 6 AND HE OVERTOOK THEM, AND HE SPAKE UNTO THEM THESE SAME WORDS.K# 7 AND THEY SAID UNTO HIM, WHEREFORE SAITH MY LORD THESE WORDS? GOD FORBIDN5 THAT THY SERVANTS SHOULD DO ACCORDING TO THIS THING:EK# 8 BEHOLD, THE MONEY, WHICH WE FOUND IN OUR SACKS MOUTHS, WE BROUGHT AGAINUI UNTO THEE OUT OF THE LAND OF CANAAN: HOW THEN SHOULD WE STEAL OUT OF THY  LORDS HOUSE SILVER OR GOLD?I# 9 WITH WHOMSOEVER OF THY SERVANTS IT BE FOUND, BOTH LET HIM DIE, AND WEE ALSO WILL BE MY LORDS BONDMEN.VL# 10 AND HE SAID, NOW ALSO LET IT BE ACCORDING UNTO YOUR WORDS: HE WITH WHOM< IT IS FOUND SHALL BE MY SERVANT; AND YE SHALL BE BLAMELESS.G# 11 THEN THEY SPEEDILY TOOK DOWN EVERY MAN HIS SACK TO THE GROUND, ANDI OPENED EVERY MAN HIS SACK.WL# 12 AND HE SEARCHED, AND BEGAN AT THE ELDEST, AND LEFT AT THE YOUNGEST: AND% THE CUP WAS FOUND IN BENJAMINS SACK.OL# 13 THEN THEY RENT THEIR CLOTHES, AND LADED EVERY MAN HIS ASS, AND RETURNED TO THE CITY.TL# 14 AND JUDAH AND HIS BRETHREN CAME TO JOSEPHS HOUSE; FOR HE WAS YET THERE:( AND THEY FELL BEFORE HIM ON THE GROUND.K# 15 AND JOSEPH SAID UNTO THEM, WHAT DEED IS THIS THAT YE HAVE DONE? WOT YE/ NOT THAT SUCH A MAN AS I CAN CERTAINLY DIVINE?AL# 16 AND JUDAH SAID, WHAT SHALL WE SAY UNTO MY LORD? WHAT SHALL WE SPEAK? ORE HOW SHALL WE CLEAR OURSELVES? GOD HATH FOUND OUT THE INIQUITY OF THYDK SERVANTS: BEHOLD, WE ARE MY LORDS SERVANTS, BOTH WE, AND HE ALSO WITH WHOMH THE CUP IS FOUND.K# 17 AND HE SAID, GOD FORBID THAT I SHOULD DO SO: BUT THE MAN IN WHOSE HANDHN THE CUP IS FOUND, HE SHALL BE MY SERVANT; AND AS FOR YOU, GET YOU UP IN PEACE UNTO YOUR FATHER.L# 18 THEN JUDAH CAME NEAR UNTO HIM, AND SAID, OH MY LORD, LET THY SERVANT, IG PRAY THEE, SPEAK A WORD IN MY LORDS EARS, AND LET NOT THINE ANGER BURN 3 AGAINST THY SERVANT: FOR THOU ART EVEN AS PHARAOH. H# 19 MY LORD ASKED HIS SERVANTS, SAYING, HAVE YE A FATHER, OR A BROTHER?K# 20 AND WE SAID UNTO MY LORD, WE HAVE A FATHER, AN OLD MAN, AND A CHILD OF L HIS OLD AGE, A LITTLE ONE; AND HIS BROTHER IS DEAD, AND HE ALONE IS LEFT OF' HIS MOTHER, AND HIS FATHER LOVETH HIM.YJ# 21 AND THOU SAIDST UNTO THY SERVANTS, BRING HIM DOWN00_X':%W<%X>%+%O-%TADATADATA UNTO ME, THAT I MAY SET MINE EYES UPON HIM.I# 22 AND WE SAID UNTO MY LORD, THE LAD CANNOT LEAVE HIS FATHER: FOR IF HEG/ SHOULD LEAVE HIS FATHER, HIS FATHER WOULD DIE. I# 23 AND THOU SAIDST UNTO THY SERVANTS, EXCEPT YOUR YOUNGEST BROTHER COME - DOWN WITH YOU, YE SHALL SEE MY FACE NO MORE.AL# 24 AND IT CAME TO PASS WHEN WE CAME UP UNTO THY SERVANT MY FATHER, WE TOLD HIM THE WORDS OF MY LORD.=# 25 AND OUR FATHER SAID, GO AGAIN, AND BUY US A LITTLE FOOD.DM# 26 AND WE SAID, WE CANNOT GO DOWN: IF OUR YOUNGEST BROTHER BE WITH US, THENYG WILL WE GO DOWN: FOR WE MAY NOT SEE THE MANS FACE, EXCEPT OUR YOUNGESTH BROTHER BE WITH US.M# 27 AND THY SERVANT MY FATHER SAID UNTO US, YE KNOW THAT MY WIFE BARE ME TWON SONS:K# 28 AND THE ONE WENT OUT FROM ME, AND I SAID, SURELY HE IS TORN IN PIECES;A AND I SAW HIM NOT SINCE:WH# 29 AND IF YE TAKE THIS ALSO FROM ME, AND MISCHIEF BEFALL HIM, YE SHALL3 BRING DOWN MY GRAY HAIRS WITH SORROW TO THE GRAVE.AK# 30 NOW THEREFORE WHEN I COME TO THY SERVANT MY FATHER, AND THE LAD BE NOTB< WITH US; SEEING THAT HIS LIFE IS BOUND UP IN THE LADS LIFE;K# 31 IT SHALL COME TO PASS, WHEN HE SEETH THAT THE LAD IS NOT WITH US, THATAM HE WILL DIE: AND THY SERVANTS SHALL BRING DOWN THE GRAY HAIRS OF THY SERVANTW% OUR FATHER WITH SORROW TO THE GRAVE.IK# 32 FOR THY SERVANT BECAME SURETY FOR THE LAD UNTO MY FATHER, SAYING, IF I L BRING HIM NOT UNTO THEE, THEN I SHALL BEAR THE BLAME TO MY FATHER FOR EVER.K# 33 NOW THEREFORE, I PRAY THEE, LET THY SERVANT ABIDE INSTEAD OF THE LAD AA= BONDMAN TO MY LORD; AND LET THE LAD GO UP WITH HIS BRETHREN.II# 34 FOR HOW SHALL I GO UP TO MY FATHER, AND THE LAD BE NOT WITH ME? LEST : PERADVENTURE I SEE THE EVIL THAT SHALL COME ON MY FATHER. = CHAPTER 45 YL# 1 THEN JOSEPH COULD NOT REFRAIN HIMSELF BEFORE ALL THEM THAT STOOD BY HIM;M AND HE CRIED, CAUSE EVERY MAN TO GO OUT FROM ME. AND THERE STOOD NO MAN WITHU8 HIM, WHILE JOSEPH MADE HIMSELF KNOWN UNTO HIS BRETHREN.H# 2 AND HE WEPT ALOUD: AND THE EGYPTIANS AND THE HOUSE OF PHARAOH HEARD.L# 3 AND JOSEPH SAID UNTO HIS BRETHREN, I AM JOSEPH; DOTH MY FATHER YET LIVE?E AND HIS BRETHREN COULD NOT ANSWER HIM; FOR THEY WERE TROUBLED AT HISP PRESENCE.L# 4 AND JOSEPH SAID UNTO HIS BRETHREN, COME NEAR TO ME, I PRAY YOU. AND THEYK CAME NEAR. AND HE SAID, I AM JOSEPH YOUR BROTHER, WHOM YE SOLD INTO EGYPT.CL# 5 NOW THEREFORE BE NOT GRIEVED, NOR ANGRY WITH YOURSELVES, THAT YE SOLD ME9 HITHER: FOR GOD DID SEND ME BEFORE YOU TO PRESERVE LIFE. K# 6 FOR THESE TWO YEARS HATH THE FAMINE BEEN IN THE LAND: AND YET THERE ARE D FIVE YEARS, IN THE WHICH THERE SHALL NEITHER BE EARING NOR HARVEST.L# 7 AND GOD SENT ME BEFORE YOU TO PRESERVE YOU A POSTERITY IN THE EARTH, AND+ TO SAVE YOUR LIVES BY A GREAT DELIVERANCE. M# 8 SO NOW IT WAS NOT YOU THAT SENT ME HITHER, BUT GOD: AND HE HATH MADE ME AOM FATHER TO PHARAOH, AND LORD OF ALL HIS HOUSE, AND A RULER THROUGHOUT ALL THEL LAND OF EGYPT. J# 9 HASTE YE, AND GO UP TO MY FATHER, AND SAY UNTO HIM, THUS SAITH THY SONJ JOSEPH, GOD HATH MADE ME LORD OF ALL EGYPT: COME DOWN UNTO ME, TARRY NOT:L# 10 AND THOU SHALT DWELL IN THE LAND OF GOSHEN, AND THOU SHALT BE NEAR UNTOL ME, THOU, AND THY CHILDREN, AND THY CHILDRENS CHILDREN, AND THY FLOCKS, AND# THY HERDS, AND ALL THAT THOU HAST:WK# 11 AND THERE WILL I NOURISH THEE; FOR YET THERE ARE FIVE YEARS OF FAMINE; G LEST THOU, AND THY HOUSEHOLD, AND ALL THAT THOU HAST, COME TO POVERTY.LM# 12 AND, BEHOLD, YOUR EYES SEE, AND THE EYES OF MY BROTHER BENJAMIN, THAT ITI$ IS MY MOUTH THAT SPEAKETH UNTO YOU.M# 13 AND YE SHALL TELL MY FATHER OF ALL MY GLORY IN EGYPT, AND OF ALL THAT YET? HAVE SEEN; AND YE SHALL HASTE AND BRING DOWN MY FATHER HITHER.YM# 14 AND HE FELL UPON HIS BROTHER BENJAMINS NECK, AND WEPT; AND BENJAMIN WEPT  UPON HIS NECK.L# 15 MOREOVER HE KISSED ALL HIS BRETHREN, AND WEPT UPON THEM: AND AFTER THAT HIS BRETHREN TALKED WITH HIM.F# 16 AND THE FAME THEREOF WAS HEARD IN PHARAOHS HOUSE, SAYING, JOSEPHSB BRETHREN ARE COME: AND IT PLEASED PHARAOH WELL, AND HIS SERVANTS.J# 17 AND PHARAOH SAID UNTO JOSEPH, S00_`'%D%5%T6%! !AY UNTO THY BRETHREN, THIS DO YE; LADE6 YOUR BEASTS, AND GO, GET YOU UNTO THE LAND OF CANAAN;K# 18 AND TAKE YOUR FATHER AND YOUR HOUSEHOLDS, AND COME UNTO ME: AND I WILL N GIVE YOU THE GOOD OF THE LAND OF EGYPT, AND YE SHALL EAT THE FAT OF THE LAND.K# 19 NOW THOU ART COMMANDED, THIS DO YE; TAKE YOU WAGONS OUT OF THE LAND OF K EGYPT FOR YOUR LITTLE ONES, AND FOR YOUR WIVES, AND BRING YOUR FATHER, AND COME.I# 20 ALSO REGARD NOT YOUR STUFF; FOR THE GOOD OF ALL THE LAND OF EGYPT ISH YOURS.OD# 21 AND THE CHILDREN OF ISRAEL DID SO: AND JOSEPH GAVE THEM WAGONS,N ACCORDING TO THE COMMANDMENT OF PHARAOH, AND GAVE THEM PROVISION FOR THE WAY.K# 22 TO ALL OF THEM HE GAVE EACH MAN CHANGES OF RAIMENT; BUT TO BENJAMIN HEDB GAVE THREE HUNDRED PIECES OF SILVER, AND FIVE CHANGES OF RAIMENT.J# 23 AND TO HIS FATHER HE SENT AFTER THIS MANNER; TEN ASSES LADEN WITH THEK GOOD THINGS OF EGYPT, AND TEN SHE ASSES LADEN WITH CORN AND BREAD AND MEATY FOR HIS FATHER BY THE WAY.LL# 24 SO HE SENT HIS BRETHREN AWAY, AND THEY DEPARTED: AND HE SAID UNTO THEM,% SEE THAT YE FALL NOT OUT BY THE WAY. I# 25 AND THEY WENT UP OUT OF EGYPT, AND CAME INTO THE LAND OF CANAAN UNTOL JACOB THEIR FATHER,K# 26 AND TOLD HIM, SAYING, JOSEPH IS YET ALIVE, AND HE IS GOVERNOR OVER ALLIG THE LAND OF EGYPT. AND JACOBS HEART FAINTED, FOR HE BELIEVED THEM NOT.TL# 27 AND THEY TOLD HIM ALL THE WORDS OF JOSEPH, WHICH HE HAD SAID UNTO THEM:M AND WHEN HE SAW THE WAGONS WHICH JOSEPH HAD SENT TO CARRY HIM, THE SPIRIT OFS JACOB THEIR FATHER REVIVED:M# 28 AND ISRAEL SAID, IT IS ENOUGH; JOSEPH MY SON IS YET ALIVE: I WILL GO AND5 SEE HIM BEFORE I DIE. = CHAPTER 46 EL# 1 AND ISRAEL TOOK HIS JOURNEY WITH ALL THAT HE HAD, AND CAME TO BEERSHEBA,9 AND OFFERED SACRIFICES UNTO THE GOD OF HIS FATHER ISAAC.LK# 2 AND GOD SPAKE UNTO ISRAEL IN THE VISIONS OF THE NIGHT, AND SAID, JACOB,T JACOB. AND HE SAID, HERE AM I.EJ# 3 AND HE SAID, I AM GOD, THE GOD OF THY FATHER: FEAR NOT TO GO DOWN INTO5 EGYPT; FOR I WILL THERE MAKE OF THEE A GREAT NATION:EM# 4 I WILL GO DOWN WITH THEE INTO EGYPT; AND I WILL ALSO SURELY BRING THEE UPI6 AGAIN: AND JOSEPH SHALL PUT HIS HAND UPON THINE EYES.J# 5 AND JACOB ROSE UP FROM BEERSHEBA: AND THE SONS OF ISRAEL CARRIED JACOBJ THEIR FATHER, AND THEIR LITTLE ONES, AND THEIR WIVES, IN THE WAGONS WHICH PHARAOH HAD SENT TO CARRY HIM. M# 6 AND THEY TOOK THEIR CATTLE, AND THEIR GOODS, WHICH THEY HAD GOTTEN IN THEAG LAND OF CANAAN, AND CAME INTO EGYPT, JACOB, AND ALL HIS SEED WITH HIM:LE# 7 HIS SONS, AND HIS SONS SONS WITH HIM, HIS DAUGHTERS, AND HIS SONS < DAUGHTERS, AND ALL HIS SEED BROUGHT HE WITH HIM INTO EGYPT.M# 8 AND THESE ARE THE NAMES OF THE CHILDREN OF ISRAEL, WHICH CAME INTO EGYPT,N. JACOB AND HIS SONS: REUBEN, JACOBS FIRSTBORN.F# 9 AND THE SONS OF REUBEN; HANOCH, AND PHALLU, AND HEZRON, AND CARMI.I# 10 AND THE SONS OF SIMEON; JEMUEL, AND JAMIN, AND OHAD, AND JACHIN, ANDW1 ZOHAR, AND SHAUL THE SON OF A CANAANITISH WOMAN.C7# 11 AND THE SONS OF LEVI; GERSHON, KOHATH, AND MERARI.IL# 12 AND THE SONS OF JUDAH; ER, AND ONAN, AND SHELAH, AND PHAREZ, AND ZARAH:H BUT ER AND ONAN DIED IN THE LAND OF CANAAN. AND THE SONS OF PHAREZ WERE HEZRON AND HAMUL.F# 13 AND THE SONS OF ISSACHAR; TOLA, AND PHUVAH, AND JOB, AND SHIMRON.;# 14 AND THE SONS OF ZEBULUN; SERED, AND ELON, AND JAHLEEL.NL# 15 THESE BE THE SONS OF LEAH, WHICH SHE BARE UNTO JACOB IN PADANARAM, WITHL HIS DAUGHTER DINAH: ALL THE SOULS OF HIS SONS AND HIS DAUGHTERS WERE THIRTY AND THREE.FH# 16 AND THE SONS OF GAD; ZIPHION, AND HAGGI, SHUNI, AND EZBON, ERI, AND ARODI, AND ARELI.I# 17 AND THE SONS OF ASHER; JIMNAH, AND ISHUAH, AND ISUI, AND BERIAH, ANDSA SERAH THEIR SISTER: AND THE SONS OF BERIAH; HEBER, AND MALCHIEL.AL# 18 THESE ARE THE SONS OF ZILPAH, WHOM LABAN GAVE TO LEAH HIS DAUGHTER, AND/ THESE SHE BARE UNTO JACOB, EVEN SIXTEEN SOULS.S:# 19 THE SONS OF RACHEL JACOBS WIFE; JOSEPH, AND BENJAMIN.I# 20 AND UNTO JOSEPH IN THE LAND OF EGYPT WERE BORN MANASSEH AND EPHRAIM,AE WHICH ASENATH THE DAUGHTER OF POTIPHERAH PRIEST OF ON BARE UNTO HIM.BK# 21 AND00_h':%W<%X>%+%O-%TADATADATA THE SONS OF BENJAMIN WERE BELAH, AND BECHER, AND ASHBEL, GERA, ANDU4 NAAMAN, EHI, AND ROSH, MUPPIM, AND HUPPIM, AND ARD.J# 22 THESE ARE THE SONS OF RACHEL, WHICH WERE BORN TO JACOB: ALL THE SOULS WERE FOURTEEN.A!# 23 AND THE SONS OF DAN; HUSHIM.EI# 24 AND THE SONS OF NAPHTALI; JAHZEEL, AND GUNI, AND JEZER, AND SHILLEM.WM# 25 THESE ARE THE SONS OF BILHAH, WHICH LABAN GAVE UNTO RACHEL HIS DAUGHTER, 9 AND SHE BARE THESE UNTO JACOB: ALL THE SOULS WERE SEVEN.PI# 26 ALL THE SOULS THAT CAME WITH JACOB INTO EGYPT, WHICH CAME OUT OF HISHI LOINS, BESIDES JACOBS SONS WIVES, ALL THE SOULS WERE THREESCORE AND SIX;UJ# 27 AND THE SONS OF JOSEPH, WHICH WERE BORN HIM IN EGYPT, WERE TWO SOULS:L ALL THE SOULS OF THE HOUSE OF JACOB, WHICH CAME INTO EGYPT, WERE THREESCORE AND TEN.FF# 28 AND HE SENT JUDAH BEFORE HIM UNTO JOSEPH, TO DIRECT HIS FACE UNTO/ GOSHEN; AND THEY CAME INTO THE LAND OF GOSHEN.IF# 29 AND JOSEPH MADE READY HIS CHARIOT, AND WENT UP TO MEET ISRAEL HISL FATHER, TO GOSHEN, AND PRESENTED HIMSELF UNTO HIM; AND HE FELL ON HIS NECK,# AND WEPT ON HIS NECK A GOOD WHILE.LM# 30 AND ISRAEL SAID UNTO JOSEPH, NOW LET ME DIE, SINCE I HAVE SEEN THY FACE,O BECAUSE THOU ART YET ALIVE.M# 31 AND JOSEPH SAID UNTO HIS BRETHREN, AND UNTO HIS FATHERS HOUSE, I WILL GOEK UP, AND SHEW PHARAOH, AND SAY UNTO HIM, MY BRETHREN, AND MY FATHERS HOUSE,C4 WHICH WERE IN THE LAND OF CANAAN, ARE COME UNTO ME;M# 32 AND THE MEN ARE SHEPHERDS, FOR THEIR TRADE HATH BEEN TO FEED CATTLE; ANDTI THEY HAVE BROUGHT THEIR FLOCKS, AND THEIR HERDS, AND ALL THAT THEY HAVE.AK# 33 AND IT SHALL COME TO PASS, WHEN PHARAOH SHALL CALL YOU, AND SHALL SAY,  WHAT IS YOUR OCCUPATION?HJ# 34 THAT YE SHALL SAY, THY SERVANTS TRADE HATH BEEN ABOUT CATTLE FROM OURN YOUTH EVEN UNTIL NOW, BOTH WE, AND ALSO OUR FATHERS: THAT YE MAY DWELL IN THEI LAND OF GOSHEN; FOR EVERY SHEPHERD IS AN ABOMINATION UNTO THE EGYPTIANS., = CHAPTER 47 MK# 1 THEN JOSEPH CAME AND TOLD PHARAOH, AND SAID, MY FATHER AND MY BRETHREN, K AND THEIR FLOCKS, AND THEIR HERDS, AND ALL THAT THEY HAVE, ARE COME OUT OFEA THE LAND OF CANAAN; AND, BEHOLD, THEY ARE IN THE LAND OF GOSHEN.DL# 2 AND HE TOOK SOME OF HIS BRETHREN, EVEN FIVE MEN, AND PRESENTED THEM UNTO PHARAOH. I# 3 AND PHARAOH SAID UNTO HIS BRETHREN, WHAT IS YOUR OCCUPATION? AND THEYTN SAID UNTO PHARAOH, THY SERVANTS ARE SHEPHERDS, BOTH WE, AND ALSO OUR FATHERS.K# 4 THEY SAID MOREVER UNTO PHARAOH, FOR TO SOJOURN IN THE LAND ARE WE COME;RM FOR THY SERVANTS HAVE NO PASTURE FOR THEIR FLOCKS; FOR THE FAMINE IS SORE IN K THE LAND OF CANAAN: NOW THEREFORE, WE PRAY THEE, LET THY SERVANTS DWELL INH THE LAND OF GOSHEN.J# 5 AND PHARAOH SPAKE UNTO JOSEPH, SAYING, THY FATHER AND THY BRETHREN ARE COME UNTO THEE:M# 6 THE LAND OF EGYPT IS BEFORE THEE; IN THE BEST OF THE LAND MAKE THY FATHERTI AND BRETHREN TO DWELL; IN THE LAND OF GOSHEN LET THEM DWELL: AND IF THOUHN KNOWEST ANY MEN OF ACTIVITY AMONG THEM, THEN MAKE THEM RULERS OVER MY CATTLE.K# 7 AND JOSEPH BROUGHT IN JACOB HIS FATHER, AND SET HIM BEFORE PHARAOH: ANDE JACOB BLESSED PHARAOH.:2# 8 AND PHARAOH SAID UNTO JACOB, HOW OLD ART THOU?K# 9 AND JACOB SAID UNTO PHARAOH, THE DAYS OF THE YEARS OF MY PILGRIMAGE ARETK AN HUNDRED AND THIRTY YEARS: FEW AND EVIL HAVE THE DAYS OF THE YEARS OF MYHN LIFE BEEN, AND HAVE NOT ATTAINED UNTO THE DAYS OF THE YEARS OF THE LIFE OF MY) FATHERS IN THE DAYS OF THEIR PILGRIMAGE.KA# 10 AND JACOB BLESSED PHARAOH, AND WENT OUT FROM BEFORE PHARAOH.YC# 11 AND JOSEPH PLACED HIS FATHER AND HIS BRETHREN, AND GAVE THEM AOI POSSESSION IN THE LAND OF EGYPT, IN THE BEST OF THE LAND, IN THE LAND OF,# RAMESES, AS PHARAOH HAD COMMANDED.DK# 12 AND JOSEPH NOURISHED HIS FATHER, AND HIS BRETHREN, AND ALL HIS FATHERSH4 HOUSEHOLD, WITH BREAD, ACCORDING TO THEIR FAMILIES.M# 13 AND THERE WAS NO BREAD IN ALL THE LAND; FOR THE FAMINE WAS VERY SORE, SOOK THAT THE LAND OF EGYPT AND ALL THE LAND OF CANAAN FAINTED BY REASON OF THEA FAMINE.G# 14 AND JOSEPH GATHERED UP ALL THE MONEY THAT WAS FOUND IN THE LAND OFRM EGYPT, AND IN THE LAND OF CANAAN, FOR THE COR00_p'%D%5%T6%! !N WHICH THEY BOUGHT: AND JOSEPHL' BROUGHT THE MONEY INTO PHARAOHS HOUSE.HK# 15 AND WHEN MONEY FAILED IN THE LAND OF EGYPT, AND IN THE LAND OF CANAAN, L ALL THE EGYPTIANS CAME UNTO JOSEPH, AND SAID, GIVE US BREAD: FOR WHY SHOULD/ WE DIE IN THY PRESENCE? FOR THE MONEY FAILETH.ML# 16 AND JOSEPH SAID, GIVE YOUR CATTLE; AND I WILL GIVE YOU FOR YOUR CATTLE, IF MONEY FAIL. M# 17 AND THEY BROUGHT THEIR CATTLE UNTO JOSEPH: AND JOSEPH GAVE THEM BREAD IN N EXCHANGE FOR HORSES, AND FOR THE FLOCKS, AND FOR THE CATTLE OF THE HERDS, ANDN FOR THE ASSES: AND HE FED THEM WITH BREAD FOR ALL THEIR CATTLE FOR THAT YEAR.K# 18 WHEN THAT YEAR WAS ENDED, THEY CAME UNTO HIM THE SECOND YEAR, AND SAIDOL UNTO HIM, WE WILL NOT HIDE IT FROM MY LORD, HOW THAT OUR MONEY IS SPENT; MYL LORD ALSO HATH OUR HERDS OF CATTLE; THERE IS NOT OUGHT LEFT IN THE SIGHT OF( MY LORD, BUT OUR BODIES, AND OUR LANDS:K# 19 WHEREFORE SHALL WE DIE BEFORE THINE EYES, BOTH WE AND OUR LAND? BUY USK AND OUR LAND FOR BREAD, AND WE AND OUR LAND WILL BE SERVANTS UNTO PHARAOH:DF AND GIVE US SEED, THAT WE MAY LIVE, AND NOT DIE, THAT THE LAND BE NOT DESOLATE.K# 20 AND JOSEPH BOUGHT ALL THE LAND OF EGYPT FOR PHARAOH; FOR THE EGYPTIANSUN SOLD EVERY MAN HIS FIELD, BECAUSE THE FAMINE PREVAILED OVER THEM: SO THE LAND BECAME PHARAOHS.DI# 21 AND AS FOR THE PEOPLE, HE REMOVED THEM TO CITIES FROM ONE END OF THEI0 BORDERS OF EGYPT EVEN TO THE OTHER END THEREOF.F# 22 ONLY THE LAND OF THE PRIESTS BOUGHT HE NOT; FOR THE PRIESTS HAD AJ PORTION ASSIGNED THEM OF PHARAOH, AND DID EAT THEIR PORTION WHICH PHARAOH0 GAVE THEM: WHEREFORE THEY SOLD NOT THEIR LANDS.M# 23 THEN JOSEPH SAID UNTO THE PEOPLE, BEHOLD, I HAVE BOUGHT YOU THIS DAY ANDGL YOUR LAND FOR PHARAOH: LO, HERE IS SEED FOR YOU, AND YE SHALL SOW THE LAND.L# 24 AND IT SHALL COME TO PASS IN THE INCREASE, THAT YE SHALL GIVE THE FIFTHL PART UNTO PHARAOH, AND FOUR PARTS SHALL BE YOUR OWN, FOR SEED OF THE FIELD,J AND FOR YOUR FOOD, AND FOR THEM OF YOUR HOUSEHOLDS, AND FOR FOOD FOR YOUR LITTLE ONES. M# 25 AND THEY SAID, THOU HAST SAVED OUR LIVES: LET US FIND GRACE IN THE SIGHT . OF MY LORD, AND WE WILL BE PHARAOHS SERVANTS.H# 26 AND JOSEPH MADE IT A LAW OVER THE LAND OF EGYPT UNTO THIS DAY, THATI PHARAOH SHOULD HAVE THE FIFTH PART, EXCEPT THE LAND OF THE PRIESTS ONLY,  WHICH BECAME NOT PHARAOHS.RI# 27 AND ISRAEL DWELT IN THE LAND OF EGYPT, IN THE COUNTRY OF GOSHEN; ANDLD THEY HAD POSSESSIONS THEREIN, AND GREW, AND MULTIPLIED EXCEEDINGLY.K# 28 AND JACOB LIVED IN THE LAND OF EGYPT SEVENTEEN YEARS: SO THE WHOLE AGED/ OF JACOB WAS AN HUNDRED FORTY AND SEVEN YEARS. G# 29 AND THE TIME DREW NIGH THAT ISRAEL MUST DIE: AND HE CALLED HIS SONPJ JOSEPH, AND SAID UNTO HIM, IF NOW I HAVE FOUND GRACE IN THY SIGHT, PUT, IL PRAY THEE, THY HAND UNDER MY THIGH, AND DEAL KINDLY AND TRULY WITH ME; BURY ME NOT, I PRAY THEE, IN EGYPT: J# 30 BUT I WILL LIE WITH MY FATHERS, AND THOU SHALT CARRY ME OUT OF EGYPT,M AND BURY ME IN THEIR BURYINGPLACE. AND HE SAID, I WILL DO AS THOU HAST SAID.DH# 31 AND HE SAID, SWEAR UNTO ME. AND HE SWARE UNTO HIM. AND ISRAEL BOWED HIMSELF UPON THE BEDS HEAD. = CHAPTER 48 NM# 1 AND IT CAME TO PASS AFTER THESE THINGS, THAT ONE TOLD JOSEPH, BEHOLD, THYFI FATHER IS SICK: AND HE TOOK WITH HIM HIS TWO SONS, MANASSEH AND EPHRAIM. J# 2 AND ONE TOLD JACOB, AND SAID, BEHOLD, THY SON JOSEPH COMETH UNTO THEE:7 AND ISRAEL STRENGTHENED HIMSELF, AND SAT UPON THE BED. K# 3 AND JACOB SAID UNTO JOSEPH, GOD ALMIGHTY APPEARED UNTO ME AT LUZ IN THEL LAND OF CANAAN, AND BLESSED ME,K# 4 AND SAID UNTO ME, BEHOLD, I WILL MAKE THEE FRUITFUL, AND MULTIPLY THEE,ON AND I WILL MAKE OF THEE A MULTITUDE OF PEOPLE; AND WILL GIVE THIS LAND TO THY/ SEED AFTER THEE FOR AN EVERLASTING POSSESSION.:L# 5 AND NOW THY TWO SONS, EPHRAIM AND MANASSEH, WHICH WERE BORN UNTO THEE INN THE LAND OF EGYPT BEFORE I CAME UNTO THEE INTO EGYPT, ARE MINE; AS REUBEN AND SIMEON, THEY SHALL BE MINE.M# 6 AND THY ISSUE, WHICH THOU BEGETTEST AFTER THEM, SHALL BE THINE, AND SHALLHA BE CALLED AFTER THE NAME OF THEIR BRETHREN IN THEIR INH00_x':%W<%X>%+%O-%TADATADATAERITANCE. K# 7 AND AS FOR ME, WHEN I CAME FROM PADAN, RACHEL DIED BY ME IN THE LAND OFLM CANAAN IN THE WAY, WHEN YET THERE WAS BUT A LITTLE WAY TO COME UNTO EPHRATH:AE AND I BURIED HER THERE IN THE WAY OF EPHRATH; THE SAME IS BETHLEHEM.C<# 8 AND ISRAEL BEHELD JOSEPHS SONS, AND SAID, WHO ARE THESE?M# 9 AND JOSEPH SAID UNTO HIS FATHER, THEY ARE MY SONS, WHOM GOD HATH GIVEN MENI IN THIS PLACE. AND HE SAID, BRING THEM, I PRAY THEE, UNTO ME, AND I WILLB BLESS THEM.K# 10 NOW THE EYES OF ISRAEL WERE DIM FOR AGE, SO THAT HE COULD NOT SEE. AND F HE BROUGHT THEM NEAR UNTO HIM; AND HE KISSED THEM, AND EMBRACED THEM.M# 11 AND ISRAEL SAID UNTO JOSEPH, I HAD NOT THOUGHT TO SEE THY FACE: AND, LO,H" GOD HATH SHEWED ME ALSO THY SEED.M# 12 AND JOSEPH BROUGHT THEM OUT FROM BETWEEN HIS KNEES, AND HE BOWED HIMSELF  WITH HIS FACE TO THE EARTH.M# 13 AND JOSEPH TOOK THEM BOTH, EPHRAIM IN HIS RIGHT HAND TOWARD ISRAELS LEFTIK HAND, AND MANASSEH IN HIS LEFT HAND TOWARD ISRAELS RIGHT HAND, AND BROUGHTF THEM NEAR UNTO HIM.M# 14 AND ISRAEL STRETCHED OUT HIS RIGHT HAND, AND LAID IT UPON EPHRAIMS HEAD,EN WHO WAS THE YOUNGER, AND HIS LEFT HAND UPON MANASSEHS HEAD, GUIDING HIS HANDS+ WITTINGLY; FOR MANASSEH WAS THE FIRSTBORN.MM# 15 AND HE BLESSED JOSEPH, AND SAID, GOD, BEFORE WHOM MY FATHERS ABRAHAM ANDHE ISAAC DID WALK, THE GOD WHICH FED ME ALL MY LIFE LONG UNTO THIS DAY,EJ# 16 THE ANGEL WHICH REDEEMED ME FROM ALL EVIL, BLESS THE LADS; AND LET MYM NAME BE NAMED ON THEM, AND THE NAME OF MY FATHERS ABRAHAM AND ISAAC; AND LET6 THEM GROW INTO A MULTITUDE IN THE MIDST OF THE EARTH.M# 17 AND WHEN JOSEPH SAW THAT HIS FATHER LAID HIS RIGHT HAND UPON THE HEAD OFHJ EPHRAIM, IT DISPLEASED HIM: AND HE HELD UP HIS FATHERS HAND, TO REMOVE IT( FROM EPHRAIMS HEAD UNTO MANASSEHS HEAD.H# 18 AND JOSEPH SAID UNTO HIS FATHER, NOT SO, MY FATHER: FOR THIS IS THE- FIRSTBORN; PUT THY RIGHT HAND UPON HIS HEAD.IL# 19 AND HIS FATHER REFUSED, AND SAID, I KNOW IT, MY SON, I KNOW IT: HE ALSOI SHALL BECOME A PEOPLE, AND HE ALSO SHALL BE GREAT: BUT TRULY HIS YOUNGER K BROTHER SHALL BE GREATER THAN HE, AND HIS SEED SHALL BECOME A MULTITUDE OFH NATIONS. F# 20 AND HE BLESSED THEM THAT DAY, SAYING, IN THEE SHALL ISRAEL BLESS,L SAYING, GOD MAKE THEE AS EPHRAIM AND AS MANASSEH: AND HE SET EPHRAIM BEFORE MANASSEH.K# 21 AND ISRAEL SAID UNTO JOSEPH, BEHOLD, I DIE: BUT GOD SHALL BE WITH YOU,H3 AND BRING YOU AGAIN UNTO THE LAND OF YOUR FATHERS.UJ# 22 MOREOVER I HAVE GIVEN TO THEE ONE PORTION ABOVE THY BRETHREN, WHICH IC TOOK OUT OF THE HAND OF THE AMORITE WITH MY SWORD AND WITH MY BOW.B = CHAPTER 49 HN# 1 AND JACOB CALLED UNTO HIS SONS, AND SAID, GATHER YOURSELVES TOGETHER, THAT= I MAY TELL YOU THAT WHICH SHALL BEFALL YOU IN THE LAST DAYS.ML# 2 GATHER YOURSELVES TOGETHER, AND HEAR, YE SONS OF JACOB; AND HEARKEN UNTO ISRAEL YOUR FATHER.D# 3 REUBEN, THOU ART MY FIRSTBORN, MY MIGHT, AND THE BEGINNING OF MYB STRENGTH, THE EXCELLENCY OF DIGNITY, AND THE EXCELLENCY OF POWER:K# 4 UNSTABLE AS WATER, THOU SHALT NOT EXCEL; BECAUSE THOU WENTEST UP TO THYO= FATHERS BED; THEN DEFILEDST THOU IT: HE WENT UP TO MY COUCH.AE# 5 SIMEON AND LEVI ARE BRETHREN; INSTRUMENTS OF CRUELTY ARE IN THEIRI HABITATIONS.HI# 6 O MY SOUL, COME NOT THOU INTO THEIR SECRET; UNTO THEIR ASSEMBLY, MINERM HONOUR, BE NOT THOU UNITED: FOR IN THEIR ANGER THEY SLEW A MAN, AND IN THEIRN" SELFWILL THEY DIGGED DOWN A WALL.I# 7 CURSED BE THEIR ANGER, FOR IT WAS FIERCE; AND THEIR WRATH, FOR IT WASL@ CRUEL: I WILL DIVIDE THEM IN JACOB, AND SCATTER THEM IN ISRAEL.K# 8 JUDAH, THOU ART HE WHOM THY BRETHREN SHALL PRAISE: THY HAND SHALL BE INTL THE NECK OF THINE ENEMIES; THY FATHERS CHILDREN SHALL BOW DOWN BEFORE THEE.G# 9 JUDAH IS A LIONS WHELP: FROM THE PREY, MY SON, THOU ART GONE UP: HENL STOOPED DOWN, HE COUCHED AS A LION, AND AS AN OLD LION; WHO SHALL ROUSE HIM UP?M# 10 THE SCEPTRE SHALL NOT DEPART FROM JUDAH, NOR A LAWGIVER FROM BETWEEN HISNL FEET, UNTIL SHILOH COME; AND UNTO HIM SHALL THE GATHERING OF THE PEOPLE BE.L# 11 BINDING HIS FOAL UNTO THE VINE, AND HIS ASSS COLT UNT00_'%D%5%T6%! !O THE CHOICE VINE;H HE WASHED HIS GARMENTS IN WINE, AND HIS CLOTHES IN THE BLOOD OF GRAPES:D# 12 HIS EYES SHALL BE RED WITH WINE, AND HIS TEETH WHITE WITH MILK.H# 13 ZEBULUN SHALL DWELL AT THE HAVEN OF THE SEA; AND HE SHALL BE FOR AN4 HAVEN OF SHIPS; AND HIS BORDER SHALL BE UNTO ZIDON.@# 14 ISSACHAR IS A STRONG ASS COUCHING DOWN BETWEEN TWO BURDENS:J# 15 AND HE SAW THAT REST WAS GOOD, AND THE LAND THAT IT WAS PLEASANT; AND? BOWED HIS SHOULDER TO BEAR, AND BECAME A SERVANT UNTO TRIBUTE.S@# 16 DAN SHALL JUDGE HIS PEOPLE, AS ONE OF THE TRIBES OF ISRAEL.M# 17 DAN SHALL BE A SERPENT BY THE WAY, AN ADDER IN THE PATH, THAT BITETH THE 4 HORSE HEELS, SO THAT HIS RIDER SHALL FALL BACKWARD.-# 18 I HAVE WAITED FOR THY SALVATION, O LORD. H# 19 GAD, A TROOP SHALL OVERCOME HIM: BUT HE SHALL OVERCOME AT THE LAST.L# 20 OUT OF ASHER HIS BREAD SHALL BE FAT, AND HE SHALL YIELD ROYAL DAINTIES.:# 21 NAPHTALI IS A HIND LET LOOSE: HE GIVETH GOODLY WORDS.G# 22 JOSEPH IS A FRUITFUL BOUGH, EVEN A FRUITFUL BOUGH BY A WELL; WHOSEE BRANCHES RUN OVER THE WALL:I# 23 THE ARCHERS HAVE SORELY GRIEVED HIM, AND SHOT AT HIM, AND HATED HIM:HG# 24 BUT HIS BOW ABODE IN STRENGTH, AND THE ARMS OF HIS HANDS WERE MADEN STRONG BY THE HANDS OF THE MIGHTY GOD OF JACOB; (FROM THENCE IS THE SHEPHERD, THE STONE OF ISRAEL:)M# 25 EVEN BY THE GOD OF THY FATHER, WHO SHALL HELP THEE; AND BY THE ALMIGHTY,RK WHO SHALL BLESS THEE WITH BLESSINGS OF HEAVEN ABOVE, BLESSINGS OF THE DEEP = THAT LIETH UNDER, BLESSINGS OF THE BREASTS, AND OF THE WOMB: I# 26 THE BLESSINGS OF THY FATHER HAVE PREVAILED ABOVE THE BLESSINGS OF MYHM PROGENITORS UNTO THE UTMOST BOUND OF THE EVERLASTING HILLS: THEY SHALL BE ONHJ THE HEAD OF JOSEPH, AND ON THE CROWN OF THE HEAD OF HIM THAT WAS SEPARATE FROM HIS BRETHREN.TM# 27 BENJAMIN SHALL RAVIN AS A WOLF: IN THE MORNING HE SHALL DEVOUR THE PREY,H( AND AT NIGHT HE SHALL DIVIDE THE SPOIL.I# 28 ALL THESE ARE THE TWELVE TRIBES OF ISRAEL: AND THIS IS IT THAT THEIRTN FATHER SPAKE UNTO THEM, AND BLESSED THEM; EVERY ONE ACCORDING TO HIS BLESSING HE BLESSED THEM. I# 29 AND HE CHARGED THEM, AND SAID UNTO THEM, I AM TO BE GATHERED UNTO MY K PEOPLE: BURY ME WITH MY FATHERS IN THE CAVE THAT IS IN THE FIELD OF EPHRONW THE HITTITE,FM# 30 IN THE CAVE THAT IS IN THE FIELD OF MACHPELAH, WHICH IS BEFORE MAMRE, INLN THE LAND OF CANAAN, WHICH ABRAHAM BOUGHT WITH THE FIELD OF EPHRON THE HITTITE$ FOR A POSSESSION OF A BURYINGPLACE.J# 31 THERE THEY BURIED ABRAHAM AND SARAH HIS WIFE; THERE THEY BURIED ISAAC/ AND REBEKAH HIS WIFE; AND THERE I BURIED LEAH.K# 32 THE PURCHASE OF THE FIELD AND OF THE CAVE THAT IS THEREIN WAS FROM THEG CHILDREN OF HETH.J# 33 AND WHEN JACOB HAD MADE AN END OF COMMANDING HIS SONS, HE GATHERED UPK HIS FEET INTO THE BED, AND YIELDED UP THE GHOST, AND WAS GATHERED UNTO HISB PEOPLE. = CHAPTER 50 NM# 1 AND JOSEPH FELL UPON HIS FATHERS FACE, AND WEPT UPON HIM, AND KISSED HIM.PJ# 2 AND JOSEPH COMMANDED HIS SERVANTS THE PHYSICIANS TO EMBALM HIS FATHER:$ AND THE PHYSICIANS EMBALMED ISRAEL.K# 3 AND FORTY DAYS WERE FULFILLED FOR HIM; FOR SO ARE FULFILLED THE DAYS OFOK THOSE WHICH ARE EMBALMED: AND THE EGYPTIANS MOURNED FOR HIM THREESCORE ANDA TEN DAYS.L# 4 AND WHEN THE DAYS OF HIS MOURNING WERE PAST, JOSEPH SPAKE UNTO THE HOUSEJ OF PHARAOH, SAYING, IF NOW I HAVE FOUND GRACE IN YOUR EYES, SPEAK, I PRAY% YOU, IN THE EARS OF PHARAOH, SAYING,,H# 5 MY FATHER MADE ME SWEAR, SAYING, LO, I DIE: IN MY GRAVE WHICH I HAVEM DIGGED FOR ME IN THE LAND OF CANAAN, THERE SHALT THOU BURY ME. NOW THEREFORE F LET ME GO UP, I PRAY THEE, AND BURY MY FATHER, AND I WILL COME AGAIN.K# 6 AND PHARAOH SAID, GO UP, AND BURY THY FATHER, ACCORDING AS HE MADE THEEN SWEAR.DG# 7 AND JOSEPH WENT UP TO BURY HIS FATHER: AND WITH HIM WENT UP ALL THETM SERVANTS OF PHARAOH, THE ELDERS OF HIS HOUSE, AND ALL THE ELDERS OF THE LAND OF EGYPT, ITTI# 8 AND ALL THE HOUSE OF JOSEPH, AND HIS BRETHREN, AND HIS FATHERS HOUSE:EL ONLY THEIR LITTLE ONES, AND THEIR FLOCKS, AND THEIR HERDS, THEY LEFT IN THE LAND OF GOSHEN.L# 9 AND THERE WENT U00_'`'<%X>%+%O-%TADATADATAP WITH HIM BOTH CHARIOTS AND HORSEMEN: AND IT WAS A VERY GREAT COMPANY.RM# 10 AND THEY CAME TO THE THRESHINGFLOOR OF ATAD, WHICH IS BEYOND JORDAN, AND I THERE THEY MOURNED WITH A GREAT AND VERY SORE LAMENTATION: AND HE MADE AA$ MOURNING FOR HIS FATHER SEVEN DAYS.K# 11 AND WHEN THE INHABITANTS OF THE LAND, THE CANAANITES, SAW THE MOURNINGJD IN THE FLOOR OF ATAD, THEY SAID, THIS IS A GRIEVOUS MOURNING TO THEL EGYPTIANS: WHEREFORE THE NAME OF IT WAS CALLED ABELMIZRAIM, WHICH IS BEYOND JORDAN.># 12 AND HIS SONS DID UNTO HIM ACCORDING AS HE COMMANDED THEM:L# 13 FOR HIS SONS CARRIED HIM INTO THE LAND OF CANAAN, AND BURIED HIM IN THEJ CAVE OF THE FIELD OF MACHPELAH, WHICH ABRAHAM BOUGHT WITH THE FIELD FOR AB POSSESSION OF A BURYINGPLACE OF EPHRON THE HITTITE, BEFORE MAMRE.L# 14 AND JOSEPH RETURNED INTO EGYPT, HE, AND HIS BRETHREN, AND ALL THAT WENT@ UP WITH HIM TO BURY HIS FATHER, AFTER HE HAD BURIED HIS FATHER.I# 15 AND WHEN JOSEPHS BRETHREN SAW THAT THEIR FATHER WAS DEAD, THEY SAID,JM JOSEPH WILL PERADVENTURE HATE US, AND WILL CERTAINLY REQUITE US ALL THE EVILR WHICH WE DID UNTO HIM.OJ# 16 AND THEY SENT A MESSENGER UNTO JOSEPH, SAYING, THY FATHER DID COMMAND BEFORE HE DIED, SAYING,K# 17 SO SHALL YE SAY UNTO JOSEPH, FORGIVE, I PRAY THEE NOW, THE TRESPASS OF K THY BRETHREN, AND THEIR SIN; FOR THEY DID UNTO THEE EVIL: AND NOW, WE PRAYAI THEE, FORGIVE THE TRESPASS OF THE SERVANTS OF THE GOD OF THY FATHER. AND & JOSEPH WEPT WHEN THEY SPAKE UNTO HIM.M# 18 AND HIS BRETHREN ALSO WENT AND FELL DOWN BEFORE HIS FACE; AND THEY SAID,E BEHOLD, WE BE THY SERVANTS.G# 19 AND JOSEPH SAID UNTO THEM, FEAR NOT: FOR AM I IN THE PLACE OF GOD? L# 20 BUT AS FOR YOU, YE THOUGHT EVIL AGAINST ME; BUT GOD MEANT IT UNTO GOOD,@ TO BRING TO PASS, AS IT IS THIS DAY, TO SAVE MUCH PEOPLE ALIVE.M# 21 NOW THEREFORE FEAR YE NOT: I WILL NOURISH YOU, AND YOUR LITTLE ONES. ANDR/ HE COMFORTED THEM, AND SPAKE KINDLY UNTO THEM.HK# 22 AND JOSEPH DWELT IN EGYPT, HE, AND HIS FATHERS HOUSE: AND JOSEPH LIVED  AN HUNDRED AND TEN YEARS.K# 23 AND JOSEPH SAW EPHRAIMS CHILDREN OF THE THIRD GENERATION: THE CHILDRENAG ALSO OF MACHIR THE SON OF MANASSEH WERE BROUGHT UP UPON JOSEPHS KNEES.OM# 24 AND JOSEPH SAID UNTO HIS BRETHREN, I DIE: AND GOD WILL SURELY VISIT YOU,AK AND BRING YOU OUT OF THIS LAND UNTO THE LAND WHICH HE SWARE TO ABRAHAM, TO  ISAAC, AND TO JACOB. H# 25 AND JOSEPH TOOK AN OATH OF THE CHILDREN OF ISRAEL, SAYING, GOD WILL= SURELY VISIT YOU, AND YE SHALL CARRY UP MY BONES FROM HENCE.JJ# 26 SO JOSEPH DIED, BEING AN HUNDRED AND TEN YEARS OLD: AND THEY EMBALMED* HIM, AND HE WAS PUT IN A COFFIN IN EGYPT. ALSO OF MACHIR THE SON OF MANASSEH WERE BROUGHT UP UPON JOSEPHS KNEES.OM# 24 AND JOSEPH SAID UNTO HIS BRETHREN, I DIE: AND GOD WILL SURELY VISIT YOU,AK AND BRING YOU OUT OF THIS LAND UNTO THE LAND WHICH HE SWARE TO ABRAHAM, TO  ISAAC, AND TO JACOB. H# 25 AND JOSEPH TOOK AN OATH OF THE CHILDREN OF ISRAEL, SAYING, GOD WILL= SURELY VISIT YOU, AND YE SHALL CARRY UP MY BONES FROM HENCE.JJ# 26 SO JOSEPH DIED, BEING AN HU* BOOK02 EXODUS = CHAPTER 1 M# 1 NOW THESE ARE THE NAMES OF THE CHILDREN OF ISRAEL, WHICH CAME INTO EGYPT;F- EVERY MAN AND HIS HOUSEHOLD CAME WITH JACOB.$# 2 REUBEN, SIMEON, LEVI, AND JUDAH,$# 3 ISSACHAR, ZEBULUN, AND BENJAMIN,&# 4 DAN, AND NAPHTALI, GAD, AND ASHER.M# 5 AND ALL THE SOULS THAT CAME OUT OF THE LOINS OF JACOB WERE SEVENTY SOULS:P! FOR JOSEPH WAS IN EGYPT ALREADY.SC# 6 AND JOSEPH DIED, AND ALL HIS BRETHREN, AND ALL THAT GENERATION.OK# 7 AND THE CHILDREN OF ISRAEL WERE FRUITFUL, AND INCREASED ABUNDANTLY, ANDEK MULTIPLIED, AND WAXED EXCEEDING MIGHTY; AND THE LAND WAS FILLED WITH THEM.ED# 8 NOW THERE AROSE UP A NEW KING OVER EGYPT, WHICH KNEW NOT JOSEPH.M# 9 AND HE SAID UNTO HIS PEOPLE, BEHOLD, THE PEOPLE OF THE CHILDREN OF ISRAELT ARE MORE AND MIGHTIER THAN WE: K# 10 COME ON, LET US DEAL WISELY WITH THEM; LEST THEY MULTIPLY, AND IT COMEPG TO PASS, THAT, WHEN THERE FALLETH OUT ANY WAR, THEY JOIN ALSO UNTO OURAC ENEMIES, AND FIGHT AGAINST US, AND SO GET THEM UP OUT OF THE LAND.N00`'%D%5%T6%! !L# 11 THEREFORE THEY DID SET OVER THEM TASKMASTERS TO AFFLICT THEM WITH THEIRI BURDENS. AND THEY BUILT FOR PHARAOH TREASURE CITIES, PITHOM AND RAAMSES. M# 12 BUT THE MORE THEY AFFLICTED THEM, THE MORE THEY MULTIPLIED AND GREW. ANDT5 THEY WERE GRIEVED BECAUSE OF THE CHILDREN OF ISRAEL. H# 13 AND THE EGYPTIANS MADE THE CHILDREN OF ISRAEL TO SERVE WITH RIGOUR:J# 14 AND THEY MADE THEIR LIVES BITTER WITH HARD BONDAGE, IN MORTER, AND INM BRICK, AND IN ALL MANNER OF SERVICE IN THE FIELD: ALL THEIR SERVICE, WHEREINT' THEY MADE THEM SERVE, WAS WITH RIGOUR.RM# 15 AND THE KING OF EGYPT SPAKE TO THE HEBREW MIDWIVES, OF WHICH THE NAME OFI6 THE ONE WAS SHIPHRAH, AND THE NAME OF THE OTHER PUAH:M# 16 AND HE SAID, WHEN YE DO THE OFFICE OF A MIDWIFE TO THE HEBREW WOMEN, AND L SEE THEM UPON THE STOOLS; IF IT BE A SON, THEN YE SHALL KILL HIM: BUT IF IT$ BE A DAUGHTER, THEN SHE SHALL LIVE.L# 17 BUT THE MIDWIVES FEARED GOD, AND DID NOT AS THE KING OF EGYPT COMMANDED( THEM, BUT SAVED THE MEN CHILDREN ALIVE.K# 18 AND THE KING OF EGYPT CALLED FOR THE MIDWIVES, AND SAID UNTO THEM, WHYN@ HAVE YE DONE THIS THING, AND HAVE SAVED THE MEN CHILDREN ALIVE?L# 19 AND THE MIDWIVES SAID UNTO PHARAOH, BECAUSE THE HEBREW WOMEN ARE NOT ASL THE EGYPTIAN WOMEN; FOR THEY ARE LIVELY, AND ARE DELIVERED ERE THE MIDWIVES COME IN UNTO THEM.TK# 20 THEREFORE GOD DEALT WELL WITH THE MIDWIVES: AND THE PEOPLE MULTIPLIED,B AND WAXED VERY MIGHTY.DL# 21 AND IT CAME TO PASS, BECAUSE THE MIDWIVES FEARED GOD, THAT HE MADE THEM HOUSES.J# 22 AND PHARAOH CHARGED ALL HIS PEOPLE, SAYING, EVERY SON THAT IS BORN YEC SHALL CAST INTO THE RIVER, AND EVERY DAUGHTER YE SHALL SAVE ALIVE. = CHAPTER 2 M# 1 AND THERE WENT A MAN OF THE HOUSE OF LEVI, AND TOOK TO WIFE A DAUGHTER OFE LEVI.M# 2 AND THE WOMAN CONCEIVED, AND BARE A SON: AND WHEN SHE SAW HIM THAT HE WAST* A GOODLY CHILD, SHE HID HIM THREE MONTHS.F# 3 AND WHEN SHE COULD NOT LONGER HIDE HIM, SHE TOOK FOR HIM AN ARK OFF BULRUSHES, AND DAUBED IT WITH SLIME AND WITH PITCH, AND PUT THE CHILD; THEREIN; AND SHE LAID IT IN THE FLAGS BY THE RIVERS BRINK. D# 4 AND HIS SISTER STOOD AFAR OFF, TO WIT WHAT WOULD BE DONE TO HIM.K# 5 AND THE DAUGHTER OF PHARAOH CAME DOWN TO WASH HERSELF AT THE RIVER; ANDTL HER MAIDENS WALKED ALONG BY THE RIVERS SIDE; AND WHEN SHE SAW THE ARK AMONG* THE FLAGS, SHE SENT HER MAID TO FETCH IT.H# 6 AND WHEN SHE HAD OPENED IT, SHE SAW THE CHILD: AND, BEHOLD, THE BABEJ WEPT. AND SHE HAD COMPASSION ON HIM, AND SAID, THIS IS ONE OF THE HEBREWS CHILDREN.L# 7 THEN SAID HIS SISTER TO PHARAOHS DAUGHTER, SHALL I GO AND CALL TO THEE AB NURSE OF THE HEBREW WOMEN, THAT SHE MAY NURSE THE CHILD FOR THEE?K# 8 AND PHARAOHS DAUGHTER SAID TO HER, GO. AND THE MAID WENT AND CALLED THE  CHILDS MOTHER.SK# 9 AND PHARAOHS DAUGHTER SAID UNTO HER, TAKE THIS CHILD AWAY, AND NURSE IT J FOR ME, AND I WILL GIVE THEE THY WAGES. AND THE WOMEN TOOK THE CHILD, AND NURSED IT.EK# 10 AND THE CHILD GREW, AND SHE BROUGHT HIM UNTO PHARAOHS DAUGHTER, AND HEFL BECAME HER SON. AND SHE CALLED HIS NAME MOSES: AND SHE SAID, BECAUSE I DREW HIM OUT OF THE WATER.J# 11 AND IT CAME TO PASS IN THOSE DAYS, WHEN MOSES WAS GROWN, THAT HE WENTM OUT UNTO HIS BRETHREN, AND LOOKED ON THEIR BURDENS: AND HE SPIED AN EGYPTIAN ( SMITING AN HEBREW, ONE OF HIS BRETHREN.K# 12 AND HE LOOKED THIS WAY AND THAT WAY, AND WHEN HE SAW THAT THERE WAS NOH4 MAN, HE SLEW THE EGYPTIAN, AND HID HIM IN THE SAND.H# 13 AND WHEN HE WENT OUT THE SECOND DAY, BEHOLD, TWO MEN OF THE HEBREWSJ STROVE TOGETHER: AND HE SAID TO HIM THAT DID THE WRONG, WHEREFORE SMITEST THOU THY FELLOW?OL# 14 AND HE SAID, WHO MADE THEE A PRINCE AND A JUDGE OVER US? INTENDEST THOUN TO KILL ME, AS THOU KILLEDST THE EGYPTIAN? AND MOSES FEARED, AND SAID, SURELY THIS THING IS KNOWN. J# 15 NOW WHEN PHARAOH HEARD THIS THING, HE SOUGHT TO SLAY MOSES. BUT MOSESK FLED FROM THE FACE OF PHARAOH, AND DWELT IN THE LAND OF MIDIAN: AND HE SATE DOWN BY A WELL.I# 16 NOW THE PRIEST OF MIDIAN HAD SEVEN DAUGHTERS: AND THEY CAME AND DREWE< WATER, AND FILLED THE TROUGHS TO WA00`''<%X>%+%O-%TADATADATATER THEIR FATHERS FLOCK.G# 17 AND THE SHEPHERDS CAME AND DROVE THEM AWAY: BUT MOSES STOOD UP ANDE& HELPED THEM, AND WATERED THEIR FLOCK.M# 18 AND WHEN THEY CAME TO REUEL THEIR FATHER, HE SAID, HOW IS IT THAT YE ARES COME SO SOON TO DAY? C# 19 AND THEY SAID, AN EGYPTIAN DELIVERED US OUT OF THE HAND OF THERE SHEPHERDS, AND ALSO DREW WATER ENOUGH FOR US, AND WATERED THE FLOCK.DL# 20 AND HE SAID UNTO HIS DAUGHTERS, AND WHERE IS HE? WHY IS IT THAT YE HAVE/ LEFT THE MAN? CALL HIM, THAT HE MAY EAT BREAD.AL# 21 AND MOSES WAS CONTENT TO DWELL WITH THE MAN: AND HE GAVE MOSES ZIPPORAH HIS DAUGHTER.K# 22 AND SHE BARE HIM A SON, AND HE CALLED HIS NAME GERSHOM: FOR HE SAID, IL( HAVE BEEN A STRANGER IN A STRANGE LAND.M# 23 AND IT CAME TO PASS IN PROCESS OF TIME, THAT THE KING OF EGYPT DIED: ANDOL THE CHILDREN OF ISRAEL SIGHED BY REASON OF THE BONDAGE, AND THEY CRIED, AND5 THEIR CRY CAME UP UNTO GOD BY REASON OF THE BONDAGE.WG# 24 AND GOD HEARD THEIR GROANING, AND GOD REMEMBERED HIS COVENANT WITHE% ABRAHAM, WITH ISAAC, AND WITH JACOB.TI# 25 AND GOD LOOKED UPON THE CHILDREN OF ISRAEL, AND GOD HAD RESPECT UNTOS THEM. = CHAPTER 3 G# 1 NOW MOSES KEPT THE FLOCK OF JETHRO HIS FATHER IN LAW, THE PRIEST OFSL MIDIAN: AND HE LED THE FLOCK TO THE BACKSIDE OF THE DESERT, AND CAME TO THE MOUNTAIN OF GOD, EVEN TO HOREB.M# 2 AND THE ANGEL OF THE LORD APPEARED UNTO HIM IN A FLAME OF FIRE OUT OF THEUL MIDST OF A BUSH: AND HE LOOKED, AND, BEHOLD, THE BUSH BURNED WITH FIRE, AND THE BUSH WAS NOT CONSUMED.EL# 3 AND MOSES SAID, I WILL NOW TURN ASIDE, AND SEE THIS GREAT SIGHT, WHY THE BUSH IS NOT BURNT.HJ# 4 AND WHEN THE LORD SAW THAT HE TURNED ASIDE TO SEE, GOD CALLED UNTO HIMN OUT OF THE MIDST OF THE BUSH, AND SAID, MOSES, MOSES. AND HE SAID, HERE AM I.K# 5 AND HE SAID, DRAW NOT NIGH HITHER: PUT OFF THY SHOES FROM OFF THY FEET, 4 FOR THE PLACE WHEREON THOU STANDEST IS HOLY GROUND.M# 6 MOREOVER HE SAID, I AM THE GOD OF THY FATHER, THE GOD OF ABRAHAM, THE GOD M OF ISAAC, AND THE GOD OF JACOB. AND MOSES HID HIS FACE; FOR HE WAS AFRAID TOR LOOK UPON GOD.TK# 7 AND THE LORD SAID, I HAVE SURELY SEEN THE AFFLICTION OF MY PEOPLE WHICHTM ARE IN EGYPT, AND HAVE HEARD THEIR CRY BY REASON OF THEIR TASKMASTERS; FOR ID KNOW THEIR SORROWS;L# 8 AND I AM COME DOWN TO DELIVER THEM OUT OF THE HAND OF THE EGYPTIANS, ANDL TO BRING THEM UP OUT OF THAT LAND UNTO A GOOD LAND AND A LARGE, UNTO A LANDG FLOWING WITH MILK AND HONEY; UNTO THE PLACE OF THE CANAANITES, AND THE I HITTITES, AND THE AMORITES, AND THE PERIZZITES, AND THE HIVITES, AND THEF JEBUSITES.OM# 9 NOW THEREFORE, BEHOLD, THE CRY OF THE CHILDREN OF ISRAEL IS COME UNTO ME:OJ AND I HAVE ALSO SEEN THE OPPRESSION WHEREWITH THE EGYPTIANS OPPRESS THEM.L# 10 COME NOW THEREFORE, AND I WILL SEND THEE UNTO PHARAOH, THAT THOU MAYEST; BRING FORTH MY PEOPLE THE CHILDREN OF ISRAEL OUT OF EGYPT.FJ# 11 AND MOSES SAID UNTO GOD, WHO AM I, THAT I SHOULD GO UNTO PHARAOH, AND? THAT I SHOULD BRING FORTH THE CHILDREN OF ISRAEL OUT OF EGYPT?DJ# 12 AND HE SAID, CERTAINLY I WILL BE WITH THEE; AND THIS SHALL BE A TOKENN UNTO THEE, THAT I HAVE SENT THEE: WHEN THOU HAST BROUGHT FORTH THE PEOPLE OUT1 OF EGYPT, YE SHALL SERVE GOD UPON THIS MOUNTAIN.EF# 13 AND MOSES SAID UNTO GOD, BEHOLD, WHEN I COME UNTO THE CHILDREN OFK ISRAEL, AND SHALL SAY UNTO THEM, THE GOD OF YOUR FATHERS HATH SENT ME UNTOUM YOU; AND THEY SHALL SAY TO ME, WHAT IS HIS NAME? WHAT SHALL I SAY UNTO THEM?RJ# 14 AND GOD SAID UNTO MOSES, I AM THAT I AM: AND HE SAID, THUS SHALT THOU= SAY UNTO THE CHILDREN OF ISRAEL, I AM HATH SENT ME UNTO YOU. L# 15 AND GOD SAID MOREOVER UNTO MOSES, THUS SHALT THOU SAY UNTO THE CHILDRENH OF ISRAEL, THE LORD GOD OF YOUR FATHERS, THE GOD OF ABRAHAM, THE GOD OFN ISAAC, AND THE GOD OF JACOB, HATH SENT ME UNTO YOU: THIS IS MY NAME FOR EVER,. AND THIS IS MY MEMORIAL UNTO ALL GENERATIONS.I# 16 GO, AND GATHER THE ELDERS OF ISRAEL TOGETHER, AND SAY UNTO THEM, THEIF LORD GOD OF YOUR FATHERS, THE GOD OF ABRAHAM, OF ISAAC, AND OF JACOB,L APPEARED UNTO ME, SAYING, I HAVE SURELY VISITED YOU, AND 00`'%D%5%T6%! !SEEN THAT WHICH IS DONE TO YOU IN EGYPT:M# 17 AND I HAVE SAID, I WILL BRING YOU UP OUT OF THE AFFLICTION OF EGYPT UNTOOH THE LAND OF THE CANAANITES, AND THE HITTITES, AND THE AMORITES, AND THEN PERIZZITES, AND THE HIVITES, AND THE JEBUSITES, UNTO A LAND FLOWING WITH MILK AND HONEY.LK# 18 AND THEY SHALL HEARKEN TO THY VOICE: AND THOU SHALT COME, THOU AND THETN ELDERS OF ISRAEL, UNTO THE KING OF EGYPT, AND YE SHALL SAY UNTO HIM, THE LORDI GOD OF THE HEBREWS HATH MET WITH US: AND NOW LET US GO, WE BESEECH THEE,HN THREE DAYS JOURNEY INTO THE WILDERNESS, THAT WE MAY SACRIFICE TO THE LORD OUR GOD.FK# 19 AND I AM SURE THAT THE KING OF EGYPT WILL NOT LET YOU GO, NO, NOT BY AE MIGHTY HAND.TH# 20 AND I WILL STRETCH OUT MY HAND, AND SMITE EGYPT WITH ALL MY WONDERSI WHICH I WILL DO IN THE MIDST THEREOF: AND AFTER THAT HE WILL LET YOU GO.SM# 21 AND I WILL GIVE THIS PEOPLE FAVOUR IN THE SIGHT OF THE EGYPTIANS: AND ITL= SHALL COME TO PASS, THAT, WHEN YE GO, YE SHALL NOT GO EMPTY. C# 22 BUT EVERY WOMAN SHALL BORROW OF HER NEIGHBOUR, AND OF HER THATLL SOJOURNETH IN HER HOUSE, JEWELS OF SILVER, AND JEWELS OF GOLD, AND RAIMENT:L AND YE SHALL PUT THEM UPON YOUR SONS, AND UPON YOUR DAUGHTERS; AND YE SHALL SPOIL THE EGYPTIANS.Y = CHAPTER 4 K# 1 AND MOSES ANSWERED AND SAID, BUT, BEHOLD, THEY WILL NOT BELIEVE ME, NORRJ HEARKEN UNTO MY VOICE: FOR THEY WILL SAY, THE LORD HATH NOT APPEARED UNTO THEE.J# 2 AND THE LORD SAID UNTO HIM, WHAT IS THAT IN THINE HAND? AND HE SAID, A ROD.YL# 3 AND HE SAID, CAST IT ON THE GROUND. AND HE CAST IT ON THE GROUND, AND IT1 BECAME A SERPENT; AND MOSES FLED FROM BEFORE IT.OJ# 4 AND THE LORD SAID UNTO MOSES, PUT FORTH THINE HAND, AND TAKE IT BY THEK TAIL. AND HE PUT FORTH HIS HAND, AND CAUGHT IT, AND IT BECAME A ROD IN HISN HAND:H# 5 THAT THEY MAY BELIEVE THAT THE LORD GOD OF THEIR FATHERS, THE GOD OFJ ABRAHAM, THE GOD OF ISAAC, AND THE GOD OF JACOB, HATH APPEARED UNTO THEE.G# 6 AND THE LORD SAID FURTHERMORE UNTO HIM, PUT NOW THINE HAND INTO THY L BOSOM. AND HE PUT HIS HAND INTO HIS BOSOM: AND WHEN HE TOOK IT OUT, BEHOLD, HIS HAND WAS LEPROUS AS SNOW.I# 7 AND HE SAID, PUT THINE HAND INTO THY BOSOM AGAIN. AND HE PUT HIS HANDNK INTO HIS BOSOM AGAIN; AND PLUCKED IT OUT OF HIS BOSOM, AND, BEHOLD, IT WASA! TURNED AGAIN AS HIS OTHER FLESH.TM# 8 AND IT SHALL COME TO PASS, IF THEY WILL NOT BELIEVE THEE, NEITHER HEARKENOH TO THE VOICE OF THE FIRST SIGN, THAT THEY WILL BELIEVE THE VOICE OF THE LATTER SIGN.MM# 9 AND IT SHALL COME TO PASS, IF THEY WILL NOT BELIEVE ALSO THESE TWO SIGNS,SI NEITHER HEARKEN UNTO THY VOICE, THAT THOU SHALT TAKE OF THE WATER OF THE M RIVER, AND POUR IT UPON THE DRY LAND: AND THE WATER WHICH THOU TAKEST OUT OF 0 THE RIVER SHALL BECOME BLOOD UPON THE DRY LAND.H# 10 AND MOSES SAID UNTO THE LORD, O MY LORD, I AM NOT ELOQUENT, NEITHERJ HERETOFORE, NOR SINCE THOU HAST SPOKEN UNTO THY SERVANT: BUT I AM SLOW OF SPEECH, AND OF A SLOW TONGUE.L# 11 AND THE LORD SAID UNTO HIM, WHO HATH MADE MANS MOUTH? OR WHO MAKETH THEA DUMB, OR DEAF, OR THE SEEING, OR THE BLIND? HAVE NOT I THE LORD?TM# 12 NOW THEREFORE GO, AND I WILL BE WITH THY MOUTH, AND TEACH THEE WHAT THOUN SHALT SAY.:L# 13 AND HE SAID, O MY LORD, SEND, I PRAY THEE, BY THE HAND OF HIM WHOM THOU WILT SEND.M# 14 AND THE ANGER OF THE LORD WAS KINDLED AGAINST MOSES, AND HE SAID, IS NOTTG AARON THE LEVITE THY BROTHER? I KNOW THAT HE CAN SPEAK WELL. AND ALSO,EN BEHOLD, HE COMETH FORTH TO MEET THEE: AND WHEN HE SEETH THEE, HE WILL BE GLAD IN HIS HEART.M# 15 AND THOU SHALT SPEAK UNTO HIM, AND PUT WORDS IN HIS MOUTH: AND I WILL BE I WITH THY MOUTH, AND WITH HIS MOUTH, AND WILL TEACH YOU WHAT YE SHALL DO.NL# 16 AND HE SHALL BE THY SPOKESMAN UNTO THE PEOPLE: AND HE SHALL BE, EVEN HEN SHALL BE TO THEE INSTEAD OF A MOUTH, AND THOU SHALT BE TO HIM INSTEAD OF GOD.H# 17 AND THOU SHALT TAKE THIS ROD IN THINE HAND, WHEREWITH THOU SHALT DO SIGNS.AK# 18 AND MOSES WENT AND RETURNED TO JETHRO HIS FATHER IN LAW, AND SAID UNTOTM HIM, LET ME GO, I PRAY THEE, AND RETURN UNTO MY BRETHREN WHICH ARE IN E00`''<%X>%+%O-%TADATADATAGYPT,UJ AND SEE WHETHER THEY BE YET ALIVE. AND JETHRO SAID TO MOSES, GO IN PEACE.K# 19 AND THE LORD SAID UNTO MOSES IN MIDIAN, GO, RETURN INTO EGYPT: FOR ALL ( THE MEN ARE DEAD WHICH SOUGHT THY LIFE.K# 20 AND MOSES TOOK HIS WIFE AND HIS SONS, AND SET THEM UPON AN ASS, AND HE J RETURNED TO THE LAND OF EGYPT: AND MOSES TOOK THE ROD OF GOD IN HIS HAND.L# 21 AND THE LORD SAID UNTO MOSES, WHEN THOU GOEST TO RETURN INTO EGYPT, SEEI THAT THOU DO ALL THOSE WONDERS BEFORE PHARAOH, WHICH I HAVE PUT IN THINENH HAND: BUT I WILL HARDEN HIS HEART, THAT HE SHALL NOT LET THE PEOPLE GO.L# 22 AND THOU SHALT SAY UNTO PHARAOH, THUS SAITH THE LORD, ISRAEL IS MY SON, EVEN MY FIRSTBORN:AJ# 23 AND I SAY UNTO THEE, LET MY SON GO, THAT HE MAY SERVE ME: AND IF THOUG REFUSE TO LET HIM GO, BEHOLD, I WILL SLAY THY SON, EVEN THY FIRSTBORN.EJ# 24 AND IT CAME TO PASS BY THE WAY IN THE INN, THAT THE LORD MET HIM, AND SOUGHT TO KILL HIM.K# 25 THEN ZIPPORAH TOOK A SHARP STONE, AND CUT OFF THE FORESKIN OF HER SON,PK AND CAST IT AT HIS FEET, AND SAID, SURELY A BLOODY HUSBAND ART THOU TO ME.EK# 26 SO HE LET HIM GO: THEN SHE SAID, A BLOODY HUSBAND THOU ART, BECAUSE OFS THE CIRCUMCISION.M# 27 AND THE LORD SAID TO AARON, GO INTO THE WILDERNESS TO MEET MOSES. AND HEI7 WENT, AND MET HIM IN THE MOUNT OF GOD, AND KISSED HIM.NM# 28 AND MOSES TOLD AARON ALL THE WORDS OF THE LORD WHO HAD SENT HIM, AND ALLE& THE SIGNS WHICH HE HAD COMMANDED HIM.I# 29 AND MOSES AND AARON WENT AND GATHERED TOGETHER ALL THE ELDERS OF THEN CHILDREN OF ISRAEL:L# 30 AND AARON SPAKE ALL THE WORDS WHICH THE LORD HAD SPOKEN UNTO MOSES, AND* DID THE SIGNS IN THE SIGHT OF THE PEOPLE.K# 31 AND THE PEOPLE BELIEVED: AND WHEN THEY HEARD THAT THE LORD HAD VISITEDTK THE CHILDREN OF ISRAEL, AND THAT HE HAD LOOKED UPON THEIR AFFLICTION, THEN ' THEY BOWED THEIR HEADS AND WORSHIPPED.O = CHAPTER 5 K# 1 AND AFTERWARD MOSES AND AARON WENT IN, AND TOLD PHARAOH, THUS SAITH THEIL LORD GOD OF ISRAEL, LET MY PEOPLE GO, THAT THEY MAY HOLD A FEAST UNTO ME IN THE WILDERNESS.J# 2 AND PHARAOH SAID, WHO IS THE LORD, THAT I SHOULD OBEY HIS VOICE TO LET> ISRAEL GO? I KNOW NOT THE LORD, NEITHER WILL I LET ISRAEL GO.I# 3 AND THEY SAID, THE GOD OF THE HEBREWS HATH MET WITH US: LET US GO, WEDK PRAY THEE, THREE DAYS JOURNEY INTO THE DESERT, AND SACRIFICE UNTO THE LORDEB OUR GOD; LEST HE FALL UPON US WITH PESTILENCE, OR WITH THE SWORD.K# 4 AND THE KING OF EGYPT SAID UNTO THEM, WHEREFORE DO YE, MOSES AND AARON,L< LET THE PEOPLE FROM THEIR WORKS? GET YOU UNTO YOUR BURDENS.I# 5 AND PHARAOH SAID, BEHOLD, THE PEOPLE OF THE LAND NOW ARE MANY, AND YEO# MAKE THEM REST FROM THEIR BURDENS.EI# 6 AND PHARAOH COMMANDED THE SAME DAY THE TASKMASTERS OF THE PEOPLE, ANDR THEIR OFFICERS, SAYING,L# 7 YE SHALL NO MORE GIVE THE PEOPLE STRAW TO MAKE BRICK, AS HERETOFORE: LET) THEM GO AND GATHER STRAW FOR THEMSELVES.WL# 8 AND THE TALE OF THE BRICKS, WHICH THEY DID MAKE HERETOFORE, YE SHALL LAYL UPON THEM; YE SHALL NOT DIMINISH OUGHT THEREOF: FOR THEY BE IDLE; THEREFORE6 THEY CRY, SAYING, LET US GO AND SACRIFICE TO OUR GOD.K# 9 LET THERE MORE WORK BE LAID UPON THE MEN, THAT THEY MAY LABOUR THEREIN;$ AND LET THEM NOT REGARD VAIN WORDS.M# 10 AND THE TASKMASTERS OF THE PEOPLE WENT OUT, AND THEIR OFFICERS, AND THEY L SPAKE TO THE PEOPLE, SAYING, THUS SAITH PHARAOH, I WILL NOT GIVE YOU STRAW.J# 11 GO YE, GET YOU STRAW WHERE YE CAN FIND IT: YET NOT OUGHT OF YOUR WORK SHALL BE DIMINISHED.LL# 12 SO THE PEOPLE WERE SCATTERED ABROAD THROUGHOUT ALL THE LAND OF EGYPT TO! GATHER STUBBLE INSTEAD OF STRAW.AK# 13 AND THE TASKMASTERS HASTED THEM, SAYING, FULFIL YOUR WORKS, YOUR DAILYT TASKS, AS WHEN THERE WAS STRAW.K# 14 AND THE OFFICERS OF THE CHILDREN OF ISRAEL, WHICH PHARAOHS TASKMASTERS,N HAD SET OVER THEM, WERE BEATEN, AND DEMANDED, WHEREFORE HAVE YE NOT FULFILLEDD YOUR TASK IN MAKING BRICK BOTH YESTERDAY AND TO DAY, AS HERETOFORE?M# 15 THEN THE OFFICERS OF THE CHILDREN OF ISRAEL CAME AND CRIED UNTO PHARAOH,W7 SAYING, WHEREFORE DEALEST THOU THUS WITH THY SERVANTS?H# 16 THERE IS NO STRAW GIV00`'%D%5%T6%! !EN UNTO THY SERVANTS, AND THEY SAY TO US, MAKEK BRICK: AND, BEHOLD, THY SERVANTS ARE BEATEN; BUT THE FAULT IS IN THINE OWN4 PEOPLE.K# 17 BUT HE SAID, YE ARE IDLE, YE ARE IDLE: THEREFORE YE SAY, LET US GO AND  DO SACRIFICE TO THE LORD.K# 18 GO THEREFORE NOW, AND WORK; FOR THERE SHALL NO STRAW BE GIVEN YOU, YETA% SHALL YE DELIVER THE TALE OF BRICKS. I# 19 AND THE OFFICERS OF THE CHILDREN OF ISRAEL DID SEE THAT THEY WERE INNL EVIL CASE, AFTER IT WAS SAID, YE SHALL NOT MINISH OUGHT FROM YOUR BRICKS OF YOUR DAILY TASK.SK# 20 AND THEY MET MOSES AND AARON, WHO STOOD IN THE WAY, AS THEY CAME FORTH  FROM PHARAOH:K# 21 AND THEY SAID UNTO THEM, THE LORD LOOK UPON YOU, AND JUDGE; BECAUSE YEEL HAVE MADE OUR SAVOUR TO BE ABHORRED IN THE EYES OF PHARAOH, AND IN THE EYES: OF HIS SERVANTS, TO PUT A SWORD IN THEIR HAND TO SLAY US.M# 22 AND MOSES RETURNED UNTO THE LORD, AND SAID, LORD, WHEREFORE HAST THOU SOI> EVIL ENTREATED THIS PEOPLE? WHY IS IT THAT THOU HAST SENT ME?K# 23 FOR SINCE I CAME TO PHARAOH TO SPEAK IN THY NAME, HE HATH DONE EVIL TO < THIS PEOPLE; NEITHER HAST THOU DELIVERED THY PEOPLE AT ALL. = CHAPTER 6 G# 1 THEN THE LORD SAID UNTO MOSES, NOW SHALT THOU SEE WHAT I WILL DO TOYM PHARAOH: FOR WITH A STRONG HAND SHALL HE LET THEM GO, AND WITH A STRONG HANDS% SHALL HE DRIVE THEM OUT OF HIS LAND.H?# 2 AND GOD SPAKE UNTO MOSES, AND SAID UNTO HIM, I AM THE LORD:SK# 3 AND I APPEARED UNTO ABRAHAM, UNTO ISAAC, AND UNTO JACOB, BY THE NAME OFA> GOD ALMIGHTY, BUT BY MY NAME JEHOVAH WAS I NOT KNOWN TO THEM.L# 4 AND I HAVE ALSO ESTABLISHED MY COVENANT WITH THEM, TO GIVE THEM THE LANDF OF CANAAN, THE LAND OF THEIR PILGRIMAGE, WHEREIN THEY WERE STRANGERS.J# 5 AND I HAVE ALSO HEARD THE GROANING OF THE CHILDREN OF ISRAEL, WHOM THE> EGYPTIANS KEEP IN BONDAGE; AND I HAVE REMEMBERED MY COVENANT.H# 6 WHEREFORE SAY UNTO THE CHILDREN OF ISRAEL, I AM THE LORD, AND I WILLN BRING YOU OUT FROM UNDER THE BURDENS OF THE EGYPTIANS, AND I WILL RID YOU OUTK OF THEIR BONDAGE, AND I WILL REDEEM YOU WITH A STRETCHED OUT ARM, AND WITH  GREAT JUDGMENTS:SK# 7 AND I WILL TAKE YOU TO ME FOR A PEOPLE, AND I WILL BE TO YOU A GOD: ANDIM YE SHALL KNOW THAT I AM THE LORD YOUR GOD, WHICH BRINGETH YOU OUT FROM UNDERI THE BURDENS OF THE EGYPTIANS.K# 8 AND I WILL BRING YOU IN UNTO THE LAND, CONCERNING THE WHICH I DID SWEARHM TO GIVE IT TO ABRAHAM, TO ISAAC, AND TO JACOB; AND I WILL GIVE IT YOU FOR ANO HERITAGE: I AM THE LORD.FJ# 9 AND MOSES SPAKE SO UNTO THE CHILDREN OF ISRAEL: BUT THEY HEARKENED NOT9 UNTO MOSES FOR ANGUISH OF SPIRIT, AND FOR CRUEL BONDAGE.S+# 10 AND THE LORD SPAKE UNTO MOSES, SAYING, I# 11 GO IN, SPEAK UNTO PHARAOH KING OF EGYPT, THAT HE LET THE CHILDREN OFD ISRAEL GO OUT OF HIS LAND. L# 12 AND MOSES SPAKE BEFORE THE LORD, SAYING, BEHOLD, THE CHILDREN OF ISRAELF HAVE NOT HEARKENED UNTO ME; HOW THEN SHALL PHARAOH HEAR ME, WHO AM OF UNCIRCUMCISED LIPS?I# 13 AND THE LORD SPAKE UNTO MOSES AND UNTO AARON, AND GAVE THEM A CHARGEOJ UNTO THE CHILDREN OF ISRAEL, AND UNTO PHARAOH KING OF EGYPT, TO BRING THE- CHILDREN OF ISRAEL OUT OF THE LAND OF EGYPT.TG# 14 THESE BE THE HEADS OF THEIR FATHERS HOUSES: THE SONS OF REUBEN THEFH FIRSTBORN OF ISRAEL; HANOCH, AND PALLU, HEZRON, AND CARMI: THESE BE THE FAMILIES OF REUBEN.I# 15 AND THE SONS OF SIMEON; JEMUEL, AND JAMIN, AND OHAD, AND JACHIN, ANDMK ZOHAR, AND SHAUL THE SON OF A CANAANITISH WOMAN: THESE ARE THE FAMILIES OFT SIMEON.C# 16 AND THESE ARE THE NAMES OF THE SONS OF LEVI ACCORDING TO THEIRLK GENERATIONS; GERSHON, AND KOHATH, AND MERARI: AND THE YEARS OF THE LIFE OFR- LEVI WERE AN HUNDRED THIRTY AND SEVEN YEARS.HH# 17 THE SONS OF GERSHON; LIBNI, AND SHIMI, ACCORDING TO THEIR FAMILIES.J# 18 AND THE SONS OF KOHATH; AMRAM, AND IZHAR, AND HEBRON, AND UZZIEL: ANDH THE YEARS OF THE LIFE OF KOHATH WERE AN HUNDRED THIRTY AND THREE YEARS.M# 19 AND THE SONS OF MERARI; MAHALI AND MUSHI: THESE ARE THE FAMILIES OF LEVIO ACCORDING TO THEIR GENERATIONS.M# 20 AND AMRAM TOOK HIM JOCHEBED HIS FATHERS SISTER TO WIFE; AND SHE BARE HIMHH AARON AND MOSES: AND THE 00`''<%X>%+%O-%TADATADATAYEARS OF THE LIFE OF AMRAM WERE AN HUNDRED AND THIRTY AND SEVEN YEARS.:# 21 AND THE SONS OF IZHAR; KORAH, AND NEPHEG, AND ZICHRI.?# 22 AND THE SONS OF UZZIEL; MISHAEL, AND ELZAPHAN, AND ZITHRI.OK# 23 AND AARON TOOK HIM ELISHEBA, DAUGHTER OF AMMINADAB, SISTER OF NAASHON,NB TO WIFE; AND SHE BARE HIM NADAB, AND ABIHU, ELEAZAR, AND ITHAMAR.K# 24 AND THE SONS OF KORAH; ASSIR, AND ELKANAH, AND ABIASAPH: THESE ARE THET FAMILIES OF THE KORHITES.L# 25 AND ELEAZAR AARONS SON TOOK HIM ONE OF THE DAUGHTERS OF PUTIEL TO WIFE;M AND SHE BARE HIM PHINEHAS: THESE ARE THE HEADS OF THE FATHERS OF THE LEVITESI ACCORDING TO THEIR FAMILIES.CI# 26 THESE ARE THAT AARON AND MOSES, TO WHOM THE LORD SAID, BRING OUT THE3E CHILDREN OF ISRAEL FROM THE LAND OF EGYPT ACCORDING TO THEIR ARMIES.NJ# 27 THESE ARE THEY WHICH SPAKE TO PHARAOH KING OF EGYPT, TO BRING OUT THE? CHILDREN OF ISRAEL FROM EGYPT: THESE ARE THAT MOSES AND AARON. I# 28 AND IT CAME TO PASS ON THE DAY WHEN THE LORD SPAKE UNTO MOSES IN THEO LAND OF EGYPT,FK# 29 THAT THE LORD SPAKE UNTO MOSES, SAYING, I AM THE LORD: SPEAK THOU UNTOE0 PHARAOH KING OF EGYPT ALL THAT I SAY UNTO THEE.L# 30 AND MOSES SAID BEFORE THE LORD, BEHOLD, I AM OF UNCIRCUMCISED LIPS, AND# HOW SHALL PHARAOH HEARKEN UNTO ME?E = CHAPTER 7 M# 1 AND THE LORD SAID UNTO MOSES, SEE, I HAVE MADE THEE A GOD TO PHARAOH: ANDO( AARON THY BROTHER SHALL BE THY PROPHET.I# 2 THOU SHALT SPEAK ALL THAT I COMMAND THEE: AND AARON THY BROTHER SHALL I SPEAK UNTO PHARAOH, THAT HE SEND THE CHILDREN OF ISRAEL OUT OF HIS LAND.DM# 3 AND I WILL HARDEN PHARAOHS HEART, AND MULTIPLY MY SIGNS AND MY WONDERS INY THE LAND OF EGYPT.OG# 4 BUT PHARAOH SHALL NOT HEARKEN UNTO YOU, THAT I MAY LAY MY HAND UPONDN EGYPT, AND BRING FORTH MINE ARMIES, AND MY PEOPLE THE CHILDREN OF ISRAEL, OUT) OF THE LAND OF EGYPT BY GREAT JUDGMENTS.OI# 5 AND THE EGYPTIANS SHALL KNOW THAT I AM THE LORD, WHEN I STRETCH FORTHTL MINE HAND UPON EGYPT, AND BRING OUT THE CHILDREN OF ISRAEL FROM AMONG THEM.D# 6 AND MOSES AND AARON DID AS THE LORD COMMANDED THEM, SO DID THEY.J# 7 AND MOSES WAS FOURSCORE YEARS OLD, AND AARON FOURSCORE AND THREE YEARS# OLD, WHEN THEY SPAKE UNTO PHARAOH. 9# 8 AND THE LORD SPAKE UNTO MOSES AND UNTO AARON, SAYING, K# 9 WHEN PHARAOH SHALL SPEAK UNTO YOU, SAYING, SHEW A MIRACLE FOR YOU: THENHL THOU SHALT SAY UNTO AARON, TAKE THY ROD, AND CAST IT BEFORE PHARAOH, AND IT SHALL BECOME A SERPENT.J# 10 AND MOSES AND AARON WENT IN UNTO PHARAOH, AND THEY DID SO AS THE LORDJ HAD COMMANDED: AND AARON CAST DOWN HIS ROD BEFORE PHARAOH, AND BEFORE HIS# SERVANTS, AND IT BECAME A SERPENT.RE# 11 THEN PHARAOH ALSO CALLED THE WISE MEN AND THE SORCERERS: NOW THEPJ MAGICIANS OF EGYPT, THEY ALSO DID IN LIKE MANNER WITH THEIR ENCHANTMENTS.H# 12 FOR THEY CAST DOWN EVERY MAN HIS ROD, AND THEY BECAME SERPENTS: BUT$ AARONS ROD SWALLOWED UP THEIR RODS.L# 13 AND HE HARDENED PHARAOHS HEART, THAT HE HEARKENED NOT UNTO THEM; AS THE LORD HAD SAID.NM# 14 AND THE LORD SAID UNTO MOSES, PHARAOHS HEART IS HARDENED, HE REFUSETH TO  LET THE PEOPLE GO.HK# 15 GET THEE UNTO PHARAOH IN THE MORNING; LO, HE GOETH OUT UNTO THE WATER;OL AND THOU SHALT STAND BY THE RIVERS BRINK AGAINST HE COME; AND THE ROD WHICH7 WAS TURNED TO A SERPENT SHALT THOU TAKE IN THINE HAND.TJ# 16 AND THOU SHALT SAY UNTO HIM, THE LORD GOD OF THE HEBREWS HATH SENT MEC UNTO THEE, SAYING, LET MY PEOPLE GO, THAT THEY MAY SERVE ME IN THEE: WILDERNESS: AND, BEHOLD, HITHERTO THOU WOULDEST NOT HEAR.M# 17 THUS SAITH THE LORD, IN THIS THOU SHALT KNOW THAT I AM THE LORD: BEHOLD,EL I WILL SMITE WITH THE ROD THAT IS IN MINE HAND UPON THE WATERS WHICH ARE IN. THE RIVER, AND THEY SHALL BE TURNED TO BLOOD.L# 18 AND THE FISH THAT IS IN THE RIVER SHALL DIE, AND THE RIVER SHALL STINK;B AND THE EGYPTIANS SHALL LOTHE TO DRINK OF THE WATER OF THE RIVER.M# 19 AND THE LORD SPAKE UNTO MOSES, SAY UNTO AARON, TAKE THY ROD, AND STRETCH H OUT THINE HAND UPON THE WATERS OF EGYPT, UPON THEIR STREAMS, UPON THEIRK RIVERS, AND UPON THEIR PONDS, AND UPON ALL THEIR POOLS OF WATER, THAT THEY I MAY B00`'%D%5%T6%! !ECOME BLOOD; AND THAT THERE MAY BE BLOOD THROUGHOUT ALL THE LAND OFH9 EGYPT, BOTH IN VESSELS OF WOOD, AND IN VESSELS OF STONE.L# 20 AND MOSES AND AARON DID SO, AS THE LORD COMMANDED; AND HE LIFTED UP THEK ROD, AND SMOTE THE WATERS THAT WERE IN THE RIVER, IN THE SIGHT OF PHARAOH,TL AND IN THE SIGHT OF HIS SERVANTS; AND ALL THE WATERS THAT WERE IN THE RIVER WERE TURNED TO BLOOD.J# 21 AND THE FISH THAT WAS IN THE RIVER DIED; AND THE RIVER STANK, AND THEI EGYPTIANS COULD NOT DRINK OF THE WATER OF THE RIVER; AND THERE WAS BLOODR" THROUGHOUT ALL THE LAND OF EGYPT.L# 22 AND THE MAGICIANS OF EGYPT DID SO WITH THEIR ENCHANTMENTS: AND PHARAOHSL HEART WAS HARDENED, NEITHER DID HE HEARKEN UNTO THEM; AS THE LORD HAD SAID.M# 23 AND PHARAOH TURNED AND WENT INTO HIS HOUSE, NEITHER DID HE SET HIS HEART  TO THIS ALSO.K# 24 AND ALL THE EGYPTIANS DIGGED ROUND ABOUT THE RIVER FOR WATER TO DRINK;14 FOR THEY COULD NOT DRINK OF THE WATER OF THE RIVER.G# 25 AND SEVEN DAYS WERE FULFILLED, AFTER THAT THE LORD HAD SMITTEN THEN RIVER.A = CHAPTER 8 J# 1 AND THE LORD SPAKE UNTO MOSES, GO UNTO PHARAOH, AND SAY UNTO HIM, THUS: SAITH THE LORD, LET MY PEOPLE GO, THAT THEY MAY SERVE ME.K# 2 AND IF THOU REFUSE TO LET THEM GO, BEHOLD, I WILL SMITE ALL THY BORDERSN WITH FROGS:K# 3 AND THE RIVER SHALL BRING FORTH FROGS ABUNDANTLY, WHICH SHALL GO UP ANDTK COME INTO THINE HOUSE, AND INTO THY BEDCHAMBER, AND UPON THY BED, AND INTORJ THE HOUSE OF THY SERVANTS, AND UPON THY PEOPLE, AND INTO THINE OVENS, AND INTO THY KNEADINGTROUGHS:K# 4 AND THE FROGS SHALL COME UP BOTH ON THEE, AND UPON THY PEOPLE, AND UPON  ALL THY SERVANTS.K# 5 AND THE LORD SPAKE UNTO MOSES, SAY UNTO AARON, STRETCH FORTH THINE HANDON WITH THY ROD OVER THE STREAMS, OVER THE RIVERS, AND OVER THE PONDS, AND CAUSE) FROGS TO COME UP UPON THE LAND OF EGYPT.NL# 6 AND AARON STRETCHED OUT HIS HAND OVER THE WATERS OF EGYPT; AND THE FROGS( CAME UP, AND COVERED THE LAND OF EGYPT.J# 7 AND THE MAGICIANS DID SO WITH THEIR ENCHANTMENTS, AND BROUGHT UP FROGS UPON THE LAND OF EGYPT.M# 8 THEN PHARAOH CALLED FOR MOSES AND AARON, AND SAID, INTREAT THE LORD, THATSK HE MAY TAKE AWAY THE FROGS FROM ME, AND FROM MY PEOPLE; AND I WILL LET THEI5 PEOPLE GO, THAT THEY MAY DO SACRIFICE UNTO THE LORD.RH# 9 AND MOSES SAID UNTO PHARAOH, GLORY OVER ME: WHEN SHALL I INTREAT FORJ THEE, AND FOR THY SERVANTS, AND FOR THY PEOPLE, TO DESTROY THE FROGS FROM= THEE AND THY HOUSES, THAT THEY MAY REMAIN IN THE RIVER ONLY?IK# 10 AND HE SAID, TO MORROW. AND HE SAID, BE IT ACCORDING TO THY WORD: THAT @ THOU MAYEST KNOW THAT THERE IS NONE LIKE UNTO THE LORD OUR GOD.L# 11 AND THE FROGS SHALL DEPART FROM THEE, AND FROM THY HOUSES, AND FROM THYD SERVANTS, AND FROM THY PEOPLE; THEY SHALL REMAIN IN THE RIVER ONLY.M# 12 AND MOSES AND AARON WENT OUT FROM PHARAOH: AND MOSES CRIED UNTO THE LORDR; BECAUSE OF THE FROGS WHICH HE HAD BROUGHT AGAINST PHARAOH. L# 13 AND THE LORD DID ACCORDING TO THE WORD OF MOSES; AND THE FROGS DIED OUT; OF THE HOUSES, OUT OF THE VILLAGES, AND OUT OF THE FIELDS.OD# 14 AND THEY GATHERED THEM TOGETHER UPON HEAPS: AND THE LAND STANK.L# 15 BUT WHEN PHARAOH SAW THAT THERE WAS RESPITE, HE HARDENED HIS HEART, AND/ HEARKENED NOT UNTO THEM; AS THE LORD HAD SAID.YK# 16 AND THE LORD SAID UNTO MOSES, SAY UNTO AARON, STRETCH OUT THY ROD, ANDAL SMITE THE DUST OF THE LAND, THAT IT MAY BECOME LICE THROUGHOUT ALL THE LAND OF EGYPT.H# 17 AND THEY DID SO; FOR AARON STRETCHED OUT HIS HAND WITH HIS ROD, ANDN SMOTE THE DUST OF THE EARTH, AND IT BECAME LICE IN MAN, AND IN BEAST; ALL THE? DUST OF THE LAND BECAME LICE THROUGHOUT ALL THE LAND OF EGYPT. J# 18 AND THE MAGICIANS DID SO WITH THEIR ENCHANTMENTS TO BRING FORTH LICE,A BUT THEY COULD NOT: SO THERE WERE LICE UPON MAN, AND UPON BEAST. I# 19 THEN THE MAGICIANS SAID UNTO PHARAOH, THIS IS THE FINGER OF GOD: AND M PHARAOHS HEART WAS HARDENED, AND HE HEARKENED NOT UNTO THEM; AS THE LORD HADA SAID.J# 20 AND THE LORD SAID UNTO MOSES, RISE UP EARLY IN THE MORNING, AND STANDI BEFORE PHARAOH; LO, HE COMETH FORTH TO THE WATER; AND S00`''<%X>%+%O-%TADATADATAAY UNTO HIM, THUSE: SAITH THE LORD, LET MY PEOPLE GO, THAT THEY MAY SERVE ME.K# 21 ELSE, IF THOU WILT NOT LET MY PEOPLE GO, BEHOLD, I WILL SEND SWARMS OFEJ FLIES UPON THEE, AND UPON THY SERVANTS, AND UPON THY PEOPLE, AND INTO THYN HOUSES: AND THE HOUSES OF THE EGYPTIANS SHALL BE FULL OF SWARMS OF FLIES, AND" ALSO THE GROUND WHEREON THEY ARE.H# 22 AND I WILL SEVER IN THAT DAY THE LAND OF GOSHEN, IN WHICH MY PEOPLEK DWELL, THAT NO SWARMS OF FLIES SHALL BE THERE; TO THE END THOU MAYEST KNOW . THAT I AM THE LORD IN THE MIDST OF THE EARTH.J# 23 AND I WILL PUT A DIVISION BETWEEN MY PEOPLE AND THY PEOPLE: TO MORROW SHALL THIS SIGN BE.K# 24 AND THE LORD DID SO; AND THERE CAME A GRIEVOUS SWARM OF FLIES INTO THE I HOUSE OF PHARAOH, AND INTO HIS SERVANTS HOUSES, AND INTO ALL THE LAND OFL? EGYPT: THE LAND WAS CORRUPTED BY REASON OF THE SWARM OF FLIES.2K# 25 AND PHARAOH CALLED FOR MOSES AND FOR AARON, AND SAID, GO YE, SACRIFICE  TO YOUR GOD IN THE LAND.LH# 26 AND MOSES SAID, IT IS NOT MEET SO TO DO; FOR WE SHALL SACRIFICE THEM ABOMINATION OF THE EGYPTIANS TO THE LORD OUR GOD: LO, SHALL WE SACRIFICE THE:L ABOMINATION OF THE EGYPTIANS BEFORE THEIR EYES, AND WILL THEY NOT STONE US?L# 27 WE WILL GO THREE DAYS JOURNEY INTO THE WILDERNESS, AND SACRIFICE TO THE& LORD OUR GOD, AS HE SHALL COMMAND US.K# 28 AND PHARAOH SAID, I WILL LET YOU GO, THAT YE MAY SACRIFICE TO THE LORDLL YOUR GOD IN THE WILDERNESS; ONLY YE SHALL NOT GO VERY FAR AWAY: INTREAT FOR ME.L# 29 AND MOSES SAID, BEHOLD, I GO OUT FROM THEE, AND I WILL INTREAT THE LORDN THAT THE SWARMS OF FLIES MAY DEPART FROM PHARAOH, FROM HIS SERVANTS, AND FROML HIS PEOPLE, TO MORROW: BUT LET NOT PHARAOH DEAL DECEITFULLY ANY MORE IN NOT0 LETTING THE PEOPLE GO TO SACRIFICE TO THE LORD.=# 30 AND MOSES WENT OUT FROM PHARAOH, AND INTREATED THE LORD..H# 31 AND THE LORD DID ACCORDING TO THE WORD OF MOSES; AND HE REMOVED THEL SWARMS OF FLIES FROM PHARAOH, FROM HIS SERVANTS, AND FROM HIS PEOPLE; THERE REMAINED NOT ONE.K# 32 AND PHARAOH HARDENED HIS HEART AT THIS TIME ALSO, NEITHER WOULD HE LETH THE PEOPLE GO. = CHAPTER 9 I# 1 THEN THE LORD SAID UNTO MOSES, GO IN UNTO PHARAOH, AND TELL HIM, THUS M SAITH THE LORD GOD OF THE HEBREWS, LET MY PEOPLE GO, THAT THEY MAY SERVE ME.O@# 2 FOR IF THOU REFUSE TO LET THEM GO, AND WILT HOLD THEM STILL,J# 3 BEHOLD, THE HAND OF THE LORD IS UPON THY CATTLE WHICH IS IN THE FIELD,N UPON THE HORSES, UPON THE ASSES, UPON THE CAMELS, UPON THE OXEN, AND UPON THE/ SHEEP: THERE SHALL BE A VERY GRIEVOUS MURRAIN.EK# 4 AND THE LORD SHALL SEVER BETWEEN THE CATTLE OF ISRAEL AND THE CATTLE OFPK EGYPT: AND THERE SHALL NOTHING DIE OF ALL THAT IS THE CHILDRENS OF ISRAEL.TJ# 5 AND THE LORD APPOINTED A SET TIME, SAYING, TO MORROW THE LORD SHALL DO THIS THING IN THE LAND.J# 6 AND THE LORD DID THAT THING ON THE MORROW, AND ALL THE CATTLE OF EGYPT@ DIED: BUT OF THE CATTLE OF THE CHILDREN OF ISRAEL DIED NOT ONE.I# 7 AND PHARAOH SENT, AND, BEHOLD, THERE WAS NOT ONE OF THE CATTLE OF THERK ISRAELITES DEAD. AND THE HEART OF PHARAOH WAS HARDENED, AND HE DID NOT LETE THE PEOPLE GO. H# 8 AND THE LORD SAID UNTO MOSES AND UNTO AARON, TAKE TO YOU HANDFULS OFI ASHES OF THE FURNACE, AND LET MOSES SPRINKLE IT TOWARD THE HEAVEN IN THEO SIGHT OF PHARAOH.K# 9 AND IT SHALL BECOME SMALL DUST IN ALL THE LAND OF EGYPT, AND SHALL BE AAM BOIL BREAKING FORTH WITH BLAINS UPON MAN, AND UPON BEAST, THROUGHOUT ALL THED LAND OF EGYPT. L# 10 AND THEY TOOK ASHES OF THE FURNACE, AND STOOD BEFORE PHARAOH; AND MOSESH SPRINKLED IT UP TOWARD HEAVEN; AND IT BECAME A BOIL BREAKING FORTH WITH! BLAINS UPON MAN, AND UPON BEAST.IM# 11 AND THE MAGICIANS COULD NOT STAND BEFORE MOSES BECAUSE OF THE BOILS; FORD= THE BOIL WAS UPON THE MAGICIANS, AND UPON ALL THE EGYPTIANS.RJ# 12 AND THE LORD HARDENED THE HEART OF PHARAOH, AND HE HEARKENED NOT UNTO) THEM; AS THE LORD HAD SPOKEN UNTO MOSES.OJ# 13 AND THE LORD SAID UNTO MOSES, RISE UP EARLY IN THE MORNING, AND STANDN BEFORE PHARAOH, AND SAY UNTO HIM, THUS SAITH THE LORD GOD OF THE HEBREWS, LET& MY PEOPLE GO, THAT THEY00`'%D%5%T6%! ! MAY SERVE ME.K# 14 FOR I WILL AT THIS TIME SEND ALL MY PLAGUES UPON THINE HEART, AND UPONCL THY SERVANTS, AND UPON THY PEOPLE; THAT THOU MAYEST KNOW THAT THERE IS NONE LIKE ME IN ALL THE EARTH.M# 15 FOR NOW I WILL STRETCH OUT MY HAND, THAT I MAY SMITE THEE AND THY PEOPLE ; WITH PESTILENCE; AND THOU SHALT BE CUT OFF FROM THE EARTH.DJ# 16 AND IN VERY DEED FOR THIS CAUSE HAVE I RAISED THEE UP, FOR TO SHEW INJ THEE MY POWER; AND THAT MY NAME MAY BE DECLARED THROUGHOUT ALL THE EARTH.K# 17 AS YET EXALTEST THOU THYSELF AGAINST MY PEOPLE, THAT THOU WILT NOT LETP THEM GO? E# 18 BEHOLD, TO MORROW ABOUT THIS TIME I WILL CAUSE IT TO RAIN A VERYAK GRIEVOUS HAIL, SUCH AS HATH NOT BEEN IN EGYPT SINCE THE FOUNDATION THEREOF  EVEN UNTIL NOW.M# 19 SEND THEREFORE NOW, AND GATHER THY CATTLE, AND ALL THAT THOU HAST IN THEUK FIELD; FOR UPON EVERY MAN AND BEAST WHICH SHALL BE FOUND IN THE FIELD, ANDEN SHALL NOT BE BROUGHT HOME, THE HAIL SHALL COME DOWN UPON THEM, AND THEY SHALL DIE.HK# 20 HE THAT FEARED THE WORD OF THE LORD AMONG THE SERVANTS OF PHARAOH MADE 2 HIS SERVANTS AND HIS CATTLE FLEE INTO THE HOUSES:L# 21 AND HE THAT REGARDED NOT THE WORD OF THE LORD LEFT HIS SERVANTS AND HIS CATTLE IN THE FIELD.UJ# 22 AND THE LORD SAID UNTO MOSES, STRETCH FORTH THINE HAND TOWARD HEAVEN,K THAT THERE MAY BE HAIL IN ALL THE LAND OF EGYPT, UPON MAN, AND UPON BEAST,W@ AND UPON EVERY HERB OF THE FIELD, THROUGHOUT THE LAND OF EGYPT.G# 23 AND MOSES STRETCHED FORTH HIS ROD TOWARD HEAVEN: AND THE LORD SENTTN THUNDER AND HAIL, AND THE FIRE RAN ALONG UPON THE GROUND; AND THE LORD RAINED HAIL UPON THE LAND OF EGYPT.UK# 24 SO THERE WAS HAIL, AND FIRE MINGLED WITH THE HAIL, VERY GRIEVOUS, SUCHDM AS THERE WAS NONE LIKE IT IN ALL THE LAND OF EGYPT SINCE IT BECAME A NATION.TL# 25 AND THE HAIL SMOTE THROUGHOUT ALL THE LAND OF EGYPT ALL THAT WAS IN THEK FIELD, BOTH MAN AND BEAST; AND THE HAIL SMOTE EVERY HERB OF THE FIELD, ANDA BRAKE EVERY TREE OF THE FIELD.TM# 26 ONLY IN THE LAND OF GOSHEN, WHERE THE CHILDREN OF ISRAEL WERE, WAS THEREE NO HAIL.LL# 27 AND PHARAOH SENT, AND CALLED FOR MOSES AND AARON, AND SAID UNTO THEM, IN HAVE SINNED THIS TIME: THE LORD IS RIGHTEOUS, AND I AND MY PEOPLE ARE WICKED.E# 28 INTREAT THE LORD (FOR IT IS ENOUGH) THAT THERE BE NO MORE MIGHTYTJ THUNDERINGS AND HAIL; AND I WILL LET YOU GO, AND YE SHALL STAY NO LONGER.J# 29 AND MOSES SAID UNTO HIM, AS SOON AS I AM GONE OUT OF THE CITY, I WILLK SPREAD ABROAD MY HANDS UNTO THE LORD; AND THE THUNDER SHALL CEASE, NEITHEREN SHALL THERE BE ANY MORE HAIL; THAT THOU MAYEST KNOW HOW THAT THE EARTH IS THE LORDS.OK# 30 BUT AS FOR THEE AND THY SERVANTS, I KNOW THAT YE WILL NOT YET FEAR THE LORD GOD.L# 31 AND THE FLAX AND THE BARLEY WAS SMITTEN: FOR THE BARLEY WAS IN THE EAR, AND THE FLAX WAS BOLLED.TL# 32 BUT THE WHEAT AND THE RIE WERE NOT SMITTEN: FOR THEY WERE NOT GROWN UP.M# 33 AND MOSES WENT OUT OF THE CITY FROM PHARAOH, AND SPREAD ABROAD HIS HANDS M UNTO THE LORD: AND THE THUNDERS AND HAIL CEASED, AND THE RAIN WAS NOT POUREDE UPON THE EARTH.J# 34 AND WHEN PHARAOH SAW THAT THE RAIN AND THE HAIL AND THE THUNDERS WEREI CEASED, HE SINNED YET MORE, AND HARDENED HIS HEART, HE AND HIS SERVANTS.M# 35 AND THE HEART OF PHARAOH WAS HARDENED, NEITHER WOULD HE LET THE CHILDRENA/ OF ISRAEL GO; AS THE LORD HAD SPOKEN BY MOSES.T = CHAPTER 10 M# 1 AND THE LORD SAID UNTO MOSES, GO IN UNTO PHARAOH: FOR I HAVE HARDENED HISPN HEART, AND THE HEART OF HIS SERVANTS, THAT I MIGHT SHEW THESE MY SIGNS BEFORE HIM: J# 2 AND THAT THOU MAYEST TELL IN THE EARS OF THY SON, AND OF THY SONS SON,J WHAT THINGS I HAVE WROUGHT IN EGYPT, AND MY SIGNS WHICH I HAVE DONE AMONG/ THEM; THAT YE MAY KNOW HOW THAT I AM THE LORD. K# 3 AND MOSES AND AARON CAME IN UNTO PHARAOH, AND SAID UNTO HIM, THUS SAITHI THE LORD GOD OF THE HEBREWS, HOW LONG WILT THOU REFUSE TO HUMBLE THYSELFH5 BEFORE ME? LET MY PEOPLE GO, THAT THEY MAY SERVE ME.HL# 4 ELSE, IF THOU REFUSE TO LET MY PEOPLE GO, BEHOLD, TO MORROW WILL I BRING THE LOCUSTS INTO THY COAST:J# 5 AND THEY SHALL COVER THE FAC00`''<%X>%+%O-%TADATADATAE OF THE EARTH, THAT ONE CANNOT BE ABLE TON SEE THE EARTH: AND THEY SHALL EAT THE RESIDUE OF THAT WHICH IS ESCAPED, WHICHM REMAINETH UNTO YOU FROM THE HAIL, AND SHALL EAT EVERY TREE WHICH GROWETH FORA YOU OUT OF THE FIELD:K# 6 AND THEY SHALL FILL THY HOUSES, AND THE HOUSES OF ALL THY SERVANTS, ANDLL THE HOUSES OF ALL THE EGYPTIANS; WHICH NEITHER THY FATHERS, NOR THY FATHERSN FATHERS HAVE SEEN, SINCE THE DAY THAT THEY WERE UPON THE EARTH UNTO THIS DAY.2 AND HE TURNED HIMSELF, AND WENT OUT FROM PHARAOH.K# 7 AND PHARAOHS SERVANTS SAID UNTO HIM, HOW LONG SHALL THIS MAN BE A SNARETN UNTO US? LET THE MEN GO, THAT THEY MAY SERVE THE LORD THEIR GOD: KNOWEST THOU! NOT YET THAT EGYPT IS DESTROYED?TI# 8 AND MOSES AND AARON WERE BROUGHT AGAIN UNTO PHARAOH: AND HE SAID UNTO C THEM, GO, SERVE THE LORD YOUR GOD: BUT WHO ARE THEY THAT SHALL GO?HM# 9 AND MOSES SAID, WE WILL GO WITH OUR YOUNG AND WITH OUR OLD, WITH OUR SONSTN AND WITH OUR DAUGHTERS, WITH OUR FLOCKS AND WITH OUR HERDS WILL WE GO; FOR WE! MUST HOLD A FEAST UNTO THE LORD.AJ# 10 AND HE SAID UNTO THEM, LET THE LORD BE SO WITH YOU, AS I WILL LET YOU> GO, AND YOUR LITTLE ONES: LOOK TO IT; FOR EVIL IS BEFORE YOU.H# 11 NOT SO: GO NOW YE THAT ARE MEN, AND SERVE THE LORD; FOR THAT YE DID9 DESIRE. AND THEY WERE DRIVEN OUT FROM PHARAOHS PRESENCE. J# 12 AND THE LORD SAID UNTO MOSES, STRETCH OUT THINE HAND OVER THE LAND OFM EGYPT FOR THE LOCUSTS, THAT THEY MAY COME UP UPON THE LAND OF EGYPT, AND EATU: EVERY HERB OF THE LAND, EVEN ALL THAT THE HAIL HATH LEFT.K# 13 AND MOSES STRETCHED FORTH HIS ROD OVER THE LAND OF EGYPT, AND THE LORDON BROUGHT AN EAST WIND UPON THE LAND ALL THAT DAY, AND ALL THAT NIGHT; AND WHEN3 IT WAS MORNING, THE EAST WIND BROUGHT THE LOCUSTS.TM# 14 AND THE LOCUST WENT UP OVER ALL THE LAND OF EGYPT, AND RESTED IN ALL THENI COASTS OF EGYPT: VERY GRIEVOUS WERE THEY; BEFORE THEM THERE WERE NO SUCHN3 LOCUSTS AS THEY, NEITHER AFTER THEM SHALL BE SUCH.PG# 15 FOR THEY COVERED THE FACE OF THE WHOLE EARTH, SO THAT THE LAND WASEL DARKENED; AND THEY DID EAT EVERY HERB OF THE LAND, AND ALL THE FRUIT OF THEM TREES WHICH THE HAIL HAD LEFT: AND THERE REMAINED NOT ANY GREEN THING IN THETD TREES, OR IN THE HERBS OF THE FIELD, THROUGH ALL THE LAND OF EGYPT.J# 16 THEN PHARAOH CALLED FOR MOSES AND AARON IN HASTE; AND HE SAID, I HAVE3 SINNED AGAINST THE LORD YOUR GOD, AND AGAINST YOU.RK# 17 NOW THEREFORE FORGIVE, I PRAY THEE, MY SIN ONLY THIS ONCE, AND INTREATHB THE LORD YOUR GOD, THAT HE MAY TAKE AWAY FROM ME THIS DEATH ONLY.:# 18 AND HE WENT OUT FROM PHARAOH, AND INTREATED THE LORD.G# 19 AND THE LORD TURNED A MIGHTY STRONG WEST WIND, WHICH TOOK AWAY THEAN LOCUSTS, AND CAST THEM INTO THE RED SEA; THERE REMAINED NOT ONE LOCUST IN ALL THE COASTS OF EGYPT.G# 20 BUT THE LORD HARDENED PHARAOHS HEART, SO THAT HE WOULD NOT LET THEE CHILDREN OF ISRAEL GO.DM# 21 AND THE LORD SAID UNTO MOSES, STRETCH OUT THINE HAND TOWARD HEAVEN, THATNI THERE MAY BE DARKNESS OVER THE LAND OF EGYPT, EVEN DARKNESS WHICH MAY BEM FELT.L# 22 AND MOSES STRETCHED FORTH HIS HAND TOWARD HEAVEN; AND THERE WAS A THICK. DARKNESS IN ALL THE LAND OF EGYPT THREE DAYS:H# 23 THEY SAW NOT ONE ANOTHER, NEITHER ROSE ANY FROM HIS PLACE FOR THREEC DAYS: BUT ALL THE CHILDREN OF ISRAEL HAD LIGHT IN THEIR DWELLINGS.AM# 24 AND PHARAOH CALLED UNTO MOSES, AND SAID, GO YE, SERVE THE LORD; ONLY LETM YOUR FLOCKS AND YOUR HERDS BE STAYED: LET YOUR LITTLE ONES ALSO GO WITH YOU.K# 25 AND MOSES SAID, THOU MUST GIVE US ALSO SACRIFICES AND BURNT OFFERINGS,F- THAT WE MAY SACRIFICE UNTO THE LORD OUR GOD.OF# 26 OUR CATTLE ALSO SHALL GO WITH US; THERE SHALL NOT AN HOOF BE LEFTL BEHIND; FOR THEREOF MUST WE TAKE TO SERVE THE LORD OUR GOD; AND WE KNOW NOT9 WITH WHAT WE MUST SERVE THE LORD, UNTIL WE COME THITHER.TH# 27 BUT THE LORD HARDENED PHARAOHS HEART, AND HE WOULD NOT LET THEM GO.K# 28 AND PHARAOH SAID UNTO HIM, GET THEE FROM ME, TAKE HEED TO THYSELF, SEEED MY FACE NO MORE; FOR IN THAT DAY THOU SEEST MY FACE THOU SHALT DIE.H# 29 AND MOSES SAID, THOU HAST SPOKEN WELL, I WILL SEE THY FACE 00`'%D%5%T6%! !AGAIN NO MORE. = CHAPTER 11 G# 1 AND THE LORD SAID UNTO MOSES, YET WILL I BRING ONE PLAGUE MORE UPONEL PHARAOH, AND UPON EGYPT; AFTERWARDS HE WILL LET YOU GO HENCE: WHEN HE SHALL= LET YOU GO, HE SHALL SURELY THRUST YOU OUT HENCE ALTOGETHER.DH# 2 SPEAK NOW IN THE EARS OF THE PEOPLE, AND LET EVERY MAN BORROW OF HISL NEIGHBOUR, AND EVERY WOMAN OF HER NEIGHBOUR, JEWELS OF SILVER AND JEWELS OF GOLD.F# 3 AND THE LORD GAVE THE PEOPLE FAVOUR IN THE SIGHT OF THE EGYPTIANS.L MOREOVER THE MAN MOSES WAS VERY GREAT IN THE LAND OF EGYPT, IN THE SIGHT OF3 PHARAOHS SERVANTS, AND IN THE SIGHT OF THE PEOPLE.EJ# 4 AND MOSES SAID, THUS SAITH THE LORD, ABOUT MIDNIGHT WILL I GO OUT INTO THE MIDST OF EGYPT:M# 5 AND ALL THE FIRSTBORN IN THE LAND OF EGYPT SHALL DIE, FROM THE FIRST BORNFH OF PHARAOH THAT SITTETH UPON HIS THRONE, EVEN UNTO THE FIRSTBORN OF THEF MAIDSERVANT THAT IS BEHIND THE MILL; AND ALL THE FIRSTBORN OF BEASTS.L# 6 AND THERE SHALL BE A GREAT CRY THROUGHOUT ALL THE LAND OF EGYPT, SUCH AS7 THERE WAS NONE LIKE IT, NOR SHALL BE LIKE IT ANY MORE.F# 7 BUT AGAINST ANY OF THE CHILDREN OF ISRAEL SHALL NOT A DOG MOVE HISL TONGUE, AGAINST MAN OR BEAST: THAT YE MAY KNOW HOW THAT THE LORD DOTH PUT A- DIFFERENCE BETWEEN THE EGYPTIANS AND ISRAEL.TD# 8 AND ALL THESE THY SERVANTS SHALL COME DOWN UNTO ME, AND BOW DOWNI THEMSELVES UNTO ME, SAYING, GET THEE OUT, AND ALL THE PEOPLE THAT FOLLOW L THEE: AND AFTER THAT I WILL GO OUT. AND HE WENT OUT FROM PHARAOH IN A GREAT ANGER. M# 9 AND THE LORD SAID UNTO MOSES, PHARAOH SHALL NOT HEARKEN UNTO YOU; THAT MY0 WONDERS MAY BE MULTIPLIED IN THE LAND OF EGYPT.K# 10 AND MOSES AND AARON DID ALL THESE WONDERS BEFORE PHARAOH: AND THE LORDHL HARDENED PHARAOHS HEART, SO THAT HE WOULD NOT LET THE CHILDREN OF ISRAEL GO OUT OF HIS LAND.V = CHAPTER 12 H# 1 AND THE LORD SPAKE UNTO MOSES AND AARON IN THE LAND OF EGYPT SAYING,I# 2 THIS MONTH SHALL BE UNTO YOU THE BEGINNING OF MONTHS: IT SHALL BE THEE FIRST MONTH OF THE YEAR TO YOU.M# 3 SPEAK YE UNTO ALL THE CONGREGATION OF ISRAEL, SAYING, IN THE TENTH DAY OFHL THIS MONTH THEY SHALL TAKE TO THEM EVERY MAN A LAMB, ACCORDING TO THE HOUSE' OF THEIR FATHERS, A LAMB FOR AN HOUSE::D# 4 AND IF THE HOUSEHOLD BE TOO LITTLE FOR THE LAMB, LET HIM AND HISL NEIGHBOUR NEXT UNTO HIS HOUSE TAKE IT ACCORDING TO THE NUMBER OF THE SOULS;F EVERY MAN ACCORDING TO HIS EATING SHALL MAKE YOUR COUNT FOR THE LAMB.J# 5 YOUR LAMB SHALL BE WITHOUT BLEMISH, A MALE OF THE FIRST YEAR: YE SHALL/ TAKE IT OUT FROM THE SHEEP, OR FROM THE GOATS:EK# 6 AND YE SHALL KEEP IT UP UNTIL THE FOURTEENTH DAY OF THE SAME MONTH: ANDOF THE WHOLE ASSEMBLY OF THE CONGREGATION OF ISRAEL SHALL KILL IT IN THE EVENING.UM# 7 AND THEY SHALL TAKE OF THE BLOOD, AND STRIKE IT ON THE TWO SIDE POSTS ANDIA ON THE UPPER DOOR POST OF THE HOUSES, WHEREIN THEY SHALL EAT IT.OD# 8 AND THEY SHALL EAT THE FLESH IN THAT NIGHT, ROAST WITH FIRE, AND; UNLEAVENED BREAD; AND WITH BITTER HERBS THEY SHALL EAT IT. M# 9 EAT NOT OF IT RAW, NOR SODDEN AT ALL WITH WATER, BUT ROAST WITH FIRE; HIS 5 HEAD WITH HIS LEGS, AND WITH THE PURTENANCE THEREOF.EL# 10 AND YE SHALL LET NOTHING OF IT REMAIN UNTIL THE MORNING; AND THAT WHICH; REMAINETH OF IT UNTIL THE MORNING YE SHALL BURN WITH FIRE. I# 11 AND THUS SHALL YE EAT IT; WITH YOUR LOINS GIRDED, YOUR SHOES ON YOUR,K FEET, AND YOUR STAFF IN YOUR HAND; AND YE SHALL EAT IT IN HASTE: IT IS THE  LORDS PASSOVER.M# 12 FOR I WILL PASS THROUGH THE LAND OF EGYPT THIS NIGHT, AND WILL SMITE ALLFL THE FIRSTBORN IN THE LAND OF EGYPT, BOTH MAN AND BEAST; AND AGAINST ALL THE6 GODS OF EGYPT I WILL EXECUTE JUDGMENT: I AM THE LORD.L# 13 AND THE BLOOD SHALL BE TO YOU FOR A TOKEN UPON THE HOUSES WHERE YE ARE:L AND WHEN I SEE THE BLOOD, I WILL PASS OVER YOU, AND THE PLAGUE SHALL NOT BE9 UPON YOU TO DESTROY YOU, WHEN I SMITE THE LAND OF EGYPT.YJ# 14 AND THIS DAY SHALL BE UNTO YOU FOR A MEMORIAL; AND YE SHALL KEEP IT AN FEAST TO THE LORD THROUGHOUT YOUR GENERATIONS; YE SHALL KEEP IT A FEAST BY AN ORDINANCE FOR EVER.J# 15 SEVEN DAYS SHALL YE EAT UNLEAVENED 00`''<%X>%+%O-%TADATADATABREAD; EVEN THE FIRST DAY YE SHALLM PUT AWAY LEAVEN OUT OF YOUR HOUSES: FOR WHOSOEVER EATETH LEAVENED BREAD FROMFM THE FIRST DAY UNTIL THE SEVENTH DAY, THAT SOUL SHALL BE CUT OFF FROM ISRAEL.SH# 16 AND IN THE FIRST DAY THERE SHALL BE AN HOLY CONVOCATION, AND IN THEI SEVENTH DAY THERE SHALL BE AN HOLY CONVOCATION TO YOU; NO MANNER OF WORKLL SHALL BE DONE IN THEM, SAVE THAT WHICH EVERY MAN MUST EAT, THAT ONLY MAY BE DONE OF YOU.FM# 17 AND YE SHALL OBSERVE THE FEAST OF UNLEAVENED BREAD; FOR IN THIS SELFSAME;L DAY HAVE I BROUGHT YOUR ARMIES OUT OF THE LAND OF EGYPT: THEREFORE SHALL YE? OBSERVE THIS DAY IN YOUR GENERATIONS BY AN ORDINANCE FOR EVER.DM# 18 IN THE FIRST MONTH, ON THE FOURTEENTH DAY OF THE MONTH AT EVEN, YE SHALLHL EAT UNLEAVENED BREAD, UNTIL THE ONE AND TWENTIETH DAY OF THE MONTH AT EVEN.L# 19 SEVEN DAYS SHALL THERE BE NO LEAVEN FOUND IN YOUR HOUSES: FOR WHOSOEVERH EATETH THAT WHICH IS LEAVENED, EVEN THAT SOUL SHALL BE CUT OFF FROM THEG CONGREGATION OF ISRAEL, WHETHER HE BE A STRANGER, OR BORN IN THE LAND.RH# 20 YE SHALL EAT NOTHING LEAVENED; IN ALL YOUR HABITATIONS SHALL YE EAT UNLEAVENED BREAD.M# 21 THEN MOSES CALLED FOR ALL THE ELDERS OF ISRAEL, AND SAID UNTO THEM, DRAWDK OUT AND TAKE YOU A LAMB ACCORDING TO YOUR FAMILIES, AND KILL THE PASSOVER.TL# 22 AND YE SHALL TAKE A BUNCH OF HYSSOP, AND DIP IT IN THE BLOOD THAT IS INL THE BASON, AND STRIKE THE LINTEL AND THE TWO SIDE POSTS WITH THE BLOOD THATM IS IN THE BASON; AND NONE OF YOU SHALL GO OUT AT THE DOOR OF HIS HOUSE UNTILE THE MORNING.HM# 23 FOR THE LORD WILL PASS THROUGH TO SMITE THE EGYPTIANS; AND WHEN HE SEETHEN THE BLOOD UPON THE LINTEL, AND ON THE TWO SIDE POSTS, THE LORD WILL PASS OVERK THE DOOR, AND WILL NOT SUFFER THE DESTROYER TO COME IN UNTO YOUR HOUSES TOA SMITE YOU.AM# 24 AND YE SHALL OBSERVE THIS THING FOR AN ORDINANCE TO THEE AND TO THY SONST FOR EVER.J# 25 AND IT SHALL COME TO PASS, WHEN YE BE COME TO THE LAND WHICH THE LORDF WILL GIVE YOU, ACCORDING AS HE HATH PROMISED, THAT YE SHALL KEEP THIS SERVICE.MK# 26 AND IT SHALL COME TO PASS, WHEN YOUR CHILDREN SHALL SAY UNTO YOU, WHATN MEAN YE BY THIS SERVICE? M# 27 THAT YE SHALL SAY, IT IS THE SACRIFICE OF THE LORDS PASSOVER, WHO PASSEDWF OVER THE HOUSES OF THE CHILDREN OF ISRAEL IN EGYPT, WHEN HE SMOTE THEG EGYPTIANS, AND DELIVERED OUR HOUSES. AND THE PEOPLE BOWED THE HEAD ANDT WORSHIPPED.L# 28 AND THE CHILDREN OF ISRAEL WENT AWAY, AND DID AS THE LORD HAD COMMANDED MOSES AND AARON, SO DID THEY.K# 29 AND IT CAME TO PASS, THAT AT MIDNIGHT THE LORD SMOTE ALL THE FIRSTBORNOK IN THE LAND OF EGYPT, FROM THE FIRSTBORN OF PHARAOH THAT SAT ON HIS THRONERG UNTO THE FIRSTBORN OF THE CAPTIVE THAT WAS IN THE DUNGEON; AND ALL THE, FIRSTBORN OF CATTLE. L# 30 AND PHARAOH ROSE UP IN THE NIGHT, HE, AND ALL HIS SERVANTS, AND ALL THEI EGYPTIANS; AND THERE WAS A GREAT CRY IN EGYPT; FOR THERE WAS NOT A HOUSE8 WHERE THERE WAS NOT ONE DEAD.K# 31 AND HE CALLED FOR MOSES AND AARON BY NIGHT, AND SAID, RISE UP, AND GET9L YOU FORTH FROM AMONG MY PEOPLE, BOTH YE AND THE CHILDREN OF ISRAEL; AND GO,! SERVE THE LORD, AS YE HAVE SAID.RL# 32 ALSO TAKE YOUR FLOCKS AND YOUR HERDS, AS YE HAVE SAID, AND BE GONE; AND BLESS ME ALSO.NM# 33 AND THE EGYPTIANS WERE URGENT UPON THE PEOPLE, THAT THEY MIGHT SEND THEMH= OUT OF THE LAND IN HASTE; FOR THEY SAID, WE BE ALL DEAD MEN. B# 34 AND THE PEOPLE TOOK THEIR DOUGH BEFORE IT WAS LEAVENED, THEIRF KNEADINGTROUGHS BEING BOUND UP IN THEIR CLOTHES UPON THEIR SHOULDERS.L# 35 AND THE CHILDREN OF ISRAEL DID ACCORDING TO THE WORD OF MOSES; AND THEYM BORROWED OF THE EGYPTIANS JEWELS OF SILVER, AND JEWELS OF GOLD, AND RAIMENT:CJ# 36 AND THE LORD GAVE THE PEOPLE FAVOUR IN THE SIGHT OF THE EGYPTIANS, SOL THAT THEY LENT UNTO THEM SUCH THINGS AS THEY REQUIRED. AND THEY SPOILED THE EGYPTIANS.DL# 37 AND THE CHILDREN OF ISRAEL JOURNEYED FROM RAMESES TO SUCCOTH, ABOUT SIX9 HUNDRED THOUSAND ON FOOT THAT WERE MEN, BESIDE CHILDREN.GI# 38 AND A MIXED MULTITUDE WENT UP ALSO WITH THEM; AND FLOCKS, AND HERDS,I EVEN VERY MUCH CATTLE.EJ# 39 A00`'%D%5%T6%! !ND THEY BAKED UNLEAVENED CAKES OF THE DOUGH WHICH THEY BROUGHT FORTHN OUT OF EGYPT, FOR IT WAS NOT LEAVENED; BECAUSE THEY WERE THRUST OUT OF EGYPT,K AND COULD NOT TARRY, NEITHER HAD THEY PREPARED FOR THEMSELVES ANY VICTUAL.RJ# 40 NOW THE SOJOURNING OF THE CHILDREN OF ISRAEL, WHO DWELT IN EGYPT, WAS FOUR HUNDRED AND THIRTY YEARS.OI# 41 AND IT CAME TO PASS AT THE END OF THE FOUR HUNDRED AND THIRTY YEARS,DK EVEN THE SELFSAME DAY IT CAME TO PASS, THAT ALL THE HOSTS OF THE LORD WENTY OUT FROM THE LAND OF EGYPT.J# 42 IT IS A NIGHT TO BE MUCH OBSERVED UNTO THE LORD FOR BRINGING THEM OUTM FROM THE LAND OF EGYPT: THIS IS THAT NIGHT OF THE LORD TO BE OBSERVED OF ALLT- THE CHILDREN OF ISRAEL IN THEIR GENERATIONS.SI# 43 AND THE LORD SAID UNTO MOSES AND AARON, THIS IS THE ORDINANCE OF THET/ PASSOVER: THERE SHALL NO STRANGER EAT THEREOF:D# 44 BUT EVERY MANS SERVANT THAT IS BOUGHT FOR MONEY, WHEN THOU HAST, CIRCUMCISED HIM, THEN SHALL HE EAT THEREOF.<# 45 A FOREIGNER AND AN HIRED SERVANT SHALL NOT EAT THEREOF.L# 46 IN ONE HOUSE SHALL IT BE EATEN; THOU SHALT NOT CARRY FORTH OUGHT OF THEF FLESH ABROAD OUT OF THE HOUSE; NEITHER SHALL YE BREAK A BONE THEREOF.2# 47 ALL THE CONGREGATION OF ISRAEL SHALL KEEP IT.L# 48 AND WHEN A STRANGER SHALL SOJOURN WITH THEE, AND WILL KEEP THE PASSOVERN TO THE LORD, LET ALL HIS MALES BE CIRCUMCISED, AND THEN LET HIM COME NEAR ANDA KEEP IT; AND HE SHALL BE AS ONE THAT IS BORN IN THE LAND: FOR NON( UNCIRCUMCISED PERSON SHALL EAT THEREOF.I# 49 ONE LAW SHALL BE TO HIM THAT IS HOMEBORN, AND UNTO THE STRANGER THATA SOJOURNETH AMONG YOU.I# 50 THUS DID ALL THE CHILDREN OF ISRAEL; AS THE LORD COMMANDED MOSES ANDK AARON, SO DID THEY.F# 51 AND IT CAME TO PASS THE SELFSAME DAY, THAT THE LORD DID BRING THE= CHILDREN OF ISRAEL OUT OF THE LAND OF EGYPT BY THEIR ARMIES.O = CHAPTER 13 *# 1 AND THE LORD SPAKE UNTO MOSES, SAYING,M# 2 SANCTIFY UNTO ME ALL THE FIRSTBORN, WHATSOEVER OPENETH THE WOMB AMONG THEU: CHILDREN OF ISRAEL, BOTH OF MAN AND OF BEAST: IT IS MINE.K# 3 AND MOSES SAID UNTO THE PEOPLE, REMEMBER THIS DAY, IN WHICH YE CAME OUT.J FROM EGYPT, OUT OF THE HOUSE OF BONDAGE; FOR BY STRENGTH OF HAND THE LORDI BROUGHT YOU OUT FROM THIS PLACE: THERE SHALL NO LEAVENED BREAD BE EATEN. +# 4 THIS DAY CAME YE OUT IN THE MONTH ABIB.FG# 5 AND IT SHALL BE WHEN THE LORD SHALL BRING THEE INTO THE LAND OF THEAI CANAANITES, AND THE HITTITES, AND THE AMORITES, AND THE HIVITES, AND THEOM JEBUSITES, WHICH HE SWARE UNTO THY FATHERS TO GIVE THEE, A LAND FLOWING WITHSA MILK AND HONEY, THAT THOU SHALT KEEP THIS SERVICE IN THIS MONTH.HL# 6 SEVEN DAYS THOU SHALT EAT UNLEAVENED BREAD, AND IN THE SEVENTH DAY SHALL BE A FEAST TO THE LORD.K# 7 UNLEAVENED BREAD SHALL BE EATEN SEVEN DAYS; AND THERE SHALL NO LEAVENEDYM BREAD BE SEEN WITH THEE, NEITHER SHALL THERE BE LEAVEN SEEN WITH THEE IN ALL  THY QUARTERS.L# 8 AND THOU SHALT SHEW THY SON IN THAT DAY, SAYING, THIS IS DONE BECAUSE OF@ THAT WHICH THE LORD DID UNTO ME WHEN I CAME FORTH OUT OF EGYPT.L# 9 AND IT SHALL BE FOR A SIGN UNTO THEE UPON THINE HAND, AND FOR A MEMORIALN BETWEEN THINE EYES, THAT THE LORDS LAW MAY BE IN THY MOUTH: FOR WITH A STRONG. HAND HATH THE LORD BROUGHT THEE OUT OF EGYPT.H# 10 THOU SHALT THEREFORE KEEP THIS ORDINANCE IN HIS SEASON FROM YEAR TO YEAR.H# 11 AND IT SHALL BE WHEN THE LORD SHALL BRING THEE INTO THE LAND OF THEN CANAANITES, AS HE SWARE UNTO THEE AND TO THY FATHERS, AND SHALL GIVE IT THEE,M# 12 THAT THOU SHALT SET APART UNTO THE LORD ALL THAT OPENETH THE MATRIX, AND K EVERY FIRSTLING THAT COMETH OF A BEAST WHICH THOU HAST; THE MALES SHALL BEN THE LORDS.TM# 13 AND EVERY FIRSTLING OF AN ASS THOU SHALT REDEEM WITH A LAMB; AND IF THOURM WILT NOT REDEEM IT, THEN THOU SHALT BREAK HIS NECK: AND ALL THE FIRSTBORN OFS* MAN AMONG THY CHILDREN SHALT THOU REDEEM.K# 14 AND IT SHALL BE WHEN THY SON ASKETH THEE IN TIME TO COME, SAYING, WHATSL IS THIS? THAT THOU SHALT SAY UNTO HIM, BY STRENGTH OF HAND THE LORD BROUGHT. US OUT FROM EGYPT, FROM THE HOUSE OF BONDAGE:L# 15 AND IT CAME TO PASS, WHEN PHARAOH WOULD00`''<%X>%+%O-%TADATADATA HARDLY LET US GO, THAT THE LORDL SLEW ALL THE FIRSTBORN IN THE LAND OF EGYPT, BOTH THE FIRSTBORN OF MAN, ANDK THE FIRSTBORN OF BEAST: THEREFORE I SACRIFICE TO THE LORD ALL THAT OPENETHNH THE MATRIX, BEING MALES; BUT ALL THE FIRSTBORN OF MY CHILDREN I REDEEM.K# 16 AND IT SHALL BE FOR A TOKEN UPON THINE HAND, AND FOR FRONTLETS BETWEENSL THINE EYES: FOR BY STRENGTH OF HAND THE LORD BROUGHT US FORTH OUT OF EGYPT.J# 17 AND IT CAME TO PASS, WHEN PHARAOH HAD LET THE PEOPLE GO, THAT GOD LEDK THEM NOT THROUGH THE WAY OF THE LAND OF THE PHILISTINES, ALTHOUGH THAT WASNK NEAR; FOR GOD SAID, LEST PERADVENTURE THE PEOPLE REPENT WHEN THEY SEE WAR,T AND THEY RETURN TO EGYPT:K# 18 BUT GOD LED THE PEOPLE ABOUT, THROUGH THE WAY OF THE WILDERNESS OF THE I RED SEA: AND THE CHILDREN OF ISRAEL WENT UP HARNESSED OUT OF THE LAND OFO EGYPT.TK# 19 AND MOSES TOOK THE BONES OF JOSEPH WITH HIM: FOR HE HAD STRAITLY SWORNTN THE CHILDREN OF ISRAEL, SAYING, GOD WILL SURELY VISIT YOU; AND YE SHALL CARRY! UP MY BONES AWAY HENCE WITH YOU.FL# 20 AND THEY TOOK THEIR JOURNEY FROM SUCCOTH, AND ENCAMPED IN ETHAM, IN THE EDGE OF THE WILDERNESS.I# 21 AND THE LORD WENT BEFORE THEM BY DAY IN A PILLAR OF A CLOUD, TO LEADOM THEM THE WAY; AND BY NIGHT IN A PILLAR OF FIRE, TO GIVE THEM LIGHT; TO GO BYN DAY AND NIGHT:PL# 22 HE TOOK NOT AWAY THE PILLAR OF THE CLOUD BY DAY, NOR THE PILLAR OF FIRE" BY NIGHT, FROM BEFORE THE PEOPLE. = CHAPTER 14 D*# 1 AND THE LORD SPAKE UNTO MOSES, SAYING,G# 2 SPEAK UNTO THE CHILDREN OF ISRAEL, THAT THEY TURN AND ENCAMP BEFOREEK PIHAHIROTH, BETWEEN MIGDOL AND THE SEA, OVER AGAINST BAALZEPHON: BEFORE ITE SHALL YE ENCAMP BY THE SEA.M# 3 FOR PHARAOH WILL SAY OF THE CHILDREN OF ISRAEL, THEY ARE ENTANGLED IN THEB( LAND, THE WILDERNESS HATH SHUT THEM IN.L# 4 AND I WILL HARDEN PHARAOHS HEART, THAT HE SHALL FOLLOW AFTER THEM; AND IM WILL BE HONOURED UPON PHARAOH, AND UPON ALL HIS HOST; THAT THE EGYPTIANS MAYE* KNOW THAT I AM THE LORD. AND THEY DID SO.L# 5 AND IT WAS TOLD THE KING OF EGYPT THAT THE PEOPLE FLED: AND THE HEART OFN PHARAOH AND OF HIS SERVANTS WAS TURNED AGAINST THE PEOPLE, AND THEY SAID, WHY? HAVE WE DONE THIS, THAT WE HAVE LET ISRAEL GO FROM SERVING US?H@# 6 AND HE MADE READY HIS CHARIOT, AND TOOK HIS PEOPLE WITH HIM:K# 7 AND HE TOOK SIX HUNDRED CHOSEN CHARIOTS, AND ALL THE CHARIOTS OF EGYPT,L% AND CAPTAINS OVER EVERY ONE OF THEM. L# 8 AND THE LORD HARDENED THE HEART OF PHARAOH KING OF EGYPT, AND HE PURSUEDJ AFTER THE CHILDREN OF ISRAEL: AND THE CHILDREN OF ISRAEL WENT OUT WITH AN HIGH HAND.NH# 9 BUT THE EGYPTIANS PURSUED AFTER THEM, ALL THE HORSES AND CHARIOTS OFL PHARAOH, AND HIS HORSEMEN, AND HIS ARMY, AND OVERTOOK THEM ENCAMPING BY THE+ SEA, BESIDE PIHAHIROTH, BEFORE BAALZEPHON.AM# 10 AND WHEN PHARAOH DREW NIGH, THE CHILDREN OF ISRAEL LIFTED UP THEIR EYES,AN AND, BEHOLD, THE EGYPTIANS MARCHED AFTER THEM; AND THEY WERE SORE AFRAID: AND0 THE CHILDREN OF ISRAEL CRIED OUT UNTO THE LORD.J# 11 AND THEY SAID UNTO MOSES, BECAUSE THERE WERE NO GRAVES IN EGYPT, HASTL THOU TAKEN US AWAY TO DIE IN THE WILDERNESS? WHEREFORE HAST THOU DEALT THUS) WITH US, TO CARRY US FORTH OUT OF EGYPT? H# 12 IS NOT THIS THE WORD THAT WE DID TELL THEE IN EGYPT, SAYING, LET USI ALONE, THAT WE MAY SERVE THE EGYPTIANS? FOR IT HAD BEEN BETTER FOR US TOE@ SERVE THE EGYPTIANS, THAN THAT WE SHOULD DIE IN THE WILDERNESS.J# 13 AND MOSES SAID UNTO THE PEOPLE, FEAR YE NOT, STAND STILL, AND SEE THEK SALVATION OF THE LORD, WHICH HE WILL SHEW TO YOU TO DAY: FOR THE EGYPTIANSGD WHOM YE HAVE SEEN TO DAY, YE SHALL SEE THEM AGAIN NO MORE FOR EVER.@# 14 THE LORD SHALL FIGHT FOR YOU, AND YE SHALL HOLD YOUR PEACE.L# 15 AND THE LORD SAID UNTO MOSES, WHEREFORE CRIEST THOU UNTO ME? SPEAK UNTO. THE CHILDREN OF ISRAEL, THAT THEY GO FORWARD:K# 16 BUT LIFT THOU UP THY ROD, AND STRETCH OUT THINE HAND OVER THE SEA, AND I DIVIDE IT: AND THE CHILDREN OF ISRAEL SHALL GO ON DRY GROUND THROUGH THE  MIDST OF THE SEA.M# 17 AND I, BEHOLD, I WILL HARDEN THE HEARTS OF THE EGYPTIANS, AND THEY SHALLWK FOLLOW THEM: AND I WILL GET ME 00`(%D%5%T6%! !HONOUR UPON PHARAOH, AND UPON ALL HIS HOST,L* UPON HIS CHARIOTS, AND UPON HIS HORSEMEN.K# 18 AND THE EGYPTIANS SHALL KNOW THAT I AM THE LORD, WHEN I HAVE GOTTEN ME ? HONOUR UPON PHARAOH, UPON HIS CHARIOTS, AND UPON HIS HORSEMEN.BL# 19 AND THE ANGEL OF GOD, WHICH WENT BEFORE THE CAMP OF ISRAEL, REMOVED ANDK WENT BEHIND THEM; AND THE PILLAR OF THE CLOUD WENT FROM BEFORE THEIR FACE,O AND STOOD BEHIND THEM:EJ# 20 AND IT CAME BETWEEN THE CAMP OF THE EGYPTIANS AND THE CAMP OF ISRAEL;N AND IT WAS A CLOUD AND DARKNESS TO THEM, BUT IT GAVE LIGHT BY NIGHT TO THESE:7 SO THAT THE ONE CAME NOT NEAR THE OTHER ALL THE NIGHT.AK# 21 AND MOSES STRETCHED OUT HIS HAND OVER THE SEA; AND THE LORD CAUSED THENJ SEA TO GO BACK BY A STRONG EAST WIND ALL THAT NIGHT, AND MADE THE SEA DRY# LAND, AND THE WATERS WERE DIVIDED.AK# 22 AND THE CHILDREN OF ISRAEL WENT INTO THE MIDST OF THE SEA UPON THE DRYEI GROUND: AND THE WATERS WERE A WALL UNTO THEM ON THEIR RIGHT HAND, AND ONT THEIR LEFT.J# 23 AND THE EGYPTIANS PURSUED, AND WENT IN AFTER THEM TO THE MIDST OF THE? SEA, EVEN ALL PHARAOHS HORSES, HIS CHARIOTS, AND HIS HORSEMEN.TL# 24 AND IT CAME TO PASS, THAT IN THE MORNING WATCH THE LORD LOOKED UNTO THEG HOST OF THE EGYPTIANS THROUGH THE PILLAR OF FIRE AND OF THE CLOUD, ANDE$ TROUBLED THE HOST OF THE EGYPTIANS,M# 25 AND TOOK OFF THEIR CHARIOT WHEELS, THAT THEY DRAVE THEM HEAVILY: SO THATOF THE EGYPTIANS SAID, LET US FLEE FROM THE FACE OF ISRAEL; FOR THE LORD) FIGHTETH FOR THEM AGAINST THE EGYPTIANS.EL# 26 AND THE LORD SAID UNTO MOSES, STRETCH OUT THINE HAND OVER THE SEA, THATL THE WATERS MAY COME AGAIN UPON THE EGYPTIANS, UPON THEIR CHARIOTS, AND UPON THEIR HORSEMEN.M# 27 AND MOSES STRETCHED FORTH HIS HAND OVER THE SEA, AND THE SEA RETURNED TORK HIS STRENGTH WHEN THE MORNING APPEARED; AND THE EGYPTIANS FLED AGAINST IT; > AND THE LORD OVERTHREW THE EGYPTIANS IN THE MIDST OF THE SEA.M# 28 AND THE WATERS RETURNED, AND COVERED THE CHARIOTS, AND THE HORSEMEN, ANDTN ALL THE HOST OF PHARAOH THAT CAME INTO THE SEA AFTER THEM; THERE REMAINED NOT SO MUCH AS ONE OF THEM.M# 29 BUT THE CHILDREN OF ISRAEL WALKED UPON DRY LAND IN THE MIDST OF THE SEA;NM AND THE WATERS WERE A WALL UNTO THEM ON THEIR RIGHT HAND, AND ON THEIR LEFT. J# 30 THUS THE LORD SAVED ISRAEL THAT DAY OUT OF THE HAND OF THE EGYPTIANS;6 AND ISRAEL SAW THE EGYPTIANS DEAD UPON THE SEA SHORE.J# 31 AND ISRAEL SAW THAT GREAT WORK WHICH THE LORD DID UPON THE EGYPTIANS:N AND THE PEOPLE FEARED THE LORD, AND BELIEVED THE LORD, AND HIS SERVANT MOSES. = CHAPTER 15 HK# 1 THEN SANG MOSES AND THE CHILDREN OF ISRAEL THIS SONG UNTO THE LORD, ANDRL SPAKE, SAYING, I WILL SING UNTO THE LORD, FOR HE HATH TRIUMPHED GLORIOUSLY:5 THE HORSE AND HIS RIDER HATH HE THROWN INTO THE SEA. M# 2 THE LORD IS MY STRENGTH AND SONG, AND HE IS BECOME MY SALVATION: HE IS MYIL GOD, AND I WILL PREPARE HIM AN HABITATION; MY FATHERS GOD, AND I WILL EXALT HIM. 3# 3 THE LORD IS A MAN OF WAR: THE LORD IS HIS NAME.LH# 4 PHARAOHS CHARIOTS AND HIS HOST HATH HE CAST INTO THE SEA: HIS CHOSEN* CAPTAINS ALSO ARE DROWNED IN THE RED SEA.G# 5 THE DEPTHS HAVE COVERED THEM: THEY SANK INTO THE BOTTOM AS A STONE.OJ# 6 THY RIGHT HAND, O LORD, IS BECOME GLORIOUS IN POWER: THY RIGHT HAND, O' LORD, HATH DASHED IN PIECES THE ENEMY. K# 7 AND IN THE GREATNESS OF THINE EXCELLENCY THOU HAST OVERTHROWN THEM THATIK ROSE UP AGAINST THEE: THOU SENTEST FORTH THY WRATH, WHICH CONSUMED THEM ASH STUBBLE. M# 8 AND WITH THE BLAST OF THY NOSTRILS THE WATERS WERE GATHERED TOGETHER, THECL FLOODS STOOD UPRIGHT AS AN HEAP, AND THE DEPTHS WERE CONGEALED IN THE HEART OF THE SEA.L# 9 THE ENEMY SAID, I WILL PURSUE, I WILL OVERTAKE, I WILL DIVIDE THE SPOIL;J MY LUST SHALL BE SATISFIED UPON THEM; I WILL DRAW MY SWORD, MY HAND SHALL DESTROY THEM.K# 10 THOU DIDST BLOW WITH THY WIND, THE SEA COVERED THEM: THEY SANK AS LEADA IN THE MIGHTY WATERS.E# 11 WHO IS LIKE UNTO THEE, O LORD, AMONG THE GODS? WHO IS LIKE THEE, 9 GLORIOUS IN HOLINESS, FEARFUL IN PRAISES, DOING WONDERS?EC# 12 THOU STRETCHEDST OUT THY RIGHT HAND, THE 00`('<%X>%+%O-%TADATADATAEARTH SWALLOWED THEM.RJ# 13 THOU IN THY MERCY HAST LED FORTH THE PEOPLE WHICH THOU HAST REDEEMED:@ THOU HAST GUIDED THEM IN THY STRENGTH UNTO THY HOLY HABITATION.H# 14 THE PEOPLE SHALL HEAR, AND BE AFRAID: SORROW SHALL TAKE HOLD ON THE INHABITANTS OF PALESTINA.D# 15 THEN THE DUKES OF EDOM SHALL BE AMAZED; THE MIGHTY MEN OF MOAB,N TREMBLING SHALL TAKE HOLD UPON THEM; ALL THE INHABITANTS OF CANAAN SHALL MELT AWAY.L# 16 FEAR AND DREAD SHALL FALL UPON THEM; BY THE GREATNESS OF THINE ARM THEYJ SHALL BE AS STILL AS A STONE; TILL THY PEOPLE PASS OVER, O LORD, TILL THE- PEOPLE PASS OVER, WHICH THOU HAST PURCHASED.IF# 17 THOU SHALT BRING THEM IN, AND PLANT THEM IN THE MOUNTAIN OF THINEN INHERITANCE, IN THE PLACE, O LORD, WHICH THOU HAST MADE FOR THEE TO DWELL IN,< IN THE SANCTUARY, O LORD, WHICH THY HANDS HAVE ESTABLISHED.,# 18 THE LORD SHALL REIGN FOR EVER AND EVER.M# 19 FOR THE HORSE OF PHARAOH WENT IN WITH HIS CHARIOTS AND WITH HIS HORSEMENAN INTO THE SEA, AND THE LORD BROUGHT AGAIN THE WATERS OF THE SEA UPON THEM; BUTA THE CHILDREN OF ISRAEL WENT ON DRY LAND IN THE MIDST OF THE SEA.IJ# 20 AND MIRIAM THE PROPHETESS, THE SISTER OF AARON, TOOK A TIMBREL IN HERJ HAND; AND ALL THE WOMEN WENT OUT AFTER HER WITH TIMBRELS AND WITH DANCES.I# 21 AND MIRIAM ANSWERED THEM, SING YE TO THE LORD, FOR HE HATH TRIUMPHEDSA GLORIOUSLY; THE HORSE AND HIS RIDER HATH HE THROWN INTO THE SEA.TI# 22 SO MOSES BROUGHT ISRAEL FROM THE RED SEA, AND THEY WENT OUT INTO THE M WILDERNESS OF SHUR; AND THEY WENT THREE DAYS IN THE WILDERNESS, AND FOUND NOC WATER.FG# 23 AND WHEN THEY CAME TO MARAH, THEY COULD NOT DRINK OF THE WATERS OFRH MARAH, FOR THEY WERE BITTER: THEREFORE THE NAME OF IT WAS CALLED MARAH.H# 24 AND THE PEOPLE MURMURED AGAINST MOSES, SAYING, WHAT SHALL WE DRINK?K# 25 AND HE CRIED UNTO THE LORD; AND THE LORD SHEWED HIM A TREE, WHICH WHENRK HE HAD CAST INTO THE WATERS, THE WATERS WERE MADE SWEET: THERE HE MADE FORF; THEM A STATUTE AND AN ORDINANCE, AND THERE HE PROVED THEM,SK# 26 AND SAID, IF THOU WILT DILIGENTLY HEARKEN TO THE VOICE OF THE LORD THY3L GOD, AND WILT DO THAT WHICH IS RIGHT IN HIS SIGHT, AND WILT GIVE EAR TO HISK COMMANDMENTS, AND KEEP ALL HIS STATUTES, I WILL PUT NONE OF THESE DISEASESEK UPON THEE, WHICH I HAVE BROUGHT UPON THE EGYPTIANS: FOR I AM THE LORD THATE HEALETH THEE.L# 27 AND THEY CAME TO ELIM, WHERE WERE TWELVE WELLS OF WATER, AND THREESCORE; AND TEN PALM TREES: AND THEY ENCAMPED THERE BY THE WATERS. = CHAPTER 16 EJ# 1 AND THEY TOOK THEIR JOURNEY FROM ELIM, AND ALL THE CONGREGATION OF THEN CHILDREN OF ISRAEL CAME UNTO THE WILDERNESS OF SIN, WHICH IS BETWEEN ELIM ANDM SINAI, ON THE FIFTEENTH DAY OF THE SECOND MONTH AFTER THEIR DEPARTING OUT OFP THE LAND OF EGYPT.AI# 2 AND THE WHOLE CONGREGATION OF THE CHILDREN OF ISRAEL MURMURED AGAINSTD# MOSES AND AARON IN THE WILDERNESS: J# 3 AND THE CHILDREN OF ISRAEL SAID UNTO THEM, WOULD TO GOD WE HAD DIED BYN THE HAND OF THE LORD IN THE LAND OF EGYPT, WHEN WE SAT BY THE FLESH POTS, ANDJ WHEN WE DID EAT BREAD TO THE FULL; FOR YE HAVE BROUGHT US FORTH INTO THIS5 WILDERNESS, TO KILL THIS WHOLE ASSEMBLY WITH HUNGER. L# 4 THEN SAID THE LORD UNTO MOSES, BEHOLD, I WILL RAIN BREAD FROM HEAVEN FORM YOU; AND THE PEOPLE SHALL GO OUT AND GATHER A CERTAIN RATE EVERY DAY, THAT IN9 MAY PROVE THEM, WHETHER THEY WILL WALK IN MY LAW, OR NO.RL# 5 AND IT SHALL COME TO PASS, THAT ON THE SIXTH DAY THEY SHALL PREPARE THATI WHICH THEY BRING IN; AND IT SHALL BE TWICE AS MUCH AS THEY GATHER DAILY.PK# 6 AND MOSES AND AARON SAID UNTO ALL THE CHILDREN OF ISRAEL, AT EVEN, THENTI YE SHALL KNOW THAT THE LORD HATH BROUGHT YOU OUT FROM THE LAND OF EGYPT:IL# 7 AND IN THE MORNING, THEN YE SHALL SEE THE GLORY OF THE LORD; FOR THAT HEJ HEARETH YOUR MURMURINGS AGAINST THE LORD: AND WHAT ARE WE, THAT YE MURMUR AGAINST US?F# 8 AND MOSES SAID, THIS SHALL BE, WHEN THE LORD SHALL GIVE YOU IN THEN EVENING FLESH TO EAT, AND IN THE MORNING BREAD TO THE FULL; FOR THAT THE LORDK HEARETH YOUR MURMURINGS WHICH YE MURMUR AGAINST HIM: AND WHAT ARE WE? YOUR 5 MURMURING00`(%D%5%T6%! !S ARE NOT AGAINST US, BUT AGAINST THE LORD.TM# 9 AND MOSES SPAKE UNTO AARON, SAY UNTO ALL THE CONGREGATION OF THE CHILDRENII OF ISRAEL, COME NEAR BEFORE THE LORD: FOR HE HATH HEARD YOUR MURMURINGS.MK# 10 AND IT CAME TO PASS, AS AARON SPAKE UNTO THE WHOLE CONGREGATION OF THENM CHILDREN OF ISRAEL, THAT THEY LOOKED TOWARD THE WILDERNESS, AND, BEHOLD, THEH) GLORY OF THE LORD APPEARED IN THE CLOUD.L+# 11 AND THE LORD SPAKE UNTO MOSES, SAYING,SL# 12 I HAVE HEARD THE MURMURINGS OF THE CHILDREN OF ISRAEL: SPEAK UNTO THEM,J SAYING, AT EVEN YE SHALL EAT FLESH, AND IN THE MORNING YE SHALL BE FILLED; WITH BREAD; AND YE SHALL KNOW THAT I AM THE LORD YOUR GOD.OJ# 13 AND IT CAME TO PASS, THAT AT EVEN THE QUAILS CAME UP, AND COVERED THE; CAMP: AND IN THE MORNING THE DEW LAY ROUND ABOUT THE HOST. H# 14 AND WHEN THE DEW THAT LAY WAS GONE UP, BEHOLD, UPON THE FACE OF THEL WILDERNESS THERE LAY A SMALL ROUND THING, AS SMALL AS THE HOAR FROST ON THE GROUND.L# 15 AND WHEN THE CHILDREN OF ISRAEL SAW IT, THEY SAID ONE TO ANOTHER, IT ISL MANNA: FOR THEY WIST NOT WHAT IT WAS. AND MOSES SAID UNTO THEM, THIS IS THE, BREAD WHICH THE LORD HATH GIVEN YOU TO EAT.L# 16 THIS IS THE THING WHICH THE LORD HATH COMMANDED, GATHER OF IT EVERY MANK ACCORDING TO HIS EATING, AN OMER FOR EVERY MAN, ACCORDING TO THE NUMBER OFAA YOUR PERSONS; TAKE YE EVERY MAN FOR THEM WHICH ARE IN HIS TENTS.K# 17 AND THE CHILDREN OF ISRAEL DID SO, AND GATHERED, SOME MORE, SOME LESS.F# 18 AND WHEN THEY DID METE IT WITH AN OMER, HE THAT GATHERED MUCH HADK NOTHING OVER, AND HE THAT GATHERED LITTLE HAD NO LACK; THEY GATHERED EVERYE MAN ACCORDING TO HIS EATING.E=# 19 AND MOSES SAID, LET NO MAN LEAVE OF IT TILL THE MORNING.LL# 20 NOTWITHSTANDING THEY HEARKENED NOT UNTO MOSES; BUT SOME OF THEM LEFT OFM IT UNTIL THE MORNING, AND IT BRED WORMS, AND STANK: AND MOSES WAS WROTH WITHR THEM.K# 21 AND THEY GATHERED IT EVERY MORNING, EVERY MAN ACCORDING TO HIS EATING: ' AND WHEN THE SUN WAXED HOT, IT MELTED.YK# 22 AND IT CAME TO PASS, THAT ON THE SIXTH DAY THEY GATHERED TWICE AS MUCHHN BREAD, TWO OMERS FOR ONE MAN: AND ALL THE RULERS OF THE CONGREGATION CAME AND TOLD MOSES.L# 23 AND HE SAID UNTO THEM, THIS IS THAT WHICH THE LORD HATH SAID, TO MORROWL IS THE REST OF THE HOLY SABBATH UNTO THE LORD: BAKE THAT WHICH YE WILL BAKEM TO DAY, AND SEETHE THAT YE WILL SEETHE; AND THAT WHICH REMAINETH OVER LAY UP & FOR YOU TO BE KEPT UNTIL THE MORNING.H# 24 AND THEY LAID IT UP TILL THE MORNING, AS MOSES BADE: AND IT DID NOT+ STINK, NEITHER WAS THERE ANY WORM THEREIN.GL# 25 AND MOSES SAID, EAT THAT TO DAY; FOR TO DAY IS A SABBATH UNTO THE LORD:* TO DAY YE SHALL NOT FIND IT IN THE FIELD.F# 26 SIX DAYS YE SHALL GATHER IT; BUT ON THE SEVENTH DAY, WHICH IS THE$ SABBATH, IN IT THERE SHALL BE NONE.G# 27 AND IT CAME TO PASS, THAT THERE WENT OUT SOME OF THE PEOPLE ON THEL0 SEVENTH DAY FOR TO GATHER, AND THEY FOUND NONE.M# 28 AND THE LORD SAID UNTO MOSES, HOW LONG REFUSE YE TO KEEP MY COMMANDMENTS, AND MY LAWS? K# 29 SEE, FOR THAT THE LORD HATH GIVEN YOU THE SABBATH, THEREFORE HE GIVETHSM YOU ON THE SIXTH DAY THE BREAD OF TWO DAYS; ABIDE YE EVERY MAN IN HIS PLACE,N3 LET NO MAN GO OUT OF HIS PLACE ON THE SEVENTH DAY.E-# 30 SO THE PEOPLE RESTED ON THE SEVENTH DAY.BK# 31 AND THE HOUSE OF ISRAEL CALLED THE NAME THEREOF MANNA: AND IT WAS LIKEUL CORIANDER SEED, WHITE; AND THE TASTE OF IT WAS LIKE WAFERS MADE WITH HONEY.I# 32 AND MOSES SAID, THIS IS THE THING WHICH THE LORD COMMANDETH, FILL ANEH OMER OF IT TO BE KEPT FOR YOUR GENERATIONS; THAT THEY MAY SEE THE BREADN WHEREWITH I HAVE FED YOU IN THE WILDERNESS, WHEN I BROUGHT YOU FORTH FROM THE LAND OF EGYPT.PI# 33 AND MOSES SAID UNTO AARON, TAKE A POT, AND PUT AN OMER FULL OF MANNAEI THEREIN, AND LAY IT UP BEFORE THE LORD, TO BE KEPT FOR YOUR GENERATIONS.AK# 34 AS THE LORD COMMANDED MOSES, SO AARON LAID IT UP BEFORE THE TESTIMONY,I TO BE KEPT.M# 35 AND THE CHILDREN OF ISRAEL DID EAT MANNA FORTY YEARS, UNTIL THEY CAME TOMN A LAND INHABITED; THEY DID EAT MANNA, UNTIL THEY CAME UNTO THE BORDERS OF THE LAND 00`('<%X>%+%O-%TADATADATAOF CANAAN./# 36 NOW AN OMER IS THE TENTH PART OF AN EPHAH.U = CHAPTER 17 RI# 1 AND ALL THE CONGREGATION OF THE CHILDREN OF ISRAEL JOURNEYED FROM THEUM WILDERNESS OF SIN, AFTER THEIR JOURNEYS, ACCORDING TO THE COMMANDMENT OF THEOH LORD, AND PITCHED IN REPHIDIM: AND THERE WAS NO WATER FOR THE PEOPLE TO DRINK.TK# 2 WHEREFORE THE PEOPLE DID CHIDE WITH MOSES, AND SAID, GIVE US WATER THATON WE MAY DRINK. AND MOSES SAID UNTO THEM, WHY CHIDE YE WITH ME? WHEREFORE DO YE TEMPT THE LORD?L# 3 AND THE PEOPLE THIRSTED THERE FOR WATER; AND THE PEOPLE MURMURED AGAINSTN MOSES, AND SAID, WHEREFORE IS THIS THAT THOU HAST BROUGHT US UP OUT OF EGYPT,8 TO KILL US AND OUR CHILDREN AND OUR CATTLE WITH THIRST?L# 4 AND MOSES CRIED UNTO THE LORD, SAYING, WHAT SHALL I DO UNTO THIS PEOPLE?" THEY BE ALMOST READY TO STONE ME.M# 5 AND THE LORD SAID UNTO MOSES, GO ON BEFORE THE PEOPLE, AND TAKE WITH THEETM OF THE ELDERS OF ISRAEL; AND THY ROD, WHEREWITH THOU SMOTEST THE RIVER, TAKED IN THINE HAND, AND GO. K# 6 BEHOLD, I WILL STAND BEFORE THEE THERE UPON THE ROCK IN HOREB; AND THOUML SHALT SMITE THE ROCK, AND THERE SHALL COME WATER OUT OF IT, THAT THE PEOPLEB MAY DRINK. AND MOSES DID SO IN THE SIGHT OF THE ELDERS OF ISRAEL.K# 7 AND HE CALLED THE NAME OF THE PLACE MASSAH, AND MERIBAH, BECAUSE OF THEAN CHIDING OF THE CHILDREN OF ISRAEL, AND BECAUSE THEY TEMPTED THE LORD, SAYING, IS THE LORD AMONG US, OR NOT?9# 8 THEN CAME AMALEK, AND FOUGHT WITH ISRAEL IN REPHIDIM. I# 9 AND MOSES SAID UNTO JOSHUA, CHOOSE US OUT MEN, AND GO OUT, FIGHT WITHEM AMALEK: TO MORROW I WILL STAND ON THE TOP OF THE HILL WITH THE ROD OF GOD INL MINE HAND.UH# 10 SO JOSHUA DID AS MOSES HAD SAID TO HIM, AND FOUGHT WITH AMALEK: AND6 MOSES, AARON, AND HUR WENT UP TO THE TOP OF THE HILL.M# 11 AND IT CAME TO PASS, WHEN MOSES HELD UP HIS HAND, THAT ISRAEL PREVAILED:N1 AND WHEN HE LET DOWN HIS HAND, AMALEK PREVAILED.OM# 12 BUT MOSES HANDS WERE HEAVY; AND THEY TOOK A STONE, AND PUT IT UNDER HIM, N AND HE SAT THEREON; AND AARON AND HUR STAYED UP HIS HANDS, THE ONE ON THE ONEK SIDE, AND THE OTHER ON THE OTHER SIDE; AND HIS HANDS WERE STEADY UNTIL THE GOING DOWN OF THE SUN.HM# 13 AND JOSHUA DISCOMFITED AMALEK AND HIS PEOPLE WITH THE EDGE OF THE SWORD.DK# 14 AND THE LORD SAID UNTO MOSES, WRITE THIS FOR A MEMORIAL IN A BOOK, ANDLN REHEARSE IT IN THE EARS OF JOSHUA: FOR I WILL UTTERLY PUT OUT THE REMEMBRANCE OF AMALEK FROM UNDER HEAVEN.SF# 15 AND MOSES BUILT AN ALTAR, AND CALLED THE NAME OF IT JEHOVAHNISSI:I# 16 FOR HE SAID, BECAUSE THE LORD HATH SWORN THAT THE LORD WILL HAVE WARA+ WITH AMALEK FROM GENERATION TO GENERATION. = CHAPTER 18 IM# 1 WHEN JETHRO, THE PRIEST OF MIDIAN, MOSES FATHER IN LAW, HEARD OF ALL THATOI GOD HAD DONE FOR MOSES, AND FOR ISRAEL HIS PEOPLE, AND THAT THE LORD HADT BROUGHT ISRAEL OUT OF EGYPT;NM# 2 THEN JETHRO, MOSES FATHER IN LAW, TOOK ZIPPORAH, MOSES WIFE, AFTER HE HADN SENT HER BACK,OL# 3 AND HER TWO SONS; OF WHICH THE NAME OF THE ONE WAS GERSHOM; FOR HE SAID,( I HAVE BEEN AN ALIEN IN A STRANGE LAND:M# 4 AND THE NAME OF THE OTHER WAS ELIEZER; FOR THE GOD OF MY FATHER, SAID HE,E; WAS MINE HELP, AND DELIVERED ME FROM THE SWORD OF PHARAOH:DI# 5 AND JETHRO, MOSES FATHER IN LAW, CAME WITH HIS SONS AND HIS WIFE UNTOFB MOSES INTO THE WILDERNESS, WHERE HE ENCAMPED AT THE MOUNT OF GOD:M# 6 AND HE SAID UNTO MOSES, I THY FATHER IN LAW JETHRO AM COME UNTO THEE, ANDR% THY WIFE, AND HER TWO SONS WITH HER. H# 7 AND MOSES WENT OUT TO MEET HIS FATHER IN LAW, AND DID OBEISANCE, ANDK KISSED HIM; AND THEY ASKED EACH OTHER OF THEIR WELFARE; AND THEY CAME INTOF THE TENT.L# 8 AND MOSES TOLD HIS FATHER IN LAW ALL THAT THE LORD HAD DONE UNTO PHARAOHN AND TO THE EGYPTIANS FOR ISRAELS SAKE, AND ALL THE TRAVAIL THAT HAD COME UPON2 THEM BY THE WAY, AND HOW THE LORD DELIVERED THEM.G# 9 AND JETHRO REJOICED FOR ALL THE GOODNESS WHICH THE LORD HAD DONE TOO@ ISRAEL, WHOM HE HAD DELIVERED OUT OF THE HAND OF THE EGYPTIANS.L# 10 AND JETHRO SAID, BLESSED BE THE LORD, WHO HATH DELIVERED YOU OUT OF THEN HAND OF THE EGYPTIANS, AND OUT 00` (%D%5%T6%! !OF THE HAND OF PHARAOH, WHO HATH DELIVERED THE- PEOPLE FROM UNDER THE HAND OF THE EGYPTIANS.TH# 11 NOW I KNOW THAT THE LORD IS GREATER THAN ALL GODS: FOR IN THE THING. WHEREIN THEY DEALT PROUDLY HE WAS ABOVE THEM.J# 12 AND JETHRO, MOSES FATHER IN LAW, TOOK A BURNT OFFERING AND SACRIFICESI FOR GOD: AND AARON CAME, AND ALL THE ELDERS OF ISRAEL, TO EAT BREAD WITHO MOSES FATHER IN LAW BEFORE GOD.K# 13 AND IT CAME TO PASS ON THE MORROW, THAT MOSES SAT TO JUDGE THE PEOPLE:A AND THE PEOPLE STOOD BY MOSES FROM THE MORNING UNTO THE EVENING.LM# 14 AND WHEN MOSES FATHER IN LAW SAW ALL THAT HE DID TO THE PEOPLE, HE SAID,TK WHAT IS THIS THING THAT THOU DOEST TO THE PEOPLE? WHY SITTEST THOU THYSELFU@ ALONE, AND ALL THE PEOPLE STAND BY THEE FROM MORNING UNTO EVEN?K# 15 AND MOSES SAID UNTO HIS FATHER IN LAW, BECAUSE THE PEOPLE COME UNTO MES TO ENQUIRE OF GOD:EL# 16 WHEN THEY HAVE A MATTER, THEY COME UNTO ME; AND I JUDGE BETWEEN ONE ANDD ANOTHER, AND I DO MAKE THEM KNOW THE STATUTES OF GOD, AND HIS LAWS.L# 17 AND MOSES FATHER IN LAW SAID UNTO HIM, THE THING THAT THOU DOEST IS NOT GOOD.H# 18 THOU WILT SURELY WEAR AWAY, BOTH THOU, AND THIS PEOPLE THAT IS WITHL THEE: FOR THIS THING IS TOO HEAVY FOR THEE; THOU ART NOT ABLE TO PERFORM IT THYSELF ALONE.NJ# 19 HEARKEN NOW UNTO MY VOICE, I WILL GIVE THEE COUNSEL, AND GOD SHALL BEJ WITH THEE: BE THOU FOR THE PEOPLE TO GOD-WARD, THAT THOU MAYEST BRING THE CAUSES UNTO GOD:BK# 20 AND THOU SHALT TEACH THEM ORDINANCES AND LAWS, AND SHALT SHEW THEM THES< WAY WHEREIN THEY MUST WALK, AND THE WORK THAT THEY MUST DO.M# 21 MOREOVER THOU SHALT PROVIDE OUT OF ALL THE PEOPLE ABLE MEN, SUCH AS FEAR H GOD, MEN OF TRUTH, HATING COVETOUSNESS; AND PLACE SUCH OVER THEM, TO BEN RULERS OF THOUSANDS, AND RULERS OF HUNDREDS, RULERS OF FIFTIES, AND RULERS OF TENS:H# 22 AND LET THEM JUDGE THE PEOPLE AT ALL SEASONS: AND IT SHALL BE, THATK EVERY GREAT MATTER THEY SHALL BRING UNTO THEE, BUT EVERY SMALL MATTER THEY H SHALL JUDGE: SO SHALL IT BE EASIER FOR THYSELF, AND THEY SHALL BEAR THE BURDEN WITH THEE.M# 23 IF THOU SHALT DO THIS THING, AND GOD COMMAND THEE SO, THEN THOU SHALT BEEK ABLE TO ENDURE, AND ALL THIS PEOPLE SHALL ALSO GO TO THEIR PLACE IN PEACE.SK# 24 SO MOSES HEARKENED TO THE VOICE OF HIS FATHER IN LAW, AND DID ALL THAT HE HAD SAID.LM# 25 AND MOSES CHOSE ABLE MEN OUT OF ALL ISRAEL, AND MADE THEM HEADS OVER THE H PEOPLE, RULERS OF THOUSANDS, RULERS OF HUNDREDS, RULERS OF FIFTIES, AND RULERS OF TENS.L# 26 AND THEY JUDGED THE PEOPLE AT ALL SEASONS: THE HARD CAUSES THEY BROUGHT; UNTO MOSES, BUT EVERY SMALL MATTER THEY JUDGED THEMSELVES. M# 27 AND MOSES LET HIS FATHER IN LAW DEPART; AND HE WENT HIS WAY INTO HIS OWNO LAND. = CHAPTER 19 EN# 1 IN THE THIRD MONTH, WHEN THE CHILDREN OF ISRAEL WERE GONE FORTH OUT OF THED LAND OF EGYPT, THE SAME DAY CAME THEY INTO THE WILDERNESS OF SINAI.H# 2 FOR THEY WERE DEPARTED FROM REPHIDIM, AND WERE COME TO THE DESERT OFM SINAI, AND HAD PITCHED IN THE WILDERNESS; AND THERE ISRAEL CAMPED BEFORE THET MOUNT.OG# 3 AND MOSES WENT UP UNTO GOD, AND THE LORD CALLED UNTO HIM OUT OF THEYJ MOUNTAIN, SAYING, THUS SHALT THOU SAY TO THE HOUSE OF JACOB, AND TELL THE CHILDREN OF ISRAEL;L# 4 YE HAVE SEEN WHAT I DID UNTO THE EGYPTIANS, AND HOW I BARE YOU ON EAGLES$ WINGS, AND BROUGHT YOU UNTO MYSELF.I# 5 NOW THEREFORE, IF YE WILL OBEY MY VOICE INDEED, AND KEEP MY COVENANT,WK THEN YE SHALL BE A PECULIAR TREASURE UNTO ME ABOVE ALL PEOPLE: FOR ALL THEI EARTH IS MINE:EK# 6 AND YE SHALL BE UNTO ME A KINGDOM OF PRIESTS, AND AN HOLY NATION. THESENB ARE THE WORDS WHICH THOU SHALT SPEAK UNTO THE CHILDREN OF ISRAEL.K# 7 AND MOSES CAME AND CALLED FOR THE ELDERS OF THE PEOPLE, AND LAID BEFORE;: THEIR FACES ALL THESE WORDS WHICH THE LORD COMMANDED HIM.J# 8 AND ALL THE PEOPLE ANSWERED TOGETHER, AND SAID, ALL THAT THE LORD HATHM SPOKEN WE WILL DO. AND MOSES RETURNED THE WORDS OF THE PEOPLE UNTO THE LORD.EM# 9 AND THE LORD SAID UNTO MOSES, LO, I COME UNTO THEE IN A THICK CLOUD, THATNK THE PEOPLE MAY HEAR WHEN I SPEAK WITH THEE, AND BELIEVE00`(('<%X>%+%O-%TADATADATA THEE FOR EVER. ANDT2 MOSES TOLD THE WORDS OF THE PEOPLE UNTO THE LORD.K# 10 AND THE LORD SAID UNTO MOSES, GO UNTO THE PEOPLE, AND SANCTIFY THEM TOD4 DAY AND TO MORROW, AND LET THEM WASH THEIR CLOTHES,M# 11 AND BE READY AGAINST THE THIRD DAY: FOR THE THIRD DAY THE LORD WILL COMEE6 DOWN IN THE SIGHT OF ALL THE PEOPLE UPON MOUNT SINAI.M# 12 AND THOU SHALT SET BOUNDS UNTO THE PEOPLE ROUND ABOUT, SAYING, TAKE HEEDEL TO YOURSELVES, THAT YE GO NOT UP INTO THE MOUNT, OR TOUCH THE BORDER OF IT:; WHOSOEVER TOUCHETH THE MOUNT SHALL BE SURELY PUT TO DEATH:TM# 13 THERE SHALL NOT AN HAND TOUCH IT, BUT HE SHALL SURELY BE STONED, OR SHOT,I THROUGH; WHETHER IT BE BEAST OR MAN, IT SHALL NOT LIVE: WHEN THE TRUMPET,0 SOUNDETH LONG, THEY SHALL COME UP TO THE MOUNT.K# 14 AND MOSES WENT DOWN FROM THE MOUNT UNTO THE PEOPLE, AND SANCTIFIED THEN' PEOPLE; AND THEY WASHED THEIR CLOTHES.UM# 15 AND HE SAID UNTO THE PEOPLE, BE READY AGAINST THE THIRD DAY: COME NOT ATU YOUR WIVES.I# 16 AND IT CAME TO PASS ON THE THIRD DAY IN THE MORNING, THAT THERE WERELL THUNDERS AND LIGHTNINGS, AND A THICK CLOUD UPON THE MOUNT, AND THE VOICE OFH THE TRUMPET EXCEEDING LOUD; SO THAT ALL THE PEOPLE THAT WAS IN THE CAMP TREMBLED.M# 17 AND MOSES BROUGHT FORTH THE PEOPLE OUT OF THE CAMP TO MEET WITH GOD; AND , THEY STOOD AT THE NETHER PART OF THE MOUNT.J# 18 AND MOUNT SINAI WAS ALTOGETHER ON A SMOKE, BECAUSE THE LORD DESCENDEDK UPON IT IN FIRE: AND THE SMOKE THEREOF ASCENDED AS THE SMOKE OF A FURNACE,A$ AND THE WHOLE MOUNT QUAKED GREATLY.I# 19 AND WHEN THE VOICE OF THE TRUMPET SOUNDED LONG, AND WAXED LOUDER AND 6 LOUDER, MOSES SPAKE, AND GOD ANSWERED HIM BY A VOICE.J# 20 AND THE LORD CAME DOWN UPON MOUNT SINAI, ON THE TOP OF THE MOUNT: ANDE THE LORD CALLED MOSES UP TO THE TOP OF THE MOUNT; AND MOSES WENT UP.EH# 21 AND THE LORD SAID UNTO MOSES, GO DOWN, CHARGE THE PEOPLE, LEST THEY> BREAK THROUGH UNTO THE LORD TO GAZE, AND MANY OF THEM PERISH.D# 22 AND LET THE PRIESTS ALSO, WHICH COME NEAR TO THE LORD, SANCTIFY1 THEMSELVES, LEST THE LORD BREAK FORTH UPON THEM.FL# 23 AND MOSES SAID UNTO THE LORD, THE PEOPLE CANNOT COME UP TO MOUNT SINAI:L FOR THOU CHARGEDST US, SAYING, SET BOUNDS ABOUT THE MOUNT, AND SANCTIFY IT.M# 24 AND THE LORD SAID UNTO HIM, AWAY, GET THEE DOWN, AND THOU SHALT COME UP,DH THOU, AND AARON WITH THEE: BUT LET NOT THE PRIESTS AND THE PEOPLE BREAKA THROUGH TO COME UP UNTO THE LORD, LEST HE BREAK FORTH UPON THEM. =# 25 SO MOSES WENT DOWN UNTO THE PEOPLE, AND SPAKE UNTO THEM. = CHAPTER 20 I*# 1 AND GOD SPAKE ALL THESE WORDS, SAYING,L# 2 I AM THE LORD THY GOD, WHICH HAVE BROUGHT THEE OUT OF THE LAND OF EGYPT, OUT OF THE HOUSE OF BONDAGE. ,# 3 THOU SHALT HAVE NO OTHER GODS BEFORE ME.J# 4 THOU SHALT NOT MAKE UNTO THEE ANY GRAVEN IMAGE, OR ANY LIKENESS OF ANYN THING THAT IS IN HEAVEN ABOVE, OR THAT IS IN THE EARTH BENEATH, OR THAT IS IN THE WATER UNDER THE EARTH. K# 5 THOU SHALT NOT BOW DOWN THYSELF TO THEM, NOR SERVE THEM: FOR I THE LORDTH THY GOD AM A JEALOUS GOD, VISITING THE INIQUITY OF THE FATHERS UPON THED CHILDREN UNTO THE THIRD AND FOURTH GENERATION OF THEM THAT HATE ME;F# 6 AND SHEWING MERCY UNTO THOUSANDS OF THEM THAT LOVE ME, AND KEEP MY COMMANDMENTS.J# 7 THOU SHALT NOT TAKE THE NAME OF THE LORD THY GOD IN VAIN; FOR THE LORD: WILL NOT HOLD HIM GUILTLESS THAT TAKETH HIS NAME IN VAIN..# 8 REMEMBER THE SABBATH DAY, TO KEEP IT HOLY.4# 9 SIX DAYS SHALT THOU LABOUR, AND DO ALL THY WORK:M# 10 BUT THE SEVENTH DAY IS THE SABBATH OF THE LORD THY GOD: IN IT THOU SHALT N NOT DO ANY WORK, THOU, NOR THY SON, NOR THY DAUGHTER, THY MANSERVANT, NOR THYH MAIDSERVANT, NOR THY CATTLE, NOR THY STRANGER THAT IS WITHIN THY GATES:M# 11 FOR IN SIX DAYS THE LORD MADE HEAVEN AND EARTH, THE SEA, AND ALL THAT INHL THEM IS, AND RESTED THE SEVENTH DAY: WHEREFORE THE LORD BLESSED THE SABBATH DAY, AND HALLOWED IT.I# 12 HONOUR THY FATHER AND THY MOTHER: THAT THY DAYS MAY BE LONG UPON THE ) LAND WHICH THE LORD THY GOD GIVETH THEE.D# 13 THOU SHALT NOT KILL.R$# 14 THOU SHALT NOT COMMIT ADULTERY.# 15 THOU SHALT NOT ST00`0(%D%5%T6%! !EAL.=# 16 THOU SHALT NOT BEAR FALSE WITNESS AGAINST THY NEIGHBOUR.HH# 17 THOU SHALT NOT COVET THY NEIGHBOURS HOUSE, THOU SHALT NOT COVET THYN NEIGHBOURS WIFE, NOR HIS MANSERVANT, NOR HIS MAIDSERVANT, NOR HIS OX, NOR HIS+ ASS, NOR ANY THING THAT IS THY NEIGHBOURS.TH# 18 AND ALL THE PEOPLE SAW THE THUNDERINGS, AND THE LIGHTNINGS, AND THEL NOISE OF THE TRUMPET, AND THE MOUNTAIN SMOKING: AND WHEN THE PEOPLE SAW IT," THEY REMOVED, AND STOOD AFAR OFF.L# 19 AND THEY SAID UNTO MOSES, SPEAK THOU WITH US, AND WE WILL HEAR: BUT LET$ NOT GOD SPEAK WITH US, LEST WE DIE.L# 20 AND MOSES SAID UNTO THE PEOPLE, FEAR NOT: FOR GOD IS COME TO PROVE YOU,= AND THAT HIS FEAR MAY BE BEFORE YOUR FACES, THAT YE SIN NOT.,F# 21 AND THE PEOPLE STOOD AFAR OFF, AND MOSES DREW NEAR UNTO THE THICK DARKNESS WHERE GOD WAS.K# 22 AND THE LORD SAID UNTO MOSES, THUS THOU SHALT SAY UNTO THE CHILDREN OFU> ISRAEL, YE HAVE SEEN THAT I HAVE TALKED WITH YOU FROM HEAVEN.M# 23 YE SHALL NOT MAKE WITH ME GODS OF SILVER, NEITHER SHALL YE MAKE UNTO YOUH GODS OF GOLD.K# 24 AN ALTAR OF EARTH THOU SHALT MAKE UNTO ME, AND SHALT SACRIFICE THEREON L THY BURNT OFFERINGS, AND THY PEACE OFFERINGS, THY SHEEP, AND THINE OXEN: INJ ALL PLACES WHERE I RECORD MY NAME I WILL COME UNTO THEE, AND I WILL BLESS THEE.K# 25 AND IF THOU WILT MAKE ME AN ALTAR OF STONE, THOU SHALT NOT BUILD IT OFHI HEWN STONE: FOR IF THOU LIFT UP THY TOOL UPON IT, THOU HAST POLLUTED IT.DM# 26 NEITHER SHALT THOU GO UP BY STEPS UNTO MINE ALTAR, THAT THY NAKEDNESS BES NOT DISCOVERED THEREON. = CHAPTER 21 A# 1 NOW THESE ARE THE JUDGMENTS WHICH THOU SHALT SET BEFORE THEM.HG# 2 IF THOU BUY AN HEBREW SERVANT, SIX YEARS HE SHALL SERVE: AND IN THEN* SEVENTH HE SHALL GO OUT FREE FOR NOTHING.M# 3 IF HE CAME IN BY HIMSELF, HE SHALL GO OUT BY HIMSELF: IF HE WERE MARRIED,M% THEN HIS WIFE SHALL GO OUT WITH HIM.LF# 4 IF HIS MASTER HAVE GIVEN HIM A WIFE, AND SHE HAVE BORN HIM SONS ORK DAUGHTERS; THE WIFE AND HER CHILDREN SHALL BE HER MASTERS, AND HE SHALL GOY OUT BY HIMSELF.K# 5 AND IF THE SERVANT SHALL PLAINLY SAY, I LOVE MY MASTER, MY WIFE, AND MY " CHILDREN; I WILL NOT GO OUT FREE:L# 6 THEN HIS MASTER SHALL BRING HIM UNTO THE JUDGES; HE SHALL ALSO BRING HIMN TO THE DOOR, OR UNTO THE DOOR POST; AND HIS MASTER SHALL BORE HIS EAR THROUGH. WITH AN AUL; AND HE SHALL SERVE HIM FOR EVER.L# 7 AND IF A MAN SELL HIS DAUGHTER TO BE A MAIDSERVANT, SHE SHALL NOT GO OUT AS THE MENSERVANTS DO.HI# 8 IF SHE PLEASE NOT HER MASTER, WHO HATH BETROTHED HER TO HIMSELF, THENTN SHALL HE LET HER BE REDEEMED: TO SELL HER UNTO A STRANGE NATION HE SHALL HAVE5 NO POWER, SEEING HE HATH DEALT DECEITFULLY WITH HER.NK# 9 AND IF HE HAVE BETROTHED HER UNTO HIS SON, HE SHALL DEAL WITH HER AFTER  THE MANNER OF DAUGHTERS.;H# 10 IF HE TAKE HIM ANOTHER WIFE; HER FOOD, HER RAIMENT, AND HER DUTY OF! MARRIAGE, SHALL HE NOT DIMINISH.SF# 11 AND IF HE DO NOT THESE THREE UNTO HER, THEN SHALL SHE GO OUT FREE WITHOUT MONEY. I# 12 HE THAT SMITETH A MAN, SO THAT HE DIE, SHALL BE SURELY PUT TO DEATH.AL# 13 AND IF A MAN LIE NOT IN WAIT, BUT GOD DELIVER HIM INTO HIS HAND; THEN I1 WILL APPOINT THEE A PLACE WHITHER HE SHALL FLEE.NJ# 14 BUT IF A MAN COME PRESUMPTUOUSLY UPON HIS NEIGHBOUR, TO SLAY HIM WITH= GUILE; THOU SHALT TAKE HIM FROM MINE ALTAR, THAT HE MAY DIE.EJ# 15 AND HE THAT SMITETH HIS FATHER, OR HIS MOTHER, SHALL BE SURELY PUT TO DEATH.DJ# 16 AND HE THAT STEALETH A MAN, AND SELLETH HIM, OR IF HE BE FOUND IN HIS' HAND, HE SHALL SURELY BE PUT TO DEATH. J# 17 AND HE THAT CURSETH HIS FATHER, OR HIS MOTHER, SHALL SURELY BE PUT TO DEATH.LL# 18 AND IF MEN STRIVE TOGETHER, AND ONE SMITE ANOTHER WITH A STONE, OR WITH/ HIS FIST, AND HE DIE NOT, BUT KEEPETH HIS BED:HI# 19 IF HE RISE AGAIN, AND WALK ABROAD UPON HIS STAFF, THEN SHALL HE THAT,I SMOTE HIM BE QUIT: ONLY HE SHALL PAY FOR THE LOSS OF HIS TIME, AND SHALLL# CAUSE HIM TO BE THOROUGHLY HEALED.DH# 20 AND IF A MAN SMITE HIS SERVANT, OR HIS MAID, WITH A ROD, AND HE DIE- UNDER HIS HAND; HE SHALL BE SURELY PUNISHED. L# 21 NOTWITHSTANDING, IF HE CONTINUE00`8('<%X>%+%O-%TADATADATA A DAY OR TWO, HE SHALL NOT BE PUNISHED: FOR HE IS HIS MONEY.TI# 22 IF MEN STRIVE, AND HURT A WOMAN WITH CHILD, SO THAT HER FRUIT DEPART,M FROM HER, AND YET NO MISCHIEF FOLLOW: HE SHALL BE SURELY PUNISHED, ACCORDINGTH AS THE WOMANS HUSBAND WILL LAY UPON HIM; AND HE SHALL PAY AS THE JUDGES DETERMINE. D# 23 AND IF ANY MISCHIEF FOLLOW, THEN THOU SHALT GIVE LIFE FOR LIFE,@# 24 EYE FOR EYE, TOOTH FOR TOOTH, HAND FOR HAND, FOOT FOR FOOT,=# 25 BURNING FOR BURNING, WOUND FOR WOUND, STRIPE FOR STRIPE.TL# 26 AND IF A MAN SMITE THE EYE OF HIS SERVANT, OR THE EYE OF HIS MAID, THAT7 IT PERISH; HE SHALL LET HIM GO FREE FOR HIS EYES SAKE.TM# 27 AND IF HE SMITE OUT HIS MANSERVANTS TOOTH, OR HIS MAIDSERVANTS TOOTH; HEC+ SHALL LET HIM GO FREE FOR HIS TOOTHS SAKE.NH# 28 IF AN OX GORE A MAN OR A WOMAN, THAT THEY DIE: THEN THE OX SHALL BEI SURELY STONED, AND HIS FLESH SHALL NOT BE EATEN; BUT THE OWNER OF THE OX  SHALL BE QUIT.AL# 29 BUT IF THE OX WERE WONT TO PUSH WITH HIS HORN IN TIME PAST, AND IT HATHK BEEN TESTIFIED TO HIS OWNER, AND HE HATH NOT KEPT HIM IN, BUT THAT HE HATH M KILLED A MAN OR A WOMAN; THE OX SHALL BE STONED, AND HIS OWNER ALSO SHALL BES PUT TO DEATH.G# 30 IF THERE BE LAID ON HIM A SUM OF MONEY, THEN HE SHALL GIVE FOR THER0 RANSOM OF HIS LIFE WHATSOEVER IS LAID UPON HIM.M# 31 WHETHER HE HAVE GORED A SON, OR HAVE GORED A DAUGHTER, ACCORDING TO THIS $ JUDGMENT SHALL IT BE DONE UNTO HIM.K# 32 IF THE OX SHALL PUSH A MANSERVANT OR A MAIDSERVANT; HE SHALL GIVE UNTOEC THEIR MASTER THIRTY SHEKELS OF SILVER, AND THE OX SHALL BE STONED.TH# 33 AND IF A MAN SHALL OPEN A PIT, OR IF A MAN SHALL DIG A PIT, AND NOT, COVER IT, AND AN OX OR AN ASS FALL THEREIN;K# 34 THE OWNER OF THE PIT SHALL MAKE IT GOOD, AND GIVE MONEY UNTO THE OWNER* OF THEM; AND THE DEAD BEAST SHALL BE HIS.L# 35 AND IF ONE MANS OX HURT ANOTHERS, THAT HE DIE; THEN THEY SHALL SELL THEM LIVE OX, AND DIVIDE THE MONEY OF IT; AND THE DEAD OX ALSO THEY SHALL DIVIDE.RJ# 36 OR IF IT BE KNOWN THAT THE OX HATH USED TO PUSH IN TIME PAST, AND HISN OWNER HATH NOT KEPT HIM IN; HE SHALL SURELY PAY OX FOR OX; AND THE DEAD SHALL BE HIS OWN. = CHAPTER 22 TM# 1 IF A MAN SHALL STEAL AN OX, OR A SHEEP, AND KILL IT, OR SELL IT; HE SHALL 9 RESTORE FIVE OXEN FOR AN OX, AND FOUR SHEEP FOR A SHEEP. L# 2 IF A THIEF BE FOUND BREAKING UP, AND BE SMITTEN THAT HE DIE, THERE SHALL NO BLOOD BE SHED FOR HIM.K# 3 IF THE SUN BE RISEN UPON HIM, THERE SHALL BE BLOOD SHED FOR HIM; FOR HEEL SHOULD MAKE FULL RESTITUTION; IF HE HAVE NOTHING, THEN HE SHALL BE SOLD FOR HIS THEFT. K# 4 IF THE THEFT BE CERTAINLY FOUND IN HIS HAND ALIVE, WHETHER IT BE OX, ORW( ASS, OR SHEEP; HE SHALL RESTORE DOUBLE.J# 5 IF A MAN SHALL CAUSE A FIELD OR VINEYARD TO BE EATEN, AND SHALL PUT INH HIS BEAST, AND SHALL FEED IN ANOTHER MANS FIELD; OF THE BEST OF HIS OWNG FIELD, AND OF THE BEST OF HIS OWN VINEYARD, SHALL HE MAKE RESTITUTION.J# 6 IF FIRE BREAK OUT, AND CATCH IN THORNS, SO THAT THE STACKS OF CORN, ORL THE STANDING CORN, OR THE FIELD, BE CONSUMED THEREWITH; HE THAT KINDLED THE$ FIRE SHALL SURELY MAKE RESTITUTION.L# 7 IF A MAN SHALL DELIVER UNTO HIS NEIGHBOUR MONEY OR STUFF TO KEEP, AND ITL BE STOLEN OUT OF THE MANS HOUSE; IF THE THIEF BE FOUND, LET HIM PAY DOUBLE.L# 8 IF THE THIEF BE NOT FOUND, THEN THE MASTER OF THE HOUSE SHALL BE BROUGHTI UNTO THE JUDGES, TO SEE WHETHER HE HAVE PUT HIS HAND UNTO HIS NEIGHBOURSS GOODS.M# 9 FOR ALL MANNER OF TRESPASS, WHETHER IT BE FOR OX, FOR ASS, FOR SHEEP, FORTN RAIMENT, OR FOR ANY MANNER OF LOST THING WHICH ANOTHER CHALLENGETH TO BE HIS,L THE CAUSE OF BOTH PARTIES SHALL COME BEFORE THE JUDGES; AND WHOM THE JUDGES7 SHALL CONDEMN, HE SHALL PAY DOUBLE UNTO HIS NEIGHBOUR.AM# 10 IF A MAN DELIVER UNTO HIS NEIGHBOUR AN ASS, OR AN OX, OR A SHEEP, OR ANYOJ BEAST, TO KEEP; AND IT DIE, OR BE HURT, OR DRIVEN AWAY, NO MAN SEEING IT:J# 11 THEN SHALL AN OATH OF THE LORD BE BETWEEN THEM BOTH, THAT HE HATH NOTI PUT HIS HAND UNTO HIS NEIGHBOURS GOODS; AND THE OWNER OF IT SHALL ACCEPT ( THEREOF, AND HE SHALL NOT MAKE IT GOOD.K# 12 AND I00`@(%D%5%T6%! !F IT BE STOLEN FROM HIM, HE SHALL MAKE RESTITUTION UNTO THE OWNERJ THEREOF.WM# 13 IF IT BE TORN IN PIECES, THEN LET HIM BRING IT FOR WITNESS, AND HE SHALLI# NOT MAKE GOOD THAT WHICH WAS TORN. L# 14 AND IF A MAN BORROW OUGHT OF HIS NEIGHBOUR, AND IT BE HURT, OR DIE, THE? OWNER THEREOF BEING NOT WITH IT, HE SHALL SURELY MAKE IT GOOD.LM# 15 BUT IF THE OWNER THEREOF BE WITH IT, HE SHALL NOT MAKE IT GOOD: IF IT BEO& AN HIRED THING, IT CAME FOR HIS HIRE.K# 16 AND IF A MAN ENTICE A MAID THAT IS NOT BETROTHED, AND LIE WITH HER, HEH' SHALL SURELY ENDOW HER TO BE HIS WIFE.J# 17 IF HER FATHER UTTERLY REFUSE TO GIVE HER UNTO HIM, HE SHALL PAY MONEY# ACCORDING TO THE DOWRY OF VIRGINS.H+# 18 THOU SHALT NOT SUFFER A WITCH TO LIVE.T?# 19 WHOSOEVER LIETH WITH A BEAST SHALL SURELY BE PUT TO DEATH.IK# 20 HE THAT SACRIFICETH UNTO ANY GOD, SAVE UNTO THE LORD ONLY, HE SHALL BE  UTTERLY DESTROYED.ND# 21 THOU SHALT NEITHER VEX A STRANGER, NOR OPPRESS HIM: FOR YE WERE STRANGERS IN THE LAND OF EGYPT.9# 22 YE SHALL NOT AFFLICT ANY WIDOW, OR FATHERLESS CHILD.OJ# 23 IF THOU AFFLICT THEM IN ANY WISE, AND THEY CRY AT ALL UNTO ME, I WILL SURELY HEAR THEIR CRY;AM# 24 AND MY WRATH SHALL WAX HOT, AND I WILL KILL YOU WITH THE SWORD; AND YOURT5 WIVES SHALL BE WIDOWS, AND YOUR CHILDREN FATHERLESS. L# 25 IF THOU LEND MONEY TO ANY OF MY PEOPLE THAT IS POOR BY THEE, THOU SHALTC NOT BE TO HIM AS AN USURER, NEITHER SHALT THOU LAY UPON HIM USURY.GM# 26 IF THOU AT ALL TAKE THY NEIGHBOURS RAIMENT TO PLEDGE, THOU SHALT DELIVERL( IT UNTO HIM BY THAT THE SUN GOETH DOWN:K# 27 FOR THAT IS HIS COVERING ONLY, IT IS HIS RAIMENT FOR HIS SKIN: WHEREINIJ SHALL HE SLEEP? AND IT SHALL COME TO PASS, WHEN HE CRIETH UNTO ME, THAT I WILL HEAR; FOR I AM GRACIOUS.G# 28 THOU SHALT NOT REVILE THE GODS, NOR CURSE THE RULER OF THY PEOPLE.NK# 29 THOU SHALT NOT DELAY TO OFFER THE FIRST OF THY RIPE FRUITS, AND OF THYA< LIQUORS: THE FIRSTBORN OF THY SONS SHALT THOU GIVE UNTO ME.K# 30 LIKEWISE SHALT THOU DO WITH THINE OXEN, AND WITH THY SHEEP: SEVEN DAYSNC IT SHALL BE WITH HIS DAM; ON THE EIGHTH DAY THOU SHALT GIVE IT ME.YM# 31 AND YE SHALL BE HOLY MEN UNTO ME: NEITHER SHALL YE EAT ANY FLESH THAT IST; TORN OF BEASTS IN THE FIELD; YE SHALL CAST IT TO THE DOGS.G = CHAPTER 23 TN# 1 THOU SHALT NOT RAISE A FALSE REPORT: PUT NOT THINE HAND WITH THE WICKED TO BE AN UNRIGHTEOUS WITNESS.RM# 2 THOU SHALT NOT FOLLOW A MULTITUDE TO DO EVIL; NEITHER SHALT THOU SPEAK INH1 A CAUSE TO DECLINE AFTER MANY TO WREST JUDGMENT:T;# 3 NEITHER SHALT THOU COUNTENANCE A POOR MAN IN HIS CAUSE. K# 4 IF THOU MEET THINE ENEMYS OX OR HIS ASS GOING ASTRAY, THOU SHALT SURELY  BRING IT BACK TO HIM AGAIN.K# 5 IF THOU SEE THE ASS OF HIM THAT HATETH THEE LYING UNDER HIS BURDEN, AND ? WOULDEST FORBEAR TO HELP HIM, THOU SHALT SURELY HELP WITH HIM.P?# 6 THOU SHALT NOT WREST THE JUDGMENT OF THY POOR IN HIS CAUSE.RJ# 7 KEEP THEE FAR FROM A FALSE MATTER; AND THE INNOCENT AND RIGHTEOUS SLAY- THOU NOT: FOR I WILL NOT JUSTIFY THE WICKED.UD# 8 AND THOU SHALT TAKE NO GIFT: FOR THE GIFT BLINDETH THE WISE, AND' PERVERTETH THE WORDS OF THE RIGHTEOUS. F# 9 ALSO THOU SHALT NOT OPPRESS A STRANGER: FOR YE KNOW THE HEART OF A9 STRANGER, SEEING YE WERE STRANGERS IN THE LAND OF EGYPT. J# 10 AND SIX YEARS THOU SHALT SOW THY LAND, AND SHALT GATHER IN THE FRUITS THEREOF:UM# 11 BUT THE SEVENTH YEAR THOU SHALT LET IT REST AND LIE STILL; THAT THE POORMN OF THY PEOPLE MAY EAT: AND WHAT THEY LEAVE THE BEASTS OF THE FIELD SHALL EAT.J IN LIKE MANNER THOU SHALT DEAL WITH THY VINEYARD, AND WITH THY OLIVEYARD.M# 12 SIX DAYS THOU SHALT DO THY WORK, AND ON THE SEVENTH DAY THOU SHALT REST:OK THAT THINE OX AND THINE ASS MAY REST, AND THE SON OF THY HANDMAID, AND THET STRANGER, MAY BE REFRESHED.L# 13 AND IN ALL THINGS THAT I HAVE SAID UNTO YOU BE CIRCUMSPECT: AND MAKE NOM MENTION OF THE NAME OF OTHER GODS, NEITHER LET IT BE HEARD OUT OF THY MOUTH.T=# 14 THREE TIMES THOU SHALT KEEP A FEAST UNTO ME IN THE YEAR.SC# 15 THOU SHALT KEEP THE FEAST OF UNLEAVENED BREAD: (THOU SHALT EATVK UNLEAVENED BREA00`H('<%X>%+%O-%TADATADATAD SEVEN DAYS, AS I COMMANDED THEE, IN THE TIME APPOINTED OFNL THE MONTH ABIB; FOR IN IT THOU CAMEST OUT FROM EGYPT: AND NONE SHALL APPEAR BEFORE ME EMPTY:)I# 16 AND THE FEAST OF HARVEST, THE FIRSTFRUITS OF THY LABOURS, WHICH THOU M HAST SOWN IN THE FIELD: AND THE FEAST OF INGATHERING, WHICH IS IN THE END OFOC THE YEAR, WHEN THOU HAST GATHERED IN THY LABOURS OUT OF THE FIELD. L# 17 THREE ITEMS IN THE YEAR ALL THY MALES SHALL APPEAR BEFORE THE LORD GOD.H# 18 THOU SHALT NOT OFFER THE BLOOD OF MY SACRIFICE WITH LEAVENED BREAD;@ NEITHER SHALL THE FAT OF MY SACRIFICE REMAIN UNTIL THE MORNING.M# 19 THE FIRST OF THE FIRSTFRUITS OF THY LAND THOU SHALT BRING INTO THE HOUSETF OF THE LORD THY GOD. THOU SHALT NOT SEETHE A KID IN HIS MOTHERS MILK.I# 20 BEHOLD, I SEND AN ANGEL BEFORE THEE, TO KEEP THEE IN THE WAY, AND TOT1 BRING THEE INTO THE PLACE WHICH I HAVE PREPARED. H# 21 BEWARE OF HIM, AND OBEY HIS VOICE, PROVOKE HIM NOT; FOR HE WILL NOT3 PARDON YOUR TRANSGRESSIONS: FOR MY NAME IS IN HIM.OM# 22 BUT IF THOU SHALT INDEED OBEY HIS VOICE, AND DO ALL THAT I SPEAK; THEN IRN WILL BE AN ENEMY UNTO THINE ENEMIES, AND AN ADVERSARY UNTO THINE ADVERSARIES.D# 23 FOR MINE ANGEL SHALL GO BEFORE THEE, AND BRING THEE IN UNTO THEH AMORITES, AND THE HITTITES, AND THE PERIZZITES, AND THE CANAANITES, THE5 HIVITES, AND THE JEBUSITES: AND I WILL CUT THEM OFF.EH# 24 THOU SHALT NOT BOW DOWN TO THEIR GODS, NOR SERVE THEM, NOR DO AFTERI THEIR WORKS: BUT THOU SHALT UTTERLY OVERTHROW THEM, AND QUITE BREAK DOWNM THEIR IMAGES.L# 25 AND YE SHALL SERVE THE LORD YOUR GOD, AND HE SHALL BLESS THY BREAD, ANDA THY WATER; AND I WILL TAKE SICKNESS AWAY FROM THE MIDST OF THEE..J# 26 THERE SHALL NOTHING CAST THEIR YOUNG, NOR BE BARREN, IN THY LAND: THE" NUMBER OF THY DAYS I WILL FULFIL.M# 27 I WILL SEND MY FEAR BEFORE THEE, AND WILL DESTROY ALL THE PEOPLE TO WHOMHI THOU SHALT COME, AND I WILL MAKE ALL THINE ENEMIES TURN THEIR BACKS UNTOO THEE.K# 28 AND I WILL SEND HORNETS BEFORE THEE, WHICH SHALL DRIVE OUT THE HIVITE,T2 THE CANAANITE, AND THE HITTITE, FROM BEFORE THEE.J# 29 I WILL NOT DRIVE THEM OUT FROM BEFORE THEE IN ONE YEAR; LEST THE LANDC BECOME DESOLATE, AND THE BEAST OF THE FIELD MULTIPLY AGAINST THEE.OL# 30 BY LITTLE AND LITTLE I WILL DRIVE THEM OUT FROM BEFORE THEE, UNTIL THOU$ BE INCREASED, AND INHERIT THE LAND.H# 31 AND I WILL SET THY BOUNDS FROM THE RED SEA EVEN UNTO THE SEA OF THEH PHILISTINES, AND FROM THE DESERT UNTO THE RIVER: FOR I WILL DELIVER THEM INHABITANTS OF THE LAND INTO YOUR HAND; AND THOU SHALT DRIVE THEM OUT BEFORET THEE.@# 32 THOU SHALT MAKE NO COVENANT WITH THEM, NOR WITH THEIR GODS.J# 33 THEY SHALL NOT DWELL IN THY LAND, LEST THEY MAKE THEE SIN AGAINST ME:C FOR IF THOU SERVE THEIR GODS, IT WILL SURELY BE A SNARE UNTO THEE.R = CHAPTER 24 N# 1 AND HE SAID UNTO MOSES, COME UP UNTO THE LORD, THOU, AND AARON, NADAB, ANDE ABIHU, AND SEVENTY OF THE ELDERS OF ISRAEL; AND WORSHIP YE AFAR OFF.DK# 2 AND MOSES ALONE SHALL COME NEAR THE LORD: BUT THEY SHALL NOT COME NIGH;O) NEITHER SHALL THE PEOPLE GO UP WITH HIM.RM# 3 AND MOSES CAME AND TOLD THE PEOPLE ALL THE WORDS OF THE LORD, AND ALL THE I JUDGMENTS: AND ALL THE PEOPLE ANSWERED WITH ONE VOICE, AND SAID, ALL THEF+ WORDS WHICH THE LORD HATH SAID WILL WE DO.EG# 4 AND MOSES WROTE ALL THE WORDS OF THE LORD, AND ROSE UP EARLY IN THE L MORNING, AND BUILDED AN ALTAR UNDER THE HILL, AND TWELVE PILLARS, ACCORDING TO THE TWELVE TRIBES OF ISRAEL.H# 5 AND HE SENT YOUNG MEN OF THE CHILDREN OF ISRAEL, WHICH OFFERED BURNTA OFFERINGS, AND SACRIFICED PEACE OFFERINGS OF OXEN UNTO THE LORD.AK# 6 AND MOSES TOOK HALF OF THE BLOOD, AND PUT IT IN BASONS; AND HALF OF THEN! BLOOD HE SPRINKLED ON THE ALTAR.VI# 7 AND HE TOOK THE BOOK OF THE COVENANT, AND READ IN THE AUDIENCE OF THE F PEOPLE: AND THEY SAID, ALL THAT THE LORD HATH SAID WILL WE DO, AND BE OBEDIENT.G# 8 AND MOSES TOOK THE BLOOD, AND SPRINKLED IT ON THE PEOPLE, AND SAID,WD BEHOLD THE BLOOD OF THE COVENANT, WHICH THE LORD HATH MADE WITH YOU CONCERNING ALL THESE WORDS.G# 9 THEN WENT UP MOSES, AND 00`P(%D%5%T6%! !AARON, NADAB, AND ABIHU, AND SEVENTY OF THE  ELDERS OF ISRAEL:L# 10 AND THEY SAW THE GOD OF ISRAEL: AND THERE WAS UNDER HIS FEET AS IT WEREK A PAVED WORK OF A SAPPHIRE STONE, AND AS IT WERE THE BODY OF HEAVEN IN HIS CLEARNESS.:M# 11 AND UPON THE NOBLES OF THE CHILDREN OF ISRAEL HE LAID NOT HIS HAND: ALSO % THEY SAW GOD, AND DID EAT AND DRINK. G# 12 AND THE LORD SAID UNTO MOSES, COME UP TO ME INTO THE MOUNT, AND BEEI THERE: AND I WILL GIVE THEE TABLES OF STONE, AND A LAW, AND COMMANDMENTSS3 WHICH I HAVE WRITTEN; THAT THOU MAYEST TEACH THEM.K# 13 AND MOSES ROSE UP, AND HIS MINISTER JOSHUA: AND MOSES WENT UP INTO THEH MOUNT OF GOD.K# 14 AND HE SAID UNTO THE ELDERS, TARRY YE HERE FOR US, UNTIL WE COME AGAINIG UNTO YOU: AND, BEHOLD, AARON AND HUR ARE WITH YOU: IF ANY MAN HAVE ANYA' MATTERS TO DO, LET HIM COME UNTO THEM.DE# 15 AND MOSES WENT UP INTO THE MOUNT, AND A CLOUD COVERED THE MOUNT.IL# 16 AND THE GLORY OF THE LORD ABODE UPON MOUNT SINAI, AND THE CLOUD COVEREDN IT SIX DAYS: AND THE SEVENTH DAY HE CALLED UNTO MOSES OUT OF THE MIDST OF THE CLOUD.SJ# 17 AND THE SIGHT OF THE GLORY OF THE LORD WAS LIKE DEVOURING FIRE ON THE8 TOP OF THE MOUNT IN THE EYES OF THE CHILDREN OF ISRAEL.H# 18 AND MOSES WENT INTO THE MIDST OF THE CLOUD, AND GAT HIM UP INTO THE? MOUNT: AND MOSES WAS IN THE MOUNT FORTY DAYS AND FORTY NIGHTS. = CHAPTER 25 W*# 1 AND THE LORD SPAKE UNTO MOSES, SAYING,I# 2 SPEAK UNTO THE CHILDREN OF ISRAEL, THAT THEY BRING ME AN OFFERING: OFCM EVERY MAN THAT GIVETH IT WILLINGLY WITH HIS HEART YE SHALL TAKE MY OFFERING. K# 3 AND THIS IS THE OFFERING WHICH YE SHALL TAKE OF THEM; GOLD, AND SILVER,D AND BRASS, F# 4 AND BLUE, AND PURPLE, AND SCARLET, AND FINE LINEN, AND GOATS HAIR,A# 5 AND RAMS SKINS DYED RED, AND BADGERS SKINS, AND SHITTIM WOOD,G# 6 OIL FOR THE LIGHT, SPICES FOR ANOINTING OIL, AND FOR SWEET INCENSE,EK# 7 ONYX STONES, AND STONES TO BE SET IN THE EPHOD, AND IN THE BREASTPLATE.EB# 8 AND LET THEM MAKE ME A SANCTUARY; THAT I MAY DWELL AMONG THEM.K# 9 ACCORDING TO ALL THAT I SHEW THEE, AFTER THE PATTERN OF THE TABERNACLE, J AND THE PATTERN OF ALL THE INSTRUMENTS THEREOF, EVEN SO SHALL YE MAKE IT.L# 10 AND THEY SHALL MAKE AN ARK OF SHITTIM WOOD: TWO CUBITS AND A HALF SHALLI BE THE LENGTH THEREOF, AND A CUBIT AND A HALF THE BREADTH THEREOF, AND AH% CUBIT AND A HALF THE HEIGHT THEREOF.FL# 11 AND THOU SHALT OVERLAY IT WITH PURE GOLD, WITHIN AND WITHOUT SHALT THOU@ OVERLAY IT, AND SHALT MAKE UPON IT A CROWN OF GOLD ROUND ABOUT.L# 12 AND THOU SHALT CAST FOUR RINGS OF GOLD FOR IT, AND PUT THEM IN THE FOURM CORNERS THEREOF; AND TWO RINGS SHALL BE IN THE ONE SIDE OF IT, AND TWO RINGSS IN THE OTHER SIDE OF IT.TL# 13 AND THOU SHALT MAKE STAVES OF SHITTIM WOOD, AND OVERLAY THEM WITH GOLD.J# 14 AND THOU SHALT PUT THE STAVES INTO THE RINGS BY THE SIDES OF THE ARK,% THAT THE ARK MAY BE BORNE WITH THEM.TI# 15 THE STAVES SHALL BE IN THE RINGS OF THE ARK: THEY SHALL NOT BE TAKENY FROM IT.AK# 16 AND THOU SHALT PUT INTO THE ARK THE TESTIMONY WHICH I SHALL GIVE THEE.II# 17 AND THOU SHALT MAKE A MERCY SEAT OF PURE GOLD: TWO CUBITS AND A HALFGI SHALL BE THE LENGTH THEREOF, AND A CUBIT AND A HALF THE BREADTH THEREOF.TI# 18 AND THOU SHALT MAKE TWO CHERUBIMS OF GOLD, OF BEATEN WORK SHALT THOUL. MAKE THEM, IN THE TWO ENDS OF THE MERCY SEAT.J# 19 AND MAKE ONE CHERUB ON THE ONE END, AND THE OTHER CHERUB ON THE OTHERH END: EVEN OF THE MERCY SEAT SHALL YE MAKE THE CHERUBIMS ON THE TWO ENDS THEREOF. L# 20 AND THE CHERUBIMS SHALL STRETCH FORTH THEIR WINGS ON HIGH, COVERING THEH MERCY SEAT WITH THEIR WINGS, AND THEIR FACES SHALL LOOK ONE TO ANOTHER;; TOWARD THE MERCY SEAT SHALL THE FACES OF THE CHERUBIMS BE.DI# 21 AND THOU SHALT PUT THE MERCY SEAT ABOVE UPON THE ARK; AND IN THE ARKK5 THOU SHALT PUT THE TESTIMONY THAT I SHALL GIVE THEE.SM# 22 AND THERE I WILL MEET WITH THEE, AND I WILL COMMUNE WITH THEE FROM ABOVERM THE MERCY SEAT, FROM BETWEEN THE TWO CHERUBIMS WHICH ARE UPON THE ARK OF THEEH TESTIMONY, OF ALL THINGS WHICH I WILL GIVE THEE IN COMMANDMENT UNTO THE CHILDREN 00`X('<%X>%+%O-%TADATADATAOF ISRAEL.J# 23 THOU SHALT ALSO MAKE A TABLE OF SHITTIM WOOD: TWO CUBITS SHALL BE THEL LENGTH THEREOF, AND A CUBIT THE BREADTH THEREOF, AND A CUBIT AND A HALF THE HEIGHT THEREOF.J# 24 AND THOU SHALT OVERLAY IT WITH PURE GOLD, AND MAKE THERETO A CROWN OF GOLD ROUND ABOUT.M# 25 AND THOU SHALT MAKE UNTO IT A BORDER OF AN HAND BREADTH ROUND ABOUT, ANDYB THOU SHALT MAKE A GOLDEN CROWN TO THE BORDER THEREOF ROUND ABOUT.L# 26 AND THOU SHALT MAKE FOR IT FOUR RINGS OF GOLD, AND PUT THE RINGS IN THE0 FOUR CORNERS THAT ARE ON THE FOUR FEET THEREOF.K# 27 OVER AGAINST THE BORDER SHALL THE RINGS BE FOR PLACES OF THE STAVES TOE BEAR THE TABLE.J# 28 AND THOU SHALT MAKE THE STAVES OF SHITTIM WOOD, AND OVERLAY THEM WITH- GOLD, THAT THE TABLE MAY BE BORNE WITH THEM.GK# 29 AND THOU SHALT MAKE THE DISHES THEREOF, AND SPOONS THEREOF, AND COVERSHJ THEREOF, AND BOWLS THEREOF, TO COVER WITHAL: OF PURE GOLD SHALT THOU MAKE THEM.A# 30 AND THOU SHALT SET UPON THE TABLE SHEWBREAD BEFORE ME ALWAY. M# 31 AND THOU SHALT MAKE A CANDLESTICK OF PURE GOLD: OF BEATEN WORK SHALL THESL CANDLESTICK BE MADE: HIS SHAFT, AND HIS BRANCHES, HIS BOWLS, HIS KNOPS, AND# HIS FLOWERS, SHALL BE OF THE SAME. J# 32 AND SIX BRANCHES SHALL COME OUT OF THE SIDES OF IT; THREE BRANCHES OFK THE CANDLESTICK OUT OF THE ONE SIDE, AND THREE BRANCHES OF THE CANDLESTICKA OUT OF THE OTHER SIDE: H# 33 THREE BOWLS MADE LIKE UNTO ALMONDS, WITH A KNOP AND A FLOWER IN ONEK BRANCH; AND THREE BOWLS MADE LIKE ALMONDS IN THE OTHER BRANCH, WITH A KNOP G AND A FLOWER: SO IN THE SIX BRANCHES THAT COME OUT OF THE CANDLESTICK.SM# 34 AND IN THE CANDLESTICKS SHALL BE FOUR BOWLS MADE LIKE UNTO ALMONDS, WITHE THEIR KNOPS AND THEIR FLOWERS.AI# 35 AND THERE SHALL BE A KNOP UNDER TWO BRANCHES OF THE SAME, AND A KNOPCK UNDER TWO BRANCHES OF THE SAME, AND A KNOP UNDER TWO BRANCHES OF THE SAME,OC ACCORDING TO THE SIX BRANCHES THAT PROCEED OUT OF THE CANDLESTICK.NM# 36 THEIR KNOPS AND THEIR BRANCHES SHALL BE OF THE SAME: ALL IT SHALL BE ONE  BEATEN WORK OF PURE GOLD.J# 37 AND THOU SHALT MAKE THE SEVEN LAMPS THEREOF: AND THEY SHALL LIGHT THE9 LAMPS THEREOF, THAT THEY MAY GIVE LIGHT OVER AGAINST IT.OI# 38 AND THE TONGS THEREOF, AND THE SNUFFDISHES THEREOF, SHALL BE OF PUREP GOLD.G# 39 OF A TALENT OF PURE GOLD SHALL HE MAKE IT, WITH ALL THESE VESSELS.DL# 40 AND LOOK THAT THOU MAKE THEM AFTER THEIR PATTERN, WHICH WAS SHEWED THEE IN THE MOUNT. = CHAPTER 26 NL# 1 MOREOVER THOU SHALT MAKE THE TABERNACLE WITH TEN CURTAINS OF FINE TWINEDI LINEN, AND BLUE, AND PURPLE, AND SCARLET: WITH CHERUBIMS OF CUNNING WORKE SHALT THOU MAKE THEM.G# 2 THE LENGTH OF ONE CURTAIN SHALL BE EIGHT AND TWENTY CUBITS, AND THEAM BREADTH OF ONE CURTAIN FOUR CUBITS: AND EVERY ONE OF THE CURTAINS SHALL HAVE ONE MEASURE.OI# 3 THE FIVE CURTAINS SHALL BE COUPLED TOGETHER ONE TO ANOTHER; AND OTHERT/ FIVE CURTAINS SHALL BE COUPLED ONE TO ANOTHER.EK# 4 AND THOU SHALT MAKE LOOPS OF BLUE UPON THE EDGE OF THE ONE CURTAIN FROMRL THE SELVEDGE IN THE COUPLING; AND LIKEWISE SHALT THOU MAKE IN THE UTTERMOST8 EDGE OF ANOTHER CURTAIN, IN THE COUPLING OF THE SECOND.I# 5 FIFTY LOOPS SHALT THOU MAKE IN THE ONE CURTAIN, AND FIFTY LOOPS SHALTAL THOU MAKE IN THE EDGE OF THE CURTAIN THAT IS IN THE COUPLING OF THE SECOND;- THAT THE LOOPS MAY TAKE HOLD ONE OF ANOTHER. E# 6 AND THOU SHALT MAKE FIFTY TACHES OF GOLD, AND COUPLE THE CURTAINS : TOGETHER WITH THE TACHES: AND IT SHALL BE ONE TABERNACLE.H# 7 AND THOU SHALT MAKE CURTAINS OF GOATS HAIR TO BE A COVERING UPON THE- TABERNACLE: ELEVEN CURTAINS SHALT THOU MAKE.L# 8 THE LENGTH OF ONE CURTAIN SHALL BE THIRTY CUBITS, AND THE BREADTH OF ONEJ CURTAIN FOUR CUBITS: AND THE ELEVEN CURTAINS SHALL BE ALL OF ONE MEASURE.J# 9 AND THOU SHALT COUPLE FIVE CURTAINS BY THEMSELVES, AND SIX CURTAINS BYG THEMSELVES, AND SHALT DOUBLE THE SIXTH CURTAIN IN THE FOREFRONT OF THED TABERNACLE.K# 10 AND THOU SHALT MAKE FIFTY LOOPS ON THE EDGE OF THE ONE CURTAIN THAT IS J OUTMOST IN THE COUPLING, AND FIFTY LOOPS IN THE EDGE OF THE CURTAIN WHICH COUPLETH THE SECOND.S00``(%D%5%T6%! !K# 11 AND THOU SHALT MAKE FIFTY TACHES OF BRASS, AND PUT THE TACHES INTO THEH9 LOOPS, AND COUPLE THE TENT TOGETHER, THAT IT MAY BE ONE.AI# 12 AND THE REMNANT THAT REMAINETH OF THE CURTAINS OF THE TENT, THE HALFYH CURTAIN THAT REMAINETH, SHALL HANG OVER THE BACKSIDE OF THE TABERNACLE.M# 13 AND A CUBIT ON THE ONE SIDE, AND A CUBIT ON THE OTHER SIDE OF THAT WHICHLL REMAINETH IN THE LENGTH OF THE CURTAINS OF THE TENT, IT SHALL HANG OVER THED SIDES OF THE TABERNACLE ON THIS SIDE AND ON THAT SIDE, TO COVER IT.L# 14 AND THOU SHALT MAKE A COVERING FOR THE TENT OF RAMS SKINS DYED RED, AND# A COVERING ABOVE OF BADGERS SKINS.HK# 15 AND THOU SHALT MAKE BOARDS FOR THE TABERNACLE OF SHITTIM WOOD STANDINGE UP.L# 16 TEN CUBITS SHALL BE THE LENGTH OF A BOARD, AND A CUBIT AND A HALF SHALL BE THE BREADTH OF ONE BOARD. E# 17 TWO TENONS SHALL THERE BE IN ONE BOARD, SET IN ORDER ONE AGAINSTHD ANOTHER: THUS SHALT THOU MAKE FOR ALL THE BOARDS OF THE TABERNACLE.L# 18 AND THOU SHALT MAKE THE BOARDS FOR THE TABERNACLE, TWENTY BOARDS ON THE SOUTH SIDE SOUTHWARD.M# 19 AND THOU SHALT MAKE FORTY SOCKETS OF SILVER UNDER THE TWENTY BOARDS; TWO5J SOCKETS UNDER ONE BOARD FOR HIS TWO TENONS, AND TWO SOCKETS UNDER ANOTHER BOARD FOR HIS TWO TENONS.L# 20 AND FOR THE SECOND SIDE OF THE TABERNACLE ON THE NORTH SIDE THERE SHALL BE TWENTY BOARDS:L# 21 AND THEIR FORTY SOCKETS OF SILVER; TWO SOCKETS UNDER ONE BOARD, AND TWO SOCKETS UNDER ANOTHER BOARD. M# 22 AND FOR THE SIDES OF THE TABERNACLE WESTWARD THOU SHALT MAKE SIX BOARDS.NL# 23 AND TWO BOARDS SHALT THOU MAKE FOR THE CORNERS OF THE TABERNACLE IN THE TWO SIDES.UJ# 24 AND THEY SHALL BE COUPLED TOGETHER BENEATH, AND THEY SHALL BE COUPLEDM TOGETHER ABOVE THE HEAD OF IT UNTO ONE RING: THUS SHALL IT BE FOR THEM BOTH;N# THEY SHALL BE FOR THE TWO CORNERS. I# 25 AND THEY SHALL BE EIGHT BOARDS, AND THEIR SOCKETS OF SILVER, SIXTEENRK SOCKETS; TWO SOCKETS UNDER ONE BOARD, AND TWO SOCKETS UNDER ANOTHER BOARD.AM# 26 AND THOU SHALT MAKE BARS OF SHITTIM WOOD; FIVE FOR THE BOARDS OF THE ONEA SIDE OF THE TABERNACLE,J# 27 AND FIVE BARS FOR THE BOARDS OF THE OTHER SIDE OF THE TABERNACLE, ANDJ FIVE BARS FOR THE BOARDS OF THE SIDE OF THE TABERNACLE, FOR THE TWO SIDES WESTWARD.J# 28 AND THE MIDDLE BAR IN THE MIDST OF THE BOARDS SHALL REACH FROM END TO END.EI# 29 AND THOU SHALT OVERLAY THE BOARDS WITH GOLD, AND MAKE THEIR RINGS OFTI GOLD FOR PLACES FOR THE BARS: AND THOU SHALT OVERLAY THE BARS WITH GOLD.BK# 30 AND THOU SHALT REAR UP THE TABERNACLE ACCORDING TO THE FASHION THEREOF $ WHICH WAS SHEWED THEE IN THE MOUNT.J# 31 AND THOU SHALT MAKE A VAIL OF BLUE, AND PURPLE, AND SCARLET, AND FINE? TWINED LINEN OF CUNNING WORK: WITH CHERUBIMS SHALL IT BE MADE:OK# 32 AND THOU SHALT HANG IT UPON FOUR PILLARS OF SHITTIM WOOD OVERLAID WITHRE GOLD: THEIR HOOKS SHALL BE OF GOLD, UPON THE FOUR SOCKETS OF SILVER.OM# 33 AND THOU SHALT HANG UP THE VAIL UNDER THE TACHES, THAT THOU MAYEST BRINGRH IN THITHER WITHIN THE VAIL THE ARK OF THE TESTIMONY: AND THE VAIL SHALL: DIVIDE UNTO YOU BETWEEN THE HOLY PLACE AND THE MOST HOLY.K# 34 AND THOU SHALT PUT THE MERCY SEAT UPON THE ARK OF THE TESTIMONY IN THE  MOST HOLY PLACE. L# 35 AND THOU SHALT SET THE TABLE WITHOUT THE VAIL, AND THE CANDLESTICK OVERK AGAINST THE TABLE ON THE SIDE OF THE TABERNACLE TOWARD THE SOUTH: AND THOUB' SHALT PUT THE TABLE ON THE NORTH SIDE.RJ# 36 AND THOU SHALT MAKE AN HANGING FOR THE DOOR OF THE TENT, OF BLUE, ANDE PURPLE, AND SCARLET, AND FINE TWINED LINEN, WROUGHT WITH NEEDLEWORK.AJ# 37 AND THOU SHALT MAKE FOR THE HANGING FIVE PILLARS OF SHITTIM WOOD, ANDN OVERLAY THEM WITH GOLD, AND THEIR HOOKS SHALL BE OF GOLD: AND THOU SHALT CAST FIVE SOCKETS OF BRASS FOR THEM. = CHAPTER 27 HL# 1 AND THOU SHALT MAKE AN ALTAR OF SHITTIM WOOD, FIVE CUBITS LONG, AND FIVEM CUBITS BROAD; THE ALTAR SHALL BE FOURSQUARE: AND THE HEIGHT THEREOF SHALL BER THREE CUBITS.J# 2 AND THOU SHALT MAKE THE HORNS OF IT UPON THE FOUR CORNERS THEREOF: HISB HORNS SHALL BE OF THE SAME: AND THOU SHALT OVERLAY IT WITH BRASS.K# 3 AND THOU SHA00`h('<%X>%+%O-%TADATADATALT MAKE HIS PANS TO RECEIVE HIS ASHES, AND HIS SHOVELS, ANDEJ HIS BASONS, AND HIS FLESHHOOKS, AND HIS FIREPANS: ALL THE VESSELS THEREOF THOU SHALT MAKE OF BRASS.L# 4 AND THOU SHALT MAKE FOR IT A GRATE OF NETWORK OF BRASS; AND UPON THE NET? SHALT THOU MAKE FOUR BRASEN RINGS IN THE FOUR CORNERS THEREOF.HJ# 5 AND THOU SHALT PUT IT UNDER THE COMPASS OF THE ALTAR BENEATH, THAT THE+ NET MAY BE EVEN TO THE MIDST OF THE ALTAR.HI# 6 AND THOU SHALT MAKE STAVES FOR THE ALTAR, STAVES OF SHITTIM WOOD, ANDH OVERLAY THEM WITH BRASS.EL# 7 AND THE STAVES SHALL BE PUT INTO THE RINGS, AND THE STAVES SHALL BE UPON( THE TWO SIDES OF THE ALTAR, TO BEAR IT.G# 8 HOLLOW WITH BOARDS SHALT THOU MAKE IT: AS IT WAS SHEWED THEE IN THE  MOUNT, SO SHALL THEY MAKE IT.G# 9 AND THOU SHALT MAKE THE COURT OF THE TABERNACLE: FOR THE SOUTH SIDEUK SOUTHWARD THERE SHALL BE HANGINGS FOR THE COURT OF FINE TWINED LINEN OF ANV" HUNDRED CUBITS LONG FOR ONE SIDE:H# 10 AND THE TWENTY PILLARS THEREOF AND THEIR TWENTY SOCKETS SHALL BE OFF BRASS; THE HOOKS OF THE PILLARS AND THEIR FILLETS SHALL BE OF SILVER.L# 11 AND LIKEWISE FOR THE NORTH SIDE IN LENGTH THERE SHALL BE HANGINGS OF ANH HUNDRED CUBITS LONG, AND HIS TWENTY PILLARS AND THEIR TWENTY SOCKETS OF= BRASS; THE HOOKS OF THE PILLARS AND THEIR FILLETS OF SILVER.FK# 12 AND FOR THE BREADTH OF THE COURT ON THE WEST SIDE SHALL BE HANGINGS OFT8 FIFTY CUBITS: THEIR PILLARS TEN, AND THEIR SOCKETS TEN.J# 13 AND THE BREADTH OF THE COURT ON THE EAST SIDE EASTWARD SHALL BE FIFTY CUBITS.H# 14 THE HANGINGS OF ONE SIDE OF THE GATE SHALL BE FIFTEEN CUBITS: THEIR( PILLARS THREE, AND THEIR SOCKETS THREE.J# 15 AND ON THE OTHER SIDE SHALL BE HANGINGS FIFTEEN CUBITS: THEIR PILLARS THREE, AND THEIR SOCKETS THREE.K# 16 AND FOR THE GATE OF THE COURT SHALL BE AN HANGING OF TWENTY CUBITS, OFRC BLUE, AND PURPLE, AND SCARLET, AND FINE TWINED LINEN, WROUGHT WITHFE NEEDLEWORK: AND THEIR PILLARS SHALL BE FOUR, AND THEIR SOCKETS FOUR.DI# 17 ALL THE PILLARS ROUND ABOUT THE COURT SHALL BE FILLETED WITH SILVER;E< THEIR HOOKS SHALL BE OF SILVER, AND THEIR SOCKETS OF BRASS.H# 18 THE LENGTH OF THE COURT SHALL BE AN HUNDRED CUBITS, AND THE BREADTHN FIFTY EVERY WHERE, AND THE HEIGHT FIVE CUBITS OF FINE TWINED LINEN, AND THEIR SOCKETS OF BRASS.J# 19 ALL THE VESSELS OF THE TABERNACLE IN ALL THE SERVICE THEREOF, AND ALLD THE PINS THEREOF, AND ALL THE PINS OF THE COURT, SHALL BE OF BRASS.M# 20 AND THOU SHALT COMMAND THE CHILDREN OF ISRAEL, THAT THEY BRING THEE PUREUB OIL OLIVE BEATEN FOR THE LIGHT, TO CAUSE THE LAMP TO BURN ALWAYS.L# 21 IN THE TABERNACLE OF THE CONGREGATION WITHOUT THE VAIL, WHICH IS BEFOREI THE TESTIMONY, AARON AND HIS SONS SHALL ORDER IT FROM EVENING TO MORNINGTN BEFORE THE LORD: IT SHALL BE A STATUTE FOR EVER UNTO THEIR GENERATIONS ON THE" BEHALF OF THE CHILDREN OF ISRAEL. = CHAPTER 28 ,J# 1 AND TAKE THOU UNTO THEE AARON THY BROTHER, AND HIS SONS WITH HIM, FROMJ AMONG THE CHILDREN OF ISRAEL, THAT HE MAY MINISTER UNTO ME IN THE PRIESTSG OFFICE, EVEN AARON, NADAB AND ABIHU, ELEAZAR AND ITHAMAR, AARONS SONS..M# 2 AND THOU SHALT MAKE HOLY GARMENTS FOR AARON THY BROTHER FOR GLORY AND FOR BEAUTY.K# 3 AND THOU SHALT SPEAK UNTO ALL THAT ARE WISE HEARTED, WHOM I HAVE FILLED L WITH THE SPIRIT OF WISDOM, THAT THEY MAY MAKE AARONS GARMENTS TO CONSECRATE9 HIM, THAT HE MAY MINISTER UNTO ME IN THE PRIESTS OFFICE. K# 4 AND THESE ARE THE GARMENTS WHICH THEY SHALL MAKE; A BREASTPLATE, AND AN I EPHOD, AND A ROBE, AND A BROIDERED COAT, A MITRE, AND A GIRDLE: AND THEY,J SHALL MAKE HOLY GARMENTS FOR AARON THY BROTHER, AND HIS SONS, THAT HE MAY( MINISTER UNTO ME IN THE PRIESTS OFFICE.I# 5 AND THEY SHALL TAKE GOLD, AND BLUE, AND PURPLE, AND SCARLET, AND FINEE LINEN.OE# 6 AND THEY SHALL MAKE THE EPHOD OF GOLD, OF BLUE, AND OF PURPLE, OF 3 SCARLET, AND FINE TWINED LINEN, WITH CUNNING WORK.TH# 7 IT SHALL HAVE THE TWO SHOULDERPIECES THEREOF JOINED AT THE TWO EDGES- THEREOF; AND SO IT SHALL BE JOINED TOGETHER. J# 8 AND THE CURIOUS GIRDLE OF THE EPHOD, WHICH IS UPON IT, SHALL BE OF THEL SAME, ACC00`p(%D%5%T6%! !ORDING TO THE WORK THEREOF; EVEN OF GOLD, OF BLUE, AND PURPLE, AND SCARLET, AND FINE TWINED LINEN.K# 9 AND THOU SHALT TAKE TWO ONYX STONES, AND GRAVE ON THEM THE NAMES OF THE CHILDREN OF ISRAEL:L# 10 SIX OF THEIR NAMES ON ONE STONE, AND THE OTHER SIX NAMES OF THE REST ON+ THE OTHER STONE, ACCORDING TO THEIR BIRTH.HL# 11 WITH THE WORK OF AN ENGRAVER IN STONE, LIKE THE ENGRAVINGS OF A SIGNET,L SHALT THOU ENGRAVE THE TWO STONES WITH THE NAMES OF THE CHILDREN OF ISRAEL:2 THOU SHALT MAKE THEM TO BE SET IN OUCHES OF GOLD.J# 12 AND THOU SHALT PUT THE TWO STONES UPON THE SHOULDERS OF THE EPHOD FORK STONES OF MEMORIAL UNTO THE CHILDREN OF ISRAEL: AND AARON SHALL BEAR THEIR = NAMES BEFORE THE LORD UPON HIS TWO SHOULDERS FOR A MEMORIAL.E(# 13 AND THOU SHALT MAKE OUCHES OF GOLD;I# 14 AND TWO CHAINS OF PURE GOLD AT THE ENDS; OF WREATHEN WORK SHALT THOUA9 MAKE THEM, AND FASTEN THE WREATHEN CHAINS TO THE OUCHES. M# 15 AND THOU SHALT MAKE THE BREASTPLATE OF JUDGMENT WITH CUNNING WORK; AFTERAK THE WORK OF THE EPHOD THOU SHALT MAKE IT; OF GOLD, OF BLUE, AND OF PURPLE,U> AND OF SCARLET, AND OF FINE TWINED LINEN, SHALT THOU MAKE IT.E# 16 FOURSQUARE IT SHALL BE BEING DOUBLED; A SPAN SHALL BE THE LENGTHD2 THEREOF, AND A SPAN SHALL BE THE BREADTH THEREOF.K# 17 AND THOU SHALT SET IN IT SETTINGS OF STONES, EVEN FOUR ROWS OF STONES: N THE FIRST ROW SHALL BE A SARDIUS, A TOPAZ, AND A CARBUNCLE: THIS SHALL BE THE FIRST ROW.5G# 18 AND THE SECOND ROW SHALL BE AN EMERALD, A SAPPHIRE, AND A DIAMOND.A;# 19 AND THE THIRD ROW A LIGURE, AN AGATE, AND AN AMETHYST.,M# 20 AND THE FOURTH ROW A BERYL, AND AN ONYX, AND A JASPER: THEY SHALL BE SET. IN GOLD IN THEIR INCLOSINGS.EF# 21 AND THE STONES SHALL BE WITH THE NAMES OF THE CHILDREN OF ISRAEL,M TWELVE, ACCORDING TO THEIR NAMES, LIKE THE ENGRAVINGS OF A SIGNET; EVERY ONEU< WITH HIS NAME SHALL THEY BE ACCORDING TO THE TWELVE TRIBES.L# 22 AND THOU SHALT MAKE UPON THE BREASTPLATE CHAINS AT THE ENDS OF WREATHEN WORK OF PURE GOLD.SJ# 23 AND THOU SHALT MAKE UPON THE BREASTPLATE TWO RINGS OF GOLD, AND SHALT6 PUT THE TWO RINGS ON THE TWO ENDS OF THE BREASTPLATE.H# 24 AND THOU SHALT PUT THE TWO WREATHEN CHAINS OF GOLD IN THE TWO RINGS* WHICH ARE ON THE ENDS OF THE BREASTPLATE.K# 25 AND THE OTHER TWO ENDS OF THE TWO WREATHEN CHAINS THOU SHALT FASTEN INOK THE TWO OUCHES, AND PUT THEM ON THE SHOULDERPIECES OF THE EPHOD BEFORE IT.TL# 26 AND THOU SHALT MAKE TWO RINGS OF GOLD, AND THOU SHALT PUT THEM UPON THEK TWO ENDS OF THE BREASTPLATE IN THE BORDER THEREOF, WHICH IS IN THE SIDE OFW THE EPHOD INWARD.K# 27 AND TWO OTHER RINGS OF GOLD THOU SHALT MAKE, AND SHALT PUT THEM ON THE M TWO SIDES OF THE EPHOD UNDERNEATH, TOWARD THE FOREPART THEREOF, OVER AGAINSTNC THE OTHER COUPLING THEREOF, ABOVE THE CURIOUS GIRDLE OF THE EPHOD.EL# 28 AND THEY SHALL BIND THE BREASTPLATE BY THE RINGS THEREOF UNTO THE RINGSM OF THE EPHOD WITH A LACE OF BLUE, THAT IT MAY BE ABOVE THE CURIOUS GIRDLE OF B THE EPHOD, AND THAT THE BREASTPLATE BE NOT LOOSED FROM THE EPHOD.D# 29 AND AARON SHALL BEAR THE NAMES OF THE CHILDREN OF ISRAEL IN THEN BREASTPLATE OF JUDGMENT UPON HIS HEART, WHEN HE GOETH IN UNTO THE HOLY PLACE,, FOR A MEMORIAL BEFORE THE LORD CONTINUALLY.G# 30 AND THOU SHALT PUT IN THE BREASTPLATE OF JUDGMENT THE URIM AND THELJ THUMMIM; AND THEY SHALL BE UPON AARONS HEART, WHEN HE GOETH IN BEFORE THEK LORD: AND AARON SHALL BEAR THE JUDGMENT OF THE CHILDREN OF ISRAEL UPON HISH# HEART BEFORE THE LORD CONTINUALLY. ;# 31 AND THOU SHALT MAKE THE ROBE OF THE EPHOD ALL OF BLUE.AJ# 32 AND THERE SHALL BE AN HOLE IN THE TOP OF IT, IN THE MIDST THEREOF: ITN SHALL HAVE A BINDING OF WOVEN WORK ROUND ABOUT THE HOLE OF IT, AS IT WERE THE+ HOLE OF AN HABERGEON, THAT IT BE NOT RENT.HM# 33 AND BENEATH UPON THE HEM OF IT THOU SHALT MAKE POMEGRANATES OF BLUE, ANDAJ OF PURPLE, AND OF SCARLET, ROUND ABOUT THE HEM THEREOF; AND BELLS OF GOLD BETWEEN THEM ROUND ABOUT:K# 34 A GOLDEN BELL AND A POMEGRANATE, A GOLDEN BELL AND A POMEGRANATE, UPONO! THE HEM OF THE ROBE ROUND ABOUT.AI# 35 AND IT SHALL BE UPON 00`x('<%X>%+%O-%TADATADATAAARON TO MINISTER: AND HIS SOUND SHALL BE HEARDTN WHEN HE GOETH IN UNTO THE HOLY PLACE BEFORE THE LORD, AND WHEN HE COMETH OUT, THAT HE DIE NOT. J# 36 AND THOU SHALT MAKE A PLATE OF PURE GOLD, AND GRAVE UPON IT, LIKE THE. ENGRAVINGS OF A SIGNET, HOLINESS TO THE LORD.I# 37 AND THOU SHALT PUT IT ON A BLUE LACE, THAT IT MAY BE UPON THE MITRE;T- UPON THE FOREFRONT OF THE MITRE IT SHALL BE.AK# 38 AND IT SHALL BE UPON AARONS FOREHEAD, THAT AARON MAY BEAR THE INIQUITYUK OF THE HOLY THINGS, WHICH THE CHILDREN OF ISRAEL SHALL HALLOW IN ALL THEIRBG HOLY GIFTS; AND IT SHALL BE ALWAYS UPON HIS FOREHEAD, THAT THEY MAY BE  ACCEPTED BEFORE THE LORD.M# 39 AND THOU SHALT EMBROIDER THE COAT OF FINE LINEN, AND THOU SHALT MAKE THETC MITRE OF FINE LINEN, AND THOU SHALT MAKE THE GIRDLE OF NEEDLEWORK.LL# 40 AND FOR AARONS SONS THOU SHALT MAKE COATS, AND THOU SHALT MAKE FOR THEMI GIRDLES, AND BONNETS SHALT THOU MAKE FOR THEM, FOR GLORY AND FOR BEAUTY. K# 41 AND THOU SHALT PUT THEM UPON AARON THY BROTHER, AND HIS SONS WITH HIM;EM AND SHALT ANOINT THEM, AND CONSECRATE THEM, AND SANCTIFY THEM, THAT THEY MAYH( MINISTER UNTO ME IN THE PRIESTS OFFICE.K# 42 AND THOU SHALT MAKE THEM LINEN BREECHES TO COVER THEIR NAKEDNESS; FROMT1 THE LOINS EVEN UNTO THE THIGHS THEY SHALL REACH:KL# 43 AND THEY SHALL BE UPON AARON, AND UPON HIS SONS, WHEN THEY COME IN UNTOM THE TABERNACLE OF THE CONGREGATION, OR WHEN THEY COME NEAR UNTO THE ALTAR TOON MINISTER IN THE HOLY PLACE; THAT THEY BEAR NOT INIQUITY, AND DIE: IT SHALL BE4 A STATUTE FOR EVER UNTO HIM AND HIS SEED AFTER HIM. = CHAPTER 29 AI# 1 AND THIS IS THE THING THAT THOU SHALT DO UNTO THEM TO HALLOW THEM, TOM MINISTER UNTO ME IN THE PRIESTS OFFICE: TAKE ONE YOUNG BULLOCK, AND TWO RAMST WITHOUT BLEMISH,TL# 2 AND UNLEAVENED BREAD, AND CAKES UNLEAVENED TEMPERED WITH OIL, AND WAFERSE UNLEAVENED ANOINTED WITH OIL: OF WHEATEN FLOUR SHALT THOU MAKE THEM.HJ# 3 AND THOU SHALT PUT THEM INTO ONE BASKET, AND BRING THEM IN THE BASKET,# WITH THE BULLOCK AND THE TWO RAMS. K# 4 AND AARON AND HIS SONS THOU SHALT BRING UNTO THE DOOR OF THE TABERNACLE 5 OF THE CONGREGATION, AND SHALT WASH THEM WITH WATER.AJ# 5 AND THOU SHALT TAKE THE GARMENTS, AND PUT UPON AARON THE COAT, AND THEM ROBE OF THE EPHOD, AND THE EPHOD, AND THE BREASTPLATE, AND GIRD HIM WITH THEE CURIOUS GIRDLE OF THE EPHOD:AK# 6 AND THOU SHALT PUT THE MITRE UPON HIS HEAD, AND PUT THE HOLY CROWN UPON THE MITRE.SJ# 7 THEN SHALT THOU TAKE THE ANOINTING OIL, AND POUR IT UPON HIS HEAD, AND ANOINT HIM.;# 8 AND THOU SHALT BRING HIS SONS, AND PUT COATS UPON THEM.EJ# 9 AND THOU SHALT GIRD THEM WITH GIRDLES, AARON AND HIS SONS, AND PUT THEH BONNETS ON THEM: AND THE PRIESTS OFFICE SHALL BE THEIRS FOR A PERPETUAL7 STATUTE: AND THOU SHALT CONSECRATE AARON AND HIS SONS.PJ# 10 AND THOU SHALT CAUSE A BULLOCK TO BE BROUGHT BEFORE THE TABERNACLE OFM THE CONGREGATION: AND AARON AND HIS SONS SHALL PUT THEIR HANDS UPON THE HEAD  OF THE BULLOCK.H# 11 AND THOU SHALT KILL THE BULLOCK BEFORE THE LORD, BY THE DOOR OF THE TABERNACLE OF THE CONGREGATION.I# 12 AND THOU SHALT TAKE OF THE BLOOD OF THE BULLOCK, AND PUT IT UPON THEDM HORNS OF THE ALTAR WITH THY FINGER, AND POUR ALL THE BLOOD BESIDE THE BOTTOMS OF THE ALTAR.L# 13 AND THOU SHALT TAKE ALL THE FAT THAT COVERETH THE INWARDS, AND THE CAULM THAT IS ABOVE THE LIVER, AND THE TWO KIDNEYS, AND THE FAT THAT IS UPON THEM,D AND BURN THEM UPON THE ALTAR.I# 14 BUT THE FLESH OF THE BULLOCK, AND HIS SKIN, AND HIS DUNG, SHALT THOUL7 BURN WITH FIRE WITHOUT THE CAMP: IT IS A SIN OFFERING.TI# 15 THOU SHALT ALSO TAKE ONE RAM; AND AARON AND HIS SONS SHALL PUT THEIR HANDS UPON THE HEAD OF THE RAM.M# 16 AND THOU SHALT SLAY THE RAM, AND THOU SHALT TAKE HIS BLOOD, AND SPRINKLE IT ROUND ABOUT UPON THE ALTAR.FK# 17 AND THOU SHALT CUT THE RAM IN PIECES, AND WASH THE INWARDS OF HIM, AND ; HIS LEGS, AND PUT THEM UNTO HIS PIECES, AND UNTO HIS HEAD.UM# 18 AND THOU SHALT BURN THE WHOLE RAM UPON THE ALTAR: IT IS A BURNT OFFERINGSM UNTO THE LORD: IT IS A SWEET SAVOUR, AN OFFERING MADE BY FIRE00`(%D%5%T6%! ! UNTO THE LORD. H# 19 AND THOU SHALT TAKE THE OTHER RAM; AND AARON AND HIS SONS SHALL PUT& THEIR HANDS UPON THE HEAD OF THE RAM.M# 20 THEN SHALT THOU KILL THE RAM, AND TAKE OF HIS BLOOD, AND PUT IT UPON THEUN TIP OF THE RIGHT EAR OF AARON, AND UPON THE TIP OF THE RIGHT EAR OF HIS SONS,N AND UPON THE THUMB OF THEIR RIGHT HAND, AND UPON THE GREAT TOE OF THEIR RIGHT9 FOOT, AND SPRINKLE THE BLOOD UPON THE ALTAR ROUND ABOUT.SH# 21 AND THOU SHALT TAKE OF THE BLOOD THAT IS UPON THE ALTAR, AND OF THEK ANOINTING OIL, AND SPRINKLE IT UPON AARON, AND UPON HIS GARMENTS, AND UPONNF HIS SONS, AND UPON THE GARMENTS OF HIS SONS WITH HIM: AND HE SHALL BEJ HALLOWED, AND HIS GARMENTS, AND HIS SONS, AND HIS SONS GARMENTS WITH HIM.K# 22 ALSO THOU SHALT TAKE OF THE RAM THE FAT AND THE RUMP, AND THE FAT THATDM COVERETH THE INWARDS, AND THE CAUL ABOVE THE LIVER, AND THE TWO KIDNEYS, ANDOF THE FAT THAT IS UPON THEM, AND THE RIGHT SHOULDER; FOR IT IS A RAM OF CONSECRATION:M# 23 AND ONE LOAF OF BREAD, AND ONE CAKE OF OILED BREAD, AND ONE WAFER OUT OFA< THE BASKET OF THE UNLEAVENED BREAD THAT IS BEFORE THE LORD:J# 24 AND THOU SHALT PUT ALL IN THE HANDS OF AARON, AND IN THE HANDS OF HIS? SONS; AND SHALT WAVE THEM FOR A WAVE OFFERING BEFORE THE LORD.SM# 25 AND THOU SHALT RECEIVE THEM OF THEIR HANDS, AND BURN THEM UPON THE ALTARAL FOR A BURNT OFFERING, FOR A SWEET SAVOUR BEFORE THE LORD: IT IS AN OFFERING MADE BY FIRE UNTO THE LORD.J# 26 AND THOU SHALT TAKE THE BREAST OF THE RAM OF AARONS CONSECRATION, ANDG WAVE IT FOR A WAVE OFFERING BEFORE THE LORD: AND IT SHALL BE THY PART.EE# 27 AND THOU SHALT SANCTIFY THE BREAST OF THE WAVE OFFERING, AND THENK SHOULDER OF THE HEAVE OFFERING, WHICH IS WAVED, AND WHICH IS HEAVED UP, OFFJ THE RAM OF THE CONSECRATION, EVEN OF THAT WHICH IS FOR AARON, AND OF THAT WHICH IS FOR HIS SONS:AG# 28 AND IT SHALL BE AARONS AND HIS SONS BY A STATUTE FOR EVER FROM THEFJ CHILDREN OF ISRAEL: FOR IT IS AN HEAVE OFFERING: AND IT SHALL BE AN HEAVEE OFFERING FROM THE CHILDREN OF ISRAEL OF THE SACRIFICE OF THEIR PEACER4 OFFERINGS, EVEN THEIR HEAVE OFFERING UNTO THE LORD.F# 29 AND THE HOLY GARMENTS OF AARON SHALL BE HIS SONS AFTER HIM, TO BE1 ANOINTED THEREIN, AND TO BE CONSECRATED IN THEM.VK# 30 AND THAT SON THAT IS PRIEST IN HIS STEAD SHALL PUT THEM ON SEVEN DAYS,DJ WHEN HE COMETH INTO THE TABERNACLE OF THE CONGREGATION TO MINISTER IN THE HOLY PLACE.M# 31 AND THOU SHALT TAKE THE RAM OF THE CONSECRATION, AND SEETHE HIS FLESH INA THE HOLY PLACE.I# 32 AND AARON AND HIS SONS SHALL EAT THE FLESH OF THE RAM, AND THE BREADRI THAT IS IN THE BASKET BY THE DOOR OF THE TABERNACLE OF THE CONGREGATION.OI# 33 AND THEY SHALL EAT THOSE THINGS WHEREWITH THE ATONEMENT WAS MADE, TONG CONSECRATE AND TO SANCTIFY THEM: BUT A STRANGER SHALL NOT EAT THEREOF,U BECAUSE THEY ARE HOLY.WL# 34 AND IF OUGHT OF THE FLESH OF THE CONSECRATIONS, OR OF THE BREAD, REMAINM UNTO THE MORNING, THEN THOU SHALT BURN THE REMAINDER WITH FIRE: IT SHALL NOTF BE EATEN, BECAUSE IT IS HOLY.I# 35 AND THUS SHALT THOU DO UNTO AARON, AND TO HIS SONS, ACCORDING TO ALLAK THINGS WHICH I HAVE COMMANDED THEE: SEVEN DAYS SHALT THOU CONSECRATE THEM.AD# 36 AND THOU SHALT OFFER EVERY DAY A BULLOCK FOR A SIN OFFERING FORN ATONEMENT: AND THOU SHALT CLEANSE THE ALTAR, WHEN THOU HAST MADE AN ATONEMENT2 FOR IT, AND THOU SHALT ANOINT IT, TO SANCTIFY IT.L# 37 SEVEN DAYS THOU SHALT MAKE AN ATONEMENT FOR THE ALTAR, AND SANCTIFY IT;K AND IT SHALL BE AN ALTAR MOST HOLY: WHATSOEVER TOUCHETH THE ALTAR SHALL BE. HOLY.M# 38 NOW THIS IS THAT WHICH THOU SHALT OFFER UPON THE ALTAR; TWO LAMBS OF THEH# FIRST YEAR DAY BY DAY CONTINUALLY. J# 39 THE ONE LAMB THOU SHALT OFFER IN THE MORNING; AND THE OTHER LAMB THOU SHALT OFFER AT EVEN:M# 40 AND WITH THE ONE LAMB A TENTH DEAL OF FLOUR MINGLED WITH THE FOURTH PARTK OF AN HIN OF BEATEN OIL; AND THE FOURTH PART OF AN HIN OF WINE FOR A DRINKT OFFERING.F# 41 AND THE OTHER LAMB THOU SHALT OFFER AT EVEN, AND SHALT DO THERETOJ ACCORDING TO THE MEAT OFFERING OF THE MORNING, AND ACCORDING TO THE DRINKN OFF00`(`(<%X>%+%O-%TADATADATAERING THEREOF, FOR A SWEET SAVOUR, AN OFFERING MADE BY FIRE UNTO THE LORD.L# 42 THIS SHALL BE A CONTINUAL BURNT OFFERING THROUGHOUT YOUR GENERATIONS ATM THE DOOR OF THE TABERNACLE OF THE CONGREGATION BEFORE THE LORD: WHERE I WILLF$ MEET YOU, TO SPEAK THERE UNTO THEE.J# 43 AND THERE I WILL MEET WITH THE CHILDREN OF ISRAEL, AND THE TABERNACLE! SHALL BE SANCTIFIED BY MY GLORY.MM# 44 AND I WILL SANCTIFY THE TABERNACLE OF THE CONGREGATION, AND THE ALTAR: INM WILL SANCTIFY ALSO BOTH AARON AND HIS SONS, TO MINISTER TO ME IN THE PRIESTSV OFFICE.J# 45 AND I WILL DWELL AMONG THE CHILDREN OF ISRAEL, AND WILL BE THEIR GOD.H# 46 AND THEY SHALL KNOW THAT I AM THE LORD THEIR GOD, THAT BROUGHT THEMK FORTH OUT OF THE LAND OF EGYPT, THAT I MAY DWELL AMONG THEM: I AM THE LORDE THEIR GOD.T = CHAPTER 30 TL# 1 AND THOU SHALT MAKE AN ALTAR TO BURN INCENSE UPON: OF SHITTIM WOOD SHALT THOU MAKE IT.I# 2 A CUBIT SHALL BE THE LENGTH THEREOF, AND A CUBIT THE BREADTH THEREOF;LN FOURSQUARE SHALL IT BE: AND TWO CUBITS SHALL BE THE HEIGHT THEREOF: THE HORNS THEREOF SHALL BE OF THE SAME.L# 3 AND THOU SHALT OVERLAY IT WITH PURE GOLD, THE TOP THEREOF, AND THE SIDESJ THEREOF ROUND ABOUT, AND THE HORNS THEREOF; AND THOU SHALT MAKE UNTO IT A CROWN OF GOLD ROUND ABOUT.ML# 4 AND TWO GOLDEN RINGS SHALT THOU MAKE TO IT UNDER THE CROWN OF IT, BY THEK TWO CORNERS THEREOF, UPON THE TWO SIDES OF IT SHALT THOU MAKE IT; AND THEYH6 SHALL BE FOR PLACES FOR THE STAVES TO BEAR IT WITHAL.I# 5 AND THOU SHALT MAKE THE STAVES OF SHITTIM WOOD, AND OVERLAY THEM WITHT GOLD.C# 6 AND THOU SHALT PUT IT BEFORE THE VAIL THAT IS BY THE ARK OF THEPJ TESTIMONY, BEFORE THE MERCY SEAT THAT IS OVER THE TESTIMONY, WHERE I WILL MEET WITH THEE.E# 7 AND AARON SHALL BURN THEREON SWEET INCENSE EVERY MORNING: WHEN HEN3 DRESSETH THE LAMPS, HE SHALL BURN INCENSE UPON IT.YM# 8 AND WHEN AARON LIGHTETH THE LAMPS AT EVEN, HE SHALL BURN INCENSE UPON IT,EA A PERPETUAL INCENSE BEFORE THE LORD THROUGHOUT YOUR GENERATIONS. L# 9 YE SHALL OFFER NO STRANGE INCENSE THEREON, NOR BURNT SACRIFICE, NOR MEAT8 OFFERING; NEITHER SHALL YE POUR DRINK OFFERING THEREON.J# 10 AND AARON SHALL MAKE AN ATONEMENT UPON THE HORNS OF IT ONCE IN A YEARL WITH THE BLOOD OF THE SIN OFFERING OF ATONEMENTS: ONCE IN THE YEAR SHALL HEM MAKE ATONEMENT UPON IT THROUGHOUT YOUR GENERATIONS: IT IS MOST HOLY UNTO THE  LORD.+# 11 AND THE LORD SPAKE UNTO MOSES, SAYING,UK# 12 WHEN THOU TAKEST THE SUM OF THE CHILDREN OF ISRAEL AFTER THEIR NUMBER,NN THEN SHALL THEY GIVE EVERY MAN A RANSOM FOR HIS SOUL UNTO THE LORD, WHEN THOUN NUMBEREST THEM; THAT THERE BE NO PLAGUE AMONG THEM, WHEN THOU NUMBEREST THEM.E# 13 THIS THEY SHALL GIVE, EVERY ONE THAT PASSETH AMONG THEM THAT AREHH NUMBERED, HALF A SHEKEL AFTER THE SHEKEL OF THE SANCTUARY: (A SHEKEL ISB TWENTY GERAHS:) AN HALF SHEKEL SHALL BE THE OFFERING OF THE LORD.K# 14 EVERY ONE THAT PASSETH AMONG THEM THAT ARE NUMBERED, FROM TWENTY YEARST5 OLD AND ABOVE, SHALL GIVE AN OFFERING UNTO THE LORD.BM# 15 THE RICH SHALL NOT GIVE MORE, AND THE POOR SHALL NOT GIVE LESS THAN HALF M A SHEKEL, WHEN THEY GIVE AN OFFERING UNTO THE LORD, TO MAKE AN ATONEMENT FORT YOUR SOULS.K# 16 AND THOU SHALT TAKE THE ATONEMENT MONEY OF THE CHILDREN OF ISRAEL, ANDLM SHALT APPOINT IT FOR THE SERVICE OF THE TABERNACLE OF THE CONGREGATION; THAT M IT MAY BE A MEMORIAL UNTO THE CHILDREN OF ISRAEL BEFORE THE LORD, TO MAKE ANN ATONEMENT FOR YOUR SOULS.+# 17 AND THE LORD SPAKE UNTO MOSES, SAYING,AJ# 18 THOU SHALT ALSO MAKE A LAVER OF BRASS, AND HIS FOOT ALSO OF BRASS, TON WASH WITHAL: AND THOU SHALT PUT IT BETWEEN THE TABERNACLE OF THE CONGREGATION1 AND THE ALTAR, AND THOU SHALT PUT WATER THEREIN.AJ# 19 FOR AARON AND HIS SONS SHALL WASH THEIR HANDS AND THEIR FEET THEREAT:J# 20 WHEN THEY GO INTO THE TABERNACLE OF THE CONGREGATION, THEY SHALL WASHF WITH WATER, THAT THEY DIE NOT; OR WHEN THEY COME NEAR TO THE ALTAR TO7 MINISTER, TO BURN OFFERING MADE BY FIRE UNTO THE LORD:KM# 21 SO THEY SHALL WASH THEIR HANDS AND THEIR FEET, THAT THEY DIE NOT: AND ITTL SHALL BE A STATUT00`(%D%5%T6%! !E FOR EVER TO THEM, EVEN TO HIM AND TO HIS SEED THROUGHOUT THEIR GENERATIONS.0# 22 MOREOVER THE LORD SPAKE UNTO MOSES, SAYING,J# 23 TAKE THOU ALSO UNTO THEE PRINCIPAL SPICES, OF PURE MYRRH FIVE HUNDREDH SHEKELS, AND OF SWEET CINNAMON HALF SO MUCH, EVEN TWO HUNDRED AND FIFTY= SHEKELS, AND OF SWEET CALAMUS TWO HUNDRED AND FIFTY SHEKELS,HK# 24 AND OF CASSIA FIVE HUNDRED SHEKELS, AFTER THE SHEKEL OF THE SANCTUARY,  AND OF OIL OLIVE AN HIN: I# 25 AND THOU SHALT MAKE IT AN OIL OF HOLY OINTMENT, AN OINTMENT COMPOUND D AFTER THE ART OF THE APOTHECARY: IT SHALL BE AN HOLY ANOINTING OIL.L# 26 AND THOU SHALT ANOINT THE TABERNACLE OF THE CONGREGATION THEREWITH, AND THE ARK OF THE TESTIMONY,L# 27 AND THE TABLE AND ALL HIS VESSELS, AND THE CANDLESTICK AND HIS VESSELS, AND THE ALTAR OF INCENSE,L# 28 AND THE ALTAR OF BURNT OFFERING WITH ALL HIS VESSELS, AND THE LAVER AND HIS FOOT.I# 29 AND THOU SHALT SANCTIFY THEM, THAT THEY MAY BE MOST HOLY: WHATSOEVERT TOUCHETH THEM SHALL BE HOLY.YM# 30 AND THOU SHALT ANOINT AARON AND HIS SONS, AND CONSECRATE THEM, THAT THEY , MAY MINISTER UNTO ME IN THE PRIESTS OFFICE.L# 31 AND THOU SHALT SPEAK UNTO THE CHILDREN OF ISRAEL, SAYING, THIS SHALL BE; AN HOLY ANOINTING OIL UNTO ME THROUGHOUT YOUR GENERATIONS.TL# 32 UPON MANS FLESH SHALL IT NOT BE POURED, NEITHER SHALL YE MAKE ANY OTHERL LIKE IT, AFTER THE COMPOSITION OF IT: IT IS HOLY, AND IT SHALL BE HOLY UNTO YOU.CM# 33 WHOSOEVER COMPOUNDETH ANY LIKE IT, OR WHOSOEVER PUTTETH ANY OF IT UPON AY1 STRANGER, SHALL EVEN BE CUT OFF FROM HIS PEOPLE.AK# 34 AND THE LORD SAID UNTO MOSES, TAKE UNTO THEE SWEET SPICES, STACTE, ANDI ONYCHA, AND GALBANUM; THESE SWEET SPICES WITH PURE FRANKINCENSE: OF EACHE SHALL THERE BE A LIKE WEIGHT:H# 35 AND THOU SHALT MAKE IT A PERFUME, A CONFECTION AFTER THE ART OF THE. APOTHECARY, TEMPERED TOGETHER, PURE AND HOLY:H# 36 AND THOU SHALT BEAT SOME OF IT VERY SMALL, AND PUT OF IT BEFORE THEN TESTIMONY IN THE TABERNACLE OF THE CONGREGATION, WHERE I WILL MEET WITH THEE: IT SHALL BE UNTO YOU MOST HOLY.G# 37 AND AS FOR THE PERFUME WHICH THOU SHALT MAKE, YE SHALL NOT MAKE TO L YOURSELVES ACCORDING TO THE COMPOSITION THEREOF: IT SHALL BE UNTO THEE HOLY FOR THE LORD.M# 38 WHOSOEVER SHALL MAKE LIKE UNTO THAT, TO SMELL THERETO, SHALL EVEN BE CUTN OFF FROM HIS PEOPLE.F = CHAPTER 31 R*# 1 AND THE LORD SPAKE UNTO MOSES, SAYING,J# 2 SEE, I HAVE CALLED BY NAME BEZALEEL THE SON OF URI, THE SON OF HUR, OF THE TRIBE OF JUDAH:C# 3 AND I HAVE FILLED HIM WITH THE SPIRIT OF GOD, IN WISDOM, AND INOC UNDERSTANDING, AND IN KNOWLEDGE, AND IN ALL MANNER OF WORKMANSHIP,HJ# 4 TO DEVISE CUNNING WORKS, TO WORK IN GOLD, AND IN SILVER, AND IN BRASS,L# 5 AND IN CUTTING OF STONES, TO SET THEM, AND IN CARVING OF TIMBER, TO WORK IN ALL MANNER OF WORKMANSHIP.J# 6 AND I, BEHOLD, I HAVE GIVEN WITH HIM AHOLIAB, THE SON OF AHISAMACH, OFL THE TRIBE OF DAN: AND IN THE HEARTS OF ALL THAT ARE WISE HEARTED I HAVE PUT; WISDOM, THAT THEY MAY MAKE ALL THAT I HAVE COMMANDED THEE;IM# 7 THE TABERNACLE OF THE CONGREGATION, AND THE ARK OF THE TESTIMONY, AND THE G MERCY SEAT THAT IS THEREUPON, AND ALL THE FURNITURE OF THE TABERNACLE,OJ# 8 AND THE TABLE AND HIS FURNITURE, AND THE PURE CANDLESTICK WITH ALL HIS% FURNITURE, AND THE ALTAR OF INCENSE, M# 9 AND THE ALTAR OF BURNT OFFERING WITH ALL HIS FURNITURE, AND THE LAVER ANDH HIS FOOT,K# 10 AND THE CLOTHS OF SERVICE, AND THE HOLY GARMENTS FOR AARON THE PRIEST, A AND THE GARMENTS OF HIS SONS, TO MINISTER IN THE PRIESTS OFFICE,HK# 11 AND THE ANOINTING OIL, AND SWEET INCENSE FOR THE HOLY PLACE: ACCORDINGN1 TO ALL THAT I HAVE COMMANDED THEE SHALL THEY DO.F+# 12 AND THE LORD SPAKE UNTO MOSES, SAYING,LL# 13 SPEAK THOU ALSO UNTO THE CHILDREN OF ISRAEL, SAYING, VERILY MY SABBATHSC YE SHALL KEEP: FOR IT IS A SIGN BETWEEN ME AND YOU THROUGHOUT YOURSI GENERATIONS; THAT YE MAY KNOW THAT I AM THE LORD THAT DOTH SANCTIFY YOU. L# 14 YE SHALL KEEP THE SABBATH THEREFORE; FOR IT IS HOLY UNTO YOU: EVERY ONEL THAT DEFILETH IT SHALL SURELY BE PUT TO DEATH: FOR WHOSOEVER DOETH ANY 00`((<%X>%+%O-%TADATADATAWORK; THEREIN, THAT SOUL SHALL BE CUT OFF FROM AMONG HIS PEOPLE.NJ# 15 SIX DAYS MAY WORK BE DONE; BUT IN THE SEVENTH IS THE SABBATH OF REST,H HOLY TO THE LORD: WHOSOEVER DOETH ANY WORK IN THE SABBATH DAY, HE SHALL SURELY BE PUT TO DEATH.L# 16 WHEREFORE THE CHILDREN OF ISRAEL SHALL KEEP THE SABBATH, TO OBSERVE THE@ SABBATH THROUGHOUT THEIR GENERATIONS, FOR A PERPETUAL COVENANT.L# 17 IT IS A SIGN BETWEEN ME AND THE CHILDREN OF ISRAEL FOR EVER: FOR IN SIXK DAYS THE LORD MADE HEAVEN AND EARTH, AND ON THE SEVENTH DAY HE RESTED, ANDL WAS REFRESHED. J# 18 AND HE GAVE UNTO MOSES, WHEN HE HAD MADE AN END OF COMMUNING WITH HIMM UPON MOUNT SINAI, TWO TABLES OF TESTIMONY, TABLES OF STONE, WRITTEN WITH THED FINGER OF GOD.R = CHAPTER 32 EM# 1 AND WHEN THE PEOPLE SAW THAT MOSES DELAYED TO COME DOWN OUT OF THE MOUNT,TK THE PEOPLE GATHERED THEMSELVES TOGETHER UNTO AARON, AND SAID UNTO HIM, UP, L MAKE US GODS, WHICH SHALL GO BEFORE US; FOR AS FOR THIS MOSES, THE MAN THATJ BROUGHT US UP OUT OF THE LAND OF EGYPT, WE WOT NOT WHAT IS BECOME OF HIM.M# 2 AND AARON SAID UNTO THEM, BREAK OFF THE GOLDEN EARRINGS, WHICH ARE IN THEIM EARS OF YOUR WIVES, OF YOUR SONS, AND OF YOUR DAUGHTERS, AND BRING THEM UNTOT ME.H# 3 AND ALL THE PEOPLE BRAKE OFF THE GOLDEN EARRINGS WHICH WERE IN THEIR# EARS, AND BROUGHT THEM UNTO AARON.TM# 4 AND HE RECEIVED THEM AT THEIR HAND, AND FASHIONED IT WITH A GRAVING TOOL, H AFTER HE HAD MADE IT A MOLTEN CALF: AND THEY SAID, THESE BE THY GODS, O8 ISRAEL, WHICH BROUGHT THEE UP OUT OF THE LAND OF EGYPT.F# 5 AND WHEN AARON SAW IT, HE BUILT AN ALTAR BEFORE IT; AND AARON MADE: PROCLAMATION, AND SAID, TO MORROW IS A FEAST TO THE LORD.J# 6 AND THEY ROSE UP EARLY ON THE MORROW, AND OFFERED BURNT OFFERINGS, ANDJ BROUGHT PEACE OFFERINGS; AND THE PEOPLE SAT DOWN TO EAT AND TO DRINK, AND ROSE UP TO PLAY. J# 7 AND THE LORD SAID UNTO MOSES, GO, GET THEE DOWN; FOR THY PEOPLE, WHICHE THOU BROUGHTEST OUT OF THE LAND OF EGYPT, HAVE CORRUPTED THEMSELVES:,I# 8 THEY HAVE TURNED ASIDE QUICKLY OUT OF THE WAY WHICH I COMMANDED THEM:AD THEY HAVE MADE THEM A MOLTEN CALF, AND HAVE WORSHIPPED IT, AND HAVEH SACRIFICED THEREUNTO, AND SAID, THESE BE THY GODS, O ISRAEL, WHICH HAVE* BROUGHT THEE UP OUT OF THE LAND OF EGYPT.M# 9 AND THE LORD SAID UNTO MOSES, I HAVE SEEN THIS PEOPLE, AND, BEHOLD, IT ISD A STIFFNECKED PEOPLE:L# 10 NOW THEREFORE LET ME ALONE, THAT MY WRATH MAY WAX HOT AGAINST THEM, ANDA THAT I MAY CONSUME THEM: AND I WILL MAKE OF THEE A GREAT NATION.L# 11 AND MOSES BESOUGHT THE LORD HIS GOD, AND SAID, LORD, WHY DOTH THY WRATHM WAX HOT AGAINST THY PEOPLE, WHICH THOU HAST BROUGHT FORTH OUT OF THE LAND OF 0 EGYPT WITH GREAT POWER, AND WITH A MIGHTY HAND?M# 12 WHEREFORE SHOULD THE EGYPTIANS SPEAK, AND SAY, FOR MISCHIEF DID HE BRINGNN THEM OUT, TO SLAY THEM IN THE MOUNTAINS, AND TO CONSUME THEM FROM THE FACE OFK THE EARTH? TURN FROM THY FIERCE WRATH, AND REPENT OF THIS EVIL AGAINST THY PEOPLE.L# 13 REMEMBER ABRAHAM, ISAAC, AND ISRAEL, THY SERVANTS, TO WHOM THOU SWARESTJ BY THINE OWN SELF, AND SAIDST UNTO THEM, I WILL MULTIPLY YOUR SEED AS THEJ STARS OF HEAVEN, AND ALL THIS LAND THAT I HAVE SPOKEN OF WILL I GIVE UNTO/ YOUR SEED, AND THEY SHALL INHERIT IT FOR EVER.EF# 14 AND THE LORD REPENTED OF THE EVIL WHICH HE THOUGHT TO DO UNTO HIS PEOPLE.J# 15 AND MOSES TURNED, AND WENT DOWN FROM THE MOUNT, AND THE TWO TABLES OFM THE TESTIMONY WERE IN HIS HAND: THE TABLES WERE WRITTEN ON BOTH THEIR SIDES;34 ON THE ONE SIDE AND ON THE OTHER WERE THEY WRITTEN.L# 16 AND THE TABLES WERE THE WORK OF GOD, AND THE WRITING WAS THE WRITING OF GOD, GRAVEN UPON THE TABLES.VK# 17 AND WHEN JOSHUA HEARD THE NOISE OF THE PEOPLE AS THEY SHOUTED, HE SAID 1 UNTO MOSES, THERE IS A NOISE OF WAR IN THE CAMP. M# 18 AND HE SAID, IT IS NOT THE VOICE OF THEM THAT SHOUT FOR MASTERY, NEITHERTK IS IT THE VOICE OF THEM THAT CRY FOR BEING OVERCOME: BUT THE NOISE OF THEMR THAT SING DO I HEAR.EL# 19 AND IT CAME TO PASS, AS SOON AS HE CAME NIGH UNTO THE CAMP, THAT HE SAWM THE CALF, AND THE DANCING: AND MOSES ANGER WAXE00`(%D%5%T6%! !D HOT, AND HE CAST THE TABLES 4 OUT OF HIS HANDS, AND BRAKE THEM BENEATH THE MOUNT.L# 20 AND HE TOOK THE CALF WHICH THEY HAD MADE, AND BURNT IT IN THE FIRE, ANDM GROUND IT TO POWDER, AND STRAWED IT UPON THE WATER, AND MADE THE CHILDREN OF  ISRAEL DRINK OF IT.I# 21 AND MOSES SAID UNTO AARON, WHAT DID THIS PEOPLE UNTO THEE, THAT THOUU' HAST BROUGHT SO GREAT A SIN UPON THEM?RK# 22 AND AARON SAID, LET NOT THE ANGER OF MY LORD WAX HOT: THOU KNOWEST THES' PEOPLE, THAT THEY ARE SET ON MISCHIEF. J# 23 FOR THEY SAID UNTO ME, MAKE US GODS, WHICH SHALL GO BEFORE US: FOR ASL FOR THIS MOSES, THE MAN THAT BROUGHT US UP OUT OF THE LAND OF EGYPT, WE WOT NOT WHAT IS BECOME OF HIM.TM# 24 AND I SAID UNTO THEM, WHOSOEVER HATH ANY GOLD, LET THEM BREAK IT OFF. SORM THEY GAVE IT ME: THEN I CAST IT INTO THE FIRE, AND THERE CAME OUT THIS CALF.TL# 25 AND WHEN MOSES SAW THAT THE PEOPLE WERE NAKED; (FOR AARON HAD MADE THEM- NAKED UNTO THEIR SHAME AMONG THEIR ENEMIES:)SL# 26 THEN MOSES STOOD IN THE GATE OF THE CAMP, AND SAID, WHO IS ON THE LORDSI SIDE? LET HIM COME UNTO ME. AND ALL THE SONS OF LEVI GATHERED THEMSELVESU TOGETHER UNTO HIM.LL# 27 AND HE SAID UNTO THEM, THUS SAITH THE LORD GOD OF ISRAEL, PUT EVERY MANJ HIS SWORD BY HIS SIDE, AND GO IN AND OUT FROM GATE TO GATE THROUGHOUT THEM CAMP, AND SLAY EVERY MAN HIS BROTHER, AND EVERY MAN HIS COMPANION, AND EVERYA MAN HIS NEIGHBOUR.EK# 28 AND THE CHILDREN OF LEVI DID ACCORDING TO THE WORD OF MOSES: AND THERE:6 FELL OF THE PEOPLE THAT DAY ABOUT THREE THOUSAND MEN.L# 29 FOR MOSES HAD SAID, CONSECRATE YOURSELVES TODAY TO THE LORD, EVEN EVERYF MAN UPON HIS SON, AND UPON HIS BROTHER; THAT HE MAY BESTOW UPON YOU A BLESSING THIS DAY. K# 30 AND IT CAME TO PASS ON THE MORROW, THAT MOSES SAID UNTO THE PEOPLE, YEGL HAVE SINNED A GREAT SIN: AND NOW I WILL GO UP UNTO THE LORD; PERADVENTURE I& SHALL MAKE AN ATONEMENT FOR YOUR SIN.L# 31 AND MOSES RETURNED UNTO THE LORD, AND SAID, OH, THIS PEOPLE HAVE SINNED. A GREAT SIN, AND HAVE MADE THEM GODS OF GOLD.K# 32 YET NOW, IF THOU WILT FORGIVE THEIR SIN--; AND IF NOT, BLOT ME, I PRAYH/ THEE, OUT OF THY BOOK WHICH THOU HAST WRITTEN.IM# 33 AND THE LORD SAID UNTO MOSES, WHOSOEVER HATH SINNED AGAINST ME, HIM WILLE I BLOT OUT OF MY BOOK.HL# 34 THEREFORE NOW GO, LEAD THE PEOPLE UNTO THE PLACE OF WHICH I HAVE SPOKENL UNTO THEE: BEHOLD, MINE ANGEL SHALL GO BEFORE THEE: NEVERTHELESS IN THE DAY/ WHEN I VISIT I WILL VISIT THEIR SIN UPON THEM.,M# 35 AND THE LORD PLAGUED THE PEOPLE, BECAUSE THEY MADE THE CALF, WHICH AARONY MADE. = CHAPTER 33 RN# 1 AND THE LORD SAID UNTO MOSES, DEPART, AND GO UP HENCE, THOU AND THE PEOPLEK WHICH THOU HAST BROUGHT UP OUT OF THE LAND OF EGYPT, UNTO THE LAND WHICH IAN SWARE UNTO ABRAHAM, TO ISAAC, AND TO JACOB, SAYING, UNTO THY SEED WILL I GIVE IT:M# 2 AND I WILL SEND AN ANGEL BEFORE THEE; AND I WILL DRIVE OUT THE CANAANITE,EE THE AMORITE, AND THE HITTITE, AND THE PERIZZITE, THE HIVITE, AND THEN JEBUSITE:H# 3 UNTO A LAND FLOWING WITH MILK AND HONEY: FOR I WILL NOT GO UP IN THEM MIDST OF THEE; FOR THOU ART A STIFFNECKED PEOPLE: LEST I CONSUME THEE IN THEO WAY.CJ# 4 AND WHEN THE PEOPLE HEARD THESE EVIL TIDINGS, THEY MOURNED: AND NO MAN DID PUT ON HIM HIS ORNAMENTS.M# 5 FOR THE LORD HAD SAID UNTO MOSES, SAY UNTO THE CHILDREN OF ISRAEL, YE AREM A STIFFNECKED PEOPLE: I WILL COME UP INTO THE MIDST OF THEE IN A MOMENT, ANDM CONSUME THEE: THEREFORE NOW PUT OFF THY ORNAMENTS FROM THEE, THAT I MAY KNOWT WHAT TO DO UNTO THEE.L# 6 AND THE CHILDREN OF ISRAEL STRIPPED THEMSELVES OF THEIR ORNAMENTS BY THE MOUNT HOREB.KL# 7 AND MOSES TOOK THE TABERNACLE, AND PITCHED IT WITHOUT THE CAMP, AFAR OFFC FROM THE CAMP, AND CALLED IT THE TABERNACLE OF THEITHOUT THE CAMP.AJ# 8 AND IT CAME TO PASS, WHEN MOSES WENT OUT UNTO THE TABERNACLE, THAT ALLK THE PEOPLE ROSE UP, AND STOOD EVERY MAN AT HIS TENT DOOR, AND LOOKED AFTER . MOSES, UNTIL HE WAS GONE INTO THE TABERNACLE.I# 9 AND IT CAME TO PASS, AS MOSES ENTERED INTO THE TABERNACLE, THE CLOUDYNH PILLAR DESCENDED, AND STOOD AT THE DOOR OF THE TABERNAC00`((<%X>%+%O-%TADATADATALE, AND THE LORD TALKED WITH MOSES. K# 10 AND ALL THE PEOPLE SAW THE CLOUDY PILLAR STAND AT THE TABERNACLE DOOR:HG AND ALL THE PEOPLE ROSE UP AND WORSHIPPED, EVERY MAN IN HIS TENT DOOR.CK# 11 AND THE LORD SPAKE UNTO MOSES FACE TO FACE, AS A MAN SPEAKETH UNTO HISON FRIEND. AND HE TURNED AGAIN INTO THE CAMP: BUT HIS SERVANT JOSHUA, THE SON OF6 NUN, A YOUNG MAN, DEPARTED NOT OUT OF THE TABERNACLE.J# 12 AND MOSES SAID UNTO THE LORD, SEE, THOU SAYEST UNTO ME, BRING UP THISL PEOPLE: AND THOU HAST NOT LET ME KNOW WHOM THOU WILT SEND WITH ME. YET THOUL HAST SAID, I KNOW THEE BY NAME, AND THOU HAST ALSO FOUND GRACE IN MY SIGHT.L# 13 NOW THEREFORE, I PRAY THEE, IF I HAVE FOUND GRACE IN THY SIGHT, SHEW MEK NOW THY WAY, THAT I MAY KNOW THEE, THAT I MAY FIND GRACE IN THY SIGHT: ANDA) CONSIDER THAT THIS NATION IS THY PEOPLE.EL# 14 AND HE SAID, MY PRESENCE SHALL GO WITH THEE, AND I WILL GIVE THEE REST.J# 15 AND HE SAID UNTO HIM, IF THY PRESENCE GO NOT WITH ME, CARRY US NOT UP HENCE.LH# 16 FOR WHEREIN SHALL IT BE KNOWN HERE THAT I AND THY PEOPLE HAVE FOUNDI GRACE IN THY SIGHT? IS IT NOT IN THAT THOU GOEST WITH US? SO SHALL WE BEK SEPARATED, I AND THY PEOPLE, FROM ALL THE PEOPLE THAT ARE UPON THE FACE OF THE EARTH. K# 17 AND THE LORD SAID UNTO MOSES, I WILL DO THIS THING ALSO THAT THOU HASTTH SPOKEN: FOR THOU HAST FOUND GRACE IN MY SIGHT, AND I KNOW THEE BY NAME.4# 18 AND HE SAID, I BESEECH THEE, SHEW ME THY GLORY.J# 19 AND HE SAID, I WILL MAKE ALL MY GOODNESS PASS BEFORE THEE, AND I WILLJ PROCLAIM THE NAME OF THE LORD BEFORE THEE; AND WILL BE GRACIOUS TO WHOM IA WILL BE GRACIOUS, AND WILL SHEW MERCY ON WHOM I WILL SHEW MERCY.PL# 20 AND HE SAID, THOU CANST NOT SEE MY FACE: FOR THERE SHALL NO MAN SEE ME, AND LIVE.L# 21 AND THE LORD SAID, BEHOLD, THERE IS A PLACE BY ME, AND THOU SHALT STAND UPON A ROCK: J# 22 AND IT SHALL COME TO PASS, WHILE MY GLORY PASSETH BY, THAT I WILL PUTK THEE IN A CLIFT OF THE ROCK, AND WILL COVER THEE WITH MY HAND WHILE I PASSS BY:M# 23 AND I WILL TAKE AWAY MINE HAND, AND THOU SHALT SEE MY BACK PARTS: BUT MYB FACE SHALL NOT BE SEEN. = CHAPTER 34 AL# 1 AND THE LORD SAID UNTO MOSES, HEW THEE TWO TABLES OF STONE LIKE UNTO THEK FIRST: AND I WILL WRITE UPON THESE TABLES THE WORDS THAT WERE IN THE FIRST  TABLES, WHICH THOU BRAKEST.M# 2 AND BE READY IN THE MORNING, AND COME UP IN THE MORNING UNTO MOUNT SINAI,H9 AND PRESENT THYSELF THERE TO ME IN THE TOP OF THE MOUNT.OC# 3 AND NO MAN SHALL COME UP WITH THEE, NEITHER LET ANY MAN BE SEEN3L THROUGHOUT ALL THE MOUNT; NEITHER LET THE FLOCKS NOR HERDS FEED BEFORE THAT MOUNT. K# 4 AND HE HEWED TWO TABLES OF STONE LIKE UNTO THE FIRST; AND MOSES ROSE UPTN EARLY IN THE MORNING, AND WENT UP UNTO MOUNT SINAI, AS THE LORD HAD COMMANDED3 HIM, AND TOOK IN HIS HAND THE TWO TABLES OF STONE.SF# 5 AND THE LORD DESCENDED IN THE CLOUD, AND STOOD WITH HIM THERE, AND! PROCLAIMED THE NAME OF THE LORD.EI# 6 AND THE LORD PASSED BY BEFORE HIM, AND PROCLAIMED, THE LORD, THE LORD H GOD, MERCIFUL AND GRACIOUS, LONGSUFFERING, AND ABUNDANT IN GOODNESS AND TRUTH, I# 7 KEEPING MERCY FOR THOUSANDS, FORGIVING INIQUITY AND TRANSGRESSION AND N SIN, AND THAT WILL BY NO MEANS CLEAR THE GUILTY; VISITING THE INIQUITY OF THEK FATHERS UPON THE CHILDREN, AND UPON THE CHILDRENS CHILDREN, UNTO THE THIRD  AND TO THE FOURTH GENERATION.B# 8 AND MOSES MADE HASTE, AND BOWED HIS HEAD TOWARD THE EARTH, AND WORSHIPPED.M# 9 AND HE SAID, IF NOW I HAVE FOUND GRACE IN THY SIGHT, O LORD, LET MY LORD, I I PRAY THEE, GO AMONG US; FOR IT IS A STIFFNECKED PEOPLE; AND PARDON OUR9 INIQUITY AND OUR SIN, AND TAKE US FOR THINE INHERITANCE.TL# 10 AND HE SAID, BEHOLD, I MAKE A COVENANT: BEFORE ALL THY PEOPLE I WILL DOM MARVELS, SUCH AS HAVE NOT BEEN DONE IN ALL THE EARTH, NOR IN ANY NATION: ANDCN ALL THE PEOPLE AMONG WHICH THOU ART SHALL SEE THE WORK OF THE LORD: FOR IT IS+ A TERRIBLE THING THAT I WILL DO WITH THEE.I# 11 OBSERVE THOU THAT WHICH I COMMAND THEE THIS DAY: BEHOLD, I DRIVE OUTRE BEFORE THEE THE AMORITE, AND THE CANAANITE, AND THE HITTITE, AND THEO-00`(%D%5%T6%! ! PERIZZITE, AND THE HIVITE, AND THE JEBUSITE.DL# 12 TAKE HEED TO THYSELF, LEST THOU MAKE A COVENANT WITH THE INHABITANTS OFJ THE LAND WHITHER THOU GOEST, LEST IT BE FOR A SNARE IN THE MIDST OF THEE:H# 13 BUT YE SHALL DESTROY THEIR ALTARS, BREAK THEIR IMAGES, AND CUT DOWN THEIR GROVES:E# 14 FOR THOU SHALT WORSHIP NO OTHER GOD: FOR THE LORD, WHOSE NAME IS JEALOUS, IS A JEALOUS GOD:HL# 15 LEST THOU MAKE A COVENANT WITH THE INHABITANTS OF THE LAND, AND THEY GOK A WHORING AFTER THEIR GODS, AND DO SACRIFICE UNTO THEIR GODS, AND ONE CALL % THEE, AND THOU EAT OF HIS SACRIFICE;LM# 16 AND THOU TAKE OF THEIR DAUGHTERS UNTO THY SONS, AND THEIR DAUGHTERS GO A K WHORING AFTER THEIR GODS, AND MAKE THY SONS GO A WHORING AFTER THEIR GODS. )# 17 THOU SHALT MAKE THEE NO MOLTEN GODS.TM# 18 THE FEAST OF UNLEAVENED BREAD SHALT THOU KEEP. SEVEN DAYS THOU SHALT EATEM UNLEAVENED BREAD, AS I COMMANDED THEE, IN THE TIME OF THE MONTH ABIB: FOR INA+ THE MONTH ABIB THOU CAMEST OUT FROM EGYPT.AG# 19 ALL THAT OPENETH THE MATRIX IS MINE; AND EVERY FIRSTLING AMONG THYA+ CATTLE, WHETHER OX OR SHEEP, THAT IS MALE. K# 20 BUT THE FIRSTLING OF AN ASS THOU SHALT REDEEM WITH A LAMB: AND IF THOUTN REDEEM HIM NOT, THEN SHALT THOU BREAK HIS NECK. ALL THE FIRSTBORN OF THY SONS: THOU SHALT REDEEM. AND NONE SHALL APPEAR BEFORE ME EMPTY.I# 21 SIX DAYS THOU SHALT WORK, BUT ON THE SEVENTH DAY THOU SHALT REST: INO, EARING TIME AND IN HARVEST THOU SHALT REST.K# 22 AND THOU SHALT OBSERVE THE FEAST OF WEEKS, OF THE FIRSTFRUITS OF WHEATH8 HARVEST, AND THE FEAST OF INGATHERING AT THE YEARS END.I# 23 THRICE IN THE YEAR SHALL ALL YOUR MENCHILDREN APPEAR BEFORE THE LORD  GOD, THE GOD OF ISRAEL.J# 24 FOR I WILL CAST OUT THE NATIONS BEFORE THEE, AND ENLARGE THY BORDERS:N NEITHER SHALL ANY MAN DESIRE THY LAND, WHEN THOU SHALT GO UP TO APPEAR BEFORE% THE LORD THY GOD THRICE IN THE YEAR. H# 25 THOU SHALT NOT OFFER THE BLOOD OF MY SACRIFICE WITH LEAVEN; NEITHERK SHALL THE SACRIFICE OF THE FEAST OF THE PASSOVER BE LEFT UNTO THE MORNING.HM# 26 THE FIRST OF THE FIRSTFRUITS OF THY LAND THOU SHALT BRING UNTO THE HOUSETF OF THE LORD THY GOD. THOU SHALT NOT SEETHE A KID IN HIS MOTHERS MILK.H# 27 AND THE LORD SAID UNTO MOSES, WRITE THOU THESE WORDS: FOR AFTER THEG TENOR OF THESE WORDS I HAVE MADE A COVENANT WITH THEE AND WITH ISRAEL.OG# 28 AND HE WAS THERE WITH THE LORD FORTY DAYS AND FORTY NIGHTS; HE DIDHN NEITHER EAT BREAD, NOR DRINK WATER. AND HE WROTE UPON THE TABLES THE WORDS OF$ THE COVENANT, THE TEN COMMANDMENTS.L# 29 AND IT CAME TO PASS, WHEN MOSES CAME DOWN FROM MOUNT SINAI WITH THE TWOJ TABLES OF TESTIMONY IN MOSES HAND, WHEN HE CAME DOWN FROM THE MOUNT, THATI MOSES WIST NOT THAT THE SKIN OF HIS FACE SHONE WHILE HE TALKED WITH HIM.DI# 30 AND WHEN AARON AND ALL THE CHILDREN OF ISRAEL SAW MOSES, BEHOLD, THED? SKIN OF HIS FACE SHONE; AND THEY WERE AFRAID TO COME NIGH HIM.DD# 31 AND MOSES CALLED UNTO THEM; AND AARON AND ALL THE RULERS OF THE< CONGREGATION RETURNED UNTO HIM: AND MOSES TALKED WITH THEM.L# 32 AND AFTERWARD ALL THE CHILDREN OF ISRAEL CAME NIGH: AND HE GAVE THEM INB COMMANDMENT ALL THAT THE LORD HAD SPOKEN WITH HIM IN MOUNT SINAI.K# 33 AND TILL MOSES HAD DONE SPEAKING WITH THEM, HE PUT A VAIL ON HIS FACE.LJ# 34 BUT WHEN MOSES WENT IN BEFORE THE LORD TO SPEAK WITH HIM, HE TOOK THEM VAIL OFF, UNTIL HE CAME OUT. AND HE CAME OUT, AND SPAKE UNTO THE CHILDREN OFD$ ISRAEL THAT WHICH HE WAS COMMANDED.M# 35 AND THE CHILDREN OF ISRAEL SAW THE FACE OF MOSES, THAT THE SKIN OF MOSESLL FACE SHONE: AND MOSES PUT THE VAIL UPON HIS FACE AGAIN, UNTIL HE WENT IN TO SPEAK WITH HIM. = CHAPTER 35 TE# 1 AND MOSES GATHERED ALL THE CONGREGATION OF THE CHILDREN OF ISRAELAF TOGETHER, AND SAID UNTO THEM, THESE ARE THE WORDS WHICH THE LORD HATH# COMMANDED, THAT YE SHOULD DO THEM.WM# 2 SIX DAYS SHALL WORK BE DONE, BUT ON THE SEVENTH DAY THERE SHALL BE TO YOUUI AN HOLY DAY, A SABBATH OF REST TO THE LORD: WHOSOEVER DOETH WORK THEREINI SHALL BE PUT TO DEATH.AM# 3 YE SHALL KINDLE NO FIRE THROUGHOUT YOUR HABITATIONS UPON THE SABBATH DAY.HH# 00`((<%X>%+%O-%TADATADATA4 AND MOSES SPAKE UNTO ALL THE CONGREGATION OF THE CHILDREN OF ISRAEL,< SAYING, THIS IS THE THING WHICH THE LORD COMMANDED, SAYING,G# 5 TAKE YE FROM AMONG YOU AN OFFERING UNTO THE LORD: WHOSOEVER IS OF AAL WILLING HEART, LET HIM BRING IT, AN OFFERING OF THE LORD; GOLD, AND SILVER, AND BRASS,TF# 6 AND BLUE, AND PURPLE, AND SCARLET, AND FINE LINEN, AND GOATS HAIR,A# 7 AND RAMS SKINS DYED RED, AND BADGERS SKINS, AND SHITTIM WOOD,SJ# 8 AND OIL FOR THE LIGHT, AND SPICES FOR ANOINTING OIL, AND FOR THE SWEET INCENSE,PD# 9 AND ONYX STONES, AND STONES TO BE SET FOR THE EPHOD, AND FOR THE BREASTPLATE.WL# 10 AND EVERY WISE HEARTED AMONG YOU SHALL COME, AND MAKE ALL THAT THE LORD HATH COMMANDED;L# 11 THE TABERNACLE, HIS TENT, AND HIS COVERING, HIS TACHES, AND HIS BOARDS,( HIS BARS, HIS PILLARS, AND HIS SOCKETS,J# 12 THE ARK, AND THE STAVES THEREOF, WITH THE MERCY SEAT, AND THE VAIL OF THE COVERING,G# 13 THE TABLE, AND HIS STAVES, AND ALL HIS VESSELS, AND THE SHEWBREAD, J# 14 THE CANDLESTICK ALSO FOR THE LIGHT, AND HIS FURNITURE, AND HIS LAMPS, WITH THE OIL FOR THE LIGHT,J# 15 AND THE INCENSE ALTAR, AND HIS STAVES, AND THE ANOINTING OIL, AND THEF SWEET INCENSE, AND THE HANGING FOR THE DOOR AT THE ENTERING IN OF THE TABERNACLE,L# 16 THE ALTAR OF BURNT OFFERING, WITH HIS BRASEN GRATE, HIS STAVES, AND ALL% HIS VESSELS, THE LAVER AND HIS FOOT, G# 17 THE HANGINGS OF THE COURT, HIS PILLARS, AND THEIR SOCKETS, AND THE # HANGING FOR THE DOOR OF THE COURT,TL# 18 THE PINS OF THE TABERNACLE, AND THE PINS OF THE COURT, AND THEIR CORDS,E# 19 THE CLOTHS OF SERVICE, TO DO SERVICE IN THE HOLY PLACE, THE HOLY L GARMENTS FOR AARON THE PRIEST, AND THE GARMENTS OF HIS SONS, TO MINISTER IN THE PRIESTS OFFICE.I# 20 AND ALL THE CONGREGATION OF THE CHILDREN OF ISRAEL DEPARTED FROM THES PRESENCE OF MOSES.AL# 21 AND THEY CAME, EVERY ONE WHOSE HEART STIRRED HIM UP, AND EVERY ONE WHOML HIS SPIRIT MADE WILLING, AND THEY BROUGHT THE LORDS OFFERING TO THE WORK OFN THE TABERNACLE OF THE CONGREGATION, AND FOR ALL HIS SERVICE, AND FOR THE HOLY GARMENTS.L# 22 AND THEY CAME, BOTH MEN AND WOMEN, AS MANY AS WERE WILLING HEARTED, ANDM BROUGHT BRACELETS, AND EARRINGS, AND RINGS, AND TABLETS, ALL JEWELS OF GOLD:SF AND EVERY MAN THAT OFFERED OFFERED AN OFFERING OF GOLD UNTO THE LORD.J# 23 AND EVERY MAN, WITH WHOM WAS FOUND BLUE, AND PURPLE, AND SCARLET, ANDN FINE LINEN, AND GOATS HAIR, AND RED SKINS OF RAMS, AND BADGERS SKINS, BROUGHT THEM.I# 24 EVERY ONE THAT DID OFFER AN OFFERING OF SILVER AND BRASS BROUGHT THELM LORDS OFFERING: AND EVERY MAN, WITH WHOM WAS FOUND SHITTIM WOOD FOR ANY WORKM OF THE SERVICE, BROUGHT IT.L# 25 AND ALL THE WOMEN THAT WERE WISE HEARTED DID SPIN WITH THEIR HANDS, ANDF BROUGHT THAT WHICH THEY HAD SPUN, BOTH OF BLUE, AND OF PURPLE, AND OF SCARLET, AND OF FINE LINEN.M# 26 AND ALL THE WOMEN WHOSE HEART STIRRED THEM UP IN WISDOM SPUN GOATS HAIR.AM# 27 AND THE RULERS BROUGHT ONYX STONES, AND STONES TO BE SET, FOR THE EPHOD,O AND FOR THE BREASTPLATE;NM# 28 AND SPICE, AND OIL FOR THE LIGHT, AND FOR THE ANOINTING OIL, AND FOR THEA SWEET INCENSE.OK# 29 THE CHILDREN OF ISRAEL BROUGHT A WILLING OFFERING UNTO THE LORD, EVERYEN MAN AND WOMAN, WHOSE HEART MADE THEM WILLING TO BRING FOR ALL MANNER OF WORK,> WHICH THE LORD HAD COMMANDED TO BE MADE BY THE HAND OF MOSES.M# 30 AND MOSES SAID UNTO THE CHILDREN OF ISRAEL, SEE, THE LORD HATH CALLED BYAE NAME BEZALEEL THE SON OF URI, THE SON OF HUR, OF THE TRIBE OF JUDAH;RA# 31 AND HE HATH FILLED HIM WITH THE SPIRIT OF GOD, IN WISDOM, INOC UNDERSTANDING, AND IN KNOWLEDGE, AND IN ALL MANNER OF WORKMANSHIP;OH# 32 AND TO DEVISE CURIOUS WORKS, TO WORK IN GOLD, AND IN SILVER, AND IN BRASS,NJ# 33 AND IN THE CUTTING OF STONES, TO SET THEM, AND IN CARVING OF WOOD, TO! MAKE ANY MANNER OF CUNNING WORK. J# 34 AND HE HATH PUT IN HIS HEART THAT HE MAY TEACH, BOTH HE, AND AHOLIAB,+ THE SON OF AHISAMACH, OF THE TRIBE OF DAN.LM# 35 THEM HATH HE FILLED WITH WISDOM OF HEART, TO WORK ALL MANNER OF WORK, OFEK THE ENGRAVER, AND OF THE CUNNING WORKMAN, AND OF 00`(%D%5%T6%! !THE EMBROIDERER, IN BLUE,EN AND IN PURPLE, IN SCARLET, AND IN FINE LINEN, AND OF THE WEAVER, EVEN OF THEM9 THAT DO ANY WORK, AND OF THOSE THAT DEVISE CUNNING WORK.U = CHAPTER 36 ,N# 1 THEN WROUGHT BEZALEEL AND AHOLIAB, AND EVERY WISE HEARTED MAN, IN WHOM THEM LORD PUT WISDOM AND UNDERSTANDING TO KNOW HOW TO WORK ALL MANNER OF WORK FORSL THE SERVICE OF THE SANCTUARY, ACCORDING TO ALL THAT THE LORD HAD COMMANDED.I# 2 AND MOSES CALLED BEZALEEL AND AHOLIAB, AND EVERY WISE HEARTED MAN, IN L WHOSE HEART THE LORD HAD PUT WISDOM, EVEN EVERY ONE WHOSE HEART STIRRED HIM# UP TO COME UNTO THE WORK TO DO IT:OM# 3 AND THEY RECEIVED OF MOSES ALL THE OFFERING, WHICH THE CHILDREN OF ISRAEL6M HAD BROUGHT FOR THE WORK OF THE SERVICE OF THE SANCTUARY, TO MAKE IT WITHAL.T< AND THEY BROUGHT YET UNTO HIM FREE OFFERINGS EVERY MORNING.J# 4 AND ALL THE WISE MEN, THAT WROUGHT ALL THE WORK OF THE SANCTUARY, CAME) EVERY MAN FROM HIS WORK WHICH THEY MADE;DM# 5 AND THEY SPAKE UNTO MOSES, SAYING, THE PEOPLE BRING MUCH MORE THAN ENOUGHA? FOR THE SERVICE OF THE WORK, WHICH THE LORD COMMANDED TO MAKE. C# 6 AND MOSES GAVE COMMANDMENT, AND THEY CAUSED IT TO BE PROCLAIMEDRN THROUGHOUT THE CAMP, SAYING, LET NEITHER MAN NOR WOMAN MAKE ANY MORE WORK FORL THE OFFERING OF THE SANCTUARY. SO THE PEOPLE WERE RESTRAINED FROM BRINGING.J# 7 FOR THE STUFF THEY HAD WAS SUFFICIENT FOR ALL THE WORK TO MAKE IT, AND TOO MUCH.F# 8 AND EVERY WISE HEARTED MAN AMONG THEM THAT WROUGHT THE WORK OF THEM TABERNACLE MADE TEN CURTAINS OF FINE TWINED LINEN, AND BLUE, AND PURPLE, AND 6 SCARLET: WITH CHERUBIMS OF CUNNING WORK MADE HE THEM.M# 9 THE LENGTH OF ONE CURTAIN WAS TWENTY AND EIGHT CUBITS, AND THE BREADTH OFP< ONE CURTAIN FOUR CUBITS: THE CURTAINS WERE ALL OF ONE SIZE.J# 10 AND HE COUPLED THE FIVE CURTAINS ONE UNTO ANOTHER: AND THE OTHER FIVE& CURTAINS HE COUPLED ONE UNTO ANOTHER.K# 11 AND HE MADE LOOPS OF BLUE ON THE EDGE OF ONE CURTAIN FROM THE SELVEDGENL IN THE COUPLING: LIKEWISE HE MADE IN THE UTTERMOST SIDE OF ANOTHER CURTAIN, IN THE COUPLING OF THE SECOND.PL# 12 FIFTY LOOPS MADE HE IN ONE CURTAIN, AND FIFTY LOOPS MADE HE IN THE EDGEK OF THE CURTAIN WHICH WAS IN THE COUPLING OF THE SECOND: THE LOOPS HELD ONEA CURTAIN TO ANOTHER.H# 13 AND HE MADE FIFTY TACHES OF GOLD, AND COUPLED THE CURTAINS ONE UNTO6 ANOTHER WITH THE TACHES: SO IT BECAME ONE TABERNACLE.I# 14 AND HE MADE CURTAINS OF GOATS HAIR FOR THE TENT OVER THE TABERNACLE:R ELEVEN CURTAINS HE MADE THEM.I# 15 THE LENGTH OF ONE CURTAIN WAS THIRTY CUBITS, AND FOUR CUBITS WAS THEP> BREADTH OF ONE CURTAIN: THE ELEVEN CURTAINS WERE OF ONE SIZE.D# 16 AND HE COUPLED FIVE CURTAINS BY THEMSELVES, AND SIX CURTAINS BY THEMSELVES.J# 17 AND HE MADE FIFTY LOOPS UPON THE UTTERMOST EDGE OF THE CURTAIN IN THEN COUPLING, AND FIFTY LOOPS MADE HE UPON THE EDGE OF THE CURTAIN WHICH COUPLETH THE SECOND.K# 18 AND HE MADE FIFTY TACHES OF BRASS TO COUPLE THE TENT TOGETHER, THAT ITE MIGHT BE ONE.F# 19 AND HE MADE A COVERING FOR THE TENT OF RAMS SKINS DYED RED, AND A& COVERING OF BADGERS SKINS ABOVE THAT.H# 20 AND HE MADE BOARDS FOR THE TABERNACLE OF SHITTIM WOOD, STANDING UP.I# 21 THE LENGTH OF A BOARD WAS TEN CUBITS, AND THE BREADTH OF A BOARD ONE  CUBIT AND A HALF.L# 22 ONE BOARD HAD TWO TENONS, EQUALLY DISTANT ONE FROM ANOTHER: THUS DID HE+ MAKE FOR ALL THE BOARDS OF THE TABERNACLE.L# 23 AND HE MADE BOARDS FOR THE TABERNACLE; TWENTY BOARDS FOR THE SOUTH SIDE SOUTHWARD:M# 24 AND FORTY SOCKETS OF SILVER HE MADE UNDER THE TWENTY BOARDS; TWO SOCKETS,L UNDER ONE BOARD FOR HIS TWO TENONS, AND TWO SOCKETS UNDER ANOTHER BOARD FOR HIS TWO TENONS.H# 25 AND FOR THE OTHER SIDE OF THE TABERNACLE, WHICH IS TOWARD THE NORTH CORNER, HE MADE TWENTY BOARDS,TL# 26 AND THEIR FORTY SOCKETS OF SILVER; TWO SOCKETS UNDER ONE BOARD, AND TWO SOCKETS UNDER ANOTHER BOARD. E# 27 AND FOR THE SIDES OF THE TABERNACLE WESTWARD HE MADE SIX BOARDS. H# 28 AND TWO BOARDS MADE HE FOR THE CORNERS OF THE TABERNACLE IN THE TWO SIDES. M# 29 AND THEY WERE COUPLED BENEATH, AND COUPLED TOGETHER AT THE HEAD T00`((<%X>%+%O-%TADATADATAHEREOF,,> TO ONE RING: THUS HE DID TO BOTH OF THEM IN BOTH THE CORNERS.K# 30 AND THERE WERE EIGHT BOARDS; AND THEIR SOCKETS WERE SIXTEEN SOCKETS OF,' SILVER, UNDER EVERY BOARD TWO SOCKETS.FM# 31 AND HE MADE BARS OF SHITTIM WOOD; FIVE FOR THE BOARDS OF THE ONE SIDE OFO THE TABERNACLE,J# 32 AND FIVE BARS FOR THE BOARDS OF THE OTHER SIDE OF THE TABERNACLE, ANDC FIVE BARS FOR THE BOARDS OF THE TABERNACLE FOR THE SIDES WESTWARD.DL# 33 AND HE MADE THE MIDDLE BAR TO SHOOT THROUGH THE BOARDS FROM THE ONE END TO THE OTHER.M# 34 AND HE OVERLAID THE BOARDS WITH GOLD, AND MADE THEIR RINGS OF GOLD TO BEH6 PLACES FOR THE BARS, AND OVERLAID THE BARS WITH GOLD.I# 35 AND HE MADE A VAIL OF BLUE, AND PURPLE, AND SCARLET, AND FINE TWINEDO2 LINEN: WITH CHERUBIMS MADE HE IT OF CUNNING WORK.J# 36 AND HE MADE THEREUNTO FOUR PILLARS OF SHITTIM WOOD, AND OVERLAID THEMJ WITH GOLD: THEIR HOOKS WERE OF GOLD; AND HE CAST FOR THEM FOUR SOCKETS OF SILVER.L# 37 AND HE MADE AN HANGING FOR THE TABERNACLE DOOR OF BLUE, AND PURPLE, AND/ SCARLET, AND FINE TWINED LINEN, OF NEEDLEWORK;LG# 38 AND THE FIVE PILLARS OF IT WITH THEIR HOOKS: AND HE OVERLAID THEIRDM CHAPITERS AND THEIR FILLETS WITH GOLD: BUT THEIR FIVE SOCKETS WERE OF BRASS. = CHAPTER 37 OL# 1 AND BEZALEEL MADE THE ARK OF SHITTIM WOOD: TWO CUBITS AND A HALF WAS THEJ LENGTH OF IT, AND A CUBIT AND A HALF THE BREADTH OF IT, AND A CUBIT AND A HALF THE HEIGHT OF IT: M# 2 AND HE OVERLAID IT WITH PURE GOLD WITHIN AND WITHOUT, AND MADE A CROWN OFC GOLD TO IT ROUND ABOUT.K# 3 AND HE CAST FOR IT FOUR RINGS OF GOLD, TO BE SET BY THE FOUR CORNERS OFIN IT; EVEN TWO RINGS UPON THE ONE SIDE OF IT, AND TWO RINGS UPON THE OTHER SIDE OF IT.OD# 4 AND HE MADE STAVES OF SHITTIM WOOD, AND OVERLAID THEM WITH GOLD.M# 5 AND HE PUT THE STAVES INTO THE RINGS BY THE SIDES OF THE ARK, TO BEAR THEI ARK.AJ# 6 AND HE MADE THE MERCY SEAT OF PURE GOLD: TWO CUBITS AND A HALF WAS THE> LENGTH THEREOF, AND ONE CUBIT AND A HALF THE BREADTH THEREOF.L# 7 AND HE MADE TWO CHERUBIMS OF GOLD, BEATEN OUT OF ONE PIECE MADE HE THEM,# ON THE TWO ENDS OF THE MERCY SEAT;RK# 8 ONE CHERUB ON THE END ON THIS SIDE, AND ANOTHER CHERUB ON THE OTHER END J ON THAT SIDE: OUT OF THE MERCY SEAT MADE HE THE CHERUBIMS ON THE TWO ENDS THEREOF.LL# 9 AND THE CHERUBIMS SPREAD OUT THEIR WINGS ON HIGH, AND COVERED WITH THEIRN WINGS OVER THE MERCY SEAT, WITH THEIR FACES ONE TO ANOTHER; EVEN TO THE MERCY* SEATWARD WERE THE FACES OF THE CHERUBIMS.E# 10 AND HE MADE THE TABLE OF SHITTIM WOOD: TWO CUBITS WAS THE LENGTHAL THEREOF, AND A CUBIT THE BREADTH THEREOF, AND A CUBIT AND A HALF THE HEIGHT THEREOF:OJ# 11 AND HE OVERLAID IT WITH PURE GOLD, AND MADE THEREUNTO A CROWN OF GOLD ROUND ABOUT.CL# 12 ALSO HE MADE THEREUNTO A BORDER OF AN HANDBREADTH ROUND ABOUT; AND MADE4 A CROWN OF GOLD FOR THE BORDER THEREOF ROUND ABOUT.K# 13 AND HE CAST FOR IT FOUR RINGS OF GOLD, AND PUT THE RINGS UPON THE FOURM, CORNERS THAT WERE IN THE FOUR FEET THEREOF.I# 14 OVER AGAINST THE BORDER WERE THE RINGS, THE PLACES FOR THE STAVES TO BEAR THE TABLE.L# 15 AND HE MADE THE STAVES OF SHITTIM WOOD, AND OVERLAID THEM WITH GOLD, TO BEAR THE TABLE.K# 16 AND HE MADE THE VESSELS WHICH WERE UPON THE TABLE, HIS DISHES, AND HIS E SPOONS, AND HIS BOWLS, AND HIS COVERS TO COVER WITHAL, OF PURE GOLD.CI# 17 AND HE MADE THE CANDLESTICK OF PURE GOLD: OF BEATEN WORK MADE HE THEOF CANDLESTICK; HIS SHAFT, AND HIS BRANCH, HIS BOWLS, HIS KNOPS, AND HIS FLOWERS, WERE OF THE SAME:4K# 18 AND SIX BRANCHES GOING OUT OF THE SIDES THEREOF; THREE BRANCHES OF THE C CANDLESTICK OUT OF THE ONE SIDE THEREOF, AND THREE BRANCHES OF THE + CANDLESTICK OUT OF THE OTHER SIDE THEREOF:DL# 19 THREE BOWLS MADE AFTER THE FASHION OF ALMONDS IN ONE BRANCH, A KNOP ANDL A FLOWER; AND THREE BOWLS MADE LIKE ALMONDS IN ANOTHER BRANCH, A KNOP AND AE FLOWER: SO THROUGHOUT THE SIX BRANCHES GOING OUT OF THE CANDLESTICK.IM# 20 AND IN THE CANDLESTICK WERE FOUR BOWLS MADE LIKE ALMONDS, HIS KNOPS, AND HIS FLOWERS:8M# 21 AND A KNOP UNDER TWO BRANCHES OF THE SAME, AND A KNOP00`(%D%5%T6%! ! UNDER TWO BRANCHESLM OF THE SAME, AND A KNOP UNDER TWO BRANCHES OF THE SAME, ACCORDING TO THE SIXT BRANCHES GOING OUT OF IT.G# 22 THEIR KNOPS AND THEIR BRANCHES WERE OF THE SAME: ALL OF IT WAS ONEP BEATEN WORK OF PURE GOLD.K# 23 AND HE MADE HIS SEVEN LAMPS, AND HIS SNUFFERS, AND HIS SNUFFDISHES, OFT PURE GOLD.CF# 24 OF A TALENT OF PURE GOLD MADE HE IT, AND ALL THE VESSELS THEREOF.J# 25 AND HE MADE THE INCENSE ALTAR OF SHITTIM WOOD: THE LENGTH OF IT WAS AL CUBIT, AND THE BREADTH OF IT A CUBIT; IT WAS FOURSQUARE; AND TWO CUBITS WAS6 THE HEIGHT OF IT; THE HORNS THEREOF WERE OF THE SAME.I# 26 AND HE OVERLAID IT WITH PURE GOLD, BOTH THE TOP OF IT, AND THE SIDESEJ THEREOF ROUND ABOUT, AND THE HORNS OF IT: ALSO HE MADE UNTO IT A CROWN OF GOLD ROUND ABOUT.M# 27 AND HE MADE TWO RINGS OF GOLD FOR IT UNDER THE CROWN THEREOF, BY THE TWO J CORNERS OF IT, UPON THE TWO SIDES THEREOF, TO BE PLACES FOR THE STAVES TO BEAR IT WITHAL.I# 28 AND HE MADE THE STAVES OF SHITTIM WOOD, AND OVERLAID THEM WITH GOLD. F# 29 AND HE MADE THE HOLY ANOINTING OIL, AND THE PURE INCENSE OF SWEET1 SPICES, ACCORDING TO THE WORK OF THE APOTHECARY.R = CHAPTER 38 EL# 1 AND HE MADE THE ALTAR OF BURNT OFFERING OF SHITTIM WOOD: FIVE CUBITS WASL THE LENGTH THEREOF, AND FIVE CUBITS THE BREADTH THEREOF; IT WAS FOURSQUARE;% AND THREE CUBITS THE HEIGHT THEREOF.HF# 2 AND HE MADE THE HORNS THEREOF ON THE FOUR CORNERS OF IT; THE HORNS9 THEREOF WERE OF THE SAME: AND HE OVERLAID IT WITH BRASS.FL# 3 AND HE MADE ALL THE VESSELS OF THE ALTAR, THE POTS, AND THE SHOVELS, ANDJ THE BASONS, AND THE FLESHHOOKS, AND THE FIREPANS: ALL THE VESSELS THEREOF MADE HE OF BRASS.I# 4 AND HE MADE FOR THE ALTAR A BRASEN GRATE OF NETWORK UNDER THE COMPASSV& THEREOF BENEATH UNTO THE MIDST OF IT.I# 5 AND HE CAST FOUR RINGS FOR THE FOUR ENDS OF THE GRATE OF BRASS, TO BEE PLACES FOR THE STAVES.EI# 6 AND HE MADE THE STAVES OF SHITTIM WOOD, AND OVERLAID THEM WITH BRASS. K# 7 AND HE PUT THE STAVES INTO THE RINGS ON THE SIDES OF THE ALTAR, TO BEAR 1 IT WITHAL; HE MADE THE ALTAR HOLLOW WITH BOARDS.BG# 8 AND HE MADE THE LAVER OF BRASS, AND THE FOOT OF IT OF BRASS, OF THEDK LOOKINGGLASSES OF THE WOMEN ASSEMBLING, WHICH ASSEMBLED AT THE DOOR OF THE TABERNACLE OF THE CONGREGATION.J# 9 AND HE MADE THE COURT: ON THE SOUTH SIDE SOUTHWARD THE HANGINGS OF THE4 COURT WERE OF FINE TWINED LINEN, AN HUNDRED CUBITS:M# 10 THEIR PILLARS WERE TWENTY, AND THEIR BRASEN SOCKETS TWENTY; THE HOOKS OFP. THE PILLARS AND THEIR FILLETS WERE OF SILVER.F# 11 AND FOR THE NORTH SIDE THE HANGINGS WERE AN HUNDRED CUBITS, THEIRI PILLARS WERE TWENTY, AND THEIR SOCKETS OF BRASS TWENTY; THE HOOKS OF THEO% PILLARS AND THEIR FILLETS OF SILVER.IL# 12 AND FOR THE WEST SIDE WERE HANGINGS OF FIFTY CUBITS, THEIR PILLARS TEN,M AND THEIR SOCKETS TEN; THE HOOKS OF THE PILLARS AND THEIR FILLETS OF SILVER.F1# 13 AND FOR THE EAST SIDE EASTWARD FIFTY CUBITS.PH# 14 THE HANGINGS OF THE ONE SIDE OF THE GATE WERE FIFTEEN CUBITS; THEIR( PILLARS THREE, AND THEIR SOCKETS THREE.J# 15 AND FOR THE OTHER SIDE OF THE COURT GATE, ON THIS HAND AND THAT HAND,H WERE HANGINGS OF FIFTEEN CUBITS; THEIR PILLARS THREE, AND THEIR SOCKETS THREE.DI# 16 ALL THE HANGINGS OF THE COURT ROUND ABOUT WERE OF FINE TWINED LINEN.TL# 17 AND THE SOCKETS FOR THE PILLARS WERE OF BRASS; THE HOOKS OF THE PILLARSN AND THEIR FILLETS OF SILVER; AND THE OVERLAYING OF THEIR CHAPITERS OF SILVER;< AND ALL THE PILLARS OF THE COURT WERE FILLETED WITH SILVER.K# 18 AND THE HANGING FOR THE GATE OF THE COURT WAS NEEDLEWORK, OF BLUE, ANDHN PURPLE, AND SCARLET, AND FINE TWINED LINEN: AND TWENTY CUBITS WAS THE LENGTH,M AND THE HEIGHT IN THE BREADTH WAS FIVE CUBITS, ANSWERABLE TO THE HANGINGS OFG THE COURT.TH# 19 AND THEIR PILLARS WERE FOUR, AND THEIR SOCKETS OF BRASS FOUR; THEIRL HOOKS OF SILVER, AND THE OVERLAYING OF THEIR CHAPITERS AND THEIR FILLETS OF SILVER.K# 20 AND ALL THE PINS OF THE TABERNACLE, AND OF THE COURT ROUND ABOUT, WEREF OF BRASS.L# 21 THIS IS THE SUM OF THE TABERNACLE, EVEN OF THE TABERNACLE OF TESTIMONY,M AS IT00`((<%X>%+%O-%TADATADATA WAS COUNTED, ACCORDING TO THE COMMANDMENT OF MOSES, FOR THE SERVICE OFE> THE LEVITES, BY THE HAND OF ITHAMAR, SON TO AARON THE PRIEST.J# 22 AND BEZALEEL THE SON URI, THE SON OF HUR, OF THE TRIBE OF JUDAH, MADE# ALL THAT THE LORD COMMANDED MOSES.H# 23 AND WITH HIM WAS AHOLIAB, SON OF AHISAMACH, OF THE TRIBE OF DAN, ANL ENGRAVER, AND A CUNNING WORKMAN, AND AN EMBROIDERER IN BLUE, AND IN PURPLE, AND IN SCARLET, AND FINE LINEN.L# 24 ALL THE GOLD THAT WAS OCCUPIED FOR THE WORK IN ALL THE WORK OF THE HOLYM PLACE, EVEN THE GOLD OF THE OFFERING, WAS TWENTY AND NINE TALENTS, AND SEVENV? HUNDRED AND THIRTY SHEKELS, AFTER THE SHEKEL OF THE SANCTUARY.BI# 25 AND THE SILVER OF THEM THAT WERE NUMBERED OF THE CONGREGATION WAS AN I HUNDRED TALENTS, AND A THOUSAND SEVEN HUNDRED AND THREESCORE AND FIFTEEN,, SHEKELS, AFTER THE SHEKEL OF THE SANCTUARY:K# 26 A BEKAH FOR EVERY MAN, THAT IS, HALF A SHEKEL, AFTER THE SHEKEL OF THEDM SANCTUARY, FOR EVERY ONE THAT WENT TO BE NUMBERED, FROM TWENTY YEARS OLD ANDOI UPWARD, FOR SIX HUNDRED THOUSAND AND THREE THOUSAND AND FIVE HUNDRED ANDN FIFTY MEN.VF# 27 AND OF THE HUNDRED TALENTS OF SILVER WERE CAST THE SOCKETS OF THEJ SANCTUARY, AND THE SOCKETS OF THE VAIL; AN HUNDRED SOCKETS OF THE HUNDRED TALENTS, A TALENT FOR A SOCKET.M# 28 AND OF THE THOUSAND SEVEN HUNDRED SEVENTY AND FIVE SHEKELS HE MADE HOOKSRB FOR THE PILLARS, AND OVERLAID THEIR CHAPITERS, AND FILLETED THEM.L# 29 AND THE BRASS OF THE OFFERING WAS SEVENTY TALENTS, AND TWO THOUSAND AND FOUR HUNDRED SHEKELS.K# 30 AND THEREWITH HE MADE THE SOCKETS TO THE DOOR OF THE TABERNACLE OF THENM CONGREGATION, AND THE BRASEN ALTAR, AND THE BRASEN GRATE FOR IT, AND ALL THEN VESSELS OF THE ALTAR,K# 31 AND THE SOCKETS OF THE COURT ROUND ABOUT, AND THE SOCKETS OF THE COURTEN GATE, AND ALL THE PINS OF THE TABERNACLE, AND ALL THE PINS OF THE COURT ROUND ABOUT.T = CHAPTER 39 M# 1 AND OF THE BLUE, AND PURPLE, AND SCARLET, THEY MADE CLOTHS OF SERVICE, TOGK DO SERVICE IN THE HOLY PLACE, AND MADE THE HOLY GARMENTS FOR AARON; AS THET LORD COMMANDED MOSES.J# 2 AND HE MADE THE EPHOD OF GOLD, BLUE, AND PURPLE, AND SCARLET, AND FINE TWINED LINEN.J# 3 AND THEY DID BEAT THE GOLD INTO THIN PLATES, AND CUT IT INTO WIRES, TOL WORK IT IN THE BLUE, AND IN THE PURPLE, AND IN THE SCARLET, AND IN THE FINE LINEN, WITH CUNNING WORK.L# 4 THEY MADE SHOULDERPIECES FOR IT, TO COUPLE IT TOGETHER: BY THE TWO EDGES WAS IT COUPLED TOGETHER.HK# 5 AND THE CURIOUS GIRDLE OF HIS EPHOD, THAT WAS UPON IT, WAS OF THE SAME,OK ACCORDING TO THE WORK THEREOF; OF GOLD, BLUE, AND PURPLE, AND SCARLET, ANDP0 FINE TWINED LINEN; AS THE LORD COMMANDED MOSES.G# 6 AND THEY WROUGHT ONYX STONES INCLOSED IN OUCHES OF GOLD, GRAVEN, ASC> SIGNETS ARE GRAVEN, WITH THE NAMES OF THE CHILDREN OF ISRAEL.M# 7 AND HE PUT THEM ON THE SHOULDERS OF THE EPHOD, THAT THEY SHOULD BE STONESHG FOR A MEMORIAL TO THE CHILDREN OF ISRAEL; AS THE LORD COMMANDED MOSES.PL# 8 AND HE MADE THE BREASTPLATE OF CUNNING WORK, LIKE THE WORK OF THE EPHOD;? OF GOLD, BLUE, AND PURPLE, AND SCARLET, AND FINE TWINED LINEN.DG# 9 IT WAS FOURSQUARE; THEY MADE THE BREASTPLATE DOUBLE: A SPAN WAS THEE? LENGTH THEREOF, AND A SPAN THE BREADTH THEREOF, BEING DOUBLED.GK# 10 AND THEY SET IN IT FOUR ROWS OF STONES: THE FIRST ROW WAS A SARDIUS, A 0 TOPAZ, AND A CARBUNCLE: THIS WAS THE FIRST ROW.?# 11 AND THE SECOND ROW, AN EMERALD, A SAPPHIRE, AND A DIAMOND.R<# 12 AND THE THIRD ROW, A LIGURE, AN AGATE, AND AN AMETHYST.K# 13 AND THE FOURTH ROW, A BERYL, AN ONYX, AND A JASPER: THEY WERE INCLOSEDE' IN OUCHES OF GOLD IN THEIR INCLOSINGS. J# 14 AND THE STONES WERE ACCORDING TO THE NAMES OF THE CHILDREN OF ISRAEL,M TWELVE, ACCORDING TO THEIR NAMES, LIKE THE ENGRAVINGS OF A SIGNET, EVERY ONE / WITH HIS NAME, ACCORDING TO THE TWELVE TRIBES.RL# 15 AND THEY MADE UPON THE BREASTPLATE CHAINS AT THE ENDS, OF WREATHEN WORK OF PURE GOLD.J# 16 AND THEY MADE TWO OUCHES OF GOLD, AND TWO GOLD RINGS; AND PUT THE TWO* RINGS IN THE TWO ENDS OF THE BREASTPLATE.I# 17 AND THEY PUT THE TWO WREATHEN CHAINS OF GOLD 00`(%D%5%T6%! !IN THE TWO RINGS ON THEH ENDS OF THE BREASTPLATE.TI# 18 AND THE TWO ENDS OF THE TWO WREATHEN CHAINS THEY FASTENED IN THE TWOAD OUCHES, AND PUT THEM ON THE SHOULDERPIECES OF THE EPHOD, BEFORE IT.I# 19 AND THEY MADE TWO RINGS OF GOLD, AND PUT THEM ON THE TWO ENDS OF THEHG BREASTPLATE, UPON THE BORDER OF IT, WHICH WAS ON THE SIDE OF THE EPHODA INWARD.K# 20 AND THEY MADE TWO OTHER GOLDEN RINGS, AND PUT THEM ON THE TWO SIDES OF H THE EPHOD UNDERNEATH, TOWARD THE FOREPART OF IT, OVER AGAINST THE OTHER9 COUPLING THEREOF, ABOVE THE CURIOUS GIRDLE OF THE EPHOD.8I# 21 AND THEY DID BIND THE BREASTPLATE BY HIS RINGS UNTO THE RINGS OF THECL EPHOD WITH A LACE OF BLUE, THAT IT MIGHT BE ABOVE THE CURIOUS GIRDLE OF THEK EPHOD, AND THAT THE BREASTPLATE MIGHT NOT BE LOOSED FROM THE EPHOD; AS THE  LORD COMMANDED MOSES.B# 22 AND HE MADE THE ROBE OF THE EPHOD OF WOVEN WORK, ALL OF BLUE.F# 23 AND THERE WAS AN HOLE IN THE MIDST OF THE ROBE, AS THE HOLE OF ANF HABERGEON, WITH A BAND ROUND ABOUT THE HOLE, THAT IT SHOULD NOT REND.F# 24 AND THEY MADE UPON THE HEMS OF THE ROBE POMEGRANATES OF BLUE, AND' PURPLE, AND SCARLET, AND TWINED LINEN.OD# 25 AND THEY MADE BELLS OF PURE GOLD, AND PUT THE BELLS BETWEEN THEM POMEGRANATES UPON THE HEM OF THE ROBE, ROUND ABOUT BETWEEN THE POMEGRANATES;PL# 26 A BELL AND A POMEGRANATE, A BELL AND A POMEGRANATE, ROUND ABOUT THE HEM9 OF THE ROBE TO MINISTER IN; AS THE LORD COMMANDED MOSES.HK# 27 AND THEY MADE COATS OF FINE LINEN OF WOVEN WORK FOR AARON, AND FOR HISH SONS,K# 28 AND A MITRE OF FINE LINEN, AND GOODLY BONNETS OF FINE LINEN, AND LINENA BREECHES OF FINE TWINED LINEN,SM# 29 AND A GIRDLE OF FINE TWINED LINEN, AND BLUE, AND PURPLE, AND SCARLET, OFB) NEEDLEWORK; AS THE LORD COMMANDED MOSES.MK# 30 AND THEY MADE THE PLATE OF THE HOLY CROWN OF PURE GOLD, AND WROTE UPONRH IT A WRITING, LIKE TO THE ENGRAVINGS OF A SIGNET, HOLINESS TO THE LORD.H# 31 AND THEY TIED UNTO IT A LACE OF BLUE, TO FASTEN IT ON HIGH UPON THE$ MITRE; AS THE LORD COMMANDED MOSES.L# 32 THUS WAS ALL THE WORK OF THE TABERNACLE OF THE TENT OF THE CONGREGATIONH FINISHED: AND THE CHILDREN OF ISRAEL DID ACCORDING TO ALL THAT THE LORD COMMANDED MOSES, SO DID THEY.F# 33 AND THEY BROUGHT THE TABERNACLE UNTO MOSES, THE TENT, AND ALL HISF FURNITURE, HIS TACHES, HIS BOARDS, HIS BARS, AND HIS PILLARS, AND HIS SOCKETS,NI# 34 AND THE COVERING OF RAMS SKINS DYED RED, AND THE COVERING OF BADGERS % SKINS, AND THE VAIL OF THE COVERING,IJ# 35 THE ARK OF THE TESTIMONY, AND THE STAVES THEREOF, AND THE MERCY SEAT,?# 36 THE TABLE, AND ALL THE VESSELS THEREOF, AND THE SHEWBREAD,SL# 37 THE PURE CANDLESTICK, WITH THE LAMPS THEREOF, EVEN WITH THE LAMPS TO BEB SET IN ORDER, AND ALL THE VESSELS THEREOF, AND THE OIL FOR LIGHT,L# 38 AND THE GOLDEN ALTAR, AND THE ANOINTING OIL, AND THE SWEET INCENSE, AND% THE HANGING FOR THE TABERNACLE DOOR,DF# 39 THE BRASEN ALTAR, AND HIS GRATE OF BRASS, HIS STAVES, AND ALL HIS! VESSELS, THE LAVER AND HIS FOOT,M# 40 THE HANGINGS OF THE COURT, HIS PILLARS, AND HIS SOCKETS, AND THE HANGING6H FOR THE COURT GATE, HIS CORDS, AND HIS PINS, AND ALL THE VESSELS OF THE= SERVICE OF THE TABERNACLE, FOR THE TENT OF THE CONGREGATION,EH# 41 THE CLOTHS OF SERVICE TO DO SERVICE IN THE HOLY PLACE, AND THE HOLYI GARMENTS FOR AARON THE PRIEST, AND HIS SONS GARMENTS, TO MINISTER IN THET PRIESTS OFFICE.G# 42 ACCORDING TO ALL THAT THE LORD COMMANDED MOSES, SO THE CHILDREN OFA ISRAEL MADE ALL THE WORK.K# 43 AND MOSES DID LOOK UPON ALL THE WORK, AND, BEHOLD, THEY HAD DONE IT ASSJ THE LORD HAD COMMANDED, EVEN SO HAD THEY DONE IT: AND MOSES BLESSED THEM. = CHAPTER 40 L*# 1 AND THE LORD SPAKE UNTO MOSES, SAYING,K# 2 ON THE FIRST DAY OF THE FIRST MONTH SHALT THOU SET UP THE TABERNACLE OF  THE TENT OF THE CONGREGATION.J# 3 AND THOU SHALT PUT THEREIN THE ARK OF THE TESTIMONY, AND COVER THE ARK WITH THE VAIL.AK# 4 AND THOU SHALT BRING IN THE TABLE, AND SET IN ORDER THE THINGS THAT AREAI TO BE SET IN ORDER UPON IT; AND THOU SHALT BRING IN THE CANDLESTICK, ANDH LIGHT THE LAMPS THEREOF.RJ# 5 AND TH00`((<%X>%+%O-%TADATADATAOU SHALT SET THE ALTAR OF GOLD FOR THE INCENSE BEFORE THE ARK OFB THE TESTIMONY, AND PUT THE HANGING OF THE DOOR TO THE TABERNACLE.M# 6 AND THOU SHALT SET THE ALTAR OF THE BURNT OFFERING BEFORE THE DOOR OF THEC, TABERNACLE OF THE TENT OF THE CONGREGATION.M# 7 AND THOU SHALT SET THE LAVER BETWEEN THE TENT OF THE CONGREGATION AND THET$ ALTAR, AND SHALT PUT WATER THEREIN.K# 8 AND THOU SHALT SET UP THE COURT ROUND ABOUT, AND HANG UP THE HANGING ATE THE COURT GATE.M# 9 AND THOU SHALT TAKE THE ANOINTING OIL, AND ANOINT THE TABERNACLE, AND ALLIJ THAT IS THEREIN, AND SHALT HALLOW IT, AND ALL THE VESSELS THEREOF: AND IT SHALL BE HOLY.G# 10 AND THOU SHALT ANOINT THE ALTAR OF THE BURNT OFFERING, AND ALL HIS E VESSELS, AND SANCTIFY THE ALTAR: AND IT SHALL BE AN ALTAR MOST HOLY.SC# 11 AND THOU SHALT ANOINT THE LAVER AND HIS FOOT, AND SANCTIFY IT.NL# 12 AND THOU SHALT BRING AARON AND HIS SONS UNTO THE DOOR OF THE TABERNACLE/ OF THE CONGREGATION, AND WASH THEM WITH WATER. I# 13 AND THOU SHALT PUT UPON AARON THE HOLY GARMENTS, AND ANOINT HIM, ANDB SANCTIFY HIM; THAT HE MAY MINISTER UNTO ME IN THE PRIESTS OFFICE.?# 14 AND THOU SHALT BRING HIS SONS, AND CLOTHE THEM WITH COATS: M# 15 AND THOU SHALT ANOINT THEM, AS THOU DIDST ANOINT THEIR FATHER, THAT THEYLM MAY MINISTER UNTO ME IN THE PRIESTS OFFICE: FOR THEIR ANOINTING SHALL SURELYD; BE AN EVERLASTING PRIESTHOOD THROUGHOUT THEIR GENERATIONS.UM# 16 THUS DID MOSES: ACCORDING TO ALL THAT THE LORD COMMANDED HIM, SO DID HE. L# 17 AND IT CAME TO PASS IN THE FIRST MONTH IN THE SECOND YEAR, ON THE FIRST5 DAY OF THE MONTH, THAT THE TABERNACLE WAS REARED UP.SM# 18 AND MOSES REARED UP THE TABERNACLE, AND FASTENED HIS SOCKETS, AND SET UP L THE BOARDS THEREOF, AND PUT IN THE BARS THEREOF, AND REARED UP HIS PILLARS.L# 19 AND HE SPREAD ABROAD THE TENT OVER THE TABERNACLE, AND PUT THE COVERING8 OF THE TENT ABOVE UPON IT; AS THE LORD COMMANDED MOSES.J# 20 AND HE TOOK AND PUT THE TESTIMONY INTO THE ARK, AND SET THE STAVES ON4 THE ARK, AND PUT THE MERCY SEAT ABOVE UPON THE ARK:K# 21 AND HE BROUGHT THE ARK INTO THE TABERNACLE, AND SET UP THE VAIL OF THERM COVERING, AND COVERED THE ARK OF THE TESTIMONY; AS THE LORD COMMANDED MOSES.AK# 22 AND HE PUT THE TABLE IN THE TENT OF THE CONGREGATION, UPON THE SIDE OFI, THE TABERNACLE NORTHWARD, WITHOUT THE VAIL.K# 23 AND HE SET THE BREAD IN ORDER UPON IT BEFORE THE LORD; AS THE LORD HADE COMMANDED MOSES.EM# 24 AND HE PUT THE CANDLESTICK IN THE TENT OF THE CONGREGATION, OVER AGAINST4 THE TABLE, ON THE SIDE OF THE TABERNACLE SOUTHWARD.K# 25 AND HE LIGHTED THE LAMPS BEFORE THE LORD; AS THE LORD COMMANDED MOSES.K# 26 AND HE PUT THE GOLDEN ALTAR IN THE TENT OF THE CONGREGATION BEFORE THEA VAIL:E# 27 AND HE BURNT SWEET INCENSE THEREON; AS THE LORD COMMANDED MOSES.=# 28 AND HE SET UP THE HANGING AT THE DOOR OF THE TABERNACLE.HL# 29 AND HE PUT THE ALTAR OF BURNT OFFERING BY THE DOOR OF THE TABERNACLE OFM THE TENT OF THE CONGREGATION, AND OFFERED UPON IT THE BURNT OFFERING AND THE, MEAT OFFERING; AS THE LORD COMMANDED MOSES.M# 30 AND HE SET THE LAVER BETWEEN THE TENT OF THE CONGREGATION AND THE ALTAR,M% AND PUT WATER THERE, TO WASH WITHAL.RG# 31 AND MOSES AND AARON AND HIS SONS WASHED THEIR HANDS AND THEIR FEETW THEREAT: I# 32 WHEN THEY WENT INTO THE TENT OF THE CONGREGATION, AND WHEN THEY CAMEH? NEAR UNTO THE ALTAR, THEY WASHED; AS THE LORD COMMANDED MOSES.FM# 33 AND HE REARED UP THE COURT ROUND ABOUT THE TABERNACLE AND THE ALTAR, ANDRB SET UP THE HANGING OF THE COURT GATE. SO MOSES FINISHED THE WORK.L# 34 THEN A CLOUD COVERED THE TENT OF THE CONGREGATION, AND THE GLORY OF THE LORD FILLED THE TABERNACLE.G# 35 AND MOSES WAS NOT ABLE TO ENTER INTO THE TENT OF THE CONGREGATION,DF BECAUSE THE CLOUD ABODE THEREON, AND THE GLORY OF THE LORD FILLED THE TABERNACLE.K# 36 AND WHEN THE CLOUD WAS TAKEN UP FROM OVER THE TABERNACLE, THE CHILDREND- OF ISRAEL WENT ONWARD IN ALL THEIR JOURNEYS:OM# 37 BUT IF THE CLOUD WERE NOT TAKEN UP, THEN THEY JOURNEYED NOT TILL THE DAYC THAT IT WAS TAKEN UP.K# 38 FOR THE CLOUD OF 00`(a(D%5%T6%! !THE LORD WAS UPON THE TABERNACLE BY DAY, AND FIRE WASHN ON IT BY NIGHT, IN THE SIGHT OF ALL THE HOUSE OF ISRAEL, THROUGHOUT ALL THEIR JOURNEYS.TENT OF THE CONGREGATION,DF BECAUSE THE CLOUD ABODE THEREON, AND THE GLORY OF THE LORD FILLED THE TABERNACLE.K# 36 AND WHEN THE CLOUD WAS TAKEN UP FROM OVER THE TABERNACLE, THE CHILDREND- OF ISRAEL WENT ONWARD IN ALL THEIR JOURNEYS:OM# 37 BUT IF THE CLOUD WERE NOT TAKEN UP, THEN THEY JOURNEYED NOT TILL THE DAYC THAT IT WAS TAKEN UP.K# 38 FOR THE CLOUD OF * BOOK03 LEVITICUS = CHAPTER 1 L# 1 AND THE LORD CALLED UNTO MOSES, AND SPAKE UNTO HIM OUT OF THE TABERNACLE OF THE CONGREGATION, SAYING,K# 2 SPEAK UNTO THE CHILDREN OF ISRAEL, AND SAY UNTO THEM, IF ANY MAN OF YOUM BRING AN OFFERING UNTO THE LORD, YE SHALL BRING YOUR OFFERING OF THE CATTLE,$ EVEN OF THE HERD, AND OF THE FLOCK.J# 3 IF HIS OFFERING BE A BURNT SACRIFICE OF THE HERD, LET HIM OFFER A MALEL WITHOUT BLEMISH: HE SHALL OFFER IT OF HIS OWN VOLUNTARY WILL AT THE DOOR OF4 THE TABERNACLE OF THE CONGREGATION BEFORE THE LORD.I# 4 AND HE SHALL PUT HIS HAND UPON THE HEAD OF THE BURNT OFFERING; AND ITE5 SHALL BE ACCEPTED FOR HIM TO MAKE ATONEMENT FOR HIM.IJ# 5 AND HE SHALL KILL THE BULLOCK BEFORE THE LORD: AND THE PRIESTS, AARONSI SONS, SHALL BRING THE BLOOD, AND SPRINKLE THE BLOOD ROUND ABOUT UPON THERA ALTAR THAT IS BY THE DOOR OF THE TABERNACLE OF THE CONGREGATION.HE# 6 AND HE SHALL FLAY THE BURNT OFFERING, AND CUT IT INTO HIS PIECES.SK# 7 AND THE SONS OF AARON THE PRIEST SHALL PUT FIRE UPON THE ALTAR, AND LAYE$ THE WOOD IN ORDER UPON THE FIRE: ITM# 8 AND THE PRIESTS, AARONS SONS, SHALL LAY THE PARTS, THE HEAD, AND THE FAT, D IN ORDER UPON THE WOOD THAT IS ON THE FIRE WHICH IS UPON THE ALTAR:M# 9 BUT HIS INWARDS AND HIS LEGS SHALL HE WASH IN WATER: AND THE PRIEST SHALLBM BURN ALL ON THE ALTAR, TO BE A BURNT SACRIFICE, AN OFFERING MADE BY FIRE, OF  A SWEET SAVOUR UNTO THE LORD.J# 10 AND IF HIS OFFERING BE OF THE FLOCKS, NAMELY, OF THE SHEEP, OR OF THEH GOATS, FOR A BURNT SACRIFICE; HE SHALL BRING IT A MALE WITHOUT BLEMISH.M# 11 AND HE SHALL KILL IT ON THE SIDE OF THE ALTAR NORTHWARD BEFORE THE LORD:EL AND THE PRIESTS, AARONS SONS, SHALL SPRINKLE HIS BLOOD ROUND ABOUT UPON THE ALTAR.AL# 12 AND HE SHALL CUT IT INTO HIS PIECES, WITH HIS HEAD AND HIS FAT: AND THEM PRIEST SHALL LAY THEM IN ORDER ON THE WOOD THAT IS ON THE FIRE WHICH IS UPON, THE ALTAR:TJ# 13 BUT HE SHALL WASH THE INWARDS AND THE LEGS WITH WATER: AND THE PRIESTL SHALL BRING IT ALL, AND BURN IT UPON THE ALTAR: IT IS A BURNT SACRIFICE, AN8 OFFERING MADE BY FIRE, OF A SWEET SAVOUR UNTO THE LORD.I# 14 AND IF THE BURNT SACRIFICE FOR HIS OFFERING TO THE LORD BE OF FOWLS,AF THEN HE SHALL BRING HIS OFFERING OF TURTLEDOVES, OR OF YOUNG PIGEONS.J# 15 AND THE PRIEST SHALL BRING IT UNTO THE ALTAR, AND WRING OFF HIS HEAD,J AND BURN IT ON THE ALTAR; AND THE BLOOD THEREOF SHALL BE WRUNG OUT AT THE SIDE OF THE ALTAR:AK# 16 AND HE SHALL PLUCK AWAY HIS CROP WITH HIS FEATHERS, AND CAST IT BESIDEA7 THE ALTAR ON THE EAST PART, BY THE PLACE OF THE ASHES:OK# 17 AND HE SHALL CLEAVE IT WITH THE WINGS THEREOF, BUT SHALL NOT DIVIDE IT L ASUNDER: AND THE PRIEST SHALL BURN IT UPON THE ALTAR, UPON THE WOOD THAT ISM UPON THE FIRE: IT IS A BURNT SACRIFICE, AN OFFERING MADE BY FIRE, OF A SWEET  SAVOUR UNTO THE LORD. = CHAPTER 2 M# 1 AND WHEN ANY WILL OFFER A MEAT OFFERING UNTO THE LORD, HIS OFFERING SHALLEF BE OF FINE FLOUR; AND HE SHALL POUR OIL UPON IT, AND PUT FRANKINCENSE THEREON:DG# 2 AND HE SHALL BRING IT TO AARONS SONS THE PRIESTS: AND HE SHALL TAKEOL THEREOUT HIS HANDFUL OF THE FLOUR THEREOF, AND OF THE OIL THEREOF, WITH ALLL THE FRANKINCENSE THEREOF; AND THE PRIEST SHALL BURN THE MEMORIAL OF IT UPONL THE ALTAR, TO BE AN OFFERING MADE BY FIRE, OF A SWEET SAVOUR UNTO THE LORD:L# 3 AND THE REMNANT OF THE MEAT OFFERING SHALL BE AARONS AND HIS SONS: IT IS= A THING MOST HOLY OF THE OFFERINGS OF THE LORD MADE BY FIRE.AJ# 4 AND IF THOU BRING AN OBLATION OF A MEAT OFFERING BAKEN IN THE OVEN, ITH SHALL BE UNLEAVENED CAKES O00a((<%X>%+%O-%TADATADATAF FINE FLOUR MINGLED WITH OIL, OR UNLEAVENED WAFERS ANOINTED WITH OIL.I# 5 AND IF THY OBLATION BE A MEAT OFFERING BAKEN IN A PAN, IT SHALL BE OFI) FINE FLOUR UNLEAVENED, MINGLED WITH OIL.ED# 6 THOU SHALT PART IT IN PIECES, AND POUR OIL THEREON: IT IS A MEAT OFFERING.K# 7 AND IF THY OBLATION BE A MEAT OFFERING BAKEN IN THE FRYINGPAN, IT SHALLG BE MADE OF FINE FLOUR WITH OIL.L# 8 AND THOU SHALT BRING THE MEAT OFFERING THAT IS MADE OF THESE THINGS UNTOK THE LORD: AND WHEN IT IS PRESENTED UNTO THE PRIEST, HE SHALL BRING IT UNTO, THE ALTAR.DL# 9 AND THE PRIEST SHALL TAKE FROM THE MEAT OFFERING A MEMORIAL THEREOF, ANDI SHALL BURN IT UPON THE ALTAR: IT IS AN OFFERING MADE BY FIRE, OF A SWEET  SAVOUR UNTO THE LORD.H# 10 AND THAT WHICH IS LEFT OF THE MEAT OFFERING SHALL BE AARONS AND HISI SONS: IT IS A THING MOST HOLY OF THE OFFERINGS OF THE LORD MADE BY FIRE.FM# 11 NO MEAT OFFERING, WHICH YE SHALL BRING UNTO THE LORD, SHALL BE MADE WITHEK LEAVEN: FOR YE SHALL BURN NO LEAVEN, NOR ANY HONEY, IN ANY OFFERING OF THER LORD MADE BY FIRE.TI# 12 AS FOR THE OBLATION OF THE FIRSTFRUITS, YE SHALL OFFER THEM UNTO THEOC LORD: BUT THEY SHALL NOT BE BURNT ON THE ALTAR FOR A SWEET SAVOUR.,I# 13 AND EVERY OBLATION OF THY MEAT OFFERING SHALT THOU SEASON WITH SALT;AL NEITHER SHALT THOU SUFFER THE SALT OF THE COVENANT OF THY GOD TO BE LACKINGH FROM THY MEAT OFFERING: WITH ALL THINE OFFERINGS THOU SHALT OFFER SALT.M# 14 AND IF THOU OFFER A MEAT OFFERING OF THY FIRSTFRUITS UNTO THE LORD, THOUON SHALT OFFER FOR THE MEAT OFFERING OF THY FIRSTFRUITS GREEN EARS OF CORN DRIED0 BY THE FIRE, EVEN CORN BEATEN OUT OF FULL EARS.J# 15 AND THOU SHALT PUT OIL UPON IT, AND LAY FRANKINCENSE THEREON: IT IS A MEAT OFFERING.LJ# 16 AND THE PRIEST SHALL BURN THE MEMORIAL OF IT, PART OF THE BEATEN CORNL THEREOF, AND PART OF THE OIL THEREOF, WITH ALL THE FRANKINCENSE THEREOF: IT+ IS AN OFFERING MADE BY FIRE UNTO THE LORD.F = CHAPTER 3 K# 1 AND IF HIS OBLATION BE A SACRIFICE OF PEACE OFFERING, IF HE OFFER IT OFSL THE HERD; WHETHER IT BE A MALE OR FEMALE, HE SHALL OFFER IT WITHOUT BLEMISH BEFORE THE LORD.CK# 2 AND HE SHALL LAY HIS HAND UPON THE HEAD OF HIS OFFERING, AND KILL IT ATAL THE DOOR OF THE TABERNACLE OF THE CONGREGATION: AND AARONS SONS THE PRIESTS5 SHALL SPRINKLE THE BLOOD UPON THE ALTAR ROUND ABOUT.NI# 3 AND HE SHALL OFFER OF THE SACRIFICE OF THE PEACE OFFERING AN OFFERINGFK MADE BY FIRE UNTO THE LORD; THE FAT THAT COVERETH THE INWARDS, AND ALL THEA FAT THAT IS UPON THE INWARDS,M# 4 AND THE TWO KIDNEYS, AND THE FAT THAT IS ON THEM, WHICH IS BY THE FLANKS,WG AND THE CAUL ABOVE THE LIVER, WITH THE KIDNEYS, IT SHALL HE TAKE AWAY.EH# 5 AND AARONS SONS SHALL BURN IT ON THE ALTAR UPON THE BURNT SACRIFICE,L WHICH IS UPON THE WOOD THAT IS ON THE FIRE: IT IS AN OFFERING MADE BY FIRE,! OF A SWEET SAVOUR UNTO THE LORD.AM# 6 AND IF HIS OFFERING FOR A SACRIFICE OF PEACE OFFERING UNTO THE LORD BE OFO> THE FLOCK; MALE OR FEMALE, HE SHALL OFFER IT WITHOUT BLEMISH.J# 7 IF HE OFFER A LAMB FOR HIS OFFERING, THEN SHALL HE OFFER IT BEFORE THE LORD.H# 8 AND HE SHALL LAY HIS HAND UPON THE HEAD OF HIS OFFERING, AND KILL ITN BEFORE THE TABERNACLE OF THE CONGREGATION: AND AARONS SONS SHALL SPRINKLE THE* BLOOD THEREOF ROUND ABOUT UPON THE ALTAR.I# 9 AND HE SHALL OFFER OF THE SACRIFICE OF THE PEACE OFFERING AN OFFERING M MADE BY FIRE UNTO THE LORD; THE FAT THEREOF, AND THE WHOLE RUMP, IT SHALL HELN TAKE OFF HARD BY THE BACKBONE; AND THE FAT THAT COVERETH THE INWARDS, AND ALL" THE FAT THAT IS UPON THE INWARDS,H# 10 AND THE TWO KIDNEYS, AND THE FAT THAT IS UPON THEM, WHICH IS BY THEI FLANKS, AND THE CAUL ABOVE THE LIVER, WITH THE KIDNEYS, IT SHALL HE TAKEO AWAY.G# 11 AND THE PRIEST SHALL BURN IT UPON THE ALTAR: IT IS THE FOOD OF THEH% OFFERING MADE BY FIRE UNTO THE LORD. K# 12 AND IF HIS OFFERING BE A GOAT, THEN HE SHALL OFFER IT BEFORE THE LORD.EJ# 13 AND HE SHALL LAY HIS HAND UPON THE HEAD OF IT, AND KILL IT BEFORE THEI TABERNACLE OF THE CONGREGATION: AND THE SONS OF AARON SHALL SPRINKLE THEH* BLOOD THEREOF UPON TH00a)(D%5%T6%! !E ALTAR ROUND ABOUT.K# 14 AND HE SHALL OFFER THEREOF HIS OFFERING, EVEN AN OFFERING MADE BY FIREEJ UNTO THE LORD; THE FAT THAT COVERETH THE INWARDS, AND ALL THE FAT THAT IS UPON THE INWARDS,H# 15 AND THE TWO KIDNEYS, AND THE FAT THAT IS UPON THEM, WHICH IS BY THEI FLANKS, AND THE CAUL ABOVE THE LIVER, WITH THE KIDNEYS, IT SHALL HE TAKEA AWAY.I# 16 AND THE PRIEST SHALL BURN THEM UPON THE ALTAR: IT IS THE FOOD OF THEFD OFFERING MADE BY FIRE FOR A SWEET SAVOUR: ALL THE FAT IS THE LORDS.M# 17 IT SHALL BE A PERPETUAL STATUTE FOR YOUR GENERATIONS THROUGHOUT ALL YOURG. DWELLINGS, THAT YE EAT NEITHER FAT NOR BLOOD. = CHAPTER 4 *# 1 AND THE LORD SPAKE UNTO MOSES, SAYING,J# 2 SPEAK UNTO THE CHILDREN OF ISRAEL, SAYING, IF A SOUL SHALL SIN THROUGHN IGNORANCE AGAINST ANY OF THE COMMANDMENTS OF THE LORD CONCERNING THINGS WHICH8 OUGHT NOT TO BE DONE, AND SHALL DO AGAINST ANY OF THEM:M# 3 IF THE PRIEST THAT IS ANOINTED DO SIN ACCORDING TO THE SIN OF THE PEOPLE;SN THEN LET HIM BRING FOR HIS SIN, WHICH HE HATH SINNED, A YOUNG BULLOCK WITHOUT* BLEMISH UNTO THE LORD FOR A SIN OFFERING.I# 4 AND HE SHALL BRING THE BULLOCK UNTO THE DOOR OF THE TABERNACLE OF THEUM CONGREGATION BEFORE THE LORD; AND SHALL LAY HIS HAND UPON THE BULLOCKS HEAD,A& AND KILL THE BULLOCK BEFORE THE LORD.I# 5 AND THE PRIEST THAT IS ANOINTED SHALL TAKE OF THE BULLOCKS BLOOD, ANDN0 BRING IT TO THE TABERNACLE OF THE CONGREGATION:I# 6 AND THE PRIEST SHALL DIP HIS FINGER IN THE BLOOD, AND SPRINKLE OF THEEE BLOOD SEVEN TIMES BEFORE THE LORD, BEFORE THE VAIL OF THE SANCTUARY.M# 7 AND THE PRIEST SHALL PUT SOME OF THE BLOOD UPON THE HORNS OF THE ALTAR OFUA SWEET INCENSE BEFORE THE LORD, WHICH IS IN THE TABERNACLE OF THERK CONGREGATION; AND SHALL POUR ALL THE BLOOD OF THE BULLOCK AT THE BOTTOM OFOK THE ALTAR OF THE BURNT OFFERING, WHICH IS AT THE DOOR OF THE TABERNACLE OFB THE CONGREGATION.H# 8 AND HE SHALL TAKE OFF FROM IT ALL THE FAT OF THE BULLOCK FOR THE SINN OFFERING; THE FAT THAT COVERETH THE INWARDS, AND ALL THE FAT THAT IS UPON THE INWARDS,VG# 9 AND THE TWO KIDNEYS, AND THE FAT THAT IS UPON THEM, WHICH IS BY THEOI FLANKS, AND THE CAUL ABOVE THE LIVER, WITH THE KIDNEYS, IT SHALL HE TAKEH AWAY,C# 10 AS IT WAS TAKEN OFF FROM THE BULLOCK OF THE SACRIFICE OF PEACEOF OFFERINGS: AND THE PRIEST SHALL BURN THEM UPON THE ALTAR OF THE BURNT OFFERING.L# 11 AND THE SKIN OF THE BULLOCK, AND ALL HIS FLESH, WITH HIS HEAD, AND WITH) HIS LEGS, AND HIS INWARDS, AND HIS DUNG,TH# 12 EVEN THE WHOLE BULLOCK SHALL HE CARRY FORTH WITHOUT THE CAMP UNTO AK CLEAN PLACE, WHERE THE ASHES ARE POURED OUT, AND BURN HIM ON THE WOOD WITHO8 FIRE: WHERE THE ASHES ARE POURED OUT SHALL HE BE BURNT.K# 13 AND IF THE WHOLE CONGREGATION OF ISRAEL SIN THROUGH IGNORANCE, AND THESH THING BE HID FROM THE EYES OF THE ASSEMBLY, AND THEY HAVE DONE SOMEWHATK AGAINST ANY OF THE COMMANDMENTS OF THE LORD CONCERNING THINGS WHICH SHOULDL NOT BE DONE, AND ARE GUILTY;HH# 14 WHEN THE SIN, WHICH THEY HAVE SINNED AGAINST IT, IS KNOWN, THEN THEK CONGREGATION SHALL OFFER A YOUNG BULLOCK FOR THE SIN, AND BRING HIM BEFOREO$ THE TABERNACLE OF THE CONGREGATION.K# 15 AND THE ELDERS OF THE CONGREGATION SHALL LAY THEIR HANDS UPON THE HEAD K OF THE BULLOCK BEFORE THE LORD: AND THE BULLOCK SHALL BE KILLED BEFORE THER LORD.M# 16 AND THE PRIEST THAT IS ANOINTED SHALL BRING OF THE BULLOCKS BLOOD TO THEN TABERNACLE OF THE CONGREGATION:K# 17 AND THE PRIEST SHALL DIP HIS FINGER IN SOME OF THE BLOOD, AND SPRINKLEA6 IT SEVEN TIMES BEFORE THE LORD, EVEN BEFORE THE VAIL.L# 18 AND HE SHALL PUT SOME OF THE BLOOD UPON THE HORNS OF THE ALTAR WHICH ISI BEFORE THE LORD, THAT IS IN THE TABERNACLE OF THELE OF THE CONGREGATION.HH# 19 AND HE SHALL TAKE ALL HIS FAT FROM HIM, AND BURN IT UPON THE ALTAR.J# 20 AND HE SHALL DO WITH THE BULLOCK AS HE DID WITH THE BULLOCK FOR A SINK OFFERING, SO SHALL HE DO WITH THIS: AND THE PRIEST SHALL MAKE AN ATONEMENT ) FOR THEM, AND IT SHALL BE FORGIVEN THEM.OK# 21 AND HE SHALL CARRY FORTH THE BULLOCK WITHOUT THE CAMP, AND BURN HIM ASTH HE BURNED THE FIRST00a)(<%X>%+%O-%TADATADATA BULLOCK: IT IS A SIN OFFERING FOR THE CONGREGATION.J# 22 WHEN A RULER HATH SINNED, AND DONE SOMEWHAT THROUGH IGNORANCE AGAINSTK ANY OF THE COMMANDMENTS OF THE LORD HIS GOD CONCERNING THINGS WHICH SHOULDH NOT BE DONE, AND IS GUILTY;K# 23 OR IF HIS SIN, WHEREIN HE HATH SINNED, COME TO HIS KNOWLEDGE; HE SHALLE@ BRING HIS OFFERING, A KID OF THE GOATS, A MALE WITHOUT BLEMISH:L# 24 AND HE SHALL LAY HIS HAND UPON THE HEAD OF THE GOAT, AND KILL IT IN THEF PLACE WHERE THEY KILL THE BURNT OFFERING BEFORE THE LORD: IT IS A SIN OFFERING.H# 25 AND THE PRIEST SHALL TAKE OF THE BLOOD OF THE SIN OFFERING WITH HISL FINGER, AND PUT IT UPON THE HORNS OF THE ALTAR OF BURNT OFFERING, AND SHALLA POUR OUT HIS BLOOD AT THE BOTTOM OF THE ALTAR OF BURNT OFFERING.HD# 26 AND HE SHALL BURN ALL HIS FAT UPON THE ALTAR, AS THE FAT OF THEM SACRIFICE OF PEACE OFFERINGS: AND THE PRIEST SHALL MAKE AN ATONEMENT FOR HIM 5 AS CONCERNING HIS SIN, AND IT SHALL BE FORGIVEN HIM.TH# 27 AND IF ANY ONE OF THE COMMON PEOPLE SIN THROUGH IGNORANCE, WHILE HEM DOETH SOMEWHAT AGAINST ANY OF THE COMMANDMENTS OF THE LORD CONCERNING THINGSI+ WHICH OUGHT NOT TO BE DONE, AND BE GUILTY; H# 28 OR IF HIS SIN, WHICH HE HATH SINNED, COME TO HIS KNOWLEDGE: THEN HEL SHALL BRING HIS OFFERING, A KID OF THE GOATS, A FEMALE WITHOUT BLEMISH, FOR HIS SIN WHICH HE HATH SINNED.J# 29 AND HE SHALL LAY HIS HAND UPON THE HEAD OF THE SIN OFFERING, AND SLAY5 THE SIN OFFERING IN THE PLACE OF THE BURNT OFFERING. L# 30 AND THE PRIEST SHALL TAKE OF THE BLOOD THEREOF WITH HIS FINGER, AND PUTM IT UPON THE HORNS OF THE ALTAR OF BURNT OFFERING, AND SHALL POUR OUT ALL THEH* BLOOD THEREOF AT THE BOTTOM OF THE ALTAR.I# 31 AND HE SHALL TAKE AWAY ALL THE FAT THEREOF, AS THE FAT IS TAKEN AWAYLM FROM OFF THE SACRIFICE OF PEACE OFFERINGS; AND THE PRIEST SHALL BURN IT UPONNI THE ALTAR FOR A SWEET SAVOUR UNTO THE LORD; AND THE PRIEST SHALL MAKE AN 1 ATONEMENT FOR HIM, AND IT SHALL BE FORGIVEN HIM.AJ# 32 AND IF HE BRING A LAMB FOR A SIN OFFERING, HE SHALL BRING IT A FEMALE WITHOUT BLEMISH.,M# 33 AND HE SHALL LAY HIS HAND UPON THE HEAD OF THE SIN OFFERING, AND SLAY IT D FOR A SIN OFFERING IN THE PLACE WHERE THEY KILL THE BURNT OFFERING.H# 34 AND THE PRIEST SHALL TAKE OF THE BLOOD OF THE SIN OFFERING WITH HISL FINGER, AND PUT IT UPON THE HORNS OF THE ALTAR OF BURNT OFFERING, AND SHALL; POUR OUT ALL THE BLOOD THEREOF AT THE BOTTOM OF THE ALTAR: J# 35 AND HE SHALL TAKE AWAY ALL THE FAT THEREOF, AS THE FAT OF THE LAMB ISK TAKEN AWAY FROM THE SACRIFICE OF THE PEACE OFFERINGS; AND THE PRIEST SHALL3K BURN THEM UPON THE ALTAR, ACCORDING TO THE OFFERINGS MADE BY FIRE UNTO THEFF LORD: AND THE PRIEST SHALL MAKE AN ATONEMENT FOR HIS SIN THAT HE HATH) COMMITTED, AND IT SHALL BE FORGIVEN HIM.T = CHAPTER 5 H# 1 AND IF A SOUL SIN, AND HEAR THE VOICE OF SWEARING, AND IS A WITNESS,J WHETHER HE HATH SEEN OR KNOWN OF IT; IF HE DO NOT UTTER IT, THEN HE SHALL BEAR HIS INIQUITY.AG# 2 OR IF A SOUL TOUCH ANY UNCLEAN THING, WHETHER IT BE A CARCASE OF ANTI UNCLEAN BEAST, OR A CARCASE OF UNCLEAN CATTLE, OR THE CARCASE OF UNCLEAN M CREEPING THINGS, AND IF IT BE HIDDEN FROM HIM; HE ALSO SHALL BE UNCLEAN, ANDI GUILTY.L# 3 OR IF HE TOUCH THE UNCLEANNESS OF MAN, WHATSOEVER UNCLEANNESS IT BE THATN A MAN SHALL BE DEFILED WITHAL, AND IT BE HID FROM HIM; WHEN HE KNOWETH OF IT, THEN HE SHALL BE GUILTY.HL# 4 OR IF A SOUL SWEAR, PRONOUNCING WITH HIS LIPS TO DO EVIL, OR TO DO GOOD,M WHATSOEVER IT BE THAT A MAN SHALL PRONOUNCE WITH AN OATH, AND IT BE HID FROMAE HIM; WHEN HE KNOWETH OF IT, THEN HE SHALL BE GUILTY IN ONE OF THESE.NL# 5 AND IT SHALL BE, WHEN HE SHALL BE GUILTY IN ONE OF THESE THINGS, THAT HE1 SHALL CONFESS THAT HE HATH SINNED IN THAT THING:EL# 6 AND HE SHALL BRING HIS TRESPASS OFFERING UNTO THE LORD FOR HIS SIN WHICHM HE HATH SINNED, A FEMALE FROM THE FLOCK, A LAMB OR A KID OF THE GOATS, FOR A L SIN OFFERING; AND THE PRIEST SHALL MAKE AN ATONEMENT FOR HIM CONCERNING HIS SIN. F# 7 AND IF HE BE NOT ABLE TO BRING A LAMB, THEN HE SHALL BRING FOR HISJ TRESPASS, WHICH HE HATH COM00a)(D%5%T6%! !MITTED, TWO TURTLEDOVES, OR TWO YOUNG PIGEONS,K UNTO THE LORD; ONE FOR A SIN OFFERING, AND THE OTHER FOR A BURNT OFFERING.CJ# 8 AND HE SHALL BRING THEM UNTO THE PRIEST, WHO SHALL OFFER THAT WHICH ISL FOR THE SIN OFFERING FIRST, AND WRING OFF HIS HEAD FROM HIS NECK, BUT SHALL NOT DIVIDE IT ASUNDER: ITK# 9 AND HE SHALL SPRINKLE OF THE BLOOD OF THE SIN OFFERING UPON THE SIDE OF M THE ALTAR; AND THE REST OF THE BLOOD SHALL BE WRUNG OUT AT THE BOTTOM OF THES ALTAR: IT IS A SIN OFFERING.WI# 10 AND HE SHALL OFFER THE SECOND FOR A BURNT OFFERING, ACCORDING TO THEOL MANNER: AND THE PRIEST SHALL MAKE AN ATONEMENT FOR HIM FOR HIS SIN WHICH HE+ HATH SINNED, AND IT SHALL BE FORGIVEN HIM.FJ# 11 BUT IF HE BE NOT ABLE TO BRING TWO TURTLEDOVES, OR TWO YOUNG PIGEONS,L THEN HE THAT SINNED SHALL BRING FOR HIS OFFERING THE TENTH PART OF AN EPHAHM OF FINE FLOUR FOR A SIN OFFERING; HE SHALL PUT NO OIL UPON IT, NEITHER SHALL ; HE PUT ANY FRANKINCENSE THEREON: FOR IT IS A SIN OFFERING. H# 12 THEN SHALL HE BRING IT TO THE PRIEST, AND THE PRIEST SHALL TAKE HISL HANDFUL OF IT, EVEN A MEMORIAL THEREOF, AND BURN IT ON THE ALTAR, ACCORDINGC TO THE OFFERINGS MADE BY FIRE UNTO THE LORD: IT IS A SIN OFFERING.1L# 13 AND THE PRIEST SHALL MAKE AN ATONEMENT FOR HIM AS TOUCHING HIS SIN THATN HE HATH SINNED IN ONE OF THESE, AND IT SHALL BE FORGIVEN HIM: AND THE REMNANT* SHALL BE THE PRIESTS, AS A MEAT OFFERING.+# 14 AND THE LORD SPAKE UNTO MOSES, SAYING,IH# 15 IF A SOUL COMMIT A TRESPASS, AND SIN THROUGH IGNORANCE, IN THE HOLYM THINGS OF THE LORD; THEN HE SHALL BRING FOR HIS TRESPASS UNTO THE LORD A RAMRM WITHOUT BLEMISH OUT OF THE FLOCKS, WITH THY ESTIMATION BY SHEKELS OF SILVER,H< AFTER THE SHEKEL OF THE SANCTUARY, FOR A TRESPASS OFFERING.H# 16 AND HE SHALL MAKE AMENDS FOR THE HARM THAT HE HATH DONE IN THE HOLYN THING, AND SHALL ADD THE FIFTH PART THERETO, AND GIVE IT UNTO THE PRIEST: ANDH THE PRIEST SHALL MAKE AN ATONEMENT FOR HIM WITH THE RAM OF THE TRESPASS( OFFERING, AND IT SHALL BE FORGIVEN HIM.M# 17 AND IF A SOUL SIN, AND COMMIT ANY OF THESE THINGS WHICH ARE FORBIDDEN TO J BE DONE BY THE COMMANDMENTS OF THE LORD; THOUGH HE WIST IT NOT, YET IS HE% GUILTY, AND SHALL BEAR HIS INIQUITY.EH# 18 AND HE SHALL BRING A RAM WITHOUT BLEMISH OUT OF THE FLOCK, WITH THYK ESTIMATION, FOR A TRESPASS OFFERING, UNTO THE PRIEST: AND THE PRIEST SHALLTM MAKE AN ATONEMENT FOR HIM CONCERNING HIS IGNORANCE WHEREIN HE ERRED AND WISTN& IT NOT, AND IT SHALL BE FORGIVEN HIM.H# 19 IT IS A TRESPASS OFFERING: HE HATH CERTAINLY TRESPASSED AGAINST THE LORD. = CHAPTER 6 *# 1 AND THE LORD SPAKE UNTO MOSES, SAYING,K# 2 IF A SOUL SIN, AND COMMIT A TRESPASS AGAINST THE LORD, AND LIE UNTO HISAM NEIGHBOUR IN THAT WHICH WAS DELIVERED HIM TO KEEP, OR IN FELLOWSHIP, OR IN AE> THING TAKEN AWAY BY VIOLENCE, OR HATH DECEIVED HIS NEIGHBOUR;L# 3 OR HAVE FOUND THAT WHICH WAS LOST, AND LIETH CONCERNING IT, AND SWEARETH@ FALSELY; IN ANY OF ALL THESE THAT A MAN DOETH, SINNING THEREIN:J# 4 THEN IT SHALL BE, BECAUSE HE HATH SINNED, AND IS GUILTY, THAT HE SHALLF RESTORE THAT WHICH HE TOOK VIOLENTLY AWAY, OR THE THING WHICH HE HATHI DECEITFULLY GOTTEN, OR THAT WHICH WAS DELIVERED HIM TO KEEP, OR THE LOSTA THING WHICH HE FOUND,K# 5 OR ALL THAT ABOUT WHICH HE HATH SWORN FALSELY; HE SHALL EVEN RESTORE ITYN IN THE PRINCIPAL, AND SHALL ADD THE FIFTH PART MORE THERETO, AND GIVE IT UNTOB HIM TO WHOM IT APPERTAINETH, IN THE DAY OF HIS TRESPASS OFFERING.I# 6 AND HE SHALL BRING HIS TRESPASS OFFERING UNTO THE LORD, A RAM WITHOUTTM BLEMISH OUT OF THE FLOCK, WITH THY ESTIMATION, FOR A TRESPASS OFFERING, UNTOW THE PRIEST:J# 7 AND THE PRIEST SHALL MAKE AN ATONEMENT FOR HIM BEFORE THE LORD: AND ITL SHALL BE FORGIVEN HIM FOR ANY THING OF ALL THAT HE HATH DONE IN TRESPASSING THEREIN.L*# 8 AND THE LORD SPAKE UNTO MOSES, SAYING,D# 9 COMMAND AARON AND HIS SONS, SAYING, THIS IS THE LAW OF THE BURNTN OFFERING: IT IS THE BURNT OFFERING, BECAUSE OF THE BURNING UPON THE ALTAR ALLJ NIGHT UNTO THE MORNING, AND THE FIRE OF THE ALTAR SHALL BE BURNING IN IT.J# 10 AND THE00a)(<%X>%+%O-%TADATADATA PRIEST SHALL PUT ON HIS LINEN GARMENT, AND HIS LINEN BREECHESG SHALL HE PUT UPON HIS FLESH, AND TAKE UP THE ASHES WHICH THE FIRE HATH L CONSUMED WITH THE BURNT OFFERING ON THE ALTAR, AND HE SHALL PUT THEM BESIDE THE ALTAR.LL# 11 AND HE SHALL PUT OFF HIS GARMENTS, AND PUT ON OTHER GARMENTS, AND CARRY5 FORTH THE ASHES WITHOUT THE CAMP UNTO A CLEAN PLACE.TL# 12 AND THE FIRE UPON THE ALTAR SHALL BE BURNING IN IT; IT SHALL NOT BE PUTK OUT: AND THE PRIEST SHALL BURN WOOD ON IT EVERY MORNING, AND LAY THE BURNTSJ OFFERING IN ORDER UPON IT; AND HE SHALL BURN THEREON THE FAT OF THE PEACE OFFERINGS.NJ# 13 THE FIRE SHALL EVER BE BURNING UPON THE ALTAR; IT SHALL NEVER GO OUT.L# 14 AND THIS IS THE LAW OF THE MEAT OFFERING: THE SONS OF AARON SHALL OFFER& IT BEFORE THE LORD, BEFORE THE ALTAR.L# 15 AND HE SHALL TAKE OF IT HIS HANDFUL, OF THE FLOUR OF THE MEAT OFFERING,H AND OF THE OIL THEREOF, AND ALL THE FRANKINCENSE WHICH IS UPON THE MEATH OFFERING, AND SHALL BURN IT UPON THE ALTAR FOR A SWEET SAVOUR, EVEN THE MEMORIAL OF IT, UNTO THE LORD.NL# 16 AND THE REMAINDER THEREOF SHALL AARON AND HIS SONS EAT: WITH UNLEAVENEDM BREAD SHALL IT BE EATEN IN THE HOLY PLACE; IN THE COURT OF THE TABERNACLE OFL$ THE CONGREGATION THEY SHALL EAT IT.K# 17 IT SHALL NOT BE BAKEN WITH LEAVEN. I HAVE GIVEN IT UNTO THEM FOR THEIRAE PORTION OF MY OFFERINGS MADE BY FIRE; IT IS MOST HOLY, AS IS THE SINI( OFFERING, AND AS THE TRESPASS OFFERING.J# 18 ALL THE MALES AMONG THE CHILDREN OF AARON SHALL EAT OF IT. SHALL BE AJ STATUTE FOR EVER IN YOUR GENERATIONS CONCERNING THE OFFERINGS OF THE LORD: MADE BY FIRE: EVERY ONE THAT TOUCHETH THEM SHALL BE HOLY.+# 19 AND THE LORD SPAKE UNTO MOSES, SAYING,UJ# 20 THIS IS THE OFFERING OF AARON AND OF HIS SONS, WHICH THEY SHALL OFFERL UNTO THE LORD IN THE DAY WHEN HE IS ANOINTED; THE TENTH PART OF AN EPHAH OFN FINE FLOUR FOR A MEAT OFFERING PERPETUAL, HALF OF IT IN THE MORNING, AND HALF THEREOF AT NIGHT.I# 21 IN A PAN IT SHALL BE MADE WITH OIL; AND WHEN IT IS BAKEN, THOU SHALTAN BRING IT IN: AND THE BAKEN PIECES OF THE MEAT OFFERING SHALT THOU OFFER FOR A SWEET SAVOUR UNTO THE LORD.M# 22 AND THE PRIEST OF HIS SONS THAT IS ANOINTED IN HIS STEAD SHALL OFFER IT:TB IT IS A STATUTE FOR EVER UNTO THE LORD; IT SHALL BE WHOLLY BURNT.K# 23 FOR EVERY MEAT OFFERING FOR THE PRIEST SHALL BE WHOLLY BURNT: IT SHALLF NOT BE EATEN.+# 24 AND THE LORD SPAKE UNTO MOSES, SAYING,EI# 25 SPEAK UNTO AARON AND TO HIS SONS, SAYING, THIS IS THE LAW OF THE SIN H OFFERING: IN THE PLACE WHERE THE BURNT OFFERING IS KILLED SHALL THE SIN5 OFFERING BE KILLED BEFORE THE LORD: IT IS MOST HOLY.VH# 26 THE PRIEST THAT OFFERETH IT FOR SIN SHALL EAT IT: IN THE HOLY PLACEG SHALL IT BE EATEN, IN THE COURT OF THE TABERNACLE OF THE CONGREGATION.LK# 27 WHATSOEVER SHALL TOUCH THE FLESH THEREOF SHALL BE HOLY: AND WHEN THERELI IS SPRINKLED OF THE BLOOD THEREOF UPON ANY GARMENT, THOU SHALT WASH THATI, WHEREON IT WAS SPRINKLED IN THE HOLY PLACE.K# 28 BUT THE EARTHEN VESSEL WHEREIN IT IS SODDEN SHALL BE BROKEN: AND IF ITFJ BE SODDEN IN A BRASEN POT, IT SHALL BE BOTH SCOURED, AND RINSED IN WATER.H# 29 ALL THE MALES AMONG THE PRIESTS SHALL EAT THEREOF: IT IS MOST HOLY.F# 30 AND NO SIN OFFERING, WHEREOF ANY OF THE BLOOD IS BROUGHT INTO THEL TABERNACLE OF THE CONGREGATION TO RECONCILE WITHAL IN THE HOLY PLACE, SHALL) BE EATEN: IT SHALL BE BURNT IN THE FIRE.E = CHAPTER 7 G# 1 LIKEWISE THIS IS THE LAW OF THE TRESPASS OFFERING: IT IS MOST HOLY.CG# 2 IN THE PLACE WHERE THEY KILL THE BURNT OFFERING SHALL THEY KILL THE L TRESPASS OFFERING: AND THE BLOOD THEREOF SHALL HE SPRINKLE ROUND ABOUT UPON THE ALTAR.LL# 3 AND HE SHALL OFFER OF IT ALL THE FAT THEREOF; THE RUMP, AND THE FAT THAT COVERETH THE INWARDS,M# 4 AND THE TWO KIDNEYS, AND THE FAT THAT IS ON THEM, WHICH IS BY THE FLANKS,EI AND THE CAUL THAT IS ABOVE THE LIVER, WITH THE KIDNEYS, IT SHALL HE TAKEE AWAY:I# 5 AND THE PRIEST SHALL BURN THEM UPON THE ALTAR FOR AN OFFERING MADE BYO/ FIRE UNTO THE LORD: IT IS A TRESPASS OFFERING.OL# 6 EVERY MALE AMONG THE PRIESTS SHA00a )(D%5%T6%! !LL EAT THEREOF: IT SHALL BE EATEN IN THE HOLY PLACE: IT IS MOST HOLY.TM# 7 AS THE SIN OFFERING IS, SO IS THE TRESPASS OFFERING: THERE IS ONE LAW FOR @ THEM: THE PRIEST THAT MAKETH ATONEMENT THEREWITH SHALL HAVE IT.I# 8 AND THE PRIEST THAT OFFERETH ANY MANS BURNT OFFERING, EVEN THE PRIEST L SHALL HAVE TO HIMSELF THE SKIN OF THE BURNT OFFERING WHICH HE HATH OFFERED.H# 9 AND ALL THE MEAT OFFERING THAT IS BAKEN IN THE OVEN, AND ALL THAT ISM DRESSED IN THE FRYINGPAN, AND IN THE PAN, SHALL BE THE PRIESTS THAT OFFERETHF IT.K# 10 AND EVERY MEAT OFFERING, MINGLED WITH OIL, AND DRY, SHALL ALL THE SONS ' OF AARON HAVE, ONE AS MUCH AS ANOTHER. L# 11 AND THIS IS THE LAW OF THE SACRIFICE OF PEACE OFFERINGS, WHICH HE SHALL OFFER UNTO THE LORD.AD# 12 IF HE OFFER IT FOR A THANKSGIVING, THEN HE SHALL OFFER WITH THEL SACRIFICE OF THANKSGIVING UNLEAVENED CAKES MINGLED WITH OIL, AND UNLEAVENEDL WAFERS ANOINTED WITH OIL, AND CAKES MINGLED WITH OIL, OF FINE FLOUR, FRIED.K# 13 BESIDES THE CAKES, HE SHALL OFFER FOR HIS OFFERING LEAVENED BREAD WITHE6 THE SACRIFICE OF THANKSGIVING OF HIS PEACE OFFERINGS.H# 14 AND OF IT HE SHALL OFFER ONE OUT OF THE WHOLE OBLATION FOR AN HEAVEN OFFERING UNTO THE LORD, AND IT SHALL BE THE PRIESTS THAT SPRINKLETH THE BLOOD OF THE PEACE OFFERINGS.K# 15 AND THE FLESH OF THE SACRIFICE OF HIS PEACE OFFERINGS FOR THANKSGIVINGEM SHALL BE EATEN THE SAME DAY THAT IT IS OFFERED; HE SHALL NOT LEAVE ANY OF ITS UNTIL THE MORNING. L# 16 BUT IF THE SACRIFICE OF HIS OFFERING BE A VOW, OR A VOLUNTARY OFFERING,J IT SHALL BE EATEN THE SAME DAY THAT HE OFFERETH HIS SACRIFICE: AND ON THE0 MORROW ALSO THE REMAINDER OF IT SHALL BE EATEN:K# 17 BUT THE REMAINDER OF THE FLESH OF THE SACRIFICE ON THE THIRD DAY SHALLT BE BURNT WITH FIRE.M# 18 AND IF ANY OF THE FLESH OF THE SACRIFICE OF HIS PEACE OFFERINGS BE EATENOG AT ALL ON THE THIRD DAY, IT SHALL NOT BE ACCEPTED, NEITHER SHALL IT BEEL IMPUTED UNTO HIM THAT OFFERETH IT: IT SHALL BE AN ABOMINATION, AND THE SOUL+ THAT EATETH OF IT SHALL BEAR HIS INIQUITY.OI# 19 AND THE FLESH THAT TOUCHETH ANY UNCLEAN THING SHALL NOT BE EATEN; ITNL SHALL BE BURNT WITH FIRE: AND AS FOR THE FLESH, ALL THAT BE CLEAN SHALL EAT THEREOF. D# 20 BUT THE SOUL THAT EATETH OF THE FLESH OF THE SACRIFICE OF PEACEM OFFERINGS, THAT PERTAIN UNTO THE LORD, HAVING HIS UNCLEANNESS UPON HIM, EVEN, THAT SOUL SHALL BE CUT OFF FROM HIS PEOPLE.M# 21 MOREOVER THE SOUL THAT SHALL TOUCH ANY UNCLEAN THING, AS THE UNCLEANNESSAN OF MAN, OR ANY UNCLEAN BEAST, OR ANY ABOMINABLE UNCLEAN THING, AND EAT OF THEM FLESH OF THE SACRIFICE OF PEACE OFFERINGS, WHICH PERTAIN UNTO THE LORD, EVENU, THAT SOUL SHALL BE CUT OFF FROM HIS PEOPLE.+# 22 AND THE LORD SPAKE UNTO MOSES, SAYING,SI# 23 SPEAK UNTO THE CHILDREN OF ISRAEL, SAYING, YE SHALL EAT NO MANNER OFR% FAT, OF OX, OR OF SHEEP, OR OF GOAT.EM# 24 AND THE FAT OF THE BEAST THAT DIETH OF ITSELF, AND THE FAT OF THAT WHICH K IS TORN WITH BEASTS, MAY BE USED IN ANY OTHER USE: BUT YE SHALL IN NO WISE EAT OF IT.EE# 25 FOR WHOSOEVER EATETH THE FAT OF THE BEAST, OF WHICH MEN OFFER ANRK OFFERING MADE BY FIRE UNTO THE LORD, EVEN THE SOUL THAT EATETH IT SHALL BEL CUT OFF FROM HIS PEOPLE..J# 26 MOREOVER YE SHALL EAT NO MANNER OF BLOOD, WHETHER IT BE OF FOWL OR OF! BEAST, IN ANY OF YOUR DWELLINGS. J# 27 WHATSOEVER SOUL IT BE THAT EATETH ANY MANNER OF BLOOD, EVEN THAT SOUL" SHALL BE CUT OFF FROM HIS PEOPLE.+# 28 AND THE LORD SPAKE UNTO MOSES, SAYING, D# 29 SPEAK UNTO THE CHILDREN OF ISRAEL, SAYING, HE THAT OFFERETH THEM SACRIFICE OF HIS PEACE OFFERINGS UNTO THE LORD SHALL BRING HIS OBLATION UNTOA2 THE LORD OF THE SACRIFICE OF HIS PEACE OFFERINGS.J# 30 HIS OWN HANDS SHALL BRING THE OFFERINGS OF THE LORD MADE BY FIRE, THEK FAT WITH THE BREAST, IT SHALL HE BRING, THAT THE BREAST MAY BE WAVED FOR A WAVE OFFERING BEFORE THE LORD.AK# 31 AND THE PRIEST SHALL BURN THE FAT UPON THE ALTAR: BUT THE BREAST SHALL BE AARONS AND HIS SONS.F# 32 AND THE RIGHT SHOULDER SHALL YE GIVE UNTO THE PRIEST FOR AN HEAVE4 OFFERING OF THE SACRIFICES OF YOUR PEACE 00a()(<%X>%+%O-%TADATADATAOFFERINGS.E# 33 HE AMONG THE SONS OF AARON, THAT OFFERETH THE BLOOD OF THE PEACEOD OFFERINGS, AND THE FAT, SHALL HAVE THE RIGHT SHOULDER FOR HIS PART.L# 34 FOR THE WAVE BREAST AND THE HEAVE SHOULDER HAVE I TAKEN OF THE CHILDRENK OF ISRAEL FROM OFF THE SACRIFICES OF THEIR PEACE OFFERINGS, AND HAVE GIVENPN THEM UNTO AARON THE PRIEST AND UNTO HIS SONS BY A STATUTE FOR EVER FROM AMONG THE CHILDREN OF ISRAEL.K# 35 THIS IS THE PORTION OF THE ANOINTING OF AARON, AND OF THE ANOINTING OFIL HIS SONS, OUT OF THE OFFERINGS OF THE LORD MADE BY FIRE, IN THE DAY WHEN HE@ PRESENTED THEM TO MINISTER UNTO THE LORD IN THE PRIESTS OFFICE;L# 36 WHICH THE LORD COMMANDED TO BE GIVEN THEM OF THE CHILDREN OF ISRAEL, INF THE DAY THAT HE ANOINTED THEM, BY A STATUTE FOR EVER THROUGHOUT THEIR GENERATIONS.GL# 37 THIS IS THE LAW OF THE BURNT OFFERING, OF THE MEAT OFFERING, AND OF THEM SIN OFFERING, AND OF THE TRESPASS OFFERING, AND OF THE CONSECRATIONS, AND OF & THE SACRIFICE OF THE PEACE OFFERINGS;F# 38 WHICH THE LORD COMMANDED MOSES IN MOUNT SINAI, IN THE DAY THAT HEL COMMANDED THE CHILDREN OF ISRAEL TO OFFER THEIR OBLATIONS UNTO THE LORD, IN THE WILDERNESS OF SINAI.E = CHAPTER 8 *# 1 AND THE LORD SPAKE UNTO MOSES, SAYING,I# 2 TAKE AARON AND HIS SONS WITH HIM, AND THE GARMENTS, AND THE ANOINTINGSG OIL, AND A BULLOCK FOR THE SIN OFFERING, AND TWO RAMS, AND A BASKET OF  UNLEAVENED BREAD;F# 3 AND GATHER THOU ALL THE CONGREGATION TOGETHER UNTO THE DOOR OF THE TABERNACLE OF THE CONGREGATION.J# 4 AND MOSES DID AS THE LORD COMMANDED HIM; AND THE ASSEMBLY WAS GATHERED> TOGETHER UNTO THE DOOR OF THE TABERNACLE OF THE CONGREGATION.J# 5 AND MOSES SAID UNTO THE CONGREGATION, THIS IS THE THING WHICH THE LORD COMMANDED TO BE DONE.E# 6 AND MOSES BROUGHT AARON AND HIS SONS, AND WASHED THEM WITH WATER.SM# 7 AND HE PUT UPON HIM THE COAT, AND GIRDED HIM WITH THE GIRDLE, AND CLOTHEDLJ HIM WITH THE ROBE, AND PUT THE EPHOD UPON HIM, AND HE GIRDED HIM WITH THE> CURIOUS GIRDLE OF THE EPHOD, AND BOUND IT UNTO HIM THEREWITH.K# 8 AND HE PUT THE BREASTPLATE UPON HIM: ALSO HE PUT IN THE BREASTPLATE THED URIM AND THE THUMMIM.J# 9 AND HE PUT THE MITRE UPON HIS HEAD; ALSO UPON THE MITRE, EVEN UPON HISN FOREFRONT, DID HE PUT THE GOLDEN PLATE, THE HOLY CROWN; AS THE LORD COMMANDED MOSES. J# 10 AND MOSES TOOK THE ANOINTING OIL, AND ANOINTED THE TABERNACLE AND ALL' THAT WAS THEREIN, AND SANCTIFIED THEM.HJ# 11 AND HE SPRINKLED THEREOF UPON THE ALTAR SEVEN TIMES, AND ANOINTED THEJ ALTAR AND ALL HIS VESSELS, BOTH THE LAVER AND HIS FOOT, TO SANCTIFY THEM.K# 12 AND HE POURED OF THE ANOINTING OIL UPON AARONS HEAD, AND ANOINTED HIM, TO SANCTIFY HIM.ML# 13 AND MOSES BROUGHT AARONS SONS, AND PUT COATS UPON THEM, AND GIRDED THEMF WITH GIRDLES, AND PUT BONNETS UPON THEM; AS THE LORD COMMANDED MOSES.L# 14 AND HE BROUGHT THE BULLOCK FOR THE SIN OFFERING: AND AARON AND HIS SONSD LAID THEIR HANDS UPON THE HEAD OF THE BULLOCK FOR THE SIN OFFERING.K# 15 AND HE SLEW IT; AND MOSES TOOK THE BLOOD, AND PUT IT UPON THE HORNS OFEN THE ALTAR ROUND ABOUT WITH HIS FINGER, AND PURIFIED THE ALTAR, AND POURED THEL BLOOD AT THE BOTTOM OF THE ALTAR, AND SANCTIFIED IT, TO MAKE RECONCILIATION UPON IT.OJ# 16 AND HE TOOK ALL THE FAT THAT WAS UPON THE INWARDS, AND THE CAUL ABOVEL THE LIVER, AND THE TWO KIDNEYS, AND THEIR FAT, AND MOSES BURNED IT UPON THE ALTAR.FJ# 17 BUT THE BULLOCK, AND HIS HIDE, HIS FLESH, AND HIS DUNG, HE BURNT WITH4 FIRE WITHOUT THE CAMP; AS THE LORD COMMANDED MOSES.J# 18 AND HE BROUGHT THE RAM FOR THE BURNT OFFERING: AND AARON AND HIS SONS+ LAID THEIR HANDS UPON THE HEAD OF THE RAM.RI# 19 AND HE KILLED IT; AND MOSES SPRINKLED THE BLOOD UPON THE ALTAR ROUNDC ABOUT.F# 20 AND HE CUT THE RAM INTO PIECES; AND MOSES BURNT THE HEAD, AND THE PIECES, AND THE FAT.VI# 21 AND HE WASHED THE INWARDS AND THE LEGS IN WATER; AND MOSES BURNT THERN WHOLE RAM UPON THE ALTAR: IT WAS A BURNT SACRIFICE FOR A SWEET SAVOUR, AND ANB OFFERING MADE BY FIRE UNTO THE LORD; AS THE LORD COMMANDED MOSES.M# 22 AND HE BROUGHT THE OTHER RAM, THE RAM OF 00a0)(D%5%T6%! !CONSECRATION: AND AARON AND HIS 0 SONS LAID THEIR HANDS UPON THE HEAD OF THE RAM.K# 23 AND HE SLEW IT; AND MOSES TOOK OF THE BLOOD OF IT, AND PUT IT UPON THEUL TIP OF AARONS RIGHT EAR, AND UPON THE THUMB OF HIS RIGHT HAND, AND UPON THE GREAT TOE OF HIS RIGHT FOOT.RK# 24 AND HE BROUGHT AARONS SONS, AND MOSES PUT OF THE BLOOD UPON THE TIP OF N THEIR RIGHT EAR, AND UPON THE THUMBS OF THEIR RIGHT HANDS, AND UPON THE GREATM TOES OF THEIR RIGHT FEET: AND MOSES SPRINKLED THE BLOOD UPON THE ALTAR ROUNDM ABOUT.CI# 25 AND HE TOOK THE FAT, AND THE RUMP, AND ALL THE FAT THAT WAS UPON THE.K INWARDS, AND THE CAUL ABOVE THE LIVER, AND THE TWO KIDNEYS, AND THEIR FAT,U AND THE RIGHT SHOULDER:L# 26 AND OUT OF THE BASKET OF UNLEAVENED BREAD, THAT WAS BEFORE THE LORD, HEL TOOK ONE UNLEAVENED CAKE, AND A CAKE OF OILED BREAD, AND ONE WAFER, AND PUT. THEM ON THE FAT, AND UPON THE RIGHT SHOULDER:I# 27 AND HE PUT ALL UPON AARONS HANDS, AND UPON HIS SONS HANDS, AND WAVEDS* THEM FOR A WAVE OFFERING BEFORE THE LORD.J# 28 AND MOSES TOOK THEM FROM OFF THEIR HANDS, AND BURNT THEM ON THE ALTARN UPON THE BURNT OFFERING: THEY WERE CONSECRATIONS FOR A SWEET SAVOUR: IT IS AN% OFFERING MADE BY FIRE UNTO THE LORD.AK# 29 AND MOSES TOOK THE BREAST, AND WAVED IT FOR A WAVE OFFERING BEFORE THE N LORD: FOR OF THE RAM OF CONSECRATION IT WAS MOSES PART; AS THE LORD COMMANDED MOSES. M# 30 AND MOSES TOOK OF THE ANOINTING OIL, AND OF THE BLOOD WHICH WAS UPON THEIN ALTAR, AND SPRINKLED IT UPON AARON, AND UPON HIS GARMENTS, AND UPON HIS SONS,M AND UPON HIS SONS GARMENTS WITH HIM; AND SANCTIFIED AARON, AND HIS GARMENTS,N. AND HIS SONS, AND HIS SONS GARMENTS WITH HIM.M# 31 AND MOSES SAID UNTO AARON AND TO HIS SONS, BOIL THE FLESH AT THE DOOR OFHL THE TABERNACLE OF THE CONGREGATION: AND THERE EAT IT WITH THE BREAD THAT ISK IN THE BASKET OF CONSECRATIONS, AS I COMMANDED, SAYING, AARON AND HIS SONSM SHALL EAT IT.I# 32 AND THAT WHICH REMAINETH OF THE FLESH AND OF THE BREAD SHALL YE BURN WITH FIRE.,A# 33 AND YE SHALL NOT GO OUT OF THE DOOR OF THE TABERNACLE OF THEEN CONGREGATION IN SEVEN DAYS, UNTIL THE DAYS OF YOUR CONSECRATION BE AT AN END:( FOR SEVEN DAYS SHALL HE CONSECRATE YOU.K# 34 AS HE HATH DONE THIS DAY, SO THE LORD HATH COMMANDED TO DO, TO MAKE AN  ATONEMENT FOR YOU.AB# 35 THEREFORE SHALL YE ABIDE AT THE DOOR OF THE TABERNACLE OF THEM CONGREGATION DAY AND NIGHT SEVEN DAYS, AND KEEP THE CHARGE OF THE LORD, THAT # YE DIE NOT: FOR SO I AM COMMANDED.HI# 36 SO AARON AND HIS SONS DID ALL THINGS WHICH THE LORD COMMANDED BY THEO HAND OF MOSES.C = CHAPTER 9 J# 1 AND IT CAME TO PASS ON THE EIGHTH DAY, THAT MOSES CALLED AARON AND HIS SONS, AND THE ELDERS OF ISRAEL;L# 2 AND HE SAID UNTO AARON, TAKE THEE A YOUNG CALF FOR A SIN OFFERING, AND AK RAM FOR A BURNT OFFERING, WITHOUT BLEMISH, AND OFFER THEM BEFORE THE LORD.TK# 3 AND UNTO THE CHILDREN OF ISRAEL THOU SHALT SPEAK, SAYING, TAKE YE A KIDAJ OF THE GOATS FOR A SIN OFFERING; AND A CALF AND A LAMB, BOTH OF THE FIRST- YEAR, WITHOUT BLEMISH, FOR A BURNT OFFERING;AI# 4 ALSO A BULLOCK AND A RAM FOR PEACE OFFERINGS, TO SACRIFICE BEFORE THEEL LORD; AND A MEAT OFFERING MINGLED WITH OIL: FOR TO DAY THE LORD WILL APPEAR UNTO YOU.L# 5 AND THEY BROUGHT THAT WHICH MOSES COMMANDED BEFORE THE TABERNACLE OF THEL CONGREGATION: AND ALL THE CONGREGATION DREW NEAR AND STOOD BEFORE THE LORD.M# 6 AND MOSES SAID, THIS IS THE THING WHICH THE LORD COMMANDED THAT YE SHOULDT5 DO: AND THE GLORY OF THE LORD SHALL APPEAR UNTO YOU.EM# 7 AND MOSES SAID UNTO AARON, GO UNTO THE ALTAR, AND OFFER THY SIN OFFERING,AG AND THY BURNT OFFERING, AND MAKE AN ATONEMENT FOR THYSELF, AND FOR THEEN PEOPLE: AND OFFER THE OFFERING OF THE PEOPLE, AND MAKE AN ATONEMENT FOR THEM; AS THE LORD COMMANDED. E# 8 AARON THEREFORE WENT UNTO THE ALTAR, AND SLEW THE CALF OF THE SINR! OFFERING, WHICH WAS FOR HIMSELF.TG# 9 AND THE SONS OF AARON BROUGHT THE BLOOD UNTO HIM: AND HE DIPPED HISTL FINGER IN THE BLOOD, AND PUT IT UPON THE HORNS OF THE ALTAR, AND POURED OUT& THE BLOOD AT THE BOTTOM OF THE ALTAR:J# 10 BUT00a8)(<%X>%+%O-%TADATADATA THE FAT, AND THE KIDNEYS, AND THE CAUL ABOVE THE LIVER OF THE SIN@ OFFERING, HE BURNT UPON THE ALTAR; AS THE LORD COMMANDED MOSES.D# 11 AND THE FLESH AND THE HIDE HE BURNT WITH FIRE WITHOUT THE CAMP.K# 12 AND HE SLEW THE BURNT OFFERING; AND AARONS SONS PRESENTED UNTO HIM THEF6 BLOOD, WHICH HE SPRINKLED ROUND ABOUT UPON THE ALTAR.M# 13 AND THEY PRESENTED THE BURNT OFFERING UNTO HIM, WITH THE PIECES THEREOF, 0 AND THE HEAD: AND HE BURNT THEM UPON THE ALTAR.L# 14 AND HE DID WASH THE INWARDS AND THE LEGS, AND BURNT THEM UPON THE BURNT OFFERING ON THE ALTAR.FJ# 15 AND HE BROUGHT THE PEOPLES OFFERING, AND TOOK THE GOAT, WHICH WAS THEI SIN OFFERING FOR THE PEOPLE, AND SLEW IT, AND OFFERED IT FOR SIN, AS THEA FIRST.WG# 16 AND HE BROUGHT THE BURNT OFFERING, AND OFFERED IT ACCORDING TO THEC MANNER.M# 17 AND HE BROUGHT THE MEAT OFFERING, AND TOOK AN HANDFUL THEREOF, AND BURNTT> IT UPON THE ALTAR, BESIDE THE BURNT SACRIFICE OF THE MORNING.M# 18 HE SLEW ALSO THE BULLOCK AND THE RAM FOR A SACRIFICE OF PEACE OFFERINGS,EN WHICH WAS FOR THE PEOPLE: AND AARONS SONS PRESENTED UNTO HIM THE BLOOD, WHICH) HE SPRINKLED UPON THE ALTAR ROUND ABOUT,NH# 19 AND THE FAT OF THE BULLOCK AND OF THE RAM, THE RUMP, AND THAT WHICHE COVERETH THE INWARDS, AND THE KIDNEYS, AND THE CAUL ABOVE THE LIVER:GI# 20 AND THEY PUT THE FAT UPON THE BREASTS, AND HE BURNT THE FAT UPON THEF ALTAR:FK# 21 AND THE BREASTS AND THE RIGHT SHOULDER AARON WAVED FOR A WAVE OFFERING% BEFORE THE LORD; AS MOSES COMMANDED.AJ# 22 AND AARON LIFTED UP HIS HAND TOWARD THE PEOPLE, AND BLESSED THEM, ANDI CAME DOWN FROM OFFERING OF THE SIN OFFERING, AND THE BURNT OFFERING, ANDU PEACE OFFERINGS.DJ# 23 AND MOSES AND AARON WENT INTO THE TABERNACLE OF THE CONGREGATION, ANDN CAME OUT, AND BLESSED THE PEOPLE: AND THE GLORY OF THE LORD APPEARED UNTO ALL THE PEOPLE.J# 24 AND THERE CAME A FIRE OUT FROM BEFORE THE LORD, AND CONSUMED UPON THEJ ALTAR THE BURNT OFFERING AND THE FAT: WHICH WHEN ALL THE PEOPLE SAW, THEY" SHOUTED, AND FELL ON THEIR FACES. = CHAPTER 10 NK# 1 AND NADAB AND ABIHU, THE SONS OF AARON, TOOK EITHER OF THEM HIS CENSER,IH AND PUT FIRE THEREIN, AND PUT INCENSE THEREON, AND OFFERED STRANGE FIRE. BEFORE THE LORD, WHICH HE COMMANDED THEM NOT.K# 2 AND THERE WENT OUT FIRE FROM THE LORD, AND DEVOURED THEM, AND THEY DIEDA BEFORE THE LORD.TI# 3 THEN MOSES SAID UNTO AARON, THIS IS IT THAT THE LORD SPAKE, SAYING, IEJ WILL BE SANCTIFIED IN THEM THAT COME NIGH ME, AND BEFORE ALL THE PEOPLE I- WILL BE GLORIFIED. AND AARON HELD HIS PEACE.J# 4 AND MOSES CALLED MISHAEL AND ELZAPHAN, THE SONS OF UZZIEL THE UNCLE OFJ AARON, AND SAID UNTO THEM, COME NEAR, CARRY YOUR BRETHREN FROM BEFORE THE SANCTUARY OUT OF THE CAMP.OJ# 5 SO THEY WENT NEAR, AND CARRIED THEM IN THEIR COATS OUT OF THE CAMP; AS MOSES HAD SAID.K# 6 AND MOSES SAID UNTO AARON, AND UNTO ELEAZAR AND UNTO ITHAMAR, HIS SONS, I UNCOVER NOT YOUR HEADS, NEITHER REND YOUR CLOTHES; LEST YE DIE, AND LESTIJ WRATH COME UPON ALL THE PEOPLE: BUT LET YOUR BRETHREN, THE WHOLE HOUSE OF8 ISRAEL, BEWAIL THE BURNING WHICH THE LORD HATH KINDLED.B# 7 AND YE SHALL NOT GO OUT FROM THE DOOR OF THE TABERNACLE OF THEN CONGREGATION, LEST YE DIE: FOR THE ANOINTING OIL OF THE LORD IS UPON YOU. AND) THEY DID ACCORDING TO THE WORD OF MOSES.O*# 8 AND THE LORD SPAKE UNTO AARON, SAYING,M# 9 DO NOT DRINK WINE NOR STRONG DRINK, THOU, NOR THY SONS WITH THEE, WHEN YETG GO INTO THE TABERNACLE OF THE CONGREGATION, LEST YE DIE: IT SHALL BE AM. STATUTE FOR EVER THROUGHOUT YOUR GENERATIONS:H# 10 AND THAT YE MAY PUT DIFFERENCE BETWEEN HOLY AND UNHOLY, AND BETWEEN UNCLEAN AND CLEAN;TL# 11 AND THAT YE MAY TEACH THE CHILDREN OF ISRAEL ALL THE STATUTES WHICH THE1 LORD HATH SPOKEN UNTO THEM BY THE HAND OF MOSES.TL# 12 AND MOSES SPAKE UNTO AARON, AND UNTO ELEAZAR AND UNTO ITHAMAR, HIS SONSN THAT WERE LEFT, TAKE THE MEAT OFFERING THAT REMAINETH OF THE OFFERINGS OF THEN LORD MADE BY FIRE, AND EAT IT WITHOUT LEAVEN BESIDE THE ALTAR: FOR IT IS MOST HOLY:J# 13 AND YE SHALL EAT IT IN THE HOLY PLACE, BECAUSE IT IS THY 00a@)(D%5%T6%! !DUE, AND THYM SONS DUE, OF THE SACRIFICES OF THE LORD MADE BY FIRE: FOR SO I AM COMMANDED.MJ# 14 AND THE WAVE BREAST AND HEAVE SHOULDER SHALL YE EAT IN A CLEAN PLACE;N THOU, AND THY SONS, AND THY DAUGHTERS WITH THEE: FOR THEY BE THY DUE, AND THYJ SONS DUE, WHICH ARE GIVEN OUT OF THE SACRIFICES OF PEACE OFFERINGS OF THE CHILDREN OF ISRAEL.E# 15 THE HEAVE SHOULDER AND THE WAVE BREAST SHALL THEY BRING WITH THEEM OFFERINGS MADE BY FIRE OF THE FAT, TO WAVE IT FOR A WAVE OFFERING BEFORE THEAL LORD; AND IT SHALL BE THINE, AND THY SONS WITH THEE, BY A STATUTE FOR EVER; AS THE LORD HATH COMMANDED.K# 16 AND MOSES DILIGENTLY SOUGHT THE GOAT OF THE SIN OFFERING, AND, BEHOLD,TK IT WAS BURNT: AND HE WAS ANGRY WITH ELEAZAR AND ITHAMAR, THE SONS OF AARON WHICH WERE LEFT ALIVE, SAYING, K# 17 WHEREFORE HAVE YE NOT EATEN THE SIN OFFERING IN THE HOLY PLACE, SEEINGEG IT IS MOST HOLY, AND GOD HATH GIVEN IT YOU TO BEAR THE INIQUITY OF THE : CONGREGATION, TO MAKE ATONEMENT FOR THEM BEFORE THE LORD?I# 18 BEHOLD, THE BLOOD OF IT WAS NOT BROUGHT IN WITHIN THE HOLY PLACE: YEE? SHOULD INDEED HAVE EATEN IT IN THE HOLY PLACE, AS I COMMANDED.GL# 19 AND AARON SAID UNTO MOSES, BEHOLD, THIS DAY HAVE THEY OFFERED THEIR SINH OFFERING AND THEIR BURNT OFFERING BEFORE THE LORD; AND SUCH THINGS HAVEM BEFALLEN ME: AND IF I HAD EATEN THE SIN OFFERING TO DAY, SHOULD IT HAVE BEENE# ACCEPTED IN THE SIGHT OF THE LORD?G/# 20 AND WHEN MOSES HEARD THAT, HE WAS CONTENT.G = CHAPTER 11 AA# 1 AND THE LORD SPAKE UNTO MOSES AND TO AARON, SAYING UNTO THEM,SL# 2 SPEAK UNTO THE CHILDREN OF ISRAEL, SAYING, THESE ARE THE BEASTS WHICH YE6 SHALL EAT AMONG ALL THE BEASTS THAT ARE ON THE EARTH.J# 3 WHATSOEVER PARTETH THE HOOF, AND IS CLOVENFOOTED, AND CHEWETH THE CUD,% AMONG THE BEASTS, THAT SHALL YE EAT.TM# 4 NEVERTHELESS THESE SHALL YE NOT EAT OF THEM THAT CHEW THE CUD, OR OF THEM M THAT DIVIDE THE HOOF: AS THE CAMEL, BECAUSE HE CHEWETH THE CUD, BUT DIVIDETHT& NOT THE HOOF; HE IS UNCLEAN UNTO YOU.L# 5 AND THE CONEY, BECAUSE HE CHEWETH THE CUD, BUT DIVIDETH NOT THE HOOF; HE IS UNCLEAN UNTO YOU.,K# 6 AND THE HARE, BECAUSE HE CHEWETH THE CUD, BUT DIVIDETH NOT THE HOOF; HEA IS UNCLEAN UNTO YOU.HI# 7 AND THE SWINE, THOUGH HE DIVIDE THE HOOF, AND BE CLOVENFOOTED, YET HEG+ CHEWETH NOT THE CUD; HE IS UNCLEAN TO YOU.EJ# 8 OF THEIR FLESH SHALL YE NOT EAT, AND THEIR CARCASE SHALL YE NOT TOUCH; THEY ARE UNCLEAN TO YOU.,J# 9 THESE SHALL YE EAT OF ALL THAT ARE IN THE WATERS: WHATSOEVER HATH FINSM AND SCALES IN THE WATERS, IN THE SEAS, AND IN THE RIVERS, THEM SHALL YE EAT.FM# 10 AND ALL THAT HAVE NOT FINS AND SCALES IN THE SEAS, AND IN THE RIVERS, OF M ALL THAT MOVE IN THE WATERS, AND OF ANY LIVING THING WHICH IS IN THE WATERS,E' THEY SHALL BE AN ABOMINATION UNTO YOU:TJ# 11 THEY SHALL BE EVEN AN ABOMINATION UNTO YOU; YE SHALL NOT EAT OF THEIR8 FLESH, BUT YE SHALL HAVE THEIR CARCASES IN ABOMINATION.G# 12 WHATSOEVER HATH NO FINS NOR SCALES IN THE WATERS, THAT SHALL BE ANS ABOMINATION UNTO YOU.K# 13 AND THESE ARE THEY WHICH YE SHALL HAVE IN ABOMINATION AMONG THE FOWLS;FE THEY SHALL NOT BE EATEN, THEY ARE AN ABOMINATION: THE EAGLE, AND THEV OSSIFRAGE, AND THE OSPRAY,H2# 14 AND THE VULTURE, AND THE KITE AFTER HIS KIND; # 15 EVERY RAVEN AFTER HIS KIND;L# 16 AND THE OWL, AND THE NIGHT HAWK, AND THE CUCKOW, AND THE HAWK AFTER HIS KIND,># 17 AND THE LITTLE OWL, AND THE CORMORANT, AND THE GREAT OWL,7# 18 AND THE SWAN, AND THE PELICAN, AND THE GIER EAGLE,AK# 19 AND THE STORK, THE HERON AFTER HER KIND, AND THE LAPWING, AND THE BAT.LL# 20 ALL FOWLS THAT CREEP, GOING UPON ALL FOUR, SHALL BE AN ABOMINATION UNTO YOU.TL# 21 YET THESE MAY YE EAT OF EVERY FLYING CREEPING THING THAT GOETH UPON ALLG FOUR, WHICH HAVE LEGS ABOVE THEIR FEET, TO LEAP WITHAL UPON THE EARTH;TK# 22 EVEN THESE OF THEM YE MAY EAT; THE LOCUST AFTER HIS KIND, AND THE BALD J LOCUST AFTER HIS KIND, AND THE BEETLE AFTER HIS KIND, AND THE GRASSHOPPER AFTER HIS KIND.L# 23 BUT ALL OTHER FLYING CREEPING THINGS, WHICH HAVE FOUR FEET, SHALL BE AN ABOMINATION UNTO YOU.I# 24 A00aH)(<%X>%+%O-%TADATADATAND FOR THESE YE SHALL BE UNCLEAN: WHOSOEVER TOUCHETH THE CARCASE OFN& THEM SHALL BE UNCLEAN UNTIL THE EVEN.F# 25 AND WHOSOEVER BEARETH OUGHT OF THE CARCASE OF THEM SHALL WASH HIS( CLOTHES, AND BE UNCLEAN UNTIL THE EVEN.D# 26 THE CARCASES OF EVERY BEAST WHICH DIVIDETH THE HOOF, AND IS NOTH CLOVENFOOTED, NOR CHEWETH THE CUD, ARE UNCLEAN UNTO YOU: EVERY ONE THAT TOUCHETH THEM SHALL BE UNCLEAN.K# 27 AND WHATSOEVER GOETH UPON HIS PAWS, AMONG ALL MANNER OF BEASTS THAT GO L ON ALL FOUR, THOSE ARE UNCLEAN UNTO YOU: WHOSO TOUCHETH THEIR CARCASE SHALL BE UNCLEAN UNTIL THE EVEN.EK# 28 AND HE THAT BEARETH THE CARCASE OF THEM SHALL WASH HIS CLOTHES, AND BEA3 UNCLEAN UNTIL THE EVEN: THEY ARE UNCLEAN UNTO YOU.NH# 29 THESE ALSO SHALL BE UNCLEAN UNTO YOU AMONG THE CREEPING THINGS THATL CREEP UPON THE EARTH; THE WEASEL, AND THE MOUSE, AND THE TORTOISE AFTER HIS KIND,J# 30 AND THE FERRET, AND THE CHAMELEON, AND THE LIZARD, AND THE SNAIL, AND THE MOLE.H# 31 THESE ARE UNCLEAN TO YOU AMONG ALL THAT CREEP: WHOSOEVER DOTH TOUCH: THEM, WHEN THEY BE DEAD, SHALL BE UNCLEAN UNTIL THE EVEN.M# 32 AND UPON WHATSOEVER ANY OF THEM, WHEN THEY ARE DEAD, DOTH FALL, IT SHALLUL BE UNCLEAN; WHETHER IT BE ANY VESSEL OF WOOD, OR RAIMENT, OR SKIN, OR SACK,N WHATSOEVER VESSEL IT BE, WHEREIN ANY WORK IS DONE, IT MUST BE PUT INTO WATER,A AND IT SHALL BE UNCLEAN UNTIL THE EVEN; SO IT SHALL BE CLEANSED.FK# 33 AND EVERY EARTHEN VESSEL, WHEREINTO ANY OF THEM FALLETH, WHATSOEVER IS1/ IN IT SHALL BE UNCLEAN; AND YE SHALL BREAK IT.HM# 34 OF ALL MEAT WHICH MAY BE EATEN, THAT ON WHICH SUCH WATER COMETH SHALL BEG UNCLEAN: AND ALL DRINK THAT MAY BE DRUNK IN EVERY SUCH VESSEL SHALL BEH UNCLEAN.NI# 35 AND EVERY THING WHEREUPON ANY PART OF THEIR CARCASE FALLETH SHALL BEAL UNCLEAN; WHETHER IT BE OVEN, OR RANGES FOR POTS, THEY SHALL BE BROKEN DOWN:4 FOR THEY ARE UNCLEAN AND SHALL BE UNCLEAN UNTO YOU.L# 36 NEVERTHELESS A FOUNTAIN OR PIT, WHEREIN THERE IS PLENTY OF WATER, SHALLB BE CLEAN: BUT THAT WHICH TOUCHETH THEIR CARCASE SHALL BE UNCLEAN.K# 37 AND IF ANY PART OF THEIR CARCASE FALL UPON ANY SOWING SEED WHICH IS TOC BE SOWN, IT SHALL BE CLEAN.I# 38 BUT IF ANY WATER BE PUT UPON THE SEED, AND ANY PART OF THEIR CARCASEE, FALL THEREON, IT SHALL BE UNCLEAN UNTO YOU.M# 39 AND IF ANY BEAST, OF WHICH YE MAY EAT, DIE; HE THAT TOUCHETH THE CARCASEW) THEREOF SHALL BE UNCLEAN UNTIL THE EVEN.EK# 40 AND HE THAT EATETH OF THE CARCASE OF IT SHALL WASH HIS CLOTHES, AND BE N UNCLEAN UNTIL THE EVEN: HE ALSO THAT BEARETH THE CARCASE OF IT SHALL WASH HIS( CLOTHES, AND BE UNCLEAN UNTIL THE EVEN.F# 41 AND EVERY CREEPING THING THAT CREEPETH UPON THE EARTH SHALL BE AN$ ABOMINATION; IT SHALL NOT BE EATEN.L# 42 WHATSOEVER GOETH UPON THE BELLY, AND WHATSOEVER GOETH UPON ALL FOUR, ORH WHATSOEVER HATH MORE FEET AMONG ALL CREEPING THINGS THAT CREEP UPON THE; EARTH, THEM YE SHALL NOT EAT; FOR THEY ARE AN ABOMINATION.HI# 43 YE SHALL NOT MAKE YOURSELVES ABOMINABLE WITH ANY CREEPING THING THATNM CREEPETH, NEITHER SHALL YE MAKE YOURSELVES UNCLEAN WITH THEM, THAT YE SHOULDS BE DEFILED THEREBY.L# 44 FOR I AM THE LORD YOUR GOD: YE SHALL THEREFORE SANCTIFY YOURSELVES, ANDM YE SHALL BE HOLY; FOR I AM HOLY: NEITHER SHALL YE DEFILE YOURSELVES WITH ANYY7 MANNER OF CREEPING THING THAT CREEPETH UPON THE EARTH.HK# 45 FOR I AM THE LORD THAT BRINGETH YOU UP OUT OF THE LAND OF EGYPT, TO BEL5 YOUR GOD: YE SHALL THEREFORE BE HOLY, FOR I AM HOLY. H# 46 THIS IS THE LAW OF THE BEASTS, AND OF THE FOWL, AND OF EVERY LIVINGM CREATURE THAT MOVETH IN THE WATERS, AND OF EVERY CREATURE THAT CREEPETH UPON THE EARTH:4L# 47 TO MAKE A DIFFERENCE BETWEEN THE UNCLEAN AND THE CLEAN, AND BETWEEN THE= BEAST THAT MAY BE EATEN AND THE BEAST THAT MAY NOT BE EATEN.S = CHAPTER 12 N*# 1 AND THE LORD SPAKE UNTO MOSES, SAYING,H# 2 SPEAK UNTO THE CHILDREN OF ISRAEL, SAYING, IF A WOMAN HAVE CONCEIVEDL SEED, AND BORN A MAN CHILD: THEN SHE SHALL BE UNCLEAN SEVEN DAYS; ACCORDINGF TO THE DAYS OF THE SEPARATION FOR HER INFIRMITY SHALL SHE BE UNCLEAN.I# 3 AND IN THE EIGHTH DAY THE FLESH OF H00aP)(D%5%T6%! !IS FORESKIN SHALL BE CIRCUMCISED.TG# 4 AND SHE SHALL THEN CONTINUE IN THE BLOOD OF HER PURIFYING THREE ANDAM THIRTY DAYS; SHE SHALL TOUCH NO HALLOWED THING, NOR COME INTO THE SANCTUARY,. UNTIL THE DAYS OF HER PURIFYING BE FULFILLED.L# 5 BUT IF SHE BEAR A MAID CHILD, THEN SHE SHALL BE UNCLEAN TWO WEEKS, AS INE HER SEPARATION: AND SHE SHALL CONTINUE IN THE BLOOD OF HER PURIFYINGY THREESCORE AND SIX DAYS.OI# 6 AND WHEN THE DAYS OF HER PURIFYING ARE FULFILLED, FOR A SON, OR FOR AGM DAUGHTER, SHE SHALL BRING A LAMB OF THE FIRST YEAR FOR A BURNT OFFERING, ANDNJ A YOUNG PIGEON, OR A TURTLEDOVE, FOR A SIN OFFERING, UNTO THE DOOR OF THE1 TABERNACLE OF THE CONGREGATION, UNTO THE PRIEST:YJ# 7 WHO SHALL OFFER IT BEFORE THE LORD, AND MAKE AN ATONEMENT FOR HER; ANDK SHE SHALL BE CLEANSED FROM THE ISSUE OF HER BLOOD. THIS IS THE LAW FOR HERE# THAT HATH BORN A MALE OR A FEMALE.UM# 8 AND IF SHE BE NOT ABLE TO BRING A LAMB, THEN SHE SHALL BRING TWO TURTLES,EN OR TWO YOUNG PIGEONS; THE ONE FOR THE BURNT OFFERING, AND THE OTHER FOR A SINK OFFERING: AND THE PRIEST SHALL MAKE AN ATONEMENT FOR HER, AND SHE SHALL BE  CLEAN. = CHAPTER 13 F4# 1 AND THE LORD SPAKE UNTO MOSES AND AARON, SAYING,G# 2 WHEN A MAN SHALL HAVE IN THE SKIN OF HIS FLESH A RISING, A SCAB, OR;L BRIGHT SPOT, AND IT BE IN THE SKIN OF HIS FLESH LIKE THE PLAGUE OF LEPROSY;L THEN HE SHALL BE BROUGHT UNTO AARON THE PRIEST, OR UNTO ONE OF HIS SONS THE PRIESTS:HI# 3 AND THE PRIEST SHALL LOOK ON THE PLAGUE IN THE SKIN OF THE FLESH: ANDRH WHEN THE HAIR IN THE PLAGUE IS TURNED WHITE, AND THE PLAGUE IN SIGHT BEM DEEPER THAN THE SKIN OF HIS FLESH, IT IS A PLAGUE OF LEPROSY: AND THE PRIEST . SHALL LOOK ON HIM, AND PRONOUNCE HIM UNCLEAN.M# 4 IF THE BRIGHT SPOT BE WHITE IN THE SKIN OF HIS FLESH, AND IN SIGHT BE NOTTI DEEPER THAN THE SKIN, AND THE HAIR THEREOF BE NOT TURNED WHITE; THEN THES: PRIEST SHALL SHUT UP HIM THAT HATH THE PLAGUE SEVEN DAYS:I# 5 AND THE PRIEST SHALL LOOK ON HIM THE SEVENTH DAY: AND, BEHOLD, IF THE N PLAGUE IN HIS SIGHT BE AT A STAY, AND THE PLAGUE SPREAD NOT IN THE SKIN; THEN. THE PRIEST SHALL SHUT HIM UP SEVEN DAYS MORE:K# 6 AND THE PRIEST SHALL LOOK ON HIM AGAIN THE SEVENTH DAY: AND, BEHOLD, IFCH THE PLAGUE BE SOMEWHAT DARK, AND THE PLAGUE SPREAD NOT IN THE SKIN, THEJ PRIEST SHALL PRONOUNCE HIM CLEAN: IT IS BUT A SCAB: AND HE SHALL WASH HIS CLOTHES, AND BE CLEAN.IK# 7 BUT IF THE SCAB SPREAD MUCH ABROAD IN THE SKIN, AFTER THAT HE HATH BEENAL SEEN OF THE PRIEST FOR HIS CLEANSING, HE SHALL BE SEEN OF THE PRIEST AGAIN.L# 8 AND IF THE PRIEST SEE THAT, BEHOLD, THE SCAB SPREADETH IN THE SKIN, THEN9 THE PRIEST SHALL PRONOUNCE HIM UNCLEAN: IT IS A LEPROSY.HM# 9 WHEN THE PLAGUE OF LEPROSY IS IN A MAN, THEN HE SHALL BE BROUGHT UNTO THEH PRIEST;M# 10 AND THE PRIEST SHALL SEE HIM: AND, BEHOLD, IF THE RISING BE WHITE IN THE:M SKIN, AND IT HAVE TURNED THE HAIR WHITE, AND THERE BE QUICK RAW FLESH IN THEC RISING;H# 11 IT IS AN OLD LEPROSY IN THE SKIN OF HIS FLESH, AND THE PRIEST SHALLE PRONOUNCE HIM UNCLEAN, AND SHALL NOT SHUT HIM UP: FOR HE IS UNCLEAN.TM# 12 AND IF A LEPROSY BREAK OUT ABROAD IN THE SKIN, AND THE LEPROSY COVER ALL E THE SKIN OF HIM THAT HATH THE PLAGUE FROM HIS HEAD EVEN TO HIS FOOT, WHERESOEVER THE PRIEST LOOKETH;M# 13 THEN THE PRIEST SHALL CONSIDER: AND, BEHOLD, IF THE LEPROSY HAVE COVEREDIL ALL HIS FLESH, HE SHALL PRONOUNCE HIM CLEAN THAT HATH THE PLAGUE: IT IS ALL TURNED WHITE: HE IS CLEAN.I># 14 BUT WHEN RAW FLESH APPEARETH IN HIM, HE SHALL BE UNCLEAN.M# 15 AND THE PRIEST SHALL SEE THE RAW FLESH, AND PRONOUNCE HIM TO BE UNCLEAN:2/ FOR THE RAW FLESH IS UNCLEAN: IT IS A LEPROSY.NM# 16 OR IF THE RAW FLESH TURN AGAIN, AND BE CHANGED UNTO WHITE, HE SHALL COMEV UNTO THE PRIEST;WL# 17 AND THE PRIEST SHALL SEE HIM: AND, BEHOLD, IF THE PLAGUE BE TURNED INTOM WHITE; THEN THE PRIEST SHALL PRONOUNCE HIM CLEAN THAT HATH THE PLAGUE: HE IST CLEAN.TK# 18 THE FLESH ALSO, IN WHICH, EVEN IN THE SKIN THEREOF, WAS A BOIL, AND ISP HEALED,L# 19 AND IN THE PLACE OF THE BOIL THERE BE A WHITE RISING, OR A BRIG00aX)(<%X>%+%O-%TADATADATAHT SPOT,= WHITE, AND SOMEWHAT REDDISH, AND IT BE SHEWED TO THE PRIEST; L# 20 AND IF, WHEN THE PRIEST SEETH IT, BEHOLD, IT BE IN SIGHT LOWER THAN THEK SKIN, AND THE HAIR THEREOF BE TURNED WHITE; THE PRIEST SHALL PRONOUNCE HIM ; UNCLEAN: IT IS A PLAGUE OF LEPROSY BROKEN OUT OF THE BOIL. G# 21 BUT IF THE PRIEST LOOK ON IT, AND, BEHOLD, THERE BE NO WHITE HAIRSEN THEREIN, AND IF IT BE NOT LOWER THAN THE SKIN, BUT BE SOMEWHAT DARK; THEN THE% PRIEST SHALL SHUT HIM UP SEVEN DAYS: D# 22 AND IF IT SPREAD MUCH ABROAD IN THE SKIN, THEN THE PRIEST SHALL' PRONOUNCE HIM UNCLEAN: IT IS A PLAGUE.IF# 23 BUT IF THE BRIGHT SPOT STAY IN HIS PLACE, AND SPREAD NOT, IT IS A8 BURNING BOIL; AND THE PRIEST SHALL PRONOUNCE HIM CLEAN.J# 24 OR IF THERE BE ANY FLESH, IN THE SKIN WHEREOF THERE IS A HOT BURNING,M AND THE QUICK FLESH THAT BURNETH HAVE A WHITE BRIGHT SPOT, SOMEWHAT REDDISH,E OR WHITE;H# 25 THEN THE PRIEST SHALL LOOK UPON IT: AND, BEHOLD, IF THE HAIR IN THEN BRIGHT SPOT BE TURNED WHITE, AND IT BE IN SIGHT DEEPER THAN THE SKIN; IT IS AL LEPROSY BROKEN OUT OF THE BURNING: WHEREFORE THE PRIEST SHALL PRONOUNCE HIM& UNCLEAN: IT IS THE PLAGUE OF LEPROSY.M# 26 BUT IF THE PRIEST LOOK ON IT, AND, BEHOLD, THERE BE NO WHITE HAIR IN THEOK BRIGHT SPOT, AND IT BE NO LOWER THAN THE OTHER SKIN, BUT BE SOMEWHAT DARK;E. THEN THE PRIEST SHALL SHUT HIM UP SEVEN DAYS:L# 27 AND THE PRIEST SHALL LOOK UPON HIM THE SEVENTH DAY: AND IF IT BE SPREADL MUCH ABROAD IN THE SKIN, THEN THE PRIEST SHALL PRONOUNCE HIM UNCLEAN: IT IS THE PLAGUE OF LEPROSY.IJ# 28 AND IF THE BRIGHT SPOT STAY IN HIS PLACE, AND SPREAD NOT IN THE SKIN,M BUT IT BE SOMEWHAT DARK; IT IS A RISING OF THE BURNING, AND THE PRIEST SHALLN? PRONOUNCE HIM CLEAN: FOR IT IS AN INFLAMMATION OF THE BURNING.N@# 29 IF A MAN OR WOMAN HAVE A PLAGUE UPON THE HEAD OR THE BEARD;I# 30 THEN THE PRIEST SHALL SEE THE PLAGUE: AND, BEHOLD, IF IT BE IN SIGHTUM DEEPER THAN THE SKIN; AND THERE BE IN IT A YELLOW THIN HAIR; THEN THE PRIESTEM SHALL PRONOUNCE HIM UNCLEAN: IT IS A DRY SCALL, EVEN A LEPROSY UPON THE HEADI OR BEARD.J# 31 AND IF THE PRIEST LOOK ON THE PLAGUE OF THE SCALL, AND, BEHOLD, IT BEJ NOT IN SIGHT DEEPER THAN THE SKIN, AND THAT THERE IS NO BLACK HAIR IN IT;J THEN THE PRIEST SHALL SHUT UP HIM THAT HATH THE PLAGUE OF THE SCALL SEVEN DAYS:M# 32 AND IN THE SEVENTH DAY THE PRIEST SHALL LOOK ON THE PLAGUE: AND, BEHOLD,EM IF THE SCALL SPREAD NOT, AND THERE BE IN IT NO YELLOW HAIR, AND THE SCALL BEI# NOT IN SIGHT DEEPER THAN THE SKIN;OI# 33 HE SHALL BE SHAVEN, BUT THE SCALL SHALL HE NOT SHAVE; AND THE PRIESTR7 SHALL SHUT UP HIM THAT HATH THE SCALL SEVEN DAYS MORE:LL# 34 AND IN THE SEVENTH DAY THE PRIEST SHALL LOOK ON THE SCALL: AND, BEHOLD,N IF THE SCALL BE NOT SPREAD IN THE SKIN, NOR BE IN SIGHT DEEPER THAN THE SKIN;N THEN THE PRIEST SHALL PRONOUNCE HIM CLEAN: AND HE SHALL WASH HIS CLOTHES, AND BE CLEAN.B# 35 BUT IF THE SCALL SPREAD MUCH IN THE SKIN AFTER HIS CLEANSING;K# 36 THEN THE PRIEST SHALL LOOK ON HIM: AND, BEHOLD, IF THE SCALL BE SPREADEG IN THE SKIN, THE PRIEST SHALL NOT SEEK FOR YELLOW HAIR; HE IS UNCLEAN.PM# 37 BUT IF THE SCALL BE IN HIS SIGHT AT A STAY, AND THAT THERE IS BLACK HAIREI GROWN UP THEREIN; THE SCALL IS HEALED, HE IS CLEAN: AND THE PRIEST SHALLE PRONOUNCE HIM CLEAN.DK# 38 IF A MAN ALSO OR A WOMAN HAVE IN THE SKIN OF THEIR FLESH BRIGHT SPOTS,L EVEN WHITE BRIGHT SPOTS; M# 39 THEN THE PRIEST SHALL LOOK: AND, BEHOLD, IF THE BRIGHT SPOTS IN THE SKIN6K OF THEIR FLESH BE DARKISH WHITE; IT IS A FRECKLED SPOT THAT GROWETH IN THE  SKIN; HE IS CLEAN.SI# 40 AND THE MAN WHOSE HAIR IS FALLEN OFF HIS HEAD, HE IS BALD; YET IS HE  CLEAN. J# 41 AND HE THAT HATH HIS HAIR FALLEN OFF FROM THE PART OF HIS HEAD TOWARD0 HIS FACE, HE IS FOREHEAD BALD: YET IS HE CLEAN.H# 42 AND IF THERE BE IN THE BALD HEAD, OR BALD FOREHEAD, A WHITE REDDISHH SORE; IT IS A LEPROSY SPRUNG UP IN HIS BALD HEAD, OR HIS BALD FOREHEAD.J# 43 THEN THE PRIEST SHALL LOOK UPON IT: AND, BEHOLD, IF THE RISING OF THEH SORE BE WHITE REDDISH IN HIS BALD HEAD, OR IN HIS BALD FOREHEAD00a`)(D%5%T6%! !, AS THE, LEPROSY APPEARETH IN THE SKIN OF THE FLESH;G# 44 HE IS A LEPROUS MAN, HE IS UNCLEAN: THE PRIEST SHALL PRONOUNCE HIMR, UTTERLY UNCLEAN; HIS PLAGUE IS IN HIS HEAD.L# 45 AND THE LEPER IN WHOM THE PLAGUE IS, HIS CLOTHES SHALL BE RENT, AND HISJ HEAD BARE, AND HE SHALL PUT A COVERING UPON HIS UPPER LIP, AND SHALL CRY, UNCLEAN, UNCLEAN.L# 46 ALL THE DAYS WHEREIN THE PLAGUE SHALL BE IN HIM HE SHALL BE DEFILED; HEL IS UNCLEAN: HE SHALL DWELL ALONE; WITHOUT THE CAMP SHALL HIS HABITATION BE.G# 47 THE GARMENT ALSO THAT THE PLAGUE OF LEPROSY IS IN, WHETHER IT BE AS% WOOLLEN GARMENT, OR A LINEN GARMENT;SL# 48 WHETHER IT BE IN THE WARP, OR WOOF; OF LINEN, OR OF WOOLLEN; WHETHER IN& A SKIN, OR IN ANY THING MADE OF SKIN;M# 49 AND IF THE PLAGUE BE GREENISH OR REDDISH IN THE GARMENT, OR IN THE SKIN,UL EITHER IN THE WARP, OR IN THE WOOF, OR IN ANY THING OF SKIN; IT IS A PLAGUE1 OF LEPROSY, AND SHALL BE SHEWED UNTO THE PRIEST:NL# 50 AND THE PRIEST SHALL LOOK UPON THE PLAGUE, AND SHUT UP IT THAT HATH THE PLAGUE SEVEN DAYS:TI# 51 AND HE SHALL LOOK ON THE PLAGUE ON THE SEVENTH DAY: IF THE PLAGUE BEGL SPREAD IN THE GARMENT, EITHER IN THE WARP, OR IN THE WOOF, OR IN A SKIN, ORJ IN ANY WORK THAT IS MADE OF SKIN; THE PLAGUE IS A FRETTING LEPROSY; IT IS UNCLEAN. K# 52 HE SHALL THEREFORE BURN THAT GARMENT, WHETHER WARP OR WOOF, IN WOOLLEN,F OR IN LINEN, OR ANY THING OF SKIN, WHEREIN THE PLAGUE IS: FOR IT IS A1 FRETTING LEPROSY; IT SHALL BE BURNT IN THE FIRE.KK# 53 AND IF THE PRIEST SHALL LOOK, AND, BEHOLD, THE PLAGUE BE NOT SPREAD INDJ THE GARMENT, EITHER IN THE WARP, OR IN THE WOOF, OR IN ANY THING OF SKIN;G# 54 THEN THE PRIEST SHALL COMMAND THAT THEY WASH THE THING WHEREIN THE 4 PLAGUE IS, AND HE SHALL SHUT IT UP SEVEN DAYS MORE:K# 55 AND THE PRIEST SHALL LOOK ON THE PLAGUE, AFTER THAT IT IS WASHED: AND,HI BEHOLD, IF THE PLAGUE HAVE NOT CHANGED HIS COLOUR, AND THE PLAGUE BE NOTHJ SPREAD; IT IS UNCLEAN; THOU SHALT BURN IT IN THE FIRE; IT IS FRET INWARD,& WHETHER IT BE BARE WITHIN OR WITHOUT.K# 56 AND IF THE PRIEST LOOK, AND, BEHOLD, THE PLAGUE BE SOMEWHAT DARK AFTERIK THE WASHING OF IT; THEN HE SHALL REND IT OUT OF THE GARMENT, OR OUT OF THE . SKIN, OR OUT OF THE WARP, OR OUT OF THE WOOF:I# 57 AND IF IT APPEAR STILL IN THE GARMENT, EITHER IN THE WARP, OR IN THEHN WOOF, OR IN ANY THING OF SKIN; IT IS A SPREADING PLAGUE: THOU SHALT BURN THAT! WHEREIN THE PLAGUE IS WITH FIRE.HJ# 58 AND THE GARMENT, EITHER WARP, OR WOOF, OR WHATSOEVER THING OF SKIN ITN BE, WHICH THOU SHALT WASH, IF THE PLAGUE BE DEPARTED FROM THEM, THEN IT SHALL/ BE WASHED THE SECOND TIME, AND SHALL BE CLEAN.IH# 59 THIS IS THE LAW OF THE PLAGUE OF LEPROSY IN A GARMENT OF WOOLLEN ORK LINEN, EITHER IN THE WARP, OR WOOF, OR ANY THING OF SKINS, TO PRONOUNCE ITG# CLEAN, OR TO PRONOUNCE IT UNCLEAN.H = CHAPTER 14 A*# 1 AND THE LORD SPAKE UNTO MOSES, SAYING,L# 2 THIS SHALL BE THE LAW OF THE LEPER IN THE DAY OF HIS CLEANSING: HE SHALL BE BROUGHT UNTO THE PRIEST:M# 3 AND THE PRIEST SHALL GO FORTH OUT OF THE CAMP; AND THE PRIEST SHALL LOOK, > AND, BEHOLD, IF THE PLAGUE OF LEPROSY BE HEALED IN THE LEPER;L# 4 THEN SHALL THE PRIEST COMMAND TO TAKE FOR HIM THAT IS TO BE CLEANSED TWO@ BIRDS ALIVE AND CLEAN, AND CEDAR WOOD, AND SCARLET, AND HYSSOP:F# 5 AND THE PRIEST SHALL COMMAND THAT ONE OF THE BIRDS BE KILLED IN AN# EARTHEN VESSEL OVER RUNNING WATER:SI# 6 AS FOR THE LIVING BIRD, HE SHALL TAKE IT, AND THE CEDAR WOOD, AND THE M SCARLET, AND THE HYSSOP, AND SHALL DIP THEM AND THE LIVING BIRD IN THE BLOODF4 OF THE BIRD THAT WAS KILLED OVER THE RUNNING WATER:J# 7 AND HE SHALL SPRINKLE UPON HIM THAT IS TO BE CLEANSED FROM THE LEPROSYJ SEVEN TIMES, AND SHALL PRONOUNCE HIM CLEAN, AND SHALL LET THE LIVING BIRD LOOSE INTO THE OPEN FIELD.AK# 8 AND HE THAT IS TO BE CLEANSED SHALL WASH HIS CLOTHES, AND SHAVE OFF ALLIM HIS HAIR, AND WASH HIMSELF IN WATER, THAT HE MAY BE CLEAN: AND AFTER THAT HELM SHALL COME INTO THE CAMP, AND SHALL TARRY ABROAD OUT OF HIS TENT SEVEN DAYS. L# 9 BUT IT SHALL BE ON THE SEVENTH DAY, THAT HE SHALL SHAVE ALL 00ah)(<%X>%+%O-%TADATADATAHIS HAIR OFFJ HIS HEAD AND HIS BEARD AND HIS EYEBROWS, EVEN ALL HIS HAIR HE SHALL SHAVEK OFF: AND HE SHALL WASH HIS CLOTHES, ALSO HE SHALL WASH HIS FLESH IN WATER,E AND HE SHALL BE CLEAN. J# 10 AND ON THE EIGHTH DAY HE SHALL TAKE TWO HE LAMBS WITHOUT BLEMISH, ANDN ONE EWE LAMB OF THE FIRST YEAR WITHOUT BLEMISH, AND THREE TENTH DEALS OF FINEA FLOUR FOR A MEAT OFFERING, MINGLED WITH OIL, AND ONE LOG OF OIL.AM# 11 AND THE PRIEST THAT MAKETH HIM CLEAN SHALL PRESENT THE MAN THAT IS TO BE M MADE CLEAN, AND THOSE THINGS, BEFORE THE LORD, AT THE DOOR OF THE TABERNACLEL OF THE CONGREGATION:EH# 12 AND THE PRIEST SHALL TAKE ONE HE LAMB, AND OFFER HIM FOR A TRESPASSK OFFERING, AND THE LOG OF OIL, AND WAVE THEM FOR A WAVE OFFERING BEFORE THEH LORD:H# 13 AND HE SHALL SLAY THE LAMB IN THE PLACE WHERE HE SHALL KILL THE SINL OFFERING AND THE BURNT OFFERING, IN THE HOLY PLACE: FOR AS THE SIN OFFERING> IS THE PRIESTS, SO IS THE TRESPASS OFFERING: IT IS MOST HOLY:J# 14 AND THE PRIEST SHALL TAKE SOME OF THE BLOOD OF THE TRESPASS OFFERING,L AND THE PRIEST SHALL PUT IT UPON THE TIP OF THE RIGHT EAR OF HIM THAT IS TOM BE CLEANSED, AND UPON THE THUMB OF HIS RIGHT HAND, AND UPON THE GREAT TOE OFG HIS RIGHT FOOT:K# 15 AND THE PRIEST SHALL TAKE SOME OF THE LOG OF OIL, AND POUR IT INTO THE  PALM OF HIS OWN LEFT HAND:IM# 16 AND THE PRIEST SHALL DIP HIS RIGHT FINGER IN THE OIL THAT IS IN HIS LEFT K HAND, AND SHALL SPRINKLE OF THE OIL WITH HIS FINGER SEVEN TIMES BEFORE THE4 LORD:M# 17 AND OF THE REST OF THE OIL THAT IS IN HIS HAND SHALL THE PRIEST PUT UPON N THE TIP OF THE RIGHT EAR OF HIM THAT IS TO BE CLEANSED, AND UPON THE THUMB OFL HIS RIGHT HAND, AND UPON THE GREAT TOE OF HIS RIGHT FOOT, UPON THE BLOOD OF THE TRESPASS OFFERING:LI# 18 AND THE REMNANT OF THE OIL THAT IS IN THE PRIESTS HAND HE SHALL POUR J UPON THE HEAD OF HIM THAT IS TO BE CLEANSED: AND THE PRIEST SHALL MAKE AN# ATONEMENT FOR HIM BEFORE THE LORD. K# 19 AND THE PRIEST SHALL OFFER THE SIN OFFERING, AND MAKE AN ATONEMENT FOREM HIM THAT IS TO BE CLEANSED FROM HIS UNCLEANNESS; AND AFTERWARD HE SHALL KILLI THE BURNT OFFERING:M# 20 AND THE PRIEST SHALL OFFER THE BURNT OFFERING AND THE MEAT OFFERING UPON K THE ALTAR: AND THE PRIEST SHALL MAKE AN ATONEMENT FOR HIM, AND HE SHALL BER CLEAN. K# 21 AND IF HE BE POOR, AND CANNOT GET SO MUCH; THEN HE SHALL TAKE ONE LAMBTK FOR A TRESPASS OFFERING TO BE WAVED, TO MAKE AN ATONEMENT FOR HIM, AND ONEHL TENTH DEAL OF FINE FLOUR MINGLED WITH OIL FOR A MEAT OFFERING, AND A LOG OF OIL;EJ# 22 AND TWO TURTLEDOVES, OR TWO YOUNG PIGEONS, SUCH AS HE IS ABLE TO GET;E AND THE ONE SHALL BE A SIN OFFERING, AND THE OTHER A BURNT OFFERING.FI# 23 AND HE SHALL BRING THEM ON THE EIGHTH DAY FOR HIS CLEANSING UNTO THENN PRIEST, UNTO THE DOOR OF THE TABERNACLE OF THE CONGREGATION, BEFORE THE LORD.M# 24 AND THE PRIEST SHALL TAKE THE LAMB OF THE TRESPASS OFFERING, AND THE LOGVL OF OIL, AND THE PRIEST SHALL WAVE THEM FOR A WAVE OFFERING BEFORE THE LORD:H# 25 AND HE SHALL KILL THE LAMB OF THE TRESPASS OFFERING, AND THE PRIESTK SHALL TAKE SOME OF THE BLOOD OF THE TRESPASS OFFERING, AND PUT IT UPON THE N TIP OF THE RIGHT EAR OF HIM THAT IS TO BE CLEANSED, AND UPON THE THUMB OF HIS6 RIGHT HAND, AND UPON THE GREAT TOE OF HIS RIGHT FOOT:M# 26 AND THE PRIEST SHALL POUR OF THE OIL INTO THE PALM OF HIS OWN LEFT HAND:EM# 27 AND THE PRIEST SHALL SPRINKLE WITH HIS RIGHT FINGER SOME OF THE OIL THATD1 IS IN HIS LEFT HAND SEVEN TIMES BEFORE THE LORD:OL# 28 AND THE PRIEST SHALL PUT OF THE OIL THAT IS IN HIS HAND UPON THE TIP OFM THE RIGHT EAR OF HIM THAT IS TO BE CLEANSED, AND UPON THE THUMB OF HIS RIGHTOL HAND, AND UPON THE GREAT TOE OF HIS RIGHT FOOT, UPON THE PLACE OF THE BLOOD OF THE TRESPASS OFFERING:J# 29 AND THE REST OF THE OIL THAT IS IN THE PRIESTS HAND HE SHALL PUT UPONL THE HEAD OF HIM THAT IS TO BE CLEANSED, TO MAKE AN ATONEMENT FOR HIM BEFORE THE LORD.L# 30 AND HE SHALL OFFER THE ONE OF THE TURTLEDOVES, OR OF THE YOUNG PIGEONS, SUCH AS HE CAN GET;H# 31 EVEN SUCH AS HE IS ABLE TO GET, THE ONE FOR A SIN O00ap)(D%5%T6%! !FFERING, AND THEN OTHER FOR A BURNT OFFERING, WITH THE MEAT OFFERING: AND THE PRIEST SHALL MAKE= AN ATONEMENT FOR HIM THAT IS TO BE CLEANSED BEFORE THE LORD.DK# 32 THIS IS THE LAW OF HIM IN WHOM IS THE PLAGUE OF LEPROSY, WHOSE HAND ISE8 NOT ABLE TO GET THAT WHICH PERTAINETH TO HIS CLEANSING.:# 33 AND THE LORD SPAKE UNTO MOSES AND UNTO AARON, SAYING,G# 34 WHEN YE BE COME INTO THE LAND OF CANAAN, WHICH I GIVE TO YOU FOR ANK POSSESSION, AND I PUT THE PLAGUE OF LEPROSY IN A HOUSE OF THE LAND OF YOURS POSSESSION;L# 35 AND HE THAT OWNETH THE HOUSE SHALL COME AND TELL THE PRIEST, SAYING, IT9 SEEMETH TO ME THERE IS AS IT WERE A PLAGUE IN THE HOUSE:RH# 36 THEN THE PRIEST SHALL COMMAND THAT THEY EMPTY THE HOUSE, BEFORE THEJ PRIEST GO INTO IT TO SEE THE PLAGUE, THAT ALL THAT IS IN THE HOUSE BE NOTE MADE UNCLEAN: AND AFTERWARD THE PRIEST SHALL GO IN TO SEE THE HOUSE:EJ# 37 AND HE SHALL LOOK ON THE PLAGUE, AND, BEHOLD, IF THE PLAGUE BE IN THEL WALLS OF THE HOUSE WITH HOLLOW STRAKES, GREENISH OR REDDISH, WHICH IN SIGHT ARE LOWER THAN THE WALL; L# 38 THEN THE PRIEST SHALL GO OUT OF THE HOUSE TO THE DOOR OF THE HOUSE, AND SHUT UP THE HOUSE SEVEN DAYS:J# 39 AND THE PRIEST SHALL COME AGAIN THE SEVENTH DAY, AND SHALL LOOK: AND,; BEHOLD, IF THE PLAGUE BE SPREAD IN THE WALLS OF THE HOUSE;OJ# 40 THEN THE PRIEST SHALL COMMAND THAT THEY TAKE AWAY THE STONES IN WHICHJ THE PLAGUE IS, AND THEY SHALL CAST THEM INTO AN UNCLEAN PLACE WITHOUT THE CITY:L# 41 AND HE SHALL CAUSE THE HOUSE TO BE SCRAPED WITHIN ROUND ABOUT, AND THEYN SHALL POUR OUT THE DUST THAT THEY SCRAPE OFF WITHOUT THE CITY INTO AN UNCLEAN PLACE: I# 42 AND THEY SHALL TAKE OTHER STONES, AND PUT THEM IN THE PLACE OF THOSEOF STONES; AND HE SHALL TAKE OTHER MORTER, AND SHALL PLAISTER THE HOUSE.L# 43 AND IF THE PLAGUE COME AGAIN, AND BREAK OUT IN THE HOUSE, AFTER THAT HEN HATH TAKEN AWAY THE STONES, AND AFTER HE HATH SCRAPED THE HOUSE, AND AFTER IT IS PLAISTERED;EG# 44 THEN THE PRIEST SHALL COME AND LOOK, AND, BEHOLD, IF THE PLAGUE BEHK SPREAD IN THE HOUSE, IT IS A FRETTING LEPROSY IN THE HOUSE; IT IS UNCLEAN.UH# 45 AND HE SHALL BREAK DOWN THE HOUSE, THE STONES OF IT, AND THE TIMBERL THEREOF, AND ALL THE MORTER OF THE HOUSE; AND HE SHALL CARRY THEM FORTH OUT# OF THE CITY INTO AN UNCLEAN PLACE.3K# 46 MOREOVER HE THAT GOETH INTO THE HOUSE ALL THE WHILE THAT IT IS SHUT UPT! SHALL BE UNCLEAN UNTIL THE EVEN.HG# 47 AND HE THAT LIETH IN THE HOUSE SHALL WASH HIS CLOTHES; AND HE THATR, EATETH IN THE HOUSE SHALL WASH HIS CLOTHES.H# 48 AND IF THE PRIEST SHALL COME IN, AND LOOK UPON IT, AND, BEHOLD, THEN PLAGUE HATH NOT SPREAD IN THE HOUSE, AFTER THE HOUSE WAS PLAISTERED: THEN THEF PRIEST SHALL PRONOUNCE THE HOUSE CLEAN, BECAUSE THE PLAGUE IS HEALED.J# 49 AND HE SHALL TAKE TO CLEANSE THE HOUSE TWO BIRDS, AND CEDAR WOOD, AND SCARLET, AND HYSSOP:LM# 50 AND HE SHALL KILL THE ONE OF THE BIRDS IN AN EARTHEN VESSEL OVER RUNNING  WATER:HK# 51 AND HE SHALL TAKE THE CEDAR WOOD, AND THE HYSSOP, AND THE SCARLET, ANDLI THE LIVING BIRD, AND DIP THEM IN THE BLOOD OF THE SLAIN BIRD, AND IN THE 3 RUNNING WATER, AND SPRINKLE THE HOUSE SEVEN TIMES:EL# 52 AND HE SHALL CLEANSE THE HOUSE WITH THE BLOOD OF THE BIRD, AND WITH THEK RUNNING WATER, AND WITH THE LIVING BIRD, AND WITH THE CEDAR WOOD, AND WITHO" THE HYSSOP, AND WITH THE SCARLET:F# 53 BUT HE SHALL LET GO THE LIVING BIRD OUT OF THE CITY INTO THE OPEND FIELDS, AND MAKE AN ATONEMENT FOR THE HOUSE: AND IT SHALL BE CLEAN.D# 54 THIS IS THE LAW FOR ALL MANNER OF PLAGUE OF LEPROSY, AND SCALL,6# 55 AND FOR THE LEPROSY OF A GARMENT, AND OF A HOUSE,=# 56 AND FOR A RISING, AND FOR A SCAB, AND FOR A BRIGHT SPOT:HJ# 57 TO TEACH WHEN IT IS UNCLEAN, AND WHEN IT IS CLEAN: THIS IS THE LAW OF LEPROSY. = CHAPTER 15 7# 1 AND THE LORD SPAKE UNTO MOSES AND TO AARON, SAYING,DM# 2 SPEAK UNTO THE CHILDREN OF ISRAEL, AND SAY UNTO THEM, WHEN ANY MAN HATH ATD RUNNING ISSUE OUT OF HIS FLESH, BECAUSE OF HIS ISSUE HE IS UNCLEAN.I# 3 AND THIS SHALL BE HIS UNCLEANNESS IN HIS ISSUE: WHETHER HIS FLESH RUNCB WITH HIS ISSUE, O00ax)(<%X>%+%O-%TADATADATAR HIS FLESH BE STOPPED FROM HIS ISSUE, IT IS HIS UNCLEANNESS.,J# 4 EVERY BED, WHEREON HE LIETH THAT HATH THE ISSUE, IS UNCLEAN: AND EVERY- THING, WHEREON HE SITTETH, SHALL BE UNCLEAN.OL# 5 AND WHOSOEVER TOUCHETH HIS BED SHALL WASH HIS CLOTHES, AND BATHE HIMSELF) IN WATER, AND BE UNCLEAN UNTIL THE EVEN.DM# 6 AND HE THAT SITTETH ON ANY THING WHEREON HE SAT THAT HATH THE ISSUE SHALLOM WASH HIS CLOTHES, AND BATHE HIMSELF IN WATER, AND BE UNCLEAN UNTIL THE EVEN. L# 7 AND HE THAT TOUCHETH THE FLESH OF HIM THAT HATH THE ISSUE SHALL WASH HISD CLOTHES, AND BATHE HIMSELF IN WATER, AND BE UNCLEAN UNTIL THE EVEN.L# 8 AND IF HE THAT HATH THE ISSUE SPIT UPON HIM THAT IS CLEAN; THEN HE SHALLM WASH HIS CLOTHES, AND BATHE HIMSELF IN WATER, AND BE UNCLEAN UNTIL THE EVEN.EF# 9 AND WHAT SADDLE SOEVER HE RIDETH UPON THAT HATH THE ISSUE SHALL BE UNCLEAN.GI# 10 AND WHOSOEVER TOUCHETH ANY THING THAT WAS UNDER HIM SHALL BE UNCLEANMG UNTIL THE EVEN: AND HE THAT BEARETH ANY OF THOSE THINGS SHALL WASH HISTD CLOTHES, AND BATHE HIMSELF IN WATER, AND BE UNCLEAN UNTIL THE EVEN.L# 11 AND WHOMSOEVER HE TOUCHETH THAT HATH THE ISSUE, AND HATH NOT RINSED HISN HANDS IN WATER, HE SHALL WASH HIS CLOTHES, AND BATHE HIMSELF IN WATER, AND BE UNCLEAN UNTIL THE EVEN.M# 12 AND THE VESSEL OF EARTH, THAT HE TOUCHETH WHICH HATH THE ISSUE, SHALL BEH; BROKEN: AND EVERY VESSEL OF WOOD SHALL BE RINSED IN WATER. K# 13 AND WHEN HE THAT HATH AN ISSUE IS CLEANSED OF HIS ISSUE; THEN HE SHALLEJ NUMBER TO HIMSELF SEVEN DAYS FOR HIS CLEANSING, AND WASH HIS CLOTHES, AND6 BATHE HIS FLESH IN RUNNING WATER, AND SHALL BE CLEAN.M# 14 AND ON THE EIGHTH DAY HE SHALL TAKE TO HIM TWO TURTLEDOVES, OR TWO YOUNGLI PIGEONS, AND COME BEFORE THE LORD UNTO THE DOOR OF THE TABERNACLE OF THEE- CONGREGATION, AND GIVE THEM UNTO THE PRIEST:CI# 15 AND THE PRIEST SHALL OFFER THEM, THE ONE FOR A SIN OFFERING, AND THELK OTHER FOR A BURNT OFFERING; AND THE PRIEST SHALL MAKE AN ATONEMENT FOR HIMS BEFORE THE LORD FOR HIS ISSUE.OK# 16 AND IF ANY MANS SEED OF COPULATION GO OUT FROM HIM, THEN HE SHALL WASHF7 ALL HIS FLESH IN WATER, AND BE UNCLEAN UNTIL THE EVEN.HJ# 17 AND EVERY GARMENT, AND EVERY SKIN, WHEREON IS THE SEED OF COPULATION,; SHALL BE WASHED WITH WATER, AND BE UNCLEAN UNTIL THE EVEN.HI# 18 THE WOMAN ALSO WITH WHOM MAN SHALL LIE WITH SEED OF COPULATION, THEYLE SHALL BOTH BATHE THEMSELVES IN WATER, AND BE UNCLEAN UNTIL THE EVEN.OK# 19 AND IF A WOMAN HAVE AN ISSUE, AND HER ISSUE IN HER FLESH BE BLOOD, SHERK SHALL BE PUT APART SEVEN DAYS: AND WHOSOEVER TOUCHETH HER SHALL BE UNCLEANE UNTIL THE EVEN.L# 20 AND EVERY THING THAT SHE LIETH UPON IN HER SEPARATION SHALL BE UNCLEAN:9 EVERY THING ALSO THAT SHE SITTETH UPON SHALL BE UNCLEAN.BM# 21 AND WHOSOEVER TOUCHETH HER BED SHALL WASH HIS CLOTHES, AND BATHE HIMSELFW) IN WATER, AND BE UNCLEAN UNTIL THE EVEN.TF# 22 AND WHOSOEVER TOUCHETH ANY THING THAT SHE SAT UPON SHALL WASH HISD CLOTHES, AND BATHE HIMSELF IN WATER, AND BE UNCLEAN UNTIL THE EVEN.J# 23 AND IF IT BE ON HER BED, OR ON ANY THING WHEREON SHE SITTETH, WHEN HE1 TOUCHETH IT, HE SHALL BE UNCLEAN UNTIL THE EVEN.IH# 24 AND IF ANY MAN LIE WITH HER AT ALL, AND HER FLOWERS BE UPON HIM, HEG SHALL BE UNCLEAN SEVEN DAYS; AND ALL THE BED WHEREON HE LIETH SHALL BE UNCLEAN.LK# 25 AND IF A WOMAN HAVE AN ISSUE OF HER BLOOD MANY DAYS OUT OF THE TIME OFVM HER SEPARATION, OR IF IT RUN BEYOND THE TIME OF HER SEPARATION; ALL THE DAYSCL OF THE ISSUE OF HER UNCLEANNESS SHALL BE AS THE DAYS OF HER SEPARATION: SHE SHALL BE UNCLEAN.L# 26 EVERY BED WHEREON SHE LIETH ALL THE DAYS OF HER ISSUE SHALL BE UNTO HERG AS THE BED OF HER SEPARATION: AND WHATSOEVER SHE SITTETH UPON SHALL BEE/ UNCLEAN, AS THE UNCLEANNESS OF HER SEPARATION. M# 27 AND WHOSOEVER TOUCHETH THOSE THINGS SHALL BE UNCLEAN, AND SHALL WASH HISED CLOTHES, AND BATHE HIMSELF IN WATER, AND BE UNCLEAN UNTIL THE EVEN.J# 28 BUT IF SHE BE CLEANSED OF HER ISSUE, THEN SHE SHALL NUMBER TO HERSELF/ SEVEN DAYS, AND AFTER THAT SHE SHALL BE CLEAN.SL# 29 AND ON THE EIGHTH DAY SHE SHALL TAKE UNTO HER TWO TURTLES, 00a)(D%5%T6%! !OR TWO YOUNGN PIGEONS, AND BRING THEM UNTO THE PRIEST, TO THE DOOR OF THE TABERNACLE OF THE CONGREGATION.M# 30 AND THE PRIEST SHALL OFFER THE ONE FOR A SIN OFFERING, AND THE OTHER FORVL A BURNT OFFERING; AND THE PRIEST SHALL MAKE AN ATONEMENT FOR HER BEFORE THE' LORD FOR THE ISSUE OF HER UNCLEANNESS.TJ# 31 THUS SHALL YE SEPARATE THE CHILDREN OF ISRAEL FROM THEIR UNCLEANNESS;L THAT THEY DIE NOT IN THEIR UNCLEANNESS, WHEN THEY DEFILE MY TABERNACLE THAT IS AMONG THEM.SK# 32 THIS IS THE LAW OF HIM THAT HATH AN ISSUE, AND OF HIM WHOSE SEED GOETHH' FROM HIM, AND IS DEFILED THEREWITH; ITFK# 33 AND OF HER THAT IS SICK OF HER FLOWERS, AND OF HIM THAT HATH AN ISSUE,IN OF THE MAN, AND OF THE WOMAN, AND OF HIM THAT LIETH WITH HER THAT IS UNCLEAN. = CHAPTER 16 EK# 1 AND THE LORD SPAKE UNTO MOSES AFTER THE DEATH OF THE TWO SONS OF AARON,H- WHEN THEY OFFERED BEFORE THE LORD, AND DIED;TL# 2 AND THE LORD SAID UNTO MOSES, SPEAK UNTO AARON THY BROTHER, THAT HE COMEL NOT AT ALL TIMES INTO THE HOLY PLACE WITHIN THE VAIL BEFORE THE MERCY SEAT,L WHICH IS UPON THE ARK; THAT HE DIE NOT: FOR I WILL APPEAR IN THE CLOUD UPON THE MERCY SEAT.M# 3 THUS SHALL AARON COME INTO THE HOLY PLACE: WITH A YOUNG BULLOCK FOR A SINI* OFFERING, AND A RAM FOR A BURNT OFFERING.M# 4 HE SHALL PUT ON THE HOLY LINEN COAT, AND HE SHALL HAVE THE LINEN BREECHESFL UPON HIS FLESH, AND SHALL BE GIRDED WITH A LINEN GIRDLE, AND WITH THE LINENL MITRE SHALL HE BE ATTIRED: THESE ARE HOLY GARMENTS; THEREFORE SHALL HE WASH( HIS FLESH IN WATER, AND SO PUT THEM ON.L# 5 AND HE SHALL TAKE OF THE CONGREGATION OF THE CHILDREN OF ISRAEL TWO KIDSC OF THE GOATS FOR A SIN OFFERING, AND ONE RAM FOR A BURNT OFFERING.HG# 6 AND AARON SHALL OFFER HIS BULLOCK OF THE SIN OFFERING, WHICH IS FORR? HIMSELF, AND MAKE AN ATONEMENT FOR HIMSELF, AND FOR HIS HOUSE.LL# 7 AND HE SHALL TAKE THE TWO GOATS, AND PRESENT THEM BEFORE THE LORD AT THE, DOOR OF THE TABERNACLE OF THE CONGREGATION.K# 8 AND AARON SHALL CAST LOTS UPON THE TWO GOATS; ONE LOT FOR THE LORD, ANDE! THE OTHER LOT FOR THE SCAPEGOAT.SK# 9 AND AARON SHALL BRING THE GOAT UPON WHICH THE LORDS LOT FELL, AND OFFERT HIM FOR A SIN OFFERING.F# 10 BUT THE GOAT, ON WHICH THE LOT FELL TO BE THE SCAPEGOAT, SHALL BEK PRESENTED ALIVE BEFORE THE LORD, TO MAKE AN ATONEMENT WITH HIM, AND TO LET,, HIM GO FOR A SCAPEGOAT INTO THE WILDERNESS.H# 11 AND AARON SHALL BRING THE BULLOCK OF THE SIN OFFERING, WHICH IS FORI HIMSELF, AND SHALL MAKE AN ATONEMENT FOR HIMSELF, AND FOR HIS HOUSE, AND A SHALL KILL THE BULLOCK OF THE SIN OFFERING WHICH IS FOR HIMSELF: J# 12 AND HE SHALL TAKE A CENSER FULL OF BURNING COALS OF FIRE FROM OFF THEM ALTAR BEFORE THE LORD, AND HIS HANDS FULL OF SWEET INCENSE BEATEN SMALL, ANDE BRING IT WITHIN THE VAIL:I# 13 AND HE SHALL PUT THE INCENSE UPON THE FIRE BEFORE THE LORD, THAT THEOJ CLOUD OF THE INCENSE MAY COVER THE MERCY SEAT THAT IS UPON THE TESTIMONY, THAT HE DIE NOT: L# 14 AND HE SHALL TAKE OF THE BLOOD OF THE BULLOCK, AND SPRINKLE IT WITH HISH FINGER UPON THE MERCY SEAT EASTWARD; AND BEFORE THE MERCY SEAT SHALL HE3 SPRINKLE OF THE BLOOD WITH HIS FINGER SEVEN TIMES. M# 15 THEN SHALL HE KILL THE GOAT OF THE SIN OFFERING, THAT IS FOR THE PEOPLE, K AND BRING HIS BLOOD WITHIN THE VAIL, AND DO WITH THAT BLOOD AS HE DID WITH N THE BLOOD OF THE BULLOCK, AND SPRINKLE IT UPON THE MERCY SEAT, AND BEFORE THE MERCY SEAT:F# 16 AND HE SHALL MAKE AN ATONEMENT FOR THE HOLY PLACE, BECAUSE OF THEN UNCLEANNESS OF THE CHILDREN OF ISRAEL, AND BECAUSE OF THEIR TRANSGRESSIONS INK ALL THEIR SINS: AND SO SHALL HE DO FOR THE TABERNACLE OF THE CONGREGATION,D= THAT REMAINETH AMONG THEM IN THE MIDST OF THEIR UNCLEANNESS.TL# 17 AND THERE SHALL BE NO MAN IN THE TABERNACLE OF THE CONGREGATION WHEN HEM GOETH IN TO MAKE AN ATONEMENT IN THE HOLY PLACE, UNTIL HE COME OUT, AND HAVESF MADE AN ATONEMENT FOR HIMSELF, AND FOR HIS HOUSEHOLD, AND FOR ALL THE CONGREGATION OF ISRAEL.L# 18 AND HE SHALL GO OUT UNTO THE ALTAR THAT IS BEFORE THE LORD, AND MAKE ANI ATONEMENT FOR IT; AND SHALL TAKE OF THE BLOOD OF THE 00a)(<%X>%+%O-%TADATADATABULLOCK, AND OF THEOG BLOOD OF THE GOAT, AND PUT IT UPON THE HORNS OF THE ALTAR ROUND ABOUT. L# 19 AND HE SHALL SPRINKLE OF THE BLOOD UPON IT WITH HIS FINGER SEVEN TIMES,N AND CLEANSE IT, AND HALLOW IT FROM THE UNCLEANNESS OF THE CHILDREN OF ISRAEL.H# 20 AND WHEN HE HATH MADE AN END OF RECONCILING THE HOLY PLACE, AND THEM TABERNACLE OF THE CONGREGATION, AND THE ALTAR, HE SHALL BRING THE LIVE GOAT:UK# 21 AND AARON SHALL LAY BOTH HIS HANDS UPON THE HEAD OF THE LIVE GOAT, ANDAM CONFESS OVER HIM ALL THE INIQUITIES OF THE CHILDREN OF ISRAEL, AND ALL THEIRTN TRANSGRESSIONS IN ALL THEIR SINS, PUTTING THEM UPON THE HEAD OF THE GOAT, ANDB SHALL SEND HIM AWAY BY THE HAND OF A FIT MAN INTO THE WILDERNESS:J# 22 AND THE GOAT SHALL BEAR UPON HIM ALL THEIR INIQUITIES UNTO A LAND NOT; INHABITED: AND HE SHALL LET GO THE GOAT IN THE WILDERNESS.LL# 23 AND AARON SHALL COME INTO THE TABERNACLE OF THE CONGREGATION, AND SHALLN PUT OFF THE LINEN GARMENTS, WHICH HE PUT ON WHEN HE WENT INTO THE HOLY PLACE, AND SHALL LEAVE THEM THERE:M# 24 AND HE SHALL WASH HIS FLESH WITH WATER IN THE HOLY PLACE, AND PUT ON HISIF GARMENTS, AND COME FORTH, AND OFFER HIS BURNT OFFERING, AND THE BURNTG OFFERING OF THE PEOPLE, AND MAKE AN ATONEMENT FOR HIMSELF, AND FOR THE  PEOPLE.B# 25 AND THE FAT OF THE SIN OFFERING SHALL HE BURN UPON THE ALTAR.J# 26 AND HE THAT LET GO THE GOAT FOR THE SCAPEGOAT SHALL WASH HIS CLOTHES,@ AND BATHE HIS FLESH IN WATER, AND AFTERWARD COME INTO THE CAMP.M# 27 AND THE BULLOCK FOR THE SIN OFFERING, AND THE GOAT FOR THE SIN OFFERING, J WHOSE BLOOD WAS BROUGHT IN TO MAKE ATONEMENT IN THE HOLY PLACE, SHALL ONEK CARRY FORTH WITHOUT THE CAMP; AND THEY SHALL BURN IN THE FIRE THEIR SKINS,T! AND THEIR FLESH, AND THEIR DUNG.RL# 28 AND HE THAT BURNETH THEM SHALL WASH HIS CLOTHES, AND BATHE HIS FLESH IN2 WATER, AND AFTERWARD HE SHALL COME INTO THE CAMP.G# 29 AND THIS SHALL BE A STATUTE FOR EVER UNTO YOU: THAT IN THE SEVENTHAM MONTH, ON THE TENTH DAY OF THE MONTH, YE SHALL AFFLICT YOUR SOULS, AND DO NONG WORK AT ALL, WHETHER IT BE ONE OF YOUR OWN COUNTRY, OR A STRANGER THATK SOJOURNETH AMONG YOU:K# 30 FOR ON THAT DAY SHALL THE PRIEST MAKE AN ATONEMENT FOR YOU, TO CLEANSEI> YOU, THAT YE MAY BE CLEAN FROM ALL YOUR SINS BEFORE THE LORD.M# 31 IT SHALL BE A SABBATH OF REST UNTO YOU, AND YE SHALL AFFLICT YOUR SOULS,  BY A STATUTE FOR EVER.NJ# 32 AND THE PRIEST, WHOM HE SHALL ANOINT, AND WHOM HE SHALL CONSECRATE TOD MINISTER IN THE PRIESTS OFFICE IN HIS FATHERS STEAD, SHALL MAKE THEG ATONEMENT, AND SHALL PUT ON THE LINEN CLOTHES, EVEN THE HOLY GARMENTS:,M# 33 AND HE SHALL MAKE AN ATONEMENT FOR THE HOLY SANCTUARY, AND HE SHALL MAKEIL AN ATONEMENT FOR THE TABERNACLE OF THE CONGREGATION, AND FOR THE ALTAR, ANDJ HE SHALL MAKE AN ATONEMENT FOR THE PRIESTS, AND FOR ALL THE PEOPLE OF THE CONGREGATION.L# 34 AND THIS SHALL BE AN EVERLASTING STATUTE UNTO YOU, TO MAKE AN ATONEMENTM FOR THE CHILDREN OF ISRAEL FOR ALL THEIR SINS ONCE A YEAR. AND HE DID AS THES LORD COMMANDED MOSES. = CHAPTER 17 E*# 1 AND THE LORD SPAKE UNTO MOSES, SAYING,M# 2 SPEAK UNTO AARON, AND UNTO HIS SONS, AND UNTO ALL THE CHILDREN OF ISRAEL,YL AND SAY UNTO THEM; THIS IS THE THING WHICH THE LORD HATH COMMANDED, SAYING,K# 3 WHAT MAN SOEVER THERE BE OF THE HOUSE OF ISRAEL, THAT KILLETH AN OX, ORL@ LAMB, OR GOAT, IN THE CAMP, OR THAT KILLETH IT OUT OF THE CAMP,L# 4 AND BRINGETH IT NOT UNTO THE DOOR OF THE TABERNACLE OF THE CONGREGATION,L TO OFFER AN OFFERING UNTO THE LORD BEFORE THE TABERNACLE OF THE LORD; BLOODN SHALL BE IMPUTED UNTO THAT MAN; HE HATH SHED BLOOD; AND THAT MAN SHALL BE CUT OFF FROM AMONG HIS PEOPLE: L# 5 TO THE END THAT THE CHILDREN OF ISRAEL MAY BRING THEIR SACRIFICES, WHICHK THEY OFFER IN THE OPEN FIELD, EVEN THAT THEY MAY BRING THEM UNTO THE LORD,,J UNTO THE DOOR OF THE TABERNACLE OF THE CONGREGATION, UNTO THE PRIEST, AND. OFFER THEM FOR PEACE OFFERINGS UNTO THE LORD.M# 6 AND THE PRIEST SHALL SPRINKLE THE BLOOD UPON THE ALTAR OF THE LORD AT THERI DOOR OF THE TABERNACLE OF THE CONGREGATION, AND BURN THE FAT FOR A SW00a)(D%5%T6%! !EET; SAVOUR UNTO THE LORD.I# 7 AND THEY SHALL NO MORE OFFER THEIR SACRIFICES UNTO DEVILS, AFTER WHOMHE THEY HAVE GONE A WHORING. THIS SHALL BE A STATUTE FOR EVER UNTO THEMT THROUGHOUT THEIR GENERATIONS.I# 8 AND THOU SHALT SAY UNTO THEM, WHATSOEVER MAN THERE BE OF THE HOUSE OFEK ISRAEL, OR OF THE STRANGERS WHICH SOJOURN AMONG YOU, THAT OFFERETH A BURNT OFFERING OR SACRIFICE,SL# 9 AND BRINGETH IT NOT UNTO THE DOOR OF THE TABERNACLE OF THE CONGREGATION,I TO OFFER IT UNTO THE LORD; EVEN THAT MAN SHALL BE CUT OFF FROM AMONG HIS PEOPLE.L# 10 AND WHATSOEVER MAN THERE BE OF THE HOUSE OF ISRAEL, OR OF THE STRANGERSL THAT SOJOURN AMONG YOU, THAT EATETH ANY MANNER OF BLOOD; I WILL EVEN SET MYN FACE AGAINST THAT SOUL THAT EATETH BLOOD, AND WILL CUT HIM OFF FROM AMONG HIS PEOPLE.J# 11 FOR THE LIFE OF THE FLESH IS IN THE BLOOD: AND I HAVE GIVEN IT TO YOUM UPON THE ALTAR TO MAKE AN ATONEMENT FOR YOUR SOULS: FOR IT IS THE BLOOD THATA" MAKETH AN ATONEMENT FOR THE SOUL.K# 12 THEREFORE I SAID UNTO THE CHILDREN OF ISRAEL, NO SOUL OF YOU SHALL EAT G BLOOD, NEITHER SHALL ANY STRANGER THAT SOJOURNETH AMONG YOU EAT BLOOD.SE# 13 AND WHATSOEVER MAN THERE BE OF THE CHILDREN OF ISRAEL, OR OF THE J STRANGERS THAT SOJOURN AMONG YOU, WHICH HUNTETH AND CATCHETH ANY BEAST ORL FOWL THAT MAY BE EATEN; HE SHALL EVEN POUR OUT THE BLOOD THEREOF, AND COVER IT WITH DUST.E# 14 FOR IT IS THE LIFE OF ALL FLESH; THE BLOOD OF IT IS FOR THE LIFEBN THEREOF: THEREFORE I SAID UNTO THE CHILDREN OF ISRAEL, YE SHALL EAT THE BLOODG OF NO MANNER OF FLESH: FOR THE LIFE OF ALL FLESH IS THE BLOOD THEREOF:T& WHOSOEVER EATETH IT SHALL BE CUT OFF.L# 15 AND EVERY SOUL THAT EATETH THAT WHICH DIED OF ITSELF, OR THAT WHICH WASK TORN WITH BEASTS, WHETHER IT BE ONE OF YOUR OWN COUNTRY, OR A STRANGER, HEFN SHALL BOTH WASH HIS CLOTHES, AND BATHE HIMSELF IN WATER, AND BE UNCLEAN UNTIL" THE EVEN: THEN SHALL HE BE CLEAN.I# 16 BUT IF HE WASH THEM NOT, NOR BATHE HIS FLESH; THEN HE SHALL BEAR HISU INIQUITY. = CHAPTER 18 *# 1 AND THE LORD SPAKE UNTO MOSES, SAYING,L# 2 SPEAK UNTO THE CHILDREN OF ISRAEL, AND SAY UNTO THEM, I AM THE LORD YOUR GOD.UM# 3 AFTER THE DOINGS OF THE LAND OF EGYPT, WHEREIN YE DWELT, SHALL YE NOT DO:HN AND AFTER THE DOINGS OF THE LAND OF CANAAN, WHITHER I BRING YOU, SHALL YE NOT/ DO: NEITHER SHALL YE WALK IN THEIR ORDINANCES.LM# 4 YE SHALL DO MY JUDGMENTS, AND KEEP MINE ORDINANCES, TO WALK THEREIN: I AMI THE LORD YOUR GOD.OM# 5 YE SHALL THEREFORE KEEP MY STATUTES, AND MY JUDGMENTS: WHICH IF A MAN DO, & HE SHALL LIVE IN THEM: I AM THE LORD.L# 6 NONE OF YOU SHALL APPROACH TO ANY THAT IS NEAR OF KIN TO HIM, TO UNCOVER THEIR NAKEDNESS: I AM THE LORD.K# 7 THE NAKEDNESS OF THY FATHER, OR THE NAKEDNESS OF THY MOTHER, SHALT THOUEF NOT UNCOVER: SHE IS THY MOTHER; THOU SHALT NOT UNCOVER HER NAKEDNESS.G# 8 THE NAKEDNESS OF THY FATHERS WIFE SHALT THOU NOT UNCOVER: IT IS THY  FATHERS NAKEDNESS.HK# 9 THE NAKEDNESS OF THY SISTER, THE DAUGHTER OF THY FATHER, OR DAUGHTER OFAN THY MOTHER, WHETHER SHE BE BORN AT HOME, OR BORN ABROAD, EVEN THEIR NAKEDNESS THOU SHALT NOT UNCOVER.K# 10 THE NAKEDNESS OF THY SONS DAUGHTER, OR OF THY DAUGHTERS DAUGHTER, EVENLK THEIR NAKEDNESS THOU SHALT NOT UNCOVER: FOR THEIRS IS THINE OWN NAKEDNESS.TM# 11 THE NAKEDNESS OF THY FATHERS WIFES DAUGHTER, BEGOTTEN OF THY FATHER, SHE 5 IS THY SISTER, THOU SHALT NOT UNCOVER HER NAKEDNESS.VK# 12 THOU SHALT NOT UNCOVER THE NAKEDNESS OF THY FATHERS SISTER: SHE IS THYU FATHERS NEAR KINSWOMAN.K# 13 THOU SHALT NOT UNCOVER THE NAKEDNESS OF THY MOTHERS SISTER: FOR SHE ISE THY MOTHERS NEAR KINSWOMAN.L# 14 THOU SHALT NOT UNCOVER THE NAKEDNESS OF THY FATHERS BROTHER, THOU SHALT- NOT APPROACH TO HIS WIFE: SHE IS THINE AUNT.EL# 15 THOU SHALT NOT UNCOVER THE NAKEDNESS OF THY DAUGHTER IN LAW: SHE IS THY1 SONS WIFE; THOU SHALT NOT UNCOVER HER NAKEDNESS.II# 16 THOU SHALT NOT UNCOVER THE NAKEDNESS OF THY BROTHERS WIFE: IT IS THYH BROTHERS NAKEDNESS.F# 17 THOU SHALT NOT UNCOVER THE NAKEDNESS OF A WOMAN AND HER DAUGHTER,I NEITHER SHALT THOU TAKE HER SONS 00a)(<%X>%+%O-%TADATADATADAUGHTER, OR HER DAUGHTERS DAUGHTER, TO J UNCOVER HER NAKEDNESS; FOR THEY ARE HER NEAR KINSWOMEN: IT IS WICKEDNESS.M# 18 NEITHER SHALT THOU TAKE A WIFE TO HER SISTER, TO VEX HER, TO UNCOVER HERO. NAKEDNESS, BESIDE THE OTHER IN HER LIFE TIME.K# 19 ALSO THOU SHALT NOT APPROACH UNTO A WOMAN TO UNCOVER HER NAKEDNESS, ASL. LONG AS SHE IS PUT APART FOR HER UNCLEANNESS.M# 20 MOREOVER THOU SHALT NOT LIE CARNALLY WITH THY NEIGHBOURS WIFE, TO DEFILEF THYSELF WITH HER.L# 21 AND THOU SHALT NOT LET ANY OF THY SEED PASS THROUGH THE FIRE TO MOLECH,? NEITHER SHALT THOU PROFANE THE NAME OF THY GOD: I AM THE LORD. K# 22 THOU SHALT NOT LIE WITH MANKIND, AS WITH WOMANKIND: IT IS ABOMINATION.,G# 23 NEITHER SHALT THOU LIE WITH ANY BEAST TO DEFILE THYSELF THEREWITH:SH NEITHER SHALL ANY WOMAN STAND BEFORE A BEAST TO LIE DOWN THERETO: IT IS CONFUSION.UJ# 24 DEFILE NOT YE YOURSELVES IN ANY OF THESE THINGS: FOR IN ALL THESE THE1 NATIONS ARE DEFILED WHICH I CAST OUT BEFORE YOU:.L# 25 AND THE LAND IS DEFILED: THEREFORE I DO VISIT THE INIQUITY THEREOF UPON6 IT, AND THE LAND ITSELF VOMITETH OUT HER INHABITANTS.H# 26 YE SHALL THEREFORE KEEP MY STATUTES AND MY JUDGMENTS, AND SHALL NOTJ COMMIT ANY OF THESE ABOMINATIONS; NEITHER ANY OF YOUR OWN NATION, NOR ANY$ STRANGER THAT SOJOURNETH AMONG YOU:J# 27 (FOR ALL THESE ABOMINATIONS HAVE THE MEN OF THE LAND DONE, WHICH WERE& BEFORE YOU, AND THE LAND IS DEFILED;)L# 28 THAT THE LAND SPUE NOT YOU OUT ALSO, WHEN YE DEFILE IT, AS IT SPUED OUT" THE NATIONS THAT WERE BEFORE YOU.I# 29 FOR WHOSOEVER SHALL COMMIT ANY OF THESE ABOMINATIONS, EVEN THE SOULSU; THAT COMMIT THEM SHALL BE CUT OFF FROM AMONG THEIR PEOPLE.AJ# 30 THEREFORE SHALL YE KEEP MINE ORDINANCE, THAT YE COMMIT NOT ANY ONE OFN THESE ABOMINABLE CUSTOMS, WHICH WERE COMMITTED BEFORE YOU, AND THAT YE DEFILE0 NOT YOURSELVES THEREIN: I AM THE LORD YOUR GOD. = CHAPTER 19 *# 1 AND THE LORD SPAKE UNTO MOSES, SAYING,K# 2 SPEAK UNTO ALL THE CONGREGATION OF THE CHILDREN OF ISRAEL, AND SAY UNTOE9 THEM, YE SHALL BE HOLY: FOR I THE LORD YOUR GOD AM HOLY.MM# 3 YE SHALL FEAR EVERY MAN HIS MOTHER, AND HIS FATHER, AND KEEP MY SABBATHS:O I AM THE LORD YOUR GOD.M# 4 TURN YE NOT UNTO IDOLS, NOR MAKE TO YOURSELVES MOLTEN GODS: I AM THE LORD YOUR GOD.J# 5 AND IF YE OFFER A SACRIFICE OF PEACE OFFERINGS UNTO THE LORD, YE SHALL OFFER IT AT YOUR OWN WILL.DI# 6 IT SHALL BE EATEN THE SAME DAY YE OFFER IT, AND ON THE MORROW: AND IF A OUGHT REMAIN UNTIL THE THIRD DAY, IT SHALL BE BURNT IN THE FIRE.UJ# 7 AND IF IT BE EATEN AT ALL ON THE THIRD DAY, IT IS ABOMINABLE; IT SHALL NOT BE ACCEPTED.IJ# 8 THEREFORE EVERY ONE THAT EATETH IT SHALL BEAR HIS INIQUITY, BECAUSE HEM HATH PROFANED THE HALLOWED THING OF THE LORD: AND THAT SOUL SHALL BE CUT OFF FROM AMONG HIS PEOPLE. M# 9 AND WHEN YE REAP THE HARVEST OF YOUR LAND, THOU SHALT NOT WHOLLY REAP THE N CORNERS OF THY FIELD, NEITHER SHALT THOU GATHER THE GLEANINGS OF THY HARVEST.K# 10 AND THOU SHALT NOT GLEAN THY VINEYARD, NEITHER SHALT THOU GATHER EVERY M GRAPE OF THY VINEYARD; THOU SHALT LEAVE THEM FOR THE POOR AND STRANGER: I AMB THE LORD YOUR GOD.RJ# 11 YE SHALL NOT STEAL, NEITHER DEAL FALSELY, NEITHER LIE ONE TO ANOTHER.J# 12 AND YE SHALL NOT SWEAR BY MY NAME FALSELY, NEITHER SHALT THOU PROFANE$ THE NAME OF THY GOD: I AM THE LORD.L# 13 THOU SHALT NOT DEFRAUD THY NEIGHBOUR, NEITHER ROB HIM: THE WAGES OF HIME THAT IS HIRED SHALL NOT ABIDE WITH THEE ALL NIGHT UNTIL THE MORNING.AG# 14 THOU SHALT NOT CURSE THE DEAF, NOR PUT A STUMBLINGBLOCK BEFORE THEG. BLIND, BUT SHALT FEAR THY GOD: I AM THE LORD.K# 15 YE SHALL DO NO UNRIGHTEOUSNESS IN JUDGMENT: THOU SHALT NOT RESPECT THENM PERSON OF THE POOR, NOR HONOR THE PERSON OF THE MIGHTY: BUT IN RIGHTEOUSNESSY SHALT THOU JUDGE THY NEIGHBOUR.L# 16 THOU SHALT NOT GO UP AND DOWN AS A TALEBEARER AMONG THY PEOPLE: NEITHERD SHALT THOU STAND AGAINST THE BLOOD OF THY NEIGHBOUR; I AM THE LORD.K# 17 THOU SHALT NOT HATE THY BROTHER IN THINE HEART: THOU SHALT IN ANY WISE 3 REBUKE THY NEIGHBOUR, AND NOT SUFFER SIN UPON HIM.DK# 18 THOU SHALT NO00a)(D%5%T6%! !T AVENGE, NOR BEAR ANY GRUDGE AGAINST THE CHILDREN OF THY E PEOPLE, BUT THOU SHALT LOVE THY NEIGHBOUR AS THYSELF: I AM THE LORD.RK# 19 YE SHALL KEEP MY STATUTES. THOU SHALT NOT LET THY CATTLE GENDER WITH ABN DIVERSE KIND: THOU SHALT NOT SOW THY FIELD WITH MINGLED SEED: NEITHER SHALL A5 GARMENT MINGLED OF LINEN AND WOOLLEN COME UPON THEE.RM# 20 AND WHOSOEVER LIETH CARNALLY WITH A WOMAN, THAT IS A BONDMAID, BETROTHEDLL TO AN HUSBAND, AND NOT AT ALL REDEEMED, NOR FREEDOM GIVEN HER; SHE SHALL BED SCOURGED; THEY SHALL NOT BE PUT TO DEATH, BECAUSE SHE WAS NOT FREE.M# 21 AND HE SHALL BRING HIS TRESPASS OFFERING UNTO THE LORD, UNTO THE DOOR OF H THE TABERNACLE OF THE CONGREGATION, EVEN A RAM FOR A TRESPASS OFFERING.G# 22 AND THE PRIEST SHALL MAKE AN ATONEMENT FOR HIM WITH THE RAM OF THEAN TRESPASS OFFERING BEFORE THE LORD FOR HIS SIN WHICH HE HATH DONE: AND THE SIN* WHICH HE HATH DONE SHALL BE FORGIVEN HIM.L# 23 AND WHEN YE SHALL COME INTO THE LAND, AND SHALL HAVE PLANTED ALL MANNERK OF TREES FOR FOOD, THEN YE SHALL COUNT THE FRUIT THEREOF AS UNCIRCUMCISED:FM THREE YEARS SHALL IT BE AS UNCIRCUMCISED UNTO YOU: IT SHALL NOT BE EATEN OF.RM# 24 BUT IN THE FOURTH YEAR ALL THE FRUIT THEREOF SHALL BE HOLY TO PRAISE THE LORD WITHAL.II# 25 AND IN THE FIFTH YEAR SHALL YE EAT OF THE FRUIT THEREOF, THAT IT MAYG= YIELD UNTO YOU THE INCREASE THEREOF: I AM THE LORD YOUR GOD.WD# 26 YE SHALL NOT EAT ANY THING WITH THE BLOOD: NEITHER SHALL YE USE ENCHANTMENT, NOR OBSERVE TIMES.M# 27 YE SHALL NOT ROUND THE CORNERS OF YOUR HEADS, NEITHER SHALT THOU MAR THEC CORNERS OF THY BEARD.M# 28 YE SHALL NOT MAKE ANY CUTTINGS IN YOUR FLESH FOR THE DEAD, NOR PRINT ANYI MARKS UPON YOU: I AM THE LORD.HI# 29 DO NOT PROSTITUTE THY DAUGHTER, TO CAUSE HER TO BE A WHORE; LEST THEE? LAND FALL TO WHOREDOM, AND THE LAND BECOME FULL OF WICKEDNESS.OJ# 30 YE SHALL KEEP MY SABBATHS, AND REVERENCE MY SANCTUARY: I AM THE LORD.L# 31 REGARD NOT THEM THAT HAVE FAMILIAR SPIRITS, NEITHER SEEK AFTER WIZARDS,/ TO BE DEFILED BY THEM: I AM THE LORD YOUR GOD.,M# 32 THOU SHALT RISE UP BEFORE THE HOARY HEAD, AND HONOUR THE FACE OF THE OLDY& MAN, AND FEAR THY GOD: I AM THE LORD.L# 33 AND IF A STRANGER SOJOURN WITH THEE IN YOUR LAND, YE SHALL NOT VEX HIM.J# 34 BUT THE STRANGER THAT DWELLETH WITH YOU SHALL BE UNTO YOU AS ONE BORNL AMONG YOU, AND THOU SHALT LOVE HIM AS THYSELF; FOR YE WERE STRANGERS IN THE' LAND OF EGYPT: I AM THE LORD YOUR GOD.GK# 35 YE SHALL DO NO UNRIGHTEOUSNESS IN JUDGMENT, IN METEYARD, IN WEIGHT, ORD IN MEASURE.H# 36 JUST BALANCES, JUST WEIGHTS, A JUST EPHAH, AND A JUST HIN, SHALL YEJ HAVE: I AM THE LORD YOUR GOD, WHICH BROUGHT YOU OUT OF THE LAND OF EGYPT.M# 37 THEREFORE SHALL YE OBSERVE ALL MY STATUTES, AND ALL MY JUDGMENTS, AND DO4 THEM: I AM THE LORD.D = CHAPTER 20 U*# 1 AND THE LORD SPAKE UNTO MOSES, SAYING,K# 2 AGAIN, THOU SHALT SAY TO THE CHILDREN OF ISRAEL, WHOSOEVER HE BE OF THEYL CHILDREN OF ISRAEL, OR OF THE STRANGERS THAT SOJOURN IN ISRAEL, THAT GIVETHL ANY OF HIS SEED UNTO MOLECH; HE SHALL SURELY BE PUT TO DEATH: THE PEOPLE OF& THE LAND SHALL STONE HIM WITH STONES.L# 3 AND I WILL SET MY FACE AGAINST THAT MAN, AND WILL CUT HIM OFF FROM AMONGH HIS PEOPLE; BECAUSE HE HATH GIVEN OF HIS SEED UNTO MOLECH, TO DEFILE MY( SANCTUARY, AND TO PROFANE MY HOLY NAME.K# 4 AND IF THE PEOPLE OF THE LAND DO ANY WAYS HIDE THEIR EYES FROM THE MAN,E: WHEN HE GIVETH OF HIS SEED UNTO MOLECH, AND KILL HIM NOT:I# 5 THEN I WILL SET MY FACE AGAINST THAT MAN, AND AGAINST HIS FAMILY, AND J WILL CUT HIM OFF, AND ALL THAT GO A WHORING AFTER HIM, TO COMMIT WHOREDOM& WITH MOLECH, FROM AMONG THEIR PEOPLE.L# 6 AND THE SOUL THAT TURNETH AFTER SUCH AS HAVE FAMILIAR SPIRITS, AND AFTERJ WIZARDS, TO GO A WHORING AFTER THEM, I WILL EVEN SET MY FACE AGAINST THAT2 SOUL, AND WILL CUT HIM OFF FROM AMONG HIS PEOPLE.I# 7 SANCTIFY YOURSELVES THEREFORE, AND BE YE HOLY: FOR I AM THE LORD YOURH GOD. L# 8 AND YE SHALL KEEP MY STATUTES, AND DO THEM: I AM THE LORD WHICH SANCTIFY YOU.IK# 9 FOR EVERY ONE THAT CURSETH HIS FATHER OR HIS MOTHER 00a)(<%X>%+%O-%TADATADATASHALL BE SURELY PUT K TO DEATH: HE HATH CURSED HIS FATHER OR HIS MOTHER; HIS BLOOD SHALL BE UPONT HIM.NI# 10 AND THE MAN THAT COMMITTETH ADULTERY WITH ANOTHER MANS WIFE, EVEN HENI THAT COMMITTETH ADULTERY WITH HIS NEIGHBOURS WIFE, THE ADULTERER AND THE ) ADULTERESS SHALL SURELY BE PUT TO DEATH.UL# 11 AND THE MAN THAT LIETH WITH HIS FATHERS WIFE HATH UNCOVERED HIS FATHERSK NAKEDNESS: BOTH OF THEM SHALL SURELY BE PUT TO DEATH; THEIR BLOOD SHALL BE UPON THEM.NL# 12 AND IF A MAN LIE WITH HIS DAUGHTER IN LAW, BOTH OF THEM SHALL SURELY BEK PUT TO DEATH: THEY HAVE WROUGHT CONFUSION; THEIR BLOOD SHALL BE UPON THEM.DK# 13 IF A MAN ALSO LIE WITH MANKIND, AS HE LIETH WITH A WOMAN, BOTH OF THEMMN HAVE COMMITTED AN ABOMINATION: THEY SHALL SURELY BE PUT TO DEATH; THEIR BLOOD SHALL BE UPON THEM.M# 14 AND IF A MAN TAKE A WIFE AND HER MOTHER, IT IS WICKEDNESS: THEY SHALL BETJ BURNT WITH FIRE, BOTH HE AND THEY; THAT THERE BE NO WICKEDNESS AMONG YOU.K# 15 AND IF A MAN LIE WITH A BEAST, HE SHALL SURELY BE PUT TO DEATH: AND YE  SHALL SLAY THE BEAST.M# 16 AND IF A WOMAN APPROACH UNTO ANY BEAST, AND LIE DOWN THERETO, THOU SHALT3N KILL THE WOMAN, AND THE BEAST: THEY SHALL SURELY BE PUT TO DEATH; THEIR BLOOD SHALL BE UPON THEM.M# 17 AND IF A MAN SHALL TAKE HIS SISTER, HIS FATHERS DAUGHTER, OR HIS MOTHERSAK DAUGHTER, AND SEE HER NAKEDNESS, AND SHE SEE HIS NAKEDNESS; IT IS A WICKEDRG THING; AND THEY SHALL BE CUT OFF IN THE SIGHT OF THEIR PEOPLE: HE HATH = UNCOVERED HIS SISTERS NAKEDNESS; HE SHALL BEAR HIS INIQUITY.TG# 18 AND IF A MAN SHALL LIE WITH A WOMAN HAVING HER SICKNESS, AND SHALL E UNCOVER HER NAKEDNESS; HE HATH DISCOVERED HER FOUNTAIN, AND SHE HATHTL UNCOVERED THE FOUNTAIN OF HER BLOOD: AND BOTH OF THEM SHALL BE CUT OFF FROM AMONG THEIR PEOPLE.K# 19 AND THOU SHALT NOT UNCOVER THE NAKEDNESS OF THY MOTHERS SISTER, NOR OFKJ THY FATHERS SISTER: FOR HE UNCOVERETH HIS NEAR KIN: THEY SHALL BEAR THEIR INIQUITY.G# 20 AND IF A MAN SHALL LIE WITH HIS UNCLES WIFE, HE HATH UNCOVERED HISEG UNCLES NAKEDNESS: THEY SHALL BEAR THEIR SIN; THEY SHALL DIE CHILDLESS.NJ# 21 AND IF A MAN SHALL TAKE HIS BROTHERS WIFE, IT IS AN UNCLEAN THING: HE@ HATH UNCOVERED HIS BROTHERS NAKEDNESS; THEY SHALL BE CHILDLESS.J# 22 YE SHALL THEREFORE KEEP ALL MY STATUTES, AND ALL MY JUDGMENTS, AND DOM THEM: THAT THE LAND, WHITHER I BRING YOU TO DWELL THEREIN, SPUE YOU NOT OUT.:I# 23 AND YE SHALL NOT WALK IN THE MANNERS OF THE NATION, WHICH I CAST OUTDJ BEFORE YOU: FOR THEY COMMITTED ALL THESE THINGS, AND THEREFORE I ABHORRED THEM.K# 24 BUT I HAVE SAID UNTO YOU, YE SHALL INHERIT THEIR LAND, AND I WILL GIVELM IT UNTO YOU TO POSSESS IT, A LAND THAT FLOWETH WITH MILK AND HONEY: I AM THEE; LORD YOUR GOD, WHICH HAVE SEPARATED YOU FROM OTHER PEOPLE.RL# 25 YE SHALL THEREFORE PUT DIFFERENCE BETWEEN CLEAN BEASTS AND UNCLEAN, ANDM BETWEEN UNCLEAN FOWLS AND CLEAN: AND YE SHALL NOT MAKE YOUR SOULS ABOMINABLEAL BY BEAST, OR BY FOWL, OR BY ANY MANNER OF LIVING THING THAT CREEPETH ON THE4 GROUND, WHICH I HAVE SEPARATED FROM YOU AS UNCLEAN.K# 26 AND YE SHALL BE HOLY UNTO ME: FOR I THE LORD AM HOLY, AND HAVE SEVEREDV/ YOU FROM OTHER PEOPLE, THAT YE SHOULD BE MINE.TJ# 27 A MAN ALSO OR WOMAN THAT HATH A FAMILIAR SPIRIT, OR THAT IS A WIZARD,M SHALL SURELY BE PUT TO DEATH: THEY SHALL STONE THEM WITH STONES: THEIR BLOOD  SHALL BE UPON THEM. = CHAPTER 21 WK# 1 AND THE LORD SAID UNTO MOSES, SPEAK UNTO THE PRIESTS THE SONS OF AARON,FN AND SAY UNTO THEM, THERE SHALL NONE BE DEFILED FOR THE DEAD AMONG HIS PEOPLE:L# 2 BUT FOR HIS KIN, THAT IS NEAR UNTO HIM, THAT IS, FOR HIS MOTHER, AND FORH HIS FATHER, AND FOR HIS SON, AND FOR HIS DAUGHTER, AND FOR HIS BROTHER.I# 3 AND FOR HIS SISTER A VIRGIN, THAT IS NIGH UNTO HIM, WHICH HATH HAD NOA$ HUSBAND; FOR HER MAY HE BE DEFILED.K# 4 BUT HE SHALL NOT DEFILE HIMSELF, BEING A CHIEF MAN AMONG HIS PEOPLE, TOH PROFANE HIMSELF. J# 5 THEY SHALL NOT MAKE BALDNESS UPON THEIR HEAD, NEITHER SHALL THEY SHAVEE OFF THE CORNER OF THEIR BEARD, NOR MAKE ANY CUTTINGS IN THEIR FLESH.:M# 6 THEY SHALL BE HOLY UNTO TH00a)(D%5%T6%! !EIR GOD, AND NOT PROFANE THE NAME OF THEIR GOD:M FOR THE OFFERINGS OF THE LORD MADE BY FIRE, AND THE BREAD OF THEIR GOD, THEYN( DO OFFER: THEREFORE THEY SHALL BE HOLY.I# 7 THEY SHALL NOT TAKE A WIFE THAT IS A WHORE, OR PROFANE; NEITHER SHALLEJ THEY TAKE A WOMAN PUT AWAY FROM HER HUSBAND: FOR HE IS HOLY UNTO HIS GOD.L# 8 THOU SHALT SANCTIFY HIM THEREFORE; FOR HE OFFERETH THE BREAD OF THY GOD:I HE SHALL BE HOLY UNTO THEE: FOR I THE LORD, WHICH SANCTIFY YOU, AM HOLY.EI# 9 AND THE DAUGHTER OF ANY PRIEST, IF SHE PROFANE HERSELF BY PLAYING THEE? WHORE, SHE PROFANETH HER FATHER: SHE SHALL BE BURNT WITH FIRE.EK# 10 AND HE THAT IS THE HIGH PRIEST AMONG HIS BRETHREN, UPON WHOSE HEAD THEAJ ANOINTING OIL WAS POURED, AND THAT IS CONSECRATED TO PUT ON THE GARMENTS,2 SHALL NOT UNCOVER HIS HEAD, NOR REND HIS CLOTHES;H# 11 NEITHER SHALL HE GO IN TO ANY DEAD BODY, NOR DEFILE HIMSELF FOR HIS FATHER, OR FOR HIS MOTHER;HK# 12 NEITHER SHALL HE GO OUT OF THE SANCTUARY, NOR PROFANE THE SANCTUARY OFGM HIS GOD; FOR THE CROWN OF THE ANOINTING OIL OF HIS GOD IS UPON HIM: I AM THET LORD./# 13 AND HE SHALL TAKE A WIFE IN HER VIRGINITY. K# 14 A WIDOW, OR A DIVORCED WOMAN, OR PROFANE, OR AN HARLOT, THESE SHALL HEO@ NOT TAKE: BUT HE SHALL TAKE A VIRGIN OF HIS OWN PEOPLE TO WIFE.J# 15 NEITHER SHALL HE PROFANE HIS SEED AMONG HIS PEOPLE: FOR I THE LORD DO SANCTIFY HIM.+# 16 AND THE LORD SPAKE UNTO MOSES, SAYING,OC# 17 SPEAK UNTO AARON, SAYING, WHOSOEVER HE BE OF THY SEED IN THEIRON GENERATIONS THAT HATH ANY BLEMISH, LET HIM NOT APPROACH TO OFFER THE BREAD OF HIS GOD.:K# 18 FOR WHATSOEVER MAN HE BE THAT HATH A BLEMISH, HE SHALL NOT APPROACH: AWM BLIND MAN, OR A LAME, OR HE THAT HATH A FLAT NOSE, OR ANY THING SUPERFLUOUS,:4# 19 OR A MAN THAT IS BROKENFOOTED, OR BROKENHANDED,H# 20 OR CROOKBACKT, OR A DWARF, OR THAT HATH A BLEMISH IN HIS EYE, OR BE/ SCURVY, OR SCABBED, OR HATH HIS STONES BROKEN;MJ# 21 NO MAN THAT HATH A BLEMISH OF THE SEED OF AARON THE PRIEST SHALL COMEL NIGH TO OFFER THE OFFERINGS OF THE LORD MADE BY FIRE: HE HATH A BLEMISH; HE3 SHALL NOT COME NIGH TO OFFER THE BREAD OF HIS GOD. I# 22 HE SHALL EAT THE BREAD OF HIS GOD, BOTH OF THE MOST HOLY, AND OF THEE HOLY.I# 23 ONLY HE SHALL NOT GO IN UNTO THE VAIL, NOR COME NIGH UNTO THE ALTAR,TN BECAUSE HE HATH A BLEMISH; THAT HE PROFANE NOT MY SANCTUARIES: FOR I THE LORD DO SANCTIFY THEM.M# 24 AND MOSES TOLD IT UNTO AARON, AND TO HIS SONS, AND UNTO ALL THE CHILDRENF OF ISRAEL.A = CHAPTER 22 *# 1 AND THE LORD SPAKE UNTO MOSES, SAYING,L# 2 SPEAK UNTO AARON AND TO HIS SONS, THAT THEY SEPARATE THEMSELVES FROM THEN HOLY THINGS OF THE CHILDREN OF ISRAEL, AND THAT THEY PROFANE NOT MY HOLY NAME: IN THOSE THINGS WHICH THEY HALLOW UNTO ME: I AM THE LORD.K# 3 SAY UNTO THEM, WHOSOEVER HE BE OF ALL YOUR SEED AMONG YOUR GENERATIONS, N THAT GOETH UNTO THE HOLY THINGS, WHICH THE CHILDREN OF ISRAEL HALLOW UNTO THEJ LORD, HAVING HIS UNCLEANNESS UPON HIM, THAT SOUL SHALL BE CUT OFF FROM MY PRESENCE: I AM THE LORD.HM# 4 WHAT MAN SOEVER OF THE SEED OF AARON IS A LEPER, OR HATH A RUNNING ISSUE;EK HE SHALL NOT EAT OF THE HOLY THINGS, UNTIL HE BE CLEAN. AND WHOSO TOUCHETHHK ANY THING THAT IS UNCLEAN BY THE DEAD, OR A MAN WHOSE SEED GOETH FROM HIM; M# 5 OR WHOSOEVER TOUCHETH ANY CREEPING THING, WHEREBY HE MAY BE MADE UNCLEAN,GJ OR A MAN OF WHOM HE MAY TAKE UNCLEANNESS, WHATSOEVER UNCLEANNESS HE HATH;I# 6 THE SOUL WHICH HATH TOUCHED ANY SUCH SHALL BE UNCLEAN UNTIL EVEN, ANDEG SHALL NOT EAT OF THE HOLY THINGS, UNLESS HE WASH HIS FLESH WITH WATER.SK# 7 AND WHEN THE SUN IS DOWN, HE SHALL BE CLEAN, AND SHALL AFTERWARD EAT OFH) THE HOLY THINGS; BECAUSE IT IS HIS FOOD.UK# 8 THAT WHICH DIETH OF ITSELF, OR IS TORN WITH BEASTS, HE SHALL NOT EAT TOM) DEFILE HIMSELF THEREWITH; I AM THE LORD.IL# 9 THEY SHALL THEREFORE KEEP MINE ORDINANCE, LEST THEY BEAR SIN FOR IT, AND@ DIE THEREFORE, IF THEY PROFANE IT: I THE LORD DO SANCTIFY THEM.F# 10 THERE SHALL NO STRANGER EAT OF THE HOLY THING: A SOJOURNER OF THE> PRIEST, OR AN HIRED SERVANT, SHALL NOT EAT OF THE HOLY THING.K# 00a)(<%X>%+%O-%TADATADATA11 BUT IF THE PRIEST BUY ANY SOUL WITH HIS MONEY, HE SHALL EAT OF IT, AND : HE THAT IS BORN IN HIS HOUSE: THEY SHALL EAT OF HIS MEAT.M# 12 IF THE PRIESTS DAUGHTER ALSO BE MARRIED UNTO A STRANGER, SHE MAY NOT EATI# OF AN OFFERING OF THE HOLY THINGS.OL# 13 BUT IF THE PRIESTS DAUGHTER BE A WIDOW, OR DIVORCED, AND HAVE NO CHILD,N AND IS RETURNED UNTO HER FATHERS HOUSE, AS IN HER YOUTH, SHE SHALL EAT OF HER: FATHERS MEAT: BUT THERE SHALL BE NO STRANGER EAT THEREOF.J# 14 AND IF A MAN EAT OF THE HOLY THING UNWITTINGLY, THEN HE SHALL PUT THEL FIFTH PART THEREOF UNTO IT, AND SHALL GIVE IT UNTO THE PRIEST WITH THE HOLY THING. J# 15 AND THEY SHALL NOT PROFANE THE HOLY THINGS OF THE CHILDREN OF ISRAEL, WHICH THEY OFFER UNTO THE LORD;I# 16 OR SUFFER THEM TO BEAR THE INIQUITY OF TRESPASS, WHEN THEY EAT THEIRC. HOLY THINGS: FOR I THE LORD DO SANCTIFY THEM..# 17 AND THE LORD SPAKE UNTO MOSES, SAYING, ITL# 18 SPEAK UNTO AARON, AND TO HIS SONS, AND UNTO ALL THE CHILDREN OF ISRAEL,F AND SAY UNTO THEM, WHATSOEVER HE BE OF THE HOUSE OF ISRAEL, OR OF THEL STRANGERS IN ISRAEL, THAT WILL OFFER HIS OBLATION FOR ALL HIS VOWS, AND FORL ALL HIS FREEWILL OFFERINGS, WHICH THEY WILL OFFER UNTO THE LORD FOR A BURNT OFFERING;K# 19 YE SHALL OFFER AT YOUR OWN WILL A MALE WITHOUT BLEMISH, OF THE BEEVES,  OF THE SHEEP, OR OF THE GOATS.SM# 20 BUT WHATSOEVER HATH A BLEMISH, THAT SHALL YE NOT OFFER: FOR IT SHALL NOT  BE ACCEPTABLE FOR YOU.,K# 21 AND WHOSOEVER OFFERETH A SACRIFICE OF PEACE OFFERINGS UNTO THE LORD TOHK ACCOMPLISH HIS VOW, OR A FREEWILL OFFERING IN BEEVES OR SHEEP, IT SHALL BEW; PERFECT TO BE ACCEPTED; THERE SHALL BE NO BLEMISH THEREIN.EL# 22 BLIND, OR BROKEN, OR MAIMED, OR HAVING A WEN, OR SCURVY, OR SCABBED, YEJ SHALL NOT OFFER THESE UNTO THE LORD, NOR MAKE AN OFFERING BY FIRE OF THEM UPON THE ALTAR UNTO THE LORD.M# 23 EITHER A BULLOCK OR A LAMB THAT HATH ANY THING SUPERFLUOUS OR LACKING INOL HIS PARTS, THAT MAYEST THOU OFFER FOR A FREEWILL OFFERING; BUT FOR A VOW IT SHALL NOT BE ACCEPTED.TK# 24 YE SHALL NOT OFFER UNTO THE LORD THAT WHICH IS BRUISED, OR CRUSHED, ORBI BROKEN, OR CUT; NEITHER SHALL YE MAKE ANY OFFERING THEREOF IN YOUR LAND.DJ# 25 NEITHER FROM A STRANGERS HAND SHALL YE OFFER THE BREAD OF YOUR GOD OFM ANY OF THESE; BECAUSE THEIR CORRUPTION IS IN THEM, AND BLEMISHES BE IN THEM:L$ THEY SHALL NOT BE ACCEPTED FOR YOU.+# 26 AND THE LORD SPAKE UNTO MOSES, SAYING, K# 27 WHEN A BULLOCK, OR A SHEEP, OR A GOAT, IS BROUGHT FORTH, THEN IT SHALLUN BE SEVEN DAYS UNDER THE DAM; AND FROM THE EIGHTH DAY AND THENCEFORTH IT SHALL8 BE ACCEPTED FOR AN OFFERING MADE BY FIRE UNTO THE LORD.K# 28 AND WHETHER IT BE COW, OR EWE, YE SHALL NOT KILL IT AND HER YOUNG BOTH IN ONE DAY.L# 29 AND WHEN YE WILL OFFER A SACRIFICE OF THANKSGIVING UNTO THE LORD, OFFER IT AT YOUR OWN WILL.MJ# 30 ON THE SAME DAY IT SHALL BE EATEN UP; YE SHALL LEAVE NONE OF IT UNTIL THE MORROW: I AM THE LORD. I# 31 THEREFORE SHALL YE KEEP MY COMMANDMENTS, AND DO THEM: I AM THE LORD.L# 32 NEITHER SHALL YE PROFANE MY HOLY NAME; BUT I WILL BE HALLOWED AMONG THE4 CHILDREN OF ISRAEL: I AM THE LORD WHICH HALLOW YOU,H# 33 THAT BROUGHT YOU OUT OF THE LAND OF EGYPT, TO BE YOUR GOD: I AM THE LORD. = CHAPTER 23 *# 1 AND THE LORD SPAKE UNTO MOSES, SAYING,H# 2 SPEAK UNTO THE CHILDREN OF ISRAEL, AND SAY UNTO THEM, CONCERNING THEJ FEASTS OF THE LORD, WHICH YE SHALL PROCLAIM TO BE HOLY CONVOCATIONS, EVEN THESE ARE MY FEASTS.EL# 3 SIX DAYS SHALL WORK BE DONE: BUT THE SEVENTH DAY IS THE SABBATH OF REST,K AN HOLY CONVOCATION; YE SHALL DO NO WORK THEREIN: IT IS THE SABBATH OF THEF LORD IN ALL YOUR DWELLINGS.L# 4 THESE ARE THE FEASTS OF THE LORD, EVEN HOLY CONVOCATIONS, WHICH YE SHALL PROCLAIM IN THEIR SEASONS.K# 5 IN THE FOURTEENTH DAY OF THE FIRST MONTH AT EVEN IS THE LORDS PASSOVER.II# 6 AND ON THE FIFTEENTH DAY OF THE SAME MONTH IS THE FEAST OF UNLEAVENEDL> BREAD UNTO THE LORD: SEVEN DAYS YE MUST EAT UNLEAVENED BREAD.F# 7 IN THE FIRST DAY YE SHALL HAVE AN HOLY CONVOCATION: YE SHALL DO NO SERVILE WORK THEREIN.L# 8 BUT YE S00a)(D%5%T6%! !HALL OFFER AN OFFERING MADE BY FIRE UNTO THE LORD SEVEN DAYS: INM THE SEVENTH DAY IS AN HOLY CONVOCATION: YE SHALL DO NO SERVILE WORK THEREIN.C*# 9 AND THE LORD SPAKE UNTO MOSES, SAYING,J# 10 SPEAK UNTO THE CHILDREN OF ISRAEL, AND SAY UNTO THEM, WHEN YE BE COMEN INTO THE LAND WHICH I GIVE UNTO YOU, AND SHALL REAP THE HARVEST THEREOF, THENK YE SHALL BRING A SHEAF OF THE FIRSTFRUITS OF YOUR HARVEST UNTO THE PRIEST:DL# 11 AND HE SHALL WAVE THE SHEAF BEFORE THE LORD, TO BE ACCEPTED FOR YOU: ON7 THE MORROW AFTER THE SABBATH THE PRIEST SHALL WAVE IT.LJ# 12 AND YE SHALL OFFER THAT DAY WHEN YE WAVE THE SHEAF AN HE LAMB WITHOUT> BLEMISH OF THE FIRST YEAR FOR A BURNT OFFERING UNTO THE LORD.I# 13 AND THE MEAT OFFERING THEREOF SHALL BE TWO TENTH DEALS OF FINE FLOUROM MINGLED WITH OIL, AN OFFERING MADE BY FIRE UNTO THE LORD FOR A SWEET SAVOUR:HL AND THE DRINK OFFERING THEREOF SHALL BE OF WINE, THE FOURTH PART OF AN HIN.L# 14 AND YE SHALL EAT NEITHER BREAD, NOR PARCHED CORN, NOR GREEN EARS, UNTILM THE SELFSAME DAY THAT YE HAVE BROUGHT AN OFFERING UNTO YOUR GOD: IT SHALL BE F A STATUTE FOR EVER THROUGHOUT YOUR GENERATIONS IN ALL YOUR DWELLINGS.L# 15 AND YE SHALL COUNT UNTO YOU FROM THE MORROW AFTER THE SABBATH, FROM THEL DAY THAT YE BROUGHT THE SHEAF OF THE WAVE OFFERING; SEVEN SABBATHS SHALL BE COMPLETE:I# 16 EVEN UNTO THE MORROW AFTER THE SEVENTH SABBATH SHALL YE NUMBER FIFTY < DAYS; AND YE SHALL OFFER A NEW MEAT OFFERING UNTO THE LORD.H# 17 YE SHALL BRING OUT OF YOUR HABITATIONS TWO WAVE LOAVES OF TWO TENTHN DEALS; THEY SHALL BE OF FINE FLOUR; THEY SHALL BE BAKEN WITH LEAVEN; THEY ARE THE FIRSTFRUITS UNTO THE LORD.AI# 18 AND YE SHALL OFFER WITH THE BREAD SEVEN LAMBS WITHOUT BLEMISH OF THETK FIRST YEAR, AND ONE YOUNG BULLOCK, AND TWO RAMS: THEY SHALL BE FOR A BURNTVM OFFERING UNTO THE LORD, WITH THEIR MEAT OFFERING, AND THEIR DRINK OFFERINGS,A> EVEN AN OFFERING MADE BY FIRE, OF SWEET SAVOUR UNTO THE LORD.M# 19 THEN YE SHALL SACRIFICE ONE KID OF THE GOATS FOR A SIN OFFERING, AND TWOE< LAMBS OF THE FIRST YEAR FOR A SACRIFICE OF PEACE OFFERINGS.K# 20 AND THE PRIEST SHALL WAVE THEM WITH THE BREAD OF THE FIRSTFRUITS FOR A8M WAVE OFFERING BEFORE THE LORD, WITH THE TWO LAMBS: THEY SHALL BE HOLY TO THEY LORD FOR THE PRIEST.OF# 21 AND YE SHALL PROCLAIM ON THE SELFSAME DAY, THAT IT MAY BE AN HOLYI CONVOCATION UNTO YOU: YE SHALL DO NO SERVILE WORK THEREIN: IT SHALL BE AED STATUTE FOR EVER IN ALL YOUR DWELLINGS THROUGHOUT YOUR GENERATIONS.I# 22 AND WHEN YE REAP THE HARVEST OF YOUR LAND, THOU SHALT NOT MAKE CLEANRK RIDDANCE OF THE CORNERS OF THY FIELD WHEN THOU REAPEST, NEITHER SHALT THOUHM GATHER ANY GLEANING OF THY HARVEST: THOU SHALT LEAVE THEM UNTO THE POOR, ANDT) TO THE STRANGER: I AM THE LORD YOUR GOD. +# 23 AND THE LORD SPAKE UNTO MOSES, SAYING,OL# 24 SPEAK UNTO THE CHILDREN OF ISRAEL, SAYING, IN THE SEVENTH MONTH, IN THEJ FIRST DAY OF THE MONTH, SHALL YE HAVE A SABBATH, A MEMORIAL OF BLOWING OF TRUMPETS, AN HOLY CONVOCATION..M# 25 YE SHALL DO NO SERVILE WORK THEREIN: BUT YE SHALL OFFER AN OFFERING MADER BY FIRE UNTO THE LORD. +# 26 AND THE LORD SPAKE UNTO MOSES, SAYING,OH# 27 ALSO ON THE TENTH DAY OF THIS SEVENTH MONTH THERE SHALL BE A DAY OFJ ATONEMENT: IT SHALL BE AN HOLY CONVOCATION UNTO YOU; AND YE SHALL AFFLICT> YOUR SOULS, AND OFFER AN OFFERING MADE BY FIRE UNTO THE LORD.L# 28 AND YE SHALL DO NO WORK IN THAT SAME DAY: FOR IT IS A DAY OF ATONEMENT,7 TO MAKE AN ATONEMENT FOR YOU BEFORE THE LORD YOUR GOD.NL# 29 FOR WHATSOEVER SOUL IT BE THAT SHALL NOT BE AFFLICTED IN THAT SAME DAY,+ HE SHALL BE CUT OFF FROM AMONG HIS PEOPLE.AM# 30 AND WHATSOEVER SOUL IT BE THAT DOETH ANY WORK IN THAT SAME DAY, THE SAMEN+ SOUL WILL I DESTROY FROM AMONG HIS PEOPLE. M# 31 YE SHALL DO NO MANNER OF WORK: IT SHALL BE A STATUTE FOR EVER THROUGHOUTD( YOUR GENERATIONS IN ALL YOUR DWELLINGS.M# 32 IT SHALL BE UNTO YOU A SABBATH OF REST, AND YE SHALL AFFLICT YOUR SOULS:NE IN THE NINTH DAY OF THE MONTH AT EVEN, FROM EVEN UNTO EVEN, SHALL YEW CELEBRATE YOUR SABBATH.+# 33 AND THE LORD SPAKE UNTO MOSES00a)(<%X>%+%O-%TADATADATA, SAYING, I# 34 SPEAK UNTO THE CHILDREN OF ISRAEL, SAYING, THE FIFTEENTH DAY OF THISAN SEVENTH MONTH SHALL BE THE FEAST OF TABERNACLES FOR SEVEN DAYS UNTO THE LORD.J# 35 ON THE FIRST DAY SHALL BE AN HOLY CONVOCATION: YE SHALL DO NO SERVILE WORK THEREIN.M# 36 SEVEN DAYS YE SHALL OFFER AN OFFERING MADE BY FIRE UNTO THE LORD: ON THEFH EIGHTH DAY SHALL BE AN HOLY CONVOCATION UNTO YOU; AND YE SHALL OFFER ANN OFFERING MADE BY FIRE UNTO THE LORD: IT IS A SOLEMN ASSEMBLY; AND YE SHALL DO NO SERVILE WORK THEREIN.GI# 37 THESE ARE THE FEASTS OF THE LORD, WHICH YE SHALL PROCLAIM TO BE HOLYIG CONVOCATIONS, TO OFFER AN OFFERING MADE BY FIRE UNTO THE LORD, A BURNTTM OFFERING, AND A MEAT OFFERING, A SACRIFICE, AND DRINK OFFERINGS, EVERY THINGR UPON HIS DAY:K# 38 BESIDE THE SABBATHS OF THE LORD, AND BESIDE YOUR GIFTS, AND BESIDE ALLOJ YOUR VOWS, AND BESIDE ALL YOUR FREEWILL OFFERINGS, WHICH YE GIVE UNTO THE LORD.M# 39 ALSO IN THE FIFTEENTH DAY OF THE SEVENTH MONTH, WHEN YE HAVE GATHERED INNN THE FRUIT OF THE LAND, YE SHALL KEEP A FEAST UNTO THE LORD SEVEN DAYS: ON THEH FIRST DAY SHALL BE A SABBATH, AND ON THE EIGHTH DAY SHALL BE A SABBATH.G# 40 AND YE SHALL TAKE YOU ON THE FIRST DAY THE BOUGHS OF GOODLY TREES,IJ BRANCHES OF PALM TREES, AND THE BOUGHS OF THICK TREES, AND WILLOWS OF THEA BROOK; AND YE SHALL REJOICE BEFORE THE LORD YOUR GOD SEVEN DAYS.EM# 41 AND YE SHALL KEEP IT A FEAST UNTO THE LORD SEVEN DAYS IN THE YEAR. SHALLFH BE A STATUTE FOR EVER IN YOUR GENERATIONS: YE SHALL CELEBRATE IT IN THE SEVENTH MONTH.AL# 42 YE SHALL DWELL IN BOOTHS SEVEN DAYS; ALL THAT ARE ISRAELITES BORN SHALL DWELL IN BOOTHS:HI# 43 THAT YOUR GENERATIONS MAY KNOW THAT I MADE THE CHILDREN OF ISRAEL TOOM DWELL IN BOOTHS, WHEN I BROUGHT THEM OUT OF THE LAND OF EGYPT: I AM THE LORD YOUR GOD.K# 44 AND MOSES DECLARED UNTO THE CHILDREN OF ISRAEL THE FEASTS OF THE LORD. = CHAPTER 24 *# 1 AND THE LORD SPAKE UNTO MOSES, SAYING,L# 2 COMMAND THE CHILDREN OF ISRAEL, THAT THEY BRING UNTO THEE PURE OIL OLIVE> BEATEN FOR THE LIGHT, TO CAUSE THE LAMPS TO BURN CONTINUALLY.M# 3 WITHOUT THE VAIL OF THE TESTIMONY, IN THE TABERNACLE OF THE CONGREGATION,RG SHALL AARON ORDER IT FROM THE EVENING UNTO THE MORNING BEFORE THE LORDOA CONTINUALLY: IT SHALL BE A STATUTE FOR EVER IN YOUR GENERATIONS.F# 4 HE SHALL ORDER THE LAMPS UPON THE PURE CANDLESTICK BEFORE THE LORD CONTINUALLY. L# 5 AND THOU SHALT TAKE FINE FLOUR, AND BAKE TWELVE CAKES THEREOF: TWO TENTH DEALS SHALL BE IN ONE CAKE.J# 6 AND THOU SHALT SET THEM IN TWO ROWS, SIX ON A ROW, UPON THE PURE TABLE BEFORE THE LORD.M# 7 AND THOU SHALT PUT PURE FRANKINCENSE UPON EACH ROW, THAT IT MAY BE ON THEC BREAD FOR A MEMORIAL, EVEN AN OFFERING MADE BY FIRE UNTO THE LORD.RM# 8 EVERY SABBATH HE SHALL SET IT IN ORDER BEFORE THE LORD CONTINUALLY, BEINGS> TAKEN FROM THE CHILDREN OF ISRAEL BY AN EVERLASTING COVENANT.J# 9 AND IT SHALL BE AARONS AND HIS SONS; AND THEY SHALL EAT IT IN THE HOLYN PLACE: FOR IT IS MOST HOLY UNTO HIM OF THE OFFERINGS OF THE LORD MADE BY FIRE BY A PERPETUAL STATUTE.L# 10 AND THE SON OF AN ISRAELITISH WOMAN, WHOSE FATHER WAS AN EGYPTIAN, WENTN OUT AMONG THE CHILDREN OF ISRAEL: AND THIS SON OF THE ISRAELITISH WOMAN AND A+ MAN OF ISRAEL STROVE TOGETHER IN THE CAMP;TH# 11 AND THE ISRAELITISH WOMANS SON BLASPHEMED THE NAME OF THE LORD, ANDN CURSED. AND THEY BROUGHT HIM UNTO MOSES: (AND HIS MOTHERS NAME WAS SHELOMITH,- THE DAUGHTER OF DIBRI, OF THE TRIBE OF DAN:)YH# 12 AND THEY PUT HIM IN WARD, THAT THE MIND OF THE LORD MIGHT BE SHEWED THEM.+# 13 AND THE LORD SPAKE UNTO MOSES, SAYING, H# 14 BRING FORTH HIM THAT HATH CURSED WITHOUT THE CAMP; AND LET ALL THATL HEARD HIM LAY THEIR HANDS UPON HIS HEAD, AND LET ALL THE CONGREGATION STONE HIM. H# 15 AND THOU SHALT SPEAK UNTO THE CHILDREN OF ISRAEL, SAYING, WHOSOEVER$ CURSETH HIS GOD SHALL BEAR HIS SIN.L# 16 AND HE THAT BLASPHEMETH THE NAME OF THE LORD, HE SHALL SURELY BE PUT TOG DEATH, AND ALL THE CONGREGATION SHALL CERTAINLY STONE HIM: AS WELL THEHN STRANGER, AS HE THAT IS BORN IN THE LAND, WHEN 00a)(D%5%T6%! !HE BLASPHEMETH THE NAME OF THE LORD, SHALL BE PUT TO DEATH.T># 17 AND HE THAT KILLETH ANY MAN SHALL SURELY BE PUT TO DEATH.E# 18 AND HE THAT KILLETH A BEAST SHALL MAKE IT GOOD; BEAST FOR BEAST. M# 19 AND IF A MAN CAUSE A BLEMISH IN HIS NEIGHBOUR; AS HE HATH DONE, SO SHALLR IT BE DONE TO HIM;AI# 20 BREACH FOR BREACH, EYE FOR EYE, TOOTH FOR TOOTH: AS HE HATH CAUSED AE4 BLEMISH IN A MAN, SO SHALL IT BE DONE TO HIM AGAIN.L# 21 AND HE THAT KILLETH A BEAST, HE SHALL RESTORE IT: AND HE THAT KILLETH A MAN, HE SHALL BE PUT TO DEATH.EM# 22 YE SHALL HAVE ONE MANNER OF LAW, AS WELL FOR THE STRANGER, AS FOR ONE OF . YOUR OWN COUNTRY: FOR I AM THE LORD YOUR GOD.L# 23 AND MOSES SPAKE TO THE CHILDREN OF ISRAEL, THAT THEY SHOULD BRING FORTHH HIM THAT HAD CURSED OUT OF THE CAMP, AND STONE HIM WITH STONES. AND THE4 CHILDREN OF ISRAEL DID AS THE LORD COMMANDED MOSES. = CHAPTER 25 B9# 1 AND THE LORD SPAKE UNTO MOSES IN MOUNT SINAI, SAYING,DK# 2 SPEAK UNTO THE CHILDREN OF ISRAEL, AND SAY UNTO THEM, WHEN YE COME INTOEM THE LAND WHICH I GIVE YOU, THEN SHALL THE LAND KEEP A SABBATH UNTO THE LORD. J# 3 SIX YEARS THOU SHALT SOW THY FIELD, AND SIX YEARS THOU SHALT PRUNE THY+ VINEYARD, AND GATHER IN THE FRUIT THEREOF; G# 4 BUT IN THE SEVENTH YEAR SHALL BE A SABBATH OF REST UNTO THE LAND, ATF SABBATH FOR THE LORD: THOU SHALT NEITHER SOW THY FIELD, NOR PRUNE THY VINEYARD.L# 5 THAT WHICH GROWETH OF ITS OWN ACCORD OF THY HARVEST THOU SHALT NOT REAP,J NEITHER GATHER THE GRAPES OF THY VINE UNDRESSED: FOR IT IS A YEAR OF REST UNTO THE LAND. L# 6 AND THE SABBATH OF THE LAND SHALL BE MEAT FOR YOU; FOR THEE, AND FOR THYK SERVANT, AND FOR THY MAID, AND FOR THY HIRED SERVANT, AND FOR THY STRANGERT THAT SOJOURNETH WITH THEE. M# 7 AND FOR THY CATTLE, AND FOR THE BEAST THAT ARE IN THY LAND, SHALL ALL THEH INCREASE THEREOF BE MEAT.H# 8 AND THOU SHALT NUMBER SEVEN SABBATHS OF YEARS UNTO THEE, SEVEN TIMESM SEVEN YEARS; AND THE SPACE OF THE SEVEN SABBATHS OF YEARS SHALL BE UNTO THEEO FORTY AND NINE YEARS.M# 9 THEN SHALT THOU CAUSE THE TRUMPET OF THE JUBILE TO SOUND ON THE TENTH DAY N OF THE SEVENTH MONTH, IN THE DAY OF ATONEMENT SHALL YE MAKE THE TRUMPET SOUND THROUGHOUT ALL YOUR LAND.K# 10 AND YE SHALL HALLOW THE FIFTIETH YEAR, AND PROCLAIM LIBERTY THROUGHOUTEN ALL THE LAND UNTO ALL THE INHABITANTS THEREOF: IT SHALL BE A JUBILE UNTO YOU;M AND YE SHALL RETURN EVERY MAN UNTO HIS POSSESSION, AND YE SHALL RETURN EVERYN MAN UNTO HIS FAMILY.NM# 11 A JUBILE SHALL THAT FIFTIETH YEAR BE UNTO YOU: YE SHALL NOT SOW, NEITHERTL REAP THAT WHICH GROWETH OF ITSELF IN IT, NOR GATHER THE GRAPES IN IT OF THY VINE UNDRESSED.F# 12 FOR IT IS THE JUBILE; IT SHALL BE HOLY UNTO YOU: YE SHALL EAT THE# INCREASE THEREOF OUT OF THE FIELD.IB# 13 IN THE YEAR OF THIS JUBILE YE SHALL RETURN EVERY MAN UNTO HIS POSSESSION.F# 14 AND IF THOU SELL OUGHT UNTO THY NEIGHBOUR, OR BUYEST OUGHT OF THY3 NEIGHBOURS HAND, YE SHALL NOT OPPRESS ONE ANOTHER:NL# 15 ACCORDING TO THE NUMBER OF YEARS AFTER THE JUBILE THOU SHALT BUY OF THYN NEIGHBOUR, AND ACCORDING UNTO THE NUMBER OF YEARS OF THE FRUITS HE SHALL SELL UNTO THEE:FF# 16 ACCORDING TO THE MULTITUDE OF YEARS THOU SHALT INCREASE THE PRICEM THEREOF, AND ACCORDING TO THE FEWNESS OF YEARS THOU SHALT DIMINISH THE PRICEOK OF IT: FOR ACCORDING TO THE NUMBER OF THE YEARS OF THE FRUITS DOTH HE SELLH UNTO THEE. H# 17 YE SHALL NOT THEREFORE OPPRESS ONE ANOTHER; BUT THOU SHALT FEAR THY GOD:FOR I AM THE LORD YOUR GOD.K# 18 WHEREFORE YE SHALL DO MY STATUTES, AND KEEP MY JUDGMENTS, AND DO THEM;R* AND YE SHALL DWELL IN THE LAND IN SAFETY.H# 19 AND THE LAND SHALL YIELD HER FRUIT, AND YE SHALL EAT YOUR FILL, AND DWELL THEREIN IN SAFETY.TH# 20 AND IF YE SHALL SAY, WHAT SHALL WE EAT THE SEVENTH YEAR? BEHOLD, WE+ SHALL NOT SOW, NOR GATHER IN OUR INCREASE:NM# 21 THEN I WILL COMMAND MY BLESSING UPON YOU IN THE SIXTH YEAR, AND IT SHALL # BRING FORTH FRUIT FOR THREE YEARS.OI# 22 AND YE SHALL SOW THE EIGHTH YEAR, AND EAT YET OF OLD FRUIT UNTIL THE D NINTH YEAR; UNTIL HER FRUITS COME IN YE SHALL EAT OF 00a)(<%X>%+%O-%TADATADATATHE OLD STORE.J# 23 THE LAND SHALL NOT BE SOLD FOR EVER: FOR THE LAND IS MINE, FOR YE ARE" STRANGERS AND SOJOURNERS WITH ME.K# 24 AND IN ALL THE LAND OF YOUR POSSESSION YE SHALL GRANT A REDEMPTION FORR THE LAND.M# 25 IF THY BROTHER BE WAXEN POOR, AND HATH SOLD AWAY SOME OF HIS POSSESSION,SM AND IF ANY OF HIS KIN COME TO REDEEM IT, THEN SHALL HE REDEEM THAT WHICH HISA BROTHER SOLD.M# 26 AND IF THE MAN HAVE NONE TO REDEEM IT, AND HIMSELF BE ABLE TO REDEEM IT;UF# 27 THEN LET HIM COUNT THE YEARS OF THE SALE THEREOF, AND RESTORE THEF OVERPLUS UNTO THE MAN TO WHOM HE SOLD IT; THAT HE MAY RETURN UNTO HIS POSSESSION.H# 28 BUT IF HE BE NOT ABLE TO RESTORE IT TO HIM, THEN THAT WHICH IS SOLDN SHALL REMAIN IN THE HAND OF HIM THAT HATH BOUGHT IT UNTIL THE YEAR OF JUBILE:L AND IN THE JUBILE IT SHALL GO OUT, AND HE SHALL RETURN UNTO HIS POSSESSION.L# 29 AND IF A MAN SELL A DWELLING HOUSE IN A WALLED CITY, THEN HE MAY REDEEMN IT WITHIN A WHOLE YEAR AFTER IT IS SOLD; WITHIN A FULL YEAR MAY HE REDEEM IT.H# 30 AND IF IT BE NOT REDEEMED WITHIN THE SPACE OF A FULL YEAR, THEN THEK HOUSE THAT IS IN THE WALLED CITY SHALL BE ESTABLISHED FOR EVER TO HIM THATTI BOUGHT IT THROUGHOUT HIS GENERATIONS: IT SHALL NOT GO OUT IN THE JUBILE.HM# 31 BUT THE HOUSES OF THE VILLAGES WHICH HAVE NO WALL ROUND ABOUT THEM SHALLON BE COUNTED AS THE FIELDS OF THE COUNTRY: THEY MAY BE REDEEMED, AND THEY SHALL GO OUT IN THE JUBILE.L# 32 NOTWITHSTANDING THE CITIES OF THE LEVITES, AND THE HOUSES OF THE CITIES9 OF THEIR POSSESSION, MAY THE LEVITES REDEEM AT ANY TIME.IL# 33 AND IF A MAN PURCHASE OF THE LEVITES, THEN THE HOUSE THAT WAS SOLD, ANDH THE CITY OF HIS POSSESSION, SHALL GO OUT IN THE YEAR OF JUBILE: FOR THEL HOUSES OF THE CITIES OF THE LEVITES ARE THEIR POSSESSION AMONG THE CHILDREN OF ISRAEL.AL# 34 BUT THE FIELD OF THE SUBURBS OF THEIR CITIES MAY NOT BE SOLD; FOR IT IS THEIR PERPETUAL POSSESSION.J# 35 AND IF THY BROTHER BE WAXEN POOR, AND FALLEN IN DECAY WITH THEE; THENN THOU SHALT RELIEVE HIM: YEA, THOUGH HE BE A STRANGER, OR A SOJOURNER; THAT HE MAY LIVE WITH THEE.G# 36 TAKE THOU NO USURY OF HIM, OR INCREASE: BUT FEAR THY GOD; THAT THYF BROTHER MAY LIVE WITH THEE.L# 37 THOU SHALT NOT GIVE HIM THY MONEY UPON USURY, NOR LEND HIM THY VICTUALS FOR INCREASE.G# 38 I AM THE LORD YOUR GOD, WHICH BROUGHT YOU FORTH OUT OF THE LAND OFC; EGYPT, TO GIVE YOU THE LAND OF CANAAN, AND TO BE YOUR GOD..M# 39 AND IF THY BROTHER THAT DWELLETH BY THEE BE WAXEN POOR, AND BE SOLD UNTOT; THEE; THOU SHALT NOT COMPEL HIM TO SERVE AS A BONDSERVANT:OL# 40 BUT AS AN HIRED SERVANT, AND AS A SOJOURNER, HE SHALL BE WITH THEE, AND* SHALL SERVE THEE UNTO THE YEAR OF JUBILE.K# 41 AND THEN SHALL HE DEPART FROM THEE, BOTH HE AND HIS CHILDREN WITH HIM,NM AND SHALL RETURN UNTO HIS OWN FAMILY, AND UNTO THE POSSESSION OF HIS FATHERSY SHALL HE RETURN. G# 42 FOR THEY ARE MY SERVANTS, WHICH I BROUGHT FORTH OUT OF THE LAND OF * EGYPT: THEY SHALL NOT BE SOLD AS BONDMEN.F# 43 THOU SHALT NOT RULE OVER HIM WITH RIGOUR; BUT SHALT FEAR THY GOD.L# 44 BOTH THY BONDMEN, AND THY BONDMAIDS, WHICH THOU SHALT HAVE, SHALL BE OFG THE HEATHEN THAT ARE ROUND ABOUT YOU; OF THEM SHALL YE BUY BONDMEN ANDA BONDMAIDS. L# 45 MOREOVER OF THE CHILDREN OF THE STRANGERS THAT DO SOJOURN AMONG YOU, OFM THEM SHALL YE BUY, AND OF THEIR FAMILIES THAT ARE WITH YOU, WHICH THEY BEGAT1 IN YOUR LAND: AND THEY SHALL BE YOUR POSSESSION.HM# 46 AND YE SHALL TAKE THEM AS AN INHERITANCE FOR YOUR CHILDREN AFTER YOU, TOLM INHERIT THEM FOR A POSSESSION; THEY SHALL BE YOUR BONDMEN FOR EVER: BUT OVER,N YOUR BRETHREN THE CHILDREN OF ISRAEL, YE SHALL NOT RULE ONE OVER ANOTHER WITH RIGOUR.J# 47 AND IF A SOJOURNER OR STRANGER WAX RICH BY THEE, AND THY BROTHER THATM DWELLETH BY HIM WAX POOR, AND SELL HIMSELF UNTO THE STRANGER OR SOJOURNER BY / THEE, OR TO THE STOCK OF THE STRANGERS FAMILY:EL# 48 AFTER THAT HE IS SOLD HE MAY BE REDEEMED AGAIN; ONE OF HIS BRETHREN MAY REDEEM HIM:M# 49 EITHER HIS UNCLE, OR HIS UNCLES SON, MAY REDEEM HIM, OR ANY THAT IS NIGHHN OF KIN UNTO HIM OF HIS 00a)(D%5%T6%! !FAMILY MAY REDEEM HIM; OR IF HE BE ABLE, HE MAY REDEEM HIMSELF.LK# 50 AND HE SHALL RECKON WITH HIM THAT BOUGHT HIM FROM THE YEAR THAT HE WASEH SOLD TO HIM UNTO THE YEAR OF JUBILE: AND THE PRICE OF HIS SALE SHALL BEN ACCORDING UNTO THE NUMBER OF YEARS, ACCORDING TO THE TIME OF AN HIRED SERVANT SHALL IT BE WITH HIM.I# 51 IF THERE BE YET MANY YEARS BEHIND, ACCORDING UNTO THEM HE SHALL GIVEDK AGAIN THE PRICE OF HIS REDEMPTION OUT OF THE MONEY THAT HE WAS BOUGHT FOR.AM# 52 AND IF THERE REMAIN BUT FEW YEARS UNTO THE YEAR OF JUBILE, THEN HE SHALL I COUNT WITH HIM, AND ACCORDING UNTO HIS YEARS SHALL HE GIVE HIM AGAIN THER PRICE OF HIS REDEMPTION.SL# 53 AND AS A YEARLY HIRED SERVANT SHALL HE BE WITH HIM: AND THE OTHER SHALL, NOT RULE WITH RIGOUR OVER HIM IN THY SIGHT.J# 54 AND IF HE BE NOT REDEEMED IN THESE YEARS, THEN HE SHALL GO OUT IN THE4 YEAR OF JUBILE, BOTH HE, AND HIS CHILDREN WITH HIM.J# 55 FOR UNTO ME THE CHILDREN OF ISRAEL ARE SERVANTS; THEY ARE MY SERVANTSG WHOM I BROUGHT FORTH OUT OF THE LAND OF EGYPT: I AM THE LORD YOUR GOD.H = CHAPTER 26 TF# 1 YE SHALL MAKE YOU NO IDOLS NOR GRAVEN IMAGE, NEITHER REAR YOU UP AL STANDING IMAGE, NEITHER SHALL YE SET UP ANY IMAGE OF STONE IN YOUR LAND, TO. BOW DOWN UNTO IT: FOR I AM THE LORD YOUR GOD.I# 2 YE SHALL KEEP MY SABBATHS, AND REVERENCE MY SANCTUARY: I AM THE LORD.SE# 3 IF YE WALK IN MY STATUTES, AND KEEP MY COMMANDMENTS, AND DO THEM;.I# 4 THEN I WILL GIVE YOU RAIN IN DUE SEASON, AND THE LAND SHALL YIELD HERS> INCREASE, AND THE TREES OF THE FIELD SHALL YIELD THEIR FRUIT.J# 5 AND YOUR THRESHING SHALL REACH UNTO THE VINTAGE, AND THE VINTAGE SHALLI REACH UNTO THE SOWING TIME: AND YE SHALL EAT YOUR BREAD TO THE FULL, ANDO DWELL IN YOUR LAND SAFELY.WL# 6 AND I WILL GIVE PEACE IN THE LAND, AND YE SHALL LIE DOWN, AND NONE SHALLK MAKE YOU AFRAID: AND I WILL RID EVIL BEASTS OUT OF THE LAND, NEITHER SHALLK THE SWORD GO THROUGH YOUR LAND.J# 7 AND YE SHALL CHASE YOUR ENEMIES, AND THEY SHALL FALL BEFORE YOU BY THE SWORD.SK# 8 AND FIVE OF YOU SHALL CHASE AN HUNDRED, AND AN HUNDRED OF YOU SHALL PUTGM TEN THOUSAND TO FLIGHT: AND YOUR ENEMIES SHALL FALL BEFORE YOU BY THE SWORD.MI# 9 FOR I WILL HAVE RESPECT UNTO YOU, AND MAKE YOU FRUITFUL, AND MULTIPLYY) YOU, AND ESTABLISH MY COVENANT WITH YOU.AL# 10 AND YE SHALL EAT OLD STORE, AND BRING FORTH THE OLD BECAUSE OF THE NEW.H# 11 AND I SET MY TABERNACLE AMONG YOU: AND MY SOUL SHALL NOT ABHOR YOU.H# 12 AND I WILL WALK AMONG YOU, AND WILL BE YOUR GOD, AND YE SHALL BE MY PEOPLE.G# 13 I AM THE LORD YOUR GOD, WHICH BROUGHT YOU FORTH OUT OF THE LAND OFUK EGYPT, THAT YE SHOULD NOT BE THEIR BONDMEN; AND I HAVE BROKEN THE BANDS OFO$ YOUR YOKE, AND MADE YOU GO UPRIGHT.B# 14 BUT IF YE WILL NOT HEARKEN UNTO ME, AND WILL NOT DO ALL THESE COMMANDMENTS;M# 15 AND IF YE SHALL DESPISE MY STATUTES, OR IF YOUR SOUL ABHOR MY JUDGMENTS,.K SO THAT YE WILL NOT DO ALL MY COMMANDMENTS, BUT THAT YE BREAK MY COVENANT: G# 16 I ALSO WILL DO THIS UNTO YOU; I WILL EVEN APPOINT OVER YOU TERROR,PJ CONSUMPTION, AND THE BURNING AGUE, THAT SHALL CONSUME THE EYES, AND CAUSEL SORROW OF HEART: AND YE SHALL SOW YOUR SEED IN VAIN, FOR YOUR ENEMIES SHALL EAT IT.J# 17 AND I WILL SET MY FACE AGAINST YOU, AND YE SHALL BE SLAIN BEFORE YOURN ENEMIES: THEY THAT HATE YOU SHALL REIGN OVER YOU; AND YE SHALL FLEE WHEN NONE PURSUETH YOU.L# 18 AND IF YE WILL NOT YET FOR ALL THIS HEARKEN UNTO ME, THEN I WILL PUNISH$ YOU SEVEN TIMES MORE FOR YOUR SINS.M# 19 AND I WILL BREAK THE PRIDE OF YOUR POWER; AND I WILL MAKE YOUR HEAVEN AS  IRON, AND YOUR EARTH AS BRASS:UL# 20 AND YOUR STRENGTH SHALL BE SPENT IN VAIN: FOR YOUR LAND SHALL NOT YIELDF HER INCREASE, NEITHER SHALL THE TREES OF THE LAND YIELD THEIR FRUITS.J# 21 AND IF YE WALK CONTRARY UNTO ME, AND WILL NOT HEARKEN UNTO ME; I WILL@ BRING SEVEN TIMES MORE PLAGUES UPON YOU ACCORDING TO YOUR SINS.H# 22 I WILL ALSO SEND WILD BEASTS AMONG YOU, WHICH SHALL ROB YOU OF YOURM CHILDREN, AND DESTROY YOUR CATTLE, AND MAKE YOU FEW IN NUMBER; AND YOUR HIGH; WAYS SHALL BE DESOLATE.H# 23 AND IF 00a)(<%X>%+%O-%TADATADATAYE WILL NOT BE REFORMED BY ME BY THESE THINGS, BUT WILL WALK CONTRARY UNTO ME;K# 24 THEN WILL I ALSO WALK CONTRARY UNTO YOU, AND WILL PUNISH YOU YET SEVENY TIMES FOR YOUR SINS.1K# 25 AND I WILL BRING A SWORD UPON YOU, THAT SHALL AVENGE THE QUARREL OF MYGL COVENANT: AND WHEN YE ARE GATHERED TOGETHER WITHIN YOUR CITIES, I WILL SENDI THE PESTILENCE AMONG YOU; AND YE SHALL BE DELIVERED INTO THE HAND OF THER ENEMY.AI# 26 AND WHEN I HAVE BROKEN THE STAFF OF YOUR BREAD, TEN WOMEN SHALL BAKEG YOUR BREAD IN ONE OVEN, AND THEY SHALL DELIVER YOU YOUR BREAD AGAIN BY0 WEIGHT: AND YE SHALL EAT, AND NOT BE SATISFIED.L# 27 AND IF YE WILL NOT FOR ALL THIS HEARKEN UNTO ME, BUT WALK CONTRARY UNTO ME;I# 28 THEN I WILL WALK CONTRARY UNTO YOU ALSO IN FURY; AND I, EVEN I, WILL:( CHASTISE YOU SEVEN TIMES FOR YOUR SINS.M# 29 AND YE SHALL EAT THE FLESH OF YOUR SONS, AND THE FLESH OF YOUR DAUGHTERSI SHALL YE EAT.L# 30 AND I WILL DESTROY YOUR HIGH PLACES, AND CUT DOWN YOUR IMAGES, AND CASTL YOUR CARCASES UPON THE CARCASES OF YOUR IDOLS, AND MY SOUL SHALL ABHOR YOU.G# 31 AND I WILL MAKE YOUR CITIES WASTE, AND BRING YOUR SANCTUARIES UNTOEB DESOLATION, AND I WILL NOT SMELL THE SAVOUR OF YOUR SWEET ODOURS.L# 32 AND I WILL BRING THE LAND INTO DESOLATION: AND YOUR ENEMIES WHICH DWELL# THEREIN SHALL BE ASTONISHED AT IT.NH# 33 AND I WILL SCATTER YOU AMONG THE HEATHEN, AND WILL DRAW OUT A SWORDC AFTER YOU: AND YOUR LAND SHALL BE DESOLATE, AND YOUR CITIES WASTE.NJ# 34 THEN SHALL THE LAND ENJOY HER SABBATHS, AS LONG AS IT LIETH DESOLATE,M AND YE BE IN YOUR ENEMIES LAND; EVEN THEN SHALL THE LAND REST, AND ENJOY HER SABBATHS.K# 35 AS LONG AS IT LIETH DESOLATE IT SHALL REST; BECAUSE IT DID NOT REST INO& YOUR SABBATHS, WHEN YE DWELT UPON IT.J# 36 AND UPON THEM THAT ARE LEFT ALIVE OF YOU I WILL SEND A FAINTNESS INTOK THEIR HEARTS IN THE LANDS OF THEIR ENEMIES; AND THE SOUND OF A SHAKEN LEAFOI SHALL CHASE THEM; AND THEY SHALL FLEE, AS FLEEING FROM A SWORD; AND THEY  SHALL FALL WHEN NONE PURSUETH.SJ# 37 AND THEY SHALL FALL ONE UPON ANOTHER, AS IT WERE BEFORE A SWORD, WHENH NONE PURSUETH: AND YE SHALL HAVE NO POWER TO STAND BEFORE YOUR ENEMIES.H# 38 AND YE SHALL PERISH AMONG THE HEATHEN, AND THE LAND OF YOUR ENEMIES SHALL EAT YOU UP.L# 39 AND THEY THAT ARE LEFT OF YOU SHALL PINE AWAY IN THEIR INIQUITY IN YOURK ENEMIES LANDS; AND ALSO IN THE INIQUITIES OF THEIR FATHERS SHALL THEY PINEA AWAY WITH THEM.M# 40 IF THEY SHALL CONFESS THEIR INIQUITY, AND THE INIQUITY OF THEIR FATHERS,NN WITH THEIR TRESPASS WHICH THEY TRESPASSED AGAINST ME, AND THAT ALSO THEY HAVE WALKED CONTRARY UNTO ME; J# 41 AND THAT I ALSO HAVE WALKED CONTRARY UNTO THEM, AND HAVE BROUGHT THEMF INTO THE LAND OF THEIR ENEMIES; IF THEN THEIR UNCIRCUMCISED HEARTS BEC HUMBLED, AND THEY THEN ACCEPT OF THE PUNISHMENT OF THEIR INIQUITY:IK# 42 THEN WILL I REMEMBER MY COVENANT WITH JACOB, AND ALSO MY COVENANT WITH N ISAAC, AND ALSO MY COVENANT WITH ABRAHAM WILL I REMEMBER; AND I WILL REMEMBER THE LAND.M# 43 THE LAND ALSO SHALL BE LEFT OF THEM, AND SHALL ENJOY HER SABBATHS, WHILEAL SHE LIETH DESOLATE WITHOUT THEM: AND THEY SHALL ACCEPT OF THE PUNISHMENT OFN THEIR INIQUITY: BECAUSE, EVEN BECAUSE THEY DESPISED MY JUDGMENTS, AND BECAUSE! THEIR SOUL ABHORRED MY STATUTES.L# 44 AND YET FOR ALL THAT, WHEN THEY BE IN THE LAND OF THEIR ENEMIES, I WILLL NOT CAST THEM AWAY, NEITHER WILL I ABHOR THEM, TO DESTROY THEM UTTERLY, AND= TO BREAK MY COVENANT WITH THEM: FOR I AM THE LORD THEIR GOD.EI# 45 BUT I WILL FOR THEIR SAKES REMEMBER THE COVENANT OF THEIR ANCESTORS,OK WHOM I BROUGHT FORTH OUT OF THE LAND OF EGYPT IN THE SIGHT OF THE HEATHEN,P* THAT I MIGHT BE THEIR GOD: I AM THE LORD.G# 46 THESE ARE THE STATUTES AND JUDGMENTS AND LAWS, WHICH THE LORD MADEBL BETWEEN HIM AND THE CHILDREN OF ISRAEL IN MOUNT SINAI BY THE HAND OF MOSES. = CHAPTER 27 *# 1 AND THE LORD SPAKE UNTO MOSES, SAYING,J# 2 SPEAK UNTO THE CHILDREN OF ISRAEL, AND SAY UNTO THEM, WHEN A MAN SHALLJ MAKE A SINGULAR VOW, THE PERSONS SHALL BE FOR THE LORD BY THY ESTIMATION.K# 3 AND THY ES00a)a)D%5%T6%! !TIMATION SHALL BE OF THE MALE FROM TWENTY YEARS OLD EVEN UNTO M SIXTY YEARS OLD, EVEN THY ESTIMATION SHALL BE FIFTY SHEKELS OF SILVER, AFTERE THE SHEKEL OF THE SANCTUARY.TG# 4 AND IF IT BE A FEMALE, THEN THY ESTIMATION SHALL BE THIRTY SHEKELS. I# 5 AND IF IT BE FROM FIVE YEARS OLD EVEN UNTO TWENTY YEARS OLD, THEN THYEG ESTIMATION SHALL BE OF THE MALE TWENTY SHEKELS, AND FOR THE FEMALE TEN SHEKELS.AD# 6 AND IF IT BE FROM A MONTH OLD EVEN UNTO FIVE YEARS OLD, THEN THYK ESTIMATION SHALL BE OF THE MALE FIVE SHEKELS OF SILVER, AND FOR THE FEMALER1 THY ESTIMATION SHALL BE THREE SHEKELS OF SILVER.TJ# 7 AND IF IT BE FROM SIXTY YEARS OLD AND ABOVE; IF IT BE A MALE, THEN THYE ESTIMATION SHALL BE FIFTEEN SHEKELS, AND FOR THE FEMALE TEN SHEKELS.SJ# 8 BUT IF HE BE POORER THAN THY ESTIMATION, THEN HE SHALL PRESENT HIMSELFL BEFORE THE PRIEST, AND THE PRIEST SHALL VALUE HIM; ACCORDING TO HIS ABILITY' THAT VOWED SHALL THE PRIEST VALUE HIM. J# 9 AND IF IT BE A BEAST, WHEREOF MEN BRING AN OFFERING UNTO THE LORD, ALL9 THAT ANY MAN GIVETH OF SUCH UNTO THE LORD SHALL BE HOLY.HK# 10 HE SHALL NOT ALTER IT, NOR CHANGE IT, A GOOD FOR A BAD, OR A BAD FOR ABN GOOD: AND IF HE SHALL AT ALL CHANGE BEAST FOR BEAST, THEN IT AND THE EXCHANGE THEREOF SHALL BE HOLY. K# 11 AND IF IT BE ANY UNCLEAN BEAST, OF WHICH THEY DO NOT OFFER A SACRIFICEFB UNTO THE LORD, THEN HE SHALL PRESENT THE BEAST BEFORE THE PRIEST:F# 12 AND THE PRIEST SHALL VALUE IT, WHETHER IT BE GOOD OR BAD: AS THOU0 VALUEST IT, WHO ART THE PRIEST, SO SHALL IT BE.L# 13 BUT IF HE WILL AT ALL REDEEM IT, THEN HE SHALL ADD A FIFTH PART THEREOF UNTO THY ESTIMATION.IK# 14 AND WHEN A MAN SHALL SANCTIFY HIS HOUSE TO BE HOLY UNTO THE LORD, THENAM THE PRIEST SHALL ESTIMATE IT, WHETHER IT BE GOOD OR BAD: AS THE PRIEST SHALLT ESTIMATE IT, SO SHALL IT STAND.J# 15 AND IF HE THAT SANCTIFIED IT WILL REDEEM HIS HOUSE, THEN HE SHALL ADDL THE FIFTH PART OF THE MONEY OF THY ESTIMATION UNTO IT, AND IT SHALL BE HIS.J# 16 AND IF A MAN SHALL SANCTIFY UNTO THE LORD SOME PART OF A FIELD OF HISK POSSESSION, THEN THY ESTIMATION SHALL BE ACCORDING TO THE SEED THEREOF: AN A HOMER OF BARLEY SEED SHALL BE VALUED AT FIFTY SHEKELS OF SILVER.LG# 17 IF HE SANCTIFY HIS FIELD FROM THE YEAR OF JUBILE, ACCORDING TO THY  ESTIMATION IT SHALL STAND.I# 18 BUT IF HE SANCTIFY HIS FIELD AFTER THE JUBILE, THEN THE PRIEST SHALLDL RECKON UNTO HIM THE MONEY ACCORDING TO THE YEARS THAT REMAIN, EVEN UNTO THE@ YEAR OF THE JUBILE, AND IT SHALL BE ABATED FROM THY ESTIMATION.L# 19 AND IF HE THAT SANCTIFIED THE FIELD WILL IN ANY WISE REDEEM IT, THEN HEN SHALL ADD THE FIFTH PART OF THE MONEY OF THY ESTIMATION UNTO IT, AND IT SHALL BE ASSURED TO HIM. I# 20 AND IF HE WILL NOT REDEEM THE FIELD, OR IF HE HAVE SOLD THE FIELD TOT0 ANOTHER MAN, IT SHALL NOT BE REDEEMED ANY MORE.K# 21 BUT THE FIELD, WHEN IT GOETH OUT IN THE JUBILE, SHALL BE HOLY UNTO THEHG LORD, AS A FIELD DEVOTED; THE POSSESSION THEREOF SHALL BE THE PRIESTS.TL# 22 AND IF A MAN SANCTIFY UNTO THE LORD A FIELD WHICH HE HATH BOUGHT, WHICH( IS NOT OF THE FIELDS OF HIS POSSESSION;L# 23 THEN THE PRIEST SHALL RECKON UNTO HIM THE WORTH OF THY ESTIMATION, EVENM UNTO THE YEAR OF THE JUBILE: AND HE SHALL GIVE THINE ESTIMATION IN THAT DAY,  AS A HOLY THING UNTO THE LORD.M# 24 IN THE YEAR OF THE JUBILE THE FIELD SHALL RETURN UNTO HIM OF WHOM IT WASOC BOUGHT, EVEN TO HIM TO WHOM THE POSSESSION OF THE LAND DID BELONG.OD# 25 AND ALL THY ESTIMATIONS SHALL BE ACCORDING TO THE SHEKEL OF THE. SANCTUARY: TWENTY GERAHS SHALL BE THE SHEKEL.K# 26 ONLY THE FIRSTLING OF THE BEASTS, WHICH SHOULD BE THE LORDS FIRSTLING,AG NO MAN SHALL SANCTIFY IT; WHETHER IT BE OX, OR SHEEP: IT IS THE LORDS.HK# 27 AND IF IT BE OF AN UNCLEAN BEAST, THEN HE SHALL REDEEM IT ACCORDING TOUL THINE ESTIMATION, AND SHALL ADD A FIFTH PART OF IT THERETO: OR IF IT BE NOT= REDEEMED, THEN IT SHALL BE SOLD ACCORDING TO THY ESTIMATION.FL# 28 NOTWITHSTANDING NO DEVOTED THING, THAT A MAN SHALL DEVOTE UNTO THE LORDD OF ALL THAT HE HATH, BOTH OF MAN AND BEAST, AND OF THE FIELD OF HISM00a)b)<%X>%+%O-%TADATADATA POSSESSION, SHALL BE SOLD OR REDEEMED: EVERY DEVOTED THING IS MOST HOLY UNTO THE LORD.H# 29 NONE DEVOTED, WHICH SHALL BE DEVOTED OF MEN, SHALL BE REDEEMED; BUT SHALL SURELY BE PUT TO DEATH.J# 30 AND ALL THE TITHE OF THE LAND, WHETHER OF THE SEED OF THE LAND, OR OF? THE FRUIT OF THE TREE, IS THE LORDS: IT IS HOLY UNTO THE LORD.RF# 31 AND IF A MAN WILL AT ALL REDEEM OUGHT OF HIS TITHES, HE SHALL ADD THERETO THE FIFTH PART THEREOF.C# 32 AND CONCERNING THE TITHE OF THE HERD, OR OF THE FLOCK, EVEN OFPI WHATSOEVER PASSETH UNDER THE ROD, THE TENTH SHALL BE HOLY UNTO THE LORD. K# 33 HE SHALL NOT SEARCH WHETHER IT BE GOOD OR BAD, NEITHER SHALL HE CHANGEEM IT: AND IF HE CHANGE IT AT ALL, THEN BOTH IT AND THE CHANGE THEREOF SHALL BEH HOLY; IT SHALL NOT BE REDEEMED.G# 34 THESE ARE THE COMMANDMENTS, WHICH THE LORD COMMANDED MOSES FOR THE1# CHILDREN OF ISRAEL IN MOUNT SINAI.T OF HIS TITHES, HE SHALL ADD THERETO THE FIFTH PART THEREOF.C# 32 AND CONCERNING THE TITHE OF THE HERD, OR OF THE FLOCK, EVEN O* BOOK04 NUMBERS = CHAPTER 1 D# 1 AND THE LORD SPAKE UNTO MOSES IN THE WILDERNESS OF SINAI, IN THEM TABERNACLE OF THE CONGREGATION, ON THE FIRST DAY OF THE SECOND MONTH, IN THETC SECOND YEAR AFTER THEY WERE COME OUT OF THE LAND OF EGYPT, SAYING,LL# 2 TAKE YE THE SUM OF ALL THE CONGREGATION OF THE CHILDREN OF ISRAEL, AFTERH THEIR FAMILIES, BY THE HOUSE OF THEIR FATHERS, WITH THE NUMBER OF THEIR" NAMES, EVERY MALE BY THEIR POLLS;M# 3 FROM TWENTY YEARS OLD AND UPWARD, ALL THAT ARE ABLE TO GO FORTH TO WAR INK: ISRAEL: THOU AND AARON SHALL NUMBER THEM BY THEIR ARMIES.K# 4 AND WITH YOU THERE SHALL BE A MAN OF EVERY TRIBE; EVERY ONE HEAD OF THEI HOUSE OF HIS FATHERS.H# 5 AND THESE ARE THE NAMES OF THE MEN THAT SHALL STAND WITH YOU: OF THE, TRIBE OF REUBEN; ELIZUR THE SON OF SHEDEUR.0# 6 OF SIMEON; SHELUMIEL THE SON OF ZURISHADDAI.+# 7 OF JUDAH; NAHSHON THE SON OF AMMINADAB.T+# 8 OF ISSACHAR; NETHANEEL THE SON OF ZUAR.I'# 9 OF ZEBULUN; ELIAB THE SON OF HELON.PK# 10 OF THE CHILDREN OF JOSEPH: OF EPHRAIM; ELISHAMA THE SON OF AMMIHUD: OF ( MANASSEH; GAMALIEL THE SON OF PEDAHZUR.,# 11 OF BENJAMIN; ABIDAN THE SON OF GIDEONI.,# 12 OF DAN; AHIEZER THE SON OF AMMISHADDAI.'# 13 OF ASHER; PAGIEL THE SON OF OCRAN. '# 14 OF GAD; ELIASAPH THE SON OF DEUEL.E(# 15 OF NAPHTALI; AHIRA THE SON OF ENAN.J# 16 THESE WERE THE RENOWNED OF THE CONGREGATION, PRINCES OF THE TRIBES OF- THEIR FATHERS, HEADS OF THOUSANDS IN ISRAEL.OK# 17 AND MOSES AND AARON TOOK THESE MEN WHICH ARE EXPRESSED BY THEIR NAMES:OM# 18 AND THEY ASSEMBLED ALL THE CONGREGATION TOGETHER ON THE FIRST DAY OF THE M SECOND MONTH, AND THEY DECLARED THEIR PEDIGREES AFTER THEIR FAMILIES, BY THERJ HOUSE OF THEIR FATHERS, ACCORDING TO THE NUMBER OF THE NAMES, FROM TWENTY& YEARS OLD AND UPWARD, BY THEIR POLLS.J# 19 AS THE LORD COMMANDED MOSES, SO HE NUMBERED THEM IN THE WILDERNESS OF SINAI. J# 20 AND THE CHILDREN OF REUBEN, ISRAELS ELDEST SON, BY THEIR GENERATIONS,M AFTER THEIR FAMILIES, BY THE HOUSE OF THEIR FATHERS, ACCORDING TO THE NUMBER8K OF THE NAMES, BY THEIR POLLS, EVERY MALE FROM TWENTY YEARS OLD AND UPWARD,S' ALL THAT WERE ABLE TO GO FORTH TO WAR;GH# 21 THOSE THAT WERE NUMBERED OF THEM, EVEN OF THE TRIBE OF REUBEN, WERE) FORTY AND SIX THOUSAND AND FIVE HUNDRED.SK# 22 OF THE CHILDREN OF SIMEON, BY THEIR GENERATIONS, AFTER THEIR FAMILIES,BN BY THE HOUSE OF THEIR FATHERS, THOSE THAT WERE NUMBERED OF THEM, ACCORDING TON THE NUMBER OF THE NAMES, BY THEIR POLLS, EVERY MALE FROM TWENTY YEARS OLD AND/ UPWARD, ALL THAT WERE ABLE TO GO FORTH TO WAR;EH# 23 THOSE THAT WERE NUMBERED OF THEM, EVEN OF THE TRIBE OF SIMEON, WERE+ FIFTY AND NINE THOUSAND AND THREE HUNDRED.TK# 24 OF THE CHILDREN OF GAD, BY THEIR GENERATIONS, AFTER THEIR FAMILIES, BYTN THE HOUSE OF THEIR FATHERS, ACCORDING TO THE NUMBER OF THE NAMES, FROM TWENTY= YEARS OLD AND UPWARD, ALL THAT WERE ABLE TO GO FORTH TO WAR; K# 25 THOSE THAT WERE NUMBERED OF THEM, EVEN OF THE TRIBE OF GAD, WERE FORTYP) AND FIVE THOUSAND SIX HUNDRED AND FIFTY.M# 26 OF THE CHILDREN OF JUDAH, BY TH00b*)D%5%T6%! !EIR GENERATIONS, AFTER THEIR FAMILIES, BY N THE HOUSE OF THEIR FATHERS, ACCORDING TO THE NUMBER OF THE NAMES, FROM TWENTY= YEARS OLD AND UPWARD, ALL THAT WERE ABLE TO GO FORTH TO WAR;TG# 27 THOSE THAT WERE NUMBERED OF THEM, EVEN OF THE TRIBE OF JUDAH, WEREB2 THREESCORE AND FOURTEEN THOUSAND AND SIX HUNDRED.M# 28 OF THE CHILDREN OF ISSACHAR, BY THEIR GENERATIONS, AFTER THEIR FAMILIES,,J BY THE HOUSE OF THEIR FATHERS, ACCORDING TO THE NUMBER OF THE NAMES, FROMD TWENTY YEARS OLD AND UPWARD, ALL THAT WERE ABLE TO GO FORTH TO WAR;J# 29 THOSE THAT WERE NUMBERED OF THEM, EVEN OF THE TRIBE OF ISSACHAR, WERE* FIFTY AND FOUR THOUSAND AND FOUR HUNDRED.L# 30 OF THE CHILDREN OF ZEBULUN, BY THEIR GENERATIONS, AFTER THEIR FAMILIES,J BY THE HOUSE OF THEIR FATHERS, ACCORDING TO THE NUMBER OF THE NAMES, FROMD TWENTY YEARS OLD AND UPWARD, ALL THAT WERE ABLE TO GO FORTH TO WAR;I# 31 THOSE THAT WERE NUMBERED OF THEM, EVEN OF THE TRIBE OF ZEBULUN, WEREM+ FIFTY AND SEVEN THOUSAND AND FOUR HUNDRED. L# 32 OF THE CHILDREN OF JOSEPH, NAMELY, OF THE CHILDREN OF EPHRAIM, BY THEIRL GENERATIONS, AFTER THEIR FAMILIES, BY THE HOUSE OF THEIR FATHERS, ACCORDINGL TO THE NUMBER OF THE NAMES, FROM TWENTY YEARS OLD AND UPWARD, ALL THAT WERE ABLE TO GO FORTH TO WAR;FI# 33 THOSE THAT WERE NUMBERED OF THEM, EVEN OF THE TRIBE OF EPHRAIM, WEREL! FORTY THOUSAND AND FIVE HUNDRED. M# 34 OF THE CHILDREN OF MANASSEH, BY THEIR GENERATIONS, AFTER THEIR FAMILIES,EJ BY THE HOUSE OF THEIR FATHERS, ACCORDING TO THE NUMBER OF THE NAMES, FROMD TWENTY YEARS OLD AND UPWARD, ALL THAT WERE ABLE TO GO FORTH TO WAR;J# 35 THOSE THAT WERE NUMBERED OF THEM, EVEN OF THE TRIBE OF MANASSEH, WERE) THIRTY AND TWO THOUSAND AND TWO HUNDRED.DM# 36 OF THE CHILDREN OF BENJAMIN, BY THEIR GENERATIONS, AFTER THEIR FAMILIES,MJ BY THE HOUSE OF THEIR FATHERS, ACCORDING TO THE NUMBER OF THE NAMES, FROMD TWENTY YEARS OLD AND UPWARD, ALL THAT WERE ABLE TO GO FORTH TO WAR;J# 37 THOSE THAT WERE NUMBERED OF THEM, EVEN OF THE TRIBE OF BENJAMIN, WERE+ THIRTY AND FIVE THOUSAND AND FOUR HUNDRED.PK# 38 OF THE CHILDREN OF DAN, BY THEIR GENERATIONS, AFTER THEIR FAMILIES, BYFN THE HOUSE OF THEIR FATHERS, ACCORDING TO THE NUMBER OF THE NAMES, FROM TWENTY= YEARS OLD AND UPWARD, ALL THAT WERE ABLE TO GO FORTH TO WAR; E# 39 THOSE THAT WERE NUMBERED OF THEM, EVEN OF THE TRIBE OF DAN, WEREE/ THREESCORE AND TWO THOUSAND AND SEVEN HUNDRED. M# 40 OF THE CHILDREN OF ASHER, BY THEIR GENERATIONS, AFTER THEIR FAMILIES, BYFN THE HOUSE OF THEIR FATHERS, ACCORDING TO THE NUMBER OF THE NAMES, FROM TWENTY= YEARS OLD AND UPWARD, ALL THAT WERE ABLE TO GO FORTH TO WAR;TM# 41 THOSE THAT WERE NUMBERED OF THEM, EVEN OF THE TRIBE OF ASHER, WERE FORTY # AND ONE THOUSAND AND FIVE HUNDRED.DK# 42 OF THE CHILDREN OF NAPHTALI, THROUGHOUT THEIR GENERATIONS, AFTER THEIREH FAMILIES, BY THE HOUSE OF THEIR FATHERS, ACCORDING TO THE NUMBER OF THEK NAMES, FROM TWENTY YEARS OLD AND UPWARD, ALL THAT WERE ABLE TO GO FORTH TOR WAR;FJ# 43 THOSE THAT WERE NUMBERED OF THEM, EVEN OF THE TRIBE OF NAPHTALI, WERE+ FIFTY AND THREE THOUSAND AND FOUR HUNDRED.TL# 44 THESE ARE THOSE THAT WERE NUMBERED, WHICH MOSES AND AARON NUMBERED, ANDK THE PRINCES OF ISRAEL, BEING TWELVE MEN: EACH ONE WAS FOR THE HOUSE OF HIS FATHERS.HK# 45 SO WERE ALL THOSE THAT WERE NUMBERED OF THE CHILDREN OF ISRAEL, BY THE M HOUSE OF THEIR FATHERS, FROM TWENTY YEARS OLD AND UPWARD, ALL THAT WERE ABLE  TO GO FORTH TO WAR IN ISRAEL;I# 46 EVEN ALL THEY THAT WERE NUMBERED WERE SIX HUNDRED THOUSAND AND THREEE% THOUSAND AND FIVE HUNDRED AND FIFTY.YM# 47 BUT THE LEVITES AFTER THE TRIBE OF THEIR FATHERS WERE NOT NUMBERED AMONG, THEM.0# 48 FOR THE LORD HAD SPOKEN UNTO MOSES, SAYING,J# 49 ONLY THOU SHALT NOT NUMBER THE TRIBE OF LEVI, NEITHER TAKE THE SUM OF# THEM AMONG THE CHILDREN OF ISRAEL:FM# 50 BUT THOU SHALT APPOINT THE LEVITES OVER THE TABERNACLE OF TESTIMONY, ANDDJ OVER ALL THE VESSELS THEREOF, AND OVER ALL THINGS THAT BELONG TO IT: THEYG SHALL BEAR THE TABERNACLE, AND ALL THE VESSELS THEREOF; AND THEY SHALLN? MINISTER UNTO IT, A00b*)<%X>%+%O-%TADATADATAND SHALL ENCAMP ROUND ABOUT THE TABERNACLE.IM# 51 AND WHEN THE TABERNACLE SETTETH FORWARD, THE LEVITES SHALL TAKE IT DOWN:KK AND WHEN THE TABERNACLE IS TO BE PITCHED, THE LEVITES SHALL SET IT UP: ANDI5 THE STRANGER THAT COMETH NIGH SHALL BE PUT TO DEATH.LM# 52 AND THE CHILDREN OF ISRAEL SHALL PITCH THEIR TENTS, EVERY MAN BY HIS OWNNA CAMP, AND EVERY MAN BY HIS OWN STANDARD, THROUGHOUT THEIR HOSTS.TI# 53 BUT THE LEVITES SHALL PITCH ROUND ABOUT THE TABERNACLE OF TESTIMONY,EL THAT THERE BE NO WRATH UPON THE CONGREGATION OF THE CHILDREN OF ISRAEL: ANDB THE LEVITES SHALL KEEP THE CHARGE OF THE TABERNACLE OF TESTIMONY.L# 54 AND THE CHILDREN OF ISRAEL DID ACCORDING TO ALL THAT THE LORD COMMANDED MOSES, SO DID THEY. = CHAPTER 2 9# 1 AND THE LORD SPAKE UNTO MOSES AND UNTO AARON, SAYING,EM# 2 EVERY MAN OF THE CHILDREN OF ISRAEL SHALL PITCH BY HIS OWN STANDARD, WITHWG THE ENSIGN OF THEIR FATHERS HOUSE: FAR OFF ABOUT THE TABERNACLE OF THEU CONGREGATION SHALL THEY PITCH.OG# 3 AND ON THE EAST SIDE TOWARD THE RISING OF THE SUN SHALL THEY OF THERM STANDARD OF THE CAMP OF JUDAH PITCH THROUGHOUT THEIR ARMIES: AND NAHSHON THE < SON OF AMMINADAB SHALL BE CAPTAIN OF THE CHILDREN OF JUDAH.K# 4 AND HIS HOST, AND THOSE THAT WERE NUMBERED OF THEM, WERE THREESCORE AND # FOURTEEN THOUSAND AND SIX HUNDRED.VM# 5 AND THOSE THAT DO PITCH NEXT UNTO HIM SHALL BE THE TRIBE OF ISSACHAR: ANDEH NETHANEEL THE SON OF ZUAR SHALL BE CAPTAIN OF THE CHILDREN OF ISSACHAR.K# 6 AND HIS HOST, AND THOSE THAT WERE NUMBERED THEREOF, WERE FIFTY AND FOUR  THOUSAND AND FOUR HUNDRED.DM# 7 THEN THE TRIBE OF ZEBULUN: AND ELIAB THE SON OF HELON SHALL BE CAPTAIN OFO THE CHILDREN OF ZEBULUN.NL# 8 AND HIS HOST, AND THOSE THAT WERE NUMBERED THEREOF, WERE FIFTY AND SEVEN THOUSAND AND FOUR HUNDRED.FL# 9 ALL THAT WERE NUMBERED IN THE CAMP OF JUDAH WERE AN HUNDRED THOUSAND ANDG FOURSCORE THOUSAND AND SIX THOUSAND AND FOUR HUNDRED, THROUGHOUT THEIR % ARMIES. THESE SHALL FIRST SET FORTH. L# 10 ON THE SOUTH SIDE SHALL BE THE STANDARD OF THE CAMP OF REUBEN ACCORDINGK TO THEIR ARMIES: AND THE CAPTAIN OF THE CHILDREN OF REUBEN SHALL BE ELIZURO THE SON OF SHEDEUR.K# 11 AND HIS HOST, AND THOSE THAT WERE NUMBERED THEREOF, WERE FORTY AND SIXB THOUSAND AND FIVE HUNDRED.SG# 12 AND THOSE WHICH PITCH BY HIM SHALL BE THE TRIBE OF SIMEON: AND THEPM CAPTAIN OF THE CHILDREN OF SIMEON SHALL BE SHELUMIEL THE SON OF ZURISHADDAI.DL# 13 AND HIS HOST, AND THOSE THAT WERE NUMBERED OF THEM, WERE FIFTY AND NINE THOUSAND AND THREE HUNDRED.G# 14 THEN THE TRIBE OF GAD: AND THE CAPTAIN OF THE SONS OF GAD SHALL BET ELIASAPH THE SON OF REUEL. L# 15 AND HIS HOST, AND THOSE THAT WERE NUMBERED OF THEM, WERE FORTY AND FIVE$ THOUSAND AND SIX HUNDRED AND FIFTY.J# 16 ALL THAT WERE NUMBERED IN THE CAMP OF REUBEN WERE AN HUNDRED THOUSANDH AND FIFTY AND ONE THOUSAND AND FOUR HUNDRED AND FIFTY, THROUGHOUT THEIR5 ARMIES. AND THEY SHALL SET FORTH IN THE SECOND RANK.AL# 17 THEN THE TABERNACLE OF THE CONGREGATION SHALL SET FORWARD WITH THE CAMPK OF THE LEVITES IN THE MIDST OF THE CAMP: AS THEY ENCAMP, SO SHALL THEY SETL4 FORWARD, EVERY MAN IN HIS PLACE BY THEIR STANDARDS.L# 18 ON THE WEST SIDE SHALL BE THE STANDARD OF THE CAMP OF EPHRAIM ACCORDINGN TO THEIR ARMIES: AND THE CAPTAIN OF THE SONS OF EPHRAIM SHALL BE ELISHAMA THE SON OF AMMIHUD.L# 19 AND HIS HOST, AND THOSE THAT WERE NUMBERED OF THEM, WERE FORTY THOUSAND AND FIVE HUNDRED.F# 20 AND BY HIM SHALL BE THE TRIBE OF MANASSEH: AND THE CAPTAIN OF THE< CHILDREN OF MANASSEH SHALL BE GAMALIEL THE SON OF PEDAHZUR.L# 21 AND HIS HOST, AND THOSE THAT WERE NUMBERED OF THEM, WERE THIRTY AND TWO THOUSAND AND TWO HUNDRED.H# 22 THEN THE TRIBE OF BENJAMIN: AND THE CAPTAIN OF THE SONS OF BENJAMIN$ SHALL BE ABIDAN THE SON OF GIDEONI.M# 23 AND HIS HOST, AND THOSE THAT WERE NUMBERED OF THEM, WERE THIRTY AND FIVES THOUSAND AND FOUR HUNDRED.EK# 24 ALL THAT WERE NUMBERED OF THE CAMP OF EPHRAIM WERE AN HUNDRED THOUSANDTN AND EIGHT THOUSAND AND AN HUNDRED, THROUGHOUT THEIR ARMIES. AND THEY SHALL GO FORWARD IN THE THIRD RA00b*)D%5%T6%! !NK. H# 25 THE STANDARD OF THE CAMP OF DAN SHALL BE ON THE NORTH SIDE BY THEIRK ARMIES: AND THE CAPTAIN OF THE CHILDREN OF DAN SHALL BE AHIEZER THE SON OFN AMMISHADDAI. L# 26 AND HIS HOST, AND THOSE THAT WERE NUMBERED OF THEM, WERE THREESCORE AND TWO THOUSAND AND SEVEN HUNDRED.F# 27 AND THOSE THAT ENCAMP BY HIM SHALL BE THE TRIBE OF ASHER: AND THEC CAPTAIN OF THE CHILDREN OF ASHER SHALL BE PAGIEL THE SON OF OCRAN.NK# 28 AND HIS HOST, AND THOSE THAT WERE NUMBERED OF THEM, WERE FORTY AND ONE  THOUSAND AND FIVE HUNDRED.RL# 29 THEN THE TRIBE OF NAPHTALI: AND THE CAPTAIN OF THE CHILDREN OF NAPHTALI SHALL BE AHIRA THE SON OF ENAN.M# 30 AND HIS HOST, AND THOSE THAT WERE NUMBERED OF THEM, WERE FIFTY AND THREEN THOUSAND AND FOUR HUNDRED.OL# 31 ALL THEY THAT WERE NUMBERED IN THE CAMP OF DAN WERE AN HUNDRED THOUSANDJ AND FIFTY AND SEVEN THOUSAND AND SIX HUNDRED. THEY SHALL GO HINDMOST WITH THEIR STANDARDS.FI# 32 THESE ARE THOSE WHICH WERE NUMBERED OF THE CHILDREN OF ISRAEL BY THETM HOUSE OF THEIR FATHERS: ALL THOSE THAT WERE NUMBERED OF THE CAMPS THROUGHOUTTN THEIR HOSTS WERE SIX HUNDRED THOUSAND AND THREE THOUSAND AND FIVE HUNDRED AND FIFTY.SK# 33 BUT THE LEVITES WERE NOT NUMBERED AMONG THE CHILDREN OF ISRAEL; AS THE  LORD COMMANDED MOSES.L# 34 AND THE CHILDREN OF ISRAEL DID ACCORDING TO ALL THAT THE LORD COMMANDEDN MOSES: SO THEY PITCHED BY THEIR STANDARDS, AND SO THEY SET FORWARD, EVERY ONE? AFTER THEIR FAMILIES, ACCORDING TO THE HOUSE OF THEIR FATHERS.O = CHAPTER 3 N# 1 THESE ALSO ARE THE GENERATIONS OF AARON AND MOSES IN THE DAY THAT THE LORD! SPAKE WITH MOSES IN MOUNT SINAI.HJ# 2 AND THESE ARE THE NAMES OF THE SONS OF AARON; NADAB THE FIRSTBORN, AND ABIHU, ELEAZAR, AND ITHAMAR.CD# 3 THESE ARE THE NAMES OF THE SONS OF AARON, THE PRIESTS WHICH WEREA ANOINTED, WHOM HE CONSECRATED TO MINISTER IN THE PRIESTS OFFICE. L# 4 AND NADAB AND ABIHU DIED BEFORE THE LORD, WHEN THEY OFFERED STRANGE FIREK BEFORE THE LORD, IN THE WILDERNESS OF SINAI, AND THEY HAD NO CHILDREN: AND K ELEAZAR AND ITHAMAR MINISTERED IN THE PRIESTS OFFICE IN THE SIGHT OF AARONS THEIR FATHER.*# 5 AND THE LORD SPAKE UNTO MOSES, SAYING,K# 6 BRING THE TRIBE OF LEVI NEAR, AND PRESENT THEM BEFORE AARON THE PRIEST,R! THAT THEY MAY MINISTER UNTO HIM.SL# 7 AND THEY SHALL KEEP HIS CHARGE, AND THE CHARGE OF THE WHOLE CONGREGATIOND BEFORE THE TABERNACLE OF THE CONGREGATION, TO DO THE SERVICE OF THE TABERNACLE.D# 8 AND THEY SHALL KEEP ALL THE INSTRUMENTS OF THE TABERNACLE OF THEM CONGREGATION, AND THE CHARGE OF THE CHILDREN OF ISRAEL, TO DO THE SERVICE OFF THE TABERNACLE.H# 9 AND THOU SHALT GIVE THE LEVITES UNTO AARON AND TO HIS SONS: THEY ARE5 WHOLLY GIVEN UNTO HIM OUT OF THE CHILDREN OF ISRAEL.AL# 10 AND THOU SHALT APPOINT AARON AND HIS SONS, AND THEY SHALL WAIT ON THEIRI PRIESTS OFFICE: AND THE STRANGER THAT COMETH NIGH SHALL BE PUT TO DEATH.E+# 11 AND THE LORD SPAKE UNTO MOSES, SAYING,EG# 12 AND I, BEHOLD, I HAVE TAKEN THE LEVITES FROM AMONG THE CHILDREN OFAF ISRAEL INSTEAD OF ALL THE FIRSTBORN THAT OPENETH THE MATRIX AMONG THE9 CHILDREN OF ISRAEL: THEREFORE THE LEVITES SHALL BE MINE;VL# 13 BECAUSE ALL THE FIRSTBORN ARE MINE; FOR ON THE DAY THAT I SMOTE ALL THEG FIRSTBORN IN THE LAND OF EGYPT I HALLOWED UNTO ME ALL THE FIRSTBORN INO? ISRAEL, BOTH MAN AND BEAST: MINE SHALL THEY BE: I AM THE LORD.EF# 14 AND THE LORD SPAKE UNTO MOSES IN THE WILDERNESS OF SINAI, SAYING,K# 15 NUMBER THE CHILDREN OF LEVI AFTER THE HOUSE OF THEIR FATHERS, BY THEIR I FAMILIES: EVERY MALE FROM A MONTH OLD AND UPWARD SHALT THOU NUMBER THEM.AI# 16 AND MOSES NUMBERED THEM ACCORDING TO THE WORD OF THE LORD, AS HE WASB COMMANDED.EM# 17 AND THESE WERE THE SONS OF LEVI BY THEIR NAMES; GERSHON, AND KOHATH, ANDD MERARI.M# 18 AND THESE ARE THE NAMES OF THE SONS OF GERSHON BY THEIR FAMILIES; LIBNI,L AND SHIMEI.M# 19 AND THE SONS OF KOHATH BY THEIR FAMILIES; AMRAM, AND IZEHAR, HEBRON, ANDY UZZIEL.J# 20 AND THE SONS OF MERARI BY THEIR FAMILIES; MAHLI, AND MUSHI. THESE AREE THE FAMILIES OF THE LEVITES ACCORDING TO THE HOUSE OF THE00b*)<%X>%+%O-%TADATADATAIR FATHERS.AE# 21 OF GERSHON WAS THE FAMILY OF THE LIBNITES, AND THE FAMILY OF THE 5 SHIMITES: THESE ARE THE FAMILIES OF THE GERSHONITES.II# 22 THOSE THAT WERE NUMBERED OF THEM, ACCORDING TO THE NUMBER OF ALL THEEJ MALES, FROM A MONTH OLD AND UPWARD, EVEN THOSE THAT WERE NUMBERED OF THEM& WERE SEVEN THOUSAND AND FIVE HUNDRED.F# 23 THE FAMILIES OF THE GERSHONITES SHALL PITCH BEHIND THE TABERNACLE WESTWARD.I# 24 AND THE CHIEF OF THE HOUSE OF THE FATHER OF THE GERSHONITES SHALL BEG ELIASAPH THE SON OF LAEL.C# 25 AND THE CHARGE OF THE SONS OF GERSHON IN THE TABERNACLE OF THEON CONGREGATION SHALL BE THE TABERNACLE, AND THE TENT, THE COVERING THEREOF, AND@ THE HANGING FOR THE DOOR OF THE TABERNACLE OF THE CONGREGATION,G# 26 AND THE HANGINGS OF THE COURT, AND THE CURTAIN FOR THE DOOR OF THERI COURT, WHICH IS BY THE TABERNACLE, AND BY THE ALTAR ROUND ABOUT, AND THEA) CORDS OF IT FOR ALL THE SERVICE THEREOF.I# 27 AND OF KOHATH WAS THE FAMILY OF THE AMRAMITES, AND THE FAMILY OF THED IZEHARITES, AND THE FAMILY OF THE HEBRONITES, AND THE FAMILY OF THE6 UZZIELITES: THESE ARE THE FAMILIES OF THE KOHATHITES.L# 28 IN THE NUMBER OF ALL THE MALES, FROM A MONTH OLD AND UPWARD, WERE EIGHT? THOUSAND AND SIX HUNDRED, KEEPING THE CHARGE OF THE SANCTUARY.TF# 29 THE FAMILIES OF THE SONS OF KOHATH SHALL PITCH ON THE SIDE OF THE TABERNACLE SOUTHWARD.D# 30 AND THE CHIEF OF THE HOUSE OF THE FATHER OF THE FAMILIES OF THE1 KOHATHITES SHALL BE ELIZAPHAN THE SON OF UZZIEL.SK# 31 AND THEIR CHARGE SHALL BE THE ARK, AND THE TABLE, AND THE CANDLESTICK,TN AND THE ALTARS, AND THE VESSELS OF THE SANCTUARY WHEREWITH THEY MINISTER, AND* THE HANGING, AND ALL THE SERVICE THEREOF.M# 32 AND ELEAZAR THE SON OF AARON THE PRIEST SHALL BE CHIEF OVER THE CHIEF OFEH THE LEVITES, AND HAVE THE OVERSIGHT OF THEM THAT KEEP THE CHARGE OF THE SANCTUARY.TD# 33 OF MERARI WAS THE FAMILY OF THE MAHLITES, AND THE FAMILY OF THE, MUSHITES: THESE ARE THE FAMILIES OF MERARI.M# 34 AND THOSE THAT WERE NUMBERED OF THEM, ACCORDING TO THE NUMBER OF ALL THELG MALES, FROM A MONTH OLD AND UPWARD, WERE SIX THOUSAND AND TWO HUNDRED.RK# 35 AND THE CHIEF OF THE HOUSE OF THE FATHER OF THE FAMILIES OF MERARI WAS K ZURIEL THE SON OF ABIHAIL: THESE SHALL PITCH ON THE SIDE OF THE TABERNACLE NORTHWARD. H# 36 AND UNDER THE CUSTODY AND CHARGE OF THE SONS OF MERARI SHALL BE THEM BOARDS OF THE TABERNACLE, AND THE BARS THEREOF, AND THE PILLARS THEREOF, AND:G THE SOCKETS THEREOF, AND ALL THE VESSELS THEREOF, AND ALL THAT SERVETHT THERETO,IK# 37 AND THE PILLARS OF THE COURT ROUND ABOUT, AND THEIR SOCKETS, AND THEIRH PINS, AND THEIR CORDS.M# 38 BUT THOSE THAT ENCAMP BEFORE THE TABERNACLE TOWARD THE EAST, EVEN BEFOREZK THE TABERNACLE OF THE CONGREGATION EASTWARD, SHALL BE MOSES, AND AARON ANDNM HIS SONS, KEEPING THE CHARGE OF THE SANCTUARY FOR THE CHARGE OF THE CHILDRENED OF ISRAEL; AND THE STRANGER THAT COMETH NIGH SHALL BE PUT TO DEATH.M# 39 ALL THAT WERE NUMBERED OF THE LEVITES, WHICH MOSES AND AARON NUMBERED AT M THE COMMANDMENT OF THE LORD, THROUGHOUT THEIR FAMILIES, ALL THE MALES FROM AS4 MONTH OLD AND UPWARD, WERE TWENTY AND TWO THOUSAND.K# 40 AND THE LORD SAID UNTO MOSES, NUMBER ALL THE FIRSTBORN OF THE MALES OFTK THE CHILDREN OF ISRAEL FROM A MONTH OLD AND UPWARD, AND TAKE THE NUMBER OFS THEIR NAMES.EJ# 41 AND THOU SHALT TAKE THE LEVITES FOR ME (I AM THE LORD) INSTEAD OF ALLJ THE FIRSTBORN AMONG THE CHILDREN OF ISRAEL; AND THE CATTLE OF THE LEVITESJ INSTEAD OF ALL THE FIRSTLINGS AMONG THE CATTLE OF THE CHILDREN OF ISRAEL.K# 42 AND MOSES NUMBERED, AS THE LORD COMMANDED HIM, ALL THE FIRSTBORN AMONGW THE CHILDREN OF ISRAEL.M# 43 AND ALL THE FIRSTBORN MALES BY THE NUMBER OF NAMES, FROM A MONTH OLD ANDLN UPWARD, OF THOSE THAT WERE NUMBERED OF THEM, WERE TWENTY AND TWO THOUSAND TWO% HUNDRED AND THREESCORE AND THIRTEEN.L+# 44 AND THE LORD SPAKE UNTO MOSES, SAYING,TH# 45 TAKE THE LEVITES INSTEAD OF ALL THE FIRSTBORN AMONG THE CHILDREN OFG ISRAEL, AND THE CATTLE OF THE LEVITES INSTEAD OF THEIR CATTLE; AND THED& LEVITES SHALL BE MINE: I 00b *)D%5%T6%! !AM THE LORD.L# 46 AND FOR THOSE THAT ARE TO BE REDEEMED OF THE TWO HUNDRED AND THREESCOREM AND THIRTEEN OF THE FIRSTBORN OF THE CHILDREN OF ISRAEL, WHICH ARE MORE THANL THE LEVITES;HK# 47 THOU SHALT EVEN TAKE FIVE SHEKELS APIECE BY THE POLL, AFTER THE SHEKELDF OF THE SANCTUARY SHALT THOU TAKE THEM: (THE SHEKEL IS TWENTY GERAHS:)M# 48 AND THOU SHALT GIVE THE MONEY, WHEREWITH THE ODD NUMBER OF THEM IS TO BER& REDEEMED, UNTO AARON AND TO HIS SONS.I# 49 AND MOSES TOOK THE REDEMPTION MONEY OF THEM THAT WERE OVER AND ABOVEA( THEM THAT WERE REDEEMED BY THE LEVITES:M# 50 OF THE FIRSTBORN OF THE CHILDREN OF ISRAEL TOOK HE THE MONEY; A THOUSAND G THREE HUNDRED AND THREESCORE AND FIVE SHEKELS, AFTER THE SHEKEL OF THEI SANCTUARY:IJ# 51 AND MOSES GAVE THE MONEY OF THEM THAT WERE REDEEMED UNTO AARON AND TOJ HIS SONS, ACCORDING TO THE WORD OF THE LORD, AS THE LORD COMMANDED MOSES. = CHAPTER 4 9# 1 AND THE LORD SPAKE UNTO MOSES AND UNTO AARON, SAYING,.I# 2 TAKE THE SUM OF THE SONS OF KOHATH FROM AMONG THE SONS OF LEVI, AFTERA/ THEIR FAMILIES, BY THE HOUSE OF THEIR FATHERS,OI# 3 FROM THIRTY YEARS OLD AND UPWARD EVEN UNTIL FIFTY YEARS OLD, ALL THATTK ENTER INTO THE HOST, TO DO THE WORK IN THE TABERNACLE OF THE CONGREGATION.TL# 4 THIS SHALL BE THE SERVICE OF THE SONS OF KOHATH IN THE TABERNACLE OF THE* CONGREGATION, ABOUT THE MOST HOLY THINGS:J# 5 AND WHEN THE CAMP SETTETH FORWARD, AARON SHALL COME, AND HIS SONS, ANDL THEY SHALL TAKE DOWN THE COVERING VAIL, AND COVER THE ARK OF TESTIMONY WITH IT:I# 6 AND SHALL PUT THEREON THE COVERING OF BADGERS SKINS, AND SHALL SPREADOE OVER IT A CLOTH WHOLLY OF BLUE, AND SHALL PUT IN THE STAVES THEREOF.TJ# 7 AND UPON THE TABLE OF SHEWBREAD THEY SHALL SPREAD A CLOTH OF BLUE, ANDK PUT THEREON THE DISHES, AND THE SPOONS, AND THE BOWLS, AND COVERS TO COVER 2 WITHAL: AND THE CONTINUAL BREAD SHALL BE THEREON:J# 8 AND THEY SHALL SPREAD UPON THEM A CLOTH OF SCARLET, AND COVER THE SAMEG WITH A COVERING OF BADGERS SKINS, AND SHALL PUT IN THE STAVES THEREOF.II# 9 AND THEY SHALL TAKE A CLOTH OF BLUE, AND COVER THE CANDLESTICK OF THELJ LIGHT, AND HIS LAMPS, AND HIS TONGS, AND HIS SNUFFDISHES, AND ALL THE OIL2 VESSELS THEREOF, WHEREWITH THEY MINISTER UNTO IT:K# 10 AND THEY SHALL PUT IT AND ALL THE VESSELS THEREOF WITHIN A COVERING OFE, BADGERS SKINS, AND SHALL PUT IT UPON A BAR.K# 11 AND UPON THE GOLDEN ALTAR THEY SHALL SPREAD A CLOTH OF BLUE, AND COVERTJ IT WITH A COVERING OF BADGERS SKINS, AND SHALL PUT TO THE STAVES THEREOF:H# 12 AND THEY SHALL TAKE ALL THE INSTRUMENTS OF MINISTRY, WHEREWITH THEYK MINISTER IN THE SANCTUARY, AND PUT THEM IN A CLOTH OF BLUE, AND COVER THEMI? WITH A COVERING OF BADGERS SKINS, AND SHALL PUT THEM ON A BAR:MK# 13 AND THEY SHALL TAKE AWAY THE ASHES FROM THE ALTAR, AND SPREAD A PURPLEI CLOTH THEREON:G# 14 AND THEY SHALL PUT UPON IT ALL THE VESSELS THEREOF, WHEREWITH THEYTN MINISTER ABOUT IT, EVEN THE CENSERS, THE FLESHHOOKS, AND THE SHOVELS, AND THEF BASONS, ALL THE VESSELS OF THE ALTAR; AND THEY SHALL SPREAD UPON IT A8 COVERING OF BADGERS SKINS, AND PUT TO THE STAVES OF IT.L# 15 AND WHEN AARON AND HIS SONS HAVE MADE AN END OF COVERING THE SANCTUARY,K AND ALL THE VESSELS OF THE SANCTUARY, AS THE CAMP IS TO SET FORWARD; AFTERAM THAT, THE SONS OF KOHATH SHALL COME TO BEAR IT: BUT THEY SHALL NOT TOUCH ANYAM HOLY THING, LEST THEY DIE. THESE THINGS ARE THE BURDEN OF THE SONS OF KOHATHB' IN THE TABERNACLE OF THE CONGREGATION. L# 16 AND TO THE OFFICE OF ELEAZAR THE SON OF AARON THE PRIEST PERTAINETH THEK OIL FOR THE LIGHT, AND THE SWEET INCENSE, AND THE DAILY MEAT OFFERING, ANDL THE ANOINTING OIL, AND THE OVERSIGHT OF ALL THE TABERNACLE, AND OF ALL THAT: THEREIN IS, IN THE SANCTUARY, AND IN THE VESSELS THEREOF.9# 17 AND THE LORD SPAKE UNTO MOSES AND UNTO AARON SAYING,EJ# 18 CUT YE NOT OFF THE TRIBE OF THE FAMILIES OF THE KOHATHITES FROM AMONG THE LEVITES:EF# 19 BUT THUS DO UNTO THEM, THAT THEY MAY LIVE, AND NOT DIE, WHEN THEYH APPROACH UNTO THE MOST HOLY THINGS: AARON AND HIS SONS SHALL GO IN, AND9 APPOINT THEM EVERY ONE TO HIS00b(*)<%X>%+%O-%TADATADATA SERVICE AND TO HIS BURDEN:AK# 20 BUT THEY SHALL NOT GO IN TO SEE WHEN THE HOLY THINGS ARE COVERED, LEST, THEY DIE.+# 21 AND THE LORD SPAKE UNTO MOSES, SAYING,HM# 22 TAKE ALSO THE SUM OF THE SONS OF GERSHON, THROUGHOUT THE HOUSES OF THEIR FATHERS, BY THEIR FAMILIES;M# 23 FROM THIRTY YEARS OLD AND UPWARD UNTIL FIFTY YEARS OLD SHALT THOU NUMBERUF THEM; ALL THAT ENTER IN TO PERFORM THE SERVICE, TO DO THE WORK IN THE TABERNACLE OF THE CONGREGATION.J# 24 THIS IS THE SERVICE OF THE FAMILIES OF THE GERSHONITES, TO SERVE, AND FOR BURDENS:TK# 25 AND THEY SHALL BEAR THE CURTAINS OF THE TABERNACLE, AND THE TABERNACLE.N OF THE CONGREGATION, HIS COVERING, AND THE COVERING OF THE BADGERS SKINS THATH IS ABOVE UPON IT, AND THE HANGING FOR THE DOOR OF THE TABERNACLE OF THE CONGREGATION,L# 26 AND THE HANGINGS OF THE COURT, AND THE HANGING FOR THE DOOR OF THE GATEK OF THE COURT, WHICH IS BY THE TABERNACLE AND BY THE ALTAR ROUND ABOUT, ANDTL THEIR CORDS, AND ALL THE INSTRUMENTS OF THEIR SERVICE, AND ALL THAT IS MADE FOR THEM: SO SHALL THEY SERVE. M# 27 AT THE APPOINTMENT OF AARON AND HIS SONS SHALL BE ALL THE SERVICE OF THE M SONS OF THE GERSHONITES, IN ALL THEIR BURDENS, AND IN ALL THEIR SERVICE: AND 8 YE SHALL APPOINT UNTO THEM IN CHARGE ALL THEIR BURDENS.F# 28 THIS IS THE SERVICE OF THE FAMILIES OF THE SONS OF GERSHON IN THEL TABERNACLE OF THE CONGREGATION: AND THEIR CHARGE SHALL BE UNDER THE HAND OF% ITHAMAR THE SON OF AARON THE PRIEST.RL# 29 AS FOR THE SONS OF MERARI, THOU SHALT NUMBER THEM AFTER THEIR FAMILIES, BY THE HOUSE OF THEIR FATHERS;AJ# 30 FROM THIRTY YEARS OLD AND UPWARD EVEN UNTO FIFTY YEARS OLD SHALT THOUM NUMBER THEM, EVERY ONE THAT ENTERETH INTO THE SERVICE, TO DO THE WORK OF THEY TABERNACLE OF THE CONGREGATION.K# 31 AND THIS IS THE CHARGE OF THEIR BURDEN, ACCORDING TO ALL THEIR SERVICE M IN THE TABERNACLE OF THE CONGREGATION; THE BOARDS OF THE TABERNACLE, AND THER< BARS THEREOF, AND THE PILLARS THEREOF, AND SOCKETS THEREOF,K# 32 AND THE PILLARS OF THE COURT ROUND ABOUT, AND THEIR SOCKETS, AND THEIR F PINS, AND THEIR CORDS, WITH ALL THEIR INSTRUMENTS, AND WITH ALL THEIRL SERVICE: AND BY NAME YE SHALL RECKON THE INSTRUMENTS OF THE CHARGE OF THEIR BURDEN.L# 33 THIS IS THE SERVICE OF THE FAMILIES OF THE SONS OF MERARI, ACCORDING TOL ALL THEIR SERVICE, IN THE TABERNACLE OF THE CONGREGATION, UNDER THE HAND OF% ITHAMAR THE SON OF AARON THE PRIEST.EL# 34 AND MOSES AND AARON AND THE CHIEF OF THE CONGREGATION NUMBERED THE SONSN OF THE KOHATHITES AFTER THEIR FAMILIES, AND AFTER THE HOUSE OF THEIR FATHERS,J# 35 FROM THIRTY YEARS OLD AND UPWARD EVEN UNTO FIFTY YEARS OLD, EVERY ONEF THAT ENTERETH INTO THE SERVICE, FOR THE WORK IN THE TABERNACLE OF THE CONGREGATION:M# 36 AND THOSE THAT WERE NUMBERED OF THEM BY THEIR FAMILIES WERE TWO THOUSANDT SEVEN HUNDRED AND FIFTY.AJ# 37 THESE WERE THEY THAT WERE NUMBERED OF THE FAMILIES OF THE KOHATHITES,M ALL THAT MIGHT DO SERVICE IN THE TABERNACLE OF THE CONGREGATION, WHICH MOSES M AND AARON DID NUMBER ACCORDING TO THE COMMANDMENT OF THE LORD BY THE HAND OFH MOSES.5J# 38 AND THOSE THAT WERE NUMBERED OF THE SONS OF GERSHON, THROUGHOUT THEIR- FAMILIES, AND BY THE HOUSE OF THEIR FATHERS,EJ# 39 FROM THIRTY YEARS OLD AND UPWARD EVEN UNTO FIFTY YEARS OLD, EVERY ONEF THAT ENTERETH INTO THE SERVICE, FOR THE WORK IN THE TABERNACLE OF THE CONGREGATION,M# 40 EVEN THOSE THAT WERE NUMBERED OF THEM, THROUGHOUT THEIR FAMILIES, BY THEIF HOUSE OF THEIR FATHERS, WERE TWO THOUSAND AND SIX HUNDRED AND THIRTY.E# 41 THESE ARE THEY THAT WERE NUMBERED OF THE FAMILIES OF THE SONS OF5M GERSHON, OF ALL THAT MIGHT DO SERVICE IN THE TABERNACLE OF THE CONGREGATION,FJ WHOM MOSES AND AARON DID NUMBER ACCORDING TO THE COMMANDMENT OF THE LORD.H# 42 AND THOSE THAT WERE NUMBERED OF THE FAMILIES OF THE SONS OF MERARI,: THROUGHOUT THEIR FAMILIES, BY THE HOUSE OF THEIR FATHERS,J# 43 FROM THIRTY YEARS OLD AND UPWARD EVEN UNTO FIFTY YEARS OLD, EVERY ONEF THAT ENTERETH INTO THE SERVICE, FOR THE WORK IN THE TABERNACLE OF THE CONGREGATION,K# 44 EVEN THOSE THAT00b0*)D%5%T6%! ! WERE NUMBERED OF THEM AFTER THEIR FAMILIES, WERE THREET THOUSAND AND TWO HUNDRED.M# 45 THESE BE THOSE THAT WERE NUMBERED OF THE FAMILIES OF THE SONS OF MERARI, L WHOM MOSES AND AARON NUMBERED ACCORDING TO THE WORD OF THE LORD BY THE HAND OF MOSES.J# 46 ALL THOSE THAT WERE NUMBERED OF THE LEVITES, WHOM MOSES AND AARON ANDK THE CHIEF OF ISRAEL NUMBERED, AFTER THEIR FAMILIES, AND AFTER THE HOUSE OFA THEIR FATHERS,HJ# 47 FROM THIRTY YEARS OLD AND UPWARD EVEN UNTO FIFTY YEARS OLD, EVERY ONEN THAT CAME TO DO THE SERVICE OF THE MINISTRY, AND THE SERVICE OF THE BURDEN IN$ THE TABERNACLE OF THE CONGREGATION.H# 48 EVEN THOSE THAT WERE NUMBERED OF THEM, WERE EIGHT THOUSAND AND FIVE HUNDRED AND FOURSCORE,TL# 49 ACCORDING TO THE COMMANDMENT OF THE LORD THEY WERE NUMBERED BY THE HANDK OF MOSES, EVERY ONE ACCORDING TO HIS SERVICE, AND ACCORDING TO HIS BURDEN:A= THUS WERE THEY NUMBERED OF HIM, AS THE LORD COMMANDED MOSES. = CHAPTER 5 *# 1 AND THE LORD SPAKE UNTO MOSES, SAYING,G# 2 COMMAND THE CHILDREN OF ISRAEL, THAT THEY PUT OUT OF THE CAMP EVERYEI LEPER, AND EVERY ONE THAT HATH AN ISSUE, AND WHOSOEVER IS DEFILED BY THES DEAD:H# 3 BOTH MALE AND FEMALE SHALL YE PUT OUT, WITHOUT THE CAMP SHALL YE PUTF THEM; THAT THEY DEFILE NOT THEIR CAMPS, IN THE MIDST WHEREOF I DWELL.L# 4 AND THE CHILDREN OF ISRAEL DID SO, AND PUT THEM OUT WITHOUT THE CAMP: AS: THE LORD SPAKE UNTO MOSES, SO DID THE CHILDREN OF ISRAEL.*# 5 AND THE LORD SPAKE UNTO MOSES, SAYING,K# 6 SPEAK UNTO THE CHILDREN OF ISRAEL, WHEN A MAN OR WOMAN SHALL COMMIT ANY K SIN THAT MEN COMMIT, TO DO A TRESPASS AGAINST THE LORD, AND THAT PERSON BEE GUILTY;H# 7 THEN THEY SHALL CONFESS THEIR SIN WHICH THEY HAVE DONE: AND HE SHALLN RECOMPENSE HIS TRESPASS WITH THE PRINCIPAL THEREOF, AND ADD UNTO IT THE FIFTHD PART THEREOF, AND GIVE IT UNTO HIM AGAINST WHOM HE HATH TRESPASSED.K# 8 BUT IF THE MAN HAVE NO KINSMAN TO RECOMPENSE THE TRESPASS UNTO, LET THE.M TRESPASS BE RECOMPENSED UNTO THE LORD, EVEN TO THE PRIEST; BESIDE THE RAM OFR; THE ATONEMENT, WHEREBY AN ATONEMENT SHALL BE MADE FOR HIM.MH# 9 AND EVERY OFFERING OF ALL THE HOLY THINGS OF THE CHILDREN OF ISRAEL,0 WHICH THEY BRING UNTO THE PRIEST, SHALL BE HIS.K# 10 AND EVERY MANS HALLOWED THINGS SHALL BE HIS: WHATSOEVER ANY MAN GIVETHA THE PRIEST, IT SHALL BE HIS.R+# 11 AND THE LORD SPAKE UNTO MOSES, SAYING,HK# 12 SPEAK UNTO THE CHILDREN OF ISRAEL, AND SAY UNTO THEM, IF ANY MANS WIFEN- GO ASIDE, AND COMMIT A TRESPASS AGAINST HIM, H# 13 AND A MAN LIE WITH HER CARNALLY, AND IT BE HID FROM THE EYES OF HERH HUSBAND, AND BE KEPT CLOSE, AND SHE BE DEFILED, AND THERE BE NO WITNESS3 AGAINST HER, NEITHER SHE BE TAKEN WITH THE MANNER;NM# 14 AND THE SPIRIT OF JEALOUSY COME UPON HIM, AND HE BE JEALOUS OF HIS WIFE, J AND SHE BE DEFILED: OR IF THE SPIRIT OF JEALOUSY COME UPON HIM, AND HE BE- JEALOUS OF HIS WIFE, AND SHE BE NOT DEFILED:HJ# 15 THEN SHALL THE MAN BRING HIS WIFE UNTO THE PRIEST, AND HE SHALL BRINGJ HER OFFERING FOR HER, THE TENTH PART OF AN EPHAH OF BARLEY MEAL; HE SHALLL POUR NO OIL UPON IT, NOR PUT FRANKINCENSE THEREON; FOR IT IS AN OFFERING OFE JEALOUSY, AN OFFERING OF MEMORIAL, BRINGING INIQUITY TO REMEMBRANCE.AF# 16 AND THE PRIEST SHALL BRING HER NEAR, AND SET HER BEFORE THE LORD:J# 17 AND THE PRIEST SHALL TAKE HOLY WATER IN AN EARTHEN VESSEL; AND OF THEN DUST THAT IS IN THE FLOOR OF THE TABERNACLE THE PRIEST SHALL TAKE, AND PUT IT INTO THE WATER:H# 18 AND THE PRIEST SHALL SET THE WOMAN BEFORE THE LORD, AND UNCOVER THEI WOMANS HEAD, AND PUT THE OFFERING OF MEMORIAL IN HER HANDS, WHICH IS THERJ JEALOUSY OFFERING: AND THE PRIEST SHALL HAVE IN HIS HAND THE BITTER WATER THAT CAUSETH THE CURSE:K# 19 AND THE PRIEST SHALL CHARGE HER BY AN OATH, AND SAY UNTO THE WOMAN, IFTK NO MAN HAVE LAIN WITH THEE, AND IF THOU HAST NOT GONE ASIDE TO UNCLEANNESS N WITH ANOTHER INSTEAD OF THY HUSBAND, BE THOU FREE FROM THIS BITTER WATER THAT CAUSETH THE CURSE:EJ# 20 BUT IF THOU HAST GONE ASIDE TO ANOTHER INSTEAD OF THY HUSBAND, AND IFH THOU BE DEFILED, AND SOME MAN HAVE LAIN WITH THEE BES00b8*)<%X>%+%O-%TADATADATAIDE THINE HUSBAND:L# 21 THEN THE PRIEST SHALL CHARGE THE WOMAN WITH AN OATH OF CURSING, AND THEN PRIEST SHALL SAY UNTO THE WOMAN, THE LORD MAKE THEE A CURSE AND AN OATH AMONGN THY PEOPLE, WHEN THE LORD DOTH MAKE THY THIGH TO ROT, AND THY BELLY TO SWELL;L# 22 AND THIS WATER THAT CAUSETH THE CURSE SHALL GO INTO THY BOWELS, TO MAKEI THY BELLY TO SWELL, AND THY THIGH TO ROT: AND THE WOMAN SHALL SAY, AMEN,A AMEN.I# 23 AND THE PRIEST SHALL WRITE THESE CURSES IN A BOOK, AND HE SHALL BLOT THEM OUT WITH THE BITTER WATER:L# 24 AND HE SHALL CAUSE THE WOMAN TO DRINK THE BITTER WATER THAT CAUSETH THEM CURSE: AND THE WATER THAT CAUSETH THE CURSE SHALL ENTER INTO HER, AND BECOMEO BITTER.M# 25 THEN THE PRIEST SHALL TAKE THE JEALOUSY OFFERING OUT OF THE WOMANS HAND,AJ AND SHALL WAVE THE OFFERING BEFORE THE LORD, AND OFFER IT UPON THE ALTAR:L# 26 AND THE PRIEST SHALL TAKE AN HANDFUL OF THE OFFERING, EVEN THE MEMORIALL THEREOF, AND BURN IT UPON THE ALTAR, AND AFTERWARD SHALL CAUSE THE WOMAN TO DRINK THE WATER.BH# 27 AND WHEN HE HATH MADE HER TO DRINK THE WATER, THEN IT SHALL COME TOK PASS, THAT, IF SHE BE DEFILED, AND HAVE DONE TRESPASS AGAINST HER HUSBAND,TG THAT THE WATER THAT CAUSETH THE CURSE SHALL ENTER INTO HER, AND BECOMEYJ BITTER, AND HER BELLY SHALL SWELL, AND HER THIGH SHALL ROT: AND THE WOMAN# SHALL BE A CURSE AMONG HER PEOPLE. K# 28 AND IF THE WOMAN BE NOT DEFILED, BUT BE CLEAN; THEN SHE SHALL BE FREE,T AND SHALL CONCEIVE SEED.EF# 29 THIS IS THE LAW OF JEALOUSIES, WHEN A WIFE GOETH ASIDE TO ANOTHER( INSTEAD OF HER HUSBAND, AND IS DEFILED;K# 30 OR WHEN THE SPIRIT OF JEALOUSY COMETH UPON HIM, AND HE BE JEALOUS OVERSH HIS WIFE, AND SHALL SET THE WOMAN BEFORE THE LORD, AND THE PRIEST SHALL EXECUTE UPON HER ALL THIS LAW.EM# 31 THEN SHALL THE MAN BE GUILTLESS FROM INIQUITY, AND THIS WOMAN SHALL BEAR  HER INIQUITY. = CHAPTER 6 *# 1 AND THE LORD SPAKE UNTO MOSES, SAYING,L# 2 SPEAK UNTO THE CHILDREN OF ISRAEL, AND SAY UNTO THEM, WHEN EITHER MAN ORH WOMAN SHALL SEPARATE THEMSELVES TO VOW A VOW OF A NAZARITE, TO SEPARATE THEMSELVES UNTO THE LORD:L# 3 HE SHALL SEPARATE HIMSELF FROM WINE AND STRONG DRINK, AND SHALL DRINK NOH VINEGAR OF WINE, OR VINEGAR OF STRONG DRINK, NEITHER SHALL HE DRINK ANY2 LIQUOR OF GRAPES, NOR EAT MOIST GRAPES, OR DRIED.K# 4 ALL THE DAYS OF HIS SEPARATION SHALL HE EAT NOTHING THAT IS MADE OF THEP. VINE TREE, FROM THE KERNELS EVEN TO THE HUSK.L# 5 ALL THE DAYS OF THE VOW OF HIS SEPARATION THERE SHALL NO RAZOR COME UPONJ HIS HEAD: UNTIL THE DAYS BE FULFILLED, IN THE WHICH HE SEPARATETH HIMSELFL UNTO THE LORD, HE SHALL BE HOLY, AND SHALL LET THE LOCKS OF THE HAIR OF HIS HEAD GROW. M# 6 ALL THE DAYS THAT HE SEPARATETH HIMSELF UNTO THE LORD HE SHALL COME AT NOD DEAD BODY.QL# 7 HE SHALL NOT MAKE HIMSELF UNCLEAN FOR HIS FATHER, OR FOR HIS MOTHER, FORK HIS BROTHER, OR FOR HIS SISTER, WHEN THEY DIE: BECAUSE THE CONSECRATION OFE HIS GOD IS UPON HIS HEAD.<# 8 ALL THE DAYS OF HIS SEPARATION HE IS HOLY UNTO THE LORD.L# 9 AND IF ANY MAN DIE VERY SUDDENLY BY HIM, AND HE HATH DEFILED THE HEAD OFL HIS CONSECRATION; THEN HE SHALL SHAVE HIS HEAD IN THE DAY OF HIS CLEANSING,& ON THE SEVENTH DAY SHALL HE SHAVE IT.L# 10 AND ON THE EIGHTH DAY HE SHALL BRING TWO TURTLES, OR TWO YOUNG PIGEONS,B TO THE PRIEST, TO THE DOOR OF THE TABERNACLE OF THE CONGREGATION:M# 11 AND THE PRIEST SHALL OFFER THE ONE FOR A SIN OFFERING, AND THE OTHER FOREK A BURNT OFFERING, AND MAKE AN ATONEMENT FOR HIM, FOR THAT HE SINNED BY THEN/ DEAD, AND SHALL HALLOW HIS HEAD THAT SAME DAY.YJ# 12 AND HE SHALL CONSECRATE UNTO THE LORD THE DAYS OF HIS SEPARATION, ANDK SHALL BRING A LAMB OF THE FIRST YEAR FOR A TRESPASS OFFERING: BUT THE DAYSED THAT WERE BEFORE SHALL BE LOST, BECAUSE HIS SEPARATION WAS DEFILED.M# 13 AND THIS IS THE LAW OF THE NAZARITE, WHEN THE DAYS OF HIS SEPARATION ARE:F FULFILLED: HE SHALL BE BROUGHT UNTO THE DOOR OF THE TABERNACLE OF THE CONGREGATION:L# 14 AND HE SHALL OFFER HIS OFFERING UNTO THE LORD, ONE HE LAMB OF THE FIRSTN YEAR WITHOUT BLEMISH FOR A BURNT OFFERING, AND ON00b@*)D%5%T6%! !E EWE LAMB OF THE FIRST YEARJ WITHOUT BLEMISH FOR A SIN OFFERING, AND ONE RAM WITHOUT BLEMISH FOR PEACE OFFERINGS,AL# 15 AND A BASKET OF UNLEAVENED BREAD, CAKES OF FINE FLOUR MINGLED WITH OIL,K AND WAFERS OF UNLEAVENED BREAD ANOINTED WITH OIL, AND THEIR MEAT OFFERING,F AND THEIR DRINK OFFERINGS.LM# 16 AND THE PRIEST SHALL BRING THEM BEFORE THE LORD, AND SHALL OFFER HIS SIN" OFFERING, AND HIS BURNT OFFERING:K# 17 AND HE SHALL OFFER THE RAM FOR A SACRIFICE OF PEACE OFFERINGS UNTO THEFK LORD, WITH THE BASKET OF UNLEAVENED BREAD: THE PRIEST SHALL OFFER ALSO HISN' MEAT OFFERING, AND HIS DRINK OFFERING.K# 18 AND THE NAZARITE SHALL SHAVE THE HEAD OF HIS SEPARATION AT THE DOOR OFLK THE TABERNACLE OF THE CONGREGATION, AND SHALL TAKE THE HAIR OF THE HEAD OFAK HIS SEPARATION, AND PUT IT IN THE FIRE WHICH IS UNDER THE SACRIFICE OF THEH PEACE OFFERINGS. F# 19 AND THE PRIEST SHALL TAKE THE SODDEN SHOULDER OF THE RAM, AND ONEK UNLEAVENED CAKE OUT OF THE BASKET, AND ONE UNLEAVENED WAFER, AND SHALL PUTTI THEM UPON THE HANDS OF THE NAZARITE, AFTER THE HAIR OF HIS SEPARATION ISF SHAVEN:M# 20 AND THE PRIEST SHALL WAVE THEM FOR A WAVE OFFERING BEFORE THE LORD: THISAK IS HOLY FOR THE PRIEST, WITH THE WAVE BREAST AND HEAVE SHOULDER: AND AFTER " THAT THE NAZARITE MAY DRINK WINE.M# 21 THIS IS THE LAW OF THE NAZARITE WHO HATH VOWED, AND OF HIS OFFERING UNTOSL THE LORD FOR HIS SEPARATION, BESIDE THAT THAT HIS HAND SHALL GET: ACCORDINGJ TO THE VOW WHICH HE VOWED, SO HE MUST DO AFTER THE LAW OF HIS SEPARATION.+# 22 AND THE LORD SPAKE UNTO MOSES, SAYING,HL# 23 SPEAK UNTO AARON AND UNTO HIS SONS, SAYING, ON THIS WISE YE SHALL BLESS* THE CHILDREN OF ISRAEL, SAYING UNTO THEM,(# 24 THE LORD BLESS THEE, AND KEEP THEE:G# 25 THE LORD MAKE HIS FACE SHINE UPON THEE, AND BE GRACIOUS UNTO THEE:1E# 26 THE LORD LIFT UP HIS COUNTENANCE UPON THEE, AND GIVE THEE PEACE.TM# 27 AND THEY SHALL PUT MY NAME UPON THE CHILDREN OF ISRAEL, AND I WILL BLESSG THEM. = CHAPTER 7 N# 1 AND IT CAME TO PASS ON THE DAY THAT MOSES HAD FULLY SET UP THE TABERNACLE,N AND HAD ANOINTED IT, AND SANCTIFIED IT, AND ALL THE INSTRUMENTS THEREOF, BOTHM THE ALTAR AND ALL THE VESSELS THEREOF, AND HAD ANOINTED THEM, AND SANCTIFIEDL THEM;M# 2 THAT THE PRINCES OF ISRAEL, HEADS OF THE HOUSE OF THEIR FATHERS, WHO WEREUK THE PRINCES OF THE TRIBES, AND WERE OVER THEM THAT WERE NUMBERED, OFFERED:AL# 3 AND THEY BROUGHT THEIR OFFERING BEFORE THE LORD, SIX COVERED WAGONS, ANDN TWELVE OXEN; A WAGON FOR TWO OF THE PRINCES, AND FOR EACH ONE AN OX: AND THEY$ BROUGHT THEM BEFORE THE TABERNACLE.*# 4 AND THE LORD SPAKE UNTO MOSES, SAYING,L# 5 TAKE IT OF THEM, THAT THEY MAY BE TO DO THE SERVICE OF THE TABERNACLE OFJ THE CONGREGATION; AND THOU SHALT GIVE THEM UNTO THE LEVITES, TO EVERY MAN ACCORDING TO HIS SERVICE.K# 6 AND MOSES TOOK THE WAGONS AND THE OXEN, AND GAVE THEM UNTO THE LEVITES.EK# 7 TWO WAGONS AND FOUR OXEN HE GAVE UNTO THE SONS OF GERSHON, ACCORDING TOD THEIR SERVICE:EM# 8 AND FOUR WAGONS AND EIGHT OXEN HE GAVE UNTO THE SONS OF MERARI, ACCORDINGOK UNTO THEIR SERVICE, UNDER THE HAND OF ITHAMAR THE SON OF AARON THE PRIEST.H# 9 BUT UNTO THE SONS OF KOHATH HE GAVE NONE: BECAUSE THE SERVICE OF THEN SANCTUARY BELONGING UNTO THEM WAS THAT THEY SHOULD BEAR UPON THEIR SHOULDERS.K# 10 AND THE PRINCES OFFERED FOR DEDICATING OF THE ALTAR IN THE DAY THAT ITAH WAS ANOINTED, EVEN THE PRINCES OFFERED THEIR OFFERING BEFORE THE ALTAR.H# 11 AND THE LORD SAID UNTO MOSES, THEY SHALL OFFER THEIR OFFERING, EACH4 PRINCE ON HIS DAY, FOR THE DEDICATING OF THE ALTAR.J# 12 AND HE THAT OFFERED HIS OFFERING THE FIRST DAY WAS NAHSHON THE SON OF" AMMINADAB, OF THE TRIBE OF JUDAH:G# 13 AND HIS OFFERING WAS ONE SILVER CHARGER, THE WEIGHT THEREOF WAS ANWJ HUNDRED AND THIRTY SHEKELS, ONE SILVER BOWL OF SEVENTY SHEKELS, AFTER THEK SHEKEL OF THE SANCTUARY; BOTH OF THEM WERE FULL OF FINE FLOUR MINGLED WITHN OIL FOR A MEAT OFFERING:B7# 14 ONE SPOON OF TEN SHEKELS OF GOLD, FULL OF INCENSE: H# 15 ONE YOUNG BULLOCK, ONE RAM, ONE LAMB OF THE FIRST YEAR, FOR A BURNT OFFER00bH*)<%X>%+%O-%TADATADATAING:-# 16 ONE KID OF THE GOATS FOR A SIN OFFERING:SI# 17 AND FOR A SACRIFICE OF PEACE OFFERINGS, TWO OXEN, FIVE RAMS, FIVE HEHN GOATS, FIVE LAMBS OF THE FIRST YEAR: THIS WAS THE OFFERING OF NAHSHON THE SON OF AMMINADAB.I# 18 ON THE SECOND DAY NETHANEEL THE SON OF ZUAR, PRINCE OF ISSACHAR, DIDO OFFER:RK# 19 HE OFFERED FOR HIS OFFERING ONE SILVER CHARGER, THE WEIGHT WHEREOF WASNM AN HUNDRED AND THIRTY SHEKELS, ONE SILVER BOWL OF SEVENTY SHEKELS, AFTER THEEN SHEKEL OF THE SANCTUARY; BOTH OF THEM FULL OF FINE FLOUR MINGLED WITH OIL FOR A MEAT OFFERING: 7# 20 ONE SPOON OF GOLD OF TEN SHEKELS, FULL OF INCENSE: H# 21 ONE YOUNG BULLOCK, ONE RAM, ONE LAMB OF THE FIRST YEAR, FOR A BURNT OFFERING:0# 22 ONE KID OF THE GOATS FOR A SIN OFFERING: ITI# 23 AND FOR A SACRIFICE OF PEACE OFFERINGS, TWO OXEN, FIVE RAMS, FIVE HEEL GOATS, FIVE LAMBS OF THE FIRST YEAR: THIS WAS THE OFFERING OF NETHANEEL THE SON OF ZUAR.SG# 24 ON THE THIRD DAY ELIAB THE SON OF HELON, PRINCE OF THE CHILDREN OFY ZEBULUN, DID OFFER:K# 25 HIS OFFERING WAS ONE SILVER CHARGER, THE WEIGHT WHEREOF WAS AN HUNDREDOL AND THIRTY SHEKELS, ONE SILVER BOWL OF SEVENTY SHEKELS, AFTER THE SHEKEL OFK THE SANCTUARY; BOTH OF THEM FULL OF FINE FLOUR MINGLED WITH OIL FOR A MEAT OFFERING:6# 26 ONE GOLDEN SPOON OF TEN SHEKELS, FULL OF INCENSE:H# 27 ONE YOUNG BULLOCK, ONE RAM, ONE LAMB OF THE FIRST YEAR, FOR A BURNT OFFERING:-# 28 ONE KID OF THE GOATS FOR A SIN OFFERING: I# 29 AND FOR A SACRIFICE OF PEACE OFFERINGS, TWO OXEN, FIVE RAMS, FIVE HE:L GOATS, FIVE LAMBS OF THE FIRST YEAR: THIS WAS THE OFFERING OF ELIAB THE SON OF HELON.K# 30 ON THE FOURTH DAY ELIZUR THE SON OF SHEDEUR, PRINCE OF THE CHILDREN OFT REUBEN, DID OFFER:LH# 31 HIS OFFERING WAS ONE SILVER CHARGER OF THE WEIGHT OF AN HUNDRED ANDL THIRTY SHEKELS, ONE SILVER BOWL OF SEVENTY SHEKELS, AFTER THE SHEKEL OF THEG SANCTUARY; BOTH OF THEM FULL OF FINE FLOUR MINGLED WITH OIL FOR A MEAT OFFERING:6# 32 ONE GOLDEN SPOON OF TEN SHEKELS, FULL OF INCENSE:H# 33 ONE YOUNG BULLOCK, ONE RAM, ONE LAMB OF THE FIRST YEAR, FOR A BURNT OFFERING:-# 34 ONE KID OF THE GOATS FOR A SIN OFFERING:OI# 35 AND FOR A SACRIFICE OF PEACE OFFERINGS, TWO OXEN, FIVE RAMS, FIVE HEDM GOATS, FIVE LAMBS OF THE FIRST YEAR: THIS WAS THE OFFERING OF ELIZUR THE SONA OF SHEDEUR.E# 36 ON THE FIFTH DAY SHELUMIEL THE SON OF ZURISHADDAI, PRINCE OF THEN CHILDREN OF SIMEON, DID OFFER: K# 37 HIS OFFERING WAS ONE SILVER CHARGER, THE WEIGHT WHEREOF WAS AN HUNDREDSL AND THIRTY SHEKELS, ONE SILVER BOWL OF SEVENTY SHEKELS, AFTER THE SHEKEL OFK THE SANCTUARY; BOTH OF THEM FULL OF FINE FLOUR MINGLED WITH OIL FOR A MEATG OFFERING:6# 38 ONE GOLDEN SPOON OF TEN SHEKELS, FULL OF INCENSE:H# 39 ONE YOUNG BULLOCK, ONE RAM, ONE LAMB OF THE FIRST YEAR, FOR A BURNT OFFERING:-# 40 ONE KID OF THE GOATS FOR A SIN OFFERING:MI# 41 AND FOR A SACRIFICE OF PEACE OFFERINGS, TWO OXEN, FIVE RAMS, FIVE HE L GOATS, FIVE LAMBS OF THE FIRST YEAR: THIS WAS THE OFFERING OF SHELUMIEL THE SON OF ZURISHADDAI.J# 42 ON THE SIXTH DAY ELIASAPH THE SON OF DEUEL, PRINCE OF THE CHILDREN OF GAD, OFFERED:H# 43 HIS OFFERING WAS ONE SILVER CHARGER OF THE WEIGHT OF AN HUNDRED ANDJ THIRTY SHEKELS, A SILVER BOWL OF SEVENTY SHEKELS, AFTER THE SHEKEL OF THEG SANCTUARY; BOTH OF THEM FULL OF FINE FLOUR MINGLED WITH OIL FOR A MEAT OFFERING:6# 44 ONE GOLDEN SPOON OF TEN SHEKELS, FULL OF INCENSE:H# 45 ONE YOUNG BULLOCK, ONE RAM, ONE LAMB OF THE FIRST YEAR, FOR A BURNT OFFERING:-# 46 ONE KID OF THE GOATS FOR A SIN OFFERING:2I# 47 AND FOR A SACRIFICE OF PEACE OFFERINGS, TWO OXEN, FIVE RAMS, FIVE HEDK GOATS, FIVE LAMBS OF THE FIRST YEAR: THIS WAS THE OFFERING OF ELIASAPH THER SON OF DEUEL.K# 48 ON THE SEVENTH DAY ELISHAMA THE SON OF AMMIHUD, PRINCE OF THE CHILDRENY OF EPHRAIM, OFFERED:FK# 49 HIS OFFERING WAS ONE SILVER CHARGER, THE WEIGHT WHEREOF WAS AN HUNDREDTL AND THIRTY SHEKELS, ONE SILVER BOWL OF SEVENTY SHEKELS, AFTER THE SHEKEL OFK THE SANCTUARY; BOTH OF THEM FULL OF FINE FLOUR MINGLED WITH OIL FOR A MEATE OFFERING:6# 50 ONE GOL00bP*)D%5%T6%! !DEN SPOON OF TEN SHEKELS, FULL OF INCENSE:H# 51 ONE YOUNG BULLOCK, ONE RAM, ONE LAMB OF THE FIRST YEAR, FOR A BURNT OFFERING:-# 52 ONE KID OF THE GOATS FOR A SIN OFFERING: I# 53 AND FOR A SACRIFICE OF PEACE OFFERINGS, TWO OXEN, FIVE RAMS, FIVE HEFK GOATS, FIVE LAMBS OF THE FIRST YEAR: THIS WAS THE OFFERING OF ELISHAMA THET SON OF AMMIHUD.J# 54 ON THE EIGHTH DAY OFFERED GAMALIEL THE SON OF PEDAHZUR, PRINCE OF THE CHILDREN OF MANASSEH:H# 55 HIS OFFERING WAS ONE SILVER CHARGER OF THE WEIGHT OF AN HUNDRED ANDL THIRTY SHEKELS, ONE SILVER BOWL OF SEVENTY SHEKELS, AFTER THE SHEKEL OF THEG SANCTUARY; BOTH OF THEM FULL OF FINE FLOUR MINGLED WITH OIL FOR A MEAT OFFERING:6# 56 ONE GOLDEN SPOON OF TEN SHEKELS, FULL OF INCENSE:H# 57 ONE YOUNG BULLOCK, ONE RAM, ONE LAMB OF THE FIRST YEAR, FOR A BURNT OFFERING:-# 58 ONE KID OF THE GOATS FOR A SIN OFFERING:II# 59 AND FOR A SACRIFICE OF PEACE OFFERINGS, TWO OXEN, FIVE RAMS, FIVE HEMK GOATS, FIVE LAMBS OF THE FIRST YEAR: THIS WAS THE OFFERING OF GAMALIEL THED SON OF PEDAHZUR.LJ# 60 ON THE NINTH DAY ABIDAN THE SON OF GIDEONI, PRINCE OF THE CHILDREN OF BENJAMIN, OFFERED:FK# 61 HIS OFFERING WAS ONE SILVER CHARGER, THE WEIGHT WHEREOF WAS AN HUNDREDTL AND THIRTY SHEKELS, ONE SILVER BOWL OF SEVENTY SHEKELS, AFTER THE SHEKEL OFK THE SANCTUARY; BOTH OF THEM FULL OF FINE FLOUR MINGLED WITH OIL FOR A MEATE OFFERING:6# 62 ONE GOLDEN SPOON OF TEN SHEKELS, FULL OF INCENSE:H# 63 ONE YOUNG BULLOCK, ONE RAM, ONE LAMB OF THE FIRST YEAR, FOR A BURNT OFFERING:-# 64 ONE KID OF THE GOATS FOR A SIN OFFERING:AI# 65 AND FOR A SACRIFICE OF PEACE OFFERINGS, TWO OXEN, FIVE RAMS, FIVE HEFM GOATS, FIVE LAMBS OF THE FIRST YEAR: THIS WAS THE OFFERING OF ABIDAN THE SON OF GIDEONI.L# 66 ON THE TENTH DAY AHIEZER THE SON OF AMMISHADDAI, PRINCE OF THE CHILDREN OF DAN, OFFERED: K# 67 HIS OFFERING WAS ONE SILVER CHARGER, THE WEIGHT WHEREOF WAS AN HUNDRED L AND THIRTY SHEKELS, ONE SILVER BOWL OF SEVENTY SHEKELS, AFTER THE SHEKEL OFK THE SANCTUARY; BOTH OF THEM FULL OF FINE FLOUR MINGLED WITH OIL FOR A MEAT OFFERING:6# 68 ONE GOLDEN SPOON OF TEN SHEKELS, FULL OF INCENSE:H# 69 ONE YOUNG BULLOCK, ONE RAM, ONE LAMB OF THE FIRST YEAR, FOR A BURNT OFFERING:-# 70 ONE KID OF THE GOATS FOR A SIN OFFERING:AI# 71 AND FOR A SACRIFICE OF PEACE OFFERINGS, TWO OXEN, FIVE RAMS, FIVE HE N GOATS, FIVE LAMBS OF THE FIRST YEAR: THIS WAS THE OFFERING OF AHIEZER THE SON OF AMMISHADDAI.K# 72 ON THE ELEVENTH DAY PAGIEL THE SON OF OCRAN, PRINCE OF THE CHILDREN OFO ASHER, OFFERED:K# 73 HIS OFFERING WAS ONE SILVER CHARGER, THE WEIGHT WHEREOF WAS AN HUNDREDFL AND THIRTY SHEKELS, ONE SILVER BOWL OF SEVENTY SHEKELS, AFTER THE SHEKEL OFK THE SANCTUARY; BOTH OF THEM FULL OF FINE FLOUR MINGLED WITH OIL FOR A MEATF OFFERING:6# 74 ONE GOLDEN SPOON OF TEN SHEKELS, FULL OF INCENSE:H# 75 ONE YOUNG BULLOCK, ONE RAM, ONE LAMB OF THE FIRST YEAR, FOR A BURNT OFFERING:-# 76 ONE KID OF THE GOATS FOR A SIN OFFERING:NI# 77 AND FOR A SACRIFICE OF PEACE OFFERINGS, TWO OXEN, FIVE RAMS, FIVE HE:M GOATS, FIVE LAMBS OF THE FIRST YEAR: THIS WAS THE OFFERING OF PAGIEL THE SON OF OCRAN.H# 78 ON THE TWELFTH DAY AHIRA THE SON OF ENAN, PRINCE OF THE CHILDREN OF NAPHTALI, OFFERED:FK# 79 HIS OFFERING WAS ONE SILVER CHARGER, THE WEIGHT WHEREOF WAS AN HUNDREDPL AND THIRTY SHEKELS, ONE SILVER BOWL OF SEVENTY SHEKELS, AFTER THE SHEKEL OFK THE SANCTUARY; BOTH OF THEM FULL OF FINE FLOUR MINGLED WITH OIL FOR A MEAT OFFERING:6# 80 ONE GOLDEN SPOON OF TEN SHEKELS, FULL OF INCENSE:H# 81 ONE YOUNG BULLOCK, ONE RAM, ONE LAMB OF THE FIRST YEAR, FOR A BURNT OFFERING:-# 82 ONE KID OF THE GOATS FOR A SIN OFFERING:TI# 83 AND FOR A SACRIFICE OF PEACE OFFERINGS, TWO OXEN, FIVE RAMS, FIVE HEFL GOATS, FIVE LAMBS OF THE FIRST YEAR: THIS WAS THE OFFERING OF AHIRA THE SON OF ENAN.TK# 84 THIS WAS THE DEDICATION OF THE ALTAR, IN THE DAY WHEN IT WAS ANOINTED,TJ BY THE PRINCES OF ISRAEL: TWELVE CHARGERS OF SILVER, TWELVE SILVER BOWLS, TWELVE SPOONS OF GOLD: M# 85 EACH CHARGER OF SILVER WEIGHING AN HUNDRED AND TH00bX*)<%X>%+%O-%TADATADATAIRTY SHEKELS, EACH BOWLTF SEVENTY: ALL THE SILVER VESSELS WEIGHED TWO THOUSAND AND FOUR HUNDRED, SHEKELS, AFTER THE SHEKEL OF THE SANCTUARY:I# 86 THE GOLDEN SPOONS WERE TWELVE, FULL OF INCENSE, WEIGHING TEN SHEKELSSM APIECE, AFTER THE SHEKEL OF THE SANCTUARY: ALL THE GOLD OF THE SPOONS WAS ANE HUNDRED AND TWENTY SHEKELS.G# 87 ALL THE OXEN FOR THE BURNT OFFERING WERE TWELVE BULLOCKS, THE RAMS N TWELVE, THE LAMBS OF THE FIRST YEAR TWELVE, WITH THEIR MEAT OFFERING: AND THE+ KIDS OF THE GOATS FOR SIN OFFERING TWELVE.AJ# 88 AND ALL THE OXEN FOR THE SACRIFICE OF THE PEACE OFFERINGS WERE TWENTYN AND FOUR BULLOCKS, THE RAMS SIXTY, THE HE GOATS SIXTY, THE LAMBS OF THE FIRSTN YEAR SIXTY. THIS WAS THE DEDICATION OF THE ALTAR, AFTER THAT IT WAS ANOINTED.M# 89 AND WHEN MOSES WAS GONE INTO THE TABERNACLE OF THE CONGREGATION TO SPEAK N WITH HIM, THEN HE HEARD THE VOICE OF ONE SPEAKING UNTO HIM FROM OFF THE MERCYM SEAT THAT WAS UPON THE ARK OF TESTIMONY, FROM BETWEEN THE TWO CHERUBIMS: ANDF HE SPAKE UNTO HIM.F = CHAPTER 8 *# 1 AND THE LORD SPAKE UNTO MOSES, SAYING,H# 2 SPEAK UNTO AARON AND SAY UNTO HIM, WHEN THOU LIGHTEST THE LAMPS, THE; SEVEN LAMPS SHALL GIVE LIGHT OVER AGAINST THE CANDLESTICK. C# 3 AND AARON DID SO; HE LIGHTED THE LAMPS THEREOF OVER AGAINST THEE* CANDLESTICK, AS THE LORD COMMANDED MOSES.G# 4 AND THIS WORK OF THE CANDLESTICK WAS OF BEATEN GOLD, UNTO THE SHAFTGG THEREOF, UNTO THE FLOWERS THEREOF, WAS BEATEN WORK: ACCORDING UNTO THERE PATTERN WHICH THE LORD HAD SHEWED MOSES, SO HE MADE THE CANDLESTICK.*# 5 AND THE LORD SPAKE UNTO MOSES, SAYING,I# 6 TAKE THE LEVITES FROM AMONG THE CHILDREN OF ISRAEL, AND CLEANSE THEM.SH# 7 AND THUS SHALT THOU DO UNTO THEM, TO CLEANSE THEM: SPRINKLE WATER OFK PURIFYING UPON THEM, AND LET THEM SHAVE ALL THEIR FLESH, AND LET THEM WASHL- THEIR CLOTHES, AND SO MAKE THEMSELVES CLEAN.CH# 8 THEN LET THEM TAKE A YOUNG BULLOCK WITH HIS MEAT OFFERING, EVEN FINEL FLOUR MINGLED WITH OIL, AND ANOTHER YOUNG BULLOCK SHALT THOU TAKE FOR A SIN OFFERING.A# 9 AND THOU SHALT BRING THE LEVITES BEFORE THE TABERNACLE OF THEYJ CONGREGATION: AND THOU SHALT GATHER THE WHOLE ASSEMBLY OF THE CHILDREN OF ISRAEL TOGETHER:SJ# 10 AND THOU SHALT BRING THE LEVITES BEFORE THE LORD: AND THE CHILDREN OF/ ISRAEL SHALL PUT THEIR HANDS UPON THE LEVITES: M# 11 AND AARON SHALL OFFER THE LEVITES BEFORE THE LORD FOR AN OFFERING OF THEAC CHILDREN OF ISRAEL, THAT THEY MAY EXECUTE THE SERVICE OF THE LORD.WJ# 12 AND THE LEVITES SHALL LAY THEIR HANDS UPON THE HEADS OF THE BULLOCKS:K AND THOU SHALT OFFER THE ONE FOR A SIN OFFERING, AND THE OTHER FOR A BURNTO? OFFERING, UNTO THE LORD, TO MAKE AN ATONEMENT FOR THE LEVITES.IJ# 13 AND THOU SHALT SET THE LEVITES BEFORE AARON, AND BEFORE HIS SONS, AND* OFFER THEM FOR AN OFFERING UNTO THE LORD.L# 14 THUS SHALT THOU SEPARATE THE LEVITES FROM AMONG THE CHILDREN OF ISRAEL: AND THE LEVITES SHALL BE MINE.ED# 15 AND AFTER THAT SHALL THE LEVITES GO IN TO DO THE SERVICE OF THEL TABERNACLE OF THE CONGREGATION: AND THOU SHALT CLEANSE THEM, AND OFFER THEM FOR AN OFFERING. I# 16 FOR THEY ARE WHOLLY GIVEN UNTO ME FROM AMONG THE CHILDREN OF ISRAEL;OM INSTEAD OF SUCH AS OPEN EVERY WOMB, EVEN INSTEAD OF THE FIRSTBORN OF ALL THEE/ CHILDREN OF ISRAEL, HAVE I TAKEN THEM UNTO ME. K# 17 FOR ALL THE FIRSTBORN OF THE CHILDREN OF ISRAEL ARE MINE, BOTH MAN ANDOF BEAST: ON THE DAY THAT I SMOTE EVERY FIRSTBORN IN THE LAND OF EGYPT I SANCTIFIED THEM FOR MYSELF.J# 18 AND I HAVE TAKEN THE LEVITES FOR ALL THE FIRSTBORN OF THE CHILDREN OF ISRAEL.I# 19 AND I HAVE GIVEN THE LEVITES AS A GIFT TO AARON AND TO HIS SONS FROMTM AMONG THE CHILDREN OF ISRAEL, TO DO THE SERVICE OF THE CHILDREN OF ISRAEL INEN THE TABERNACLE OF THE CONGREGATION, AND TO MAKE AN ATONEMENT FOR THE CHILDRENJ OF ISRAEL: THAT THERE BE NO PLAGUE AMONG THE CHILDREN OF ISRAEL, WHEN THE1 CHILDREN OF ISRAEL COME NIGH UNTO THE SANCTUARY. F# 20 AND MOSES, AND AARON, AND ALL THE CONGREGATION OF THE CHILDREN OFL ISRAEL, DID TO THE LEVITES ACCORDING UNTO ALL THAT THE LORD COMMANDED MOSESA CONCERNIN00b`*)D%5%T6%! !G THE LEVITES, SO DID THE CHILDREN OF ISRAEL UNTO THEM.SL# 21 AND THE LEVITES WERE PURIFIED, AND THEY WASHED THEIR CLOTHES; AND AARONM OFFERED THEM AS AN OFFERING BEFORE THE LORD; AND AARON MADE AN ATONEMENT FOR  THEM TO CLEANSE THEM.M# 22 AND AFTER THAT WENT THE LEVITES IN TO DO THEIR SERVICE IN THE TABERNACLEEG OF THE CONGREGATION BEFORE AARON, AND BEFORE HIS SONS: AS THE LORD HADC? COMMANDED MOSES CONCERNING THE LEVITES, SO DID THEY UNTO THEM.D+# 23 AND THE LORD SPAKE UNTO MOSES, SAYING,CK# 24 THIS IS IT THAT BELONGETH UNTO THE LEVITES: FROM TWENTY AND FIVE YEARSEN OLD AND UPWARD THEY SHALL GO IN TO WAIT UPON THE SERVICE OF THE TABERNACLE OF THE CONGREGATION:F# 25 AND FROM THE AGE OF FIFTY YEARS THEY SHALL CEASE WAITING UPON THE* SERVICE THEREOF, AND SHALL SERVE NO MORE:D# 26 BUT SHALL MINISTER WITH THEIR BRETHREN IN THE TABERNACLE OF THEN CONGREGATION, TO KEEP THE CHARGE, AND SHALL DO NO SERVICE. THUS SHALT THOU DO( UNTO THE LEVITES TOUCHING THEIR CHARGE. = CHAPTER 9 J# 1 AND THE LORD SPAKE UNTO MOSES IN THE WILDERNESS OF SINAI, IN THE FIRSTH MONTH OF THE SECOND YEAR AFTER THEY WERE COME OUT OF THE LAND OF EGYPT, SAYING,F# 2 LET THE CHILDREN OF ISRAEL ALSO KEEP THE PASSOVER AT HIS APPOINTED SEASON.I# 3 IN THE FOURTEENTH DAY OF THIS MONTH, AT EVEN, YE SHALL KEEP IT IN HISSM APPOINTED SEASON: ACCORDING TO ALL THE RITES OF IT, AND ACCORDING TO ALL THEE& CEREMONIES THEREOF, SHALL YE KEEP IT.J# 4 AND MOSES SPAKE UNTO THE CHILDREN OF ISRAEL, THAT THEY SHOULD KEEP THE PASSOVER.J# 5 AND THEY KEPT THE PASSOVER ON THE FOURTEENTH DAY OF THE FIRST MONTH ATJ EVEN IN THE WILDERNESS OF SINAI: ACCORDING TO ALL THAT THE LORD COMMANDED& MOSES, SO DID THE CHILDREN OF ISRAEL.K# 6 AND THERE WERE CERTAIN MEN, WHO WERE DEFILED BY THE DEAD BODY OF A MAN,,N THAT THEY COULD NOT KEEP THE PASSOVER ON THAT DAY: AND THEY CAME BEFORE MOSES AND BEFORE AARON ON THAT DAY:J# 7 AND THOSE MEN SAID UNTO HIM, WE ARE DEFILED BY THE DEAD BODY OF A MAN:M WHEREFORE ARE WE KEPT BACK, THAT WE MAY NOT OFFER AN OFFERING OF THE LORD INA3 HIS APPOINTED SEASON AMONG THE CHILDREN OF ISRAEL?EM# 8 AND MOSES SAID UNTO THEM, STAND STILL, AND I WILL HEAR WHAT THE LORD WILLS COMMAND CONCERNING YOU.*# 9 AND THE LORD SPAKE UNTO MOSES, SAYING,L# 10 SPEAK UNTO THE CHILDREN OF ISRAEL, SAYING, IF ANY MAN OF YOU OR OF YOURM POSTERITY SHALL BE UNCLEAN BY REASON OF A DEAD BODY, OR BE IN A JOURNEY AFAR 3 OFF, YET HE SHALL KEEP THE PASSOVER UNTO THE LORD.AK# 11 THE FOURTEENTH DAY OF THE SECOND MONTH AT EVEN THEY SHALL KEEP IT, ANDI/ EAT IT WITH UNLEAVENED BREAD AND BITTER HERBS.HL# 12 THEY SHALL LEAVE NONE OF IT UNTO THE MORNING, NOR BREAK ANY BONE OF IT:D ACCORDING TO ALL THE ORDINANCES OF THE PASSOVER THEY SHALL KEEP IT.J# 13 BUT THE MAN THAT IS CLEAN, AND IS NOT IN A JOURNEY, AND FORBEARETH TON KEEP THE PASSOVER, EVEN THE SAME SOUL SHALL BE CUT OFF FROM AMONG HIS PEOPLE:N BECAUSE HE BROUGHT NOT THE OFFERING OF THE LORD IN HIS APPOINTED SEASON, THAT MAN SHALL BEAR HIS SIN.J# 14 AND IF A STRANGER SHALL SOJOURN AMONG YOU, AND WILL KEEP THE PASSOVERL UNTO THE LORD; ACCORDING TO THE ORDINANCE OF THE PASSOVER, AND ACCORDING TON THE MANNER THEREOF, SO SHALL HE DO: YE SHALL HAVE ONE ORDINANCE, BOTH FOR THE1 STRANGER, AND FOR HIM THAT WAS BORN IN THE LAND.NK# 15 AND ON THE DAY THAT THE TABERNACLE WAS REARED UP THE CLOUD COVERED THEON TABERNACLE, NAMELY, THE TENT OF THE TESTIMONY: AND AT EVEN THERE WAS UPON THEA TABERNACLE AS IT WERE THE APPEARANCE OF FIRE, UNTIL THE MORNING..M# 16 SO IT WAS ALWAY: THE CLOUD COVERED IT BY DAY, AND THE APPEARANCE OF FIREU BY NIGHT.M# 17 AND WHEN THE CLOUD WAS TAKEN UP FROM THE TABERNACLE, THEN AFTER THAT THERL CHILDREN OF ISRAEL JOURNEYED: AND IN THE PLACE WHERE THE CLOUD ABODE, THERE, THE CHILDREN OF ISRAEL PITCHED THEIR TENTS.L# 18 AT THE COMMANDMENT OF THE LORD THE CHILDREN OF ISRAEL JOURNEYED, AND ATN THE COMMANDMENT OF THE LORD THEY PITCHED: AS LONG AS THE CLOUD ABODE UPON THE' TABERNACLE THEY RESTED IN THEIR TENTS.TL# 19 AND WHEN THE CLOUD TARRIED LONG UPON THE TABERNACLE MANY DA00bh*)<%X>%+%O-%TADATADATAYS, THEN THEC CHILDREN OF ISRAEL KEPT THE CHARGE OF THE LORD, AND JOURNEYED NOT.FF# 20 AND SO IT WAS, WHEN THE CLOUD WAS A FEW DAYS UPON THE TABERNACLE;H ACCORDING TO THE COMMANDMENT OF THE LORD THEY ABODE IN THEIR TENTS, AND9 ACCORDING TO THE COMMANDMENT OF THE LORD THEY JOURNEYED. M# 21 AND SO IT WAS, WHEN THE CLOUD ABODE FROM EVEN UNTO THE MORNING, AND THAT:N THE CLOUD WAS TAKEN UP IN THE MORNING, THEN THEY JOURNEYED: WHETHER IT WAS BY= DAY OR BY NIGHT THAT THE CLOUD WAS TAKEN UP, THEY JOURNEYED.AG# 22 OR WHETHER IT WERE TWO DAYS, OR A MONTH, OR A YEAR, THAT THE CLOUDYM TARRIED UPON THE TABERNACLE, REMAINING THEREON, THE CHILDREN OF ISRAEL ABODE;M IN THEIR TENTS, AND JOURNEYED NOT: BUT WHEN IT WAS TAKEN UP, THEY JOURNEYED.CH# 23 AT THE COMMANDMENT OF THE LORD THEY RESTED IN THE TENTS, AND AT THEM COMMANDMENT OF THE LORD THEY JOURNEYED: THEY KEPT THE CHARGE OF THE LORD, ATK2 THE COMMANDMENT OF THE LORD BY THE HAND OF MOSES. = CHAPTER 10 O*# 1 AND THE LORD SPAKE UNTO MOSES, SAYING,L# 2 MAKE THEE TWO TRUMPETS OF SILVER; OF A WHOLE PIECE SHALT THOU MAKE THEM:G THAT THOU MAYEST USE THEM FOR THE CALLING OF THE ASSEMBLY, AND FOR THEF JOURNEYING OF THE CAMPS.EG# 3 AND WHEN THEY SHALL BLOW WITH THEM, ALL THE ASSEMBLY SHALL ASSEMBLEAF THEMSELVES TO THEE AT THE DOOR OF THE TABERNACLE OF THE CONGREGATION.L# 4 AND IF THEY BLOW BUT WITH ONE TRUMPET, THEN THE PRINCES, WHICH ARE HEADS? OF THE THOUSANDS OF ISRAEL, SHALL GATHER THEMSELVES UNTO THEE.M# 5 WHEN YE BLOW AN ALARM, THEN THE CAMPS THAT LIE ON THE EAST PARTS SHALL GOR FORWARD.EI# 6 WHEN YE BLOW AN ALARM THE SECOND TIME, THEN THE CAMPS THAT LIE ON THE H SOUTH SIDE SHALL TAKE THEIR JOURNEY: THEY SHALL BLOW AN ALARM FOR THEIR JOURNEYS.L# 7 BUT WHEN THE CONGREGATION IS TO BE GATHERED TOGETHER, YE SHALL BLOW, BUT YE SHALL NOT SOUND AN ALARM.TI# 8 AND THE SONS OF AARON, THE PRIESTS, SHALL BLOW WITH THE TRUMPETS; ANDEL THEY SHALL BE TO YOU FOR AN ORDINANCE FOR EVER THROUGHOUT YOUR GENERATIONS.K# 9 AND IF YE GO TO WAR IN YOUR LAND AGAINST THE ENEMY THAT OPPRESSETH YOU,FJ THEN YE SHALL BLOW AN ALARM WITH THE TRUMPETS; AND YE SHALL BE REMEMBEREDC BEFORE THE LORD YOUR GOD, AND YE SHALL BE SAVED FROM YOUR ENEMIES.AJ# 10 ALSO IN THE DAY OF YOUR GLADNESS, AND IN YOUR SOLEMN DAYS, AND IN THEK BEGINNINGS OF YOUR MONTHS, YE SHALL BLOW WITH THE TRUMPETS OVER YOUR BURNTOM OFFERINGS, AND OVER THE SACRIFICES OF YOUR PEACE OFFERINGS; THAT THEY MAY BE ? TO YOU FOR A MEMORIAL BEFORE YOUR GOD: I AM THE LORD YOUR GOD.FI# 11 AND IT CAME TO PASS ON THE TWENTIETH DAY OF THE SECOND MONTH, IN THEEH SECOND YEAR, THAT THE CLOUD WAS TAKEN UP FROM OFF THE TABERNACLE OF THE TESTIMONY.UL# 12 AND THE CHILDREN OF ISRAEL TOOK THEIR JOURNEYS OUT OF THE WILDERNESS OF8 SINAI; AND THE CLOUD RESTED IN THE WILDERNESS OF PARAN.J# 13 AND THEY FIRST TOOK THEIR JOURNEY ACCORDING TO THE COMMANDMENT OF THE LORD BY THE HAND OF MOSES.FH# 14 IN THE FIRST PLACE WENT THE STANDARD OF THE CAMP OF THE CHILDREN OFJ JUDAH ACCORDING TO THEIR ARMIES: AND OVER HIS HOST WAS NAHSHON THE SON OF AMMINADAB.CM# 15 AND OVER THE HOST OF THE TRIBE OF THE CHILDREN OF ISSACHAR WAS NETHANEELR THE SON OF ZUAR.IL# 16 AND OVER THE HOST OF THE TRIBE OF THE CHILDREN OF ZEBULUN WAS ELIAB THE SON OF HELON.L# 17 AND THE TABERNACLE WAS TAKEN DOWN; AND THE SONS OF GERSHON AND THE SONS/ OF MERARI SET FORWARD, BEARING THE TABERNACLE.LJ# 18 AND THE STANDARD OF THE CAMP OF REUBEN SET FORWARD ACCORDING TO THEIR9 ARMIES: AND OVER HIS HOST WAS ELIZUR THE SON OF SHEDEUR. K# 19 AND OVER THE HOST OF THE TRIBE OF THE CHILDREN OF SIMEON WAS SHELUMIELT THE SON OF ZURISHADDAI.K# 20 AND OVER THE HOST OF THE TRIBE OF THE CHILDREN OF GAD WAS ELIASAPH THE  SON OF DEUEL.M# 21 AND THE KOHATHITES SET FORWARD, BEARING THE SANCTUARY: AND THE OTHER DID ) SET UP THE TABERNACLE AGAINST THEY CAME. H# 22 AND THE STANDARD OF THE CAMP OF THE CHILDREN OF EPHRAIM SET FORWARDN ACCORDING TO THEIR ARMIES: AND OVER HIS HOST WAS ELISHAMA THE SON OF AMMIHUD.L# 23 AND OVER THE HOST OF THE TRIBE OF THE CHILDREN OF MANASSEH WA00bp*)D%5%T6%! !S GAMALIEL THE SON OF PEDAHZUR.AJ# 24 AND OVER THE HOST OF THE TRIBE OF THE CHILDREN OF BENJAMIN WAS ABIDAN THE SON OF GIDEONI.K# 25 AND THE STANDARD OF THE CAMP OF THE CHILDREN OF DAN SET FORWARD, WHICHIL WAS THE REREWARD OF ALL THE CAMPS THROUGHOUT THEIR HOSTS: AND OVER HIS HOST$ WAS AHIEZER THE SON OF AMMISHADDAI.K# 26 AND OVER THE HOST OF THE TRIBE OF THE CHILDREN OF ASHER WAS PAGIEL THEH SON OF OCRAN.M# 27 AND OVER THE HOST OF THE TRIBE OF THE CHILDREN OF NAPHTALI WAS AHIRA THEF SON OF ENAN.AK# 28 THUS WERE THE JOURNEYINGS OF THE CHILDREN OF ISRAEL ACCORDING TO THEIRI ARMIES, WHEN THEY SET FORWARD.EM# 29 AND MOSES SAID UNTO HOBAB, THE SON OF RAGUEL THE MIDIANITE, MOSES FATHERFM IN LAW, WE ARE JOURNEYING UNTO THE PLACE OF WHICH THE LORD SAID, I WILL GIVEON IT YOU: COME THOU WITH US, AND WE WILL DO THEE GOOD: FOR THE LORD HATH SPOKEN GOOD CONCERNING ISRAEL.M# 30 AND HE SAID UNTO HIM, I WILL NOT GO; BUT I WILL DEPART TO MINE OWN LAND,T AND TO MY KINDRED.LM# 31 AND HE SAID, LEAVE US NOT, I PRAY THEE; FORASMUCH AS THOU KNOWEST HOW WENK ARE TO ENCAMP IN THE WILDERNESS, AND THOU MAYEST BE TO US INSTEAD OF EYES.SE# 32 AND IT SHALL BE, IF THOU GO WITH US, YEA, IT SHALL BE, THAT WHAT C GOODNESS THE LORD SHALL DO UNTO US, THE SAME WILL WE DO UNTO THEE.GM# 33 AND THEY DEPARTED FROM THE MOUNT OF THE LORD THREE DAYS JOURNEY: AND THEPL ARK OF THE COVENANT OF THE LORD WENT BEFORE THEM IN THE THREE DAYS JOURNEY,( TO SEARCH OUT A RESTING PLACE FOR THEM.J# 34 AND THE CLOUD OF THE LORD WAS UPON THEM BY DAY, WHEN THEY WENT OUT OF THE CAMP.M# 35 AND IT CAME TO PASS, WHEN THE ARK SET FORWARD, THAT MOSES SAID, RISE UP,SK LORD, AND LET THINE ENEMIES BE SCATTERED; AND LET THEM THAT HATE THEE FLEEG BEFORE THEE.DL# 36 AND WHEN IT RESTED, HE SAID, RETURN, O LORD, UNTO THE MANY THOUSANDS OF ISRAEL. = CHAPTER 11 HN# 1 AND WHEN THE PEOPLE COMPLAINED, IT DISPLEASED THE LORD: AND THE LORD HEARDN IT; AND HIS ANGER WAS KINDLED; AND THE FIRE OF THE LORD BURNT AMONG THEM, AND< CONSUMED THEM THAT WERE IN THE UTTERMOST PARTS OF THE CAMP.M# 2 AND THE PEOPLE CRIED UNTO MOSES; AND WHEN MOSES PRAYED UNTO THE LORD, THEI FIRE WAS QUENCHED.AM# 3 AND HE CALLED THE NAME OF THE PLACE TABERAH: BECAUSE THE FIRE OF THE LORDH BURNT AMONG THEM.F# 4 AND THE MIXT MULTITUDE THAT WAS AMONG THEM FELL A LUSTING: AND THEN CHILDREN OF ISRAEL ALSO WEPT AGAIN, AND SAID, WHO SHALL GIVE US FLESH TO EAT?J# 5 WE REMEMBER THE FISH, WHICH WE DID EAT IN EGYPT FREELY; THE CUCUMBERS,@ AND THE MELONS, AND THE LEEKS, AND THE ONIONS, AND THE GARLICK:H# 6 BUT NOW OUR SOUL IS DRIED AWAY: THERE IS NOTHING AT ALL, BESIDE THIS MANNA, BEFORE OUR EYES.M# 7 AND THE MANNA WAS AS CORIANDER SEED, AND THE COLOUR THEREOF AS THE COLOURE OF BDELLIUM.RJ# 8 AND THE PEOPLE WENT ABOUT, AND GATHERED IT, AND GROUND IT IN MILLS, ORI BEAT IT IN A MORTAR, AND BAKED IT IN PANS, AND MADE CAKES OF IT: AND THEL+ TASTE OF IT WAS AS THE TASTE OF FRESH OIL.IM# 9 AND WHEN THE DEW FELL UPON THE CAMP IN THE NIGHT, THE MANNA FELL UPON IT.LM# 10 THEN MOSES HEARD THE PEOPLE WEEP THROUGHOUT THEIR FAMILIES, EVERY MAN INRK THE DOOR OF HIS TENT: AND THE ANGER OF THE LORD WAS KINDLED GREATLY; MOSES  ALSO WAS DISPLEASED.AM# 11 AND MOSES SAID UNTO THE LORD, WHEREFORE HAST THOU AFFLICTED THY SERVANT?BI AND WHEREFORE HAVE I NOT FOUND FAVOUR IN THY SIGHT, THAT THOU LAYEST THE # BURDEN OF ALL THIS PEOPLE UPON ME?TF# 12 HAVE I CONCEIVED ALL THIS PEOPLE? HAVE I BEGOTTEN THEM, THAT THOUL SHOULDEST SAY UNTO ME, CARRY THEM IN THY BOSOM, AS A NURSING FATHER BEARETHH THE SUCKING CHILD, UNTO THE LAND WHICH THOU SWAREST UNTO THEIR FATHERS?K# 13 WHENCE SHOULD I HAVE FLESH TO GIVE UNTO ALL THIS PEOPLE? FOR THEY WEEP 1 UNTO ME, SAYING, GIVE US FLESH, THAT WE MAY EAT.,M# 14 I AM NOT ABLE TO BEAR ALL THIS PEOPLE ALONE, BECAUSE IT IS TOO HEAVY FORA ME.K# 15 AND IF THOU DEAL THUS WITH ME, KILL ME, I PRAY THEE, OUT OF HAND, IF I2D HAVE FOUND FAVOUR IN THY SIGHT; AND LET ME NOT SEE MY WRETCHEDNESS.K# 16 AND THE LORD SAID UNTO MOSES, GATHER UNTO ME SEVENTY MEN OF THE ELDERST00bx*)<%X>%+%O-%TADATADATAJ OF ISRAEL, WHOM THOU KNOWEST TO BE THE ELDERS OF THE PEOPLE, AND OFFICERSM OVER THEM; AND BRING THEM UNTO THE TABERNACLE OF THE CONGREGATION, THAT THEY  MAY STAND THERE WITH THEE.AJ# 17 AND I WILL COME DOWN AND TALK WITH THEE THERE: AND I WILL TAKE OF THEN SPIRIT WHICH IS UPON THEE, AND WILL PUT IT UPON THEM; AND THEY SHALL BEAR THEE BURDEN OF THE PEOPLE WITH THEE, THAT THOU BEAR IT NOT THYSELF ALONE. M# 18 AND SAY THOU UNTO THE PEOPLE, SANCTIFY YOURSELVES AGAINST TO MORROW, AND J YE SHALL EAT FLESH: FOR YE HAVE WEPT IN THE EARS OF THE LORD, SAYING, WHOL SHALL GIVE US FLESH TO EAT? FOR IT WAS WELL WITH US IN EGYPT: THEREFORE THE, LORD WILL GIVE YOU FLESH, AND YE SHALL EAT.M# 19 YE SHALL NOT EAT ONE DAY, NOR TWO DAYS, NOR FIVE DAYS, NEITHER TEN DAYS,E NOR TWENTY DAYS;UJ# 20 BUT EVEN A WHOLE MONTH, UNTIL IT COME OUT AT YOUR NOSTRILS, AND IT BEJ LOATHSOME UNTO YOU: BECAUSE THAT YE HAVE DESPISED THE LORD WHICH IS AMONGG YOU, AND HAVE WEPT BEFORE HIM, SAYING, WHY CAME WE FORTH OUT OF EGYPT?AJ# 21 AND MOSES SAID, THE PEOPLE, AMONG WHOM I AM, ARE SIX HUNDRED THOUSANDI FOOTMEN; AND THOU HAST SAID, I WILL GIVE THEM FLESH, THAT THEY MAY EAT AL WHOLE MONTH.,J# 22 SHALL THE FLOCKS AND THE HERDS BE SLAIN FOR THEM, TO SUFFICE THEM? ORN SHALL ALL THE FISH OF THE SEA BE GATHERED TOGETHER FOR THEM, TO SUFFICE THEM?L# 23 AND THE LORD SAID UNTO MOSES, IS THE LORDS HAND WAXED SHORT? THOU SHALT= SEE NOW WHETHER MY WORD SHALL COME TO PASS UNTO THEE OR NOT.EG# 24 AND MOSES WENT OUT, AND TOLD THE PEOPLE THE WORDS OF THE LORD, ANDPI GATHERED THE SEVENTY MEN OF THE ELDERS OF THE PEOPLE, AND SET THEM ROUNDA ABOUT THE TABERNACLE.K# 25 AND THE LORD CAME DOWN IN A CLOUD, AND SPAKE UNTO HIM, AND TOOK OF THE N SPIRIT THAT WAS UPON HIM, AND GAVE IT UNTO THE SEVENTY ELDERS: AND IT CAME TOK PASS, THAT, WHEN THE SPIRIT RESTED UPON THEM, THEY PROPHESIED, AND DID NOT  CEASE. K# 26 BUT THERE REMAINED TWO OF THE MEN IN THE CAMP, THE NAME OF THE ONE WASOM ELDAD, AND THE NAME OF THE OTHER MEDAD: AND THE SPIRIT RESTED UPON THEM; ANDOK THEY WERE OF THEM THAT WERE WRITTEN, BUT WENT NOT OUT UNTO THE TABERNACLE: ! AND THEY PROPHESIED IN THE CAMP.5L# 27 AND THERE RAN A YOUNG MAN, AND TOLD MOSES, AND SAID, ELDAD AND MEDAD DO PROPHESY IN THE CAMP.K# 28 AND JOSHUA THE SON OF NUN, THE SERVANT OF MOSES, ONE OF HIS YOUNG MEN,R/ ANSWERED AND SAID, MY LORD MOSES, FORBID THEM. J# 29 AND MOSES SAID UNTO HIM, ENVIEST THOU FOR MY SAKE? WOULD GOD THAT ALLL THE LORDS PEOPLE WERE PROPHETS, AND THAT THE LORD WOULD PUT HIS SPIRIT UPON THEM!B# 30 AND MOSES GAT HIM INTO THE CAMP, HE AND THE ELDERS OF ISRAEL.K# 31 AND THERE WENT FORTH A WIND FROM THE LORD, AND BROUGHT QUAILS FROM THEUL SEA, AND LET THEM FALL BY THE CAMP, AS IT WERE A DAYS JOURNEY ON THIS SIDE,N AND AS IT WERE A DAYS JOURNEY ON THE OTHER SIDE, ROUND ABOUT THE CAMP, AND AS4 IT WERE TWO CUBITS HIGH UPON THE FACE OF THE EARTH.J# 32 AND THE PEOPLE STOOD UP ALL THAT DAY, AND ALL THAT NIGHT, AND ALL THEL NEXT DAY, AND THEY GATHERED THE QUAILS: HE THAT GATHERED LEAST GATHERED TENM HOMERS: AND THEY SPREAD THEM ALL ABROAD FOR THEMSELVES ROUND ABOUT THE CAMP.TL# 33 AND WHILE THE FLESH WAS YET BETWEEN THEIR TEETH, ERE IT WAS CHEWED, THEI WRATH OF THE LORD WAS KINDLED AGAINST THE PEOPLE, AND THE LORD SMOTE THE ! PEOPLE WITH A VERY GREAT PLAGUE. I# 34 AND HE CALLED THE NAME OF THAT PLACE KIBROTHHATTAAVAH: BECAUSE THEREO$ THEY BURIED THE PEOPLE THAT LUSTED.L# 35 AND THE PEOPLE JOURNEYED FROM KIBROTHHATTAAVAH UNTO HAZEROTH; AND ABODE AT HAZEROTH.H = CHAPTER 12 K# 1 AND MIRIAM AND AARON SPAKE AGAINST MOSES BECAUSE OF THE ETHIOPIAN WOMANO< WHOM HE HAD MARRIED: FOR HE HAD MARRIED AN ETHIOPIAN WOMAN.I# 2 AND THEY SAID, HATH THE LORD INDEED SPOKEN ONLY BY MOSES? HATH HE NOTT* SPOKEN ALSO BY US? AND THE LORD HEARD IT.K# 3 (NOW THE MAN MOSES WAS VERY MEEK, ABOVE ALL THE MEN WHICH WERE UPON THET FACE OF THE EARTH.)L# 4 AND THE LORD SPAKE SUDDENLY UNTO MOSES, AND UNTO AARON, AND UNTO MIRIAM,J COME OUT YE THREE UNTO THE TABERNACLE OF THE CONGREGATION. AND THEY THREE CAM00b*)D%5%T6%! !E OUT.L# 5 AND THE LORD CAME DOWN IN THE PILLAR OF THE CLOUD, AND STOOD IN THE DOORJ OF THE TABERNACLE, AND CALLED AARON AND MIRIAM: AND THEY BOTH CAME FORTH.J# 6 AND HE SAID, HEAR NOW MY WORDS: IF THERE BE A PROPHET AMONG YOU, I THEM LORD WILL MAKE MYSELF KNOWN UNTO HIM IN A VISION, AND WILL SPEAK UNTO HIM IN A DREAM.HB# 7 MY SERVANT MOSES IS NOT SO, WHO IS FAITHFUL IN ALL MINE HOUSE.J# 8 WITH HIM WILL I SPEAK MOUTH TO MOUTH, EVEN APPARENTLY, AND NOT IN DARKN SPEECHES; AND THE SIMILITUDE OF THE LORD SHALL HE BEHOLD: WHEREFORE THEN WERE1 YE NOT AFRAID TO SPEAK AGAINST MY SERVANT MOSES?HH# 9 AND THE ANGER OF THE LORD WAS KINDLED AGAINST THEM; AND HE DEPARTED.H# 10 AND THE CLOUD DEPARTED FROM OFF THE TABERNACLE; AND, BEHOLD, MIRIAMN BECAME LEPROUS, WHITE AS SNOW: AND AARON LOOKED UPON MIRIAM, AND, BEHOLD, SHE WAS LEPROUS.YJ# 11 AND AARON SAID UNTO MOSES, ALAS, MY LORD, I BESEECH THEE, LAY NOT THEI SIN UPON US, WHEREIN WE HAVE DONE FOOLISHLY, AND WHEREIN WE HAVE SINNED.DK# 12 LET HER NOT BE AS ONE DEAD, OF WHOM THE FLESH IS HALF CONSUMED WHEN HEA COMETH OUT OF HIS MOTHERS WOMB.J# 13 AND MOSES CRIED UNTO THE LORD, SAYING, HEAL HER NOW, O GOD, I BESEECH THEE.J# 14 AND THE LORD SAID UNTO MOSES, IF HER FATHER HAD BUT SPIT IN HER FACE,N SHOULD SHE NOT BE ASHAMED SEVEN DAYS? LET HER BE SHUT OUT FROM THE CAMP SEVEN3 DAYS, AND AFTER THAT LET HER BE RECEIVED IN AGAIN.RE# 15 AND MIRIAM WAS SHUT OUT FROM THE CAMP SEVEN DAYS: AND THE PEOPLEI0 JOURNEYED NOT TILL MIRIAM WAS BROUGHT IN AGAIN.G# 16 AND AFTERWARD THE PEOPLE REMOVED FROM HAZEROTH, AND PITCHED IN THEU WILDERNESS OF PARAN. = CHAPTER 13 C*# 1 AND THE LORD SPAKE UNTO MOSES, SAYING,M# 2 SEND THOU MEN, THAT THEY MAY SEARCH THE LAND OF CANAAN, WHICH I GIVE UNTOTM THE CHILDREN OF ISRAEL: OF EVERY TRIBE OF THEIR FATHERS SHALL YE SEND A MAN,F EVERY ONE A RULER AMONG THEM.M# 3 AND MOSES BY THE COMMANDMENT OF THE LORD SENT THEM FROM THE WILDERNESS OF ; PARAN: ALL THOSE MEN WERE HEADS OF THE CHILDREN OF ISRAEL.WJ# 4 AND THESE WERE THEIR NAMES: OF THE TRIBE OF REUBEN, SHAMMUA THE SON OF ZACCUR.4# 5 OF THE TRIBE OF SIMEON, SHAPHAT THE SON OF HORI.6# 6 OF THE TRIBE OF JUDAH, CALEB THE SON OF JEPHUNNEH.5# 7 OF THE TRIBE OF ISSACHAR, IGAL THE SON OF JOSEPH.E2# 8 OF THE TRIBE OF EPHRAIM, OSHEA THE SON OF NUN.5# 9 OF THE TRIBE OF BENJAMIN, PALTI THE SON OF RAPHU.A6# 10 OF THE TRIBE OF ZEBULUN, GADDIEL THE SON OF SODI.L# 11 OF THE TRIBE OF JOSEPH, NAMELY, OF THE TRIBE OF MANASSEH, GADDI THE SON OF SUSI.S4# 12 OF THE TRIBE OF DAN, AMMIEL THE SON OF GEMALLI.6# 13 OF THE TRIBE OF ASHER, SETHUR THE SON OF MICHAEL.7# 14 OF THE TRIBE OF NAPHTALI, NAHBI THE SON OF VOPHSI. 1# 15 OF THE TRIBE OF GAD, GEUEL THE SON OF MACHI.EM# 16 THESE ARE THE NAMES OF THE MEN WHICH MOSES SENT TO SPY OUT THE LAND. ANDS, MOSES CALLED OSHEA THE SON OF NUN JEHOSHUA.K# 17 AND MOSES SENT THEM TO SPY OUT THE LAND OF CANAAN, AND SAID UNTO THEM,< GET YOU UP THIS WAY SOUTHWARD, AND GO UP INTO THE MOUNTAIN:H# 18 AND SEE THE LAND, WHAT IT IS, AND THE PEOPLE THAT DWELLETH THEREIN,- WHETHER THEY BE STRONG OR WEAK, FEW OR MANY;SL# 19 AND WHAT THE LAND IS THAT THEY DWELL IN, WHETHER IT BE GOOD OR BAD; ANDN WHAT CITIES THEY BE THAT THEY DWELL IN, WHETHER IN TENTS, OR IN STRONG HOLDS;K# 20 AND WHAT THE LAND IS, WHETHER IT BE FAT OR LEAN, WHETHER THERE BE WOODFJ THEREIN, OR NOT. AND BE YE OF GOOD COURAGE, AND BRING OF THE FRUIT OF THE9 LAND. NOW THE TIME WAS THE TIME OF THE FIRSTRIPE GRAPES. K# 21 SO THEY WENT UP, AND SEARCHED THE LAND FROM THE WILDERNESS OF ZIN UNTOE REHOB, AS MEN COME TO HAMATH.H# 22 AND THEY ASCENDED BY THE SOUTH, AND CAME UNTO HEBRON; WHERE AHIMAN,M SHESHAI, AND TALMAI, THE CHILDREN OF ANAK, WERE. (NOW HEBRON WAS BUILT SEVENE YEARS BEFORE ZOAN IN EGYPT.)DG# 23 AND THEY CAME UNTO THE BROOK OF ESHCOL, AND CUT DOWN FROM THENCE AEN BRANCH WITH ONE CLUSTER OF GRAPES, AND THEY BARE IT BETWEEN TWO UPON A STAFF;7 AND THEY BROUGHT OF THE POMEGRANATES, AND OF THE FIGS.PL# 24 THE PLACE WAS CALLED THE BROOK ESHCOL, BECAUSE OF THE CLUSTER OF GRAPES3 W00b*)<%X>%+%O-%TADATADATAHICH THE CHILDREN OF ISRAEL CUT DOWN FROM THENCE.SC# 25 AND THEY RETURNED FROM SEARCHING OF THE LAND AFTER FORTY DAYS.NB# 26 AND THEY WENT AND CAME TO MOSES, AND TO AARON, AND TO ALL THEI CONGREGATION OF THE CHILDREN OF ISRAEL, UNTO THE WILDERNESS OF PARAN, TO,L KADESH; AND BROUGHT BACK WORD UNTO THEM, AND UNTO ALL THE CONGREGATION, AND# SHEWED THEM THE FRUIT OF THE LAND.TL# 27 AND THEY TOLD HIM, AND SAID, WE CAME UNTO THE LAND WHITHER THOU SENTESTL US, AND SURELY IT FLOWETH WITH MILK AND HONEY; AND THIS IS THE FRUIT OF IT.M# 28 NEVERTHELESS THE PEOPLE BE STRONG THAT DWELL IN THE LAND, AND THE CITIESFL ARE WALLED, AND VERY GREAT: AND MOREOVER WE SAW THE CHILDREN OF ANAK THERE.M# 29 THE AMALEKITES DWELL IN THE LAND OF THE SOUTH: AND THE HITTITES, AND THETN JEBUSITES, AND THE AMORITES, DWELL IN THE MOUNTAINS: AND THE CANAANITES DWELL( BY THE SEA, AND BY THE COAST OF JORDAN.I# 30 AND CALEB STILLED THE PEOPLE BEFORE MOSES, AND SAID, LET US GO UP AT; ONCE, AND POSSESS IT; FOR WE ARE WELL ABLE TO OVERCOME IT.HL# 31 BUT THE MEN THAT WENT UP WITH HIM SAID, WE BE NOT ABLE TO GO UP AGAINST+ THE PEOPLE; FOR THEY ARE STRONGER THAN WE.:K# 32 AND THEY BROUGHT UP AN EVIL REPORT OF THE LAND WHICH THEY HAD SEARCHEDNM UNTO THE CHILDREN OF ISRAEL, SAYING, THE LAND, THROUGH WHICH WE HAVE GONE TOSI SEARCH IT, IS A LAND THAT EATETH UP THE INHABITANTS THEREOF; AND ALL THE 5 PEOPLE THAT WE SAW IN IT ARE MEN OF A GREAT STATURE.OM# 33 AND THERE WE SAW THE GIANTS, THE SONS OF ANAK, WHICH COME OF THE GIANTS:LM AND WE WERE IN OUR OWN SIGHT AS GRASSHOPPERS, AND SO WE WERE IN THEIR SIGHT. = CHAPTER 14 TM# 1 AND ALL THE CONGREGATION LIFTED UP THEIR VOICE, AND CRIED; AND THE PEOPLEL WEPT THAT NIGHT. L# 2 AND ALL THE CHILDREN OF ISRAEL MURMURED AGAINST MOSES AND AGAINST AARON:M AND THE WHOLE CONGREGATION SAID UNTO THEM, WOULD GOD THAT WE HAD DIED IN THES< LAND OF EGYPT! OR WOULD GOD WE HAD DIED IN THIS WILDERNESS!I# 3 AND WHEREFORE HATH THE LORD BROUGHT US UNTO THIS LAND, TO FALL BY THE L SWORD, THAT OUR WIVES AND OUR CHILDREN SHOULD BE A PREY? WERE IT NOT BETTER FOR US TO RETURN INTO EGYPT?EJ# 4 AND THEY SAID ONE TO ANOTHER, LET US MAKE A CAPTAIN, AND LET US RETURN INTO EGYPT.K# 5 THEN MOSES AND AARON FELL ON THEIR FACES BEFORE ALL THE ASSEMBLY OF THEN( CONGREGATION OF THE CHILDREN OF ISRAEL.L# 6 AND JOSHUA THE SON OF NUN, AND CALEB THE SON OF JEPHUNNEH, WHICH WERE OF1 THEM THAT SEARCHED THE LAND, RENT THEIR CLOTHES:RJ# 7 AND THEY SPAKE UNTO ALL THE COMPANY OF THE CHILDREN OF ISRAEL, SAYING,K THE LAND, WHICH WE PASSED THROUGH TO SEARCH IT, IS AN EXCEEDING GOOD LAND.RM# 8 IF THE LORD DELIGHT IN US, THEN HE WILL BRING US INTO THIS LAND, AND GIVED1 IT US; A LAND WHICH FLOWETH WITH MILK AND HONEY.RI# 9 ONLY REBEL NOT YE AGAINST THE LORD, NEITHER FEAR YE THE PEOPLE OF THEEN LAND; FOR THEY ARE BREAD FOR US: THEIR DEFENCE IS DEPARTED FROM THEM, AND THE LORD IS WITH US: FEAR THEM NOT.K# 10 BUT ALL THE CONGREGATION BADE STONE THEM WITH STONES. AND THE GLORY OF G THE LORD APPEARED IN THE TABERNACLE OF THE CONGREGATION BEFORE ALL THE  CHILDREN OF ISRAEL.L# 11 AND THE LORD SAID UNTO MOSES, HOW LONG WILL THIS PEOPLE PROVOKE ME? ANDH HOW LONG WILL IT BE ERE THEY BELIEVE ME, FOR ALL THE SIGNS WHICH I HAVE SHEWED AMONG THEM?GI# 12 I WILL SMITE THEM WITH THE PESTILENCE, AND DISINHERIT THEM, AND WILLA6 MAKE OF THEE A GREATER NATION AND MIGHTIER THAN THEY.I# 13 AND MOSES SAID UNTO THE LORD, THEN THE EGYPTIANS SHALL HEAR IT, (FORT> THOU BROUGHTEST UP THIS PEOPLE IN THY MIGHT FROM AMONG THEM;)I# 14 AND THEY WILL TELL IT TO THE INHABITANTS OF THIS LAND: FOR THEY HAVEDL HEARD THAT THOU LORD ART AMONG THIS PEOPLE, THAT THOU LORD ART SEEN FACE TON FACE, AND THAT THY CLOUD STANDETH OVER THEM, AND THAT THOU GOEST BEFORE THEM,F BY DAY TIME IN A PILLAR OF A CLOUD, AND IN A PILLAR OF FIRE BY NIGHT.H# 15 NOW IF THOU SHALT KILL ALL THIS PEOPLE AS ONE MAN, THEN THE NATIONS6 WHICH HAVE HEARD THE FAME OF THEE WILL SPEAK, SAYING,K# 16 BECAUSE THE LORD WAS NOT ABLE TO BRING THIS PEOPLE INTO THE LAND WHICHD HE SWARE UNTO00b*)D%5%T6%! ! THEM, THEREFORE HE HATH SLAIN THEM IN THE WILDERNESS.M# 17 AND NOW, I BESEECH THEE, LET THE POWER OF MY LORD BE GREAT, ACCORDING AS  THOU HAST SPOKEN, SAYING,J# 18 THE LORD IS LONGSUFFERING, AND OF GREAT MERCY, FORGIVING INIQUITY ANDM TRANSGRESSION, AND BY NO MEANS CLEARING THE GUILTY, VISITING THE INIQUITY OF D THE FATHERS UPON THE CHILDREN UNTO THE THIRD AND FOURTH GENERATION.K# 19 PARDON, I BESEECH THEE, THE INIQUITY OF THIS PEOPLE ACCORDING UNTO THEHJ GREATNESS OF THY MERCY, AND AS THOU HAST FORGIVEN THIS PEOPLE, FROM EGYPT EVEN UNTIL NOW.># 20 AND THE LORD SAID, I HAVE PARDONED ACCORDING TO THY WORD:L# 21 BUT AS TRULY AS I LIVE, ALL THE EARTH SHALL BE FILLED WITH THE GLORY OF THE LORD.M# 22 BECAUSE ALL THOSE MEN WHICH HAVE SEEN MY GLORY, AND MY MIRACLES, WHICH ITM DID IN EGYPT AND IN THE WILDERNESS, AND HAVE TEMPTED ME NOW THESE TEN TIMES,H$ AND HAVE NOT HEARKENED TO MY VOICE;I# 23 SURELY THEY SHALL NOT SEE THE LAND WHICH I SWARE UNTO THEIR FATHERS,E3 NEITHER SHALL ANY OF THEM THAT PROVOKED ME SEE IT:EK# 24 BUT MY SERVANT CALEB, BECAUSE HE HAD ANOTHER SPIRIT WITH HIM, AND HATHDM FOLLOWED ME FULLY, HIM WILL I BRING INTO THE LAND WHEREINTO HE WENT; AND HIST SEED SHALL POSSESS IT..J# 25 (NOW THE AMALEKITES AND THE CANAANITES DWELT IN THE VALLEY.) TOMORROWE TURN YOU, AND GET YOU INTO THE WILDERNESS BY THE WAY OF THE RED SEA.E:# 26 AND THE LORD SPAKE UNTO MOSES AND UNTO AARON, SAYING,L# 27 HOW LONG SHALL I BEAR WITH THIS EVIL CONGREGATION, WHICH MURMUR AGAINSTM ME? I HAVE HEARD THE MURMURINGS OF THE CHILDREN OF ISRAEL, WHICH THEY MURMURH AGAINST ME.L# 28 SAY UNTO THEM, AS TRULY AS I LIVE, SAITH THE LORD, AS YE HAVE SPOKEN IN MINE EARS, SO WILL I DO TO YOU:L# 29 YOUR CARCASES SHALL FALL IN THIS WILDERNESS; AND ALL THAT WERE NUMBEREDI OF YOU, ACCORDING TO YOUR WHOLE NUMBER, FROM TWENTY YEARS OLD AND UPWARDF WHICH HAVE MURMURED AGAINST ME.K# 30 DOUBTLESS YE SHALL NOT COME INTO THE LAND, CONCERNING WHICH I SWARE TOSL MAKE YOU DWELL THEREIN, SAVE CALEB THE SON OF JEPHUNNEH, AND JOSHUA THE SON OF NUN.L# 31 BUT YOUR LITTLE ONES, WHICH YE SAID SHOULD BE A PREY, THEM WILL I BRING9 IN, AND THEY SHALL KNOW THE LAND WHICH YE HAVE DESPISED. G# 32 BUT AS FOR YOU, YOUR CARCASES, THEY SHALL FALL IN THIS WILDERNESS.NK# 33 AND YOUR CHILDREN SHALL WANDER IN THE WILDERNESS FORTY YEARS, AND BEARYA YOUR WHOREDOMS, UNTIL YOUR CARCASES BE WASTED IN THE WILDERNESS.TK# 34 AFTER THE NUMBER OF THE DAYS IN WHICH YE SEARCHED THE LAND, EVEN FORTY L DAYS, EACH DAY FOR A YEAR, SHALL YE BEAR YOUR INIQUITIES, EVEN FORTY YEARS,( AND YE SHALL KNOW MY BREACH OF PROMISE.A# 35 I THE LORD HAVE SAID, I WILL SURELY DO IT UNTO ALL THIS EVILNM CONGREGATION, THAT ARE GATHERED TOGETHER AGAINST ME: IN THIS WILDERNESS THEY - SHALL BE CONSUMED, AND THERE THEY SHALL DIE.AM# 36 AND THE MEN, WHICH MOSES SENT TO SEARCH THE LAND, WHO RETURNED, AND MADE N ALL THE CONGREGATION TO MURMUR AGAINST HIM, BY BRINGING UP A SLANDER UPON THE LAND,L# 37 EVEN THOSE MEN THAT DID BRING UP THE EVIL REPORT UPON THE LAND, DIED BY THE PLAGUE BEFORE THE LORD.M# 38 BUT JOSHUA THE SON OF NUN, AND CALEB THE SON OF JEPHUNNEH, WHICH WERE OFE3 THE MEN THAT WENT TO SEARCH THE LAND, LIVED STILL. J# 39 AND MOSES TOLD THESE SAYINGS UNTO ALL THE CHILDREN OF ISRAEL: AND THE PEOPLE MOURNED GREATLY.K# 40 AND THEY ROSE UP EARLY IN THE MORNING, AND GAT THEM UP INTO THE TOP OFDN THE MOUNTAIN, SAYING, LO, WE BE HERE, AND WILL GO UP UNTO THE PLACE WHICH THE( LORD HATH PROMISED: FOR WE HAVE SINNED.J# 41 AND MOSES SAID, WHEREFORE NOW DO YE TRANSGRESS THE COMMANDMENT OF THE LORD? BUT IT SHALL NOT PROSPER.L# 42 GO NOT UP, FOR THE LORD IS NOT AMONG YOU; THAT YE BE NOT SMITTEN BEFORE YOUR ENEMIES.M# 43 FOR THE AMALEKITES AND THE CANAANITES ARE THERE BEFORE YOU, AND YE SHALLTK FALL BY THE SWORD: BECAUSE YE ARE TURNED AWAY FROM THE LORD, THEREFORE THE  LORD WILL NOT BE WITH YOU.J# 44 BUT THEY PRESUMED TO GO UP UNTO THE HILL TOP: NEVERTHELESS THE ARK OFC THE COVENANT OF THE LORD, AND MOSES, DEPARTED NOT OUT OF THE CAMP.EJ# 45 THEN THE AMALEK00b*)<%X>%+%O-%TADATADATAITES CAME DOWN, AND THE CANAANITES WHICH DWELT IN THAT> HILL, AND SMOTE THEM, AND DISCOMFITED THEM, EVEN UNTO HORMAH. = CHAPTER 15 *# 1 AND THE LORD SPAKE UNTO MOSES, SAYING,I# 2 SPEAK UNTO THE CHILDREN OF ISRAEL, AND SAY UNTO THEM, WHEN YE BE COMEO: INTO THE LAND OF YOUR HABITATIONS, WHICH I GIVE UNTO YOU,K# 3 AND WILL MAKE AN OFFERING BY FIRE UNTO THE LORD, A BURNT OFFERING, OR A L SACRIFICE IN PERFORMING A VOW, OR IN A FREEWILL OFFERING, OR IN YOUR SOLEMNK FEASTS, TO MAKE A SWEET SAVOUR UNTO THE LORD, OF THE HERD OR OF THE FLOCK:WG# 4 THEN SHALL HE THAT OFFERETH HIS OFFERING UNTO THE LORD BRING A MEATOL OFFERING OF A TENTH DEAL OF FLOUR MINGLED WITH THE FOURTH PART OF AN HIN OF OIL.TI# 5 AND THE FOURTH PART OF AN HIN OF WINE FOR A DRINK OFFERING SHALT THOUO< PREPARE WITH THE BURNT OFFERING OR SACRIFICE, FOR ONE LAMB.K# 6 OR FOR A RAM, THOU SHALT PREPARE FOR A MEAT OFFERING TWO TENTH DEALS OFF4 FLOUR MINGLED WITH THE THIRD PART OF AN HIN OF OIL.I# 7 AND FOR A DRINK OFFERING THOU SHALT OFFER THE THIRD PART OF AN HIN OFF( WINE, FOR A SWEET SAVOUR UNTO THE LORD.D# 8 AND WHEN THOU PREPAREST A BULLOCK FOR A BURNT OFFERING, OR FOR AA SACRIFICE IN PERFORMING A VOW, OR PEACE OFFERINGS UNTO THE LORD: K# 9 THEN SHALL HE BRING WITH A BULLOCK A MEAT OFFERING OF THREE TENTH DEALS * OF FLOUR MINGLED WITH HALF AN HIN OF OIL.J# 10 AND THOU SHALT BRING FOR A DRINK OFFERING HALF AN HIN OF WINE, FOR AN8 OFFERING MADE BY FIRE, OF A SWEET SAVOUR UNTO THE LORD.M# 11 THUS SHALL IT BE DONE FOR ONE BULLOCK, OR FOR ONE RAM, OR FOR A LAMB, ORW A KID.AK# 12 ACCORDING TO THE NUMBER THAT YE SHALL PREPARE, SO SHALL YE DO TO EVERYN ONE ACCORDING TO THEIR NUMBER.IF# 13 ALL THAT ARE BORN OF THE COUNTRY SHALL DO THESE THINGS AFTER THISI MANNER, IN OFFERING AN OFFERING MADE BY FIRE, OF A SWEET SAVOUR UNTO THEG LORD.J# 14 AND IF A STRANGER SOJOURN WITH YOU, OR WHOSOEVER BE AMONG YOU IN YOURM GENERATIONS, AND WILL OFFER AN OFFERING MADE BY FIRE, OF A SWEET SAVOUR UNTO$ THE LORD; AS YE DO, SO HE SHALL DO.J# 15 ONE ORDINANCE SHALL BE BOTH FOR YOU OF THE CONGREGATION, AND ALSO FORE THE STRANGER THAT SOJOURNETH WITH YOU, AN ORDINANCE FOR EVER IN YOUR B GENERATIONS: AS YE ARE, SO SHALL THE STRANGER BE BEFORE THE LORD.G# 16 ONE LAW AND ONE MANNER SHALL BE FOR YOU, AND FOR THE STRANGER THATW SOJOURNETH WITH YOU.L+# 17 AND THE LORD SPAKE UNTO MOSES, SAYING,,L# 18 SPEAK UNTO THE CHILDREN OF ISRAEL, AND SAY UNTO THEM, WHEN YE COME INTO THE LAND WHITHER I BRING YOU,K# 19 THEN IT SHALL BE, THAT, WHEN YE EAT OF THE BREAD OF THE LAND, YE SHALLF* OFFER UP AN HEAVE OFFERING UNTO THE LORD.E# 20 YE SHALL OFFER UP A CAKE OF THE FIRST OF YOUR DOUGH FOR AN HEAVEGI OFFERING: AS YE DO THE HEAVE OFFERING OF THE THRESHINGFLOOR, SO SHALL YEL HEAVE IT.M# 21 OF THE FIRST OF YOUR DOUGH YE SHALL GIVE UNTO THE LORD AN HEAVE OFFERING7 IN YOUR GENERATIONS.OM# 22 AND IF YE HAVE ERRED, AND NOT OBSERVED ALL THESE COMMANDMENTS, WHICH THEE LORD HATH SPOKEN UNTO MOSES,EM# 23 EVEN ALL THAT THE LORD HATH COMMANDED YOU BY THE HAND OF MOSES, FROM THENL DAY THAT THE LORD COMMANDED MOSES, AND HENCEFORWARD AMONG YOUR GENERATIONS;E# 24 THEN IT SHALL BE, IF OUGHT BE COMMITTED BY IGNORANCE WITHOUT THE I KNOWLEDGE OF THE CONGREGATION, THAT ALL THE CONGREGATION SHALL OFFER ONE K YOUNG BULLOCK FOR A BURNT OFFERING, FOR A SWEET SAVOUR UNTO THE LORD, WITHOL HIS MEAT OFFERING, AND HIS DRINK OFFERING, ACCORDING TO THE MANNER, AND ONE% KID OF THE GOATS FOR A SIN OFFERING.NK# 25 AND THE PRIEST SHALL MAKE AN ATONEMENT FOR ALL THE CONGREGATION OF THEEL CHILDREN OF ISRAEL, AND IT SHALL BE FORGIVEN THEM; FOR IT IS IGNORANCE: ANDM THEY SHALL BRING THEIR OFFERING, A SACRIFICE MADE BY FIRE UNTO THE LORD, AND 9 THEIR SIN OFFERING BEFORE THE LORD, FOR THEIR IGNORANCE:TM# 26 AND IT SHALL BE FORGIVEN ALL THE CONGREGATION OF THE CHILDREN OF ISRAEL,NK AND THE STRANGER THAT SOJOURNETH AMONG THEM; SEEING ALL THE PEOPLE WERE INT IGNORANCE.DM# 27 AND IF ANY SOUL SIN THROUGH IGNORANCE, THEN HE SHALL BRING A SHE GOAT OF # THE FIRST YEAR FOR A SIN OFFERING00b*)D%5%T6%! !. E# 28 AND THE PRIEST SHALL MAKE AN ATONEMENT FOR THE SOUL THAT SINNETHOE IGNORANTLY, WHEN HE SINNETH BY IGNORANCE BEFORE THE LORD, TO MAKE ANU1 ATONEMENT FOR HIM; AND IT SHALL BE FORGIVEN HIM.LK# 29 YE SHALL HAVE ONE LAW FOR HIM THAT SINNETH THROUGH IGNORANCE, BOTH FORNI HIM THAT IS BORN AMONG THE CHILDREN OF ISRAEL, AND FOR THE STRANGER THAT  SOJOURNETH AMONG THEM.EL# 30 BUT THE SOUL THAT DOETH OUGHT PRESUMPTUOUSLY, WHETHER HE BE BORN IN THEK LAND, OR A STRANGER, THE SAME REPROACHETH THE LORD; AND THAT SOUL SHALL BES CUT OFF FROM AMONG HIS PEOPLE. G# 31 BECAUSE HE HATH DESPISED THE WORD OF THE LORD, AND HATH BROKEN HISLL COMMANDMENT, THAT SOUL SHALL UTTERLY BE CUT OFF; HIS INIQUITY SHALL BE UPON HIM.AJ# 32 AND WHILE THE CHILDREN OF ISRAEL WERE IN THE WILDERNESS, THEY FOUND A/ MAN THAT GATHERED STICKS UPON THE SABBATH DAY.AH# 33 AND THEY THAT FOUND HIM GATHERING STICKS BROUGHT HIM UNTO MOSES AND& AARON, AND UNTO ALL THE CONGREGATION.I# 34 AND THEY PUT HIM IN WARD, BECAUSE IT WAS NOT DECLARED WHAT SHOULD BEB DONE TO HIM.OL# 35 AND THE LORD SAID UNTO MOSES, THE MAN SHALL BE SURELY PUT TO DEATH: ALL? THE CONGREGATION SHALL STONE HIM WITH STONES WITHOUT THE CAMP.FJ# 36 AND ALL THE CONGREGATION BROUGHT HIM WITHOUT THE CAMP, AND STONED HIM7 WITH STONES, AND HE DIED; AS THE LORD COMMANDED MOSES.S+# 37 AND THE LORD SPAKE UNTO MOSES, SAYING,HH# 38 SPEAK UNTO THE CHILDREN OF ISRAEL, AND BID THEM THAT THEY MAKE THEMK FRINGES IN THE BORDERS OF THEIR GARMENTS THROUGHOUT THEIR GENERATIONS, ANDL@ THAT THEY PUT UPON THE FRINGE OF THE BORDERS A RIBBAND OF BLUE:I# 39 AND IT SHALL BE UNTO YOU FOR A FRINGE, THAT YE MAY LOOK UPON IT, ANDTN REMEMBER ALL THE COMMANDMENTS OF THE LORD, AND DO THEM ; AND THAT YE SEEK NOTL AFTER YOUR OWN HEART AND YOUR OWN EYES, AFTER WHICH YE USE TO GO A WHORING:L# 40 THAT YE MAY REMEMBER, AND DO ALL MY COMMANDMENTS, AND BE HOLY UNTO YOUR GOD.LK# 41 I AM THE LORD YOUR GOD, WHICH BROUGHT YOU OUT OF THE LAND OF EGYPT, TOT% BE YOUR GOD: I AM THE LORD YOUR GOD.O = CHAPTER 16 H# 1 NOW KORAH, THE SON OF IZHAR, THE SON OF KOHATH, THE SON OF LEVI, ANDI DATHAN AND ABIRAM, THE SONS OF ELIAB, AND ON, THE SON OF PELETH, SONS OF  REUBEN, TOOK MEN:J# 2 AND THEY ROSE UP BEFORE MOSES, WITH CERTAIN OF THE CHILDREN OF ISRAEL,K TWO HUNDRED AND FIFTY PRINCES OF THE ASSEMBLY, FAMOUS IN THE CONGREGATION,D MEN OF RENOWN:DJ# 3 AND THEY GATHERED THEMSELVES TOGETHER AGAINST MOSES AND AGAINST AARON,K AND SAID UNTO THEM, YE TAKE TOO MUCH UPON YOU, SEEING ALL THE CONGREGATIONOM ARE HOLY, EVERY ONE OF THEM, AND THE LORD IS AMONG THEM: WHEREFORE THEN LIFTF5 YE UP YOURSELVES ABOVE THE CONGREGATION OF THE LORD?O3# 4 AND WHEN MOSES HEARD IT, HE FELL UPON HIS FACE: L# 5 AND HE SPAKE UNTO KORAH AND UNTO ALL HIS COMPANY, SAYING, EVEN TO MORROWL THE LORD WILL SHEW WHO ARE HIS, AND WHO IS HOLY; AND WILL CAUSE HIM TO COMEL NEAR UNTO HIM: EVEN HIM WHOM HE HATH CHOSEN WILL HE CAUSE TO COME NEAR UNTO HIM.O:# 6 THIS DO; TAKE YOU CENSERS, KORAH, AND ALL HIS COMPANY;L# 7 AND PUT FIRE THEREIN, AND PUT INCENSE IN THEM BEFORE THE LORD TO MORROW:M AND IT SHALL BE THAT THE MAN WHOM THE LORD DOTH CHOOSE, HE SHALL BE HOLY: YE) TAKE TOO MUCH UPON YOU, YE SONS OF LEVI.IA# 8 AND MOSES SAID UNTO KORAH, HEAR, I PRAY YOU, YE SONS OF LEVI:IF# 9 SEEMETH IT BUT A SMALL THING UNTO YOU, THAT THE GOD OF ISRAEL HATHL SEPARATED YOU FROM THE CONGREGATION OF ISRAEL, TO BRING YOU NEAR TO HIMSELFI TO DO THE SERVICE OF THE TABERNACLE OF THE LORD, AND TO STAND BEFORE THE $ CONGREGATION TO MINISTER UNTO THEM?K# 10 AND HE HATH BROUGHT THEE NEAR TO HIM, AND ALL THY BRETHREN THE SONS OFA1 LEVI WITH THEE: AND SEEK YE THE PRIESTHOOD ALSO?LH# 11 FOR WHICH CAUSE BOTH THOU AND ALL THY COMPANY ARE GATHERED TOGETHERA AGAINST THE LORD: AND WHAT IS AARON, THAT YE MURMUR AGAINST HIM?SM# 12 AND MOSES SENT TO CALL DATHAN AND ABIRAM, THE SONS OF ELIAB: WHICH SAID,E WE WILL NOT COME UP:IH# 13 IS IT A SMALL THING THAT THOU HAST BROUGHT US UP OUT OF A LAND THATL FLOWETH WITH MILK AND HONEY, TO KILL US IN THE WILDERNESS, EXCEPT00b*)<%X>%+%O-%TADATADATA THOU MAKE% THYSELF ALTOGETHER A PRINCE OVER US?YM# 14 MOREOVER THOU HAST NOT BROUGHT US INTO A LAND THAT FLOWETH WITH MILK AND1N HONEY, OR GIVEN US INHERITANCE OF FIELDS AND VINEYARDS: WILT THOU PUT OUT THE( EYES OF THESE MEN? WE WILL NOT COME UP.M# 15 AND MOSES WAS VERY WROTH, AND SAID UNTO THE LORD, RESPECT NOT THOU THEIRBI OFFERING: I HAVE NOT TAKEN ONE ASS FROM THEM, NEITHER HAVE I HURT ONE OFH THEM.L# 16 AND MOSES SAID UNTO KORAH, BE THOU AND ALL THY COMPANY BEFORE THE LORD,& THOU, AND THEY, AND AARON, TO MORROW:I# 17 AND TAKE EVERY MAN HIS CENSER, AND PUT INCENSE IN THEM, AND BRING YE J BEFORE THE LORD EVERY MAN HIS CENSER, TWO HUNDRED AND FIFTY CENSERS; THOU) ALSO, AND AARON, EACH OF YOU HIS CENSER. G# 18 AND THEY TOOK EVERY MAN HIS CENSER, AND PUT FIRE IN THEM, AND LAIDIM INCENSE THEREON, AND STOOD IN THE DOOR OF THE TABERNACLE OF THE CONGREGATIONR WITH MOSES AND AARON.J# 19 AND KORAH GATHERED ALL THE CONGREGATION AGAINST THEM UNTO THE DOOR OFL THE TABERNACLE OF THE CONGREGATION: AND THE GLORY OF THE LORD APPEARED UNTO ALL THE CONGREGATION.:# 20 AND THE LORD SPAKE UNTO MOSES AND UNTO AARON, SAYING,I# 21 SEPARATE YOURSELVES FROM AMONG THIS CONGREGATION, THAT I MAY CONSUMEH THEM IN A MOMENT.L# 22 AND THEY FELL UPON THEIR FACES, AND SAID, O GOD, THE GOD OF THE SPIRITSE OF ALL FLESH, SHALL ONE MAN SIN, AND WILT THOU BE WROTH WITH ALL THET CONGREGATION?+# 23 AND THE LORD SPAKE UNTO MOSES, SAYING, C# 24 SPEAK UNTO THE CONGREGATION, SAYING, GET YOU UP FROM ABOUT THEN) TABERNACLE OF KORAH, DATHAN, AND ABIRAM.EI# 25 AND MOSES ROSE UP AND WENT UNTO DATHAN AND ABIRAM; AND THE ELDERS OF  ISRAEL FOLLOWED HIM.PM# 26 AND HE SPAKE UNTO THE CONGREGATION, SAYING, DEPART, I PRAY YOU, FROM THEML TENTS OF THESE WICKED MEN, AND TOUCH NOTHING OF THEIRS, LEST YE BE CONSUMED IN ALL THEIR SINS.,H# 27 SO THEY GAT UP FROM THE TABERNACLE OF KORAH, DATHAN, AND ABIRAM, ONK EVERY SIDE: AND DATHAN AND ABIRAM CAME OUT, AND STOOD IN THE DOOR OF THEIRNC TENTS, AND THEIR WIVES, AND THEIR SONS, AND THEIR LITTLE CHILDREN.NJ# 28 AND MOSES SAID, HEREBY YE SHALL KNOW THAT THE LORD HATH SENT ME TO DO< ALL THESE WORKS; FOR I HAVE NOT DONE THEM OF MINE OWN MIND.H# 29 IF THESE MEN DIE THE COMMON DEATH OF ALL MEN, OR IF THEY BE VISITEDA AFTER THE VISITATION OF ALL MEN; THEN THE LORD HATH NOT SENT ME.HH# 30 BUT IF THE LORD MAKE A NEW THING, AND THE EARTH OPEN HER MOUTH, ANDK SWALLOW THEM UP, WITH ALL THAT APPERTAIN UNTO THEM, AND THEY GO DOWN QUICKRN INTO THE PIT; THEN YE SHALL UNDERSTAND THAT THESE MEN HAVE PROVOKED THE LORD.L# 31 AND IT CAME TO PASS, AS HE HAD MADE AN END OF SPEAKING ALL THESE WORDS,3 THAT THE GROUND CLAVE ASUNDER THAT WAS UNDER THEM:NM# 32 AND THE EARTH OPENED HER MOUTH, AND SWALLOWED THEM UP, AND THEIR HOUSES,DB AND ALL THE MEN THAT APPERTAINED UNTO KORAH, AND ALL THEIR GOODS.J# 33 THEY, AND ALL THAT APPERTAINED TO THEM, WENT DOWN ALIVE INTO THE PIT,A AND THE EARTH CLOSED UPON THEM: AND THEY PERISHED FROM AMONG THEW CONGREGATION.K# 34 AND ALL ISRAEL THAT WERE ROUND ABOUT THEM FLED AT THE CRY OF THEM: FOR1. THEY SAID, LEST THE EARTH SWALLOW US UP ALSO.J# 35 AND THERE CAME OUT A FIRE FROM THE LORD, AND CONSUMED THE TWO HUNDRED$ AND FIFTY MEN THAT OFFERED INCENSE.+# 36 AND THE LORD SPAKE UNTO MOSES, SAYING,H# 37 SPEAK UNTO ELEAZAR THE SON OF AARON THE PRIEST, THAT HE TAKE UP THEK CENSERS OUT OF THE BURNING, AND SCATTER THOU THE FIRE YONDER; FOR THEY AREE HALLOWED.M# 38 THE CENSERS OF THESE SINNERS AGAINST THEIR OWN SOULS, LET THEM MAKE THEMRK BROAD PLATES FOR A COVERING OF THE ALTAR: FOR THEY OFFERED THEM BEFORE THETN LORD, THEREFORE THEY ARE HALLOWED: AND THEY SHALL BE A SIGN UNTO THE CHILDREN OF ISRAEL.EM# 39 AND ELEAZAR THE PRIEST TOOK THE BRASEN CENSERS, WHEREWITH THEY THAT WEREOI BURNT HAD OFFERED; AND THEY WERE MADE BROAD PLATES FOR A COVERING OF THE  ALTAR:PM# 40 TO BE A MEMORIAL UNTO THE CHILDREN OF ISRAEL, THAT NO STRANGER, WHICH ISRN NOT OF THE SEED OF AARON, COME NEAR TO OFFER INCENSE BEFORE THE LORD; THAT HEL BE NOT AS KORAH, AND AS HIS COMPANY: AS THE00b*)D%5%T6%! ! LORD SAID TO HIM BY THE HAND OF MOSES. E# 41 BUT ON THE MORROW ALL THE CONGREGATION OF THE CHILDREN OF ISRAEL L MURMURED AGAINST MOSES AND AGAINST AARON, SAYING, YE HAVE KILLED THE PEOPLE OF THE LORD.EJ# 42 AND IT CAME TO PASS, WHEN THE CONGREGATION WAS GATHERED AGAINST MOSESA AND AGAINST AARON, THAT THEY LOOKED TOWARD THE TABERNACLE OF THEIK CONGREGATION: AND, BEHOLD, THE CLOUD COVERED IT, AND THE GLORY OF THE LORDF APPEARED.H# 43 AND MOSES AND AARON CAME BEFORE THE TABERNACLE OF THE CONGREGATION.+# 44 AND THE LORD SPAKE UNTO MOSES, SAYING,BM# 45 GET YOU UP FROM AMONG THIS CONGREGATION, THAT I MAY CONSUME THEM AS IN AI( MOMENT. AND THEY FELL UPON THEIR FACES.L# 46 AND MOSES SAID UNTO AARON, TAKE A CENSER, AND PUT FIRE THEREIN FROM OFFN THE ALTAR, AND PUT ON INCENSE, AND GO QUICKLY UNTO THE CONGREGATION, AND MAKEM AN ATONEMENT FOR THEM: FOR THERE IS WRATH GONE OUT FROM THE LORD; THE PLAGUEH IS BEGUN.E# 47 AND AARON TOOK AS MOSES COMMANDED, AND RAN INTO THE MIDST OF THELM CONGREGATION; AND, BEHOLD, THE PLAGUE WAS BEGUN AMONG THE PEOPLE: AND HE PUTY2 ON INCENSE, AND MADE AN ATONEMENT FOR THE PEOPLE.M# 48 AND HE STOOD BETWEEN THE DEAD AND THE LIVING; AND THE PLAGUE WAS STAYED. F# 49 NOW THEY THAT DIED IN THE PLAGUE WERE FOURTEEN THOUSAND AND SEVEN: HUNDRED, BESIDE THEM THAT DIED ABOUT THE MATTER OF KORAH.I# 50 AND AARON RETURNED UNTO MOSES UNTO THE DOOR OF THE TABERNACLE OF THEE) CONGREGATION: AND THE PLAGUE WAS STAYED.S = CHAPTER 17 D*# 1 AND THE LORD SPAKE UNTO MOSES, SAYING,J# 2 SPEAK UNTO THE CHILDREN OF ISRAEL, AND TAKE OF EVERY ONE OF THEM A RODK ACCORDING TO THE HOUSE OF THEIR FATHERS, OF ALL THEIR PRINCES ACCORDING TOEL THE HOUSE OF THEIR FATHERS TWELVE RODS: WRITE THOU EVERY MANS NAME UPON HIS ROD. L# 3 AND THOU SHALT WRITE AARONS NAME UPON THE ROD OF LEVI: FOR ONE ROD SHALL/ BE FOR THE HEAD OF THE HOUSE OF THEIR FATHERS.SK# 4 AND THOU SHALT LAY THEM UP IN THE TABERNACLE OF THE CONGREGATION BEFORET+ THE TESTIMONY, WHERE I WILL MEET WITH YOU.EL# 5 AND IT SHALL COME TO PASS, THAT THE MANS ROD, WHOM I SHALL CHOOSE, SHALLL BLOSSOM: AND I WILL MAKE TO CEASE FROM ME THE MURMURINGS OF THE CHILDREN OF) ISRAEL, WHEREBY THEY MURMUR AGAINST YOU.HG# 6 AND MOSES SPAKE UNTO THE CHILDREN OF ISRAEL, AND EVERY ONE OF THEIRUG PRINCES GAVE HIM A ROD APIECE, FOR EACH PRINCE ONE, ACCORDING TO THEIR M FATHERS HOUSES, EVEN TWELVE RODS: AND THE ROD OF AARON WAS AMONG THEIR RODS. L# 7 AND MOSES LAID UP THE RODS BEFORE THE LORD IN THE TABERNACLE OF WITNESS.M# 8 AND IT CAME TO PASS, THAT ON THE MORROW MOSES WENT INTO THE TABERNACLE OFSM WITNESS; AND, BEHOLD, THE ROD OF AARON FOR THE HOUSE OF LEVI WAS BUDDED, AND ? BROUGHT FORTH BUDS, AND BLOOMED BLOSSOMS, AND YIELDED ALMONDS.KH# 9 AND MOSES BROUGHT OUT ALL THE RODS FROM BEFORE THE LORD UNTO ALL THEA CHILDREN OF ISRAEL: AND THEY LOOKED, AND TOOK EVERY MAN HIS ROD.UD# 10 AND THE LORD SAID UNTO MOSES, BRING AARONS ROD AGAIN BEFORE THEK TESTIMONY, TO BE KEPT FOR A TOKEN AGAINST THE REBELS; AND THOU SHALT QUITE 7 TAKE AWAY THEIR MURMURINGS FROM ME, THAT THEY DIE NOT. <# 11 AND MOSES DID SO: AS THE LORD COMMANDED HIM, SO DID HE.L# 12 AND THE CHILDREN OF ISRAEL SPAKE UNTO MOSES, SAYING, BEHOLD, WE DIE, WE PERISH, WE ALL PERISH.J# 13 WHOSOEVER COMETH ANY THING NEAR UNTO THE TABERNACLE OF THE LORD SHALL& DIE: SHALL WE BE CONSUMED WITH DYING? = CHAPTER 18 HN# 1 AND THE LORD SAID UNTO AARON, THOU AND THY SONS AND THY FATHERS HOUSE WITHJ THEE SHALL BEAR THE INIQUITY OF THE SANCTUARY: AND THOU AND THY SONS WITH1 THEE SHALL BEAR THE INIQUITY OF YOUR PRIESTHOOD.EH# 2 AND THY BRETHREN ALSO OF THE TRIBE OF LEVI, THE TRIBE OF THY FATHER,K BRING THOU WITH THEE, THAT THEY MAY BE JOINED UNTO THEE, AND MINISTER UNTORN THEE: BUT THOU AND THY SONS WITH THEE SHALL MINISTER BEFORE THE TABERNACLE OF WITNESS.SI# 3 AND THEY SHALL KEEP THY CHARGE, AND THE CHARGE OF ALL THE TABERNACLE:OJ ONLY THEY SHALL NOT COME NIGH THE VESSELS OF THE SANCTUARY AND THE ALTAR,% THAT NEITHER THEY, NOR YE ALSO, DIE.NM# 4 AND THEY SHALL BE JOINED UNTO THEE, AND KEEP T00b*)<%X>%+%O-%TADATADATAHE CHARGE OF THE TABERNACLE K OF THE CONGREGATION, FOR ALL THE SERVICE OF THE TABERNACLE: AND A STRANGERG SHALL NOT COME NIGH UNTO YOU.H# 5 AND YE SHALL KEEP THE CHARGE OF THE SANCTUARY, AND THE CHARGE OF THED ALTAR: THAT THERE BE NO WRATH ANY MORE UPON THE CHILDREN OF ISRAEL.H# 6 AND I, BEHOLD, I HAVE TAKEN YOUR BRETHREN THE LEVITES FROM AMONG THEL CHILDREN OF ISRAEL: TO YOU THEY ARE GIVEN AS A GIFT FOR THE LORD, TO DO THE/ SERVICE OF THE TABERNACLE OF THE CONGREGATION. L# 7 THEREFORE THOU AND THY SONS WITH THEE SHALL KEEP YOUR PRIESTS OFFICE FORI EVERYTHING OF THE ALTAR, AND WITHIN THE VAIL; AND YE SHALL SERVE: I HAVEIJ GIVEN YOUR PRIESTS OFFICE UNTO YOU AS A SERVICE OF GIFT: AND THE STRANGER( THAT COMETH NIGH SHALL BE PUT TO DEATH.L# 8 AND THE LORD SPAKE UNTO AARON, BEHOLD, I ALSO HAVE GIVEN THEE THE CHARGEN OF MINE HEAVE OFFERINGS OF ALL THE HALLOWED THINGS OF THE CHILDREN OF ISRAEL;L UNTO THEE HAVE I GIVEN THEM BY REASON OF THE ANOINTING, AND TO THY SONS, BY AN ORDINANCE FOR EVER.AH# 9 THIS SHALL BE THINE OF THE MOST HOLY THINGS, RESERVED FROM THE FIRE:G EVERY OBLATION OF THEIRS, EVERY MEAT OFFERING OF THEIRS, AND EVERY SINRK OFFERING OF THEIRS, AND EVERY TRESPASS OFFERING OF THEIRS WHICH THEY SHALLG> RENDER UNTO ME, SHALL BE MOST HOLY FOR THEE AND FOR THY SONS.J# 10 IN THE MOST HOLY PLACE SHALT THOU EAT IT; EVERY MALE SHALL EAT IT: IT SHALL BE HOLY UNTO THEE.DK# 11 AND THIS IS THINE; THE HEAVE OFFERING OF THEIR GIFT, WITH ALL THE WAVETM OFFERINGS OF THE CHILDREN OF ISRAEL: I HAVE GIVEN THEM UNTO THEE, AND TO THYON SONS AND TO THY DAUGHTERS WITH THEE, BY A STATUTE FOR EVER: EVERY ONE THAT IS$ CLEAN IN THY HOUSE SHALL EAT OF IT.M# 12 ALL THE BEST OF THE OIL, AND ALL THE BEST OF THE WINE, AND OF THE WHEAT,NJ THE FIRSTFRUITS OF THEM WHICH THEY SHALL OFFER UNTO THE LORD, THEM HAVE I GIVEN THEE.J# 13 AND WHATSOEVER IS FIRST RIPE IN THE LAND, WHICH THEY SHALL BRING UNTON THE LORD, SHALL BE THINE; EVERY ONE THAT IS CLEAN IN THINE HOUSE SHALL EAT OF IT.2# 14 EVERY THING DEVOTED IN ISRAEL SHALL BE THINE.L# 15 EVERY THING THAT OPENETH THE MATRIX IN ALL FLESH, WHICH THEY BRING UNTOK THE LORD, WHETHER IT BE OF MEN OR BEASTS, SHALL BE THINE: NEVERTHELESS THEOH FIRSTBORN OF MAN SHALT THOU SURELY REDEEM, AND THE FIRSTLING OF UNCLEAN BEASTS SHALT THOU REDEEM.J# 16 AND THOSE THAT ARE TO BE REDEEMED FROM A MONTH OLD SHALT THOU REDEEM,H ACCORDING TO THINE ESTIMATION, FOR THE MONEY OF FIVE SHEKELS, AFTER THE1 SHEKEL OF THE SANCTUARY, WHICH IS TWENTY GERAHS..D# 17 BUT THE FIRSTLING OF A COW, OR THE FIRSTLING OF A SHEEP, OR THEF FIRSTLING OF A GOAT, THOU SHALT NOT REDEEM; THEY ARE HOLY: THOU SHALTN SPRINKLE THEIR BLOOD UPON THE ALTAR, AND SHALT BURN THEIR FAT FOR AN OFFERING0 MADE BY FIRE, FOR A SWEET SAVOUR UNTO THE LORD.H# 18 AND THE FLESH OF THEM SHALL BE THINE, AS THE WAVE BREAST AND AS THE RIGHT SHOULDER ARE THINE.M# 19 ALL THE HEAVE OFFERINGS OF THE HOLY THINGS, WHICH THE CHILDREN OF ISRAELTL OFFER UNTO THE LORD, HAVE I GIVEN THEE, AND THY SONS AND THY DAUGHTERS WITHJ THEE, BY A STATUTE FOR EVER: IT IS A COVENANT OF SALT FOR EVER BEFORE THE* LORD UNTO THEE AND TO THY SEED WITH THEE.K# 20 AND THE LORD SPAKE UNTO AARON, THOU SHALT HAVE NO INHERITANCE IN THEIREK LAND, NEITHER SHALT THOU HAVE ANY PART AMONG THEM: I AM THY PART AND THINE * INHERITANCE AMONG THE CHILDREN OF ISRAEL.K# 21 AND, BEHOLD, I HAVE GIVEN THE CHILDREN OF LEVI ALL THE TENTH IN ISRAELTL FOR AN INHERITANCE, FOR THEIR SERVICE WHICH THEY SERVE, EVEN THE SERVICE OF$ THE TABERNACLE OF THE CONGREGATION.L# 22 NEITHER MUST THE CHILDREN OF ISRAEL HENCEFORTH COME NIGH THE TABERNACLE2 OF THE CONGREGATION, LEST THEY BEAR SIN, AND DIE.B# 23 BUT THE LEVITES SHALL DO THE SERVICE OF THE TABERNACLE OF THEL CONGREGATION, AND THEY SHALL BEAR THEIR INIQUITY: IT SHALL BE A STATUTE FORN EVER THROUGHOUT YOUR GENERATIONS, THAT AMONG THE CHILDREN OF ISRAEL THEY HAVE NO INHERITANCE.K# 24 BUT THE TITHES OF THE CHILDREN OF ISRAEL, WHICH THEY OFFER AS AN HEAVEVL OFFERING UNTO THE LORD, I HAVE GIVEN TO THE LEVITES TO INHERIT:00b*)D%5%T6%! ! THEREFORE IE HAVE SAID UNTO THEM, AMONG THE CHILDREN OF ISRAEL THEY SHALL HAVE NOO INHERITANCE.T+# 25 AND THE LORD SPAKE UNTO MOSES, SAYING,SH# 26 THUS SPEAK UNTO THE LEVITES, AND SAY UNTO THEM, WHEN YE TAKE OF THEH CHILDREN OF ISRAEL THE TITHES WHICH I HAVE GIVEN YOU FROM THEM FOR YOURJ INHERITANCE, THEN YE SHALL OFFER UP AN HEAVE OFFERING OF IT FOR THE LORD, EVEN A TENTH PART OF THE TITHE.J# 27 AND THIS YOUR HEAVE OFFERING SHALL BE RECKONED UNTO YOU, AS THOUGH ITJ WERE THE CORN OF THE THRESHINGFLOOR, AND AS THE FULNESS OF THE WINEPRESS.I# 28 THUS YE ALSO SHALL OFFER AN HEAVE OFFERING UNTO THE LORD OF ALL YOUR N TITHES, WHICH YE RECEIVE OF THE CHILDREN OF ISRAEL; AND YE SHALL GIVE THEREOF. THE LORDS HEAVE OFFERING TO AARON THE PRIEST.K# 29 OUT OF ALL YOUR GIFTS YE SHALL OFFER EVERY HEAVE OFFERING OF THE LORD,FC OF ALL THE BEST THEREOF, EVEN THE HALLOWED PART THEREOF OUT OF IT.HM# 30 THEREFORE THOU SHALT SAY UNTO THEM, WHEN YE HAVE HEAVED THE BEST THEREOFGJ FROM IT, THEN IT SHALL BE COUNTED UNTO THE LEVITES AS THE INCREASE OF THE6 THRESHINGFLOOR, AND AS THE INCREASE OF THE WINEPRESS.J# 31 AND YE SHALL EAT IT IN EVERY PLACE, YE AND YOUR HOUSEHOLDS: FOR IT ISD YOUR REWARD FOR YOUR SERVICE IN THE TABERNACLE OF THE CONGREGATION.J# 32 AND YE SHALL BEAR NO SIN BY REASON OF IT, WHEN YE HAVE HEAVED FROM ITL THE BEST OF IT: NEITHER SHALL YE POLLUTE THE HOLY THINGS OF THE CHILDREN OF ISRAEL, LEST YE DIE.H = CHAPTER 19 E9# 1 AND THE LORD SPAKE UNTO MOSES AND UNTO AARON, SAYING, K# 2 THIS IS THE ORDINANCE OF THE LAW WHICH THE LORD HATH COMMANDED, SAYING,DM SPEAK UNTO THE CHILDREN OF ISRAEL, THAT THEY BRING THEE A RED HEIFER WITHOUT = SPOT, WHEREIN IS NO BLEMISH, AND UPON WHICH NEVER CAME YOKE:NH# 3 AND YE SHALL GIVE HER UNTO ELEAZAR THE PRIEST, THAT HE MAY BRING HER@ FORTH WITHOUT THE CAMP, AND ONE SHALL SLAY HER BEFORE HIS FACE:G# 4 AND ELEAZAR THE PRIEST SHALL TAKE OF HER BLOOD WITH HIS FINGER, ANDHI SPRINKLE OF HER BLOOD DIRECTLY BEFORE THE TABERNACLE OF THE CONGREGATION SEVEN TIMES:HL# 5 AND ONE SHALL BURN THE HEIFER IN HIS SIGHT; HER SKIN, AND HER FLESH, AND) HER BLOOD, WITH HER DUNG, SHALL HE BURN:AK# 6 AND THE PRIEST SHALL TAKE CEDAR WOOD, AND HYSSOP, AND SCARLET, AND CAST 0 IT INTO THE MIDST OF THE BURNING OF THE HEIFER.K# 7 THEN THE PRIEST SHALL WASH HIS CLOTHES, AND HE SHALL BATHE HIS FLESH INEJ WATER, AND AFTERWARD HE SHALL COME INTO THE CAMP, AND THE PRIEST SHALL BE UNCLEAN UNTIL THE EVEN.J# 8 AND HE THAT BURNETH HER SHALL WASH HIS CLOTHES IN WATER, AND BATHE HIS5 FLESH IN WATER, AND SHALL BE UNCLEAN UNTIL THE EVEN. L# 9 AND A MAN THAT IS CLEAN SHALL GATHER UP THE ASHES OF THE HEIFER, AND LAYH THEM UP WITHOUT THE CAMP IN A CLEAN PLACE, AND IT SHALL BE KEPT FOR THEJ CONGREGATION OF THE CHILDREN OF ISRAEL FOR A WATER OF SEPARATION: IT IS A PURIFICATION FOR SIN.J# 10 AND HE THAT GATHERETH THE ASHES OF THE HEIFER SHALL WASH HIS CLOTHES,L AND BE UNCLEAN UNTIL THE EVEN: AND IT SHALL BE UNTO THE CHILDREN OF ISRAEL,J AND UNTO THE STRANGER THAT SOJOURNETH AMONG THEM, FOR A STATUTE FOR EVER.K# 11 HE THAT TOUCHETH THE DEAD BODY OF ANY MAN SHALL BE UNCLEAN SEVEN DAYS.HM# 12 HE SHALL PURIFY HIMSELF WITH IT ON THE THIRD DAY, AND ON THE SEVENTH DAY H HE SHALL BE CLEAN: BUT IF HE PURIFY NOT HIMSELF THE THIRD DAY, THEN THE# SEVENTH DAY HE SHALL NOT BE CLEAN.TL# 13 WHOSOEVER TOUCHETH THE DEAD BODY OF ANY MAN THAT IS DEAD, AND PURIFIETHM NOT HIMSELF, DEFILETH THE TABERNACLE OF THE LORD; AND THAT SOUL SHALL BE CUTFM OFF FROM ISRAEL: BECAUSE THE WATER OF SEPARATION WAS NOT SPRINKLED UPON HIM,E6 HE SHALL BE UNCLEAN; HIS UNCLEANNESS IS YET UPON HIM.H# 14 THIS IS THE LAW, WHEN A MAN DIETH IN A TENT: ALL THAT COME INTO THE@ TENT, AND ALL THAT IS IN THE TENT, SHALL BE UNCLEAN SEVEN DAYS.M# 15 AND EVERY OPEN VESSEL, WHICH HATH NO COVERING BOUND UPON IT, IS UNCLEAN.F# 16 AND WHOSOEVER TOUCHETH ONE THAT IS SLAIN WITH A SWORD IN THE OPENI FIELDS, OR A DEAD BODY, OR A BONE OF A MAN, OR A GRAVE, SHALL BE UNCLEANL SEVEN DAYS.H# 17 AND FOR AN UNCLEAN PERSON THEY SHALL TAKE OF THE AS00b*)<%X>%+%O-%TADATADATAHES OF THE BURNTL HEIFER OF PURIFICATION FOR SIN, AND RUNNING WATER SHALL BE PUT THERETO IN A VESSEL:G# 18 AND A CLEAN PERSON SHALL TAKE HYSSOP, AND DIP IT IN THE WATER, AND J SPRINKLE IT UPON THE TENT, AND UPON ALL THE VESSELS, AND UPON THE PERSONSN THAT WERE THERE, AND UPON HIM THAT TOUCHED A BONE, OR ONE SLAIN, OR ONE DEAD, OR A GRAVE:K# 19 AND THE CLEAN PERSON SHALL SPRINKLE UPON THE UNCLEAN ON THE THIRD DAY,AL AND ON THE SEVENTH DAY: AND ON THE SEVENTH DAY HE SHALL PURIFY HIMSELF, ANDJ WASH HIS CLOTHES, AND BATHE HIMSELF IN WATER, AND SHALL BE CLEAN AT EVEN.J# 20 BUT THE MAN THAT SHALL BE UNCLEAN, AND SHALL NOT PURIFY HIMSELF, THATK SOUL SHALL BE CUT OFF FROM AMONG THE CONGREGATION, BECAUSE HE HATH DEFILEDTK THE SANCTUARY OF THE LORD: THE WATER OF SEPARATION HATH NOT BEEN SPRINKLED  UPON HIM; HE IS UNCLEAN.EK# 21 AND IT SHALL BE A PERPETUAL STATUTE UNTO THEM, THAT HE THAT SPRINKLETHAI THE WATER OF SEPARATION SHALL WASH HIS CLOTHES; AND HE THAT TOUCHETH THEA1 WATER OF SEPARATION SHALL BE UNCLEAN UNTIL EVEN.EI# 22 AND WHATSOEVER THE UNCLEAN PERSON TOUCHETH SHALL BE UNCLEAN; AND THE 3 SOUL THAT TOUCHETH IT SHALL BE UNCLEAN UNTIL EVEN. = CHAPTER 20 FK# 1 THEN CAME THE CHILDREN OF ISRAEL, EVEN THE WHOLE CONGREGATION, INTO THE M DESERT OF ZIN IN THE FIRST MONTH: AND THE PEOPLE ABODE IN KADESH; AND MIRIAMN" DIED THERE, AND WAS BURIED THERE.M# 2 AND THERE WAS NO WATER FOR THE CONGREGATION: AND THEY GATHERED THEMSELVESS* TOGETHER AGAINST MOSES AND AGAINST AARON.M# 3 AND THE PEOPLE CHODE WITH MOSES, AND SPAKE, SAYING, WOULD GOD THAT WE HADA- DIED WHEN OUR BRETHREN DIED BEFORE THE LORD!SE# 4 AND WHY HAVE YE BROUGHT UP THE CONGREGATION OF THE LORD INTO THIS 5 WILDERNESS, THAT WE AND OUR CATTLE SHOULD DIE THERE?GI# 5 AND WHEREFORE HAVE YE MADE US TO COME UP OUT OF EGYPT, TO BRING US INNM UNTO THIS EVIL PLACE? IT IS NO PLACE OF SEED, OR OF FIGS, OR OF VINES, OR OFW3 POMEGRANATES; NEITHER IS THERE ANY WATER TO DRINK.EL# 6 AND MOSES AND AARON WENT FROM THE PRESENCE OF THE ASSEMBLY UNTO THE DOORK OF THE TABERNACLE OF THE CONGREGATION, AND THEY FELL UPON THEIR FACES: ANDD* THE GLORY OF THE LORD APPEARED UNTO THEM.*# 7 AND THE LORD SPAKE UNTO MOSES, SAYING,L# 8 TAKE THE ROD, AND GATHER THOU THE ASSEMBLY TOGETHER, THOU, AND AARON THYI BROTHER, AND SPEAK YE UNTO THE ROCK BEFORE THEIR EYES; AND IT SHALL GIVELN FORTH HIS WATER, AND THOU SHALT BRING FORTH TO THEM WATER OUT OF THE ROCK: SO9 THOU SHALT GIVE THE CONGREGATION AND THEIR BEASTS DRINK. E# 9 AND MOSES TOOK THE ROD FROM BEFORE THE LORD, AS HE COMMANDED HIM.EL# 10 AND MOSES AND AARON GATHERED THE CONGREGATION TOGETHER BEFORE THE ROCK,K AND HE SAID UNTO THEM, HEAR NOW, YE REBELS; MUST WE FETCH YOU WATER OUT OFE THIS ROCK? L# 11 AND MOSES LIFTED UP HIS HAND, AND WITH HIS ROD HE SMOTE THE ROCK TWICE:I AND THE WATER CAME OUT ABUNDANTLY, AND THE CONGREGATION DRANK, AND THEIR BEASTS ALSO.GL# 12 AND THE LORD SPAKE UNTO MOSES AND AARON, BECAUSE YE BELIEVED ME NOT, TOJ SANCTIFY ME IN THE EYES OF THE CHILDREN OF ISRAEL, THEREFORE YE SHALL NOT? BRING THIS CONGREGATION INTO THE LAND WHICH I HAVE GIVEN THEM.AM# 13 THIS IS THE WATER OF MERIBAH; BECAUSE THE CHILDREN OF ISRAEL STROVE WITHS) THE LORD, AND HE WAS SANCTIFIED IN THEM.L# 14 AND MOSES SENT MESSENGERS FROM KADESH UNTO THE KING OF EDOM, THUS SAITHH THY BROTHER ISRAEL, THOU KNOWEST ALL THE TRAVAIL THAT HATH BEFALLEN US:L# 15 HOW OUR FATHERS WENT DOWN INTO EGYPT, AND WE HAVE DWELT IN EGYPT A LONG3 TIME; AND THE EGYPTIANS VEXED US, AND OUR FATHERS:LL# 16 AND WHEN WE CRIED UNTO THE LORD, HE HEARD OUR VOICE, AND SENT AN ANGEL,N AND HATH BROUGHT US FORTH OUT OF EGYPT: AND, BEHOLD, WE ARE IN KADESH, A CITY IN THE UTTERMOST OF THY BORDER:L# 17 LET US PASS, I PRAY THEE, THROUGH THY COUNTRY: WE WILL NOT PASS THROUGHL THE FIELDS, OR THROUGH THE VINEYARDS, NEITHER WILL WE DRINK OF THE WATER OFK THE WELLS: WE WILL GO BY THE KINGS HIGH WAY, WE WILL NOT TURN TO THE RIGHTA8 HAND NOR TO THE LEFT, UNTIL WE HAVE PASSED THY BORDERS.G# 18 AND EDOM SAID UNTO HIM, THOU SHALT NOT PASS BY ME, 00b*)D%5%T6%! !LEST I COME OUTA AGAINST THEE WITH THE SWORD.,J# 19 AND THE CHILDREN OF ISRAEL SAID UNTO HIM, WE WILL GO BY THE HIGH WAY:J AND IF I AND MY CATTLE DRINK OF THY WATER, THEN I WILL PAY FOR IT: I WILL: ONLY, WITHOUT DOING ANYTHING ELSE, GO THROUGH ON MY FEET.J# 20 AND HE SAID, THOU SHALT NOT GO THROUGH. AND EDOM CAME OUT AGAINST HIM* WITH MUCH PEOPLE, AND WITH A STRONG HAND.K# 21 THUS EDOM REFUSED TO GIVE ISRAEL PASSAGE THROUGH HIS BORDER: WHEREFORE  ISRAEL TURNED AWAY FROM HIM. L# 22 AND THE CHILDREN OF ISRAEL, EVEN THE WHOLE CONGREGATION, JOURNEYED FROM! KADESH, AND CAME UNTO MOUNT HOR. J# 23 AND THE LORD SPAKE UNTO MOSES AND AARON IN MOUNT HOR, BY THE COAST OF THE LAND OF EDOM, SAYING,M# 24 AARON SHALL BE GATHERED UNTO HIS PEOPLE: FOR HE SHALL NOT ENTER INTO THEAI LAND WHICH I HAVE GIVEN UNTO THE CHILDREN OF ISRAEL, BECAUSE YE REBELLEDO) AGAINST MY WORD AT THE WATER OF MERIBAH.MF# 25 TAKE AARON AND ELEAZAR HIS SON, AND BRING THEM UP UNTO MOUNT HOR:L# 26 AND STRIP AARON OF HIS GARMENTS, AND PUT THEM UPON ELEAZAR HIS SON: AND> AARON SHALL BE GATHERED UNTO HIS PEOPLE, AND SHALL DIE THERE.L# 27 AND MOSES DID AS THE LORD COMMANDED: AND THEY WENT UP INTO MOUNT HOR IN# THE SIGHT OF ALL THE CONGREGATION.LL# 28 AND MOSES STRIPPED AARON OF HIS GARMENTS, AND PUT THEM UPON ELEAZAR HISN SON; AND AARON DIED THERE IN THE TOP OF THE MOUNT: AND MOSES AND ELEAZAR CAME DOWN FROM THE MOUNT.ML# 29 AND WHEN ALL THE CONGREGATION SAW THAT AARON WAS DEAD, THEY MOURNED FOR1 AARON THIRTY DAYS, EVEN ALL THE HOUSE OF ISRAEL. = CHAPTER 21 :J# 1 AND WHEN KING ARAD THE CANAANITE, WHICH DWELT IN THE SOUTH, HEARD TELLM THAT ISRAEL CAME BY THE WAY OF THE SPIES; THEN HE FOUGHT AGAINST ISRAEL, ANDG TOOK SOME OF THEM PRISONERS. G# 2 AND ISRAEL VOWED A VOW UNTO THE LORD, AND SAID, IF THOU WILT INDEEDSL DELIVER THIS PEOPLE INTO MY HAND, THEN I WILL UTTERLY DESTROY THEIR CITIES.G# 3 AND THE LORD HEARKENED TO THE VOICE OF ISRAEL, AND DELIVERED UP THEAL CANAANITES; AND THEY UTTERLY DESTROYED THEM AND THEIR CITIES: AND HE CALLED THE NAME OF THE PLACE HORMAH.K# 4 AND THEY JOURNEYED FROM MOUNT HOR BY THE WAY OF THE RED SEA, TO COMPASSLM THE LAND OF EDOM: AND THE SOUL OF THE PEOPLE WAS MUCH DISCOURAGED BECAUSE OFO THE WAY.OJ# 5 AND THE PEOPLE SPAKE AGAINST GOD, AND AGAINST MOSES, WHEREFORE HAVE YEL BROUGHT US UP OUT OF EGYPT TO DIE IN THE WILDERNESS? FOR THERE IS NO BREAD,D NEITHER IS THERE ANY WATER; AND OUR SOUL LOATHETH THIS LIGHT BREAD.G# 6 AND THE LORD SENT FIERY SERPENTS AMONG THE PEOPLE, AND THEY BIT THEA( PEOPLE; AND MUCH PEOPLE OF ISRAEL DIED.M# 7 THEREFORE THE PEOPLE CAME TO MOSES, AND SAID, WE HAVE SINNED, FOR WE HAVELL SPOKEN AGAINST THE LORD, AND AGAINST THEE; PRAY UNTO THE LORD, THAT HE TAKE< AWAY THE SERPENTS FROM US. AND MOSES PRAYED FOR THE PEOPLE.L# 8 AND THE LORD SAID UNTO MOSES, MAKE THEE A FIERY SERPENT, AND SET IT UPONJ A POLE: AND IT SHALL COME TO PASS, THAT EVERY ONE THAT IS BITTEN, WHEN HE LOOKETH UPON IT, SHALL LIVE. M# 9 AND MOSES MADE A SERPENT OF BRASS, AND PUT IT UPON A POLE, AND IT CAME TOMJ PASS, THAT IF A SERPENT HAD BITTEN ANY MAN, WHEN HE BEHELD THE SERPENT OF BRASS, HE LIVED.OB# 10 AND THE CHILDREN OF ISRAEL SET FORWARD, AND PITCHED IN OBOTH.D# 11 AND THEY JOURNEYED FROM OBOTH, AND PITCHED AT IJEABARIM, IN THE7 WILDERNESS WHICH IS BEFORE MOAB, TOWARD THE SUNRISING. B# 12 FROM THENCE THEY REMOVED, AND PITCHED IN THE VALLEY OF ZARED.L# 13 FROM THENCE THEY REMOVED, AND PITCHED ON THE OTHER SIDE OF ARNON, WHICHN IS IN THE WILDERNESS THAT COMETH OUT OF THE COASTS OF THE AMORITES: FOR ARNON6 IS THE BORDER OF MOAB, BETWEEN MOAB AND THE AMORITES.M# 14 WHEREFORE IT IS SAID IN THE BOOK OF THE WARS OF THE LORD, WHAT HE DID IN,) THE RED SEA, AND IN THE BROOKS OF ARNON,EK# 15 AND AT THE STREAM OF THE BROOKS THAT GOETH DOWN TO THE DWELLING OF AR, # AND LIETH UPON THE BORDER OF MOAB.OI# 16 AND FROM THENCE THEY WENT TO BEER: THAT IS THE WELL WHEREOF THE LORDEJ SPAKE UNTO MOSES, GATHER THE PEOPLE TOGETHER, AND I WILL GIVE THEM WATER.D# 17 THEN ISRAEL SANG THIS SONG, SPRING UP00b*)<%X>%+%O-%TADATADATA, O WELL; SING YE UNTO IT:L# 18 THE PRINCES DIGGED THE WELL, THE NOBLES OF THE PEOPLE DIGGED IT, BY THEK DIRECTION OF THE LAWGIVER, WITH THEIR STAVES. AND FROM THE WILDERNESS THEYE WENT TO MATTANAH:@# 19 AND FROM MATTANAH TO NAHALIEL: AND FROM NAHALIEL TO BAMOTH:J# 20 AND FROM BAMOTH IN THE VALLEY, THAT IS IN THE COUNTRY OF MOAB, TO THE. TOP OF PISGAH, WHICH LOOKETH TOWARD JESHIMON.H# 21 AND ISRAEL SENT MESSENGERS UNTO SIHON KING OF THE AMORITES, SAYING,L# 22 LET ME PASS THROUGH THY LAND: WE WILL NOT TURN INTO THE FIELDS, OR INTOK THE VINEYARDS; WE WILL NOT DRINK OF THE WATERS OF THE WELL: BUT WE WILL GOR; ALONG BY THE KINGS HIGH WAY, UNTIL WE BE PAST THY BORDERS.RL# 23 AND SIHON WOULD NOT SUFFER ISRAEL TO PASS THROUGH HIS BORDER: BUT SIHONG GATHERED ALL HIS PEOPLE TOGETHER, AND WENT OUT AGAINST ISRAEL INTO THEU= WILDERNESS: AND HE CAME TO JAHAZ, AND FOUGHT AGAINST ISRAEL.IL# 24 AND ISRAEL SMOTE HIM WITH THE EDGE OF THE SWORD, AND POSSESSED HIS LANDK FROM ARNON UNTO JABBOK, EVEN UNTO THE CHILDREN OF AMMON: FOR THE BORDER OFO" THE CHILDREN OF AMMON WAS STRONG.L# 25 AND ISRAEL TOOK ALL THESE CITIES: AND ISRAEL DWELT IN ALL THE CITIES OF; THE AMORITES, IN HESHBON, AND IN ALL THE VILLAGES THEREOF.SH# 26 FOR HESHBON WAS THE CITY OF SIHON THE KING OF THE AMORITES, WHO HADJ FOUGHT AGAINST THE FORMER KING OF MOAB, AND TAKEN ALL HIS LAND OUT OF HIS HAND, EVEN UNTO ARNON.AJ# 27 WHEREFORE THEY THAT SPEAK IN PROVERBS SAY, COME INTO HESHBON, LET THE% CITY OF SIHON BE BUILT AND PREPARED:NM# 28 FOR THERE IS A FIRE GONE OUT OF HESHBON, A FLAME FROM THE CITY OF SIHON:.H IT HATH CONSUMED AR OF MOAB, AND THE LORDS OF THE HIGH PLACES OF ARNON.K# 29 WOE TO THEE, MOAB! THOU ART UNDONE, O PEOPLE OF CHEMOSH: HE HATH GIVENHL HIS SONS THAT ESCAPED, AND HIS DAUGHTERS, INTO CAPTIVITY UNTO SIHON KING OF THE AMORITES.K# 30 WE HAVE SHOT AT THEM; HESHBON IS PERISHED EVEN UNTO DIBON, AND WE HAVEW> LAID THEM WASTE EVEN UNTO NOPHAH, WHICH REACHETH UNTO MEDEBA.3# 31 THUS ISRAEL DWELT IN THE LAND OF THE AMORITES.RJ# 32 AND MOSES SENT TO SPY OUT JAAZER, AND THEY TOOK THE VILLAGES THEREOF,, AND DROVE OUT THE AMORITES THAT WERE THERE.I# 33 AND THEY TURNED AND WENT UP BY THE WAY OF BASHAN: AND OG THE KING OFFN BASHAN WENT OUT AGAINST THEM, HE, AND ALL HIS PEOPLE, TO THE BATTLE AT EDREI.I# 34 AND THE LORD SAID UNTO MOSES, FEAR HIM NOT: FOR I HAVE DELIVERED HIMIM INTO THY HAND, AND ALL HIS PEOPLE, AND HIS LAND; AND THOU SHALT DO TO HIM ASID THOU DIDST UNTO SIHON KING OF THE AMORITES, WHICH DWELT AT HESHBON.I# 35 SO THEY SMOTE HIM, AND HIS SONS, AND ALL HIS PEOPLE, UNTIL THERE WAS 2 NONE LEFT HIM ALIVE: AND THEY POSSESSED HIS LAND. = CHAPTER 22 EM# 1 AND THE CHILDREN OF ISRAEL SET FORWARD, AND PITCHED IN THE PLAINS OF MOABT ON THIS SIDE JORDAN BY JERICHO.M# 2 AND BALAK THE SON OF ZIPPOR SAW ALL THAT ISRAEL HAD DONE TO THE AMORITES.FL# 3 AND MOAB WAS SORE AFRAID OF THE PEOPLE, BECAUSE THEY WERE MANY: AND MOAB2 WAS DISTRESSED BECAUSE OF THE CHILDREN OF ISRAEL.K# 4 AND MOAB SAID UNTO THE ELDERS OF MIDIAN, NOW SHALL THIS COMPANY LICK UP N ALL THAT ARE ROUND ABOUT US, AS THE OX LICKETH UP THE GRASS OF THE FIELD. AND? BALAK THE SON OF ZIPPOR WAS KING OF THE MOABITES AT THAT TIME.TM# 5 HE SENT MESSENGERS THEREFORE UNTO BALAAM THE SON OF BEOR TO PETHOR, WHICHH IS BY THE RIVER OF THE LAND OF THE CHILDREN OF HIS PEOPLE, TO CALL HIM,N SAYING, BEHOLD, THERE IS A PEOPLE COME OUT FROM EGYPT: BEHOLD, THEY COVER THE3 FACE OF THE EARTH, AND THEY ABIDE OVER AGAINST ME:.K# 6 COME NOW THEREFORE, I PRAY THEE, CURSE ME THIS PEOPLE; FOR THEY ARE TOO N MIGHTY FOR ME: PERADVENTURE I SHALL PREVAIL, THAT WE MAY SMITE THEM, AND THATJ I MAY DRIVE THEM OUT OF THE LAND: FOR I WOT THAT HE WHOM THOU BLESSEST IS- BLESSED, AND HE WHOM THOU CURSEST IS CURSED. M# 7 AND THE ELDERS OF MOAB AND THE ELDERS OF MIDIAN DEPARTED WITH THE REWARDSPK OF DIVINATION IN THEIR HAND; AND THEY CAME UNTO BALAAM, AND SPAKE UNTO HIMO THE WORDS OF BALAK.K# 8 AND HE SAID UNTO THEM, LODGE HERE THIS NIGHT, AND I WILL BRING YOU WORD K AGAIN, AS THE LORD SHAL00b*)D%5%T6%! !L SPEAK UNTO ME: AND THE PRINCES OF MOAB ABODE WITHU BALAAM.E# 9 AND GOD CAME UNTO BALAAM, AND SAID, WHAT MEN ARE THESE WITH THEE?EJ# 10 AND BALAAM SAID UNTO GOD, BALAK THE SON OF ZIPPOR, KING OF MOAB, HATH SENT UNTO ME, SAYING,L# 11 BEHOLD, THERE IS A PEOPLE COME OUT OF EGYPT, WHICH COVERETH THE FACE OFM THE EARTH: COME NOW, CURSE ME THEM; PERADVENTURE I SHALL BE ABLE TO OVERCOMEE THEM, AND DRIVE THEM OUT.J# 12 AND GOD SAID UNTO BALAAM, THOU SHALT NOT GO WITH THEM; THOU SHALT NOT( CURSE THE PEOPLE: FOR THEY ARE BLESSED.K# 13 AND BALAAM ROSE UP IN THE MORNING, AND SAID UNTO THE PRINCES OF BALAK, J GET YOU INTO YOUR LAND: FOR THE LORD REFUSETH TO GIVE ME LEAVE TO GO WITH YOU.PI# 14 AND THE PRINCES OF MOAB ROSE UP, AND THEY WENT UNTO BALAK, AND SAID,P! BALAAM REFUSETH TO COME WITH US.HK# 15 AND BALAK SENT YET AGAIN PRINCES, MORE, AND MORE HONOURABLE THAN THEY.LJ# 16 AND THEY CAME TO BALAAM, AND SAID TO HIM, THUS SAITH BALAK THE SON OFC ZIPPOR, LET NOTHING, I PRAY THEE, HINDER THEE FROM COMING UNTO ME:EM# 17 FOR I WILL PROMOTE THEE UNTO VERY GREAT HONOUR, AND I WILL DO WHATSOEVEREH THOU SAYEST UNTO ME: COME THEREFORE, I PRAY THEE, CURSE ME THIS PEOPLE.L# 18 AND BALAAM ANSWERED AND SAID UNTO THE SERVANTS OF BALAK, IF BALAK WOULDN GIVE ME HIS HOUSE FULL OF SILVER AND GOLD, I CANNOT GO BEYOND THE WORD OF THE! LORD MY GOD, TO DO LESS OR MORE.OI# 19 NOW THEREFORE, I PRAY YOU, TARRY YE ALSO HERE THIS NIGHT, THAT I MAYT* KNOW WHAT THE LORD WILL SAY UNTO ME MORE.M# 20 AND GOD CAME UNTO BALAAM AT NIGHT, AND SAID UNTO HIM, IF THE MEN COME TO N CALL THEE, RISE UP, AND GO WITH THEM; BUT YET THE WORD WHICH I SHALL SAY UNTO THEE, THAT SHALT THOU DO.J# 21 AND BALAAM ROSE UP IN THE MORNING, AND SADDLED HIS ASS, AND WENT WITH THE PRINCES OF MOAB.HJ# 22 AND GODS ANGER WAS KINDLED BECAUSE HE WENT: AND THE ANGEL OF THE LORDJ STOOD IN THE WAY FOR AN ADVERSARY AGAINST HIM. NOW HE WAS RIDING UPON HIS) ASS, AND HIS TWO SERVANTS WERE WITH HIM.EM# 23 AND THE ASS SAW THE ANGEL OF THE LORD STANDING IN THE WAY, AND HIS SWORDUN DRAWN IN HIS HAND: AND THE ASS TURNED ASIDE OUT OF THE WAY, AND WENT INTO THE; FIELD: AND BALAAM SMOTE THE ASS, TO TURN HER INTO THE WAY.1M# 24 BUT THE ANGEL OF THE LORD STOOD IN A PATH OF THE VINEYARDS, A WALL BEINGI' ON THIS SIDE, AND A WALL ON THAT SIDE.IL# 25 AND WHEN THE ASS SAW THE ANGEL OF THE LORD, SHE THRUST HERSELF UNTO THEI WALL, AND CRUSHED BALAAMS FOOT AGAINST THE WALL: AND HE SMOTE HER AGAIN.WI# 26 AND THE ANGEL OF THE LORD WENT FURTHER, AND STOOD IN A NARROW PLACE,WB WHERE WAS NO WAY TO TURN EITHER TO THE RIGHT HAND OR TO THE LEFT.L# 27 AND WHEN THE ASS SAW THE ANGEL OF THE LORD, SHE FELL DOWN UNDER BALAAM:B AND BALAAMS ANGER WAS KINDLED, AND HE SMOTE THE ASS WITH A STAFF.M# 28 AND THE LORD OPENED THE MOUTH OF THE ASS, AND SHE SAID UNTO BALAAM, WHATWD HAVE I DONE UNTO THEE, THAT THOU HAST SMITTEN ME THESE THREE TIMES?M# 29 AND BALAAM SAID UNTO THE ASS, BECAUSE THOU HAST MOCKED ME: I WOULD THEREA6 WERE A SWORD IN MINE HAND, FOR NOW WOULD I KILL THEE.K# 30 AND THE ASS SAID UNTO BALAAM, AM NOT I THINE ASS, UPON WHICH THOU HASTFK RIDDEN EVER SINCE I WAS THINE UNTO THIS DAY? WAS I EVER WONT TO DO SO UNTOA THEE? AND HE SAID, NAY.I# 31 THEN THE LORD OPENED THE EYES OF BALAAM, AND HE SAW THE ANGEL OF THEMM LORD STANDING IN THE WAY, AND HIS SWORD DRAWN IN HIS HAND: AND HE BOWED DOWNT% HIS HEAD, AND FELL FLAT ON HIS FACE.I# 32 AND THE ANGEL OF THE LORD SAID UNTO HIM, WHEREFORE HAST THOU SMITTENRK THINE ASS THESE THREE TIMES? BEHOLD, I WENT OUT TO WITHSTAND THEE, BECAUSES THY WAY IS PERVERSE BEFORE ME:SM# 33 AND THE ASS SAW ME, AND TURNED FROM ME THESE THREE TIMES: UNLESS SHE HADVG TURNED FROM ME, SURELY NOW ALSO I HAD SLAIN THEE, AND SAVED HER ALIVE.EJ# 34 AND BALAAM SAID UNTO THE ANGEL OF THE LORD, I HAVE SINNED; FOR I KNEWM NOT THAT THOU STOODEST IN THE WAY AGAINST ME: NOW THEREFORE, IF IT DISPLEASET THEE, I WILL GET ME BACK AGAIN.J# 35 AND THE ANGEL OF THE LORD SAID UNTO BALAAM, GO WITH THE MEN: BUT ONLYM THE WORD THAT I SHALL SPEAK UNTO THEE, THAT T00b*)<%X>%+%O-%TADATADATAHOU SHALT SPEAK. SO BALAAM WENTE WITH THE PRINCES OF BALAK.SL# 36 AND WHEN BALAK HEARD THAT BALAAM WAS COME, HE WENT OUT TO MEET HIM UNTOH A CITY OF MOAB, WHICH IS IN THE BORDER OF ARNON, WHICH IS IN THE UTMOST COAST.TK# 37 AND BALAK SAID UNTO BALAAM, DID I NOT EARNESTLY SEND UNTO THEE TO CALLNN THEE? WHEREFORE CAMEST THOU NOT UNTO ME? AM I NOT ABLE INDEED TO PROMOTE THEE TO HONOUR?AH# 38 AND BALAAM SAID UNTO BALAK, LO, I AM COME UNTO THEE: HAVE I NOW ANYK POWER AT ALL TO SAY ANY THING? THE WORD THAT GOD PUTTETH IN MY MOUTH, THATW SHALL I SPEAK.FB# 39 AND BALAAM WENT WITH BALAK, AND THEY CAME UNTO KIRJATHHUZOTH.M# 40 AND BALAK OFFERED OXEN AND SHEEP, AND SENT TO BALAAM, AND TO THE PRINCESI THAT WERE WITH HIM.K# 41 AND IT CAME TO PASS ON THE MORROW, THAT BALAK TOOK BALAAM, AND BROUGHTNN HIM UP INTO THE HIGH PLACES OF BAAL, THAT THENCE HE MIGHT SEE THE UTMOST PART OF THE PEOPLE. = CHAPTER 23 AJ# 1 AND BALAAM SAID UNTO BALAK, BUILD ME HERE SEVEN ALTARS, AND PREPARE ME HERE SEVEN OXEN AND SEVEN RAMS.M# 2 AND BALAK DID AS BALAAM HAD SPOKEN; AND BALAK AND BALAAM OFFERED ON EVERYT ALTAR A BULLOCK AND A RAM.K# 3 AND BALAAM SAID UNTO BALAK, STAND BY THY BURNT OFFERING, AND I WILL GO:IK PERADVENTURE THE LORD WILL COME TO MEET ME: AND WHATSOEVER HE SHEWETH ME IO. WILL TELL THEE. AND HE WENT TO AN HIGH PLACE.K# 4 AND GOD MET BALAAM: AND HE SAID UNTO HIM, I HAVE PREPARED SEVEN ALTARS,H9 AND I HAVE OFFERED UPON EVERY ALTAR A BULLOCK AND A RAM.EJ# 5 AND THE LORD PUT A WORD IN BALAAMS MOUTH, AND SAID, RETURN UNTO BALAK, AND THUS THOU SHALT SPEAK. K# 6 AND HE RETURNED UNTO HIM, AND, LO, HE STOOD BY HIS BURNT SACRIFICE, HE,A AND ALL THE PRINCES OF MOAB.YM# 7 AND HE TOOK UP HIS PARABLE, AND SAID, BALAK THE KING OF MOAB HATH BROUGHTAN ME FROM ARAM, OUT OF THE MOUNTAINS OF THE EAST, SAYING, COME, CURSE ME JACOB, AND COME, DEFY ISRAEL.NJ# 8 HOW SHALL I CURSE, WHOM GOD HATH NOT CURSED? OR HOW SHALL I DEFY, WHOM THE LORD HATH NOT DEFIED?M# 9 FOR FROM THE TOP OF THE ROCKS I SEE HIM, AND FROM THE HILLS I BEHOLD HIM:AF LO, THE PEOPLE SHALL DWELL ALONE, AND SHALL NOT BE RECKONED AMONG THE NATIONS.YJ# 10 WHO CAN COUNT THE DUST OF JACOB, AND THE NUMBER OF THE FOURTH PART OFK ISRAEL? LET ME DIE THE DEATH OF THE RIGHTEOUS, AND LET MY LAST END BE LIKE, HIS! L# 11 AND BALAK SAID UNTO BALAAM, WHAT HAST THOU DONE UNTO ME? I TOOK THEE TOD CURSE MINE ENEMIES, AND, BEHOLD, THOU HAST BLESSED THEM ALTOGETHER.K# 12 AND HE ANSWERED AND SAID, MUST I NOT TAKE HEED TO SPEAK THAT WHICH THEE LORD HATH PUT IN MY MOUTH?EL# 13 AND BALAK SAID UNTO HIM, COME, I PRAY THEE, WITH ME UNTO ANOTHER PLACE,N FROM WHENCE THOU MAYEST SEE THEM: THOU SHALT SEE BUT THE UTMOST PART OF THEM,; AND SHALT NOT SEE THEM ALL: AND CURSE ME THEM FROM THENCE. K# 14 AND HE BROUGHT HIM INTO THE FIELD OF ZOPHIM, TO THE TOP OF PISGAH, ANDAD BUILT SEVEN ALTARS, AND OFFERED A BULLOCK AND A RAM ON EVERY ALTAR.K# 15 AND HE SAID UNTO BALAK, STAND HERE BY THY BURNT OFFERING, WHILE I MEETO THE LORD YONDER.KM# 16 AND THE LORD MET BALAAM, AND PUT A WORD IN HIS MOUTH, AND SAID, GO AGAINO UNTO BALAK, AND SAY THUS.M# 17 AND WHEN HE CAME TO HIM, BEHOLD, HE STOOD BY HIS BURNT OFFERING, AND THEON PRINCES OF MOAB WITH HIM. AND BALAK SAID UNTO HIM, WHAT HATH THE LORD SPOKEN?L# 18 AND HE TOOK UP HIS PARABLE, AND SAID, RISE UP, BALAK, AND HEAR; HEARKEN UNTO ME, THOU SON OF ZIPPOR:DJ# 19 GOD IS NOT A MAN, THAT HE SHOULD LIE; NEITHER THE SON OF MAN, THAT HEL SHOULD REPENT: HATH HE SAID, AND SHALL HE NOT DO IT? OR HATH HE SPOKEN, AND SHALL HE NOT MAKE IT GOOD? M# 20 BEHOLD, I HAVE RECEIVED COMMANDMENT TO BLESS: AND HE HATH BLESSED; AND IM CANNOT REVERSE IT.SL# 21 HE HATH NOT BEHELD INIQUITY IN JACOB, NEITHER HATH HE SEEN PERVERSENESSJ IN ISRAEL: THE LORD HIS GOD IS WITH HIM, AND THE SHOUT OF A KING IS AMONG THEM.I# 22 GOD BROUGHT THEM OUT OF EGYPT; HE HATH AS IT WERE THE STRENGTH OF ANI UNICORN.,G# 23 SURELY THERE IS NO ENCHANTMENT AGAINST JACOB, NEITHER IS THERE ANYHL DIVINATION AGAINST ISRAEL: ACCORDING TO THIS TIME IT SHALL BE00b*)D%5%T6%! ! SAID OF JACOB& AND OF ISRAEL, WHAT HATH GOD WROUGHT!M# 24 BEHOLD, THE PEOPLE SHALL RISE UP AS A GREAT LION, AND LIFT UP HIMSELF AS L A YOUNG LION: HE SHALL NOT LIE DOWN UNTIL HE EAT OF THE PREY, AND DRINK THE BLOOD OF THE SLAIN.M# 25 AND BALAK SAID UNTO BALAAM, NEITHER CURSE THEM AT ALL, NOR BLESS THEM AT  ALL.TJ# 26 BUT BALAAM ANSWERED AND SAID UNTO BALAK, TOLD NOT I THEE, SAYING, ALL( THAT THE LORD SPEAKETH, THAT I MUST DO?J# 27 AND BALAK SAID UNTO BALAAM, COME, I PRAY THEE, I WILL BRING THEE UNTON ANOTHER PLACE; PERADVENTURE IT WILL PLEASE GOD THAT THOU MAYEST CURSE ME THEM FROM THENCE.GG# 28 AND BALAK BROUGHT BALAAM UNTO THE TOP OF PEOR, THAT LOOKETH TOWARDU JESHIMON.K# 29 AND BALAAM SAID UNTO BALAK, BUILD ME HERE SEVEN ALTARS, AND PREPARE MEL$ HERE SEVEN BULLOCKS AND SEVEN RAMS.I# 30 AND BALAK DID AS BALAAM HAD SAID, AND OFFERED A BULLOCK AND A RAM ONT EVERY ALTAR., = CHAPTER 24 N# 1 AND WHEN BALAAM SAW THAT IT PLEASED THE LORD TO BLESS ISRAEL, HE WENT NOT,L AS AT OTHER TIMES, TO SEEK FOR ENCHANTMENTS, BUT HE SET HIS FACE TOWARD THE WILDERNESS.I# 2 AND BALAAM LIFTED UP HIS EYES, AND HE SAW ISRAEL ABIDING IN HIS TENTSO@ ACCORDING TO THEIR TRIBES; AND THE SPIRIT OF GOD CAME UPON HIM.K# 3 AND HE TOOK UP HIS PARABLE, AND SAID, BALAAM THE SON OF BEOR HATH SAID,D+ AND THE MAN WHOSE EYES ARE OPEN HATH SAID:DK# 4 HE HATH SAID, WHICH HEARD THE WORDS OF GOD, WHICH SAW THE VISION OF THE ; ALMIGHTY, FALLING INTO A TRANCE, BUT HAVING HIS EYES OPEN:LE# 5 HOW GOODLY ARE THY TENTS, O JACOB, AND THY TABERNACLES, O ISRAEL!TK# 6 AS THE VALLEYS ARE THEY SPREAD FORTH, AS GARDENS BY THE RIVERS SIDE, AS H THE TREES OF LIGN ALOES WHICH THE LORD HATH PLANTED, AND AS CEDAR TREES BESIDE THE WATERS.IM# 7 HE SHALL POUR THE WATER OUT OF HIS BUCKETS, AND HIS SEED SHALL BE IN MANYDI WATERS, AND HIS KING SHALL BE HIGHER THAN AGAG, AND HIS KINGDOM SHALL BER EXALTED. M# 8 GOD BROUGHT HIM FORTH OUT OF EGYPT; HE HATH AS IT WERE THE STRENGTH OF ANIH UNICORN: HE SHALL EAT UP THE NATIONS HIS ENEMIES, AND SHALL BREAK THEIR0 BONES, AND PIERCE THEM THROUGH WITH HIS ARROWS.J# 9 HE COUCHED, HE LAY DOWN AS A LION, AND AS A GREAT LION: WHO SHALL STIRN HIM UP? BLESSED IS HE THAT BLESSETH THEE, AND CURSED IS HE THAT CURSETH THEE.H# 10 AND BALAKS ANGER WAS KINDLED AGAINST BALAAM, AND HE SMOTE HIS HANDSK TOGETHER: AND BALAK SAID UNTO BALAAM, I CALLED THEE TO CURSE MINE ENEMIES, B AND, BEHOLD, THOU HAST ALTOGETHER BLESSED THEM THESE THREE TIMES.I# 11 THEREFORE NOW FLEE THOU TO THY PLACE: I THOUGHT TO PROMOTE THEE UNTOBA GREAT HONOUR; BUT, LO, THE LORD HATH KEPT THEE BACK FROM HONOUR.EI# 12 AND BALAAM SAID UNTO BALAK, SPAKE I NOT ALSO TO THY MESSENGERS WHICHU THOU SENTEST UNTO ME, SAYING,J# 13 IF BALAK WOULD GIVE ME HIS HOUSE FULL OF SILVER AND GOLD, I CANNOT GOI BEYOND THE COMMANDMENT OF THE LORD, TO DO EITHER GOOD OR BAD OF MINE OWNA2 MIND; BUT WHAT THE LORD SAITH, THAT WILL I SPEAK?E# 14 AND NOW, BEHOLD, I GO UNTO MY PEOPLE: COME THEREFORE, AND I WILLEK ADVERTISE THEE WHAT THIS PEOPLE SHALL DO TO THY PEOPLE IN THE LATTER DAYS.BL# 15 AND HE TOOK UP HIS PARABLE, AND SAID, BALAAM THE SON OF BEOR HATH SAID,+ AND THE MAN WHOSE EYES ARE OPEN HATH SAID:CJ# 16 HE HATH SAID, WHICH HEARD THE WORDS OF GOD, AND KNEW THE KNOWLEDGE OFL THE MOST HIGH, WHICH SAW THE VISION OF THE ALMIGHTY, FALLING INTO A TRANCE, BUT HAVING HIS EYES OPEN:J# 17 I SHALL SEE HIM, BUT NOT NOW: I SHALL BEHOLD HIM, BUT NOT NIGH: THEREL SHALL COME A STAR OUT OF JACOB, AND A SCEPTRE SHALL RISE OUT OF ISRAEL, ANDH SHALL SMITE THE CORNERS OF MOAB, AND DESTROY ALL THE CHILDREN OF SHETH.L# 18 AND EDOM SHALL BE A POSSESSION, SEIR ALSO SHALL BE A POSSESSION FOR HIS( ENEMIES; AND ISRAEL SHALL DO VALIANTLY.K# 19 OUT OF JACOB SHALL COME HE THAT SHALL HAVE DOMINION, AND SHALL DESTROYH HIM THAT REMAINETH OF THE CITY.K# 20 AND WHEN HE LOOKED ON AMALEK, HE TOOK UP HIS PARABLE, AND SAID, AMALEKUM WAS THE FIRST OF THE NATIONS; BUT HIS LATTER END SHALL BE THAT HE PERISH FORA EVER.L# 21 AND HE LOOKED ON THE KENITES, AND TOOK UP HIS PARABLE, AN00b*b*<%X>%+%O-%TADATADATAD SAID, STRONG; IS THY DWELLINGPLACE, AND THOU PUTTEST THY NEST IN A ROCK.AK# 22 NEVERTHELESS THE KENITE SHALL BE WASTED, UNTIL ASSHUR SHALL CARRY THEEA AWAY CAPTIVE.H# 23 AND HE TOOK UP HIS PARABLE, AND SAID, ALAS, WHO SHALL LIVE WHEN GOD DOETH THIS!F# 24 AND SHIPS SHALL COME FROM THE COAST OF CHITTIM, AND SHALL AFFLICTC ASSHUR, AND SHALL AFFLICT EBER, AND HE ALSO SHALL PERISH FOR EVER.SK# 25 AND BALAAM ROSE UP, AND WENT AND RETURNED TO HIS PLACE: AND BALAK ALSOE WENT HIS WAY. = CHAPTER 25 M# 1 AND ISRAEL ABODE IN SHITTIM, AND THE PEOPLE BEGAN TO COMMIT WHOREDOM WITH THE DAUGHTERS OF MOAB.II# 2 AND THEY CALLED THE PEOPLE UNTO THE SACRIFICES OF THEIR GODS: AND THED. PEOPLE DID EAT, AND BOWED DOWN TO THEIR GODS.J# 3 AND ISRAEL JOINED HIMSELF UNTO BAALPEOR: AND THE ANGER OF THE LORD WAS KINDLED AGAINST ISRAEL.L# 4 AND THE LORD SAID UNTO MOSES, TAKE ALL THE HEADS OF THE PEOPLE, AND HANGK THEM UP BEFORE THE LORD AGAINST THE SUN, THAT THE FIERCE ANGER OF THE LORD MAY BE TURNED AWAY FROM ISRAEL.L# 5 AND MOSES SAID UNTO THE JUDGES OF ISRAEL, SLAY YE EVERY ONE HIS MEN THAT WERE JOINED UNTO BAALPEOR.HH# 6 AND, BEHOLD, ONE OF THE CHILDREN OF ISRAEL CAME AND BROUGHT UNTO HISL BRETHREN A MIDIANITISH WOMAN IN THE SIGHT OF MOSES, AND IN THE SIGHT OF ALLM THE CONGREGATION OF THE CHILDREN OF ISRAEL, WHO WERE WEEPING BEFORE THE DOORD' OF THE TABERNACLE OF THE CONGREGATION.HK# 7 AND WHEN PHINEHAS, THE SON OF ELEAZAR, THE SON OF AARON THE PRIEST, SAW L IT, HE ROSE UP FROM AMONG THE CONGREGATION, AND TOOK A JAVELIN IN HIS HAND;I# 8 AND HE WENT AFTER THE MAN OF ISRAEL INTO THE TENT, AND THRUST BOTH OFLI THEM THROUGH, THE MAN OF ISRAEL, AND THE WOMAN THROUGH HER BELLY. SO THEO/ PLAGUE WAS STAYED FROM THE CHILDREN OF ISRAEL.OD# 9 AND THOSE THAT DIED IN THE PLAGUE WERE TWENTY AND FOUR THOUSAND.+# 10 AND THE LORD SPAKE UNTO MOSES, SAYING,OK# 11 PHINEHAS, THE SON OF ELEAZAR, THE SON OF AARON THE PRIEST, HATH TURNEDAL MY WRATH AWAY FROM THE CHILDREN OF ISRAEL, WHILE HE WAS ZEALOUS FOR MY SAKEG AMONG THEM, THAT I CONSUMED NOT THE CHILDREN OF ISRAEL IN MY JEALOUSY.IA# 12 WHEREFORE SAY, BEHOLD, I GIVE UNTO HIM MY COVENANT OF PEACE: J# 13 AND HE SHALL HAVE IT, AND HIS SEED AFTER HIM, EVEN THE COVENANT OF ANH EVERLASTING PRIESTHOOD; BECAUSE HE WAS ZEALOUS FOR HIS GOD, AND MADE AN& ATONEMENT FOR THE CHILDREN OF ISRAEL.K# 14 NOW THE NAME OF THE ISRAELITE THAT WAS SLAIN, EVEN THAT WAS SLAIN WITH M THE MIDIANITISH WOMAN, WAS ZIMRI, THE SON OF SALU, A PRINCE OF A CHIEF HOUSEW AMONG THE SIMEONITES.H# 15 AND THE NAME OF THE MIDIANITISH WOMAN THAT WAS SLAIN WAS COZBI, THEL DAUGHTER OF ZUR; HE WAS HEAD OVER A PEOPLE, AND OF A CHIEF HOUSE IN MIDIAN.+# 16 AND THE LORD SPAKE UNTO MOSES, SAYING, (# 17 VEX THE MIDIANITES, AND SMITE THEM:K# 18 FOR THEY VEX YOU WITH THEIR WILES, WHEREWITH THEY HAVE BEGUILED YOU INEL THE MATTER OF PEOR, AND IN THE MATTER OF COZBI, THE DAUGHTER OF A PRINCE OFI MIDIAN, THEIR SISTER, WHICH WAS SLAIN IN THE DAY OF THE PLAGUE FOR PEORSO SAKE. = CHAPTER 26 GL# 1 AND IT CAME TO PASS AFTER THE PLAGUE, THAT THE LORD SPAKE UNTO MOSES AND2 UNTO ELEAZAR THE SON OF AARON THE PRIEST, SAYING,H# 2 TAKE THE SUM OF ALL THE CONGREGATION OF THE CHILDREN OF ISRAEL, FROMJ TWENTY YEARS OLD AND UPWARD, THROUGHOUT THEIR FATHERS HOUSE, ALL THAT ARE ABLE TO GO TO WAR IN ISRAEL.YM# 3 AND MOSES AND ELEAZAR THE PRIEST SPAKE WITH THEM IN THE PLAINS OF MOAB BYU JORDAN NEAR JERICHO, SAYING,TM# 4 TAKE THE SUM OF THE PEOPLE, FROM TWENTY YEARS OLD AND UPWARD; AS THE LORDPM COMMANDED MOSES AND THE CHILDREN OF ISRAEL, WHICH WENT FORTH OUT OF THE LANDS OF EGYPT.M# 5 REUBEN, THE ELDEST SON OF ISRAEL: THE CHILDREN OF REUBEN; HANOCH, OF WHOMGL COMETH THE FAMILY OF THE HANOCHITES: OF PALLU, THE FAMILY OF THE PALLUITES:H# 6 OF HEZRON, THE FAMILY OF THE HEZRONITES: OF CARMI, THE FAMILY OF THE CARMITES.L# 7 THESE ARE THE FAMILIES OF THE REUBENITES: AND THEY THAT WERE NUMBERED OFA THEM WERE FORTY AND THREE THOUSAND AND SEVEN HUNDRED AND THIRTY.R!# 8 AND THE SONS OF PALLU; ELIAB.MG# 9 AND THE SONS O00b+)D%5%T6%! !F ELIAB; NEMUEL, AND DATHAN, AND ABIRAM. THIS IS THATSM DATHAN AND ABIRAM, WHICH WERE FAMOUS IN THE CONGREGATION, WHO STROVE AGAINSTON MOSES AND AGAINST AARON IN THE COMPANY OF KORAH, WHEN THEY STROVE AGAINST THE LORD:H# 10 AND THE EARTH OPENED HER MOUTH, AND SWALLOWED THEM UP TOGETHER WITHK KORAH, WHEN THAT COMPANY DIED, WHAT TIME THE FIRE DEVOURED TWO HUNDRED ANDE# FIFTY MEN: AND THEY BECAME A SIGN.T4# 11 NOTWITHSTANDING THE CHILDREN OF KORAH DIED NOT.J# 12 THE SONS OF SIMEON AFTER THEIR FAMILIES: OF NEMUEL, THE FAMILY OF THEL NEMUELITES: OF JAMIN, THE FAMILY OF THE JAMINITES: OF JACHIN, THE FAMILY OF THE JACHINITES:F# 13 OF ZERAH, THE FAMILY OF THE ZARHITES: OF SHAUL, THE FAMILY OF THE SHAULITES.TJ# 14 THESE ARE THE FAMILIES OF THE SIMEONITES, TWENTY AND TWO THOUSAND AND TWO HUNDRED.HK# 15 THE CHILDREN OF GAD AFTER THEIR FAMILIES: OF ZEPHON, THE FAMILY OF THEYN ZEPHONITES: OF HAGGI, THE FAMILY OF THE HAGGITES: OF SHUNI, THE FAMILY OF THE SHUNITES:J# 16 OF OZNI, THE FAMILY OF THE OZNITES: OF ERI, THE FAMILY OF THE ERITES:E# 17 OF AROD, THE FAMILY OF THE ARODITES: OF ARELI, THE FAMILY OF THE ARELITES.J# 18 THESE ARE THE FAMILIES OF THE CHILDREN OF GAD ACCORDING TO THOSE THAT8 WERE NUMBERED OF THEM, FORTY THOUSAND AND FIVE HUNDRED.L# 19 THE SONS OF JUDAH WERE ER AND ONAN: AND ER AND ONAN DIED IN THE LAND OF CANAAN.K# 20 AND THE SONS OF JUDAH AFTER THEIR FAMILIES WERE; OF SHELAH, THE FAMILYTI OF THE SHELANITES: OF PHAREZ, THE FAMILY OF THE PHARZITES: OF ZERAH, THEI FAMILY OF THE ZARHITES.M# 21 AND THE SONS OF PHAREZ WERE; OF HEZRON, THE FAMILY OF THE HEZRONITES: OF $ HAMUL, THE FAMILY OF THE HAMULITES.M# 22 THESE ARE THE FAMILIES OF JUDAH ACCORDING TO THOSE THAT WERE NUMBERED OFB8 THEM, THREESCORE AND SIXTEEN THOUSAND AND FIVE HUNDRED.M# 23 OF THE SONS OF ISSACHAR AFTER THEIR FAMILIES: OF TOLA, THE FAMILY OF THE - TOLAITES: OF PUA, THE FAMILY OF THE PUNITES:EK# 24 OF JASHUB, THE FAMILY OF THE JASHUBITES: OF SHIMRON, THE FAMILY OF THEP SHIMRONITES.RM# 25 THESE ARE THE FAMILIES OF ISSACHAR ACCORDING TO THOSE THAT WERE NUMBERED,9 OF THEM, THREESCORE AND FOUR THOUSAND AND THREE HUNDRED.HM# 26 OF THE SONS OF ZEBULUN AFTER THEIR FAMILIES: OF SERED, THE FAMILY OF THE M SARDITES: OF ELON, THE FAMILY OF THE ELONITES: OF JAHLEEL, THE FAMILY OF THE JAHLEELITES.AK# 27 THESE ARE THE FAMILIES OF THE ZEBULUNITES ACCORDING TO THOSE THAT WEREE8 NUMBERED OF THEM, THREESCORE THOUSAND AND FIVE HUNDRED.G# 28 THE SONS OF JOSEPH AFTER THEIR FAMILIES WERE MANASSEH AND EPHRAIM.AJ# 29 OF THE SONS OF MANASSEH: OF MACHIR, THE FAMILY OF THE MACHIRITES: ANDB MACHIR BEGAT GILEAD: OF GILEAD COME THE FAMILY OF THE GILEADITES.K# 30 THESE ARE THE SONS OF GILEAD: OF JEEZER, THE FAMILY OF THE JEEZERITES: ' OF HELEK, THE FAMILY OF THE HELEKITES:EL# 31 AND OF ASRIEL, THE FAMILY OF THE ASRIELITES: AND OF SHECHEM, THE FAMILY OF THE SHECHEMITES:M# 32 AND OF SHEMIDA, THE FAMILY OF THE SHEMIDAITES: AND OF HEPHER, THE FAMILY8 OF THE HEPHERITES.FI# 33 AND ZELOPHEHAD THE SON OF HEPHER HAD NO SONS, BUT DAUGHTERS: AND THEHL NAMES OF THE DAUGHTERS OF ZELOPHEHAD WERE MAHLAH, AND NOAH, HOGLAH, MILCAH, AND TIRZAH.H# 34 THESE ARE THE FAMILIES OF MANASSEH, AND THOSE THAT WERE NUMBERED OF0 THEM, FIFTY AND TWO THOUSAND AND SEVEN HUNDRED.J# 35 THESE ARE THE SONS OF EPHRAIM AFTER THEIR FAMILIES: OF SHUTHELAH, THEN FAMILY OF THE SHUTHALHITES: OF BECHER, THE FAMILY OF THE BACHRITES: OF TAHAN, THE FAMILY OF THE TAHANITES.TD# 36 AND THESE ARE THE SONS OF SHUTHELAH: OF ERAN, THE FAMILY OF THE ERANITES.J# 37 THESE ARE THE FAMILIES OF THE SONS OF EPHRAIM ACCORDING TO THOSE THATK WERE NUMBERED OF THEM, THIRTY AND TWO THOUSAND AND FIVE HUNDRED. THESE AREN) THE SONS OF JOSEPH AFTER THEIR FAMILIES.EJ# 38 THE SONS OF BENJAMIN AFTER THEIR FAMILIES: OF BELA, THE FAMILY OF THEL BELAITES: OF ASHBEL, THE FAMILY OF THE ASHBELITES: OF AHIRAM, THE FAMILY OF THE AHIRAMITES:L# 39 OF SHUPHAM, THE FAMILY OF THE SHUPHAMITES: OF HUPHAM, THE FAMILY OF THE HUPHAMITES.H# 40 AND THE SONS OF BELA WERE ARD AND NAAMAN: OF AR00b+*<%X>%+%O-%TADATADATAD, THE FAMILY OF THE4 ARDITES: AND OF NAAMAN, THE FAMILY OF THE NAAMITES.L# 41 THESE ARE THE SONS OF BENJAMIN AFTER THEIR FAMILIES: AND THEY THAT WERE? NUMBERED OF THEM WERE FORTY AND FIVE THOUSAND AND SIX HUNDRED.AM# 42 THESE ARE THE SONS OF DAN AFTER THEIR FAMILIES: OF SHUHAM, THE FAMILY OF D THE SHUHAMITES. THESE ARE THE FAMILIES OF DAN AFTER THEIR FAMILIES.E# 43 ALL THE FAMILIES OF THE SHUHAMITES, ACCORDING TO THOSE THAT WEREFF NUMBERED OF THEM, WERE THREESCORE AND FOUR THOUSAND AND FOUR HUNDRED.K# 44 OF THE CHILDREN OF ASHER AFTER THEIR FAMILIES: OF JIMNA, THE FAMILY OF M THE JIMNITES: OF JESUI, THE FAMILY OF THE JESUITES: OF BERIAH, THE FAMILY OFM THE BERIITES.E# 45 OF THE SONS OF BERIAH: OF HEBER, THE FAMILY OF THE HEBERITES: OFF* MALCHIEL, THE FAMILY OF THE MALCHIELITES.5# 46 AND THE NAME OF THE DAUGHTER OF ASHER WAS SARAH.NM# 47 THESE ARE THE FAMILIES OF THE SONS OF ASHER ACCORDING TO THOSE THAT WEREHF NUMBERED OF THEM; WHO WERE FIFTY AND THREE THOUSAND AND FOUR HUNDRED.L# 48 OF THE SONS OF NAPHTALI AFTER THEIR FAMILIES: OF JAHZEEL, THE FAMILY OF5 THE JAHZEELITES: OF GUNI, THE FAMILY OF THE GUNITES:TI# 49 OF JEZER, THE FAMILY OF THE JEZERITES: OF SHILLEM, THE FAMILY OF THE SHILLEMITES.RM# 50 THESE ARE THE FAMILIES OF NAPHTALI ACCORDING TO THEIR FAMILIES: AND THEYJ THAT WERE NUMBERED OF THEM WERE FORTY AND FIVE THOUSAND AND FOUR HUNDRED.L# 51 THESE WERE THE NUMBERED OF THE CHILDREN OF ISRAEL, SIX HUNDRED THOUSAND) AND A THOUSAND SEVEN HUNDRED AND THIRTY. +# 52 AND THE LORD SPAKE UNTO MOSES, SAYING,TM# 53 UNTO THESE THE LAND SHALL BE DIVIDED FOR AN INHERITANCE ACCORDING TO THE  NUMBER OF NAMES. M# 54 TO MANY THOU SHALT GIVE THE MORE INHERITANCE, AND TO FEW THOU SHALT GIVELL THE LESS INHERITANCE: TO EVERY ONE SHALL HIS INHERITANCE BE GIVEN ACCORDING$ TO THOSE THAT WERE NUMBERED OF HIM.M# 55 NOTWITHSTANDING THE LAND SHALL BE DIVIDED BY LOT: ACCORDING TO THE NAMESO3 OF THE TRIBES OF THEIR FATHERS THEY SHALL INHERIT.AI# 56 ACCORDING TO THE LOT SHALL THE POSSESSION THEREOF BE DIVIDED BETWEENA MANY AND FEW.E# 57 AND THESE ARE THEY THAT WERE NUMBERED OF THE LEVITES AFTER THEIRN FAMILIES: OF GERSHON, THE FAMILY OF THE GERSHONITES: OF KOHATH, THE FAMILY OF8 THE KOHATHITES: OF MERARI, THE FAMILY OF THE MERARITES.K# 58 THESE ARE THE FAMILIES OF THE LEVITES: THE FAMILY OF THE LIBNITES, THEH FAMILY OF THE HEBRONITES, THE FAMILY OF THE MAHLITES, THE FAMILY OF THE@ MUSHITES, THE FAMILY OF THE KORATHITES. AND KOHATH BEGAT AMRAM.M# 59 AND THE NAME OF AMRAMS WIFE WAS JOCHEBED, THE DAUGHTER OF LEVI, WHOM HER K MOTHER BARE TO LEVI IN EGYPT: AND SHE BARE UNTO AMRAM AARON AND MOSES, AND MIRIAM THEIR SISTER.TD# 60 AND UNTO AARON WAS BORN NADAB, AND ABIHU, ELEAZAR, AND ITHAMAR.H# 61 AND NADAB AND ABIHU DIED, WHEN THEY OFFERED STRANGE FIRE BEFORE THE LORD.M# 62 AND THOSE THAT WERE NUMBERED OF THEM WERE TWENTY AND THREE THOUSAND, ALLFH MALES FROM A MONTH OLD AND UPWARD: FOR THEY WERE NOT NUMBERED AMONG THEJ CHILDREN OF ISRAEL, BECAUSE THERE WAS NO INHERITANCE GIVEN THEM AMONG THE CHILDREN OF ISRAEL.K# 63 THESE ARE THEY THAT WERE NUMBERED BY MOSES AND ELEAZAR THE PRIEST, WHOSN NUMBERED THE CHILDREN OF ISRAEL IN THE PLAINS OF MOAB BY JORDAN NEAR JERICHO.I# 64 BUT AMONG THESE THERE WAS NOT A MAN OF THEM WHOM MOSES AND AARON THENM PRIEST NUMBERED, WHEN THEY NUMBERED THE CHILDREN OF ISRAEL IN THE WILDERNESST OF SINAI.L# 65 FOR THE LORD HAD SAID OF THEM, THEY SHALL SURELY DIE IN THE WILDERNESS.K AND THERE WAS NOT LEFT A MAN OF THEM, SAVE CALEB THE SON OF JEPHUNNEH, ANDA JOSHUA THE SON OF NUN.R = CHAPTER 27 EH# 1 THEN CAME THE DAUGHTERS OF ZELOPHEHAD, THE SON OF HEPHER, THE SON OFL GILEAD, THE SON OF MACHIR, THE SON OF MANASSEH, OF THE FAMILIES OF MANASSEHK THE SON OF JOSEPH: AND THESE ARE THE NAMES OF HIS DAUGHTERS; MAHLAH, NOAH,S$ AND HOGLAH, AND MILCAH, AND TIRZAH.J# 2 AND THEY STOOD BEFORE MOSES, AND BEFORE ELEAZAR THE PRIEST, AND BEFOREK THE PRINCES AND ALL THE CONGREGATION, BY THE DOOR OF THE TABERNACLE OF THEA CONGREGATION, SAYING,L# 3 OUR FATHER DIED IN THE W00b+)D%5%T6%! !ILDERNESS, AND HE WAS NOT IN THE COMPANY OF THEML THAT GATHERED THEMSELVES TOGETHER AGAINST THE LORD IN THE COMPANY OF KORAH;* BUT DIED IN HIS OWN SIN, AND HAD NO SONS.I# 4 WHY SHOULD THE NAME OF OUR FATHER BE DONE AWAY FROM AMONG HIS FAMILY,HF BECAUSE HE HATH NO SON? GIVE UNTO US THEREFORE A POSSESSION AMONG THE BRETHREN OF OUR FATHER.2# 5 AND MOSES BROUGHT THEIR CAUSE BEFORE THE LORD.*# 6 AND THE LORD SPAKE UNTO MOSES, SAYING,J# 7 THE DAUGHTERS OF ZELOPHEHAD SPEAK RIGHT: THOU SHALT SURELY GIVE THEM AJ POSSESSION OF AN INHERITANCE AMONG THEIR FATHERS BRETHREN; AND THOU SHALT9 CAUSE THE INHERITANCE OF THEIR FATHER TO PASS UNTO THEM.NK# 8 AND THOU SHALT SPEAK UNTO THE CHILDREN OF ISRAEL, SAYING, IF A MAN DIE, F AND HAVE NO SON, THEN YE SHALL CAUSE HIS INHERITANCE TO PASS UNTO HIS DAUGHTER.K# 9 AND IF HE HAVE NO DAUGHTER, THEN YE SHALL GIVE HIS INHERITANCE UNTO HIS BRETHREN.L# 10 AND IF HE HAVE NO BRETHREN, THEN YE SHALL GIVE HIS INHERITANCE UNTO HIS FATHERS BRETHREN.K# 11 AND IF HIS FATHER HAVE NO BRETHREN, THEN YE SHALL GIVE HIS INHERITANCE M UNTO HIS KINSMAN THAT IS NEXT TO HIM OF HIS FAMILY, AND HE SHALL POSSESS IT:HJ AND IT SHALL BE UNTO THE CHILDREN OF ISRAEL A STATUTE OF JUDGMENT, AS THE LORD COMMANDED MOSES.J# 12 AND THE LORD SAID UNTO MOSES, GET THEE UP INTO THIS MOUNT ABARIM, AND= SEE THE LAND WHICH I HAVE GIVEN UNTO THE CHILDREN OF ISRAEL. M# 13 AND WHEN THOU HAST SEEN IT, THOU ALSO SHALT BE GATHERED UNTO THY PEOPLE,I# AS AARON THY BROTHER WAS GATHERED. H# 14 FOR YE REBELLED AGAINST MY COMMANDMENT IN THE DESERT OF ZIN, IN THEK STRIFE OF THE CONGREGATION, TO SANCTIFY ME AT THE WATER BEFORE THEIR EYES:TA THAT IS THE WATER OF MERIBAH IN KADESH IN THE WILDERNESS OF ZIN.E+# 15 AND MOSES SPAKE UNTO THE LORD, SAYING,TJ# 16 LET THE LORD, THE GOD OF THE SPIRITS OF ALL FLESH, SET A MAN OVER THE CONGREGATION,M# 17 WHICH MAY GO OUT BEFORE THEM, AND WHICH MAY GO IN BEFORE THEM, AND WHICHOM MAY LEAD THEM OUT, AND WHICH MAY BRING THEM IN; THAT THE CONGREGATION OF THE4- LORD BE NOT AS SHEEP WHICH HAVE NO SHEPHERD.DL# 18 AND THE LORD SAID UNTO MOSES, TAKE THEE JOSHUA THE SON OF NUN, A MAN IN1 WHOM IS THE SPIRIT, AND LAY THINE HAND UPON HIM; L# 19 AND SET HIM BEFORE ELEAZAR THE PRIEST, AND BEFORE ALL THE CONGREGATION;& AND GIVE HIM A CHARGE IN THEIR SIGHT.C# 20 AND THOU SHALT PUT SOME OF THINE HONOUR UPON HIM, THAT ALL THEM8 CONGREGATION OF THE CHILDREN OF ISRAEL MAY BE OBEDIENT.L# 21 AND HE SHALL STAND BEFORE ELEAZAR THE PRIEST, WHO SHALL ASK COUNSEL FORJ HIM AFTER THE JUDGMENT OF URIM BEFORE THE LORD: AT HIS WORD SHALL THEY GOJ OUT, AND AT HIS WORD THEY SHALL COME IN, BOTH HE, AND ALL THE CHILDREN OF, ISRAEL WITH HIM, EVEN ALL THE CONGREGATION.M# 22 AND MOSES DID AS THE LORD COMMANDED HIM: AND HE TOOK JOSHUA, AND SET HIM < BEFORE ELEAZAR THE PRIEST, AND BEFORE ALL THE CONGREGATION:G# 23 AND HE LAID HIS HANDS UPON HIM, AND GAVE HIM A CHARGE, AS THE LORDR COMMANDED BY THE HAND OF MOSES. = CHAPTER 28 O*# 1 AND THE LORD SPAKE UNTO MOSES, SAYING,J# 2 COMMAND THE CHILDREN OF ISRAEL, AND SAY UNTO THEM, MY OFFERING, AND MYK BREAD FOR MY SACRIFICES MADE BY FIRE, FOR A SWEET SAVOUR UNTO ME, SHALL YE . OBSERVE TO OFFER UNTO ME IN THEIR DUE SEASON.L# 3 AND THOU SHALT SAY UNTO THEM, THIS IS THE OFFERING MADE BY FIRE WHICH YEK SHALL OFFER UNTO THE LORD; TWO LAMBS OF THE FIRST YEAR WITHOUT SPOT DAY BY % DAY, FOR A CONTINUAL BURNT OFFERING. J# 4 THE ONE LAMB SHALT THOU OFFER IN THE MORNING, AND THE OTHER LAMB SHALT THOU OFFER AT EVEN;K# 5 AND A TENTH PART OF AN EPHAH OF FLOUR FOR A MEAT OFFERING, MINGLED WITHF) THE FOURTH PART OF AN HIN OF BEATEN OIL.DM# 6 IT IS A CONTINUAL BURNT OFFERING, WHICH WAS ORDAINED IN MOUNT SINAI FOR AT6 SWEET SAVOUR, A SACRIFICE MADE BY FIRE UNTO THE LORD.M# 7 AND THE DRINK OFFERING THEREOF SHALL BE THE FOURTH PART OF AN HIN FOR THEFJ ONE LAMB: IN THE HOLY PLACE SHALT THOU CAUSE THE STRONG WINE TO BE POURED$ UNTO THE LORD FOR A DRINK OFFERING.L# 8 AND THE OTHER LAMB SHALT THOU OFFER AT EVEN: AS THE MEAT OFFERING OF THEM MORNING, AND AS THE D00b+*<%X>%+%O-%TADATADATARINK OFFERING THEREOF, THOU SHALT OFFER IT, A SACRIFICEO/ MADE BY FIRE, OF A SWEET SAVOUR UNTO THE LORD.UL# 9 AND ON THE SABBATH DAY TWO LAMBS OF THE FIRST YEAR WITHOUT SPOT, AND TWOJ TENTH DEALS OF FLOUR FOR A MEAT OFFERING, MINGLED WITH OIL, AND THE DRINK OFFERING THEREOF:L# 10 THIS IS THE BURNT OFFERING OF EVERY SABBATH, BESIDE THE CONTINUAL BURNT" OFFERING, AND HIS DRINK OFFERING.I# 11 AND IN THE BEGINNINGS OF YOUR MONTHS YE SHALL OFFER A BURNT OFFERINGEN UNTO THE LORD; TWO YOUNG BULLOCKS, AND ONE RAM, SEVEN LAMBS OF THE FIRST YEAR WITHOUT SPOT;J# 12 AND THREE TENTH DEALS OF FLOUR FOR A MEAT OFFERING, MINGLED WITH OIL,K FOR ONE BULLOCK; AND TWO TENTH DEALS OF FLOUR FOR A MEAT OFFERING, MINGLED  WITH OIL, FOR ONE RAM;LK# 13 AND A SEVERAL TENTH DEAL OF FLOUR MINGLED WITH OIL FOR A MEAT OFFERINGNK UNTO ONE LAMB; FOR A BURNT OFFERING OF A SWEET SAVOUR, A SACRIFICE MADE BYR FIRE UNTO THE LORD.K# 14 AND THEIR DRINK OFFERINGS SHALL BE HALF AN HIN OF WINE UNTO A BULLOCK,WL AND THE THIRD PART OF AN HIN UNTO A RAM, AND A FOURTH PART OF AN HIN UNTO AM LAMB: THIS IS THE BURNT OFFERING OF EVERY MONTH THROUGHOUT THE MONTHS OF THER YEAR.G# 15 AND ONE KID OF THE GOATS FOR A SIN OFFERING UNTO THE LORD SHALL BEIF OFFERED, BESIDE THE CONTINUAL BURNT OFFERING, AND HIS DRINK OFFERING.H# 16 AND IN THE FOURTEENTH DAY OF THE FIRST MONTH IS THE PASSOVER OF THE LORD.J# 17 AND IN THE FIFTEENTH DAY OF THIS MONTH IS THE FEAST: SEVEN DAYS SHALL UNLEAVENED BREAD BE EATEN.OL# 18 IN THE FIRST DAY SHALL BE AN HOLY CONVOCATION; YE SHALL DO NO MANNER OF SERVILE WORK THEREIN:J# 19 BUT YE SHALL OFFER A SACRIFICE MADE BY FIRE FOR A BURNT OFFERING UNTON THE LORD; TWO YOUNG BULLOCKS, AND ONE RAM, AND SEVEN LAMBS OF THE FIRST YEAR:( THEY SHALL BE UNTO YOU WITHOUT BLEMISH:L# 20 AND THEIR MEAT OFFERING SHALL BE OF FLOUR MINGLED WITH OIL: THREE TENTHC DEALS SHALL YE OFFER FOR A BULLOCK, AND TWO TENTH DEALS FOR A RAM;OI# 21 A SEVERAL TENTH DEAL SHALT THOU OFFER FOR EVERY LAMB, THROUGHOUT THEH SEVEN LAMBS:LC# 22 AND ONE GOAT FOR A SIN OFFERING, TO MAKE AN ATONEMENT FOR YOU.RL# 23 YE SHALL OFFER THESE BESIDE THE BURNT OFFERING IN THE MORNING, WHICH IS FOR A CONTINUAL BURNT OFFERING.K# 24 AFTER THIS MANNER YE SHALL OFFER DAILY, THROUGHOUT THE SEVEN DAYS, THEHN MEAT OF THE SACRIFICE MADE BY FIRE, OF A SWEET SAVOUR UNTO THE LORD: IT SHALLH BE OFFERED BESIDE THE CONTINUAL BURNT OFFERING, AND HIS DRINK OFFERING.M# 25 AND ON THE SEVENTH DAY YE SHALL HAVE AN HOLY CONVOCATION; YE SHALL DO NOH SERVILE WORK.J# 26 ALSO IN THE DAY OF THE FIRSTFRUITS, WHEN YE BRING A NEW MEAT OFFERINGN UNTO THE LORD, AFTER YOUR WEEKS BE OUT, YE SHALL HAVE AN HOLY CONVOCATION; YE SHALL DO NO SERVILE WORK:L# 27 BUT YE SHALL OFFER THE BURNT OFFERING FOR A SWEET SAVOUR UNTO THE LORD;< TWO YOUNG BULLOCKS, ONE RAM, SEVEN LAMBS OF THE FIRST YEAR;I# 28 AND THEIR MEAT OFFERING OF FLOUR MINGLED WITH OIL, THREE TENTH DEALSS0 UNTO ONE BULLOCK, TWO TENTH DEALS UNTO ONE RAM,D# 29 A SEVERAL TENTH DEAL UNTO ONE LAMB, THROUGHOUT THE SEVEN LAMBS;<# 30 AND ONE KID OF THE GOATS, TO MAKE AN ATONEMENT FOR YOU.J# 31 YE SHALL OFFER THEM BESIDE THE CONTINUAL BURNT OFFERING, AND HIS MEATN OFFERING, (THEY SHALL BE UNTO YOU WITHOUT BLEMISH) AND THEIR DRINK OFFERINGS. = CHAPTER 29 SM# 1 AND IN THE SEVENTH MONTH, ON THE FIRST DAY OF THE MONTH, YE SHALL HAVE ANAJ HOLY CONVOCATION; YE SHALL DO NO SERVILE WORK: IT IS A DAY OF BLOWING THE TRUMPETS UNTO YOU.,M# 2 AND YE SHALL OFFER A BURNT OFFERING FOR A SWEET SAVOUR UNTO THE LORD; ONEHK YOUNG BULLOCK, ONE RAM, AND SEVEN LAMBS OF THE FIRST YEAR WITHOUT BLEMISH: K# 3 AND THEIR MEAT OFFERING SHALL BE OF FLOUR MINGLED WITH OIL, THREE TENTHE4 DEALS FOR A BULLOCK, AND TWO TENTH DEALS FOR A RAM,@# 4 AND ONE TENTH DEAL FOR ONE LAMB, THROUGHOUT THE SEVEN LAMBS:I# 5 AND ONE KID OF THE GOATS FOR A SIN OFFERING, TO MAKE AN ATONEMENT FORO YOU:HJ# 6 BESIDE THE BURNT OFFERING OF THE MONTH, AND HIS MEAT OFFERING, AND THEH DAILY BURNT OFFERING, AND HIS MEAT OFFERING, AND THEIR DRINK OFFERINGS,J ACCORDING UNTO THEI00b +)D%5%T6%! !R MANNER, FOR A SWEET SAVOUR, A SACRIFICE MADE BY FIRE UNTO THE LORD.ID# 7 AND YE SHALL HAVE ON THE TENTH DAY OF THIS SEVENTH MONTH AN HOLYG CONVOCATION; AND YE SHALL AFFLICT YOUR SOULS: YE SHALL NOT DO ANY WORKF THEREIN:,M# 8 BUT YE SHALL OFFER A BURNT OFFERING UNTO THE LORD FOR A SWEET SAVOUR; ONETN YOUNG BULLOCK, ONE RAM, AND SEVEN LAMBS OF THE FIRST YEAR; THEY SHALL BE UNTO YOU WITHOUT BLEMISH:DK# 9 AND THEIR MEAT OFFERING SHALL BE OF FLOUR MINGLED WITH OIL, THREE TENTH,4 DEALS TO A BULLOCK, AND TWO TENTH DEALS TO ONE RAM,C# 10 A SEVERAL TENTH DEAL FOR ONE LAMB, THROUGHOUT THE SEVEN LAMBS:EH# 11 ONE KID OF THE GOATS FOR A SIN OFFERING; BESIDE THE SIN OFFERING OFN ATONEMENT, AND THE CONTINUAL BURNT OFFERING, AND THE MEAT OFFERING OF IT, AND THEIR DRINK OFFERINGS.RH# 12 AND ON THE FIFTEENTH DAY OF THE SEVENTH MONTH YE SHALL HAVE AN HOLYM CONVOCATION; YE SHALL DO NO SERVILE WORK, AND YE SHALL KEEP A FEAST UNTO THEF LORD SEVEN DAYS:LH# 13 AND YE SHALL OFFER A BURNT OFFERING, A SACRIFICE MADE BY FIRE, OF AL SWEET SAVOUR UNTO THE LORD; THIRTEEN YOUNG BULLOCKS, TWO RAMS, AND FOURTEEN8 LAMBS OF THE FIRST YEAR; THEY SHALL BE WITHOUT BLEMISH:L# 14 AND THEIR MEAT OFFERING SHALL BE OF FLOUR MINGLED WITH OIL, THREE TENTHK DEALS UNTO EVERY BULLOCK OF THE THIRTEEN BULLOCKS, TWO TENTH DEALS TO EACH  RAM OF THE TWO RAMS,HA# 15 AND A SEVERAL TENTH DEAL TO EACH LAMB OF THE FOURTEEN LAMBS:AL# 16 AND ONE KID OF THE GOATS FOR A SIN OFFERING; BESIDE THE CONTINUAL BURNT5 OFFERING, HIS MEAT OFFERING, AND HIS DRINK OFFERING.EJ# 17 AND ON THE SECOND DAY YE SHALL OFFER TWELVE YOUNG BULLOCKS, TWO RAMS,/ FOURTEEN LAMBS OF THE FIRST YEAR WITHOUT SPOT:ML# 18 AND THEIR MEAT OFFERING AND THEIR DRINK OFFERINGS FOR THE BULLOCKS, FORK THE RAMS, AND FOR THE LAMBS, SHALL BE ACCORDING TO THEIR NUMBER, AFTER THEE MANNER:L# 19 AND ONE KID OF THE GOATS FOR A SIN OFFERING; BESIDE THE CONTINUAL BURNTD OFFERING, AND THE MEAT OFFERING THEREOF, AND THEIR DRINK OFFERINGS.J# 20 AND ON THE THIRD DAY ELEVEN BULLOCKS, TWO RAMS, FOURTEEN LAMBS OF THE FIRST YEAR WITHOUT BLEMISH;L# 21 AND THEIR MEAT OFFERING AND THEIR DRINK OFFERINGS FOR THE BULLOCKS, FORK THE RAMS, AND FOR THE LAMBS, SHALL BE ACCORDING TO THEIR NUMBER, AFTER THEE MANNER:J# 22 AND ONE GOAT FOR A SIN OFFERING; BESIDE THE CONTINUAL BURNT OFFERING,/ AND HIS MEAT OFFERING, AND HIS DRINK OFFERING.OL# 23 AND ON THE FOURTH DAY TEN BULLOCKS, TWO RAMS, AND FOURTEEN LAMBS OF THE FIRST YEAR WITHOUT BLEMISH:L# 24 THEIR MEAT OFFERING AND THEIR DRINK OFFERINGS FOR THE BULLOCKS, FOR THEG RAMS, AND FOR THE LAMBS, SHALL BE ACCORDING TO THEIR NUMBER, AFTER THER MANNER:L# 25 AND ONE KID OF THE GOATS FOR A SIN OFFERING; BESIDE THE CONTINUAL BURNT5 OFFERING, HIS MEAT OFFERING, AND HIS DRINK OFFERING.AL# 26 AND ON THE FIFTH DAY NINE BULLOCKS, TWO RAMS, AND FOURTEEN LAMBS OF THE FIRST YEAR WITHOUT SPOT:GL# 27 AND THEIR MEAT OFFERING AND THEIR DRINK OFFERINGS FOR THE BULLOCKS, FORK THE RAMS, AND FOR THE LAMBS, SHALL BE ACCORDING TO THEIR NUMBER, AFTER THEF MANNER:J# 28 AND ONE GOAT FOR A SIN OFFERING; BESIDE THE CONTINUAL BURNT OFFERING,/ AND HIS MEAT OFFERING, AND HIS DRINK OFFERING.OM# 29 AND ON THE SIXTH DAY EIGHT BULLOCKS, TWO RAMS, AND FOURTEEN LAMBS OF THE  FIRST YEAR WITHOUT BLEMISH:L# 30 AND THEIR MEAT OFFERING AND THEIR DRINK OFFERINGS FOR THE BULLOCKS, FORK THE RAMS, AND FOR THE LAMBS, SHALL BE ACCORDING TO THEIR NUMBER, AFTER THEK MANNER:J# 31 AND ONE GOAT FOR A SIN OFFERING; BESIDE THE CONTINUAL BURNT OFFERING,+ HIS MEAT OFFERING, AND HIS DRINK OFFERING.OK# 32 AND ON THE SEVENTH DAY SEVEN BULLOCKS, TWO RAMS, AND FOURTEEN LAMBS OFA THE FIRST YEAR WITHOUT BLEMISH:L# 33 AND THEIR MEAT OFFERING AND THEIR DRINK OFFERINGS FOR THE BULLOCKS, FORK THE RAMS, AND FOR THE LAMBS, SHALL BE ACCORDING TO THEIR NUMBER, AFTER THEI MANNER:J# 34 AND ONE GOAT FOR A SIN OFFERING; BESIDE THE CONTINUAL BURNT OFFERING,+ HIS MEAT OFFERING, AND HIS DRINK OFFERING.DF# 35 ON THE EIGHTH DAY YE SHALL HAVE A SOLEMN ASSEMBLY: YE SHALL DO NO SERVILE WORK THEREIN:H00b(+*<%X>%+%O-%TADATADATA# 36 BUT YE SHALL OFFER A BURNT OFFERING, A SACRIFICE MADE BY FIRE, OF AK SWEET SAVOUR UNTO THE LORD: ONE BULLOCK, ONE RAM, SEVEN LAMBS OF THE FIRSTF YEAR WITHOUT BLEMISH:K# 37 THEIR MEAT OFFERING AND THEIR DRINK OFFERINGS FOR THE BULLOCK, FOR THEIN RAM, AND FOR THE LAMBS, SHALL BE ACCORDING TO THEIR NUMBER, AFTER THE MANNER:J# 38 AND ONE GOAT FOR A SIN OFFERING; BESIDE THE CONTINUAL BURNT OFFERING,/ AND HIS MEAT OFFERING, AND HIS DRINK OFFERING.LK# 39 THESE THINGS YE SHALL DO UNTO THE LORD IN YOUR SET FEASTS, BESIDE YOUR J VOWS, AND YOUR FREEWILL OFFERINGS, FOR YOUR BURNT OFFERINGS, AND FOR YOURL MEAT OFFERINGS, AND FOR YOUR DRINK OFFERINGS, AND FOR YOUR PEACE OFFERINGS.I# 40 AND MOSES TOLD THE CHILDREN OF ISRAEL ACCORDING TO ALL THAT THE LORD COMMANDED MOSES.A = CHAPTER 30 CK# 1 AND MOSES SPAKE UNTO THE HEADS OF THE TRIBES CONCERNING THE CHILDREN OFIA ISRAEL, SAYING, THIS IS THE THING WHICH THE LORD HATH COMMANDED.NL# 2 IF A MAN VOW A VOW UNTO THE LORD, OR SWEAR AN OATH TO BIND HIS SOUL WITHG A BOND; HE SHALL NOT BREAK HIS WORD, HE SHALL DO ACCORDING TO ALL THATT PROCEEDETH OUT OF HIS MOUTH. H# 3 IF A WOMAN ALSO VOW A VOW UNTO THE LORD, AND BIND HERSELF BY A BOND,) BEING IN HER FATHERS HOUSE IN HER YOUTH;CJ# 4 AND HER FATHER HEAR HER VOW, AND HER BOND WHEREWITH SHE HATH BOUND HERJ SOUL, AND HER FATHER SHALL HOLD HIS PEACE AT HER; THEN ALL HER VOWS SHALLE STAND, AND EVERY BOND WHEREWITH SHE HATH BOUND HER SOUL SHALL STAND.NM# 5 BUT IF HER FATHER DISALLOW HER IN THE DAY THAT HE HEARETH; NOT ANY OF HERHN VOWS, OR OF HER BONDS WHEREWITH SHE HATH BOUND HER SOUL, SHALL STAND: AND THE; LORD SHALL FORGIVE HER, BECAUSE HER FATHER DISALLOWED HER.BM# 6 AND IF SHE HAD AT ALL AN HUSBAND, WHEN SHE VOWED, OR UTTERED OUGHT OUT OF ( HER LIPS, WHEREWITH SHE BOUND HER SOUL;J# 7 AND HER HUSBAND HEARD IT, AND HELD HIS PEACE AT HER IN THE DAY THAT HEK HEARD IT: THEN HER VOWS SHALL STAND, AND HER BONDS WHEREWITH SHE BOUND HERL SOUL SHALL STAND.J# 8 BUT IF HER HUSBAND DISALLOWED HER ON THE DAY THAT HE HEARD IT; THEN HEN SHALL MAKE HER VOW WHICH SHE VOWED, AND THAT WHICH SHE UTTERED WITH HER LIPS,N WHEREWITH SHE BOUND HER SOUL, OF NONE EFFECT: AND THE LORD SHALL FORGIVE HER.I# 9 BUT EVERY VOW OF A WIDOW, AND OF HER THAT IS DIVORCED, WHEREWITH THEYE1 HAVE BOUND THEIR SOULS, SHALL STAND AGAINST HER.RM# 10 AND IF SHE VOWED IN HER HUSBANDS HOUSE, OR BOUND HER SOUL BY A BOND WITHA AN OATH;NL# 11 AND HER HUSBAND HEARD IT, AND HELD HIS PEACE AT HER, AND DISALLOWED HERK NOT: THEN ALL HER VOWS SHALL STAND, AND EVERY BOND WHEREWITH SHE BOUND HERH SOUL SHALL STAND.M# 12 BUT IF HER HUSBAND HATH UTTERLY MADE THEM VOID ON THE DAY HE HEARD THEM;FM THEN WHATSOEVER PROCEEDED OUT OF HER LIPS CONCERNING HER VOWS, OR CONCERNINGTL THE BOND OF HER SOUL, SHALL NOT STAND: HER HUSBAND HATH MADE THEM VOID; AND THE LORD SHALL FORGIVE HER.K# 13 EVERY VOW, AND EVERY BINDING OATH TO AFFLICT THE SOUL, HER HUSBAND MAYD/ ESTABLISH IT, OR HER HUSBAND MAY MAKE IT VOID. I# 14 BUT IF HER HUSBAND ALTOGETHER HOLD HIS PEACE AT HER FROM DAY TO DAY;RL THEN HE ESTABLISHETH ALL HER VOWS, OR ALL HER BONDS, WHICH ARE UPON HER: HEK CONFIRMETH THEM, BECAUSE HE HELD HIS PEACE AT HER IN THE DAY THAT HE HEARD  THEM.K# 15 BUT IF HE SHALL ANY WAYS MAKE THEM VOID AFTER THAT HE HATH HEARD THEM; ! THEN HE SHALL BEAR HER INIQUITY.DJ# 16 THESE ARE THE STATUTES, WHICH THE LORD COMMANDED MOSES, BETWEEN A MANM AND HIS WIFE, BETWEEN THE FATHER AND HIS DAUGHTER, BEING YET IN HER YOUTH IND HER FATHERS HOUSE.U = CHAPTER 31 R*# 1 AND THE LORD SPAKE UNTO MOSES, SAYING,L# 2 AVENGE THE CHILDREN OF ISRAEL OF THE MIDIANITES: AFTERWARD SHALT THOU BE GATHERED UNTO THY PEOPLE.L# 3 AND MOSES SPAKE UNTO THE PEOPLE, SAYING, ARM SOME OF YOURSELVES UNTO THEL WAR, AND LET THEM GO AGAINST THE MIDIANITES, AND AVENGE THE LORD OF MIDIAN.L# 4 OF EVERY TRIBE A THOUSAND, THROUGHOUT ALL THE TRIBES OF ISRAEL, SHALL YE SEND TO THE WAR.SI# 5 SO THERE WERE DELIVERED OUT OF THE THOUSANDS OF ISRAEL, A THOUSAND OFR, EVERY TRIBE, TWELVE THOUSAND ARMED FOR WAR.G00b0+)D%5%T6%! !# 6 AND MOSES SENT THEM TO THE WAR, A THOUSAND OF EVERY TRIBE, THEM ANDMB PHINEHAS THE SON OF ELEAZAR THE PRIEST, TO THE WAR, WITH THE HOLY3 INSTRUMENTS, AND THE TRUMPETS TO BLOW IN HIS HAND.YL# 7 AND THEY WARRED AGAINST THE MIDIANITES, AS THE LORD COMMANDED MOSES; AND THEY SLEW ALL THE MALES.EH# 8 AND THEY SLEW THE KINGS OF MIDIAN, BESIDE THE REST OF THEM THAT WEREI SLAIN; NAMELY, EVI, AND REKEM, AND ZUR, AND HUR, AND REBA, FIVE KINGS OF > MIDIAN: BALAAM ALSO THE SON OF BEOR THEY SLEW WITH THE SWORD.I# 9 AND THE CHILDREN OF ISRAEL TOOK ALL THE WOMEN OF MIDIAN CAPTIVES, ANDII THEIR LITTLE ONES, AND TOOK THE SPOIL OF ALL THEIR CATTLE, AND ALL THEIRS FLOCKS, AND ALL THEIR GOODS.IM# 10 AND THEY BURNT ALL THEIR CITIES WHEREIN THEY DWELT, AND ALL THEIR GOODLYE CASTLES, WITH FIRE.F# 11 AND THEY TOOK ALL THE SPOIL, AND ALL THE PREY, BOTH OF MEN AND OF BEASTS.L# 12 AND THEY BROUGHT THE CAPTIVES, AND THE PREY, AND THE SPOIL, UNTO MOSES,M AND ELEAZAR THE PRIEST, AND UNTO THE CONGREGATION OF THE CHILDREN OF ISRAEL, G UNTO THE CAMP AT THE PLAINS OF MOAB, WHICH ARE BY JORDAN NEAR JERICHO.TB# 13 AND MOSES, AND ELEAZAR THE PRIEST, AND ALL THE PRINCES OF THE8 CONGREGATION, WENT FORTH TO MEET THEM WITHOUT THE CAMP.I# 14 AND MOSES WAS WROTH WITH THE OFFICERS OF THE HOST, WITH THE CAPTAINS H OVER THOUSANDS, AND CAPTAINS OVER HUNDREDS, WHICH CAME FROM THE BATTLE.A# 15 AND MOSES SAID UNTO THEM, HAVE YE SAVED ALL THE WOMEN ALIVE?IH# 16 BEHOLD, THESE CAUSED THE CHILDREN OF ISRAEL, THROUGH THE COUNSEL OFM BALAAM, TO COMMIT TRESPASS AGAINST THE LORD IN THE MATTER OF PEOR, AND THERE 1 WAS A PLAGUE AMONG THE CONGREGATION OF THE LORD.EH# 17 NOW THEREFORE KILL EVERY MALE AMONG THE LITTLE ONES, AND KILL EVERY- WOMAN THAT HATH KNOWN MAN BY LYING WITH HIM.HM# 18 BUT ALL THE WOMEN CHILDREN, THAT HAVE NOT KNOWN A MAN BY LYING WITH HIM,H KEEP ALIVE FOR YOURSELVES.BK# 19 AND DO YE ABIDE WITHOUT THE CAMP SEVEN DAYS: WHOSOEVER HATH KILLED ANY N PERSON, AND WHOSOEVER HATH TOUCHED ANY SLAIN, PURIFY BOTH YOURSELVES AND YOUR3 CAPTIVES ON THE THIRD DAY, AND ON THE SEVENTH DAY. M# 20 AND PURIFY ALL YOUR RAIMENT, AND ALL THAT IS MADE OF SKINS, AND ALL WORKT, OF GOATS HAIR, AND ALL THINGS MADE OF WOOD.F# 21 AND ELEAZAR THE PRIEST SAID UNTO THE MEN OF WAR WHICH WENT TO THEI BATTLE, THIS IS THE ORDINANCE OF THE LAW WHICH THE LORD COMMANDED MOSES;KI# 22 ONLY THE GOLD, AND THE SILVER, THE BRASS, THE IRON, THE TIN, AND THES LEAD,I# 23 EVERY THING THAT MAY ABIDE THE FIRE, YE SHALL MAKE IT GO THROUGH THE N FIRE, AND IT SHALL BE CLEAN: NEVERTHELESS IT SHALL BE PURIFIED WITH THE WATERN OF SEPARATION: AND ALL THAT ABIDETH NOT THE FIRE YE SHALL MAKE GO THROUGH THE WATER. G# 24 AND YE SHALL WASH YOUR CLOTHES ON THE SEVENTH DAY, AND YE SHALL BE 2 CLEAN, AND AFTERWARD YE SHALL COME INTO THE CAMP.+# 25 AND THE LORD SPAKE UNTO MOSES, SAYING,DM# 26 TAKE THE SUM OF THE PREY THAT WAS TAKEN, BOTH OF MAN AND OF BEAST, THOU,NC AND ELEAZAR THE PRIEST, AND THE CHIEF FATHERS OF THE CONGREGATION:KL# 27 AND DIVIDE THE PREY INTO TWO PARTS; BETWEEN THEM THAT TOOK THE WAR UPON@ THEM, WHO WENT OUT TO BATTLE, AND BETWEEN ALL THE CONGREGATION:I# 28 AND LEVY A TRIBUTE UNTO THE LORD OF THE MEN OF WAR WHICH WENT OUT TO N BATTLE: ONE SOUL OF FIVE HUNDRED, BOTH OF THE PERSONS, AND OF THE BEEVES, AND OF THE ASSES, AND OF THE SHEEP:M# 29 TAKE IT OF THEIR HALF, AND GIVE IT UNTO ELEAZAR THE PRIEST, FOR AN HEAVEH OFFERING OF THE LORD.H# 30 AND OF THE CHILDREN OF ISRAELS HALF, THOU SHALT TAKE ONE PORTION OFN FIFTY, OF THE PERSONS, OF THE BEEVES, OF THE ASSES, AND OF THE FLOCKS, OF ALLK MANNER OF BEASTS, AND GIVE THEM UNTO THE LEVITES, WHICH KEEP THE CHARGE OFV THE TABERNACLE OF THE LORD.F# 31 AND MOSES AND ELEAZAR THE PRIEST DID AS THE LORD COMMANDED MOSES.G# 32 AND THE BOOTY, BEING THE REST OF THE PREY WHICH THE MEN OF WAR HAD:H CAUGHT, WAS SIX HUNDRED THOUSAND AND SEVENTY THOUSAND AND FIVE THOUSAND SHEEP,O/# 33 AND THREESCORE AND TWELVE THOUSAND BEEVES, +# 34 AND THREESCORE AND ONE THOUSAND ASSES,L# 35 AND THIRTY AND TWO THOUSAND P00b8+*<%X>%+%O-%TADATADATAERSONS IN ALL, OF WOMEN THAT HAD NOT KNOWN MAN BY LYING WITH HIM.GM# 36 AND THE HALF, WHICH WAS THE PORTION OF THEM THAT WENT OUT TO WAR, WAS INRM NUMBER THREE HUNDRED THOUSAND AND SEVEN AND THIRTY THOUSAND AND FIVE HUNDRED2 SHEEP:BJ# 37 AND THE LORDS TRIBUTE OF THE SHEEP WAS SIX HUNDRED AND THREESCORE AND FIFTEEN.OL# 38 AND THE BEEVES WERE THIRTY AND SIX THOUSAND; OF WHICH THE LORDS TRIBUTE WAS THREESCORE AND TWELVE. L# 39 AND THE ASSES WERE THIRTY THOUSAND AND FIVE HUNDRED; OF WHICH THE LORDS TRIBUTE WAS THREESCORE AND ONE.J# 40 AND THE PERSONS WERE SIXTEEN THOUSAND; OF WHICH THE LORDS TRIBUTE WAS THIRTY AND TWO PERSONS.J# 41 AND MOSES GAVE THE TRIBUTE, WHICH WAS THE LORDS HEAVE OFFER ING, UNTO1 ELEAZAR THE PRIEST, AS THE LORD COMMANDED MOSES.UJ# 42 AND OF THE CHILDREN OF ISRAELS HALF, WHICH MOSES DIVIDED FROM THE MEN THAT WARRED,II# 43 (NOW THE HALF THAT PERTAINED UNTO THE CONGREGATION WAS THREE HUNDREDEH THOUSAND AND THIRTY THOUSAND AND SEVEN THOUSAND AND FIVE HUNDRED SHEEP,(# 44 AND THIRTY AND SIX THOUSAND BEEVES,0# 45 AND THIRTY THOUSAND ASSES AND FIVE HUNDRED,## 46 AND SIXTEEN THOUSAND PERSONS;) K# 47 EVEN OF THE CHILDREN OF ISRAELS HALF, MOSES TOOK ONE PORTION OF FIFTY,RI BOTH OF MAN AND OF BEAST, AND GAVE THEM UNTO THE LEVITES, WHICH KEPT THE C CHARGE OF THE TABERNACLE OF THE LORD; AS THE LORD COMMANDED MOSES. L# 48 AND THE OFFICERS WHICH WERE OVER THOUSANDS OF THE HOST, THE CAPTAINS OF; THOUSANDS, AND CAPTAINS OF HUNDREDS, CAME NEAR UNTO MOSES:FL# 49 AND THEY SAID UNTO MOSES, THY SERVANTS HAVE TAKEN THE SUM OF THE MEN OFE WAR WHICH ARE UNDER OUR CHARGE, AND THERE LACKETH NOT ONE MAN OF US.L# 50 WE HAVE THEREFORE BROUGHT AN OBLATION FOR THE LORD, WHAT EVERY MAN HATHG GOTTEN, OF JEWELS OF GOLD, CHAINS, AND BRACELETS, RINGS, EARRINGS, AND = TABLETS, TO MAKE AN ATONEMENT FOR OUR SOULS BEFORE THE LORD.MM# 51 AND MOSES AND ELEAZAR THE PRIEST TOOK THE GOLD OF THEM, EVEN ALL WROUGHTN JEWELS.J# 52 AND ALL THE GOLD OF THE OFFERING THAT THEY OFFERED UP TO THE LORD, OFH THE CAPTAINS OF THOUSANDS, AND OF THE CAPTAINS OF HUNDREDS, WAS SIXTEEN* THOUSAND SEVEN HUNDRED AND FIFTY SHEKELS.A# 53 (FOR THE MEN OF WAR HAD TAKEN SPOIL, EVERY MAN FOR HIMSELF.)RF# 54 AND MOSES AND ELEAZAR THE PRIEST TOOK THE GOLD OF THE CAPTAINS OFE THOUSANDS AND OF HUNDREDS, AND BROUGHT IT INTO THE TABERNACLE OF THEBI CONGREGATION, FOR A MEMORIAL FOR THE CHILDREN OF ISRAEL BEFORE THE LORD.E = CHAPTER 32 UG# 1 NOW THE CHILDREN OF REUBEN AND THE CHILDREN OF GAD HAD A VERY GREATPJ MULTITUDE OF CATTLE: AND WHEN THEY SAW THE LAND OF JAZER, AND THE LAND OF8 GILEAD, THAT, BEHOLD, THE PLACE WAS A PLACE FOR CATTLE;M# 2 THE CHILDREN OF GAD AND THE CHILDREN OF REUBEN CAME AND SPAKE UNTO MOSES,MM AND TO ELEAZAR THE PRIEST, AND UNTO THE PRINCES OF THE CONGREGATION, SAYING, L# 3 ATAROTH, AND DIBON, AND JAZER, AND NIMRAH, AND HESHBON, AND ELEALEH, AND SHEBAM, AND NEBO, AND BEON,L# 4 EVEN THE COUNTRY WHICH THE LORD SMOTE BEFORE THE CONGREGATION OF ISRAEL,4 IS A LAND FOR CATTLE, AND THY SERVANTS HAVE CATTLE:L# 5 WHEREFORE, SAID THEY, IF WE HAVE FOUND GRACE IN THY SIGHT, LET THIS LANDK BE GIVEN UNTO THY SERVANTS FOR A POSSESSION, AND BRING US NOT OVER JORDAN.OJ# 6 AND MOSES SAID UNTO THE CHILDREN OF GAD AND TO THE CHILDREN OF REUBEN,6 SHALL YOUR BRETHREN GO TO WAR, AND SHALL YE SIT HERE?H# 7 AND WHEREFORE DISCOURAGE YE THE HEART OF THE CHILDREN OF ISRAEL FROM9 GOING OVER INTO THE LAND WHICH THE LORD HATH GIVEN THEM?TH# 8 THUS DID YOUR FATHERS, WHEN I SENT THEM FROM KADESHBARNEA TO SEE THE LAND.K# 9 FOR WHEN THEY WENT UP UNTO THE VALLEY OF ESHCOL, AND SAW THE LAND, THEYTN DISCOURAGED THE HEART OF THE CHILDREN OF ISRAEL, THAT THEY SHOULD NOT GO INTO( THE LAND WHICH THE LORD HAD GIVEN THEM.I# 10 AND THE LORDS ANGER WAS KINDLED THE SAME TIME, AND HE SWARE, SAYING,NL# 11 SURELY NONE OF THE MEN THAT CAME UP OUT OF EGYPT, FROM TWENTY YEARS OLDK AND UPWARD, SHALL SEE THE LAND WHICH I SWARE UNTO ABRAHAM, UNTO ISAAC, AND6 UNTO JACOB; BECAUSE THEY HAVE NOT WHOLLY FOLLOWED ME:M# 12 SAVE CALEB THE SON OF J00b@+)D%5%T6%! !EPHUNNEH THE KENEZITE, AND JOSHUA THE SON OF NUN:A( FOR THEY HAVE WHOLLY FOLLOWED THE LORD.L# 13 AND THE LORDS ANGER WAS KINDLED AGAINST ISRAEL, AND HE MADE THEM WANDERL IN THE WILDERNESS FORTY YEARS, UNTIL ALL THE GENERATION, THAT HAD DONE EVIL( IN THE SIGHT OF THE LORD, WAS CONSUMED.G# 14 AND, BEHOLD, YE ARE RISEN UP IN YOUR FATHERS STEAD, AN INCREASE OFSG SINFUL MEN, TO AUGMENT YET THE FIERCE ANGER OF THE LORD TOWARD ISRAEL.OL# 15 FOR IF YE TURN AWAY FROM AFTER HIM, HE WILL YET AGAIN LEAVE THEM IN THE2 WILDERNESS; AND YE SHALL DESTROY ALL THIS PEOPLE.M# 16 AND THEY CAME NEAR UNTO HIM, AND SAID, WE WILL BUILD SHEEPFOLDS HERE FORN, OUR CATTLE, AND CITIES FOR OUR LITTLE ONES:H# 17 BUT WE OURSELVES WILL GO READY ARMED BEFORE THE CHILDREN OF ISRAEL,M UNTIL WE HAVE BROUGHT THEM UNTO THEIR PLACE: AND OUR LITTLE ONES SHALL DWELLA= IN THE FENCED CITIES BECAUSE OF THE INHABITANTS OF THE LAND.IJ# 18 WE WILL NOT RETURN UNTO OUR HOUSES, UNTIL THE CHILDREN OF ISRAEL HAVE% INHERITED EVERY MAN HIS INHERITANCE.EI# 19 FOR WE WILL NOT INHERIT WITH THEM ON YONDER SIDE JORDAN, OR FORWARD;AF BECAUSE OUR INHERITANCE IS FALLEN TO US ON THIS SIDE JORDAN EASTWARD.L# 20 AND MOSES SAID UNTO THEM, IF YE WILL DO THIS THING, IF YE WILL GO ARMED BEFORE THE LORD TO WAR,L# 21 AND WILL GO ALL OF YOU ARMED OVER JORDAN BEFORE THE LORD, UNTIL HE HATH( DRIVEN OUT HIS ENEMIES FROM BEFORE HIM,M# 22 AND THE LAND BE SUBDUED BEFORE THE LORD: THEN AFTERWARD YE SHALL RETURN,IL AND BE GUILTLESS BEFORE THE LORD, AND BEFORE ISRAEL; AND THIS LAND SHALL BE! YOUR POSSESSION BEFORE THE LORD.DK# 23 BUT IF YE WILL NOT DO SO, BEHOLD, YE HAVE SINNED AGAINST THE LORD: AND $ BE SURE YOUR SIN WILL FIND YOU OUT.L# 24 BUILD YOU CITIES FOR YOUR LITTLE ONES, AND FOLDS FOR YOUR SHEEP; AND DO- THAT WHICH HATH PROCEEDED OUT OF YOUR MOUTH.RI# 25 AND THE CHILDREN OF GAD AND THE CHILDREN OF REUBEN SPAKE UNTO MOSES,,4 SAYING, THY SERVANTS WILL DO AS MY LORD COMMANDETH.I# 26 OUR LITTLE ONES, OUR WIVES, OUR FLOCKS, AND ALL OUR CATTLE, SHALL BES THERE IN THE CITIES OF GILEAD:UI# 27 BUT THY SERVANTS WILL PASS OVER, EVERY MAN ARMED FOR WAR, BEFORE THEA" LORD TO BATTLE, AS MY LORD SAITH.J# 28 SO CONCERNING THEM MOSES COMMANDED ELEAZAR THE PRIEST, AND JOSHUA THEK SON OF NUN, AND THE CHIEF FATHERS OF THE TRIBES OF THE CHILDREN OF ISRAEL:MI# 29 AND MOSES SAID UNTO THEM, IF THE CHILDREN OF GAD AND THE CHILDREN OFMM REUBEN WILL PASS WITH YOU OVER JORDAN, EVERY MAN ARMED TO BATTLE, BEFORE THENL LORD, AND THE LAND SHALL BE SUBDUED BEFORE YOU; THEN YE SHALL GIVE THEM THE! LAND OF GILEAD FOR A POSSESSION: C# 30 BUT IF THEY WILL NOT PASS OVER WITH YOU ARMED, THEY SHALL HAVE,- POSSESSIONS AMONG YOU IN THE LAND OF CANAAN.EL# 31 AND THE CHILDREN OF GAD AND THE CHILDREN OF REUBEN ANSWERED, SAYING, AS5 THE LORD HATH SAID UNTO THY SERVANTS, SO WILL WE DO.DJ# 32 WE WILL PASS OVER ARMED BEFORE THE LORD INTO THE LAND OF CANAAN, THATC THE POSSESSION OF OUR INHERITANCE ON THIS SIDE JORDAN MAY BE OURS.NF# 33 AND MOSES GAVE UNTO THEM, EVEN TO THE CHILDREN OF GAD, AND TO THEK CHILDREN OF REUBEN, AND UNTO HALF THE TRIBE OF MANASSEH THE SON OF JOSEPH,EI THE KINGDOM OF SIHON KING OF THE AMORITES, AND THE KINGDOM OF OG KING OFAL BASHAN, THE LAND, WITH THE CITIES THEREOF IN THE COASTS, EVEN THE CITIES OF THE COUNTRY ROUND ABOUT. A# 34 AND THE CHILDREN OF GAD BUILT DIBON, AND ATAROTH, AND AROER,F3# 35 AND ATROTH, SHOPHAN, AND JAAZER, AND JOGBEHAH,EG# 36 AND BETHNIMRAH, AND BETHHARAN, FENCED CITIES: AND FOLDS FOR SHEEP.SK# 37 AND THE CHILDREN OF REUBEN BUILT HESHBON, AND ELEALEH, AND KIRJATHAIM,,J# 38 AND NEBO, AND BAALMEON, (THEIR NAMES BEING CHANGED,) AND SHIBMAH: AND5 GAVE OTHER NAMES UNTO THE CITIES WHICH THEY BUILDED.AL# 39 AND THE CHILDREN OF MACHIR THE SON OF MANASSEH WENT TO GILEAD, AND TOOK2 IT, AND DISPOSSESSED THE AMORITE WHICH WAS IN IT.H# 40 AND MOSES GAVE GILEAD UNTO MACHIR THE SON OF MANASSEH; AND HE DWELT THEREIN.NL# 41 AND JAIR THE SON OF MANASSEH WENT AND TOOK THE SMALL TOWNS THEREOF, AND CALLED THEM HAVOTHJAIR.L# 42 AND NOBAH WENT AND TO00bH+*<%X>%+%O-%TADATADATAOK KENATH, AND THE VILLAGES THEREOF, AND CALLED IT NOBAH, AFTER HIS OWN NAME.N = CHAPTER 33 M# 1 THESE ARE THE JOURNEYS OF THE CHILDREN OF ISRAEL, WHICH WENT FORTH OUT OFTG THE LAND OF EGYPT WITH THEIR ARMIES UNDER THE HAND OF MOSES AND AARON.AG# 2 AND MOSES WROTE THEIR GOINGS OUT ACCORDING TO THEIR JOURNEYS BY THEUI COMMANDMENT OF THE LORD: AND THESE ARE THEIR JOURNEYS ACCORDING TO THEIR GOINGS OUT.K# 3 AND THEY DEPARTED FROM RAMESES IN THE FIRST MONTH, ON THE FIFTEENTH DAYAL OF THE FIRST MONTH; ON THE MORROW AFTER THE PASSOVER THE CHILDREN OF ISRAEL> WENT OUT WITH AN HIGH HAND IN THE SIGHT OF ALL THE EGYPTIANS.L# 4 FOR THE EGYPTIANS BURIED ALL THEIR FIRSTBORN, WHICH THE LORD HAD SMITTEN> AMONG THEM: UPON THEIR GODS ALSO THE LORD EXECUTED JUDGMENTS.L# 5 AND THE CHILDREN OF ISRAEL REMOVED FROM RAMESES, AND PITCHED IN SUCCOTH.I# 6 AND THEY DEPARTED FROM SUCCOTH, AND PITCHED IN ETHAM, WHICH IS IN THE  EDGE OF THE WILDERNESS.K# 7 AND THEY REMOVED FROM ETHAM, AND TURNED AGAIN UNTO PIHAHIROTH, WHICH IS 3 BEFORE BAALZEPHON: AND THEY PITCHED BEFORE MIGDOL.NM# 8 AND THEY DEPARTED FROM BEFORE PIHAHIROTH, AND PASSED THROUGH THE MIDST OFNN THE SEA INTO THE WILDERNESS, AND WENT THREE DAYS JOURNEY IN THE WILDERNESS OF ETHAM, AND PITCHED IN MARAH.UL# 9 AND THEY REMOVED FROM MARAH, AND CAME UNTO ELIM: AND IN ELIM WERE TWELVEH FOUNTAINS OF WATER, AND THREESCORE AND TEN PALM TREES; AND THEY PITCHED THERE. =# 10 AND THEY REMOVED FROM ELIM, AND ENCAMPED BY THE RED SEA.DI# 11 AND THEY REMOVED FROM THE RED SEA, AND ENCAMPED IN THE WILDERNESS OFH SIN.RK# 12 AND THEY TOOK THEIR JOURNEY OUT OF THE WILDERNESS OF SIN, AND ENCAMPEDT IN DOPHKAH.;# 13 AND THEY DEPARTED FROM DOPHKAH, AND ENCAMPED IN ALUSH.TH# 14 AND THEY REMOVED FROM ALUSH, AND ENCAMPED AT REPHIDIM, WHERE WAS NO WATER FOR THE PEOPLE TO DRINK.IM# 15 AND THEY DEPARTED FROM REPHIDIM, AND PITCHED IN THE WILDERNESS OF SINAI. ># 16 AND THEY REMOVED FROM THE DESERT OF SINAI, AND PITCHED AT KIBROTHHATTAAVAH.G# 17 AND THEY DEPARTED FROM KIBROTHHATTAAVAH, AND ENCAMPED AT HAZEROTH.S=# 18 AND THEY DEPARTED FROM HAZEROTH, AND PITCHED IN RITHMAH.R@# 19 AND THEY DEPARTED FROM RITHMAH, AND PITCHED AT RIMMONPAREZ.?# 20 AND THEY DEPARTED FROM RIMMONPAREZ, AND PITCHED IN LIBNAH.A9# 21 AND THEY REMOVED FROM LIBNAH, AND PITCHED AT RISSAH.E?# 22 AND THEY JOURNEYED FROM RISSAH, AND PITCHED IN KEHELATHAH.CA# 23 AND THEY WENT FROM KEHELATHAH, AND PITCHED IN MOUNT SHAPHER.SB# 24 AND THEY REMOVED FROM MOUNT SHAPHER, AND ENCAMPED IN HARADAH.=# 25 AND THEY REMOVED FROM HARADAH, AND PITCHED IN MAKHELOTH.D=# 26 AND THEY REMOVED FROM MAKHELOTH, AND ENCAMPED AT TAHATH.D9# 27 AND THEY DEPARTED FROM TAHATH, AND PITCHED AT TARAH. 9# 28 AND THEY REMOVED FROM TARAH, AND PITCHED IN MITHCAH.H:# 29 AND THEY WENT FROM MITHCAH, AND PITCHED IN HASHMONAH.@# 30 AND THEY DEPARTED FROM HASHMONAH, AND ENCAMPED AT MOSEROTH.@# 31 AND THEY DEPARTED FROM MOSEROTH, AND PITCHED IN BENEJAAKAN.C# 32 AND THEY REMOVED FROM BENEJAAKAN, AND ENCAMPED AT HORHAGIDGAD.A># 33 AND THEY WENT FROM HORHAGIDGAD, AND PITCHED IN JOTBATHAH.># 34 AND THEY REMOVED FROM JOTBATHAH, AND ENCAMPED AT EBRONAH.@# 35 AND THEY DEPARTED FROM EBRONAH, AND ENCAMPED AT EZIONGABER.L# 36 AND THEY REMOVED FROM EZIONGABER, AND PITCHED IN THE WILDERNESS OF ZIN, WHICH IS KADESH.TK# 37 AND THEY REMOVED FROM KADESH, AND PITCHED IN MOUNT HOR, IN THE EDGE OFS THE LAND OF EDOM.J# 38 AND AARON THE PRIEST WENT UP INTO MOUNT HOR AT THE COMMANDMENT OF THEM LORD, AND DIED THERE, IN THE FORTIETH YEAR AFTER THE CHILDREN OF ISRAEL WEREDD COME OUT OF THE LAND OF EGYPT, IN THE FIRST DAY OF THE FIFTH MONTH.L# 39 AND AARON WAS AN HUNDRED AND TWENTY AND THREE YEARS OLD WHEN HE DIED IN MOUNT HOR.I# 40 AND KING ARAD THE CANAANITE, WHICH DWELT IN THE SOUTH IN THE LAND OF,7 CANAAN, HEARD OF THE COMING OF THE CHILDREN OF ISRAEL.A?# 41 AND THEY DEPARTED FROM MOUNT HOR, AND PITCHED IN ZALMONAH.8;# 42 AND THEY DEPARTED FROM ZALMONAH, AND PITCHED IN PUNON.N8# 43 AND THEY DEPARTED FROM PUNON, AND PITCHED IN OBOTH.M# 44 AND00bP+)D%5%T6%! ! THEY DEPARTED FROM OBOTH, AND PITCHED IN IJEABARIM, IN THE BORDER OFY MOAB.9# 45 AND THEY DEPARTED FROM IIM, AND PITCHED IN DIBONGAD.TE# 46 AND THEY REMOVED FROM DIBONGAD, AND ENCAMPED IN ALMONDIBLATHAIM.NK# 47 AND THEY REMOVED FROM ALMONDIBLATHAIM, AND PITCHED IN THE MOUNTAINS OFG ABARIM, BEFORE NEBO.AG# 48 AND THEY DEPARTED FROM THE MOUNTAINS OF ABARIM, AND PITCHED IN THE ' PLAINS OF MOAB BY JORDAN NEAR JERICHO.IK# 49 AND THEY PITCHED BY JORDAN, FROM BETHJESIMOTH EVEN UNTO ABELSHITTIM IN  THE PLAINS OF MOAB.G# 50 AND THE LORD SPAKE UNTO MOSES IN THE PLAINS OF MOAB BY JORDAN NEART JERICHO, SAYING,IM# 51 SPEAK UNTO THE CHILDREN OF ISRAEL, AND SAY UNTO THEM, WHEN YE ARE PASSED % OVER JORDAN INTO THE LAND OF CANAAN;OM# 52 THEN YE SHALL DRIVE OUT ALL THE INHABITANTS OF THE LAND FROM BEFORE YOU,OI AND DESTROY ALL THEIR PICTURES, AND DESTROY ALL THEIR MOLTEN IMAGES, AND ( QUITE PLUCK DOWN ALL THEIR HIGH PLACES:L# 53 AND YE SHALL DISPOSSESS THE INHABITANTS OF THE LAND, AND DWELL THEREIN:- FOR I HAVE GIVEN YOU THE LAND TO POSSESS IT. F# 54 AND YE SHALL DIVIDE THE LAND BY LOT FOR AN INHERITANCE AMONG YOURI FAMILIES: AND TO THE MORE YE SHALL GIVE THE MORE INHERITANCE, AND TO THE M FEWER YE SHALL GIVE THE LESS INHERITANCE: EVERY MANS INHERITANCE SHALL BE INIL THE PLACE WHERE HIS LOT FALLETH; ACCORDING TO THE TRIBES OF YOUR FATHERS YE SHALL INHERIT.RI# 55 BUT IF YE WILL NOT DRIVE OUT THE INHABITANTS OF THE LAND FROM BEFORE N YOU; THEN IT SHALL COME TO PASS, THAT THOSE WHICH YE LET REMAIN OF THEM SHALLK BE PRICKS IN YOUR EYES, AND THORNS IN YOUR SIDES, AND SHALL VEX YOU IN THER LAND WHEREIN YE DWELL.RK# 56 MOREOVER IT SHALL COME TO PASS, THAT I SHALL DO UNTO YOU, AS I THOUGHT TO DO UNTO THEM.E = CHAPTER 34 I*# 1 AND THE LORD SPAKE UNTO MOSES, SAYING,L# 2 COMMAND THE CHILDREN OF ISRAEL, AND SAY UNTO THEM, WHEN YE COME INTO THEB LAND OF CANAAN; (THIS IS THE LAND THAT SHALL FALL UNTO YOU FOR AN? INHERITANCE, EVEN THE LAND OF CANAAN WITH THE COASTS THEREOF:)TL# 3 THEN YOUR SOUTH QUARTER SHALL BE FROM THE WILDERNESS OF ZIN ALONG BY THEL COAST OF EDOM, AND YOUR SOUTH BORDER SHALL BE THE OUTMOST COAST OF THE SALT SEA EASTWARD:L# 4 AND YOUR BORDER SHALL TURN FROM THE SOUTH TO THE ASCENT OF AKRABBIM, ANDG PASS ON TO ZIN: AND THE GOING FORTH THEREOF SHALL BE FROM THE SOUTH TORC KADESHBARNEA, AND SHALL GO ON TO HAZARADDAR, AND PASS ON TO AZMON:AL# 5 AND THE BORDER SHALL FETCH A COMPASS FROM AZMON UNTO THE RIVER OF EGYPT,. AND THE GOINGS OUT OF IT SHALL BE AT THE SEA.I# 6 AND AS FOR THE WESTERN BORDER, YE SHALL EVEN HAVE THE GREAT SEA FOR AA( BORDER: THIS SHALL BE YOUR WEST BORDER.J# 7 AND THIS SHALL BE YOUR NORTH BORDER: FROM THE GREAT SEA YE SHALL POINT OUT FOR YOU MOUNT HOR:AF# 8 FROM MOUNT HOR YE SHALL POINT OUT YOUR BORDER UNTO THE ENTRANCE OF> HAMATH; AND THE GOINGS FORTH OF THE BORDER SHALL BE TO ZEDAD:L# 9 AND THE BORDER SHALL GO ON TO ZIPHRON, AND THE GOINGS OUT OF IT SHALL BE/ AT HAZARENAN: THIS SHALL BE YOUR NORTH BORDER.UG# 10 AND YE SHALL POINT OUT YOUR EAST BORDER FROM HAZARENAN TO SHEPHAM: L# 11 AND THE COAST SHALL GO DOWN FROM SHEPHAM TO RIBLAH, ON THE EAST SIDE OFL AIN; AND THE BORDER SHALL DESCEND, AND SHALL REACH UNTO THE SIDE OF THE SEA OF CHINNERETH EASTWARD:K# 12 AND THE BORDER SHALL GO DOWN TO JORDAN, AND THE GOINGS OUT OF IT SHALLDJ BE AT THE SALT SEA: THIS SHALL BE YOUR LAND WITH THE COASTS THEREOF ROUND ABOUT. I# 13 AND MOSES COMMANDED THE CHILDREN OF ISRAEL, SAYING, THIS IS THE LANDUN WHICH YE SHALL INHERIT BY LOT, WHICH THE LORD COMMANDED TO GIVE UNTO THE NINE TRIBES, AND TO THE HALF TRIBE:AL# 14 FOR THE TRIBE OF THE CHILDREN OF REUBEN ACCORDING TO THE HOUSE OF THEIRN FATHERS, AND THE TRIBE OF THE CHILDREN OF GAD ACCORDING TO THE HOUSE OF THEIRN FATHERS, HAVE RECEIVED THEIR INHERITANCE; AND HALF THE TRIBE OF MANASSEH HAVE RECEIVED THEIR INHERITANCE:I# 15 THE TWO TRIBES AND THE HALF TRIBE HAVE RECEIVED THEIR INHERITANCE ONA> THIS SIDE JORDAN NEAR JERICHO EASTWARD, TOWARD THE SUNRISING.+# 16 AND THE LORD SPAKE UNTO MOSES, SAYING,DI# 17 T00bX+*<%X>%+%O-%TADATADATAHESE ARE THE NAMES OF THE MEN WHICH SHALL DIVIDE THE LAND UNTO YOU:I/ ELEAZAR THE PRIEST, AND JOSHUA THE SON OF NUN.SG# 18 AND YE SHALL TAKE ONE PRINCE OF EVERY TRIBE, TO DIVIDE THE LAND BYH INHERITANCE.RM# 19 AND THE NAMES OF THE MEN ARE THESE: OF THE TRIBE OF JUDAH, CALEB THE SONE OF JEPHUNNEH.L# 20 AND OF THE TRIBE OF THE CHILDREN OF SIMEON, SHEMUEL THE SON OF AMMIHUD.9# 21 OF THE TRIBE OF BENJAMIN, ELIDAD THE SON OF CHISLON.RI# 22 AND THE PRINCE OF THE TRIBE OF THE CHILDREN OF DAN, BUKKI THE SON OFA JOGLI.MK# 23 THE PRINCE OF THE CHILDREN OF JOSEPH, FOR THE TRIBE OF THE CHILDREN OFD$ MANASSEH, HANNIEL THE SON OF EPHOD.K# 24 AND THE PRINCE OF THE TRIBE OF THE CHILDREN OF EPHRAIM, KEMUEL THE SON OF SHIPHTAN.MJ# 25 AND THE PRINCE OF THE TRIBE OF THE CHILDREN OF ZEBULUN, ELIZAPHAN THE SON OF PARNACH.M# 26 AND THE PRINCE OF THE TRIBE OF THE CHILDREN OF ISSACHAR, PALTIEL THE SONB OF AZZAN.L# 27 AND THE PRINCE OF THE TRIBE OF THE CHILDREN OF ASHER, AHIHUD THE SON OF SHELOMI.BM# 28 AND THE PRINCE OF THE TRIBE OF THE CHILDREN OF NAPHTALI, PEDAHEL THE SONT OF AMMIHUD.J# 29 THESE ARE THEY WHOM THE LORD COMMANDED TO DIVIDE THE INHERITANCE UNTO. THE CHILDREN OF ISRAEL IN THE LAND OF CANAAN. = CHAPTER 35 NF# 1 AND THE LORD SPAKE UNTO MOSES IN THE PLAINS OF MOAB BY JORDAN NEAR JERICHO, SAYING,NJ# 2 COMMAND THE CHILDREN OF ISRAEL, THAT THEY GIVE UNTO THE LEVITES OF THEK INHERITANCE OF THEIR POSSESSION CITIES TO DWELL IN; AND YE SHALL GIVE ALSOE: UNTO THE LEVITES SUBURBS FOR THE CITIES ROUND ABOUT THEM.M# 3 AND THE CITIES SHALL THEY HAVE TO DWELL IN; AND THE SUBURBS OF THEM SHALLAD BE FOR THEIR CATTLE, AND FOR THEIR GOODS, AND FOR ALL THEIR BEASTS.H# 4 AND THE SUBURBS OF THE CITIES, WHICH YE SHALL GIVE UNTO THE LEVITES,J SHALL REACH FROM THE WALL OF THE CITY AND OUTWARD A THOUSAND CUBITS ROUND ABOUT.NL# 5 AND YE SHALL MEASURE FROM WITHOUT THE CITY ON THE EAST SIDE TWO THOUSANDL CUBITS, AND ON THE SOUTH SIDE TWO THOUSAND CUBITS, AND ON THE WEST SIDE TWOI THOUSAND CUBITS, AND ON THE NORTH SIDE TWO THOUSAND CUBITS; AND THE CITYEH SHALL BE IN THE MIDST: THIS SHALL BE TO THEM THE SUBURBS OF THE CITIES.L# 6 AND AMONG THE CITIES WHICH YE SHALL GIVE UNTO THE LEVITES THERE SHALL BEM SIX CITIES FOR REFUGE, WHICH YE SHALL APPOINT FOR THE MANSLAYER, THAT HE MAYI= FLEE THITHER: AND TO THEM YE SHALL ADD FORTY AND TWO CITIES.AK# 7 SO ALL THE CITIES WHICH YE SHALL GIVE TO THE LEVITES SHALL BE FORTY ANDO5 EIGHT CITIES: THEM SHALL YE GIVE WITH THEIR SUBURBS.IH# 8 AND THE CITIES WHICH YE SHALL GIVE SHALL BE OF THE POSSESSION OF THEJ CHILDREN OF ISRAEL: FROM THEM THAT HAVE MANY YE SHALL GIVE MANY; BUT FROMN THEM THAT HAVE FEW YE SHALL GIVE FEW: EVERY ONE SHALL GIVE OF HIS CITIES UNTO> THE LEVITES ACCORDING TO HIS INHERITANCE WHICH HE INHERITETH.*# 9 AND THE LORD SPAKE UNTO MOSES, SAYING,J# 10 SPEAK UNTO THE CHILDREN OF ISRAEL, AND SAY UNTO THEM, WHEN YE BE COME% OVER JORDAN INTO THE LAND OF CANAAN;NJ# 11 THEN YE SHALL APPOINT YOU CITIES TO BE CITIES OF REFUGE FOR YOU; THATC THE SLAYER MAY FLEE THITHER, WHICH KILLETH ANY PERSON AT UNAWARES.FL# 12 AND THEY SHALL BE UNTO YOU CITIES FOR REFUGE FROM THE AVENGER; THAT THEG MANSLAYER DIE NOT, UNTIL HE STAND BEFORE THE CONGREGATION IN JUDGMENT.VI# 13 AND OF THESE CITIES WHICH YE SHALL GIVE SIX CITIES SHALL YE HAVE FORA REFUGE.K# 14 YE SHALL GIVE THREE CITIES ON THIS SIDE JORDAN, AND THREE CITIES SHALL @ YE GIVE IN THE LAND OF CANAAN, WHICH SHALL BE CITIES OF REFUGE.M# 15 THESE SIX CITIES SHALL BE A REFUGE, BOTH FOR THE CHILDREN OF ISRAEL, ANDLH FOR THE STRANGER, AND FOR THE SOJOURNER AMONG THEM: THAT EVERY ONE THAT. KILLETH ANY PERSON UNAWARES MAY FLEE THITHER.L# 16 AND IF HE SMITE HIM WITH AN INSTRUMENT OF IRON, SO THAT HE DIE, HE IS A5 MURDERER: THE MURDERER SHALL SURELY BE PUT TO DEATH.TL# 17 AND IF HE SMITE HIM WITH THROWING A STONE, WHEREWITH HE MAY DIE, AND HEB DIE, HE IS A MURDERER: THE MURDERER SHALL SURELY BE PUT TO DEATH.J# 18 OR IF HE SMITE HIM WITH AN HAND WEAPON OF WOOD, WHEREWITH HE MAY DIE,I AND HE DIE, HE IS A MURDERE00b`+)D%5%T6%! !R: THE MURDERER SHALL SURELY BE PUT TO DEATH.RK# 19 THE REVENGER OF BLOOD HIMSELF SHALL SLAY THE MURDERER: WHEN HE MEETETHE HIM, HE SHALL SLAY HIM.K# 20 BUT IF HE THRUST HIM OF HATRED, OR HURL AT HIM BY LAYING OF WAIT, THATE HE DIE;I# 21 OR IN ENMITY SMITE HIM WITH HIS HAND, THAT HE DIE: HE THAT SMOTE HIMRJ SHALL SURELY BE PUT TO DEATH; FOR HE IS A MURDERER: THE REVENGER OF BLOOD. SHALL SLAY THE MURDERER, WHEN HE MEETETH HIM.L# 22 BUT IF HE THRUST HIM SUDDENLY WITHOUT ENMITY, OR HAVE CAST UPON HIM ANY THING WITHOUT LAYING OF WAIT,L# 23 OR WITH ANY STONE, WHEREWITH A MAN MAY DIE, SEEING HIM NOT, AND CAST ITG UPON HIM, THAT HE DIE, AND WAS NOT HIS ENEMY, NEITHER SOUGHT HIS HARM:,M# 24 THEN THE CONGREGATION SHALL JUDGE BETWEEN THE SLAYER AND THE REVENGER OF $ BLOOD ACCORDING TO THESE JUDGMENTS:I# 25 AND THE CONGREGATION SHALL DELIVER THE SLAYER OUT OF THE HAND OF THE M REVENGER OF BLOOD, AND THE CONGREGATION SHALL RESTORE HIM TO THE CITY OF HIS L REFUGE, WHITHER HE WAS FLED: AND HE SHALL ABIDE IN IT UNTO THE DEATH OF THE3 HIGH PRIEST, WHICH WAS ANOINTED WITH THE HOLY OIL. L# 26 BUT IF THE SLAYER SHALL AT ANY TIME COME WITHOUT THE BORDER OF THE CITY$ OF HIS REFUGE, WHITHER HE WAS FLED;J# 27 AND THE REVENGER OF BLOOD FIND HIM WITHOUT THE BORDERS OF THE CITY OFN HIS REFUGE, AND THE REVENGER OF BLOOD KILL THE SLAYER; HE SHALL NOT BE GUILTY OF BLOOD:H# 28 BECAUSE HE SHOULD HAVE REMAINED IN THE CITY OF HIS REFUGE UNTIL THEL DEATH OF THE HIGH PRIEST: BUT AFTER THE DEATH OF THE HIGH PRIEST THE SLAYER. SHALL RETURN INTO THE LAND OF HIS POSSESSION.K# 29 SO THESE THINGS SHALL BE FOR A STATUTE OF JUDGMENT UNTO YOU THROUGHOUTI( YOUR GENERATIONS IN ALL YOUR DWELLINGS.H# 30 WHOSO KILLETH ANY PERSON, THE MURDERER SHALL BE PUT TO DEATH BY THEL MOUTH OF WITNESSES: BUT ONE WITNESS SHALL NOT TESTIFY AGAINST ANY PERSON TO CAUSE HIM TO DIE.M# 31 MOREOVER YE SHALL TAKE NO SATISFACTION FOR THE LIFE OF A MURDERER, WHICHE9 IS GUILTY OF DEATH: BUT HE SHALL BE SURELY PUT TO DEATH.AJ# 32 AND YE SHALL TAKE NO SATISFACTION FOR HIM THAT IS FLED TO THE CITY OFL HIS REFUGE, THAT HE SHOULD COME AGAIN TO DWELL IN THE LAND, UNTIL THE DEATH OF THE PRIEST.AK# 33 SO YE SHALL NOT POLLUTE THE LAND WHEREIN YE ARE: FOR BLOOD IT DEFILETHLM THE LAND: AND THE LAND CANNOT BE CLEANSED OF THE BLOOD THAT IS SHED THEREIN,Y& BUT BY THE BLOOD OF HIM THAT SHED IT.K# 34 DEFILE NOT THEREFORE THE LAND WHICH YE SHALL INHABIT, WHEREIN I DWELL:H3 FOR I THE LORD DWELL AMONG THE CHILDREN OF ISRAEL. = CHAPTER 36 2L# 1 AND THE CHIEF FATHERS OF THE FAMILIES OF THE CHILDREN OF GILEAD, THE SONL OF MACHIR, THE SON OF MANASSEH, OF THE FAMILIES OF THE SONS OF JOSEPH, CAMEK NEAR, AND SPAKE BEFORE MOSES, AND BEFORE THE PRINCES, THE CHIEF FATHERS OFT THE CHILDREN OF ISRAEL:E# 2 AND THEY SAID, THE LORD COMMANDED MY LORD TO GIVE THE LAND FOR ANBK INHERITANCE BY LOT TO THE CHILDREN OF ISRAEL: AND MY LORD WAS COMMANDED BY D THE LORD TO GIVE THE INHERITANCE OF ZELOPHEHAD OUR BROTHER UNTO HIS DAUGHTERS.LH# 3 AND IF THEY BE MARRIED TO ANY OF THE SONS OF THE OTHER TRIBES OF THEC CHILDREN OF ISRAEL, THEN SHALL THEIR INHERITANCE BE TAKEN FROM THEIM INHERITANCE OF OUR FATHERS, AND SHALL BE PUT TO THE INHERITANCE OF THE TRIBERF WHEREUNTO THEY ARE RECEIVED: SO SHALL IT BE TAKEN FROM THE LOT OF OUR INHERITANCE.ML# 4 AND WHEN THE JUBILE OF THE CHILDREN OF ISRAEL SHALL BE, THEN SHALL THEIRH INHERITANCE BE PUT UNTO THE INHERITANCE OF THE TRIBE WHEREUNTO THEY AREK RECEIVED: SO SHALL THEIR INHERITANCE BE TAKEN AWAY FROM THE INHERITANCE OFT THE TRIBE OF OUR FATHERS.K# 5 AND MOSES COMMANDED THE CHILDREN OF ISRAEL ACCORDING TO THE WORD OF THEF> LORD, SAYING, THE TRIBE OF THE SONS OF JOSEPH HATH SAID WELL.M# 6 THIS IS THE THING WHICH THE LORD DOTH COMMAND CONCERNING THE DAUGHTERS OFOH ZELOPHEHAD, SAYING, LET THEM MARRY TO WHOM THEY THINK BEST; ONLY TO THE6 FAMILY OF THE TRIBE OF THEIR FATHER SHALL THEY MARRY.L# 7 SO SHALL NOT THE INHERITANCE OF THE CHILDREN OF ISRAEL REMOVE FROM TRIBEL TO TRIBE: FOR EVERY ONE OF THE CHILDREN OF ISRAEL SHALL KEE00bh+ck+<%X>%+%O-%TADATADATAP HIMSELF TO THE) INHERITANCE OF THE TRIBE OF HIS FATHERS.OJ# 8 AND EVERY DAUGHTER, THAT POSSESSETH AN INHERITANCE IN ANY TRIBE OF THEM CHILDREN OF ISRAEL, SHALL BE WIFE UNTO ONE OF THE FAMILY OF THE TRIBE OF HEROK FATHER, THAT THE CHILDREN OF ISRAEL MAY ENJOY EVERY MAN THE INHERITANCE OFT HIS FATHERS. M# 9 NEITHER SHALL THE INHERITANCE REMOVE FROM ONE TRIBE TO ANOTHER TRIBE; BUTTL EVERY ONE OF THE TRIBES OF THE CHILDREN OF ISRAEL SHALL KEEP HIMSELF TO HIS OWN INHERITANCE.LJ# 10 EVEN AS THE LORD COMMANDED MOSES, SO DID THE DAUGHTERS OF ZELOPHEHAD:K# 11 FOR MAHLAH, TIRZAH, AND HOGLAH, AND MILCAH, AND NOAH, THE DAUGHTERS OF ; ZELOPHEHAD, WERE MARRIED UNTO THEIR FATHERS BROTHERS SONS:ML# 12 AND THEY WERE MARRIED INTO THE FAMILIES OF THE SONS OF MANASSEH THE SONN OF JOSEPH, AND THEIR INHERITANCE REMAINED IN THE TRIBE OF THE FAMILY OF THEIR FATHER.K# 13 THESE ARE THE COMMANDMENTS AND THE JUDGMENTS, WHICH THE LORD COMMANDEDSJ BY THE HAND OF MOSES UNTO THE CHILDREN OF ISRAEL IN THE PLAINS OF MOAB BY JORDAN NEAR JERICHO.HE DAUGHTERS OF ZELOPHEHAD:K# 11 FOR MAHLAH, TIRZAH, AND HOGLAH, AND MILCAH, AND NOAH, THE DAUGHTERS OF ; ZELOPHEHAD, WERE MARRIED UNTO THEIR FATHERS BROTHERS SONS:ML# 12 AND THEY WERE MARRIED INTO THE FAMILIES OF THE SONS OF MANASSEH THE SONN OF JOSEPH, AND THEIR INHERITANCE REMAINED IN THE TRIBE OF THE FAMILY OF THEIR FATHER.K# 13 THESE ARE THE COMMANDMENTS AND THE JUDGMENTS, WHICH THE LORD COMMANDEDSJ BY THE HAND OF MOSES UNTO THE CHILDREN OF ISRAEL IN THE PLAINS OF MOAB * BOOK05 DEUTERONOMY = CHAPTER 1 L# 1 THESE BE THE WORDS WHICH MOSES SPAKE UNTO ALL ISRAEL ON THIS SIDE JORDANM IN THE WILDERNESS, IN THE PLAIN OVER AGAINST THE RED SEA, BETWEEN PARAN, AND. TOPHEL, AND LABAN, AND HAZEROTH, AND DIZAHAB.K# 2 (THERE ARE ELEVEN DAYS JOURNEY FROM HOREB BY THE WAY OF MOUNT SEIR UNTOH KADESHBARNEA.)MK# 3 AND IT CAME TO PASS IN THE FORTIETH YEAR, IN THE ELEVENTH MONTH, ON THEIF FIRST DAY OF THE MONTH, THAT MOSES SPAKE UNTO THE CHILDREN OF ISRAEL,I ACCORDING UNTO ALL THAT THE LORD HAD GIVEN HIM IN COMMANDMENT UNTO THEM;TE# 4 AFTER HE HAD SLAIN SIHON THE KING OF THE AMORITES, WHICH DWELT IN F HESHBON, AND OG THE KING OF BASHAN, WHICH DWELT AT ASTAROTH IN EDREI:I# 5 ON THIS SIDE JORDAN, IN THE LAND OF MOAB, BEGAN MOSES TO DECLARE THISJ LAW, SAYING,EG# 6 THE LORD OUR GOD SPAKE UNTO US IN HOREB, SAYING, YE HAVE DWELT LONGS ENOUGH IN THIS MOUNT:M# 7 TURN YOU, AND TAKE YOUR JOURNEY, AND GO TO THE MOUNT OF THE AMORITES, ANDTK UNTO ALL THE PLACES NIGH THEREUNTO, IN THE PLAIN, IN THE HILLS, AND IN THEML VALE, AND IN THE SOUTH, AND BY THE SEA SIDE, TO THE LAND OF THE CANAANITES,= AND UNTO LEBANON, UNTO THE GREAT RIVER, THE RIVER EUPHRATES.TL# 8 BEHOLD, I HAVE SET THE LAND BEFORE YOU: GO IN AND POSSESS THE LAND WHICHJ THE LORD SWARE UNTO YOUR FATHERS, ABRAHAM, ISAAC, AND JACOB, TO GIVE UNTO# THEM AND TO THEIR SEED AFTER THEM.EH# 9 AND I SPAKE UNTO YOU AT THAT TIME, SAYING, I AM NOT ABLE TO BEAR YOU MYSELF ALONE:K# 10 THE LORD YOUR GOD HATH MULTIPLIED YOU, AND, BEHOLD, YE ARE THIS DAY ASA# THE STARS OF HEAVEN FOR MULTITUDE.AL# 11 (THE LORD GOD OF YOUR FATHERS MAKE YOU A THOUSAND TIMES SO MANY MORE AS1 YE ARE, AND BLESS YOU, AS HE HATH PROMISED YOU!) J# 12 HOW CAN I MYSELF ALONE BEAR YOUR CUMBRANCE, AND YOUR BURDEN, AND YOUR STRIFE?M# 13 TAKE YOU WISE MEN, AND UNDERSTANDING, AND KNOWN AMONG YOUR TRIBES, AND IF WILL MAKE THEM RULERS OVER YOU.K# 14 AND YE ANSWERED ME, AND SAID, THE THING WHICH THOU HAST SPOKEN IS GOODL FOR US TO DO.K# 15 SO I TOOK THE CHIEF OF YOUR TRIBES, WISE MEN, AND KNOWN, AND MADE THEMMI HEADS OVER YOU, CAPTAINS OVER THOUSANDS, AND CAPTAINS OVER HUNDREDS, AND G CAPTAINS OVER FIFTIES, AND CAPTAINS OVER TENS, AND OFFICERS AMONG YOURW TRIBES.L# 16 AND I CHARGED YOUR JUDGES AT THAT TIME, SAYING, HEAR THE CAUSES BETWEENL YOUR BRETHREN, AND JUDGE RIGHTEOUSLY BETWEEN EVERY MAN AND HIS BROTHER, AND THE STRANGER THAT IS WITH HIM.DM# 17 YE SHALL NOT RESPECT PERSONS IN JUDGMENT; BUT YE SHALL HEAR THE SMALL ASOF WELL AS THE GREAT; YE SHALL N00cp+)D%5%T6%! !OT BE AFRAID OF THE FACE OF MAN; FOR THEL JUDGMENT IS GODS: AND THE CAUSE THAT IS TOO HARD FOR YOU, BRING IT UNTO ME, AND I WILL HEAR IT.H# 18 AND I COMMANDED YOU AT THAT TIME ALL THE THINGS WHICH YE SHOULD DO.H# 19 AND WHEN WE DEPARTED FROM HOREB, WE WENT THROUGH ALL THAT GREAT ANDN TERRIBLE WILDERNESS, WHICH YE SAW BY THE WAY OF THE MOUNTAIN OF THE AMORITES,? AS THE LORD OUR GOD COMMANDED US; AND WE CAME TO KADESHBARNEA.NH# 20 AND I SAID UNTO YOU, YE ARE COME UNTO THE MOUNTAIN OF THE AMORITES,* WHICH THE LORD OUR GOD DOTH GIVE UNTO US.F# 21 BEHOLD, THE LORD THY GOD HATH SET THE LAND BEFORE THEE: GO UP ANDJ POSSESS IT, AS THE LORD GOD OF THY FATHERS HATH SAID UNTO THEE; FEAR NOT, NEITHER BE DISCOURAGED.J# 22 AND YE CAME NEAR UNTO ME EVERY ONE OF YOU, AND SAID, WE WILL SEND MENM BEFORE US, AND THEY SHALL SEARCH US OUT THE LAND, AND BRING US WORD AGAIN BY< WHAT WAY WE MUST GO UP, AND INTO WHAT CITIES WE SHALL COME.K# 23 AND THE SAYING PLEASED ME WELL: AND I TOOK TWELVE MEN OF YOU, ONE OF A TRIBE:EL# 24 AND THEY TURNED AND WENT UP INTO THE MOUNTAIN, AND CAME UNTO THE VALLEY OF ESHCOL, AND SEARCHED IT OUT.J# 25 AND THEY TOOK OF THE FRUIT OF THE LAND IN THEIR HANDS, AND BROUGHT ITK DOWN UNTO US, AND BROUGHT US WORD AGAIN, AND SAID, IT IS A GOOD LAND WHICH  THE LORD OUR GOD DOTH GIVE US. M# 26 NOTWITHSTANDING YE WOULD NOT GO UP, BUT REBELLED AGAINST THE COMMANDMENTS OF THE LORD YOUR GOD:K# 27 AND YE MURMURED IN YOUR TENTS, AND SAID, BECAUSE THE LORD HATED US, HEML HATH BROUGHT US FORTH OUT OF THE LAND OF EGYPT, TO DELIVER US INTO THE HAND OF THE AMORITES, TO DESTROY US.M# 28 WHITHER SHALL WE GO UP? OUR BRETHREN HAVE DISCOURAGED OUR HEART, SAYING,TM THE PEOPLE IS GREATER AND TALLER THAN WE; THE CITIES ARE GREAT AND WALLED UP D TO HEAVEN; AND MOREOVER WE HAVE SEEN THE SONS OF THE ANAKIMS THERE.@# 29 THEN I SAID UNTO YOU, DREAD NOT, NEITHER BE AFRAID OF THEM.F# 30 THE LORD YOUR GOD WHICH GOETH BEFORE YOU, HE SHALL FIGHT FOR YOU,@ ACCORDING TO ALL THAT HE DID FOR YOU IN EGYPT BEFORE YOUR EYES;J# 31 AND IN THE WILDERNESS, WHERE THOU HAST SEEN HOW THAT THE LORD THY GODM BARE THEE, AS A MAN DOTH BEAR HIS SON, IN ALL THE WAY THAT YE WENT, UNTIL YEG CAME INTO THIS PLACE.<# 32 YET IN THIS THING YE DID NOT BELIEVE THE LORD YOUR GOD,L# 33 WHO WENT IN THE WAY BEFORE YOU, TO SEARCH YOU OUT A PLACE TO PITCH YOURK TENTS IN, IN FIRE BY NIGHT, TO SHEW YOU BY WHAT WAY YE SHOULD GO, AND IN AD CLOUD BY DAY.J# 34 AND THE LORD HEARD THE VOICE OF YOUR WORDS, AND WAS WROTH, AND SWARE, SAYING,M# 35 SURELY THERE SHALL NOT ONE OF THESE MEN OF THIS EVIL GENERATION SEE THATD4 GOOD LAND, WHICH I SWARE TO GIVE UNTO YOUR FATHERS.M# 36 SAVE CALEB THE SON OF JEPHUNNEH; HE SHALL SEE IT, AND TO HIM WILL I GIVEII THE LAND THAT HE HATH TRODDEN UPON, AND TO HIS CHILDREN, BECAUSE HE HATHO WHOLLY FOLLOWED THE LORD.L# 37 ALSO THE LORD WAS ANGRY WITH ME FOR YOUR SAKES, SAYING, THOU ALSO SHALT NOT GO IN THITHER.DJ# 38 BUT JOSHUA THE SON OF NUN, WHICH STANDETH BEFORE THEE, HE SHALL GO INA THITHER: ENCOURAGE HIM: FOR HE SHALL CAUSE ISRAEL TO INHERIT IT. H# 39 MOREOVER YOUR LITTLE ONES, WHICH YE SAID SHOULD BE A PREY, AND YOURI CHILDREN, WHICH IN THAT DAY HAD NO KNOWLEDGE BETWEEN GOOD AND EVIL, THEYIN SHALL GO IN THITHER, AND UNTO THEM WILL I GIVE IT, AND THEY SHALL POSSESS IT.K# 40 BUT AS FOR YOU, TURN YOU, AND TAKE YOUR JOURNEY INTO THE WILDERNESS BYF THE WAY OF THE RED SEA.K# 41 THEN YE ANSWERED AND SAID UNTO ME, WE HAVE SINNED AGAINST THE LORD, WENK WILL GO UP AND FIGHT, ACCORDING TO ALL THAT THE LORD OUR GOD COMMANDED US. L AND WHEN YE HAD GIRDED ON EVERY MAN HIS WEAPONS OF WAR, YE WERE READY TO GO UP INTO THE HILL.L# 42 AND THE LORD SAID UNTO ME, SAY UNTO THEM. GO NOT UP, NEITHER FIGHT; FOR< I AM NOT AMONG YOU; LEST YE BE SMITTEN BEFORE YOUR ENEMIES.I# 43 SO I SPAKE UNTO YOU; AND YE WOULD NOT HEAR, BUT REBELLED AGAINST THEHC COMMANDMENT OF THE LORD, AND WENT PRESUMPTUOUSLY UP INTO THE HILL. J# 44 AND THE AMORITES, WHICH DWELT IN THAT MOUNTAIN, CAME OUT AGAINST YOU,I AND CHASED YOU, AS BE00cx+k+<%X>%+%O-%TADATADATAES DO, AND DESTROYED YOU IN SEIR, EVEN UNTO HORMAH.EM# 45 AND YE RETURNED AND WEPT BEFORE THE LORD; BUT THE LORD WOULD NOT HEARKEN2& TO YOUR VOICE, NOR GIVE EAR UNTO YOU.K# 46 SO YE ABODE IN KADESH MANY DAYS, ACCORDING UNTO THE DAYS THAT YE ABODEO THERE.N = CHAPTER 2 N# 1 THEN WE TURNED, AND TOOK OUR JOURNEY INTO THE WILDERNESS BY THE WAY OF THEK RED SEA, AS THE LORD SPAKE UNTO ME: AND WE COMPASSED MOUNT SEIR MANY DAYS.I'# 2 AND THE LORD SPAKE UNTO ME, SAYING,UD# 3 YE HAVE COMPASSED THIS MOUNTAIN LONG ENOUGH: TURN YOU NORTHWARD.L# 4 AND COMMAND THOU THE PEOPLE, SAYING, YE ARE TO PASS THROUGH THE COAST OFK YOUR BRETHREN THE CHILDREN OF ESAU, WHICH DWELL IN SEIR; AND THEY SHALL BEO< AFRAID OF YOU: TAKE YE GOOD HEED UNTO YOURSELVES THEREFORE:K# 5 MEDDLE NOT WITH THEM; FOR I WILL NOT GIVE YOU OF THEIR LAND, NO, NOT SOIH MUCH AS A FOOT BREADTH; BECAUSE I HAVE GIVEN MOUNT SEIR UNTO ESAU FOR A POSSESSION.K# 6 YE SHALL BUY MEAT OF THEM FOR MONEY, THAT YE MAY EAT; AND YE SHALL ALSOS0 BUY WATER OF THEM FOR MONEY, THAT YE MAY DRINK.K# 7 FOR THE LORD THY GOD HATH BLESSED THEE IN ALL THE WORKS OF THY HAND: HEFN KNOWETH THY WALKING THROUGH THIS GREAT WILDERNESS: THESE FORTY YEARS THE LORD7 THY GOD HATH BEEN WITH THEE; THOU HAST LACKED NOTHING.RM# 8 AND WHEN WE PASSED BY FROM OUR BRETHREN THE CHILDREN OF ESAU, WHICH DWELTIJ IN SEIR, THROUGH THE WAY OF THE PLAIN FROM ELATH, AND FROM EZIONGABER, WE8 TURNED AND PASSED BY THE WAY OF THE WILDERNESS OF MOAB.I# 9 AND THE LORD SAID UNTO ME, DISTRESS NOT THE MOABITES, NEITHER CONTEND N WITH THEM IN BATTLE: FOR I WILL NOT GIVE THEE OF THEIR LAND FOR A POSSESSION;C BECAUSE I HAVE GIVEN AR UNTO THE CHILDREN OF LOT FOR A POSSESSION. I# 10 THE EMIMS DWELT THEREIN IN TIMES PAST, A PEOPLE GREAT, AND MANY, AND  TALL, AS THE ANAKIMS;G# 11 WHICH ALSO WERE ACCOUNTED GIANTS, AS THE ANAKIMS; BUT THE MOABITESH CALLED THEM EMIMS.OG# 12 THE HORIMS ALSO DWELT IN SEIR BEFORETIME; BUT THE CHILDREN OF ESAULL SUCCEEDED THEM, WHEN THEY HAD DESTROYED THEM FROM BEFORE THEM, AND DWELT INK THEIR STEAD; AS ISRAEL DID UNTO THE LAND OF HIS POSSESSION, WHICH THE LORDF GAVE UNTO THEM.L# 13 NOW RISE UP, SAID I, AND GET YOU OVER THE BROOK ZERED. AND WE WENT OVER THE BROOK ZERED.NI# 14 AND THE SPACE IN WHICH WE CAME FROM KADESHBARNEA, UNTIL WE WERE COME1N OVER THE BROOK ZERED, WAS THIRTY AND EIGHT YEARS; UNTIL ALL THE GENERATION OFK THE MEN OF WAR WERE WASTED OUT FROM AMONG THE HOST, AS THE LORD SWARE UNTOF THEM.K# 15 FOR INDEED THE HAND OF THE LORD WAS AGAINST THEM, TO DESTROY THEM FROM* AMONG THE HOST, UNTIL THEY WERE CONSUMED.L# 16 SO IT CAME TO PASS, WHEN ALL THE MEN OF WAR WERE CONSUMED AND DEAD FROM AMONG THE PEOPLE,)# 17 THAT THE LORD SPAKE UNTO ME, SAYING,ZC# 18 THOU ART TO PASS OVER THROUGH AR, THE COAST OF MOAB, THIS DAY:WK# 19 AND WHEN THOU COMEST NIGH OVER AGAINST THE CHILDREN OF AMMON, DISTRESSEL THEM NOT, NOR MEDDLE WITH THEM: FOR I WILL NOT GIVE THEE OF THE LAND OF THEL CHILDREN OF AMMON ANY POSSESSION; BECAUSE I HAVE GIVEN IT UNTO THE CHILDREN OF LOT FOR A POSSESSION.OK# 20 (THAT ALSO WAS ACCOUNTED A LAND OF GIANTS: GIANTS DWELT THEREIN IN OLD . TIME; AND THE AMMONITES CALL THEM ZAMZUMMIMS;E# 21 A PEOPLE GREAT, AND MANY, AND TALL, AS THE ANAKIMS; BUT THE LORDOH DESTROYED THEM BEFORE THEM; AND THEY SUCCEEDED THEM, AND DWELT IN THEIR STEAD:HD# 22 AS HE DID TO THE CHILDREN OF ESAU, WHICH DWELT IN SEIR, WHEN HEM DESTROYED THE HORIMS FROM BEFORE THEM; AND THEY SUCCEEDED THEM, AND DWELT INP THEIR STEAD EVEN UNTO THIS DAY:K# 23 AND THE AVIMS WHICH DWELT IN HAZERIM, EVEN UNTO AZZAH, THE CAPHTORIMS, L WHICH CAME FORTH OUT OF CAPHTOR, DESTROYED THEM, AND DWELT IN THEIR STEAD.)L# 24 RISE YE UP, TAKE YOUR JOURNEY, AND PASS OVER THE RIVER ARNON: BEHOLD, IM HAVE GIVEN INTO THINE HAND SIHON THE AMORITE, KING OF HESHBON, AND HIS LAND:T5 BEGIN TO POSSESS IT, AND CONTEND WITH HIM IN BATTLE. M# 25 THIS DAY WILL I BEGIN TO PUT THE DREAD OF THEE AND THE FEAR OF THEE UPONSL THE NATIONS THAT ARE UNDER THE WHOLE HEAVEN, WHO SHALL HEAR REPORT OF THEE,6 AND SHA00c+)D%5%T6%! !LL TREMBLE, AND BE IN ANGUISH BECAUSE OF THEE.L# 26 AND I SENT MESSENGERS OUT OF THE WILDERNESS OF KEDEMOTH UNTO SIHON KING( OF HESHBON WITH WORDS OF PEACE, SAYING,J# 27 LET ME PASS THROUGH THY LAND: I WILL GO ALONG BY THE HIGH WAY, I WILL2 NEITHER TURN UNTO THE RIGHT HAND NOR TO THE LEFT.M# 28 THOU SHALT SELL ME MEAT FOR MONEY, THAT I MAY EAT; AND GIVE ME WATER FORT> MONEY, THAT I MAY DRINK: ONLY I WILL PASS THROUGH ON MY FEET;I# 29 (AS THE CHILDREN OF ESAU WHICH DWELL IN SEIR, AND THE MOABITES WHICHLN DWELL IN AR, DID UNTO ME;) UNTIL I SHALL PASS OVER JORDAN INTO THE LAND WHICH THE LORD OUR GOD GIVETH US.M# 30 BUT SIHON KING OF HESHBON WOULD NOT LET US PASS BY HIM: FOR THE LORD THYHM GOD HARDENED HIS SPIRIT, AND MADE HIS HEART OBSTINATE, THAT HE MIGHT DELIVERT* HIM INTO THY HAND, AS APPEARETH THIS DAY.J# 31 AND THE LORD SAID UNTO ME, BEHOLD, I HAVE BEGUN TO GIVE SIHON AND HISG LAND BEFORE THEE: BEGIN TO POSSESS, THAT THOU MAYEST INHERIT HIS LAND.EG# 32 THEN SIHON CAME OUT AGAINST US, HE AND ALL HIS PEOPLE, TO FIGHT ATM JAHAZ. L# 33 AND THE LORD OUR GOD DELIVERED HIM BEFORE US; AND WE SMOTE HIM, AND HIS SONS, AND ALL HIS PEOPLE.L# 34 AND WE TOOK ALL HIS CITIES AT THAT TIME, AND UTTERLY DESTROYED THE MEN,K AND THE WOMEN, AND THE LITTLE ONES, OF EVERY CITY, WE LEFT NONE TO REMAIN:PL# 35 ONLY THE CATTLE WE TOOK FOR A PREY UNTO OURSELVES, AND THE SPOIL OF THE CITIES WHICH WE TOOK.J# 36 FROM AROER, WHICH IS BY THE BRINK OF THE RIVER OF ARNON, AND FROM THEH CITY THAT IS BY THE RIVER, EVEN UNTO GILEAD, THERE WAS NOT ONE CITY TOO7 STRONG FOR US: THE LORD OUR GOD DELIVERED ALL UNTO US: J# 37 ONLY UNTO THE LAND OF THE CHILDREN OF AMMON THOU CAMEST NOT, NOR UNTON ANY PLACE OF THE RIVER JABBOK, NOR UNTO THE CITIES IN THE MOUNTAINS, NOR UNTO' WHATSOEVER THE LORD OUR GOD FORBAD US.A = CHAPTER 3 L# 1 THEN WE TURNED, AND WENT UP THE WAY TO BASHAN: AND OG THE KING OF BASHAN@ CAME OUT AGAINST US, HE AND ALL HIS PEOPLE, TO BATTLE AT EDREI.L# 2 AND THE LORD SAID UNTO ME, FEAR HIM NOT: FOR I WILL DELIVER HIM, AND ALLL HIS PEOPLE, AND HIS LAND, INTO THY HAND; AND THOU SHALT DO UNTO HIM AS THOU? DIDST UNTO SIHON KING OF THE AMORITES, WHICH DWELT AT HESHBON.TM# 3 SO THE LORD OUR GOD DELIVERED INTO OUR HANDS OG ALSO, THE KING OF BASHAN,SK AND ALL HIS PEOPLE: AND WE SMOTE HIM UNTIL NONE WAS LEFT TO HIM REMAINING.WJ# 4 AND WE TOOK ALL HIS CITIES AT THAT TIME, THERE WAS NOT A CITY WHICH WEL TOOK NOT FROM THEM, THREESCORE CITIES, ALL THE REGION OF ARGOB, THE KINGDOM OF OG IN BASHAN. I# 5 ALL THESE CITIES WERE FENCED WITH HIGH WALLS, GATES, AND BARS; BESIDEA UNWALLED TOWNS A GREAT MANY.AH# 6 AND WE UTTERLY DESTROYED THEM, AS WE DID UNTO SIHON KING OF HESHBON,@ UTTERLY DESTROYING THE MEN, WOMEN, AND CHILDREN, OF EVERY CITY.J# 7 BUT ALL THE CATTLE, AND THE SPOIL OF THE CITIES, WE TOOK FOR A PREY TO OURSELVES.WM# 8 AND WE TOOK AT THAT TIME OUT OF THE HAND OF THE TWO KINGS OF THE AMORITESTJ THE LAND THAT WAS ON THIS SIDE JORDAN, FROM THE RIVER OF ARNON UNTO MOUNT HERMON;E# 9 (WHICH HERMON THE SIDONIANS CALL SIRION; AND THE AMORITES CALL ITB SHENIR;)AF# 10 ALL THE CITIES OF THE PLAIN, AND ALL GILEAD, AND ALL BASHAN, UNTO: SALCHAH AND EDREI, CITIES OF THE KINGDOM OF OG IN BASHAN.M# 11 FOR ONLY OG KING OF BASHAN REMAINED OF THE REMNANT OF GIANTS; BEHOLD HIS I BEDSTEAD WAS A BEDSTEAD OF IRON; IS IT NOT IN RABBATH OF THE CHILDREN OF N AMMON? NINE CUBITS WAS THE LENGTH THEREOF, AND FOUR CUBITS THE BREADTH OF IT, AFTER THE CUBIT OF A MAN.L# 12 AND THIS LAND, WHICH WE POSSESSED AT THAT TIME, FROM AROER, WHICH IS BYL THE RIVER ARNON, AND HALF MOUNT GILEAD, AND THE CITIES THEREOF, GAVE I UNTO# THE REUBENITES AND TO THE GADITES.LL# 13 AND THE REST OF GILEAD, AND ALL BASHAN, BEING THE KINGDOM OF OG, GAVE IK UNTO THE HALF TRIBE OF MANASSEH; ALL THE REGION OF ARGOB, WITH ALL BASHAN,S% WHICH WAS CALLED THE LAND OF GIANTS.HK# 14 JAIR THE SON OF MANASSEH TOOK ALL THE COUNTRY OF ARGOB UNTO THE COASTSH> OF GESHURI AND MAACHATHI; AND CALLED THEM AFTER HIS OWN NAME,! BASHANHAVOTHJAIR, UNTO THIS DAY.F00c+k+<%X>%+%O-%TADATADATA## 15 AND I GAVE GILEAD UNTO MACHIR.NI# 16 AND UNTO THE REUBENITES AND UNTO THE GADITES I GAVE FROM GILEAD EVENII UNTO THE RIVER ARNON HALF THE VALLEY, AND THE BORDER EVEN UNTO THE RIVERG6 JABBOK, WHICH IS THE BORDER OF THE CHILDREN OF AMMON;L# 17 THE PLAIN ALSO, AND JORDAN, AND THE COAST THEREOF, FROM CHINNERETH EVENL UNTO THE SEA OF THE PLAIN, EVEN THE SALT SEA, UNDER ASHDOTHPISGAH EASTWARD.K# 18 AND I COMMANDED YOU AT THAT TIME, SAYING, THE LORD YOUR GOD HATH GIVENBK YOU THIS LAND TO POSSESS IT: YE SHALL PASS OVER ARMED BEFORE YOUR BRETHRENA7 THE CHILDREN OF ISRAEL, ALL THAT ARE MEET FOR THE WAR.IL# 19 BUT YOUR WIVES, AND YOUR LITTLE ONES, AND YOUR CATTLE, (FOR I KNOW THATI YE HAVE MUCH CATTLE,) SHALL ABIDE IN YOUR CITIES WHICH I HAVE GIVEN YOU;PL# 20 UNTIL THE LORD HAVE GIVEN REST UNTO YOUR BRETHREN, AS WELL AS UNTO YOU,M AND UNTIL THEY ALSO POSSESS THE LAND WHICH THE LORD YOUR GOD HATH GIVEN THEMCM BEYOND JORDAN: AND THEN SHALL YE RETURN EVERY MAN UNTO HIS POSSESSION, WHICHD I HAVE GIVEN YOU.J# 21 AND I COMMANDED JOSHUA AT THAT TIME, SAYING, THINE EYES HAVE SEEN ALLL THAT THE LORD YOUR GOD HATH DONE UNTO THESE TWO KINGS: SO SHALL THE LORD DO, UNTO ALL THE KINGDOMS WHITHER THOU PASSEST.J# 22 YE SHALL NOT FEAR THEM: FOR THE LORD YOUR GOD HE SHALL FIGHT FOR YOU.2# 23 AND I BESOUGHT THE LORD AT THAT TIME, SAYING,K# 24 O LORD GOD, THOU HAST BEGUN TO SHEW THY SERVANT THY GREATNESS, AND THYNF MIGHTY HAND: FOR WHAT GOD IS THERE IN HEAVEN OR IN EARTH, THAT CAN DO4 ACCORDING TO THY WORKS, AND ACCORDING TO THY MIGHT?F# 25 I PRAY THEE, LET ME GO OVER, AND SEE THE GOOD LAND THAT IS BEYOND+ JORDAN, THAT GOODLY MOUNTAIN, AND LEBANON.SJ# 26 BUT THE LORD WAS WROTH WITH ME FOR YOUR SAKES, AND WOULD NOT HEAR ME:N AND THE LORD SAID UNTO ME, LET IT SUFFICE THEE; SPEAK NO MORE UNTO ME OF THIS MATTER.M# 27 GET THEE UP INTO THE TOP OF PISGAH, AND LIFT UP THINE EYES WESTWARD, ANDTK NORTHWARD, AND SOUTHWARD, AND EASTWARD, AND BEHOLD IT WITH THINE EYES: FORA$ THOU SHALT NOT GO OVER THIS JORDAN.K# 28 BUT CHARGE JOSHUA, AND ENCOURAGE HIM, AND STRENGTHEN HIM: FOR HE SHALLHN GO OVER BEFORE THIS PEOPLE, AND HE SHALL CAUSE THEM TO INHERIT THE LAND WHICH THOU SHALT SEE.5# 29 SO WE ABODE IN THE VALLEY OVER AGAINST BETHPEOR.D = CHAPTER 4 N# 1 NOW THEREFORE HEARKEN, O ISRAEL, UNTO THE STATUTES AND UNTO THE JUDGMENTS,K WHICH I TEACH YOU, FOR TO DO THEM, THAT YE MAY LIVE, AND GO IN AND POSSESSH8 THE LAND WHICH THE LORD GOD OF YOUR FATHERS GIVETH YOU.H# 2 YE SHALL NOT ADD UNTO THE WORD WHICH I COMMAND YOU, NEITHER SHALL YEK DIMINISH OUGHT FROM IT, THAT YE MAY KEEP THE COMMANDMENTS OF THE LORD YOURP GOD WHICH I COMMAND YOU.HJ# 3 YOUR EYES HAVE SEEN WHAT THE LORD DID BECAUSE OF BAALPEOR: FOR ALL THEL MEN THAT FOLLOWED BAALPEOR, THE LORD THY GOD HATH DESTROYED THEM FROM AMONG YOU.HL# 4 BUT YE THAT DID CLEAVE UNTO THE LORD YOUR GOD ARE ALIVE EVERY ONE OF YOU THIS DAY.M# 5 BEHOLD, I HAVE TAUGHT YOU STATUTES AND JUDGMENTS, EVEN AS THE LORD MY GOD.L COMMANDED ME, THAT YE SHOULD DO SO IN THE LAND WHITHER YE GO TO POSSESS IT.@# 6 KEEP THEREFORE AND DO THEM; FOR THIS IS YOUR WISDOM AND YOURF UNDERSTANDING IN THE SIGHT OF THE NATIONS, WHICH SHALL HEAR ALL THESEH STATUTES, AND SAY, SURELY THIS GREAT NATION IS A WISE AND UNDERSTANDING PEOPLE.M# 7 FOR WHAT NATION IS THERE SO GREAT, WHO HATH GOD SO NIGH UNTO THEM, AS THE 9 LORD OUR GOD IS IN ALL THINGS THAT WE CALL UPON HIM FOR?EJ# 8 AND WHAT NATION IS THERE SO GREAT, THAT HATH STATUTES AND JUDGMENTS SO< RIGHTEOUS AS ALL THIS LAW, WHICH I SET BEFORE YOU THIS DAY?M# 9 ONLY TAKE HEED TO THYSELF, AND KEEP THY SOUL DILIGENTLY, LEST THOU FORGETK THE THINGS WHICH THINE EYES HAVE SEEN, AND LEST THEY DEPART FROM THY HEARTUF ALL THE DAYS OF THY LIFE: BUT TEACH THEM THY SONS, AND THY SONS SONS;K# 10 SPECIALLY THE DAY THAT THOU STOODEST BEFORE THE LORD THY GOD IN HOREB,AK WHEN THE LORD SAID UNTO ME, GATHER ME THE PEOPLE TOGETHER, AND I WILL MAKEHJ THEM HEAR MY WORDS, THAT THEY MAY LEARN TO FEAR ME ALL THE DAYS THAT THEYC SHALL LIVE UPON THE EARTH, AND THAT THE00c+)D%5%T6%! !Y MAY TEACH THEIR CHILDREN.DK# 11 AND YE CAME NEAR AND STOOD UNDER THE MOUNTAIN; AND THE MOUNTAIN BURNEDCE WITH FIRE UNTO THE MIDST OF HEAVEN, WITH DARKNESS, CLOUDS, AND THICKD DARKNESS.K# 12 AND THE LORD SPAKE UNTO YOU OUT OF THE MIDST OF THE FIRE: YE HEARD THE B VOICE OF THE WORDS, BUT SAW NO SIMILITUDE; ONLY YE HEARD A VOICE.E# 13 AND HE DECLARED UNTO YOU HIS COVENANT, WHICH HE COMMANDED YOU TOML PERFORM, EVEN TEN COMMANDMENTS; AND HE WROTE THEM UPON TWO TABLES OF STONE.E# 14 AND THE LORD COMMANDED ME AT THAT TIME TO TEACH YOU STATUTES ANDEK JUDGMENTS, THAT YE MIGHT DO THEM IN THE LAND WHITHER YE GO OVER TO POSSESS  IT.I# 15 TAKE YE THEREFORE GOOD HEED UNTO YOURSELVES; FOR YE SAW NO MANNER OFLM SIMILITUDE ON THE DAY THAT THE LORD SPAKE UNTO YOU IN HOREB OUT OF THE MIDSTO OF THE FIRE: L# 16 LEST YE CORRUPT YOURSELVES, AND MAKE YOU A GRAVEN IMAGE, THE SIMILITUDE/ OF ANY FIGURE, THE LIKENESS OF MALE OR FEMALE,CH# 17 THE LIKENESS OF ANY BEAST THAT IS ON THE EARTH, THE LIKENESS OF ANY$ WINGED FOWL THAT FLIETH IN THE AIR,K# 18 THE LIKENESS OF ANY THING THAT CREEPETH ON THE GROUND, THE LIKENESS OF 2 ANY FISH THAT IS IN THE WATERS BENEATH THE EARTH:J# 19 AND LEST THOU LIFT UP THINE EYES UNTO HEAVEN, AND WHEN THOU SEEST THEL SUN, AND THE MOON, AND THE STARS, EVEN ALL THE HOST OF HEAVEN, SHOULDEST BEL DRIVEN TO WORSHIP THEM, AND SERVE THEM, WHICH THE LORD THY GOD HATH DIVIDED) UNTO ALL NATIONS UNDER THE WHOLE HEAVEN.7G# 20 BUT THE LORD HATH TAKEN YOU, AND BROUGHT YOU FORTH OUT OF THE IRONNN FURNACE, EVEN OUT OF EGYPT, TO BE UNTO HIM A PEOPLE OF INHERITANCE, AS YE ARE THIS DAY.L# 21 FURTHERMORE THE LORD WAS ANGRY WITH ME FOR YOUR SAKES, AND SWARE THAT IL SHOULD NOT GO OVER JORDAN, AND THAT I SHOULD NOT GO IN UNTO THAT GOOD LAND,7 WHICH THE LORD THY GOD GIVETH THEE FOR AN INHERITANCE:HL# 22 BUT I MUST DIE IN THIS LAND, I MUST NOT GO OVER JORDAN: BUT YE SHALL GO" OVER, AND POSSESS THAT GOOD LAND.L# 23 TAKE HEED UNTO YOURSELVES, LEST YE FORGET THE COVENANT OF THE LORD YOURM GOD, WHICH HE MADE WITH YOU, AND MAKE YOU A GRAVEN IMAGE, OR THE LIKENESS OFA7 ANY THING, WHICH THE LORD THY GOD HATH FORBIDDEN THEE. B# 24 FOR THE LORD THY GOD IS A CONSUMING FIRE, EVEN A JEALOUS GOD.I# 25 WHEN THOU SHALT BEGET CHILDREN, AND CHILDRENS CHILDREN, AND YE SHALLHI HAVE REMAINED LONG IN THE LAND, AND SHALL CORRUPT YOURSELVES, AND MAKE A N GRAVEN IMAGE, OR THE LIKENESS OF ANY THING, AND SHALL DO EVIL IN THE SIGHT OF+ THE LORD THY GOD, TO PROVOKE HIM TO ANGER:TK# 26 I CALL HEAVEN AND EARTH TO WITNESS AGAINST YOU THIS DAY, THAT YE SHALLAM SOON UTTERLY PERISH FROM OFF THE LAND WHEREUNTO YE GO OVER JORDAN TO POSSESSEL IT; YE SHALL NOT PROLONG YOUR DAYS UPON IT, BUT SHALL UTTERLY BE DESTROYED.K# 27 AND THE LORD SHALL SCATTER YOU AMONG THE NATIONS, AND YE SHALL BE LEFTHB FEW IN NUMBER AMONG THE HEATHEN, WHITHER THE LORD SHALL LEAD YOU.K# 28 AND THERE YE SHALL SERVE GODS, THE WORK OF MENS HANDS, WOOD AND STONE,I1 WHICH NEITHER SEE, NOR HEAR, NOR EAT, NOR SMELL.TI# 29 BUT IF FROM THENCE THOU SHALT SEEK THE LORD THY GOD, THOU SHALT FINDL@ HIM, IF THOU SEEK HIM WITH ALL THY HEART AND WITH ALL THY SOUL.K# 30 WHEN THOU ART IN TRIBULATION, AND ALL THESE THINGS ARE COME UPON THEE,RH EVEN IN THE LATTER DAYS, IF THOU TURN TO THE LORD THY GOD, AND SHALT BE OBEDIENT UNTO HIS VOICE;IH# 31 (FOR THE LORD THY GOD IS A MERCIFUL GOD;) HE WILL NOT FORSAKE THEE,L NEITHER DESTROY THEE, NOR FORGET THE COVENANT OF THY FATHERS WHICH HE SWARE UNTO THEM.EM# 32 FOR ASK NOW OF THE DAYS THAT ARE PAST, WHICH WERE BEFORE THEE, SINCE THEGM DAY THAT GOD CREATED MAN UPON THE EARTH, AND ASK FROM THE ONE SIDE OF HEAVENYK UNTO THE OTHER, WHETHER THERE HATH BEEN ANY SUCH THING AS THIS GREAT THING IS, OR HATH BEEN HEARD LIKE IT?K# 33 DID EVER PEOPLE HEAR THE VOICE OF GOD SPEAKING OUT OF THE MIDST OF THE $ FIRE, AS THOU HAST HEARD, AND LIVE?F# 34 OR HATH GOD ASSAYED TO GO AND TAKE HIM A NATION FROM THE MIDST OFM ANOTHER NATION, BY TEMPTATIONS, BY SIGNS, AND BY WONDERS, AND BY WAR, AND BYAN A MIGHTY HAND, AND BY A STRETCHED OUT00c+k+<%X>%+%O-%TADATADATA ARM, AND BY GREAT TERRORS, ACCORDING TOB ALL THAT THE LORD YOUR GOD DID FOR YOU IN EGYPT BEFORE YOUR EYES?I# 35 UNTO THEE IT WAS SHEWED, THAT THOU MIGHTEST KNOW THAT THE LORD HE ISH$ GOD; THERE IS NONE ELSE BESIDE HIM.I# 36 OUT OF HEAVEN HE MADE THEE TO HEAR HIS VOICE, THAT HE MIGHT INSTRUCTUJ THEE: AND UPON EARTH HE SHEWED THEE HIS GREAT FIRE; AND THOU HEARDEST HIS$ WORDS OUT OF THE MIDST OF THE FIRE.J# 37 AND BECAUSE HE LOVED THY FATHERS, THEREFORE HE CHOSE THEIR SEED AFTERL THEM, AND BROUGHT THEE OUT IN HIS SIGHT WITH HIS MIGHTY POWER OUT OF EGYPT;I# 38 TO DRIVE OUT NATIONS FROM BEFORE THEE GREATER AND MIGHTIER THAN THOUAL ART, TO BRING THEE IN, TO GIVE THEE THEIR LAND FOR AN INHERITANCE, AS IT IS THIS DAY.K# 39 KNOW THEREFORE THIS DAY, AND CONSIDER IT IN THINE HEART, THAT THE LORDUK HE IS GOD IN HEAVEN ABOVE, AND UPON THE EARTH BENEATH: THERE IS NONE ELSE.J# 40 THOU SHALT KEEP THEREFORE HIS STATUTES, AND HIS COMMANDMENTS, WHICH IL COMMAND THEE THIS DAY, THAT IT MAY GO WELL WITH THEE, AND WITH THY CHILDRENL AFTER THEE, AND THAT THOU MAYEST PROLONG THY DAYS UPON THE EARTH, WHICH THE$ LORD THY GOD GIVETH THEE, FOR EVER.C# 41 THEN MOSES SEVERED THREE CITIES ON THIS SIDE JORDAN TOWARD THEI SUNRISING;AH# 42 THAT THE SLAYER MIGHT FLEE THITHER, WHICH SHOULD KILL HIS NEIGHBOURN UNAWARES, AND HATED HIM NOT IN TIMES PAST; AND THAT FLEEING UNTO ONE OF THESE CITIES HE MIGHT LIVE:B# 43 NAMELY, BEZER IN THE WILDERNESS, IN THE PLAIN COUNTRY, OF THEN REUBENITES; AND RAMOTH IN GILEAD, OF THE GADITES; AND GOLAN IN BASHAN, OF THE MANASSITES.G# 44 AND THIS IS THE LAW WHICH MOSES SET BEFORE THE CHILDREN OF ISRAEL:TJ# 45 THESE ARE THE TESTIMONIES, AND THE STATUTES, AND THE JUDGMENTS, WHICHM MOSES SPAKE UNTO THE CHILDREN OF ISRAEL, AFTER THEY CAME FORTH OUT OF EGYPT.IM# 46 ON THIS SIDE JORDAN, IN THE VALLEY OVER AGAINST BETHPEOR, IN THE LAND OFUN SIHON KING OF THE AMORITES, WHO DWELT AT HESHBON, WHOM MOSES AND THE CHILDREN: OF ISRAEL SMOTE, AFTER THEY WERE COME FORTH OUT OF EGYPT:H# 47 AND THEY POSSESSED HIS LAND, AND THE LAND OF OG KING OF BASHAN, TWOL KINGS OF THE AMORITES, WHICH WERE ON THIS SIDE JORDAN TOWARD THE SUNRISING;I# 48 FROM AROER, WHICH IS BY THE BANK OF THE RIVER ARNON, EVEN UNTO MOUNTU SION, WHICH IS HERMON,LM# 49 AND ALL THE PLAIN ON THIS SIDE JORDAN EASTWARD, EVEN UNTO THE SEA OF THE $ PLAIN, UNDER THE SPRINGS OF PISGAH. = CHAPTER 5 H# 1 AND MOSES CALLED ALL ISRAEL, AND SAID UNTO THEM, HEAR, O ISRAEL, THEN STATUTES AND JUDGMENTS WHICH I SPEAK IN YOUR EARS THIS DAY, THAT YE MAY LEARN THEM, AND KEEP, AND DO THEM. 6# 2 THE LORD OUR GOD MADE A COVENANT WITH US IN HOREB.K# 3 THE LORD MADE NOT THIS COVENANT WITH OUR FATHERS, BUT WITH US, EVEN US,F' WHO ARE ALL OF US HERE ALIVE THIS DAY.,J# 4 THE LORD TALKED WITH YOU FACE TO FACE IN THE MOUNT OUT OF THE MIDST OF THE FIRE,K# 5 (I STOOD BETWEEN THE LORD AND YOU AT THAT TIME, TO SHEW YOU THE WORD OF M THE LORD: FOR YE WERE AFRAID BY REASON OF THE FIRE, AND WENT NOT UP INTO THEE MOUNT;) SAYING,L# 6 I AM THE LORD THY GOD, WHICH BROUGHT THEE OUT OF THE LAND OF EGYPT, FROM THE HOUSE OF BONDAGE..# 7 THOU SHALT HAVE NONE OTHER GODS BEFORE ME.K# 8 THOU SHALT NOT MAKE THEE ANY GRAVEN IMAGE, OR ANY LIKENESS OF ANY THINGHL THAT IS IN HEAVEN ABOVE, OR THAT IS IN THE EARTH BENEATH, OR THAT IS IN THE WATERS BENEATH THE EARTH:M# 9 THOU SHALT NOT BOW DOWN THYSELF UNTO THEM, NOR SERVE THEM: FOR I THE LORD H THY GOD AM A JEALOUS GOD, VISITING THE INIQUITY OF THE FATHERS UPON THED CHILDREN UNTO THE THIRD AND FOURTH GENERATION OF THEM THAT HATE ME,F# 10 AND SHEWING MERCY UNTO THOUSANDS OF THEM THAT LOVE ME AND KEEP MY COMMANDMENTS.K# 11 THOU SHALT NOT TAKE THE NAME OF THE LORD THY GOD IN VAIN: FOR THE LORDE: WILL NOT HOLD HIM GUILTLESS THAT TAKETH HIS NAME IN VAIN.L# 12 KEEP THE SABBATH DAY TO SANCTIFY IT, AS THE LORD THY GOD HATH COMMANDED THEE.5# 13 SIX DAYS THOU SHALT LABOUR, AND DO ALL THY WORK: M# 14 BUT THE SEVENTH DAY IS THE SABBATH OF THE LORD THY GOD: IN IT THOU SHALTIN NOT DO ANY WORK, THOU, NOR THY SON, NOR THY00c+)D%5%T6%! ! DAUGHTER, NOR THY MANSERVANT, NORM THY MAIDSERVANT, NOR THINE OX, NOR THINE ASS, NOR ANY OF THY CATTLE, NOR THYTL STRANGER THAT IS WITH IN THY GATES; THAT THY MANSERVANT AND THY MAIDSERVANT MAY REST AS WELL AS THOU.M# 15 AND REMEMBER THAT THOU WAST A SERVANT IN THE LAND OF EGYPT, AND THAT THE N LORD THY GOD BROUGHT THEE OUT THENCE THROUGH A MIGHTY HAND AND BY A STRETCHEDL OUT ARM: THEREFORE THE LORD THY GOD COMMANDED THEE TO KEEP THE SABBATH DAY.I# 16 HONOUR THY FATHER AND THY MOTHER, AS THE LORD THY GOD HATH COMMANDEDNL THEE; THAT THY DAYS MAY BE PROLONGED, AND THAT IT MAY GO WELL WITH THEE, IN- THE LAND WHICH THE LORD THY GOD GIVETH THEE.A# 17 THOU SHALT NOT KILL.D(# 18 NEITHER SHALT THOU COMMIT ADULTERY.# 19 NEITHER SHALT THOU STEAL.A# 20 NEITHER SHALT THOU BEAR FALSE WITNESS AGAINST THY NEIGHBOUR.RL# 21 NEITHER SHALT THOU DESIRE THY NEIGHBOURS WIFE, NEITHER SHALT THOU COVETL THY NEIGHBOURS HOUSE, HIS FIELD, OR HIS MANSERVANT, OR HIS MAIDSERVANT, HIS5 OX, OR HIS ASS, OR ANY THING THAT IS THY NEIGHBOURS.NJ# 22 THESE WORDS THE LORD SPAKE UNTO ALL YOUR ASSEMBLY IN THE MOUNT OUT OFM THE MIDST OF THE FIRE, OF THE CLOUD, AND OF THE THICK DARKNESS, WITH A GREATLK VOICE: AND HE ADDED NO MORE. AND HE WROTE THEM IN TWO TABLES OF STONE, AND DELIVERED THEM UNTO ME.I# 23 AND IT CAME TO PASS, WHEN YE HEARD THE VOICE OUT OF THE MIDST OF THEYL DARKNESS, (FOR THE MOUNTAIN DID BURN WITH FIRE,) THAT YE CAME NEAR UNTO ME,4 EVEN ALL THE HEADS OF YOUR TRIBES, AND YOUR ELDERS;K# 24 AND YE SAID, BEHOLD, THE LORD OUR GOD HATH SHEWED US HIS GLORY AND HIS M GREATNESS, AND WE HAVE HEARD HIS VOICE OUT OF THE MIDST OF THE FIRE: WE HAVED: SEEN THIS DAY THAT GOD DOTH TALK WITH MAN, AND HE LIVETH.M# 25 NOW THEREFORE WHY SHOULD WE DIE? FOR THIS GREAT FIRE WILL CONSUME US: IFNC WE HEAR THE VOICE OF THE LORD OUR GOD ANY MORE, THEN WE SHALL DIE.MK# 26 FOR WHO IS THERE OF ALL FLESH, THAT HATH HEARD THE VOICE OF THE LIVINGNB GOD SPEAKING OUT OF THE MIDST OF THE FIRE, AS WE HAVE, AND LIVED?J# 27 GO THOU NEAR, AND HEAR ALL THAT THE LORD OUR GOD SHALL SAY: AND SPEAKJ THOU UNTO US ALL THAT THE LORD OUR GOD SHALL SPEAK UNTO THEE; AND WE WILL HEAR IT, AND DO IT.K# 28 AND THE LORD HEARD THE VOICE OF YOUR WORDS, WHEN YE SPAKE UNTO ME; ANDDK THE LORD SAID UNTO ME, I HAVE HEARD THE VOICE OF THE WORDS OF THIS PEOPLE,OI WHICH THEY HAVE SPOKEN UNTO THEE: THEY HAVE WELL SAID ALL THAT THEY HAVEH SPOKEN.J# 29 O THAT THERE WERE SUCH AN HEART IN THEM, THAT THEY WOULD FEAR ME, ANDK KEEP ALL MY COMMANDMENTS ALWAYS, THAT IT MIGHT BE WELL WITH THEM, AND WITHH THEIR CHILDREN FOR EVER!N3# 30 GO SAY TO THEM, GET YOU INTO YOUR TENTS AGAIN.;K# 31 BUT AS FOR THEE, STAND THOU HERE BY ME, AND I WILL SPEAK UNTO THEE ALL N THE COMMANDMENTS, AND THE STATUTES, AND THE JUDGMENTS, WHICH THOU SHALT TEACHI THEM, THAT THEY MAY DO THEM IN THE LAND WHICH I GIVE THEM TO POSSESS IT.AI# 32 YE SHALL OBSERVE TO DO THEREFORE AS THE LORD YOUR GOD HATH COMMANDEDH? YOU: YE SHALL NOT TURN ASIDE TO THE RIGHT HAND OR TO THE LEFT.EI# 33 YE SHALL WALK IN ALL THE WAYS WHICH THE LORD YOUR GOD HATH COMMANDED I YOU, THAT YE MAY LIVE, AND THAT IT MAY BE WELL WITH YOU, AND THAT YE MAYO6 PROLONG YOUR DAYS IN THE LAND WHICH YE SHALL POSSESS. = CHAPTER 6 N# 1 NOW THESE ARE THE COMMANDMENTS, THE STATUTES, AND THE JUDGMENTS, WHICH THEH LORD YOUR GOD COMMANDED TO TEACH YOU, THAT YE MIGHT DO THEM IN THE LAND WHITHER YE GO TO POSSESS IT:RJ# 2 THAT THOU MIGHTEST FEAR THE LORD THY GOD, TO KEEP ALL HIS STATUTES ANDM HIS COMMANDMENTS, WHICH I COMMAND THEE, THOU, AND THY SON, AND THY SONS SON, > ALL THE DAYS OF THY LIFE; AND THAT THY DAYS MAY BE PROLONGED.L# 3 HEAR THEREFORE, O ISRAEL, AND OBSERVE TO DO IT; THAT IT MAY BE WELL WITHM THEE, AND THAT YE MAY INCREASE MIGHTILY, AS THE LORD GOD OF THY FATHERS HATH = PROMISED THEE, IN THE LAND THAT FLOWETH WITH MILK AND HONEY. 1# 4 HEAR, O ISRAEL: THE LORD OUR GOD IS ONE LORD: K# 5 AND THOU SHALT LOVE THE LORD THY GOD WITH ALL THINE HEART, AND WITH ALL " THY SOUL, AND WITH ALL THY MIGHT.L# 6 AND THESE WORDS, WHICH00c+k+<%X>%+%O-%TADATADATA I COMMAND THEE THIS DAY, SHALL BE IN THINE HEART:M# 7 AND THOU SHALT TEACH THEM DILIGENTLY UNTO THY CHILDREN, AND SHALT TALK OFNM THEM WHEN THOU SITTEST IN THINE HOUSE, AND WHEN THOU WALKEST BY THE WAY, ANDI/ WHEN THOU LIEST DOWN, AND WHEN THOU RISEST UP.OM# 8 AND THOU SHALT BIND THEM FOR A SIGN UPON THINE HAND, AND THEY SHALL BE AS  FRONTLETS BETWEEN THINE EYES.L# 9 AND THOU SHALT WRITE THEM UPON THE POSTS OF THY HOUSE, AND ON THY GATES.L# 10 AND IT SHALL BE, WHEN THE LORD THY GOD SHALL HAVE BROUGHT THEE INTO THEM LAND WHICH HE SWARE UNTO THY FATHERS, TO ABRAHAM, TO ISAAC, AND TO JACOB, TOT= GIVE THEE GREAT AND GOODLY CITIES, WHICH THOU BUILDEDST NOT,TK# 11 AND HOUSES FULL OF ALL GOOD THINGS, WHICH THOU FILLEDST NOT, AND WELLSDG DIGGED, WHICH THOU DIGGEDST NOT, VINEYARDS AND OLIVE TREES, WHICH THOUE7 PLANTEDST NOT; WHEN THOU SHALT HAVE EATEN AND BE FULL;EK# 12 THEN BEWARE LEST THOU FORGET THE LORD, WHICH BROUGHT THEE FORTH OUT OFE. THE LAND OF EGYPT, FROM THE HOUSE OF BONDAGE.L# 13 THOU SHALT FEAR THE LORD THY GOD, AND SERVE HIM, AND SHALT SWEAR BY HIS NAME.J# 14 YE SHALL NOT GO AFTER OTHER GODS, OF THE GODS OF THE PEOPLE WHICH ARE ROUND ABOUT YOU;1L# 15 (FOR THE LORD THY GOD IS A JEALOUS GOD AMONG YOU) LEST THE ANGER OF THEL LORD THY GOD BE KINDLED AGAINST THEE, AND DESTROY THEE FROM OFF THE FACE OF THE EARTH.TG# 16 YE SHALL NOT TEMPT THE LORD YOUR GOD, AS YE TEMPTED HIM IN MASSAH. L# 17 YE SHALL DILIGENTLY KEEP THE COMMANDMENTS OF THE LORD YOUR GOD, AND HIS= TESTIMONIES, AND HIS STATUTES, WHICH HE HATH COMMANDED THEE. M# 18 AND THOU SHALT DO THAT WHICH IS RIGHT AND GOOD IN THE SIGHT OF THE LORD:OJ THAT IT MAY BE WELL WITH THEE, AND THAT THOU MAYEST GO IN AND POSSESS THE1 GOOD LAND WHICH THE LORD SWARE UNTO THY FATHERS.LM# 19 TO CAST OUT ALL THINE ENEMIES FROM BEFORE THEE, AS THE LORD HATH SPOKEN.EH# 20 AND WHEN THY SON ASKETH THEE IN TIME TO COME, SAYING, WHAT MEAN THEN TESTIMONIES, AND THE STATUTES, AND THE JUDGMENTS, WHICH THE LORD OUR GOD HATH COMMANDED YOU?IM# 21 THEN THOU SHALT SAY UNTO THY SON, WE WERE PHARAOHS BONDMEN IN EGYPT; ANDA5 THE LORD BROUGHT US OUT OF EGYPT WITH A MIGHTY HAND:TL# 22 AND THE LORD SHEWED SIGNS AND WONDERS, GREAT AND SORE, UPON EGYPT, UPON6 PHARAOH, AND UPON ALL HIS HOUSEHOLD, BEFORE OUR EYES:M# 23 AND HE BROUGHT US OUT FROM THENCE, THAT HE MIGHT BRING US IN, TO GIVE USD* THE LAND WHICH HE SWARE UNTO OUR FATHERS.M# 24 AND THE LORD COMMANDED US TO DO ALL THESE STATUTES, TO FEAR THE LORD OURTL GOD, FOR OUR GOOD ALWAYS, THAT HE MIGHT PRESERVE US ALIVE, AS IT IS AT THIS DAY.EE# 25 AND IT SHALL BE OUR RIGHTEOUSNESS, IF WE OBSERVE TO DO ALL THESEH? COMMANDMENTS BEFORE THE LORD OUR GOD, AS HE HATH COMMANDED US.A = CHAPTER 7 N# 1 WHEN THE LORD THY GOD SHALL BRING THEE INTO THE LAND WHITHER THOU GOEST TON POSSESS IT, AND HATH CAST OUT MANY NATIONS BEFORE THEE, THE HITTITES, AND THEK GIRGASHITES, AND THE AMORITES, AND THE CANAANITES, AND THE PERIZZITES, ANDTN THE HIVITES, AND THE JEBUSITES, SEVEN NATIONS GREATER AND MIGHTIER THAN THOU;H# 2 AND WHEN THE LORD THY GOD SHALL DELIVER THEM BEFORE THEE; THOU SHALTM SMITE THEM, AND UTTERLY DESTROY THEM; THOU SHALT MAKE NO COVENANT WITH THEM,, NOR SHEW MERCY UNTO THEM:L# 3 NEITHER SHALT THOU MAKE MARRIAGES WITH THEM; THY DAUGHTER THOU SHALT NOTB GIVE UNTO HIS SON, NOR HIS DAUGHTER SHALT THOU TAKE UNTO THY SON.J# 4 FOR THEY WILL TURN AWAY THY SON FROM FOLLOWING ME, THAT THEY MAY SERVEN OTHER GODS: SO WILL THE ANGER OF THE LORD BE KINDLED AGAINST YOU, AND DESTROY THEE SUDDENLY. H# 5 BUT THUS SHALL YE DEAL WITH THEM; YE SHALL DESTROY THEIR ALTARS, ANDJ BREAK DOWN THEIR IMAGES, AND CUT DOWN THEIR GROVES, AND BURN THEIR GRAVEN IMAGES WITH FIRE.L# 6 FOR THOU ART AN HOLY PEOPLE UNTO THE LORD THY GOD: THE LORD THY GOD HATHK CHOSEN THEE TO BE A SPECIAL PEOPLE UNTO HIMSELF, ABOVE ALL PEOPLE THAT AREU UPON THE FACE OF THE EARTH.K# 7 THE LORD DID NOT SET HIS LOVE UPON YOU, NOR CHOOSE YOU, BECAUSE YE WEREIF MORE IN NUMBER THAN ANY PEOPLE; FOR YE WERE THE FEWEST OF ALL PEOPLE:L# 8 BUT BECAUSE THE 00c+)D%5%T6%! !LORD LOVED YOU, AND BECAUSE HE WOULD KEEP THE OATH WHICHL HE HAD SWORN UNTO YOUR FATHERS, HATH THE LORD BROUGHT YOU OUT WITH A MIGHTYM HAND, AND REDEEMED YOU OUT OF THE HOUSE OF BONDMEN, FROM THE HAND OF PHARAOHE KING OF EGYPT.HL# 9 KNOW THEREFORE THAT THE LORD THY GOD, HE IS GOD, THE FAITHFUL GOD, WHICHM KEEPETH COVENANT AND MERCY WITH THEM THAT LOVE HIM AND KEEP HIS COMMANDMENTS  TO A THOUSAND GENERATIONS;L# 10 AND REPAYETH THEM THAT HATE HIM TO THEIR FACE, TO DESTROY THEM: HE WILLD NOT BE SLACK TO HIM THAT HATETH HIM, HE WILL REPAY HIM TO HIS FACE.J# 11 THOU SHALT THEREFORE KEEP THE COMMANDMENTS, AND THE STATUTES, AND THE6 JUDGMENTS, WHICH I COMMAND THEE THIS DAY, TO DO THEM.K# 12 WHEREFORE IT SHALL COME TO PASS, IF YE HEARKEN TO THESE JUDGMENTS, ANDDK KEEP, AND DO THEM, THAT THE LORD THY GOD SHALL KEEP UNTO THEE THE COVENANTH/ AND THE MERCY WHICH HE SWARE UNTO THY FATHERS:TK# 13 AND HE WILL LOVE THEE, AND BLESS THEE, AND MULTIPLY THEE: HE WILL ALSOEJ BLESS THE FRUIT OF THY WOMB, AND THE FRUIT OF THY LAND, THY CORN, AND THYL WINE, AND THINE OIL, THE INCREASE OF THY KINE, AND THE FLOCKS OF THY SHEEP,: IN THE LAND WHICH HE SWARE UNTO THY FATHERS TO GIVE THEE.G# 14 THOU SHALT BE BLESSED ABOVE ALL PEOPLE: THERE SHALL NOT BE MALE ORE/ FEMALE BARREN AMONG YOU, OR AMONG YOUR CATTLE.LM# 15 AND THE LORD WILL TAKE AWAY FROM THEE ALL SICKNESS, AND WILL PUT NONE OFNM THE EVIL DISEASES OF EGYPT, WHICH THOU KNOWEST, UPON THEE; BUT WILL LAY THEM: UPON ALL THEM THAT HATE THEE.G# 16 AND THOU SHALT CONSUME ALL THE PEOPLE WHICH THE LORD THY GOD SHALLII DELIVER THEE; THINE EYE SHALL HAVE NO PITY UPON THEM: NEITHER SHALT THOUD6 SERVE THEIR GODS; FOR THAT WILL BE A SNARE UNTO THEE.M# 17 IF THOU SHALT SAY IN THINE HEART, THESE NATIONS ARE MORE THAN I; HOW CANN I DISPOSSESS THEM?YL# 18 THOU SHALT NOT BE AFRAID OF THEM: BUT SHALT WELL REMEMBER WHAT THE LORD. THY GOD DID UNTO PHARAOH, AND UNTO ALL EGYPT;G# 19 THE GREAT TEMPTATIONS WHICH THINE EYES SAW, AND THE SIGNS, AND THETN WONDERS, AND THE MIGHTY HAND, AND THE STRETCHED OUT ARM, WHEREBY THE LORD THYJ GOD BROUGHT THEE OUT: SO SHALL THE LORD THY GOD DO UNTO ALL THE PEOPLE OF WHOM THOU ART AFRAID.J# 20 MOREOVER THE LORD THY GOD WILL SEND THE HORNET AMONG THEM, UNTIL THEY< THAT ARE LEFT, AND HIDE THEMSELVES FROM THEE, BE DESTROYED.M# 21 THOU SHALT NOT BE AFFRIGHTED AT THEM: FOR THE LORD THY GOD IS AMONG YOU,G A MIGHTY GOD AND TERRIBLE. J# 22 AND THE LORD THY GOD WILL PUT OUT THOSE NATIONS BEFORE THEE BY LITTLEI AND LITTLE: THOU MAYEST NOT CONSUME THEM AT ONCE, LEST THE BEASTS OF THE  FIELD INCREASE UPON THEE.I# 23 BUT THE LORD THY GOD SHALL DELIVER THEM UNTO THEE, AND SHALL DESTROYT9 THEM WITH A MIGHTY DESTRUCTION, UNTIL THEY BE DESTROYED.EM# 24 AND HE SHALL DELIVER THEIR KINGS INTO THINE HAND, AND THOU SHALT DESTROYTI THEIR NAME FROM UNDER HEAVEN: THERE SHALL NO MAN BE ABLE TO STAND BEFOREA& THEE, UNTIL THOU HAVE DESTROYED THEM.L# 25 THE GRAVEN IMAGES OF THEIR GODS SHALL YE BURN WITH FIRE: THOU SHALT NOTL DESIRE THE SILVER OR GOLD THAT IS ON THEM, NOR TAKE IT UNTO THEE, LEST THOU@ BE SNARED THERIN: FOR IT IS AN ABOMINATION TO THE LORD THY GOD.M# 26 NEITHER SHALT THOU BRING AN ABOMINATION INTO THINE HOUSE, LEST THOU BE A G CURSED THING LIKE IT: BUT THOU SHALT UTTERLY DETEST IT, AND THOU SHALTD, UTTERLY ABHOR IT; FOR IT IS A CURSED THING. = CHAPTER 8 N# 1 ALL THE COMMANDMENTS WHICH I COMMAND THEE THIS DAY SHALL YE OBSERVE TO DO,N THAT YE MAY LIVE, AND MULTIPLY, AND GO IN AND POSSESS THE LAND WHICH THE LORD SWARE UNTO YOUR FATHERS. M# 2 AND THOU SHALT REMEMBER ALL THE WAY WHICH THE LORD THY GOD LED THEE THESEBJ FORTY YEARS IN THE WILDERNESS, TO HUMBLE THEE, AND TO PROVE THEE, TO KNOWM WHAT WAS IN THINE HEART, WHETHER THOU WOULDEST KEEP HIS COMMANDMENTS, OR NO.LG# 3 AND HE HUMBLED THEE, AND SUFFERED THEE TO HUNGER, AND FED THEE WITH.K MANNA, WHICH THOU KNEWEST NOT, NEITHER DID THY FATHERS KNOW; THAT HE MIGHTYL MAKE THEE KNOW THAT MAN DOTH NOT LIVE BY BREAD ONLY, BUT BY EVERY WORD THAT7 PROCEEDETH OUT OF THE MOUTH OF THE LORD D00c+k+<%X>%+%O-%TADATADATAOTH MAN LIVE.HJ# 4 THY RAIMENT WAXED NOT OLD UPON THEE, NEITHER DID THY FOOT SWELL, THESE FORTY YEARS.IJ# 5 THOU SHALT ALSO CONSIDER IN THINE HEART, THAT, AS A MAN CHASTENETH HIS* SON, SO THE LORD THY GOD CHASTENETH THEE.K# 6 THEREFORE THOU SHALT KEEP THE COMMANDMENTS OF THE LORD THY GOD, TO WALKH IN HIS WAYS, AND TO FEAR HIM.L# 7 FOR THE LORD THY GOD BRINGETH THEE INTO A GOOD LAND, A LAND OF BROOKS OFE WATER, OF FOUNTAINS AND DEPTHS THAT SPRING OUT OF VALLEYS AND HILLS; L# 8 A LAND OF WHEAT, AND BARLEY, AND VINES, AND FIG TREES, AND POMEGRANATES; A LAND OF OIL OLIVE, AND HONEY;J# 9 A LAND WHEREIN THOU SHALT EAT BREAD WITHOUT SCARCENESS, THOU SHALT NOTK LACK ANY THING IN IT; A LAND WHOSE STONES ARE IRON, AND OUT OF WHOSE HILLSR THOU MAYEST DIG BRASS.MJ# 10 WHEN THOU HAST EATEN AND ART FULL, THEN THOU SHALT BLESS THE LORD THY0 GOD FOR THE GOOD LAND WHICH HE HATH GIVEN THEE.E# 11 BEWARE THAT THOU FORGET NOT THE LORD THY GOD, IN NOT KEEPING HIS M COMMANDMENTS, AND HIS JUDGMENTS, AND HIS STATUTES, WHICH I COMMAND THEE THISE DAY:PJ# 12 LEST WHEN THOU HAST EATEN AND ART FULL, AND HAST BUILT GOODLY HOUSES, AND DWELT THEREIN;CL# 13 AND WHEN THY HERDS AND THY FLOCKS MULTIPLY, AND THY SILVER AND THY GOLD5 IS MULTIPLIED, AND ALL THAT THOU HAST IS MULTIPLIED;0K# 14 THEN THINE HEART BE LIFTED UP, AND THOU FORGET THE LORD THY GOD, WHICHFH BROUGHT THEE FORTH OUT OF THE LAND OF EGYPT, FROM THE HOUSE OF BONDAGE;J# 15 WHO LED THEE THROUGH THAT GREAT AND TERRIBLE WILDERNESS, WHEREIN WEREJ FIERY SERPENTS, AND SCORPIONS, AND DROUGHT, WHERE THERE WAS NO WATER; WHO3 BROUGHT THEE FORTH WATER OUT OF THE ROCK OF FLINT;K# 16 WHO FED THEE IN THE WILDERNESS WITH MANNA, WHICH THY FATHERS KNEW NOT,YL THAT HE MIGHT HUMBLE THEE, AND THAT HE MIGHT PROVE THEE, TO DO THEE GOOD AT THY LATTER END;J# 17 AND THOU SAY IN THINE HEART, MY POWER AND THE MIGHT OF MINE HAND HATH GOTTEN ME THIS WEALTH.YL# 18 BUT THOU SHALT REMEMBER THE LORD THY GOD: FOR IT IS HE THAT GIVETH THEEL POWER TO GET WEALTH, THAT HE MAY ESTABLISH HIS COVENANT WHICH HE SWARE UNTO THY FATHERS, AS IT IS THIS DAY.I# 19 AND IT SHALL BE, IF THOU DO AT ALL FORGET THE LORD THY GOD, AND WALKLJ AFTER OTHER GODS, AND SERVE THEM, AND WORSHIP THEM, I TESTIFY AGAINST YOU& THIS DAY THAT YE SHALL SURELY PERISH.K# 20 AS THE NATIONS WHICH THE LORD DESTROYETH BEFORE YOUR FACE, SO SHALL YETN PERISH; BECAUSE YE WOULD NOT BE OBEDIENT UNTO THE VOICE OF THE LORD YOUR GOD. = CHAPTER 9 N# 1 HEAR, O ISRAEL: THOU ART TO PASS OVER JORDAN THIS DAY, TO GO IN TO POSSESSI NATIONS GREATER AND MIGHTIER THAN THYSELF, CITIES GREAT AND FENCED UP TOA HEAVEN,L# 2 A PEOPLE GREAT AND TALL, THE CHILDREN OF THE ANAKIMS, WHOM THOU KNOWEST,L AND OF WHOM THOU HAST HEARD SAY, WHO CAN STAND BEFORE THE CHILDREN OF ANAK! ITUJ# 3 UNDERSTAND THEREFORE THIS DAY, THAT THE LORD THY GOD IS HE WHICH GOETHJ OVER BEFORE THEE; AS A CONSUMING FIRE HE SHALL DESTROY THEM, AND HE SHALLK BRING THEM DOWN BEFORE THY FACE: SO SHALT THOU DRIVE THEM OUT, AND DESTROYO/ THEM QUICKLY, AS THE LORD HATH SAID UNTO THEE.TM# 4 SPEAK NOT THOU IN THINE HEART, AFTER THAT THE LORD THY GOD HATH CAST THEMEL OUT FROM BEFORE THEE, SAYING, FOR MY RIGHTEOUSNESS THE LORD HATH BROUGHT MEJ IN TO POSSESS THIS LAND: BUT FOR THE WICKEDNESS OF THESE NATIONS THE LORD& DOTH DRIVE THEM OUT FROM BEFORE THEE.J# 5 NOT FOR THY RIGHTEOUSNESS, OR FOR THE UPRIGHTNESS OF THINE HEART, DOSTK THOU GO TO POSSESS THEIR LAND: BUT FOR THE WICKEDNESS OF THESE NATIONS THETK LORD THY GOD DOTH DRIVE THEM OUT FROM BEFORE THEE, AND THAT HE MAY PERFORM K THE WORD WHICH THE LORD SWARE UNTO THY FATHERS, ABRAHAM, ISAAC, AND JACOB.AI# 6 UNDERSTAND THEREFORE, THAT THE LORD THY GOD GIVETH THEE NOT THIS GOOD M LAND TO POSSESS IT FOR THY RIGHTEOUSNESS; FOR THOU ART A STIFFNECKED PEOPLE.HK# 7 REMEMBER, AND FORGET NOT, HOW THOU PROVOKEDST THE LORD THY GOD TO WRATH,J IN THE WILDERNESS: FROM THE DAY THAT THOU DIDST DEPART OUT OF THE LAND OFJ EGYPT, UNTIL YE CAME UNTO THIS PLACE, YE HAVE BEEN REBELLIOUS AGAINST THE LORD.K# 8 ALSO IN HOREB YE PRO00c+)D%5%T6%! !VOKED THE LORD TO WRATH, SO THAT THE LORD WAS ANGRY WITH YOU TO HAVE DESTROYED YOU.J# 9 WHEN I WAS GONE UP INTO THE MOUNT TO RECEIVE THE TABLES OF STONE, EVENM THE TABLES OF THE COVENANT WHICH THE LORD MADE WITH YOU, THEN I ABODE IN THEEL MOUNT FORTY DAYS AND FORTY NIGHTS, I NEITHER DID EAT BREAD NOR DRINK WATER:H# 10 AND THE LORD DELIVERED UNTO ME TWO TABLES OF STONE WRITTEN WITH THEM FINGER OF GOD; AND ON THEM WAS WRITTEN ACCORDING TO ALL THE WORDS, WHICH THETL LORD SPAKE WITH YOU IN THE MOUNT OUT OF THE MIDST OF THE FIRE IN THE DAY OF THE ASSEMBLY.L# 11 AND IT CAME TO PASS AT THE END OF FORTY DAYS AND FORTY NIGHTS, THAT THEG LORD GAVE ME THE TWO TABLES OF STONE, EVEN THE TABLES OF THE COVENANT.ML# 12 AND THE LORD SAID UNTO ME, ARISE, GET THEE DOWN QUICKLY FROM HENCE; FORE THY PEOPLE WHICH THOU HAST BROUGHT FORTH OUT OF EGYPT HAVE CORRUPTED K THEMSELVES; THEY ARE QUICKLY TURNED ASIDE OUT OF THE WAY WHICH I COMMANDED * THEM; THEY HAVE MADE THEM A MOLTEN IMAGE.I# 13 FURTHERMORE THE LORD SPAKE UNTO ME, SAYING, I HAVE SEEN THIS PEOPLE,T) AND, BEHOLD, IT IS A STIFFNECKED PEOPLE:HH# 14 LET ME ALONE, THAT I MAY DESTROY THEM, AND BLOT OUT THEIR NAME FROMI UNDER HEAVEN: AND I WILL MAKE OF THEE A NATION MIGHTIER AND GREATER THAN  THEY.H# 15 SO I TURNED AND CAME DOWN FROM THE MOUNT, AND THE MOUNT BURNED WITH? FIRE: AND THE TWO TABLES OF THE COVENANT WERE IN MY TWO HANDS.CL# 16 AND I LOOKED, AND, BEHOLD, YE HAD SINNED AGAINST THE LORD YOUR GOD, ANDM HAD MADE YOU A MOLTEN CALF: YE HAD TURNED ASIDE QUICKLY OUT OF THE WAY WHICHT THE LORD HAD COMMANDED YOU.L# 17 AND I TOOK THE TWO TABLES, AND CAST THEM OUT OF MY TWO HANDS, AND BRAKE THEM BEFORE YOUR EYES.UK# 18 AND I FELL DOWN BEFORE THE LORD, AS AT THE FIRST, FORTY DAYS AND FORTYEK NIGHTS: I DID NEITHER EAT BREAD, NOR DRINK WATER, BECAUSE OF ALL YOUR SINSL WHICH YE SINNED, IN DOING WICKEDLY IN THE SIGHT OF THE LORD, TO PROVOKE HIM TO ANGER.J# 19 FOR I WAS AFRAID OF THE ANGER AND HOT DISPLEASURE, WHEREWITH THE LORDM WAS WROTH AGAINST YOU TO DESTROY YOU. BUT THE LORD HEARKENED UNTO ME AT THATE TIME ALSO.AH# 20 AND THE LORD WAS VERY ANGRY WITH AARON TO HAVE DESTROYED HIM: AND I% PRAYED FOR AARON ALSO THE SAME TIME. M# 21 AND I TOOK YOUR SIN, THE CALF WHICH YE HAD MADE, AND BURNT IT WITH FIRE,IN AND STAMPED IT, AND GROUND IT VERY SMALL, EVEN UNTIL IT WAS AS SMALL AS DUST:L AND I CAST THE DUST THEREOF INTO THE BROOK THAT DESCENDED OUT OF THE MOUNT.L# 22 AND AT TABERAH, AND AT MASSAH, AND AT KIBROTHHATTAAVAH, YE PROVOKED THE LORD TO WRATH.EI# 23 LIKEWISE WHEN THE LORD SENT YOU FROM KADESHBARNEA, SAYING, GO UP ANDTF POSSESS THE LAND WHICH I HAVE GIVEN YOU; THEN YE REBELLED AGAINST THEL COMMANDMENT OF THE LORD YOUR GOD, AND YE BELIEVED HIM NOT, NOR HEARKENED TO HIS VOICE.UK# 24 YE HAVE BEEN REBELLIOUS AGAINST THE LORD FROM THE DAY THAT I KNEW YOU.WL# 25 THUS I FELL DOWN BEFORE THE LORD FORTY DAYS AND FORTY NIGHTS, AS I FELLC DOWN AT THE FIRST; BECAUSE THE LORD HAD SAID HE WOULD DESTROY YOU.OL# 26 I PRAYED THEREFORE UNTO THE LORD, AND SAID, O LORD GOD, DESTROY NOT THYN PEOPLE AND THINE INHERITANCE, WHICH THOU HAST REDEEMED THROUGH THY GREATNESS,? WHICH THOU HAST BROUGHT FORTH OUT OF EGYPT WITH A MIGHTY HAND.UH# 27 REMEMBER THY SERVANTS, ABRAHAM, ISAAC, AND JACOB; LOOK NOT UNTO THEH STUBBORNNESS OF THIS PEOPLE, NOR TO THEIR WICKEDNESS, NOR TO THEIR SIN:J# 28 LEST THE LAND WHENCE THOU BROUGHTEST US OUT SAY, BECAUSE THE LORD WASL NOT ABLE TO BRING THEM INTO THE LAND WHICH HE PROMISED THEM, AND BECAUSE HEE HATED THEM, HE HATH BROUGHT THEM OUT TO SLAY THEM IN THE WILDERNESS.LM# 29 YET THEY ARE THY PEOPLE AND THINE INHERITANCE, WHICH THOU BROUGHTEST OUTH2 BY THY MIGHTY POWER AND BY THY STRETCHED OUT ARM. = CHAPTER 10 MN# 1 AT THAT TIME THE LORD SAID UNTO ME, HEW THEE TWO TABLES OF STONE LIKE UNTOM THE FIRST, AND COME UP UNTO ME INTO THE MOUNT, AND MAKE THEE AN ARK OF WOOD.WJ# 2 AND I WILL WRITE ON THE TABLES THE WORDS THAT WERE IN THE FIRST TABLES8 WHICH THOU BRAKEST, AND THOU SHALT PUT THEM IN THE ARK.I# 3 AND I MADE AN ARK 00c+k+<%X>%+%O-%TADATADATAOF SHITTIM WOOD, AND HEWED TWO TABLES OF STONE LIKE9J UNTO THE FIRST, AND WENT UP INTO THE MOUNT, HAVING THE TWO TABLES IN MINE HAND.G# 4 AND HE WROTE ON THE TABLES, ACCORDING TO THE FIRST WRITING, THE TENIM COMMANDMENTS, WHICH THE LORD SPAKE UNTO YOU IN THE MOUNT OUT OF THE MIDST OFNE THE FIRE IN THE DAY OF THE ASSEMBLY: AND THE LORD GAVE THEM UNTO ME.NK# 5 AND I TURNED MYSELF AND CAME DOWN FROM THE MOUNT, AND PUT THE TABLES INTG THE ARK WHICH I HAD MADE; AND THERE THEY BE, AS THE LORD COMMANDED ME.FE# 6 AND THE CHILDREN OF ISRAEL TOOK THEIR JOURNEY FROM BEEROTH OF THEDM CHILDREN OF JAAKAN TO MOSERA: THERE AARON DIED, AND THERE HE WAS BURIED; ANDE? ELEAZAR HIS SON MINISTERED IN THE PRIESTS OFFICE IN HIS STEAD.DM# 7 FROM THENCE THEY JOURNEYED UNTO GUDGODAH; AND FROM GUDGODAH TO JOTBATH, AR LAND OF RIVERS OF WATERS.M# 8 AT THAT TIME THE LORD SEPARATED THE TRIBE OF LEVI, TO BEAR THE ARK OF THETL COVENANT OF THE LORD, TO STAND BEFORE THE LORD TO MINISTER UNTO HIM, AND TO" BLESS IN HIS NAME, UNTO THIS DAY.K# 9 WHEREFORE LEVI HATH NO PART NOR INHERITANCE WITH HIS BRETHREN; THE LORDF@ IS HIS INHERITANCE, ACCORDING AS THE LORD THY GOD PROMISED HIM.K# 10 AND I STAYED IN THE MOUNT, ACCORDING TO THE FIRST TIME, FORTY DAYS ANDTM FORTY NIGHTS; AND THE LORD HEARKENED UNTO ME AT THAT TIME ALSO, AND THE LORDR WOULD NOT DESTROY THEE.J# 11 AND THE LORD SAID UNTO ME, ARISE, TAKE THY JOURNEY BEFORE THE PEOPLE,N THAT THEY MAY GO IN AND POSSESS THE LAND, WHICH I SWARE UNTO THEIR FATHERS TO GIVE UNTO THEM.M# 12 AND NOW, ISRAEL, WHAT DOTH THE LORD THY GOD REQUIRE OF THEE, BUT TO FEARTM THE LORD THY GOD, TO WALK IN ALL HIS WAYS, AND TO LOVE HIM, AND TO SERVE THE07 LORD THY GOD WITH ALL THY HEART AND WITH ALL THY SOUL,FL# 13 TO KEEP THE COMMANDMENTS OF THE LORD, AND HIS STATUTES, WHICH I COMMAND THEE THIS DAY FOR THY GOOD?K# 14 BEHOLD, THE HEAVEN AND THE HEAVEN OF HEAVENS IS THE LORDS THY GOD, THET& EARTH ALSO, WITH ALL THAT THEREIN IS.J# 15 ONLY THE LORD HAD A DELIGHT IN THY FATHERS TO LOVE THEM, AND HE CHOSEE THEIR SEED AFTER THEM, EVEN YOU ABOVE ALL PEOPLE, AS IT IS THIS DAY.TD# 16 CIRCUMCISE THEREFORE THE FORESKIN OF YOUR HEART, AND BE NO MORE STIFFNECKED.RL# 17 FOR THE LORD YOUR GOD IS GOD OF GODS, AND LORD OF LORDS, A GREAT GOD, AH MIGHTY, AND A TERRIBLE, WHICH REGARDETH NOT PERSONS, NOR TAKETH REWARD:M# 18 HE DOTH EXECUTE THE JUDGMENT OF THE FATHERLESS AND WIDOW, AND LOVETH THED* STRANGER, IN GIVING HIM FOOD AND RAIMENT.I# 19 LOVE YE THEREFORE THE STRANGER: FOR YE WERE STRANGERS IN THE LAND OFO EGYPT.RM# 20 THOU SHALT FEAR THE LORD THY GOD; HIM SHALT THOU SERVE, AND TO HIM SHALTS$ THOU CLEAVE, AND SWEAR BY HIS NAME.M# 21 HE IS THY PRAISE, AND HE IS THY GOD, THAT HATH DONE FOR THEE THESE GREATD1 AND TERRIBLE THINGS, WHICH THINE EYES HAVE SEEN.IJ# 22 THY FATHERS WENT DOWN INTO EGYPT WITH THREESCORE AND TEN PERSONS; ANDJ NOW THE LORD THY GOD HATH MADE THEE AS THE STARS OF HEAVEN FOR MULTITUDE. = CHAPTER 11 L# 1 THEREFORE THOU SHALT LOVE THE LORD THY GOD, AND KEEP HIS CHARGE, AND HIS: STATUTES, AND HIS JUDGMENTS, AND HIS COMMANDMENTS, ALWAY.K# 2 AND KNOW YE THIS DAY: FOR I SPEAK NOT WITH YOUR CHILDREN WHICH HAVE NOT J KNOWN, AND WHICH HAVE NOT SEEN THE CHASTISEMENT OF THE LORD YOUR GOD, HIS7 GREATNESS, HIS MIGHTY HAND, AND HIS STRETCHED OUT ARM,2K# 3 AND HIS MIRACLES, AND HIS ACTS, WHICH HE DID IN THE MIDST OF EGYPT UNTOT2 PHARAOH THE KING OF EGYPT, AND UNTO ALL HIS LAND;K# 4 AND WHAT HE DID UNTO THE ARMY OF EGYPT, UNTO THEIR HORSES, AND TO THEIRGH CHARIOTS; HOW HE MADE THE WATER OF THE RED SEA TO OVERFLOW THEM AS THEYG PURSUED AFTER YOU, AND HOW THE LORD HATH DESTROYED THEM UNTO THIS DAY;HG# 5 AND WHAT HE DID UNTO YOU IN THE WILDERNESS, UNTIL YE CAME INTO THISO PLACE;DI# 6 AND WHAT HE DID UNTO DATHAN AND ABIRAM, THE SONS OF ELIAB, THE SON OF I REUBEN: HOW THE EARTH OPENED HER MOUTH, AND SWALLOWED THEM UP, AND THEIRE HOUSEHOLDS, AND THEIR TENTS, AND ALL THE SUBSTANCE THAT WAS IN THEIR ( POSSESSION, IN THE MIDST OF ALL ISRAEL:H# 7 BUT YOUR EYES HAVE SEEN ALL THE GREAT AC00c+)D%5%T6%! !TS OF THE LORD WHICH HE DID.I# 8 THEREFORE SHALL YE KEEP ALL THE COMMANDMENTS WHICH I COMMAND YOU THISTM DAY, THAT YE MAY BE STRONG, AND GO IN AND POSSESS THE LAND, WHITHER YE GO TOO POSSESS IT;L# 9 AND THAT YE MAY PROLONG YOUR DAYS IN THE LAND, WHICH THE LORD SWARE UNTOK YOUR FATHERS TO GIVE UNTO THEM AND TO THEIR SEED, A LAND THAT FLOWETH WITH MILK AND HONEY.M# 10 FOR THE LAND, WHITHER THOU GOEST IN TO POSSESS IT, IS NOT AS THE LAND OF N EGYPT, FROM WHENCE YE CAME OUT, WHERE THOU SOWEDST THY SEED, AND WATEREDST IT% WITH THY FOOT, AS A GARDEN OF HERBS:LF# 11 BUT THE LAND, WHITHER YE GO TO POSSESS IT, IS A LAND OF HILLS AND3 VALLEYS, AND DRINKETH WATER OF THE RAIN OF HEAVEN:K# 12 A LAND WHICH THE LORD THY GOD CARETH FOR: THE EYES OF THE LORD THY GODRL ARE ALWAYS UPON IT, FROM THE BEGINNING OF THE YEAR EVEN UNTO THE END OF THE YEAR.F# 13 AND IT SHALL COME TO PASS, IF YE SHALL HEARKEN DILIGENTLY UNTO MYM COMMANDMENTS WHICH I COMMAND YOU THIS DAY, TO LOVE THE LORD YOUR GOD, AND TOE6 SERVE HIM WITH ALL YOUR HEART AND WITH ALL YOUR SOUL,L# 14 THAT I WILL GIVE YOU THE RAIN OF YOUR LAND IN HIS DUE SEASON, THE FIRSTM RAIN AND THE LATTER RAIN, THAT THOU MAYEST GATHER IN THY CORN, AND THY WINE,C AND THINE OIL.DM# 15 AND I WILL SEND GRASS IN THY FIELDS FOR THY CATTLE, THAT THOU MAYEST EATN AND BE FULL. J# 16 TAKE HEED TO YOURSELVES, THAT YOUR HEART BE NOT DECEIVED, AND YE TURN/ ASIDE, AND SERVE OTHER GODS, AND WORSHIP THEM; H# 17 AND THEN THE LORDS WRATH BE KINDLED AGAINST YOU, AND HE SHUT UP THEJ HEAVEN, THAT THERE BE NO RAIN, AND THAT THE LAND YIELD NOT HER FRUIT; ANDI LEST YE PERISH QUICKLY FROM OFF THE GOOD LAND WHICH THE LORD GIVETH YOU. M# 18 THEREFORE SHALL YE LAY UP THESE MY WORDS IN YOUR HEART AND IN YOUR SOUL,LG AND BIND THEM FOR A SIGN UPON YOUR HAND, THAT THEY MAY BE AS FRONTLETS  BETWEEN YOUR EYES.DF# 19 AND YE SHALL TEACH THEM YOUR CHILDREN, SPEAKING OF THEM WHEN THOUJ SITTEST IN THINE HOUSE, AND WHEN THOU WALKEST BY THE WAY, WHEN THOU LIEST DOWN, AND WHEN THOU RISEST UP.TK# 20 AND THOU SHALT WRITE THEM UPON THE DOOR POSTS OF THINE HOUSE, AND UPOND THY GATES:RL# 21 THAT YOUR DAYS MAY BE MULTIPLIED, AND THE DAYS OF YOUR CHILDREN, IN THEI LAND WHICH THE LORD SWARE UNTO YOUR FATHERS TO GIVE THEM, AS THE DAYS OF  HEAVEN UPON THE EARTH. K# 22 FOR IF YE SHALL DILIGENTLY KEEP ALL THESE COMMANDMENTS WHICH I COMMAND L YOU, TO DO THEM, TO LOVE THE LORD YOUR GOD, TO WALK IN ALL HIS WAYS, AND TO CLEAVE UNTO HIM;EK# 23 THEN WILL THE LORD DRIVE OUT ALL THESE NATIONS FROM BEFORE YOU, AND YEO< SHALL POSSESS GREATER NATIONS AND MIGHTIER THAN YOURSELVES.K# 24 EVERY PLACE WHEREON THE SOLES OF YOUR FEET SHALL TREAD SHALL BE YOURS: K FROM THE WILDERNESS AND LEBANON, FROM THE RIVER, THE RIVER EUPHRATES, EVENA, UNTO THE UTTERMOST SEA SHALL YOUR COAST BE.J# 25 THERE SHALL NO MAN BE ABLE TO STAND BEFORE YOU: FOR THE LORD YOUR GODI SHALL LAY THE FEAR OF YOU AND THE DREAD OF YOU UPON ALL THE LAND THAT YE, SHALL TREAD UPON, AS HE HATH SAID UNTO YOU.># 26 BEHOLD, I SET BEFORE YOU THIS DAY A BLESSING AND A CURSE;J# 27 A BLESSING, IF YE OBEY THE COMMANDMENTS OF THE LORD YOUR GOD, WHICH I COMMAND YOU THIS DAY:L# 28 AND A CURSE, IF YE WILL NOT OBEY THE COMMANDMENTS OF THE LORD YOUR GOD,N BUT TURN ASIDE OUT OF THE WAY WHICH I COMMAND YOU THIS DAY, TO GO AFTER OTHER GODS, WHICH YE HAVE NOT KNOWN.DJ# 29 AND IT SHALL COME TO PASS, WHEN THE LORD THY GOD HATH BROUGHT THEE INH UNTO THE LAND WHITHER THOU GOEST TO POSSESS IT, THAT THOU SHALT PUT THE< BLESSING UPON MOUNT GERIZIM, AND THE CURSE UPON MOUNT EBAL.J# 30 ARE THEY NOT ON THE OTHER SIDE JORDAN, BY THE WAY WHERE THE SUN GOETHG DOWN, IN THE LAND OF THE CANAANITES, WHICH DWELL IN THE CHAMPAIGN OVERH, AGAINST GILGAL, BESIDE THE PLAINS OF MOREH?I# 31 FOR YE SHALL PASS OVER JORDAN TO GO IN TO POSSESS THE LAND WHICH THEDF LORD YOUR GOD GIVETH YOU, AND YE SHALL POSSESS IT, AND DWELL THEREIN.J# 32 AND YE SHALL OBSERVE TO DO ALL THE STATUTES AND JUDGMENTS WHICH I SET BEFORE YOU THIS DAY.P = CHAPTER 12 NM# 1 THESE ARE THE STATUTES00c+k+<%X>%+%O-%TADATADATA AND JUDGMENTS, WHICH YE SHALL OBSERVE TO DO IN THEOK LAND, WHICH THE LORD GOD OF THY FATHERS GIVETH THEE TO POSSESS IT, ALL THEA" DAYS THAT YE LIVE UPON THE EARTH.I# 2 YE SHALL UTTERLY DESTROY ALL THE PLACES, WHEREIN THE NATIONS WHICH YEAN SHALL POSSESS SERVED THEIR GODS, UPON THE HIGH MOUNTAINS, AND UPON THE HILLS, AND UNDER EVERY GREEN TREE:J# 3 AND YE SHALL OVERTHROW THEIR ALTARS, AND BREAK THEIR PILLARS, AND BURNI THEIR GROVES WITH FIRE; AND YE SHALL HEW DOWN THE GRAVEN IMAGES OF THEIR 7 GODS, AND DESTROY THE NAMES OF THEM OUT OF THAT PLACE.H.# 4 YE SHALL NOT DO SO UNTO THE LORD YOUR GOD.K# 5 BUT UNTO THE PLACE WHICH THE LORD YOUR GOD SHALL CHOOSE OUT OF ALL YOURSJ TRIBES TO PUT HIS NAME THERE, EVEN UNTO HIS HABITATION SHALL YE SEEK, AND THITHER THOU SHALT COME:PM# 6 AND THITHER YE SHALL BRING YOUR BURNT OFFERINGS, AND YOUR SACRIFICES, ANDNG YOUR TITHES, AND HEAVE OFFERINGS OF YOUR HAND, AND YOUR VOWS, AND YOUREI FREEWILL OFFERINGS, AND THE FIRSTLINGS OF YOUR HERDS AND OF YOUR FLOCKS:DL# 7 AND THERE YE SHALL EAT BEFORE THE LORD YOUR GOD, AND YE SHALL REJOICE INM ALL THAT YE PUT YOUR HAND UNTO, YE AND YOUR HOUSEHOLDS, WHEREIN THE LORD THYO GOD HATH BLESSED THEE.IL# 8 YE SHALL NOT DO AFTER ALL THE THINGS THAT WE DO HERE THIS DAY, EVERY MAN% WHATSOEVER IS RIGHT IN HIS OWN EYES.EL# 9 FOR YE ARE NOT AS YET COME TO THE REST AND TO THE INHERITANCE, WHICH THE LORD YOUR GOD GIVETH YOU.J# 10 BUT WHEN YE GO OVER JORDAN, AND DWELL IN THE LAND WHICH THE LORD YOURM GOD GIVETH YOU TO INHERIT, AND WHEN HE GIVETH YOU REST FROM ALL YOUR ENEMIESO) ROUND ABOUT, SO THAT YE DWELL IN SAFETY;TH# 11 THEN THERE SHALL BE A PLACE WHICH THE LORD YOUR GOD SHALL CHOOSE TON CAUSE HIS NAME TO DWELL THERE; THITHER SHALL YE BRING ALL THAT I COMMAND YOU;F YOUR BURNT OFFERINGS, AND YOUR SACRIFICES, YOUR TITHES, AND THE HEAVEL OFFERING OF YOUR HAND, AND ALL YOUR CHOICE VOWS WHICH YE VOW UNTO THE LORD:J# 12 AND YE SHALL REJOICE BEFORE THE LORD YOUR GOD, YE, AND YOUR SONS, ANDL YOUR DAUGHTERS, AND YOUR MENSERVANTS, AND YOUR MAIDSERVANTS, AND THE LEVITEM THAT IS WITHIN YOUR GATES; FORASMUCH AS HE HATH NO PART NOR INHERITANCE WITHE YOU.EJ# 13 TAKE HEED TO THYSELF THAT THOU OFFER NOT THY BURNT OFFERINGS IN EVERY PLACE THAT THOU SEEST:TM# 14 BUT IN THE PLACE WHICH THE LORD SHALL CHOOSE IN ONE OF THY TRIBES, THEREDI THOU SHALT OFFER THY BURNT OFFERINGS, AND THERE THOU SHALT DO ALL THAT IN COMMAND THEE.E# 15 NOTWITHSTANDING THOU MAYEST KILL AND EAT FLESH IN ALL THY GATES,DM WHATSOEVER THY SOUL LUSTETH AFTER, ACCORDING TO THE BLESSING OF THE LORD THYL GOD WHICH HE HATH GIVEN THEE: THE UNCLEAN AND THE CLEAN MAY EAT THEREOF, AS$ OF THE ROEBUCK, AND AS OF THE HART.H# 16 ONLY YE SHALL NOT EAT THE BLOOD; YE SHALL POUR IT UPON THE EARTH AS WATER.IJ# 17 THOU MAYEST NOT EAT WITHIN THY GATES THE TITHE OF THY CORN, OR OF THYM WINE, OR OF THY OIL, OR THE FIRSTLINGS OF THY HERDS OR OF THY FLOCK, NOR ANYTM OF THY VOWS WHICH THOU VOWEST, NOR THY FREEWILL OFFERINGS, OR HEAVE OFFERINGW OF THINE HAND:LJ# 18 BUT THOU MUST EAT THEM BEFORE THE LORD THY GOD IN THE PLACE WHICH THEH LORD THY GOD SHALL CHOOSE, THOU, AND THY SON, AND THY DAUGHTER, AND THYN MANSERVANT, AND THY MAIDSERVANT, AND THE LEVITE THAT IS WITHIN THY GATES: ANDJ THOU SHALT REJOICE BEFORE THE LORD THY GOD IN ALL THAT THOU PUTTEST THINE HANDS UNTO.J# 19 TAKE HEED TO THYSELF THAT THOU FORSAKE NOT THE LEVITE AS LONG AS THOU LIVEST UPON THE EARTH.HH# 20 WHEN THE LORD THY GOD SHALL ENLARGE THY BORDER, AS HE HATH PROMISEDL THEE, AND THOU SHALT SAY, I WILL EAT FLESH, BECAUSE THY SOUL LONGETH TO EATA FLESH; THOU MAYEST EAT FLESH, WHATSOEVER THY SOUL LUSTETH AFTER.TM# 21 IF THE PLACE WHICH THE LORD THY GOD HATH CHOSEN TO PUT HIS NAME THERE BEWL TOO FAR FROM THEE, THEN THOU SHALT KILL OF THY HERD AND OF THY FLOCK, WHICHN THE LORD HATH GIVEN THEE, AS I HAVE COMMANDED THEE, AND THOU SHALT EAT IN THY) GATES WHATSOEVER THY SOUL LUSTETH AFTER.TK# 22 EVEN AS THE ROEBUCK AND THE HART IS EATEN, SO THOU SHALT EAT THEM: THER/ UNCLEAN AND THE CLEAN SHALL EAT OF 00c+)D%5%T6%! !THEM ALIKE.SM# 23 ONLY BE SURE THAT THOU EAT NOT THE BLOOD: FOR THE BLOOD IS THE LIFE; ANDH- THOU MAYEST NOT EAT THE LIFE WITH THE FLESH. G# 24 THOU SHALT NOT EAT IT; THOU SHALT POUR IT UPON THE EARTH AS WATER.EG# 25 THOU SHALT NOT EAT IT; THAT IT MAY GO WELL WITH THEE, AND WITH THYHL CHILDREN AFTER THEE, WHEN THOU SHALT DO THAT WHICH IS RIGHT IN THE SIGHT OF THE LORD.M# 26 ONLY THY HOLY THINGS WHICH THOU HAST, AND THY VOWS, THOU SHALT TAKE, ANDL/ GO UNTO THE PLACE WHICH THE LORD SHALL CHOOSE:TL# 27 AND THOU SHALT OFFER THY BURNT OFFERINGS, THE FLESH AND THE BLOOD, UPONH THE ALTAR OF THE LORD THY GOD: AND THE BLOOD OF THY SACRIFICES SHALL BEM POURED OUT UPON THE ALTAR OF THE LORD THY GOD, AND THOU SHALT EAT THE FLESH.HJ# 28 OBSERVE AND HEAR ALL THESE WORDS WHICH I COMMAND THEE, THAT IT MAY GOK WELL WITH THEE, AND WITH THY CHILDREN AFTER THEE FOR EVER, WHEN THOU DOEST ? THAT WHICH IS GOOD AND RIGHT IN THE SIGHT OF THE LORD THY GOD. F# 29 WHEN THE LORD THY GOD SHALL CUT OFF THE NATIONS FROM BEFORE THEE,N WHITHER THOU GOEST TO POSSESS THEM, AND THOU SUCCEEDEST THEM, AND DWELLEST IN THEIR LAND;J# 30 TAKE HEED TO THYSELF THAT THOU BE NOT SNARED BY FOLLOWING THEM, AFTERI THAT THEY BE DESTROYED FROM BEFORE THEE; AND THAT THOU ENQUIRE NOT AFTERLN THEIR GODS, SAYING, HOW DID THESE NATIONS SERVE THEIR GODS? EVEN SO WILL I DO LIKEWISE.M# 31 THOU SHALT NOT DO SO UNTO THE LORD THY GOD: FOR EVERY ABOMINATION TO THETK LORD, WHICH HE HATETH, HAVE THEY DONE UNTO THEIR GODS; FOR EVEN THEIR SONSF? AND THEIR DAUGHTERS THEY HAVE BURNT IN THE FIRE TO THEIR GODS.UJ# 32 WHAT THING SOEVER I COMMAND YOU, OBSERVE TO DO IT: THOU SHALT NOT ADD THERETO, NOR DIMINISH FROM IT.T = CHAPTER 13 AJ# 1 IF THERE ARISE AMONG YOU A PROPHET, OR A DREAMER OF DREAMS, AND GIVETH THEE A SIGN OR A WONDER,EH# 2 AND THE SIGN OR THE WONDER COME TO PASS, WHEREOF HE SPAKE UNTO THEE,J SAYING, LET US GO AFTER OTHER GODS, WHICH THOU HAST NOT KNOWN, AND LET US SERVE THEM;M# 3 THOU SHALT NOT HEARKEN UNTO THE WORDS OF THAT PROPHET, OR THAT DREAMER OF L DREAMS: FOR THE LORD YOUR GOD PROVETH YOU, TO KNOW WHETHER YE LOVE THE LORD5 YOUR GOD WITH ALL YOUR HEART AND WITH ALL YOUR SOUL.IE# 4 YE SHALL WALK AFTER THE LORD YOUR GOD, AND FEAR HIM, AND KEEP HIS J COMMANDMENTS, AND OBEY HIS VOICE, AND YE SHALL SERVE HIM, AND CLEAVE UNTO HIM. G# 5 AND THAT PROPHET, OR THAT DREAMER OF DREAMS, SHALL BE PUT TO DEATH;AN BECAUSE HE HATH SPOKEN TO TURN YOU AWAY FROM THE LORD YOUR GOD, WHICH BROUGHTL YOU OUT OF THE LAND OF EGYPT, AND REDEEMED YOU OUT OF THE HOUSE OF BONDAGE,L TO THRUST THEE OUT OF THE WAY WHICH THE LORD THY GOD COMMANDED THEE TO WALK< IN. SO SHALT THOU PUT THE EVIL AWAY FROM THE MIDST OF THEE.J# 6 IF THY BROTHER, THE SON OF THY MOTHER, OR THY SON, OR THY DAUGHTER, ORN THE WIFE OF THY BOSOM, OR THY FRIEND, WHICH IS AS THINE OWN SOUL, ENTICE THEEM SECRETLY, SAYING, LET US GO AND SERVE OTHER GODS, WHICH THOU HAST NOT KNOWN,O THOU, NOR THY FATHERS; J# 7 NAMELY, OF THE GODS OF THE PEOPLE WHICH ARE ROUND ABOUT YOU, NIGH UNTON THEE, OR FAR OFF FROM THEE, FROM THE ONE END OF THE EARTH EVEN UNTO THE OTHER END OF THE EARTH;H# 8 THOU SHALT NOT CONSENT UNTO HIM, NOR HEARKEN UNTO HIM; NEITHER SHALLN THINE EYE PITY HIM, NEITHER SHALT THOU SPARE, NEITHER SHALT THOU CONCEAL HIM:M# 9 BUT THOU SHALT SURELY KILL HIM; THINE HAND SHALL BE FIRST UPON HIM TO PUTS9 HIM TO DEATH, AND AFTERWARDS THE HAND OF ALL THE PEOPLE. G# 10 AND THOU SHALT STONE HIM WITH STONES, THAT HE DIE; BECAUSE HE HATHEL SOUGHT TO THRUST THEE AWAY FROM THE LORD THY GOD, WHICH BROUGHT THEE OUT OF. THE LAND OF EGYPT, FROM THE HOUSE OF BONDAGE.G# 11 AND ALL ISRAEL SHALL HEAR, AND FEAR, AND SHALL DO NO MORE ANY SUCH ! WICKEDNESS AS THIS IS AMONG YOU. M# 12 IF THOU SHALT HEAR SAY IN ONE OF THY CITIES, WHICH THE LORD THY GOD HATHA# GIVEN THEE TO DWELL THERE, SAYING,BJ# 13 CERTAIN MEN, THE CHILDREN OF BELIAL, ARE GONE OUT FROM AMONG YOU, ANDJ HAVE WITHDRAWN THE INHABITANTS OF THEIR CITY, SAYING, LET US GO AND SERVE% OTHER GODS, WHICH YE HAVE NOT KNOWN;MG# 14 THEN SH00c+k+<%X>%+%O-%TADATADATAALT THOU ENQUIRE, AND MAKE SEARCH, AND ASK DILIGENTLY; AND,EH BEHOLD, IF IT BE TRUTH, AND THE THING CERTAIN, THAT SUCH ABOMINATION IS WROUGHT AMONG YOU;WJ# 15 THOU SHALT SURELY SMITE THE INHABITANTS OF THAT CITY WITH THE EDGE OFJ THE SWORD, DESTROYING IT UTTERLY, AND ALL THAT IS THEREIN, AND THE CATTLE% THEREOF, WITH THE EDGE OF THE SWORD.LK# 16 AND THOU SHALT GATHER ALL THE SPOIL OF IT INTO THE MIDST OF THE STREETCL THEREOF, AND SHALT BURN WITH FIRE THE CITY, AND ALL THE SPOIL THEREOF EVERYN WHIT, FOR THE LORD THY GOD: AND IT SHALL BE AN HEAP FOR EVER; IT SHALL NOT BE BUILT AGAIN.AJ# 17 AND THERE SHALL CLEAVE NOUGHT OF THE CURSED THING TO THINE HAND: THATM THE LORD MAY TURN FROM THE FIERCENESS OF HIS ANGER, AND SHEW THEE MERCY, ANDDH HAVE COMPASSION UPON THEE, AND MULTIPLY THEE, AS HE HATH SWORN UNTO THY FATHERS;EJ# 18 WHEN THOU SHALT HEARKEN TO THE VOICE OF THE LORD THY GOD, TO KEEP ALLM HIS COMMANDMENTS WHICH I COMMAND THEE THIS DAY, TO DO THAT WHICH IS RIGHT INS THE EYES OF THE LORD THY GOD. = CHAPTER 14 :N# 1 YE ARE THE CHILDREN OF THE LORD YOUR GOD: YE SHALL NOT CUT YOURSELVES, NOR2 MAKE ANY BALDNESS BETWEEN YOUR EYES FOR THE DEAD.H# 2 FOR THOU ART AN HOLY PEOPLE UNTO THE LORD THY GOD, AND THE LORD HATHM CHOSEN THEE TO BE A PECULIAR PEOPLE UNTO HIMSELF, ABOVE ALL THE NATIONS THATR ARE UPON THE EARTH.,# 3 THOU SHALT NOT EAT ANY ABOMINABLE THING.M# 4 THESE ARE THE BEASTS WHICH YE SHALL EAT: THE OX, THE SHEEP, AND THE GOAT,,J# 5 THE HART, AND THE ROEBUCK, AND THE FALLOW DEER, AND THE WILD GOAT, AND. THE PYGARG, AND THE WILD OX, AND THE CHAMOIS.J# 6 AND EVERY BEAST THAT PARTETH THE HOOF, AND CLEAVETH THE CLEFT INTO TWO@ CLAWS, AND CHEWETH THE CUD AMONG THE BEASTS, THAT YE SHALL EAT.M# 7 NEVERTHELESS THESE YE SHALL NOT EAT OF THEM THAT CHEW THE CUD, OR OF THEMLL THAT DIVIDE THE CLOVEN HOOF; AS THE CAMEL, AND THE HARE, AND THE CONEY: FORL THEY CHEW THE CUD, BUT DIVIDE NOT THE HOOF; THEREFORE THEY ARE UNCLEAN UNTO YOU.TL# 8 AND THE SWINE, BECAUSE IT DIVIDETH THE HOOF, YET CHEWETH NOT THE CUD, ITK IS UNCLEAN UNTO YOU: YE SHALL NOT EAT OF THEIR FLESH, NOR TOUCH THEIR DEADR CARCASE.OL# 9 THESE YE SHALL EAT OF ALL THAT ARE IN THE WATERS: ALL THAT HAVE FINS AND SCALES SHALL YE EAT:J# 10 AND WHATSOEVER HATH NOT FINS AND SCALES YE MAY NOT EAT; IT IS UNCLEAN UNTO YOU.%# 11 OF ALL CLEAN BIRDS YE SHALL EAT. E# 12 BUT THESE ARE THEY OF WHICH YE SHALL NOT EAT: THE EAGLE, AND THEO OSSIFRAGE, AND THE OSPRAY, A# 13 AND THE GLEDE, AND THE KITE, AND THE VULTURE AFTER HIS KIND,C$# 14 AND EVERY RAVEN AFTER HIS KIND,L# 15 AND THE OWL, AND THE NIGHT HAWK, AND THE CUCKOW, AND THE HAWK AFTER HIS KIND,5# 16 THE LITTLE OWL, AND THE GREAT OWL, AND THE SWAN,V<# 17 AND THE PELICAN, AND THE GIER EAGLE, AND THE CORMORANT,J# 18 AND THE STORK, AND THE HERON AFTER HER KIND, AND THE LAPWING, AND THE BAT.DM# 19 AND EVERY CREEPING THING THAT FLIETH IS UNCLEAN UNTO YOU: THEY SHALL NOT BE EATEN.'# 20 BUT OF ALL CLEAN FOWLS YE MAY EAT.GJ# 21 YE SHALL NOT EAT OF ANYTHING THAT DIETH OF ITSELF: THOU SHALT GIVE ITK UNTO THE STRANGER THAT IS IN THY GATES, THAT HE MAY EAT IT; OR THOU MAYEST J SELL IT UNTO AN ALIEN: FOR THOU ART AN HOLY PEOPLE UNTO THE LORD THY GOD.1 THOU SHALT NOT SEETHE A KID IN HIS MOTHERS MILK.HH# 22 THOU SHALT TRULY TITHE ALL THE INCREASE OF THY SEED, THAT THE FIELD BRINGETH FORTH YEAR BY YEAR.DL# 23 AND THOU SHALT EAT BEFORE THE LORD THY GOD, IN THE PLACE WHICH HE SHALLK CHOOSE TO PLACE HIS NAME THERE, THE TITHE OF THY CORN, OF THY WINE, AND OFHH THINE OIL, AND THE FIRSTLINGS OF THY HERDS AND OF THY FLOCKS; THAT THOU. MAYEST LEARN TO FEAR THE LORD THY GOD ALWAYS.L# 24 AND IF THE WAY BE TOO LONG FOR THEE, SO THAT THOU ART NOT ABLE TO CARRYN IT; OR IF THE PLACE BE TOO FAR FROM THEE, WHICH THE LORD THY GOD SHALL CHOOSE@ TO SET HIS NAME THERE, WHEN THE LORD THY GOD HATH BLESSED THEE:M# 25 THEN SHALT THOU TURN IT INTO MONEY, AND BIND UP THE MONEY IN THINE HAND, A AND SHALT GO UNTO THE PLACE WHICH THE LORD THY GOD SHALL CHOOSE:FL# 26 AND THOU SHALT BESTOW THAT MONEY 00c+)D%5%T6%! !FOR WHATSOEVER THY SOUL LUSTETH AFTER,L FOR OXEN, OR FOR SHEEP, OR FOR WINE, OR FOR STRONG DRINK, OR FOR WHATSOEVERN THY SOUL DESIRETH: AND THOU SHALT EAT THERE BEFORE THE LORD THY GOD, AND THOU* SHALT REJOICE, THOU, AND THINE HOUSEHOLD,M# 27 AND THE LEVITE THAT IS WITHIN THY GATES; THOU SHALT NOT FORSAKE HIM; FORT+ HE HATH NO PART NOR INHERITANCE WITH THEE.,L# 28 AT THE END OF THREE YEARS THOU SHALT BRING FORTH ALL THE TITHE OF THINE> INCREASE THE SAME YEAR, AND SHALT LAY IT UP WITHIN THY GATES:M# 29 AND THE LEVITE, (BECAUSE HE HATH NO PART NOR INHERITANCE WITH THEE,) ANDEM THE STRANGER, AND THE FATHERLESS, AND THE WIDOW, WHICH ARE WITHIN THY GATES,TL SHALL COME, AND SHALL EAT AND BE SATISFIED; THAT THE LORD THY GOD MAY BLESS5 THEE IN ALL THE WORK OF THINE HAND WHICH THOU DOEST.H = CHAPTER 15 R># 1 AT THE END OF EVERY SEVEN YEARS THOU SHALT MAKE A RELEASE.L# 2 AND THIS IS THE MANNER OF THE RELEASE: EVERY CREDITOR THAT LENDETH OUGHTM UNTO HIS NEIGHBOUR SHALL RELEASE IT; HE SHALL NOT EXACT IT OF HIS NEIGHBOUR,T; OR OF HIS BROTHER; BECAUSE IT IS CALLED THE LORDS RELEASE.K# 3 OF A FOREIGNER THOU MAYEST EXACT IT AGAIN: BUT THAT WHICH IS THINE WITHT& THY BROTHER THINE HAND SHALL RELEASE;J# 4 SAVE WHEN THERE SHALL BE NO POOR AMONG YOU; FOR THE LORD SHALL GREATLYM BLESS THEE IN THE LAND WHICH THE LORD THY GOD GIVETH THEE FOR AN INHERITANCEA TO POSSESS IT:.I# 5 ONLY IF THOU CAREFULLY HEARKEN UNTO THE VOICE OF THE LORD THY GOD, TOGD OBSERVE TO DO ALL THESE COMMANDMENTS WHICH I COMMAND THEE THIS DAY.K# 6 FOR THE LORD THY GOD BLESSETH THEE, AS HE PROMISED THEE: AND THOU SHALT M LEND UNTO MANY NATIONS, BUT THOU SHALT NOT BORROW; AND THOU SHALT REIGN OVERY2 MANY NATIONS, BUT THEY SHALL NOT REIGN OVER THEE.M# 7 IF THERE BE AMONG YOU A POOR MAN OF ONE OF THY BRETHREN WITHIN ANY OF THYLL GATES IN THY LAND WHICH THE LORD THY GOD GIVETH THEE, THOU SHALT NOT HARDEN8 THINE HEART, NOR SHUT THINE HAND FROM THY POOR BROTHER:K# 8 BUT THOU SHALT OPEN THINE HAND WIDE UNTO HIM, AND SHALT SURELY LEND HIMT3 SUFFICIENT FOR HIS NEED, IN THAT WHICH HE WANTETH.HG# 9 BEWARE THAT THERE BE NOT A THOUGHT IN THY WICKED HEART, SAYING, THE M SEVENTH YEAR, THE YEAR OF RELEASE, IS AT HAND; AND THINE EYE BE EVIL AGAINST G THY POOR BROTHER, AND THOU GIVEST HIM NOUGHT; AND HE CRY UNTO THE LORDI' AGAINST THEE, AND IT BE SIN UNTO THEE.HJ# 10 THOU SHALT SURELY GIVE HIM, AND THINE HEART SHALL NOT BE GRIEVED WHENI THOU GIVEST UNTO HIM: BECAUSE THAT FOR THIS THING THE LORD THY GOD SHALL K BLESS THEE IN ALL THY WORKS, AND IN ALL THAT THOU PUTTEST THINE HAND UNTO. H# 11 FOR THE POOR SHALL NEVER CEASE OUT OF THE LAND: THEREFORE I COMMANDM THEE, SAYING, THOU SHALT OPEN THINE HAND WIDE UNTO THY BROTHER, TO THY POOR,E AND TO THY NEEDY, IN THY LAND.AH# 12 AND IF THY BROTHER, AN HEBREW MAN, OR AN HEBREW WOMAN, BE SOLD UNTOL THEE, AND SERVE THEE SIX YEARS; THEN IN THE SEVENTH YEAR THOU SHALT LET HIM GO FREE FROM THEE.TL# 13 AND WHEN THOU SENDEST HIM OUT FREE FROM THEE, THOU SHALT NOT LET HIM GO AWAY EMPTY:M# 14 THOU SHALT FURNISH HIM LIBERALLY OUT OF THY FLOCK, AND OUT OF THY FLOOR,HJ AND OUT OF THY WINEPRESS: OF THAT WHEREWITH THE LORD THY GOD HATH BLESSED THEE THOU SHALT GIVE UNTO HIM. K# 15 AND THOU SHALT REMEMBER THAT THOU WAST A BONDMAN IN THE LAND OF EGYPT,TK AND THE LORD THY GOD REDEEMED THEE: THEREFORE I COMMAND THEE THIS THING TOI DAY.;H# 16 AND IT SHALL BE, IF HE SAY UNTO THEE, I WILL NOT GO AWAY FROM THEE;F BECAUSE HE LOVETH THEE AND THINE HOUSE, BECAUSE HE IS WELL WITH THEE;H# 17 THEN THOU SHALT TAKE AN AUL, AND THRUST IT THROUGH HIS EAR UNTO THEJ DOOR, AND HE SHALL BE THY SERVANT FOR EVER. AND ALSO UNTO THY MAIDSERVANT THOU SHALT DO LIKEWISE.K# 18 IT SHALL NOT SEEM HARD UNTO THEE, WHEN THOU SENDEST HIM AWAY FREE FROMDM THEE; FOR HE HATH BEEN WORTH A DOUBLE HIRED SERVANT TO THEE, IN SERVING THEEMI SIX YEARS: AND THE LORD THY GOD SHALL BLESS THEE IN ALL THAT THOU DOEST.,H# 19 ALL THE FIRSTLING MALES THAT COME OF THY HERD AND OF THY FLOCK THOUE SHALT SANCTIFY UNTO THE LORD THY GOD: THOU SHALT DO NO WO00c+k+<%X>%+%O-%TADATADATARK WITH THEU@ FIRSTLING OF THY BULLOCK, NOR SHEAR THE FIRSTLING OF THY SHEEP.H# 20 THOU SHALT EAT IT BEFORE THE LORD THY GOD YEAR BY YEAR IN THE PLACE5 WHICH THE LORD SHALL CHOOSE, THOU AND THY HOUSEHOLD.AM# 21 AND IF THERE BE ANY BLEMISH THEREIN, AS IF IT BE LAME, OR BLIND, OR HAVEND ANY ILL BLEMISH, THOU SHALT NOT SACRIFICE IT UNTO THE LORD THY GOD.I# 22 THOU SHALT EAT IT WITHIN THY GATES: THE UNCLEAN AND THE CLEAN PERSOND5 SHALL EAT IT ALIKE, AS THE ROEBUCK, AND AS THE HART.OK# 23 ONLY THOU SHALT NOT EAT THE BLOOD THEREOF; THOU SHALT POUR IT UPON THEF GROUND AS WATER.E = CHAPTER 16 HK# 1 OBSERVE THE MONTH OF ABIB, AND KEEP THE PASSOVER UNTO THE LORD THY GOD: M FOR IN THE MONTH OF ABIB THE LORD THY GOD BROUGHT THEE FORTH OUT OF EGYPT BYN NIGHT.TM# 2 THOU SHALT THEREFORE SACRIFICE THE PASSOVER UNTO THE LORD THY GOD, OF THEOJ FLOCK AND THE HERD, IN THE PLACE WHICH THE LORD SHALL CHOOSE TO PLACE HIS NAME THERE.G# 3 THOU SHALT EAT NO LEAVENED BREAD WITH IT; SEVEN DAYS SHALT THOU EATHJ UNLEAVENED BREAD THEREWITH, EVEN THE BREAD OF AFFLICTION; FOR THOU CAMESTK FORTH OUT OF THE LAND OF EGYPT IN HASTE: THAT THOU MAYEST REMEMBER THE DAYRJ WHEN THOU CAMEST FORTH OUT OF THE LAND OF EGYPT ALL THE DAYS OF THY LIFE.H# 4 AND THERE SHALL BE NO LEAVENED BREAD SEEN WITH THEE IN ALL THY COASTC SEVEN DAYS; NEITHER SHALL THERE ANY THING OF THE FLESH, WHICH THOU H SACRIFICEDST THE FIRST DAY AT EVEN, REMAIN ALL NIGHT UNTIL THE MORNING.M# 5 THOU MAYEST NOT SACRIFICE THE PASSOVER WITHIN ANY OF THY GATES, WHICH THER LORD THY GOD GIVETH THEE:J# 6 BUT AT THE PLACE WHICH THE LORD THY GOD SHALL CHOOSE TO PLACE HIS NAMEN IN, THERE THOU SHALT SACRIFICE THE PASSOVER AT EVEN, AT THE GOING DOWN OF THE8 SUN, AT THE SEASON THAT THOU CAMEST FORTH OUT OF EGYPT.M# 7 AND THOU SHALT ROAST AND EAT IT IN THE PLACE WHICH THE LORD THY GOD SHALLEC CHOOSE: AND THOU SHALT TURN IN THE MORNING, AND GO UNTO THY TENTS.EM# 8 SIX DAYS THOU SHALT EAT UNLEAVENED BREAD: AND ON THE SEVENTH DAY SHALL BESF A SOLEMN ASSEMBLY TO THE LORD THY GOD: THOU SHALT DO NO WORK THEREIN.L# 9 SEVEN WEEKS SHALT THOU NUMBER UNTO THEE: BEGIN TO NUMBER THE SEVEN WEEKS@ FROM SUCH TIME AS THOU BEGINNEST TO PUT THE SICKLE TO THE CORN.H# 10 AND THOU SHALT KEEP THE FEAST OF WEEKS UNTO THE LORD THY GOD WITH AM TRIBUTE OF A FREEWILL OFFERING OF THINE HAND, WHICH THOU SHALT GIVE UNTO THES? LORD THY GOD, ACCORDING AS THE LORD THY GOD HATH BLESSED THEE: K# 11 AND THOU SHALT REJOICE BEFORE THE LORD THY GOD, THOU, AND THY SON, ANDN THY DAUGHTER, AND THY MANSERVANT, AND THY MAIDSERVANT, AND THE LEVITE THAT ISL WITHIN THY GATES, AND THE STRANGER, AND THE FATHERLESS, AND THE WIDOW, THATL ARE AMONG YOU, IN THE PLACE WHICH THE LORD THY GOD HATH CHOSEN TO PLACE HIS NAME THERE.H# 12 AND THOU SHALT REMEMBER THAT THOU WAST A BONDMAN IN EGYPT: AND THOU% SHALT OBSERVE AND DO THESE STATUTES. L# 13 THOU SHALT OBSERVE THE FEAST OF TABERNACLES SEVEN DAYS, AFTER THAT THOU( HAST GATHERED IN THY CORN AND THY WINE:D# 14 AND THOU SHALT REJOICE IN THY FEAST, THOU, AND THY SON, AND THYG DAUGHTER, AND THY MANSERVANT, AND THY MAIDSERVANT, AND THE LEVITE, THEEH STRANGER, AND THE FATHERLESS, AND THE WIDOW, THAT ARE WITHIN THY GATES.K# 15 SEVEN DAYS SHALT THOU KEEP A SOLEMN FEAST UNTO THE LORD THY GOD IN THEHM PLACE WHICH THE LORD SHALL CHOOSE: BECAUSE THE LORD THY GOD SHALL BLESS THEE K IN ALL THINE INCREASE, AND IN ALL THE WORKS OF THINE HANDS, THEREFORE THOU, SHALT SURELY REJOICE.M# 16 THREE TIMES IN A YEAR SHALL ALL THY MALES APPEAR BEFORE THE LORD THY GODHM IN THE PLACE WHICH HE SHALL CHOOSE; IN THE FEAST OF UNLEAVENED BREAD, AND INNH THE FEAST OF WEEKS, AND IN THE FEAST OF TABERNACLES: AND THEY SHALL NOT APPEAR BEFORE THE LORD EMPTY:I# 17 EVERY MAN SHALL GIVE AS HE IS ABLE, ACCORDING TO THE BLESSING OF THEI' LORD THY GOD WHICH HE HATH GIVEN THEE.DI# 18 JUDGES AND OFFICERS SHALT THOU MAKE THEE IN ALL THY GATES, WHICH THE J LORD THY GOD GIVETH THEE, THROUGHOUT THY TRIBES: AND THEY SHALL JUDGE THE PEOPLE WITH JUST JUDGMENT.AK# 19 THOU SHALT NOT WREST JUDGMENT; 00c,)D%5%T6%! !THOU SHALT NOT RESPECT PERSONS, NEITHER I TAKE A GIFT: FOR A GIFT DOTH BLIND THE EYES OF THE WISE, AND PERVERT THER WORDS OF THE RIGHTEOUS.L# 20 THAT WHICH IS ALTOGETHER JUST SHALT THOU FOLLOW, THAT THOU MAYEST LIVE,9 AND INHERIT THE LAND WHICH THE LORD THY GOD GIVETH THEE. J# 21 THOU SHALT NOT PLANT THEE A GROVE OF ANY TREES NEAR UNTO THE ALTAR OF. THE LORD THY GOD, WHICH THOU SHALT MAKE THEE.M# 22 NEITHER SHALT THOU SET THEE UP ANY IMAGE; WHICH THE LORD THY GOD HATETH.O = CHAPTER 17 SI# 1 THOU SHALT NOT SACRIFICE UNTO THE LORD THY GOD ANY BULLOCK, OR SHEEP,IM WHEREIN IS BLEMISH, OR ANY EVILFAVOUREDNESS: FOR THAT IS AN ABOMINATION UNTO THE LORD THY GOD.K# 2 IF THERE BE FOUND AMONG YOU, WITHIN ANY OF THY GATES WHICH THE LORD THYNL GOD GIVETH THEE, MAN OR WOMAN, THAT HATH WROUGHT WICKEDNESS IN THE SIGHT OF1 THE LORD THY GOD, IN TRANSGRESSING HIS COVENANT, M# 3 AND HATH GONE AND SERVED OTHER GODS, AND WORSHIPPED THEM, EITHER THE SUN,;C OR MOON, OR ANY OF THE HOST OF HEAVEN, WHICH I HAVE NOT COMMANDED;SL# 4 AND IT BE TOLD THEE, AND THOU HAST HEARD OF IT, AND ENQUIRED DILIGENTLY,I AND, BEHOLD, IT BE TRUE, AND THE THING CERTAIN, THAT SUCH ABOMINATION IS. WROUGHT IN ISRAEL:NL# 5 THEN SHALT THOU BRING FORTH THAT MAN OR THAT WOMAN, WHICH HAVE COMMITTEDJ THAT WICKED THING, UNTO THY GATES, EVEN THAT MAN OR THAT WOMAN, AND SHALT' STONE THEM WITH STONES, TILL THEY DIE. G# 6 AT THE MOUTH OF TWO WITNESSES, OR THREE WITNESSES, SHALL HE THAT ISON WORTHY OF DEATH BE PUT TO DEATH; BUT AT THE MOUTH OF ONE WITNESS HE SHALL NOT BE PUT TO DEATH.OK# 7 THE HANDS OF THE WITNESSES SHALL BE FIRST UPON HIM TO PUT HIM TO DEATH,HK AND AFTERWARD THE HANDS OF ALL THE PEOPLE. SO THOU SHALT PUT THE EVIL AWAYA FROM AMONG YOU.L# 8 IF THERE ARISE A MATTER TOO HARD FOR THEE IN JUDGMENT, BETWEEN BLOOD ANDN BLOOD, BETWEEN PLEA AND PLEA, AND BETWEEN STROKE AND STROKE, BEING MATTERS OFN CONTROVERSY WITHIN THY GATES: THEN SHALT THOU ARISE, AND GET THEE UP INTO THE+ PLACE WHICH THE LORD THY GOD SHALL CHOOSE;EM# 9 AND THOU SHALT COME UNTO THE PRIESTS THE LEVITES, AND UNTO THE JUDGE THATTN SHALL BE IN THOSE DAYS, AND ENQUIRE; AND THEY SHALL SHEW THEE THE SENTENCE OF JUDGMENT:J# 10 AND THOU SHALT DO ACCORDING TO THE SENTENCE, WHICH THEY OF THAT PLACEJ WHICH THE LORD SHALL CHOOSE SHALL SHEW THEE; AND THOU SHALT OBSERVE TO DO( ACCORDING TO ALL THAT THEY INFORM THEE:J# 11 ACCORDING TO THE SENTENCE OF THE LAW WHICH THEY SHALL TEACH THEE, ANDJ ACCORDING TO THE JUDGMENT WHICH THEY SHALL TELL THEE, THOU SHALT DO: THOUM SHALT NOT DECLINE FROM THE SENTENCE WHICH THEY SHALL SHEW THEE, TO THE RIGHTA HAND, NOR TO THE LEFT.EK# 12 AND THE MAN THAT WILL DO PRESUMPTUOUSLY, AND WILL NOT HEARKEN UNTO THEHL PRIEST THAT STANDETH TO MINISTER THERE BEFORE THE LORD THY GOD, OR UNTO THEN JUDGE, EVEN THAT MAN SHALL DIE: AND THOU SHALT PUT AWAY THE EVIL FROM ISRAEL.L# 13 AND ALL THE PEOPLE SHALL HEAR, AND FEAR, AND DO NO MORE PRESUMPTUOUSLY.M# 14 WHEN THOU ART COME UNTO THE LAND WHICH THE LORD THY GOD GIVETH THEE, ANDHL SHALT POSSESS IT, AND SHALT DWELL THEREIN, AND SHALT SAY, I WILL SET A KING4 OVER ME, LIKE AS ALL THE NATIONS THAT ARE ABOUT ME;I# 15 THOU SHALT IN ANY WISE SET HIM KING OVER THEE, WHOM THE LORD THY GODHN SHALL CHOOSE: ONE FROM AMONG THY BRETHREN SHALT THOU SET KING OVER THEE: THOU? MAYEST NOT SET A STRANGER OVER THEE, WHICH IS NOT THY BROTHER..I# 16 BUT HE SHALL NOT MULTIPLY HORSES TO HIMSELF, NOR CAUSE THE PEOPLE TOLM RETURN TO EGYPT, TO THE END THAT HE SHOULD MULTIPLY HORSES: FORASMUCH AS THENF LORD HATH SAID UNTO YOU, YE SHALL HENCEFORTH RETURN NO MORE THAT WAY.H# 17 NEITHER SHALL HE MULTIPLY WIVES TO HIMSELF, THAT HIS HEART TURN NOTD AWAY: NEITHER SHALL HE GREATLY MULTIPLY TO HIMSELF SILVER AND GOLD.M# 18 AND IT SHALL BE, WHEN HE SITTETH UPON THE THRONE OF HIS KINGDOM, THAT HEYM SHALL WRITE HIM A COPY OF THIS LAW IN A BOOK OUT OF THAT WHICH IS BEFORE THE  PRIESTS THE LEVITES:HL# 19 AND IT SHALL BE WITH HIM, AND HE SHALL READ THEREIN ALL THE DAYS OF HISK LIFE: THAT HE MAY LEARN TO FEAR THE LORD HIS GOD,00c,k+<%X>%+%O-%TADATADATA TO KEEP ALL THE WORDS OFO) THIS LAW AND THESE STATUTES, TO DO THEM:SM# 20 THAT HIS HEART BE NOT LIFTED UP ABOVE HIS BRETHREN, AND THAT HE TURN NOTLJ ASIDE FROM THE COMMANDMENT, TO THE RIGHT HAND, OR TO THE LEFT: TO THE ENDJ THAT HE MAY PROLONG HIS DAYS IN HIS KINGDOM, HE, AND HIS CHILDREN, IN THE MIDST OF ISRAEL.B = CHAPTER 18 N# 1 THE PRIESTS THE LEVITES, AND ALL THE TRIBE OF LEVI, SHALL HAVE NO PART NORJ INHERITANCE WITH ISRAEL: THEY SHALL EAT THE OFFERINGS OF THE LORD MADE BY FIRE, AND HIS INHERITANCE.LK# 2 THEREFORE SHALL THEY HAVE NO INHERITANCE AMONG THEIR BRETHREN: THE LORDR1 IS THEIR INHERITANCE, AS HE HATH SAID UNTO THEM.TM# 3 AND THIS SHALL BE THE PRIESTS DUE FROM THE PEOPLE, FROM THEM THAT OFFER AEN SACRIFICE, WHETHER IT BE OX OR SHEEP; AND THEY SHALL GIVE UNTO THE PRIEST THE+ SHOULDER, AND THE TWO CHEEKS, AND THE MAW. K# 4 THE FIRSTFRUIT ALSO OF THY CORN, OF THY WINE, AND OF THINE OIL, AND THER7 FIRST OF THE FLEECE OF THY SHEEP, SHALT THOU GIVE HIM.OK# 5 FOR THE LORD THY GOD HATH CHOSEN HIM OUT OF ALL THY TRIBES, TO STAND TOH= MINISTER IN THE NAME OF THE LORD, HIM AND HIS SONS FOR EVER.,J# 6 AND IF A LEVITE COME FROM ANY OF THY GATES OUT OF ALL ISRAEL, WHERE HEM SOJOURNED, AND COME WITH ALL THE DESIRE OF HIS MIND UNTO THE PLACE WHICH THEE LORD SHALL CHOOSE; F# 7 THEN HE SHALL MINISTER IN THE NAME OF THE LORD HIS GOD, AS ALL HIS< BRETHREN THE LEVITES DO, WHICH STAND THERE BEFORE THE LORD.I# 8 THEY SHALL HAVE LIKE PORTIONS TO EAT, BESIDE THAT WHICH COMETH OF THED SALE OF HIS PATRIMONY.OM# 9 WHEN THOU ART COME INTO THE LAND WHICH THE LORD THY GOD GIVETH THEE, THOUH? SHALT NOT LEARN TO DO AFTER THE ABOMINATIONS OF THOSE NATIONS.SJ# 10 THERE SHALL NOT BE FOUND AMONG YOU ANY ONE THAT MAKETH HIS SON OR HISL DAUGHTER TO PASS THROUGH THE FIRE, OR THAT USETH DIVINATION, OR AN OBSERVER' OF TIMES, OR AN ENCHANTER, OR A WITCH.AJ# 11 OR A CHARMER, OR A CONSULTER WITH FAMILIAR SPIRITS, OR A WIZARD, OR A NECROMANCER.IG# 12 FOR ALL THAT DO THESE THINGS ARE AN ABOMINATION UNTO THE LORD: ANDOH BECAUSE OF THESE ABOMINATIONS THE LORD THY GOD DOTH DRIVE THEM OUT FROM BEFORE THEE.A1# 13 THOU SHALT BE PERFECT WITH THE LORD THY GOD.NM# 14 FOR THESE NATIONS, WHICH THOU SHALT POSSESS, HEARKENED UNTO OBSERVERS OFRN TIMES, AND UNTO DIVINERS: BUT AS FOR THEE, THE LORD THY GOD HATH NOT SUFFERED THEE SO TO DO. I# 15 THE LORD THY GOD WILL RAISE UP UNTO THEE A PROPHET FROM THE MIDST OF @ THEE, OF THY BRETHREN, LIKE UNTO ME; UNTO HIM YE SHALL HEARKEN;M# 16 ACCORDING TO ALL THAT THOU DESIREDST OF THE LORD THY GOD IN HOREB IN THEOL DAY OF THE ASSEMBLY, SAYING, LET ME NOT HEAR AGAIN THE VOICE OF THE LORD MYB GOD, NEITHER LET ME SEE THIS GREAT FIRE ANY MORE, THAT I DIE NOT.J# 17 AND THE LORD SAID UNTO ME, THEY HAVE WELL SPOKEN THAT WHICH THEY HAVE SPOKEN.H# 18 I WILL RAISE THEM UP A PROPHET FROM AMONG THEIR BRETHREN, LIKE UNTOK THEE, AND WILL PUT MY WORDS IN HIS MOUTH; AND HE SHALL SPEAK UNTO THEM ALLR THAT I SHALL COMMAND HIM.M# 19 AND IT SHALL COME TO PASS, THAT WHOSOEVER WILL NOT HEARKEN UNTO MY WORDS ; WHICH HE SHALL SPEAK IN MY NAME, I WILL REQUIRE IT OF HIM.TM# 20 BUT THE PROPHET, WHICH SHALL PRESUME TO SPEAK A WORD IN MY NAME, WHICH IAJ HAVE NOT COMMANDED HIM TO SPEAK, OR THAT SHALL SPEAK IN THE NAME OF OTHER# GODS, EVEN THAT PROPHET SHALL DIE. I# 21 AND IF THOU SAY IN THINE HEART, HOW SHALL WE KNOW THE WORD WHICH THEE LORD HATH NOT SPOKEN?I# 22 WHEN A PROPHET SPEAKETH IN THE NAME OF THE LORD, IF THE THING FOLLOW.M NOT, NOR COME TO PASS, THAT IS THE THING WHICH THE LORD HATH NOT SPOKEN, BUT L THE PROPHET HATH SPOKEN IT PRESUMPTUOUSLY: THOU SHALT NOT BE AFRAID OF HIM. = CHAPTER 19 HK# 1 WHEN THE LORD THY GOD HATH CUT OFF THE NATIONS, WHOSE LAND THE LORD THYSM GOD GIVETH THEE, AND THOU SUCCEEDEST THEM, AND DWELLEST IN THEIR CITIES, ANDD IN THEIR HOUSES;HM# 2 THOU SHALT SEPARATE THREE CITIES FOR THEE IN THE MIDST OF THY LAND, WHICHO, THE LORD THY GOD GIVETH THEE TO POSSESS IT.K# 3 THOU SHALT PREPARE THEE A WAY, AND DIVIDE THE COASTS OF THY LAND, WHICH M THE LORD TH00c,)D%5%T6%! !Y GOD GIVETH THEE TO INHERIT, INTO THREE PARTS, THAT EVERY SLAYERY MAY FLEE THITHER.M# 4 AND THIS IS THE CASE OF THE SLAYER, WHICH SHALL FLEE THITHER, THAT HE MAYON LIVE: WHOSO KILLETH HIS NEIGHBOUR IGNORANTLY, WHOM HE HATED NOT IN TIME PAST;M# 5 AS WHEN A MAN GOETH INTO THE WOOD WITH HIS NEIGHBOUR TO HEW WOOD, AND HIS G HAND FETCHETH A STROKE WITH THE AXE TO CUT DOWN THE TREE, AND THE HEADHJ SLIPPETH FROM THE HELVE, AND LIGHTETH UPON HIS NEIGHBOUR, THAT HE DIE; HE/ SHALL FLEE UNTO ONE OF THOSE CITIES, AND LIVE:TL# 6 LEST THE AVENGER OF THE BLOOD PURSUE THE SLAYER, WHILE HIS HEART IS HOT,L AND OVERTAKE HIM, BECAUSE THE WAY IS LONG, AND SLAY HIM; WHEREAS HE WAS NOT< WORTHY OF DEATH, INASMUCH AS HE HATED HIM NOT IN TIME PAST.J# 7 WHEREFORE I COMMAND THEE, SAYING, THOU SHALT SEPARATE THREE CITIES FOR THEE.H# 8 AND IF THE LORD THY GOD ENLARGE THY COAST, AS HE HATH SWORN UNTO THYG FATHERS, AND GIVE THEE ALL THE LAND WHICH HE PROMISED TO GIVE UNTO THYA FATHERS;EI# 9 IF THOU SHALT KEEP ALL THESE COMMANDMENTS TO DO THEM, WHICH I COMMAND L THEE THIS DAY, TO LOVE THE LORD THY GOD, AND TO WALK EVER IN HIS WAYS; THEN@ SHALT THOU ADD THREE CITIES MORE FOR THEE , BESIDE THESE THREE:H# 10 THAT INNOCENT BLOOD BE NOT SHED IN THY LAND, WHICH THE LORD THY GOD; GIVETH THEE FOR AN INHERITANCE, AND SO BLOOD BE UPON THEE. L# 11 BUT IF ANY MAN HATE HIS NEIGHBOUR, AND LIE IN WAIT FOR HIM, AND RISE UPN AGAINST HIM, AND SMITE HIM MORTALLY THAT HE DIE, AND FLEETH INTO ONE OF THESE CITIES:M# 12 THEN THE ELDERS OF HIS CITY SHALL SEND AND FETCH HIM THENCE, AND DELIVERY< HIM INTO THE HAND OF THE AVENGER OF BLOOD, THAT HE MAY DIE.G# 13 THINE EYE SHALL NOT PITY HIM, BUT THOU SHALT PUT AWAY THE GUILT OFT; INNOCENT BLOOD FROM ISRAEL, THAT IT MAY GO WELL WITH THEE.YJ# 14 THOU SHALT NOT REMOVE THY NEIGHBOURS LANDMARK, WHICH THEY OF OLD TIMEM HAVE SET IN THINE INHERITANCE, WHICH THOU SHALT INHERIT IN THE LAND THAT THEH( LORD THY GOD GIVETH THEE TO POSSESS IT.M# 15 ONE WITNESS SHALL NOT RISE UP AGAINST A MAN FOR ANY INIQUITY, OR FOR ANYNJ SIN, IN ANY SIN THAT HE SINNETH: AT THE MOUTH OF TWO WITNESSES, OR AT THE; MOUTH OF THREE WITNESSES, SHALL THE MATTER BE ESTABLISHED.TK# 16 IF A FALSE WITNESS RISE UP AGAINST ANY MAN TO TESTIFY AGAINST HIM THATG WHICH IS WRONG;K# 17 THEN BOTH THE MEN, BETWEEN WHOM THE CONTROVERSY IS, SHALL STAND BEFOREK THE LORD, BEFORE THE PRIESTS AND THE JUDGES, WHICH SHALL BE IN THOSE DAYS;HH# 18 AND THE JUDGES SHALL MAKE DILIGENT INQUISITION: AND, BEHOLD, IF THEL WITNESS BE A FALSE WITNESS, AND HATH TESTIFIED FALSELY AGAINST HIS BROTHER;G# 19 THEN SHALL YE DO UNTO HIM, AS HE HAD THOUGHT TO HAVE DONE UNTO HIS,9 BROTHER: SO SHALT THOU PUT THE EVIL AWAY FROM AMONG YOU. M# 20 AND THOSE WHICH REMAIN SHALL HEAR, AND FEAR, AND SHALL HENCEFORTH COMMITE! NO MORE ANY SUCH EVIL AMONG YOU.NK# 21 AND THINE EYE SHALL NOT PITY; BUT LIFE SHALL GO FOR LIFE, EYE FOR EYE,S/ TOOTH FOR TOOTH, HAND FOR HAND, FOOT FOR FOOT.D = CHAPTER 20 DN# 1 WHEN THOU GOEST OUT TO BATTLE AGAINST THINE ENEMIES, AND SEEST HORSES, ANDK CHARIOTS, AND A PEOPLE MORE THAN THOU, BE NOT AFRAID OF THEM: FOR THE LORD F THY GOD IS WITH THEE, WHICH BROUGHT THEE UP OUT OF THE LAND OF EGYPT.K# 2 AND IT SHALL BE, WHEN YE ARE COME NIGH UNTO THE BATTLE, THAT THE PRIEST * SHALL APPROACH AND SPEAK UNTO THE PEOPLE,M# 3 AND SHALL SAY UNTO THEM, HEAR, O ISRAEL, YE APPROACH THIS DAY UNTO BATTLE,F AGAINST YOUR ENEMIES: LET NOT YOUR HEARTS FAINT, FEAR NOT, AND DO NOT2 TREMBLE, NEITHER BE YE TERRIFIED BECAUSE OF THEM;M# 4 FOR THE LORD YOUR GOD IS HE THAT GOETH WITH YOU, TO FIGHT FOR YOU AGAINSTE YOUR ENEMIES, TO SAVE YOU.LK# 5 AND THE OFFICERS SHALL SPEAK UNTO THE PEOPLE, SAYING, WHAT MAN IS THEREN THAT HATH BUILT A NEW HOUSE, AND HATH NOT DEDICATED IT? LET HIM GO AND RETURNF TO HIS HOUSE, LEST HE DIE IN THE BATTLE, AND ANOTHER MAN DEDICATE IT.K# 6 AND WHAT MAN IS HE THAT HATH PLANTED A VINEYARD, AND HATH NOT YET EATENNM OF IT? LET HIM ALSO GO AND RETURN UNTO HIS HOUSE, LEST HE DIE IN THE BATTLE,E AND ANOTHER MAN EAT OF IT.OM# 7 AN00c,k+<%X>%+%O-%TADATADATAD WHAT MAN IS THERE THAT HATH BETROTHED A WIFE, AND HATH NOT TAKEN HER?,M LET HIM GO AND RETURN UNTO HIS HOUSE, LEST HE DIE IN THE BATTLE, AND ANOTHERM MAN TAKE HER.M# 8 AND THE OFFICERS SHALL SPEAK FURTHER UNTO THE PEOPLE, AND THEY SHALL SAY,TJ WHAT MAN IS THERE THAT IS FEARFUL AND FAINTHEARTED? LET HIM GO AND RETURNE UNTO HIS HOUSE, LEST HIS BRETHRENS HEART FAINT AS WELL AS HIS HEART.L# 9 AND IT SHALL BE, WHEN THE OFFICERS HAVE MADE AN END OF SPEAKING UNTO THEG PEOPLE THAT THEY SHALL MAKE CAPTAINS OF THE ARMIES TO LEAD THE PEOPLE.TI# 10 WHEN THOU COMEST NIGH UNTO A CITY TO FIGHT AGAINST IT, THEN PROCLAIM, PEACE UNTO IT.HJ# 11 AND IT SHALL BE, IF IT MAKE THEE ANSWER OF PEACE, AND OPEN UNTO THEE,E THEN IT SHALL BE, THAT ALL THE PEOPLE THAT IS FOUND THEREIN SHALL BEF2 TRIBUTARIES UNTO THEE, AND THEY SHALL SERVE THEE.L# 12 AND IF IT WILL MAKE NO PEACE WITH THEE, BUT WILL MAKE WAR AGAINST THEE, THEN THOU SHALT BESIEGE IT:M# 13 AND WHEN THE LORD THY GOD HATH DELIVERED IT INTO THINE HANDS, THOU SHALTT5 SMITE EVERY MALE THEREOF WITH THE EDGE OF THE SWORD:IK# 14 BUT THE WOMEN, AND THE LITTLE ONES, AND THE CATTLE, AND ALL THAT IS INDM THE CITY, EVEN ALL THE SPOIL THEREOF, SHALT THOU TAKE UNTO THYSELF; AND THOUAN SHALT EAT THE SPOIL OF THINE ENEMIES, WHICH THE LORD THY GOD HATH GIVEN THEE.M# 15 THUS SHALT THOU DO UNTO ALL THE CITIES WHICH ARE VERY FAR OFF FROM THEE,T. WHICH ARE NOT OF THE CITIES OF THESE NATIONS.M# 16 BUT OF THE CITIES OF THESE PEOPLE, WHICH THE LORD THY GOD DOTH GIVE THEETB FOR AN INHERITANCE, THOU SHALT SAVE ALIVE NOTHING THAT BREATHETH:G# 17 BUT THOU SHALT UTTERLY DESTROY THEM; NAMELY, THE HITTITES, AND THEIN AMORITES, THE CANAANITES, AND THE PERIZZITES, THE HIVITES, AND THE JEBUSITES;) AS THE LORD THY GOD HATH COMMANDED THEE:WK# 18 THAT THEY TEACH YOU NOT TO DO AFTER ALL THEIR ABOMINATIONS, WHICH THEYCG HAVE DONE UNTO THEIR GODS; SO SHOULD YE SIN AGAINST THE LORD YOUR GOD. L# 19 WHEN THOU SHALT BESIEGE A CITY A LONG TIME, IN MAKING WAR AGAINST IT TOL TAKE IT, THOU SHALT NOT DESTROY THE TREES THEREOF BY FORCING AN AXE AGAINSTM THEM: FOR THOU MAYEST EAT OF THEM, AND THOU SHALT NOT CUT THEM DOWN (FOR THEI= TREE OF THE FIELD IS MANS LIFE) TO EMPLOY THEM IN THE SIEGE:NL# 20 ONLY THE TREES WHICH THOU KNOWEST THAT THEY BE NOT TREES FOR MEAT, THOUK SHALT DESTROY AND CUT THEM DOWN; AND THOU SHALT BUILD BULWARKS AGAINST THE 5 CITY THAT MAKETH WAR WITH THEE, UNTIL IT BE SUBDUED. = CHAPTER 21 UK# 1 IF ONE BE FOUND SLAIN IN THE LAND WHICH THE LORD THY GOD GIVETH THEE TOUH POSSESS IT, LYING IN THE FIELD, AND IT BE NOT KNOWN WHO HATH SLAIN HIM:K# 2 THEN THY ELDERS AND THY JUDGES SHALL COME FORTH, AND THEY SHALL MEASUREF9 UNTO THE CITIES WHICH ARE ROUND ABOUT HIM THAT IS SLAIN:0M# 3 AND IT SHALL BE, THAT THE CITY WHICH IS NEXT UNTO THE SLAIN MAN, EVEN THETL ELDERS OF THAT CITY SHALL TAKE AN HEIFER, WHICH HATH NOT BEEN WROUGHT WITH,& AND WHICH HATH NOT DRAWN IN THE YOKE;H# 4 AND THE ELDERS OF THAT CITY SHALL BRING DOWN THE HEIFER UNTO A ROUGHJ VALLEY, WHICH IS NEITHER EARED NOR SOWN, AND SHALL STRIKE OFF THE HEIFERS NECK THERE IN THE VALLEY:K# 5 AND THE PRIESTS THE SONS OF LEVI SHALL COME NEAR; FOR THEM THE LORD THYL GOD HATH CHOSEN TO MINISTER UNTO HIM, AND TO BLESS IN THE NAME OF THE LORD;E AND BY THEIR WORD SHALL EVERY CONTROVERSY AND EVERY STROKE BE TRIED:FL# 6 AND ALL THE ELDERS OF THAT CITY, THAT ARE NEXT UNTO THE SLAIN MAN, SHALLA WASH THEIR HANDS OVER THE HEIFER THAT IS BEHEADED IN THE VALLEY: F# 7 AND THEY SHALL ANSWER AND SAY, OUR HANDS HAVE NOT SHED THIS BLOOD, NEITHER HAVE OUR EYES SEEN IT.IM# 8 BE MERCIFUL, O LORD, UNTO THY PEOPLE ISRAEL, WHOM THOU HAST REDEEMED, ANDMN LAY NOT INNOCENT BLOOD UNTO THY PEOPLE OF ISRAELS CHARGE. AND THE BLOOD SHALL BE FORGIVEN THEM.K# 9 SO SHALT THOU PUT AWAY THE GUILT OF INNOCENT BLOOD FROM AMONG YOU, WHEND< THOU SHALT DO THAT WHICH IS RIGHT IN THE SIGHT OF THE LORD.M# 10 WHEN THOU GOEST FORTH TO WAR AGAINST THINE ENEMIES, AND THE LORD THY GODAH HATH DELIVERED THEM INTO THINE HANDS, AND THOU HAST TAKEN THEM CAPTIV00c ,)D%5%T6%! !E,K# 11 AND SEEST AMONG THE CAPTIVES A BEAUTIFUL WOMAN, AND HAST A DESIRE UNTOP. HER, THAT THOU WOULDEST HAVE HER TO THY WIFE;K# 12 THEN THOU SHALT BRING HER HOME TO THINE HOUSE, AND SHE SHALL SHAVE HER  HEAD, AND PARE HER NAILS;K# 13 AND SHE SHALL PUT THE RAIMENT OF HER CAPTIVITY FROM OFF HER, AND SHALL N REMAIN IN THINE HOUSE, AND BEWAIL HER FATHER AND HER MOTHER A FULL MONTH: ANDK AFTER THAT THOU SHALT GO IN UNTO HER, AND BE HER HUSBAND, AND SHE SHALL BEH THY WIFE.M# 14 AND IT SHALL BE, IF THOU HAVE NO DELIGHT IN HER, THEN THOU SHALT LET HER N GO WHITHER SHE WILL; BUT THOU SHALT NOT SELL HER AT ALL FOR MONEY, THOU SHALT< NOT MAKE MERCHANDISE OF HER, BECAUSE THOU HAST HUMBLED HER.K# 15 IF A MAN HAVE TWO WIVES, ONE BELOVED, AND ANOTHER HATED, AND THEY HAVETL BORN HIM CHILDREN, BOTH THE BELOVED AND THE HATED; AND IF THE FIRSTBORN SON BE HERS THAT WAS HATED:M# 16 THEN IT SHALL BE, WHEN HE MAKETH HIS SONS TO INHERIT THAT WHICH HE HATH,AL THAT HE MAY NOT MAKE THE SON OF THE BELOVED FIRSTBORN BEFORE THE SON OF THE& HATED, WHICH IS INDEED THE FIRSTBORN:H# 17 BUT HE SHALL ACKNOWLEDGE THE SON OF THE HATED FOR THE FIRSTBORN, BYL GIVING HIM A DOUBLE PORTION OF ALL THAT HE HATH: FOR HE IS THE BEGINNING OF1 HIS STRENGTH; THE RIGHT OF THE FIRSTBORN IS HIS.YI# 18 IF A MAN HAVE A STUBBORN AND REBELLIOUS SON, WHICH WILL NOT OBEY THETJ VOICE OF HIS FATHER, OR THE VOICE OF HIS MOTHER, AND THAT, WHEN THEY HAVE+ CHASTENED HIM, WILL NOT HEARKEN UNTO THEM: L# 19 THEN SHALL HIS FATHER AND HIS MOTHER LAY HOLD ON HIM, AND BRING HIM OUT= UNTO THE ELDERS OF HIS CITY, AND UNTO THE GATE OF HIS PLACE; M# 20 AND THEY SHALL SAY UNTO THE ELDERS OF HIS CITY, THIS OUR SON IS STUBBORN M AND REBELLIOUS, HE WILL NOT OBEY OUR VOICE; HE IS A GLUTTON, AND A DRUNKARD.BM# 21 AND ALL THE MEN OF HIS CITY SHALL STONE HIM WITH STONES, THAT HE DIE: SOON SHALT THOU PUT EVIL AWAY FROM AMONG YOU; AND ALL ISRAEL SHALL HEAR, AND FEAR.K# 22 AND IF A MAN HAVE COMMITTED A SIN WORTHY OF DEATH, AND HE BE TO BE PUTR' TO DEATH, AND THOU HANG HIM ON A TREE:GM# 23 HIS BODY SHALL NOT REMAIN ALL NIGHT UPON THE TREE, BUT THOU SHALT IN ANYAM WISE BURY HIM THAT DAY; (FOR HE THAT IS HANGED IS ACCURSED OF GOD;) THAT THYRL LAND BE NOT DEFILED, WHICH THE LORD THY GOD GIVETH THEE FOR AN INHERITANCE. = CHAPTER 22 NG# 1 THOU SHALT NOT SEE THY BROTHERS OX OR HIS SHEEP GO ASTRAY, AND HIDEUM THYSELF FROM THEM: THOU SHALT IN ANY CASE BRING THEM AGAIN UNTO THY BROTHER. K# 2 AND IF THY BROTHER BE NOT NIGH UNTO THEE, OR IF THOU KNOW HIM NOT, THENDN THOU SHALT BRING IT UNTO THINE OWN HOUSE, AND IT SHALL BE WITH THEE UNTIL THY? BROTHER SEEK AFTER IT, AND THOU SHALT RESTORE IT TO HIM AGAIN. L# 3 IN LIKE MANNER SHALT THOU DO WITH HIS ASS; AND SO SHALT THOU DO WITH HISJ RAIMENT; AND WITH ALL LOST THING OF THY BROTHERS, WHICH HE HATH LOST, ANDG THOU HAST FOUND, SHALT THOU DO LIKEWISE: THOU MAYEST NOT HIDE THYSELF.MK# 4 THOU SHALT NOT SEE THY BROTHERS ASS OR HIS OX FALL DOWN BY THE WAY, ANDBJ HIDE THYSELF FROM THEM: THOU SHALT SURELY HELP HIM TO LIFT THEM UP AGAIN.L# 5 THE WOMAN SHALL NOT WEAR THAT WHICH PERTAINETH UNTO A MAN, NEITHER SHALLK A MAN PUT ON A WOMANS GARMENT: FOR ALL THAT DO SO ARE ABOMINATION UNTO THET LORD THY GOD.J# 6 IF A BIRDS NEST CHANCE TO BE BEFORE THEE IN THE WAY IN ANY TREE, OR ONN THE GROUND, WHETHER THEY BE YOUNG ONES, OR EGGS, AND THE DAM SITTING UPON THEE YOUNG, OR UPON THE EGGS, THOU SHALT NOT TAKE THE DAM WITH THE YOUNG: J# 7 BUT THOU SHALT IN ANY WISE LET THE DAM GO, AND TAKE THE YOUNG TO THEE;F THAT IT MAY BE WELL WITH THEE, AND THAT THOU MAYEST PROLONG THY DAYS.M# 8 WHEN THOU BUILDEST A NEW HOUSE, THEN THOU SHALT MAKE A BATTLEMENT FOR THY G ROOF, THAT THOU BRING NOT BLOOD UPON THINE HOUSE, IF ANY MAN FALL FROMN THENCE.L# 9 THOU SHALT NOT SOW THY VINEYARD WITH DIVERS SEEDS: LEST THE FRUIT OF THYF SEED WHICH THOU HAST SOWN, AND THE FRUIT OF THY VINEYARD, BE DEFILED.8# 10 THOU SHALT NOT PLOW WITH AN OX AND AN ASS TOGETHER.K# 11 THOU SHALT NOT WEAR A GARMENT OF DIVERS SORTS, AS OF WOOLLEN AND LINENT TOGETHER.H# 00c(,k+<%X>%+%O-%TADATADATA12 THOU SHALT MAKE THEE FRINGES UPON THE FOUR QUARTERS OF THY VESTURE,! WHEREWITH THOU COVEREST THYSELF.A># 13 IF ANY MAN TAKE A WIFE, AND GO IN UNTO HER, AND HATE HER,M# 14 AND GIVE OCCASIONS OF SPEECH AGAINST HER, AND BRING UP AN EVIL NAME UPONIK HER, AND SAY, I TOOK THIS WOMAN, AND WHEN I CAME TO HER, I FOUND HER NOT AR MAID:H# 15 THEN SHALL THE FATHER OF THE DAMSEL, AND HER MOTHER, TAKE AND BRINGM FORTH THE TOKENS OF THE DAMSELS VIRGINITY UNTO THE ELDERS OF THE CITY IN THE  GATE:I# 16 AND THE DAMSELS FATHER SHALL SAY UNTO THE ELDERS, I GAVE MY DAUGHTER * UNTO THIS MAN TO WIFE, AND HE HATETH HER;L# 17 AND, LO, HE HATH GIVEN OCCASIONS OF SPEECH AGAINST HER, SAYING, I FOUNDF NOT THY DAUGHTER A MAID; AND YET THESE ARE THE TOKENS OF MY DAUGHTERSJ VIRGINITY. AND THEY SHALL SPREAD THE CLOTH BEFORE THE ELDERS OF THE CITY.F# 18 AND THE ELDERS OF THAT CITY SHALL TAKE THAT MAN AND CHASTISE HIM;M# 19 AND THEY SHALL AMERCE HIM IN AN HUNDRED SHEKELS OF SILVER, AND GIVE THEMIN UNTO THE FATHER OF THE DAMSEL, BECAUSE HE HATH BROUGHT UP AN EVIL NAME UPON AM VIRGIN OF ISRAEL: AND SHE SHALL BE HIS WIFE; HE MAY NOT PUT HER AWAY ALL HISI DAYS.L# 20 BUT IF THIS THING BE TRUE, AND THE TOKENS OF VIRGINITY BE NOT FOUND FOR THE DAMSEL:K# 21 THEN THEY SHALL BRING OUT THE DAMSEL TO THE DOOR OF HER FATHERS HOUSE,TN AND THE MEN OF HER CITY SHALL STONE HER WITH STONES THAT SHE DIE: BECAUSE SHEI HATH WROUGHT FOLLY IN ISRAEL, TO PLAY THE WHORE IN HER FATHERS HOUSE: SOV) SHALT THOU PUT EVIL AWAY FROM AMONG YOU. J# 22 IF A MAN BE FOUND LYING WITH A WOMAN MARRIED TO AN HUSBAND, THEN THEYM SHALL BOTH OF THEM DIE, BOTH THE MAN THAT LAY WITH THE WOMAN, AND THE WOMAN: ) SO SHALT THOU PUT AWAY EVIL FROM ISRAEL.NI# 23 IF A DAMSEL THAT IS A VIRGIN BE BETROTHED UNTO AN HUSBAND, AND A MANE( FIND HER IN THE CITY, AND LIE WITH HER;I# 24 THEN YE SHALL BRING THEM BOTH OUT UNTO THE GATE OF THAT CITY, AND YEJ SHALL STONE THEM WITH STONES THAT THEY DIE; THE DAMSEL, BECAUSE SHE CRIEDL NOT, BEING IN THE CITY; AND THE MAN, BECAUSE HE HATH HUMBLED HIS NEIGHBOURS2 WIFE: SO THOU SHALT PUT AWAY EVIL FROM AMONG YOU.I# 25 BUT IF A MAN FIND A BETROTHED DAMSEL IN THE FIELD, AND THE MAN FORCEHF HER, AND LIE WITH HER: THEN THE MAN ONLY THAT LAY WITH HER SHALL DIE.M# 26 BUT UNTO THE DAMSEL THOU SHALT DO NOTHING; THERE IS IN THE DAMSEL NO SINEM WORTHY OF DEATH: FOR AS WHEN A MAN RISETH AGAINST HIS NEIGHBOUR, AND SLAYETH HIM, EVEN SO IS THIS MATTER:HM# 27 FOR HE FOUND HER IN THE FIELD, AND THE BETROTHED DAMSEL CRIED, AND THEREN WAS NONE TO SAVE HER.M# 28 IF A MAN FIND A DAMSEL THAT IS A VIRGIN, WHICH IS NOT BETROTHED, AND LAYI2 HOLD ON HER, AND LIE WITH HER, AND THEY BE FOUND;L# 29 THEN THE MAN THAT LAY WITH HER SHALL GIVE UNTO THE DAMSELS FATHER FIFTYN SHEKELS OF SILVER, AND SHE SHALL BE HIS WIFE; BECAUSE HE HATH HUMBLED HER, HE# MAY NOT PUT HER AWAY ALL HIS DAYS. K# 30 A MAN SHALL NOT TAKE HIS FATHERS WIFE, NOR DISCOVER HIS FATHERS SKIRT.R = CHAPTER 23 M# 1 HE THAT IS WOUNDED IN THE STONES, OR HATH HIS PRIVY MEMBER CUT OFF, SHALLO- NOT ENTER INTO THE CONGREGATION OF THE LORD. L# 2 A BASTARD SHALL NOT ENTER INTO THE CONGREGATION OF THE LORD; EVEN TO HISG TENTH GENERATION SHALL HE NOT ENTER INTO THE CONGREGATION OF THE LORD. M# 3 AN AMMONITE OR MOABITE SHALL NOT ENTER INTO THE CONGREGATION OF THE LORD; M EVEN TO THEIR TENTH GENERATION SHALL THEY NOT ENTER INTO THE CONGREGATION OFT THE LORD FOR EVER:EJ# 4 BECAUSE THEY MET YOU NOT WITH BREAD AND WITH WATER IN THE WAY, WHEN YEL CAME FORTH OUT OF EGYPT; AND BECAUSE THEY HIRED AGAINST THEE BALAAM THE SON1 OF BEOR OF PETHOR OF MESOPOTAMIA, TO CURSE THEE.NM# 5 NEVERTHELESS THE LORD THY GOD WOULD NOT HEARKEN UNTO BALAAM; BUT THE LORDNM THY GOD TURNED THE CURSE INTO A BLESSING UNTO THEE, BECAUSE THE LORD THY GODN LOVED THEE.I# 6 THOU SHALT NOT SEEK THEIR PEACE NOR THEIR PROSPERITY ALL THY DAYS FORN EVER.J# 7 THOU SHALT NOT ABHOR AN EDOMITE; FOR HE IS THY BROTHER: THOU SHALT NOT= ABHOR AN EGYPTIAN; BECAUSE THOU WAST A STRANGER IN HIS LAND.UL# 8 THE CHILDREN THAT ARE BE00c0,)D%5%T6%! !GOTTEN OF THEM SHALL ENTER INTO THE CONGREGATION' OF THE LORD IN THEIR THIRD GENERATION. H# 9 WHEN THE HOST GOETH FORTH AGAINST THINE ENEMIES, THEN KEEP THEE FROM EVERY WICKED THING.B# 10 IF THERE BE AMONG YOU ANY MAN, THAT IS NOT CLEAN BY REASON OFK UNCLEANNESS THAT CHANCETH HIM BY NIGHT, THEN SHALL HE GO ABROAD OUT OF THEO, CAMP, HE SHALL NOT COME WITHIN THE CAMP: ITH# 11 BUT IT SHALL BE, WHEN EVENING COMETH ON, HE SHALL WASH HIMSELF WITHD WATER: AND WHEN THE SUN IS DOWN, HE SHALL COME INTO THE CAMP AGAIN.I# 12 THOU SHALT HAVE A PLACE ALSO WITHOUT THE CAMP, WHITHER THOU SHALT GOI FORTH ABROAD:M# 13 AND THOU SHALT HAVE A PADDLE UPON THY WEAPON; AND IT SHALL BE, WHEN THOUHL WILT EASE THYSELF ABROAD, THOU SHALT DIG THEREWITH, AND SHALT TURN BACK AND# COVER THAT WHICH COMETH FROM THEE:TL# 14 FOR THE LORD THY GOD WALKETH IN THE MIDST OF THY CAMP, TO DELIVER THEE,L AND TO GIVE UP THINE ENEMIES BEFORE THEE; THEREFORE SHALL THY CAMP BE HOLY:? THAT HE SEE NO UNCLEAN THING IN THEE, AND TURN AWAY FROM THEE.IM# 15 THOU SHALT NOT DELIVER UNTO HIS MASTER THE SERVANT WHICH IS ESCAPED FROM HIS MASTER UNTO THEE:K# 16 HE SHALL DWELL WITH THEE, EVEN AMONG YOU, IN THAT PLACE WHICH HE SHALL M CHOOSE IN ONE OF THY GATES, WHERE IT LIKETH HIM BEST: THOU SHALT NOT OPPRESST HIM.CJ# 17 THERE SHALL BE NO WHORE OF THE DAUGHTERS OF ISRAEL, NOR A SODOMITE OF THE SONS OF ISRAEL.J# 18 THOU SHALT NOT BRING THE HIRE OF A WHORE, OR THE PRICE OF A DOG, INTOC THE HOUSE OF THE LORD THY GOD FOR ANY VOW: FOR EVEN BOTH THESE ARE# ABOMINATION UNTO THE LORD THY GOD.ML# 19 THOU SHALT NOT LEND UPON USURY TO THY BROTHER; USURY OF MONEY, USURY OF6 VICTUALS, USURY OF ANY THING THAT IS LENT UPON USURY:K# 20 UNTO A STRANGER THOU MAYEST LEND UPON USURY; BUT UNTO THY BROTHER THOUOL SHALT NOT LEND UPON USURY: THAT THE LORD THY GOD MAY BLESS THEE IN ALL THATI THOU SETTEST THINE HAND TO IN THE LAND WHITHER THOU GOEST TO POSSESS IT.OM# 21 WHEN THOU SHALT VOW A VOW UNTO THE LORD THY GOD, THOU SHALT NOT SLACK TOVM PAY IT: FOR THE LORD THY GOD WILL SURELY REQUIRE IT OF THEE; AND IT WOULD BEH SIN IN THEE.OB# 22 BUT IF THOU SHALT FORBEAR TO VOW, IT SHALL BE NO SIN IN THEE.K# 23 THAT WHICH IS GONE OUT OF THY LIPS THOU SHALT KEEP AND PERFORM; EVEN APM FREEWILL OFFERING, ACCORDING AS THOU HAST VOWED UNTO THE LORD THY GOD, WHICH # THOU HAST PROMISED WITH THY MOUTH.TH# 24 WHEN THOU COMEST INTO THY NEIGHBOURS VINEYARD, THEN THOU MAYEST EATI GRAPES THY FILL AT THINE OWN PLEASURE; BUT THOU SHALT NOT PUT ANY IN THYT VESSEL.H# 25 WHEN THOU COMEST INTO THE STANDING CORN OF THY NEIGHBOUR, THEN THOUM MAYEST PLUCK THE EARS WITH THINE HAND; BUT THOU SHALT NOT MOVE A SICKLE UNTOE THY NEIGHBOURS STANDING CORN. = CHAPTER 24 UK# 1 WHEN A MAN HATH TAKEN A WIFE, AND MARRIED HER, AND IT COME TO PASS THATVJ SHE FIND NO FAVOUR IN HIS EYES, BECAUSE HE HATH FOUND SOME UNCLEANNESS INL HER: THEN LET HIM WRITE HER A BILL OF DIVORCEMENT, AND GIVE IT IN HER HAND, AND SEND HER OUT OF HIS HOUSE. M# 2 AND WHEN SHE IS DEPARTED OUT OF HIS HOUSE, SHE MAY GO AND BE ANOTHER MANSA WIFE.L# 3 AND IF THE LATTER HUSBAND HATE HER, AND WRITE HER A BILL OF DIVORCEMENT,N AND GIVETH IT IN HER HAND, AND SENDETH HER OUT OF HIS HOUSE; OR IF THE LATTER, HUSBAND DIE, WHICH TOOK HER TO BE HIS WIFE;M# 4 HER FORMER HUSBAND, WHICH SENT HER AWAY, MAY NOT TAKE HER AGAIN TO BE HISAN WIFE, AFTER THAT SHE IS DEFILED; FOR THAT IS ABOMINATION BEFORE THE LORD: ANDM THOU SHALT NOT CAUSE THE LAND TO SIN, WHICH THE LORD THY GOD GIVETH THEE FORI AN INHERITANCE.I# 5 WHEN A MAN HATH TAKEN A NEW WIFE, HE SHALL NOT GO OUT TO WAR, NEITHERUN SHALL HE BE CHARGED WITH ANY BUSINESS: BUT HE SHALL BE FREE AT HOME ONE YEAR,1 AND SHALL CHEER UP HIS WIFE WHICH HE HATH TAKEN.RI# 6 NO MAN SHALL TAKE THE NETHER OR THE UPPER MILLSTONE TO PLEDGE: FOR HEC TAKETH A MANS LIFE TO PLEDGE.M# 7 IF A MAN BE FOUND STEALING ANY OF HIS BRETHREN OF THE CHILDREN OF ISRAEL,EN AND MAKETH MERCHANDISE OF HIM, OR SELLETH HIM; THEN THAT THIEF SHALL DIE; AND) THOU SHALT PUT EVIL AWAY FROM AMONG YOU.HL# 8 TA00c8,k+<%X>%+%O-%TADATADATAKE HEED IN THE PLAGUE OF LEPROSY, THAT THOU OBSERVE DILIGENTLY, AND DON ACCORDING TO ALL THAT THE PRIESTS THE LEVITES SHALL TEACH YOU: AS I COMMANDED! THEM, SO YE SHALL OBSERVE TO DO.TL# 9 REMEMBER WHAT THE LORD THY GOD DID UNTO MIRIAM BY THE WAY, AFTER THAT YE WERE COME FORTH OUT OF EGYPT.J# 10 WHEN THOU DOST LEND THY BROTHER ANY THING, THOU SHALT NOT GO INTO HIS HOUSE TO FETCH HIS PLEDGE.DL# 11 THOU SHALT STAND ABROAD, AND THE MAN TO WHOM THOU DOST LEND SHALL BRING! OUT THE PLEDGE ABROAD UNTO THEE.HB# 12 AND IF THE MAN BE POOR, THOU SHALT NOT SLEEP WITH HIS PLEDGE:K# 13 IN ANY CASE THOU SHALT DELIVER HIM THE PLEDGE AGAIN WHEN THE SUN GOETHDL DOWN, THAT HE MAY SLEEP IN HIS OWN RAIMENT, AND BLESS THEE: AND IT SHALL BE1 RIGHTEOUSNESS UNTO THEE BEFORE THE LORD THY GOD.RL# 14 THOU SHALT NOT OPPRESS AN HIRED SERVANT THAT IS POOR AND NEEDY, WHETHERK HE BE OF THY BRETHREN, OR OF THY STRANGERS THAT ARE IN THY LAND WITHIN THYN GATES: K# 15 AT HIS DAY THOU SHALT GIVE HIM HIS HIRE, NEITHER SHALL THE SUN GO DOWNAL UPON IT; FOR HE IS POOR, AND SETTETH HIS HEART UPON IT: LEST HE CRY AGAINST- THEE UNTO THE LORD, AND IT BE SIN UNTO THEE.HJ# 16 THE FATHERS SHALL NOT BE PUT TO DEATH FOR THE CHILDREN, NEITHER SHALLN THE CHILDREN BE PUT TO DEATH FOR THE FATHERS: EVERY MAN SHALL BE PUT TO DEATH FOR HIS OWN SIN.HD# 17 THOU SHALT NOT PERVERT THE JUDGMENT OF THE STRANGER, NOR OF THE1 FATHERLESS; NOR TAKE A WIDOWS RAIMENT TO PLEDGE:NL# 18 BUT THOU SHALT REMEMBER THAT THOU WAST A BONDMAN IN EGYPT, AND THE LORDI THY GOD REDEEMED THEE THENCE: THEREFORE I COMMAND THEE TO DO THIS THING.EI# 19 WHEN THOU CUTTEST DOWN THINE HARVEST IN THY FIELD, AND HAST FORGOT AEM SHEAF IN THE FIELD, THOU SHALT NOT GO AGAIN TO FETCH IT: IT SHALL BE FOR THEPK STRANGER, FOR THE FATHERLESS, AND FOR THE WIDOW: THAT THE LORD THY GOD MAYN+ BLESS THEE IN ALL THE WORK OF THINE HANDS.OJ# 20 WHEN THOU BEATEST THINE OLIVE TREE, THOU SHALT NOT GO OVER THE BOUGHSL AGAIN: IT SHALL BE FOR THE STRANGER, FOR THE FATHERLESS, AND FOR THE WIDOW.L# 21 WHEN THOU GATHEREST THE GRAPES OF THY VINEYARD, THOU SHALT NOT GLEAN ITI AFTERWARD: IT SHALL BE FOR THE STRANGER, FOR THE FATHERLESS, AND FOR THEE WIDOW.IK# 22 AND THOU SHALT REMEMBER THAT THOU WAST A BONDMAN IN THE LAND OF EGYPT:N+ THEREFORE I COMMAND THEE TO DO THIS THING.H = CHAPTER 25 L# 1 IF THERE BE A CONTROVERSY BETWEEN MEN, AND THEY COME UNTO JUDGMENT, THATN THE JUDGES MAY JUDGE THEM; THEN THEY SHALL JUSTIFY THE RIGHTEOUS, AND CONDEMN THE WICKED.M# 2 AND IT SHALL BE, IF THE WICKED MAN BE WORTHY TO BE BEATEN, THAT THE JUDGEYL SHALL CAUSE HIM TO LIE DOWN, AND TO BE BEATEN BEFORE HIS FACE, ACCORDING TO HIS FAULT, BY A CERTAIN NUMBER.M# 3 FORTY STRIPES HE MAY GIVE HIM, AND NOT EXCEED: LEST, IF HE SHOULD EXCEED,EN AND BEAT HIM ABOVE THESE WITH MANY STRIPES, THEN THY BROTHER SHOULD SEEM VILE UNTO THEE.O?# 4 THOU SHALT NOT MUZZLE THE OX WHEN HE TREADETH OUT THE CORN. K# 5 IF BRETHREN DWELL TOGETHER, AND ONE OF THEM DIE, AND HAVE NO CHILD, THEEG WIFE OF THE DEAD SHALL NOT MARRY WITHOUT UNTO A STRANGER: HER HUSBANDSHK BROTHER SHALL GO IN UNTO HER, AND TAKE HER TO HIM TO WIFE, AND PERFORM THEO& DUTY OF AN HUSBANDS BROTHER UNTO HER.J# 6 AND IT SHALL BE, THAT THE FIRSTBORN WHICH SHE BEARETH SHALL SUCCEED ING THE NAME OF HIS BROTHER WHICH IS DEAD, THAT HIS NAME BE NOT PUT OUT OFU ISRAEL.L# 7 AND IF THE MAN LIKE NOT TO TAKE HIS BROTHERS WIFE, THEN LET HIS BROTHERSN WIFE GO UP TO THE GATE UNTO THE ELDERS, AND SAY, MY HUSBANDS BROTHER REFUSETHL TO RAISE UP UNTO HIS BROTHER A NAME IN ISRAEL, HE WILL NOT PERFORM THE DUTY OF MY HUSBANDS BROTHER.M# 8 THEN THE ELDERS OF HIS CITY SHALL CALL HIM, AND SPEAK UNTO HIM: AND IF HER. STAND TO IT, AND SAY, I LIKE NOT TO TAKE HER;M# 9 THEN SHALL HIS BROTHERS WIFE COME UNTO HIM IN THE PRESENCE OF THE ELDERS, M AND LOOSE HIS SHOE FROM OFF HIS FOOT, AND SPIT IN HIS FACE, AND SHALL ANSWER F AND SAY, SO SHALL IT BE DONE UNTO THAT MAN THAT WILL NOT BUILD UP HIS BROTHERS HOUSE.K# 10 AND HIS NAME SHALL BE CALLED IN ISRAEL, THE HOUSE OF HIM THAT H00c@,)D%5%T6%! !ATH HISL SHOE LOOSED.EG# 11 WHEN MEN STRIVE TOGETHER ONE WITH ANOTHER, AND THE WIFE OF THE ONE L DRAWETH NEAR FOR TO DELIVER HER HUSBAND OUT OF THE HAND OF HIM THAT SMITETH@ HIM, AND PUTTETH FORTH HER HAND, AND TAKETH HIM BY THE SECRETS:D# 12 THEN THOU SHALT CUT OFF HER HAND, THINE EYE SHALL NOT PITY HER.H# 13 THOU SHALT NOT HAVE IN THY BAG DIVERS WEIGHTS, A GREAT AND A SMALL.M# 14 THOU SHALT NOT HAVE IN THINE HOUSE DIVERS MEASURES, A GREAT AND A SMALL.LF# 15 BUT THOU SHALT HAVE A PERFECT AND JUST WEIGHT, A PERFECT AND JUSTK MEASURE SHALT THOU HAVE: THAT THY DAYS MAY BE LENGTHENED IN THE LAND WHICHA THE LORD THY GOD GIVETH THEE.G# 16 FOR ALL THAT DO SUCH THINGS, AND ALL THAT DO UNRIGHTEOUSLY, ARE AND# ABOMINATION UNTO THE LORD THY GOD.2K# 17 REMEMBER WHAT AMALEK DID UNTO THEE BY THE WAY, WHEN YE WERE COME FORTHH OUT OF EGYPT;I# 18 HOW HE MET THEE BY THE WAY, AND SMOTE THE HINDMOST OF THEE, EVEN ALLHL THAT WERE FEEBLE BEHIND THEE, WHEN THOU WAST FAINT AND WEARY; AND HE FEARED NOT GOD.JK# 19 THEREFORE IT SHALL BE, WHEN THE LORD THY GOD HATH GIVEN THEE REST FROMEN ALL THINE ENEMIES ROUND ABOUT, IN THE LAND WHICH THE LORD THY GOD GIVETH THEEN FOR AN INHERITANCE TO POSSESS IT, THAT THOU SHALT BLOT OUT THE REMEMBRANCE OF4 AMALEK FROM UNDER HEAVEN; THOU SHALT NOT FORGET IT. = CHAPTER 26 HK# 1 AND IT SHALL BE, WHEN THOU ART COME IN UNTO THE LAND WHICH THE LORD THYSM GOD GIVETH THEE FOR AN INHERITANCE, AND POSSESSEST IT, AND DWELLEST THEREIN;WJ# 2 THAT THOU SHALT TAKE OF THE FIRST OF ALL THE FRUIT OF THE EARTH, WHICHN THOU SHALT BRING OF THY LAND THAT THE LORD THY GOD GIVETH THEE, AND SHALT PUTI IT IN A BASKET, AND SHALT GO UNTO THE PLACE WHICH THE LORD THY GOD SHALLS CHOOSE TO PLACE HIS NAME THERE.J# 3 AND THOU SHALT GO UNTO THE PRIEST THAT SHALL BE IN THOSE DAYS, AND SAYL UNTO HIM, I PROFESS THIS DAY UNTO THE LORD THY GOD, THAT I AM COME UNTO THE> COUNTRY WHICH THE LORD SWARE UNTO OUR FATHERS FOR TO GIVE US.K# 4 AND THE PRIEST SHALL TAKE THE BASKET OUT OF THINE HAND, AND SET IT DOWNE& BEFORE THE ALTAR OF THE LORD THY GOD.K# 5 AND THOU SHALT SPEAK AND SAY BEFORE THE LORD THY GOD, A SYRIAN READY TOBN PERISH WAS MY FATHER, AND HE WENT DOWN INTO EGYPT, AND SOJOURNED THERE WITH A= FEW, AND BECAME THERE A NATION, GREAT, MIGHTY, AND POPULOUS:SK# 6 AND THE EGYPTIANS EVIL ENTREATED US, AND AFFLICTED US, AND LAID UPON USH HARD BONDAGE:J# 7 AND WHEN WE CRIED UNTO THE LORD GOD OF OUR FATHERS, THE LORD HEARD OURI VOICE, AND LOOKED ON OUR AFFLICTION, AND OUR LABOUR, AND OUR OPPRESSION:DK# 8 AND THE LORD BROUGHT US FORTH OUT OF EGYPT WITH A MIGHTY HAND, AND WITHYK AN OUTSTRETCHED ARM, AND WITH GREAT TERRIBLENESS, AND WITH SIGNS, AND WITHE WONDERS:OM# 9 AND HE HATH BROUGHT US INTO THIS PLACE, AND HATH GIVEN US THIS LAND, EVENH) A LAND THAT FLOWETH WITH MILK AND HONEY.VM# 10 AND NOW, BEHOLD, I HAVE BROUGHT THE FIRSTFRUITS OF THE LAND, WHICH THOU,HJ O LORD, HAST GIVEN ME. AND THOU SHALT SET IT BEFORE THE LORD THY GOD, AND! WORSHIP BEFORE THE LORD THY GOD: K# 11 AND THOU SHALT REJOICE IN EVERY GOOD THING WHICH THE LORD THY GOD HATHWN GIVEN UNTO THEE, AND UNTO THINE HOUSE, THOU, AND THE LEVITE, AND THE STRANGER THAT IS AMONG YOU.WK# 12 WHEN THOU HAST MADE AN END OF TITHING ALL THE TITHES OF THINE INCREASEUI THE THIRD YEAR, WHICH IS THE YEAR OF TITHING, AND HAST GIVEN IT UNTO THEWN LEVITE, THE STRANGER, THE FATHERLESS, AND THE WIDOW, THAT THEY MAY EAT WITHIN THY GATES, AND BE FILLED;I# 13 THEN THOU SHALT SAY BEFORE THE LORD THY GOD, I HAVE BROUGHT AWAY THE1M HALLOWED THINGS OUT OF MINE HOUSE, AND ALSO HAVE GIVEN THEM UNTO THE LEVITE,NM AND UNTO THE STRANGER, TO THE FATHERLESS, AND TO THE WIDOW, ACCORDING TO ALL K THY COMMANDMENTS WHICH THOU HAST COMMANDED ME: I HAVE NOT TRANSGRESSED THYT- COMMANDMENTS, NEITHER HAVE I FORGOTTEN THEM.EM# 14 I HAVE NOT EATEN THEREOF IN MY MOURNING, NEITHER HAVE I TAKEN AWAY OUGHTSN THEREOF FOR ANY UNCLEAN USE, NOR GIVEN OUGHT THEREOF FOR THE DEAD: BUT I HAVEJ HEARKENED TO THE VOICE OF THE LORD MY GOD, AND HAVE DONE ACCORDING TO ALL THAT THOU HAS00cH,k+<%X>%+%O-%TADATADATAT COMMANDED ME. J# 15 LOOK DOWN FROM THY HOLY HABITATION, FROM HEAVEN, AND BLESS THY PEOPLEH ISRAEL, AND THE LAND WHICH THOU HAST GIVEN US, AS THOU SWAREST UNTO OUR2 FATHERS, A LAND THAT FLOWETH WITH MILK AND HONEY.K# 16 THIS DAY THE LORD THY GOD HATH COMMANDED THEE TO DO THESE STATUTES ANDMK JUDGMENTS: THOU SHALT THEREFORE KEEP AND DO THEM WITH ALL THINE HEART, ANDO WITH ALL THY SOUL. K# 17 THOU HAST AVOUCHED THE LORD THIS DAY TO BE THY GOD, AND TO WALK IN HISEM WAYS, AND TO KEEP HIS STATUTES, AND HIS COMMANDMENTS, AND HIS JUDGMENTS, AND  TO HEARKEN UNTO HIS VOICE: K# 18 AND THE LORD HATH AVOUCHED THEE THIS DAY TO BE HIS PECULIAR PEOPLE, AS J HE HATH PROMISED THEE, AND THAT THOU SHOULDEST KEEP ALL HIS COMMANDMENTS;K# 19 AND TO MAKE THEE HIGH ABOVE ALL NATIONS WHICH HE HATH MADE, IN PRAISE,ML AND IN NAME, AND IN HONOUR; AND THAT THOU MAYEST BE AN HOLY PEOPLE UNTO THE! LORD THY GOD, AS HE HATH SPOKEN.C = CHAPTER 27 IN# 1 AND MOSES WITH THE ELDERS OF ISRAEL COMMANDED THE PEOPLE, SAYING, KEEP ALL/ THE COMMANDMENTS WHICH I COMMAND YOU THIS DAY.RK# 2 AND IT SHALL BE ON THE DAY WHEN YE SHALL PASS OVER JORDAN UNTO THE LAND N WHICH THE LORD THY GOD GIVETH THEE, THAT THOU SHALT SET THEE UP GREAT STONES,! AND PLAISTER THEM WITH PLAISTER:TK# 3 AND THOU SHALT WRITE UPON THEM ALL THE WORDS OF THIS LAW, WHEN THOU ART I PASSED OVER, THAT THOU MAYEST GO IN UNTO THE LAND WHICH THE LORD THY GODAM GIVETH THEE, A LAND THAT FLOWETH WITH MILK AND HONEY; AS THE LORD GOD OF THYM FATHERS HATH PROMISED THEE.K# 4 THEREFORE IT SHALL BE WHEN YE BE GONE OVER JORDAN, THAT YE SHALL SET UPNJ THESE STONES, WHICH I COMMAND YOU THIS DAY, IN MOUNT EBAL, AND THOU SHALT PLAISTER THEM WITH PLAISTER.TJ# 5 AND THERE SHALT THOU BUILD AN ALTAR UNTO THE LORD THY GOD, AN ALTAR OF8 STONES: THOU SHALT NOT LIFT UP ANY IRON TOOL UPON THEM.L# 6 THOU SHALT BUILD THE ALTAR OF THE LORD THY GOD OF WHOLE STONES: AND THOU; SHALT OFFER BURNT OFFERINGS THEREON UNTO THE LORD THY GOD:AJ# 7 AND THOU SHALT OFFER PEACE OFFERINGS, AND SHALT EAT THERE, AND REJOICE BEFORE THE LORD THY GOD.RG# 8 AND THOU SHALT WRITE UPON THE STONES ALL THE WORDS OF THIS LAW VERYI PLAINLY.LM# 9 AND MOSES AND THE PRIESTS THE LEVITES SPAKE UNTO ALL ISRAEL, SAYING, TAKEDM HEED, AND HEARKEN, O ISRAEL; THIS DAY THOU ART BECOME THE PEOPLE OF THE LORDN THY GOD. H# 10 THOU SHALT THEREFORE OBEY THE VOICE OF THE LORD THY GOD, AND DO HIS> COMMANDMENTS AND HIS STATUTES, WHICH I COMMAND THEE THIS DAY.7# 11 AND MOSES CHARGED THE PEOPLE THE SAME DAY, SAYING,NJ# 12 THESE SHALL STAND UPON MOUNT GERIZIM TO BLESS THE PEOPLE, WHEN YE AREM COME OVER JORDAN; SIMEON, AND LEVI, AND JUDAH, AND ISSACHAR, AND JOSEPH, ANDO BENJAMIN:L# 13 AND THESE SHALL STAND UPON MOUNT EBAL TO CURSE; REUBEN, GAD, AND ASHER, AND ZEBULUN, DAN, AND NAPHTALI.K# 14 AND THE LEVITES SHALL SPEAK, AND SAY UNTO ALL THE MEN OF ISRAEL WITH AE LOUD VOICE,M# 15 CURSED BE THE MAN THAT MAKETH ANY GRAVEN OR MOLTEN IMAGE, AN ABOMINATIONAK UNTO THE LORD, THE WORK OF THE HANDS OF THE CRAFTSMAN, AND PUTTETH IT IN AL= SECRET PLACE. AND ALL THE PEOPLE SHALL ANSWER AND SAY, AMEN.MM# 16 CURSED BE HE THAT SETTETH LIGHT BY HIS FATHER OR HIS MOTHER. AND ALL THEN PEOPLE SHALL SAY, AMEN.K# 17 CURSED BE HE THAT REMOVETH HIS NEIGHBOURS LANDMARK. AND ALL THE PEOPLE, SHALL SAY, AMEN.4M# 18 CURSED BE HE THAT MAKETH THE BLIND TO WANDER OUT OF THE WAY. AND ALL THE  PEOPLE SHALL SAY, AMEN.K# 19 CURSED BE HE THAT PERVERTETH THE JUDGMENT OF THE STRANGER, FATHERLESS, / AND WIDOW. AND ALL THE PEOPLE SHALL SAY, AMEN.TM# 20 CURSED BE HE THAT LIETH WITH HIS FATHERS WIFE; BECAUSE HE UNCOVERETH HIS63 FATHERS SKIRT. AND ALL THE PEOPLE SHALL SAY, AMEN. I# 21 CURSED BE HE THAT LIETH WITH ANY MANNER OF BEAST. AND ALL THE PEOPLEV SHALL SAY, AMEN.LL# 22 CURSED BE HE THAT LIETH WITH HIS SISTER, THE DAUGHTER OF HIS FATHER, OR@ THE DAUGHTER OF HIS MOTHER. AND ALL THE PEOPLE SHALL SAY, AMEN.M# 23 CURSED BE HE THAT LIETH WITH HIS MOTHER IN LAW. AND ALL THE PEOPLE SHALLH SAY, AMEN.DI# 24 CURSED BE HE THAT SMITETH HIS NEIGHBO00cP,)D%5%T6%! !UR SECRETLY. AND ALL THE PEOPLEW SHALL SAY, AMEN.EL# 25 CURSED BE HE THAT TAKETH REWARD TO SLAY AN INNOCENT PERSON. AND ALL THE PEOPLE SHALL SAY, AMEN.K# 26 CURSED BE HE THAT CONFIRMETH NOT ALL THE WORDS OF THIS LAW TO DO THEM. $ AND ALL THE PEOPLE SHALL SAY, AMEN. = CHAPTER 28 TN# 1 AND IT SHALL COME TO PASS, IF THOU SHALT HEARKEN DILIGENTLY UNTO THE VOICEG OF THE LORD THY GOD, TO OBSERVE AND TO DO ALL HIS COMMANDMENTS WHICH IPM COMMAND THEE THIS DAY, THAT THE LORD THY GOD WILL SET THEE ON HIGH ABOVE ALLL NATIONS OF THE EARTH:J# 2 AND ALL THESE BLESSINGS SHALL COME ON THEE, AND OVERTAKE THEE, IF THOU2 SHALT HEARKEN UNTO THE VOICE OF THE LORD THY GOD.G# 3 BLESSED SHALT THOU BE IN THE CITY, AND BLESSED SHALT THOU BE IN THE FIELD.TL# 4 BLESSED SHALL BE THE FRUIT OF THY BODY, AND THE FRUIT OF THY GROUND, ANDI THE FRUIT OF THY CATTLE, THE INCREASE OF THY KINE, AND THE FLOCKS OF THYR SHEEP. .# 5 BLESSED SHALL BE THY BASKET AND THY STORE.M# 6 BLESSED SHALT THOU BE WHEN THOU COMEST IN, AND BLESSED SHALT THOU BE WHENH THOU GOEST OUT.F# 7 THE LORD SHALL CAUSE THINE ENEMIES THAT RISE UP AGAINST THEE TO BEL SMITTEN BEFORE THY FACE: THEY SHALL COME OUT AGAINST THEE ONE WAY, AND FLEE BEFORE THEE SEVEN WAYS.L# 8 THE LORD SHALL COMMAND THE BLESSING UPON THEE IN THY STOREHOUSES, AND INK ALL THAT THOU SETTEST THINE HAND UNTO; AND HE SHALL BLESS THEE IN THE LANDE$ WHICH THE LORD THY GOD GIVETH THEE.I# 9 THE LORD SHALL ESTABLISH THEE AN HOLY PEOPLE UNTO HIMSELF, AS HE HATHNN SWORN UNTO THEE, IF THOU SHALT KEEP THE COMMANDMENTS OF THE LORD THY GOD, AND WALK IN HIS WAYS.K# 10 AND ALL PEOPLE OF THE EARTH SHALL SEE THAT THOU ART CALLED BY THE NAMEC/ OF THE LORD; AND THEY SHALL BE AFRAID OF THEE.HI# 11 AND THE LORD SHALL MAKE THEE PLENTEOUS IN GOODS, IN THE FRUIT OF THYOM BODY, AND IN THE FRUIT OF THY CATTLE, AND IN THE FRUIT OF THY GROUND, IN THEE9 LAND WHICH THE LORD SWARE UNTO THY FATHERS TO GIVE THEE.HL# 12 THE LORD SHALL OPEN UNTO THEE HIS GOOD TREASURE, THE HEAVEN TO GIVE THEK RAIN UNTO THY LAND IN HIS SEASON, AND TO BLESS ALL THE WORK OF THINE HAND: B AND THOU SHALT LEND UNTO MANY NATIONS, AND THOU SHALT NOT BORROW.L# 13 AND THE LORD SHALL MAKE THEE THE HEAD, AND NOT THE TAIL; AND THOU SHALTL BE ABOVE ONLY, AND THOU SHALT NOT BE BENEATH; IF THAT THOU HEARKEN UNTO THEL COMMANDMENTS OF THE LORD THY GOD, WHICH I COMMAND THEE THIS DAY, TO OBSERVE AND TO DO THEM:K# 14 AND THOU SHALT NOT GO ASIDE FROM ANY OF THE WORDS WHICH I COMMAND THEEGM THIS DAY, TO THE RIGHT HAND, OR TO THE LEFT, TO GO AFTER OTHER GODS TO SERVE  THEM.J# 15 BUT IT SHALL COME TO PASS, IF THOU WILT NOT HEARKEN UNTO THE VOICE OFI THE LORD THY GOD, TO OBSERVE TO DO ALL HIS COMMANDMENTS AND HIS STATUTES K WHICH I COMMAND THEE THIS DAY; THAT ALL THESE CURSES SHALL COME UPON THEE,T AND OVERTAKE THEE:M# 16 CURSED SHALT THOU BE IN THE CITY, AND CURSED SHALT THOU BE IN THE FIELD.A.# 17 CURSED SHALL BE THY BASKET AND THY STORE.J# 18 CURSED SHALL BE THE FRUIT OF THY BODY, AND THE FRUIT OF THY LAND, THE3 INCREASE OF THY KINE, AND THE FLOCKS OF THY SHEEP.EL# 19 CURSED SHALT THOU BE WHEN THOU COMEST IN, AND CURSED SHALT THOU BE WHEN THOU GOEST OUT.M# 20 THE LORD SHALL SEND UPON THEE CURSING, VEXATION, AND REBUKE, IN ALL THATEK THOU SETTEST THINE HAND UNTO FOR TO DO, UNTIL THOU BE DESTROYED, AND UNTILK THOU PERISH QUICKLY; BECAUSE OF THE WICKEDNESS OF THY DOINGS, WHEREBY THOUD HAST FORSAKEN ME.G# 21 THE LORD SHALL MAKE THE PESTILENCE CLEAVE UNTO THEE, UNTIL HE HAVEYC CONSUMED THEE FROM OFF THE LAND, WHITHER THOU GOEST TO POSSESS IT.KM# 22 THE LORD SHALL SMITE THEE WITH A CONSUMPTION, AND WITH A FEVER, AND WITHLK AN INFLAMMATION, AND WITH AN EXTREME BURNING, AND WITH THE SWORD, AND WITH I BLASTING, AND WITH MILDEW; AND THEY SHALL PURSUE THEE UNTIL THOU PERISH.,L# 23 AND THY HEAVEN THAT IS OVER THY HEAD SHALL BE BRASS, AND THE EARTH THAT IS UNDER THEE SHALL BE IRON.TJ# 24 THE LORD SHALL MAKE THE RAIN OF THY LAND POWDER AND DUST: FROM HEAVEN7 SHALL IT COME DOWN UPON THEE, UNTIL THOU BE DESTROYED. M# 25 THE L00cX,k+<%X>%+%O-%TADATADATAORD SHALL CAUSE THEE TO BE SMITTEN BEFORE THINE ENEMIES: THOU SHALTMK GO OUT ONE WAY AGAINST THEM, AND FLEE SEVEN WAYS BEFORE THEM: AND SHALT BEN, REMOVED INTO ALL THE KINGDOMS OF THE EARTH.J# 26 AND THY CARCASE SHALL BE MEAT UNTO ALL FOWLS OF THE AIR, AND UNTO THE6 BEASTS OF THE EARTH, AND NO MAN SHALL FRAY THEM AWAY.L# 27 THE LORD WILL SMITE THEE WITH THE BOTCH OF EGYPT, AND WITH THE EMERODS,H AND WITH THE SCAB, AND WITH THE ITCH, WHEREOF THOU CANST NOT BE HEALED.L# 28 THE LORD SHALL SMITE THEE WITH MADNESS, AND BLINDNESS, AND ASTONISHMENT OF HEART:K# 29 AND THOU SHALT GROPE AT NOONDAY, AS THE BLIND GROPETH IN DARKNESS, AND:I THOU SHALT NOT PROSPER IN THY WAYS: AND THOU SHALT BE ONLY OPPRESSED ANDC. SPOILED EVERMORE, AND NO MAN SHALL SAVE THEE.H# 30 THOU SHALT BETROTH A WIFE, AND ANOTHER MAN SHALL LIE WITH HER: THOUK SHALT BUILD AN HOUSE, AND THOU SHALT NOT DWELL THEREIN: THOU SHALT PLANT AD3 VINEYARD, AND SHALT NOT GATHER THE GRAPES THEREOF. F# 31 THINE OX SHALL BE SLAIN BEFORE THINE EYES, AND THOU SHALT NOT EATK THEREOF: THINE ASS SHALL BE VIOLENTLY TAKEN AWAY FROM BEFORE THY FACE, ANDEL SHALL NOT BE RESTORED TO THEE: THY SHEEP SHALL BE GIVEN UNTO THINE ENEMIES,) AND THOU SHALT HAVE NONE TO RESCUE THEM.EM# 32 THY SONS AND THY DAUGHTERS SHALL BE GIVEN UNTO ANOTHER PEOPLE, AND THINE L EYES SHALL LOOK, AND FAIL WITH LONGING FOR THEM ALL THE DAY LONG; AND THERE! SHALL BE NO MIGHT IN THINE HAND.YJ# 33 THE FRUIT OF THY LAND, AND ALL THY LABOURS, SHALL A NATION WHICH THOUH KNOWEST NOT EAT UP; AND THOU SHALT BE ONLY OPPRESSED AND CRUSHED ALWAY:K# 34 SO THAT THOU SHALT BE MAD FOR THE SIGHT OF THINE EYES WHICH THOU SHALTE SEE.HI# 35 THE LORD SHALL SMITE THEE IN THE KNEES, AND IN THE LEGS, WITH A SORE K BOTCH THAT CANNOT BE HEALED, FROM THE SOLE OF THY FOOT UNTO THE TOP OF THYN HEAD.L# 36 THE LORD SHALL BRING THEE, AND THY KING WHICH THOU SHALT SET OVER THEE,M UNTO A NATION WHICH NEITHER THOU NOR THY FATHERS HAVE KNOWN; AND THERE SHALTA' THOU SERVE OTHER GODS, WOOD AND STONE.TJ# 37 AND THOU SHALT BECOME AN ASTONISHMENT, A PROVERB, AND A BYWORD, AMONG. ALL NATIONS WHITHER THE LORD SHALL LEAD THEE.H# 38 THOU SHALT CARRY MUCH SEED OUT INTO THE FIELD, AND SHALT GATHER BUT, LITTLE IN; FOR THE LOCUST SHALL CONSUME IT.K# 39 THOU SHALT PLANT VINEYARDS, AND DRESS THEM, BUT SHALT NEITHER DRINK OFE? THE WINE, NOR GATHER THE GRAPES; FOR THE WORMS SHALL EAT THEM.EJ# 40 THOU SHALT HAVE OLIVE TREES THROUGHOUT ALL THY COASTS, BUT THOU SHALTG NOT ANOINT THYSELF WITH THE OIL; FOR THINE OLIVE SHALL CAST HIS FRUIT.OL# 41 THOU SHALT BEGET SONS AND DAUGHTERS, BUT THOU SHALT NOT ENJOY THEM; FOR THEY SHALL GO INTO CAPTIVITY.B# 42 ALL THY TREES AND FRUIT OF THY LAND SHALL THE LOCUST CONSUME.L# 43 THE STRANGER THAT IS WITHIN THEE SHALL GET UP ABOVE THEE VERY HIGH; AND THOU SHALT COME DOWN VERY LOW.IK# 44 HE SHALL LEND TO THEE, AND THOU SHALT NOT LEND TO HIM: HE SHALL BE THE0" HEAD, AND THOU SHALT BE THE TAIL.K# 45 MOREOVER ALL THESE CURSES SHALL COME UPON THEE, AND SHALL PURSUE THEE,NM AND OVERTAKE THEE, TILL THOU BE DESTROYED; BECAUSE THOU HEARKENEDST NOT UNTOHI THE VOICE OF THE LORD THY GOD, TO KEEP HIS COMMANDMENTS AND HIS STATUTEST WHICH HE COMMANDED THEE:SJ# 46 AND THEY SHALL BE UPON THEE FOR A SIGN AND FOR A WONDER, AND UPON THY SEED FOR EVER.HI# 47 BECAUSE THOU SERVEDST NOT THE LORD THY GOD WITH JOYFULNESS, AND WITH 4 GLADNESS OF HEART, FOR THE ABUNDANCE OF ALL THINGS;G# 48 THEREFORE SHALT THOU SERVE THINE ENEMIES WHICH THE LORD SHALL SENDNM AGAINST THEE, IN HUNGER, AND IN THIRST, AND IN NAKEDNESS, AND IN WANT OF ALLAE THINGS: AND HE SHALL PUT A YOKE OF IRON UPON THY NECK, UNTIL HE HAVE  DESTROYED THEE.M# 49 THE LORD SHALL BRING A NATION AGAINST THEE FROM FAR, FROM THE END OF THEFJ EARTH, AS SWIFT AS THE EAGLE FLIETH; A NATION WHOSE TONGUE THOU SHALT NOT UNDERSTAND;M# 50 A NATION OF FIERCE COUNTENANCE, WHICH SHALL NOT REGARD THE PERSON OF THEA# OLD, NOR SHEW FAVOUR TO THE YOUNG:AI# 51 AND HE SHALL EAT THE FRUIT OF THY CATTLE, AND THE FRUIT OF THY LAND,UL UNTIL THOU BE DESTR00c`,)D%5%T6%! !OYED: WHICH ALSO SHALL NOT LEAVE THEE EITHER CORN, WINE,K OR OIL, OR THE INCREASE OF THY KINE, OR FLOCKS OF THY SHEEP, UNTIL HE HAVET DESTROYED THEE.J# 52 AND HE SHALL BESIEGE THEE IN ALL THY GATES, UNTIL THY HIGH AND FENCEDI WALLS COME DOWN, WHEREIN THOU TRUSTEDST, THROUGHOUT ALL THY LAND: AND HEAL SHALL BESIEGE THEE IN ALL THY GATES THROUGHOUT ALL THY LAND, WHICH THE LORD THY GOD HATH GIVEN THEE.UJ# 53 AND THOU SHALT EAT THE FRUIT OF THINE OWN BODY, THE FLESH OF THY SONSL AND OF THY DAUGHTERS, WHICH THE LORD THY GOD HATH GIVEN THEE, IN THE SIEGE,D AND IN THE STRAITNESS, WHEREWITH THINE ENEMIES SHALL DISTRESS THEE:I# 54 SO THAT THE MAN THAT IS TENDER AMONG YOU, AND VERY DELICATE, HIS EYEAH SHALL BE EVIL TOWARD HIS BROTHER, AND TOWARD THE WIFE OF HIS BOSOM, AND9 TOWARD THE REMNANT OF HIS CHILDREN WHICH HE SHALL LEAVE:LI# 55 SO THAT HE WILL NOT GIVE TO ANY OF THEM OF THE FLESH OF HIS CHILDRENEM WHOM HE SHALL EAT: BECAUSE HE HATH NOTHING LEFT HIM IN THE SIEGE, AND IN THEJ STRAITNESS, WHEREWITH THINE ENEMIES SHALL DISTRESS THEE IN ALL THY GATES.J# 56 THE TENDER AND DELICATE WOMAN AMONG YOU, WHICH WOULD NOT ADVENTURE TON SET THE SOLE OF HER FOOT UPON THE GROUND FOR DELICATENESS AND TENDERNESS, HERK EYE SHALL BE EVIL TOWARD THE HUSBAND OF HER BOSOM, AND TOWARD HER SON, AND  TOWARD HER DAUGHTER, H# 57 AND TOWARD HER YOUNG ONE THAT COMETH OUT FROM BETWEEN HER FEET, ANDM TOWARD HER CHILDREN WHICH SHE SHALL BEAR: FOR SHE SHALL EAT THEM FOR WANT OFIM ALL THINGS SECRETLY IN THE SIEGE AND STRAITNESS, WHEREWITH THINE ENEMY SHALLH DISTRESS THEE IN THY GATES.F# 58 IF THOU WILT NOT OBSERVE TO DO ALL THE WORDS OF THIS LAW THAT AREL WRITTEN IN THIS BOOK, THAT THOU MAYEST FEAR THIS GLORIOUS AND FEARFUL NAME, THE LORD THY GOD;J# 59 THEN THE LORD WILL MAKE THY PLAGUES WONDERFUL, AND THE PLAGUES OF THYL SEED, EVEN GREAT PLAGUES, AND OF LONG CONTINUANCE, AND SORE SICKNESSES, AND OF LONG CONTINUANCE.IK# 60 MOREOVER HE WILL BRING UPON THEE ALL THE DISEASES OF EGYPT, WHICH THOUI1 WAST AFRAID OF; AND THEY SHALL CLEAVE UNTO THEE.HL# 61 ALSO EVERY SICKNESS, AND EVERY PLAGUE, WHICH IS NOT WRITTEN IN THE BOOKJ OF THIS LAW, THEM WILL THE LORD BRING UPON THEE, UNTIL THOU BE DESTROYED.H# 62 AND YE SHALL BE LEFT FEW IN NUMBER, WHEREAS YE WERE AS THE STARS OFK HEAVEN FOR MULTITUDE; BECAUSE THOU WOULDEST NOT OBEY THE VOICE OF THE LORDE THY GOD.OL# 63 AND IT SHALL COME TO PASS, THAT AS THE LORD REJOICED OVER YOU TO DO YOUM GOOD, AND TO MULTIPLY YOU; SO THE LORD WILL REJOICE OVER YOU TO DESTROY YOU,ON AND TO BRING YOU TO NOUGHT; AND YE SHALL BE PLUCKED FROM OFF THE LAND WHITHER THOU GOEST TO POSSESS IT.J# 64 AND THE LORD SHALL SCATTER THEE AMONG ALL PEOPLE, FROM THE ONE END OFL THE EARTH EVEN UNTO THE OTHER; AND THERE THOU SHALT SERVE OTHER GODS, WHICH> NEITHER THOU NOR THY FATHERS HAVE KNOWN, EVEN WOOD AND STONE.L# 65 AND AMONG THESE NATIONS SHALT THOU FIND NO EASE, NEITHER SHALL THE SOLEM OF THY FOOT HAVE REST: BUT THE LORD SHALL GIVE THEE THERE A TREMBLING HEART,I) AND FAILING OF EYES, AND SORROW OF MIND: J# 66 AND THY LIFE SHALL HANG IN DOUBT BEFORE THEE; AND THOU SHALT FEAR DAY6 AND NIGHT, AND SHALT HAVE NONE ASSURANCE OF THY LIFE:L# 67 IN THE MORNING THOU SHALT SAY, WOULD GOD IT WERE EVEN! AND AT EVEN THOUL SHALT SAY, WOULD GOD IT WERE MORNING! FOR THE FEAR OF THINE HEART WHEREWITHG THOU SHALT FEAR, AND FOR THE SIGHT OF THINE EYES WHICH THOU SHALT SEE.AJ# 68 AND THE LORD SHALL BRING THEE INTO EGYPT AGAIN WITH SHIPS, BY THE WAYI WHEREOF I SPAKE UNTO THEE, THOU SHALT SEE IT NO MORE AGAIN: AND THERE YEL SHALL BE SOLD UNTO YOUR ENEMIES FOR BONDMEN AND BONDWOMEN, AND NO MAN SHALL BUY YOU.N = CHAPTER 29 NJ# 1 THESE ARE THE WORDS OF THE COVENANT, WHICH THE LORD COMMANDED MOSES TOJ MAKE WITH THE CHILDREN OF ISRAEL IN THE LAND OF MOAB, BESIDE THE COVENANT" WHICH HE MADE WITH THEM IN HOREB.J# 2 AND MOSES CALLED UNTO ALL ISRAEL, AND SAID UNTO THEM, YE HAVE SEEN ALLJ THAT THE LORD DID BEFORE YOUR EYES IN THE LAND OF EGYPT UNTO PHARAOH, AND. UNTO ALL HIS SERVANTS, AND UNTO ALL HIS LAND;J# 3 TH00ch,ck,<%X>%+%O-%TADATADATAE GREAT TEMPTATIONS WHICH THINE EYES HAVE SEEN, THE SIGNS, AND THOSE GREAT MIRACLES:J# 4 YET THE LORD HATH NOT GIVEN YOU AN HEART TO PERCEIVE, AND EYES TO SEE,! AND EARS TO HEAR, UNTO THIS DAY.KJ# 5 AND I HAVE LED YOU FORTY YEARS IN THE WILDERNESS: YOUR CLOTHES ARE NOTA WAXEN OLD UPON YOU, AND THY SHOE IS NOT WAXEN OLD UPON THY FOOT.LM# 6 YE HAVE NOT EATEN BREAD, NEITHER HAVE YE DRUNK WINE OR STRONG DRINK: THATT+ YE MIGHT KNOW THAT I AM THE LORD YOUR GOD. K# 7 AND WHEN YE CAME UNTO THIS PLACE, SIHON THE KING OF HESHBON, AND OG THEYD KING OF BASHAN, CAME OUT AGAINST US UNTO BATTLE, AND WE SMOTE THEM:C# 8 AND WE TOOK THEIR LAND, AND GAVE IT FOR AN INHERITANCE UNTO THE C REUBENITES, AND TO THE GADITES, AND TO THE HALF TRIBE OF MANASSEH.IG# 9 KEEP THEREFORE THE WORDS OF THIS COVENANT, AND DO THEM, THAT YE MAYW PROSPER IN ALL THAT YE DO. L# 10 YE STAND THIS DAY ALL OF YOU BEFORE THE LORD YOUR GOD; YOUR CAPTAINS OFL YOUR TRIBES, YOUR ELDERS, AND YOUR OFFICERS, WITH ALL THE MEN OF ISRAEL, ITM# 11 YOUR LITTLE ONES, YOUR WIVES, AND THY STRANGER THAT IS IN THY CAMP, FROMS4 THE HEWER OF THY WOOD UNTO THE DRAWER OF THY WATER:L# 12 THAT THOU SHOULDEST ENTER INTO COVENANT WITH THE LORD THY GOD, AND INTO< HIS OATH, WHICH THE LORD THY GOD MAKETH WITH THEE THIS DAY:M# 13 THAT HE MAY ESTABLISH THEE TO DAY FOR A PEOPLE UNTO HIMSELF, AND THAT HEOM MAY BE UNTO THEE A GOD, AS HE HATH SAID UNTO THEE, AND AS HE HATH SWORN UNTOF1 THY FATHERS, TO ABRAHAM, TO ISAAC, AND TO JACOB.HA# 14 NEITHER WITH YOU ONLY DO I MAKE THIS COVENANT AND THIS OATH;TI# 15 BUT WITH HIM THAT STANDETH HERE WITH US THIS DAY BEFORE THE LORD OURW: GOD, AND ALSO WITH HIM THAT IS NOT HERE WITH US THIS DAY:I# 16 (FOR YE KNOW HOW WE HAVE DWELT IN THE LAND OF EGYPT; AND HOW WE CAMEH( THROUGH THE NATIONS WHICH YE PASSED BY;J# 17 AND YE HAVE SEEN THEIR ABOMINATIONS, AND THEIR IDOLS, WOOD AND STONE,) SILVER AND GOLD, WHICH WERE AMONG THEM:)HM# 18 LEST THERE SHOULD BE AMONG YOU MAN, OR WOMAN, OR FAMILY, OR TRIBE, WHOSEIL HEART TURNETH AWAY THIS DAY FROM THE LORD OUR GOD, TO GO AND SERVE THE GODSN OF THESE NATIONS; LEST THERE SHOULD BE AMONG YOU A ROOT THAT BEARETH GALL AND WORMWOOD;J# 19 AND IT COME TO PASS, WHEN HE HEARETH THE WORDS OF THIS CURSE, THAT HEM BLESS HIMSELF IN HIS HEART, SAYING, I SHALL HAVE PEACE, THOUGH I WALK IN THE 9 IMAGINATION OF MINE HEART, TO ADD DRUNKENNESS TO THIRST:NH# 20 THE LORD WILL NOT SPARE HIM, BUT THEN THE ANGER OF THE LORD AND HISN JEALOUSY SHALL SMOKE AGAINST THAT MAN, AND ALL THE CURSES THAT ARE WRITTEN INN THIS BOOK SHALL LIE UPON HIM, AND THE LORD SHALL BLOT OUT HIS NAME FROM UNDER HEAVEN.G# 21 AND THE LORD SHALL SEPARATE HIM UNTO EVIL OUT OF ALL THE TRIBES OF M ISRAEL, ACCORDING TO ALL THE CURSES OF THE COVENANT THAT ARE WRITTEN IN THISE BOOK OF THE LAW:LM# 22 SO THAT THE GENERATION TO COME OF YOUR CHILDREN THAT SHALL RISE UP AFTEREL YOU, AND THE STRANGER THAT SHALL COME FROM A FAR LAND, SHALL SAY, WHEN THEYJ SEE THE PLAGUES OF THAT LAND, AND THE SICKNESSES WHICH THE LORD HATH LAID UPON IT; I# 23 AND THAT THE WHOLE LAND THEREOF IS BRIMSTONE, AND SALT, AND BURNING,MJ THAT IT IS NOT SOWN, NOR BEARETH, NOR ANY GRASS GROWETH THEREIN, LIKE THEN OVERTHROW OF SODOM, AND GOMORRAH, ADMAH, AND ZEBOIM, WHICH THE LORD OVERTHREW IN HIS ANGER, AND IN HIS WRATH:L# 24 EVEN ALL NATIONS SHALL SAY, WHEREFORE HATH THE LORD DONE THUS UNTO THIS1 LAND? WHAT MEANETH THE HEAT OF THIS GREAT ANGER?AL# 25 THEN MEN SHALL SAY, BECAUSE THEY HAVE FORSAKEN THE COVENANT OF THE LORDM GOD OF THEIR FATHERS, WHICH HE MADE WITH THEM WHEN HE BROUGHT THEM FORTH OUT  OF THE LAND OF EGYPT:M# 26 FOR THEY WENT AND SERVED OTHER GODS, AND WORSHIPPED THEM, GODS WHOM THEYI/ KNEW NOT, AND WHOM HE HAD NOT GIVEN UNTO THEM: K# 27 AND THE ANGER OF THE LORD WAS KINDLED AGAINST THIS LAND, TO BRING UPONE1 IT ALL THE CURSES THAT ARE WRITTEN IN THIS BOOK:DK# 28 AND THE LORD ROOTED THEM OUT OF THEIR LAND IN ANGER, AND IN WRATH, ANDTJ IN GREAT INDIGNATION, AND CAST THEM INTO ANOTHER LAND, AS IT IS THIS DAY.K# 29 THE SECRET THINGS BELON00cp,)D%5%T6%! !G UNTO THE LORD OUR GOD: BUT THOSE THINGS WHICHOM ARE REVEALED BELONG UNTO US AND TO OUR CHILDREN FOR EVER, THAT WE MAY DO ALLT THE WORDS OF THIS LAW.E = CHAPTER 30 L# 1 AND IT SHALL COME TO PASS, WHEN ALL THESE THINGS ARE COME UPON THEE, THEJ BLESSING AND THE CURSE, WHICH I HAVE SET BEFORE THEE, AND THOU SHALT CALLI THEM TO MIND AMONG ALL THE NATIONS, WHITHER THE LORD THY GOD HATH DRIVENH THEE,D# 2 AND SHALT RETURN UNTO THE LORD THY GOD, AND SHALT OBEY HIS VOICEK ACCORDING TO ALL THAT I COMMAND THEE THIS DAY, THOU AND THY CHILDREN, WITHH( ALL THINE HEART, AND WITH ALL THY SOUL;K# 3 THAT THEN THE LORD THY GOD WILL TURN THY CAPTIVITY, AND HAVE COMPASSIONEM UPON THEE, AND WILL RETURN AND GATHER THEE FROM ALL THE NATIONS, WHITHER THE," LORD THY GOD HATH SCATTERED THEE.H# 4 IF ANY OF THINE BE DRIVEN OUT UNTO THE OUTMOST PARTS OF HEAVEN, FROMN THENCE WILL THE LORD THY GOD GATHER THEE, AND FROM THENCE WILL HE FETCH THEE:H# 5 AND THE LORD THY GOD WILL BRING THEE INTO THE LAND WHICH THY FATHERSM POSSESSED, AND THOU SHALT POSSESS IT; AND HE WILL DO THEE GOOD, AND MULTIPLYL THEE ABOVE THY FATHERS.J# 6 AND THE LORD THY GOD WILL CIRCUMCISE THINE HEART, AND THE HEART OF THYL SEED, TO LOVE THE LORD THY GOD WITH ALL THINE HEART, AND WITH ALL THY SOUL, THAT THOU MAYEST LIVE.M# 7 AND THE LORD THY GOD WILL PUT ALL THESE CURSES UPON THINE ENEMIES, AND ONC, THEM THAT HATE THEE, WHICH PERSECUTED THEE.H# 8 AND THOU SHALT RETURN AND OBEY THE VOICE OF THE LORD, AND DO ALL HIS, COMMANDMENTS WHICH I COMMAND THEE THIS DAY.H# 9 AND THE LORD THY GOD WILL MAKE THEE PLENTEOUS IN EVERY WORK OF THINEK HAND, IN THE FRUIT OF THY BODY, AND IN THE FRUIT OF THY CATTLE, AND IN THEEK FRUIT OF THY LAND, FOR GOOD: FOR THE LORD WILL AGAIN REJOICE OVER THEE FORL' GOOD, AS HE REJOICED OVER THY FATHERS: J# 10 IF THOU SHALT HEARKEN UNTO THE VOICE OF THE LORD THY GOD, TO KEEP HISM COMMANDMENTS AND HIS STATUTES WHICH ARE WRITTEN IN THIS BOOK OF THE LAW, ANDYJ IF THOU TURN UNTO THE LORD THY GOD WITH ALL THINE HEART, AND WITH ALL THY SOUL.I# 11 FOR THIS COMMANDMENT WHICH I COMMAND THEE THIS DAY, IT IS NOT HIDDEN" FROM THEE, NEITHER IS IT FAR OFF.L# 12 IT IS NOT IN HEAVEN, THAT THOU SHOULDEST SAY, WHO SHALL GO UP FOR US TO> HEAVEN, AND BRING IT UNTO US, THAT WE MAY HEAR IT, AND DO IT?M# 13 NEITHER IS IT BEYOND THE SEA, THAT THOU SHOULDEST SAY, WHO SHALL GO OVEROF THE SEA FOR US, AND BRING IT UNTO US, THAT WE MAY HEAR IT, AND DO IT?I# 14 BUT THE WORD IS VERY NIGH UNTO THEE, IN THY MOUTH, AND IN THY HEART,H THAT THOU MAYEST DO IT.L# 15 SEE, I HAVE SET BEFORE THEE THIS DAY LIFE AND GOOD, AND DEATH AND EVIL;M# 16 IN THAT I COMMAND THEE THIS DAY TO LOVE THE LORD THY GOD, TO WALK IN HISUL WAYS, AND TO KEEP HIS COMMANDMENTS AND HIS STATUTES AND HIS JUDGMENTS, THATL THOU MAYEST LIVE AND MULTIPLY: AND THE LORD THY GOD SHALL BLESS THEE IN THE' LAND WHITHER THOU GOEST TO POSSESS IT.,K# 17 BUT IF THINE HEART TURN AWAY, SO THAT THOU WILT NOT HEAR, BUT SHALT BEV4 DRAWN AWAY, AND WORSHIP OTHER GODS, AND SERVE THEM;K# 18 I DENOUNCE UNTO YOU THIS DAY, THAT YE SHALL SURELY PERISH, AND THAT YEGL SHALL NOT PROLONG YOUR DAYS UPON THE LAND, WHITHER THOU PASSEST OVER JORDAN TO GO TO POSSESS IT.IL# 19 I CALL HEAVEN AND EARTH TO RECORD THIS DAY AGAINST YOU, THAT I HAVE SETM BEFORE YOU LIFE AND DEATH, BLESSING AND CURSING: THEREFORE CHOOSE LIFE, THATE! BOTH THOU AND THY SEED MAY LIVE:SJ# 20 THAT THOU MAYEST LOVE THE LORD THY GOD, AND THAT THOU MAYEST OBEY HISI VOICE, AND THAT THOU MAYEST CLEAVE UNTO HIM: FOR HE IS THY LIFE, AND THEUL LENGTH OF THY DAYS: THAT THOU MAYEST DWELL IN THE LAND WHICH THE LORD SWARED UNTO THY FATHERS, TO ABRAHAM, TO ISAAC, AND TO JACOB, TO GIVE THEM. = CHAPTER 31 T9# 1 AND MOSES WENT AND SPAKE THESE WORDS UNTO ALL ISRAEL. K# 2 AND HE SAID UNTO THEM, I AM AN HUNDRED AND TWENTY YEARS OLD THIS DAY; IFL CAN NO MORE GO OUT AND COME IN: ALSO THE LORD HATH SAID UNTO ME, THOU SHALT NOT GO OVER THIS JORDAN.AL# 3 THE LORD THY GOD, HE WILL GO OVER BEFORE THEE, AND HE WILL DESTROY THESEL NATIONS FROM BEFORE T00cx,k,<%X>%+%O-%TADATADATAHEE, AND THOU SHALT POSSESS THEM: AND JOSHUA, HE SHALL, GO OVER BEFORE THEE, AS THE LORD HATH SAID.J# 4 AND THE LORD SHALL DO UNTO THEM AS HE DID TO SIHON AND TO OG, KINGS OF< THE AMORITES, AND UNTO THE LAND OF THEM, WHOM HE DESTROYED.I# 5 AND THE LORD SHALL GIVE THEM UP BEFORE YOUR FACE, THAT YE MAY DO UNTO E THEM ACCORDING UNTO ALL THE COMMANDMENTS WHICH I HAVE COMMANDED YOU.NM# 6 BE STRONG AND OF A GOOD COURAGE, FEAR NOT, NOR BE AFRAID OF THEM: FOR THEDJ LORD THY GOD, HE IT IS THAT DOTH GO WITH THEE; HE WILL NOT FAIL THEE, NOR FORSAKE THEE.G# 7 AND MOSES CALLED UNTO JOSHUA, AND SAID UNTO HIM IN THE SIGHT OF ALLSK ISRAEL, BE STRONG AND OF A GOOD COURAGE: FOR THOU MUST GO WITH THIS PEOPLEUM UNTO THE LAND WHICH THE LORD HATH SWORN UNTO THEIR FATHERS TO GIVE THEM; ANDE% THOU SHALT CAUSE THEM TO INHERIT IT.TM# 8 AND THE LORD, HE IT IS THAT DOTH GO BEFORE THEE; HE WILL BE WITH THEE, HERI WILL NOT FAIL THEE, NEITHER FORSAKE THEE: FEAR NOT, NEITHER BE DISMAYED. K# 9 AND MOSES WROTE THIS LAW, AND DELIVERED IT UNTO THE PRIESTS THE SONS OFEN LEVI, WHICH BARE THE ARK OF THE COVENANT OF THE LORD, AND UNTO ALL THE ELDERS OF ISRAEL. J# 10 AND MOSES COMMANDED THEM, SAYING, AT THE END OF EVERY SEVEN YEARS, INC THE SOLEMNITY OF THE YEAR OF RELEASE, IN THE FEAST OF TABERNACLES,K# 11 WHEN ALL ISRAEL IS COME TO APPEAR BEFORE THE LORD THY GOD IN THE PLACEGK WHICH HE SHALL CHOOSE, THOU SHALT READ THIS LAW BEFORE ALL ISRAEL IN THEIRE HEARING. E# 12 GATHER THE PEOPLE TOGETHER, MEN AND WOMEN, AND CHILDREN, AND THY I STRANGER THAT IS WITHIN THY GATES, THAT THEY MAY HEAR, AND THAT THEY MAY K LEARN, AND FEAR THE LORD YOUR GOD, AND OBSERVE TO DO ALL THE WORDS OF THIST LAW:YK# 13 AND THAT THEIR CHILDREN, WHICH HAVE NOT KNOWN ANY THING, MAY HEAR, ANDSN LEARN TO FEAR THE LORD YOUR GOD, AS LONG AS YE LIVE IN THE LAND WHITHER YE GO OVER JORDAN TO POSSESS IT.GK# 14 AND THE LORD SAID UNTO MOSES, BEHOLD, THY DAYS APPROACH THAT THOU MUSTEB DIE: CALL JOSHUA, AND PRESENT YOURSELVES IN THE TABERNACLE OF THEK CONGREGATION, THAT I MAY GIVE HIM A CHARGE. AND MOSES AND JOSHUA WENT, AND < PRESENTED THEMSELVES IN THE TABERNACLE OF THE CONGREGATION.L# 15 AND THE LORD APPEARED IN THE TABERNACLE IN A PILLAR OF A CLOUD: AND THE; PILLAR OF THE CLOUD STOOD OVER THE DOOR OF THE TABERNACLE.RM# 16 AND THE LORD SAID UNTO MOSES, BEHOLD, THOU SHALT SLEEP WITH THY FATHERS;SE AND THIS PEOPLE WILL RISE UP, AND GO A WHORING AFTER THE GODS OF THEAN STRANGERS OF THE LAND, WHITHER THEY GO TO BE AMONG THEM, AND WILL FORSAKE ME,3 AND BREAK MY COVENANT WHICH I HAVE MADE WITH THEM.SH# 17 THEN MY ANGER SHALL BE KINDLED AGAINST THEM IN THAT DAY, AND I WILLM FORSAKE THEM, AND I WILL HIDE MY FACE FROM THEM, AND THEY SHALL BE DEVOURED,UM AND MANY EVILS AND TROUBLES SHALL BEFALL THEM; SO THAT THEY WILL SAY IN THATAH DAY, ARE NOT THESE EVILS COME UPON US, BECAUSE OUR GOD IS NOT AMONG US?L# 18 AND I WILL SURELY HIDE MY FACE IN THAT DAY FOR ALL THE EVILS WHICH THEY= SHALL HAVE WROUGHT, IN THAT THEY ARE TURNED UNTO OTHER GODS.RK# 19 NOW THEREFORE WRITE YE THIS SONG FOR YOU, AND TEACH IT THE CHILDREN OFAG ISRAEL: PUT IT IN THEIR MOUTHS, THAT THIS SONG MAY BE A WITNESS FOR ME, AGAINST THE CHILDREN OF ISRAEL.H# 20 FOR WHEN I SHALL HAVE BROUGHT THEM INTO THE LAND WHICH I SWARE UNTOK THEIR FATHERS, THAT FLOWETH WITH MILK AND HONEY; AND THEY SHALL HAVE EATEN K AND FILLED THEMSELVES, AND WAXEN FAT; THEN WILL THEY TURN UNTO OTHER GODS, 7 AND SERVE THEM, AND PROVOKE ME, AND BREAK MY COVENANT. I# 21 AND IT SHALL COME TO PASS, WHEN MANY EVILS AND TROUBLES ARE BEFALLENNK THEM, THAT THIS SONG SHALL TESTIFY AGAINST THEM AS A WITNESS; FOR IT SHALLAC NOT BE FORGOTTEN OUT OF THE MOUTHS OF THEIR SEED: FOR I KNOW THEIR.K IMAGINATION WHICH THEY GO ABOUT, EVEN NOW, BEFORE I HAVE BROUGHT THEM INTOT THE LAND WHICH I SWARE.M# 22 MOSES THEREFORE WROTE THIS SONG THE SAME DAY, AND TAUGHT IT THE CHILDRENA OF ISRAEL. M# 23 AND HE GAVE JOSHUA THE SON OF NUN A CHARGE, AND SAID, BE STRONG AND OF A N GOOD COURAGE: FOR THOU SHALT BRING THE CHILDREN OF ISRAEL INT00c,)D%5%T6%! !O THE LAND WHICH, I SWARE UNTO THEM: AND I WILL BE WITH THEE.L# 24 AND IT CAME TO PASS, WHEN MOSES HAD MADE AN END OF WRITING THE WORDS OF. THIS LAW IN A BOOK, UNTIL THEY WERE FINISHED,L# 25 THAT MOSES COMMANDED THE LEVITES, WHICH BARE THE ARK OF THE COVENANT OF THE LORD, SAYING,H# 26 TAKE THIS BOOK OF THE LAW, AND PUT IT IN THE SIDE OF THE ARK OF THEJ COVENANT OF THE LORD YOUR GOD, THAT IT MAY BE THERE FOR A WITNESS AGAINST THEE.I# 27 FOR I KNOW THY REBELLION, AND THY STIFF NECK: BEHOLD, WHILE I AM YETAK ALIVE WITH YOU THIS DAY, YE HAVE BEEN REBELLIOUS AGAINST THE LORD; AND HOWA MUCH MORE AFTER MY DEATH?L# 28 GATHER UNTO ME ALL THE ELDERS OF YOUR TRIBES, AND YOUR OFFICERS, THAT II MAY SPEAK THESE WORDS IN THEIR EARS, AND CALL HEAVEN AND EARTH TO RECORD AGAINST THEM.K# 29 FOR I KNOW THAT AFTER MY DEATH YE WILL UTTERLY CORRUPT YOURSELVES, ANDM TURN ASIDE FROM THE WAY WHICH I HAVE COMMANDED YOU; AND EVIL WILL BEFALL YOUEI IN THE LATTER DAYS; BECAUSE YE WILL DO EVIL IN THE SIGHT OF THE LORD, TOE5 PROVOKE HIM TO ANGER THROUGH THE WORK OF YOUR HANDS.GL# 30 AND MOSES SPAKE IN THE EARS OF ALL THE CONGREGATION OF ISRAEL THE WORDS% OF THIS SONG, UNTIL THEY WERE ENDED.I = CHAPTER 32 MM# 1 GIVE EAR, O YE HEAVENS, AND I WILL SPEAK; AND HEAR, O EARTH, THE WORDS OFN MY MOUTH.M# 2 MY DOCTRINE SHALL DROP AS THE RAIN, MY SPEECH SHALL DISTIL AS THE DEW, ASRH THE SMALL RAIN UPON THE TENDER HERB, AND AS THE SHOWERS UPON THE GRASS:J# 3 BECAUSE I WILL PUBLISH THE NAME OF THE LORD: ASCRIBE YE GREATNESS UNTO OUR GOD.HM# 4 HE IS THE ROCK, HIS WORK IS PERFECT: FOR ALL HIS WAYS ARE JUDGMENT: A GODO5 OF TRUTH AND WITHOUT INIQUITY, JUST AND RIGHT IS HE.NE# 5 THEY HAVE CORRUPTED THEMSELVES, THEIR SPOT IS NOT THE SPOT OF HIS 6 CHILDREN: THEY ARE A PERVERSE AND CROOKED GENERATION.K# 6 DO YE THUS REQUITE THE LORD, O FOOLISH PEOPLE AND UNWISE? IS NOT HE THY K FATHER THAT HATH BOUGHT THEE? HATH HE NOT MADE THEE, AND ESTABLISHED THEE?RM# 7 REMEMBER THE DAYS OF OLD, CONSIDER THE YEARS OF MANY GENERATIONS: ASK THYOD FATHER, AND HE WILL SHEW THEE; THY ELDERS, AND THEY WILL TELL THEE.H# 8 WHEN THE MOST HIGH DIVIDED TO THE NATIONS THEIR INHERITANCE, WHEN HEM SEPARATED THE SONS OF ADAM, HE SET THE BOUNDS OF THE PEOPLE ACCORDING TO THEC" NUMBER OF THE CHILDREN OF ISRAEL.M# 9 FOR THE LORDS PORTION IS HIS PEOPLE; JACOB IS THE LOT OF HIS INHERITANCE. K# 10 HE FOUND HIM IN A DESERT LAND, AND IN THE WASTE HOWLING WILDERNESS; HEAG LED HIM ABOUT, HE INSTRUCTED HIM, HE KEPT HIM AS THE APPLE OF HIS EYE.GK# 11 AS AN EAGLE STIRRETH UP HER NEST, FLUTTERETH OVER HER YOUNG, SPREADETHL: ABROAD HER WINGS, TAKETH THEM, BEARETH THEM ON HER WINGS:K# 12 SO THE LORD ALONE DID LEAD HIM, AND THERE WAS NO STRANGE GOD WITH HIM. L# 13 HE MADE HIM RIDE ON THE HIGH PLACES OF THE EARTH, THAT HE MIGHT EAT THEK INCREASE OF THE FIELDS; AND HE MADE HIM TO SUCK HONEY OUT OF THE ROCK, ANDO OIL OUT OF THE FLINTY ROCK;J# 14 BUTTER OF KINE, AND MILK OF SHEEP, WITH FAT OF LAMBS, AND RAMS OF THEM BREED OF BASHAN, AND GOATS, WITH THE FAT OF KIDNEYS OF WHEAT; AND THOU DIDSTT# DRINK THE PURE BLOOD OF THE GRAPE.RK# 15 BUT JESHURUN WAXED FAT, AND KICKED: THOU ART WAXEN FAT, THOU ART GROWNEN THICK, THOU ART COVERED WITH FATNESS; THEN HE FORSOOK GOD WHICH MADE HIM, AND, LIGHTLY ESTEEMED THE ROCK OF HIS SALVATION.G# 16 THEY PROVOKED HIM TO JEALOUSY WITH STRANGE GODS, WITH ABOMINATIONS  PROVOKED THEY HIM TO ANGER.L# 17 THEY SACRIFICED UNTO DEVILS, NOT TO GOD; TO GODS WHOM THEY KNEW NOT, TO; NEW GODS THAT CAME NEWLY UP, WHOM YOUR FATHERS FEARED NOT.SK# 18 OF THE ROCK THAT BEGAT THEE THOU ART UNMINDFUL, AND HAST FORGOTTEN GODS THAT FORMED THEE.L# 19 AND WHEN THE LORD SAW IT, HE ABHORRED THEM, BECAUSE OF THE PROVOKING OF HIS SONS, AND OF HIS DAUGHTERS.J# 20 AND HE SAID, I WILL HIDE MY FACE FROM THEM, I WILL SEE WHAT THEIR ENDI SHALL BE: FOR THEY ARE A VERY FROWARD GENERATION, CHILDREN IN WHOM IS NOM FAITH..I# 21 THEY HAVE MOVED ME TO JEALOUSY WITH THAT WHICH IS NOT GOD; THEY HAVE K PROVOKED ME TO ANGER WITH THEIR VANITIES: AND I WILL MO00c,k,<%X>%+%O-%TADATADATAVE THEM TO JEALOUSY G WITH THOSE WHICH ARE NOT A PEOPLE; I WILL PROVOKE THEM TO ANGER WITH AO FOOLISH NATION.H# 22 FOR A FIRE IS KINDLED IN MINE ANGER, AND SHALL BURN UNTO THE LOWESTI HELL, AND SHALL CONSUME THE EARTH WITH HER INCREASE, AND SET ON FIRE THET FOUNDATIONS OF THE MOUNTAINS.I# 23 I WILL HEAP MISCHIEFS UPON THEM; I WILL SPEND MINE ARROWS UPON THEM.I# 24 THEY SHALL BE BURNT WITH HUNGER, AND DEVOURED WITH BURNING HEAT, ANDHN WITH BITTER DESTRUCTION: I WILL ALSO SEND THE TEETH OF BEASTS UPON THEM, WITH$ THE POISON OF SERPENTS OF THE DUST.K# 25 THE SWORD WITHOUT, AND TERROR WITHIN, SHALL DESTROY BOTH THE YOUNG MAN > AND THE VIRGIN, THE SUCKLING ALSO WITH THE MAN OF GRAY HAIRS.L# 26 I SAID, I WOULD SCATTER THEM INTO CORNERS, I WOULD MAKE THE REMEMBRANCE! OF THEM TO CEASE FROM AMONG MEN: M# 27 WERE IT NOT THAT I FEARED THE WRATH OF THE ENEMY, LEST THEIR ADVERSARIES J SHOULD BEHAVE THEMSELVES STRANGELY, AND LEST THEY SHOULD SAY, OUR HAND IS+ HIGH, AND THE LORD HATH NOT DONE ALL THIS.S@# 28 FOR THEY ARE A NATION VOID OF COUNSEL, NEITHER IS THERE ANY UNDERSTANDING IN THEM.WF# 29 O THAT THEY WERE WISE, THAT THEY UNDERSTOOD THIS, THAT THEY WOULD CONSIDER THEIR LATTER END!RI# 30 HOW SHOULD ONE CHASE A THOUSAND, AND TWO PUT TEN THOUSAND TO FLIGHT,R@ EXCEPT THEIR ROCK HAD SOLD THEM, AND THE LORD HAD SHUT THEM UP?I# 31 FOR THEIR ROCK IS NOT AS OUR ROCK, EVEN OUR ENEMIES THEMSELVES BEINGS JUDGES.K# 32 FOR THEIR VINE IS OF THE VINE OF SODOM, AND OF THE FIELDS OF GOMORRAH:N< THEIR GRAPES ARE GRAPES OF GALL, THEIR CLUSTERS ARE BITTER:F# 33 THEIR WINE IS THE POISON OF DRAGONS, AND THE CRUEL VENOM OF ASPS.L# 34 IS NOT THIS LAID UP IN STORE WITH ME, AND SEALED UP AMONG MY TREASURES?L# 35 TO ME BELONGETH VENGEANCE AND RECOMPENCE; THEIR FOOT SHALL SLIDE IN DUEJ TIME: FOR THE DAY OF THEIR CALAMITY IS AT HAND, AND THE THINGS THAT SHALL COME UPON THEM MAKE HASTE.OD# 36 FOR THE LORD SHALL JUDGE HIS PEOPLE, AND REPENT HIMSELF FOR HISM SERVANTS, WHEN HE SEETH THAT THEIR POWER IS GONE, AND THERE IS NONE SHUT UP,L OR LEFT.SM# 37 AND HE SHALL SAY, WHERE ARE THEIR GODS, THEIR ROCK IN WHOM THEY TRUSTED, K# 38 WHICH DID EAT THE FAT OF THEIR SACRIFICES, AND DRANK THE WINE OF THEIRRH DRINK OFFERINGS? LET THEM RISE UP AND HELP YOU, AND BE YOUR PROTECTION.L# 39 SEE NOW THAT I, EVEN I, AM HE, AND THERE IS NO GOD WITH ME: I KILL, ANDM I MAKE ALIVE; I WOUND, AND I HEAL: NEITHER IS THERE ANY THAT CAN DELIVER OUTP OF MY HAND.?# 40 FOR I LIFT UP MY HAND TO HEAVEN, AND SAY, I LIVE FOR EVER.NJ# 41 IF I WHET MY GLITTERING SWORD, AND MINE HAND TAKE HOLD ON JUDGMENT; IJ WILL RENDER VENGEANCE TO MINE ENEMIES, AND WILL REWARD THEM THAT HATE ME.H# 42 I WILL MAKE MINE ARROWS DRUNK WITH BLOOD, AND MY SWORD SHALL DEVOURJ FLESH; AND THAT WITH THE BLOOD OF THE SLAIN AND OF THE CAPTIVES, FROM THE& BEGINNING OF REVENGES UPON THE ENEMY.L# 43 REJOICE, O YE NATIONS, WITH HIS PEOPLE: FOR HE WILL AVENGE THE BLOOD OFH HIS SERVANTS, AND WILL RENDER VENGEANCE TO HIS ADVERSARIES, AND WILL BE+ MERCIFUL UNTO HIS LAND, AND TO HIS PEOPLE.IK# 44 AND MOSES CAME AND SPAKE ALL THE WORDS OF THIS SONG IN THE EARS OF THEI' PEOPLE, HE, AND HOSHEA THE SON OF NUN.EE# 45 AND MOSES MADE AN END OF SPEAKING ALL THESE WORDS TO ALL ISRAEL: F# 46 AND HE SAID UNTO THEM, SET YOUR HEARTS UNTO ALL THE WORDS WHICH IL TESTIFY AMONG YOU THIS DAY, WHICH YE SHALL COMMAND YOUR CHILDREN TO OBSERVE" TO DO, ALL THE WORDS OF THIS LAW.M# 47 FOR IT IS NOT A VAIN THING FOR YOU; BECAUSE IT IS YOUR LIFE: AND THROUGHDM THIS THING YE SHALL PROLONG YOUR DAYS IN THE LAND, WHITHER YE GO OVER JORDAN  TO POSSESS IT.D=# 48 AND THE LORD SPAKE UNTO MOSES THAT SELFSAME DAY, SAYING, L# 49 GET THEE UP INTO THIS MOUNTAIN ABARIM, UNTO MOUNT NEBO, WHICH IS IN THEK LAND OF MOAB, THAT IS OVER AGAINST JERICHO; AND BEHOLD THE LAND OF CANAAN,I; WHICH I GIVE UNTO THE CHILDREN OF ISRAEL FOR A POSSESSION:II# 50 AND DIE IN THE MOUNT WHITHER THOU GOEST UP, AND BE GATHERED UNTO THYVJ PEOPLE; AS AARON THY BROTHER DIED IN MOUNT HOR, AND WAS GATHERED UNTO HIS PEOPLE:I# 5100c,)D%5%T6%! ! BECAUSE YE TRESPASSED AGAINST ME AMONG THE CHILDREN OF ISRAEL AT THEAL WATERS OF MERIBAHKADESH, IN THE WILDERNESS OF ZIN; BECAUSE YE SANCTIFIED ME, NOT IN THE MIDST OF THE CHILDREN OF ISRAEL.K# 52 YET THOU SHALT SEE THE LAND BEFORE THEE; BUT THOU SHALT NOT GO THITHERO3 UNTO THE LAND WHICH I GIVE THE CHILDREN OF ISRAEL. = CHAPTER 33 NH# 1 AND THIS IS THE BLESSING, WHEREWITH MOSES THE MAN OF GOD BLESSED THE% CHILDREN OF ISRAEL BEFORE HIS DEATH.DK# 2 AND HE SAID, THE LORD CAME FROM SINAI, AND ROSE UP FROM SEIR UNTO THEM;DL HE SHINED FORTH FROM MOUNT PARAN, AND HE CAME WITH TEN THOUSANDS OF SAINTS:/ FROM HIS RIGHT HAND WENT A FIERY LAW FOR THEM.J# 3 YEA, HE LOVED THE PEOPLE; ALL HIS SAINTS ARE IN THY HAND: AND THEY SAT8 DOWN AT THY FEET; EVERY ONE SHALL RECEIVE OF THY WORDS.I# 4 MOSES COMMANDED US A LAW, EVEN THE INHERITANCE OF THE CONGREGATION OF  JACOB.IL# 5 AND HE WAS KING IN JESHURUN, WHEN THE HEADS OF THE PEOPLE AND THE TRIBES" OF ISRAEL WERE GATHERED TOGETHER.=# 6 LET REUBEN LIVE, AND NOT DIE; AND LET NOT HIS MEN BE FEW.FL# 7 AND THIS IS THE BLESSING OF JUDAH: AND HE SAID, HEAR, LORD, THE VOICE OFK JUDAH, AND BRING HIM UNTO HIS PEOPLE: LET HIS HANDS BE SUFFICIENT FOR HIM;A- AND BE THOU AN HELP TO HIM FROM HIS ENEMIES.YK# 8 AND OF LEVI HE SAID, LET THY THUMMIM AND THY URIM BE WITH THY HOLY ONE,VH WHOM THOU DIDST PROVE AT MASSAH, AND WITH WHOM THOU DIDST STRIVE AT THE WATERS OF MERIBAH; L# 9 WHO SAID UNTO HIS FATHER AND TO HIS MOTHER, I HAVE NOT SEEN HIM; NEITHERJ DID HE ACKNOWLEDGE HIS BRETHREN, NOR KNEW HIS OWN CHILDREN: FOR THEY HAVE* OBSERVED THY WORD, AND KEPT THY COVENANT.M# 10 THEY SHALL TEACH JACOB THY JUDGMENTS, AND ISRAEL THY LAW: THEY SHALL PUTEA INCENSE BEFORE THEE, AND WHOLE BURNT SACRIFICE UPON THINE ALTAR.NH# 11 BLESS, LORD, HIS SUBSTANCE, AND ACCEPT THE WORK OF HIS HANDS; SMITEL THROUGH THE LOINS OF THEM THAT RISE AGAINST HIM, AND OF THEM THAT HATE HIM, THAT THEY RISE NOT AGAIN.K# 12 AND OF BENJAMIN HE SAID, THE BELOVED OF THE LORD SHALL DWELL IN SAFETYNJ BY HIM; AND THE LORD SHALL COVER HIM ALL THE DAY LONG, AND HE SHALL DWELL BETWEEN HIS SHOULDERS.NM# 13 AND OF JOSEPH HE SAID, BLESSED OF THE LORD BE HIS LAND, FOR THE PRECIOUS G THINGS OF HEAVEN, FOR THE DEW, AND FOR THE DEEP THAT COUCHETH BENEATH,F# 14 AND FOR THE PRECIOUS FRUITS BROUGHT FORTH BY THE SUN, AND FOR THE' PRECIOUS THINGS PUT FORTH BY THE MOON,AL# 15 AND FOR THE CHIEF THINGS OF THE ANCIENT MOUNTAINS, AND FOR THE PRECIOUS THINGS OF THE LASTING HILLS,FJ# 16 AND FOR THE PRECIOUS THINGS OF THE EARTH AND FULNESS THEREOF, AND FORL THE GOOD WILL OF HIM THAT DWELT IN THE BUSH: LET THE BLESSING COME UPON THEL HEAD OF JOSEPH, AND UPON THE TOP OF THE HEAD OF HIM THAT WAS SEPARATED FROM HIS BRETHREN.K# 17 HIS GLORY IS LIKE THE FIRSTLING OF HIS BULLOCK, AND HIS HORNS ARE LIKEOJ THE HORNS OF UNICORNS: WITH THEM HE SHALL PUSH THE PEOPLE TOGETHER TO THEK ENDS OF THE EARTH: AND THEY ARE THE TEN THOUSANDS OF EPHRAIM, AND THEY ARES THE THOUSANDS OF MANASSEH.SE# 18 AND OF ZEBULUN HE SAID, REJOICE, ZEBULUN, IN THY GOING OUT; AND,A ISSACHAR, IN THY TENTS.I# 19 THEY SHALL CALL THE PEOPLE UNTO THE MOUNTAIN; THERE THEY SHALL OFFER,I SACRIFICES OF RIGHTEOUSNESS: FOR THEY SHALL SUCK OF THE ABUNDANCE OF THE.( SEAS, AND OF TREASURES HID IN THE SAND.K# 20 AND OF GAD HE SAID, BLESSED BE HE THAT ENLARGETH GAD: HE DWELLETH AS AA6 LION, AND TEARETH THE ARM WITH THE CROWN OF THE HEAD.L# 21 AND HE PROVIDED THE FIRST PART FOR HIMSELF, BECAUSE THERE, IN A PORTIONM OF THE LAWGIVER, WAS HE SEATED; AND HE CAME WITH THE HEADS OF THE PEOPLE, HEAA EXECUTED THE JUSTICE OF THE LORD, AND HIS JUDGMENTS WITH ISRAEL.EI# 22 AND OF DAN HE SAID, DAN IS A LIONS WHELP: HE SHALL LEAP FROM BASHAN.SI# 23 AND OF NAPHTALI HE SAID, O NAPHTALI, SATISFIED WITH FAVOUR, AND FULL.D WITH THE BLESSING OF THE LORD: POSSESS THOU THE WEST AND THE SOUTH.I# 24 AND OF ASHER HE SAID, LET ASHER BE BLESSED WITH CHILDREN; LET HIM BEH= ACCEPTABLE TO HIS BRETHREN, AND LET HIM DIP HIS FOOT IN OIL.IE# 25 THY SHOES SHALL BE IRON AND BRASS; AND AS T00c,d,<%X>%+%O-%TADATADATAHY DAYS, SO SHALL THYP STRENGTH BE.EL# 26 THERE IS NONE LIKE UNTO THE GOD OF JESHURUN, WHO RIDETH UPON THE HEAVEN/ IN THY HELP, AND IN HIS EXCELLENCY ON THE SKY.OL# 27 THE ETERNAL GOD IS THY REFUGE, AND UNDERNEATH ARE THE EVERLASTING ARMS:K AND HE SHALL THRUST OUT THE ENEMY FROM BEFORE THEE; AND SHALL SAY, DESTROY. THEM.L# 28 ISRAEL THEN SHALL DWELL IN SAFETY ALONE: THE FOUNTAIN OF JACOB SHALL BED UPON A LAND OF CORN AND WINE; ALSO HIS HEAVENS SHALL DROP DOWN DEW.K# 29 HAPPY ART THOU, O ISRAEL: WHO IS LIKE UNTO THEE, O PEOPLE SAVED BY THE6J LORD, THE SHIELD OF THY HELP, AND WHO IS THE SWORD OF THY EXCELLENCY! ANDN THINE ENEMIES SHALL BE FOUND LIARS UNTO THEE; AND THOU SHALT TREAD UPON THEIR HIGH PLACES.A = CHAPTER 34 LK# 1 AND MOSES WENT UP FROM THE PLAINS OF MOAB UNTO THE MOUNTAIN OF NEBO, TOSM THE TOP OF PISGAH, THAT IS OVER AGAINST JERICHO. AND THE LORD SHEWED HIM ALLN THE LAND OF GILEAD, UNTO DAN,M# 2 AND ALL NAPHTALI, AND THE LAND OF EPHRAIM, AND MANASSEH, AND ALL THE LANDO OF JUDAH, UNTO THE UTMOST SEA, K# 3 AND THE SOUTH, AND THE PLAIN OF THE VALLEY OF JERICHO, THE CITY OF PALMT TREES, UNTO ZOAR.L# 4 AND THE LORD SAID UNTO HIM, THIS IS THE LAND WHICH I SWARE UNTO ABRAHAM,I UNTO ISAAC, AND UNTO JACOB, SAYING, I WILL GIVE IT UNTO THY SEED: I HAVEMK CAUSED THEE TO SEE IT WITH THINE EYES, BUT THOU SHALT NOT GO OVER THITHER.JD# 5 SO MOSES THE SERVANT OF THE LORD DIED THERE IN THE LAND OF MOAB,# ACCORDING TO THE WORD OF THE LORD. M# 6 AND HE BURIED HIM IN A VALLEY IN THE LAND OF MOAB, OVER AGAINST BETHPEOR: 3 BUT NO MAN KNOWETH OF HIS SEPULCHRE UNTO THIS DAY.,K# 7 AND MOSES WAS AN HUNDRED AND TWENTY YEARS OLD WHEN HE DIED: HIS EYE WASI' NOT DIM, NOR HIS NATURAL FORCE ABATED.UJ# 8 AND THE CHILDREN OF ISRAEL WEPT FOR MOSES IN THE PLAINS OF MOAB THIRTY@ DAYS: SO THE DAYS OF WEEPING AND MOURNING FOR MOSES WERE ENDED.M# 9 AND JOSHUA THE SON OF NUN WAS FULL OF THE SPIRIT OF WISDOM; FOR MOSES HADL LAID HIS HANDS UPON HIM: AND THE CHILDREN OF ISRAEL HEARKENED UNTO HIM, AND! DID AS THE LORD COMMANDED MOSES.RL# 10 AND THERE AROSE NOT A PROPHET SINCE IN ISRAEL LIKE UNTO MOSES, WHOM THE LORD KNEW FACE TO FACE,K# 11 IN ALL THE SIGNS AND THE WONDERS, WHICH THE LORD SENT HIM TO DO IN THE H LAND OF EGYPT TO PHARAOH, AND TO ALL HIS SERVANTS, AND TO ALL HIS LAND,I# 12 AND IN ALL THAT MIGHTY HAND, AND IN ALL THE GREAT TERROR WHICH MOSESH# SHEWED IN THE SIGHT OF ALL ISRAEL.RIT OF WISDOM; FOR MOSES HADL LAID HIS HANDS UPON HIM: AND THE CHILDREN OF ISRAEL HEARKENED UNTO HIM, AND! DID A* BOOK06 JOSHUA = CHAPTER 1 N# 1 NOW AFTER THE DEATH OF MOSES THE SERVANT OF THE LORD IT CAME TO PASS, THATC THE LORD SPAKE UNTO JOSHUA THE SON OF NUN, MOSES MINISTER, SAYING,M# 2 MOSES MY SERVANT IS DEAD; NOW THEREFORE ARISE, GO OVER THIS JORDAN, THOU,H AND ALL THIS PEOPLE, UNTO THE LAND WHICH I DO GIVE TO THEM, EVEN TO THE CHILDREN OF ISRAEL.H# 3 EVERY PLACE THAT THE SOLE OF YOUR FOOT SHALL TREAD UPON, THAT HAVE I& GIVEN UNTO YOU, AS I SAID UNTO MOSES.M# 4 FROM THE WILDERNESS AND THIS LEBANON EVEN UNTO THE GREAT RIVER, THE RIVEROK EUPHRATES, ALL THE LAND OF THE HITTITES, AND UNTO THE GREAT SEA TOWARD THEE, GOING DOWN OF THE SUN, SHALL BE YOUR COAST.L# 5 THERE SHALL NOT ANY MAN BE ABLE TO STAND BEFORE THEE ALL THE DAYS OF THYM LIFE: AS I WAS WITH MOSES, SO I WILL BE WITH THEE: I WILL NOT FAIL THEE, NORE FORSAKE THEE.K# 6 BE STRONG AND OF A GOOD COURAGE: FOR UNTO THIS PEOPLE SHALT THOU DIVIDEUL FOR AN INHERITANCE THE LAND, WHICH I SWARE UNTO THEIR FATHERS TO GIVE THEM.K# 7 ONLY BE THOU STRONG AND VERY COURAGEOUS, THAT THOU MAYEST OBSERVE TO DOHJ ACCORDING TO ALL THE LAW, WHICH MOSES MY SERVANT COMMANDED THEE: TURN NOTC FROM IT TO THE RIGHT HAND OR TO THE LEFT, THAT THOU MAYEST PROSPERS WITHERSOEVER THOU GOEST.YJ# 8 THIS BOOK OF THE LAW SHALL NOT DEPART OUT OF THY MOUTH; BUT THOU SHALTL MEDITATE THEREIN DAY AND NIGHT, THAT THOU MAYEST OBSERVE TO DO ACCORDING TON ALL THAT IS WRITTEN THEREIN: FOR THEN THOU SHALT MAKE THY WAY PROSPEROUS, AND# THEN THOU SHALT HAVE GOOD SUCCESS.BF# 9 00d,)D%5%T6%! !HAVE NOT I COMMANDED THEE? BE STRONG AND OF A GOOD COURAGE; BE NOTD AFRAID, NEITHER BE THOU DISMAYED: FOR THE LORD THY GOD IS WITH THEE WHITHERSOEVER THOU GOEST.># 10 THEN JOSHUA COMMANDED THE OFFICERS OF THE PEOPLE, SAYING,G# 11 PASS THROUGH THE HOST, AND COMMAND THE PEOPLE, SAYING, PREPARE YOUHL VICTUALS; FOR WITHIN THREE DAYS YE SHALL PASS OVER THIS JORDAN, TO GO IN TOD POSSESS THE LAND, WHICH THE LORD YOUR GOD GIVETH YOU TO POSSESS IT.H# 12 AND TO THE REUBENITES, AND TO THE GADITES, AND TO HALF THE TRIBE OF MANASSEH, SPAKE JOSHUA, SAYING,I# 13 REMEMBER THE WORD WHICH MOSES THE SERVANT OF THE LORD COMMANDED YOU,OM SAYING, THE LORD YOUR GOD HATH GIVEN YOU REST, AND HATH GIVEN YOU THIS LAND.CL# 14 YOUR WIVES, YOUR LITTLE ONES, AND YOUR CATTLE, SHALL REMAIN IN THE LANDH WHICH MOSES GAVE YOU ON THIS SIDE JORDAN; BUT YE SHALL PASS BEFORE YOUR= BRETHREN ARMED, ALL THE MIGHTY MEN OF VALOUR, AND HELP THEM;OL# 15 UNTIL THE LORD HAVE GIVEN YOUR BRETHREN REST, AS HE HATH GIVEN YOU, ANDL THEY ALSO HAVE POSSESSED THE LAND WHICH THE LORD YOUR GOD GIVETH THEM: THENL YE SHALL RETURN UNTO THE LAND OF YOUR POSSESSION, AND ENJOY IT, WHICH MOSESE THE LORDS SERVANT GAVE YOU ON THIS SIDE JORDAN TOWARD THE SUNRISING.UJ# 16 AND THEY ANSWERED JOSHUA, SAYING, ALL THAT THOU COMMANDEST US WE WILL3 DO, AND WHITHERSOEVER THOU SENDEST US, WE WILL GO.SK# 17 ACCORDING AS WE HEARKENED UNTO MOSES IN ALL THINGS, SO WILL WE HEARKENE UNTO THEE: ONLY THE LORD THY GOD BE WITH THEE, AS HE WAS WITH MOSES.,J# 18 WHOSOEVER HE BE THAT DOTH REBEL AGAINST THY COMMANDMENT, AND WILL NOTK HEARKEN UNTO THY WORDS IN ALL THAT THOU COMMANDEST HIM, HE SHALL BE PUT TOH- DEATH: ONLY BE STRONG AND OF A GOOD COURAGE.E = CHAPTER 2 J# 1 AND JOSHUA THE SON OF NUN SENT OUT OF SHITTIM TWO MEN TO SPY SECRETLY,H SAYING, GO VIEW THE LAND, EVEN JERICHO. AND THEY WENT, AND CAME INTO AN. HARLOTS HOUSE, NAMED RAHAB, AND LODGED THERE.J# 2 AND IT WAS TOLD THE KING OF JERICHO, SAYING, BEHOLD, THERE CAME MEN INE HITHER TO NIGHT OF THE CHILDREN OF ISRAEL TO SEARCH OUT THE COUNTRY.YM# 3 AND THE KING OF JERICHO SENT UNTO RAHAB, SAYING, BRING FORTH THE MEN THAT J ARE COME TO THEE, WHICH ARE ENTERED INTO THINE HOUSE: FOR THEY BE COME TO SEARCH OUT ALL THE COUNTRY.K# 4 AND THE WOMAN TOOK THE TWO MEN, AND HID THEM, AND SAID THUS, THERE CAMEE. MEN UNTO ME, BUT I WIST NOT WHENCE THEY WERE:K# 5 AND IT CAME TO PASS ABOUT THE TIME OF SHUTTING OF THE GATE, WHEN IT WAS J DARK, THAT THE MEN WENT OUT: WHITHER THE MEN WENT I WOT NOT: PURSUE AFTER* THEM QUICKLY; FOR YE SHALL OVERTAKE THEM.K# 6 BUT SHE HAD BROUGHT THEM UP TO THE ROOF OF THE HOUSE, AND HID THEM WITHT? THE STALKS OF FLAX, WHICH SHE HAD LAID IN ORDER UPON THE ROOF.TK# 7 AND THE MEN PURSUED AFTER THEM THE WAY TO JORDAN UNTO THE FORDS: AND ASMI SOON AS THEY WHICH PURSUED AFTER THEM WERE GONE OUT, THEY SHUT THE GATE.WH# 8 AND BEFORE THEY WERE LAID DOWN, SHE CAME UP UNTO THEM UPON THE ROOF;L# 9 AND SHE SAID UNTO THE MEN, I KNOW THAT THE LORD HATH GIVEN YOU THE LAND,L AND THAT YOUR TERROR IS FALLEN UPON US, AND THAT ALL THE INHABITANTS OF THE LAND FAINT BECAUSE OF YOU. I# 10 FOR WE HAVE HEARD HOW THE LORD DRIED UP THE WATER OF THE RED SEA FORNJ YOU, WHEN YE CAME OUT OF EGYPT; AND WHAT YE DID UNTO THE TWO KINGS OF THEL AMORITES, THAT WERE ON THE OTHER SIDE JORDAN, SIHON AND OG, WHOM YE UTTERLY DESTROYED.HK# 11 AND AS SOON AS WE HAD HEARD THESE THINGS, OUR HEARTS DID MELT, NEITHERRK DID THERE REMAIN ANY MORE COURAGE IN ANY MAN, BECAUSE OF YOU: FOR THE LORDL; YOUR GOD, HE IS GOD IN HEAVEN ABOVE, AND IN EARTH BENEATH.HG# 12 NOW THEREFORE, I PRAY YOU, SWEAR UNTO ME BY THE LORD, SINCE I HAVEDL SHEWED YOU KINDNESS, THAT YE WILL ALSO SHEW KINDNESS UNTO MY FATHERS HOUSE, AND GIVE ME A TRUE TOKEN:K# 13 AND THAT YE WILL SAVE ALIVE MY FATHER, AND MY MOTHER, AND MY BRETHREN,AJ AND MY SISTERS, AND ALL THAT THEY HAVE, AND DELIVER OUR LIVES FROM DEATH.K# 14 AND THE MEN ANSWERED HER, OUR LIFE FOR YOURS, IF YE UTTER NOT THIS OUR N BUSINESS. AND IT SHALL BE, WHEN THE LORD HATH GIVEN US THE LAND, THAT WE 00d,,<%X>%+%O-%TADATADATAWILL! DEAL KINDLY AND TRULY WITH THEE.EK# 15 THEN SHE LET THEM DOWN BY A CORD THROUGH THE WINDOW: FOR HER HOUSE WASE1 UPON THE TOWN WALL, AND SHE DWELT UPON THE WALL. L# 16 AND SHE SAID UNTO THEM, GET YOU TO THE MOUNTAIN, LEST THE PURSUERS MEETK YOU; AND HIDE YOURSELVES THERE THREE DAYS, UNTIL THE PURSUERS BE RETURNED:A" AND AFTERWARD MAY YE GO YOUR WAY.M# 17 AND THE MEN SAID UNTO HER, WE WILL BE BLAMELESS OF THIS THINE OATH WHICHS THOU HAST MADE US SWEAR.NM# 18 BEHOLD, WHEN WE COME INTO THE LAND, THOU SHALT BIND THIS LINE OF SCARLETEK THREAD IN THE WINDOW WHICH THOU DIDST LET US DOWN BY: AND THOU SHALT BRINGAM THY FATHER, AND THY MOTHER, AND THY BRETHREN, AND ALL THY FATHERS HOUSEHOLD,T HOME UNTO THEE.K# 19 AND IT SHALL BE, THAT WHOSOEVER SHALL GO OUT OF THE DOORS OF THY HOUSESM INTO THE STREET, HIS BLOOD SHALL BE UPON HIS HEAD, AND WE WILL BE GUILTLESS:DI AND WHOSOEVER SHALL BE WITH THEE IN THE HOUSE, HIS BLOOD SHALL BE ON OURO HEAD, IF ANY HAND BE UPON HIM.LL# 20 AND IF THOU UTTER THIS OUR BUSINESS, THEN WE WILL BE QUIT OF THINE OATH" WHICH THOU HAST MADE US TO SWEAR.I# 21 AND SHE SAID, ACCORDING UNTO YOUR WORDS, SO BE IT. AND SHE SENT THEMHG AWAY, AND THEY DEPARTED: AND SHE BOUND THE SCARLET LINE IN THE WINDOW. K# 22 AND THEY WENT, AND CAME UNTO THE MOUNTAIN, AND ABODE THERE THREE DAYS, N UNTIL THE PURSUERS WERE RETURNED: AND THE PURSUERS SOUGHT THEM THROUGHOUT ALL THE WAY, BUT FOUND THEM NOT.II# 23 SO THE TWO MEN RETURNED, AND DESCENDED FROM THE MOUNTAIN, AND PASSEDUM OVER, AND CAME TO JOSHUA THE SON OF NUN, AND TOLD HIM ALL THINGS THAT BEFELLM THEM:L# 24 AND THEY SAID UNTO JOSHUA, TRULY THE LORD HATH DELIVERED INTO OUR HANDSN ALL THE LAND; FOR EVEN ALL THE INHABITANTS OF THE COUNTRY DO FAINT BECAUSE OF US. = CHAPTER 3 L# 1 AND JOSHUA ROSE EARLY IN THE MORNING; AND THEY REMOVED FROM SHITTIM, ANDK CAME TO JORDAN, HE AND ALL THE CHILDREN OF ISRAEL, AND LODGED THERE BEFOREO THEY PASSED OVER.L# 2 AND IT CAME TO PASS AFTER THREE DAYS, THAT THE OFFICERS WENT THROUGH THE HOST;E# 3 AND THEY COMMANDED THE PEOPLE, SAYING, WHEN YE SEE THE ARK OF THE:L COVENANT OF THE LORD YOUR GOD, AND THE PRIESTS THE LEVITES BEARING IT, THEN2 YE SHALL REMOVE FROM YOUR PLACE, AND GO AFTER IT.L# 4 YET THERE SHALL BE A SPACE BETWEEN YOU AND IT, ABOUT TWO THOUSAND CUBITSM BY MEASURE: COME NOT NEAR UNTO IT, THAT YE MAY KNOW THE WAY BY WHICH YE MUSTH0 GO: FOR YE HAVE NOT PASSED THIS WAY HERETOFORE.K# 5 AND JOSHUA SAID UNTO THE PEOPLE, SANCTIFY YOURSELVES: FOR TO MORROW THE LORD WILL DO WONDERS AMONG YOU.E# 6 AND JOSHUA SPAKE UNTO THE PRIESTS, SAYING, TAKE UP THE ARK OF THENK COVENANT, AND PASS OVER BEFORE THE PEOPLE. AND THEY TOOK UP THE ARK OF THEL& COVENANT, AND WENT BEFORE THE PEOPLE.K# 7 AND THE LORD SAID UNTO JOSHUA, THIS DAY WILL I BEGIN TO MAGNIFY THEE INIL THE SIGHT OF ALL ISRAEL, THAT THEY MAY KNOW THAT, AS I WAS WITH MOSES, SO I WILL BE WITH THEE.EI# 8 AND THOU SHALT COMMAND THE PRIESTS THAT BEAR THE ARK OF THE COVENANT,TM SAYING, WHEN YE ARE COME TO THE BRINK OF THE WATER OF JORDAN, YE SHALL STANDO STILL IN JORDAN. J# 9 AND JOSHUA SAID UNTO THE CHILDREN OF ISRAEL, COME HITHER, AND HEAR THE WORDS OF THE LORD YOUR GOD.L# 10 AND JOSHUA SAID, HEREBY YE SHALL KNOW THAT THE LIVING GOD IS AMONG YOU,L AND THAT HE WILL WITHOUT FAIL DRIVE OUT FROM BEFORE YOU THE CANAANITES, ANDL THE HITTITES, AND THE HIVITES, AND THE PERIZZITES, AND THE GIRGASHITES, AND! THE AMORITES, AND THE JEBUSITES.SI# 11 BEHOLD, THE ARK OF THE COVENANT OF THE LORD OF ALL THE EARTH PASSETHK OVER BEFORE YOU INTO JORDAN.LJ# 12 NOW THEREFORE TAKE YOU TWELVE MEN OUT OF THE TRIBES OF ISRAEL, OUT OF EVERY TRIBE A MAN.EG# 13 AND IT SHALL COME TO PASS, AS SOON AS THE SOLES OF THE FEET OF THELM PRIESTS THAT BEAR THE ARK OF THE LORD, THE LORD OF ALL THE EARTH, SHALL RESTOM IN THE WATERS OF JORDAN, THAT THE WATERS OF JORDAN SHALL BE CUT OFF FROM THE E WATERS THAT COME DOWN FROM ABOVE; AND THEY SHALL STAND UPON AN HEAP.SK# 14 AND IT CAME TO PASS, WHEN THE PEOPLE REMOVED FROM THEIR TENTS, TO PASSH OVER JORD00d,)D%5%T6%! !AN, AND THE PRIESTS BEARING THE ARK OF THE COVENANT BEFORE THE PEOPLE;M# 15 AND AS THEY THAT BARE THE ARK WERE COME UNTO JORDAN, AND THE FEET OF THESL PRIESTS THAT BARE THE ARK WERE DIPPED IN THE BRIM OF THE WATER, (FOR JORDAN4 OVERFLOWETH ALL HIS BANKS ALL THE TIME OF HARVEST,)I# 16 THAT THE WATERS WHICH CAME DOWN FROM ABOVE STOOD AND ROSE UP UPON AN N HEAP VERY FAR FROM THE CITY ADAM, THAT IS BESIDE ZARETAN: AND THOSE THAT CAMEJ DOWN TOWARD THE SEA OF THE PLAIN, EVEN THE SALT SEA, FAILED, AND WERE CUT7 OFF: AND THE PEOPLE PASSED OVER RIGHT AGAINST JERICHO.EM# 17 AND THE PRIESTS THAT BARE THE ARK OF THE COVENANT OF THE LORD STOOD FIRMEL ON DRY GROUND IN THE MIDST OF JORDAN, AND ALL THE ISRAELITES PASSED OVER ON@ DRY GROUND, UNTIL ALL THE PEOPLE WERE PASSED CLEAN OVER JORDAN. = CHAPTER 4 K# 1 AND IT CAME TO PASS, WHEN ALL THE PEOPLE WERE CLEAN PASSED OVER JORDAN,F) THAT THE LORD SPAKE UNTO JOSHUA, SAYING,AD# 2 TAKE YOU TWELVE MEN OUT OF THE PEOPLE, OUT OF EVERY TRIBE A MAN,K# 3 AND COMMAND YE THEM, SAYING, TAKE YOU HENCE OUT OF THE MIDST OF JORDAN,CJ OUT OF THE PLACE WHERE THE PRIESTS FEET STOOD FIRM, TWELVE STONES, AND YEN SHALL CARRY THEM OVER WITH YOU, AND LEAVE THEM IN THE LODGING PLACE, WHERE YE SHALL LODGE THIS NIGHT.K# 4 THEN JOSHUA CALLED THE TWELVE MEN, WHOM HE HAD PREPARED OF THE CHILDREN % OF ISRAEL, OUT OF EVERY TRIBE A MAN: L# 5 AND JOSHUA SAID UNTO THEM, PASS OVER BEFORE THE ARK OF THE LORD YOUR GODL INTO THE MIDST OF JORDAN, AND TAKE YOU UP EVERY MAN OF YOU A STONE UPON HISM SHOULDER, ACCORDING UNTO THE NUMBER OF THE TRIBES OF THE CHILDREN OF ISRAEL:RH# 6 THAT THIS MAY BE A SIGN AMONG YOU, THAT WHEN YOUR CHILDREN ASK THEIR? FATHERS IN TIME TO COME, SAYING, WHAT MEAN YE BY THESE STONES?LL# 7 THEN YE SHALL ANSWER THEM, THAT THE WATERS OF JORDAN WERE CUT OFF BEFOREL THE ARK OF THE COVENANT OF THE LORD; WHEN IT PASSED OVER JORDAN, THE WATERSJ OF JORDAN WERE CUT OFF: AND THESE STONES SHALL BE FOR A MEMORIAL UNTO THE CHILDREN OF ISRAEL FOR EVER.YM# 8 AND THE CHILDREN OF ISRAEL DID SO AS JOSHUA COMMANDED, AND TOOK UP TWELVESL STONES OUT OF THE MIDST OF JORDAN, AS THE LORD SPAKE UNTO JOSHUA, ACCORDINGM TO THE NUMBER OF THE TRIBES OF THE CHILDREN OF ISRAEL, AND CARRIED THEM OVERSF WITH THEM UNTO THE PLACE WHERE THEY LODGED, AND LAID THEM DOWN THERE.H# 9 AND JOSHUA SET UP TWELVE STONES IN THE MIDST OF JORDAN, IN THE PLACEL WHERE THE FEET OF THE PRIESTS WHICH BARE THE ARK OF THE COVENANT STOOD: AND THEY ARE THERE UNTO THIS DAY.K# 10 FOR THE PRIESTS WHICH BARE THE ARK STOOD IN THE MIDST OF JORDAN, UNTIL,I EVERYTHING WAS FINISHED THAT THE LORD COMMANDED JOSHUA TO SPEAK UNTO THE L PEOPLE, ACCORDING TO ALL THAT MOSES COMMANDED JOSHUA: AND THE PEOPLE HASTED AND PASSED OVER.OJ# 11 AND IT CAME TO PASS, WHEN ALL THE PEOPLE WERE CLEAN PASSED OVER, THATI THE ARK OF THE LORD PASSED OVER, AND THE PRIESTS, IN THE PRESENCE OF THE PEOPLE.L# 12 AND THE CHILDREN OF REUBEN, AND THE CHILDREN OF GAD, AND HALF THE TRIBEM OF MANASSEH, PASSED OVER ARMED BEFORE THE CHILDREN OF ISRAEL, AS MOSES SPAKET UNTO THEM:NK# 13 ABOUT FORTY THOUSAND PREPARED FOR WAR PASSED OVER BEFORE THE LORD UNTOH" BATTLE, TO THE PLAINS OF JERICHO.J# 14 ON THAT DAY THE LORD MAGNIFIED JOSHUA IN THE SIGHT OF ALL ISRAEL; ANDA THEY FEARED HIM, AS THEY FEARED MOSES, ALL THE DAYS OF HIS LIFE.T,# 15 AND THE LORD SPAKE UNTO JOSHUA, SAYING,K# 16 COMMAND THE PRIESTS THAT BEAR THE ARK OF THE TESTIMONY, THAT THEY COMEE UP OUT OF JORDAN.F# 17 JOSHUA THEREFORE COMMANDED THE PRIESTS, SAYING, COME YE UP OUT OF JORDAN.L# 18 AND IT CAME TO PASS, WHEN THE PRIESTS THAT BARE THE ARK OF THE COVENANTJ OF THE LORD WERE COME UP OUT OF THE MIDST OF JORDAN, AND THE SOLES OF THEI PRIESTS FEET WERE LIFTED UP UNTO THE DRY LAND, THAT THE WATERS OF JORDANRN RETURNED UNTO THEIR PLACE, AND FLOWED OVER ALL HIS BANKS, AS THEY DID BEFORE.G# 19 AND THE PEOPLE CAME UP OUT OF JORDAN ON THE TENTH DAY OF THE FIRST > MONTH, AND ENCAMPED IN GILGAL, IN THE EAST BORDER OF JERICHO.M# 20 AND THOSE TWELVE STONES, WHICH THEY TOOK OUT OF JORDAN,00d,,<%X>%+%O-%TADATADATA DID JOSHUA PITCHA IN GILGAL.HI# 21 AND HE SPAKE UNTO THE CHILDREN OF ISRAEL, SAYING, WHEN YOUR CHILDREN I SHALL ASK THEIR FATHERS IN TIME TO COME, SAYING, WHAT MEAN THESE STONES? H# 22 THEN YE SHALL LET YOUR CHILDREN KNOW, SAYING, ISRAEL CAME OVER THIS JORDAN ON DRY LAND.I# 23 FOR THE LORD YOUR GOD DRIED UP THE WATERS OF JORDAN FROM BEFORE YOU, M UNTIL YE WERE PASSED OVER, AS THE LORD YOUR GOD DID TO THE RED SEA, WHICH HED2 DRIED UP FROM BEFORE US, UNTIL WE WERE GONE OVER:K# 24 THAT ALL THE PEOPLE OF THE EARTH MIGHT KNOW THE HAND OF THE LORD, THATN= IT IS MIGHTY: THAT YE MIGHT FEAR THE LORD YOUR GOD FOR EVER.A = CHAPTER 5 N# 1 AND IT CAME TO PASS, WHEN ALL THE KINGS OF THE AMORITES, WHICH WERE ON THEL SIDE OF JORDAN WESTWARD, AND ALL THE KINGS OF THE CANAANITES, WHICH WERE BYK THE SEA, HEARD THAT THE LORD HAD DRIED UP THE WATERS OF JORDAN FROM BEFORE L THE CHILDREN OF ISRAEL, UNTIL WE WERE PASSED OVER, THAT THEIR HEART MELTED,N NEITHER WAS THERE SPIRIT IN THEM ANY MORE, BECAUSE OF THE CHILDREN OF ISRAEL.G# 2 AT THAT TIME THE LORD SAID UNTO JOSHUA, MAKE THEE SHARP KNIVES, ANDA9 CIRCUMCISE AGAIN THE CHILDREN OF ISRAEL THE SECOND TIME.ML# 3 AND JOSHUA MADE HIM SHARP KNIVES, AND CIRCUMCISED THE CHILDREN OF ISRAEL AT THE HILL OF THE FORESKINS.M# 4 AND THIS IS THE CAUSE WHY JOSHUA DID CIRCUMCISE: ALL THE PEOPLE THAT CAMEED OUT OF EGYPT, THAT WERE MALES, EVEN ALL THE MEN OF WAR, DIED IN THE5 WILDERNESS BY THE WAY, AFTER THEY CAME OUT OF EGYPT.EI# 5 NOW ALL THE PEOPLE THAT CAME OUT WERE CIRCUMCISED: BUT ALL THE PEOPLE M THAT WERE BORN IN THE WILDERNESS BY THE WAY AS THEY CAME FORTH OUT OF EGYPT,  THEM THEY HAD NOT CIRCUMCISED. M# 6 FOR THE CHILDREN OF ISRAEL WALKED FORTY YEARS IN THE WILDERNESS, TILL ALLSI THE PEOPLE THAT WERE MEN OF WAR, WHICH CAME OUT OF EGYPT, WERE CONSUMED,DM BECAUSE THEY OBEYED NOT THE VOICE OF THE LORD: UNTO WHOM THE LORD SWARE THATAN HE WOULD NOT SHEW THEM THE LAND, WHICH THE LORD SWARE UNTO THEIR FATHERS THAT; HE WOULD GIVE US, A LAND THAT FLOWETH WITH MILK AND HONEY.:E# 7 AND THEIR CHILDREN, WHOM HE RAISED UP IN THEIR STEAD, THEM JOSHUAHK CIRCUMCISED: FOR THEY WERE UNCIRCUMCISED, BECAUSE THEY HAD NOT CIRCUMCISEDH THEM BY THE WAY.LM# 8 AND IT CAME TO PASS, WHEN THEY HAD DONE CIRCUMCISING ALL THE PEOPLE, THAT > THEY ABODE IN THEIR PLACES IN THE CAMP, TILL THEY WERE WHOLE.K# 9 AND THE LORD SAID UNTO JOSHUA, THIS DAY HAVE I ROLLED AWAY THE REPROACHTM OF EGYPT FROM OFF YOU. WHEREFORE THE NAME OF THE PLACE IS CALLED GILGAL UNTOA THIS DAY.L# 10 AND THE CHILDREN OF ISRAEL ENCAMPED IN GILGAL, AND KEPT THE PASSOVER ONB THE FOURTEENTH DAY OF THE MONTH AT EVEN IN THE PLAINS OF JERICHO.I# 11 AND THEY DID EAT OF THE OLD CORN OF THE LAND ON THE MORROW AFTER THESB PASSOVER, UNLEAVENED CAKES, AND PARCHED CORN IN THE SELFSAME DAY.L# 12 AND THE MANNA CEASED ON THE MORROW AFTER THEY HAD EATEN OF THE OLD CORNM OF THE LAND; NEITHER HAD THE CHILDREN OF ISRAEL MANNA ANY MORE; BUT THEY DIDH2 EAT OF THE FRUIT OF THE LAND OF CANAAN THAT YEAR.K# 13 AND IT CAME TO PASS, WHEN JOSHUA WAS BY JERICHO, THAT HE LIFTED UP HISEJ EYES AND LOOKED, AND, BEHOLD, THERE STOOD A MAN OVER AGAINST HIM WITH HISJ SWORD DRAWN IN HIS HAND: AND JOSHUA WENT UNTO HIM, AND SAID UNTO HIM, ART% THOU FOR US, OR FOR OUR ADVERSARIES?PL# 14 AND HE SAID, NAY; BUT AS CAPTAIN OF THE HOST OF THE LORD AM I NOW COME.N AND JOSHUA FELL ON HIS FACE TO THE EARTH, AND DID WORSHIP, AND SAID UNTO HIM,% WHAT SAITH MY LORD UNTO HIS SERVANT?OL# 15 AND THE CAPTAIN OF THE LORDS HOST SAID UNTO JOSHUA, LOOSE THY SHOE FROMN OFF THY FOOT; FOR THE PLACE WHEREON THOU STANDEST IS HOLY. AND JOSHUA DID SO. = CHAPTER 6 L# 1 NOW JERICHO WAS STRAITLY SHUT UP BECAUSE OF THE CHILDREN OF ISRAEL: NONE WENT OUT, AND NONE CAME IN.M# 2 AND THE LORD SAID UNTO JOSHUA, SEE, I HAVE GIVEN INTO THINE HAND JERICHO,E4 AND THE KING THEREOF, AND THE MIGHTY MEN OF VALOUR.L# 3 AND YE SHALL COMPASS THE CITY, ALL YE MEN OF WAR, AND GO ROUND ABOUT THE( CITY ONCE. THUS SHALT THOU DO SIX DAYS.M# 4 AND SEVEN PRIESTS SHALL BEAR BEFORE THE ARK SEVE00d,)D%5%T6%! !N TRUMPETS OF RAMS HORNS:EK AND THE SEVENTH DAY YE SHALL COMPASS THE CITY SEVEN TIMES, AND THE PRIESTSO SHALL BLOW WITH THE TRUMPETS.M# 5 AND IT SHALL COME TO PASS, THAT WHEN THEY MAKE A LONG BLAST WITH THE RAMSHL HORN, AND WHEN YE HEAR THE SOUND OF THE TRUMPET, ALL THE PEOPLE SHALL SHOUTK WITH A GREAT SHOUT; AND THE WALL OF THE CITY SHALL FALL DOWN FLAT, AND THET6 PEOPLE SHALL ASCEND UP EVERY MAN STRAIGHT BEFORE HIM.M# 6 AND JOSHUA THE SON OF NUN CALLED THE PRIESTS, AND SAID UNTO THEM, TAKE UP K THE ARK OF THE COVENANT, AND LET SEVEN PRIESTS BEAR SEVEN TRUMPETS OF RAMSY" HORNS BEFORE THE ARK OF THE LORD.K# 7 AND HE SAID UNTO THE PEOPLE, PASS ON, AND COMPASS THE CITY, AND LET HIME2 THAT IS ARMED PASS ON BEFORE THE ARK OF THE LORD.I# 8 AND IT CAME TO PASS, WHEN JOSHUA HAD SPOKEN UNTO THE PEOPLE, THAT THE;L SEVEN PRIESTS BEARING THE SEVEN TRUMPETS OF RAMS HORNS PASSED ON BEFORE THEJ LORD, AND BLEW WITH THE TRUMPETS: AND THE ARK OF THE COVENANT OF THE LORD FOLLOWED THEM.DJ# 9 AND THE ARMED MEN WENT BEFORE THE PRIESTS THAT BLEW WITH THE TRUMPETS,L AND THE REREWARD CAME AFTER THE ARK, THE PRIESTS GOING ON, AND BLOWING WITH THE TRUMPETS.I# 10 AND JOSHUA HAD COMMANDED THE PEOPLE, SAYING, YE SHALL NOT SHOUT, NORHK MAKE ANY NOISE WITH YOUR VOICE, NEITHER SHALL ANY WORD PROCEED OUT OF YOURP; MOUTH, UNTIL THE DAY I BID YOU SHOUT; THEN SHALL YE SHOUT.FM# 11 SO THE ARK OF THE LORD COMPASSED THE CITY, GOING ABOUT IT ONCE: AND THEYK, CAME INTO THE CAMP, AND LODGED IN THE CAMP.M# 12 AND JOSHUA ROSE EARLY IN THE MORNING, AND THE PRIESTS TOOK UP THE ARK OFA THE LORD.M# 13 AND SEVEN PRIESTS BEARING SEVEN TRUMPETS OF RAMS HORNS BEFORE THE ARK OFL THE LORD WENT ON CONTINUALLY, AND BLEW WITH THE TRUMPETS: AND THE ARMED MENG WENT BEFORE THEM; BUT THE REREWARD CAME AFTER THE ARK OF THE LORD, THEP1 PRIESTS GOING ON, AND BLOWING WITH THE TRUMPETS. K# 14 AND THE SECOND DAY THEY COMPASSED THE CITY ONCE, AND RETURNED INTO THEC CAMP: SO THEY DID SIX DAYS.K# 15 AND IT CAME TO PASS ON THE SEVENTH DAY, THAT THEY ROSE EARLY ABOUT THETN DAWNING OF THE DAY, AND COMPASSED THE CITY AFTER THE SAME MANNER SEVEN TIMES:6 ONLY ON THAT DAY THEY COMPASSED THE CITY SEVEN TIMES.L# 16 AND IT CAME TO PASS AT THE SEVENTH TIME, WHEN THE PRIESTS BLEW WITH THEN TRUMPETS, JOSHUA SAID UNTO THE PEOPLE, SHOUT; FOR THE LORD HATH GIVEN YOU THE CITY.J# 17 AND THE CITY SHALL BE ACCURSED, EVEN IT, AND ALL THAT ARE THEREIN, TOM THE LORD: ONLY RAHAB THE HARLOT SHALL LIVE, SHE AND ALL THAT ARE WITH HER INA8 THE HOUSE, BECAUSE SHE HID THE MESSENGERS THAT WE SENT.I# 18 AND YE, IN ANY WISE KEEP YOURSELVES FROM THE ACCURSED THING, LEST YE:K MAKE YOURSELVES ACCURSED, WHEN YE TAKE OF THE ACCURSED THING, AND MAKE THE ( CAMP OF ISRAEL A CURSE, AND TROUBLE IT.E# 19 BUT ALL THE SILVER, AND GOLD, AND VESSELS OF BRASS AND IRON, ARELJ CONSECRATED UNTO THE LORD: THEY SHALL COME INTO THE TREASURY OF THE LORD.J# 20 SO THE PEOPLE SHOUTED WHEN THE PRIESTS BLEW WITH THE TRUMPETS: AND ITM CAME TO PASS, WHEN THE PEOPLE HEARD THE SOUND OF THE TRUMPET, AND THE PEOPLETM SHOUTED WITH A GREAT SHOUT, THAT THE WALL FELL DOWN FLAT, SO THAT THE PEOPLE N WENT UP INTO THE CITY, EVERY MAN STRAIGHT BEFORE HIM, AND THEY TOOK THE CITY.M# 21 AND THEY UTTERLY DESTROYED ALL THAT WAS IN THE CITY, BOTH MAN AND WOMAN,GG YOUNG AND OLD, AND OX, AND SHEEP, AND ASS, WITH THE EDGE OF THE SWORD.YL# 22 BUT JOSHUA HAD SAID UNTO THE TWO MEN THAT HAD SPIED OUT THE COUNTRY, GOI INTO THE HARLOTS HOUSE, AND BRING OUT THENCE THE WOMAN, AND ALL THAT SHEA HATH, AS YE SWARE UNTO HER.J# 23 AND THE YOUNG MEN THAT WERE SPIES WENT IN, AND BROUGHT OUT RAHAB, ANDM HER FATHER, AND HER MOTHER, AND HER BRETHREN, AND ALL THAT SHE HAD; AND THEYTG BROUGHT OUT ALL HER KINDRED, AND LEFT THEM WITHOUT THE CAMP OF ISRAEL.IJ# 24 AND THEY BURNT THE CITY WITH FIRE, AND ALL THAT WAS THEREIN: ONLY THEN SILVER, AND THE GOLD, AND THE VESSELS OF BRASS AND OF IRON, THEY PUT INTO THE# TREASURY OF THE HOUSE OF THE LORD.TL# 25 AND JOSHUA SAVED RAHAB THE HARLOT ALIVE, AND HER FATHERS HOUSEHOLD, ANDM ALL00d,,<%X>%+%O-%TADATADATA THAT SHE HAD; AND SHE DWELLETH IN ISRAEL EVEN UNTO THIS DAY; BECAUSE SHEA: HID THE MESSENGERS, WHICH JOSHUA SENT TO SPY OUT JERICHO.K# 26 AND JOSHUA ADJURED THEM AT THAT TIME, SAYING, CURSED BE THE MAN BEFOREUJ THE LORD, THAT RISETH UP AND BUILDETH THIS CITY JERICHO: HE SHALL LAY THEM FOUNDATION THEREOF IN HIS FIRSTBORN, AND IN HIS YOUNGEST SON SHALL HE SET UPI THE GATES OF IT.TL# 27 SO THE LORD WAS WITH JOSHUA; AND HIS FAME WAS NOISED THROUGHOUT ALL THE COUNTRY.N = CHAPTER 7 N# 1 BUT THE CHILDREN OF ISRAEL COMMITTED A TRESPASS IN THE ACCURSED THING: FORM ACHAN, THE SON OF CARMI, THE SON OF ZABDI, THE SON OF ZERAH, OF THE TRIBE OF6I JUDAH, TOOK OF THE ACCURSED THING: AND THE ANGER OF THE LORD WAS KINDLEDT AGAINST THE CHILDREN OF ISRAEL.L# 2 AND JOSHUA SENT MEN FROM JERICHO TO AI, WHICH IS BESIDE BETHAVEN, ON THEM EAST OF BETHEL, AND SPAKE UNTO THEM, SAYING, GO UP AND VIEW THE COUNTRY. ANDW THE MEN WENT UP AND VIEWED AI.NM# 3 AND THEY RETURNED TO JOSHUA, AND SAID UNTO HIM, LET NOT ALL THE PEOPLE GOAM UP; BUT LET ABOUT TWO OR THREE THOUSAND MEN GO UP AND SMITE AI; AND MAKE NOTH8 ALL THE PEOPLE TO LABOUR THITHER; FOR THEY ARE BUT FEW.M# 4 SO THERE WENT UP THITHER OF THE PEOPLE ABOUT THREE THOUSAND MEN: AND THEYT FLED BEFORE THE MEN OF AI.NM# 5 AND THE MEN OF AI SMOTE OF THEM ABOUT THIRTY AND SIX MEN: FOR THEY CHASEDFJ THEM FROM BEFORE THE GATE EVEN UNTO SHEBARIM, AND SMOTE THEM IN THE GOINGF DOWN: WHEREFORE THE HEARTS OF THE PEOPLE MELTED, AND BECAME AS WATER.K# 6 AND JOSHUA RENT HIS CLOTHES, AND FELL TO THE EARTH UPON HIS FACE BEFOREDM THE ARK OF THE LORD UNTIL THE EVENTIDE, HE AND THE ELDERS OF ISRAEL, AND PUTT DUST UPON THEIR HEADS.TI# 7 AND JOSHUA SAID, ALAS, O LORD GOD, WHEREFORE HAST THOU AT ALL BROUGHTEI THIS PEOPLE OVER JORDAN, TO DELIVER US INTO THE HAND OF THE AMORITES, TOAJ DESTROY US? WOULD TO GOD WE HAD BEEN CONTENT, AND DWELT ON THE OTHER SIDE JORDAN!J# 8 O LORD, WHAT SHALL I SAY, WHEN ISRAEL TURNETH THEIR BACKS BEFORE THEIR ENEMIES!EL# 9 FOR THE CANAANITES AND ALL THE INHABITANTS OF THE LAND SHALL HEAR OF IT,J AND SHALL ENVIRON US ROUND, AND CUT OFF OUR NAME FROM THE EARTH: AND WHAT" WILT THOU DO UNTO THY GREAT NAME?J# 10 AND THE LORD SAID UNTO JOSHUA, GET THEE UP; WHEREFORE LIEST THOU THUS UPON THY FACE?OL# 11 ISRAEL HATH SINNED, AND THEY HAVE ALSO TRANSGRESSED MY COVENANT WHICH IN COMMANDED THEM: FOR THEY HAVE EVEN TAKEN OF THE ACCURSED THING, AND HAVE ALSON STOLEN, AND DISSEMBLED ALSO, AND THEY HAVE PUT IT EVEN AMONG THEIR OWN STUFF.K# 12 THEREFORE THE CHILDREN OF ISRAEL COULD NOT STAND BEFORE THEIR ENEMIES,AI BUT TURNED THEIR BACKS BEFORE THEIR ENEMIES, BECAUSE THEY WERE ACCURSED:HI NEITHER WILL I BE WITH YOU ANY MORE, EXCEPT YE DESTROY THE ACCURSED FROM; AMONG YOU.EM# 13 UP, SANCTIFY THE PEOPLE, AND SAY, SANCTIFY YOURSELVES AGAINST TO MORROW:NI FOR THUS SAITH THE LORD GOD OF ISRAEL, THERE IS AN ACCURSED THING IN THETM MIDST OF THEE, O ISRAEL: THOU CANST NOT STAND BEFORE THINE ENEMIES, UNTIL YEU- TAKE AWAY THE ACCURSED THING FROM AMONG YOU.EK# 14 IN THE MORNING THEREFORE YE SHALL BE BROUGHT ACCORDING TO YOUR TRIBES:HN AND IT SHALL BE, THAT THE TRIBE WHICH THE LORD TAKETH SHALL COME ACCORDING TOM THE FAMILIES THEREOF; AND THE FAMILY WHICH THE LORD SHALL TAKE SHALL COME BY,J HOUSEHOLDS; AND THE HOUSEHOLD WHICH THE LORD SHALL TAKE SHALL COME MAN BY MAN.AL# 15 AND IT SHALL BE, THAT HE THAT IS TAKEN WITH THE ACCURSED THING SHALL BEK BURNT WITH FIRE, HE AND ALL THAT HE HATH: BECAUSE HE HATH TRANSGRESSED THETC COVENANT OF THE LORD, AND BECAUSE HE HATH WROUGHT FOLLY IN ISRAEL.SH# 16 SO JOSHUA ROSE UP EARLY IN THE MORNING, AND BROUGHT ISRAEL BY THEIR* TRIBES; AND THE TRIBE OF JUDAH WAS TAKEN:F# 17 AND HE BROUGHT THE FAMILY OF JUDAH; AND HE TOOK THE FAMILY OF THEN ZARHITES: AND HE BROUGHT THE FAMILY OF THE ZARHITES MAN BY MAN; AND ZABDI WAS TAKEN:J# 18 AND HE BROUGHT HIS HOUSEHOLD MAN BY MAN; AND ACHAN, THE SON OF CARMI,F THE SON OF ZABDI, THE SON OF ZERAH, OF THE TRIBE OF JUDAH, WAS TAKEN.M# 19 AND JOSHUA SAID UNTO ACHAN, MY SON, GIVE, I00d,)D%5%T6%! ! PRAY THEE, GLORY TO THE LORDAL GOD OF ISRAEL, AND MAKE CONFESSION UNTO HIM; AND TELL ME NOW WHAT THOU HAST DONE; HIDE IT NOT FROM ME.UJ# 20 AND ACHAN ANSWERED JOSHUA, AND SAID, INDEED I HAVE SINNED AGAINST THE3 LORD GOD OF ISRAEL, AND THUS AND THUS HAVE I DONE:HM# 21 WHEN I SAW AMONG THE SPOILS A GOODLY BABYLONISH GARMENT, AND TWO HUNDREDLG SHEKELS OF SILVER, AND A WEDGE OF GOLD OF FIFTY SHEKELS WEIGHT, THEN I K COVETED THEM, AND TOOK THEM; AND, BEHOLD, THEY ARE HID IN THE EARTH IN THE + MIDST OF MY TENT, AND THE SILVER UNDER IT.GK# 22 SO JOSHUA SENT MESSENGERS, AND THEY RAN UNTO THE TENT; AND, BEHOLD, ITD. WAS HID IN HIS TENT, AND THE SILVER UNDER IT.K# 23 AND THEY TOOK THEM OUT OF THE MIDST OF THE TENT, AND BROUGHT THEM UNTOAJ JOSHUA, AND UNTO ALL THE CHILDREN OF ISRAEL, AND LAID THEM OUT BEFORE THE LORD.J# 24 AND JOSHUA, AND ALL ISRAEL WITH HIM, TOOK ACHAN THE SON OF ZERAH, ANDJ THE SILVER, AND THE GARMENT, AND THE WEDGE OF GOLD, AND HIS SONS, AND HISM DAUGHTERS, AND HIS OXEN, AND HIS ASSES, AND HIS SHEEP, AND HIS TENT, AND ALLS= THAT HE HAD: AND THEY BROUGHT THEM UNTO THE VALLEY OF ACHOR.LL# 25 AND JOSHUA SAID, WHY HAST THOU TROUBLED US? THE LORD SHALL TROUBLE THEEL THIS DAY. AND ALL ISRAEL STONED HIM WITH STONES, AND BURNED THEM WITH FIRE,( AFTER THEY HAD STONED THEM WITH STONES.J# 26 AND THEY RAISED OVER HIM A GREAT HEAP OF STONES UNTO THIS DAY. SO THEI LORD TURNED FROM THE FIERCENESS OF HIS ANGER. WHEREFORE THE NAME OF THATD6 PLACE WAS CALLED, THE VALLEY OF ACHOR, UNTO THIS DAY. = CHAPTER 8 K# 1 AND THE LORD SAID UNTO JOSHUA, FEAR NOT, NEITHER BE THOU DISMAYED: TAKELK ALL THE PEOPLE OF WAR WITH THEE, AND ARISE, GO UP TO AI: SEE, I HAVE GIVENLJ INTO THY HAND THE KING OF AI, AND HIS PEOPLE, AND HIS CITY, AND HIS LAND:K# 2 AND THOU SHALT DO TO AI AND HER KING AS THOU DIDST UNTO JERICHO AND HERSJ KING: ONLY THE SPOIL THEREOF, AND THE CATTLE THEREOF, SHALL YE TAKE FOR AA PREY UNTO YOURSELVES: LAY THEE AN AMBUSH FOR THE CITY BEHIND IT.SH# 3 SO JOSHUA AROSE, AND ALL THE PEOPLE OF WAR, TO GO UP AGAINST AI: ANDM JOSHUA CHOSE OUT THIRTY THOUSAND MIGHTY MEN OF VALOUR, AND SENT THEM AWAY BY  NIGHT.TK# 4 AND HE COMMANDED THEM, SAYING, BEHOLD, YE SHALL LIE IN WAIT AGAINST THEFI CITY, EVEN BEHIND THE CITY: GO NOT VERY FAR FROM THE CITY, BUT BE YE ALLA READY: L# 5 AND I, AND ALL THE PEOPLE THAT ARE WITH ME, WILL APPROACH UNTO THE CITY:K AND IT SHALL COME TO PASS, WHEN THEY COME OUT AGAINST US, AS AT THE FIRST,B THAT WE WILL FLEE BEFORE THEM, L# 6 (FOR THEY WILL COME OUT AFTER US) TILL WE HAVE DRAWN THEM FROM THE CITY;K FOR THEY WILL SAY, THEY FLEE BEFORE US, AS AT THE FIRST: THEREFORE WE WILLT FLEE BEFORE THEM.K# 7 THEN YE SHALL RISE UP FROM THE AMBUSH, AND SEIZE UPON THE CITY: FOR THEI. LORD YOUR GOD WILL DELIVER IT INTO YOUR HAND.L# 8 AND IT SHALL BE, WHEN YE HAVE TAKEN THE CITY, THAT YE SHALL SET THE CITYK ON FIRE: ACCORDING TO THE COMMANDMENT OF THE LORD SHALL YE DO. SEE, I HAVEU COMMANDED YOU.TI# 9 JOSHUA THEREFORE SENT THEM FORTH: AND THEY WENT TO LIE IN AMBUSH, AND L ABODE BETWEEN BETHEL AND AI, ON THE WEST SIDE OF AI: BUT JOSHUA LODGED THAT NIGHT AMONG THE PEOPLE.J# 10 AND JOSHUA ROSE UP EARLY IN THE MORNING, AND NUMBERED THE PEOPLE, AND? WENT UP, HE AND THE ELDERS OF ISRAEL, BEFORE THE PEOPLE TO AI.TL# 11 AND ALL THE PEOPLE, EVEN THE PEOPLE OF WAR THAT WERE WITH HIM, WENT UP,N AND DREW NIGH, AND CAME BEFORE THE CITY, AND PITCHED ON THE NORTH SIDE OF AI:, NOW THERE WAS A VALLEY BETWEEN THEM AND AI.G# 12 AND HE TOOK ABOUT FIVE THOUSAND MEN, AND SET THEM TO LIE IN AMBUSHT5 BETWEEN BETHEL AND AI, ON THE WEST SIDE OF THE CITY.LH# 13 AND WHEN THEY HAD SET THE PEOPLE, EVEN ALL THE HOST THAT WAS ON THEK NORTH OF THE CITY, AND THEIR LIERS IN WAIT ON THE WEST OF THE CITY, JOSHUA,. WENT THAT NIGHT INTO THE MIDST OF THE VALLEY.J# 14 AND IT CAME TO PASS, WHEN THE KING OF AI SAW IT, THAT THEY HASTED ANDM ROSE UP EARLY, AND THE MEN OF THE CITY WENT OUT AGAINST ISRAEL TO BATTLE, HEVK AND ALL HIS PEOPLE, AT A TIME APPOINTED, BEFORE THE PLAIN; BUT HE WIST NOT = THAT 00d,,<%X>%+%O-%TADATADATATHERE WERE LIERS IN AMBUSH AGAINST HIM BEHIND THE CITY.EK# 15 AND JOSHUA AND ALL ISRAEL MADE AS IF THEY WERE BEATEN BEFORE THEM, AND # FLED BY THE WAY OF THE WILDERNESS.HL# 16 AND ALL THE PEOPLE THAT WERE IN AI WERE CALLED TOGETHER TO PURSUE AFTERH THEM: AND THEY PURSUED AFTER JOSHUA, AND WERE DRAWN AWAY FROM THE CITY.J# 17 AND THERE WAS NOT A MAN LEFT IN AI OR BETHEL, THAT WENT NOT OUT AFTER? ISRAEL: AND THEY LEFT THE CITY OPEN, AND PURSUED AFTER ISRAEL.TM# 18 AND THE LORD SAID UNTO JOSHUA, STRETCH OUT THE SPEAR THAT IS IN THY HANDTL TOWARD AI; FOR I WILL GIVE IT INTO THINE HAND. AND JOSHUA STRETCHED OUT THE/ SPEAR THAT HE HAD IN HIS HAND TOWARD THE CITY.IM# 19 AND THE AMBUSH AROSE QUICKLY OUT OF THEIR PLACE, AND THEY RAN AS SOON ASSL HE HAD STRETCHED OUT HIS HAND: AND THEY ENTERED INTO THE CITY, AND TOOK IT,% AND HASTED AND SET THE CITY ON FIRE. J# 20 AND WHEN THE MEN OF AI LOOKED BEHIND THEM, THEY SAW, AND, BEHOLD, THEL SMOKE OF THE CITY ASCENDED UP TO HEAVEN, AND THEY HAD NO POWER TO FLEE THISM WAY OR THAT WAY: AND THE PEOPLE THAT FLED TO THE WILDERNESS TURNED BACK UPOND THE PURSUERS.K# 21 AND WHEN JOSHUA AND ALL ISRAEL SAW THAT THE AMBUSH HAD TAKEN THE CITY,EN AND THAT THE SMOKE OF THE CITY ASCENDED, THEN THEY TURNED AGAIN, AND SLEW THE MEN OF AI. K# 22 AND THE OTHER ISSUED OUT OF THE CITY AGAINST THEM; SO THEY WERE IN THEIJ MIDST OF ISRAEL, SOME ON THIS SIDE, AND SOME ON THAT SIDE: AND THEY SMOTE6 THEM, SO THAT THEY LET NONE OF THEM REMAIN OR ESCAPE.C# 23 AND THE KING OF AI THEY TOOK ALIVE, AND BROUGHT HIM TO JOSHUA.TH# 24 AND IT CAME TO PASS, WHEN ISRAEL HAD MADE AN END OF SLAYING ALL THEL INHABITANTS OF AI IN THE FIELD, IN THE WILDERNESS WHEREIN THEY CHASED THEM,H AND WHEN THEY WERE ALL FALLEN ON THE EDGE OF THE SWORD, UNTIL THEY WEREJ CONSUMED, THAT ALL THE ISRAELITES RETURNED UNTO AI, AND SMOTE IT WITH THE EDGE OF THE SWORD.SL# 25 AND SO IT WAS, THAT ALL THAT FELL THAT DAY, BOTH OF MEN AND WOMEN, WERE) TWELVE THOUSAND, EVEN ALL THE MEN OF AI. M# 26 FOR JOSHUA DREW NOT HIS HAND BACK, WHEREWITH HE STRETCHED OUT THE SPEAR, : UNTIL HE HAD UTTERLY DESTROYED ALL THE INHABITANTS OF AI.K# 27 ONLY THE CATTLE AND THE SPOIL OF THAT CITY ISRAEL TOOK FOR A PREY UNTO,K THEMSELVES, ACCORDING UNTO THE WORD OF THE LORD WHICH HE COMMANDED JOSHUA.CI# 28 AND JOSHUA BURNT AI, AND MADE IT AN HEAP FOR EVER, EVEN A DESOLATIONE UNTO THIS DAY.SJ# 29 AND THE KING OF AI HE HANGED ON A TREE UNTIL EVENTIDE: AND AS SOON ASJ THE SUN WAS DOWN, JOSHUA COMMANDED THAT THEY SHOULD TAKE HIS CARCASE DOWNN FROM THE TREE, AND CAST IT AT THE ENTERING OF THE GATE OF THE CITY, AND RAISE> THEREON A GREAT HEAP OF STONES, THAT REMAINETH UNTO THIS DAY.J# 30 THEN JOSHUA BUILT AN ALTAR UNTO THE LORD GOD OF ISRAEL IN MOUNT EBAL,M# 31 AS MOSES THE SERVANT OF THE LORD COMMANDED THE CHILDREN OF ISRAEL, AS ITAK IS WRITTEN IN THE BOOK OF THE LAW OF MOSES, AN ALTAR OF WHOLE STONES, OVERNM WHICH NO MAN HATH LIFT UP ANY IRON: AND THEY OFFERED THEREON BURNT OFFERINGSJ/ UNTO THE LORD, AND SACRIFICED PEACE OFFERINGS. L# 32 AND HE WROTE THERE UPON THE STONES A COPY OF THE LAW OF MOSES, WHICH HE1 WROTE IN THE PRESENCE OF THE CHILDREN OF ISRAEL.NL# 33 AND ALL ISRAEL, AND THEIR ELDERS, AND OFFICERS, AND THEIR JUDGES, STOODL ON THIS SIDE THE ARK AND ON THAT SIDE BEFORE THE PRIESTS THE LEVITES, WHICHK BARE THE ARK OF THE COVENANT OF THE LORD, AS WELL THE STRANGER, AS HE THATWJ WAS BORN AMONG THEM; HALF OF THEM OVER AGAINST MOUNT GERIZIM, AND HALF OFM THEM OVER AGAINST MOUNT EBAL; AS MOSES THE SERVANT OF THE LORD HAD COMMANDEDA5 BEFORE, THAT THEY SHOULD BLESS THE PEOPLE OF ISRAEL.MF# 34 AND AFTERWARD HE READ ALL THE WORDS OF THE LAW, THE BLESSINGS ANDC CURSINGS, ACCORDING TO ALL THAT IS WRITTEN IN THE BOOK OF THE LAW.OL# 35 THERE WAS NOT A WORD OF ALL THAT MOSES COMMANDED, WHICH JOSHUA READ NOTL BEFORE ALL THE CONGREGATION OF ISRAEL, WITH THE WOMEN, AND THE LITTLE ONES,3 AND THE STRANGERS THAT WERE CONVERSANT AMONG THEM.O = CHAPTER 9 N# 1 AND IT CAME TO PASS, WHEN ALL THE KINGS WHICH WERE ON THIS SIDE JORDAN, INK T00d,)D%5%T6%! !HE HILLS, AND IN THE VALLEYS, AND IN ALL THE COASTS OF THE GREAT SEA OVERAM AGAINST LEBANON, THE HITTITE, AND THE AMORITE, THE CANAANITE, THE PERIZZITE,I- THE HIVITE, AND THE JEBUSITE, HEARD THEREOF;WI# 2 THAT THEY GATHERED THEMSELVES TOGETHER, TO FIGHT WITH JOSHUA AND WITHD ISRAEL, WITH ONE ACCORD.EF# 3 AND WHEN THE INHABITANTS OF GIBEON HEARD WHAT JOSHUA HAD DONE UNTO JERICHO AND TO AI,NL# 4 THEY DID WORK WILILY, AND WENT AND MADE AS IF THEY HAD BEEN AMBASSADORS,J AND TOOK OLD SACKS UPON THEIR ASSES, AND WINE BOTTLES, OLD, AND RENT, AND BOUND UP;J# 5 AND OLD SHOES AND CLOUTED UPON THEIR FEET, AND OLD GARMENTS UPON THEM;9 AND ALL THE BREAD OF THEIR PROVISION WAS DRY AND MOULDY.AK# 6 AND THEY WENT TO JOSHUA UNTO THE CAMP AT GILGAL, AND SAID UNTO HIM, ANDAM TO THE MEN OF ISRAEL, WE BE COME FROM A FAR COUNTRY: NOW THEREFORE MAKE YE AH LEAGUE WITH US.L# 7 AND THE MEN OF ISRAEL SAID UNTO THE HIVITES, PERADVENTURE YE DWELL AMONG- US; AND HOW SHALL WE MAKE A LEAGUE WITH YOU?LH# 8 AND THEY SAID UNTO JOSHUA, WE ARE THY SERVANTS. AND JOSHUA SAID UNTO+ THEM, WHO ARE YE? AND FROM WHENCE COME YE?EI# 9 AND THEY SAID UNTO HIM, FROM A VERY FAR COUNTRY THY SERVANTS ARE COMERL BECAUSE OF THE NAME OF THE LORD THY GOD: FOR WE HAVE HEARD THE FAME OF HIM, AND ALL THAT HE DID IN EGYPT,K# 10 AND ALL THAT HE DID TO THE TWO KINGS OF THE AMORITES, THAT WERE BEYONDUI JORDAN, TO SIHON KING OF HESHBON, AND TO OG KING OF BASHAN, WHICH WAS ATA ASHTAROTH.DM# 11 WHEREFORE OUR ELDERS AND ALL THE INHABITANTS OF OUR COUNTRY SPAKE TO US,HM SAYING, TAKE VICTUALS WITH YOU FOR THE JOURNEY, AND GO TO MEET THEM, AND SAYI UNTO THEM, WE ARE YOUR SERVANTS: THEREFORE NOW MAKE YE A LEAGUE WITH US.J# 12 THIS OUR BREAD WE TOOK HOT FOR OUR PROVISION OUT OF OUR HOUSES ON THEH DAY WE CAME FORTH TO GO UNTO YOU; BUT NOW, BEHOLD, IT IS DRY, AND IT IS MOULDY:L# 13 AND THESE BOTTLES OF WINE, WHICH WE FILLED, WERE NEW; AND, BEHOLD, THEYN BE RENT: AND THESE OUR GARMENTS AND OUR SHOES ARE BECOME OLD BY REASON OF THE VERY LONG JOURNEY.TK# 14 AND THE MEN TOOK OF THEIR VICTUALS, AND ASKED NOT COUNSEL AT THE MOUTHM OF THE LORD.AI# 15 AND JOSHUA MADE PEACE WITH THEM, AND MADE A LEAGUE WITH THEM, TO LETS@ THEM LIVE: AND THE PRINCES OF THE CONGREGATION SWARE UNTO THEM.G# 16 AND IT CAME TO PASS AT THE END OF THREE DAYS AFTER THEY HAD MADE ARL LEAGUE WITH THEM, THAT THEY HEARD THAT THEY WERE THEIR NEIGHBOURS, AND THAT THEY DWELT AMONG THEM.BL# 17 AND THE CHILDREN OF ISRAEL JOURNEYED, AND CAME UNTO THEIR CITIES ON THEI THIRD DAY. NOW THEIR CITIES WERE GIBEON, AND CHEPHIRAH, AND BEEROTH, ANDT KIRJATHJEARIM.OJ# 18 AND THE CHILDREN OF ISRAEL SMOTE THEM NOT, BECAUSE THE PRINCES OF THEH CONGREGATION HAD SWORN UNTO THEM BY THE LORD GOD OF ISRAEL. AND ALL THE+ CONGREGATION MURMURED AGAINST THE PRINCES. K# 19 BUT ALL THE PRINCES SAID UNTO ALL THE CONGREGATION, WE HAVE SWORN UNTOTE THEM BY THE LORD GOD OF ISRAEL: NOW THEREFORE WE MAY NOT TOUCH THEM.7L# 20 THIS WE WILL DO TO THEM; WE WILL EVEN LET THEM LIVE, LEST WRATH BE UPON2 US, BECAUSE OF THE OATH WHICH WE SWARE UNTO THEM.M# 21 AND THE PRINCES SAID UNTO THEM, LET THEM LIVE; BUT LET THEM BE HEWERS OFMH WOOD AND DRAWERS OF WATER UNTO ALL THE CONGREGATION; AS THE PRINCES HAD PROMISED THEM.EJ# 22 AND JOSHUA CALLED FOR THEM, AND HE SPAKE UNTO THEM, SAYING, WHEREFOREK HAVE YE BEGUILED US, SAYING, WE ARE VERY FAR FROM YOU; WHEN YE DWELL AMONGL US?K# 23 NOW THEREFORE YE ARE CURSED, AND THERE SHALL NONE OF YOU BE FREED FROMHK BEING BONDMEN, AND HEWERS OF WOOD AND DRAWERS OF WATER FOR THE HOUSE OF MYW GOD. J# 24 AND THEY ANSWERED JOSHUA, AND SAID, BECAUSE IT WAS CERTAINLY TOLD THYL SERVANTS, HOW THAT THE LORD THY GOD COMMANDED HIS SERVANT MOSES TO GIVE YOUN ALL THE LAND, AND TO DESTROY ALL THE INHABITANTS OF THE LAND FROM BEFORE YOU,N THEREFORE WE WERE SORE AFRAID OF OUR LIVES BECAUSE OF YOU, AND HAVE DONE THIS THING.HM# 25 AND NOW, BEHOLD, WE ARE IN THINE HAND: AS IT SEEMETH GOOD AND RIGHT UNTOE THEE TO DO UNTO US, DO.G# 26 AND SO DID HE UNTO THEM, AND DELIVERED THEM OUT00d,,<%X>%+%O-%TADATADATA OF THE HAND OF THEW- CHILDREN OF ISRAEL, THAT THEY SLEW THEM NOT.IJ# 27 AND JOSHUA MADE THEM THAT DAY HEWERS OF WOOD AND DRAWERS OF WATER FORL THE CONGREGATION, AND FOR THE ALTAR OF THE LORD, EVEN UNTO THIS DAY, IN THE PLACE WHICH HE SHOULD CHOOSE. = CHAPTER 10 EH# 1 NOW IT CAME TO PASS, WHEN ADONIZEDEC KING OF JERUSALEM HAD HEARD HOWM JOSHUA HAD TAKEN AI, AND HAD UTTERLY DESTROYED IT; AS HE HAD DONE TO JERICHOGL AND HER KING, SO HE HAD DONE TO AI AND HER KING; AND HOW THE INHABITANTS OF8 GIBEON HAD MADE PEACE WITH ISRAEL, AND WERE AMONG THEM;L# 2 THAT THEY FEARED GREATLY, BECAUSE GIBEON WAS A GREAT CITY, AS ONE OF THEJ ROYAL CITIES, AND BECAUSE IT WAS GREATER THAN AI, AND ALL THE MEN THEREOF WERE MIGHTY.NK# 3 WHEREFORE ADONIZEDEC KING OF JERUSALEM, SENT UNTO HOHAM KING OF HEBRON,,J AND UNTO PIRAM KING OF JARMUTH, AND UNTO JAPHIA KING OF LACHISH, AND UNTO DEBIR KING OF EGLON, SAYING, L# 4 COME UP UNTO ME, AND HELP ME, THAT WE MAY SMITE GIBEON: FOR IT HATH MADE3 PEACE WITH JOSHUA AND WITH THE CHILDREN OF ISRAEL.AM# 5 THEREFORE THE FIVE KINGS OF THE AMORITES, THE KING OF JERUSALEM, THE KINGEH OF HEBRON, THE KING OF JARMUTH, THE KING OF LACHISH, THE KING OF EGLON,I GATHERED THEMSELVES TOGETHER, AND WENT UP, THEY AND ALL THEIR HOSTS, ANDJ1 ENCAMPED BEFORE GIBEON, AND MADE WAR AGAINST IT.TI# 6 AND THE MEN OF GIBEON SENT UNTO JOSHUA TO THE CAMP TO GILGAL, SAYING,KN SLACK NOT THY HAND FROM THY SERVANTS; COME UP TO US QUICKLY, AND SAVE US, ANDK HELP US: FOR ALL THE KINGS OF THE AMORITES THAT DWELL IN THE MOUNTAINS ARE  GATHERED TOGETHER AGAINST US.K# 7 SO JOSHUA ASCENDED FROM GILGAL, HE, AND ALL THE PEOPLE OF WAR WITH HIM,," AND ALL THE MIGHTY MEN OF VALOUR.K# 8 AND THE LORD SAID UNTO JOSHUA, FEAR THEM NOT: FOR I HAVE DELIVERED THEMNB INTO THINE HAND; THERE SHALL NOT A MAN OF THEM STAND BEFORE THEE.I# 9 JOSHUA THEREFORE CAME UNTO THEM SUDDENLY, AND WENT UP FROM GILGAL ALLT NIGHT.RL# 10 AND THE LORD DISCOMFITED THEM BEFORE ISRAEL, AND SLEW THEM WITH A GREATD SLAUGHTER AT GIBEON, AND CHASED THEM ALONG THE WAY THAT GOETH UP TO8 BETHHORON, AND SMOTE THEM TO AZEKAH, AND UNTO MAKKEDAH.J# 11 AND IT CAME TO PASS, AS THEY FLED FROM BEFORE ISRAEL, AND WERE IN THEJ GOING DOWN TO BETHHORON, THAT THE LORD CAST DOWN GREAT STONES FROM HEAVENE UPON THEM UNTO AZEKAH, AND THEY DIED: THEY WERE MORE WHICH DIED WITH F HAILSTONES THAN THEY WHOM THE CHILDREN OF ISRAEL SLEW WITH THE SWORD.L# 12 THEN SPAKE JOSHUA TO THE LORD IN THE DAY WHEN THE LORD DELIVERED UP THEL AMORITES BEFORE THE CHILDREN OF ISRAEL, AND HE SAID IN THE SIGHT OF ISRAEL,L SUN, STAND THOU STILL UPON GIBEON; AND THOU, MOON, IN THE VALLEY OF AJALON.G# 13 AND THE SUN STOOD STILL, AND THE MOON STAYED, UNTIL THE PEOPLE HADOJ AVENGED THEMSELVES UPON THEIR ENEMIES. IS NOT THIS WRITTEN IN THE BOOK OFL JASHER? SO THE SUN STOOD STILL IN THE MIDST OF HEAVEN, AND HASTED NOT TO GO DOWN ABOUT A WHOLE DAY.H# 14 AND THERE WAS NO DAY LIKE THAT BEFORE IT OR AFTER IT, THAT THE LORDC HEARKENED UNTO THE VOICE OF A MAN: FOR THE LORD FOUGHT FOR ISRAEL.,K# 15 AND JOSHUA RETURNED, AND ALL ISRAEL WITH HIM, UNTO THE CAMP TO GILGAL. I# 16 BUT THESE FIVE KINGS FLED, AND HID THEMSELVES IN A CAVE AT MAKKEDAH. K# 17 AND IT WAS TOLD JOSHUA, SAYING, THE FIVE KINGS ARE FOUND HID IN A CAVES AT MAKKEDAH.EK# 18 AND JOSHUA SAID, ROLL GREAT STONES UPON THE MOUTH OF THE CAVE, AND SET  MEN BY IT FOR TO KEEP THEM:K# 19 AND STAY YE NOT, BUT PURSUE AFTER YOUR ENEMIES, AND SMITE THE HINDMOST K OF THEM; SUFFER THEM NOT TO ENTER INTO THEIR CITIES: FOR THE LORD YOUR GOD,$ HATH DELIVERED THEM INTO YOUR HAND.L# 20 AND IT CAME TO PASS, WHEN JOSHUA AND THE CHILDREN OF ISRAEL HAD MADE ANJ END OF SLAYING THEM WITH A VERY GREAT SLAUGHTER, TILL THEY WERE CONSUMED,A THAT THE REST WHICH REMAINED OF THEM ENTERED INTO FENCED CITIES.JL# 21 AND ALL THE PEOPLE RETURNED TO THE CAMP TO JOSHUA AT MAKKEDAH IN PEACE:= NONE MOVED HIS TONGUE AGAINST ANY OF THE CHILDREN OF ISRAEL. K# 22 THEN SAID JOSHUA, OPEN THE MOUTH OF THE CAVE, AND BRING OUT THOSE FIVEI KINGS UNTO ME OUT OF THE 00d,)D%5%T6%! !CAVE.L# 23 AND THEY DID SO, AND BROUGHT FORTH THOSE FIVE KINGS UNTO HIM OUT OF THEJ CAVE, THE KING OF JERUSALEM, THE KING OF HEBRON, THE KING OF JARMUTH, THE( KING OF LACHISH, AND THE KING OF EGLON.M# 24 AND IT CAME TO PASS, WHEN THEY BROUGHT OUT THOSE KINGS UNTO JOSHUA, THATEK JOSHUA CALLED FOR ALL THE MEN OF ISRAEL, AND SAID UNTO THE CAPTAINS OF THE K MEN OF WAR WHICH WENT WITH HIM, COME NEAR, PUT YOUR FEET UPON THE NECKS OFHL THESE KINGS. AND THEY CAME NEAR, AND PUT THEIR FEET UPON THE NECKS OF THEM.K# 25 AND JOSHUA SAID UNTO THEM, FEAR NOT, NOR BE DISMAYED, BE STRONG AND OFTM GOOD COURAGE: FOR THUS SHALL THE LORD DO TO ALL YOUR ENEMIES AGAINST WHOM YE FIGHT.LL# 26 AND AFTERWARD JOSHUA SMOTE THEM, AND SLEW THEM, AND HANGED THEM ON FIVE? TREES: AND THEY WERE HANGING UPON THE TREES UNTIL THE EVENING.OG# 27 AND IT CAME TO PASS AT THE TIME OF THE GOING DOWN OF THE SUN, THAT L JOSHUA COMMANDED, AND THEY TOOK THEM DOWN OFF THE TREES, AND CAST THEM INTON THE CAVE WHEREIN THEY HAD BEEN HID, AND LAID GREAT STONES IN THE CAVES MOUTH," WHICH REMAIN UNTIL THIS VERY DAY.I# 28 AND THAT DAY JOSHUA TOOK MAKKEDAH, AND SMOTE IT WITH THE EDGE OF THEGJ SWORD, AND THE KING THEREOF HE UTTERLY DESTROYED, THEM, AND ALL THE SOULSM THAT WERE THEREIN; HE LET NONE REMAIN: AND HE DID TO THE KING OF MAKKEDAH AST! HE DID UNTO THE KING OF JERICHO.AL# 29 THEN JOSHUA PASSED FROM MAKKEDAH, AND ALL ISRAEL WITH HIM, UNTO LIBNAH, AND FOUGHT AGAINST LIBNAH:SK# 30 AND THE LORD DELIVERED IT ALSO, AND THE KING THEREOF, INTO THE HAND OFNK ISRAEL; AND HE SMOTE IT WITH THE EDGE OF THE SWORD, AND ALL THE SOULS THAT L WERE THEREIN; HE LET NONE REMAIN IN IT; BUT DID UNTO THE KING THEREOF AS HE DID UNTO THE KING OF JERICHO.J# 31 AND JOSHUA PASSED FROM LIBNAH, AND ALL ISRAEL WITH HIM, UNTO LACHISH,0 AND ENCAMPED AGAINST IT, AND FOUGHT AGAINST IT:M# 32 AND THE LORD DELIVERED LACHISH INTO THE HAND OF ISRAEL, WHICH TOOK IT ONNK THE SECOND DAY, AND SMOTE IT WITH THE EDGE OF THE SWORD, AND ALL THE SOULS,@ THAT WERE THEREIN, ACCORDING TO ALL THAT HE HAD DONE TO LIBNAH.K# 33 THEN HORAM KING OF GEZER CAME UP TO HELP LACHISH; AND JOSHUA SMOTE HIMO6 AND HIS PEOPLE, UNTIL HE HAD LEFT HIM NONE REMAINING.L# 34 AND FROM LACHISH JOSHUA PASSED UNTO EGLON, AND ALL ISRAEL WITH HIM; AND1 THEY ENCAMPED AGAINST IT, AND FOUGHT AGAINST IT:TK# 35 AND THEY TOOK IT ON THAT DAY, AND SMOTE IT WITH THE EDGE OF THE SWORD,FM AND ALL THE SOULS THAT WERE THEREIN HE UTTERLY DESTROYED THAT DAY, ACCORDINGS$ TO ALL THAT HE HAD DONE TO LACHISH.M# 36 AND JOSHUA WENT UP FROM EGLON, AND ALL ISRAEL WITH HIM, UNTO HEBRON; ANDE THEY FOUGHT AGAINST IT:L# 37 AND THEY TOOK IT, AND SMOTE IT WITH THE EDGE OF THE SWORD, AND THE KINGM THEREOF, AND ALL THE CITIES THEREOF, AND ALL THE SOULS THAT WERE THEREIN; HEDE LEFT NONE REMAINING, ACCORDING TO ALL THAT HE HAD DONE TO EGLON; BUTK; DESTROYED IT UTTERLY, AND ALL THE SOULS THAT WERE THEREIN.AG# 38 AND JOSHUA RETURNED, AND ALL ISRAEL WITH HIM, TO DEBIR; AND FOUGHTN AGAINST IT:J# 39 AND HE TOOK IT, AND THE KING THEREOF, AND ALL THE CITIES THEREOF; ANDJ THEY SMOTE THEM WITH THE EDGE OF THE SWORD, AND UTTERLY DESTROYED ALL THEN SOULS THAT WERE THEREIN; HE LEFT NONE REMAINING: AS HE HAD DONE TO HEBRON, SOM HE DID TO DEBIR, AND TO THE KING THEREOF; AS HE HAD DONE ALSO TO LIBNAH, ANDG TO HER KING.AK# 40 SO JOSHUA SMOTE ALL THE COUNTRY OF THE HILLS, AND OF THE SOUTH, AND OFTK THE VALE, AND OF THE SPRINGS, AND ALL THEIR KINGS: HE LEFT NONE REMAINING,IN BUT UTTERLY DESTROYED ALL THAT BREATHED, AS THE LORD GOD OF ISRAEL COMMANDED.H# 41 AND JOSHUA SMOTE THEM FROM KADESHBARNEA EVEN UNTO GAZA, AND ALL THE% COUNTRY OF GOSHEN, EVEN UNTO GIBEON. L# 42 AND ALL THESE KINGS AND THEIR LAND DID JOSHUA TAKE AT ONE TIME, BECAUSE* THE LORD GOD OF ISRAEL FOUGHT FOR ISRAEL.K# 43 AND JOSHUA RETURNED, AND ALL ISRAEL WITH HIM, UNTO THE CAMP TO GILGAL.Y = CHAPTER 11 AN# 1 AND IT CAME TO PASS, WHEN JABIN KING OF HAZOR HAD HEARD THOSE THINGS, THATL HE SENT TO JOBAB KING OF MADON, AND TO THE KING OF SHIMRON, AND TO THE KING OF ACHS00d,,<%X>%+%O-%TADATADATAHAPH,OH# 2 AND TO THE KINGS THAT WERE ON THE NORTH OF THE MOUNTAINS, AND OF THEL PLAINS SOUTH OF CHINNEROTH, AND IN THE VALLEY, AND IN THE BORDERS OF DOR ON THE WEST,M# 3 AND TO THE CANAANITE ON THE EAST AND ON THE WEST, AND TO THE AMORITE, AND.N THE HITTITE, AND THE PERIZZITE, AND THE JEBUSITE IN THE MOUNTAINS, AND TO THE+ HIVITE UNDER HERMON IN THE LAND OF MIZPEH. L# 4 AND THEY WENT OUT, THEY AND ALL THEIR HOSTS WITH THEM, MUCH PEOPLE, EVENN AS THE SAND THAT IS UPON THE SEA SHORE IN MULTITUDE, WITH HORSES AND CHARIOTS VERY MANY.EE# 5 AND WHEN ALL THESE KINGS WERE MET TOGETHER, THEY CAME AND PITCHEDT: TOGETHER AT THE WATERS OF MEROM, TO FIGHT AGAINST ISRAEL.H# 6 AND THE LORD SAID UNTO JOSHUA, BE NOT AFRAID BECAUSE OF THEM: FOR TOL MORROW ABOUT THIS TIME WILL I DELIVER THEM UP ALL SLAIN BEFORE ISRAEL: THOU= SHALT HOUGH THEIR HORSES, AND BURN THEIR CHARIOTS WITH FIRE.NK# 7 SO JOSHUA CAME, AND ALL THE PEOPLE OF WAR WITH HIM, AGAINST THEM BY THEH3 WATERS OF MEROM SUDDENLY; AND THEY FELL UPON THEM.HL# 8 AND THE LORD DELIVERED THEM INTO THE HAND OF ISRAEL, WHO SMOTE THEM, ANDN CHASED THEM UNTO GREAT ZIDON, AND UNTO MISREPHOTHMAIM, AND UNTO THE VALLEY OFK MIZPEH EASTWARD; AND THEY SMOTE THEM, UNTIL THEY LEFT THEM NONE REMAINING. K# 9 AND JOSHUA DID UNTO THEM AS THE LORD BADE HIM: HE HOUGHED THEIR HORSES,H$ AND BURNT THEIR CHARIOTS WITH FIRE.L# 10 AND JOSHUA AT THAT TIME TURNED BACK, AND TOOK HAZOR, AND SMOTE THE KINGG THEREOF WITH THE SWORD: FOR HAZOR BEFORETIME WAS THE HEAD OF ALL THOSEO KINGDOMS.H# 11 AND THEY SMOTE ALL THE SOULS THAT WERE THEREIN WITH THE EDGE OF THEJ SWORD, UTTERLY DESTROYING THEM: THERE WAS NOT ANY LEFT TO BREATHE: AND HE BURNT HAZOR WITH FIRE.NM# 12 AND ALL THE CITIES OF THOSE KINGS, AND ALL THE KINGS OF THEM, DID JOSHUATJ TAKE, AND SMOTE THEM WITH THE EDGE OF THE SWORD, AND HE UTTERLY DESTROYED2 THEM, AS MOSES THE SERVANT OF THE LORD COMMANDED.L# 13 BUT AS FOR THE CITIES THAT STOOD STILL IN THEIR STRENGTH, ISRAEL BURNED5 NONE OF THEM, SAVE HAZOR ONLY; THAT DID JOSHUA BURN.1G# 14 AND ALL THE SPOIL OF THESE CITIES, AND THE CATTLE, THE CHILDREN OFOJ ISRAEL TOOK FOR A PREY UNTO THEMSELVES; BUT EVERY MAN THEY SMOTE WITH THEK EDGE OF THE SWORD, UNTIL THEY HAD DESTROYED THEM, NEITHER LEFT THEY ANY TOG BREATHE.DJ# 15 AS THE LORD COMMANDED MOSES HIS SERVANT, SO DID MOSES COMMAND JOSHUA,I AND SO DID JOSHUA; HE LEFT NOTHING UNDONE OF ALL THAT THE LORD COMMANDED  MOSES.IL# 16 SO JOSHUA TOOK ALL THAT LAND, THE HILLS, AND ALL THE SOUTH COUNTRY, ANDK ALL THE LAND OF GOSHEN, AND THE VALLEY, AND THE PLAIN, AND THE MOUNTAIN OF $ ISRAEL, AND THE VALLEY OF THE SAME;K# 17 EVEN FROM THE MOUNT HALAK, THAT GOETH UP TO SEIR, EVEN UNTO BAALGAD INTK THE VALLEY OF LEBANON UNDER MOUNT HERMON: AND ALL THEIR KINGS HE TOOK, ANDD SMOTE THEM, AND SLEW THEM.M6# 18 JOSHUA MADE WAR A LONG TIME WITH ALL THOSE KINGS.K# 19 THERE WAS NOT A CITY THAT MADE PEACE WITH THE CHILDREN OF ISRAEL, SAVEF THE HIVITES THE INHABITANTS OF GIBEON: ALL OTHER THEY TOOK IN BATTLE.I# 20 FOR IT WAS OF THE LORD TO HARDEN THEIR HEARTS, THAT THEY SHOULD COMEAL AGAINST ISRAEL IN BATTLE, THAT HE MIGHT DESTROY THEM UTTERLY, AND THAT THEYL MIGHT HAVE NO FAVOUR, BUT THAT HE MIGHT DESTROY THEM, AS THE LORD COMMANDED MOSES.:C# 21 AND AT THAT TIME CAME JOSHUA, AND CUT OFF THE ANAKIMS FROM THE8M MOUNTAINS, FROM HEBRON, FROM DEBIR, FROM ANAB, AND FROM ALL THE MOUNTAINS OFHK JUDAH, AND FROM ALL THE MOUNTAINS OF ISRAEL: JOSHUA DESTROYED THEM UTTERLYS WITH THEIR CITIES. F# 22 THERE WAS NONE OF THE ANAKIMS LEFT IN THE LAND OF THE CHILDREN OF> ISRAEL: ONLY IN GAZA, IN GATH, AND IN ASHDOD, THERE REMAINED.L# 23 SO JOSHUA TOOK THE WHOLE LAND, ACCORDING TO ALL THAT THE LORD SAID UNTOL MOSES; AND JOSHUA GAVE IT FOR AN INHERITANCE UNTO ISRAEL ACCORDING TO THEIR9 DIVISIONS BY THEIR TRIBES. AND THE LAND RESTED FROM WAR.H = CHAPTER 12 IL# 1 NOW THESE ARE THE KINGS OF THE LAND, WHICH THE CHILDREN OF ISRAEL SMOTE,K AND POSSESSED THEIR LAND ON THE OTHER SIDE JORDAN TOWARD THE RISING OF THEEM SUN, FROM THE RIVER ARNON U00d-)D%5%T6%! !NTO MOUNT HE RMON, AND ALL THE PLAIN ON THE EAST:GK# 2 SIHON KING OF THE AMORITES, WHO DWELT IN HESHBON, AND RULED FROM AROER,AM WHICH IS UPON THE BANK OF THE RIVER ARNON, AND FROM THE MIDDLE OF THE RIVER, M AND FROM HALF GILEAD, EVEN UNTO THE RIVER JABBOK, WHICH IS THE BORDER OF THE  CHILDREN OF AMMON;HM# 3 AND FROM THE PLAIN TO THE SEA OF CHINNEROTH ON THE EAST, AND UNTO THE SEAFK OF THE PLAIN, EVEN THE SALT SEA ON THE EAST, THE WAY TO BETHJESHIMOTH; AND % FROM THE SOUTH, UNDER ASHDOTHPISGAH:NG# 4 AND THE COAST OF OG KING OF BASHAN, WHICH WAS OF THE REMNANT OF THE . GIANTS, THAT DWELT AT ASHTAROTH AND AT EDREI,K# 5 AND REIGNED IN MOUNT HERMON, AND IN SALCAH, AND IN ALL BASHAN, UNTO THEFN BORDER OF THE GESHURITES AND THE MAACHATHITES, AND HALF GILEAD, THE BORDER OF SIHON KING OF HESHBON.FL# 6 THEM DID MOSES THE SERVANT OF THE LORD AND THE CHILDREN OF ISRAEL SMITE:D AND MOSES THE SERVANT OF THE LORD GAVE IT FOR A POSSESSION UNTO THE= REUBENITES, AND THE GADITES, AND THE HALF TRIBE OF MANASSEH. K# 7 AND THESE ARE THE KINGS OF THE COUNTRY WHICH JOSHUA AND THE CHILDREN OF,L ISRAEL SMOTE ON THIS SIDE JORDAN ON THE WEST, FROM BAALGAD IN THE VALLEY OFL LEBANON EVEN UNTO THE MOUNT HALAK, THAT GOETH UP TO SEIR; WHICH JOSHUA GAVEI UNTO THE TRIBES OF ISRAEL FOR A POSSESSION ACCORDING TO THEIR DIVISIONS;MG# 8 IN THE MOUNTAINS, AND IN THE VALLEYS, AND IN THE PLAINS, AND IN THEDL SPRINGS, AND IN THE WILDERNESS, AND IN THE SOUTH COUNTRY; THE HITTITES, THEN AMORITES, AND THE CANAANITES, THE PERIZZITES, THE HIVITES, AND THE JEBUSITES:J# 9 THE KING OF JERICHO, ONE; THE KING OF AI, WHICH IS BESIDE BETHEL, ONE;9# 10 THE KING OF JERUSALEM, ONE; THE KING OF HEBRON, ONE;N8# 11 THE KING OF JARMUTH, ONE; THE KING OF LACHISH, ONE;4# 12 THE KING OF EGLON, ONE; THE KING OF GEZER, ONE;4# 13 THE KING OF DEBIR, ONE; THE KING OF GEDER, ONE;4# 14 THE KING OF HORMAH, ONE; THE KING OF ARAD, ONE;7# 15 THE KING OF LIBNAH, ONE; THE KING OF ADULLAM, ONE;;8# 16 THE KING OF MAKKEDAH, ONE; THE KING OF BETHEL, ONE;7# 17 THE KING OF TAPPUAH, ONE; THE KING OF HEPHER, ONE; 7# 18 THE KING OF APHEK, ONE; THE KING OF LASHARON, ONE;;4# 19 THE KING OF MADON, ONE; THE KING OF HAZOR, ONE;># 20 THE KING OF SHIMRONMERON, ONE; THE KING OF ACHSHAPH, ONE;8# 21 THE KING OF TAANACH, ONE; THE KING OF MEGIDDO, ONE;A# 22 THE KING OF KEDESH, ONE; THE KING OF JOKNEAM OF CARMEL, ONE;FI# 23 THE KING OF DOR IN THE COAST OF DOR, ONE; THE KING OF THE NATIONS OFG GILGAL, ONE;E;# 24 THE KING OF TIRZAH, ONE: ALL THE KINGS THIRTY AND ONE. = CHAPTER 13 FN# 1 NOW JOSHUA WAS OLD AND STRICKEN IN YEARS; AND THE LORD SAID UNTO HIM, THOUL ART OLD AND STRICKEN IN YEARS, AND THERE REMAINETH YET VERY MUCH LAND TO BE POSSESSED.SL# 2 THIS IS THE LAND THAT YET REMAINETH: ALL THE BORDERS OF THE PHILISTINES, AND ALL GESHURI, E# 3 FROM SIHOR, WHICH IS BEFORE EGYPT, EVEN UNTO THE BORDERS OF EKRONFM NORTHWARD, WHICH IS COUNTED TO THE CANAANITE: FIVE LORDS OF THE PHILISTINES;GM THE GAZATHITES, AND THE ASHDOTHITES, THE ESHKALONITES, THE GITTITES, AND THEH EKRONITES; ALSO THE AVITES:M# 4 FROM THE SOUTH, ALL THE LAND OF THE CANAANITES, AND MEARAH THAT IS BESIDEC: THE SIDONIANS UNTO APHEK, TO THE BORDERS OF THE AMORITES:M# 5 AND THE LAND OF THE GIBLITES, AND ALL LEBANON, TOWARD THE SUNRISING, FROMH: BAALGAD UNDER MOUNT HERMON UNTO THE ENTERING INTO HAMATH.M# 6 ALL THE INHABITANTS OF THE HILL COUNTRY FROM LEBANON UNTO MISREPHOTHMAIM, I AND ALL THE SIDONIANS, THEM WILL I DRIVE OUT FROM BEFORE THE CHILDREN OFHN ISRAEL: ONLY DIVIDE THOU IT BY LOT UNTO THE ISRAELITES FOR AN INHERITANCE, AS I HAVE COMMANDED THEE. K# 7 NOW THEREFORE DIVIDE THIS LAND FOR AN INHERITANCE UNTO THE NINE TRIBES,, AND THE HALF TRIBE OF MANASSEH,M# 8 WITH WHOM THE REUBENITES AND THE GADITES HAVE RECEIVED THEIR INHERITANCE,L WHICH MOSES GAVE THEM, BEYOND JORDAN EASTWARD, EVEN AS MOSES THE SERVANT OF THE LORD GAVE THEM;K# 9 FROM AROER, THAT IS UPON THE BANK OF THE RIVER ARNON, AND THE CITY THATRF IS IN THE MIDST OF THE RIVER, AND ALL THE PLAIN OF MEDEBA UNTO DIBON;G# 10 AND00d-,<%X>%+%O-%TADATADATA ALL THE CITIES OF SIHON KING OF THE AMORITES, WHICH REIGNED IN 3 HESHBON, UNTO THE BORDER OF THE CHILDREN OF AMMON;NK# 11 AND GILEAD, AND THE BORDER OF THE GESHURITES AND MAACHATHITES, AND ALLB* MOUNT HERMON, AND ALL BASHAN UNTO SALCAH;G# 12 ALL THE KINGDOM OF OG IN BASHAN, WHICH REIGNED IN ASHTAROTH AND INEM EDREI, WHO REMAINED OF THE REMNANT OF THE GIANTS: FOR THESE DID MOSES SMITE,F AND CAST THEM OUT. M# 13 NEVERTHELESS THE CHILDREN OF ISRAEL EXPELLED NOT THE GESHURITES, NOR THE F MAACHATHITES: BUT THE GESHURITES AND THE MAACHATHITES DWELL AMONG THE ISRAELITES UNTIL THIS DAY.BM# 14 ONLY UNTO THE TRIBES OF LEVI HE GAVE NONE INHERITANCE; THE SACRIFICES OFIK THE LORD GOD OF ISRAEL MADE BY FIRE ARE THEIR INHERITANCE, AS HE SAID UNTO  THEM.H# 15 AND MOSES GAVE UNTO THE TRIBE OF THE CHILDREN OF REUBEN INHERITANCE ACCORDING TO THEIR FAMILIES.EL# 16 AND THEIR COAST WAS FROM AROER, THAT IS ON THE BANK OF THE RIVER ARNON,M AND THE CITY THAT IS IN THE MIDST OF THE RIVER, AND ALL THE PLAIN BY MEDEBA;TB# 17 HESHBON, AND ALL HER CITIES THAT ARE IN THE PLAIN; DIBON, AND BAMOTHBAAL, AND BETHBAALMEON,,# 18 AND JAHAZA, AND KEDEMOTH, AND MEPHAATH,M# 19 AND KIRJATHAIM, AND SIBMAH, AND ZARETHSHAHAR IN THE MOUNT OF THE VALLEY,S8# 20 AND BETHPEOR, AND ASHDOTHPISGAH, AND BETHJESHIMOTH,J# 21 AND ALL THE CITIES OF THE PLAIN, AND ALL THE KINGDOM OF SIHON KING OFM THE AMORITES, WHICH REIGNED IN HESHBON, WHOM MOSES SMOTE WITH THE PRINCES OFTH MIDIAN, EVI, AND REKEM, AND ZUR, AND HUR, AND REBA, WHICH WERE DUKES OF SIHON, DWELLING IN THE COUNTRY.L# 22 BALAAM ALSO THE SON OF BEOR, THE SOOTHSAYER, DID THE CHILDREN OF ISRAEL8 SLAY WITH THE SWORD AMONG THEM THAT WERE SLAIN BY THEM.H# 23 AND THE BORDER OF THE CHILDREN OF REUBEN WAS JORDAN, AND THE BORDERH THEREOF. THIS WAS THE INHERITANCE OF THE CHILDREN OF REUBEN AFTER THEIR/ FAMILIES, THE CITIES AND THE VILLAGES THEREOF.OM# 24 AND MOSES GAVE INHERITANCE UNTO THE TRIBE OF GAD, EVEN UNTO THE CHILDREN,$ OF GAD ACCORDING TO THEIR FAMILIES.J# 25 AND THEIR COAST WAS JAZER, AND ALL THE CITIES OF GILEAD, AND HALF THEA LAND OF THE CHILDREN OF AMMON, UNTO AROER THAT IS BEFORE RABBAH;AL# 26 AND FROM HESHBON UNTO RAMATHMIZPEH, AND BETONIM; AND FROM MAHANAIM UNTO THE BORDER OF DEBIR;AJ# 27 AND IN THE VALLEY, BETHARAM, AND BETHNIMRAH, AND SUCCOTH, AND ZAPHON,N THE REST OF THE KINGDOM OF SIHON KING OF HESHBON, JORDAN AND HIS BORDER, EVENJ UNTO THE EDGE OF THE SEA OF CHINNERETH ON THE OTHER SIDE JORDAN EASTWARD.M# 28 THIS IS THE INHERITANCE OF THE CHILDREN OF GAD AFTER THEIR FAMILIES, THE  CITIES, AND THEIR VILLAGES.M# 29 AND MOSES GAVE INHERITANCE UNTO THE HALF TRIBE OF MANASSEH: AND THIS WASFF THE POSSESSION OF THE HALF TRIBE OF THE CHILDREN OF MANASSEH BY THEIR FAMILIES.I# 30 AND THEIR COAST WAS FROM MAHANAIM, ALL BASHAN, ALL THE KINGDOM OF OGZK KING OF BASHAN, AND ALL THE TOWNS OF JAIR, WHICH ARE IN BASHAN, THREESCORED CITIES:K# 31 AND HALF GILEAD, AND ASHTAROTH, AND EDREI, CITIES OF THE KINGDOM OF OG L IN BASHAN, WERE PERTAINING UNTO THE CHILDREN OF MACHIR THE SON OF MANASSEH,B EVEN TO THE ONE HALF OF THE CHILDREN OF MACHIR BY THEIR FAMILIES.J# 32 THESE ARE THE COUNTRIES WHICH MOSES DID DISTRIBUTE FOR INHERITANCE IND THE PLAINS OF MOAB, ON THE OTHER SIDE JORDAN, BY JERICHO, EASTWARD.L# 33 BUT UNTO THE TRIBE OF LEVI MOSES GAVE NOT ANY INHERITANCE: THE LORD GOD7 OF ISRAEL WAS THEIR INHERITANCE, AS HE SAID UNTO THEM.C = CHAPTER 14 DM# 1 AND THESE ARE THE COUNTRIES WHICH THE CHILDREN OF ISRAEL INHERITED IN THENM LAND OF CANAAN, WHICH ELEAZAR THE PRIEST, AND JOSHUA THE SON OF NUN, AND THEEN HEADS OF THE FATHERS OF THE TRIBES OF THE CHILDREN OF ISRAEL, DISTRIBUTED FOR INHERITANCE TO THEM.SM# 2 BY LOT WAS THEIR INHERITANCE, AS THE LORD COMMANDED BY THE HAND OF MOSES,E- FOR THE NINE TRIBES, AND FOR THE HALF TRIBE.VJ# 3 FOR MOSES HAD GIVEN THE INHERITANCE OF TWO TRIBES AND AN HALF TRIBE ONK THE OTHER SIDE JORDAN: BUT UNTO THE LEVITES HE GAVE NONE INHERITANCE AMONG  THEM.E# 4 FOR THE CHILDREN OF JOSEPH WERE TWO TRIBES, MANASSEH AND EPHRAIM:TI T00d-)D%5%T6%! !HEREFORE THEY GAVE NO PART UNTO THE LEVITES IN THE LAND, SAVE CITIES TOEG DWELL IN, WITH THEIR SUBURBS FOR THEIR CATTLE AND FOR THEIR SUBSTANCE.SH# 5 AS THE LORD COMMANDED MOSES, SO THE CHILDREN OF ISRAEL DID, AND THEY DIVIDED THE LAND.L# 6 THEN THE CHILDREN OF JUDAH CAME UNTO JOSHUA IN GILGAL: AND CALEB THE SONN OF JEPHUNNEH THE KENEZITE SAID UNTO HIM, THOU KNOWEST THE THING THAT THE LORDG SAID UNTO MOSES THE MAN OF GOD CONCERNING ME AND THEE IN KADESHBARNEA.RI# 7 FORTY YEARS OLD WAS I WHEN MOSES THE SERVANT OF THE LORD SENT ME FROM M KADESHBARNEA TO ESPY OUT THE LAND; AND I BROUGHT HIM WORD AGAIN AS IT WAS INA MINE HEART.G# 8 NEVERTHELESS MY BRETHREN THAT WENT UP WITH ME MADE THE HEART OF THEA4 PEOPLE MELT: BUT I WHOLLY FOLLOWED THE LORD MY GOD.I# 9 AND MOSES SWARE ON THAT DAY, SAYING, SURELY THE LAND WHEREON THY FEET M HAVE TRODDEN SHALL BE THINE INHERITANCE, AND THY CHILDRENS FOR EVER, BECAUSES+ THOU HAST WHOLLY FOLLOWED THE LORD MY GOD.AJ# 10 AND NOW, BEHOLD, THE LORD HATH KEPT ME ALIVE, AS HE SAID, THESE FORTYJ AND FIVE YEARS, EVEN SINCE THE LORD SPAKE THIS WORD UNTO MOSES, WHILE THEJ CHILDREN OF ISRAEL WANDERED IN THE WILDERNESS: AND NOW, LO, I AM THIS DAY FOURSCORE AND FIVE YEARS OLD.K# 11 AS YET I AM AS STRONG THIS DAY AS I WAS IN THE DAY THAT MOSES SENT ME:AN AS MY STRENGTH WAS THEN, EVEN SO IS MY STRENGTH NOW, FOR WAR, BOTH TO GO OUT, AND TO COME IN.M# 12 NOW THEREFORE GIVE ME THIS MOUNTAIN, WHEREOF THE LORD SPAKE IN THAT DAY; N FOR THOU HEARDEST IN THAT DAY HOW THE ANAKIMS WERE THERE, AND THAT THE CITIESJ WERE GREAT AND FENCED: IF SO BE THE LORD WILL BE WITH ME, THEN I SHALL BE* ABLE TO DRIVE THEM OUT, AS THE LORD SAID.L# 13 AND JOSHUA BLESSED HIM, AND GAVE UNTO CALEB THE SON OF JEPHUNNEH HEBRON FOR AN INHERITANCE.J# 14 HEBRON THEREFORE BECAME THE INHERITANCE OF CALEB THE SON OF JEPHUNNEHL THE KENEZITE UNTO THIS DAY, BECAUSE THAT HE WHOLLY FOLLOWED THE LORD GOD OF ISRAEL.J# 15 AND THE NAME OF HEBRON BEFORE WAS KIRJATHARBA; WHICH ARBA WAS A GREAT7 MAN AMONG THE ANAKIMS. AND THE LAND HAD REST FROM WAR.R = CHAPTER 15 CH# 1 THIS THEN WAS THE LOT OF THE TRIBE OF THE CHILDREN OF JUDAH BY THEIRM FAMILIES; EVEN TO THE BORDER OF EDOM THE WILDERNESS OF ZIN SOUTHWARD WAS THES# UTTERMOST PART OF THE SOUTH COAST.IK# 2 AND THEIR SOUTH BORDER WAS FROM THE SHORE OF THE SALT SEA, FROM THE BAYU THAT LOOKETH SOUTHWARD:L# 3 AND IT WENT OUT TO THE SOUTH SIDE TO MAALEHACRABBIM, AND PASSED ALONG TON ZIN, AND ASCENDED UP ON THE SOUTH SIDE UNTO KADESHBARNEA, AND PASSED ALONG TOA HEZRON, AND WENT UP TO ADAR, AND FETCHED A COMPASS TO KARKAA: ITSM# 4 FROM THENCE IT PASSED TOWARD AZMON, AND WENT OUT UNTO THE RIVER OF EGYPT;EK AND THE GOINGS OUT OF THAT COAST WERE AT THE SEA: THIS SHALL BE YOUR SOUTHP COAST.EJ# 5 AND THE EAST BORDER WAS THE SALT SEA, EVEN UNTO THE END OF JORDAN. ANDE THEIR BORDER IN THE NORTH QUARTER WAS FROM THE BAY OF THE SEA AT THES UTTERMOST PART OF JORDAN:I# 6 AND THE BORDER WENT UP TO BETHHOGLA, AND PASSED ALONG BY THE NORTH OFRL BETHARABAH; AND THE BORDER WENT UP TO THE STONE OF BOHAN THE SON OF REUBEN:H# 7 AND THE BORDER WENT UP TOWARD DEBIR FROM THE VALLEY OF ACHOR, AND SOJ NORTHWARD, LOOKING TOWARD GILGAL, THAT IS BEFORE THE GOING UP TO ADUMMIM,J WHICH IS ON THE SOUTH SIDE OF THE RIVER: AND THE BORDER PASSED TOWARD THEA WATERS OF ENSHEMESH, AND THE GOINGS OUT THEREOF WERE AT ENROGEL:RL# 8 AND THE BORDER WENT UP BY THE VALLEY OF THE SON OF HINNOM UNTO THE SOUTHK SIDE OF THE JEBUSITE; THE SAME IS JERUSALEM: AND THE BORDER WENT UP TO THEAN TOP OF THE MOUNTAIN THAT LIETH BEFORE THE VALLEY OF HINNOM WESTWARD, WHICH IS2 AT THE END OF THE VALLEY OF THE GIANTS NORTHWARD:J# 9 AND THE BORDER WAS DRAWN FROM THE TOP OF THE HILL UNTO THE FOUNTAIN OFK THE WATER OF NEPHTOAH, AND WENT OUT TO THE CITIES OF MOUNT EPHRON; AND THET4 BORDER WAS DRAWN TO BAALAH, WHICH IS KIRJATHJEARIM:G# 10 AND THE BORDER COMPASSED FROM BAALAH WESTWARD UNTO MOUNT SEIR, ANDHL PASSED ALONG UNTO THE SIDE OF MOUNT JEARIM, WHICH IS CHESALON, ON THE NORTH= SIDE, AND WENT DOWN TO BETHSH00d-,<%X>%+%O-%TADATADATAEMESH, AND PASSED ON TO TIMNAH:EM# 11 AND THE BORDER WENT OUT UNTO THE SIDE OF EKRON NORTHWARD: AND THE BORDEROJ WAS DRAWN TO SHICRON, AND PASSED ALONG TO MOUNT BAALAH, AND WENT OUT UNTO; JABNEEL; AND THE GOINGS OUT OF THE BORDER WERE AT THE SEA.OM# 12 AND THE WEST BORDER WAS TO THE GREAT SEA, AND THE COAST THEREOF. THIS ISL THE COAST OF THE CHILDREN OF JUDAH ROUND ABOUT ACCORDING TO THEIR FAMILIES.M# 13 AND UNTO CALEB THE SON OF JEPHUNNEH HE GAVE A PART AMONG THE CHILDREN OF,L JUDAH, ACCORDING TO THE COMMANDMENT OF THE LORD TO JOSHUA, EVEN THE CITY OF/ ARBA THE FATHER OF ANAK, WHICH CITY IS HEBRON.EL# 14 AND CALEB DROVE THENCE THE THREE SONS OF ANAK, SHESHAI, AND AHIMAN, AND TALMAI, THE CHILDREN OF ANAK.M# 15 AND HE WENT UP THENCE TO THE INHABITANTS OF DEBIR: AND THE NAME OF DEBIR  BEFORE WAS KIRJATHSEPHER.I# 16 AND CALEB SAID, HE THAT SMITETH KIRJATHSEPHER, AND TAKETH IT, TO HIMR( WILL I GIVE ACHSAH MY DAUGHTER TO WIFE.M# 17 AND OTHNIEL THE SON OF KENAZ, THE BROTHER OF CALEB, TOOK IT: AND HE GAVEA! HIM ACHSAH HIS DAUGHTER TO WIFE.TL# 18 AND IT CAME TO PASS, AS SHE CAME UNTO HIM, THAT SHE MOVED HIM TO ASK OFJ HER FATHER A FIELD: AND SHE LIGHTED OFF HER ASS; AND CALEB SAID UNTO HER, WHAT WOULDEST THOU?K# 19 WHO ANSWERED, GIVE ME A BLESSING; FOR THOU HAST GIVEN ME A SOUTH LAND;BJ GIVE ME ALSO SPRINGS OF WATER. AND HE GAVE HER THE UPPER SPRINGS, AND THE NETHER SPRINGS.L# 20 THIS IS THE INHERITANCE OF THE TRIBE OF THE CHILDREN OF JUDAH ACCORDING TO THEIR FAMILIES. J# 21 AND THE UTTERMOST CITIES OF THE TRIBE OF THE CHILDREN OF JUDAH TOWARD? THE COAST OF EDOM SOUTHWARD WERE KABZEEL, AND EDER, AND JAGUR,F(# 22 AND KINAH, AND DIMONAH, AND ADADAH,'# 23 AND KEDESH, AND HAZOR, AND ITHNAN, "# 24 ZIPH, AND TELEM, AND BEALOTH,B# 25 AND HAZOR, HADATTAH, AND KERIOTH, AND HEZRON, WHICH IS HAZOR,"# 26 AMAM, AND SHEMA, AND MOLADAH,1# 27 AND HAZARGADDAH, AND HESHMON, AND BETHPALET,03# 28 AND HAZARSHUAL, AND BEERSHEBA, AND BIZJOTHJAH, # 29 BAALAH, AND IIM, AND AZEM,I)# 30 AND ELTOLAD, AND CHESIL, AND HORMAH,E.# 31 AND ZIKLAG, AND MADMANNAH, AND SANSANNAH,M# 32 AND LEBAOTH, AND SHILHIM, AND AIN, AND RIMMON: ALL THE CITIES ARE TWENTYI AND NINE, WITH THEIR VILLAGES:S8# 33 AND IN THE VALLEY, ESHTAOL, AND ZOREAH, AND ASHNAH,1# 34 AND ZANOAH, AND ENGANNIM, TAPPUAH, AND ENAM,Z-# 35 JARMUTH, AND ADULLAM, SOCOH, AND AZEKAH, M# 36 AND SHARAIM, AND ADITHAIM, AND GEDERAH, AND GEDEROTHAIM; FOURTEEN CITIESA WITH THEIR VILLAGES:I(# 37 ZENAN, AND HADASHAH, AND MIGDALGAD,*# 38 AND DILEAN, AND MIZPEH, AND JOKTHEEL,%# 39 LACHISH, AND BOZKATH, AND EGLON, *# 40 AND CABBON, AND LAHMAM, AND KITHLISH,K# 41 AND GEDEROTH, BETHDAGON, AND NAAMAH, AND MAKKEDAH; SIXTEEN CITIES WITHS THEIR VILLAGES:"# 42 LIBNAH, AND ETHER, AND ASHAN,(# 43 AND JIPHTAH, AND ASHNAH, AND NEZIB,K# 44 AND KEILAH, AND ACHZIB, AND MARESHAH; NINE CITIES WITH THEIR VILLAGES:A,# 45 EKRON, WITH HER TOWNS AND HER VILLAGES:G# 46 FROM EKRON EVEN UNTO THE SEA, ALL THAT LAY NEAR ASHDOD, WITH THEIRN VILLAGES:H# 47 ASHDOD WITH HER TOWNS AND HER VILLAGES, GAZA WITH HER TOWNS AND HERN VILLAGES, UNTO THE RIVER OF EGYPT, AND THE GREAT SEA, AND THE BORDER THEREOF:9# 48 AND IN THE MOUNTAINS, SHAMIR, AND JATTIR, AND SOCOH,R3# 49 AND DANNAH, AND KIRJATHSANNAH, WHICH IS DEBIR,A&# 50 AND ANAB, AND ESHTEMOH, AND ANIM,I# 51 AND GOSHEN, AND HOLON, AND GILOH; ELEVEN CITIES WITH THEIR VILLAGES: !# 52 ARAB, AND DUMAH, AND ESHEAN,L-# 53 AND JANUM, AND BETHTAPPUAH, AND APHEKAH,TM# 54 AND HUMTAH, AND KIRJATHARBA, WHICH IS HEBRON, AND ZIOR; NINE CITIES WITHR THEIR VILLAGES:(# 55 MAON, CARMEL, AND ZIPH, AND JUTTAH,*# 56 AND JEZREEL, AND JOKDEAM, AND ZANOAH,># 57 CAIN, GIBEAH, AND TIMNAH; TEN CITIES WITH THEIR VILLAGES: # 58 HALHUL, BETHZUR, AND GEDOR,M# 59 AND MAARATH, AND BETHANOTH, AND ELTEKON; SIX CITIES WITH THEIR VILLAGES:DK# 60 KIRJATHBAAL, WHICH IS KIRJATHJEARIM, AND RABBAH; TWO CITIES WITH THEIR, VILLAGES:8# 61 IN THE WILDERNESS, BETHARABAH, MIDDIN, AND SECACAH,I# 62 AND NIBSHAN, AND THE CITY OF SALT, AND ENGEDI; SIX CITIES WITH THEI00d -)D%5%T6%! !RS VILLAGES.M# 63 AS FOR THE JEBUSITES THE INHABITANTS OF JERUSALEM, THE CHILDREN OF JUDAHOM COULD NOT DRIVE THEM OUT; BUT THE JEBUSITES DWELL WITH THE CHILDREN OF JUDAHE AT JERUSALEM UNTO THIS DAY. = CHAPTER 16 DK# 1 AND THE LOT OF THE CHILDREN OF JOSEPH FELL FROM JORDAN BY JERICHO, UNTOKG THE WATER OF JERICHO ON THE EAST, TO THE WILDERNESS THAT GOETH UP FROMV! JERICHO THROUGHOUT MOUNT BETHEL,EK# 2 AND GOETH OUT FROM BETHEL TO LUZ, AND PASSETH ALONG UNTO THE BORDERS OFN ARCHI TO ATAROTH,G# 3 AND GOETH DOWN WESTWARD TO THE COAST OF JAPHLETI, UNTO THE COAST OFLJ BETHHORON THE NETHER, AND TO GEZER; AND THE GOINGS OUT THEREOF ARE AT THE SEA. L# 4 SO THE CHILDREN OF JOSEPH, MANASSEH AND EPHRAIM, TOOK THEIR INHERITANCE.M# 5 AND THE BORDER OF THE CHILDREN OF EPHRAIM ACCORDING TO THEIR FAMILIES WASRN THUS: EVEN THE BORDER OF THEIR INHERITANCE ON THE EAST SIDE WAS ATAROTHADDAR, UNTO BETHHORON THE UPPER;K# 6 AND THE BORDER WENT OUT TOWARD THE SEA TO MICHMETHAH ON THE NORTH SIDE;TK AND THE BORDER WENT ABOUT EASTWARD UNTO TAANATHSHILOH, AND PASSED BY IT ONA THE EAST TO JANOHAH;NI# 7 AND IT WENT DOWN FROM JANOHAH TO ATAROTH, AND TO NAARATH, AND CAME TOT! JERICHO, AND WENT OUT AT JORDAN. K# 8 THE BORDER WENT OUT FROM TAPPUAH WESTWARD UNTO THE RIVER KANAH; AND THEIL GOINGS OUT THEREOF WERE AT THE SEA. THIS IS THE INHERITANCE OF THE TRIBE OF+ THE CHILDREN OF EPHRAIM BY THEIR FAMILIES.EF# 9 AND THE SEPARATE CITIES FOR THE CHILDREN OF EPHRAIM WERE AMONG THEM INHERITANCE OF THE CHILDREN OF MANASSEH, ALL THE CITIES WITH THEIR VILLAGES.HG# 10 AND THEY DRAVE NOT OUT THE CANAANITES THAT DWELT IN GEZER: BUT THE F CANAANITES DWELL AMONG THE EPHRAIMITES UNTO THIS DAY, AND SERVE UNDER TRIBUTE. = CHAPTER 17 RL# 1 THERE WAS ALSO A LOT FOR THE TRIBE OF MANASSEH; FOR HE WAS THE FIRSTBORNG OF JOSEPH; TO WIT, FOR MACHIR THE FIRSTBORN OF MANASSEH, THE FATHER OFDI GILEAD: BECAUSE HE WAS A MAN OF WAR, THEREFORE HE HAD GILEAD AND BASHAN.LJ# 2 THERE WAS ALSO A LOT FOR THE REST OF THE CHILDREN OF MANASSEH BY THEIRN FAMILIES; FOR THE CHILDREN OF ABIEZER, AND FOR THE CHILDREN OF HELEK, AND FORN THE CHILDREN OF ASRIEL, AND FOR THE CHILDREN OF SHECHEM, AND FOR THE CHILDRENL OF HEPHER, AND FOR THE CHILDREN OF SHEMIDA: THESE WERE THE MALE CHILDREN OF. MANASSEH THE SON OF JOSEPH BY THEIR FAMILIES.L# 3 BUT ZELOPHEHAD, THE SON OF HEPHER, THE SON OF GILEAD, THE SON OF MACHIR,L THE SON OF MANASSEH, HAD NO SONS, BUT DAUGHTERS: AND THESE ARE THE NAMES OF= HIS DAUGHTERS, MAHLAH, AND NOAH, HOGLAH, MILCAH, AND TIRZAH.YK# 4 AND THEY CAME NEAR BEFORE ELEAZAR THE PRIEST, AND BEFORE JOSHUA THE SON,L OF NUN, AND BEFORE THE PRINCES, SAYING, THE LORD COMMANDED MOSES TO GIVE USM AN INHERITANCE AMONG OUR BRETHREN. THEREFORE ACCORDING TO THE COMMANDMENT OFII THE LORD HE GAVE THEM AN INHERITANCE AMONG THE BRETHREN OF THEIR FATHER.DJ# 5 AND THERE FELL TEN PORTIONS TO MANASSEH, BESIDE THE LAND OF GILEAD AND- BASHAN, WHICH WERE ON THE OTHER SIDE JORDAN; L# 6 BECAUSE THE DAUGHTERS OF MANASSEH HAD AN INHERITANCE AMONG HIS SONS: AND3 THE REST OF MANASSEHS SONS HAD THE LAND OF GILEAD. M# 7 AND THE COAST OF MANASSEH WAS FROM ASHER TO MICHMETHAH, THAT LIETH BEFORENM SHECHEM; AND THE BORDER WENT ALONG ON THE RIGHT HAND UNTO THE INHABITANTS OFO ENTAPPUAH.EF# 8 NOW MANASSEH HAD THE LAND OF TAPPUAH: BUT TAPPUAH ON THE BORDER OF. MANASSEH BELONGED TO THE CHILDREN OF EPHRAIM;I# 9 AND THE COAST DESCENDED UNTO THE RIVER KANAH, SOUTHWARD OF THE RIVER:DG THESE CITIES OF EPHRAIM ARE AMONG THE CITIES OF MANASSEH: THE COAST OFGJ MANASSEH ALSO WAS ON THE NORTH SIDE OF THE RIVER, AND THE OUTGOINGS OF IT WERE AT THE SEA:SK# 10 SOUTHWARD IT WAS EPHRAIMS, AND NORTHWARD IT WAS MANASSEHS, AND THE SEARL IS HIS BORDER; AND THEY MET TOGETHER IN ASHER ON THE NORTH, AND IN ISSACHAR ON THE EAST.EK# 11 AND MANASSEH HAD IN ISSACHAR AND IN ASHER BETHSHEAN AND HER TOWNS, ANDLH IBLEAM AND HER TOWNS, AND THE INHABITANTS OF DOR AND HER TOWNS, AND THEK INHABITANTS OF ENDOR AND HER TOWNS, AND THE INHABITANTS OF TAANACH AND HER:K TOWNS, AND THE INHABITA00d(-,<%X>%+%O-%TADATADATANTS OF MEGIDDO AND HER TOWNS, EVEN THREE COUNTRIES.TH# 12 YET THE CHILDREN OF MANASSEH COULD NOT DRIVE OUT THE INHABITANTS OF; THOSE CITIES; BUT THE CANAANITES WOULD DWELL IN THAT LAND.YM# 13 YET IT CAME TO PASS, WHEN THE CHILDREN OF ISRAEL WERE WAXEN STRONG, THATMH THEY PUT THE CANAANITES TO TRIBUTE, BUT DID NOT UTTERLY DRIVE THEM OUT.H# 14 AND THE CHILDREN OF JOSEPH SPAKE UNTO JOSHUA, SAYING, WHY HAST THOUM GIVEN ME BUT ONE LOT AND ONE PORTION TO INHERIT, SEEING I AM A GREAT PEOPLE, 0 FORASMUCH AS THE LORD HATH BLESSED ME HITHERTO?M# 15 AND JOSHUA ANSWERED THEM, IF THOU BE A GREAT PEOPLE, THEN GET THEE UP TOND THE WOOD COUNTRY, AND CUT DOWN FOR THYSELF THERE IN THE LAND OF THEG PERIZZITES AND OF THE GIANTS, IF MOUNT EPHRAIM BE TOO NARROW FOR THEE.RL# 16 AND THE CHILDREN OF JOSEPH SAID, THE HILL IS NOT ENOUGH FOR US: AND ALLK THE CANAANITES THAT DWELL IN THE LAND OF THE VALLEY HAVE CHARIOTS OF IRON,HM BOTH THEY WHO ARE OF BETHSHEAN AND HER TOWNS, AND THEY WHO ARE OF THE VALLEYE OF JEZREEL.F# 17 AND JOSHUA SPAKE UNTO THE HOUSE OF JOSEPH, EVEN TO EPHRAIM AND TOL MANASSEH, SAYING, THOU ART A GREAT PEOPLE, AND HAST GREAT POWER: THOU SHALT NOT HAVE ONE LOT ONLY:EM# 18 BUT THE MOUNTAIN SHALL BE THINE; FOR IT IS A WOOD, AND THOU SHALT CUT IT K DOWN: AND THE OUTGOINGS OF IT SHALL BE THINE: FOR THOU SHALT DRIVE OUT THEAG CANAANITES, THOUGH THEY HAVE IRON CHARIOTS, AND THOUGH THEY BE STRONG.S = CHAPTER 18 TN# 1 AND THE WHOLE CONGREGATION OF THE CHILDREN OF ISRAEL ASSEMBLED TOGETHER ATN SHILOH, AND SET UP THE TABERNACLE OF THE CONGREGATION THERE. AND THE LAND WAS SUBDUED BEFORE THEM.OK# 2 AND THERE REMAINED AMONG THE CHILDREN OF ISRAEL SEVEN TRIBES, WHICH HADY$ NOT YET RECEIVED THEIR INHERITANCE.L# 3 AND JOSHUA SAID UNTO THE CHILDREN OF ISRAEL, HOW LONG ARE YE SLACK TO GOH TO POSSESS THE LAND, WHICH THE LORD GOD OF YOUR FATHERS HATH GIVEN YOU?K# 4 GIVE OUT FROM AMONG YOU THREE MEN FOR EACH TRIBE: AND I WILL SEND THEM,LK AND THEY SHALL RISE, AND GO THROUGH THE LAND, AND DESCRIBE IT ACCORDING TOS: THE INHERITANCE OF THEM; AND THEY SHALL COME AGAIN TO ME.I# 5 AND THEY SHALL DIVIDE IT INTO SEVEN PARTS: JUDAH SHALL ABIDE IN THEIRIK COAST ON THE SOUTH, AND THE HOUSE OF JOSEPH SHALL ABIDE IN THEIR COASTS ON THE NORTH.NH# 6 YE SHALL THEREFORE DESCRIBE THE LAND INTO SEVEN PARTS, AND BRING THEL DESCRIPTION HITHER TO ME, THAT I MAY CAST LOTS FOR YOU HERE BEFORE THE LORD OUR GOD. M# 7 BUT THE LEVITES HAVE NO PART AMONG YOU; FOR THE PRIESTHOOD OF THE LORD ISHM THEIR INHERITANCE: AND GAD, AND REUBEN, AND HALF THE TRIBE OF MANASSEH, HAVEAN RECEIVED THEIR INHERITANCE BEYOND JORDAN ON THE EAST, WHICH MOSES THE SERVANT OF THE LORD GAVE THEM.OJ# 8 AND THE MEN AROSE, AND WENT AWAY: AND JOSHUA CHARGED THEM THAT WENT TON DESCRIBE THE LAND, SAYING, GO AND WALK THROUGH THE LAND, AND DESCRIBE IT, ANDG COME AGAIN TO ME, THAT I MAY HERE CAST LOTS FOR YOU BEFORE THE LORD IN  SHILOH.L# 9 AND THE MEN WENT AND PASSED THROUGH THE LAND, AND DESCRIBED IT BY CITIESL INTO SEVEN PARTS IN A BOOK, AND CAME AGAIN TO JOSHUA TO THE HOST AT SHILOH.G# 10 AND JOSHUA CAST LOTS FOR THEM IN SHILOH BEFORE THE LORD: AND THEREMG JOSHUA DIVIDED THE LAND UNTO THE CHILDREN OF ISRAEL ACCORDING TO THEIRN DIVISIONS.OK# 11 AND THE LOT OF THE TRIBE OF THE CHILDREN OF BENJAMIN CAME UP ACCORDINGGN TO THEIR FAMILIES: AND THE COAST OF THEIR LOT CAME FORTH BETWEEN THE CHILDREN% OF JUDAH AND THE CHILDREN OF JOSEPH. L# 12 AND THEIR BORDER ON THE NORTH SIDE WAS FROM JORDAN; AND THE BORDER WENTE UP TO THE SIDE OF JERICHO ON THE NORTH SIDE, AND WENT UP THROUGH THEOI MOUNTAINS WESTWARD; AND THE GOINGS OUT THEREOF WERE AT THE WILDERNESS OFM BETHAVEN.I# 13 AND THE BORDER WENT OVER FROM THENCE TOWARD LUZ, TO THE SIDE OF LUZ,ON WHICH IS BETHEL, SOUTHWARD; AND THE BORDER DESCENDED TO ATAROTHADAR, NEAR THE; HILL THAT LIETH ON THE SOUTH SIDE OF THE NETHER BETHHORON.WI# 14 AND THE BORDER WAS DRAWN THENCE, AND COMPASSED THE CORNER OF THE SEARH SOUTHWARD, FROM THE HILL THAT LIETH BEFORE BETHHORON SOUTHWARD; AND THEN GOINGS OUT THEREOF WE00d0-)D%5%T6%! !RE AT KIRJATHBAAL, WHICH IS KIRJATHJEARIM, A CITY OF THE. CHILDREN OF JUDAH: THIS WAS THE WEST QUARTER.L# 15 AND THE SOUTH QUARTER WAS FROM THE END OF KIRJATHJEARIM, AND THE BORDERF WENT OUT ON THE WEST, AND WENT OUT TO THE WELL OF WATERS OF NEPHTOAH:J# 16 AND THE BORDER CAME DOWN TO THE END OF THE MOUNTAIN THAT LIETH BEFOREM THE VALLEY OF THE SON OF HINNOM, AND WHICH IS IN THE VALLEY OF THE GIANTS ON K THE NORTH, AND DESCENDED TO THE VALLEY OF HINNOM, TO THE SIDE OF JEBUSI ONE% THE SOUTH, AND DESCENDED TO ENROGEL,AH# 17 AND WAS DRAWN FROM THE NORTH, AND WENT FORTH TO ENSHEMESH, AND WENTJ FORTH TOWARD GELILOTH, WHICH IS OVER AGAINST THE GOING UP OF ADUMMIM, AND3 DESCENDED TO THE STONE OF BOHAN THE SON OF REUBEN, M# 18 AND PASSED ALONG TOWARD THE SIDE OVER AGAINST ARABAH NORTHWARD, AND WENT  DOWN UNTO ARABAH:M# 19 AND THE BORDER PASSED ALONG TO THE SIDE OF BETHHOGLAH NORTHWARD: AND THE K OUTGOINGS OF THE BORDER WERE AT THE NORTH BAY OF THE SALT SEA AT THE SOUTH ) END OF JORDAN: THIS WAS THE SOUTH COAST.RC# 20 AND JORDAN WAS THE BORDER OF IT ON THE EAST SIDE. THIS WAS THEHL INHERITANCE OF THE CHILDREN OF BENJAMIN, BY THE COASTS THEREOF ROUND ABOUT, ACCORDING TO THEIR FAMILIES.NI# 21 NOW THE CITIES OF THE TRIBE OF THE CHILDREN OF BENJAMIN ACCORDING TOAF THEIR FAMILIES WERE JERICHO, AND BETHHOGLAH, AND THE VALLEY OF KEZIZ,.# 22 AND BETHARABAH, AND ZEMARAIM, AND BETHEL,&# 23 AND AVIM, AND PHARAH, AND OPHRAH,H# 24 AND CHEPHARHAAMMONAI, AND OPHNI, AND GABA; TWELVE CITIES WITH THEIR VILLAGES:$# 25 GIBEON, AND RAMAH, AND BEEROTH,*# 26 AND MIZPEH, AND CHEPHIRAH, AND MOZAH,(# 27 AND REKEM, AND IRPEEL, AND TARALAH,L# 28 AND ZELAH, ELEPH, AND JEBUSI, WHICH IS JERUSALEM, GIBEATH, AND KIRJATH;M FOURTEEN CITIES WITH THEIR VILLAGES. THIS IS THE INHERITANCE OF THE CHILDRENE) OF BENJAMIN ACCORDING TO THEIR FAMILIES.L = CHAPTER 19 F# 1 AND THE SECOND LOT CAME FORTH TO SIMEON, EVEN FOR THE TRIBE OF THEJ CHILDREN OF SIMEON ACCORDING TO THEIR FAMILIES: AND THEIR INHERITANCE WAS1 WITHIN THE INHERITANCE OF THE CHILDREN OF JUDAH. H# 2 AND THEY HAD IN THEIR INHERITANCE BEERSHEBA, AND SHEBA, AND MOLADAH,(# 3 AND HAZARSHUAL, AND BALAH, AND AZEM,(# 4 AND ELTOLAD, AND BETHUL, AND HORMAH,2# 5 AND ZIKLAG, AND BETHMARCABOTH, AND HAZARSUSAH,F# 6 AND BETHLEBAOTH, AND SHARUHEN; THIRTEEN CITIES AND THEIR VILLAGES:F# 7 AIN, REMMON, AND ETHER, AND ASHAN; FOUR CITIES AND THEIR VILLAGES:K# 8 AND ALL THE VILLAGES THAT WERE ROUND ABOUT THESE CITIES TO BAALATHBEER,EM RAMATH OF THE SOUTH. THIS IS THE INHERITANCE OF THE TRIBE OF THE CHILDREN OF $ SIMEON ACCORDING TO THEIR FAMILIES.J# 9 OUT OF THE PORTION OF THE CHILDREN OF JUDAH WAS THE INHERITANCE OF THEK CHILDREN OF SIMEON: FOR THE PART OF THE CHILDREN OF JUDAH WAS TOO MUCH FORTH THEM: THEREFORE THE CHILDREN OF SIMEON HAD THEIR INHERITANCE WITHIN THE INHERITANCE OF THEM.IM# 10 AND THE THIRD LOT CAME UP FOR THE CHILDREN OF ZEBULUN ACCORDING TO THEIRH> FAMILIES: AND THE BORDER OF THEIR INHERITANCE WAS UNTO SARID:I# 11 AND THEIR BORDER WENT UP TOWARD THE SEA, AND MARALAH, AND REACHED TOO= DABBASHETH, AND REACHED TO THE RIVER THAT IS BEFORE JOKNEAM;NK# 12 AND TURNED FROM SARID EASTWARD TOWARD THE SUNRISING UNTO THE BORDER OFRG CHISLOTHTABOR, AND THEN GOETH OUT TO DABERATH, AND GOETH UP TO JAPHIA,EE# 13 AND FROM THENCE PASSETH ON ALONG ON THE EAST TO GITTAHHEPHER, TOH4 ITTAHKAZIN, AND GOETH OUT TO REMMONMETHOAR TO NEAH;I# 14 AND THE BORDER COMPASSETH IT ON THE NORTH SIDE TO HANNATHON: AND THEN3 OUTGOINGS THEREOF ARE IN THE VALLEY OF JIPHTHAHEL:AG# 15 AND KATTATH, AND NAHALLAL, AND SHIMRON, AND IDALAH, AND BETHLEHEM: # TWELVE CITIES WITH THEIR VILLAGES.AJ# 16 THIS IS THE INHERITANCE OF THE CHILDREN OF ZEBULUN ACCORDING TO THEIR, FAMILIES, THESE CITIES WITH THEIR VILLAGES.J# 17 AND THE FOURTH LOT CAME OUT TO ISSACHAR, FOR THE CHILDREN OF ISSACHAR ACCORDING TO THEIR FAMILIES.,E# 18 AND THEIR BORDER WAS TOWARD JEZREEL, AND CHESULLOTH, AND SHUNEM,H-# 19 AND HAPHRAIM, AND SHIHON, AND ANAHARATH,O(# 20 AND RABBITH, AND KISHION, AND ABEZ,<# 21 AND REMETH, A00d8-,<%X>%+%O-%TADATADATAND ENGANNIM, AND ENHADDAH, AND BETHPAZZEZ;J# 22 AND THE COAST REACHETH TO TABOR, AND SHAHAZIMAH, AND BETHSHEMESH; ANDH THE OUTGOINGS OF THEIR BORDER WERE AT JORDAN: SIXTEEN CITIES WITH THEIR VILLAGES.E# 23 THIS IS THE INHERITANCE OF THE TRIBE OF THE CHILDREN OF ISSACHARH< ACCORDING TO THEIR FAMILIES, THE CITIES AND THEIR VILLAGES.F# 24 AND THE FIFTH LOT CAME OUT FOR THE TRIBE OF THE CHILDREN OF ASHER ACCORDING TO THEIR FAMILIES.AE# 25 AND THEIR BORDER WAS HELKATH, AND HALI, AND BETEN, AND ACHSHAPH,DL# 26 AND ALAMMELECH, AND AMAD, AND MISHEAL; AND REACHETH TO CARMEL WESTWARD, AND TO SHIHORLIBNATH;L# 27 AND TURNETH TOWARD THE SUNRISING TO BETHDAGON, AND REACHETH TO ZEBULUN,N AND TO THE VALLEY OF JIPHTHAHEL TOWARD THE NORTH SIDE OF BETHEMEK, AND NEIEL,) AND GOETH OUT TO CABUL ON THE LEFT HAND,SI# 28 AND HEBRON, AND REHOB, AND HAMMON, AND KANAH, EVEN UNTO GREAT ZIDON;RJ# 29 AND THEN THE COAST TURNETH TO RAMAH, AND TO THE STRONG CITY TYRE; ANDN THE COAST TURNETH TO HOSAH; AND THE OUTGOINGS THEREOF ARE AT THE SEA FROM THE COAST TO ACHZIB:LG# 30 UMMAH ALSO, AND APHEK, AND REHOB: TWENTY AND TWO CITIES WITH THEIRE VILLAGES.L# 31 THIS IS THE INHERITANCE OF THE TRIBE OF THE CHILDREN OF ASHER ACCORDING5 TO THEIR FAMILIES, THESE CITIES WITH THEIR VILLAGES.AE# 32 THE SIXTH LOT CAME OUT TO THE CHILDREN OF NAPHTALI, EVEN FOR THEN2 CHILDREN OF NAPHTALI ACCORDING TO THEIR FAMILIES.I# 33 AND THEIR COAST WAS FROM HELEPH, FROM ALLON TO ZAANANNIM, AND ADAMI,CJ NEKEB, AND JABNEEL, UNTO LAKUM; AND THE OUTGOINGS THEREOF WERE AT JORDAN:K# 34 AND THEN THE COAST TURNETH WESTWARD TO AZNOTHTABOR, AND GOETH OUT FROMSM THENCE TO HUKKOK, AND REACHETH TO ZEBULUN ON THE SOUTH SIDE, AND REACHETH TODG ASHER ON THE WEST SIDE, AND TO JUDAH UPON JORDAN TOWARD THE SUNRISING.GE# 35 AND THE FENCED CITIES ARE ZIDDIM, ZER, AND HAMMATH, RAKKATH, AND CHINNERETH,&# 36 AND ADAMAH, AND RAMAH, AND HAZOR,(# 37 AND KEDESH, AND EDREI, AND ENHAZOR,L# 38 AND IRON, AND MIGDALEL, HOREM, AND BETHANATH, AND BETHSHEMESH; NINETEEN CITIES WITH THEIR VILLAGES.E# 39 THIS IS THE INHERITANCE OF THE TRIBE OF THE CHILDREN OF NAPHTALIH< ACCORDING TO THEIR FAMILIES, THE CITIES AND THEIR VILLAGES.F# 40 AND THE SEVENTH LOT CAME OUT FOR THE TRIBE OF THE CHILDREN OF DAN ACCORDING TO THEIR FAMILIES.C# 41 AND THE COAST OF THEIR INHERITANCE WAS ZORAH, AND ESHTAOL, AND IRSHEMESH,,-# 42 AND SHAALABBIN, AND AJALON, AND JETHLAH,A)# 43 AND ELON, AND THIMNATHAH, AND EKRON,D-# 44 AND ELTEKEH, AND GIBBETHON, AND BAALATH,B.# 45 AND JEHUD, AND BENEBERAK, AND GATHRIMMON,<# 46 AND MEJARKON, AND RAKKON, WITH THE BORDER BEFORE JAPHO.G# 47 AND THE COAST OF THE CHILDREN OF DAN WENT OUT TOO LITTLE FOR THEM:.L THEREFORE THE CHILDREN OF DAN WENT UP TO FIGHT AGAINST LESHEM, AND TOOK IT,N AND SMOTE IT WITH THE EDGE OF THE SWORD, AND POSSESSED IT, AND DWELT THEREIN,< AND CALLED LESHEM, DAN, AFTER THE NAME OF DAN THEIR FATHER.M# 48 THIS IS THE INHERITANCE OF THE TRIBE OF THE CHILDREN OF DAN ACCORDING TO 2 THEIR FAMILIES, THESE CITIES WITH THEIR VILLAGES.L# 49 WHEN THEY HAD MADE AN END OF DIVIDING THE LAND FOR INHERITANCE BY THEIRL COASTS, THE CHILDREN OF ISRAEL GAVE AN INHERITANCE TO JOSHUA THE SON OF NUN AMONG THEM:M# 50 ACCORDING TO THE WORD OF THE LORD THEY GAVE HIM THE CITY WHICH HE ASKED,EN EVEN TIMNATHSERAH IN MOUNT EPHRAIM: AND HE BUILT THE CITY, AND DWELT THEREIN.M# 51 THESE ARE THE INHERITANCES, WHICH ELEAZAR THE PRIEST, AND JOSHUA THE SONEN OF NUN, AND THE HEADS OF THE FATHERS OF THE TRIBES OF THE CHILDREN OF ISRAEL,L DIVIDED FOR AN INHERITANCE BY LOT IN SHILOH BEFORE THE LORD, AT THE DOOR OFH THE TABERNACLE OF THE CONGREGATION. SO THEY MADE AN END OF DIVIDING THE COUNTRY. = CHAPTER 20 ,# 1 THE LORD ALSO SPAKE UNTO JOSHUA, SAYING,J# 2 SPEAK TO THE CHILDREN OF ISRAEL, SAYING, APPOINT OUT FOR YOU CITIES OF7 REFUGE, WHEREOF I SPAKE UNTO YOU BY THE HAND OF MOSES:TM# 3 THAT THE SLAYER THAT KILLETH ANY PERSON UNAWARES AND UNWITTINGLY MAY FLEEUB THITHER: AND THEY SHALL BE YOUR REFUGE FROM THE AVENGER OF BLOOD.J# 4 AND WHEN HE THAT DOT00d@-)D%5%T6%! !H FLEE UNTO ONE OF THOSE CITIES SHALL STAND AT THEM ENTERING OF THE GATE OF THE CITY, AND SHALL DECLARE HIS CAUSE IN THE EARS OFEJ THE ELDERS OF THAT CITY, THEY SHALL TAKE HIM INTO THE CITY UNTO THEM, AND0 GIVE HIM A PLACE, THAT HE MAY DWELL AMONG THEM.M# 5 AND IF THE AVENGER OF BLOOD PURSUE AFTER HIM, THEN THEY SHALL NOT DELIVERSM THE SLAYER UP INTO HIS HAND; BECAUSE HE SMOTE HIS NEIGHBOUR UNWITTINGLY, ANDE HATED HIM NOT BEFORETIME.K# 6 AND HE SHALL DWELL IN THAT CITY, UNTIL HE STAND BEFORE THE CONGREGATIONTL FOR JUDGMENT, AND UNTIL THE DEATH OF THE HIGH PRIEST THAT SHALL BE IN THOSEM DAYS: THEN SHALL THE SLAYER RETURN, AND COME UNTO HIS OWN CITY, AND UNTO HISL. OWN HOUSE, UNTO THE CITY FROM WHENCE HE FLED.J# 7 AND THEY APPOINTED KEDESH IN GALILEE IN MOUNT NAPHTALI, AND SHECHEM INK MOUNT EPHRAIM, AND KIRJATHARBA, WHICH IS HEBRON, IN THE MOUNTAIN OF JUDAH.EL# 8 AND ON THE OTHER SIDE JORDAN BY JERICHO EASTWARD, THEY ASSIGNED BEZER INH THE WILDERNESS UPON THE PLAIN OUT OF THE TRIBE OF REUBEN, AND RAMOTH INH GILEAD OUT OF THE TRIBE OF GAD, AND GOLAN IN BASHAN OUT OF THE TRIBE OF MANASSEH.K# 9 THESE WERE THE CITIES APPOINTED FOR ALL THE CHILDREN OF ISRAEL, AND FORNN THE STRANGER THAT SOJOURNETH AMONG THEM, THAT WHOSOEVER KILLETH ANY PERSON ATN UNAWARES MIGHT FLEE THITHER, AND NOT DIE BY THE HAND OF THE AVENGER OF BLOOD,( UNTIL HE STOOD BEFORE THE CONGREGATION. = CHAPTER 21 RK# 1 THEN CAME NEAR THE HEADS OF THE FATHERS OF THE LEVITES UNTO ELEAZAR THENM PRIEST, AND UNTO JOSHUA THE SON OF NUN, AND UNTO THE HEADS OF THE FATHERS OFO& THE TRIBES OF THE CHILDREN OF ISRAEL;I# 2 AND THEY SPAKE UNTO THEM AT SHILOH IN THE LAND OF CANAAN, SAYING, THENL LORD COMMANDED BY THE HAND OF MOSES TO GIVE US CITIES TO DWELL IN, WITH THE SUBURBS THEREOF FOR OUR CATTLE.A# 3 AND THE CHILDREN OF ISRAEL GAVE UNTO THE LEVITES OUT OF THEIR,M INHERITANCE, AT THE COMMANDMENT OF THE LORD, THESE CITIES AND THEIR SUBURBS.TM# 4 AND THE LOT CAME OUT FOR THE FAMILIES OF THE KOHATHITES: AND THE CHILDRENHL OF AARON THE PRIEST, WHICH WERE OF THE LEVITES, HAD BY LOT OUT OF THE TRIBEL OF JUDAH, AND OUT OF THE TRIBE OF SIMEON, AND OUT OF THE TRIBE OF BENJAMIN, THIRTEEN CITIES.LL# 5 AND THE REST OF THE CHILDREN OF KOHATH HAD BY LOT OUT OF THE FAMILIES OFM THE TRIBE OF EPHRAIM, AND OUT OF THE TRIBE OF DAN, AND OUT OF THE HALF TRIBEV OF MANASSEH, TEN CITIES.TK# 6 AND THE CHILDREN OF GERSHON HAD BY LOT OUT OF THE FAMILIES OF THE TRIBENN OF ISSACHAR, AND OUT OF THE TRIBE OF ASHER, AND OUT OF THE TRIBE OF NAPHTALI,B AND OUT OF THE HALF TRIBE OF MANASSEH IN BASHAN, THIRTEEN CITIES.L# 7 THE CHILDREN OF MERARI BY THEIR FAMILIES HAD OUT OF THE TRIBE OF REUBEN,M AND OUT OF THE TRIBE OF GAD, AND OUT OF THE TRIBE OF ZEBULUN, TWELVE CITIES.UM# 8 AND THE CHILDREN OF ISRAEL GAVE BY LOT UNTO THE LEVITES THESE CITIES WITHU; THEIR SUBURBS, AS THE LORD COMMANDED BY THE HAND OF MOSES. K# 9 AND THEY GAVE OUT OF THE TRIBE OF THE CHILDREN OF JUDAH, AND OUT OF THERJ TRIBE OF THE CHILDREN OF SIMEON, THESE CITIES WHICH ARE HERE MENTIONED BY NAME.J# 10 WHICH THE CHILDREN OF AARON, BEING OF THE FAMILIES OF THE KOHATHITES,E WHO WERE OF THE CHILDREN OF LEVI, HAD: FOR THEIRS WAS THE FIRST LOT.RJ# 11 AND THEY GAVE THEM THE CITY OF ARBA THE FATHER OF ANAK, WHICH CITY ISK HEBRON, IN THE HILL COUNTRY OF JUDAH, WITH THE SUBURBS THEREOF ROUND ABOUTR IT.M# 12 BUT THE FIELDS OF THE CITY, AND THE VILLAGES THEREOF, GAVE THEY TO CALEBO) THE SON OF JEPHUNNEH FOR HIS POSSESSION.TG# 13 THUS THEY GAVE TO THE CHILDREN OF AARON THE PRIEST HEBRON WITH HERM SUBURBS, TO BE A CITY OF REFUGE FOR THE SLAYER; AND LIBNAH WITH HER SUBURBS,E@# 14 AND JATTIR WITH HER SUBURBS, AND ESHTEMOA WITH HER SUBURBS,<# 15 AND HOLON WITH HER SUBURBS, AND DEBIR WITH HER SUBURBS,K# 16 AND AIN WITH HER SUBURBS, AND JUTTAH WITH HER SUBURBS, AND BETHSHEMESHB7 WITH HER SUBURBS; NINE CITIES OUT OF THOSE TWO TRIBES.CM# 17 AND OUT OF THE TRIBE OF BENJAMIN, GIBEON WITH HER SUBURBS, GEBA WITH HERI SUBURBS,NH# 18 ANATHOTH WITH HER SUBURBS, AND ALMON WITH HER SUBURBS; FOUR CITIES.00dH-,<%X>%+%O-%TADATADATAH# 19 ALL THE CITIES OF THE CHILDREN OF AARON, THE PRIESTS, WERE THIRTEEN CITIES WITH THEIR SUBURBS.HK# 20 AND THE FAMILIES OF THE CHILDREN OF KOHATH, THE LEVITES WHICH REMAINED,L OF THE CHILDREN OF KOHATH, EVEN THEY HAD THE CITIES OF THEIR LOT OUT OF THE TRIBE OF EPHRAIM.J# 21 FOR THEY GAVE THEM SHECHEM WITH HER SUBURBS IN MOUNT EPHRAIM, TO BE A; CITY OF REFUGE FOR THE SLAYER; AND GEZER WITH HER SUBURBS,WG# 22 AND KIBZAIM WITH HER SUBURBS, AND BETHHORON WITH HER SUBURBS; FOURS CITIES.J# 23 AND OUT OF THE TRIBE OF DAN, ELTEKEH WITH HER SUBURBS, GIBBETHON WITH HER SUBURBS,EH# 24 AIJALON WITH HER SUBURBS, GATHRIMMON WITH HER SUBURBS; FOUR CITIES.H# 25 AND OUT OF THE HALF TRIBE OF MANASSEH, TANACH WITH HER SUBURBS, AND) GATHRIMMON WITH HER SUBURBS; TWO CITIES.PG# 26 ALL THE CITIES WERE TEN WITH THEIR SUBURBS FOR THE FAMILIES OF THE," CHILDREN OF KOHATH THAT REMAINED.M# 27 AND UNTO THE CHILDREN OF GERSHON, OF THE FAMILIES OF THE LEVITES, OUT OFHM THE OTHER HALF TRIBE OF MANASSEH THEY GAVE GOLAN IN BASHAN WITH HER SUBURBS,EL TO BE A CITY OF REFUGE FOR THE SLAYER; AND BEESHTERAH WITH HER SUBURBS; TWO CITIES.L# 28 AND OUT OF THE TRIBE OF ISSACHAR, KISHON WITH HER SUBURBS, DABAREH WITH HER SUBURBS, ITF# 29 JARMUTH WITH HER SUBURBS, ENGANNIM WITH HER SUBURBS; FOUR CITIES.K# 30 AND OUT OF THE TRIBE OF ASHER, MISHAL WITH HER SUBURBS, ABDON WITH HERH SUBURBS,MG# 31 HELKATH WITH HER SUBURBS, AND REHOB WITH HER SUBURBS; FOUR CITIES.IM# 32 AND OUT OF THE TRIBE OF NAPHTALI, KEDESH IN GALILEE WITH HER SUBURBS, TOHI BE A CITY OF REFUGE FOR THE SLAYER; AND HAMMOTHDOR WITH HER SUBURBS, ANDE' KARTAN WITH HER SUBURBS; THREE CITIES. G# 33 ALL THE CITIES OF THE GERSHONITES ACCORDING TO THEIR FAMILIES WERES$ THIRTEEN CITIES WITH THEIR SUBURBS.E# 34 AND UNTO THE FAMILIES OF THE CHILDREN OF MERARI, THE REST OF THEHK LEVITES, OUT OF THE TRIBE OF ZEBULUN, JOKNEAM WITH HER SUBURBS, AND KARTAHE WITH HER SUBURBS,D# 35 DIMNAH WITH HER SUBURBS, NAHALAL WITH HER SUBURBS; FOUR CITIES.M# 36 AND OUT OF THE TRIBE OF REUBEN, BEZER WITH HER SUBURBS, AND JAHAZAH WITH; HER SUBURBS, K# 37 KEDEMOTH WITH HER SUBURBS, AND MEPHAATH WITH HER SUBURBS; FOUR CITIES.EL# 38 AND OUT OF THE TRIBE OF GAD, RAMOTH IN GILEAD WITH HER SUBURBS, TO BE A> CITY OF REFUGE FOR THE SLAYER; AND MAHANAIM WITH HER SUBURBS,J# 39 HESHBON WITH HER SUBURBS, JAZER WITH HER SUBURBS; FOUR CITIES IN ALL.J# 40 SO ALL THE CITIES FOR THE CHILDREN OF MERARI BY THEIR FAMILIES, WHICHH WERE REMAINING OF THE FAMILIES OF THE LEVITES, WERE BY THEIR LOT TWELVE CITIES.K# 41 ALL THE CITIES OF THE LEVITES WITHIN THE POSSESSION OF THE CHILDREN OFH7 ISRAEL WERE FORTY AND EIGHT CITIES WITH THEIR SUBURBS.J# 42 THESE CITIES WERE EVERY ONE WITH THEIR SUBURBS ROUND ABOUT THEM: THUS WERE ALL THESE CITIES. K# 43 AND THE LORD GAVE UNTO ISRAEL ALL THE LAND WHICH HE SWARE TO GIVE UNTOW9 THEIR FATHERS; AND THEY POSSESSED IT, AND DWELT THEREIN.SL# 44 AND THE LORD GAVE THEM REST ROUND ABOUT, ACCORDING TO ALL THAT HE SWAREJ UNTO THEIR FATHERS: AND THERE STOOD NOT A MAN OF ALL THEIR ENEMIES BEFORE< THEM; THE LORD DELIVERED ALL THEIR ENEMIES INTO THEIR HAND.L# 45 THERE FAILED NOT OUGHT OF ANY GOOD THING WHICH THE LORD HAD SPOKEN UNTO' THE HOUSE OF ISRAEL; ALL CAME TO PASS.U = CHAPTER 22 WM# 1 THEN JOSHUA CALLED THE REUBENITES, AND THE GADITES, AND THE HALF TRIBE OFE MANASSEH,K# 2 AND SAID UNTO THEM, YE HAVE KEPT ALL THAT MOSES THE SERVANT OF THE LORDDE COMMANDED YOU, AND HAVE OBEYED MY VOICE IN ALL THAT I COMMANDED YOU:UJ# 3 YE HAVE NOT LEFT YOUR BRETHREN THESE MANY DAYS UNTO THIS DAY, BUT HAVE9 KEPT THE CHARGE OF THE COMMANDMENT OF THE LORD YOUR GOD.G# 4 AND NOW THE LORD YOUR GOD HATH GIVEN REST UNTO YOUR BRETHREN, AS HENN PROMISED THEM: THEREFORE NOW RETURN YE, AND GET YOU UNTO YOUR TENTS, AND UNTOM THE LAND OF YOUR POSSESSION, WHICH MOSES THE SERVANT OF THE LORD GAVE YOU ONN THE OTHER SIDE JORDAN. M# 5 BUT TAKE DILIGENT HEED TO DO THE COMMANDMENT AND THE LAW, WHICH MOSES THEYK SERVANT OF THE LORD CHARGED YOU, TO LOVE THE LORD YOUR GOD, AND TO WA00dP-)D%5%T6%! !LK INEK ALL HIS WAYS, AND TO KEEP HIS COMMANDMENTS, AND TO CLEAVE UNTO HIM, AND TOE6 SERVE HIM WITH ALL YOUR HEART AND WITH ALL YOUR SOUL.H# 6 SO JOSHUA BLESSED THEM, AND SENT THEM AWAY: AND THEY WENT UNTO THEIR TENTS.TK# 7 NOW TO THE ONE HALF OF THE TRIBE OF MANASSEH MOSES HAD GIVEN POSSESSION L IN BASHAN: BUT UNTO THE OTHER HALF THEREOF GAVE JOSHUA AMONG THEIR BRETHRENM ON THIS SIDE JORDAN WESTWARD. AND WHEN JOSHUA SENT THEM AWAY ALSO UNTO THEIRO TENTS, THEN HE BLESSED THEM,DL# 8 AND HE SPAKE UNTO THEM, SAYING, RETURN WITH MUCH RICHES UNTO YOUR TENTS,K AND WITH VERY MUCH CATTLE, WITH SILVER, AND WITH GOLD, AND WITH BRASS, ANDSM WITH IRON, AND WITH VERY MUCH RAIMENT: DIVIDE THE SPOIL OF YOUR ENEMIES WITH YOUR BRETHREN. L# 9 AND THE CHILDREN OF REUBEN AND THE CHILDREN OF GAD AND THE HALF TRIBE OFK MANASSEH RETURNED, AND DEPARTED FROM THE CHILDREN OF ISRAEL OUT OF SHILOH,SN WHICH IS IN THE LAND OF CANAAN, TO GO UNTO THE COUNTRY OF GILEAD, TO THE LANDK OF THEIR POSSESSION, WHEREOF THEY WERE POSSESSED, ACCORDING TO THE WORD OFR THE LORD BY THE HAND OF MOSES. K# 10 AND WHEN THEY CAME UNTO THE BORDERS OF JORDAN, THAT ARE IN THE LAND OFNM CANAAN, THE CHILDREN OF REUBEN AND THE CHILDREN OF GAD AND THE HALF TRIBE OFTB MANASSEH BUILT THERE AN ALTAR BY JORDAN, A GREAT ALTAR TO SEE TO.M# 11 AND THE CHILDREN OF ISRAEL HEARD SAY, BEHOLD, THE CHILDREN OF REUBEN ANDOL THE CHILDREN OF GAD AND THE HALF TRIBE OF MANASSEH HAVE BUILT AN ALTAR OVERL AGAINST THE LAND OF CANAAN, IN THE BORDERS OF JORDAN, AT THE PASSAGE OF THE CHILDREN OF ISRAEL.K# 12 AND WHEN THE CHILDREN OF ISRAEL HEARD OF IT, THE WHOLE CONGREGATION OFDK THE CHILDREN OF ISRAEL GATHERED THEMSELVES TOGETHER AT SHILOH, TO GO UP TON WAR AGAINST THEM.L# 13 AND THE CHILDREN OF ISRAEL SENT UNTO THE CHILDREN OF REUBEN, AND TO THEM CHILDREN OF GAD, AND TO THE HALF TRIBE OF MANASSEH, INTO THE LAND OF GILEAD,O( PHINEHAS THE SON OF ELEAZAR THE PRIEST,J# 14 AND WITH HIM TEN PRINCES, OF EACH CHIEF HOUSE A PRINCE THROUGHOUT ALLM THE TRIBES OF ISRAEL; AND EACH ONE WAS AN HEAD OF THE HOUSE OF THEIR FATHERS  AMONG THE THOUSANDS OF ISRAEL.HK# 15 AND THEY CAME UNTO THE CHILDREN OF REUBEN, AND TO THE CHILDREN OF GAD,RK AND TO THE HALF TRIBE OF MANASSEH, UNTO THE LAND OF GILEAD, AND THEY SPAKE  WITH THEM, SAYING,NI# 16 THUS SAITH THE WHOLE CONGREGATION OF THE LORD, WHAT TRESPASS IS THIS,M THAT YE HAVE COMMITTED AGAINST THE GOD OF ISRAEL, TO TURN AWAY THIS DAY FROMWN FOLLOWING THE LORD, IN THAT YE HAVE BUILDED YOU AN ALTAR, THAT YE MIGHT REBEL THIS DAY AGAINST THE LORD?HE# 17 IS THE INIQUITY OF PEOR TOO LITTLE FOR US, FROM WHICH WE ARE NOT L CLEANSED UNTIL THIS DAY, ALTHOUGH THERE WAS A PLAGUE IN THE CONGREGATION OF THE LORD,M# 18 BUT THAT YE MUST TURN AWAY THIS DAY FROM FOLLOWING THE LORD? AND IT WILLIM BE, SEEING YE REBEL TO DAY AGAINST THE LORD, THAT TO MORROW HE WILL BE WROTH,' WITH THE WHOLE CONGREGATION OF ISRAEL. M# 19 NOTWITHSTANDING, IF THE LAND OF YOUR POSSESSION BE UNCLEAN, THEN PASS YEID OVER UNTO THE LAND OF THE POSSESSION OF THE LORD, WHEREIN THE LORDSM TABERNACLE DWELLETH, AND TAKE POSSESSION AMONG US: BUT REBEL NOT AGAINST THEEM LORD, NOR REBEL AGAINST US, IN BUILDING YOU AN ALTAR BESIDE THE ALTAR OF THE, LORD OUR GOD.L# 20 DID NOT ACHAN THE SON OF ZERAH COMMIT A TRESPASS IN THE ACCURSED THING,L AND WRATH FELL ON ALL THE CONGREGATION OF ISRAEL? AND THAT MAN PERISHED NOT ALONE IN HIS INIQUITY.AK# 21 THEN THE CHILDREN OF REUBEN AND THE CHILDREN OF GAD AND THE HALF TRIBEAJ OF MANASSEH ANSWERED, AND SAID UNTO THE HEADS OF THE THOUSANDS OF ISRAEL,J# 22 THE LORD GOD OF GODS, THE LORD GOD OF GODS, HE KNOWETH, AND ISRAEL HEL SHALL KNOW; IF IT BE IN REBELLION, OR IF IN TRANSGRESSION AGAINST THE LORD, (SAVE US NOT THIS DAY,)M# 23 THAT WE HAVE BUILT US AN ALTAR TO TURN FROM FOLLOWING THE LORD, OR IF TODN OFFER THEREON BURNT OFFERING OR MEAT OFFERING, OR IF TO OFFER PEACE OFFERINGS* THEREON, LET THE LORD HIMSELF REQUIRE IT;I# 24 AND IF WE HAVE NOT RATHER DONE IT FOR FEAR OF THIS THING, SAYING, IN,L TIME TO COME YOUR C00dX-,<%X>%+%O-%TADATADATAHILDREN MIGHT SPEAK UNTO OUR CHILDREN, SAYING, WHAT HAVE& YE TO DO WITH THE LORD GOD OF ISRAEL?K# 25 FOR THE LORD HATH MADE JORDAN A BORDER BETWEEN US AND YOU, YE CHILDRENTJ OF REUBEN AND CHILDREN OF GAD; YE HAVE NO PART IN THE LORD: SO SHALL YOUR8 CHILDREN MAKE OUR CHILDREN CEASE FROM FEARING THE LORD.H# 26 THEREFORE WE SAID, LET US NOW PREPARE TO BUILD US AN ALTAR, NOT FOR# BURNT OFFERING, NOR FOR SACRIFICE:4J# 27 BUT THAT IT MAY BE A WITNESS BETWEEN US, AND YOU, AND OUR GENERATIONSM AFTER US, THAT WE MIGHT DO THE SERVICE OF THE LORD BEFORE HIM WITH OUR BURNTOL OFFERINGS, AND WITH OUR SACRIFICES, AND WITH OUR PEACE OFFERINGS; THAT YOURM CHILDREN MAY NOT SAY TO OUR CHILDREN IN TIME TO COME, YE HAVE NO PART IN THER LORD.M# 28 THEREFORE SAID WE, THAT IT SHALL BE, WHEN THEY SHOULD SO SAY TO US OR TON OUR GENERATIONS IN TIME TO COME, THAT WE MAY SAY AGAIN, BEHOLD THE PATTERN OFL THE ALTAR OF THE LORD, WHICH OUR FATHERS MADE, NOT FOR BURNT OFFERINGS, NOR8 FOR SACRIFICES; BUT IT IS A WITNESS BETWEEN US AND YOU.M# 29 GOD FORBID THAT WE SHOULD REBEL AGAINST THE LORD, AND TURN THIS DAY FROMCD FOLLOWING THE LORD, TO BUILD AN ALTAR FOR BURNT OFFERINGS, FOR MEATK OFFERINGS, OR FOR SACRIFICES, BESIDE THE ALTAR OF THE LORD OUR GOD THAT ISE BEFORE HIS TABERNACLE.LJ# 30 AND WHEN PHINEHAS THE PRIEST, AND THE PRINCES OF THE CONGREGATION ANDK HEADS OF THE THOUSANDS OF ISRAEL WHICH WERE WITH HIM, HEARD THE WORDS THAT L THE CHILDREN OF REUBEN AND THE CHILDREN OF GAD AND THE CHILDREN OF MANASSEH SPAKE, IT PLEASED THEM.I# 31 AND PHINEHAS THE SON OF ELEAZAR THE PRIEST SAID UNTO THE CHILDREN OFFN REUBEN, AND TO THE CHILDREN OF GAD, AND TO THE CHILDREN OF MANASSEH, THIS DAYJ WE PERCEIVE THAT THE LORD IS AMONG US, BECAUSE YE HAVE NOT COMMITTED THISL TRESPASS AGAINST THE LORD: NOW YE HAVE DELIVERED THE CHILDREN OF ISRAEL OUT OF THE HAND OF THE LORD.SJ# 32 AND PHINEHAS THE SON OF ELEAZAR THE PRIEST, AND THE PRINCES, RETURNEDN FROM THE CHILDREN OF REUBEN, AND FROM THE CHILDREN OF GAD, OUT OF THE LAND OFM GILEAD, UNTO THE LAND OF CANAAN, TO THE CHILDREN OF ISRAEL, AND BROUGHT THEMH WORD AGAIN.M# 33 AND THE THING PLEASED THE CHILDREN OF ISRAEL; AND THE CHILDREN OF ISRAELYL BLESSED GOD, AND DID NOT INTEND TO GO UP AGAINST THEM IN BATTLE, TO DESTROY7 THE LAND WHEREIN THE CHILDREN OF REUBEN AND GAD DWELT.LL# 34 AND THE CHILDREN OF REUBEN AND THE CHILDREN OF GAD CALLED THE ALTAR ED:; FOR IT SHALL BE A WITNESS BETWEEN US THAT THE LORD IS GOD.R = CHAPTER 23 NK# 1 AND IT CAME TO PASS A LONG TIME AFTER THAT THE LORD HAD GIVEN REST UNTOAN ISRAEL FROM ALL THEIR ENEMIES ROUND ABOUT, THAT JOSHUA WAXED OLD AND STRICKEN IN AGE.I# 2 AND JOSHUA CALLED FOR ALL ISRAEL, AND FOR THEIR ELDERS, AND FOR THEIR N HEADS, AND FOR THEIR JUDGES, AND FOR THEIR OFFICERS, AND SAID UNTO THEM, I AM OLD AND STRICKEN IN AGE:EH# 3 AND YE HAVE SEEN ALL THAT THE LORD YOUR GOD HATH DONE UNTO ALL THESEN NATIONS BECAUSE OF YOU; FOR THE LORD YOUR GOD IS HE THAT HATH FOUGHT FOR YOU.K# 4 BEHOLD, I HAVE DIVIDED UNTO YOU BY LOT THESE NATIONS THAT REMAIN, TO BETN AN INHERITANCE FOR YOUR TRIBES, FROM JORDAN, WITH ALL THE NATIONS THAT I HAVE+ CUT OFF, EVEN UNTO THE GREAT SEA WESTWARD.LI# 5 AND THE LORD YOUR GOD, HE SHALL EXPEL THEM FROM BEFORE YOU, AND DRIVESJ THEM FROM OUT OF YOUR SIGHT; AND YE SHALL POSSESS THEIR LAND, AS THE LORD! YOUR GOD HATH PROMISED UNTO YOU.HL# 6 BE YE THEREFORE VERY COURAGEOUS TO KEEP AND TO DO ALL THAT IS WRITTEN INL THE BOOK OF THE LAW OF MOSES, THAT YE TURN NOT ASIDE THEREFROM TO THE RIGHT HAND OR TO THE LEFT;TF# 7 THAT YE COME NOT AMONG THESE NATIONS, THESE THAT REMAIN AMONG YOU;L NEITHER MAKE MENTION OF THE NAME OF THEIR GODS, NOR CAUSE TO SWEAR BY THEM,2 NEITHER SERVE THEM, NOR BOW YOURSELVES UNTO THEM:E# 8 BUT CLEAVE UNTO THE LORD YOUR GOD, AS YE HAVE DONE UNTO THIS DAY.TJ# 9 FOR THE LORD HATH DRIVEN OUT FROM BEFORE YOU GREAT NATIONS AND STRONG:I BUT AS FOR YOU, NO MAN HATH BEEN ABLE TO STAND BEFORE YOU UNTO THIS DAY.TK# 10 ONE MAN OF YOU SHALL CHASE A THOUSAND: FOR THE LORD YOUR GOD, HE IT ISH0 T00d`-)D%5%T6%! !HAT FIGHTETH FOR YOU, AS HE HATH PROMISED YOU.I# 11 TAKE GOOD HEED THEREFORE UNTO YOURSELVES, THAT YE LOVE THE LORD YOURG GOD.RL# 12 ELSE IF YE DO IN ANY WISE GO BACK, AND CLEAVE UNTO THE REMNANT OF THESEI NATIONS, EVEN THESE THAT REMAIN AMONG YOU, AND SHALL MAKE MARRIAGES WITH , THEM, AND GO IN UNTO THEM, AND THEY TO YOU:K# 13 KNOW FOR A CERTAINTY THAT THE LORD YOUR GOD WILL NO MORE DRIVE OUT ANYOJ OF THESE NATIONS FROM BEFORE YOU; BUT THEY SHALL BE SNARES AND TRAPS UNTOJ YOU, AND SCOURGES IN YOUR SIDES, AND THORNS IN YOUR EYES, UNTIL YE PERISH@ FROM OFF THIS GOOD LAND WHICH THE LORD YOUR GOD HATH GIVEN YOU.K# 14 AND, BEHOLD, THIS DAY I AM GOING THE WAY OF ALL THE EARTH: AND YE KNOW L IN ALL YOUR HEARTS AND IN ALL YOUR SOULS, THAT NOT ONE THING HATH FAILED OFJ ALL THE GOOD THINGS WHICH THE LORD YOUR GOD SPAKE CONCERNING YOU; ALL ARE> COME TO PASS UNTO YOU, AND NOT ONE THING HATH FAILED THEREOF.K# 15 THEREFORE IT SHALL COME TO PASS, THAT AS ALL GOOD THINGS ARE COME UPONYL YOU, WHICH THE LORD YOUR GOD PROMISED YOU; SO SHALL THE LORD BRING UPON YOUK ALL EVIL THINGS, UNTIL HE HAVE DESTROYED YOU FROM OFF THIS GOOD LAND WHICHD" THE LORD YOUR GOD HATH GIVEN YOU.J# 16 WHEN YE HAVE TRANSGRESSED THE COVENANT OF THE LORD YOUR GOD, WHICH HEL COMMANDED YOU, AND HAVE GONE AND SERVED OTHER GODS, AND BOWED YOURSELVES TOL THEM; THEN SHALL THE ANGER OF THE LORD BE KINDLED AGAINST YOU, AND YE SHALLD PERISH QUICKLY FROM OFF THE GOOD LAND WHICH HE HATH GIVEN UNTO YOU. = CHAPTER 24 OK# 1 AND JOSHUA GATHERED ALL THE TRIBES OF ISRAEL TO SHECHEM, AND CALLED FORYI THE ELDERS OF ISRAEL, AND FOR THEIR HEADS, AND FOR THEIR JUDGES, AND FORH: THEIR OFFICERS; AND THEY PRESENTED THEMSELVES BEFORE GOD.K# 2 AND JOSHUA SAID UNTO ALL THE PEOPLE, THUS SAITH THE LORD GOD OF ISRAEL, K YOUR FATHERS DWELT ON THE OTHER SIDE OF THE FLOOD IN OLD TIME, EVEN TERAH,HM THE FATHER OF ABRAHAM, AND THE FATHER OF NACHOR: AND THEY SERVED OTHER GODS.OL# 3 AND I TOOK YOUR FATHER ABRAHAM FROM THE OTHER SIDE OF THE FLOOD, AND LEDM HIM THROUGHOUT ALL THE LAND OF CANAAN, AND MULTIPLIED HIS SEED, AND GAVE HIMI ISAAC.DM# 4 AND I GAVE UNTO ISAAC JACOB AND ESAU: AND I GAVE UNTO ESAU MOUNT SEIR, TOS= POSSESS IT; BUT JACOB AND HIS CHILDREN WENT DOWN INTO EGYPT.PM# 5 I SENT MOSES ALSO AND AARON, AND I PLAGUED EGYPT, ACCORDING TO THAT WHICHD3 I DID AMONG THEM: AND AFTERWARD I BROUGHT YOU OUT. J# 6 AND I BROUGHT YOUR FATHERS OUT OF EGYPT: AND YE CAME UNTO THE SEA; ANDM THE EGYPTIANS PURSUED AFTER YOUR FATHERS WITH CHARIOTS AND HORSEMEN UNTO THEU RED SEA.HJ# 7 AND WHEN THEY CRIED UNTO THE LORD, HE PUT DARKNESS BETWEEN YOU AND THEJ EGYPTIANS, AND BROUGHT THE SEA UPON THEM, AND COVERED THEM; AND YOUR EYESK HAVE SEEN WHAT I HAVE DONE IN EGYPT: AND YE DWELT IN THE WILDERNESS A LONGA SEASON.M# 8 AND I BROUGHT YOU INTO THE LAND OF THE AMORITES, WHICH DWELT ON THE OTHERRL SIDE JORDAN; AND THEY FOUGHT WITH YOU: AND I GAVE THEM INTO YOUR HAND, THATC YE MIGHT POSSESS THEIR LAND; AND I DESTROYED THEM FROM BEFORE YOU.HH# 9 THEN BALAK THE SON OF ZIPPOR, KING OF MOAB, AROSE AND WARRED AGAINSTA ISRAEL, AND SENT AND CALLED BALAAM THE SON OF BEOR TO CURSE YOU:UL# 10 BUT I WOULD NOT HEARKEN UNTO BALAAM; THEREFORE HE BLESSED YOU STILL: SO! I DELIVERED YOU OUT OF HIS HAND. L# 11 AND YOU WENT OVER JORDAN, AND CAME UNTO JERICHO: AND THE MEN OF JERICHON FOUGHT AGAINST YOU, THE AMORITES, AND THE PERIZZITES, AND THE CANAANITES, ANDI THE HITTITES, AND THE GIRGASHITES, THE HIVITES, AND THE JEBUSITES; AND I  DELIVERED THEM INTO YOUR HAND.BL# 12 AND I SENT THE HORNET BEFORE YOU, WHICH DRAVE THEM OUT FROM BEFORE YOU,N EVEN THE TWO KINGS OF THE AMORITES; BUT NOT WITH THY SWORD, NOR WITH THY BOW.H# 13 AND I HAVE GIVEN YOU A LAND FOR WHICH YE DID NOT LABOUR, AND CITIESJ WHICH YE BUILT NOT, AND YE DWELL IN THEM; OF THE VINEYARDS AND OLIVEYARDS WHICH YE PLANTED NOT DO YE EAT.J# 14 NOW THEREFORE FEAR THE LORD, AND SERVE HIM IN SINCERITY AND IN TRUTH:I AND PUT AWAY THE GODS WHICH YOUR FATHERS SERVED ON THE OTHER SIDE OF THEE, FLOOD, AND IN EGYPT; AND SERVE YE00dh-eo-<%X>%+%O-%TADATADATA THE LORD.M# 15 AND IF IT SEEM EVIL UNTO YOU TO SERVE THE LORD, CHOOSE YOU THIS DAY WHOMAK YE WILL SERVE; WHETHER THE GODS WHICH YOUR FATHERS SERVED THAT WERE ON THE N OTHER SIDE OF THE FLOOD, OR THE GODS OF THE AMORITES, IN WHOSE LAND YE DWELL:4 BUT AS FOR ME AND MY HOUSE, WE WILL SERVE THE LORD.L# 16 AND THE PEOPLE ANSWERED AND SAID, GOD FORBID THAT WE SHOULD FORSAKE THE LORD, TO SERVE OTHER GODS;TM# 17 FOR THE LORD OUR GOD, HE IT IS THAT BROUGHT US UP AND OUR FATHERS OUT OF N THE LAND OF EGYPT, FROM THE HOUSE OF BONDAGE, AND WHICH DID THOSE GREAT SIGNSM IN OUR SIGHT, AND PRESERVED US IN ALL THE WAY WHEREIN WE WENT, AND AMONG ALLA# THE PEOPLE THROUGH WHOM WE PASSED:RL# 18 AND THE LORD DRAVE OUT FROM BEFORE US ALL THE PEOPLE, EVEN THE AMORITESN WHICH DWELT IN THE LAND: THEREFORE WILL WE ALSO SERVE THE LORD; FOR HE IS OUR GOD.,L# 19 AND JOSHUA SAID UNTO THE PEOPLE, YE CANNOT SERVE THE LORD: FOR HE IS ANK HOLY GOD; HE IS A JEALOUS GOD; HE WILL NOT FORGIVE YOUR TRANSGRESSIONS NORL YOUR SINS. M# 20 IF YE FORSAKE THE LORD, AND SERVE STRANGE GODS, THEN HE WILL TURN AND DOP= YOU HURT, AND CONSUME YOU, AFTER THAT HE HATH DONE YOU GOOD.EF# 21 AND THE PEOPLE SAID UNTO JOSHUA, NAY; BUT WE WILL SERVE THE LORD.I# 22 AND JOSHUA SAID UNTO THE PEOPLE, YE ARE WITNESSES AGAINST YOURSELVES F THAT YE HAVE CHOSEN YOU THE LORD, TO SERVE HIM. AND THEY SAID, WE ARE WITNESSES.PK# 23 NOW THEREFORE PUT AWAY, SAID HE, THE STRANGE GODS WHICH ARE AMONG YOU,E4 AND INCLINE YOUR HEART UNTO THE LORD GOD OF ISRAEL.M# 24 AND THE PEOPLE SAID UNTO JOSHUA, THE LORD OUR GOD WILL WE SERVE, AND HISD VOICE WILL WE OBEY.G# 25 SO JOSHUA MADE A COVENANT WITH THE PEOPLE THAT DAY, AND SET THEM AT% STATUTE AND AN ORDINANCE IN SHECHEM.RK# 26 AND JOSHUA WROTE THESE WORDS IN THE BOOK OF THE LAW OF GOD, AND TOOK A L GREAT STONE, AND SET IT UP THERE UNDER AN OAK, THAT WAS BY THE SANCTUARY OF THE LORD.G# 27 AND JOSHUA SAID UNTO ALL THE PEOPLE, BEHOLD, THIS STONE SHALL BE AEL WITNESS UNTO US; FOR IT HATH HEARD ALL THE WORDS OF THE LORD WHICH HE SPAKEJ UNTO US: IT SHALL BE THEREFORE A WITNESS UNTO YOU, LEST YE DENY YOUR GOD.E# 28 SO JOSHUA LET THE PEOPLE DEPART, EVERY MAN UNTO HIS INHERITANCE.EL# 29 AND IT CAME TO PASS AFTER THESE THINGS, THAT JOSHUA THE SON OF NUN, THE? SERVANT OF THE LORD, DIED, BEING AN HUNDRED AND TEN YEARS OLD.EJ# 30 AND THEY BURIED HIM IN THE BORDER OF HIS INHERITANCE IN TIMNATHSERAH,C WHICH IS IN MOUNT EPHRAIM, ON THE NORTH SIDE OF THE HILL OF GAASH.WK# 31 AND ISRAEL SERVED THE LORD ALL THE DAYS OF JOSHUA, AND ALL THE DAYS OFUK THE ELDERS THAT OVERLIVED JOSHUA, AND WHICH HAD KNOWN ALL THE WORKS OF THE8# LORD, THAT HE HAD DONE FOR ISRAEL.RL# 32 AND THE BONES OF JOSEPH, WHICH THE CHILDREN OF ISRAEL BROUGHT UP OUT OFK EGYPT, BURIED THEY IN SHECHEM, IN A PARCEL OF GROUND WHICH JACOB BOUGHT OFDM THE SONS OF HAMOR THE FATHER OF SHECHEM FOR AN HUNDRED PIECES OF SILVER: ANDT5 IT BECAME THE INHERITANCE OF THE CHILDREN OF JOSEPH.SJ# 33 AND ELEAZAR THE SON OF AARON DIED; AND THEY BURIED HIM IN A HILL THATE PERTAINED TO PHINEHAS HIS SON, WHICH WAS GIVEN HIM IN MOUNT EPHRAIM.ICH HAD KNOWN ALL THE WORKS OF THE8# LORD, THAT HE HAD DONE FOR ISRAEL.RL# 32 AND THE BONES OF JOSEPH, WHICH THE CHILDREN OF ISRAEL BROUGHT UP OUT OFK EGYPT, BURIED THEY IN SHECHEM, IN A PARCEL OF GROUND WHICH JACOB BOUGHT OFDM THE SONS OF HAMOR THE FATHER OF SHECHEM FOR AN HUNDRED PIECES OF SILVER: ANDT5 IT BECAME THE INHERITANCE OF THE CHILDREN OF JOSEPH.SJ# 33 AND ELEAZAR THE SON OF AARON DIED; AND THEY BURIED HIM IN A HILL THATE* BOOK07 JUDGESN = CHAPTER 1 N# 1 NOW AFTER THE DEATH OF JOSHUA IT CAME TO PASS, THAT THE CHILDREN OF ISRAELM ASKED THE LORD, SAYING, WHO SHALL GO UP FOR US AGAINST THE CANAANITES FIRST,N TO FIGHT AGAINST THEM? K# 2 AND THE LORD SAID, JUDAH SHALL GO UP: BEHOLD, I HAVE DELIVERED THE LANDO INTO HIS HAND.HM# 3 AND JUDAH SAID UNTO SIMEON HIS BROTHER, COME UP WITH ME INTO MY LOT, THATEK WE MAY FIGHT AGAINST THE CANAANITES; AND I LIKEWISE WILL GO WITH THEE INTOI" THY LOT. SO SIMEON WENT WITH HIM.D# 00ep-)D%5%T6%! !4 AND JUDAH WENT UP; AND THE LORD DELIVERED THE CANAANITES AND THEM PERIZZITES INTO THEIR HAND: AND THEY SLEW OF THEM IN BEZEK TEN THOUSAND MEN.AM# 5 AND THEY FOUND ADONIBEZEK IN BEZEK: AND THEY FOUGHT AGAINST HIM, AND THEYN( SLEW THE CANAANITES AND THE PERIZZITES.L# 6 BUT ADONIBEZEK FLED; AND THEY PURSUED AFTER HIM, AND CAUGHT HIM, AND CUT# OFF HIS THUMBS AND HIS GREAT TOES. J# 7 AND ADONIBEZEK SAID, THREESCORE AND TEN KINGS, HAVING THEIR THUMBS ANDN THEIR GREAT TOES CUT OFF, GATHERED THEIR MEAT UNDER MY TABLE: AS I HAVE DONE,I SO GOD HATH REQUITED ME. AND THEY BROUGHT HIM TO JERUSALEM, AND THERE HEE DIED.M# 8 NOW THE CHILDREN OF JUDAH HAD FOUGHT AGAINST JERUSALEM, AND HAD TAKEN IT, E AND SMITTEN IT WITH THE EDGE OF THE SWORD, AND SET THE CITY ON FIRE.IF# 9 AND AFTERWARD THE CHILDREN OF JUDAH WENT DOWN TO FIGHT AGAINST THEM CANAANITES, THAT DWELT IN THE MOUNTAIN, AND IN THE SOUTH, AND IN THE VALLEY.EI# 10 AND JUDAH WENT AGAINST THE CANAANITES THAT DWELT IN HEBRON: (NOW THETK NAME OF HEBRON BEFORE WAS KIRJATHARBA:) AND THEY SLEW SHESHAI, AND AHIMAN,N AND TALMAI.K# 11 AND FROM THENCE HE WENT AGAINST THE INHABITANTS OF DEBIR: AND THE NAMEO# OF DEBIR BEFORE WAS KIRJATHSEPHER: I# 12 AND CALEB SAID, HE THAT SMITETH KIRJATHSEPHER, AND TAKETH IT, TO HIMI( WILL I GIVE ACHSAH MY DAUGHTER TO WIFE.J# 13 AND OTHNIEL THE SON OF KENAZ, CALEBS YOUNGER BROTHER, TOOK IT: AND HE& GAVE HIM ACHSAH HIS DAUGHTER TO WIFE.L# 14 AND IT CAME TO PASS, WHEN SHE CAME TO HIM, THAT SHE MOVED HIM TO ASK OFJ HER FATHER A FIELD: AND SHE LIGHTED FROM OFF HER ASS; AND CALEB SAID UNTO HER, WHAT WILT THOU? H# 15 AND SHE SAID UNTO HIM, GIVE ME A BLESSING: FOR THOU HAST GIVEN ME AH SOUTH LAND; GIVE ME ALSO SPRINGS OF WATER. AND CALEB GAVE HER THE UPPER SPRINGS AND THE NETHER SPRINGS.L# 16 AND THE CHILDREN OF THE KENITE, MOSES FATHER IN LAW, WENT UP OUT OF THEL CITY OF PALM TREES WITH THE CHILDREN OF JUDAH INTO THE WILDERNESS OF JUDAH,L WHICH LIETH IN THE SOUTH OF ARAD; AND THEY WENT AND DWELT AMONG THE PEOPLE.I# 17 AND JUDAH WENT WITH SIMEON HIS BROTHER, AND THEY SLEW THE CANAANITESHK THAT INHABITED ZEPHATH, AND UTTERLY DESTROYED IT. AND THE NAME OF THE CITYU WAS CALLED HORMAH.UL# 18 ALSO JUDAH TOOK GAZA WITH THE COAST THEREOF, AND ASKELON WITH THE COAST+ THEREOF, AND EKRON WITH THE COAST THEREOF.EI# 19 AND THE LORD WAS WITH JUDAH; AND HE DRAVE OUT THE INHABITANTS OF THEEN MOUNTAIN; BUT COULD NOT DRIVE OUT THE INHABITANTS OF THE VALLEY, BECAUSE THEY HAD CHARIOTS OF IRON.K# 20 AND THEY GAVE HEBRON UNTO CALEB, AS MOSES SAID: AND HE EXPELLED THENCE, THE THREE SONS OF ANAK.F# 21 AND THE CHILDREN OF BENJAMIN DID NOT DRIVE OUT THE JEBUSITES THATN INHABITED JERUSALEM; BUT THE JEBUSITES DWELL WITH THE CHILDREN OF BENJAMIN IN JERUSALEM UNTO THIS DAY.AL# 22 AND THE HOUSE OF JOSEPH, THEY ALSO WENT UP AGAINST BETHEL: AND THE LORD WAS WITH THEM.EM# 23 AND THE HOUSE OF JOSEPH SENT TO DESCRY BETHEL. (NOW THE NAME OF THE CITYS BEFORE WAS LUZ.)AK# 24 AND THE SPIES SAW A MAN COME FORTH OUT OF THE CITY, AND THEY SAID UNTOSN HIM, SHEW US, WE PRAY THEE, THE ENTRANCE INTO THE CITY, AND WE WILL SHEW THEE MERCY.AL# 25 AND WHEN HE SHEWED THEM THE ENTRANCE INTO THE CITY, THEY SMOTE THE CITYH WITH THE EDGE OF THE SWORD; BUT THEY LET GO THE MAN AND ALL HIS FAMILY.J# 26 AND THE MAN WENT INTO THE LAND OF THE HITTITES, AND BUILT A CITY, ANDF CALLED THE NAME THEREOF LUZ: WHICH IS THE NAME THEREOF UNTO THIS DAY.H# 27 NEITHER DID MANASSEH DRIVE OUT THE INHABITANTS OF BETHSHEAN AND HERL TOWNS, NOR TAANACH AND HER TOWNS, NOR THE INHABITANTS OF DOR AND HER TOWNS,L NOR THE INHABITANTS OF IBLEAM AND HER TOWNS, NOR THE INHABITANTS OF MEGIDDO< AND HER TOWNS: BUT THE CANAANITES WOULD DWELL IN THAT LAND.C# 28 AND IT CAME TO PASS, WHEN ISRAEL WAS STRONG, THAT THEY PUT THEL; CANAANITES TO TRIBUTE, AND DID NOT UTTERLY DRIVE THEM OUT.BJ# 29 NEITHER DID EPHRAIM DRIVE OUT THE CANAANITES THAT DWELT IN GEZER; BUT* THE CANAANITES DWELT IN GEZER AMONG THEM.E# 30 NEITHER DID ZEBULUN DRIVE OUT THE INHABITANTS OF KITRON, NOR THE H INHABITAN00ex-o-<%X>%+%O-%TADATADATATS OF NAHALOL; BUT THE CANAANITES DWELT AMONG THEM, AND BECAME TRIBUTARIES.TB# 31 NEITHER DID ASHER DRIVE OUT THE INHABITANTS OF ACCHO, NOR THEI INHABITANTS OF ZIDON, NOR OF AHLAB, NOR OF ACHZIB, NOR OF HELBAH, NOR OFT APHIK, NOR OF REHOB:LI# 32 BUT THE ASHERITES DWELT AMONG THE CANAANITES, THE INHABITANTS OF THER' LAND: FOR THEY DID NOT DRIVE THEM OUT.TK# 33 NEITHER DID NAPHTALI DRIVE OUT THE INHABITANTS OF BETHSHEMESH, NOR THERM INHABITANTS OF BETHANATH; BUT HE DWELT AMONG THE CANAANITES, THE INHABITANTSAJ OF THE LAND: NEVERTHELESS THE INHABITANTS OF BETHSHEMESH AND OF BETHANATH BECAME TRIBUTARIES UNTO THEM.L# 34 AND THE AMORITES FORCED THE CHILDREN OF DAN INTO THE MOUNTAIN: FOR THEY2 WOULD NOT SUFFER THEM TO COME DOWN TO THE VALLEY:M# 35 BUT THE AMORITES WOULD DWELL IN MOUNT HERES IN AIJALON, AND IN SHAALBIM:NC YET THE HAND OF THE HOUSE OF JOSEPH PREVAILED, SO THAT THEY BECAME TRIBUTARIES.AJ# 36 AND THE COAST OF THE AMORITES WAS FROM THE GOING UP TO AKRABBIM, FROM THE ROCK, AND UPWARD. = CHAPTER 2 L# 1 AND AN ANGEL OF THE LORD CAME UP FROM GILGAL TO BOCHIM, AND SAID, I MADEL YOU TO GO UP OUT OF EGYPT, AND HAVE BROUGHT YOU UNTO THE LAND WHICH I SWAREH UNTO YOUR FATHERS; AND I SAID, I WILL NEVER BREAK MY COVENANT WITH YOU.K# 2 AND YE SHALL MAKE NO LEAGUE WITH THE INHABITANTS OF THIS LAND; YE SHALLBK THROW DOWN THEIR ALTARS: BUT YE HAVE NOT OBEYED MY VOICE: WHY HAVE YE DONET THIS?I# 3 WHEREFORE I ALSO SAID, I WILL NOT DRIVE THEM OUT FROM BEFORE YOU; BUT L THEY SHALL BE AS THORNS IN YOUR SIDES, AND THEIR GODS SHALL BE A SNARE UNTO YOU. J# 4 AND IT CAME TO PASS, WHEN THE ANGEL OF THE LORD SPAKE THESE WORDS UNTOM ALL THE CHILDREN OF ISRAEL, THAT THE PEOPLE LIFTED UP THEIR VOICE, AND WEPT.VL# 5 AND THEY CALLED THE NAME OF THAT PLACE BOCHIM: AND THEY SACRIFICED THERE UNTO THE LORD.NL# 6 AND WHEN JOSHUA HAD LET THE PEOPLE GO, THE CHILDREN OF ISRAEL WENT EVERY. MAN UNTO HIS INHERITANCE TO POSSESS THE LAND.K# 7 AND THE PEOPLE SERVED THE LORD ALL THE DAYS OF JOSHUA, AND ALL THE DAYS L OF THE ELDERS THAT OUTLIVED JOSHUA, WHO HAD SEEN ALL THE GREAT WORKS OF THE LORD, THAT HE DID FOR ISRAEL.F# 8 AND JOSHUA THE SON OF NUN, THE SERVANT OF THE LORD, DIED, BEING AN HUNDRED AND TEN YEARS OLD.VL# 9 AND THEY BURIED HIM IN THE BORDER OF HIS INHERITANCE IN TIMNATHHERES, IN; THE MOUNT OF EPHRAIM, ON THE NORTH SIDE OF THE HILL GAASH.,M# 10 AND ALSO ALL THAT GENERATION WERE GATHERED UNTO THEIR FATHERS: AND THERENJ AROSE ANOTHER GENERATION AFTER THEM, WHICH KNEW NOT THE LORD, NOR YET THE$ WORKS WHICH HE HAD DONE FOR ISRAEL.M# 11 AND THE CHILDREN OF ISRAEL DID EVIL IN THE SIGHT OF THE LORD, AND SERVED  BAALIM:K# 12 AND THEY FORSOOK THE LORD GOD OF THEIR FATHERS, WHICH BROUGHT THEM OUTYN OF THE LAND OF EGYPT, AND FOLLOWED OTHER GODS, OF THE GODS OF THE PEOPLE THATM WERE ROUND ABOUT THEM, AND BOWED THEMSELVES UNTO THEM, AND PROVOKED THE LORDD TO ANGER.># 13 AND THEY FORSOOK THE LORD, AND SERVED BAAL AND ASHTAROTH.L# 14 AND THE ANGER OF THE LORD WAS HOT AGAINST ISRAEL, AND HE DELIVERED THEMN INTO THE HANDS OF SPOILERS THAT SPOILED THEM, AND HE SOLD THEM INTO THE HANDSM OF THEIR ENEMIES ROUND ABOUT, SO THAT THEY COULD NOT ANY LONGER STAND BEFORE  THEIR ENEMIES.IK# 15 WHITHERSOEVER THEY WENT OUT, THE HAND OF THE LORD WAS AGAINST THEM FORGJ EVIL, AS THE LORD HAD SAID, AND AS THE LORD HAD SWORN UNTO THEM: AND THEY WERE GREATLY DISTRESSED.L# 16 NEVERTHELESS THE LORD RAISED UP JUDGES, WHICH DELIVERED THEM OUT OF THE! HAND OF THOSE THAT SPOILED THEM.TF# 17 AND YET THEY WOULD NOT HEARKEN UNTO THEIR JUDGES, BUT THEY WENT AN WHORING AFTER OTHER GODS, AND BOWED THEMSELVES UNTO THEM: THEY TURNED QUICKLYN OUT OF THE WAY WHICH THEIR FATHERS WALKED IN, OBEYING THE COMMANDMENTS OF THE LORD; BUT THEY DID NOT SO.OH# 18 AND WHEN THE LORD RAISED THEM UP JUDGES, THEN THE LORD WAS WITH THEK JUDGE, AND DELIVERED THEM OUT OF THE HAND OF THEIR ENEMIES ALL THE DAYS OFLL THE JUDGE: FOR IT REPENTED THE LORD BECAUSE OF THEIR GROANINGS BY REASON OF) THEM THAT OPPRESSED THEM AND VEXED THEM.LJ# 1900e-)D%5%T6%! ! AND IT CAME TO PASS, WHEN THE JUDGE WAS DEAD, THAT THEY RETURNED, ANDI CORRUPTED THEMSELVES MORE THAN THEIR FATHERS, IN FOLLOWING OTHER GODS TO N SERVE THEM, AND TO BOW DOWN UNTO THEM; THEY CEASED NOT FROM THEIR OWN DOINGS, NOR FROM THEIR STUBBORN WAY.RK# 20 AND THE ANGER OF THE LORD WAS HOT AGAINST ISRAEL; AND HE SAID, BECAUSEOG THAT THIS PEOPLE HATH TRANSGRESSED MY COVENANT WHICH I COMMANDED THEIRN/ FATHERS, AND HAVE NOT HEARKENED UNTO MY VOICE; M# 21 I ALSO WILL NOT HENCEFORTH DRIVE OUT ANY FROM BEFORE THEM OF THE NATIONST WHICH JOSHUA LEFT WHEN HE DIED:L# 22 THAT THROUGH THEM I MAY PROVE ISRAEL, WHETHER THEY WILL KEEP THE WAY OF@ THE LORD TO WALK THEREIN, AS THEIR FATHERS DID KEEP IT, OR NOT.M# 23 THEREFORE THE LORD LEFT THOSE NATIONS, WITHOUT DRIVING THEM OUT HASTILY; 3 NEITHER DELIVERED HE THEM INTO THE HAND OF JOSHUA.T = CHAPTER 3 K# 1 NOW THESE ARE THE NATIONS WHICH THE LORD LEFT, TO PROVE ISRAEL BY THEM,N@ EVEN AS MANY OF ISRAEL AS HAD NOT KNOWN ALL THE WARS OF CANAAN;L# 2 ONLY THAT THE GENERATIONS OF THE CHILDREN OF ISRAEL MIGHT KNOW, TO TEACH< THEM WAR, AT THE LEAST SUCH AS BEFORE KNEW NOTHING THEREOF;J# 3 NAMELY, FIVE LORDS OF THE PHILISTINES, AND ALL THE CANAANITES, AND THEN SIDONIANS, AND THE HIVITES THAT DWELT IN MOUNT LEBANON, FROM MOUNT BAALHERMON UNTO THE ENTERING IN OF HAMATH.M# 4 AND THEY WERE TO PROVE ISRAEL BY THEM, TO KNOW WHETHER THEY WOULD HEARKEN K UNTO THE COMMANDMENTS OF THE LORD, WHICH HE COMMANDED THEIR FATHERS BY THEN HAND OF MOSES.CH# 5 AND THE CHILDREN OF ISRAEL DWELT AMONG THE CANAANITES, HITTITES, AND6 AMORITES, AND PERIZZITES, AND HIVITES, AND JEBUSITES:M# 6 AND THEY TOOK THEIR DAUGHTERS TO BE THEIR WIVES, AND GAVE THEIR DAUGHTERSI& TO THEIR SONS, AND SERVED THEIR GODS.L# 7 AND THE CHILDREN OF ISRAEL DID EVIL IN THE SIGHT OF THE LORD, AND FORGAT6 THE LORD THEIR GOD, AND SERVED BAALIM AND THE GROVES.L# 8 THEREFORE THE ANGER OF THE LORD WAS HOT AGAINST ISRAEL, AND HE SOLD THEML INTO THE HAND OF CHUSHANRISHATHAIM KING OF MESOPOTAMIA: AND THE CHILDREN OF- ISRAEL SERVED CHUSHANRISHATHAIM EIGHT YEARS.M# 9 AND WHEN THE CHILDREN OF ISRAEL CRIED UNTO THE LORD, THE LORD RAISED UP A N DELIVERER TO THE CHILDREN OF ISRAEL, WHO DELIVERED THEM, EVEN OTHNIEL THE SON" OF KENAZ, CALEBS YOUNGER BROTHER.M# 10 AND THE SPIRIT OF THE LORD CAME UPON HIM, AND HE JUDGED ISRAEL, AND WENTAN OUT TO WAR: AND THE LORD DELIVERED CHUSHANRISHATHAIM KING OF MESOPOTAMIA INTO< HIS HAND; AND HIS HAND PREVAILED AGAINST CHUSHANRISHATHAIM.J# 11 AND THE LAND HAD REST FORTY YEARS. AND OTHNIEL THE SON OF KENAZ DIED.L# 12 AND THE CHILDREN OF ISRAEL DID EVIL AGAIN IN THE SIGHT OF THE LORD: ANDN THE LORD STRENGTHENED EGLON THE KING OF MOAB AGAINST ISRAEL, BECAUSE THEY HAD$ DONE EVIL IN THE SIGHT OF THE LORD.L# 13 AND HE GATHERED UNTO HIM THE CHILDREN OF AMMON AND AMALEK, AND WENT AND4 SMOTE ISRAEL, AND POSSESSED THE CITY OF PALM TREES.L# 14 SO THE CHILDREN OF ISRAEL SERVED EGLON THE KING OF MOAB EIGHTEEN YEARS.I# 15 BUT WHEN THE CHILDREN OF ISRAEL CRIED UNTO THE LORD, THE LORD RAISED N THEM UP A DELIVERER, EHUD THE SON OF GERA, A BENJAMITE, A MAN LEFTHANDED: ANDJ BY HIM THE CHILDREN OF ISRAEL SENT A PRESENT UNTO EGLON THE KING OF MOAB.K# 16 BUT EHUD MADE HIM A DAGGER WHICH HAD TWO EDGES, OF A CUBIT LENGTH; ANDA7 HE DID GIRD IT UNDER HIS RAIMENT UPON HIS RIGHT THIGH. M# 17 AND HE BROUGHT THE PRESENT UNTO EGLON KING OF MOAB: AND EGLON WAS A VERY FAT MAN. G# 18 AND WHEN HE HAD MADE AN END TO OFFER THE PRESENT, HE SENT AWAY THEH PEOPLE THAT BARE THE PRESENT.K# 19 BUT HE HIMSELF TURNED AGAIN FROM THE QUARRIES THAT WERE BY GILGAL, ANDTL SAID, I HAVE A SECRET ERRAND UNTO THEE, O KING: WHO SAID, KEEP SILENCE. AND) ALL THAT STOOD BY HIM WENT OUT FROM HIM.HM# 20 AND EHUD CAME UNTO HIM; AND HE WAS SITTING IN A SUMMER PARLOUR, WHICH HE K HAD FOR HIMSELF ALONE. AND EHUD SAID, I HAVE A MESSAGE FROM GOD UNTO THEE.N AND HE AROSE OUT OF HIS SEAT.I# 21 AND EHUD PUT FORTH HIS LEFT HAND, AND TOOK THE DAGGER FROM HIS RIGHT % THIGH, AND THRUST IT INTO HIS BELLY:RK# 22 AND THE HAFT 00e-o-<%X>%+%O-%TADATADATAALSO WENT IN AFTER THE BLADE; AND THE FAT CLOSED UPON THELK BLADE, SO THAT HE COULD NOT DRAW THE DAGGER OUT OF HIS BELLY; AND THE DIRTC CAME OUT.F# 23 THEN EHUD WENT FORTH THROUGH THE PORCH, AND SHUT THE DOORS OF THE# PARLOUR UPON HIM, AND LOCKED THEM.WM# 24 WHEN HE WAS GONE OUT, HIS SERVANTS CAME; AND WHEN THEY SAW THAT, BEHOLD, M THE DOORS OF THE PARLOUR WERE LOCKED, THEY SAID, SURELY HE COVERETH HIS FEETA IN HIS SUMMER CHAMBER.IL# 25 AND THEY TARRIED TILL THEY WERE ASHAMED: AND, BEHOLD, HE OPENED NOT THEG DOORS OF THE PARLOUR; THEREFORE THEY TOOK A KEY, AND OPENED THEM: AND,D6 BEHOLD, THEIR LORD WAS FALLEN DOWN DEAD ON THE EARTH.M# 26 AND EHUD ESCAPED WHILE THEY TARRIED, AND PASSED BEYOND THE QUARRIES, ANDE ESCAPED UNTO SEIRATH.I# 27 AND IT CAME TO PASS, WHEN HE WAS COME, THAT HE BLEW A TRUMPET IN THE L MOUNTAIN OF EPHRAIM, AND THE CHILDREN OF ISRAEL WENT DOWN WITH HIM FROM THE MOUNT, AND HE BEFORE THEM. M# 28 AND HE SAID UNTO THEM, FOLLOW AFTER ME: FOR THE LORD HATH DELIVERED YOUR L ENEMIES THE MOABITES INTO YOUR HAND. AND THEY WENT DOWN AFTER HIM, AND TOOKF THE FORDS OF JORDAN TOWARD MOAB, AND SUFFERED NOT A MAN TO PASS OVER.J# 29 AND THEY SLEW OF MOAB AT THAT TIME ABOUT TEN THOUSAND MEN, ALL LUSTY,4 AND ALL MEN OF VALOUR; AND THERE ESCAPED NOT A MAN.L# 30 SO MOAB WAS SUBDUED THAT DAY UNDER THE HAND OF ISRAEL. AND THE LAND HAD REST FOURSCORE YEARS.B# 31 AND AFTER HIM WAS SHAMGAR THE SON OF ANATH, WHICH SLEW OF THEK PHILISTINES SIX HUNDRED MEN WITH AN OX GOAD: AND HE ALSO DELIVERED ISRAEL.M = CHAPTER 4 L# 1 AND THE CHILDREN OF ISRAEL AGAIN DID EVIL IN THE SIGHT OF THE LORD, WHEN EHUD WAS DEAD.DF# 2 AND THE LORD SOLD THEM INTO THE HAND OF JABIN KING OF CANAAN, THATG REIGNED IN HAZOR; THE CAPTAIN OF WHOSE HOST WAS SISERA, WHICH DWELT INO HAROSHETH OF THE GENTILES.BK# 3 AND THE CHILDREN OF ISRAEL CRIED UNTO THE LORD: FOR HE HAD NINE HUNDREDRI CHARIOTS OF IRON; AND TWENTY YEARS HE MIGHTILY OPPRESSED THE CHILDREN OFI ISRAEL.I# 4 AND DEBORAH, A PROPHETESS, THE WIFE OF LAPIDOTH, SHE JUDGED ISRAEL AT THAT TIME. L# 5 AND SHE DWELT UNDER THE PALM TREE OF DEBORAH BETWEEN RAMAH AND BETHEL ING MOUNT EPHRAIM: AND THE CHILDREN OF ISRAEL CAME UP TO HER FOR JUDGMENT.HK# 6 AND SHE SENT AND CALLED BARAK THE SON OF ABINOAM OUT OF KEDESHNAPHTALI,M AND SAID UNTO HIM, HATH NOT THE LORD GOD OF ISRAEL COMMANDED, SAYING, GO ANDDM DRAW TOWARD MOUNT TABOR, AND TAKE WITH THEE TEN THOUSAND MEN OF THE CHILDRENR, OF NAPHTALI AND OF THE CHILDREN OF ZEBULUN?H# 7 AND I WILL DRAW UNTO THEE TO THE RIVER KISHON SISERA, THE CAPTAIN OFN JABINS ARMY, WITH HIS CHARIOTS AND HIS MULTITUDE; AND I WILL DELIVER HIM INTO THINE HAND.L# 8 AND BARAK SAID UNTO HER, IF THOU WILT GO WITH ME, THEN I WILL GO: BUT IF. THOU WILT NOT GO WITH ME, THEN I WILL NOT GO.I# 9 AND SHE SAID, I WILL SURELY GO WITH THEE: NOTWITHSTANDING THE JOURNEY,H THAT THOU TAKEST SHALL NOT BE FOR THINE HONOUR; FOR THE LORD SHALL SELLK SISERA INTO THE HAND OF A WOMAN. AND DEBORAH AROSE, AND WENT WITH BARAK TO  KEDESH.M# 10 AND BARAK CALLED ZEBULUN AND NAPHTALI TO KEDESH; AND HE WENT UP WITH TENC8 THOUSAND MEN AT HIS FEET: AND DEBORAH WENT UP WITH HIM.K# 11 NOW HEBER THE KENITE, WHICH WAS OF THE CHILDREN OF HOBAB THE FATHER IN N LAW OF MOSES, HAD SEVERED HIMSELF FROM THE KENITES, AND PITCHED HIS TENT UNTO* THE PLAIN OF ZAANAIM, WHICH IS BY KEDESH.H# 12 AND THEY SHEWED SISERA THAT BARAK THE SON OF ABINOAM WAS GONE UP TO MOUNT TABOR.SE# 13 AND SISERA GATHERED TOGETHER ALL HIS CHARIOTS, EVEN NINE HUNDRED K CHARIOTS OF IRON, AND ALL THE PEOPLE THAT WERE WITH HIM, FROM HAROSHETH OF ' THE GENTILES UNTO THE RIVER OF KISHON.AK# 14 AND DEBORAH SAID UNTO BARAK, UP; FOR THIS IS THE DAY IN WHICH THE LORDLM HATH DELIVERED SISERA INTO THINE HAND: IS NOT THE LORD GONE OUT BEFORE THEE?EE SO BARAK WENT DOWN FROM MOUNT TABOR, AND TEN THOUSAND MEN AFTER HIM..M# 15 AND THE LORD DISCOMFITED SISERA, AND ALL HIS CHARIOTS, AND ALL HIS HOST,UM WITH THE EDGE OF THE SWORD BEFORE BARAK; SO THAT SISERA LIGHTED DOWN OFF HISE$ CHARIOT, AND FLED AWAY ON00e-)D%5%T6%! ! HIS FEET.M# 16 BUT BARAK PURSUED AFTER THE CHARIOTS, AND AFTER THE HOST, UNTO HAROSHETHHM OF THE GENTILES: AND ALL THE HOST OF SISERA FELL UPON THE EDGE OF THE SWORD;R AND THERE WAS NOT A MAN LEFT.I# 17 HOWBEIT SISERA FLED AWAY ON HIS FEET TO THE TENT OF JAEL THE WIFE OFMN HEBER THE KENITE: FOR THERE WAS PEACE BETWEEN JABIN THE KING OF HAZOR AND THE HOUSE OF HEBER THE KENITE.NK# 18 AND JAEL WENT OUT TO MEET SISERA, AND SAID UNTO HIM, TURN IN, MY LORD,GK TURN IN TO ME; FEAR NOT. AND WHEN HE HAD TURNED IN UNTO HER INTO THE TENT,U SHE COVERED HIM WITH A MANTLE.TM# 19 AND HE SAID UNTO HER, GIVE ME, I PRAY THEE, A LITTLE WATER TO DRINK; FORNG I AM THIRSTY. AND SHE OPENED A BOTTLE OF MILK, AND GAVE HIM DRINK, ANDS COVERED HIM.NL# 20 AGAIN HE SAID UNTO HER, STAND IN THE DOOR OF THE TENT, AND IT SHALL BE,L WHEN ANY MAN DOTH COME AND ENQUIRE OF THEE, AND SAY, IS THERE ANY MAN HERE? THAT THOU SHALT SAY, NO.TM# 21 THEN JAEL HEBERS WIFE TOOK A NAIL OF THE TENT, AND TOOK AN HAMMER IN HERHI HAND, AND WENT SOFTLY UNTO HIM, AND SMOTE THE NAIL INTO HIS TEMPLES, ANDEK FASTENED IT INTO THE GROUND: FOR HE WAS FAST ASLEEP AND WEARY. SO HE DIED. I# 22 AND, BEHOLD, AS BARAK PURSUED SISERA, JAEL CAME OUT TO MEET HIM, ANDNN SAID UNTO HIM, COME, AND I WILL SHEW THEE THE MAN WHOM THOU SEEKEST. AND WHENH HE CAME INTO HER TENT, BEHOLD, SISERA LAY DEAD, AND THE NAIL WAS IN HIS TEMPLES.ML# 23 SO GOD SUBDUED ON THAT DAY JABIN THE KING OF CANAAN BEFORE THE CHILDREN OF ISRAEL.NL# 24 AND THE HAND OF THE CHILDREN OF ISRAEL PROSPERED, AND PREVAILED AGAINSTI JABIN THE KING OF CANAAN, UNTIL THEY HAD DESTROYED JABIN KING OF CANAAN.P = CHAPTER 5 G# 1 THEN SANG DEBORAH AND BARAK THE SON OF ABINOAM ON THAT DAY, SAYING,EL# 2 PRAISE YE THE LORD FOR THE AVENGING OF ISRAEL, WHEN THE PEOPLE WILLINGLY OFFERED THEMSELVES.K# 3 HEAR, O YE KINGS; GIVE EAR, O YE PRINCES; I, EVEN I, WILL SING UNTO THEM4 LORD; I WILL SING PRAISE TO THE LORD GOD OF ISRAEL.M# 4 LORD, WHEN THOU WENTEST OUT OF SEIR, WHEN THOU MARCHEDST OUT OF THE FIELDRN OF EDOM, THE EARTH TREMBLED, AND THE HEAVENS DROPPED, THE CLOUDS ALSO DROPPED WATER. J# 5 THE MOUNTAINS MELTED FROM BEFORE THE LORD, EVEN THAT SINAI FROM BEFORE THE LORD GOD OF ISRAEL.E# 6 IN THE DAYS OF SHAMGAR THE SON OF ANATH, IN THE DAYS OF JAEL, THEED HIGHWAYS WERE UNOCCUPIED, AND THE TRAVELLERS WALKED THROUGH BYWAYS.M# 7 THE INHABITANTS OF THE VILLAGES CEASED, THEY CEASED IN ISRAEL, UNTIL THATL2 I DEBORAH AROSE, THAT I AROSE A MOTHER IN ISRAEL.I# 8 THEY CHOSE NEW GODS; THEN WAS WAR IN THE GATES: WAS THERE A SHIELD ORD+ SPEAR SEEN AMONG FORTY THOUSAND IN ISRAEL?OG# 9 MY HEART IS TOWARD THE GOVERNORS OF ISRAEL, THAT OFFERED THEMSELVESS/ WILLINGLY AMONG THE PEOPLE. BLESS YE THE LORD.NM# 10 SPEAK, YE THAT RIDE ON WHITE ASSES, YE THAT SIT IN JUDGMENT, AND WALK BYE THE WAY.,G# 11 THEY THAT ARE DELIVERED FROM THE NOISE OF ARCHERS IN THE PLACES OFLN DRAWING WATER, THERE SHALL THEY REHEARSE THE RIGHTEOUS ACTS OF THE LORD, EVENJ THE RIGHTEOUS ACTS TOWARD THE INHABITANTS OF HIS VILLAGES IN ISRAEL: THEN3 SHALL THE PEOPLE OF THE LORD GO DOWN TO THE GATES.DI# 12 AWAKE, AWAKE, DEBORAH: AWAKE, AWAKE, UTTER A SONG: ARISE, BARAK, ANDT1 LEAD THY CAPTIVITY CAPTIVE, THOU SON OF ABINOAM.HL# 13 THEN HE MADE HIM THAT REMAINETH HAVE DOMINION OVER THE NOBLES AMONG THE8 PEOPLE: THE LORD MADE ME HAVE DOMINION OVER THE MIGHTY.H# 14 OUT OF EPHRAIM WAS THERE A ROOT OF THEM AGAINST AMALEK; AFTER THEE,J BENJAMIN, AMONG THY PEOPLE; OUT OF MACHIR CAME DOWN GOVERNORS, AND OUT OF0 ZEBULUN THEY THAT HANDLE THE PEN OF THE WRITER.K# 15 AND THE PRINCES OF ISSACHAR WERE WITH DEBORAH; EVEN ISSACHAR, AND ALSO N BARAK: HE WAS SENT ON FOOT INTO THE VALLEY. FOR THE DIVISIONS OF REUBEN THERE WERE GREAT THOUGHTS OF HEART.H# 16 WHY ABODEST THOU AMONG THE SHEEPFOLDS, TO HEAR THE BLEATINGS OF THEJ FLOCKS? FOR THE DIVISIONS OF REUBEN THERE WERE GREAT SEARCHINGS OF HEART.G# 17 GILEAD ABODE BEYOND JORDAN: AND WHY DID DAN REMAIN IN SHIPS? ASHERL7 CONTINUED ON THE SEA SHORE, AND ABODE IN HIS BREACHES.NK# 18 ZEBULUN AND00e-o-<%X>%+%O-%TADATADATA NAPHTALI WERE A PEOPLE THAT JEOPARDED THEIR LIVES UNTO THER' DEATH IN THE HIGH PLACES OF THE FIELD.M# 19 THE KINGS CAME AND FOUGHT, THEN FOUGHT THE KINGS OF CANAAN IN TAANACH BY3 THE WATERS OF MEGIDDO; THEY TOOK NO GAIN OF MONEY. G# 20 THEY FOUGHT FROM HEAVEN; THE STARS IN THEIR COURSES FOUGHT AGAINSTS SISERA.G# 21 THE RIVER OF KISHON SWEPT THEM AWAY, THAT ANCIENT RIVER, THE RIVERA4 KISHON. O MY SOUL, THOU HAST TRODDEN DOWN STRENGTH.G# 22 THEN WERE THE HORSEHOOFS BROKEN BY THE MEANS OF THE PRANSINGS, THE PRANSINGS OF THEIR MIGHTY ONES.F# 23 CURSE YE MEROZ, SAID THE ANGEL OF THE LORD, CURSE YE BITTERLY THEK INHABITANTS THEREOF; BECAUSE THEY CAME NOT TO THE HELP OF THE LORD, TO THER% HELP OF THE LORD AGAINST THE MIGHTY.YL# 24 BLESSED ABOVE WOMEN SHALL JAEL THE WIFE OF HEBER THE KENITE BE, BLESSED& SHALL SHE BE ABOVE WOMEN IN THE TENT.I# 25 HE ASKED WATER, AND SHE GAVE HIM MILK; SHE BROUGHT FORTH BUTTER IN AR LORDLY DISH.NM# 26 SHE PUT HER HAND TO THE NAIL, AND HER RIGHT HAND TO THE WORKMENS HAMMER;K AND WITH THE HAMMER SHE SMOTE SISERA, SHE SMOTE OFF HIS HEAD, WHEN SHE HADL* PIERCED AND STRICKEN THROUGH HIS TEMPLES.I# 27 AT HER FEET HE BOWED, HE FELL, HE LAY DOWN: AT HER FEET HE BOWED, HEL/ FELL: WHERE HE BOWED, THERE HE FELL DOWN DEAD.NG# 28 THE MOTHER OF SISERA LOOKED OUT AT A WINDOW, AND CRIED THROUGH THE K LATTICE, WHY IS HIS CHARIOT SO LONG IN COMING? WHY TARRY THE WHEELS OF HISO CHARIOTS?G# 29 HER WISE LADIES ANSWERED HER, YEA, SHE RETURNED ANSWER TO HERSELF,NG# 30 HAVE THEY NOT SPED? HAVE THEY NOT DIVIDED THE PREY; TO EVERY MAN AOL DAMSEL OR TWO; TO SISERA A PREY OF DIVERS COLOURS, A PREY OF DIVERS COLOURSK OF NEEDLEWORK, OF DIVERS COLOURS OF NEEDLEWORK ON BOTH SIDES, MEET FOR THEL# NECKS OF THEM THAT TAKE THE SPOIL? K# 31 SO LET ALL THINE ENEMIES PERISH, O LORD: BUT LET THEM THAT LOVE HIM BEHI AS THE SUN WHEN HE GOETH FORTH IN HIS MIGHT. AND THE LAND HAD REST FORTY  YEARS.A = CHAPTER 6 N# 1 AND THE CHILDREN OF ISRAEL DID EVIL IN THE SIGHT OF THE LORD: AND THE LORD4 DELIVERED THEM INTO THE HAND OF MIDIAN SEVEN YEARS.G# 2 AND THE HAND OF MIDIAN PREVAILED AGAINST ISRAEL: AND BECAUSE OF THEEF MIDIANITES THE CHILDREN OF ISRAEL MADE THEM THE DENS WHICH ARE IN THE( MOUNTAINS, AND CAVES, AND STRONG HOLDS.M# 3 AND SO IT WAS, WHEN ISRAEL HAD SOWN, THAT THE MIDIANITES CAME UP, AND THEOJ AMALEKITES, AND THE CHILDREN OF THE EAST, EVEN THEY CAME UP AGAINST THEM;L# 4 AND THEY ENCAMPED AGAINST THEM, AND DESTROYED THE INCREASE OF THE EARTH,L TILL THOU COME UNTO GAZA, AND LEFT NO SUSTENANCE FOR ISRAEL, NEITHER SHEEP, NOR OX, NOR ASS.NH# 5 FOR THEY CAME UP WITH THEIR CATTLE AND THEIR TENTS, AND THEY CAME ASH GRASSHOPPERS FOR MULTITUDE; FOR BOTH THEY AND THEIR CAMELS WERE WITHOUT6 NUMBER: AND THEY ENTERED INTO THE LAND TO DESTROY IT.J# 6 AND ISRAEL WAS GREATLY IMPOVERISHED BECAUSE OF THE MIDIANITES; AND THE( CHILDREN OF ISRAEL CRIED UNTO THE LORD.H# 7 AND IT CAME TO PASS, WHEN THE CHILDREN OF ISRAEL CRIED UNTO THE LORD BECAUSE OF THE MIDIANITES,UM# 8 THAT THE LORD SENT A PROPHET UNTO THE CHILDREN OF ISRAEL, WHICH SAID UNTORJ THEM, THUS SAITH THE LORD GOD OF ISRAEL, I BROUGHT YOU UP FROM EGYPT, AND/ BROUGHT YOU FORTH OUT OF THE HOUSE OF BONDAGE;AM# 9 AND I DELIVERED YOU OUT OF THE HAND OF THE EGYPTIANS, AND OUT OF THE HANDYL OF ALL THAT OPPRESSED YOU, AND DRAVE THEM OUT FROM BEFORE YOU, AND GAVE YOU THEIR LAND;J# 10 AND I SAID UNTO YOU, I AM THE LORD YOUR GOD; FEAR NOT THE GODS OF THEC AMORITES, IN WHOSE LAND YE DWELL: BUT YE HAVE NOT OBEYED MY VOICE.TK# 11 AND THERE CAME AN ANGEL OF THE LORD, AND SAT UNDER AN OAK WHICH WAS INTM OPHRAH, THAT PERTAINED UNTO JOASH THE ABIEZRITE: AND HIS SON GIDEON THRESHEDU8 WHEAT BY THE WINEPRESS, TO HIDE IT FROM THE MIDIANITES.M# 12 AND THE ANGEL OF THE LORD APPEARED UNTO HIM, AND SAID UNTO HIM, THE LORDS) IS WITH THEE, THOU MIGHTY MAN OF VALOUR. K# 13 AND GIDEON SAID UNTO HIM, OH MY LORD, IF THE LORD BE WITH US, WHY THEN N IS ALL THIS BEFALLEN US? AND WHERE BE ALL HIS MIRACLES WHICH OUR FATHERS TOLDN US OF, SAYING, DID NOT 00e-)D%5%T6%! !THE LORD BRING US UP FROM EGYPT? BUT NOW THE LORD HATH@ FORSAKEN US, AND DELIVERED US INTO THE HANDS OF THE MIDIANITES.K# 14 AND THE LORD LOOKED UPON HIM, AND SAID, GO IN THIS THY MIGHT, AND THOUAI SHALT SAVE ISRAEL FROM THE HAND OF THE MIDIANITES: HAVE NOT I SENT THEE?,M# 15 AND HE SAID UNTO HIM, OH MY LORD, WHEREWITH SHALL I SAVE ISRAEL? BEHOLD,TG MY FAMILY IS POOR IN MANASSEH, AND I AM THE LEAST IN MY FATHERS HOUSE.EK# 16 AND THE LORD SAID UNTO HIM, SURELY I WILL BE WITH THEE, AND THOU SHALTI! SMITE THE MIDIANITES AS ONE MAN.PL# 17 AND HE SAID UNTO HIM, IF NOW I HAVE FOUND GRACE IN THY SIGHT, THEN SHEW% ME A SIGN THAT THOU TALKEST WITH ME.UK# 18 DEPART NOT HENCE, I PRAY THEE, UNTIL I COME UNTO THEE, AND BRING FORTHHN MY PRESENT, AND SET IT BEFORE THEE. AND HE SAID, I WILL TARRY UNTIL THOU COME AGAIN.WI# 19 AND GIDEON WENT IN, AND MADE READY A KID, AND UNLEAVENED CAKES OF AN M EPHAH OF FLOUR: THE FLESH HE PUT IN A BASKET, AND HE PUT THE BROTH IN A POT, = AND BROUGHT IT OUT UNTO HIM UNDER THE OAK, AND PRESENTED IT.EJ# 20 AND THE ANGEL OF GOD SAID UNTO HIM, TAKE THE FLESH AND THE UNLEAVENEDK CAKES, AND LAY THEM UPON THIS ROCK, AND POUR OUT THE BROTH. AND HE DID SO.AJ# 21 THEN THE ANGEL OF THE LORD PUT FORTH THE END OF THE STAFF THAT WAS INL HIS HAND, AND TOUCHED THE FLESH AND THE UNLEAVENED CAKES; AND THERE ROSE UPL FIRE OUT OF THE ROCK, AND CONSUMED THE FLESH AND THE UNLEAVENED CAKES. THEN1 THE ANGEL OF THE LORD DEPARTED OUT OF HIS SIGHT. M# 22 AND WHEN GIDEON PERCEIVED THAT HE WAS AN ANGEL OF THE LORD, GIDEON SAID,0M ALAS, O LORD GOD! FOR BECAUSE I HAVE SEEN AN ANGEL OF THE LORD FACE TO FACE. M# 23 AND THE LORD SAID UNTO HIM, PEACE BE UNTO THEE; FEAR NOT: THOU SHALT NOT  DIE.EB# 24 THEN GIDEON BUILT AN ALTAR THERE UNTO THE LORD, AND CALLED ITD JEHOVAHSHALOM: UNTO THIS DAY IT IS YET IN OPHRAH OF THE ABIEZRITES.J# 25 AND IT CAME TO PASS THE SAME NIGHT, THAT THE LORD SAID UNTO HIM, TAKEK THY FATHERS YOUNG BULLOCK, EVEN THE SECOND BULLOCK OF SEVEN YEARS OLD, ANDEJ THROW DOWN THE ALTAR OF BAAL THAT THY FATHER HATH, AND CUT DOWN THE GROVE THAT IS BY IT:EK# 26 AND BUILD AN ALTAR UNTO THE LORD THY GOD UPON THE TOP OF THIS ROCK, INEL THE ORDERED PLACE, AND TAKE THE SECOND BULLOCK, AND OFFER A BURNT SACRIFICE6 WITH THE WOOD OF THE GROVE WHICH THOU SHALT CUT DOWN.K# 27 THEN GIDEON TOOK TEN MEN OF HIS SERVANTS, AND DID AS THE LORD HAD SAIDSN UNTO HIM: AND SO IT WAS, BECAUSE HE FEARED HIS FATHERS HOUSEHOLD, AND THE MENF OF THE CITY, THAT HE COULD NOT DO IT BY DAY, THAT HE DID IT BY NIGHT.I# 28 AND WHEN THE MEN OF THE CITY AROSE EARLY IN THE MORNING, BEHOLD, THE6L ALTAR OF BAAL WAS CAST DOWN, AND THE GROVE WAS CUT DOWN THAT WAS BY IT, AND> THE SECOND BULLOCK WAS OFFERED UPON THE ALTAR THAT WAS BUILT.J# 29 AND THEY SAID ONE TO ANOTHER, WHO HATH DONE THIS THING? AND WHEN THEYM ENQUIRED AND ASKED, THEY SAID, GIDEON THE SON OF JOASH HATH DONE THIS THING.AM# 30 THEN THE MEN OF THE CITY SAID UNTO JOASH, BRING OUT THY SON, THAT HE MAYYJ DIE: BECAUSE HE HATH CAST DOWN THE ALTAR OF BAAL, AND BECAUSE HE HATH CUT DOWN THE GROVE THAT WAS BY IT.TL# 31 AND JOASH SAID UNTO ALL THAT STOOD AGAINST HIM, WILL YE PLEAD FOR BAAL?M WILL YE SAVE HIM? HE THAT WILL PLEAD FOR HIM, LET HIM BE PUT TO DEATH WHILSTAJ IT IS YET MORNING: IF HE BE A GOD, LET HIM PLEAD FOR HIMSELF, BECAUSE ONE HATH CAST DOWN HIS ALTAR.J# 32 THEREFORE ON THAT DAY HE CALLED HIM JERUBBAAL, SAYING, LET BAAL PLEAD4 AGAINST HIM, BECAUSE HE HATH THROWN DOWN HIS ALTAR.L# 33 THEN ALL THE MIDIANITES AND THE AMALEKITES AND THE CHILDREN OF THE EASTM WERE GATHERED TOGETHER, AND WENT OVER, AND PITCHED IN THE VALLEY OF JEZREEL.TL# 34 BUT THE SPIRIT OF THE LORD CAME UPON GIDEON, AND HE BLEW A TRUMPET; AND ABIEZER WAS GATHERED AFTER HIM.J# 35 AND HE SENT MESSENGERS THROUGHOUT ALL MANASSEH; WHO ALSO WAS GATHEREDI AFTER HIM: AND HE SENT MESSENGERS UNTO ASHER, AND UNTO ZEBULUN, AND UNTOH) NAPHTALI; AND THEY CAME UP TO MEET THEM.NM# 36 AND GIDEON SAID UNTO GOD, IF THOU WILT SAVE ISRAEL BY MINE HAND, AS THOUD HAST SAID,EK# 37 BEHOLD, I W00e-o-<%X>%+%O-%TADATADATAILL PUT A FLEECE OF WOOL IN THE FLOOR; AND IF THE DEW BE ONIL THE FLEECE ONLY, AND IT BE DRY UPON ALL THE EARTH BESIDE, THEN SHALL I KNOW< THAT THOU WILT SAVE ISRAEL BY MINE HAND, AS THOU HAST SAID.M# 38 AND IT WAS SO: FOR HE ROSE UP EARLY ON THE MORROW, AND THRUST THE FLEECEDG TOGETHER, AND WRINGED THE DEW OUT OF THE FLEECE, A BOWL FULL OF WATER.TK# 39 AND GIDEON SAID UNTO GOD, LET NOT THINE ANGER BE HOT AGAINST ME, AND I,L WILL SPEAK BUT THIS ONCE: LET ME PROVE, I PRAY THEE, BUT THIS ONCE WITH THEL FLEECE; LET IT NOW BE DRY ONLY UPON THE FLEECE, AND UPON ALL THE GROUND LET THERE BE DEW.H# 40 AND GOD DID SO THAT NIGHT: FOR IT WAS DRY UPON THE FLEECE ONLY, AND! THERE WAS DEW ON ALL THE GROUND. = CHAPTER 7 N# 1 THEN JERUBBAAL, WHO IS GIDEON, AND ALL THE PEOPLE THAT WERE WITH HIM, ROSEH UP EARLY, AND PITCHED BESIDE THE WELL OF HAROD: SO THAT THE HOST OF THEH MIDIANITES WERE ON THE NORTH SIDE OF THEM, BY THE HILL OF MOREH, IN THE VALLEY.M# 2 AND THE LORD SAID UNTO GIDEON, THE PEOPLE THAT ARE WITH THEE ARE TOO MANYEM FOR ME TO GIVE THE MIDIANITES INTO THEIR HANDS, LEST ISRAEL VAUNT THEMSELVESD1 AGAINST ME, SAYING, MINE OWN HAND HATH SAVED ME.ED# 3 NOW THEREFORE GO TO, PROCLAIM IN THE EARS OF THE PEOPLE, SAYING,L WHOSOEVER IS FEARFUL AND AFRAID, LET HIM RETURN AND DEPART EARLY FROM MOUNTL GILEAD. AND THERE RETURNED OF THE PEOPLE TWENTY AND TWO THOUSAND; AND THERE REMAINED TEN THOUSAND.EJ# 4 AND THE LORD SAID UNTO GIDEON, THE PEOPLE ARE YET TOO MANY; BRING THEMJ DOWN UNTO THE WATER, AND I WILL TRY THEM FOR THEE THERE: AND IT SHALL BE,N THAT OF WHOM I SAY UNTO THEE, THIS SHALL GO WITH THEE, THE SAME SHALL GO WITHJ THEE; AND OF WHOMSOEVER I SAY UNTO THEE, THIS SHALL NOT GO WITH THEE, THE SAME SHALL NOT GO.,H# 5 SO HE BROUGHT DOWN THE PEOPLE UNTO THE WATER: AND THE LORD SAID UNTOF GIDEON, EVERY ONE THAT LAPPETH OF THE WATER WITH HIS TONGUE, AS A DOGL LAPPETH, HIM SHALT THOU SET BY HIMSELF; LIKEWISE EVERY ONE THAT BOWETH DOWN UPON HIS KNEES TO DRINK.NJ# 6 AND THE NUMBER OF THEM THAT LAPPED, PUTTING THEIR HAND TO THEIR MOUTH,M WERE THREE HUNDRED MEN: BUT ALL THE REST OF THE PEOPLE BOWED DOWN UPON THEIRG KNEES TO DRINK WATER.L# 7 AND THE LORD SAID UNTO GIDEON, BY THE THREE HUNDRED MEN THAT LAPPED WILLN I SAVE YOU, AND DELIVER THE MIDIANITES INTO THINE HAND: AND LET ALL THE OTHER$ PEOPLE GO EVERY MAN UNTO HIS PLACE.I# 8 SO THE PEOPLE TOOK VICTUALS IN THEIR HAND, AND THEIR TRUMPETS: AND HEKN SENT ALL THE REST OF ISRAEL EVERY MAN UNTO HIS TENT, AND RETAINED THOSE THREEC HUNDRED MEN: AND THE HOST OF MIDIAN WAS BENEATH HIM IN THE VALLEY. K# 9 AND IT CAME TO PASS THE SAME NIGHT, THAT THE LORD SAID UNTO HIM, ARISE, F GET THEE DOWN UNTO THE HOST; FOR I HAVE DELIVERED IT INTO THINE HAND.M# 10 BUT IF THOU FEAR TO GO DOWN, GO THOU WITH PHURAH THY SERVANT DOWN TO THED HOST:J# 11 AND THOU SHALT HEAR WHAT THEY SAY; AND AFTERWARD SHALL THINE HANDS BEI STRENGTHENED TO GO DOWN UNTO THE HOST. THEN WENT HE DOWN WITH PHURAH HISAA SERVANT UNTO THE OUTSIDE OF THE ARMED MEN THAT WERE IN THE HOST. K# 12 AND THE MIDIANITES AND THE AMALEKITES AND ALL THE CHILDREN OF THE EASTSJ LAY ALONG IN THE VALLEY LIKE GRASSHOPPERS FOR MULTITUDE; AND THEIR CAMELS@ WERE WITHOUT NUMBER, AS THE SAND BY THE SEA SIDE FOR MULTITUDE.M# 13 AND WHEN GIDEON WAS COME, BEHOLD, THERE WAS A MAN THAT TOLD A DREAM UNTOAK HIS FELLOW, AND SAID, BEHOLD, I DREAMED A DREAM, AND, LO, A CAKE OF BARLEYTJ BREAD TUMBLED INTO THE HOST OF MIDIAN, AND CAME UNTO A TENT, AND SMOTE IT: THAT IT FELL, AND OVERTURNED IT, THAT THE TENT LAY ALONG.M# 14 AND HIS FELLOW ANSWERED AND SAID, THIS IS NOTHING ELSE SAVE THE SWORD OFLE GIDEON THE SON OF JOASH, A MAN OF ISRAEL: FOR INTO HIS HAND HATH GODS$ DELIVERED MIDIAN, AND ALL THE HOST.G# 15 AND IT WAS SO, WHEN GIDEON HEARD THE TELLING OF THE DREAM, AND THEEJ INTERPRETATION THEREOF, THAT HE WORSHIPPED, AND RETURNED INTO THE HOST OFM ISRAEL, AND SAID, ARISE; FOR THE LORD HATH DELIVERED INTO YOUR HAND THE HOSTN OF MIDIAN. L# 16 AND HE DIVIDED THE THREE HUNDRED MEN INTO THREE COMPANIES, AND HE PUT00e-)D%5%T6%! ! AF TRUMPET IN EVERY MANS HAND, WITH EMPTY PITCHERS, AND LAMPS WITHIN THE PITCHERS.L# 17 AND HE SAID UNTO THEM, LOOK ON ME, AND DO LIKEWISE: AND, BEHOLD, WHEN IL COME TO THE OUTSIDE OF THE CAMP, IT SHALL BE THAT, AS I DO, SO SHALL YE DO.M# 18 WHEN I BLOW WITH A TRUMPET, I AND ALL THAT ARE WITH ME, THEN BLOW YE THERM TRUMPETS ALSO ON EVERY SIDE OF ALL THE CAMP, AND SAY, THE SWORD OF THE LORD,O AND OF GIDEON.SM# 19 SO GIDEON, AND THE HUNDRED MEN THAT WERE WITH HIM, CAME UNTO THE OUTSIDESM OF THE CAMP IN THE BEGINNING OF THE MIDDLE WATCH; AND THEY HAD BUT NEWLY SETHK THE WATCH: AND THEY BLEW THE TRUMPETS, AND BRAKE THE PITCHERS THAT WERE INA THEIR HANDS.NK# 20 AND THE THREE COMPANIES BLEW THE TRUMPETS, AND BRAKE THE PITCHERS, ANDDM HELD THE LAMPS IN THEIR LEFT HANDS, AND THE TRUMPETS IN THEIR RIGHT HANDS TOHC BLOW WITHAL: AND THEY CRIED, THE SWORD OF THE LORD, AND OF GIDEON.OL# 21 AND THEY STOOD EVERY MAN IN HIS PLACE ROUND ABOUT THE CAMP; AND ALL THE HOST RAN, AND CRIED, AND FLED.I# 22 AND THE THREE HUNDRED BLEW THE TRUMPETS, AND THE LORD SET EVERY MANSEM SWORD AGAINST HIS FELLOW, EVEN THROUGHOUT ALL THE HOST: AND THE HOST FLED TOAI BETHSHITTAH IN ZERERATH, AND TO THE BORDER OF ABELMEHOLAH, UNTO TABBATH. L# 23 AND THE MEN OF ISRAEL GATHERED THEMSELVES TOGETHER OUT OF NAPHTALI, ANDI OUT OF ASHER, AND OUT OF ALL MANASSEH, AND PURSUED AFTER THE MIDIANITES.AJ# 24 AND GIDEON SENT MESSENGERS THROUGHOUT ALL MOUNT EPHRAIM, SAYING, COMEL DOWN AGAINST THE MIDIANITES, AND TAKE BEFORE THEM THE WATERS UNTO BETHBARAHJ AND JORDAN. THEN ALL THE MEN OF EPHRAIM GATHERED THEMSELVES TOGETHER, AND+ TOOK THE WATERS UNTO BETHBARAH AND JORDAN.LI# 25 AND THEY TOOK TWO PRINCES OF THE MIDIANITES, OREB AND ZEEB; AND THEYBK SLEW OREB UPON THE ROCK OREB, AND ZEEB THEY SLEW AT THE WINEPRESS OF ZEEB,LL AND PURSUED MIDIAN, AND BROUGHT THE HEADS OF OREB AND ZEEB TO GIDEON ON THE OTHER SIDE JORDAN. = CHAPTER 8 L# 1 AND THE MEN OF EPHRAIM SAID UNTO HIM, WHY HAST THOU SERVED US THUS, THATJ THOU CALLEDST US NOT, WHEN THOU WENTEST TO FIGHT WITH THE MIDIANITES? AND! THEY DID CHIDE WITH HIM SHARPLY.TL# 2 AND HE SAID UNTO THEM, WHAT HAVE I DONE NOW IN COMPARISON OF YOU? IS NOTJ THE GLEANING OF THE GRAPES OF EPHRAIM BETTER THAN THE VINTAGE OF ABIEZER?L# 3 GOD HATH DELIVERED INTO YOUR HANDS THE PRINCES OF MIDIAN, OREB AND ZEEB:L AND WHAT WAS I ABLE TO DO IN COMPARISON OF YOU? THEN THEIR ANGER WAS ABATED# TOWARD HIM, WHEN HE HAD SAID THAT.AM# 4 AND GIDEON CAME TO JORDAN, AND PASSED OVER, HE, AND THE THREE HUNDRED MENE. THAT WERE WITH HIM, FAINT, YET PURSUING THEM.J# 5 AND HE SAID UNTO THE MEN OF SUCCOTH, GIVE, I PRAY YOU, LOAVES OF BREADK UNTO THE PEOPLE THAT FOLLOW ME; FOR THEY BE FAINT, AND I AM PURSUING AFTERM% ZEBAH AND ZALMUNNA, KINGS OF MIDIAN. L# 6 AND THE PRINCES OF SUCCOTH SAID, ARE THE HANDS OF ZEBAH AND ZALMUNNA NOW: IN THINE HAND, THAT WE SHOULD GIVE BREAD UNTO THINE ARMY?E# 7 AND GIDEON SAID, THEREFORE WHEN THE LORD HATH DELIVERED ZEBAH ANDML ZALMUNNA INTO MINE HAND, THEN I WILL TEAR YOUR FLESH WITH THE THORNS OF THE WILDERNESS AND WITH BRIERS.J# 8 AND HE WENT UP THENCE TO PENUEL, AND SPAKE UNTO THEM LIKEWISE: AND THEC MEN OF PENUEL ANSWERED HIM AS THE MEN OF SUCCOTH HAD ANSWERED HIM.NJ# 9 AND HE SPAKE ALSO UNTO THE MEN OF PENUEL, SAYING, WHEN I COME AGAIN IN% PEACE, I WILL BREAK DOWN THIS TOWER.AL# 10 NOW ZEBAH AND ZALMUNNA WERE IN KARKOR, AND THEIR HOSTS WITH THEM, ABOUTM FIFTEEN THOUSAND MEN, ALL THAT WERE LEFT OF ALL THE HOSTS OF THE CHILDREN OFOM THE EAST: FOR THERE FELL AN HUNDRED AND TWENTY THOUSAND MEN THAT DREW SWORD. M# 11 AND GIDEON WENT UP BY THE WAY OF THEM THAT DWELT IN TENTS ON THE EAST OF:A NOBAH AND JOGBEHAH, AND SMOTE THE HOST; FOR THE HOST WAS SECURE.WJ# 12 AND WHEN ZEBAH AND ZALMUNNA FLED, HE PURSUED AFTER THEM, AND TOOK THEG TWO KINGS OF MIDIAN, ZEBAH AND ZALMUNNA, AND DISCOMFITED ALL THE HOST.LL# 13 AND GIDEON THE SON OF JOASH RETURNED FROM BATTLE BEFORE THE SUN WAS UP,K# 14 AND CAUGHT A YOUNG MAN OF THE MEN OF SUCCOTH, AND ENQUIRED OF HIM: ANDEK HE DESCRIBED UNTO00e-o-<%X>%+%O-%TADATADATA HIM THE PRINCES OF SUCCOTH, AND THE ELDERS THEREOF, EVENE THREESCORE AND SEVENTEEN MEN.D# 15 AND HE CAME UNTO THE MEN OF SUCCOTH, AND SAID, BEHOLD ZEBAH ANDJ ZALMUNNA, WITH WHOM YE DID UPBRAID ME, SAYING, ARE THE HANDS OF ZEBAH ANDL ZALMUNNA NOW IN THINE HAND, THAT WE SHOULD GIVE BREAD UNTO THY MEN THAT ARE WEARY?LI# 16 AND HE TOOK THE ELDERS OF THE CITY, AND THORNS OF THE WILDERNESS ANDT4 BRIERS, AND WITH THEM HE TAUGHT THE MEN OF SUCCOTH.H# 17 AND HE BEAT DOWN THE TOWER OF PENUEL, AND SLEW THE MEN OF THE CITY.L# 18 THEN SAID HE UNTO ZEBAH AND ZALMUNNA, WHAT MANNER OF MEN WERE THEY WHOMI YE SLEW AT TABOR? AND THEY ANSWERED, AS THOU ART, SO WERE THEY; EACH ONEN" RESEMBLED THE CHILDREN OF A KING.K# 19 AND HE SAID, THEY WERE MY BRETHREN, EVEN THE SONS OF MY MOTHER: AS THEI? LORD LIVETH, IF YE HAD SAVED THEM ALIVE, I WOULD NOT SLAY YOU.DL# 20 AND HE SAID UNTO JETHER HIS FIRSTBORN, UP, AND SLAY THEM. BUT THE YOUTH? DREW NOT HIS SWORD: FOR HE FEARED, BECAUSE HE WAS YET A YOUTH.NJ# 21 THEN ZEBAH AND ZALMUNNA SAID, RISE THOU, AND FALL UPON US: FOR AS THEK MAN IS, SO IS HIS STRENGTH. AND GIDEON AROSE, AND SLEW ZEBAH AND ZALMUNNA,S= AND TOOK AWAY THE ORNAMENTS THAT WERE ON THEIR CAMELS NECKS.AK# 22 THEN THE MEN OF ISRAEL SAID UNTO GIDEON, RULE THOU OVER US, BOTH THOU,AM AND THY SON, AND THY SONS SON ALSO: FOR THOU HAST DELIVERED US FROM THE HANDA OF MIDIAN.TJ# 23 AND GIDEON SAID UNTO THEM, I WILL NOT RULE OVER YOU, NEITHER SHALL MY1 SON RULE OVER YOU: THE LORD SHALL RULE OVER YOU.1H# 24 AND GIDEON SAID UNTO THEM, I WOULD DESIRE A REQUEST OF YOU, THAT YEG WOULD GIVE ME EVERY MAN THE EARRINGS OF HIS PREY. (FOR THEY HAD GOLDENS* EARRINGS, BECAUSE THEY WERE ISHMAELITES.)F# 25 AND THEY ANSWERED, WE WILL WILLINGLY GIVE THEM. AND THEY SPREAD AB GARMENT, AND DID CAST THEREIN EVERY MAN THE EARRINGS OF HIS PREY.K# 26 AND THE WEIGHT OF THE GOLDEN EARRINGS THAT HE REQUESTED WAS A THOUSANDTM AND SEVEN HUNDRED SHEKELS OF GOLD; BESIDE ORNAMENTS, AND COLLARS, AND PURPLEDI RAIMENT THAT WAS ON THE KINGS OF MIDIAN, AND BESIDE THE CHAINS THAT WEREQ ABOUT THEIR CAMELS NECKS.F# 27 AND GIDEON MADE AN EPHOD THEREOF, AND PUT IT IN HIS CITY, EVEN INM OPHRAH: AND ALL ISRAEL WENT THITHER A WHORING AFTER IT: WHICH THING BECAME AL% SNARE UNTO GIDEON, AND TO HIS HOUSE.TH# 28 THUS WAS MIDIAN SUBDUED BEFORE THE CHILDREN OF ISRAEL, SO THAT THEYL LIFTED UP THEIR HEADS NO MORE. AND THE COUNTRY WAS IN QUIETNESS FORTY YEARS IN THE DAYS OF GIDEON.ID# 29 AND JERUBBAAL THE SON OF JOASH WENT AND DWELT IN HIS OWN HOUSE.L# 30 AND GIDEON HAD THREESCORE AND TEN SONS OF HIS BODY BEGOTTEN: FOR HE HAD MANY WIVES.J# 31 AND HIS CONCUBINE THAT WAS IN SHECHEM, SHE ALSO BARE HIM A SON, WHOSE NAME HE CALLED ABIMELECH.J# 32 AND GIDEON THE SON OF JOASH DIED IN A GOOD OLD AGE, AND WAS BURIED IN@ THE SEPULCHRE OF JOASH HIS FATHER, IN OPHRAH OF THE ABIEZRITES.J# 33 AND IT CAME TO PASS, AS SOON AS GIDEON WAS DEAD, THAT THE CHILDREN OFJ ISRAEL TURNED AGAIN, AND WENT A WHORING AFTER BAALIM, AND MADE BAALBERITH THEIR GOD.WJ# 34 AND THE CHILDREN OF ISRAEL REMEMBERED NOT THE LORD THEIR GOD, WHO HADD DELIVERED THEM OUT OF THE HANDS OF ALL THEIR ENEMIES ON EVERY SIDE:L# 35 NEITHER SHEWED THEY KINDNESS TO THE HOUSE OF JERUBBAAL, NAMELY, GIDEON,? ACCORDING TO ALL THE GOODNESS WHICH HE HAD SHEWED UNTO ISRAEL.P = CHAPTER 9 G# 1 AND ABIMELECH THE SON OF JERUBBAAL WENT TO SHECHEM UNTO HIS MOTHERSSN BRETHREN, AND COMMUNED WITH THEM, AND WITH ALL THE FAMILY OF THE HOUSE OF HIS MOTHERS FATHER, SAYING,H# 2 SPEAK, I PRAY YOU, IN THE EARS OF ALL THE MEN OF SHECHEM, WHETHER ISL BETTER FOR YOU, EITHER THAT ALL THE SONS OF JERUBBAAL, WHICH ARE THREESCOREK AND TEN PERSONS, REIGN OVER YOU, OR THAT ONE REIGN OVER YOU? REMEMBER ALSOU$ THAT I AM YOUR BONE AND YOUR FLESH.G# 3 AND HIS MOTHERS BRETHREN SPAKE OF HIM IN THE EARS OF ALL THE MEN OF L SHECHEM ALL THESE WORDS: AND THEIR HEARTS INCLINED TO FOLLOW ABIMELECH; FOR THEY SAID, HE IS OUR BROTHER.M# 4 AND THEY GAVE HIM THREESCORE AND TEN PIECES OF SILVER OUT OF THE HOUSE OF M BAALBERITH, WHE00e-)D%5%T6%! !REWITH ABIMELECH HIRED VAIN AND LIGHT PERSONS, WHICH FOLLOWED  HIM.LK# 5 AND HE WENT UNTO HIS FATHERS HOUSE AT OPHRAH, AND SLEW HIS BRETHREN THEUE SONS OF JERUBBAAL, BEING THREESCORE AND TEN PERSONS, UPON ONE STONE:YN NOTWITHSTANDING YET JOTHAM THE YOUNGEST SON OF JERUBBAAL WAS LEFT; FOR HE HID HIMSELF.HM# 6 AND ALL THE MEN OF SHECHEM GATHERED TOGETHER, AND ALL THE HOUSE OF MILLO,AJ AND WENT, AND MADE ABIMELECH KING, BY THE PLAIN OF THE PILLAR THAT WAS IN SHECHEM.FJ# 7 AND WHEN THEY TOLD IT TO JOTHAM, HE WENT AND STOOD IN THE TOP OF MOUNTN GERIZIM, AND LIFTED UP HIS VOICE, AND CRIED, AND SAID UNTO THEM, HEARKEN UNTO6 ME, YE MEN OF SHECHEM, THAT GOD MAY HEARKEN UNTO YOU.L# 8 THE TREES WENT FORTH ON A TIME TO ANOINT A KING OVER THEM; AND THEY SAID) UNTO THE OLIVE TREE, REIGN THOU OVER US.K# 9 BUT THE OLIVE TREE SAID UNTO THEM, SHOULD I LEAVE MY FATNESS, WHEREWITHSE BY ME THEY HONOUR GOD AND MAN, AND GO TO BE PROMOTED OVER THE TREES?IF# 10 AND THE TREES SAID TO THE FIG TREE, COME THOU, AND REIGN OVER US.K# 11 BUT THE FIG TREE SAID UNTO THEM, SHOULD I FORSAKE MY SWEETNESS, AND MYD2 GOOD FRUIT, AND GO TO BE PROMOTED OVER THE TREES?E# 12 THEN SAID THE TREES UNTO THE VINE, COME THOU, AND REIGN OVER US.IL# 13 AND THE VINE SAID UNTO THEM, SHOULD I LEAVE MY WINE, WHICH CHEERETH GOD/ AND MAN, AND GO TO BE PROMOTED OVER THE TREES?,L# 14 THEN SAID ALL THE TREES UNTO THE BRAMBLE, COME THOU, AND REIGN OVER US.L# 15 AND THE BRAMBLE SAID UNTO THE TREES, IF IN TRUTH YE ANOINT ME KING OVERN YOU, THEN COME AND PUT YOUR TRUST IN MY SHADOW: AND IF NOT, LET FIRE COME OUT2 OF THE BRAMBLE, AND DEVOUR THE CEDARS OF LEBANON.M# 16 NOW THEREFORE, IF YE HAVE DONE TRULY AND SINCERELY, IN THAT YE HAVE MADEDL ABIMELECH KING, AND IF YE HAVE DEALT WELL WITH JERUBBAAL AND HIS HOUSE, AND< HAVE DONE UNTO HIM ACCORDING TO THE DESERVING OF HIS HANDS;D# 17 (FOR MY FATHER FOUGHT FOR YOU, AND ADVENTURED HIS LIFE FAR, AND) DELIVERED YOU OUT OF THE HAND OF MIDIAN:OJ# 18 AND YE ARE RISEN UP AGAINST MY FATHERS HOUSE THIS DAY, AND HAVE SLAIND HIS SONS, THREESCORE AND TEN PERSONS, UPON ONE STONE, AND HAVE MADEM ABIMELECH, THE SON OF HIS MAIDSERVANT, KING OVER THE MEN OF SHECHEM, BECAUSE  HE IS YOUR BROTHER;)AJ# 19 IF YE THEN HAVE DEALT TRULY AND SINCERELY WITH JERUBBAAL AND WITH HISJ HOUSE THIS DAY, THEN REJOICE YE IN ABIMELECH, AND LET HIM ALSO REJOICE IN YOU: H# 20 BUT IF NOT, LET FIRE COME OUT FROM ABIMELECH, AND DEVOUR THE MEN OFG SHECHEM, AND THE HOUSE OF MILLO; AND LET FIRE COME OUT FROM THE MEN OF < SHECHEM, AND FROM THE HOUSE OF MILLO, AND DEVOUR ABIMELECH.J# 21 AND JOTHAM RAN AWAY, AND FLED, AND WENT TO BEER, AND DWELT THERE, FOR FEAR OF ABIMELECH HIS BROTHER. 8# 22 WHEN ABIMELECH HAD REIGNED THREE YEARS OVER ISRAEL,K# 23 THEN GOD SENT AN EVIL SPIRIT BETWEEN ABIMELECH AND THE MEN OF SHECHEM;O; AND THE MEN OF SHECHEM DEALT TREACHEROUSLY WITH ABIMELECH:0L# 24 THAT THE CRUELTY DONE TO THE THREESCORE AND TEN SONS OF JERUBBAAL MIGHTM COME, AND THEIR BLOOD BE LAID UPON ABIMELECH THEIR BROTHER, WHICH SLEW THEM; M AND UPON THE MEN OF SHECHEM, WHICH AIDED HIM IN THE KILLING OF HIS BRETHREN.LG# 25 AND THE MEN OF SHECHEM SET LIERS IN WAIT FOR HIM IN THE TOP OF THERL MOUNTAINS, AND THEY ROBBED ALL THAT CAME ALONG THAT WAY BY THEM: AND IT WAS TOLD ABIMELECH.F# 26 AND GAAL THE SON OF EBED CAME WITH HIS BRETHREN, AND WENT OVER TO= SHECHEM: AND THE MEN OF SHECHEM PUT THEIR CONFIDENCE IN HIM. I# 27 AND THEY WENT OUT INTO THE FIELDS, AND GATHERED THEIR VINEYARDS, ANDAL TRODE THE GRAPES, AND MADE MERRY, AND WENT INTO THE HOUSE OF THEIR GOD, AND) DID EAT AND DRINK, AND CURSED ABIMELECH.RI# 28 AND GAAL THE SON OF EBED SAID, WHO IS ABIMELECH, AND WHO IS SHECHEM,OH THAT WE SHOULD SERVE HIM? IS NOT HE THE SON OF JERUBBAAL? AND ZEBUL HISI OFFICER? SERVE THE MEN OF HAMOR THE FATHER OF SHECHEM: FOR WHY SHOULD WER SERVE HIM?EI# 29 AND WOULD TO GOD THIS PEOPLE WERE UNDER MY HAND! THEN WOULD I REMOVEH ABIMELECH. AND HE SAID TO ABIMELECH, INCREASE THINE ARMY, AND COME OUT.L# 30 AND WHEN ZEBUL THE RULER OF THE CITY HEAR00e-o-<%X>%+%O-%TADATADATAD THE WORDS OF GAAL THE SON OF EBED, HIS ANGER WAS KINDLED.DL# 31 AND HE SENT MESSENGERS UNTO ABIMELECH PRIVILY, SAYING, BEHOLD, GAAL THEK SON OF EBED AND HIS BRETHREN BE COME TO SHECHEM; AND, BEHOLD, THEY FORTIFYB THE CITY AGAINST THEE.HJ# 32 NOW THEREFORE UP BY NIGHT, THOU AND THE PEOPLE THAT IS WITH THEE, AND LIE IN WAIT IN THE FIELD:I# 33 AND IT SHALL BE, THAT IN THE MORNING, AS SOON AS THE SUN IS UP, THOUEM SHALT RISE EARLY, AND SET UPON THE CITY: AND, BEHOLD, WHEN HE AND THE PEOPLECL THAT IS WITH HIM COME OUT AGAINST THEE, THEN MAYEST THOU DO TO THEM AS THOU SHALT FIND OCCASION.NL# 34 AND ABIMELECH ROSE UP, AND ALL THE PEOPLE THAT WERE WITH HIM, BY NIGHT,6 AND THEY LAID WAIT AGAINST SHECHEM IN FOUR COMPANIES.M# 35 AND GAAL THE SON OF EBED WENT OUT, AND STOOD IN THE ENTERING OF THE GATEIL OF THE CITY: AND ABIMELECH ROSE UP, AND THE PEOPLE THAT WERE WITH HIM, FROM LYING IN WAIT. G# 36 AND WHEN GAAL SAW THE PEOPLE, HE SAID TO ZEBUL, BEHOLD, THERE COMELI PEOPLE DOWN FROM THE TOP OF THE MOUNTAINS. AND ZEBUL SAID UNTO HIM, THOUA7 SEEST THE SHADOW OF THE MOUNTAINS AS IF THEY WERE MEN.4M# 37 AND GAAL SPAKE AGAIN, AND SAID, SEE THERE COME PEOPLE DOWN BY THE MIDDLETF OF THE LAND, AND ANOTHER COMPANY COME ALONG BY THE PLAIN OF MEONENIM.M# 38 THEN SAID ZEBUL UNTO HIM, WHERE IS NOW THY MOUTH, WHEREWITH THOU SAIDST,MM WHO IS ABIMELECH, THAT WE SHOULD SERVE HIM? IS NOT THIS THE PEOPLE THAT THOUA8 HAST DESPISED? GO OUT, I PRAY NOW, AND FIGHT WITH THEM.L# 39 AND GAAL WENT OUT BEFORE THE MEN OF SHECHEM, AND FOUGHT WITH ABIMELECH.D# 40 AND ABIMELECH CHASED HIM, AND HE FLED BEFORE HIM, AND MANY WERE< OVERTHROWN AND WOUNDED, EVEN UNTO THE ENTERING OF THE GATE.E# 41 AND ABIMELECH DWELT AT ARUMAH: AND ZEBUL THRUST OUT GAAL AND HIS 1 BRETHREN, THAT THEY SHOULD NOT DWELL IN SHECHEM.II# 42 AND IT CAME TO PASS ON THE MORROW, THAT THE PEOPLE WENT OUT INTO THE FIELD; AND THEY TOLD ABIMELECH.L# 43 AND HE TOOK THE PEOPLE, AND DIVIDED THEM INTO THREE COMPANIES, AND LAIDN WAIT IN THE FIELD, AND LOOKED, AND, BEHOLD, THE PEOPLE WERE COME FORTH OUT OF7 THE CITY; AND HE ROSE UP AGAINST THEM, AND SMOTE THEM.EJ# 44 AND ABIMELECH, AND THE COMPANY THAT WAS WITH HIM, RUSHED FORWARD, ANDK STOOD IN THE ENTERING OF THE GATE OF THE CITY: AND THE TWO OTHER COMPANIESH@ RAN UPON ALL THE PEOPLE THAT WERE IN THE FIELDS, AND SLEW THEM.H# 45 AND ABIMELECH FOUGHT AGAINST THE CITY ALL THAT DAY; AND HE TOOK THEN CITY, AND SLEW THE PEOPLE THAT WAS THEREIN, AND BEAT DOWN THE CITY, AND SOWED IT WITH SALT.J# 46 AND WHEN ALL THE MEN OF THE TOWER OF SHECHEM HEARD THAT, THEY ENTERED- INTO AN HOLD OF THE HOUSE OF THE GOD BERITH.M# 47 AND IT WAS TOLD ABIMELECH, THAT ALL THE MEN OF THE TOWER OF SHECHEM WEREO GATHERED TOGETHER. I# 48 AND ABIMELECH GAT HIM UP TO MOUNT ZALMON, HE AND ALL THE PEOPLE THATEK WERE WITH HIM; AND ABIMELECH TOOK AN AXE IN HIS HAND, AND CUT DOWN A BOUGHHL FROM THE TREES, AND TOOK IT, AND LAID IT ON HIS SHOULDER, AND SAID UNTO THEL PEOPLE THAT WERE WITH HIM, WHAT YE HAVE SEEN ME DO, MAKE HASTE, AND DO AS I HAVE DONE.WK# 49 AND ALL THE PEOPLE LIKEWISE CUT DOWN EVERY MAN HIS BOUGH, AND FOLLOWED L ABIMELECH, AND PUT THEM TO THE HOLD, AND SET THE HOLD ON FIRE UPON THEM; SOM THAT ALL THE MEN OF THE TOWER OF SHECHEM DIED ALSO, ABOUT A THOUSAND MEN AND, WOMEN.LM# 50 THEN WENT ABIMELECH TO THEBEZ, AND ENCAMPED AGAINST THEBEZ, AND TOOK IT.CK# 51 BUT THERE WAS A STRONG TOWER WITHIN THE CITY, AND THITHER FLED ALL THEAN MEN AND WOMEN, AND ALL THEY OF THE CITY, AND SHUT IT TO THEM, AND GAT THEM UP TO THE TOP OF THE TOWER.WL# 52 AND ABIMELECH CAME UNTO THE TOWER, AND FOUGHT AGAINST IT, AND WENT HARD1 UNTO THE DOOR OF THE TOWER TO BURN IT WITH FIRE. J# 53 AND A CERTAIN WOMAN CAST A PIECE OF A MILLSTONE UPON ABIMELECHS HEAD, AND ALL TO BRAKE HIS SKULL.I# 54 THEN HE CALLED HASTILY UNTO THE YOUNG MAN HIS ARMOURBEARER, AND SAID,L UNTO HIM, DRAW THY SWORD, AND SLAY ME, THAT MEN SAY NOT OF ME, A WOMEN SLEW8 HIM. AND HIS YOUNG MAN THRUST HIM THROUGH, AND HE DIED.J# 55 AND WHEN THE MEN OF ISRAEL SAW THAT00e-)D%5%T6%! ! ABIMELECH WAS DEAD, THEY DEPARTED EVERY MAN UNTO HIS PLACE.I# 56 THUS GOD RENDERED THE WICKEDNESS OF ABIMELECH, WHICH HE DID UNTO HIS ) FATHER, IN SLAYING HIS SEVENTY BRETHREN:SL# 57 AND ALL THE EVIL OF THE MEN OF SHECHEM DID GOD RENDER UPON THEIR HEADS:= AND UPON THEM CAME THE CURSE OF JOTHAM THE SON OF JERUBBAAL., = CHAPTER 10 TN# 1 AND AFTER ABIMELECH THERE AROSE TO DEFEND ISRAEL TOLA THE SON OF PUAH, THEI SON OF DODO, A MAN OF ISSACHAR; AND HE DWELT IN SHAMIR IN MOUNT EPHRAIM.FL# 2 AND HE JUDGED ISRAEL TWENTY AND THREE YEARS, AND DIED, AND WAS BURIED IN SHAMIR.K# 3 AND AFTER HIM AROSE JAIR, A GILEADITE, AND JUDGED ISRAEL TWENTY AND TWOI YEARS. M# 4 AND HE HAD THIRTY SONS THAT RODE ON THIRTY ASS COLTS, AND THEY HAD THIRTYDL CITIES, WHICH ARE CALLED HAVOTHJAIR UNTO THIS DAY, WHICH ARE IN THE LAND OF GILEAD.+# 5 AND JAIR DIED, AND WAS BURIED IN CAMON.RK# 6 AND THE CHILDREN OF ISRAEL DID EVIL AGAIN IN THE SIGHT OF THE LORD, ANDAL SERVED BAALIM, AND ASHTAROTH, AND THE GODS OF SYRIA, AND THE GODS OF ZIDON,M AND THE GODS OF MOAB, AND THE GODS OF THE CHILDREN OF AMMON, AND THE GODS OF ; THE PHILISTINES, AND FORSOOK THE LORD, AND SERVED NOT HIM. K# 7 AND THE ANGER OF THE LORD WAS HOT AGAINST ISRAEL, AND HE SOLD THEM INTOTK THE HANDS OF THE PHILISTINES, AND INTO THE HANDS OF THE CHILDREN OF AMMON. K# 8 AND THAT YEAR THEY VEXED AND OPPRESSED THE CHILDREN OF ISRAEL: EIGHTEENRL YEARS, ALL THE CHILDREN OF ISRAEL THAT WERE ON THE OTHER SIDE JORDAN IN THE* LAND OF THE AMORITES, WHICH IS IN GILEAD.K# 9 MOREOVER THE CHILDREN OF AMMON PASSED OVER JORDAN TO FIGHT ALSO AGAINST N JUDAH, AND AGAINST BENJAMIN, AND AGAINST THE HOUSE OF EPHRAIM; SO THAT ISRAEL WAS SORE DISTRESSED.EK# 10 AND THE CHILDREN OF ISRAEL CRIED UNTO THE LORD, SAYING, WE HAVE SINNEDSM AGAINST THEE, BOTH BECAUSE WE HAVE FORSAKEN OUR GOD, AND ALSO SERVED BAALIM.XI# 11 AND THE LORD SAID UNTO THE CHILDREN OF ISRAEL, DID NOT I DELIVER YOUNK FROM THE EGYPTIANS, AND FROM THE AMORITES, FROM THE CHILDREN OF AMMON, ANDW FROM THE PHILISTINES?J# 12 THE ZIDONIANS ALSO, AND THE AMALEKITES, AND THE MAONITES, DID OPPRESS@ YOU; AND YE CRIED TO ME, AND I DELIVERED YOU OUT OF THEIR HAND.M# 13 YET YE HAVE FORSAKEN ME, AND SERVED OTHER GODS: WHEREFORE I WILL DELIVERT YOU NO MORE.,K# 14 GO AND CRY UNTO THE GODS WHICH YE HAVE CHOSEN; LET THEM DELIVER YOU INL THE TIME OF YOUR TRIBULATION.K# 15 AND THE CHILDREN OF ISRAEL SAID UNTO THE LORD, WE HAVE SINNED: DO THOUPJ UNTO US WHATSOEVER SEEMETH GOOD UNTO THEE; DELIVER US ONLY, WE PRAY THEE, THIS DAY.M# 16 AND THEY PUT AWAY THE STRANGE GODS FROM AMONG THEM, AND SERVED THE LORD:U3 AND HIS SOUL WAS GRIEVED FOR THE MISERY OF ISRAEL.RG# 17 THEN THE CHILDREN OF AMMON WERE GATHERED TOGETHER, AND ENCAMPED INWF GILEAD. AND THE CHILDREN OF ISRAEL ASSEMBLED THEMSELVES TOGETHER, AND ENCAMPED IN MIZPEH.M# 18 AND THE PEOPLE AND PRINCES OF GILEAD SAID ONE TO ANOTHER, WHAT MAN IS HEAN THAT WILL BEGIN TO FIGHT AGAINST THE CHILDREN OF AMMON? HE SHALL BE HEAD OVER ALL THE INHABITANTS OF GILEAD.T = CHAPTER 11 .M# 1 NOW JEPHTHAH THE GILEADITE WAS A MIGHTY MAN OF VALOUR, AND HE WAS THE SONU) OF AN HARLOT: AND GILEAD BEGAT JEPHTHAH.OH# 2 AND GILEADS WIFE BARE HIM SONS; AND HIS WIFES SONS GREW UP, AND THEYN THRUST OUT JEPHTHAH, AND SAID UNTO HIM, THOU SHALT NOT INHERIT IN OUR FATHERS0 HOUSE; FOR THOU ART THE SON OF A STRANGE WOMAN.K# 3 THEN JEPHTHAH FLED FROM HIS BRETHREN, AND DWELT IN THE LAND OF TOB: ANDIA THERE WERE GATHERED VAIN MEN TO JEPHTHAH, AND WENT OUT WITH HIM.IK# 4 AND IT CAME TO PASS IN PROCESS OF TIME, THAT THE CHILDREN OF AMMON MADEM WAR AGAINST ISRAEL.K# 5 AND IT WAS SO, THAT WHEN THE CHILDREN OF AMMON MADE WAR AGAINST ISRAEL,DD THE ELDERS OF GILEAD WENT TO FETCH JEPHTHAH OUT OF THE LAND OF TOB:L# 6 AND THEY SAID UNTO JEPHTHAH, COME, AND BE OUR CAPTAIN, THAT WE MAY FIGHT WITH THE CHILDREN OF AMMON.H# 7 AND JEPHTHAH SAID UNTO THE ELDERS OF GILEAD, DID NOT YE HATE ME, ANDN EXPEL ME OUT OF MY FATHERS HOUSE? AND WHY ARE YE COME UNTO ME NOW WHEN YE ARE IN DISTRESS?CK# 8 AND TH00e-o-<%X>%+%O-%TADATADATAE ELDERS OF GILEAD SAID UNTO JEPHTHAH, THEREFORE WE TURN AGAIN TOTI THEE NOW, THAT THOU MAYEST GO WITH US, AND FIGHT AGAINST THE CHILDREN OFS; AMMON, AND BE OUR HEAD OVER ALL THE INHABITANTS OF GILEAD.OM# 9 AND JEPHTHAH SAID UNTO THE ELDERS OF GILEAD, IF YE BRING ME HOME AGAIN TOTJ FIGHT AGAINST THE CHILDREN OF AMMON, AND THE LORD DELIVER THEM BEFORE ME, SHALL I BE YOUR HEAD?M# 10 AND THE ELDERS OF GILEAD SAID UNTO JEPHTHAH, THE LORD BE WITNESS BETWEENT, US, IF WE DO NOT SO ACCORDING TO THY WORDS.J# 11 THEN JEPHTHAH WENT WITH THE ELDERS OF GILEAD, AND THE PEOPLE MADE HIMJ HEAD AND CAPTAIN OVER THEM: AND JEPHTHAH UTTERED ALL HIS WORDS BEFORE THE LORD IN MIZPEH.I# 12 AND JEPHTHAH SENT MESSENGERS UNTO THE KING OF THE CHILDREN OF AMMON, M SAYING, WHAT HAST THOU TO DO WITH ME, THAT THOU ART COME AGAINST ME TO FIGHT IN MY LAND?J# 13 AND THE KING OF THE CHILDREN OF AMMON ANSWERED UNTO THE MESSENGERS OFL JEPHTHAH, BECAUSE ISRAEL TOOK AWAY MY LAND, WHEN THEY CAME UP OUT OF EGYPT,J FROM ARNON EVEN UNTO JABBOK, AND UNTO JORDAN: NOW THEREFORE RESTORE THOSE LANDS AGAIN PEACEABLY. H# 14 AND JEPHTHAH SENT MESSENGERS AGAIN UNTO THE KING OF THE CHILDREN OF AMMON:EM# 15 AND SAID UNTO HIM, THUS SAITH JEPHTHAH, ISRAEL TOOK NOT AWAY THE LAND OF- MOAB, NOR THE LAND OF THE CHILDREN OF AMMON:UJ# 16 BUT WHEN ISRAEL CAME UP FROM EGYPT, AND WALKED THROUGH THE WILDERNESS& UNTO THE RED SEA, AND CAME TO KADESH;I# 17 THEN ISRAEL SENT MESSENGERS UNTO THE KING OF EDOM, SAYING, LET ME, I I PRAY THEE, PASS THROUGH THY LAND: BUT THE KING OF EDOM WOULD NOT HEARKENEN THERETO. AND IN LIKE MANNER THEY SENT UNTO THE KING OF MOAB: BUT HE WOULD NOT% CONSENT: AND ISRAEL ABODE IN KADESH. K# 18 THEN THEY WENT ALONG THROUGH THE WILDERNESS, AND COMPASSED THE LAND OFK EDOM, AND THE LAND OF MOAB, AND CAME BY THE EAST SIDE OF THE LAND OF MOAB,FJ AND PITCHED ON THE OTHER SIDE OF ARNON, BUT CAME NOT WITHIN THE BORDER OF( MOAB: FOR ARNON WAS THE BORDER OF MOAB.L# 19 AND ISRAEL SENT MESSENGERS UNTO SIHON KING OF THE AMORITES, THE KING OFJ HESHBON; AND ISRAEL SAID UNTO HIM, LET US PASS, WE PRAY THEE, THROUGH THY LAND INTO MY PLACE.F# 20 BUT SIHON TRUSTED NOT ISRAEL TO PASS THROUGH HIS COAST: BUT SIHONK GATHERED ALL HIS PEOPLE TOGETHER, AND PITCHED IN JAHAZ, AND FOUGHT AGAINSTA ISRAEL.K# 21 AND THE LORD GOD OF ISRAEL DELIVERED SIHON AND ALL HIS PEOPLE INTO THEHM HAND OF ISRAEL, AND THEY SMOTE THEM: SO ISRAEL POSSESSED ALL THE LAND OF THET+ AMORITES, THE INHABITANTS OF THAT COUNTRY.EL# 22 AND THEY POSSESSED ALL THE COASTS OF THE AMORITES, FROM ARNON EVEN UNTO2 JABBOK, AND FROM THE WILDERNESS EVEN UNTO JORDAN.M# 23 SO NOW THE LORD GOD OF ISRAEL HATH DISPOSSESSED THE AMORITES FROM BEFORE:2 HIS PEOPLE ISRAEL, AND SHOULDEST THOU POSSESS IT?M# 24 WILT NOT THOU POSSESS THAT WHICH CHEMOSH THY GOD GIVETH THEE TO POSSESS? L SO WHOMSOEVER THE LORD OUR GOD SHALL DRIVE OUT FROM BEFORE US, THEM WILL WE POSSESS.RL# 25 AND NOW ART THOU ANY THING BETTER THAN BALAK THE SON OF ZIPPOR, KING OFL MOAB? DID HE EVER STRIVE AGAINST ISRAEL, OR DID HE EVER FIGHT AGAINST THEM,M# 26 WHILE ISRAEL DWELT IN HESHBON AND HER TOWNS, AND IN AROER AND HER TOWNS,DJ AND IN ALL THE CITIES THAT BE ALONG BY THE COASTS OF ARNON, THREE HUNDRED? YEARS? WHY THEREFORE DID YE NOT RECOVER THEM WITHIN THAT TIME?HM# 27 WHEREFORE I HAVE NOT SINNED AGAINST THEE, BUT THOU DOEST ME WRONG TO WARHI AGAINST ME: THE LORD THE JUDGE BE JUDGE THIS DAY BETWEEN THE CHILDREN OFO" ISRAEL AND THE CHILDREN OF AMMON.K# 28 HOWBEIT THE KING OF THE CHILDREN OF AMMON HEARKENED NOT UNTO THE WORDSR OF JEPHTHAH WHICH HE SENT HIM.IG# 29 THEN THE SPIRIT OF THE LORD CAME UPON JEPHTHAH, AND HE PASSED OVERIK GILEAD, AND MANASSEH, AND PASSED OVER MIZPEH OF GILEAD, AND FROM MIZPEH OF 2 GILEAD HE PASSED OVER UNTO THE CHILDREN OF AMMON.L# 30 AND JEPHTHAH VOWED A VOW UNTO THE LORD, AND SAID, IF THOU SHALT WITHOUT4 FAIL DELIVER THE CHILDREN OF AMMON INTO MINE HANDS,L# 31 THEN IT SHALL BE, THAT WHATSOEVER COMETH FORTH OF THE DOORS OF MY HOUSEL TO MEET ME, WHEN I RETURN IN PEACE FROM THE C00e-)D%5%T6%! !HILDREN OF AMMON, SHALL SURELY; BE THE LORDS, AND I WILL OFFER IT UP FOR A BURNT OFFERING.PH# 32 SO JEPHTHAH PASSED OVER UNTO THE CHILDREN OF AMMON TO FIGHT AGAINST2 THEM; AND THE LORD DELIVERED THEM INTO HIS HANDS.G# 33 AND HE SMOTE THEM FROM AROER, EVEN TILL THOU COME TO MINNITH, EVENTF TWENTY CITIES, AND UNTO THE PLAIN OF THE VINEYARDS, WITH A VERY GREATJ SLAUGHTER. THUS THE CHILDREN OF AMMON WERE SUBDUED BEFORE THE CHILDREN OF ISRAEL.J# 34 AND JEPHTHAH CAME TO MIZPEH UNTO HIS HOUSE, AND, BEHOLD, HIS DAUGHTERI CAME OUT TO MEET HIM WITH TIMBRELS AND WITH DANCES: AND SHE WAS HIS ONLYG3 CHILD; BESIDE HER HE HAD NEITHER SON NOR DAUGHTER. H# 35 AND IT CAME TO PASS, WHEN HE SAW HER, THAT HE RENT HIS CLOTHES, ANDL SAID, ALAS, MY DAUGHTER! THOU HAST BROUGHT ME VERY LOW, AND THOU ART ONE OFM THEM THAT TROUBLE ME: FOR I HAVE OPENED MY MOUTH UNTO THE LORD, AND I CANNOTR GO BACK.CM# 36 AND SHE SAID UNTO HIM, MY FATHER, IF THOU HAST OPENED THY MOUTH UNTO THEAH LORD, DO TO ME ACCORDING TO THAT WHICH HATH PROCEEDED OUT OF THY MOUTH;N FORASMUCH AS THE LORD HATH TAKEN VENGEANCE FOR THEE OF THINE ENEMIES, EVEN OF THE CHILDREN OF AMMON.AH# 37 AND SHE SAID UNTO HER FATHER, LET THIS THING BE DONE FOR ME: LET MEN ALONE TWO MONTHS, THAT I MAY GO UP AND DOWN UPON THE MOUNTAINS, AND BEWAIL MY VIRGINITY, I AND MY FELLOWS.FL# 38 AND HE SAID, GO. AND HE SENT HER AWAY FOR TWO MONTHS: AND SHE WENT WITH? HER COMPANIONS, AND BEWAILED HER VIRGINITY UPON THE MOUNTAINS.HM# 39 AND IT CAME TO PASS AT THE END OF TWO MONTHS, THAT SHE RETURNED UNTO HERFJ FATHER, WHO DID WITH HER ACCORDING TO HIS VOW WHICH HE HAD VOWED: AND SHE, KNEW NO MAN. AND IT WAS A CUSTOM IN ISRAEL,G# 40 THAT THE DAUGHTERS OF ISRAEL WENT YEARLY TO LAMENT THE DAUGHTER OF,, JEPHTHAH THE GILEADITE FOUR DAYS IN A YEAR. = CHAPTER 12 L# 1 AND THE MEN OF EPHRAIM GATHERED THEMSELVES TOGETHER, AND WENT NORTHWARD,J AND SAID UNTO JEPHTHAH, WHEREFORE PASSEDST THOU OVER TO FIGHT AGAINST THEM CHILDREN OF AMMON, AND DIDST NOT CALL US TO GO WITH THEE? WE WILL BURN THINEH HOUSE UPON THEE WITH FIRE.,J# 2 AND JEPHTHAH SAID UNTO THEM, I AND MY PEOPLE WERE AT GREAT STRIFE WITHI THE CHILDREN OF AMMON; AND WHEN I CALLED YOU, YE DELIVERED ME NOT OUT OFT THEIR HANDS.NK# 3 AND WHEN I SAW THAT YE DELIVERED ME NOT, I PUT MY LIFE IN MY HANDS, AND2L PASSED OVER AGAINST THE CHILDREN OF AMMON, AND THE LORD DELIVERED THEM INTON MY HAND: WHEREFORE THEN ARE YE COME UP UNTO ME THIS DAY, TO FIGHT AGAINST ME?J# 4 THEN JEPHTHAH GATHERED TOGETHER ALL THE MEN OF GILEAD, AND FOUGHT WITHD EPHRAIM: AND THE MEN OF GILEAD SMOTE EPHRAIM, BECAUSE THEY SAID, YEI GILEADITES ARE FUGITIVES OF EPHRAIM AMONG THE EPHRAIMITES, AND AMONG THEC MANASSITES.J# 5 AND THE GILEADITES TOOK THE PASSAGES OF JORDAN BEFORE THE EPHRAIMITES:N AND IT WAS SO, THAT WHEN THOSE EPHRAIMITES WHICH WERE ESCAPED SAID, LET ME GOJ OVER; THAT THE MEN OF GILEAD SAID UNTO HIM, ART THOU AN EPHRAIMITE? IF HE SAID, NAY; K# 6 THEN SAID THEY UNTO HIM, SAY NOW SHIBBOLETH: AND HE SAID SIBBOLETH: FOREN HE COULD NOT FRAME TO PRONOUNCE IT RIGHT. THEN THEY TOOK HIM, AND SLEW HIM ATM THE PASSAGES OF JORDAN: AND THERE FELL AT THAT TIME OF THE EPHRAIMITES FORTY  AND TWO THOUSAND.K# 7 AND JEPHTHAH JUDGED ISRAEL SIX YEARS. THEN DIED JEPHTHAH THE GILEADITE,I/ AND WAS BURIED IN ONE OF THE CITIES OF GILEAD.E3# 8 AND AFTER HIM IBZAN OF BETHLEHEM JUDGED ISRAEL. J# 9 AND HE HAD THIRTY SONS, AND THIRTY DAUGHTERS, WHOM HE SENT ABROAD, ANDN TOOK IN THIRTY DAUGHTERS FROM ABROAD FOR HIS SONS. AND HE JUDGED ISRAEL SEVEN YEARS. 2# 10 THEN DIED IBZAN, AND WAS BURIED AT BETHLEHEM.J# 11 AND AFTER HIM ELON, A ZEBULONITE, JUDGED ISRAEL; AND HE JUDGED ISRAEL TEN YEARS.TK# 12 AND ELON THE ZEBULONITE DIED, AND WAS BURIED IN AIJALON IN THE COUNTRYE OF ZEBULUN.I# 13 AND AFTER HIM ABDON THE SON OF HILLEL, A PIRATHONITE, JUDGED ISRAEL.IJ# 14 AND HE HAD FORTY SONS AND THIRTY NEPHEWS, THAT RODE ON THREESCORE AND1 TEN ASS COLTS: AND HE JUDGED ISRAEL EIGHT YEARS.TH# 15 AND ABDON THE SON OF HILLEL THE PIRATHONITE DIED, AND WAS BURIED IN00e-o-<%X>%+%O-%TADATADATAA PIRATHON IN THE LAND OF EPHRAIM, IN THE MOUNT OF THE AMALEKITES.R = CHAPTER 13 BK# 1 AND THE CHILDREN OF ISRAEL DID EVIL AGAIN IN THE SIGHT OF THE LORD; AND F THE LORD DELIVERED THEM INTO THE HAND OF THE PHILISTINES FORTY YEARS.M# 2 AND THERE WAS A CERTAIN MAN OF ZORAH, OF THE FAMILY OF THE DANITES, WHOSE 8 NAME WAS MANOAH; AND HIS WIFE WAS BARREN, AND BARE NOT.I# 3 AND THE ANGEL OF THE LORD APPEARED UNTO THE WOMAN, AND SAID UNTO HER,DK BEHOLD NOW, THOU ART BARREN, AND BEAREST NOT: BUT THOU SHALT CONCEIVE, ANDN BEAR A SON.K# 4 NOW THEREFORE BEWARE, I PRAY THEE, AND DRINK NOT WINE NOR STRONG DRINK,N AND EAT NOT ANY UNCLEAN THING:SL# 5 FOR, LO, THOU SHALT CONCEIVE, AND BEAR A SON; AND NO RAZOR SHALL COME ONK HIS HEAD: FOR THE CHILD SHALL BE A NAZARITE UNTO GOD FROM THE WOMB: AND HETB SHALL BEGIN TO DELIVER ISRAEL OUT OF THE HAND OF THE PHILISTINES.L# 6 THEN THE WOMAN CAME AND TOLD HER HUSBAND, SAYING, A MAN OF GOD CAME UNTOJ ME, AND HIS COUNTENANCE WAS LIKE THE COUNTENANCE OF AN ANGEL OF GOD, VERYJ TERRIBLE: BUT I ASKED HIM NOT WHENCE HE WAS, NEITHER TOLD HE ME HIS NAME:M# 7 BUT HE SAID UNTO ME, BEHOLD, THOU SHALT CONCEIVE, AND BEAR A SON; AND NOWHM DRINK NO WINE NOR STRONG DRINK, NEITHER EAT ANY UNCLEAN THING: FOR THE CHILDIB SHALL BE A NAZARITE TO GOD FROM THE WOMB TO THE DAY OF HIS DEATH.K# 8 THEN MANOAH INTREATED THE LORD, AND SAID, O MY LORD, LET THE MAN OF GODMM WHICH THOU DIDST SEND COME AGAIN UNTO US, AND TEACH US WHAT WE SHALL DO UNTOE THE CHILD THAT SHALL BE BORN.M# 9 AND GOD HEARKENED TO THE VOICE OF MANOAH; AND THE ANGEL OF GOD CAME AGAINHL UNTO THE WOMAN AS SHE SAT IN THE FIELD: BUT MANOAH HER HUSBAND WAS NOT WITH HER. M# 10 AND THE WOMAN MADE HASTE, AND RAN, AND SHEWED HER HUSBAND, AND SAID UNTOHM HIM, BEHOLD, THE MAN HATH APPEARED UNTO ME, THAT CAME UNTO ME THE OTHER DAY. M# 11 AND MANOAH AROSE, AND WENT AFTER HIS WIFE, AND CAME TO THE MAN, AND SAIDIK UNTO HIM, ART THOU THE MAN THAT SPAKEST UNTO THE WOMAN? AND HE SAID, I AM.TL# 12 AND MANOAH SAID, NOW LET THY WORDS COME TO PASS. HOW SHALL WE ORDER THE% CHILD, AND HOW SHALL WE DO UNTO HIM?HL# 13 AND THE ANGEL OF THE LORD SAID UNTO MANOAH, OF ALL THAT I SAID UNTO THE WOMAN LET HER BEWARE.J# 14 SHE MAY NOT EAT OF ANY THING THAT COMETH OF THE VINE, NEITHER LET HERL DRINK WINE OR STRONG DRINK, NOR EAT ANY UNCLEAN THING: ALL THAT I COMMANDED HER LET HER OBSERVE. K# 15 AND MANOAH SAID UNTO THE ANGEL OF THE LORD, I PRAY THEE, LET US DETAINT5 THEE, UNTIL WE SHALL HAVE MADE READY A KID FOR THEE.AI# 16 AND THE ANGEL OF THE LORD SAID UNTO MANOAH, THOUGH THOU DETAIN ME, I N WILL NOT EAT OF THY BREAD: AND IF THOU WILT OFFER A BURNT OFFERING, THOU MUSTN OFFER IT UNTO THE LORD. FOR MANOAH KNEW NOT THAT HE WAS AN ANGEL OF THE LORD.L# 17 AND MANOAH SAID UNTO THE ANGEL OF THE LORD, WHAT IS THY NAME, THAT WHEN0 THY SAYINGS COME TO PASS WE MAY DO THEE HONOUR?K# 18 AND THE ANGEL OF THE LORD SAID UNTO HIM, WHY ASKEST THOU THUS AFTER MY  NAME, SEEING IT IS SECRET?WJ# 19 SO MANOAH TOOK A KID WITH A MEAT OFFERING, AND OFFERED IT UPON A ROCKM UNTO THE LORD: AND THE ANGEL DID WONDEROUSLY; AND MANOAH AND HIS WIFE LOOKEDO ON.K# 20 FOR IT CAME TO PASS, WHEN THE FLAME WENT UP TOWARD HEAVEN FROM OFF THENJ ALTAR, THAT THE ANGEL OF THE LORD ASCENDED IN THE FLAME OF THE ALTAR. ANDI MANOAH AND HIS WIFE LOOKED ON IT, AND FELL ON THEIR FACES TO THE GROUND. L# 21 BUT THE ANGEL OF THE LORD DID NO MORE APPEAR TO MANOAH AND TO HIS WIFE.3 THEN MANOAH KNEW THAT HE WAS AN ANGEL OF THE LORD.AM# 22 AND MANOAH SAID UNTO HIS WIFE, WE SHALL SURELY DIE, BECAUSE WE HAVE SEEND GOD.HH# 23 BUT HIS WIFE SAID UNTO HIM, IF THE LORD WERE PLEASED TO KILL US, HEK WOULD NOT HAVE RECEIVED A BURNT OFFERING AND A MEAT OFFERING AT OUR HANDS,HL NEITHER WOULD HE HAVE SHEWED US ALL THESE THINGS, NOR WOULD AS AT THIS TIME# HAVE TOLD US SUCH THINGS AS THESE.EH# 24 AND THE WOMAN BARE A SON, AND CALLED HIS NAME SAMSON: AND THE CHILD GREW, AND THE LORD BLESSED HIM.M# 25 AND THE SPIRIT OF THE LORD BEGAN TO MOVE HIM AT TIMES IN THE CAMP OF DAN  BETWEEN ZORAH00e-)D%5%T6%! ! AND ESHTAOL.C = CHAPTER 14 EF# 1 AND SAMSON WENT DOWN TO TIMNATH, AND SAW A WOMAN IN TIMNATH OF THE DAUGHTERS OF THE PHILISTINES.M# 2 AND HE CAME UP, AND TOLD HIS FATHER AND HIS MOTHER, AND SAID, I HAVE SEENAN A WOMAN IN TIMNATH OF THE DAUGHTERS OF THE PHILISTINES: NOW THEREFORE GET HER FOR ME TO WIFE.H# 3 THEN HIS FATHER AND HIS MOTHER SAID UNTO HIM, IS THERE NEVER A WOMANM AMONG THE DAUGHTERS OF THY BRETHREN, OR AMONG ALL MY PEOPLE, THAT THOU GOESTIJ TO TAKE A WIFE OF THE UNCIRCUMCISED PHILISTINES? AND SAMSON SAID UNTO HIS2 FATHER, GET HER FOR ME; FOR SHE PLEASETH ME WELL.K# 4 BUT HIS FATHER AND HIS MOTHER KNEW NOT THAT IT WAS OF THE LORD, THAT HE M SOUGHT AN OCCASION AGAINST THE PHILISTINES: FOR AT THAT TIME THE PHILISTINEST HAD DOMINION OVER ISRAEL.I# 5 THEN WENT SAMSON DOWN, AND HIS FATHER AND HIS MOTHER, TO TIMNATH, ANDOK CAME TO THE VINEYARDS OF TIMNATH: AND, BEHOLD, A YOUNG LION ROARED AGAINSTR HIM.AL# 6 AND THE SPIRIT OF THE LORD CAME MIGHTILY UPON HIM, AND HE RENT HIM AS HEK WOULD HAVE RENT A KID, AND HE HAD NOTHING IN HIS HAND: BUT HE TOLD NOT HIS ' FATHER OR HIS MOTHER WHAT HE HAD DONE.EM# 7 AND HE WENT DOWN, AND TALKED WITH THE WOMAN; AND SHE PLEASED SAMSON WELL.HL# 8 AND AFTER A TIME HE RETURNED TO TAKE HER, AND HE TURNED ASIDE TO SEE THEM CARCASE OF THE LION: AND, BEHOLD, THERE WAS A SWARM OF BEES AND HONEY IN THEO CARCASE OF THE LION.TI# 9 AND HE TOOK THEREOF IN HIS HANDS, AND WENT ON EATING, AND CAME TO HIS L FATHER AND MOTHER, AND HE GAVE THEM, AND THEY DID EAT: BUT HE TOLD NOT THEM< THAT HE HAD TAKEN THE HONEY OUT OF THE CARCASE OF THE LION.K# 10 SO HIS FATHER WENT DOWN UNTO THE WOMAN: AND SAMSON MADE THERE A FEAST; ! FOR SO USED THE YOUNG MEN TO DO.HE# 11 AND IT CAME TO PASS, WHEN THEY SAW HIM, THAT THEY BROUGHT THIRTYS COMPANIONS TO BE WITH HIM. M# 12 AND SAMSON SAID UNTO THEM, I WILL NOW PUT FORTH A RIDDLE UNTO YOU: IF YETL CAN CERTAINLY DECLARE IT ME WITHIN THE SEVEN DAYS OF THE FEAST, AND FIND ITG OUT, THEN I WILL GIVE YOU THIRTY SHEETS AND THIRTY CHANGE OF GARMENTS:HL# 13 BUT IF YE CANNOT DECLARE IT ME, THEN SHALL YE GIVE ME THIRTY SHEETS ANDN THIRTY CHANGE OF GARMENTS. AND THEY SAID UNTO HIM, PUT FORTH THY RIDDLE, THAT WE MAY HEAR IT.L# 14 AND HE SAID UNTO THEM, OUT OF THE EATER CAME FORTH MEAT, AND OUT OF THEJ STRONG CAME FORTH SWEETNESS. AND THEY COULD NOT IN THREE DAYS EXPOUND THE RIDDLE.H# 15 AND IT CAME TO PASS ON THE SEVENTH DAY, THAT THEY SAID UNTO SAMSONSJ WIFE, ENTICE THY HUSBAND, THAT HE MAY DECLARE UNTO US THE RIDDLE, LEST WEM BURN THEE AND THY FATHERS HOUSE WITH FIRE: HAVE YE CALLED US TO TAKE THAT WE  HAVE? IS IT NOT SO?K# 16 AND SAMSONS WIFE WEPT BEFORE HIM, AND SAID, THOU DOST BUT HATE ME, ANDTL LOVEST ME NOT: THOU HAST PUT FORTH A RIDDLE UNTO THE CHILDREN OF MY PEOPLE,M AND HAST NOT TOLD IT ME. AND HE SAID UNTO HER, BEHOLD, I HAVE NOT TOLD IT MYA0 FATHER NOR MY MOTHER, AND SHALL I TELL IT THEE?M# 17 AND SHE WEPT BEFORE HIM THE SEVEN DAYS, WHILE THEIR FEAST LASTED: AND ITAM CAME TO PASS ON THE SEVENTH DAY, THAT HE TOLD HER, BECAUSE SHE LAY SORE UPONW< HIM: AND SHE TOLD THE RIDDLE TO THE CHILDREN OF HER PEOPLE.L# 18 AND THE MEN OF THE CITY SAID UNTO HIM ON THE SEVENTH DAY BEFORE THE SUNM WENT DOWN, WHAT IS SWEETER THAN HONEY? AND WHAT IS STRONGER THAN A LION? ANDLM HE SAID UNTO THEM, IF YE HAD NOT PLOWED WITH MY HEIFER, YE HAD NOT FOUND OUTM MY RIDDLE.OL# 19 AND THE SPIRIT OF THE LORD CAME UPON HIM, AND HE WENT DOWN TO ASHKELON,F AND SLEW THIRTY MEN OF THEM, AND TOOK THEIR SPOIL, AND GAVE CHANGE OFN GARMENTS UNTO THEM WHICH EXPOUNDED THE RIDDLE. AND HIS ANGER WAS KINDLED, AND! HE WENT UP TO HIS FATHERS HOUSE.8I# 20 BUT SAMSONS WIFE WAS GIVEN TO HIS COMPANION, WHOM HE HAD USED AS HISW FRIEND. = CHAPTER 15 K# 1 BUT IT CAME TO PASS WITHIN A WHILE AFTER, IN THE TIME OF WHEAT HARVEST, N THAT SAMSON VISITED HIS WIFE WITH A KID; AND HE SAID, I WILL GO IN TO MY WIFE@ INTO THE CHAMBER. BUT HER FATHER WOULD NOT SUFFER HIM TO GO IN.L# 2 AND HER FATHER SAID, I VERILY THOUGHT THAT THOU HADST UTTERLY HATED HER;M THERE00e-o-<%X>%+%O-%TADATADATAFORE I GAVE HER TO THY COMPANION: IS NOT HER YOUNGER SISTER FAIRER THANE, SHE? TAKE HER, I PRAY THEE, INSTEAD OF HER.K# 3 AND SAMSON SAID CONCERNING THEM, NOW SHALL I BE MORE BLAMELESS THAN THEE- PHILISTINES, THOUGH I DO THEM A DISPLEASURE.AL# 4 AND SAMSON WENT AND CAUGHT THREE HUNDRED FOXES, AND TOOK FIREBRANDS, ANDI TURNED TAIL TO TAIL, AND PUT A FIREBRAND IN THE MIDST BETWEEN TWO TAILS.OL# 5 AND WHEN HE HAD SET THE BRANDS ON FIRE, HE LET THEM GO INTO THE STANDINGM CORN OF THE PHILISTINES, AND BURNT UP BOTH THE SHOCKS, AND ALSO THE STANDINGR% CORN, WITH THE VINEYARDS AND OLIVES.EM# 6 THEN THE PHILISTINES SAID, WHO HATH DONE THIS? AND THEY ANSWERED, SAMSON,AL THE SON IN LAW OF THE TIMNITE, BECAUSE HE HAD TAKEN HIS WIFE, AND GIVEN HERL TO HIS COMPANION. AND THE PHILISTINES CAME UP, AND BURNT HER AND HER FATHER WITH FIRE.AF# 7 AND SAMSON SAID UNTO THEM, THOUGH YE HAVE DONE THIS, YET WILL I BE- AVENGED OF YOU, AND AFTER THAT I WILL CEASE.EL# 8 AND HE SMOTE THEM HIP AND THIGH WITH A GREAT SLAUGHTER: AND HE WENT DOWN' AND DWELT IN THE TOP OF THE ROCK ETAM. M# 9 THEN THE PHILISTINES WENT UP, AND PITCHED IN JUDAH, AND SPREAD THEMSELVEST IN LEHI.DG# 10 AND THE MEN OF JUDAH SAID, WHY ARE YE COME UP AGAINST US? AND THEY,M ANSWERED, TO BIND SAMSON ARE WE COME UP, TO DO TO HIM AS HE HATH DONE TO US.NK# 11 THEN THREE THOUSAND MEN OF JUDAH WENT TO THE TOP OF THE ROCK ETAM, ANDEJ SAID TO SAMSON, KNOWEST THOU NOT THAT THE PHILISTINES ARE RULERS OVER US?M WHAT IS THIS THAT THOU HAST DONE UNTO US? AND HE SAID UNTO THEM, AS THEY DIDE# UNTO ME, SO HAVE I DONE UNTO THEM. G# 12 AND THEY SAID UNTO HIM, WE ARE COME DOWN TO BIND THEE, THAT WE MAYTJ DELIVER THEE INTO THE HAND OF THE PHILISTINES. AND SAMSON SAID UNTO THEM,9 SWEAR UNTO ME, THAT YE WILL NOT FALL UPON ME YOURSELVES. I# 13 AND THEY SPAKE UNTO HIM, SAYING, NO; BUT WE WILL BIND THEE FAST, ANDTI DELIVER THEE INTO THEIR HAND: BUT SURELY WE WILL NOT KILL THEE. AND THEYE@ BOUND HIM WITH TWO NEW CORDS, AND BROUGHT HIM UP FROM THE ROCK.M# 14 AND WHEN HE CAME UNTO LEHI, THE PHILISTINES SHOUTED AGAINST HIM: AND THEHL SPIRIT OF THE LORD CAME MIGHTILY UPON HIM, AND THE CORDS THAT WERE UPON HISL ARMS BECAME AS FLAX THAT WAS BURNT WITH FIRE, AND HIS BANDS LOOSED FROM OFF HIS HANDS.EK# 15 AND HE FOUND A NEW JAWBONE OF AN ASS, AND PUT FORTH HIS HAND, AND TOOKA' IT, AND SLEW A THOUSAND MEN THEREWITH.TL# 16 AND SAMSON SAID, WITH THE JAWBONE OF AN ASS, HEAPS UPON HEAPS, WITH THE+ JAW OF AN ASS HAVE I SLAIN A THOUSAND MEN.MK# 17 AND IT CAME TO PASS, WHEN HE HAD MADE AN END OF SPEAKING, THAT HE CASTAD AWAY THE JAWBONE OUT OF HIS HAND, AND CALLED THAT PLACE RAMATHLEHI.I# 18 AND HE WAS SORE ATHIRST, AND CALLED ON THE LORD, AND SAID, THOU HAST,K GIVEN THIS GREAT DELIVERANCE INTO THE HAND OF THY SERVANT: AND NOW SHALL I = DIE FOR THIRST, AND FALL INTO THE HAND OF THE UNCIRCUMCISED?HL# 19 BUT GOD CLAVE AN HOLLOW PLACE THAT WAS IN THE JAW, AND THERE CAME WATERH THEREOUT; AND WHEN HE HAD DRUNK, HIS SPIRIT CAME AGAIN, AND HE REVIVED:K WHEREFORE HE CALLED THE NAME THEREOF ENHAKKORE, WHICH IS IN LEHI UNTO THISA DAY.AF# 20 AND HE JUDGED ISRAEL IN THE DAYS OF THE PHILISTINES TWENTY YEARS. = CHAPTER 16 L# 1 THEN WENT SAMSON TO GAZA, AND SAW THERE AN HARLOT, AND WENT IN UNTO HER.H# 2 AND IT WAS TOLD THE GAZITES, SAYING, SAMSON IS COME HITHER. AND THEYK COMPASSED HIM IN, AND LAID WAIT FOR HIM ALL NIGHT IN THE GATE OF THE CITY,AI AND WERE QUIET ALL THE NIGHT, SAYING, IN THE MORNING, WHEN IT IS DAY, WEP SHALL KILL HIM.K# 3 AND SAMSON LAY TILL MIDNIGHT, AND AROSE AT MIDNIGHT, AND TOOK THE DOORSLM OF THE GATE OF THE CITY, AND THE TWO POSTS, AND WENT AWAY WITH THEM, BAR ANDSK ALL, AND PUT THEM UPON HIS SHOULDERS, AND CARRIED THEM UP TO THE TOP OF ANN HILL THAT IS BEFORE HEBRON.I# 4 AND IT CAME TO PASS AFTERWARD, THAT HE LOVED A WOMAN IN THE VALLEY OF SOREK, WHOSE NAME WAS DELILAH.FI# 5 AND THE LORDS OF THE PHILISTINES CAME UP UNTO HER, AND SAID UNTO HER,SK ENTICE HIM, AND SEE WHEREIN HIS GREAT STRENGTH LIETH, AND BY WHAT MEANS WELJ MAY PREVAIL AGAINST H00e.)D%5%T6%! !IM, THAT WE MAY BIND HIM TO AFFLICT HIM; AND WE WILL; GIVE THEE EVERY ONE OF US ELEVEN HUNDRED PIECES OF SILVER.NG# 6 AND DELILAH SAID TO SAMSON, TELL ME, I PRAY THEE, WHEREIN THY GREAT F STRENGTH LIETH, AND WHEREWITH THOU MIGHTEST BE BOUND TO AFFLICT THEE.I# 7 AND SAMSON SAID UNTO HER, IF THEY BIND ME WITH SEVEN GREEN WITHS THAT? WERE NEVER DRIED, THEN SHALL I BE WEAK, AND BE AS ANOTHER MAN.NI# 8 THEN THE LORDS OF THE PHILISTINES BROUGHT UP TO HER SEVEN GREEN WITHST7 WHICH HAD NOT BEEN DRIED, AND SHE BOUND HIM WITH THEM.MJ# 9 NOW THERE WERE MEN LYING IN WAIT, ABIDING WITH HER IN THE CHAMBER. ANDJ SHE SAID UNTO HIM, THE PHILISTINES BE UPON THEE, SAMSON. AND HE BRAKE THEF WITHS, AS A THREAD OF TOW IS BROKEN WHEN IT TOUCHETH THE FIRE. SO HIS STRENGTH WAS NOT KNOWN.K# 10 AND DELILAH SAID UNTO SAMSON, BEHOLD, THOU HAST MOCKED ME, AND TOLD MERB LIES: NOW TELL ME, I PRAY THEE, WHEREWITH THOU MIGHTEST BE BOUND.I# 11 AND HE SAID UNTO HER, IF THEY BIND ME FAST WITH NEW ROPES THAT NEVERB< WERE OCCUPIED, THEN SHALL I BE WEAK, AND BE AS ANOTHER MAN.M# 12 DELILAH THEREFORE TOOK NEW ROPES, AND BOUND HIM THEREWITH, AND SAID UNTO H HIM, THE PHILISTINES BE UPON THEE, SAMSON. AND THERE WERE LIERS IN WAITK ABIDING IN THE CHAMBER. AND HE BRAKE THEM FROM OFF HIS ARMS LIKE A THREAD. L# 13 AND DELILAH SAID UNTO SAMSON, HITHERTO THOU HAST MOCKED ME, AND TOLD MEN LIES: TELL ME WHEREWITH THOU MIGHTEST BE BOUND. AND HE SAID UNTO HER, IF THOU1 WEAVEST THE SEVEN LOCKS OF MY HEAD WITH THE WEB.AL# 14 AND SHE FASTENED IT WITH THE PIN, AND SAID UNTO HIM, THE PHILISTINES BEN UPON THEE, SAMSON. AND HE AWAKED OUT OF HIS SLEEP, AND WENT AWAY WITH THE PIN OF THE BEAM, AND WITH THE WEB.SM# 15 AND SHE SAID UNTO HIM, HOW CANST THOU SAY, I LOVE THEE, WHEN THINE HEARTOL IS NOT WITH ME? THOU HAST MOCKED ME THESE THREE TIMES, AND HAST NOT TOLD ME" WHEREIN THY GREAT STRENGTH LIETH.H# 16 AND IT CAME TO PASS, WHEN SHE PRESSED HIM DAILY WITH HER WORDS, AND2 URGED HIM, SO THAT HIS SOUL WAS VEXED UNTO DEATH;M# 17 THAT HE TOLD HER ALL HIS HEART, AND SAID UNTO HER, THERE HATH NOT COME AJ RAZOR UPON MINE HEAD; FOR I HAVE BEEN A NAZARITE UNTO GOD FROM MY MOTHERSK WOMB: IF I BE SHAVEN, THEN MY STRENGTH WILL GO FROM ME, AND I SHALL BECOMEH! WEAK, AND BE LIKE ANY OTHER MAN.RJ# 18 AND WHEN DELILAH SAW THAT HE HAD TOLD HER ALL HIS HEART, SHE SENT ANDK CALLED FOR THE LORDS OF THE PHILISTINES, SAYING, COME UP THIS ONCE, FOR HEPM HATH SHEWED ME ALL HIS HEART. THEN THE LORDS OF THE PHILISTINES CAME UP UNTOT& HER, AND BROUGHT MONEY IN THEIR HAND.M# 19 AND SHE MADE HIM SLEEP UPON HER KNEES; AND SHE CALLED FOR A MAN, AND SHEHN CAUSED HIM TO SHAVE OFF THE SEVEN LOCKS OF HIS HEAD; AND SHE BEGAN TO AFFLICT% HIM, AND HIS STRENGTH WENT FROM HIM.ML# 20 AND SHE SAID, THE PHILISTINES BE UPON THEE, SAMSON. AND HE AWOKE OUT OFG HIS SLEEP, AND SAID, I WILL GO OUT AS AT OTHER TIMES BEFORE, AND SHAKET= MYSELF. AND HE WIST NOT THAT THE LORD WAS DEPARTED FROM HIM.IM# 21 BUT THE PHILISTINES TOOK HIM, AND PUT OUT HIS EYES, AND BROUGHT HIM DOWNEM TO GAZA, AND BOUND HIM WITH FETTERS OF BRASS; AND HE DID GRIND IN THE PRISONR HOUSE.NJ# 22 HOWBEIT THE HAIR OF HIS HEAD BEGAN TO GROW AGAIN AFTER HE WAS SHAVEN.L# 23 THEN THE LORDS OF THE PHILISTINES GATHERED THEM TOGETHER FOR TO OFFER AM GREAT SACRIFICE UNTO DAGON THEIR GOD, AND TO REJOICE: FOR THEY SAID, OUR GODL/ HATH DELIVERED SAMSON OUR ENEMY INTO OUR HAND.SL# 24 AND WHEN THE PEOPLE SAW HIM, THEY PRAISED THEIR GOD: FOR THEY SAID, OURF GOD HATH DELIVERED INTO OUR HANDS OUR ENEMY, AND THE DESTROYER OF OUR COUNTRY, WHICH SLEW MANY OF US.L# 25 AND IT CAME TO PASS, WHEN THEIR HEARTS WERE MERRY, THAT THEY SAID, CALLM FOR SAMSON, THAT HE MAY MAKE US SPORT. AND THEY CALLED FOR SAMSON OUT OF THENL PRISON HOUSE; AND HE MADE THEM SPORT: AND THEY SET HIM BETWEEN THE PILLARS.M# 26 AND SAMSON SAID UNTO THE LAD THAT HELD HIM BY THE HAND, SUFFER ME THAT ITN MAY FEEL THE PILLARS WHEREUPON THE HOUSE STANDETH, THAT I MAY LEAN UPON THEM.F# 27 NOW THE HOUSE WAS FULL OF MEN AND WOMEN; AND ALL THE LORDS OF THEN PHI00e.o-<%X>%+%O-%TADATADATALISTINES WERE THERE; AND THERE WERE UPON THE ROOF ABOUT THREE THOUSAND MEN0 AND WOMEN, THAT BEHELD WHILE SAMSON MADE SPORT.J# 28 AND SAMSON CALLED UNTO THE LORD, AND SAID, O LORD GOD, REMEMBER ME, IM PRAY THEE, AND STRENGTHEN ME, I PRAY THEE, ONLY THIS ONCE, O GOD, THAT I MAY67 BE AT ONCE AVENGED OF THE PHILISTINES FOR MY TWO EYES.SH# 29 AND SAMSON TOOK HOLD OF THE TWO MIDDLE PILLARS UPON WHICH THE HOUSEL STOOD, AND ON WHICH IT WAS BORNE UP, OF THE ONE WITH HIS RIGHT HAND, AND OF THE OTHER WITH HIS LEFT.NK# 30 AND SAMSON SAID, LET ME DIE WITH THE PHILISTINES. AND HE BOWED HIMSELFMH WITH ALL HIS MIGHT; AND THE HOUSE FELL UPON THE LORDS, AND UPON ALL THEK PEOPLE THAT WERE THEREIN. SO THE DEAD WHICH HE SLEW AT HIS DEATH WERE MOREP% THAN THEY WHICH HE SLEW IN HIS LIFE. J# 31 THEN HIS BRETHREN AND ALL THE HOUSE OF HIS FATHER CAME DOWN, AND TOOKI HIM, AND BROUGHT HIM UP, AND BURIED HIM BETWEEN ZORAH AND ESHTAOL IN THENF BURYINGPLACE OF MANOAH HIS FATHER. AND HE JUDGED ISRAEL TWENTY YEARS. = CHAPTER 17 T?# 1 AND THERE WAS A MAN OF MOUNT EPHRAIM, WHOSE NAME WAS MICAH. J# 2 AND HE SAID UNTO HIS MOTHER, THE ELEVEN HUNDRED SHEKELS OF SILVER THATM WERE TAKEN FROM THEE, ABOUT WHICH THOU CURSEDST, AND SPAKEST OF ALSO IN MINE M EARS, BEHOLD, THE SILVER IS WITH ME; I TOOK IT. AND HIS MOTHER SAID, BLESSEDA BE THOU OF THE LORD, MY SON. H# 3 AND WHEN HE HAD RESTORED THE ELEVEN HUNDRED SHEKELS OF SILVER TO HISN MOTHER, HIS MOTHER SAID, I HAD WHOLLY DEDICATED THE SILVER UNTO THE LORD FROMM MY HAND FOR MY SON, TO MAKE A GRAVEN IMAGE AND A MOLTEN IMAGE: NOW THEREFOREW I WILL RESTORE IT UNTO THE E.F# 4 YET HE RESTORED THE MONEY UNTO HIS MOTHER; AND HIS MOTHER TOOK TWOL HUNDRED SHEKELS OF SILVER, AND GAVE THEM TO THE FOUNDER, WHO MADE THEREOF AF GRAVEN IMAGE AND A MOLTEN IMAGE: AND THEY WERE IN THE HOUSE OF MICAH.L# 5 AND THE MAN MICAH HAD AN HOUSE OF GODS, AND MADE AN EPHOD, AND TERAPHIM,8 AND CONSECRATED ONE OF HIS SONS, WHO BECAME HIS PRIEST.K# 6 IN THOSE DAYS THERE WAS NO KING IN ISRAEL, BUT EVERY MAN DID THAT WHICHA WAS RIGHT IN HIS OWN EYES. K# 7 AND THERE WAS A YOUNG MAN OUT OF BETHLEHEMJUDAH OF THE FAMILY OF JUDAH, * WHO WAS A LEVITE, AND HE SOJOURNED THERE.M# 8 AND THE MAN DEPARTED OUT OF THE CITY FROM BETHLEHEMJUDAH TO SOJOURN WHEREAN HE COULD FIND A PLACE: AND HE CAME TO MOUNT EPHRAIM TO THE HOUSE OF MICAH, AS HE JOURNEYED.M# 9 AND MICAH SAID UNTO HIM, WHENCE COMEST THOU? AND HE SAID UNTO HIM, I AM AOH LEVITE OF BETHLEHEMJUDAH, AND I GO TO SOJOURN WHERE I MAY FIND A PLACE.J# 10 AND MICAH SAID UNTO HIM, DWELL WITH ME, AND BE UNTO ME A FATHER AND AN PRIEST, AND I WILL GIVE THEE TEN SHEKELS OF SILVER BY THE YEAR, AND A SUIT OF2 APPAREL, AND THY VICTUALS. SO THE LEVITE WENT IN.L# 11 AND THE LEVITE WAS CONTENT TO DWELL WITH THE MAN; AND THE YOUNG MAN WAS UNTO HIM AS ONE OF HIS SONS.TK# 12 AND MICAH CONSECRATED THE LEVITE; AND THE YOUNG MAN BECAME HIS PRIEST,  AND WAS IN THE HOUSE OF MICAH.,M# 13 THEN SAID MICAH, NOW KNOW I THAT THE LORD WILL DO ME GOOD, SEEING I HAVEC A LEVITE TO MY PRIEST.N = CHAPTER 18 IM# 1 IN THOSE DAYS THERE WAS NO KING IN ISRAEL: AND IN THOSE DAYS THE TRIBE OF J THE DANITES SOUGHT THEM AN INHERITANCE TO DWELL IN; FOR UNTO THAT DAY ALLG THEIR INHERITANCE HAD NOT FALLEN UNTO THEM AMONG THE TRIBES OF ISRAEL.TL# 2 AND THE CHILDREN OF DAN SENT OF THEIR FAMILY FIVE MEN FROM THEIR COASTS,I MEN OF VALOUR, FROM ZORAH, AND FROM ESHTAOL, TO SPY OUT THE LAND, AND TOML SEARCH IT; AND THEY SAID UNTO THEM, GO, SEARCH THE LAND: WHO WHEN THEY CAME< TO MOUNT EPHRAIM, TO THE HOUSE OF MICAH, THEY LODGED THERE.J# 3 WHEN THEY WERE BY THE HOUSE OF MICAH, THEY KNEW THE VOICE OF THE YOUNGK MAN THE LEVITE: AND THEY TURNED IN THITHER, AND SAID UNTO HIM, WHO BROUGHTIJ THEE HITHER? AND WHAT MAKEST THOU IN THIS PLACE? AND WHAT HAST THOU HERE?H# 4 AND HE SAID UNTO THEM, THUS AND THUS DEALETH MICAH WITH ME, AND HATH HIRED ME, AND I AM HIS PRIEST.HJ# 5 AND THEY SAID UNTO HIM, ASK COUNSEL, WE PRAY THEE, OF GOD, THAT WE MAY6 KNOW WHETHER OUR WAY WHICH WE GO SHALL BE PROSPEROUS.K# 00e.)D%5%T6%! !6 AND THE PRIEST SAID UNTO THEM, GO IN PEACE: BEFORE THE LORD IS YOUR WAYF WHEREIN YE GO. J# 7 THEN THE FIVE MEN DEPARTED, AND CAME TO LAISH, AND SAW THE PEOPLE THATJ WERE THEREIN, HOW THEY DWELT CARELESS, AFTER THE MANNER OF THE ZIDONIANS,J QUIET AND SECURE; AND THERE WAS NO MAGISTRATE IN THE LAND, THAT MIGHT PUTM THEM TO SHAME IN ANY THING; AND THEY WERE FAR FROM THE ZIDONIANS, AND HAD NOO BUSINESS WITH ANY MAN.YE# 8 AND THEY CAME UNTO THEIR BRETHREN TO ZORAH AND ESHTAOL: AND THEIRP& BRETHREN SAID UNTO THEM, WHAT SAY YE?J# 9 AND THEY SAID, ARISE, THAT WE MAY GO UP AGAINST THEM: FOR WE HAVE SEENM THE LAND, AND, BEHOLD, IT IS VERY GOOD: AND ARE YE STILL? BE NOT SLOTHFUL TOI& GO, AND TO ENTER TO POSSESS THE LAND.M# 10 WHEN YE GO, YE SHALL COME UNTO A PEOPLE SECURE, AND TO A LARGE LAND: FORAI GOD HATH GIVEN IT INTO YOUR HANDS; A PLACE WHERE THERE IS NO WANT OF ANY  THING THAT IS IN THE EARTH.J# 11 AND THERE WENT FROM THENCE OF THE FAMILY OF THE DANITES, OUT OF ZORAHC AND OUT OF ESHTAOL, SIX HUNDRED MEN APPOINTED WITH WEAPONS OF WAR.SM# 12 AND THEY WENT UP, AND PITCHED IN KIRJATHJEARIM, IN JUDAH: WHEREFORE THEYEA CALLED THAT PLACE MAHANEHDAN UNTO THIS DAY: BEHOLD, IT IS BEHINDA KIRJATHJEARIM.SJ# 13 AND THEY PASSED THENCE UNTO MOUNT EPHRAIM, AND CAME UNTO THE HOUSE OF MICAH.AJ# 14 THEN ANSWERED THE FIVE MEN THAT WENT TO SPY OUT THE COUNTRY OF LAISH,J AND SAID UNTO THEIR BRETHREN, DO YE KNOW THAT THERE IS IN THESE HOUSES ANK EPHOD, AND TERAPHIM, AND A GRAVEN IMAGE, AND A MOLTEN IMAGE? NOW THEREFOREA CONSIDER WHAT YE HAVE TO DO.L# 15 AND THEY TURNED THITHERWARD, AND CAME TO THE HOUSE OF THE YOUNG MAN THE7 LEVITE, EVEN UNTO THE HOUSE OF MICAH, AND SALUTED HIM. L# 16 AND THE SIX HUNDRED MEN APPOINTED WITH THEIR WEAPONS OF WAR, WHICH WERE; OF THE CHILDREN OF DAN, STOOD BY THE ENTERING OF THE GATE.FH# 17 AND THE FIVE MEN THAT WENT TO SPY OUT THE LAND WENT UP, AND CAME INM THITHER, AND TOOK THE GRAVEN IMAGE, AND THE EPHOD, AND THE TERAPHIM, AND THE L MOLTEN IMAGE: AND THE PRIEST STOOD IN THE ENTERING OF THE GATE WITH THE SIX5 HUNDRED MEN THAT WERE APPOINTED WITH WEAPONS OF WAR. H# 18 AND THESE WENT INTO MICAHS HOUSE, AND FETCHED THE CARVED IMAGE, THEI EPHOD, AND THE TERAPHIM, AND THE MOLTEN IMAGE. THEN SAID THE PRIEST UNTOR THEM, WHAT DO YE?K# 19 AND THEY SAID UNTO HIM, HOLD THY PEACE, LAY THINE HAND UPON THY MOUTH, M AND GO WITH US, AND BE TO US A FATHER AND A PRIEST: IS IT BETTER FOR THEE TOEM BE A PRIEST UNTO THE HOUSE OF ONE MAN, OR THAT THOU BE A PRIEST UNTO A TRIBES AND A FAMILY IN ISRAEL?M# 20 AND THE PRIESTS HEART WAS GLAD, AND HE TOOK THE EPHOD, AND THE TERAPHIM,; AND THE GRAVEN IMAGE, AND WENT IN THE MIDST OF THE PEOPLE. L# 21 SO THEY TURNED AND DEPARTED, AND PUT THE LITTLE ONES AND THE CATTLE AND THE CARRIAGE BEFORE THEM.M# 22 AND WHEN THEY WERE A GOOD WAY FROM THE HOUSE OF MICAH, THE MEN THAT WEREL IN THE HOUSES NEAR TO MICAHS HOUSE WERE GATHERED TOGETHER, AND OVERTOOK THE CHILDREN OF DAN. J# 23 AND THEY CRIED UNTO THE CHILDREN OF DAN. AND THEY TURNED THEIR FACES,M AND SAID UNTO MICAH, WHAT AILETH THEE, THAT THOU COMEST WITH SUCH A COMPANY? J# 24 AND HE SAID, YE HAVE TAKEN AWAY MY GODS WHICH I MADE, AND THE PRIEST,N AND YE ARE GONE AWAY: AND WHAT HAVE I MORE? AND WHAT IS THIS THAT YE SAY UNTO ME, WHAT AILETH THEE?L# 25 AND THE CHILDREN OF DAN SAID UNTO HIM, LET NOT THY VOICE BE HEARD AMONGM US, LEST ANGRY FELLOWS RUN UPON THEE, AND THOU LOSE THY LIFE, WITH THE LIVES OF THY HOUSEHOLD.I# 26 AND THE CHILDREN OF DAN WENT THEIR WAY: AND WHEN MICAH SAW THAT THEYA WERE TOO STRONG FOR HIM, HE TURNED AND WENT BACK UNTO HIS HOUSE.AK# 27 AND THEY TOOK THE THINGS WHICH MICAH HAD MADE, AND THE PRIEST WHICH HEEK HAD, AND CAME UNTO LAISH, UNTO A PEOPLE THAT WERE AT QUIET AND SECURE: ANDYJ THEY SMOTE THEM WITH THE EDGE OF THE SWORD, AND BURNT THE CITY WITH FIRE.L# 28 AND THERE WAS NO DELIVERER, BECAUSE IT WAS FAR FROM ZIDON, AND THEY HADL NO BUSINESS WITH ANY MAN; AND IT WAS IN THE VALLEY THAT LIETH BY BETHREHOB.* AND THEY BUILT A CITY, AND DWELT THEREIN.J00e.o-<%X>%+%O-%TADATADATA# 29 AND THEY CALLED THE NAME OF THE CITY DAN, AFTER THE NAME OF DAN THEIRL FATHER, WHO WAS BORN UNTO ISRAEL: HOWBEIT THE NAME OF THE CITY WAS LAISH AT THE FIRST.NK# 30 AND THE CHILDREN OF DAN SET UP THE GRAVEN IMAGE: AND JONATHAN, THE SONMN OF GERSHOM, THE SON OF MANASSEH, HE AND HIS SONS WERE PRIESTS TO THE TRIBE OF0 DAN UNTIL THE DAY OF THE CAPTIVITY OF THE LAND.J# 31 AND THEY SET THEM UP MICAHS GRAVEN IMAGE, WHICH HE MADE, ALL THE TIME% THAT THE HOUSE OF GOD WAS IN SHILOH.Y = CHAPTER 19 RM# 1 AND IT CAME TO PASS IN THOSE DAYS, WHEN THERE WAS NO KING IN ISRAEL, THATRM THERE WAS A CERTAIN LEVITE SOJOURNING ON THE SIDE OF MOUNT EPHRAIM, WHO TOOK* TO HIM A CONCUBINE OUT OF BETHLEHEMJUDAH.J# 2 AND HIS CONCUBINE PLAYED THE WHORE AGAINST HIM, AND WENT AWAY FROM HIMK UNTO HER FATHERS HOUSE TO BETHLEHEMJUDAH, AND WAS THERE FOUR WHOLE MONTHS. J# 3 AND HER HUSBAND AROSE, AND WENT AFTER HER, TO SPEAK FRIENDLY UNTO HER,L AND TO BRING HER AGAIN, HAVING HIS SERVANT WITH HIM, AND A COUPLE OF ASSES:N AND SHE BROUGHT HIM INTO HER FATHERS HOUSE: AND WHEN THE FATHER OF THE DAMSEL" SAW HIM, HE REJOICED TO MEET HIM.I# 4 AND HIS FATHER IN LAW, THE DAMSELS FATHER, RETAINED HIM; AND HE ABODETB WITH HIM THREE DAYS: SO THEY DID EAT AND DRINK, AND LODGED THERE.G# 5 AND IT CAME TO PASS ON THE FOURTH DAY, WHEN THEY AROSE EARLY IN THETM MORNING, THAT HE ROSE UP TO DEPART: AND THE DAMSELS FATHER SAID UNTO HIS SONAJ IN LAW, COMFORT THINE HEART WITH A MORSEL OF BREAD, AND AFTERWARD GO YOUR WAY.OK# 6 AND THEY SAT DOWN, AND DID EAT AND DRINK BOTH OF THEM TOGETHER: FOR THEHM DAMSELS FATHER HAD SAID UNTO THE MAN, BE CONTENT, I PRAY THEE, AND TARRY ALL,% NIGHT, AND LET THINE HEART BE MERRY.HD# 7 AND WHEN THE MAN ROSE UP TO DEPART, HIS FATHER IN LAW URGED HIM:! THEREFORE HE LODGED THERE AGAIN.TI# 8 AND HE AROSE EARLY IN THE MORNING ON THE FIFTH DAY TO DEPART; AND THEDN DAMSELS FATHER SAID, COMFORT THINE HEART, I PRAY THEE. AND THEY TARRIED UNTIL* AFTERNOON, AND THEY DID EAT BOTH OF THEM.F# 9 AND WHEN THE MAN ROSE UP TO DEPART, HE, AND HIS CONCUBINE, AND HISK SERVANT, HIS FATHER IN LAW, THE DAMSELS FATHER, SAID UNTO HIM, BEHOLD, NOWEL THE DAY DRAWETH TOWARD EVENING, I PRAY YOU TARRY ALL NIGHT: BEHOLD, THE DAYL GROWETH TO AN END, LODGE HERE, THAT THINE HEART MAY BE MERRY; AND TO MORROW5 GET YOU EARLY ON YOUR WAY, THAT THOU MAYEST GO HOME.FM# 10 BUT THE MAN WOULD NOT TARRY THAT NIGHT, BUT HE ROSE UP AND DEPARTED, ANDHI CAME OVER AGAINST JEBUS, WHICH IS JERUSALEM; AND THERE WERE WITH HIM TWO 0 ASSES SADDLED, HIS CONCUBINE ALSO WAS WITH HIM.M# 11 AND WHEN THEY WERE BY JEBUS, THE DAY WAS FAR SPENT; AND THE SERVANT SAIDMM UNTO HIS MASTER, COME, I PRAY THEE, AND LET US TURN IN INTO THIS CITY OF THEH JEBUSITES, AND LODGE IN IT.I# 12 AND HIS MASTER SAID UNTO HIM, WE WILL NOT TURN ASIDE HITHER INTO THEYM CITY OF A STRANGER, THAT IS NOT OF THE CHILDREN OF ISRAEL; WE WILL PASS OVER TO GIBEAH. M# 13 AND HE SAID UNTO HIS SERVANT, COME, AND LET US DRAW NEAR TO ONE OF THESEH3 PLACES TO LODGE ALL NIGHT, IN GIBEAH, OR IN RAMAH. K# 14 AND THEY PASSED ON AND WENT THEIR WAY; AND THE SUN WENT DOWN UPON THEMA7 WHEN THEY WERE BY GIBEAH, WHICH BELONGETH TO BENJAMIN.,M# 15 AND THEY TURNED ASIDE THITHER, TO GO IN AND TO LODGE IN GIBEAH: AND WHENAJ HE WENT IN, HE SAT HIM DOWN IN A STREET OF THE CITY: FOR THERE WAS NO MAN* THAT TOOK THEM INTO HIS HOUSE TO LODGING.I# 16 AND, BEHOLD, THERE CAME AN OLD MAN FROM HIS WORK OUT OF THE FIELD ATNK EVEN, WHICH WAS ALSO OF MOUNT EPHRAIM; AND HE SOJOURNED IN GIBEAH: BUT THEN" MEN OF THE PLACE WERE BENJAMITES.M# 17 AND WHEN HE HAD LIFTED UP HIS EYES, HE SAW A WAYFARING MAN IN THE STREETRI OF THE CITY: AND THE OLD MAN SAID, WHITHER GOEST THOU? AND WHENCE COMESTH THOU?M# 18 AND HE SAID UNTO HIM, WE ARE PASSING FROM BETHLEHEMJUDAH TOWARD THE SIDETK OF MOUNT EPHRAIM; FROM THENCE AM I: AND I WENT TO BETHLEHEMJUDAH, BUT I AM.M NOW GOING TO THE HOUSE OF THE LORD; AND THERE IS NO MAN THAT RECEIVETH ME TOE HOUSE.HL# 19 YET THERE IS BOTH STRAW AND PROVENDER FOR OUR ASSES; AND THERE IS BRE00e .)D%5%T6%! !ADK AND WINE ALSO FOR ME, AND FOR THY HANDMAID, AND FOR THE YOUNG MAN WHICH ISF2 WITH THY SERVANTS: THERE IS NO WANT OF ANY THING.J# 20 AND THE OLD MAN SAID, PEACE BE WITH THEE; HOWSOEVER LET ALL THY WANTS+ LIE UPON ME; ONLY LODGE NOT IN THE STREET.OM# 21 SO HE BROUGHT HIM INTO HIS HOUSE, AND GAVE PROVENDER UNTO THE ASSES: ANDA/ THEY WASHED THEIR FEET, AND DID EAT AND DRINK.;M# 22 NOW AS THEY WERE MAKING THEIR HEARTS MERRY, BEHOLD, THE MEN OF THE CITY,RK CERTAIN SONS OF BELIAL, BESET THE HOUSE ROUND ABOUT, AND BEAT AT THE DOOR,DK AND SPAKE TO THE MASTER OF THE HOUSE, THE OLD MAN, SAYING, BRING FORTH THE 6 MAN THAT CAME INTO THINE HOUSE, THAT WE MAY KNOW HIM.L# 23 AND THE MAN, THE MASTER OF THE HOUSE, WENT OUT UNTO THEM, AND SAID UNTON THEM, NAY, MY BRETHREN, NAY, I PRAY YOU, DO NOT SO WICKEDLY; SEEING THAT THIS0 MAN IS COME INTO MINE HOUSE, DO NOT THIS FOLLY.I# 24 BEHOLD, HERE IS MY DAUGHTER A MAIDEN, AND HIS CONCUBINE; THEM I WILLMK BRING OUT NOW, AND HUMBLE YE THEM, AND DO WITH THEM WHAT SEEMETH GOOD UNTOE/ YOU: BUT UNTO THIS MAN DO NOT SO VILE A THING. M# 25 BUT THE MEN WOULD NOT HEARKEN TO HIM: SO THE MAN TOOK HIS CONCUBINE, ANDTM BROUGHT HER FORTH UNTO THEM; AND THEY KNEW HER, AND ABUSED HER ALL THE NIGHTTF UNTIL THE MORNING: AND WHEN THE DAY BEGAN TO SPRING, THEY LET HER GO.M# 26 THEN CAME THE WOMAN IN THE DAWNING OF THE DAY, AND FELL DOWN AT THE DOOR 9 OF THE MANS HOUSE WHERE HER LORD WAS, TILL IT WAS LIGHT. L# 27 AND HER LORD ROSE UP IN THE MORNING, AND OPENED THE DOORS OF THE HOUSE,L AND WENT OUT TO GO HIS WAY: AND, BEHOLD, THE WOMAN HIS CONCUBINE WAS FALLENF DOWN AT THE DOOR OF THE HOUSE, AND HER HANDS WERE UPON THE THRESHOLD.K# 28 AND HE SAID UNTO HER, UP, AND LET US BE GOING. BUT NONE ANSWERED. THENTK THE MAN TOOK HER UP UPON AN ASS, AND THE MAN ROSE UP, AND GAT HIM UNTO HIS  PLACE.WK# 29 AND WHEN HE WAS COME INTO HIS HOUSE, HE TOOK A KNIFE, AND LAID HOLD ONEM HIS CONCUBINE, AND DIVIDED HER, TOGETHER WITH HER BONES, INTO TWELVE PIECES,I, AND SENT HER INTO ALL THE COASTS OF ISRAEL.J# 30 AND IT WAS SO, THAT ALL THAT SAW IT SAID, THERE WAS NO SUCH DEED DONEM NOR SEEN FROM THE DAY THAT THE CHILDREN OF ISRAEL CAME UP OUT OF THE LAND OF H EGYPT UNTO THIS DAY: CONSIDER OF IT, TAKE ADVICE, AND SPEAK YOUR MINDS. = CHAPTER 20 OF# 1 THEN ALL THE CHILDREN OF ISRAEL WENT OUT, AND THE CONGREGATION WASK GATHERED TOGETHER AS ONE MAN, FROM DAN EVEN TO BEERSHEBA, WITH THE LAND OFN! GILEAD, UNTO THE LORD IN MIZPEH.IF# 2 AND THE CHIEF OF ALL THE PEOPLE, EVEN OF ALL THE TRIBES OF ISRAEL,H PRESENTED THEMSELVES IN THE ASSEMBLY OF THE PEOPLE OF GOD, FOUR HUNDRED" THOUSAND FOOTMEN THAT DREW SWORD.M# 3 (NOW THE CHILDREN OF BENJAMIN HEARD THAT THE CHILDREN OF ISRAEL WERE GONEOG UP TO MIZPEH.) THEN SAID THE CHILDREN OF ISRAEL, TELL US, HOW WAS THISN WICKEDNESS?I# 4 AND THE LEVITE, THE HUSBAND OF THE WOMAN THAT WAS SLAIN, ANSWERED AND L SAID, I CAME INTO GIBEAH THAT BELONGETH TO BENJAMIN, I AND MY CONCUBINE, TO LODGE.J# 5 AND THE MEN OF GIBEAH ROSE AGAINST ME, AND BESET THE HOUSE ROUND ABOUTK UPON ME BY NIGHT, AND THOUGHT TO HAVE SLAIN ME: AND MY CONCUBINE HAVE THEYN FORCED, THAT SHE IS DEAD.K# 6 AND I TOOK MY CONCUBINE, AND CUT HER IN PIECES, AND SENT HER THROUGHOUTOF ALL THE COUNTRY OF THE INHERITANCE OF ISRAEL: FOR THEY HAVE COMMITTED LEWDNESS AND FOLLY IN ISRAEL.M# 7 BEHOLD, YE ARE ALL CHILDREN OF ISRAEL; GIVE HERE YOUR ADVICE AND COUNSEL.OL# 8 AND ALL THE PEOPLE AROSE AS ONE MAN, SAYING, WE WILL NOT ANY OF US GO TO9 HIS TENT, NEITHER WILL WE ANY OF US TURN INTO HIS HOUSE.DM# 9 BUT NOW THIS SHALL BE THE THING WHICH WE WILL DO TO GIBEAH; WE WILL GO UPT BY LOT AGAINST IT;HH# 10 AND WE WILL TAKE TEN MEN OF AN HUNDRED THROUGHOUT ALL THE TRIBES OFM ISRAEL, AND AN HUNDRED OF A THOUSAND, AND A THOUSAND OUT OF TEN THOUSAND, TOML FETCH VICTUAL FOR THE PEOPLE, THAT THEY MAY DO, WHEN THEY COME TO GIBEAH OFG BENJAMIN, ACCORDING TO ALL THE FOLLY THAT THEY HAVE WROUGHT IN ISRAEL. K# 11 SO ALL THE MEN OF ISRAEL WERE GATHERED AGAINST THE CITY, KNIT TOGETHERO AS ONE MAN.I# 12 AND00e(.o-<%X>%+%O-%TADATADATA THE TRIBES OF ISRAEL SENT MEN THROUGH ALL THE TRIBE OF BENJAMIN,H8 SAYING, WHAT WICKEDNESS IS THIS THAT IS DONE AMONG YOU?K# 13 NOW THEREFORE DELIVER US THE MEN, THE CHILDREN OF BELIAL, WHICH ARE INEN GIBEAH, THAT WE MAY PUT THEM TO DEATH, AND PUT AWAY EVIL FROM ISRAEL. BUT THEJ CHILDREN OF BENJAMIN WOULD NOT HEARKEN TO THE VOICE OF THEIR BRETHREN THE CHILDREN OF ISRAEL.I# 14 BUT THE CHILDREN OF BENJAMIN GATHERED THEMSELVES TOGETHER OUT OF THE H CITIES UNTO GIBEAH, TO GO OUT TO BATTLE AGAINST THE CHILDREN OF ISRAEL.G# 15 AND THE CHILDREN OF BENJAMIN WERE NUMBERED AT THAT TIME OUT OF THESN CITIES TWENTY AND SIX THOUSAND MEN THAT DREW SWORD, BESIDE THE INHABITANTS OF6 GIBEAH, WHICH WERE NUMBERED SEVEN HUNDRED CHOSEN MEN.J# 16 AMONG ALL THIS PEOPLE THERE WERE SEVEN HUNDRED CHOSEN MEN LEFTHANDED;? EVERY ONE COULD SLING STONES AT AN HAIR BREADTH, AND NOT MISS. G# 17 AND THE MEN OF ISRAEL, BESIDE BENJAMIN, WERE NUMBERED FOUR HUNDREDR9 THOUSAND MEN THAT DREW SWORD: ALL THESE WERE MEN OF WAR.NK# 18 AND THE CHILDREN OF ISRAEL AROSE, AND WENT UP TO THE HOUSE OF GOD, ANDTL ASKED COUNSEL OF GOD, AND SAID, WHICH OF US SHALL GO UP FIRST TO THE BATTLEN AGAINST THE CHILDREN OF BENJAMIN? AND THE LORD SAID, JUDAH SHALL GO UP FIRST.L# 19 AND THE CHILDREN OF ISRAEL ROSE UP IN THE MORNING, AND ENCAMPED AGAINST GIBEAH.K# 20 AND THE MEN OF ISRAEL WENT OUT TO BATTLE AGAINST BENJAMIN; AND THE MENSC OF ISRAEL PUT THEMSELVES IN ARRAY TO FIGHT AGAINST THEM AT GIBEAH.TI# 21 AND THE CHILDREN OF BENJAMIN CAME FORTH OUT OF GIBEAH, AND DESTROYEDRK DOWN TO THE GROUND OF THE ISRAELITES THAT DAY TWENTY AND TWO THOUSAND MEN.WJ# 22 AND THE PEOPLE THE MEN OF ISRAEL ENCOURAGED THEMSELVES, AND SET THEIRJ BATTLE AGAIN IN ARRAY IN THE PLACE WHERE THEY PUT THEMSELVES IN ARRAY THE FIRST DAY.NM# 23 (AND THE CHILDREN OF ISRAEL WENT UP AND WEPT BEFORE THE LORD UNTIL EVEN,UM AND ASKED COUNSEL OF THE LORD, SAYING, SHALL I GO UP AGAIN TO BATTLE AGAINSTTL THE CHILDREN OF BENJAMIN MY BROTHER? AND THE LORD SAID, GO UP AGAINST HIM.)J# 24 AND THE CHILDREN OF ISRAEL CAME NEAR AGAINST THE CHILDREN OF BENJAMIN THE SECOND DAY.K# 25 AND BENJAMIN WENT FORTH AGAINST THEM OUT OF GIBEAH THE SECOND DAY, ANDAF DESTROYED DOWN TO THE GROUND OF THE CHILDREN OF ISRAEL AGAIN EIGHTEEN( THOUSAND MEN; ALL THESE DREW THE SWORD.K# 26 THEN ALL THE CHILDREN OF ISRAEL, AND ALL THE PEOPLE, WENT UP, AND CAMEKK UNTO THE HOUSE OF GOD, AND WEPT, AND SAT THERE BEFORE THE LORD, AND FASTEDCL THAT DAY UNTIL EVEN, AND OFFERED BURNT OFFERINGS AND PEACE OFFERINGS BEFORE THE LORD.I# 27 AND THE CHILDREN OF ISRAEL ENQUIRED OF THE LORD, (FOR THE ARK OF THE) COVENANT OF GOD WAS THERE IN THOSE DAYS,UL# 28 AND PHINEHAS, THE SON OF ELEAZAR, THE SON OF AARON, STOOD BE FORE IT INM THOSE DAYS,) SAYING, SHALL I YET AGAIN GO OUT TO BATTLE AGAINST THE CHILDREN K OF BENJAMIN MY BROTHER, OR SHALL I CEASE? AND THE LORD SAID, GO UP; FOR TO , MORROW I WILL DELIVER THEM INTO THINE HAND.5# 29 AND ISRAEL SET LIERS IN WAIT ROUND ABOUT GIBEAH. K# 30 AND THE CHILDREN OF ISRAEL WENT UP AGAINST THE CHILDREN OF BENJAMIN ON N THE THIRD DAY, AND PUT THEMSELVES IN ARRAY AGAINST GIBEAH, AS AT OTHER TIMES.M# 31 AND THE CHILDREN OF BENJAMIN WENT OUT AGAINST THE PEOPLE, AND WERE DRAWNDK AWAY FROM THE CITY; AND THEY BEGAN TO SMITE OF THE PEOPLE, AND KILL, AS ATNM OTHER TIMES, IN THE HIGHWAYS, OF WHICH ONE GOETH UP TO THE HOUSE OF GOD, AND > THE OTHER TO GIBEAH IN THE FIELD, ABOUT THIRTY MEN OF ISRAEL.K# 32 AND THE CHILDREN OF BENJAMIN SAID, THEY ARE SMITTEN DOWN BEFORE US, ASFJ AT THE FIRST. BUT THE CHILDREN OF ISRAEL SAID, LET US FLEE, AND DRAW THEM! FROM THE CITY UNTO THE HIGHWAYS.HM# 33 AND ALL THE MEN OF ISRAEL ROSE UP OUT OF THEIR PLACE, AND PUT THEMSELVESOI IN ARRAY AT BAALTAMAR: AND THE LIERS IN WAIT OF ISRAEL CAME FORTH OUT OFE1 THEIR PLACES, EVEN OUT OF THE MEADOWS OF GIBEAH.YM# 34 AND THERE CAME AGAINST GIBEAH TEN THOUSAND CHOSEN MEN OUT OF ALL ISRAEL, D AND THE BATTLE WAS SORE: BUT THEY KNEW NOT THAT EVIL WAS NEAR THEM.J# 35 AND THE LORD SMOTE BENJAMIN BEFORE ISRAEL: AN00e0.)D%5%T6%! !D THE CHILDREN OF ISRAELM DESTROYED OF THE BENJAMITES THAT DAY TWENTY AND FIVE THOUSAND AND AN HUNDRED MEN: ALL THESE DREW THE SWORD.SK# 36 SO THE CHILDREN OF BENJAMIN SAW THAT THEY WERE SMITTEN: FOR THE MEN OF L ISRAEL GAVE PLACE TO THE BENJAMITES, BECAUSE THEY TRUSTED UNTO THE LIERS IN' WAIT WHICH THEY HAD SET BESIDE GIBEAH.IK# 37 AND THE LIERS IN WAIT HASTED, AND RUSHED UPON GIBEAH; AND THE LIERS INOH WAIT DREW THEMSELVES ALONG, AND SMOTE ALL THE CITY WITH THE EDGE OF THE SWORD.FL# 38 NOW THERE WAS AN APPOINTED SIGN BETWEEN THE MEN OF ISRAEL AND THE LIERSK IN WAIT, THAT THEY SHOULD MAKE A GREAT FLAME WITH SMOKE RISE UP OUT OF THE  CITY.H# 39 AND WHEN THE MEN OF ISRAEL RETIRED IN THE BATTLE, BENJAMIN BEGAN TOI SMITE AND KILL OF THE MEN OF ISRAEL ABOUT THIRTY PERSONS: FOR THEY SAID,I@ SURELY THEY ARE SMITTEN DOWN BEFORE US, AS IN THE FIRST BATTLE.J# 40 BUT WHEN THE FLAME BEGAN TO ARISE UP OUT OF THE CITY WITH A PILLAR OFM SMOKE, THE BENJAMITES LOOKED BEHIND THEM, AND, BEHOLD, THE FLAME OF THE CITY  ASCENDED UP TO HEAVEN.EF# 41 AND WHEN THE MEN OF ISRAEL TURNED AGAIN, THE MEN OF BENJAMIN WERE3 AMAZED: FOR THEY SAW THAT EVIL WAS COME UPON THEM.WL# 42 THEREFORE THEY TURNED THEIR BACKS BEFORE THE MEN OF ISRAEL UNTO THE WAYL OF THE WILDERNESS; BUT THE BATTLE OVERTOOK THEM; AND THEM WHICH CAME OUT OF0 THE CITIES THEY DESTROYED IN THE MIDST OF THEM.H# 43 THUS THEY INCLOSED THE BENJAMITES ROUND ABOUT, AND CHASED THEM, ANDD TRODE THEM DOWN WITH EASE OVER AGAINST GIBEAH TOWARD THE SUNRISING.L# 44 AND THERE FELL OF BENJAMIN EIGHTEEN THOUSAND MEN; ALL THESE WERE MEN OF VALOUR.L# 45 AND THEY TURNED AND FLED TOWARD THE WILDERNESS UNTO THE ROCK OF RIMMON:M AND THEY GLEANED OF THEM IN THE HIGHWAYS FIVE THOUSAND MEN; AND PURSUED HARD : AFTER THEM UNTO GIDOM, AND SLEW TWO THOUSAND MEN OF THEM.E# 46 SO THAT ALL WHICH FELL THAT DAY OF BENJAMIN WERE TWENTY AND FIVEU@ THOUSAND MEN THAT DREW THE SWORD; ALL THESE WERE MEN OF VALOUR.H# 47 BUT SIX HUNDRED MEN TURNED AND FLED TO THE WILDERNESS UNTO THE ROCK2 RIMMON, AND ABODE IN THE ROCK RIMMON FOUR MONTHS.J# 48 AND THE MEN OF ISRAEL TURNED AGAIN UPON THE CHILDREN OF BENJAMIN, ANDM SMOTE THEM WITH THE EDGE OF THE SWORD, AS WELL THE MEN OF EVERY CITY, AS THEEL BEAST, AND ALL THAT CAME TO HAND: ALSO THEY SET ON FIRE ALL THE CITIES THAT THEY CAME TO. = CHAPTER 21 LM# 1 NOW THE MEN OF ISRAEL HAD SWORN IN MIZPEH, SAYING, THERE SHALL NOT ANY OF , US GIVE HIS DAUGHTER UNTO BENJAMIN TO WIFE.M# 2 AND THE PEOPLE CAME TO THE HOUSE OF GOD, AND ABODE THERE TILL EVEN BEFOREA0 GOD, AND LIFTED UP THEIR VOICES, AND WEPT SORE;L# 3 AND SAID, O LORD GOD OF ISRAEL, WHY IS THIS COME TO PASS IN ISRAEL, THAT4 THERE SHOULD BE TO DAY ONE TRIBE LACKING IN ISRAEL?L# 4 AND IT CAME TO PASS ON THE MORROW, THAT THE PEOPLE ROSE EARLY, AND BUILTA THERE AN ALTAR, AND OFFERED BURNT OFFERINGS AND PEACE OFFERINGS.II# 5 AND THE CHILDREN OF ISRAEL SAID, WHO IS THERE AMONG ALL THE TRIBES OFUJ ISRAEL THAT CAME NOT UP WITH THE CONGREGATION UNTO THE LORD? FOR THEY HADI MADE A GREAT OATH CONCERNING HIM THAT CAME NOT UP TO THE LORD TO MIZPEH,T) SAYING, HE SHALL SURELY BE PUT TO DEATH. L# 6 AND THE CHILDREN OF ISRAEL REPENTED THEM FOR BENJAMIN THEIR BROTHER, AND7 SAID, THERE IS ONE TRIBE CUT OFF FROM ISRAEL THIS DAY.TK# 7 HOW SHALL WE DO FOR WIVES FOR THEM THAT REMAIN, SEEING WE HAVE SWORN BYR? THE LORD THAT WE WILL NOT GIVE THEM OF OUR DAUGHTERS TO WIVES?WM# 8 AND THEY SAID, WHAT ONE IS THERE OF THE TRIBES OF ISRAEL THAT CAME NOT UPAE TO MIZPEH TO THE LORD? AND, BEHOLD, THERE CAME NONE TO THE CAMP FROMT JABESHGILEAD TO THE ASSEMBLY.E# 9 FOR THE PEOPLE WERE NUMBERED, AND, BEHOLD, THERE WERE NONE OF THEO# INHABITANTS OF JABESHGILEAD THERE.HM# 10 AND THE CONGREGATION SENT THITHER TWELVE THOUSAND MEN OF THE VALIANTEST, N AND COMMANDED THEM, SAYING, GO AND SMITE THE INHABITANTS OF JABESHGILEAD WITH8 THE EDGE OF THE SWORD, WITH THE WOMEN AND THE CHILDREN.K# 11 AND THIS IS THE THING THAT YE SHALL DO, YE SHALL UTTERLY DESTROY EVERYU- MALE, AND EVERY WOMAN THAT HATH LAIN BY MAN.C00e8.f=.<%X>%+%O-%TADATADATAL# 12 AND THEY FOUND AMONG THE INHABITANTS OF JABESHGILEAD FOUR HUNDRED YOUNGM VIRGINS, THAT HAD KNOWN NO MAN BY LYING WITH ANY MALE: AND THEY BROUGHT THEME9 UNTO THE CAMP TO SHILOH, WHICH IS IN THE LAND OF CANAAN.HE# 13 AND THE WHOLE CONGREGATION SENT SOME TO SPEAK TO THE CHILDREN OFTH BENJAMIN THAT WERE IN THE ROCK RIMMON, AND TO CALL PEACEABLY UNTO THEM.I# 14 AND BENJAMIN CAME AGAIN AT THAT TIME; AND THEY GAVE THEM WIVES WHICHLL THEY HAD SAVED ALIVE OF THE WOMEN OF JABESHGILEAD: AND YET SO THEY SUFFICED THEM NOT.I# 15 AND THE PEOPLE REPENTED THEM FOR BENJAMIN, BECAUSE THAT THE LORD HADT' MADE A BREACH IN THE TRIBES OF ISRAEL. L# 16 THEN THE ELDERS OF THE CONGREGATION SAID, HOW SHALL WE DO FOR WIVES FORB THEM THAT REMAIN, SEEING THE WOMEN ARE DESTROYED OUT OF BENJAMIN?L# 17 AND THEY SAID, THERE MUST BE AN INHERITANCE FOR THEM THAT BE ESCAPED OF7 BENJAMIN, THAT A TRIBE BE NOT DESTROYED OUT OF ISRAEL. M# 18 HOWBEIT WE MAY NOT GIVE THEM WIVES OF OUR DAUGHTERS: FOR THE CHILDREN OF H ISRAEL HAVE SWORN, SAYING, CURSED BE HE THAT GIVETH A WIFE TO BENJAMIN.M# 19 THEN THEY SAID, BEHOLD, THERE IS A FEAST OF THE LORD IN SHILOH YEARLY IN N A PLACE WHICH IS ON THE NORTH SIDE OF BETHEL, ON THE EAST SIDE OF THE HIGHWAYC THAT GOETH UP FROM BETHEL TO SHECHEM, AND ON THE SOUTH OF LEBONAH.AM# 20 THEREFORE THEY COMMANDED THE CHILDREN OF BENJAMIN, SAYING, GO AND LIE INI WAIT IN THE VINEYARDS;SJ# 21 AND SEE, AND, BEHOLD, IF THE DAUGHTERS OF SHILOH COME OUT TO DANCE INL DANCES, THEN COME YE OUT OF THE VINEYARDS, AND CATCH YOU EVERY MAN HIS WIFE< OF THE DAUGHTERS OF SHILOH, AND GO TO THE LAND OF BENJAMIN.J# 22 AND IT SHALL BE, WHEN THEIR FATHERS OR THEIR BRETHREN COME UNTO US TOM COMPLAIN, THAT WE WILL SAY UNTO THEM, BE FAVOURABLE UNTO THEM FOR OUR SAKES:CM BECAUSE WE RESERVED NOT TO EACH MAN HIS WIFE IN THE WAR: FOR YE DID NOT GIVEO2 UNTO THEM AT THIS TIME, THAT YE SHOULD BE GUILTY.K# 23 AND THE CHILDREN OF BENJAMIN DID SO, AND TOOK THEM WIVES, ACCORDING TOAG THEIR NUMBER, OF THEM THAT DANCED, WHOM THEY CAUGHT: AND THEY WENT ANDAM RETURNED UNTO THEIR INHERITANCE, AND REPAIRED THE CITIES, AND DWELT IN THEM.AJ# 24 AND THE CHILDREN OF ISRAEL DEPARTED THENCE AT THAT TIME, EVERY MAN TOL HIS TRIBE AND TO HIS FAMILY, AND THEY WENT OUT FROM THENCE EVERY MAN TO HIS INHERITANCE.DL# 25 IN THOSE DAYS THERE WAS NO KING IN ISRAEL: EVERY MAN DID THAT WHICH WAS RIGHT IN HIS OWN EYES.GUILTY.K# 23 AND THE CHILDREN OF BENJAMIN DID SO, AND TOOK THEM WIVES, ACCORDING TOAG THEIR NUMBER, OF THEM THAT DANCED, WHOM THE * BOOK08 RUTHH = CHAPTER 1 K# 1 NOW IT CAME TO PASS IN THE DAYS WHEN THE JUDGES RULED, THAT THERE WAS AAK FAMINE IN THE LAND. AND A CERTAIN MAN OF BETHLEHEMJUDAH WENT TO SOJOURN IN9 THE COUNTRY OF MOAB, HE, AND HIS WIFE, AND HIS TWO SONS. J# 2 AND THE NAME OF THE MAN WAS ELIMELECH, AND THE NAME OF HIS WIFE NAOMI,@ AND THE NAME OF HIS TWO SONS MAHLON AND CHILION, EPHRATHITES OFM BETHLEHEMJUDAH. AND THEY CAME INTO THE COUNTRY OF MOAB, AND CONTINUED THERE.J# 3 AND ELIMELECH NAOMIS HUSBAND DIED; AND SHE WAS LEFT, AND HER TWO SONS.J# 4 AND THEY TOOK THEM WIVES OF THE WOMEN OF MOAB; THE NAME OF THE ONE WASH ORPAH, AND THE NAME OF THE OTHER RUTH: AND THEY DWELLED THERE ABOUT TEN YEARS.EL# 5 AND MAHLON AND CHILION DIED ALSO BOTH OF THEM; AND THE WOMAN WAS LEFT OF HER TWO SONS AND HER HUSBAND.L# 6 THEN SHE AROSE WITH HER DAUGHTERS IN LAW, THAT SHE MIGHT RETURN FROM THEL COUNTRY OF MOAB: FOR SHE HAD HEARD IN THE COUNTRY OF MOAB HOW THAT THE LORD- HAD VISITED HIS PEOPLE IN GIVING THEM BREAD.EH# 7 WHEREFORE SHE WENT FORTH OUT OF THE PLACE WHERE SHE WAS, AND HER TWOL DAUGHTERS IN LAW WITH HER; AND THEY WENT ON THE WAY TO RETURN UNTO THE LAND OF JUDAH.H# 8 AND NAOMI SAID UNTO HER TWO DAUGHTERS IN LAW, GO, RETURN EACH TO HERN MOTHERS HOUSE: THE LORD DEAL KINDLY WITH YOU, AS YE HAVE DEALT WITH THE DEAD, AND WITH ME. M# 9 THE LORD GRANT YOU THAT YE MAY FIND REST, EACH OF YOU IN THE HOUSE OF HER I HUSBAND. THEN SHE KISSED THEM; AND THEY LIFTED UP THEIR VOICE, AND WEPT. M# 10 AND THEY SAID UNTO HE00f@.)D%5%T6%! !R, SURELY WE WILL RETURN WITH THEE UNTO THY PEOPLE. J# 11 AND NAOMI SAID, TURN AGAIN, MY DAUGHTERS: WHY WILL YE GO WITH ME? ARED THERE YET ANY MORE SONS IN MY WOMB, THAT THEY MAY BE YOUR HUSBANDS?G# 12 TURN AGAIN, MY DAUGHTERS, GO YOUR WAY; FOR I AM TOO OLD TO HAVE ANWK HUSBAND. IF I SHOULD SAY, I HAVE HOPE, IF I SHOULD HAVE AN HUSBAND ALSO TOY" NIGHT, AND SHOULD ALSO BEAR SONS;I# 13 WOULD YE TARRY FOR THEM TILL THEY WERE GROWN? WOULD YE STAY FOR THEMTJ FROM HAVING HUSBANDS? NAY, MY DAUGHTERS; FOR IT GRIEVETH ME MUCH FOR YOUR8 SAKES THAT THE HAND OF THE LORD IS GONE OUT AGAINST ME.I# 14 AND THEY LIFTED UP THEIR VOICE, AND WEPT AGAIN: AND ORPAH KISSED HERY( MOTHER IN LAW; BUT RUTH CLAVE UNTO HER.J# 15 AND SHE SAID, BEHOLD, THY SISTER IN LAW IS GONE BACK UNTO HER PEOPLE,8 AND UNTO HER GODS: RETURN THOU AFTER THY SISTER IN LAW.M# 16 AND RUTH SAID, INTREAT ME NOT TO LEAVE THEE, OR TO RETURN FROM FOLLOWINGMN AFTER THEE: FOR WHITHER THOU GOEST, I WILL GO; AND WHERE THOU LODGEST, I WILL: LODGE: THY PEOPLE SHALL BE MY PEOPLE, AND THY GOD MY GOD:M# 17 WHERE THOU DIEST, WILL I DIE, AND THERE WILL I BE BURIED: THE LORD DO SOA; TO ME, AND MORE ALSO, IF OUGHT BUT DEATH PART THEE AND ME.HI# 18 WHEN SHE SAW THAT SHE WAS STEDFASTLY MINDED TO GO WITH HER, THEN SHE  LEFT SPEAKING UNTO HER.M# 19 SO THEY TWO WENT UNTIL THEY CAME TO BETHLEHEM. AND IT CAME TO PASS, WHENEN THEY WERE COME TO BETHLEHEM, THAT ALL THE CITY WAS MOVED ABOUT THEM, AND THEY SAID, IS THIS NAOMI?HE# 20 AND SHE SAID UNTO THEM, CALL ME NOT NAOMI, CALL ME MARA: FOR THEY+ ALMIGHTY HATH DEALT VERY BITTERLY WITH ME.IL# 21 I WENT OUT FULL AND THE LORD HATH BROUGHT ME HOME AGAIN EMPTY: WHY THENN CALL YE ME NAOMI, SEEING THE LORD HATH TESTIFIED AGAINST ME, AND THE ALMIGHTY HATH AFFLICTED ME? I# 22 SO NAOMI RETURNED, AND RUTH THE MOABITESS, HER DAUGHTER IN LAW, WITHTN HER, WHICH RETURNED OUT OF THE COUNTRY OF MOAB: AND THEY CAME TO BETHLEHEM IN! THE BEGINNING OF BARLEY HARVEST. = CHAPTER 2 K# 1 AND NAOMI HAD A KINSMAN OF HER HUSBANDS, A MIGHTY MAN OF WEALTH, OF THEH, FAMILY OF ELIMELECH; AND HIS NAME WAS BOAZ.K# 2 AND RUTH THE MOABITESS SAID UNTO NAOMI, LET ME NOW GO TO THE FIELD, ANDHM GLEAN EARS OF CORN AFTER HIM IN WHOSE SIGHT I SHALL FIND GRACE. AND SHE SAIDH UNTO HER, GO, MY DAUGHTER.2K# 3 AND SHE WENT, AND CAME, AND GLEANED IN THE FIELD AFTER THE REAPERS: AND L HER HAP WAS TO LIGHT ON A PART OF THE FIELD BELONGING UNTO BOAZ, WHO WAS OF THE KINDRED OF ELIMELECH.I# 4 AND, BEHOLD, BOAZ CAME FROM BETHLEHEM, AND SAID UNTO THE REAPERS, THE > LORD BE WITH YOU. AND THEY ANSWERED HIM, THE LORD BLESS THEE.H# 5 THEN SAID BOAZ UNTO HIS SERVANT THAT WAS SET OVER THE REAPERS, WHOSE DAMSEL IS THIS?J# 6 AND THE SERVANT THAT WAS SET OVER THE REAPERS ANSWERED AND SAID, IT ISK THE MOABITISH DAMSEL THAT CAME BACK WITH NAOMI OUT OF THE COUNTRY OF MOAB:TM# 7 AND SHE SAID, I PRAY YOU, LET ME GLEAN AND GATHER AFTER THE REAPERS AMONGTN THE SHEAVES: SO SHE CAME, AND HATH CONTINUED EVEN FROM THE MORNING UNTIL NOW,( THAT SHE TARRIED A LITTLE IN THE HOUSE.L# 8 THEN SAID BOAZ UNTO RUTH, HEAREST THOU NOT, MY DAUGHTER? GO NOT TO GLEANL IN ANOTHER FIELD, NEITHER GO FROM HENCE, BUT ABIDE HERE FAST BY MY MAIDENS:M# 9 LET THINE EYES BE ON THE FIELD THAT THEY DO REAP, AND GO THOU AFTER THEM:TJ HAVE I NOT CHARGED THE YOUNG MEN THAT THEY SHALL NOT TOUCH THEE? AND WHENM THOU ART ATHIRST, GO UNTO THE VESSELS, AND DRINK OF THAT WHICH THE YOUNG MEN HAVE DRAWN.I# 10 THEN SHE FELL ON HER FACE, AND BOWED HERSELF TO THE GROUND, AND SAID I UNTO HIM, WHY HAVE I FOUND GRACE IN THINE EYES, THAT THOU SHOULDEST TAKEN) KNOWLEDGE OF ME, SEEING I AM A STRANGER?EK# 11 AND BOAZ ANSWERED AND SAID UNTO HER, IT HATH FULLY BEEN SHEWED ME, ALLHM THAT THOU HAST DONE UNTO THY MOTHER IN LAW SINCE THE DEATH OF THINE HUSBAND:OF AND HOW THOU HAST LEFT THY FATHER AND THY MOTHER, AND THE LAND OF THYH NATIVITY, AND ART COME UNTO A PEOPLE WHICH THOU KNEWEST NOT HERETOFORE.I# 12 THE LORD RECOMPENSE THY WORK, AND A FULL REWARD BE GIVEN THEE OF THEN> LORD GOD OF ISRAEL, UNDER W00fH.=.<%X>%+%O-%TADATADATAHOSE WINGS THOU ART COME TO TRUST.K# 13 THEN SHE SAID, LET ME FIND FAVOUR IN THY SIGHT, MY LORD; FOR THAT THOUDE HAST COMFORTED ME, AND FOR THAT THOU HAST SPOKEN FRIENDLY UNTO THINET> HANDMAID, THOUGH I BE NOT LIKE UNTO ONE OF THINE HANDMAIDENS.I# 14 AND BOAZ SAID UNTO HER, AT MEALTIME COME THOU HITHER, AND EAT OF THENN BREAD, AND DIP THY MORSEL IN THE VINEGAR. AND SHE SAT BESIDE THE REAPERS: ANDJ HE REACHED HER PARCHED CORN, AND SHE DID EAT, AND WAS SUFFICED, AND LEFT.F# 15 AND WHEN SHE WAS RISEN UP TO GLEAN, BOAZ COMMANDED HIS YOUNG MEN,D SAYING, LET HER GLEAN EVEN AMONG THE SHEAVES, AND REPROACH HER NOT:I# 16 AND LET FALL ALSO SOME OF THE HANDFULS OF PURPOSE FOR HER, AND LEAVE3 THEM, THAT SHE MAY GLEAN THEM, AND REBUKE HER NOT.DF# 17 SO SHE GLEANED IN THE FIELD UNTIL EVEN, AND BEAT OUT THAT SHE HAD. GLEANED: AND IT WAS ABOUT AN EPHAH OF BARLEY.J# 18 AND SHE TOOK IT UP, AND WENT INTO THE CITY: AND HER MOTHER IN LAW SAWJ WHAT SHE HAD GLEANED: AND SHE BROUGHT FORTH, AND GAVE TO HER THAT SHE HAD! RESERVED AFTER SHE WAS SUFFICED. M# 19 AND HER MOTHER IN LAW SAID UNTO HER, WHERE HAST THOU GLEANED TO DAY? AND6N WHERE WROUGHTEST THOU? BLESSED BE HE THAT DID TAKE KNOWLEDGE OF THEE. AND SHEL SHEWED HER MOTHER IN LAW WITH WHOM SHE HAD WROUGHT, AND SAID, THE MANS NAME$ WITH WHOM I WROUGHT TO DAY IS BOAZ.L# 20 AND NAOMI SAID UNTO HER DAUGHTER IN LAW, BLESSED BE HE OF THE LORD, WHOM HATH NOT LEFT OFF HIS KINDNESS TO THE LIVING AND TO THE DEAD. AND NAOMI SAIDBC UNTO HER, THE MAN IS NEAR OF KIN UNTO US, ONE OF OUR NEXT KINSMEN.UL# 21 AND RUTH THE MOABITESS SAID, HE SAID UNTO ME ALSO, THOU SHALT KEEP FAST7 BY MY YOUNG MEN, UNTIL THEY HAVE ENDED ALL MY HARVEST.DK# 22 AND NAOMI SAID UNTO RUTH HER DAUGHTER IN LAW, IT IS GOOD, MY DAUGHTER, H THAT THOU GO OUT WITH HIS MAIDENS, THAT THEY MEET THEE NOT IN ANY OTHER FIELD.OL# 23 SO SHE KEPT FAST BY THE MAIDENS OF BOAZ TO GLEAN UNTO THE END OF BARLEY@ HARVEST AND OF WHEAT HARVEST; AND DWELT WITH HER MOTHER IN LAW. = CHAPTER 3 M# 1 THEN NAOMI HER MOTHER IN LAW SAID UNTO HER, MY DAUGHTER, SHALL I NOT SEEKB. REST FOR THEE, THAT IT MAY BE WELL WITH THEE?M# 2 AND NOW IS NOT BOAZ OF OUR KINDRED, WITH WHOSE MAIDENS THOU WAST? BEHOLD,I4 HE WINNOWETH BARLEY TO NIGHT IN THE THRESHINGFLOOR.K# 3 WASH THYSELF THEREFORE, AND ANOINT THEE, AND PUT THY RAIMENT UPON THEE,OI AND GET THEE DOWN TO THE FLOOR: BUT MAKE NOT THYSELF KNOWN UNTO THE MAN,T. UNTIL HE SHALL HAVE DONE EATING AND DRINKING.M# 4 AND IT SHALL BE, WHEN HE LIETH DOWN, THAT THOU SHALT MARK THE PLACE WHERELM HE SHALL LIE, AND THOU SHALT GO IN, AND UNCOVER HIS FEET, AND LAY THEE DOWN;E* AND HE WILL TELL THEE WHAT THOU SHALT DO.B# 5 AND SHE SAID UNTO HER, ALL THAT THOU SAYEST UNTO ME I WILL DO.G# 6 AND SHE WENT DOWN UNTO THE FLOOR, AND DID ACCORDING TO ALL THAT HERN MOTHER IN LAW BADE HER.J# 7 AND WHEN BOAZ HAD EATEN AND DRUNK, AND HIS HEART WAS MERRY, HE WENT TOL LIE DOWN AT THE END OF THE HEAP OF CORN: AND SHE CAME SOFTLY, AND UNCOVERED HIS FEET, AND LAID HER DOWN.AH# 8 AND IT CAME TO PASS AT MIDNIGHT, THAT THE MAN WAS AFRAID, AND TURNED/ HIMSELF: AND, BEHOLD, A WOMAN LAY AT HIS FEET. J# 9 AND HE SAID, WHO ART THOU? AND SHE ANSWERED, I AM RUTH THINE HANDMAID:M SPREAD THEREFORE THY SKIRT OVER THINE HANDMAID; FOR THOU ART A NEAR KINSMAN.DI# 10 AND HE SAID, BLESSED BE THOU OF THE LORD, MY DAUGHTER: FOR THOU HAST J SHEWED MORE KINDNESS IN THE LATTER END THAN AT THE BEGINNING, INASMUCH AS5 THOU FOLLOWEDST NOT YOUNG MEN, WHETHER POOR OR RICH.FD# 11 AND NOW, MY DAUGHTER, FEAR NOT; I WILL DO TO THEE ALL THAT THOUL REQUIREST: FOR ALL THE CITY OF MY PEOPLE DOTH KNOW THAT THOU ART A VIRTUOUS WOMAN. F# 12 AND NOW IT IS TRUE THAT I AM THY NEAR KINSMAN: HOWBEIT THERE IS A KINSMAN NEARER THAN I.VF# 13 TARRY THIS NIGHT, AND IT SHALL BE IN THE MORNING, THAT IF HE WILLM PERFORM UNTO THEE THE PART OF A KINSMAN, WELL; LET HIM DO THE KINSMANS PART:TM BUT IF HE WILL NOT DO THE PART OF A KINSMAN TO THEE, THEN WILL I DO THE PARTNF OF A KINSMAN TO THEE, AS THE LORD LIVETH: LIE DOWN UNTIL THE MORNING.J# 1400fP.)D%5%T6%! ! AND SHE LAY AT HIS FEET UNTIL THE MORNING: AND SHE ROSE UP BEFORE ONEL COULD KNOW ANOTHER. AND HE SAID, LET IT NOT BE KNOWN THAT A WOMAN CAME INTO THE FLOOR.BL# 15 ALSO HE SAID, BRING THE VAIL THAT THOU HAST UPON THEE, AND HOLD IT. ANDN WHEN SHE HELD IT, HE MEASURED SIX MEASURES OF BARLEY, AND LAID IT ON HER: AND SHE WENT INTO THE CITY.G# 16 AND WHEN SHE CAME TO HER MOTHER IN LAW, SHE SAID, WHO ART THOU, MY = DAUGHTER? AND SHE TOLD HER ALL THAT THE MAN HAD DONE TO HER.DJ# 17 AND SHE SAID, THESE SIX MEASURES OF BARLEY GAVE HE ME; FOR HE SAID TO) ME, GO NOT EMPTY UNTO THY MOTHER IN LAW..J# 18 THEN SAID SHE, SIT STILL, MY DAUGHTER, UNTIL THOU KNOW HOW THE MATTERM WILL FALL: FOR THE MAN WILL NOT BE IN REST, UNTIL HE HAVE FINISHED THE THING THIS DAY. = CHAPTER 4 K# 1 THEN WENT BOAZ UP TO THE GATE, AND SAT HIM DOWN THERE: AND, BEHOLD, THE6L KINSMAN OF WHOM BOAZ SPAKE CAME BY; UNTO WHOM HE SAID, HO, SUCH A ONE! TURN9 ASIDE, SIT DOWN HERE. AND HE TURNED ASIDE, AND SAT DOWN.7H# 2 AND HE TOOK TEN MEN OF THE ELDERS OF THE CITY, AND SAID, SIT YE DOWN HERE. AND THEY SAT DOWN.TF# 3 AND HE SAID UNTO THE KINSMAN, NAOMI, THAT IS COME AGAIN OUT OF THEM COUNTRY OF MOAB, SELLETH A PARCEL OF LAND, WHICH WAS OUR BROTHER ELIMELECHS:NK# 4 AND I THOUGHT TO ADVERTISE THEE, SAYING, BUY IT BEFORE THE INHABITANTS,,N AND BEFORE THE ELDERS OF MY PEOPLE. IF THOU WILT REDEEM IT, REDEEM IT: BUT IFM THOU WILT NOT REDEEM IT, THEN TELL ME, THAT I MAY KNOW: FOR THERE IS NONE TOAK REDEEM IT BESIDE THEE; AND I AM AFTER THEE. AND HE SAID, I WILL REDEEM IT.SM# 5 THEN SAID BOAZ, WHAT DAY THOU BUYEST THE FIELD OF THE HAND OF NAOMI, THOU N MUST BUY IT ALSO OF RUTH THE MOABITESS, THE WIFE OF THE DEAD, TO RAISE UP THE' NAME OF THE DEAD UPON HIS INHERITANCE. L# 6 AND THE KINSMAN SAID, I CANNOT REDEEM IT FOR MYSELF, LEST I MAR MINE OWNF INHERITANCE: REDEEM THOU MY RIGHT TO THYSELF; FOR I CANNOT REDEEM IT.M# 7 NOW THIS WAS THE MANNER IN FORMER TIME IN ISRAEL CONCERNING REDEEMING ANDTL CONCERNING CHANGING, FOR TO CONFIRM ALL THINGS; A MAN PLUCKED OFF HIS SHOE,B AND GAVE IT TO HIS NEIGHBOUR: AND THIS WAS A TESTIMONY IN ISRAEL.M# 8 THEREFORE THE KINSMAN SAID UNTO BOAZ, BUY IT FOR THEE. SO HE DREW OFF HIST SHOE.L# 9 AND BOAZ SAID UNTO THE ELDERS, AND UNTO ALL THE PEOPLE, YE ARE WITNESSESG THIS DAY, THAT I HAVE BOUGHT ALL THAT WAS ELIMELECHS, AND ALL THAT WASO, CHILIONS AND MAHLONS, OF THE HAND OF NAOMI.L# 10 MOREOVER RUTH THE MOABITESS, THE WIFE OF MAHLON, HAVE I PURCHASED TO BEN MY WIFE, TO RAISE UP THE NAME OF THE DEAD UPON HIS INHERITANCE, THAT THE NAMEM OF THE DEAD BE NOT CUT OFF FROM AMONG HIS BRETHREN, AND FROM THE GATE OF HISF" PLACE: YE ARE WITNESSES THIS DAY.K# 11 AND ALL THE PEOPLE THAT WERE IN THE GATE, AND THE ELDERS, SAID, WE AREAM WITNESSES. THE LORD MAKE THE WOMAN THAT IS COME INTO THINE HOUSE LIKE RACHELTM AND LIKE LEAH, WHICH TWO DID BUILD THE HOUSE OF ISRAEL: AND DO THOU WORTHILY.) IN EPHRATAH, AND BE FAMOUS IN BETHLEHEM:EH# 12 AND LET THY HOUSE BE LIKE THE HOUSE OF PHAREZ, WHOM TAMAR BARE UNTOG JUDAH, OF THE SEED WHICH THE LORD SHALL GIVE THEE OF THIS YOUNG WOMAN.MK# 13 SO BOAZ TOOK RUTH, AND SHE WAS HIS WIFE: AND WHEN HE WENT IN UNTO HER, 2 THE LORD GAVE HER CONCEPTION, AND SHE BARE A SON.L# 14 AND THE WOMEN SAID UNTO NAOMI, BLESSED BE THE LORD, WHICH HATH NOT LEFTH THEE THIS DAY WITHOUT A KINSMAN, THAT HIS NAME MAY BE FAMOUS IN ISRAEL.I# 15 AND HE SHALL BE UNTO THEE A RESTORER OF THY LIFE, AND A NOURISHER OFLN THINE OLD AGE: FOR THY DAUGHTER IN LAW, WHICH LOVETH THEE, WHICH IS BETTER TO% THEE THAN SEVEN SONS, HATH BORN HIM.AI# 16 AND NAOMI TOOK THE CHILD, AND LAID IT IN HER BOSOM, AND BECAME NURSE UNTO IT.HM# 17 AND THE WOMEN HER NEIGHBOURS GAVE IT A NAME, SAYING, THERE IS A SON BORN H TO NAOMI; AND THEY CALLED HIS NAME OBED: HE IS THE FATHER OF JESSE, THE FATHER OF DAVID.TB# 18 NOW THESE ARE THE GENERATIONS OF PHAREZ: PHAREZ BEGAT HEZRON,3# 19 AND HEZRON BEGAT RAM, AND RAM BEGAT AMMINADAB,I;# 20 AND AMMINADAB BEGAT NAHSHON, AND NAHSHON BEGAT SALMON,T0# 21 AND SALMON BEGAT BOAZ, AN00fX.gY.<%X>%+%O-%TADATADATAD BOAZ BEGAT OBED,1# 22 AND OBED BEGAT JESSE, AND JESSE BEGAT DAVID.D LAID IT IN HER BOSOM, AND BECAME NURSE UNTO IT.HM# 17 AND THE WOMEN HER NEIGHBOURS GAVE IT A NAME, SAYING, THERE IS A SON BORN H TO NAOMI; AND THEY CALLED HIS NAME OBED: HE IS THE FATHER OF JESSE, THE FATHER OF DAVID.TB# 18 NOW THESE ARE THE GENERATIONS OF PHAREZ: PHAREZ BEGAT HEZRON,3# 19 AND HEZRON BEGAT RAM, AND RAM BEGAT AMMINADAB,I;# 20 AND AMMINADAB BEGAT NAHSHON, AND NAHSHON BEGAT SALMON,T0# 21 AND SALMON BEGAT BOAZ, AN* BOOK09 1SAMUEL = CHAPTER 1 M# 1 NOW THERE WAS A CERTAIN MAN OF RAMATHAIMZOPHIM, OF MOUNT EPHRAIM, AND HISM NAME WAS ELKANAH, THE SON OF JEROHAM, THE SON OF ELIHU, THE SON OF TOHU, THEA SON OF ZUPH, AN EPHRATHITE:M# 2 AND HE HAD TWO WIVES; THE NAME OF THE ONE WAS HANNAH, AND THE NAME OF THE8G OTHER PENINNAH: AND PENINNAH HAD CHILDREN, BUT HANNAH HAD NO CHILDREN.HK# 3 AND THIS MAN WENT UP OUT OF HIS CITY YEARLY TO WORSHIP AND TO SACRIFICE F UNTO THE LORD OF HOSTS IN SHILOH. AND THE TWO SONS OF ELI, HOPHNI AND/ PHINEHAS, THE PRIESTS OF THE LORD, WERE THERE.AM# 4 AND WHEN THE TIME WAS THAT ELKANAH OFFERED, HE GAVE TO PENINNAH HIS WIFE, 1 AND TO ALL HER SONS AND HER DAUGHTERS, PORTIONS:SJ# 5 BUT UNTO HANNAH HE GAVE A WORTHY PORTION; FOR HE LOVED HANNAH: BUT THE LORD HAD SHUT UP HER WOMB.8K# 6 AND HER ADVERSARY ALSO PROVOKED HER SORE, FOR TO MAKE HER FRET, BECAUSE  THE LORD HAD SHUT UP HER WOMB. M# 7 AND AS HE DID SO YEAR BY YEAR, WHEN SHE WENT UP TO THE HOUSE OF THE LORD,D: SO SHE PROVOKED HER; THEREFORE SHE WEPT, AND DID NOT EAT.K# 8 THEN SAID ELKANAH HER HUSBAND TO HER, HANNAH, WHY WEEPEST THOU? AND WHYVL EATEST THOU NOT? AND WHY IS THY HEART GRIEVED? AM NOT I BETTER TO THEE THAN TEN SONS?H# 9 SO HANNAH ROSE UP AFTER THEY HAD EATEN IN SHILOH, AND AFTER THEY HADI DRUNK. NOW ELI THE PRIEST SAT UPON A SEAT BY A POST OF THE TEMPLE OF THEK LORD.J# 10 AND SHE WAS IN BITTERNESS OF SOUL, AND PRAYED UNTO THE LORD, AND WEPT SORE.M# 11 AND SHE VOWED A VOW, AND SAID, O LORD OF HOSTS, IF THOU WILT INDEED LOOK K ON THE AFFLICTION OF THINE HANDMAID, AND REMEMBER ME, AND NOT FORGET THINE N HANDMAID, BUT WILT GIVE UNTO THINE HANDMAID A MAN CHILD, THEN I WILL GIVE HIMK UNTO THE LORD ALL THE DAYS OF HIS LIFE, AND THERE SHALL NO RAZOR COME UPONI HIS HEAD.L# 12 AND IT CAME TO PASS, AS SHE CONTINUED PRAYING BEFORE THE LORD, THAT ELI MARKED HER MOUTH.K# 13 NOW HANNAH, SHE SPAKE IN HER HEART; ONLY HER LIPS MOVED, BUT HER VOICET; WAS NOT HEARD: THEREFORE ELI THOUGHT SHE HAD BEEN DRUNKEN.,L# 14 AND ELI SAID UNTO HER, HOW LONG WILT THOU BE DRUNKEN? PUT AWAY THY WINE FROM THEE.FK# 15 AND HANNAH ANSWERED AND SAID, NO, MY LORD, I AM A WOMAN OF A SORROWFULIK SPIRIT: I HAVE DRUNK NEITHER WINE NOR STRONG DRINK, BUT HAVE POURED OUT MYA SOUL BEFORE THE LORD.F# 16 COUNT NOT THINE HANDMAID FOR A DAUGHTER OF BELIAL: FOR OUT OF THE< ABUNDANCE OF MY COMPLAINT AND GRIEF HAVE I SPOKEN HITHERTO.I# 17 THEN ELI ANSWERED AND SAID, GO IN PEACE: AND THE GOD OF ISRAEL GRANT / THEE THY PETITION THAT THOU HAST ASKED OF HIM. K# 18 AND SHE SAID, LET THINE HANDMAID FIND GRACE IN THY SIGHT. SO THE WOMAN5@ WENT HER WAY, AND DID EAT, AND HER COUNTENANCE WAS NO MORE SAD.K# 19 AND THEY ROSE UP IN THE MORNING EARLY, AND WORSHIPPED BEFORE THE LORD,OL AND RETURNED, AND CAME TO THEIR HOUSE TO RAMAH: AND ELKANAH KNEW HANNAH HIS# WIFE; AND THE LORD REMEMBERED HER.OM# 20 WHEREFORE IT CAME TO PASS, WHEN THE TIME WAS COME ABOUT AFTER HANNAH HADIN CONCEIVED, THAT SHE BARE A SON, AND CALLED HIS NAME SAMUEL, SAYING, BECAUSE I HAVE ASKED HIM OF THE LORD.K# 21 AND THE MAN ELKANAH, AND ALL HIS HOUSE, WENT UP TO OFFER UNTO THE LORD,# THE YEARLY SACRIFICE, AND HIS VOW. L# 22 BUT HANNAH WENT NOT UP; FOR SHE SAID UNTO HER HUSBAND, I WILL NOT GO UPI UNTIL THE CHILD BE WEANED, AND THEN I WILL BRING HIM, THAT HE MAY APPEARK+ BEFORE THE LORD, AND THERE ABIDE FOR EVER.DL# 23 AND ELKANAH HER HUSBAND SAID UNTO HER, DO WHAT SEEMETH THEE GOOD; TARRYK UNTIL THOU HAVE WEANED HIM; ONLY THE LORD ESTABLISH HIS WORD. SO THE WOMAN,3 ABODE, 00g`.)D%5%T6%! !AND GAVE HER SON SUCK UNTIL SHE WEANED HIM.EF# 24 AND WHEN SHE HAD WEANED HIM, SHE TOOK HIM UP WITH HER, WITH THREEM BULLOCKS, AND ONE EPHAH OF FLOUR, AND A BOTTLE OF WINE, AND BROUGHT HIM UNTOH: THE HOUSE OF THE LORD IN SHILOH: AND THE CHILD WAS YOUNG.;# 25 AND THEY SLEW A BULLOCK, AND BROUGHT THE CHILD TO ELI.DJ# 26 AND SHE SAID, OH MY LORD, AS THY SOUL LIVETH, MY LORD, I AM THE WOMAN0 THAT STOOD BY THEE HERE, PRAYING UNTO THE LORD.L# 27 FOR THIS CHILD I PRAYED; AND THE LORD HATH GIVEN ME MY PETITION WHICH I ASKED OF HIM:H# 28 THEREFORE ALSO I HAVE LENT HIM TO THE LORD; AS LONG AS HE LIVETH HE= SHALL BE LENT TO THE LORD. AND HE WORSHIPPED THE LORD THERE.L = CHAPTER 2 M# 1 AND HANNAH PRAYED, AND SAID, MY HEART REJOICETH IN THE LORD, MINE HORN ISG EXALTED IN THE LORD: MY MOUTH IS ENLARGED OVER MINE ENEMIES; BECAUSE IE REJOICE IN THY SALVATION.M# 2 THERE IS NONE HOLY AS THE LORD: FOR THERE IS NONE BESIDE THEE: NEITHER ISL THERE ANY ROCK LIKE OUR GOD.YI# 3 TALK NO MORE SO EXCEEDING PROUDLY; LET NOT ARROGANCY COME OUT OF YOUREK MOUTH: FOR THE LORD IS A GOD OF KNOWLEDGE, AND BY HIM ACTIONS ARE WEIGHED.EL# 4 THE BOWS OF THE MIGHTY MEN ARE BROKEN, AND THEY THAT STUMBLED ARE GIRDED WITH STRENGTH.IJ# 5 THEY THAT WERE FULL HAVE HIRED OUT THEMSELVES FOR BREAD; AND THEY THATJ WERE HUNGRY CEASED: SO THAT THE BARREN HATH BORN SEVEN; AND SHE THAT HATH MANY CHILDREN IS WAXED FEEBLE.DJ# 6 THE LORD KILLETH, AND MAKETH ALIVE: HE BRINGETH DOWN TO THE GRAVE, AND BRINGETH UP.OK# 7 THE LORD MAKETH POOR, AND MAKETH RICH: HE BRINGETH LOW, AND LIFTETH UP. J# 8 HE RAISETH UP THE POOR OUT OF THE DUST, AND LIFTETH UP THE BEGGAR FROMM THE DUNGHILL, TO SET THEM AMONG PRINCES, AND TO MAKE THEM INHERIT THE THRONEIJ OF GLORY: FOR THE PILLARS OF THE EARTH ARE THE LORDS, AND HE HATH SET THE WORLD UPON THEM.EJ# 9 HE WILL KEEP THE FEET OF HIS SAINTS, AND THE WICKED SHALL BE SILENT IN0 DARKNESS; FOR BY STRENGTH SHALL NO MAN PREVAIL.I# 10 THE ADVERSARIES OF THE LORD SHALL BE BROKEN TO PIECES; OUT OF HEAVENTL SHALL HE THUNDER UPON THEM: THE LORD SHALL JUDGE THE ENDS OF THE EARTH; ANDJ HE SHALL GIVE STRENGTH UNTO HIS KING, AND EXALT THE HORN OF HIS ANOINTED.L# 11 AND ELKANAH WENT TO RAMAH TO HIS HOUSE. AND THE CHILD DID MINISTER UNTO THE LORD BEFORE ELI THE PRIEST.E# 12 NOW THE SONS OF ELI WERE SONS OF BELIAL; THEY KNEW NOT THE LORD. K# 13 AND THE PRIESTS CUSTOM WITH THE PEOPLE WAS, THAT, WHEN ANY MAN OFFEREDSM SACRIFICE, THE PRIESTS SERVANT CAME, WHILE THE FLESH WAS IN SEETHING, WITH AS& FLESHHOOK OF THREE TEETH IN HIS HAND;K# 14 AND HE STRUCK IT INTO THE PAN, OR KETTLE, OR CALDRON, OR POT; ALL THATTL THE FLESHHOOK BROUGHT UP THE PRIEST TOOK FOR HIMSELF. SO THEY DID IN SHILOH+ UNTO ALL THE ISRAELITES THAT CAME THITHER.EJ# 15 ALSO BEFORE THEY BURNT THE FAT, THE PRIESTS SERVANT CAME, AND SAID TOM THE MAN THAT SACRIFICED, GIVE FLESH TO ROAST FOR THE PRIEST; FOR HE WILL NOTL$ HAVE SODDEN FLESH OF THEE, BUT RAW.D# 16 AND IF ANY MAN SAID UNTO HIM, LET THEM NOT FAIL TO BURN THE FATL PRESENTLY, AND THEN TAKE AS MUCH AS THY SOUL DESIRETH; THEN HE WOULD ANSWERN HIM, NAY; BUT THOU SHALT GIVE IT ME NOW: AND IF NOT, I WILL TAKE IT BY FORCE.K# 17 WHEREFORE THE SIN OF THE YOUNG MEN WAS VERY GREAT BEFORE THE LORD: FORA' MEN ABHORRED THE OFFERING OF THE LORD. H# 18 BUT SAMUEL MINISTERED BEFORE THE LORD, BEING A CHILD, GIRDED WITH A LINEN EPHOD.OK# 19 MOREOVER HIS MOTHER MADE HIM A LITTLE COAT, AND BROUGHT IT TO HIM FROM D YEAR TO YEAR, WHEN SHE CAME UP WITH HER HUSBAND TO OFFER THE YEARLY SACRIFICE. L# 20 AND ELI BLESSED ELKANAH AND HIS WIFE, AND SAID, THE LORD GIVE THEE SEEDI OF THIS WOMAN FOR THE LOAN WHICH IS LENT TO THE LORD. AND THEY WENT UNTOO THEIR OWN HOME.L# 21 AND THE LORD VISITED HANNAH, SO THAT SHE CONCEIVED, AND BARE THREE SONS> AND TWO DAUGHTERS. AND THE CHILD SAMUEL GREW BEFORE THE LORD.K# 22 NOW ELI WAS VERY OLD, AND HEARD ALL THAT HIS SONS DID UNTO ALL ISRAEL;TM AND HOW THEY LAY WITH THE WOMEN THAT ASSEMBLED AT THE DOOR OF THE TABERNACLEH OF THE CONGREGATION.RJ# 23 AND HE SAID UNTO 00gh.Y.<%X>%+%O-%TADATADATATHEM, WHY DO YE SUCH THINGS? FOR I HEAR OF YOUR EVIL DEALINGS BY ALL THIS PEOPLE.MJ# 24 NAY, MY SONS; FOR IT IS NO GOOD REPORT THAT I HEAR: YE MAKE THE LORDS PEOPLE TO TRANSGRESS.L# 25 IF ONE MAN SIN AGAINST ANOTHER, THE JUDGE SHALL JUDGE HIM: BUT IF A MANF SIN AGAINST THE LORD, WHO SHALL INTREAT FOR HIM? NOTWITHSTANDING THEYJ HEARKENED NOT UNTO THE VOICE OF THEIR FATHER, BECAUSE THE LORD WOULD SLAY THEM.L# 26 AND THE CHILD SAMUEL GREW ON, AND WAS IN FAVOUR BOTH WITH THE LORD, AND ALSO WITH MEN.HL# 27 AND THERE CAME A MAN OF GOD UNTO ELI, AND SAID UNTO HIM, THUS SAITH THEK LORD, DID I PLAINLY APPEAR UNTO THE HOUSE OF THY FATHER, WHEN THEY WERE INR EGYPT IN PHARAOHS HOUSE?M# 28 AND DID I CHOOSE HIM OUT OF ALL THE TRIBES OF ISRAEL TO BE MY PRIEST, TOSN OFFER UPON MINE ALTAR, TO BURN INCENSE, TO WEAR AN EPHOD BEFORE ME? AND DID IH GIVE UNTO THE HOUSE OF THY FATHER ALL THE OFFERINGS MADE BY FIRE OF THE CHILDREN OF ISRAEL?I# 29 WHEREFORE KICK YE AT MY SACRIFICE AND AT MINE OFFERING, WHICH I HAVE E COMMANDED IN MY HABITATION; AND HONOUREST THY SONS ABOVE ME, TO MAKETK YOURSELVES FAT WITH THE CHIEFEST OF ALL THE OFFERINGS OF ISRAEL MY PEOPLE?IJ# 30 WHEREFORE THE LORD GOD OF ISRAEL SAITH, I SAID INDEED THAT THY HOUSE,N AND THE HOUSE OF THY FATHER, SHOULD WALK BEFORE ME FOR EVER: BUT NOW THE LORDJ SAITH, BE IT FAR FROM ME; FOR THEM THAT HONOUR ME I WILL HONOUR, AND THEY+ THAT DESPISE ME SHALL BE LIGHTLY ESTEEMED.FM# 31 BEHOLD, THE DAYS COME, THAT I WILL CUT OFF THINE ARM, AND THE ARM OF THYHB FATHERS HOUSE, THAT THERE SHALL NOT BE AN OLD MAN IN THINE HOUSE.J# 32 AND THOU SHALT SEE AN ENEMY IN MY HABITATION, IN ALL THE WEALTH WHICHL GOD SHALL GIVE ISRAEL: AND THERE SHALL NOT BE AN OLD MAN IN THINE HOUSE FOR EVER.M# 33 AND THE MAN OF THINE, WHOM I SHALL NOT CUT OFF FROM MINE ALTAR, SHALL BEDJ TO CONSUME THINE EYES, AND TO GRIEVE THINE HEART: AND ALL THE INCREASE OF2 THINE HOUSE SHALL DIE IN THE FLOWER OF THEIR AGE.K# 34 AND THIS SHALL BE A SIGN UNTO THEE, THAT SHALL COME UPON THY TWO SONS,F@ ON HOPHNI AND PHINEHAS; IN ONE DAY THEY SHALL DIE BOTH OF THEM.I# 35 AND I WILL RAISE ME UP A FAITHFUL PRIEST, THAT SHALL DO ACCORDING TOH THAT WHICH IS IN MINE HEART AND IN MY MIND: AND I WILL BUILD HIM A SURE8 HOUSE; AND HE SHALL WALK BEFORE MINE ANOINTED FOR EVER.J# 36 AND IT SHALL COME TO PASS, THAT EVERY ONE THAT IS LEFT IN THINE HOUSEN SHALL COME AND CROUCH TO HIM FOR A PIECE OF SILVER AND A MORSEL OF BREAD, ANDL SHALL SAY, PUT ME, I PRAY THEE, INTO ONE OF THE PRIESTS OFFICES, THAT I MAY EAT A PIECE OF BREAD. = CHAPTER 3 M# 1 AND THE CHILD SAMUEL MINISTERED UNTO THE LORD BEFORE ELI. AND THE WORD OF,? THE LORD WAS PRECIOUS IN THOSE DAYS; THERE WAS NO OPEN VISION. J# 2 AND IT CAME TO PASS AT THAT TIME, WHEN ELI WAS LAID DOWN IN HIS PLACE,6 AND HIS EYES BEGAN TO WAX DIM, THAT HE COULD NOT SEE;M# 3 AND ERE THE LAMP OF GOD WENT OUT IN THE TEMPLE OF THE LORD, WHERE THE ARKC/ OF GOD WAS, AND SAMUEL WAS LAID DOWN TO SLEEP;Y<# 4 THAT THE LORD CALLED SAMUEL: AND HE ANSWERED, HERE AM I.J# 5 AND HE RAN UNTO ELI, AND SAID, HERE AM I; FOR THOU CALLEDST ME. AND HE> SAID, I CALLED NOT; LIE DOWN AGAIN. AND HE WENT AND LAY DOWN.L# 6 AND THE LORD CALLED YET AGAIN, SAMUEL. AND SAMUEL AROSE AND WENT TO ELI,L AND SAID, HERE AM I; FOR THOU DIDST CALL ME. AND HE ANSWERED, I CALLED NOT, MY SON; LIE DOWN AGAIN.J# 7 NOW SAMUEL DID NOT YET KNOW THE LORD, NEITHER WAS THE WORD OF THE LORD YET REVEALED UNTO HIM.EM# 8 AND THE LORD CALLED SAMUEL AGAIN THE THIRD TIME. AND HE AROSE AND WENT TOEM ELI, AND SAID, HERE AM I; FOR THOU DIDST CALL ME. AND ELI PERCEIVED THAT THEN LORD HAD CALLED THE CHILD.EM# 9 THEREFORE ELI SAID UNTO SAMUEL, GO, LIE DOWN: AND IT SHALL BE, IF HE CALLEK THEE, THAT THOU SHALT SAY, SPEAK, LORD; FOR THY SERVANT HEARETH. SO SAMUELL WENT AND LAY DOWN IN HIS PLACE.H# 10 AND THE LORD CAME, AND STOOD, AND CALLED AS AT OTHER TIMES, SAMUEL,> SAMUEL. THEN SAMUEL ANSWERED, SPEAK; FOR THY SERVANT HEARETH.I# 11 AND THE LORD SAID TO SAMUEL, BEHOLD, I WILL DO A THING IN ISRAEL, ATE? WHI00gp.)D%5%T6%! !CH BOTH THE EARS OF EVERY ONE THAT HEARETH IT SHALL TINGLE.DJ# 12 IN THAT DAY I WILL PERFORM AGAINST ELI ALL THINGS WHICH I HAVE SPOKEN= CONCERNING HIS HOUSE: WHEN I BEGIN, I WILL ALSO MAKE AN END.SE# 13 FOR I HAVE TOLD HIM THAT I WILL JUDGE HIS HOUSE FOR EVER FOR THEAI INIQUITY WHICH HE KNOWETH; BECAUSE HIS SONS MADE THEMSELVES VILE, AND HET RESTRAINED THEM NOT.MK# 14 AND THEREFORE I HAVE SWORN UNTO THE HOUSE OF ELI, THAT THE INIQUITY OF E ELIS HOUSE SHALL NOT BE PURGED WITH SACRIFICE NOR OFFERING FOR EVER.HK# 15 AND SAMUEL LAY UNTIL THE MORNING, AND OPENED THE DOORS OF THE HOUSE OFE4 THE LORD. AND SAMUEL FEARED TO SHEW ELI THE VISION.L# 16 THEN ELI CALLED SAMUEL, AND SAID, SAMUEL, MY SON. AND HE ANSWERED, HERE AM I.M# 17 AND HE SAID, WHAT IS THE THING THAT THE LORD HATH SAID UNTO THEE? I PRAYSM THEE HIDE IT NOT FROM ME: GOD DO SO TO THEE, AND MORE ALSO, IF THOU HIDE ANYE8 THING FROM ME OF ALL THE THINGS THAT HE SAID UNTO THEE.K# 18 AND SAMUEL TOLD HIM EVERY WHIT, AND HID NOTHING FROM HIM. AND HE SAID,2 IT IS THE LORD: LET HIM DO WHAT SEEMETH HIM GOOD.H# 19 AND SAMUEL GREW, AND THE LORD WAS WITH HIM, AND DID LET NONE OF HIS WORDS FALL TO THE GROUND.C# 20 AND ALL ISRAEL FROM DAN EVEN TO BEERSHEBA KNEW THAT SAMUEL WASA) ESTABLISHED TO BE A PROPHET OF THE LORD. L# 21 AND THE LORD APPEARED AGAIN IN SHILOH: FOR THE LORD REVEALED HIMSELF TO* SAMUEL IN SHILOH BY THE WORD OF THE LORD. = CHAPTER 4 N# 1 AND THE WORD OF SAMUEL CAME TO ALL ISRAEL. NOW ISRAEL WENT OUT AGAINST THEH PHILISTINES TO BATTLE, AND PITCHED BESIDE EBENEZER: AND THE PHILISTINES PITCHED IN APHEK.M# 2 AND THE PHILISTINES PUT THEMSELVES IN ARRAY AGAINST ISRAEL: AND WHEN THEYEK JOINED BATTLE, ISRAEL WAS SMITTEN BEFORE THE PHILISTINES: AND THEY SLEW OFA/ THE ARMY IN THE FIELD ABOUT FOUR THOUSAND MEN.1K# 3 AND WHEN THE PEOPLE WERE COME INTO THE CAMP, THE ELDERS OF ISRAEL SAID,MI WHEREFORE HATH THE LORD SMITTEN US TO DAY BEFORE THE PHILISTINES? LET USAL FETCH THE ARK OF THE COVENANT OF THE LORD OUT OF SHILOH UNTO US, THAT, WHENC IT COMETH AMONG US, IT MAY SAVE US OUT OF THE HAND OF OUR ENEMIES.EK# 4 SO THE PEOPLE SENT TO SHILOH, THAT THEY MIGHT BRING FROM THENCE THE ARKTL OF THE COVENANT OF THE LORD OF HOSTS, WHICH DWELLETH BETWEEN THE CHERUBIMS:M AND THE TWO SONS OF ELI, HOPHNI AND PHINEHAS, WERE THERE WITH THE ARK OF THE  COVENANT OF GOD.CH# 5 AND WHEN THE ARK OF THE COVENANT OF THE LORD CAME INTO THE CAMP, ALLA ISRAEL SHOUTED WITH A GREAT SHOUT, SO THAT THE EARTH RANG AGAIN.OJ# 6 AND WHEN THE PHILISTINES HEARD THE NOISE OF THE SHOUT, THEY SAID, WHATK MEANETH THE NOISE OF THIS GREAT SHOUT IN THE CAMP OF THE HEBREWS? AND THEYT< UNDERSTOOD THAT THE ARK OF THE LORD WAS COME INTO THE CAMP.H# 7 AND THE PHILISTINES WERE AFRAID, FOR THEY SAID, GOD IS COME INTO THEG CAMP. AND THEY SAID, WOE UNTO US! FOR THERE HATH NOT BEEN SUCH A THINGF HERETOFORE.K# 8 WOE UNTO US! WHO SHALL DELIVER US OUT OF THE HAND OF THESE MIGHTY GODS?HH THESE ARE THE GODS THAT SMOTE THE EGYPTIANS WITH ALL THE PLAGUES IN THE WILDERNESS.L# 9 BE STRONG AND QUIT YOURSELVES LIKE MEN, O YE PHILISTINES, THAT YE BE NOTJ SERVANTS UNTO THE HEBREWS, AS THEY HAVE BEEN TO YOU: QUIT YOURSELVES LIKE MEN, AND FIGHT.L# 10 AND THE PHILISTINES FOUGHT, AND ISRAEL WAS SMITTEN, AND THEY FLED EVERYK MAN INTO HIS TENT: AND THERE WAS A VERY GREAT SLAUGHTER; FOR THERE FELL OFH ISRAEL THIRTY THOUSAND FOOTMEN.F# 11 AND THE ARK OF GOD WAS TAKEN; AND THE TWO SONS OF ELI, HOPHNI AND PHINEHAS, WERE SLAIN.L# 12 AND THERE RAN A MAN OF BENJAMIN OUT OF THE ARMY, AND CAME TO SHILOH THE> SAME DAY WITH HIS CLOTHES RENT, AND WITH EARTH UPON HIS HEAD.K# 13 AND WHEN HE CAME, LO, ELI SAT UPON A SEAT BY THE WAYSIDE WATCHING: FOR L HIS HEART TREMBLED FOR THE ARK OF GOD. AND WHEN THE MAN CAME INTO THE CITY,% AND TOLD IT, ALL THE CITY CRIED OUT.AJ# 14 AND WHEN ELI HEARD THE NOISE OF THE CRYING, HE SAID, WHAT MEANETH THEA NOISE OF THIS TUMULT? AND THE MAN CAME IN HASTILY, AND TOLD ELI.HK# 15 NOW ELI WAS NINETY AND EIGHT YEARS OLD; AND HIS EYES WERE DIM, THAT HEH COULD NOT00gx.Y.<%X>%+%O-%TADATADATA SEE.TM# 16 AND THE MAN SAID UNTO ELI, I AM HE THAT CAME OUT OF THE ARMY, AND I FLED A TO DAY OUT OF THE ARMY. AND HE SAID, WHAT IS THERE DONE, MY SON?GC# 17 AND THE MESSENGER ANSWERED AND SAID, ISRAEL IS FLED BEFORE THE N PHILISTINES, AND THERE HATH BEEN ALSO A GREAT SLAUGHTER AMONG THE PEOPLE, ANDH THY TWO SONS ALSO, HOPHNI AND PHINEHAS, ARE DEAD, AND THE ARK OF GOD IS TAKEN.MI# 18 AND IT CAME TO PASS, WHEN HE MADE MENTION OF THE ARK OF GOD, THAT HE M FELL FROM OFF THE SEAT BACKWARD BY THE SIDE OF THE GATE, AND HIS NECK BRAKE,NN AND HE DIED: FOR HE WAS AN OLD MAN, AND HEAVY. AND HE HAD JUDGED ISRAEL FORTY YEARS.AG# 19 AND HIS DAUGHTER IN LAW, PHINEHAS WIFE, WAS WITH CHILD, NEAR TO BEDM DELIVERED: AND WHEN SHE HEARD THE TIDINGS THAT THE ARK OF GOD WAS TAKEN, ANDAH THAT HER FATHER IN LAW AND HER HUSBAND WERE DEAD, SHE BOWED HERSELF AND( TRAVAILED; FOR HER PAINS CAME UPON HER.J# 20 AND ABOUT THE TIME OF HER DEATH THE WOMEN THAT STOOD BY HER SAID UNTOK HER, FEAR NOT; FOR THOU HAST BORN A SON. BUT SHE ANSWERED NOT, NEITHER DID SHE REGARD IT. H# 21 AND SHE NAMED THE CHILD ICHABOD, SAYING, THE GLORY IS DEPARTED FROMK ISRAEL: BECAUSE THE ARK OF GOD WAS TAKEN, AND BECAUSE OF HER FATHER IN LAWV AND HER HUSBAND.HK# 22 AND SHE SAID, THE GLORY IS DEPARTED FROM ISRAEL: FOR THE ARK OF GOD IS  TAKEN.U = CHAPTER 5 N# 1 AND THE PHILISTINES TOOK THE ARK OF GOD, AND BROUGHT IT FROM EBENEZER UNTO ASHDOD.L# 2 WHEN THE PHILISTINES TOOK THE ARK OF GOD, THEY BROUGHT IT INTO THE HOUSE OF DAGON, AND SET IT BY DAGON.DH# 3 AND WHEN THEY OF ASHDOD AROSE EARLY ON THE MORROW, BEHOLD, DAGON WASL FALLEN UPON HIS FACE TO THE EARTH BEFORE THE ARK OF THE LORD. AND THEY TOOK' DAGON, AND SET HIM IN HIS PLACE AGAIN.DM# 4 AND WHEN THEY AROSE EARLY ON THE MORROW MORNING, BEHOLD, DAGON WAS FALLENRN UPON HIS FACE TO THE GROUND BEFORE THE ARK OF THE LORD; AND THE HEAD OF DAGONJ AND BOTH THE PALMS OF HIS HANDS WERE CUT OFF UPON THE THRESHOLD; ONLY THE STUMP OF DAGON WAS LEFT TO HIM.I# 5 THEREFORE NEITHER THE PRIESTS OF DAGON, NOR ANY THAT COME INTO DAGONSO@ HOUSE, TREAD ON THE THRESHOLD OF DAGON IN ASHDOD UNTO THIS DAY.L# 6 BUT THE HAND OF THE LORD WAS HEAVY UPON THEM OF ASHDOD, AND HE DESTROYEDG THEM, AND SMOTE THEM WITH EMERODS, EVEN ASHDOD AND THE COASTS THEREOF.NL# 7 AND WHEN THE MEN OF ASHDOD SAW THAT IT WAS SO, THEY SAID, THE ARK OF THEN GOD OF ISRAEL SHALL NOT ABIDE WITH US: FOR HIS HAND IS SORE UPON US, AND UPON DAGON OUR GOD. J# 8 THEY SENT THEREFORE AND GATHERED ALL THE LORDS OF THE PHILISTINES UNTOM THEM, AND SAID, WHAT SHALL WE DO WITH THE ARK OF THE GOD OF ISRAEL? AND THEYAK ANSWERED, LET THE ARK OF THE GOD OF ISRAEL BE CARRIED ABOUT UNTO GATH. ANDM9 THEY CARRIED THE ARK OF THE GOD OF ISRAEL ABOUT THITHER.EI# 9 AND IT WAS SO, THAT, AFTER THEY HAD CARRIED IT ABOUT, THE HAND OF THESN LORD WAS AGAINST THE CITY WITH A VERY GREAT DESTRUCTION: AND HE SMOTE THE MENH OF THE CITY, BOTH SMALL AND GREAT, AND THEY HAD EMERODS IN THEIR SECRET PARTS.FM# 10 THEREFORE THEY SENT THE ARK OF GOD TO EKRON. AND IT CAME TO PASS, AS THEHJ ARK OF GOD CAME TO EKRON, THAT THE EKRONITES CRIED OUT, SAYING, THEY HAVEM BROUGHT ABOUT THE ARK OF THE GOD OF ISRAEL TO US, TO SLAY US AND OUR PEOPLE. M# 11 SO THEY SENT AND GATHERED TOGETHER ALL THE LORDS OF THE PHILISTINES, ANDAM SAID, SEND AWAY THE ARK OF THE GOD OF ISRAEL, AND LET IT GO AGAIN TO HIS OWNDC PLACE, THAT IT SLAY US NOT, AND OUR PEOPLE: FOR THERE WAS A DEADLY K DESTRUCTION THROUGHOUT ALL THE CITY; THE HAND OF GOD WAS VERY HEAVY THERE.AL# 12 AND THE MEN THAT DIED NOT WERE SMITTEN WITH THE EMERODS: AND THE CRY OF THE CITY WENT UP TO HEAVEN. = CHAPTER 6 G# 1 AND THE ARK OF THE LORD WAS IN THE COUNTRY OF THE PHILISTINES SEVEN  MONTHS.M# 2 AND THE PHILISTINES CALLED FOR THE PRIESTS AND THE DIVINERS, SAYING, WHATN SHALL WE DO TO THE ARK OF THE LORD? TELL US WHEREWITH WE SHALL SEND IT TO HIS PLACE.HL# 3 AND THEY SAID, IF YE SEND AWAY THE ARK OF THE GOD OF ISRAEL, SEND IT NOTH EMPTY; BUT IN ANY WISE RETURN HIM A TRESPASS OFFERING: THEN YE SHALL BEK H00g.)D%5%T6%! !EALED, AND IT SHALL BE KNOWN TO YOU WHY HIS HAND IS NOT REMOVED FROM YOU.TM# 4 THEN SAID THEY, WHAT SHALL BE THE TRESPASS OFFERING WHICH WE SHALL RETURN L TO HIM? THEY ANSWERED, FIVE GOLDEN EMERODS, AND FIVE GOLDEN MICE, ACCORDINGN TO THE NUMBER OF THE LORDS OF THE PHILISTINES: FOR ONE PLAGUE WAS ON YOU ALL, AND ON YOUR LORDS.EK# 5 WHEREFORE YE SHALL MAKE IMAGES OF YOUR EMERODS, AND IMAGES OF YOUR MICE C THAT MAR THE LAND; AND YE SHALL GIVE GLORY UNTO THE GOD OF ISRAEL: L PERADVENTURE HE WILL LIGHTEN HIS HAND FROM OFF YOU, AND FROM OFF YOUR GODS, AND FROM OFF YOUR LAND.I# 6 WHEREFORE THEN DO YE HARDEN YOUR HEARTS, AS THE EGYPTIANS AND PHARAOHTL HARDENED THEIR HEARTS? WHEN HE HAD WROUGHT WONDERFULLY AMONG THEM, DID THEY* NOT LET THE PEOPLE GO, AND THEY DEPARTED?J# 7 NOW THEREFORE MAKE A NEW CART, AND TAKE TWO MILCH KINE, ON WHICH THEREM HATH COME NO YOKE, AND TIE THE KINE TO THE CART, AND BRING THEIR CALVES HOME FROM THEM:SG# 8 AND TAKE THE ARK OF THE LORD, AND LAY IT UPON THE CART; AND PUT THEIL JEWELS OF GOLD, WHICH YE RETURN HIM FOR A TRESPASS OFFERING, IN A COFFER BY4 THE SIDE THEREOF; AND SEND IT AWAY, THAT IT MAY GO.L# 9 AND SEE, IF IT GOETH UP BY THE WAY OF HIS OWN COAST TO BETHSHEMESH, THENK HE HATH DONE US THIS GREAT EVIL: BUT IF NOT, THEN WE SHALL KNOW THAT IT IS A NOT HIS HAND THAT SMOTE US: IT WAS A CHANCE THAT HAPPENED TO US.EL# 10 AND THE MEN DID SO; AND TOOK TWO MILCH KINE, AND TIED THEM TO THE CART," AND SHUT UP THEIR CALVES AT HOME:M# 11 AND THEY LAID THE ARK OF THE LORD UPON THE CART, AND THE COFFER WITH THEM. MICE OF GOLD AND THE IMAGES OF THEIR EMERODS.K# 12 AND THE KINE TOOK THE STRAIGHT WAY TO THE WAY OF BETHSHEMESH, AND WENTYJ ALONG THE HIGHWAY, LOWING AS THEY WENT, AND TURNED NOT ASIDE TO THE RIGHTK HAND OR TO THE LEFT; AND THE LORDS OF THE PHILISTINES WENT AFTER THEM UNTO: THE BORDER OF BETHSHEMESH.DL# 13 AND THEY OF BETHSHEMESH WERE REAPING THEIR WHEAT HARVEST IN THE VALLEY:H AND THEY LIFTED UP THEIR EYES, AND SAW THE ARK, AND REJOICED TO SEE IT.I# 14 AND THE CART CAME INTO THE FIELD OF JOSHUA, A BETHSHEMITE, AND STOODMK THERE, WHERE THERE WAS A GREAT STONE: AND THEY CLAVE THE WOOD OF THE CART, 5 AND OFFERED THE KINE A BURNT OFFERING UNTO THE LORD.HK# 15 AND THE LEVITES TOOK DOWN THE ARK OF THE LORD, AND THE COFFER THAT WASDK WITH IT, WHEREIN THE JEWELS OF GOLD WERE, AND PUT THEM ON THE GREAT STONE:3M AND THE MEN OF BETHSHEMESH OFFERED BURNT OFFERINGS AND SACRIFICED SACRIFICEST THE SAME DAY UNTO THE LORD.M# 16 AND WHEN THE FIVE LORDS OF THE PHILISTINES HAD SEEN IT, THEY RETURNED TOJ EKRON THE SAME DAY.J# 17 AND THESE ARE THE GOLDEN EMERODS WHICH THE PHILISTINES RETURNED FOR AK TRESPASS OFFERING UNTO THE LORD; FOR ASHDOD ONE, FOR GAZA ONE, FOR ASKELOND" ONE, FOR GATH ONE, FOR EKRON ONE;J# 18 AND THE GOLDEN MICE, ACCORDING TO THE NUMBER OF ALL THE CITIES OF THEG PHILISTINES BELONGING TO THE FIVE LORDS, BOTH OF FENCED CITIES, AND OFUK COUNTRY VILLAGES, EVEN UNTO THE GREAT STONE OF ABEL, WHEREON THEY SET DOWNAI THE ARK OF THE LORD: WHICH STONE REMAINETH UNTO THIS DAY IN THE FIELD OFE JOSHUA, THE BETHSHEMITE.DJ# 19 AND HE SMOTE THE MEN OF BETHSHEMESH, BECAUSE THEY HAD LOOKED INTO THEK ARK OF THE LORD, EVEN HE SMOTE OF THE PEOPLE FIFTY THOUSAND AND THREESCOREOK AND TEN MEN: AND THE PEOPLE LAMENTED, BECAUSE THE LORD HAD SMITTEN MANY OF # THE PEOPLE WITH A GREAT SLAUGHTER.SK# 20 AND THE MEN OF BETHSHEMESH SAID, WHO IS ABLE TO STAND BEFORE THIS HOLYE. LORD GOD? AND TO WHOM SHALL HE GO UP FROM US?J# 21 AND THEY SENT MESSENGERS TO THE INHABITANTS OF KIRJATHJEARIM, SAYING,J THE PHILISTINES HAVE BROUGHT AGAIN THE ARK OF THE LORD; COME YE DOWN, AND FETCH IT UP TO YOU. = CHAPTER 7 N# 1 AND THE MEN OF KIRJATHJEARIM CAME, AND FETCHED UP THE ARK OF THE LORD, ANDN BROUGHT IT INTO THE HOUSE OF ABINADAB IN THE HILL, AND SANCTIFIED ELEAZAR HIS! SON TO KEEP THE ARK OF THE LORD.RL# 2 AND IT CAME TO PASS, WHILE THE ARK ABODE IN KIRJATHJEARIM, THAT THE TIMEN WAS LONG; FOR IT WAS TWENTY YEARS: AND ALL THE HOUSE OF ISRAEL LAMENTED AFTER THE LORD.J# 3 00g.Y.<%X>%+%O-%TADATADATAAND SAMUEL SPAKE UNTO ALL THE HOUSE OF ISRAEL, SAYING, IF YE DO RETURNG UNTO THE LORD WITH ALL YOUR HEARTS, THEN PUT AWAY THE STRANGE GODS AND K ASHTAROTH FROM AMONG YOU, AND PREPARE YOUR HEARTS UNTO THE LORD, AND SERVEF HIM ONLY: AND HE WILL DELIVER YOU OUT OF THE HAND OF THE PHILISTINES.M# 4 THEN THE CHILDREN OF ISRAEL DID PUT AWAY BAALIM AND ASHTAROTH, AND SERVEDA THE LORD ONLY.TI# 5 AND SAMUEL SAID, GATHER ALL ISRAEL TO MIZPEH, AND I WILL PRAY FOR YOUS UNTO THE LORD.TK# 6 AND THEY GATHERED TOGETHER TO MIZPEH, AND DREW WATER, AND POURED IT OUTNH BEFORE THE LORD, AND FASTED ON THAT DAY, AND SAID THERE, WE HAVE SINNEDF AGAINST THE LORD. AND SAMUEL JUDGED THE CHILDREN OF ISRAEL IN MIZPEH.L# 7 AND WHEN THE PHILISTINES HEARD THAT THE CHILDREN OF ISRAEL WERE GATHEREDM TOGETHER TO MIZPEH, THE LORDS OF THE PHILISTINES WENT UP AGAINST ISRAEL. ANDTK WHEN THE CHILDREN OF ISRAEL HEARD IT, THEY WERE AFRAID OF THE PHILISTINES.TM# 8 AND THE CHILDREN OF ISRAEL SAID TO SAMUEL, CEASE NOT TO CRY UNTO THE LORDEI OUR GOD FOR US, THAT HE WILL SAVE US OUT OF THE HAND OF THE PHILISTINES.AG# 9 AND SAMUEL TOOK A SUCKING LAMB, AND OFFERED IT FOR A BURNT OFFERINGSN WHOLLY UNTO THE LORD: AND SAMUEL CRIED UNTO THE LORD FOR ISRAEL; AND THE LORD HEARD HIM.HK# 10 AND AS SAMUEL WAS OFFERING UP THE BURNT OFFERING, THE PHILISTINES DREWIN NEAR TO BATTLE AGAINST ISRAEL: BUT THE LORD THUNDERED WITH A GREAT THUNDER ONK THAT DAY UPON THE PHILISTINES, AND DISCOMFITED THEM; AND THEY WERE SMITTEN, BEFORE ISRAEL. K# 11 AND THE MEN OF ISRAEL WENT OUT OF MIZPEH, AND PURSUED THE PHILISTINES,P/ AND SMOTE THEM, UNTIL THEY CAME UNDER BETHCAR. M# 12 THEN SAMUEL TOOK A STONE, AND SET IT BETWEEN MIZPEH AND SHEN, AND CALLEDNC THE NAME OF IT EBENEZER, SAYING, HITHERTO HATH THE LORD HELPED US.LM# 13 SO THE PHILISTINES WERE SUBDUED, AND THEY CAME NO MORE INTO THE COAST OFIM ISRAEL: AND THE HAND OF THE LORD WAS AGAINST THE PHILISTINES ALL THE DAYS OFP SAMUEL.M# 14 AND THE CITIES WHICH THE PHILISTINES HAD TAKEN FROM ISRAEL WERE RESTOREDMH TO ISRAEL, FROM EKRON EVEN UNTO GATH; AND THE COASTS THEREOF DID ISRAELI DELIVER OUT OF THE HANDS OF THE PHILISTINES. AND THERE WAS PEACE BETWEENS ISRAEL AND THE AMORITES.E7# 15 AND SAMUEL JUDGED ISRAEL ALL THE DAYS OF HIS LIFE.OH# 16 AND HE WENT FROM YEAR TO YEAR IN CIRCUIT TO BETHEL, AND GILGAL, AND/ MIZPEH, AND JUDGED ISRAEL IN ALL THOSE PLACES.EG# 17 AND HIS RETURN WAS TO RAMAH; FOR THERE WAS HIS HOUSE; AND THERE HE: JUDGED ISRAEL; AND THERE HE BUILT AN ALTAR UNTO THE LORD. = CHAPTER 8 J# 1 AND IT CAME TO PASS, WHEN SAMUEL WAS OLD, THAT HE MADE HIS SONS JUDGES OVER ISRAEL.TG# 2 NOW THE NAME OF HIS FIRSTBORN WAS JOEL; AND THE NAME OF HIS SECOND,N& ABIAH: THEY WERE JUDGES IN BEERSHEBA.J# 3 AND HIS SONS WALKED NOT IN HIS WAYS, BUT TURNED ASIDE AFTER LUCRE, AND% TOOK BRIBES, AND PERVERTED JUDGMENT.EK# 4 THEN ALL THE ELDERS OF ISRAEL GATHERED THEMSELVES TOGETHER, AND CAME TO  SAMUEL UNTO RAMAH,SI# 5 AND SAID UNTO HIM, BEHOLD, THOU ART OLD, AND THY SONS WALK NOT IN THY.; WAYS: NOW MAKE US A KING TO JUDGE US LIKE ALL THE NATIONS. L# 6 BUT THE THING DISPLEASED SAMUEL, WHEN THEY SAID, GIVE US A KING TO JUDGE% US. AND SAMUEL PRAYED UNTO THE LORD.NJ# 7 AND THE LORD SAID UNTO SAMUEL, HEARKEN UNTO THE VOICE OF THE PEOPLE INL ALL THAT THEY SAY UNTO THEE: FOR THEY HAVE NOT REJECTED THEE, BUT THEY HAVE0 REJECTED ME, THAT I SHOULD NOT REIGN OVER THEM.H# 8 ACCORDING TO ALL THE WORKS WHICH THEY HAVE DONE SINCE THE DAY THAT IN BROUGHT THEM UP OUT OF EGYPT EVEN UNTO THIS DAY, WHEREWITH THEY HAVE FORSAKEN6 ME, AND SERVED OTHER GODS, SO DO THEY ALSO UNTO THEE.M# 9 NOW THEREFORE HEARKEN UNTO THEIR VOICE: HOWBEIT YET PROTEST SOLEMNLY UNTOYG THEM, AND SHEW THEM THE MANNER OF THE KING THAT SHALL REIGN OVER THEM.OL# 10 AND SAMUEL TOLD ALL THE WORDS OF THE LORD UNTO THE PEOPLE THAT ASKED OF HIM A KING.K# 11 AND HE SAID, THIS WILL BE THE MANNER OF THE KING THAT SHALL REIGN OVERLM YOU: HE WILL TAKE YOUR SONS, AND APPOINT THEM FOR HIMSELF, FOR HIS CHARIOTS,G@ AND TO BE HIS HORSEMEN; AND SOME SHAL00g.)D%5%T6%! !L RUN BEFORE HIS CHARIOTS.G# 12 AND HE WILL APPOINT HIM CAPTAINS OVER THOUSANDS, AND CAPTAINS OVERON FIFTIES; AND WILL SET THEM TO EAR HIS GROUND, AND TO REAP HIS HARVEST, AND TO> MAKE HIS INSTRUMENTS OF WAR, AND INSTRUMENTS OF HIS CHARIOTS.L# 13 AND HE WILL TAKE YOUR DAUGHTERS TO BE CONFECTIONARIES, AND TO BE COOKS, AND TO BE BAKERS.K# 14 AND HE WILL TAKE YOUR FIELDS, AND YOUR VINEYARDS, AND YOUR OLIVEYARDS,O6 EVEN THE BEST OF THEM, AND GIVE THEM TO HIS SERVANTS.M# 15 AND HE WILL TAKE THE TENTH OF YOUR SEED, AND OF YOUR VINEYARDS, AND GIVEL& TO HIS OFFICERS, AND TO HIS SERVANTS.G# 16 AND HE WILL TAKE YOUR MENSERVANTS, AND YOUR MAIDSERVANTS, AND YOURE? GOODLIEST YOUNG MEN, AND YOUR ASSES, AND PUT THEM TO HIS WORK.EH# 17 HE WILL TAKE THE TENTH OF YOUR SHEEP: AND YE SHALL BE HIS SERVANTS.I# 18 AND YE SHALL CRY OUT IN THAT DAY BECAUSE OF YOUR KING WHICH YE SHALLE= HAVE CHOSEN YOU; AND THE LORD WILL NOT HEAR YOU IN THAT DAY.OJ# 19 NEVERTHELESS THE PEOPLE REFUSED TO OBEY THE VOICE OF SAMUEL; AND THEY, SAID, NAY; BUT WE WILL HAVE A KING OVER US;J# 20 THAT WE ALSO MAY BE LIKE ALL THE NATIONS; AND THAT OUR KING MAY JUDGE1 US, AND GO OUT BEFORE US, AND FIGHT OUR BATTLES.GK# 21 AND SAMUEL HEARD ALL THE WORDS OF THE PEOPLE, AND HE REHEARSED THEM IN  THE EARS OF THE LORD.K# 22 AND THE LORD SAID TO SAMUEL, HEARKEN UNTO THEIR VOICE, AND MAKE THEM AIM KING. AND SAMUEL SAID UNTO THE MEN OF ISRAEL, GO YE EVERY MAN UNTO HIS CITY.Y = CHAPTER 9 K# 1 NOW THERE WAS A MAN OF BENJAMIN, WHOSE NAME WAS KISH, THE SON OF ABIEL, J THE SON OF ZEROR, THE SON OF BECHORATH, THE SON OF APHIAH, A BENJAMITE, A MIGHTY MAN OF POWER.ML# 2 AND HE HAD A SON, WHOSE NAME WAS SAUL, A CHOICE YOUNG MAN, AND A GOODLY:J AND THERE WAS NOT AMONG THE CHILDREN OF ISRAEL A GOODLIER PERSON THAN HE:D FROM HIS SHOULDERS AND UPWARD HE WAS HIGHER THAN ANY OF THE PEOPLE.K# 3 AND THE ASSES OF KISH SAULS FATHER WERE LOST. AND KISH SAID TO SAUL HISMK SON, TAKE NOW ONE OF THE SERVANTS WITH THEE, AND ARISE, GO SEEK THE ASSES.NG# 4 AND HE PASSED THROUGH MOUNT EPHRAIM, AND PASSED THROUGH THE LAND OF,H SHALISHA, BUT THEY FOUND THEM NOT: THEN THEY PASSED THROUGH THE LAND OFG SHALIM, AND THERE THEY WERE NOT: AND HE PASSED THROUGH THE LAND OF THEE% BENJAMITES, BUT THEY FOUND THEM NOT. I# 5 AND WHEN THEY WERE COME TO THE LAND OF ZUPH, SAUL SAID TO HIS SERVANT L THAT WAS WITH HIM, COME, AND LET US RETURN; LEST MY FATHER LEAVE CARING FOR$ THE ASSES, AND TAKE THOUGHT FOR US.M# 6 AND HE SAID UNTO HIM, BEHOLD NOW, THERE IS IN THIS CITY A MAN OF GOD, ANDHM HE IS AN HONOURABLE MAN; ALL THAT HE SAITH COMETH SURELY TO PASS: NOW LET US C GO THITHER; PERADVENTURE HE CAN SHEW US OUR WAY THAT WE SHOULD GO.EM# 7 THEN SAID SAUL TO HIS SERVANT, BUT, BEHOLD, IF WE GO, WHAT SHALL WE BRING N THE MAN? FOR THE BREAD IS SPENT IN OUR VESSELS, AND THERE IS NOT A PRESENT TO' BRING TO THE MAN OF GOD: WHAT HAVE WE? I# 8 AND THE SERVANT ANSWERED SAUL AGAIN, AND SAID, BEHOLD, I HAVE HERE ATRK HAND THE FOURTH PART OF A SHEKEL OF SILVER: THAT WILL I GIVE TO THE MAN OFD GOD, TO TELL US OUR WAY.EL# 9 (BEFORETIME IN ISRAEL, WHEN A MAN WENT TO ENQUIRE OF GOD, THUS HE SPAKE,I COME, AND LET US GO TO THE SEER: FOR HE THAT IS NOW CALLED A PROPHET WASI BEFORETIME CALLED A SEER.) L# 10 THEN SAID SAUL TO HIS SERVANT, WELL SAID; COME, LET US GO. SO THEY WENT( UNTO THE CITY WHERE THE MAN OF GOD WAS.M# 11 AND AS THEY WENT UP THE HILL TO THE CITY, THEY FOUND YOUNG MAIDENS GOINGB9 OUT TO DRAW WATER, AND SAID UNTO THEM, IS THE SEER HERE?FL# 12 AND THEY ANSWERED THEM, AND SAID, HE IS; BEHOLD, HE IS BEFORE YOU: MAKEK HASTE NOW, FOR HE CAME TO DAY TO THE CITY; FOR THERE IS A SACRIFICE OF THEA! PEOPLE TO DAY IN THE HIGH PLACE:AH# 13 AS SOON AS YE BE COME INTO THE CITY, YE SHALL STRAIGHTWAY FIND HIM,L BEFORE HE GO UP TO THE HIGH PLACE TO EAT: FOR THE PEOPLE WILL NOT EAT UNTILN HE COME, BECAUSE HE DOTH BLESS THE SACRIFICE; AND AFTERWARDS THEY EAT THAT BEI BIDDEN. NOW THEREFORE GET YOU UP; FOR ABOUT THIS TIME YE SHALL FIND HIM.EK# 14 AND THEY WENT UP INTO THE CITY: AND WHEN THEY00g.Y.<%X>%+%O-%TADATADATA WERE COME INTO THE CITY,OF BEHOLD, SAMUEL CAME OUT AGAINST THEM, FOR TO GO UP TO THE HIGH PLACE.L# 15 NOW THE LORD HAD TOLD SAMUEL IN HIS EAR A DAY BEFORE SAUL CAME, SAYING,H# 16 TO MORROW ABOUT THIS TIME I WILL SEND THEE A MAN OUT OF THE LAND OFN BENJAMIN, AND THOU SHALT ANOINT HIM TO BE CAPTAIN OVER MY PEOPLE ISRAEL, THATL HE MAY SAVE MY PEOPLE OUT OF THE HAND OF THE PHILISTINES: FOR I HAVE LOOKED3 UPON MY PEOPLE, BECAUSE THEIR CRY IS COME UNTO ME.L# 17 AND WHEN SAMUEL SAW SAUL, THE LORD SAID UNTO HIM, BEHOLD THE MAN WHOM I8 SPAKE TO THEE OF! THIS SAME SHALL REIGN OVER MY PEOPLE.I# 18 THEN SAUL DREW NEAR TO SAMUEL IN THE GATE, AND SAID, TELL ME, I PRAYL THEE, WHERE THE SEERS HOUSE IS.L# 19 AND SAMUEL ANSWERED SAUL, AND SAID, I AM THE SEER: GO UP BEFORE ME UNTOJ THE HIGH PLACE; FOR YE SHALL EAT WITH ME TO DAY, AND TO MORROW I WILL LET8 THEE GO, AND WILL TELL THEE ALL THAT IS IN THINE HEART.K# 20 AND AS FOR THINE ASSES THAT WERE LOST THREE DAYS AGO, SET NOT THY MINDSL ON THEM; FOR THEY ARE FOUND. AND ON WHOM IS ALL THE DESIRE OF ISRAEL? IS IT+ NOT ON THEE, AND ON ALL THY FATHERS HOUSE? M# 21 AND SAUL ANSWERED AND SAID, AM NOT I A BENJAMITE, OF THE SMALLEST OF THETN TRIBES OF ISRAEL? AND MY FAMILY THE LEAST OF ALL THE FAMILIES OF THE TRIBE OF1 BENJAMIN? WHEREFORE THEN SPEAKEST THOU SO TO ME? M# 22 AND SAMUEL TOOK SAUL AND HIS SERVANT, AND BROUGHT THEM INTO THE PARLOUR, K AND MADE THEM SIT IN THE CHIEFEST PLACE AMONG THEM THAT WERE BIDDEN, WHICH, WERE ABOUT THIRTY PERSONS. K# 23 AND SAMUEL SAID UNTO THE COOK, BRING THE PORTION WHICH I GAVE THEE, OFH( WHICH I SAID UNTO THEE, SET IT BY THEE.K# 24 AND THE COOK TOOK UP THE SHOULDER, AND THAT WHICH WAS UPON IT, AND SETIJ IT BEFORE SAUL. AND SAMUEL SAID, BEHOLD THAT WHICH IS LEFT! SET IT BEFOREM THEE, AND EAT: FOR UNTO THIS TIME HATH IT BEEN KEPT FOR THEE SINCE I SAID, IN? HAVE INVITED THE PEOPLE. SO SAUL DID EAT WITH SAMUEL THAT DAY.MK# 25 AND WHEN THEY WERE COME DOWN FROM THE HIGH PLACE INTO THE CITY, SAMUELH. COMMUNED WITH SAUL UPON THE TOP OF THE HOUSE.K# 26 AND THEY AROSE EARLY: AND IT CAME TO PASS ABOUT THE SPRING OF THE DAY, M THAT SAMUEL CALLED SAUL TO THE TOP OF THE HOUSE, SAYING, UP, THAT I MAY SENDNJ THEE AWAY. AND SAUL AROSE, AND THEY WENT OUT BOTH OF THEM, HE AND SAMUEL, ABROAD.M# 27 AND AS THEY WERE GOING DOWN TO THE END OF THE CITY, SAMUEL SAID TO SAUL,HN BID THE SERVANT PASS ON BEFORE US, (AND HE PASSED ON), BUT STAND THOU STILL A- WHILE, THAT I MAY SHEW THEE THE WORD OF GOD.C = CHAPTER 10 CK# 1 THEN SAMUEL TOOK A VIAL OF OIL, AND POURED IT UPON HIS HEAD, AND KISSEDIK HIM, AND SAID, IS IT NOT BECAUSE THE LORD HATH ANOINTED THEE TO BE CAPTAIN  OVER HIS INHERITANCE?J# 2 WHEN THOU ART DEPARTED FROM ME TO DAY, THEN THOU SHALT FIND TWO MEN BYN RACHELS SEPULCHRE IN THE BORDER OF BENJAMIN AT ZELZAH; AND THEY WILL SAY UNTOJ THEE, THE ASSES WHICH THOU WENTEST TO SEEK ARE FOUND: AND, LO, THY FATHERM HATH LEFT THE CARE OF THE ASSES, AND SORROWETH FOR YOU, SAYING, WHAT SHALL IG DO FOR MY SON?0I# 3 THEN SHALT THOU GO ON FORWARD FROM THENCE, AND THOU SHALT COME TO THESG PLAIN OF TABOR, AND THERE SHALL MEET THEE THREE MEN GOING UP TO GOD TO M BETHEL, ONE CARRYING THREE KIDS, AND ANOTHER CARRYING THREE LOAVES OF BREAD,E' AND ANOTHER CARRYING A BOTTLE OF WINE:PL# 4 AND THEY WILL SALUTE THEE, AND GIVE THEE TWO LOAVES OF BREAD; WHICH THOU SHALT RECEIVE OF THEIR HANDS.K# 5 AFTER THAT THOU SHALT COME TO THE HILL OF GOD, WHERE IS THE GARRISON OFWN THE PHILISTINES: AND IT SHALL COME TO PASS, WHEN THOU ART COME THITHER TO THEK CITY, THAT THOU SHALT MEET A COMPANY OF PROPHETS COMING DOWN FROM THE HIGHSN PLACE WITH A PSALTERY, AND A TABRET, AND A PIPE, AND A HARP, BEFORE THEM; AND THEY SHALL PROPHESY:RK# 6 AND THE SPIRIT OF THE LORD WILL COME UPON THEE, AND THOU SHALT PROPHESYW1 WITH THEM, AND SHALT BE TURNED INTO ANOTHER MAN. G# 7 AND LET IT BE, WHEN THESE SIGNS ARE COME UNTO THEE, THAT THOU DO ASE+ OCCASION SERVE THEE; FOR GOD IS WITH THEE.WM# 8 AND THOU SHALT GO DOWN BEFORE ME TO GILGAL; AND, BEHOLD, I WILL COME DOW00g.)D%5%T6%! !NEJ UNTO THEE, TO OFFER BURNT OFFERINGS, AND TO SACRIFICE SACRIFICES OF PEACEK OFFERINGS: SEVEN DAYS SHALT THOU TARRY, TILL I COME TO THEE, AND SHEW THEE; WHAT THOU SHALT DO.J# 9 AND IT WAS SO, THAT WHEN HE HAD TURNED HIS BACK TO GO FROM SAMUEL, GODC GAVE HIM ANOTHER HEART: AND ALL THOSE SIGNS CAME TO PASS THAT DAY. J# 10 AND WHEN THEY CAME THITHER TO THE HILL, BEHOLD, A COMPANY OF PROPHETSL MET HIM; AND THE SPIRIT OF GOD CAME UPON HIM, AND HE PROPHESIED AMONG THEM.M# 11 AND IT CAME TO PASS, WHEN ALL THAT KNEW HIM BEFORETIME SAW THAT, BEHOLD, L HE PROPHESIED AMONG THE PROPHETS, THEN THE PEOPLE SAID ONE TO ANOTHER, WHATL IS THIS THAT IS COME UNTO THE SON OF KISH? IS SAUL ALSO AMONG THE PROPHETS?J# 12 AND ONE OF THE SAME PLACE ANSWERED AND SAID, BUT WHO IS THEIR FATHER?@ THEREFORE IT BECAME A PROVERB, IS SAUL ALSO AMONG THE PROPHETS?K# 13 AND WHEN HE HAD MADE AN END OF PROPHESYING, HE CAME TO THE HIGH PLACE.PK# 14 AND SAULS UNCLE SAID UNTO HIM AND TO HIS SERVANT, WHITHER WENT YE? AND M HE SAID, TO SEEK THE ASSES: AND WHEN WE SAW THAT THEY WERE NO WHERE, WE CAMEG TO SAMUEL.,K# 15 AND SAULS UNCLE SAID, TELL ME, I PRAY THEE, WHAT SAMUEL SAID UNTO YOU.NI# 16 AND SAUL SAID UNTO HIS UNCLE, HE TOLD US PLAINLY THAT THE ASSES WEREAK FOUND. BUT OF THE MATTER OF THE KINGDOM, WHEREOF SAMUEL SPAKE, HE TOLD HIMS NOT.LC# 17 AND SAMUEL CALLED THE PEOPLE TOGETHER UNTO THE LORD TO MIZPEH;NM# 18 AND SAID UNTO THE CHILDREN OF ISRAEL, THUS SAITH THE LORD GOD OF ISRAEL,EK I BROUGHT UP ISRAEL OUT OF EGYPT, AND DELIVERED YOU OUT OF THE HAND OF THEAK EGYPTIANS, AND OUT OF THE HAND OF ALL KINGDOMS, AND OF THEM THAT OPPRESSED  YOU:RM# 19 AND YE HAVE THIS DAY REJECTED YOUR GOD, WHO HIMSELF SAVED YOU OUT OF ALLDL YOUR ADVERSITIES AND YOUR TRIBULATIONS; AND YE HAVE SAID UNTO HIM, NAY, BUTM SET A KING OVER US. NOW THEREFORE PRESENT YOURSELVES BEFORE THE LORD BY YOURE TRIBES, AND BY YOUR THOUSANDS. J# 20 AND WHEN SAMUEL HAD CAUSED ALL THE TRIBES OF ISRAEL TO COME NEAR, THE TRIBE OF BENJAMIN WAS TAKEN.GM# 21 WHEN HE HAD CAUSED THE TRIBE OF BENJAMIN TO COME NEAR BY THEIR FAMILIES, L THE FAMILY OF MATRI WAS TAKEN, AND SAUL THE SON OF KISH WAS TAKEN: AND WHEN( THEY SOUGHT HIM, HE COULD NOT BE FOUND.L# 22 THEREFORE THEY ENQUIRED OF THE LORD FURTHER, IF THE MAN SHOULD YET COMEL THITHER. AND THE LORD ANSWERED, BEHOLD HE HATH HID HIMSELF AMONG THE STUFF.M# 23 AND THEY RAN AND FETCHED HIM THENCE: AND WHEN HE STOOD AMONG THE PEOPLE,ED HE WAS HIGHER THAN ANY OF THE PEOPLE FROM HIS SHOULDERS AND UPWARD.M# 24 AND SAMUEL SAID TO ALL THE PEOPLE, SEE YE HIM WHOM THE LORD HATH CHOSEN,IN THAT THERE IS NONE LIKE HIM AMONG ALL THE PEOPLE? AND ALL THE PEOPLE SHOUTED, AND SAID, GOD SAVE THE KING.DM# 25 THEN SAMUEL TOLD THE PEOPLE THE MANNER OF THE KINMDOM, AND WROTE IT IN AOK BOOK, ADD LAID IT UP BELORE THE FORD. ADD SAMUEL SENT ALL THE PEEPLE AWAY,N EVEXY MAN TO HIS HOUSE.I#*26 AND SAUL ALSO ]ENT HOME ^O GIBEAH; AND THERE WENT WITH HIM A BAND EF # MEN, WHOSE HEAR^S GOD HAD ^OUCHED.SJ# 2= BUT THE CHILDREN OL BELIAL*SAID, HOW SHALL THIS MAN SAVE US? AND THEY> DESPISED HIM, AND BREUGHT NO*PRESENTS. BUT HE HELD HIS PEAIE. = CHAPTER 11 AL# 1 THEN NAHASH THE AMMONITE CAME UP, ADD ENCAMPED KGAINST JKBESBGILEAD: ADDM ALL THE MEN EF JABESH SAID _NTO NAHASH& MAKE A IOVENANT*WITH US, ADD ]E WILLT SERVE THEE.J) 2 AND NABASH THE AMMONITE ADSWEXED THEM, EN THIS CONDITCON*WILL I MKKE AM COVENANT*WITH YOU, THAT I MAY THRUST EUT*ALL YOUR XIGHT EYOS, AND LAY IT FORH A ROPREACH UPON ALL ISRAEL.L#*9 AND THE ELDEXS OL @ABOSH*SAID UNTO HIM,*MCVE US SEVEN DASS ROSPITE, THATL WE MAY SOND MESSENMERY UDTO ALL THE COASTS OF ISRAEL: AND THEN, IF THERE BE- NO MAN TO SAVE US, WE WILL COME OUT TO THEE.PK# 4 THEN*CAME THE MESSENGERS TO GIBEAH OF SAUL, AND TOLD THE TIDINGS IN THE I EARS OF THE PEOPLE: AND ALL THE PEOPLE LIFTED UP THEIR VOICES, AND WEPT.NJ# 5 AND, BEHOLD, SAUL CAME AFTER THE HERD OUT OF THE FIELD; AND SAUL SAID,L WHAT AILETH THE PEOPLE THAT THEY WEEP? AND THEY TOLD HIM THE TIDINGS OF THE MEN OF JABOSH.EM# 6 AND THE SP00g.Y.<%X>%+%O-%TADATADATAIRIT OF GOD CAME UPON SAUL WHEN HE HEARD THOSE TIDINGS, AND HISE ANGER WAS KINDLED GREATLY.IG# 7 AND HE TOOK A YOKE OF OXEN, AND HEWED THEM IN PIECES, AND SENT THEMEH THROUGHOUT ALL THE COASTS OF ISRAEL BY THE HANDS OF MESSENGERS, SAYING,L WHOSOEVER COMETH NOT FORTH AFTER SAUL AND AFTER SAMUEL, SO SHALL IT BE DONEN UNTO HIS OXEN. AND THE FEAR OF THE LORD FELL ON THE PEOPLE, AND THEY CAME OUT WITH ONE CONSENT.I# 8 AND WHEN HE NUMBERED THEM IN BEZEK, THE CHILDREN OF ISRAEL WERE THREEE8 HUNDRED THOUSAND, AND THE MEN OF JUDAH THIRTY THOUSAND.K# 9 AND THEY SAID UNTO THE MESSENGERS THAT CAME, THUS SHALL YE SAY UNTO THEOK MEN OF JABESHGILEAD, TO MORROW, BY THAT TIME THE SUN BE HOT, YE SHALL HAVEOK HELP. AND THE MESSENGERS CAME AND SHEWED IT TO THE MEN OF JABESH; AND THEYE WERE GLAD.TK# 10 THEREFORE THE MEN OF JABESH SAID, TO MORROW WE WILL COME OUT UNTO YOU, 8 AND YE SHALL DO WITH US ALL THAT SEEMETH GOOD UNTO YOU.C# 11 AND IT WAS SO ON THE MORROW, THAT SAUL PUT THE PEOPLE IN THREEEN COMPANIES; AND THEY CAME INTO THE MIDST OF THE HOST IN THE MORNING WATCH, ANDM SLEW THE AMMONITES UNTIL THE HEAT OF THE DAY: AND IT CAME TO PASS, THAT THEY K WHICH REMAINED WERE SCATTERED, SO THAT TWO OF THEM WERE NOT LEFT TOGETHER.GK# 12 AND THE PEOPLE SAID UNTO SAMUEL, WHO IS HE THAT SAID, SHALL SAUL REIGNE7 OVER US? BRING THE MEN, THAT WE MAY PUT THEM TO DEATH. J# 13 AND SAUL SAID, THERE SHALL NOT A MAN BE PUT TO DEATH THIS DAY: FOR TO/ DAY THE LORD HATH WROUGHT SALVATION IN ISRAEL.PM# 14 THEN SAID SAMUEL TO THE PEOPLE, COME, AND LET US GO TO GILGAL, AND RENEWN THE KINGDOM THERE.HL# 15 AND ALL THE PEOPLE WENT TO GILGAL; AND THERE THEY MADE SAUL KING BEFOREL THE LORD IN GILGAL; AND THERE THEY SACRIFICED SACRIFICES OF PEACE OFFERINGSL BEFORE THE LORD; AND THERE SAUL AND ALL THE MEN OF ISRAEL REJOICED GREATLY. = CHAPTER 12 EM# 1 AND SAMUEL SAID UNTO ALL ISRAEL, BEHOLD, I HAVE HEARKENED UNTO YOUR VOICEE< IN ALL THAT YE SAID UNTO ME, AND HAVE MADE A KING OVER YOU.B# 2 AND NOW, BEHOLD, THE KING WALKETH BEFORE YOU: AND I AM OLD ANDL GRAYHEADED; AND, BEHOLD, MY SONS ARE WITH YOU: AND I HAVE WALKED BEFORE YOU! FROM MY CHILDHOOD UNTO THIS DAY. I# 3 BEHOLD, HERE I AM: WITNESS AGAINST ME BEFORE THE LORD, AND BEFORE HIS K ANOINTED: WHOSE OX HAVE I TAKEN? OR WHOSE ASS HAVE I TAKEN? OR WHOM HAVE ILM DEFRAUDED? WHOM HAVE I OPPRESSED? OR OF WHOSE HAND HAVE I RECEIVED ANY BRIBE,9 TO BLIND MINE EYES THEREWITH? AND I WILL RESTORE IT YOU.TM# 4 AND THEY SAID, THOU HAST NOT DEFRAUDED US, NOR OPPRESSED US, NEITHER HASTO# THOU TAKEN OUGHT OF ANY MANS HAND.;L# 5 AND HE SAID UNTO THEM, THE LORD IS WITNESS AGAINST YOU, AND HIS ANOINTEDG IS WITNESS THIS DAY, THAT YE HAVE NOT FOUND OUGHT IN MY HAND. AND THEYT ANSWERED, HE IS WITNESS.AK# 6 AND SAMUEL SAID UNTO THE PEOPLE, IT IS THE LORD THAT ADVANCED MOSES ANDDB AARON, AND THAT BROUGHT YOUR FATHERS UP OUT OF THE LAND OF EGYPT.L# 7 NOW THEREFORE STAND STILL, THAT I MAY REASON WITH YOU BEFORE THE LORD OFM ALL THE RIGHTEOUS ACTS OF THE LORD, WHICH HE DID TO YOU AND TO YOUR FATHERS.AI# 8 WHEN JACOB WAS COME INTO EGYPT, AND YOUR FATHERS CRIED UNTO THE LORD,SL THEN THE LORD SENT MOSES AND AARON, WHICH BROUGHT FORTH YOUR FATHERS OUT OF* EGYPT, AND MADE THEM DWELL IN THIS PLACE.J# 9 AND WHEN THEY FORGAT THE LORD THEIR GOD, HE SOLD THEM INTO THE HAND OFL SISERA, CAPTAIN OF THE HOST OF HAZOR, AND INTO THE HAND OF THE PHILISTINES,E AND INTO THE HAND OF THE KING OF MOAB, AND THEY FOUGHT AGAINST THEM.EL# 10 AND THEY CRIED UNTO THE LORD, AND SAID, WE HAVE SINNED, BECAUSE WE HAVEL FORSAKEN THE LORD, AND HAVE SERVED BAALIM AND ASHTAROTH: BUT NOW DELIVER US8 OUT OF THE HAND OF OUR ENEMIES, AND WE WILL SERVE THEE.J# 11 AND THE LORD SENT JERUBBAAL, AND BEDAN, AND JEPHTHAH, AND SAMUEL, ANDL DELIVERED YOU OUT OF THE HAND OF YOUR ENEMIES ON EVERY SIDE, AND YE DWELLED SAFE.G# 12 AND WHEN YE SAW THAT NAHASH THE KING OF THE CHILDREN OF AMMON CAMETL AGAINST YOU, YE SAID UNTO ME, NAY; BUT A KING SHALL REIGN OVER US: WHEN THE LORD YOUR GOD WAS YOUR KING.WH# 13 NOW THEREFORE BEHOLD THE 00g.)D%5%T6%! !KING WHOM YE HAVE CHOSEN, AND WHOM YE HAVE9 DESIRED! AND, BEHOLD, THE LORD HATH SET A KING OVER YOU. I# 14 IF YE WILL FEAR THE LORD, AND SERVE HIM, AND OBEY HIS VOICE, AND NOTAK REBEL AGAINST THE COMMANDMENT OF THE LORD, THEN SHALL BOTH YE AND ALSO THEIB KING THAT REIGNETH OVER YOU CONTINUE FOLLOWING THE LORD YOUR GOD:I# 15 BUT IF YE WILL NOT OBEY THE VOICE OF THE LORD, BUT REBEL AGAINST THEML COMMANDMENT OF THE LORD, THEN SHALL THE HAND OF THE LORD BE AGAINST YOU, AS IT WAS AGAINST YOUR FATHERS.HI# 16 NOW THEREFORE STAND AND SEE THIS GREAT THING, WHICH THE LORD WILL DOR BEFORE YOUR EYES.L# 17 IS IT NOT WHEAT HARVEST TO DAY? I WILL CALL UNTO THE LORD, AND HE SHALLL SEND THUNDER AND RAIN; THAT YE MAY PERCEIVE AND SEE THAT YOUR WICKEDNESS ISJ GREAT, WHICH YE HAVE DONE IN THE SIGHT OF THE LORD, IN ASKING YOU A KING.L# 18 SO SAMUEL CALLED UNTO THE LORD; AND THE LORD SENT THUNDER AND RAIN THAT< DAY: AND ALL THE PEOPLE GREATLY FEARED THE LORD AND SAMUEL.M# 19 AND ALL THE PEOPLE SAID UNTO SAMUEL, PRAY FOR THY SERVANTS UNTO THE LORDTL THY GOD, THAT WE DIE NOT: FOR WE HAVE ADDED UNTO ALL OUR SINS THIS EVIL, TO ASK US A KING.AE# 20 AND SAMUEL SAID UNTO THE PEOPLE, FEAR NOT: YE HAVE DONE ALL THISTK WICKEDNESS: YET TURN NOT ASIDE FROM FOLLOWING THE LORD, BUT SERVE THE LORDI WITH ALL YOUR HEART;,J# 21 AND TURN YE NOT ASIDE: FOR THEN SHOULD YE GO AFTER VAIN THINGS, WHICH. CANNOT PROFIT NOR DELIVER; FOR THEY ARE VAIN.G# 22 FOR THE LORD WILL NOT FORSAKE HIS PEOPLE FOR HIS GREAT NAMES SAKE: 9 BECAUSE IT HATH PLEASED THE LORD TO MAKE YOU HIS PEOPLE.TI# 23 MOREOVER AS FOR ME, GOD FORBID THAT I SHOULD SIN AGAINST THE LORD INIJ CEASING TO PRAY FOR YOU: BUT I WILL TEACH YOU THE GOOD AND THE RIGHT WAY:H# 24 ONLY FEAR THE LORD, AND SERVE HIM IN TRUTH WITH ALL YOUR HEART: FOR0 CONSIDER HOW GREAT THINGS HE HATH DONE FOR YOU.I# 25 BUT IF YE SHALL STILL DO WICKEDLY, YE SHALL BE CONSUMED, BOTH YE ANDD YOUR KING.H = CHAPTER 13 I# 1 SAUL REIGNED ONE YEAR; AND WHEN HE HAD REIGNED TWO YEARS OVER ISRAEL,CJ# 2 SAUL CHOSE HIM THREE THOUSAND MEN OF ISRAEL; WHEREOF TWO THOUSAND WEREM WITH SAUL IN MICHMASH AND IN MOUNT BETHEL, AND A THOUSAND WERE WITH JONATHANUK IN GIBEAH OF BENJAMIN: AND THE REST OF THE PEOPLE HE SENT EVERY MAN TO HISA TENT.L# 3 AND JONATHAN SMOTE THE GARRISON OF THE PHILISTINES THAT WAS IN GEBA, ANDJ THE PHILISTINES HEARD OF IT. AND SAUL BLEW THE TRUMPET THROUGHOUT ALL THE$ LAND, SAYING, LET THE HEBREWS HEAR.D# 4 AND ALL ISRAEL HEARD SAY THAT SAUL HAD SMITTEN A GARRISON OF THEB PHILISTINES, AND THAT ISRAEL ALSO WAS HAD IN ABOMINATION WITH THEG PHILISTINES. AND THE PEOPLE WERE CALLED TOGETHER AFTER SAUL TO GILGAL.AJ# 5 AND THE PHILISTINES GATHERED THEMSELVES TOGETHER TO FIGHT WITH ISRAEL,L THIRTY THOUSAND CHARIOTS, AND SIX THOUSAND HORSEMEN, AND PEOPLE AS THE SANDI WHICH IS ON THE SEA SHORE IN MULTITUDE: AND THEY CAME UP, AND PITCHED INE" MICHMASH, EASTWARD FROM BETHAVEN.J# 6 WHEN THE MEN OF ISRAEL SAW THAT THEY WERE IN A STRAIT, (FOR THE PEOPLEG WERE DISTRESSED,) THEN THE PEOPLE DID HIDE THEMSELVES IN CAVES, AND INI9 THICKETS, AND IN ROCKS, AND IN HIGH PLACES, AND IN PITS.AK# 7 AND SOME OF THE HEBREWS WENT OVER JORDAN TO THE LAND OF GAD AND GILEAD.LN AS FOR SAUL, HE WAS YET IN GILGAL, AND ALL THE PEOPLE FOLLOWED HIM TREMBLING.H# 8 AND HE TARRIED SEVEN DAYS, ACCORDING TO THE SET TIME THAT SAMUEL HADM APPOINTED: BUT SAMUEL CAME NOT TO GILGAL; AND THE PEOPLE WERE SCATTERED FROMN HIM.NL# 9 AND SAUL SAID, BRING HITHER A BURNT OFFERING TO ME, AND PEACE OFFERINGS.# AND HE OFFERED THE BURNT OFFERING.IL# 10 AND IT CAME TO PASS, THAT AS SOON AS HE HAD MADE AN END OF OFFERING THEL BURNT OFFERING, BEHOLD, SAMUEL CAME; AND SAUL WENT OUT TO MEET HIM, THAT HE MIGHT SALUTE HIM.L# 11 AND SAMUEL SAID, WHAT HAST THOU DONE? AND SAUL SAID, BECAUSE I SAW THATL THE PEOPLE WERE SCATTERED FROM ME, AND THAT THOU CAMEST NOT WITHIN THE DAYSN APPOINTED, AND THAT THE PHILISTINES GATHERED THEMSELVES TOGETHER AT MICHMASH;L# 12 THEREFORE SAID I, THE PHILISTINES WILL COME DOWN NOW UPON ME TO GILGAL,K A00g.Y.<%X>%+%O-%TADATADATAND I HAVE NOT MADE SUPPLICATION UNTO THE LORD: I FORCED MYSELF THEREFORE,  AND OFFERED A BURNT OFFERING.J# 13 AND SAMUEL SAID TO SAUL, THOU HAST DONE FOOLISHLY: THOU HAST NOT KEPTL THE COMMANDMENT OF THE LORD THY GOD, WHICH HE COMMANDED THEE: FOR NOW WOULD< THE LORD HAVE ESTABLISHED THY KINGDOM UPON ISRAEL FOR EVER.K# 14 BUT NOW THY KINGDOM SHALL NOT CONTINUE: THE LORD HATH SOUGHT HIM A MANHL AFTER HIS OWN HEART, AND THE LORD HATH COMMANDED HIM TO BE CAPTAIN OVER HISG PEOPLE, BECAUSE THOU HAST NOT KEPT THAT WHICH THE LORD COMMANDED THEE.EJ# 15 AND SAMUEL AROSE, AND GAT HIM UP FROM GILGAL UNTO GIBEAH OF BENJAMIN.K AND SAUL NUMBERED THE PEOPLE THAT WERE PRESENT WITH HIM, ABOUT SIX HUNDREDA MEN.OJ# 16 AND SAUL, AND JONATHAN HIS SON, AND THE PEOPLE THAT WERE PRESENT WITHM THEM, ABODE IN GIBEAH OF BENJAMIN: BUT THE PHILISTINES ENCAMPED IN MICHMASH.TF# 17 AND THE SPOILERS CAME OUT OF THE CAMP OF THE PHILISTINES IN THREEL COMPANIES: ONE COMPANY TURNED UNTO THE WAY THAT LEADETH TO OPHRAH, UNTO THE LAND OF SHUAL:HI# 18 AND ANOTHER COMPANY TURNED THE WAY TO BETHHORON: AND ANOTHER COMPANYAL TURNED TO THE WAY OF THE BORDER THAT LOOKETH TO THE VALLEY OF ZEBOIM TOWARD THE WILDERNESS.L# 19 NOW THERE WAS NO SMITH FOUND THROUGHOUT ALL THE LAND OF ISRAEL: FOR THE? PHILISTINES SAID, LEST THE HEBREWS MAKE THEM SWORDS OR SPEARS:SJ# 20 BUT ALL THE ISRAELITES WENT DOWN TO THE PHILISTINES, TO SHARPEN EVERY> MAN HIS SHARE, AND HIS COULTER, AND HIS AXE, AND HIS MATTOCK.L# 21 YET THEY HAD A FILE FOR THE MATTOCKS, AND FOR THE COULTERS, AND FOR THE3 FORKS, AND FOR THE AXES, AND TO SHARPEN THE GOADS.AJ# 22 SO IT CAME TO PASS IN THE DAY OF BATTLE, THAT THERE WAS NEITHER SWORDI NOR SPEAR FOUND IN THE HAND OF ANY OF THE PEOPLE THAT WERE WITH SAUL ANDLC JONATHAN: BUT WITH SAUL AND WITH JONATHAN HIS SON WAS THERE FOUND. M# 23 AND THE GARRISON OF THE PHILISTINES WENT OUT TO THE PASSAGE OF MICHMASH.O = CHAPTER 14 K# 1 NOW IT CAME TO PASS UPON A DAY, THAT JONATHAN THE SON OF SAUL SAID UNTO D THE YOUNG MAN THAT BARE HIS ARMOUR, COME, AND LET US GO OVER TO THEM PHILISTINES GARRISON, THAT IS ON THE OTHER SIDE. BUT HE TOLD NOT HIS FATHER.DM# 2 AND SAUL TARRIED IN THE UTTERMOST PART OF GIBEAH UNDER A POMEGRANATE TREE M WHICH IS IN MIGRON: AND THE PEOPLE THAT WERE WITH HIM WERE ABOUT SIX HUNDREDH MEN;SL# 3 AND AHIAH, THE SON OF AHITUB, ICHABODS BROTHER, THE SON OF PHINEHAS, THEN SON OF ELI, THE LORDS PRIEST IN SHILOH, WEARING AN EPHOD. AND THE PEOPLE KNEW NOT THAT JONATHAN WAS GONE.J# 4 AND BETWEEN THE PASSAGES, BY WHICH JONATHAN SOUGHT TO GO OVER UNTO THEJ PHILISTINES GARRISON, THERE WAS A SHARP ROCK ON THE ONE SIDE, AND A SHARPK ROCK ON THE OTHER SIDE: AND THE NAME OF THE ONE WAS BOZEZ, AND THE NAME OFE THE OTHER SENEH.NM# 5 THE FOREFRONT OF THE ONE WAS SITUATE NORTHWARD OVER AGAINST MICHMASH, AND ) THE OTHER SOUTHWARD OVER AGAINST GIBEAH.HM# 6 AND JONATHAN SAID TO THE YOUNG MAN THAT BARE HIS ARMOUR, COME, AND LET USAJ GO OVER UNTO THE GARRISON OF THESE UNCIRCUMCISED: IT MAY BE THAT THE LORDN WILL WORK FOR US: FOR THERE IS NO RESTRAINT TO THE LORD TO SAVE BY MANY OR BY FEW.EK# 7 AND HIS ARMOURBEARER SAID UNTO HIM, DO ALL THAT IS IN THINE HEART: TURNT5 THEE; BEHOLD, I AM WITH THEE ACCORDING TO THY HEART.HM# 8 THEN SAID JONATHAN, BEHOLD, WE WILL PASS OVER UNTO THESE MEN, AND WE WILLH DISCOVER OURSELVES UNTO THEM.L# 9 IF THEY SAY THUS UNTO US, TARRY UNTIL WE COME TO YOU; THEN WE WILL STAND2 STILL IN OUR PLACE, AND WILL NOT GO UP UNTO THEM.L# 10 BUT IF THEY SAY THUS, COME UP UNTO US; THEN WE WILL GO UP: FOR THE LORDE HATH DELIVERED THEM INTO OUR HAND: AND THIS SHALL BE A SIGN UNTO US. D# 11 AND BOTH OF THEM DISCOVERED THEMSELVES UNTO THE GARRISON OF THEM PHILISTINES: AND THE PHILISTINES SAID, BEHOLD, THE HEBREWS COME FORTH OUT OFO) THE HOLES WHERE THEY HAD HID THEMSELVES.EL# 12 AND THE MEN OF THE GARRISON ANSWERED JONATHAN AND HIS ARMOURBEARER, ANDN SAID, COME UP TO US, AND WE WILL SHEW YOU A THING. AND JONATHAN SAID UNTO HISJ ARMOURBEARER, COME UP AFTER ME: FOR THE LORD HATH DELIVERED THEM INTO00g.)D%5%T6%! ! THE HAND OF ISRAEL.F# 13 AND JONATHAN CLIMBED UP UPON HIS HANDS AND UPON HIS FEET, AND HISL ARMOURBEARER AFTER HIM: AND THEY FELL BEFORE JONATHAN; AND HIS ARMOURBEARER SLEW AFTER HIM.L# 14 AND THAT FIRST SLAUGHTER, WHICH JONATHAN AND HIS ARMOURBEARER MADE, WASJ ABOUT TWENTY MEN, WITHIN AS IT WERE AN HALF ACRE OF LAND, WHICH A YOKE OF OXEN MIGHT PLOW.SI# 15 AND THERE WAS TREMBLING IN THE HOST, IN THE FIELD, AND AMONG ALL THESJ PEOPLE: THE GARRISON, AND THE SPOILERS, THEY ALSO TREMBLED, AND THE EARTH* QUAKED: SO IT WAS A VERY GREAT TREMBLING.L# 16 AND THE WATCHMEN OF SAUL IN GIBEAH OF BENJAMIN LOOKED; AND, BEHOLD, THEB MULTITUDE MELTED AWAY, AND THEY WENT ON BEATING DOWN ONE ANOTHER.K# 17 THEN SAID SAUL UNTO THE PEOPLE THAT WERE WITH HIM, NUMBER NOW, AND SEEAJ WHO IS GONE FROM US. AND WHEN THEY HAD NUMBERED, BEHOLD, JONATHAN AND HIS ARMOURBEARER WERE NOT THERE.EJ# 18 AND SAUL SAID UNTO AHIAH, BRING HITHER THE ARK OF GOD. FOR THE ARK OF2 GOD WAS AT THAT TIME WITH THE CHILDREN OF ISRAEL.K# 19 AND IT CAME TO PASS, WHILE SAUL TALKED UNTO THE PRIEST, THAT THE NOISEFM THAT WAS IN THE HOST OF THE PHILISTINES WENT ON AND INCREASED: AND SAUL SAIDN& UNTO THE PRIEST, WITHDRAW THINE HAND.M# 20 AND SAUL AND ALL THE PEOPLE THAT WERE WITH HIM ASSEMBLED THEMSELVES, ANDG THEY CAME TO THE BATTLE: AND, BEHOLD, EVERY MANS SWORD WAS AGAINST HISS1 FELLOW, AND THERE WAS A VERY GREAT DISCOMFITURE.DJ# 21 MOREOVER THE HEBREWS THAT WERE WITH THE PHILISTINES BEFORE THAT TIME,N WHICH WENT UP WITH THEM INTO THE CAMP FROM THE COUNTRY ROUND ABOUT, EVEN THEYH ALSO TURNED TO BE WITH THE ISRAELITES THAT WERE WITH SAUL AND JONATHAN.E# 22 LIKEWISE ALL THE MEN OF ISRAEL WHICH HAD HID THEMSELVES IN MOUNTHL EPHRAIM, WHEN THEY HEARD THAT THE PHILISTINES FLED, EVEN THEY ALSO FOLLOWED HARD AFTER THEM IN THE BATTLE. G# 23 SO THE LORD SAVED ISRAEL THAT DAY: AND THE BATTLE PASSED OVER UNTOV BETHAVEN.M# 24 AND THE MEN OF ISRAEL WERE DISTRESSED THAT DAY: FOR SAUL HAD ADJURED THEHM PEOPLE, SAYING, CURSED BE THE MAN THAT EATETH ANY FOOD UNTIL EVENING, THAT IEG MAY BE AVENGED ON MINE ENEMIES. SO NONE OF THE PEOPLE TASTED ANY FOOD.JJ# 25 AND ALL THEY OF THE LAND CAME TO A WOOD; AND THERE WAS HONEY UPON THE GROUND.L# 26 AND WHEN THE PEOPLE WERE COME INTO THE WOOD, BEHOLD, THE HONEY DROPPED;F BUT NO MAN PUT HIS HAND TO HIS MOUTH: FOR THE PEOPLE FEARED THE OATH.M# 27 BUT JONATHAN HEARD NOT WHEN HIS FATHER CHARGED THE PEOPLE WITH THE OATH:TN WHEREFORE HE PUT FORTH THE END OF THE ROD THAT WAS IN HIS HAND, AND DIPPED ITB IN AN HONEYCOMB, AND PUT HIS HAND TO HIS MOUTH; AND HIS EYES WERE ENLIGHTENED.EK# 28 THEN ANSWERED ONE OF THE PEOPLE, AND SAID, THY FATHER STRAITLY CHARGEDDM THE PEOPLE WITH AN OATH, SAYING, CURSED BE THE MAN THAT EATETH ANY FOOD THIST DAY. AND THE PEOPLE WERE FAINT.K# 29 THEN SAID JONATHAN, MY FATHER HATH TROUBLED THE LAND: SEE, I PRAY YOU,N HOW MINE EYES HAVE BEEN ENLIGHTENED, BECAUSE I TASTED A LITTLE OF THIS HONEY.L# 30 HOW MUCH MORE, IF HAPLY THE PEOPLE HAD EATEN FREELY TO DAY OF THE SPOILM OF THEIR ENEMIES WHICH THEY FOUND? FOR HAD THERE NOT BEEN NOW A MUCH GREATERN! SLAUGHTER AMONG THE PHILISTINES? J# 31 AND THEY SMOTE THE PHILISTINES THAT DAY FROM MICHMASH TO AIJALON: AND THE PEOPLE WERE VERY FAINT.F# 32 AND THE PEOPLE FLEW UPON THE SPOIL, AND TOOK SHEEP, AND OXEN, ANDJ CALVES, AND SLEW THEM ON THE GROUND: AND THE PEOPLE DID EAT THEM WITH THE BLOOD.NM# 33 THEN THEY TOLD SAUL, SAYING, BEHOLD, THE PEOPLE SIN AGAINST THE LORD, INHN THAT THEY EAT WITH THE BLOOD. AND HE SAID, YE HAVE TRANSGRESSED: ROLL A GREAT STONE UNTO ME THIS DAY.L# 34 AND SAUL SAID, DISPERSE YOURSELVES AMONG THE PEOPLE, AND SAY UNTO THEM,I BRING ME HITHER EVERY MAN HIS OX, AND EVERY MAN HIS SHEEP, AND SLAY THEMEN HERE, AND EAT; AND SIN NOT AGAINST THE LORD IN EATING WITH THE BLOOD. AND ALLN THE PEOPLE BROUGHT EVERY MAN HIS OX WITH HIM THAT NIGHT, AND SLEW THEM THERE.M# 35 AND SAUL BUILT AN ALTAR UNTO THE LORD: THE SAME WAS THE FIRST ALTAR THATT HE BUILT UNTO THE LORD.L# 36 AND SAUL SAID, LET US GO DOWN AFTER T00g.Y.<%X>%+%O-%TADATADATAHE PHILISTINES BY NIGHT, AND SPOILK THEM UNTIL THE MORNING LIGHT, AND LET US NOT LEAVE A MAN OF THEM. AND THEY N SAID, DO WHATSOEVER SEEMETH GOOD UNTO THEE. THEN SAID THE PRIEST, LET US DRAW NEAR HITHER UNTO GOD.J# 37 AND SAUL ASKED COUNSEL OF GOD, SHALL I GO DOWN AFTER THE PHILISTINES?M WILT THOU DELIVER THEM INTO THE HAND OF ISRAEL? BUT HE ANSWERED HIM NOT THATD DAY.UI# 38 AND SAUL SAID, DRAW YE NEAR HITHER, ALL THE CHIEF OF THE PEOPLE: ANDN2 KNOW AND SEE WHEREIN THIS SIN HATH BEEN THIS DAY.K# 39 FOR, AS THE LORD LIVETH, WHICH SAVETH ISRAEL, THOUGH IT BE IN JONATHANTJ MY SON, HE SHALL SURELY DIE. BUT THERE WAS NOT A MAN AMONG ALL THE PEOPLE THAT ANSWERED HIM.EK# 40 THEN SAID HE UNTO ALL ISRAEL, BE YE ON ONE SIDE, AND I AND JONATHAN MYGN SON WILL BE ON THE OTHER SIDE. AND THE PEOPLE SAID UNTO SAUL, DO WHAT SEEMETH GOOD UNTO THEE.M# 41 THEREFORE SAUL SAID UNTO THE LORD GOD OF ISRAEL, GIVE A PERFECT LOT. ANDT6 SAUL AND JONATHAN WERE TAKEN: BUT THE PEOPLE ESCAPED.J# 42 AND SAUL SAID, CAST LOTS BETWEEN ME AND JONATHAN MY SON. AND JONATHAN WAS TAKEN. J# 43 THEN SAUL SAID TO JONATHAN, TELL ME WHAT THOU HAST DONE. AND JONATHANK TOLD HIM, AND SAID, I DID BUT TASTE A LITTLE HONEY WITH THE END OF THE RODO, THAT WAS IN MINE HAND, AND, LO, I MUST DIE.K# 44 AND SAUL ANSWERED, GOD DO SO AND MORE ALSO: FOR THOU SHALT SURELY DIE,N JONATHAN.M# 45 AND THE PEOPLE SAID UNTO SAUL, SHALL JONATHAN DIE, WHO HATH WROUGHT THISSK GREAT SALVATION IN ISRAEL? GOD FORBID: AS THE LORD LIVETH, THERE SHALL NOTTK ONE HAIR OF HIS HEAD FALL TO THE GROUND; FOR HE HATH WROUGHT WITH GOD THISA7 DAY. SO THE PEOPLE RESCUED JONATHAN, THAT HE DIED NOT.AJ# 46 THEN SAUL WENT UP FROM FOLLOWING THE PHILISTINES: AND THE PHILISTINES WENT TO THEIR OWN PLACE.AM# 47 SO SAUL TOOK THE KINGDOM OVER ISRAEL, AND FOUGHT AGAINST ALL HIS ENEMIESTL ON EVERY SIDE, AGAINST MOAB, AND AGAINST THE CHILDREN OF AMMON, AND AGAINSTG EDOM, AND AGAINST THE KINGS OF ZOBAH, AND AGAINST THE PHILISTINES: ANDB0 WHITHERSOEVER HE TURNED HIMSELF, HE VEXED THEM.L# 48 AND HE GATHERED AN HOST, AND SMOTE THE AMALEKITES, AND DELIVERED ISRAEL, OUT OF THE HANDS OF THEM THAT SPOILED THEM.K# 49 NOW THE SONS OF SAUL WERE JONATHAN, AND ISHUI, AND MELCHISHUA: AND THESL NAMES OF HIS TWO DAUGHTERS WERE THESE; THE NAME OF THE FIRSTBORN MERAB, AND THE NAME OF THE YOUNGER MICHAL:M# 50 AND THE NAME OF SAULS WIFE WAS AHINOAM, THE DAUGHTER OF AHIMAAZ: AND THEOH NAME OF THE CAPTAIN OF HIS HOST WAS ABNER, THE SON OF NER, SAULS UNCLE.M# 51 AND KISH WAS THE FATHER OF SAUL; AND NER THE FATHER OF ABNER WAS THE SON OF ABIEL.M# 52 AND THERE WAS SORE WAR AGAINST THE PHILISTINES ALL THE DAYS OF SAUL: AND H WHEN SAUL SAW ANY STRONG MAN, OR ANY VALIANT MAN, HE TOOK HIM UNTO HIM. = CHAPTER 15 J# 1 SAMUEL ALSO SAID UNTO SAUL, THE LORD SENT ME TO ANOINT THEE TO BE KINGK OVER HIS PEOPLE, OVER ISRAEL: NOW THEREFORE HEARKEN THOU UNTO THE VOICE OFE THE WORDS OF THE LORD.NM# 2 THUS SAITH THE LORD OF HOSTS, I REMEMBER THAT WHICH AMALEK DID TO ISRAEL,DA HOW HE LAID WAIT FOR HIM IN THE WAY, WHEN HE CAME UP FROM EGYPT.OH# 3 NOW GO AND SMITE AMALEK, AND UTTERLY DESTROY ALL THAT THEY HAVE, ANDI SPARE THEM NOT; BUT SLAY BOTH MAN AND WOMAN, INFANT AND SUCKLING, OX AND  SHEEP, CAMEL AND ASS.K# 4 AND SAUL GATHERED THE PEOPLE TOGETHER, AND NUMBERED THEM IN TELAIM, TWOO9 HUNDRED THOUSAND FOOTMEN, AND TEN THOUSAND MEN OF JUDAH.KC# 5 AND SAUL CAME TO A CITY OF AMALEK, AND LAID WAIT IN THE VALLEY.TK# 6 AND SAUL SAID UNTO THE KENITES, GO, DEPART, GET YOU DOWN FROM AMONG THEWL AMALEKITES, LEST I DESTROY YOU WITH THEM: FOR YE SHEWED KINDNESS TO ALL THEL CHILDREN OF ISRAEL, WHEN THEY CAME UP OUT OF EGYPT. SO THE KENITES DEPARTED FROM AMONG THE AMALEKITES.SI# 7 AND SAUL SMOTE THE AMALEKITES FROM HAVILAH UNTIL THOU COMEST TO SHUR,T THAT IS OVER AGAINST EGYPT.L# 8 AND HE TOOK AGAG THE KING OF THE AMALEKITES ALIVE, AND UTTERLY DESTROYED+ ALL THE PEOPLE WITH THE EDGE OF THE SWORD.AJ# 9 BUT SAUL AND THE PEOPLE SPARED AGAG, AND THE BEST OF THE SHEEP, AND OFI THE OXEN, AND OF THE FATLIN00g.)D%5%T6%! !GS, AND THE LAMBS, AND ALL THAT WAS GOOD, ANDWJ WOULD NOT UTTERLY DESTROY THEM: BUT EVERY THING THAT WAS VILE AND REFUSE, THAT THEY DESTROYED UTTERLY. 8# 10 THEN CAME THE WORD OF THE LORD UNTO SAMUEL, SAYING,I# 11 IT REPENTETH ME THAT I HAVE SET UP SAUL TO BE KING: FOR HE IS TURNED G BACK FROM FOLLOWING ME, AND HATH NOT PERFORMED MY COMMANDMENTS. AND IT6 GRIEVED SAMUEL; AND HE CRIED UNTO THE LORD ALL NIGHT.H# 12 AND WHEN SAMUEL ROSE EARLY TO MEET SAUL IN THE MORNING, IT WAS TOLDM SAMUEL, SAYING, SAUL CAME TO CARMEL, AND, BEHOLD, HE SET HIM UP A PLACE, ANDU7 IS GONE ABOUT, AND PASSED ON, AND GONE DOWN TO GILGAL.FL# 13 AND SAMUEL CAME TO SAUL: AND SAUL SAID UNTO HIM, BLESSED BE THOU OF THE4 LORD: I HAVE PERFORMED THE COMMANDMENT OF THE LORD.J# 14 AND SAMUEL SAID, WHAT MEANETH THEN THIS BLEATING OF THE SHEEP IN MINE/ EARS, AND THE LOWING OF THE OXEN WHICH I HEAR?MG# 15 AND SAUL SAID, THEY HAVE BROUGHT THEM FROM THE AMALEKITES: FOR THELK PEOPLE SPARED THE BEST OF THE SHEEP AND OF THE OXEN, TO SACRIFICE UNTO THEM6 LORD THY GOD; AND THE REST WE HAVE UTTERLY DESTROYED.I# 16 THEN SAMUEL SAID UNTO SAUL, STAY, AND I WILL TELL THEE WHAT THE LORDL: HATH SAID TO ME THIS NIGHT. AND HE SAID UNTO HIM, SAY ON.M# 17 AND SAMUEL SAID, WHEN THOU WAST LITTLE IN THINE OWN SIGHT, WAST THOU NOTTL MADE THE HEAD OF THE TRIBES OF ISRAEL, AND THE LORD ANOINTED THEE KING OVER ISRAEL?J# 18 AND THE LORD SENT THEE ON A JOURNEY, AND SAID, GO AND UTTERLY DESTROYK THE SINNERS THE AMALEKITES, AND FIGHT AGAINST THEM UNTIL THEY BE CONSUMED.L# 19 WHEREFORE THEN DIDST THOU NOT OBEY THE VOICE OF THE LORD, BUT DIDST FLY9 UPON THE SPOIL, AND DIDST EVIL IN THE SIGHT OF THE LORD? M# 20 AND SAUL SAID UNTO SAMUEL, YEA, I HAVE OBEYED THE VOICE OF THE LORD, ANDNL HAVE GONE THE WAY WHICH THE LORD SENT ME, AND HAVE BROUGHT AGAG THE KING OF3 AMALEK, AND HAVE UTTERLY DESTROYED THE AMALEKITES.G# 21 BUT THE PEOPLE TOOK OF THE SPOIL, SHEEP AND OXEN, THE CHIEF OF THERL THINGS WHICH SHOULD HAVE BEEN UTTERLY DESTROYED, TO SACRIFICE UNTO THE LORD THY GOD IN GILGAL.EK# 22 AND SAMUEL SAID, HATH THE LORD AS GREAT DELIGHT IN BURNT OFFERINGS AND K SACRIFICES, AS IN OBEYING THE VOICE OF THE LORD? BEHOLD, TO OBEY IS BETTERU5 THAN SACRIFICE, AND TO HEARKEN THAN THE FAT OF RAMS.VF# 23 FOR REBELLION IS AS THE SIN OF WITCHCRAFT, AND STUBBORNNESS IS ASK INIQUITY AND IDOLATRY. BECAUSE THOU HAST REJECTED THE WORD OF THE LORD, HEO) HATH ALSO REJECTED THEE FROM BEING KING.OJ# 24 AND SAUL SAID UNTO SAMUEL, I HAVE SINNED: FOR I HAVE TRANSGRESSED THEI COMMANDMENT OF THE LORD, AND THY WORDS: BECAUSE I FEARED THE PEOPLE, ANDT OBEYED THEIR VOICE.L# 25 NOW THEREFORE, I PRAY THEE, PARDON MY SIN, AND TURN AGAIN WITH ME, THAT I MAY WORSHIP THE LORD.J# 26 AND SAMUEL SAID UNTO SAUL, I WILL NOT RETURN WITH THEE: FOR THOU HASTJ REJECTED THE WORD OF THE LORD, AND THE LORD HATH REJECTED THEE FROM BEING KING OVER ISRAEL.J# 27 AND AS SAMUEL TURNED ABOUT TO GO AWAY, HE LAID HOLD UPON THE SKIRT OF HIS MANTLE, AND IT RENT.SL# 28 AND SAMUEL SAID UNTO HIM, THE LORD HATH RENT THE KINGDOM OF ISRAEL FROMN THEE THIS DAY, AND HATH GIVEN IT TO A NEIGHBOUR OF THINE, THAT IS BETTER THAN THOU.M# 29 AND ALSO THE STRENGTH OF ISRAEL WILL NOT LIE NOR REPENT: FOR HE IS NOT AD MAN, THAT HE SHOULD REPENT.L# 30 THEN HE SAID, I HAVE SINNED: YET HONOUR ME NOW, I PRAY THEE, BEFORE THEK ELDERS OF MY PEOPLE, AND BEFORE ISRAEL, AND TURN AGAIN WITH ME, THAT I MAYR WORSHIP THE LORD THY GOD.E# 31 SO SAMUEL TURNED AGAIN AFTER SAUL; AND SAUL WORSHIPPED THE LORD.AM# 32 THEN SAID SAMUEL, BRING YE HITHER TO ME AGAG THE KING OF THE AMALEKITES. K AND AGAG CAME UNTO HIM DELICATELY. AND AGAG SAID, SURELY THE BITTERNESS OFA DEATH IS PAST.OJ# 33 AND SAMUEL SAID, AS THE SWORD HATH MADE WOMEN CHILDLESS, SO SHALL THYL MOTHER BE CHILDLESS AMONG WOMEN. AND SAMUEL HEWED AGAG IN PIECES BEFORE THE LORD IN GILGAL.J# 34 THEN SAMUEL WENT TO RAMAH; AND SAUL WENT UP TO HIS HOUSE TO GIBEAH OF SAUL.D# 35 AND SAMUEL CAME NO MORE TO SEE SAUL UNTIL THE DAY OF HIS DEATH:M NEVERTHELESS SAMUEL M00g.Y.<%X>%+%O-%TADATADATAOURNED FOR SAUL: AND THE LORD REPENTED THAT HE HAD MADEM SAUL KING OVER ISRAEL.E = CHAPTER 16 AN# 1 AND THE LORD SAID UNTO SAMUEL, HOW LONG WILT THOU MOURN FOR SAUL, SEEING IK HAVE REJECTED HIM FROM REIGNING OVER ISRAEL? FILL THINE HORN WITH OIL, ANDDN GO, I WILL SEND THEE TO JESSE THE BETHLEHEMITE: FOR I HAVE PROVIDED ME A KING AMONG HIS SONS.L# 2 AND SAMUEL SAID, HOW CAN I GO? IF SAUL HEAR IT, HE WILL KILL ME. AND THEL LORD SAID, TAKE AN HEIFER WITH THEE, AND SAY, I AM COME TO SACRIFICE TO THE LORD.M# 3 AND CALL JESSE TO THE SACRIFICE, AND I WILL SHEW THEE WHAT THOU SHALT DO: 9 AND THOU SHALT ANOINT UNTO ME HIM WHOM I NAME UNTO THEE.IL# 4 AND SAMUEL DID THAT WHICH THE LORD SPAKE, AND CAME TO BETHLEHEM. AND THEL ELDERS OF THE TOWN TREMBLED AT HIS COMING, AND SAID, COMEST THOU PEACEABLY?J# 5 AND HE SAID, PEACEABLY: I AM COME TO SACRIFICE UNTO THE LORD: SANCTIFYK YOURSELVES, AND COME WITH ME TO THE SACRIFICE. AND HE SANCTIFIED JESSE ANDE, HIS SONS, AND CALLED THEM TO THE SACRIFICE.J# 6 AND IT CAME TO PASS, WHEN THEY WERE COME, THAT HE LOOKED ON ELIAB, AND/ SAID, SURELY THE LORDS ANOINTED IS BEFORE HIM. I# 7 BUT THE LORD SAID UNTO SAMUEL, LOOK NOT ON HIS COUNTENANCE, OR ON THEEM HEIGHT OF HIS STATURE; BECAUSE I HAVE REFUSED HIM: FOR THE LORD SEETH NOT ASNN MAN SEETH; FOR MAN LOOKETH ON THE OUTWARD APPEARANCE, BUT THE LORD LOOKETH ON THE HEART.OM# 8 THEN JESSE CALLED ABINADAB, AND MADE HIM PASS BEFORE SAMUEL. AND HE SAID, # NEITHER HATH THE LORD CHOSEN THIS.MJ# 9 THEN JESSE MADE SHAMMAH TO PASS BY. AND HE SAID, NEITHER HATH THE LORD CHOSEN THIS.AJ# 10 AGAIN, JESSE MADE SEVEN OF HIS SONS TO PASS BEFORE SAMUEL. AND SAMUEL1 SAID UNTO JESSE, THE LORD HATH NOT CHOSEN THESE.EH# 11 AND SAMUEL SAID UNTO JESSE, ARE HERE ALL THY CHILDREN? AND HE SAID,I THERE REMAINETH YET THE YOUNGEST, AND, BEHOLD, HE KEEPETH THE SHEEP. AND M SAMUEL SAID UNTO JESSE, SEND AND FETCH HIM: FOR WE WILL NOT SIT DOWN TILL HEO COME HITHER.HG# 12 AND HE SENT, AND BROUGHT HIM IN. NOW HE WAS RUDDY, AND WITHAL OF AAH BEAUTIFUL COUNTENANCE, AND GOODLY TO LOOK TO. AND THE LORD SAID, ARISE, ANOINT HIM: FOR THIS IS HE.K# 13 THEN SAMUEL TOOK THE HORN OF OIL, AND ANOINTED HIM IN THE MIDST OF HISSL BRETHREN: AND THE SPIRIT OF THE LORD CAME UPON DAVID FROM THAT DAY FORWARD.& SO SAMUEL ROSE UP, AND WENT TO RAMAH.K# 14 BUT THE SPIRIT OF THE LORD DEPARTED FROM SAUL, AND AN EVIL SPIRIT FROM  THE LORD TROUBLED HIM.TJ# 15 AND SAULS SERVANTS SAID UNTO HIM, BEHOLD NOW, AN EVIL SPIRIT FROM GOD TROUBLETH THEE.J# 16 LET OUR LORD NOW COMMAND THY SERVANTS, WHICH ARE BEFORE THEE, TO SEEKJ OUT A MAN, WHO IS A CUNNING PLAYER ON AN HARP: AND IT SHALL COME TO PASS,N WHEN THE EVIL SPIRIT FROM GOD IS UPON THEE, THAT HE SHALL PLAY WITH HIS HAND, AND THOU SHALT BE WELL.H# 17 AND SAUL SAID UNTO HIS SERVANTS, PROVIDE ME NOW A MAN THAT CAN PLAY WELL, AND BRING HIM TO ME. K# 18 THEN ANSWERED ONE OF THE SERVANTS, AND SAID, BEHOLD, I HAVE SEEN A SONAL OF JESSE THE BETHLEHEMITE, THAT IS CUNNING IN PLAYING, AND A MIGHTY VALIANTL MAN, AND A MAN OF WAR, AND PRUDENT IN MATTERS, AND A COMELY PERSON, AND THE LORD IS WITH HIM.K# 19 WHEREFORE SAUL SENT MESSENGERS UNTO JESSE, AND SAID, SEND ME DAVID THYG SON, WHICH IS WITH THE SHEEP.M# 20 AND JESSE TOOK AN ASS LADEN WITH BREAD, AND A BOTTLE OF WINE, AND A KID,N* AND SENT THEM BY DAVID HIS SON UNTO SAUL.L# 21 AND DAVID CAME TO SAUL, AND STOOD BEFORE HIM: AND HE LOVED HIM GREATLY; AND HE BECAME HIS ARMOURBEARER.M# 22 AND SAUL SENT TO JESSE, SAYING, LET DAVID, I PRAY THEE, STAND BEFORE ME; & FOR HE HATH FOUND FAVOUR IN MY SIGHT.K# 23 AND IT CAME TO PASS, WHEN THE EVIL SPIRIT FROM GOD WAS UPON SAUL, THATEM DAVID TOOK AN HARP, AND PLAYED WITH HIS HAND: SO SAUL WAS REFRESHED, AND WAS- WELL, AND THE EVIL SPIRIT DEPARTED FROM HIM.D = CHAPTER 17 NJ# 1 NOW THE PHILISTINES GATHERED TOGETHER THEIR ARMIES TO BATTLE, AND WEREL GATHERED TOGETHER AT SHOCHOH, WHICH BELONGETH TO JUDAH, AND PITCHED BETWEEN$ SHOCHOH AND AZEKAH, IN EPHESDAMMIM.M# 2 AND SAUL AND THE MEN OF ISRAEL WERE GATHERED TOG00g.)D%5%T6%! !ETHER, AND PITCHED BY THEFE VALLEY OF ELAH, AND SET THE BATTLE IN ARRAY AGAINST THE PHILISTINES. M# 3 AND THE PHILISTINES STOOD ON A MOUNTAIN ON THE ONE SIDE, AND ISRAEL STOODLF ON A MOUNTAIN ON THE OTHER SIDE: AND THERE WAS A VALLEY BETWEEN THEM.K# 4 AND THERE WENT OUT A CHAMPION OUT OF THE CAMP OF THE PHILISTINES, NAMEDA: GOLIATH, OF GATH, WHOSE HEIGHT WAS SIX CUBITS AND A SPAN.M# 5 AND HE HAD AN HELMET OF BRASS UPON HIS HEAD, AND HE WAS ARMED WITH A COAT H OF MAIL; AND THE WEIGHT OF THE COAT WAS FIVE THOUSAND SHEKELS OF BRASS.L# 6 AND HE HAD GREAVES OF BRASS UPON HIS LEGS, AND A TARGET OF BRASS BETWEEN HIS SHOULDERS.TK# 7 AND THE STAFF OF HIS SPEAR WAS LIKE A WEAVERS BEAM; AND HIS SPEARS HEADTJ WEIGHED SIX HUNDRED SHEKELS OF IRON: AND ONE BEARING A SHIELD WENT BEFORE HIM.UM# 8 AND HE STOOD AND CRIED UNTO THE ARMIES OF ISRAEL, AND SAID UNTO THEM, WHYIK ARE YE COME OUT TO SET YOUR BATTLE IN ARRAY? AM NOT I A PHILISTINE, AND YE I SERVANTS TO SAUL? CHOOSE YOU A MAN FOR YOU, AND LET HIM COME DOWN TO ME.AH# 9 IF HE BE ABLE TO FIGHT WITH ME, AND TO KILL ME, THEN WILL WE BE YOURK SERVANTS: BUT IF I PREVAIL AGAINST HIM, AND KILL HIM, THEN SHALL YE BE OURS SERVANTS, AND SERVE US.M# 10 AND THE PHILISTINE SAID, I DEFY THE ARMIES OF ISRAEL THIS DAY; GIVE ME AD! MAN, THAT WE MAY FIGHT TOGETHER.OL# 11 WHEN SAUL AND ALL ISRAEL HEARD THOSE WORDS OF THE PHILISTINE, THEY WERE DISMAYED, AND GREATLY AFRAID.K# 12 NOW DAVID WAS THE SON OF THAT EPHRATHITE OF BETHLEHEMJUDAH, WHOSE NAME,L WAS JESSE; AND HE HAD EIGHT SONS: AND THE MAN WENT AMONG MEN FOR AN OLD MAN IN THE DAYS OF SAUL.OM# 13 AND THE THREE ELDEST SONS OF JESSE WENT AND FOLLOWED SAUL TO THE BATTLE:SG AND THE NAMES OF HIS THREE SONS THAT WENT TO THE BATTLE WERE ELIAB THEE> FIRSTBORN, AND NEXT UNTO HIM ABINADAB, AND THE THIRD SHAMMAH.D# 14 AND DAVID WAS THE YOUNGEST: AND THE THREE ELDEST FOLLOWED SAUL.G# 15 BUT DAVID WENT AND RETURNED FROM SAUL TO FEED HIS FATHERS SHEEP ATO BETHLEHEM.HL# 16 AND THE PHILISTINE DREW NEAR MORNING AND EVENING, AND PRESENTED HIMSELF FORTY DAYS.M# 17 AND JESSE SAID UNTO DAVID HIS SON, TAKE NOW FOR THY BRETHREN AN EPHAH OF N THIS PARCHED CORN, AND THESE TEN LOAVES, AND RUN TO THE CAMP OF THY BRETHREN;M# 18 AND CARRY THESE TEN CHEESES UNTO THE CAPTAIN OF THEIR THOUSAND, AND LOOK . HOW THY BRETHREN FARE, AND TAKE THEIR PLEDGE.I# 19 NOW SAUL, AND THEY, AND ALL THE MEN OF ISRAEL, WERE IN THE VALLEY OFN% ELAH, FIGHTING WITH THE PHILISTINES.AF# 20 AND DAVID ROSE UP EARLY IN THE MORNING, AND LEFT THE SHEEP WITH AK KEEPER, AND TOOK, AND WENT, AS JESSE HAD COMMANDED HIM; AND HE CAME TO THE N TRENCH, AS THE HOST WAS GOING FORTH TO THE FIGHT, AND SHOUTED FOR THE BATTLE.M# 21 FOR ISRAEL AND THE PHILISTINES HAD PUT THE BATTLE IN ARRAY, ARMY AGAINSTH ARMY.K# 22 AND DAVID LEFT HIS CARRIAGE IN THE HAND OF THE KEEPER OF THE CARRIAGE,.: AND RAN INTO THE ARMY, AND CAME AND SALUTED HIS BRETHREN.H# 23 AND AS HE TALKED WITH THEM, BEHOLD, THERE CAME UP THE CHAMPION, THEK PHILISTINE OF GATH, GOLIATH BY NAME, OUT OF THE ARMIES OF THE PHILISTINES,D= AND SPAKE ACCORDING TO THE SAME WORDS: AND DAVID HEARD THEM.,I# 24 AND ALL THE MEN OF ISRAEL, WHEN THEY SAW THE MAN, FLED FROM HIM, AND1 WERE SORE AFRAID.G# 25 AND THE MEN OF ISRAEL SAID, HAVE YE SEEN THIS MAN THAT IS COME UP?DG SURELY TO DEFY ISRAEL IS HE COME UP: AND IT SHALL BE, THAT THE MAN WHORK KILLETH HIM, THE KING WILL ENRICH HIM WITH GREAT RICHES, AND WILL GIVE HIMI9 HIS DAUGHTER, AND MAKE HIS FATHERS HOUSE FREE IN ISRAEL.NM# 26 AND DAVID SPAKE TO THE MEN THAT STOOD BY HIM, SAYING, WHAT SHALL BE DONEAK TO THE MAN THAT KILLETH THIS PHILISTINE, AND TAKETH AWAY THE REPROACH FROMSJ ISRAEL? FOR WHO IS THIS UNCIRCUMCISED PHILISTINE, THAT HE SHOULD DEFY THE ARMIES OF THE LIVING GOD?J# 27 AND THE PEOPLE ANSWERED HIM AFTER THIS MANNER, SAYING, SO SHALL IT BE" DONE TO THE MAN THAT KILLETH HIM.G# 28 AND ELIAB HIS ELDEST BROTHER HEARD WHEN HE SPAKE UNTO THE MEN; AND J ELIABS ANGER WAS KINDLED AGAINST DAVID, AND HE SAID, WHY CAMEST THOU DOWNJ HITHER? AND WITH WHOM HAS00g.Y.<%X>%+%O-%TADATADATAT THOU LEFT THOSE FEW SHEEP IN THE WILDERNESS? IK KNOW THY PRIDE, AND THE NAUGHTINESS OF THINE HEART; FOR THOU ART COME DOWNE# THAT THOU MIGHTEST SEE THE BATTLE.I@# 29 AND DAVID SAID, WHAT HAVE I NOW DONE? IS THERE NOT A CAUSE?L# 30 AND HE TURNED FROM HIM TOWARD ANOTHER, AND SPAKE AFTER THE SAME MANNER:; AND THE PEOPLE ANSWERED HIM AGAIN AFTER THE FORMER MANNER. I# 31 AND WHEN THE WORDS WERE HEARD WHICH DAVID SPAKE, THEY REHEARSED THEMA" BEFORE SAUL: AND HE SENT FOR HIM.G# 32 AND DAVID SAID TO SAUL, LET NO MANS HEART FAIL BECAUSE OF HIM; THYS0 SERVANT WILL GO AND FIGHT WITH THIS PHILISTINE.L# 33 AND SAUL SAID TO DAVID, THOU ART NOT ABLE TO GO AGAINST THIS PHILISTINEJ TO FIGHT WITH HIM: FOR THOU ART BUT A YOUTH, AND HE A MAN OF WAR FROM HIS YOUTH.IL# 34 AND DAVID SAID UNTO SAUL, THY SERVANT KEPT HIS FATHERS SHEEP, AND THERE; CAME A LION, AND A BEAR, AND TOOK A LAMB OUT OF THE FLOCK:EI# 35 AND I WENT OUT AFTER HIM, AND SMOTE HIM, AND DELIVERED IT OUT OF HIS J MOUTH: AND WHEN HE AROSE AGAINST ME, I CAUGHT HIM BY HIS BEARD, AND SMOTE HIM, AND SLEW HIM. H# 36 THY SERVANT SLEW BOTH THE LION AND THE BEAR: AND THIS UNCIRCUMCISEDL PHILISTINE SHALL BE AS ONE OF THEM, SEEING HE HATH DEFIED THE ARMIES OF THE LIVING GOD.J# 37 DAVID SAID MOREOVER, THE LORD THAT DELIVERED ME OUT OF THE PAW OF THEL LION, AND OUT OF THE PAW OF THE BEAR, HE WILL DELIVER ME OUT OF THE HAND OFJ THIS PHILISTINE. AND SAUL SAID UNTO DAVID, GO, AND THE LORD BE WITH THEE.M# 38 AND SAUL ARMED DAVID WITH HIS ARMOUR, AND HE PUT AN HELMET OF BRASS UPONE1 HIS HEAD; ALSO HE ARMED HIM WITH A COAT OF MAIL.AM# 39 AND DAVID GIRDED HIS SWORD UPON HIS ARMOUR, AND HE ASSAYED TO GO; FOR HEEK HAD NOT PROVED IT. AND DAVID SAID UNTO SAUL, I CANNOT GO WITH THESE; FOR ID2 HAVE NOT PROVED THEM. AND DAVID PUT THEM OFF HIM.L# 40 AND HE TOOK HIS STAFF IN HIS HAND, AND CHOSE HIM FIVE SMOOTH STONES OUTM OF THE BROOK, AND PUT THEM IN A SHEPHERDS BAG WHICH HE HAD, EVEN IN A SCRIP;BC AND HIS SLING WAS IN HIS HAND: AND HE DREW NEAR TO THE PHILISTINE.NJ# 41 AND THE PHILISTINE CAME ON AND DREW NEAR UNTO DAVID; AND THE MAN THAT! BARE THE SHIELD WENT BEFORE HIM.NK# 42 AND WHEN THE PHILISTINE LOOKED ABOUT, AND SAW DAVID, HE DISDAINED HIM:D> FOR HE WAS BUT A YOUTH, AND RUDDY, AND OF A FAIR COUNTENANCE.K# 43 AND THE PHILISTINE SAID UNTO DAVID, AM I A DOG, THAT THOU COMEST TO MEH: WITH STAVES? AND THE PHILISTINE CURSED DAVID BY HIS GODS.L# 44 AND THE PHILISTINE SAID TO DAVID, COME TO ME, AND I WILL GIVE THY FLESH; UNTO THE FOWLS OF THE AIR, AND TO THE BEASTS OF THE FIELD.IK# 45 THEN SAID DAVID TO THE PHILISTINE, THOU COMEST TO ME WITH A SWORD, ANDNL WITH A SPEAR, AND WITH A SHIELD: BUT I COME TO THEE IN THE NAME OF THE LORDB OF HOSTS, THE GOD OF THE ARMIES OF ISRAEL, WHOM THOU HAST DEFIED.I# 46 THIS DAY WILL THE LORD DELIVER THEE INTO MINE HAND; AND I WILL SMITECN THEE, AND TAKE THINE HEAD FROM THEE; AND I WILL GIVE THE CARCASES OF THE HOSTN OF THE PHILISTINES THIS DAY UNTO THE FOWLS OF THE AIR, AND TO THE WILD BEASTSI OF THE EARTH; THAT ALL THE EARTH MAY KNOW THAT THERE IS A GOD IN ISRAEL.TM# 47 AND ALL THIS ASSEMBLY SHALL KNOW THAT THE LORD SAVETH NOT WITH SWORD AND I SPEAR: FOR THE BATTLE IS THE LORDS, AND HE WILL GIVE YOU INTO OUR HANDS. L# 48 AND IT CAME TO PASS, WHEN THE PHILISTINE AROSE, AND CAME, AND DREW NIGHH TO MEET DAVID, THAT DAVID HASTENED, AND RAN TOWARD THE ARMY TO MEET THE PHILISTINE.J# 49 AND DAVID PUT HIS HAND IN HIS BAG, AND TOOK THENCE A STONE, AND SLANGK IT, AND SMOTE THE PHILISTINE IN HIS FOREHEAD, THAT THE STONE SUNK INTO HIS 2 FOREHEAD; AND HE FELL UPON HIS FACE TO THE EARTH.J# 50 SO DAVID PREVAILED OVER THE PHILISTINE WITH A SLING AND WITH A STONE,N AND SMOTE THE PHILISTINE, AND SLEW HIM; BUT THERE WAS NO SWORD IN THE HAND OF DAVID.SL# 51 THEREFORE DAVID RAN, AND STOOD UPON THE PHILISTINE, AND TOOK HIS SWORD,J AND DREW IT OUT OF THE SHEATH THEREOF, AND SLEW HIM, AND CUT OFF HIS HEADL THEREWITH. AND WHEN THE PHILISTINES SAW THEIR CHAMPION WAS DEAD, THEY FLED.K# 52 AND THE MEN OF ISRAEL AND OF JUDAH AROSE, AND00g.)D%5%T6%! ! SHOUTED, AND PURSUED THEDK PHILISTINES, UNTIL THOU COME TO THE VALLEY, AND TO THE GATES OF EKRON. ANDTK THE WOUNDED OF THE PHILISTINES FELL DOWN BY THE WAY TO SHAARAIM, EVEN UNTOB GATH, AND UNTO EKRON.L# 53 AND THE CHILDREN OF ISRAEL RETURNED FROM CHASING AFTER THE PHILISTINES, AND THEY SPOILED THEIR TENTS.L# 54 AND DAVID TOOK THE HEAD OF THE PHILISTINE, AND BROUGHT IT TO JERUSALEM;# BUT HE PUT HIS ARMOUR IN HIS TENT.CJ# 55 AND WHEN SAUL SAW DAVID GO FORTH AGAINST THE PHILISTINE, HE SAID UNTOJ ABNER, THE CAPTAIN OF THE HOST, ABNER, WHOSE SON IS THIS YOUTH? AND ABNER1 SAID, AS THY SOUL LIVETH, O KING, I CANNOT TELL.H@# 56 AND THE KING SAID, ENQUIRE THOU WHOSE SON THE STRIPLING IS.K# 57 AND AS DAVID RETURNED FROM THE SLAUGHTER OF THE PHILISTINE, ABNER TOOK N HIM, AND BROUGHT HIM BEFORE SAUL WITH THE HEAD OF THE PHILISTINE IN HIS HAND.H# 58 AND SAUL SAID TO HIM, WHOSE SON ART THOU, THOU YOUNG MAN? AND DAVID> ANSWERED, I AM THE SON OF THY SERVANT JESSE THE BETHLEHEMITE. = CHAPTER 18 IL# 1 AND IT CAME TO PASS, WHEN HE HAD MADE AN END OF SPEAKING UNTO SAUL, THATM THE SOUL OF JONATHAN WAS KNIT WITH THE SOUL OF DAVID, AND JONATHAN LOVED HIMD AS HIS OWN SOUL.EH# 2 AND SAUL TOOK HIM THAT DAY, AND WOULD LET HIM GO NO MORE HOME TO HIS FATHERS HOUSE.NL# 3 THEN JONATHAN AND DAVID MADE A COVENANT, BECAUSE HE LOVED HIM AS HIS OWN SOUL.L# 4 AND JONATHAN STRIPPED HIMSELF OF THE ROBE THAT WAS UPON HIM, AND GAVE ITJ TO DAVID, AND HIS GARMENTS, EVEN TO HIS SWORD, AND TO HIS BOW, AND TO HIS GIRDLE.G# 5 AND DAVID WENT OUT WHITHERSOEVER SAUL SENT HIM, AND BEHAVED HIMSELFTI WISELY: AND SAUL SET HIM OVER THE MEN OF WAR, AND HE WAS ACCEPTED IN THEDB SIGHT OF ALL THE PEOPLE, AND ALSO IN THE SIGHT OF SAULS SERVANTS.F# 6 AND IT CAME TO PASS AS THEY CAME, WHEN DAVID WAS RETURNED FROM THEN SLAUGHTER OF THE PHILISTINE, THAT THE WOMEN CAME OUT OF ALL CITIES OF ISRAEL,I SINGING AND DANCING, TO MEET KING SAUL, WITH TABRETS, WITH JOY, AND WITHS INSTRUMENTS OF MUSICK.OJ# 7 AND THE WOMEN ANSWERED ONE ANOTHER AS THEY PLAYED, AND SAID, SAUL HATH2 SLAIN HIS THOUSANDS, AND DAVID HIS TEN THOUSANDS.M# 8 AND SAUL WAS VERY WROTH, AND THE SAYING DISPLEASED HIM; AND HE SAID, THEYHI HAVE ASCRIBED UNTO DAVID TEN THOUSANDS, AND TO ME THEY HAVE ASCRIBED BUT 6 THOUSANDS: AND WHAT CAN HE HAVE MORE BUT THE KINGDOM?2# 9 AND SAUL EYED DAVID FROM THAT DAY AND FORWARD.J# 10 AND IT CAME TO PASS ON THE MORROW, THAT THE EVIL SPIRIT FROM GOD CAMEN UPON SAUL, AND HE PROPHESIED IN THE MIDST OF THE HOUSE: AND DAVID PLAYED WITHD HIS HAND, AS AT OTHER TIMES: AND THERE WAS A JAVELIN IN SAULS HAND.K# 11 AND SAUL CAST THE JAVELIN; FOR HE SAID, I WILL SMITE DAVID EVEN TO THED; WALL WITH IT. AND DAVID AVOIDED OUT OF HIS PRESENCE TWICE.AI# 12 AND SAUL WAS AFRAID OF DAVID, BECAUSE THE LORD WAS WITH HIM, AND WASR DEPARTED FROM SAUL.I# 13 THEREFORE SAUL REMOVED HIM FROM HIM, AND MADE HIM HIS CAPTAIN OVER AO9 THOUSAND; AND HE WENT OUT AND CAME IN BEFORE THE PEOPLE.LL# 14 AND DAVID BEHAVED HIMSELF WISELY IN ALL HIS WAYS; AND THE LORD WAS WITH HIM.TH# 15 WHEREFORE WHEN SAUL SAW THAT HE BEHAVED HIMSELF VERY WISELY, HE WAS AFRAID OF HIM.EJ# 16 BUT ALL ISRAEL AND JUDAH LOVED DAVID, BECAUSE HE WENT OUT AND CAME IN BEFORE THEM.EL# 17 AND SAUL SAID TO DAVID, BEHOLD MY ELDER DAUGHTER MERAB, HER WILL I GIVEL THEE TO WIFE: ONLY BE THOU VALIANT FOR ME, AND FIGHT THE LORDS BATTLES. FORN SAUL SAID, LET NOT MINE HAND BE UPON HIM, BUT LET THE HAND OF THE PHILISTINES BE UPON HIM.DK# 18 AND DAVID SAID UNTO SAUL, WHO AM I? AND WHAT IS MY LIFE, OR MY FATHERS; FAMILY IN ISRAEL, THAT I SHOULD BE SON IN LAW TO THE KING?EJ# 19 BUT IT CAME TO PASS AT THE TIME WHEN MERAB SAULS DAUGHTER SHOULD HAVEM BEEN GIVEN TO DAVID, THAT SHE WAS GIVEN UNTO ADRIEL THE MEHOLATHITE TO WIFE.LM# 20 AND MICHAL SAULS DAUGHTER LOVED DAVID: AND THEY TOLD SAUL, AND THE THING PLEASED HIM.HL# 21 AND SAUL SAID, I WILL GIVE HIM HER, THAT SHE MAY BE A SNARE TO HIM, ANDL THAT THE HAND OF THE PHILISTINES MAY BE AGAINST HIM. WHEREFORE SAUL SAID TOE DAVID, THOU SHALT THIS DA00g.Y.<%X>%+%O-%TADATADATAY BE MY SON IN LAW IN THE ONE OF THE TWAIN.HJ# 22 AND SAUL COMMANDED HIS SERVANTS, SAYING, COMMUNE WITH DAVID SECRETLY,J AND SAY, BEHOLD, THE KING HATH DELIGHT IN THEE, AND ALL HIS SERVANTS LOVE- THEE: NOW THEREFORE BE THE KINGS SON IN LAW.MI# 23 AND SAULS SERVANTS SPAKE THOSE WORDS IN THE EARS OF DAVID. AND DAVIDSN SAID, SEEMETH IT TO YOU A LIGHT THING TO BE A KINGS SON IN LAW, SEEING THAT I% AM A POOR MAN, AND LIGHTLY ESTEEMED?EK# 24 AND THE SERVANTS OF SAUL TOLD HIM, SAYING, ON THIS MANNER SPAKE DAVID.MI# 25 AND SAUL SAID, THUS SHALL YE SAY TO DAVID, THE KING DESIRETH NOT ANYSI DOWRY, BUT AN HUNDRED FORESKINS OF THE PHILISTINES, TO BE AVENGED OF THEIF KINGS ENEMIES. BUT SAUL THOUGHT TO MAKE DAVID FALL BY THE HAND OF THE PHILISTINES.K# 26 AND WHEN HIS SERVANTS TOLD DAVID THESE WORDS, IT PLEASED DAVID WELL TOS8 BE THE KINGS SON IN LAW: AND THE DAYS WERE NOT EXPIRED.D# 27 WHEREFORE DAVID AROSE AND WENT, HE AND HIS MEN, AND SLEW OF THEN PHILISTINES TWO HUNDRED MEN; AND DAVID BROUGHT THEIR FORESKINS, AND THEY GAVEJ THEM IN FULL TALE TO THE KING, THAT HE MIGHT BE THE KINGS SON IN LAW. AND+ SAUL GAVE HIM MICHAL HIS DAUGHTER TO WIFE.EH# 28 AND SAUL SAW AND KNEW THAT THE LORD WAS WITH DAVID, AND THAT MICHAL SAULS DAUGHTER LOVED HIM.L# 29 AND SAUL WAS YET THE MORE AFRAID OF DAVID; AND SAUL BECAME DAVIDS ENEMY CONTINUALLY.GI# 30 THEN THE PRINCES OF THE PHILISTINES WENT FORTH: AND IT CAME TO PASS,DK AFTER THEY WENT FORTH, THAT DAVID BEHAVED HIMSELF MORE WISELY THAN ALL THEI4 SERVANTS OF SAUL; SO THAT HIS NAME WAS MUCH SET BY. = CHAPTER 19 IJ# 1 AND SAUL SPAKE TO JONATHAN HIS SON, AND TO ALL HIS SERVANTS, THAT THEY SHOULD KILL DAVID.8L# 2 BUT JONATHAN SAULS SON DELIGHTED MUCH IN DAVID: AND JONATHAN TOLD DAVID,N SAYING, SAUL MY FATHER SEEKETH TO KILL THEE: NOW THEREFORE, I PRAY THEE, TAKEI HEED TO THYSELF UNTIL THE MORNING, AND ABIDE IN A SECRET PLACE, AND HIDEW THYSELF:AM# 3 AND I WILL GO OUT AND STAND BESIDE MY FATHER IN THE FIELD WHERE THOU ART,IL AND I WILL COMMUNE WITH MY FATHER OF THEE; AND WHAT I SEE, THAT I WILL TELL THEE.M# 4 AND JONATHAN SPAKE GOOD OF DAVID UNTO SAUL HIS FATHER, AND SAID UNTO HIM,M LET NOT THE KING SIN AGAINST HIS SERVANT, AGAINST DAVID; BECAUSE HE HATH NOTOM SINNED AGAINST THEE, AND BECAUSE HIS WORKS HAVE BEEN TO THEE-WARD VERY GOOD:,I# 5 FOR HE DID PUT HIS LIFE IN HIS HAND, AND SLEW THE PHILISTINE, AND THEEI LORD WROUGHT A GREAT SALVATION FOR ALL ISRAEL: THOU SAWEST IT, AND DIDSTAL REJOICE: WHEREFORE THEN WILT THOU SIN AGAINST INNOCENT BLOOD, TO SLAY DAVID WITHOUT A CAUSE?HI# 6 AND SAUL HEARKENED UNTO THE VOICE OF JONATHAN: AND SAUL SWARE, AS THEF$ LORD LIVETH, HE SHALL NOT BE SLAIN.L# 7 AND JONATHAN CALLED DAVID, AND JONATHAN SHEWED HIM ALL THOSE THINGS. ANDN JONATHAN BROUGHT DAVID TO SAUL, AND HE WAS IN HIS PRESENCE, AS IN TIMES PAST.D# 8 AND THERE WAS WAR AGAIN: AND DAVID WENT OUT, AND FOUGHT WITH THEK PHILISTINES, AND SLEW THEM WITH A GREAT SLAUGHTER; AND THEY FLED FROM HIM.JK# 9 AND THE EVIL SPIRIT FROM THE LORD WAS UPON SAUL, AS HE SAT IN HIS HOUSET> WITH HIS JAVELIN IN HIS HAND: AND DAVID PLAYED WITH HIS HAND.M# 10 AND SAUL SOUGHT TO SMITE DAVID EVEN TO THE WALL WITH THE JAVELIN: BUT HEHL SLIPPED AWAY OUT OF SAULS PRESENCE, AND HE SMOTE THE JAVELIN INTO THE WALL:( AND DAVID FLED, AND ESCAPED THAT NIGHT.K# 11 SAUL ALSO SENT MESSENGERS UNTO DAVIDS HOUSE, TO WATCH HIM, AND TO SLAYFN HIM IN THE MORNING: AND MICHAL DAVIDS WIFE TOLD HIM, SAYING, IF THOU SAVE NOT2 THY LIFE TO NIGHT, TO MORROW THOU SHALT BE SLAIN.J# 12 SO MICHAL LET DAVID DOWN THROUGH A WINDOW: AND HE WENT, AND FLED, AND ESCAPED. J# 13 AND MICHAL TOOK AN IMAGE, AND LAID IT IN THE BED, AND PUT A PILLOW OF9 GOATS HAIR FOR HIS BOLSTER, AND COVERED IT WITH A CLOTH.DG# 14 AND WHEN SAUL SENT MESSENGERS TO TAKE DAVID, SHE SAID, HE IS SICK.IM# 15 AND SAUL SENT THE MESSENGERS AGAIN TO SEE DAVID, SAYING, BRING HIM UP TOA$ ME IN THE BED, THAT I MAY SLAY HIM.L# 16 AND WHEN THE MESSENGERS WERE COME IN, BEHOLD, THERE WAS AN IMAGE IN THE2 BED, WITH A PILLOW OF GOATS HAIR FOR HIS 00g/)D%5%T6%! !BOLSTER.K# 17 AND SAUL SAID UNTO MICHAL, WHY HAST THOU DECEIVED ME SO, AND SENT AWAYAK MINE ENEMY, THAT HE IS ESCAPED? AND MICHAL ANSWERED SAUL, HE SAID UNTO ME,S# LET ME GO; WHY SHOULD I KILL THEE? J# 18 SO DAVID FLED, AND ESCAPED, AND CAME TO SAMUEL TO RAMAH, AND TOLD HIMK ALL THAT SAUL HAD DONE TO HIM. AND HE AND SAMUEL WENT AND DWELT IN NAIOTH.MG# 19 AND IT WAS TOLD SAUL, SAYING, BEHOLD, DAVID IS AT NAIOTH IN RAMAH.EM# 20 AND SAUL SENT MESSENGERS TO TAKE DAVID: AND WHEN THEY SAW THE COMPANY OFIJ THE PROPHETS PROPHESYING, AND SAMUEL STANDING AS APPOINTED OVER THEM, THEI SPIRIT OF GOD WAS UPON THE MESSENGERS OF SAUL, AND THEY ALSO PROPHESIED. M# 21 AND WHEN IT WAS TOLD SAUL, HE SENT OTHER MESSENGERS, AND THEY PROPHESIEDSM LIKEWISE. AND SAUL SENT MESSENGERS AGAIN THE THIRD TIME, AND THEY PROPHESIEDM ALSO.K# 22 THEN WENT HE ALSO TO RAMAH, AND CAME TO A GREAT WELL THAT IS IN SECHU:HN AND HE ASKED AND SAID, WHERE ARE SAMUEL AND DAVID? AND ONE SAID, BEHOLD, THEY BE AT NAIOTH IN RAMAH.MK# 23 AND HE WENT THITHER TO NAIOTH IN RAMAH: AND THE SPIRIT OF GOD WAS UPONEL HIM ALSO, AND HE WENT ON, AND PROPHESIED, UNTIL HE CAME TO NAIOTH IN RAMAH.J# 24 AND HE STRIPPED OFF HIS CLOTHES ALSO, AND PROPHESIED BEFORE SAMUEL INK LIKE MANNER, AND LAY DOWN NAKED ALL THAT DAY AND ALL THAT NIGHT. WHEREFOREP+ THEY SAY, IS SAUL ALSO AMONG THE PROPHETS? = CHAPTER 20 K# 1 AND DAVID FLED FROM NAIOTH IN RAMAH, AND CAME AND SAID BEFORE JONATHAN,AG WHAT HAVE I DONE? WHAT IS MINE INIQUITY? AND WHAT IS MY SIN BEFORE THYH! FATHER, THAT HE SEEKETH MY LIFE?AK# 2 AND HE SAID UNTO HIM, GOD FORBID; THOU SHALT NOT DIE: BEHOLD, MY FATHERTL WILL DO NOTHING EITHER GREAT OR SMALL, BUT THAT HE WILL SHEW IT ME: AND WHY8 SHOULD MY FATHER HIDE THIS THING FROM ME? IT IS NOT SO.K# 3 AND DAVID SWARE MOREOVER, AND SAID, THY FATHER CERTAINLY KNOWETH THAT INJ HAVE FOUND GRACE IN THINE EYES; AND HE SAITH, LET NOT JONATHAN KNOW THIS,J LEST HE BE GRIEVED: BUT TRULY AS THE LORD LIVETH, AND AS THY SOUL LIVETH,* THERE IS BUT A STEP BETWEEN ME AND DEATH.L# 4 THEN SAID JONATHAN UNTO DAVID, WHATSOEVER THY SOUL DESIRETH, I WILL EVEN DO IT FOR THEE.J# 5 AND DAVID SAID UNTO JONATHAN, BEHOLD, TO MORROW IS THE NEW MOON, AND IM SHOULD NOT FAIL TO SIT WITH THE KING AT MEAT: BUT LET ME GO, THAT I MAY HIDEI0 MYSELF IN THE FIELD UNTO THE THIRD DAY AT EVEN.M# 6 IF THY FATHER AT ALL MISS ME, THEN SAY, DAVID EARNESTLY ASKED LEAVE OF ME I THAT HE MIGHT RUN TO BETHLEHEM HIS CITY: FOR THERE IS A YEARLY SACRIFICEO THERE FOR ALL THE FAMILY.J# 7 IF HE SAY THUS, IT IS WELL; THY SERVANT SHALL HAVE PEACE: BUT IF HE BE9 VERY WROTH, THEN BE SURE THAT EVIL IS DETERMINED BY HIM.IL# 8 THEREFORE THOU SHALT DEAL KINDLY WITH THY SERVANT; FOR THOU HAST BROUGHTM THY SERVANT INTO A COVENANT OF THE LORD WITH THEE: NOTWITHSTANDING, IF THEREEK BE IN ME INIQUITY, SLAY ME THYSELF; FOR WHY SHOULDEST THOU BRING ME TO THYY FATHER?M# 9 AND JONATHAN SAID, FAR BE IT FROM THEE: FOR IF I KNEW CERTAINLY THAT EVIL I WERE DETERMINED BY MY FATHER TO COME UPON THEE, THEN WOULD NOT I TELL ITI THEE?J# 10 THEN SAID DAVID TO JONATHAN, WHO SHALL TELL ME? OR WHAT IF THY FATHER ANSWER THEE ROUGHLY?MJ# 11 AND JONATHAN SAID UNTO DAVID, COME, AND LET US GO OUT INTO THE FIELD./ AND THEY WENT OUT BOTH OF THEM INTO THE FIELD.TL# 12 AND JONATHAN SAID UNTO DAVID, O LORD GOD OF ISRAEL, WHEN I HAVE SOUNDEDL MY FATHER ABOUT TO MORROW ANY TIME, OR THE THIRD DAY, AND, BEHOLD, IF THEREG BE GOOD TOWARD DAVID, AND I THEN SEND NOT UNTO THEE, AND SHEW IT THEE;TL# 13 THE LORD DO SO AND MUCH MORE TO JONATHAN: BUT IF IT PLEASE MY FATHER TOM DO THEE EVIL, THEN I WILL SHEW IT THEE, AND SEND THEE AWAY, THAT THOU MAYESTH GO IN PEACE: AND THE LORD BE WITH THEE, AS HE HATH BEEN WITH MY FATHER.I# 14 AND THOU SHALT NOT ONLY WHILE YET I LIVE SHEW ME THE KINDNESS OF THEU LORD, THAT I DIE NOT:M# 15 BUT ALSO THOU SHALT NOT CUT OFF THY KINDNESS FROM MY HOUSE FOR EVER: NO, L NOT WHEN THE LORD HATH CUT OFF THE ENEMIES OF DAVID EVERY ONE FROM THE FACE OF THE EARTH.I# 16 SO JONATHAN MADE A COVENANT WITH 00g/Y.<%X>%+%O-%TADATADATATHE HOUSE OF DAVID, SAYING, LET THEF4 LORD EVEN REQUIRE IT AT THE HAND OF DAVIDS ENEMIES.K# 17 AND JONATHAN CAUSED DAVID TO SWEAR AGAIN, BECAUSE HE LOVED HIM: FOR HEA$ LOVED HIM AS HE LOVED HIS OWN SOUL.K# 18 THEN JONATHAN SAID TO DAVID, TO MORROW IS THE NEW MOON: AND THOU SHALTT+ BE MISSED, BECAUSE THY SEAT WILL BE EMPTY.CK# 19 AND WHEN THOU HAST STAYED THREE DAYS, THEN THOU SHALT GO DOWN QUICKLY, M AND COME TO THE PLACE WHERE THOU DIDST HIDE THYSELF WHEN THE BUSINESS WAS INH* HAND, AND SHALT REMAIN BY THE STONE EZEL.M# 20 AND I WILL SHOOT THREE ARROWS ON THE SIDE THEREOF, AS THOUGH I SHOT AT AD MARK.J# 21 AND, BEHOLD, I WILL SEND A LAD, SAYING, GO, FIND OUT THE ARROWS. IF IN EXPRESSLY SAY UNTO THE LAD, BEHOLD, THE ARROWS ARE ON THIS SIDE OF THEE, TAKEK THEM; THEN COME THOU: FOR THERE IS PEACE TO THEE, AND NO HURT; AS THE LORDW LIVETH.H# 22 BUT IF I SAY THUS UNTO THE YOUNG MAN, BEHOLD, THE ARROWS ARE BEYOND4 THEE; GO THY WAY: FOR THE LORD HATH SENT THEE AWAY.L# 23 AND AS TOUCHING THE MATTER WHICH THOU AND I HAVE SPOKEN OF, BEHOLD, THE& LORD BE BETWEEN THEE AND ME FOR EVER.K# 24 SO DAVID HID HIMSELF IN THE FIELD: AND WHEN THE NEW MOON WAS COME, THE  KING SAT HIM DOWN TO EAT MEAT.SK# 25 AND THE KING SAT UPON HIS SEAT, AS AT OTHER TIMES, EVEN UPON A SEAT BYEL THE WALL: AND JONATHAN AROSE, AND ABNER SAT BY SAULS SIDE, AND DAVIDS PLACE WAS EMPTY. D# 26 NEVERTHELESS SAUL SPAKE NOT ANY THING THAT DAY: FOR HE THOUGHT,F SOMETHING HATH BEFALLEN HIM, HE IS NOT CLEAN; SURELY HE IS NOT CLEAN.G# 27 AND IT CAME TO PASS ON THE MORROW, WHICH WAS THE SECOND DAY OF THENI MONTH, THAT DAVIDS PLACE WAS EMPTY: AND SAUL SAID UNTO JONATHAN HIS SON,ON WHEREFORE COMETH NOT THE SON OF JESSE TO MEAT, NEITHER YESTERDAY, NOR TO DAY?K# 28 AND JONATHAN ANSWERED SAUL, DAVID EARNESTLY ASKED LEAVE OF ME TO GO TOS BETHLEHEM:SL# 29 AND HE SAID, LET ME GO, I PRAY THEE; FOR OUR FAMILY HATH A SACRIFICE INJ THE CITY; AND MY BROTHER, HE HATH COMMANDED ME TO BE THERE: AND NOW, IF IJ HAVE FOUND FAVOUR IN THINE EYES, LET ME GET AWAY, I PRAY THEE, AND SEE MY8 BRETHREN. THEREFORE HE COMETH NOT UNTO THE KINGS TABLE.I# 30 THEN SAULS ANGER WAS KINDLED AGAINST JONATHAN, AND HE SAID UNTO HIM, H THOU SON OF THE PERVERSE REBELLIOUS WOMAN, DO NOT I KNOW THAT THOU HASTN CHOSEN THE SON OF JESSE TO THINE OWN CONFUSION, AND UNTO THE CONFUSION OF THY MOTHERS NAKEDNESS?GK# 31 FOR AS LONG AS THE SON OF JESSE LIVETH UPON THE GROUND, THOU SHALT NOT,K BE ESTABLISHED, NOR THY KINGDOM. WHEREFORE NOW SEND AND FETCH HIM UNTO ME,  FOR HE SHALL SURELY DIE.AH# 32 AND JONATHAN ANSWERED SAUL HIS FATHER, AND SAID UNTO HIM, WHEREFORE& SHALL HE BE SLAIN? WHAT HATH HE DONE?L# 33 AND SAUL CAST A JAVELIN AT HIM TO SMITE HIM: WHEREBY JONATHAN KNEW THAT/ IT WAS DETERMINED OF HIS FATHER TO SLAY DAVID.OJ# 34 SO JONATHAN AROSE FROM THE TABLE IN FIERCE ANGER, AND DID EAT NO MEATN THE SECOND DAY OF THE MONTH: FOR HE WAS GRIEVED FOR DAVID, BECAUSE HIS FATHER HAD DONE HIM SHAME.H# 35 AND IT CAME TO PASS IN THE MORNING, THAT JONATHAN WENT OUT INTO THEC FIELD AT THE TIME APPOINTED WITH DAVID, AND A LITTLE LAD WITH HIM.AJ# 36 AND HE SAID UNTO HIS LAD, RUN, FIND OUT NOW THE ARROWS WHICH I SHOOT.1 AND AS THE LAD RAN, HE SHOT AN ARROW BEYOND HIM.HK# 37 AND WHEN THE LAD WAS COME TO THE PLACE OF THE ARROW WHICH JONATHAN HADHL SHOT, JONATHAN CRIED AFTER THE LAD, AND SAID, IS NOT THE ARROW BEYOND THEE?G# 38 AND JONATHAN CRIED AFTER THE LAD, MAKE SPEED, HASTE, STAY NOT. AND > JONATHANS LAD GATHERED UP THE ARROWS, AND CAME TO HIS MASTER.M# 39 BUT THE LAD KNEW NOT ANY THING: ONLY JONATHAN AND DAVID KNEW THE MATTER. I# 40 AND JONATHAN GAVE HIS ARTILLERY UNTO HIS LAD, AND SAID UNTO HIM, GO,C CARRY THEM TO THE CITY.K# 41 AND AS SOON AS THE LAD WAS GONE, DAVID AROSE OUT OF A PLACE TOWARD THELN SOUTH, AND FELL ON HIS FACE TO THE GROUND, AND BOWED HIMSELF THREE TIMES: ANDJ THEY KISSED ONE ANOTHER, AND WEPT ONE WITH ANOTHER, UNTIL DAVID EXCEEDED.M# 42 AND JONATHAN SAID TO DAVID, GO IN PEACE, FORASMUCH AS WE HAVE SWORN BOTHML OF US IN THE NAME OF THE LORD, 00g/)D%5%T6%! !SAYING, THE LORD BE BETWEEN ME AND THEE, ANDF BETWEEN MY SEED AND THY SEED FOR EVER. AND HE AROSE AND DEPARTED: AND JONATHAN WENT INTO THE CITY.T = CHAPTER 21 .L# 1 THEN CAME DAVID TO NOB TO AHIMELECH THE PRIEST: AND AHIMELECH WAS AFRAIDK AT THE MEETING OF DAVID, AND SAID UNTO HIM, WHY ART THOU ALONE, AND NO MANA WITH THEE?SJ# 2 AND DAVID SAID UNTO AHIMELECH THE PRIEST, THE KING HATH COMMANDED ME AK BUSINESS, AND HATH SAID UNTO ME, LET NO MAN KNOW ANY THING OF THE BUSINESSIM WHEREABOUT I SEND THEE, AND WHAT I HAVE COMMANDED THEE: AND I HAVE APPOINTEDM& MY SERVANTS TO SUCH AND SUCH A PLACE.K# 3 NOW THEREFORE WHAT IS UNDER THINE HAND? GIVE ME FIVE LOAVES OF BREAD INN% MINE HAND, OR WHAT THERE IS PRESENT.EK# 4 AND THE PRIEST ANSWERED DAVID, AND SAID, THERE IS NO COMMON BREAD UNDERYN MINE HAND, BUT THERE IS HALLOWED BREAD; IF THE YOUNG MEN HAVE KEPT THEMSELVES AT LEAST FROM WOMEN. K# 5 AND DAVID ANSWERED THE PRIEST, AND SAID UNTO HIM, OF A TRUTH WOMEN HAVEFL BEEN KEPT FROM US ABOUT THESE THREE DAYS, SINCE I CAME OUT, AND THE VESSELSL OF THE YOUNG MEN ARE HOLY, AND THE BREAD IS IN A MANNER COMMON, YEA, THOUGH+ IT WERE SANCTIFIED THIS DAY IN THE VESSEL.FK# 6 SO THE PRIEST GAVE HIM HALLOWED BREAD: FOR THERE WAS NO BREAD THERE BUTEL THE SHEWBREAD, THAT WAS TAKEN FROM BEFORE THE LORD, TO PUT HOT BREAD IN THE DAY WHEN IT WAS TAKEN AWAY.J# 7 NOW A CERTAIN MAN OF THE SERVANTS OF SAUL WAS THERE THAT DAY, DETAINEDH BEFORE THE LORD; AND HIS NAME WAS DOEG, AN EDOMITE, THE CHIEFEST OF THE HERDMEN THAT BELONGED TO SAUL.UI# 8 AND DAVID SAID UNTO AHIMELECH, AND IS THERE NOT HERE UNDER THINE HANDRL SPEAR OR SWORD? FOR I HAVE NEITHER BROUGHT MY SWORD NOR MY WEAPONS WITH ME,+ BECAUSE THE KINGS BUSINESS REQUIRED HASTE.SG# 9 AND THE PRIEST SAID, THE SWORD OF GOLIATH THE PHILISTINE, WHOM THOU,L SLEWEST IN THE VALLEY OF ELAH, BEHOLD, IT IS HERE WRAPPED IN A CLOTH BEHINDL THE EPHOD: IF THOU WILT TAKE THAT, TAKE IT: FOR THERE IS NO OTHER SAVE THAT; HERE. AND DAVID SAID, THERE IS NONE LIKE THAT; GIVE IT ME.AK# 10 AND DAVID AROSE AND FLED THAT DAY FOR FEAR OF SAUL, AND WENT TO ACHISHE THE KING OF GATH.L# 11 AND THE SERVANTS OF ACHISH SAID UNTO HIM, IS NOT THIS DAVID THE KING OFJ THE LAND? DID THEY NOT SING ONE TO ANOTHER OF HIM IN DANCES, SAYING, SAUL7 HATH SLAIN HIS THOUSANDS, AND DAVID HIS TEN THOUSANDS?HG# 12 AND DAVID LAID UP THESE WORDS IN HIS HEART, AND WAS SORE AFRAID OFD ACHISH THE KING OF GATH.AI# 13 AND HE CHANGED HIS BEHAVIOUR BEFORE THEM, AND FEIGNED HIMSELF MAD INEN THEIR HANDS, AND SCRABBLED ON THE DOORS OF THE GATE, AND LET HIS SPITTLE FALL DOWN UPON HIS BEARD.M# 14 THEN SAID ACHISH UNTO HIS SERVANTS, LO, YE SEE THE MAN IS MAD: WHEREFORED THEN HAVE YE BROUGHT HIM TO ME?M# 15 HAVE I NEED OF MAD MEN, THAT YE HAVE BROUGHT THIS FELLOW TO PLAY THE MADU: MAN IN MY PRESENCE? SHALL THIS FELLOW COME INTO MY HOUSE? = CHAPTER 22 N# 1 DAVID THEREFORE DEPARTED THENCE, AND ESCAPED TO THE CAVE ADULLAM: AND WHENK HIS BRETHREN AND ALL HIS FATHERS HOUSE HEARD IT, THEY WENT DOWN THITHER TO  HIM.EK# 2 AND EVERY ONE THAT WAS IN DISTRESS, AND EVERY ONE THAT WAS IN DEBT, ANDM EVERY ONE THAT WAS DISCONTENTED, GATHERED THEMSELVES UNTO HIM; AND HE BECAMEE A CAPTAIN OVER THEM: AND THERE WERE WITH HIM ABOUT FOUR HUNDRED MEN.HI# 3 AND DAVID WENT THENCE TO MIZPEH OF MOAB: AND HE SAID UNTO THE KING OFEM MOAB, LET MY FATHER AND MY MOTHER, I PRAY THEE, COME FORTH, AND BE WITH YOU,A% TILL I KNOW WHAT GOD WILL DO FOR ME.NL# 4 AND HE BROUGHT THEM BEFORE THE KING OF MOAB: AND THEY DWELT WITH HIM ALL& THE WHILE THAT DAVID WAS IN THE HOLD.K# 5 AND THE PROPHET GAD SAID UNTO DAVID, ABIDE NOT IN THE HOLD; DEPART, ANDTH GET THEE INTO THE LAND OF JUDAH. THEN DAVID DEPARTED, AND CAME INTO THE FOREST OF HARETH.I# 6 WHEN SAUL HEARD THAT DAVID WAS DISCOVERED, AND THE MEN THAT WERE WITHDN HIM, (NOW SAUL ABODE IN GIBEAH UNDER A TREE IN RAMAH, HAVING HIS SPEAR IN HIS5 HAND, AND ALL HIS SERVANTS WERE STANDING ABOUT HIM;)DG# 7 THEN SAUL SAID UNTO HIS SERVANTS THAT STOOD ABOUT HIM, HEAR NOW, YELN BENJAMITES; W00g/Y.<%X>%+%O-%TADATADATAILL THE SON OF JESSE GIVE EVERY ONE OF YOU FIELDS AND VINEYARDS,B AND MAKE YOU ALL CAPTAINS OF THOUSANDS, AND CAPTAINS OF HUNDREDS;M# 8 THAT ALL OF YOU HAVE CONSPIRED AGAINST ME, AND THERE IS NONE THAT SHEWETHN ME THAT MY SON HATH MADE A LEAGUE WITH THE SON OF JESSE, AND THERE IS NONE OFL YOU THAT IS SORRY FOR ME, OR SHEWETH UNTO ME THAT MY SON HATH STIRRED UP MY4 SERVANT AGAINST ME, TO LIE IN WAIT, AS AT THIS DAY?L# 9 THEN ANSWERED DOEG THE EDOMITE, WHICH WAS SET OVER THE SERVANTS OF SAUL,H AND SAID, I SAW THE SON OF JESSE COMING TO NOB, TO AHIMELECH THE SON OF AHITUB.M# 10 AND HE ENQUIRED OF THE LORD FOR HIM, AND GAVE HIM VICTUALS, AND GAVE HIM % THE SWORD OF GOLIATH THE PHILISTINE. L# 11 THEN THE KING SENT TO CALL AHIMELECH THE PRIEST, THE SON OF AHITUB, ANDJ ALL HIS FATHERS HOUSE, THE PRIESTS THAT WERE IN NOB: AND THEY CAME ALL OF THEM TO THE KING.M# 12 AND SAUL SAID, HEAR NOW, THOU SON OF AHITUB. AND HE ANSWERED, HERE I AM,G MY LORD.EK# 13 AND SAUL SAID UNTO HIM, WHY HAVE YE CONSPIRED AGAINST ME, THOU AND THE G SON OF JESSE, IN THAT THOU HAST GIVEN HIM BREAD, AND A SWORD, AND HAST L ENQUIRED OF GOD FOR HIM, THAT HE SHOULD RISE AGAINST ME, TO LIE IN WAIT, AS AT THIS DAY? M# 14 THEN AHIMELECH ANSWERED THE KING, AND SAID, AND WHO IS SO FAITHFUL AMONGK ALL THY SERVANTS AS DAVID, WHICH IS THE KINGS SON IN LAW, AND GOETH AT THYT+ BIDDING, AND IS HONOURABLE IN THINE HOUSE?WK# 15 DID I THEN BEGIN TO ENQUIRE OF GOD FOR HIM? BE IT FAR FROM ME: LET NOT G THE KING IMPUTE ANY THING UNTO HIS SERVANT, NOR TO ALL THE HOUSE OF MYE@ FATHER: FOR THY SERVANT KNEW NOTHING OF ALL THIS, LESS OR MORE.K# 16 AND THE KING SAID, THOU SHALT SURELY DIE, AHIMELECH, THOU, AND ALL THYA FATHERS HOUSE.4L# 17 AND THE KING SAID UNTO THE FOOTMEN THAT STOOD ABOUT HIM, TURN, AND SLAYL THE PRIESTS OF THE LORD: BECAUSE THEIR HAND ALSO IS WITH DAVID, AND BECAUSEK THEY KNEW WHEN HE FLED, AND DID NOT SHEW IT TO ME. BUT THE SERVANTS OF THEOJ KING WOULD NOT PUT FORTH THEIR HAND TO FALL UPON THE PRIESTS OF THE LORD.I# 18 AND THE KING SAID TO DOEG, TURN THOU, AND FALL UPON THE PRIESTS. ANDHL DOEG THE EDOMITE TURNED, AND HE FELL UPON THE PRIESTS, AND SLEW ON THAT DAY8 FOURSCORE AND FIVE PERSONS THAT DID WEAR A LINEN EPHOD.K# 19 AND NOB, THE CITY OF THE PRIESTS, SMOTE HE WITH THE EDGE OF THE SWORD,IL BOTH MEN AND WOMEN, CHILDREN AND SUCKLINGS, AND OXEN, AND ASSES, AND SHEEP, WITH THE EDGE OF THE SWORD.H# 20 AND ONE OF THE SONS OF AHIMELECH THE SON OF AHITUB, NAMED ABIATHAR, ESCAPED, AND FLED AFTER DAVID.EE# 21 AND ABIATHAR SHEWED DAVID THAT SAUL HAD SLAIN THE LORDS PRIESTS.IL# 22 AND DAVID SAID UNTO ABIATHAR, I KNEW IT THAT DAY, WHEN DOEG THE EDOMITEN WAS THERE, THAT HE WOULD SURELY TELL SAUL: I HAVE OCCASIONED THE DEATH OF ALL" THE PERSONS OF THY FATHERS HOUSE.J# 23 ABIDE THOU WITH ME, FEAR NOT: FOR HE THAT SEEKETH MY LIFE SEEKETH THY. LIFE: BUT WITH ME THOU SHALT BE IN SAFEGUARD. = CHAPTER 23 G# 1 THEN THEY TOLD DAVID, SAYING, BEHOLD, THE PHILISTINES FIGHT AGAINST* KEILAH, AND THEY ROB THE THRESHINGFLOORS.L# 2 THEREFORE DAVID ENQUIRED OF THE LORD, SAYING, SHALL I GO AND SMITE THESEN PHILISTINES? AND THE LORD SAID UNTO DAVID, GO, AND SMITE THE PHILISTINES, AND SAVE KEILAH.TI# 3 AND DAVIDS MEN SAID UNTO HIM, BEHOLD, WE BE AFRAID HERE IN JUDAH: HOWOK MUCH MORE THEN IF WE COME TO KEILAH AGAINST THE ARMIES OF THE PHILISTINES?TL# 4 THEN DAVID ENQUIRED OF THE LORD YET AGAIN. AND THE LORD ANSWERED HIM ANDN SAID, ARISE, GO DOWN TO KEILAH; FOR I WILL DELIVER THE PHILISTINES INTO THINE HAND.M# 5 SO DAVID AND HIS MEN WENT TO KEILAH, AND FOUGHT WITH THE PHILISTINES, ANDOK BROUGHT AWAY THEIR CATTLE, AND SMOTE THEM WITH A GREAT SLAUGHTER. SO DAVIDH! SAVED THE INHABITANTS OF KEILAH.L# 6 AND IT CAME TO PASS, WHEN ABIATHAR THE SON OF AHIMELECH FLED TO DAVID TO5 KEILAH, THAT HE CAME DOWN WITH AN EPHOD IN HIS HAND.FJ# 7 AND IT WAS TOLD SAUL THAT DAVID WAS COME TO KEILAH. AND SAUL SAID, GODN HATH DELIVERED HIM INTO MINE HAND; FOR HE IS SHUT IN, BY ENTERING INTO A TOWN THAT HATH GATES AND BARS.L# 8 AND SAUL00g /)D%5%T6%! ! CALLED ALL THE PEOPLE TOGETHER TO WAR, TO GO DOWN TO KEILAH, TO BESIEGE DAVID AND HIS MEN.EL# 9 AND DAVID KNEW THAT SAUL SECRETLY PRACTISED MISCHIEF AGAINST HIM; AND HE5 SAID TO ABIATHAR THE PRIEST, BRING HITHER THE EPHOD.NL# 10 THEN SAID DAVID, O LORD GOD OF ISRAEL, THY SERVANT HATH CERTAINLY HEARDF THAT SAUL SEEKETH TO COME TO KEILAH, TO DESTROY THE CITY FOR MY SAKE.M# 11 WILL THE MEN OF KEILAH DELIVER ME UP INTO HIS HAND? WILL SAUL COME DOWN,GJ AS THY SERVANT HATH HEARD? O LORD GOD OF ISRAEL, I BESEECH THEE, TELL THY/ SERVANT. AND THE LORD SAID, HE WILL COME DOWN.EK# 12 THEN SAID DAVID, WILL THE MEN OF KEILAH DELIVER ME AND MY MEN INTO THEI< HAND OF SAUL? AND THE LORD SAID, THEY WILL DELIVER THEE UP.M# 13 THEN DAVID AND HIS MEN, WHICH WERE ABOUT SIX HUNDRED, AROSE AND DEPARTEDCJ OUT OF KEILAH, AND WENT WHITHERSOEVER THEY COULD GO. AND IT WAS TOLD SAUL@ THAT DAVID WAS ESCAPED FROM KEILAH; AND HE FORBARE TO GO FORTH.I# 14 AND DAVID ABODE IN THE WILDERNESS IN STRONG HOLDS, AND REMAINED IN A K MOUNTAIN IN THE WILDERNESS OF ZIPH. AND SAUL SOUGHT HIM EVERY DAY, BUT GOD ! DELIVERED HIM NOT INTO HIS HAND. L# 15 AND DAVID SAW THAT SAUL WAS COME OUT TO SEEK HIS LIFE: AND DAVID WAS IN" THE WILDERNESS OF ZIPH IN A WOOD.G# 16 AND JONATHAN SAULS SON AROSE, AND WENT TO DAVID INTO THE WOOD, ANDO STRENGTHENED HIS HAND IN GOD.M# 17 AND HE SAID UNTO HIM, FEAR NOT: FOR THE HAND OF SAUL MY FATHER SHALL NOTHN FIND THEE; AND THOU SHALT BE KING OVER ISRAEL, AND I SHALL BE NEXT UNTO THEE;& AND THAT ALSO SAUL MY FATHER KNOWETH.I# 18 AND THEY TWO MADE A COVENANT BEFORE THE LORD: AND DAVID ABODE IN THET& WOOD, AND JONATHAN WENT TO HIS HOUSE.M# 19 THEN CAME UP THE ZIPHITES TO SAUL TO GIBEAH, SAYING, DOTH NOT DAVID HIDE L HIMSELF WITH US IN STRONG HOLDS IN THE WOOD, IN THE HILL OF HACHILAH, WHICH IS ON THE SOUTH OF JESHIMON?IM# 20 NOW THEREFORE, O KING, COME DOWN ACCORDING TO ALL THE DESIRE OF THY SOULLH TO COME DOWN; AND OUR PART SHALL BE TO DELIVER HIM INTO THE KINGS HAND.L# 21 AND SAUL SAID, BLESSED BE YE OF THE LORD; FOR YE HAVE COMPASSION ON ME.L# 22 GO, I PRAY YOU, PREPARE YET, AND KNOW AND SEE HIS PLACE WHERE HIS HAUNTH IS, AND WHO HATH SEEN HIM THERE: FOR IT IS TOLD ME THAT HE DEALETH VERY SUBTILLY.I# 23 SEE THEREFORE, AND TAKE KNOWLEDGE OF ALL THE LURKING PLACES WHERE HEAJ HIDETH HIMSELF, AND COME YE AGAIN TO ME WITH THE CERTAINTY, AND I WILL GON WITH YOU: AND IT SHALL COME TO PASS, IF HE BE IN THE LAND, THAT I WILL SEARCH/ HIM OUT THROUGHOUT ALL THE THOUSANDS OF JUDAH.SM# 24 AND THEY AROSE, AND WENT TO ZIPH BEFORE SAUL: BUT DAVID AND HIS MEN WEREPB IN THE WILDERNESS OF MAON, IN THE PLAIN ON THE SOUTH OF JESHIMON.K# 25 SAUL ALSO AND HIS MEN WENT TO SEEK HIM. AND THEY TOLD DAVID; WHEREFOREIM HE CAME DOWN INTO A ROCK, AND ABODE IN THE WILDERNESS OF MAON. AND WHEN SAULA> HEARD THAT, HE PURSUED AFTER DAVID IN THE WILDERNESS OF MAON.I# 26 AND SAUL WENT ON THIS SIDE OF THE MOUNTAIN, AND DAVID AND HIS MEN ONHN THAT SIDE OF THE MOUNTAIN: AND DAVID MADE HASTE TO GET AWAY FOR FEAR OF SAUL;K FOR SAUL AND HIS MEN COMPASSED DAVID AND HIS MEN ROUND ABOUT TO TAKE THEM.IL# 27 BUT THERE CAME A MESSENGER UNTO SAUL, SAYING, HASTE THEE, AND COME; FOR' THE PHILISTINES HAVE INVADED THE LAND.VL# 28 WHEREFORE SAUL RETURNED FROM PURSUING AFTER DAVID, AND WENT AGAINST THE@ PHILISTINES: THEREFORE THEY CALLED THAT PLACE SELAHAMMAHLEKOTH.H# 29 AND DAVID WENT UP FROM THENCE, AND DWELT IN STRONG HOLDS AT ENGEDI. = CHAPTER 24 HB# 1 AND IT CAME TO PASS, WHEN SAUL WAS RETURNED FROM FOLLOWING THEN PHILISTINES, THAT IT WAS TOLD HIM, SAYING, BEHOLD, DAVID IS IN THE WILDERNESS OF ENGEDI. K# 2 THEN SAUL TOOK THREE THOUSAND CHOSEN MEN OUT OF ALL ISRAEL, AND WENT TOT9 SEEK DAVID AND HIS MEN UPON THE ROCKS OF THE WILD GOATS. M# 3 AND HE CAME TO THE SHEEPCOTES BY THE WAY, WHERE WAS A CAVE; AND SAUL WENTRI IN TO COVER HIS FEET: AND DAVID AND HIS MEN REMAINED IN THE SIDES OF THEN CAVE.M# 4 AND THE MEN OF DAVID SAID UNTO HIM, BEHOLD THE DAY OF WHICH THE LORD SAID I UNTO THEE, BEHOLD, I WILL DELIVER THINE ENEMY INTO 00g(/Y.<%X>%+%O-%TADATADATATHINE HAND, THAT THOUAL MAYEST DO TO HIM AS IT SHALL SEEM GOOD UNTO THEE. THEN DAVID AROSE, AND CUT% OFF THE SKIRT OF SAULS ROBE PRIVILY.LJ# 5 AND IT CAME TO PASS AFTERWARD, THAT DAVIDS HEART SMOTE HIM, BECAUSE HE HAD CUT OFF SAULS SKIRT.PI# 6 AND HE SAID UNTO HIS MEN, THE LORD FORBID THAT I SHOULD DO THIS THINGAL UNTO MY MASTER, THE LORDS ANOINTED, TO STRETCH FORTH MINE HAND AGAINST HIM,' SEEING HE IS THE ANOINTED OF THE LORD.HK# 7 SO DAVID STAYED HIS SERVANTS WITH THESE WORDS, AND SUFFERED THEM NOT TO J RISE AGAINST SAUL. BUT SAUL ROSE UP OUT OF THE CAVE, AND WENT ON HIS WAY.I# 8 DAVID ALSO AROSE AFTERWARD, AND WENT OUT OF THE CAVE, AND CRIED AFTER G SAUL, SAYING, MY LORD THE KING. AND WHEN SAUL LOOKED BEHIND HIM, DAVIDS7 STOOPED WITH HIS FACE TO THE EARTH, AND BOWED HIMSELF.IF# 9 AND DAVID SAID TO SAUL, WHEREFORE HEAREST THOU MENS WORDS, SAYING, BEHOLD, DAVID SEEKETH THY HURT?J# 10 BEHOLD, THIS DAY THINE EYES HAVE SEEN HOW THAT THE LORD HAD DELIVEREDM THEE TO DAY INTO MINE HAND IN THE CAVE: AND SOME BADE ME KILL THEE: BUT MINESM EYE SPARED THEE; AND I SAID, I WILL NOT PUT FORTH MINE HAND AGAINST MY LORD;  FOR HE IS THE LORDS ANOINTED.M# 11 MOREOVER, MY FATHER, SEE, YEA, SEE THE SKIRT OF THY ROBE IN MY HAND: FORSL IN THAT I CUT OFF THE SKIRT OF THY ROBE, AND KILLED THEE NOT, KNOW THOU ANDN SEE THAT THERE IS NEITHER EVIL NOR TRANSGRESSION IN MINE HAND, AND I HAVE NOT: SINNED AGAINST THEE; YET THOU HUNTEST MY SOUL TO TAKE IT.L# 12 THE LORD JUDGE BETWEEN ME AND THEE, AND THE LORD AVENGE ME OF THEE: BUT" MINE HAND SHALL NOT BE UPON THEE.I# 13 AS SAITH THE PROVERB OF THE ANCIENTS, WICKEDNESS PROCEEDETH FROM THEH. WICKED: BUT MINE HAND SHALL NOT BE UPON THEE.L# 14 AFTER WHOM IS THE KING OF ISRAEL COME OUT? AFTER WHOM DOST THOU PURSUE? AFTER A DEAD DOG, AFTER A FLEA.M# 15 THE LORD THEREFORE BE JUDGE, AND JUDGE BETWEEN ME AND THEE, AND SEE, ANDN2 PLEAD MY CAUSE, AND DELIVER ME OUT OF THINE HAND.L# 16 AND IT CAME TO PASS, WHEN DAVID HAD MADE AN END OF SPEAKING THESE WORDSL UNTO SAUL, THAT SAUL SAID, IS THIS THY VOICE, MY SON DAVID? AND SAUL LIFTED UP HIS VOICE, AND WEPT.H# 17 AND HE SAID TO DAVID, THOU ART MORE RIGHTEOUS THAN I: FOR THOU HAST5 REWARDED ME GOOD, WHEREAS I HAVE REWARDED THEE EVIL.EI# 18 AND THOU HAST SHEWED THIS DAY HOW THAT THOU HAST DEALT WELL WITH ME:TN FORASMUCH AS WHEN THE LORD HAD DELIVERED ME INTO THINE HAND, THOU KILLEDST ME NOT.SM# 19 FOR IF A MAN FIND HIS ENEMY, WILL HE LET HIM GO WELL AWAY? WHEREFORE THEM@ LORD REWARD THEE GOOD FOR THAT THOU HAST DONE UNTO ME THIS DAY.J# 20 AND NOW, BEHOLD, I KNOW WELL THAT THOU SHALT SURELY BE KING, AND THAT: THE KINGDOM OF ISRAEL SHALL BE ESTABLISHED IN THINE HAND.K# 21 SWEAR NOW THEREFORE UNTO ME BY THE LORD, THAT THOU WILT NOT CUT OFF MYTH SEED AFTER ME, AND THAT THOU WILT NOT DESTROY MY NAME OUT OF MY FATHERS HOUSE.NM# 22 AND DAVID SWARE UNTO SAUL. AND SAUL WENT HOME; BUT DAVID AND HIS MEN GATI THEM UP UNTO THE HOLD.I = CHAPTER 25 OG# 1 AND SAMUEL DIED; AND ALL THE ISRAELITES WERE GATHERED TOGETHER, ANDEN LAMENTED HIM, AND BURIED HIM IN HIS HOUSE AT RAMAH. AND DAVID AROSE, AND WENT! DOWN TO THE WILDERNESS OF PARAN.AJ# 2 AND THERE WAS A MAN IN MAON, WHOSE POSSESSIONS WERE IN CARMEL; AND THEK MAN WAS VERY GREAT, AND HE HAD THREE THOUSAND SHEEP, AND A THOUSAND GOATS:N) AND HE WAS SHEARING HIS SHEEP IN CARMEL.EL# 3 NOW THE NAME OF THE MAN WAS NABAL; AND THE NAME OF HIS WIFE ABIGAIL: ANDK SHE WAS A WOMAN OF GOOD UNDERSTANDING, AND OF A BEAUTIFUL COUNTENANCE: BUTTH THE MAN WAS CHURLISH AND EVIL IN HIS DOINGS; AND HE WAS OF THE HOUSE OF CALEB.UE# 4 AND DAVID HEARD IN THE WILDERNESS THAT NABAL DID SHEAR HIS SHEEP.NL# 5 AND DAVID SENT OUT TEN YOUNG MEN, AND DAVID SAID UNTO THE YOUNG MEN, GET= YOU UP TO CARMEL, AND GO TO NABAL, AND GREET HIM IN MY NAME:HL# 6 AND THUS SHALL YE SAY TO HIM THAT LIVETH IN PROSPERITY, PEACE BE BOTH TOI THEE, AND PEACE BE TO THINE HOUSE, AND PEACE BE UNTO ALL THAT THOU HAST.NI# 7 AND NOW I HAVE HEARD THAT THOU HAST SHEARERS: NOW THY SHEPHERDS WHICHCK WERE WITH US, WE HURT T00g0/)D%5%T6%! !HEM NOT, NEITHER WAS THERE OUGHT MISSING UNTO THEM, # ALL THE WHILE THEY WERE IN CARMEL.BK# 8 ASK THY YOUNG MEN, AND THEY WILL SHEW THEE. WHEREFORE LET THE YOUNG MENDI FIND FAVOUR IN THINE EYES: FOR WE COME IN A GOOD DAY: GIVE, I PRAY THEE, I WHATSOEVER COMETH TO THINE HAND UNTO THY SERVANTS, AND TO THY SON DAVID.EH# 9 AND WHEN DAVIDS YOUNG MEN CAME, THEY SPAKE TO NABAL ACCORDING TO ALL. THOSE WORDS IN THE NAME OF DAVID, AND CEASED.K# 10 AND NABAL ANSWERED DAVIDS SERVANTS, AND SAID, WHO IS DAVID? AND WHO IS,N THE SON OF JESSE? THERE BE MANY SERVANTS NOW A DAYS THAT BREAK AWAY EVERY MAN FROM HIS MASTER.NG# 11 SHALL I THEN TAKE MY BREAD, AND MY WATER, AND MY FLESH THAT I HAVERN KILLED FOR MY SHEARERS, AND GIVE IT UNTO MEN, WHOM I KNOW NOT WHENCE THEY BE?L# 12 SO DAVIDS YOUNG MEN TURNED THEIR WAY, AND WENT AGAIN, AND CAME AND TOLD HIM ALL THOSE SAYINGS.AJ# 13 AND DAVID SAID UNTO HIS MEN, GIRD YE ON EVERY MAN HIS SWORD. AND THEYM GIRDED ON EVERY MAN HIS SWORD; AND DAVID ALSO GIRDED ON HIS SWORD: AND THEREI WENT UP AFTER DAVID ABOUT FOUR HUNDRED MEN; AND TWO HUNDRED ABODE BY THEM STUFF. H# 14 BUT ONE OF THE YOUNG MEN TOLD ABIGAIL, NABALS WIFE, SAYING, BEHOLD,I DAVID SENT MESSENGERS OUT OF THE WILDERNESS TO SALUTE OUR MASTER; AND HET RAILED ON THEM.M# 15 BUT THE MEN WERE VERY GOOD UNTO US, AND WE WERE NOT HURT, NEITHER MISSEDHK WE ANY THING, AS LONG AS WE WERE CONVERSANT WITH THEM, WHEN WE WERE IN THEN FIELDS:J# 16 THEY WERE A WALL UNTO US BOTH BY NIGHT AND DAY, ALL THE WHILE WE WERE WITH THEM KEEPING THE SHEEP.DC# 17 NOW THEREFORE KNOW AND CONSIDER WHAT THOU WILT DO; FOR EVIL ISM DETERMINED AGAINST OUR MASTER, AND AGAINST ALL HIS HOUSEHOLD: FOR HE IS SUCHD1 A SON OF BELIAL, THAT A MAN CANNOT SPEAK TO HIM.RM# 18 THEN ABIGAIL MADE HASTE, AND TOOK TWO HUNDRED LOAVES, AND TWO BOTTLES OFDN WINE, AND FIVE SHEEP READY DRESSED, AND FIVE MEASURES OF PARCHED CORN, AND ANM HUNDRED CLUSTERS OF RAISINS, AND TWO HUNDRED CAKES OF FIGS, AND LAID THEM ONB ASSES.NJ# 19 AND SHE SAID UNTO HER SERVANTS, GO ON BEFORE ME; BEHOLD, I COME AFTER) YOU. BUT SHE TOLD NOT HER HUSBAND NABAL.OL# 20 AND IT WAS SO, AS SHE RODE ON THE ASS, THAT SHE CAME DOWN BY THE COVERTK ON THE HILL, AND, BEHOLD, DAVID AND HIS MEN CAME DOWN AGAINST HER; AND SHEB MET THEM.M# 21 NOW DAVID HAD SAID, SURELY IN VAIN HAVE I KEPT ALL THAT THIS FELLOW HATHEN IN THE WILDERNESS, SO THAT NOTHING WAS MISSED OF ALL THAT PERTAINED UNTO HIM:' AND HE HATH REQUITED ME EVIL FOR GOOD.LI# 22 SO AND MORE ALSO DO GOD UNTO THE ENEMIES OF DAVID, IF I LEAVE OF ALLEL THAT PERTAIN TO HIM BY THE MORNING LIGHT ANY THAT PISSETH AGAINST THE WALL.I# 23 AND WHEN ABIGAIL SAW DAVID, SHE HASTED, AND LIGHTED OFF THE ASS, AND @ FELL BEFORE DAVID ON HER FACE, AND BOWED HERSELF TO THE GROUND,G# 24 AND FELL AT HIS FEET, AND SAID, UPON ME, MY LORD, UPON ME LET THISHK INIQUITY BE: AND LET THINE HANDMAID, I PRAY THEE, SPEAK IN THINE AUDIENCE,H& AND HEAR THE WORDS OF THINE HANDMAID.M# 25 LET NOT MY LORD, I PRAY THEE, REGARD THIS MAN OF BELIAL, EVEN NABAL: FORDJ AS HIS NAME IS, SO IS HE; NABAL IS HIS NAME, AND FOLLY IS WITH HIM: BUT IG THINE HANDMAID SAW NOT THE YOUNG MEN OF MY LORD, WHOM THOU DIDST SEND.LH# 26 NOW THEREFORE, MY LORD, AS THE LORD LIVETH, AND AS THY SOUL LIVETH,I SEEING THE LORD HATH WITHHOLDEN THEE FROM COMING TO SHED BLOOD, AND FROMOK AVENGING THYSELF WITH THINE OWN HAND, NOW LET THINE ENEMIES, AND THEY THATH# SEEK EVIL TO MY LORD, BE AS NABAL.FJ# 27 AND NOW THIS BLESSING WHICH THINE HANDMAID HATH BROUGHT UNTO MY LORD,= LET IT EVEN BE GIVEN UNTO THE YOUNG MEN THAT FOLLOW MY LORD.AK# 28 I PRAY THEE, FORGIVE THE TRESPASS OF THINE HANDMAID: FOR THE LORD WILL M CERTAINLY MAKE MY LORD A SURE HOUSE; BECAUSE MY LORD FIGHTETH THE BATTLES OFA= THE LORD, AND EVIL HATH NOT BEEN FOUND IN THEE ALL THY DAYS.RM# 29 YET A MAN IS RISEN TO PURSUE THEE, AND TO SEEK THY SOUL: BUT THE SOUL OFLL MY LORD SHALL BE BOUND IN THE BUNDLE OF LIFE WITH THE LORD THY GOD; AND THEK SOULS OF THINE ENEMIES, THEM SHALL HE SLING OUT, AS OUT OF THE MIDDLE OF A  SLING00g8/Y.<%X>%+%O-%TADATADATA.IH# 30 AND IT SHALL COME TO PASS, WHEN THE LORD SHALL HAVE DONE TO MY LORDN ACCORDING TO ALL THE GOOD THAT HE HATH SPOKEN CONCERNING THEE, AND SHALL HAVE" APPOINTED THEE RULER OVER ISRAEL;H# 31 THAT THIS SHALL BE NO GRIEF UNTO THEE, NOR OFFENCE OF HEART UNTO MYG LORD, EITHER THAT THOU HAST SHED BLOOD CAUSELESS, OR THAT MY LORD HATH L AVENGED HIMSELF: BUT WHEN THE LORD SHALL HAVE DEALT WELL WITH MY LORD, THEN REMEMBER THINE HANDMAID.NM# 32 AND DAVID SAID TO ABIGAIL, BLESSED BE THE LORD GOD OF ISRAEL, WHICH SENTI THEE THIS DAY TO MEET ME:L# 33 AND BLESSED BE THY ADVICE, AND BLESSED BE THOU, WHICH HAST KEPT ME THISL DAY FROM COMING TO SHED BLOOD, AND FROM AVENGING MYSELF WITH MINE OWN HAND.K# 34 FOR IN VERY DEED, AS THE LORD GOD OF ISRAEL LIVETH, WHICH HATH KEPT MEEM BACK FROM HURTING THEE, EXCEPT THOU HADST HASTED AND COME TO MEET ME, SURELYEI THERE HAD NOT BEEN LEFT UNTO NABAL BY THE MORNING LIGHT ANY THAT PISSETHH AGAINST THE WALL.K# 35 SO DAVID RECEIVED OF HER HAND THAT WHICH SHE HAD BROUGHT HIM, AND SAIDTM UNTO HER, GO UP IN PEACE TO THINE HOUSE; SEE, I HAVE HEARKENED TO THY VOICE,W AND HAVE ACCEPTED THY PERSON.J# 36 AND ABIGAIL CAME TO NABAL; AND, BEHOLD, HE HELD A FEAST IN HIS HOUSE,L LIKE THE FEAST OF A KING; AND NABALS HEART WAS MERRY WITHIN HIM, FOR HE WASN VERY DRUNKEN: WHEREFORE SHE TOLD HIM NOTHING, LESS OR MORE, UNTIL THE MORNING LIGHT.BM# 37 BUT IT CAME TO PASS IN THE MORNING, WHEN THE WINE WAS GONE OUT OF NABAL,L AND HIS WIFE HAD TOLD HIM THESE THINGS, THAT HIS HEART DIED WITHIN HIM, AND HE BECAME AS A STONE.I# 38 AND IT CAME TO PASS ABOUT TEN DAYS AFTER, THAT THE LORD SMOTE NABAL,T THAT HE DIED.L# 39 AND WHEN DAVID HEARD THAT NABAL WAS DEAD, HE SAID, BLESSED BE THE LORD,L THAT HATH PLEADED THE CAUSE OF MY REPROACH FROM THE HAND OF NABAL, AND HATHI KEPT HIS SERVANT FROM EVIL: FOR THE LORD HATH RETURNED THE WICKEDNESS OFLK NABAL UPON HIS OWN HEAD. AND DAVID SENT AND COMMUNED WITH ABIGAIL, TO TAKEF HER TO HIM TO WIFE.H# 40 AND WHEN THE SERVANTS OF DAVID WERE COME TO ABIGAIL TO CARMEL, THEYN SPAKE UNTO HER, SAYING, DAVID SENT US UNTO THEE, TO TAKE THEE TO HIM TO WIFE.I# 41 AND SHE AROSE, AND BOWED HERSELF ON HER FACE TO THE EARTH, AND SAID,HL BEHOLD, LET THINE HANDMAID BE A SERVANT TO WASH THE FEET OF THE SERVANTS OF MY LORD.FM# 42 AND ABIGAIL HASTED, AND AROSE AND RODE UPON AN ASS, WITH FIVE DAMSELS OFIJ HERS THAT WENT AFTER HER; AND SHE WENT AFTER THE MESSENGERS OF DAVID, AND BECAME HIS WIFE.RL# 43 DAVID ALSO TOOK AHINOAM OF JEZREEL; AND THEY WERE ALSO BOTH OF THEM HIS WIVES.HK# 44 BUT SAUL HAD GIVEN MICHAL HIS DAUGHTER, DAVIDS WIFE, TO PHALTI THE SONW OF LAISH, WHICH WAS OF GALLIM.E = CHAPTER 26 RJ# 1 AND THE ZIPHITES CAME UNTO SAUL TO GIBEAH, SAYING, DOTH NOT DAVID HIDE; HIMSELF IN THE HILL OF HACHILAH, WHICH IS BEFORE JESHIMON?LJ# 2 THEN SAUL AROSE, AND WENT DOWN TO THE WILDERNESS OF ZIPH, HAVING THREEK THOUSAND CHOSEN MEN OF ISRAEL WITH HIM, TO SEEK DAVID IN THE WILDERNESS OFI ZIPH.J# 3 AND SAUL PITCHED IN THE HILL OF HACHILAH, WHICH IS BEFORE JESHIMON, BYL THE WAY. BUT DAVID ABODE IN THE WILDERNESS, AND HE SAW THAT SAUL CAME AFTER HIM INTO THE WILDERNESS.WM# 4 DAVID THEREFORE SENT OUT SPIES, AND UNDERSTOOD THAT SAUL WAS COME IN VERYS DEED.L# 5 AND DAVID AROSE, AND CAME TO THE PLACE WHERE SAUL HAD PITCHED: AND DAVIDN BEHELD THE PLACE WHERE SAUL LAY, AND ABNER THE SON OF NER, THE CAPTAIN OF HISJ HOST: AND SAUL LAY IN THE TRENCH, AND THE PEOPLE PITCHED ROUND ABOUT HIM.M# 6 THEN ANSWERED DAVID AND SAID TO AHIMELECH THE HITTITE, AND TO ABISHAI THENM SON OF ZERUIAH, BROTHER TO JOAB, SAYING, WHO WILL GO DOWN WITH ME TO SAUL TOT6 THE CAMP? AND ABISHAI SAID, I WILL GO DOWN WITH THEE.K# 7 SO DAVID AND ABISHAI CAME TO THE PEOPLE BY NIGHT: AND, BEHOLD, SAUL LAY N SLEEPING WITHIN THE TRENCH, AND HIS SPEAR STUCK IN THE GROUND AT HIS BOLSTER:. BUT ABNER AND THE PEOPLE LAY ROUND ABOUT HIM.I# 8 THEN SAID ABISHAI TO DAVID, GOD HATH DELIVERED THINE ENEMY INTO THINEOK HAND THIS DAY: NOW THEREFORE LET ME SMITE HIM, I PRAY THEE, WITH THE SPEARD00g@/)D%5%T6%! !E EVEN TO THE EARTH AT ONCE, AND I WILL NOT SMITE HIM THE SECOND TIME. M# 9 AND DAVID SAID TO ABISHAI, DESTROY HIM NOT: FOR WHO CAN STRETCH FORTH HIS.3 HAND AGAINST THE LORDS ANOINTED, AND BE GUILTLESS?TM# 10 DAVID SAID FURTHERMORE, AS THE LORD LIVETH, THE LORD SHALL SMITE HIM; ORHH HIS DAY SHALL COME TO DIE; OR HE SHALL DESCEND INTO BATTLE, AND PERISH.L# 11 THE LORD FORBID THAT I SHOULD STRETCH FORTH MINE HAND AGAINST THE LORDSL ANOINTED: BUT, I PRAY THEE, TAKE THOU NOW THE SPEAR THAT IS AT HIS BOLSTER,' AND THE CRUSE OF WATER, AND LET US GO.SK# 12 SO DAVID TOOK THE SPEAR AND THE CRUSE OF WATER FROM SAULS BOLSTER; ANDOM THEY GAT THEM AWAY, AND NO MAN SAW IT, NOR KNEW IT, NEITHER AWAKED: FOR THEYSJ WERE ALL ASLEEP; BECAUSE A DEEP SLEEP FROM THE LORD WAS FALLEN UPON THEM.L# 13 THEN DAVID WENT OVER TO THE OTHER SIDE, AND STOOD ON THE TOP OF AN HILL, AFAR OFF; A GREAT SPACE BEING BETWEEN THEM:H# 14 AND DAVID CRIED TO THE PEOPLE, AND TO ABNER THE SON OF NER, SAYING,K ANSWEREST THOU NOT, ABNER? THEN ABNER ANSWERED AND SAID, WHO ART THOU THATO CRIEST TO THE KING?L# 15 AND DAVID SAID TO ABNER, ART NOT THOU A VALIANT MAN? AND WHO IS LIKE TOI THEE IN ISRAEL? WHEREFORE THEN HAST THOU NOT KEPT THY LORD THE KING? FORE> THERE CAME ONE OF THE PEOPLE IN TO DESTROY THE KING THY LORD.K# 16 THIS THING IS NOT GOOD THAT THOU HAST DONE. AS THE LORD LIVETH, YE AREAM WORTHY TO DIE, BECAUSE YE HAVE NOT KEPT YOUR MASTER, THE LORDS ANOINTED. AND I NOW SEE WHERE THE KINGS SPEAR IS, AND THE CRUSE OF WATER THAT WAS AT HISR BOLSTER.NK# 17 AND SAUL KNEW DAVIDS VOICE, AND SAID, IS THIS THY VOICE, MY SON DAVID?R1 AND DAVID SAID, IT IS MY VOICE, MY LORD, O KING.TK# 18 AND HE SAID, WHEREFORE DOTH MY LORD THUS PURSUE AFTER HIS SERVANT? FORE0 WHAT HAVE I DONE? OR WHAT EVIL IS IN MINE HAND?K# 19 NOW THEREFORE, I PRAY THEE, LET MY LORD THE KING HEAR THE WORDS OF HIS,H SERVANT. IF THE LORD HAVE STIRRED THEE UP AGAINST ME, LET HIM ACCEPT ANN OFFERING: BUT IF THEY BE THE CHILDREN OF MEN, CURSED BE THEY BEFORE THE LORD;L FOR THEY HAVE DRIVEN ME OUT THIS DAY FROM ABIDING IN THE INHERITANCE OF THE$ LORD, SAYING, GO, SERVE OTHER GODS.M# 20 NOW THEREFORE, LET NOT MY BLOOD FALL TO THE EARTH BEFORE THE FACE OF THETJ LORD: FOR THE KING OF ISRAEL IS COME OUT TO SEEK A FLEA, AS WHEN ONE DOTH# HUNT A PARTRIDGE IN THE MOUNTAINS.TL# 21 THEN SAID SAUL, I HAVE SINNED: RETURN, MY SON DAVID: FOR I WILL NO MOREM DO THEE HARM, BECAUSE MY SOUL WAS PRECIOUS IN THINE EYES THIS DAY: BEHOLD, IL2 HAVE PLAYED THE FOOL, AND HAVE ERRED EXCEEDINGLY.L# 22 AND DAVID ANSWERED AND SAID, BEHOLD THE KINGS SPEAR! AND LET ONE OF THE" YOUNG MEN COME OVER AND FETCH IT.M# 23 THE LORD RENDER TO EVERY MAN HIS RIGHTEOUSNESS AND HIS FAITHFULNESS; FORRK THE LORD DELIVERED THEE INTO MY HAND TO DAY, BUT I WOULD NOT STRETCH FORTH & MINE HAND AGAINST THE LORDS ANOINTED.K# 24 AND, BEHOLD, AS THY LIFE WAS MUCH SET BY THIS DAY IN MINE EYES, SO LETEN MY LIFE BE MUCH SET BY IN THE EYES OF THE LORD, AND LET HIM DELIVER ME OUT OF ALL TRIBULATION.HL# 25 THEN SAUL SAID TO DAVID, BLESSED BE THOU, MY SON DAVID: THOU SHALT BOTHM DO GREAT THINGS, AND ALSO SHALT STILL PREVAIL. SO DAVID WENT ON HIS WAY, ANDR SAUL RETURNED TO HIS PLACE. = CHAPTER 27 FJ# 1 AND DAVID SAID IN HIS HEART, I SHALL NOW PERISH ONE DAY BY THE HAND OFM SAUL: THERE IS NOTHING BETTER FOR ME THAN THAT I SHOULD SPEEDILY ESCAPE INTOYJ THE LAND OF THE PHILISTINES; AND SAUL SHALL DESPAIR OF ME, TO SEEK ME ANY@ MORE IN ANY COAST OF ISRAEL: SO SHALL I ESCAPE OUT OF HIS HAND.J# 2 AND DAVID AROSE, AND HE PASSED OVER WITH THE SIX HUNDRED MEN THAT WERE6 WITH HIM UNTO ACHISH, THE SON OF MAOCH, KING OF GATH.K# 3 AND DAVID DWELT WITH ACHISH AT GATH, HE AND HIS MEN, EVERY MAN WITH HIS H HOUSEHOLD, EVEN DAVID WITH HIS TWO WIVES, AHINOAM THE JEZREELITESS, AND& ABIGAIL THE CARMELITESS, NABALS WIFE.K# 4 AND IT WAS TOLD SAUL THAT DAVID WAS FLED TO GATH: AND HE SOUGHT NO MORE  AGAIN FOR HIM.SL# 5 AND DAVID SAID UNTO ACHISH, IF I HAVE NOW FOUND GRACE IN THINE EYES, LETN THEM GIVE ME A PLACE IN SOME TOWN IN TH00gH/Y.<%X>%+%O-%TADATADATAE COUNTRY, THAT I MAY DWELL THERE: FOR: WHY SHOULD THY SERVANT DWELL IN THE ROYAL CITY WITH THEE?J# 6 THEN ACHISH GAVE HIM ZIKLAG THAT DAY: WHEREFORE ZIKLAG PERTAINETH UNTO" THE KINGS OF JUDAH UNTO THIS DAY.I# 7 AND THE TIME THAT DAVID DWELT IN THE COUNTRY OF THE PHILISTINES WAS AA FULL YEAR AND FOUR MONTHS.LF# 8 AND DAVID AND HIS MEN WENT UP, AND INVADED THE GESHURITES, AND THEL GEZRITES, AND THE AMALEKITES: FOR THOSE NATIONS WERE OF OLD THE INHABITANTSA OF THE LAND, AS THOU GOEST TO SHUR, EVEN UNTO THE LAND OF EGYPT. L# 9 AND DAVID SMOTE THE LAND, AND LEFT NEITHER MAN NOR WOMAN ALIVE, AND TOOKN AWAY THE SHEEP, AND THE OXEN, AND THE ASSES, AND THE CAMELS, AND THE APPAREL," AND RETURNED, AND CAME TO ACHISH.I# 10 AND ACHISH SAID, WHITHER HAVE YE MADE A ROAD TO DAY? AND DAVID SAID,LL AGAINST THE SOUTH OF JUDAH, AND AGAINST THE SOUTH OF THE JERAHMEELITES, AND" AGAINST THE SOUTH OF THE KENITES.K# 11 AND DAVID SAVED NEITHER MAN NOR WOMAN ALIVE, TO BRING TIDINGS TO GATH,SN SAYING, LEST THEY SHOULD TELL ON US, SAYING, SO DID DAVID, AND SO WILL BE HISD MANNER ALL THE WHILE HE DWELLETH IN THE COUNTRY OF THE PHILISTINES.F# 12 AND ACHISH BELIEVED DAVID, SAYING, HE HATH MADE HIS PEOPLE ISRAELA UTTERLY TO ABHOR HIM; THEREFORE HE SHALL BE MY SERVANT FOR EVER.A = CHAPTER 28 NJ# 1 AND IT CAME TO PASS IN THOSE DAYS, THAT THE PHILISTINES GATHERED THEIRH ARMIES TOGETHER FOR WARFARE, TO FIGHT WITH ISRAEL. AND ACHISH SAID UNTOK DAVID, KNOW THOU ASSUREDLY, THAT THOU SHALT GO OUT WITH ME TO BATTLE, THOUS AND THY MEN.SM# 2 AND DAVID SAID TO ACHISH, SURELY THOU SHALT KNOW WHAT THY SERVANT CAN DO.NM AND ACHISH SAID TO DAVID, THEREFORE WILL I MAKE THEE KEEPER OF MINE HEAD FORT EVER.K# 3 NOW SAMUEL WAS DEAD, AND ALL ISRAEL HAD LAMENTED HIM, AND BURIED HIM IN K RAMAH, EVEN IN HIS OWN CITY. AND SAUL HAD PUT AWAY THOSE THAT HAD FAMILIARS+ SPIRITS, AND THE WIZARDS, OUT OF THE LAND.RM# 4 AND THE PHILISTINES GATHERED THEMSELVES TOGETHER, AND CAME AND PITCHED INTK SHUNEM: AND SAUL GATHERED ALL ISRAEL TOGETHER, AND THEY PITCHED IN GILBOA. I# 5 AND WHEN SAUL SAW THE HOST OF THE PHILISTINES, HE WAS AFRAID, AND HISS HEART GREATLY TREMBLED.M# 6 AND WHEN SAUL ENQUIRED OF THE LORD, THE LORD ANSWERED HIM NOT, NEITHER BYD& DREAMS, NOR BY URIM, NOR BY PROPHETS.J# 7 THEN SAID SAUL UNTO HIS SERVANTS, SEEK ME A WOMAN THAT HATH A FAMILIARK SPIRIT, THAT I MAY GO TO HER, AND ENQUIRE OF HER. AND HIS SERVANTS SAID TOID HIM, BEHOLD, THERE IS A WOMAN THAT HATH A FAMILIAR SPIRIT AT ENDOR.J# 8 AND SAUL DISGUISED HIMSELF, AND PUT ON OTHER RAIMENT, AND HE WENT, ANDK TWO MEN WITH HIM, AND THEY CAME TO THE WOMAN BY NIGHT: AND HE SAID, I PRAYEI THEE, DIVINE UNTO ME BY THE FAMILIAR SPIRIT, AND BRING ME HIM UP, WHOM II SHALL NAME UNTO THEE.J# 9 AND THE WOMAN SAID UNTO HIM, BEHOLD, THOU KNOWEST WHAT SAUL HATH DONE,N HOW HE HATH CUT OFF THOSE THAT HAVE FAMILIAR SPIRITS, AND THE WIZARDS, OUT OFN THE LAND: WHEREFORE THEN LAYEST THOU A SNARE FOR MY LIFE, TO CAUSE ME TO DIE?I# 10 AND SAUL SWARE TO HER BY THE LORD, SAYING, AS THE LORD LIVETH, THEREI3 SHALL NO PUNISHMENT HAPPEN TO THEE FOR THIS THING.AM# 11 THEN SAID THE WOMAN, WHOM SHALL I BRING UP UNTO THEE? AND HE SAID, BRINGM ME UP SAMUEL.H# 12 AND WHEN THE WOMAN SAW SAMUEL, SHE CRIED WITH A LOUD VOICE: AND THEK WOMAN SPAKE TO SAUL, SAYING, WHY HAST THOU DECEIVED ME? FOR THOU ART SAUL.OM# 13 AND THE KING SAID UNTO HER, BE NOT AFRAID: FOR WHAT SAWEST THOU? AND THEE= WOMAN SAID UNTO SAUL, I SAW GODS ASCENDING OUT OF THE EARTH.DG# 14 AND HE SAID UNTO HER, WHAT FORM IS HE OF? AND SHE SAID, AN OLD MANLK COMETH UP; AND HE IS COVERED WITH A MANTLE. AND SAUL PERCEIVED THAT IT WASMG SAMUEL, AND HE STOOPED WITH HIS FACE TO THE GROUND, AND BOWED HIMSELF.DJ# 15 AND SAMUEL SAID TO SAUL, WHY HAST THOU DISQUIETED ME, TO BRING ME UP?N AND SAUL ANSWERED, I AM SORE DISTRESSED; FOR THE PHILISTINES MAKE WAR AGAINSTF ME, AND GOD IS DEPARTED FROM ME, AND ANSWERETH ME NO MORE, NEITHER BYM PROPHETS, NOR BY DREAMS: THEREFORE I HAVE CALLED THEE, THAT THOU MAYEST MAKET KNOWN UNTO ME WHAT I SHALL 00gP/)D%5%T6%! !DO.EM# 16 THEN SAID SAMUEL, WHEREFORE THEN DOST THOU ASK OF ME, SEEING THE LORD ISI/ DEPARTED FROM THEE, AND IS BECOME THINE ENEMY?SM# 17 AND THE LORD HATH DONE TO HIM, AS HE SPAKE BY ME: FOR THE LORD HATH RENTTM THE KINGDOM OUT OF THINE HAND, AND GIVEN IT TO THY NEIGHBOUR, EVEN TO DAVID: H# 18 BECAUSE THOU OBEYEDST NOT THE VOICE OF THE LORD, NOR EXECUTEDST HISL FIERCE WRATH UPON AMALEK, THEREFORE HATH THE LORD DONE THIS THING UNTO THEE THIS DAY.J# 19 MOREOVER THE LORD WILL ALSO DELIVER ISRAEL WITH THEE INTO THE HAND OFL THE PHILISTINES: AND TO MORROW SHALT THOU AND THY SONS BE WITH ME: THE LORDH ALSO SHALL DELIVER THE HOST OF ISRAEL INTO THE HAND OF THE PHILISTINES.L# 20 THEN SAUL FELL STRAIGHTWAY ALL ALONG ON THE EARTH, AND WAS SORE AFRAID,M BECAUSE OF THE WORDS OF SAMUEL: AND THERE WAS NO STRENGTH IN HIM; FOR HE HADV/ EATEN NO BREAD ALL THE DAY, NOR ALL THE NIGHT.TI# 21 AND THE WOMAN CAME UNTO SAUL, AND SAW THAT HE WAS SORE TROUBLED, AND.L SAID UNTO HIM, BEHOLD, THINE HANDMAID HATH OBEYED THY VOICE, AND I HAVE PUTN MY LIFE IN MY HAND, AND HAVE HEARKENED UNTO THY WORDS WHICH THOU SPAKEST UNTO ME.J# 22 NOW THEREFORE, I PRAY THEE, HEARKEN THOU ALSO UNTO THE VOICE OF THINEK HANDMAID, AND LET ME SET A MORSEL OF BREAD BEFORE THEE; AND EAT, THAT THOUO2 MAYEST HAVE STRENGTH, WHEN THOU GOEST ON THY WAY.I# 23 BUT HE REFUSED, AND SAID, I WILL NOT EAT. BUT HIS SERVANTS, TOGETHERDN WITH THE WOMAN, COMPELLED HIM; AND HE HEARKENED UNTO THEIR VOICE. SO HE AROSE& FROM THE EARTH, AND SAT UPON THE BED.J# 24 AND THE WOMAN HAD A FAT CALF IN THE HOUSE; AND SHE HASTED, AND KILLEDK IT, AND TOOK FLOUR, AND KNEADED IT, AND DID BAKE UNLEAVENED BREAD THEREOF:TJ# 25 AND SHE BROUGHT IT BEFORE SAUL, AND BEFORE HIS SERVANTS; AND THEY DID2 EAT. THEN THEY ROSE UP, AND WENT AWAY THAT NIGHT. = CHAPTER 29 UL# 1 NOW THE PHILISTINES GATHERED TOGETHER ALL THEIR ARMIES TO APHEK: AND THE6 ISRAELITES PITCHED BY A FOUNTAIN WHICH IS IN JEZREEL.M# 2 AND THE LORDS OF THE PHILISTINES PASSED ON BY HUNDREDS, AND BY THOUSANDS:.= BUT DAVID AND HIS MEN PASSED ON IN THE REREWARD WITH ACHISH.DM# 3 THEN SAID THE PRINCES OF THE PHILISTINES, WHAT DO THESE HEBREWS HERE? ANDDH ACHISH SAID UNTO THE PRINCES OF THE PHILISTINES, IS NOT THIS DAVID, THEK SERVANT OF SAUL THE KING OF ISRAEL, WHICH HATH BEEN WITH ME THESE DAYS, OR9N THESE YEARS, AND I HAVE FOUND NO FAULT IN HIM SINCE HE FELL UNTO ME UNTO THIS DAY?EK# 4 AND THE PRINCES OF THE PHILISTINES WERE WROTH WITH HIM; AND THE PRINCESIJ OF THE PHILISTINES SAID UNTO HIM, MAKE THIS FELLOW RETURN, THAT HE MAY GOJ AGAIN TO HIS PLACE WHICH THOU HAST APPOINTED HIM, AND LET HIM NOT GO DOWNN WITH US TO BATTLE, LEST IN THE BATTLE HE BE AN ADVERSARY TO US: FOR WHEREWITHM SHOULD HE RECONCILE HIMSELF UNTO HIS MASTER? SHOULD IT NOT BE WITH THE HEADSH OF THESE MEN?J# 5 IS NOT THIS DAVID, OF WHOM THEY SANG ONE TO ANOTHER IN DANCES, SAYING,6 SAUL SLEW HIS THOUSANDS, AND DAVID HIS TEN THOUSANDS?L# 6 THEN ACHISH CALLED DAVID, AND SAID UNTO HIM, SURELY, AS THE LORD LIVETH,K THOU HAST BEEN UPRIGHT, AND THY GOING OUT AND THY COMING IN WITH ME IN THE M HOST IS GOOD IN MY SIGHT: FOR I HAVE NOT FOUND EVIL IN THEE SINCE THE DAY OFHJ THY COMING UNTO ME UNTO THIS DAY: NEVERTHELESS THE LORDS FAVOUR THEE NOT.L# 7 WHEREFORE NOW RETURN, AND GO IN PEACE, THAT THOU DISPLEASE NOT THE LORDS OF THE PHILISTINES.H# 8 AND DAVID SAID UNTO ACHISH, BUT WHAT HAVE I DONE? AND WHAT HAST THOUL FOUND IN THY SERVANT SO LONG AS I HAVE BEEN WITH THEE UNTO THIS DAY, THAT I: MAY NOT GO FIGHT AGAINST THE ENEMIES OF MY LORD THE KING?J# 9 AND ACHISH ANSWERED AND SAID TO DAVID, I KNOW THAT THOU ART GOOD IN MYJ SIGHT, AS AN ANGEL OF GOD: NOTWITHSTANDING THE PRINCES OF THE PHILISTINES5 HAVE SAID, HE SHALL NOT GO UP WITH US TO THE BATTLE.HI# 10 WHEREFORE NOW RISE UP EARLY IN THE MORNING WITH THY MASTERS SERVANTS K THAT ARE COME WITH THEE: AND AS SOON AS YE BE UP EARLY IN THE MORNING, ANDH HAVE LIGHT, DEPART.K# 11 SO DAVID AND HIS MEN ROSE UP EARLY TO DEPART IN THE MORNING, TO RETURNTJ INTO THE LAND OF THE PHILISTINES. AND00gX/gY/<%X>%+%O-%TADATADATA THE PHILISTINES WENT UP TO JEZREEL. = CHAPTER 30 IJ# 1 AND IT CAME TO PASS, WHEN DAVID AND HIS MEN WERE COME TO ZIKLAG ON THEN THIRD DAY, THAT THE AMALEKITES HAD INVADED THE SOUTH, AND ZIKLAG, AND SMITTEN! ZIKLAG, AND BURNED IT WITH FIRE; K# 2 AND HAD TAKEN THE WOMEN CAPTIVES, THAT WERE THEREIN: THEY SLEW NOT ANY, E EITHER GREAT OR SMALL, BUT CARRIED THEM AWAY, AND WENT ON THEIR WAY..J# 3 SO DAVID AND HIS MEN CAME TO THE CITY, AND, BEHOLD, IT WAS BURNED WITHG FIRE; AND THEIR WIVES, AND THEIR SONS, AND THEIR DAUGHTERS, WERE TAKENR CAPTIVES.J# 4 THEN DAVID AND THE PEOPLE THAT WERE WITH HIM LIFTED UP THEIR VOICE AND, WEPT, UNTIL THEY HAD NO MORE POWER TO WEEP.K# 5 AND DAVIDS TWO WIVES WERE TAKEN CAPTIVES, AHINOAM THE JEZREELITESS, AND ) ABIGAIL THE WIFE OF NABAL THE CARMELITE.TJ# 6 AND DAVID WAS GREATLY DISTRESSED; FOR THE PEOPLE SPAKE OF STONING HIM,K BECAUSE THE SOUL OF ALL THE PEOPLE WAS GRIEVED, EVERY MAN FOR HIS SONS ANDDE FOR HIS DAUGHTERS: BUT DAVID ENCOURAGED HIMSELF IN THE LORD HIS GOD.NM# 7 AND DAVID SAID TO ABIATHAR THE PRIEST, AHIMELECHS SON, I PRAY THEE, BRINGWF ME HITHER THE EPHOD. AND ABIATHAR BROUGHT THITHER THE EPHOD TO DAVID.L# 8 AND DAVID ENQUIRED AT THE LORD, SAYING, SHALL I PURSUE AFTER THIS TROOP?J SHALL I OVERTAKE THEM? AND HE ANSWERED HIM, PURSUE: FOR THOU SHALT SURELY- OVERTAKE THEM, AND WITHOUT FAIL RECOVER ALL.NM# 9 SO DAVID WENT, HE AND THE SIX HUNDRED MEN THAT WERE WITH HIM, AND CAME TON; THE BROOK BESOR, WHERE THOSE THAT WERE LEFT BEHIND STAYED.HF# 10 BUT DAVID PURSUED, HE AND FOUR HUNDRED MEN: FOR TWO HUNDRED ABODEI BEHIND, WHICH WERE SO FAINT THAT THEY COULD NOT GO OVER THE BROOK BESOR.RK# 11 AND THEY FOUND AN EGYPTIAN IN THE FIELD, AND BROUGHT HIM TO DAVID, ANDS? GAVE HIM BREAD, AND HE DID EAT; AND THEY MADE HIM DRINK WATER;,E# 12 AND THEY GAVE HIM A PIECE OF A CAKE OF FIGS, AND TWO CLUSTERS OFRI RAISINS: AND WHEN HE HAD EATEN, HIS SPIRIT CAME AGAIN TO HIM: FOR HE HADNB EATEN NO BREAD, NOR DRUNK ANY WATER, THREE DAYS AND THREE NIGHTS.J# 13 AND DAVID SAID UNTO HIM, TO WHOM BELONGEST THOU? AND WHENCE ART THOU?H AND HE SAID, I AM A YOUNG MAN OF EGYPT, SERVANT TO AN AMALEKITE; AND MY6 MASTER LEFT ME, BECAUSE THREE DAYS AGONE I FELL SICK.H# 14 WE MADE AN INVASION UPON THE SOUTH OF THE CHERETHITES, AND UPON THEK COAST WHICH BELONGETH TO JUDAH, AND UPON THE SOUTH OF CALEB; AND WE BURNEDL ZIKLAG WITH FIRE.L# 15 AND DAVID SAID TO HIM, CANST THOU BRING ME DOWN TO THIS COMPANY? AND HEK SAID, SWEAR UNTO ME BY GOD, THAT THOU WILT NEITHER KILL ME, NOR DELIVER ME I INTO THE HANDS OF MY MASTER, AND I WILL BRING THEE DOWN TO THIS COMPANY.AK# 16 AND WHEN HE HAD BROUGHT HIM DOWN, BEHOLD, THEY WERE SPREAD ABROAD UPONEJ ALL THE EARTH, EATING AND DRINKING, AND DANCING, BECAUSE OF ALL THE GREATM SPOIL THAT THEY HAD TAKEN OUT OF THE LAND OF THE PHILISTINES, AND OUT OF THET LAND OF JUDAH.EM# 17 AND DAVID SMOTE THEM FROM THE TWILIGHT EVEN UNTO THE EVENING OF THE NEXTOM DAY: AND THERE ESCAPED NOT A MAN OF THEM, SAVE FOUR HUNDRED YOUNG MEN, WHICH  RODE UPON CAMELS, AND FLED.L# 18 AND DAVID RECOVERED ALL THAT THE AMALEKITES HAD CARRIED AWAY: AND DAVID RESCUED HIS TWO WIVES.ML# 19 AND THERE WAS NOTHING LACKING TO THEM, NEITHER SMALL NOR GREAT, NEITHERN SONS NOR DAUGHTERS, NEITHER SPOIL, NOR ANY THING THAT THEY HAD TAKEN TO THEM: DAVID RECOVERED ALL.EI# 20 AND DAVID TOOK ALL THE FLOCKS AND THE HERDS, WHICH THEY DRAVE BEFOREI4 THOSE OTHER CATTLE, AND SAID, THIS IS DAVIDS SPOIL.I# 21 AND DAVID CAME TO THE TWO HUNDRED MEN, WHICH WERE SO FAINT THAT THEYPM COULD NOT FOLLOW DAVID, WHOM THEY HAD MADE ALSO TO ABIDE AT THE BROOK BESOR:IN AND THEY WENT FORTH TO MEET DAVID, AND TO MEET THE PEOPLE THAT WERE WITH HIM:9 AND WHEN DAVID CAME NEAR TO THE PEOPLE, HE SALUTED THEM.TK# 22 THEN ANSWERED ALL THE WICKED MEN AND MEN OF BELIAL, OF THOSE THAT WENTRK WITH DAVID, AND SAID, BECAUSE THEY WENT NOT WITH US, WE WILL NOT GIVE THEMBN OUGHT OF THE SPOIL THAT WE HAVE RECOVERED, SAVE TO EVERY MAN HIS WIFE AND HIS4 CHILDREN, THAT THEY MAY LEAD THEM AWAY, AND DEPART.J# 23 THEN 00g`/hg/D%5%T6%! !SAID DAVID, YE SHALL NOT DO SO, MY BRETHREN, WITH THAT WHICH THEJ LORD HATH GIVEN US, WHO HATH PRESERVED US, AND DELIVERED THE COMPANY THAT CAME AGAINST US INTO OUR HAND.NJ# 24 FOR WHO WILL HEARKEN UNTO YOU IN THIS MATTER? BUT AS HIS PART IS THATK GOETH DOWN TO THE BATTLE, SO SHALL HIS PART BE THAT TARRIETH BY THE STUFF:E THEY SHALL PART ALIKE.OJ# 25 AND IT WAS SO FROM THAT DAY FORWARD, THAT HE MADE IT A STATUTE AND AN$ ORDINANCE FOR ISRAEL UNTO THIS DAY.K# 26 AND WHEN DAVID CAME TO ZIKLAG, HE SENT OF THE SPOIL UNTO THE ELDERS OFYM JUDAH, EVEN TO HIS FRIENDS, SAYING, BEHOLD A PRESENT FOR YOU OF THE SPOIL OF  THE ENEMIES OF THE LORD;J# 27 TO THEM WHICH WERE IN BETHEL, AND TO THEM WHICH WERE IN SOUTH RAMOTH," AND TO THEM WHICH WERE IN JATTIR,M# 28 AND TO THEM WHICH WERE IN AROER, AND TO THEM WHICH WERE IN SIPHMOTH, ANDE TO THEM WHICH WERE IN ESHTEMOA,K# 29 AND TO THEM WHICH WERE IN RACHAL, AND TO THEM WHICH WERE IN THE CITIESRK OF THE JERAHMEELITES, AND TO THEM WHICH WERE IN THE CITIES OF THE KENITES,OK# 30 AND TO THEM WHICH WERE IN HORMAH, AND TO THEM WHICH WERE IN CHORASHAN, " AND TO THEM WHICH WERE IN ATHACH,H# 31 AND TO THEM WHICH WERE IN HEBRON, AND TO ALL THE PLACES WHERE DAVID( HIMSELF AND HIS MEN WERE WONT TO HAUNT. = CHAPTER 31 N# 1 NOW THE PHILISTINES FOUGHT AGAINST ISRAEL: AND THE MEN OF ISRAEL FLED FROM= BEFORE THE PHILISTINES, AND FELL DOWN SLAIN IN MOUNT GILBOA.RJ# 2 AND THE PHILISTINES FOLLOWED HARD UPON SAUL AND UPON HIS SONS; AND THEE PHILISTINES SLEW JONATHAN, AND ABINADAB, AND MELCHISHUA, SAULS SONS.WJ# 3 AND THE BATTLE WENT SORE AGAINST SAUL, AND THE ARCHERS HIT HIM; AND HE! WAS SORE WOUNDED OF THE ARCHERS.HG# 4 THEN SAID SAUL UNTO HIS ARMOURBEARER, DRAW THY SWORD, AND THRUST MEWL THROUGH THEREWITH; LEST THESE UNCIRCUMCISED COME AND THRUST ME THROUGH, ANDL ABUSE ME. BUT HIS ARMOURBEARER WOULD NOT; FOR HE WAS SORE AFRAID. THEREFORE% SAUL TOOK A SWORD, AND FELL UPON IT.LK# 5 AND WHEN HIS ARMOURBEARER SAW THAT SAUL WAS DEAD, HE FELL LIKEWISE UPON  HIS SWORD, AND DIED WITH HIM.L# 6 SO SAUL DIED, AND HIS THREE SONS, AND HIS ARMOURBEARER, AND ALL HIS MEN, THAT SAME DAY TOGETHER.M# 7 AND WHEN THE MEN OF ISRAEL THAT WERE ON THE OTHER SIDE OF THE VALLEY, ANDYN THEY THAT WERE ON THE OTHER SIDE JORDAN, SAW THAT THE MEN OF ISRAEL FLED, ANDM THAT SAUL AND HIS SONS WERE DEAD, THEY FORSOOK THE CITIES, AND FLED; AND THEE$ PHILISTINES CAME AND DWELT IN THEM.M# 8 AND IT CAME TO PASS ON THE MORROW, WHEN THE PHILISTINES CAME TO STRIP THEFG SLAIN, THAT THEY FOUND SAUL AND HIS THREE SONS FALLEN IN MOUNT GILBOA. M# 9 AND THEY CUT OFF HIS HEAD, AND STRIPPED OFF HIS ARMOUR, AND SENT INTO THE.I LAND OF THE PHILISTINES ROUND ABOUT, TO PUBLISH IT IN THE HOUSE OF THEIR  IDOLS, AND AMONG THE PEOPLE.HM# 10 AND THEY PUT HIS ARMOUR IN THE HOUSE OF ASHTAROTH: AND THEY FASTENED HISE BODY TO THE WALL OF BETHSHAN.E# 11 AND WHEN THE INHABITANTS OF JABESHGILEAD HEARD OF THAT WHICH THEC PHILISTINES HAD DONE TO SAUL;M# 12 ALL THE VALIANT MEN AROSE, AND WENT ALL NIGHT, AND TOOK THE BODY OF SAULSN AND THE BODIES OF HIS SONS FROM THE WALL OF BETHSHAN, AND CAME TO JABESH, AND BURNT THEM THERE.K# 13 AND THEY TOOK THEIR BONES, AND BURIED THEM UNDER A TREE AT JABESH, AND  FASTED SEVEN DAYS.MONG THE PEOPLE.HM# 10 AND THEY PUT HIS ARMOUR IN THE HOUSE OF ASHTAROTH: AND THEY FASTENED HISE BODY TO THE WALL OF BETHSHAN.E# 11 AND WHEN THE INHABITANTS OF JABESHGILEAD HEARD OF THAT WHICH THEC PHILISTINES HAD DONE TO SAUL;M# 12 ALL THE VALIANT MEN AROSE, AND WENT ALL NIGHT, AND TOOK THE* BOOK10 2SAMUEL = CHAPTER 1 M# 1 NOW IT CAME TO PASS AFTER THE DEATH OF SAUL, WHEN DAVID WAS RETURNED FROMRI THE SLAUGHTER OF THE AMALEKITES, AND DAVID HAD ABODE TWO DAYS IN ZIKLAG; J# 2 IT CAME EVEN TO PASS ON THE THIRD DAY, THAT, BEHOLD, A MAN CAME OUT OFM THE CAMP FROM SAUL WITH HIS CLOTHES RENT, AND EARTH UPON HIS HEAD: AND SO ITJ WAS, WHEN HE CAME TO DAVID, THAT HE FELL TO THE EARTH, AND DID OBEISANCE.K# 3 AND DAVID SAID UNTO HIM, FROM WHENCE COMEST THOU? AND HE SAID UNTO HIM,T( OUT OF THE 00hh/Y/<%X>%+%O-%TADATADATACAMP OF ISRAEL AM I ESCAPED.K# 4 AND DAVID SAID UNTO HIM, HOW WENT THE MATTER? I PRAY THEE, TELL ME. ANDDN HE ANSWERED, THAT THE PEOPLE ARE FLED FROM THE BATTLE, AND MANY OF THE PEOPLEG ALSO ARE FALLEN AND DEAD; AND SAUL AND JONATHAN HIS SON ARE DEAD ALSO.UJ# 5 AND DAVID SAID UNTO THE YOUNG MAN THAT TOLD HIM, HOW KNOWEST THOU THAT# SAUL AND JONATHAN HIS SON BE DEAD?,L# 6 AND THE YOUNG MAN THAT TOLD HIM SAID, AS I HAPPENED BY CHANCE UPON MOUNTF GILBOA, BEHOLD, SAUL LEANED UPON HIS SPEAR; AND, LO, THE CHARIOTS AND" HORSEMEN FOLLOWED HARD AFTER HIM.G# 7 AND WHEN HE LOOKED BEHIND HIM, HE SAW ME, AND CALLED UNTO ME. AND I  ANSWERED, HERE AM I.DM# 8 AND HE SAID UNTO ME, WHO ART THOU? AND I ANSWERED HIM, I AM AN AMALEKITE.NH# 9 HE SAID UNTO ME AGAIN, STAND, I PRAY THEE, UPON ME, AND SLAY ME: FOR= ANGUISH IS COME UPON ME, BECAUSE MY LIFE IS YET WHOLE IN ME.NL# 10 SO I STOOD UPON HIM, AND SLEW HIM, BECAUSE I WAS SURE THAT HE COULD NOTL LIVE AFTER THAT HE WAS FALLEN: AND I TOOK THE CROWN THAT WAS UPON HIS HEAD,K AND THE BRACELET THAT WAS ON HIS ARM, AND HAVE BROUGHT THEM HITHER UNTO MYH LORD.M# 11 THEN DAVID TOOK HOLD ON HIS CLOTHES, AND RENT THEM; AND LIKEWISE ALL THEW MEN THAT WERE WITH HIM:I# 12 AND THEY MOURNED, AND WEPT, AND FASTED UNTIL EVEN, FOR SAUL, AND FORUG JONATHAN HIS SON, AND FOR THE PEOPLE OF THE LORD, AND FOR THE HOUSE OFT/ ISRAEL; BECAUSE THEY WERE FALLEN BY THE SWORD.WM# 13 AND DAVID SAID UNTO THE YOUNG MAN THAT TOLD HIM, WHENCE ART THOU? AND HE 4 ANSWERED, I AM THE SON OF A STRANGER, AN AMALEKITE.M# 14 AND DAVID SAID UNTO HIM, HOW WAST THOU NOT AFRAID TO STRETCH FORTH THINET$ HAND TO DESTROY THE LORDS ANOINTED?L# 15 AND DAVID CALLED ONE OF THE YOUNG MEN, AND SAID, GO NEAR, AND FALL UPON$ HIM. AND HE SMOTE HIM THAT HE DIED.L# 16 AND DAVID SAID UNTO HIM, THY BLOOD BE UPON THY HEAD; FOR THY MOUTH HATHA TESTIFIED AGAINST THEE, SAYING, I HAVE SLAIN THE LORDS ANOINTED.M# 17 AND DAVID LAMENTED WITH THIS LAMENTATION OVER SAUL AND OVER JONATHAN HIS SON:EG# 18 (ALSO HE BADE THEM TEACH THE CHILDREN OF JUDAH THE USE OF THE BOW:M. BEHOLD, IT IS WRITTEN IN THE BOOK OF JASHER.)K# 19 THE BEAUTY OF ISRAEL IS SLAIN UPON THY HIGH PLACES: HOW ARE THE MIGHTYU FALLEN!L# 20 TELL IT NOT IN GATH, PUBLISH IT NOT IN THE STREETS OF ASKELON; LEST THEN DAUGHTERS OF THE PHILISTINES REJOICE, LEST THE DAUGHTERS OF THE UNCIRCUMCISED TRIUMPH.EL# 21 YE MOUNTAINS OF GILBOA, LET THERE BE NO DEW, NEITHER LET THERE BE RAIN,I UPON YOU, NOR FIELDS OF OFFERINGS: FOR THERE THE SHIELD OF THE MIGHTY ISTN VILELY CAST AWAY, THE SHIELD OF SAUL, AS THOUGH HE HAD NOT BEEN ANOINTED WITH OIL.KH# 22 FROM THE BLOOD OF THE SLAIN, FROM THE FAT OF THE MIGHTY, THE BOW OFD JONATHAN TURNED NOT BACK, AND THE SWORD OF SAUL RETURNED NOT EMPTY.L# 23 SAUL AND JONATHAN WERE LOVELY AND PLEASANT IN THEIR LIVES, AND IN THEIRF DEATH THEY WERE NOT DIVIDED: THEY WERE SWIFTER THAN EAGLES, THEY WERE STRONGER THAN LIONS.DM# 24 YE DAUGHTERS OF ISRAEL, WEEP OVER SAUL, WHO CLOTHED YOU IN SCARLET, WITHH@ OTHER DELIGHTS, WHO PUT ON ORNAMENTS OF GOLD UPON YOUR APPAREL.K# 25 HOW ARE THE MIGHTY FALLEN IN THE MIDST OF THE BATTLE! O JONATHAN, THOUS! WAST SLAIN IN THINE HIGH PLACES.HK# 26 I AM DISTRESSED FOR THEE, MY BROTHER JONATHAN: VERY PLEASANT HAST THOU.G BEEN UNTO ME: THY LOVE TO ME WAS WONDERFUL, PASSING THE LOVE OF WOMEN.T@# 27 HOW ARE THE MIGHTY FALLEN, AND THE WEAPONS OF WAR PERISHED! = CHAPTER 2 L# 1 AND IT CAME TO PASS AFTER THIS, THAT DAVID ENQUIRED OF THE LORD, SAYING,N SHALL I GO UP INTO ANY OF THE CITIES OF JUDAH? AND THE LORD SAID UNTO HIM, GOE UP. AND DAVID SAID, WHITHER SHALL I GO UP? AND HE SAID, UNTO HEBRON.JA# 2 SO DAVID WENT UP THITHER, AND HIS TWO WIVES ALSO, AHINOAM THEE5 JEZREELITESS, AND ABIGAIL NABALS WIFE THE CARMELITE.TI# 3 AND HIS MEN THAT WERE WITH HIM DID DAVID BRING UP, EVERY MAN WITH HISN3 HOUSEHOLD: AND THEY DWELT IN THE CITIES OF HEBRON.FJ# 4 AND THE MEN OF JUDAH CAME, AND THERE THEY ANOINTED DAVID KING OVER THEJ HOUSE OF JUDAH. AND THEY TOLD DAVID, SAYING, THAT THE MEN OF JABESHGILEAD00hp/g/D%5%T6%! ! WERE THEY THAT BURIED SAUL.I# 5 AND DAVID SENT MESSENGERS UNTO THE MEN OF JABESHGILEAD, AND SAID UNTOJM THEM, BLESSED BE YE OF THE LORD, THAT YE HAVE SHEWED THIS KINDNESS UNTO YOURT+ LORD, EVEN UNTO SAUL, AND HAVE BURIED HIM.F# 6 AND NOW THE LORD SHEW KINDNESS AND TRUTH UNTO YOU: AND I ALSO WILL< REQUITE YOU THIS KINDNESS, BECAUSE YE HAVE DONE THIS THING.M# 7 THEREFORE NOW LET YOUR HANDS BE STRENGTHENED, AND BE YE VALIANT: FOR YOUROL MASTER SAUL IS DEAD, AND ALSO THE HOUSE OF JUDAH HAVE ANOINTED ME KING OVER THEM.L# 8 BUT ABNER THE SON OF NER, CAPTAIN OF SAULS HOST, TOOK ISHBOSHETH THE SON+ OF SAUL, AND BROUGHT HIM OVER TO MAHANAIM;HL# 9 AND MADE HIM KING OVER GILEAD, AND OVER THE ASHURITES, AND OVER JEZREEL,: AND OVER EPHRAIM, AND OVER BENJAMIN, AND OVER ALL ISRAEL.I# 10 ISHBOSHETH SAULS SON WAS FORTY YEARS OLD WHEN HE BEGAN TO REIGN OVERIF ISRAEL, AND REIGNED TWO YEARS. BUT THE HOUSE OF JUDAH FOLLOWED DAVID.K# 11 AND THE TIME THAT DAVID WAS KING IN HEBRON OVER THE HOUSE OF JUDAH WASN SEVEN YEARS AND SIX MONTHS.H# 12 AND ABNER THE SON OF NER, AND THE SERVANTS OF ISHBOSHETH THE SON OF( SAUL, WENT OUT FROM MAHANAIM TO GIBEON.J# 13 AND JOAB THE SON OF ZERUIAH, AND THE SERVANTS OF DAVID, WENT OUT, ANDJ MET TOGETHER BY THE POOL OF GIBEON: AND THEY SAT DOWN, THE ONE ON THE ONE? SIDE OF THE POOL, AND THE OTHER ON THE OTHER SIDE OF THE POOL.M# 14 AND ABNER SAID TO JOAB, LET THE YOUNG MEN NOW ARISE, AND PLAY BEFORE US.D AND JOAB SAID, LET THEM ARISE.HG# 15 THEN THERE AROSE AND WENT OVER BY NUMBER TWELVE OF BENJAMIN, WHICHDN PERTAINED TO ISHBOSHETH THE SON OF SAUL, AND TWELVE OF THE SERVANTS OF DAVID.K# 16 AND THEY CAUGHT EVERY ONE HIS FELLOW BY THE HEAD, AND THRUST HIS SWORDSJ IN HIS FELLOWS SIDE; SO THEY FELL DOWN TOGETHER: WHEREFORE THAT PLACE WAS, CALLED HELKATHHAZZURIM, WHICH IS IN GIBEON.M# 17 AND THERE WAS A VERY SORE BATTLE THAT DAY; AND ABNER WAS BEATEN, AND THET- MEN OF ISRAEL, BEFORE THE SERVANTS OF DAVID.AG# 18 AND THERE WERE THREE SONS OF ZERUIAH THERE, JOAB, AND ABISHAI, ANDM7 ASAHEL: AND ASAHEL WAS AS LIGHT OF FOOT AS A WILD ROE.TL# 19 AND ASAHEL PURSUED AFTER ABNER; AND IN GOING HE TURNED NOT TO THE RIGHT+ HAND NOR TO THE LEFT FROM FOLLOWING ABNER. D# 20 THEN ABNER LOOKED BEHIND HIM, AND SAID, ART THOU ASAHEL? AND HE ANSWERED, I AM.M# 21 AND ABNER SAID TO HIM, TURN THEE ASIDE TO THY RIGHT HAND OR TO THY LEFT, I AND LAY THEE HOLD ON ONE OF THE YOUNG MEN, AND TAKE THEE HIS ARMOUR. BUTT3 ASAHEL WOULD NOT TURN ASIDE FROM FOLLOWING OF HIM.AG# 22 AND ABNER SAID AGAIN TO ASAHEL, TURN THEE ASIDE FROM FOLLOWING ME:TJ WHEREFORE SHOULD I SMITE THEE TO THE GROUND? HOW THEN SHOULD I HOLD UP MY FACE TO JOAB THY BROTHER?M# 23 HOWBEIT HE REFUSED TO TURN ASIDE: WHEREFORE ABNER WITH THE HINDER END OFIM THE SPEAR SMOTE HIM UNDER THE FIFTH RIB, THAT THE SPEAR CAME OUT BEHIND HIM;TN AND HE FELL DOWN THERE, AND DIED IN THE SAME PLACE: AND IT CAME TO PASS, THATJ AS MANY AS CAME TO THE PLACE WHERE ASAHEL FELL DOWN AND DIED STOOD STILL.J# 24 JOAB ALSO AND ABISHAI PURSUED AFTER ABNER: AND THE SUN WENT DOWN WHENN THEY WERE COME TO THE HILL OF AMMAH, THAT LIETH BEFORE GIAH BY THE WAY OF THE WILDERNESS OF GIBEON.K# 25 AND THE CHILDREN OF BENJAMIN GATHERED THEMSELVES TOGETHER AFTER ABNER, 7 AND BECAME ONE TROOP, AND STOOD ON THE TOP OF AN HILL.RJ# 26 THEN ABNER CALLED TO JOAB, AND SAID, SHALL THE SWORD DEVOUR FOR EVER?N KNOWEST THOU NOT THAT IT WILL BE BITTERNESS IN THE LATTER END? HOW LONG SHALLJ IT BE THEN, ERE THOU BID THE PEOPLE RETURN FROM FOLLOWING THEIR BRETHREN?K# 27 AND JOAB SAID, AS GOD LIVETH, UNLESS THOU HADST SPOKEN, SURELY THEN INHI THE MORNING THE PEOPLE HAD GONE UP EVERY ONE FROM FOLLOWING HIS BROTHER.DH# 28 SO JOAB BLEW A TRUMPET, AND ALL THE PEOPLE STOOD STILL, AND PURSUED4 AFTER ISRAEL NO MORE, NEITHER FOUGHT THEY ANY MORE.G# 29 AND ABNER AND HIS MEN WALKED ALL THAT NIGHT THROUGH THE PLAIN, AND?M PASSED OVER JORDAN, AND WENT THROUGH ALL BITHRON, AND THEY CAME TO MAHANAIM.LM# 30 AND JOAB RETURNED FROM FOLLOWING ABNER: AND WHEN HE HAD GATHERED ALL THE J PEO00hx/Y/<%X>%+%O-%TADATADATAPLE TOGETHER, THERE LACKED OF DAVIDS SERVANTS NINETEEN MEN AND ASAHEL.M# 31 BUT THE SERVANTS OF DAVID HAD SMITTEN OF BENJAMIN, AND OF ABNERS MEN, SO8, THAT THREE HUNDRED AND THREESCORE MEN DIED.L# 32 AND THEY TOOK UP ASAHEL, AND BURIED HIM IN THE SEPULCHRE OF HIS FATHER,N WHICH WAS IN BETHLEHEM. AND JOAB AND HIS MEN WENT ALL NIGHT, AND THEY CAME TO HEBRON AT BREAK OF DAY. = CHAPTER 3 L# 1 NOW THERE WAS LONG WAR BETWEEN THE HOUSE OF SAUL AND THE HOUSE OF DAVID:N BUT DAVID WAXED STRONGER AND STRONGER, AND THE HOUSE OF SAUL WAXED WEAKER AND WEAKER.L# 2 AND UNTO DAVID WERE SONS BORN IN HEBRON: AND HIS FIRSTBORN WAS AMNON, OF AHINOAM THE JEZREELITESS;L# 3 AND HIS SECOND, CHILEAB, OF ABIGAIL THE WIFE OF NABAL THE CARMELITE; ANDL THE THIRD, ABSALOM THE SON OF MAACAH THE DAUGHTER OF TALMAI KING OF GESHUR;J# 4 AND THE FOURTH, ADONIJAH THE SON OF HAGGITH; AND THE FIFTH, SHEPHATIAH THE SON OF ABITAL; M# 5 AND THE SIXTH, ITHREAM, BY EGLAH DAVIDS WIFE. THESE WERE BORN TO DAVID IND HEBRON.J# 6 AND IT CAME TO PASS, WHILE THERE WAS WAR BETWEEN THE HOUSE OF SAUL ANDJ THE HOUSE OF DAVID, THAT ABNER MADE HIMSELF STRONG FOR THE HOUSE OF SAUL.J# 7 AND SAUL HAD A CONCUBINE, WHOSE NAME WAS RIZPAH, THE DAUGHTER OF AIAH:J AND ISHBOSHETH SAID TO ABNER, WHEREFORE HAST THOU GONE IN UNTO MY FATHERS CONCUBINE?GK# 8 THEN WAS ABNER VERY WROTH FOR THE WORDS OF ISHBOSHETH, AND SAID, AM I AAK DOGS HEAD, WHICH AGAINST JUDAH DO SHEW KINDNESS THIS DAY UNTO THE HOUSE OF M SAUL THY FATHER, TO HIS BRETHREN, AND TO HIS FRIENDS, AND HAVE NOT DELIVEREDSG THEE INTO THE HAND OF DAVID, THAT THOU CHARGEST ME TO DAY WITH A FAULTH CONCERNING THIS WOMAN?SH# 9 SO DO GOD TO ABNER, AND MORE ALSO, EXCEPT, AS THE LORD HATH SWORN TO DAVID, EVEN SO I DO TO HIM;G# 10 TO TRANSLATE THE KINGDOM FROM THE HOUSE OF SAUL, AND TO SET UP THEH THRONE OF DAVID OVER ISRAEL AND OVER JUDAH, FROM DAN EVEN TO BEERSHEBA.G# 11 AND HE COULD NOT ANSWER ABNER A WORD AGAIN, BECAUSE HE FEARED HIM.UK# 12 AND ABNER SENT MESSENGERS TO DAVID ON HIS BEHALF, SAYING, WHOSE IS THEEJ LAND? SAYING ALSO, MAKE THY LEAGUE WITH ME, AND, BEHOLD, MY HAND SHALL BE0 WITH THEE, TO BRING ABOUT ALL ISRAEL UNTO THEE.G# 13 AND HE SAID, WELL; I WILL MAKE A LEAGUE WITH THEE: BUT ONE THING I N REQUIRE OF THEE, THAT IS, THOU SHALT NOT SEE MY FACE, EXCEPT THOU FIRST BRING8 MICHAL SAULS DAUGHTER, WHEN THOU COMEST TO SEE MY FACE.M# 14 AND DAVID SENT MESSENGERS TO ISHBOSHETH SAULS SON, SAYING, DELIVER ME MYED WIFE MICHAL, WHICH I ESPOUSED TO ME FOR AN HUNDRED FORESKINS OF THE PHILISTINES.EK# 15 AND ISHBOSHETH SENT, AND TOOK HER FROM HER HUSBAND, EVEN FROM PHALTIELH THE SON OF LAISH.L# 16 AND HER HUSBAND WENT WITH HER ALONG WEEPING BEHIND HER TO BAHURIM. THEN2 SAID ABNER UNTO HIM, GO, RETURN. AND HE RETURNED.M# 17 AND ABNER HAD COMMUNICATION WITH THE ELDERS OF ISRAEL, SAYING, YE SOUGHTG- FOR DAVID IN TIMES PAST TO BE KING OVER YOU:DK# 18 NOW THEN DO IT: FOR THE LORD HATH SPOKEN OF DAVID, SAYING, BY THE HAND H OF MY SERVANT DAVID I WILL SAVE MY PEOPLE ISRAEL OUT OF THE HAND OF THE7 PHILISTINES, AND OUT OF THE HAND OF ALL THEIR ENEMIES.BI# 19 AND ABNER ALSO SPAKE IN THE EARS OF BENJAMIN: AND ABNER WENT ALSO TOHN SPEAK IN THE EARS OF DAVID IN HEBRON ALL THAT SEEMED GOOD TO ISRAEL, AND THAT, SEEMED GOOD TO THE WHOLE HOUSE OF BENJAMIN.I# 20 SO ABNER CAME TO DAVID TO HEBRON, AND TWENTY MEN WITH HIM. AND DAVIDA3 MADE ABNER AND THE MEN THAT WERE WITH HIM A FEAST.EH# 21 AND ABNER SAID UNTO DAVID, I WILL ARISE AND GO, AND WILL GATHER ALLN ISRAEL UNTO MY LORD THE KING, THAT THEY MAY MAKE A LEAGUE WITH THEE, AND THATK THOU MAYEST REIGN OVER ALL THAT THINE HEART DESIRETH. AND DAVID SENT ABNER: AWAY; AND HE WENT IN PEACE.L# 22 AND, BEHOLD, THE SERVANTS OF DAVID AND JOAB CAME FROM PURSUING A TROOP,H AND BROUGHT IN A GREAT SPOIL WITH THEM: BUT ABNER WAS NOT WITH DAVID IN< HEBRON; FOR HE HAD SENT HIM AWAY, AND HE WAS GONE IN PEACE.L# 23 WHEN JOAB AND ALL THE HOST THAT WAS WITH HIM WERE COME, THEY TOLD JOAB,N SAYING, ABNER THE SON OF NER CAME TO THE KING, AND HE HATH SENT HIM00h/g/D%5%T6%! ! AWAY, AND HE IS GONE IN PEACE. M# 24 THEN JOAB CAME TO THE KING, AND SAID, WHAT HAST THOU DONE? BEHOLD, ABNER N CAME UNTO THEE; WHY IS IT THAT THOU HAST SENT HIM AWAY, AND HE IS QUITE GONE?L# 25 THOU KNOWEST ABNER THE SON OF NER, THAT HE CAME TO DECEIVE THEE, AND TOG KNOW THY GOING OUT AND THY COMING IN, AND TO KNOW ALL THAT THOU DOEST. K# 26 AND WHEN JOAB WAS COME OUT FROM DAVID, HE SENT MESSENGERS AFTER ABNER,MG WHICH BROUGHT HIM AGAIN FROM THE WELL OF SIRAH: BUT DAVID KNEW IT NOT.EK# 27 AND WHEN ABNER WAS RETURNED TO HEBRON, JOAB TOOK HIM ASIDE IN THE GATEKL TO SPEAK WITH HIM QUIETLY, AND SMOTE HIM THERE UNDER THE FIFTH RIB, THAT HE+ DIED, FOR THE BLOOD OF ASAHEL HIS BROTHER.EE# 28 AND AFTERWARD WHEN DAVID HEARD IT, HE SAID, I AND MY KINGDOM ARE K GUILTLESS BEFORE THE LORD FOR EVER FROM THE BLOOD OF ABNER THE SON OF NER:UK# 29 LET IT REST ON THE HEAD OF JOAB, AND ON ALL HIS FATHERS HOUSE; AND LETRK THERE NOT FAIL FROM THE HOUSE OF JOAB ONE THAT HATH AN ISSUE, OR THAT IS ANI LEPER, OR THAT LEANETH ON A STAFF, OR THAT FALLETH ON THE SWORD, OR THATE LACKETH BREAD. L# 30 SO JOAB, AND ABISHAI HIS BROTHER SLEW ABNER, BECAUSE HE HAD SLAIN THEIR( BROTHER ASAHEL AT GIBEON IN THE BATTLE.K# 31 AND DAVID SAID TO JOAB, AND TO ALL THE PEOPLE THAT WERE WITH HIM, RENDBL YOUR CLOTHES, AND GIRD YOU WITH SACKCLOTH, AND MOURN BEFORE ABNER. AND KING! DAVID HIMSELF FOLLOWED THE BIER.LK# 32 AND THEY BURIED ABNER IN HEBRON: AND THE KING LIFTED UP HIS VOICE, AND 5 WEPT AT THE GRAVE OF ABNER; AND ALL THE PEOPLE WEPT.NL# 33 AND THE KING LAMENTED OVER ABNER, AND SAID, DIED ABNER AS A FOOL DIETH?F# 34 THY HANDS WERE NOT BOUND, NOR THY FEET PUT INTO FETTERS: AS A MANJ FALLETH BEFORE WICKED MEN, SO FELLEST THOU. AND ALL THE PEOPLE WEPT AGAIN OVER HIM.M# 35 AND WHEN ALL THE PEOPLE CAME TO CAUSE DAVID TO EAT MEAT WHILE IT WAS YETRL DAY, DAVID SWARE, SAYING, SO DO GOD TO ME, AND MORE ALSO, IF I TASTE BREAD,% OR OUGHT ELSE, TILL THE SUN BE DOWN.EM# 36 AND ALL THE PEOPLE TOOK NOTICE OF IT, AND IT PLEASED THEM: AS WHATSOEVER % THE KING DID PLEASED ALL THE PEOPLE.DM# 37 FOR ALL THE PEOPLE AND ALL ISRAEL UNDERSTOOD THAT DAY THAT IT WAS NOT OF ' THE KING TO SLAY ABNER THE SON OF NER.RL# 38 AND THE KING SAID UNTO HIS SERVANTS, KNOW YE NOT THAT THERE IS A PRINCE+ AND A GREAT MAN FALLEN THIS DAY IN ISRAEL?TL# 39 AND I AM THIS DAY WEAK, THOUGH ANOINTED KING; AND THESE MEN THE SONS OFM ZERUIAH BE TOO HARD FOR ME: THE LORD SHALL REWARD THE DOER OF EVIL ACCORDINGA TO HIS WICKEDNESS.T = CHAPTER 4 J# 1 AND WHEN SAULS SON HEARD THAT ABNER WAS DEAD IN HEBRON, HIS HANDS WERE. FEEBLE, AND ALL THE ISRAELITES WERE TROUBLED.J# 2 AND SAULS SON HAD TWO MEN THAT WERE CAPTAINS OF BANDS: THE NAME OF THEG ONE WAS BAANAH, AND THE NAME OF THE OTHER RECHAB, THE SONS OF RIMMON AK BEEROTHITE, OF THE CHILDREN OF BENJAMIN: (FOR BEEROTH ALSO WAS RECKONED TOO BENJAMIN.M# 3 AND THE BEEROTHITES FLED TO GITTAIM, AND WERE SOJOURNERS THERE UNTIL THISE DAY.)M# 4 AND JONATHAN, SAULS SON, HAD A SON THAT WAS LAME OF HIS FEET. HE WAS FIVESM YEARS OLD WHEN THE TIDINGS CAME OF SAUL AND JONATHAN OUT OF JEZREEL, AND HISIM NURSE TOOK HIM UP, AND FLED: AND IT CAME TO PASS, AS SHE MADE HASTE TO FLEE,A> THAT HE FELL, AND BECAME LAME. AND HIS NAME WAS MEPHIBOSHETH.L# 5 AND THE SONS OF RIMMON THE BEEROTHITE, RECHAB AND BAANAH, WENT, AND CAMEJ ABOUT THE HEAT OF THE DAY TO THE HOUSE OF ISHBOSHETH, WHO LAY ON A BED AT NOON.K# 6 AND THEY CAME THITHER INTO THE MIDST OF THE HOUSE, AS THOUGH THEY WOULDHK HAVE FETCHED WHEAT; AND THEY SMOTE HIM UNDER THE FIFTH RIB: AND RECHAB AND  BAANAH HIS BROTHER ESCAPED.K# 7 FOR WHEN THEY CAME INTO THE HOUSE, HE LAY ON HIS BED IN HIS BEDCHAMBER,HK AND THEY SMOTE HIM, AND SLEW HIM, AND BEHEADED HIM, AND TOOK HIS HEAD, ANDI+ GAT THEM AWAY THROUGH THE PLAIN ALL NIGHT.OM# 8 AND THEY BROUGHT THE HEAD OF ISHBOSHETH UNTO DAVID TO HEBRON, AND SAID TOSK THE KING, BEHOLD THE HEAD OF ISHBOSHETH THE SON OF SAUL THINE ENEMY, WHICHTN SOUGHT THY LIFE; AND THE LORD HATH AVENGED MY LORD THE KING THIS DAY OF SAUL, AND OF 00h/Y/<%X>%+%O-%TADATADATAHIS SEED.TL# 9 AND DAVID ANSWERED RECHAB AND BAANAH HIS BROTHER, THE SONS OF RIMMON THEN BEEROTHITE, AND SAID UNTO THEM, AS THE LORD LIVETH, WHO HATH REDEEMED MY SOUL OUT OF ALL ADVERSITY,M# 10 WHEN ONE TOLD ME, SAYING, BEHOLD, SAUL IS DEAD, THINKING TO HAVE BROUGHTNM GOOD TIDINGS, I TOOK HOLD OF HIM, AND SLEW HIM IN ZIKLAG, WHO THOUGHT THAT IK/ WOULD HAVE GIVEN HIM A REWARD FOR HIS TIDINGS:LL# 11 HOW MUCH MORE, WHEN WICKED MEN HAVE SLAIN A RIGHTEOUS PERSON IN HIS OWNN HOUSE UPON HIS BED? SHALL I NOT THEREFORE NOW REQUIRE HIS BLOOD OF YOUR HAND," AND TAKE YOU AWAY FROM THE EARTH?M# 12 AND DAVID COMMANDED HIS YOUNG MEN, AND THEY SLEW THEM, AND CUT OFF THEIR K HANDS AND THEIR FEET, AND HANGED THEM UP OVER THE POOL IN HEBRON. BUT THEYDH TOOK THE HEAD OF ISHBOSHETH, AND BURIED IT IN THE SEPULCHRE OF ABNER IN HEBRON. = CHAPTER 5 G# 1 THEN CAME ALL THE TRIBES OF ISRAEL TO DAVID UNTO HEBRON, AND SPAKE,M/ SAYING, BEHOLD, WE ARE THY BONE AND THY FLESH.PL# 2 ALSO IN TIME PAST, WHEN SAUL WAS KING OVER US, THOU WAST HE THAT LEDDESTL OUT AND BROUGHTEST IN ISRAEL: AND THE LORD SAID TO THEE, THOU SHALT FEED MY8 PEOPLE ISRAEL, AND THOU SHALT BE A CAPTAIN OVER ISRAEL.J# 3 SO ALL THE ELDERS OF ISRAEL CAME TO THE KING TO HEBRON; AND KING DAVIDK MADE A LEAGUE WITH THEM IN HEBRON BEFORE THE LORD: AND THEY ANOINTED DAVIDH KING OVER ISRAEL.K# 4 DAVID WAS THIRTY YEARS OLD WHEN HE BEGAN TO REIGN, AND HE REIGNED FORTYS YEARS.HF# 5 IN HEBRON HE REIGNED OVER JUDAH SEVEN YEARS AND SIX MONTHS: AND ING JERUSALEM HE REIGNED THIRTY AND THREE YEARS OVER ALL ISRAEL AND JUDAH.:F# 6 AND THE KING AND HIS MEN WENT TO JERUSALEM UNTO THE JEBUSITES, THEJ INHABITANTS OF THE LAND: WHICH SPAKE UNTO DAVID, SAYING, EXCEPT THOU TAKEL AWAY THE BLIND AND THE LAME, THOU SHALT NOT COME IN HITHER: THINKING, DAVID CANNOT COME IN HITHER. L# 7 NEVERTHELESS DAVID TOOK THE STRONG HOLD OF ZION: THE SAME IS THE CITY OF DAVID.HG# 8 AND DAVID SAID ON THAT DAY, WHOSOEVER GETTETH UP TO THE GUTTER, ANDRK SMITETH THE JEBUSITES, AND THE LAME AND THE BLIND THAT ARE HATED OF DAVIDSLL SOUL, HE SHALL BE CHIEF AND CAPTAIN. WHEREFORE THEY SAID, THE BLIND AND THE$ LAME SHALL NOT COME INTO THE HOUSE.J# 9 SO DAVID DWELT IN THE FORT, AND CALLED IT THE CITY OF DAVID. AND DAVID) BUILT ROUND ABOUT FROM MILLO AND INWARD.KJ# 10 AND DAVID WENT ON, AND GREW GREAT, AND THE LORD GOD OF HOSTS WAS WITH HIM.FJ# 11 AND HIRAM KING OF TYRE SENT MESSENGERS TO DAVID, AND CEDAR TREES, AND7 CARPENTERS, AND MASONS: AND THEY BUILT DAVID AN HOUSE.SL# 12 AND DAVID PERCEIVED THAT THE LORD HAD ESTABLISHED HIM KING OVER ISRAEL,A AND THAT HE HAD EXALTED HIS KINGDOM FOR HIS PEOPLE ISRAELS SAKE.HL# 13 AND DAVID TOOK HIM MORE CONCUBINES AND WIVES OUT OF JERUSALEM, AFTER HEK WAS COME FROM HEBRON: AND THERE WERE YET SONS AND DAUGHTERS BORN TO DAVID.AJ# 14 AND THESE BE THE NAMES OF THOSE THAT WERE BORN UNTO HIM IN JERUSALEM;/ SHAMMUAH, AND SHOBAB, AND NATHAN, AND SOLOMON,D5# 15 IBHAR ALSO, AND ELISHUA, AND NEPHEG, AND JAPHIA,D-# 16 AND ELISHAMA, AND ELIADA, AND ELIPHALET.RJ# 17 BUT WHEN THE PHILISTINES HEARD THAT THEY HAD ANOINTED DAVID KING OVERN ISRAEL, ALL THE PHILISTINES CAME UP TO SEEK DAVID; AND DAVID HEARD OF IT, AND WENT DOWN TO THE HOLD. E# 18 THE PHILISTINES ALSO CAME AND SPREAD THEMSELVES IN THE VALLEY OFA REPHAIM.SA# 19 AND DAVID ENQUIRED OF THE LORD, SAYING, SHALL I GO UP TO THERK PHILISTINES? WILT THOU DELIVER THEM INTO MINE HAND? AND THE LORD SAID UNTO L DAVID, GO UP: FOR I WILL DOUBTLESS DELIVER THE PHILISTINES INTO THINE HAND.M# 20 AND DAVID CAME TO BAALPERAZIM, AND DAVID SMOTE THEM THERE, AND SAID, THETM LORD HATH BROKEN FORTH UPON MINE ENEMIES BEFORE ME, AS THE BREACH OF WATERS.I8 THEREFORE HE CALLED THE NAME OF THAT PLACE BAALPERAZIM.I# 21 AND THERE THEY LEFT THEIR IMAGES, AND DAVID AND HIS MEN BURNED THEM.9H# 22 AND THE PHILISTINES CAME UP YET AGAIN, AND SPREAD THEMSELVES IN THE VALLEY OF REPHAIM. L# 23 AND WHEN DAVID ENQUIRED OF THE LORD, HE SAID, THOU SHALT NOT GO UP; BUTJ FETCH A COMPASS BEHIND THEM, AND COME UPON THEM OVER AGAINS00h/g/D%5%T6%! !T THE MULBERRY TREES. M# 24 AND LET IT BE, WHEN THOU HEAREST THE SOUND OF A GOING IN THE TOPS OF THEEM MULBERRY TREES, THAT THEN THOU SHALT BESTIR THYSELF: FOR THEN SHALL THE LORDL: GO OUT BEFORE THEE, TO SMITE THE HOST OF THE PHILISTINES.C# 25 AND DAVID DID SO, AS THE LORD HAD COMMANDED HIM; AND SMOTE THET0 PHILISTINES FROM GEBA UNTIL THOU COME TO GAZER. = CHAPTER 6 G# 1 AGAIN, DAVID GATHERED TOGETHER ALL THE CHOSEN MEN OF ISRAEL, THIRTY THOUSAND.I# 2 AND DAVID AROSE, AND WENT WITH ALL THE PEOPLE THAT WERE WITH HIM FROM M BAALE OF JUDAH, TO BRING UP FROM THENCE THE ARK OF GOD, WHOSE NAME IS CALLEDMF BY THE NAME OF THE LORD OF HOSTS THAT DWELLETH BETWEEN THE CHERUBIMS.J# 3 AND THEY SET THE ARK OF GOD UPON A NEW CART, AND BROUGHT IT OUT OF THEF HOUSE OF ABINADAB THAT WAS IN GIBEAH: AND UZZAH AND AHIO, THE SONS OF ABINADAB, DRAVE THE NEW CART.I# 4 AND THEY BROUGHT IT OUT OF THE HOUSE OF ABINADAB WHICH WAS AT GIBEAH,F; ACCOMPANYING THE ARK OF GOD: AND AHIO WENT BEFORE THE ARK.IG# 5 AND DAVID AND ALL THE HOUSE OF ISRAEL PLAYED BEFORE THE LORD ON ALLFN MANNER OF INSTRUMENTS MADE OF FIR WOOD, EVEN ON HARPS, AND ON PSALTERIES, AND- ON TIMBRELS, AND ON CORNETS, AND ON CYMBALS.NM# 6 AND WHEN THEY CAME TO NACHONS THRESHINGFLOOR, UZZAH PUT FORTH HIS HAND TO < THE ARK OF GOD, AND TOOK HOLD OF IT; FOR THE OXEN SHOOK IT.J# 7 AND THE ANGER OF THE LORD WAS KINDLED AGAINST UZZAH; AND GOD SMOTE HIM: THERE FOR HIS ERROR; AND THERE HE DIED BY THE ARK OF GOD.L# 8 AND DAVID WAS DISPLEASED, BECAUSE THE LORD HAD MADE A BREACH UPON UZZAH:< AND HE CALLED THE NAME OF THE PLACE PEREZUZZAH TO THIS DAY.M# 9 AND DAVID WAS AFRAID OF THE LORD THAT DAY, AND SAID, HOW SHALL THE ARK OFN THE LORD COME TO ME? L# 10 SO DAVID WOULD NOT REMOVE THE ARK OF THE LORD UNTO HIM INTO THE CITY OFJ DAVID: BUT DAVID CARRIED IT ASIDE INTO THE HOUSE OF OBEDEDOM THE GITTITE.K# 11 AND THE ARK OF THE LORD CONTINUED IN THE HOUSE OF OBEDEDOM THE GITTITE D THREE MONTHS: AND THE LORD BLESSED OBEDEDOM, AND ALL HIS HOUSEHOLD.K# 12 AND IT WAS TOLD KING DAVID, SAYING, THE LORD HATH BLESSED THE HOUSE OFPJ OBEDEDOM, AND ALL THAT PERTAINETH UNTO HIM, BECAUSE OF THE ARK OF GOD. SOM DAVID WENT AND BROUGHT UP THE ARK OF GOD FROM THE HOUSE OF OBEDEDOM INTO THEO CITY OF DAVID WITH GLADNESS.TM# 13 AND IT WAS SO, THAT WHEN THEY THAT BARE THE ARK OF THE LORD HAD GONE SIXE( PACES, HE SACRIFICED OXEN AND FATLINGS.G# 14 AND DAVID DANCED BEFORE THE LORD WITH ALL HIS MIGHT; AND DAVID WASD GIRDED WITH A LINEN EPHOD.NM# 15 SO DAVID AND ALL THE HOUSE OF ISRAEL BROUGHT UP THE ARK OF THE LORD WITHE- SHOUTING, AND WITH THE SOUND OF THE TRUMPET.TI# 16 AND AS THE ARK OF THE LORD CAME INTO THE CITY OF DAVID, MICHAL SAULSTI DAUGHTER LOOKED THROUGH A WINDOW, AND SAW KING DAVID LEAPING AND DANCINGD4 BEFORE THE LORD; AND SHE DESPISED HIM IN HER HEART.M# 17 AND THEY BROUGHT IN THE ARK OF THE LORD, AND SET IT IN HIS PLACE, IN THE4I MIDST OF THE TABERNACLE THAT DAVID HAD PITCHED FOR IT: AND DAVID OFFEREDE5 BURNT OFFERINGS AND PEACE OFFERINGS BEFORE THE LORD. I# 18 AND AS SOON AS DAVID HAD MADE AN END OF OFFERING BURNT OFFERINGS ANDNI PEACE OFFERINGS, HE BLESSED THE PEOPLE IN THE NAME OF THE LORD OF HOSTS.AI# 19 AND HE DEALT AMONG ALL THE PEOPLE, EVEN AMONG THE WHOLE MULTITUDE OFEN ISRAEL, AS WELL TO THE WOMEN AS MEN, TO EVERY ONE A CAKE OF BREAD, AND A GOODN PIECE OF FLESH, AND A FLAGON OF WINE. SO ALL THE PEOPLE DEPARTED EVERY ONE TO HIS HOUSE.NK# 20 THEN DAVID RETURNED TO BLESS HIS HOUSEHOLD. AND MICHAL THE DAUGHTER OFPN SAUL CAME OUT TO MEET DAVID, AND SAID, HOW GLORIOUS WAS THE KING OF ISRAEL TOF DAY, WHO UNCOVERED HIMSELF TO DAY IN THE EYES OF THE HANDMAIDS OF HISE SERVANTS, AS ONE OF THE VAIN FELLOWS SHAMELESSLY UNCOVERETH HIMSELF!EG# 21 AND DAVID SAID UNTO MICHAL, IT WAS BEFORE THE LORD, WHICH CHOSE MENJ BEFORE THY FATHER, AND BEFORE ALL HIS HOUSE, TO APPOINT ME RULER OVER THEH PEOPLE OF THE LORD, OVER ISRAEL: THEREFORE WILL I PLAY BEFORE THE LORD.H# 22 AND I WILL YET BE MORE VILE THAN THUS, AND WILL BE BASE IN MINE OWNM SIGHT: AND OF THE00h/Y/<%X>%+%O-%TADATADATA MAIDSERVANTS WHICH THOU HAST SPOKEN OF, OF THEM SHALL I BEH HAD IN HONOUR.LK# 23 THEREFORE MICHAL THE DAUGHTER OF SAUL HAD NO CHILD UNTO THE DAY OF HERE DEATH.M = CHAPTER 7 I# 1 AND IT CAME TO PASS, WHEN THE KING SAT IN HIS HOUSE, AND THE LORD HADI1 GIVEN HIM REST ROUND ABOUT FROM ALL HIS ENEMIES;SL# 2 THAT THE KING SAID UNTO NATHAN THE PROPHET, SEE NOW, I DWELL IN AN HOUSE7 OF CEDAR, BUT THE ARK OF GOD DWELLETH WITHIN CURTAINS.MK# 3 AND NATHAN SAID TO THE KING, GO, DO ALL THAT IS IN THINE HEART; FOR THEA LORD IS WITH THEE.PG# 4 AND IT CAME TO PASS THAT NIGHT, THAT THE WORD OF THE LORD CAME UNTO  NATHAN, SAYING,M# 5 GO AND TELL MY SERVANT DAVID, THUS SAITH THE LORD, SHALT THOU BUILD ME ANS HOUSE FOR ME TO DWELL IN?J# 6 WHEREAS I HAVE NOT DWELT IN ANY HOUSE SINCE THE TIME THAT I BROUGHT UPL THE CHILDREN OF ISRAEL OUT OF EGYPT, EVEN TO THIS DAY, BUT HAVE WALKED IN A TENT AND IN A TABERNACLE.K# 7 IN ALL THE PLACES WHEREIN I HAVE WALKED WITH ALL THE CHILDREN OF ISRAELHM SPAKE I A WORD WITH ANY OF THE TRIBES OF ISRAEL, WHOM I COMMANDED TO FEED MYH> PEOPLE ISRAEL, SAYING, WHY BUILD YE NOT ME AN HOUSE OF CEDAR?I# 8 NOW THEREFORE SO SHALT THOU SAY UNTO MY SERVANT DAVID, THUS SAITH THEEL LORD OF HOSTS, I TOOK THEE FROM THE SHEEPCOTE, FROM FOLLOWING THE SHEEP, TO& BE RULER OVER MY PEOPLE, OVER ISRAEL:H# 9 AND I WAS WITH THEE WHITHERSOEVER THOU WENTEST, AND HAVE CUT OFF ALLK THINE ENEMIES OUT OF THY SIGHT, AND HAVE MADE THEE A GREAT NAME, LIKE UNTOT1 THE NAME OF THE GREAT MEN THAT ARE IN THE EARTH. I# 10 MOREOVER I WILL APPOINT A PLACE FOR MY PEOPLE ISRAEL, AND WILL PLANT M THEM, THAT THEY MAY DWELL IN A PLACE OF THEIR OWN, AND MOVE NO MORE; NEITHEROG SHALL THE CHILDREN OF WICKEDNESS AFFLICT THEM ANY MORE, AS BEFORETIME,SG# 11 AND AS SINCE THE TIME THAT I COMMANDED JUDGES TO BE OVER MY PEOPLERK ISRAEL, AND HAVE CAUSED THEE TO REST FROM ALL THINE ENEMIES. ALSO THE LORDL. TELLETH THEE THAT HE WILL MAKE THEE AN HOUSE.M# 12 AND WHEN THY DAYS BE FULFILLED, AND THOU SHALT SLEEP WITH THY FATHERS, IHN WILL SET UP THY SEED AFTER THEE, WHICH SHALL PROCEED OUT OF THY BOWELS, AND I WILL ESTABLISH HIS KINGDOM.K# 13 HE SHALL BUILD AN HOUSE FOR MY NAME, AND I WILL STABLISH THE THRONE OFE HIS KINGDOM FOR EVER.K# 14 I WILL BE HIS FATHER, AND HE SHALL BE MY SON. IF HE COMMIT INIQUITY, IEN WILL CHASTEN HIM WITH THE ROD OF MEN, AND WITH THE STRIPES OF THE CHILDREN OF MEN:EI# 15 BUT MY MERCY SHALL NOT DEPART AWAY FROM HIM, AS I TOOK IT FROM SAUL,A WHOM I PUT AWAY BEFORE THEE. I# 16 AND THINE HOUSE AND THY KINGDOM SHALL BE ESTABLISHED FOR EVER BEFORER0 THEE: THY THRONE SHALL BE ESTABLISHED FOR EVER.K# 17 ACCORDING TO ALL THESE WORDS, AND ACCORDING TO ALL THIS VISION, SO DID  NATHAN SPEAK UNTO DAVID.RM# 18 THEN WENT KING DAVID IN, AND SAT BEFORE THE LORD, AND HE SAID, WHO AM I,YF O LORD GOD? AND WHAT IS MY HOUSE, THAT THOU HAST BROUGHT ME HITHERTO?K# 19 AND THIS WAS YET A SMALL THING IN THY SIGHT, O LORD GOD; BUT THOU HASTTM SPOKEN ALSO OF THY SERVANTS HOUSE FOR A GREAT WHILE TO COME. AND IS THIS THEY MANNER OF MAN, O LORD GOD? K# 20 AND WHAT CAN DAVID SAY MORE UNTO THEE? FOR THOU, LORD GOD, KNOWEST THYR SERVANT. M# 21 FOR THY WORDS SAKE, AND ACCORDING TO THINE OWN HEART, HAST THOU DONE ALLD3 THESE GREAT THINGS, TO MAKE THY SERVANT KNOW THEM.LG# 22 WHEREFORE THOU ART GREAT, O LORD GOD: FOR THERE IS NONE LIKE THEE,UJ NEITHER IS THERE ANY GOD BESIDE THEE, ACCORDING TO ALL THAT WE HAVE HEARD WITH OUR EARS. K# 23 AND WHAT ONE NATION IN THE EARTH IS LIKE THY PEOPLE, EVEN LIKE ISRAEL, M WHOM GOD WENT TO REDEEM FOR A PEOPLE TO HIMSELF, AND TO MAKE HIM A NAME, ANDTJ TO DO FOR YOU GREAT THINGS AND TERRIBLE, FOR THY LAND, BEFORE THY PEOPLE,K WHICH THOU REDEEMEDST TO THEE FROM EGYPT, FROM THE NATIONS AND THEIR GODS?,M# 24 FOR THOU HAST CONFIRMED TO THYSELF THY PEOPLE ISRAEL TO BE A PEOPLE UNTOR5 THEE FOR EVER: AND THOU, LORD, ART BECOME THEIR GOD.EG# 25 AND NOW, O LORD GOD, THE WORD THAT THOU HAST SPOKEN CONCERNING THYDN SERVANT, AND CONCERNING HIS HOUSE, ESTABLISH IT FOR EVER, AND DO 00h/g/D%5%T6%! !AS THOU HAST SAID.M# 26 AND LET THY NAME BE MAGNIFIED FOR EVER, SAYING, THE LORD OF HOSTS IS THEEN GOD OVER ISRAEL: AND LET THE HOUSE OF THY SERVANT DAVID BE ESTABLISHED BEFORE THEE.L# 27 FOR THOU, O LORD OF HOSTS, GOD OF ISRAEL, HAST REVEALED TO THY SERVANT,L SAYING, I WILL BUILD THEE AN HOUSE: THEREFORE HATH THY SERVANT FOUND IN HIS% HEART TO PRAY THIS PRAYER UNTO THEE.WL# 28 AND NOW, O LORD GOD, THOU ART THAT GOD, AND THY WORDS BE TRUE, AND THOU. HAST PROMISED THIS GOODNESS UNTO THY SERVANT:M# 29 THEREFORE NOW LET IT PLEASE THEE TO BLESS THE HOUSE OF THY SERVANT, THATEL IT MAY CONTINUE FOR EVER BEFORE THEE: FOR THOU, O LORD GOD, HAST SPOKEN IT:H AND WITH THY BLESSING LET THE HOUSE OF THY SERVANT BE BLESSED FOR EVER. = CHAPTER 8 H# 1 AND AFTER THIS IT CAME TO PASS THAT DAVID SMOTE THE PHILISTINES, ANDM SUBDUED THEM: AND DAVID TOOK METHEGAMMAH OUT OF THE HAND OF THE PHILISTINES.WJ# 2 AND HE SMOTE MOAB, AND MEASURED THEM WITH A LINE, CASTING THEM DOWN TOJ THE GROUND; EVEN WITH TWO LINES MEASURED HE TO PUT TO DEATH, AND WITH ONEI FULL LINE TO KEEP ALIVE. AND SO THE MOABITES BECAME DAVIDS SERVANTS, ANDT BROUGHT GIFTS.LK# 3 DAVID SMOTE ALSO HADADEZER, THE SON OF REHOB, KING OF ZOBAH, AS HE WENT . TO RECOVER HIS BORDER AT THE RIVER EUPHRATES.L# 4 AND DAVID TOOK FROM HIM A THOUSAND CHARIOTS, AND SEVEN HUNDRED HORSEMEN,K AND TWENTY THOUSAND FOOTMEN: AND DAVID HOUGHED ALL THE CHARIOT HORSES, BUTO* RESERVED OF THEM FOR AN HUNDRED CHARIOTS.M# 5 AND WHEN THE SYRIANS OF DAMASCUS CAME TO SUCCOUR HADADEZER KING OF ZOBAH, 7 DAVID SLEW OF THE SYRIANS TWO AND TWENTY THOUSAND MEN.EI# 6 THEN DAVID PUT GARRISONS IN SYRIA OF DAMASCUS: AND THE SYRIANS BECAMEDC SERVANTS TO DAVID, AND BROUGHT GIFTS. AND THE LORD PRESERVED DAVIDO WHITHERSOEVER HE WENT.EC# 7 AND DAVID TOOK THE SHIELDS OF GOLD THAT WERE ON THE SERVANTS OFD* HADADEZER, AND BROUGHT THEM TO JERUSALEM.K# 8 AND FROM BETAH, AND FROM BEROTHAI, CITIES OF HADADEZER, KING DAVID TOOKD EXCEEDING MUCH BRASS.H# 9 WHEN TOI KING OF HAMATH HEARD THAT DAVID HAD SMITTEN ALL THE HOST OF HADADEZER,SM# 10 THEN TOI SENT JORAM HIS SON UNTO KING DAVID, TO SALUTE HIM, AND TO BLESSDM HIM, BECAUSE HE HAD FOUGHT AGAINST HADADEZER, AND SMITTEN HIM: FOR HADADEZEREM HAD WARS WITH TOI. AND JORAM BROUGHT WITH HIM VESSELS OF SILVER, AND VESSELSS OF GOLD, AND VESSELS OF BRASS:SJ# 11 WHICH ALSO KING DAVID DID DEDICATE UNTO THE LORD, WITH THE SILVER AND< GOLD THAT HE HAD DEDICATED OF ALL NATIONS WHICH HE SUBDUED;D# 12 OF SYRIA, AND OF MOAB, AND OF THE CHILDREN OF AMMON, AND OF THEN PHILISTINES, AND OF AMALEK, AND OF THE SPOIL OF HADADEZER, SON OF REHOB, KING OF ZOBAH.M# 13 AND DAVID GAT HIM A NAME WHEN HE RETURNED FROM SMITING OF THE SYRIANS INH1 THE VALLEY OF SALT, BEING EIGHTEEN THOUSAND MEN.RL# 14 AND HE PUT GARRISONS IN EDOM; THROUGHOUT ALL EDOM PUT HE GARRISONS, ANDF ALL THEY OF EDOM BECAME DAVIDS SERVANTS. AND THE LORD PRESERVED DAVID WHITHERSOEVER HE WENT. G# 15 AND DAVID REIGNED OVER ALL ISRAEL; AND DAVID EXECUTED JUDGMENT ANDN JUSTICE UNTO ALL HIS PEOPLE. K# 16 AND JOAB THE SON OF ZERUIAH WAS OVER THE HOST; AND JEHOSHAPHAT THE SONH OF AHILUD WAS RECORDER;M# 17 AND ZADOK THE SON OF AHITUB, AND AHIMELECH THE SON OF ABIATHAR, WERE THEE% PRIESTS; AND SERAIAH WAS THE SCRIBE;DJ# 18 AND BENAIAH THE SON OF JEHOIADA WAS OVER BOTH THE CHERETHITES AND THE/ PELETHITES; AND DAVIDS SONS WERE CHIEF RULERS.S = CHAPTER 9 N# 1 AND DAVID SAID, IS THERE YET ANY THAT IS LEFT OF THE HOUSE OF SAUL, THAT I* MAY SHEW HIM KINDNESS FOR JONATHANS SAKE?I# 2 AND THERE WAS OF THE HOUSE OF SAUL A SERVANT WHOSE NAME WAS ZIBA. ANDTL WHEN THEY HAD CALLED HIM UNTO DAVID, THE KING SAID UNTO HIM, ART THOU ZIBA? AND HE SAID, THY SERVANT IS HE.L# 3 AND THE KING SAID, IS THERE NOT YET ANY OF THE HOUSE OF SAUL, THAT I MAYN SHEW THE KINDNESS OF GOD UNTO HIM? AND ZIBA SAID UNTO THE KING, JONATHAN HATH& YET A SON, WHICH IS LAME ON HIS FEET.I# 4 AND THE KING SAID UNTO HIM, WHERE IS HE? AND ZIBA SAID UNTO THE KING, E BEHOLD, HE IS IN THE HOUSE OF MACHIR, THE SON OF AMMIEL, IN00h/Y/<%X>%+%O-%TADATADATA LODEBAR.FM# 5 THEN KING DAVID SENT, AND FETCHED HIM OUT OF THE HOUSE OF MACHIR, THE SONI OF AMMIEL, FROM LODEBAR. I# 6 NOW WHEN MEPHIBOSHETH, THE SON OF JONATHAN, THE SON OF SAUL, WAS COMEGD UNTO DAVID, HE FELL ON HIS FACE, AND DID REVERENCE. AND DAVID SAID,3 MEPHIBOSHETH. AND HE ANSWERED, BEHOLD THY SERVANT!NK# 7 AND DAVID SAID UNTO HIM, FEAR NOT: FOR I WILL SURELY SHEW THEE KINDNESSIN FOR JONATHAN THY FATHERS SAKE, AND WILL RESTORE THEE ALL THE LAND OF SAUL THY: FATHER; AND THOU SHALT EAT BREAD AT MY TABLE CONTINUALLY.L# 8 AND HE BOWED HIMSELF, AND SAID, WHAT IS THY SERVANT, THAT THOU SHOULDEST# LOOK UPON SUCH A DEAD DOG AS I AM?OJ# 9 THEN THE KING CALLED TO ZIBA, SAULS SERVANT, AND SAID UNTO HIM, I HAVEL GIVEN UNTO THY MASTERS SON ALL THAT PERTAINED TO SAUL AND TO ALL HIS HOUSE.L# 10 THOU THEREFORE, AND THY SONS, AND THY SERVANTS, SHALL TILL THE LAND FORL HIM, AND THOU SHALT BRING IN THE FRUITS, THAT THY MASTERS SON MAY HAVE FOODL TO EAT: BUT MEPHIBOSHETH THY MASTERS SON SHALL EAT BREAD ALWAY AT MY TABLE./ NOW ZIBA HAD FIFTEEN SONS AND TWENTY SERVANTS.TI# 11 THEN SAID ZIBA UNTO THE KING, ACCORDING TO ALL THAT MY LORD THE KINGJ HATH COMMANDED HIS SERVANT, SO SHALL THY SERVANT DO. AS FOR MEPHIBOSHETH,C SAID THE KING, HE SHALL EAT AT MY TABLE, AS ONE OF THE KINGS SONS. I# 12 AND MEPHIBOSHETH HAD A YOUNG SON, WHOSE NAME WAS MICHA. AND ALL THAT < DWELT IN THE HOUSE OF ZIBA WERE SERVANTS UNTO MEPHIBOSHETH.J# 13 SO MEPHIBOSHETH DWELT IN JERUSALEM: FOR HE DID EAT CONTINUALLY AT THE, KINGS TABLE; AND WAS LAME ON BOTH HIS FEET. = CHAPTER 10 EJ# 1 AND IT CAME TO PASS AFTER THIS, THAT THE KING OF THE CHILDREN OF AMMON. DIED, AND HANUN HIS SON REIGNED IN HIS STEAD.J# 2 THEN SAID DAVID, I WILL SHEW KINDNESS UNTO HANUN THE SON OF NAHASH, ASN HIS FATHER SHEWED KINDNESS UNTO ME. AND DAVID SENT TO COMFORT HIM BY THE HANDN OF HIS SERVANTS FOR HIS FATHER. AND DAVIDS SERVANTS CAME INTO THE LAND OF THE CHILDREN OF AMMON.SH# 3 AND THE PRINCES OF THE CHILDREN OF AMMON SAID UNTO HANUN THEIR LORD,N THINKEST THOU THAT DAVID DOTH HONOUR THY FATHER, THAT HE HATH SENT COMFORTERSL UNTO THEE? HATH NOT DAVID RATHER SENT HIS SERVANTS UNTO THEE, TO SEARCH THE. CITY, AND TO SPY IT OUT, AND TO OVERTHROW IT?H# 4 WHEREFORE HANUN TOOK DAVIDS SERVANTS, AND SHAVED OFF THE ONE HALF OFF THEIR BEARDS, AND CUT OFF THEIR GARMENTS IN THE MIDDLE, EVEN TO THEIR BUTTOCKS, AND SENT THEM AWAY.L# 5 WHEN THEY TOLD IT UNTO DAVID, HE SENT TO MEET THEM, BECAUSE THE MEN WEREJ GREATLY ASHAMED: AND THE KING SAID, TARRY AT JERICHO UNTIL YOUR BEARDS BE GROWN, AND THEN RETURN.H# 6 AND WHEN THE CHILDREN OF AMMON SAW THAT THEY STANK BEFORE DAVID, THEM CHILDREN OF AMMON SENT AND HIRED THE SYRIANS OF BETHREHOB AND THE SYRIANS OF?I ZOBA, TWENTY THOUSAND FOOTMEN, AND OF KING MAACAH A THOUSAND MEN, AND OF ISHTOB TWELVE THOUSAND MEN.L# 7 AND WHEN DAVID HEARD OF IT, HE SENT JOAB, AND ALL THE HOST OF THE MIGHTY MEN.EJ# 8 AND THE CHILDREN OF AMMON CAME OUT, AND PUT THE BATTLE IN ARRAY AT THEL ENTERING IN OF THE GATE: AND THE SYRIANS OF ZOBA, AND OF REHOB, AND ISHTOB,- AND MAACAH, WERE BY THEMSELVES IN THE FIELD.NI# 9 WHEN JOAB SAW THAT THE FRONT OF THE BATTLE WAS AGAINST HIM BEFORE ANDHH BEHIND, HE CHOSE OF ALL THE CHOICE MEN OF ISRAEL, AND PUT THEM IN ARRAY AGAINST THE SYRIANS:TI# 10 AND THE REST OF THE PEOPLE HE DELIVERED INTO THE HAND OF ABISHAI HISDH BROTHER, THAT HE MIGHT PUT THEM IN ARRAY AGAINST THE CHILDREN OF AMMON.K# 11 AND HE SAID, IF THE SYRIANS BE TOO STRONG FOR ME, THEN THOU SHALT HELPON ME: BUT IF THE CHILDREN OF AMMON BE TOO STRONG FOR THEE, THEN I WILL COME AND HELP THEE.EL# 12 BE OF GOOD COURAGE, AND LET US PLAY THE MEN FOR OUR PEOPLE, AND FOR THE@ CITIES OF OUR GOD: AND THE LORD DO THAT WHICH SEEMETH HIM GOOD.K# 13 AND JOAB DREW NIGH, AND THE PEOPLE THAT WERE WITH HIM, UNTO THE BATTLEL/ AGAINST THE SYRIANS: AND THEY FLED BEFORE HIM.OM# 14 AND WHEN THE CHILDREN OF AMMON SAW THAT THE SYRIANS WERE FLED, THEN FLEDHK THEY ALSO BEFORE ABISHAI, AND ENTERED INTO THE CITY. SO JOAB RETURNED FROMI. THE CHILDRE00h/g/D%5%T6%! !N OF AMMON, AND CAME TO JERUSALEM.H# 15 AND WHEN THE SYRIANS SAW THAT THEY WERE SMITTEN BEFORE ISRAEL, THEY GATHERED THEMSELVES TOGETHER.I# 16 AND HADAREZER SENT, AND BROUGHT OUT THE SYRIANS THAT WERE BEYOND THE F RIVER: AND THEY CAME TO HELAM; AND SHOBACH THE CAPTAIN OF THE HOST OF HADAREZER WENT BEFORE THEM.L# 17 AND WHEN IT WAS TOLD DAVID, HE GATHERED ALL ISRAEL TOGETHER, AND PASSEDH OVER JORDAN, AND CAME TO HELAM. AND THE SYRIANS SET THEMSELVES IN ARRAY$ AGAINST DAVID, AND FOUGHT WITH HIM.H# 18 AND THE SYRIANS FLED BEFORE ISRAEL; AND DAVID SLEW THE MEN OF SEVENH HUNDRED CHARIOTS OF THE SYRIANS, AND FORTY THOUSAND HORSEMEN, AND SMOTE3 SHOBACH THE CAPTAIN OF THEIR HOST, WHO DIED THERE.AI# 19 AND WHEN ALL THE KINGS THAT WERE SERVANTS TO HADAREZER SAW THAT THEY M WERE SMITTEN BEFORE ISRAEL, THEY MADE PEACE WITH ISRAEL, AND SERVED THEM. SOH; THE SYRIANS FEARED TO HELP THE CHILDREN OF AMMON ANY MORE. = CHAPTER 11 AN# 1 AND IT CAME TO PASS, AFTER THE YEAR WAS EXPIRED, AT THE TIME WHEN KINGS GOJ FORTH TO BATTLE, THAT DAVID SENT JOAB, AND HIS SERVANTS WITH HIM, AND ALLK ISRAEL; AND THEY DESTROYED THE CHILDREN OF AMMON, AND BESIEGED RABBAH. BUTH" DAVID TARRIED STILL AT JERUSALEM.M# 2 AND IT CAME TO PASS IN AN EVENINGTIDE, THAT DAVID AROSE FROM OFF HIS BED,TN AND WALKED UPON THE ROOF OF THE KINGS HOUSE: AND FROM THE ROOF HE SAW A WOMAN@ WASHING HERSELF; AND THE WOMAN WAS VERY BEAUTIFUL TO LOOK UPON.J# 3 AND DAVID SENT AND ENQUIRED AFTER THE WOMAN. AND ONE SAID, IS NOT THISA BATHSHEBA, THE DAUGHTER OF ELIAM, THE WIFE OF URIAH THE HITTITE?IM# 4 AND DAVID SENT MESSENGERS, AND TOOK HER; AND SHE CAME IN UNTO HIM, AND HE,J LAY WITH HER; FOR SHE WAS PURIFIED FROM HER UNCLEANNESS: AND SHE RETURNED UNTO HER HOUSE.I# 5 AND THE WOMAN CONCEIVED, AND SENT AND TOLD DAVID, AND SAID, I AM WITH  CHILD.NL# 6 AND DAVID SENT TO JOAB, SAYING, SEND ME URIAH THE HITTITE. AND JOAB SENT URIAH TO DAVID.M# 7 AND WHEN URIAH WAS COME UNTO HIM, DAVID DEMANDED OF HIM HOW JOAB DID, AND / HOW THE PEOPLE DID, AND HOW THE WAR PROSPERED.WI# 8 AND DAVID SAID TO URIAH, GO DOWN TO THY HOUSE, AND WASH THY FEET. ANDDM URIAH DEPARTED OUT OF THE KINGS HOUSE, AND THERE FOLLOWED HIM A MESS OF MEATC FROM THE KING. K# 9 BUT URIAH SLEPT AT THE DOOR OF THE KINGS HOUSE WITH ALL THE SERVANTS OFV* HIS LORD, AND WENT NOT DOWN TO HIS HOUSE.G# 10 AND WHEN THEY HAD TOLD DAVID, SAYING, URIAH WENT NOT DOWN UNTO HISII HOUSE, DAVID SAID UNTO URIAH, CAMEST THOU NOT FROM THY JOURNEY? WHY THENO) DIDST THOU NOT GO DOWN UNTO THINE HOUSE?HH# 11 AND URIAH SAID UNTO DAVID, THE ARK, AND ISRAEL, AND JUDAH, ABIDE INJ TENTS; AND MY LORD JOAB, AND THE SERVANTS OF MY LORD, ARE ENCAMPED IN THEN OPEN FIELDS; SHALL I THEN GO INTO MINE HOUSE, TO EAT AND TO DRINK, AND TO LIEI WITH MY WIFE? AS THOU LIVEST, AND AS THY SOUL LIVETH, I WILL NOT DO THIST THING.SJ# 12 AND DAVID SAID TO URIAH, TARRY HERE TO DAY ALSO, AND TO MORROW I WILLG LET THEE DEPART. SO URIAH ABODE IN JERUSALEM THAT DAY, AND THE MORROW.EK# 13 AND WHEN DAVID HAD CALLED HIM, HE DID EAT AND DRINK BEFORE HIM; AND HEDL MADE HIM DRUNK: AND AT EVEN HE WENT OUT TO LIE ON HIS BED WITH THE SERVANTS- OF HIS LORD, BUT WENT NOT DOWN TO HIS HOUSE. K# 14 AND IT CAME TO PASS IN THE MORNING, THAT DAVID WROTE A LETTER TO JOAB,T" AND SENT IT BY THE HAND OF URIAH.M# 15 AND HE WROTE IN THE LETTER, SAYING, SET YE URIAH IN THE FOREFRONT OF THERI HOTTEST BATTLE, AND RETIRE YE FROM HIM, THAT HE MAY BE SMITTEN, AND DIE.IM# 16 AND IT CAME TO PASS, WHEN JOAB OBSERVED THE CITY, THAT HE ASSIGNED URIAHD2 UNTO A PLACE WHERE HE KNEW THAT VALIANT MEN WERE.K# 17 AND THE MEN OF THE CITY WENT OUT, AND FOUGHT WITH JOAB: AND THERE FELL N SOME OF THE PEOPLE OF THE SERVANTS OF DAVID; AND URIAH THE HITTITE DIED ALSO.E# 18 THEN JOAB SENT AND TOLD DAVID ALL THE THINGS CONCERNING THE WAR;5M# 19 AND CHARGED THE MESSENGER, SAYING, WHEN THOU HAST MADE AN END OF TELLINGT& THE MATTERS OF THE WAR UNTO THE KING,M# 20 AND IF SO BE THAT THE KINGS WRATH ARISE, AND HE SAY UNTO THEE, WHEREFOREEM APPROACHED YE SO NIGH UNTO THE 00h/Y/<%X>%+%O-%TADATADATACITY WHEN YE DID FIGHT? KNEW YE NOT THAT THEYR WOULD SHOOT FROM THE WALL?IH# 21 WHO SMOTE ABIMELECH THE SON OF JERUBBESHETH? DID NOT A WOMAN CAST AN PIECE OF A MILLSTONE UPON HIM FROM THE WALL, THAT HE DIED IN THEBEZ? WHY WENTM YE NIGH THE WALL? THEN SAY THOU, THY SERVANT URIAH THE HITTITE IS DEAD ALSO.RL# 22 SO THE MESSENGER WENT, AND CAME AND SHEWED DAVID ALL THAT JOAB HAD SENT HIM FOR.L# 23 AND THE MESSENGER SAID UNTO DAVID, SURELY THE MEN PREVAILED AGAINST US,I AND CAME OUT UNTO US INTO THE FIELD, AND WE WERE UPON THEM EVEN UNTO THET ENTERING OF THE GATE.K# 24 AND THE SHOOTERS SHOT FROM OFF THE WALL UPON THY SERVANTS; AND SOME OF L THE KINGS SERVANTS BE DEAD, AND THY SERVANT URIAH THE HITTITE IS DEAD ALSO.K# 25 THEN DAVID SAID UNTO THE MESSENGER, THUS SHALT THOU SAY UNTO JOAB, LETDF NOT THIS THING DISPLEASE THEE, FOR THE SWORD DEVOURETH ONE AS WELL ASM ANOTHER: MAKE THY BATTLE MORE STRONG AGAINST THE CITY, AND OVERTHROW IT: ANDE ENCOURAGE THOU HIM.J# 26 AND WHEN THE WIFE OF URIAH HEARD THAT URIAH HER HUSBAND WAS DEAD, SHE MOURNED FOR HER HUSBAND..M# 27 AND WHEN THE MOURNING WAS PAST, DAVID SENT AND FETCHED HER TO HIS HOUSE,J AND SHE BECAME HIS WIFE, AND BARE HIM A SON. BUT THE THING THAT DAVID HAD DONE DISPLEASED THE LORD. = CHAPTER 12 TL# 1 AND THE LORD SENT NATHAN UNTO DAVID. AND HE CAME UNTO HIM, AND SAID UNTOG HIM, THERE WERE TWO MEN IN ONE CITY; THE ONE RICH, AND THE OTHER POOR.S5# 2 THE RICH MAN HAD EXCEEDING MANY FLOCKS AND HERDS:.H# 3 BUT THE POOR MAN HAD NOTHING, SAVE ONE LITTLE EWE LAMB, WHICH HE HADH BOUGHT AND NOURISHED UP: AND IT GREW UP TOGETHER WITH HIM, AND WITH HISK CHILDREN; IT DID EAT OF HIS OWN MEAT, AND DRANK OF HIS OWN CUP, AND LAY INA+ HIS BOSOM, AND WAS UNTO HIM AS A DAUGHTER.PJ# 4 AND THERE CAME A TRAVELLER UNTO THE RICH MAN, AND HE SPARED TO TAKE OFK HIS OWN FLOCK AND OF HIS OWN HERD, TO DRESS FOR THE WAYFARING MAN THAT WAS L COME UNTO HIM; BUT TOOK THE POOR MANS LAMB, AND DRESSED IT FOR THE MAN THAT WAS COME TO HIM.HH# 5 AND DAVIDS ANGER WAS GREATLY KINDLED AGAINST THE MAN; AND HE SAID TOK NATHAN, AS THE LORD LIVETH, THE MAN THAT HATH DONE THIS THING SHALL SURELY  DIE: J# 6 AND HE SHALL RESTORE THE LAMB FOURFOLD, BECAUSE HE DID THIS THING, AND BECAUSE HE HAD NO PITY.J# 7 AND NATHAN SAID TO DAVID, THOU ART THE MAN. THUS SAITH THE LORD GOD OFJ ISRAEL, I ANOINTED THEE KING OVER ISRAEL, AND I DELIVERED THEE OUT OF THE HAND OF SAUL;L# 8 AND I GAVE THEE THY MASTERS HOUSE, AND THY MASTERS WIVES INTO THY BOSOM,I AND GAVE THEE THE HOUSE OF ISRAEL AND OF JUDAH; AND IF THAT HAD BEEN TOO D LITTLE, I WOULD MOREOVER HAVE GIVEN UNTO THEE SUCH AND SUCH THINGS.K# 9 WHEREFORE HAST THOU DESPISED THE COMMANDMENT OF THE LORD, TO DO EVIL INDM HIS SIGHT? THOU HAST KILLED URIAH THE HITTITE WITH THE SWORD, AND HAST TAKENAN HIS WIFE TO BE THY WIFE, AND HAST SLAIN HIM WITH THE SWORD OF THE CHILDREN OF AMMON.DI# 10 NOW THEREFORE THE SWORD SHALL NEVER DEPART FROM THINE HOUSE; BECAUSEON THOU HAST DESPISED ME, AND HAST TAKEN THE WIFE OF URIAH THE HITTITE TO BE THY WIFE.J# 11 THUS SAITH THE LORD, BEHOLD, I WILL RAISE UP EVIL AGAINST THEE OUT OFL THINE OWN HOUSE, AND I WILL TAKE THY WIVES BEFORE THINE EYES, AND GIVE THEMN UNTO THY NEIGHBOUR, AND HE SHALL LIE WITH THY WIVES IN THE SIGHT OF THIS SUN.L# 12 FOR THOU DIDST IT SECRETLY: BUT I WILL DO THIS THING BEFORE ALL ISRAEL, AND BEFORE THE SUN.K# 13 AND DAVID SAID UNTO NATHAN, I HAVE SINNED AGAINST THE LORD. AND NATHANUJ SAID UNTO DAVID, THE LORD ALSO HATH PUT AWAY THY SIN; THOU SHALT NOT DIE.H# 14 HOWBEIT, BECAUSE BY THIS DEED THOU HAST GIVEN GREAT OCCASION TO THEN ENEMIES OF THE LORD TO BLASPHEME, THE CHILD ALSO THAT IS BORN UNTO THEE SHALL SURELY DIE.K# 15 AND NATHAN DEPARTED UNTO HIS HOUSE. AND THE LORD STRUCK THE CHILD THAT 3 URIAHS WIFE BARE UNTO DAVID, AND IT WAS VERY SICK.WK# 16 DAVID THEREFORE BESOUGHT GOD FOR THE CHILD; AND DAVID FASTED, AND WENTI& IN, AND LAY ALL NIGHT UPON THE EARTH.M# 17 AND THE ELDERS OF HIS HOUSE AROSE, AND WENT TO HIM, TO RAISE HIM UP FROM A THE EARTH: BUT HE W00h/g/D%5%T6%! !OULD NOT, NEITHER DID HE EAT BREAD WITH THEM.GI# 18 AND IT CAME TO PASS ON THE SEVENTH DAY, THAT THE CHILD DIED. AND THETM SERVANTS OF DAVID FEARED TO TELL HIM THAT THE CHILD WAS DEAD: FOR THEY SAID,.K BEHOLD, WHILE THE CHILD WAS YET ALIVE, WE SPAKE UNTO HIM, AND HE WOULD NOTSN HEARKEN UNTO OUR VOICE: HOW WILL HE THEN VEX HIMSELF, IF WE TELL HIM THAT THE CHILD IS DEAD?AM# 19 BUT WHEN DAVID SAW THAT HIS SERVANTS WHISPERED, DAVID PERCEIVED THAT THEEK CHILD WAS DEAD: THEREFORE DAVID SAID UNTO HIS SERVANTS, IS THE CHILD DEAD?E AND THEY SAID, HE IS DEAD.AK# 20 THEN DAVID AROSE FROM THE EARTH, AND WASHED, AND ANOINTED HIMSELF, ANDTJ CHANGED HIS APPAREL, AND CAME INTO THE HOUSE OF THE LORD, AND WORSHIPPED:K THEN HE CAME TO HIS OWN HOUSE; AND WHEN HE REQUIRED, THEY SET BREAD BEFOREA HIM, AND HE DID EAT.WM# 21 THEN SAID HIS SERVANTS UNTO HIM, WHAT THING IS THIS THAT THOU HAST DONE?WI THOU DIDST FAST AND WEEP FOR THE CHILD, WHILE IT WAS ALIVE; BUT WHEN THED/ CHILD WAS DEAD, THOU DIDST RISE AND EAT BREAD.,I# 22 AND HE SAID, WHILE THE CHILD WAS YET ALIVE, I FASTED AND WEPT: FOR IRJ SAID, WHO CAN TELL WHETHER GOD WILL BE GRACIOUS TO ME, THAT THE CHILD MAY LIVE?M# 23 BUT NOW HE IS DEAD, WHEREFORE SHOULD I FAST? CAN I BRING HIM BACK AGAIN?N2 I SHALL GO TO HIM, BUT HE SHALL NOT RETURN TO ME.J# 24 AND DAVID COMFORTED BATHSHEBA HIS WIFE, AND WENT IN UNTO HER, AND LAYK WITH HER: AND SHE BARE A SON, AND HE CALLED HIS NAME SOLOMON: AND THE LORDV LOVED HIM.HJ# 25 AND HE SENT BY THE HAND OF NATHAN THE PROPHET; AND HE CALLED HIS NAME JEDIDIAH, BECAUSE OF THE LORD.EJ# 26 AND JOAB FOUGHT AGAINST RABBAH OF THE CHILDREN OF AMMON, AND TOOK THE ROYAL CITY.G# 27 AND JOAB SENT MESSENGERS TO DAVID, AND SAID, I HAVE FOUGHT AGAINSTN+ RABBAH, AND HAVE TAKEN THE CITY OF WATERS.EM# 28 NOW THEREFORE GATHER THE REST OF THE PEOPLE TOGETHER, AND ENCAMP AGAINST M THE CITY, AND TAKE IT: LEST I TAKE THE CITY, AND IT BE CALLED AFTER MY NAME.OH# 29 AND DAVID GATHERED ALL THE PEOPLE TOGETHER, AND WENT TO RABBAH, AND FOUGHT AGAINST IT, AND TOOK IT.L# 30 AND HE TOOK THEIR KINGS CROWN FROM OFF HIS HEAD, THE WEIGHT WHEREOF WASN A TALENT OF GOLD WITH THE PRECIOUS STONES: AND IT WAS SET ON DAVIDS HEAD. AND; HE BROUGHT FORTH THE SPOIL OF THE CITY IN GREAT ABUNDANCE.AJ# 31 AND HE BROUGHT FORTH THE PEOPLE THAT WERE THEREIN, AND PUT THEM UNDERL SAWS, AND UNDER HARROWS OF IRON, AND UNDER AXES OF IRON, AND MADE THEM PASSL THROUGH THE BRICK-KILN: AND THUS DID HE UNTO ALL THE CITIES OF THE CHILDREN? OF AMMON. SO DAVID AND ALL THE PEOPLE RETURNED UNTO JERUSALEM.0 = CHAPTER 13 EL# 1 AND IT CAME TO PASS AFTER THIS, THAT ABSALOM THE SON OF DAVID HAD A FAIRD SISTER, WHOSE NAME WAS TAMAR; AND AMNON THE SON OF DAVID LOVED HER.K# 2 AND AMNON WAS SO VEXED, THAT HE FELL SICK FOR HIS SISTER TAMAR; FOR SHE G WAS A VIRGIN; AND AMNON THOUGHT IT HARD FOR HIM TO DO ANYTHING TO HER.SM# 3 BUT AMNON HAD A FRIEND, WHOSE NAME WAS JONADAB, THE SON OF SHIMEAH DAVIDSA, BROTHER: AND JONADAB WAS A VERY SUBTIL MAN.M# 4 AND HE SAID UNTO HIM, WHY ART THOU, BEING THE KINGS SON, LEAN FROM DAY TOEN DAY? WILT THOU NOT TELL ME? AND AMNON SAID UNTO HIM, I LOVE TAMAR, MY BROTHER ABSALOMS SISTER.EI# 5 AND JONADAB SAID UNTO HIM, LAY THEE DOWN ON THY BED, AND MAKE THYSELFOM SICK: AND WHEN THY FATHER COMETH TO SEE THEE, SAY UNTO HIM, I PRAY THEE, LETNM MY SISTER TAMAR COME, AND GIVE ME MEAT, AND DRESS THE MEAT IN MY SIGHT, THAT & I MAY SEE IT, AND EAT IT AT HER HAND.K# 6 SO AMNON LAY DOWN, AND MADE HIMSELF SICK: AND WHEN THE KING WAS COME TOON SEE HIM, AMNON SAID UNTO THE KING, I PRAY THEE, LET TAMAR MY SISTER COME, ANDC MAKE ME A COUPLE OF CAKES IN MY SIGHT, THAT I MAY EAT AT HER HAND. G# 7 THEN DAVID SENT HOME TO TAMAR, SAYING, GO NOW TO THY BROTHER AMNONSK HOUSE, AND DRESS HIM MEAT.HL# 8 SO TAMAR WENT TO HER BROTHER AMNONS HOUSE; AND HE WAS LAID DOWN. AND SHEJ TOOK FLOUR, AND KNEADED IT, AND MADE CAKES IN HIS SIGHT, AND DID BAKE THE CAKES.TI# 9 AND SHE TOOK A PAN, AND POURED THEM OUT BEFORE HIM; BUT HE REFUSED TOEK EAT. AND AMNON SAID, HAVE OUT00h/Y/<%X>%+%O-%TADATADATA ALL MEN FROM ME. AND THEY WENT OUT EVERY MANR FROM HIM.K# 10 AND AMNON SAID UNTO TAMAR, BRING THE MEAT INTO THE CHAMBER, THAT I MAY L EAT OF THINE HAND. AND TAMAR TOOK THE CAKES WHICH SHE HAD MADE, AND BROUGHT, THEM INTO THE CHAMBER TO AMNON HER BROTHER.L# 11 AND WHEN SHE HAD BROUGHT THEM UNTO HIM TO EAT, HE TOOK HOLD OF HER, AND, SAID UNTO HER, COME LIE WITH ME, MY SISTER.H# 12 AND SHE ANSWERED HIM, NAY, MY BROTHER, DO NOT FORCE ME; FOR NO SUCH: THING OUGHT TO BE DONE IN ISRAEL: DO NOT THOU THIS FOLLY.M# 13 AND I, WHITHER SHALL I CAUSE MY SHAME TO GO? AND AS FOR THEE, THOU SHALTTM BE AS ONE OF THE FOOLS IN ISRAEL. NOW THEREFORE, I PRAY THEE, SPEAK UNTO THEA- KING; FOR HE WILL NOT WITHHOLD ME FROM THEE.TJ# 14 HOWBEIT HE WOULD NOT HEARKEN UNTO HER VOICE: BUT, BEING STRONGER THAN# SHE, FORCED HER, AND LAY WITH HER.OL# 15 THEN AMNON HATED HER EXCEEDINGLY; SO THAT THE HATRED WHEREWITH HE HATEDN HER WAS GREATER THAN THE LOVE WHEREWITH HE HAD LOVED HER. AND AMNON SAID UNTO HER, ARISE, BE GONE.IK# 16 AND SHE SAID UNTO HIM, THERE IS NO CAUSE: THIS EVIL IN SENDING ME AWAYTL IS GREATER THAN THE OTHER THAT THOU DIDST UNTO ME. BUT HE WOULD NOT HEARKEN UNTO HER.K# 17 THEN HE CALLED HIS SERVANT THAT MINISTERED UNTO HIM, AND SAID, PUT NOWE5 THIS WOMAN OUT FROM ME, AND BOLT THE DOOR AFTER HER.OJ# 18 AND SHE HAD A GARMENT OF DIVERS COLOURS UPON HER: FOR WITH SUCH ROBESH WERE THE KINGS DAUGHTERS THAT WERE VIRGINS APPARELLED. THEN HIS SERVANT0 BROUGHT HER OUT, AND BOLTED THE DOOR AFTER HER.L# 19 AND TAMAR PUT ASHES ON HER HEAD, AND RENT HER GARMENT OF DIVERS COLOURSD THAT WAS ON HER, AND LAID HER HAND ON HER HEAD, AND WENT ON CRYING.L# 20 AND ABSALOM HER BROTHER SAID UNTO HER, HATH AMNON THY BROTHER BEEN WITHL THEE? BUT HOLD NOW THY PEACE, MY SISTER: HE IS THY BROTHER; REGARD NOT THISA THING. SO TAMAR REMAINED DESOLATE IN HER BROTHER ABSALOMS HOUSE.RF# 21 BUT WHEN KING DAVID HEARD OF ALL THESE THINGS, HE WAS VERY WROTH.G# 22 AND ABSALOM SPAKE UNTO HIS BROTHER AMNON NEITHER GOOD NOR BAD: FOR9= ABSALOM HATED AMNON, BECAUSE HE HAD FORCED HIS SISTER TAMAR.SM# 23 AND IT CAME TO PASS AFTER TWO FULL YEARS, THAT ABSALOM HAD SHEEPSHEARERSI IN BAALHAZOR, WHICH IS BESIDE EPHRAIM: AND ABSALOM INVITED ALL THE KINGSH SONS.I# 24 AND ABSALOM CAME TO THE KING, AND SAID, BEHOLD NOW, THY SERVANT HATHIJ SHEEPSHEARERS; LET THE KING, I BESEECH THEE, AND HIS SERVANTS GO WITH THY SERVANT.DK# 25 AND THE KING SAID TO ABSALOM, NAY, MY SON, LET US NOT ALL NOW GO, LESTIM WE BE CHARGEABLE UNTO THEE. AND HE PRESSED HIM: HOWBEIT HE WOULD NOT GO, BUTD BLESSED HIM.TM# 26 THEN SAID ABSALOM, IF NOT, I PRAY THEE, LET MY BROTHER AMNON GO WITH US.E8 AND THE KING SAID UNTO HIM, WHY SHOULD HE GO WITH THEE?I# 27 BUT ABSALOM PRESSED HIM, THAT HE LET AMNON AND ALL THE KINGS SONS GOD WITH HIM.L# 28 NOW ABSALOM HAD COMMANDED HIS SERVANTS, SAYING, MARK YE NOW WHEN AMNONSJ HEART IS MERRY WITH WINE, AND WHEN I SAY UNTO YOU, SMITE AMNON; THEN KILLH HIM, FEAR NOT: HAVE NOT I COMMANDED YOU? BE COURAGEOUS, AND BE VALIANT.I# 29 AND THE SERVANTS OF ABSALOM DID UNTO AMNON AS ABSALOM HAD COMMANDED.AK THEN ALL THE KINGS SONS AROSE, AND EVERY MAN GAT HIM UP UPON HIS MULE, AND  FLED.J# 30 AND IT CAME TO PASS, WHILE THEY WERE IN THE WAY, THAT TIDINGS CAME TON DAVID, SAYING, ABSALOM HATH SLAIN ALL THE KINGS SONS, AND THERE IS NOT ONE OF THEM LEFT.SJ# 31 THEN THE KING AROSE, AND TARE HIS GARMENTS, AND LAY ON THE EARTH; AND3 ALL HIS SERVANTS STOOD BY WITH THEIR CLOTHES RENT.NK# 32 AND JONADAB, THE SON OF SHIMEAH DAVIDS BROTHER, ANSWERED AND SAID, LETAK NOT MY LORD SUPPOSE THAT THEY HAVE SLAIN ALL THE YOUNG MEN THE KINGS SONS;OI FOR AMNON ONLY IS DEAD: FOR BY THE APPOINTMENT OF ABSALOM THIS HATH BEENT9 DETERMINED FROM THE DAY THAT HE FORCED HIS SISTER TAMAR.DK# 33 NOW THEREFORE LET NOT MY LORD THE KING TAKE THE THING TO HIS HEART, TO@ THINK THAT ALL THE KINGS SONS ARE DEAD: FOR AMNON ONLY IS DEAD.J# 34 BUT ABSALOM FLED. AND THE YOUNG MAN THAT KEPT THE WATCH LIFTED UP HISM EYES, AND LOOKED, AND, BEHOLD, THERE CAME MUCH PEOPLE BY 00h/g/D%5%T6%! !THE WAY OF THE HILL SIDE BEHIND HIM.EH# 35 AND JONADAB SAID UNTO THE KING, BEHOLD, THE KINGS SONS COME: AS THY SERVANT SAID, SO IT IS.J# 36 AND IT CAME TO PASS, AS SOON AS HE HAD MADE AN END OF SPEAKING, THAT,N BEHOLD, THE KINGS SONS CAME, AND LIFTED UP THEIR VOICE AND WEPT: AND THE KING* ALSO AND ALL HIS SERVANTS WEPT VERY SORE.F# 37 BUT ABSALOM FLED, AND WENT TO TALMAI, THE SON OF AMMIHUD, KING OF1 GESHUR. AND DAVID MOURNED FOR HIS SON EVERY DAY.DD# 38 SO ABSALOM FLED, AND WENT TO GESHUR, AND WAS THERE THREE YEARS.K# 39 AND THE SOUL OF KING DAVID LONGED TO GO FORTH UNTO ABSALOM: FOR HE WASN0 COMFORTED CONCERNING AMNON, SEEING HE WAS DEAD. = CHAPTER 14 SI# 1 NOW JOAB THE SON OF ZERUIAH PERCEIVED THAT THE KINGS HEART WAS TOWARD ABSALOM.IK# 2 AND JOAB SENT TO TEKOAH, AND FETCHED THENCE A WISE WOMAN, AND SAID UNTOEI HER, I PRAY THEE, FEIGN THYSELF TO BE A MOURNER, AND PUT ON NOW MOURNINGNL APPAREL, AND ANOINT NOT THYSELF WITH OIL, BUT BE AS A WOMAN THAT HAD A LONG TIME MOURNED FOR THE DEAD: L# 3 AND COME TO THE KING, AND SPEAK ON THIS MANNER UNTO HIM. SO JOAB PUT THE WORDS IN HER MOUTH.K# 4 AND WHEN THE WOMAN OF TEKOAH SPAKE TO THE KING, SHE FELL ON HER FACE TOT7 THE GROUND, AND DID OBEISANCE, AND SAID, HELP, O KING.RH# 5 AND THE KING SAID UNTO HER, WHAT AILETH THEE? AND SHE ANSWERED, I AM0 INDEED A WIDOW WOMAN, AND MINE HUSBAND IS DEAD.M# 6 AND THY HANDMAID HAD TWO SONS, AND THEY TWO STROVE TOGETHER IN THE FIELD,WL AND THERE WAS NONE TO PART THEM, BUT THE ONE SMOTE THE OTHER, AND SLEW HIM.K# 7 AND, BEHOLD, THE WHOLE FAMILY IS RISEN AGAINST THINE HANDMAID, AND THEYRM SAID, DELIVER HIM THAT SMOTE HIS BROTHER, THAT WE MAY KILL HIM, FOR THE LIFEOL OF HIS BROTHER WHOM HE SLEW; AND WE WILL DESTROY THE HEIR ALSO: AND SO THEYN SHALL QUENCH MY COAL WHICH IS LEFT, AND SHALL NOT LEAVE TO MY HUSBAND NEITHER# NAME NOR REMAINDER UPON THE EARTH..H# 8 AND THE KING SAID UNTO THE WOMAN, GO TO THINE HOUSE, AND I WILL GIVE CHARGE CONCERNING THEE.M# 9 AND THE WOMAN OF TEKOAH SAID UNTO THE KING, MY LORD, O KING, THE INIQUITYEM BE ON ME, AND ON MY FATHERS HOUSE: AND THE KING AND HIS THRONE BE GUILTLESS.AK# 10 AND THE KING SAID, WHOEVER SAITH OUGHT UNTO THEE, BRING HIM TO ME, ANDM" HE SHALL NOT TOUCH THEE ANY MORE.M# 11 THEN SAID SHE, I PRAY THEE, LET THE KING REMEMBER THE LORD THY GOD, THATTJ THOU WOULDEST NOT SUFFER THE REVENGERS OF BLOOD TO DESTROY ANY MORE, LESTJ THEY DESTROY MY SON. AND HE SAID, AS THE LORD LIVETH, THERE SHALL NOT ONE# HAIR OF THY SON FALL TO THE EARTH.AI# 12 THEN THE WOMAN SAID, LET THINE HANDMAID, I PRAY THEE, SPEAK ONE WORDE, UNTO MY LORD THE KING. AND HE SAID, SAY ON.F# 13 AND THE WOMAN SAID, WHEREFORE THEN HAST THOU THOUGHT SUCH A THINGN AGAINST THE PEOPLE OF GOD? FOR THE KING DOTH SPEAK THIS THING AS ONE WHICH ISA FAULTY, IN THAT THE KING DOTH NOT FETCH HOME AGAIN HIS BANISHED.TG# 14 FOR WE MUST NEEDS DIE, AND ARE AS WATER SPILT ON THE GROUND, WHICHYN CANNOT BE GATHERED UP AGAIN; NEITHER DOTH GOD RESPECT ANY PERSON: YET DOTH HE: DEVISE MEANS, THAT HIS BANISHED BE NOT EXPELLED FROM HIM.I# 15 NOW THEREFORE THAT I AM COME TO SPEAK OF THIS THING UNTO MY LORD THEOM KING, IT IS BECAUSE THE PEOPLE HAVE MADE ME AFRAID: AND THY HANDMAID SAID, IAG WILL NOW SPEAK UNTO THE KING; IT MAY BE THAT THE KING WILL PERFORM THES REQUEST OF HIS HANDMAID. K# 16 FOR THE KING WILL HEAR, TO DELIVER HIS HANDMAID OUT OF THE HAND OF THE M MAN THAT WOULD DESTROY ME AND MY SON TOGETHER OUT OF THE INHERITANCE OF GOD.HH# 17 THEN THINE HANDMAID SAID, THE WORD OF MY LORD THE KING SHALL NOW BEL COMFORTABLE: FOR AS AN ANGEL OF GOD, SO IS MY LORD THE KING TO DISCERN GOOD7 AND BAD: THEREFORE THE LORD THY GOD WILL BE WITH THEE.EM# 18 THEN THE KING ANSWERED AND SAID UNTO THE WOMAN, HIDE NOT FROM ME, I PRAYAK THEE, THE THING THAT I SHALL ASK THEE. AND THE WOMAN SAID, LET MY LORD THEE KING NOW SPEAK.J# 19 AND THE KING SAID, IS NOT THE HAND OF JOAB WITH THEE IN ALL THIS? ANDL THE WOMAN ANSWERED AND SAID, AS THY SOUL LIVETH, MY LORD THE KING, NONE CANL TURN TO THE RIGHT HAND OR TO THE LEFT00h/Y/<%X>%+%O-%TADATADATA FROM OUGHT THAT MY LORD THE KING HATHL SPOKEN: FOR THY SERVANT JOAB, HE BADE ME, AND HE PUT ALL THESE WORDS IN THE MOUTH OF THINE HANDMAID:G# 20 TO FETCH ABOUT THIS FORM OF SPEECH HATH THY SERVANT JOAB DONE THISPK THING: AND MY LORD IS WISE, ACCORDING TO THE WISDOM OF AN ANGEL OF GOD, TO ' KNOW ALL THINGS THAT ARE IN THE EARTH. H# 21 AND THE KING SAID UNTO JOAB, BEHOLD NOW, I HAVE DONE THIS THING: GO. THEREFORE, BRING THE YOUNG MAN ABSALOM AGAIN.L# 22 AND JOAB FELL TO THE GROUND ON HIS FACE, AND BOWED HIMSELF, AND THANKEDL THE KING: AND JOAB SAID, TO DAY THY SERVANT KNOWETH THAT I HAVE FOUND GRACEN IN THY SIGHT, MY LORD, O KING, IN THAT THE KING HATH FULFILLED THE REQUEST OF HIS SERVANT.AH# 23 SO JOAB AROSE AND WENT TO GESHUR, AND BROUGHT ABSALOM TO JERUSALEM.M# 24 AND THE KING SAID, LET HIM TURN TO HIS OWN HOUSE, AND LET HIM NOT SEE MYKH FACE. SO ABSALOM RETURNED TO HIS OWN HOUSE, AND SAW NOT THE KINGS FACE.J# 25 BUT IN ALL ISRAEL THERE WAS NONE TO BE SO MUCH PRAISED AS ABSALOM FORN HIS BEAUTY: FROM THE SOLE OF HIS FOOT EVEN TO THE CROWN OF HIS HEAD THERE WAS NO BLEMISH IN HIM.FH# 26 AND WHEN HE POLLED HIS HEAD, (FOR IT WAS AT EVERY YEARS END THAT HEJ POLLED IT: BECAUSE THE HAIR WAS HEAVY ON HIM, THEREFORE HE POLLED IT:) HEL WEIGHED THE HAIR OF HIS HEAD AT TWO HUNDRED SHEKELS AFTER THE KINGS WEIGHT.I# 27 AND UNTO ABSALOM THERE WERE BORN THREE SONS, AND ONE DAUGHTER, WHOSES7 NAME WAS TAMAR: SHE WAS A WOMAN OF A FAIR COUNTENANCE.EH# 28 SO ABSALOM DWELT TWO FULL YEARS IN JERUSALEM, AND SAW NOT THE KINGS FACE.J# 29 THEREFORE ABSALOM SENT FOR JOAB, TO HAVE SENT HIM TO THE KING; BUT HEL WOULD NOT COME TO HIM: AND WHEN HE SENT AGAIN THE SECOND TIME, HE WOULD NOT COME.L# 30 THEREFORE HE SAID UNTO HIS SERVANTS, SEE, JOABS FIELD IS NEAR MINE, ANDK HE HATH BARLEY THERE; GO AND SET IT ON FIRE. AND ABSALOMS SERVANTS SET THEO FIELD ON FIRE. L# 31 THEN JOAB AROSE, AND CAME TO ABSALOM UNTO HIS HOUSE, AND SAID UNTO HIM,2 WHEREFORE HAVE THY SERVANTS SET MY FIELD ON FIRE?F# 32 AND ABSALOM ANSWERED JOAB, BEHOLD, I SENT UNTO THEE, SAYING, COMEK HITHER, THAT I MAY SEND THEE TO THE KING, TO SAY, WHEREFORE AM I COME FROMNL GESHUR? IT HAD BEEN GOOD FOR ME TO HAVE BEEN THERE STILL: NOW THEREFORE LETL ME SEE THE KINGS FACE; AND IF THERE BE ANY INIQUITY IN ME, LET HIM KILL ME.G# 33 SO JOAB CAME TO THE KING, AND TOLD HIM: AND WHEN HE HAD CALLED FOREJ ABSALOM, HE CAME TO THE KING, AND BOWED HIMSELF ON HIS FACE TO THE GROUND. BEFORE THE KING: AND THE KING KISSED ABSALOM. = CHAPTER 15 AJ# 1 AND IT CAME TO PASS AFTER THIS, THAT ABSALOM PREPARED HIM CHARIOTS AND) HORSES, AND FIFTY MEN TO RUN BEFORE HIM.EK# 2 AND ABSALOM ROSE UP EARLY, AND STOOD BESIDE THE WAY OF THE GATE: AND ITTF WAS SO, THAT WHEN ANY MAN THAT HAD A CONTROVERSY CAME TO THE KING FORM JUDGMENT, THEN ABSALOM CALLED UNTO HIM, AND SAID, OF WHAT CITY ART THOU? ANDW8 HE SAID, THY SERVANT IS OF ONE OF THE TRIBES OF ISRAEL.M# 3 AND ABSALOM SAID UNTO HIM, SEE, THY MATTERS ARE GOOD AND RIGHT; BUT THERE , IS NO MAN DEPUTED OF THE KING TO HEAR THEE.L# 4 ABSALOM SAID MOREOVER, OH THAT I WERE MADE JUDGE IN THE LAND, THAT EVERYH MAN WHICH HATH ANY SUIT OR CAUSE MIGHT COME UNTO ME, AND I WOULD DO HIM JUSTICE!GM# 5 AND IT WAS SO, THAT WHEN ANY MAN CAME NIGH TO HIM TO DO HIM OBEISANCE, HEG2 PUT FORTH HIS HAND, AND TOOK HIM, AND KISSED HIM.J# 6 AND ON THIS MANNER DID ABSALOM TO ALL ISRAEL THAT CAME TO THE KING FOR< JUDGMENT: SO ABSALOM STOLE THE HEARTS OF THE MEN OF ISRAEL.M# 7 AND IT CAME TO PASS AFTER FORTY YEARS, THAT ABSALOM SAID UNTO THE KING, IJ PRAY THEE, LET ME GO AND PAY MY VOW, WHICH I HAVE VOWED UNTO THE LORD, IN HEBRON.L# 8 FOR THY SERVANT VOWED A VOW WHILE I ABODE AT GESHUR IN SYRIA, SAYING, IFI THE LORD SHALL BRING ME AGAIN INDEED TO JERUSALEM, THEN I WILL SERVE THEH LORD.M# 9 AND THE KING SAID UNTO HIM, GO IN PEACE. SO HE AROSE, AND WENT TO HEBRON.LK# 10 BUT ABSALOM SENT SPIES THROUGHOUT ALL THE TRIBES OF ISRAEL, SAYING, ASEN SOON AS YE HEAR THE SOUND OF THE TRUMPET, THEN YE SHALL SAY, ABSALOM REIGNETH IN HEBRON. 00h/g/D%5%T6%! !F# 11 AND WITH ABSALOM WENT TWO HUNDRED MEN OUT OF JERUSALEM, THAT WEREH CALLED; AND THEY WENT IN THEIR SIMPLICITY, AND THEY KNEW NOT ANY THING.J# 12 AND ABSALOM SENT FOR AHITHOPHEL THE GILONITE, DAVIDS COUNSELLOR, FROMK HIS CITY, EVEN FROM GILOH, WHILE HE OFFERED SACRIFICES. AND THE CONSPIRACY ? WAS STRONG; FOR THE PEOPLE INCREASED CONTINUALLY WITH ABSALOM.PJ# 13 AND THERE CAME A MESSENGER TO DAVID, SAYING, THE HEARTS OF THE MEN OF ISRAEL ARE AFTER ABSALOM.J# 14 AND DAVID SAID UNTO ALL HIS SERVANTS THAT WERE WITH HIM AT JERUSALEM,N ARISE, AND LET US FLEE; FOR WE SHALL NOT ELSE ESCAPE FROM ABSALOM: MAKE SPEEDK TO DEPART, LEST HE OVERTAKE US SUDDENLY, AND BRING EVIL UPON US, AND SMITEL% THE CITY WITH THE EDGE OF THE SWORD.TH# 15 AND THE KINGS SERVANTS SAID UNTO THE KING, BEHOLD, THY SERVANTS ARE7 READY TO DO WHATSOEVER MY LORD THE KING SHALL APPOINT.MK# 16 AND THE KING WENT FORTH, AND ALL HIS HOUSEHOLD AFTER HIM. AND THE KINGF: LEFT TEN WOMEN, WHICH WERE CONCUBINES, TO KEEP THE HOUSE.L# 17 AND THE KING WENT FORTH, AND ALL THE PEOPLE AFTER HIM, AND TARRIED IN A PLACE THAT WAS FAR OFF.L# 18 AND ALL HIS SERVANTS PASSED ON BESIDE HIM; AND ALL THE CHERETHITES, ANDK ALL THE PELETHITES, AND ALL THE GITTITES, SIX HUNDRED MEN WHICH CAME AFTERN* HIM FROM GATH, PASSED ON BEFORE THE KING.L# 19 THEN SAID THE KING TO ITTAI THE GITTITE, WHEREFORE GOEST THOU ALSO WITHK US? RETURN TO THY PLACE, AND ABIDE WITH THE KING: FOR THOU ART A STRANGER,  AND ALSO AN EXILE. M# 20 WHEREAS THOU CAMEST BUT YESTERDAY, SHOULD I THIS DAY MAKE THEE GO UP ANDEH DOWN WITH US? SEEING I GO WHITHER I MAY, RETURN THOU, AND TAKE BACK THY( BRETHREN: MERCY AND TRUTH BE WITH THEE.I# 21 AND ITTAI ANSWERED THE KING, AND SAID, AS THE LORD LIVETH, AND AS MYNN LORD THE KING LIVETH, SURELY IN WHAT PLACE MY LORD THE KING SHALL BE, WHETHER7 IN DEATH OR LIFE, EVEN THERE ALSO WILL THY SERVANT BE.IL# 22 AND DAVID SAID TO ITTAI, GO AND PASS OVER. AND ITTAI THE GITTITE PASSEDC OVER, AND ALL HIS MEN, AND ALL THE LITTLE ONES THAT WERE WITH HIM.UJ# 23 AND ALL THE COUNTRY WEPT WITH A LOUD VOICE, AND ALL THE PEOPLE PASSEDM OVER: THE KING ALSO HIMSELF PASSED OVER THE BROOK KIDRON, AND ALL THE PEOPLE1/ PASSED OVER, TOWARD THE WAY OF THE WILDERNESS.RM# 24 AND LO ZADOK ALSO, AND ALL THE LEVITES WERE WITH HIM, BEARING THE ARK OFIM THE COVENANT OF GOD: AND THEY SET DOWN THE ARK OF GOD; AND ABIATHAR WENT UP,7 UNTIL ALL THE PEOPLE HAD DONE PASSING OUT OF THE CITY. K# 25 AND THE KING SAID UNTO ZADOK, CARRY BACK THE ARK OF GOD INTO THE CITY: L IF I SHALL FIND FAVOUR IN THE EYES OF THE LORD, HE WILL BRING ME AGAIN, AND% SHEW ME BOTH IT, AND HIS HABITATION:PJ# 26 BUT IF HE THUS SAY, I HAVE NO DELIGHT IN THEE; BEHOLD, HERE AM I, LET' HIM DO TO ME AS SEEMETH GOOD UNTO HIM. J# 27 THE KING SAID ALSO UNTO ZADOK THE PRIEST, ART NOT THOU A SEER? RETURNI INTO THE CITY IN PEACE, AND YOUR TWO SONS WITH YOU, AHIMAAZ THY SON, ANDL JONATHAN THE SON OF ABIATHAR.L# 28 SEE, I WILL TARRY IN THE PLAIN OF THE WILDERNESS, UNTIL THERE COME WORD FROM YOU TO CERTIFY ME.L# 29 ZADOK THEREFORE AND ABIATHAR CARRIED THE ARK OF GOD AGAIN TO JERUSALEM: AND THEY TARRIED THERE.M# 30 AND DAVID WENT UP BY THE ASCENT OF MOUNT OLIVET, AND WEPT AS HE WENT UP,L AND HAD HIS HEAD COVERED, AND HE WENT BAREFOOT: AND ALL THE PEOPLE THAT WASL WITH HIM COVERED EVERY MAN HIS HEAD, AND THEY WENT UP, WEEPING AS THEY WENT UP.J# 31 AND ONE TOLD DAVID, SAYING, AHITHOPHEL IS AMONG THE CONSPIRATORS WITHM ABSALOM. AND DAVID SAID, O LORD, I PRAY THEE, TURN THE COUNSEL OF AHITHOPHELC INTO FOOLISHNESS.K# 32 AND IT CAME TO PASS, THAT WHEN DAVID WAS COME TO THE TOP OF THE MOUNT,EN WHERE HE WORSHIPPED GOD, BEHOLD, HUSHAI THE ARCHITE CAME TO MEET HIM WITH HIS$ COAT RENT, AND EARTH UPON HIS HEAD:K# 33 UNTO WHOM DAVID SAID, IF THOU PASSEST ON WITH ME, THEN THOU SHALT BE AV BURDEN UNTO ME:H# 34 BUT IF THOU RETURN TO THE CITY, AND SAY UNTO ABSALOM, I WILL BE THYL SERVANT, O KING; AS I HAVE BEEN THY FATHERS SERVANT HITHERTO, SO WILL I NOWC ALSO BE THY SERVANT: THEN MAYEST THOU FOR ME DE00h/Y/<%X>%+%O-%TADATADATAFEAT THE COUNSEL OF AHITHOPHEL.F# 35 AND HAST THOU NOT THERE WITH THEE ZADOK AND ABIATHAR THE PRIESTS?I THEREFORE IT SHALL BE, THAT WHAT THING SOEVER THOU SHALT HEAR OUT OF THEAC KINGS HOUSE, THOU SHALT TELL IT TO ZADOK AND ABIATHAR THE PRIESTS.PJ# 36 BEHOLD, THEY HAVE THERE WITH THEM THEIR TWO SONS, AHIMAAZ ZADOKS SON,J AND JONATHAN ABIATHARS SON; AND BY THEM YE SHALL SEND UNTO ME EVERY THING THAT YE CAN HEAR.F# 37 SO HUSHAI DAVIDS FRIEND CAME INTO THE CITY, AND ABSALOM CAME INTO JERUSALEM. = CHAPTER 16 SJ# 1 AND WHEN DAVID WAS A LITTLE PAST THE TOP OF THE HILL, BEHOLD, ZIBA THEJ SERVANT OF MEPHIBOSHETH MET HIM, WITH A COUPLE OF ASSES SADDLED, AND UPONL THEM TWO HUNDRED LOAVES OF BREAD, AND AN HUNDRED BUNCHES OF RAISINS, AND AN0 HUNDRED OF SUMMER FRUITS, AND A BOTTLE OF WINE.K# 2 AND THE KING SAID UNTO ZIBA, WHAT MEANEST THOU BY THESE? AND ZIBA SAID,YJ THE ASSES BE FOR THE KINGS HOUSEHOLD TO RIDE ON; AND THE BREAD AND SUMMERK FRUIT FOR THE YOUNG MEN TO EAT; AND THE WINE, THAT SUCH AS BE FAINT IN THES WILDERNESS MAY DRINK.K# 3 AND THE KING SAID, AND WHERE IS THY MASTERS SON? AND ZIBA SAID UNTO THEHN KING, BEHOLD, HE ABIDETH AT JERUSALEM: FOR HE SAID, TO DAY SHALL THE HOUSE OF, ISRAEL RESTORE ME THE KINGDOM OF MY FATHER.I# 4 THEN SAID THE KING TO ZIBA, BEHOLD, THINE ARE ALL THAT PERTAINED UNTO L MEPHIBOSHETH. AND ZIBA SAID, I HUMBLY BESEECH THEE THAT I MAY FIND GRACE IN THY SIGHT, MY LORD, O KING.M# 5 AND WHEN KING DAVID CAME TO BAHURIM, BEHOLD, THENCE CAME OUT A MAN OF THEHM FAMILY OF THE HOUSE OF SAUL, WHOSE NAME WAS SHIMEI, THE SON OF GERA: HE CAMEI$ FORTH, AND CURSED STILL AS HE CAME.K# 6 AND HE CAST STONES AT DAVID, AND AT ALL THE SERVANTS OF KING DAVID: ANDON ALL THE PEOPLE AND ALL THE MIGHTY MEN WERE ON HIS RIGHT HAND AND ON HIS LEFT.M# 7 AND THUS SAID SHIMEI WHEN HE CURSED, COME OUT, COME OUT, THOU BLOODY MAN,  AND THOU MAN OF BELIAL:K# 8 THE LORD HATH RETURNED UPON THEE ALL THE BLOOD OF THE HOUSE OF SAUL, INAL WHOSE STEAD THOU HAST REIGNED; AND THE LORD HATH DELIVERED THE KINGDOM INTOJ THE HAND OF ABSALOM THY SON: AND, BEHOLD, THOU ART TAKEN IN THY MISCHIEF, BECAUSE THOU ART A BLOODY MAN. L# 9 THEN SAID ABISHAI THE SON OF ZERUIAH UNTO THE KING, WHY SHOULD THIS DEADJ DOG CURSE MY LORD THE KING? LET ME GO OVER, I PRAY THEE, AND TAKE OFF HIS HEAD.J# 10 AND THE KING SAID, WHAT HAVE I TO DO WITH YOU, YE SONS OF ZERUIAH? SOK LET HIM CURSE, BECAUSE THE LORD HATH SAID UNTO HIM, CURSE DAVID. WHO SHALLS' THEN SAY, WHEREFORE HAST THOU DONE SO? H# 11 AND DAVID SAID TO ABISHAI, AND TO ALL HIS SERVANTS, BEHOLD, MY SON,K WHICH CAME FORTH OF MY BOWELS, SEEKETH MY LIFE: HOW MUCH MORE NOW MAY THISNL BENJAMITE DO IT? LET HIM ALONE, AND LET HIM CURSE; FOR THE LORD HATH BIDDEN HIM.GL# 12 IT MAY BE THAT THE LORD WILL LOOK ON MINE AFFLICTION, AND THAT THE LORD/ WILL REQUITE ME GOOD FOR HIS CURSING THIS DAY.YM# 13 AND AS DAVID AND HIS MEN WENT BY THE WAY, SHIMEI WENT ALONG ON THE HILLS,K SIDE OVER AGAINST HIM, AND CURSED AS HE WENT, AND THREW STONES AT HIM, ANDD CAST DUST.AI# 14 AND THE KING, AND ALL THE PEOPLE THAT WERE WITH HIM, CAME WEARY, ANDO REFRESHED THEMSELVES THERE.J# 15 AND ABSALOM, AND ALL THE PEOPLE THE MEN OF ISRAEL, CAME TO JERUSALEM, AND AHITHOPHEL WITH HIM.MJ# 16 AND IT CAME TO PASS, WHEN HUSHAI THE ARCHITE, DAVIDS FRIEND, WAS COMEM UNTO ABSALOM, THAT HUSHAI SAID UNTO ABSALOM, GOD SAVE THE KING, GOD SAVE THEI KING.H# 17 AND ABSALOM SAID TO HUSHAI, IS THIS THY KINDNESS TO THY FRIEND? WHY" WENTEST THOU NOT WITH THY FRIEND?K# 18 AND HUSHAI SAID UNTO ABSALOM, NAY; BUT WHOM THE LORD, AND THIS PEOPLE, M AND ALL THE MEN OF ISRAEL, CHOOSE, HIS WILL I BE, AND WITH HIM WILL I ABIDE. J# 19 AND AGAIN, WHOM SHOULD I SERVE? SHOULD I NOT SERVE IN THE PRESENCE OFG HIS SON? AS I HAVE SERVED IN THY FATHERS PRESENCE, SO WILL I BE IN THYA PRESENCE.J# 20 THEN SAID ABSALOM TO AHITHOPHEL, GIVE COUNSEL AMONG YOU WHAT WE SHALL DO.I# 21 AND AHITHOPHEL SAID UNTO ABSALOM, GO IN UNTO THY FATHERS CONCUBINES,N WHICH HE HATH LEFT TO KEEP THE HOUSE; AND ALL ISRAEL SHAL00h/g/D%5%T6%! !L HEAR THAT THOU ARTJ ABHORRED OF THY FATHER: THEN SHALL THE HANDS OF ALL THAT ARE WITH THEE BE STRONG.I# 22 SO THEY SPREAD ABSALOM A TENT UPON THE TOP OF THE HOUSE; AND ABSALOMO@ WENT IN UNTO HIS FATHERS CONCUBINES IN THE SIGHT OF ALL ISRAEL.M# 23 AND THE COUNSEL OF AHITHOPHEL, WHICH HE COUNSELLED IN THOSE DAYS, WAS ASOF IF A MAN HAD ENQUIRED AT THE ORACLE OF GOD: SO WAS ALL THE COUNSEL OF- AHITHOPHEL BOTH WITH DAVID AND WITH ABSALOM.N = CHAPTER 17 G# 1 MOREOVER AHITHOPHEL SAID UNTO ABSALOM, LET ME NOW CHOOSE OUT TWELVEHB THOUSAND MEN, AND I WILL ARISE AND PURSUE AFTER DAVID THIS NIGHT:M# 2 AND I WILL COME UPON HIM WHILE HE IS WEARY AND WEAK HANDED, AND WILL MAKE N HIM AFRAID: AND ALL THE PEOPLE THAT ARE WITH HIM SHALL FLEE; AND I WILL SMITE THE KING ONLY:OM# 3 AND I WILL BRING BACK ALL THE PEOPLE UNTO THEE: THE MAN WHOM THOU SEEKESTD< IS AS IF ALL RETURNED: SO ALL THE PEOPLE SHALL BE IN PEACE.F# 4 AND THE SAYING PLEASED ABSALOM WELL, AND ALL THE ELDERS OF ISRAEL.H# 5 THEN SAID ABSALOM, CALL NOW HUSHAI THE ARCHITE ALSO, AND LET US HEAR LIKEWISE WHAT HE SAITH.H# 6 AND WHEN HUSHAI WAS COME TO ABSALOM, ABSALOM SPAKE UNTO HIM, SAYING,K AHITHOPHEL HATH SPOKEN AFTER THIS MANNER: SHALL WE DO AFTER HIS SAYING? IF  NOT; SPEAK THOU.IK# 7 AND HUSHAI SAID UNTO ABSALOM, THE COUNSEL THAT AHITHOPHEL HATH GIVEN ISE NOT GOOD AT THIS TIME.SG# 8 FOR, SAID HUSHAI, THOU KNOWEST THY FATHER AND HIS MEN, THAT THEY BE N MIGHTY MEN, AND THEY BE CHAFED IN THEIR MINDS, AS A BEAR ROBBED OF HER WHELPSJ IN THE FIELD: AND THY FATHER IS A MAN OF WAR, AND WILL NOT LODGE WITH THE PEOPLE.J# 9 BEHOLD, HE IS HID NOW IN SOME PIT, OR IN SOME OTHER PLACE: AND IT WILLK COME TO PASS, WHEN SOME OF THEM BE OVERTHROWN AT THE FIRST, THAT WHOSOEVERTG HEARETH IT WILL SAY, THERE IS A SLAUGHTER AMONG THE PEOPLE THAT FOLLOWP ABSALOM.VH# 10 AND HE ALSO THAT IS VALIANT, WHOSE HEART IS AS THE HEART OF A LION,L SHALL UTTERLY MELT: FOR ALL ISRAEL KNOWETH THAT THY FATHER IS A MIGHTY MAN,, AND THEY WHICH BE WITH HIM ARE VALIANT MEN.I# 11 THEREFORE I COUNSEL THAT ALL ISRAEL BE GENERALLY GATHERED UNTO THEE,N FROM DAN EVEN TO BEERSHEBA, AS THE SAND THAT IS BY THE SEA FOR MULTITUDE; AND, THAT THOU GO TO BATTLE IN THINE OWN PERSON.L# 12 SO SHALL WE COME UPON HIM IN SOME PLACE WHERE HE SHALL BE FOUND, AND WEL WILL LIGHT UPON HIM AS THE DEW FALLETH ON THE GROUND: AND OF HIM AND OF ALLB THE MEN THAT ARE WITH HIM THERE SHALL NOT BE LEFT SO MUCH AS ONE.M# 13 MOREOVER, IF HE BE GOTTEN INTO A CITY, THEN SHALL ALL ISRAEL BRING ROPESNI TO THAT CITY, AND WE WILL DRAW IT INTO THE RIVER, UNTIL THERE BE NOT ONE  SMALL STONE FOUND THERE.EJ# 14 AND ABSALOM AND ALL THE MEN OF ISRAEL SAID, THE COUNSEL OF HUSHAI THEM ARCHITE IS BETTER THAN THE COUNSEL OF AHITHOPHEL. FOR THE LORD HAD APPOINTEDEL TO DEFEAT THE GOOD COUNSEL OF AHITHOPHEL, TO THE INTENT THAT THE LORD MIGHT BRING EVIL UPON ABSALOM.K# 15 THEN SAID HUSHAI UNTO ZADOK AND TO ABIATHAR THE PRIESTS, THUS AND THUSOK DID AHITHOPHEL COUNSEL ABSALOM AND THE ELDERS OF ISRAEL; AND THUS AND THUST HAVE I COUNSELLED.AM# 16 NOW THEREFORE SEND QUICKLY, AND TELL DAVID, SAYING, LODGE NOT THIS NIGHTAJ IN THE PLAINS OF THE WILDERNESS, BUT SPEEDILY PASS OVER; LEST THE KING BE4 SWALLOWED UP, AND ALL THE PEOPLE THAT ARE WITH HIM.K# 17 NOW JONATHAN AND AHIMAAZ STAYED BY ENROGEL; FOR THEY MIGHT NOT BE SEENTN TO COME INTO THE CITY: AND A WENCH WENT AND TOLD THEM; AND THEY WENT AND TOLD KING DAVID.I# 18 NEVERTHELESS A LAD SAW THEM, AND TOLD ABSALOM: BUT THEY WENT BOTH OFEL THEM AWAY QUICKLY, AND CAME TO A MANS HOUSE IN BAHURIM, WHICH HAD A WELL IN# HIS COURT; WHITHER THEY WENT DOWN.DG# 19 AND THE WOMAN TOOK AND SPREAD A COVERING OVER THE WELLS MOUTH, ANDV9 SPREAD GROUND CORN THEREON; AND THE THING WAS NOT KNOWN.TJ# 20 AND WHEN ABSALOMS SERVANTS CAME TO THE WOMAN TO THE HOUSE, THEY SAID,J WHERE IS AHIMAAZ AND JONATHAN? AND THE WOMAN SAID UNTO THEM, THEY BE GONEK OVER THE BROOK OF WATER. AND WHEN THEY HAD SOUGHT AND COULD NOT FIND THEM,D THEY RETURNED TO JERUSALEM.L# 21 AND IT CAME TO PASS00h/Y/<%X>%+%O-%TADATADATA, AFTER THEY WERE DEPARTED, THAT THEY CAME UP OUT OFM THE WELL, AND WENT AND TOLD KING DAVID, AND SAID UNTO DAVID, ARISE, AND PASSCI QUICKLY OVER THE WATER: FOR THUS HATH AHITHOPHEL COUNSELLED AGAINST YOU.IM# 22 THEN DAVID AROSE, AND ALL THE PEOPLE THAT WERE WITH HIM, AND THEY PASSEDUL OVER JORDAN: BY THE MORNING LIGHT THERE LACKED NOT ONE OF THEM THAT WAS NOT GONE OVER JORDAN.J# 23 AND WHEN AHITHOPHEL SAW THAT HIS COUNSEL WAS NOT FOLLOWED, HE SADDLEDL HIS ASS, AND AROSE, AND GAT HIM HOME TO HIS HOUSE, TO HIS CITY, AND PUT HISH HOUSEHOLD IN ORDER, AND HANGED HIMSELF, AND DIED, AND WAS BURIED IN THE SEPULCHRE OF HIS FATHER.SL# 24 THEN DAVID CAME TO MAHANAIM. AND ABSALOM PASSED OVER JORDAN, HE AND ALL THE MEN OF ISRAEL WITH HIM.L# 25 AND ABSALOM MADE AMASA CAPTAIN OF THE HOST INSTEAD OF JOAB: WHICH AMASAK WAS A MANS SON, WHOSE NAME WAS ITHRA AN ISRAELITE, THAT WENT IN TO ABIGAILA8 THE DAUGHTER OF NAHASH, SISTER TO ZERUIAH JOABS MOTHER.9# 26 SO ISRAEL AND ABSALOM PITCHED IN THE LAND OF GILEAD.UM# 27 AND IT CAME TO PASS, WHEN DAVID WAS COME TO MAHANAIM, THAT SHOBI THE SON,N OF NAHASH OF RABBAH OF THE CHILDREN OF AMMON, AND MACHIR THE SON OF AMMIEL OF1 LODEBAR, AND BARZILLAI THE GILEADITE OF ROGELIM,TJ# 28 BROUGHT BEDS, AND BASONS, AND EARTHEN VESSELS, AND WHEAT, AND BARLEY,I AND FLOUR, AND PARCHED CORN, AND BEANS, AND LENTILES, AND PARCHED PULSE,EM# 29 AND HONEY, AND BUTTER, AND SHEEP, AND CHEESE OF KINE, FOR DAVID, AND FORSL THE PEOPLE THAT WERE WITH HIM, TO EAT: FOR THEY SAID, THE PEOPLE IS HUNGRY,+ AND WEARY, AND THIRSTY, IN THE WILDERNESS.N = CHAPTER 18 I# 1 AND DAVID NUMBERED THE PEOPLE THAT WERE WITH HIM, AND SET CAPTAINS OF / THOUSANDS, AND CAPTAINS OF HUNDREDS OVER THEM.TK# 2 AND DAVID SENT FORTH A THIRD PART OF THE PEOPLE UNDER THE HAND OF JOAB,,N AND A THIRD PART UNDER THE HAND OF ABISHAI THE SON OF ZERUIAH, JOABS BROTHER,M AND A THIRD PART UNDER THE HAND OF ITTAI THE GITTITE. AND THE KING SAID UNTO 9 THE PEOPLE, I WILL SURELY GO FORTH WITH YOU MYSELF ALSO.SJ# 3 BUT THE PEOPLE ANSWERED, THOU SHALT NOT GO FORTH: FOR IF WE FLEE AWAY,M THEY WILL NOT CARE FOR US; NEITHER IF HALF OF US DIE, WILL THEY CARE FOR US:TK BUT NOW THOU ART WORTH TEN THOUSAND OF US: THEREFORE NOW IT IS BETTER THATT! THOU SUCCOUR US OUT OF THE CITY.NI# 4 AND THE KING SAID UNTO THEM, WHAT SEEMETH YOU BEST I WILL DO. AND THE L KING STOOD BY THE GATE SIDE, AND ALL THE PEOPLE CAME OUT BY HUNDREDS AND BY THOUSANDS.KJ# 5 AND THE KING COMMANDED JOAB AND ABISHAI AND ITTAI, SAYING, DEAL GENTLYL FOR MY SAKE WITH THE YOUNG MAN, EVEN WITH ABSALOM. AND ALL THE PEOPLE HEARD? WHEN THE KING GAVE ALL THE CAPTAINS CHARGE CONCERNING ABSALOM.RL# 6 SO THE PEOPLE WENT OUT INTO THE FIELD AGAINST ISRAEL: AND THE BATTLE WAS IN THE WOOD OF EPHRAIM;K# 7 WHERE THE PEOPLE OF ISRAEL WERE SLAIN BEFORE THE SERVANTS OF DAVID, ANDIC THERE WAS THERE A GREAT SLAUGHTER THAT DAY OF TWENTY THOUSAND MEN.CL# 8 FOR THE BATTLE WAS THERE SCATTERED OVER THE FACE OF ALL THE COUNTRY: AND@ THE WOOD DEVOURED MORE PEOPLE THAT DAY THAN THE SWORD DEVOURED.L# 9 AND ABSALOM MET THE SERVANTS OF DAVID. AND ABSALOM RODE UPON A MULE, ANDN THE MULE WENT UNDER THE THICK BOUGHS OF A GREAT OAK, AND HIS HEAD CAUGHT HOLDJ OF THE OAK, AND HE WAS TAKEN UP BETWEEN THE HEAVEN AND THE EARTH; AND THE# MULE THAT WAS UNDER HIM WENT AWAY.TM# 10 AND A CERTAIN MAN SAW IT, AND TOLD JOAB, AND SAID, BEHOLD, I SAW ABSALOMT HANGED IN AN OAK.L# 11 AND JOAB SAID UNTO THE MAN THAT TOLD HIM, AND, BEHOLD, THOU SAWEST HIM,M AND WHY DIDST THOU NOT SMITE HIM THERE TO THE GROUND? AND I WOULD HAVE GIVEN * THEE TEN SHEKELS OF SILVER, AND A GIRDLE.K# 12 AND THE MAN SAID UNTO JOAB, THOUGH I SHOULD RECEIVE A THOUSAND SHEKELSIN OF SILVER IN MINE HAND, YET WOULD I NOT PUT FORTH MINE HAND AGAINST THE KINGSM SON: FOR IN OUR HEARING THE KING CHARGED THEE AND ABISHAI AND ITTAI, SAYING,W. BEWARE THAT NONE TOUCH THE YOUNG MAN ABSALOM.I# 13 OTHERWISE I SHOULD HAVE WROUGHT FALSEHOOD AGAINST MINE OWN LIFE: FORDI THERE IS NO MATTER HID FROM THE KING, AND THOU THYSELF WOULDEST HAVE SE00h0g/D%5%T6%! !TG THYSELF AGAINST ME.L# 14 THEN SAID JOAB, I MAY NOT TARRY THUS WITH THEE. AND HE TOOK THREE DARTSL IN HIS HAND, AND THRUST THEM THROUGH THE HEART OF ABSALOM, WHILE HE WAS YET ALIVE IN THE MIDST OF THE OAK.AG# 15 AND TEN YOUNG MEN THAT BARE JOABS ARMOUR COMPASSED ABOUT AND SMOTEA ABSALOM, AND SLEW HIM.WK# 16 AND JOAB BLEW THE TRUMPET, AND THE PEOPLE RETURNED FROM PURSUING AFTERE' ISRAEL: FOR JOAB HELD BACK THE PEOPLE. J# 17 AND THEY TOOK ABSALOM, AND CAST HIM INTO A GREAT PIT IN THE WOOD, ANDL LAID A VERY GREAT HEAP OF STONES UPON HIM: AND ALL ISRAEL FLED EVERY ONE TO HIS TENT.F# 18 NOW ABSALOM IN HIS LIFETIME HAD TAKEN AND REARED UP FOR HIMSELF AJ PILLAR, WHICH IS IN THE KINGS DALE: FOR HE SAID, I HAVE NO SON TO KEEP MYL NAME IN REMEMBRANCE: AND HE CALLED THE PILLAR AFTER HIS OWN NAME: AND IT IS& CALLED UNTO THIS DAY, ABSALOMS PLACE.J# 19 THEN SAID AHIMAAZ THE SON OF ZADOK, LET ME NOW RUN, AND BEAR THE KING< TIDINGS, HOW THAT THE LORD HATH AVENGED HIM OF HIS ENEMIES.K# 20 AND JOAB SAID UNTO HIM, THOU SHALT NOT BEAR TIDINGS THIS DAY, BUT THOULI SHALT BEAR TIDINGS ANOTHER DAY: BUT THIS DAY THOU SHALT BEAR NO TIDINGS,A BECAUSE THE KINGS SON IS DEAD.AM# 21 THEN SAID JOAB TO CUSHI, GO TELL THE KING WHAT THOU HAST SEEN. AND CUSHIR" BOWED HIMSELF UNTO JOAB, AND RAN.M# 22 THEN SAID AHIMAAZ THE SON OF ZADOK YET AGAIN TO JOAB, BUT HOWSOEVER, LETEJ ME, I PRAY THEE, ALSO RUN AFTER CUSHI. AND JOAB SAID, WHEREFORE WILT THOU5 RUN, MY SON, SEEING THAT THOU HAST NO TIDINGS READY? H# 23 BUT HOWSOEVER, SAID HE, LET ME RUN. AND HE SAID UNTO HIM, RUN. THEN8 AHIMAAZ RAN BY THE WAY OF THE PLAIN, AND OVERRAN CUSHI.I# 24 AND DAVID SAT BETWEEN THE TWO GATES: AND THE WATCHMAN WENT UP TO THEOJ ROOF OVER THE GATE UNTO THE WALL, AND LIFTED UP HIS EYES, AND LOOKED, AND BEHOLD A MAN RUNNING ALONE.K# 25 AND THE WATCHMAN CRIED, AND TOLD THE KING. AND THE KING SAID, IF HE BEAH ALONE, THERE IS TIDINGS IN HIS MOUTH. AND HE CAME APACE, AND DREW NEAR.K# 26 AND THE WATCHMAN SAW ANOTHER MAN RUNNING: AND THE WATCHMAN CALLED UNTOLN THE PORTER, AND SAID, BEHOLD ANOTHER MAN RUNNING ALONE. AND THE KING SAID, HE ALSO BRINGETH TIDINGS.4K# 27 AND THE WATCHMAN SAID, ME THINKETH THE RUNNING OF THE FOREMOST IS LIKE N THE RUNNING OF AHIMAAZ THE SON OF ZADOK. AND THE KING SAID, HE IS A GOOD MAN, AND COMETH WITH GOOD TIDINGS.I# 28 AND AHIMAAZ CALLED, AND SAID UNTO THE KING, ALL IS WELL. AND HE FELLHJ DOWN TO THE EARTH UPON HIS FACE BEFORE THE KING, AND SAID, BLESSED BE THEH LORD THY GOD, WHICH HATH DELIVERED UP THE MEN THAT LIFTED UP THEIR HAND AGAINST MY LORD THE KING.L# 29 AND THE KING SAID, IS THE YOUNG MAN ABSALOM SAFE? AND AHIMAAZ ANSWERED,L WHEN JOAB SENT THE KINGS SERVANT, AND ME THY SERVANT, I SAW A GREAT TUMULT, BUT I KNEW NOT WHAT IT WAS.J# 30 AND THE KING SAID UNTO HIM, TURN ASIDE, AND STAND HERE. AND HE TURNED ASIDE, AND STOOD STILL.L# 31 AND, BEHOLD, CUSHI CAME; AND CUSHI SAID, TIDINGS, MY LORD THE KING: FORK THE LORD HATH AVENGED THEE THIS DAY OF ALL THEM THAT ROSE UP AGAINST THEE.EK# 32 AND THE KING SAID UNTO CUSHI, IS THE YOUNG MAN ABSALOM SAFE? AND CUSHIDM ANSWERED, THE ENEMIES OF MY LORD THE KING, AND ALL THAT RISE AGAINST THEE TOB' DO THEE HURT, BE AS THAT YOUNG MAN IS.NK# 33 AND THE KING WAS MUCH MOVED, AND WENT UP TO THE CHAMBER OVER THE GATE,DI AND WEPT: AND AS HE WENT, THUS HE SAID, O MY SON ABSALOM, MY SON, MY SONLC ABSALOM! WOULD GOD I HAD DIED FOR THEE, O ABSALOM, MY SON, MY SON!E = CHAPTER 19 EL# 1 AND IT WAS TOLD JOAB, BEHOLD, THE KING WEEPETH AND MOURNETH FOR ABSALOM.J# 2 AND THE VICTORY THAT DAY WAS TURNED INTO MOURNING UNTO ALL THE PEOPLE:H FOR THE PEOPLE HEARD SAY THAT DAY HOW THE KING WAS GRIEVED FOR HIS SON.H# 3 AND THE PEOPLE GAT THEM BY STEALTH THAT DAY INTO THE CITY, AS PEOPLE3 BEING ASHAMED STEAL AWAY WHEN THEY FLEE IN BATTLE.DM# 4 BUT THE KING COVERED HIS FACE, AND THE KING CRIED WITH A LOUD VOICE, O MYM( SON ABSALOM, O ABSALOM, MY SON, MY SON!M# 5 AND JOAB CAME INTO THE HOUSE TO THE KING, AND SAID, THOU HAST SHAMED THISWK DAY THE FACES OF ALL THY SERVANTS, WH00h0Y/<%X>%+%O-%TADATADATAICH THIS DAY HAVE SAVED THY LIFE, ANDOL THE LIVES OF THY SONS AND OF THY DAUGHTERS, AND THE LIVES OF THY WIVES, AND THE LIVES OF THY CONCUBINES; L# 6 IN THAT THOU LOVEST THINE ENEMIES, AND HATEST THY FRIENDS. FOR THOU HASTN DECLARED THIS DAY, THAT THOU REGARDEST NEITHER PRINCES NOR SERVANTS: FOR THISN DAY I PERCEIVE, THAT IF ABSALOM HAD LIVED, AND ALL WE HAD DIED THIS DAY, THEN IT HAD PLEASED THEE WELL.K# 7 NOW THEREFORE ARISE, GO FORTH, AND SPEAK COMFORTABLY UNTO THY SERVANTS: M FOR I SWEAR BY THE LORD, IF THOU GO NOT FORTH, THERE WILL NOT TARRY ONE WITHOI THEE THIS NIGHT: AND THAT WILL BE WORSE UNTO THEE THAN ALL THE EVIL THAT & BEFELL THEE FROM THY YOUTH UNTIL NOW.H# 8 THEN THE KING AROSE, AND SAT IN THE GATE. AND THEY TOLD UNTO ALL THEJ PEOPLE, SAYING, BEHOLD, THE KING DOTH SIT IN THE GATE. AND ALL THE PEOPLEA CAME BEFORE THE KING: FOR ISRAEL HAD FLED EVERY MAN TO HIS TENT.AJ# 9 AND ALL THE PEOPLE WERE AT STRIFE THROUGHOUT ALL THE TRIBES OF ISRAEL,N SAYING, THE KING SAVED US OUT OF THE HAND OF OUR ENEMIES, AND HE DELIVERED USK OUT OF THE HAND OF THE PHILISTINES; AND NOW HE IS FLED OUT OF THE LAND FORA ABSALOM.VL# 10 AND ABSALOM, WHOM WE ANOINTED OVER US, IS DEAD IN BATTLE. NOW THEREFORE3 WHY SPEAK YE NOT A WORD OF BRINGING THE KING BACK?,L# 11 AND KING DAVID SENT TO ZADOK AND TO ABIATHAR THE PRIESTS, SAYING, SPEAKM UNTO THE ELDERS OF JUDAH, SAYING, WHY ARE YE THE LAST TO BRING THE KING BACKEK TO HIS HOUSE? SEEING THE SPEECH OF ALL ISRAEL IS COME TO THE KING, EVEN TO HIS HOUSE. L# 12 YE ARE MY BRETHREN, YE ARE MY BONES AND MY FLESH: WHEREFORE THEN ARE YE! THE LAST TO BRING BACK THE KING? M# 13 AND SAY YE TO AMASA, ART THOU NOT OF MY BONE, AND OF MY FLESH? GOD DO SO.C TO ME, AND MORE ALSO, IF THOU BE NOT CAPTAIN OF THE HOST BEFORE ME! CONTINUALLY IN THE ROOM OF JOAB.NM# 14 AND HE BOWED THE HEART OF ALL THE MEN OF JUDAH, EVEN AS THE HEART OF ONEYI MAN; SO THAT THEY SENT THIS WORD UNTO THE KING, RETURN THOU, AND ALL THYO SERVANTS.K# 15 SO THE KING RETURNED, AND CAME TO JORDAN. AND JUDAH CAME TO GILGAL, TO 6 GO TO MEET THE KING, TO CONDUCT THE KING OVER JORDAN.J# 16 AND SHIMEI THE SON OF GERA, A BENJAMITE, WHICH WAS OF BAHURIM, HASTED8 AND CAME DOWN WITH THE MEN OF JUDAH TO MEET KING DAVID.M# 17 AND THERE WERE A THOUSAND MEN OF BENJAMIN WITH HIM, AND ZIBA THE SERVANT M OF THE HOUSE OF SAUL, AND HIS FIFTEEN SONS AND HIS TWENTY SERVANTS WITH HIM;M+ AND THEY WENT OVER JORDAN BEFORE THE KING.,L# 18 AND THERE WENT OVER A FERRY BOAT TO CARRY OVER THE KINGS HOUSEHOLD, ANDL TO DO WHAT HE THOUGHT GOOD. AND SHIMEI THE SON OF GERA FELL DOWN BEFORE THE" KING, AS HE WAS COME OVER JORDAN;M# 19 AND SAID UNTO THE KING, LET NOT MY LORD IMPUTE INIQUITY UNTO ME, NEITHERHL DO THOU REMEMBER THAT WHICH THY SERVANT DID PERVERSELY THE DAY THAT MY LORDK THE KING WENT OUT OF JERUSALEM, THAT THE KING SHOULD TAKE IT TO HIS HEART.SJ# 20 FOR THY SERVANT DOTH KNOW THAT I HAVE SINNED: THEREFORE, BEHOLD, I AMN COME THE FIRST THIS DAY OF ALL THE HOUSE OF JOSEPH TO GO DOWN TO MEET MY LORD THE KING.J# 21 BUT ABISHAI THE SON OF ZERUIAH ANSWERED AND SAID, SHALL NOT SHIMEI BE= PUT TO DEATH FOR THIS, BECAUSE HE CURSED THE LORDS ANOINTED?LL# 22 AND DAVID SAID, WHAT HAVE I TO DO WITH YOU, YE SONS OF ZERUIAH, THAT YEL SHOULD THIS DAY BE ADVERSARIES UNTO ME? SHALL THERE ANY MAN BE PUT TO DEATHK THIS DAY IN ISRAEL? FOR DO NOT I KNOW THAT I AM THIS DAY KING OVER ISRAEL?NJ# 23 THEREFORE THE KING SAID UNTO SHIMEI, THOU SHALT NOT DIE. AND THE KING SWARE UNTO HIM.I# 24 AND MEPHIBOSHETH THE SON OF SAUL CAME DOWN TO MEET THE KING, AND HADEN NEITHER DRESSED HIS FEET, NOR TRIMMED HIS BEARD, NOR WASHED HIS CLOTHES, FROM@ THE DAY THE KING DEPARTED UNTIL THE DAY HE CAME AGAIN IN PEACE.I# 25 AND IT CAME TO PASS, WHEN HE WAS COME TO JERUSALEM TO MEET THE KING,NA THAT THE KING SAID UNTO HIM, WHEREFORE WENTEST NOT THOU WITH ME,R MEPHIBOSHETH?F# 26 AND HE ANSWERED, MY LORD, O KING, MY SERVANT DECEIVED ME: FOR THYN SERVANT SAID, I WILL SADDLE ME AN ASS, THAT I MAY RIDE THEREON, AND GO TO THE# KING; BECAUSE THY S00h0g/D%5%T6%! !ERVANT IS LAME.HM# 27 AND HE HATH SLANDERED THY SERVANT UNTO MY LORD THE KING; BUT MY LORD THEHE KING IS AS AN ANGEL OF GOD: DO THEREFORE WHAT IS GOOD IN THINE EYES.NK# 28 FOR ALL OF MY FATHERS HOUSE WERE BUT DEAD MEN BEFORE MY LORD THE KING:HK YET DIDST THOU SET THY SERVANT AMONG THEM THAT DID EAT AT THINE OWN TABLE.? WHAT RIGHT THEREFORE HAVE I YET TO CRY ANY MORE UNTO THE KING? M# 29 AND THE KING SAID UNTO HIM, WHY SPEAKEST THOU ANY MORE OF THY MATTERS? IH* HAVE SAID, THOU AND ZIBA DIVIDE THE LAND.M# 30 AND MEPHIBOSHETH SAID UNTO THE KING, YEA, LET HIM TAKE ALL, FORASMUCH ASU< MY LORD THE KING IS COME AGAIN IN PEACE UNTO HIS OWN HOUSE.M# 31 AND BARZILLAI THE GILEADITE CAME DOWN FROM ROGELIM, AND WENT OVER JORDANF+ WITH THE KING, TO CONDUCT HIM OVER JORDAN.HL# 32 NOW BARZILLAI WAS A VERY AGED MAN, EVEN FOURSCORE YEARS OLD: AND HE HADL PROVIDED THE KING OF SUSTENANCE WHILE HE LAY AT MAHANAIM; FOR HE WAS A VERY GREAT MAN.HI# 33 AND THE KING SAID UNTO BARZILLAI, COME THOU OVER WITH ME, AND I WILL FEED THEE WITH ME IN JERUSALEM.M# 34 AND BARZILLAI SAID UNTO THE KING, HOW LONG HAVE I TO LIVE, THAT I SHOULDN$ GO UP WITH THE KING UNTO JERUSALEM?J# 35 I AM THIS DAY FOURSCORE YEARS OLD: AND CAN I DISCERN BETWEEN GOOD ANDL EVIL? CAN THY SERVANT TASTE WHAT I EAT OR WHAT I DRINK? CAN I HEAR ANY MOREN THE VOICE OF SINGING MEN AND SINGING WOMEN? WHEREFORE THEN SHOULD THY SERVANT' BE YET A BURDEN UNTO MY LORD THE KING?EH# 36 THY SERVANT WILL GO A LITTLE WAY OVER JORDAN WITH THE KING: AND WHY5 SHOULD THE KING RECOMPENSE IT ME WITH SUCH A REWARD?BJ# 37 LET THY SERVANT, I PRAY THEE, TURN BACK AGAIN, THAT I MAY DIE IN MINEH OWN CITY, AND BE BURIED BY THE GRAVE OF MY FATHER AND OF MY MOTHER. BUTM BEHOLD THY SERVANT CHIMHAM; LET HIM GO OVER WITH MY LORD THE KING; AND DO TOA$ HIM WHAT SHALL SEEM GOOD UNTO THEE.K# 38 AND THE KING ANSWERED, CHIMHAM SHALL GO OVER WITH ME, AND I WILL DO TO L HIM THAT WHICH SHALL SEEM GOOD UNTO THEE: AND WHATSOEVER THOU SHALT REQUIRE OF ME, THAT WILL I DO FOR THEE.J# 39 AND ALL THE PEOPLE WENT OVER JORDAN. AND WHEN THE KING WAS COME OVER,I THE KING KISSED BARZILLAI, AND BLESSED HIM; AND HE RETURNED UNTO HIS OWNU PLACE.HK# 40 THEN THE KING WENT ON TO GILGAL, AND CHIMHAM WENT ON WITH HIM: AND ALLHL THE PEOPLE OF JUDAH CONDUCTED THE KING, AND ALSO HALF THE PEOPLE OF ISRAEL.K# 41 AND, BEHOLD, ALL THE MEN OF ISRAEL CAME TO THE KING, AND SAID UNTO THEOH KING, WHY HAVE OUR BRETHREN THE MEN OF JUDAH STOLEN THEE AWAY, AND HAVEG BROUGHT THE KING, AND HIS HOUSEHOLD, AND ALL DAVIDS MEN WITH HIM, OVERO JORDAN?M# 42 AND ALL THE MEN OF JUDAH ANSWERED THE MEN OF ISRAEL, BECAUSE THE KING IS;M NEAR OF KIN TO US: WHEREFORE THEN BE YE ANGRY FOR THIS MATTER? HAVE WE EATEN 8 AT ALL OF THE KINGS COST? OR HATH HE GIVEN US ANY GIFT?K# 43 AND THE MEN OF ISRAEL ANSWERED THE MEN OF JUDAH, AND SAID, WE HAVE TEN N PARTS IN THE KING, AND WE HAVE ALSO MORE RIGHT IN DAVID THAN YE: WHY THEN DIDL YE DESPISE US, THAT OUR ADVICE SHOULD NOT BE FIRST HAD IN BRINGING BACK OURK KING? AND THE WORDS OF THE MEN OF JUDAH WERE FIERCER THAN THE WORDS OF THEM MEN OF ISRAEL.R = CHAPTER 20 SM# 1 AND THERE HAPPENED TO BE THERE A MAN OF BELIAL, WHOSE NAME WAS SHEBA, THETM SON OF BICHRI, A BENJAMITE: AND HE BLEW A TRUMPET, AND SAID, WE HAVE NO PARTGL IN DAVID, NEITHER HAVE WE INHERITANCE IN THE SON OF JESSE: EVERY MAN TO HIS TENTS, O ISRAEL. K# 2 SO EVERY MAN OF ISRAEL WENT UP FROM AFTER DAVID, AND FOLLOWED SHEBA THE L SON OF BICHRI: BUT THE MEN OF JUDAH CLAVE UNTO THEIR KING, FROM JORDAN EVEN TO JERUSALEM.M# 3 AND DAVID CAME TO HIS HOUSE AT JERUSALEM; AND THE KING TOOK THE TEN WOMEN0N HIS CONCUBINES, WHOM HE HAD LEFT TO KEEP THE HOUSE, AND PUT THEM IN WARD, ANDJ FED THEM, BUT WENT NOT IN UNTO THEM. SO THEY WERE SHUT UP UNTO THE DAY OF" THEIR DEATH, LIVING IN WIDOWHOOD.J# 4 THEN SAID THE KING TO AMASA, ASSEMBLE ME THE MEN OF JUDAH WITHIN THREE DAYS, AND BE THOU HERE PRESENT.J# 5 SO AMASA WENT TO ASSEMBLE THE MEN OF JUDAH: BUT HE TARRIED LONGER THAN) THE SET TIME WHICH HE HAD APPOINTED HIM. 00h0Y/<%X>%+%O-%TADATADATAK# 6 AND DAVID SAID TO ABISHAI, NOW SHALL SHEBA THE SON OF BICHRI DO US MOREHK HARM THAN DID ABSALOM: TAKE THOU THY LORDS SERVANTS, AND PURSUE AFTER HIM,E. LEST HE GET HIM FENCED CITIES, AND ESCAPE US.H# 7 AND THERE WENT OUT AFTER HIM JOABS MEN, AND THE CHERETHITES, AND THEN PELETHITES, AND ALL THE MIGHTY MEN: AND THEY WENT OUT OF JERUSALEM, TO PURSUE AFTER SHEBA THE SON OF BICHRI..K# 8 WHEN THEY WERE AT THE GREAT STONE WHICH IS IN GIBEON, AMASA WENT BEFOREN THEM. AND JOABS GARMENT THAT HE HAD PUT ON WAS GIRDED UNTO HIM, AND UPON IT AM GIRDLE WITH A SWORD FASTENED UPON HIS LOINS IN THE SHEATH THEREOF; AND AS HE  WENT FORTH IT FELL OUT.I# 9 AND JOAB SAID TO AMASA, ART THOU IN HEALTH, MY BROTHER? AND JOAB TOOK 4 AMASA BY THE BEARD WITH THE RIGHT HAND TO KISS HIM.L# 10 BUT AMASA TOOK NO HEED TO THE SWORD THAT WAS IN JOABS HAND: SO HE SMOTEK HIM THEREWITH IN THE FIFTH RIB, AND SHED OUT HIS BOWELS TO THE GROUND, ANDNK STRUCK HIM NOT AGAIN; AND HE DIED. SO JOAB AND ABISHAI HIS BROTHER PURSUEDD AFTER SHEBA THE SON OF BICHRI.UM# 11 AND ONE OF JOABS MEN STOOD BY HIM, AND SAID, HE THAT FAVOURETH JOAB, ANDN- HE THAT IS FOR DAVID, LET HIM GO AFTER JOAB.BJ# 12 AND AMASA WALLOWED IN BLOOD IN THE MIDST OF THE HIGHWAY. AND WHEN THEM MAN SAW THAT ALL THE PEOPLE STOOD STILL, HE REMOVED AMASA OUT OF THE HIGHWAYOK INTO THE FIELD, AND CAST A CLOTH UPON HIM, WHEN HE SAW THAT EVERY ONE THATS CAME BY HIM STOOD STILL.RI# 13 WHEN HE WAS REMOVED OUT OF THE HIGHWAY, ALL THE PEOPLE WENT ON AFTERT/ JOAB, TO PURSUE AFTER SHEBA THE SON OF BICHRI. C# 14 AND HE WENT THROUGH ALL THE TRIBES OF ISRAEL UNTO ABEL, AND TOBL BETHMAACHAH, AND ALL THE BERITES: AND THEY WERE GATHERED TOGETHER, AND WENT ALSO AFTER HIM.L# 15 AND THEY CAME AND BESIEGED HIM IN ABEL OF BETHMAACHAH, AND THEY CAST UPM A BANK AGAINST THE CITY, AND IT STOOD IN THE TRENCH: AND ALL THE PEOPLE THATM4 WERE WITH JOAB BATTERED THE WALL, TO THROW IT DOWN.J# 16 THEN CRIED A WISE WOMAN OUT OF THE CITY, HEAR, HEAR; SAY, I PRAY YOU,9 UNTO JOAB, COME NEAR HITHER, THAT I MAY SPEAK WITH THEE.K# 17 AND WHEN HE WAS COME NEAR UNTO HER, THE WOMAN SAID, ART THOU JOAB? ANDAF HE ANSWERED, I AM HE. THEN SHE SAID UNTO HIM, HEAR THE WORDS OF THINE& HANDMAID. AND HE ANSWERED, I DO HEAR.I# 18 THEN SHE SPAKE, SAYING, THEY WERE WONT TO SPEAK IN OLD TIME, SAYING,IE THEY SHALL SURELY ASK COUNSEL AT ABEL: AND SO THEY ENDED THE MATTER.AM# 19 I AM ONE OF THEM THAT ARE PEACEABLE AND FAITHFUL IN ISRAEL: THOU SEEKEST G TO DESTROY A CITY AND A MOTHER IN ISRAEL: WHY WILT THOU SWALLOW UP THEM INHERITANCE OF THE LORD?AL# 20 AND JOAB ANSWERED AND SAID, FAR BE IT, FAR BE IT FROM ME, THAT I SHOULD SWALLOW UP OR DESTROY. G# 21 THE MATTER IS NOT SO: BUT A MAN OF MOUNT EPHRAIM, SHEBA THE SON OFHN BICHRI BY NAME, HATH LIFTED UP HIS HAND AGAINST THE KING, EVEN AGAINST DAVID:K DELIVER HIM ONLY, AND I WILL DEPART FROM THE CITY. AND THE WOMAN SAID UNTO9> JOAB, BEHOLD, HIS HEAD SHALL BE THROWN TO THEE OVER THE WALL.L# 22 THEN THE WOMAN WENT UNTO ALL THE PEOPLE IN HER WISDOM. AND THEY CUT OFFL THE HEAD OF SHEBA THE SON OF BICHRI, AND CAST IT OUT TO JOAB. AND HE BLEW AI TRUMPET, AND THEY RETIRED FROM THE CITY, EVERY MAN TO HIS TENT. AND JOABE% RETURNED TO JERUSALEM UNTO THE KING.,E# 23 NOW JOAB WAS OVER ALL THE HOST OF ISRAEL: AND BENAIAH THE SON OFE; JEHOIADA WAS OVER THE CHERETHITES AND OVER THE PELETHITES:AK# 24 AND ADORAM WAS OVER THE TRIBUTE: AND JEHOSHAPHAT THE SON OF AHILUD WAST RECORDER:C# 25 AND SHEVA WAS SCRIBE: AND ZADOK AND ABIATHAR WERE THE PRIESTS: <# 26 AND IRA ALSO THE JAIRITE WAS A CHIEF RULER ABOUT DAVID. = CHAPTER 21 UN# 1 THEN THERE WAS A FAMINE IN THE DAYS OF DAVID THREE YEARS, YEAR AFTER YEAR;K AND DAVID ENQUIRED OF THE LORD. AND THE LORD ANSWERED, IT IS FOR SAUL, ANDA6 FOR HIS BLOODY HOUSE, BECAUSE HE SLEW THE GIBEONITES.D# 2 AND THE KING CALLED THE GIBEONITES, AND SAID UNTO THEM; (NOW THEI GIBEONITES WERE NOT OF THE CHILDREN OF ISRAEL, BUT OF THE REMNANT OF THERM AMORITES; AND THE CHILDREN OF ISRAEL HAD SWORN UNTO THEM: AND SAUL SOUGHT TO6< SLAY 00h 0g/D%5%T6%! !THEM IN HIS ZEAL TO THE CHILDREN OF ISRAEL AND JUDAH.)J# 3 WHEREFORE DAVID SAID UNTO THE GIBEONITES, WHAT SHALL I DO FOR YOU? ANDK WHEREWITH SHALL I MAKE THE ATONEMENT, THAT YE MAY BLESS THE INHERITANCE OF THE LORD?H# 4 AND THE GIBEONITES SAID UNTO HIM, WE WILL HAVE NO SILVER NOR GOLD OFN SAUL, NOR OF HIS HOUSE; NEITHER FOR US SHALT THOU KILL ANY MAN IN ISRAEL. AND4 HE SAID, WHAT YE SHALL SAY, THAT WILL I DO FOR YOU.J# 5 AND THEY ANSWERED THE KING, THE MAN THAT CONSUMED US, AND THAT DEVISEDN AGAINST US THAT WE SHOULD BE DESTROYED FROM REMAINING IN ANY OF THE COASTS OF ISRAEL,L# 6 LET SEVEN MEN OF HIS SONS BE DELIVERED UNTO US, AND WE WILL HANG THEM UPN UNTO THE LORD IN GIBEAH OF SAUL, WHOM THE LORD DID CHOOSE. AND THE KING SAID, I WILL GIVE THEM.J# 7 BUT THE KING SPARED MEPHIBOSHETH, THE SON OF JONATHAN THE SON OF SAUL,L BECAUSE OF THE LORDS OATH THAT WAS BETWEEN THEM, BETWEEN DAVID AND JONATHAN THE SON OF SAUL. K# 8 BUT THE KING TOOK THE TWO SONS OF RIZPAH THE DAUGHTER OF AIAH, WHOM SHENI BARE UNTO SAUL, ARMONI AND MEPHIBOSHETH; AND THE FIVE SONS OF MICHAL THEIJ DAUGHTER OF SAUL, WHOM SHE BROUGHT UP FOR ADRIEL THE SON OF BARZILLAI THE MEHOLATHITE: K# 9 AND HE DELIVERED THEM INTO THE HANDS OF THE GIBEONITES, AND THEY HANGEDWM THEM IN THE HILL BEFORE THE LORD: AND THEY FELL ALL SEVEN TOGETHER, AND WEREOL PUT TO DEATH IN THE DAYS OF HARVEST, IN THE FIRST DAYS, IN THE BEGINNING OF BARLEY HARVEST.J# 10 AND RIZPAH THE DAUGHTER OF AIAH TOOK SACKCLOTH, AND SPREAD IT FOR HERK UPON THE ROCK, FROM THE BEGINNING OF HARVEST UNTIL WATER DROPPED UPON THEMFL OUT OF HEAVEN, AND SUFFERED NEITHER THE BIRDS OF THE AIR TO REST ON THEM BY+ DAY, NOR THE BEASTS OF THE FIELD BY NIGHT.RM# 11 AND IT WAS TOLD DAVID WHAT RIZPAH THE DAUGHTER OF AIAH, THE CONCUBINE OFE SAUL, HAD DONE.L# 12 AND DAVID WENT AND TOOK THE BONES OF SAUL AND THE BONES OF JONATHAN HISK SON FROM THE MEN OF JABESHGILEAD, WHICH HAD STOLEN THEM FROM THE STREET OFHJ BETHSHAN, WHERE THE PHILISTINES HAD HANGED THEM, WHEN THE PHILISTINES HAD SLAIN SAUL IN GILBOA:E# 13 AND HE BROUGHT UP FROM THENCE THE BONES OF SAUL AND THE BONES OFRH JONATHAN HIS SON; AND THEY GATHERED THE BONES OF THEM THAT WERE HANGED.M# 14 AND THE BONES OF SAUL AND JONATHAN HIS SON BURIED THEY IN THE COUNTRY OFCK BENJAMIN IN ZELAH, IN THE SEPULCHRE OF KISH HIS FATHER: AND THEY PERFORMEDLL ALL THAT THE KING COMMANDED. AND AFTER THAT GOD WAS INTREATED FOR THE LAND.K# 15 MOREOVER THE PHILISTINES HAD YET WAR AGAIN WITH ISRAEL; AND DAVID WENTHI DOWN, AND HIS SERVANTS WITH HIM, AND FOUGHT AGAINST THE PHILISTINES: ANDP DAVID WAXED FAINT.SL# 16 AND ISHBIBENOB, WHICH WAS OF THE SONS OF THE GIANT, THE WEIGHT OF WHOSEM SPEAR WEIGHED THREE HUNDRED SHEKELS OF BRASS IN WEIGHT, HE BEING GIRDED WITHT* A NEW SWORD, THOUGHT TO HAVE SLAIN DAVID.L# 17 BUT ABISHAI THE SON OF ZERUIAH SUCCOURED HIM, AND SMOTE THE PHILISTINE,L AND KILLED HIM. THEN THE MEN OF DAVID SWARE UNTO HIM, SAYING, THOU SHALT GOI NO MORE OUT WITH US TO BATTLE, THAT THOU QUENCH NOT THE LIGHT OF ISRAEL.RK# 18 AND IT CAME TO PASS AFTER THIS, THAT THERE WAS AGAIN A BATTLE WITH THESN PHILISTINES AT GOB: THEN SIBBECHAI THE HUSHATHITE SLEW SAPH, WHICH WAS OF THE SONS OF THE GIANT.HL# 19 AND THERE WAS AGAIN A BATTLE IN GOB WITH THE PHILISTINES, WHERE ELHANANH THE SON OF JAAREOREGIM, A BETHLEHEMITE, SLEW THE BROTHER OF GOLIATH THE; GITTITE, THE STAFF OF WHOSE SPEAR WAS LIKE A WEAVERS BEAM.DJ# 20 AND THERE WAS YET A BATTLE IN GATH, WHERE WAS A MAN OF GREAT STATURE,I THAT HAD ON EVERY HAND SIX FINGERS, AND ON EVERY FOOT SIX TOES, FOUR ANDT5 TWENTY IN NUMBER; AND HE ALSO WAS BORN TO THE GIANT.NJ# 21 AND WHEN HE DEFIED ISRAEL, JONATHAN THE SON OF SHIMEAH THE BROTHER OF DAVID SLEW HIM.G# 22 THESE FOUR WERE BORN TO THE GIANT IN GATH, AND FELL BY THE HAND OFN( DAVID, AND BY THE HAND OF HIS SERVANTS. = CHAPTER 22 EL# 1 AND DAVID SPAKE UNTO THE LORD THE WORDS OF THIS SONG IN THE DAY THAT THEJ LORD HAD DELIVERED HIM OUT OF THE HAND OF ALL HIS ENEMIES, AND OUT OF THE HAND OF SAUL:H# 2 AND HE SAID, THE LORD 00h(0Y/<%X>%+%O-%TADATADATAIS MY ROCK, AND MY FORTRESS, AND MY DELIVERER;M# 3 THE GOD OF MY ROCK; IN HIM WILL I TRUST: HE IS MY SHIELD, AND THE HORN OFAL MY SALVATION, MY HIGH TOWER, AND MY REFUGE, MY SAVIOUR; THOU SAVEST ME FROM VIOLENCE.M# 4 I WILL CALL ON THE LORD, WHO IS WORTHY TO BE PRAISED: SO SHALL I BE SAVEDT FROM MINE ENEMIES. K# 5 WHEN THE WAVES OF DEATH COMPASSED ME, THE FLOODS OF UNGODLY MEN MADE MEL AFRAID;M# 6 THE SORROWS OF HELL COMPASSED ME ABOUT; THE SNARES OF DEATH PREVENTED ME;J# 7 IN MY DISTRESS I CALLED UPON THE LORD, AND CRIED TO MY GOD: AND HE DIDE HEAR MY VOICE OUT OF HIS TEMPLE, AND MY CRY DID ENTER INTO HIS EARS.NJ# 8 THEN THE EARTH SHOOK AND TREMBLED; THE FOUNDATIONS OF HEAVEN MOVED AND SHOOK, BECAUSE HE WAS WROTH.CH# 9 THERE WENT UP A SMOKE OUT OF HIS NOSTRILS, AND FIRE OUT OF HIS MOUTH$ DEVOURED: COALS WERE KINDLED BY IT.I# 10 HE BOWED THE HEAVENS ALSO, AND CAME DOWN; AND DARKNESS WAS UNDER HISO FEET.K# 11 AND HE RODE UPON A CHERUB, AND DID FLY: AND HE WAS SEEN UPON THE WINGSE OF THE WIND.NK# 12 AND HE MADE DARKNESS PAVILIONS ROUND ABOUT HIM, DARK WATERS, AND THICK  CLOUDS OF THE SKIES.TB# 13 THROUGH THE BRIGHTNESS BEFORE HIM WERE COALS OF FIRE KINDLED.I# 14 THE LORD THUNDERED FROM HEAVEN, AND THE MOST HIGH UTTERED HIS VOICE.MK# 15 AND HE SENT OUT ARROWS, AND SCATTERED THEM; LIGHTNING, AND DISCOMFITEDD THEM.L# 16 AND THE CHANNELS OF THE SEA APPEARED, THE FOUNDATIONS OF THE WORLD WEREK DISCOVERED, AT THE REBUKING OF THE LORD, AT THE BLAST OF THE BREATH OF HISH NOSTRILS.C# 17 HE SENT FROM ABOVE, HE TOOK ME; HE DREW ME OUT OF MANY WATERS;RK# 18 HE DELIVERED ME FROM MY STRONG ENEMY, AND FROM THEM THAT HATED ME: FORO THEY WERE TOO STRONG FOR ME.EK# 19 THEY PREVENTED ME IN THE DAY OF MY CALAMITY: BUT THE LORD WAS MY STAY.MM# 20 HE BROUGHT ME FORTH ALSO INTO A LARGE PLACE: HE DELIVERED ME, BECAUSE HE DELIGHTED IN ME.EI# 21 THE LORD REWARDED ME ACCORDING TO MY RIGHTEOUSNESS: ACCORDING TO THEE. CLEANNESS OF MY HANDS HATH HE RECOMPENSED ME.I# 22 FOR I HAVE KEPT THE WAYS OF THE LORD, AND HAVE NOT WICKEDLY DEPARTEDW FROM MY GOD. M# 23 FOR ALL HIS JUDGMENTS WERE BEFORE ME: AND AS FOR HIS STATUTES, I DID NOTE DEPART FROM THEM.L# 24 I WAS ALSO UPRIGHT BEFORE HIM, AND HAVE KEPT MYSELF FROM MINE INIQUITY.J# 25 THEREFORE THE LORD HATH RECOMPENSED ME ACCORDING TO MY RIGHTEOUSNESS;, ACCORDING TO MY CLEANNESS IN HIS EYE SIGHT.L# 26 WITH THE MERCIFUL THOU WILT SHEW THYSELF MERCIFUL, AND WITH THE UPRIGHT$ MAN THOU WILT SHEW THYSELF UPRIGHT.I# 27 WITH THE PURE THOU WILT SHEW THYSELF PURE; AND WITH THE FROWARD THOUR WILT SHEW THYSELF UNSAVOURY.AI# 28 AND THE AFFLICTED PEOPLE THOU WILT SAVE: BUT THINE EYES ARE UPON THER+ HAUGHTY, THAT THOU MAYEST BRING THEM DOWN.HI# 29 FOR THOU ART MY LAMP, O LORD: AND THE LORD WILL LIGHTEN MY DARKNESS.RK# 30 FOR BY THEE I HAVE RUN THROUGH A TROOP: BY MY GOD HAVE I LEAPED OVER AI WALL.K# 31 AS FOR GOD, HIS WAY IS PERFECT; THE WORD OF THE LORD IS TRIED: HE IS AR' BUCKLER TO ALL THEM THAT TRUST IN HIM..D# 32 FOR WHO IS GOD, SAVE THE LORD? AND WHO IS A ROCK, SAVE OUR GOD?@# 33 GOD IS MY STRENGTH AND POWER: AND HE MAKETH MY WAY PERFECT.K# 34 HE MAKETH MY FEET LIKE HINDS FEET: AND SETTETH ME UPON MY HIGH PLACES.BJ# 35 HE TEACHETH MY HANDS TO WAR; SO THAT A BOW OF STEEL IS BROKEN BY MINE ARMS.L# 36 THOU HAST ALSO GIVEN ME THE SHIELD OF THY SALVATION: AND THY GENTLENESS HATH MADE ME GREAT.H# 37 THOU HAST ENLARGED MY STEPS UNDER ME; SO THAT MY FEET DID NOT SLIP.J# 38 I HAVE PURSUED MINE ENEMIES, AND DESTROYED THEM; AND TURNED NOT AGAIN UNTIL I HAD CONSUMED THEM. K# 39 AND I HAVE CONSUMED THEM, AND WOUNDED THEM, THAT THEY COULD NOT ARISE:H$ YEA, THEY ARE FALLEN UNDER MY FEET.G# 40 FOR THOU HAST GIRDED ME WITH STRENGTH TO BATTLE: THEM THAT ROSE UPA' AGAINST ME HAST THOU SUBDUED UNDER ME..L# 41 THOU HAST ALSO GIVEN ME THE NECKS OF MINE ENEMIES, THAT I MIGHT DESTROY THEM THAT HATE ME..H# 42 THEY LOOKED, BUT THERE WAS NONE TO SAVE; EVEN UNTO THE LORD, BUT HE ANSWERED THEM NOT. M# 43 THEN DID I BEAT THEM AS SMALL AS THE DUST OF THE 00h00g/D%5%T6%! !EARTH, I DID STAMP THEMH7 AS THE MIRE OF THE STREET, AND DID SPREAD THEM ABROAD.AK# 44 THOU ALSO HAST DELIVERED ME FROM THE STRIVINGS OF MY PEOPLE, THOU HAST M KEPT ME TO BE HEAD OF THE HEATHEN: A PEOPLE WHICH I KNEW NOT SHALL SERVE ME.OJ# 45 STRANGERS SHALL SUBMIT THEMSELVES UNTO ME: AS SOON AS THEY HEAR, THEY SHALL BE OBEDIENT UNTO ME. K# 46 STRANGERS SHALL FADE AWAY, AND THEY SHALL BE AFRAID OUT OF THEIR CLOSEO PLACES.K# 47 THE LORD LIVETH; AND BLESSED BE MY ROCK; AND EXALTED BE THE GOD OF THE  ROCK OF MY SALVATION.L# 48 IT IS GOD THAT AVENGETH ME, AND THAT BRINGETH DOWN THE PEOPLE UNDER ME.K# 49 AND THAT BRINGETH ME FORTH FROM MINE ENEMIES: THOU ALSO HAST LIFTED MEAK UP ON HIGH ABOVE THEM THAT ROSE UP AGAINST ME: THOU HAST DELIVERED ME FROMS THE VIOLENT MAN.VM# 50 THEREFORE I WILL GIVE THANKS UNTO THEE, O LORD, AMONG THE HEATHEN, AND IN! WILL SING PRAISES UNTO THY NAME.LH# 51 HE IS THE TOWER OF SALVATION FOR HIS KING: AND SHEWETH MERCY TO HIS4 ANOINTED, UNTO DAVID, AND TO HIS SEED FOR EVERMORE. = CHAPTER 23 N# 1 NOW THESE BE THE LAST WORDS OF DAVID. DAVID THE SON OF JESSE SAID, AND THEI MAN WHO WAS RAISED UP ON HIGH, THE ANOINTED OF THE GOD OF JACOB, AND THE SWEET PSALMIST OF ISRAEL, SAID,F# 2 THE SPIRIT OF THE LORD SPAKE BY ME, AND HIS WORD WAS IN MY TONGUE.J# 3 THE GOD OF ISRAEL SAID, THE ROCK OF ISRAEL SPAKE TO ME, HE THAT RULETH2 OVER MEN MUST BE JUST, RULING IN THE FEAR OF GOD.L# 4 AND HE SHALL BE AS THE LIGHT OF THE MORNING, WHEN THE SUN RISETH, EVEN AJ MORNING WITHOUT CLOUDS; AS THE TENDER GRASS SPRINGING OUT OF THE EARTH BY CLEAR SHINING AFTER RAIN.E# 5 ALTHOUGH MY HOUSE BE NOT SO WITH GOD; YET HE HATH MADE WITH ME ANHJ EVERLASTING COVENANT, ORDERED IN ALL THINGS, AND SURE: FOR THIS IS ALL MY? SALVATION, AND ALL MY DESIRE, ALTHOUGH HE MAKE IT NOT TO GROW.OF# 6 BUT THE SONS OF BELIAL SHALL BE ALL OF THEM AS THORNS THRUST AWAY,) BECAUSE THEY CANNOT BE TAKEN WITH HANDS:.L# 7 BUT THE MAN THAT SHALL TOUCH THEM MUST BE FENCED WITH IRON AND THE STAFFJ OF A SPEAR; AND THEY SHALL BE UTTERLY BURNED WITH FIRE IN THE SAME PLACE.L# 8 THESE BE THE NAMES OF THE MIGHTY MEN WHOM DAVID HAD: THE TACHMONITE THATM SAT IN THE SEAT, CHIEF AMONG THE CAPTAINS; THE SAME WAS ADINO THE EZNITE: HE C LIFT UP HIS SPEAR AGAINST EIGHT HUNDRED, WHOM HE SLEW AT ONE TIME.TK# 9 AND AFTER HIM WAS ELEAZAR THE SON OF DODO THE AHOHITE, ONE OF THE THREEUH MIGHTY MEN WITH DAVID, WHEN THEY DEFIED THE PHILISTINES THAT WERE THEREC GATHERED TOGETHER TO BATTLE, AND THE MEN OF ISRAEL WERE GONE AWAY:;J# 10 HE AROSE, AND SMOTE THE PHILISTINES UNTIL HIS HAND WAS WEARY, AND HISN HAND CLAVE UNTO THE SWORD: AND THE LORD WROUGHT A GREAT VICTORY THAT DAY; AND- THE PEOPLE RETURNED AFTER HIM ONLY TO SPOIL.OD# 11 AND AFTER HIM WAS SHAMMAH THE SON OF AGEE THE HARARITE. AND THEM PHILISTINES WERE GATHERED TOGETHER INTO A TROOP, WHERE WAS A PIECE OF GROUNDE< FULL OF LENTILES: AND THE PEOPLE FLED FROM THE PHILISTINES.K# 12 BUT HE STOOD IN THE MIDST OF THE GROUND, AND DEFENDED IT, AND SLEW THEE3 PHILISTINES: AND THE LORD WROUGHT A GREAT VICTORY.IF# 13 AND THREE OF THE THIRTY CHIEF WENT DOWN, AND CAME TO DAVID IN THEH HARVEST TIME UNTO THE CAVE OF ADULLAM: AND THE TROOP OF THE PHILISTINES" PITCHED IN THE VALLEY OF REPHAIM.K# 14 AND DAVID WAS THEN IN AN HOLD, AND THE GARRISON OF THE PHILISTINES WASA THEN IN BETHLEHEM.AM# 15 AND DAVID LONGED, AND SAID, OH THAT ONE WOULD GIVE ME DRINK OF THE WATERO0 OF THE WELL OF BETHLEHEM, WHICH IS BY THE GATE!L# 16 AND THE THREE MIGHTY MEN BRAKE THROUGH THE HOST OF THE PHILISTINES, ANDL DREW WATER OUT OF THE WELL OF BETHLEHEM, THAT WAS BY THE GATE, AND TOOK IT,M AND BROUGHT IT TO DAVID: NEVERTHELESS HE WOULD NOT DRINK THEREOF, BUT POUREDP IT OUT UNTO THE LORD.J# 17 AND HE SAID, BE IT FAR FROM ME, O LORD, THAT I SHOULD DO THIS: IS NOTM THIS THE BLOOD OF THE MEN THAT WENT IN JEOPARDY OF THEIR LIVES? THEREFORE HE,= WOULD NOT DRINK IT. THESE THINGS DID THESE THREE MIGHTY MEN. J# 18 AND ABISHAI, THE BROTHER OF JOAB, THE SON OF ZERUIAH, WAS CHIEF AMONGL THREE. AND HE LIFTED 00h80Y/<%X>%+%O-%TADATADATAUP HIS SPEAR AGAINST THREE HUNDRED, AND SLEW THEM, AND HAD THE NAME AMONG THREE.I# 19 WAS HE NOT MOST HONOURABLE OF THREE? THEREFORE HE WAS THEIR CAPTAIN:B. HOWBEIT HE ATTAINED NOT UNTO THE FIRST THREE.K# 20 AND BENAIAH THE SON OF JEHOIADA, THE SON OF A VALIANT MAN, OF KABZEEL,OL WHO HAD DONE MANY ACTS, HE SLEW TWO LIONLIKE MEN OF MOAB: HE WENT DOWN ALSO7 AND SLEW A LION IN THE MIDST OF A PIT IN TIME OF SNOW:AK# 21 AND HE SLEW AN EGYPTIAN, A GOODLY MAN: AND THE EGYPTIAN HAD A SPEAR IN M HIS HAND; BUT HE WENT DOWN TO HIM WITH A STAFF, AND PLUCKED THE SPEAR OUT OFN5 THE EGYPTIANS HAND, AND SLEW HIM WITH HIS OWN SPEAR.RI# 22 THESE THINGS DID BENAIAH THE SON OF JEHOIADA, AND HAD THE NAME AMONGS THREE MIGHTY MEN.M# 23 HE WAS MORE HONOURABLE THAN THE THIRTY, BUT HE ATTAINED NOT TO THE FIRSTN) THREE. AND DAVID SET HIM OVER HIS GUARD.AI# 24 ASAHEL THE BROTHER OF JOAB WAS ONE OF THE THIRTY; ELHANAN THE SON OFW DODO OF BETHLEHEM,A.# 25 SHAMMAH THE HARODITE, ELIKA THE HARODITE,:# 26 HELEZ THE PALTITE, IRA THE SON OF IKKESH THE TEKOITE,6# 27 ABIEZER THE ANETHOTHITE, MEBUNNAI THE HUSHATHITE,2# 28 ZALMON THE AHOHITE, MAHARAI THE NETOPHATHITE,K# 29 HELEB THE SON OF BAANAH, A NETOPHATHITE, ITTAI THE SON OF RIBAI OUT OF $ GIBEAH OF THE CHILDREN OF BENJAMIN,<# 30 BENAIAH THE PIRATHONITE, HIDDAI OF THE BROOKS OF GAASH,4# 31 ABIALBON THE ARBATHITE, AZMAVETH THE BARHUMITE,># 32 ELIAHBA THE SHAALBONITE, OF THE SONS OF JASHEN, JONATHAN,@# 33 SHAMMAH THE HARARITE, AHIAM THE SON OF SHARAR THE HARARITE,L# 34 ELIPHELET THE SON OF AHASBAI, THE SON OF THE MAACHATHITE, ELIAM THE SON OF AHITHOPHEL THE GILONITE,-# 35 HEZRAI THE CARMELITE, PAARAI THE ARBITE,96# 36 IGAL THE SON OF NATHAN OF ZOBAH, BANI THE GADITE,L# 37 ZELEK THE AMMONITE, NAHARI THE BEEROTHITE, ARMOURBEARER TO JOAB THE SON OF ZERUIAH,&# 38 IRA AN ITHRITE, GAREB AN ITHRITE,0# 39 URIAH THE HITTITE: THIRTY AND SEVEN IN ALL. = CHAPTER 24 IL# 1 AND AGAIN THE ANGER OF THE LORD WAS KINDLED AGAINST ISRAEL, AND HE MOVED8 DAVID AGAINST THEM TO SAY, GO, NUMBER ISRAEL AND JUDAH.M# 2 FOR THE KING SAID TO JOAB THE CAPTAIN OF THE HOST, WHICH WAS WITH HIM, GO5M NOW THROUGH ALL THE TRIBES OF ISRAEL, FROM DAN EVEN TO BEERSHEBA, AND NUMBERH9 YE THE PEOPLE, THAT I MAY KNOW THE NUMBER OF THE PEOPLE.RJ# 3 AND JOAB SAID UNTO THE KING, NOW THE LORD THY GOD ADD UNTO THE PEOPLE,J HOW MANY SOEVER THEY BE, AN HUNDREDFOLD, AND THAT THE EYES OF MY LORD THEF KING MAY SEE IT: BUT WHY DOTH MY LORD THE KING DELIGHT IN THIS THING?J# 4 NOTWITHSTANDING THE KINGS WORD PREVAILED AGAINST JOAB, AND AGAINST THEN CAPTAINS OF THE HOST. AND JOAB AND THE CAPTAINS OF THE HOST WENT OUT FROM THE6 PRESENCE OF THE KING, TO NUMBER THE PEOPLE OF ISRAEL.K# 5 AND THEY PASSED OVER JORDAN, AND PITCHED IN AROER, ON THE RIGHT SIDE OFH THE CITY THAT LIETH IN THE MIDST OF THE RIVER OF GAD, AND TOWARD JAZER:L# 6 THEN THEY CAME TO GILEAD, AND TO THE LAND OF TAHTIMHODSHI; AND THEY CAME TO DANJAAN, AND ABOUT TO ZIDON,E# 7 AND CAME TO THE STRONG HOLD OF TYRE, AND TO ALL THE CITIES OF THEDN HIVITES, AND OF THE CANAANITES: AND THEY WENT OUT TO THE SOUTH OF JUDAH, EVEN TO BEERSHEBA.M# 8 SO WHEN THEY HAD GONE THROUGH ALL THE LAND, THEY CAME TO JERUSALEM AT THE.$ END OF NINE MONTHS AND TWENTY DAYS.K# 9 AND JOAB GAVE UP THE SUM OF THE NUMBER OF THE PEOPLE UNTO THE KING: ANDFM THERE WERE IN ISRAEL EIGHT HUNDRED THOUSAND VALIANT MEN THAT DREW THE SWORD;L5 AND THE MEN OF JUDAH WERE FIVE HUNDRED THOUSAND MEN.OJ# 10 AND DAVIDS HEART SMOTE HIM AFTER THAT HE HAD NUMBERED THE PEOPLE. ANDN DAVID SAID UNTO THE LORD, I HAVE SINNED GREATLY IN THAT I HAVE DONE: AND NOW,J I BESEECH THEE, O LORD, TAKE AWAY THE INIQUITY OF THY SERVANT; FOR I HAVE DONE VERY FOOLISHLY. M# 11 FOR WHEN DAVID WAS UP IN THE MORNING, THE WORD OF THE LORD CAME UNTO THE " PROPHET GAD, DAVIDS SEER, SAYING,K# 12 GO AND SAY UNTO DAVID, THUS SAITH THE LORD, I OFFER THEE THREE THINGS;S5 CHOOSE THEE ONE OF THEM, THAT I MAY DO IT UNTO THEE.DM# 13 SO GAD CAME TO DAVID, AND TOLD HIM, AND SAID UNTO HIM, SHALL SEVEN YEARSAL OF FAMINE C00h@0iE0D%5%T6%! !OME UNTO THEE IN THY LAND? OR WILT THOU FLEE THREE MONTHS BEFOREN THINE ENEMIES, WHILE THEY PURSUE THEE? OR THAT THERE BE THREE DAYS PESTILENCEM IN THY LAND? NOW ADVISE, AND SEE WHAT ANSWER I SHALL RETURN TO HIM THAT SENTF ME.J# 14 AND DAVID SAID UNTO GAD, I AM IN A GREAT STRAIT: LET US FALL NOW INTON THE HAND OF THE LORD; FOR HIS MERCIES ARE GREAT: AND LET ME NOT FALL INTO THE HAND OF MAN.DK# 15 SO THE LORD SENT A PESTILENCE UPON ISRAEL FROM THE MORNING EVEN TO THE H TIME APPOINTED: AND THERE DIED OF THE PEOPLE FROM DAN EVEN TO BEERSHEBA SEVENTY THOUSAND MEN.L# 16 AND WHEN THE ANGEL STRETCHED OUT HIS HAND UPON JERUSALEM TO DESTROY IT,L THE LORD REPENTED HIM OF THE EVIL, AND SAID TO THE ANGEL THAT DESTROYED THEL PEOPLE, IT IS ENOUGH: STAY NOW THINE HAND. AND THE ANGEL OF THE LORD WAS BY, THE THRESHINGPLACE OF ARAUNAH THE JEBUSITE.G# 17 AND DAVID SPAKE UNTO THE LORD WHEN HE SAW THE ANGEL THAT SMOTE THEDI PEOPLE, AND SAID, LO, I HAVE SINNED, AND I HAVE DONE WICKEDLY: BUT THESEEL SHEEP, WHAT HAVE THEY DONE? LET THINE HAND, I PRAY THEE, BE AGAINST ME, AND AGAINST MY FATHERS HOUSE.L# 18 AND GAD CAME THAT DAY TO DAVID, AND SAID UNTO HIM, GO UP, REAR AN ALTAR= UNTO THE LORD IN THE THRESHINGFLOOR OF ARAUNAH THE JEBUSITE.,C# 19 AND DAVID, ACCORDING TO THE SAYING OF GAD, WENT UP AS THE LORD COMMANDED.GK# 20 AND ARAUNAH LOOKED, AND SAW THE KING AND HIS SERVANTS COMING ON TOWARDWN HIM: AND ARAUNAH WENT OUT, AND BOWED HIMSELF BEFORE THE KING ON HIS FACE UPON THE GROUND.M# 21 AND ARAUNAH SAID, WHEREFORE IS MY LORD THE KING COME TO HIS SERVANT? ANDMJ DAVID SAID, TO BUY THE THRESHINGFLOOR OF THEE, TO BUILD AN ALTAR UNTO THE5 LORD, THAT THE PLAGUE MAY BE STAYED FROM THE PEOPLE. M# 22 AND ARAUNAH SAID UNTO DAVID, LET MY LORD THE KING TAKE AND OFFER UP WHATSE SEEMETH GOOD UNTO HIM: BEHOLD, HERE BE OXEN FOR BURNT SACRIFICE, ANDEB THRESHING INSTRUMENTS AND OTHER INSTRUMENTS OF THE OXEN FOR WOOD.M# 23 ALL THESE THINGS DID ARAUNAH, AS A KING, GIVE UNTO THE KING. AND ARAUNAH.2 SAID UNTO THE KING, THE LORD THY GOD ACCEPT THEE.M# 24 AND THE KING SAID UNTO ARAUNAH, NAY; BUT I WILL SURELY BUY IT OF THEE ATOK A PRICE: NEITHER WILL I OFFER BURNT OFFERINGS UNTO THE LORD MY GOD OF THATEL WHICH DOTH COST ME NOTHING. SO DAVID BOUGHT THE THRESHINGFLOOR AND THE OXEN FOR FIFTY SHEKELS OF SILVER.ED# 25 AND DAVID BUILT THERE AN ALTAR UNTO THE LORD, AND OFFERED BURNTK OFFERINGS AND PEACE OFFERINGS. SO THE LORD WAS INTREATED FOR THE LAND, AND,# THE PLAGUE WAS STAYED FROM ISRAEL.RAUNAH.2 SAID UNTO THE KING, T* BOOK11 1KINGS = CHAPTER 1 K# 1 NOW KING DAVID WAS OLD AND STRICKEN IN YEARS; AND THEY COVERED HIM WITH CLOTHES, BUT HE GAT NO HEAT.M# 2 WHEREFORE HIS SERVANTS SAID UNTO HIM, LET THERE BE SOUGHT FOR MY LORD THEL KING A YOUNG VIRGIN: AND LET HER STAND BEFORE THE KING, AND LET HER CHERISHG HIM, AND LET HER LIE IN THY BOSOM, THAT MY LORD THE KING MAY GET HEAT.M# 3 SO THEY SOUGHT FOR A FAIR DAMSEL THROUGHOUT ALL THE COASTS OF ISRAEL, AND9 FOUND ABISHAG A SHUNAMMITE, AND BROUGHT HER TO THE KING.K# 4 AND THE DAMSEL WAS VERY FAIR, AND CHERISHED THE KING, AND MINISTERED TOA HIM: BUT THE KING KNEW HER NOT.M# 5 THEN ADONIJAH THE SON OF HAGGITH EXALTED HIMSELF, SAYING, I WILL BE KING:RL AND HE PREPARED HIM CHARIOTS AND HORSEMEN, AND FIFTY MEN TO RUN BEFORE HIM.I# 6 AND HIS FATHER HAD NOT DISPLEASED HIM AT ANY TIME IN SAYING, WHY HASTOI THOU DONE SO? AND HE ALSO WAS A VERY GOODLY MAN; AND HIS MOTHER BARE HIM  AFTER ABSALOM. H# 7 AND HE CONFERRED WITH JOAB THE SON OF ZERUIAH, AND WITH ABIATHAR THE0 PRIEST: AND THEY FOLLOWING ADONIJAH HELPED HIM.I# 8 BUT ZADOK THE PRIEST, AND BENAIAH THE SON OF JEHOIADA, AND NATHAN THEIJ PROPHET, AND SHIMEI, AND REI, AND THE MIGHTY MEN WHICH BELONGED TO DAVID, WERE NOT WITH ADONIJAH.M# 9 AND ADONIJAH SLEW SHEEP AND OXEN AND FAT CATTLE BY THE STONE OF ZOHELETH, M WHICH IS BY ENROGEL, AND CALLED ALL HIS BRETHREN THE KINGS SONS, AND ALL THED! MEN OF JUDAH THE KINGS SERVANTS:AM# 10 BUT NATHAN THE PROPHET, AND BENAIAH, AND THE MIGHTY MEN, AND SOLOMON HISA B00iH0Y/<%X>%+%O-%TADATADATAROTHER, HE CALLED NOT.I# 11 WHEREFORE NATHAN SPAKE UNTO BATHSHEBA THE MOTHER OF SOLOMON, SAYING, K HAST THOU NOT HEARD THAT ADONIJAH THE SON OF HAGGITH DOTH REIGN, AND DAVIDT OUR LORD KNOWETH IT NOT?IJ# 12 NOW THEREFORE COME, LET ME, I PRAY THEE, GIVE THEE COUNSEL, THAT THOU= MAYEST SAVE THINE OWN LIFE, AND THE LIFE OF THY SON SOLOMON.LM# 13 GO AND GET THEE IN UNTO KING DAVID, AND SAY UNTO HIM, DIDST NOT THOU, MYNK LORD, O KING, SWEAR UNTO THINE HANDMAID, SAYING, ASSUREDLY SOLOMON THY SONON SHALL REIGN AFTER ME, AND HE SHALL SIT UPON MY THRONE? WHY THEN DOTH ADONIJAH REIGN?FL# 14 BEHOLD, WHILE THOU YET TALKEST THERE WITH THE KING, I ALSO WILL COME IN# AFTER THEE, AND CONFIRM THY WORDS. K# 15 AND BATHSHEBA WENT IN UNTO THE KING INTO THE CHAMBER: AND THE KING WASA? VERY OLD; AND ABISHAG THE SHUNAMMITE MINISTERED UNTO THE KING.MM# 16 AND BATHSHEBA BOWED, AND DID OBEISANCE UNTO THE KING. AND THE KING SAID,, WHAT WOULDEST THOU?J# 17 AND SHE SAID UNTO HIM, MY LORD, THOU SWAREST BY THE LORD THY GOD UNTOL THINE HANDMAID, SAYING, ASSUREDLY SOLOMON THY SON SHALL REIGN AFTER ME, AND HE SHALL SIT UPON MY THRONE.SH# 18 AND NOW, BEHOLD, ADONIJAH REIGNETH; AND NOW, MY LORD THE KING, THOU KNOWEST IT NOT:K# 19 AND HE HATH SLAIN OXEN AND FAT CATTLE AND SHEEP IN ABUNDANCE, AND HATH;G CALLED ALL THE SONS OF THE KING, AND ABIATHAR THE PRIEST, AND JOAB THEAA CAPTAIN OF THE HOST: BUT SOLOMON THY SERVANT HATH HE NOT CALLED. J# 20 AND THOU, MY LORD, O KING, THE EYES OF ALL ISRAEL ARE UPON THEE, THATI THOU SHOULDEST TELL THEM WHO SHALL SIT ON THE THRONE OF MY LORD THE KINGI AFTER HIM.AL# 21 OTHERWISE IT SHALL COME TO PASS, WHEN MY LORD THE KING SHALL SLEEP WITHC HIS FATHERS, THAT I AND MY SON SOLOMON SHALL BE COUNTED OFFENDERS.AI# 22 AND, LO, WHILE SHE YET TALKED WITH THE KING, NATHAN THE PROPHET ALSOO CAME IN.IK# 23 AND THEY TOLD THE KING, SAYING, BEHOLD NATHAN THE PROPHET. AND WHEN HE L WAS COME IN BEFORE THE KING, HE BOWED HIMSELF BEFORE THE KING WITH HIS FACE TO THE GROUND.OK# 24 AND NATHAN SAID, MY LORD, O KING, HAST THOU SAID, ADONIJAH SHALL REIGND+ AFTER ME, AND HE SHALL SIT UPON MY THRONE?HI# 25 FOR HE IS GONE DOWN THIS DAY, AND HATH SLAIN OXEN AND FAT CATTLE ANDTL SHEEP IN ABUNDANCE, AND HATH CALLED ALL THE KINGS SONS, AND THE CAPTAINS OFJ THE HOST, AND ABIATHAR THE PRIEST; AND, BEHOLD, THEY EAT AND DRINK BEFORE& HIM, AND SAY, GOD SAVE KING ADONIJAH.K# 26 BUT ME, EVEN ME THY SERVANT, AND ZADOK THE PRIEST, AND BENAIAH THE SON : OF JEHOIADA, AND THY SERVANT SOLOMON, HATH HE NOT CALLED.M# 27 IS THIS THING DONE BY MY LORD THE KING, AND THOU HAST NOT SHEWED IT UNTOHI THY SERVANT, WHO SHOULD SIT ON THE THRONE OF MY LORD THE KING AFTER HIM? L# 28 THEN KING DAVID ANSWERED AND SAID, CALL ME BATHSHEBA. AND SHE CAME INTO/ THE KINGS PRESENCE, AND STOOD BEFORE THE KING. L# 29 AND THE KING SWARE, AND SAID, AS THE LORD LIVETH, THAT HATH REDEEMED MY SOUL OUT OF ALL DISTRESS,K# 30 EVEN AS I SWARE UNTO THEE BY THE LORD GOD OF ISRAEL, SAYING, ASSUREDLY L SOLOMON THY SON SHALL REIGN AFTER ME, AND HE SHALL SIT UPON MY THRONE IN MY- STEAD; EVEN SO WILL I CERTAINLY DO THIS DAY.J# 31 THEN BATHSHEBA BOWED WITH HER FACE TO THE EARTH, AND DID REVERENCE TO: THE KING, AND SAID, LET MY LORD KING DAVID LIVE FOR EVER.K# 32 AND KING DAVID SAID, CALL ME ZADOK THE PRIEST, AND NATHAN THE PROPHET,T@ AND BENAIAH THE SON OF JEHOIADA. AND THEY CAME BEFORE THE KING.K# 33 THE KING ALSO SAID UNTO THEM, TAKE WITH YOU THE SERVANTS OF YOUR LORD,OK AND CAUSE SOLOMON MY SON TO RIDE UPON MINE OWN MULE, AND BRING HIM DOWN TOH GIHON:PJ# 34 AND LET ZADOK THE PRIEST AND NATHAN THE PROPHET ANOINT HIM THERE KINGK OVER ISRAEL: AND BLOW YE WITH THE TRUMPET, AND SAY, GOD SAVE KING SOLOMON.,F# 35 THEN YE SHALL COME UP AFTER HIM, THAT HE MAY COME AND SIT UPON MYI THRONE; FOR HE SHALL BE KING IN MY STEAD: AND I HAVE APPOINTED HIM TO BEN" RULER OVER ISRAEL AND OVER JUDAH.K# 36 AND BENAIAH THE SON OF JEHOIADA ANSWERED THE KING, AND SAID, AMEN: THEU) LORD GOD OF MY LORD THE KING SAY SO TOO. M# 37 AS THE LORD HATH BEEN WITH MY00iP0E0D%5%T6%! ! LORD THE KING, EVEN SO BE HE WITH SOLOMON,IC AND MAKE HIS THRONE GREATER THAN THE THRONE OF MY LORD KING DAVID.LH# 38 SO ZADOK THE PRIEST, AND NATHAN THE PROPHET, AND BENAIAH THE SON OFI JEHOIADA, AND THE CHERETHITES, AND THE PELETHITES, WENT DOWN, AND CAUSEDLA SOLOMON TO RIDE UPON KING DAVIDS MULE, AND BROUGHT HIM TO GIHON. H# 39 AND ZADOK THE PRIEST TOOK AN HORN OF OIL OUT OF THE TABERNACLE, ANDJ ANOINTED SOLOMON. AND THEY BLEW THE TRUMPET; AND ALL THE PEOPLE SAID, GOD SAVE KING SOLOMON.NK# 40 AND ALL THE PEOPLE CAME UP AFTER HIM, AND THE PEOPLE PIPED WITH PIPES,EL AND REJOICED WITH GREAT JOY, SO THAT THE EARTH RENT WITH THE SOUND OF THEM.L# 41 AND ADONIJAH AND ALL THE GUESTS THAT WERE WITH HIM HEARD IT AS THEY HADN MADE AN END OF EATING. AND WHEN JOAB HEARD THE SOUND OF THE TRUMPET, HE SAID,8 WHEREFORE IS THIS NOISE OF THE CITY BEING IN AN UPROAR?L# 42 AND WHILE HE YET SPAKE, BEHOLD, JONATHAN THE SON OF ABIATHAR THE PRIESTK CAME; AND ADONIJAH SAID UNTO HIM, COME IN; FOR THOU ART A VALIANT MAN, ANDT BRINGEST GOOD TIDINGS.IK# 43 AND JONATHAN ANSWERED AND SAID TO ADONIJAH, VERILY OUR LORD KING DAVIDH HATH MADE SOLOMON KING.E# 44 AND THE KING HATH SENT WITH HIM ZADOK THE PRIEST, AND NATHAN THERG PROPHET, AND BENAIAH THE SON OF JEHOIADA, AND THE CHERETHITES, AND THEFB PELETHITES, AND THEY HAVE CAUSED HIM TO RIDE UPON THE KINGS MULE:J# 45 AND ZADOK THE PRIEST AND NATHAN THE PROPHET HAVE ANOINTED HIM KING INI GIHON: AND THEY ARE COME UP FROM THENCE REJOICING, SO THAT THE CITY RANGV- AGAIN. THIS IS THE NOISE THAT YE HAVE HEARD.3;# 46 AND ALSO SOLOMON SITTETH ON THE THRONE OF THE KINGDOM.KG# 47 AND MOREOVER THE KINGS SERVANTS CAME TO BLESS OUR LORD KING DAVID,MH SAYING, GOD MAKE THE NAME OF SOLOMON BETTER THAN THY NAME, AND MAKE HISI THRONE GREATER THAN THY THRONE. AND THE KING BOWED HIMSELF UPON THE BED.OJ# 48 AND ALSO THUS SAID THE KING, BLESSED BE THE LORD GOD OF ISRAEL, WHICHG HATH GIVEN ONE TO SIT ON MY THRONE THIS DAY, MINE EYES EVEN SEEING IT.IM# 49 AND ALL THE GUESTS THAT WERE WITH ADONIJAH WERE AFRAID, AND ROSE UP, AND  WENT EVERY MAN HIS WAY.L# 50 AND ADONIJAH FEARED BECAUSE OF SOLOMON, AND AROSE, AND WENT, AND CAUGHT HOLD ON THE HORNS OF THE ALTAR.L# 51 AND IT WAS TOLD SOLOMON, SAYING, BEHOLD, ADONIJAH FEARETH KING SOLOMON:I FOR, LO, HE HATH CAUGHT HOLD ON THE HORNS OF THE ALTAR, SAYING, LET KINGDN SOLOMON SWEAR UNTO ME TODAY THAT HE WILL NOT SLAY HIS SERVANT WITH THE SWORD.L# 52 AND SOLOMON SAID, IF HE WILL SHEW HIMSELF A WORTHY MAN, THERE SHALL NOTN AN HAIR OF HIM FALL TO THE EARTH: BUT IF WICKEDNESS SHALL BE FOUND IN HIM, HE SHALL DIE.0K# 53 SO KING SOLOMON SENT, AND THEY BROUGHT HIM DOWN FROM THE ALTAR. AND HELI CAME AND BOWED HIMSELF TO KING SOLOMON: AND SOLOMON SAID UNTO HIM, GO TO THINE HOUSE.H = CHAPTER 2 N# 1 NOW THE DAYS OF DAVID DREW NIGH THAT HE SHOULD DIE; AND HE CHARGED SOLOMON HIS SON, SAYING,EM# 2 I GO THE WAY OF ALL THE EARTH: BE THOU STRONG THEREFORE, AND SHEW THYSELF, A MAN;LM# 3 AND KEEP THE CHARGE OF THE LORD THY GOD, TO WALK IN HIS WAYS, TO KEEP HIS:N STATUTES, AND HIS COMMANDMENTS, AND HIS JUDGMENTS, AND HIS TESTIMONIES, AS ITJ IS WRITTEN IN THE LAW OF MOSES, THAT THOU MAYEST PROSPER IN ALL THAT THOU/ DOEST, AND WHITHERSOEVER THOU TURNEST THYSELF: M# 4 THAT THE LORD MAY CONTINUE HIS WORD WHICH HE SPAKE CONCERNING ME, SAYING,HL IF THY CHILDREN TAKE HEED TO THEIR WAY, TO WALK BEFORE ME IN TRUTH WITH ALLK THEIR HEART AND WITH ALL THEIR SOUL, THERE SHALL NOT FAIL THEE (SAID HE) A  MAN ON THE THRONE OF ISRAEL. J# 5 MOREOVER THOU KNOWEST ALSO WHAT JOAB THE SON OF ZERUIAH DID TO ME, ANDN WHAT HE DID TO THE TWO CAPTAINS OF THE HOSTS OF ISRAEL, UNTO ABNER THE SON OFK NER, AND UNTO AMASA THE SON OF JETHER, WHOM HE SLEW, AND SHED THE BLOOD OFTJ WAR IN PEACE, AND PUT THE BLOOD OF WAR UPON HIS GIRDLE THAT WAS ABOUT HIS/ LOINS, AND IN HIS SHOES THAT WERE ON HIS FEET.IK# 6 DO THEREFORE ACCORDING TO THY WISDOM, AND LET NOT HIS HOAR HEAD GO DOWNO TO THE GRAVE IN PEACE.TL# 7 BUT SHEW KINDNESS UNTO THE SONS OF BARZILLAI THE GILEADITE, AN00iX0Y/<%X>%+%O-%TADATADATAD LET THEMN BE OF THOSE THAT EAT AT THY TABLE: FOR SO THEY CAME TO ME WHEN I FLED BECAUSE OF ABSALOM THY BROTHER.K# 8 AND, BEHOLD, THOU HAST WITH THEE SHIMEI THE SON OF GERA, A BENJAMITE OFNI BAHURIM, WHICH CURSED ME WITH A GRIEVOUS CURSE IN THE DAY WHEN I WENT TOLK MAHANAIM: BUT HE CAME DOWN TO MEET ME AT JORDAN, AND I SWARE TO HIM BY THEO; LORD, SAYING, I WILL NOT PUT THEE TO DEATH WITH THE SWORD. F# 9 NOW THEREFORE HOLD HIM NOT GUILTLESS: FOR THOU ART A WISE MAN, ANDM KNOWEST WHAT THOU OUGHTEST TO DO UNTO HIM; BUT HIS HOAR HEAD BRING THOU DOWNO TO THE GRAVE WITH BLOOD. J# 10 SO DAVID SLEPT WITH HIS FATHERS, AND WAS BURIED IN THE CITY OF DAVID.H# 11 AND THE DAYS THAT DAVID REIGNED OVER ISRAEL WERE FORTY YEARS: SEVENE YEARS REIGNED HE IN HEBRON, AND THIRTY AND THREE YEARS REIGNED HE IN JERUSALEM. J# 12 THEN SAT SOLOMON UPON THE THRONE OF DAVID HIS FATHER; AND HIS KINGDOM WAS ESTABLISHED GREATLY.OM# 13 AND ADONIJAH THE SON OF HAGGITH CAME TO BATHSHEBA THE MOTHER OF SOLOMON. = AND SHE SAID, COMEST THOU PEACEABLY? AND HE SAID, PEACEABLY.OJ# 14 HE SAID MOREOVER, I HAVE SOMEWHAT TO SAY UNTO THEE. AND SHE SAID, SAY ON.M# 15 AND HE SAID, THOU KNOWEST THAT THE KINGDOM WAS MINE, AND THAT ALL ISRAELOJ SET THEIR FACES ON ME, THAT I SHOULD REIGN: HOWBEIT THE KINGDOM IS TURNED@ ABOUT, AND IS BECOME MY BROTHERS: FOR IT WAS HIS FROM THE LORD.L# 16 AND NOW I ASK ONE PETITION OF THEE, DENY ME NOT. AND SHE SAID UNTO HIM, SAY ON.M# 17 AND HE SAID, SPEAK, I PRAY THEE, UNTO SOLOMON THE KING, (FOR HE WILL NOT ? SAY THEE NAY,) THAT HE GIVE ME ABISHAG THE SHUNAMMITE TO WIFE.IC# 18 AND BATHSHEBA SAID, WELL; I WILL SPEAK FOR THEE UNTO THE KING. F# 19 BATHSHEBA THEREFORE WENT UNTO KING SOLOMON, TO SPEAK UNTO HIM FORL ADONIJAH. AND THE KING ROSE UP TO MEET HER, AND BOWED HIMSELF UNTO HER, ANDN SAT DOWN ON HIS THRONE, AND CAUSED A SEAT TO BE SET FOR THE KINGS MOTHER; AND SHE SAT ON HIS RIGHT HAND.NL# 20 THEN SHE SAID, I DESIRE ONE SMALL PETITION OF THEE; I PRAY THEE, SAY MEK NOT NAY. AND THE KING SAID UNTO HER, ASK ON, MY MOTHER: FOR I WILL NOT SAYA THEE NAY.F# 21 AND SHE SAID, LET ABISHAG THE SHUNAMMITE BE GIVEN TO ADONIJAH THY BROTHER TO WIFE.BJ# 22 AND KING SOLOMON ANSWERED AND SAID UNTO HIS MOTHER, AND WHY DOST THOUN ASK ABISHAG THE SHUNAMMITE FOR ADONIJAH? ASK FOR HIM THE KINGDOM ALSO; FOR HEJ IS MINE ELDER BROTHER; EVEN FOR HIM, AND FOR ABIATHAR THE PRIEST, AND FOR JOAB THE SON OF ZERUIAH.TK# 23 THEN KING SOLOMON SWARE BY THE LORD, SAYING, GOD DO SO TO ME, AND MORENB ALSO, IF ADONIJAH HAVE NOT SPOKEN THIS WORD AGAINST HIS OWN LIFE.M# 24 NOW THEREFORE, AS THE LORD LIVETH, WHICH HATH ESTABLISHED ME, AND SET MEJG ON THE THRONE OF DAVID MY FATHER, AND WHO HATH MADE ME AN HOUSE, AS HEH3 PROMISED, ADONIJAH SHALL BE PUT TO DEATH THIS DAY.MM# 25 AND KING SOLOMON SENT BY THE HAND OF BENAIAH THE SON OF JEHOIADA; AND HE  FELL UPON HIM THAT HE DIED.K# 26 AND UNTO ABIATHAR THE PRIEST SAID THE KING, GET THEE TO ANATHOTH, UNTOEL THINE OWN FIELDS; FOR THOU ART WORTHY OF DEATH: BUT I WILL NOT AT THIS TIMEL PUT THEE TO DEATH, BECAUSE THOU BAREST THE ARK OF THE LORD GOD BEFORE DAVIDM MY FATHER, AND BECAUSE THOU HAST BEEN AFFLICTED IN ALL WHEREIN MY FATHER WASD AFFLICTED.EL# 27 SO SOLOMON THRUST OUT ABIATHAR FROM BEING PRIEST UNTO THE LORD; THAT HEN MIGHT FULFIL THE WORD OF THE LORD, WHICH HE SPAKE CONCERNING THE HOUSE OF ELI IN SHILOH.TM# 28 THEN TIDINGS CAME TO JOAB: FOR JOAB HAD TURNED AFTER ADONIJAH, THOUGH HEHM TURNED NOT AFTER ABSALOM. AND JOAB FLED UNTO THE TABERNACLE OF THE LORD, ANDT' CAUGHT HOLD ON THE HORNS OF THE ALTAR.UK# 29 AND IT WAS TOLD KING SOLOMON THAT JOAB WAS FLED UNTO THE TABERNACLE OFSM THE LORD; AND, BEHOLD, HE IS BY THE ALTAR. THEN SOLOMON SENT BENAIAH THE SONH( OF JEHOIADA, SAYING, GO, FALL UPON HIM.L# 30 AND BENAIAH CAME TO THE TABERNACLE OF THE LORD, AND SAID UNTO HIM, THUSG SAITH THE KING, COME FORTH. AND HE SAID, NAY; BUT I WILL DIE HERE. ANDBI BENAIAH BROUGHT THE KING WORD AGAIN, SAYING, THUS SAID JOAB, AND THUS HE ANSWERED ME.AK# 31 AND THE KING SAID00i`0E0D%5%T6%! ! UNTO HIM, DO AS HE HATH SAID, AND FALL UPON HIM, ANDDJ BURY HIM; THAT THOU MAYEST TAKE AWAY THE INNOCENT BLOOD, WHICH JOAB SHED,* FROM ME, AND FROM THE HOUSE OF MY FATHER.M# 32 AND THE LORD SHALL RETURN HIS BLOOD UPON HIS OWN HEAD, WHO FELL UPON TWODH MEN MORE RIGHTEOUS AND BETTER THAN HE, AND SLEW THEM WITH THE SWORD, MYK FATHER DAVID NOT KNOWING THEREOF, TO WIT, ABNER THE SON OF NER, CAPTAIN OFHH THE HOST OF ISRAEL, AND AMASA THE SON OF JETHER, CAPTAIN OF THE HOST OF JUDAH.K# 33 THEIR BLOOD SHALL THEREFORE RETURN UPON THE HEAD OF JOAB, AND UPON THEK HEAD OF HIS SEED FOR EVER: BUT UPON DAVID, AND UPON HIS SEED, AND UPON HISFI HOUSE, AND UPON HIS THRONE, SHALL THERE BE PEACE FOR EVER FROM THE LORD.SM# 34 SO BENAIAH THE SON OF JEHOIADA WENT UP, AND FELL UPON HIM, AND SLEW HIM:A6 AND HE WAS BURIED IN HIS OWN HOUSE IN THE WILDERNESS.L# 35 AND THE KING PUT BENAIAH THE SON OF JEHOIADA IN HIS ROOM OVER THE HOST:? AND ZADOK THE PRIEST DID THE KING PUT IN THE ROOM OF ABIATHAR.K# 36 AND THE KING SENT AND CALLED FOR SHIMEI, AND SAID UNTO HIM, BUILD THEEM AN HOUSE IN JERUSALEM, AND DWELL THERE, AND GO NOT FORTH THENCE ANY WHITHER.J# 37 FOR IT SHALL BE, THAT ON THE DAY THOU GOEST OUT, AND PASSEST OVER THEJ BROOK KIDRON, THOU SHALT KNOW FOR CERTAIN THAT THOU SHALT SURELY DIE: THY$ BLOOD SHALL BE UPON THINE OWN HEAD.K# 38 AND SHIMEI SAID UNTO THE KING, THE SAYING IS GOOD: AS MY LORD THE KINGSL HATH SAID, SO WILL THY SERVANT DO. AND SHIMEI DWELT IN JERUSALEM MANY DAYS.L# 39 AND IT CAME TO PASS AT THE END OF THREE YEARS, THAT TWO OF THE SERVANTSJ OF SHIMEI RAN AWAY UNTO ACHISH SON OF MAACHAH KING OF GATH. AND THEY TOLD1 SHIMEI, SAYING, BEHOLD, THY SERVANTS BE IN GATH. I# 40 AND SHIMEI AROSE, AND SADDLED HIS ASS, AND WENT TO GATH TO ACHISH TORH SEEK HIS SERVANTS: AND SHIMEI WENT, AND BROUGHT HIS SERVANTS FROM GATH.M# 41 AND IT WAS TOLD SOLOMON THAT SHIMEI HAD GONE FROM JERUSALEM TO GATH, AND WAS COME AGAIN.J# 42 AND THE KING SENT AND CALLED FOR SHIMEI, AND SAID UNTO HIM, DID I NOTL MAKE THEE TO SWEAR BY THE LORD, AND PROTESTED UNTO THEE, SAYING, KNOW FOR AN CERTAIN, ON THE DAY THOU GOEST OUT, AND WALKEST ABROAD ANY WHITHER, THAT THOUI SHALT SURELY DIE? AND THOU SAIDST UNTO ME, THE WORD THAT I HAVE HEARD IS  GOOD.J# 43 WHY THEN HAST THOU NOT KEPT THE OATH OF THE LORD, AND THE COMMANDMENT THAT I HAVE CHARGED THEE WITH? L# 44 THE KING SAID MOREOVER TO SHIMEI, THOU KNOWEST ALL THE WICKEDNESS WHICHK THINE HEART IS PRIVY TO, THAT THOU DIDST TO DAVID MY FATHER: THEREFORE THEI6 LORD SHALL RETURN THY WICKEDNESS UPON THINE OWN HEAD;H# 45 AND KING SOLOMON SHALL BE BLESSED, AND THE THRONE OF DAVID SHALL BE& ESTABLISHED BEFORE THE LORD FOR EVER.K# 46 SO THE KING COMMANDED BENAIAH THE SON OF JEHOIADA; WHICH WENT OUT, ANDL FELL UPON HIM, THAT HE DIED. AND THE KINGDOM WAS ESTABLISHED IN THE HAND OF SOLOMON.C = CHAPTER 3 K# 1 AND SOLOMON MADE AFFINITY WITH PHARAOH KING OF EGYPT, AND TOOK PHARAOHSWN DAUGHTER, AND BROUGHT HER INTO THE CITY OF DAVID, UNTIL HE HAD MADE AN END OFM BUILDING HIS OWN HOUSE, AND THE HOUSE OF THE LORD, AND THE WALL OF JERUSALEMO ROUND ABOUT.SI# 2 ONLY THE PEOPLE SACRIFICED IN HIGH PLACES, BECAUSE THERE WAS NO HOUSE.3 BUILT UNTO THE NAME OF THE LORD, UNTIL THOSE DAYS.AL# 3 AND SOLOMON LOVED THE LORD, WALKING IN THE STATUTES OF DAVID HIS FATHER:5 ONLY HE SACRIFICED AND BURNT INCENSE IN HIGH PLACES. J# 4 AND THE KING WENT TO GIBEON TO SACRIFICE THERE; FOR THAT WAS THE GREATJ HIGH PLACE: A THOUSAND BURNT OFFERINGS DID SOLOMON OFFER UPON THAT ALTAR.M# 5 IN GIBEON THE LORD APPEARED TO SOLOMON IN A DREAM BY NIGHT: AND GOD SAID,O ASK WHAT I SHALL GIVE THEE.M# 6 AND SOLOMON SAID, THOU HAST SHEWED UNTO THY SERVANT DAVID MY FATHER GREAT N MERCY, ACCORDING AS HE WALKED BEFORE THEE IN TRUTH, AND IN RIGHTEOUSNESS, ANDI IN UPRIGHTNESS OF HEART WITH THEE; AND THOU HAST KEPT FOR HIM THIS GREATNM KINDNESS, THAT THOU HAST GIVEN HIM A SON TO SIT ON HIS THRONE, AS IT IS THISS DAY.EL# 7 AND NOW, O LORD MY GOD, THOU HAST MADE THY SERVANT KING INSTEAD OF DAVIDM MY FATHER: AND 00ih0Y/<%X>%+%O-%TADATADATAI AM BUT A LITTLE CHILD: I KNOW NOT HOW TO GO OUT OR COME IN.OK# 8 AND THY SERVANT IS IN THE MIDST OF THY PEOPLE WHICH THOU HAST CHOSEN, AHA GREAT PEOPLE, THAT CANNOT BE NUMBERED NOR COUNTED FOR MULTITUDE.FJ# 9 GIVE THEREFORE THY SERVANT AN UNDERSTANDING HEART TO JUDGE THY PEOPLE,N THAT I MAY DISCERN BETWEEN GOOD AND BAD: FOR WHO IS ABLE TO JUDGE THIS THY SO GREAT A PEOPLE?H# 10 AND THE SPEECH PLEASED THE LORD, THAT SOLOMON HAD ASKED THIS THING.L# 11 AND GOD SAID UNTO HIM, BECAUSE THOU HAST ASKED THIS THING, AND HAST NOTM ASKED FOR THYSELF LONG LIFE; NEITHER HAST ASKED RICHES FOR THYSELF, NOR HASTFM ASKED THE LIFE OF THINE ENEMIES; BUT HAST ASKED FOR THYSELF UNDERSTANDING TON DISCERN JUDGMENT;M# 12 BEHOLD, I HAVE DONE ACCORDING TO THY WORDS: LO, I HAVE GIVEN THEE A WISELJ AND AN UNDERSTANDING HEART; SO THAT THERE WAS NONE LIKE THEE BEFORE THEE,3 NEITHER AFTER THEE SHALL ANY ARISE LIKE UNTO THEE. L# 13 AND I HAVE ALSO GIVEN THEE THAT WHICH THOU HAST NOT ASKED, BOTH RICHES,N AND HONOUR: SO THAT THERE SHALL NOT BE ANY AMONG THE KINGS LIKE UNTO THEE ALL THY DAYS.A# 14 AND IF THOU WILT WALK IN MY WAYS, TO KEEP MY STATUTES AND MY K COMMANDMENTS, AS THY FATHER DAVID DID WALK, THEN I WILL LENGTHEN THY DAYS.,C# 15 AND SOLOMON AWOKE; AND, BEHOLD, IT WAS A DREAM. AND HE CAME TOAM JERUSALEM, AND STOOD BEFORE THE ARK OF THE COVENANT OF THE LORD, AND OFFEREDHM UP BURNT OFFERINGS, AND OFFERED PEACE OFFERINGS, AND MADE A FEAST TO ALL HIS SERVANTS.K# 16 THEN CAME THERE TWO WOMEN, THAT WERE HARLOTS, UNTO THE KING, AND STOOD BEFORE HIM.L# 17 AND THE ONE WOMAN SAID, O MY LORD, I AND THIS WOMAN DWELL IN ONE HOUSE;6 AND I WAS DELIVERED OF A CHILD WITH HER IN THE HOUSE.L# 18 AND IT CAME TO PASS THE THIRD DAY AFTER THAT I WAS DELIVERED, THAT THISN WOMAN WAS DELIVERED ALSO: AND WE WERE TOGETHER; THERE WAS NO STRANGER WITH US( IN THE HOUSE, SAVE WE TWO IN THE HOUSE.F# 19 AND THIS WOMANS CHILD DIED IN THE NIGHT; BECAUSE SHE OVERLAID IT.K# 20 AND SHE AROSE AT MIDNIGHT, AND TOOK MY SON FROM BESIDE ME, WHILE THINEIH HANDMAID SLEPT, AND LAID IT IN HER BOSOM, AND LAID HER DEAD CHILD IN MY BOSOM.MI# 21 AND WHEN I ROSE IN THE MORNING TO GIVE MY CHILD SUCK, BEHOLD, IT WASSN DEAD: BUT WHEN I HAD CONSIDERED IT IN THE MORNING, BEHOLD, IT WAS NOT MY SON, WHICH I DID BEAR.M# 22 AND THE OTHER WOMAN SAID, NAY; BUT THE LIVING IS MY SON, AND THE DEAD ISVJ THY SON. AND THIS SAID, NO; BUT THE DEAD IS THY SON, AND THE LIVING IS MY& SON. THUS THEY SPAKE BEFORE THE KING.K# 23 THEN SAID THE KING, THE ONE SAITH, THIS IS MY SON THAT LIVETH, AND THYDK SON IS THE DEAD: AND THE OTHER SAITH, NAY; BUT THY SON IS THE DEAD, AND MY  SON IS THE LIVING. M# 24 AND THE KING SAID, BRING ME A SWORD. AND THEY BROUGHT A SWORD BEFORE THET KING.L# 25 AND THE KING SAID, DIVIDE THE LIVING CHILD IN TWO, AND GIVE HALF TO THE ONE, AND HALF TO THE OTHER.K# 26 THEN SPAKE THE WOMAN WHOSE THE LIVING CHILD WAS UNTO THE KING, FOR HER J BOWELS YEARNED UPON HER SON, AND SHE SAID, O MY LORD, GIVE HER THE LIVINGN CHILD, AND IN NO WISE SLAY IT. BUT THE OTHER SAID, LET IT BE NEITHER MINE NOR THINE, BUT DIVIDE IT.J# 27 THEN THE KING ANSWERED AND SAID, GIVE HER THE LIVING CHILD, AND IN NO) WISE SLAY IT: SHE IS THE MOTHER THEREOF.AM# 28 AND ALL ISRAEL HEARD OF THE JUDGMENT WHICH THE KING HAD JUDGED; AND THEYTG FEARED THE KING: FOR THEY SAW THAT THE WISDOM OF GOD WAS IN HIM, TO DOH JUDGMENT. = CHAPTER 4 -# 1 SO KING SOLOMON WAS KING OVER ALL ISRAEL.EI# 2 AND THESE WERE THE PRINCES WHICH HE HAD; AZARIAH THE SON OF ZADOK THEN PRIEST,L# 3 ELIHOREPH AND AHIAH, THE SONS OF SHISHA, SCRIBES; JEHOSHAPHAT THE SON OF AHILUD, THE RECORDER.M# 4 AND BENAIAH THE SON OF JEHOIADA WAS OVER THE HOST: AND ZADOK AND ABIATHAR  WERE THE PRIESTS:M# 5 AND AZARIAH THE SON OF NATHAN WAS OVER THE OFFICERS: AND ZABUD THE SON OFF4 NATHAN WAS PRINCIPAL OFFICER, AND THE KINGS FRIEND:M# 6 AND AHISHAR WAS OVER THE HOUSEHOLD: AND ADONIRAM THE SON OF ABDA WAS OVERL THE TRIBUTE. L# 7 AND SOLOMON HAD TWELVE OFFICERS OVER ALL ISRAEL, WHICH PROVIDED VICTUALSM FOR00ip0E0D%5%T6%! ! THE KING AND HIS HOUSEHOLD: EACH MAN HIS MONTH IN A YEAR MADE PROVISION.F@# 8 AND THESE ARE THEIR NAMES: THE SON OF HUR, IN MOUNT EPHRAIM:E# 9 THE SON OF DEKAR, IN MAKAZ, AND IN SHAALBIM, AND BETHSHEMESH, ANDR ELONBETHHANAN:TL# 10 THE SON OF HESED, IN ARUBOTH; TO HIM PERTAINED SOCHOH, AND ALL THE LAND OF HEPHER:NI# 11 THE SON OF ABINADAB, IN ALL THE REGION OF DOR; WHICH HAD TAPHATH THE  DAUGHTER OF SOLOMON TO WIFE:K# 12 BAANA THE SON OF AHILUD; TO HIM PERTAINED TAANACH AND MEGIDDO, AND ALLC BETHSHEAN, WHICH IS BY ZARTANAH BENEATH JEZREEL, FROM BETHSHEAN TOO9 ABELMEHOLAH, EVEN UNTO THE PLACE THAT IS BEYOND JOKNEAM: J# 13 THE SON OF GEBER, IN RAMOTHGILEAD; TO HIM PERTAINED THE TOWNS OF JAIRN THE SON OF MANASSEH, WHICH ARE IN GILEAD; TO HIM ALSO PERTAINED THE REGION OFI ARGOB, WHICH IS IN BASHAN, THREESCORE GREAT CITIES WITH WALLS AND BRASENT BARS:+# 14 AHINADAB THE SON OF IDDO HAD MAHANAIM:FM# 15 AHIMAAZ WAS IN NAPHTALI; HE ALSO TOOK BASMATH THE DAUGHTER OF SOLOMON TOM WIFE:8# 16 BAANAH THE SON OF HUSHAI WAS IN ASHER AND IN ALOTH:0# 17 JEHOSHAPHAT THE SON OF PARUAH, IN ISSACHAR:)# 18 SHIMEI THE SON OF ELAH, IN BENJAMIN:NI# 19 GEBER THE SON OF URI WAS IN THE COUNTRY OF GILEAD, IN THE COUNTRY OF J SIHON KING OF THE AMORITES, AND OF OG KING OF BASHAN; AND HE WAS THE ONLY OFFICER WHICH WAS IN THE LAND.EC# 20 JUDAH AND ISRAEL WERE MANY, AS THE SAND WHICH IS BY THE SEA IND2 MULTITUDE, EATING AND DRINKING, AND MAKING MERRY.J# 21 AND SOLOMON REIGNED OVER ALL KINGDOMS FROM THE RIVER UNTO THE LAND OFJ THE PHILISTINES, AND UNTO THE BORDER OF EGYPT: THEY BROUGHT PRESENTS, AND) SERVED SOLOMON ALL THE DAYS OF HIS LIFE.EJ# 22 AND SOLOMONS PROVISION FOR ONE DAY WAS THIRTY MEASURES OF FINE FLOUR,! AND THREESCORE MEASURES OF MEAL,EM# 23 TEN FAT OXEN, AND TWENTY OXEN OUT OF THE PASTURES, AND AN HUNDRED SHEEP,D= BESIDE HARTS, AND ROEBUCKS, AND FALLOWDEER, AND FATTED FOWL.EI# 24 FOR HE HAD DOMINION OVER ALL THE REGION ON THIS SIDE THE RIVER, FROMMM TIPHSAH EVEN TO AZZAH, OVER ALL THE KINGS ON THIS SIDE THE RIVER: AND HE HAD $ PEACE ON ALL SIDES ROUND ABOUT HIM.J# 25 AND JUDAH AND ISRAEL DWELT SAFELY, EVERY MAN UNDER HIS VINE AND UNDERC HIS FIG TREE, FROM DAN EVEN TO BEERSHEBA, ALL THE DAYS OF SOLOMON.TJ# 26 AND SOLOMON HAD FORTY THOUSAND STALLS OF HORSES FOR HIS CHARIOTS, AND TWELVE THOUSAND HORSEMEN.K# 27 AND THOSE OFFICERS PROVIDED VICTUAL FOR KING SOLOMON, AND FOR ALL THATRL CAME UNTO KING SOLOMONS TABLE, EVERY MAN IN HIS MONTH: THEY LACKED NOTHING.K# 28 BARLEY ALSO AND STRAW FOR THE HORSES AND DROMEDARIES BROUGHT THEY UNTOOF THE PLACE WHERE THE OFFICERS WERE, EVERY MAN ACCORDING TO HIS CHARGE.F# 29 AND GOD GAVE SOLOMON WISDOM AND UNDERSTANDING EXCEEDING MUCH, AND? LARGENESS OF HEART, EVEN AS THE SAND THAT IS ON THE SEA SHORE.NL# 30 AND SOLOMONS WISDOM EXCELLED THE WISDOM OF ALL THE CHILDREN OF THE EAST& COUNTRY, AND ALL THE WISDOM OF EGYPT.K# 31 FOR HE WAS WISER THAN ALL MEN; THAN ETHAN THE EZRAHITE, AND HEMAN, ANDSM CHALCOL, AND DARDA, THE SONS OF MAHOL: AND HIS FAME WAS IN ALL NATIONS ROUNDM ABOUT.RL# 32 AND HE SPAKE THREE THOUSAND PROVERBS: AND HIS SONGS WERE A THOUSAND AND FIVE.L# 33 AND HE SPAKE OF TREES, FROM THE CEDAR TREE THAT IS IN LEBANON EVEN UNTOK THE HYSSOP THAT SPRINGETH OUT OF THE WALL: HE SPAKE ALSO OF BEASTS, AND OFM- FOWL, AND OF CREEPING THINGS, AND OF FISHES.RI# 34 AND THERE CAME OF ALL PEOPLE TO HEAR THE WISDOM OF SOLOMON, FROM ALLE3 KINGS OF THE EARTH, WHICH HAD HEARD OF HIS WISDOM.N = CHAPTER 5 K# 1 AND HIRAM KING OF TYRE SENT HIS SERVANTS UNTO SOLOMON; FOR HE HAD HEARDRN THAT THEY HAD ANOINTED HIM KING IN THE ROOM OF HIS FATHER: FOR HIRAM WAS EVER A LOVER OF DAVID.&# 2 AND SOLOMON SENT TO HIRAM, SAYING,K# 3 THOU KNOWEST HOW THAT DAVID MY FATHER COULD NOT BUILD AN HOUSE UNTO THEEJ NAME OF THE LORD HIS GOD FOR THE WARS WHICH WERE ABOUT HIM ON EVERY SIDE,5 UNTIL THE LORD PUT THEM UNDER THE SOLES OF HIS FEET.OK# 4 BUT NOW THE LORD MY GOD HATH GIVEN ME REST ON EVERY SIDE, SO THAT THEREP) IS NEITHER ADVERSARY NOR EVIL OCCURRENT. I# 5 AND, BEH00ix0Y/<%X>%+%O-%TADATADATAOLD, I PURPOSE TO BUILD AN HOUSE UNTO THE NAME OF THE LORD MYIN GOD, AS THE LORD SPAKE UNTO DAVID MY FATHER, SAYING, THY SON, WHOM I WILL SETC UPON THY THRONE IN THY ROOM, HE SHALL BUILD AN HOUSE UNTO MY NAME.OK# 6 NOW THEREFORE COMMAND THOU THAT THEY HEW ME CEDAR TREES OUT OF LEBANON;HK AND MY SERVANTS SHALL BE WITH THY SERVANTS: AND UNTO THEE WILL I GIVE HIREIL FOR THY SERVANTS ACCORDING TO ALL THAT THOU SHALT APPOINT: FOR THOU KNOWESTJ THAT THERE IS NOT AMONG US ANY THAT CAN SKILL TO HEW TIMBER LIKE UNTO THE SIDONIANS. G# 7 AND IT CAME TO PASS, WHEN HIRAM HEARD THE WORDS OF SOLOMON, THAT HEDK REJOICED GREATLY, AND SAID, BLESSED BE THE LORD THIS DAY, WHICH HATH GIVENE. UNTO DAVID A WISE SON OVER THIS GREAT PEOPLE.I# 8 AND HIRAM SENT TO SOLOMON, SAYING, I HAVE CONSIDERED THE THINGS WHICH J THOU SENTEST TO ME FOR: AND I WILL DO ALL THY DESIRE CONCERNING TIMBER OF% CEDAR, AND CONCERNING TIMBER OF FIR.SK# 9 MY SERVANTS SHALL BRING THEM DOWN FROM LEBANON UNTO THE SEA: AND I WILLLL CONVEY THEM BY SEA IN FLOATS UNTO THE PLACE THAT THOU SHALT APPOINT ME, ANDN WILL CAUSE THEM TO BE DISCHARGED THERE, AND THOU SHALT RECEIVE THEM: AND THOU= SHALT ACCOMPLISH MY DESIRE, IN GIVING FOOD FOR MY HOUSEHOLD.EI# 10 SO HIRAM GAVE SOLOMON CEDAR TREES AND FIR TREES ACCORDING TO ALL HISR DESIRE.M# 11 AND SOLOMON GAVE HIRAM TWENTY THOUSAND MEASURES OF WHEAT FOR FOOD TO HISML HOUSEHOLD, AND TWENTY MEASURES OF PURE OIL: THUS GAVE SOLOMON TO HIRAM YEAR BY YEAR.MH# 12 AND THE LORD GAVE SOLOMON WISDOM, AS HE PROMISED HIM: AND THERE WASF PEACE BETWEEN HIRAM AND SOLOMON; AND THEY TWO MADE A LEAGUE TOGETHER.G# 13 AND KING SOLOMON RAISED A LEVY OUT OF ALL ISRAEL; AND THE LEVY WASR THIRTY THOUSAND MEN.YJ# 14 AND HE SENT THEM TO LEBANON, TEN THOUSAND A MONTH BY COURSES: A MONTHN THEY WERE IN LEBANON, AND TWO MONTHS AT HOME: AND ADONIRAM WAS OVER THE LEVY.G# 15 AND SOLOMON HAD THREESCORE AND TEN THOUSAND THAT BARE BURDENS, AND , FOURSCORE THOUSAND HEWERS IN THE MOUNTAINS;J# 16 BESIDE THE CHIEF OF SOLOMONS OFFICERS WHICH WERE OVER THE WORK, THREEL THOUSAND AND THREE HUNDRED, WHICH RULED OVER THE PEOPLE THAT WROUGHT IN THE WORK.J# 17 AND THE KING COMMANDED, AND THEY BROUGHT GREAT STONES, COSTLY STONES,6 AND HEWED STONES, TO LAY THE FOUNDATION OF THE HOUSE.D# 18 AND SOLOMONS BUILDERS AND HIRAMS BUILDERS DID HEW THEM, AND THEF STONESQUARERS: SO THEY PREPARED TIMBER AND STONES TO BUILD THE HOUSE. = CHAPTER 6 H# 1 AND IT CAME TO PASS IN THE FOUR HUNDRED AND EIGHTIETH YEAR AFTER THEM CHILDREN OF ISRAEL WERE COME OUT OF THE LAND OF EGYPT, IN THE FOURTH YEAR OF N SOLOMONS REIGN OVER ISRAEL, IN THE MONTH ZIF, WHICH IS THE SECOND MONTH, THAT) HE BEGAN TO BUILD THE HOUSE OF THE LORD. K# 2 AND THE HOUSE WHICH KING SOLOMON BUILT FOR THE LORD, THE LENGTH THEREOF.M WAS THREESCORE CUBITS, AND THE BREADTH THEREOF TWENTY CUBITS, AND THE HEIGHTQ THEREOF THIRTY CUBITS.TG# 3 AND THE PORCH BEFORE THE TEMPLE OF THE HOUSE, TWENTY CUBITS WAS THESN LENGTH THEREOF, ACCORDING TO THE BREADTH OF THE HOUSE; AND TEN CUBITS WAS THE" BREADTH THEREOF BEFORE THE HOUSE.7# 4 AND FOR THE HOUSE HE MADE WINDOWS OF NARROW LIGHTS. L# 5 AND AGAINST THE WALL OF THE HOUSE HE BUILT CHAMBERS ROUND ABOUT, AGAINSTN THE WALLS OF THE HOUSE ROUND ABOUT, BOTH OF THE TEMPLE AND OF THE ORACLE: AND HE MADE CHAMBERS ROUND ABOUT:H# 6 THE NETHERMOST CHAMBER WAS FIVE CUBITS BROAD, AND THE MIDDLE WAS SIXL CUBITS BROAD, AND THE THIRD WAS SEVEN CUBITS BROAD: FOR WITHOUT IN THE WALLN OF THE HOUSE HE MADE NARROWED RESTS ROUND ABOUT, THAT THE BEAMS SHOULD NOT BE$ FASTENED IN THE WALLS OF THE HOUSE.I# 7 AND THE HOUSE, WHEN IT WAS IN BUILDING, WAS BUILT OF STONE MADE READYAL BEFORE IT WAS BROUGHT THITHER: SO THAT THERE WAS NEITHER HAMMER NOR AXE NOR? ANY TOOL OF IRON HEARD IN THE HOUSE, WHILE IT WAS IN BUILDING.EK# 8 THE DOOR FOR THE MIDDLE CHAMBER WAS IN THE RIGHT SIDE OF THE HOUSE: AND I THEY WENT UP WITH WINDING STAIRS INTO THE MIDDLE CHAMBER, AND OUT OF THER MIDDLE INTO THE THIRD. L# 9 SO HE BUILT THE HOUSE, AND FINISHED IT; AND COVERED THE HOUSE WITH00i0E0D%5%T6%! ! BEAMS AND BOARDS OF CEDAR. L# 10 AND THEN HE BUILT CHAMBERS AGAINST ALL THE HOUSE, FIVE CUBITS HIGH: AND/ THEY RESTED ON THE HOUSE WITH TIMBER OF CEDAR. 6# 11 AND THE WORD OF THE LORD CAME TO SOLOMON, SAYING,K# 12 CONCERNING THIS HOUSE WHICH THOU ART IN BUILDING, IF THOU WILT WALK INHL MY STATUTES, AND EXECUTE MY JUDGMENTS, AND KEEP ALL MY COMMANDMENTS TO WALKM IN THEM; THEN WILL I PERFORM MY WORD WITH THEE, WHICH I SPAKE UNTO DAVID THYH FATHER:K# 13 AND I WILL DWELL AMONG THE CHILDREN OF ISRAEL, AND WILL NOT FORSAKE MYD PEOPLE ISRAEL.E1# 14 SO SOLOMON BUILT THE HOUSE, AND FINISHED IT.IJ# 15 AND HE BUILT THE WALLS OF THE HOUSE WITHIN WITH BOARDS OF CEDAR, BOTHM THE FLOOR OF THE HOUSE, AND THE WALLS OF THE CEILING: AND HE COVERED THEM ONOM THE INSIDE WITH WOOD, AND COVERED THE FLOOR OF THE HOUSE WITH PLANKS OF FIR.SM# 16 AND HE BUILT TWENTY CUBITS ON THE SIDES OF THE HOUSE, BOTH THE FLOOR ANDIK THE WALLS WITH BOARDS OF CEDAR: HE EVEN BUILT THEM FOR IT WITHIN, EVEN FOR * THE ORACLE, EVEN FOR THE MOST HOLY PLACE.I# 17 AND THE HOUSE, THAT IS, THE TEMPLE BEFORE IT, WAS FORTY CUBITS LONG.E# 18 AND THE CEDAR OF THE HOUSE WITHIN WAS CARVED WITH KNOPS AND OPENO1 FLOWERS: ALL WAS CEDAR; THERE WAS NO STONE SEEN.EL# 19 AND THE ORACLE HE PREPARED IN THE HOUSE WITHIN, TO SET THERE THE ARK OF THE COVENANT OF THE LORD.K# 20 AND THE ORACLE IN THE FOREPART WAS TWENTY CUBITS IN LENGTH, AND TWENTYOL CUBITS IN BREADTH, AND TWENTY CUBITS IN THE HEIGHT THEREOF: AND HE OVERLAID@ IT WITH PURE GOLD; AND SO COVERED THE ALTAR WHICH WAS OF CEDAR.G# 21 SO SOLOMON OVERLAID THE HOUSE WITHIN WITH PURE GOLD: AND HE MADE AEK PARTITION BY THE CHAINS OF GOLD BEFORE THE ORACLE; AND HE OVERLAID IT WITH  GOLD.M# 22 AND THE WHOLE HOUSE HE OVERLAID WITH GOLD, UNTIL HE HAD FINISHED ALL THETJ HOUSE: ALSO THE WHOLE ALTAR THAT WAS BY THE ORACLE HE OVERLAID WITH GOLD.H# 23 AND WITHIN THE ORACLE HE MADE TWO CHERUBIMS OF OLIVE TREE, EACH TEN CUBITS HIGH.TH# 24 AND FIVE CUBITS WAS THE ONE WING OF THE CHERUB, AND FIVE CUBITS THEK OTHER WING OF THE CHERUB: FROM THE UTTERMOST PART OF THE ONE WING UNTO THEI- UTTERMOST PART OF THE OTHER WERE TEN CUBITS. H# 25 AND THE OTHER CHERUB WAS TEN CUBITS: BOTH THE CHERUBIMS WERE OF ONE MEASURE AND ONE SIZE.L# 26 THE HEIGHT OF THE ONE CHERUB WAS TEN CUBITS, AND SO WAS IT OF THE OTHER CHERUB.H# 27 AND HE SET THE CHERUBIMS WITHIN THE INNER HOUSE: AND THEY STRETCHEDN FORTH THE WINGS OF THE CHERUBIMS, SO THAT THE WING OF THE ONE TOUCHED THE ONEI WALL, AND THE WING OF THE OTHER CHERUB TOUCHED THE OTHER WALL; AND THEIRF5 WINGS TOUCHED ONE ANOTHER IN THE MIDST OF THE HOUSE.R-# 28 AND HE OVERLAID THE CHERUBIMS WITH GOLD.AM# 29 AND HE CARVED ALL THE WALLS OF THE HOUSE ROUND ABOUT WITH CARVED FIGURESDB OF CHERUBIMS AND PALM TREES AND OPEN FLOWERS, WITHIN AND WITHOUT.K# 30 AND THE FLOORS OF THE HOUSE HE OVERLAID WITH GOLD, WITHIN AND WITHOUT.RH# 31 AND FOR THE ENTERING OF THE ORACLE HE MADE DOORS OF OLIVE TREE: THE5 LINTEL AND SIDE POSTS WERE A FIFTH PART OF THE WALL.FL# 32 THE TWO DOORS ALSO WERE OF OLIVE TREE; AND HE CARVED UPON THEM CARVINGSK OF CHERUBIMS AND PALM TREES AND OPEN FLOWERS, AND OVERLAID THEM WITH GOLD,A= AND SPREAD GOLD UPON THE CHERUBIMS, AND UPON THE PALM TREES.HM# 33 SO ALSO MADE HE FOR THE DOOR OF THE TEMPLE POSTS OF OLIVE TREE, A FOURTHH PART OF THE WALL.L# 34 AND THE TWO DOORS WERE OF FIR TREE: THE TWO LEAVES OF THE ONE DOOR WERE< FOLDING, AND THE TWO LEAVES OF THE OTHER DOOR WERE FOLDING.I# 35 AND HE CARVED THEREON CHERUBIMS AND PALM TREES AND OPEN FLOWERS: ANDS4 COVERED THEM WITH GOLD FITTED UPON THE CARVED WORK.K# 36 AND HE BUILT THE INNER COURT WITH THREE ROWS OF HEWED STONE, AND A ROWA OF CEDAR BEAMS.L# 37 IN THE FOURTH YEAR WAS THE FOUNDATION OF THE HOUSE OF THE LORD LAID, IN THE MONTH ZIF: ITK# 38 AND IN THE ELEVENTH YEAR, IN THE MONTH BUL, WHICH IS THE EIGHTH MONTH, N WAS THE HOUSE FINISHED THROUGHOUT ALL THE PARTS THEREOF, AND ACCORDING TO ALL9 THE FASHION OF IT. SO WAS HE SEVEN YEARS IN BUILDING IT.C = CHAPTER 7 N# 1 BUT SOLOMON WAS BU00i0Y/<%X>%+%O-%TADATADATAILDING HIS OWN HOUSE THIRTEEN YEARS, AND HE FINISHED ALL HIS HOUSE.AL# 2 HE BUILT ALSO THE HOUSE OF THE FOREST OF LEBANON; THE LENGTH THEREOF WASH AN HUNDRED CUBITS, AND THE BREADTH THEREOF FIFTY CUBITS, AND THE HEIGHTN THEREOF THIRTY CUBITS, UPON FOUR ROWS OF CEDAR PILLARS, WITH CEDAR BEAMS UPON THE PILLARS.HI# 3 AND IT WAS COVERED WITH CEDAR ABOVE UPON THE BEAMS, THAT LAY ON FORTY FIVE PILLARS, FIFTEEN IN A ROW.H# 4 AND THERE WERE WINDOWS IN THREE ROWS, AND LIGHT WAS AGAINST LIGHT IN THREE RANKS.GL# 5 AND ALL THE DOORS AND POSTS WERE SQUARE, WITH THE WINDOWS: AND LIGHT WAS AGAINST LIGHT IN THREE RANKS.L# 6 AND HE MADE A PORCH OF PILLARS; THE LENGTH THEREOF WAS FIFTY CUBITS, ANDJ THE BREADTH THEREOF THIRTY CUBITS: AND THE PORCH WAS BEFORE THEM: AND THE3 OTHER PILLARS AND THE THICK BEAM WERE BEFORE THEM. L# 7 THEN HE MADE A PORCH FOR THE THRONE WHERE HE MIGHT JUDGE, EVEN THE PORCHM OF JUDGMENT: AND IT WAS COVERED WITH CEDAR FROM ONE SIDE OF THE FLOOR TO THE  OTHER.SJ# 8 AND HIS HOUSE WHERE HE DWELT HAD ANOTHER COURT WITHIN THE PORCH, WHICHM WAS OF THE LIKE WORK. SOLOMON MADE ALSO AN HOUSE FOR PHARAOHS DAUGHTER, WHOM , HE HAD TAKEN TO WIFE, LIKE UNTO THIS PORCH.G# 9 ALL THESE WERE OF COSTLY STONES, ACCORDING TO THE MEASURES OF HEWEDEK STONES, SAWED WITH SAWS, WITHIN AND WITHOUT, EVEN FROM THE FOUNDATION UNTON: THE COPING, AND SO ON THE OUTSIDE TOWARD THE GREAT COURT.J# 10 AND THE FOUNDATION WAS OF COSTLY STONES, EVEN GREAT STONES, STONES OF( TEN CUBITS, AND STONES OF EIGHT CUBITS.J# 11 AND ABOVE WERE COSTLY STONES, AFTER THE MEASURES OF HEWED STONES, AND CEDARS.M# 12 AND THE GREAT COURT ROUND ABOUT WAS WITH THREE ROWS OF HEWED STONES, AND M A ROW OF CEDAR BEAMS, BOTH FOR THE INNER COURT OF THE HOUSE OF THE LORD, ANDS FOR THE PORCH OF THE HOUSE.9# 13 AND KING SOLOMON SENT AND FETCHED HIRAM OUT OF TYRE.K# 14 HE WAS A WIDOWS SON OF THE TRIBE OF NAPHTALI, AND HIS FATHER WAS A MANDN OF TYRE, A WORKER IN BRASS: AND HE WAS FILLED WITH WISDOM, AND UNDERSTANDING,I AND CUNNING TO WORK ALL WORKS IN BRASS. AND HE CAME TO KING SOLOMON, ANDF WROUGHT ALL HIS WORK.L# 15 FOR HE CAST TWO PILLARS OF BRASS, OF EIGHTEEN CUBITS HIGH APIECE: AND A8 LINE OF TWELVE CUBITS DID COMPASS EITHER OF THEM ABOUT.K# 16 AND HE MADE TWO CHAPITERS OF MOLTEN BRASS, TO SET UPON THE TOPS OF THEOK PILLARS: THE HEIGHT OF THE ONE CHAPITER WAS FIVE CUBITS, AND THE HEIGHT OFB$ THE OTHER CHAPITER WAS FIVE CUBITS:K# 17 AND NETS OF CHECKER WORK, AND WREATHS OF CHAIN WORK, FOR THE CHAPITERSDN WHICH WERE UPON THE TOP OF THE PILLARS; SEVEN FOR THE ONE CHAPITER, AND SEVEN FOR THE OTHER CHAPITER.L# 18 AND HE MADE THE PILLARS, AND TWO ROWS ROUND ABOUT UPON THE ONE NETWORK,M TO COVER THE CHAPITERS THAT WERE UPON THE TOP, WITH POMEGRANATES: AND SO DIDC HE FOR THE OTHER CHAPITER.SI# 19 AND THE CHAPITERS THAT WERE UPON THE TOP OF THE PILLARS WERE OF LILY WORK IN THE PORCH, FOUR CUBITS.M# 20 AND THE CHAPITERS UPON THE TWO PILLARS HAD POMEGRANATES ALSO ABOVE, OVERHJ AGAINST THE BELLY WHICH WAS BY THE NETWORK: AND THE POMEGRANATES WERE TWO5 HUNDRED IN ROWS ROUND ABOUT UPON THE OTHER CHAPITER.EL# 21 AND HE SET UP THE PILLARS IN THE PORCH OF THE TEMPLE: AND HE SET UP THEI RIGHT PILLAR, AND CALLED THE NAME THEREOF JACHIN: AND HE SET UP THE LEFTS* PILLAR, AND CALLED THE NAME THEREOF BOAZ.J# 22 AND UPON THE TOP OF THE PILLARS WAS LILY WORK: SO WAS THE WORK OF THE PILLARS FINISHED.L# 23 AND HE MADE A MOLTEN SEA, TEN CUBITS FROM THE ONE BRIM TO THE OTHER: ITJ WAS ROUND ALL ABOUT, AND HIS HEIGHT WAS FIVE CUBITS: AND A LINE OF THIRTY# CUBITS DID COMPASS IT ROUND ABOUT.TM# 24 AND UNDER THE BRIM OF IT ROUND ABOUT THERE WERE KNOPS COMPASSING IT, TENTM IN A CUBIT, COMPASSING THE SEA ROUND ABOUT: THE KNOPS WERE CAST IN TWO ROWS,D WHEN IT WAS CAST.I# 25 IT STOOD UPON TWELVE OXEN, THREE LOOKING TOWARD THE NORTH, AND THREEPG LOOKING TOWARD THE WEST, AND THREE LOOKING TOWARD THE SOUTH, AND THREEDL LOOKING TOWARD THE EAST: AND THE SEA WAS SET ABOVE UPON THEM, AND ALL THEIR HINDER PARTS WERE INWARD.L# 26 AND IT WAS AN00i0E0D%5%T6%! ! HAND BREADTH THICK, AND THE BRIM THEREOF WAS WROUGHT LIKEL THE BRIM OF A CUP, WITH FLOWERS OF LILIES: IT CONTAINED TWO THOUSAND BATHS.L# 27 AND HE MADE TEN BASES OF BRASS; FOUR CUBITS WAS THE LENGTH OF ONE BASE,H AND FOUR CUBITS THE BREADTH THEREOF, AND THREE CUBITS THE HEIGHT OF IT.L# 28 AND THE WORK OF THE BASES WAS ON THIS MANNER: THEY HAD BORDERS, AND THE! BORDERS WERE BETWEEN THE LEDGES:RJ# 29 AND ON THE BORDERS THAT WERE BETWEEN THE LEDGES WERE LIONS, OXEN, ANDM CHERUBIMS: AND UPON THE LEDGES THERE WAS A BASE ABOVE: AND BENEATH THE LIONS 3 AND OXEN WERE CERTAIN ADDITIONS MADE OF THIN WORK.IM# 30 AND EVERY BASE HAD FOUR BRASEN WHEELS, AND PLATES OF BRASS: AND THE FOUR L CORNERS THEREOF HAD UNDERSETTERS: UNDER THE LAVER WERE UNDERSETTERS MOLTEN, AT THE SIDE OF EVERY ADDITION. K# 31 AND THE MOUTH OF IT WITHIN THE CHAPITER AND ABOVE WAS A CUBIT: BUT THEBM MOUTH THEREOF WAS ROUND AFTER THE WORK OF THE BASE, A CUBIT AND AN HALF: AND L ALSO UPON THE MOUTH OF IT WERE GRAVINGS WITH THEIR BORDERS, FOURSQUARE, NOT ROUND.NL# 32 AND UNDER THE BORDERS WERE FOUR WHEELS; AND THE AXLETREES OF THE WHEELSJ WERE JOINED TO THE BASE: AND THE HEIGHT OF A WHEEL WAS A CUBIT AND HALF A CUBIT.SK# 33 AND THE WORK OF THE WHEELS WAS LIKE THE WORK OF A CHARIOT WHEEL: THEIR J AXLETREES, AND THEIR NAVES, AND THEIR FELLOES, AND THEIR SPOKES, WERE ALL MOLTEN.J# 34 AND THERE WERE FOUR UNDERSETTERS TO THE FOUR CORNERS OF ONE BASE: AND/ THE UNDERSETTERS WERE OF THE VERY BASE ITSELF.WI# 35 AND IN THE TOP OF THE BASE WAS THERE A ROUND COMPASS OF HALF A CUBITTL HIGH: AND ON THE TOP OF THE BASE THE LEDGES THEREOF AND THE BORDERS THEREOF WERE OF THE SAME.L# 36 FOR ON THE PLATES OF THE LEDGES THEREOF, AND ON THE BORDERS THEREOF, HEN GRAVED CHERUBIMS, LIONS, AND PALM TREES, ACCORDING TO THE PROPORTION OF EVERY ONE, AND ADDITIONS ROUND ABOUT.J# 37 AFTER THIS MANNER HE MADE THE TEN BASES: ALL OF THEM HAD ONE CASTING, ONE MEASURE, AND ONE SIZE.DK# 38 THEN MADE HE TEN LAVERS OF BRASS: ONE LAVER CONTAINED FORTY BATHS: AND L EVERY LAVER WAS FOUR CUBITS: AND UPON EVERY ONE OF THE TEN BASES ONE LAVER.J# 39 AND HE PUT FIVE BASES ON THE RIGHT SIDE OF THE HOUSE, AND FIVE ON THEJ LEFT SIDE OF THE HOUSE: AND HE SET THE SEA ON THE RIGHT SIDE OF THE HOUSE! EASTWARD OVER AGAINST THE SOUTH.NI# 40 AND HIRAM MADE THE LAVERS, AND THE SHOVELS, AND THE BASONS. SO HIRAMTM MADE AN END OF DOING ALL THE WORK THAT HE MADE KING SOLOMON FOR THE HOUSE OFN THE LORD:M# 41 THE TWO PILLARS, AND THE TWO BOWLS OF THE CHAPITERS THAT WERE ON THE TOPH OF THE TWO PILLARS; AND THE TWO NETWORKS, TO COVER THE TWO BOWLS OF THE2 CHAPITERS WHICH WERE UPON THE TOP OF THE PILLARS;I# 42 AND FOUR HUNDRED POMEGRANATES FOR THE TWO NETWORKS, EVEN TWO ROWS OFTK POMEGRANATES FOR ONE NETWORK, TO COVER THE TWO BOWLS OF THE CHAPITERS THATM WERE UPON THE PILLARS; 4# 43 AND THE TEN BASES, AND TEN LAVERS ON THE BASES;0# 44 AND ONE SEA, AND TWELVE OXEN UNDER THE SEA;J# 45 AND THE POTS, AND THE SHOVELS, AND THE BASONS: AND ALL THESE VESSELS,K WHICH HIRAM MADE TO KING SOLOMON FOR THE HOUSE OF THE LORD, WERE OF BRIGHTE BRASS. F# 46 IN THE PLAIN OF JORDAN DID THE KING CAST THEM, IN THE CLAY GROUND BETWEEN SUCCOTH AND ZARTHAN.RL# 47 AND SOLOMON LEFT ALL THE VESSELS UNWEIGHED, BECAUSE THEY WERE EXCEEDING5 MANY: NEITHER WAS THE WEIGHT OF THE BRASS FOUND OUT.LJ# 48 AND SOLOMON MADE ALL THE VESSELS THAT PERTAINED UNTO THE HOUSE OF THEM LORD: THE ALTAR OF GOLD, AND THE TABLE OF GOLD, WHEREUPON THE SHEWBREAD WAS, K# 49 AND THE CANDLESTICKS OF PURE GOLD, FIVE ON THE RIGHT SIDE, AND FIVE ONSL THE LEFT, BEFORE THE ORACLE, WITH THE FLOWERS, AND THE LAMPS, AND THE TONGS OF GOLD,HM# 50 AND THE BOWLS, AND THE SNUFFERS, AND THE BASONS, AND THE SPOONS, AND THELN CENSERS OF PURE GOLD; AND THE HINGES OF GOLD, BOTH FOR THE DOORS OF THE INNERK HOUSE, THE MOST HOLY PLACE, AND FOR THE DOORS OF THE HOUSE, TO WIT, OF THEA TEMPLE.J# 51 SO WAS ENDED ALL THE WORK THAT KING SOLOMON MADE FOR THE HOUSE OF THEN LORD. AND SOLOMON BROUGHT IN THE THINGS WHICH DAVID HIS FATHER HA00i0Y/<%X>%+%O-%TADATADATAD DEDICATED;E EVEN THE SILVER, AND THE GOLD, AND THE VESSELS, DID HE PUT AMONG THE $ TREASURES OF THE HOUSE OF THE LORD. = CHAPTER 8 I# 1 THEN SOLOMON ASSEMBLED THE ELDERS OF ISRAEL, AND ALL THE HEADS OF THEON TRIBES, THE CHIEF OF THE FATHERS OF THE CHILDREN OF ISRAEL, UNTO KING SOLOMONK IN JERUSALEM, THAT THEY MIGHT BRING UP THE ARK OF THE COVENANT OF THE LORD) OUT OF THE CITY OF DAVID, WHICH IS ZION.LK# 2 AND ALL THE MEN OF ISRAEL ASSEMBLED THEMSELVES UNTO KING SOLOMON AT THEH8 FEAST IN THE MONTH ETHANIM, WHICH IS THE SEVENTH MONTH.G# 3 AND ALL THE ELDERS OF ISRAEL CAME, AND THE PRIESTS TOOK UP THE ARK.FF# 4 AND THEY BROUGHT UP THE ARK OF THE LORD, AND THE TABERNACLE OF THEI CONGREGATION, AND ALL THE HOLY VESSELS THAT WERE IN THE TABERNACLE, EVEND0 THOSE DID THE PRIESTS AND THE LEVITES BRING UP.M# 5 AND KING SOLOMON, AND ALL THE CONGREGATION OF ISRAEL, THAT WERE ASSEMBLEDOI UNTO HIM, WERE WITH HIM BEFORE THE ARK, SACRIFICING SHEEP AND OXEN, THATS. COULD NOT BE TOLD NOR NUMBERED FOR MULTITUDE.K# 6 AND THE PRIESTS BROUGHT IN THE ARK OF THE COVENANT OF THE LORD UNTO HISAL PLACE, INTO THE ORACLE OF THE HOUSE, TO THE MOST HOLY PLACE, EVEN UNDER THE WINGS OF THE CHERUBIMS.M# 7 FOR THE CHERUBIMS SPREAD FORTH THEIR TWO WINGS OVER THE PLACE OF THE ARK,T@ AND THE CHERUBIMS COVERED THE ARK AND THE STAVES THEREOF ABOVE.K# 8 AND THEY DREW OUT THE STAVES, THAT THE ENDS OF THE STAVES WERE SEEN OUT I IN THE HOLY PLACE BEFORE THE ORACLE, AND THEY WERE NOT SEEN WITHOUT: ANDO THERE THEY ARE UNTO THIS DAY.J# 9 THERE WAS NOTHING IN THE ARK SAVE THE TWO TABLES OF STONE, WHICH MOSESG PUT THERE AT HOREB, WHEN THE LORD MADE A COVENANT WITH THE CHILDREN OFR1 ISRAEL, WHEN THEY CAME OUT OF THE LAND OF EGYPT.MK# 10 AND IT CAME TO PASS, WHEN THE PRIESTS WERE COME OUT OF THE HOLY PLACE,S- THAT THE CLOUD FILLED THE HOUSE OF THE LORD,J# 11 SO THAT THE PRIESTS COULD NOT STAND TO MINISTER BECAUSE OF THE CLOUD:< FOR THE GLORY OF THE LORD HAD FILLED THE HOUSE OF THE LORD.G# 12 THEN SPAKE SOLOMON, THE LORD SAID THAT HE WOULD DWELL IN THE THICKT DARKNESS.L# 13 I HAVE SURELY BUILT THEE AN HOUSE TO DWELL IN, A SETTLED PLACE FOR THEE TO ABIDE IN FOR EVER.L# 14 AND THE KING TURNED HIS FACE ABOUT, AND BLESSED ALL THE CONGREGATION OF4 ISRAEL: (AND ALL THE CONGREGATION OF ISRAEL STOOD;)I# 15 AND HE SAID, BLESSED BE THE LORD GOD OF ISRAEL, WHICH SPAKE WITH HISII MOUTH UNTO DAVID MY FATHER, AND HATH WITH HIS HAND FULFILLED IT, SAYING,HH# 16 SINCE THE DAY THAT I BROUGHT FORTH MY PEOPLE ISRAEL OUT OF EGYPT, IN CHOSE NO CITY OUT OF ALL THE TRIBES OF ISRAEL TO BUILD AN HOUSE, THAT MY NAMEA MIGHT BE THEREIN; BUT I CHOSE DAVID TO BE OVER MY PEOPLE ISRAEL.RI# 17 AND IT WAS IN THE HEART OF DAVID MY FATHER TO BUILD AN HOUSE FOR THEG NAME OF THE LORD GOD OF ISRAEL.M# 18 AND THE LORD SAID UNTO DAVID MY FATHER, WHEREAS IT WAS IN THINE HEART TOEI BUILD AN HOUSE UNTO MY NAME, THOU DIDST WELL THAT IT WAS IN THINE HEART.NM# 19 NEVERTHELESS THOU SHALT NOT BUILD THE HOUSE; BUT THY SON THAT SHALL COMEA? FORTH OUT OF THY LOINS, HE SHALL BUILD THE HOUSE UNTO MY NAME.LM# 20 AND THE LORD HATH PERFORMED HIS WORD THAT HE SPAKE, AND I AM RISEN UP INEJ THE ROOM OF DAVID MY FATHER, AND SIT ON THE THRONE OF ISRAEL, AS THE LORDJ PROMISED, AND HAVE BUILT AN HOUSE FOR THE NAME OF THE LORD GOD OF ISRAEL.M# 21 AND I HAVE SET THERE A PLACE FOR THE ARK, WHEREIN IS THE COVENANT OF THEON LORD, WHICH HE MADE WITH OUR FATHERS, WHEN HE BROUGHT THEM OUT OF THE LAND OF EGYPT.BJ# 22 AND SOLOMON STOOD BEFORE THE ALTAR OF THE LORD IN THE PRESENCE OF ALLF THE CONGREGATION OF ISRAEL, AND SPREAD FORTH HIS HANDS TOWARD HEAVEN:J# 23 AND HE SAID, LORD GOD OF ISRAEL, THERE IS NO GOD LIKE THEE, IN HEAVENM ABOVE, OR ON EARTH BENEATH, WHO KEEPEST COVENANT AND MERCY WITH THY SERVANTSF, THAT WALK BEFORE THEE WITH ALL THEIR HEART:M# 24 WHO HAST KEPT WITH THY SERVANT DAVID MY FATHER THAT THOU PROMISEDST HIM:,L THOU SPAKEST ALSO WITH THY MOUTH, AND HAST FULFILLED IT WITH THINE HAND, AS IT IS THIS DAY.M# 25 THEREFORE NOW, LORD GOD OF ISRAEL, KEEP WITH THY 00i0E0D%5%T6%! !SERVANT DAVID MY FATHERON THAT THOU PROMISEDST HIM, SAYING, THERE SHALL NOT FAIL THEE A MAN IN MY SIGHTM TO SIT ON THE THRONE OF ISRAEL; SO THAT THY CHILDREN TAKE HEED TO THEIR WAY,,8 THAT THEY WALK BEFORE ME AS THOU HAST WALKED BEFORE ME.L# 26 AND NOW, O GOD OF ISRAEL, LET THY WORD, I PRAY THEE, BE VERIFIED, WHICH/ THOU SPAKEST UNTO THY SERVANT DAVID MY FATHER.PM# 27 BUT WILL GOD INDEED DWELL ON THE EARTH? BEHOLD, THE HEAVEN AND HEAVEN OFIK HEAVENS CANNOT CONTAIN THEE; HOW MUCH LESS THIS HOUSE THAT I HAVE BUILDED?YE# 28 YET HAVE THOU RESPECT UNTO THE PRAYER OF THY SERVANT, AND TO HISAN SUPPLICATION, O LORD MY GOD, TO HEARKEN UNTO THE CRY AND TO THE PRAYER, WHICH( THY SERVANT PRAYETH BEFORE THEE TO DAY:M# 29 THAT THINE EYES MAY BE OPEN TOWARD THIS HOUSE NIGHT AND DAY, EVEN TOWARDIL THE PLACE OF WHICH THOU HAST SAID, MY NAME SHALL BE THERE: THAT THOU MAYESTH HEARKEN UNTO THE PRAYER WHICH THY SERVANT SHALL MAKE TOWARD THIS PLACE.K# 30 AND HEARKEN THOU TO THE SUPPLICATION OF THY SERVANT, AND OF THY PEOPLEBL ISRAEL, WHEN THEY SHALL PRAY TOWARD THIS PLACE: AND HEAR THOU IN HEAVEN THY0 DWELLING PLACE: AND WHEN THOU HEAREST, FORGIVE.L# 31 IF ANY MAN TRESPASS AGAINST HIS NEIGHBOUR, AND AN OATH BE LAID UPON HIMN TO CAUSE HIM TO SWEAR, AND THE OATH COME BEFORE THINE ALTAR IN THIS HOUSE: ITM# 32 THEN HEAR THOU IN HEAVEN, AND DO, AND JUDGE THY SERVANTS, CONDEMNING THEAN WICKED, TO BRING HIS WAY UPON HIS HEAD; AND JUSTIFYING THE RIGHTEOUS, TO GIVE$ HIM ACCORDING TO HIS RIGHTEOUSNESS.J# 33 WHEN THY PEOPLE ISRAEL BE SMITTEN DOWN BEFORE THE ENEMY, BECAUSE THEYN HAVE SINNED AGAINST THEE, AND SHALL TURN AGAIN TO THEE, AND CONFESS THY NAME,9 AND PRAY, AND MAKE SUPPLICATION UNTO THEE IN THIS HOUSE:TL# 34 THEN HEAR THOU IN HEAVEN, AND FORGIVE THE SIN OF THY PEOPLE ISRAEL, ANDE BRING THEM AGAIN UNTO THE LAND WHICH THOU GAVEST UNTO THEIR FATHERS.TK# 35 WHEN HEAVEN IS SHUT UP, AND THERE IS NO RAIN, BECAUSE THEY HAVE SINNEDSM AGAINST THEE; IF THEY PRAY TOWARD THIS PLACE, AND CONFESS THY NAME, AND TURN + FROM THEIR SIN, WHEN THOU AFFLICTEST THEM:EJ# 36 THEN HEAR THOU IN HEAVEN, AND FORGIVE THE SIN OF THY SERVANTS, AND OFI THY PEOPLE ISRAEL, THAT THOU TEACH THEM THE GOOD WAY WHEREIN THEY SHOULDHN WALK, AND GIVE RAIN UPON THY LAND, WHICH THOU HAST GIVEN TO THY PEOPLE FOR AN INHERITANCE.EF# 37 IF THERE BE IN THE LAND FAMINE, IF THERE BE PESTILENCE, BLASTING,K MILDEW, LOCUST, OR IF THERE BE CATERPILLER; IF THEIR ENEMY BESIEGE THEM INTK THE LAND OF THEIR CITIES; WHATSOEVER PLAGUE, WHATSOEVER SICKNESS THERE BE;HJ# 38 WHAT PRAYER AND SUPPLICATION SOEVER BE MADE BY ANY MAN, OR BY ALL THYK PEOPLE ISRAEL, WHICH SHALL KNOW EVERY MAN THE PLAGUE OF HIS OWN HEART, ANDM* SPREAD FORTH HIS HANDS TOWARD THIS HOUSE:J# 39 THEN HEAR THOU IN HEAVEN THY DWELLING PLACE, AND FORGIVE, AND DO, ANDN GIVE TO EVERY MAN ACCORDING TO HIS WAYS, WHOSE HEART THOU KNOWEST; (FOR THOU,@ EVEN THOU ONLY, KNOWEST THE HEARTS OF ALL THE CHILDREN OF MEN;)J# 40 THAT THEY MAY FEAR THEE ALL THE DAYS THAT THEY LIVE IN THE LAND WHICH THOU GAVEST UNTO OUR FATHERS.J# 41 MOREOVER CONCERNING A STRANGER, THAT IS NOT OF THY PEOPLE ISRAEL, BUT0 COMETH OUT OF A FAR COUNTRY FOR THY NAMES SAKE;K# 42 (FOR THEY SHALL HEAR OF THY GREAT NAME, AND OF THY STRONG HAND, AND OF G THY STRETCHED OUT ARM;) WHEN HE SHALL COME AND PRAY TOWARD THIS HOUSE;NM# 43 HEAR THOU IN HEAVEN THY DWELLING PLACE, AND DO ACCORDING TO ALL THAT THEKN STRANGER CALLETH TO THEE FOR: THAT ALL PEOPLE OF THE EARTH MAY KNOW THY NAME,H TO FEAR THEE, AS DO THY PEOPLE ISRAEL; AND THAT THEY MAY KNOW THAT THIS4 HOUSE, WHICH I HAVE BUILDED, IS CALLED BY THY NAME.K# 44 IF THY PEOPLE GO OUT TO BATTLE AGAINST THEIR ENEMY, WHITHERSOEVER THOU2N SHALT SEND THEM, AND SHALL PRAY UNTO THE LORD TOWARD THE CITY WHICH THOU HAST= CHOSEN, AND TOWARD THE HOUSE THAT I HAVE BUILT FOR THY NAME:EF# 45 THEN HEAR THOU IN HEAVEN THEIR PRAYER AND THEIR SUPPLICATION, AND MAINTAIN THEIR CAUSE.J# 46 IF THEY SIN AGAINST THEE, (FOR THERE IS NO MAN THAT SINNETH NOT,) ANDK THOU BE ANGRY WITH THEM, AND DELIVER THEM T00i0Y/<%X>%+%O-%TADATADATAO THE ENEMY, SO THAT THEY CARRYC< THEM AWAY CAPTIVES UNTO THE LAND OF THE ENEMY, FAR OR NEAR;G# 47 YET IF THEY SHALL BETHINK THEMSELVES IN THE LAND WHITHER THEY WEREMM CARRIED CAPTIVES, AND REPENT, AND MAKE SUPPLICATION UNTO THEE IN THE LAND OFWG THEM THAT CARRIED THEM CAPTIVES, SAYING, WE HAVE SINNED, AND HAVE DONEA* PERVERSELY, WE HAVE COMMITTED WICKEDNESS;K# 48 AND SO RETURN UNTO THEE WITH ALL THEIR HEART, AND WITH ALL THEIR SOUL, N IN THE LAND OF THEIR ENEMIES, WHICH LED THEM AWAY CAPTIVE, AND PRAY UNTO THEEM TOWARD THEIR LAND, WHICH THOU GAVEST UNTO THEIR FATHERS, THE CITY WHICH THOUA< HAST CHOSEN, AND THE HOUSE WHICH I HAVE BUILT FOR THY NAME:E# 49 THEN HEAR THOU THEIR PRAYER AND THEIR SUPPLICATION IN HEAVEN THYT* DWELLING PLACE, AND MAINTAIN THEIR CAUSE,H# 50 AND FORGIVE THY PEOPLE THAT HAVE SINNED AGAINST THEE, AND ALL THEIRJ TRANSGRESSIONS WHEREIN THEY HAVE TRANSGRESSED AGAINST THEE, AND GIVE THEMD COMPASSION BEFORE THEM WHO CARRIED THEM CAPTIVE, THAT THEY MAY HAVE COMPASSION ON THEM:I# 51 FOR THEY BE THY PEOPLE, AND THINE INHERITANCE, WHICH THOU BROUGHTEST ; FORTH OUT OF EGYPT, FROM THE MIDST OF THE FURNACE OF IRON:IJ# 52 THAT THINE EYES MAY BE OPEN UNTO THE SUPPLICATION OF THY SERVANT, ANDM UNTO THE SUPPLICATION OF THY PEOPLE ISRAEL, TO HEARKEN UNTO THEM IN ALL THATP THEY CALL FOR UNTO THEE.NL# 53 FOR THOU DIDST SEPARATE THEM FROM AMONG ALL THE PEOPLE OF THE EARTH, TOM BE THINE INHERITANCE, AS THOU SPAKEST BY THE HAND OF MOSES THY SERVANT, WHENE6 THOU BROUGHTEST OUR FATHERS OUT OF EGYPT, O LORD GOD.I# 54 AND IT WAS SO, THAT WHEN SOLOMON HAD MADE AN END OF PRAYING ALL THISFM PRAYER AND SUPPLICATION UNTO THE LORD, HE AROSE FROM BEFORE THE ALTAR OF THEHE LORD, FROM KNEELING ON HIS KNEES WITH HIS HANDS SPREAD UP TO HEAVEN.EI# 55 AND HE STOOD, AND BLESSED ALL THE CONGREGATION OF ISRAEL WITH A LOUD3 VOICE, SAYING,EF# 56 BLESSED BE THE LORD, THAT HATH GIVEN REST UNTO HIS PEOPLE ISRAEL,M ACCORDING TO ALL THAT HE PROMISED: THERE HATH NOT FAILED ONE WORD OF ALL HISTB GOOD PROMISE, WHICH HE PROMISED BY THE HAND OF MOSES HIS SERVANT.I# 57 THE LORD OUR GOD BE WITH US, AS HE WAS WITH OUR FATHERS: LET HIM NOTT LEAVE US, NOR FORSAKE US:M# 58 THAT HE MAY INCLINE OUR HEARTS UNTO HIM, TO WALK IN ALL HIS WAYS, AND TO E KEEP HIS COMMANDMENTS, AND HIS STATUTES, AND HIS JUDGMENTS, WHICH HEI COMMANDED OUR FATHERS.EJ# 59 AND LET THESE MY WORDS, WHEREWITH I HAVE MADE SUPPLICATION BEFORE THEN LORD, BE NIGH UNTO THE LORD OUR GOD DAY AND NIGHT, THAT HE MAINTAIN THE CAUSEH OF HIS SERVANT, AND THE CAUSE OF HIS PEOPLE ISRAEL AT ALL TIMES, AS THE MATTER SHALL REQUIRE:M# 60 THAT ALL THE PEOPLE OF THE EARTH MAY KNOW THAT THE LORD IS GOD, AND THAT: THERE IS NONE ELSE.J# 61 LET YOUR HEART THEREFORE BE PERFECT WITH THE LORD OUR GOD, TO WALK IN< HIS STATUTES, AND TO KEEP HIS COMMANDMENTS, AS AT THIS DAY.H# 62 AND THE KING, AND ALL ISRAEL WITH HIM, OFFERED SACRIFICE BEFORE THE LORD.I# 63 AND SOLOMON OFFERED A SACRIFICE OF PEACE OFFERINGS, WHICH HE OFFEREDAG UNTO THE LORD, TWO AND TWENTY THOUSAND OXEN, AND AN HUNDRED AND TWENTYAI THOUSAND SHEEP. SO THE KING AND ALL THE CHILDREN OF ISRAEL DEDICATED THEA HOUSE OF THE LORD. M# 64 THE SAME DAY DID THE KING HALLOW THE MIDDLE OF THE COURT THAT WAS BEFOREPF THE HOUSE OF THE LORD: FOR THERE HE OFFERED BURNT OFFERINGS, AND MEATM OFFERINGS, AND THE FAT OF THE PEACE OFFERINGS: BECAUSE THE BRASEN ALTAR THATEL WAS BEFORE THE LORD WAS TOO LITTLE TO RECEIVE THE BURNT OFFERINGS, AND MEAT/ OFFERINGS, AND THE FAT OF THE PEACE OFFERINGS.WL# 65 AND AT THAT TIME SOLOMON HELD A FEAST, AND ALL ISRAEL WITH HIM, A GREATM CONGREGATION, FROM THE ENTERING IN OF HAMATH UNTO THE RIVER OF EGYPT, BEFORE4A THE LORD OUR GOD, SEVEN DAYS AND SEVEN DAYS, EVEN FOURTEEN DAYS.BJ# 66 ON THE EIGHTH DAY HE SENT THE PEOPLE AWAY: AND THEY BLESSED THE KING,M AND WENT UNTO THEIR TENTS JOYFUL AND GLAD OF HEART FOR ALL THE GOODNESS THATAD THE LORD HAD DONE FOR DAVID HIS SERVANT, AND FOR ISRAEL HIS PEOPLE. = CHAPTER 9 L# 1 AND IT CAME TO PASS, WHEN SOLOMON HAD FINISHED THE BUILD00i0E0D%5%T6%! !ING OF THE HOUSEG OF THE LORD, AND THE KINGS HOUSE, AND ALL SOLOMONS DESIRE WHICH HE WASN PLEASED TO DO,TI# 2 THAT THE LORD APPEARED TO SOLOMON THE SECOND TIME, AS HE HAD APPEARED  UNTO HIM AT GIBEON.M# 3 AND THE LORD SAID UNTO HIM, I HAVE HEARD THY PRAYER AND THY SUPPLICATION,,K THAT THOU HAST MADE BEFORE ME: I HAVE HALLOWED THIS HOUSE, WHICH THOU HASTAL BUILT, TO PUT MY NAME THERE FOR EVER; AND MINE EYES AND MINE HEART SHALL BE THERE PERPETUALLY.CM# 4 AND IF THOU WILT WALK BEFORE ME, AS DAVID THY FATHER WALKED, IN INTEGRITY K OF HEART, AND IN UPRIGHTNESS, TO DO ACCORDING TO ALL THAT I HAVE COMMANDED2 THEE, AND WILT KEEP MY STATUTES AND MY JUDGMENTS:L# 5 THEN I WILL ESTABLISH THE THRONE OF THY KINGDOM UPON ISRAEL FOR EVER, ASM I PROMISED TO DAVID THY FATHER, SAYING, THERE SHALL NOT FAIL THEE A MAN UPON  THE THRONE OF ISRAEL.K# 6 BUT IF YE SHALL AT ALL TURN FROM FOLLOWING ME, YE OR YOUR CHILDREN, ANDDK WILL NOT KEEP MY COMMANDMENTS AND MY STATUTES WHICH I HAVE SET BEFORE YOU,M/ BUT GO AND SERVE OTHER GODS, AND WORSHIP THEM: K# 7 THEN WILL I CUT OFF ISRAEL OUT OF THE LAND WHICH I HAVE GIVEN THEM; ANDEL THIS HOUSE, WHICH I HAVE HALLOWED FOR MY NAME, WILL I CAST OUT OF MY SIGHT;= AND ISRAEL SHALL BE A PROVERB AND A BYWORD AMONG ALL PEOPLE:DK# 8 AND AT THIS HOUSE, WHICH IS HIGH, EVERY ONE THAT PASSETH BY IT SHALL BEFL ASTONISHED, AND SHALL HISS; AND THEY SHALL SAY, WHY HATH THE LORD DONE THUS# UNTO THIS LAND, AND TO THIS HOUSE?NG# 9 AND THEY SHALL ANSWER, BECAUSE THEY FORSOOK THE LORD THEIR GOD, WHO J BROUGHT FORTH THEIR FATHERS OUT OF THE LAND OF EGYPT, AND HAVE TAKEN HOLDK UPON OTHER GODS, AND HAVE WORSHIPPED THEM, AND SERVED THEM: THEREFORE HATHI* THE LORD BROUGHT UPON THEM ALL THIS EVIL.K# 10 AND IT CAME TO PASS AT THE END OF TWENTY YEARS, WHEN SOLOMON HAD BUILTI< THE TWO HOUSES, THE HOUSE OF THE LORD, AND THE KINGS HOUSE,K# 11 (NOW HIRAM THE KING OF TYRE HAD FURNISHED SOLOMON WITH CEDAR TREES ANDNG FIR TREES, AND WITH GOLD, ACCORDING TO ALL HIS DESIRE,) THAT THEN KINGH9 SOLOMON GAVE HIRAM TWENTY CITIES IN THE LAND OF GALILEE. K# 12 AND HIRAM CAME OUT FROM TYRE TO SEE THE CITIES WHICH SOLOMON HAD GIVEN  HIM; AND THEY PLEASED HIM NOT.HM# 13 AND HE SAID, WHAT CITIES ARE THESE WHICH THOU HAST GIVEN ME, MY BROTHER?H4 AND HE CALLED THEM THE LAND OF CABUL UNTO THIS DAY.9# 14 AND HIRAM SENT TO THE KING SIXSCORE TALENTS OF GOLD.1I# 15 AND THIS IS THE REASON OF THE LEVY WHICH KING SOLOMON RAISED; FOR TOFK BUILD THE HOUSE OF THE LORD, AND HIS OWN HOUSE, AND MILLO, AND THE WALL OFM. JERUSALEM, AND HAZOR, AND MEGIDDO, AND GEZER.I# 16 FOR PHARAOH KING OF EGYPT HAD GONE UP, AND TAKEN GEZER, AND BURNT IT M WITH FIRE, AND SLAIN THE CANAANITES THAT DWELT IN THE CITY, AND GIVEN IT FORS, A PRESENT UNTO HIS DAUGHTER, SOLOMONS WIFE.7# 17 AND SOLOMON BUILT GEZER, AND BETHHORON THE NETHER,D<# 18 AND BAALATH, AND TADMOR IN THE WILDERNESS, IN THE LAND,E# 19 AND ALL THE CITIES OF STORE THAT SOLOMON HAD, AND CITIES FOR HISDI CHARIOTS, AND CITIES FOR HIS HORSEMEN, AND THAT WHICH SOLOMON DESIRED TORI BUILD IN JERUSALEM, AND IN LEBANON, AND IN ALL THE LAND OF HIS DOMINION.HM# 20 AND ALL THE PEOPLE THAT WERE LEFT OF THE AMORITES, HITTITES, PERIZZITES,SB HIVITES, AND JEBUSITES, WHICH WERE NOT OF THE CHILDREN OF ISRAEL,L# 21 THEIR CHILDREN THAT WERE LEFT AFTER THEM IN THE LAND, WHOM THE CHILDRENM OF ISRAEL ALSO WERE NOT ABLE UTTERLY TO DESTROY, UPON THOSE DID SOLOMON LEVYE( A TRIBUTE OF BONDSERVICE UNTO THIS DAY.M# 22 BUT OF THE CHILDREN OF ISRAEL DID SOLOMON MAKE NO BONDMEN: BUT THEY WERESL MEN OF WAR, AND HIS SERVANTS, AND HIS PRINCES, AND HIS CAPTAINS, AND RULERS# OF HIS CHARIOTS, AND HIS HORSEMEN.WL# 23 THESE WERE THE CHIEF OF THE OFFICERS THAT WERE OVER SOLOMONS WORK, FIVEM HUNDRED AND FIFTY, WHICH BARE RULE OVER THE PEOPLE THAT WROUGHT IN THE WORK.RJ# 24 BUT PHARAOHS DAUGHTER CAME UP OUT OF THE CITY OF DAVID UNTO HER HOUSE: WHICH SOLOMON HAD BUILT FOR HER: THEN DID HE BUILD MILLO.J# 25 AND THREE TIMES IN A YEAR DID SOLOMON OFFER BURNT OFFERINGS AND PEACEL OFFERINGS UPON THE ALTAR 00i0Y/<%X>%+%O-%TADATADATAWHICH HE BUILT UNTO THE LORD, AND HE BURNT INCENSEC UPON THE ALTAR THAT WAS BEFORE THE LORD. SO HE FINISHED THE HOUSE.3I# 26 AND KING SOLOMON MADE A NAVY OF SHIPS IN EZIONGEBER, WHICH IS BESIDEH9 ELOTH, ON THE SHORE OF THE RED SEA, IN THE LAND OF EDOM.GK# 27 AND HIRAM SENT IN THE NAVY HIS SERVANTS, SHIPMEN THAT HAD KNOWLEDGE OF ' THE SEA, WITH THE SERVANTS OF SOLOMON.FK# 28 AND THEY CAME TO OPHIR, AND FETCHED FROM THENCE GOLD, FOUR HUNDRED ANDO0 TWENTY TALENTS, AND BROUGHT IT TO KING SOLOMON. = CHAPTER 10 EK# 1 AND WHEN THE QUEEN OF SHEBA HEARD OF THE FAME OF SOLOMON CONCERNING THEH= NAME OF THE LORD, SHE CAME TO PROVE HIM WITH HARD QUESTIONS.AL# 2 AND SHE CAME TO JERUSALEM WITH A VERY GREAT TRAIN, WITH CAMELS THAT BAREJ SPICES, AND VERY MUCH GOLD, AND PRECIOUS STONES: AND WHEN SHE WAS COME TO= SOLOMON, SHE COMMUNED WITH HIM OF ALL THAT WAS IN HER HEART.SL# 3 AND SOLOMON TOLD HER ALL HER QUESTIONS: THERE WAS NOT ANY THING HID FROM! THE KING, WHICH HE TOLD HER NOT.GK# 4 AND WHEN THE QUEEN OF SHEBA HAD SEEN ALL SOLOMONS WISDOM, AND THE HOUSE  THAT HE HAD BUILT,NG# 5 AND THE MEAT OF HIS TABLE, AND THE SITTING OF HIS SERVANTS, AND THETL ATTENDANCE OF HIS MINISTERS, AND THEIR APPAREL, AND HIS CUPBEARERS, AND HISI ASCENT BY WHICH HE WENT UP UNTO THE HOUSE OF THE LORD; THERE WAS NO MOREC SPIRIT IN HER. K# 6 AND SHE SAID TO THE KING, IT WAS A TRUE REPORT THAT I HEARD IN MINE OWNR$ LAND OF THY ACTS AND OF THY WISDOM.J# 7 HOWBEIT I BELIEVED NOT THE WORDS, UNTIL I CAME, AND MINE EYES HAD SEENE IT: AND, BEHOLD, THE HALF WAS NOT TOLD ME: THY WISDOM AND PROSPERITYT" EXCEEDETH THE FAME WHICH I HEARD.L# 8 HAPPY ARE THY MEN, HAPPY ARE THESE THY SERVANTS, WHICH STAND CONTINUALLY' BEFORE THEE, AND THAT HEAR THY WISDOM.L# 9 BLESSED BE THE LORD THY GOD, WHICH DELIGHTED IN THEE, TO SET THEE ON THEL THRONE OF ISRAEL: BECAUSE THE LORD LOVED ISRAEL FOR EVER, THEREFORE MADE HE' THEE KING, TO DO JUDGMENT AND JUSTICE.TH# 10 AND SHE GAVE THE KING AN HUNDRED AND TWENTY TALENTS OF GOLD, AND OFF SPICES VERY GREAT STORE, AND PRECIOUS STONES: THERE CAME NO MORE SUCHL ABUNDANCE OF SPICES AS THESE WHICH THE QUEEN OF SHEBA GAVE TO KING SOLOMON.I# 11 AND THE NAVY ALSO OF HIRAM, THAT BROUGHT GOLD FROM OPHIR, BROUGHT INA= FROM OPHIR GREAT PLENTY OF ALMUG TREES, AND PRECIOUS STONES.DL# 12 AND THE KING MADE OF THE ALMUG TREES PILLARS FOR THE HOUSE OF THE LORD,N AND FOR THE KINGS HOUSE, HARPS ALSO AND PSALTERIES FOR SINGERS: THERE CAME NO/ SUCH ALMUG TREES, NOR WERE SEEN UNTO THIS DAY.OM# 13 AND KING SOLOMON GAVE UNTO THE QUEEN OF SHEBA ALL HER DESIRE, WHATSOEVERRJ SHE ASKED, BESIDE THAT WHICH SOLOMON GAVE HER OF HIS ROYAL BOUNTY. SO SHE: TURNED AND WENT TO HER OWN COUNTRY, SHE AND HER SERVANTS.L# 14 NOW THE WEIGHT OF GOLD THAT CAME TO SOLOMON IN ONE YEAR WAS SIX HUNDRED$ THREESCORE AND SIX TALENTS OF GOLD,L# 15 BESIDE THAT HE HAD OF THE MERCHANTMEN, AND OF THE TRAFFICK OF THE SPICEG MERCHANTS, AND OF ALL THE KINGS OF ARABIA, AND OF THE GOVERNORS OF THEN COUNTRY.NJ# 16 AND KING SOLOMON MADE TWO HUNDRED TARGETS OF BEATEN GOLD: SIX HUNDRED$ SHEKELS OF GOLD WENT TO ONE TARGET.J# 17 AND HE MADE THREE HUNDRED SHIELDS OF BEATEN GOLD; THREE POUND OF GOLDH WENT TO ONE SHIELD: AND THE KING PUT THEM IN THE HOUSE OF THE FOREST OF LEBANON.SM# 18 MOREOVER THE KING MADE A GREAT THRONE OF IVORY, AND OVERLAID IT WITH THEB BEST GOLD. J# 19 THE THRONE HAD SIX STEPS, AND THE TOP OF THE THRONE WAS ROUND BEHIND:L AND THERE WERE STAYS ON EITHER SIDE ON THE PLACE OF THE SEAT, AND TWO LIONS STOOD BESIDE THE STAYS.K# 20 AND TWELVE LIONS STOOD THERE ON THE ONE SIDE AND ON THE OTHER UPON THE7 SIX STEPS: THERE WAS NOT THE LIKE MADE IN ANY KINGDOM.RM# 21 AND ALL KING SOLOMONS DRINKING VESSELS WERE OF GOLD, AND ALL THE VESSELSEN OF THE HOUSE OF THE FOREST OF LEBANON WERE OF PURE GOLD; NONE WERE OF SILVER:4 IT WAS NOTHING ACCOUNTED OF IN THE DAYS OF SOLOMON.M# 22 FOR THE KING HAD AT SEA A NAVY OF THARSHISH WITH THE NAVY OF HIRAM: ONCEYM IN THREE YEARS CAME THE NAVY OF THARSHISH, BRINGING GOLD, AND SILVER, IVORY,Y AND APE00i0E0D%5%T6%! !S, AND PEACOCKS.K# 23 SO KING SOLOMON EXCEEDED ALL THE KINGS OF THE EARTH FOR RICHES AND FOR  WISDOM.K# 24 AND ALL THE EARTH SOUGHT TO SOLOMON, TO HEAR HIS WISDOM, WHICH GOD HAD  PUT IN HIS HEART.K# 25 AND THEY BROUGHT EVERY MAN HIS PRESENT, VESSELS OF SILVER, AND VESSELSFN OF GOLD, AND GARMENTS, AND ARMOUR, AND SPICES, HORSES, AND MULES, A RATE YEAR BY YEAR.AF# 26 AND SOLOMON GATHERED TOGETHER CHARIOTS AND HORSEMEN: AND HE HAD AJ THOUSAND AND FOUR HUNDRED CHARIOTS, AND TWELVE THOUSAND HORSEMEN, WHOM HEE BESTOWED IN THE CITIES FOR CHARIOTS, AND WITH THE KING AT JERUSALEM.RK# 27 AND THE KING MADE SILVER TO BE IN JERUSALEM AS STONES, AND CEDARS MADEID HE TO BE AS THE SYCOMORE TREES THAT ARE IN THE VALE, FOR ABUNDANCE.K# 28 AND SOLOMON HAD HORSES BROUGHT OUT OF EGYPT, AND LINEN YARN: THE KINGS . MERCHANTS RECEIVED THE LINEN YARN AT A PRICE.K# 29 AND A CHARIOT CAME UP AND WENT OUT OF EGYPT FOR SIX HUNDRED SHEKELS OF K SILVER, AND AN HORSE FOR AN HUNDRED AND FIFTY: AND SO FOR ALL THE KINGS OFEK THE HITTITES, AND FOR THE KINGS OF SYRIA, DID THEY BRING THEM OUT BY THEIRL MEANS.7 = CHAPTER 11 AL# 1 BUT KING SOLOMON LOVED MANY STRANGE WOMEN, TOGETHER WITH THE DAUGHTER OFN PHARAOH, WOMEN OF THE MOABITES, AMMONITES, EDOMITES, ZIDONIANS, AND HITTITES:F# 2 OF THE NATIONS CONCERNING WHICH THE LORD SAID UNTO THE CHILDREN OFM ISRAEL, YE SHALL NOT GO IN TO THEM, NEITHER SHALL THEY COME IN UNTO YOU: FORXK SURELY THEY WILL TURN AWAY YOUR HEART AFTER THEIR GODS: SOLOMON CLAVE UNTOF THESE IN LOVE.OM# 3 AND HE HAD SEVEN HUNDRED WIVES, PRINCESSES, AND THREE HUNDRED CONCUBINES:L% AND HIS WIVES TURNED AWAY HIS HEART.GM# 4 FOR IT CAME TO PASS, WHEN SOLOMON WAS OLD, THAT HIS WIVES TURNED AWAY HISEM HEART AFTER OTHER GODS: AND HIS HEART WAS NOT PERFECT WITH THE LORD HIS GOD,T& AS WAS THE HEART OF DAVID HIS FATHER.L# 5 FOR SOLOMON WENT AFTER ASHTORETH THE GODDESS OF THE ZIDONIANS, AND AFTER) MILCOM THE ABOMINATION OF THE AMMONITES.AK# 6 AND SOLOMON DID EVIL IN THE SIGHT OF THE LORD, AND WENT NOT FULLY AFTERN# THE LORD, AS DID DAVID HIS FATHER.SH# 7 THEN DID SOLOMON BUILD AN HIGH PLACE FOR CHEMOSH, THE ABOMINATION OFL MOAB, IN THE HILL THAT IS BEFORE JERUSALEM, AND FOR MOLECH, THE ABOMINATION OF THE CHILDREN OF AMMON.J# 8 AND LIKEWISE DID HE FOR ALL HIS STRANGE WIVES, WHICH BURNT INCENSE AND SACRIFICED UNTO THEIR GODS.J# 9 AND THE LORD WAS ANGRY WITH SOLOMON, BECAUSE HIS HEART WAS TURNED FROM; THE LORD GOD OF ISRAEL, WHICH HAD APPEARED UNTO HIM TWICE,IM# 10 AND HAD COMMANDED HIM CONCERNING THIS THING, THAT HE SHOULD NOT GO AFTER ; OTHER GODS: BUT HE KEPT NOT THAT WHICH THE LORD COMMANDED.HM# 11 WHEREFORE THE LORD SAID UNTO SOLOMON, FORASMUCH AS THIS IS DONE OF THEE,CK AND THOU HAST NOT KEPT MY COVENANT AND MY STATUTES, WHICH I HAVE COMMANDEDLH THEE, I WILL SURELY REND THE KINGDOM FROM THEE, AND WILL GIVE IT TO THY SERVANT.HM# 12 NOTWITHSTANDING IN THY DAYS I WILL NOT DO IT FOR DAVID THY FATHERS SAKE: / BUT I WILL REND IT OUT OF THE HAND OF THY SON. M# 13 HOWBEIT I WILL NOT REND AWAY ALL THE KINGDOM; BUT WILL GIVE ONE TRIBE TOOI THY SON FOR DAVID MY SERVANTS SAKE, AND FOR JERUSALEMS SAKE WHICH I HAVET CHOSEN.M# 14 AND THE LORD STIRRED UP AN ADVERSARY UNTO SOLOMON, HADAD THE EDOMITE: HEY WAS OF THE KINGS SEED IN EDOM.IM# 15 FOR IT CAME TO PASS, WHEN DAVID WAS IN EDOM, AND JOAB THE CAPTAIN OF THEEM HOST WAS GONE UP TO BURY THE SLAIN, AFTER HE HAD SMITTEN EVERY MALE IN EDOM;AL# 16 (FOR SIX MONTHS DID JOAB REMAIN THERE WITH ALL ISRAEL, UNTIL HE HAD CUT OFF EVERY MALE IN EDOM:)AJ# 17 THAT HADAD FLED, HE AND CERTAIN EDOMITES OF HIS FATHERS SERVANTS WITH7 HIM, TO GO INTO EGYPT; HADAD BEING YET A LITTLE CHILD.L# 18 AND THEY AROSE OUT OF MIDIAN, AND CAME TO PARAN: AND THEY TOOK MEN WITHM THEM OUT OF PARAN, AND THEY CAME TO EGYPT, UNTO PHARAOH KING OF EGYPT; WHICH B GAVE HIM AN HOUSE, AND APPOINTED HIM VICTUALS, AND GAVE HIM LAND.J# 19 AND HADAD FOUND GREAT FAVOUR IN THE SIGHT OF PHARAOH, SO THAT HE GAVEJ HIM TO WIFE THE SISTER OF HIS OWN WIFE, THE SISTER OF TAHPENES THE QUEEN.H# 20 A00i0Y/<%X>%+%O-%TADATADATAND THE SISTER OF TAHPENES BARE HIM GENUBATH HIS SON, WHOM TAHPENESK WEANED IN PHARAOHS HOUSE: AND GENUBATH WAS IN PHARAOHS HOUSEHOLD AMONG THER SONS OF PHARAOH.AI# 21 AND WHEN HADAD HEARD IN EGYPT THAT DAVID SLEPT WITH HIS FATHERS, AND J THAT JOAB THE CAPTAIN OF THE HOST WAS DEAD, HADAD SAID TO PHARAOH, LET ME+ DEPART, THAT I MAY GO TO MINE OWN COUNTRY.DI# 22 THEN PHARAOH SAID UNTO HIM, BUT WHAT HAST THOU LACKED WITH ME, THAT, K BEHOLD, THOU SEEKEST TO GO TO THINE OWN COUNTRY? AND HE ANSWERED, NOTHING:T HOWBEIT LET ME GO IN ANY WISE.NH# 23 AND GOD STIRRED HIM UP ANOTHER ADVERSARY, REZON THE SON OF ELIADAH,2 WHICH FLED FROM HIS LORD HADADEZER KING OF ZOBAH:M# 24 AND HE GATHERED MEN UNTO HIM, AND BECAME CAPTAIN OVER A BAND, WHEN DAVIDTN SLEW THEM OF ZOBAH: AND THEY WENT TO DAMASCUS, AND DWELT THEREIN, AND REIGNED IN DAMASCUS.OJ# 25 AND HE WAS AN ADVERSARY TO ISRAEL ALL THE DAYS OF SOLOMON, BESIDE THEI MISCHIEF THAT HADAD DID: AND HE ABHORRED ISRAEL, AND REIGNED OVER SYRIA.NE# 26 AND JEROBOAM THE SON OF NEBAT, AN EPHRATHITE OF ZEREDA, SOLOMONSDM SERVANT, WHOSE MOTHERS NAME WAS ZERUAH, A WIDOW WOMAN, EVEN HE LIFTED UP HISH HAND AGAINST THE KING. H# 27 AND THIS WAS THE CAUSE THAT HE LIFTED UP HIS HAND AGAINST THE KING:H SOLOMON BUILT MILLO, AND REPAIRED THE BREACHES OF THE CITY OF DAVID HIS FATHER.L# 28 AND THE MAN JEROBOAM WAS A MIGHTY MAN OF VALOUR: AND SOLOMON SEEING THEL YOUNG MAN THAT HE WAS INDUSTRIOUS, HE MADE HIM RULER OVER ALL THE CHARGE OF THE HOUSE OF JOSEPH. J# 29 AND IT CAME TO PASS AT THAT TIME WHEN JEROBOAM WENT OUT OF JERUSALEM,L THAT THE PROPHET AHIJAH THE SHILONITE FOUND HIM IN THE WAY; AND HE HAD CLADB HIMSELF WITH A NEW GARMENT; AND THEY TWO WERE ALONE IN THE FIELD:M# 30 AND AHIJAH CAUGHT THE NEW GARMENT THAT WAS ON HIM, AND RENT IT IN TWELVET PIECES:L# 31 AND HE SAID TO JEROBOAM, TAKE THEE TEN PIECES: FOR THUS SAITH THE LORD,F THE GOD OF ISRAEL, BEHOLD, I WILL REND THE KINGDOM OUT OF THE HAND OF+ SOLOMON, AND WILL GIVE TEN TRIBES TO THEE:EE# 32 (BUT HE SHALL HAVE ONE TRIBE FOR MY SERVANT DAVIDS SAKE, AND FOREG JERUSALEMS SAKE, THE CITY WHICH I HAVE CHOSEN OUT OF ALL THE TRIBES OFD ISRAEL:)DJ# 33 BECAUSE THAT THEY HAVE FORSAKEN ME, AND HAVE WORSHIPPED ASHTORETH THEN GODDESS OF THE ZIDONIANS, CHEMOSH THE GOD OF THE MOABITES, AND MILCOM THE GODN OF THE CHILDREN OF AMMON, AND HAVE NOT WALKED IN MY WAYS, TO DO THAT WHICH ISK RIGHT IN MINE EYES, AND TO KEEP MY STATUTES AND MY JUDGMENTS, AS DID DAVIDL HIS FATHER.J# 34 HOWBEIT I WILL NOT TAKE THE WHOLE KINGDOM OUT OF HIS HAND: BUT I WILLL MAKE HIM PRINCE ALL THE DAYS OF HIS LIFE FOR DAVID MY SERVANTS SAKE, WHOM I8 CHOSE, BECAUSE HE KEPT MY COMMANDMENTS AND MY STATUTES:L# 35 BUT I WILL TAKE THE KINGDOM OUT OF HIS SONS HAND, AND WILL GIVE IT UNTO THEE, EVEN TEN TRIBES.BM# 36 AND UNTO HIS SON WILL I GIVE ONE TRIBE, THAT DAVID MY SERVANT MAY HAVE AWN LIGHT ALWAY BEFORE ME IN JERUSALEM, THE CITY WHICH I HAVE CHOSEN ME TO PUT MY NAME THERE.I# 37 AND I WILL TAKE THEE, AND THOU SHALT REIGN ACCORDING TO ALL THAT THYO. SOUL DESIRETH, AND SHALT BE KING OVER ISRAEL.L# 38 AND IT SHALL BE, IF THOU WILT HEARKEN UNTO ALL THAT I COMMAND THEE, ANDL WILT WALK IN MY WAYS, AND DO THAT IS RIGHT IN MY SIGHT, TO KEEP MY STATUTESL AND MY COMMANDMENTS, AS DAVID MY SERVANT DID; THAT I WILL BE WITH THEE, ANDI BUILD THEE A SURE HOUSE, AS I BUILT FOR DAVID, AND WILL GIVE ISRAEL UNTOB THEE.E# 39 AND I WILL FOR THIS AFFLICT THE SEED OF DAVID, BUT NOT FOR EVER.L# 40 SOLOMON SOUGHT THEREFORE TO KILL JEROBOAM. AND JEROBOAM AROSE, AND FLEDL INTO EGYPT, UNTO SHISHAK KING OF EGYPT, AND WAS IN EGYPT UNTIL THE DEATH OF SOLOMON.UF# 41 AND THE REST OF THE ACTS OF SOLOMON, AND ALL THAT HE DID, AND HISA WISDOM, ARE THEY NOT WRITTEN IN THE BOOK OF THE ACTS OF SOLOMON?VM# 42 AND THE TIME THAT SOLOMON REIGNED IN JERUSALEM OVER ALL ISRAEL WAS FORTYI YEARS.RL# 43 AND SOLOMON SLEPT WITH HIS FATHERS, AND WAS BURIED IN THE CITY OF DAVID7 HIS FATHER: AND REHOBOAM HIS SON REIGNED IN HIS STEAD. = CHAPTER 12 LM# 1 AND REHOBOAM WENT TO S00i0E0D%5%T6%! !HECHEM: FOR ALL ISRAEL WERE COME TO SHECHEM TO MAKEP HIM KING.G# 2 AND IT CAME TO PASS, WHEN JEROBOAM THE SON OF NEBAT, WHO WAS YET INSL EGYPT, HEARD OF IT, (FOR HE WAS FLED FROM THE PRESENCE OF KING SOLOMON, AND JEROBOAM DWELT IN EGYPT;)K# 3 THAT THEY SENT AND CALLED HIM. AND JEROBOAM AND ALL THE CONGREGATION OFI. ISRAEL CAME, AND SPAKE UNTO REHOBOAM, SAYING,K# 4 THY FATHER MADE OUR YOKE GRIEVOUS: NOW THEREFORE MAKE THOU THE GRIEVOUSEM SERVICE OF THY FATHER, AND HIS HEAVY YOKE WHICH HE PUT UPON US, LIGHTER, AND  WE WILL SERVE THEE.L# 5 AND HE SAID UNTO THEM, DEPART YET FOR THREE DAYS, THEN COME AGAIN TO ME. AND THE PEOPLE DEPARTED.YK# 6 AND KING REHOBOAM CONSULTED WITH THE OLD MEN, THAT STOOD BEFORE SOLOMONRL HIS FATHER WHILE HE YET LIVED, AND SAID, HOW DO YE ADVISE THAT I MAY ANSWER THIS PEOPLE?IH# 7 AND THEY SPAKE UNTO HIM, SAYING, IF THOU WILT BE A SERVANT UNTO THISL PEOPLE THIS DAY, AND WILT SERVE THEM, AND ANSWER THEM, AND SPEAK GOOD WORDS2 TO THEM, THEN THEY WILL BE THY SERVANTS FOR EVER.L# 8 BUT HE FORSOOK THE COUNSEL OF THE OLD MEN, WHICH THEY HAD GIVEN HIM, ANDJ CONSULTED WITH THE YOUNG MEN THAT WERE GROWN UP WITH HIM, AND WHICH STOOD BEFORE HIM:G# 9 AND HE SAID UNTO THEM, WHAT COUNSEL GIVE YE THAT WE MAY ANSWER THISLN PEOPLE, WHO HAVE SPOKEN TO ME, SAYING, MAKE THE YOKE WHICH THY FATHER DID PUT UPON US LIGHTER?YJ# 10 AND THE YOUNG MEN THAT WERE GROWN UP WITH HIM SPAKE UNTO HIM, SAYING,I THUS SHALT THOU SPEAK UNTO THIS PEOPLE THAT SPAKE UNTO THEE, SAYING, THY N FATHER MADE OUR YOKE HEAVY, BUT MAKE THOU IT LIGHTER UNTO US; THUS SHALT THOUH SAY UNTO THEM, MY LITTLE FINGER SHALL BE THICKER THAN MY FATHERS LOINS.L# 11 AND NOW WHEREAS MY FATHER DID LADE YOU WITH A HEAVY YOKE, I WILL ADD TOL YOUR YOKE: MY FATHER HATH CHASTISED YOU WITH WHIPS, BUT I WILL CHASTISE YOU WITH SCORPIONS.J# 12 SO JEROBOAM AND ALL THE PEOPLE CAME TO REHOBOAM THE THIRD DAY, AS THE< KING HAD APPOINTED, SAYING, COME TO ME AGAIN THE THIRD DAY.G# 13 AND THE KING ANSWERED THE PEOPLE ROUGHLY, AND FORSOOK THE OLD MENSV COUNSEL THAT THEY GAVE HIM;L# 14 AND SPAKE TO THEM AFTER THE COUNSEL OF THE YOUNG MEN, SAYING, MY FATHERL MADE YOUR YOKE HEAVY, AND I WILL ADD TO YOUR YOKE: MY FATHER ALSO CHASTISED8 YOU WITH WHIPS, BUT I WILL CHASTISE YOU WITH SCORPIONS.M# 15 WHEREFORE THE KING HEARKENED NOT UNTO THE PEOPLE; FOR THE CAUSE WAS FROMAK THE LORD, THAT HE MIGHT PERFORM HIS SAYING, WHICH THE LORD SPAKE BY AHIJAHY. THE SHILONITE UNTO JEROBOAM THE SON OF NEBAT.M# 16 SO WHEN ALL ISRAEL SAW THAT THE KING HEARKENED NOT UNTO THEM, THE PEOPLEHJ ANSWERED THE KING, SAYING, WHAT PORTION HAVE WE IN DAVID? NEITHER HAVE WEK INHERITANCE IN THE SON OF JESSE: TO YOUR TENTS, O ISRAEL: NOW SEE TO THINE 7 OWN HOUSE, DAVID. SO ISRAEL DEPARTED UNTO THEIR TENTS.WJ# 17 BUT AS FOR THE CHILDREN OF ISRAEL WHICH DWELT IN THE CITIES OF JUDAH, REHOBOAM REIGNED OVER THEM.M# 18 THEN KING REHOBOAM SENT ADORAM, WHO WAS OVER THE TRIBUTE; AND ALL ISRAELIL STONED HIM WITH STONES, THAT HE DIED. THEREFORE KING REHOBOAM MADE SPEED TO1 GET HIM UP TO HIS CHARIOT, TO FLEE TO JERUSALEM. A# 19 SO ISRAEL REBELLED AGAINST THE HOUSE OF DAVID UNTO THIS DAY.RM# 20 AND IT CAME TO PASS, WHEN ALL ISRAEL HEARD THAT JEROBOAM WAS COME AGAIN,UL THAT THEY SENT AND CALLED HIM UNTO THE CONGREGATION, AND MADE HIM KING OVERN ALL ISRAEL: THERE WAS NONE THAT FOLLOWED THE HOUSE OF DAVID, BUT THE TRIBE OF JUDAH ONLY.K# 21 AND WHEN REHOBOAM WAS COME TO JERUSALEM, HE ASSEMBLED ALL THE HOUSE OFIL JUDAH, WITH THE TRIBE OF BENJAMIN, AN HUNDRED AND FOURSCORE THOUSAND CHOSENM MEN, WHICH WERE WARRIORS, TO FIGHT AGAINST THE HOUSE OF ISRAEL, TO BRING THE . KINGDOM AGAIN TO REHOBOAM THE SON OF SOLOMON.C# 22 BUT THE WORD OF GOD CAME UNTO SHEMAIAH THE MAN OF GOD, SAYING,SM# 23 SPEAK UNTO REHOBOAM, THE SON OF SOLOMON, KING OF JUDAH, AND UNTO ALL THETG HOUSE OF JUDAH AND BENJAMIN, AND TO THE REMNANT OF THE PEOPLE, SAYING,OM# 24 THUS SAITH THE LORD, YE SHALL NOT GO UP, NOR FIGHT AGAINST YOUR BRETHRENON THE CHILDREN OF ISRAEL: RETURN EVERY MAN TO HIS HOUSE; FOR TH00i0Y/<%X>%+%O-%TADATADATAIS THING IS FROMN ME. THEY HEARKENED THEREFORE TO THE WORD OF THE LORD, AND RETURNED TO DEPART,# ACCORDING TO THE WORD OF THE LORD.OI# 25 THEN JEROBOAM BUILT SHECHEM IN MOUNT EPHRAIM, AND DWELT THEREIN; ANDI( WENT OUT FROM THENCE, AND BUILT PENUEL.H# 26 AND JEROBOAM SAID IN HIS HEART, NOW SHALL THE KINGDOM RETURN TO THE HOUSE OF DAVID:E# 27 IF THIS PEOPLE GO UP TO DO SACRIFICE IN THE HOUSE OF THE LORD AT K JERUSALEM, THEN SHALL THE HEART OF THIS PEOPLE TURN AGAIN UNTO THEIR LORD,OJ EVEN UNTO REHOBOAM KING OF JUDAH, AND THEY SHALL KILL ME, AND GO AGAIN TO REHOBOAM KING OF JUDAH.K# 28 WHEREUPON THE KING TOOK COUNSEL, AND MADE TWO CALVES OF GOLD, AND SAIDSL UNTO THEM, IT IS TOO MUCH FOR YOU TO GO UP TO JERUSALEM: BEHOLD THY GODS, O8 ISRAEL, WHICH BROUGHT THEE UP OUT OF THE LAND OF EGYPT.?# 29 AND HE SET THE ONE IN BETHEL, AND THE OTHER PUT HE IN DAN.LK# 30 AND THIS THING BECAME A SIN: FOR THE PEOPLE WENT TO WORSHIP BEFORE THET ONE, EVEN UNTO DAN.K# 31 AND HE MADE AN HOUSE OF HIGH PLACES, AND MADE PRIESTS OF THE LOWEST OFH0 THE PEOPLE, WHICH WERE NOT OF THE SONS OF LEVI.L# 32 AND JEROBOAM ORDAINED A FEAST IN THE EIGHTH MONTH, ON THE FIFTEENTH DAYL OF THE MONTH, LIKE UNTO THE FEAST THAT IS IN JUDAH, AND HE OFFERED UPON THEN ALTAR. SO DID HE IN BETHEL, SACRIFICING UNTO THE CALVES THAT HE HAD MADE: ANDF HE PLACED IN BETHEL THE PRIESTS OF THE HIGH PLACES WHICH HE HAD MADE.K# 33 SO HE OFFERED UPON THE ALTAR WHICH HE HAD MADE IN BETHEL THE FIFTEENTHK DAY OF THE EIGHTH MONTH, EVEN IN THE MONTH WHICH HE HAD DEVISED OF HIS OWNM HEART; AND ORDAINED A FEAST UNTO THE CHILDREN OF ISRAEL: AND HE OFFERED UPONF THE ALTAR, AND BURNT INCENSE. = CHAPTER 13 M# 1 AND, BEHOLD, THERE CAME A MAN OF GOD OUT OF JUDAH BY THE WORD OF THE LORDA> UNTO BETHEL: AND JEROBOAM STOOD BY THE ALTAR TO BURN INCENSE.G# 2 AND HE CRIED AGAINST THE ALTAR IN THE WORD OF THE LORD, AND SAID, OEJ ALTAR, ALTAR, THUS SAITH THE LORD; BEHOLD, A CHILD SHALL BE BORN UNTO THEL HOUSE OF DAVID, JOSIAH BY NAME; AND UPON THEE SHALL HE OFFER THE PRIESTS OFK THE HIGH PLACES THAT BURN INCENSE UPON THEE, AND MENS BONES SHALL BE BURNTE UPON THEE.FL# 3 AND HE GAVE A SIGN THE SAME DAY, SAYING, THIS IS THE SIGN WHICH THE LORDM HATH SPOKEN; BEHOLD, THE ALTAR SHALL BE RENT, AND THE ASHES THAT ARE UPON ITS SHALL BE POURED OUT.RJ# 4 AND IT CAME TO PASS, WHEN KING JEROBOAM HEARD THE SAYING OF THE MAN OFM GOD, WHICH HAD CRIED AGAINST THE ALTAR IN BETHEL, THAT HE PUT FORTH HIS HANDOK FROM THE ALTAR, SAYING, LAY HOLD ON HIM . AND HIS HAND, WHICH HE PUT FORTHTE AGAINST HIM, DRIED UP, SO THAT HE COULD NOT PULL IT IN AGAIN TO HIM.LE# 5 THE ALTAR ALSO WAS RENT, AND THE ASHES POURED OUT FROM THE ALTAR,TN ACCORDING TO THE SIGN WHICH THE MAN OF GOD HAD GIVEN BY THE WORD OF THE LORD.L# 6 AND THE KING ANSWERED AND SAID UNTO THE MAN OF GOD, INTREAT NOW THE FACEM OF THE LORD THY GOD, AND PRAY FOR ME, THAT MY HAND MAY BE RESTORED ME AGAIN.IJ AND THE MAN OF GOD BESOUGHT THE LORD, AND THE KINGS HAND WAS RESTORED HIM$ AGAIN, AND BECAME AS IT WAS BEFORE.I# 7 AND THE KING SAID UNTO THE MAN OF GOD, COME HOME WITH ME, AND REFRESHG( THYSELF, AND I WILL GIVE THEE A REWARD.J# 8 AND THE MAN OF GOD SAID UNTO THE KING, IF THOU WILT GIVE ME HALF THINEL HOUSE, I WILL NOT GO IN WITH THEE, NEITHER WILL I EAT BREAD NOR DRINK WATER IN THIS PLACE: K# 9 FOR SO WAS IT CHARGED ME BY THE WORD OF THE LORD, SAYING, EAT NO BREAD,HB NOR DRINK WATER, NOR TURN AGAIN BY THE SAME WAY THAT THOU CAMEST.H# 10 SO HE WENT ANOTHER WAY, AND RETURNED NOT BY THE WAY THAT HE CAME TO BETHEL.M# 11 NOW THERE DWELT AN OLD PROPHET IN BETHEL; AND HIS SONS CAME AND TOLD HIM I ALL THE WORKS THAT THE MAN OF GOD HAD DONE THAT DAY IN BETHEL: THE WORDSIH WHICH HE HAD SPOKEN UNTO THE KING, THEM THEY TOLD ALSO TO THEIR FATHER.M# 12 AND THEIR FATHER SAID UNTO THEM, WHAT WAY WENT HE? FOR HIS SONS HAD SEEN 5 WHAT WAY THE MAN OF GOD WENT, WHICH CAME FROM JUDAH.RJ# 13 AND HE SAID UNTO HIS SONS, SADDLE ME THE ASS. SO THEY SADDLED HIM THE ASS: AND HE RODE THEREON,K# 14 AND WENT AFTER THE MAN OF G00i0E0D%5%T6%! !OD, AND FOUND HIM SITTING UNDER AN OAK: ANDEI HE SAID UNTO HIM, ART THOU THE MAN OF GOD THAT CAMEST FROM JUDAH? AND HEF SAID, I AM.=# 15 THEN HE SAID UNTO HIM, COME HOME WITH ME, AND EAT BREAD.IJ# 16 AND HE SAID, I MAY NOT RETURN WITH THEE, NOR GO IN WITH THEE: NEITHER: WILL I EAT BREAD NOR DRINK WATER WITH THEE IN THIS PLACE:K# 17 FOR IT WAS SAID TO ME BY THE WORD OF THE LORD, THOU SHALT EAT NO BREADDI NOR DRINK WATER THERE, NOR TURN AGAIN TO GO BY THE WAY THAT THOU CAMEST.DJ# 18 HE SAID UNTO HIM, I AM A PROPHET ALSO AS THOU ART; AND AN ANGEL SPAKEM UNTO ME BY THE WORD OF THE LORD, SAYING, BRING HIM BACK WITH THEE INTO THINEAD HOUSE, THAT HE MAY EAT BREAD AND DRINK WATER. BUT HE LIED UNTO HIM.H# 19 SO HE WENT BACK WITH HIM, AND DID EAT BREAD IN HIS HOUSE, AND DRANK WATER.AM# 20 AND IT CAME TO PASS, AS THEY SAT AT THE TABLE, THAT THE WORD OF THE LORD - CAME UNTO THE PROPHET THAT BROUGHT HIM BACK:H# 21 AND HE CRIED UNTO THE MAN OF GOD THAT CAME FROM JUDAH, SAYING, THUSL SAITH THE LORD, FORASMUCH AS THOU HAST DISOBEYED THE MOUTH OF THE LORD, ANDE HAST NOT KEPT THE COMMANDMENT WHICH THE LORD THY GOD COMMANDED THEE, K# 22 BUT CAMEST BACK, AND HAST EATEN BREAD AND DRUNK WATER IN THE PLACE, OFJ THE WHICH THE LORD DID SAY TO THEE, EAT NO BREAD, AND DRINK NO WATER; THY: CARCASE SHALL NOT COME UNTO THE SEPULCHRE OF THY FATHERS.K# 23 AND IT CAME TO PASS, AFTER HE HAD EATEN BREAD, AND AFTER HE HAD DRUNK, M THAT HE SADDLED FOR HIM THE ASS, TO WIT, FOR THE PROPHET WHOM HE HAD BROUGHTT BACK.K# 24 AND WHEN HE WAS GONE, A LION MET HIM BY THE WAY, AND SLEW HIM: AND HISTM CARCASE WAS CAST IN THE WAY, AND THE ASS STOOD BY IT, THE LION ALSO STOOD BYN THE CARCASE.EM# 25 AND, BEHOLD, MEN PASSED BY, AND SAW THE CARCASE CAST IN THE WAY, AND THENN LION STANDING BY THE CARCASE: AND THEY CAME AND TOLD IT IN THE CITY WHERE THE OLD PROPHET DWELT.DK# 26 AND WHEN THE PROPHET THAT BROUGHT HIM BACK FROM THE WAY HEARD THEREOF,EN HE SAID, IT IS THE MAN OF GOD, WHO WAS DISOBEDIENT UNTO THE WORD OF THE LORD:N THEREFORE THE LORD HATH DELIVERED HIM UNTO THE LION, WHICH HATH TORN HIM, ANDG SLAIN HIM, ACCORDING TO THE WORD OF THE LORD, WHICH HE SPAKE UNTO HIM.BJ# 27 AND HE SPAKE TO HIS SONS, SAYING, SADDLE ME THE ASS. AND THEY SADDLED HIM.EK# 28 AND HE WENT AND FOUND HIS CARCASE CAST IN THE WAY, AND THE ASS AND THEHK LION STANDING BY THE CARCASE: THE LION HAD NOT EATEN THE CARCASE, NOR TORNT THE ASS.RL# 29 AND THE PROPHET TOOK UP THE CARCASE OF THE MAN OF GOD, AND LAID IT UPONM THE ASS, AND BROUGHT IT BACK: AND THE OLD PROPHET CAME TO THE CITY, TO MOURNI AND TO BURY HIM. I# 30 AND HE LAID HIS CARCASE IN HIS OWN GRAVE; AND THEY MOURNED OVER HIM,O SAYING, ALAS, MY BROTHER!M# 31 AND IT CAME TO PASS, AFTER HE HAD BURIED HIM, THAT HE SPAKE TO HIS SONS,TM SAYING, WHEN I AM DEAD, THEN BURY ME IN THE SEPULCHRE WHEREIN THE MAN OF GOD * IS BURIED; LAY MY BONES BESIDE HIS BONES:L# 32 FOR THE SAYING WHICH HE CRIED BY THE WORD OF THE LORD AGAINST THE ALTARJ IN BETHEL, AND AGAINST ALL THE HOUSES OF THE HIGH PLACES WHICH ARE IN THE. CITIES OF SAMARIA, SHALL SURELY COME TO PASS.M# 33 AFTER THIS THING JEROBOAM RETURNED NOT FROM HIS EVIL WAY, BUT MADE AGAINL OF THE LOWEST OF THE PEOPLE PRIESTS OF THE HIGH PLACES: WHOSOEVER WOULD, HEF CONSECRATED HIM, AND HE BECAME ONE OF THE PRIESTS OF THE HIGH PLACES.I# 34 AND THIS THING BECAME SIN UNTO THE HOUSE OF JEROBOAM, EVEN TO CUT ITO7 OFF, AND TO DESTROY IT FROM OFF THE FACE OF THE EARTH.H = CHAPTER 14 T6# 1 AT THAT TIME ABIJAH THE SON OF JEROBOAM FELL SICK.L# 2 AND JEROBOAM SAID TO HIS WIFE, ARISE, I PRAY THEE, AND DISGUISE THYSELF,K THAT THOU BE NOT KNOWN TO BE THE WIFE OF JEROBOAM; AND GET THEE TO SHILOH:N BEHOLD, THERE IS AHIJAH THE PROPHET, WHICH TOLD ME THAT I SHOULD BE KING OVER THIS PEOPLE.MK# 3 AND TAKE WITH THEE TEN LOAVES, AND CRACKNELS, AND A CRUSE OF HONEY, ANDE> GO TO HIM: HE SHALL TELL THEE WHAT SHALL BECOME OF THE CHILD.M# 4 AND JEROBOAMS WIFE DID SO, AND AROSE, AND WENT TO SHILOH, AND CAME TO THEEN HOUSE OF AHIJAH. BUT AHIJAH COULD NOT SEE; FO00i0Y/<%X>%+%O-%TADATADATAR HIS EYES WERE SET BY REASON OF HIS AGE.EM# 5 AND THE LORD SAID UNTO AHIJAH, BEHOLD, THE WIFE OF JEROBOAM COMETH TO ASKNJ A THING OF THEE FOR HER SON; FOR HE IS SICK: THUS AND THUS SHALT THOU SAYL UNTO HER: FOR IT SHALL BE, WHEN SHE COMETH IN, THAT SHE SHALL FEIGN HERSELF TO BE ANOTHER WOMAN.RM# 6 AND IT WAS SO, WHEN AHIJAH HEARD THE SOUND OF HER FEET, AS SHE CAME IN ATLJ THE DOOR, THAT HE SAID, COME IN, THOU WIFE OF JEROBOAM; WHY FEIGNEST THOUA THYSELF TO BE ANOTHER? FOR I AM SENT TO THEE WITH HEAVY TIDINGS.RH# 7 GO, TELL JEROBOAM, THUS SAITH THE LORD GOD OF ISRAEL, FORASMUCH AS IH EXALTED THEE FROM AMONG THE PEOPLE, AND MADE THEE PRINCE OVER MY PEOPLE ISRAEL,L# 8 AND RENT THE KINGDOM AWAY FROM THE HOUSE OF DAVID, AND GAVE IT THEE: ANDN YET THOU HAST NOT BEEN AS MY SERVANT DAVID, WHO KEPT MY COMMANDMENTS, AND WHON FOLLOWED ME WITH ALL HIS HEART, TO DO THAT ONLY WHICH WAS RIGHT IN MINE EYES;J# 9 BUT HAST DONE EVIL ABOVE ALL THAT WERE BEFORE THEE: FOR THOU HAST GONEN AND MADE THEE OTHER GODS, AND MOLTEN IMAGES, TO PROVOKE ME TO ANGER, AND HAST CAST ME BEHIND THY BACK:CI# 10 THEREFORE, BEHOLD, I WILL BRING EVIL UPON THE HOUSE OF JEROBOAM, ANDEN WILL CUT OFF FROM JEROBOAM HIM THAT PISSETH AGAINST THE WALL, AND HIM THAT ISK SHUT UP AND LEFT IN ISRAEL, AND WILL TAKE AWAY THE REMNANT OF THE HOUSE OFD: JEROBOAM, AS A MAN TAKETH AWAY DUNG, TILL IT BE ALL GONE.L# 11 HIM THAT DIETH OF JEROBOAM IN THE CITY SHALL THE DOGS EAT; AND HIM THATL DIETH IN THE FIELD SHALL THE FOWLS OF THE AIR EAT: FOR THE LORD HATH SPOKEN IT.I# 12 ARISE THOU THEREFORE, GET THEE TO THINE OWN HOUSE: AND WHEN THY FEETE* ENTER INTO THE CITY, THE CHILD SHALL DIE.E# 13 AND ALL ISRAEL SHALL MOURN FOR HIM, AND BURY HIM: FOR HE ONLY OFWJ JEROBOAM SHALL COME TO THE GRAVE, BECAUSE IN HIM THERE IS FOUND SOME GOOD> THING TOWARD THE LORD GOD OF ISRAEL IN THE HOUSE OF JEROBOAM.K# 14 MOREOVER THE LORD SHALL RAISE HIM UP A KING OVER ISRAEL, WHO SHALL CUTS8 OFF THE HOUSE OF JEROBOAM THAT DAY: BUT WHAT? EVEN NOW.K# 15 FOR THE LORD SHALL SMITE ISRAEL, AS A REED IS SHAKEN IN THE WATER, ANDTF HE SHALL ROOT UP ISRAEL OUT OF THIS GOOD LAND, WHICH HE GAVE TO THEIRI FATHERS, AND SHALL SCATTER THEM BEYOND THE RIVER, BECAUSE THEY HAVE MADEH+ THEIR GROVES, PROVOKING THE LORD TO ANGER.,I# 16 AND HE SHALL GIVE ISRAEL UP BECAUSE OF THE SINS OF JEROBOAM, WHO DIDA! SIN, AND WHO MADE ISRAEL TO SIN.MM# 17 AND JEROBOAMS WIFE AROSE, AND DEPARTED, AND CAME TO TIRZAH: AND WHEN SHEE3 CAME TO THE THRESHOLD OF THE DOOR, THE CHILD DIED;5J# 18 AND THEY BURIED HIM; AND ALL ISRAEL MOURNED FOR HIM, ACCORDING TO THEG WORD OF THE LORD, WHICH HE SPAKE BY THE HAND OF HIS SERVANT AHIJAH THET PROPHET.HM# 19 AND THE REST OF THE ACTS OF JEROBOAM, HOW HE WARRED, AND HOW HE REIGNED,OG BEHOLD, THEY ARE WRITTEN IN THE BOOK OF THE CHRONICLES OF THE KINGS OF  ISRAEL.J# 20 AND THE DAYS WHICH JEROBOAM REIGNED WERE TWO AND TWENTY YEARS: AND HE@ SLEPT WITH HIS FATHERS, AND NADAB HIS SON REIGNED IN HIS STEAD.M# 21 AND REHOBOAM THE SON OF SOLOMON REIGNED IN JUDAH. REHOBOAM WAS FORTY AND H ONE YEARS OLD WHEN HE BEGAN TO REIGN, AND HE REIGNED SEVENTEEN YEARS ING JERUSALEM, THE CITY WHICH THE LORD DID CHOOSE OUT OF ALL THE TRIBES OFFN ISRAEL, TO PUT HIS NAME THERE. AND HIS MOTHERS NAME WAS NAAMAH AN AMMONITESS.J# 22 AND JUDAH DID EVIL IN THE SIGHT OF THE LORD, AND THEY PROVOKED HIM TOH JEALOUSY WITH THEIR SINS WHICH THEY HAD COMMITTED, ABOVE ALL THAT THEIR FATHERS HAD DONE.K# 23 FOR THEY ALSO BUILT THEM HIGH PLACES, AND IMAGES, AND GROVES, ON EVERYN' HIGH HILL, AND UNDER EVERY GREEN TREE.EM# 24 AND THERE WERE ALSO SODOMITES IN THE LAND: AND THEY DID ACCORDING TO ALLML THE ABOMINATIONS OF THE NATIONS WHICH THE LORD CAST OUT BEFORE THE CHILDREN OF ISRAEL.EI# 25 AND IT CAME TO PASS IN THE FIFTH YEAR OF KING REHOBOAM, THAT SHISHAK ) KING OF EGYPT CAME UP AGAINST JERUSALEM: E# 26 AND HE TOOK AWAY THE TREASURES OF THE HOUSE OF THE LORD, AND THEHN TREASURES OF THE KINGS HOUSE; HE EVEN TOOK AWAY ALL: AND HE TOOK AWAY ALL THE( SHIELDS OF GOLD WHICH SOLOMON HAD M00i0E0D%5%T6%! !ADE.M# 27 AND KING REHOBOAM MADE IN THEIR STEAD BRASEN SHIELDS, AND COMMITTED THEM K UNTO THE HANDS OF THE CHIEF OF THE GUARD, WHICH KEPT THE DOOR OF THE KINGSA HOUSE.FK# 28 AND IT WAS SO, WHEN THE KING WENT INTO THE HOUSE OF THE LORD, THAT THE ? GUARD BARE THEM, AND BROUGHT THEM BACK INTO THE GUARD CHAMBER.SL# 29 NOW THE REST OF THE ACTS OF REHOBOAM, AND ALL THAT HE DID, ARE THEY NOT= WRITTEN IN THE BOOK OF THE CHRONICLES OF THE KINGS OF JUDAH?TD# 30 AND THERE WAS WAR BETWEEN REHOBOAM AND JEROBOAM ALL THEIR DAYS.L# 31 AND REHOBOAM SLEPT WITH HIS FATHERS, AND WAS BURIED WITH HIS FATHERS INM THE CITY OF DAVID. AND HIS MOTHERS NAME WAS NAAMAH AN AMMONITESS. AND ABIJAM HIS SON REIGNED IN HIS STEAD. = CHAPTER 15 H# 1 NOW IN THE EIGHTEENTH YEAR OF KING JEROBOAM THE SON OF NEBAT REIGNED ABIJAM OVER JUDAH.J# 2 THREE YEARS REIGNED HE IN JERUSALEM. AND HIS MOTHERS NAME WAS MAACHAH, THE DAUGHTER OF ABISHALOM. I# 3 AND HE WALKED IN ALL THE SINS OF HIS FATHER, WHICH HE HAD DONE BEFORE J HIM: AND HIS HEART WAS NOT PERFECT WITH THE LORD HIS GOD, AS THE HEART OF DAVID HIS FATHER.H# 4 NEVERTHELESS FOR DAVIDS SAKE DID THE LORD HIS GOD GIVE HIM A LAMP IND JERUSALEM, TO SET UP HIS SON AFTER HIM, AND TO ESTABLISH JERUSALEM:G# 5 BECAUSE DAVID DID THAT WHICH WAS RIGHT IN THE EYES OF THE LORD, ANDIJ TURNED NOT ASIDE FROM ANY THING THAT HE COMMANDED HIM ALL THE DAYS OF HIS4 LIFE, SAVE ONLY IN THE MATTER OF URIAH THE HITTITE.M# 6 AND THERE WAS WAR BETWEEN REHOBOAM AND JEROBOAM ALL THE DAYS OF HIS LIFE. I# 7 NOW THE REST OF THE ACTS OF ABIJAM, AND ALL THAT HE DID, ARE THEY NOTSK WRITTEN IN THE BOOK OF THE CHRONICLES OF THE KINGS OF JUDAH? AND THERE WASM! WAR BETWEEN ABIJAM AND JEROBOAM. I# 8 AND ABIJAM SLEPT WITH HIS FATHERS; AND THEY BURIED HIM IN THE CITY OFS- DAVID: AND ASA HIS SON REIGNED IN HIS STEAD.OI# 9 AND IN THE TWENTIETH YEAR OF JEROBOAM KING OF ISRAEL REIGNED ASA OVERV JUDAH. J# 10 AND FORTY AND ONE YEARS REIGNED HE IN JERUSALEM. AND HIS MOTHERS NAME( WAS MAACHAH, THE DAUGHTER OF ABISHALOM.K# 11 AND ASA DID THAT WHICH WAS RIGHT IN THE EYES OF THE LORD, AS DID DAVIDT HIS FATHER.H# 12 AND HE TOOK AWAY THE SODOMITES OUT OF THE LAND, AND REMOVED ALL THE! IDOLS THAT HIS FATHERS HAD MADE.SG# 13 AND ALSO MAACHAH HIS MOTHER, EVEN HER HE REMOVED FROM BEING QUEEN,SI BECAUSE SHE HAD MADE AN IDOL IN A GROVE; AND ASA DESTROYED HER IDOL, AND  BURNT IT BY THE BROOK KIDRON.F# 14 BUT THE HIGH PLACES WERE NOT REMOVED: NEVERTHELESS ASAS HEART WAS$ PERFECT WITH THE LORD ALL HIS DAYS.I# 15 AND HE BROUGHT IN THE THINGS WHICH HIS FATHER HAD DEDICATED, AND THEEL THINGS WHICH HIMSELF HAD DEDICATED, INTO THE HOUSE OF THE LORD, SILVER, AND GOLD, AND VESSELS.DL# 16 AND THERE WAS WAR BETWEEN ASA AND BAASHA KING OF ISRAEL ALL THEIR DAYS.K# 17 AND BAASHA KING OF ISRAEL WENT UP AGAINST JUDAH, AND BUILT RAMAH, THATGC HE MIGHT NOT SUFFER ANY TO GO OUT OR COME IN TO ASA KING OF JUDAH..D# 18 THEN ASA TOOK ALL THE SILVER AND THE GOLD THAT WERE LEFT IN THEN TREASURES OF THE HOUSE OF THE LORD, AND THE TREASURES OF THE KINGS HOUSE, ANDH DELIVERED THEM INTO THE HAND OF HIS SERVANTS: AND KING ASA SENT THEM TOL BENHADAD, THE SON OF TABRIMON, THE SON OF HEZION, KING OF SYRIA, THAT DWELT AT DAMASCUS, SAYING,DI# 19 THERE IS A LEAGUE BETWEEN ME AND THEE, AND BETWEEN MY FATHER AND THY M FATHER: BEHOLD, I HAVE SENT UNTO THEE A PRESENT OF SILVER AND GOLD; COME AND I BREAK THY LEAGUE WITH BAASHA KING OF ISRAEL, THAT HE MAY DEPART FROM ME.OL# 20 SO BENHADAD HEARKENED UNTO KING ASA, AND SENT THE CAPTAINS OF THE HOSTSH WHICH HE HAD AGAINST THE CITIES OF ISRAEL, AND SMOTE IJON, AND DAN, ANDC ABELBETHMAACHAH, AND ALL CINNEROTH, WITH ALL THE LAND OF NAPHTALI.FE# 21 AND IT CAME TO PASS, WHEN BAASHA HEARD THEREOF, THAT HE LEFT OFFI( BUILDING OF RAMAH, AND DWELT IN TIRZAH.E# 22 THEN KING ASA MADE A PROCLAMATION THROUGHOUT ALL JUDAH; NONE WASOJ EXEMPTED: AND THEY TOOK AWAY THE STONES OF RAMAH, AND THE TIMBER THEREOF,M WHEREWITH BAASHA HAD BUILDED; AND KING ASA BUILT WITH THEM GEBA OF BENJAMIN,T AND MIZPAH.M# 23 THE00i0Y/<%X>%+%O-%TADATADATA REST OF ALL THE ACTS OF ASA, AND ALL HIS MIGHT, AND ALL THAT HE DID,AG AND THE CITIES WHICH HE BUILT, ARE THEY NOT WRITTEN IN THE BOOK OF THEIM CHRONICLES OF THE KINGS OF JUDAH? NEVERTHELESS IN THE TIME OF HIS OLD AGE HEI WAS DISEASED IN HIS FEET.K# 24 AND ASA SLEPT WITH HIS FATHERS, AND WAS BURIED WITH HIS FATHERS IN THEAH CITY OF DAVID HIS FATHER: AND JEHOSHAPHAT HIS SON REIGNED IN HIS STEAD.K# 25 AND NADAB THE SON OF JEROBOAM BEGAN TO REIGN OVER ISRAEL IN THE SECONDJ> YEAR OF ASA KING OF JUDAH, AND REIGNED OVER ISRAEL TWO YEARS.K# 26 AND HE DID EVIL IN THE SIGHT OF THE LORD, AND WALKED IN THE WAY OF HISY8 FATHER, AND IN HIS SIN WHEREWITH HE MADE ISRAEL TO SIN.F# 27 AND BAASHA THE SON OF AHIJAH, OF THE HOUSE OF ISSACHAR, CONSPIREDF AGAINST HIM; AND BAASHA SMOTE HIM AT GIBBETHON, WHICH BELONGED TO THE? PHILISTINES; FOR NADAB AND ALL ISRAEL LAID SIEGE TO GIBBETHON.SI# 28 EVEN IN THE THIRD YEAR OF ASA KING OF JUDAH DID BAASHA SLAY HIM, AND  REIGNED IN HIS STEAD.I# 29 AND IT CAME TO PASS, WHEN HE REIGNED, THAT HE SMOTE ALL THE HOUSE OFDL JEROBOAM; HE LEFT NOT TO JEROBOAM ANY THAT BREATHED, UNTIL HE HAD DESTROYEDJ HIM, ACCORDING UNTO THE SAYING OF THE LORD, WHICH HE SPAKE BY HIS SERVANT AHIJAH THE SHILONITE:G# 30 BECAUSE OF THE SINS OF JEROBOAM WHICH HE SINNED, AND WHICH HE MADEIL ISRAEL SIN, BY HIS PROVOCATION WHEREWITH HE PROVOKED THE LORD GOD OF ISRAEL TO ANGER.I# 31 NOW THE REST OF THE ACTS OF NADAB, AND ALL THAT HE DID, ARE THEY NOTI> WRITTEN IN THE BOOK OF THE CHRONICLES OF THE KINGS OF ISRAEL?L# 32 AND THERE WAS WAR BETWEEN ASA AND BAASHA KING OF ISRAEL ALL THEIR DAYS.M# 33 IN THE THIRD YEAR OF ASA KING OF JUDAH BEGAN BAASHA THE SON OF AHIJAH TOI8 REIGN OVER ALL ISRAEL IN TIRZAH, TWENTY AND FOUR YEARS.G# 34 AND HE DID EVIL IN THE SIGHT OF THE LORD, AND WALKED IN THE WAY OFE: JEROBOAM, AND IN HIS SIN WHEREWITH HE MADE ISRAEL TO SIN. = CHAPTER 16 L# 1 THEN THE WORD OF THE LORD CAME TO JEHU THE SON OF HANANI AGAINST BAASHA, SAYING,M# 2 FORASMUCH AS I EXALTED THEE OUT OF THE DUST, AND MADE THEE PRINCE OVER MYWM PEOPLE ISRAEL; AND THOU HAST WALKED IN THE WAY OF JEROBOAM, AND HAST MADE MYR> PEOPLE ISRAEL TO SIN, TO PROVOKE ME TO ANGER WITH THEIR SINS;J# 3 BEHOLD, I WILL TAKE AWAY THE POSTERITY OF BAASHA, AND THE POSTERITY OFI HIS HOUSE; AND WILL MAKE THY HOUSE LIKE THE HOUSE OF JEROBOAM THE SON OF  NEBAT. I# 4 HIM THAT DIETH OF BAASHA IN THE CITY SHALL THE DOGS EAT; AND HIM THATT; DIETH OF HIS IN THE FIELDS SHALL THE FOWLS OF THE AIR EAT.MK# 5 NOW THE REST OF THE ACTS OF BAASHA, AND WHAT HE DID, AND HIS MIGHT, ARE G THEY NOT WRITTEN IN THE BOOK OF THE CHRONICLES OF THE KINGS OF ISRAEL?PL# 6 SO BAASHA SLEPT WITH HIS FATHERS, AND WAS BURIED IN TIRZAH: AND ELAH HIS SON REIGNED IN HIS STEAD.L# 7 AND ALSO BY THE HAND OF THE PROPHET JEHU THE SON OF HANANI CAME THE WORDN OF THE LORD AGAINST BAASHA, AND AGAINST HIS HOUSE, EVEN FOR ALL THE EVIL THATL HE DID IN THE SIGHT OF THE LORD, IN PROVOKING HIM TO ANGER WITH THE WORK OFK HIS HANDS, IN BEING LIKE THE HOUSE OF JEROBOAM; AND BECAUSE HE KILLED HIM.AK# 8 IN THE TWENTY AND SIXTH YEAR OF ASA KING OF JUDAH BEGAN ELAH THE SON OFN2 BAASHA TO REIGN OVER ISRAEL IN TIRZAH, TWO YEARS.J# 9 AND HIS SERVANT ZIMRI, CAPTAIN OF HALF HIS CHARIOTS, CONSPIRED AGAINSTN HIM, AS HE WAS IN TIRZAH, DRINKING HIMSELF DRUNK IN THE HOUSE OF ARZA STEWARD OF HIS HOUSE IN TIRZAH.G# 10 AND ZIMRI WENT IN AND SMOTE HIM, AND KILLED HIM, IN THE TWENTY AND = SEVENTH YEAR OF ASA KING OF JUDAH, AND REIGNED IN HIS STEAD.NJ# 11 AND IT CAME TO PASS, WHEN HE BEGAN TO REIGN, AS SOON AS HE SAT ON HISG THRONE, THAT HE SLEW ALL THE HOUSE OF BAASHA: HE LEFT HIM NOT ONE THAT F PISSETH AGAINST A WALL, NEITHER OF HIS KINSFOLKS, NOR OF HIS FRIENDS.M# 12 THUS DID ZIMRI DESTROY ALL THE HOUSE OF BAASHA, ACCORDING TO THE WORD OFK= THE LORD, WHICH HE SPAKE AGAINST BAASHA BY JEHU THE PROPHET.NL# 13 FOR ALL THE SINS OF BAASHA, AND THE SINS OF ELAH HIS SON, BY WHICH THEYK SINNED, AND BY WHICH THEY MADE ISRAEL TO SIN, IN PROVOKING THE LORD GOD OFD% ISRAEL TO ANGER WITH 00i1E0D%5%T6%! !THEIR VANITIES.NH# 14 NOW THE REST OF THE ACTS OF ELAH, AND ALL THAT HE DID, ARE THEY NOT> WRITTEN IN THE BOOK OF THE CHRONICLES OF THE KINGS OF ISRAEL?H# 15 IN THE TWENTY AND SEVENTH YEAR OF ASA KING OF JUDAH DID ZIMRI REIGNL SEVEN DAYS IN TIRZAH. AND THE PEOPLE WERE ENCAMPED AGAINST GIBBETHON, WHICH BELONGED TO THE PHILISTINES.3K# 16 AND THE PEOPLE THAT WERE ENCAMPED HEARD SAY, ZIMRI HATH CONSPIRED, ANDNM HATH ALSO SLAIN THE KING: WHEREFORE ALL ISRAEL MADE OMRI, THE CAPTAIN OF THEE- HOST, KING OVER ISRAEL THAT DAY IN THE CAMP.RG# 17 AND OMRI WENT UP FROM GIBBETHON, AND ALL ISRAEL WITH HIM, AND THEYH BESIEGED TIRZAH.II# 18 AND IT CAME TO PASS, WHEN ZIMRI SAW THAT THE CITY WAS TAKEN, THAT HENL WENT INTO THE PALACE OF THE KINGS HOUSE, AND BURNT THE KINGS HOUSE OVER HIM WITH FIRE, AND DIED.IL# 19 FOR HIS SINS WHICH HE SINNED IN DOING EVIL IN THE SIGHT OF THE LORD, INL WALKING IN THE WAY OF JEROBOAM, AND IN HIS SIN WHICH HE DID, TO MAKE ISRAEL TO SIN.L# 20 NOW THE REST OF THE ACTS OF ZIMRI, AND HIS TREASON THAT HE WROUGHT, AREG THEY NOT WRITTEN IN THE BOOK OF THE CHRONICLES OF THE KINGS OF ISRAEL?BG# 21 THEN WERE THE PEOPLE OF ISRAEL DIVIDED INTO TWO PARTS: HALF OF THEWM PEOPLE FOLLOWED TIBNI THE SON OF GINATH, TO MAKE HIM KING; AND HALF FOLLOWEDG OMRI.H# 22 BUT THE PEOPLE THAT FOLLOWED OMRI PREVAILED AGAINST THE PEOPLE THATC FOLLOWED TIBNI THE SON OF GINATH: SO TIBNI DIED, AND OMRI REIGNED.,J# 23 IN THE THIRTY AND FIRST YEAR OF ASA KING OF JUDAH BEGAN OMRI TO REIGN; OVER ISRAEL, TWELVE YEARS: SIX YEARS REIGNED HE IN TIRZAH.EL# 24 AND HE BOUGHT THE HILL SAMARIA OF SHEMER FOR TWO TALENTS OF SILVER, ANDM BUILT ON THE HILL, AND CALLED THE NAME OF THE CITY WHICH HE BUILT, AFTER THEW, NAME OF SHEMER, OWNER OF THE HILL, SAMARIA.J# 25 BUT OMRI WROUGHT EVIL IN THE EYES OF THE LORD, AND DID WORSE THAN ALL THAT WERE BEFORE HIM.J# 26 FOR HE WALKED IN ALL THE WAY OF JEROBOAM THE SON OF NEBAT, AND IN HISJ SIN WHEREWITH HE MADE ISRAEL TO SIN, TO PROVOKE THE LORD GOD OF ISRAEL TO ANGER WITH THEIR VANITIES.EI# 27 NOW THE REST OF THE ACTS OF OMRI WHICH HE DID, AND HIS MIGHT THAT HEOK SHEWED, ARE THEY NOT WRITTEN IN THE BOOK OF THE CHRONICLES OF THE KINGS OFC ISRAEL?L# 28 SO OMRI SLEPT WITH HIS FATHERS, AND WAS BURIED IN SAMARIA: AND AHAB HIS SON REIGNED IN HIS STEAD.J# 29 AND IN THE THIRTY AND EIGHTH YEAR OF ASA KING OF JUDAH BEGAN AHAB THEH SON OF OMRI TO REIGN OVER ISRAEL: AND AHAB THE SON OF OMRI REIGNED OVER( ISRAEL IN SAMARIA TWENTY AND TWO YEARS.I# 30 AND AHAB THE SON OF OMRI DID EVIL IN THE SIGHT OF THE LORD ABOVE ALLE THAT WERE BEFORE HIM.L# 31 AND IT CAME TO PASS, AS IF IT HAD BEEN A LIGHT THING FOR HIM TO WALK INH THE SINS OF JEROBOAM THE SON OF NEBAT, THAT HE TOOK TO WIFE JEZEBEL THEI DAUGHTER OF ETHBAAL KING OF THE ZIDONIANS, AND WENT AND SERVED BAAL, ANDA WORSHIPPED HIM.J# 32 AND HE REARED UP AN ALTAR FOR BAAL IN THE HOUSE OF BAAL, WHICH HE HAD BUILT IN SAMARIA.H# 33 AND AHAB MADE A GROVE; AND AHAB DID MORE TO PROVOKE THE LORD GOD OFC ISRAEL TO ANGER THAN ALL THE KINGS OF ISRAEL THAT WERE BEFORE HIM.LM# 34 IN HIS DAYS DID HIEL THE BETHELITE BUILD JERICHO: HE LAID THE FOUNDATION N THEREOF IN ABIRAM HIS FIRSTBORN, AND SET UP THE GATES THEREOF IN HIS YOUNGESTK SON SEGUB, ACCORDING TO THE WORD OF THE LORD, WHICH HE SPAKE BY JOSHUA THES SON OF NUN. = CHAPTER 17 L# 1 AND ELIJAH THE TISHBITE, WHO WAS OF THE INHABITANTS OF GILEAD, SAID UNTOM AHAB, AS THE LORD GOD OF ISRAEL LIVETH, BEFORE WHOM I STAND, THERE SHALL NOTE7 BE DEW NOR RAIN THESE YEARS, BUT ACCORDING TO MY WORD.I3# 2 AND THE WORD OF THE LORD CAME UNTO HIM, SAYING,EI# 3 GET THEE HENCE, AND TURN THEE EASTWARD, AND HIDE THYSELF BY THE BROOKH CHERITH, THAT IS BEFORE JORDAN.M# 4 AND IT SHALL BE, THAT THOU SHALT DRINK OF THE BROOK; AND I HAVE COMMANDEDH THE RAVENS TO FEED THEE THERE.UK# 5 SO HE WENT AND DID ACCORDING UNTO THE WORD OF THE LORD: FOR HE WENT ANDF3 DWELT BY THE BROOK CHERITH, THAT IS BEFORE JORDAN.LL# 6 AND THE RAVENS BROUGHT HIM BREAD AND FLESH IN THE MORNING, AND BREAD AND1 FLESH IN 00i1Y/<%X>%+%O-%TADATADATATHE EVENING; AND HE DRANK OF THE BROOK.OM# 7 AND IT CAME TO PASS AFTER A WHILE, THAT THE BROOK DRIED UP, BECAUSE THEREE HAD BEEN NO RAIN IN THE LAND.3# 8 AND THE WORD OF THE LORD CAME UNTO HIM, SAYING,HL# 9 ARISE, GET THEE TO ZAREPHATH, WHICH BELONGETH TO ZIDON, AND DWELL THERE:> BEHOLD, I HAVE COMMANDED A WIDOW WOMAN THERE TO SUSTAIN THEE.K# 10 SO HE AROSE AND WENT TO ZAREPHATH. AND WHEN HE CAME TO THE GATE OF THE N CITY, BEHOLD, THE WIDOW WOMAN WAS THERE GATHERING OF STICKS: AND HE CALLED TOM HER, AND SAID, FETCH ME, I PRAY THEE, A LITTLE WATER IN A VESSEL, THAT I MAY  DRINK.AL# 11 AND AS SHE WAS GOING TO FETCH IT, HE CALLED TO HER, AND SAID, BRING ME,. I PRAY THEE, A MORSEL OF BREAD IN THINE HAND.H# 12 AND SHE SAID, AS THE LORD THY GOD LIVETH, I HAVE NOT A CAKE, BUT ANL HANDFUL OF MEAL IN A BARREL, AND A LITTLE OIL IN A CRUSE: AND, BEHOLD, I AML GATHERING TWO STICKS, THAT I MAY GO IN AND DRESS IT FOR ME AND MY SON, THAT WE MAY EAT IT, AND DIE.I# 13 AND ELIJAH SAID UNTO HER, FEAR NOT; GO AND DO AS THOU HAST SAID: BUTTN MAKE ME THEREOF A LITTLE CAKE FIRST, AND BRING IT UNTO ME, AND AFTER MAKE FOR THEE AND FOR THY SON.H# 14 FOR THUS SAITH THE LORD GOD OF ISRAEL, THE BARREL OF MEAL SHALL NOTH WASTE, NEITHER SHALL THE CRUSE OF OIL FAIL, UNTIL THE DAY THAT THE LORD SENDETH RAIN UPON THE EARTH.LM# 15 AND SHE WENT AND DID ACCORDING TO THE SAYING OF ELIJAH: AND SHE, AND HE, " AND HER HOUSE, DID EAT MANY DAYS.J# 16 AND THE BARREL OF MEAL WASTED NOT, NEITHER DID THE CRUSE OF OIL FAIL,= ACCORDING TO THE WORD OF THE LORD, WHICH HE SPAKE BY ELIJAH. K# 17 AND IT CAME TO PASS AFTER THESE THINGS, THAT THE SON OF THE WOMAN, THEK MISTRESS OF THE HOUSE, FELL SICK; AND HIS SICKNESS WAS SO SORE, THAT THERES WAS NO BREATH LEFT IN HIM.FI# 18 AND SHE SAID UNTO ELIJAH, WHAT HAVE I TO DO WITH THEE, O THOU MAN OF5N GOD? ART THOU COME UNTO ME TO CALL MY SIN TO REMEMBRANCE, AND TO SLAY MY SON?M# 19 AND HE SAID UNTO HER, GIVE ME THY SON. AND HE TOOK HIM OUT OF HER BOSOM, J AND CARRIED HIM UP INTO A LOFT, WHERE HE ABODE, AND LAID HIM UPON HIS OWN BED.LH# 20 AND HE CRIED UNTO THE LORD, AND SAID, O LORD MY GOD, HAST THOU ALSOE BROUGHT EVIL UPON THE WIDOW WITH WHOM I SOJOURN, BY SLAYING HER SON?SL# 21 AND HE STRETCHED HIMSELF UPON THE CHILD THREE TIMES, AND CRIED UNTO THEK LORD, AND SAID, O LORD MY GOD, I PRAY THEE, LET THIS CHILDS SOUL COME INTOC HIM AGAIN. K# 22 AND THE LORD HEARD THE VOICE OF ELIJAH; AND THE SOUL OF THE CHILD CAME INTO HIM AGAIN, AND HE REVIVED.L# 23 AND ELIJAH TOOK THE CHILD, AND BROUGHT HIM DOWN OUT OF THE CHAMBER INTOL THE HOUSE, AND DELIVERED HIM UNTO HIS MOTHER: AND ELIJAH SAID, SEE, THY SON LIVETH.L# 24 AND THE WOMAN SAID TO ELIJAH, NOW BY THIS I KNOW THAT THOU ART A MAN OF: GOD, AND THAT THE WORD OF THE LORD IN THY MOUTH IS TRUTH. = CHAPTER 18 DJ# 1 AND IT CAME TO PASS AFTER MANY DAYS, THAT THE WORD OF THE LORD CAME TON ELIJAH IN THE THIRD YEAR, SAYING, GO, SHEW THYSELF UNTO AHAB; AND I WILL SEND RAIN UPON THE EARTH.DM# 2 AND ELIJAH WENT TO SHEW HIMSELF UNTO AHAB. AND THERE WAS A SORE FAMINE INH SAMARIA.F# 3 AND AHAB CALLED OBADIAH, WHICH WAS THE GOVERNOR OF HIS HOUSE. (NOW! OBADIAH FEARED THE LORD GREATLY:SF# 4 FOR IT WAS SO, WHEN JEZEBEL CUT OFF THE PROPHETS OF THE LORD, THATK OBADIAH TOOK AN HUNDRED PROPHETS, AND HID THEM BY FIFTY IN A CAVE, AND FED  THEM WITH BREAD AND WATER.)G# 5 AND AHAB SAID UNTO OBADIAH, GO INTO THE LAND, UNTO ALL FOUNTAINS OF N WATER, AND UNTO ALL BROOKS: PERADVENTURE WE MAY FIND GRASS TO SAVE THE HORSES2 AND MULES ALIVE, THAT WE LOSE NOT ALL THE BEASTS.J# 6 SO THEY DIVIDED THE LAND BETWEEN THEM TO PASS THROUGHOUT IT: AHAB WENT= ONE WAY BY HIMSELF, AND OBADIAH WENT ANOTHER WAY BY HIMSELF.WK# 7 AND AS OBADIAH WAS IN THE WAY, BEHOLD, ELIJAH MET HIM: AND HE KNEW HIM,H> AND FELL ON HIS FACE, AND SAID, ART THOU THAT MY LORD ELIJAH?I# 8 AND HE ANSWERED HIM, I AM: GO, TELL THY LORD, BEHOLD, ELIJAH IS HERE. K# 9 AND HE SAID, WHAT HAVE I SINNED, THAT THOU WOULDEST DELIVER THY SERVANT # INTO THE HAND OF AHAB, TO SLAY ME?AJ# 10 A00i1E0D%5%T6%! !S THE LORD THY GOD LIVETH, THERE IS NO NATION OR KINGDOM, WHITHER MYN LORD HATH NOT SENT TO SEEK THEE: AND WHEN THEY SAID, HE IS NOT THERE; HE TOOK= AN OATH OF THE KINGDOM AND NATION, THAT THEY FOUND THEE NOT.LD# 11 AND NOW THOU SAYEST, GO, TELL THY LORD, BEHOLD, ELIJAH IS HERE.H# 12 AND IT SHALL COME TO PASS, AS SOON AS I AM GONE FROM THEE, THAT THEK SPIRIT OF THE LORD SHALL CARRY THEE WHITHER I KNOW NOT; AND SO WHEN I COMEHL AND TELL AHAB, AND HE CANNOT FIND THEE, HE SHALL SLAY ME: BUT I THY SERVANT FEAR THE LORD FROM MY YOUTH.EM# 13 WAS IT NOT TOLD MY LORD WHAT I DID WHEN JEZEBEL SLEW THE PROPHETS OF THENM LORD, HOW I HID AN HUNDRED MEN OF THE LORDS PROPHETS BY FIFTY IN A CAVE, ANDT FED THEM WITH BREAD AND WATER?WK# 14 AND NOW THOU SAYEST, GO, TELL THY LORD, BEHOLD, ELIJAH IS HERE: AND HEO SHALL SLAY ME.OI# 15 AND ELIJAH SAID, AS THE LORD OF HOSTS LIVETH, BEFORE WHOM I STAND, II) WILL SURELY SHEW MYSELF UNTO HIM TO DAY.TF# 16 SO OBADIAH WENT TO MEET AHAB, AND TOLD HIM: AND AHAB WENT TO MEET ELIJAH.L# 17 AND IT CAME TO PASS, WHEN AHAB SAW ELIJAH, THAT AHAB SAID UNTO HIM, ART THOU HE THAT TROUBLETH ISRAEL?WK# 18 AND HE ANSWERED, I HAVE NOT TROUBLED ISRAEL; BUT THOU, AND THY FATHERSEL HOUSE, IN THAT YE HAVE FORSAKEN THE COMMANDMENTS OF THE LORD, AND THOU HAST FOLLOWED BAALIM.DK# 19 NOW THEREFORE SEND, AND GATHER TO ME ALL ISRAEL UNTO MOUNT CARMEL, ANDFL THE PROPHETS OF BAAL FOUR HUNDRED AND FIFTY, AND THE PROPHETS OF THE GROVES+ FOUR HUNDRED, WHICH EAT AT JEZEBELS TABLE. L# 20 SO AHAB SENT UNTO ALL THE CHILDREN OF ISRAEL, AND GATHERED THE PROPHETS TOGETHER UNTO MOUNT CARMEL.L# 21 AND ELIJAH CAME UNTO ALL THE PEOPLE, AND SAID, HOW LONG HALT YE BETWEENL TWO OPINIONS? IF THE LORD BE GOD, FOLLOW HIM: BUT IF BAAL, THEN FOLLOW HIM.( AND THE PEOPLE ANSWERED HIM NOT A WORD.J# 22 THEN SAID ELIJAH UNTO THE PEOPLE, I, EVEN I ONLY, REMAIN A PROPHET OF= THE LORD; BUT BAALS PROPHETS ARE FOUR HUNDRED AND FIFTY MEN.RM# 23 LET THEM THEREFORE GIVE US TWO BULLOCKS; AND LET THEM CHOOSE ONE BULLOCKBJ FOR THEMSELVES, AND CUT IT IN PIECES, AND LAY IT ON WOOD, AND PUT NO FIREJ UNDER: AND I WILL DRESS THE OTHER BULLOCK, AND LAY IT ON WOOD, AND PUT NO FIRE UNDER:M# 24 AND CALL YE ON THE NAME OF YOUR GODS, AND I WILL CALL ON THE NAME OF THE M LORD: AND THE GOD THAT ANSWERETH BY FIRE, LET HIM BE GOD. AND ALL THE PEOPLEP& ANSWERED AND SAID, IT IS WELL SPOKEN.J# 25 AND ELIJAH SAID UNTO THE PROPHETS OF BAAL, CHOOSE YOU ONE BULLOCK FORN YOURSELVES, AND DRESS IT FIRST; FOR YE ARE MANY; AND CALL ON THE NAME OF YOUR GODS, BUT PUT NO FIRE UNDER.AM# 26 AND THEY TOOK THE BULLOCK WHICH WAS GIVEN THEM, AND THEY DRESSED IT, AND N CALLED ON THE NAME OF BAAL FROM MORNING EVEN UNTIL NOON, SAYING, O BAAL, HEARL US. BUT THERE WAS NO VOICE, NOR ANY THAT ANSWERED. AND THEY LEAPED UPON THE ALTAR WHICH WAS MADE.H# 27 AND IT CAME TO PASS AT NOON, THAT ELIJAH MOCKED THEM, AND SAID, CRYM ALOUD: FOR HE IS A GOD; EITHER HE IS TALKING, OR HE IS PURSUING, OR HE IS INA< A JOURNEY, OR PERADVENTURE HE SLEEPETH, AND MUST BE AWAKED.L# 28 AND THEY CRIED ALOUD, AND CUT THEMSELVES AFTER THEIR MANNER WITH KNIVES2 AND LANCETS, TILL THE BLOOD GUSHED OUT UPON THEM.M# 29 AND IT CAME TO PASS, WHEN MIDDAY WAS PAST, AND THEY PROPHESIED UNTIL THEEM TIME OF THE OFFERING OF THE EVENING SACRIFICE, THAT THERE WAS NEITHER VOICE,S* NOR ANY TO ANSWER, NOR ANY THAT REGARDED.H# 30 AND ELIJAH SAID UNTO ALL THE PEOPLE, COME NEAR UNTO ME. AND ALL THEJ PEOPLE CAME NEAR UNTO HIM. AND HE REPAIRED THE ALTAR OF THE LORD THAT WAS BROKEN DOWN.SL# 31 AND ELIJAH TOOK TWELVE STONES, ACCORDING TO THE NUMBER OF THE TRIBES OFM THE SONS OF JACOB, UNTO WHOM THE WORD OF THE LORD CAME, SAYING, ISRAEL SHALLA BE THY NAME:NJ# 32 AND WITH THE STONES HE BUILT AN ALTAR IN THE NAME OF THE LORD: AND HEI MADE A TRENCH ABOUT THE ALTAR, AS GREAT AS WOULD CONTAIN TWO MEASURES OFO SEED.J# 33 AND HE PUT THE WOOD IN ORDER, AND CUT THE BULLOCK IN PIECES, AND LAIDL HIM ON THE WOOD, AND SAID, FILL FOUR BARRELS WITH WATER, AND POUR IT ON THE" BURNT SACRIFICE, AND 00i1Y/<%X>%+%O-%TADATADATAON THE WOOD.M# 34 AND HE SAID, DO IT THE SECOND TIME. AND THEY DID IT THE SECOND TIME. ANDF? HE SAID, DO IT THE THIRD TIME. AND THEY DID IT THE THIRD TIME.AK# 35 AND THE WATER RAN ROUND ABOUT THE ALTAR; AND HE FILLED THE TRENCH ALSOH WITH WATER.C# 36 AND IT CAME TO PASS AT THE TIME OF THE OFFERING OF THE EVENINGRM SACRIFICE, THAT ELIJAH THE PROPHET CAME NEAR, AND SAID, LORD GOD OF ABRAHAM,SL ISAAC, AND OF ISRAEL, LET IT BE KNOWN THIS DAY THAT THOU ART GOD IN ISRAEL,N AND THAT I AM THY SERVANT, AND THAT I HAVE DONE ALL THESE THINGS AT THY WORD.J# 37 HEAR ME, O LORD, HEAR ME, THAT THIS PEOPLE MAY KNOW THAT THOU ART THE< LORD GOD, AND THAT THOU HAST TURNED THEIR HEART BACK AGAIN.J# 38 THEN THE FIRE OF THE LORD FELL, AND CONSUMED THE BURNT SACRIFICE, ANDL THE WOOD, AND THE STONES, AND THE DUST, AND LICKED UP THE WATER THAT WAS IN THE TRENCH.M# 39 AND WHEN ALL THE PEOPLE SAW IT, THEY FELL ON THEIR FACES: AND THEY SAID, 2 THE LORD, HE IS THE GOD; THE LORD, HE IS THE GOD.I# 40 AND ELIJAH SAID UNTO THEM, TAKE THE PROPHETS OF BAAL; LET NOT ONE OFK THEM ESCAPE. AND THEY TOOK THEM: AND ELIJAH BROUGHT THEM DOWN TO THE BROOKL KISHON, AND SLEW THEM THERE.NJ# 41 AND ELIJAH SAID UNTO AHAB, GET THEE UP, EAT AND DRINK; FOR THERE IS A SOUND OF ABUNDANCE OF RAIN.J# 42 SO AHAB WENT UP TO EAT AND TO DRINK. AND ELIJAH WENT UP TO THE TOP OFN CARMEL; AND HE CAST HIMSELF DOWN UPON THE EARTH, AND PUT HIS FACE BETWEEN HIS KNEES,DM# 43 AND SAID TO HIS SERVANT, GO UP NOW, LOOK TOWARD THE SEA. AND HE WENT UP,TK AND LOOKED, AND SAID, THERE IS NOTHING. AND HE SAID, GO AGAIN SEVEN TIMES.OI# 44 AND IT CAME TO PASS AT THE SEVENTH TIME, THAT HE SAID, BEHOLD, THERETM ARISETH A LITTLE CLOUD OUT OF THE SEA, LIKE A MANS HAND. AND HE SAID, GO UP,SN SAY UNTO AHAB, PREPARE THY CHARIOT, AND GET THEE DOWN THAT THE RAIN STOP THEE NOT.WJ# 45 AND IT CAME TO PASS IN THE MEAN WHILE, THAT THE HEAVEN WAS BLACK WITHH CLOUDS AND WIND, AND THERE WAS A GREAT RAIN. AND AHAB RODE, AND WENT TO JEZREEL.AL# 46 AND THE HAND OF THE LORD WAS ON ELIJAH; AND HE GIRDED UP HIS LOINS, AND, RAN BEFORE AHAB TO THE ENTRANCE OF JEZREEL. = CHAPTER 19 I# 1 AND AHAB TOLD JEZEBEL ALL THAT ELIJAH HAD DONE, AND WITHAL HOW HE HADT' SLAIN ALL THE PROPHETS WITH THE SWORD. L# 2 THEN JEZEBEL SENT A MESSENGER UNTO ELIJAH, SAYING, SO LET THE GODS TO TOK ME, AND MORE ALSO, IF I MAKE NOT THY LIFE AS THE LIFE OF ONE OF THEM BY TOA MORROW ABOUT THIS TIME.F# 3 AND WHEN HE SAW THAT, HE AROSE, AND WENT FOR HIS LIFE, AND CAME TOA BEERSHEBA, WHICH BELONGETH TO JUDAH, AND LEFT HIS SERVANT THERE. L# 4 BUT HE HIMSELF WENT A DAYS JOURNEY INTO THE WILDERNESS, AND CAME AND SATK DOWN UNDER A JUNIPER TREE: AND HE REQUESTED FOR HIMSELF THAT HE MIGHT DIE;NL AND SAID, IT IS ENOUGH; NOW, O LORD, TAKE AWAY MY LIFE; FOR I AM NOT BETTER THAN MY FATHERS. G# 5 AND AS HE LAY AND SLEPT UNDER A JUNIPER TREE, BEHOLD, THEN AN ANGEL / TOUCHED HIM, AND SAID UNTO HIM, ARISE AND EAT. J# 6 AND HE LOOKED, AND, BEHOLD, THERE WAS A CAKE BAKEN ON THE COALS, AND AH CRUSE OF WATER AT HIS HEAD. AND HE DID EAT AND DRINK, AND LAID HIM DOWN AGAIN. J# 7 AND THE ANGEL OF THE LORD CAME AGAIN THE SECOND TIME, AND TOUCHED HIM,D AND SAID, ARISE AND EAT; BECAUSE THE JOURNEY IS TOO GREAT FOR THEE.I# 8 AND HE AROSE, AND DID EAT AND DRINK, AND WENT IN THE STRENGTH OF THATT> MEAT FORTY DAYS AND FORTY NIGHTS UNTO HOREB THE MOUNT OF GOD.L# 9 AND HE CAME THITHER UNTO A CAVE, AND LODGED THERE; AND, BEHOLD, THE WORDM OF THE LORD CAME TO HIM, AND HE SAID UNTO HIM, WHAT DOEST THOU HERE, ELIJAH?EM# 10 AND HE SAID, I HAVE BEEN VERY JEALOUS FOR THE LORD GOD OF HOSTS: FOR THEHM CHILDREN OF ISRAEL HAVE FORSAKEN THY COVENANT, THROWN DOWN THINE ALTARS, ANDIN SLAIN THY PROPHETS WITH THE SWORD; AND I, EVEN I ONLY, AM LEFT; AND THEY SEEK MY LIFE, TO TAKE IT AWAY.J# 11 AND HE SAID, GO FORTH, AND STAND UPON THE MOUNT BEFORE THE LORD. AND,L BEHOLD, THE LORD PASSED BY, AND A GREAT AND STRONG WIND RENT THE MOUNTAINS,K AND BRAKE IN PIECES THE ROCKS BEFORE THE LORD; BUT THE LORD WAS NOT IN THEED WIND: AND AFT00i 1E0D%5%T6%! !ER THE WIND AN EARTHQUAKE; BUT THE LORD WAS NOT IN THE EARTHQUAKE:K# 12 AND AFTER THE EARTHQUAKE A FIRE; BUT THE LORD WAS NOT IN THE FIRE: ANDL$ AFTER THE FIRE A STILL SMALL VOICE.I# 13 AND IT WAS SO, WHEN ELIJAH HEARD IT, THAT HE WRAPPED HIS FACE IN HISAM MANTLE, AND WENT OUT, AND STOOD IN THE ENTERING IN OF THE CAVE. AND, BEHOLD,,E THERE CAME A VOICE UNTO HIM, AND SAID, WHAT DOEST THOU HERE, ELIJAH?NM# 14 AND HE SAID, I HAVE BEEN VERY JEALOUS FOR THE LORD GOD OF HOSTS: BECAUSE M THE CHILDREN OF ISRAEL HAVE FORSAKEN THY COVENANT, THROWN DOWN THINE ALTARS,RM AND SLAIN THY PROPHETS WITH THE SWORD; AND I, EVEN I ONLY, AM LEFT; AND THEYE SEEK MY LIFE, TO TAKE IT AWAY.MK# 15 AND THE LORD SAID UNTO HIM, GO, RETURN ON THY WAY TO THE WILDERNESS OFEE DAMASCUS: AND WHEN THOU COMEST, ANOINT HAZAEL TO BE KING OVER SYRIA:VM# 16 AND JEHU THE SON OF NIMSHI SHALT THOU ANOINT TO BE KING OVER ISRAEL: AND L ELISHA THE SON OF SHAPHAT OF ABELMEHOLAH SHALT THOU ANOINT TO BE PROPHET IN THY ROOM.J# 17 AND IT SHALL COME TO PASS, THAT HIM THAT ESCAPETH THE SWORD OF HAZAELK SHALL JEHU SLAY: AND HIM THAT ESCAPETH FROM THE SWORD OF JEHU SHALL ELISHAT SLAY.J# 18 YET I HAVE LEFT ME SEVEN THOUSAND IN ISRAEL, ALL THE KNEES WHICH HAVE@ NOT BOWED UNTO BAAL, AND EVERY MOUTH WHICH HATH NOT KISSED HIM.H# 19 SO HE DEPARTED THENCE, AND FOUND ELISHA THE SON OF SHAPHAT, WHO WASJ PLOWING WITH TWELVE YOKE OF OXEN BEFORE HIM, AND HE WITH THE TWELFTH: AND4 ELIJAH PASSED BY HIM, AND CAST HIS MANTLE UPON HIM.I# 20 AND HE LEFT THE OXEN, AND RAN AFTER ELIJAH, AND SAID, LET ME, I PRAYAM THEE, KISS MY FATHER AND MY MOTHER, AND THEN I WILL FOLLOW THEE. AND HE SAIDH7 UNTO HIM, GO BACK AGAIN: FOR WHAT HAVE I DONE TO THEE?AK# 21 AND HE RETURNED BACK FROM HIM, AND TOOK A YOKE OF OXEN, AND SLEW THEM,HK AND BOILED THEIR FLESH WITH THE INSTRUMENTS OF THE OXEN, AND GAVE UNTO THEPD PEOPLE, AND THEY DID EAT. THEN HE AROSE, AND WENT AFTER ELIJAH, AND MINISTERED UNTO HIM.I = CHAPTER 20 IL# 1 AND BENHADAD THE KING OF SYRIA GATHERED ALL HIS HOST TOGETHER: AND THEREM WERE THIRTY AND TWO KINGS WITH HIM, AND HORSES, AND CHARIOTS; AND HE WENT UP - AND BESIEGED SAMARIA, AND WARRED AGAINST IT.AI# 2 AND HE SENT MESSENGERS TO AHAB KING OF ISRAEL INTO THE CITY, AND SAIDM UNTO HIM, THUS SAITH BENHADAD,EJ# 3 THY SILVER AND THY GOLD IS MINE; THY WIVES ALSO AND THY CHILDREN, EVEN THE GOODLIEST, ARE MINE.EK# 4 AND THE KING OF ISRAEL ANSWERED AND SAID, MY LORD, O KING, ACCORDING TO- THY SAYING, I AM THINE, AND ALL THAT I HAVE.RL# 5 AND THE MESSENGERS CAME AGAIN, AND SAID, THUS SPEAKETH BENHADAD, SAYING,N ALTHOUGH I HAVE SENT UNTO THEE, SAYING, THOU SHALT DELIVER ME THY SILVER, AND+ THY GOLD, AND THY WIVES, AND THY CHILDREN; M# 6 YET I WILL SEND MY SERVANTS UNTO THEE TO MORROW ABOUT THIS TIME, AND THEYK SHALL SEARCH THINE HOUSE, AND THE HOUSES OF THY SERVANTS; AND IT SHALL BE,TL THAT WHATSOEVER IS PLEASANT IN THINE EYES, THEY SHALL PUT IT IN THEIR HAND, AND TAKE IT AWAY.H# 7 THEN THE KING OF ISRAEL CALLED ALL THE ELDERS OF THE LAND, AND SAID,M MARK, I PRAY YOU, AND SEE HOW THIS MAN SEEKETH MISCHIEF: FOR HE SENT UNTO ME M FOR MY WIVES, AND FOR MY CHILDREN, AND FOR MY SILVER, AND FOR MY GOLD; AND IV DENIED HIM NOT.I# 8 AND ALL THE ELDERS AND ALL THE PEOPLE SAID UNTO HIM, HEARKEN NOT UNTOA HIM, NOR CONSENT.M# 9 WHEREFORE HE SAID UNTO THE MESSENGERS OF BENHADAD, TELL MY LORD THE KING,OM ALL THAT THOU DIDST SEND FOR TO THY SERVANT AT THE FIRST I WILL DO: BUT THISAM THING I MAY NOT DO. AND THE MESSENGERS DEPARTED, AND BROUGHT HIM WORD AGAIN.K# 10 AND BENHADAD SENT UNTO HIM, AND SAID, THE GODS DO SO UNTO ME, AND MORE K ALSO, IF THE DUST OF SAMARIA SHALL SUFFICE FOR HANDFULS FOR ALL THE PEOPLE  THAT FOLLOW ME.I# 11 AND THE KING OF ISRAEL ANSWERED AND SAID, TELL HIM, LET NOT HIM THATT@ GIRDETH ON HIS HARNESS BOAST HIMSELF AS HE THAT PUTTETH IT OFF.F# 12 AND IT CAME TO PASS, WHEN BEN-HADAD HEARD THIS MESSAGE, AS HE WASM DRINKING, HE AND THE KINGS IN THE PAVILIONS, THAT HE SAID UNTO HIS SERVANTS,EL SET YOURSELVES IN ARRAY. AND THEY SET00i(1Y/<%X>%+%O-%TADATADATA THEMSELVES IN ARRAY AGAINST THE CITY.M# 13 AND, BEHOLD, THERE CAME A PROPHET UNTO AHAB KING OF ISRAEL, SAYING, THUSLH SAITH THE LORD, HAST THOU SEEN ALL THIS GREAT MULTITUDE? BEHOLD, I WILLM DELIVER IT INTO THINE HAND THIS DAY; AND THOU SHALT KNOW THAT I AM THE LORD. J# 14 AND AHAB SAID, BY WHOM? AND HE SAID, THUS SAITH THE LORD, EVEN BY THEM YOUNG MEN OF THE PRINCES OF THE PROVINCES. THEN HE SAID, WHO SHALL ORDER THEE BATTLE? AND HE ANSWERED, THOU. M# 15 THEN HE NUMBERED THE YOUNG MEN OF THE PRINCES OF THE PROVINCES, AND THEYTL WERE TWO HUNDRED AND THIRTY TWO: AND AFTER THEM HE NUMBERED ALL THE PEOPLE,7 EVEN ALL THE CHILDREN OF ISRAEL, BEING SEVEN THOUSAND.TJ# 16 AND THEY WENT OUT AT NOON. BUT BENHADAD WAS DRINKING HIMSELF DRUNK INK THE PAVILIONS, HE AND THE KINGS, THE THIRTY AND TWO KINGS THAT HELPED HIM.SJ# 17 AND THE YOUNG MEN OF THE PRINCES OF THE PROVINCES WENT OUT FIRST; ANDH BENHADAD SENT OUT, AND THEY TOLD HIM, SAYING, THERE ARE MEN COME OUT OF SAMARIA.EI# 18 AND HE SAID, WHETHER THEY BE COME OUT FOR PEACE, TAKE THEM ALIVE; ORD3 WHETHER THEY BE COME OUT FOR WAR, TAKE THEM ALIVE.EM# 19 SO THESE YOUNG MEN OF THE PRINCES OF THE PROVINCES CAME OUT OF THE CITY,E" AND THE ARMY WHICH FOLLOWED THEM.F# 20 AND THEY SLEW EVERY ONE HIS MAN: AND THE SYRIANS FLED; AND ISRAELJ PURSUED THEM: AND BENHADAD THE KING OF SYRIA ESCAPED ON AN HORSE WITH THE HORSEMEN.L# 21 AND THE KING OF ISRAEL WENT OUT, AND SMOTE THE HORSES AND CHARIOTS, AND) SLEW THE SYRIANS WITH A GREAT SLAUGHTER.AG# 22 AND THE PROPHET CAME TO THE KING OF ISRAEL, AND SAID UNTO HIM, GO,EL STRENGTHEN THYSELF, AND MARK, AND SEE WHAT THOU DOEST: FOR AT THE RETURN OF6 THE YEAR THE KING OF SYRIA WILL COME UP AGAINST THEE.M# 23 AND THE SERVANTS OF THE KING OF SYRIA SAID UNTO HIM, THEIR GODS ARE GODSLM OF THE HILLS; THEREFORE THEY WERE STRONGER THAN WE; BUT LET US FIGHT AGAINSTS> THEM IN THE PLAIN, AND SURELY WE SHALL BE STRONGER THAN THEY.L# 24 AND DO THIS THING, TAKE THE KINGS AWAY, EVERY MAN OUT OF HIS PLACE, AND PUT CAPTAINS IN THEIR ROOMS:OJ# 25 AND NUMBER THEE AN ARMY, LIKE THE ARMY THAT THOU HAST LOST, HORSE FORM HORSE, AND CHARIOT FOR CHARIOT: AND WE WILL FIGHT AGAINST THEM IN THE PLAIN,LN AND SURELY WE SHALL BE STRONGER THAN THEY. AND HE HEARKENED UNTO THEIR VOICE, AND DID SO.J# 26 AND IT CAME TO PASS AT THE RETURN OF THE YEAR, THAT BENHADAD NUMBERED< THE SYRIANS, AND WENT UP TO APHEK, TO FIGHT AGAINST ISRAEL.M# 27 AND THE CHILDREN OF ISRAEL WERE NUMBERED, AND WERE ALL PRESENT, AND WENTIM AGAINST THEM: AND THE CHILDREN OF ISRAEL PITCHED BEFORE THEM LIKE TWO LITTLEE4 FLOCKS OF KIDS; BUT THE SYRIANS FILLED THE COUNTRY.H# 28 AND THERE CAME A MAN OF GOD, AND SPAKE UNTO THE KING OF ISRAEL, ANDM SAID, THUS SAITH THE LORD, BECAUSE THE SYRIANS HAVE SAID, THE LORD IS GOD OFDJ THE HILLS, BUT HE IS NOT GOD OF THE VALLEYS, THEREFORE WILL I DELIVER ALLL THIS GREAT MULTITUDE INTO THINE HAND, AND YE SHALL KNOW THAT I AM THE LORD.K# 29 AND THEY PITCHED ONE OVER AGAINST THE OTHER SEVEN DAYS. AND SO IT WAS,NJ THAT IN THE SEVENTH DAY THE BATTLE WAS JOINED: AND THE CHILDREN OF ISRAEL< SLEW OF THE SYRIANS AN HUNDRED THOUSAND FOOTMEN IN ONE DAY.J# 30 BUT THE REST FLED TO APHEK, INTO THE CITY; AND THERE A WALL FELL UPONL TWENTY AND SEVEN THOUSAND OF THE MEN THAT WERE LEFT. AND BENHADAD FLED, AND+ CAME INTO THE CITY, INTO AN INNER CHAMBER. M# 31 AND HIS SERVANTS SAID UNTO HIM, BEHOLD NOW, WE HAVE HEARD THAT THE KINGSAN OF THE HOUSE OF ISRAEL ARE MERCIFUL KINGS: LET US, I PRAY THEE, PUT SACKCLOTHJ ON OUR LOINS, AND ROPES UPON OUR HEADS, AND GO OUT TO THE KING OF ISRAEL:$ PERADVENTURE HE WILL SAVE THY LIFE.K# 32 SO THEY GIRDED SACKCLOTH ON THEIR LOINS, AND PUT ROPES ON THEIR HEADS, M AND CAME TO THE KING OF ISRAEL, AND SAID, THY SERVANT BENHADAD SAITH, I PRAYTC THEE, LET ME LIVE. AND HE SAID, IS HE YET ALIVE? HE IS MY BROTHER.RI# 33 NOW THE MEN DID DILIGENTLY OBSERVE WHETHER ANY THING WOULD COME FROMTL HIM, AND DID HASTILY CATCH IT: AND THEY SAID, THY BROTHER BENHADAD. THEN HEN SAID, GO YE, BRING HIM. THEN BENHADAD CAME FORT00i01E0D%5%T6%! !H TO HIM; AND HE CAUSED HIM TO COME UP INTO THE CHARIOT.K# 34 AND BEN-HADAD SAID UNTO HIM, THE CITIES, WHICH MY FATHER TOOK FROM THY M FATHER, I WILL RESTORE; AND THOU SHALT MAKE STREETS FOR THEE IN DAMASCUS, ASBK MY FATHER MADE IN SAMARIA. THEN SAID AHAB, I WILL SEND THEE AWAY WITH THISI= COVENANT. SO HE MADE A COVENANT WITH HIM, AND SENT HIM AWAY. M# 35 AND A CERTAIN MAN OF THE SONS OF THE PROPHETS SAID UNTO HIS NEIGHBOUR INBJ THE WORD OF THE LORD, SMITE ME, I PRAY THEE. AND THE MAN REFUSED TO SMITE HIM. I# 36 THEN SAID HE UNTO HIM, BECAUSE THOU HAST NOT OBEYED THE VOICE OF THENL LORD, BEHOLD, AS SOON AS THOU ART DEPARTED FROM ME, A LION SHALL SLAY THEE.I AND AS SOON AS HE WAS DEPARTED FROM HIM, A LION FOUND HIM, AND SLEW HIM.ML# 37 THEN HE FOUND ANOTHER MAN, AND SAID, SMITE ME, I PRAY THEE. AND THE MAN. SMOTE HIM, SO THAT IN SMITING HE WOUNDED HIM.E# 38 SO THE PROPHET DEPARTED, AND WAITED FOR THE KING BY THE WAY, ANDB, DISGUISED HIMSELF WITH ASHES UPON HIS FACE.H# 39 AND AS THE KING PASSED BY, HE CRIED UNTO THE KING: AND HE SAID, THYI SERVANT WENT OUT INTO THE MIDST OF THE BATTLE; AND, BEHOLD, A MAN TURNEDTN ASIDE, AND BROUGHT A MAN UNTO ME, AND SAID, KEEP THIS MAN: IF BY ANY MEANS HEJ BE MISSING, THEN SHALL THY LIFE BE FOR HIS LIFE, OR ELSE THOU SHALT PAY A TALENT OF SILVER.M# 40 AND AS THY SERVANT WAS BUSY HERE AND THERE, HE WAS GONE. AND THE KING OFHI ISRAEL SAID UNTO HIM, SO SHALL THY JUDGMENT BE; THYSELF HAST DECIDED IT.MJ# 41 AND HE HASTED, AND TOOK THE ASHES AWAY FROM HIS FACE; AND THE KING OF2 ISRAEL DISCERNED HIM THAT HE WAS OF THE PROPHETS.L# 42 AND HE SAID UNTO HIM, THUS SAITH THE LORD, BECAUSE THOU HAST LET GO OUTL OF THY HAND A MAN WHOM I APPOINTED TO UTTER DESTRUCTION, THEREFORE THY LIFE6 SHALL GO FOR HIS LIFE, AND THY PEOPLE FOR HIS PEOPLE.L# 43 AND THE KING OF ISRAEL WENT TO HIS HOUSE HEAVY AND DISPLEASED, AND CAME TO SAMARIA. = CHAPTER 21 AL# 1 AND IT CAME TO PASS AFTER THESE THINGS, THAT NABOTH THE JEZREELITE HAD AL VINEYARD, WHICH WAS IN JEZREEL, HARD BY THE PALACE OF AHAB KING OF SAMARIA.M# 2 AND AHAB SPAKE UNTO NABOTH, SAYING, GIVE ME THY VINEYARD, THAT I MAY HAVE L IT FOR A GARDEN OF HERBS, BECAUSE IT IS NEAR UNTO MY HOUSE: AND I WILL GIVEK THEE FOR IT A BETTER VINEYARD THAN IT; OR, IF IT SEEM GOOD TO THEE, I WILLR$ GIVE THEE THE WORTH OF IT IN MONEY.J# 3 AND NABOTH SAID TO AHAB, THE LORD FORBID IT ME, THAT I SHOULD GIVE THE% INHERITANCE OF MY FATHERS UNTO THEE.HI# 4 AND AHAB CAME INTO HIS HOUSE HEAVY AND DISPLEASED BECAUSE OF THE WORDEK WHICH NABOTH THE JEZREELITE HAD SPOKEN TO HIM: FOR HE HAD SAID, I WILL NOTHL GIVE THEE THE INHERITANCE OF MY FATHERS. AND HE LAID HIM DOWN UPON HIS BED,2 AND TURNED AWAY HIS FACE, AND WOULD EAT NO BREAD.M# 5 BUT JEZEBEL HIS WIFE CAME TO HIM, AND SAID UNTO HIM, WHY IS THY SPIRIT SOV SAD, THAT THOU EATEST NO BREAD?I# 6 AND HE SAID UNTO HER, BECAUSE I SPAKE UNTO NABOTH THE JEZREELITE, ANDM SAID UNTO HIM, GIVE ME THY VINEYARD FOR MONEY; OR ELSE, IF IT PLEASE THEE, IAN WILL GIVE THEE ANOTHER VINEYARD FOR IT: AND HE ANSWERED, I WILL NOT GIVE THEE MY VINEYARD.SK# 7 AND JEZEBEL HIS WIFE SAID UNTO HIM, DOST THOU NOW GOVERN THE KINGDOM OFOM ISRAEL? ARISE, AND EAT BREAD, AND LET THINE HEART BE MERRY: I WILL GIVE THEEE' THE VINEYARD OF NABOTH THE JEZREELITE. J# 8 SO SHE WROTE LETTERS IN AHABS NAME, AND SEALED THEM WITH HIS SEAL, ANDJ SENT THE LETTERS UNTO THE ELDERS AND TO THE NOBLES THAT WERE IN HIS CITY, DWELLING WITH NABOTH.L# 9 AND SHE WROTE IN THE LETTERS, SAYING, PROCLAIM A FAST, AND SET NABOTH ON HIGH AMONG THE PEOPLE:II# 10 AND SET TWO MEN, SONS OF BELIAL, BEFORE HIM, TO BEAR WITNESS AGAINSTOL HIM, SAYING, THOU DIDST BLASPHEME GOD AND THE KING. AND THEN CARRY HIM OUT, AND STONE HIM, THAT HE MAY DIE.I# 11 AND THE MEN OF HIS CITY, EVEN THE ELDERS AND THE NOBLES WHO WERE THEHJ INHABITANTS IN HIS CITY, DID AS JEZEBEL HAD SENT UNTO THEM, AND AS IT WAS5 WRITTEN IN THE LETTERS WHICH SHE HAD SENT UNTO THEM. E# 12 THEY PROCLAIMED A FAST, AND SET NABOTH ON HIGH AMONG THE PEOPLE.,K# 13 AND THERE CAME IN T00i81Y/<%X>%+%O-%TADATADATAWO MEN, CHILDREN OF BELIAL, AND SAT BEFORE HIM: ANDEN THE MEN OF BELIAL WITNESSED AGAINST HIM, EVEN AGAINST NABOTH, IN THE PRESENCEH OF THE PEOPLE, SAYING, NABOTH DID BLASPHEME GOD AND THE KING. THEN THEYM CARRIED HIM FORTH OUT OF THE CITY, AND STONED HIM WITH STONES, THAT HE DIED.IF# 14 THEN THEY SENT TO JEZEBEL, SAYING, NABOTH IS STONED, AND IS DEAD.L# 15 AND IT CAME TO PASS, WHEN JEZEBEL HEARD THAT NABOTH WAS STONED, AND WASK DEAD, THAT JEZEBEL SAID TO AHAB, ARISE, TAKE POSSESSION OF THE VINEYARD OFON NABOTH THE JEZREELITE, WHICH HE REFUSED TO GIVE THEE FOR MONEY: FOR NABOTH IS NOT ALIVE, BUT DEAD.NI# 16 AND IT CAME TO PASS, WHEN AHAB HEARD THAT NABOTH WAS DEAD, THAT AHABDE ROSE UP TO GO DOWN TO THE VINEYARD OF NABOTH THE JEZREELITE, TO TAKED POSSESSION OF IT.B# 17 AND THE WORD OF THE LORD CAME TO ELIJAH THE TISHBITE, SAYING,M# 18 ARISE, GO DOWN TO MEET AHAB KING OF ISRAEL, WHICH IS IN SAMARIA: BEHOLD,SH HE IS IN THE VINEYARD OF NABOTH, WHITHER HE IS GONE DOWN TO POSSESS IT.J# 19 AND THOU SHALT SPEAK UNTO HIM, SAYING, THUS SAITH THE LORD, HAST THOUJ KILLED, AND ALSO TAKEN POSSESSION? AND THOU SHALT SPEAK UNTO HIM, SAYING,N THUS SAITH THE LORD, IN THE PLACE WHERE DOGS LICKED THE BLOOD OF NABOTH SHALL! DOGS LICK THY BLOOD, EVEN THINE.KF# 20 AND AHAB SAID TO ELIJAH, HAST THOU FOUND ME, O MINE ENEMY? AND HEL ANSWERED, I HAVE FOUND THEE: BECAUSE THOU HAST SOLD THYSELF TO WORK EVIL IN THE SIGHT OF THE LORD. K# 21 BEHOLD, I WILL BRING EVIL UPON THEE, AND WILL TAKE AWAY THY POSTERITY,DN AND WILL CUT OFF FROM AHAB HIM THAT PISSETH AGAINST THE WALL, AND HIM THAT IS SHUT UP AND LEFT IN ISRAEL,K# 22 AND WILL MAKE THINE HOUSE LIKE THE HOUSE OF JEROBOAM THE SON OF NEBAT,GN AND LIKE THE HOUSE OF BAASHA THE SON OF AHIJAH, FOR THE PROVOCATION WHEREWITH8 THOU HAST PROVOKED ME TO ANGER, AND MADE ISRAEL TO SIN.K# 23 AND OF JEZEBEL ALSO SPAKE THE LORD, SAYING, THE DOGS SHALL EAT JEZEBELI BY THE WALL OF JEZREEL.H# 24 HIM THAT DIETH OF AHAB IN THE CITY THE DOGS SHALL EAT; AND HIM THAT3 DIETH IN THE FIELD SHALL THE FOWLS OF THE AIR EAT.HF# 25 BUT THERE WAS NONE LIKE UNTO AHAB, WHICH DID SELL HIMSELF TO WORKG WICKEDNESS IN THE SIGHT OF THE LORD, WHOM JEZEBEL HIS WIFE STIRRED UP.AK# 26 AND HE DID VERY ABOMINABLY IN FOLLOWING IDOLS, ACCORDING TO ALL THINGSK AS DID THE AMORITES, WHOM THE LORD CAST OUT BEFORE THE CHILDREN OF ISRAEL. G# 27 AND IT CAME TO PASS, WHEN AHAB HEARD THOSE WORDS, THAT HE RENT HIS M CLOTHES, AND PUT SACKCLOTH UPON HIS FLESH, AND FASTED, AND LAY IN SACKCLOTH,H AND WENT SOFTLY.IB# 28 AND THE WORD OF THE LORD CAME TO ELIJAH THE TISHBITE, SAYING,H# 29 SEEST THOU HOW AHAB HUMBLETH HIMSELF BEFORE ME? BECAUSE HE HUMBLETHJ HIMSELF BEFORE ME, I WILL NOT BRING THE EVIL IN HIS DAYS: BUT IN HIS SONS+ DAYS WILL I BRING THE EVIL UPON HIS HOUSE.A = CHAPTER 22 TH# 1 AND THEY CONTINUED THREE YEARS WITHOUT WAR BETWEEN SYRIA AND ISRAEL.M# 2 AND IT CAME TO PASS IN THE THIRD YEAR, THAT JEHOSHAPHAT THE KING OF JUDAHA! CAME DOWN TO THE KING OF ISRAEL. I# 3 AND THE KING OF ISRAEL SAID UNTO HIS SERVANTS, KNOW YE THAT RAMOTH INAM GILEAD IS OURS, AND WE BE STILL, AND TAKE IT NOT OUT OF THE HAND OF THE KINGE OF SYRIA?C# 4 AND HE SAID UNTO JEHOSHAPHAT, WILT THOU GO WITH ME TO BATTLE TOSL RAMOTHGILEAD? AND JEHOSHAPHAT SAID TO THE KING OF ISRAEL, I AM AS THOU ART,2 MY PEOPLE AS THY PEOPLE, MY HORSES AS THY HORSES.J# 5 AND JEHOSHAPHAT SAID UNTO THE KING OF ISRAEL, ENQUIRE, I PRAY THEE, AT THE WORD OF THE LORD TO DAY.AF# 6 THEN THE KING OF ISRAEL GATHERED THE PROPHETS TOGETHER, ABOUT FOURL HUNDRED MEN, AND SAID UNTO THEM, SHALL I GO AGAINST RAMOTHGILEAD TO BATTLE,M OR SHALL I FORBEAR? AND THEY SAID, GO UP; FOR THE LORD SHALL DELIVER IT INTOH THE HAND OF THE KING.J# 7 AND JEHOSHAPHAT SAID, IS THERE NOT HERE A PROPHET OF THE LORD BESIDES, THAT WE MIGHT ENQUIRE OF HIM?G# 8 AND THE KING OF ISRAEL SAID UNTO JEHOSHAPHAT, THERE IS YET ONE MAN, N MICAIAH THE SON OF IMLAH, BY WHOM WE MAY ENQUIRE OF THE LORD: BUT I HATE HIM;M FOR HE DOTH NOT PROPHESY GOOD CONCERNING ME, BUT EVIL. AND JEHOSHAP00i@1iE1D%5%T6%! !HAT SAID,M LET NOT THE KING SAY SO.LF# 9 THEN THE KING OF ISRAEL CALLED AN OFFICER, AND SAID, HASTEN HITHER MICAIAH THE SON OF IMLAH.M# 10 AND THE KING OF ISRAEL AND JEHOSHAPHAT THE KING OF JUDAH SAT EACH ON HISNJ THRONE, HAVING PUT ON THEIR ROBES, IN A VOID PLACE IN THE ENTRANCE OF THE> GATE OF SAMARIA; AND ALL THE PROPHETS PROPHESIED BEFORE THEM.K# 11 AND ZEDEKIAH THE SON OF CHENAANAH MADE HIM HORNS OF IRON: AND HE SAID,TM THUS SAITH THE LORD, WITH THESE SHALT THOU PUSH THE SYRIANS, UNTIL THOU HAVE  CONSUMED THEM.TK# 12 AND ALL THE PROPHETS PROPHESIED SO, SAYING, GO UP TO RAMOTHGILEAD, ANDS< PROSPER: FOR THE LORD SHALL DELIVER IT INTO THE KINGS HAND.L# 13 AND THE MESSENGER THAT WAS GONE TO CALL MICAIAH SPAKE UNTO HIM, SAYING,J BEHOLD NOW, THE WORDS OF THE PROPHETS DECLARE GOOD UNTO THE KING WITH ONEM MOUTH: LET THY WORD, I PRAY THEE, BE LIKE THE WORD OF ONE OF THEM, AND SPEAKN THAT WHICH IS GOOD.L# 14 AND MICAIAH SAID, AS THE LORD LIVETH, WHAT THE LORD SAITH UNTO ME, THAT WILL I SPEAK.M# 15 SO HE CAME TO THE KING. AND THE KING SAID UNTO HIM, MICAIAH, SHALL WE GOTN AGAINST RAMOTHGILEAD TO BATTLE, OR SHALL WE FORBEAR? AND HE ANSWERED HIM, GO,F AND PROSPER: FOR THE LORD SHALL DELIVER IT INTO THE HAND OF THE KING.M# 16 AND THE KING SAID UNTO HIM, HOW MANY TIMES SHALL I ADJURE THEE THAT THOUH@ TELL ME NOTHING BUT THAT WHICH IS TRUE IN THE NAME OF THE LORD?J# 17 AND HE SAID, I SAW ALL ISRAEL SCATTERED UPON THE HILLS, AS SHEEP THATN HAVE NOT A SHEPHERD: AND THE LORD SAID, THESE HAVE NO MASTER: LET THEM RETURN! EVERY MAN TO HIS HOUSE IN PEACE.,K# 18 AND THE KING OF ISRAEL SAID UNTO JEHOSHAPHAT, DID I NOT TELL THEE THAT 3 HE WOULD PROPHESY NO GOOD CONCERNING ME, BUT EVIL?SJ# 19 AND HE SAID, HEAR THOU THEREFORE THE WORD OF THE LORD: I SAW THE LORDI SITTING ON HIS THRONE, AND ALL THE HOST OF HEAVEN STANDING BY HIM ON HISH RIGHT HAND AND ON HIS LEFT.K# 20 AND THE LORD SAID, WHO SHALL PERSUADE AHAB, THAT HE MAY GO UP AND FALL G AT RAMOTHGILEAD? AND ONE SAID ON THIS MANNER, AND ANOTHER SAID ON THATT MANNER.J# 21 AND THERE CAME FORTH A SPIRIT, AND STOOD BEFORE THE LORD, AND SAID, I WILL PERSUADE HIM.TM# 22 AND THE LORD SAID UNTO HIM, WHEREWITH? AND HE SAID, I WILL GO FORTH, ANDDM I WILL BE A LYING SPIRIT IN THE MOUTH OF ALL HIS PROPHETS. AND HE SAID, THOU : SHALT PERSUDE HIM, AND PREVAIL ALSO: GO FORTH, AND DO SO.L# 23 NOW THEREFORE, BEHOLD, THE LORD HATH PUT A LYING SPIRIT IN THE MOUTH OFG ALL THESE THY PROPHETS, AND THE LORD HATH SPOKEN EVIL CONCERNING THEE.MJ# 24 BUT ZEDEKIAH THE SON OF CHENAANAH WENT NEAR, AND SMOTE MICAIAH ON THEM CHEEK, AND SAID, WHICH WAY WENT THE SPIRIT OF THE LORD FROM ME TO SPEAK UNTOL THEE?M# 25 AND MICAIAH SAID, BEHOLD, THOU SHALT SEE IN THAT DAY, WHEN THOU SHALT GOI' INTO AN INNER CHAMBER TO HIDE THYSELF. L# 26 AND THE KING OF ISRAEL SAID, TAKE MICAIAH, AND CARRY HIM BACK UNTO AMON6 THE GOVERNOR OF THE CITY, AND TO JOASH THE KINGS SON;J# 27 AND SAY, THUS SAITH THE KING, PUT THIS FELLOW IN THE PRISON, AND FEEDK HIM WITH BREAD OF AFFLICTION AND WITH WATER OF AFFLICTION, UNTIL I COME IN  PEACE.NH# 28 AND MICAIAH SAID, IF THOU RETURN AT ALL IN PEACE, THE LORD HATH NOT@ SPOKEN BY ME. AND HE SAID, HEARKEN, O PEOPLE, EVERY ONE OF YOU.G# 29 SO THE KING OF ISRAEL AND JEHOSHAPHAT THE KING OF JUDAH WENT UP TO  RAMOTHGILEAD.J# 30 AND THE KING OF ISRAEL SAID UNTO JEHOSHAPHAT, I WILL DISGUISE MYSELF,M AND ENTER INTO THE BATTLE; BUT PUT THOU ON THY ROBES. AND THE KING OF ISRAELP- DISGUISED HIMSELF, AND WENT INTO THE BATTLE.TI# 31 BUT THE KING OF SYRIA COMMANDED HIS THIRTY AND TWO CAPTAINS THAT HADEN RULE OVER HIS CHARIOTS, SAYING, FIGHT NEITHER WITH SMALL NOR GREAT, SAVE ONLY WITH THE KING OF ISRAEL.EL# 32 AND IT CAME TO PASS, WHEN THE CAPTAINS OF THE CHARIOTS SAW JEHOSHAPHAT,J THAT THEY SAID, SURELY IT IS THE KING OF ISRAEL. AND THEY TURNED ASIDE TO. FIGHT AGAINST HIM: AND JEHOSHAPHAT CRIED OUT.M# 33 AND IT CAME TO PASS, WHEN THE CAPTAINS OF THE CHARIOTS PERCEIVED THAT ITE WAS NOT THE KING OF ISRAEL, THAT THEY TURNED BACK FROM PURSUING HIM.R00iH1jN1<%X>%+%O-%TADATADATAL# 34 AND A CERTAIN MAN DREW A BOW AT A VENTURE, AND SMOTE THE KING OF ISRAELL BETWEEN THE JOINTS OF THE HARNESS: WHEREFORE HE SAID UNTO THE DRIVER OF HISJ CHARIOT, TURN THINE HAND, AND CARRY ME OUT OF THE HOST; FOR I AM WOUNDED.I# 35 AND THE BATTLE INCREASED THAT DAY: AND THE KING WAS STAYED UP IN HISDL CHARIOT AGAINST THE SYRIANS, AND DIED AT EVEN: AND THE BLOOD RAN OUT OF THE% WOUND INTO THE MIDST OF THE CHARIOT.CK# 36 AND THERE WENT A PROCLAMATION THROUGHOUT THE HOST ABOUT THE GOING DOWNIM OF THE SUN, SAYING, EVERY MAN TO HIS CITY, AND EVERY MAN TO HIS OWN COUNTRY. K# 37 SO THE KING DIED, AND WAS BROUGHT TO SAMARIA; AND THEY BURIED THE KING IN SAMARIA.K# 38 AND ONE WASHED THE CHARIOT IN THE POOL OF SAMARIA; AND THE DOGS LICKEDDN UP HIS BLOOD; AND THEY WASHED HIS ARMOUR; ACCORDING UNTO THE WORD OF THE LORD WHICH HE SPAKE.I# 39 NOW THE REST OF THE ACTS OF AHAB, AND ALL THAT HE DID, AND THE IVORYEL HOUSE WHICH HE MADE, AND ALL THE CITIES THAT HE BUILT, ARE THEY NOT WRITTEN6 IN THE BOOK OF THE CHRONICLES OF THE KINGS OF ISRAEL?G# 40 SO AHAB SLEPT WITH HIS FATHERS; AND AHAZIAH HIS SON REIGNED IN HIST STEAD.IK# 41 AND JEHOSHAPHAT THE SON OF ASA BEGAN TO REIGN OVER JUDAH IN THE FOURTHN YEAR OF AHAB KING OF ISRAEL.OM# 42 JEHOSHAPHAT WAS THIRTY AND FIVE YEARS OLD WHEN HE BEGAN TO REIGN; AND HEOL REIGNED TWENTY AND FIVE YEARS IN JERUSALEM. AND HIS MOTHERS NAME WAS AZUBAH THE DAUGHTER OF SHILHI.I# 43 AND HE WALKED IN ALL THE WAYS OF ASA HIS FATHER; HE TURNED NOT ASIDETN FROM IT, DOING THAT WHICH WAS RIGHT IN THE EYES OF THE LORD: NEVERTHELESS THEN HIGH PLACES WERE NOT TAKEN AWAY; FOR THE PEOPLE OFFERED AND BURNT INCENSE YET IN THE HIGH PLACES.8# 44 AND JEHOSHAPHAT MADE PEACE WITH THE KING OF ISRAEL.K# 45 NOW THE REST OF THE ACTS OF JEHOSHAPHAT, AND HIS MIGHT THAT HE SHEWED, M AND HOW HE WARRED, ARE THEY NOT WRITTEN IN THE BOOK OF THE CHRONICLES OF THEM KINGS OF JUDAH?H# 46 AND THE REMNANT OF THE SODOMITES, WHICH REMAINED IN THE DAYS OF HIS% FATHER ASA, HE TOOK OUT OF THE LAND. 7# 47 THERE WAS THEN NO KING IN EDOM: A DEPUTY WAS KING.SJ# 48 JEHOSHAPHAT MADE SHIPS OF THARSHISH TO GO TO OPHIR FOR GOLD: BUT THEY3 WENT NOT; FOR THE SHIPS WERE BROKEN AT EZIONGEBER.MK# 49 THEN SAID AHAZIAH THE SON OF AHAB UNTO JEHOSHAPHAT, LET MY SERVANTS GOH; WITH THY SERVANTS IN THE SHIPS. BUT JEHOSHAPHAT WOULD NOT.HL# 50 AND JEHOSHAPHAT SLEPT WITH HIS FATHERS, AND WAS BURIED WITH HIS FATHERSK IN THE CITY OF DAVID HIS FATHER: AND JEHORAM HIS SON REIGNED IN HIS STEAD.SF# 51 AHAZIAH THE SON OF AHAB BEGAN TO REIGN OVER ISRAEL IN SAMARIA THEJ SEVENTEENTH YEAR OF JEHOSHAPHAT KING OF JUDAH, AND REIGNED TWO YEARS OVER ISRAEL.K# 52 AND HE DID EVIL IN THE SIGHT OF THE LORD, AND WALKED IN THE WAY OF HISAL FATHER, AND IN THE WAY OF HIS MOTHER, AND IN THE WAY OF JEROBOAM THE SON OF NEBAT, WHO MADE ISRAEL TO SIN:UK# 53 FOR HE SERVED BAAL, AND WORSHIPPED HIM, AND PROVOKED TO ANGER THE LORDS: GOD OF ISRAEL, ACCORDING TO ALL THAT HIS FATHER HAD DONE.SON REIGNED IN HIS STEAD.SF# 51 AHAZIAH THE SON OF AHAB* BOOK12 2KINGSV = CHAPTER 1 ># 1 THEN MOAB REBELLED AGAINST ISRAEL AFTER THE DEATH OF AHAB.L# 2 AND AHAZIAH FELL DOWN THROUGH A LATTICE IN HIS UPPER CHAMBER THAT WAS ING SAMARIA, AND WAS SICK: AND HE SENT MESSENGERS, AND SAID UNTO THEM, GO,AF ENQUIRE OF BAALZEBUB THE GOD OF EKRON WHETHER I SHALL RECOVER OF THIS DISEASE. J# 3 BUT THE ANGEL OF THE LORD SAID TO ELIJAH THE TISHBITE, ARISE, GO UP TOI MEET THE MESSENGERS OF THE KING OF SAMARIA, AND SAY UNTO THEM, IS IT NOTM BECAUSE THERE IS NOT A GOD IN ISRAEL, THAT YE GO TO ENQUIRE OF BAALZEBUB THEE GOD OF EKRON?M# 4 NOW THEREFORE THUS SAITH THE LORD, THOU SHALT NOT COME DOWN FROM THAT BEDSF ON WHICH THOU ART GONE UP, BUT SHALT SURELY DIE. AND ELIJAH DEPARTED.L# 5 AND WHEN THE MESSENGERS TURNED BACK UNTO HIM, HE SAID UNTO THEM, WHY ARE YE NOW TURNED BACK?M# 6 AND THEY SAID UNTO HIM, THERE CAME A MAN UP TO MEET US, AND SAID UNTO US, M GO, TURN AGAIN UNTO THE KING THAT SENT YOU, AND SAY UNTO HIM, THUS SAITH THE K LORD, IS IT NOT BECAUSE THERE00jP1E1D%5%T6%! ! IS NOT A GOD IN ISRAEL, THAT THOU SENDEST TOUJ ENQUIRE OF BAALZEBUB THE GOD OF EKRON? THEREFORE THOU SHALT NOT COME DOWN? FROM THAT BED ON WHICH THOU ART GONE UP, BUT SHALT SURELY DIE. J# 7 AND HE SAID UNTO THEM, WHAT MANNER OF MAN WAS HE WHICH CAME UP TO MEET YOU, AND TOLD YOU THESE WORDS?EI# 8 AND THEY ANSWERED HIM, HE WAS AN HAIRY MAN, AND GIRT WITH A GIRDLE OFMA LEATHER ABOUT HIS LOINS. AND HE SAID, IT IS ELIJAH THE TISHBITE. I# 9 THEN THE KING SENT UNTO HIM A CAPTAIN OF FIFTY WITH HIS FIFTY. AND HEOM WENT UP TO HIM: AND, BEHOLD, HE SAT ON THE TOP OF AN HILL. AND HE SPAKE UNTON5 HIM, THOU MAN OF GOD, THE KING HATH SAID, COME DOWN. K# 10 AND ELIJAH ANSWERED AND SAID TO THE CAPTAIN OF FIFTY, IF I BE A MAN OFAN GOD, THEN LET FIRE COME DOWN FROM HEAVEN, AND CONSUME THEE AND THY FIFTY. ANDB THERE CAME DOWN FIRE FROM HEAVEN, AND CONSUMED HIM AND HIS FIFTY.M# 11 AGAIN ALSO HE SENT UNTO HIM ANOTHER CAPTAIN OF FIFTY WITH HIS FIFTY. AND K HE ANSWERED AND SAID UNTO HIM, O MAN OF GOD, THUS HATH THE KING SAID, COME  DOWN QUICKLY.K# 12 AND ELIJAH ANSWERED AND SAID UNTO THEM, IF I BE A MAN OF GOD, LET FIREOK COME DOWN FROM HEAVEN, AND CONSUME THEE AND THY FIFTY. AND THE FIRE OF GODC7 CAME DOWN FROM HEAVEN, AND CONSUMED HIM AND HIS FIFTY.OK# 13 AND HE SENT AGAIN A CAPTAIN OF THE THIRD FIFTY WITH HIS FIFTY. AND THERN THIRD CAPTAIN OF FIFTY WENT UP, AND CAME AND FELL ON HIS KNEES BEFORE ELIJAH,M AND BESOUGHT HIM, AND SAID UNTO HIM, O MAN OF GOD, I PRAY THEE, LET MY LIFE, D AND THE LIFE OF THESE FIFTY THY SERVANTS, BE PRECIOUS IN THY SIGHT.L# 14 BEHOLD, THERE CAME FIRE DOWN FROM HEAVEN, AND BURNT UP THE TWO CAPTAINSG OF THE FORMER FIFTIES WITH THEIR FIFTIES: THEREFORE LET MY LIFE NOW BEM PRECIOUS IN THY SIGHT.OI# 15 AND THE ANGEL OF THE LORD SAID UNTO ELIJAH, GO DOWN WITH HIM: BE NOTIC AFRAID OF HIM. AND HE AROSE, AND WENT DOWN WITH HIM UNTO THE KING.MK# 16 AND HE SAID UNTO HIM, THUS SAITH THE LORD, FORASMUCH AS THOU HAST SENT M MESSENGERS TO ENQUIRE OF BAALZEBUB THE GOD OF EKRON, IS IT NOT BECAUSE THEREAJ IS NO GOD IN ISRAEL TO ENQUIRE OF HIS WORD? THEREFORE THOU SHALT NOT COMEC DOWN OFF THAT BED ON WHICH THOU ART GONE UP, BUT SHALT SURELY DIE.IJ# 17 SO HE DIED ACCORDING TO THE WORD OF THE LORD WHICH ELIJAH HAD SPOKEN.J AND JEHORAM REIGNED IN HIS STEAD IN THE SECOND YEAR OF JEHORAM THE SON OF2 JEHOSHAPHAT KING OF JUDAH; BECAUSE HE HAD NO SON.K# 18 NOW THE REST OF THE ACTS OF AHAZIAH WHICH HE DID, ARE THEY NOT WRITTENS6 IN THE BOOK OF THE CHRONICLES OF THE KINGS OF ISRAEL? = CHAPTER 2 L# 1 AND IT CAME TO PASS, WHEN THE LORD WOULD TAKE UP ELIJAH INTO HEAVEN BY A5 WHIRLWIND, THAT ELIJAH WENT WITH ELISHA FROM GILGAL. K# 2 AND ELIJAH SAID UNTO ELISHA, TARRY HERE, I PRAY THEE; FOR THE LORD HATH L SENT ME TO BETHEL. AND ELISHA SAID UNTO HIM, AS THE LORD LIVETH, AND AS THYA SOUL LIVETH, I WILL NOT LEAVE THEE. SO THEY WENT DOWN TO BETHEL.NJ# 3 AND THE SONS OF THE PROPHETS THAT WERE AT BETHEL CAME FORTH TO ELISHA,M AND SAID UNTO HIM, KNOWEST THOU THAT THE LORD WILL TAKE AWAY THY MASTER FROMB THY HEAD TO DAY? AND HE SAID, YEA, I KNOW IT; HOLD YE YOUR PEACE.K# 4 AND ELIJAH SAID UNTO HIM, ELISHA, TARRY HERE, I PRAY THEE; FOR THE LORDJJ HATH SENT ME TO JERICHO. AND HE SAID, AS THE LORD LIVETH, AND AS THY SOUL8 LIVETH, I WILL NOT LEAVE THEE. SO THEY CAME TO JERICHO.I# 5 AND THE SONS OF THE PROPHETS THAT WERE AT JERICHO CAME TO ELISHA, ANDNM SAID UNTO HIM, KNOWEST THOU THAT THE LORD WILL TAKE AWAY THY MASTER FROM THYAB HEAD TO DAY? AND HE ANSWERED, YEA, I KNOW IT; HOLD YE YOUR PEACE.I# 6 AND ELIJAH SAID UNTO HIM, TARRY, I PRAY THEE, HERE; FOR THE LORD HATH.N SENT ME TO JORDAN. AND HE SAID, AS THE LORD LIVETH, AND AS THY SOUL LIVETH, I+ WILL NOT LEAVE THEE. AND THEY TWO WENT ON. J# 7 AND FIFTY MEN OF THE SONS OF THE PROPHETS WENT, AND STOOD TO VIEW AFAR# OFF: AND THEY TWO STOOD BY JORDAN.RF# 8 AND ELIJAH TOOK HIS MANTLE, AND WRAPPED IT TOGETHER, AND SMOTE THEM WATERS, AND THEY WERE DIVIDED HITHER AND THITHER, SO THAT THEY TWO WENT OVERA ON DRY GROUND.NH# 9 AND IT CAME TO PASS, WHEN THEY00jX1N1<%X>%+%O-%TADATADATA WERE GONE OVER, THAT ELIJAH SAID UNTOL ELISHA, ASK WHAT I SHALL DO FOR THEE, BEFORE I BE TAKEN AWAY FROM THEE. ANDI ELISHA SAID, I PRAY THEE, LET A DOUBLE PORTION OF THY SPIRIT BE UPON ME. L# 10 AND HE SAID, THOU HAST ASKED A HARD THING: NEVERTHELESS, IF THOU SEE MEN WHEN I AM TAKEN FROM THEE, IT SHALL BE SO UNTO THEE; BUT IF NOT, IT SHALL NOT BE SO.TJ# 11 AND IT CAME TO PASS, AS THEY STILL WENT ON, AND TALKED, THAT, BEHOLD,K THERE APPEARED A CHARIOT OF FIRE, AND HORSES OF FIRE, AND PARTED THEM BOTHW8 ASUNDER; AND ELIJAH WENT UP BY A WHIRLWIND INTO HEAVEN.J# 12 AND ELISHA SAW IT, AND HE CRIED, MY FATHER, MY FATHER, THE CHARIOT OFN ISRAEL, AND THE HORSEMEN THEREOF. AND HE SAW HIM NO MORE: AND HE TOOK HOLD OF. HIS OWN CLOTHES, AND RENT THEM IN TWO PIECES.L# 13 HE TOOK UP ALSO THE MANTLE OF ELIJAH THAT FELL FROM HIM, AND WENT BACK,! AND STOOD BY THE BANK OF JORDAN;EG# 14 AND HE TOOK THE MANTLE OF ELIJAH THAT FELL FROM HIM, AND SMOTE THEEH WATERS, AND SAID, WHERE IS THE LORD GOD OF ELIJAH? AND WHEN HE ALSO HADJ SMITTEN THE WATERS, THEY PARTED HITHER AND THITHER: AND ELISHA WENT OVER.M# 15 AND WHEN THE SONS OF THE PROPHETS WHICH WERE TO VIEW AT JERICHO SAW HIM,OK THEY SAID, THE SPIRIT OF ELIJAH DOTH REST ON ELISHA. AND THEY CAME TO MEETE4 HIM, AND BOWED THEMSELVES TO THE GROUND BEFORE HIM.I# 16 AND THEY SAID UNTO HIM, BEHOLD NOW, THERE BE WITH THY SERVANTS FIFTYEN STRONG MEN; LET THEM GO, WE PRAY THEE, AND SEEK THY MASTER: LEST PERADVENTUREN THE SPIRIT OF THE LORD HATH TAKEN HIM UP, AND CAST HIM UPON SOME MOUNTAIN, OR2 INTO SOME VALLEY. AND HE SAID, YE SHALL NOT SEND.J# 17 AND WHEN THEY URGED HIM TILL HE WAS ASHAMED, HE SAID, SEND. THEY SENTD THEREFORE FIFTY MEN; AND THEY SOUGHT THREE DAYS, BUT FOUND HIM NOT.J# 18 AND WHEN THEY CAME AGAIN TO HIM, (FOR HE TARRIED AT JERICHO,) HE SAID+ UNTO THEM, DID I NOT SAY UNTO YOU, GO NOT?TG# 19 AND THE MEN OF THE CITY SAID UNTO ELISHA, BEHOLD, I PRAY THEE, THE G SITUATION OF THIS CITY IS PLEASANT, AS MY LORD SEETH: BUT THE WATER ISN NAUGHT, AND THE GROUND BARREN.OF# 20 AND HE SAID, BRING ME A NEW CRUSE, AND PUT SALT THEREIN. AND THEY BROUGHT IT TO HIM.TJ# 21 AND HE WENT FORTH UNTO THE SPRING OF THE WATERS, AND CAST THE SALT INN THERE, AND SAID, THUS SAITH THE LORD, I HAVE HEALED THESE WATERS; THERE SHALL2 NOT BE FROM THENCE ANY MORE DEATH OR BARREN LAND.H# 22 SO THE WATERS WERE HEALED UNTO THIS DAY, ACCORDING TO THE SAYING OF ELISHA WHICH HE SPAKE.HJ# 23 AND HE WENT UP FROM THENCE UNTO BETHEL: AND AS HE WAS GOING UP BY THEK WAY, THERE CAME FORTH LITTLE CHILDREN OUT OF THE CITY, AND MOCKED HIM, ANDN= SAID UNTO HIM, GO UP, THOU BALD HEAD; GO UP, THOU BALD HEAD. K# 24 AND HE TURNED BACK, AND LOOKED ON THEM, AND CURSED THEM IN THE NAME OFAM THE LORD. AND THERE CAME FORTH TWO SHE BEARS OUT OF THE WOOD, AND TARE FORTYT AND TWO CHILDREN OF THEM.L# 25 AND HE WENT FROM THENCE TO MOUNT CARMEL, AND FROM THENCE HE RETURNED TO SAMARIA.H = CHAPTER 3 I# 1 NOW JEHORAM THE SON OF AHAB BEGAN TO REIGN OVER ISRAEL IN SAMARIA THEYH EIGHTEENTH YEAR OF JEHOSHAPHAT KING OF JUDAH, AND REIGNED TWELVE YEARS.J# 2 AND HE WROUGHT EVIL IN THE SIGHT OF THE LORD; BUT NOT LIKE HIS FATHER,K AND LIKE HIS MOTHER: FOR HE PUT AWAY THE IMAGE OF BAAL THAT HIS FATHER HADT MADE.M# 3 NEVERTHELESS HE CLEAVED UNTO THE SINS OF JEROBOAM THE SON OF NEBAT, WHICHC/ MADE ISRAEL TO SIN; HE DEPARTED NOT THEREFROM. K# 4 AND MESHA KING OF MOAB WAS A SHEEPMASTER, AND RENDERED UNTO THE KING OFOI ISRAEL AN HUNDRED THOUSAND LAMBS, AND AN HUNDRED THOUSAND RAMS, WITH THET WOOL.K# 5 BUT IT CAME TO PASS, WHEN AHAB WAS DEAD, THAT THE KING OF MOAB REBELLEDT AGAINST THE KING OF ISRAEL.H# 6 AND KING JEHORAM WENT OUT OF SAMARIA THE SAME TIME, AND NUMBERED ALL ISRAEL.K# 7 AND HE WENT AND SENT TO JEHOSHAPHAT THE KING OF JUDAH, SAYING, THE KINGRG OF MOAB HATH REBELLED AGAINST ME: WILT THOU GO WITH ME AGAINST MOAB TOEN BATTLE? AND HE SAID, I WILL GO UP: I AM AS THOU ART, MY PEOPLE AS THY PEOPLE, AND MY HORSES AS THY HORSES.NK# 8 AND HE SAID, WHICH WAY SHALL WE GO UP? AND HE ANSWERED, 00j`1E1D%5%T6%! !THE WAY THROUGHP THE WILDERNESS OF EDOM.L# 9 SO THE KING OF ISRAEL WENT, AND THE KING OF JUDAH, AND THE KING OF EDOM:M AND THEY FETCHED A COMPASS OF SEVEN DAYS JOURNEY: AND THERE WAS NO WATER FORW1 THE HOST, AND FOR THE CATTLE THAT FOLLOWED THEM.NM# 10 AND THE KING OF ISRAEL SAID, ALAS! THAT THE LORD HATH CALLED THESE THREEO7 KINGS TOGETHER, TO DELIVER THEM INTO THE HAND OF MOAB!AK# 11 BUT JEHOSHAPHAT SAID, IS THERE NOT HERE A PROPHET OF THE LORD, THAT WE,H MAY ENQUIRE OF THE LORD BY HIM? AND ONE OF THE KING OF ISRAELS SERVANTSL ANSWERED AND SAID, HERE IS ELISHA THE SON OF SHAPHAT, WHICH POURED WATER ON THE HANDS OF ELIJAH. K# 12 AND JEHOSHAPHAT SAID, THE WORD OF THE LORD IS WITH HIM. SO THE KING OFS> ISRAEL AND JEHOSHAPHAT AND THE KING OF EDOM WENT DOWN TO HIM.J# 13 AND ELISHA SAID UNTO THE KING OF ISRAEL, WHAT HAVE I TO DO WITH THEE?K GET THEE TO THE PROPHETS OF THY FATHER, AND TO THE PROPHETS OF THY MOTHER. J AND THE KING OF ISRAEL SAID UNTO HIM, NAY: FOR THE LORD HATH CALLED THESE= THREE KINGS TOGETHER, TO DELIVER THEM INTO THE HAND OF MOAB.EG# 14 AND ELISHA SAID, AS THE LORD OF HOSTS LIVETH, BEFORE WHOM I STAND,HJ SURELY, WERE IT NOT THAT I REGARD THE PRESENCE OF JEHOSHAPHAT THE KING OF3 JUDAH, I WOULD NOT LOOK TOWARD THEE, NOR SEE THEE.NH# 15 BUT NOW BRING ME A MINSTREL. AND IT CAME TO PASS, WHEN THE MINSTREL1 PLAYED, THAT THE HAND OF THE LORD CAME UPON HIM.FH# 16 AND HE SAID, THUS SAITH THE LORD, MAKE THIS VALLEY FULL OF DITCHES.I# 17 FOR THUS SAITH THE LORD, YE SHALL NOT SEE WIND, NEITHER SHALL YE SEEIN RAIN; YET THAT VALLEY SHALL BE FILLED WITH WATER, THAT YE MAY DRINK, BOTH YE," AND YOUR CATTLE, AND YOUR BEASTS.L# 18 AND THIS IS BUT A LIGHT THING IN THE SIGHT OF THE LORD: HE WILL DELIVER" THE MOABITES ALSO INTO YOUR HAND.K# 19 AND YE SHALL SMITE EVERY FENCED CITY, AND EVERY CHOICE CITY, AND SHALLRL FELL EVERY GOOD TREE, AND STOP ALL WELLS OF WATER, AND MAR EVERY GOOD PIECE OF LAND WITH STONES.HL# 20 AND IT CAME TO PASS IN THE MORNING, WHEN THE MEAT OFFERING WAS OFFERED,N THAT, BEHOLD, THERE CAME WATER BY THE WAY OF EDOM, AND THE COUNTRY WAS FILLED WITH WATER.I# 21 AND WHEN ALL THE MOABITES HEARD THAT THE KINGS WERE COME UP TO FIGHTTM AGAINST THEM, THEY GATHERED ALL THAT WERE ABLE TO PUT ON ARMOUR, AND UPWARD,H AND STOOD IN THE BORDER.TM# 22 AND THEY ROSE UP EARLY IN THE MORNING, AND THE SUN SHONE UPON THE WATER,AB AND THE MOABITES SAW THE WATER ON THE OTHER SIDE AS RED AS BLOOD:L# 23 AND THEY SAID, THIS IS BLOOD: THE KINGS ARE SURELY SLAIN, AND THEY HAVE8 SMITTEN ONE ANOTHER: NOW THEREFORE, MOAB, TO THE SPOIL.I# 24 AND WHEN THEY CAME TO THE CAMP OF ISRAEL, THE ISRAELITES ROSE UP ANDSI SMOTE THE MOABITES, SO THAT THEY FLED BEFORE THEM: BUT THEY WENT FORWARDA- SMITING THE MOABITES, EVEN IN THEIR COUNTRY.HH# 25 AND THEY BEAT DOWN THE CITIES, AND ON EVERY GOOD PIECE OF LAND CASTM EVERY MAN HIS STONE, AND FILLED IT; AND THEY STOPPED ALL THE WELLS OF WATER,RH AND FELLED ALL THE GOOD TREES: ONLY IN KIRHARASETH LEFT THEY THE STONES; THEREOF; HOWBEIT THE SLINGERS WENT ABOUT IT, AND SMOTE IT.RK# 26 AND WHEN THE KING OF MOAB SAW THAT THE BATTLE WAS TOO SORE FOR HIM, HERM TOOK WITH HIM SEVEN HUNDRED MEN THAT DREW SWORDS, TO BREAK THROUGH EVEN UNTOH& THE KING OF EDOM: BUT THEY COULD NOT.K# 27 THEN HE TOOK HIS ELDEST SON THAT SHOULD HAVE REIGNED IN HIS STEAD, ANDOD OFFERED HIM FOR A BURNT OFFERING UPON THE WALL. AND THERE WAS GREATN INDIGNATION AGAINST ISRAEL: AND THEY DEPARTED FROM HIM, AND RETURNED TO THEIR OWN LAND. = CHAPTER 4 L# 1 NOW THERE CRIED A CERTAIN WOMAN OF THE WIVES OF THE SONS OF THE PROPHETSK UNTO ELISHA, SAYING, THY SERVANT MY HUSBAND IS DEAD; AND THOU KNOWEST THATSL THY SERVANT DID FEAR THE LORD: AND THE CREDITOR IS COME TO TAKE UNTO HIM MY TWO SONS TO BE BONDMEN.J# 2 AND ELISHA SAID UNTO HER, WHAT SHALL I DO FOR THEE? TELL ME, WHAT HASTJ THOU IN THE HOUSE? AND SHE SAID, THINE HANDMAID HATH NOT ANY THING IN THE HOUSE, SAVE A POT OF OIL.L# 3 THEN HE SAID, GO, BORROW THEE VESSELS ABROAD OF ALL THY NEIGHBOURS, EVEN! EMPTY VESSELS; BORROW N00jh1N1<%X>%+%O-%TADATADATAOT A FEW.TJ# 4 AND WHEN THOU ART COME IN, THOU SHALT SHUT THE DOOR UPON THEE AND UPONN THY SONS, AND SHALT POUR OUT INTO ALL THOSE VESSELS, AND THOU SHALT SET ASIDE THAT WHICH IS FULL.K# 5 SO SHE WENT FROM HIM, AND SHUT THE DOOR UPON HER AND UPON HER SONS, WHOS0 BROUGHT THE VESSELS TO HER; AND SHE POURED OUT.K# 6 AND IT CAME TO PASS, WHEN THE VESSELS WERE FULL, THAT SHE SAID UNTO HEREN SON, BRING ME YET A VESSEL. AND HE SAID UNTO HER, THERE IS NOT A VESSEL MORE. AND THE OIL STAYED.M# 7 THEN SHE CAME AND TOLD THE MAN OF GOD. AND HE SAID, GO, SELL THE OIL, ANDD: PAY THY DEBT, AND LIVE THOU AND THY CHILDREN OF THE REST.I# 8 AND IT FELL ON A DAY, THAT ELISHA PASSED TO SHUNEM, WHERE WAS A GREATEN WOMAN; AND SHE CONSTRAINED HIM TO EAT BREAD. AND SO IT WAS, THAT AS OFT AS HE. PASSED BY, HE TURNED IN THITHER TO EAT BREAD.I# 9 AND SHE SAID UNTO HER HUSBAND, BEHOLD NOW, I PERCEIVE THAT THIS IS ANR2 HOLY MAN OF GOD, WHICH PASSETH BY US CONTINUALLY.K# 10 LET US MAKE A LITTLE CHAMBER, I PRAY THEE, ON THE WALL; AND LET US SETOI FOR HIM THERE A BED, AND A TABLE, AND A STOOL, AND A CANDLESTICK: AND ITD? SHALL BE, WHEN HE COMETH TO US, THAT HE SHALL TURN IN THITHER. G# 11 AND IT FELL ON A DAY, THAT HE CAME THITHER, AND HE TURNED INTO THEE CHAMBER, AND LAY THERE.M# 12 AND HE SAID TO GEHAZI HIS SERVANT, CALL THIS SHUNAMMITE. AND WHEN HE HADA" CALLED HER, SHE STOOD BEFORE HIM.K# 13 AND HE SAID UNTO HIM, SAY NOW UNTO HER, BEHOLD, THOU HAST BEEN CAREFULI FOR US WITH ALL THIS CARE; WHAT IS TO BE DONE FOR THEE? WOULDEST THOU BEOK SPOKEN FOR TO THE KING, OR TO THE CAPTAIN OF THE HOST? AND SHE ANSWERED, I DWELL AMONG MINE OWN PEOPLE.,G# 14 AND HE SAID, WHAT THEN IS TO BE DONE FOR HER? AND GEHAZI ANSWERED, 2 VERILY SHE HATH NO CHILD, AND HER HUSBAND IS OLD.H# 15 AND HE SAID, CALL HER. AND WHEN HE HAD CALLED HER, SHE STOOD IN THE DOOR.H# 16 AND HE SAID, ABOUT THIS SEASON, ACCORDING TO THE TIME OF LIFE, THOUM SHALT EMBRACE A SON. AND SHE SAID, NAY, MY LORD, THOU MAN OF GOD, DO NOT LIEI UNTO THINE HANDMAID.WK# 17 AND THE WOMAN CONCEIVED, AND BARE A SON AT THAT SEASON THAT ELISHA HAD . SAID UNTO HER, ACCORDING TO THE TIME OF LIFE.L# 18 AND WHEN THE CHILD WAS GROWN, IT FELL ON A DAY, THAT HE WENT OUT TO HIS FATHER TO THE REAPERS.AI# 19 AND HE SAID UNTO HIS FATHER, MY HEAD, MY HEAD. AND HE SAID TO A LAD,H CARRY HIM TO HIS MOTHER..L# 20 AND WHEN HE HAD TAKEN HIM, AND BROUGHT HIM TO HIS MOTHER, HE SAT ON HER KNEES TILL NOON, AND THEN DIED.M# 21 AND SHE WENT UP, AND LAID HIM ON THE BED OF THE MAN OF GOD, AND SHUT THEE DOOR UPON HIM, AND WENT OUT.NL# 22 AND SHE CALLED UNTO HER HUSBAND, AND SAID, SEND ME, I PRAY THEE, ONE OFK THE YOUNG MEN, AND ONE OF THE ASSES, THAT I MAY RUN TO THE MAN OF GOD, ANDH COME AGAIN.I# 23 AND HE SAID, WHEREFORE WILT THOU GO TO HIM TO DAY? IT IS NEITHER NEWS3 MOON, NOR SABBATH. AND SHE SAID, IT SHALL BE WELL.WM# 24 THEN SHE SADDLED AN ASS, AND SAID TO HER SERVANT, DRIVE, AND GO FORWARD; 0 SLACK NOT THY RIDING FOR ME, EXCEPT I BID THEE.M# 25 SO SHE WENT AND CAME UNTO THE MAN OF GOD TO MOUNT CARMEL. AND IT CAME TOTG PASS, WHEN THE MAN OF GOD SAW HER AFAR OFF, THAT HE SAID TO GEHAZI HIS , SERVANT, BEHOLD, YONDER IS THAT SHUNAMMITE:I# 26 RUN NOW, I PRAY THEE, TO MEET HER, AND SAY UNTO HER, IS IT WELL WITHRF THEE? IS IT WELL WITH THY HUSBAND? IS IT WELL WITH THE CHILD? AND SHE ANSWERED, IT IS WELL:K# 27 AND WHEN SHE CAME TO THE MAN OF GOD TO THE HILL, SHE CAUGHT HIM BY THE L FEET: BUT GEHAZI CAME NEAR TO THRUST HER AWAY. AND THE MAN OF GOD SAID, LETK HER ALONE; FOR HER SOUL IS VEXED WITHIN HER: AND THE LORD HATH HID IT FROM  ME, AND HATH NOT TOLD ME.H# 28 THEN SHE SAID, DID I DESIRE A SON OF MY LORD? DID I NOT SAY, DO NOT DECEIVE ME?J# 29 THEN HE SAID TO GEHAZI, GIRD UP THY LOINS, AND TAKE MY STAFF IN THINEN HAND, AND GO THY WAY: IF THOU MEET ANY MAN, SALUTE HIM NOT; AND IF ANY SALUTEI THEE, ANSWER HIM NOT AGAIN: AND LAY MY STAFF UPON THE FACE OF THE CHILD.MJ# 30 AND THE MOTHER OF THE CHILD SAID, AS THE LORD LIVETH, AND AS THY SOUL? LIVETH, I WILL NOT LE00jp1E1D%5%T6%! !AVE THEE. AND HE AROSE, AND FOLLOWED HER. J# 31 AND GEHAZI PASSED ON BEFORE THEM, AND LAID THE STAFF UPON THE FACE OFM THE CHILD; BUT THERE WAS NEITHER VOICE, NOR HEARING. WHEREFORE HE WENT AGAINI< TO MEET HIM, AND TOLD HIM, SAYING, THE CHILD IS NOT AWAKED.M# 32 AND WHEN ELISHA WAS COME INTO THE HOUSE, BEHOLD, THE CHILD WAS DEAD, ANDT LAID UPON HIS BED.GM# 33 HE WENT IN THEREFORE, AND SHUT THE DOOR UPON THEM TWAIN, AND PRAYED UNTOC THE LORD.G# 34 AND HE WENT UP, AND LAY UPON THE CHILD, AND PUT HIS MOUTH UPON HISEE MOUTH, AND HIS EYES UPON HIS EYES, AND HIS HANDS UPON HIS HANDS: ANDLI STRETCHED HIMSELF UPON THE CHILD; AND THE FLESH OF THE CHILD WAXED WARM.RK# 35 THEN HE RETURNED, AND WALKED IN THE HOUSE TO AND FRO; AND WENT UP, ANDHM STRETCHED HIMSELF UPON HIM: AND THE CHILD SNEEZED SEVEN TIMES, AND THE CHILDH OPENED HIS EYES.L# 36 AND HE CALLED GEHAZI, AND SAID, CALL THIS SHUNAMMITE. SO HE CALLED HER.= AND WHEN SHE WAS COME IN UNTO HIM, HE SAID, TAKE UP THY SON.YM# 37 THEN SHE WENT IN, AND FELL AT HIS FEET, AND BOWED HERSELF TO THE GROUND,S# AND TOOK UP HER SON, AND WENT OUT.M# 38 AND ELISHA CAME AGAIN TO GILGAL: AND THERE WAS A DEARTH IN THE LAND; AND5G THE SONS OF THE PROPHETS WERE SITTING BEFORE HIM: AND HE SAID UNTO HISF SERVANT, SET ON THE GREAT POT, AND SEETHE POTTAGE FOR THE SONS OF THE PROPHETS.L# 39 AND ONE WENT OUT INTO THE FIELD TO GATHER HERBS, AND FOUND A WILD VINE,L AND GATHERED THEREOF WILD GOURDS HIS LAP FULL, AND CAME AND SHRED THEM INTO, THE POT OF POTTAGE: FOR THEY KNEW THEM NOT.M# 40 SO THEY POURED OUT FOR THE MEN TO EAT. AND IT CAME TO PASS, AS THEY WEREAI EATING OF THE POTTAGE, THAT THEY CRIED OUT, AND SAID, O THOU MAN OF GOD,T; THERE IS DEATH IN THE POT. AND THEY COULD NOT EAT THEREOF.UL# 41 BUT HE SAID, THEN BRING MEAL. AND HE CAST IT INTO THE POT; AND HE SAID,N POUR OUT FOR THE PEOPLE, THAT THEY MAY EAT. AND THERE WAS NO HARM IN THE POT.M# 42 AND THERE CAME A MAN FROM BAALSHALISHA, AND BROUGHT THE MAN OF GOD BREADDJ OF THE FIRSTFRUITS, TWENTY LOAVES OF BARLEY, AND FULL EARS OF CORN IN THED HUSK THEREOF. AND HE SAID, GIVE UNTO THE PEOPLE, THAT THEY MAY EAT.M# 43 AND HIS SERVITOR SAID, WHAT, SHOULD I SET THIS BEFORE AN HUNDRED MEN? HEEN SAID AGAIN, GIVE THE PEOPLE, THAT THEY MAY EAT: FOR THUS SAITH THE LORD, THEY$ SHALL EAT, AND SHALL LEAVE THEREOF.L# 44 SO HE SET IT BEFORE THEM, AND THEY DID EAT, AND LEFT THEREOF, ACCORDING TO THE WORD OF THE LORD.C = CHAPTER 5 N# 1 NOW NAAMAN, CAPTAIN OF THE HOST OF THE KING OF SYRIA, WAS A GREAT MAN WITHJ HIS MASTER, AND HONOURABLE, BECAUSE BY HIM THE LORD HAD GIVEN DELIVERANCED UNTO SYRIA: HE WAS ALSO A MIGHTY MAN IN VALOUR, BUT HE WAS A LEPER.K# 2 AND THE SYRIANS HAD GONE OUT BY COMPANIES, AND HAD BROUGHT AWAY CAPTIVEEI OUT OF THE LAND OF ISRAEL A LITTLE MAID; AND SHE WAITED ON NAAMANS WIFE.EK# 3 AND SHE SAID UNTO HER MISTRESS, WOULD GOD MY LORD WERE WITH THE PROPHETO= THAT IS IN SAMARIA! FOR HE WOULD RECOVER HIM OF HIS LEPROSY. K# 4 AND ONE WENT IN, AND TOLD HIS LORD, SAYING, THUS AND THUS SAID THE MAIDM THAT IS OF THE LAND OF ISRAEL. L# 5 AND THE KING OF SYRIA SAID, GO TO, GO, AND I WILL SEND A LETTER UNTO THEN KING OF ISRAEL. AND HE DEPARTED, AND TOOK WITH HIM TEN TALENTS OF SILVER, AND9 SIX THOUSAND PIECES OF GOLD, AND TEN CHANGES OF RAIMENT.LJ# 6 AND HE BROUGHT THE LETTER TO THE KING OF ISRAEL, SAYING, NOW WHEN THISM LETTER IS COME UNTO THEE, BEHOLD, I HAVE THEREWITH SENT NAAMAN MY SERVANT TOE3 THEE, THAT THOU MAYEST RECOVER HIM OF HIS LEPROSY.TM# 7 AND IT CAME TO PASS, WHEN THE KING OF ISRAEL HAD READ THE LETTER, THAT HEAK RENT HIS CLOTHES, AND SAID, AM I GOD, TO KILL AND TO MAKE ALIVE, THAT THISOM MAN DOTH SEND UNTO ME TO RECOVER A MAN OF HIS LEPROSY? WHEREFORE CONSIDER, I,7 PRAY YOU, AND SEE HOW HE SEEKETH A QUARREL AGAINST ME.IH# 8 AND IT WAS SO, WHEN ELISHA THE MAN OF GOD HAD HEARD THAT THE KING OFN ISRAEL HAD RENT HIS CLOTHES, THAT HE SENT TO THE KING, SAYING, WHEREFORE HASTL THOU RENT THY CLOTHES? LET HIM COME NOW TO ME, AND HE SHALL KNOW THAT THERE IS A PROPHET IN ISRAEL.I# 9 00jx1N1<%X>%+%O-%TADATADATASO NAAMAN CAME WITH HIS HORSES AND WITH HIS CHARIOT, AND STOOD AT THEO DOOR OF THE HOUSE OF ELISHA.HH# 10 AND ELISHA SENT A MESSENGER UNTO HIM, SAYING, GO AND WASH IN JORDANN SEVEN TIMES, AND THY FLESH SHALL COME AGAIN TO THEE, AND THOU SHALT BE CLEAN.I# 11 BUT NAAMAN WAS WROTH, AND WENT AWAY, AND SAID, BEHOLD, I THOUGHT, HE L WILL SURELY COME OUT TO ME, AND STAND, AND CALL ON THE NAME OF THE LORD HIS@ GOD, AND STRIKE HIS HAND OVER THE PLACE, AND RECOVER THE LEPER.G# 12 ARE NOT ABANA AND PHARPAR, RIVERS OF DAMASCUS, BETTER THAN ALL THETN WATERS OF ISRAEL? MAY I NOT WASH IN THEM, AND BE CLEAN? SO HE TURNED AND WENT AWAY IN A RAGE.L# 13 AND HIS SERVANTS CAME NEAR, AND SPAKE UNTO HIM, AND SAID, MY FATHER, IFN THE PROPHET HAD BID THEE DO SOME GREAT THING, WOULDEST THOU NOT HAVE DONE IT?A HOW MUCH RATHER THEN, WHEN HE SAITH TO THEE, WASH, AND BE CLEAN?,K# 14 THEN WENT HE DOWN, AND DIPPED HIMSELF SEVEN TIMES IN JORDAN, ACCORDINGVN TO THE SAYING OF THE MAN OF GOD: AND HIS FLESH CAME AGAIN LIKE UNTO THE FLESH% OF A LITTLE CHILD, AND HE WAS CLEAN. M# 15 AND HE RETURNED TO THE MAN OF GOD, HE AND ALL HIS COMPANY, AND CAME, ANDNN STOOD BEFORE HIM: AND HE SAID, BEHOLD, NOW I KNOW THAT THERE IS NO GOD IN ALLM THE EARTH, BUT IN ISRAEL: NOW THEREFORE, I PRAY THEE, TAKE A BLESSING OF THYO SERVANT.WI# 16 BUT HE SAID, AS THE LORD LIVETH, BEFORE WHOM I STAND, I WILL RECEIVEE3 NONE. AND HE URGED HIM TO TAKE IT; BUT HE REFUSED. H# 17 AND NAAMAN SAID, SHALL THERE NOT THEN, I PRAY THEE, BE GIVEN TO THYI SERVANT TWO MULES BURDEN OF EARTH? FOR THY SERVANT WILL HENCEFORTH OFFERNI NEITHER BURNT OFFERING NOR SACRIFICE UNTO OTHER GODS, BUT UNTO THE LORD. I# 18 IN THIS THING THE LORD PARDON THY SERVANT, THAT WHEN MY MASTER GOETHHL INTO THE HOUSE OF RIMMON TO WORSHIP THERE, AND HE LEANETH ON MY HAND, AND IJ BOW MYSELF IN THE HOUSE OF RIMMON: WHEN I BOW DOWN MYSELF IN THE HOUSE OF3 RIMMON, THE LORD PARDON THY SERVANT IN THIS THING.DM# 19 AND HE SAID UNTO HIM, GO IN PEACE. SO HE DEPARTED FROM HIM A LITTLE WAY.SG# 20 BUT GEHAZI, THE SERVANT OF ELISHA THE MAN OF GOD, SAID, BEHOLD, MYJ MASTER HATH SPARED NAAMAN THIS SYRIAN, IN NOT RECEIVING AT HIS HANDS THATJ WHICH HE BROUGHT: BUT, AS THE LORD LIVETH, I WILL RUN AFTER HIM, AND TAKE SOMEWHAT OF HIM.RK# 21 SO GEHAZI FOLLOWED AFTER NAAMAN. AND WHEN NAAMAN SAW HIM RUNNING AFTERHJ HIM, HE LIGHTED DOWN FROM THE CHARIOT TO MEET HIM, AND SAID, IS ALL WELL?K# 22 AND HE SAID, ALL IS WELL. MY MASTER HATH SENT ME, SAYING, BEHOLD, EVENHL NOW THERE BE COME TO ME FROM MOUNT EPHRAIM TWO YOUNG MEN OF THE SONS OF THEI PROPHETS: GIVE THEM, I PRAY THEE, A TALENT OF SILVER, AND TWO CHANGES OFN GARMENTS.I# 23 AND NAAMAN SAID, BE CONTENT, TAKE TWO TALENTS. AND HE URGED HIM, ANDAK BOUND TWO TALENTS OF SILVER IN TWO BAGS, WITH TWO CHANGES OF GARMENTS, AND C LAID THEM UPON TWO OF HIS SERVANTS; AND THEY BARE THEM BEFORE HIM.EE# 24 AND WHEN HE CAME TO THE TOWER, HE TOOK THEM FROM THEIR HAND, ANDWF BESTOWED THEM IN THE HOUSE: AND HE LET THE MEN GO, AND THEY DEPARTED.K# 25 BUT HE WENT IN, AND STOOD BEFORE HIS MASTER. AND ELISHA SAID UNTO HIM,MF WHENCE COMEST THOU, GEHAZI? AND HE SAID, THY SERVANT WENT NO WHITHER.M# 26 AND HE SAID UNTO HIM, WENT NOT MINE HEART WITH THEE, WHEN THE MAN TURNEDTK AGAIN FROM HIS CHARIOT TO MEET THEE? IS IT A TIME TO RECEIVE MONEY, AND TOHJ RECEIVE GARMENTS, AND OLIVEYARDS, AND VINEYARDS, AND SHEEP, AND OXEN, AND MENSERVANTS, AND MAIDSERVANTS?MI# 27 THE LEPROSY THEREFORE OF NAAMAN SHALL CLEAVE UNTO THEE, AND UNTO THY K SEED FOR EVER. AND HE WENT OUT FROM HIS PRESENCE A LEPER AS WHITE AS SNOW.S = CHAPTER 6 N# 1 AND THE SONS OF THE PROPHETS SAID UNTO ELISHA, BEHOLD NOW, THE PLACE WHERE) WE DWELL WITH THEE IS TOO STRAIT FOR US.TK# 2 LET US GO, WE PRAY THEE, UNTO JORDAN, AND TAKE THENCE EVERY MAN A BEAM, N AND LET US MAKE US A PLACE THERE, WHERE WE MAY DWELL. AND HE ANSWERED, GO YE.K# 3 AND ONE SAID, BE CONTENT, I PRAY THEE, AND GO WITH THY SERVANTS. AND HEO ANSWERED, I WILL GO.SK# 4 SO HE WENT WITH THEM. AND WHEN THEY CAME TO JORDAN, THEY CUT DOW00j1E1D%5%T6%! !N WOOD.SK# 5 BUT AS ONE WAS FELLING A BEAM, THE AXE HEAD FELL INTO THE WATER: AND HER4 CRIED, AND SAID, ALAS, MASTER! FOR IT WAS BORROWED.L# 6 AND THE MAN OF GOD SAID, WHERE FELL IT? AND HE SHEWED HIM THE PLACE. ANDD HE CUT DOWN A STICK, AND CAST IT IN THITHER; AND THE IRON DID SWIM.L# 7 THEREFORE SAID HE, TAKE IT UP TO THEE. AND HE PUT OUT HIS HAND, AND TOOK IT.K# 8 THEN THE KING OF SYRIA WARRED AGAINST ISRAEL, AND TOOK COUNSEL WITH HISO= SERVANTS, SAYING, IN SUCH AND SUCH A PLACE SHALL BE MY CAMP. M# 9 AND THE MAN OF GOD SENT UNTO THE KING OF ISRAEL, SAYING, BEWARE THAT THOUD> PASS NOT SUCH A PLACE; FOR THITHER THE SYRIANS ARE COME DOWN.K# 10 AND THE KING OF ISRAEL SENT TO THE PLACE WHICH THE MAN OF GOD TOLD HIM @ AND WARNED HIM OF, AND SAVED HIMSELF THERE, NOT ONCE NOR TWICE.H# 11 THEREFORE THE HEART OF THE KING OF SYRIA WAS SORE TROUBLED FOR THISK THING; AND HE CALLED HIS SERVANTS, AND SAID UNTO THEM, WILL YE NOT SHEW MEW' WHICH OF US IS FOR THE KING OF ISRAEL?SI# 12 AND ONE OF HIS SERVANTS SAID, NONE, MY LORD, O KING: BUT ELISHA, THEFJ PROPHET THAT IS IN ISRAEL, TELLETH THE KING OF ISRAEL THE WORDS THAT THOU SPEAKEST IN THY BEDCHAMBER.L# 13 AND HE SAID, GO AND SPY WHERE HE IS, THAT I MAY SEND AND FETCH HIM. AND2 IT WAS TOLD HIM, SAYING, BEHOLD, HE IS IN DOTHAN.J# 14 THEREFORE SENT HE THITHER HORSES, AND CHARIOTS, AND A GREAT HOST: AND2 THEY CAME BY NIGHT, AND COMPASSED THE CITY ABOUT.L# 15 AND WHEN THE SERVANT OF THE MAN OF GOD WAS RISEN EARLY, AND GONE FORTH,J BEHOLD, AN HOST COMPASSED THE CITY BOTH WITH HORSES AND CHARIOTS. AND HIS9 SERVANT SAID UNTO HIM, ALAS, MY MASTER! HOW SHALL WE DO?SK# 16 AND HE ANSWERED, FEAR NOT: FOR THEY THAT BE WITH US ARE MORE THAN THEYH THAT BE WITH THEM. K# 17 AND ELISHA PRAYED, AND SAID, LORD, I PRAY THEE, OPEN HIS EYES, THAT HETI MAY SEE. AND THE LORD OPENED THE EYES OF THE YOUNG MAN; AND HE SAW: AND, I BEHOLD, THE MOUNTAIN WAS FULL OF HORSES AND CHARIOTS OF FIRE ROUND ABOUTT ELISHA.K# 18 AND WHEN THEY CAME DOWN TO HIM, ELISHA PRAYED UNTO THE LORD, AND SAID,HG SMITE THIS PEOPLE, I PRAY THEE, WITH BLINDNESS. AND HE SMOTE THEM WITHE+ BLINDNESS ACCORDING TO THE WORD OF ELISHA.EH# 19 AND ELISHA SAID UNTO THEM, THIS IS NOT THE WAY, NEITHER IS THIS THEJ CITY: FOLLOW ME, AND I WILL BRING YOU TO THE MAN WHOM YE SEEK. BUT HE LED THEM TO SAMARIA.HM# 20 AND IT CAME TO PASS, WHEN THEY WERE COME INTO SAMARIA, THAT ELISHA SAID,II LORD, OPEN THE EYES OF THESE MEN, THAT THEY MAY SEE. AND THE LORD OPENEDWJ THEIR EYES, AND THEY SAW; AND, BEHOLD, THEY WERE IN THE MIDST OF SAMARIA.J# 21 AND THE KING OF ISRAEL SAID UNTO ELISHA, WHEN HE SAW THEM, MY FATHER,( SHALL I SMITE THEM? SHALL I SMITE THEM?J# 22 AND HE ANSWERED, THOU SHALT NOT SMITE THEM: WOULDEST THOU SMITE THOSEL WHOM THOU HAST TAKEN CAPTIVE WITH THY SWORD AND WITH THY BOW? SET BREAD ANDH WATER BEFORE THEM, THAT THEY MAY EAT AND DRINK, AND GO TO THEIR MASTER.J# 23 AND HE PREPARED GREAT PROVISION FOR THEM: AND WHEN THEY HAD EATEN ANDI DRUNK, HE SENT THEM AWAY, AND THEY WENT TO THEIR MASTER. SO THE BANDS OFD, SYRIA CAME NO MORE INTO THE LAND OF ISRAEL.M# 24 AND IT CAME TO PASS AFTER THIS, THAT BENHADAD KING OF SYRIA GATHERED ALLE- HIS HOST, AND WENT UP, AND BESIEGED SAMARIA.IL# 25 AND THERE WAS A GREAT FAMINE IN SAMARIA: AND, BEHOLD, THEY BESIEGED IT,K UNTIL AN ASSS HEAD WAS SOLD FOR FOURSCORE PIECES OF SILVER, AND THE FOURTH 7 PART OF A CAB OF DOVES DUNG FOR FIVE PIECES OF SILVER.TJ# 26 AND AS THE KING OF ISRAEL WAS PASSING BY UPON THE WALL, THERE CRIED A/ WOMAN UNTO HIM, SAYING, HELP, MY LORD, O KING.M# 27 AND HE SAID, IF THE LORD DO NOT HELP THEE, WHENCE SHALL I HELP THEE? OUTI+ OF THE BARNFLOOR, OR OUT OF THE WINEPRESS?I# 28 AND THE KING SAID UNTO HER, WHAT AILETH THEE? AND SHE ANSWERED, THISFN WOMAN SAID UNTO ME, GIVE THY SON, THAT WE MAY EAT HIM TO DAY, AND WE WILL EAT MY SON TO MORROW.J# 29 SO WE BOILED MY SON, AND DID EAT HIM: AND I SAID UNTO HER ON THE NEXTB DAY, GIVE THY SON, THAT WE MAY EAT HIM: AND SHE HATH HID HER SON.M# 30 AND IT CAME TO PASS, WHEN THE KING HEARD 00j1N1<%X>%+%O-%TADATADATATHE WORDS OF THE WOMAN, THAT HE N RENT HIS CLOTHES; AND HE PASSED BY UPON THE WALL, AND THE PEOPLE LOOKED, AND,0 BEHOLD, HE HAD SACKCLOTH WITHIN UPON HIS FLESH.K# 31 THEN HE SAID, GOD DO SO AND MORE ALSO TO ME, IF THE HEAD OF ELISHA THEM, SON OF SHAPHAT SHALL STAND ON HIM THIS DAY.K# 32 BUT ELISHA SAT IN HIS HOUSE, AND THE ELDERS SAT WITH HIM; AND THE KING:N SENT A MAN FROM BEFORE HIM: BUT ERE THE MESSENGER CAME TO HIM, HE SAID TO THEL ELDERS, SEE YE HOW THIS SON OF A MURDERER HATH SENT TO TAKE AWAY MINE HEAD?I LOOK, WHEN THE MESSENGER COMETH, SHUT THE DOOR, AND HOLD HIM FAST AT THEA7 DOOR: IS NOT THE SOUND OF HIS MASTERS FEET BEHIND HIM?HL# 33 AND WHILE HE YET TALKED WITH THEM, BEHOLD, THE MESSENGER CAME DOWN UNTOK HIM: AND HE SAID, BEHOLD, THIS EVIL IS OF THE LORD; WHAT SHOULD I WAIT FORI THE LORD ANY LONGER?N = CHAPTER 7 K# 1 THEN ELISHA SAID, HEAR YE THE WORD OF THE LORD; THUS SAITH THE LORD, TORK MORROW ABOUT THIS TIME SHALL A MEASURE OF FINE FLOUR BE SOLD FOR A SHEKEL, A AND TWO MEASURES OF BARLEY FOR A SHEKEL, IN THE GATE OF SAMARIA.TJ# 2 THEN A LORD ON WHOSE HAND THE KING LEANED ANSWERED THE MAN OF GOD, ANDM SAID, BEHOLD, IF THE LORD WOULD MAKE WINDOWS IN HEAVEN, MIGHT THIS THING BE?EJ AND HE SAID, BEHOLD, THOU SHALT SEE IT WITH THINE EYES, BUT SHALT NOT EAT THEREOF.IL# 3 AND THERE WERE FOUR LEPROUS MEN AT THE ENTERING IN OF THE GATE: AND THEY3 SAID ONE TO ANOTHER, WHY SIT WE HERE UNTIL WE DIE? K# 4 IF WE SAY, WE WILL ENTER INTO THE CITY, THEN THE FAMINE IS IN THE CITY,OM AND WE SHALL DIE THERE: AND IF WE SIT STILL HERE, WE DIE ALSO. NOW THEREFOREWN COME, AND LET US FALL UNTO THE HOST OF THE SYRIANS: IF THEY SAVE US ALIVE, WE3 SHALL LIVE; AND IF THEY KILL US, WE SHALL BUT DIE.EM# 5 AND THEY ROSE UP IN THE TWILIGHT, TO GO UNTO THE CAMP OF THE SYRIANS: ANDTN WHEN THEY WERE COME TO THE UTTERMOST PART OF THE CAMP OF SYRIA, BEHOLD, THERE WAS NO MAN THERE.D# 6 FOR THE LORD HAD MADE THE HOST OF THE SYRIANS TO HEAR A NOISE OFJ CHARIOTS, AND A NOISE OF HORSES, EVEN THE NOISE OF A GREAT HOST: AND THEYL SAID ONE TO ANOTHER, LO, THE KING OF ISRAEL HATH HIRED AGAINST US THE KINGSB OF THE HITTITES, AND THE KINGS OF THE EGYPTIANS, TO COME UPON US.L# 7 WHEREFORE THEY AROSE AND FLED IN THE TWILIGHT, AND LEFT THEIR TENTS, ANDK THEIR HORSES, AND THEIR ASSES, EVEN THE CAMP AS IT WAS, AND FLED FOR THEIRM LIFE.K# 8 AND WHEN THESE LEPERS CAME TO THE UTTERMOST PART OF THE CAMP, THEY WENTDK INTO ONE TENT, AND DID EAT AND DRINK, AND CARRIED THENCE SILVER, AND GOLD,OK AND RAIMENT, AND WENT AND HID IT; AND CAME AGAIN, AND ENTERED INTO ANOTHER 4 TENT, AND CARRIED THENCE ALSO, AND WENT AND HID IT.L# 9 THEN THEY SAID ONE TO ANOTHER, WE DO NOT WELL: THIS DAY IS A DAY OF GOODI TIDINGS, AND WE HOLD OUR PEACE: IF WE TARRY TILL THE MORNING LIGHT, SOME,L MISCHIEF WILL COME UPON US: NOW THEREFORE COME, THAT WE MAY GO AND TELL THE KINGS HOUSEHOLD. M# 10 SO THEY CAME AND CALLED UNTO THE PORTER OF THE CITY: AND THEY TOLD THEM, J SAYING, WE CAME TO THE CAMP OF THE SYRIANS, AND, BEHOLD, THERE WAS NO MANL THERE, NEITHER VOICE OF MAN, BUT HORSES TIED, AND ASSES TIED, AND THE TENTS AS THEY WERE.K# 11 AND HE CALLED THE PORTERS; AND THEY TOLD IT TO THE KINGS HOUSE WITHIN.DL# 12 AND THE KING AROSE IN THE NIGHT, AND SAID UNTO HIS SERVANTS, I WILL NOWH SHEW YOU WHAT THE SYRIANS HAVE DONE TO US. THEY KNOW THAT WE BE HUNGRY;I THEREFORE ARE THEY GONE OUT OF THE CAMP TO HIDE THEMSELVES IN THE FIELD,TK SAYING, WHEN THEY COME OUT OF THE CITY, WE SHALL CATCH THEM ALIVE, AND GETI INTO THE CITY. K# 13 AND ONE OF HIS SERVANTS ANSWERED AND SAID, LET SOME TAKE, I PRAY THEE,EN FIVE OF THE HORSES THAT REMAIN, WHICH ARE LEFT IN THE CITY, (BEHOLD, THEY AREL AS ALL THE MULTITUDE OF ISRAEL THAT ARE LEFT IN IT: BEHOLD, I SAY, THEY AREK EVEN AS ALL THE MULTITUDE OF THE ISRAELITES THAT ARE CONSUMED:) AND LET USH SEND AND SEE.M# 14 THEY TOOK THEREFORE TWO CHARIOT HORSES; AND THE KING SENT AFTER THE HOSTF$ OF THE SYRIANS, SAYING, GO AND SEE.K# 15 AND THEY WENT AFTER THEM UNTO JORDAN: AND, LO, ALL THE WAY WAS FULL OFE00j1E1D%5%T6%! !N GARMENTS AND VESSELS, WHICH THE SYRIANS HAD CAST AWAY IN THEIR HASTE. AND THE( MESSENGERS RETURNED, AND TOLD THE KING.H# 16 AND THE PEOPLE WENT OUT, AND SPOILED THE TENTS OF THE SYRIANS. SO AN MEASURE OF FINE FLOUR WAS SOLD FOR A SHEKEL, AND TWO MEASURES OF BARLEY FOR A+ SHEKEL, ACCORDING TO THE WORD OF THE LORD.4H# 17 AND THE KING APPOINTED THE LORD ON WHOSE HAND HE LEANED TO HAVE THEL CHARGE OF THE GATE: AND THE PEOPLE TRODE UPON HIM IN THE GATE, AND HE DIED,F AS THE MAN OF GOD HAD SAID, WHO SPAKE WHEN THE KING CAME DOWN TO HIM.J# 18 AND IT CAME TO PASS AS THE MAN OF GOD HAD SPOKEN TO THE KING, SAYING,G TWO MEASURES OF BARLEY FOR A SHEKEL, AND A MEASURE OF FINE FLOUR FOR ASC SHEKEL, SHALL BE TO MORROW ABOUT THIS TIME IN THE GATE OF SAMARIA:EI# 19 AND THAT LORD ANSWERED THE MAN OF GOD, AND SAID, NOW, BEHOLD, IF THEAH LORD SHOULD MAKE WINDOWS IN HEAVEN, MIGHT SUCH A THING BE? AND HE SAID,F BEHOLD, THOU SHALT SEE IT WITH THINE EYES, BUT SHALT NOT EAT THEREOF.L# 20 AND SO IT FELL OUT UNTO HIM: FOR THE PEOPLE TRODE UPON HIM IN THE GATE, AND HE DIED.A = CHAPTER 8 H# 1 THEN SPAKE ELISHA UNTO THE WOMAN, WHOSE SON HE HAD RESTORED TO LIFE,M SAYING, ARISE, AND GO THOU AND THINE HOUSEHOLD, AND SOJOURN WHERESOEVER THOUTM CANST SOJOURN: FOR THE LORD HATH CALLED FOR A FAMINE; AND IT SHALL ALSO COMEA UPON THE LAND SEVEN YEARS.RL# 2 AND THE WOMAN AROSE, AND DID AFTER THE SAYING OF THE MAN OF GOD: AND SHEL WENT WITH HER HOUSEHOLD, AND SOJOURNED IN THE LAND OF THE PHILISTINES SEVEN YEARS. K# 3 AND IT CAME TO PASS AT THE SEVEN YEARS END, THAT THE WOMAN RETURNED OUTEL OF THE LAND OF THE PHILISTINES: AND SHE WENT FORTH TO CRY UNTO THE KING FOR HER HOUSE AND FOR HER LAND.J# 4 AND THE KING TALKED WITH GEHAZI THE SERVANT OF THE MAN OF GOD, SAYING,B TELL ME, I PRAY THEE, ALL THE GREAT THINGS THAT ELISHA HATH DONE.I# 5 AND IT CAME TO PASS, AS HE WAS TELLING THE KING HOW HE HAD RESTORED AMI DEAD BODY TO LIFE, THAT, BEHOLD, THE WOMAN, WHOSE SON HE HAD RESTORED TOTL LIFE, CRIED TO THE KING FOR HER HOUSE AND FOR HER LAND. AND GEHAZI SAID, MYN LORD, O KING, THIS IS THE WOMAN, AND THIS IS HER SON, WHOM ELISHA RESTORED TO LIFE.J# 6 AND WHEN THE KING ASKED THE WOMAN, SHE TOLD HIM. SO THE KING APPOINTEDK UNTO HER A CERTAIN OFFICER, SAYING, RESTORE ALL THAT WAS HERS, AND ALL THELJ FRUITS OF THE FIELD SINCE THE DAY THAT SHE LEFT THE LAND, EVEN UNTIL NOW.M# 7 AND ELISHA CAME TO DAMASCUS; AND BENHADAD THE KING OF SYRIA WAS SICK; AND 8 IT WAS TOLD HIM, SAYING, THE MAN OF GOD IS COME HITHER.M# 8 AND THE KING SAID UNTO HAZAEL, TAKE A PRESENT IN THINE HAND, AND GO, MEETSK THE MAN OF GOD, AND ENQUIRE OF THE LORD BY HIM, SAYING, SHALL I RECOVER OFN THIS DISEASE?J# 9 SO HAZAEL WENT TO MEET HIM, AND TOOK A PRESENT WITH HIM, EVEN OF EVERYL GOOD THING OF DAMASCUS, FORTY CAMELS BURDEN, AND CAME AND STOOD BEFORE HIM,M AND SAID, THY SON BENHADAD KING OF SYRIA HATH SENT ME TO THEE, SAYING, SHALL; I RECOVER OF THIS DISEASE?IF# 10 AND ELISHA SAID UNTO HIM, GO, SAY UNTO HIM, THOU MAYEST CERTAINLYC RECOVER: HOWBEIT THE LORD HATH SHEWED ME THAT HE SHALL SURELY DIE.AM# 11 AND HE SETTLED HIS COUNTENANCE STEDFASTLY, UNTIL HE WAS ASHAMED: AND THER MAN OF GOD WEPT.IJ# 12 AND HAZAEL SAID, WHY WEEPETH MY LORD? AND HE ANSWERED, BECAUSE I KNOWK THE EVIL THAT THOU WILT DO UNTO THE CHILDREN OF ISRAEL: THEIR STRONG HOLDSRN WILT THOU SET ON FIRE, AND THEIR YOUNG MEN WILT THOU SLAY WITH THE SWORD, AND= WILT DASH THEIR CHILDREN, AND RIP UP THEIR WOMEN WITH CHILD. L# 13 AND HAZAEL SAID, BUT WHAT, IS THY SERVANT A DOG, THAT HE SHOULD DO THISM GREAT THING? AND ELISHA ANSWERED, THE LORD HATH SHEWED ME THAT THOU SHALT BEA KING OVER SYRIA.AI# 14 SO HE DEPARTED FROM ELISHA, AND CAME TO HIS MASTER; WHO SAID TO HIM,LJ WHAT SAID ELISHA TO THEE? AND HE ANSWERED, HE TOLD ME THAT THOU SHOULDEST SURELY RECOVER.G# 15 AND IT CAME TO PASS ON THE MORROW, THAT HE TOOK A THICK CLOTH, ANDOK DIPPED IT IN WATER, AND SPREAD IT ON HIS FACE, SO THAT HE DIED: AND HAZAEL  REIGNED IN HIS STEAD.C# 16 AND IN THE FIFTH YEAR OF JORAM THE SON OF AHA00j1N1<%X>%+%O-%TADATADATAB KING OF ISRAEL,GN JEHOSHAPHAT BEING THEN KING OF JUDAH, JEHORAM THE SON OF JE HOSHAPHAT KING OF JUDAH BEGAN TO REIGN.K# 17 THIRTY AND TWO YEARS OLD WAS HE WHEN HE BEGAN TO REIGN; AND HE REIGNEDA EIGHT YEARS IN JERUSALEM.I# 18 AND HE WALKED IN THE WAY OF THE KINGS OF ISRAEL, AS DID THE HOUSE OFTM AHAB: FOR THE DAUGHTER OF AHAB WAS HIS WIFE: AND HE DID EVIL IN THE SIGHT OFD THE LORD.L# 19 YET THE LORD WOULD NOT DESTROY JUDAH FOR DAVID HIS SERVANTS SAKE, AS HE= PROMISED HIM TO GIVE HIM ALWAY A LIGHT, AND TO HIS CHILDREN.SL# 20 IN HIS DAYS EDOM REVOLTED FROM UNDER THE HAND OF JUDAH, AND MADE A KING OVER THEMSELVES.K# 21 SO JORAM WENT OVER TO ZAIR, AND ALL THE CHARIOTS WITH HIM: AND HE ROSEM BY NIGHT, AND SMOTE THE EDOMITES WHICH COMPASSED HIM ABOUT, AND THE CAPTAINSL7 OF THE CHARIOTS: AND THE PEOPLE FLED INTO THEIR TENTS.AG# 22 YET EDOM REVOLTED FROM UNDER THE HAND OF JUDAH UNTO THIS DAY. THENR" LIBNAH REVOLTED AT THE SAME TIME.I# 23 AND THE REST OF THE ACTS OF JORAM, AND ALL THAT HE DID, ARE THEY NOTI= WRITTEN IN THE BOOK OF THE CHRONICLES OF THE KINGS OF JUDAH?DM# 24 AND JORAM SLEPT WITH HIS FATHERS, AND WAS BURIED WITH HIS FATHERS IN THE,9 CITY OF DAVID: AND AHAZIAH HIS SON REIGNED IN HIS STEAD.DL# 25 IN THE TWELFTH YEAR OF JORAM THE SON OF AHAB KING OF ISRAEL DID AHAZIAH1 THE SON OF JEHORAM KING OF JUDAH BEGIN TO REIGN.YH# 26 TWO AND TWENTY YEARS OLD WAS AHAZIAH WHEN HE BEGAN TO REIGN; AND HEF REIGNED ONE YEAR IN JERUSALEM. AND HIS MOTHERS NAME WAS ATHALIAH, THE! DAUGHTER OF OMRI KING OF ISRAEL.WM# 27 AND HE WALKED IN THE WAY OF THE HOUSE OF AHAB, AND DID EVIL IN THE SIGHTEN OF THE LORD, AS DID THE HOUSE OF AHAB: FOR HE WAS THE SON IN LAW OF THE HOUSE OF AHAB.IM# 28 AND HE WENT WITH JORAM THE SON OF AHAB TO THE WAR AGAINST HAZAEL KING OF 6 SYRIA IN RAMOTHGILEAD; AND THE SYRIANS WOUNDED JORAM.M# 29 AND KING JORAM WENT BACK TO BE HEALED IN JEZREEL OF THE WOUNDS WHICH THE M SYRIANS HAD GIVEN HIM AT RAMAH, WHEN HE FOUGHT AGAINST HAZAEL KING OF SYRIA.LL AND AHAZIAH THE SON OF JEHORAM KING OF JUDAH WENT DOWN TO SEE JORAM THE SON) OF AHAB IN JEZREEL, BECAUSE HE WAS SICK.H = CHAPTER 9 J# 1 AND ELISHA THE PROPHET CALLED ONE OF THE CHILDREN OF THE PROPHETS, ANDN SAID UNTO HIM, GIRD UP THY LOINS, AND TAKE THIS BOX OF OIL IN THINE HAND, AND GO TO RAMOTHGILEAD:L# 2 AND WHEN THOU COMEST THITHER, LOOK OUT THERE JEHU THE SON OF JEHOSHAPHATM THE SON OF NIMSHI, AND GO IN, AND MAKE HIM ARISE UP FROM AMONG HIS BRETHREN, & AND CARRY HIM TO AN INNER CHAMBER; ITJ# 3 THEN TAKE THE BOX OF OIL, AND POUR IT ON HIS HEAD, AND SAY, THUS SAITHI THE LORD, I HAVE ANOINTED THEE KING OVER ISRAEL. THEN OPEN THE DOOR, ANDA FLEE, AND TARRY NOT. K# 4 SO THE YOUNG MAN, EVEN THE YOUNG MAN THE PROPHET, WENT TO RAMOTHGILEAD.TK# 5 AND WHEN HE CAME, BEHOLD, THE CAPTAINS OF THE HOST WERE SITTING; AND HEOL SAID, I HAVE AN ERRAND TO THEE, O CAPTAIN. AND JEHU SAID, UNTO WHICH OF ALL% US? AND HE SAID, TO THEE, O CAPTAIN.OM# 6 AND HE AROSE, AND WENT INTO THE HOUSE; AND HE POURED THE OIL ON HIS HEAD,HK AND SAID UNTO HIM, THUS SAITH THE LORD GOD OF ISRAEL, I HAVE ANOINTED THEE 4 KING OVER THE PEOPLE OF THE LORD, EVEN OVER ISRAEL.L# 7 AND THOU SHALT SMITE THE HOUSE OF AHAB THY MASTER, THAT I MAY AVENGE THEL BLOOD OF MY SERVANTS THE PROPHETS, AND THE BLOOD OF ALL THE SERVANTS OF THE LORD, AT THE HAND OF JEZEBEL.J# 8 FOR THE WHOLE HOUSE OF AHAB SHALL PERISH: AND I WILL CUT OFF FROM AHABG HIM THAT PISSETH AGAINST THE WALL, AND HIM THAT IS SHUT UP AND LEFT IN  ISRAEL:K# 9 AND I WILL MAKE THE HOUSE OF AHAB LIKE THE HOUSE OF JEROBOAM THE SON OF 7 NEBAT, AND LIKE THE HOUSE OF BAASHA THE SON OF AHIJAH:FH# 10 AND THE DOGS SHALL EAT JEZEBEL IN THE PORTION OF JEZREEL, AND THERE= SHALL BE NONE TO BURY HER. AND HE OPENED THE DOOR, AND FLED.PM# 11 THEN JEHU CAME FORTH TO THE SERVANTS OF HIS LORD: AND ONE SAID UNTO HIM,L IS ALL WELL? WHEREFORE CAME THIS MAD FELLOW TO THEE? AND HE SAID UNTO THEM,( YE KNOW THE MAN, AND HIS COMMUNICATION.H# 12 AND THEY SAID, IT IS FALSE; TELL US NOW. AND HE SAID, THUS AND THUSL S00j1E1D%5%T6%! !PAKE HE TO ME, SAYING, THUS SAITH THE LORD, I HAVE ANOINTED THEE KING OVER ISRAEL.K# 13 THEN THEY HASTED, AND TOOK EVERY MAN HIS GARMENT, AND PUT IT UNDER HIMAH ON THE TOP OF THE STAIRS, AND BLEW WITH TRUMPETS, SAYING, JEHU IS KING.G# 14 SO JEHU THE SON OF JEHOSHAPHAT THE SON OF NIMSHI CONSPIRED AGAINSTHN JORAM. (NOW JORAM HAD KEPT RAMOTHGILEAD, HE AND ALL ISRAEL, BECAUSE OF HAZAEL KING OF SYRIA.ML# 15 BUT KING JORAM WAS RETURNED TO BE HEALED IN JEZREEL OF THE WOUNDS WHICHJ THE SYRIANS HAD GIVEN HIM, WHEN HE FOUGHT WITH HAZAEL KING OF SYRIA.) ANDM JEHU SAID, IF IT BE YOUR MINDS, THEN LET NONE GO FORTH NOR ESCAPE OUT OF THEI" CITY TO GO TO TELL IT IN JEZREEL.M# 16 SO JEHU RODE IN A CHARIOT, AND WENT TO JEZREEL; FOR JORAM LAY THERE. AND 2 AHAZIAH KING OF JUDAH WAS COME DOWN TO SEE JORAM.I# 17 AND THERE STOOD A WATCHMAN ON THE TOWER IN JEZREEL, AND HE SPIED THEBL COMPANY OF JEHU AS HE CAME, AND SAID, I SEE A COMPANY. AND JORAM SAID, TAKEB AN HORSEMAN, AND SEND TO MEET THEM, AND LET HIM SAY, IS IT PEACE?I# 18 SO THERE WENT ONE ON HORSEBACK TO MEET HIM, AND SAID, THUS SAITH THE,M KING, IS IT PEACE? AND JEHU SAID, WHAT HAST THOU TO DO WITH PEACE? TURN THEEEM BEHIND ME. AND THE WATCHMAN TOLD, SAYING, THE MESSENGER CAME TO THEM, BUT HEN COMETH NOT AGAIN.J# 19 THEN HE SENT OUT A SECOND ON HORSEBACK, WHICH CAME TO THEM, AND SAID,J THUS SAITH THE KING, IS IT PEACE? AND JEHU ANSWERED, WHAT HAST THOU TO DO! WITH PEACE? TURN THEE BEHIND ME.EJ# 20 AND THE WATCHMAN TOLD, SAYING, HE CAME EVEN UNTO THEM, AND COMETH NOTM AGAIN: AND THE DRIVING IS LIKE THE DRIVING OF JEHU THE SON OF NIMSHI; FOR HE  DRIVETH FURIOUSLY.IJ# 21 AND JORAM SAID, MAKE READY. AND HIS CHARIOT WAS MADE READY. AND JORAML KING OF ISRAEL AND AHAZIAH KING OF JUDAH WENT OUT, EACH IN HIS CHARIOT, ANDE THEY WENT OUT AGAINST JEHU, AND MET HIM IN THE PORTION OF NABOTH THET JEZREELITE.I# 22 AND IT CAME TO PASS, WHEN JORAM SAW JEHU, THAT HE SAID, IS IT PEACE,RJ JEHU? AND HE ANSWERED, WHAT PEACE, SO LONG AS THE WHOREDOMS OF THY MOTHER) JEZEBEL AND HER WITCHCRAFTS ARE SO MANY? H# 23 AND JORAM TURNED HIS HANDS, AND FLED, AND SAID TO AHAZIAH, THERE IS TREACHERY, O AHAZIAH.J# 24 AND JEHU DREW A BOW WITH HIS FULL STRENGTH, AND SMOTE JEHORAM BETWEENG HIS ARMS, AND THE ARROW WENT OUT AT HIS HEART, AND HE SUNK DOWN IN HISA CHARIOT.,G# 25 THEN SAID JEHU TO BIDKAR HIS CAPTAIN, TAKE UP, AND CAST HIM IN THEEM PORTION OF THE FIELD OF NABOTH THE JEZREELITE: FOR REMEMBER HOW THAT, WHEN IRM AND THOU RODE TOGETHER AFTER AHAB HIS FATHER, THE LORD LAID THIS BURDEN UPONR HIM;EK# 26 SURELY I HAVE SEEN YESTERDAY THE BLOOD OF NABOTH, AND THE BLOOD OF HISHL SONS, SAITH THE LORD; AND I WILL REQUITE THEE IN THIS PLAT, SAITH THE LORD.J NOW THEREFORE TAKE AND CAST HIM INTO THE PLAT OF GROUND, ACCORDING TO THE WORD OF THE LORD.K# 27 BUT WHEN AHAZIAH THE KING OF JUDAH SAW THIS, HE FLED BY THE WAY OF THEAK GARDEN HOUSE. AND JEHU FOLLOWED AFTER HIM, AND SAID, SMITE HIM ALSO IN THEHL CHARIOT. AND THEY DID SO AT THE GOING UP TO GUR, WHICH IS BY IBLEAM. AND HE! FLED TO MEGIDDO, AND DIED THERE.RK# 28 AND HIS SERVANTS CARRIED HIM IN A CHARIOT TO JERUSALEM, AND BURIED HIMS8 IN HIS SEPULCHRE WITH HIS FATHERS IN THE CITY OF DAVID.M# 29 AND IN THE ELEVENTH YEAR OF JORAM THE SON OF AHAB BEGAN AHAZIAH TO REIGN OVER JUDAH.L# 30 AND WHEN JEHU WAS COME TO JEZREEL, JEZEBEL HEARD OF IT; AND SHE PAINTED: HER FACE, AND TIRED HER HEAD, AND LOOKED OUT AT A WINDOW.L# 31 AND AS JEHU ENTERED IN AT THE GATE, SHE SAID, HAD ZIMRI PEACE, WHO SLEW HIS MASTER?J# 32 AND HE LIFTED UP HIS FACE TO THE WINDOW, AND SAID, WHO IS ON MY SIDE?7 WHO? AND THERE LOOKED OUT TO HIM TWO OR THREE EUNUCHS.II# 33 AND HE SAID, THROW HER DOWN. SO THEY THREW HER DOWN: AND SOME OF HERVK BLOOD WAS SPRINKLED ON THE WALL, AND ON THE HORSES: AND HE TRODE HER UNDER0 FOOT.I# 34 AND WHEN HE WAS COME IN, HE DID EAT AND DRINK, AND SAID, GO, SEE NOW,> THIS CURSED WOMAN, AND BURY HER: FOR SHE IS A KINGS DAUGHTER.M# 35 AND THEY WENT TO BURY HER: BUT THEY FOUND NO MORE OF HER THAN THE SKULL, * AND00j1N1<%X>%+%O-%TADATADATA THE FEET, AND THE PALMS OF HER HANDS.K# 36 WHEREFORE THEY CAME AGAIN, AND TOLD HIM. AND HE SAID, THIS IS THE WORDEK OF THE LORD, WHICH HE SPAKE BY HIS SERVANT ELIJAH THE TISHBITE, SAYING, INO< THE PORTION OF JEZREEL SHALL DOGS EAT THE FLESH OF JEZEBEL:K# 37 AND THE CARCASE OF JEZEBEL SHALL BE AS DUNG UPON THE FACE OF THE FIELDDH IN THE PORTION OF JEZREEL; SO THAT THEY SHALL NOT SAY, THIS IS JEZEBEL. = CHAPTER 10 EM# 1 AND AHAB HAD SEVENTY SONS IN SAMARIA. AND JEHU WROTE LETTERS, AND SENT TOLM SAMARIA, UNTO THE RULERS OF JEZREEL, TO THE ELDERS, AND TO THEM THAT BROUGHT  UP AHABS CHILDREN, SAYING,IJ# 2 NOW AS SOON AS THIS LETTER COMETH TO YOU, SEEING YOUR MASTERS SONS AREN WITH YOU, AND THERE ARE WITH YOU CHARIOTS AND HORSES, A FENCED CITY ALSO, AND ARMOUR;K# 3 LOOK EVEN OUT THE BEST AND MEETEST OF YOUR MASTERS SONS, AND SET HIM ONO6 HIS FATHERS THRONE, AND FIGHT FOR YOUR MASTERS HOUSE.K# 4 BUT THEY WERE EXCEEDINGLY AFRAID, AND SAID, BEHOLD, TWO KINGS STOOD NOTO% BEFORE HIM: HOW THEN SHALL WE STAND?OM# 5 AND HE THAT WAS OVER THE HOUSE, AND HE THAT WAS OVER THE CITY, THE ELDERSLL ALSO, AND THE BRINGERS UP OF THE CHILDREN, SENT TO JEHU, SAYING, WE ARE THYM SERVANTS, AND WILL DO ALL THAT THOU SHALT BID US; WE WILL NOT MAKE ANY KING:I* DO THOU THAT WHICH IS GOOD IN THINE EYES.J# 6 THEN HE WROTE A LETTER THE SECOND TIME TO THEM, SAYING, IF YE BE MINE,H AND IF YE WILL HEARKEN UNTO MY VOICE, TAKE YE THE HEADS OF THE MEN YOURN MASTERS SONS, AND COME TO ME TO JEZREEL BY TO MORROW THIS TIME. NOW THE KINGSH SONS, BEING SEVENTY PERSONS, WERE WITH THE GREAT MEN OF THE CITY, WHICH BROUGHT THEM UP.TI# 7 AND IT CAME TO PASS, WHEN THE LETTER CAME TO THEM, THAT THEY TOOK THE,J KINGS SONS, AND SLEW SEVENTY PERSONS, AND PUT THEIR HEADS IN BASKETS, AND SENT HIM THEM TO JEZREEL.K# 8 AND THERE CAME A MESSENGER, AND TOLD HIM, SAYING, THEY HAVE BROUGHT THEEF HEADS OF THE KINGS SONS. AND HE SAID, LAY YE THEM IN TWO HEAPS AT THE+ ENTERING IN OF THE GATE UNTIL THE MORNING.ZM# 9 AND IT CAME TO PASS IN THE MORNING, THAT HE WENT OUT, AND STOOD, AND SAIDWK TO ALL THE PEOPLE, YE BE RIGHTEOUS: BEHOLD, I CONSPIRED AGAINST MY MASTER,P& AND SLEW HIM: BUT WHO SLEW ALL THESE?M# 10 KNOW NOW THAT THERE SHALL FALL UNTO THE EARTH NOTHING OF THE WORD OF THEAK LORD, WHICH THE LORD SPAKE CONCERNING THE HOUSE OF AHAB: FOR THE LORD HATHO0 DONE THAT WHICH HE SPAKE BY HIS SERVANT ELIJAH.L# 11 SO JEHU SLEW ALL THAT REMAINED OF THE HOUSE OF AHAB IN JEZREEL, AND ALLJ HIS GREAT MEN, AND HIS KINSFOLKS, AND HIS PRIESTS, UNTIL HE LEFT HIM NONE REMAINING.NI# 12 AND HE AROSE AND DEPARTED, AND CAME TO SAMARIA. AND AS HE WAS AT THED SHEARING HOUSE IN THE WAY,EK# 13 JEHU MET WITH THE BRETHREN OF AHAZIAH KING OF JUDAH, AND SAID, WHO AREEI YE? AND THEY ANSWERED, WE ARE THE BRETHREN OF AHAZIAH; AND WE GO DOWN TOE? SALUTE THE CHILDREN OF THE KING AND THE CHILDREN OF THE QUEEN.HM# 14 AND HE SAID, TAKE THEM ALIVE. AND THEY TOOK THEM ALIVE, AND SLEW THEM AT N THE PIT OF THE SHEARING HOUSE, EVEN TWO AND FORTY MEN; NEITHER LEFT HE ANY OF THEM.H# 15 AND WHEN HE WAS DEPARTED THENCE, HE LIGHTED ON JEHONADAB THE SON OFI RECHAB COMING TO MEET HIM: AND HE SALUTED HIM, AND SAID TO HIM, IS THINEBN HEART RIGHT, AS MY HEART IS WITH THY HEART? AND JEHONADAB ANSWERED, IT IS. IFK IT BE, GIVE ME THINE HAND. AND HE GAVE HIM HIS HAND; AND HE TOOK HIM UP TO  HIM INTO THE CHARIOT.J# 16 AND HE SAID, COME WITH ME, AND SEE MY ZEAL FOR THE LORD. SO THEY MADE HIM RIDE IN HIS CHARIOT.OH# 17 AND WHEN HE CAME TO SAMARIA, HE SLEW ALL THAT REMAINED UNTO AHAB INI SAMARIA, TILL HE HAD DESTROYED HIM, ACCORDING TO THE SAYING OF THE LORD,F WHICH HE SPAKE TO ELIJAH.H# 18 AND JEHU GATHERED ALL THE PEOPLE TOGETHER, AND SAID UNTO THEM, AHAB5 SERVED BAAL A LITTLE; BUT JEHU SHALL SERVE HIM MUCH.K# 19 NOW THEREFORE CALL UNTO ME ALL THE PROPHETS OF BAAL, ALL HIS SERVANTS,M AND ALL HIS PRIESTS; LET NONE BE WANTING: FOR I HAVE A GREAT SACRIFICE TO DO K TO BAAL; WHOSOEVER SHALL BE WANTING, HE SHALL NOT LIVE. BUT JEHU DID IT INRG SUBTILTY, TO THE INTENT THAT HE00j1E1D%5%T6%! ! MIGHT DESTROY THE WORSHIPPERS OF BAAL.EL# 20 AND JEHU SAID, PROCLAIM A SOLEMN ASSEMBLY FOR BAAL. AND THEY PROCLAIMED IT.L# 21 AND JEHU SENT THROUGH ALL ISRAEL: AND ALL THE WORSHIPPERS OF BAAL CAME,M SO THAT THERE WAS NOT A MAN LEFT THAT CAME NOT. AND THEY CAME INTO THE HOUSEHA OF BAAL; AND THE HOUSE OF BAAL WAS FULL FROM ONE END TO ANOTHER.OM# 22 AND HE SAID UNTO HIM THAT WAS OVER THE VESTRY, BRING FORTH VESTMENTS FOREB ALL THE WORSHIPPERS OF BAAL. AND HE BROUGHT THEM FORTH VESTMENTS.L# 23 AND JEHU WENT, AND JEHONADAB THE SON OF RECHAB, INTO THE HOUSE OF BAAL,K AND SAID UNTO THE WORSHIPPERS OF BAAL, SEARCH, AND LOOK THAT THERE BE HEREEM WITH YOU NONE OF THE SERVANTS OF THE LORD, BUT THE WORSHIPPERS OF BAAL ONLY.SH# 24 AND WHEN THEY WENT IN TO OFFER SACRIFICES AND BURNT OFFERINGS, JEHUI APPOINTED FOURSCORE MEN WITHOUT, AND SAID, IF ANY OF THE MEN WHOM I HAVETN BROUGHT INTO YOUR HANDS ESCAPE, HE THAT LETTETH HIM GO, HIS LIFE SHALL BE FOR THE LIFE OF HIM.OM# 25 AND IT CAME TO PASS, AS SOON AS HE HAD MADE AN END OF OFFERING THE BURNT,K OFFERING, THAT JEHU SAID TO THE GUARD AND TO THE CAPTAINS, GO IN, AND SLAY K THEM; LET NONE COME FORTH. AND THEY SMOTE THEM WITH THE EDGE OF THE SWORD; J AND THE GUARD AND THE CAPTAINS CAST THEM OUT, AND WENT TO THE CITY OF THE HOUSE OF BAAL.SK# 26 AND THEY BROUGHT FORTH THE IMAGES OUT OF THE HOUSE OF BAAL, AND BURNEDH THEM.M# 27 AND THEY BRAKE DOWN THE IMAGE OF BAAL, AND BRAKE DOWN THE HOUSE OF BAAL,T+ AND MADE IT A DRAUGHT HOUSE UNTO THIS DAY.S,# 28 THUS JEHU DESTROYED BAAL OUT OF ISRAEL.K# 29 HOWBEIT FROM THE SINS OF JEROBOAM THE SON OF NEBAT, WHO MADE ISRAEL TOSL SIN, JEHU DEPARTED NOT FROM AFTER THEM, TO WIT, THE GOLDEN CALVES THAT WERE! IN BETHEL, AND THAT WERE IN DAN.NJ# 30 AND THE LORD SAID UNTO JEHU, BECAUSE THOU HAST DONE WELL IN EXECUTINGG THAT WHICH IS RIGHT IN MINE EYES, AND HAST DONE UNTO THE HOUSE OF AHABD ACCORDING TO ALL THAT WAS IN MINE HEART, THY CHILDREN OF THE FOURTH. GENERATION SHALL SIT ON THE THRONE OF ISRAEL.L# 31 BUT JEHU TOOK NO HEED TO WALK IN THE LAW OF THE LORD GOD OF ISRAEL WITHI ALL HIS HEART: FOR HE DEPARTED NOT FROM THE SINS OF JEROBOAM, WHICH MADEO ISRAEL TO SIN.,L# 32 IN THOSE DAYS THE LORD BEGAN TO CUT ISRAEL SHORT: AND HAZAEL SMOTE THEM IN ALL THE COASTS OF ISRAEL;EG# 33 FROM JORDAN EASTWARD, ALL THE LAND OF GILEAD, THE GADITES, AND THE,N REUBENITES, AND THE MANASSITES, FROM AROER, WHICH IS BY THE RIVER ARNON, EVEN GILEAD AND BASHAN. G# 34 NOW THE REST OF THE ACTS OF JEHU, AND ALL THAT HE DID, AND ALL HISKJ MIGHT, ARE THEY NOT WRITTEN IN THE BOOK OF THE CHRONICLES OF THE KINGS OF ISRAEL?I# 35 AND JEHU SLEPT WITH HIS FATHERS: AND THEY BURIED HIM IN SAMARIA. AND ' JEHOAHAZ HIS SON REIGNED IN HIS STEAD.HI# 36 AND THE TIME THAT JEHU REIGNED OVER ISRAEL IN SAMARIA WAS TWENTY ANDN EIGHT YEARS.T = CHAPTER 11 AJ# 1 AND WHEN ATHALIAH THE MOTHER OF AHAZIAH SAW THAT HER SON WAS DEAD, SHE( AROSE AND DESTROYED ALL THE SEED ROYAL.L# 2 BUT JEHOSHEBA, THE DAUGHTER OF KING JORAM, SISTER OF AHAZIAH, TOOK JOASHN THE SON OF AHAZIAH, AND STOLE HIM FROM AMONG THE KINGS SONS WHICH WERE SLAIN;N AND THEY HID HIM, EVEN HIM AND HIS NURSE, IN THE BEDCHAMBER FROM ATHALIAH, SO THAT HE WAS NOT SLAIN. L# 3 AND HE WAS WITH HER HID IN THE HOUSE OF THE LORD SIX YEARS. AND ATHALIAH DID REIGN OVER THE LAND.TL# 4 AND THE SEVENTH YEAR JEHOIADA SENT AND FETCHED THE RULERS OVER HUNDREDS,K WITH THE CAPTAINS AND THE GUARD, AND BROUGHT THEM TO HIM INTO THE HOUSE OFOI THE LORD, AND MADE A COVENANT WITH THEM, AND TOOK AN OATH OF THEM IN THEO2 HOUSE OF THE LORD, AND SHEWED THEM THE KINGS SON.H# 5 AND HE COMMANDED THEM, SAYING, THIS IS THE THING THAT YE SHALL DO; AL THIRD PART OF YOU THAT ENTER IN ON THE SABBATH SHALL EVEN BE KEEPERS OF THE WATCH OF THE KINGS HOUSE;I# 6 AND A THIRD PART SHALL BE AT THE GATE OF SUR; AND A THIRD PART AT THEJK GATE BEHIND THE GUARD: SO SHALL YE KEEP THE WATCH OF THE HOUSE, THAT IT BEE NOT BROKEN DOWN. J# 7 AND TWO PARTS OF ALL YOU THAT GO FORTH ON THE SABBATH, EVEN THEY SHALL8 KEEP THE WATCH 00j1N1<%X>%+%O-%TADATADATAOF THE HOUSE OF THE LORD ABOUT THE KING.L# 8 AND YE SHALL COMPASS THE KING ROUND ABOUT, EVERY MAN WITH HIS WEAPONS INL HIS HAND: AND HE THAT COMETH WITHIN THE RANGES, LET HIM BE SLAIN: AND BE YE3 WITH THE KING AS HE GOETH OUT AND AS HE COMETH IN. G# 9 AND THE CAPTAINS OVER THE HUNDREDS DID ACCORDING TO ALL THINGS THATGL JEHOIADA THE PRIEST COMMANDED: AND THEY TOOK EVERY MAN HIS MEN THAT WERE TON COME IN ON THE SABBATH, WITH THEM THAT SHOULD GO OUT ON THE SABBATH, AND CAME TO JEHOIADA THE PRIEST.M# 10 AND TO THE CAPTAINS OVER HUNDREDS DID THE PRIEST GIVE KING DAVIDS SPEARS 2 AND SHIELDS, THAT WERE IN THE TEMPLE OF THE LORD.M# 11 AND THE GUARD STOOD, EVERY MAN WITH HIS WEAPONS IN HIS HAND, ROUND ABOUT H THE KING, FROM THE RIGHT CORNER OF THE TEMPLE TO THE LEFT CORNER OF THE+ TEMPLE, ALONG BY THE ALTAR AND THE TEMPLE.JM# 12 AND HE BROUGHT FORTH THE KINGS SON, AND PUT THE CROWN UPON HIM, AND GAVEMN HIM THE TESTIMONY; AND THEY MADE HIM KING, AND ANOINTED HIM; AND THEY CLAPPED* THEIR HANDS, AND SAID, GOD SAVE THE KING.J# 13 AND WHEN ATHALIAH HEARD THE NOISE OF THE GUARD AND OF THE PEOPLE, SHE0 CAME TO THE PEOPLE INTO THE TEMPLE OF THE LORD.K# 14 AND WHEN SHE LOOKED, BEHOLD, THE KING STOOD BY A PILLAR, AS THE MANNEROK WAS, AND THE PRINCES AND THE TRUMPETERS BY THE KING, AND ALL THE PEOPLE OF N THE LAND REJOICED, AND BLEW WITH TRUMPETS: AND ATHALIAH RENT HER CLOTHES, AND CRIED, TREASON, TREASON.H# 15 BUT JEHOIADA THE PRIEST COMMANDED THE CAPTAINS OF THE HUNDREDS, THEM OFFICERS OF THE HOST, AND SAID UNTO THEM, HAVE HER FORTH WITHOUT THE RANGES:TM AND HIM THAT FOLLOWETH HER KILL WITH THE SWORD. FOR THE PRIEST HAD SAID, LETL+ HER NOT BE SLAIN IN THE HOUSE OF THE LORD.OI# 16 AND THEY LAID HANDS ON HER; AND SHE WENT BY THE WAY BY THE WHICH THEH; HORSES CAME INTO THE KINGS HOUSE: AND THERE WAS SHE SLAIN.EG# 17 AND JEHOIADA MADE A COVENANT BETWEEN THE LORD AND THE KING AND THEDL PEOPLE, THAT THEY SHOULD BE THE LORDS PEOPLE; BETWEEN THE KING ALSO AND THE PEOPLE.M# 18 AND ALL THE PEOPLE OF THE LAND WENT INTO THE HOUSE OF BAAL, AND BRAKE ITAJ DOWN; HIS ALTARS AND HIS IMAGES BRAKE THEY IN PIECES THOROUGHLY, AND SLEWF MATTAN THE PRIEST OF BAAL BEFORE THE ALTARS. AND THE PRIEST APPOINTED% OFFICERS OVER THE HOUSE OF THE LORD.WK# 19 AND HE TOOK THE RULERS OVER HUNDREDS, AND THE CAPTAINS, AND THE GUARD,AN AND ALL THE PEOPLE OF THE LAND; AND THEY BROUGHT DOWN THE KING FROM THE HOUSEN OF THE LORD, AND CAME BY THE WAY OF THE GATE OF THE GUARD TO THE KINGS HOUSE.' AND HE SAT ON THE THRONE OF THE KINGS.NL# 20 AND ALL THE PEOPLE OF THE LAND REJOICED, AND THE CITY WAS IN QUIET: AND: THEY SLEW ATHALIAH WITH THE SWORD BESIDE THE KINGS HOUSE.8# 21 SEVEN YEARS OLD WAS JEHOASH WHEN HE BEGAN TO REIGN. = CHAPTER 12 EG# 1 IN THE SEVENTH YEAR OF JEHU JEHOASH BEGAN TO REIGN; AND FORTY YEARSCG REIGNED HE IN JERUSALEM. AND HIS MOTHERS NAME WAS ZIBIAH OF BEERSHEBA.HI# 2 AND JEHOASH DID THAT WHICH WAS RIGHT IN THE SIGHT OF THE LORD ALL HIST1 DAYS WHEREIN JEHOIADA THE PRIEST INSTRUCTED HIM.TL# 3 BUT THE HIGH PLACES WERE NOT TAKEN AWAY: THE PEOPLE STILL SACRIFICED AND" BURNT INCENSE IN THE HIGH PLACES.J# 4 AND JEHOASH SAID TO THE PRIESTS, ALL THE MONEY OF THE DEDICATED THINGSM THAT IS BROUGHT INTO THE HOUSE OF THE LORD, EVEN THE MONEY OF EVERY ONE THAT K PASSETH THE ACCOUNT, THE MONEY THAT EVERY MAN IS SET AT, AND ALL THE MONEYOE THAT COMETH INTO ANY MANS HEART TO BRING INTO THE HOUSE OF THE LORD,SK# 5 LET THE PRIESTS TAKE IT TO THEM, EVERY MAN OF HIS ACQUAINTANCE: AND LETNN THEM REPAIR THE BREACHES OF THE HOUSE, WHERESOEVER ANY BREACH SHALL BE FOUND.K# 6 BUT IT WAS SO, THAT IN THE THREE AND TWENTIETH YEAR OF KING JEHOASH THE 4 PRIESTS HAD NOT REPAIRED THE BREACHES OF THE HOUSE.L# 7 THEN KING JEHOASH CALLED FOR JEHOIADA THE PRIEST, AND THE OTHER PRIESTS,E AND SAID UNTO THEM, WHY REPAIR YE NOT THE BREACHES OF THE HOUSE? NOWOM THEREFORE RECEIVE NO MORE MONEY OF YOUR ACQUAINTANCE, BUT DELIVER IT FOR THEE BREACHES OF THE HOUSE.TM# 8 AND THE PRIESTS CONSENTED TO RECEIVE NO MORE MONEY OF THE PEOPLE, NEITHERH00j1E1D%5%T6%! !% TO REPAIR THE BREACHES OF THE HOUSE.OL# 9 BUT JEHOIADA THE PRIEST TOOK A CHEST, AND BORED A HOLE IN THE LID OF IT,L AND SET IT BESIDE THE ALTAR, ON THE RIGHT SIDE AS ONE COMETH INTO THE HOUSEJ OF THE LORD: AND THE PRIESTS THAT KEPT THE DOOR PUT THEREIN ALL THE MONEY- THAT WAS BROUGHT INTO THE HOUSE OF THE LORD.EI# 10 AND IT WAS SO, WHEN THEY SAW THAT THERE WAS MUCH MONEY IN THE CHEST,IL THAT THE KINGS SCRIBE AND THE HIGH PRIEST CAME UP, AND THEY PUT UP IN BAGS,< AND TOLD THE MONEY THAT WAS FOUND IN THE HOUSE OF THE LORD.M# 11 AND THEY GAVE THE MONEY, BEING TOLD, INTO THE HANDS OF THEM THAT DID THE L WORK, THAT HAD THE OVERSIGHT OF THE HOUSE OF THE LORD: AND THEY LAID IT OUTI TO THE CARPENTERS AND BUILDERS, THAT WROUGHT UPON THE HOUSE OF THE LORD,NM# 12 AND TO MASONS, AND HEWERS OF STONE, AND TO BUY TIMBER AND HEWED STONE TO L REPAIR THE BREACHES OF THE HOUSE OF THE LORD, AND FOR ALL THAT WAS LAID OUT FOR THE HOUSE TO REPAIR IT.K# 13 HOWBEIT THERE WERE NOT MADE FOR THE HOUSE OF THE LORD BOWLS OF SILVER, N SNUFFERS, BASONS, TRUMPETS, ANY VESSELS OF GOLD, OR VESSELS OF SILVER, OF THE3 MONEY THAT WAS BROUGHT INTO THE HOUSE OF THE LORD:UK# 14 BUT THEY GAVE THAT TO THE WORKMEN, AND REPAIRED THEREWITH THE HOUSE OFR THE LORD.L# 15 MOREOVER THEY RECKONED NOT WITH THE MEN, INTO WHOSE HAND THEY DELIVERED@ THE MONEY TO BE BESTOWED ON WORKMEN: FOR THEY DEALT FAITHFULLY.K# 16 THE TRESPASS MONEY AND SIN MONEY WAS NOT BROUGHT INTO THE HOUSE OF THEE LORD: IT WAS THE PRIESTS.M# 17 THEN HAZAEL KING OF SYRIA WENT UP, AND FOUGHT AGAINST GATH, AND TOOK IT:S/ AND HAZAEL SET HIS FACE TO GO UP TO JERUSALEM.AM# 18 AND JEHOASH KING OF JUDAH TOOK ALL THE HALLOWED THINGS THAT JEHOSHAPHAT,MN AND JEHORAM, AND AHAZIAH, HIS FATHERS, KINGS OF JUDAH, HAD DEDICATED, AND HISM OWN HALLOWED THINGS, AND ALL THE GOLD THAT WAS FOUND IN THE TREASURES OF THENI HOUSE OF THE LORD, AND IN THE KINGS HOUSE, AND SENT IT TO HAZAEL KING OF ( SYRIA: AND HE WENT AWAY FROM JERUSALEM.I# 19 AND THE REST OF THE ACTS OF JOASH, AND ALL THAT HE DID, ARE THEY NOTT= WRITTEN IN THE BOOK OF THE CHRONICLES OF THE KINGS OF JUDAH? I# 20 AND HIS SERVANTS AROSE, AND MADE A CONSPIRACY, AND SLEW JOASH IN THE + HOUSE OF MILLO, WHICH GOETH DOWN TO SILLA.,K# 21 FOR JOZACHAR THE SON OF SHIMEATH, AND JEHOZABAD THE SON OF SHOMER, HISNN SERVANTS, SMOTE HIM, AND HE DIED; AND THEY BURIED HIM WITH HIS FATHERS IN THE9 CITY OF DAVID: AND AMAZIAH HIS SON REIGNED IN HIS STEAD. = CHAPTER 13 YM# 1 IN THE THREE AND TWENTIETH YEAR OF JOASH THE SON OF AHAZIAH KING OF JUDAHAL JEHOAHAZ THE SON OF JEHU BEGAN TO REIGN OVER ISRAEL IN SAMARIA, AND REIGNED SEVENTEEN YEARS.TM# 2 AND HE DID THAT WHICH WAS EVIL IN THE SIGHT OF THE LORD, AND FOLLOWED THEGM SINS OF JEROBOAM THE SON OF NEBAT, WHICH MADE ISRAEL TO SIN; HE DEPARTED NOTS THEREFROM. J# 3 AND THE ANGER OF THE LORD WAS KINDLED AGAINST ISRAEL, AND HE DELIVEREDN THEM INTO THE HAND OF HAZAEL KING OF SYRIA, AND INTO THE HAND OF BENHADAD THE SON OF HAZAEL, ALL THEIR DAYS.EK# 4 AND JEHOAHAZ BESOUGHT THE LORD, AND THE LORD HEARKENED UNTO HIM: FOR HE H SAW THE OPPRESSION OF ISRAEL, BECAUSE THE KING OF SYRIA OPPRESSED THEM.M# 5 (AND THE LORD GAVE ISRAEL A SAVIOUR, SO THAT THEY WENT OUT FROM UNDER THESI HAND OF THE SYRIANS: AND THE CHILDREN OF ISRAEL DWELT IN THEIR TENTS, ASS BEFORETIME.J# 6 NEVERTHELESS THEY DEPARTED NOT FROM THE SINS OF THE HOUSE OF JEROBOAM,N WHO MADE ISRAEL SIN, BUT WALKED THEREIN: AND THERE REMAINED THE GROVE ALSO IN SAMARIA.)J# 7 NEITHER DID HE LEAVE OF THE PEOPLE TO JEHOAHAZ BUT FIFTY HORSEMEN, ANDL TEN CHARIOTS, AND TEN THOUSAND FOOTMEN; FOR THE KING OF SYRIA HAD DESTROYED4 THEM, AND HAD MADE THEM LIKE THE DUST BY THRESHING.M# 8 NOW THE REST OF THE ACTS OF JEHOAHAZ, AND ALL THAT HE DID, AND HIS MIGHT,HK ARE THEY NOT WRITTEN IN THE BOOK OF THE CHRONICLES OF THE KINGS OF ISRAEL?EL# 9 AND JEHOAHAZ SLEPT WITH HIS FATHERS; AND THEY BURIED HIM IN SAMARIA: AND$ JOASH HIS SON REIGNED IN HIS STEAD.L# 10 IN THE THIRTY AND SEVENTH YEAR OF JOASH KING OF JUDAH BEGAN JEHOASH THEL SON OF 00j1N1<%X>%+%O-%TADATADATAJEHOAHAZ TO REIGN OVER ISRAEL IN SAMARIA, AND REIGNED SIXTEEN YEARS.M# 11 AND HE DID THAT WHICH WAS EVIL IN THE SIGHT OF THE LORD; HE DEPARTED NOTNL FROM ALL THE SINS OF JEROBOAM THE SON OF NEBAT, WHO MADE ISRAEL SIN: BUT HE WALKED THEREIN.J# 12 AND THE REST OF THE ACTS OF JOASH, AND ALL THAT HE DID, AND HIS MIGHTK WHEREWITH HE FOUGHT AGAINST AMAZIAH KING OF JUDAH, ARE THEY NOT WRITTEN INS3 THE BOOK OF THE CHRONICLES OF THE KINGS OF ISRAEL?VL# 13 AND JOASH SLEPT WITH HIS FATHERS; AND JEROBOAM SAT UPON HIS THRONE: AND6 JOASH WAS BURIED IN SAMARIA WITH THE KINGS OF ISRAEL.J# 14 NOW ELISHA WAS FALLEN SICK OF HIS SICKNESS WHEREOF HE DIED. AND JOASHN THE KING OF ISRAEL CAME DOWN UNTO HIM, AND WEPT OVER HIS FACE, AND SAID, O MYD FATHER, MY FATHER, THE CHARIOT OF ISRAEL, AND THE HORSEMEN THEREOF.L# 15 AND ELISHA SAID UNTO HIM, TAKE BOW AND ARROWS. AND HE TOOK UNTO HIM BOW AND ARROWS.K# 16 AND HE SAID TO THE KING OF ISRAEL, PUT THINE HAND UPON THE BOW. AND HESE PUT HIS HAND UPON IT: AND ELISHA PUT HIS HANDS UPON THE KINGS HANDS.SI# 17 AND HE SAID, OPEN THE WINDOW EASTWARD. AND HE OPENED IT. THEN ELISHACK SAID, SHOOT. AND HE SHOT. AND HE SAID, THE ARROW OF THE LORDS DELIVERANCE,NM AND THE ARROW OF DELIVERANCE FROM SYRIA: FOR THOU SHALT SMITE THE SYRIANS IN % APHEK, TILL THOU HAVE CONSUMED THEM. I# 18 AND HE SAID, TAKE THE ARROWS. AND HE TOOK THEM. AND HE SAID UNTO THEH KING OF ISRAEL, SMITE UPON THE GROUND. AND HE SMOTE THRICE, AND STAYED.I# 19 AND THE MAN OF GOD WAS WROTH WITH HIM, AND SAID, THOU SHOULDEST HAVEKI SMITTEN FIVE OR SIX TIMES; THEN HADST THOU SMITTEN SYRIA TILL THOU HADST < CONSUMED IT: WHEREAS NOW THOU SHALT SMITE SYRIA BUT THRICE.H# 20 AND ELISHA DIED, AND THEY BURIED HIM. AND THE BANDS OF THE MOABITES/ INVADED THE LAND AT THE COMING IN OF THE YEAR.TH# 21 AND IT CAME TO PASS, AS THEY WERE BURYING A MAN, THAT, BEHOLD, THEYM SPIED A BAND OF MEN; AND THEY CAST THE MAN INTO THE SEPULCHRE OF ELISHA: ANDEL WHEN THE MAN WAS LET DOWN, AND TOUCHED THE BONES OF ELISHA, HE REVIVED, AND STOOD UP ON HIS FEET.H# 22 BUT HAZAEL KING OF SYRIA OPPRESSED ISRAEL ALL THE DAYS OF JEHOAHAZ.M# 23 AND THE LORD WAS GRACIOUS UNTO THEM, AND HAD COMPASSION ON THEM, AND HADDK RESPECT UNTO THEM, BECAUSE OF HIS COVENANT WITH ABRAHAM, ISAAC, AND JACOB,EK AND WOULD NOT DESTROY THEM, NEITHER CAST HE THEM FROM HIS PRESENCE AS YET.NM# 24 SO HAZAEL KING OF SYRIA DIED; AND BENHADAD HIS SON REIGNED IN HIS STEAD.LK# 25 AND JEHOASH THE SON OF JEHOAHAZ TOOK AGAIN OUT OF THE HAND OF BENHADADIM THE SON OF HAZAEL THE CITIES, WHICH HE HAD TAKEN OUT OF THE HAND OF JEHOAHAZRL HIS FATHER BY WAR. THREE TIMES DID JOASH BEAT HIM, AND RECOVERED THE CITIES OF ISRAEL.O = CHAPTER 14 MN# 1 IN THE SECOND YEAR OF JOASH SON OF JEHOAHAZ KING OF ISRAEL REIGNED AMAZIAH THE SON OF JOASH KING OF JUDAH.H# 2 HE WAS TWENTY AND FIVE YEARS OLD WHEN HE BEGAN TO REIGN, AND REIGNEDJ TWENTY AND NINE YEARS IN JERUSALEM. AND HIS MOTHERS NAME WAS JEHOADDAN OF JERUSALEM.EJ# 3 AND HE DID THAT WHICH WAS RIGHT IN THE SIGHT OF THE LORD, YET NOT LIKEJ DAVID HIS FATHER: HE DID ACCORDING TO ALL THINGS AS JOASH HIS FATHER DID.F# 4 HOWBEIT THE HIGH PLACES WERE NOT TAKEN AWAY: AS YET THE PEOPLE DID0 SACRIFICE AND BURNT INCENSE ON THE HIGH PLACES.J# 5 AND IT CAME TO PASS, AS SOON AS THE KINGDOM WAS CONFIRMED IN HIS HAND,? THAT HE SLEW HIS SERVANTS WHICH HAD SLAIN THE KING HIS FATHER.RL# 6 BUT THE CHILDREN OF THE MURDERERS HE SLEW NOT: ACCORDING UNTO THAT WHICHH IS WRITTEN IN THE BOOK OF THE LAW OF MOSES, WHEREIN THE LORD COMMANDED,H SAYING, THE FATHERS SHALL NOT BE PUT TO DEATH FOR THE CHILDREN, NOR THEN CHILDREN BE PUT TO DEATH FOR THE FATHERS; BUT EVERY MAN SHALL BE PUT TO DEATH FOR HIS OWN SIN.CI# 7 HE SLEW OF EDOM IN THE VALLEY OF SALT TEN THOUSAND, AND TOOK SELAH BYO7 WAR, AND CALLED THE NAME OF IT JOKTHEEL UNTO THIS DAY.EM# 8 THEN AMAZIAH SENT MESSENGERS TO JEHOASH, THE SON OF JEHOAHAZ SON OF JEHU,HC KING OF ISRAEL, SAYING, COME, LET US LOOK ONE ANOTHER IN THE FACE.EM# 9 AND JEHOASH THE KING OF ISRAEL SENT TO AMAZIAH KING OF JUD00j1E1D%5%T6%! !AH, SAYING, THEAK THISTLE THAT WAS IN LEBANON SENT TO THE CEDAR THAT WAS IN LEBANON, SAYING,OK GIVE THY DAUGHTER TO MY SON TO WIFE: AND THERE PASSED BY A WILD BEAST THATE, WAS IN LEBANON, AND TRODE DOWN THE THISTLE.H# 10 THOU HAST INDEED SMITTEN EDOM, AND THINE HEART HATH LIFTED THEE UP:M GLORY OF THIS, AND TARRY AT HOME: FOR WHY SHOULDEST THOU MEDDLE TO THY HURT, : THAT THOU SHOULDEST FALL, EVEN THOU, AND JUDAH WITH THEE?J# 11 BUT AMAZIAH WOULD NOT HEAR. THEREFORE JEHOASH KING OF ISRAEL WENT UP;C AND HE AND AMAZIAH KING OF JUDAH LOOKED ONE ANOTHER IN THE FACE ATT' BETHSHEMESH, WHICH BELONGETH TO JUDAH.AM# 12 AND JUDAH WAS PUT TO THE WORSE BEFORE ISRAEL; AND THEY FLED EVERY MAN TOO THEIR TENTS.WF# 13 AND JEHOASH KING OF ISRAEL TOOK AMAZIAH KING OF JUDAH, THE SON OFM JEHOASH THE SON OF AHAZIAH, AT BETHSHEMESH, AND CAME TO JERUSALEM, AND BRAKEDJ DOWN THE WALL OF JERUSALEM FROM THE GATE OF EPHRAIM UNTO THE CORNER GATE, FOUR HUNDRED CUBITS.DM# 14 AND HE TOOK ALL THE GOLD AND SILVER, AND ALL THE VESSELS THAT WERE FOUNDOG IN THE HOUSE OF THE LORD, AND IN THE TREASURES OF THE KINGS HOUSE, AND # HOSTAGES, AND RETURNED TO SAMARIA. M# 15 NOW THE REST OF THE ACTS OF JEHOASH WHICH HE DID, AND HIS MIGHT, AND HOWJN HE FOUGHT WITH AMAZIAH KING OF JUDAH, ARE THEY NOT WRITTEN IN THE BOOK OF THE# CHRONICLES OF THE KINGS OF ISRAEL?OK# 16 AND JEHOASH SLEPT WITH HIS FATHERS, AND WAS BURIED IN SAMARIA WITH THEU< KINGS OF ISRAEL; AND JEROBOAM HIS SON REIGNED IN HIS STEAD.H# 17 AND AMAZIAH THE SON OF JOASH KING OF JUDAH LIVED AFTER THE DEATH OF6 JEHOASH SON OF JEHOAHAZ KING OF ISRAEL FIFTEEN YEARS.M# 18 AND THE REST OF THE ACTS OF AMAZIAH, ARE THEY NOT WRITTEN IN THE BOOK OFJ& THE CHRONICLES OF THE KINGS OF JUDAH?H# 19 NOW THEY MADE A CONSPIRACY AGAINST HIM IN JERUSALEM: AND HE FLED TOA LACHISH; BUT THEY SENT AFTER HIM TO LACHISH, AND SLEW HIM THERE.SL# 20 AND THEY BROUGHT HIM ON HORSES: AND HE WAS BURIED AT JERUSALEM WITH HIS FATHERS IN THE CITY OF DAVID.K# 21 AND ALL THE PEOPLE OF JUDAH TOOK AZARIAH, WHICH WAS SIXTEEN YEARS OLD,E1 AND MADE HIM KING INSTEAD OF HIS FATHER AMAZIAH.TM# 22 HE BUILT ELATH, AND RESTORED IT TO JUDAH, AFTER THAT THE KING SLEPT WITHH HIS FATHERS.EM# 23 IN THE FIFTEENTH YEAR OF AMAZIAH THE SON OF JOASH KING OF JUDAH JEROBOAM M THE SON OF JOASH KING OF ISRAEL BEGAN TO REIGN IN SAMARIA, AND REIGNED FORTY  AND ONE YEARS.M# 24 AND HE DID THAT WHICH WAS EVIL IN THE SIGHT OF THE LORD: HE DEPARTED NOTFH FROM ALL THE SINS OF JEROBOAM THE SON OF NEBAT, WHO MADE ISRAEL TO SIN.M# 25 HE RESTORED THE COAST OF ISRAEL FROM THE ENTERING OF HAMATH UNTO THE SEAIN OF THE PLAIN, ACCORDING TO THE WORD OF THE LORD GOD OF ISRAEL, WHICH HE SPAKEM BY THE HAND OF HIS SERVANT JONAH, THE SON OF AMITTAI, THE PROPHET, WHICH WASN OF GATHHEPHER.AL# 26 FOR THE LORD SAW THE AFFLICTION OF ISRAEL, THAT IT WAS VERY BITTER: FORD THERE WAS NOT ANY SHUT UP, NOR ANY LEFT, NOR ANY HELPER FOR ISRAEL.I# 27 AND THE LORD SAID NOT THAT HE WOULD BLOT OUT THE NAME OF ISRAEL FROM J UNDER HEAVEN: BUT HE SAVED THEM BY THE HAND OF JEROBOAM THE SON OF JOASH.G# 28 NOW THE REST OF THE ACTS OF JEROBOAM, AND ALL THAT HE DID, AND HISOG MIGHT, HOW HE WARRED, AND HOW HE RECOVERED DAMASCUS, AND HAMATH, WHICHAG BELONGED TO JUDAH, FOR ISRAEL, ARE THEY NOT WRITTEN IN THE BOOK OF THER# CHRONICLES OF THE KINGS OF ISRAEL?LL# 29 AND JEROBOAM SLEPT WITH HIS FATHERS, EVEN WITH THE KINGS OF ISRAEL; AND( ZACHARIAH HIS SON REIGNED IN HIS STEAD. = CHAPTER 15 EK# 1 IN THE TWENTY AND SEVENTH YEAR OF JEROBOAM KING OF ISRAEL BEGAN AZARIAH ' SON OF AMAZIAH KING OF JUDAH TO REIGN. K# 2 SIXTEEN YEARS OLD WAS HE WHEN HE BEGAN TO REIGN, AND HE REIGNED TWO ANDTK FIFTY YEARS IN JERUSALEM. AND HIS MOTHERS NAME WAS JECHOLIAH OF JERUSALEM. J# 3 AND HE DID THAT WHICH WAS RIGHT IN THE SIGHT OF THE LORD, ACCORDING TO& ALL THAT HIS FATHER AMAZIAH HAD DONE;I# 4 SAVE THAT THE HIGH PLACES WERE NOT REMOVED: THE PEOPLE SACRIFICED ANDH( BURNT INCENSE STILL ON THE HIGH PLACES.K# 5 AND THE LORD SMOTE THE KING, SO THAT HE WAS A LEPER UNTO THE DAY OF 00j1N1<%X>%+%O-%TADATADATAHISAK DEATH, AND DWELT IN A SEVERAL HOUSE. AND JOTHAM THE KINGS SON WAS OVER THEE' HOUSE, JUDGING THE PEOPLE OF THE LAND.NJ# 6 AND THE REST OF THE ACTS OF AZARIAH, AND ALL THAT HE DID, ARE THEY NOT= WRITTEN IN THE BOOK OF THE CHRONICLES OF THE KINGS OF JUDAH?OK# 7 SO AZARIAH SLEPT WITH HIS FATHERS; AND THEY BURIED HIM WITH HIS FATHERSI? IN THE CITY OF DAVID: AND JOTHAM HIS SON REIGNED IN HIS STEAD.CL# 8 IN THE THIRTY AND EIGHTH YEAR OF AZARIAH KING OF JUDAH DID ZACHARIAH THE9 SON OF JEROBOAM REIGN OVER ISRAEL IN SAMARIA SIX MONTHS.RK# 9 AND HE DID THAT WHICH WAS EVIL IN THE SIGHT OF THE LORD, AS HIS FATHERSOJ HAD DONE: HE DEPARTED NOT FROM THE SINS OF JEROBOAM THE SON OF NEBAT, WHO MADE ISRAEL TO SIN.G# 10 AND SHALLUM THE SON OF JABESH CONSPIRED AGAINST HIM, AND SMOTE HIME; BEFORE THE PEOPLE, AND SLEW HIM, AND REIGNED IN HIS STEAD.IK# 11 AND THE REST OF THE ACTS OF ZACHARIAH, BEHOLD, THEY ARE WRITTEN IN THEI/ BOOK OF THE CHRONICLES OF THE KINGS OF ISRAEL.ZM# 12 THIS WAS THE WORD OF THE LORD WHICH HE SPAKE UNTO JEHU, SAYING, THY SONSNM SHALL SIT ON THE THRONE OF ISRAEL UNTO THE FOURTH GENERATION. AND SO IT CAMEN TO PASS.TL# 13 SHALLUM THE SON OF JABESH BEGAN TO REIGN IN THE NINE AND THIRTIETH YEARA OF UZZIAH KING OF JUDAH; AND HE REIGNED A FULL MONTH IN SAMARIA. J# 14 FOR MENAHEM THE SON OF GADI WENT UP FROM TIRZAH, AND CAME TO SAMARIA,M AND SMOTE SHALLUM THE SON OF JABESH IN SAMARIA, AND SLEW HIM, AND REIGNED INT HIS STEAD. K# 15 AND THE REST OF THE ACTS OF SHALLUM, AND HIS CONSPIRACY WHICH HE MADE,NG BEHOLD, THEY ARE WRITTEN IN THE BOOK OF THE CHRONICLES OF THE KINGS OFO ISRAEL.J# 16 THEN MENAHEM SMOTE TIPHSAH, AND ALL THAT WERE THEREIN, AND THE COASTSL THEREOF FROM TIRZAH: BECAUSE THEY OPENED NOT TO HIM, THEREFORE HE SMOTE IT;= AND ALL THE WOMEN THEREIN THAT WERE WITH CHILD HE RIPPED UP.NJ# 17 IN THE NINE AND THIRTIETH YEAR OF AZARIAH KING OF JUDAH BEGAN MENAHEMH THE SON OF GADI TO REIGN OVER ISRAEL, AND REIGNED TEN YEARS IN SAMARIA.M# 18 AND HE DID THAT WHICH WAS EVIL IN THE SIGHT OF THE LORD: HE DEPARTED NOT L ALL HIS DAYS FROM THE SINS OF JEROBOAM THE SON OF NEBAT, WHO MADE ISRAEL TO SIN.ML# 19 AND PUL THE KING OF ASSYRIA CAME AGAINST THE LAND: AND MENAHEM GAVE PULM A THOUSAND TALENTS OF SILVER, THAT HIS HAND MIGHT BE WITH HIM TO CONFIRM THEE KINGDOM IN HIS HAND. K# 20 AND MENAHEM EXACTED THE MONEY OF ISRAEL, EVEN OF ALL THE MIGHTY MEN OFBM WEALTH, OF EACH MAN FIFTY SHEKELS OF SILVER, TO GIVE TO THE KING OF ASSYRIA.AF SO THE KING OF ASSYRIA TURNED BACK, AND STAYED NOT THERE IN THE LAND.K# 21 AND THE REST OF THE ACTS OF MENAHEM, AND ALL THAT HE DID, ARE THEY NOT > WRITTEN IN THE BOOK OF THE CHRONICLES OF THE KINGS OF ISRAEL?L# 22 AND MENAHEM SLEPT WITH HIS FATHERS; AND PEKAHIAH HIS SON REIGNED IN HIS STEAD.TF# 23 IN THE FIFTIETH YEAR OF AZARIAH KING OF JUDAH PEKAHIAH THE SON OFF MENAHEM BEGAN TO REIGN OVER ISRAEL IN SAMARIA, AND REIGNED TWO YEARS.M# 24 AND HE DID THAT WHICH WAS EVIL IN THE SIGHT OF THE LORD: HE DEPARTED NOTGD FROM THE SINS OF JEROBOAM THE SON OF NEBAT, WHO MADE ISRAEL TO SIN.L# 25 BUT PEKAH THE SON OF REMALIAH, A CAPTAIN OF HIS, CONSPIRED AGAINST HIM,K AND SMOTE HIM IN SAMARIA, IN THE PALACE OF THE KINGS HOUSE, WITH ARGOB ANDWH ARIEH, AND WITH HIM FIFTY MEN OF THE GILEADITES: AND HE KILLED HIM, AND REIGNED IN HIS ROOM.IL# 26 AND THE REST OF THE ACTS OF PEKAHIAH, AND ALL THAT HE DID, BEHOLD, THEYB ARE WRITTEN IN THE BOOK OF THE CHRONICLES OF THE KINGS OF ISRAEL.K# 27 IN THE TWO AND FIFTIETH YEAR OF AZARIAH KING OF JUDAH PEKAH THE SON OFNJ REMALIAH BEGAN TO REIGN OVER ISRAEL IN SAMARIA, AND REIGNED TWENTY YEARS.M# 28 AND HE DID THAT WHICH WAS EVIL IN THE SIGHT OF THE LORD: HE DEPARTED NOTOD FROM THE SINS OF JEROBOAM THE SON OF NEBAT, WHO MADE ISRAEL TO SIN.M# 29 IN THE DAYS OF PEKAH KING OF ISRAEL CAME TIGLATHPILESER KING OF ASSYRIA,SK AND TOOK IJON, AND ABELBETHMAACHAH, AND JANOAH, AND KEDESH, AND HAZOR, AND K GILEAD, AND GALILEE, ALL THE LAND OF NAPHTALI, AND CARRIED THEM CAPTIVE TOE ASSYRIA.AJ# 30 AND HOSHEA THE SON OF ELAH MADE00j1E1D%5%T6%! ! A CONSPIRACY AGAINST PEKAH THE SON OFH REMALIAH, AND SMOTE HIM, AND SLEW HIM, AND REIGNED IN HIS STEAD, IN THE, TWENTIETH YEAR OF JOTHAM THE SON OF UZZIAH.M# 31 AND THE REST OF THE ACTS OF PEKAH, AND ALL THAT HE DID, BEHOLD, THEY AREH> WRITTEN IN THE BOOK OF THE CHRONICLES OF THE KINGS OF ISRAEL.I# 32 IN THE SECOND YEAR OF PEKAH THE SON OF REMALIAH KING OF ISRAEL BEGANR1 JOTHAM THE SON OF UZZIAH KING OF JUDAH TO REIGN.AL# 33 FIVE AND TWENTY YEARS OLD WAS HE WHEN HE BEGAN TO REIGN, AND HE REIGNEDN SIXTEEN YEARS IN JERUSALEM. AND HIS MOTHERS NAME WAS JERUSHA, THE DAUGHTER OF ZADOK.EE# 34 AND HE DID THAT WHICH WAS RIGHT IN THE SIGHT OF THE LORD: HE DID.2 ACCORDING TO ALL THAT HIS FATHER UZZIAH HAD DONE.H# 35 HOWBEIT THE HIGH PLACES WERE NOT REMOVED: THE PEOPLE SACRIFICED ANDI BURNED INCENSE STILL IN THE HIGH PLACES. HE BUILT THE HIGHER GATE OF THEN HOUSE OF THE LORD.JJ# 36 NOW THE REST OF THE ACTS OF JOTHAM, AND ALL THAT HE DID, ARE THEY NOT= WRITTEN IN THE BOOK OF THE CHRONICLES OF THE KINGS OF JUDAH?AI# 37 IN THOSE DAYS THE LORD BEGAN TO SEND AGAINST JUDAH REZIN THE KING OFE& SYRIA, AND PEKAH THE SON OF REMALIAH.J# 38 AND JOTHAM SLEPT WITH HIS FATHERS, AND WAS BURIED WITH HIS FATHERS INE THE CITY OF DAVID HIS FATHER: AND AHAZ HIS SON REIGNED IN HIS STEAD.R = CHAPTER 16 RH# 1 IN THE SEVENTEENTH YEAR OF PEKAH THE SON OF REMALIAH AHAZ THE SON OF% JOTHAM KING OF JUDAH BEGAN TO REIGN.FI# 2 TWENTY YEARS OLD WAS AHAZ WHEN HE BEGAN TO REIGN, AND REIGNED SIXTEENKN YEARS IN JERUSALEM, AND DID NOT THAT WHICH WAS RIGHT IN THE SIGHT OF THE LORD HIS GOD, LIKE DAVID HIS FATHER.M# 3 BUT HE WALKED IN THE WAY OF THE KINGS OF ISRAEL, YEA, AND MADE HIS SON TOTN PASS THROUGH THE FIRE, ACCORDING TO THE ABOMINATIONS OF THE HEATHEN, WHOM THE2 LORD CAST OUT FROM BEFORE THE CHILDREN OF ISRAEL.M# 4 AND HE SACRIFICED AND BURNT INCENSE IN THE HIGH PLACES, AND ON THE HILLS,  AND UNDER EVERY GREEN TREE.M# 5 THEN REZIN KING OF SYRIA AND PEKAH SON OF REMALIAH KING OF ISRAEL CAME UPYI TO JERUSALEM TO WAR: AND THEY BESIEGED AHAZ, BUT COULD NOT OVERCOME HIM.DL# 6 AT THAT TIME REZIN KING OF SYRIA RECOVERED ELATH TO SYRIA, AND DRAVE THEJ JEWS FROM ELATH: AND THE SYRIANS CAME TO ELATH, AND DWELT THERE UNTO THIS DAY.IK# 7 SO AHAZ SENT MESSENGERS TO TIGLATHPILESER KING OF ASSYRIA, SAYING, I AMIM THY SERVANT AND THY SON: COME UP, AND SAVE ME OUT OF THE HAND OF THE KING OFHL SYRIA, AND OUT OF THE HAND OF THE KING OF ISRAEL, WHICH RISE UP AGAINST ME.H# 8 AND AHAZ TOOK THE SILVER AND GOLD THAT WAS FOUND IN THE HOUSE OF THEL LORD, AND IN THE TREASURES OF THE KINGS HOUSE, AND SENT IT FOR A PRESENT TO THE KING OF ASSYRIA.IL# 9 AND THE KING OF ASSYRIA HEARKENED UNTO HIM: FOR THE KING OF ASSYRIA WENTJ UP AGAINST DAMASCUS, AND TOOK IT, AND CARRIED THE PEOPLE OF IT CAPTIVE TO KIR, AND SLEW REZIN.IK# 10 AND KING AHAZ WENT TO DAMASCUS TO MEET TIGLATHPILESER KING OF ASSYRIA,OH AND SAW AN ALTAR THAT WAS AT DAMASCUS: AND KING AHAZ SENT TO URIJAH THEM PRIEST THE FASHION OF THE ALTAR, AND THE PATTERN OF IT, ACCORDING TO ALL THEE WORKMANSHIP THEREOF.AM# 11 AND URIJAH THE PRIEST BUILT AN ALTAR ACCORDING TO ALL THAT KING AHAZ HADM SENT FROM DAMASCUS: SO URIJAH THE PRIEST MADE IT AGAINST KING AHAZ CAME FROMU DAMASCUS.J# 12 AND WHEN THE KING WAS COME FROM DAMASCUS, THE KING SAW THE ALTAR: AND7 THE KING APPROACHED TO THE ALTAR, AND OFFERED THEREON.LJ# 13 AND HE BURNT HIS BURNT OFFERING AND HIS MEAT OFFERING, AND POURED HISI DRINK OFFERING, AND SPRINKLED THE BLOOD OF HIS PEACE OFFERINGS, UPON THER ALTAR.AJ# 14 AND HE BROUGHT ALSO THE BRASEN ALTAR, WHICH WAS BEFORE THE LORD, FROMN THE FOREFRONT OF THE HOUSE, FROM BETWEEN THE ALTAR AND THE HOUSE OF THE LORD,+ AND PUT IT ON THE NORTH SIDE OF THE ALTAR.OL# 15 AND KING AHAZ COMMANDED URIJAH THE PRIEST, SAYING, UPON THE GREAT ALTARN BURN THE MORNING BURNT OFFERING, AND THE EVENING MEAT OFFERING, AND THE KINGSK BURNT SACRIFICE, AND HIS MEAT OFFERING, WITH THE BURNT OFFERING OF ALL THEFL PEOPLE OF THE LAND, AND THEIR MEAT OFFERING, AND THEIR DRINK OFFERINGS; ANDK SPRIN00j1N1<%X>%+%O-%TADATADATAKLE UPON IT ALL THE BLOOD OF THE BURNT OFFERING, AND ALL THE BLOOD OFEC THE SACRIFICE: AND THE BRASEN ALTAR SHALL BE FOR ME TO ENQUIRE BY.LK# 16 THUS DID URIJAH THE PRIEST, ACCORDING TO ALL THAT KING AHAZ COMMANDED.DJ# 17 AND KING AHAZ CUT OFF THE BORDERS OF THE BASES, AND REMOVED THE LAVERN FROM OFF THEM; AND TOOK DOWN THE SEA FROM OFF THE BRASEN OXEN THAT WERE UNDER, IT, AND PUT IT UPON THE PAVEMENT OF STONES.M# 18 AND THE COVERT FOR THE SABBATH THAT THEY HAD BUILT IN THE HOUSE, AND THE;J KINGS ENTRY WITHOUT, TURNED HE FROM THE HOUSE OF THE LORD FOR THE KING OF ASSYRIA.EK# 19 NOW THE REST OF THE ACTS OF AHAZ WHICH HE DID, ARE THEY NOT WRITTEN INI2 THE BOOK OF THE CHRONICLES OF THE KINGS OF JUDAH?L# 20 AND AHAZ SLEPT WITH HIS FATHERS, AND WAS BURIED WITH HIS FATHERS IN THE: CITY OF DAVID: AND HEZEKIAH HIS SON REIGNED IN HIS STEAD. = CHAPTER 17 TM# 1 IN THE TWELFTH YEAR OF AHAZ KING OF JUDAH BEGAN HOSHEA THE SON OF ELAH TOR) REIGN IN SAMARIA OVER ISRAEL NINE YEARS.EK# 2 AND HE DID THAT WHICH WAS EVIL IN THE SIGHT OF THE LORD, BUT NOT AS THEF& KINGS OF ISRAEL THAT WERE BEFORE HIM.J# 3 AGAINST HIM CAME UP SHALMANESER KING OF ASSYRIA; AND HOSHEA BECAME HIS SERVANT, AND GAVE HIM PRESENTS.G# 4 AND THE KING OF ASSYRIA FOUND CONSPIRACY IN HOSHEA: FOR HE HAD SENTHF MESSENGERS TO SO KING OF EGYPT, AND BROUGHT NO PRESENT TO THE KING OFM ASSYRIA, AS HE HAD DONE YEAR BY YEAR: THEREFORE THE KING OF ASSYRIA SHUT HIMS UP, AND BOUND HIM IN PRISON.IL# 5 THEN THE KING OF ASSYRIA CAME UP THROUGHOUT ALL THE LAND, AND WENT UP TO& SAMARIA, AND BESIEGED IT THREE YEARS.M# 6 IN THE NINTH YEAR OF HOSHEA THE KING OF ASSYRIA TOOK SAMARIA, AND CARRIED;M ISRAEL AWAY INTO ASSYRIA, AND PLACED THEM IN HALAH AND IN HABOR BY THE RIVERS* OF GOZAN, AND IN THE CITIES OF THE MEDES.J# 7 FOR SO IT WAS, THAT THE CHILDREN OF ISRAEL HAD SINNED AGAINST THE LORDN THEIR GOD, WHICH HAD BROUGHT THEM UP OUT OF THE LAND OF EGYPT, FROM UNDER THE: HAND OF PHARAOH KING OF EGYPT, AND HAD FEARED OTHER GODS,J# 8 AND WALKED IN THE STATUTES OF THE HEATHEN, WHOM THE LORD CAST OUT FROMJ BEFORE THE CHILDREN OF ISRAEL, AND OF THE KINGS OF ISRAEL, WHICH THEY HAD MADE.L# 9 AND THE CHILDREN OF ISRAEL DID SECRETLY THOSE THINGS THAT WERE NOT RIGHTI AGAINST THE LORD THEIR GOD, AND THEY BUILT THEM HIGH PLACES IN ALL THEIRA; CITIES, FROM THE TOWER OF THE WATCHMEN TO THE FENCED CITY.TI# 10 AND THEY SET THEM UP IMAGES AND GROVES IN EVERY HIGH HILL, AND UNDERE EVERY GREEN TREE:L# 11 AND THERE THEY BURNT INCENSE IN ALL THE HIGH PLACES, AS DID THE HEATHENM WHOM THE LORD CARRIED AWAY BEFORE THEM; AND WROUGHT WICKED THINGS TO PROVOKET THE LORD TO ANGER:HM# 12 FOR THEY SERVED IDOLS, WHEREOF THE LORD HAD SAID UNTO THEM, YE SHALL NOTT DO THIS THING.TI# 13 YET THE LORD TESTIFIED AGAINST ISRAEL, AND AGAINST JUDAH, BY ALL THEAN PROPHETS, AND BY ALL THE SEERS, SAYING, TURN YE FROM YOUR EVIL WAYS, AND KEEPL MY COMMANDMENTS AND MY STATUTES, ACCORDING TO ALL THE LAW WHICH I COMMANDEDC YOUR FATHERS, AND WHICH I SENT TO YOU BY MY SERVANTS THE PROPHETS.EK# 14 NOTWITHSTANDING THEY WOULD NOT HEAR, BUT HARDENED THEIR NECKS, LIKE TOTG THE NECK OF THEIR FATHERS, THAT DID NOT BELIEVE IN THE LORD THEIR GOD. M# 15 AND THEY REJECTED HIS STATUTES, AND HIS COVENANT THAT HE MADE WITH THEIRTG FATHERS, AND HIS TESTIMONIES WHICH HE TESTIFIED AGAINST THEM; AND THEYLM FOLLOWED VANITY, AND BECAME VAIN, AND WENT AFTER THE HEATHEN THAT WERE ROUNDDL ABOUT THEM, CONCERNING WHOM THE LORD HAD CHARGED THEM, THAT THEY SHOULD NOT DO LIKE THEM.L# 16 AND THEY LEFT ALL THE COMMANDMENTS OF THE LORD THEIR GOD, AND MADE THEMN MOLTEN IMAGES, EVEN TWO CALVES, AND MADE A GROVE, AND WORSHIPPED ALL THE HOST OF HEAVEN, AND SERVED BAAL.M# 17 AND THEY CAUSED THEIR SONS AND THEIR DAUGHTERS TO PASS THROUGH THE FIRE,FL AND USED DIVINATION AND ENCHANTMENTS, AND SOLD THEMSELVES TO DO EVIL IN THE, SIGHT OF THE LORD, TO PROVOKE HIM TO ANGER.K# 18 THEREFORE THE LORD WAS VERY ANGRY WITH ISRAEL, AND REMOVED THEM OUT OF < HIS SIGHT: THERE WAS NONE LEFT BUT THE TRIBE OF JUDAH ONLY.K# 19 ALS00j1E1D%5%T6%! !O JUDAH KEPT NOT THE COMMANDMENTS OF THE LORD THEIR GOD, BUT WALKEDV+ IN THE STATUTES OF ISRAEL WHICH THEY MADE.EJ# 20 AND THE LORD REJECTED ALL THE SEED OF ISRAEL, AND AFFLICTED THEM, ANDL DELIVERED THEM INTO THE HAND OF SPOILERS, UNTIL HE HAD CAST THEM OUT OF HIS SIGHT.,K# 21 FOR HE RENT ISRAEL FROM THE HOUSE OF DAVID; AND THEY MADE JEROBOAM THE J SON OF NEBAT KING: AND JEROBOAM DRAVE ISRAEL FROM FOLLOWING THE LORD, AND MADE THEM SIN A GREAT SIN.AK# 22 FOR THE CHILDREN OF ISRAEL WALKED IN ALL THE SINS OF JEROBOAM WHICH HED" DID; THEY DEPARTED NOT FROM THEM;J# 23 UNTIL THE LORD REMOVED ISRAEL OUT OF HIS SIGHT, AS HE HAD SAID BY ALLL HIS SERVANTS THE PROPHETS. SO WAS ISRAEL CARRIED AWAY OUT OF THEIR OWN LAND TO ASSYRIA UNTO THIS DAY.K# 24 AND THE KING OF ASSYRIA BROUGHT MEN FROM BABYLON, AND FROM CUTHAH, ANDAN FROM AVA, AND FROM HAMATH, AND FROM SEPHARVAIM, AND PLACED THEM IN THE CITIESN OF SAMARIA INSTEAD OF THE CHILDREN OF ISRAEL: AND THEY POSSESSED SAMARIA, AND DWELT IN THE CITIES THEREOF.IM# 25 AND SO IT WAS AT THE BEGINNING OF THEIR DWELLING THERE, THAT THEY FEAREDRK NOT THE LORD: THEREFORE THE LORD SENT LIONS AMONG THEM, WHICH SLEW SOME OFR THEM.K# 26 WHEREFORE THEY SPAKE TO THE KING OF ASSYRIA, SAYING, THE NATIONS WHICHL THOU HAST REMOVED, AND PLACED IN THE CITIES OF SAMARIA, KNOW NOT THE MANNERN OF THE GOD OF THE LAND: THEREFORE HE HATH SENT LIONS AMONG THEM, AND, BEHOLD,I THEY SLAY THEM, BECAUSE THEY KNOW NOT THE MANNER OF THE GOD OF THE LAND.AI# 27 THEN THE KING OF ASSYRIA COMMANDED, SAYING, CARRY THITHER ONE OF THETN PRIESTS WHOM YE BROUGHT FROM THENCE; AND LET THEM GO AND DWELL THERE, AND LET2 HIM TEACH THEM THE MANNER OF THE GOD OF THE LAND.M# 28 THEN ONE OF THE PRIESTS WHOM THEY HAD CARRIED AWAY FROM SAMARIA CAME ANDA@ DWELT IN BETHEL, AND TAUGHT THEM HOW THEY SHOULD FEAR THE LORD.L# 29 HOWBEIT EVERY NATION MADE GODS OF THEIR OWN, AND PUT THEM IN THE HOUSESH OF THE HIGH PLACES WHICH THE SAMARITANS HAD MADE, EVERY NATION IN THEIR CITIES WHEREIN THEY DWELT. H# 30 AND THE MEN OF BABYLON MADE SUCCOTHBENOTH, AND THE MEN OF CUTH MADE+ NERGAL, AND THE MEN OF HAMATH MADE ASHIMA,HK# 31 AND THE AVITES MADE NIBHAZ AND TARTAK, AND THE SEPHARVITES BURNT THEIRNH CHILDREN IN FIRE TO ADRAMMELECH AND ANAMMELECH, THE GODS OF SEPHARVAIM.L# 32 SO THEY FEARED THE LORD, AND MADE UNTO THEMSELVES OF THE LOWEST OF THEMK PRIESTS OF THE HIGH PLACES, WHICH SACRIFICED FOR THEM IN THE HOUSES OF THEE HIGH PLACES.AM# 33 THEY FEARED THE LORD, AND SERVED THEIR OWN GODS, AFTER THE MANNER OF THET, NATIONS WHOM THEY CARRIED AWAY FROM THENCE.L# 34 UNTO THIS DAY THEY DO AFTER THE FORMER MANNERS: THEY FEAR NOT THE LORD,N NEITHER DO THEY AFTER THEIR STATUTES, OR AFTER THEIR ORDINANCES, OR AFTER THEL LAW AND COMMANDMENT WHICH THE LORD COMMANDED THE CHILDREN OF JACOB, WHOM HE NAMED ISRAEL;I# 35 WITH WHOM THE LORD HAD MADE A COVENANT, AND CHARGED THEM, SAYING, YEHK SHALL NOT FEAR OTHER GODS, NOR BOW YOURSELVES TO THEM, NOR SERVE THEM, NORT SACRIFICE TO THEM:HI# 36 BUT THE LORD, WHO BROUGHT YOU UP OUT OF THE LAND OF EGYPT WITH GREATML POWER AND A STRETCHED OUT ARM, HIM SHALL YE FEAR, AND HIM SHALL YE WORSHIP," AND TO HIM SHALL YE DO SACRIFICE.L# 37 AND THE STATUTES, AND THE ORDINANCES, AND THE LAW, AND THE COMMANDMENT,N WHICH HE WROTE FOR YOU, YE SHALL OBSERVE TO DO FOR EVERMORE; AND YE SHALL NOT FEAR OTHER GODS.AL# 38 AND THE COVENANT THAT I HAVE MADE WITH YOU YE SHALL NOT FORGET; NEITHER SHALL YE FEAR OTHER GODS.M# 39 BUT THE LORD YOUR GOD YE SHALL FEAR; AND HE SHALL DELIVER YOU OUT OF THEU HAND OF ALL YOUR ENEMIES.J# 40 HOWBEIT THEY DID NOT HEARKEN, BUT THEY DID AFTER THEIR FORMER MANNER.K# 41 SO THESE NATIONS FEARED THE LORD, AND SERVED THEIR GRAVEN IMAGES, BOTHOJ THEIR CHILDREN, AND THEIR CHILDRENS CHILDREN: AS DID THEIR FATHERS, SO DO THEY UNTO THIS DAY. = CHAPTER 18 EG# 1 NOW IT CAME TO PASS IN THE THIRD YEAR OF HOSHEA SON OF ELAH KING OFTD ISRAEL, THAT HEZEKIAH THE SON OF AHAZ KING OF JUDAH BEGAN TO REIGN.K# 2 TWENTY AND FIVE YEARS OLD WAS HE WHEN HE BEGAN TO REIGN;00j1N1<%X>%+%O-%TADATADATA AND HE REIGNEDNG TWENTY AND NINE YEARS IN JERUSALEM. HIS MOTHERS NAME ALSO WAS ABI, THEF DAUGHTER OF ZACHARIAH.J# 3 AND HE DID THAT WHICH WAS RIGHT IN THE SIGHT OF THE LORD, ACCORDING TO ALL THAT DAVID HIS FATHER DID.DF# 4 HE REMOVED THE HIGH PLACES, AND BRAKE THE IMAGES, AND CUT DOWN THEM GROVES, AND BRAKE IN PIECES THE BRASEN SERPENT THAT MOSES HAD MADE: FOR UNTOOK THOSE DAYS THE CHILDREN OF ISRAEL DID BURN INCENSE TO IT: AND HE CALLED IT NEHUSHTAN.VM# 5 HE TRUSTED IN THE LORD GOD OF ISRAEL; SO THAT AFTER HIM WAS NONE LIKE HIMA< AMONG ALL THE KINGS OF JUDAH, NOR ANY THAT WERE BEFORE HIM.K# 6 FOR HE CLAVE TO THE LORD, AND DEPARTED NOT FROM FOLLOWING HIM, BUT KEPTD2 HIS COMMANDMENTS, WHICH THE LORD COMMANDED MOSES.L# 7 AND THE LORD WAS WITH HIM; AND HE PROSPERED WHITHERSOEVER HE WENT FORTH:A AND HE REBELLED AGAINST THE KING OF ASSYRIA, AND SERVED HIM NOT.TK# 8 HE SMOTE THE PHILISTINES, EVEN UNTO GAZA, AND THE BORDERS THEREOF, FROMI. THE TOWER OF THE WATCHMEN TO THE FENCED CITY.J# 9 AND IT CAME TO PASS IN THE FOURTH YEAR OF KING HEZEKIAH, WHICH WAS THEL SEVENTH YEAR OF HOSHEA SON OF ELAH KING OF ISRAEL, THAT SHALMANESER KING OF2 ASSYRIA CAME UP AGAINST SAMARIA, AND BESIEGED IT.J# 10 AND AT THE END OF THREE YEARS THEY TOOK IT: EVEN IN THE SIXTH YEAR OFJ HEZEKIAH, THAT IS IN THE NINTH YEAR OF HOSHEA KING OF ISRAEL, SAMARIA WAS TAKEN.NM# 11 AND THE KING OF ASSYRIA DID CARRY AWAY ISRAEL UNTO ASSYRIA, AND PUT THEMRM IN HALAH AND IN HABOR BY THE RIVER OF GOZAN, AND IN THE CITIES OF THE MEDES:MA# 12 BECAUSE THEY OBEYED NOT THE VOICE OF THE LORD THEIR GOD, BUTNF TRANSGRESSED HIS COVENANT, AND ALL THAT MOSES THE SERVANT OF THE LORD1 COMMANDED, AND WOULD NOT HEAR THEM, NOR DO THEM.H# 13 NOW IN THE FOURTEENTH YEAR OF KING HEZEKIAH DID SENNACHERIB KING OFG ASSYRIA COME UP AGAINST ALL THE FENCED CITIES OF JUDAH, AND TOOK THEM.WG# 14 AND HEZEKIAH KING OF JUDAH SENT TO THE KING OF ASSYRIA TO LACHISH,YN SAYING, I HAVE OFFENDED; RETURN FROM ME: THAT WHICH THOU PUTTEST ON ME WILL IJ BEAR. AND THE KING OF ASSYRIA APPOINTED UNTO HEZEKIAH KING OF JUDAH THREE6 HUNDRED TALENTS OF SILVER AND THIRTY TALENTS OF GOLD.L# 15 AND HEZEKIAH GAVE HIM ALL THE SILVER THAT WAS FOUND IN THE HOUSE OF THE/ LORD, AND IN THE TREASURES OF THE KINGS HOUSE.HL# 16 AT THAT TIME DID HEZEKIAH CUT OFF THE GOLD FROM THE DOORS OF THE TEMPLEM OF THE LORD, AND FROM THE PILLARS WHICH HEZEKIAH KING OF JUDAH HAD OVERLAID,I$ AND GAVE IT TO THE KING OF ASSYRIA.H# 17 AND THE KING OF ASSYRIA SENT TARTAN AND RABSARIS AND RABSHAKEH FROML LACHISH TO KING HEZEKIAH WITH A GREAT HOST AGAINST JERUSALEM. AND THEY WENTM UP AND CAME TO JERUSALEM. AND WHEN THEY WERE COME UP, THEY CAME AND STOOD BY M THE CONDUIT OF THE UPPER POOL, WHICH IS IN THE HIGHWAY OF THE FULLERS FIELD.UM# 18 AND WHEN THEY HAD CALLED TO THE KING, THERE CAME OUT TO THEM ELIAKIM THEPN SON OF HILKIAH, WHICH WAS OVER THE HOUSEHOLD, AND SHEBNA THE SCRIBE, AND JOAH THE SON OF ASAPH THE RECORDER.SK# 19 AND RABSHAKEH SAID UNTO THEM, SPEAK YE NOW TO HEZEKIAH, THUS SAITH THERF GREAT KING, THE KING OF ASSYRIA, WHAT CONFIDENCE IS THIS WHEREIN THOU TRUSTEST?L# 20 THOU SAYEST, (BUT THEY ARE BUT VAIN WORDS,) I HAVE COUNSEL AND STRENGTHJ FOR THE WAR. NOW ON WHOM DOST THOU TRUST, THAT THOU REBELLEST AGAINST ME?I# 21 NOW, BEHOLD, THOU TRUSTEST UPON THE STAFF OF THIS BRUISED REED, EVENIM UPON EGYPT, ON WHICH IF A MAN LEAN, IT WILL GO INTO HIS HAND, AND PIERCE IT:N8 SO IS PHARAOH KING OF EGYPT UNTO ALL THAT TRUST ON HIM.I# 22 BUT IF YE SAY UNTO ME, WE TRUST IN THE LORD OUR GOD: IS NOT THAT HE,TN WHOSE HIGH PLACES AND WHOSE ALTARS HEZEKIAH HATH TAKEN AWAY, AND HATH SAID TOF JUDAH AND JERUSALEM, YE SHALL WORSHIP BEFORE THIS ALTAR IN JERUSALEM?M# 23 NOW THEREFORE, I PRAY THEE, GIVE PLEDGES TO MY LORD THE KING OF ASSYRIA,WL AND I WILL DELIVER THEE TWO THOUSAND HORSES, IF THOU BE ABLE ON THY PART TO SET RIDERS UPON THEM.L# 24 HOW THEN WILT THOU TURN AWAY THE FACE OF ONE CAPTAIN OF THE LEAST OF MYL MASTERS SERVANTS, AND PUT THY TRUST ON EGYPT FOR CHARIOTS AND FOR HORSEMEN?L00j2E1D%5%T6%! !# 25 AM I NOW COME UP WITHOUT THE LORD AGAINST THIS PLACE TO DESTROY IT? THE: LORD SAID TO ME, GO UP AGAINST THIS LAND, AND DESTROY IT.E# 26 THEN SAID ELIAKIM THE SON OF HILKIAH, AND SHEBNA, AND JOAH, UNTOGN RABSHAKEH, SPEAK, I PRAY THEE, TO THY SERVANTS IN THE SYRIAN LANGUAGE; FOR WEL UNDERSTAND IT: AND TALK NOT WITH US IN THE JEWS LANGUAGE IN THE EARS OF THE PEOPLE THAT ARE ON THE WALL.EL# 27 BUT RABSHAKEH SAID UNTO THEM, HATH MY MASTER SENT ME TO THY MASTER, ANDK TO THEE, TO SPEAK THESE WORDS? HATH HE NOT SENT ME TO THE MEN WHICH SIT ONAJ THE WALL, THAT THEY MAY EAT THEIR OWN DUNG, AND DRINK THEIR OWN PISS WITH YOU?DK# 28 THEN RABSHAKEH STOOD AND CRIED WITH A LOUD VOICE IN THE JEWS LANGUAGE,UI AND SPAKE, SAYING, HEAR THE WORD OF THE GREAT KING, THE KING OF ASSYRIA:EK# 29 THUS SAITH THE KING, LET NOT HEZEKIAH DECEIVE YOU: FOR HE SHALL NOT BER% ABLE TO DELIVER YOU OUT OF HIS HAND:EK# 30 NEITHER LET HEZEKIAH MAKE YOU TRUST IN THE LORD, SAYING, THE LORD WILLDM SURELY DELIVER US, AND THIS CITY SHALL NOT BE DELIVERED INTO THE HAND OF THE KING OF ASSYRIA.YI# 31 HEARKEN NOT TO HEZEKIAH: FOR THUS SAITH THE KING OF ASSYRIA, MAKE ANAN AGREEMENT WITH ME BY A PRESENT, AND COME OUT TO ME, AND THEN EAT YE EVERY MANK OF HIS OWN VINE, AND EVERY ONE OF HIS FIG TREE, AND DRINK YE EVERY ONE THE  WATERS OF HIS CISTERN:HK# 32 UNTIL I COME AND TAKE YOU AWAY TO A LAND LIKE YOUR OWN LAND, A LAND OF I CORN AND WINE, A LAND OF BREAD AND VINEYARDS, A LAND OF OIL OLIVE AND OFM HONEY, THAT YE MAY LIVE, AND NOT DIE: AND HEARKEN NOT UNTO HEZEKIAH, WHEN HE2 PERSUADETH YOU, SAYING, THE LORD WILL DELIVER US.M# 33 HATH ANY OF THE GODS OF THE NATIONS DELIVERED AT ALL HIS LAND OUT OF THED HAND OF THE KING OF ASSYRIA?EF# 34 WHERE ARE THE GODS OF HAMATH, AND OF ARPAD? WHERE ARE THE GODS OFJ SEPHARVAIM, HENA, AND IVAH? HAVE THEY DELIVERED SAMARIA OUT OF MINE HAND?J# 35 WHO ARE THEY AMONG ALL THE GODS OF THE COUNTRIES, THAT HAVE DELIVEREDN THEIR COUNTRY OUT OF MINE HAND, THAT THE LORD SHOULD DELIVER JERUSALEM OUT OF MINE HAND?KJ# 36 BUT THE PEOPLE HELD THEIR PEACE, AND ANSWERED HIM NOT A WORD: FOR THE/ KINGS COMMANDMENT WAS, SAYING, ANSWER HIM NOT.DL# 37 THEN CAME ELIAKIM THE SON OF HILKIAH, WHICH WAS OVER THE HOUSEHOLD, ANDL SHEBNA THE SCRIBE, AND JOAH THE SON OF ASAPH THE RECORDER, TO HEZEKIAH WITH9 THEIR CLOTHES RENT, AND TOLD HIM THE WORDS OF RABSHAKEH.? = CHAPTER 19 TF# 1 AND IT CAME TO PASS, WHEN KING HEZEKIAH HEARD IT, THAT HE RENT HISL CLOTHES, AND COVERED HIMSELF WITH SACKCLOTH, AND WENT INTO THE HOUSE OF THE LORD.M# 2 AND HE SENT ELIAKIM, WHICH WAS OVER THE HOUSEHOLD, AND SHEBNA THE SCRIBE,SM AND THE ELDERS OF THE PRIESTS, COVERED WITH SACKCLOTH, TO ISAIAH THE PROPHETI THE SON OF AMOZ.EE# 3 AND THEY SAID UNTO HIM, THUS SAITH HEZEKIAH, THIS DAY IS A DAY OF H TROUBLE, AND OF REBUKE, AND BLASPHEMY; FOR THE CHILDREN ARE COME TO THE1 BIRTH, AND THERE IS NOT STRENGTH TO BRING FORTH.SM# 4 IT MAY BE THE LORD THY GOD WILL HEAR ALL THE WORDS OF RABSHAKEH, WHOM THE J KING OF ASSYRIA HIS MASTER HATH SENT TO REPROACH THE LIVING GOD; AND WILLK REPROVE THE WORDS WHICH THE LORD THY GOD HATH HEARD: WHEREFORE LIFT UP THYF& PRAYER FOR THE REMNANT THAT ARE LEFT.4# 5 SO THE SERVANTS OF KING HEZEKIAH CAME TO ISAIAH.K# 6 AND ISAIAH SAID UNTO THEM, THUS SHALL YE SAY TO YOUR MASTER, THUS SAITHRK THE LORD, BE NOT AFRAID OF THE WORDS WHICH THOU HAST HEARD, WITH WHICH THEN4 SERVANTS OF THE KING OF ASSYRIA HAVE BLASPHEMED ME.I# 7 BEHOLD, I WILL SEND A BLAST UPON HIM, AND HE SHALL HEAR A RUMOUR, ANDSK SHALL RETURN TO HIS OWN LAND; AND I WILL CAUSE HIM TO FALL BY THE SWORD INI HIS OWN LAND.H# 8 SO RABSHAKEH RETURNED, AND FOUND THE KING OF ASSYRIA WARRING AGAINST< LIBNAH: FOR HE HAD HEARD THAT HE WAS DEPARTED FROM LACHISH.J# 9 AND WHEN HE HEARD SAY OF TIRHAKAH KING OF ETHIOPIA, BEHOLD, HE IS COMEK OUT TO FIGHT AGAINST THEE: HE SENT MESSENGERS AGAIN UNTO HEZEKIAH, SAYING,K# 10 THUS SHALL YE SPEAK TO HEZEKIAH KING OF JUDAH, SAYING, LET NOT THY GOD M IN WHOM THOU TRUSTEST DECEIVE THEE, SAYING, JERUSALEM SHALL00j2N1<%X>%+%O-%TADATADATA NOT BE DELIVEREDN& INTO THE HAND OF THE KING OF ASSYRIA.G# 11 BEHOLD, THOU HAST HEARD WHAT THE KINGS OF ASSYRIA HAVE DONE TO ALLF@ LANDS, BY DESTROYING THEM UTTERLY: AND SHALT THOU BE DELIVERED?F# 12 HAVE THE GODS OF THE NATIONS DELIVERED THEM WHICH MY FATHERS HAVEK DESTROYED; AS GOZAN, AND HARAN, AND REZEPH, AND THE CHILDREN OF EDEN WHICHN WERE IN THELASAR?L# 13 WHERE IS THE KING OF HAMATH, AND THE KING OF ARPAD, AND THE KING OF THE' CITY OF SEPHARVAIM, OF HENA, AND IVAH?,M# 14 AND HEZEKIAH RECEIVED THE LETTER OF THE HAND OF THE MESSENGERS, AND READIN IT: AND HEZEKIAH WENT UP INTO THE HOUSE OF THE LORD, AND SPREAD IT BEFORE THE LORD.I# 15 AND HEZEKIAH PRAYED BEFORE THE LORD, AND SAID, O LORD GOD OF ISRAEL,OL WHICH DWELLEST BETWEEN THE CHERUBIMS, THOU ART THE GOD, EVEN THOU ALONE, OF@ ALL THE KINGDOMS OF THE EARTH; THOU HAST MADE HEAVEN AND EARTH.M# 16 LORD, BOW DOWN THINE EAR, AND HEAR: OPEN, LORD, THINE EYES, AND SEE: ANDTJ HEAR THE WORDS OF SENNACHERIB, WHICH HATH SENT HIM TO REPROACH THE LIVING GOD. J# 17 OF A TRUTH, LORD, THE KINGS OF ASSYRIA HAVE DESTROYED THE NATIONS AND THEIR LANDS,OK# 18 AND HAVE CAST THEIR GODS INTO THE FIRE: FOR THEY WERE NO GODS, BUT THEDH WORK OF MENS HANDS, WOOD AND STONE: THEREFORE THEY HAVE DESTROYED THEM.K# 19 NOW THEREFORE, O LORD OUR GOD, I BESEECH THEE, SAVE THOU US OUT OF HISHN HAND, THAT ALL THE KINGDOMS OF THE EARTH MAY KNOW THAT THOU ART THE LORD GOD, EVEN THOU ONLY.I# 20 THEN ISAIAH THE SON OF AMOZ SENT TO HEZEKIAH, SAYING, THUS SAITH THEHJ LORD GOD OF ISRAEL, THAT WHICH THOU HAST PRAYED TO ME AGAINST SENNACHERIB KING OF ASSYRIA I HAVE HEARD.J# 21 THIS IS THE WORD THAT THE LORD HATH SPOKEN CONCERNING HIM; THE VIRGINH THE DAUGHTER OF ZION HATH DESPISED THEE, AND LAUGHED THEE TO SCORN; THE4 DAUGHTER OF JERUSALEM HATH SHAKEN HER HEAD AT THEE.I# 22 WHOM HAST THOU REPROACHED AND BLASPHEMED? AND AGAINST WHOM HAST THOUNK EXALTED THY VOICE, AND LIFTED UP THINE EYES ON HIGH? EVEN AGAINST THE HOLY  ONE OF ISRAEL.KM# 23 BY THY MESSENGERS THOU HAST REPROACHED THE LORD, AND HAST SAID, WITH THETM MULTITUDE OF MY CHARIOTS I AM COME UP TO THE HEIGHT OF THE MOUNTAINS, TO THE J SIDES OF LEBANON, AND WILL CUT DOWN THE TALL CEDAR TREES THEREOF, AND THEM CHOICE FIR TREES THEREOF: AND I WILL ENTER INTO THE LODGINGS OF HIS BORDERS, # AND INTO THE FOREST OF HIS CARMEL.AI# 24 I HAVE DIGGED AND DRUNK STRANGE WATERS, AND WITH THE SOLE OF MY FEETY3 HAVE I DRIED UP ALL THE RIVERS OF BESIEGED PLACES.TJ# 25 HAST THOU NOT HEARD LONG AGO HOW I HAVE DONE IT, AND OF ANCIENT TIMESM THAT I HAVE FORMED IT? NOW HAVE I BROUGHT IT TO PASS, THAT THOU SHOULDEST BE / TO LAY WASTE FENCED CITIES INTO RUINOUS HEAPS.OL# 26 THEREFORE THEIR INHABITANTS WERE OF SMALL POWER, THEY WERE DISMAYED ANDK CONFOUNDED; THEY WERE AS THE GRASS OF THE FIELD, AND AS THE GREEN HERB, ASOH THE GRASS ON THE HOUSE TOPS, AND AS CORN BLASTED BEFORE IT BE GROWN UP.M# 27 BUT I KNOW THY ABODE, AND THY GOING OUT, AND THY COMING IN, AND THY RAGE AGAINST ME.J# 28 BECAUSE THY RAGE AGAINST ME AND THY TUMULT IS COME UP INTO MINE EARS,K THEREFORE I WILL PUT MY HOOK IN THY NOSE, AND MY BRIDLE IN THY LIPS, AND I 5 WILL TURN THEE BACK BY THE WAY BY WHICH THOU CAMEST.RK# 29 AND THIS SHALL BE A SIGN UNTO THEE, YE SHALL EAT THIS YEAR SUCH THINGSEJ AS GROW OF THEMSELVES, AND IN THE SECOND YEAR THAT WHICH SPRINGETH OF THEK SAME; AND IN THE THIRD YEAR SOW YE, AND REAP, AND PLANT VINEYARDS, AND EATB THE FRUITS THEREOF.J# 30 AND THE REMNANT THAT IS ESCAPED OF THE HOUSE OF JUDAH SHALL YET AGAIN+ TAKE ROOT DOWNWARD, AND BEAR FRUIT UPWARD.RL# 31 FOR OUT OF JERUSALEM SHALL GO FORTH A REMNANT, AND THEY THAT ESCAPE OUT< OF MOUNT ZION: THE ZEAL OF THE LORD OF HOSTS SHALL DO THIS.K# 32 THEREFORE THUS SAITH THE LORD CONCERNING THE KING OF ASSYRIA, HE SHALLAK NOT COME INTO THIS CITY, NOR SHOOT AN ARROW THERE, NOR COME BEFORE IT WITHM$ SHIELD, NOR CAST A BANK AGAINST IT.M# 33 BY THE WAY THAT HE CAME, BY THE SAME SHALL HE RETURN, AND SHALL NOT COMET INTO THIS CITY, SAITH THE LORD.K# 34 FOR I WILL DEFEND THI00j2E1D%5%T6%! !S CITY, TO SAVE IT, FOR MINE OWN SAKE, AND FOR MYT SERVANT DAVIDS SAKE.FM# 35 AND IT CAME TO PASS THAT NIGHT, THAT THE ANGEL OF THE LORD WENT OUT, ANDOK SMOTE IN THE CAMP OF THE ASSYRIANS AN HUNDRED FOURSCORE AND FIVE THOUSAND:GN AND WHEN THEY AROSE EARLY IN THE MORNING, BEHOLD, THEY WERE ALL DEAD CORPSES.H# 36 SO SENNACHERIB KING OF ASSYRIA DEPARTED, AND WENT AND RETURNED, AND DWELT AT NINEVEH.K# 37 AND IT CAME TO PASS, AS HE WAS WORSHIPPING IN THE HOUSE OF NISROCH HIS.J GOD, THAT ADRAMMELECH AND SHAREZER HIS SONS SMOTE HIM WITH THE SWORD: ANDM THEY ESCAPED INTO THE LAND OF ARMENIA. AND ESARHADDON HIS SON REIGNED IN HIS  STEAD.R = CHAPTER 20 ON# 1 IN THOSE DAYS WAS HEZEKIAH SICK UNTO DEATH. AND THE PROPHET ISAIAH THE SONM OF AMOZ CAME TO HIM, AND SAID UNTO HIM, THUS SAITH THE LORD, SET THINE HOUSE, IN ORDER; FOR THOU SHALT DIE, AND NOT LIVE.J# 2 THEN HE TURNED HIS FACE TO THE WALL, AND PRAYED UNTO THE LORD, SAYING,I# 3 I BESEECH THEE, O LORD, REMEMBER NOW HOW I HAVE WALKED BEFORE THEE INDH TRUTH AND WITH A PERFECT HEART, AND HAVE DONE THAT WHICH IS GOOD IN THY SIGHT. AND HEZEKIAH WEPT SORE.SI# 4 AND IT CAME TO PASS, AFORE ISAIAH WAS GONE OUT INTO THE MIDDLE COURT,I/ THAT THE WORD OF THE LORD CAME TO HIM, SAYING,NJ# 5 TURN AGAIN, AND TELL HEZEKIAH THE CAPTAIN OF MY PEOPLE, THUS SAITH THEL LORD, THE GOD OF DAVID THY FATHER, I HAVE HEARD THY PRAYER, I HAVE SEEN THYL TEARS: BEHOLD, I WILL HEAL THEE: ON THE THIRD DAY THOU SHALT GO UP UNTO THE HOUSE OF THE LORD.VK# 6 AND I WILL ADD UNTO THY DAYS FIFTEEN YEARS; AND I WILL DELIVER THEE AND N THIS CITY OUT OF THE HAND OF THE KING OF ASSYRIA; AND I WILL DEFEND THIS CITY3 FOR MINE OWN SAKE, AND FOR MY SERVANT DAVIDS SAKE.TJ# 7 AND ISAIAH SAID, TAKE A LUMP OF FIGS. AND THEY TOOK AND LAID IT ON THE BOIL, AND HE RECOVERED.L# 8 AND HEZEKIAH SAID UNTO ISAIAH, WHAT SHALL BE THE SIGN THAT THE LORD WILLJ HEAL ME, AND THAT I SHALL GO UP INTO THE HOUSE OF THE LORD THE THIRD DAY?I# 9 AND ISAIAH SAID, THIS SIGN SHALT THOU HAVE OF THE LORD, THAT THE LORDAG WILL DO THE THING THAT HE HATH SPOKEN: SHALL THE SHADOW GO FORWARD TEND! DEGREES, OR GO BACK TEN DEGREES? M# 10 AND HEZEKIAH ANSWERED, IT IS A LIGHT THING FOR THE SHADOW TO GO DOWN TEN > DEGREES: NAY, BUT LET THE SHADOW RETURN BACKWARD TEN DEGREES.J# 11 AND ISAIAH THE PROPHET CRIED UNTO THE LORD: AND HE BROUGHT THE SHADOWE TEN DEGREES BACKWARD, BY WHICH IT HAD GONE DOWN IN THE DIAL OF AHAZ.HL# 12 AT THAT TIME BERODACHBALADAN, THE SON OF BALADAN, KING OF BABYLON, SENTM LETTERS AND A PRESENT UNTO HEZEKIAH: FOR HE HAD HEARD THAT HEZEKIAH HAD BEEN  SICK.K# 13 AND HEZEKIAH HEARKENED UNTO THEM, AND SHEWED THEM ALL THE HOUSE OF HISWL PRECIOUS THINGS, THE SILVER, AND THE GOLD, AND THE SPICES, AND THE PRECIOUSI OINTMENT, AND ALL THE HOUSE OF HIS ARMOUR, AND ALL THAT WAS FOUND IN HISEI TREASURES: THERE WAS NOTHING IN HIS HOUSE, NOR IN ALL HIS DOMINION, THAT  HEZEKIAH SHEWED THEM NOT.M# 14 THEN CAME ISAIAH THE PROPHET UNTO KING HEZEKIAH, AND SAID UNTO HIM, WHATLM SAID THESE MEN? AND FROM WHENCE CAME THEY UNTO THEE? AND HEZEKIAH SAID, THEYH0 ARE COME FROM A FAR COUNTRY, EVEN FROM BABYLON.L# 15 AND HE SAID, WHAT HAVE THEY SEEN IN THINE HOUSE? AND HEZEKIAH ANSWERED,M ALL THE THINGS THAT ARE IN MINE HOUSE HAVE THEY SEEN: THERE IS NOTHING AMONGI* MY TREASURES THAT I HAVE NOT SHEWED THEM.># 16 AND ISAIAH SAID UNTO HEZEKIAH, HEAR THE WORD OF THE LORD.K# 17 BEHOLD, THE DAYS COME, THAT ALL THAT IS IN THINE HOUSE, AND THAT WHICHKG THY FATHERS HAVE LAID UP IN STORE UNTO THIS DAY, SHALL BE CARRIED INTOC0 BABYLON: NOTHING SHALL BE LEFT, SAITH THE LORD.H# 18 AND OF THY SONS THAT SHALL ISSUE FROM THEE, WHICH THOU SHALT BEGET,M SHALL THEY TAKE AWAY; AND THEY SHALL BE EUNUCHS IN THE PALACE OF THE KING OFI BABYLON.VL# 19 THEN SAID HEZEKIAH UNTO ISAIAH, GOOD IS THE WORD OF THE LORD WHICH THOUL HAST SPOKEN. AND HE SAID, IS IT NOT GOOD, IF PEACE AND TRUTH BE IN MY DAYS?M# 20 AND THE REST OF THE ACTS OF HEZEKIAH, AND ALL HIS MIGHT, AND HOW HE MADESM A POOL, AND A CONDUIT, AND BROUGHT WATER INTO THE CIT00j2N1<%X>%+%O-%TADATADATAY, ARE THEY NOT WRITTEN 5 IN THE BOOK OF THE CHRONICLES OF THE KINGS OF JUDAH?AM# 21 AND HEZEKIAH SLEPT WITH HIS FATHERS: AND MANASSEH HIS SON REIGNED IN HISE STEAD.E = CHAPTER 21 K# 1 MANASSEH WAS TWELVE YEARS OLD WHEN HE BEGAN TO REIGN, AND REIGNED FIFTY A AND FIVE YEARS IN JERUSALEM. AND HIS MOTHERS NAME WAS HEPHZIBAH.TF# 2 AND HE DID THAT WHICH WAS EVIL IN THE SIGHT OF THE LORD, AFTER THEK ABOMINATIONS OF THE HEATHEN, WHOM THE LORD CAST OUT BEFORE THE CHILDREN OF  ISRAEL.G# 3 FOR HE BUILT UP AGAIN THE HIGH PLACES WHICH HEZEKIAH HIS FATHER HADLK DESTROYED; AND HE REARED UP ALTARS FOR BAAL, AND MADE A GROVE, AS DID AHABAH KING OF ISRAEL; AND WORSHIPPED ALL THE HOST OF HEAVEN, AND SERVED THEM.L# 4 AND HE BUILT ALTARS IN THE HOUSE OF THE LORD, OF WHICH THE LORD SAID, IN JERUSALEM WILL I PUT MY NAME.K# 5 AND HE BUILT ALTARS FOR ALL THE HOST OF HEAVEN IN THE TWO COURTS OF THE, HOUSE OF THE LORD.IK# 6 AND HE MADE HIS SON PASS THROUGH THE FIRE, AND OBSERVED TIMES, AND USEDK ENCHANTMENTS, AND DEALT WITH FAMILIAR SPIRITS AND WIZARDS: HE WROUGHT MUCHS> WICKEDNESS IN THE SIGHT OF THE LORD, TO PROVOKE HIM TO ANGER.L# 7 AND HE SET A GRAVEN IMAGE OF THE GROVE THAT HE HAD MADE IN THE HOUSE, OFL WHICH THE LORD SAID TO DAVID, AND TO SOLOMON HIS SON, IN THIS HOUSE, AND INJ JERUSALEM, WHICH I HAVE CHOSEN OUT OF ALL TRIBES OF ISRAEL, WILL I PUT MY NAME FOR EVER:HH# 8 NEITHER WILL I MAKE THE FEET OF ISRAEL MOVE ANY MORE OUT OF THE LANDM WHICH I GAVE THEIR FATHERS; ONLY IF THEY WILL OBSERVE TO DO ACCORDING TO ALLAI THAT I HAVE COMMANDED THEM, AND ACCORDING TO ALL THE LAW THAT MY SERVANTH MOSES COMMANDED THEM.J# 9 BUT THEY HEARKENED NOT: AND MANASSEH SEDUCED THEM TO DO MORE EVIL THANG DID THE NATIONS WHOM THE LORD DESTROYED BEFORE THE CHILDREN OF ISRAEL.S=# 10 AND THE LORD SPAKE BY HIS SERVANTS THE PROPHETS, SAYING,EJ# 11 BECAUSE MANASSEH KING OF JUDAH HATH DONE THESE ABOMINATIONS, AND HATHJ DONE WICKEDLY ABOVE ALL THAT THE AMORITES DID, WHICH WERE BEFORE HIM, AND, HATH MADE JUDAH ALSO TO SIN WITH HIS IDOLS:L# 12 THEREFORE THUS SAITH THE LORD GOD OF ISRAEL, BEHOLD, I AM BRINGING SUCHK EVIL UPON JERUSALEM AND JUDAH, THAT WHOSOEVER HEARETH OF IT, BOTH HIS EARS  SHALL TINGLE.K# 13 AND I WILL STRETCH OVER JERUSALEM THE LINE OF SAMARIA, AND THE PLUMMETSH OF THE HOUSE OF AHAB: AND I WILL WIPE JERUSALEM AS A MAN WIPETH A DISH,' WIPING IT, AND TURNING IT UPSIDE DOWN.SI# 14 AND I WILL FORSAKE THE REMNANT OF MINE INHERITANCE, AND DELIVER THEMHL INTO THE HAND OF THEIR ENEMIES; AND THEY SHALL BECOME A PREY AND A SPOIL TO ALL THEIR ENEMIES;HE# 15 BECAUSE THEY HAVE DONE THAT WHICH WAS EVIL IN MY SIGHT, AND HAVEAK PROVOKED ME TO ANGER, SINCE THE DAY THEIR FATHERS CAME FORTH OUT OF EGYPT,A EVEN UNTO THIS DAY.H# 16 MOREOVER MANASSEH SHED INNOCENT BLOOD VERY MUCH, TILL HE HAD FILLEDM JERUSALEM FROM ONE END TO ANOTHER; BESIDE HIS SIN WHEREWITH HE MADE JUDAH TOS< SIN, IN DOING THAT WHICH WAS EVIL IN THE SIGHT OF THE LORD.K# 17 NOW THE REST OF THE ACTS OF MANASSEH, AND ALL THAT HE DID, AND HIS SINOJ THAT HE SINNED, ARE THEY NOT WRITTEN IN THE BOOK OF THE CHRONICLES OF THE KINGS OF JUDAH?M# 18 AND MANASSEH SLEPT WITH HIS FATHERS, AND WAS BURIED IN THE GARDEN OF HISMI OWN HOUSE, IN THE GARDEN OF UZZA: AND AMON HIS SON REIGNED IN HIS STEAD.NM# 19 AMON WAS TWENTY AND TWO YEARS OLD WHEN HE BEGAN TO REIGN, AND HE REIGNED L TWO YEARS IN JERUSALEM. AND HIS MOTHERS NAME WAS MESHULLEMETH, THE DAUGHTER OF HARUZ OF JOTBAH.K# 20 AND HE DID THAT WHICH WAS EVIL IN THE SIGHT OF THE LORD, AS HIS FATHER  MANASSEH DID.K# 21 AND HE WALKED IN ALL THE WAY THAT HIS FATHER WALKED IN, AND SERVED THEU3 IDOLS THAT HIS FATHER SERVED, AND WORSHIPPED THEM:AM# 22 AND HE FORSOOK THE LORD GOD OF HIS FATHERS, AND WALKED NOT IN THE WAY OF THE LORD.M# 23 AND THE SERVANTS OF AMON CONSPIRED AGAINST HIM, AND SLEW THE KING IN HISA OWN HOUSE. M# 24 AND THE PEOPLE OF THE LAND SLEW ALL THEM THAT HAD CONSPIRED AGAINST KINGH AMON; AND THE PEOPLE OF THE LAND MADE JOSIAH HIS SON KING IN HIS STEAD.K# 25 NOW THE REST OF THE A00j 2E1D%5%T6%! !CTS OF AMON WHICH HE DID, ARE THEY NOT WRITTEN INH2 THE BOOK OF THE CHRONICLES OF THE KINGS OF JUDAH?M# 26 AND HE WAS BURIED IN HIS SEPULCHRE IN THE GARDEN OF UZZA: AND JOSIAH HIS  SON REIGNED IN HIS STEAD. = CHAPTER 22 L# 1 JOSIAH WAS EIGHT YEARS OLD WHEN HE BEGAN TO REIGN, AND HE REIGNED THIRTYN AND ONE YEARS IN JERUSALEM. AND HIS MOTHERS NAME WAS JEDIDAH, THE DAUGHTER OF ADAIAH OF BOSCATH.KK# 2 AND HE DID THAT WHICH WAS RIGHT IN THE SIGHT OF THE LORD, AND WALKED IN.N ALL THE WAY OF DAVID HIS FATHER, AND TURNED NOT ASIDE TO THE RIGHT HAND OR TO THE LEFT.L# 3 AND IT CAME TO PASS IN THE EIGHTEENTH YEAR OF KING JOSIAH, THAT THE KINGJ SENT SHAPHAN THE SON OF AZALIAH, THE SON OF MESHULLAM, THE SCRIBE, TO THE HOUSE OF THE LORD, SAYING,TI# 4 GO UP TO HILKIAH THE HIGH PRIEST, THAT HE MAY SUM THE SILVER WHICH IS G BROUGHT INTO THE HOUSE OF THE LORD, WHICH THE KEEPERS OF THE DOOR HAVEB GATHERED OF THE PEOPLE:M# 5 AND LET THEM DELIVER IT INTO THE HAND OF THE DOERS OF THE WORK, THAT HAVEAM THE OVERSIGHT OF THE HOUSE OF THE LORD: AND LET THEM GIVE IT TO THE DOERS OFNJ THE WORK WHICH IS IN THE HOUSE OF THE LORD, TO REPAIR THE BREACHES OF THE HOUSE, I# 6 UNTO CARPENTERS, AND BUILDERS, AND MASONS, AND TO BUY TIMBER AND HEWN  STONE TO REPAIR THE HOUSE.HG# 7 HOWBEIT THERE WAS NO RECKONING MADE WITH THEM OF THE MONEY THAT WAST: DELIVERED INTO THEIR HAND, BECAUSE THEY DEALT FAITHFULLY.J# 8 AND HILKIAH THE HIGH PRIEST SAID UNTO SHAPHAN THE SCRIBE, I HAVE FOUNDK THE BOOK OF THE LAW IN THE HOUSE OF THE LORD. AND HILKIAH GAVE THE BOOK TOL SHAPHAN, AND HE READ IT.SM# 9 AND SHAPHAN THE SCRIBE CAME TO THE KING, AND BROUGHT THE KING WORD AGAIN,EL AND SAID, THY SERVANTS HAVE GATHERED THE MONEY THAT WAS FOUND IN THE HOUSE,L AND HAVE DELIVERED IT INTO THE HAND OF THEM THAT DO THE WORK, THAT HAVE THE$ OVERSIGHT OF THE HOUSE OF THE LORD.L# 10 AND SHAPHAN THE SCRIBE SHEWED THE KING, SAYING, HILKIAH THE PRIEST HATH: DELIVERED ME A BOOK. AND SHAPHAN READ IT BEFORE THE KING.J# 11 AND IT CAME TO PASS, WHEN THE KING HAD HEARD THE WORDS OF THE BOOK OF# THE LAW, THAT HE RENT HIS CLOTHES.PE# 12 AND THE KING COMMANDED HILKIAH THE PRIEST, AND AHIKAM THE SON OFDM SHAPHAN, AND ACHBOR THE SON OF MICHAIAH, AND SHAPHAN THE SCRIBE, AND ASAHIAHH A SERVANT OF THE KINGS, SAYING,G# 13 GO YE, ENQUIRE OF THE LORD FOR ME, AND FOR THE PEOPLE, AND FOR ALL.I JUDAH, CONCERNING THE WORDS OF THIS BOOK THAT IS FOUND: FOR GREAT IS THEAK WRATH OF THE LORD THAT IS KINDLED AGAINST US, BECAUSE OUR FATHERS HAVE NOTAN HEARKENED UNTO THE WORDS OF THIS BOOK, TO DO ACCORDING UNTO ALL THAT WHICH IS WRITTEN CONCERNING US.AM# 14 SO HILKIAH THE PRIEST, AND AHIKAM, AND ACHBOR, AND SHAPHAN, AND ASAHIAH, L WENT UNTO HULDAH THE PROPHETESS, THE WIFE OF SHALLUM THE SON OF TIKVAH, THEJ SON OF HARHAS, KEEPER OF THE WARDROBE; (NOW SHE DWELT IN JERUSALEM IN THE& COLLEGE;) AND THEY COMMUNED WITH HER.L# 15 AND SHE SAID UNTO THEM, THUS SAITH THE LORD GOD OF ISRAEL, TELL THE MAN THAT SENT YOU TO ME,,M# 16 THUS SAITH THE LORD, BEHOLD, I WILL BRING EVIL UPON THIS PLACE, AND UPONCJ THE INHABITANTS THEREOF, EVEN ALL THE WORDS OF THE BOOK WHICH THE KING OF JUDAH HATH READ:ML# 17 BECAUSE THEY HAVE FORSAKEN ME, AND HAVE BURNED INCENSE UNTO OTHER GODS,G THAT THEY MIGHT PROVOKE ME TO ANGER WITH ALL THE WORKS OF THEIR HANDS;AI THEREFORE MY WRATH SHALL BE KINDLED AGAINST THIS PLACE, AND SHALL NOT BET QUENCHED.I# 18 BUT TO THE KING OF JUDAH WHICH SENT YOU TO ENQUIRE OF THE LORD, THUSTN SHALL YE SAY TO HIM, THUS SAITH THE LORD GOD OF ISRAEL, AS TOUCHING THE WORDS WHICH THOU HAST HEARD;EM# 19 BECAUSE THINE HEART WAS TENDER, AND THOU HAST HUMBLED THYSELF BEFORE THEHJ LORD, WHEN THOU HEARDEST WHAT I SPAKE AGAINST THIS PLACE, AND AGAINST THEK INHABITANTS THEREOF, THAT THEY SHOULD BECOME A DESOLATION AND A CURSE, ANDRM HAST RENT THY CLOTHES, AND WEPT BEFORE ME; I ALSO HAVE HEARD THEE, SAITH THET LORD.M# 20 BEHOLD THEREFORE, I WILL GATHER THEE UNTO THY FATHERS, AND THOU SHALT BETL GATHERED INTO THY GRAVE IN PEACE; AND THINE EYES SHALL NOT SEE ALL 00j(2N1<%X>%+%O-%TADATADATATHE EVILJ WHICH I WILL BRING UPON THIS PLACE. AND THEY BROUGHT THE KING WORD AGAIN. = CHAPTER 23 DM# 1 AND THE KING SENT, AND THEY GATHERED UNTO HIM ALL THE ELDERS OF JUDAH AND, OF JERUSALEM.M# 2 AND THE KING WENT UP INTO THE HOUSE OF THE LORD, AND ALL THE MEN OF JUDAHH AND ALL THE INHABITANTS OF JERUSALEM WITH HIM, AND THE PRIESTS, AND THEN PROPHETS, AND ALL THE PEOPLE, BOTH SMALL AND GREAT: AND HE READ IN THEIR EARSN ALL THE WORDS OF THE BOOK OF THE COVENANT WHICH WAS FOUND IN THE HOUSE OF THE LORD.K# 3 AND THE KING STOOD BY A PILLAR, AND MADE A COVENANT BEFORE THE LORD, TO.N WALK AFTER THE LORD, AND TO KEEP HIS COMMANDMENTS AND HIS TESTIMONIES AND HISJ STATUTES WITH ALL THEIR HEART AND ALL THEIR SOUL, TO PERFORM THE WORDS OFN THIS COVENANT THAT WERE WRITTEN IN THIS BOOK. AND ALL THE PEOPLE STOOD TO THE COVENANT.J# 4 AND THE KING COMMANDED HILKIAH THE HIGH PRIEST, AND THE PRIESTS OF THEL SECOND ORDER, AND THE KEEPERS OF THE DOOR, TO BRING FORTH OUT OF THE TEMPLEL OF THE LORD ALL THE VESSELS THAT WERE MADE FOR BAAL, AND FOR THE GROVE, ANDH FOR ALL THE HOST OF HEAVEN: AND HE BURNED THEM WITHOUT JERUSALEM IN THE= FIELDS OF KIDRON, AND CARRIED THE ASHES OF THEM UNTO BETHEL.RG# 5 AND HE PUT DOWN THE IDOLATROUS PRIESTS, WHOM THE KINGS OF JUDAH HADEK ORDAINED TO BURN INCENSE IN THE HIGH PLACES IN THE CITIES OF JUDAH, AND IN N THE PLACES ROUND ABOUT JERUSALEM; THEM ALSO THAT BURNED INCENSE UNTO BAAL, TOM THE SUN, AND TO THE MOON, AND TO THE PLANETS, AND TO ALL THE HOST OF HEAVEN.AD# 6 AND HE BROUGHT OUT THE GROVE FROM THE HOUSE OF THE LORD, WITHOUTI JERUSALEM, UNTO THE BROOK KIDRON, AND BURNED IT AT THE BROOK KIDRON, AND K STAMPED IT SMALL TO POWDER, AND CAST THE POWDER THEREOF UPON THE GRAVES OFH THE CHILDREN OF THE PEOPLE.L# 7 AND HE BRAKE DOWN THE HOUSES OF THE SODOMITES, THAT WERE BY THE HOUSE OF7 THE LORD, WHERE THE WOMEN WOVE HANGINGS FOR THE GROVE.TJ# 8 AND HE BROUGHT ALL THE PRIESTS OUT OF THE CITIES OF JUDAH, AND DEFILEDN THE HIGH PLACES WHERE THE PRIESTS HAD BURNED INCENSE, FROM GEBA TO BEERSHEBA,L AND BRAKE DOWN THE HIGH PLACES OF THE GATES THAT WERE IN THE ENTERING IN OFL THE GATE OF JOSHUA THE GOVERNOR OF THE CITY, WHICH WERE ON A MANS LEFT HAND AT THE GATE OF THE CITY.VK# 9 NEVERTHELESS THE PRIESTS OF THE HIGH PLACES CAME NOT UP TO THE ALTAR OF L THE LORD IN JERUSALEM, BUT THEY DID EAT OF THE UNLEAVENED BREAD AMONG THEIR BRETHREN.F# 10 AND HE DEFILED TOPHETH, WHICH IS IN THE VALLEY OF THE CHILDREN OFK HINNOM, THAT NO MAN MIGHT MAKE HIS SON OR HIS DAUGHTER TO PASS THROUGH THE  FIRE TO MOLECH.I# 11 AND HE TOOK AWAY THE HORSES THAT THE KINGS OF JUDAH HAD GIVEN TO THEED SUN, AT THE ENTERING IN OF THE HOUSE OF THE LORD, BY THE CHAMBER OFG NATHANMELECH THE CHAMBERLAIN, WHICH WAS IN THE SUBURBS, AND BURNED THEP CHARIOTS OF THE SUN WITH FIRE. L# 12 AND THE ALTARS THAT WERE ON THE TOP OF THE UPPER CHAMBER OF AHAZ, WHICHK THE KINGS OF JUDAH HAD MADE, AND THE ALTARS WHICH MANASSEH HAD MADE IN THEDL TWO COURTS OF THE HOUSE OF THE LORD, DID THE KING BEAT DOWN, AND BRAKE THEMC DOWN FROM THENCE, AND CAST THE DUST OF THEM INTO THE BROOK KIDRON.IL# 13 AND THE HIGH PLACES THAT WERE BEFORE JERUSALEM, WHICH WERE ON THE RIGHTN HAND OF THE MOUNT OF CORRUPTION, WHICH SOLOMON THE KING OF ISRAEL HAD BUILDEDD FOR ASHTORETH THE ABOMINATION OF THE ZIDONIANS, AND FOR CHEMOSH THEL ABOMINATION OF THE MOABITES, AND FOR MILCOM THE ABOMINATION OF THE CHILDREN OF AMMON, DID THE KING DEFILE.MK# 14 AND HE BRAKE IN PIECES THE IMAGES, AND CUT DOWN THE GROVES, AND FILLEDB$ THEIR PLACES WITH THE BONES OF MEN.M# 15 MOREOVER THE ALTAR THAT WAS AT BETHEL, AND THE HIGH PLACE WHICH JEROBOAMCL THE SON OF NEBAT, WHO MADE ISRAEL TO SIN, HAD MADE, BOTH THAT ALTAR AND THEM HIGH PLACE HE BRAKE DOWN, AND BURNED THE HIGH PLACE, AND STAMPED IT SMALL TOO POWDER, AND BURNED THE GROVE.M# 16 AND AS JOSIAH TURNED HIMSELF, HE SPIED THE SEPULCHRES THAT WERE THERE IN J THE MOUNT, AND SENT, AND TOOK THE BONES OUT OF THE SEPULCHRES, AND BURNEDN THEM UPON THE ALTAR, AND POLLUTED IT, ACCORDING TO THE WORD O00j02E1D%5%T6%! !F THE LORD WHICH7 THE MAN OF GOD PROCLAIMED, WHO PROCLAIMED THESE WORDS.HI# 17 THEN HE SAID, WHAT TITLE IS THAT THAT I SEE? AND THE MEN OF THE CITYDL TOLD HIM, IT IS THE SEPULCHRE OF THE MAN OF GOD, WHICH CAME FROM JUDAH, ANDI PROCLAIMED THESE THINGS THAT THOU HAST DONE AGAINST THE ALTAR OF BETHEL.AK# 18 AND HE SAID, LET HIM ALONE; LET NO MAN MOVE HIS BONES. SO THEY LET HISUE BONES ALONE, WITH THE BONES OF THE PROPHET THAT CAME OUT OF SAMARIA.EJ# 19 AND ALL THE HOUSES ALSO OF THE HIGH PLACES THAT WERE IN THE CITIES OFJ SAMARIA, WHICH THE KINGS OF ISRAEL HAD MADE TO PROVOKE THE LORD TO ANGER,M JOSIAH TOOK AWAY, AND DID TO THEM ACCORDING TO ALL THE ACTS THAT HE HAD DONES IN BETHEL.HL# 20 AND HE SLEW ALL THE PRIESTS OF THE HIGH PLACES THAT WERE THERE UPON THED ALTARS, AND BURNED MENS BONES UPON THEM, AND RETURNED TO JERUSALEM.J# 21 AND THE KING COMMANDED ALL THE PEOPLE, SAYING, KEEP THE PASSOVER UNTOB THE LORD YOUR GOD, AS IT IS WRITTEN IN THE BOOK OF THIS COVENANT.L# 22 SURELY THERE WAS NOT HOLDEN SUCH A PASSOVER FROM THE DAYS OF THE JUDGESK THAT JUDGED ISRAEL, NOR IN ALL THE DAYS OF THE KINGS OF ISRAEL, NOR OF THET KINGS OF JUDAH;I# 23 BUT IN THE EIGHTEENTH YEAR OF KING JOSIAH, WHEREIN THIS PASSOVER WASI! HOLDEN TO THE LORD IN JERUSALEM.HI# 24 MOREOVER THE WORKERS WITH FAMILIAR SPIRITS, AND THE WIZARDS, AND THEUL IMAGES, AND THE IDOLS, AND ALL THE ABOMINATIONS THAT WERE SPIED IN THE LANDJ OF JUDAH AND IN JERUSALEM, DID JOSIAH PUT AWAY, THAT HE MIGHT PERFORM THEN WORDS OF THE LAW WHICH WERE WRITTEN IN THE BOOK THAT HILKIAH THE PRIEST FOUND IN THE HOUSE OF THE LORD.L# 25 AND LIKE UNTO HIM WAS THERE NO KING BEFORE HIM, THAT TURNED TO THE LORDM WITH ALL HIS HEART, AND WITH ALL HIS SOUL, AND WITH ALL HIS MIGHT, ACCORDINGRE TO ALL THE LAW OF MOSES; NEITHER AFTER HIM AROSE THERE ANY LIKE HIM.TI# 26 NOTWITHSTANDING THE LORD TURNED NOT FROM THE FIERCENESS OF HIS GREAT I WRATH, WHEREWITH HIS ANGER WAS KINDLED AGAINST JUDAH, BECAUSE OF ALL THEA4 PROVOCATIONS THAT MANASSEH HAD PROVOKED HIM WITHAL.K# 27 AND THE LORD SAID, I WILL REMOVE JUDAH ALSO OUT OF MY SIGHT, AS I HAVEK REMOVED ISRAEL, AND WILL CAST OFF THIS CITY JERUSALEM WHICH I HAVE CHOSEN,7 AND THE HOUSE OF WHICH I SAID, MY NAME SHALL BE THERE.HJ# 28 NOW THE REST OF THE ACTS OF JOSIAH, AND ALL THAT HE DID, ARE THEY NOT= WRITTEN IN THE BOOK OF THE CHRONICLES OF THE KINGS OF JUDAH? H# 29 IN HIS DAYS PHARAOHNECHOH KING OF EGYPT WENT UP AGAINST THE KING OFN ASSYRIA TO THE RIVER EUPHRATES: AND KING JOSIAH WENT AGAINST HIM; AND HE SLEW& HIM AT MEGIDDO, WHEN HE HAD SEEN HIM.M# 30 AND HIS SERVANTS CARRIED HIM IN A CHARIOT DEAD FROM MEGIDDO, AND BROUGHTTM HIM TO JERUSALEM, AND BURIED HIM IN HIS OWN SEPULCHRE. AND THE PEOPLE OF THEMM LAND TOOK JEHOAHAZ THE SON OF JOSIAH, AND ANOINTED HIM, AND MADE HIM KING IND HIS FATHERS STEAD.TK# 31 JEHOAHAZ WAS TWENTY AND THREE YEARS OLD WHEN HE BEGAN TO REIGN; AND HEAI REIGNED THREE MONTHS IN JERUSALEM. AND HIS MOTHERS NAME WAS HAMUTAL, THE DAUGHTER OF JEREMIAH OF LIBNAH.J# 32 AND HE DID THAT WHICH WAS EVIL IN THE SIGHT OF THE LORD, ACCORDING TO ALL THAT HIS FATHERS HAD DONE.TM# 33 AND PHARAOHNECHOH PUT HIM IN BANDS AT RIBLAH IN THE LAND OF HAMATH, THATSM HE MIGHT NOT REIGN IN JERUSALEM; AND PUT THE LAND TO A TRIBUTE OF AN HUNDREDO) TALENTS OF SILVER, AND A TALENT OF GOLD.EI# 34 AND PHARAOHNECHOH MADE ELIAKIM THE SON OF JOSIAH KING IN THE ROOM OFEM JOSIAH HIS FATHER, AND TURNED HIS NAME TO JEHOIAKIM, AND TOOK JEHOAHAZ AWAY:T& AND HE CAME TO EGYPT, AND DIED THERE.L# 35 AND JEHOIAKIM GAVE THE SILVER AND THE GOLD TO PHARAOH; BUT HE TAXED THEK LAND TO GIVE THE MONEY ACCORDING TO THE COMMANDMENT OF PHARAOH: HE EXACTEDTM THE SILVER AND THE GOLD OF THE PEOPLE OF THE LAND, OF EVERY ONE ACCORDING TO - HIS TAXATION, TO GIVE IT UNTO PHARAOHNECHOH.OK# 36 JEHOIAKIM WAS TWENTY AND FIVE YEARS OLD WHEN HE BEGAN TO REIGN; AND HE I REIGNED ELEVEN YEARS IN JERUSALEM. AND HIS MOTHERS NAME WAS ZEBUDAH, THEJ DAUGHTER OF PEDAIAH OF RUMAH.J# 37 AND HE DID THAT WHICH WAS EVIL IN THE SIGHT OF THE LORD, AC00j82N1<%X>%+%O-%TADATADATACORDING TO ALL THAT HIS FATHERS HAD DONE.E = CHAPTER 24 NL# 1 IN HIS DAYS NEBUCHADNEZZAR KING OF BABYLON CAME UP, AND JEHOIAKIM BECAMEB HIS SERVANT THREE YEARS: THEN HE TURNED AND REBELLED AGAINST HIM.I# 2 AND THE LORD SENT AGAINST HIM BANDS OF THE CHALDEES, AND BANDS OF THETL SYRIANS, AND BANDS OF THE MOABITES, AND BANDS OF THE CHILDREN OF AMMON, ANDJ SENT THEM AGAINST JUDAH TO DESTROY IT, ACCORDING TO THE WORD OF THE LORD,- WHICH HE SPAKE BY HIS SERVANTS THE PROPHETS. I# 3 SURELY AT THE COMMANDMENT OF THE LORD CAME THIS UPON JUDAH, TO REMOVE J THEM OUT OF HIS SIGHT, FOR THE SINS OF MANASSEH, ACCORDING TO ALL THAT HE DID; I# 4 AND ALSO FOR THE INNOCENT BLOOD THAT HE SHED: FOR HE FILLED JERUSALEM6 WITH INNOCENT BLOOD; WHICH THE LORD WOULD NOT PARDON.L# 5 NOW THE REST OF THE ACTS OF JEHOIAKIM, AND ALL THAT HE DID, ARE THEY NOT= WRITTEN IN THE BOOK OF THE CHRONICLES OF THE KINGS OF JUDAH?OJ# 6 SO JEHOIAKIM SLEPT WITH HIS FATHERS: AND JEHOIACHIN HIS SON REIGNED IN HIS STEAD.YJ# 7 AND THE KING OF EGYPT CAME NOT AGAIN ANY MORE OUT OF HIS LAND: FOR THEK KING OF BABYLON HAD TAKEN FROM THE RIVER OF EGYPT UNTO THE RIVER EUPHRATES ) ALL THAT PERTAINED TO THE KING OF EGYPT.DL# 8 JEHOIACHIN WAS EIGHTEEN YEARS OLD WHEN HE BEGAN TO REIGN, AND HE REIGNEDN IN JERUSALEM THREE MONTHS. AND HIS MOTHERS NAME WAS NEHUSHTA, THE DAUGHTER OF ELNATHAN OF JERUSALEM.OM# 9 AND HE DID THAT WHICH WAS EVIL IN THE SIGHT OF THE LORD, ACCORDING TO ALLR THAT HIS FATHER HAD DONE.H# 10 AT THAT TIME THE SERVANTS OF NEBUCHADNEZZAR KING OF BABYLON CAME UP. AGAINST JERUSALEM, AND THE CITY WAS BESIEGED.F# 11 AND NEBUCHADNEZZAR KING OF BABYLON CAME AGAINST THE CITY, AND HIS SERVANTS DID BESIEGE IT.J# 12 AND JEHOIACHIN THE KING OF JUDAH WENT OUT TO THE KING OF BABYLON, HE,M AND HIS MOTHER, AND HIS SERVANTS, AND HIS PRINCES, AND HIS OFFICERS: AND THEF: KING OF BABYLON TOOK HIM IN THE EIGHTH YEAR OF HIS REIGN.J# 13 AND HE CARRIED OUT THENCE ALL THE TREASURES OF THE HOUSE OF THE LORD,K AND THE TREASURES OF THE KINGS HOUSE, AND CUT IN PIECES ALL THE VESSELS OFAM GOLD WHICH SOLOMON KING OF ISRAEL HAD MADE IN THE TEMPLE OF THE LORD, AS THEY LORD HAD SAID.TH# 14 AND HE CARRIED AWAY ALL JERUSALEM, AND ALL THE PRINCES, AND ALL THEL MIGHTY MEN OF VALOUR, EVEN TEN THOUSAND CAPTIVES, AND ALL THE CRAFTSMEN ANDH SMITHS: NONE REMAINED, SAVE THE POOREST SORT OF THE PEOPLE OF THE LAND.M# 15 AND HE CARRIED AWAY JEHOIACHIN TO BABYLON, AND THE KINGS MOTHER, AND THESL KINGS WIVES, AND HIS OFFICERS, AND THE MIGHTY OF THE LAND, THOSE CARRIED HE* INTO CAPTIVITY FROM JERUSALEM TO BABYLON.L# 16 AND ALL THE MEN OF MIGHT, EVEN SEVEN THOUSAND, AND CRAFTSMEN AND SMITHSH A THOUSAND, ALL THAT WERE STRONG AND APT FOR WAR, EVEN THEM THE KING OF$ BABYLON BROUGHT CAPTIVE TO BABYLON.K# 17 AND THE KING OF BABYLON MADE MATTANIAH HIS FATHERS BROTHER KING IN HIST) STEAD, AND CHANGED HIS NAME TO ZEDEKIAH.I# 18 ZEDEKIAH WAS TWENTY AND ONE YEARS OLD WHEN HE BEGAN TO REIGN, AND HEHI REIGNED ELEVEN YEARS IN JERUSALEM. AND HIS MOTHERS NAME WAS HAMUTAL, THEE DAUGHTER OF JEREMIAH OF LIBNAH.J# 19 AND HE DID THAT WHICH WAS EVIL IN THE SIGHT OF THE LORD, ACCORDING TO ALL THAT JEHOIAKIM HAD DONE.AG# 20 FOR THROUGH THE ANGER OF THE LORD IT CAME TO PASS IN JERUSALEM ANDGL JUDAH, UNTIL HE HAD CAST THEM OUT FROM HIS PRESENCE, THAT ZEDEKIAH REBELLED AGAINST THE KING OF BABYLON. = CHAPTER 25 N# 1 AND IT CAME TO PASS IN THE NINTH YEAR OF HIS REIGN, IN THE TENTH MONTH, INN THE TENTH DAY OF THE MONTH, THAT NEBUCHADNEZZAR KING OF BABYLON CAME, HE, ANDN ALL HIS HOST, AGAINST JERUSALEM, AND PITCHED AGAINST IT; AND THEY BUILT FORTS AGAINST IT ROUND ABOUT.F# 2 AND THE CITY WAS BESIEGED UNTO THE ELEVENTH YEAR OF KING ZEDEKIAH.H# 3 AND ON THE NINTH DAY OF THE FOURTH MONTH THE FAMINE PREVAILED IN THE9 CITY, AND THERE WAS NO BREAD FOR THE PEOPLE OF THE LAND.NK# 4 AND THE CITY WAS BROKEN UP, AND ALL THE MEN OF WAR FLED BY NIGHT BY THEHJ WAY OF THE GATE BETWEEN TWO WALLS, WHICH IS BY THE KINGS GARDEN: (NOW THEN CHALDEES WERE AGAINST THE CITY ROUND ABOUT:) 00j@2E1D%5%T6%! !AND THE KING WENT THE WAY TOWARD THE PLAIN. L# 5 AND THE ARMY OF THE CHALDEES PURSUED AFTER THE KING, AND OVERTOOK HIM INA THE PLAINS OF JERICHO: AND ALL HIS ARMY WERE SCATTERED FROM HIM.EG# 6 SO THEY TOOK THE KING, AND BROUGHT HIM UP TO THE KING OF BABYLON TOE) RIBLAH; AND THEY GAVE JUDGMENT UPON HIM.NL# 7 AND THEY SLEW THE SONS OF ZEDEKIAH BEFORE HIS EYES, AND PUT OUT THE EYESN OF ZEDEKIAH, AND BOUND HIM WITH FETTERS OF BRASS, AND CARRIED HIM TO BABYLON.I# 8 AND IN THE FIFTH MONTH, ON THE SEVENTH DAY OF THE MONTH, WHICH IS THEDJ NINETEENTH YEAR OF KING NEBUCHADNEZZAR KING OF BABYLON, CAME NEBUZARADAN,H CAPTAIN OF THE GUARD, A SERVANT OF THE KING OF BABYLON, UNTO JERUSALEM:H# 9 AND HE BURNT THE HOUSE OF THE LORD, AND THE KINGS HOUSE, AND ALL THED HOUSES OF JERUSALEM, AND EVERY GREAT MANS HOUSE BURNT HE WITH FIRE.H# 10 AND ALL THE ARMY OF THE CHALDEES, THAT WERE WITH THE CAPTAIN OF THE6 GUARD, BRAKE DOWN THE WALLS OF JERUSALEM ROUND ABOUT.M# 11 NOW THE REST OF THE PEOPLE THAT WERE LEFT IN THE CITY, AND THE FUGITIVESHN THAT FELL AWAY TO THE KING OF BABYLON, WITH THE REMNANT OF THE MULTITUDE, DID1 NEBUZARADAN THE CAPTAIN OF THE GUARD CARRY AWAY.OM# 12 BUT THE CAPTAIN OF THE GUARD LEFT OF THE DOOR OF THE POOR OF THE LAND TOG BE VINEDRESSERS AND HUSBANDMEN.I# 13 AND THE PILLARS OF BRASS THAT WERE IN THE HOUSE OF THE LORD, AND THEAN BASES, AND THE BRASEN SEA THAT WAS IN THE HOUSE OF THE LORD, DID THE CHALDEES; BREAK IN PIECES, AND CARRIED THE BRASS OF THEM TO BABYLON.LM# 14 AND THE POTS, AND THE SHOVELS, AND THE SNUFFERS, AND THE SPOONS, AND ALLF@ THE VESSELS OF BRASS WHEREWITH THEY MINISTERED, TOOK THEY AWAY.I# 15 AND THE FIREPANS, AND THE BOWLS, AND SUCH THINGS AS WERE OF GOLD, INOD GOLD, AND OF SILVER, IN SILVER, THE CAPTAIN OF THE GUARD TOOK AWAY.K# 16 THE TWO PILLARS, ONE SEA, AND THE BASES WHICH SOLOMON HAD MADE FOR THEAF HOUSE OF THE LORD; THE BRASS OF ALL THESE VESSELS WAS WITHOUT WEIGHT.L# 17 THE HEIGHT OF THE ONE PILLAR WAS EIGHTEEN CUBITS, AND THE CHAPITER UPONL IT WAS BRASS: AND THE HEIGHT OF THE CHAPITER THREE CUBITS; AND THE WREATHENM WORK, AND POMEGRANATES UPON THE CHAPITER ROUND ABOUT, ALL OF BRASS: AND LIKEP5 UNTO THESE HAD THE SECOND PILLAR WITH WREATHEN WORK.OD# 18 AND THE CAPTAIN OF THE GUARD TOOK SERAIAH THE CHIEF PRIEST, AND@ ZEPHANIAH THE SECOND PRIEST, AND THE THREE KEEPERS OF THE DOOR:M# 19 AND OUT OF THE CITY HE TOOK AN OFFICER THAT WAS SET OVER THE MEN OF WAR,IN AND FIVE MEN OF THEM THAT WERE IN THE KINGS PRESENCE, WHICH WERE FOUND IN THEM CITY, AND THE PRINCIPAL SCRIBE OF THE HOST, WHICH MUSTERED THE PEOPLE OF THENJ LAND, AND THREESCORE MEN OF THE PEOPLE OF THE LAND THAT WERE FOUND IN THE CITY:M# 20 AND NEBUZARADAN CAPTAIN OF THE GUARD TOOK THESE, AND BROUGHT THEM TO THEH KING OF BABYLON TO RIBLAH:FL# 21 AND THE KING OF BABYLON SMOTE THEM, AND SLEW THEM AT RIBLAH IN THE LAND8 OF HAMATH. SO JUDAH WAS CARRIED AWAY OUT OF THEIR LAND.C# 22 AND AS FOR THE PEOPLE THAT REMAINED IN THE LAND OF JUDAH, WHOMPM NEBUCHADNEZZAR KING OF BABYLON HAD LEFT, EVEN OVER THEM HE MADE GEDALIAH THEW* SON OF AHIKAM, THE SON OF SHAPHAN, RULER.L# 23 AND WHEN ALL THE CAPTAINS OF THE ARMIES, THEY AND THEIR MEN, HEARD THATJ THE KING OF BABYLON HAD MADE GEDALIAH GOVERNOR, THERE CAME TO GEDALIAH TON MIZPAH, EVEN ISHMAEL THE SON OF NETHANIAH, AND JOHANAN THE SON OF CAREAH, ANDJ SERAIAH THE SON OF TANHUMETH THE NETOPHATHITE, AND JAAZANIAH THE SON OF A! MAACHATHITE, THEY AND THEIR MEN.EK# 24 AND GEDALIAH SWARE TO THEM, AND TO THEIR MEN, AND SAID UNTO THEM, FEARAN NOT TO BE THE SERVANTS OF THE CHALDEES: DWELL IN THE LAND, AND SERVE THE KING+ OF BABYLON; AND IT SHALL BE WELL WITH YOU.HF# 25 BUT IT CAME TO PASS IN THE SEVENTH MONTH, THAT ISHMAEL THE SON OFJ NETHANIAH, THE SON OF ELISHAMA, OF THE SEED ROYAL, CAME, AND TEN MEN WITHJ HIM, AND SMOTE GEDALIAH, THAT HE DIED, AND THE JEWS AND THE CHALDEES THAT WERE WITH HIM AT MIZPAH.AF# 26 AND ALL THE PEOPLE, BOTH SMALL AND GREAT, AND THE CAPTAINS OF THEH ARMIES, AROSE, AND CAME TO EGYPT: FOR THEY WERE AFRAID OF THE CHALDEES.L00jH2kJ2<%X>%+%O-%TADATADATA# 27 AND IT CAME TO PASS IN THE SEVEN AND THIRTIETH YEAR OF THE CAPTIVITY OFK JEHOIACHIN KING OF JUDAH, IN THE TWELFTH MONTH, ON THE SEVEN AND TWENTIETH N DAY OF THE MONTH, THAT EVILMERODACH KING OF BABYLON IN THE YEAR THAT HE BEGANI TO REIGN DID LIFT UP THE HEAD OF JEHOIACHIN KING OF JUDAH OUT OF PRISON; K# 28 AND HE SPAKE KINDLY TO HIM, AND SET HIS THRONE ABOVE THE THRONE OF THEL% KINGS THAT WERE WITH HIM IN BABYLON;NM# 29 AND CHANGED HIS PRISON GARMENTS: AND HE DID EAT BREAD CONTINUALLY BEFOREE HIM ALL THE DAYS OF HIS LIFE.I# 30 AND HIS ALLOWANCE WAS A CONTINUAL ALLOWANCE GIVEN HIM OF THE KING, A,4 DAILY RATE FOR EVERY DAY, ALL THE DAYS OF HIS LIFE.AY OF THE MONTH, THAT EVILMERODACH KING OF BABYLON IN THE YEAR THAT HE BEGANI TO REIGN DID LIFT UP THE HEAD OF JEHOIACHIN KING OF JUDAH OUT OF PRISON; K# 28 AND HE SPAKE KINDLY TO HIM, AND SET HIS THRONE ABOVE THE THRONE OF THEL% KINGS THAT WERE WITH HIM IN BABYLON;NM# 29 AND CHANGED HIS PRISON GARMENTS: AND HE DID EAT BREAD CONTINUALLY BEFOREE H* BOOK13 1CHRONICLES = CHAPTER 1 # 1 ADAM, SHETH, ENOSH,N# 2 KENAN, MAHALALEEL, JERED,H# 3 HENOCH, METHUSELAH, LAMECH, !# 4 NOAH, SHEM, HAM, AND JAPHETH. K# 5 THE SONS OF JAPHETH; GOMER, AND MAGOG, AND MADAI, AND JAVAN, AND TUBAL,E AND MESHECH, AND TIRAS.@# 6 AND THE SONS OF GOMER; ASHCHENAZ, AND RIPHATH, AND TOGARMAH.F# 7 AND THE SONS OF JAVAN; ELISHAH, AND TARSHISH, KITTIM, AND DODANIM.8# 8 THE SONS OF HAM; CUSH, AND MIZRAIM, PUT, AND CANAAN.G# 9 AND THE SONS OF CUSH; SEBA, AND HAVILAH, AND SABTA, AND RAAMAH, AND 4 SABTECHA. AND THE SONS OF RAAMAH; SHEBA, AND DEDAN.A# 10 AND CUSH BEGAT NIMROD: HE BEGAN TO BE MIGHTY UPON THE EARTH.AE# 11 AND MIZRAIM BEGAT LUDIM, AND ANAMIM, AND LEHABIM, AND NAPHTUHIM, E# 12 AND PATHRUSIM, AND CASLUHIM, (OF WHOM CAME THE PHILISTINES,) ANDO CAPHTHORIM.4# 13 AND CANAAN BEGAT ZIDON HIS FIRSTBORN, AND HETH,<# 14 THE JEBUSITE ALSO, AND THE AMORITE, AND THE GIRGASHITE,4# 15 AND THE HIVITE, AND THE ARKITE, AND THE SINITE,;# 16 AND THE ARVADITE, AND THE ZEMARITE, AND THE HAMATHITE. M# 17 THE SONS OF SHEM; ELAM, AND ASSHUR, AND ARPHAXAD, AND LUD, AND ARAM, ANDR& UZ, AND HUL, AND GETHER, AND MESHECH.6# 18 AND ARPHAXAD BEGAT SHELAH, AND SHELAH BEGAT EBER.M# 19 AND UNTO EBER WERE BORN TWO SONS: THE NAME OF THE ONE WAS PELEG; BECAUSEIE IN HIS DAYS THE EARTH WAS DIVIDED: AND HIS BROTHERS NAME WAS JOKTAN.DG# 20 AND JOKTAN BEGAT ALMODAD, AND SHELEPH, AND HAZARMAVETH, AND JERAH,5(# 21 HADORAM ALSO, AND UZAL, AND DIKLAH,&# 22 AND EBAL, AND ABIMAEL, AND SHEBA,J# 23 AND OPHIR, AND HAVILAH, AND JOBAB. ALL THESE WERE THE SONS OF JOKTAN.# 24 SHEM, ARPHAXAD, SHELAH,# 25 EBER, PELEG, REU,# 26 SERUG, NAHOR, TERAH,D # 27 ABRAM; THE SAME IS ABRAHAM.-# 28 THE SONS OF ABRAHAM; ISAAC, AND ISHMAEL.SJ# 29 THESE ARE THEIR GENERATIONS: THE FIRSTBORN OF ISHMAEL, NEBAIOTH; THEN KEDAR, AND ADBEEL, AND MIBSAM,O/# 30 MISHMA, AND DUMAH, MASSA, HADAD, AND TEMA,H@# 31 JETUR, NAPHISH, AND KEDEMAH. THESE ARE THE SONS OF ISHMAEL.F# 32 NOW THE SONS OF KETURAH, ABRAHAMS CONCUBINE: SHE BARE ZIMRAN, ANDG JOKSHAN, AND MEDAN, AND MIDIAN, AND ISHBAK, AND SHUAH. AND THE SONS OFS JOKSHAN; SHEBA, AND DEDAN.,I# 33 AND THE SONS OF MIDIAN; EPHAH, AND EPHER, AND HENOCH, AND ABIDA, ANDN+ ELDAAH. ALL THESE ARE THE SONS OF KETURAH.EA# 34 AND ABRAHAM BEGAT ISAAC. THE SONS OF ISAAC; ESAU AND ISRAEL.KH# 35 THE SONS OF ESAU; ELIPHAZ, REUEL, AND JEUSH, AND JAALAM, AND KORAH.G# 36 THE SONS OF ELIPHAZ; TEMAN, AND OMAR, ZEPHI, AND GATAM, KENAZ, AND TIMNA, AND AMALEK.K;# 37 THE SONS OF REUEL; NAHATH, ZERAH, SHAMMAH, AND MIZZAH.NG# 38 AND THE SONS OF SEIR; LOTAN, AND SHOBAL, AND ZIBEON, AND ANAH, ANDH DISHON, AND EZAR, AND DISHAN.I# 39 AND THE SONS OF LOTAN; HORI, AND HOMAM: AND TIMNA WAS LOTANS SISTER.TM# 40 THE SONS OF SHOBAL; ALIAN, AND MANAHATH, AND EBAL, SHEPHI, AND ONAM. AND;$ THE SONS OF ZIBEON; AIAH, AND ANAH.M# 41 THE SONS OF ANAH; DISHON. AND THE SONS OF DISHON; AMRAM, AND ESHBAN, ANDZ ITHRAN, AND CHERAN.L# 42 THE SONS OF EZER; BILHAN, AND ZAVAN, AND JAKAN. THE SONS OF DISHA00kP2E1D%5%T6%! !N; UZ, AND ARAN.M# 43 NOW THESE ARE THE KINGS THAT REIGNED IN THE LAND OF EDOM BEFORE ANY KING K REIGNED OVER THE CHILDREN OF ISRAEL; BELA THE SON OF BEOR: AND THE NAME OFO HIS CITY WAS DINHABAH.WL# 44 AND WHEN BELA WAS DEAD, JOBAB THE SON OF ZERAH OF BOZRAH REIGNED IN HIS STEAD. L# 45 AND WHEN JOBAB WAS DEAD, HUSHAM OF THE LAND OF THE TEMANITES REIGNED IN HIS STEAD.NL# 46 AND WHEN HUSHAM WAS DEAD, HADAD THE SON OF BEDAD, WHICH SMOTE MIDIAN INM THE FIELD OF MOAB, REIGNED IN HIS STEAD: AND THE NAME OF HIS CITY WAS AVITH.WF# 47 AND WHEN HADAD WAS DEAD, SAMLAH OF MASREKAH REIGNED IN HIS STEAD.L# 48 AND WHEN SAMLAH WAS DEAD, SHAUL OF REHOBOTH BY THE RIVER REIGNED IN HIS STEAD. H# 49 AND WHEN SHAUL WAS DEAD, BAALHANAN THE SON OF ACHBOR REIGNED IN HIS STEAD.EM# 50 AND WHEN BAALHANAN WAS DEAD, HADAD REIGNED IN HIS STEAD: AND THE NAME OFAL HIS CITY WAS PAI; AND HIS WIFES NAME WAS MEHETABEL, THE DAUGHTER OF MATRED, THE DAUGHTER OF MEZAHAB. J# 51 HADAD DIED ALSO. AND THE DUKES OF EDOM WERE; DUKE TIMNAH, DUKE ALIAH, DUKE JETHETH,,# 52 DUKE AHOLIBAMAH, DUKE ELAH, DUKE PINON,)# 53 DUKE KENAZ, DUKE TEMAN, DUKE MIBZAR,D:# 54 DUKE MAGDIEL, DUKE IRAM. THESE ARE THE DUKES OF EDOM. = CHAPTER 2 L# 1 THESE ARE THE SONS OF ISRAEL; REUBEN, SIMEON, LEVI, AND JUDAH, ISSACHAR, AND ZEBULUN,A8# 2 DAN, JOSEPH, AND BENJAMIN, NAPHTALI, GAD, AND ASHER.K# 3 THE SONS OF JUDAH; ER, AND ONAN, AND SHELAH: WHICH THREE WERE BORN UNTOM HIM OF THE DAUGHTER OF SHUA THE CANAANITESS. AND ER, THE FIRSTBORN OF JUDAH,U4 WAS EVIL IN THE SIGHT OF THE LORD; AND HE SLEW HIM.L# 4 AND TAMAR HIS DAUGHTER IN LAW BORE HIM PHAREZ AND ZERAH. ALL THE SONS OF JUDAH WERE FIVE.K*# 5 THE SONS OF PHAREZ; HEZRON, AND HAMUL.M# 6 AND THE SONS OF ZERAH; ZIMRI, AND ETHAN, AND HEMAN, AND CALCOL, AND DARA:C FIVE OF THEM IN ALL. M# 7 AND THE SONS OF CARMI; ACHAR, THE TROUBLER OF ISRAEL, WHO TRANSGRESSED INE THE THING ACCURSED.## 8 AND THE SONS OF ETHAN; AZARIAH.OM# 9 THE SONS ALSO OF HEZRON, THAT WERE BORN UNTO HIM; JERAHMEEL, AND RAM, ANDE CHELUBAI.H# 10 AND RAM BEGAT AMMINADAB; AND AMMINADAB BEGAT NAHSHON, PRINCE OF THE CHILDREN OF JUDAH;.3# 11 AND NAHSHON BEGAT SALMA, AND SALMA BEGAT BOAZ, /# 12 AND BOAZ BEGAT OBED, AND OBED BEGAT JESSE,EM# 13 AND JESSE BEGAT HIS FIRSTBORN ELIAB, AND ABINADAB THE SECOND, AND SHIMMA THE THIRD, +# 14 NETHANEEL THE FOURTH, RYDAI THE FIFTH, '# 15 OZEM THE SIXTH, DAVID THE SEVENTH:.F# 16 WHOSE SISTERS WERE ZERUIAH, AND ABIGAIL. AND THE SONS OF ZERUIAH;& ABISHAI, AND JOAB, AND ASAHEL, THREE.C# 17 AND ABIGAIL BARE AMASA: AND THE FATHER OF AMASA WAS JETHER THE ISHMEELITE.J# 18 AND CALEB THE SON OF HEZRON BEGAT CHILDREN OF AZUBAH HIS WIFE, AND OF< JERIOTI: HER SONS ARE THESE; JESHER, AND SHOBAB, AND ARDON.J# 19 AND WHEN AXUBAH WAS DEAD, CALEB TOOK UNTO HIM EPHRATH, WHICH BARE HIM HUR.T/# 20 AND HUR BEGAT URI, AND URI BEGAT BEZALEEL.HI# 21 AND AFTERWARD HEZRON WENT IN TO THE DAUGHTER OF MACHIR THE FATHER OFAK GILEAD, WHOM HE MARRIED WHEN HE WAS THREESCORE YEARS OLD; AND SHE BARE HIME SEGUB.AI# 22 AND SEGUB BEGAT JAIR, WHO HAD THREE AND TWENTY CITIES IN THE LAND OF. GILEAD.J# 23 AND HE TOOK GESHUR, AND ARAM, WITH THE TOWNS OF JAIR, FROM THEM, WITHM KENATH, AND THE TOWNS THEREOF, EVEN THREESCORE CITIES. ALL THESE BELONGED TOD) THE SONS OF MACHIR THE FATHER OF GILEAD.EM# 24 AND AFTER THAT HEZRON WAS DEAD IN CALEBEPHRATAH, THEN ABIAH HEZRONS WIFEA$ BARE HIM ASHUR THE FATHER OF TEKOA.D# 25 AND THE SONS OF JERAHMEEL THE FIRSTBORN OF HEZRON WERE, RAM THE6 FIRSTBORN, AND BUNAH, AND OREN, AND OZEM, AND AHIJAH.H# 26 JERAHMEEL HAD ALSO ANOTHER WIFE, WHOSE NAME WAS ATARAH; SHE WAS THE MOTHER OF ONAM.J# 27 AND THE SONS OF RAM THE FIRSTBORN OF JERAHMEEL WERE, MAAZ, AND JAMIN, AND EKER.K# 28 AND THE SONS OF ONAM WERE, SHAMMAI, AND JADA. AND THE SONS OF SHAMMAI;O NADAB AND ABISHUR.AM# 29 AND THE NAME OF THE WIFE OF ABISHUR WAS ABIHAIL, AND SHE BARE HIM AHBAN, AND MOLID.HE# 30 AND THE SONS OF NADAB; SELED, AND APPAIM: BUT SELED DIED WITHOUTR CHILDREN.I# 31 AND THE SONS OF APP00kX2J2<%X>%+%O-%TADATADATAAIM; ISHI. AND THE SONS OF ISHI; SHESHAN. AND THEA CHILDREN OF SHESHAS; AHLAI.K# 32 AND THE SONS OF JADA THE BROTHER OF SHAMMAI; JETHER, AND JONATHAN: ANDO JETHER DIED WITHOUT CHILDREN.G# 33 AND THE SONS OF JONATHAN; PELETH, AND ZAZA. THESE WERE THE SONS OFD JERAHMEEL.SJ# 34 NOW SHESHAN HAD NO SONS, BUT DAUGHTERS. AND SHESHAN HAD A SERSANT, AN EGYPTIAN, WHOSE NAME WAS JARHA.M# 35 AND SHESHAN GAVE HIS DAUGHTER TO JARHA HIS SERVANT TO WIFE; AND SHE BAREI HIM ATTAI.D4# 36 AND ATTAI BEGAT NATHAN, AND NATHAN BEGAT ZABAD,3# 37 AND ZABAD BEGAT EPHLAL, AND EPHLAL BEGAT OBED,A1# 38 AND OBED BEGAT JEHU, AND JEHU BEGAT AZARIAH,I6# 39 AND AZARIAH BEGAT HELEZ, AND HELEZ BEGAT ELEASAH,:# 40 AND ELEASAH BEGAT SISAMAI, AND SISAMAI BEGAT SHALLUM,=# 41 AND SHALLUM BEGAT JEKAMIAH, AND JEKAMIAH BEGAT ELISHAMA. C# 42 NOW THE SONS OF CALEB THE BROTHER OF JERAHMEEL WERE, MESHA HISAM FIRSTBORN, WHICH WAS THE FATHER OF ZIPH; AND THE SONS OF MARESHAH THE FATHERS OF HEBRON.MF# 43 AND THE SONS OF HEBRON; KORAH, AND TAPPUAH, AND REKEM, AND SHEMA.K# 44 AND SHEMA BEGAT RAHAM, THE FATHER OF JORKOAM: AND REKEM BEGAT SHAMMAI.EI# 45 AND THE SON OF SHAMMAI WAS MAON: AND MAON WAS THE FATHER OF BETHZUR.L# 46 AND EPHAH, CALEBS CONCUBINE, BARE HARAN, AND MOZA, AND GAZEZ: AND HARAN BEGAT GAZEZ.AJ# 47 AND THE SONS OF JAHDAI; REGEM, AND JOTHAM, AND GESHAM, AND PELET, AND EPHAH, AND SHAAPH.A:# 48 MAACHAH, CALEBS CONCUBINE, BARE SHEBER, AND TIRHANAH.F# 49 SHE BARE ALSO SHAAPH THE FATHER OF MADMANNAH, SHEVA THE FATHER OFI MACHBENAH, AND THE FATHER OF GIBEA: AND THE DAUGHTER OF CALEB WAS ACHSA.OL# 50 THESE WERE THE SONS OF CALEB THE SON OF HUR, THE FIRSTBORN OF EPHRATAH;$ SHOBAL THE FATHER OF KIRJATHJEARIM.C# 51 SALMA THE FATHER OF BETHLEHEM, HAREPH THE FATHER OF BETHGADER.HM# 52 AND SHOBAL THE FATHER OF KIRJATHJEARIM HAD SONS; HAROEH, AND HALF OF THEM MANAHETHITES.J# 53 AND THE FAMILIES OF KIRJATHJEARIM; THE ITHRITES, AND THE PUHITES, ANDK THE SHUMATHITES, AND THE MISHRAITES; OF THEM CAME THE ZAREATHITES, AND THEF ESHTAULITES,NL# 54 THE SONS OF SALMA; BETHLEHEM, AND THE NETOPHATHITES, ATAROTH, THE HOUSE4 OF JOAB, AND HALF OF THE MANAHETHITES, THE ZORITES.J# 55 AND THE FAMILIES OF THE SCRIBES WHICH DWELT AT JABEZ; THE TIRATHITES,N THE SHIMEATHITES, AND SUCHATHITES. THESE ARE THE KENITES THAT CAME OF HEMATH,# THE FATHER OF THE HOUSE OF RECHAB.M = CHAPTER 3 M# 1 NOW THESE WERE THE SONS OF DAVID, WHICH WERE BORN UNTO HIM IN HEBRON; THEL FIRSTBORN AMNON, OF AHINOAM THE JEZREELITESS; THE SECOND DANIEL, OF ABIGAIL THE CARMELITESS:4H# 2 THE THIRD, ABSALOM THE SON OF MAACHAH THE DAUGHTER OF TALMAI KING OF1 GESHUR: THE FOURTH, ADONIJAH THE SON OF HAGGITH:.J# 3 THE FIFTH, SHEPHATIAH OF ABITAL: THE SIXTH, ITHREAM BY EGLAH HIS WIFE.L# 4 THESE SIX WERE BORN UNTO HIM IN HEBRON; AND THERE HE REIGNED SEVEN YEARSD AND SIX MONTHS: AND IN JERUSALEM HE REIGNED THIRTY AND THREE YEARS.F# 5 AND THESE WERE BORN UNTO HIM IN JERUSALEM; SHIMEA, AND SHOBAB, AND? NATHAN, AND SOLOMON, FOUR, OF BATHSHUA THE DAUGHTER OF AMMIEL:I,# 6 IBHAR ALSO, AND ELISHAMA, AND ELIPHELET,&# 7 AND NOGAH, AND NEPHEG, AND JAPHIA,2# 8 AND ELISHAMA, AND ELIADA, AND ELIPHELET, NINE.L# 9 THESE WERE ALL THE SONS OF DAVID, BESIDE THE SONS OF THE CONCUBINES, AND TAMAR THEIR SISTER.J# 10 AND SOLOMONS SON WAS REHOBOAM, ABIA HIS SON, ASA HIS SON, JEHOSHAPHAT HIS SON,D3# 11 JORAM HIS SON, AHAZIAH HIS SON, JOASH HIS SON, 6# 12 AMAZIAH HIS SON, AZARIAH HIS SON, JOTHAM HIS SON,6# 13 AHAZ HIS SON, HEZEKIAH HIS SON, MANASSEH HIS SON,"# 14 AMON HIS SON, JOSIAH HIS SON.C# 15 AND THE SONS OF JOSIAH WERE, THE FIRSTBORN JOHANAN, THE SECOND,3 JEHOIAKIM, THE THIRD ZEDEKIAH, THE FOURTH SHALLUM.C# 16 AND THE SONS OF JEHOIAKIM: JECONIAH HIS SON, ZEDEKIAH HIS SON.E8# 17 AND THE SONS OF JECONIAH; ASSIR, SALATHIEL HIS SON,F# 18 MALCHIRAM ALSO, AND PEDAIAH, AND SHENAZAR, JECAMIAH, HOSHAMA, AND NEDABIAH.J# 19 AND THE SONS OF PEDAIAH WERE, ZERUBBABEL, AND SHIMEI: AND THE SONS OFA ZERUBBABEL; MESHULLAM, AND HANANIAH, AND SHELOMITH THEIR SISTER: L# 20 AND HASHUBA00k`2E1D%5%T6%! !H, AND OHEL, AND BERECHIAH, AND HASADIAH, JUSHABHESED, FIVE.K# 21 AND THE SONS OF HANANIAH; PELATIAH, AND JESAIAH: THE SONS OF REPHAIAH,@ THE SONS OF ARNAN, THE SONS OF OBADIAH, THE SONS OF SHECHANIAH.M# 22 AND THE SONS OF SHECHANIAH; SHEMAIAH: AND THE SONS OF SHEMAIAH; HATTUSH,A6 AND IGEAL, AND BARIAH, AND NEARIAH, AND SHAPHAT, SIX.I# 23 AND THE SONS OF NEARIAH; ELIOENAI, AND HEZEKIAH, AND AZRIKAM, THREE.TK# 24 AND THE SONS OF ELIOENAI WERE, HODAIAH, AND ELIASHIB, AND PELAIAH, AND 3 AKKUB, AND JOHANAN, AND DALAIAH, AND ANANI, SEVEN.A = CHAPTER 4 F# 1 THE SONS OF JUDAH; PHAREZ, HEZRON, AND CARMI, AND HUR, AND SHOBAL.K# 2 AND REAIAH THE SON OF SHOBAL BEGAT JAHATH; AND JAHATH BEGAT AHUMAI, ANDN1 LAHAD. THESE ARE THE FAMILIES OF THE ZORATHITES.DM# 3 AND THESE WERE OF THE FATHER OF ETAM; JEZREEL, AND ISHMA, AND IDBASH: ANDH* THE NAME OF THEIR SISTER WAS HAZELELPONI:L# 4 AND PENUEL THE FATHER OF GEDOR, AND EZER THE FATHER OF HUSHAH. THESE AREE THE SONS OF HUR, THE FIRSTBORN OF EPHRATAH, THE FATHER OF BETHLEHEM.IB# 5 AND ASHUR THE FATHER OF TEKOA HAD TWO WIVES, HELAH AND NAARAH.H# 6 AND NAARAH BARE HIM AHUZAM, AND HEPHER, AND TEMENI, AND HAAHASHTARI. THESE WERE THE SONS OF NAARAH.H?# 7 AND THE SONS OF HELAH WERE, ZERETH, AND JEZOAR, AND ETHNAN. K# 8 AND COZ BEGAT ANUB, AND ZOBEBAH, AND THE FAMILIES OF AHARHEL THE SON OF HARUM. J# 9 AND JABEZ WAS MORE HONOURABLE THAN HIS BRETHREN: AND HIS MOTHER CALLED8 HIS NAME JABEZ, SAYING, BECAUSE I BARE HIM WITH SORROW.I# 10 AND JABEZ CALLED ON THE GOD OF ISRAEL, SAYING, OH THAT THOU WOULDESTOM BLESS ME INDEED, AND ENLARGE MY COAST, AND THAT THINE HAND MIGHT BE WITH ME,EM AND THAT THOU WOULDEST KEEP ME FROM EVIL, THAT IT MAY NOT GRIEVE ME! AND GODH% GRANTED HIM THAT WHICH HE REQUESTED.RI# 11 AND CHELUB THE BROTHER OF SHUAH BEGAT MEHIR, WHICH WAS THE FATHER OFA ESHTON.G# 12 AND ESHTON BEGAT BETHRAPHA, AND PASEAH, AND TEHINNAH THE FATHER OFD' IRNAHASH. THESE ARE THE MEN OF RECHAH.NJ# 13 AND THE SONS OF KENAZ; OTHNIEL, AND SERAIAH: AND THE SONS OF OTHNIEL; HATHATH. J# 14 AND MEONOTHAI BEGAT OPHRAH: AND SERAIAH BEGAT JOAB, THE FATHER OF THE. VALLEY OF CHARASHIM; FOR THEY WERE CRAFTSMEN.M# 15 AND THE SONS OF CALEB THE SON OF JEPHUNNEH; IRU, ELAH, AND NAAM: AND THEH SONS OF ELAH, EVEN KENAZ.F# 16 AND THE SONS OF JEHALELEEL; ZIPH, AND ZIPHAH, TIRIA, AND ASAREEL.L# 17 AND THE SONS OF EZRA WERE, JETHER, AND MERED, AND EPHER, AND JALON: ANDA SHE BARE MIRIAM, AND SHAMMAI, AND ISHBAH THE FATHER OF ESHTEMOA.NI# 18 AND HIS WIFE JEHUDIJAH BARE JERED THE FATHER OF GEDOR, AND HEBER THEOL FATHER OF SOCHO, AND JEKUTHIEL THE FATHER OF ZANOAH. AND THESE ARE THE SONS6 OF BITHIAH THE DAUGHTER OF PHARAOH, WHICH MERED TOOK.G# 19 AND THE SONS OF HIS WIFE HODIAH THE SISTER OF NAHAM, THE FATHER OFE2 KEILAH THE GARMITE, AND ESHTEMOA THE MAACHATHITE.M# 20 AND THE SONS OF SHIMON WERE, AMNON, AND RINNAH, BENHANAN, AND TILON. ANDE. THE SONS OF ISHI WERE, ZOHETH, AND BENZOHETH.J# 21 THE SONS OF SHELAH THE SON OF JUDAH WERE, ER THE FATHER OF LECAH, ANDJ LAADAH THE FATHER OF MARESHAH, AND THE FAMILIES OF THE HOUSE OF THEM THAT, WROUGHT FINE LINEN, OF THE HOUSE OF ASHBEA,J# 22 AND JOKIM, AND THE MEN OF CHOZEBA, AND JOASH, AND SARAPH, WHO HAD THEB DOMINION IN MOAB, AND JASHUBILEHEM. AND THESE ARE ANCIENT THINGS.J# 23 THESE WERE THE POTTERS, AND THOSE THAT DWELT AMONG PLANTS AND HEDGES:- THERE THEY DWELT WITH THE KING FOR HIS WORK.I# 24 THE SONS OF SIMEON WERE, NEMUEL, AND JAMIN, JARIB, ZERAH, AND SHAUL: 5# 25 SHALLUM HIS SON, MIBSAM HIS SON, MISHMA HIS SON. M# 26 AND THE SONS OF MISHMA; HAMUEL HIS SON, ZACCHUR HIS SON, SHIMEI HIS SON.NL# 27 AND SHIMEI HAD SIXTEEN SONS AND SIX DAUGHTERS: BUT HIS BRETHREN HAD NOTN MANY CHILDREN, NEITHER DID ALL THEIR FAMILY MULTIPLY, LIKE TO THE CHILDREN OF JUDAH.T># 28 AND THEY DWELT AT BEERSHEBA, AND MOLADAH, AND HAZARSHUAL,.# 29 AND AT BILHAH, AND AT EZEM, AND AT TOLAD,2# 30 AND AT BETHUEL, AND AT HORMAH, AND AT ZIKLAG,M# 31 AND AT BETHMARCABOTH, AND HAZARSUSIM, AND AT BETHBIREI, AND AT SHAARAIM.S1 THESE WERE THEIR CITI00kh2J2<%X>%+%O-%TADATADATAES UNTO THE REIGN OF DAVID.HK# 32 AND THEIR VILLAGES WERE, ETAM, AND AIN, RIMMON, AND TOCHEN, AND ASHAN, FIVE CITIES:UM# 33 AND ALL THEIR VILLAGES THAT WERE ROUND ABOUT THE SAME CITIES, UNTO BAAL.M3 THESE WERE THEIR HABITATIONS, AND THEIR GENEALOGY.T?# 34 AND MESHOBAB, AND JAMLECH, AND JOSHAH, THE SON OF AMAZIAH, K# 35 AND JOEL, AND JEHU THE SON OF JOSIBIAH, THE SON OF SERAIAH, THE SON OFT ASIEL,K# 36 AND ELIOENAI, AND JAAKOBAH, AND JESHOHAIAH, AND ASAIAH, AND ADIEL, ANDS JESIMIEL, AND BENAIAH,SJ# 37 AND ZIZA THE SON OF SHIPHI, THE SON OF ALLON, THE SON OF JEDAIAH, THE$ SON OF SHIMRI, THE SON OF SHEMAIAH;K# 38 THESE MENTIONED BY THEIR NAMES WERE PRINCES IN THEIR FAMILIES: AND THET* HOUSE OF THEIR FATHERS INCREASED GREATLY.K# 39 AND THEY WENT TO THE ENTRANCE OF GEDOR, EVEN UNTO THE EAST SIDE OF THEA* VALLEY, TO SEEK PASTURE FOR THEIR FLOCKS.K# 40 AND THEY FOUND FAT PASTURE AND GOOD, AND THE LAND WAS WIDE, AND QUIET,A7 AND PEACEABLE; FOR THEY OF HAM HAD DWELT THERE OF OLD.MJ# 41 AND THESE WRITTEN BY NAME CAME IN THE DAYS OF HEZEKIAH KING OF JUDAH,F AND SMOTE THEIR TENTS, AND THE HABITATIONS THAT WERE FOUND THERE, ANDN DESTROYED THEM UTTERLY UNTO THIS DAY, AND DWELT IN THEIR ROOMS: BECAUSE THERE$ WAS PASTURE THERE FOR THEIR FLOCKS.L# 42 AND SOME OF THEM, EVEN OF THE SONS OF SIMEON, FIVE HUNDRED MEN, WENT TOK MOUNT SEIR, HAVING FOR THEIR CAPTAINS PELATIAH, AND NEARIAH, AND REPHAIAH,N AND UZZIEL, THE SONS OF ISHI.K# 43 AND THEY SMOTE THE REST OF THE AMALEKITES THAT WERE ESCAPED, AND DWELTI THERE UNTO THIS DAY.E = CHAPTER 5 N# 1 NOW THE SONS OF REUBEN THE FIRSTBORN OF ISRAEL, (FOR HE WAS THE FIRSTBORN;K BUT FORASMUCH AS HE DEFILED HIS FATHERS BED, HIS BIRTHRIGHT WAS GIVEN UNTOBN THE SONS OF JOSEPH THE SON OF ISRAEL: AND THE GENEALOGY IS NOT TO BE RECKONED AFTER THE BIRTHRIGHT.L# 2 FOR JUDAH PREVAILED ABOVE HIS BRETHREN, AND OF HIM CAME THE CHIEF RULER;! BUT THE BIRTHRIGHT WAS JOSEPHS:)EH# 3 THE SONS, I SAY, OF REUBEN THE FIRSTBORN OF ISRAEL WERE, HANOCH, AND PALLU, HEZRON, AND CARMI.D# 4 THE SONS OF JOEL; SHEMAIAH HIS SON, GOG HIS SON, SHIMEI HIS SON,/# 5 MICAH HIS SON, REAIA HIS SON, BAAL HIS SON,TE# 6 BEERAH HIS SON, WHOM TILGATHPILNESER KING OF ASSYRIA CARRIED AWAYB* CAPTIVE: HE WAS PRINCE OF THE REUBENITES.C# 7 AND HIS BRETHREN BY THEIR FAMILIES, WHEN THE GENEALOGY OF THEIR @ GENERATIONS WAS RECKONED, WERE THE CHIEF, JEIEL, AND ZECHARIAH,M# 8 AND BELA THE SON OF AZAZ, THE SON OF SHEMA, THE SON OF JOEL, WHO DWELT INT$ AROER, EVEN UNTO NEBO AND BAALMEON:M# 9 AND EASTWARD HE INHABITED UNTO THE ENTERING IN OF THE WILDERNESS FROM THEIM RIVER EUPHRATES: BECAUSE THEIR CATTLE WERE MULTIPLIED IN THE LAND OF GILEAD.SJ# 10 AND IN THE DAYS OF SAUL THEY MADE WAR WITH THE HAGARITES, WHO FELL BYJ THEIR HAND: AND THEY DWELT IN THEIR TENTS THROUGHOUT ALL THE EAST LAND OF GILEAD.K# 11 AND THE CHILDREN OF GAD DWELT OVER AGAINST THEM, IN THE LAND OF BASHAN UNTO SALCAH:NM# 12 JOEL THE CHIEF, AND SHAPHAM THE NEXT, AND JAANAI, AND SHAPHAT IN BASHAN.EH# 13 AND THEIR BRETHREN OF THE HOUSE OF THEIR FATHERS WERE, MICHAEL, ANDH MESHULLAM, AND SHEBA, AND JORAI, AND JACHAN, AND ZIA, AND HEBER, SEVEN.J# 14 THESE ARE THE CHILDREN OF ABIHAIL THE SON OF HURI, THE SON OF JAROAH,H THE SON OF GILEAD, THE SON OF MICHAEL, THE SON OF JESHISHAI, THE SON OF JAHDO, THE SON OF BUZ;NH# 15 AHI THE SON OF ABDIEL, THE SON OF GUNI, CHIEF OF THE HOUSE OF THEIR FATHERS.BI# 16 AND THEY DWELT IN GILEAD IN BASHAN, AND IN HER TOWNS, AND IN ALL THEA' SUBURBS OF SHARON, UPON THEIR BORDERS.RI# 17 ALL THESE WERE RECKONED BY GENEALOGIES IN THE DAYS OF JOTHAM KING OF 3 JUDAH, AND IN THE DAYS OF JEROBOAM KING OF ISRAEL.EL# 18 THE SONS OF REUBEN, AND THE GADITES, AND HALF THE TRIBE OF MANASSEH, OFL VALIANT MEN, MEN ABLE TO BEAR BUCKLER AND SWORD, AND TO SHOOT WITH BOW, ANDK SKILFUL IN WAR, WERE FOUR AND FORTY THOUSAND SEVEN HUNDRED AND THREESCORE,  THAT WENT OUT TO THE WAR.G# 19 AND THEY MADE WAR WITH THE HAGARITES, WITH JETUR, AND NEPHISH, AND  NODAB.BM# 20 AND THEY WERE HELPED AGAINST THEM, AND THE 00kp2E1D%5%T6%! !HAGARITES WERE DELIVERED INTOEN THEIR HAND, AND ALL THAT WERE WITH THEM: FOR THEY CRIED TO GOD IN THE BATTLE,C AND HE WAS INTREATED OF THEM; BECAUSE THEY PUT THEIR TRUST IN HIM.OL# 21 AND THEY TOOK AWAY THEIR CATTLE; OF THEIR CAMELS FIFTY THOUSAND, AND OFL SHEEP TWO HUNDRED AND FIFTY THOUSAND, AND OF ASSES TWO THOUSAND, AND OF MEN AN HUNDRED THOUSAND.EI# 22 FOR THERE FELL DOWN MANY SLAIN, BECAUSE THE WAR WAS OF GOD. AND THEYA+ DWELT IN THEIR STEADS UNTIL THE CAPTIVITY.EK# 23 AND THE CHILDREN OF THE HALF TRIBE OF MANASSEH DWELT IN THE LAND: THEYDH INCREASED FROM BASHAN UNTO BAALHERMON AND SENIR, AND UNTO MOUNT HERMON.L# 24 AND THESE WERE THE HEADS OF THE HOUSE OF THEIR FATHERS, EVEN EPHER, ANDM ISHI, AND ELIEL, AND AZRIEL, AND JEREMIAH, AND HODAVIAH, AND JAHDIEL, MIGHTYAD MEN OF VALOUR, FAMOUS MEN, AND HEADS OF THE HOUSE OF THEIR FATHERS.G# 25 AND THEY TRANSGRESSED AGAINST THE GOD OF THEIR FATHERS, AND WENT AOL WHORING AFTER THE GODS OF THE PEOPLE OF THE LAND, WHOM GOD DESTROYED BEFORE THEM.L# 26 AND THE GOD OF ISRAEL STIRRED UP THE SPIRIT OF PUL KING OF ASSYRIA, ANDN THE SPIRIT OF TILGATHPILNESER KING OF ASSYRIA, AND HE CARRIED THEM AWAY, EVENM THE REUBENITES, AND THE GADITES, AND THE HALF TRIBE OF MANASSEH, AND BROUGHT M THEM UNTO HALAH, AND HABOR, AND HARA, AND TO THE RIVER GOZAN, UNTO THIS DAY.E = CHAPTER 6 2# 1 THE SONS OF LEVI; GERSHON, KOHATH, AND MERARI.A# 2 AND THE SONS OF KOHATH; AMRAM, IZHAR, AND HEBRON, AND UZZIEL. M# 3 AND THE CHILDREN OF AMRAM; AARON, AND MOSES, AND MIRIAM. THE SONS ALSO OFO/ AARON; NADAB, AND ABIHU, ELEAZAR, AND ITHAMAR.Y3# 4 ELEAZAR BEGAT PHINEHAS, PHINEHAS BEGAT ABISHUA,R2# 5 AND ABISHUA BEGAT BUKKI, AND BUKKI BEGAT UZZI,9# 6 AND UZZI BEGAT ZERAHIAH, AND ZERAHIAH BEGAT MERAIOTH,H5# 7 MERAIOTH BEGAT AMARIAH, AND AMARIAH BEGAT AHITUB,I4# 8 AND AHITUB BEGAT ZADOK, AND ZADOK BEGAT AHIMAAZ,9# 9 AND AHIMAAZ BEGAT AZARIAH, AND AZARIAH BEGAT JOHANAN, M# 10 AND JOHANAN BEGAT AZARIAH, (HE IT IS THAT EXECUTED THE PRIESTS OFFICE INA- THE TEMPLE THAT SOLOMON BUILT IN JERUSALEM:)9# 11 AND AZARIAH BEGAT AMARIAH, AND AMARIAH BEGAT AHITUB,A5# 12 AND AHITUB BEGAT ZADOK, AND ZADOK BEGAT SHALLUM,S:# 13 AND SHALLUM BEGAT HILKIAH, AND HILKIAH BEGAT AZARIAH,<# 14 AND AZARIAH BEGAT SERAIAH, AND SERAIAH BEGAT JEHOZADAK,L# 15 AND JEHOZADAK WENT INTO CAPTIVITY, WHEN THE LORD CARRIED AWAY JUDAH AND) JERUSALEM BY THE HAND OF NEBUCHADNEZZAR.D3# 16 THE SONS OF LEVI; GERSHOM, KOHATH, AND MERARI.IF# 17 AND THESE BE THE NAMES OF THE SONS OF GERSHOM; LIBNI, AND SHIMEI.K# 18 AND THE SONS OF KOHATH WERE, AMRAM, AND IZHAR, AND HEBRON, AND UZZIEL. L# 19 THE SONS OF MERARI; MAHLI, AND MUSHI. AND THESE ARE THE FAMILIES OF THE$ LEVITES ACCORDING TO THEIR FATHERS.?# 20 OF GERSHOM; LIBNI HIS SON, JAHATH HIS SON, ZIMMAH HIS SON,AA# 21 JOAH HIS SON, IDDO HIS SON, ZERAH HIS SON, JEATERAI HIS SON. I# 22 THE SONS OF KOHATH; AMMINADAB HIS SON, KORAH HIS SON, ASSIR HIS SON,F># 23 ELKANAH HIS SON, AND EBIASAPH HIS SON, AND ASSIR HIS SON,F# 24 TAHATH HIS SON, URIEL HIS SON, UZZIAH HIS SON, AND SHAUL HIS SON.2# 25 AND THE SONS OF ELKANAH; AMASAI, AND AHIMOTH.M# 26 AS FOR ELKANAH: THE SONS OF ELKANAH; ZOPHAI HIS SON, AND NAHATH HIS SON,L5# 27 ELIAB HIS SON, JEROHAM HIS SON, ELKANAH HIS SON.B=# 28 AND THE SONS OF SAMUEL; THE FIRSTBORN VASHNI, AND ABIAH.,L# 29 THE SONS OF MERARI; MAHLI, LIBNI HIS SON, SHIMEI HIS SON, UZZA HIS SON, ITB5# 30 SHIMEA HIS SON, HAGGIAH HIS SON, ASAIAH HIS SON.HL# 31 AND THESE ARE THEY WHOM DAVID SET OVER THE SERVICE OF SONG IN THE HOUSE* OF THE LORD, AFTER THAT THE ARK HAD REST.K# 32 AND THEY MINISTERED BEFORE THE DWELLING PLACE OF THE TABERNACLE OF THESL CONGREGATION WITH SINGING, UNTIL SOLOMON HAD BUILT THE HOUSE OF THE LORD INJ JERUSALEM: AND THEN THEY WAITED ON THEIR OFFICE ACCORDING TO THEIR ORDER.K# 33 AND THESE ARE THEY THAT WAITED WITH THEIR CHILDREN. OF THE SONS OF THE A KOHATHITES: HEMAN A SINGER, THE SON OF JOEL, THE SON OF SHEMUEL,II# 34 THE SON OF ELKANAH, THE SON OF JEROHAM, THE SON OF ELIEL, THE SON OFN TOAH,G# 35 THE SON OF ZUPH, TH00kx2J2<%X>%+%O-%TADATADATAE SON OF ELKANAH, THE SON OF MAHATH, THE SON OFR AMASAI,H# 36 THE SON OF ELKANAH, THE SON OF JOEL, THE SON OF AZARIAH, THE SON OF ZEPHANIAH, I# 37 THE SON OF TAHATH, THE SON OF ASSIR, THE SON OF EBIASAPH, THE SON OFI KORAH,AM# 38 THE SON OF IZHAR, THE SON OF KOHATH, THE SON OF LEVI, THE SON OF ISRAEL.EK# 39 AND HIS BROTHER ASAPH, WHO STOOD ON HIS RIGHT HAND, EVEN ASAPH THE SON ! OF BERACHIAH, THE SON OF SHIMEA,AB# 40 THE SON OF MICHAEL, THE SON OF BAASEIAH, THE SON OF MALCHIAH,;# 41 THE SON OF ETHNI, THE SON OF ZERAH, THE SON OF ADAIAH,N<# 42 THE SON OF ETHAN, THE SON OF ZIMMAH, THE SON OF SHIMEI,<# 43 THE SON OF JAHATH, THE SON OF GERSHOM, THE SON OF LEVI.L# 44 AND THEIR BRETHREN THE SONS OF MERARI STOOD ON THE LEFT HAND: ETHAN THE3 SON OF KISHI, THE SON OF ABDI, THE SON OF MALLUCH,NB# 45 THE SON OF HASHABIAH, THE SON OF AMAZIAH, THE SON OF HILKIAH,9# 46 THE SON OF AMZI, THE SON OF BANI, THE SON OF SHAMER,L# 47 THE SON OF MAHLI, THE SON OF MUSHI, THE SON OF MERARI, THE SON OF LEVI.F# 48 THEIR BRETHREN ALSO THE LEVITES WERE APPOINTED UNTO ALL MANNER OF/ SERVICE OF THE TABERNACLE OF THE HOUSE OF GOD.EM# 49 BUT AARON AND HIS SONS OFFERED UPON THE ALTAR OF THE BURNT OFFERING, ANDHJ ON THE ALTAR OF INCENSE, AND WERE APPOINTED FOR ALL THE WORK OF THE PLACEL MOST HOLY, AND TO MAKE AN ATONEMENT FOR ISRAEL, ACCORDING TO ALL THAT MOSES" THE SERVANT OF GOD HAD COMMANDED.H# 50 AND THESE ARE THE SONS OF AARON; ELEAZAR HIS SON, PHINEHAS HIS SON, ABISHUA HIS SON,O3# 51 BUKKI HIS SON, UZZI HIS SON, ZERAHIAH HIS SON,T7# 52 MERAIOTH HIS SON, AMARIAH HIS SON, AHITUB HIS SON, $# 53 ZADOK HIS SON, AHIMAAZ HIS SON.J# 54 NOW THESE ARE THEIR DWELLING PLACES THROUGHOUT THEIR CASTLES IN THEIRL COASTS, OF THE SONS OF AARON, OF THE FAMILIES OF THE KOHATHITES: FOR THEIRS WAS THE LOT.NL# 55 AND THEY GAVE THEM HEBRON IN THE LAND OF JUDAH, AND THE SUBURBS THEREOF ROUND ABOUT IT.M# 56 BUT THE FIELDS OF THE CITY, AND THE VILLAGES THEREOF, THEY GAVE TO CALEBA THE SON OF JEPHUNNEH.L# 57 AND TO THE SONS OF AARON THEY GAVE THE CITIES OF JUDAH, NAMELY, HEBRON,K THE CITY OF REFUGE, AND LIBNAH WITH HER SUBURBS, AND JATTIR, AND ESHTEMOA,E WITH THEIR SUBURBS,8# 58 AND HILEN WITH HER SUBURBS, DEBIR WITH HER SUBURBS,B# 59 AND ASHAN WITH HER SUBURBS, AND BETHSHEMESH WITH HER SUBURBS:I# 60 AND OUT OF THE TRIBE OF BENJAMIN; GEBA WITH HER SUBURBS, AND ALEMETHRM WITH HER SUBURBS, AND ANATHOTH WITH HER SUBURBS. ALL THEIR CITIES THROUGHOUT % THEIR FAMILIES WERE THIRTEEN CITIES.OG# 61 AND UNTO THE SONS OF KOHATH, WHICH WERE LEFT OF THE FAMILY OF THAT,N TRIBE, WERE CITIES GIVEN OUT OF THE HALF TRIBE, NAMELY, OUT OF THE HALF TRIBE! OF MANASSEH, BY LOT, TEN CITIES.,M# 62 AND TO THE SONS OF GERSHOM THROUGHOUT THEIR FAMILIES OUT OF THE TRIBE OF K ISSACHAR, AND OUT OF THE TRIBE OF ASHER, AND OUT OF THE TRIBE OF NAPHTALI,B= AND OUT OF THE TRIBE OF MANASSEH IN BASHAN, THIRTEEN CITIES.,J# 63 UNTO THE SONS OF MERARI WERE GIVEN BY LOT, THROUGHOUT THEIR FAMILIES,N OUT OF THE TRIBE OF REUBEN, AND OUT OF THE TRIBE OF GAD, AND OUT OF THE TRIBE OF ZEBULUN, TWELVE CITIES.EK# 64 AND THE CHILDREN OF ISRAEL GAVE TO THE LEVITES THESE CITIES WITH THEIRA SUBURBS.TL# 65 AND THEY GAVE BY LOT OUT OF THE TRIBE OF THE CHILDREN OF JUDAH, AND OUTM OF THE TRIBE OF THE CHILDREN OF SIMEON, AND OUT OF THE TRIBE OF THE CHILDRENE< OF BENJAMIN, THESE CITIES, WHICH ARE CALLED BY THEIR NAMES.H# 66 AND THE RESIDUE OF THE FAMILIES OF THE SONS OF KOHATH HAD CITIES OF* THEIR COASTS OUT OF THE TRIBE OF EPHRAIM.G# 67 AND THEY GAVE UNTO THEM, OF THE CITIES OF REFUGE, SHECHEM IN MOUNTVA EPHRAIM WITH HER SUBURBS; THEY GAVE ALSO GEZER WITH HER SUBURBS,SB# 68 AND JOKMEAM WITH HER SUBURBS, AND BETHHORON WITH HER SUBURBS,C# 69 AND AIJALON WITH HER SUBURBS, AND GATHRIMMON WITH HER SUBURBS:DM# 70 AND OUT OF THE HALF TRIBE OF MANASSEH; ANER WITH HER SUBURBS, AND BILEAMSG WITH HER SUBURBS, FOR THE FAMILY OF THE REMNANT OF THE SONS OF KOHATH.OL# 71 UNTO THE SONS OF GERSHOM WERE GIVEN OUT OF THE FAMILY OF THE HALF TRIBEF OF MANASSEH, GOLAN IN BASHAN WI00k2E1D%5%T6%! !TH HER SUBURBS, AND ASHTAROTH WITH HER SUBURBS:MM# 72 AND OUT OF THE TRIBE OF ISSACHAR; KEDESH WITH HER SUBURBS, DABERATH WITHT HER SUBURBS,A<# 73 AND RAMOTH WITH HER SUBURBS, AND ANEM WITH HER SUBURBS:K# 74 AND OUT OF THE TRIBE OF ASHER; MASHAL WITH HER SUBURBS, AND ABDON WITHA HER SUBURBS, <# 75 AND HUKOK WITH HER SUBURBS, AND REHOB WITH HER SUBURBS:J# 76 AND OUT OF THE TRIBE OF NAPHTALI; KEDESH IN GALILEE WITH HER SUBURBS,> AND HAMMON WITH HER SUBURBS, AND KIRJATHAIM WITH HER SUBURBS.K# 77 UNTO THE REST OF THE CHILDREN OF MERARI WERE GIVEN OUT OF THE TRIBE OFH: ZEBULUN, RIMMON WITH HER SUBURBS, TABOR WITH HER SUBURBS:I# 78 AND ON THE OTHER SIDE JORDAN BY JERICHO, ON THE EAST SIDE OF JORDAN,BM WERE GIVEN THEM OUT OF THE TRIBE OF REUBEN, BEZER IN THE WILDERNESS WITH HERA& SUBURBS, AND JAHZAH WITH HER SUBURBS,C# 79 KEDEMOTH ALSO WITH HER SUBURBS, AND MEPHAATH WITH HER SUBURBS:NH# 80 AND OUT OF THE TRIBE OF GAD; RAMOTH IN GILEAD WITH HER SUBURBS, AND MAHANAIM WITH HER SUBURBS,U># 81 AND HESHBON WITH HER SUBURBS, AND JAZER WITH HER SUBURBS. = CHAPTER 7 M# 1 NOW THE SONS OF ISSACHAR WERE, TOLA, AND PUAH, JASHUB, AND SHIMROM, FOUR.HI# 2 AND THE SONS OF TOLA; UZZI, AND REPHAIAH, AND JERIEL, AND JAHMAI, ANDHN JIBSAM, AND SHEMUEL, HEADS OF THEIR FATHERS HOUSE, TO WIT, OF TOLA: THEY WEREK VALIANT MEN OF MIGHT IN THEIR GENERATIONS; WHOSE NUMBER WAS IN THE DAYS OFI/ DAVID TWO AND TWENTY THOUSAND AND SIX HUNDRED.DJ# 3 AND THE SONS OF UZZI; IZRAHIAH: AND THE SONS OF IZRAHIAH; MICHAEL, AND8 OBADIAH, AND JOEL, ISHIAH, FIVE: ALL OF THEM CHIEF MEN.J# 4 AND WITH THEM, BY THEIR GENERATIONS, AFTER THE HOUSE OF THEIR FATHERS,J WERE BANDS OF SOLDIERS FOR WAR, SIX AND THIRTY THOUSAND MEN: FOR THEY HAD MANY WIVES AND SONS.BM# 5 AND THEIR BRETHREN AMONG ALL THE FAMILIES OF ISSACHAR WERE VALIANT MEN OFLJ MIGHT, RECKONED IN ALL BY THEIR GENEALOGIES FOURSCORE AND SEVEN THOUSAND.?# 6 THE SONS OF BENJAMIN; BELA, AND BECHER, AND JEDIAEL, THREE.OM# 7 AND THE SONS OF BELA; EZBON, AND UZZI, AND UZZIEL, AND JERIMOTH, AND IRI,SJ FIVE; HEADS OF THE HOUSE OF THEIR FATHERS, MIGHTY MEN OF VALOUR; AND WEREK RECKONED BY THEIR GENEALOGIES TWENTY AND TWO THOUSAND AND THIRTY AND FOUR.TM# 8 AND THE SONS OF BECHER; ZEMIRA, AND JOASH, AND ELIEZER, AND ELIOENAI, ANDNL OMRI, AND JERIMOTH, AND ABIAH, AND ANATHOTH, AND ALAMETH. ALL THESE ARE THE SONS OF BECHER.M# 9 AND THE NUMBER OF THEM, AFTER THEIR GENEALOGY BY THEIR GENERATIONS, HEADSRM OF THE HOUSE OF THEIR FATHERS, MIGHTY MEN OF VALOUR, WAS TWENTY THOUSAND ANDA TWO HUNDRED.DI# 10 THE SONS ALSO OF JEDIAEL; BILHAN: AND THE SONS OF BILHAN; JEUSH, ANDNM BENJAMIN, AND EHUD, AND CHENAANAH, AND ZETHAN, AND THARSHISH, AND AHISHAHAR.OM# 11 ALL THESE THE SONS OF JEDIAEL, BY THE HEADS OF THEIR FATHERS, MIGHTY MEN K OF VALOUR, WERE SEVENTEEN THOUSAND AND TWO HUNDRED SOLDIERS, FIT TO GO OUTE FOR WAR AND BATTLE.J# 12 SHUPPIM ALSO, AND HUPPIM, THE CHILDREN OF IR, AND HUSHIM, THE SONS OF AHER.I# 13 THE SONS OF NAPHTALI; JAHZIEL, AND GUNI, AND JEZER, AND SHALLUM, THEA SONS OF BILHAH.I# 14 THE SONS OF MANASSEH; ASHRIEL, WHOM SHE BARE: (BUT HIS CONCUBINE THE, ARAMITESS BARE MACHIR THE FATHER OF GILEAD:L# 15 AND MACHIR TOOK TO WIFE THE SISTER OF HUPPIM AND SHUPPIM, WHOSE SISTERSM NAME WAS MAACHAH;) AND THE NAME OF THE SECOND WAS ZELOPHEHAD: AND ZELOPHEHAD  HAD DAUGHTERS. G# 16 AND MAACHAH THE WIFE OF MACHIR BARE A SON, AND SHE CALLED HIS NAMECL PERESH; AND THE NAME OF HIS BROTHER WAS SHERESH; AND HIS SONS WERE ULAM AND RAKEM. K# 17 AND THE SONS OF ULAM; BEDAN. THESE WERE THE SONS OF GILEAD, THE SON OFE MACHIR, THE SON OF MANASSEH. E# 18 AND HIS SISTER HAMMOLEKETH BARE ISHOD, AND ABIEZER, AND MAHALAH.AM# 19 AND THE SONS OF SHEMIDAH WERE, AHIAN, AND SHECHEM, AND LIKHI, AND ANIAM.AJ# 20 AND THE SONS OF EPHRAIM; SHUTHELAH, AND BERED HIS SON, AND TAHATH HIS- SON, AND ELADAH HIS SON, AND TAHATH HIS SON,IL# 21 AND ZABAD HIS SON, AND SHUTHELAH HIS SON, AND EZER, AND ELEAD, WHOM THEM MEN OF GATH THAT WERE BORN IN THAT LAND SLEW, BECAUSE THEY CAME DOWN TO TAKED AWA00k2J2<%X>%+%O-%TADATADATAY THEIR CATTLE.NI# 22 AND EPHRAIM THEIR FATHER MOURNED MANY DAYS, AND HIS BRETHREN CAME TOE COMFORT HIM.AK# 23 AND WHEN HE WENT IN TO HIS WIFE, SHE CONCEIVED, AND BARE A SON, AND HEA= CALLED HIS NAME BERIAH, BECAUSE IT WENT EVIL WITH HIS HOUSE.HJ# 24 (AND HIS DAUGHTER WAS SHERAH, WHO BUILT BETHHORON THE NETHER, AND THE UPPER, AND UZZENSHERAH.)1K# 25 AND REPHAH WAS HIS SON, ALSO RESHEPH, AND TELAH HIS SON, AND TAHAN HISN SON.H7# 26 LAADAN HIS SON, AMMIHUD HIS SON, ELISHAMA HIS SON. $# 27 NON HIS SON, JEHOSHUAH HIS SON.E# 28 AND THEIR POSSESSIONS AND HABITATIONS WERE, BETHEL AND THE TOWNSCJ THEREOF, AND EASTWARD NAARAN, AND WESTWARD GEZER, WITH THE TOWNS THEREOF;E SHECHEM ALSO AND THE TOWNS THEREOF, UNTO GAZA AND THE TOWNS THEREOF:HM# 29 AND BY THE BORDERS OF THE CHILDREN OF MANASSEH, BETHSHEAN AND HER TOWNS,TJ TAANACH AND HER TOWNS, MEGIDDO AND HER TOWNS, DOR AND HER TOWNS. IN THESE0 DWELT THE CHILDREN OF JOSEPH THE SON OF ISRAEL.K# 30 THE SONS OF ASHER; IMNAH, AND ISUAH, AND ISHUAI, AND BERIAH, AND SERAH  THEIR SISTER.F# 31 AND THE SONS OF BERIAH; HEBER, AND MALCHIEL, WHO IS THE FATHER OF BIRZAVITH.AL# 32 AND HEBER BEGAT JAPHLET, AND SHOMER, AND HOTHAM, AND SHUA THEIR SISTER.L# 33 AND THE SONS OF JAPHLET; PASACH, AND BIMHAL, AND ASHVATH. THESE ARE THE CHILDREN OF JAPHLET.,A# 34 AND THE SONS OF SHAMER; AHI, AND ROHGAH, JEHUBBAH, AND ARAM. J# 35 AND THE SONS OF HIS BROTHER HELEM; ZOPHAH, AND IMNA, AND SHELESH, AND AMAL.M# 36 THE SONS OF ZOPHAH; SUAH, AND HARNEPHER, AND SHUAL, AND BERI, AND IMRAH,E# 37 BEZER, AND HOD, AND SHAMMA, AND SHILSHAH, AND ITHRAN, AND BEERA.S<# 38 AND THE SONS OF JETHER; JEPHUNNEH, AND PISPAH, AND ARA.7# 39 AND THE SONS OF ULLA; ARAH, AND HANIEL, AND REZIA.EH# 40 ALL THESE WERE THE CHILDREN OF ASHER, HEADS OF THEIR FATHERS HOUSE,F CHOICE AND MIGHTY MEN OF VALOUR, CHIEF OF THE PRINCES. AND THE NUMBERL THROUGHOUT THE GENEALOGY OF THEM THAT WERE APT TO THE WAR AND TO BATTLE WAS TWENTY AND SIX THOUSAND MEN. = CHAPTER 8 L# 1 NOW BENJAMIN BEGAT BELA HIS FIRSTBORN, ASHBEL THE SECOND, AND AHARAH THE THIRD,D*# 2 NOHAH THE FOURTH, AND RAPHA THE FIFTH.;# 3 AND THE SONS OF BELA WERE, ADDAR, AND GERA, AND ABIHUD,D'# 4 AND ABISHUA, AND NAAMAN, AND AHOAH,R(# 5 AND GERA, AND SHEPHUPHAN, AND HURAM.M# 6 AND THESE ARE THE SONS OF EHUD: THESE ARE THE HEADS OF THE FATHERS OF THE 8 INHABITANTS OF GEBA, AND THEY REMOVED THEM TO MANAHATH:I# 7 AND NAAMAN, AND AHIAH, AND GERA, HE REMOVED THEM, AND BEGAT UZZA, ANDD AHIHUD.J# 8 AND SHAHARAIM BEGAT CHILDREN IN THE COUNTRY OF MOAB, AFTER HE HAD SENT, THEM AWAY; HUSHIM AND BAARA WERE HIS WIVES.E# 9 AND HE BEGAT OF HODESH HIS WIFE, JOBAB, AND ZIBIA, AND MESHA, ANDN MALCHAM,H# 10 AND JEUZ, AND SHACHIA, AND MIRMA. THESE WERE HIS SONS, HEADS OF THE FATHERS. /# 11 AND OF HUSHIM HE BEGAT ABITUB, AND ELPAAL.EI# 12 THE SONS OF ELPAAL; EBER, AND MISHAM, AND SHAMED, WHO BUILT ONO, ANDM LOD, WITH THE TOWNS THEREOF:HM# 13 BERIAH ALSO, AND SHEMA, WHO WERE HEADS OF THE FATHERS OF THE INHABITANTSI4 OF AIJALON, WHO DROVE AWAY THE INHABITANTS OF GATH:%# 14 AND AHIO, SHASHAK, AND JEREMOTH, &# 15 AND ZEBADIAH, AND ARAD, AND ADER,:# 16 AND MICHAEL, AND ISPAH, AND JOHA, THE SONS OF BERIAH;8# 17 AND ZEBADIAH, AND MESHULLAM, AND HEZEKI, AND HEBER,?# 18 ISHMERAI ALSO, AND JEZLIAH, AND JOBAB, THE SONS OF ELPAAL;L&# 19 AND JAKIM, AND ZICHRI, AND ZABDI,)# 20 AND ELIENAI, AND ZILTHAI, AND ELIEL,?# 21 AND ADAIAH, AND BERAIAH, AND SHIMRATH, THE SONS OF SHIMHI;W&# 22 AND ISHPAN, AND HEBER, AND ELIEL,&# 23 AND ABDON, AND ZICHRI, AND HANAN,,# 24 AND HANANIAH, AND ELAM, AND ANTOTHIJAH,4# 25 AND IPHEDEIAH, AND PENUEL, THE SONS OF SHASHAK;1# 26 AND SHAMSHERAI, AND SHEHARIAH, AND ATHALIAH,B># 27 AND JARESIAH, AND ELIAH, AND ZICHRI, THE SONS OF JEROHAM.L# 28 THESE WERE HEADS OF THE FATHERS, BY THEIR GENERATIONS, CHIEF MEN. THESE DWELT IN JERUSALEM.L# 29 AND AT GIBEON DWELT THE FATHER OF GIBEON; WHOSE WIFES NAME WAS MAACHAH:I# 30 AND HIS FIRSTBORN SON ABDON, AND ZUR, AND KISH, AND BAAL, AND NADAB,E%# 31 AND GEDOR, AND AHIO, AN00k2E1D%5%T6%! !D ZACHER.AK# 32 AND MIKLOTH BEGAT SHIMEAH. AND THESE ALSO DWELT WITH THEIR BRETHREN INU JERUSALEM, OVER AGAINST THEM.J# 33 AND NER BEGAT KISH, AND KISH BEGAT SAUL, AND SAUL BEGAT JONATHAN, AND' MALCHISHUA, AND ABINADAB, AND ESHBAAL.EF# 34 AND THE SON OF JONATHAN WAS MERIBBAAL; AND MERIBBAAL BEGAT MICAH.I# 35 AND THE SONS OF MICAH WERE, PITHON, AND MELECH, AND TAREA, AND AHAZ.FK# 36 AND AHAZ BEGAT JEHOADAH; AND JEHOADAH BEGAT ALEMETH, AND AZMAVETH, ANDD ZIMRI; AND ZIMRI BEGAT MOZA,DL# 37 AND MOZA BEGAT BINEA: RAPHA WAS HIS SON, ELEASAH HIS SON, AZEL HIS SON:H# 38 AND AZEL HAD SIX SONS, WHOSE NAMES ARE THESE, AZRIKAM, BOCHERU, ANDJ ISHMAEL, AND SHEARIAH, AND OBADIAH, AND HANAN. ALL THESE WERE THE SONS OF AZEL.K# 39 AND THE SONS OF ESHEK HIS BROTHER WERE, ULAM HIS FIRSTBORN, JEHUSH THE ! SECOND, AND ELIPHELET THE THIRD.MJ# 40 AND THE SONS OF ULAM WERE MIGHTY MEN OF VALOUR, ARCHERS, AND HAD MANYH SONS, AND SONS SONS, AN HUNDRED AND FIFTY. ALL THESE ARE OF THE SONS OF BENJAMIN. = CHAPTER 9 N# 1 SO ALL ISRAEL WERE RECKONED BY GENEALOGIES; AND, BEHOLD, THEY WERE WRITTENG IN THE BOOK OF THE KINGS OF ISRAEL AND JUDAH, WHO WERE CARRIED AWAY TO ! BABYLON FOR THEIR TRANSGRESSION.LM# 2 NOW THE FIRST INHABITANTS THAT DWELT IN THEIR POSSESSIONS IN THEIR CITIESU? WERE, THE ISRAELITES, THE PRIESTS, LEVITES, AND THE NETHINIMS.MK# 3 AND IN JERUSALEM DWELT OF THE CHILDREN OF JUDAH, AND OF THE CHILDREN OF8 BENJAMIN, AND OF THE CHILDREN OF EPHRAIM, AND MANASSEH;J# 4 UTHAI THE SON OF AMMIHUD, THE SON OF OMRI, THE SON OF IMRI, THE SON OF2 BANI, OF THE CHILDREN OF PHAREZ THE SON OF JUDAH.># 5 AND OF THE SHILONITES; ASAIAH THE FIRSTBORN, AND HIS SONS.H# 6 AND OF THE SONS OF ZERAH; JEUEL, AND THEIR BRETHREN, SIX HUNDRED AND NINETY.G# 7 AND OF THE SONS OF BENJAMIN; SALLU THE SON OF MESHULLAM, THE SON OFE HODAVIAH, THE SON OF HASENUAH,NH# 8 AND IBNEIAH THE SON OF JEROHAM, AND ELAH THE SON OF UZZI, THE SON OFK MICHRI, AND MESHULLAM THE SON OF SHEPHATHIAH, THE SON OF REUEL, THE SON OFA IBNIJAH; H# 9 AND THEIR BRETHREN, ACCORDING TO THEIR GENERATIONS, NINE HUNDRED ANDM FIFTY AND SIX. ALL THESE MEN WERE CHIEF OF THE FATHERS IN THE HOUSE OF THEIRN FATHERS. <# 10 AND OF THE PRIESTS; JEDAIAH, AND JEHOIARIB, AND JACHIN,L# 11 AND AZARIAH THE SON OF HILKIAH, THE SON OF MESHULLAM, THE SON OF ZADOK,G THE SON OF MERAIOTH, THE SON OF AHITUB, THE RULER OF THE HOUSE OF GOD;RL# 12 AND ADAIAH THE SON OF JEROHAM, THE SON OF PASHUR, THE SON OF MALCHIJAH,M AND MAASIAI THE SON OF ADIEL, THE SON OF JAHZERAH, THE SON OF MESHULLAM, THE ' SON OF MESHILLEMITH, THE SON OF IMMER;RL# 13 AND THEIR BRETHREN, HEADS OF THE HOUSE OF THEIR FATHERS, A THOUSAND ANDK SEVEN HUNDRED AND THREESCORE; VERY ABLE MEN FOR THE WORK OF THE SERVICE OFC THE HOUSE OF GOD.M# 14 AND OF THE LEVITES; SHEMAIAH THE SON OF HASSHUB, THE SON OF AZRIKAM, THEA) SON OF HASHABIAH, OF THE SONS OF MERARI;OJ# 15 AND BAKBAKKAR, HERESH, AND GALAL, AND MATTANIAH THE SON OF MICAH, THE! SON OF ZICHRI, THE SON OF ASAPH;NL# 16 AND OBADIAH THE SON OF SHEMAIAH, THE SON OF GALAL, THE SON OF JEDUTHUN,M AND BERECHIAH THE SON OF ASA, THE SON OF ELKANAH, THAT DWELT IN THE VILLAGEST OF THE NETOPHATHITES.J# 17 AND THE PORTERS WERE, SHALLUM, AND AKKUB, AND TALMON, AND AHIMAN, AND' THEIR BRETHREN: SHALLUM WAS THE CHIEF;EM# 18 WHO HITHERTO WAITED IN THE KINGS GATE EASTWARD: THEY WERE PORTERS IN THE # COMPANIES OF THE CHILDREN OF LEVI.KL# 19 AND SHALLUM THE SON OF KORE, THE SON OF EBIASAPH, THE SON OF KORAH, ANDL HIS BRETHREN, OF THE HOUSE OF HIS FATHER, THE KORAHITES, WERE OVER THE WORKK OF THE SERVICE, KEEPERS OF THE GATES OF THE TABERNACLE: AND THEIR FATHERS,L< BEING OVER THE HOST OF THE LORD, WERE KEEPERS OF THE ENTRY.J# 20 AND PHINEHAS THE SON OF ELEAZAR WAS THE RULER OVER THEM IN TIME PAST, AND THE LORD WAS WITH HIM.WG# 21 AND ZECHARIAH THE SON OF MESHELEMIAH WAS PORTER OF THE DOOR OF THE TABERNACLE OF THE CONGREGATION.L# 22 ALL THESE WHICH WERE CHOSEN TO BE PORTERS IN THE GATES WERE TWO HUNDREDK AND TWELVE. THESE WERE RECKONED BY THEIR GENEALOGY IN00k2J2<%X>%+%O-%TADATADATA THEIR VILLAGES, WHOMO: DAVID AND SAMUEL THE SEER DID ORDAIN IN THEIR SET OFFICE.K# 23 SO THEY AND THEIR CHILDREN HAD THE OVERSIGHT OF THE GATES OF THE HOUSEN< OF THE LORD, NAMELY, THE HOUSE OF THE TABERNACLE, BY WARDS.I# 24 IN FOUR QUARTERS WERE THE PORTERS, TOWARD THE EAST, WEST, NORTH, ANDN SOUTH.LI# 25 AND THEIR BRETHREN, WHICH WERE IN THEIR VILLAGES, WERE TO COME AFTER2( SEVEN DAYS FROM TIME TO TIME WITH THEM.M# 26 FOR THESE LEVITES, THE FOUR CHIEF PORTERS, WERE IN THEIR SET OFFICE, ANDL; WERE OVER THE CHAMBERS AND TREASURIES OF THE HOUSE OF GOD.OI# 27 AND THEY LODGED ROUND ABOUT THE HOUSE OF GOD, BECAUSE THE CHARGE WASHD UPON THEM, AND THE OPENING THEREOF EVERY MORNING PERTAINED TO THEM.M# 28 AND CERTAIN OF THEM HAD THE CHARGE OF THE MINISTERING VESSELS, THAT THEYW& SHOULD BRING THEM IN AND OUT BY TALE.I# 29 SOME OF THEM ALSO WERE APPOINTED TO OVERSEE THE VESSELS, AND ALL THE M INSTRUMENTS OF THE SANCTUARY, AND THE FINE FLOUR, AND THE WINE, AND THE OIL,E& AND THE FRANKINCENSE, AND THE SPICES.I# 30 AND SOME OF THE SONS OF THE PRIESTS MADE THE OINTMENT OF THE SPICES.UM# 31 AND MATTITHIAH, ONE OF THE LEVITES, WHO WAS THE FIRSTBORN OF SHALLUM THE I KORAHITE, HAD THE SET OFFICE OVER THE THINGS THAT WERE MADE IN THE PANS.CJ# 32 AND OTHER OF THEIR BRETHREN, OF THE SONS OF THE KOHATHITES, WERE OVER, THE SHEWBREAD, TO PREPARE IT EVERY SABBATH.H# 33 AND THESE ARE THE SINGERS, CHIEF OF THE FATHERS OF THE LEVITES, WHOM REMAINING IN THE CHAMBERS WERE FREE: FOR THEY WERE EMPLOYED IN THAT WORK DAYI AND NIGHT.DC# 34 THESE CHIEF FATHERS OF THE LEVITES WERE CHIEF THROUGHOUT THEIR ' GENERATIONS; THESE DWELT AT JERUSALEM.OK# 35 AND IN GIBEON DWELT THE FATHER OF GIBEON, JEHIEL, WHOSE WIFES NAME WASI MAACHAH:RL# 36 AND HIS FIRSTBORN SON ABDON, THEN ZUR, AND KISH, AND BAAL, AND NER, AND NADAB.W5# 37 AND GEDOR, AND AHIO, AND ZECHARIAH, AND MIKLOTH.J# 38 AND MIKLOTH BEGAT SHIMEAM. AND THEY ALSO DWELT WITH THEIR BRETHREN AT( JERUSALEM, OVER AGAINST THEIR BRETHREN.J# 39 AND NER BEGAT KISH; AND KISH BEGAT SAUL; AND SAUL BEGAT JONATHAN, AND' MALCHISHUA, AND ABINADAB, AND ESHBAAL. F# 40 AND THE SON OF JONATHAN WAS MERIBBAAL: AND MERIBBAAL BEGAT MICAH.J# 41 AND THE SONS OF MICAH WERE, PITHON, AND MELECH, AND TAHREA, AND AHAZ.L# 42 AND AHAZ BEGAT JARAH; AND JARAH BEGAT ALEMETH, AND AZMAVETH, AND ZIMRI; AND ZIMRI BEGAT MOZA;J# 43 AND MOZA BEGAT BINEA; AND REPHAIAH HIS SON, ELEASAH HIS SON, AZEL HIS SON.HH# 44 AND AZEL HAD SIX SONS, WHOSE NAMES ARE THESE, AZRIKAM, BOCHERU, ANDL ISHMAEL, AND SHEARIAH, AND OBADIAH, AND HANAN: THESE WERE THE SONS OF AZEL. = CHAPTER 10 DN# 1 NOW THE PHILISTINES FOUGHT AGAINST ISRAEL; AND THE MEN OF ISRAEL FLED FROM= BEFORE THE PHILISTINES, AND FELL DOWN SLAIN IN MOUNT GILBOA.HM# 2 AND THE PHILISTINES FOLLOWED HARD AFTER SAUL, AND AFTER HIS SONS; AND THEHK PHILISTINES SLEW JONATHAN, AND ABINADAB, AND MALCHISHUA, THE SONS OF SAUL. J# 3 AND THE BATTLE WENT SORE AGAINST SAUL, AND THE ARCHERS HIT HIM, AND HE WAS WOUNDED OF THE ARCHERS.M# 4 THEN SAID SAUL TO HIS ARMOURBEARER, DRAW THY SWORD, AND THRUST ME THROUGH L THEREWITH; LEST THESE UNCIRCUMCISED COME AND ABUSE ME. BUT HIS ARMOURBEARERK WOULD NOT; FOR HE WAS SORE AFRAID. SO SAUL TOOK A SWORD, AND FELL UPON IT.OM# 5 AND WHEN HIS ARMOURBEARER SAW THAT SAUL WAS DEAD, HE FELL LIKEWISE ON THEO SWORD, AND DIED.IF# 6 SO SAUL DIED, AND HIS THREE SONS, AND ALL HIS HOUSE DIED TOGETHER.H# 7 AND WHEN ALL THE MEN OF ISRAEL THAT WERE IN THE VALLEY SAW THAT THEYL FLED, AND THAT SAUL AND HIS SONS WERE DEAD, THEN THEY FORSOOK THEIR CITIES,6 AND FLED: AND THE PHILISTINES CAME AND DWELT IN THEM.M# 8 AND IT CAME TO PASS ON THE MORROW, WHEN THE PHILISTINES CAME TO STRIP THESA SLAIN, THAT THEY FOUND SAUL AND HIS SONS FALLEN IN MOUNT GILBOA.HK# 9 AND WHEN THEY HAD STRIPPED HIM, THEY TOOK HIS HEAD, AND HIS ARMOUR, AND I SENT INTO THE LAND OF THE PHILISTINES ROUND ABOUT, TO CARRY TIDINGS UNTOE THEIR IDOLS, AND TO THE PEOPLE.I# 10 AND THEY PUT HIS ARMOUR IN THE HOUSE OF THEIR GODS, AND FASTENED HISN HEAD IN THE TEMPLE OF00k2E1D%5%T6%! ! DAGON.TI# 11 AND WHEN ALL JABESHGILEAD HEARD ALL THAT THE PHILISTINES HAD DONE TON SAUL,M# 12 THEY AROSE, ALL THE VALIANT MEN, AND TOOK AWAY THE BODY OF SAUL, AND THETM BODIES OF HIS SONS, AND BROUGHT THEM TO JABESH, AND BURIED THEIR BONES UNDERI* THE OAK IN JABESH, AND FASTED SEVEN DAYS.L# 13 SO SAUL DIED FOR HIS TRANSGRESSION WHICH HE COMMITTED AGAINST THE LORD,J EVEN AGAINST THE WORD OF THE LORD, WHICH HE KEPT NOT, AND ALSO FOR ASKING= COUNSEL OF ONE THAT HAD A FAMILIAR SPIRIT, TO ENQUIRE OF IT;DH# 14 AND ENQUIRED NOT OF THE LORD: THEREFORE HE SLEW HIM, AND TURNED THE% KINGDOM UNTO DAVID THE SON OF JESSE.T = CHAPTER 11 M# 1 THEN ALL ISRAEL GATHERED THEMSELVES TO DAVID UNTO HEBRON, SAYING, BEHOLD,  WE ARE THY BONE AND THY FLESH. I# 2 AND MOREOVER IN TIME PAST, EVEN WHEN SAUL WAS KING, THOU WAST HE THATIK LEDDEST OUT AND BROUGHTEST IN ISRAEL: AND THE LORD THY GOD SAID UNTO THEE,OI THOU SHALT FEED MY PEOPLE ISRAEL, AND THOU SHALT BE RULER OVER MY PEOPLED ISRAEL.L# 3 THEREFORE CAME ALL THE ELDERS OF ISRAEL TO THE KING TO HEBRON; AND DAVIDM MADE A COVENANT WITH THEM IN HEBRON BEFORE THE LORD; AND THEY ANOINTED DAVID ? KING OVER ISRAEL, ACCORDING TO THE WORD OF THE LORD BY SAMUEL.AI# 4 AND DAVID AND ALL ISRAEL WENT TO JERUSALEM, WHICH IS JEBUS; WHERE THEP- JEBUSITES WERE, THE INHABITANTS OF THE LAND.IK# 5 AND THE INHABITANTS OF JEBUS SAID TO DAVID, THOU SHALT NOT COME HITHER.OH NEVERTHELESS DAVID TOOK THE CASTLE OF ZION, WHICH IS THE CITY OF DAVID.L# 6 AND DAVID SAID, WHOSOEVER SMITETH THE JEBUSITES FIRST SHALL BE CHIEF ANDB CAPTAIN. SO JOAB THE SON OF ZERUIAH WENT FIRST UP, AND WAS CHIEF.G# 7 AND DAVID DWELT IN THE CASTLE; THEREFORE THEY CALLED IT THE CITY OF  DAVID.AL# 8 AND HE BUILT THE CITY ROUND ABOUT, EVEN FROM MILLO ROUND ABOUT: AND JOAB REPAIRED THE REST OF THE CITY.TK# 9 SO DAVID WAXED GREATER AND GREATER: FOR THE LORD OF HOSTS WAS WITH HIM.TC# 10 THESE ALSO ARE THE CHIEF OF THE MIGHTY MEN WHOM DAVID HAD, WHOHN STRENGTHENED THEMSELVES WITH HIM IN HIS KINGDOM, AND WITH ALL ISRAEL, TO MAKE? HIM KING, ACCORDING TO THE WORD OF THE LORD CONCERNING ISRAEL.IK# 11 AND THIS IS THE NUMBER OF THE MIGHTY MEN WHOM DAVID HAD; JASHOBEAM, ANLL HACHMONITE, THE CHIEF OF THE CAPTAINS: HE LIFTED UP HIS SPEAR AGAINST THREE" HUNDRED SLAIN BY HIM AT ONE TIME.K# 12 AND AFTER HIM WAS ELEAZAR THE SON OF DODO, THE AHOHITE, WHO WAS ONE OFO THE THREE MIGHTIES.L# 13 HE WAS WITH DAVID AT PASDAMMIM, AND THERE THE PHILISTINES WERE GATHEREDI TOGETHER TO BATTLE, WHERE WAS A PARCEL OF GROUND FULL OF BARLEY; AND THEE) PEOPLE FLED FROM BEFORE THE PHILISTINES.OK# 14 AND THEY SET THEMSELVES IN THE MIDST OF THAT PARCEL, AND DELIVERED IT,VJ AND SLEW THE PHILISTINES; AND THE LORD SAVED THEM BY A GREAT DELIVERANCE.J# 15 NOW THREE OF THE THIRTY CAPTAINS WENT DOWN TO THE ROCK TO DAVID, INTOL THE CAVE OF ADULLAM; AND THE HOST OF THE PHILISTINES ENCAMPED IN THE VALLEY OF REPHAIM.M# 16 AND DAVID WAS THEN IN THE HOLD, AND THE PHILISTINES GARRISON WAS THEN ATE BETHLEHEM.WM# 17 AND DAVID LONGED, AND SAID, OH THAT ONE WOULD GIVE ME DRINK OF THE WATERT/ OF THE WELL OF BETHLEHEM, THAT IS AT THE GATE! L# 18 AND THE THREE BRAKE THROUGH THE HOST OF THE PHILISTINES, AND DREW WATERM OUT OF THE WELL OF BETHLEHEM, THAT WAS BY THE GATE, AND TOOK IT, AND BROUGHTNM IT TO DAVID: BUT DAVID WOULD NOT DRINK OF IT, BUT POURED IT OUT TO THE LORD.HH# 19 AND SAID, MY GOD FORBID IT ME, THAT I SHOULD DO THIS THING: SHALL IM DRINK THE BLOOD OF THESE MEN THAT HAVE PUT THEIR LIVES IN JEOPARDY? FOR WITHDN THE JEOPARDY OF THEIR LIVES THEY BROUGHT IT. THEREFORE HE WOULD NOT DRINK IT.( THESE THINGS DID THESE THREE MIGHTIEST.L# 20 AND ABISHAI THE BROTHER OF JOAB, HE WAS CHIEF OF THE THREE: FOR LIFTINGK UP HIS SPEAR AGAINST THREE HUNDRED, HE SLEW THEM, AND HAD A NAME AMONG THEN THREE.DH# 21 OF THE THREE, HE WAS MORE HONOURABLE THAN THE TWO; FOR HE WAS THEIR5 CAPTAIN: HOWBEIT HE ATTAINED NOT TO THE FIRST THREE. J# 22 BENAIAH THE SON OF JEHOIADA, THE SON OF A VALIANT MAN OF KABZEEL, WHOL HAD DONE MANY ACTS; HE SLEW TWO LIONL00k2J2<%X>%+%O-%TADATADATAIKE MEN OF MOAB: ALSO HE WENT DOWN AND% SLEW A LION IN A PIT IN A SNOWY DAY. K# 23 AND HE SLEW AN EGYPTIAN, A MAN OF GREAT STATURE, FIVE CUBITS HIGH; AND K IN THE EGYPTIANS HAND WAS A SPEAR LIKE A WEAVERS BEAM; AND HE WENT DOWN TODL HIM WITH A STAFF, AND PLUCKED THE SPEAR OUT OF THE EGYPTIANS HAND, AND SLEW HIM WITH HIS OWN SPEAR.M# 24 THESE THINGS DID BENAIAH THE SON OF JEHOIADA, AND HAD THE NAME AMONG THEN THREE MIGHTIES.H# 25 BEHOLD, HE WAS HONOURABLE AMONG THE THIRTY, BUT ATTAINED NOT TO THE/ FIRST THREE: AND DAVID SET HIM OVER HIS GUARD. I# 26 ALSO THE VALIANT MEN OF THE ARMIES WERE, ASAHEL THE BROTHER OF JOAB,T& ELHANAN THE SON OF DODO OF BETHLEHEM,/# 27 SHAMMOTH THE HARORITE, HELEZ THE PELONITE, ># 28 IRA THE SON OF IKKESH THE TEKOITE, ABIEZER THE ANTOTHITE,/# 29 SIBBECAI THE HUSHATHITE, ILAI THE AHOHITE, H# 30 MAHARAI THE NETOPHATHITE, HELED THE SON OF BAANAH THE NETOPHATHITE,H# 31 ITHAI THE SON OF RIBAI OF GIBEAH, THAT PERTAINED TO THE CHILDREN OF# BENJAMIN, BENAIAH THE PIRATHONITE,F7# 32 HURAI OF THE BROOKS OF GAASH, ABIEL THE ARBATHITE, 6# 33 AZMAVETH THE BAHARUMITE, ELIAHBA THE SHAALBONITE,M# 34 THE SONS OF HASHEM THE GIZONITE, JONATHAN THE SON OF SHAGE THE HARARITE,E@# 35 AHIAM THE SON OF SACAR THE HARARITE, ELIPHAL THE SON OF UR,2# 36 HEPHER THE MECHERATHITE, AHIJAH THE PELONITE,2# 37 HEZRO THE CARMELITE, NAARAI THE SON OF EZBAI,;# 38 JOEL THE BROTHER OF NATHAN, MIBHAR THE SON OF HAGGERI,IL# 39 ZELEK THE AMMONITE, NAHARAI THE BEROTHITE, THE ARMOURBEARER OF JOAB THE SON OF ZERUIAH,(# 40 IRA THE ITHRITE, GAREB THE ITHRITE,/# 41 URIAH THE HITTITE, ZABAD THE SON OF AHLAI, K# 42 ADINA THE SON OF SHIZA THE REUBENITE, A CAPTAIN OF THE REUBENITES, AND  THIRTY WITH HIM,5=# 43 HANAN THE SON OF MAACHAH, AND JOSHAPHAT THE MITHNITE, IT D# 44 UZZIA THE ASHTERATHITE, SHAMA AND JEHIEL THE SONS OF HOTHAN THE AROERITE,A# 45 JEDIAEL THE SON OF SHIMRI, AND JOHA HIS BROTHER, THE TIZITE, L# 46 ELIEL THE MAHAVITE, AND JERIBAI, AND JOSHAVIAH, THE SONS OF ELNAAM, AND ITHMAH THE MOABITE,/# 47 ELIEL, AND OBED, AND JASIEL THE MESOBAITE., = CHAPTER 12 EN# 1 NOW THESE ARE THEY THAT CAME TO DAVID TO ZIKLAG, WHILE HE YET KEPT HIMSELFK CLOSE BECAUSE OF SAUL THE SON OF KISH: AND THEY WERE AMONG THE MIGHTY MEN,A HELPERS OF THE WAR.M# 2 THEY WERE ARMED WITH BOWS, AND COULD USE BOTH THE RIGHT HAND AND THE LEFTHN IN HURLING STONES AND SHOOTING ARROWS OUT OF A BOW, EVEN OF SAULS BRETHREN OF BENJAMIN.J# 3 THE CHIEF WAS AHIEZER, THEN JOASH, THE SONS OF SHEMAAH THE GIBEATHITE;H AND JEZIEL, AND PELET, THE SONS OF AZMAVETH; AND BERACHAH, AND JEHU THE ANTOTHITE. J# 4 AND ISMAIAH THE GIBEONITE, A MIGHTY MAN AMONG THE THIRTY, AND OVER THEN THIRTY; AND JEREMIAH, AND JAHAZIEL, AND JOHANAN, AND JOSABAD THE GEDERATHITE,H# 5 ELUZAI, AND JERIMOTH, AND BEALIAH, AND SHEMARIAH, AND SHEPHATIAH THE HARUPHITE,AD# 6 ELKANAH, AND JESIAH, AND AZAREEL, AND JOEZER, AND JASHOBEAM, THE KORHITES,;# 7 AND JOELAH, AND ZEBADIAH, THE SONS OF JEROHAM OF GEDOR.,M# 8 AND OF THE GADITES THERE SEPARATED THEMSELVES UNTO DAVID INTO THE HOLD TOEK THE WILDERNESS MEN OF MIGHT, AND MEN OF WAR FIT FOR THE BATTLE, THAT COULDAN HANDLE SHIELD AND BUCKLER, WHOSE FACES WERE LIKE THE FACES OF LIONS, AND WERE) AS SWIFT AS THE ROES UPON THE MOUNTAINS;8# 9 EZER THE FIRST, OBADIAH THE SECOND, ELIAB THE THIRD,/# 10 MISHMANNAH THE FOURTH, JEREMIAH THE FIFTH,S(# 11 ATTAI THE SIXTH, ELIEL THE SEVENTH,+# 12 JOHANAN THE EIGHTH, ELZABAD THE NINTH,I0# 13 JEREMIAH THE TENTH, MACHBANAI THE ELEVENTH.J# 14 THESE WERE OF THE SONS OF GAD, CAPTAINS OF THE HOST: ONE OF THE LEAST7 WAS OVER AN HUNDRED, AND THE GREATEST OVER A THOUSAND.AI# 15 THESE ARE THEY THAT WENT OVER JORDAN IN THE FIRST MONTH, WHEN IT HADON OVERFLOWN ALL HIS BANKS; AND THEY PUT TO FLIGHT ALL THEM OF THE VALLEYS, BOTH& TOWARD THE EAST, AND TOWARD THE WEST.J# 16 AND THERE CAME OF THE CHILDREN OF BENJAMIN AND JUDAH TO THE HOLD UNTO DAVID.,L# 17 AND DAVID WENT OUT TO MEET THEM, AND ANSWERED AND SAID UNTO THEM, IF YEM BE COME PEACEABLY UNTO ME TO HELP ME, MINE HEART 00k2E1D%5%T6%! !SHALL BE KNIT UNTO YOU: BUTNM IF YE BE COME TO BETRAY ME TO MINE ENEMIES, SEEING THERE IS NO WRONG IN MINET; HANDS, THE GOD OF OUR FATHERS LOOK THEREON, AND REBUKE IT.IL# 18 THEN THE SPIRIT CAME UPON AMASAI, WHO WAS CHIEF OF THE CAPTAINS, AND HEL SAID, THINE ARE WE, DAVID, AND ON THY SIDE, THOU SON OF JESSE: PEACE, PEACEL BE UNTO THEE, AND PEACE BE TO THINE HELPERS; FOR THY GOD HELPETH THEE. THEN9 DAVID RECEIVED THEM, AND MADE THEM CAPTAINS OF THE BAND.BD# 19 AND THERE FELL SOME OF MANASSEH TO DAVID, WHEN HE CAME WITH THEL PHILISTINES AGAINST SAUL TO BATTLE: BUT THEY HELPED THEM NOT: FOR THE LORDSN OF THE PHILISTINES UPON ADVISEMENT SENT HIM AWAY, SAYING, HE WILL FALL TO HIS* MASTER SAUL TO THE JEOPARDY OF OUR HEADS.M# 20 AS HE WENT TO ZIKLAG, THERE FELL TO HIM OF MANASSEH, ADNAH, AND JOZABAD, K AND JEDIAEL, AND MICHAEL, AND JOZABAD, AND ELIHU, AND ZILTHAI, CAPTAINS OF % THE THOUSANDS THAT WERE OF MANASSEH. L# 21 AND THEY HELPED DAVID AGAINST THE BAND OF THE ROVERS: FOR THEY WERE ALL5 MIGHTY MEN OF VALOUR, AND WERE CAPTAINS IN THE HOST.TJ# 22 FOR AT THAT TIME DAY BY DAY THERE CAME TO DAVID TO HELP HIM, UNTIL IT( WAS A GREAT HOST, LIKE THE HOST OF GOD.M# 23 AND THESE ARE THE NUMBERS OF THE BANDS THAT WERE READY ARMED TO THE WAR, N AND CAME TO DAVID TO HEBRON, TO TURN THE KINGDOM OF SAUL TO HIM, ACCORDING TO THE WORD OF THE LORD.K# 24 THE CHILDREN OF JUDAH THAT BARE SHIELD AND SPEAR WERE SIX THOUSAND AND' EIGHT HUNDRED, READY ARMED TO THE WAR.NG# 25 OF THE CHILDREN OF SIMEON, MIGHTY MEN OF VALOUR FOR THE WAR, SEVENI THOUSAND AND ONE HUNDRED.;# 26 OF THE CHILDREN OF LEVI FOUR THOUSAND AND SIX HUNDRED. J# 27 AND JEHOIADA WAS THE LEADER OF THE AARONITES, AND WITH HIM WERE THREE THOUSAND AND SEVEN HUNDRED;M# 28 AND ZADOK, A YOUNG MAN MIGHTY OF VALOUR, AND OF HIS FATHERS HOUSE TWENTYO AND TWO CAPTAINS.J# 29 AND OF THE CHILDREN OF BENJAMIN, THE KINDRED OF SAUL, THREE THOUSAND:I FOR HITHERTO THE GREATEST PART OF THEM HAD KEPT THE WARD OF THE HOUSE OF  SAUL.M# 30 AND OF THE CHILDREN OF EPHRAIM TWENTY THOUSAND AND EIGHT HUNDRED, MIGHTYD= MEN OF VALOUR, FAMOUS THROUGHOUT THE HOUSE OF THEIR FATHERS.DD# 31 AND OF THE HALF TRIBE OF MANASSEH EIGHTEEN THOUSAND, WHICH WERE0 EXPRESSED BY NAME, TO COME AND MAKE DAVID KING.K# 32 AND OF THE CHILDREN OF ISSACHAR, WHICH WERE MEN THAT HAD UNDERSTANDINGOJ OF THE TIMES, TO KNOW WHAT ISRAEL OUGHT TO DO; THE HEADS OF THEM WERE TWO; HUNDRED; AND ALL THEIR BRETHREN WERE AT THEIR COMMANDMENT.TF# 33 OF ZEBULUN, SUCH AS WENT FORTH TO BATTLE, EXPERT IN WAR, WITH ALLL INSTRUMENTS OF WAR, FIFTY THOUSAND, WHICH COULD KEEP RANK: THEY WERE NOT OF DOUBLE HEART.M# 34 AND OF NAPHTALI A THOUSAND CAPTAINS, AND WITH THEM WITH SHIELD AND SPEARE THIRTY AND SEVEN THOUSAND. G# 35 AND OF THE DANITES EXPERT IN WAR TWENTY AND EIGHT THOUSAND AND SIXN HUNDRED.NE# 36 AND OF ASHER, SUCH AS WENT FORTH TO BATTLE, EXPERT IN WAR, FORTY THOUSAND.M# 37 AND ON THE OTHER SIDE OF JORDAN, OF THE REUBENITES, AND THE GADITES, ANDUM OF THE HALF TRIBE OF MANASSEH, WITH ALL MANNER OF INSTRUMENTS OF WAR FOR THE,( BATTLE, AN HUNDRED AND TWENTY THOUSAND.M# 38 ALL THESE MEN OF WAR, THAT COULD KEEP RANK, CAME WITH A PERFECT HEART TOIL HEBRON, TO MAKE DAVID KING OVER ALL ISRAEL: AND ALL THE REST ALSO OF ISRAEL& WERE OF ONE HEART TO MAKE DAVID KING.H# 39 AND THERE THEY WERE WITH DAVID THREE DAYS, EATING AND DRINKING: FOR& THEIR BRETHREN HAD PREPARED FOR THEM.J# 40 MOREOVER THEY THAT WERE NIGH THEM, EVEN UNTO ISSACHAR AND ZEBULUN ANDL NAPHTALI, BROUGHT BREAD ON ASSES, AND ON CAMELS, AND ON MULES, AND ON OXEN,N AND MEAT, MEAL, CAKES OF FIGS, AND BUNCHES OF RAISINS, AND WINE, AND OIL, AND9 OXEN, AND SHEEP ABUNDANTLY: FOR THERE WAS JOY IN ISRAEL. = CHAPTER 13 M# 1 AND DAVID CONSULTED WITH THE CAPTAINS OF THOUSANDS AND HUNDREDS, AND WITHV EVERY LEADER.L# 2 AND DAVID SAID UNTO ALL THE CONGREGATION OF ISRAEL, IF IT SEEM GOOD UNTON YOU, AND THAT IT BE OF THE LORD OUR GOD, LET US SEND ABROAD UNTO OUR BRETHRENL EVERY WHERE, THAT ARE LEFT IN ALL THE LAND OF ISRAEL, AND WITH THEM A00k2J2<%X>%+%O-%TADATADATALSO TOM THE PRIESTS AND LEVITES WHICH ARE IN THEIR CITIES AND SUBURBS, THAT THEY MAYS GATHER THEMSELVES UNTO US:EK# 3 AND LET US BRING AGAIN THE ARK OF OUR GOD TO US: FOR WE ENQUIRED NOT ATN IT IN THE DAYS OF SAUL.J# 4 AND ALL THE CONGREGATION SAID THAT THEY WOULD DO SO: FOR THE THING WAS% RIGHT IN THE EYES OF ALL THE PEOPLE.AM# 5 SO DAVID GATHERED ALL ISRAEL TOGETHER, FROM SHIHOR OF EGYPT EVEN UNTO THE @ ENTERING OF HEMATH, TO BRING THE ARK OF GOD FROM KIRJATHJEARIM.L# 6 AND DAVID WENT UP, AND ALL ISRAEL, TO BAALAH, THAT IS, TO KIRJATHJEARIM,J WHICH BELONGED TO JUDAH, TO BRING UP THENCE THE ARK OF GOD THE LORD, THAT< DWELLETH BETWEEN THE CHERUBIMS, WHOSE NAME IS CALLED ON IT.E# 7 AND THEY CARRIED THE ARK OF GOD IN A NEW CART OUT OF THE HOUSE OFH, ABINADAB: AND UZZA AND AHIO DRAVE THE CART.M# 8 AND DAVID AND ALL ISRAEL PLAYED BEFORE GOD WITH ALL THEIR MIGHT, AND WITHOJ SINGING, AND WITH HARPS, AND WITH PSALTERIES, AND WITH TIMBRELS, AND WITH CYMBALS, AND WITH TRUMPETS.L# 9 AND WHEN THEY CAME UNTO THE THRESHINGFLOOR OF CHIDON, UZZA PUT FORTH HIS- HAND TO HOLD THE ARK; FOR THE OXEN STUMBLED.OJ# 10 AND THE ANGER OF THE LORD WAS KINDLED AGAINST UZZA, AND HE SMOTE HIM,B BECAUSE HE PUT HIS HAND TO THE ARK: AND THERE HE DIED BEFORE GOD.L# 11 AND DAVID WAS DISPLEASED, BECAUSE THE LORD HAD MADE A BREACH UPON UZZA:6 WHEREFORE THAT PLACE IS CALLED PEREZUZZA TO THIS DAY.L# 12 AND DAVID WAS AFRAID OF GOD THAT DAY, SAYING, HOW SHALL I BRING THE ARK OF GOD HOME TO ME?TK# 13 SO DAVID BROUGHT NOT THE ARK HOME TO HIMSELF TO THE CITY OF DAVID, BUTF9 CARRIED IT ASIDE INTO THE HOUSE OF OBEDEDOM THE GITTITE. I# 14 AND THE ARK OF GOD REMAINED WITH THE FAMILY OF OBEDEDOM IN HIS HOUSEBJ THREE MONTHS. AND THE LORD BLESSED THE HOUSE OF OBEDEDOM, AND ALL THAT HE HAD.S = CHAPTER 14 CJ# 1 NOW HIRAM KING OF TYRE SENT MESSENGERS TO DAVID, AND TIMBER OF CEDARS,3 WITH MASONS AND CARPENTERS, TO BUILD HIM AN HOUSE.GM# 2 AND DAVID PERCEIVED THAT THE LORD HAD CONFIRMED HIM KING OVER ISRAEL, FORAA HIS KINGDOM WAS LIFTED UP ON HIGH, BECAUSE OF HIS PEOPLE ISRAEL.I# 3 AND DAVID TOOK MORE WIVES AT JERUSALEM: AND DAVID BEGAT MORE SONS ANDK DAUGHTERS.NF# 4 NOW THESE ARE THE NAMES OF HIS CHILDREN WHICH HE HAD IN JERUSALEM;* SHAMMUA, AND SHOBAB, NATHAN, AND SOLOMON,(# 5 AND IBHAR, AND ELISHUA, AND ELPALET,&# 6 AND NOGAH, AND NEPHEG, AND JAPHIA,.# 7 AND ELISHAMA, AND BEELIADA, AND ELIPHALET.H# 8 AND WHEN THE PHILISTINES HEARD THAT DAVID WAS ANOINTED KING OVER ALLN ISRAEL, ALL THE PHILISTINES WENT UP TO SEEK DAVID. AND DAVID HEARD OF IT, AND WENT OUT AGAINST THEM. L# 9 AND THE PHILISTINES CAME AND SPREAD THEMSELVES IN THE VALLEY OF REPHAIM.A# 10 AND DAVID ENQUIRED OF GOD, SAYING, SHALL I GO UP AGAINST THEIJ PHILISTINES? AND WILT THOU DELIVER THEM INTO MINE HAND? AND THE LORD SAID: UNTO HIM, GO UP; FOR I WILL DELIVER THEM INTO THINE HAND.K# 11 SO THEY CAME UP TO BAALPERAZIM; AND DAVID SMOTE THEM THERE. THEN DAVIDNJ SAID, GOD HATH BROKEN IN UPON MINE ENEMIES BY MINE HAND LIKE THE BREAKINGK FORTH OF WATERS: THEREFORE THEY CALLED THE NAME OF THAT PLACE BAALPERAZIM.K# 12 AND WHEN THEY HAD LEFT THEIR GODS THERE, DAVID GAVE A COMMANDMENT, AND THEY WERE BURNED WITH FIRE.J# 13 AND THE PHILISTINES YET AGAIN SPREAD THEMSELVES ABROAD IN THE VALLEY.L# 14 THEREFORE DAVID ENQUIRED AGAIN OF GOD; AND GOD SAID UNTO HIM, GO NOT UPN AFTER THEM; TURN AWAY FROM THEM, AND COME UPON THEM OVER AGAINST THE MULBERRY TREES. J# 15 AND IT SHALL BE, WHEN THOU SHALT HEAR A SOUND OF GOING IN THE TOPS OFK THE MULBERRY TREES, THAT THEN THOU SHALT GO OUT TO BATTLE: FOR GOD IS GONER8 FORTH BEFORE THEE TO SMITE THE HOST OF THE PHILISTINES.M# 16 DAVID THEREFORE DID AS GOD COMMANDED HIM: AND THEY SMOTE THE HOST OF THEN' PHILISTINES FROM GIBEON EVEN TO GAZER.TL# 17 AND THE FAME OF DAVID WENT OUT INTO ALL LANDS; AND THE LORD BROUGHT THE FEAR OF HIM UPON ALL NATIONS. = CHAPTER 15 NL# 1 AND DAVID MADE HIM HOUSES IN THE CITY OF DAVID, AND PREPARED A PLACE FOR+ THE ARK OF GOD, AND PITCHED FOR IT A TENT.PL# 2 THEN DAVID SAID, NONE OUGH00k2E1D%5%T6%! !T TO CARRY THE ARK OF GOD BUT THE LEVITES: FORL THEM HATH THE LORD CHOSEN TO CARRY THE ARK OF GOD, AND TO MINISTER UNTO HIM FOR EVER.L# 3 AND DAVID GATHERED ALL ISRAEL TOGETHER TO JERUSALEM, TO BRING UP THE ARK: OF THE LORD UNTO HIS PLACE, WHICH HE HAD PREPARED FOR IT.?# 4 AND DAVID ASSEMBLED THE CHILDREN OF AARON, AND THE LEVITES:.K# 5 OF THE SONS OF KOHATH; URIEL THE CHIEF, AND HIS BRETHREN AN HUNDRED ANDP TWENTY:M# 6 OF THE SONS OF MERARI; ASAIAH THE CHIEF, AND HIS BRETHREN TWO HUNDRED AND  TWENTY:J# 7 OF THE SONS OF GERSHOM; JOEL THE CHIEF AND HIS BRETHREN AN HUNDRED AND THIRTY:F# 8 OF THE SONS OF ELIZAPHAN; SHEMAIAH THE CHIEF, AND HIS BRETHREN TWO HUNDRED:EG# 9 OF THE SONS OF HEBRON; ELIEL THE CHIEF, AND HIS BRETHREN FOURSCORE:HL# 10 OF THE SONS OF UZZIEL; AMMINADAB THE CHIEF, AND HIS BRETHREN AN HUNDRED AND TWELVE.E# 11 AND DAVID CALLED FOR ZADOK AND ABIATHAR THE PRIESTS, AND FOR THE J LEVITES, FOR URIEL, ASAIAH, AND JOEL, SHEMAIAH, AND ELIEL, AND AMMINADAB,H# 12 AND SAID UNTO THEM, YE ARE THE CHIEF OF THE FATHERS OF THE LEVITES:M SANCTIFY YOURSELVES, BOTH YE AND YOUR BRETHREN, THAT YE MAY BRING UP THE ARKHF OF THE LORD GOD OF ISRAEL UNTO THE PLACE THAT I HAVE PREPARED FOR IT.K# 13 FOR BECAUSE YE DID IT NOT AT THE FIRST, THE LORD OUR GOD MADE A BREACHM9 UPON US, FOR THAT WE SOUGHT HIM NOT AFTER THE DUE ORDER..M# 14 SO THE PRIESTS AND THE LEVITES SANCTIFIED THEMSELVES TO BRING UP THE ARKT OF THE LORD GOD OF ISRAEL.EM# 15 AND THE CHILDREN OF THE LEVITES BARE THE ARK OF GOD UPON THEIR SHOULDERSEI WITH THE STAVES THEREON, AS MOSES COMMANDED ACCORDING TO THE WORD OF THEE LORD.M# 16 AND DAVID SPAKE TO THE CHIEF OF THE LEVITES TO APPOINT THEIR BRETHREN TOHM BE THE SINGERS WITH INSTRUMENTS OF MUSICK, PSALTERIES AND HARPS AND CYMBALS, , SOUNDING, BY LIFTING UP THE VOICE WITH JOY.I# 17 SO THE LEVITES APPOINTED HEMAN THE SON OF JOEL; AND OF HIS BRETHREN,IL ASAPH THE SON OF BERECHIAH; AND OF THE SONS OF MERARI THEIR BRETHREN, ETHAN THE SON OF KUSHAIAH;TK# 18 AND WITH THEM THEIR BRETHREN OF THE SECOND DEGREE, ZECHARIAH, BEN, ANDSH JAAZIEL, AND SHEMIRAMOTH, AND JEHIEL, AND UNNI, ELIAB, AND BENAIAH, ANDI MAASEIAH, AND MATTITHIAH, AND ELIPHELEH, AND MIKNEIAH, AND OBEDEDOM, ANDI JEIEL, THE PORTERS.J# 19 SO THE SINGERS, HEMAN, ASAPH, AND ETHAN, WERE APPOINTED TO SOUND WITH CYMBALS OF BRASS;I# 20 AND ZECHARIAH, AND AZIEL, AND SHEMIRAMOTH, AND JEHIEL, AND UNNI, ANDE> ELIAB, AND MAASEIAH, AND BENAIAH, WITH PSALTERIES ON ALAMOTH;J# 21 AND MATTITHIAH, AND ELIPHELEH, AND MIKNEIAH, AND OBEDEDOM, AND JEIEL,3 AND AZAZIAH, WITH HARPS ON THE SHEMINITH TO EXCEL.TK# 22 AND CHENANIAH, CHIEF OF THE LEVITES, WAS FOR SONG: HE INSTRUCTED ABOUTA" THE SONG, BECAUSE HE WAS SKILFUL.<# 23 AND BERECHIAH AND ELKANAH WERE DOORKEEPERS FOR THE ARK.C# 24 AND SHEBANIAH, AND JEHOSHAPHAT, AND NETHANEEL, AND AMASAI, AND M ZECHARIAH, AND BENAIAH, AND ELIEZER, THE PRIESTS, DID BLOW WITH THE TRUMPETSBM BEFORE THE ARK OF GOD: AND OBEDEDOM AND JEHIAH WERE DOORKEEPERS FOR THE ARK.AI# 25 SO DAVID, AND THE ELDERS OF ISRAEL, AND THE CAPTAINS OVER THOUSANDS,RI WENT TO BRING UP THE ARK OF THE COVENANT OF THE LORD OUT OF THE HOUSE OFA OBEDEDOM WITH JOY.CJ# 26 AND IT CAME TO PASS, WHEN GOD HELPED THE LEVITES THAT BARE THE ARK OFK THE COVENANT OF THE LORD, THAT THEY OFFERED SEVEN BULLOCKS AND SEVEN RAMS.TI# 27 AND DAVID WAS CLOTHED WITH A ROBE OF FINE LINEN, AND ALL THE LEVITES,N THAT BARE THE ARK, AND THE SINGERS, AND CHENANIAH THE MASTER OF THE SONG WITH8 THE SINGERS: DAVID ALSO HAD UPON HIM AN EPHOD OF LINEN.H# 28 THUS ALL ISRAEL BROUGHT UP THE ARK OF THE COVENANT OF THE LORD WITHM SHOUTING, AND WITH SOUND OF THE CORNET, AND WITH TRUMPETS, AND WITH CYMBALS,D* MAKING A NOISE WITH PSALTERIES AND HARPS.L# 29 AND IT CAME TO PASS, AS THE ARK OF THE COVENANT OF THE LORD CAME TO THEM CITY OF DAVID, THAT MICHAL, THE DAUGHTER OF SAUL LOOKING OUT AT A WINDOW SAWNC KING DAVID DANCING AND PLAYING: AND SHE DESPISED HIM IN HER HEART.H = CHAPTER 16 TL# 1 SO THEY BROUGHT THE ARK OF GOD, AND SET IT IN THE MIDST OF T00k2J2<%X>%+%O-%TADATADATAHE TENT THATF DAVID HAD PITCHED FOR IT: AND THEY OFFERED BURNT SACRIFICES AND PEACE OFFERINGS BEFORE GOD.J# 2 AND WHEN DAVID HAD MADE AN END OF OFFERING THE BURNT OFFERINGS AND THE@ PEACE OFFERINGS, HE BLESSED THE PEOPLE IN THE NAME OF THE LORD.K# 3 AND HE DEALT TO EVERY ONE OF ISRAEL, BOTH MAN AND WOMAN, TO EVERY ONE AS@ LOAF OF BREAD, AND A GOOD PIECE OF FLESH, AND A FLAGON OF WINE.M# 4 AND HE APPOINTED CERTAIN OF THE LEVITES TO MINISTER BEFORE THE ARK OF THERE LORD, AND TO RECORD, AND TO THANK AND PRAISE THE LORD GOD OF ISRAEL:FK# 5 ASAPH THE CHIEF, AND NEXT TO HIM ZECHARIAH, JEIEL, AND SHEMIRAMOTH, AND M JEHIEL, AND MATTITHIAH, AND ELIAB, AND BENAIAH, AND OBEDEDOM: AND JEIEL WITHE@ PSALTERIES AND WITH HARPS; BUT ASAPH MADE A SOUND WITH CYMBALS;J# 6 BENAIAH ALSO AND JAHAZIEL THE PRIESTS WITH TRUMPETS CONTINUALLY BEFORE THE ARK OF THE COVENANT OF GOD.L# 7 THEN ON THAT DAY DAVID DELIVERED FIRST THIS PSALM TO THANK THE LORD INTO$ THE HAND OF ASAPH AND HIS BRETHREN.M# 8 GIVE THANKS UNTO THE LORD, CALL UPON HIS NAME, MAKE KNOWN HIS DEEDS AMONGH THE PEOPLE.K# 9 SING UNTO HIM, SING PSALMS UNTO HIM, TALK YE OF ALL HIS WONDROUS WORKS.EK# 10 GLORY YE IN HIS HOLY NAME: LET THE HEART OF THEM REJOICE THAT SEEK THE  LORD.?# 11 SEEK THE LORD AND HIS STRENGTH, SEEK HIS FACE CONTINUALLY.RJ# 12 REMEMBER HIS MARVELLOUS WORKS THAT HE HATH DONE, HIS WONDERS, AND THE JUDGMENTS OF HIS MOUTH;L# 13 O YE SEED OF ISRAEL HIS SERVANT, YE CHILDREN OF JACOB, HIS CHOSEN ONES.@# 14 HE IS THE LORD OUR GOD; HIS JUDGMENTS ARE IN ALL THE EARTH.K# 15 BE YE MINDFUL ALWAYS OF HIS COVENANT; THE WORD WHICH HE COMMANDED TO A, THOUSAND GENERATIONS;J# 16 EVEN OF THE COVENANT WHICH HE MADE WITH ABRAHAM, AND OF HIS OATH UNTO ISAAC; I# 17 AND HATH CONFIRMED THE SAME TO JACOB FOR A LAW, AND TO ISRAEL FOR ANY EVERLASTING COVENANT,F# 18 SAYING, UNTO THEE WILL I GIVE THE LAND OF CANAAN, THE LOT OF YOUR INHERITANCE;O;# 19 WHEN YE WERE BUT FEW, EVEN A FEW, AND STRANGERS IN IT.SF# 20 AND WHEN THEY WENT FROM NATION TO NATION, AND FROM ONE KINGDOM TO ANOTHER PEOPLE;J# 21 HE SUFFERED NO MAN TO DO THEM WRONG: YEA, HE REPROVED KINGS FOR THEIR SAKES,;A# 22 SAYING, TOUCH NOT MINE ANOINTED, AND DO MY PROPHETS NO HARM.OF# 23 SING UNTO THE LORD, ALL THE EARTH; SHEW FORTH FROM DAY TO DAY HIS SALVATION.LH# 24 DECLARE HIS GLORY AMONG THE HEATHEN; HIS MARVELLOUS WORKS AMONG ALL NATIONS.AG# 25 FOR GREAT IS THE LORD, AND GREATLY TO BE PRAISED: HE ALSO IS TO BE, FEARED ABOVE ALL GODS. M# 26 FOR ALL THE GODS OF THE PEOPLE ARE IDOLS: BUT THE LORD MADE THE HEAVENS.PK# 27 GLORY AND HONOUR ARE IN HIS PRESENCE; STRENGTH AND GLADNESS ARE IN HIST PLACE.KL# 28 GIVE UNTO THE LORD, YE KINDREDS OF THE PEOPLE, GIVE UNTO THE LORD GLORY AND STRENGTH.K# 29 GIVE UNTO THE LORD THE GLORY DUE UNTO HIS NAME: BRING AN OFFERING, ANDE= COME BEFORE HIM: WORSHIP THE LORD IN THE BEAUTY OF HOLINESS.NL# 30 FEAR BEFORE HIM, ALL THE EARTH: THE WORLD ALSO SHALL BE STABLE, THAT IT BE NOT MOVED.H# 31 LET THE HEAVENS BE GLAD, AND LET THE EARTH REJOICE: AND LET MEN SAY& AMONG THE NATIONS, THE LORD REIGNETH.K# 32 LET THE SEA ROAR, AND THE FULNESS THEREOF: LET THE FIELDS REJOICE, ANDV ALL THAT IS THEREIN.DK# 33 THEN SHALL THE TREES OF THE WOOD SING OUT AT THE PRESENCE OF THE LORD,T& BECAUSE HE COMETH TO JUDGE THE EARTH.L# 34 O GIVE THANKS UNTO THE LORD; FOR HE IS GOOD; FOR HIS MERCY ENDURETH FOR EVER.M# 35 AND SAY YE, SAVE US, O GOD OF OUR SALVATION, AND GATHER US TOGETHER, ANDBK DELIVER US FROM THE HEATHEN, THAT WE MAY GIVE THANKS TO THY HOLY NAME, ANDT GLORY IN THY PRAISE.TL# 36 BLESSED BE THE LORD GOD OF ISRAEL FOR EVER AND EVER. AND ALL THE PEOPLE" SAID, AMEN, AND PRAISED THE LORD.J# 37 SO HE LEFT THERE BEFORE THE ARK OF THE COVENANT OF THE LORD ASAPH ANDI HIS BRETHREN, TO MINISTER BEFORE THE ARK CONTINUALLY, AS EVERY DAYS WORKU REQUIRED:J# 38 AND OBEDEDOM WITH THEIR BRETHREN, THREESCORE AND EIGHT; OBEDEDOM ALSO- THE SON OF JEDUTHUN AND HOSAH TO BE PORTERS:HC# 39 AND ZADOK THE PRIEST, AND HIS BRETHREN THE PRIESTS, BEFORE THEY= T00k2E1D%5%T6%! !ABERNACLE OF THE LORD IN THE HIGH PLACE THAT WAS AT GIBEON,OG# 40 TO OFFER BURNT OFFERINGS UNTO THE LORD UPON THE ALTAR OF THE BURNTPM OFFERING CONTINUALLY MORNING AND EVENING, AND TO DO ACCORDING TO ALL THAT ISO; WRITTEN IN THE LAW OF THE LORD, WHICH HE COMMANDED ISRAEL;NI# 41 AND WITH THEM HEMAN AND JEDUTHUN, AND THE REST THAT WERE CHOSEN, WHOEF WERE EXPRESSED BY NAME, TO GIVE THANKS TO THE LORD, BECAUSE HIS MERCY ENDURETH FOR EVER;AI# 42 AND WITH THEM HEMAN AND JEDUTHUN WITH TRUMPETS AND CYMBALS FOR THOSE L THAT SHOULD MAKE A SOUND, AND WITH MUSICAL INSTRUMENTS OF GOD. AND THE SONS OF JEDUTHUN WERE PORTERS.K# 43 AND ALL THE PEOPLE DEPARTED EVERY MAN TO HIS HOUSE: AND DAVID RETURNEDR TO BLESS HIS HOUSE. = CHAPTER 17 M# 1 NOW IT CAME TO PASS, AS DAVID SAT IN HIS HOUSE, THAT DAVID SAID TO NATHANTL THE PROPHET, LO, I DWELL IN AN HOUSE OF CEDARS, BUT THE ARK OF THE COVENANT& OF THE LORD REMAINETH UNDER CURTAINS.J# 2 THEN NATHAN SAID UNTO DAVID, DO ALL THAT IS IN THINE HEART; FOR GOD IS WITH THEE.SL# 3 AND IT CAME TO PASS THE SAME NIGHT, THAT THE WORD OF GOD CAME TO NATHAN, SAYING,K# 4 GO AND TELL DAVID MY SERVANT, THUS SAITH THE LORD, THOU SHALT NOT BUILD: ME AN HOUSE TO DWELL IN:LK# 5 FOR I HAVE NOT DWELT IN AN HOUSE SINCE THE DAY THAT I BROUGHT UP ISRAELHK UNTO THIS DAY; BUT HAVE GONE FROM TENT TO TENT, AND FROM ONE TABERNACLE TOD ANOTHER.EK# 6 WHERESOEVER I HAVE WALKED WITH ALL ISRAEL, SPAKE I A WORD TO ANY OF THE N JUDGES OF ISRAEL, WHOM I COMMANDED TO FEED MY PEOPLE, SAYING, WHY HAVE YE NOT BUILT ME AN HOUSE OF CEDARS?TK# 7 NOW THEREFORE THUS SHALT THOU SAY UNTO MY SERVANT DAVID, THUS SAITH THERN LORD OF HOSTS, I TOOK THEE FROM THE SHEEPCOTE, EVEN FROM FOLLOWING THE SHEEP,4 THAT THOU SHOULDEST BE RULER OVER MY PEOPLE ISRAEL:J# 8 AND I HAVE BEEN WITH THEE WHITHERSOEVER THOU HAST WALKED, AND HAVE CUTK OFF ALL THINE ENEMIES FROM BEFORE THEE, AND HAVE MADE THEE A NAME LIKE THER- NAME OF THE GREAT MEN THAT ARE IN THE EARTH.IM# 9 ALSO I WILL ORDAIN A PLACE FOR MY PEOPLE ISRAEL, AND WILL PLANT THEM, ANDNK THEY SHALL DWELL IN THEIR PLACE, AND SHALL BE MOVED NO MORE; NEITHER SHALLIE THE CHILDREN OF WICKEDNESS WASTE THEM ANY MORE, AS AT THE BEGINNING,NL# 10 AND SINCE THE TIME THAT I COMMANDED JUDGES TO BE OVER MY PEOPLE ISRAEL.K MOREOVER I WILL SUBDUE ALL THINE ENEMIES. FURTHERMORE I TELL THEE THAT THET LORD WILL BUILD THEE AN HOUSE.OM# 11 AND IT SHALL COME TO PASS, WHEN THY DAYS BE EXPIRED THAT THOU MUST GO TONN BE WITH THY FATHERS, THAT I WILL RAISE UP THY SEED AFTER THEE, WHICH SHALL BE/ OF THY SONS; AND I WILL ESTABLISH HIS KINGDOM.NI# 12 HE SHALL BUILD ME AN HOUSE, AND I WILL STABLISH HIS THRONE FOR EVER. I# 13 I WILL BE HIS FATHER, AND HE SHALL BE MY SON: AND I WILL NOT TAKE MYDA MERCY AWAY FROM HIM, AS I TOOK IT FROM HIM THAT WAS BEFORE THEE: L# 14 BUT I WILL SETTLE HIM IN MINE HOUSE AND IN MY KINGDOM FOR EVER: AND HIS* THRONE SHALL BE ESTABLISHED FOR EVERMORE.K# 15 ACCORDING TO ALL THESE WORDS, AND ACCORDING TO ALL THIS VISION, SO DIDA NATHAN SPEAK UNTO DAVID. K# 16 AND DAVID THE KING CAME AND SAT BEFORE THE LORD, AND SAID, WHO AM I, OLF LORD GOD, AND WHAT IS MINE HOUSE, THAT THOU HAST BROUGHT ME HITHERTO?L# 17 AND YET THIS WAS A SMALL THING IN THINE EYES, O GOD; FOR THOU HAST ALSOM SPOKEN OF THY SERVANTS HOUSE FOR A GREAT WHILE TO COME, AND HAST REGARDED MEE= ACCORDING TO THE ESTATE OF A MAN OF HIGH DEGREE, O LORD GOD. I# 18 WHAT CAN DAVID SPEAK MORE TO THEE FOR THE HONOUR OF THY SERVANT? FORA THOU KNOWEST THY SERVANT.J# 19 O LORD, FOR THY SERVANTS SAKE, AND ACCORDING TO THINE OWN HEART, HASTF THOU DONE ALL THIS GREATNESS, IN MAKING KNOWN ALL THESE GREAT THINGS.K# 20 O LORD, THERE IS NONE LIKE THEE, NEITHER IS THERE ANY GOD BESIDE THEE,N3 ACCORDING TO ALL THAT WE HAVE HEARD WITH OUR EARS.YI# 21 AND WHAT ONE NATION IN THE EARTH IS LIKE THY PEOPLE ISRAEL, WHOM GODGJ WENT TO REDEEM TO BE HIS OWN PEOPLE, TO MAKE THEE A NAME OF GREATNESS ANDK TERRIBLENESS, BY DRIVING OUT NATIONS FROM BEFORE THY PEOPLE WHOM THOU HASTN REDEEMED OUT OF EGYPT?SI# 22 F00k2J2<%X>%+%O-%TADATADATAOR THY PEOPLE ISRAEL DIDST THOU MAKE THINE OWN PEOPLE FOR EVER; ANDR THOU, LORD, BECAMEST THEIR GOD.L# 23 THEREFORE NOW, LORD, LET THE THING THAT THOU HAST SPOKEN CONCERNING THYN SERVANT AND CONCERNING HIS HOUSE BE ESTABLISHED FOR EVER, AND DO AS THOU HAST SAID.I# 24 LET IT EVEN BE ESTABLISHED, THAT THY NAME MAY BE MAGNIFIED FOR EVER,ON SAYING, THE LORD OF HOSTS IS THE GOD OF ISRAEL, EVEN A GOD TO ISRAEL: AND LET; THE HOUSE OF DAVID THY SERVANT BE ESTABLISHED BEFORE THEE.EJ# 25 FOR THOU, O MY GOD, HAST TOLD THY SERVANT THAT THOU WILT BUILD HIM ANJ HOUSE: THEREFORE THY SERVANT HATH FOUND IN HIS HEART TO PRAY BEFORE THEE.J# 26 AND NOW, LORD, THOU ART GOD, AND HAST PROMISED THIS GOODNESS UNTO THY SERVANT:SM# 27 NOW THEREFORE LET IT PLEASE THEE TO BLESS THE HOUSE OF THY SERVANT, THATAK IT MAY BE BEFORE THEE FOR EVER: FOR THOU BLESSEST, O LORD, AND IT SHALL BES BLESSED FOR EVER. = CHAPTER 18 OI# 1 NOW AFTER THIS IT CAME TO PASS, THAT DAVID SMOTE THE PHILISTINES, ANDEN SUBDUED THEM, AND TOOK GATH AND HER TOWNS OUT OF THE HAND OF THE PHILISTINES.K# 2 AND HE SMOTE MOAB; AND THE MOABITES BECAME DAVIDS SERVANTS, AND BROUGHT  GIFTS.WF# 3 AND DAVID SMOTE HADAREZER KING OF ZOBAH UNTO HAMATH, AS HE WENT TO. STABLISH HIS DOMINION BY THE RIVER EUPHRATES.M# 4 AND DAVID TOOK FROM HIM A THOUSAND CHARIOTS, AND SEVEN THOUSAND HORSEMEN,LL AND TWENTY THOUSAND FOOTMEN: DAVID ALSO HOUGHED ALL THE CHARIOT HORSES, BUT& RESERVED OF THEM AN HUNDRED CHARIOTS.J# 5 AND WHEN THE SYRIANS OF DAMASCUS CAME TO HELP HADAREZER KING OF ZOBAH,7 DAVID SLEW OF THE SYRIANS TWO AND TWENTY THOUSAND MEN.DL# 6 THEN DAVID PUT GARRISONS IN SYRIADAMASCUS; AND THE SYRIANS BECAME DAVIDSL SERVANTS, AND BROUGHT GIFTS. THUS THE LORD PRESERVED DAVID WHITHERSOEVER HE WENT.C# 7 AND DAVID TOOK THE SHIELDS OF GOLD THAT WERE ON THE SERVANTS OFD* HADAREZER, AND BROUGHT THEM TO JERUSALEM.L# 8 LIKEWISE FROM TIBHATH, AND FROM CHUN, CITIES OF HADAREZER, BROUGHT DAVIDM VERY MUCH BRASS, WHEREWITH SOLOMON MADE THE BRASEN SEA, AND THE PILLARS, ANDE THE VESSELS OF BRASS.K# 9 NOW WHEN TOU KING OF HAMATH HEARD HOW DAVID HAD SMITTEN ALL THE HOST OFI HADAREZER KING OF ZOBAH;TM# 10 HE SENT HADORAM HIS SON TO KING DAVID, TO ENQUIRE OF HIS WELFARE, AND TO L CONGRATULATE HIM, BECAUSE HE HAD FOUGHT AGAINST HADAREZER, AND SMITTEN HIM;M (FOR HADAREZER HAD WAR WITH TOU;) AND WITH HIM ALL MANNER OF VESSELS OF GOLDE AND SILVER AND BRASS.J# 11 THEM ALSO KING DAVID DEDICATED UNTO THE LORD, WITH THE SILVER AND THEK GOLD THAT HE BROUGHT FROM ALL THESE NATIONS; FROM EDOM, AND FROM MOAB, AND G FROM THE CHILDREN OF AMMON, AND FROM THE PHILISTINES, AND FROM AMALEK.DK# 12 MOREOVER ABISHAI THE SON OF ZERUIAH SLEW OF THE EDOMITES IN THE VALLEYE OF SALT EIGHTEEN THOUSAND.NE# 13 AND HE PUT GARRISONS IN EDOM; AND ALL THE EDOMITES BECAME DAVIDS;? SERVANTS. THUS THE LORD PRESERVED DAVID WHITHERSOEVER HE WENT.EH# 14 SO DAVID REIGNED OVER ALL ISRAEL, AND EXECUTED JUDGMENT AND JUSTICE AMONG ALL HIS PEOPLE.K# 15 AND JOAB THE SON OF ZERUIAH WAS OVER THE HOST; AND JEHOSHAPHAT THE SOND OF AHILUD, RECORDER. M# 16 AND ZADOK THE SON OF AHITUB, AND ABIMELECH THE SON OF ABIATHAR, WERE THEE! PRIESTS; AND SHAVSHA WAS SCRIBE;FE# 17 AND BENAIAH THE SON OF JEHOIADA WAS OVER THE CHERETHITES AND THE = PELETHITES; AND THE SONS OF DAVID WERE CHIEF ABOUT THE KING.R = CHAPTER 19 K# 1 NOW IT CAME TO PASS AFTER THIS, THAT NAHASH THE KING OF THE CHILDREN OFI. AMMON DIED, AND HIS SON REIGNED IN HIS STEAD.F# 2 AND DAVID SAID, I WILL SHEW KINDNESS UNTO HANUN THE SON OF NAHASH,G BECAUSE HIS FATHER SHEWED KINDNESS TO ME. AND DAVID SENT MESSENGERS TO J COMFORT HIM CONCERNING HIS FATHER. SO THE SERVANTS OF DAVID CAME INTO THE8 LAND OF THE CHILDREN OF AMMON TO HANUN, TO COMFORT HIM.I# 3 BUT THE PRINCES OF THE CHILDREN OF AMMON SAID TO HANUN, THINKEST THOUBK THAT DAVID DOTH HONOUR THY FATHER, THAT HE HATH SENT COMFORTERS UNTO THEE?SL ARE NOT HIS SERVANTS COME UNTO THEE FOR TO SEARCH, AND TO OVERTHROW, AND TO SPY OUT THE LAND?L# 4 WHEREFORE HANUN TOOK DAVIDS SERVANTS, AND SHAV00k2E1D%5%T6%! !ED THEM, AND CUT OFF THEIRB GARMENTS IN THE MIDST HARD BY THEIR BUTTOCKS, AND SENT THEM AWAY.K# 5 THEN THERE WENT CERTAIN, AND TOLD DAVID HOW THE MEN WERE SERVED. AND HEEN SENT TO MEET THEM: FOR THE MEN WERE GREATLY ASHAMED. AND THE KING SAID, TARRY8 AT JERICHO UNTIL YOUR BEARDS BE GROWN, AND THEN RETURN.K# 6 AND WHEN THE CHILDREN OF AMMON SAW THAT THEY HAD MADE THEMSELVES ODIOUSOL TO DAVID, HANUN AND THE CHILDREN OF AMMON SENT A THOUSAND TALENTS OF SILVERB TO HIRE THEM CHARIOTS AND HORSEMEN OUT OF MESOPOTAMIA, AND OUT OF SYRIAMAACHAH, AND OUT OF ZOBAH.K# 7 SO THEY HIRED THIRTY AND TWO THOUSAND CHARIOTS, AND THE KING OF MAACHAH N AND HIS PEOPLE; WHO CAME AND PITCHED BEFORE MEDEBA. AND THE CHILDREN OF AMMOND GATHERED THEMSELVES TOGETHER FROM THEIR CITIES, AND CAME TO BATTLE.L# 8 AND WHEN DAVID HEARD OF IT, HE SENT JOAB, AND ALL THE HOST OF THE MIGHTY MEN. J# 9 AND THE CHILDREN OF AMMON CAME OUT, AND PUT THE BATTLE IN ARRAY BEFOREM THE GATE OF THE CITY: AND THE KINGS THAT WERE COME WERE BY THEMSELVES IN THEN FIELD.M# 10 NOW WHEN JOAB SAW THAT THE BATTLE WAS SET AGAINST HIM BEFORE AND BEHIND,RL HE CHOSE OUT OF ALL THE CHOICE OF ISRAEL, AND PUT THEM IN ARRAY AGAINST THE SYRIANS.TI# 11 AND THE REST OF THE PEOPLE HE DELIVERED UNTO THE HAND OF ABISHAI HISCI BROTHER, AND THEY SET THEMSELVES IN ARRAY AGAINST THE CHILDREN OF AMMON.OK# 12 AND HE SAID, IF THE SYRIANS BE TOO STRONG FOR ME, THEN THOU SHALT HELP J ME: BUT IF THE CHILDREN OF AMMON BE TOO STRONG FOR THEE, THEN I WILL HELP THEE.F# 13 BE OF GOOD COURAGE, AND LET US BEHAVE OURSELVES VALIANTLY FOR OURN PEOPLE, AND FOR THE CITIES OF OUR GOD: AND LET THE LORD DO THAT WHICH IS GOOD IN HIS SIGHT.K# 14 SO JOAB AND THE PEOPLE THAT WERE WITH HIM DREW NIGH BEFORE THE SYRIANSU+ UNTO THE BATTLE; AND THEY FLED BEFORE HIM.HH# 15 AND WHEN THE CHILDREN OF AMMON SAW THAT THE SYRIANS WERE FLED, THEYJ LIKEWISE FLED BEFORE ABISHAI HIS BROTHER, AND ENTERED INTO THE CITY. THEN JOAB CAME TO JERUSALEM.L# 16 AND WHEN THE SYRIANS SAW THAT THEY WERE PUT TO THE WORSE BEFORE ISRAEL,M THEY SENT MESSENGERS, AND DREW FORTH THE SYRIANS THAT WERE BEYOND THE RIVER: D AND SHOPHACH THE CAPTAIN OF THE HOST OF HADAREZER WENT BEFORE THEM.G# 17 AND IT WAS TOLD DAVID; AND HE GATHERED ALL ISRAEL, AND PASSED OVER N JORDAN, AND CAME UPON THEM, AND SET THE BATTLE IN ARRAY AGAINST THEM. SO WHENM DAVID HAD PUT THE BATTLE IN ARRAY AGAINST THE SYRIANS, THEY FOUGHT WITH HIM.TL# 18 BUT THE SYRIANS FLED BEFORE ISRAEL; AND DAVID SLEW OF THE SYRIANS SEVENN THOUSAND MEN WHICH FOUGHT IN CHARIOTS, AND FORTY THOUSAND FOOTMEN, AND KILLED" SHOPHACH THE CAPTAIN OF THE HOST.K# 19 AND WHEN THE SERVANTS OF HADAREZER SAW THAT THEY WERE PUT TO THE WORSEEL BEFORE ISRAEL, THEY MADE PEACE WITH DAVID, AND BECAME HIS SERVANTS: NEITHER7 WOULD THE SYRIANS HELP THE CHILDREN OF AMMON ANY MORE.R = CHAPTER 20 .J# 1 AND IT CAME TO PASS, THAT AFTER THE YEAR WAS EXPIRED, AT THE TIME THATM KINGS GO OUT TO BATTLE, JOAB LED FORTH THE POWER OF THE ARMY, AND WASTED THERJ COUNTRY OF THE CHILDREN OF AMMON, AND CAME AND BESIEGED RABBAH. BUT DAVID? TARRIED AT JERUSALEM. AND JOAB SMOTE RABBAH, AND DESTROYED IT. M# 2 AND DAVID TOOK THE CROWN OF THEIR KING FROM OFF HIS HEAD, AND FOUND IT TO M WEIGH A TALENT OF GOLD, AND THERE WERE PRECIOUS STONES IN IT; AND IT WAS SETSL UPON DAVIDS HEAD: AND HE BROUGHT ALSO EXCEEDING MUCH SPOIL OUT OF THE CITY.J# 3 AND HE BROUGHT OUT THE PEOPLE THAT WERE IN IT, AND CUT THEM WITH SAWS,J AND WITH HARROWS OF IRON, AND WITH AXES. EVEN SO DEALT DAVID WITH ALL THEJ CITIES OF THE CHILDREN OF AMMON. AND DAVID AND ALL THE PEOPLE RETURNED TO JERUSALEM. J# 4 AND IT CAME TO PASS AFTER THIS, THAT THERE AROSE WAR AT GEZER WITH THEM PHILISTINES; AT WHICH TIME SIBBECHAI THE HUSHATHITE SLEW SIPPAI, THAT WAS OFR2 THE CHILDREN OF THE GIANT: AND THEY WERE SUBDUED.M# 5 AND THERE WAS WAR AGAIN WITH THE PHILISTINES; AND ELHANAN THE SON OF JAIRGL SLEW LAHMI THE BROTHER OF GOLIATH THE GITTITE, WHOSE SPEAR STAFF WAS LIKE A WEAVERS BEAM.J# 6 AND YET AGAIN THERE WAS WAR AT GATH, WHERE W00k2J2<%X>%+%O-%TADATADATAAS A MAN OF GREAT STATURE,J WHOSE FINGERS AND TOES WERE FOUR AND TWENTY, SIX ON EACH HAND, AND SIX ON0 EACH FOOT AND HE ALSO WAS THE SON OF THE GIANT.M# 7 BUT WHEN HE DEFIED ISRAEL, JONATHAN THE SON OF SHIMEA DAVIDS BROTHER SLEWS HIM.TH# 8 THESE WERE BORN UNTO THE GIANT IN GATH; AND THEY FELL BY THE HAND OF( DAVID, AND BY THE HAND OF HIS SERVANTS. = CHAPTER 21 SK# 1 AND SATAN STOOD UP AGAINST ISRAEL, AND PROVOKED DAVID TO NUMBER ISRAEL.WM# 2 AND DAVID SAID TO JOAB AND TO THE RULERS OF THE PEOPLE, GO, NUMBER ISRAEL K FROM BEERSHEBA EVEN TO DAN; AND BRING THE NUMBER OF THEM TO ME, THAT I MAY KNOW IT.CM# 3 AND JOAB ANSWERED, THE LORD MAKE HIS PEOPLE AN HUNDRED TIMES SO MANY MORENK AS THEY BE: BUT, MY LORD THE KING, ARE THEY NOT ALL MY LORDS SERVANTS? WHYOL THEN DOTH MY LORD REQUIRE THIS THING? WHY WILL HE BE A CAUSE OF TRESPASS TO ISRAEL?F# 4 NEVERTHELESS THE KINGS WORD PREVAILED AGAINST JOAB. WHEREFORE JOABA DEPARTED, AND WENT THROUGHOUT ALL ISRAEL, AND CAME TO JERUSALEM.EI# 5 AND JOAB GAVE THE SUM OF THE NUMBER OF THE PEOPLE UNTO DAVID. AND ALLGN THEY OF ISRAEL WERE A THOUSAND THOUSAND AND AN HUNDRED THOUSAND MEN THAT DREWL SWORD: AND JUDAH WAS FOUR HUNDRED THREESCORE AND TEN THOUSAND MEN THAT DREW SWORD. K# 6 BUT LEVI AND BENJAMIN COUNTED HE NOT AMONG THEM: FOR THE KINGS WORD WASN ABOMINABLE TO JOAB.F# 7 AND GOD WAS DISPLEASED WITH THIS THING; THEREFORE HE SMOTE ISRAEL.L# 8 AND DAVID SAID UNTO GOD, I HAVE SINNED GREATLY, BECAUSE I HAVE DONE THISK THING: BUT NOW, I BESEECH THEE, DO AWAY THE INIQUITY OF THY SERVANT; FOR IO HAVE DONE VERY FOOLISHLY.5# 9 AND THE LORD SPAKE UNTO GAD, DAVIDS SEER, SAYING,MG# 10 GO AND TELL DAVID, SAYING, THUS SAITH THE LORD, I OFFER THEE THREEA= THINGS: CHOOSE THEE ONE OF THEM, THAT I MAY DO IT UNTO THEE.EI# 11 SO GAD CAME TO DAVID, AND SAID UNTO HIM, THUS SAITH THE LORD, CHOOSE  THEEPJ# 12 EITHER THREE YEARS FAMINE; OR THREE MONTHS TO BE DESTROYED BEFORE THYK FOES, WHILE THAT THE SWORD OF THINE ENEMIES OVERTAKETH THEE; OR ELSE THREEEL DAYS THE SWORD OF THE LORD, EVEN THE PESTILENCE, IN THE LAND, AND THE ANGELJ OF THE LORD DESTROYING THROUGHOUT ALL THE COASTS OF ISRAEL. NOW THEREFOREB ADVISE THYSELF WHAT WORD I SHALL BRING AGAIN TO HIM THAT SENT ME.J# 13 AND DAVID SAID UNTO GAD, I AM IN A GREAT STRAIT: LET ME FALL NOW INTOJ THE HAND OF THE LORD; FOR VERY GREAT ARE HIS MERCIES: BUT LET ME NOT FALL INTO THE HAND OF MAN.F# 14 SO THE LORD SENT PESTILENCE UPON ISRAEL: AND THERE FELL OF ISRAEL SEVENTY THOUSAND MEN.F# 15 AND GOD SENT AN ANGEL UNTO JERUSALEM TO DESTROY IT: AND AS HE WASN DESTROYING, THE LORD BEHELD, AND HE REPENTED HIM OF THE EVIL, AND SAID TO THEN ANGEL THAT DESTROYED, IT IS ENOUGH, STAY NOW THINE HAND. AND THE ANGEL OF THE8 LORD STOOD BY THE THRESHINGFLOOR OF ORNAN THE JEBUSITE.F# 16 AND DAVID LIFTED UP HIS EYES, AND SAW THE ANGEL OF THE LORD STANDM BETWEEN THE EARTH AND THE HEAVEN, HAVING A DRAWN SWORD IN HIS HAND STRETCHEDEM OUT OVER JERUSALEM. THEN DAVID AND THE ELDERS OF ISRAEL, WHO WERE CLOTHED IND" SACKCLOTH, FELL UPON THEIR FACES.I# 17 AND DAVID SAID UNTO GOD, IS IT NOT I THAT COMMANDED THE PEOPLE TO BEII NUMBERED? EVEN I IT IS THAT HAVE SINNED AND DONE EVIL INDEED; BUT AS FORON THESE SHEEP, WHAT HAVE THEY DONE? LET THINE HAND, I PRAY THEE, O LORD MY GOD,N BE ON ME, AND ON MY FATHERS HOUSE; BUT NOT ON THY PEOPLE, THAT THEY SHOULD BE PLAGUED.EI# 18 THEN THE ANGEL OF THE LORD COMMANDED GAD TO SAY TO DAVID, THAT DAVIDOI SHOULD GO UP, AND SET UP AN ALTAR UNTO THE LORD IN THE THRESHINGFLOOR OFD ORNAN THE JEBUSITE.J# 19 AND DAVID WENT UP AT THE SAYING OF GAD, WHICH HE SPAKE IN THE NAME OF THE LORD.M# 20 AND ORNAN TURNED BACK, AND SAW THE ANGEL; AND HIS FOUR SONS WITH HIM HID+ THEMSELVES. NOW ORNAN WAS THRESHING WHEAT.HL# 21 AND AS DAVID CAME TO ORNAN, ORNAN LOOKED AND SAW DAVID, AND WENT OUT OFL THE THRESHINGFLOOR, AND BOWED HIMSELF TO DAVID WITH HIS FACE TO THE GROUND.I# 22 THEN DAVID SAID TO ORNAN, GRANT ME THE PLACE OF THIS THRESHINGFLOOR,AL THAT I MAY BUILD AN ALTAR THEREIN UNTO THE LORD: THOU SHALT00k2E1D%5%T6%! ! GRANT IT ME FOR? THE FULL PRICE: THAT THE PLAGUE MAY BE STAYED FROM THE PEOPLE.L# 23 AND ORNAN SAID UNTO DAVID, TAKE IT TO THEE, AND LET MY LORD THE KING DOH THAT WHICH IS GOOD IN HIS EYES: LO, I GIVE THEE THE OXEN ALSO FOR BURNTN OFFERINGS, AND THE THRESHING INSTRUMENTS FOR WOOD, AND THE WHEAT FOR THE MEAT OFFERING; I GIVE IT ALL.AM# 24 AND KING DAVID SAID TO ORNAN, NAY; BUT I WILL VERILY BUY IT FOR THE FULLLM PRICE: FOR I WILL NOT TAKE THAT WHICH IS THINE FOR THE LORD, NOR OFFER BURNT  OFFERINGS WITHOUT COST.H# 25 SO DAVID GAVE TO ORNAN FOR THE PLACE SIX HUNDRED SHEKELS OF GOLD BY WEIGHT.D# 26 AND DAVID BUILT THERE AN ALTAR UNTO THE LORD, AND OFFERED BURNTM OFFERINGS AND PEACE OFFERINGS, AND CALLED UPON THE LORD; AND HE ANSWERED HIMN6 FROM HEAVEN BY FIRE UPON THE ALTAR OF BURNT OFFERING.M# 27 AND THE LORD COMMANDED THE ANGEL; AND HE PUT UP HIS SWORD AGAIN INTO THEU SHEATH THEREOF.F# 28 AT THAT TIME WHEN DAVID SAW THAT THE LORD HAD ANSWERED HIM IN THE@ THRESHINGFLOOR OF ORNAN THE JEBUSITE, THEN HE SACRIFICED THERE.L# 29 FOR THE TABERNACLE OF THE LORD, WHICH MOSES MADE IN THE WILDERNESS, ANDJ THE ALTAR OF THE BURNT OFFERING, WERE AT THAT SEASON IN THE HIGH PLACE AT GIBEON.J# 30 BUT DAVID COULD NOT GO BEFORE IT TO ENQUIRE OF GOD: FOR HE WAS AFRAID/ BECAUSE OF THE SWORD OF THE ANGEL OF THE LORD.E = CHAPTER 22 M# 1 THEN DAVID SAID, THIS IS THE HOUSE OF THE LORD GOD, AND THIS IS THE ALTARH" OF THE BURNT OFFERING FOR ISRAEL.I# 2 AND DAVID COMMANDED TO GATHER TOGETHER THE STRANGERS THAT WERE IN THECN LAND OF ISRAEL; AND HE SET MASONS TO HEW WROUGHT STONES TO BUILD THE HOUSE OF GOD.,K# 3 AND DAVID PREPARED IRON IN ABUNDANCE FOR THE NAILS FOR THE DOORS OF THE D GATES, AND FOR THE JOININGS; AND BRASS IN ABUNDANCE WITHOUT WEIGHT;M# 4 ALSO CEDAR TREES IN ABUNDANCE: FOR THE ZIDONIANS AND THEY OF TYRE BROUGHT  MUCH CEDAR WOOD TO DAVID.M# 5 AND DAVID SAID, SOLOMON MY SON IS YOUNG AND TENDER, AND THE HOUSE THAT ISGN TO BE BUILDED FOR THE LORD MUST BE EXCEEDING MAGNIFICAL, OF FAME AND OF GLORYK THROUGHOUT ALL COUNTRIES: I WILL THEREFORE NOW MAKE PREPARATION FOR IT. SOH, DAVID PREPARED ABUNDANTLY BEFORE HIS DEATH.M# 6 THEN HE CALLED FOR SOLOMON HIS SON, AND CHARGED HIM TO BUILD AN HOUSE FORS THE LORD GOD OF ISRAEL.L# 7 AND DAVID SAID TO SOLOMON, MY SON, AS FOR ME, IT WAS IN MY MIND TO BUILD+ AN HOUSE UNTO THE NAME OF THE LORD MY GOD:E# 8 BUT THE WORD OF THE LORD CAME TO ME, SAYING, THOU HAST SHED BLOODHL ABUNDANTLY, AND HAST MADE GREAT WARS: THOU SHALT NOT BUILD AN HOUSE UNTO MYD NAME, BECAUSE THOU HAST SHED MUCH BLOOD UPON THE EARTH IN MY SIGHT.J# 9 BEHOLD, A SON SHALL BE BORN TO THEE, WHO SHALL BE A MAN OF REST; AND IK WILL GIVE HIM REST FROM ALL HIS ENEMIES ROUND ABOUT: FOR HIS NAME SHALL BE F SOLOMON, AND I WILL GIVE PEACE AND QUIETNESS UNTO ISRAEL IN HIS DAYS.L# 10 HE SHALL BUILD AN HOUSE FOR MY NAME; AND HE SHALL BE MY SON, AND I WILLN BE HIS FATHER; AND I WILL ESTABLISH THE THRONE OF HIS KINGDOM OVER ISRAEL FOR EVER.H# 11 NOW, MY SON, THE LORD BE WITH THEE; AND PROSPER THOU, AND BUILD THE4 HOUSE OF THE LORD THY GOD, AS HE HATH SAID OF THEE.K# 12 ONLY THE LORD GIVE THEE WISDOM AND UNDERSTANDING, AND GIVE THEE CHARGEIF CONCERNING ISRAEL, THAT THOU MAYEST KEEP THE LAW OF THE LORD THY GOD.L# 13 THEN SHALT THOU PROSPER, IF THOU TAKEST HEED TO FULFIL THE STATUTES ANDN JUDGMENTS WHICH THE LORD CHARGED MOSES WITH CONCERNING ISRAEL: BE STRONG, AND- OF GOOD COURAGE; DREAD NOT, NOR BE DISMAYED.NL# 14 NOW, BEHOLD, IN MY TROUBLE I HAVE PREPARED FOR THE HOUSE OF THE LORD ANM HUNDRED THOUSAND TALENTS OF GOLD, AND A THOUSAND THOUSAND TALENTS OF SILVER;N AND OF BRASS AND IRON WITHOUT WEIGHT; FOR IT IS IN ABUNDANCE: TIMBER ALSO AND4 STONE HAVE I PREPARED; AND THOU MAYEST ADD THERETO.M# 15 MOREOVER THERE ARE WORKMEN WITH THEE IN ABUNDANCE, HEWERS AND WORKERS OF J STONE AND TIMBER, AND ALL MANNER OF CUNNING MEN FOR EVERY MANNER OF WORK.F# 16 OF THE GOLD, THE SILVER, AND THE BRASS, AND THE IRON, THERE IS NOB NUMBER. ARISE THEREFORE, AND BE DOING, AND THE LORD BE WITH THEE.L00k2J2<%X>%+%O-%TADATADATA# 17 DAVID ALSO COMMANDED ALL THE PRINCES OF ISRAEL TO HELP SOLOMON HIS SON, SAYING,I# 18 IS NOT THE LORD YOUR GOD WITH YOU? AND HATH HE NOT GIVEN YOU REST ONN EVERY SIDE? FOR HE HATH GIVEN THE INHABITANTS OF THE LAND INTO MINE HAND; AND< THE LAND IS SUBDUED BEFORE THE LORD, AND BEFORE HIS PEOPLE.F# 19 NOW SET YOUR HEART AND YOUR SOUL TO SEEK THE LORD YOUR GOD; ARISEK THEREFORE, AND BUILD YE THE SANCTUARY OF THE LORD GOD, TO BRING THE ARK OFAN THE COVENANT OF THE LORD, AND THE HOLY VESSELS OF GOD, INTO THE HOUSE THAT IS% TO BE BUILT TO THE NAME OF THE LORD.O = CHAPTER 23 M# 1 SO WHEN DAVID WAS OLD AND FULL OF DAYS, HE MADE SOLOMON HIS SON KING OVERT ISRAEL.L# 2 AND HE GATHERED TOGETHER ALL THE PRINCES OF ISRAEL, WITH THE PRIESTS AND THE LEVITES.UJ# 3 NOW THE LEVITES WERE NUMBERED FROM THE AGE OF THIRTY YEARS AND UPWARD:L AND THEIR NUMBER BY THEIR POLLS, MAN BY MAN, WAS THIRTY AND EIGHT THOUSAND.J# 4 OF WHICH, TWENTY AND FOUR THOUSAND WERE TO SET FORWARD THE WORK OF THE> HOUSE OF THE LORD; AND SIX THOUSAND WERE OFFICERS AND JUDGES:K# 5 MOREOVER FOUR THOUSAND WERE PORTERS; AND FOUR THOUSAND PRAISED THE LORDSD WITH THE INSTRUMENTS WHICH I MADE, SAID DAVID, TO PRAISE THEREWITH.G# 6 AND DAVID DIVIDED THEM INTO COURSES AMONG THE SONS OF LEVI, NAMELY,  GERSHON, KOHATH, AND MERARI. 0# 7 OF THE GERSHONITES WERE, LAADAN, AND SHIMEI.J# 8 THE SONS OF LAADAN; THE CHIEF WAS JEHIEL, AND ZETHAM, AND JOEL, THREE.K# 9 THE SONS OF SHIMEI; SHELOMITH, AND HAZIEL, AND HARAN, THREE. THESE WEREO$ THE CHIEF OF THE FATHERS OF LAADAN.L# 10 AND THE SONS OF SHIMEI WERE, JAHATH, ZINA, AND JEUSH, AND BERIAH. THESE FOUR WERE THE SONS OF SHIMEI.M# 11 AND JAHATH WAS THE CHIEF, AND ZIZAH THE SECOND: BUT JEUSH AND BERIAH HADHH NOT MANY SONS; THEREFORE THEY WERE IN ONE RECKONING, ACCORDING TO THEIR FATHERS HOUSE.E@# 12 THE SONS OF KOHATH; AMRAM, IZHAR, HEBRON, AND UZZIEL, FOUR.I# 13 THE SONS OF AMRAM; AARON AND MOSES: AND AARON WAS SEPARATED, THAT HEHH SHOULD SANCTIFY THE MOST HOLY THINGS, HE AND HIS SONS FOR EVER, TO BURNL INCENSE BEFORE THE LORD, TO MINISTER UNTO HIM, AND TO BLESS IN HIS NAME FOR EVER.M# 14 NOW CONCERNING MOSES THE MAN OF GOD, HIS SONS WERE NAMED OF THE TRIBE OFH LEVI.2# 15 THE SONS OF MOSES WERE, GERSHOM, AND ELIEZER.3# 16 OF THE SONS OF GERSHOM, SHEBUEL WAS THE CHIEF.K# 17 AND THE SONS OF ELIEZER WERE, REHABIAH THE CHIEF. AND ELIEZER HAD NONEF5 OTHER SONS; BUT THE SONS OF REHABIAH WERE VERY MANY.N/# 18 OF THE SONS OF IZHAR; SHELOMITH THE CHIEF.SJ# 19 OF THE SONS OF HEBRON; JERIAH THE FIRST, AMARIAH THE SECOND, JAHAZIEL$ THE THIRD, AND JEKAMEAM THE FOURTH.B# 20 OF THE SONS OF UZZIEL; MICAH THE FIRST AND JESIAH THE SECOND.J# 21 THE SONS OF MERARI; MAHLI, AND MUSHI. THE SONS OF MAHLI; ELEAZAR, AND KISH.M# 22 AND ELEAZAR DIED, AND HAD NO SONS, BUT DAUGHTERS: AND THEIR BRETHREN THEN SONS OF KISH TOOK THEM.=# 23 THE SONS OF MUSHI; MAHLI, AND EDER, AND JEREMOTH, THREE.FK# 24 THESE WERE THE SONS OF LEVI AFTER THE HOUSE OF THEIR FATHERS; EVEN THEN CHIEF OF THE FATHERS, AS THEY WERE COUNTED BY NUMBER OF NAMES BY THEIR POLLS,L THAT DID THE WORK FOR THE SERVICE OF THE HOUSE OF THE LORD, FROM THE AGE OF TWENTY YEARS AND UPWARD.1L# 25 FOR DAVID SAID, THE LORD GOD OF ISRAEL HATH GIVEN REST UNTO HIS PEOPLE,+ THAT THEY MAY DWELL IN JERUSALEM FOR EVER: L# 26 AND ALSO UNTO THE LEVITES; THEY SHALL NO MORE CARRY THE TABERNACLE, NOR+ ANY VESSELS OF IT FOR THE SERVICE THEREOF.FI# 27 FOR BY THE LAST WORDS OF DAVID THE LEVITES WERE NUMBERED FROM TWENTYH YEARS OLD AND ABOVE:RM# 28 BECAUSE THEIR OFFICE WAS TO WAIT ON THE SONS OF AARON FOR THE SERVICE OFFF THE HOUSE OF THE LORD, IN THE COURTS, AND IN THE CHAMBERS, AND IN THEJ PURIFYING OF ALL HOLY THINGS, AND THE WORK OF THE SERVICE OF THE HOUSE OF GOD;PJ# 29 BOTH FOR THE SHEWBREAD, AND FOR THE FINE FLOUR FOR MEAT OFFERING, ANDJ FOR THE UNLEAVENED CAKES, AND FOR THAT WHICH IS BAKED IN THE PAN, AND FOR= THAT WHICH IS FRIED, AND FOR ALL MANNER OF MEASURE AND SIZE;HM# 30 AND TO STAND EVERY MORNING TO THANK AND PRAISE THE LORD, AND LI00k3E1D%5%T6%! !KEWISE ATR EVEN:L# 31 AND TO OFFER ALL BURNT SACRIFICES UNTO THE LORD IN THE SABBATHS, IN THEN NEW MOONS, AND ON THE SET FEASTS, BY NUMBER, ACCORDING TO THE ORDER COMMANDED( UNTO THEM, CONTINUALLY BEFORE THE LORD:B# 32 AND THAT THEY SHOULD KEEP THE CHARGE OF THE TABERNACLE OF THEN CONGREGATION, AND THE CHARGE OF THE HOLY PLACE, AND THE CHARGE OF THE SONS OF? AARON THEIR BRETHREN, IN THE SERVICE OF THE HOUSE OF THE LORD. = CHAPTER 24 0H# 1 NOW THESE ARE THE DIVISIONS OF THE SONS OF AARON. THE SONS OF AARON;( NADAB, AND ABIHU, ELEAZAR, AND ITHAMAR.F# 2 BUT NADAB AND ABIHU DIED BEFORE THEIR FATHER, AND HAD NO CHILDREN:; THEREFORE ELEAZAR AND ITHAMAR EXECUTED THE PRIESTS OFFICE.HF# 3 AND DAVID DISTRIBUTED THEM, BOTH ZADOK OF THE SONS OF ELEAZAR, ANDF AHIMELECH OF THE SONS OF ITHAMAR, ACCORDING TO THEIR OFFICES IN THEIR SERVICE.TJ# 4 AND THERE WERE MORE CHIEF MEN FOUND OF THE SONS OF ELEAZAR THAN OF THEM SONS OF ITHAMAR, AND THUS WERE THEY DIVIDED. AMONG THE SONS OF ELEAZAR THEREAJ WERE SIXTEEN CHIEF MEN OF THE HOUSE OF THEIR FATHERS, AND EIGHT AMONG THE9 SONS OF ITHAMAR ACCORDING TO THE HOUSE OF THEIR FATHERS.EK# 5 THUS WERE THEY DIVIDED BY LOT, ONE SORT WITH ANOTHER; FOR THE GOVERNORSII OF THE SANCTUARY, AND GOVERNORS OF THE HOUSE OF GOD, WERE OF THE SONS OFH% ELEAZAR, AND OF THE SONS OF ITHAMAR.FK# 6 AND SHEMAIAH THE SON OF NETHANEEL THE SCRIBE, ONE OF THE LEVITES, WROTENK THEM BEFORE THE KING, AND THE PRINCES, AND ZADOK THE PRIEST, AND AHIMELECH L THE SON OF ABIATHAR, AND BEFORE THE CHIEF OF THE FATHERS OF THE PRIESTS ANDL LEVITES: ONE PRINCIPAL HOUSEHOLD BEING TAKEN FOR ELEAZAR, AND ONE TAKEN FOR ITHAMAR. E# 7 NOW THE FIRST LOT CAME FORTH TO JEHOIARIB, THE SECOND TO JEDAIAH,I-# 8 THE THIRD TO HARIM, THE FOURTH TO SEORIM, 1# 9 THE FIFTH TO MALCHIJAH, THE SIXTH TO MIJAMIN,S1# 10 THE SEVENTH TO HAKKOZ, THE EIGHTH TO ABIJAH,N2# 11 THE NINTH TO JESHUAH, THE TENTH TO SHECANIAH,4# 12 THE ELEVENTH TO ELIASHIB, THE TWELFTH TO JAKIM,;# 13 THE THIRTEENTH TO HUPPAH, THE FOURTEENTH TO JESHEBEAB, 5# 14 THE FIFTEENTH TO BILGAH, THE SIXTEENTH TO IMMER, 8# 15 THE SEVENTEENTH TO HEZIR, THE EIGHTEENTH TO APHSES,=# 16 THE NINETEENTH TO PETHAHIAH, THE TWENTIETH TO JEHEZEKEL,NE# 17 THE ONE AND TWENTIETH TO JACHIN, THE TWO AND TWENTIETH TO GAMUL, K# 18 THE THREE AND TWENTIETH TO DELAIAH, THE FOUR AND TWENTIETH TO MAAZIAH.IM# 19 THESE WERE THE ORDERINGS OF THEM IN THEIR SERVICE TO COME INTO THE HOUSEEN OF THE LORD, ACCORDING TO THEIR MANNER, UNDER AARON THEIR FATHER, AS THE LORD! GOD OF ISRAEL HAD COMMANDED HIM.FG# 20 AND THE REST OF THE SONS OF LEVI WERE THESE: OF THE SONS OF AMRAM;I+ SHUBAEL: OF THE SONS OF SHUBAEL; JEHDEIAH.EI# 21 CONCERNING REHABIAH: OF THE SONS OF REHABIAH, THE FIRST WAS ISSHIAH.TC# 22 OF THE IZHARITES; SHELOMOTH: OF THE SONS OF SHELOMOTH; JAHATH.EK# 23 AND THE SONS OF HEBRON; JERIAH THE FIRST, AMARIAH THE SECOND, JAHAZIELI THE THIRD, JEKAMEAM THE FOURTH.B# 24 OF THE SONS OF UZZIEL; MICHAH: OF THE SONS OF MICHAH; SHAMIR.J# 25 THE BROTHER OF MICHAH WAS ISSHIAH: OF THE SONS OF ISSHIAH; ZECHARIAH.H# 26 THE SONS OF MERARI WERE MAHLI AND MUSHI: THE SONS OF JAAZIAH; BENO.K# 27 THE SONS OF MERARI BY JAAZIAH; BENO, AND SHOHAM, AND ZACCUR, AND IBRI.F,# 28 OF MAHLI CAME ELEAZAR, WHO HAD NO SONS.4# 29 CONCERNING KISH: THE SON OF KISH WAS JERAHMEEL.J# 30 THE SONS ALSO OF MUSHI; MAHLI, AND EDER, AND JERIMOTH. THESE WERE THE6 SONS OF THE LEVITES AFTER THE HOUSE OF THEIR FATHERS.K# 31 THESE LIKEWISE CAST LOTS OVER AGAINST THEIR BRETHREN THE SONS OF AARONHN IN THE PRESENCE OF DAVID THE KING, AND ZADOK, AND AHIMELECH, AND THE CHIEF OFH THE FATHERS OF THE PRIESTS AND LEVITES, EVEN THE PRINCIPAL FATHERS OVER AGAINST THEIR YOUNGER BRETHREN. = CHAPTER 25 K# 1 MOREOVER DAVID AND THE CAPTAINS OF THE HOST SEPARATED TO THE SERVICE OFFK THE SONS OF ASAPH, AND OF HEMAN, AND OF JEDUTHUN, WHO SHOULD PROPHESY WITHOH HARPS, WITH PSALTERIES, AND WITH CYMBALS: AND THE NUMBER OF THE WORKMEN ACCORDING TO THEIR SERVICE WAS:J# 2 OF THE SONS OF ASAPH; ZACCUR, AND JOSEPH, AND NETHANIAH, A00k3J2<%X>%+%O-%TADATADATAND ASARELAH,N THE SONS OF ASAPH UNDER THE HANDS OF ASAPH, WHICH PROPHESIED ACCORDING TO THE ORDER OF THE KING.RH# 3 OF JEDUTHUN: THE SONS OF JEDUTHUN; GEDALIAH, AND ZERI, AND JESHAIAH,N HASHABIAH, AND MATTITHIAH, SIX, UNDER THE HANDS OF THEIR FATHER JEDUTHUN, WHO? PROPHESIED WITH A HARP, TO GIVE THANKS AND TO PRAISE THE LORD.YI# 4 OF HEMAN: THE SONS OF HEMAN: BUKKIAH, MATTANIAH, UZZIEL, SHEBUEL, ANDRA JERIMOTH, HANANIAH, HANANI, ELIATHAH, GIDDALTI, AND ROMAMTIEZER,A/ JOSHBEKASHAH, MALLOTHI, HOTHIR, AND MAHAZIOTH:TK# 5 ALL THESE WERE THE SONS OF HEMAN THE KINGS SEER IN THE WORDS OF GOD, TOK LIFT UP THE HORN. AND GOD GAVE TO HEMAN FOURTEEN SONS AND THREE DAUGHTERS.RK# 6 ALL THESE WERE UNDER THE HANDS OF THEIR FATHER FOR SONG IN THE HOUSE OFAL THE LORD, WITH CYMBALS, PSALTERIES, AND HARPS, FOR THE SERVICE OF THE HOUSED OF GOD, ACCORDING TO THE KINGS ORDER TO ASAPH, JEDUTHUN, AND HEMAN.J# 7 SO THE NUMBER OF THEM, WITH THEIR BRETHREN THAT WERE INSTRUCTED IN THEM SONGS OF THE LORD, EVEN ALL THAT WERE CUNNING, WAS TWO HUNDRED FOURSCORE ANDS EIGHT.MJ# 8 AND THEY CAST LOTS, WARD AGAINST WARD, AS WELL THE SMALL AS THE GREAT, THE TEACHER AS THE SCHOLAR.M# 9 NOW THE FIRST LOT CAME FORTH FOR ASAPH TO JOSEPH: THE SECOND TO GEDALIAH,T, WHO WITH HIS BRETHREN AND SONS WERE TWELVE:F# 10 THE THIRD TO ZACCUR, HE, HIS SONS, AND HIS BRETHREN, WERE TWELVE:E# 11 THE FOURTH TO IZRI, HE, HIS SONS, AND HIS BRETHREN, WERE TWELVE:WI# 12 THE FIFTH TO NETHANIAH, HE, HIS SONS, AND HIS BRETHREN, WERE TWELVE:LG# 13 THE SIXTH TO BUKKIAH, HE, HIS SONS, AND HIS BRETHREN, WERE TWELVE:YL# 14 THE SEVENTH TO JESHARELAH, HE, HIS SONS, AND HIS BRETHREN, WERE TWELVE:I# 15 THE EIGHTH TO JESHAIAH, HE, HIS SONS, AND HIS BRETHREN, WERE TWELVE:EI# 16 THE NINTH TO MATTANIAH, HE, HIS SONS, AND HIS BRETHREN, WERE TWELVE:TF# 17 THE TENTH TO SHIMEI, HE, HIS SONS, AND HIS BRETHREN, WERE TWELVE:J# 18 THE ELEVENTH TO AZAREEL, HE, HIS SONS, AND HIS BRETHREN, WERE TWELVE:K# 19 THE TWELFTH TO HASHABIAH, HE, HIS SONS, AND HIS BRETHREN, WERE TWELVE:TL# 20 THE THIRTEENTH TO SHUBAEL, HE, HIS SONS, AND HIS BRETHREN, WERE TWELVE:G# 21 THE FOURTEENTH TO MATTITHIAH, HE, HIS SONS, AND HIS BRETHREN, WERE  TWELVE:L# 22 THE FIFTEENTH TO JEREMOTH, HE, HIS SONS, AND HIS BRETHREN, WERE TWELVE:L# 23 THE SIXTEENTH TO HANANIAH, HE, HIS SONS, AND HIS BRETHREN, WERE TWELVE:J# 24 THE SEVENTEENTH TO JOSHBEKASHAH, HE, HIS SONS, AND HIS BRETHREN, WERE TWELVE:K# 25 THE EIGHTEENTH TO HANANI, HE, HIS SONS, AND HIS BRETHREN, WERE TWELVE:AM# 26 THE NINETEENTH TO MALLOTHI, HE, HIS SONS, AND HIS BRETHREN, WERE TWELVE:NL# 27 THE TWENTIETH TO ELIATHAH, HE, HIS SONS, AND HIS BRETHREN, WERE TWELVE:J# 28 THE ONE AND TWENTIETH TO HOTHIR, HE, HIS SONS, AND HIS BRETHREN, WERE TWELVE:L# 29 THE TWO AND TWENTIETH TO GIDDALTI, HE, HIS SONS, AND HIS BRETHREN, WERE TWELVE:J# 30 THE THREE AND TWENTIETH TO MAHAZIOTH, HE, HIS SONS, AND HIS BRETHREN, WERE TWELVE:EK# 31 THE FOUR AND TWENTIETH TO ROMAMTIEZER, HE, HIS SONS, AND HIS BRETHREN,R WERE TWELVE.6 = CHAPTER 26 L# 1 CONCERNING THE DIVISIONS OF THE PORTERS: OF THE KORHITES WAS MESHELEMIAH' THE SON OF KORE, OF THE SONS OF ASAPH.RJ# 2 AND THE SONS OF MESHELEMIAH WERE, ZECHARIAH THE FIRSTBORN, JEDIAEL THE1 SECOND, ZEBADIAH THE THIRD, JATHNIEL THE FOURTH,E># 3 ELAM THE FIFTH, JEHOHANAN THE SIXTH, ELIOENAI THE SEVENTH.M# 4 MOREOVER THE SONS OF OBEDEDOM WERE, SHEMAIAH THE FIRSTBORN, JEHOZABAD THERG SECOND, JOAH THE THIRD, AND SACAR THE FOURTH, AND NETHANEEL THE FIFTH. H# 5 AMMIEL THE SIXTH, ISSACHAR THE SEVENTH, PEULTHAI THE EIGHTH: FOR GOD BLESSED HIM.RH# 6 ALSO UNTO SHEMAIAH HIS SON WERE SONS BORN, THAT RULED THROUGHOUT THE; HOUSE OF THEIR FATHER: FOR THEY WERE MIGHTY MEN OF VALOUR.BF# 7 THE SONS OF SHEMAIAH; OTHNI, AND REPHAEL, AND OBED, ELZABAD, WHOSE0 BRETHREN WERE STRONG MEN, ELIHU, AND SEMACHIAH.D# 8 ALL THESE OF THE SONS OF OBEDEDOM: THEY AND THEIR SONS AND THEIRL BRETHREN, ABLE MEN FOR STRENGTH FOR THE SERVICE, WERE THREESCORE AND TWO OF OBEDEDOM.@# 9 AND MESHELEMIAH HAD SONS AND BRETHREN, STR00k3E1D%5%T6%! !ONG MEN, EIGHTEEN.K# 10 ALSO HOSAH, OF THE CHILDREN OF MERARI, HAD SONS; SIMRI THE CHIEF, (FORTE THOUGH HE WAS NOT THE FIRSTBORN, YET HIS FATHER MADE HIM THE CHIEF;)MJ# 11 HILKIAH THE SECOND, TEBALIAH THE THIRD, ZECHARIAH THE FOURTH: ALL THE* SONS AND BRETHREN OF HOSAH WERE THIRTEEN.M# 12 AMONG THESE WERE THE DIVISIONS OF THE PORTERS, EVEN AMONG THE CHIEF MEN,DH HAVING WARDS ONE AGAINST ANOTHER, TO MINISTER IN THE HOUSE OF THE LORD.I# 13 AND THEY CAST LOTS, AS WELL THE SMALL AS THE GREAT, ACCORDING TO THEE( HOUSE OF THEIR FATHERS, FOR EVERY GATE.J# 14 AND THE LOT EASTWARD FELL TO SHELEMIAH. THEN FOR ZECHARIAH HIS SON, AA WISE COUNSELLOR, THEY CAST LOTS; AND HIS LOT CAME OUT NORTHWARD.NA# 15 TO OBEDEDOM SOUTHWARD; AND TO HIS SONS THE HOUSE OF ASUPPIM.TD# 16 TO SHUPPIM AND HOSAH THE LOT CAME FORTH WESTWARD, WITH THE GATEA SHALLECHETH, BY THE CAUSEWAY OF THE GOING UP, WARD AGAINST WARD.NK# 17 EASTWARD WERE SIX LEVITES, NORTHWARD FOUR A DAY, SOUTHWARD FOUR A DAY,L AND TOWARD ASUPPIM TWO AND TWO.A# 18 AT PARBAR WESTWARD, FOUR AT THE CAUSEWAY, AND TWO AT PARBAR.TM# 19 THESE ARE THE DIVISIONS OF THE PORTERS AMONG THE SONS OF KORE, AND AMONGH THE SONS OF MERARI.K# 20 AND OF THE LEVITES, AHIJAH WAS OVER THE TREASURES OF THE HOUSE OF GOD,S0 AND OVER THE TREASURES OF THE DEDICATED THINGS.I# 21 AS CONCERNING THE SONS OF LAADAN; THE SONS OF THE GERSHONITE LAADAN,I< CHIEF FATHERS, EVEN OF LAADAN THE GERSHONITE, WERE JEHIELI.K# 22 THE SONS OF JEHIELI; ZETHAM, AND JOEL HIS BROTHER, WHICH WERE OVER THE$ TREASURES OF THE HOUSE OF THE LORD.M# 23 OF THE AMRAMITES, AND THE IZHARITES, THE HEBRONITES, AND THE UZZIELITES: G# 24 AND SHEBUEL THE SON OF GERSHOM, THE SON OF MOSES, WAS RULER OF THEE TREASURES. M# 25 AND HIS BRETHREN BY ELIEZER; REHABIAH HIS SON, AND JESHAIAH HIS SON, ANDT: JORAM HIS SON, AND ZICHRI HIS SON, AND SHELOMITH HIS SON.H# 26 WHICH SHELOMITH AND HIS BRETHREN WERE OVER ALL THE TREASURES OF THEL DEDICATED THINGS, WHICH DAVID THE KING, AND THE CHIEF FATHERS, THE CAPTAINSJ OVER THOUSANDS AND HUNDREDS, AND THE CAPTAINS OF THE HOST, HAD DEDICATED.M# 27 OUT OF THE SPOILS WON IN BATTLES DID THEY DEDICATE TO MAINTAIN THE HOUSES OF THE LORD.TJ# 28 AND ALL THAT SAMUEL THE SEER, AND SAUL THE SON OF KISH, AND ABNER THEJ SON OF NER, AND JOAB THE SON OF ZERUIAH, HAD DEDICATED; AND WHOSOEVER HADN DEDICATED ANY THING, IT WAS UNDER THE HAND OF SHELOMITH, AND OF HIS BRETHREN.K# 29 OF THE IZHARITES, CHENANIAH AND HIS SONS WERE FOR THE OUTWARD BUSINESST& OVER ISRAEL, FOR OFFICERS AND JUDGES.H# 30 AND OF THE HEBRONITES, HASHABIAH AND HIS BRETHREN, MEN OF VALOUR, AL THOUSAND AND SEVEN HUNDRED, WERE OFFICERS AMONG THEM OF ISRAEL ON THIS SIDEK JORDAN WESTWARD IN ALL THE BUSINESS OF THE LORD, AND IN THE SERVICE OF THEA KING.K# 31 AMONG THE HEBRONITES WAS JERIJAH THE CHIEF, EVEN AMONG THE HEBRONITES,I ACCORDING TO THE GENERATIONS OF HIS FATHERS. IN THE FORTIETH YEAR OF THEEL REIGN OF DAVID THEY WERE SOUGHT FOR, AND THERE WERE FOUND AMONG THEM MIGHTY" MEN OF VALOUR AT JAZER OF GILEAD.I# 32 AND HIS BRETHREN, MEN OF VALOUR, WERE TWO THOUSAND AND SEVEN HUNDREDUM CHIEF FATHERS, WHOM KING DAVID MADE RULERS OVER THE REUBENITES, THE GADITES,IH AND THE HALF TRIBE OF MANASSEH, FOR EVERY MATTER PERTAINING TO GOD, AND AFFAIRS OF THE KING.O = CHAPTER 27 EL# 1 NOW THE CHILDREN OF ISRAEL AFTER THEIR NUMBER, TO WIT, THE CHIEF FATHERSK AND CAPTAINS OF THOUSANDS AND HUNDREDS, AND THEIR OFFICERS THAT SERVED THE M KING IN ANY MATTER OF THE COURSES, WHICH CAME IN AND WENT OUT MONTH BY MONTHGL THROUGHOUT ALL THE MONTHS OF THE YEAR, OF EVERY COURSE WERE TWENTY AND FOUR THOUSAND.F# 2 OVER THE FIRST COURSE FOR THE FIRST MONTH WAS JASHOBEAM THE SON OF: ZABDIEL: AND IN HIS COURSE WERE TWENTY AND FOUR THOUSAND.J# 3 OF THE CHILDREN OF PEREZ WAS THE CHIEF OF ALL THE CAPTAINS OF THE HOST FOR THE FIRST MONTH.NL# 4 AND OVER THE COURSE OF THE SECOND MONTH WAS DODAI AN AHOHITE, AND OF HISJ COURSE WAS MIKLOTH ALSO THE RULER: IN HIS COURSE LIKEWISE WERE TWENTY AND FOUR THOUSAND.OL# 5 THE THIRD CAPTAIN OF THE HOS00k3J2<%X>%+%O-%TADATADATAT FOR THE THIRD MONTH WAS BENAIAH THE SON OFK JEHOIADA, A CHIEF PRIEST: AND IN HIS COURSE WERE TWENTY AND FOUR THOUSAND. H# 6 THIS IS THAT BENAIAH, WHO WAS MIGHTY AMONG THE THIRTY, AND ABOVE THE1 THIRTY: AND IN HIS COURSE WAS AMMIZABAD HIS SON.IK# 7 THE FOURTH CAPTAIN FOR THE FOURTH MONTH WAS ASAHEL THE BROTHER OF JOAB,CG AND ZEBADIAH HIS SON AFTER HIM: AND IN HIS COURSE WERE TWENTY AND FOURI THOUSAND.K# 8 THE FIFTH CAPTAIN FOR THE FIFTH MONTH WAS SHAMHUTH THE IZRAHITE: AND INH* HIS COURSE WERE TWENTY AND FOUR THOUSAND.G# 9 THE SIXTH CAPTAIN FOR THE SIXTH MONTH WAS IRA THE SON OF IKKESH THE : TEKOITE: AND IN HIS COURSE WERE TWENTY AND FOUR THOUSAND.M# 10 THE SEVENTH CAPTAIN FOR THE SEVENTH MONTH WAS HELEZ THE PELONITE, OF THEBF CHILDREN OF EPHRAIM: AND IN HIS COURSE WERE TWENTY AND FOUR THOUSAND.L# 11 THE EIGHTH CAPTAIN FOR THE EIGHTH MONTH WAS SIBBECAI THE HUSHATHITE, OF? THE ZARHITES: AND IN HIS COURSE WERE TWENTY AND FOUR THOUSAND.OM# 12 THE NINTH CAPTAIN FOR THE NINTH MONTH WAS ABIEZER THE ANETOTHITE, OF THEN= BENJAMITES: AND IN HIS COURSE WERE TWENTY AND FOUR THOUSAND.FK# 13 THE TENTH CAPTAIN FOR THE TENTH MONTH WAS MAHARAI THE NETOPHATHITE, OF0? THE ZARHITES: AND IN HIS COURSE WERE TWENTY AND FOUR THOUSAND.,M# 14 THE ELEVENTH CAPTAIN FOR THE ELEVENTH MONTH WAS BENAIAH THE PIRATHONITE,.M OF THE CHILDREN OF EPHRAIM: AND IN HIS COURSE WERE TWENTY AND FOUR THOUSAND.K# 15 THE TWELFTH CAPTAIN FOR THE TWELFTH MONTH WAS HELDAI THE NETOPHATHITE,N= OF OTHNIEL: AND IN HIS COURSE WERE TWENTY AND FOUR THOUSAND.HK# 16 FURTHERMORE OVER THE TRIBES OF ISRAEL: THE RULER OF THE REUBENITES WASTM ELIEZER THE SON OF ZICHRI: OF THE SIMEONITES, SHEPHATIAH THE SON OF MAACHAH:EJ# 17 OF THE LEVITES, HASHABIAH THE SON OF KEMUEL: OF THE AARONITES, ZADOK:M# 18 OF JUDAH, ELIHU, ONE OF THE BRETHREN OF DAVID: OF ISSACHAR, OMRI THE SONP OF MICHAEL:K# 19 OF ZEBULUN, ISHMAIAH THE SON OF OBADIAH: OF NAPHTALI, JERIMOTH THE SONT OF AZRIEL:WM# 20 OF THE CHILDREN OF EPHRAIM, HOSHEA THE SON OF AZAZIAH: OF THE HALF TRIBEU& OF MANASSEH, JOEL THE SON OF PEDAIAH:K# 21 OF THE HALF TRIBE OF MANASSEH IN GILEAD, IDDO THE SON OF ZECHARIAH: OFI$ BENJAMIN, JAASIEL THE SON OF ABNER:M# 22 OF DAN, AZAREEL THE SON OF JEROHAM. THESE WERE THE PRINCES OF THE TRIBEST OF ISRAEL. K# 23 BUT DAVID TOOK NOT THE NUMBER OF THEM FROM TWENTY YEARS OLD AND UNDER:L BECAUSE THE LORD HAD SAID HE WOULD INCREASE ISRAEL LIKE TO THE STARS OF THE HEAVENS.TJ# 24 JOAB THE SON OF ZERUIAH BEGAN TO NUMBER, BUT HE FINISHED NOT, BECAUSEJ THERE FELL WRATH FOR IT AGAINST ISRAEL; NEITHER WAS THE NUMBER PUT IN THE) ACCOUNT OF THE CHRONICLES OF KING DAVID.OM# 25 AND OVER THE KINGS TREASURES WAS AZMAVETH THE SON OF ADIEL: AND OVER THEEJ STOREHOUSES IN THE FIELDS, IN THE CITIES, AND IN THE VILLAGES, AND IN THE+ CASTLES, WAS JEHONATHAN THE SON OF UZZIAH:NK# 26 AND OVER THEM THAT DID THE WORK OF THE FIELD FOR TILLAGE OF THE GROUND  WAS EZRI THE SON OF CHELUB:J# 27 AND OVER THE VINEYARDS WAS SHIMEI THE RAMATHITE: OVER THE INCREASE OF< THE VINEYARDS FOR THE WINE CELLARS WAS ZABDI THE SHIPHMITE:I# 28 AND OVER THE OLIVE TREES AND THE SYCOMORE TREES THAT WERE IN THE LOWOJ PLAINS WAS BAALHANAN THE GEDERITE: AND OVER THE CELLARS OF OIL WAS JOASH:I# 29 AND OVER THE HERDS THAT FED IN SHARON WAS SHITRAI THE SHARONITE: ANDLF OVER THE HERDS THAT WERE IN THE VALLEYS WAS SHAPHAT THE SON OF ADLAI:I# 30 OVER THE CAMELS ALSO WAS OBIL THE ISHMAELITE: AND OVER THE ASSES WAS JEHDEIAH THE MERONOTHITE:M# 31 AND OVER THE FLOCKS WAS JAZIZ THE HAGERITE. ALL THESE WERE THE RULERS OFL% THE SUBSTANCE WHICH WAS KING DAVIDS.OK# 32 ALSO JONATHAN DAVIDS UNCLE WAS A COUNSELLOR, A WISE MAN, AND A SCRIBE: 8 AND JEHIEL THE SON OF HACHMONI WAS WITH THE KINGS SONS:L# 33 AND AHITHOPHEL WAS THE KINGS COUNSELLOR: AND HUSHAI THE ARCHITE WAS THE KINGS COMPANION: L# 34 AND AFTER AHITHOPHEL WAS JEHOIADA THE SON OF BENAIAH, AND ABIATHAR: AND( THE GENERAL OF THE KINGS ARMY WAS JOAB. = CHAPTER 28 HM# 1 AND DAVID ASSEMBLED ALL THE PRINCES OF ISRAEL, THE PRINCES OF THE TRIBES,EM AND00k 3E1D%5%T6%! ! THE CAPTAINS OF THE COMPANIES THAT MINISTERED TO THE KING BY COURSE, ANDHI THE CAPTAINS OVER THE THOUSANDS, AND CAPTAINS OVER THE HUNDREDS, AND THEHM STEWARDS OVER ALL THE SUBSTANCE AND POSSESSION OF THE KING, AND OF HIS SONS,OJ WITH THE OFFICERS, AND WITH THE MIGHTY MEN, AND WITH ALL THE VALIANT MEN, UNTO JERUSALEM.E# 2 THEN DAVID THE KING STOOD UP UPON HIS FEET, AND SAID, HEAR ME, MY M BRETHREN, AND MY PEOPLE: AS FOR ME, I HAD IN MINE HEART TO BUILD AN HOUSE OFEK REST FOR THE ARK OF THE COVENANT OF THE LORD, AND FOR THE FOOTSTOOL OF OURT* GOD, AND HAD MADE READY FOR THE BUILDING:L# 3 BUT GOD SAID UNTO ME, THOU SHALT NOT BUILD AN HOUSE FOR MY NAME, BECAUSE2 THOU HAST BEEN A MAN OF WAR, AND HAST SHED BLOOD.M# 4 HOWBEIT THE LORD GOD OF ISRAEL CHOSE ME BEFORE ALL THE HOUSE OF MY FATHERAK TO BE KING OVER ISRAEL FOR EVER: FOR HE HATH CHOSEN JUDAH TO BE THE RULER; L AND OF THE HOUSE OF JUDAH, THE HOUSE OF MY FATHER; AND AMONG THE SONS OF MY4 FATHER HE LIKED ME TO MAKE ME KING OVER ALL ISRAEL:G# 5 AND OF ALL MY SONS, (FOR THE LORD HATH GIVEN ME MANY SONS,) HE HATHYM CHOSEN SOLOMON MY SON TO SIT UPON THE THRONE OF THE KINGDOM OF THE LORD OVER  ISRAEL.H# 6 AND HE SAID UNTO ME, SOLOMON THY SON, HE SHALL BUILD MY HOUSE AND MYF COURTS: FOR I HAVE CHOSEN HIM TO BE MY SON, AND I WILL BE HIS FATHER.K# 7 MOREOVER I WILL ESTABLISH HIS KINGDOM FOR EVER, IF HE BE CONSTANT TO DOO2 MY COMMANDMENTS AND MY JUDGMENTS, AS AT THIS DAY.J# 8 NOW THEREFORE IN THE SIGHT OF ALL ISRAEL THE CONGREGATION OF THE LORD,N AND IN THE AUDIENCE OF OUR GOD, KEEP AND SEEK FOR ALL THE COMMANDMENTS OF THEG LORD YOUR GOD: THAT YE MAY POSSESS THIS GOOD LAND, AND LEAVE IT FOR ANI2 INHERITANCE FOR YOUR CHILDREN AFTER YOU FOR EVER.L# 9 AND THOU, SOLOMON MY SON, KNOW THOU THE GOD OF THY FATHER, AND SERVE HIMI WITH A PERFECT HEART AND WITH A WILLING MIND: FOR THE LORD SEARCHETH ALL M HEARTS, AND UNDERSTANDETH ALL THE IMAGINATIONS OF THE THOUGHTS: IF THOU SEEK N HIM, HE WILL BE FOUND OF THEE; BUT IF THOU FORSAKE HIM, HE WILL CAST THEE OFF FOR EVER.K# 10 TAKE HEED NOW; FOR THE LORD HATH CHOSEN THEE TO BUILD AN HOUSE FOR THE ! SANCTUARY: BE STRONG, AND DO IT. L# 11 THEN DAVID GAVE TO SOLOMON HIS SON THE PATTERN OF THE PORCH, AND OF THEI HOUSES THEREOF, AND OF THE TREASURIES THEREOF, AND OF THE UPPER CHAMBERSWJ THEREOF, AND OF THE INNER PARLOURS THEREOF, AND OF THE PLACE OF THE MERCY SEAT,K# 12 AND THE PATTERN OF ALL THAT HE HAD BY THE SPIRIT, OF THE COURTS OF THEEM HOUSE OF THE LORD, AND OF ALL THE CHAMBERS ROUND ABOUT, OF THE TREASURIES OFEA THE HOUSE OF GOD, AND OF THE TREASURIES OF THE DEDICATED THINGS:OI# 13 ALSO FOR THE COURSES OF THE PRIESTS AND THE LEVITES, AND FOR ALL THEOI WORK OF THE SERVICE OF THE HOUSE OF THE LORD, AND FOR ALL THE VESSELS OF " SERVICE IN THE HOUSE OF THE LORD.M# 14 HE GAVE OF GOLD BY WEIGHT FOR THINGS OF GOLD, FOR ALL INSTRUMENTS OF ALLFL MANNER OF SERVICE; SILVER ALSO FOR ALL INSTRUMENTS OF SILVER BY WEIGHT, FOR* ALL INSTRUMENTS OF EVERY KIND OF SERVICE:I# 15 EVEN THE WEIGHT FOR THE CANDLESTICKS OF GOLD, AND FOR THEIR LAMPS OFAN GOLD, BY WEIGHT FOR EVERY CANDLESTICK, AND FOR THE LAMPS THEREOF: AND FOR THEM CANDLESTICKS OF SILVER BY WEIGHT, BOTH FOR THE CANDLESTICK, AND ALSO FOR THEF: LAMPS THEREOF, ACCORDING TO THE USE OF EVERY CANDLESTICK.M# 16 AND BY WEIGHT HE GAVE GOLD FOR THE TABLES OF SHEWBREAD, FOR EVERY TABLE;R. AND LIKEWISE SILVER FOR THE TABLES OF SILVER:L# 17 ALSO PURE GOLD FOR THE FLESHHOOKS, AND THE BOWLS, AND THE CUPS: AND FORN THE GOLDEN BASONS HE GAVE GOLD BY WEIGHT FOR EVERY BASON; AND LIKEWISE SILVER% BY WEIGHT FOR EVERY BASON OF SILVER:LJ# 18 AND FOR THE ALTAR OF INCENSE REFINED GOLD BY WEIGHT; AND GOLD FOR THEJ PATTERN OF THE CHARIOT OF THE CHERUBIMS, THAT SPREAD OUT THEIR WINGS, AND- COVERED THE ARK OF THE COVENANT OF THE LORD. M# 19 ALL THIS, SAID DAVID, THE LORD MADE ME UNDERSTAND IN WRITING BY HIS HANDS- UPON ME, EVEN ALL THE WORKS OF THIS PATTERN.UM# 20 AND DAVID SAID TO SOLOMON HIS SON, BE STRONG AND OF GOOD COURAGE, AND DOAK IT: FEAR NOT, NOR BE DISMAYED00k(3J2<%X>%+%O-%TADATADATA: FOR THE LORD GOD, EVEN MY GOD, WILL BE WITHFL THEE; HE WILL NOT FAIL THEE, NOR FORSAKE THEE, UNTIL THOU HAST FINISHED ALL3 THE WORK FOR THE SERVICE OF THE HOUSE OF THE LORD.TM# 21 AND, BEHOLD, THE COURSES OF THE PRIESTS AND THE LEVITES, EVEN THEY SHALLTN BE WITH THEE FOR ALL THE SERVICE OF THE HOUSE OF GOD: AND THERE SHALL BE WITHM THEE FOR ALL MANNER OF WORKMANSHIP EVERY WILLING SKILFUL MAN, FOR ANY MANNERSF OF SERVICE: ALSO THE PRINCES AND ALL THE PEOPLE WILL BE WHOLLY AT THY COMMANDMENT.I = CHAPTER 29 N# 1 FURTHERMORE DAVID THE KING SAID UNTO ALL THE CONGREGATION, SOLOMON MY SON,L WHOM ALONE GOD HATH CHOSEN, IS YET YOUNG AND TENDER, AND THE WORK IS GREAT:5 FOR THE PALACE IS NOT FOR MAN, BUT FOR THE LORD GOD.SJ# 2 NOW I HAVE PREPARED WITH ALL MY MIGHT FOR THE HOUSE OF MY GOD THE GOLDL FOR THINGS TO BE MADE OF GOLD, AND THE SILVER FOR THINGS OF SILVER, AND THEL BRASS FOR THINGS OF BRASS, THE IRON FOR THINGS OF IRON, AND WOOD FOR THINGSM OF WOOD; ONYX STONES, AND STONES TO BE SET, GLISTERING STONES, AND OF DIVERSML COLOURS, AND ALL MANNER OF PRECIOUS STONES, AND MARBLE STONES IN ABUNDANCE.L# 3 MOREOVER, BECAUSE I HAVE SET MY AFFECTION TO THE HOUSE OF MY GOD, I HAVEM OF MINE OWN PROPER GOOD, OF GOLD AND SILVER, WHICH I HAVE GIVEN TO THE HOUSEMG OF MY GOD, OVER AND ABOVE ALL THAT I HAVE PREPARED FOR THE HOLY HOUSE. H# 4 EVEN THREE THOUSAND TALENTS OF GOLD, OF THE GOLD OF OPHIR, AND SEVENG THOUSAND TALENTS OF REFINED SILVER, TO OVERLAY THE WALLS OF THE HOUSESA WITHAL:M# 5 THE GOLD FOR THINGS OF GOLD, AND THE SILVER FOR THINGS OF SILVER, AND FOROJ ALL MANNER OF WORK TO BE MADE BY THE HANDS OF ARTIFICERS. AND WHO THEN IS: WILLING TO CONSECRATE HIS SERVICE THIS DAY UNTO THE LORD?M# 6 THEN THE CHIEF OF THE FATHERS AND PRINCES OF THE TRIBES OF ISRAEL AND THEVJ CAPTAINS OF THOUSANDS AND OF HUNDREDS, WITH THE RULERS OF THE KINGS WORK, OFFERED WILLINGLY,LF# 7 AND GAVE FOR THE SERVICE OF THE HOUSE OF GOD OF GOLD FIVE THOUSANDK TALENTS AND TEN THOUSAND DRAMS, AND OF SILVER TEN THOUSAND TALENTS, AND OFLK BRASS EIGHTEEN THOUSAND TALENTS, AND ONE HUNDRED THOUSAND TALENTS OF IRON.AK# 8 AND THEY WITH WHOM PRECIOUS STONES WERE FOUND GAVE THEM TO THE TREASURER@ OF THE HOUSE OF THE LORD, BY THE HAND OF JEHIEL THE GERSHONITE.K# 9 THEN THE PEOPLE REJOICED, FOR THAT THEY OFFERED WILLINGLY, BECAUSE WITHDJ PERFECT HEART THEY OFFERED WILLINGLY TO THE LORD: AND DAVID THE KING ALSO REJOICED WITH GREAT JOY.SL# 10 WHEREFORE DAVID BLESSED THE LORD BEFORE ALL THE CONGREGATION: AND DAVIDI SAID, BLESSED BE THOU, LORD GOD OF ISRAEL OUR FATHER, FOR EVER AND EVER.UJ# 11 THINE, O LORD IS THE GREATNESS, AND THE POWER, AND THE GLORY, AND THEL VICTORY, AND THE MAJESTY: FOR ALL THAT IS IN THE HEAVEN AND IN THE EARTH ISM THINE; THINE IS THE KINGDOM, O LORD, AND THOU ART EXALTED AS HEAD ABOVE ALL.LL# 12 BOTH RICHES AND HONOUR COME OF THEE, AND THOU REIGNEST OVER ALL; AND INM THINE HAND IS POWER AND MIGHT; AND IN THINE HAND IT IS TO MAKE GREAT, AND TOE GIVE STRENGTH UNTO ALL.I# 13 NOW THEREFORE, OUR GOD, WE THANK THEE, AND PRAISE THY GLORIOUS NAME.FL# 14 BUT WHO AM I, AND WHAT IS MY PEOPLE, THAT WE SHOULD BE ABLE TO OFFER SON WILLINGLY AFTER THIS SORT? FOR ALL THINGS COME OF THEE, AND OF THINE OWN HAVE WE GIVEN THEE.TF# 15 FOR WE ARE STRANGERS BEFORE THEE, AND SOJOURNERS, AS WERE ALL OURK FATHERS: OUR DAYS ON THE EARTH ARE AS A SHADOW, AND THERE IS NONE ABIDING.NJ# 16 O LORD OUR GOD, ALL THIS STORE THAT WE HAVE PREPARED TO BUILD THEE ANF HOUSE FOR THINE HOLY NAME COMETH OF THINE HAND, AND IS ALL THINE OWN.J# 17 I KNOW ALSO, MY GOD, THAT THOU TRIEST THE HEART, AND HAST PLEASURE INJ UPRIGHTNESS. AS FOR ME, IN THE UPRIGHTNESS OF MINE HEART I HAVE WILLINGLYM OFFERED ALL THESE THINGS: AND NOW HAVE I SEEN WITH JOY THY PEOPLE, WHICH ARE , PRESENT HERE, TO OFFER WILLINGLY UNTO THEE.L# 18 O LORD GOD OF ABRAHAM, ISAAC, AND OF ISRAEL, OUR FATHERS, KEEP THIS FORH EVER IN THE IMAGINATION OF THE THOUGHTS OF THE HEART OF THY PEOPLE, AND PREPARE THEIR HEART UNTO THEE: L# 19 AND GIVE UNTO SOLOMON MY SON A PERFECT 00k03l43D%5%T6%! !HEART, TO KEEP THY COMMANDMENTS,L THY TESTIMONIES, AND THY STATUTES, AND TO DO ALL THESE THINGS, AND TO BUILD1 THE PALACE, FOR THE WHICH I HAVE MADE PROVISION.RM# 20 AND DAVID SAID TO ALL THE CONGREGATION, NOW BLESS THE LORD YOUR GOD. ANDEK ALL THE CONGREGATION BLESSED THE LORD GOD OF THEIR FATHERS, AND BOWED DOWND4 THEIR HEADS, AND WORSHIPPED THE LORD, AND THE KING.D# 21 AND THEY SACRIFICED SACRIFICES UNTO THE LORD, AND OFFERED BURNTG OFFERINGS UNTO THE LORD, ON THE MORROW AFTER THAT DAY, EVEN A THOUSAND,M BULLOCKS, A THOUSAND RAMS, AND A THOUSAND LAMBS, WITH THEIR DRINK OFFERINGS,H, AND SACRIFICES IN ABUNDANCE FOR ALL ISRAEL:K# 22 AND DID EAT AND DRINK BEFORE THE LORD ON THAT DAY WITH GREAT GLADNESS.NN AND THEY MADE SOLOMON THE SON OF DAVID KING THE SECOND TIME, AND ANOINTED HIM@ UNTO THE LORD TO BE THE CHIEF GOVERNOR, AND ZADOK TO BE PRIEST.L# 23 THEN SOLOMON SAT ON THE THRONE OF THE LORD AS KING INSTEAD OF DAVID HIS2 FATHER, AND PROSPERED; AND ALL ISRAEL OBEYED HIM.J# 24 AND ALL THE PRINCES, AND THE MIGHTY MEN, AND ALL THE SONS LIKEWISE OF8 KING DAVID, SUBMITTED THEMSELVES UNTO SOLOMON THE KING.K# 25 AND THE LORD MAGNIFIED SOLOMON EXCEEDINGLY IN THE SIGHT OF ALL ISRAEL,DL AND BESTOWED UPON HIM SUCH ROYAL MAJESTY AS HAD NOT BEEN ON ANY KING BEFORE HIM IN ISRAEL.I9# 26 THUS DAVID THE SON OF JESSE REIGNED OVER ALL ISRAEL.KJ# 27 AND THE TIME THAT HE REIGNED OVER ISRAEL WAS FORTY YEARS; SEVEN YEARSJ REIGNED HE IN HEBRON, AND THIRTY AND THREE YEARS REIGNED HE IN JERUSALEM.I# 28 AND HE DIED IN A GOOD OLD AGE, FULL OF DAYS, RICHES, AND HONOUR: AND & SOLOMON HIS SON REIGNED IN HIS STEAD.M# 29 NOW THE ACTS OF DAVID THE KING, FIRST AND LAST, BEHOLD, THEY ARE WRITTEN N IN THE BOOK OF SAMUEL THE SEER, AND IN THE BOOK OF NATHAN THE PROPHET, AND IN THE BOOK OF GAD THE SEER, ITTL# 30 WITH ALL HIS REIGN AND HIS MIGHT, AND THE TIMES THAT WENT OVER HIM, AND9 OVER ISRAEL, AND OVER ALL THE KINGDOMS OF THE COUNTRIES.D HE IN HEBRON, AND THIRTY AND THREE YEARS REIGNED HE IN JERUSALEM.I# 28 AND HE DIED* BOOK14 2CHRONICLES = CHAPTER 1 N# 1 AND SOLOMON THE SON OF DAVID WAS STRENGTHENED IN HIS KINGDOM, AND THE LORD5 HIS GOD WAS WITH HIM, AND MAGNIFIED HIM EXCEEDINGLY.K# 2 THEN SOLOMON SPAKE UNTO ALL ISRAEL, TO THE CAPTAINS OF THOUSANDS AND OFL HUNDREDS, AND TO THE JUDGES, AND TO EVERY GOVERNOR IN ALL ISRAEL, THE CHIEF OF THE FATHERS.I# 3 SO SOLOMON, AND ALL THE CONGREGATION WITH HIM, WENT TO THE HIGH PLACEM THAT WAS AT GIBEON; FOR THERE WAS THE TABERNACLE OF THE CONGREGATION OF GOD,@ WHICH MOSES THE SERVANT OF THE LORD HAD MADE IN THE WILDERNESS.K# 4 BUT THE ARK OF GOD HAD DAVID BROUGHT UP FROM KIRJATHJEARIM TO THE PLACETE WHICH DAVID HAD PREPARED FOR IT: FOR HE HAD PITCHED A TENT FOR IT AT JERUSALEM.EL# 5 MOREOVER THE BRASEN ALTAR, THAT BEZALEEL THE SON OF URI, THE SON OF HUR,H HAD MADE, HE PUT BEFORE THE TABERNACLE OF THE LORD: AND SOLOMON AND THE CONGREGATION SOUGHT UNTO IT. J# 6 AND SOLOMON WENT UP THITHER TO THE BRASEN ALTAR BEFORE THE LORD, WHICHH WAS AT THE TABERNACLE OF THE CONGREGATION, AND OFFERED A THOUSAND BURNT OFFERINGS UPON IT.UL# 7 IN THAT NIGHT DID GOD APPEAR UNTO SOLOMON, AND SAID UNTO HIM, ASK WHAT I SHALL GIVE THEE. I# 8 AND SOLOMON SAID UNTO GOD, THOU HAST SHEWED GREAT MERCY UNTO DAVID MYE0 FATHER, AND HAST MADE ME TO REIGN IN HIS STEAD.M# 9 NOW, O LORD GOD, LET THY PROMISE UNTO DAVID MY FATHER BE ESTABLISHED: FORDN THOU HAST MADE ME KING OVER A PEOPLE LIKE THE DUST OF THE EARTH IN MULTITUDE.K# 10 GIVE ME NOW WISDOM AND KNOWLEDGE, THAT I MAY GO OUT AND COME IN BEFORE B THIS PEOPLE: FOR WHO CAN JUDGE THIS THY PEOPLE, THAT IS SO GREAT?L# 11 AND GOD SAID TO SOLOMON, BECAUSE THIS WAS IN THINE HEART, AND THOU HASTL NOT ASKED RICHES, WEALTH, OR HONOUR, NOR THE LIFE OF THINE ENEMIES, NEITHERK YET HAST ASKED LONG LIFE; BUT HAST ASKED WISDOM AND KNOWLEDGE FOR THYSELF,TC THAT THOU MAYEST JUDGE MY PEOPLE, OVER WHOM I HAVE MADE THEE KING: L# 12 WISDOM AND KNOWLEDGE IS GRANTED UNTO THEE; AND I WILL GIVE THEE RICHES,J AND WEALTH, AND HONOUR, SUCH AS NONE OF THE K00l83J2<%X>%+%O-%TADATADATAINGS HAVE HAD THAT HAVE BEEN? BEFORE THEE, NEITHER SHALL THERE ANY AFTER THEE HAVE THE LIKE.GL# 13 THEN SOLOMON CAME FROM HIS JOURNEY TO THE HIGH PLACE THAT WAS AT GIBEONJ TO JERUSALEM, FROM BEFORE THE TABERNACLE OF THE CONGREGATION, AND REIGNED OVER ISRAEL.FJ# 14 AND SOLOMON GATHERED CHARIOTS AND HORSEMEN: AND HE HAD A THOUSAND ANDL FOUR HUNDRED CHARIOTS, AND TWELVE THOUSAND HORSEMEN, WHICH HE PLACED IN THE0 CHARIOT CITIES, AND WITH THE KING AT JERUSALEM.K# 15 AND THE KING MADE SILVER AND GOLD AT JERUSALEM AS PLENTEOUS AS STONES,FG AND CEDAR TREES MADE HE AS THE SYCOMORE TREES THAT ARE IN THE VALE FORO ABUNDANCE.OK# 16 AND SOLOMON HAD HORSES BROUGHT OUT OF EGYPT, AND LINEN YARN: THE KINGSE. MERCHANTS RECEIVED THE LINEN YARN AT A PRICE.J# 17 AND THEY FETCHED UP, AND BROUGHT FORTH OUT OF EGYPT A CHARIOT FOR SIXI HUNDRED SHEKELS OF SILVER, AND AN HORSE FOR AN HUNDRED AND FIFTY: AND SOCM BROUGHT THEY OUT HORSES FOR ALL THE KINGS OF THE HITTITES, AND FOR THE KINGST OF SYRIA, BY THEIR MEANS. = CHAPTER 2 M# 1 AND SOLOMON DETERMINED TO BUILD AN HOUSE FOR THE NAME OF THE LORD, AND ANR HOUSE FOR HIS KINGDOM.DM# 2 AND SOLOMON TOLD OUT THREESCORE AND TEN THOUSAND MEN TO BEAR BURDENS, ANDIN FOURSCORE THOUSAND TO HEW IN THE MOUNTAIN, AND THREE THOUSAND AND SIX HUNDRED TO OVERSEE THEM.UJ# 3 AND SOLOMON SENT TO HURAM THE KING OF TYRE, SAYING, AS THOU DIDST DEALI WITH DAVID MY FATHER, AND DIDST SEND HIM CEDARS TO BUILD HIM AN HOUSE TO % DWELL THEREIN, EVEN SO DEAL WITH ME.YK# 4 BEHOLD, I BUILD AN HOUSE TO THE NAME OF THE LORD MY GOD, TO DEDICATE ITUD TO HIM, AND TO BURN BEFORE HIM SWEET INCENSE, AND FOR THE CONTINUALM SHEWBREAD, AND FOR THE BURNT OFFERINGS MORNING AND EVENING, ON THE SABBATHS,SL AND ON THE NEW MOONS, AND ON THE SOLEMN FEASTS OF THE LORD OUR GOD. THIS IS! AN ORDINANCE FOR EVER TO ISRAEL.TH# 5 AND THE HOUSE WHICH I BUILD IS GREAT: FOR GREAT IS OUR GOD ABOVE ALL GODS.J# 6 BUT WHO IS ABLE TO BUILD HIM AN HOUSE, SEEING THE HEAVEN AND HEAVEN OFM HEAVENS CANNOT CONTAIN HIM? WHO AM I THEN, THAT I SHOULD BUILD HIM AN HOUSE,E( SAVE ONLY TO BURN SACRIFICE BEFORE HIM?K# 7 SEND ME NOW THEREFORE A MAN CUNNING TO WORK IN GOLD, AND IN SILVER, ANDGJ IN BRASS, AND IN IRON, AND IN PURPLE, AND CRIMSON, AND BLUE, AND THAT CANE SKILL TO GRAVE WITH THE CUNNING MEN THAT ARE WITH ME IN JUDAH AND INS- JERUSALEM, WHOM DAVID MY FATHER DID PROVIDE.TM# 8 SEND ME ALSO CEDAR TREES, FIR TREES, AND ALGUM TREES, OUT OF LEBANON: FOROM I KNOW THAT THY SERVANTS CAN SKILL TO CUT TIMBER IN LEBANON; AND, BEHOLD, MYN% SERVANTS SHALL BE WITH THY SERVANTS,SM# 9 EVEN TO PREPARE ME TIMBER IN ABUNDANCE: FOR THE HOUSE WHICH I AM ABOUT TO BUILD SHALL BE WONDERFUL GREAT.J# 10 AND, BEHOLD, I WILL GIVE TO THY SERVANTS, THE HEWERS THAT CUT TIMBER,J TWENTY THOUSAND MEASURES OF BEATEN WHEAT, AND TWENTY THOUSAND MEASURES OFM BARLEY, AND TWENTY THOUSAND BATHS OF WINE, AND TWENTY THOUSAND BATHS OF OIL.IF# 11 THEN HURAM THE KING OF TYRE ANSWERED IN WRITING, WHICH HE SENT TOM SOLOMON, BECAUSE THE LORD HATH LOVED HIS PEOPLE, HE HATH MADE THEE KING OVER  THEM.M# 12 HURAM SAID MOREOVER, BLESSED BE THE LORD GOD OF ISRAEL, THAT MADE HEAVENOM AND EARTH, WHO HATH GIVEN TO DAVID THE KING A WISE SON, ENDUED WITH PRUDENCESL AND UNDERSTANDING, THAT MIGHT BUILD AN HOUSE FOR THE LORD, AND AN HOUSE FOR HIS KINGDOM.HK# 13 AND NOW I HAVE SENT A CUNNING MAN, ENDUED WITH UNDERSTANDING, OF HURAMO MY FATHERS,L# 14 THE SON OF A WOMAN OF THE DAUGHTERS OF DAN, AND HIS FATHER WAS A MAN OFK TYRE, SKILFUL TO WORK IN GOLD, AND IN SILVER, IN BRASS, IN IRON, IN STONE,EN AND IN TIMBER, IN PURPLE, IN BLUE, AND IN FINE LINEN, AND IN CRIMSON; ALSO TOM GRAVE ANY MANNER OF GRAVING, AND TO FIND OUT EVERY DEVICE WHICH SHALL BE PUTHL TO HIM, WITH THY CUNNING MEN, AND WITH THE CUNNING MEN OF MY LORD DAVID THY FATHER.M# 15 NOW THEREFORE THE WHEAT, AND THE BARLEY, THE OIL, AND THE WINE, WHICH MYD5 LORD HATH SPOKEN OF, LET HIM SEND UNTO HIS SERVANTS:FL# 16 AND WE WILL CUT WOOD OUT OF LEBANON, AS MUCH AS THOU SHALT NEED: AND WEL WILL BRING IT T00l@343D%5%T6%! !O THEE IN FLOATS BY SEA TO JOPPA; AND THOU SHALT CARRY IT UP TO JERUSALEM.L# 17 AND SOLOMON NUMBERED ALL THE STRANGERS THAT WERE IN THE LAND OF ISRAEL,K AFTER THE NUMBERING WHEREWITH DAVID HIS FATHER HAD NUMBERED THEM; AND THEYTM WERE FOUND AN HUNDRED AND FIFTY THOUSAND AND THREE THOUSAND AND SIX HUNDRED. M# 18 AND HE SET THREESCORE AND TEN THOUSAND OF THEM TO BE BEARERS OF BURDENS, L AND FOURSCORE THOUSAND TO BE HEWERS IN THE MOUNTAIN, AND THREE THOUSAND AND0 SIX HUNDRED OVERSEERS TO SET THE PEOPLE A WORK. = CHAPTER 3 K# 1 THEN SOLOMON BEGAN TO BUILD THE HOUSE OF THE LORD AT JERUSALEM IN MOUNTEI MORIAH, WHERE THE LORD APPEARED UNTO DAVID HIS FATHER, IN THE PLACE THATG@ DAVID HAD PREPARED IN THE THRESHINGFLOOR OF ORNAN THE JEBUSITE.G# 2 AND HE BEGAN TO BUILD IN THE SECOND DAY OF THE SECOND MONTH, IN THE  FOURTH YEAR OF HIS REIGN.L# 3 NOW THESE ARE THE THINGS WHEREIN SOLOMON WAS INSTRUCTED FOR THE BUILDINGF OF THE HOUSE OF GOD. THE LENGTH BY CUBITS AFTER THE FIRST MEASURE WAS2 THREESCORE CUBITS, AND THE BREADTH TWENTY CUBITS.J# 4 AND THE PORCH THAT WAS IN THE FRONT OF THE HOUSE, THE LENGTH OF IT WASL ACCORDING TO THE BREADTH OF THE HOUSE, TWENTY CUBITS, AND THE HEIGHT WAS AN> HUNDRED AND TWENTY: AND HE OVERLAID IT WITHIN WITH PURE GOLD.I# 5 AND THE GREATER HOUSE HE CIELED WITH FIR TREE, WHICH HE OVERLAID WITHE2 FINE GOLD, AND SET THEREON PALM TREES AND CHAINS.L# 6 AND HE GARNISHED THE HOUSE WITH PRECIOUS STONES FOR BEAUTY: AND THE GOLD WAS GOLD OF PARVAIM.TL# 7 HE OVERLAID ALSO THE HOUSE, THE BEAMS, THE POSTS, AND THE WALLS THEREOF,E AND THE DOORS THEREOF, WITH GOLD; AND GRAVED CHERUBIMS ON THE WALLS.IL# 8 AND HE MADE THE MOST HOLY HOUSE, THE LENGTH WHEREOF WAS ACCORDING TO THEL BREADTH OF THE HOUSE, TWENTY CUBITS, AND THE BREADTH THEREOF TWENTY CUBITS:E AND HE OVERLAID IT WITH FINE GOLD, AMOUNTING TO SIX HUNDRED TALENTS.EJ# 9 AND THE WEIGHT OF THE NAILS WAS FIFTY SHEKELS OF GOLD. AND HE OVERLAID THE UPPER CHAMBERS WITH GOLD.H# 10 AND IN THE MOST HOLY HOUSE HE MADE TWO CHERUBIMS OF IMAGE WORK, AND OVERLAID THEM WITH GOLD.OL# 11 AND THE WINGS OF THE CHERUBIMS WERE TWENTY CUBITS LONG: ONE WING OF THEM ONE CHERUB WAS FIVE CUBITS, REACHING TO THE WALL OF THE HOUSE: AND THE OTHEREI WING WAS LIKEWISE FIVE CUBITS, REACHING TO THE WING OF THE OTHER CHERUB.AK# 12 AND ONE WING OF THE OTHER CHERUB WAS FIVE CUBITS, REACHING TO THE WALL N OF THE HOUSE: AND THE OTHER WING WAS FIVE CUBITS ALSO, JOINING TO THE WING OF THE OTHER CHERUB.L# 13 THE WINGS OF THESE CHERUBIMS SPREAD THEMSELVES FORTH TWENTY CUBITS: AND7 THEY STOOD ON THEIR FEET, AND THEIR FACES WERE INWARD.MK# 14 AND HE MADE THE VAIL OF BLUE, AND PURPLE, AND CRIMSON, AND FINE LINEN,H AND WROUGHT CHERUBIMS THEREON. H# 15 ALSO HE MADE BEFORE THE HOUSE TWO PILLARS OF THIRTY AND FIVE CUBITSL HIGH, AND THE CHAPITER THAT WAS ON THE TOP OF EACH OF THEM WAS FIVE CUBITS.K# 16 AND HE MADE CHAINS, AS IN THE ORACLE, AND PUT THEM ON THE HEADS OF THE G PILLARS; AND MADE AN HUNDRED POMEGRANATES, AND PUT THEM ON THE CHAINS.EK# 17 AND HE REARED UP THE PILLARS BEFORE THE TEMPLE, ONE ON THE RIGHT HAND,FI AND THE OTHER ON THE LEFT; AND CALLED THE NAME OF THAT ON THE RIGHT HANDS/ JACHIN, AND THE NAME OF THAT ON THE LEFT BOAZ.E = CHAPTER 4 M# 1 MOREOVER HE MADE AN ALTAR OF BRASS, TWENTY CUBITS THE LENGTH THEREOF, ANDEF TWENTY CUBITS THE BREADTH THEREOF, AND TEN CUBITS THE HEIGHT THEREOF.G# 2 ALSO HE MADE A MOLTEN SEA OF TEN CUBITS FROM BRIM TO BRIM, ROUND INLM COMPASS, AND FIVE CUBITS THE HEIGHT THEREOF; AND A LINE OF THIRTY CUBITS DIDH COMPASS IT ROUND ABOUT.G# 3 AND UNDER IT WAS THE SIMILITUDE OF OXEN, WHICH DID COMPASS IT ROUND M ABOUT: TEN IN A CUBIT, COMPASSING THE SEA ROUND ABOUT. TWO ROWS OF OXEN WEREE CAST, WHEN IT WAS CAST.H# 4 IT STOOD UPON TWELVE OXEN, THREE LOOKING TOWARD THE NORTH, AND THREEG LOOKING TOWARD THE WEST, AND THREE LOOKING TOWARD THE SOUTH, AND THREERL LOOKING TOWARD THE EAST: AND THE SEA WAS SET ABOVE UPON THEM, AND ALL THEIR HINDER PARTS WERE INWARD.K# 5 AND THE THICKNESS OF IT WAS AN HANDBREADTH, AND 00lH3J2<%X>%+%O-%TADATADATATHE BRIM OF IT LIKE THE.L WORK OF THE BRIM OF A CUP, WITH FLOWERS OF LILIES; AND IT RECEIVED AND HELD THREE THOUSAND BATHS.L# 6 HE MADE ALSO TEN LAVERS, AND PUT FIVE ON THE RIGHT HAND, AND FIVE ON THEJ LEFT, TO WASH IN THEM: SUCH THINGS AS THEY OFFERED FOR THE BURNT OFFERINGA THEY WASHED IN THEM; BUT THE SEA WAS FOR THE PRIESTS TO WASH IN.HI# 7 AND HE MADE TEN CANDLESTICKS OF GOLD ACCORDING TO THEIR FORM, AND SETLB THEM IN THE TEMPLE, FIVE ON THE RIGHT HAND, AND FIVE ON THE LEFT.M# 8 HE MADE ALSO TEN TABLES, AND PLACED THEM IN THE TEMPLE, FIVE ON THE RIGHTFC SIDE, AND FIVE ON THE LEFT. AND HE MADE AN HUNDRED BASONS OF GOLD. J# 9 FURTHERMORE HE MADE THE COURT OF THE PRIESTS, AND THE GREAT COURT, AND@ DOORS FOR THE COURT, AND OVERLAID THE DOORS OF THEM WITH BRASS.K# 10 AND HE SET THE SEA ON THE RIGHT SIDE OF THE EAST END, OVER AGAINST THE SOUTH.EH# 11 AND HURAM MADE THE POTS, AND THE SHOVELS, AND THE BASONS. AND HURAMM FINISHED THE WORK THAT HE WAS TO MAKE FOR KING SOLOMON FOR THE HOUSE OF GOD;NK# 12 TO WIT, THE TWO PILLARS, AND THE POMMELS, AND THE CHAPITERS WHICH WERENL ON THE TOP OF THE TWO PILLARS, AND THE TWO WREATHS TO COVER THE TWO POMMELS7 OF THE CHAPITERS WHICH WERE ON THE TOP OF THE PILLARS;FB# 13 AND FOUR HUNDRED POMEGRANATES ON THE TWO WREATHS; TWO ROWS OFM POMEGRANATES ON EACH WREATH, TO COVER THE TWO POMMELS OF THE CHAPITERS WHICH  WERE UPON THE PILLARS.S;# 14 HE MADE ALSO BASES, AND LAVERS MADE HE UPON THE BASES;O'# 15 ONE SEA, AND TWELVE OXEN UNDER IT.OF# 16 THE POTS ALSO, AND THE SHOVELS, AND THE FLESHHOOKS, AND ALL THEIRL INSTRUMENTS, DID HURAM HIS FATHER MAKE TO KING SOLOMON FOR THE HOUSE OF THE LORD OF BRIGHT BRASS.F# 17 IN THE PLAIN OF JORDAN DID THE KING CAST THEM, IN THE CLAY GROUND BETWEEN SUCCOTH AND ZEREDATHAH.K# 18 THUS SOLOMON MADE ALL THESE VESSELS IN GREAT ABUNDANCE: FOR THE WEIGHTS% OF THE BRASS COULD NOT BE FOUND OUT.EI# 19 AND SOLOMON MADE ALL THE VESSELS THAT WERE FOR THE HOUSE OF GOD, THE A GOLDEN ALTAR ALSO, AND THE TABLES WHEREON THE SHEWBREAD WAS SET; L# 20 MOREOVER THE CANDLESTICKS WITH THEIR LAMPS, THAT THEY SHOULD BURN AFTER, THE MANNER BEFORE THE ORACLE, OF PURE GOLD;M# 21 AND THE FLOWERS, AND THE LAMPS, AND THE TONGS, MADE HE OF GOLD, AND THATE PERFECT GOLD;J# 22 AND THE SNUFFERS, AND THE BASONS, AND THE SPOONS, AND THE CENSERS, OFL PURE GOLD: AND THE ENTRY OF THE HOUSE, THE INNER DOORS THEREOF FOR THE MOSTD HOLY PLACE, AND THE DOORS OF THE HOUSE OF THE TEMPLE, WERE OF GOLD. = CHAPTER 5 E# 1 THUS ALL THE WORK THAT SOLOMON MADE FOR THE HOUSE OF THE LORD WASHJ FINISHED: AND SOLOMON BROUGHT IN ALL THE THINGS THAT DAVID HIS FATHER HADI DEDICATED; AND THE SILVER, AND THE GOLD, AND ALL THE INSTRUMENTS, PUT HEE) AMONG THE TREASURES OF THE HOUSE OF GOD.TI# 2 THEN SOLOMON ASSEMBLED THE ELDERS OF ISRAEL, AND ALL THE HEADS OF THEEL TRIBES, THE CHIEF OF THE FATHERS OF THE CHILDREN OF ISRAEL, UNTO JERUSALEM,J TO BRING UP THE ARK OF THE COVENANT OF THE LORD OUT OF THE CITY OF DAVID, WHICH IS ZION. M# 3 WHEREFORE ALL THE MEN OF ISRAEL ASSEMBLED THEMSELVES UNTO THE KING IN THE:& FEAST WHICH WAS IN THE SEVENTH MONTH.G# 4 AND ALL THE ELDERS OF ISRAEL CAME; AND THE LEVITES TOOK UP THE ARK.LL# 5 AND THEY BROUGHT UP THE ARK, AND THE TABERNACLE OF THE CONGREGATION, ANDL ALL THE HOLY VESSELS THAT WERE IN THE TABERNACLE, THESE DID THE PRIESTS AND THE LEVITES BRING UP.M# 6 ALSO KING SOLOMON, AND ALL THE CONGREGATION OF ISRAEL THAT WERE ASSEMBLEDAL UNTO HIM BEFORE THE ARK, SACRIFICED SHEEP AND OXEN, WHICH COULD NOT BE TOLD NOR NUMBERED FOR MULTITUDE.K# 7 AND THE PRIESTS BROUGHT IN THE ARK OF THE COVENANT OF THE LORD UNTO HISNL PLACE, TO THE ORACLE OF THE HOUSE, INTO THE MOST HOLY PLACE, EVEN UNDER THE WINGS OF THE CHERUBIMS:M# 8 FOR THE CHERUBIMS SPREAD FORTH THEIR WINGS OVER THE PLACE OF THE ARK, ANDE< THE CHERUBIMS COVERED THE ARK AND THE STAVES THEREOF ABOVE.M# 9 AND THEY DREW OUT THE STAVES OF THE ARK, THAT THE ENDS OF THE STAVES WEREAI SEEN FROM THE ARK BEFORE THE ORACLE; BUT THEY WERE NOT SEEN WITHOUT. ANDO THERE IT IS UNTO 00lP343D%5%T6%! !THIS DAY.DM# 10 THERE WAS NOTHING IN THE ARK SAVE THE TWO TABLES WHICH MOSES PUT THEREINNJ AT HOREB, WHEN THE LORD MADE A COVENANT WITH THE CHILDREN OF ISRAEL, WHEN THEY CAME OUT OF EGYPT.K# 11 AND IT CAME TO PASS, WHEN THE PRIESTS WERE COME OUT OF THE HOLY PLACE: N (FOR ALL THE PRIESTS THAT WERE PRESENT WERE SANCTIFIED, AND DID NOT THEN WAIT BY COURSE: M# 12 ALSO THE LEVITES WHICH WERE THE SINGERS, ALL OF THEM OF ASAPH, OF HEMAN, H OF JEDUTHUN, WITH THEIR SONS AND THEIR BRETHREN, BEING ARRAYED IN WHITEM LINEN, HAVING CYMBALS AND PSALTERIES AND HARPS, STOOD AT THE EAST END OF THERL ALTAR, AND WITH THEM AN HUNDRED AND TWENTY PRIESTS SOUNDING WITH TRUMPETS:)M# 13 IT CAME EVEN TO PASS, AS THE TRUMPETERS AND SINGERS WERE AS ONE, TO MAKEON ONE SOUND TO BE HEARD IN PRAISING AND THANKING THE LORD; AND WHEN THEY LIFTEDL UP THEIR VOICE WITH THE TRUMPETS AND CYMBALS AND INSTRUMENTS OF MUSICK, ANDK PRAISED THE LORD, SAYING, FOR HE IS GOOD; FOR HIS MERCY ENDURETH FOR EVER: I THAT THEN THE HOUSE WAS FILLED WITH A CLOUD, EVEN THE HOUSE OF THE LORD;EL# 14 SO THAT THE PRIESTS COULD NOT STAND TO MINISTER BY REASON OF THE CLOUD:7 FOR THE GLORY OF THE LORD HAD FILLED THE HOUSE OF GOD.E = CHAPTER 6 J# 1 THEN SAID SOLOMON, THE LORD HATH SAID THAT HE WOULD DWELL IN THE THICK DARKNESS.I# 2 BUT I HAVE BUILT AN HOUSE OF HABITATION FOR THEE, AND A PLACE FOR THYT DWELLING FOR EVER.TG# 3 AND THE KING TURNED HIS FACE, AND BLESSED THE WHOLE CONGREGATION OFS2 ISRAEL: AND ALL THE CONGREGATION OF ISRAEL STOOD.K# 4 AND HE SAID, BLESSED BE THE LORD GOD OF ISRAEL, WHO HATH WITH HIS HANDSCI FULFILLED THAT WHICH HE SPAKE WITH HIS MOUTH TO MY FATHER DAVID, SAYING,OK# 5 SINCE THE DAY THAT I BROUGHT FORTH MY PEOPLE OUT OF THE LAND OF EGYPT IRK CHOSE NO CITY AMONG ALL THE TRIBES OF ISRAEL TO BUILD AN HOUSE IN, THAT MYTJ NAME MIGHT BE THERE; NEITHER CHOSE I ANY MAN TO BE A RULER OVER MY PEOPLE ISRAEL:M# 6 BUT I HAVE CHOSEN JERUSALEM, THAT MY NAME MIGHT BE THERE; AND HAVE CHOSENA# DAVID TO BE OVER MY PEOPLE ISRAEL.M# 7 NOW IT WAS IN THE HEART OF DAVID MY FATHER TO BUILD AN HOUSE FOR THE NAMEF OF THE LORD GOD OF ISRAEL.WL# 8 BUT THE LORD SAID TO DAVID MY FATHER, FORASMUCH AS IT WAS IN THINE HEARTN TO BUILD AN HOUSE FOR MY NAME, THOU DIDST WELL IN THAT IT WAS IN THINE HEART:K# 9 NOTWITHSTANDING THOU SHALT NOT BUILD THE HOUSE; BUT THY SON WHICH SHALL C COME FORTH OUT OF THY LOINS, HE SHALL BUILD THE HOUSE FOR MY NAME.EM# 10 THE LORD THEREFORE HATH PERFORMED HIS WORD THAT HE HATH SPOKEN: FOR I AMYM RISEN UP IN THE ROOM OF DAVID MY FATHER, AND AM SET ON THE THRONE OF ISRAEL,UL AS THE LORD PROMISED, AND HAVE BUILT THE HOUSE FOR THE NAME OF THE LORD GOD OF ISRAEL.OL# 11 AND IN IT HAVE I PUT THE ARK, WHEREIN IS THE COVENANT OF THE LORD, THAT% HE MADE WITH THE CHILDREN OF ISRAEL. I# 12 AND HE STOOD BEFORE THE ALTAR OF THE LORD IN THE PRESENCE OF ALL THEC4 CONGREGATION OF ISRAEL, AND SPREAD FORTH HIS HANDS:I# 13 FOR SOLOMON HAD MADE A BRASEN SCAFFOLD OF FIVE CUBITS LONG, AND FIVESH CUBITS BROAD, AND THREE CUBITS HIGH, AND HAD SET IT IN THE MIDST OF THEL COURT: AND UPON IT HE STOOD, AND KNEELED DOWN UPON HIS KNEES BEFORE ALL THEB CONGREGATION OF ISRAEL, AND SPREAD FORTH HIS HANDS TOWARD HEAVEN.M# 14 AND SAID, O LORD GOD OF ISRAEL, THERE IS NO GOD LIKE THEE IN THE HEAVEN,SE NOR IN THE EARTH; WHICH KEEPEST COVENANT, AND SHEWEST MERCY UNTO THYO7 SERVANTS, THAT WALK BEFORE THEE WITH ALL THEIR HEARTS: J# 15 THOU WHICH HAST KEPT WITH THY SERVANT DAVID MY FATHER THAT WHICH THOUJ HAST PROMISED HIM; AND SPAKEST WITH THY MOUTH, AND HAST FULFILLED IT WITH THINE HAND, AS IT IS THIS DAY.DH# 16 NOW THEREFORE, O LORD GOD OF ISRAEL, KEEP WITH THY SERVANT DAVID MYN FATHER THAT WHICH THOU HAST PROMISED HIM, SAYING, THERE SHALL NOT FAIL THEE AK MAN IN MY SIGHT TO SIT UPON THE THRONE OF ISRAEL; YET SO THAT THY CHILDRENCI TAKE HEED TO THEIR WAY TO WALK IN MY LAW, AS THOU HAST WALKED BEFORE ME. I# 17 NOW THEN, O LORD GOD OF ISRAEL, LET THY WORD BE VERIFIED, WHICH THOUH$ HAST SPOKEN UNTO THY SERVANT DAVID.J# 18 BUT WILL GOD IN00lX3J2<%X>%+%O-%TADATADATA VERY DEED DWELL WITH MEN ON THE EARTH? BEHOLD, HEAVENN AND THE HEAVEN OF HEAVENS CANNOT CONTAIN THEE; HOW MUCH LESS THIS HOUSE WHICH I HAVE BUILT!D# 19 HAVE RESPECT THEREFORE TO THE PRAYER OF THY SERVANT, AND TO HISN SUPPLICATION, O LORD MY GOD, TO HEARKEN UNTO THE CRY AND THE PRAYER WHICH THY SERVANT PRAYETH BEFORE THEE:LH# 20 THAT THINE EYES MAY BE OPEN UPON THIS HOUSE DAY AND NIGHT, UPON THEG PLACE WHEREOF THOU HAST SAID THAT THOU WOULDEST PUT THY NAME THERE; TOVE HEARKEN UNTO THE PRAYER WHICH THY SERVANT PRAYETH TOWARD THIS PLACE. H# 21 HEARKEN THEREFORE UNTO THE SUPPLICATIONS OF THY SERVANT, AND OF THYK PEOPLE ISRAEL, WHICH THEY SHALL MAKE TOWARD THIS PLACE: HEAR THOU FROM THYEB DWELLING PLACE, EVEN FROM HEAVEN; AND WHEN THOU HEAREST, FORGIVE.M# 22 IF A MAN SIN AGAINST HIS NEIGHBOUR, AND AN OATH BE LAID UPON HIM TO MAKET? HIM SWEAR, AND THE OATH COME BEFORE THINE ALTAR IN THIS HOUSE;EM# 23 THEN HEAR THOU FROM HEAVEN, AND DO, AND JUDGE THY SERVANTS, BY REQUITINGAM THE WICKED, BY RECOMPENSING HIS WAY UPON HIS OWN HEAD; AND BY JUSTIFYING THEN9 RIGHTEOUS, BY GIVING HIM ACCORDING TO HIS RIGHTEOUSNESS.YK# 24 AND IF THY PEOPLE ISRAEL BE PUT TO THE WORSE BEFORE THE ENEMY, BECAUSEEJ THEY HAVE SINNED AGAINST THEE; AND SHALL RETURN AND CONFESS THY NAME, AND6 PRAY AND MAKE SUPPLICATION BEFORE THEE IN THIS HOUSE;G# 25 THEN HEAR THOU FROM THE HEAVENS, AND FORGIVE THE SIN OF THY PEOPLESL ISRAEL, AND BRING THEM AGAIN UNTO THE LAND WHICH THOU GAVEST TO THEM AND TO THEIR FATHERS.WH# 26 WHEN THE HEAVEN IS SHUT UP, AND THERE IS NO RAIN, BECAUSE THEY HAVEI SINNED AGAINST THEE; YET IF THEY PRAY TOWARD THIS PLACE, AND CONFESS THY < NAME, AND TURN FROM THEIR SIN, WHEN THOU DOST AFFLICT THEM;L# 27 THEN HEAR THOU FROM HEAVEN, AND FORGIVE THE SIN OF THY SERVANTS, AND OFI THY PEOPLE ISRAEL, WHEN THOU HAST TAUGHT THEM THE GOOD WAY, WHEREIN THEYRI SHOULD WALK; AND SEND RAIN UPON THY LAND, WHICH THOU HAST GIVEN UNTO THY  PEOPLE FOR AN INHERITANCE.UH# 28 IF THERE BE DEARTH IN THE LAND, IF THERE BE PESTILENCE, IF THERE BEM BLASTING, OR MILDEW, LOCUSTS, OR CATERPILLERS; IF THEIR ENEMIES BESIEGE THEMYN IN THE CITIES OF THEIR LAND; WHATSOEVER SORE OR WHATSOEVER SICKNESS THERE BE:K# 29 THEN WHAT PRAYER OR WHAT SUPPLICATION SOEVER SHALL BE MADE OF ANY MAN,HL OR OF ALL THY PEOPLE ISRAEL, WHEN EVERY ONE SHALL KNOW HIS OWN SORE AND HIS; OWN GRIEF, AND SHALL SPREAD FORTH HIS HANDS IN THIS HOUSE:WK# 30 THEN HEAR THOU FROM HEAVEN THY DWELLING PLACE, AND FORGIVE, AND RENDEREK UNTO EVERY MAN ACCORDING UNTO ALL HIS WAYS, WHOSE HEART THOU KNOWEST; (FORW6 THOU ONLY KNOWEST THE HEARTS OF THE CHILDREN OF MEN:)J# 31 THAT THEY MAY FEAR THEE, TO WALK IN THY WAYS, SO LONG AS THEY LIVE IN- THE LAND WHICH THOU GAVEST UNTO OUR FATHERS.IM# 32 MOREOVER CONCERNING THE STRANGER, WHICH IS NOT OF THY PEOPLE ISRAEL, BUTON IS COME FROM A FAR COUNTRY FOR THY GREAT NAMES SAKE, AND THY MIGHTY HAND, AND< THY STRETCHED OUT ARM; IF THEY COME AND PRAY IN THIS HOUSE;J# 33 THEN HEAR THOU FROM THE HEAVENS, EVEN FROM THY DWELLING PLACE, AND DOK ACCORDING TO ALL THAT THE STRANGER CALLETH TO THEE FOR; THAT ALL PEOPLE OFDK THE EARTH MAY KNOW THY NAME, AND FEAR THEE, AS DOTH THY PEOPLE ISRAEL, ANDHC MAY KNOW THAT THIS HOUSE WHICH I HAVE BUILT IS CALLED BY THY NAME.OK# 34 IF THY PEOPLE GO OUT TO WAR AGAINST THEIR ENEMIES BY THE WAY THAT THOUEJ SHALT SEND THEM, AND THEY PRAY UNTO THEE TOWARD THIS CITY WHICH THOU HAST7 CHOSEN, AND THE HOUSE WHICH I HAVE BUILT FOR THY NAME;M# 35 THEN HEAR THOU FROM THE HEAVENS THEIR PRAYER AND THEIR SUPPLICATION, ANDC MAINTAIN THEIR CAUSE.K# 36 IF THEY SIN AGAINST THEE, (FOR THERE IS NO MAN WHICH SINNETH NOT,) ANDEN THOU BE ANGRY WITH THEM, AND DELIVER THEM OVER BEFORE THEIR ENEMIES, AND THEY6 CARRY THEM AWAY CAPTIVES UNTO A LAND FAR OFF OR NEAR;H# 37 YET IF THEY BETHINK THEMSELVES IN THE LAND WHITHER THEY ARE CARRIEDM CAPTIVE, AND TURN AND PRAY UNTO THEE IN THE LAND OF THEIR CAPTIVITY, SAYING,E= WE HAVE SINNED, WE HAVE DONE AMISS, AND HAVE DEALT WICKEDLY;RK# 38 IF THEY RETURN TO THEE WITH ALL THEIR H00l`343D%5%T6%! !EART AND WITH ALL THEIR SOUL INSJ THE LAND OF THEIR CAPTIVITY, WHITHER THEY HAVE CARRIED THEM CAPTIVES, ANDM PRAY TOWARD THEIR LAND, WHICH THOU GAVEST UNTO THEIR FATHERS, AND TOWARD THE M CITY WHICH THOU HAST CHOSEN, AND TOWARD THE HOUSE WHICH I HAVE BUILT FOR THYB NAME:I# 39 THEN HEAR THOU FROM THE HEAVENS, EVEN FROM THY DWELLING PLACE, THEIR J PRAYER AND THEIR SUPPLICATIONS, AND MAINTAIN THEIR CAUSE, AND FORGIVE THY' PEOPLE WHICH HAVE SINNED AGAINST THEE. M# 40 NOW, MY GOD, LET, I BESEECH THEE, THINE EYES BE OPEN, AND LET THINE EARSE6 BE ATTENT UNTO THE PRAYER THAT IS MADE IN THIS PLACE.K# 41 NOW THEREFORE ARISE, O LORD GOD, INTO THY RESTING PLACE, THOU, AND THE,M ARK OF THY STRENGTH: LET THY PRIESTS, O LORD GOD, BE CLOTHED WITH SALVATION,V( AND LET THY SAINTS REJOICE IN GOODNESS.G# 42 O LORD GOD, TURN NOT AWAY THE FACE OF THINE ANOINTED: REMEMBER THEH MERCIES OF DAVID THY SERVANT. = CHAPTER 7 H# 1 NOW WHEN SOLOMON HAD MADE AN END OF PRAYING, THE FIRE CAME DOWN FROMM HEAVEN, AND CONSUMED THE BURNT OFFERING AND THE SACRIFICES; AND THE GLORY OF  THE LORD FILLED THE HOUSE.IK# 2 AND THE PRIESTS COULD NOT ENTER INTO THE HOUSE OF THE LORD, BECAUSE THE . GLORY OF THE LORD HAD FILLED THE LORDS HOUSE.K# 3 AND WHEN ALL THE CHILDREN OF ISRAEL SAW HOW THE FIRE CAME DOWN, AND THENL GLORY OF THE LORD UPON THE HOUSE, THEY BOWED THEMSELVES WITH THEIR FACES TOL THE GROUND UPON THE PAVEMENT, AND WORSHIPPED, AND PRAISED THE LORD, SAYING,1 FOR HE IS GOOD; FOR HIS MERCY ENDURETH FOR EVER.,H# 4 THEN THE KING AND ALL THE PEOPLE OFFERED SACRIFICES BEFORE THE LORD.M# 5 AND KING SOLOMON OFFERED A SACRIFICE OF TWENTY AND TWO THOUSAND OXEN, ANDOE AN HUNDRED AND TWENTY THOUSAND SHEEP: SO THE KING AND ALL THE PEOPLE. DEDICATED THE HOUSE OF GOD.B# 6 AND THE PRIESTS WAITED ON THEIR OFFICES: THE LEVITES ALSO WITHK INSTRUMENTS OF MUSICK OF THE LORD, WHICH DAVID THE KING HAD MADE TO PRAISETK THE LORD, BECAUSE HIS MERCY ENDURETH FOR EVER, WHEN DAVID PRAISED BY THEIRFN MINISTRY; AND THE PRIESTS SOUNDED TRUMPETS BEFORE THEM, AND ALL ISRAEL STOOD.I# 7 MOREOVER SOLOMON HALLOWED THE MIDDLE OF THE COURT THAT WAS BEFORE THENL HOUSE OF THE LORD: FOR THERE HE OFFERED BURNT OFFERINGS, AND THE FAT OF THEN PEACE OFFERINGS, BECAUSE THE BRASEN ALTAR WHICH SOLOMON HAD MADE WAS NOT ABLEE TO RECEIVE THE BURNT OFFERINGS, AND THE MEAT OFFERINGS, AND THE FAT.HK# 8 ALSO AT THE SAME TIME SOLOMON KEPT THE FEAST SEVEN DAYS, AND ALL ISRAELYM WITH HIM, A VERY GREAT CONGREGATION, FROM THE ENTERING IN OF HAMATH UNTO THEU RIVER OF EGYPT.H# 9 AND IN THE EIGHTH DAY THEY MADE A SOLEMN ASSEMBLY: FOR THEY KEPT THE> DEDICATION OF THE ALTAR SEVEN DAYS, AND THE FEAST SEVEN DAYS.H# 10 AND ON THE THREE AND TWENTIETH DAY OF THE SEVENTH MONTH HE SENT THEL PEOPLE AWAY INTO THEIR TENTS, GLAD AND MERRY IN HEART FOR THE GOODNESS THATJ THE LORD HAD SHEWED UNTO DAVID, AND TO SOLOMON, AND TO ISRAEL HIS PEOPLE.J# 11 THUS SOLOMON FINISHED THE HOUSE OF THE LORD, AND THE KINGS HOUSE: ANDK ALL THAT CAME INTO SOLOMONS HEART TO MAKE IN THE HOUSE OF THE LORD, AND INN) HIS OWN HOUSE, HE PROSPEROUSLY EFFECTED.MI# 12 AND THE LORD APPEARED TO SOLOMON BY NIGHT, AND SAID UNTO HIM, I HAVESG HEARD THY PRAYER, AND HAVE CHOSEN THIS PLACE TO MYSELF FOR AN HOUSE OFH SACRIFICE.PK# 13 IF I SHUT UP HEAVEN THAT THERE BE NO RAIN, OR IF I COMMAND THE LOCUSTST= TO DEVOUR THE LAND, OR IF I SEND PESTILENCE AMONG MY PEOPLE;SL# 14 IF MY PEOPLE, WHICH ARE CALLED BY MY NAME, SHALL HUMBLE THEMSELVES, ANDJ PRAY, AND SEEK MY FACE, AND TURN FROM THEIR WICKED WAYS; THEN WILL I HEARC FROM HEAVEN, AND WILL FORGIVE THEIR SIN, AND WILL HEAL THEIR LAND.RK# 15 NOW MINE EYES SHALL BE OPEN, AND MINE EARS ATTENT UNTO THE PRAYER THAT, IS MADE IN THIS PLACE.CI# 16 FOR NOW HAVE I CHOSEN AND SANCTIFIED THIS HOUSE, THAT MY NAME MAY BEHI THERE FOR EVER: AND MINE EYES AND MINE HEART SHALL BE THERE PERPETUALLY.SF# 17 AND AS FOR THEE, IF THOU WILT WALK BEFORE ME, AS DAVID THY FATHERN WALKED, AND DO ACCORDING TO ALL THAT I HAVE COMMANDED THEE, AND SHALT OBSERVE MY STATUTES AND MY JUDGMENT00lh3J2<%X>%+%O-%TADATADATAS;H# 18 THEN WILL I STABLISH THE THRONE OF THY KINGDOM, ACCORDING AS I HAVEM COVENANTED WITH DAVID THY FATHER, SAYING, THERE SHALL NOT FAIL THEE A MAN TOI BE RULER IN ISRAEL.L# 19 BUT IF YE TURN AWAY, AND FORSAKE MY STATUTES AND MY COMMANDMENTS, WHICHL I HAVE SET BEFORE YOU, AND SHALL GO AND SERVE OTHER GODS, AND WORSHIP THEM;M# 20 THEN WILL I PLUCK THEM UP BY THE ROOTS OUT OF MY LAND WHICH I HAVE GIVENAN THEM; AND THIS HOUSE, WHICH I HAVE SANCTIFIED FOR MY NAME, WILL I CAST OUT OFK MY SIGHT, AND WILL MAKE IT TO BE A PROVERB AND A BYWORD AMONG ALL NATIONS.CI# 21 AND THIS HOUSE, WHICH IS HIGH, SHALL BE AN ASTONISHMENT TO EVERY ONETK THAT PASSETH BY IT; SO THAT HE SHALL SAY, WHY HATH THE LORD DONE THUS UNTOS THIS LAND, AND UNTO THIS HOUSE?I# 22 AND IT SHALL BE ANSWERED, BECAUSE THEY FORSOOK THE LORD GOD OF THEIRRM FATHERS, WHICH BROUGHT THEM FORTH OUT OF THE LAND OF EGYPT, AND LAID HOLD ONHL OTHER GODS, AND WORSHIPPED THEM, AND SERVED THEM: THEREFORE HATH HE BROUGHT ALL THIS EVIL UPON THEM.D = CHAPTER 8 M# 1 AND IT CAME TO PASS AT THE END OF TWENTY YEARS, WHEREIN SOLOMON HAD BUILT * THE HOUSE OF THE LORD, AND HIS OWN HOUSE,L# 2 THAT THE CITIES WHICH HURAM HAD RESTORED TO SOLOMON, SOLOMON BUILT THEM,2 AND CAUSED THE CHILDREN OF ISRAEL TO DWELL THERE.># 3 AND SOLOMON WENT TO HAMATHZOBAH, AND PREVAILED AGAINST IT.M# 4 AND HE BUILT TADMOR IN THE WILDERNESS, AND ALL THE STORE CITIES, WHICH HEH BUILT IN HAMATH.PG# 5 ALSO HE BUILT BETHHORON THE UPPER, AND BETHHORON THE NETHER, FENCED ( CITIES, WITH WALLS, GATES, AND BARS; ITG# 6 AND BAALATH, AND ALL THE STORE CITIES THAT SOLOMON HAD, AND ALL THE M CHARIOT CITIES, AND THE CITIES OF THE HORSEMEN, AND ALL THAT SOLOMON DESIREDOJ TO BUILD IN JERUSALEM, AND IN LEBANON, AND THROUGHOUT ALL THE LAND OF HIS DOMINION.K# 7 AS FOR ALL THE PEOPLE THAT WERE LEFT OF THE HITTITES, AND THE AMORITES,OJ AND THE PERIZZITES, AND THE HIVITES, AND THE JEBUSITES, WHICH WERE NOT OF ISRAEL,I# 8 BUT OF THEIR CHILDREN, WHO WERE LEFT AFTER THEM IN THE LAND, WHOM THEWL CHILDREN OF ISRAEL CONSUMED NOT, THEM DID SOLOMON MAKE TO PAY TRIBUTE UNTIL THIS DAY.L# 9 BUT OF THE CHILDREN OF ISRAEL DID SOLOMON MAKE NO SERVANTS FOR HIS WORK;I BUT THEY WERE MEN OF WAR, AND CHIEF OF HIS CAPTAINS, AND CAPTAINS OF HISL CHARIOTS AND HORSEMEN.OM# 10 AND THESE WERE THE CHIEF OF KING SOLOMONS OFFICERS, EVEN TWO HUNDRED ANDO' FIFTY, THAT BARE RULE OVER THE PEOPLE.NL# 11 AND SOLOMON BROUGHT UP THE DAUGHTER OF PHARAOH OUT OF THE CITY OF DAVIDI UNTO THE HOUSE THAT HE HAD BUILT FOR HER: FOR HE SAID, MY WIFE SHALL NOTTI DWELL IN THE HOUSE OF DAVID KING OF ISRAEL, BECAUSE THE PLACES ARE HOLY,I) WHEREUNTO THE ARK OF THE LORD HATH COME.SK# 12 THEN SOLOMON OFFERED BURNT OFFERINGS UNTO THE LORD ON THE ALTAR OF THET+ LORD, WHICH HE HAD BUILT BEFORE THE PORCH,AC# 13 EVEN AFTER A CERTAIN RATE EVERY DAY, OFFERING ACCORDING TO THENH COMMANDMENT OF MOSES, ON THE SABBATHS, AND ON THE NEW MOONS, AND ON THEH SOLEMN FEASTS, THREE TIMES IN THE YEAR, EVEN IN THE FEAST OF UNLEAVENEDC BREAD, AND IN THE FEAST OF WEEKS, AND IN THE FEAST OF TABERNACLES.SF# 14 AND HE APPOINTED, ACCORDING TO THE ORDER OF DAVID HIS FATHER, THEN COURSES OF THE PRIESTS TO THEIR SERVICE, AND THE LEVITES TO THEIR CHARGES, TOK PRAISE AND MINISTER BEFORE THE PRIESTS, AS THE DUTY OF EVERY DAY REQUIRED:3M THE PORTERS ALSO BY THEIR COURSES AT EVERY GATE: FOR SO HAD DAVID THE MAN OFO GOD COMMANDED.AL# 15 AND THEY DEPARTED NOT FROM THE COMMANDMENT OF THE KING UNTO THE PRIESTS@ AND LEVITES CONCERNING ANY MATTER, OR CONCERNING THE TREASURES.L# 16 NOW ALL THE WORK OF SOLOMON WAS PREPARED UNTO THE DAY OF THE FOUNDATIONN OF THE HOUSE OF THE LORD, AND UNTIL IT WAS FINISHED. SO THE HOUSE OF THE LORD WAS PERFECTED.TJ# 17 THEN WENT SOLOMON TO EZIONGEBER, AND TO ELOTH, AT THE SEA SIDE IN THE LAND OF EDOM.M# 18 AND HURAM SENT HIM BY THE HANDS OF HIS SERVANTS SHIPS, AND SERVANTS THATOH HAD KNOWLEDGE OF THE SEA; AND THEY WENT WITH THE SERVANTS OF SOLOMON TOK OPHIR, AND TOOK THENCE FOUR HUNDRED AND FIFTY TALENTS OF GOLD, AND BR00lp343D%5%T6%! !OUGHTH THEM TO KING SOLOMON. = CHAPTER 9 I# 1 AND WHEN THE QUEEN OF SHEBA HEARD OF THE FAME OF SOLOMON, SHE CAME TOLK PROVE SOLOMON WITH HARD QUESTIONS AT JERUSALEM, WITH A VERY GREAT COMPANY, M AND CAMELS THAT BARE SPICES, AND GOLD IN ABUNDANCE, AND PRECIOUS STONES: AND K WHEN SHE WAS COME TO SOLOMON, SHE COMMUNED WITH HIM OF ALL THAT WAS IN HERV HEART.OJ# 2 AND SOLOMON TOLD HER ALL HER QUESTIONS: AND THERE WAS NOTHING HID FROM SOLOMON WHICH HE TOLD HER NOT.RM# 3 AND WHEN THE QUEEN OF SHEBA HAD SEEN THE WISDOM OF SOLOMON, AND THE HOUSE  THAT HE HAD BUILT,EG# 4 AND THE MEAT OF HIS TABLE, AND THE SITTING OF HIS SERVANTS, AND THETI ATTENDANCE OF HIS MINISTERS, AND THEIR APPAREL; HIS CUPBEARERS ALSO, ANDTN THEIR APPAREL; AND HIS ASCENT BY WHICH HE WENT UP INTO THE HOUSE OF THE LORD;! THERE WAS NO MORE SPIRIT IN HER.ML# 5 AND SHE SAID TO THE KING, IT WAS A TRUE REPORT WHICH I HEARD IN MINE OWN' LAND OF THINE ACTS, AND OF THY WISDOM:NL# 6 HOWBEIT I BELIEVED NOT THEIR WORDS, UNTIL I CAME, AND MINE EYES HAD SEENN IT: AND, BEHOLD, THE ONE HALF OF THE GREATNESS OF THY WISDOM WAS NOT TOLD ME:* FOR THOU EXCEEDEST THE FAME THAT I HEARD.D# 7 HAPPY ARE THY MEN, AND HAPPY ARE THESE THY SERVANTS, WHICH STAND. CONTINUALLY BEFORE THEE, AND HEAR THY WISDOM.K# 8 BLESSED BE THE LORD THY GOD, WHICH DELIGHTED IN THEE TO SET THEE ON HIS J THRONE, TO BE KING FOR THE LORD THY GOD: BECAUSE THY GOD LOVED ISRAEL, TOF ESTABLISH THEM FOR EVER, THEREFORE MADE HE THEE KING OVER THEM, TO DO JUDGMENT AND JUSTICE.G# 9 AND SHE GAVE THE KING AN HUNDRED AND TWENTY TALENTS OF GOLD, AND OFTN SPICES GREAT ABUNDANCE, AND PRECIOUS STONES: NEITHER WAS THERE ANY SUCH SPICE) AS THE QUEEN OF SHEBA GAVE KING SOLOMON.AG# 10 AND THE SERVANTS ALSO OF HURAM, AND THE SERVANTS OF SOLOMON, WHICHSB BROUGHT GOLD FROM OPHIR, BROUGHT ALGUM TREES AND PRECIOUS STONES.L# 11 AND THE KING MADE OF THE ALGUM TREES TERRACES TO THE HOUSE OF THE LORD,N AND TO THE KINGS PALACE, AND HARPS AND PSALTERIES FOR SINGERS: AND THERE WERE, NONE SUCH SEEN BEFORE IN THE LAND OF JUDAH.K# 12 AND KING SOLOMON GAVE TO THE QUEEN OF SHEBA ALL HER DESIRE, WHATSOEVERIK SHE ASKED, BESIDE THAT WHICH SHE HAD BROUGHT UNTO THE KING. SO SHE TURNED,G5 AND WENT AWAY TO HER OWN LAND, SHE AND HER SERVANTS.EL# 13 NOW THE WEIGHT OF GOLD THAT CAME TO SOLOMON IN ONE YEAR WAS SIX HUNDRED( AND THREESCORE AND SIX TALENTS OF GOLD;J# 14 BESIDE THAT WHICH CHAPMEN AND MERCHANTS BROUGHT. AND ALL THE KINGS OFH ARABIA AND GOVERNORS OF THE COUNTRY BROUGHT GOLD AND SILVER TO SOLOMON.J# 15 AND KING SOLOMON MADE TWO HUNDRED TARGETS OF BEATEN GOLD: SIX HUNDRED+ SHEKELS OF BEATEN GOLD WENT TO ONE TARGET. L# 16 AND THREE HUNDRED SHIELDS MADE HE OF BEATEN GOLD: THREE HUNDRED SHEKELSM OF GOLD WENT TO ONE SHIELD. AND THE KING PUT THEM IN THE HOUSE OF THE FORESTM OF LEBANON.I# 17 MOREOVER THE KING MADE A GREAT THRONE OF IVORY, AND OVERLAID IT WITHB PURE GOLD.IL# 18 AND THERE WERE SIX STEPS TO THE THRONE, WITH A FOOTSTOOL OF GOLD, WHICHN WERE FASTENED TO THE THRONE, AND STAYS ON EACH SIDE OF THE SITTING PLACE, AND! TWO LIONS STANDING BY THE STAYS:SK# 19 AND TWELVE LIONS STOOD THERE ON THE ONE SIDE AND ON THE OTHER UPON THER7 SIX STEPS. THERE WAS NOT THE LIKE MADE IN ANY KINGDOM.K# 20 AND ALL THE DRINKING VESSELS OF KING SOLOMON WERE OF GOLD, AND ALL THEMN VESSELS OF THE HOUSE OF THE FOREST OF LEBANON WERE OF PURE GOLD: NONE WERE OFB SILVER; IT WAS NOT ANY THING ACCOUNTED OF IN THE DAYS OF SOLOMON.K# 21 FOR THE KINGS SHIPS WENT TO TARSHISH WITH THE SERVANTS OF HURAM: EVERYNN THREE YEARS ONCE CAME THE SHIPS OF TARSHISH BRINGING GOLD, AND SILVER, IVORY, AND APES, AND PEACOCKS.M# 22 AND KING SOLOMON PASSED ALL THE KINGS OF THE EARTH IN RICHES AND WISDOM.EK# 23 AND ALL THE KINGS OF THE EARTH SOUGHT THE PRESENCE OF SOLOMON, TO HEARE+ HIS WISDOM, THAT GOD HAD PUT IN HIS HEART. K# 24 AND THEY BROUGHT EVERY MAN HIS PRESENT, VESSELS OF SILVER, AND VESSELS M OF GOLD, AND RAIMENT, HARNESS, AND SPICES, HORSES, AND MULES, A RATE YEAR BYO YEAR.M# 25 AND SOLOMON HAD FOUR THOUSAND STALL00lx3J2<%X>%+%O-%TADATADATAS FOR HORSES AND CHARIOTS, AND TWELVEIM THOUSAND HORSEMEN; WHOM HE BESTOWED IN THE CHARIOT CITIES, AND WITH THE KINGO AT JERUSALEM.K# 26 AND HE REIGNED OVER ALL THE KINGS FROM THE RIVER EVEN UNTO THE LAND OF - THE PHILISTINES, AND TO THE BORDER OF EGYPT.M# 27 AND THE KING MADE SILVER IN JERUSALEM AS STONES, AND CEDAR TREES MADE HEI? AS THE SYCOMORE TREES THAT ARE IN THE LOW PLAINS IN ABUNDANCE.,M# 28 AND THEY BROUGHT UNTO SOLOMON HORSES OUT OF EGYPT, AND OUT OF ALL LANDS.MF# 29 NOW THE REST OF THE ACTS OF SOLOMON, FIRST AND LAST, ARE THEY NOTM WRITTEN IN THE BOOK OF NATHAN THE PROPHET, AND IN THE PROPHECY OF AHIJAH THEEK SHILONITE, AND IN THE VISIONS OF IDDO THE SEER AGAINST JEROBOAM THE SON OF  NEBAT?B# 30 AND SOLOMON REIGNED IN JERUSALEM OVER ALL ISRAEL FORTY YEARS.I# 31 AND SOLOMON SLEPT WITH HIS FATHERS, AND HE WAS BURIED IN THE CITY OFE= DAVID HIS FATHER: AND REHOBOAM HIS SON REIGNED IN HIS STEAD. = CHAPTER 10 LM# 1 AND REHOBOAM WENT TO SHECHEM: FOR TO SHECHEM WERE ALL ISRAEL COME TO MAKE HIM KING.J# 2 AND IT CAME TO PASS, WHEN JEROBOAM THE SON OF NEBAT, WHO WAS IN EGYPT,F WHITHER HE FLED FROM THE PRESENCE OF SOLOMON THE KING, HEARD IT, THAT JEROBOAM RETURNED OUT OF EGYPT.K# 3 AND THEY SENT AND CALLED HIM. SO JEROBOAM AND ALL ISRAEL CAME AND SPAKEE TO REHOBOAM, SAYING,SK# 4 THY FATHER MADE OUR YOKE GRIEVOUS: NOW THEREFORE EASE THOU SOMEWHAT THEAN GRIEVOUS SERVITUDE OF THY FATHER, AND HIS HEAVY YOKE THAT HE PUT UPON US, AND WE WILL SERVE THEE.G# 5 AND HE SAID UNTO THEM, COME AGAIN UNTO ME AFTER THREE DAYS. AND THE, PEOPLE DEPARTED.SI# 6 AND KING REHOBOAM TOOK COUNSEL WITH THE OLD MEN THAT HAD STOOD BEFOREOJ SOLOMON HIS FATHER WHILE HE YET LIVED, SAYING, WHAT COUNSEL GIVE YE ME TO RETURN ANSWER TO THIS PEOPLE?H# 7 AND THEY SPAKE UNTO HIM, SAYING, IF THOU BE KIND TO THIS PEOPLE, ANDI PLEASE THEM, AND SPEAK GOOD WORDS TO THEM, THEY WILL BE THY SERVANTS FORT EVER.K# 8 BUT HE FORSOOK THE COUNSEL WHICH THE OLD MEN GAVE HIM, AND TOOK COUNSELI WITH THE YOUNG MEN THAT WERE BROUGHT UP WITH HIM, THAT STOOD BEFORE HIM.PK# 9 AND HE SAID UNTO THEM, WHAT ADVICE GIVE YE THAT WE MAY RETURN ANSWER TODN THIS PEOPLE, WHICH HAVE SPOKEN TO ME, SAYING, EASE SOMEWHAT THE YOKE THAT THY FATHER DID PUT UPON US?L# 10 AND THE YOUNG MEN THAT WERE BROUGHT UP WITH HIM SPAKE UNTO HIM, SAYING,K THUS SHALT THOU ANSWER THE PEOPLE THAT SPAKE UNTO THEE, SAYING, THY FATHERRJ MADE OUR YOKE HEAVY, BUT MAKE THOU IT SOMEWHAT LIGHTER FOR US; THUS SHALTM THOU SAY UNTO THEM, MY LITTLE FINGER SHALL BE THICKER THAN MY FATHERS LOINS.TM# 11 FOR WHEREAS MY FATHER PUT A HEAVY YOKE UPON YOU, I WILL PUT MORE TO YOURTG YOKE: MY FATHER CHASTISED YOU WITH WHIPS, BUT I WILL CHASTISE YOU WITHH SCORPIONS.HM# 12 SO JEROBOAM AND ALL THE PEOPLE CAME TO REHOBOAM ON THE THIRD DAY, AS THEI6 KING BADE, SAYING, COME AGAIN TO ME ON THE THIRD DAY.F# 13 AND THE KING ANSWERED THEM ROUGHLY; AND KING REHOBOAM FORSOOK THE COUNSEL OF THE OLD MEN,K# 14 AND ANSWERED THEM AFTER THE ADVICE OF THE YOUNG MEN, SAYING, MY FATHEREK MADE YOUR YOKE HEAVY, BUT I WILL ADD THERETO: MY FATHER CHASTISED YOU WITH / WHIPS, BUT I WILL CHASTISE YOU WITH SCORPIONS.HI# 15 SO THE KING HEARKENED NOT UNTO THE PEOPLE: FOR THE CAUSE WAS OF GOD, K THAT THE LORD MIGHT PERFORM HIS WORD, WHICH HE SPAKE BY THE HAND OF AHIJAH, THE SHILONITE TO JEROBOAM THE SON OF NEBAT.K# 16 AND WHEN ALL ISRAEL SAW THAT THE KING WOULD NOT HEARKEN UNTO THEM, THETM PEOPLE ANSWERED THE KING, SAYING, WHAT PORTION HAVE WE IN DAVID? AND WE HAVEUM NONE INHERITANCE IN THE SON OF JESSE: EVERY MAN TO YOUR TENTS, O ISRAEL: ANDAG NOW, DAVID, SEE TO THINE OWN HOUSE. SO ALL ISRAEL WENT TO THEIR TENTS.HI# 17 BUT AS FOR THE CHILDREN OF ISRAEL THAT DWELT IN THE CITIES OF JUDAH,  REHOBOAM REIGNED OVER THEM.G# 18 THEN KING REHOBOAM SENT HADORAM THAT WAS OVER THE TRIBUTE; AND THEOK CHILDREN OF ISRAEL STONED HIM WITH STONES, THAT HE DIED. BUT KING REHOBOAMA? MADE SPEED TO GET HIM UP TO HIS CHARIOT, TO FLEE TO JERUSALEM.TB# 19 AND ISRAEL REBELLED AGAINST THE HOUSE OF DAVID UNTO T00l343D%5%T6%! !HIS DAY. = CHAPTER 11 NN# 1 AND WHEN REHOBOAM WAS COME TO JERUSALEM, HE GATHERED OF THE HOUSE OF JUDAHF AND BENJAMIN AN HUNDRED AND FOURSCORE THOUSAND CHOSEN MEN, WHICH WEREL WARRIORS, TO FIGHT AGAINST ISRAEL, THAT HE MIGHT BRING THE KINGDOM AGAIN TO REHOBOAM.E# 2 BUT THE WORD OF THE LORD CAME TO SHEMAIAH THE MAN OF GOD, SAYING,HL# 3 SPEAK UNTO REHOBOAM THE SON OF SOLOMON, KING OF JUDAH, AND TO ALL ISRAEL IN JUDAH AND BENJAMIN, SAYING,MM# 4 THUS SAITH THE LORD, YE SHALL NOT GO UP, NOR FIGHT AGAINST YOUR BRETHREN:EM RETURN EVERY MAN TO HIS HOUSE: FOR THIS THING IS DONE OF ME. AND THEY OBEYEDFA THE WORDS OF THE LORD, AND RETURNED FROM GOING AGAINST JEROBOAM. K# 5 AND REHOBOAM DWELT IN JERUSALEM, AND BUILT CITIES FOR DEFENCE IN JUDAH.O1# 6 HE BUILT EVEN BETHLEHEM, AND ETAM, AND TEKOA,D(# 7 AND BETHZUR, AND SHOCO, AND ADULLAM,%# 8 AND GATH, AND MARESHAH, AND ZIPH,L)# 9 AND ADORAIM, AND LACHISH, AND AZEKAH, K# 10 AND ZORAH, AND AIJALON, AND HEBRON, WHICH ARE IN JUDAH AND IN BENJAMINR FENCED CITIES.UK# 11 AND HE FORTIFIED THE STRONG HOLDS, AND PUT CAPTAINS IN THEM, AND STOREN! OF VICTUAL, AND OF OIL AND WINE.OG# 12 AND IN EVERY SEVERAL CITY HE PUT SHIELDS AND SPEARS, AND MADE THEM 9 EXCEEDING STRONG, HAVING JUDAH AND BENJAMIN ON HIS SIDE.BL# 13 AND THE PRIESTS AND THE LEVITES THAT WERE IN ALL ISRAEL RESORTED TO HIM OUT OF ALL THEIR COASTS.AI# 14 FOR THE LEVITES LEFT THEIR SUBURBS AND THEIR POSSESSION, AND CAME TORF JUDAH AND JERUSALEM: FOR JEROBOAM AND HIS SONS HAD CAST THEM OFF FROM, EXECUTING THE PRIESTS OFFICE UNTO THE LORD:M# 15 AND HE ORDAINED HIM PRIESTS FOR THE HIGH PLACES, AND FOR THE DEVILS, AND" FOR THE CALVES WHICH HE HAD MADE.L# 16 AND AFTER THEM OUT OF ALL THE TRIBES OF ISRAEL SUCH AS SET THEIR HEARTSM TO SEEK THE LORD GOD OF ISRAEL CAME TO JERUSALEM, TO SACRIFICE UNTO THE LORDL GOD OF THEIR FATHERS.L# 17 SO THEY STRENGTHENED THE KINGDOM OF JUDAH, AND MADE REHOBOAM THE SON OFM SOLOMON STRONG, THREE YEARS: FOR THREE YEARS THEY WALKED IN THE WAY OF DAVIDE AND SOLOMON.EM# 18 AND REHOBOAM TOOK HIM MAHALATH THE DAUGHTER OF JERIMOTH THE SON OF DAVIDT= TO WIFE, AND ABIHAIL THE DAUGHTER OF ELIAB THE SON OF JESSE; ># 19 WHICH BARE HIM CHILDREN; JEUSH, AND SHAMARIAH, AND ZAHAM.J# 20 AND AFTER HER HE TOOK MAACHAH THE DAUGHTER OF ABSALOM; WHICH BARE HIM, ABIJAH, AND ATTAI, AND ZIZA, AND SHELOMITH.K# 21 AND REHOBOAM LOVED MAACHAH THE DAUGHTER OF ABSALOM ABOVE ALL HIS WIVESHL AND HIS CONCUBINES: (FOR HE TOOK EIGHTEEN WIVES, AND THREESCORE CONCUBINES;< AND BEGAT TWENTY AND EIGHT SONS, AND THREESCORE DAUGHTERS.)M# 22 AND REHOBOAM MADE ABIJAH THE SON OF MAACHAH THE CHIEF, TO BE RULER AMONGR/ HIS BRETHREN: FOR HE THOUGHT TO MAKE HIM KING. J# 23 AND HE DEALT WISELY, AND DISPERSED OF ALL HIS CHILDREN THROUGHOUT ALLN THE COUNTRIES OF JUDAH AND BENJAMIN, UNTO EVERY FENCED CITY: AND HE GAVE THEM1 VICTUAL IN ABUNDANCE. AND HE DESIRED MANY WIVES.T = CHAPTER 12 BK# 1 AND IT CAME TO PASS, WHEN REHOBOAM HAD ESTABLISHED THE KINGDOM, AND HADEJ STRENGTHENED HIMSELF, HE FORSOOK THE LAW OF THE LORD, AND ALL ISRAEL WITH HIM. M# 2 AND IT CAME TO PASS, THAT IN THE FIFTH YEAR OF KING REHOBOAM SHISHAK KINGHN OF EGYPT CAME UP AGAINST JERUSALEM, BECAUSE THEY HAD TRANSGRESSED AGAINST THE LORD,K# 3 WITH TWELVE HUNDRED CHARIOTS, AND THREESCORE THOUSAND HORSEMEN: AND THEOL PEOPLE WERE WITHOUT NUMBER THAT CAME WITH HIM OUT OF EGYPT; THE LUBIMS, THE SUKKIIMS, AND THE ETHIOPIANS.G# 4 AND HE TOOK THE FENCED CITIES WHICH PERTAINED TO JUDAH, AND CAME TO JERUSALEM. L# 5 THEN CAME SHEMAIAH THE PROPHET TO REHOBOAM, AND TO THE PRINCES OF JUDAH,K THAT WERE GATHERED TOGETHER TO JERUSALEM BECAUSE OF SHISHAK, AND SAID UNTOGJ THEM, THUS SAITH THE LORD, YE HAVE FORSAKEN ME, AND THEREFORE HAVE I ALSO! LEFT YOU IN THE HAND OF SHISHAK.OM# 6 WHEREUPON THE PRINCES OF ISRAEL AND THE KING HUMBLED THEMSELVES; AND THEYT SAID, THE LORD IS RIGHTEOUS.EL# 7 AND WHEN THE LORD SAW THAT THEY HUMBLED THEMSELVES, THE WORD OF THE LORDM CAME TO SHEMAIAH, SAYING, THEY HAVE HUMBLED THEMSELVES; THEREFORE I WILL NOTT00l3J2<%X>%+%O-%TADATADATAM DESTROY THEM, BUT I WILL GRANT THEM SOME DELIVERANCE; AND MY WRATH SHALL NOTH5 BE POURED OUT UPON JERUSALEM BY THE HAND OF SHISHAK.EK# 8 NEVERTHELESS THEY SHALL BE HIS SERVANTS; THAT THEY MAY KNOW MY SERVICE, 2 AND THE SERVICE OF THE KINGDOMS OF THE COUNTRIES.I# 9 SO SHISHAK KING OF EGYPT CAME UP AGAINST JERUSALEM, AND TOOK AWAY THESM TREASURES OF THE HOUSE OF THE LORD, AND THE TREASURES OF THE KINGS HOUSE; HEOK TOOK ALL: HE CARRIED AWAY ALSO THE SHIELDS OF GOLD WHICH SOLOMON HAD MADE.EM# 10 INSTEAD OF WHICH KING REHOBOAM MADE SHIELDS OF BRASS, AND COMMITTED THEMTL TO THE HANDS OF THE CHIEF OF THE GUARD, THAT KEPT THE ENTRANCE OF THE KINGS HOUSE.TM# 11 AND WHEN THE KING ENTERED INTO THE HOUSE OF THE LORD, THE GUARD CAME AND = FETCHED THEM, AND BROUGHT THEM AGAIN INTO THE GUARD CHAMBER.MM# 12 AND WHEN HE HUMBLED HIMSELF, THE WRATH OF THE LORD TURNED FROM HIM, THAT,I HE WOULD NOT DESTROY HIM ALTOGETHER: AND ALSO IN JUDAH THINGS WENT WELL. I# 13 SO KING REHOBOAM STRENGTHENED HIMSELF IN JERUSALEM, AND REIGNED: FORHL REHOBOAM WAS ONE AND FORTY YEARS OLD WHEN HE BEGAN TO REIGN, AND HE REIGNEDL SEVENTEEN YEARS IN JERUSALEM, THE CITY WHICH THE LORD HAD CHOSEN OUT OF ALLM THE TRIBES OF ISRAEL, TO PUT HIS NAME THERE. AND HIS MOTHERS NAME WAS NAAMAHD AN AMMONITESS.II# 14 AND HE DID EVIL, BECAUSE HE PREPARED NOT HIS HEART TO SEEK THE LORD.TJ# 15 NOW THE ACTS OF REHOBOAM, FIRST AND LAST, ARE THEY NOT WRITTEN IN THEK BOOK OF SHEMAIAH THE PROPHET, AND OF IDDO THE SEER CONCERNING GENEALOGIES? ? AND THERE WERE WARS BETWEEN REHOBOAM AND JEROBOAM CONTINUALLY.LG# 16 AND REHOBOAM SLEPT WITH HIS FATHERS, AND WAS BURIED IN THE CITY OFT0 DAVID: AND ABIJAH HIS SON REIGNED IN HIS STEAD. = CHAPTER 13 EJ# 1 NOW IN THE EIGHTEENTH YEAR OF KING JEROBOAM BEGAN ABIJAH TO REIGN OVER JUDAH.DK# 2 HE REIGNED THREE YEARS IN JERUSALEM. HIS MOTHERS NAME ALSO WAS MICHAIAHTF THE DAUGHTER OF URIEL OF GIBEAH. AND THERE WAS WAR BETWEEN ABIJAH AND JEROBOAM.J# 3 AND ABIJAH SET THE BATTLE IN ARRAY WITH AN ARMY OF VALIANT MEN OF WAR,M EVEN FOUR HUNDRED THOUSAND CHOSEN MEN: JEROBOAM ALSO SET THE BATTLE IN ARRAYHH AGAINST HIM WITH EIGHT HUNDRED THOUSAND CHOSEN MEN, BEING MIGHTY MEN OF VALOUR.K# 4 AND ABIJAH STOOD UP UPON MOUNT ZEMARAIM, WHICH IS IN MOUNT EPHRAIM, ANDA. SAID, HEAR ME, THOU JEROBOAM, AND ALL ISRAEL;J# 5 OUGHT YE NOT TO KNOW THAT THE LORD GOD OF ISRAEL GAVE THE KINGDOM OVERM ISRAEL TO DAVID FOR EVER, EVEN TO HIM AND TO HIS SONS BY A COVENANT OF SALT? K# 6 YET JEROBOAM THE SON OF NEBAT, THE SERVANT OF SOLOMON THE SON OF DAVID,R1 IS RISEN UP, AND HATH REBELLED AGAINST HIS LORD. I# 7 AND THERE ARE GATHERED UNTO HIM VAIN MEN, THE CHILDREN OF BELIAL, ANDGG HAVE STRENGTHENED THEMSELVES AGAINST REHOBOAM THE SON OF SOLOMON, WHENID REHOBOAM WAS YOUNG AND TENDERHEARTED, AND COULD NOT WITHSTAND THEM.L# 8 AND NOW YE THINK TO WITHSTAND THE KINGDOM OF THE LORD IN THE HAND OF THEK SONS OF DAVID; AND YE BE A GREAT MULTITUDE, AND THERE ARE WITH YOUR GOLDEN * CALVES, WHICH JEROBOAM MADE YOU FOR GODS.L# 9 HAVE YE NOT CAST OUT THE PRIESTS OF THE LORD, THE SONS OF AARON, AND THEL LEVITES, AND HAVE MADE YOU PRIESTS AFTER THE MANNER OF THE NATIONS OF OTHERK LANDS? SO THAT WHOSOEVER COMETH TO CONSECRATE HIMSELF WITH A YOUNG BULLOCKOC AND SEVEN RAMS, THE SAME MAY BE A PRIEST OF THEM THAT ARE NO GODS.AJ# 10 BUT AS FOR US, THE LORD IS OUR GOD, AND WE HAVE NOT FORSAKEN HIM; ANDJ THE PRIESTS, WHICH MINISTER UNTO THE LORD, ARE THE SONS OF AARON, AND THE" LEVITES WAIT UPON THEIR BUSINESS:F# 11 AND THEY BURN UNTO THE LORD EVERY MORNING AND EVERY EVENING BURNTL SACRIFICES AND SWEET INCENSE: THE SHEWBREAD ALSO SET THEY IN ORDER UPON THEN PURE TABLE; AND THE CANDLESTICK OF GOLD WITH THE LAMPS THEREOF, TO BURN EVERYJ EVENING: FOR WE KEEP THE CHARGE OF THE LORD OUR GOD; BUT YE HAVE FORSAKEN HIM.EI# 12 AND, BEHOLD, GOD HIMSELF IS WITH US FOR OUR CAPTAIN, AND HIS PRIESTSEM WITH SOUNDING TRUMPETS TO CRY ALARM AGAINST YOU. O CHILDREN OF ISRAEL, FIGHTAG YE NOT AGAINST THE LORD GOD OF YOUR FATHERS; FOR YE SHALL NOT PROSPER.OI# 1300l343D%5%T6%! ! BUT JEROBOAM CAUSED AN AMBUSHMENT TO COME ABOUT BEHIND THEM: SO THEYE7 WERE BEFORE JUDAH, AND THE AMBUSHMENT WAS BEHIND THEM.AJ# 14 AND WHEN JUDAH LOOKED BACK, BEHOLD, THE BATTLE WAS BEFORE AND BEHIND:I AND THEY CRIED UNTO THE LORD, AND THE PRIESTS SOUNDED WITH THE TRUMPETS. L# 15 THEN THE MEN OF JUDAH GAVE A SHOUT: AND AS THE MEN OF JUDAH SHOUTED, ITN CAME TO PASS, THAT GOD SMOTE JEROBOAM AND ALL ISRAEL BEFORE ABIJAH AND JUDAH.I# 16 AND THE CHILDREN OF ISRAEL FLED BEFORE JUDAH: AND GOD DELIVERED THEMB INTO THEIR HAND.AI# 17 AND ABIJAH AND HIS PEOPLE SLEW THEM WITH A GREAT SLAUGHTER: SO THEREH< FELL DOWN SLAIN OF ISRAEL FIVE HUNDRED THOUSAND CHOSEN MEN.I# 18 THUS THE CHILDREN OF ISRAEL WERE BROUGHT UNDER AT THAT TIME, AND THE,L CHILDREN OF JUDAH PREVAILED, BECAUSE THEY RELIED UPON THE LORD GOD OF THEIR FATHERS.DM# 19 AND ABIJAH PURSUED AFTER JEROBOAM, AND TOOK CITIES FROM HIM, BETHEL WITHLM THE TOWNS THEREOF, AND JESHANAH WITH THE TOWNS THEREOF, AND EPHRAIM WITH THEU TOWNS THEREOF.VK# 20 NEITHER DID JEROBOAM RECOVER STRENGTH AGAIN IN THE DAYS OF ABIJAH: AND " THE LORD STRUCK HIM, AND HE DIED.J# 21 BUT ABIJAH WAXED MIGHTY, AND MARRIED FOURTEEN WIVES, AND BEGAT TWENTY% AND TWO SONS, AND SIXTEEN DAUGHTERS. K# 22 AND THE REST OF THE ACTS OF ABIJAH, AND HIS WAYS, AND HIS SAYINGS, ARER* WRITTEN IN THE STORY OF THE PROPHET IDDO. = CHAPTER 14 EH# 1 SO ABIJAH SLEPT WITH HIS FATHERS, AND THEY BURIED HIM IN THE CITY OFL DAVID: AND ASA HIS SON REIGNED IN HIS STEAD. IN HIS DAYS THE LAND WAS QUIET TEN YEARS.RI# 2 AND ASA DID THAT WHICH WAS GOOD AND RIGHT IN THE EYES OF THE LORD HISH GOD: M# 3 FOR HE TOOK AWAY THE ALTARS OF THE STRANGE GODS, AND THE HIGH PLACES, ANDW0 BRAKE DOWN THE IMAGES, AND CUT DOWN THE GROVES:L# 4 AND COMMANDED JUDAH TO SEEK THE LORD GOD OF THEIR FATHERS, AND TO DO THE LAW AND THE COMMANDMENT.OL# 5 ALSO HE TOOK AWAY OUT OF ALL THE CITIES OF JUDAH THE HIGH PLACES AND THE. IMAGES: AND THE KINGDOM WAS QUIET BEFORE HIM.M# 6 AND HE BUILT FENCED CITIES IN JUDAH: FOR THE LAND HAD REST, AND HE HAD NO 9 WAR IN THOSE YEARS; BECAUSE THE LORD HAD GIVEN HIM REST.IK# 7 THEREFORE HE SAID UNTO JUDAH, LET US BUILD THESE CITIES, AND MAKE ABOUT J THEM WALLS, AND TOWERS, GATES, AND BARS, WHILE THE LAND IS YET BEFORE US;I BECAUSE WE HAVE SOUGHT THE LORD OUR GOD, WE HAVE SOUGHT HIM, AND HE HATHT: GIVEN US REST ON EVERY SIDE. SO THEY BUILT AND PROSPERED.I# 8 AND ASA HAD AN ARMY OF MEN THAT BARE TARGETS AND SPEARS, OUT OF JUDAHRN THREE HUNDRED THOUSAND; AND OUT OF BENJAMIN, THAT BARE SHIELDS AND DREW BOWS,I TWO HUNDRED AND FOURSCORE THOUSAND: ALL THESE WERE MIGHTY MEN OF VALOUR.RI# 9 AND THERE CAME OUT AGAINST THEM ZERAH THE ETHIOPIAN WITH AN HOST OF A G THOUSAND THOUSAND, AND THREE HUNDRED CHARIOTS; AND CAME UNTO MARESHAH.CK# 10 THEN ASA WENT OUT AGAINST HIM, AND THEY SET THE BATTLE IN ARRAY IN THEN! VALLEY OF ZEPHATHAH AT MARESHAH.LL# 11 AND ASA CRIED UNTO THE LORD HIS GOD, AND SAID, LORD, IT IS NOTHING WITHM THEE TO HELP, WHETHER WITH MANY, OR WITH THEM THAT HAVE NO POWER: HELP US, O F LORD OUR GOD; FOR WE REST ON THEE, AND IN THY NAME WE GO AGAINST THISF MULTITUDE. O LORD, THOU ART OUR GOD; LET NO MAN PREVAIL AGAINST THEE.K# 12 SO THE LORD SMOTE THE ETHIOPIANS BEFORE ASA, AND BEFORE JUDAH; AND THEA ETHIOPIANS FLED.K# 13 AND ASA AND THE PEOPLE THAT WERE WITH HIM PURSUED THEM UNTO GERAR: ANDL THE ETHIOPIANS WERE OVERTHROWN, THAT THEY COULD NOT RECOVER THEMSELVES; FORK THEY WERE DESTROYED BEFORE THE LORD, AND BEFORE HIS HOST; AND THEY CARRIED  AWAY VERY MUCH SPOIL.I# 14 AND THEY SMOTE ALL THE CITIES ROUND ABOUT GERAR; FOR THE FEAR OF THEIN LORD CAME UPON THEM: AND THEY SPOILED ALL THE CITIES; FOR THERE WAS EXCEEDING MUCH SPOIL IN THEM.K# 15 THEY SMOTE ALSO THE TENTS OF CATTLE, AND CARRIED AWAY SHEEP AND CAMELS) IN ABUNDANCE, AND RETURNED TO JERUSALEM.H = CHAPTER 15 <# 1 AND THE SPIRIT OF GOD CAME UPON AZARIAH THE SON OF ODED:L# 2 AND HE WENT OUT TO MEET ASA, AND SAID UNTO HIM, HEAR YE ME, ASA, AND ALLJ JUDAH AND BENJAMIN; THE LORD IS WITH YOU, WHILE YE BE WIT00l3J2<%X>%+%O-%TADATADATAH HIM; AND IF YEJ SEEK HIM, HE WILL BE FOUND OF YOU; BUT IF YE FORSAKE HIM, HE WILL FORSAKE YOU. L# 3 NOW FOR A LONG SEASON ISRAEL HATH BEEN WITHOUT THE TRUE GOD, AND WITHOUT$ A TEACHING PRIEST, AND WITHOUT LAW.L# 4 BUT WHEN THEY IN THEIR TROUBLE DID TURN UNTO THE LORD GOD OF ISRAEL, AND" SOUGHT HIM, HE WAS FOUND OF THEM.J# 5 AND IN THOSE TIMES THERE WAS NO PEACE TO HIM THAT WENT OUT, NOR TO HIMG THAT CAME IN, BUT GREAT VEXATIONS WERE UPON ALL THE INHABITANTS OF THEL COUNTRIES.OI# 6 AND NATION WAS DESTROYED OF NATION, AND CITY OF CITY: FOR GOD DID VEX  THEM WITH ALL ADVERSITY.FI# 7 BE YE STRONG THEREFORE, AND LET NOT YOUR HANDS BE WEAK: FOR YOUR WORK  SHALL BE REWARDED.TL# 8 AND WHEN ASA HEARD THESE WORDS, AND THE PROPHECY OF ODED THE PROPHET, HEM TOOK COURAGE, AND PUT AWAY THE ABOMINABLE IDOLS OUT OF ALL THE LAND OF JUDAHNK AND BENJAMIN, AND OUT OF THE CITIES WHICH HE HAD TAKEN FROM MOUNT EPHRAIM,IJ AND RENEWED THE ALTAR OF THE LORD, THAT WAS BEFORE THE PORCH OF THE LORD.K# 9 AND HE GATHERED ALL JUDAH AND BENJAMIN, AND THE STRANGERS WITH THEM OUTTH OF EPHRAIM AND MANASSEH, AND OUT OF SIMEON: FOR THEY FELL TO HIM OUT OFG ISRAEL IN ABUNDANCE, WHEN THEY SAW THAT THE LORD HIS GOD WAS WITH HIM.TM# 10 SO THEY GATHERED THEMSELVES TOGETHER AT JERUSALEM IN THE THIRD MONTH, INA( THE FIFTEENTH YEAR OF THE REIGN OF ASA.J# 11 AND THEY OFFERED UNTO THE LORD THE SAME TIME, OF THE SPOIL WHICH THEY: HAD BROUGHT, SEVEN HUNDRED OXEN AND SEVEN THOUSAND SHEEP.K# 12 AND THEY ENTERED INTO A COVENANT TO SEEK THE LORD GOD OF THEIR FATHERS . WITH ALL THEIR HEART AND WITH ALL THEIR SOUL;J# 13 THAT WHOSOEVER WOULD NOT SEEK THE LORD GOD OF ISRAEL SHOULD BE PUT TO5 DEATH, WHETHER SMALL OR GREAT, WHETHER MAN OR WOMAN. K# 14 AND THEY SWARE UNTO THE LORD WITH A LOUD VOICE, AND WITH SHOUTING, AND! WITH TRUMPETS, AND WITH CORNETS. J# 15 AND ALL JUDAH REJOICED AT THE OATH: FOR THEY HAD SWORN WITH ALL THEIRM HEART, AND SOUGHT HIM WITH THEIR WHOLE DESIRE; AND HE WAS FOUND OF THEM: AND % THE LORD GAVE THEM REST ROUND ABOUT.DK# 16 AND ALSO CONCERNING MAACHAH THE MOTHER OF ASA THE KING, HE REMOVED HERTL FROM BEING QUEEN, BECAUSE SHE HAD MADE AN IDOL IN A GROVE: AND ASA CUT DOWN< HER IDOL, AND STAMPED IT, AND BURNT IT AT THE BROOK KIDRON.L# 17 BUT THE HIGH PLACES WERE NOT TAKEN AWAY OUT OF ISRAEL: NEVERTHELESS THE' HEART OF ASA WAS PERFECT ALL HIS DAYS.RH# 18 AND HE BROUGHT INTO THE HOUSE OF GOD THE THINGS THAT HIS FATHER HADM DEDICATED, AND THAT HE HIMSELF HAD DEDICATED, SILVER, AND GOLD, AND VESSELS.EL# 19 AND THERE WAS NO MORE WAR UNTO THE FIVE AND THIRTIETH YEAR OF THE REIGN OF ASA. = CHAPTER 16 OK# 1 IN THE SIX AND THIRTIETH YEAR OF THE REIGN OF ASA BAASHA KING OF ISRAELRM CAME UP AGAINST JUDAH, AND BUILT RAMAH, TO THE INTENT THAT HE MIGHT LET NONEC( GO OUT OR COME IN TO ASA KING OF JUDAH.M# 2 THEN ASA BROUGHT OUT SILVER AND GOLD OUT OF THE TREASURES OF THE HOUSE OFOJ THE LORD AND OF THE KINGS HOUSE, AND SENT TO BENHADAD KING OF SYRIA, THAT DWELT AT DAMASCUS, SAYING,AM# 3 THERE IS A LEAGUE BETWEEN ME AND THEE, AS THERE WAS BETWEEN MY FATHER ANDEK THY FATHER: BEHOLD, I HAVE SENT THEE SILVER AND GOLD; GO, BREAK THY LEAGUEY8 WITH BAASHA KING OF ISRAEL, THAT HE MAY DEPART FROM ME.M# 4 AND BENHADAD HEARKENED UNTO KING ASA, AND SENT THE CAPTAINS OF HIS ARMIESRN AGAINST THE CITIES OF ISRAEL; AND THEY SMOTE IJON, AND DAN, AND ABELMAIM, AND" ALL THE STORE CITIES OF NAPHTALI.K# 5 AND IT CAME TO PASS, WHEN BAASHA HEARD IT, THAT HE LEFT OFF BUILDING OFT RAMAH, AND LET HIS WORK CEASE. I# 6 THEN ASA THE KING TOOK ALL JUDAH; AND THEY CARRIED AWAY THE STONES OFFK RAMAH, AND THE TIMBER THEREOF, WHEREWITH BAASHA WAS BUILDING; AND HE BUILT  THEREWITH GEBA AND MIZPAH.EM# 7 AND AT THAT TIME HANANI THE SEER CAME TO ASA KING OF JUDAH, AND SAID UNTOPJ HIM, BECAUSE THOU HAST RELIED ON THE KING OF SYRIA, AND NOT RELIED ON THEN LORD THY GOD, THEREFORE IS THE HOST OF THE KING OF SYRIA ESCAPED OUT OF THINE HAND.F# 8 WERE NOT THE ETHIOPIANS AND THE LUBIMS A HUGE HOST, WITH VERY MANYN CHARIOTS AND HORSEMEN? YET,00l343D%5%T6%! ! BECAUSE THOU DIDST RELY ON THE LORD, HE DELIVERED THEM INTO THINE HAND.J# 9 FOR THE EYES OF THE LORD RUN TO AND FRO THROUGHOUT THE WHOLE EARTH, TOM SHEW HIMSELF STRONG IN THE BEHALF OF THEM WHOSE HEART IS PERFECT TOWARD HIM.HK HEREIN THOU HAST DONE FOOLISHLY: THEREFORE FROM HENCEFORTH THOU SHALT HAVET WARS.L# 10 THEN ASA WAS WROTH WITH THE SEER, AND PUT HIM IN A PRISON HOUSE; FOR HEL WAS IN A RAGE WITH HIM BECAUSE OF THIS THING. AND ASA OPPRESSED SOME OF THE PEOPLE THE SAME TIME.J# 11 AND, BEHOLD, THE ACTS OF ASA, FIRST AND LAST, LO, THEY ARE WRITTEN IN+ THE BOOK OF THE KINGS OF JUDAH AND ISRAEL.RJ# 12 AND ASA IN THE THIRTY AND NINTH YEAR OF HIS REIGN WAS DISEASED IN HISN FEET, UNTIL HIS DISEASE WAS EXCEEDING GREAT: YET IN HIS DISEASE HE SOUGHT NOT$ TO THE LORD, BUT TO THE PHYSICIANS.M# 13 AND ASA SLEPT WITH HIS FATHERS, AND DIED IN THE ONE AND FORTIETH YEAR OFN HIS REIGN.EM# 14 AND THEY BURIED HIM IN HIS OWN SEPULCHRES, WHICH HE HAD MADE FOR HIMSELFJ IN THE CITY OF DAVID, AND LAID HIM IN THE BED WHICH WAS FILLED WITH SWEETM ODOURS AND DIVERS KINDS OF SPICES PREPARED BY THE APOTHECARIES ART: AND THEYA# MADE A VERY GREAT BURNING FOR HIM.S = CHAPTER 17 AJ# 1 AND JEHOSHAPHAT HIS SON REIGNED IN HIS STEAD, AND STRENGTHENED HIMSELF AGAINST ISRAEL.M# 2 AND HE PLACED FORCES IN ALL THE FENCED CITIES OF JUDAH, AND SET GARRISONSEM IN THE LAND OF JUDAH, AND IN THE CITIES OF EPHRAIM, WHICH ASA HIS FATHER HADI TAKEN.UM# 3 AND THE LORD WAS WITH JEHOSHAPHAT, BECAUSE HE WALKED IN THE FIRST WAYS OFT. HIS FATHER DAVID, AND SOUGHT NOT UNTO BAALIM;M# 4 BUT SOUGHT TO THE LORD GOD OF HIS FATHER, AND WALKED IN HIS COMMANDMENTS,Y$ AND NOT AFTER THE DOINGS OF ISRAEL.H# 5 THEREFORE THE LORD STABLISHED THE KINGDOM IN HIS HAND; AND ALL JUDAHL BROUGHT TO JEHOSHAPHAT PRESENTS; AND HE HAD RICHES AND HONOUR IN ABUNDANCE.I# 6 AND HIS HEART WAS LIFTED UP IN THE WAYS OF THE LORD: MOREOVER HE TOOKI. AWAY THE HIGH PLACES AND GROVES OUT OF JUDAH.G# 7 ALSO IN THE THIRD YEAR OF HIS REIGN HE SENT TO HIS PRINCES, EVEN TOHN BENHAIL, AND TO OBADIAH, AND TO ZECHARIAH, AND TO NETHANEEL, AND TO MICHAIAH,! TO TEACH IN THE CITIES OF JUDAH.ND# 8 AND WITH THEM HE SENT LEVITES, EVEN SHEMAIAH, AND NETHANIAH, ANDI ZEBADIAH, AND ASAHEL, AND SHEMIRAMOTH, AND JEHONATHAN, AND ADONIJAH, AND G TOBIJAH, AND TOBADONIJAH, LEVITES; AND WITH THEM ELISHAMA AND JEHORAM,A PRIESTS. J# 9 AND THEY TAUGHT IN JUDAH, AND HAD THE BOOK OF THE LAW OF THE LORD WITHH THEM, AND WENT ABOUT THROUGHOUT ALL THE CITIES OF JUDAH, AND TAUGHT THE PEOPLE.J# 10 AND THE FEAR OF THE LORD FELL UPON ALL THE KINGDOMS OF THE LANDS THATF WERE ROUND ABOUT JUDAH, SO THAT THEY MADE NO WAR AGAINST JEHOSHAPHAT.K# 11 ALSO SOME OF THE PHILISTINES BROUGHT JEHOSHAPHAT PRESENTS, AND TRIBUTEAN SILVER; AND THE ARABIANS BROUGHT HIM FLOCKS, SEVEN THOUSAND AND SEVEN HUNDRED5 RAMS, AND SEVEN THOUSAND AND SEVEN HUNDRED HE GOATS. L# 12 AND JEHOSHAPHAT WAXED GREAT EXCEEDINGLY; AND HE BUILT IN JUDAH CASTLES, AND CITIES OF STORE.AI# 13 AND HE HAD MUCH BUSINESS IN THE CITIES OF JUDAH: AND THE MEN OF WAR,L) MIGHTY MEN OF VALOUR, WERE IN JERUSALEM. F# 14 AND THESE ARE THE NUMBERS OF THEM ACCORDING TO THE HOUSE OF THEIRL FATHERS: OF JUDAH, THE CAPTAINS OF THOUSANDS; ADNAH THE CHIEF, AND WITH HIM- MIGHTY MEN OF VALOUR THREE HUNDRED THOUSAND.CL# 15 AND NEXT TO HIM WAS JEHOHANAN THE CAPTAIN, AND WITH HIM TWO HUNDRED AND FOURSCORE THOUSAND.F# 16 AND NEXT HIM WAS AMASIAH THE SON OF ZICHRI, WHO WILLINGLY OFFEREDG HIMSELF UNTO THE LORD; AND WITH HIM TWO HUNDRED THOUSAND MIGHTY MEN OFD VALOUR.K# 17 AND OF BENJAMIN; ELIADA A MIGHTY MAN OF VALOUR, AND WITH HIM ARMED MENE* WITH BOW AND SHIELD TWO HUNDRED THOUSAND.F# 18 AND NEXT HIM WAS JEHOZABAD, AND WITH HIM AN HUNDRED AND FOURSCORE% THOUSAND READY PREPARED FOR THE WAR.HK# 19 THESE WAITED ON THE KING, BESIDE THOSE WHOM THE KING PUT IN THE FENCEDI CITIES THROUGHOUT ALL JUDAH.O = CHAPTER 18 K# 1 NOW JEHOSHAPHAT HAD RICHES AND HONOUR IN ABUNDANCE, AND JOINED AFFINITYF WITH AHAB.DL# 2 AND AFTER CERTAIN YEARS HE WENT DOWN00l3J2<%X>%+%O-%TADATADATA TO AHAB TO SAMARIA. AND AHAB KILLEDN SHEEP AND OXEN FOR HIM IN ABUNDANCE, AND FOR THE PEOPLE THAT HE HAD WITH HIM,5 AND PERSUADED HIM TO GO UP WITH HIM TO RAMOTHGILEAD.AM# 3 AND AHAB KING OF ISRAEL SAID UNTO JEHOSHAPHAT KING OF JUDAH, WILT THOU GOHN WITH ME TO RAMOTHGILEAD? AND HE ANSWERED HIM, I AM AS THOU ART, AND MY PEOPLE4 AS THY PEOPLE; AND WE WILL BE WITH THEE IN THE WAR.J# 4 AND JEHOSHAPHAT SAID UNTO THE KING OF ISRAEL, ENQUIRE, I PRAY THEE, AT THE WORD OF THE LORD TO DAY. K# 5 THEREFORE THE KING OF ISRAEL GATHERED TOGETHER OF PROPHETS FOUR HUNDREDIK MEN, AND SAID UNTO THEM, SHALL WE GO TO RAMOTHGILEAD TO BATTLE, OR SHALL ITL FORBEAR? AND THEY SAID, GO UP; FOR GOD WILL DELIVER IT INTO THE KINGS HAND.J# 6 BUT JEHOSHAPHAT SAID, IS THERE NOT HERE A PROPHET OF THE LORD BESIDES, THAT WE MIGHT ENQUIRE OF HIM?J# 7 AND THE KING OF ISRAEL SAID UNTO JEHOSHAPHAT, THERE IS YET ONE MAN, BYN WHOM WE MAY ENQUIRE OF THE LORD: BUT I HATE HIM; FOR HE NEVER PROPHESIED GOODC UNTO ME, BUT ALWAYS EVIL: THE SAME IS MICAIAH THE SON OF IMLA. AND + JEHOSHAPHAT SAID, LET NOT THE KING SAY SO.HJ# 8 AND THE KING OF ISRAEL CALLED FOR ONE OF HIS OFFICERS, AND SAID, FETCH! QUICKLY MICAIAH THE SON OF IMLA. K# 9 AND THE KING OF ISRAEL AND JEHOSHAPHAT KING OF JUDAH SAT EITHER OF THEMFK ON HIS THRONE, CLOTHED IN THEIR ROBES, AND THEY SAT IN A VOID PLACE AT THELK ENTERING IN OF THE GATE OF SAMARIA; AND ALL THE PROPHETS PROPHESIED BEFORE  THEM.L# 10 AND ZEDEKIAH THE SON OF CHENAANAH HAD MADE HIM HORNS OF IRON, AND SAID,N THUS SAITH THE LORD, WITH THESE THOU SHALT PUSH SYRIA UNTIL THEY BE CONSUMED.K# 11 AND ALL THE PROPHETS PROPHESIED SO, SAYING, GO UP TO RAMOTHGILEAD, ANDB PROSPER: FOR THE LORD SHALL DELIVER IT INTO THE HAND OF THE KING.F# 12 AND THE MESSENGER THAT WENT TO CALL MICAIAH SPAKE TO HIM, SAYING,L BEHOLD, THE WORDS OF THE PROPHETS DECLARE GOOD TO THE KING WITH ONE ASSENT;K LET THY WORD THEREFORE, I PRAY THEE, BE LIKE ONE OF THEIRS, AND SPEAK THOU  GOOD.L# 13 AND MICAIAH SAID, AS THE LORD LIVETH, EVEN WHAT MY GOD SAITH, THAT WILL I SPEAK. M# 14 AND WHEN HE WAS COME TO THE KING, THE KING SAID UNTO HIM, MICAIAH, SHALLSL WE GO TO RAMOTHGILEAD TO BATTLE, OR SHALL I FORBEAR? AND HE SAID, GO YE UP,9 AND PROSPER, AND THEY SHALL BE DELIVERED INTO YOUR HAND.EK# 15 AND THE KING SAID TO HIM, HOW MANY TIMES SHALL I ADJURE THEE THAT THOUD9 SAY NOTHING BUT THE TRUTH TO ME IN THE NAME OF THE LORD?RH# 16 THEN HE SAID, I DID SEE ALL ISRAEL SCATTERED UPON THE MOUNTAINS, ASJ SHEEP THAT HAVE NO SHEPHERD: AND THE LORD SAID, THESE HAVE NO MASTER; LET7 THEM RETURN THEREFORE EVERY MAN TO HIS HOUSE IN PEACE.AL# 17 AND THE KING OF ISRAEL SAID TO JEHOSHAPHAT, DID I NOT TELL THEE THAT HE+ WOULD NOT PROPHESY GOOD UNTO ME, BUT EVIL?NG# 18 AGAIN HE SAID, THEREFORE HEAR THE WORD OF THE LORD; I SAW THE LORD,J SITTING UPON HIS THRONE, AND ALL THE HOST OF HEAVEN STANDING ON HIS RIGHT HAND AND ON HIS LEFT.L# 19 AND THE LORD SAID, WHO SHALL ENTICE AHAB KING OF ISRAEL, THAT HE MAY GOI UP AND FALL AT RAMOTHGILEAD? AND ONE SPAKE SAYING AFTER THIS MANNER, ANDL" ANOTHER SAYING AFTER THAT MANNER.I# 20 THEN THERE CAME OUT A SPIRIT, AND STOOD BEFORE THE LORD, AND SAID, ID8 WILL ENTICE HIM. AND THE LORD SAID UNTO HIM, WHEREWITH?J# 21 AND HE SAID, I WILL GO OUT, AND BE A LYING SPIRIT IN THE MOUTH OF ALLL HIS PROPHETS. AND THE LORD SAID, THOU SHALT ENTICE HIM, AND THOU SHALT ALSO! PREVAIL: GO OUT, AND DO EVEN SO.L# 22 NOW THEREFORE, BEHOLD, THE LORD HATH PUT A LYING SPIRIT IN THE MOUTH OF@ THESE THY PROPHETS, AND THE LORD HATH SPOKEN EVIL AGAINST THEE.M# 23 THEN ZEDEKIAH THE SON OF CHENAANAH CAME NEAR, AND SMOTE MICAIAH UPON THE,M CHEEK, AND SAID, WHICH WAY WENT THE SPIRIT OF THE LORD FROM ME TO SPEAK UNTON THEE?L# 24 AND MICAIAH SAID, BEHOLD, THOU SHALT SEE ON THAT DAY WHEN THOU SHALT GO' INTO AN INNER CHAMBER TO HIDE THYSELF.DI# 25 THEN THE KING OF ISRAEL SAID, TAKE YE MICAIAH, AND CARRY HIM BACK TO ; AMON THE GOVERNOR OF THE CITY, AND TO JOASH THE KINGS SON;PJ# 26 AND SAY, THUS SAITH THE KING, PUT THIS FELLOW IN TH00l343D%5%T6%! !E PRISON, AND FEEDM HIM WITH BREAD OF AFFLICTION AND WITH WATER OF AFFLICTION, UNTIL I RETURN INH PEACE.,K# 27 AND MICAIAH SAID, IF THOU CERTAINLY RETURN IN PEACE, THEN HATH NOT THET8 LORD SPOKEN BY ME. AND HE SAID, HEARKEN, ALL YE PEOPLE.G# 28 SO THE KING OF ISRAEL AND JEHOSHAPHAT THE KING OF JUDAH WENT UP TO RAMOTHGILEAD.J# 29 AND THE KING OF ISRAEL SAID UNTO JEHOSHAPHAT, I WILL DISGUISE MYSELF,N AND I WILL GO TO THE BATTLE; BUT PUT THOU ON THY ROBES. SO THE KING OF ISRAEL0 DISGUISED HIMSELF; AND THEY WENT TO THE BATTLE.J# 30 NOW THE KING OF SYRIA HAD COMMANDED THE CAPTAINS OF THE CHARIOTS THATL WERE WITH HIM, SAYING, FIGHT YE NOT WITH SMALL OR GREAT, SAVE ONLY WITH THE KING OF ISRAEL.L# 31 AND IT CAME TO PASS, WHEN THE CAPTAINS OF THE CHARIOTS SAW JEHOSHAPHAT,M THAT THEY SAID, IT IS THE KING OF ISRAEL. THEREFORE THEY COMPASSED ABOUT HIMIL TO FIGHT: BUT JEHOSHAPHAT CRIED OUT, AND THE LORD HELPED HIM; AND GOD MOVED THEM TO DEPART FROM HIM.OK# 32 FOR IT CAME TO PASS, THAT, WHEN THE CAPTAINS OF THE CHARIOTS PERCEIVEDN THAT IT WAS NOT THE KING OF ISRAEL, THEY TURNED BACK AGAIN FROM PURSUING HIM.L# 33 AND A CERTAIN MAN DREW A BOW AT A VENTURE, AND SMOTE THE KING OF ISRAELN BETWEEN THE JOINTS OF THE HARNESS: THEREFORE HE SAID TO HIS CHARIOT MAN, TURNI THINE HAND, THAT THOU MAYEST CARRY ME OUT OF THE HOST; FOR I AM WOUNDED.SI# 34 AND THE BATTLE INCREASED THAT DAY: HOWBEIT THE KING OF ISRAEL STAYEDIL HIMSELF UP IN HIS CHARIOT AGAINST THE SYRIANS UNTIL THE EVEN: AND ABOUT THE$ TIME OF THE SUN GOING DOWN HE DIED. = CHAPTER 19 TG# 1 AND JEHOSHAPHAT THE KING OF JUDAH RETURNED TO HIS HOUSE IN PEACE TO JERUSALEM.AI# 2 AND JEHU THE SON OF HANANI THE SEER WENT OUT TO MEET HIM, AND SAID TOJK KING JEHOSHAPHAT, SHOULDEST THOU HELP THE UNGODLY, AND LOVE THEM THAT HATE,= THE LORD? THEREFORE IS WRATH UPON THEE FROM BEFORE THE LORD.M# 3 NEVERTHELESS THERE ARE GOOD THINGS FOUND IN THEE, IN THAT THOU HAST TAKENML AWAY THE GROVES OUT OF THE LAND, AND HAST PREPARED THINE HEART TO SEEK GOD.I# 4 AND JEHOSHAPHAT DWELT AT JERUSALEM: AND HE WENT OUT AGAIN THROUGH THEIL PEOPLE FROM BEERSHEBA TO MOUNT EPHRAIM, AND BROUGHT THEM BACK UNTO THE LORD GOD OF THEIR FATHERS.L# 5 AND HE SET JUDGES IN THE LAND THROUGHOUT ALL THE FENCED CITIES OF JUDAH, CITY BY CITY,K# 6 AND SAID TO THE JUDGES, TAKE HEED WHAT YE DO: FOR YE JUDGE NOT FOR MAN,O3 BUT FOR THE LORD, WHO IS WITH YOU IN THE JUDGMENT. L# 7 WHEREFORE NOW LET THE FEAR OF THE LORD BE UPON YOU; TAKE HEED AND DO IT:L FOR THERE IS NO INIQUITY WITH THE LORD OUR GOD, NOR RESPECT OF PERSONS, NOR TAKING OF GIFTS.OH# 8 MOREOVER IN JERUSALEM DID JEHOSHAPHAT SET OF THE LEVITES, AND OF THEL PRIESTS, AND OF THE CHIEF OF THE FATHERS OF ISRAEL, FOR THE JUDGMENT OF THE> LORD, AND FOR CONTROVERSIES, WHEN THEY RETURNED TO JERUSALEM.J# 9 AND HE CHARGED THEM, SAYING, THUS SHALL YE DO IN THE FEAR OF THE LORD,& FAITHFULLY, AND WITH A PERFECT HEART.K# 10 AND WHAT CAUSE SOEVER SHALL COME TO YOU OF YOUR BRETHREN THAT DWELL INOL YOUR CITIES, BETWEEN BLOOD AND BLOOD, BETWEEN LAW AND COMMANDMENT, STATUTESJ AND JUDGMENTS, YE SHALL EVEN WARN THEM THAT THEY TRESPASS NOT AGAINST THEJ LORD, AND SO WRATH COME UPON YOU, AND UPON YOUR BRETHREN: THIS DO, AND YE SHALL NOT TRESPASS.L# 11 AND, BEHOLD, AMARIAH THE CHIEF PRIEST IS OVER YOU IN ALL MATTERS OF THEL LORD; AND ZEBADIAH THE SON OF ISHMAEL, THE RULER OF THE HOUSE OF JUDAH, FORK ALL THE KINGS MATTERS: ALSO THE LEVITES SHALL BE OFFICERS BEFORE YOU. DEALO3 COURAGEOUSLY, AND THE LORD SHALL BE WITH THE GOOD.O = CHAPTER 20 TG# 1 IT CAME TO PASS AFTER THIS ALSO, THAT THE CHILDREN OF MOAB, AND THEEJ CHILDREN OF AMMON, AND WITH THEM OTHER BESIDE THE AMMONITES, CAME AGAINST JEHOSHAPHAT TO BATTLE. L# 2 THEN THERE CAME SOME THAT TOLD JEHOSHAPHAT, SAYING, THERE COMETH A GREATL MULTITUDE AGAINST THEE FROM BEYOND THE SEA ON THIS SIDE SYRIA; AND, BEHOLD,* THEY BE IN HAZAZONTAMAR, WHICH IS ENGEDI.L# 3 AND JEHOSHAPHAT FEARED, AND SET HIMSELF TO SEEK THE LORD, AND PROCLAIMED A FAST THROUGHOUT ALL JUDAH. M# 4 AND JUDAH GATHERED00l3J2<%X>%+%O-%TADATADATA THEMSELVES TOGETHER, TO ASK HELP OF THE LORD: EVEN OUTR7 OF ALL THE CITIES OF JUDAH THEY CAME TO SEEK THE LORD.TL# 5 AND JEHOSHAPHAT STOOD IN THE CONGREGATION OF JUDAH AND JERUSALEM, IN THE) HOUSE OF THE LORD, BEFORE THE NEW COURT, H# 6 AND SAID, O LORD GOD OF OUR FATHERS, ART NOT THOU GOD IN HEAVEN? ANDK RULEST NOT THOU OVER ALL THE KINGDOMS OF THE HEATHEN? AND IN THINE HAND IS C THERE NOT POWER AND MIGHT, SO THAT NONE IS ABLE TO WITHSTAND THEE?J# 7 ART NOT THOU OUR GOD, WHO DIDST DRIVE OUT THE INHABITANTS OF THIS LANDN BEFORE THY PEOPLE ISRAEL, AND GAVEST IT TO THE SEED OF ABRAHAM THY FRIEND FOR EVER?K# 8 AND THEY DWELT THEREIN, AND HAVE BUILT THEE A SANCTUARY THEREIN FOR THYN NAME, SAYING,K# 9 IF, WHEN EVIL COMETH UPON US, AS THE SWORD, JUDGMENT, OR PESTILENCE, ORTM FAMINE, WE STAND BEFORE THIS HOUSE, AND IN THY PRESENCE, (FOR THY NAME IS INTJ THIS HOUSE,) AND CRY UNTO THEE IN OUR AFFLICTION, THEN THOU WILT HEAR AND HELP.I# 10 AND NOW, BEHOLD, THE CHILDREN OF AMMON AND MOAB AND MOUNT SEIR, WHOM N THOU WOULDEST NOT LET ISRAEL INVADE, WHEN THEY CAME OUT OF THE LAND OF EGYPT,3 BUT THEY TURNED FROM THEM, AND DESTROYED THEM NOT; E# 11 BEHOLD, I SAY, HOW THEY REWARD US, TO COME TO CAST US OUT OF THYH1 POSSESSION, WHICH THOU HAST GIVEN US TO INHERIT.PK# 12 O OUR GOD, WILT THOU NOT JUDGE THEM? FOR WE HAVE NO MIGHT AGAINST THISRJ GREAT COMPANY THAT COMETH AGAINST US; NEITHER KNOW WE WHAT TO DO: BUT OUR EYES ARE UPON THEE.G# 13 AND ALL JUDAH STOOD BEFORE THE LORD, WITH THEIR LITTLE ONES, THEIRW WIVES, AND THEIR CHILDREN.IL# 14 THEN UPON JAHAZIEL THE SON OF ZECHARIAH, THE SON OF BENAIAH, THE SON OFL JEIEL, THE SON OF MATTANIAH, A LEVITE OF THE SONS OF ASAPH, CAME THE SPIRIT. OF THE LORD IN THE MIDST OF THE CONGREGATION;M# 15 AND HE SAID, HEARKEN YE, ALL JUDAH, AND YE INHABITANTS OF JERUSALEM, ANDHG THOU KING JEHOSHAPHAT, THUS SAITH THE LORD UNTO YOU, BE NOT AFRAID NORRM DISMAYED BY REASON OF THIS GREAT MULTITUDE; FOR THE BATTLE IS NOT YOURS, BUTF GODS.L# 16 TO MORROW GO YE DOWN AGAINST THEM: BEHOLD, THEY COME UP BY THE CLIFF OFN ZIZ; AND YE SHALL FIND THEM AT THE END OF THE BROOK, BEFORE THE WILDERNESS OF JERUEL.H# 17 YE SHALL NOT NEED TO FIGHT IN THIS BATTLE: SET YOURSELVES, STAND YEJ STILL, AND SEE THE SALVATION OF THE LORD WITH YOU, O JUDAH AND JERUSALEM:L FEAR NOT, NOR BE DISMAYED; TO MORROW GO OUT AGAINST THEM: FOR THE LORD WILL BE WITH YOU.TH# 18 AND JEHOSHAPHAT BOWED HIS HEAD WITH HIS FACE TO THE GROUND: AND ALLM JUDAH AND THE INHABITANTS OF JERUSALEM FELL BEFORE THE LORD, WORSHIPPING THEY LORD.L# 19 AND THE LEVITES, OF THE CHILDREN OF THE KOHATHITES, AND OF THE CHILDRENM OF THE KORHITES, STOOD UP TO PRAISE THE LORD GOD OF ISRAEL WITH A LOUD VOICEE ON HIGH.SK# 20 AND THEY ROSE EARLY IN THE MORNING, AND WENT FORTH INTO THE WILDERNESSEI OF TEKOA: AND AS THEY WENT FORTH, JEHOSHAPHAT STOOD AND SAID, HEAR ME, OEI JUDAH, AND YE INHABITANTS OF JERUSALEM; BELIEVE IN THE LORD YOUR GOD, SOCD SHALL YE BE ESTABLISHED; BELIEVE HIS PROPHETS, SO SHALL YE PROSPER.M# 21 AND WHEN HE HAD CONSULTED WITH THE PEOPLE, HE APPOINTED SINGERS UNTO THEEM LORD, AND THAT SHOULD PRAISE THE BEAUTY OF HOLINESS, AS THEY WENT OUT BEFORETH THE ARMY, AND TO SAY, PRAISE THE LORD; FOR HIS MERCY ENDURETH FOR EVER.H# 22 AND WHEN THEY BEGAN TO SING AND TO PRAISE, THE LORD SET AMBUSHMENTSM AGAINST THE CHILDREN OF AMMON, MOAB, AND MOUNT SEIR, WHICH WERE COME AGAINSTB JUDAH; AND THEY WERE SMITTEN.K# 23 FOR THE CHILDREN OF AMMON AND MOAB STOOD UP AGAINST THE INHABITANTS OFAL MOUNT SEIR, UTTERLY TO SLAY AND DESTROY THEM: AND WHEN THEY HAD MADE AN ENDA OF THE INHABITANTS OF SEIR, EVERY ONE HELPED TO DESTROY ANOTHER.EG# 24 AND WHEN JUDAH CAME TOWARD THE WATCH TOWER IN THE WILDERNESS, THEY L LOOKED UNTO THE MULTITUDE, AND, BEHOLD, THEY WERE DEAD BODIES FALLEN TO THE EARTH, AND NONE ESCAPED.AM# 25 AND WHEN JEHOSHAPHAT AND HIS PEOPLE CAME TO TAKE AWAY THE SPOIL OF THEM,JI THEY FOUND AMONG THEM IN ABUNDANCE BOTH RICHES WITH THE DEAD BODIES, AND N PRECIOUS JEWELS, WHICH THEY STRIPPED OFF FOR THEMSE00l343D%5%T6%! !LVES, MORE THAN THEY COULDJ CARRY AWAY: AND THEY WERE THREE DAYS IN GATHERING OF THE SPOIL, IT WAS SO MUCH.E# 26 AND ON THE FOURTH DAY THEY ASSEMBLED THEMSELVES IN THE VALLEY OFLJ BERACHAH; FOR THERE THEY BLESSED THE LORD: THEREFORE THE NAME OF THE SAME9 PLACE WAS CALLED, THE VALLEY OF BERACHAH, UNTO THIS DAY. M# 27 THEN THEY RETURNED, EVERY MAN OF JUDAH AND JERUSALEM, AND JEHOSHAPHAT INMK THE FOREFRONT OF THEM, TO GO AGAIN TO JERUSALEM WITH JOY; FOR THE LORD HADS) MADE THEM TO REJOICE OVER THEIR ENEMIES.OK# 28 AND THEY CAME TO JERUSALEM WITH PSALTERIES AND HARPS AND TRUMPETS UNTO  THE HOUSE OF THE LORD.I# 29 AND THE FEAR OF GOD WAS ON ALL THE KINGDOMS OF THOSE COUNTRIES, WHENRC THEY HAD HEARD THAT THE LORD FOUGHT AGAINST THE ENEMIES OF ISRAEL.EK# 30 SO THE REALM OF JEHOSHAPHAT WAS QUIET: FOR HIS GOD GAVE HIM REST ROUNDR ABOUT.EI# 31 AND JEHOSHAPHAT REIGNED OVER JUDAH: HE WAS THIRTY AND FIVE YEARS OLDMK WHEN HE BEGAN TO REIGN, AND HE REIGNED TWENTY AND FIVE YEARS IN JERUSALEM. 8 AND HIS MOTHERS NAME WAS AZUBAH THE DAUGHTER OF SHILHI.J# 32 AND HE WALKED IN THE WAY OF ASA HIS FATHER, AND DEPARTED NOT FROM IT,5 DOING THAT WHICH WAS RIGHT IN THE SIGHT OF THE LORD.RK# 33 HOWBEIT THE HIGH PLACES WERE NOT TAKEN AWAY: FOR AS YET THE PEOPLE HADL9 NOT PREPARED THEIR HEARTS UNTO THE GOD OF THEIR FATHERS. J# 34 NOW THE REST OF THE ACTS OF JEHOSHAPHAT, FIRST AND LAST, BEHOLD, THEYK ARE WRITTEN IN THE BOOK OF JEHU THE SON OF HANANI, WHO IS MENTIONED IN THEY BOOK OF THE KINGS OF ISRAEL.K# 35 AND AFTER THIS DID JEHOSHAPHAT KING OF JUDAH JOIN HIMSELF WITH AHAZIAHI' KING OF ISRAEL, WHO DID VERY WICKEDLY: M# 36 AND HE JOINED HIMSELF WITH HIM TO MAKE SHIPS TO GO TO TARSHISH: AND THEYE MADE THE SHIPS IN EZIONGABER.C# 37 THEN ELIEZER THE SON OF DODAVAH OF MARESHAH PROPHESIED AGAINSTHM JEHOSHAPHAT, SAYING, BECAUSE THOU HAST JOINED THYSELF WITH AHAZIAH, THE LORDNM HATH BROKEN THY WORKS. AND THE SHIPS WERE BROKEN, THAT THEY WERE NOT ABLE TOS GO TO TARSHISH. = CHAPTER 21 KN# 1 NOW JEHOSHAPHAT SLEPT WITH HIS FATHERS, AND WAS BURIED WITH HIS FATHERS IN= THE CITY OF DAVID. AND JEHORAM HIS SON REIGNED IN HIS STEAD.AI# 2 AND HE HAD BRETHREN THE SONS OF JEHOSHAPHAT, AZARIAH, AND JEHIEL, ANDMM ZECHARIAH, AND AZARIAH, AND MICHAEL, AND SHEPHATIAH: ALL THESE WERE THE SONSP OF JEHOSHAPHAT KING OF ISRAEL. I# 3 AND THEIR FATHER GAVE THEM GREAT GIFTS OF SILVER, AND OF GOLD, AND OFKI PRECIOUS THINGS, WITH FENCED CITIES IN JUDAH: BUT THE KINGDOM GAVE HE TOO' JEHORAM; BECAUSE HE WAS THE FIRSTBORN.HB# 4 NOW WHEN JEHORAM WAS RISEN UP TO THE KINGDOM OF HIS FATHER, HEK STRENGTHENED HIMSELF, AND SLEW ALL HIS BRETHREN WITH THE SWORD, AND DIVERSB ALSO OF THE PRINCES OF ISRAEL.AG# 5 JEHORAM WAS THIRTY AND TWO YEARS OLD WHEN HE BEGAN TO REIGN, AND HEA" REIGNED EIGHT YEARS IN JERUSALEM.M# 6 AND HE WALKED IN THE WAY OF THE KINGS OF ISRAEL, LIKE AS DID THE HOUSE OFVM AHAB: FOR HE HAD THE DAUGHTER OF AHAB TO WIFE: AND HE WROUGHT THAT WHICH WASE EVIL IN THE EYES OF THE LORD.I# 7 HOWBEIT THE LORD WOULD NOT DESTROY THE HOUSE OF DAVID, BECAUSE OF THENL COVENANT THAT HE HAD MADE WITH DAVID, AND AS HE PROMISED TO GIVE A LIGHT TO HIM AND TO HIS SONS FOR EVER.K# 8 IN HIS DAYS THE EDOMITES REVOLTED FROM UNDER THE DOMINION OF JUDAH, ANDG MADE THEMSELVES A KING.L# 9 THEN JEHORAM WENT FORTH WITH HIS PRINCES, AND ALL HIS CHARIOTS WITH HIM:L AND HE ROSE UP BY NIGHT, AND SMOTE THE EDOMITES WHICH COMPASSED HIM IN, AND THE CAPTAINS OF THE CHARIOTS.M# 10 SO THE EDOMITES REVOLTED FROM UNDER THE HAND OF JUDAH UNTO THIS DAY. THEHN SAME TIME ALSO DID LIBNAH REVOLT FROM UNDER HIS HAND; BECAUSE HE HAD FORSAKEN THE LORD GOD OF HIS FATHERS.HJ# 11 MOREOVER HE MADE HIGH PLACES IN THE MOUNTAINS OF JUDAH AND CAUSED THEM INHABITANTS OF JERUSALEM TO COMMIT FORNICATION, AND COMPELLED JUDAH THERETO. J# 12 AND THERE CAME A WRITING TO HIM FROM ELIJAH THE PROPHET, SAYING, THUSL SAITH THE LORD GOD OF DAVID THY FATHER, BECAUSE THOU HAST NOT WALKED IN THEF WAYS OF JEHOSHAPHAT THY FATHER, NOR IN THE WAYS OF ASA KING OF JUDAH,K# 13 BUT H00l3J2<%X>%+%O-%TADATADATAAST WALKED IN THE WAY OF THE KINGS OF ISRAEL, AND HAST MADE JUDAHCK AND THE INHABITANTS OF JERUSALEM TO GO A WHORING, LIKE TO THE WHOREDOMS OFIJ THE HOUSE OF AHAB, AND ALSO HAST SLAIN THY BRETHREN OF THY FATHERS HOUSE, WHICH WERE BETTER THAN THYSELF:H# 14 BEHOLD, WITH A GREAT PLAGUE WILL THE LORD SMITE THY PEOPLE, AND THY, CHILDREN, AND THY WIVES, AND ALL THY GOODS:K# 15 AND THOU SHALT HAVE GREAT SICKNESS BY DISEASE OF THY BOWELS, UNTIL THYT6 BOWELS FALL OUT BY REASON OF THE SICKNESS DAY BY DAY.C# 16 MOREOVER THE LORD STIRRED UP AGAINST JEHORAM THE SPIRIT OF THECA PHILISTINES, AND OF THE ARABIANS, THAT WERE NEAR THE ETHIOPIANS:OM# 17 AND THEY CAME UP INTO JUDAH, AND BRAKE INTO IT, AND CARRIED AWAY ALL THE H SUBSTANCE THAT WAS FOUND IN THE KINGS HOUSE, AND HIS SONS ALSO, AND HISN WIVES; SO THAT THERE WAS NEVER A SON LEFT HIM, SAVE JEHOAHAZ, THE YOUNGEST OF HIS SONS.J# 18 AND AFTER ALL THIS THE LORD SMOTE HIM IN HIS BOWELS WITH AN INCURABLE DISEASE.OG# 19 AND IT CAME TO PASS, THAT IN PROCESS OF TIME, AFTER THE END OF TWOUI YEARS, HIS BOWELS FELL OUT BY REASON OF HIS SICKNESS: SO HE DIED OF SOREAJ DISEASES. AND HIS PEOPLE MADE NO BURNING FOR HIM, LIKE THE BURNING OF HIS FATHERS.CK# 20 THIRTY AND TWO YEARS OLD WAS HE WHEN HE BEGAN TO REIGN, AND HE REIGNEDOK IN JERUSALEM EIGHT YEARS, AND DEPARTED WITHOUT BEING DESIRED. HOWBEIT THEYAI BURIED HIM IN THE CITY OF DAVID, BUT NOT IN THE SEPULCHRES OF THE KINGS.I = CHAPTER 22 TN# 1 AND THE INHABITANTS OF JERUSALEM MADE AHAZIAH HIS YOUNGEST SON KING IN HISM STEAD: FOR THE BAND OF MEN THAT CAME WITH THE ARABIANS TO THE CAMP HAD SLAIN E ALL THE ELDEST. SO AHAZIAH THE SON OF JEHORAM KING OF JUDAH REIGNED.KF# 2 FORTY AND TWO YEARS OLD WAS AHAZIAH WHEN HE BEGAN TO REIGN, AND HEF REIGNED ONE YEAR IN JERUSALEM. HIS MOTHERS NAME ALSO WAS ATHALIAH THE DAUGHTER OF OMRI.K# 3 HE ALSO WALKED IN THE WAYS OF THE HOUSE OF AHAB: FOR HIS MOTHER WAS HISP COUNSELLOR TO DO WICKEDLY.PJ# 4 WHEREFORE HE DID EVIL IN THE SIGHT OF THE LORD LIKE THE HOUSE OF AHAB:C FOR THEY WERE HIS COUNSELLORS AFTER THE DEATH OF HIS FATHER TO HIS DESTRUCTION. M# 5 HE WALKED ALSO AFTER THEIR COUNSEL, AND WENT WITH JEHORAM THE SON OF AHABL KING OF ISRAEL TO WAR AGAINST HAZAEL KING OF SYRIA AT RAMOTHGILEAD: AND THE SYRIANS SMOTE JORAM.ML# 6 AND HE RETURNED TO BE HEALED IN JEZREEL BECAUSE OF THE WOUNDS WHICH WEREN GIVEN HIM AT RAMAH, WHEN HE FOUGHT WITH HAZAEL KING OF SYRIA. AND AZARIAH THEI SON OF JEHORAM KING OF JUDAH WENT DOWN TO SEE JEHORAM THE SON OF AHAB ATS JEZREEL, BECAUSE HE WAS SICK.M# 7 AND THE DESTRUCTION OF AHAZIAH WAS OF GOD BY COMING TO JORAM: FOR WHEN HE L WAS COME, HE WENT OUT WITH JEHORAM AGAINST JEHU THE SON OF NIMSHI, WHOM THE0 LORD HAD ANOINTED TO CUT OFF THE HOUSE OF AHAB.H# 8 AND IT CAME TO PASS, THAT, WHEN JEHU WAS EXECUTING JUDGMENT UPON THEL HOUSE OF AHAB, AND FOUND THE PRINCES OF JUDAH, AND THE SONS OF THE BRETHREN6 OF AHAZIAH, THAT MINISTERED TO AHAZIAH, HE SLEW THEM.L# 9 AND HE SOUGHT AHAZIAH: AND THEY CAUGHT HIM, (FOR HE WAS HID IN SAMARIA,)G AND BROUGHT HIM TO JEHU: AND WHEN THEY HAD SLAIN HIM, THEY BURIED HIM:NK BECAUSE, SAID THEY, HE IS THE SON OF JEHOSHAPHAT, WHO SOUGHT THE LORD WITHEF ALL HIS HEART. SO THE HOUSE OF AHAZIAH HAD NO POWER TO KEEP STILL THE KINGDOM. K# 10 BUT WHEN ATHALIAH THE MOTHER OF AHAZIAH SAW THAT HER SON WAS DEAD, SHEH> AROSE AND DESTROYED ALL THE SEED ROYAL OF THE HOUSE OF JUDAH.F# 11 BUT JEHOSHABEATH, THE DAUGHTER OF THE KING, TOOK JOASH THE SON OFN AHAZIAH, AND STOLE HIM FROM AMONG THE KINGS SONS THAT WERE SLAIN, AND PUT HIMN AND HIS NURSE IN A BEDCHAMBER. SO JEHOSHABEATH, THE DAUGHTER OF KING JEHORAM,N THE WIFE OF JEHOIADA THE PRIEST, (FOR SHE WAS THE SISTER OF AHAZIAH,) HID HIM) FROM ATHALIAH, SO THAT SHE SLEW HIM NOT.TI# 12 AND HE WAS WITH THEM HID IN THE HOUSE OF GOD SIX YEARS: AND ATHALIAHO REIGNED OVER THE LAND.A = CHAPTER 23 LG# 1 AND IN THE SEVENTH YEAR JEHOIADA STRENGTHENED HIMSELF, AND TOOK THEEI CAPTAINS OF HUNDREDS, AZARIAH THE SON OF JEROHAM, AND ISHMAEL THE SON OFEL JEHOHANAN, AND AZ00l343D%5%T6%! !ARIAH THE SON OF OBED, AND MAASEIAH THE SON OF ADAIAH, AND6 ELISHAPHAT THE SON OF ZICHRI, INTO COVENANT WITH HIM.I# 2 AND THEY WENT ABOUT IN JUDAH, AND GATHERED THE LEVITES OUT OF ALL THETJ CITIES OF JUDAH, AND THE CHIEF OF THE FATHERS OF ISRAEL, AND THEY CAME TO JERUSALEM. J# 3 AND ALL THE CONGREGATION MADE A COVENANT WITH THE KING IN THE HOUSE OFK GOD. AND HE SAID UNTO THEM, BEHOLD, THE KINGS SON SHALL REIGN, AS THE LORDN HATH SAID OF THE SONS OF DAVID.K# 4 THIS IS THE THING THAT YE SHALL DO; A THIRD PART OF YOU ENTERING ON THEAK SABBATH, OF THE PRIESTS AND OF THE LEVITES, SHALL BE PORTERS OF THE DOORS;II# 5 AND A THIRD PART SHALL BE AT THE KINGS HOUSE; AND A THIRD PART AT THEHI GATE OF THE FOUNDATION: AND ALL THE PEOPLE SHALL BE IN THE COURTS OF THE  HOUSE OF THE LORD. L# 6 BUT LET NONE COME INTO THE HOUSE OF THE LORD, SAVE THE PRIESTS, AND THEYK THAT MINISTER OF THE LEVITES; THEY SHALL GO IN, FOR THEY ARE HOLY: BUT ALL - THE PEOPLE SHALL KEEP THE WATCH OF THE LORD.NJ# 7 AND THE LEVITES SHALL COMPASS THE KING ROUND ABOUT, EVERY MAN WITH HISK WEAPONS IN HIS HAND; AND WHOSOEVER ELSE COMETH INTO THE HOUSE, HE SHALL BEAK PUT TO DEATH: BUT BE YE WITH THE KING WHEN HE COMETH IN, AND WHEN HE GOETHT OUT.DJ# 8 SO THE LEVITES AND ALL JUDAH DID ACCORDING TO ALL THINGS THAT JEHOIADAM THE PRIEST HAD COMMANDED, AND TOOK EVERY MAN HIS MEN THAT WERE TO COME IN ONIL THE SABBATH, WITH THEM THAT WERE TO GO OUT ON THE SABBATH: FOR JEHOIADA THE" PRIEST DISMISSED NOT THE COURSES.F# 9 MOREOVER JEHOIADA THE PRIEST DELIVERED TO THE CAPTAINS OF HUNDREDSL SPEARS, AND BUCKLERS, AND SHIELDS, THAT HAD BEEN KING DAVIDS, WHICH WERE IN THE HOUSE OF GOD.M# 10 AND HE SET ALL THE PEOPLE, EVERY MAN HAVING HIS WEAPON IN HIS HAND, FROMOJ THE RIGHT SIDE OF THE TEMPLE TO THE LEFT SIDE OF THE TEMPLE, ALONG BY THE/ ALTAR AND THE TEMPLE, BY THE KING ROUND ABOUT.HI# 11 THEN THEY BROUGHT OUT THE KINGS SON, AND PUT UPON HIM THE CROWN, ANDSN GAVE HIM THE TESTIMONY, AND MADE HIM KING. AND JEHOIADA AND HIS SONS ANOINTED" HIM, AND SAID, GOD SAVE THE KING.M# 12 NOW WHEN ATHALIAH HEARD THE NOISE OF THE PEOPLE RUNNING AND PRAISING THE,9 KING, SHE CAME TO THE PEOPLE INTO THE HOUSE OF THE LORD: E# 13 AND SHE LOOKED, AND, BEHOLD, THE KING STOOD AT HIS PILLAR AT THE N ENTERING IN, AND THE PRINCES AND THE TRUMPETS BY THE KING: AND ALL THE PEOPLEG OF THE LAND REJOICED, AND SOUNDED WITH TRUMPETS, ALSO THE SINGERS WITHNM INSTRUMENTS OF MUSICK, AND SUCH AS TAUGHT TO SING PRAISE. THEN ATHALIAH RENT ) HER CLOTHES, AND SAID, TREASON, TREASON.AL# 14 THEN JEHOIADA THE PRIEST BROUGHT OUT THE CAPTAINS OF HUNDREDS THAT WEREI SET OVER THE HOST, AND SAID UNTO THEM, HAVE HER FORTH OF THE RANGES: ANDHK WHOSO FOLLOWETH HER, LET HIM BE SLAIN WITH THE SWORD. FOR THE PRIEST SAID,H' SLAY HER NOT IN THE HOUSE OF THE LORD. L# 15 SO THEY LAID HANDS ON HER; AND WHEN SHE WAS COME TO THE ENTERING OF THE4 HORSE GATE BY THE KINGS HOUSE, THEY SLEW HER THERE.J# 16 AND JEHOIADA MADE A COVENANT BETWEEN HIM, AND BETWEEN ALL THE PEOPLE,< AND BETWEEN THE KING, THAT THEY SHOULD BE THE LORDS PEOPLE.J# 17 THEN ALL THE PEOPLE WENT TO THE HOUSE OF BAAL, AND BRAKE IT DOWN, ANDN BRAKE HIS ALTARS AND HIS IMAGES IN PIECES, AND SLEW MATTAN THE PRIEST OF BAAL BEFORE THE ALTARS..M# 18 ALSO JEHOIADA APPOINTED THE OFFICES OF THE HOUSE OF THE LORD BY THE HANDLK OF THE PRIESTS THE LEVITES, WHOM DAVID HAD DISTRIBUTED IN THE HOUSE OF THEYL LORD, TO OFFER THE BURNT OFFERINGS OF THE LORD, AS IT IS WRITTEN IN THE LAWH OF MOSES, WITH REJOICING AND WITH SINGING, AS IT WAS ORDAINED BY DAVID.L# 19 AND HE SET THE PORTERS AT THE GATES OF THE HOUSE OF THE LORD, THAT NONE0 WHICH WAS UNCLEAN IN ANY THING SHOULD ENTER IN.L# 20 AND HE TOOK THE CAPTAINS OF HUNDREDS, AND THE NOBLES, AND THE GOVERNORSN OF THE PEOPLE, AND ALL THE PEOPLE OF THE LAND, AND BROUGHT DOWN THE KING FROMJ THE HOUSE OF THE LORD: AND THEY CAME THROUGH THE HIGH GATE INTO THE KINGS8 HOUSE, AND SET THE KING UPON THE THRONE OF THE KINGDOM.K# 21 AND ALL THE PEOPLE OF THE LAND REJOICED: AND THE CITY WAS QUIET, AF00l3J2<%X>%+%O-%TADATADATATERA- THAT THEY HAD SLAIN ATHALIAH WITH THE SWORD.T = CHAPTER 24 J# 1 JOASH WAS SEVEN YEARS OLD WHEN HE BEGAN TO REIGN, AND HE REIGNED FORTYC YEARS IN JERUSALEM. HIS MOTHERS NAME ALSO WAS ZIBIAH OF BEERSHEBA.EL# 2 AND JOASH DID THAT WHICH WAS RIGHT IN THE SIGHT OF THE LORD ALL THE DAYS OF JEHOIADA THE PRIEST.I# 3 AND JEHOIADA TOOK FOR HIM TWO WIVES; AND HE BEGAT SONS AND DAUGHTERS. M# 4 AND IT CAME TO PASS AFTER THIS, THAT JOASH WAS MINDED TO REPAIR THE HOUSEN OF THE LORD. K# 5 AND HE GATHERED TOGETHER THE PRIESTS AND THE LEVITES, AND SAID TO THEM, N GO OUT UNTO THE CITIES OF JUDAH, AND GATHER OF ALL ISRAEL MONEY TO REPAIR THEH HOUSE OF YOUR GOD FROM YEAR TO YEAR, AND SEE THAT YE HASTEN THE MATTER.% HOWBEIT THE LEVITES HASTENED IT NOT.RK# 6 AND THE KING CALLED FOR JEHOIADA THE CHIEF, AND SAID UNTO HIM, WHY HAST E THOU NOT REQUIRED OF THE LEVITES TO BRING IN OUT OF JUDAH AND OUT OF L JERUSALEM THE COLLECTION, ACCORDING TO THE COMMANDMENT OF MOSES THE SERVANTF OF THE LORD, AND OF THE CONGREGATION OF ISRAEL, FOR THE TABERNACLE OF WITNESS? K# 7 FOR THE SONS OF ATHALIAH, THAT WICKED WOMAN, HAD BROKEN UP THE HOUSE OFEI GOD; AND ALSO ALL THE DEDICATED THINGS OF THE HOUSE OF THE LORD DID THEYM BESTOW UPON BAALIM.M# 8 AND AT THE KINGS COMMANDMENT THEY MADE A CHEST, AND SET IT WITHOUT AT THEA GATE OF THE HOUSE OF THE LORD. L# 9 AND THEY MADE A PROCLAMATION THROUGH JUDAH AND JERUSALEM, TO BRING IN TON THE LORD THE COLLECTION THAT MOSES THE SERVANT OF GOD LAID UPON ISRAEL IN THE WILDERNESS.I# 10 AND ALL THE PRINCES AND ALL THE PEOPLE REJOICED, AND BROUGHT IN, ANDA1 CAST INTO THE CHEST, UNTIL THEY HAD MADE AN END.EJ# 11 NOW IT CAME TO PASS, THAT AT WHAT TIME THE CHEST WAS BROUGHT UNTO THEJ KINGS OFFICE BY THE HAND OF THE LEVITES, AND WHEN THEY SAW THAT THERE WASK MUCH MONEY, THE KINGS SCRIBE AND THE HIGH PRIESTS OFFICER CAME AND EMPTIEDDM THE CHEST, AND TOOK IT, AND CARRIED IT TO HIS PLACE AGAIN. THUS THEY DID DAYL) BY DAY, AND GATHERED MONEY IN ABUNDANCE.PM# 12 AND THE KING AND JEHOIADA GAVE IT TO SUCH AS DID THE WORK OF THE SERVICEON OF THE HOUSE OF THE LORD, AND HIRED MASONS AND CARPENTERS TO REPAIR THE HOUSEN OF THE LORD, AND ALSO SUCH AS WROUGHT IRON AND BRASS TO MEND THE HOUSE OF THE LORD.M# 13 SO THE WORKMEN WROUGHT, AND THE WORK WAS PERFECTED BY THEM, AND THEY SETE4 THE HOUSE OF GOD IN HIS STATE, AND STRENGTHENED IT.M# 14 AND WHEN THEY HAD FINISHED IT, THEY BROUGHT THE REST OF THE MONEY BEFOREIL THE KING AND JEHOIADA, WHEREOF WERE MADE VESSELS FOR THE HOUSE OF THE LORD,J EVEN VESSELS TO MINISTER, AND TO OFFER WITHAL, AND SPOONS, AND VESSELS OFK GOLD AND SILVER. AND THEY OFFERED BURNT OFFERINGS IN THE HOUSE OF THE LORDL& CONTINUALLY ALL THE DAYS OF JEHOIADA.J# 15 BUT JEHOIADA WAXED OLD, AND WAS FULL OF DAYS WHEN HE DIED; AN HUNDRED* AND THIRTY YEARS OLD WAS HE WHEN HE DIED.M# 16 AND THEY BURIED HIM IN THE CITY OF DAVID AMONG THE KINGS, BECAUSE HE HADH< DONE GOOD IN ISRAEL, BOTH TOWARD GOD, AND TOWARD HIS HOUSE.H# 17 NOW AFTER THE DEATH OF JEHOIADA CAME THE PRINCES OF JUDAH, AND MADE: OBEISANCE TO THE KING. THEN THE KING HEARKENED UNTO THEM.I# 18 AND THEY LEFT THE HOUSE OF THE LORD GOD OF THEIR FATHERS, AND SERVEDLI GROVES AND IDOLS: AND WRATH CAME UPON JUDAH AND JERUSALEM FOR THIS THEIRW TRESPASS.I# 19 YET HE SENT PROPHETS TO THEM, TO BRING THEM AGAIN UNTO THE LORD; AND : THEY TESTIFIED AGAINST THEM: BUT THEY WOULD NOT GIVE EAR.F# 20 AND THE SPIRIT OF GOD CAME UPON ZECHARIAH THE SON OF JEHOIADA THEN PRIEST, WHICH STOOD ABOVE THE PEOPLE, AND SAID UNTO THEM, THUS SAITH GOD, WHYL TRANSGRESS YE THE COMMANDMENTS OF THE LORD, THAT YE CANNOT PROSPER? BECAUSE6 YE HAVE FORSAKEN THE LORD, HE HATH ALSO FORSAKEN YOU.F# 21 AND THEY CONSPIRED AGAINST HIM, AND STONED HIM WITH STONES AT THE? COMMANDMENT OF THE KING IN THE COURT OF THE HOUSE OF THE LORD.HG# 22 THUS JOASH THE KING REMEMBERED NOT THE KINDNESS WHICH JEHOIADA HISDN FATHER HAD DONE TO HIM, BUT SLEW HIS SON. AND WHEN HE DIED, HE SAID, THE LORD LOOK UPON IT, AND REQUIRE IT.L# 23 AND IT CAME TO PASS AT THE END 00l343D%5%T6%! !OF THE YEAR, THAT THE HOST OF SYRIA CAMEL UP AGAINST HIM: AND THEY CAME TO JUDAH AND JERUSALEM, AND DESTROYED ALL THEL PRINCES OF THE PEOPLE FROM AMONG THE PEOPLE, AND SENT ALL THE SPOIL OF THEM UNTO THE KING OF DAMASCUS.CJ# 24 FOR THE ARMY OF THE SYRIANS CAME WITH A SMALL COMPANY OF MEN, AND THEL LORD DELIVERED A VERY GREAT HOST INTO THEIR HAND, BECAUSE THEY HAD FORSAKENH THE LORD GOD OF THEIR FATHERS. SO THEY EXECUTED JUDGMENT AGAINST JOASH.F# 25 AND WHEN THEY WERE DEPARTED FROM HIM, (FOR THEY LEFT HIM IN GREATL DISEASES,) HIS OWN SERVANTS CONSPIRED AGAINST HIM FOR THE BLOOD OF THE SONSN OF JEHOIADA THE PRIEST, AND SLEW HIM ON HIS BED, AND HE DIED: AND THEY BURIEDK HIM IN THE CITY OF DAVID, BUT THEY BURIED HIM NOT IN THE SEPULCHRES OF THET KINGS.SM# 26 AND THESE ARE THEY THAT CONSPIRED AGAINST HIM; ZABAD THE SON OF SHIMEATHN> AN AMMONITESS, AND JEHOZABAD THE SON OF SHIMRITH A MOABITESS.M# 27 NOW CONCERNING HIS SONS, AND THE GREATNESS OF THE BURDENS LAID UPON HIM,AM AND THE REPAIRING OF THE HOUSE OF GOD, BEHOLD, THEY ARE WRITTEN IN THE STORYRD OF THE BOOK OF THE KINGS. AND AMAZIAH HIS SON REIGNED IN HIS STEAD. = CHAPTER 25 SH# 1 AMAZIAH WAS TWENTY AND FIVE YEARS OLD WHEN HE BEGAN TO REIGN, AND HEE REIGNED TWENTY AND NINE YEARS IN JERUSALEM. AND HIS MOTHERS NAME WASE JEHOADDAN OF JERUSALEM.L# 2 AND HE DID THAT WHICH WAS RIGHT IN THE SIGHT OF THE LORD, BUT NOT WITH A PERFECT HEART.I# 3 NOW IT CAME TO PASS, WHEN THE KINGDOM WAS ESTABLISHED TO HIM, THAT HEM7 SLEW HIS SERVANTS THAT HAD KILLED THE KING HIS FATHER.AJ# 4 BUT HE SLEW NOT THEIR CHILDREN, BUT DID AS IT IS WRITTEN IN THE LAW INK THE BOOK OF MOSES, WHERE THE LORD COMMANDED, SAYING, THE FATHERS SHALL NOT J DIE FOR THE CHILDREN, NEITHER SHALL THE CHILDREN DIE FOR THE FATHERS, BUT% EVERY MAN SHALL DIE FOR HIS OWN SIN.OI# 5 MOREOVER AMAZIAH GATHERED JUDAH TOGETHER, AND MADE THEM CAPTAINS OVER H THOUSANDS, AND CAPTAINS OVER HUNDREDS, ACCORDING TO THE HOUSES OF THEIRM FATHERS, THROUGHOUT ALL JUDAH AND BENJAMIN: AND HE NUMBERED THEM FROM TWENTY L YEARS OLD AND ABOVE, AND FOUND THEM THREE HUNDRED THOUSAND CHOICE MEN, ABLE8 TO GO FORTH TO WAR, THAT COULD HANDLE SPEAR AND SHIELD.L# 6 HE HIRED ALSO AN HUNDRED THOUSAND MIGHTY MEN OF VALOUR OUT OF ISRAEL FOR AN HUNDRED TALENTS OF SILVER.K# 7 BUT THERE CAME A MAN OF GOD TO HIM, SAYING, O KING, LET NOT THE ARMY OFEK ISRAEL GO WITH THEE; FOR THE LORD IS NOT WITH ISRAEL, TO WIT, WITH ALL THEC CHILDREN OF EPHRAIM.FM# 8 BUT IF THOU WILT GO, DO IT; BE STRONG FOR THE BATTLE: GOD SHALL MAKE THEETE FALL BEFORE THE ENEMY: FOR GOD HATH POWER TO HELP, AND TO CAST DOWN.IL# 9 AND AMAZIAH SAID TO THE MAN OF GOD, BUT WHAT SHALL WE DO FOR THE HUNDREDE TALENTS WHICH I HAVE GIVEN TO THE ARMY OF ISRAEL? AND THE MAN OF GOD= ANSWERED, THE LORD IS ABLE TO GIVE THEE MUCH MORE THAN THIS. K# 10 THEN AMAZIAH SEPARATED THEM, TO WIT, THE ARMY THAT WAS COME TO HIM OUTOH OF EPHRAIM, TO GO HOME AGAIN: WHEREFORE THEIR ANGER WAS GREATLY KINDLED6 AGAINST JUDAH, AND THEY RETURNED HOME IN GREAT ANGER.L# 11 AND AMAZIAH STRENGTHENED HIMSELF, AND LED FORTH HIS PEOPLE, AND WENT TOD THE VALLEY OF SALT, AND SMOTE OF THE CHILDREN OF SEIR TEN THOUSAND.K# 12 AND OTHER TEN THOUSAND LEFT ALIVE DID THE CHILDREN OF JUDAH CARRY AWAYTL CAPTIVE, AND BROUGHT THEM UNTO THE TOP OF THE ROCK, AND CAST THEM DOWN FROM: THE TOP OF THE ROCK, THAT THEY ALL WERE BROKEN IN PIECES.K# 13 BUT THE SOLDIERS OF THE ARMY WHICH AMAZIAH SENT BACK, THAT THEY SHOULDGL NOT GO WITH HIM TO BATTLE, FELL UPON THE CITIES OF JUDAH, FROM SAMARIA EVENG UNTO BETHHORON, AND SMOTE THREE THOUSAND OF THEM, AND TOOK MUCH SPOIL.TK# 14 NOW IT CAME TO PASS, AFTER THAT AMAZIAH WAS COME FROM THE SLAUGHTER OFOM THE EDOMITES, THAT HE BROUGHT THE GODS OF THE CHILDREN OF SEIR, AND SET THEMNJ UP TO BE HIS GODS, AND BOWED DOWN HIMSELF BEFORE THEM, AND BURNED INCENSE UNTO THEM.HM# 15 WHEREFORE THE ANGER OF THE LORD WAS KINDLED AGAINST AMAZIAH, AND HE SENTZM UNTO HIM A PROPHET, WHICH SAID UNTO HIM, WHY HAST THOU SOUGHT AFTER THE GODSIK OF THE PEOPLE, WHICH COULD 00l3J2<%X>%+%O-%TADATADATANOT DELIVER THEIR OWN PEOPLE OUT OF THINE HAND?TM# 16 AND IT CAME TO PASS, AS HE TALKED WITH HIM, THAT THE KING SAID UNTO HIM,ML ART THOU MADE OF THE KINGS COUNSEL? FORBEAR; WHY SHOULDEST THOU BE SMITTEN?G THEN THE PROPHET FORBARE, AND SAID, I KNOW THAT GOD HATH DETERMINED TOFJ DESTROY THEE, BECAUSE THOU HAST DONE THIS, AND HAST NOT HEARKENED UNTO MY COUNSEL.NJ# 17 THEN AMAZIAH KING OF JUDAH TOOK ADVICE, AND SENT TO JOASH, THE SON OFH JEHOAHAZ, THE SON OF JEHU, KING OF ISRAEL, SAYING, COME, LET US SEE ONE ANOTHER IN THE FACE.OH# 18 AND JOASH KING OF ISRAEL SENT TO AMAZIAH KING OF JUDAH, SAYING, THEK THISTLE THAT WAS IN LEBANON SENT TO THE CEDAR THAT WAS IN LEBANON, SAYING,HK GIVE THY DAUGHTER TO MY SON TO WIFE: AND THERE PASSED BY A WILD BEAST THATD, WAS IN LEBANON, AND TRODE DOWN THE THISTLE.M# 19 THOU SAYEST, LO, THOU HAST SMITTEN THE EDOMITES; AND THINE HEART LIFTETHAN THEE UP TO BOAST: ABIDE NOW AT HOME; WHY SHOULDEST THOU MEDDLE TO THINE HURT,: THAT THOU SHOULDEST FALL, EVEN THOU, AND JUDAH WITH THEE?J# 20 BUT AMAZIAH WOULD NOT HEAR; FOR IT CAME OF GOD, THAT HE MIGHT DELIVERK THEM INTO THE HAND OF THEIR ENEMIES, BECAUSE THEY SOUGHT AFTER THE GODS OFB EDOM.I# 21 SO JOASH THE KING OF ISRAEL WENT UP; AND THEY SAW ONE ANOTHER IN THEAL FACE, BOTH HE AND AMAZIAH KING OF JUDAH, AT BETHSHEMESH, WHICH BELONGETH TO JUDAH. M# 22 AND JUDAH WAS PUT TO THE WORSE BEFORE ISRAEL, AND THEY FLED EVERY MAN TO HIS TENT.H# 23 AND JOASH THE KING OF ISRAEL TOOK AMAZIAH KING OF JUDAH, THE SON OFN JOASH, THE SON OF JEHOAHAZ, AT BETHSHEMESH, AND BROUGHT HIM TO JERUSALEM, ANDN BRAKE DOWN THE WALL OF JERUSALEM FROM THE GATE OF EPHRAIM TO THE CORNER GATE, FOUR HUNDRED CUBITS.K# 24 AND HE TOOK ALL THE GOLD AND THE SILVER, AND ALL THE VESSELS THAT WEREFH FOUND IN THE HOUSE OF GOD WITH OBEDEDOM, AND THE TREASURES OF THE KINGS3 HOUSE, THE HOSTAGES ALSO, AND RETURNED TO SAMARIA.EH# 25 AND AMAZIAH THE SON OF JOASH KING OF JUDAH LIVED AFTER THE DEATH OF4 JOASH SON OF JEHOAHAZ KING OF ISRAEL FIFTEEN YEARS.J# 26 NOW THE REST OF THE ACTS OF AMAZIAH, FIRST AND LAST, BEHOLD, ARE THEY: NOT WRITTEN IN THE BOOK OF THE KINGS OF JUDAH AND ISRAEL?J# 27 NOW AFTER THE TIME THAT AMAZIAH DID TURN AWAY FROM FOLLOWING THE LORDM THEY MADE A CONSPIRACY AGAINST HIM IN JERUSALEM; AND HE FLED TO LACHISH: BUTB4 THEY SENT TO LACHISH AFTER HIM, AND SLEW HIM THERE.M# 28 AND THEY BROUGHT HIM UPON HORSES, AND BURIED HIM WITH HIS FATHERS IN THEO CITY OF JUDAH.E = CHAPTER 26 L# 1 THEN ALL THE PEOPLE OF JUDAH TOOK UZZIAH, WHO WAS SIXTEEN YEARS OLD, AND1 MADE HIM KING IN THE ROOM OF HIS FATHER AMAZIAH.L# 2 HE BUILT ELOTH, AND RESTORED IT TO JUDAH, AFTER THAT THE KING SLEPT WITH HIS FATHERS.IM# 3 SIXTEEN YEARS OLD WAS UZZIAH WHEN HE BEGAN TO REIGN, AND HE REIGNED FIFTYNM AND TWO YEARS IN JERUSALEM. HIS MOTHERS NAME ALSO WAS JECOLIAH OF JERUSALEM.SJ# 4 AND HE DID THAT WHICH WAS RIGHT IN THE SIGHT OF THE LORD, ACCORDING TO! ALL THAT HIS FATHER AMAZIAH DID.EL# 5 AND HE SOUGHT GOD IN THE DAYS OF ZECHARIAH, WHO HAD UNDERSTANDING IN THEL VISIONS OF GOD: AND AS LONG AS HE SOUGHT THE LORD, GOD MADE HIM TO PROSPER.L# 6 AND HE WENT FORTH AND WARRED AGAINST THE PHILISTINES, AND BRAKE DOWN THEH WALL OF GATH, AND THE WALL OF JABNEH, AND THE WALL OF ASHDOD, AND BUILT0 CITIES ABOUT ASHDOD, AND AMONG THE PHILISTINES.M# 7 AND GOD HELPED HIM AGAINST THE PHILISTINES, AND AGAINST THE ARABIANS THAT $ DWELT IN GURBAAL, AND THE MEHUNIMS.K# 8 AND THE AMMONITES GAVE GIFTS TO UZZIAH: AND HIS NAME SPREAD ABROAD EVENCF TO THE ENTERING IN OF EGYPT; FOR HE STRENGTHENED HIMSELF EXCEEDINGLY.L# 9 MOREOVER UZZIAH BUILT TOWERS IN JERUSALEM AT THE CORNER GATE, AND AT THEA VALLEY GATE, AND AT THE TURNING OF THE WALL, AND FORTIFIED THEM.WJ# 10 ALSO HE BUILT TOWERS IN THE DESERT, AND DIGGED MANY WELLS: FOR HE HADN MUCH CATTLE, BOTH IN THE LOW COUNTRY, AND IN THE PLAINS: HUSBANDMEN ALSO, ANDG VINE DRESSERS IN THE MOUNTAINS, AND IN CARMEL: FOR HE LOVED HUSBANDRY. I# 11 MOREOVER UZZIAH HAD AN HOST OF FIGHTING MEN, THAT WENT OUT TO WAR BYNI BANDS, ACCO00l343D%5%T6%! !RDING TO THE NUMBER OF THEIR ACCOUNT BY THE HAND OF JEIEL THEUL SCRIBE AND MAASEIAH THE RULER, UNDER THE HAND OF HANANIAH, ONE OF THE KINGS CAPTAINS.M# 12 THE WHOLE NUMBER OF THE CHIEF OF THE FATHERS OF THE MIGHTY MEN OF VALOURR# WERE TWO THOUSAND AND SIX HUNDRED.G# 13 AND UNDER THEIR HAND WAS AN ARMY, THREE HUNDRED THOUSAND AND SEVEN,M THOUSAND AND FIVE HUNDRED, THAT MADE WAR WITH MIGHTY POWER, TO HELP THE KING AGAINST THE ENEMY.HF# 14 AND UZZIAH PREPARED FOR THEM THROUGHOUT ALL THE HOST SHIELDS, ANDJ SPEARS, AND HELMETS, AND HABERGEONS, AND BOWS, AND SLINGS TO CAST STONES.L# 15 AND HE MADE IN JERUSALEM ENGINES, INVENTED BY CUNNING MEN, TO BE ON THEK TOWERS AND UPON THE BULWARKS, TO SHOOT ARROWS AND GREAT STONES WITHAL. ANDRH HIS NAME SPREAD FAR ABROAD; FOR HE WAS MARVELLOUSLY HELPED, TILL HE WAS STRONG.L# 16 BUT WHEN HE WAS STRONG, HIS HEART WAS LIFTED UP TO HIS DESTRUCTION: FORJ HE TRANSGRESSED AGAINST THE LORD HIS GOD, AND WENT INTO THE TEMPLE OF THE0 LORD TO BURN INCENSE UPON THE ALTAR OF INCENSE.M# 17 AND AZARIAH THE PRIEST WENT IN AFTER HIM, AND WITH HIM FOURSCORE PRIESTSH$ OF THE LORD, THAT WERE VALIANT MEN:K# 18 AND THEY WITHSTOOD UZZIAH THE KING, AND SAID UNTO HIM, IT APPERTAINETHAM NOT UNTO THEE, UZZIAH, TO BURN INCENSE UNTO THE LORD, BUT TO THE PRIESTS THESN SONS OF AARON, THAT ARE CONSECRATED TO BURN INCENSE: GO OUT OF THE SANCTUARY;M FOR THOU HAST TRESPASSED; NEITHER SHALL IT BE FOR THINE HONOUR FROM THE LORDW GOD.OM# 19 THEN UZZIAH WAS WROTH, AND HAD A CENSER IN HIS HAND TO BURN INCENSE: ANDAN WHILE HE WAS WROTH WITH THE PRIESTS, THE LEPROSY EVEN ROSE UP IN HIS FOREHEADL BEFORE THE PRIESTS IN THE HOUSE OF THE LORD, FROM BESIDE THE INCENSE ALTAR.M# 20 AND AZARIAH THE CHIEF PRIEST, AND ALL THE PRIESTS, LOOKED UPON HIM, AND,RM BEHOLD, HE WAS LEPROUS IN HIS FOREHEAD, AND THEY THRUST HIM OUT FROM THENCE;EF YEA, HIMSELF HASTED ALSO TO GO OUT, BECAUSE THE LORD HAD SMITTEN HIM.L# 21 AND UZZIAH THE KING WAS A LEPER UNTO THE DAY OF HIS DEATH, AND DWELT INI A SEVERAL HOUSE, BEING A LEPER; FOR HE WAS CUT OFF FROM THE HOUSE OF THEPM LORD: AND JOTHAM HIS SON WAS OVER THE KINGS HOUSE, JUDGING THE PEOPLE OF THEU LAND.G# 22 NOW THE REST OF THE ACTS OF UZZIAH, FIRST AND LAST, DID ISAIAH THE,! PROPHET, THE SON OF AMOZ, WRITE.IK# 23 SO UZZIAH SLEPT WITH HIS FATHERS, AND THEY BURIED HIM WITH HIS FATHERSOM IN THE FIELD OF THE BURIAL WHICH BELONGED TO THE KINGS; FOR THEY SAID, HE ISI2 A LEPER: AND JOTHAM HIS SON REIGNED IN HIS STEAD. = CHAPTER 27 G# 1 JOTHAM WAS TWENTY AND FIVE YEARS OLD WHEN HE BEGAN TO REIGN, AND HEEL REIGNED SIXTEEN YEARS IN JERUSALEM. HIS MOTHERS NAME ALSO WAS JERUSHAH, THE DAUGHTER OF ZADOK.NJ# 2 AND HE DID THAT WHICH WAS RIGHT IN THE SIGHT OF THE LORD, ACCORDING TON ALL THAT HIS FATHER UZZIAH DID: HOWBEIT HE ENTERED NOT INTO THE TEMPLE OF THE( LORD. AND THE PEOPLE DID YET CORRUPTLY.M# 3 HE BUILT THE HIGH GATE OF THE HOUSE OF THE LORD, AND ON THE WALL OF OPHELP HE BUILT MUCH.SM# 4 MOREOVER HE BUILT CITIES IN THE MOUNTAINS OF JUDAH, AND IN THE FORESTS HES BUILT CASTLES AND TOWERS.H# 5 HE FOUGHT ALSO WITH THE KING OF THE AMMONITES, AND PREVAILED AGAINSTM THEM. AND THE CHILDREN OF AMMON GAVE HIM THE SAME YEAR AN HUNDRED TALENTS OFSK SILVER, AND TEN THOUSAND MEASURES OF WHEAT, AND TEN THOUSAND OF BARLEY. SONK MUCH DID THE CHILDREN OF AMMON PAY UNTO HIM, BOTH THE SECOND YEAR, AND THE  THIRD.TM# 6 SO JOTHAM BECAME MIGHTY, BECAUSE HE PREPARED HIS WAYS BEFORE THE LORD HISU GOD. K# 7 NOW THE REST OF THE ACTS OF JOTHAM, AND ALL HIS WARS, AND HIS WAYS, LO,? THEY ARE WRITTEN IN THE BOOK OF THE KINGS OF ISRAEL AND JUDAH.HH# 8 HE WAS FIVE AND TWENTY YEARS OLD WHEN HE BEGAN TO REIGN, AND REIGNED SIXTEEN YEARS IN JERUSALEM.I# 9 AND JOTHAM SLEPT WITH HIS FATHERS, AND THEY BURIED HIM IN THE CITY OFF. DAVID: AND AHAZ HIS SON REIGNED IN HIS STEAD. = CHAPTER 28 HL# 1 AHAZ WAS TWENTY YEARS OLD WHEN HE BEGAN TO REIGN, AND HE REIGNED SIXTEENL YEARS IN JERUSALEM: BUT HE DID NOT THAT WHICH WAS RIGHT IN THE SIGHT OF THE LORD, LIKE DAVID HIS FATHER: J# 00l3J2<%X>%+%O-%TADATADATA2 FOR HE WALKED IN THE WAYS OF THE KINGS OF ISRAEL, AND MADE ALSO MOLTEN IMAGES FOR BAALIM. K# 3 MOREOVER HE BURNT INCENSE IN THE VALLEY OF THE SON OF HINNOM, AND BURNTEN HIS CHILDREN IN THE FIRE, AFTER THE ABOMINATIONS OF THE HEATHEN WHOM THE LORD, HAD CAST OUT BEFORE THE CHILDREN OF ISRAEL.G# 4 HE SACRIFICED ALSO AND BURNT INCENSE IN THE HIGH PLACES, AND ON THEI# HILLS, AND UNDER EVERY GREEN TREE. I# 5 WHEREFORE THE LORD HIS GOD DELIVERED HIM INTO THE HAND OF THE KING OFLF SYRIA; AND THEY SMOTE HIM, AND CARRIED AWAY A GREAT MULTITUDE OF THEMK CAPTIVES, AND BROUGHT THEM TO DAMASCUS. AND HE WAS ALSO DELIVERED INTO THESB HAND OF THE KING OF ISRAEL, WHO SMOTE HIM WITH A GREAT SLAUGHTER.E# 6 FOR PEKAH THE SON OF REMALIAH SLEW IN JUDAH AN HUNDRED AND TWENTY K THOUSAND IN ONE DAY, WHICH WERE ALL VALIANT MEN; BECAUSE THEY HAD FORSAKENI THE LORD GOD OF THEIR FATHERS.HI# 7 AND ZICHRI, A MIGHTY MAN OF EPHRAIM, SLEW MAASEIAH THE KINGS SON, ANDDJ AZRIKAM THE GOVERNOR OF THE HOUSE, AND ELKANAH THAT WAS NEXT TO THE KING.I# 8 AND THE CHILDREN OF ISRAEL CARRIED AWAY CAPTIVE OF THEIR BRETHREN TWODL HUNDRED THOUSAND, WOMEN, SONS, AND DAUGHTERS, AND TOOK ALSO AWAY MUCH SPOIL- FROM THEM, AND BROUGHT THE SPOIL TO SAMARIA.FM# 9 BUT A PROPHET OF THE LORD WAS THERE, WHOSE NAME WAS ODED: AND HE WENT OUTEN BEFORE THE HOST THAT CAME TO SAMARIA, AND SAID UNTO THEM, BEHOLD, BECAUSE THEK LORD GOD OF YOUR FATHERS WAS WROTH WITH JUDAH, HE HATH DELIVERED THEM INTOAJ YOUR HAND, AND YE HAVE SLAIN THEM IN A RAGE THAT REACHETH UP UNTO HEAVEN.M# 10 AND NOW YE PURPOSE TO KEEP UNDER THE CHILDREN OF JUDAH AND JERUSALEM FORRK BONDMEN AND BONDWOMEN UNTO YOU: BUT ARE THERE NOT WITH YOU, EVEN WITH YOU, SINS AGAINST THE LORD YOUR GOD?I# 11 NOW HEAR ME THEREFORE, AND DELIVER THE CAPTIVES AGAIN, WHICH YE HAVEEN TAKEN CAPTIVE OF YOUR BRETHREN: FOR THE FIERCE WRATH OF THE LORD IS UPON YOU.M# 12 THEN CERTAIN OF THE HEADS OF THE CHILDREN OF EPHRAIM, AZARIAH THE SON OFHN JOHANAN, BERECHIAH THE SON OF MESHILLEMOTH, AND JEHIZKIAH THE SON OF SHALLUM,K AND AMASA THE SON OF HADLAI, STOOD UP AGAINST THEM THAT CAME FROM THE WAR,EG# 13 AND SAID UNTO THEM, YE SHALL NOT BRING IN THE CAPTIVES HITHER: FOR L WHEREAS WE HAVE OFFENDED AGAINST THE LORD ALREADY, YE INTEND TO ADD MORE TOM OUR SINS AND TO OUR TRESPASS: FOR OUR TRESPASS IS GREAT, AND THERE IS FIERCER WRATH AGAINST ISRAEL.L# 14 SO THE ARMED MEN LEFT THE CAPTIVES AND THE SPOIL BEFORE THE PRINCES AND ALL THE CONGREGATION.M# 15 AND THE MEN WHICH WERE EXPRESSED BY NAME ROSE UP, AND TOOK THE CAPTIVES,AM AND WITH THE SPOIL CLOTHED ALL THAT WERE NAKED AMONG THEM, AND ARRAYED THEM,3I AND SHOD THEM, AND GAVE THEM TO EAT AND TO DRINK, AND ANOINTED THEM, ANDEL CARRIED ALL THE FEEBLE OF THEM UPON ASSES, AND BROUGHT THEM TO JERICHO, THEF CITY OF PALM TREES, TO THEIR BRETHREN: THEN THEY RETURNED TO SAMARIA.K# 16 AT THAT TIME DID KING AHAZ SEND UNTO THE KINGS OF ASSYRIA TO HELP HIM.IH# 17 FOR AGAIN THE EDOMITES HAD COME AND SMITTEN JUDAH, AND CARRIED AWAY CAPTIVES.K# 18 THE PHILISTINES ALSO HAD INVADED THE CITIES OF THE LOW COUNTRY, AND OFHM THE SOUTH OF JUDAH, AND HAD TAKEN BETHSHEMESH, AND AJALON, AND GEDEROTH, ANDEN SHOCHO WITH THE VILLAGES THEREOF, AND TIMNAH WITH THE VILLAGES THEREOF, GIMZO5 ALSO AND THE VILLAGES THEREOF: AND THEY DWELT THERE.RJ# 19 FOR THE LORD BROUGHT JUDAH LOW BECAUSE OF AHAZ KING OF ISRAEL; FOR HE: MADE JUDAH NAKED, AND TRANSGRESSED SORE AGAINST THE LORD.K# 20 AND TILGATHPILNESER KING OF ASSYRIA CAME UNTO HIM, AND DISTRESSED HIM,I BUT STRENGTHENED HIM NOT.J# 21 FOR AHAZ TOOK AWAY A PORTION OUT OF THE HOUSE OF THE LORD, AND OUT OFH THE HOUSE OF THE KING, AND OF THE PRINCES, AND GAVE IT UNTO THE KING OF ASSYRIA: BUT HE HELPED HIM NOT.I# 22 AND IN THE TIME OF HIS DISTRESS DID HE TRESPASS YET MORE AGAINST THEE LORD: THIS IS THAT KING AHAZ.I# 23 FOR HE SACRIFICED UNTO THE GODS OF DAMASCUS, WHICH SMOTE HIM: AND HEAI SAID, BECAUSE THE GODS OF THE KINGS OF SYRIA HELP THEM, THEREFORE WILL ISM SACRIFICE TO THEM, THAT THEY MAY HELP ME. BUT THEY WERE THE RUI00l443D%5%T6%! !N OF HIM, ANDA OF ALL ISRAEL.OK# 24 AND AHAZ GATHERED TOGETHER THE VESSELS OF THE HOUSE OF GOD, AND CUT INFN PIECES THE VESSELS OF THE HOUSE OF GOD, AND SHUT UP THE DOORS OF THE HOUSE OF? THE LORD, AND HE MADE HIM ALTARS IN EVERY CORNER OF JERUSALEM.SK# 25 AND IN EVERY SEVERAL CITY OF JUDAH HE MADE HIGH PLACES TO BURN INCENSEOD UNTO OTHER GODS, AND PROVOKED TO ANGER THE LORD GOD OF HIS FATHERS.J# 26 NOW THE REST OF HIS ACTS AND OF ALL HIS WAYS, FIRST AND LAST, BEHOLD,? THEY ARE WRITTEN IN THE BOOK OF THE KINGS OF JUDAH AND ISRAEL.K# 27 AND AHAZ SLEPT WITH HIS FATHERS, AND THEY BURIED HIM IN THE CITY, EVENK IN JERUSALEM: BUT THEY BROUGHT HIM NOT INTO THE SEPULCHRES OF THE KINGS OFF3 ISRAEL: AND HEZEKIAH HIS SON REIGNED IN HIS STEAD.F = CHAPTER 29 I# 1 HEZEKIAH BEGAN TO REIGN WHEN HE WAS FIVE AND TWENTY YEARS OLD, AND HEM REIGNED NINE AND TWENTY YEARS IN JERUSALEM. AND HIS MOTHERS NAME WAS ABIJAH,T THE DAUGHTER OF ZECHARIAH.LJ# 2 AND HE DID THAT WHICH WAS RIGHT IN THE SIGHT OF THE LORD, ACCORDING TO$ ALL THAT DAVID HIS FATHER HAD DONE.K# 3 HE IN THE FIRST YEAR OF HIS REIGN, IN THE FIRST MONTH, OPENED THE DOORSE- OF THE HOUSE OF THE LORD, AND REPAIRED THEM. M# 4 AND HE BROUGHT IN THE PRIESTS AND THE LEVITES, AND GATHERED THEM TOGETHERE INTO THE EAST STREET,I# 5 AND SAID UNTO THEM, HEAR ME, YE LEVITES, SANCTIFY NOW YOURSELVES, ANDNH SANCTIFY THE HOUSE OF THE LORD GOD OF YOUR FATHERS, AND CARRY FORTH THE" FILTHINESS OUT OF THE HOLY PLACE.M# 6 FOR OUR FATHERS HAVE TRESPASSED, AND DONE THAT WHICH WAS EVIL IN THE EYES M OF THE LORD OUR GOD, AND HAVE FORSAKEN HIM, AND HAVE TURNED AWAY THEIR FACESE9 FROM THE HABITATION OF THE LORD, AND TURNED THEIR BACKS.MM# 7 ALSO THEY HAVE SHUT UP THE DOORS OF THE PORCH, AND PUT OUT THE LAMPS, ANDEK HAVE NOT BURNED INCENSE NOR OFFERED BURNT OFFERINGS IN THE HOLY PLACE UNTOT THE GOD OF ISRAEL.NM# 8 WHEREFORE THE WRATH OF THE LORD WAS UPON JUDAH AND JERUSALEM, AND HE HATHFK DELIVERED THEM TO TROUBLE, TO ASTONISHMENT, AND TO HISSING, AS YE SEE WITHN YOUR EYES.WG# 9 FOR, LO, OUR FATHERS HAVE FALLEN BY THE SWORD, AND OUR SONS AND OURV3 DAUGHTERS AND OUR WIVES ARE IN CAPTIVITY FOR THIS.HL# 10 NOW IT IS IN MINE HEART TO MAKE A COVENANT WITH THE LORD GOD OF ISRAEL,- THAT HIS FIERCE WRATH MAY TURN AWAY FROM US.UI# 11 MY SONS, BE NOT NOW NEGLIGENT: FOR THE LORD HATH CHOSEN YOU TO STANDOI BEFORE HIM, TO SERVE HIM, AND THAT YE SHOULD MINISTER UNTO HIM, AND BURNM INCENSE.TJ# 12 THEN THE LEVITES AROSE, MAHATH THE SON OF AMASAI, AND JOEL THE SON OFL AZARIAH, OF THE SONS OF THE KOHATHITES: AND OF THE SONS OF MERARI, KISH THEL SON OF ABDI, AND AZARIAH THE SON OF JEHALELEL: AND OF THE GERSHONITES; JOAH- THE SON OF ZIMMAH, AND EDEN THE SON OF JOAH:EH# 13 AND OF THE SONS OF ELIZAPHAN; SHIMRI, AND JEIEL: AND OF THE SONS OF! ASAPH; ZECHARIAH, AND MATTANIAH: E# 14 AND OF THE SONS OF HEMAN; JEHIEL, AND SHIMEI: AND OF THE SONS OF JEDUTHUN; SHEMAIAH, AND UZZIEL.K# 15 AND THEY GATHERED THEIR BRETHREN, AND SANCTIFIED THEMSELVES, AND CAME,JG ACCORDING TO THE COMMANDMENT OF THE KING, BY THE WORDS OF THE LORD, TOO CLEANSE THE HOUSE OF THE LORD. J# 16 AND THE PRIESTS WENT INTO THE INNER PART OF THE HOUSE OF THE LORD, TON CLEANSE IT, AND BROUGHT OUT ALL THE UNCLEANNESS THAT THEY FOUND IN THE TEMPLEN OF THE LORD INTO THE COURT OF THE HOUSE OF THE LORD. AND THE LEVITES TOOK IT,. TO CARRY IT OUT ABROAD INTO THE BROOK KIDRON.K# 17 NOW THEY BEGAN ON THE FIRST DAY OF THE FIRST MONTH TO SANCTIFY, AND ONHH THE EIGHTH DAY OF THE MONTH CAME THEY TO THE PORCH OF THE LORD: SO THEYL SANCTIFIED THE HOUSE OF THE LORD IN EIGHT DAYS; AND IN THE SIXTEENTH DAY OF" THE FIRST MONTH THEY MADE AN END.K# 18 THEN THEY WENT IN TO HEZEKIAH THE KING, AND SAID, WE HAVE CLEANSED ALLUM THE HOUSE OF THE LORD, AND THE ALTAR OF BURNT OFFERING, WITH ALL THE VESSELSU@ THEREOF, AND THE SHEWBREAD TABLE, WITH ALL THE VESSELS THEREOF.L# 19 MOREOVER ALL THE VESSELS, WHICH KING AHAZ IN HIS REIGN DID CAST AWAY INJ HIS TRANSGRESSION, HAVE WE PREPARED AND SANCTIFIED, AND, BEHOLD, THEY ARE BEFOR00l4J2<%X>%+%O-%TADATADATAE THE ALTAR OF THE LORD.L# 20 THEN HEZEKIAH THE KING ROSE EARLY, AND GATHERED THE RULERS OF THE CITY,& AND WENT UP TO THE HOUSE OF THE LORD.J# 21 AND THEY BROUGHT SEVEN BULLOCKS, AND SEVEN RAMS, AND SEVEN LAMBS, ANDK SEVEN HE GOATS, FOR A SIN OFFERING FOR THE KINGDOM, AND FOR THE SANCTUARY, L AND FOR JUDAH. AND HE COMMANDED THE PRIESTS THE SONS OF AARON TO OFFER THEM ON THE ALTAR OF THE LORD.I# 22 SO THEY KILLED THE BULLOCKS, AND THE PRIESTS RECEIVED THE BLOOD, ANDFI SPRINKLED IT ON THE ALTAR: LIKEWISE, WHEN THEY HAD KILLED THE RAMS, THEYII SPRINKLED THE BLOOD UPON THE ALTAR: THEY KILLED ALSO THE LAMBS, AND THEYT$ SPRINKLED THE BLOOD UPON THE ALTAR.M# 23 AND THEY BROUGHT FORTH THE HE GOATS FOR THE SIN OFFERING BEFORE THE KING,; AND THE CONGREGATION; AND THEY LAID THEIR HANDS UPON THEM:I# 24 AND THE PRIESTS KILLED THEM, AND THEY MADE RECONCILIATION WITH THEIRMH BLOOD UPON THE ALTAR, TO MAKE AN ATONEMENT FOR ALL ISRAEL: FOR THE KINGN COMMANDED THAT THE BURNT OFFERING AND THE SIN OFFERING SHOULD BE MADE FOR ALL ISRAEL.G# 25 AND HE SET THE LEVITES IN THE HOUSE OF THE LORD WITH CYMBALS, WITHHN PSALTERIES, AND WITH HARPS, ACCORDING TO THE COMMANDMENT OF DAVID, AND OF GADJ THE KINGS SEER, AND NATHAN THE PROPHET: FOR SO WAS THE COMMANDMENT OF THE LORD BY HIS PROPHETS.I# 26 AND THE LEVITES STOOD WITH THE INSTRUMENTS OF DAVID, AND THE PRIESTSL WITH THE TRUMPETS.BK# 27 AND HEZEKIAH COMMANDED TO OFFER THE BURNT OFFERING UPON THE ALTAR. ANDAH WHEN THE BURNT OFFERING BEGAN, THE SONG OF THE LORD BEGAN ALSO WITH THEE TRUMPETS, AND WITH THE INSTRUMENTS ORDAINED BY DAVID KING OF ISRAEL.BG# 28 AND ALL THE CONGREGATION WORSHIPPED, AND THE SINGERS SANG, AND THEDH TRUMPETERS SOUNDED: AND ALL THIS CONTINUED UNTIL THE BURNT OFFERING WAS FINISHED.J# 29 AND WHEN THEY HAD MADE AN END OF OFFERING, THE KING AND ALL THAT WERE3 PRESENT WITH HIM BOWED THEMSELVES, AND WORSHIPPED.M# 30 MOREOVER HEZEKIAH THE KING AND THE PRINCES COMMANDED THE LEVITES TO SINGWN PRAISE UNTO THE LORD WITH THE WORDS OF DAVID, AND OF ASAPH THE SEER. AND THEYG SANG PRAISES WITH GLADNESS, AND THEY BOWED THEIR HEADS AND WORSHIPPED.AM# 31 THEN HEZEKIAH ANSWERED AND SAID, NOW YE HAVE CONSECRATED YOURSELVES UNTONL THE LORD, COME NEAR AND BRING SACRIFICES AND THANK OFFERINGS INTO THE HOUSEM OF THE LORD. AND THE CONGREGATION BROUGHT IN SACRIFICES AND THANK OFFERINGS;T5 AND AS MANY AS WERE OF A FREE HEART BURNT OFFERINGS. K# 32 AND THE NUMBER OF THE BURNT OFFERINGS, WHICH THE CONGREGATION BROUGHT,OM WAS THREESCORE AND TEN BULLOCKS, AN HUNDRED RAMS, AND TWO HUNDRED LAMBS: ALLE- THESE WERE FOR A BURNT OFFERING TO THE LORD. H# 33 AND THE CONSECRATED THINGS WERE SIX HUNDRED OXEN AND THREE THOUSAND SHEEP.VL# 34 BUT THE PRIESTS WERE TOO FEW, SO THAT THEY COULD NOT FLAY ALL THE BURNTM OFFERINGS: WHEREFORE THEIR BRETHREN THE LEVITES DID HELP THEM, TILL THE WORKFJ WAS ENDED, AND UNTIL THE OTHER PRIESTS HAD SANCTIFIED THEMSELVES: FOR THEL LEVITES WERE MORE UPRIGHT IN HEART TO SANCTIFY THEMSELVES THAN THE PRIESTS.H# 35 AND ALSO THE BURNT OFFERINGS WERE IN ABUNDANCE, WITH THE FAT OF THEJ PEACE OFFERINGS, AND THE DRINK OFFERINGS FOR EVERY BURNT OFFERING. SO THE3 SERVICE OF THE HOUSE OF THE LORD WAS SET IN ORDER. I# 36 AND HEZEKIAH REJOICED, AND ALL THE PEOPLE, THAT GOD HAD PREPARED THE) PEOPLE: FOR THE THING WAS DONE SUDDENLY.V = CHAPTER 30 HH# 1 AND HEZEKIAH SENT TO ALL ISRAEL AND JUDAH, AND WROTE LETTERS ALSO TOH EPHRAIM AND MANASSEH, THAT THEY SHOULD COME TO THE HOUSE OF THE LORD AT= JERUSALEM, TO KEEP THE PASSOVER UNTO THE LORD GOD OF ISRAEL.EM# 2 FOR THE KING HAD TAKEN COUNSEL, AND HIS PRINCES, AND ALL THE CONGREGATIONO8 IN JERUSALEM, TO KEEP THE PASSOVER IN THE SECOND MONTH.H# 3 FOR THEY COULD NOT KEEP IT AT THAT TIME, BECAUSE THE PRIESTS HAD NOTD SANCTIFIED THEMSELVES SUFFICIENTLY, NEITHER HAD THE PEOPLE GATHERED" THEMSELVES TOGETHER TO JERUSALEM.<# 4 AND THE THING PLEASED THE KING AND ALL THE CONGREGATION.L# 5 SO THEY ESTABLISHED A DECREE TO MAKE PROCLAMATION THROUGHOUT ALL ISRAEL,L FROM BEERSHEBA EVEN TO DAN, THAT THEY00l443D%5%T6%! ! SHOULD COME TO KEEP THE PASSOVER UNTOM THE LORD GOD OF ISRAEL AT JERUSALEM: FOR THEY HAD NOT DONE IT OF A LONG TIMEP IN SUCH SORT AS IT WAS WRITTEN.D# 6 SO THE POSTS WENT WITH THE LETTERS FROM THE KING AND HIS PRINCESI THROUGHOUT ALL ISRAEL AND JUDAH, AND ACCORDING TO THE COMMANDMENT OF THEN KING, SAYING, YE CHILDREN OF ISRAEL, TURN AGAIN UNTO THE LORD GOD OF ABRAHAM,N ISAAC, AND ISRAEL, AND HE WILL RETURN TO THE REMNANT OF YOU, THAT ARE ESCAPED) OUT OF THE HAND OF THE KINGS OF ASSYRIA.,M# 7 AND BE NOT YE LIKE YOUR FATHERS, AND LIKE YOUR BRETHREN, WHICH TRESPASSEDRE AGAINST THE LORD GOD OF THEIR FATHERS, WHO THEREFORE GAVE THEM UP TOA DESOLATION, AS YE SEE.SI# 8 NOW BE YE NOT STIFFNECKED, AS YOUR FATHERS WERE, BUT YIELD YOURSELVESAJ UNTO THE LORD, AND ENTER INTO HIS SANCTUARY, WHICH HE HATH SANCTIFIED FORM EVER: AND SERVE THE LORD YOUR GOD, THAT THE FIERCENESS OF HIS WRATH MAY TURN  AWAY FROM YOU.NM# 9 FOR IF YE TURN AGAIN UNTO THE LORD, YOUR BRETHREN AND YOUR CHILDREN SHALLRL FIND COMPASSION BEFORE THEM THAT LEAD THEM CAPTIVE, SO THAT THEY SHALL COMEJ AGAIN INTO THIS LAND: FOR THE LORD YOUR GOD IS GRACIOUS AND MERCIFUL, AND= WILL NOT TURN AWAY HIS FACE FROM YOU, IF YE RETURN UNTO HIM. M# 10 SO THE POSTS PASSED FROM CITY TO CITY THROUGH THE COUNTRY OF EPHRAIM ANDNM MANASSEH EVEN UNTO ZEBULUN: BUT THEY LAUGHED THEM TO SCORN, AND MOCKED THEM.TE# 11 NEVERTHELESS DIVERS OF ASHER AND MANASSEH AND OF ZEBULUN HUMBLEDU# THEMSELVES, AND CAME TO JERUSALEM. G# 12 ALSO IN JUDAH THE HAND OF GOD WAS TO GIVE THEM ONE HEART TO DO THETE COMMANDMENT OF THE KING AND OF THE PRINCES, BY THE WORD OF THE LORD.GF# 13 AND THERE ASSEMBLED AT JERUSALEM MUCH PEOPLE TO KEEP THE FEAST OFA UNLEAVENED BREAD IN THE SECOND MONTH, A VERY GREAT CONGREGATION.YL# 14 AND THEY AROSE AND TOOK AWAY THE ALTARS THAT WERE IN JERUSALEM, AND ALLL THE ALTARS FOR INCENSE TOOK THEY AWAY, AND CAST THEM INTO THE BROOK KIDRON.M# 15 THEN THEY KILLED THE PASSOVER ON THE FOURTEENTH DAY OF THE SECOND MONTH:SM AND THE PRIESTS AND THE LEVITES WERE ASHAMED, AND SANCTIFIED THEMSELVES, ANDO; BROUGHT IN THE BURNT OFFERINGS INTO THE HOUSE OF THE LORD.3K# 16 AND THEY STOOD IN THEIR PLACE AFTER THEIR MANNER, ACCORDING TO THE LAWEN OF MOSES THE MAN OF GOD: THE PRIESTS SPRINKLED THE BLOOD, WHICH THEY RECEIVED OF THE HAND OF THE LEVITES.F# 17 FOR THERE WERE MANY IN THE CONGREGATION THAT WERE NOT SANCTIFIED:I THEREFORE THE LEVITES HAD THE CHARGE OF THE KILLING OF THE PASSOVERS FORO> EVERY ONE THAT WAS NOT CLEAN, TO SANCTIFY THEM UNTO THE LORD.G# 18 FOR A MULTITUDE OF THE PEOPLE, EVEN MANY OF EPHRAIM, AND MANASSEH, I ISSACHAR, AND ZEBULUN, HAD NOT CLEANSED THEMSELVES, YET DID THEY EAT THEAN PASSOVER OTHERWISE THAN IT WAS WRITTEN. BUT HEZEKIAH PRAYED FOR THEM, SAYING, THE GOOD LORD PARDON EVERY ONEEG# 19 THAT PREPARETH HIS HEART TO SEEK GOD, THE LORD GOD OF HIS FATHERS,GJ THOUGH HE BE NOT CLEANSED ACCORDING TO THE PURIFICATION OF THE SANCTUARY.?# 20 AND THE LORD HEARKENED TO HEZEKIAH, AND HEALED THE PEOPLE.,M# 21 AND THE CHILDREN OF ISRAEL THAT WERE PRESENT AT JERUSALEM KEPT THE FEAST L OF UNLEAVENED BREAD SEVEN DAYS WITH GREAT GLADNESS: AND THE LEVITES AND THEL PRIESTS PRAISED THE LORD DAY BY DAY, SINGING WITH LOUD INSTRUMENTS UNTO THE LORD.M# 22 AND HEZEKIAH SPAKE COMFORTABLY UNTO ALL THE LEVITES THAT TAUGHT THE GOODEI KNOWLEDGE OF THE LORD: AND THEY DID EAT THROUGHOUT THE FEAST SEVEN DAYS,AI OFFERING PEACE OFFERINGS, AND MAKING CONFESSION TO THE LORD GOD OF THEIR FATHERS.,K# 23 AND THE WHOLE ASSEMBLY TOOK COUNSEL TO KEEP OTHER SEVEN DAYS: AND THEYT% KEPT OTHER SEVEN DAYS WITH GLADNESS.NG# 24 FOR HEZEKIAH KING OF JUDAH DID GIVE TO THE CONGREGATION A THOUSANDSN BULLOCKS AND SEVEN THOUSAND SHEEP; AND THE PRINCES GAVE TO THE CONGREGATION AH THOUSAND BULLOCKS AND TEN THOUSAND SHEEP: AND A GREAT NUMBER OF PRIESTS SANCTIFIED THEMSELVES.DM# 25 AND ALL THE CONGREGATION OF JUDAH, WITH THE PRIESTS AND THE LEVITES, AND,N ALL THE CONGREGATION THAT CAME OUT OF ISRAEL, AND THE STRANGERS THAT CAME OUT: OF THE LAND OF ISRAEL, AND THAT00l4J2<%X>%+%O-%TADATADATA DWELT IN JUDAH, REJOICED.K# 26 SO THERE WAS GREAT JOY IN JERUSALEM: FOR SINCE THE TIME OF SOLOMON THEIA SON OF DAVID KING OF ISRAEL THERE WAS NOT THE LIKE IN JERUSALEM.EI# 27 THEN THE PRIESTS THE LEVITES AROSE AND BLESSED THE PEOPLE: AND THEIRTK VOICE WAS HEARD, AND THEIR PRAYER CAME UP TO HIS HOLY DWELLING PLACE, EVENA UNTO HEAVEN.R = CHAPTER 31 HL# 1 NOW WHEN ALL THIS WAS FINISHED, ALL ISRAEL THAT WERE PRESENT WENT OUT TON THE CITIES OF JUDAH, AND BRAKE THE IMAGES IN PIECES, AND CUT DOWN THE GROVES,M AND THREW DOWN THE HIGH PLACES AND THE ALTARS OUT OF ALL JUDAH AND BENJAMIN, N IN EPHRAIM ALSO AND MANASSEH, UNTIL THEY HAD UTTERLY DESTROYED THEM ALL. THENM ALL THE CHILDREN OF ISRAEL RETURNED, EVERY MAN TO HIS POSSESSION, INTO THEIRH OWN CITIES.K# 2 AND HEZEKIAH APPOINTED THE COURSES OF THE PRIESTS AND THE LEVITES AFTEREK THEIR COURSES, EVERY MAN ACCORDING TO HIS SERVICE, THE PRIESTS AND LEVITESEN FOR BURNT OFFERINGS AND FOR PEACE OFFERINGS, TO MINISTER, AND TO GIVE THANKS,5 AND TO PRAISE IN THE GATES OF THE TENTS OF THE LORD. F# 3 HE APPOINTED ALSO THE KINGS PORTION OF HIS SUBSTANCE FOR THE BURNTN OFFERINGS, TO WIT, FOR THE MORNING AND EVENING BURNT OFFERINGS, AND THE BURNTN OFFERINGS FOR THE SABBATHS, AND FOR THE NEW MOONS, AND FOR THE SET FEASTS, AS& IT IS WRITTEN IN THE LAW OF THE LORD.H# 4 MOREOVER HE COMMANDED THE PEOPLE THAT DWELT IN JERUSALEM TO GIVE THEM PORTION OF THE PRIESTS AND THE LEVITES, THAT THEY MIGHT BE ENCOURAGED IN THEO LAW OF THE LORD.IF# 5 AND AS SOON AS THE COMMANDMENT CAME ABROAD, THE CHILDREN OF ISRAELL BROUGHT IN ABUNDANCE THE FIRSTFRUITS OF CORN, WINE, AND OIL, AND HONEY, ANDN OF ALL THE INCREASE OF THE FIELD; AND THE TITHE OF ALL THINGS BROUGHT THEY IN ABUNDANTLY.M# 6 AND CONCERNING THE CHILDREN OF ISRAEL AND JUDAH, THAT DWELT IN THE CITIESAM OF JUDAH, THEY ALSO BROUGHT IN THE TITHE OF OXEN AND SHEEP, AND THE TITHE OF M HOLY THINGS WHICH WERE CONSECRATED UNTO THE LORD THEIR GOD, AND LAID THEM BYD HEAPS.I# 7 IN THE THIRD MONTH THEY BEGAN TO LAY THE FOUNDATION OF THE HEAPS, ANDL$ FINISHED THEM IN THE SEVENTH MONTH.J# 8 AND WHEN HEZEKIAH AND THE PRINCES CAME AND SAW THE HEAPS, THEY BLESSED! THE LORD, AND HIS PEOPLE ISRAEL. L# 9 THEN HEZEKIAH QUESTIONED WITH THE PRIESTS AND THE LEVITES CONCERNING THE HEAPS.AI# 10 AND AZARIAH THE CHIEF PRIEST OF THE HOUSE OF ZADOK ANSWERED HIM, ANDOJ SAID, SINCE THE PEOPLE BEGAN TO BRING THE OFFERINGS INTO THE HOUSE OF THEI LORD, WE HAVE HAD ENOUGH TO EAT, AND HAVE LEFT PLENTY: FOR THE LORD HATH @ BLESSED HIS PEOPLE; AND THAT WHICH IS LEFT IS THIS GREAT STORE.J# 11 THEN HEZEKIAH COMMANDED TO PREPARE CHAMBERS IN THE HOUSE OF THE LORD; AND THEY PREPARED THEM,I# 12 AND BROUGHT IN THE OFFERINGS AND THE TITHES AND THE DEDICATED THINGS M FAITHFULLY: OVER WHICH CONONIAH THE LEVITE WAS RULER, AND SHIMEI HIS BROTHERT WAS THE NEXT.G# 13 AND JEHIEL, AND AZAZIAH, AND NAHATH, AND ASAHEL, AND JERIMOTH, ANDSK JOZABAD, AND ELIEL, AND ISMACHIAH, AND MAHATH, AND BENAIAH, WERE OVERSEERSYI UNDER THE HAND OF CONONIAH AND SHIMEI HIS BROTHER, AT THE COMMANDMENT OFR> HEZEKIAH THE KING, AND AZARIAH THE RULER OF THE HOUSE OF GOD.J# 14 AND KORE THE SON OF IMNAH THE LEVITE, THE PORTER TOWARD THE EAST, WASM OVER THE FREEWILL OFFERINGS OF GOD, TO DISTRIBUTE THE OBLATIONS OF THE LORD,I AND THE MOST HOLY THINGS.M# 15 AND NEXT HIM WERE EDEN, AND MINIAMIN, AND JESHUA, AND SHEMAIAH, AMARIAH, M AND SHECANIAH, IN THE CITIES OF THE PRIESTS, IN THEIR SET OFFICE, TO GIVE TO A THEIR BRETHREN BY COURSES, AS WELL TO THE GREAT AS TO THE SMALL:IK# 16 BESIDE THEIR GENEALOGY OF MALES, FROM THREE YEARS OLD AND UPWARD, EVENEK UNTO EVERY ONE THAT ENTERETH INTO THE HOUSE OF THE LORD, HIS DAILY PORTION ? FOR THEIR SERVICE IN THEIR CHARGES ACCORDING TO THEIR COURSES;TL# 17 BOTH TO THE GENEALOGY OF THE PRIESTS BY THE HOUSE OF THEIR FATHERS, ANDH THE LEVITES FROM TWENTY YEARS OLD AND UPWARD, IN THEIR CHARGES BY THEIR COURSES;TJ# 18 AND TO THE GENEALOGY OF ALL THEIR LITTLE ONES, THEIR WIVES, AND THEIRJ SONS, AND THEIR DAUGHTERS, THROUGH ALL THE 00l 443D%5%T6%! !CONGREGATION: FOR IN THEIR SET/ OFFICE THEY SANCTIFIED THEMSELVES IN HOLINESS:EK# 19 ALSO OF THE SONS OF AARON THE PRIESTS, WHICH WERE IN THE FIELDS OF THEOL SUBURBS OF THEIR CITIES, IN EVERY SEVERAL CITY, THE MEN THAT WERE EXPRESSEDN BY NAME, TO GIVE PORTIONS TO ALL THE MALES AMONG THE PRIESTS, AND TO ALL THAT0 WERE RECKONED BY GENEALOGIES AMONG THE LEVITES.K# 20 AND THUS DID HEZEKIAH THROUGHOUT ALL JUDAH, AND WROUGHT THAT WHICH WAS 2 GOOD AND RIGHT AND TRUTH BEFORE THE LORD HIS GOD.L# 21 AND IN EVERY WORK THAT HE BEGAN IN THE SERVICE OF THE HOUSE OF GOD, ANDM IN THE LAW, AND IN THE COMMANDMENTS, TO SEEK HIS GOD, HE DID IT WITH ALL HISH HEART, AND PROSPERED. = CHAPTER 32 IJ# 1 AFTER THESE THINGS, AND THE ESTABLISHMENT THEREOF, SENNACHERIB KING OFN ASSYRIA CAME, AND ENTERED INTO JUDAH, AND ENCAMPED AGAINST THE FENCED CITIES,% AND THOUGHT TO WIN THEM FOR HIMSELF.TM# 2 AND WHEN HEZEKIAH SAW THAT SENNACHERIB WAS COME, AND THAT HE WAS PURPOSEDI TO FIGHT AGAINST JERUSALEM,M# 3 HE TOOK COUNSEL WITH HIS PRINCES AND HIS MIGHTY MEN TO STOP THE WATERS OFOB THE FOUNTAINS WHICH WERE WITHOUT THE CITY: AND THEY DID HELP HIM.C# 4 SO THERE WAS GATHERED MUCH PEOPLE TOGETHER, WHO STOPPED ALL THE M FOUNTAINS, AND THE BROOK THAT RAN THROUGH THE MIDST OF THE LAND, SAYING, WHY,7 SHOULD THE KINGS OF ASSYRIA COME, AND FIND MUCH WATER?CL# 5 ALSO HE STRENGTHENED HIMSELF, AND BUILT UP ALL THE WALL THAT WAS BROKEN,M AND RAISED IT UP TO THE TOWERS, AND ANOTHER WALL WITHOUT, AND REPAIRED MILLO? IN THE CITY OF DAVID, AND MADE DARTS AND SHIELDS IN ABUNDANCE.HM# 6 AND HE SET CAPTAINS OF WAR OVER THE PEOPLE, AND GATHERED THEM TOGETHER TO.J HIM IN THE STREET OF THE GATE OF THE CITY, AND SPAKE COMFORTABLY TO THEM, SAYING,H# 7 BE STRONG AND COURAGEOUS, BE NOT AFRAID NOR DISMAYED FOR THE KING OFL ASSYRIA, NOR FOR ALL THE MULTITUDE THAT IS WITH HIM: FOR THERE BE MORE WITH US THAN WITH HIM:L# 8 WITH HIM IS AN ARM OF FLESH; BUT WITH US IS THE LORD OUR GOD TO HELP US,M AND TO FIGHT OUR BATTLES. AND THE PEOPLE RESTED THEMSELVES UPON THE WORDS OFD HEZEKIAH KING OF JUDAH.C# 9 AFTER THIS DID SENNACHERIB KING OF ASSYRIA SEND HIS SERVANTS TO.N JERUSALEM, (BUT HE HIMSELF LAID SIEGE AGAINST LACHISH, AND ALL HIS POWER WITHN HIM,) UNTO HEZEKIAH KING OF JUDAH, AND UNTO ALL JUDAH THAT WERE AT JERUSALEM, SAYING,I# 10 THUS SAITH SENNACHERIB KING OF ASSYRIA, WHEREON DO YE TRUST, THAT YEH! ABIDE IN THE SIEGE IN JERUSALEM?ML# 11 DOTH NOT HEZEKIAH PERSUADE YOU TO GIVE OVER YOURSELVES TO DIE BY FAMINEL AND BY THIRST, SAYING, THE LORD OUR GOD SHALL DELIVER US OUT OF THE HAND OF THE KING OF ASSYRIA?DJ# 12 HATH NOT THE SAME HEZEKIAH TAKEN AWAY HIS HIGH PLACES AND HIS ALTARS,N AND COMMANDED JUDAH AND JERUSALEM, SAYING, YE SHALL WORSHIP BEFORE ONE ALTAR, AND BURN INCENSE UPON IT?M# 13 KNOW YE NOT WHAT I AND MY FATHERS HAVE DONE UNTO ALL THE PEOPLE OF OTHERIL LANDS? WERE THE GODS OF THE NATIONS OF THOSE LANDS ANY WAYS ABLE TO DELIVER THEIR LANDS OUT OF MINE HAND?F# 14 WHO WAS THERE AMONG ALL THE GODS OF THOSE NATIONS THAT MY FATHERSM UTTERLY DESTROYED, THAT COULD DELIVER HIS PEOPLE OUT OF MINE HAND, THAT YOURO4 GOD SHOULD BE ABLE TO DELIVER YOU OUT OF MINE HAND?I# 15 NOW THEREFORE LET NOT HEZEKIAH DECEIVE YOU, NOR PERSUADE YOU ON THISRN MANNER, NEITHER YET BELIEVE HIM: FOR NO GOD OF ANY NATION OR KINGDOM WAS ABLEK TO DELIVER HIS PEOPLE OUT OF MINE HAND, AND OUT OF THE HAND OF MY FATHERS:S; HOW MUCH LESS SHALL YOUR GOD DELIVER YOU OUT OF MINE HAND? J# 16 AND HIS SERVANTS SPAKE YET MORE AGAINST THE LORD GOD, AND AGAINST HIS SERVANT HEZEKIAH.J# 17 HE WROTE ALSO LETTERS TO RAIL ON THE LORD GOD OF ISRAEL, AND TO SPEAKH AGAINST HIM, SAYING, AS THE GODS OF THE NATIONS OF OTHER LANDS HAVE NOTJ DELIVERED THEIR PEOPLE OUT OF MINE HAND, SO SHALL NOT THE GOD OF HEZEKIAH% DELIVER HIS PEOPLE OUT OF MINE HAND.OL# 18 THEN THEY CRIED WITH A LOUD VOICE IN THE JEWS SPEECH UNTO THE PEOPLE OFM JERUSALEM THAT WERE ON THE WALL, TO AFFRIGHT THEM, AND TO TROUBLE THEM; THATA THEY MIGHT TAKE THE CITY.L# 19 AND THEY SPAKE AGAINST THE GOD 00l(4J2<%X>%+%O-%TADATADATAOF JERUSALEM, AS AGAINST THE GODS OF THE> PEOPLE OF THE EARTH, WHICH WERE THE WORK OF THE HANDS OF MAN.L# 20 AND FOR THIS CAUSE HEZEKIAH THE KING, AND THE PROPHET ISAIAH THE SON OF" AMOZ, PRAYED AND CRIED TO HEAVEN.L# 21 AND THE LORD SENT AN ANGEL, WHICH CUT OFF ALL THE MIGHTY MEN OF VALOUR,G AND THE LEADERS AND CAPTAINS IN THE CAMP OF THE KING OF ASSYRIA. SO HEJK RETURNED WITH SHAME OF FACE TO HIS OWN LAND. AND WHEN HE WAS COME INTO THEM HOUSE OF HIS GOD, THEY THAT CAME FORTH OF HIS OWN BOWELS SLEW HIM THERE WITHS THE SWORD.GK# 22 THUS THE LORD SAVED HEZEKIAH AND THE INHABITANTS OF JERUSALEM FROM THE M HAND OF SENNACHERIB THE KING OF ASSYRIA, AND FROM THE HAND OF ALL OTHER, ANDO GUIDED THEM ON EVERY SIDE..G# 23 AND MANY BROUGHT GIFTS UNTO THE LORD TO JERUSALEM, AND PRESENTS TOLM HEZEKIAH KING OF JUDAH: SO THAT HE WAS MAGNIFIED IN THE SIGHT OF ALL NATIONS FROM THENCEFORTH.L# 24 IN THOSE DAYS HEZEKIAH WAS SICK TO THE DEATH, AND PRAYED UNTO THE LORD:/ AND HE SPAKE UNTO HIM, AND HE GAVE HIM A SIGN.EL# 25 BUT HEZEKIAH RENDERED NOT AGAIN ACCORDING TO THE BENEFIT DONE UNTO HIM;J FOR HIS HEART WAS LIFTED UP: THEREFORE THERE WAS WRATH UPON HIM, AND UPON JUDAH AND JERUSALEM.NI# 26 NOTWITHSTANDING HEZEKIAH HUMBLED HIMSELF FOR THE PRIDE OF HIS HEART, M BOTH HE AND THE INHABITANTS OF JERUSALEM, SO THAT THE WRATH OF THE LORD CAMEE' NOT UPON THEM IN THE DAYS OF HEZEKIAH.NK# 27 AND HEZEKIAH HAD EXCEEDING MUCH RICHES AND HONOUR: AND HE MADE HIMSELFTN TREASURIES FOR SILVER, AND FOR GOLD, AND FOR PRECIOUS STONES, AND FOR SPICES,8 AND FOR SHIELDS, AND FOR ALL MANNER OF PLEASANT JEWELS;M# 28 STOREHOUSES ALSO FOR THE INCREASE OF CORN, AND WINE, AND OIL; AND STALLSD0 FOR ALL MANNER OF BEASTS, AND COTES FOR FLOCKS.L# 29 MOREOVER HE PROVIDED HIM CITIES, AND POSSESSIONS OF FLOCKS AND HERDS IN6 ABUNDANCE: FOR GOD HAD GIVEN HIM SUBSTANCE VERY MUCH.H# 30 THIS SAME HEZEKIAH ALSO STOPPED THE UPPER WATERCOURSE OF GIHON, ANDM BROUGHT IT STRAIGHT DOWN TO THE WEST SIDE OF THE CITY OF DAVID. AND HEZEKIAH  PROSPERED IN ALL HIS WORKS.J# 31 HOWBEIT IN THE BUSINESS OF THE AMBASSADORS OF THE PRINCES OF BABYLON,J WHO SENT UNTO HIM TO ENQUIRE OF THE WONDER THAT WAS DONE IN THE LAND, GODD LEFT HIM, TO TRY HIM, THAT HE MIGHT KNOW ALL THAT WAS IN HIS HEART.M# 32 NOW THE REST OF THE ACTS OF HEZEKIAH, AND HIS GOODNESS, BEHOLD, THEY AREEN WRITTEN IN THE VISION OF ISAIAH THE PROPHET, THE SON OF AMOZ, AND IN THE BOOK" OF THE KINGS OF JUDAH AND ISRAEL.M# 33 AND HEZEKIAH SLEPT WITH HIS FATHERS, AND THEY BURIED HIM IN THE CHIEFEST M OF THE SEPULCHRES OF THE SONS OF DAVID: AND ALL JUDAH AND THE INHABITANTS OFOK JERUSALEM DID HIM HONOUR AT HIS DEATH. AND MANASSEH HIS SON REIGNED IN HISL STEAD. = CHAPTER 33 RN# 1 MANASSEH WAS TWELVE YEARS OLD WHEN HE BEGAN TO REIGN, AND HE REIGNED FIFTY AND FIVE YEARS IN JERUSALEM:SG# 2 BUT DID THAT WHICH WAS EVIL IN THE SIGHT OF THE LORD, LIKE UNTO THEOL ABOMINATIONS OF THE HEATHEN, WHOM THE LORD HAD CAST OUT BEFORE THE CHILDREN OF ISRAEL.HK# 3 FOR HE BUILT AGAIN THE HIGH PLACES WHICH HEZEKIAH HIS FATHER HAD BROKEN N DOWN, AND HE REARED UP ALTARS FOR BAALIM, AND MADE GROVES, AND WORSHIPPED ALL% THE HOST OF HEAVEN, AND SERVED THEM.NM# 4 ALSO HE BUILT ALTARS IN THE HOUSE OF THE LORD, WHEREOF THE LORD HAD SAID, ( IN JERUSALEM SHALL MY NAME BE FOR EVER.K# 5 AND HE BUILT ALTARS FOR ALL THE HOST OF HEAVEN IN THE TWO COURTS OF THEH HOUSE OF THE LORD.OL# 6 AND HE CAUSED HIS CHILDREN TO PASS THROUGH THE FIRE IN THE VALLEY OF THEG SON OF HINNOM: ALSO HE OBSERVED TIMES, AND USED ENCHANTMENTS, AND USED K WITCHCRAFT, AND DEALT WITH A FAMILIAR SPIRIT, AND WITH WIZARDS: HE WROUGHTS= MUCH EVIL IN THE SIGHT OF THE LORD, TO PROVOKE HIM TO ANGER. J# 7 AND HE SET A CARVED IMAGE, THE IDOL WHICH HE HAD MADE, IN THE HOUSE OFK GOD, OF WHICH GOD HAD SAID TO DAVID AND TO SOLOMON HIS SON, IN THIS HOUSE,HN AND IN JERUSALEM, WHICH I HAVE CHOSEN BEFORE ALL THE TRIBES OF ISRAEL, WILL I PUT MY NAME FOR EVER:J# 8 NEITHER WILL I ANY MORE REMOVE THE FOOT OF ISRAEL FROM OUT OF THE LANDK WHICH I HAVE 00l04l44D%5%T6%! !APPOINTED FOR YOUR FATHERS; SO THAT THEY WILL TAKE HEED TO DOSL ALL THAT I HAVE COMMANDED THEM, ACCORDING TO THE WHOLE LAW AND THE STATUTES) AND THE ORDINANCES BY THE HAND OF MOSES.RM# 9 SO MANASSEH MADE JUDAH AND THE INHABITANTS OF JERUSALEM TO ERR, AND TO DOSK WORSE THAN THE HEATHEN, WHOM THE LORD HAD DESTROYED BEFORE THE CHILDREN OFH ISRAEL.J# 10 AND THE LORD SPAKE TO MANASSEH, AND TO HIS PEOPLE: BUT THEY WOULD NOT HEARKEN.II# 11 WHEREFORE THE LORD BROUGHT UPON THEM THE CAPTAINS OF THE HOST OF THEOJ KING OF ASSYRIA, WHICH TOOK MANASSEH AMONG THE THORNS, AND BOUND HIM WITH% FETTERS, AND CARRIED HIM TO BABYLON. M# 12 AND WHEN HE WAS IN AFFLICTION, HE BESOUGHT THE LORD HIS GOD, AND HUMBLEDE/ HIMSELF GREATLY BEFORE THE GOD OF HIS FATHERS,ED# 13 AND PRAYED UNTO HIM: AND HE WAS INTREATED OF HIM, AND HEARD HISH SUPPLICATION, AND BROUGHT HIM AGAIN TO JERUSALEM INTO HIS KINGDOM. THEN( MANASSEH KNEW THAT THE LORD HE WAS GOD.J# 14 NOW AFTER THIS HE BUILT A WALL WITHOUT THE CITY OF DAVID, ON THE WESTL SIDE OF GIHON, IN THE VALLEY, EVEN TO THE ENTERING IN AT THE FISH GATE, ANDN COMPASSED ABOUT OPHEL, AND RAISED IT UP A VERY GREAT HEIGHT, AND PUT CAPTAINS* OF WAR IN ALL THE FENCED CITIES OF JUDAH.L# 15 AND HE TOOK AWAY THE STRANGE GODS, AND THE IDOL OUT OF THE HOUSE OF THEL LORD, AND ALL THE ALTARS THAT HE HAD BUILT IN THE MOUNT OF THE HOUSE OF THE7 LORD, AND IN JERUSALEM, AND CAST THEM OUT OF THE CITY. H# 16 AND HE REPAIRED THE ALTAR OF THE LORD, AND SACRIFICED THEREON PEACEL OFFERINGS AND THANK OFFERINGS, AND COMMANDED JUDAH TO SERVE THE LORD GOD OF ISRAEL.M# 17 NEVERTHELESS THE PEOPLE DID SACRIFICE STILL IN THE HIGH PLACES, YET UNTO  THE LORD THEIR GOD ONLY.LK# 18 NOW THE REST OF THE ACTS OF MANASSEH, AND HIS PRAYER UNTO HIS GOD, AND H THE WORDS OF THE SEERS THAT SPAKE TO HIM IN THE NAME OF THE LORD GOD OFE ISRAEL, BEHOLD, THEY ARE WRITTEN IN THE BOOK OF THE KINGS OF ISRAEL.MM# 19 HIS PRAYER ALSO, AND HOW GOD WAS INTREATED OF HIM, AND ALL HIS SINS, ANDTM HIS TRESPASS, AND THE PLACES WHEREIN HE BUILT HIGH PLACES, AND SET UP GROVESLM AND GRAVEN IMAGES, BEFORE HE WAS HUMBLED: BEHOLD, THEY ARE WRITTEN AMONG THEI SAYINGS OF THE SEERS.G# 20 SO MANASSEH SLEPT WITH HIS FATHERS, AND THEY BURIED HIM IN HIS OWNH. HOUSE: AND AMON HIS SON REIGNED IN HIS STEAD.J# 21 AMON WAS TWO AND TWENTY YEARS OLD WHEN HE BEGAN TO REIGN, AND REIGNED TWO YEARS IN JERUSALEM.M# 22 BUT HE DID THAT WHICH WAS EVIL IN THE SIGHT OF THE LORD, AS DID MANASSEHMN HIS FATHER: FOR AMON SACRIFICED UNTO ALL THE CARVED IMAGES WHICH MANASSEH HIS" FATHER HAD MADE, AND SERVED THEM;H# 23 AND HUMBLED NOT HIMSELF BEFORE THE LORD, AS MANASSEH HIS FATHER HAD4 HUMBLED HIMSELF; BUT AMON TRESPASSED MORE AND MORE.K# 24 AND HIS SERVANTS CONSPIRED AGAINST HIM, AND SLEW HIM IN HIS OWN HOUSE.IM# 25 BUT THE PEOPLE OF THE LAND SLEW ALL THEM THAT HAD CONSPIRED AGAINST KINGIH AMON; AND THE PEOPLE OF THE LAND MADE JOSIAH HIS SON KING IN HIS STEAD. = CHAPTER 34 OH# 1 JOSIAH WAS EIGHT YEARS OLD WHEN HE BEGAN TO REIGN, AND HE REIGNED IN JERUSALEM ONE AND THIRTY YEARS.K# 2 AND HE DID THAT WHICH WAS RIGHT IN THE SIGHT OF THE LORD, AND WALKED INSM THE WAYS OF DAVID HIS FATHER, AND DECLINED NEITHER TO THE RIGHT HAND, NOR TO THE LEFT.L# 3 FOR IN THE EIGHTH YEAR OF HIS REIGN, WHILE HE WAS YET YOUNG, HE BEGAN TOL SEEK AFTER THE GOD OF DAVID HIS FATHER: AND IN THE TWELFTH YEAR HE BEGAN TOH PURGE JUDAH AND JERUSALEM FROM THE HIGH PLACES, AND THE GROVES, AND THE& CARVED IMAGES, AND THE MOLTEN IMAGES.M# 4 AND THEY BRAKE DOWN THE ALTARS OF BAALIM IN HIS PRESENCE; AND THE IMAGES,NJ THAT WERE ON HIGH ABOVE THEM, HE CUT DOWN; AND THE GROVES, AND THE CARVEDN IMAGES, AND THE MOLTEN IMAGES, HE BRAKE IN PIECES, AND MADE DUST OF THEM, ANDB STROWED IT UPON THE GRAVES OF THEM THAT HAD SACRIFICED UNTO THEM.I# 5 AND HE BURNT THE BONES OF THE PRIESTS UPON THEIR ALTARS, AND CLEANSEDT JUDAH AND JERUSALEM.RJ# 6 AND SO DID HE IN THE CITIES OF MANASSEH, AND EPHRAIM, AND SIMEON, EVEN0 UNTO NAPHTALI, WITH THEIR MATTOCKS ROUND ABOUT.M# 7 AND WHEN HE HAD BR00l84J2<%X>%+%O-%TADATADATAOKEN DOWN THE ALTARS AND THE GROVES, AND HAD BEATEN THEIN GRAVEN IMAGES INTO POWDER, AND CUT DOWN ALL THE IDOLS THROUGHOUT ALL THE LAND% OF ISRAEL, HE RETURNED TO JERUSALEM.EM# 8 NOW IN THE EIGHTEENTH YEAR OF HIS REIGN, WHEN HE HAD PURGED THE LAND, ANDOL THE HOUSE, HE SENT SHAPHAN THE SON OF AZALIAH, AND MAASEIAH THE GOVERNOR OFN THE CITY, AND JOAH THE SON OF JOAHAZ THE RECORDER, TO REPAIR THE HOUSE OF THE LORD HIS GOD.K# 9 AND WHEN THEY CAME TO HILKIAH THE HIGH PRIEST, THEY DELIVERED THE MONEYAN THAT WAS BROUGHT INTO THE HOUSE OF GOD, WHICH THE LEVITES THAT KEPT THE DOORSL HAD GATHERED OF THE HAND OF MANASSEH AND EPHRAIM, AND OF ALL THE REMNANT OFG ISRAEL, AND OF ALL JUDAH AND BENJAMIN; AND THEY RETURNED TO JERUSALEM. M# 10 AND THEY PUT IT IN THE HAND OF THE WORKMEN THAT HAD THE OVERSIGHT OF THENM HOUSE OF THE LORD, AND THEY GAVE IT TO THE WORKMEN THAT WROUGHT IN THE HOUSE , OF THE LORD, TO REPAIR AND AMEND THE HOUSE:M# 11 EVEN TO THE ARTIFICERS AND BUILDERS GAVE THEY IT, TO BUY HEWN STONE, ANDAK TIMBER FOR COUPLINGS, AND TO FLOOR THE HOUSES WHICH THE KINGS OF JUDAH HADH DESTROYED.FH# 12 AND THE MEN DID THE WORK FAITHFULLY: AND THE OVERSEERS OF THEM WEREJ JAHATH AND OBADIAH, THE LEVITES, OF THE SONS OF MERARI; AND ZECHARIAH ANDN MESHULLAM, OF THE SONS OF THE KOHATHITES, TO SET IT FORWARD; AND OTHER OF THE8 LEVITES, ALL THAT COULD SKILL OF INSTRUMENTS OF MUSICK.J# 13 ALSO THEY WERE OVER THE BEARERS OF BURDENS, AND WERE OVERSEERS OF ALLN THAT WROUGHT THE WORK IN ANY MANNER OF SERVICE: AND OF THE LEVITES THERE WERE$ SCRIBES, AND OFFICERS, AND PORTERS.K# 14 AND WHEN THEY BROUGHT OUT THE MONEY THAT WAS BROUGHT INTO THE HOUSE OF J THE LORD, HILKIAH THE PRIEST FOUND A BOOK OF THE LAW OF THE LORD GIVEN BY MOSES.AJ# 15 AND HILKIAH ANSWERED AND SAID TO SHAPHAN THE SCRIBE, I HAVE FOUND THEL BOOK OF THE LAW IN THE HOUSE OF THE LORD. AND HILKIAH DELIVERED THE BOOK TO SHAPHAN. M# 16 AND SHAPHAN CARRIED THE BOOK TO THE KING, AND BROUGHT THE KING WORD BACK C AGAIN, SAYING, ALL THAT WAS COMMITTED TO THY SERVANTS, THEY DO IT.RM# 17 AND THEY HAVE GATHERED TOGETHER THE MONEY THAT WAS FOUND IN THE HOUSE OF K THE LORD, AND HAVE DELIVERED IT INTO THE HAND OF THE OVERSEERS, AND TO THE  HAND OF THE WORKMEN.EK# 18 THEN SHAPHAN THE SCRIBE TOLD THE KING, SAYING, HILKIAH THE PRIEST HATHA6 GIVEN ME A BOOK. AND SHAPHAN READ IT BEFORE THE KING.L# 19 AND IT CAME TO PASS, WHEN THE KING HAD HEARD THE WORDS OF THE LAW, THAT HE RENT HIS CLOTHES.OM# 20 AND THE KING COMMANDED HILKIAH, AND AHIKAM THE SON OF SHAPHAN, AND ABDONSM THE SON OF MICAH, AND SHAPHAN THE SCRIBE, AND ASAIAH A SERVANT OF THE KINGS,N SAYING,M# 21 GO, ENQUIRE OF THE LORD FOR ME, AND FOR THEM THAT ARE LEFT IN ISRAEL ANDHK IN JUDAH, CONCERNING THE WORDS OF THE BOOK THAT IS FOUND: FOR GREAT IS THEGK WRATH OF THE LORD THAT IS POURED OUT UPON US, BECAUSE OUR FATHERS HAVE NOTKI KEPT THE WORD OF THE LORD, TO DO AFTER ALL THAT IS WRITTEN IN THIS BOOK.WJ# 22 AND HILKIAH, AND THEY THAT THE KING HAD APPOINTED, WENT TO HULDAH THEN PROPHETESS, THE WIFE OF SHALLUM THE SON OF TIKVATH, THE SON OF HASRAH, KEEPERM OF THE WARDROBE; (NOW SHE DWELT IN JERUSALEM IN THE COLLEGE:) AND THEY SPAKEM TO HER TO THAT EFFECT.LJ# 23 AND SHE ANSWERED THEM, THUS SAITH THE LORD GOD OF ISRAEL, TELL YE THE MAN THAT SENT YOU TO ME,HM# 24 THUS SAITH THE LORD, BEHOLD, I WILL BRING EVIL UPON THIS PLACE, AND UPONHJ THE INHABITANTS THEREOF, EVEN ALL THE CURSES THAT ARE WRITTEN IN THE BOOK/ WHICH THEY HAVE READ BEFORE THE KING OF JUDAH:EL# 25 BECAUSE THEY HAVE FORSAKEN ME, AND HAVE BURNED INCENSE UNTO OTHER GODS,G THAT THEY MIGHT PROVOKE ME TO ANGER WITH ALL THE WORKS OF THEIR HANDS;CI THEREFORE MY WRATH SHALL BE POURED OUT UPON THIS PLACE, AND SHALL NOT BEH QUENCHED.J# 26 AND AS FOR THE KING OF JUDAH, WHO SENT YOU TO ENQUIRE OF THE LORD, SON SHALL YE SAY UNTO HIM, THUS SAITH THE LORD GOD OF ISRAEL CONCERNING THE WORDS WHICH THOU HAST HEARD;LI# 27 BECAUSE THINE HEART WAS TENDER, AND THOU DIDST HUMBLE THYSELF BEFOREKF GOD, WHEN THOU HEARDEST HIS WORDS AGAINST T00l@444D%5%T6%! !HIS PLACE, AND AGAINST THEI INHABITANTS THEREOF, AND HUMBLEDST THYSELF BEFORE ME, AND DIDST REND THYKJ CLOTHES, AND WEEP BEFORE ME; I HAVE EVEN HEARD THEE ALSO, SAITH THE LORD.M# 28 BEHOLD, I WILL GATHER THEE TO THY FATHERS, AND THOU SHALT BE GATHERED TO J THY GRAVE IN PEACE, NEITHER SHALL THINE EYES SEE ALL THE EVIL THAT I WILLM BRING UPON THIS PLACE, AND UPON THE INHABITANTS OF THE SAME. SO THEY BROUGHTA THE KING WORD AGAIN. I# 29 THEN THE KING SENT AND GATHERED TOGETHER ALL THE ELDERS OF JUDAH ANDI JERUSALEM.AH# 30 AND THE KING WENT UP INTO THE HOUSE OF THE LORD, AND ALL THE MEN OFK JUDAH, AND THE INHABITANTS OF JERUSALEM, AND THE PRIESTS, AND THE LEVITES,HM AND ALL THE PEOPLE, GREAT AND SMALL: AND HE READ IN THEIR EARS ALL THE WORDSAE OF THE BOOK OF THE COVENANT THAT WAS FOUND IN THE HOUSE OF THE LORD.VM# 31 AND THE KING STOOD IN HIS PLACE, AND MADE A COVENANT BEFORE THE LORD, TOOL WALK AFTER THE LORD, AND TO KEEP HIS COMMANDMENTS, AND HIS TESTIMONIES, ANDN HIS STATUTES, WITH ALL HIS HEART, AND WITH ALL HIS SOUL, TO PERFORM THE WORDS0 OF THE COVENANT WHICH ARE WRITTEN IN THIS BOOK.K# 32 AND HE CAUSED ALL THAT WERE PRESENT IN JERUSALEM AND BENJAMIN TO STANDDN TO IT. AND THE INHABITANTS OF JERUSALEM DID ACCORDING TO THE COVENANT OF GOD, THE GOD OF THEIR FATHERS.L# 33 AND JOSIAH TOOK AWAY ALL THE ABOMINATIONS OUT OF ALL THE COUNTRIES THATN PERTAINED TO THE CHILDREN OF ISRAEL, AND MADE ALL THAT WERE PRESENT IN ISRAELK TO SERVE, EVEN TO SERVE THE LORD THEIR GOD. AND ALL HIS DAYS THEY DEPARTEDD7 NOT FROM FOLLOWING THE LORD, THE GOD OF THEIR FATHERS.T = CHAPTER 35 TH# 1 MOREOVER JOSIAH KEPT A PASSOVER UNTO THE LORD IN JERUSALEM: AND THEY> KILLED THE PASSOVER ON THE FOURTEENTH DAY OF THE FIRST MONTH.G# 2 AND HE SET THE PRIESTS IN THEIR CHARGES, AND ENCOURAGED THEM TO THED" SERVICE OF THE HOUSE OF THE LORD,J# 3 AND SAID UNTO THE LEVITES THAT TAUGHT ALL ISRAEL, WHICH WERE HOLY UNTOL THE LORD, PUT THE HOLY ARK IN THE HOUSE WHICH SOLOMON THE SON OF DAVID KINGM OF ISRAEL DID BUILD; IT SHALL NOT BE A BURDEN UPON YOUR SHOULDERS: SERVE NOWT* THE LORD YOUR GOD, AND HIS PEOPLE ISRAEL,M# 4 AND PREPARE YOURSELVES BY THE HOUSES OF YOUR FATHERS, AFTER YOUR COURSES,VG ACCORDING TO THE WRITING OF DAVID KING OF ISRAEL, AND ACCORDING TO THEI WRITING OF SOLOMON HIS SON.M# 5 AND STAND IN THE HOLY PLACE ACCORDING TO THE DIVISIONS OF THE FAMILIES OFEG THE FATHERS OF YOUR BRETHREN THE PEOPLE, AND AFTER THE DIVISION OF THER FAMILIES OF THE LEVITES.NM# 6 SO KILL THE PASSOVER, AND SANCTIFY YOURSELVES, AND PREPARE YOUR BRETHREN,RI THAT THEY MAY DO ACCORDING TO THE WORD OF THE LORD BY THE HAND OF MOSES. L# 7 AND JOSIAH GAVE TO THE PEOPLE, OF THE FLOCK, LAMBS AND KIDS, ALL FOR THEG PASSOVER OFFERINGS, FOR ALL THAT WERE PRESENT, TO THE NUMBER OF THIRTYIJ THOUSAND, AND THREE THOUSAND BULLOCKS: THESE WERE OF THE KINGS SUBSTANCE.J# 8 AND HIS PRINCES GAVE WILLINGLY UNTO THE PEOPLE, TO THE PRIESTS, AND TOK THE LEVITES: HILKIAH AND ZECHARIAH AND JEHIEL, RULERS OF THE HOUSE OF GOD,RN GAVE UNTO THE PRIESTS FOR THE PASSOVER OFFERINGS TWO THOUSAND AND SIX HUNDRED% SMALL CATTLE AND THREE HUNDRED OXEN. J# 9 CONANIAH ALSO, AND SHEMAIAH AND NETHANEEL, HIS BRETHREN, AND HASHABIAHG AND JEIEL AND JOZABAD, CHIEF OF THE LEVITES, GAVE UNTO THE LEVITES FOREF PASSOVER OFFERINGS FIVE THOUSAND SMALL CATTLE, AND FIVE HUNDRED OXEN.K# 10 SO THE SERVICE WAS PREPARED, AND THE PRIESTS STOOD IN THEIR PLACE, ANDPB THE LEVITES IN THEIR COURSES, ACCORDING TO THE KINGS COMMANDMENT.K# 11 AND THEY KILLED THE PASSOVER, AND THE PRIESTS SPRINKLED THE BLOOD FROMW* THEIR HANDS, AND THE LEVITES FLAYED THEM.L# 12 AND THEY REMOVED THE BURNT OFFERINGS, THAT THEY MIGHT GIVE ACCORDING TON THE DIVISIONS OF THE FAMILIES OF THE PEOPLE, TO OFFER UNTO THE LORD, AS IT IS= WRITTEN IN THE BOOK OF MOSES. AND SO DID THEY WITH THE OXEN. L# 13 AND THEY ROASTED THE PASSOVER WITH FIRE ACCORDING TO THE ORDINANCE: BUTM THE OTHER HOLY OFFERINGS SOD THEY IN POTS, AND IN CALDRONS, AND IN PANS, ANDO, DIVIDED THEM SPEEDILY AMONG ALL THE PEOPLE.G# 14 AND AFT00lH4J2<%X>%+%O-%TADATADATAERWARD THEY MADE READY FOR THEMSELVES, AND FOR THE PRIESTS: G BECAUSE THE PRIESTS THE SONS OF AARON WERE BUSIED IN OFFERING OF BURNTGF OFFERINGS AND THE FAT UNTIL NIGHT; THEREFORE THE LEVITES PREPARED FOR3 THEMSELVES, AND FOR THE PRIESTS THE SONS OF AARON.EL# 15 AND THE SINGERS THE SONS OF ASAPH WERE IN THEIR PLACE, ACCORDING TO THEM COMMANDMENT OF DAVID, AND ASAPH, AND HEMAN, AND JEDUTHUN THE KINGS SEER; AND L THE PORTERS WAITED AT EVERY GATE; THEY MIGHT NOT DEPART FROM THEIR SERVICE;2 FOR THEIR BRETHREN THE LEVITES PREPARED FOR THEM.J# 16 SO ALL THE SERVICE OF THE LORD WAS PREPARED THE SAME DAY, TO KEEP THEM PASSOVER, AND TO OFFER BURNT OFFERINGS UPON THE ALTAR OF THE LORD, ACCORDINGE# TO THE COMMANDMENT OF KING JOSIAH.TK# 17 AND THE CHILDREN OF ISRAEL THAT WERE PRESENT KEPT THE PASSOVER AT THATN4 TIME, AND THE FEAST OF UNLEAVENED BREAD SEVEN DAYS.K# 18 AND THERE WAS NO PASSOVER LIKE TO THAT KEPT IN ISRAEL FROM THE DAYS OF M SAMUEL THE PROPHET; NEITHER DID ALL THE KINGS OF ISRAEL KEEP SUCH A PASSOVERHK AS JOSIAH KEPT, AND THE PRIESTS, AND THE LEVITES, AND ALL JUDAH AND ISRAELD5 THAT WERE PRESENT, AND THE INHABITANTS OF JERUSALEM.NJ# 19 IN THE EIGHTEENTH YEAR OF THE REIGN OF JOSIAH WAS THIS PASSOVER KEPT.M# 20 AFTER ALL THIS, WHEN JOSIAH HAD PREPARED THE TEMPLE, NECHO KING OF EGYPTEG CAME UP TO FIGHT AGAINST CHARCHEMISH BY EUPHRATES: AND JOSIAH WENT OUTD AGAINST HIM.AI# 21 BUT HE SENT AMBASSADORS TO HIM, SAYING, WHAT HAVE I TO DO WITH THEE,NL THOU KING OF JUDAH? I COME NOT AGAINST THEE THIS DAY, BUT AGAINST THE HOUSEL WHEREWITH I HAVE WAR: FOR GOD COMMANDED ME TO MAKE HASTE: FORBEAR THEE FROM= MEDDLING WITH GOD, WHO IS WITH ME, THAT HE DESTROY THEE NOT. H# 22 NEVERTHELESS JOSIAH WOULD NOT TURN HIS FACE FROM HIM, BUT DISGUISEDK HIMSELF, THAT HE MIGHT FIGHT WITH HIM, AND HEARKENED NOT UNTO THE WORDS OFSI NECHO FROM THE MOUTH OF GOD, AND CAME TO FIGHT IN THE VALLEY OF MEGIDDO.HL# 23 AND THE ARCHERS SHOT AT KING JOSIAH; AND THE KING SAID TO HIS SERVANTS,% HAVE ME AWAY; FOR I AM SORE WOUNDED.AL# 24 HIS SERVANTS THEREFORE TOOK HIM OUT OF THAT CHARIOT, AND PUT HIM IN THEL SECOND CHARIOT THAT HE HAD; AND THEY BROUGHT HIM TO JERUSALEM, AND HE DIED,J AND WAS BURIED IN ONE OF THE SEPULCHRES OF HIS FATHERS. AND ALL JUDAH AND JERUSALEM MOURNED FOR JOSIAH.F# 25 AND JEREMIAH LAMENTED FOR JOSIAH: AND ALL THE SINGING MEN AND THEJ SINGING WOMEN SPAKE OF JOSIAH IN THEIR LAMENTATIONS TO THIS DAY, AND MADEB THEM AN ORDINANCE IN ISRAEL: AND, BEHOLD, THEY ARE WRITTEN IN THE LAMENTATIONS.L# 26 NOW THE REST OF THE ACTS OF JOSIAH, AND HIS GOODNESS, ACCORDING TO THAT* WHICH WAS WRITTEN IN THE LAW OF THE LORD,K# 27 AND HIS DEEDS, FIRST AND LAST, BEHOLD, THEY ARE WRITTEN IN THE BOOK OF  THE KINGS OF ISRAEL AND JUDAH.D = CHAPTER 36 M# 1 THEN THE PEOPLE OF THE LAND TOOK JEHOAHAZ THE SON OF JOSIAH, AND MADE HIMT( KING IN HIS FATHERS STEAD IN JERUSALEM.J# 2 JEHOAHAZ WAS TWENTY AND THREE YEARS OLD WHEN HE BEGAN TO REIGN, AND HE# REIGNED THREE MONTHS IN JERUSALEM.TK# 3 AND THE KING OF EGYPT PUT HIM DOWN AT JERUSALEM, AND CONDEMNED THE LANDG6 IN AN HUNDRED TALENTS OF SILVER AND A TALENT OF GOLD.F# 4 AND THE KING OF EGYPT MADE ELIAKIM HIS BROTHER KING OVER JUDAH ANDI JERUSALEM, AND TURNED HIS NAME TO JEHOIAKIM. AND NECHO TOOK JEHOAHAZ HIS # BROTHER, AND CARRIED HIM TO EGYPT.AJ# 5 JEHOIAKIM WAS TWENTY AND FIVE YEARS OLD WHEN HE BEGAN TO REIGN, AND HEI REIGNED ELEVEN YEARS IN JERUSALEM: AND HE DID THAT WHICH WAS EVIL IN THE  SIGHT OF THE LORD HIS GOD.JH# 6 AGAINST HIM CAME UP NEBUCHADNEZZAR KING OF BABYLON, AND BOUND HIM IN" FETTERS, TO CARRY HIM TO BABYLON.J# 7 NEBUCHADNEZZAR ALSO CARRIED OF THE VESSELS OF THE HOUSE OF THE LORD TO0 BABYLON, AND PUT THEM IN HIS TEMPLE AT BABYLON.M# 8 NOW THE REST OF THE ACTS OF JEHOIAKIM, AND HIS ABOMINATIONS WHICH HE DID, M AND THAT WHICH WAS FOUND IN HIM, BEHOLD, THEY ARE WRITTEN IN THE BOOK OF THEIH KINGS OF ISRAEL AND JUDAH: AND JEHOIACHIN HIS SON REIGNED IN HIS STEAD.I# 9 JEHOIACHIN WAS EIGHT YEARS OLD WHEN HE BEGAN TO REIGN, AND HE REIGNEDDN THREE MON00lP4mV4D%5%T6%! !THS AND TEN DAYS IN JERUSALEM: AND HE DID THAT WHICH WAS EVIL IN THE SIGHT OF THE LORD. M# 10 AND WHEN THE YEAR WAS EXPIRED, KING NEBUCHADNEZZAR SENT, AND BROUGHT HIMIG TO BABYLON, WITH THE GOODLY VESSELS OF THE HOUSE OF THE LORD, AND MADEA4 ZEDEKIAH HIS BROTHER KING OVER JUDAH AND JERUSALEM.F# 11 ZEDEKIAH WAS ONE AND TWENTY YEARS OLD WHEN HE BEGAN TO REIGN, AND# REIGNED ELEVEN YEARS IN JERUSALEM.NI# 12 AND HE DID THAT WHICH WAS EVIL IN THE SIGHT OF THE LORD HIS GOD, AND,K HUMBLED NOT HIMSELF BEFORE JEREMIAH THE PROPHET SPEAKING FROM THE MOUTH OFI THE LORD.M# 13 AND HE ALSO REBELLED AGAINST KING NEBUCHADNEZZAR, WHO HAD MADE HIM SWEARNL BY GOD: BUT HE STIFFENED HIS NECK, AND HARDENED HIS HEART FROM TURNING UNTO THE LORD GOD OF ISRAEL.M# 14 MOREOVER ALL THE CHIEF OF THE PRIESTS, AND THE PEOPLE, TRANSGRESSED VERY N MUCH AFTER ALL THE ABOMINATIONS OF THE HEATHEN; AND POLLUTED THE HOUSE OF THE) LORD WHICH HE HAD HALLOWED IN JERUSALEM.TM# 15 AND THE LORD GOD OF THEIR FATHERS SENT TO THEM BY HIS MESSENGERS, RISINGOM UP BETIMES, AND SENDING; BECAUSE HE HAD COMPASSION ON HIS PEOPLE, AND ON HIS  DWELLING PLACE:G# 16 BUT THEY MOCKED THE MESSENGERS OF GOD, AND DESPISED HIS WORDS, ANDNL MISUSED HIS PROPHETS, UNTIL THE WRATH OF THE LORD AROSE AGAINST HIS PEOPLE, TILL THERE WAS NO REMEDY.L# 17 THEREFORE HE BROUGHT UPON THEM THE KING OF THE CHALDEES, WHO SLEW THEIRE YOUNG MEN WITH THE SWORD IN THE HOUSE OF THEIR SANCTUARY, AND HAD NOLN COMPASSION UPON YOUNG MAN OR MAIDEN, OLD MAN, OR HIM THAT STOOPED FOR AGE: HE GAVE THEM ALL INTO HIS HAND. F# 18 AND ALL THE VESSELS OF THE HOUSE OF GOD, GREAT AND SMALL, AND THEN TREASURES OF THE HOUSE OF THE LORD, AND THE TREASURES OF THE KING, AND OF HIS* PRINCES; ALL THESE HE BROUGHT TO BABYLON.K# 19 AND THEY BURNT THE HOUSE OF GOD, AND BRAKE DOWN THE WALL OF JERUSALEM,UJ AND BURNT ALL THE PALACES THEREOF WITH FIRE, AND DESTROYED ALL THE GOODLY VESSELS THEREOF.OI# 20 AND THEM THAT HAD ESCAPED FROM THE SWORD CARRIED HE AWAY TO BABYLON;AL WHERE THEY WERE SERVANTS TO HIM AND HIS SONS UNTIL THE REIGN OF THE KINGDOM OF PERSIA:SL# 21 TO FULFIL THE WORD OF THE LORD BY THE MOUTH OF JEREMIAH, UNTIL THE LANDL HAD ENJOYED HER SABBATHS: FOR AS LONG AS SHE LAY DESOLATE SHE KEPT SABBATH,$ TO FULFIL THREESCORE AND TEN YEARS.M# 22 NOW IN THE FIRST YEAR OF CYRUS KING OF PERSIA, THAT THE WORD OF THE LORDCK SPOKEN BY THE MOUTH OF JEREMIAH MIGHT BE ACCOMPLISHED, THE LORD STIRRED UPAK THE SPIRIT OF CYRUS KING OF PERSIA, THAT HE MADE A PROCLAMATION THROUGHOUTT5 ALL HIS KINGDOM, AND PUT IT ALSO IN WRITING, SAYING,FL# 23 THUS SAITH CYRUS KING OF PERSIA, ALL THE KINGDOMS OF THE EARTH HATH THEM LORD GOD OF HEAVEN GIVEN ME; AND HE HATH CHARGED ME TO BUILD HIM AN HOUSE INEL JERUSALEM, WHICH IS IN JUDAH. WHO IS THERE AMONG YOU OF ALL HIS PEOPLE? THE- LORD HIS GOD BE WITH HIM, AND LET HIM GO UP.WORD OF THE LORDCK SPOKEN BY THE MOUTH OF JEREMIAH MIGHT BE ACCOMPLISHED, THE LORD STIRRED UPAK THE SPIRIT OF CYRUS KING OF PERSIA, THAT HE MADE A PROCLAMATION THROUGHOUTT5 ALL HIS * BOOK15 EZRAU = CHAPTER 1 L# 1 NOW IN THE FIRST YEAR OF CYRUS KING OF PERSIA, THAT THE WORD OF THE LORDL BY THE MOUTH OF JEREMIAH MIGHT BE FULFILLED, THE LORD STIRRED UP THE SPIRITH OF CYRUS KING OF PERSIA, THAT HE MADE A PROCLAMATION THROUGHOUT ALL HIS- KINGDOM, AND PUT IT ALSO IN WRITING, SAYING,IM# 2 THUS SAITH CYRUS KING OF PERSIA, THE LORD GOD OF HEAVEN HATH GIVEN ME ALLBK THE KINGDOMS OF THE EARTH; AND HE HATH CHARGED ME TO BUILD HIM AN HOUSE ATA JERUSALEM, WHICH IS IN JUDAH.J# 3 WHO IS THERE AMONG YOU OF ALL HIS PEOPLE? HIS GOD BE WITH HIM, AND LETK HIM GO UP TO JERUSALEM, WHICH IS IN JUDAH, AND BUILD THE HOUSE OF THE LORDH7 GOD OF ISRAEL, (HE IS THE GOD,) WHICH IS IN JERUSALEM. L# 4 AND WHOSOEVER REMAINETH IN ANY PLACE WHERE HE SOJOURNETH, LET THE MEN OFH HIS PLACE HELP HIM WITH SILVER, AND WITH GOLD, AND WITH GOODS, AND WITHE BEASTS, BESIDE THE FREEWILL OFFERING FOR THE HOUSE OF GOD THAT IS IN JERUSALEM.EH# 5 THEN ROSE UP THE CHIEF OF THE FATHERS OF JUDAH AND BENJAMIN, AND THEN00mX4J2<%X>%+%O-%TADATADATA PRIESTS, AND THE LEVITES, WITH ALL THEM WHOSE SPIRIT GOD HAD RAISED, TO GO UP6 TO BUILD THE HOUSE OF THE LORD WHICH IS IN JERUSALEM.K# 6 AND ALL THEY THAT WERE ABOUT THEM STRENGTHENED THEIR HANDS WITH VESSELSSM OF SILVER, WITH GOLD, WITH GOODS, AND WITH BEASTS, AND WITH PRECIOUS THINGS,L' BESIDE ALL THAT WAS WILLINGLY OFFERED.HK# 7 ALSO CYRUS THE KING BROUGHT FORTH THE VESSELS OF THE HOUSE OF THE LORD,TM WHICH NEBUCHADNEZZAR HAD BROUGHT FORTH OUT OF JERUSALEM, AND HAD PUT THEM IND THE HOUSE OF HIS GODS;SM# 8 EVEN THOSE DID CYRUS KING OF PERSIA BRING FORTH BY THE HAND OF MITHREDATHUH THE TREASURER, AND NUMBERED THEM UNTO SHESHBAZZAR, THE PRINCE OF JUDAH.G# 9 AND THIS IS THE NUMBER OF THEM: THIRTY CHARGERS OF GOLD, A THOUSANDL, CHARGERS OF SILVER, NINE AND TWENTY KNIVES,K# 10 THIRTY BASONS OF GOLD, SILVER BASONS OF A SECOND SORT FOUR HUNDRED ANDN# TEN, AND OTHER VESSELS A THOUSAND.UF# 11 ALL THE VESSELS OF GOLD AND OF SILVER WERE FIVE THOUSAND AND FOURL HUNDRED. ALL THESE DID SHESHBAZZAR BRING UP WITH THEM OF THE CAPTIVITY THAT- WERE BROUGHT UP FROM BABYLON UNTO JERUSALEM.D = CHAPTER 2 F# 1 NOW THESE ARE THE CHILDREN OF THE PROVINCE THAT WENT UP OUT OF THEN CAPTIVITY, OF THOSE WHICH HAD BEEN CARRIED AWAY, WHOM NEBUCHADNEZZAR THE KINGL OF BABYLON HAD CARRIED AWAY UNTO BABYLON, AND CAME AGAIN UNTO JERUSALEM AND JUDAH, EVERY ONE UNTO HIS CITY;D# 2 WHICH CAME WITH ZERUBBABEL: JESHUA, NEHEMIAH, SERAIAH, REELAIAH,K MORDECAI, BILSHAN, MIZPAR, BIGVAI, REHUM, BAANAH. THE NUMBER OF THE MEN OFR THE PEOPLE OF ISRAEL:D# 3 THE CHILDREN OF PAROSH, TWO THOUSAND AN HUNDRED SEVENTY AND TWO.># 4 THE CHILDREN OF SHEPHATIAH, THREE HUNDRED SEVENTY AND TWO.9# 5 THE CHILDREN OF ARAH, SEVEN HUNDRED SEVENTY AND FIVE. G# 6 THE CHILDREN OF PAHATHMOAB, OF THE CHILDREN OF JESHUA AND JOAB, TWOY# THOUSAND EIGHT HUNDRED AND TWELVE.D@# 7 THE CHILDREN OF ELAM, A THOUSAND TWO HUNDRED FIFTY AND FOUR.7# 8 THE CHILDREN OF ZATTU, NINE HUNDRED FORTY AND FIVE.N9# 9 THE CHILDREN OF ZACCAI, SEVEN HUNDRED AND THREESCORE.5# 10 THE CHILDREN OF BANI, SIX HUNDRED FORTY AND TWO. 9# 11 THE CHILDREN OF BEBAI, SIX HUNDRED TWENTY AND THREE.HB# 12 THE CHILDREN OF AZGAD, A THOUSAND TWO HUNDRED TWENTY AND TWO.9# 13 THE CHILDREN OF ADONIKAM, SIX HUNDRED SIXTY AND SIX.H8# 14 THE CHILDREN OF BIGVAI, TWO THOUSAND FIFTY AND SIX.7# 15 THE CHILDREN OF ADIN, FOUR HUNDRED FIFTY AND FOUR.H8# 16 THE CHILDREN OF ATER OF HEZEKIAH, NINETY AND EIGHT.;# 17 THE CHILDREN OF BEZAI, THREE HUNDRED TWENTY AND THREE.I2# 18 THE CHILDREN OF JORAH, AN HUNDRED AND TWELVE.:# 19 THE CHILDREN OF HASHUM, TWO HUNDRED TWENTY AND THREE.-# 20 THE CHILDREN OF GIBBAR, NINETY AND FIVE.C<# 21 THE CHILDREN OF BETHLEHEM, AN HUNDRED TWENTY AND THREE.(# 22 THE MEN OF NETOPHAH, FIFTY AND SIX.6# 23 THE MEN OF ANATHOTH, AN HUNDRED TWENTY AND EIGHT.-# 24 THE CHILDREN OF AZMAVETH, FORTY AND TWO. K# 25 THE CHILDREN OF KIRJATHARIM, CHEPHIRAH, AND BEEROTH, SEVEN HUNDRED ANDI FORTY AND THREE.D@# 26 THE CHILDREN OF RAMAH AND GABA, SIX HUNDRED TWENTY AND ONE.3# 27 THE MEN OF MICHMAS, AN HUNDRED TWENTY AND TWO.F<# 28 THE MEN OF BETHEL AND AI, TWO HUNDRED TWENTY AND THREE.)# 29 THE CHILDREN OF NEBO, FIFTY AND TWO. 7# 30 THE CHILDREN OF MAGBISH, AN HUNDRED FIFTY AND SIX.OK# 31 THE CHILDREN OF THE OTHER ELAM, A THOUSAND TWO HUNDRED FIFTY AND FOUR.I5# 32 THE CHILDREN OF HARIM, THREE HUNDRED AND TWENTY. H# 33 THE CHILDREN OF LOD, HADID, AND ONO, SEVEN HUNDRED TWENTY AND FIVE.;# 34 THE CHILDREN OF JERICHO, THREE HUNDRED FORTY AND FIVE.XG# 35 THE CHILDREN OF SENAAH, THREE THOUSAND AND SIX HUNDRED AND THIRTY.TG# 36 THE PRIESTS: THE CHILDREN OF JEDAIAH, OF THE HOUSE OF JESHUA, NINET HUNDRED SEVENTY AND THREE.D5# 37 THE CHILDREN OF IMMER, A THOUSAND FIFTY AND TWO.AD# 38 THE CHILDREN OF PASHUR, A THOUSAND TWO HUNDRED FORTY AND SEVEN.5# 39 THE CHILDREN OF HARIM, A THOUSAND AND SEVENTEEN.DH# 40 THE LEVITES: THE CHILDREN OF JESHUA AND KADMIEL, OF THE CHILDREN OF HODAVIAH, SEVENTY AND FOUR.E# 41 THE SINGERS: THE CHILDREN OF ASAPH, AN HUNDRED TWENTY AND EIGHT.SJ# 42 THE CHI00m`4V4D%5%T6%! !LDREN OF THE PORTERS: THE CHILDREN OF SHALLUM, THE CHILDREN OFM ATER, THE CHILDREN OF TALMON, THE CHILDREN OF AKKUB, THE CHILDREN OF HATITA,; THE CHILDREN OF SHOBAI, IN ALL AN HUNDRED THIRTY AND NINE.TF# 43 THE NETHINIMS: THE CHILDREN OF ZIHA, THE CHILDREN OF HASUPHA, THE CHILDREN OF TABBAOTH,I# 44 THE CHILDREN OF KEROS, THE CHILDREN OF SIAHA, THE CHILDREN OF PADON,LM# 45 THE CHILDREN OF LEBANAH, THE CHILDREN OF HAGABAH, THE CHILDREN OF AKKUB,RK# 46 THE CHILDREN OF HAGAB, THE CHILDREN OF SHALMAI, THE CHILDREN OF HANAN, K# 47 THE CHILDREN OF GIDDEL, THE CHILDREN OF GAHAR, THE CHILDREN OF REAIAH,CK# 48 THE CHILDREN OF REZIN, THE CHILDREN OF NEKODA, THE CHILDREN OF GAZZAM,NI# 49 THE CHILDREN OF UZZA, THE CHILDREN OF PASEAH, THE CHILDREN OF BESAI,HD# 50 THE CHILDREN OF ASNAH, THE CHILDREN OF MEHUNIM, THE CHILDREN OF NEPHUSIM,M# 51 THE CHILDREN OF BAKBUK, THE CHILDREN OF HAKUPHA, THE CHILDREN OF HARHUR,LM# 52 THE CHILDREN OF BAZLUTH, THE CHILDREN OF MEHIDA, THE CHILDREN OF HARSHA,RL# 53 THE CHILDREN OF BARKOS, THE CHILDREN OF SISERA, THE CHILDREN OF THAMAH,5# 54 THE CHILDREN OF NEZIAH, THE CHILDREN OF HATIPHA.EK# 55 THE CHILDREN OF SOLOMONS SERVANTS: THE CHILDREN OF SOTAI, THE CHILDRENE& OF SOPHERETH, THE CHILDREN OF PERUDA,L# 56 THE CHILDREN OF JAALAH, THE CHILDREN OF DARKON, THE CHILDREN OF GIDDEL,H# 57 THE CHILDREN OF SHEPHATIAH, THE CHILDREN OF HATTIL, THE CHILDREN OF* POCHERETH OF ZEBAIM, THE CHILDREN OF AMI.I# 58 ALL THE NETHINIMS, AND THE CHILDREN OF SOLOMONS SERVANTS, WERE THREEC HUNDRED NINETY AND TWO.G# 59 AND THESE WERE THEY WHICH WENT UP FROM TELMELAH, TELHARSA, CHERUB,EI ADDAN, AND IMMER: BUT THEY COULD NOT SHEW THEIR FATHERS HOUSE, AND THEIRN# SEED, WHETHER THEY WERE OF ISRAEL:TM# 60 THE CHILDREN OF DELAIAH, THE CHILDREN OF TOBIAH, THE CHILDREN OF NEKODA,, SIX HUNDRED FIFTY AND TWO.7E# 61 AND OF THE CHILDREN OF THE PRIESTS: THE CHILDREN OF HABAIAH, THEPE CHILDREN OF KOZ, THE CHILDREN OF BARZILLAI; WHICH TOOK A WIFE OF THEHG DAUGHTERS OF BARZILLAI THE GILEADITE, AND WAS CALLED AFTER THEIR NAME: M# 62 THESE SOUGHT THEIR REGISTER AMONG THOSE THAT WERE RECKONED BY GENEALOGY, H BUT THEY WERE NOT FOUND: THEREFORE WERE THEY, AS POLLUTED, PUT FROM THE PRIESTHOOD.K# 63 AND THE TIRSHATHA SAID UNTO THEM, THAT THEY SHOULD NOT EAT OF THE MOSTHF HOLY THINGS, TILL THERE STOOD UP A PRIEST WITH URIM AND WITH THUMMIM.M# 64 THE WHOLE CONGREGATION TOGETHER WAS FORTY AND TWO THOUSAND THREE HUNDREDN AND THREESCORE,M# 65 BESIDE THEIR SERVANTS AND THEIR MAIDS, OF WHOM THERE WERE SEVEN THOUSANDFN THREE HUNDRED THIRTY AND SEVEN: AND THERE WERE AMONG THEM TWO HUNDRED SINGING MEN AND SINGING WOMEN.EM# 66 THEIR HORSES WERE SEVEN HUNDRED THIRTY AND SIX; THEIR MULES, TWO HUNDRED FORTY AND FIVE;J# 67 THEIR CAMELS, FOUR HUNDRED THIRTY AND FIVE; THEIR ASSES, SIX THOUSAND SEVEN HUNDRED AND TWENTY.M# 68 AND SOME OF THE CHIEF OF THE FATHERS, WHEN THEY CAME TO THE HOUSE OF THETM LORD WHICH IS AT JERUSALEM, OFFERED FREELY FOR THE HOUSE OF GOD TO SET IT UPE IN HIS PLACE:K# 69 THEY GAVE AFTER THEIR ABILITY UNTO THE TREASURE OF THE WORK THREESCORE K AND ONE THOUSAND DRAMS OF GOLD, AND FIVE THOUSAND POUND OF SILVER, AND ONEE HUNDRED PRIESTS GARMENTS.E# 70 SO THE PRIESTS, AND THE LEVITES, AND SOME OF THE PEOPLE, AND THEUL SINGERS, AND THE PORTERS, AND THE NETHINIMS, DWELT IN THEIR CITIES, AND ALL ISRAEL IN THEIR CITIES. = CHAPTER 3 K# 1 AND WHEN THE SEVENTH MONTH WAS COME, AND THE CHILDREN OF ISRAEL WERE INRM THE CITIES, THE PEOPLE GATHERED THEMSELVES TOGETHER AS ONE MAN TO JERUSALEM.TJ# 2 THEN STOOD UP JESHUA THE SON OF JOZADAK, AND HIS BRETHREN THE PRIESTS,M AND ZERUBBABEL THE SON OF SHEALTIEL, AND HIS BRETHREN, AND BUILDED THE ALTARGL OF THE GOD OF ISRAEL, TO OFFER BURNT OFFERINGS THEREON, AS IT IS WRITTEN IN! THE LAW OF MOSES THE MAN OF GOD.TL# 3 AND THEY SET THE ALTAR UPON HIS BASES; FOR FEAR WAS UPON THEM BECAUSE OFM THE PEOPLE OF THOSE COUNTRIES: AND THEY OFFERED BURNT OFFERINGS THEREON UNTOE4 THE LORD, EVEN BURNT OFFERINGS MORNING AND EVENING.J# 4 THEY KEPT ALSO THE FEA00mh4J2<%X>%+%O-%TADATADATAST OF TABERNACLES, AS IT IS WRITTEN, AND OFFEREDM THE DAILY BURNT OFFERINGS BY NUMBER, ACCORDING TO THE CUSTOM, AS THE DUTY OFR EVERY DAY REQUIRED;G# 5 AND AFTERWARD OFFERED THE CONTINUAL BURNT OFFERING, BOTH OF THE NEWIK MOONS, AND OF ALL THE SET FEASTS OF THE LORD THAT WERE CONSECRATED, AND OFUD EVERY ONE THAT WILLINGLY OFFERED A FREEWILL OFFERING UNTO THE LORD.E# 6 FROM THE FIRST DAY OF THE SEVENTH MONTH BEGAN THEY TO OFFER BURNTEN OFFERINGS UNTO THE LORD. BUT THE FOUNDATION OF THE TEMPLE OF THE LORD WAS NOT YET LAID.J# 7 THEY GAVE MONEY ALSO UNTO THE MASONS, AND TO THE CARPENTERS; AND MEAT,L AND DRINK, AND OIL, UNTO THEM OF ZIDON, AND TO THEM OF TYRE, TO BRING CEDARM TREES FROM LEBANON TO THE SEA OF JOPPA, ACCORDING TO THE GRANT THAT THEY HADT OF CYRUS KING OF PERSIA.SC# 8 NOW IN THE SECOND YEAR OF THEIR COMING UNTO THE HOUSE OF GOD ATNK JERUSALEM, IN THE SECOND MONTH, BEGAN ZERUBBABEL THE SON OF SHEALTIEL, ANDFM JESHUA THE SON OF JOZADAK, AND THE REMNANT OF THEIR BRETHREN THE PRIESTS ANDON THE LEVITES, AND ALL THEY THAT WERE COME OUT OF THE CAPTIVITY UNTO JERUSALEM;L AND APPOINTED THE LEVITES, FROM TWENTY YEARS OLD AND UPWARD, TO SET FORWARD# THE WORK OF THE HOUSE OF THE LORD.OK# 9 THEN STOOD JESHUA WITH HIS SONS AND HIS BRETHREN, KADMIEL AND HIS SONS,OM THE SONS OF JUDAH, TOGETHER, TO SET FORWARD THE WORKMEN IN THE HOUSE OF GOD:NE THE SONS OF HENADAD, WITH THEIR SONS AND THEIR BRETHREN THE LEVITES.LI# 10 AND WHEN THE BUILDERS LAID THE FOUNDATION OF THE TEMPLE OF THE LORD,RN THEY SET THE PRIESTS IN THEIR APPAREL WITH TRUMPETS, AND THE LEVITES THE SONSM OF ASAPH WITH CYMBALS, TO PRAISE THE LORD, AFTER THE ORDINANCE OF DAVID KINGT OF ISRAEL.EL# 11 AND THEY SANG TOGETHER BY COURSE IN PRAISING AND GIVING THANKS UNTO THEM LORD; BECAUSE HE IS GOOD, FOR HIS MERCY ENDURETH FOR EVER TOWARD ISRAEL. ANDTG ALL THE PEOPLE SHOUTED WITH A GREAT SHOUT, WHEN THEY PRAISED THE LORD,N: BECAUSE THE FOUNDATION OF THE HOUSE OF THE LORD WAS LAID.K# 12 BUT MANY OF THE PRIESTS AND LEVITES AND CHIEF OF THE FATHERS, WHO WERERN ANCIENT MEN, THAT HAD SEEN THE FIRST HOUSE, WHEN THE FOUNDATION OF THIS HOUSEK WAS LAID BEFORE THEIR EYES, WEPT WITH A LOUD VOICE; AND MANY SHOUTED ALOUD FOR JOY:EL# 13 SO THAT THE PEOPLE COULD NOT DISCERN THE NOISE OF THE SHOUT OF JOY FROMK THE NOISE OF THE WEEPING OF THE PEOPLE: FOR THE PEOPLE SHOUTED WITH A LOUD ) SHOUT, AND THE NOISE WAS HEARD AFAR OFF.O = CHAPTER 4 M# 1 NOW WHEN THE ADVERSARIES OF JUDAH AND BENJAMIN HEARD THAT THE CHILDREN OFS> THE CAPTIVITY BUILDED THE TEMPLE UNTO THE LORD GOD OF ISRAEL;K# 2 THEN THEY CAME TO ZERUBBABEL, AND TO THE CHIEF OF THE FATHERS, AND SAIDEL UNTO THEM, LET US BUILD WITH YOU: FOR WE SEEK YOUR GOD, AS YE DO; AND WE DOM SACRIFICE UNTO HIM SINCE THE DAYS OF ESARHADDON KING OF ASSUR, WHICH BROUGHTT US UP HITHER.K# 3 BUT ZERUBBABEL, AND JESHUA, AND THE REST OF THE CHIEF OF THE FATHERS OFOM ISRAEL, SAID UNTO THEM, YE HAVE NOTHING TO DO WITH US TO BUILD AN HOUSE UNTONN OUR GOD; BUT WE OURSELVES TOGETHER WILL BUILD UNTO THE LORD GOD OF ISRAEL, AS1 KING CYRUS THE KING OF PERSIA HATH COMMANDED US.BJ# 4 THEN THE PEOPLE OF THE LAND WEAKENED THE HANDS OF THE PEOPLE OF JUDAH, AND TROUBLED THEM IN BUILDING, K# 5 AND HIRED COUNSELLORS AGAINST THEM, TO FRUSTRATE THEIR PURPOSE, ALL THESM DAYS OF CYRUS KING OF PERSIA, EVEN UNTIL THE REIGN OF DARIUS KING OF PERSIA.TL# 6 AND IN THE REIGN OF AHASUERUS, IN THE BEGINNING OF HIS REIGN, WROTE THEYG UNTO HIM AN ACCUSATION AGAINST THE INHABITANTS OF JUDAH AND JERUSALEM.IL# 7 AND IN THE DAYS OF ARTAXERXES WROTE BISHLAM, MITHREDATH, TABEEL, AND THEM REST OF THEIR COMPANIONS, UNTO ARTAXERXES KING OF PERSIA; AND THE WRITING OFEK THE LETTER WAS WRITTEN IN THE SYRIAN TONGUE, AND INTERPRETED IN THE SYRIANS TONGUE.G# 8 REHUM THE CHANCELLOR AND SHIMSHAI THE SCRIBE WROTE A LETTER AGAINSTN/ JERUSALEM TO ARTAXERXES THE KING IN THIS SORT: M# 9 THEN WROTE REHUM THE CHANCELLOR, AND SHIMSHAI THE SCRIBE, AND THE REST OF I THEIR COMPANIONS; THE DINAITES, THE APHARSATHCHITES, THE TARPELITES, THETM APHAR00mp4V4D%5%T6%! !SITES, THE ARCHEVITES, THE BABYLONIANS, THE SUSANCHITES, THE DEHAVITES,R AND THE ELAMITES,J# 10 AND THE REST OF THE NATIONS WHOM THE GREAT AND NOBLE ASNAPPER BROUGHTK OVER, AND SET IN THE CITIES OF SAMARIA, AND THE REST THAT ARE ON THIS SIDEE THE RIVER, AND AT SUCH A TIME.EF# 11 THIS IS THE COPY OF THE LETTER THAT THEY SENT UNTO HIM, EVEN UNTON ARTAXERXES THE KING; THY SERVANTS THE MEN ON THIS SIDE THE RIVER, AND AT SUCH A TIME.K# 12 BE IT KNOWN UNTO THE KING, THAT THE JEWS WHICH CAME UP FROM THEE TO USTL ARE COME UNTO JERUSALEM, BUILDING THE REBELLIOUS AND THE BAD CITY, AND HAVE6 SET UP THE WALLS THEREOF, AND JOINED THE FOUNDATIONS.J# 13 BE IT KNOWN NOW UNTO THE KING, THAT, IF THIS CITY BE BUILDED, AND THEM WALLS SET UP AGAIN, THEN WILL THEY NOT PAY TOLL, TRIBUTE, AND CUSTOM, AND SOE. THOU SHALT ENDAMAGE THE REVENUE OF THE KINGS.J# 14 NOW BECAUSE WE HAVE MAINTENANCE FROM THE KINGS PALACE, AND IT WAS NOTM MEET FOR US TO SEE THE KINGS DISHONOUR, THEREFORE HAVE WE SENT AND CERTIFIEDU THE KING;J# 15 THAT SEARCH MAY BE MADE IN THE BOOK OF THE RECORDS OF THY FATHERS: SOI SHALT THOU FIND IN THE BOOK OF THE RECORDS, AND KNOW THAT THIS CITY IS ATJ REBELLIOUS CITY, AND HURTFUL UNTO KINGS AND PROVINCES, AND THAT THEY HAVEJ MOVED SEDITION WITHIN THE SAME OF OLD TIME: FOR WHICH CAUSE WAS THIS CITY DESTROYED.EK# 16 WE CERTIFY THE KING THAT, IF THIS CITY BE BUILDED AGAIN, AND THE WALLSGJ THEREOF SET UP, BY THIS MEANS THOU SHALT HAVE NO PORTION ON THIS SIDE THE RIVER.SL# 17 THEN SENT THE KING AN ANSWER UNTO REHUM THE CHANCELLOR, AND TO SHIMSHAIK THE SCRIBE, AND TO THE REST OF THEIR COMPANIONS THAT DWELL IN SAMARIA, ANDD; UNTO THE REST BEYOND THE RIVER, PEACE, AND AT SUCH A TIME.OG# 18 THE LETTER WHICH YE SENT UNTO US HATH BEEN PLAINLY READ BEFORE ME. J# 19 AND I COMMANDED, AND SEARCH HATH BEEN MADE, AND IT IS FOUND THAT THISN CITY OF OLD TIME HATH MADE INSURRECTION AGAINST KINGS, AND THAT REBELLION AND! SEDITION HAVE BEEN MADE THEREIN.OL# 20 THERE HAVE BEEN MIGHTY KINGS ALSO OVER JERUSALEM, WHICH HAVE RULED OVERM ALL COUNTRIES BEYOND THE RIVER; AND TOLL, TRIBUTE, AND CUSTOM, WAS PAID UNTOT THEM.L# 21 GIVE YE NOW COMMANDMENT TO CAUSE THESE MEN TO CEASE, AND THAT THIS CITYB BE NOT BUILDED, UNTIL ANOTHER COMMANDMENT SHALL BE GIVEN FROM ME.M# 22 TAKE HEED NOW THAT YE FAIL NOT TO DO THIS: WHY SHOULD DAMAGE GROW TO THE  HURT OF THE KINGS?MK# 23 NOW WHEN THE COPY OF KING ARTAXERXES LETTER WAS READ BEFORE REHUM, ANDEN SHIMSHAI THE SCRIBE, AND THEIR COMPANIONS, THEY WENT UP IN HASTE TO JERUSALEM: UNTO THE JEWS, AND MADE THEM TO CEASE BY FORCE AND POWER.J# 24 THEN CEASED THE WORK OF THE HOUSE OF GOD WHICH IS AT JERUSALEM. SO ITC CEASED UNTO THE SECOND YEAR OF THE REIGN OF DARIUS KING OF PERSIA.T = CHAPTER 5 I# 1 THEN THE PROPHETS, HAGGAI THE PROPHET, AND ZECHARIAH THE SON OF IDDO, M PROPHESIED UNTO THE JEWS THAT WERE IN JUDAH AND JERUSALEM IN THE NAME OF THEO GOD OF ISRAEL, EVEN UNTO THEM.RG# 2 THEN ROSE UP ZERUBBABEL THE SON OF SHEALTIEL, AND JESHUA THE SON OFWM JOZADAK, AND BEGAN TO BUILD THE HOUSE OF GOD WHICH IS AT JERUSALEM: AND WITHN, THEM WERE THE PROPHETS OF GOD HELPING THEM.J# 3 AT THE SAME TIME CAME TO THEM TATNAI, GOVERNOR ON THIS SIDE THE RIVER,J AND SHETHARBOZNAI AND THEIR COMPANIONS, AND SAID THUS UNTO THEM, WHO HATH= COMMANDED YOU TO BUILD THIS HOUSE, AND TO MAKE UP THIS WALL?OK# 4 THEN SAID WE UNTO THEM AFTER THIS MANNER, WHAT ARE THE NAMES OF THE MENL THAT MAKE THIS BUILDING?NM# 5 BUT THE EYE OF THEIR GOD WAS UPON THE ELDERS OF THE JEWS, THAT THEY COULD G NOT CAUSE THEM TO CEASE, TILL THE MATTER CAME TO DARIUS: AND THEN THEYE2 RETURNED ANSWER BY LETTER CONCERNING THIS MATTER.L# 6 THE COPY OF THE LETTER THAT TATNAI, GOVERNOR ON THIS SIDE THE RIVER, ANDL SHETHARBOZNAI AND HIS COMPANIONS THE APHARSACHITES, WHICH WERE ON THIS SIDE& THE RIVER, SENT UNTO DARIUS THE KING:J# 7 THEY SENT A LETTER UNTO HIM, WHEREIN WAS WRITTEN THUS; UNTO DARIUS THE KING, ALL PEACE.TJ# 8 BE IT KNOWN UNTO THE KING, THAT WE WENT INTO THE PROVINCE OF JUDEA, TON THE HOUSE OF THE GREAT 00mx4J2<%X>%+%O-%TADATADATAGOD, WHICH IS BUILDED WITH GREAT STONES, AND TIMBER ISH LAID IN THE WALLS, AND THIS WORK GOETH FAST ON, AND PROSPERETH IN THEIR HANDS.HM# 9 THEN ASKED WE THOSE ELDERS, AND SAID UNTO THEM THUS, WHO COMMANDED YOU TOH. BUILD THIS HOUSE, AND TO MAKE UP THESE WALLS?H# 10 WE ASKED THEIR NAMES ALSO, TO CERTIFY THEE, THAT WE MIGHT WRITE THE. NAMES OF THE MEN THAT WERE THE CHIEF OF THEM.M# 11 AND THUS THEY RETURNED US ANSWER, SAYING, WE ARE THE SERVANTS OF THE GODOK OF HEAVEN AND EARTH, AND BUILD THE HOUSE THAT WAS BUILDED THESE MANY YEARSS6 AGO, WHICH A GREAT KING OF ISRAEL BUILDED AND SET UP.M# 12 BUT AFTER THAT OUR FATHERS HAD PROVOKED THE GOD OF HEAVEN UNTO WRATH, HESM GAVE THEM INTO THE HAND OF NEBUCHADNEZZAR THE KING OF BABYLON, THE CHALDEAN,ED WHO DESTROYED THIS HOUSE, AND CARRIED THE PEOPLE AWAY INTO BABYLON.K# 13 BUT IN THE FIRST YEAR OF CYRUS THE KING OF BABYLON THE SAME KING CYRUSD* MADE A DECREE TO BUILD THIS HOUSE OF GOD.G# 14 AND THE VESSELS ALSO OF GOLD AND SILVER OF THE HOUSE OF GOD, WHICHTN NEBUCHADNEZZAR TOOK OUT OF THE TEMPLE THAT WAS IN JERUSALEM, AND BROUGHT THEML INTO THE TEMPLE OF BABYLON, THOSE DID CYRUS THE KING TAKE OUT OF THE TEMPLEJ OF BABYLON, AND THEY WERE DELIVERED UNTO ONE, WHOSE NAME WAS SHESHBAZZAR, WHOM HE HAD MADE GOVERNOR;TJ# 15 AND SAID UNTO HIM, TAKE THESE VESSELS, GO, CARRY THEM INTO THE TEMPLEH THAT IS IN JERUSALEM, AND LET THE HOUSE OF GOD BE BUILDED IN HIS PLACE.L# 16 THEN CAME THE SAME SHESHBAZZAR, AND LAID THE FOUNDATION OF THE HOUSE OFN GOD WHICH IS IN JERUSALEM: AND SINCE THAT TIME EVEN UNTIL NOW HATH IT BEEN IN& BUILDING, AND YET IT IS NOT FINISHED.L# 17 NOW THEREFORE, IF IT SEEM GOOD TO THE KING, LET THERE BE SEARCH MADE INN THE KINGS TREASURE HOUSE, WHICH IS THERE AT BABYLON, WHETHER IT BE SO, THAT AK DECREE WAS MADE OF CYRUS THE KING TO BUILD THIS HOUSE OF GOD AT JERUSALEM,EA AND LET THE KING SEND HIS PLEASURE TO US CONCERNING THIS MATTER. = CHAPTER 6 K# 1 THEN DARIUS THE KING MADE A DECREE, AND SEARCH WAS MADE IN THE HOUSE OFG8 THE ROLLS, WHERE THE TREASURES WERE LAID UP IN BABYLON.M# 2 AND THERE WAS FOUND AT ACHMETHA, IN THE PALACE THAT IS IN THE PROVINCE OF : THE MEDES, A ROLL, AND THEREIN WAS A RECORD THUS WRITTEN:M# 3 IN THE FIRST YEAR OF CYRUS THE KING THE SAME CYRUS THE KING MADE A DECREEDN CONCERNING THE HOUSE OF GOD AT JERUSALEM, LET THE HOUSE BE BUILDED, THE PLACEK WHERE THEY OFFERED SACRIFICES, AND LET THE FOUNDATIONS THEREOF BE STRONGLYD LAID; THE HEIGHT THEREOF THREESCORE CUBITS, AND THE BREADTH THEREOF THREESCORE CUBITS;HI# 4 WITH THREE ROWS OF GREAT STONES, AND A ROW OF NEW TIMBER: AND LET THEE* EXPENSES BE GIVEN OUT OF THE KINGS HOUSE:I# 5 AND ALSO LET THE GOLDEN AND SILVER VESSELS OF THE HOUSE OF GOD, WHICHFG NEBUCHADNEZZAR TOOK FORTH OUT OF THE TEMPLE WHICH IS AT JERUSALEM, ANDEN BROUGHT UNTO BABYLON, BE RESTORED, AND BROUGHT AGAIN UNTO THE TEMPLE WHICH ISJ AT JERUSALEM, EVERY ONE TO HIS PLACE, AND PLACE THEM IN THE HOUSE OF GOD.M# 6 NOW THEREFORE, TATNAI, GOVERNOR BEYOND THE RIVER, SHETHARBOZNAI, AND YOURUI COMPANIONS THE APHARSACHITES, WHICH ARE BEYOND THE RIVER, BE YE FAR FROME THENCE:M# 7 LET THE WORK OF THIS HOUSE OF GOD ALONE; LET THE GOVERNOR OF THE JEWS ANDR= THE ELDERS OF THE JEWS BUILD THIS HOUSE OF GOD IN HIS PLACE.HM# 8 MOREOVER I MAKE A DECREE WHAT YE SHALL DO TO THE ELDERS OF THESE JEWS FORRH THE BUILDING OF THIS HOUSE OF GOD: THAT OF THE KINGS GOODS, EVEN OF THEK TRIBUTE BEYOND THE RIVER, FORTHWITH EXPENSES BE GIVEN UNTO THESE MEN, THATG THEY BE NOT HINDERED.H# 9 AND THAT WHICH THEY HAVE NEED OF, BOTH YOUNG BULLOCKS, AND RAMS, ANDL LAMBS, FOR THE BURNT OFFERINGS OF THE GOD OF HEAVEN, WHEAT, SALT, WINE, ANDM OIL, ACCORDING TO THE APPOINTMENT OF THE PRIESTS WHICH ARE AT JERUSALEM, LETU* IT BE GIVEN THEM DAY BY DAY WITHOUT FAIL:L# 10 THAT THEY MAY OFFER SACRIFICES OF SWEET SAVOURS UNTO THE GOD OF HEAVEN,4 AND PRAY FOR THE LIFE OF THE KING, AND OF HIS SONS.I# 11 ALSO I HAVE MADE A DECREE, THAT WHOSOEVER SHALL ALTER THIS WORD, LETTJ TIMBER BE PULLED DOWN FROM HIS HOUSE, AND BEING SET U00m4V4D%5%T6%! !P, LET HIM BE HANGED8 THEREON; AND LET HIS HOUSE BE MADE A DUNGHILL FOR THIS.K# 12 AND THE GOD THAT HATH CAUSED HIS NAME TO DWELL THERE DESTROY ALL KINGSTL AND PEOPLE, THAT SHALL PUT TO THEIR HAND TO ALTER AND TO DESTROY THIS HOUSEJ OF GOD WHICH IS AT JERUSALEM. I DARIUS HAVE MADE A DECREE; LET IT BE DONE WITH SPEED.K# 13 THEN TATNAI, GOVERNOR ON THIS SIDE THE RIVER, SHETHARBOZNAI, AND THEIRDJ COMPANIONS, ACCORDING TO THAT WHICH DARIUS THE KING HAD SENT, SO THEY DID SPEEDILY.G# 14 AND THE ELDERS OF THE JEWS BUILDED, AND THEY PROSPERED THROUGH THEEJ PROPHESYING OF HAGGAI THE PROPHET AND ZECHARIAH THE SON OF IDDO. AND THEYM BUILDED, AND FINISHED IT, ACCORDING TO THE COMMANDMENT OF THE GOD OF ISRAEL,RN AND ACCORDING TO THE COMMANDMENT OF CYRUS, AND DARIUS, AND ARTAXERXES KING OF PERSIA.J# 15 AND THIS HOUSE WAS FINISHED ON THE THIRD DAY OF THE MONTH ADAR, WHICH7 WAS IN THE SIXTH YEAR OF THE REIGN OF DARIUS THE KING.HK# 16 AND THE CHILDREN OF ISRAEL, THE PRIESTS, AND THE LEVITES, AND THE RESTRK OF THE CHILDREN OF THE CAPTIVITY, KEPT THE DEDICATION OF THIS HOUSE OF GODI WITH JOY.L# 17 AND OFFERED AT THE DEDICATION OF THIS HOUSE OF GOD AN HUNDRED BULLOCKS,M TWO HUNDRED RAMS, FOUR HUNDRED LAMBS; AND FOR A SIN OFFERING FOR ALL ISRAEL,FB TWELVE HE GOATS, ACCORDING TO THE NUMBER OF THE TRIBES OF ISRAEL.J# 18 AND THEY SET THE PRIESTS IN THEIR DIVISIONS, AND THE LEVITES IN THEIRL COURSES, FOR THE SERVICE OF GOD, WHICH IS AT JERUSALEM; AS IT IS WRITTEN IN THE BOOK OF MOSES.EL# 19 AND THE CHILDREN OF THE CAPTIVITY KEPT THE PASSOVER UPON THE FOURTEENTH DAY OF THE FIRST MONTH.M# 20 FOR THE PRIESTS AND THE LEVITES WERE PURIFIED TOGETHER, ALL OF THEM WEREOM PURE, AND KILLED THE PASSOVER FOR ALL THE CHILDREN OF THE CAPTIVITY, AND FORA0 THEIR BRETHREN THE PRIESTS, AND FOR THEMSELVES.L# 21 AND THE CHILDREN OF ISRAEL, WHICH WERE COME AGAIN OUT OF CAPTIVITY, ANDJ ALL SUCH AS HAD SEPARATED THEMSELVES UNTO THEM FROM THE FILTHINESS OF THE> HEATHEN OF THE LAND, TO SEEK THE LORD GOD OF ISRAEL, DID EAT,M# 22 AND KEPT THE FEAST OF UNLEAVENED BREAD SEVEN DAYS WITH JOY: FOR THE LORDOM HAD MADE THEM JOYFUL, AND TURNED THE HEART OF THE KING OF ASSYRIA UNTO THEM,WN TO STRENGTHEN THEIR HANDS IN THE WORK OF THE HOUSE OF GOD, THE GOD OF ISRAEL. = CHAPTER 7 K# 1 NOW AFTER THESE THINGS, IN THE REIGN OF ARTAXERXES KING OF PERSIA, EZRAI< THE SON OF SERAIAH, THE SON OF AZARIAH, THE SON OF HILKIAH,<# 2 THE SON OF SHALLUM, THE SON OF ZADOK, THE SON OF AHITUB,@# 3 THE SON OF AMARIAH, THE SON OF AZARIAH, THE SON OF MERAIOTH,;# 4 THE SON OF ZERAHIAH, THE SON OF UZZI, THE SON OF BUKKI,TK# 5 THE SON OF ABISHUA, THE SON OF PHINEHAS, THE SON OF ELEAZAR, THE SON OFU AARON THE CHIEF PRIEST:K# 6 THIS EZRA WENT UP FROM BABYLON; AND HE WAS A READY SCRIBE IN THE LAW OF L MOSES, WHICH THE LORD GOD OF ISRAEL HAD GIVEN: AND THE KING GRANTED HIM ALLA HIS REQUEST, ACCORDING TO THE HAND OF THE LORD HIS GOD UPON HIM. M# 7 AND THERE WENT UP SOME OF THE CHILDREN OF ISRAEL, AND OF THE PRIESTS, ANDHG THE LEVITES, AND THE SINGERS, AND THE PORTERS, AND THE NETHINIMS, UNTOS7 JERUSALEM, IN THE SEVENTH YEAR OF ARTAXERXES THE KING.HI# 8 AND HE CAME TO JERUSALEM IN THE FIFTH MONTH, WHICH WAS IN THE SEVENTH: YEAR OF THE KING.M# 9 FOR UPON THE FIRST DAY OF THE FIRST MONTH BEGAN HE TO GO UP FROM BABYLON,OK AND ON THE FIRST DAY OF THE FIFTH MONTH CAME HE TO JERUSALEM, ACCORDING TOD# THE GOOD HAND OF HIS GOD UPON HIM.PK# 10 FOR EZRA HAD PREPARED HIS HEART TO SEEK THE LAW OF THE LORD, AND TO DOI3 IT, AND TO TEACH IN ISRAEL STATUTES AND JUDGMENTS.RJ# 11 NOW THIS IS THE COPY OF THE LETTER THAT THE KING ARTAXERXES GAVE UNTOL EZRA THE PRIEST, THE SCRIBE, EVEN A SCRIBE OF THE WORDS OF THE COMMANDMENTS, OF THE LORD, AND OF HIS STATUTES TO ISRAEL.L# 12 ARTAXERXES, KING OF KINGS, UNTO EZRA THE PRIEST, A SCRIBE OF THE LAW OF6 THE GOD OF HEAVEN, PERFECT PEACE, AND AT SUCH A TIME.G# 13 I MAKE A DECREE, THAT ALL THEY OF THE PEOPLE OF ISRAEL, AND OF HISDL PRIESTS AND LEVITES, IN MY REALM, WHICH ARE MINDED OF THEIR OWN FREEWILL TO" GO UP TO JERU00m4J2<%X>%+%O-%TADATADATASALEM, GO WITH THEE.M# 14 FORASMUCH AS THOU ART SENT OF THE KING, AND OF HIS SEVEN COUNSELLORS, TORN ENQUIRE CONCERNING JUDAH AND JERUSALEM, ACCORDING TO THE LAW OF THY GOD WHICH IS IN THINE HAND;I# 15 AND TO CARRY THE SILVER AND GOLD, WHICH THE KING AND HIS COUNSELLORSON HAVE FREELY OFFERED UNTO THE GOD OF ISRAEL, WHOSE HABITATION IS IN JERUSALEM,L# 16 AND ALL THE SILVER AND GOLD THAT THOU CANST FIND IN ALL THE PROVINCE OFG BABYLON, WITH THE FREEWILL OFFERING OF THE PEOPLE, AND OF THE PRIESTS, E OFFERING WILLINGLY FOR THE HOUSE OF THEIR GOD WHICH IS IN JERUSALEM:AI# 17 THAT THOU MAYEST BUY SPEEDILY WITH THIS MONEY BULLOCKS, RAMS, LAMBS,AM WITH THEIR MEAT OFFERINGS AND THEIR DRINK OFFERINGS, AND OFFER THEM UPON THE 6 ALTAR OF THE HOUSE OF YOUR GOD WHICH IS IN JERUSALEM.L# 18 AND WHATSOEVER SHALL SEEM GOOD TO THEE, AND TO THY BRETHREN, TO DO WITHI THE REST OF THE SILVER AND THE GOLD, THAT DO AFTER THE WILL OF YOUR GOD.FM# 19 THE VESSELS ALSO THAT ARE GIVEN THEE FOR THE SERVICE OF THE HOUSE OF THYF5 GOD, THOSE DELIVER THOU BEFORE THE GOD OF JERUSALEM.JI# 20 AND WHATSOEVER MORE SHALL BE NEEDFUL FOR THE HOUSE OF THY GOD, WHICHMH THOU SHALT HAVE OCCASION TO BESTOW, BESTOW IT OUT OF THE KINGS TREASURE HOUSE.OC# 21 AND I, EVEN I ARTAXERXES THE KING, DO MAKE A DECREE TO ALL THEAL TREASURERS WHICH ARE BEYOND THE RIVER, THAT WHATSOEVER EZRA THE PRIEST, THEI SCRIBE OF THE LAW OF THE GOD OF HEAVEN, SHALL REQUIRE OF YOU, IT BE DONET SPEEDILY,L# 22 UNTO AN HUNDRED TALENTS OF SILVER, AND TO AN HUNDRED MEASURES OF WHEAT,J AND TO AN HUNDRED BATHS OF WINE, AND TO AN HUNDRED BATHS OF OIL, AND SALT WITHOUT PRESCRIBING HOW MUCH.L# 23 WHATSOEVER IS COMMANDED BY THE GOD OF HEAVEN, LET IT BE DILIGENTLY DONEN FOR THE HOUSE OF THE GOD OF HEAVEN: FOR WHY SHOULD THERE BE WRATH AGAINST THE REALM OF THE KING AND HIS SONS?G# 24 ALSO WE CERTIFY YOU, THAT TOUCHING ANY OF THE PRIESTS AND LEVITES, M SINGERS, PORTERS, NETHINIMS, OR MINISTERS OF THIS HOUSE OF GOD, IT SHALL NOTR9 BE LAWFUL TO IMPOSE TOLL, TRIBUTE, OR CUSTOM, UPON THEM.L# 25 AND THOU, EZRA, AFTER THE WISDOM OF THY GOD, THAT IS IN THINE HAND, SETK MAGISTRATES AND JUDGES, WHICH MAY JUDGE ALL THE PEOPLE THAT ARE BEYOND THEEN RIVER, ALL SUCH AS KNOW THE LAWS OF THY GOD; AND TEACH YE THEM THAT KNOW THEM NOT. K# 26 AND WHOSOEVER WILL NOT DO THE LAW OF THY GOD, AND THE LAW OF THE KING,YL LET JUDGMENT BE EXECUTED SPEEDILY UPON HIM, WHETHER IT BE UNTO DEATH, OR TO= BANISHMENT, OR TO CONFISCATION OF GOODS, OR TO IMPRISONMENT.LK# 27 BLESSED BE THE LORD GOD OF OUR FATHERS, WHICH HATH PUT SUCH A THING ASTG THIS IN THE KINGS HEART, TO BEAUTIFY THE HOUSE OF THE LORD WHICH IS IN, JERUSALEM:DJ# 28 AND HATH EXTENDED MERCY UNTO ME BEFORE THE KING, AND HIS COUNSELLORS,L AND BEFORE ALL THE KINGS MIGHTY PRINCES. AND I WAS STRENGTHENED AS THE HANDL OF THE LORD MY GOD WAS UPON ME, AND I GATHERED TOGETHER OUT OF ISRAEL CHIEF MEN TO GO UP WITH ME. = CHAPTER 8 J# 1 THESE ARE NOW THE CHIEF OF THEIR FATHERS, AND THIS IS THE GENEALOGY OFM THEM THAT WENT UP WITH ME FROM BABYLON, IN THE REIGN OF ARTAXERXES THE KING.L# 2 OF THE SONS OF PHINEHAS; GERSHOM: OF THE SONS OF ITHAMAR; DANIEL: OF THE SONS OF DAVID; HATTUSH.J# 3 OF THE SONS OF SHECHANIAH, OF THE SONS OF PHAROSH; ZECHARIAH: AND WITHB HIM WERE RECKONED BY GENEALOGY OF THE MALES AN HUNDRED AND FIFTY.J# 4 OF THE SONS OF PAHATHMOAB; ELIHOENAI THE SON OF ZERAHIAH, AND WITH HIM TWO HUNDRED MALES. F# 5 OF THE SONS OF SHECHANIAH; THE SON OF JAHAZIEL, AND WITH HIM THREE HUNDRED MALES.TJ# 6 OF THE SONS ALSO OF ADIN; EBED THE SON OF JONATHAN, AND WITH HIM FIFTY MALES.TG# 7 AND OF THE SONS OF ELAM; JESHAIAH THE SON OF ATHALIAH, AND WITH HIMN SEVENTY MALES.SL# 8 AND OF THE SONS OF SHEPHATIAH; ZEBADIAH THE SON OF MICHAEL, AND WITH HIM FOURSCORE MALES.DL# 9 OF THE SONS OF JOAB; OBADIAH THE SON OF JEHIEL, AND WITH HIM TWO HUNDRED AND EIGHTEEN MALES.H# 10 AND OF THE SONS OF SHELOMITH; THE SON OF JOSIPHIAH, AND WITH HIM AN HUNDRED AND THREESCORE MALES.G# 11 AND OF THE SONS OF BEBAI; ZECHARIAH THE SON O00m4V4D%5%T6%! !F BEBAI, AND WITH HIMN TWENTY AND EIGHT MALES.K# 12 AND OF THE SONS OF AZGAD; JOHANAN THE SON OF HAKKATAN, AND WITH HIM ANA HUNDRED AND TEN MALES.LH# 13 AND OF THE LAST SONS OF ADONIKAM, WHOSE NAMES ARE THESE, ELIPHELET,5 JEIEL, AND SHEMAIAH, AND WITH THEM THREESCORE MALES.OI# 14 OF THE SONS ALSO OF BIGVAI; UTHAI, AND ZABBUD, AND WITH THEM SEVENTY  MALES. I# 15 AND I GATHERED THEM TOGETHER TO THE RIVER THAT RUNNETH TO AHAVA; ANDTN THERE ABODE WE IN TENTS THREE DAYS: AND I VIEWED THE PEOPLE, AND THE PRIESTS,* AND FOUND THERE NONE OF THE SONS OF LEVI.L# 16 THEN SENT I FOR ELIEZER, FOR ARIEL, FOR SHEMAIAH, AND FOR ELNATHAN, ANDH FOR JARIB, AND FOR ELNATHAN, AND FOR NATHAN, AND FOR ZECHARIAH, AND FORA MESHULLAM, CHIEF MEN; ALSO FOR JOIARIB, AND FOR ELNATHAN, MEN OFM UNDERSTANDING.HF# 17 AND I SENT THEM WITH COMMANDMENT UNTO IDDO THE CHIEF AT THE PLACEN CASIPHIA, AND I TOLD THEM WHAT THEY SHOULD SAY UNTO IDDO, AND TO HIS BRETHRENE THE NETHINIMS, AT THE PLACE CASIPHIA, THAT THEY SHOULD BRING UNTO USR$ MINISTERS FOR THE HOUSE OF OUR GOD.E# 18 AND BY THE GOOD HAND OF OUR GOD UPON US THEY BROUGHT US A MAN OFDM UNDERSTANDING, OF THE SONS OF MAHLI, THE SON OF LEVI, THE SON OF ISRAEL; ANDR5 SHEREBIAH, WITH HIS SONS AND HIS BRETHREN, EIGHTEEN;AM# 19 AND HASHABIAH, AND WITH HIM JESHAIAH OF THE SONS OF MERARI, HIS BRETHRENN AND THEIR SONS, TWENTY;L# 20 ALSO OF THE NETHINIMS, WHOM DAVID AND THE PRINCES HAD APPOINTED FOR THEK SERVICE OF THE LEVITES, TWO HUNDRED AND TWENTY NETHINIMS: ALL OF THEM WEREO EXPRESSED BY NAME.TI# 21 THEN I PROCLAIMED A FAST THERE, AT THE RIVER OF AHAVA, THAT WE MIGHTUM AFFLICT OURSELVES BEFORE OUR GOD, TO SEEK OF HIM A RIGHT WAY FOR US, AND FORN, OUR LITTLE ONES, AND FOR ALL OUR SUBSTANCE.M# 22 FOR I WAS ASHAMED TO REQUIRE OF THE KING A BAND OF SOLDIERS AND HORSEMENNN TO HELP US AGAINST THE ENEMY IN THE WAY: BECAUSE WE HAD SPOKEN UNTO THE KING,M SAYING, THE HAND OF OUR GOD IS UPON ALL THEM FOR GOOD THAT SEEK HIM; BUT HISO: POWER AND HIS WRATH IS AGAINST ALL THEM THAT FORSAKE HIM.L# 23 SO WE FASTED AND BESOUGHT OUR GOD FOR THIS: AND HE WAS INTREATED OF US.D# 24 THEN I SEPARATED TWELVE OF THE CHIEF OF THE PRIESTS, SHEREBIAH,0 HASHABIAH, AND TEN OF THEIR BRETHREN WITH THEM,J# 25 AND WEIGHED UNTO THEM THE SILVER, AND THE GOLD, AND THE VESSELS, EVENK THE OFFERING OF THE HOUSE OF OUR GOD, WHICH THE KING, AND HIS COUNSELLORS,S: AND HIS LORDS, AND ALL ISRAEL THERE PRESENT, HAD OFFERED:L# 26 I EVEN WEIGHED UNTO THEIR HAND SIX HUNDRED AND FIFTY TALENTS OF SILVER,G AND SILVER VESSELS AN HUNDRED TALENTS, AND OF GOLD AN HUNDRED TALENTS;AM# 27 ALSO TWENTY BASONS OF GOLD, OF A THOUSAND DRAMS; AND TWO VESSELS OF FINEI COPPER, PRECIOUS AS GOLD.J# 28 AND I SAID UNTO THEM, YE ARE HOLY UNTO THE LORD; THE VESSELS ARE HOLYL ALSO; AND THE SILVER AND THE GOLD ARE A FREEWILL OFFERING UNTO THE LORD GOD OF YOUR FATHERS.DI# 29 WATCH YE, AND KEEP THEM, UNTIL YE WEIGH THEM BEFORE THE CHIEF OF THEEN PRIESTS AND THE LEVITES, AND CHIEF OF THE FATHERS OF ISRAEL, AT JERUSALEM, IN' THE CHAMBERS OF THE HOUSE OF THE LORD. J# 30 SO TOOK THE PRIESTS AND THE LEVITES THE WEIGHT OF THE SILVER, AND THEM GOLD, AND THE VESSELS, TO BRING THEM TO JERUSALEM UNTO THE HOUSE OF OUR GOD.IM# 31 THEN WE DEPARTED FROM THE RIVER OF AHAVA ON THE TWELFTH DAY OF THE FIRSTLI MONTH, TO GO UNTO JERUSALEM: AND THE HAND OF OUR GOD WAS UPON US, AND HESK DELIVERED US FROM THE HAND OF THE ENEMY, AND OF SUCH AS LAY IN WAIT BY THEE WAY.S:# 32 AND WE CAME TO JERUSALEM, AND ABODE THERE THREE DAYS.F# 33 NOW ON THE FOURTH DAY WAS THE SILVER AND THE GOLD AND THE VESSELSM WEIGHED IN THE HOUSE OF OUR GOD BY THE HAND OF MEREMOTH THE SON OF URIAH THEEH PRIEST; AND WITH HIM WAS ELEAZAR THE SON OF PHINEHAS; AND WITH THEM WASC JOZABAD THE SON OF JESHUA, AND NOADIAH THE SON OF BINNUI, LEVITES;NL# 34 BY NUMBER AND BY WEIGHT OF EVERY ONE: AND ALL THE WEIGHT WAS WRITTEN AT THAT TIME.TK# 35 ALSO THE CHILDREN OF THOSE THAT HAD BEEN CARRIED AWAY, WHICH WERE COME M OUT OF THE CAPTIVITY, OFFERED BURNT OFFERINGS UNTO THE GOD OF I00m4J2<%X>%+%O-%TADATADATASRAEL, TWELVETN BULLOCKS FOR ALL ISRAEL, NINETY AND SIX RAMS, SEVENTY AND SEVEN LAMBS, TWELVEJ HE GOATS FOR A SIN OFFERING: ALL THIS WAS A BURNT OFFERING UNTO THE LORD.M# 36 AND THEY DELIVERED THE KINGS COMMISSIONS UNTO THE KINGS LIEUTENANTS, ANDHL TO THE GOVERNORS ON THIS SIDE THE RIVER: AND THEY FURTHERED THE PEOPLE, AND THE HOUSE OF GOD. = CHAPTER 9 H# 1 NOW WHEN THESE THINGS WERE DONE, THE PRINCES CAME TO ME, SAYING, THEG PEOPLE OF ISRAEL, AND THE PRIESTS, AND THE LEVITES, HAVE NOT SEPARATEDFB THEMSELVES FROM THE PEOPLE OF THE LANDS, DOING ACCORDING TO THEIRH ABOMINATIONS, EVEN OF THE CANAANITES, THE HITTITES, THE PERIZZITES, THEI JEBUSITES, THE AMMONITES, THE MOABITES, THE EGYPTIANS, AND THE AMORITES.NH# 2 FOR THEY HAVE TAKEN OF THEIR DAUGHTERS FOR THEMSELVES, AND FOR THEIRM SONS: SO THAT THE HOLY SEED HAVE MINGLED THEMSELVES WITH THE PEOPLE OF THOSEOG LANDS: YEA, THE HAND OF THE PRINCES AND RULERS HATH BEEN CHIEF IN THISL TRESPASS.M# 3 AND WHEN I HEARD THIS THING, I RENT MY GARMENT AND MY MANTLE, AND PLUCKEDO@ OFF THE HAIR OF MY HEAD AND OF MY BEARD, AND SAT DOWN ASTONIED.K# 4 THEN WERE ASSEMBLED UNTO ME EVERY ONE THAT TREMBLED AT THE WORDS OF THE,K GOD OF ISRAEL, BECAUSE OF THE TRANSGRESSION OF THOSE THAT HAD BEEN CARRIEDT6 AWAY; AND I SAT ASTONIED UNTIL THE EVENING SACRIFICE.I# 5 AND AT THE EVENING SACRIFICE I AROSE UP FROM MY HEAVINESS; AND HAVINGSM RENT MY GARMENT AND MY MANTLE, I FELL UPON MY KNEES, AND SPREAD OUT MY HANDS UNTO THE LORD MY GOD,M# 6 AND SAID, O MY GOD, I AM ASHAMED AND BLUSH TO LIFT UP MY FACE TO THEE, MYDI GOD: FOR OUR INIQUITIES ARE INCREASED OVER OUR HEAD, AND OUR TRESPASS ISV GROWN UP UNTO THE HEAVENS.WL# 7 SINCE THE DAYS OF OUR FATHERS HAVE WE BEEN IN A GREAT TRESPASS UNTO THISF DAY; AND FOR OUR INIQUITIES HAVE WE, OUR KINGS, AND OUR PRIESTS, BEEND DELIVERED INTO THE HAND OF THE KINGS OF THE LANDS, TO THE SWORD, TOH CAPTIVITY, AND TO A SPOIL, AND TO CONFUSION OF FACE, AS IT IS THIS DAY.L# 8 AND NOW FOR A LITTLE SPACE GRACE HATH BEEN SHEWED FROM THE LORD OUR GOD,J TO LEAVE US A REMNANT TO ESCAPE, AND TO GIVE US A NAIL IN HIS HOLY PLACE,H THAT OUR GOD MAY LIGHTEN OUR EYES, AND GIVE US A LITTLE REVIVING IN OUR BONDAGE.OM# 9 FOR WE WERE BONDMEN; YET OUR GOD HATH NOT FORSAKEN US IN OUR BONDAGE, BUTQN HATH EXTENDED MERCY UNTO US IN THE SIGHT OF THE KINGS OF PERSIA, TO GIVE US AH REVIVING, TO SET UP THE HOUSE OF OUR GOD, AND TO REPAIR THE DESOLATIONS: THEREOF, AND TO GIVE US A WALL IN JUDAH AND IN JERUSALEM.K# 10 AND NOW, O OUR GOD, WHAT SHALL WE SAY AFTER THIS? FOR WE HAVE FORSAKENA THY COMMANDMENTS,H# 11 WHICH THOU HAST COMMANDED BY THY SERVANTS THE PROPHETS, SAYING, THEM LAND, UNTO WHICH YE GO TO POSSESS IT, IS AN UNCLEAN LAND WITH THE FILTHINESSRJ OF THE PEOPLE OF THE LANDS, WITH THEIR ABOMINATIONS, WHICH HAVE FILLED IT0 FROM ONE END TO ANOTHER WITH THEIR UNCLEANNESS.H# 12 NOW THEREFORE GIVE NOT YOUR DAUGHTERS UNTO THEIR SONS, NEITHER TAKEI THEIR DAUGHTERS UNTO YOUR SONS, NOR SEEK THEIR PEACE OR THEIR WEALTH FOR L EVER: THAT YE MAY BE STRONG, AND EAT THE GOOD OF THE LAND, AND LEAVE IT FOR* AN INHERITANCE TO YOUR CHILDREN FOR EVER.M# 13 AND AFTER ALL THAT IS COME UPON US FOR OUR EVIL DEEDS, AND FOR OUR GREATNM TRESPASS, SEEING THAT THOU OUR GOD HAST PUNISHED US LESS THAN OUR INIQUITIESM5 DESERVE, AND HAST GIVEN US SUCH DELIVERANCE AS THIS;RJ# 14 SHOULD WE AGAIN BREAK THY COMMANDMENTS, AND JOIN IN AFFINITY WITH THEK PEOPLE OF THESE ABOMINATIONS? WOULDEST NOT THOU BE ANGRY WITH US TILL THOU D HADST CONSUMED US, SO THAT THERE SHOULD BE NO REMNANT NOR ESCAPING?L# 15 O LORD GOD OF ISRAEL, THOU ART RIGHTEOUS: FOR WE REMAIN YET ESCAPED, ASL IT IS THIS DAY: BEHOLD, WE ARE BEFORE THEE IN OUR TRESPASSES: FOR WE CANNOT# STAND BEFORE THEE BECAUSE OF THIS.T = CHAPTER 10 SL# 1 NOW WHEN EZRA HAD PRAYED, AND WHEN HE HAD CONFESSED, WEEPING AND CASTINGM HIMSELF DOWN BEFORE THE HOUSE OF GOD, THERE ASSEMBLED UNTO HIM OUT OF ISRAELPM A VERY GREAT CONGREGATION OF MEN AND WOMEN AND CHILDREN: FOR THE PEOPLE WEPTD VERY SORE.SK# 2 AND SHECHANIAH THE00m4V4D%5%T6%! ! SON OF JEHIEL, ONE OF THE SONS OF ELAM, ANSWERED AND,K SAID UNTO EZRA, WE HAVE TRESPASSED AGAINST OUR GOD, AND HAVE TAKEN STRANGEWL WIVES OF THE PEOPLE OF THE LAND: YET NOW THERE IS HOPE IN ISRAEL CONCERNING THIS THING.I# 3 NOW THEREFORE LET US MAKE A COVENANT WITH OUR GOD TO PUT AWAY ALL THEIN WIVES, AND SUCH AS ARE BORN OF THEM, ACCORDING TO THE COUNSEL OF MY LORD, ANDH OF THOSE THAT TREMBLE AT THE COMMANDMENT OF OUR GOD; AND LET IT BE DONE ACCORDING TO THE LAW.M# 4 ARISE; FOR THIS MATTER BELONGETH UNTO THEE: WE ALSO WILL BE WITH THEE: BEE OF GOOD COURAGE, AND DO IT.M# 5 THEN AROSE EZRA, AND MADE THE CHIEF PRIESTS, THE LEVITES, AND ALL ISRAEL,OE TO SWEAR THAT THEY SHOULD DO ACCORDING TO THIS WORD. AND THEY SWARE. M# 6 THEN EZRA ROSE UP FROM BEFORE THE HOUSE OF GOD, AND WENT INTO THE CHAMBERSH OF JOHANAN THE SON OF ELIASHIB: AND WHEN HE CAME THITHER, HE DID EAT NOL BREAD, NOR DRINK WATER: FOR HE MOURNED BECAUSE OF THE TRANSGRESSION OF THEM THAT HAD BEEN CARRIED AWAY.J# 7 AND THEY MADE PROCLAMATION THROUGHOUT JUDAH AND JERUSALEM UNTO ALL THEL CHILDREN OF THE CAPTIVITY, THAT THEY SHOULD GATHER THEMSELVES TOGETHER UNTO JERUSALEM;LI# 8 AND THAT WHOSOEVER WOULD NOT COME WITHIN THREE DAYS, ACCORDING TO THESN COUNSEL OF THE PRINCES AND THE ELDERS, ALL HIS SUBSTANCE SHOULD BE FORFEITED,K AND HIMSELF SEPARATED FROM THE CONGREGATION OF THOSE THAT HAD BEEN CARRIED  AWAY.L# 9 THEN ALL THE MEN OF JUDAH AND BENJAMIN GATHERED THEMSELVES TOGETHER UNTON JERUSALEM WITHIN THREE DAYS. WAS THE NINTH MONTH, ON THE TWENTIETH DAY OF THEK MONTH; AND ALL THE PEOPLE SAT IN THE STREET OF THE HOUSE OF GOD, TREMBLINGM0 BECAUSE OF THIS MATTER, AND FOR THE GREAT RAIN.L# 10 AND EZRA THE PRIEST STOOD UP, AND SAID UNTO THEM, YE HAVE TRANSGRESSED,B AND HAVE TAKEN STRANGE WIVES, TO INCREASE THE TRESPASS OF ISRAEL.L# 11 NOW THEREFORE MAKE CONFESSION UNTO THE LORD GOD OF YOUR FATHERS, AND DOL HIS PLEASURE: AND SEPARATE YOURSELVES FROM THE PEOPLE OF THE LAND, AND FROM THE STRANGE WIVES. K# 12 THEN ALL THE CONGREGATION ANSWERED AND SAID WITH A LOUD VOICE, AS THOU  HAST SAID, SO MUST WE DO.K# 13 BUT THE PEOPLE ARE MANY, AND IT IS A TIME OF MUCH RAIN, AND WE ARE NOTRL ABLE TO STAND WITHOUT, NEITHER IS THIS A WORK OF ONE DAY OR TWO: FOR WE ARE+ MANY THAT HAVE TRANSGRESSED IN THIS THING.AM# 14 LET NOW OUR RULERS OF ALL THE CONGREGATION STAND, AND LET ALL THEM WHICHDN HAVE TAKEN STRANGE WIVES IN OUR CITIES COME AT APPOINTED TIMES, AND WITH THEML THE ELDERS OF EVERY CITY, AND THE JUDGES THEREOF, UNTIL THE FIERCE WRATH OF+ OUR GOD FOR THIS MATTER BE TURNED FROM US.H# 15 ONLY JONATHAN THE SON OF ASAHEL AND JAHAZIAH THE SON OF TIKVAH WEREK EMPLOYED ABOUT THIS MATTER: AND MESHULLAM AND SHABBETHAI THE LEVITE HELPEDK THEM.H# 16 AND THE CHILDREN OF THE CAPTIVITY DID SO. AND EZRA THE PRIEST, WITHK CERTAIN CHIEF OF THE FATHERS, AFTER THE HOUSE OF THEIR FATHERS, AND ALL OFHJ THEM BY THEIR NAMES, WERE SEPARATED, AND SAT DOWN IN THE FIRST DAY OF THE# TENTH MONTH TO EXAMINE THE MATTER.JJ# 17 AND THEY MADE AN END WITH ALL THE MEN THAT HAD TAKEN STRANGE WIVES BY" THE FIRST DAY OF THE FIRST MONTH.F# 18 AND AMONG THE SONS OF THE PRIESTS THERE WERE FOUND THAT HAD TAKENI STRANGE WIVES: NAMELY, OF THE SONS OF JESHUA THE SON OF JOZADAK, AND HISE: BRETHREN; MAASEIAH, AND ELIEZER, AND JARIB, AND GEDALIAH.H# 19 AND THEY GAVE THEIR HANDS THAT THEY WOULD PUT AWAY THEIR WIVES; ANDB BEING GUILTY, THEY OFFERED A RAM OF THE FLOCK FOR THEIR TRESPASS.4# 20 AND OF THE SONS OF IMMER; HANANI, AND ZEBADIAH.F# 21 AND OF THE SONS OF HARIM; MAASEIAH, AND ELIJAH, AND SHEMAIAH, AND JEHIEL, AND UZZIAH.G# 22 AND OF THE SONS OF PASHUR; ELIOENAI, MAASEIAH, ISHMAEL, NETHANEEL,H JOZABAD, AND ELASAH.WH# 23 ALSO OF THE LEVITES; JOZABAD, AND SHIMEI, AND KELAIAH, (THE SAME IS( KELITA,) PETHAHIAH, JUDAH, AND ELIEZER.K# 24 OF THE SINGERS ALSO; ELIASHIB: AND OF THE PORTERS; SHALLUM, AND TELEM,; AND URI.GG# 25 MOREOVER OF ISRAEL: OF THE SONS OF PAROSH; RAMIAH, AND JEZIAH, AND ? MALCHIAH, AND MIAMIN, AND ELEAZAR, AND MALCHIJAH, AND BENAIAH. M00m4n4<%X>%+%O-%TADATADATA# 26 AND OF THE SONS OF ELAM; MATTANIAH, ZECHARIAH, AND JEHIEL, AND ABDI, ANDO JEREMOTH, AND ELIAH.LK# 27 AND OF THE SONS OF ZATTU; ELIOENAI, ELIASHIB, MATTANIAH, AND JEREMOTH,T AND ZABAD, AND AZIZA.H# 28 OF THE SONS ALSO OF BEBAI; JEHOHANAN, HANANIAH, ZABBAI, AND ATHLAI.I# 29 AND OF THE SONS OF BANI; MESHULLAM, MALLUCH, AND ADAIAH, JASHUB, ANDL SHEAL, AND RAMOTH.5H# 30 AND OF THE SONS OF PAHATHMOAB; ADNA, AND CHELAL, BENAIAH, MAASEIAH,/ MATTANIAH, BEZALEEL, AND BINNUI, AND MANASSEH.DM# 31 AND OF THE SONS OF HARIM; ELIEZER, ISHIJAH, MALCHIAH, SHEMAIAH, SHIMEON, &# 32 BENJAMIN, MALLUCH, AND SHEMARIAH.K# 33 OF THE SONS OF HASHUM; MATTENAI, MATTATHAH, ZABAD, ELIPHELET, JEREMAI,D MANASSEH, AND SHIMEI.1# 34 OF THE SONS OF BANI; MAADAI, AMRAM, AND UEL,B# 35 BENAIAH, BEDEIAH, CHELLUH, # 36 VANIAH, MEREMOTH, ELIASHIB,%# 37 MATTANIAH, MATTENAI, AND JAASAU,A"# 38 AND BANI, AND BINNUI, SHIMEI,+# 39 AND SHELEMIAH, AND NATHAN, AND ADAIAH,"# 40 MACHNADEBAI, SHASHAI, SHARAI,'# 41 AZAREEL, AND SHELEMIAH, SHEMARIAH,I"# 42 SHALLUM, AMARIAH, AND JOSEPH.L# 43 OF THE SONS OF NEBO; JEIEL, MATTITHIAH, ZABAD, ZEBINA, JADAU, AND JOEL, BENAIAH.NJ# 44 ALL THESE HAD TAKEN STRANGE WIVES: AND SOME OF THEM HAD WIVES BY WHOM THEY HAD CHILDREN.DAI, AMRAM, AND UEL,B# 35 BENAIAH, BEDEIAH, CHELLUH, # 36 VANIAH, MEREMOTH, ELIASHIB,%# 37 MATTANIAH, MATTENAI, AND JAASAU,A"# 38 AND BANI, AND BINNUI, SHIMEI,+# 39 AND SHELEMIAH, AND NATHAN, AND ADAIAH,"# 40 MACHNADEBAI, SHASHAI, SHARAI,'# 41 AZAREEL, AND SHEL* BOOK16 NEHEMIAH = CHAPTER 1 J# 1 THE WORDS OF NEHEMIAH THE SON OF HACHALIAH. AND IT CAME TO PASS IN THEF MONTH CHISLEU, IN THE TWENTIETH YEAR, AS I WAS IN SHUSHAN THE PALACE,M# 2 THAT HANANI, ONE OF MY BRETHREN, CAME, HE AND CERTAIN MEN OF JUDAH; AND IBH ASKED THEM CONCERNING THE JEWS THAT HAD ESCAPED, WHICH WERE LEFT OF THE% CAPTIVITY, AND CONCERNING JERUSALEM.8K# 3 AND THEY SAID UNTO ME, THE REMNANT THAT ARE LEFT OF THE CAPTIVITY THEREL IN THE PROVINCE ARE IN GREAT AFFLICTION AND REPROACH: THE WALL OF JERUSALEMA ALSO IS BROKEN DOWN, AND THE GATES THEREOF ARE BURNED WITH FIRE. L# 4 AND IT CAME TO PASS, WHEN I HEARD THESE WORDS, THAT I SAT DOWN AND WEPT,K AND MOURNED CERTAIN DAYS, AND FASTED, AND PRAYED BEFORE THE GOD OF HEAVEN,EJ# 5 AND SAID, I BESEECH THEE, O LORD GOD OF HEAVEN, THE GREAT AND TERRIBLEL GOD, THAT KEEPETH COVENANT AND MERCY FOR THEM THAT LOVE HIM AND OBSERVE HIS COMMANDMENTS:I# 6 LET THINE EAR NOW BE ATTENTIVE, AND THINE EYES OPEN, THAT THOU MAYESTLM HEAR THE PRAYER OF THY SERVANT, WHICH I PRAY BEFORE THEE NOW, DAY AND NIGHT, N FOR THE CHILDREN OF ISRAEL THY SERVANTS, AND CONFESS THE SINS OF THE CHILDRENJ OF ISRAEL, WHICH WE HAVE SINNED AGAINST THEE: BOTH I AND MY FATHERS HOUSE HAVE SINNED.GD# 7 WE HAVE DEALT VERY CORRUPTLY AGAINST THEE, AND HAVE NOT KEPT THEN COMMANDMENTS, NOR THE STATUTES, NOR THE JUDGMENTS, WHICH THOU COMMANDEDST THY SERVANT MOSES.SH# 8 REMEMBER, I BESEECH THEE, THE WORD THAT THOU COMMANDEDST THY SERVANTN MOSES, SAYING, IF YE TRANSGRESS, I WILL SCATTER YOU ABROAD AMONG THE NATIONS:I# 9 BUT IF YE TURN UNTO ME, AND KEEP MY COMMANDMENTS, AND DO THEM; THOUGHHM THERE WERE OF YOU CAST OUT UNTO THE UTTERMOST PART OF THE HEAVEN, YET WILL INH GATHER THEM FROM THENCE, AND WILL BRING THEM UNTO THE PLACE THAT I HAVE CHOSEN TO SET MY NAME THERE.J# 10 NOW THESE ARE THY SERVANTS AND THY PEOPLE, WHOM THOU HAST REDEEMED BY) THY GREAT POWER, AND BY THY STRONG HAND.CL# 11 O LORD, I BESEECH THEE, LET NOW THINE EAR BE ATTENTIVE TO THE PRAYER OFM THY SERVANT, AND TO THE PRAYER OF THY SERVANTS, WHO DESIRE TO FEAR THY NAME:EK AND PROSPER, I PRAY THEE, THY SERVANT THIS DAY, AND GRANT HIM MERCY IN THE 2 SIGHT OF THIS MAN. FOR I WAS THE KINGS CUPBEARER. = CHAPTER 2 D# 1 AND IT CAME TO PASS IN THE MONTH NISAN, IN THE TWENTIETH YEAR OFK ARTAXERXES THE KING, THAT WINE WAS BEFORE HIM: AND I TOOK UP THE WINE, ANDOJ GAVE IT UNTO THE KING. NOW I HAD NOT BEEN BEFORETIME SAD IN HIS PRESENCE.L# 2 WHEREFORE THE KING SAID UNTO ME, WHY IS THY COUNTENANCE SAD, SEEING TH00n4V4D%5%T6%! !OUM ART NOT SICK? THIS IS NOTHING ELSE BUT SORROW OF HEART. THEN I WAS VERY SORER AFRAID,I# 3 AND SAID UNTO THE KING, LET THE KING LIVE FOR EVER: WHY SHOULD NOT MY M COUNTENANCE BE SAD, WHEN THE CITY, THE PLACE OF MY FATHERS SEPULCHRES, LIETHN5 WASTE, AND THE GATES THEREOF ARE CONSUMED WITH FIRE?GL# 4 THEN THE KING SAID UNTO ME, FOR WHAT DOST THOU MAKE REQUEST? SO I PRAYED TO THE GOD OF HEAVEN.L# 5 AND I SAID UNTO THE KING, IF IT PLEASE THE KING, AND IF THY SERVANT HAVEK FOUND FAVOUR IN THY SIGHT, THAT THOU WOULDEST SEND ME UNTO JUDAH, UNTO THEW4 CITY OF MY FATHERS SEPULCHRES, THAT I MAY BUILD IT.L# 6 AND THE KING SAID UNTO ME, (THE QUEEN ALSO SITTING BY HIM,) FOR HOW LONGK SHALL THY JOURNEY BE? AND WHEN WILT THOU RETURN? SO IT PLEASED THE KING TON SEND ME; AND I SET HIM A TIME.WH# 7 MOREOVER I SAID UNTO THE KING, IF IT PLEASE THE KING, LET LETTERS BEN GIVEN ME TO THE GOVERNORS BEYOND THE RIVER, THAT THEY MAY CONVEY ME OVER TILL I COME INTO JUDAH;HL# 8 AND A LETTER UNTO ASAPH THE KEEPER OF THE KINGS FOREST, THAT HE MAY GIVEM ME TIMBER TO MAKE BEAMS FOR THE GATES OF THE PALACE WHICH APPERTAINED TO THEHJ HOUSE, AND FOR THE WALL OF THE CITY, AND FOR THE HOUSE THAT I SHALL ENTERM INTO. AND THE KING GRANTED ME, ACCORDING TO THE GOOD HAND OF MY GOD UPON ME. J# 9 THEN I CAME TO THE GOVERNORS BEYOND THE RIVER, AND GAVE THEM THE KINGSJ LETTERS. NOW THE KING HAD SENT CAPTAINS OF THE ARMY AND HORSEMEN WITH ME.M# 10 WHEN SANBALLAT THE HORONITE, AND TOBIAH THE SERVANT, THE AMMONITE, HEARD I OF IT, IT GRIEVED THEM EXCEEDINGLY THAT THERE WAS COME A MAN TO SEEK THET# WELFARE OF THE CHILDREN OF ISRAEL.N6# 11 SO I CAME TO JERUSALEM, AND WAS THERE THREE DAYS.M# 12 AND I AROSE IN THE NIGHT, I AND SOME FEW MEN WITH ME; NEITHER TOLD I ANYEN MAN WHAT MY GOD HAD PUT IN MY HEART TO DO AT JERUSALEM: NEITHER WAS THERE ANY0 BEAST WITH ME, SAVE THE BEAST THAT I RODE UPON.G# 13 AND I WENT OUT BY NIGHT BY THE GATE OF THE VALLEY, EVEN BEFORE THE L DRAGON WELL, AND TO THE DUNG PORT, AND VIEWED THE WALLS OF JERUSALEM, WHICHA WERE BROKEN DOWN, AND THE GATES THEREOF WERE CONSUMED WITH FIRE.OK# 14 THEN I WENT ON TO THE GATE OF THE FOUNTAIN, AND TO THE KINGS POOL: BUTD< THERE WAS NO PLACE FOR THE BEAST THAT WAS UNDER ME TO PASS.G# 15 THEN WENT I UP IN THE NIGHT BY THE BROOK, AND VIEWED THE WALL, ANDUE TURNED BACK, AND ENTERED BY THE GATE OF THE VALLEY, AND SO RETURNED.EL# 16 AND THE RULERS KNEW NOT WHITHER I WENT, OR WHAT I DID; NEITHER HAD I ASK YET TOLD IT TO THE JEWS, NOR TO THE PRIESTS, NOR TO THE NOBLES, NOR TO THEI+ RULERS, NOR TO THE REST THAT DID THE WORK.WM# 17 THEN SAID I UNTO THEM, YE SEE THE DISTRESS THAT WE ARE IN, HOW JERUSALEMTJ LIETH WASTE, AND THE GATES THEREOF ARE BURNED WITH FIRE: COME, AND LET US? BUILD UP THE WALL OF JERUSALEM, THAT WE BE NO MORE A REPROACH.EK# 18 THEN I TOLD THEM OF THE HAND OF MY GOD WHICH WAS GOOD UPON ME; AS ALSO N THE KINGS WORDS THAT HE HAD SPOKEN UNTO ME. AND THEY SAID, LET US RISE UP AND< BUILD. SO THEY STRENGTHENED THEIR HANDS FOR THIS GOOD WORK.K# 19 BUT WHEN SANBALLAT THE HORONITE, AND TOBIAH THE SERVANT, THE AMMONITE,TM AND GESHEM THE ARABIAN, HEARD IT, THEY LAUGHED US TO SCORN, AND DESPISED US,HI AND SAID, WHAT IS THIS THING THAT YE DO? WILL YE REBEL AGAINST THE KING?DI# 20 THEN ANSWERED I THEM, AND SAID UNTO THEM, THE GOD OF HEAVEN, HE WILLDK PROSPER US; THEREFORE WE HIS SERVANTS WILL ARISE AND BUILD: BUT YE HAVE NOS0 PORTION, NOR RIGHT, NOR MEMORIAL, IN JERUSALEM. = CHAPTER 3 L# 1 THEN ELIASHIB THE HIGH PRIEST ROSE UP WITH HIS BRETHREN THE PRIESTS, ANDM THEY BUILDED THE SHEEP GATE; THEY SANCTIFIED IT, AND SET UP THE DOORS OF IT;RL EVEN UNTO THE TOWER OF MEAH THEY SANCTIFIED IT, UNTO THE TOWER OF HANANEEL.J# 2 AND NEXT UNTO HIM BUILDED THE MEN OF JERICHO. AND NEXT TO THEM BUILDED ZACCUR THE SON OF IMRI.H# 3 BUT THE FISH GATE DID THE SONS OF HASSENAAH BUILD, WHO ALSO LAID THEM BEAMS THEREOF, AND SET UP THE DOORS THEREOF, THE LOCKS THEREOF, AND THE BARSU THEREOF.HK# 4 AND NEXT UNTO THEM REPAIRED MEREMOTH THE SON OF URIJAH, THE SON OF KOZ.EG A00n44<%X>%+%O-%TADATADATAND NEXT UNTO THEM REPAIRED MESHULLAM THE SON OF BERECHIAH, THE SON OFEA MESHEZABEEL. AND NEXT UNTO THEM REPAIRED ZADOK THE SON OF BAANA.TL# 5 AND NEXT UNTO THEM THE TEKOITES REPAIRED; BUT THEIR NOBLES PUT NOT THEIR! NECKS TO THE WORK OF THEIR LORD. L# 6 MOREOVER THE OLD GATE REPAIRED JEHOIADA THE SON OF PASEAH, AND MESHULLAMH THE SON OF BESODEIAH; THEY LAID THE BEAMS THEREOF, AND SET UP THE DOORS6 THEREOF, AND THE LOCKS THEREOF, AND THE BARS THEREOF.E# 7 AND NEXT UNTO THEM REPAIRED MELATIAH THE GIBEONITE, AND JADON THEEF MERONOTHITE, THE MEN OF GIBEON, AND OF MIZPAH, UNTO THE THRONE OF THE! GOVERNOR ON THIS SIDE THE RIVER. I# 8 NEXT UNTO HIM REPAIRED UZZIEL THE SON OF HARHAIAH, OF THE GOLDSMITHS.PM NEXT UNTO HIM ALSO REPAIRED HANANIAH THE SON OF ONE OF THE APOTHECARIES, ANDA. THEY FORTIFIED JERUSALEM UNTO THE BROAD WALL.I# 9 AND NEXT UNTO THEM REPAIRED REPHAIAH THE SON OF HUR, THE RULER OF THET HALF PART OF JERUSALEM.G# 10 AND NEXT UNTO THEM REPAIRED JEDAIAH THE SON OF HARUMAPH, EVEN OVERGM AGAINST HIS HOUSE. AND NEXT UNTO HIM REPAIRED HATTUSH THE SON OF HASHABNIAH.TK# 11 MALCHIJAH THE SON OF HARIM, AND HASHUB THE SON OF PAHATHMOAB, REPAIREDR0 THE OTHER PIECE, AND THE TOWER OF THE FURNACES.M# 12 AND NEXT UNTO HIM REPAIRED SHALLUM THE SON OF HALOHESH, THE RULER OF THEA. HALF PART OF JERUSALEM, HE AND HIS DAUGHTERS.H# 13 THE VALLEY GATE REPAIRED HANUN, AND THE INHABITANTS OF ZANOAH; THEYH BUILT IT, AND SET UP THE DOORS THEREOF, THE LOCKS THEREOF, AND THE BARS? THEREOF, AND A THOUSAND CUBITS ON THE WALL UNTO THE DUNG GATE.IM# 14 BUT THE DUNG GATE REPAIRED MALCHIAH THE SON OF RECHAB, THE RULER OF PARTDF OF BETHHACCEREM; HE BUILT IT, AND SET UP THE DOORS THEREOF, THE LOCKS THEREOF, AND THE BARS THEREOF. K# 15 BUT THE GATE OF THE FOUNTAIN REPAIRED SHALLUN THE SON OF COLHOZEH, THEOK RULER OF PART OF MIZPAH; HE BUILT IT, AND COVERED IT, AND SET UP THE DOORSTN THEREOF, THE LOCKS THEREOF, AND THE BARS THEREOF, AND THE WALL OF THE POOL OFN SILOAH BY THE KINGS GARDEN, AND UNTO THE STAIRS THAT GO DOWN FROM THE CITY OF DAVID.IM# 16 AFTER HIM REPAIRED NEHEMIAH THE SON OF AZBUK, THE RULER OF THE HALF PARTDL OF BETHZUR, UNTO THE PLACE OVER AGAINST THE SEPULCHRES OF DAVID, AND TO THE6 POOL THAT WAS MADE, AND UNTO THE HOUSE OF THE MIGHTY.I# 17 AFTER HIM REPAIRED THE LEVITES, REHUM THE SON OF BANI. NEXT UNTO HIMHG REPAIRED HASHABIAH, THE RULER OF THE HALF PART OF KEILAH, IN HIS PART. K# 18 AFTER HIM REPAIRED THEIR BRETHREN, BAVAI THE SON OF HENADAD, THE RULERN OF THE HALF PART OF KEILAH.J# 19 AND NEXT TO HIM REPAIRED EZER THE SON OF JESHUA, THE RULER OF MIZPAH,M ANOTHER PIECE OVER AGAINST THE GOING UP TO THE ARMOURY AT THE TURNING OF THEA WALL.K# 20 AFTER HIM BARUCH THE SON OF ZABBAI EARNESTLY REPAIRED THE OTHER PIECE,FM FROM THE TURNING OF THE WALL UNTO THE DOOR OF THE HOUSE OF ELIASHIB THE HIGHU PRIEST.I# 21 AFTER HIM REPAIRED MEREMOTH THE SON OF URIJAH THE SON OF KOZ ANOTHER N PIECE, FROM THE DOOR OF THE HOUSE OF ELIASHIB EVEN TO THE END OF THE HOUSE OF ELIASHIB.># 22 AND AFTER HIM REPAIRED THE PRIESTS, THE MEN OF THE PLAIN.K# 23 AFTER HIM REPAIRED BENJAMIN AND HASHUB OVER AGAINST THEIR HOUSE. AFTEROJ HIM REPAIRED AZARIAH THE SON OF MAASEIAH THE SON OF ANANIAH BY HIS HOUSE.I# 24 AFTER HIM REPAIRED BINNUI THE SON OF HENADAD ANOTHER PIECE, FROM THEEE HOUSE OF AZARIAH UNTO THE TURNING OF THE WALL, EVEN UNTO THE CORNER.II# 25 PALAL THE SON OF UZAI, OVER AGAINST THE TURNING OF THE WALL, AND THEON TOWER WHICH LIETH OUT FROM THE KINGS HIGH HOUSE, THAT WAS BY THE COURT OF THE- PRISON. AFTER HIM PEDAIAH THE SON OF PAROSH. K# 26 MOREOVER THE NETHINIMS DWELT IN OPHEL, UNTO THE PLACE OVER AGAINST THE : WATER GATE TOWARD THE EAST, AND THE TOWER THAT LIETH OUT.K# 27 AFTER THEM THE TEKOITES REPAIRED ANOTHER PIECE, OVER AGAINST THE GREATT3 TOWER THAT LIETH OUT, EVEN UNTO THE WALL OF OPHEL.IK# 28 FROM ABOVE THE HORSE GATE REPAIRED THE PRIESTS, EVERY ONE OVER AGAINSTN HIS HOUSE.GM# 29 AFTER THEM REPAIRED ZADOK THE SON OF IMMER OVER AGAINST HIS HOUSE. AFTERWI HIM REPAIRED ALSO SHEMAIAH 00n4V4D%5%T6%! !THE SON OF SHECHANIAH, THE KEEPER OF THE EAST6 GATE.J# 30 AFTER HIM REPAIRED HANANIAH THE SON OF SHELEMIAH, AND HANUN THE SIXTHF SON OF ZALAPH, ANOTHER PIECE. AFTER HIM REPAIRED MESHULLAM THE SON OF$ BERECHIAH OVER AGAINST HIS CHAMBER.I# 31 AFTER HIM REPAIRED MALCHIAH THE GOLDSMITHS SON UNTO THE PLACE OF THE8K NETHINIMS, AND OF THE MERCHANTS, OVER AGAINST THE GATE MIPHKAD, AND TO THES GOING UP OF THE CORNER.L# 32 AND BETWEEN THE GOING UP OF THE CORNER UNTO THE SHEEP GATE REPAIRED THE GOLDSMITHS AND THE MERCHANTS. = CHAPTER 4 L# 1 BUT IT CAME TO PASS, THAT WHEN SANBALLAT HEARD THAT WE BUILDED THE WALL,? HE WAS WROTH, AND TOOK GREAT INDIGNATION, AND MOCKED THE JEWS.PL# 2 AND HE SPAKE BEFORE HIS BRETHREN AND THE ARMY OF SAMARIA, AND SAID, WHATN DO THESE FEEBLE JEWS? WILL THEY FORTIFY THEMSELVES? WILL THEY SACRIFICE? WILLK THEY MAKE AN END IN A DAY? WILL THEY REVIVE THE STONES OUT OF THE HEAPS OFE THE RUBBISH WHICH ARE BURNED?I# 3 NOW TOBIAH THE AMMONITE WAS BY HIM, AND HE SAID, EVEN THAT WHICH THEY B BUILD, IF A FOX GO UP, HE SHALL EVEN BREAK DOWN THEIR STONE WALL.L# 4 HEAR, O OUR GOD; FOR WE ARE DESPISED: AND TURN THEIR REPROACH UPON THEIR= OWN HEAD, AND GIVE THEM FOR A PREY IN THE LAND OF CAPTIVITY:DK# 5 AND COVER NOT THEIR INIQUITY, AND LET NOT THEIR SIN BE BLOTTED OUT FROMYG BEFORE THEE: FOR THEY HAVE PROVOKED THEE TO ANGER BEFORE THE BUILDERS.TL# 6 SO BUILT WE THE WALL; AND ALL THE WALL WAS JOINED TOGETHER UNTO THE HALF, THEREOF: FOR THE PEOPLE HAD A MIND TO WORK.K# 7 BUT IT CAME TO PASS, THAT WHEN SANBALLAT, AND TOBIAH, AND THE ARABIANS,TN AND THE AMMONITES, AND THE ASHDODITES, HEARD THAT THE WALLS OF JERUSALEM WEREH MADE UP, AND THAT THE BREACHES BEGAN TO BE STOPPED, THEN THEY WERE VERY WROTH, C# 8 AND CONSPIRED ALL OF THEM TOGETHER TO COME AND TO FIGHT AGAINSTO JERUSALEM, AND TO HINDER IT. I# 9 NEVERTHELESS WE MADE OUR PRAYER UNTO OUR GOD, AND SET A WATCH AGAINST % THEM DAY AND NIGHT, BECAUSE OF THEM.HK# 10 AND JUDAH SAID, THE STRENGTH OF THE BEARERS OF BURDENS IS DECAYED, AND,B THERE IS MUCH RUBBISH; SO THAT WE ARE NOT ABLE TO BUILD THE WALL.M# 11 AND OUR ADVERSARIES SAID, THEY SHALL NOT KNOW, NEITHER SEE, TILL WE COME E IN THE MIDST AMONG THEM, AND SLAY THEM, AND CAUSE THE WORK TO CEASE. K# 12 AND IT CAME TO PASS, THAT WHEN THE JEWS WHICH DWELT BY THEM CAME, THEYML SAID UNTO US TEN TIMES, FROM ALL PLACES WHENCE YE SHALL RETURN UNTO US THEY WILL BE UPON YOU.K# 13 THEREFORE SET I IN THE LOWER PLACES BEHIND THE WALL, AND ON THE HIGHERTL PLACES, I EVEN SET THE PEOPLE AFTER THEIR FAMILIES WITH THEIR SWORDS, THEIR SPEARS, AND THEIR BOWS.L# 14 AND I LOOKED, AND ROSE UP, AND SAID UNTO THE NOBLES, AND TO THE RULERS,L AND TO THE REST OF THE PEOPLE, BE NOT YE AFRAID OF THEM: REMEMBER THE LORD,N WHICH IS GREAT AND TERRIBLE, AND FIGHT FOR YOUR BRETHREN, YOUR SONS, AND YOUR( DAUGHTERS, YOUR WIVES, AND YOUR HOUSES.K# 15 AND IT CAME TO PASS, WHEN OUR ENEMIES HEARD THAT IT WAS KNOWN UNTO US, K AND GOD HAD BROUGHT THEIR COUNSEL TO NOUGHT, THAT WE RETURNED ALL OF US TO # THE WALL, EVERY ONE UNTO HIS WORK.RK# 16 AND IT CAME TO PASS FROM THAT TIME FORTH, THAT THE HALF OF MY SERVANTS J WROUGHT IN THE WORK, AND THE OTHER HALF OF THEM HELD BOTH THE SPEARS, THEN SHIELDS, AND THE BOWS, AND THE HABERGEONS; AND THE RULERS WERE BEHIND ALL THE HOUSE OF JUDAH.K# 17 THEY WHICH BUILDED ON THE WALL, AND THEY THAT BARE BURDENS, WITH THOSEIN THAT LADED, EVERY ONE WITH ONE OF HIS HANDS WROUGHT IN THE WORK, AND WITH THE OTHER HAND HELD A WEAPON.I# 18 FOR THE BUILDERS, EVERY ONE HAD HIS SWORD GIRDED BY HIS SIDE, AND SO4 BUILDED. AND HE THAT SOUNDED THE TRUMPET WAS BY ME.J# 19 AND I SAID UNTO THE NOBLES, AND TO THE RULERS, AND TO THE REST OF THEM PEOPLE, THE WORK IS GREAT AND LARGE, AND WE ARE SEPARATED UPON THE WALL, ONEE FAR FROM ANOTHER.H# 20 IN WHAT PLACE THEREFORE YE HEAR THE SOUND OF THE TRUMPET, RESORT YE- THITHER UNTO US: OUR GOD SHALL FIGHT FOR US.EJ# 21 SO WE LABOURED IN THE WORK: AND HALF OF THEM HELD THE SPEARS FROM THE/ RISING OF THE MORNING TILL THE STARS APPEARED00n44<%X>%+%O-%TADATADATA.SM# 22 LIKEWISE AT THE SAME TIME SAID I UNTO THE PEOPLE, LET EVERY ONE WITH HISAM SERVANT LODGE WITHIN JERUSALEM, THAT IN THE NIGHT THEY MAY BE A GUARD TO US,F AND LABOUR ON THE DAY.SM# 23 SO NEITHER I, NOR MY BRETHREN, NOR MY SERVANTS, NOR THE MEN OF THE GUARDM WHICH FOLLOWED ME, NONE OF US PUT OFF OUR CLOTHES, SAVING THAT EVERY ONE PUTH THEM OFF FOR WASHING. = CHAPTER 5 L# 1 AND THERE WAS A GREAT CRY OF THE PEOPLE AND OF THEIR WIVES AGAINST THEIR BRETHREN THE JEWS.IH# 2 FOR THERE WERE THAT SAID, WE, OUR SONS, AND OUR DAUGHTERS, ARE MANY:? THEREFORE WE TAKE UP CORN FOR THEM, THAT WE MAY EAT, AND LIVE.EK# 3 SOME ALSO THERE WERE THAT SAID, WE HAVE MORTGAGED OUR LANDS, VINEYARDS, ; AND HOUSES, THAT WE MIGHT BUY CORN, BECAUSE OF THE DEARTH.NL# 4 THERE WERE ALSO THAT SAID, WE HAVE BORROWED MONEY FOR THE KINGS TRIBUTE,' AND THAT UPON OUR LANDS AND VINEYARDS.L# 5 YET NOW OUR FLESH IS AS THE FLESH OF OUR BRETHREN, OUR CHILDREN AS THEIRJ CHILDREN: AND, LO, WE BRING INTO BONDAGE OUR SONS AND OUR DAUGHTERS TO BEN SERVANTS, AND SOME OF OUR DAUGHTERS ARE BROUGHT UNTO BONDAGE ALREADY: NEITHERD IS IT IN OUR POWER TO REDEEM THEM; FOR OTHER MEN HAVE OUR LANDS AND VINEYARDS.,@# 6 AND I WAS VERY ANGRY WHEN I HEARD THEIR CRY AND THESE WORDS.K# 7 THEN I CONSULTED WITH MYSELF, AND I REBUKED THE NOBLES, AND THE RULERS, J AND SAID UNTO THEM, YE EXACT USURY, EVERY ONE OF HIS BROTHER. AND I SET A GREAT ASSEMBLY AGAINST THEM.OM# 8 AND I SAID UNTO THEM, WE AFTER OUR ABILITY HAVE REDEEMED OUR BRETHREN THERM JEWS, WHICH WERE SOLD UNTO THE HEATHEN; AND WILL YE EVEN SELL YOUR BRETHREN? M OR SHALL THEY BE SOLD UNTO US? THEN HELD THEY THEIR PEACE, AND FOUND NOTHINGN TO ANSWER.YL# 9 ALSO I SAID, IT IS NOT GOOD THAT YE DO: OUGHT YE NOT TO WALK IN THE FEAR? OF OUR GOD BECAUSE OF THE REPROACH OF THE HEATHEN OUR ENEMIES?UL# 10 I LIKEWISE, AND MY BRETHREN, AND MY SERVANTS, MIGHT EXACT OF THEM MONEY3 AND CORN: I PRAY YOU, LET US LEAVE OFF THIS USURY.UD# 11 RESTORE, I PRAY YOU, TO THEM, EVEN THIS DAY, THEIR LANDS, THEIRN VINEYARDS, THEIR OLIVEYARDS, AND THEIR HOUSES, ALSO THE HUNDREDTH PART OF THEF MONEY, AND OF THE CORN, THE WINE, AND THE OIL, THAT YE EXACT OF THEM.L# 12 THEN SAID THEY, WE WILL RESTORE THEM, AND WILL REQUIRE NOTHING OF THEM;M SO WILL WE DO AS THOU SAYEST. THEN I CALLED THE PRIESTS, AND TOOK AN OATH OFU5 THEM, THAT THEY SHOULD DO ACCORDING TO THIS PROMISE.GG# 13 ALSO I SHOOK MY LAP, AND SAID, SO GOD SHAKE OUT EVERY MAN FROM HISYN HOUSE, AND FROM HIS LABOUR, THAT PERFORMETH NOT THIS PROMISE, EVEN THUS BE HEN SHAKEN OUT, AND EMPTIED. AND ALL THE CONGREGATION SAID, AMEN, AND PRAISED THE4 LORD. AND THE PEOPLE DID ACCORDING TO THIS PROMISE.L# 14 MOREOVER FROM THE TIME THAT I WAS APPOINTED TO BE THEIR GOVERNOR IN THEL LAND OF JUDAH, FROM THE TWENTIETH YEAR EVEN UNTO THE TWO AND THIRTIETH YEARJ OF ARTAXERXES THE KING, THAT IS, TWELVE YEARS, I AND MY BRETHREN HAVE NOT! EATEN THE BREAD OF THE GOVERNOR.DJ# 15 BUT THE FORMER GOVERNORS THAT HAD BEEN BEFORE ME WERE CHARGEABLE UNTOJ THE PEOPLE, AND HAD TAKEN OF THEM BREAD AND WINE, BESIDE FORTY SHEKELS OFN SILVER; YEA, EVEN THEIR SERVANTS BARE RULE OVER THE PEOPLE: BUT SO DID NOT I, BECAUSE OF THE FEAR OF GOD.J# 16 YEA, ALSO I CONTINUED IN THE WORK OF THIS WALL, NEITHER BOUGHT WE ANY? LAND: AND ALL MY SERVANTS WERE GATHERED THITHER UNTO THE WORK.OI# 17 MOREOVER THERE WERE AT MY TABLE AN HUNDRED AND FIFTY OF THE JEWS ANDEM RULERS, BESIDE THOSE THAT CAME UNTO US FROM AMONG THE HEATHEN THAT ARE ABOUTE US.G# 18 NOW THAT WHICH WAS PREPARED FOR ME DAILY WAS ONE OX AND SIX CHOICE,J SHEEP; ALSO FOWLS WERE PREPARED FOR ME, AND ONCE IN TEN DAYS STORE OF ALLJ SORTS OF WINE: YET FOR ALL THIS REQUIRED NOT I THE BREAD OF THE GOVERNOR,0 BECAUSE THE BONDAGE WAS HEAVY UPON THIS PEOPLE.K# 19 THINK UPON ME, MY GOD, FOR GOOD, ACCORDING TO ALL THAT I HAVE DONE FOR THIS PEOPLE.R = CHAPTER 6 K# 1 NOW IT CAME TO PASS WHEN SANBALLAT, AND TOBIAH, AND GESHEM THE ARABIAN,NI AND THE REST OF OUR ENEMIES, HEARD THAT I HAD BUILDED THE WALL, AND THAT L THERE WAS N00n4V4D%5%T6%! !O BREACH LEFT THEREIN; (THOUGH AT THAT TIME I HAD NOT SET UP THE DOORS UPON THE GATES;)TE# 2 THAT SANBALLAT AND GESHEM SENT UNTO ME, SAYING, COME, LET US MEETHN TOGETHER IN SOME ONE OF THE VILLAGES IN THE PLAIN OF ONO. BUT THEY THOUGHT TO DO ME MISCHIEF.M# 3 AND I SENT MESSENGERS UNTO THEM, SAYING, I AM DOING A GREAT WORK, SO THATEK I CANNOT COME DOWN: WHY SHOULD THE WORK CEASE, WHILST I LEAVE IT, AND COMEI DOWN TO YOU?RI# 4 YET THEY SENT UNTO ME FOUR TIMES AFTER THIS SORT; AND I ANSWERED THEMS AFTER THE SAME MANNER.(I# 5 THEN SENT SANBALLAT HIS SERVANT UNTO ME IN LIKE MANNER THE FIFTH TIMET! WITH AN OPEN LETTER IN HIS HAND; K# 6 WHEREIN WAS WRITTEN, IT IS REPORTED AMONG THE HEATHEN, AND GASHMU SAITHNM IT, THAT THOU AND THE JEWS THINK TO REBEL: FOR WHICH CAUSE THOU BUILDEST THET@ WALL, THAT THOU MAYEST BE THEIR KING, ACCORDING TO THESE WORDS.I# 7 AND THOU HAST ALSO APPOINTED PROPHETS TO PREACH OF THEE AT JERUSALEM,K SAYING, THERE IS A KING IN JUDAH: AND NOW SHALL IT BE REPORTED TO THE KINGAF ACCORDING TO THESE WORDS. COME NOW THEREFORE, AND LET US TAKE COUNSEL TOGETHER.G# 8 THEN I SENT UNTO HIM, SAYING, THERE ARE NO SUCH THINGS DONE AS THOUE7 SAYEST, BUT THOU FEIGNEST THEM OUT OF THINE OWN HEART.IK# 9 FOR THEY ALL MADE US AFRAID, SAYING, THEIR HANDS SHALL BE WEAKENED FROMJ THE WORK, THAT IT BE NOT DONE. NOW THEREFORE, O GOD, STRENGTHEN MY HANDS.K# 10 AFTERWARD I CAME UNTO THE HOUSE OF SHEMAIAH THE SON OF DELAIAH THE SONEI OF MEHETABEEL, WHO WAS SHUT UP; AND HE SAID, LET US MEET TOGETHER IN THEGN HOUSE OF GOD, WITHIN THE TEMPLE, AND LET US SHUT THE DOORS OF THE TEMPLE: FORL THEY WILL COME TO SLAY THEE; YEA, IN THE NIGHT WILL THEY COME TO SLAY THEE.K# 11 AND I SAID, SHOULD SUCH A MAN AS I FLEE? AND WHO IS THERE, THAT, BEINGIF AS I AM, WOULD GO INTO THE TEMPLE TO SAVE HIS LIFE? I WILL NOT GO IN.K# 12 AND, LO, I PERCEIVED THAT GOD HAD NOT SENT HIM; BUT THAT HE PRONOUNCEDOB THIS PROPHECY AGAINST ME: FOR TOBIAH AND SANBALLAT HAD HIRED HIM.M# 13 THEREFORE WAS HE HIRED, THAT I SHOULD BE AFRAID, AND DO SO, AND SIN, ANDIM THAT THEY MIGHT HAVE MATTER FOR AN EVIL REPORT, THAT THEY MIGHT REPROACH ME.SJ# 14 MY GOD, THINK THOU UPON TOBIAH AND SANBALLAT ACCORDING TO THESE THEIRI WORKS, AND ON THE PROPHETESS NOADIAH, AND THE REST OF THE PROPHETS, THAT  WOULD HAVE PUT ME IN FEAR.SL# 15 SO THE WALL WAS FINISHED IN THE TWENTY AND FIFTH DAY OF THE MONTH ELUL, IN FIFTY AND TWO DAYS.J# 16 AND IT CAME TO PASS, THAT WHEN ALL OUR ENEMIES HEARD THEREOF, AND ALLM THE HEATHEN THAT WERE ABOUT US SAW THESE THINGS, THEY WERE MUCH CAST DOWN INHJ THEIR OWN EYES: FOR THEY PERCEIVED THAT THIS WORK WAS WROUGHT OF OUR GOD.F# 17 MOREOVER IN THOSE DAYS THE NOBLES OF JUDAH SENT MANY LETTERS UNTO2 TOBIAH, AND THE LETTERS OF TOBIAH CAME UNTO THEM.K# 18 FOR THERE WERE MANY IN JUDAH SWORN UNTO HIM, BECAUSE HE WAS THE SON INNN LAW OF SHECHANIAH THE SON OF ARAH; AND HIS SON JOHANAN HAD TAKEN THE DAUGHTER# OF MESHULLAM THE SON OF BERECHIAH.LI# 19 ALSO THEY REPORTED HIS GOOD DEEDS BEFORE ME, AND UTTERED MY WORDS TOH0 HIM. AND TOBIAH SENT LETTERS TO PUT ME IN FEAR. = CHAPTER 7 M# 1 NOW IT CAME TO PASS, WHEN THE WALL WAS BUILT, AND I HAD SET UP THE DOORS,Y@ AND THE PORTERS AND THE SINGERS AND THE LEVITES WERE APPOINTED,H# 2 THAT I GAVE MY BROTHER HANANI, AND HANANIAH THE RULER OF THE PALACE,M CHARGE OVER JERUSALEM: FOR HE WAS A FAITHFUL MAN, AND FEARED GOD ABOVE MANY. L# 3 AND I SAID UNTO THEM, LET NOT THE GATES OF JERUSALEM BE OPENED UNTIL THEL SUN BE HOT; AND WHILE THEY STAND BY, LET THEM SHUT THE DOORS, AND BAR THEM:M AND APPOINT WATCHES OF THE INHABITANTS OF JERUSALEM, EVERY ONE IN HIS WATCH,S, AND EVERY ONE TO BE OVER AGAINST HIS HOUSE.J# 4 NOW THE CITY WAS LARGE AND GREAT: BUT THE PEOPLE WERE FEW THEREIN, AND THE HOUSES WERE NOT BUILDED.NI# 5 AND MY GOD PUT INTO MINE HEART TO GATHER TOGETHER THE NOBLES, AND THEWN RULERS, AND THE PEOPLE, THAT THEY MIGHT BE RECKONED BY GENEALOGY. AND I FOUNDJ A REGISTER OF THE GENEALOGY OF THEM WHICH CAME UP AT THE FIRST, AND FOUND WRITTEN THEREIN,UC# 6 THESE 00n44<%X>%+%O-%TADATADATAARE THE CHILDREN OF THE PROVINCE, THAT WENT UP OUT OF THEFM CAPTIVITY, OF THOSE THAT HAD BEEN CARRIED AWAY, WHOM NEBUCHADNEZZAR THE KINGSM OF BABYLON HAD CARRIED AWAY, AND CAME AGAIN TO JERUSALEM AND TO JUDAH, EVERY ONE UNTO HIS CITY;BK# 7 WHO CAME WITH ZERUBBABEL, JESHUA, NEHEMIAH, AZARIAH, RAAMIAH, NAHAMANI,NK MORDECAI, BILSHAN, MISPERETH, BIGVAI, NEHUM, BAANAH. THE NUMBER, I SAY, OFD* THE MEN OF THE PEOPLE OF ISRAEL WAS THIS;D# 8 THE CHILDREN OF PAROSH, TWO THOUSAND AN HUNDRED SEVENTY AND TWO.># 9 THE CHILDREN OF SHEPHATIAH, THREE HUNDRED SEVENTY AND TWO.5# 10 THE CHILDREN OF ARAH, SIX HUNDRED FIFTY AND TWO.UH# 11 THE CHILDREN OF PAHATHMOAB, OF THE CHILDREN OF JESHUA AND JOAB, TWO) THOUSAND AND EIGHT HUNDRED AND EIGHTEEN.IA# 12 THE CHILDREN OF ELAM, A THOUSAND TWO HUNDRED FIFTY AND FOUR.I9# 13 THE CHILDREN OF ZATTU, EIGHT HUNDRED FORTY AND FIVE.M:# 14 THE CHILDREN OF ZACCAI, SEVEN HUNDRED AND THREESCORE.9# 15 THE CHILDREN OF BINNUI, SIX HUNDRED FORTY AND EIGHT.A9# 16 THE CHILDREN OF BEBAI, SIX HUNDRED TWENTY AND EIGHT. F# 17 THE CHILDREN OF AZGAD, TWO THOUSAND THREE HUNDRED TWENTY AND TWO.@# 18 THE CHILDREN OF ADONIKAM, SIX HUNDRED THREESCORE AND SEVEN.?# 19 THE CHILDREN OF BIGVAI, TWO THOUSAND THREESCORE AND SEVEN.I6# 20 THE CHILDREN OF ADIN, SIX HUNDRED FIFTY AND FIVE.8# 21 THE CHILDREN OF ATER OF HEZEKIAH, NINETY AND EIGHT.<# 22 THE CHILDREN OF HASHUM, THREE HUNDRED TWENTY AND EIGHT.:# 23 THE CHILDREN OF BEZAI, THREE HUNDRED TWENTY AND FOUR.3# 24 THE CHILDREN OF HARIPH, AN HUNDRED AND TWELVE. -# 25 THE CHILDREN OF GIBEON, NINETY AND FIVE. G# 26 THE MEN OF BETHLEHEM AND NETOPHAH, AN HUNDRED FOURSCORE AND EIGHT.,6# 27 THE MEN OF ANATHOTH, AN HUNDRED TWENTY AND EIGHT.,# 28 THE MEN OF BETHAZMAVETH, FORTY AND TWO.J# 29 THE MEN OF KIRJATHJEARIM, CHEPHIRAH, AND BEEROTH, SEVEN HUNDRED FORTY AND THREE.K;# 30 THE MEN OF RAMAH AND GABA, SIX HUNDRED TWENTY AND ONE.N7# 31 THE MEN OF MICHMAS, AN HUNDRED AND TWENTY AND TWO. ;# 32 THE MEN OF BETHEL AND AI, AN HUNDRED TWENTY AND THREE.D.# 33 THE MEN OF THE OTHER NEBO, FIFTY AND TWO.K# 34 THE CHILDREN OF THE OTHER ELAM, A THOUSAND TWO HUNDRED FIFTY AND FOUR.E5# 35 THE CHILDREN OF HARIM, THREE HUNDRED AND TWENTY.T;# 36 THE CHILDREN OF JERICHO, THREE HUNDRED FORTY AND FIVE. G# 37 THE CHILDREN OF LOD, HADID, AND ONO, SEVEN HUNDRED TWENTY AND ONE.D# 38 THE CHILDREN OF SENAAH, THREE THOUSAND NINE HUNDRED AND THIRTY.G# 39 THE PRIESTS: THE CHILDREN OF JEDAIAH, OF THE HOUSE OF JESHUA, NINEM HUNDRED SEVENTY AND THREE.E5# 40 THE CHILDREN OF IMMER, A THOUSAND FIFTY AND TWO.ID# 41 THE CHILDREN OF PASHUR, A THOUSAND TWO HUNDRED FORTY AND SEVEN.5# 42 THE CHILDREN OF HARIM, A THOUSAND AND SEVENTEEN. L# 43 THE LEVITES: THE CHILDREN OF JESHUA, OF KADMIEL, AND OF THE CHILDREN OF HODEVAH, SEVENTY AND FOUR.DD# 44 THE SINGERS: THE CHILDREN OF ASAPH, AN HUNDRED FORTY AND EIGHT.M# 45 THE PORTERS: THE CHILDREN OF SHALLUM, THE CHILDREN OF ATER, THE CHILDRENNJ OF TALMON, THE CHILDREN OF AKKUB, THE CHILDREN OF HATITA, THE CHILDREN OF% SHOBAI, AN HUNDRED THIRTY AND EIGHT.FG# 46 THE NETHINIMS: THE CHILDREN OF ZIHA, THE CHILDREN OF HASHUPHA, THEN CHILDREN OF TABBAOTH,G# 47 THE CHILDREN OF KEROS, THE CHILDREN OF SIA, THE CHILDREN OF PADON,OM# 48 THE CHILDREN OF LEBANA, THE CHILDREN OF HAGABA, THE CHILDREN OF SHALMAI,4J# 49 THE CHILDREN OF HANAN, THE CHILDREN OF GIDDEL, THE CHILDREN OF GAHAR,K# 50 THE CHILDREN OF REAIAH, THE CHILDREN OF REZIN, THE CHILDREN OF NEKODA,MK# 51 THE CHILDREN OF GAZZAM, THE CHILDREN OF UZZA, THE CHILDREN OF PHASEAH,AC# 52 THE CHILDREN OF BESAI, THE CHILDREN OF MEUNIM, THE CHILDREN OFA NEPHISHESIM,OM# 53 THE CHILDREN OF BAKBUK, THE CHILDREN OF HAKUPHA, THE CHILDREN OF HARHUR,RM# 54 THE CHILDREN OF BAZLITH, THE CHILDREN OF MEHIDA, THE CHILDREN OF HARSHA,FK# 55 THE CHILDREN OF BARKOS, THE CHILDREN OF SISERA, THE CHILDREN OF TAMAH,O5# 56 THE CHILDREN OF NEZIAH, THE CHILDREN OF HATIPHA.RK# 57 THE CHILDREN OF SOLOMONS SERVANTS: THE CHILDREN OF SOTAI, THE CHILDRENG& OF SOPHERETH, THE CHILDREN OF PERIDA,K# 58 THE CHILDREN 00n4V4D%5%T6%! !OF JAALA, THE CHILDREN OF DARKON, THE CHILDREN OF GIDDEL,RH# 59 THE CHILDREN OF SHEPHATIAH, THE CHILDREN OF HATTIL, THE CHILDREN OF+ POCHERETH OF ZEBAIM, THE CHILDREN OF AMON.EI# 60 ALL THE NETHINIMS, AND THE CHILDREN OF SOLOMONS SERVANTS, WERE THREEI HUNDRED NINETY AND TWO.F# 61 AND THESE WERE THEY WHICH WENT UP ALSO FROM TELMELAH, TELHARESHA,K CHERUB, ADDON, AND IMMER: BUT THEY COULD NOT SHEW THEIR FATHERS HOUSE, NORO) THEIR SEED, WHETHER THEY WERE OF ISRAEL.CM# 62 THE CHILDREN OF DELAIAH, THE CHILDREN OF TOBIAH, THE CHILDREN OF NEKODA,L SIX HUNDRED FORTY AND TWO.IJ# 63 AND OF THE PRIESTS: THE CHILDREN OF HABAIAH, THE CHILDREN OF KOZ, THEH CHILDREN OF BARZILLAI, WHICH TOOK ONE OF THE DAUGHTERS OF BARZILLAI THE4 GILEADITE TO WIFE, AND WAS CALLED AFTER THEIR NAME.M# 64 THESE SOUGHT THEIR REGISTER AMONG THOSE THAT WERE RECKONED BY GENEALOGY,CE BUT IT WAS NOT FOUND: THEREFORE WERE THEY, AS POLLUTED, PUT FROM THEO PRIESTHOOD.K# 65 AND THE TIRSHATHA SAID UNTO THEM, THAT THEY SHOULD NOT EAT OF THE MOSTOA HOLY THINGS, TILL THERE STOOD UP A PRIEST WITH URIM AND THUMMIM. M# 66 THE WHOLE CONGREGATION TOGETHER WAS FORTY AND TWO THOUSAND THREE HUNDREDD AND THREESCORE,H# 67 BESIDE THEIR MANSERVANTS AND THEIR MAIDSERVANTS, OF WHOM THERE WEREN SEVEN THOUSAND THREE HUNDRED THIRTY AND SEVEN: AND THEY HAD TWO HUNDRED FORTY( AND FIVE SINGING MEN AND SINGING WOMEN.I# 68 THEIR HORSES, SEVEN HUNDRED THIRTY AND SIX: THEIR MULES, TWO HUNDRED  FORTY AND FIVE:K# 69 THEIR CAMELS, FOUR HUNDRED THIRTY AND FIVE: SIX THOUSAND SEVEN HUNDREDT AND TWENTY ASSES.K# 70 AND SOME OF THE CHIEF OF THE FATHERS GAVE UNTO THE WORK. THE TIRSHATHADN GAVE TO THE TREASURE A THOUSAND DRAMS OF GOLD, FIFTY BASONS, FIVE HUNDRED AND THIRTY PRIESTS GARMENTS.OJ# 71 AND SOME OF THE CHIEF OF THE FATHERS GAVE TO THE TREASURE OF THE WORKI TWENTY THOUSAND DRAMS OF GOLD, AND TWO THOUSAND AND TWO HUNDRED POUND OFE SILVER.L# 72 AND THAT WHICH THE REST OF THE PEOPLE GAVE WAS TWENTY THOUSAND DRAMS OFI GOLD, AND TWO THOUSAND POUND OF SILVER, AND THREESCORE AND SEVEN PRIESTSE GARMENTS.K# 73 SO THE PRIESTS, AND THE LEVITES, AND THE PORTERS, AND THE SINGERS, ANDN SOME OF THE PEOPLE, AND THE NETHINIMS, AND ALL ISRAEL, DWELT IN THEIR CITIES;N AND WHEN THE SEVENTH MONTH CAME, THE CHILDREN OF ISRAEL WERE IN THEIR CITIES. = CHAPTER 8 N# 1 AND ALL THE PEOPLE GATHERED THEMSELVES TOGETHER AS ONE MAN INTO THE STREETM THAT WAS BEFORE THE WATER GATE; AND THEY SPAKE UNTO EZRA THE SCRIBE TO BRINGSF THE BOOK OF THE LAW OF MOSES, WHICH THE LORD HAD COMMANDED TO ISRAEL.K# 2 AND EZRA THE PRIEST BROUGHT THE LAW BEFORE THE CONGREGATION BOTH OF MENOM AND WOMEN, AND ALL THAT COULD HEAR WITH UNDERSTANDING, UPON THE FIRST DAY OFS THE SEVENTH MONTH.CM# 3 AND HE READ THEREIN BEFORE THE STREET THAT WAS BEFORE THE WATER GATE FROMCM THE MORNING UNTIL MIDDAY, BEFORE THE MEN AND THE WOMEN, AND THOSE THAT COULDEK UNDERSTAND; AND THE EARS OF ALL THE PEOPLE WERE ATTENTIVE UNTO THE BOOK OFR THE LAW.EL# 4 AND EZRA THE SCRIBE STOOD UPON A PULPIT OF WOOD, WHICH THEY HAD MADE FORI THE PURPOSE; AND BESIDE HIM STOOD MATTITHIAH, AND SHEMA, AND ANAIAH, ANDOL URIJAH, AND HILKIAH, AND MAASEIAH, ON HIS RIGHT HAND; AND ON HIS LEFT HAND,K PEDAIAH, AND MISHAEL, AND MALCHIAH, AND HASHUM, AND HASHBADANA, ZECHARIAH,T AND MESHULLAM.AH# 5 AND EZRA OPENED THE BOOK IN THE SIGHT OF ALL THE PEOPLE; (FOR HE WASG ABOVE ALL THE PEOPLE;) AND WHEN HE OPENED IT, ALL THE PEOPLE STOOD UP:TJ# 6 AND EZRA BLESSED THE LORD, THE GREAT GOD. AND ALL THE PEOPLE ANSWERED,I AMEN, AMEN, WITH LIFTING UP THEIR HANDS: AND THEY BOWED THEIR HEADS, ANDM4 WORSHIPPED THE LORD WITH THEIR FACES TO THE GROUND.L# 7 ALSO JESHUA, AND BANI, AND SHEREBIAH, JAMIN, AKKUB, SHABBETHAI, HODIJAH,L MAASEIAH, KELITA, AZARIAH, JOZABAD, HANAN, PELAIAH, AND THE LEVITES, CAUSEDG THE PEOPLE TO UNDERSTAND THE LAW: AND THE PEOPLE STOOD IN THEIR PLACE.WG# 8 SO THEY READ IN THE BOOK IN THE LAW OF GOD DISTINCTLY, AND GAVE THEP2 SENSE, AND CAUSED THEM TO UNDERSTAND THE READING.M# 9 AND NEHEMIAH, WHICH IS THE TIRSHATHA, 00n44<%X>%+%O-%TADATADATAAND EZRA THE PRIEST THE SCRIBE, ANDBJ THE LEVITES THAT TAUGHT THE PEOPLE, SAID UNTO ALL THE PEOPLE, THIS DAY ISK HOLY UNTO THE LORD YOUR GOD; MOURN NOT, NOR WEEP. FOR ALL THE PEOPLE WEPT,,& WHEN THEY HEARD THE WORDS OF THE LAW.K# 10 THEN HE SAID UNTO THEM, GO YOUR WAY, EAT THE FAT, AND DRINK THE SWEET,DJ AND SEND PORTIONS UNTO THEM FOR WHOM NOTHING IS PREPARED: FOR THIS DAY ISI HOLY UNTO OUR LORD: NEITHER BE YE SORRY; FOR THE JOY OF THE LORD IS YOUR STRENGTH.L# 11 SO THE LEVITES STILLED ALL THE PEOPLE, SAYING, HOLD YOUR PEACE, FOR THE$ DAY IS HOLY; NEITHER BE YE GRIEVED.H# 12 AND ALL THE PEOPLE WENT THEIR WAY TO EAT, AND TO DRINK, AND TO SENDN PORTIONS, AND TO MAKE GREAT MIRTH, BECAUSE THEY HAD UNDERSTOOD THE WORDS THAT WERE DECLARED UNTO THEM.EM# 13 AND ON THE SECOND DAY WERE GATHERED TOGETHER THE CHIEF OF THE FATHERS OFML ALL THE PEOPLE, THE PRIESTS, AND THE LEVITES, UNTO EZRA THE SCRIBE, EVEN TO! UNDERSTAND THE WORDS OF THE LAW. M# 14 AND THEY FOUND WRITTEN IN THE LAW WHICH THE LORD HAD COMMANDED BY MOSES,YG THAT THE CHILDREN OF ISRAEL SHOULD DWELL IN BOOTHS IN THE FEAST OF THEE SEVENTH MONTH:RJ# 15 AND THAT THEY SHOULD PUBLISH AND PROCLAIM IN ALL THEIR CITIES, AND INJ JERUSALEM, SAYING, GO FORTH UNTO THE MOUNT, AND FETCH OLIVE BRANCHES, ANDM PINE BRANCHES, AND MYRTLE BRANCHES, AND PALM BRANCHES, AND BRANCHES OF THICKL) TREES, TO MAKE BOOTHS, AS IT IS WRITTEN.UL# 16 SO THE PEOPLE WENT FORTH, AND BROUGHT THEM, AND MADE THEMSELVES BOOTHS,M EVERY ONE UPON THE ROOF OF HIS HOUSE, AND IN THEIR COURTS, AND IN THE COURTSHL OF THE HOUSE OF GOD, AND IN THE STREET OF THE WATER GATE, AND IN THE STREET OF THE GATE OF EPHRAIM.E# 17 AND ALL THE CONGREGATION OF THEM THAT WERE COME AGAIN OUT OF THE N CAPTIVITY MADE BOOTHS, AND SAT UNDER THE BOOTHS: FOR SINCE THE DAYS OF JESHUAI THE SON OF NUN UNTO THAT DAY HAD NOT THE CHILDREN OF ISRAEL DONE SO. ANDT THERE WAS VERY GREAT GLADNESS.HJ# 18 ALSO DAY BY DAY, FROM THE FIRST DAY UNTO THE LAST DAY, HE READ IN THEN BOOK OF THE LAW OF GOD. AND THEY KEPT THE FEAST SEVEN DAYS; AND ON THE EIGHTH6 DAY WAS A SOLEMN ASSEMBLY, ACCORDING UNTO THE MANNER. = CHAPTER 9 N# 1 NOW IN THE TWENTY AND FOURTH DAY OF THIS MONTH THE CHILDREN OF ISRAEL WEREC ASSEMBLED WITH FASTING, AND WITH SACKCLOTHES, AND EARTH UPON THEM.OM# 2 AND THE SEED OF ISRAEL SEPARATED THEMSELVES FROM ALL STRANGERS, AND STOODO? AND CONFESSED THEIR SINS, AND THE INIQUITIES OF THEIR FATHERS.SL# 3 AND THEY STOOD UP IN THEIR PLACE, AND READ IN THE BOOK OF THE LAW OF THEH LORD THEIR GOD ONE FOURTH PART OF THE DAY; AND ANOTHER FOURTH PART THEY. CONFESSED, AND WORSHIPPED THE LORD THEIR GOD.M# 4 THEN STOOD UP UPON THE STAIRS, OF THE LEVITES, JESHUA, AND BANI, KADMIEL,EL SHEBANIAH, BUNNI, SHEREBIAH, BANI, AND CHENANI, AND CRIED WITH A LOUD VOICE UNTO THE LORD THEIR GOD.OG# 5 THEN THE LEVITES, JESHUA, AND KADMIEL, BANI, HASHABNIAH, SHEREBIAH,SN HODIJAH, SHEBANIAH, AND PETHAHIAH, SAID, STAND UP AND BLESS THE LORD YOUR GODL FOR EVER AND EVER: AND BLESSED BE THY GLORIOUS NAME, WHICH IS EXALTED ABOVE ALL BLESSING AND PRAISE.EI# 6 THOU, EVEN THOU, ART LORD ALONE; THOU HAST MADE HEAVEN, THE HEAVEN OFNN HEAVENS, WITH ALL THEIR HOST, THE EARTH, AND ALL THINGS THAT ARE THEREIN, THEM SEAS, AND ALL THAT IS THEREIN, AND THOU PRESERVEST THEM ALL; AND THE HOST OF  HEAVEN WORSHIPPETH THEE.TI# 7 THOU ART THE LORD THE GOD, WHO DIDST CHOOSE ABRAM, AND BROUGHTEST HIMHE FORTH OUT OF UR OF THE CHALDEES, AND GAVEST HIM THE NAME OF ABRAHAM;RK# 8 AND FOUNDEST HIS HEART FAITHFUL BEFORE THEE, AND MADEST A COVENANT WITHLL HIM TO GIVE THE LAND OF THE CANAANITES, THE HITTITES, THE AMORITES, AND THEN PERIZZITES, AND THE JEBUSITES, AND THE GIRGASHITES, TO GIVE IT, I SAY, TO HIS< SEED, AND HAST PERFORMED THY WORDS; FOR THOU ART RIGHTEOUS:L# 9 AND DIDST SEE THE AFFLICTION OF OUR FATHERS IN EGYPT, AND HEARDEST THEIR CRY BY THE RED SEA;J# 10 AND SHEWEDST SIGNS AND WONDERS UPON PHARAOH, AND ON ALL HIS SERVANTS,L AND ON ALL THE PEOPLE OF HIS LAND: FOR THOU KNEWEST THAT THEY DEALT PROUDLY@ AGAINST THEM. SO DIDST TH00n4V4D%5%T6%! !OU GET THEE A NAME, AS IT IS THIS DAY.M# 11 AND THOU DIDST DIVIDE THE SEA BEFORE THEM, SO THAT THEY WENT THROUGH THETK MIDST OF THE SEA ON THE DRY LAND; AND THEIR PERSECUTORS THOU THREWEST INTO . THE DEEPS, AS A STONE INTO THE MIGHTY WATERS.I# 12 MOREOVER THOU LEDDEST THEM IN THE DAY BY A CLOUDY PILLAR; AND IN THEHM NIGHT BY A PILLAR OF FIRE, TO GIVE THEM LIGHT IN THE WAY WHEREIN THEY SHOULDR GO.G# 13 THOU CAMEST DOWN ALSO UPON MOUNT SINAI, AND SPAKEST WITH THEM FROMOJ HEAVEN, AND GAVEST THEM RIGHT JUDGMENTS, AND TRUE LAWS, GOOD STATUTES AND COMMANDMENTS:F# 14 AND MADEST KNOWN UNTO THEM THY HOLY SABBATH, AND COMMANDEDST THEM@ PRECEPTS, STATUTES, AND LAWS, BY THE HAND OF MOSES THY SERVANT:M# 15 AND GAVEST THEM BREAD FROM HEAVEN FOR THEIR HUNGER, AND BROUGHTEST FORTH J WATER FOR THEM OUT OF THE ROCK FOR THEIR THIRST, AND PROMISEDST THEM THATK THEY SHOULD GO IN TO POSSESS THE LAND WHICH THOU HADST SWORN TO GIVE THEM.LJ# 16 BUT THEY AND OUR FATHERS DEALT PROUDLY, AND HARDENED THEIR NECKS, AND# HEARKENED NOT TO THY COMMANDMENTS,TM# 17 AND REFUSED TO OBEY, NEITHER WERE MINDFUL OF THY WONDERS THAT THOU DIDSTNI AMONG THEM; BUT HARDENED THEIR NECKS, AND IN THEIR REBELLION APPOINTED A H CAPTAIN TO RETURN TO THEIR BONDAGE: BUT THOU ART A GOD READY TO PARDON,L GRACIOUS AND MERCIFUL, SLOW TO ANGER, AND OF GREAT KINDNESS, AND FORSOOKEST THEM NOT.J# 18 YEA, WHEN THEY HAD MADE THEM A MOLTEN CALF, AND SAID, THIS IS THY GODG THAT BROUGHT THEE UP OUT OF EGYPT, AND HAD WROUGHT GREAT PROVOCATIONS;,L# 19 YET THOU IN THY MANIFOLD MERCIES FORSOOKEST THEM NOT IN THE WILDERNESS:K THE PILLAR OF THE CLOUD DEPARTED NOT FROM THEM BY DAY, TO LEAD THEM IN THE J WAY; NEITHER THE PILLAR OF FIRE BY NIGHT, TO SHEW THEM LIGHT, AND THE WAY WHEREIN THEY SHOULD GO.K# 20 THOU GAVEST ALSO THY GOOD SPIRIT TO INSTRUCT THEM, AND WITHHELDEST NOT D THY MANNA FROM THEIR MOUTH, AND GAVEST THEM WATER FOR THEIR THIRST.M# 21 YEA, FORTY YEARS DIDST THOU SUSTAIN THEM IN THE WILDERNESS, SO THAT THEYRI LACKED NOTHING; THEIR CLOTHES WAXED NOT OLD, AND THEIR FEET SWELLED NOT.TJ# 22 MOREOVER THOU GAVEST THEM KINGDOMS AND NATIONS, AND DIDST DIVIDE THEML INTO CORNERS: SO THEY POSSESSED THE LAND OF SIHON, AND THE LAND OF THE KING/ OF HESHBON, AND THE LAND OF OG KING OF BASHAN.DF# 23 THEIR CHILDREN ALSO MULTIPLIEDST THOU AS THE STARS OF HEAVEN, ANDM BROUGHTEST THEM INTO THE LAND, CONCERNING WHICH THOU HADST PROMISED TO THEIR./ FATHERS, THAT THEY SHOULD GO IN TO POSSESS IT.NG# 24 SO THE CHILDREN WENT IN AND POSSESSED THE LAND, AND THOU SUBDUEDSTON BEFORE THEM THE INHABITANTS OF THE LAND, THE CANAANITES, AND GAVEST THEM INTON THEIR HANDS, WITH THEIR KINGS, AND THE PEOPLE OF THE LAND, THAT THEY MIGHT DO WITH THEM AS THEY WOULD.K# 25 AND THEY TOOK STRONG CITIES, AND A FAT LAND, AND POSSESSED HOUSES FULLLJ OF ALL GOODS, WELLS DIGGED, VINEYARDS, AND OLIVEYARDS, AND FRUIT TREES INK ABUNDANCE: SO THEY DID EAT, AND WERE FILLED, AND BECAME FAT, AND DELIGHTED " THEMSELVES IN THY GREAT GOODNESS.L# 26 NEVERTHELESS THEY WERE DISOBEDIENT, AND REBELLED AGAINST THEE, AND CASTJ THY LAW BEHIND THEIR BACKS, AND SLEW THY PROPHETS WHICH TESTIFIED AGAINST@ THEM TO TURN THEM TO THEE, AND THEY WROUGHT GREAT PROVOCATIONS.H# 27 THEREFORE THOU DELIVEREDST THEM INTO THE HAND OF THEIR ENEMIES, WHON VEXED THEM: AND IN THE TIME OF THEIR TROUBLE, WHEN THEY CRIED UNTO THEE, THOUM HEARDEST THEM FROM HEAVEN; AND ACCORDING TO THY MANIFOLD MERCIES THOU GAVESTA@ THEM SAVIOURS, WHO SAVED THEM OUT OF THE HAND OF THEIR ENEMIES.H# 28 BUT AFTER THEY HAD REST, THEY DID EVIL AGAIN BEFORE THEE: THEREFOREN LEFTEST THOU THEM IN THE LAND OF THEIR ENEMIES, SO THAT THEY HAD THE DOMINIONK OVER THEM: YET WHEN THEY RETURNED, AND CRIED UNTO THEE, THOU HEARDEST THEMON FROM HEAVEN; AND MANY TIMES DIDST THOU DELIVER THEM ACCORDING TO THY MERCIES;K# 29 AND TESTIFIEDST AGAINST THEM, THAT THOU MIGHTEST BRING THEM AGAIN UNTOEN THY LAW: YET THEY DEALT PROUDLY, AND HEARKENED NOT UNTO THY COMMANDMENTS, BUTN SINNED AGAINST THY JUDGMENTS, (WHICH IF A MAN DO, HE SHALL LIVE IN THEM;) AND00n44<%X>%+%O-%TADATADATAD WITHDREW THE SHOULDER, AND HARDENED THEIR NECK, AND WOULD NOT HEAR.L# 30 YET MANY YEARS DIDST THOU FORBEAR THEM, AND TESTIFIEDST AGAINST THEM BYJ THY SPIRIT IN THY PROPHETS: YET WOULD THEY NOT GIVE EAR: THEREFORE GAVEST4 THOU THEM INTO THE HAND OF THE PEOPLE OF THE LANDS.K# 31 NEVERTHELESS FOR THY GREAT MERCIES SAKE THOU DIDST NOT UTTERLY CONSUMETB THEM, NOR FORSAKE THEM; FOR THOU ART A GRACIOUS AND MERCIFUL GOD.M# 32 NOW THEREFORE, OUR GOD, THE GREAT, THE MIGHTY, AND THE TERRIBLE GOD, WHOHM KEEPEST COVENANT AND MERCY, LET NOT ALL THE TROUBLE SEEM LITTLE BEFORE THEE,N THAT HATH COME UPON US, ON OUR KINGS, ON OUR PRINCES, AND ON OUR PRIESTS, ANDN ON OUR PROPHETS, AND ON OUR FATHERS, AND ON ALL THY PEOPLE, SINCE THE TIME OF$ THE KINGS OF ASSYRIA UNTO THIS DAY.M# 33 HOWBEIT THOU ART JUST IN ALL THAT IS BROUGHT UPON US; FOR THOU HAST DONEO" RIGHT, BUT WE HAVE DONE WICKEDLY:L# 34 NEITHER HAVE OUR KINGS, OUR PRINCES, OUR PRIESTS, NOR OUR FATHERS, KEPTL THY LAW, NOR HEARKENED UNTO THY COMMANDMENTS AND THY TESTIMONIES, WHEREWITH! THOU DIDST TESTIFY AGAINST THEM. E# 35 FOR THEY HAVE NOT SERVED THEE IN THEIR KINGDOM, AND IN THY GREATUI GOODNESS THAT THOU GAVEST THEM, AND IN THE LARGE AND FAT LAND WHICH THOU,A GAVEST BEFORE THEM, NEITHER TURNED THEY FROM THEIR WICKED WORKS.EM# 36 BEHOLD, WE ARE SERVANTS THIS DAY, AND FOR THE LAND THAT THOU GAVEST UNTOUJ OUR FATHERS TO EAT THE FRUIT THEREOF AND THE GOOD THEREOF, BEHOLD, WE ARE SERVANTS IN IT:L# 37 AND IT YIELDETH MUCH INCREASE UNTO THE KINGS WHOM THOU HAST SET OVER USK BECAUSE OF OUR SINS: ALSO THEY HAVE DOMINION OVER OUR BODIES, AND OVER OURH9 CATTLE, AT THEIR PLEASURE, AND WE ARE IN GREAT DISTRESS. K# 38 AND BECAUSE OF ALL THIS WE MAKE A SURE COVENANT, AND WRITE IT; AND OURN- PRINCES, LEVITES, AND PRIESTS, SEAL UNTO IT. = CHAPTER 10 RN# 1 NOW THOSE THAT SEALED WERE, NEHEMIAH, THE TIRSHATHA, THE SON OF HACHALIAH, AND ZIDKIJAH,# 2 SERAIAH, AZARIAH, JEREMIAH, # 3 PASHUR, AMARIAH, MALCHIJAH,D # 4 HATTUSH, SHEBANIAH, MALLUCH,# 5 HARIM, MEREMOTH, OBADIAH, # 6 DANIEL, GINNETHON, BARUCH,# 7 MESHULLAM, ABIJAH, MIJAMIN,,6# 8 MAAZIAH, BILGAI, SHEMAIAH: THESE WERE THE PRIESTS.J# 9 AND THE LEVITES: BOTH JESHUA THE SON OF AZANIAH, BINNUI OF THE SONS OF HENADAD, KADMIEL;D# 10 AND THEIR BRETHREN, SHEBANIAH, HODIJAH, KELITA, PELAIAH, HANAN,# 11 MICHA, REHOB, HASHABIAH,E"# 12 ZACCUR, SHEREBIAH, SHEBANIAH,# 13 HODIJAH, BANI, BENINU.EE# 14 THE CHIEF OF THE PEOPLE; PAROSH, PAHATHMOAB, ELAM, ZATTHU, BANI,S# 15 BUNNI, AZGAD, BEBAI, # 16 ADONIJAH, BIGVAI, ADIN,# 17 ATER, HIZKIJAH, AZZUR,# 18 HODIJAH, HASHUM, BEZAI,# 19 HARIPH, ANATHOTH, NEBAI,A # 20 MAGPIASH, MESHULLAM, HEZIR, # 21 MESHEZABEEL, ZADOK, JADDUA,# 22 PELATIAH, HANAN, ANAIAH, # 23 HOSHEA, HANANIAH, HASHUB,# 24 HALLOHESH, PILEHA, SHOBEK,A # 25 REHUM, HASHABNAH, MAASEIAH,# 26 AND AHIJAH, HANAN, ANAN,Z# 27 MALLUCH, HARIM, BAANAH.K# 28 AND THE REST OF THE PEOPLE, THE PRIESTS, THE LEVITES, THE PORTERS, THEBL SINGERS, THE NETHINIMS, AND ALL THEY THAT HAD SEPARATED THEMSELVES FROM THEL PEOPLE OF THE LANDS UNTO THE LAW OF GOD, THEIR WIVES, THEIR SONS, AND THEIRA DAUGHTERS, EVERY ONE HAVING KNOWLEDGE, AND HAVING UNDERSTANDING;LJ# 29 THEY CLAVE TO THEIR BRETHREN, THEIR NOBLES, AND ENTERED INTO A CURSE,L AND INTO AN OATH, TO WALK IN GODS LAW, WHICH WAS GIVEN BY MOSES THE SERVANTM OF GOD, AND TO OBSERVE AND DO ALL THE COMMANDMENTS OF THE LORD OUR LORD, ANDT HIS JUDGMENTS AND HIS STATUTES;J# 30 AND THAT WE WOULD NOT GIVE OUR DAUGHTERS UNTO THE PEOPLE OF THE LAND,' NOT TAKE THEIR DAUGHTERS FOR OUR SONS:NL# 31 AND IF THE PEOPLE OF THE LAND BRING WARE OR ANY VICTUALS ON THE SABBATHM DAY TO SELL, THAT WE WOULD NOT BUY IT OF THEM ON THE SABBATH, OR ON THE HOLYHI DAY: AND THAT WE WOULD LEAVE THE SEVENTH YEAR, AND THE EXACTION OF EVERY  DEBT.H# 32 ALSO WE MADE ORDINANCES FOR US, TO CHARGE OURSELVES YEARLY WITH THE@ THIRD PART OF A SHEKEL FOR THE SERVICE OF THE HOUSE OF OUR GOD;H# 33 FOR THE SHEWBREAD, AND FOR THE CONTINUAL MEAT OFFERING, AND FOR THEI CONTINUAL B00n5V4D%5%T6%! !URNT OFFERING, OF THE SABBATHS, OF THE NEW MOONS, FOR THE SETEF FEASTS, AND FOR THE HOLY THINGS, AND FOR THE SIN OFFERINGS TO MAKE AND ATONEMENT FOR ISRAEL, AND FOR ALL THE WORK OF THE HOUSE OF OUR GOD.M# 34 AND WE CAST THE LOTS AMONG THE PRIESTS, THE LEVITES, AND THE PEOPLE, FOR.N THE WOOD OFFERING, TO BRING IT INTO THE HOUSE OF OUR GOD, AFTER THE HOUSES OFL OUR FATHERS, AT TIMES APPOINTED YEAR BY YEAR, TO BURN UPON THE ALTAR OF THE+ LORD OUR GOD, AS IT IS WRITTEN IN THE LAW:AK# 35 AND TO BRING THE FIRSTFRUITS OF OUR GROUND, AND THE FIRSTFRUITS OF ALL > FRUIT OF ALL TREES, YEAR BY YEAR, UNTO THE HOUSE OF THE LORD:K# 36 ALSO THE FIRSTBORN OF OUR SONS, AND OF OUR CATTLE, AS IT IS WRITTEN IN L THE LAW, AND THE FIRSTLINGS OF OUR HERDS AND OF OUR FLOCKS, TO BRING TO THEJ HOUSE OF OUR GOD, UNTO THE PRIESTS THAT MINISTER IN THE HOUSE OF OUR GOD:C# 37 AND THAT WE SHOULD BRING THE FIRSTFRUITS OF OUR DOUGH, AND OURNN OFFERINGS, AND THE FRUIT OF ALL MANNER OF TREES, OF WINE AND OF OIL, UNTO THEH PRIESTS, TO THE CHAMBERS OF THE HOUSE OF OUR GOD; AND THE TITHES OF OURL GROUND UNTO THE LEVITES, THAT THE SAME LEVITES MIGHT HAVE THE TITHES IN ALL THE CITIES OF OUR TILLAGE.AH# 38 AND THE PRIEST THE SON OF AARON SHALL BE WITH THE LEVITES, WHEN THEL LEVITES TAKE TITHES: AND THE LEVITES SHALL BRING UP THE TITHE OF THE TITHESE UNTO THE HOUSE OF OUR GOD, TO THE CHAMBERS, INTO THE TREASURE HOUSE.UH# 39 FOR THE CHILDREN OF ISRAEL AND THE CHILDREN OF LEVI SHALL BRING THEM OFFERING OF THE CORN, OF THE NEW WINE, AND THE OIL, UNTO THE CHAMBERS, WHERE I ARE THE VESSELS OF THE SANCTUARY, AND THE PRIESTS THAT MINISTER, AND THE H PORTERS, AND THE SINGERS: AND WE WILL NOT FORSAKE THE HOUSE OF OUR GOD. = CHAPTER 11 FK# 1 AND THE RULERS OF THE PEOPLE DWELT AT JERUSALEM: THE REST OF THE PEOPLEIM ALSO CAST LOTS, TO BRING ONE OF TEN TO DWELL IN JERUSALEM THE HOLY CITY, ANDC% NINE PARTS TO DWELL IN OTHER CITIES.9L# 2 AND THE PEOPLE BLESSED ALL THE MEN, THAT WILLINGLY OFFERED THEMSELVES TO DWELL AT JERUSALEM.K# 3 NOW THESE ARE THE CHIEF OF THE PROVINCE THAT DWELT IN JERUSALEM: BUT INCJ THE CITIES OF JUDAH DWELT EVERY ONE IN HIS POSSESSION IN THEIR CITIES, TOF WIT, ISRAEL, THE PRIESTS, AND THE LEVITES, AND THE NETHINIMS, AND THE CHILDREN OF SOLOMONS SERVANTS.EG# 4 AND AT JERUSALEM DWELT CERTAIN OF THE CHILDREN OF JUDAH, AND OF THE K CHILDREN OF BENJAMIN. OF THE CHILDREN OF JUDAH; ATHAIAH THE SON OF UZZIAH,9L THE SON OF ZECHARIAH, THE SON OF AMARIAH, THE SON OF SHEPHATIAH, THE SON OF& MAHALALEEL, OF THE CHILDREN OF PEREZ;L# 5 AND MAASEIAH THE SON OF BARUCH, THE SON OF COLHOZEH, THE SON OF HAZAIAH,H THE SON OF ADAIAH, THE SON OF JOIARIB, THE SON OF ZECHARIAH, THE SON OF SHILONI.,C# 6 ALL THE SONS OF PEREZ THAT DWELT AT JERUSALEM WERE FOUR HUNDREDE" THREESCORE AND EIGHT VALIANT MEN.K# 7 AND THESE ARE THE SONS OF BENJAMIN; SALLU THE SON OF MESHULLAM, THE SON N OF JOED, THE SON OF PEDAIAH, THE SON OF KOLAIAH, THE SON OF MAASEIAH, THE SON OF ITHIEL, THE SON OF JESAIAH. @# 8 AND AFTER HIM GABBAI, SALLAI, NINE HUNDRED TWENTY AND EIGHT.G# 9 AND JOEL THE SON OF ZICHRI WAS THEIR OVERSEER: AND JUDAH THE SON OFO! SENUAH WAS SECOND OVER THE CITY.O8# 10 OF THE PRIESTS: JEDAIAH THE SON OF JOIARIB, JACHIN.L# 11 SERAIAH THE SON OF HILKIAH, THE SON OF MESHULLAM, THE SON OF ZADOK, THEG SON OF MERAIOTH, THE SON OF AHITUB, WAS THE RULER OF THE HOUSE OF GOD.LI# 12 AND THEIR BRETHREN THAT DID THE WORK OF THE HOUSE WERE EIGHT HUNDREDML TWENTY AND TWO: AND ADAIAH THE SON OF JEROHAM, THE SON OF PELALIAH, THE SONG OF AMZI, THE SON OF ZECHARIAH, THE SON OF PASHUR, THE SON OF MALCHIAH.SK# 13 AND HIS BRETHREN, CHIEF OF THE FATHERS, TWO HUNDRED FORTY AND TWO: AND L AMASHAI THE SON OF AZAREEL, THE SON OF AHASAI, THE SON OF MESHILLEMOTH, THE SON OF IMMER,K# 14 AND THEIR BRETHREN, MIGHTY MEN OF VALOUR, AN HUNDRED TWENTY AND EIGHT:WA AND THEIR OVERSEER WAS ZABDIEL, THE SON OF ONE OF THE GREAT MEN.DM# 15 ALSO OF THE LEVITES: SHEMAIAH THE SON OF HASHUB, THE SON OF AZRIKAM, THE ' SON OF HASHABIAH, THE SON OF BUNNI; ITE# 16 AND SHA00n54<%X>%+%O-%TADATADATABBETHAI AND JOZABAD, OF THE CHIEF OF THE LEVITES, HAD THES7 OVERSIGHT OF THE OUTWARD BUSINESS OF THE HOUSE OF GOD.DL# 17 AND MATTANIAH THE SON OF MICHA, THE SON OF ZABDI, THE SON OF ASAPH, WASL THE PRINCIPAL TO BEGIN THE THANKSGIVING IN PRAYER: AND BAKBUKIAH THE SECONDN AMONG HIS BRETHREN, AND ABDA THE SON OF SHAMMUA, THE SON OF GALAL, THE SON OF JEDUTHUN.J# 18 ALL THE LEVITES IN THE HOLY CITY WERE TWO HUNDRED FOURSCORE AND FOUR.J# 19 MOREOVER THE PORTERS, AKKUB, TALMON, AND THEIR BRETHREN THAT KEPT THE( GATES, WERE AN HUNDRED SEVENTY AND TWO.L# 20 AND THE RESIDUE OF ISRAEL, OF THE PRIESTS, AND THE LEVITES, WERE IN ALL3 THE CITIES OF JUDAH, EVERY ONE IN HIS INHERITANCE.SG# 21 BUT THE NETHINIMS DWELT IN OPHEL: AND ZIHA AND GISPA WERE OVER THE NETHINIMS. L# 22 THE OVERSEER ALSO OF THE LEVITES AT JERUSALEM WAS UZZI THE SON OF BANI,M THE SON OF HASHABIAH, THE SON OF MATTANIAH, THE SON OF MICHA. OF THE SONS OFU? ASAPH, THE SINGERS WERE OVER THE BUSINESS OF THE HOUSE OF GOD.HM# 23 FOR IT WAS THE KINGS COMMANDMENT CONCERNING THEM, THAT A CERTAIN PORTIONT. SHOULD BE FOR THE SINGERS, DUE FOR EVERY DAY.K# 24 AND PETHAHIAH THE SON OF MESHEZABEEL, OF THE CHILDREN OF ZERAH THE SON1F OF JUDAH, WAS AT THE KINGS HAND IN ALL MATTERS CONCERNING THE PEOPLE.K# 25 AND FOR THE VILLAGES, WITH THEIR FIELDS, SOME OF THE CHILDREN OF JUDAHOL DWELT AT KIRJATHARBA, AND IN THE VILLAGES THEREOF, AND AT DIBON, AND IN THEA VILLAGES THEREOF, AND AT JEKABZEEL, AND IN THE VILLAGES THEREOF,S6# 26 AND AT JESHUA, AND AT MOLADAH, AND AT BETHPHELET,F# 27 AND AT HAZARSHUAL, AND AT BEERSHEBA, AND IN THE VILLAGES THEREOF,@# 28 AND AT ZIKLAG, AND AT MEKONAH, AND IN THE VILLAGES THEREOF,4# 29 AND AT ENRIMMON, AND AT ZAREAH, AND AT JARMUTH,G# 30 ZANOAH, ADULLAM, AND IN THEIR VILLAGES, AT LACHISH, AND THE FIELDS E THEREOF, AT AZEKAH, AND IN THE VILLAGES THEREOF. AND THEY DWELT FROMD% BEERSHEBA UNTO THE VALLEY OF HINNOM. M# 31 THE CHILDREN ALSO OF BENJAMIN FROM GEBA DWELT AT MICHMASH, AND AIJA, AND BETHEL, AND IN THEIR VILLAGES.H## 32 AND AT ANATHOTH, NOB, ANANIAH,A# 33 HAZOR, RAMAH, GITTAIM, # 34 HADID, ZEBOIM, NEBALLAT,A+# 35 LOD, AND ONO, THE VALLEY OF CRAFTSMEN.AA# 36 AND OF THE LEVITES WERE DIVISIONS IN JUDAH, AND IN BENJAMIN. = CHAPTER 12 UN# 1 NOW THESE ARE THE PRIESTS AND THE LEVITES THAT WENT UP WITH ZERUBBABEL THE7 SON OF SHEALTIEL, AND JESHUA: SERAIAH, JEREMIAH, EZRA,E# 2 AMARIAH, MALLUCH, HATTUSH, # 3 SHECHANIAH, REHUM, MEREMOTH,# 4 IDDO, GINNETHO, ABIJAH, # 5 MIAMIN, MAADIAH, BILGAH,## 6 SHEMAIAH, AND JOIARIB, JEDAIAH,OM# 7 SALLU, AMOK, HILKIAH, JEDAIAH. THESE WERE THE CHIEF OF THE PRIESTS AND OFA& THEIR BRETHREN IN THE DAYS OF JESHUA.H# 8 MOREOVER THE LEVITES: JESHUA, BINNUI, KADMIEL, SHEREBIAH, JUDAH, ANDA MATTANIAH, WHICH WAS OVER THE THANKSGIVING, HE AND HIS BRETHREN.TJ# 9 ALSO BAKBUKIAH AND UNNI, THEIR BRETHREN, WERE OVER AGAINST THEM IN THE WATCHES.H# 10 AND JESHUA BEGAT JOIAKIM, JOIAKIM ALSO BEGAT ELIASHIB, AND ELIASHIB BEGAT JOIADA,:# 11 AND JOIADA BEGAT JONATHAN, AND JONATHAN BEGAT JADDUA.J# 12 AND IN THE DAYS OF JOIAKIM WERE PRIESTS, THE CHIEF OF THE FATHERS: OF) SERAIAH, MERAIAH; OF JEREMIAH, HANANIAH;Y/# 13 OF EZRA, MESHULLAM; OF AMARIAH, JEHOHANAN;I/# 14 OF MELICU, JONATHAN; OF SHEBANIAH, JOSEPH; )# 15 OF HARIM, ADNA; OF MERAIOTH, HELKAI; 1# 16 OF IDDO, ZECHARIAH; OF GINNETHON, MESHULLAM;H8# 17 OF ABIJAH, ZICHRI; OF MINIAMIN, OF MOADIAH, PILTAI:1# 18 OF BILGAH, SHAMMUA; OF SHEMAIAH, JEHONATHAN;N0# 19 AND OF JOIARIB, MATTENAI; OF JEDAIAH, UZZI;&# 20 OF SALLAI, KALLAI; OF AMOK, EBER;2# 21 OF HILKIAH, HASHABIAH; OF JEDAIAH, NETHANEEL.J# 22 THE LEVITES IN THE DAYS OF ELIASHIB, JOIADA, AND JOHANAN, AND JADDUA,M WERE RECORDED CHIEF OF THE FATHERS: ALSO THE PRIESTS, TO THE REIGN OF DARIUS THE PERSIAN.OL# 23 THE SONS OF LEVI, THE CHIEF OF THE FATHERS, WERE WRITTEN IN THE BOOK OFD THE CHRONICLES, EVEN UNTIL THE DAYS OF JOHANAN THE SON OF ELIASHIB.K# 24 AND THE CHIEF OF THE LEVITES: HASHABIAH, SHEREBIAH, AND JESHUA THE SONEI OF KADMIEL, WITH THEIR BRETHREN OVER AGAINS00n5V4D%5%T6%! !T THEM, TO PRAISE AND TO GIVEKH THANKS, ACCORDING TO THE COMMANDMENT OF DAVID THE MAN OF GOD, WARD OVER AGAINST WARD.F# 25 MATTANIAH, AND BAKBUKIAH, OBADIAH, MESHULLAM, TALMON, AKKUB, WERE9 PORTERS KEEPING THE WARD AT THE THRESHOLDS OF THE GATES.SM# 26 THESE WERE IN THE DAYS OF JOIAKIM THE SON OF JESHUA, THE SON OF JOZADAK,CN AND IN THE DAYS OF NEHEMIAH THE GOVERNOR, AND OF EZRA THE PRIEST, THE SCRIBE.K# 27 AND AT THE DEDICATION OF THE WALL OF JERUSALEM THEY SOUGHT THE LEVITESIL OUT OF ALL THEIR PLACES, TO BRING THEM TO JERUSALEM, TO KEEP THE DEDICATIONH WITH GLADNESS, BOTH WITH THANKSGIVINGS, AND WITH SINGING, WITH CYMBALS, PSALTERIES, AND WITH HARPS.J# 28 AND THE SONS OF THE SINGERS GATHERED THEMSELVES TOGETHER, BOTH OUT OFN THE PLAIN COUNTRY ROUND ABOUT JERUSALEM, AND FROM THE VILLAGES OF NETOPHATHI;E# 29 ALSO FROM THE HOUSE OF GILGAL, AND OUT OF THE FIELDS OF GEBA ANDAK AZMAVETH: FOR THE SINGERS HAD BUILDED THEM VILLAGES ROUND ABOUT JERUSALEM. J# 30 AND THE PRIESTS AND THE LEVITES PURIFIED THEMSELVES, AND PURIFIED THE% PEOPLE, AND THE GATES, AND THE WALL.EL# 31 THEN I BROUGHT UP THE PRINCES OF JUDAH UPON THE WALL, AND APPOINTED TWOM GREAT COMPANIES OF THEM THAT GAVE THANKS, WHEREOF ONE WENT ON THE RIGHT HANDT$ UPON THE WALL TOWARD THE DUNG GATE:D# 32 AND AFTER THEM WENT HOSHAIAH, AND HALF OF THE PRINCES OF JUDAH,&# 33 AND AZARIAH, EZRA, AND MESHULLAM,5# 34 JUDAH, AND BENJAMIN, AND SHEMAIAH, AND JEREMIAH,EM# 35 AND CERTAIN OF THE PRIESTS SONS WITH TRUMPETS; NAMELY, ZECHARIAH THE SONEM OF JONATHAN, THE SON OF SHEMAIAH, THE SON OF MATTANIAH, THE SON OF MICHAIAH,E% THE SON OF ZACCUR, THE SON OF ASAPH:NE# 36 AND HIS BRETHREN, SHEMAIAH, AND AZARAEL, MILALAI, GILALAI, MAAI,,L NETHANEEL, AND JUDAH, HANANI, WITH THE MUSICAL INSTRUMENTS OF DAVID THE MAN) OF GOD, AND EZRA THE SCRIBE BEFORE THEM.FK# 37 AND AT THE FOUNTAIN GATE, WHICH WAS OVER AGAINST THEM, THEY WENT UP BYNN THE STAIRS OF THE CITY OF DAVID, AT THE GOING UP OF THE WALL, ABOVE THE HOUSE- OF DAVID, EVEN UNTO THE WATER GATE EASTWARD.OK# 38 AND THE OTHER COMPANY OF THEM THAT GAVE THANKS WENT OVER AGAINST THEM,EL AND I AFTER THEM, AND THE HALF OF THE PEOPLE UPON THE WALL, FROM BEYOND THE0 TOWER OF THE FURNACES EVEN UNTO THE BROAD WALL;J# 39 AND FROM ABOVE THE GATE OF EPHRAIM, AND ABOVE THE OLD GATE, AND ABOVEK THE FISH GATE, AND THE TOWER OF HANANEEL, AND THE TOWER OF MEAH, EVEN UNTOS9 THE SHEEP GATE: AND THEY STOOD STILL IN THE PRISON GATE. M# 40 SO STOOD THE TWO COMPANIES OF THEM THAT GAVE THANKS IN THE HOUSE OF GOD,T+ AND I, AND THE HALF OF THE RULERS WITH ME:HF# 41 AND THE PRIESTS; ELIAKIM, MAASEIAH, MINIAMIN, MICHAIAH, ELIOENAI,( ZECHARIAH, AND HANANIAH, WITH TRUMPETS;J# 42 AND MAASEIAH, AND SHEMAIAH, AND ELEAZAR, AND UZZI, AND JEHOHANAN, ANDI MALCHIJAH, AND ELAM, AND EZER. AND THE SINGERS SANG LOUD, WITH JEZRAHIAH  THEIR OVERSEER.K# 43 ALSO THAT DAY THEY OFFERED GREAT SACRIFICES, AND REJOICED: FOR GOD HADTL MADE THEM REJOICE WITH GREAT JOY: THE WIVES ALSO AND THE CHILDREN REJOICED:6 SO THAT THE JOY OF JERUSALEM WAS HEARD EVEN AFAR OFF.C# 44 AND AT THAT TIME WERE SOME APPOINTED OVER THE CHAMBERS FOR THEMJ TREASURES, FOR THE OFFERINGS, FOR THE FIRSTFRUITS, AND FOR THE TITHES, TOM GATHER INTO THEM OUT OF THE FIELDS OF THE CITIES THE PORTIONS OF THE LAW FORLH THE PRIESTS AND LEVITES: FOR JUDAH REJOICED FOR THE PRIESTS AND FOR THE LEVITES THAT WAITED.EM# 45 AND BOTH THE SINGERS AND THE PORTERS KEPT THE WARD OF THEIR GOD, AND THE H WARD OF THE PURIFICATION, ACCORDING TO THE COMMANDMENT OF DAVID, AND OF SOLOMON HIS SON. F# 46 FOR IN THE DAYS OF DAVID AND ASAPH OF OLD THERE WERE CHIEF OF THE8 SINGERS, AND SONGS OF PRAISE AND THANKSGIVING UNTO GOD.K# 47 AND ALL ISRAEL IN THE DAYS OF ZERUBBABEL, AND IN THE DAYS OF NEHEMIAH,TM GAVE THE PORTIONS OF THE SINGERS AND THE PORTERS, EVERY DAY HIS PORTION: ANDFN THEY SANCTIFIED HOLY THINGS UNTO THE LEVITES; AND THE LEVITES SANCTIFIED THEM UNTO THE CHILDREN OF AARON. = CHAPTER 13 M# 1 ON THAT DAY THEY READ IN THE BOOK OF MOSES IN THE AUDIENCE OF THE PEOPLE;L AND00n54<%X>%+%O-%TADATADATA THEREIN WAS FOUND WRITTEN, THAT THE AMMONITE AND THE MOABITE SHOULD NOT, COME INTO THE CONGREGATION OF GOD FOR EVER;J# 2 BECAUSE THEY MET NOT THE CHILDREN OF ISRAEL WITH BREAD AND WITH WATER,J BUT HIRED BALAAM AGAINST THEM, THAT HE SHOULD CURSE THEM: HOWBEIT OUR GOD" TURNED THE CURSE INTO A BLESSING.I# 3 NOW IT CAME TO PASS, WHEN THEY HAD HEARD THE LAW, THAT THEY SEPARATED% FROM ISRAEL ALL THE MIXED MULTITUDE. M# 4 AND BEFORE THIS, ELIASHIB THE PRIEST, HAVING THE OVERSIGHT OF THE CHAMBERP1 OF THE HOUSE OF OUR GOD, WAS ALLIED UNTO TOBIAH:NJ# 5 AND HE HAD PREPARED FOR HIM A GREAT CHAMBER, WHERE AFORETIME THEY LAIDM THE MEAT OFFERINGS, THE FRANKINCENSE, AND THE VESSELS, AND THE TITHES OF THEBH CORN, THE NEW WINE, AND THE OIL, WHICH WAS COMMANDED TO BE GIVEN TO THEM LEVITES, AND THE SINGERS, AND THE PORTERS; AND THE OFFERINGS OF THE PRIESTS.DM# 6 BUT IN ALL THIS TIME WAS NOT I AT JERUSALEM: FOR IN THE TWO AND THIRTIETH K YEAR OF ARTAXERXES KING OF BABYLON CAME I UNTO THE KING, AND AFTER CERTAINH# DAYS OBTAINED I LEAVE OF THE KING:OM# 7 AND I CAME TO JERUSALEM, AND UNDERSTOOD OF THE EVIL THAT ELIASHIB DID FORAF TOBIAH, IN PREPARING HIM A CHAMBER IN THE COURTS OF THE HOUSE OF GOD.M# 8 AND IT GRIEVED ME SORE: THEREFORE I CAST FORTH ALL THE HOUSEHOLD STUFF TOO TOBIAH OUT OF THE CHAMBER.RK# 9 THEN I COMMANDED, AND THEY CLEANSED THE CHAMBERS: AND THITHER BROUGHT IIF AGAIN THE VESSELS OF THE HOUSE OF GOD, WITH THE MEAT OFFERING AND THE FRANKINCENSE.H# 10 AND I PERCEIVED THAT THE PORTIONS OF THE LEVITES HAD NOT BEEN GIVENN THEM: FOR THE LEVITES AND THE SINGERS, THAT DID THE WORK, WERE FLED EVERY ONE TO HIS FIELD.H# 11 THEN CONTENDED I WITH THE RULERS, AND SAID, WHY IS THE HOUSE OF GODE FORSAKEN? AND I GATHERED THEM TOGETHER, AND SET THEM IN THEIR PLACE.OJ# 12 THEN BROUGHT ALL JUDAH THE TITHE OF THE CORN AND THE NEW WINE AND THE OIL UNTO THE TREASURIES.HI# 13 AND I MADE TREASURERS OVER THE TREASURIES, SHELEMIAH THE PRIEST, ANDEN ZADOK THE SCRIBE, AND OF THE LEVITES, PEDAIAH: AND NEXT TO THEM WAS HANAN THEI SON OF ZACCUR, THE SON OF MATTANIAH: FOR THEY WERE COUNTED FAITHFUL, AND 4 THEIR OFFICE WAS TO DISTRIBUTE UNTO THEIR BRETHREN.K# 14 REMEMBER ME, O MY GOD, CONCERNING THIS, AND WIPE NOT OUT MY GOOD DEEDS G THAT I HAVE DONE FOR THE HOUSE OF MY GOD, AND FOR THE OFFICES THEREOF. L# 15 IN THOSE DAYS SAW I IN JUDAH SOME TREADING WINE PRESSES ON THE SABBATH,K AND BRINGING IN SHEAVES, AND LADING ASSES; AS ALSO WINE, GRAPES, AND FIGS,DL AND ALL MANNER OF BURDENS, WHICH THEY BROUGHT INTO JERUSALEM ON THE SABBATHI DAY: AND I TESTIFIED AGAINST THEM IN THE DAY WHEREIN THEY SOLD VICTUALS.TM# 16 THERE DWELT MEN OF TYRE ALSO THEREIN, WHICH BROUGHT FISH, AND ALL MANNER D OF WARE, AND SOLD ON THE SABBATH UNTO THE CHILDREN OF JUDAH, AND IN JERUSALEM.FM# 17 THEN I CONTENDED WITH THE NOBLES OF JUDAH, AND SAID UNTO THEM, WHAT EVILT7 THING IS THIS THAT YE DO, AND PROFANE THE SABBATH DAY?EL# 18 DID NOT YOUR FATHERS THUS, AND DID NOT OUR GOD BRING ALL THIS EVIL UPONM US, AND UPON THIS CITY? YET YE BRING MORE WRATH UPON ISRAEL BY PROFANING THE SABBATH.MK# 19 AND IT CAME TO PASS, THAT WHEN THE GATES OF JERUSALEM BEGAN TO BE DARKHK BEFORE THE SABBATH, I COMMANDED THAT THE GATES SHOULD BE SHUT, AND CHARGED F THAT THEY SHOULD NOT BE OPENED TILL AFTER THE SABBATH: AND SOME OF MYN SERVANTS SET I AT THE GATES, THAT THERE SHOULD NO BURDEN BE BROUGHT IN ON THE SABBATH DAY.ED# 20 SO THE MERCHANTS AND SELLERS OF ALL KIND OF WARE LODGED WITHOUT JERUSALEM ONCE OR TWICE.J# 21 THEN I TESTIFIED AGAINST THEM, AND SAID UNTO THEM, WHY LODGE YE ABOUTK THE WALL? IF YE DO SO AGAIN, I WILL LAY HANDS ON YOU. FROM THAT TIME FORTHG" CAME THEY NO MORE ON THE SABBATH.I# 22 AND I COMMANDED THE LEVITES THAT THEY SHOULD CLEANSE THEMSELVES, AND G THAT THEY SHOULD COME AND KEEP THE GATES, TO SANCTIFY THE SABBATH DAY.TK REMEMBER ME, O MY GOD, CONCERNING THIS ALSO, AND SPARE ME ACCORDING TO THE  GREATNESS OF THY MERCY.G# 23 IN THOSE DAYS ALSO SAW I JEWS THAT HAD MARRIED WIVES OF ASHDOD, OF1 AMMON, AND OF MOAB:I# 2400n 5o#5D%5%T6%! ! AND THEIR CHILDREN SPAKE HALF IN THE SPEECH OF ASHDOD, AND COULD NOTAJ SPEAK IN THE JEWS LANGUAGE, BUT ACCORDING TO THE LANGUAGE OF EACH PEOPLE.K# 25 AND I CONTENDED WITH THEM, AND CURSED THEM, AND SMOTE CERTAIN OF THEM,VM AND PLUCKED OFF THEIR HAIR, AND MADE THEM SWEAR BY GOD, SAYING, YE SHALL NOTYN GIVE YOUR DAUGHTERS UNTO THEIR SONS, NOR TAKE THEIR DAUGHTERS UNTO YOUR SONS, OR FOR YOURSELVES.EG# 26 DID NOT SOLOMON KING OF ISRAEL SIN BY THESE THINGS? YET AMONG MANY,M NATIONS WAS THERE NO KING LIKE HIM, WHO WAS BELOVED OF HIS GOD, AND GOD MADE N HIM KING OVER ALL ISRAEL: NEVERTHELESS EVEN HIM DID OUTLANDISH WOMEN CAUSE TO SIN.AL# 27 SHALL WE THEN HEARKEN UNTO YOU TO DO ALL THIS GREAT EVIL, TO TRANSGRESS+ AGAINST OUR GOD IN MARRYING STRANGE WIVES?ML# 28 AND ONE OF THE SONS OF JOIADA, THE SON OF ELIASHIB THE HIGH PRIEST, WASF SON IN LAW TO SANBALLAT THE HORONITE: THEREFORE I CHASED HIM FROM ME.K# 29 REMEMBER THEM, O MY GOD, BECAUSE THEY HAVE DEFILED THE PRIESTHOOD, ANDO4 THE COVENANT OF THE PRIESTHOOD, AND OF THE LEVITES.L# 30 THUS CLEANSED I THEM FROM ALL STRANGERS, AND APPOINTED THE WARDS OF THE4 PRIESTS AND THE LEVITES, EVERY ONE IN HIS BUSINESS;L# 31 AND FOR THE WOOD OFFERING, AT TIMES APPOINTED, AND FOR THE FIRSTFRUITS.! REMEMBER ME, O MY GOD, FOR GOOD.OF THE SONS OF JOIADA, THE SON OF ELIASHIB THE HIGH PRIEST, WASF SON IN LAW TO SANBALLAT THE HORONITE: THEREFORE I CHASED HIM FROM ME.K# 29 REMEMBER THEM, O MY GOD, BECAUSE THEY HAVE DEFILED THE PRIESTHOOD, ANDO4 THE COVENANT OF THE P* BOOK17 ESTHER = CHAPTER 1 J# 1 NOW IT CAME TO PASS IN THE DAYS OF AHASUERUS, (THIS IS AHASUERUS WHICHM REIGNED, FROM INDIA EVEN UNTO ETHIOPIA, OVER AN HUNDRED AND SEVEN AND TWENTYF PROVINCES:)H# 2 THAT IN THOSE DAYS, WHEN THE KING AHASUERUS SAT ON THE THRONE OF HIS* KINGDOM, WHICH WAS IN SHUSHAN THE PALACE,L# 3 IN THE THIRD YEAR OF HIS REIGN, HE MADE A FEAST UNTO ALL HIS PRINCES ANDK HIS SERVANTS; THE POWER OF PERSIA AND MEDIA, THE NOBLES AND PRINCES OF THEE PROVINCES, BEING BEFORE HIM:TK# 4 WHEN HE SHEWED THE RICHES OF HIS GLORIOUS KINGDOM AND THE HONOUR OF HISAA EXCELLENT MAJESTY MANY DAYS, EVEN AN HUNDRED AND FOURSCORE DAYS.EH# 5 AND WHEN THESE DAYS WERE EXPIRED, THE KING MADE A FEAST UNTO ALL THEK PEOPLE THAT WERE PRESENT IN SHUSHAN THE PALACE, BOTH UNTO GREAT AND SMALL, < SEVEN DAYS, IN THE COURT OF THE GARDEN OF THE KINGS PALACE;L# 6 WHERE WERE WHITE, GREEN, AND BLUE, HANGINGS, FASTENED WITH CORDS OF FINEN LINEN AND PURPLE TO SILVER RINGS AND PILLARS OF MARBLE: THE BEDS WERE OF GOLDL AND SILVER, UPON A PAVEMENT OF RED, AND BLUE, AND WHITE, AND BLACK, MARBLE.K# 7 AND THEY GAVE THEM DRINK IN VESSELS OF GOLD, (THE VESSELS BEING DIVERSETN ONE FROM ANOTHER,) AND ROYAL WINE IN ABUNDANCE, ACCORDING TO THE STATE OF THE KING.J# 8 AND THE DRINKING WAS ACCORDING TO THE LAW; NONE DID COMPEL: FOR SO THEI KING HAD APPOINTED TO ALL THE OFFICERS OF HIS HOUSE, THAT THEY SHOULD DOH" ACCORDING TO EVERY MANS PLEASURE.M# 9 ALSO VASHTI THE QUEEN MADE A FEAST FOR THE WOMEN IN THE ROYAL HOUSE WHICHD BELONGED TO KING AHASUERUS.K# 10 ON THE SEVENTH DAY, WHEN THE HEART OF THE KING WAS MERRY WITH WINE, HEKM COMMANDED MEHUMAN, BIZTHA, HARBONA, BIGTHA, AND ABAGTHA, ZETHAR, AND CARCAS, J THE SEVEN CHAMBERLAINS THAT SERVED IN THE PRESENCE OF AHASUERUS THE KING,L# 11 TO BRING VASHTI THE QUEEN BEFORE THE KING WITH THE CROWN ROYAL, TO SHEWD THE PEOPLE AND THE PRINCES HER BEAUTY: FOR SHE WAS FAIR TO LOOK ON.I# 12 BUT THE QUEEN VASHTI REFUSED TO COME AT THE KINGS COMMANDMENT BY HISIN CHAMBERLAINS: THEREFORE WAS THE KING VERY WROTH, AND HIS ANGER BURNED IN HIM.J# 13 THEN THE KING SAID TO THE WISE MEN, WHICH KNEW THE TIMES, (FOR SO WAS8 THE KINGS MANNER TOWARD ALL THAT KNEW LAW AND JUDGMENT:K# 14 AND THE NEXT UNTO HIM WAS CARSHENA, SHETHAR, ADMATHA, TARSHISH, MERES, K MARSENA, AND MEMUCAN, THE SEVEN PRINCES OF PERSIA AND MEDIA, WHICH SAW THET5 KINGS FACE, AND WHICH SAT THE FIRST IN THE KINGDOM;)TI# 15 WHAT SHALL WE DO UNTO THE QUEEN VASHTI ACCORDING TO LAW, BECAUSE SHEEN HATH NOT PERFORMED THE COMMAN00o(54<%X>%+%O-%TADATADATADMENT OF THE KING AHASUERUS BY THE CHAMBERLAINS?K# 16 AND MEMUCAN ANSWERED BEFORE THE KING AND THE PRINCES, VASHTI THE QUEENON HATH NOT DONE WRONG TO THE KING ONLY, BUT ALSO TO ALL THE PRINCES, AND TO ALL@ THE PEOPLE THAT ARE IN ALL THE PROVINCES OF THE KING AHASUERUS.I# 17 FOR THIS DEED OF THE QUEEN SHALL COME ABROAD UNTO ALL WOMEN, SO THATTL THEY SHALL DESPISE THEIR HUSBANDS IN THEIR EYES, WHEN IT SHALL BE REPORTED,K THE KING AHASUERUS COMMANDED VASHTI THE QUEEN TO BE BROUGHT IN BEFORE HIM,H BUT SHE CAME NOT.L# 18 LIKEWISE SHALL THE LADIES OF PERSIA AND MEDIA SAY THIS DAY UNTO ALL THEK KINGS PRINCES, WHICH HAVE HEARD OF THE DEED OF THE QUEEN. THUS SHALL THEREB# ARISE TOO MUCH CONTEMPT AND WRATH.LJ# 19 IF IT PLEASE THE KING, LET THERE GO A ROYAL COMMANDMENT FROM HIM, ANDK LET IT BE WRITTEN AMONG THE LAWS OF THE PERSIANS AND THE MEDES, THAT IT BELN NOT ALTERED, THAT VASHTI COME NO MORE BEFORE KING AHASUERUS; AND LET THE KING< GIVE HER ROYAL ESTATE UNTO ANOTHER THAT IS BETTER THAN SHE.E# 20 AND WHEN THE KINGS DECREE WHICH HE SHALL MAKE SHALL BE PUBLISHEDDJ THROUGHOUT ALL HIS EMPIRE, (FOR IT IS GREAT,) ALL THE WIVES SHALL GIVE TO0 THEIR HUSBANDS HONOUR, BOTH TO GREAT AND SMALL.F# 21 AND THE SAYING PLEASED THE KING AND THE PRINCES; AND THE KING DID" ACCORDING TO THE WORD OF MEMUCAN:J# 22 FOR HE SENT LETTERS INTO ALL THE KINGS PROVINCES, INTO EVERY PROVINCEL ACCORDING TO THE WRITING THEREOF, AND TO EVERY PEOPLE AFTER THEIR LANGUAGE,H THAT EVERY MAN SHOULD BEAR RULE IN HIS OWN HOUSE, AND THAT IT SHOULD BE5 PUBLISHED ACCORDING TO THE LANGUAGE OF EVERY PEOPLE.R = CHAPTER 2 I# 1 AFTER THESE THINGS, WHEN THE WRATH OF KING AHASUERUS WAS APPEASED, HEOL REMEMBERED VASHTI, AND WHAT SHE HAD DONE, AND WHAT WAS DECREED AGAINST HER.L# 2 THEN SAID THE KINGS SERVANTS THAT MINISTERED UNTO HIM, LET THERE BE FAIR# YOUNG VIRGINS SOUGHT FOR THE KING:,J# 3 AND LET THE KING APPOINT OFFICERS IN ALL THE PROVINCES OF HIS KINGDOM,J THAT THEY MAY GATHER TOGETHER ALL THE FAIR YOUNG VIRGINS UNTO SHUSHAN THEF PALACE, TO THE HOUSE OF THE WOMEN, UNTO THE CUSTODY OF HEGE THE KINGSK CHAMBERLAIN, KEEPER OF THE WOMEN; AND LET THEIR THINGS FOR PURIFICATION BEW GIVEN THEM:J# 4 AND LET THE MAIDEN WHICH PLEASETH THE KING BE QUEEN INSTEAD OF VASHTI./ AND THE THING PLEASED THE KING; AND HE DID SO.TE# 5 NOW IN SHUSHAN THE PALACE THERE WAS A CERTAIN JEW, WHOSE NAME WASL MORDECAI, THE SON OF JAIR, THE SON OF SHIMEI, THE SON OF KISH, A BENJAMITE;I# 6 WHO HAD BEEN CARRIED AWAY FROM JERUSALEM WITH THE CAPTIVITY WHICH HADPL BEEN CARRIED AWAY WITH JECONIAH KING OF JUDAH, WHOM NEBUCHADNEZZAR THE KING OF BABYLON HAD CARRIED AWAY.LM# 7 AND HE BROUGHT UP HADASSAH, THAT IS, ESTHER, HIS UNCLES DAUGHTER: FOR SHEHI HAD NEITHER FATHER NOR MOTHER, AND THE MAID WAS FAIR AND BEAUTIFUL; WHOMKK MORDECAI, WHEN HER FATHER AND MOTHER WERE DEAD, TOOK FOR HIS OWN DAUGHTER.WL# 8 SO IT CAME TO PASS, WHEN THE KINGS COMMANDMENT AND HIS DECREE WAS HEARD,M AND WHEN MANY MAIDENS WERE GATHERED TOGETHER UNTO SHUSHAN THE PALACE, TO THE L CUSTODY OF HEGAI, THAT ESTHER WAS BROUGHT ALSO UNTO THE KINGS HOUSE, TO THE' CUSTODY OF HEGAI, KEEPER OF THE WOMEN.LH# 9 AND THE MAIDEN PLEASED HIM, AND SHE OBTAINED KINDNESS OF HIM; AND HEL SPEEDILY GAVE HER HER THINGS FOR PURIFICATION, WITH SUCH THINGS AS BELONGEDM TO HER, AND SEVEN MAIDENS, WHICH WERE MEET TO BE GIVEN HER, OUT OF THE KINGSRN HOUSE: AND HE PREFERRED HER AND HER MAIDS UNTO THE BEST PLACE OF THE HOUSE OF THE WOMEN.AG# 10 ESTHER HAD NOT SHEWED HER PEOPLE NOR HER KINDRED: FOR MORDECAI HADO) CHARGED HER THAT SHE SHOULD NOT SHEW IT.NK# 11 AND MORDECAI WALKED EVERY DAY BEFORE THE COURT OF THE WOMENS HOUSE, TO 4 KNOW HOW ESTHER DID, AND WHAT SHOULD BECOME OF HER.I# 12 NOW WHEN EVERY MAIDS TURN WAS COME TO GO IN TO KING AHASUERUS, AFTERSL THAT SHE HAD BEEN TWELVE MONTHS, ACCORDING TO THE MANNER OF THE WOMEN, (FORN SO WERE THE DAYS OF THEIR PURIFICATIONS ACCOMPLISHED, TO WIT, SIX MONTHS WITHN OIL OF MYRRH, AND SIX MONTHS WITH SWEET ODOURS, AND WITH OTHER THINGS FOR THE PURIFYING OF THE WOMEN;)A00o05#5D%5%T6%! !J# 13 THEN THUS CAME EVERY MAIDEN UNTO THE KING; WHATSOEVER SHE DESIRED WASM GIVEN HER TO GO WITH HER OUT OF THE HOUSE OF THE WOMEN UNTO THE KINGS HOUSE. L# 14 IN THE EVENING SHE WENT, AND ON THE MORROW SHE RETURNED INTO THE SECONDN HOUSE OF THE WOMEN, TO THE CUSTODY OF SHAASHGAZ, THE KINGS CHAMBERLAIN, WHICHH KEPT THE CONCUBINES: SHE CAME IN UNTO THE KING NO MORE, EXCEPT THE KING4 DELIGHTED IN HER, AND THAT SHE WERE CALLED BY NAME.F# 15 NOW WHEN THE TURN OF ESTHER, THE DAUGHTER OF ABIHAIL THE UNCLE OFI MORDECAI, WHO HAD TAKEN HER FOR HIS DAUGHTER, WAS COME TO GO IN UNTO THEL KING, SHE REQUIRED NOTHING BUT WHAT HEGAI THE KINGS CHAMBERLAIN, THE KEEPERM OF THE WOMEN, APPOINTED. AND ESTHER OBTAINED FAVOUR IN THE SIGHT OF ALL THEM THAT LOOKED UPON HER.H# 16 SO ESTHER WAS TAKEN UNTO KING AHASUERUS INTO HIS HOUSE ROYAL IN THEJ TENTH MONTH, WHICH IS THE MONTH TEBETH, IN THE SEVENTH YEAR OF HIS REIGN.J# 17 AND THE KING LOVED ESTHER ABOVE ALL THE WOMEN, AND SHE OBTAINED GRACEL AND FAVOUR IN HIS SIGHT MORE THAN ALL THE VIRGINS; SO THAT HE SET THE ROYAL; CROWN UPON HER HEAD, AND MADE HER QUEEN INSTEAD OF VASHTI.HL# 18 THEN THE KING MADE A GREAT FEAST UNTO ALL HIS PRINCES AND HIS SERVANTS,L EVEN ESTHERS FEAST; AND HE MADE A RELEASE TO THE PROVINCES, AND GAVE GIFTS,$ ACCORDING TO THE STATE OF THE KING.F# 19 AND WHEN THE VIRGINS WERE GATHERED TOGETHER THE SECOND TIME, THEN MORDECAI SAT IN THE KINGS GATE.J# 20 ESTHER HAD NOT YET SHEWED HER KINDRED NOR HER PEOPLE; AS MORDECAI HADN CHARGED HER: FOR ESTHER DID THE COMMANDMENT OF MORDECAI, LIKE AS WHEN SHE WAS BROUGHT UP WITH HIM.AJ# 21 IN THOSE DAYS, WHILE MORDECAI SAT IN THE KINGS GATE, TWO OF THE KINGSL CHAMBERLAINS, BIGTHAN AND TERESH, OF THOSE WHICH KEPT THE DOOR, WERE WROTH,/ AND SOUGHT TO LAY HANDS ON THE KING AHASUERUS. L# 22 AND THE THING WAS KNOWN TO MORDECAI, WHO TOLD IT UNTO ESTHER THE QUEEN;9 AND ESTHER CERTIFIED THE KING THEREOF IN MORDECAIS NAME.TM# 23 AND WHEN INQUISITION WAS MADE OF THE MATTER, IT WAS FOUND OUT; THEREFORERG THEY WERE BOTH HANGED ON A TREE: AND IT WAS WRITTEN IN THE BOOK OF THEG CHRONICLES BEFORE THE KING. = CHAPTER 3 M# 1 AFTER THESE THINGS DID KING AHASUERUS PROMOTE HAMAN THE SON OF HAMMEDATHARK THE AGAGITE, AND ADVANCED HIM, AND SET HIS SEAT ABOVE ALL THE PRINCES THATH WERE WITH HIM. G# 2 AND ALL THE KINGS SERVANTS, THAT WERE IN THE KINGS GATE, BOWED, ANDUM REVERENCED HAMAN: FOR THE KING HAD SO COMMANDED CONCERNING HIM. BUT MORDECAI " BOWED NOT, NOR DID HIM REVERENCE.D# 3 THEN THE KINGS SERVANTS, WHICH WERE IN THE KINGS GATE, SAID UNTO8 MORDECAI, WHY TRANSGRESSEST THOU THE KINGS COMMANDMENT?M# 4 NOW IT CAME TO PASS, WHEN THEY SPAKE DAILY UNTO HIM, AND HE HEARKENED NOT H UNTO THEM, THAT THEY TOLD HAMAN, TO SEE WHETHER MORDECAIS MATTERS WOULD/ STAND: FOR HE HAD TOLD THEM THAT HE WAS A JEW. K# 5 AND WHEN HAMAN SAW THAT MORDECAI BOWED NOT, NOR DID HIM REVERENCE, THEN  WAS HAMAN FULL OF WRATH.CL# 6 AND HE THOUGHT SCORN TO LAY HANDS ON MORDECAI ALONE; FOR THEY HAD SHEWEDK HIM THE PEOPLE OF MORDECAI: WHEREFORE HAMAN SOUGHT TO DESTROY ALL THE JEWS,H THAT WERE THROUGHOUT THE WHOLE KINGDOM OF AHASUERUS, EVEN THE PEOPLE OF MORDECAI.M# 7 IN THE FIRST MONTH, THAT IS, THE MONTH NISAN, IN THE TWELFTH YEAR OF KINGSN AHASUERUS, THEY CAST PUR, THAT IS, THE LOT, BEFORE HAMAN FROM DAY TO DAY, ANDD FROM MONTH TO MONTH, TO THE TWELFTH MONTH, THAT IS, THE MONTH ADAR.K# 8 AND HAMAN SAID UNTO KING AHASUERUS, THERE IS A CERTAIN PEOPLE SCATTEREDDK ABROAD AND DISPERSED AMONG THE PEOPLE IN ALL THE PROVINCES OF THY KINGDOM;ON AND THEIR LAWS ARE DIVERSE FROM ALL PEOPLE; NEITHER KEEP THEY THE KINGS LAWS:9 THEREFORE IT IS NOT FOR THE KINGS PROFIT TO SUFFER THEM.FL# 9 IF IT PLEASE THE KING, LET IT BE WRITTEN THAT THEY MAY BE DESTROYED: ANDN I WILL PAY TEN THOUSAND TALENTS OF SILVER TO THE HANDS OF THOSE THAT HAVE THE? CHARGE OF THE BUSINESS, TO BRING IT INTO THE KINGS TREASURIES.NM# 10 AND THE KING TOOK HIS RING FROM HIS HAND, AND GAVE IT UNTO HAMAN THE SON + OF HAMMEDATHA THE AGAGITE, THE JEWS ENEMY.VJ# 11 AND THE K00o854<%X>%+%O-%TADATADATAING SAID UNTO HAMAN, THE SILVER IS GIVEN TO THEE, THE PEOPLE2 ALSO, TO DO WITH THEM AS IT SEEMETH GOOD TO THEE.J# 12 THEN WERE THE KINGS SCRIBES CALLED ON THE THIRTEENTH DAY OF THE FIRSTL MONTH, AND THERE WAS WRITTEN ACCORDING TO ALL THAT HAMAN HAD COMMANDED UNTOK THE KINGS LIEUTENANTS, AND TO THE GOVERNORS THAT WERE OVER EVERY PROVINCE,IM AND TO THE RULERS OF EVERY PEOPLE OF EVERY PROVINCE ACCORDING TO THE WRITINGGE THEREOF, AND TO EVERY PEOPLE AFTER THEIR LANGUAGE; IN THE NAME OF KIV: AHASUERUS WAS IT WRITTEN, AND SEALED WITH THE KINGS RING.H# 13 AND THE LETTERS WERE SENT BY POSTS INTO ALL THE KINGS PROVINCES, TOH DESTROY, TO KILL, AND TO CAUSE TO PERISH, ALL JEWS, BOTH YOUNG AND OLD,K LITTLE CHILDREN AND WOMEN, IN ONE DAY, EVEN UPON THE THIRTEENTH DAY OF THETL TWELFTH MONTH, WHICH IS THE MONTH ADAR, AND TO TAKE THE SPOIL OF THEM FOR A PREY.L# 14 THE COPY OF THE WRITING FOR A COMMANDMENT TO BE GIVEN IN EVERY PROVINCEK WAS PUBLISHED UNTO ALL PEOPLE, THAT THEY SHOULD BE READY AGAINST THAT DAY.SI# 15 THE POSTS WENT OUT, BEING HASTENED BY THE KINGS COMMANDMENT, AND THETK DECREE WAS GIVEN IN SHUSHAN THE PALACE. AND THE KING AND HAMAN SAT DOWN TOO+ DRINK; BUT THE CITY SHUSHAN WAS PERPLEXED.L = CHAPTER 4 M# 1 WHEN MORDECAI PERCEIVED ALL THAT WAS DONE, MORDECAI RENT HIS CLOTHES, AND J PUT ON SACKCLOTH WITH ASHES, AND WENT OUT INTO THE MIDST OF THE CITY, AND$ CRIED WITH A LOUD AND A BITTER CRY;L# 2 AND CAME EVEN BEFORE THE KINGS GATE: FOR NONE MIGHT ENTER INTO THE KINGS GATE CLOTHED WITH SACKCLOTH.5M# 3 AND IN EVERY PROVINCE, WHITHERSOEVER THE KINGS COMMANDMENT AND HIS DECREE M CAME, THERE WAS GREAT MOURNING AMONG THE JEWS, AND FASTING, AND WEEPING, ANDU. WAILING; AND MANY LAY IN SACKCLOTH AND ASHES.L# 4 SO ESTHERS MAIDS AND HER CHAMBERLAINS CAME AND TOLD IT HER. THEN WAS THEK QUEEN EXCEEDINGLY GRIEVED; AND SHE SENT RAIMENT TO CLOTHE MORDECAI, AND TOD: TAKE AWAY HIS SACKCLOTH FROM HIM: BUT HE RECEIVED IT NOT.M# 5 THEN CALLED ESTHER FOR HATACH, ONE OF THE KINGS CHAMBERLAINS, WHOM HE HADCN APPOINTED TO ATTEND UPON HER, AND GAVE HIM A COMMANDMENT TO MORDECAI, TO KNOW WHAT IT WAS, AND WHY IT WAS.TK# 6 SO HATACH WENT FORTH TO MORDECAI UNTO THE STREET OF THE CITY, WHICH WASL BEFORE THE KINGS GATE..K# 7 AND MORDECAI TOLD HIM OF ALL THAT HAD HAPPENED UNTO HIM, AND OF THE SUMEL OF THE MONEY THAT HAMAN HAD PROMISED TO PAY TO THE KINGS TREASURIES FOR THE JEWS, TO DESTROY THEM.HL# 8 ALSO HE GAVE HIM THE COPY OF THE WRITING OF THE DECREE THAT WAS GIVEN ATM SHUSHAN TO DESTROY THEM, TO SHEW IT UNTO ESTHER, AND TO DECLARE IT UNTO HER,IL AND TO CHARGE HER THAT SHE SHOULD GO IN UNTO THE KING, TO MAKE SUPPLICATION9 UNTO HIM, AND TO MAKE REQUEST BEFORE HIM FOR HER PEOPLE.H:# 9 AND HATACH CAME AND TOLD ESTHER THE WORDS OF MORDECAI.L# 10 AGAIN ESTHER SPAKE UNTO HATACH, AND GAVE HIM COMMANDMENT UNTO MORDECAI;L# 11 ALL THE KINGS SERVANTS, AND THE PEOPLE OF THE KINGS PROVINCES, DO KNOW,N THAT WHOSOEVER, WHETHER MAN OR WOMEN, SHALL COME UNTO THE KING INTO THE INNERN COURT, WHO IS NOT CALLED, THERE IS ONE LAW OF HIS TO PUT HIM TO DEATH, EXCEPTK SUCH TO WHOM THE KING SHALL HOLD OUT THE GOLDEN SCEPTRE, THAT HE MAY LIVE:G BUT I HAVE NOT BEEN CALLED TO COME IN UNTO THE KING THESE THIRTY DAYS.H-# 12 AND THEY TOLD TO MORDECAI ESTHERS WORDS. J# 13 THEN MORDECAI COMMANDED TO ANSWER ESTHER, THINK NOT WITH THYSELF THAT> THOU SHALT ESCAPE IN THE KINGS HOUSE, MORE THAN ALL THE JEWS.L# 14 FOR IF THOU ALTOGETHER HOLDEST THY PEACE AT THIS TIME, THEN SHALL THEREK ENLARGEMENT AND DELIVERANCE ARISE TO THE JEWS FROM ANOTHER PLACE; BUT THOU K AND THY FATHERS HOUSE SHALL BE DESTROYED: AND WHO KNOWETH WHETHER THOU ARTH- COME TO THE KINGDOM FOR SUCH A TIME AS THIS?O7# 15 THEN ESTHER BADE THEM RETURN MORDECAI THIS ANSWER, K# 16 GO, GATHER TOGETHER ALL THE JEWS THAT ARE PRESENT IN SHUSHAN, AND FASTEM YE FOR ME, AND NEITHER EAT NOR DRINK THREE DAYS, NIGHT OR DAY: I ALSO AND MYNL MAIDENS WILL FAST LIKEWISE; AND SO WILL I GO IN UNTO THE KING, WHICH IS NOT1 ACCORDING TO THE LAW: AND IF I PERISH, I PERISH.TG# 17 SO MO00o@5#5D%5%T6%! !RDECAI WENT HIS WAY, AND DID ACCORDING TO ALL THAT ESTHER HAD  COMMANDED HIM.O = CHAPTER 5 F# 1 NOW IT CAME TO PASS ON THE THIRD DAY, THAT ESTHER PUT ON HER ROYALK APPAREL, AND STOOD IN THE INNER COURT OF THE KINGS HOUSE, OVER AGAINST THETM KINGS HOUSE: AND THE KING SAT UPON HIS ROYAL THRONE IN THE ROYAL HOUSE, OVER  AGAINST THE GATE OF THE HOUSE. L# 2 AND IT WAS SO, WHEN THE KING SAW ESTHER THE QUEEN STANDING IN THE COURT,K THAT SHE OBTAINED FAVOUR IN HIS SIGHT: AND THE KING HELD OUT TO ESTHER THEDN GOLDEN SCEPTRE THAT WAS IN HIS HAND. SO ESTHER DREW NEAR, AND TOUCHED THE TOP OF THE SCEPTRE.J# 3 THEN SAID THE KING UNTO HER, WHAT WILT THOU, QUEEN ESTHER? AND WHAT ISE THY REQUEST? IT SHALL BE EVEN GIVEN THEE TO THE HALF OF THE KINGDOM.KH# 4 AND ESTHER ANSWERED, IF IT SEEM GOOD UNTO THE KING, LET THE KING ANDC HAMAN COME THIS DAY UNTO THE BANQUET THAT I HAVE PREPARED FOR HIM.GK# 5 THEN THE KING SAID, CAUSE HAMAN TO MAKE HASTE, THAT HE MAY DO AS ESTHERSE HATH SAID. SO THE KING AND HAMAN CAME TO THE BANQUET THAT ESTHER HADI PREPARED.E# 6 AND THE KING SAID UNTO ESTHER AT THE BANQUET OF WINE, WHAT IS THYIM PETITION? AND IT SHALL BE GRANTED THEE: AND WHAT IS THY REQUEST? EVEN TO THET+ HALF OF THE KINGDOM IT SHALL BE PERFORMED.KB# 7 THEN ANSWERED ESTHER, AND SAID, MY PETITION AND MY REQUEST IS;I# 8 IF I HAVE FOUND FAVOUR IN THE SIGHT OF THE KING, AND IF IT PLEASE THEFM KING TO GRANT MY PETITION, AND TO PERFORM MY REQUEST, LET THE KING AND HAMANEN COME TO THE BANQUET THAT I SHALL PREPARE FOR THEM, AND I WILL DO TO MORROW AS THE KING HATH SAID.I# 9 THEN WENT HAMAN FORTH THAT DAY JOYFUL AND WITH A GLAD HEART: BUT WHENDJ HAMAN SAW MORDECAI IN THE KINGS GATE, THAT HE STOOD NOT UP, NOR MOVED FOR2 HIM, HE WAS FULL OF INDIGNATION AGAINST MORDECAI.M# 10 NEVERTHELESS HAMAN REFRAINED HIMSELF: AND WHEN HE CAME HOME, HE SENT ANDI- CALLED FOR HIS FRIENDS, AND ZERESH HIS WIFE.M# 11 AND HAMAN TOLD THEM OF THE GLORY OF HIS RICHES, AND THE MULTITUDE OF HISK CHILDREN, AND ALL THE THINGS WHEREIN THE KING HAD PROMOTED HIM, AND HOW HES= HAD ADVANCED HIM ABOVE THE PRINCES AND SERVANTS OF THE KING.UK# 12 HAMAN SAID MOREOVER, YEA, ESTHER THE QUEEN DID LET NO MAN COME IN WITHAM THE KING UNTO THE BANQUET THAT SHE HAD PREPARED BUT MYSELF; AND TO MORROW AME' I INVITED UNTO HER ALSO WITH THE KING.IH# 13 YET ALL THIS AVAILETH ME NOTHING, SO LONG AS I SEE MORDECAI THE JEW SITTING AT THE KINGS GATE.MM# 14 THEN SAID ZERESH HIS WIFE AND ALL HIS FRIENDS UNTO HIM, LET A GALLOWS BEAG MADE OF FIFTY CUBITS HIGH, AND TO MORROW SPEAK THOU UNTO THE KING THATVK MORDECAI MAY BE HANGED THEREON: THEN GO THOU IN MERRILY WITH THE KING UNTOVJ THE BANQUET. AND THE THING PLEASED HAMAN; AND HE CAUSED THE GALLOWS TO BE MADE. = CHAPTER 6 N# 1 ON THAT NIGHT COULD NOT THE KING SLEEP, AND HE COMMANDED TO BRING THE BOOKB OF RECORDS OF THE CHRONICLES; AND THEY WERE READ BEFORE THE KING.L# 2 AND IT WAS FOUND WRITTEN, THAT MORDECAI HAD TOLD OF BIGTHANA AND TERESH,J TWO OF THE KINGS CHAMBERLAINS, THE KEEPERS OF THE DOOR, WHO SOUGHT TO LAY HAND ON THE KING AHASUERUS.M# 3 AND THE KING SAID, WHAT HONOUR AND DIGNITY HATH BEEN DONE TO MORDECAI FORTN THIS? THEN SAID THE KINGS SERVANTS THAT MINISTERED UNTO HIM, THERE IS NOTHING DONE FOR HIM.G# 4 AND THE KING SAID, WHO IS IN THE COURT? NOW HAMAN WAS COME INTO THENM OUTWARD COURT OF THE KINGS HOUSE, TO SPEAK UNTO THE KING TO HANG MORDECAI ON* THE GALLOWS THAT HE HAD PREPARED FOR HIM.G# 5 AND THE KINGS SERVANTS SAID UNTO HIM, BEHOLD, HAMAN STANDETH IN THEP+ COURT. AND THE KING SAID, LET HIM COME IN.TM# 6 SO HAMAN CAME IN. AND THE KING SAID UNTO HIM, WHAT SHALL BE DONE UNTO THENK MAN WHOM THE KING DELIGHTETH TO HONOUR? NOW HAMAN THOUGHT IN HIS HEART, TOH> WHOM WOULD THE KING DELIGHT TO DO HONOUR MORE THAN TO MYSELF?H# 7 AND HAMAN ANSWERED THE KING, FOR THE MAN WHOM THE KING DELIGHTETH TO HONOUR,J# 8 LET THE ROYAL APPAREL BE BROUGHT WHICH THE KING USETH TO WEAR, AND THEK HORSE THAT THE KING RIDETH UPON, AND THE CROWN ROYAL WHICH IS SET UPON HISI HEAD:I# 9 AND LET THIS APPAR00oH54<%X>%+%O-%TADATADATAEL AND HORSE BE DELIVERED TO THE HAND OF ONE OF THE K KINGS MOST NOBLE PRINCES, THAT THEY MAY ARRAY THE MAN WITHAL WHOM THE KINGTK DELIGHTETH TO HONOUR, AND BRING HIM ON HORSEBACK THROUGH THE STREET OF THETN CITY, AND PROCLAIM BEFORE HIM, THUS SHALL IT BE DONE TO THE MAN WHOM THE KING DELIGHTETH TO HONOUR.J# 10 THEN THE KING SAID TO HAMAN, MAKE HASTE, AND TAKE THE APPAREL AND THEN HORSE, AS THOU HAST SAID, AND DO EVEN SO TO MORDECAI THE JEW, THAT SITTETH AT? THE KINGS GATE: LET NOTHING FAIL OF ALL THAT THOU HAST SPOKEN.EI# 11 THEN TOOK HAMAN THE APPAREL AND THE HORSE, AND ARRAYED MORDECAI, ANDRH BROUGHT HIM ON HORSEBACK THROUGH THE STREET OF THE CITY, AND PROCLAIMEDK BEFORE HIM, THUS SHALL IT BE DONE UNTO THE MAN WHOM THE KING DELIGHTETH TOA HONOUR.M# 12 AND MORDECAI CAME AGAIN TO THE KINGS GATE. BUT HAMAN HASTED TO HIS HOUSEO' MOURNING, AND HAVING HIS HEAD COVERED.AL# 13 AND HAMAN TOLD ZERESH HIS WIFE AND ALL HIS FRIENDS EVERY THING THAT HADF BEFALLEN HIM. THEN SAID HIS WISE MEN AND ZERESH HIS WIFE UNTO HIM, IFJ MORDECAI BE OF THE SEED OF THE JEWS, BEFORE WHOM THOU HAST BEGUN TO FALL,F THOU SHALT NOT PREVAIL AGAINST HIM, BUT SHALT SURELY FALL BEFORE HIM.K# 14 AND WHILE THEY WERE YET TALKING WITH HIM, CAME THE KINGS CHAMBERLAINS,HE AND HASTED TO BRING HAMAN UNTO THE BANQUET THAT ESTHER HAD PREPARED.A = CHAPTER 7 @# 1 SO THE KING AND HAMAN CAME TO BANQUET WITH ESTHER THE QUEEN.K# 2 AND THE KING SAID AGAIN UNTO ESTHER ON THE SECOND DAY AT THE BANQUET OF.L WINE, WHAT IS THY PETITION, QUEEN ESTHER? AND IT SHALL BE GRANTED THEE: ANDH WHAT IS THY REQUEST? AND IT SHALL BE PERFORMED, EVEN TO THE HALF OF THE KINGDOM.SJ# 3 THEN ESTHER THE QUEEN ANSWERED AND SAID, IF I HAVE FOUND FAVOUR IN THYH SIGHT, O KING, AND IF IT PLEASE THE KING, LET MY LIFE BE GIVEN ME AT MY' PETITION, AND MY PEOPLE AT MY REQUEST:J# 4 FOR WE ARE SOLD, I AND MY PEOPLE, TO BE DESTROYED, TO BE SLAIN, AND TOI PERISH. BUT IF WE HAD BEEN SOLD FOR BONDMEN AND BONDWOMEN, I HAD HELD MYTC TONGUE, ALTHOUGH THE ENEMY COULD NOT COUNTERVAIL THE KINGS DAMAGE.TK# 5 THEN THE KING AHASUERUS ANSWERED AND SAID UNTO ESTHER THE QUEEN, WHO ISL? HE, AND WHERE IS HE, THAT DURST PRESUME IN HIS HEART TO DO SO?,M# 6 AND ESTHER SAID, THE ADVERSARY AND ENEMY IS THIS WICKED HAMAN. THEN HAMANM* WAS AFRAID BEFORE THE KING AND THE QUEEN.L# 7 AND THE KING ARISING FROM THE BANQUET OF WINE IN HIS WRATH WENT INTO THEM PALACE GARDEN: AND HAMAN STOOD UP TO MAKE REQUEST FOR HIS LIFE TO ESTHER THENJ QUEEN; FOR HE SAW THAT THERE WAS EVIL DETERMINED AGAINST HIM BY THE KING.I# 8 THEN THE KING RETURNED OUT OF THE PALACE GARDEN INTO THE PLACE OF THEUL BANQUET OF WINE; AND HAMAN WAS FALLEN UPON THE BED WHEREON ESTHER WAS. THENK SAID THE KING, WILL HE FORCE THE QUEEN ALSO BEFORE ME IN THE HOUSE? AS THEA8 WORD WENT OUT OF KINGS MOUTH, THEY COVERED HAMANS FACE.M# 9 AND HARBONAH, ONE OF THE CHAMBERLAINS, SAID BEFORE THE KING, BEHOLD ALSO,DM THE GALLOWS FIFTY CUBITS HIGH, WHICH HAMAN HAD MADE FOR MORDECAI, WHO SPOKEN L GOOD FOR THE KING, STANDETH IN THE HOUSE OF HAMAN. THEN THE KING SAID, HANG HIM THEREON.TK# 10 SO THEY HANGED HAMAN ON THE GALLOWS THAT HE HAD PREPARED FOR MORDECAI. # THEN WAS THE KINGS WRATH PACIFIED.S = CHAPTER 8 M# 1 ON THAT DAY DID THE KING AHASUERUS GIVE THE HOUSE OF HAMAN THE JEWS ENEMYEN UNTO ESTHER THE QUEEN. AND MORDECAI CAME BEFORE THE KING; FOR ESTHER HAD TOLD WHAT HE WAS UNTO HER.K# 2 AND THE KING TOOK OFF HIS RING, WHICH HE HAD TAKEN FROM HAMAN, AND GAVEEC IT UNTO MORDECAI. AND ESTHER SET MORDECAI OVER THE HOUSE OF HAMAN. J# 3 AND ESTHER SPAKE YET AGAIN BEFORE THE KING, AND FELL DOWN AT HIS FEET,K AND BESOUGHT HIM WITH TEARS TO PUT AWAY THE MISCHIEF OF HAMAN THE AGAGITE,T5 AND HIS DEVICE THAT HE HAD DEVISED AGAINST THE JEWS.GM# 4 THEN THE KING HELD OUT THE GOLDEN SCEPTRE TOWARD ESTHER. SO ESTHER AROSE,  AND STOOD BEFORE THE KING,;K# 5 AND SAID, IF IT PLEASE THE KING, AND IF I HAVE FAVOUR IN HIS SIGHT, ANDIL THE THING SEEM RIGHT BEFORE THE KING, AND I BE PLEASING IN HIS EYES, LET ITM BE WRITTEN TO REVERSE THE LETTE00oP5#5D%5%T6%! !RS DEVISED BY HAMAN THE SON OF HAMMEDATHA THE G AGAGITE, WHICH HE WROTE TO DESTROY THE JEWS WHICH ARE IN ALL THE KINGSY PROVINCES: K# 6 FOR HOW CAN I ENDURE TO SEE THE EVIL THAT SHALL COME UNTO MY PEOPLE? ORG7 HOW CAN I ENDURE TO SEE THE DESTRUCTION OF MY KINDRED?TJ# 7 THEN THE KING AHASUERUS SAID UNTO ESTHER THE QUEEN AND TO MORDECAI THEN JEW, BEHOLD, I HAVE GIVEN ESTHER THE HOUSE OF HAMAN, AND HIM THEY HAVE HANGED: UPON THE GALLOWS, BECAUSE HE LAID HIS HAND UPON THE JEWS.M# 8 WRITE YE ALSO FOR THE JEWS, AS IT LIKETH YOU, IN THE KINGS NAME, AND SEALIL IT WITH THE KINGS RING: FOR THE WRITING WHICH IS WRITTEN IN THE KINGS NAME,4 AND SEALED WITH THE KINGS RING, MAY NO MAN REVERSE.L# 9 THEN WERE THE KINGS SCRIBES CALLED AT THAT TIME IN THE THIRD MONTH, THATH IS, THE MONTH SIVAN, ON THE THREE AND TWENTIETH DAY THEREOF; AND IT WASK WRITTEN ACCORDING TO ALL THAT MORDECAI COMMANDED UNTO THE JEWS, AND TO THEHI LIEUTENANTS, AND THE DEPUTIES AND RULERS OF THE PROVINCES WHICH ARE FROM E INDIA UNTO ETHIOPIA, AN HUNDRED TWENTY AND SEVEN PROVINCES, UNTO EVEAM PROVINCE ACCORDING TO THE WRITING THEREOF, AND UNTO EVERY PEOPLE AFTER THEIR,M LANGUAGE, AND TO THE JEWS ACCORDING TO THEIR WRITING, AND ACCORDING TO THEIR LANGUAGE.J# 10 AND HE WROTE IN THE KING AHASUERUS NAME, AND SEALED IT WITH THE KINGSK RING, AND SENT LETTERS BY POSTS ON HORSEBACK, AND RIDERS ON MULES, CAMELS,A AND YOUNG DROMEDARIES:,I# 11 WHEREIN THE KING GRANTED THE JEWS WHICH WERE IN EVERY CITY TO GATHERIM THEMSELVES TOGETHER, AND TO STAND FOR THEIR LIFE, TO DESTROY, TO SLAY AND TO M CAUSE TO PERISH, ALL THE POWER OF THE PEOPLE AND PROVINCE THAT WOULD ASSAULTHL THEM, BOTH LITTLE ONES AND WOMEN, AND TO TAKE THE SPOIL OF THEM FOR A PREY,J# 12 UPON ONE DAY IN ALL THE PROVINCES OF KING AHASUERUS, NAMELY, UPON THE> THIRTEENTH DAY OF THE TWELFTH MONTH, WHICH IS THE MONTH ADAR.L# 13 THE COPY OF THE WRITING FOR A COMMANDMENT TO BE GIVEN IN EVERY PROVINCEN WAS PUBLISHED UNTO ALL PEOPLE, AND THAT THE JEWS SHOULD BE READY AGAINST THAT+ DAY TO AVENGE THEMSELVES ON THEIR ENEMIES.LJ# 14 SO THE POSTS THAT RODE UPON MULES AND CAMELS WENT OUT, BEING HASTENEDM AND PRESSED ON BY THE KINGS COMMANDMENT. AND THE DECREE WAS GIVEN AT SHUSHANM THE PALACE.L# 15 AND MORDECAI WENT OUT FROM THE PRESENCE OF THE KING IN ROYAL APPAREL OFK BLUE AND WHITE, AND WITH A GREAT CROWN OF GOLD, AND WITH A GARMENT OF FINEFA LINEN AND PURPLE: AND THE CITY OF SHUSHAN REJOICED AND WAS GLAD.P;# 16 THE JEWS HAD LIGHT, AND GLADNESS, AND JOY, AND HONOUR.GF# 17 AND IN EVERY PROVINCE, AND IN EVERY CITY, WHITHERSOEVER THE KINGSN COMMANDMENT AND HIS DECREE CAME, THE JEWS HAD JOY AND GLADNESS, A FEAST AND AN GOOD DAY. AND MANY OF THE PEOPLE OF THE LAND BECAME JEWS; FOR THE FEAR OF THE JEWS FELL UPON THEM.F = CHAPTER 9 L# 1 NOW IN THE TWELFTH MONTH, THAT IS, THE MONTH ADAR, ON THE THIRTEENTH DAYN OF THE SAME, WHEN THE KINGS COMMANDMENT AND HIS DECREE DREW NEAR TO BE PUT INL EXECUTION, IN THE DAY THAT THE ENEMIES OF THE JEWS HOPED TO HAVE POWER OVERN THEM, (THOUGH IT WAS TURNED TO THE CONTRARY, THAT THE JEWS HAD RULE OVER THEM THAT HATED THEM;)L# 2 THE JEWS GATHERED THEMSELVES TOGETHER IN THEIR CITIES THROUGHOUT ALL THEK PROVINCES OF THE KING AHASUERUS, TO LAY HAND ON SUCH AS SOUGHT THEIR HURT: L AND NO MAN COULD WITHSTAND THEM; FOR THE FEAR OF THEM FELL UPON ALL PEOPLE.E# 3 AND ALL THE RULERS OF THE PROVINCES, AND THE LIEUTENANTS, AND THEDI DEPUTIES, AND OFFICERS OF THE KING, HELPED THE JEWS; BECAUSE THE FEAR OFE MORDECAI FELL UPON THEM.VD# 4 FOR MORDECAI WAS GREAT IN THE KINGS HOUSE, AND HIS FAME WENT OUTF THROUGHOUT ALL THE PROVINCES: FOR THIS MAN MORDECAI WAXED GREATER AND GREATER.RK# 5 THUS THE JEWS SMOTE ALL THEIR ENEMIES WITH THE STROKE OF THE SWORD, ANDSJ SLAUGHTER, AND DESTRUCTION, AND DID WHAT THEY WOULD UNTO THOSE THAT HATED THEM.K# 6 AND IN SHUSHAN THE PALACE THE JEWS SLEW AND DESTROYED FIVE HUNDRED MEN.N/# 7 AND PARSHANDATHA, AND DALPHON, AND ASPATHA,N-# 8 AND PORATHA, AND ADALIA, AND ARIDATHA, ITE9# 9 AND PARMASHTA, AND ARISAI, AND ARIDAI, A00oX54<%X>%+%O-%TADATADATAND VAJEZATHA,GM# 10 THE TEN SONS OF HAMAN THE SON OF HAMMEDATHA, THE ENEMY OF THE JEWS, SLEWD1 THEY; BUT ON THE SPOIL LAID THEY NOT THEIR HAND.WJ# 11 ON THAT DAY THE NUMBER OF THOSE THAT WERE SLAIN IN SHUSHAN THE PALACE WAS BROUGHT BEFORE THE KING.YE# 12 AND THE KING SAID UNTO ESTHER THE QUEEN, THE JEWS HAVE SLAIN AND M DESTROYED FIVE HUNDRED MEN IN SHUSHAN THE PALACE, AND THE TEN SONS OF HAMAN;AH WHAT HAVE THEY DONE IN THE REST OF THE KINGS PROVINCES? NOW WHAT IS THYL PETITION? AND IT SHALL BE GRANTED THEE: OR WHAT IS THY REQUEST FURTHER? AND IT SHALL BE DONE.K# 13 THEN SAID ESTHER, IF IT PLEASE THE KING, LET IT BE GRANTED TO THE JEWSDK WHICH ARE IN SHUSHAN TO DO TO MORROW ALSO ACCORDING UNTO THIS DAYS DECREE,E4 AND LET HAMANS TEN SONS BE HANGED UPON THE GALLOWS.I# 14 AND THE KING COMMANDED IT SO TO BE DONE: AND THE DECREE WAS GIVEN AT * SHUSHAN; AND THEY HANGED HAMANS TEN SONS.J# 15 FOR THE JEWS THAT WERE IN SHUSHAN GATHERED THEMSELVES TOGETHER ON THEN FOURTEENTH DAY ALSO OF THE MONTH ADAR, AND SLEW THREE HUNDRED MEN AT SHUSHAN;* BUT ON THE PREY THEY LAID NOT THEIR HAND.L# 16 BUT THE OTHER JEWS THAT WERE IN THE KINGS PROVINCES GATHERED THEMSELVESJ TOGETHER, AND STOOD FOR THEIR LIVES, AND HAD REST FROM THEIR ENEMIES, ANDL SLEW OF THEIR FOES SEVENTY AND FIVE THOUSAND, BUT THEY LAID NOT THEIR HANDS ON THE PREY, J# 17 ON THE THIRTEENTH DAY OF THE MONTH ADAR; AND ON THE FOURTEENTH DAY OFB THE SAME RESTED THEY, AND MADE IT A DAY OF FEASTING AND GLADNESS.K# 18 BUT THE JEWS THAT WERE AT SHUSHAN ASSEMBLED TOGETHER ON THE THIRTEENTHL DAY THEREOF, AND ON THE FOURTEENTH THEREOF; AND ON THE FIFTEENTH DAY OF THE> SAME THEY RESTED, AND MADE IT A DAY OF FEASTING AND GLADNESS.J# 19 THEREFORE THE JEWS OF THE VILLAGES, THAT DWELT IN THE UNWALLED TOWNS,N MADE THE FOURTEENTH DAY OF THE MONTH ADAR A DAY OF GLADNESS AND FEASTING, AND4 A GOOD DAY, AND OF SENDING PORTIONS ONE TO ANOTHER.M# 20 AND MORDECAI WROTE THESE THINGS, AND SENT LETTERS UNTO ALL THE JEWS THATSD WERE IN ALL THE PROVINCES OF THE KING AHASUERUS, BOTH NIGH AND FAR,M# 21 TO STABLISH THIS AMONG THEM, THAT THEY SHOULD KEEP THE FOURTEENTH DAY OFA; THE MONTH ADAR, AND THE FIFTEENTH DAY OF THE SAME, YEARLY,DJ# 22 AS THE DAYS WHEREIN THE JEWS RESTED FROM THEIR ENEMIES, AND THE MONTHM WHICH WAS TURNED UNTO THEM FROM SORROW TO JOY, AND FROM MOURNING INTO A GOODAI DAY: THAT THEY SHOULD MAKE THEM DAYS OF FEASTING AND JOY, AND OF SENDINGM0 PORTIONS ONE TO ANOTHER, AND GIFTS TO THE POOR.H# 23 AND THE JEWS UNDERTOOK TO DO AS THEY HAD BEGUN, AND AS MORDECAI HAD WRITTEN UNTO THEM;TK# 24 BECAUSE HAMAN THE SON OF HAMMEDATHA, THE AGAGITE, THE ENEMY OF ALL THEEK JEWS, HAD DEVISED AGAINST THE JEWS TO DESTROY THEM, AND HAD CAST PUR, THATE3 IS, THE LOT, TO CONSUME THEM, AND TO DESTROY THEM;HK# 25 BUT WHEN ESTHER CAME BEFORE THE KING, HE COMMANDED BY LETTERS THAT HISOM WICKED DEVICE, WHICH HE DEVISED AGAINST THE JEWS, SHOULD RETURN UPON HIS OWN@ HEAD, AND THAT HE AND HIS SONS SHOULD BE HANGED ON THE GALLOWS.L# 26 WHEREFORE THEY CALLED THESE DAYS PURIM AFTER THE NAME OF PUR. THEREFOREM FOR ALL THE WORDS OF THIS LETTER, AND OF THAT WHICH THEY HAD SEEN CONCERNING+ THIS MATTER, AND WHICH HAD COME UNTO THEM,YM# 27 THE JEWS ORDAINED, AND TOOK UPON THEM, AND UPON THEIR SEED, AND UPON ALLHI SUCH AS JOINED THEMSELVES UNTO THEM, SO AS IT SHOULD NOT FAIL, THAT THEYAM WOULD KEEP THESE TWO DAYS ACCORDING TO THEIR WRITING, AND ACCORDING TO THEIRI APPOINTED TIME EVERY YEAR;DG# 28 AND THAT THESE DAYS SHOULD BE REMEMBERED AND KEPT THROUGHOUT EVERYEN GENERATION, EVERY FAMILY, EVERY PROVINCE, AND EVERY CITY; AND THAT THESE DAYSN OF PURIM SHOULD NOT FAIL FROM AMONG THE JEWS, NOR THE MEMORIAL OF THEM PERISH FROM THEIR SEED.TJ# 29 THEN ESTHER THE QUEEN, THE DAUGHTER OF ABIHAIL, AND MORDECAI THE JEW,B WROTE WITH ALL AUTHORITY, TO CONFIRM THIS SECOND LETTER OF PURIM.I# 30 AND HE SENT THE LETTERS UNTO ALL THE JEWS, TO THE HUNDRED TWENTY ANDTL SEVEN PROVINCES OF THE KINGDOM OF AHASUERUS, WITH WORDS OF PEACE AND TRUTH,J# 31 TO CONFIRM THESE DAYS OF PURIM IN00o`5pb5D%5%T6%! ! THEIR TIMES APPOINTED, ACCORDING ASI MORDECAI THE JEW AND ESTHER THE QUEEN HAD ENJOINED THEM, AND AS THEY HADGK DECREED FOR THEMSELVES AND FOR THEIR SEED, THE MATTERS OF THE FASTINGS ANDH THEIR CRY. J# 32 AND THE DECREE OF ESTHER CONFIRMED THESE MATTERS OF PURIM; AND IT WAS WRITTEN IN THE BOOK.E = CHAPTER 10 N# 1 AND THE KING AHASUERUS LAID A TRIBUTE UPON THE LAND, AND UPON THE ISLES OF THE SEA.SJ# 2 AND ALL THE ACTS OF HIS POWER AND OF HIS MIGHT, AND THE DECLARATION OFI THE GREATNESS OF MORDECAI, WHEREUNTO THE KING ADVANCED HIM, ARE THEY NOT H WRITTEN IN THE BOOK OF THE CHRONICLES OF THE KINGS OF MEDIA AND PERSIA?J# 3 FOR MORDECAI THE JEW WAS NEXT UNTO KING AHASUERUS, AND GREAT AMONG THEK JEWS, AND ACCEPTED OF THE MULTITUDE OF HIS BRETHREN, SEEKING THE WEALTH OFS0 HIS PEOPLE, AND SPEAKING PEACE TO ALL HIS SEED.THE KING AHASUERUS LAID A TRIBUTE UPON THE LAND, AND UPON THE ISLES OF THE SEA.SJ# 2 AND ALL THE ACTS OF HIS POWER AND OF HIS MIGHT, AND THE DECLARATION OFI THE GREATNESS OF MORD * BOOK18 JOB = CHAPTER 1 K# 1 THERE WAS A MAN IN THE LAND OF UZ, WHOSE NAME WAS JOB; AND THAT MAN WAS A PERFECT AND UPRIGHT, AND ONE THAT FEARED GOD, AND ESCHEWED EVIL.H@# 2 AND THERE WERE BORN UNTO HIM SEVEN SONS AND THREE DAUGHTERS.K# 3 HIS SUBSTANCE ALSO WAS SEVEN THOUSAND SHEEP, AND THREE THOUSAND CAMELS,AL AND FIVE HUNDRED YOKE OF OXEN, AND FIVE HUNDRED SHE ASSES, AND A VERY GREATI HOUSEHOLD; SO THAT THIS MAN WAS THE GREATEST OF ALL THE MEN OF THE EAST.HI# 4 AND HIS SONS WENT AND FEASTED IN THEIR HOUSES, EVERY ONE HIS DAY; ANDHG SENT AND CALLED FOR THEIR THREE SISTERS TO EAT AND TO DRINK WITH THEM.PL# 5 AND IT WAS SO, WHEN THE DAYS OF THEIR FEASTING WERE GONE ABOUT, THAT JOBN SENT AND SANCTIFIED THEM, AND ROSE UP EARLY IN THE MORNING, AND OFFERED BURNTL OFFERINGS ACCORDING TO THE NUMBER OF THEM ALL: FOR JOB SAID, IT MAY BE THATB MY SONS HAVE SINNED, AND CURSED GOD IN THEIR HEARTS. THUS DID JOB CONTINUALLY.SG# 6 NOW THERE WAS A DAY WHEN THE SONS OF GOD CAME TO PRESENT THEMSELVESS1 BEFORE THE LORD, AND SATAN CAME ALSO AMONG THEM. M# 7 AND THE LORD SAID UNTO SATAN, WHENCE COMEST THOU? THEN SATAN ANSWERED THEWL LORD, AND SAID, FROM GOING TO AND FRO IN THE EARTH, AND FROM WALKING UP AND DOWN IN IT.K# 8 AND THE LORD SAID UNTO SATAN, HAST THOU CONSIDERED MY SERVANT JOB, THAT L THERE IS NONE LIKE HIM IN THE EARTH, A PERFECT AND AN UPRIGHT MAN, ONE THAT! FEARETH GOD, AND ESCHEWETH EVIL?DI# 9 THEN SATAN ANSWERED THE LORD, AND SAID, DOTH JOB FEAR GOD FOR NOUGHT?OJ# 10 HAST NOT THOU MADE AN HEDGE ABOUT HIM, AND ABOUT HIS HOUSE, AND ABOUTM ALL THAT HE HATH ON EVERY SIDE? THOU HAST BLESSED THE WORK OF HIS HANDS, ANDL( HIS SUBSTANCE IS INCREASED IN THE LAND.J# 11 BUT PUT FORTH THINE HAND NOW, AND TOUCH ALL THAT HE HATH, AND HE WILL CURSE THEE TO THY FACE.L# 12 AND THE LORD SAID UNTO SATAN, BEHOLD, ALL THAT HE HATH IS IN THY POWER;I ONLY UPON HIMSELF PUT NOT FORTH THINE HAND. SO SATAN WENT FORTH FROM THEA PRESENCE OF THE LORD.H# 13 AND THERE WAS A DAY WHEN HIS SONS AND HIS DAUGHTERS WERE EATING AND. DRINKING WINE IN THEIR ELDEST BROTHERS HOUSE:J# 14 AND THERE CAME A MESSENGER UNTO JOB, AND SAID, THE OXEN WERE PLOWING,# AND THE ASSES FEEDING BESIDE THEM: M# 15 AND THE SABEANS FELL UPON THEM, AND TOOK THEM AWAY; YEA, THEY HAVE SLAINEM THE SERVANTS WITH THE EDGE OF THE SWORD; AND I ONLY AM ESCAPED ALONE TO TELL  THEE.K# 16 WHILE HE WAS YET SPEAKING, THERE CAME ALSO ANOTHER, AND SAID, THE FIREON OF GOD IS FALLEN FROM HEAVEN, AND HATH BURNED UP THE SHEEP, AND THE SERVANTS,= AND CONSUMED THEM; AND I ONLY AM ESCAPED ALONE TO TELL THEE.RF# 17 WHILE HE WAS YET SPEAKING, THERE CAME ALSO ANOTHER, AND SAID, THEK CHALDEANS MADE OUT THREE BANDS, AND FELL UPON THE CAMELS, AND HAVE CARRIED N THEM AWAY, YEA, AND SLAIN THE SERVANTS WITH THE EDGE OF THE SWORD; AND I ONLY AM ESCAPED ALONE TO TELL THEE.AK# 18 WHILE HE WAS YET SPEAKING, THERE CAME ALSO ANOTHER, AND SAID, THY SONSNI AND THY DAUGHTERS WERE EATING AND DRINKING WINE IN THEIR ELDEST BROTHERSU HOUSE:EL# 19 AND, BEHOLD, THERE CAME A00ph54<%X>%+%O-%TADATADATA GREAT WIND FROM THE WILDERNESS, AND SMOTE THEN FOUR CORNERS OF THE HOUSE, AND IT FELL UPON THE YOUNG MEN, AND THEY ARE DEAD;* AND I ONLY AM ESCAPED ALONE TO TELL THEE.L# 20 THEN JOB AROSE, AND RENT HIS MANTLE, AND SHAVED HIS HEAD, AND FELL DOWN! UPON THE GROUND, AND WORSHIPPED,L# 21 AND SAID, NAKED CAME I OUT OF MY MOTHERS WOMB, AND NAKED SHALL I RETURNM THITHER: THE LORD GAVE, AND THE LORD HATH TAKEN AWAY; BLESSED BE THE NAME OFI THE LORD.;# 22 IN ALL THIS JOB SINNED NOT, NOR CHARGED GOD FOOLISHLY.E = CHAPTER 2 I# 1 AGAIN THERE WAS A DAY WHEN THE SONS OF GOD CAME TO PRESENT THEMSELVESTN BEFORE THE LORD, AND SATAN CAME ALSO AMONG THEM TO PRESENT HIMSELF BEFORE THE LORD.M# 2 AND THE LORD SAID UNTO SATAN, FROM WHENCE COMEST THOU? AND SATAN ANSWEREDRL THE LORD, AND SAID, FROM GOING TO AND FRO IN THE EARTH, AND FROM WALKING UP AND DOWN IN IT.K# 3 AND THE LORD SAID UNTO SATAN, HAST THOU CONSIDERED MY SERVANT JOB, THATAL THERE IS NONE LIKE HIM IN THE EARTH, A PERFECT AND AN UPRIGHT MAN, ONE THATJ FEARETH GOD, AND ESCHEWETH EVIL? AND STILL HE HOLDETH FAST HIS INTEGRITY,D ALTHOUGH THOU MOVEDST ME AGAINST HIM, TO DESTROY HIM WITHOUT CAUSE.M# 4 AND SATAN ANSWERED THE LORD, AND SAID, SKIN FOR SKIN, YEA, ALL THAT A MANC HATH WILL HE GIVE FOR HIS LIFE.J# 5 BUT PUT FORTH THINE HAND NOW, AND TOUCH HIS BONE AND HIS FLESH, AND HE WILL CURSE THEE TO THY FACE.HK# 6 AND THE LORD SAID UNTO SATAN, BEHOLD, HE IS IN THINE HAND; BUT SAVE HIS  LIFE.I# 7 SO WENT SATAN FORTH FROM THE PRESENCE OF THE LORD, AND SMOTE JOB WITHN5 SORE BOILS FROM THE SOLE OF HIS FOOT UNTO HIS CROWN.TH# 8 AND HE TOOK HIM A POTSHERD TO SCRAPE HIMSELF WITHAL; AND HE SAT DOWN AMONG THE ASHES.RH# 9 THEN SAID HIS WIFE UNTO HIM, DOST THOU STILL RETAIN THINE INTEGRITY? CURSE GOD, AND DIE.D# 10 BUT HE SAID UNTO HER, THOU SPEAKEST AS ONE OF THE FOOLISH WOMENK SPEAKETH. WHAT? SHALL WE RECEIVE GOOD AT THE HAND OF GOD, AND SHALL WE NOT 9 RECEIVE EVIL? IN ALL THIS DID NOT JOB SIN WITH HIS LIPS.AJ# 11 NOW WHEN JOBS THREE FRIENDS HEARD OF ALL THIS EVIL THAT WAS COME UPONN HIM, THEY CAME EVERY ONE FROM HIS OWN PLACE; ELIPHAZ THE TEMANITE, AND BILDADI THE SHUHITE, AND ZOPHAR THE NAAMATHITE: FOR THEY HAD MADE AN APPOINTMENTE7 TOGETHER TO COME TO MOURN WITH HIM AND TO COMFORT HIM.EH# 12 AND WHEN THEY LIFTED UP THEIR EYES AFAR OFF, AND KNEW HIM NOT, THEYI LIFTED UP THEIR VOICE, AND WEPT; AND THEY RENT EVERY ONE HIS MANTLE, ANDS/ SPRINKLED DUST UPON THEIR HEADS TOWARD HEAVEN.JK# 13 SO THEY SAT DOWN WITH HIM UPON THE GROUND SEVEN DAYS AND SEVEN NIGHTS,IL AND NONE SPAKE A WORD UNTO HIM: FOR THEY SAW THAT HIS GRIEF WAS VERY GREAT. = CHAPTER 3 8# 1 AFTER THIS OPENED JOB HIS MOUTH, AND CURSED HIS DAY.# 2 AND JOB SPAKE, AND SAID,H# 3 LET THE DAY PERISH WHEREIN I WAS BORN, AND THE NIGHT IN WHICH IT WAS& SAID, THERE IS A MAN CHILD CONCEIVED.K# 4 LET THAT DAY BE DARKNESS; LET NOT GOD REGARD IT FROM ABOVE, NEITHER LET  THE LIGHT SHINE UPON IT.SM# 5 LET DARKNESS AND THE SHADOW OF DEATH STAIN IT; LET A CLOUD DWELL UPON IT;U) LET THE BLACKNESS OF THE DAY TERRIFY IT. L# 6 AS FOR THAT NIGHT, LET DARKNESS SEIZE UPON IT; LET IT NOT BE JOINED UNTOE THE DAYS OF THE YEAR, LET IT NOT COME INTO THE NUMBER OF THE MONTHS.OE# 7 LO, LET THAT NIGHT BE SOLITARY, LET NO JOYFUL VOICE COME THEREIN.NI# 8 LET THEM CURSE IT THAT CURSE THE DAY, WHO ARE READY TO RAISE UP THEIRD MOURNING.M# 9 LET THE STARS OF THE TWILIGHT THEREOF BE DARK; LET IT LOOK FOR LIGHT, BUT6 HAVE NONE; NEITHER LET IT SEE THE DAWNING OF THE DAY:M# 10 BECAUSE IT SHUT NOT UP THE DOORS OF MY MOTHERS WOMB, NOR HID SORROW FROMT MINE EYES.TI# 11 WHY DIED I NOT FROM THE WOMB? WHY DID I NOT GIVE UP THE GHOST WHEN IL CAME OUT OF THE BELLY?UI# 12 WHY DID THE KNEES PREVENT ME? OR WHY THE BREASTS THAT I SHOULD SUCK?CJ# 13 FOR NOW SHOULD I HAVE LAIN STILL AND BEEN QUIET, I SHOULD HAVE SLEPT: THEN HAD I BEEN AT REST,.M# 14 WITH KINGS AND COUNSELLORS OF THE EARTH, WHICH BUILD DESOLATE PLACES FOR THEMSELVES;H# 15 OR WITH PRINCES THAT HAD GOLD, WHO FILLED THEIR HOUSES WITH SILVER:J# 00pp5b5D%5%T6%! !16 OR AS AN HIDDEN UNTIMELY BIRTH I HAD NOT BEEN; AS INFANTS WHICH NEVER SAW LIGHT.TK# 17 THERE THE WICKED CEASE FROM TROUBLING; AND THERE THE WEARY BE AT REST. F# 18 THERE THE PRISONERS REST TOGETHER; THEY HEAR NOT THE VOICE OF THE OPPRESSOR.WL# 19 THE SMALL AND GREAT ARE THERE; AND THE SERVANT IS FREE FROM HIS MASTER.I# 20 WHEREFORE IS LIGHT GIVEN TO HIM THAT IS IN MISERY, AND LIFE UNTO THEO BITTER IN SOUL;J# 21 WHICH LONG FOR DEATH, BUT IT COMETH NOT; AND DIG FOR IT MORE THAN FOR HID TREASURES;OK# 22 WHICH REJOICE EXCEEDINGLY, AND ARE GLAD, WHEN THEY CAN FIND THE GRAVE?GK# 23 WHY IS LIGHT GIVEN TO A MAN WHOSE WAY IS HID, AND WHOM GOD HATH HEDGEDE IN?L# 24 FOR MY SIGHING COMETH BEFORE I EAT, AND MY ROARINGS ARE POURED OUT LIKE THE WATERS.K# 25 FOR THE THING WHICH I GREATLY FEARED IS COME UPON ME, AND THAT WHICH IW WAS AFRAID OF IS COME UNTO ME.AF# 26 I WAS NOT IN SAFETY, NEITHER HAD I REST, NEITHER WAS I QUIET; YET TROUBLE CAME. = CHAPTER 4 0# 1 THEN ELIPHAZ THE TEMANITE ANSWERED AND SAID,G# 2 IF WE ASSAY TO COMMUNE WITH THEE, WILT THOU BE GRIEVED? BUT WHO CAN WITHHOLD HIMSELF FROM SPEAKING?J# 3 BEHOLD, THOU HAST INSTRUCTED MANY, AND THOU HAST STRENGTHENED THE WEAK HANDS. L# 4 THY WORDS HAVE UPHOLDEN HIM THAT WAS FALLING, AND THOU HAST STRENGTHENED THE FEEBLE KNEES.J# 5 BUT NOW IT IS COME UPON THEE, AND THOU FAINTEST; IT TOUCHETH THEE, AND THOU ART TROUBLED.EJ# 6 IS NOT THIS THY FEAR, THY CONFIDENCE, THY HOPE, AND THE UPRIGHTNESS OF THY WAYS?K# 7 REMEMBER, I PRAY THEE, WHO EVER PERISHED, BEING INNOCENT? OR WHERE WERET THE RIGHTEOUS CUT OFF? J# 8 EVEN AS I HAVE SEEN, THEY THAT PLOW INIQUITY, AND SOW WICKEDNESS, REAP THE SAME.J# 9 BY THE BLAST OF GOD THEY PERISH, AND BY THE BREATH OF HIS NOSTRILS ARE THEY CONSUMED.HM# 10 THE ROARING OF THE LION, AND THE VOICE OF THE FIERCE LION, AND THE TEETH OF THE YOUNG LIONS, ARE BROKEN.L# 11 THE OLD LION PERISHETH FOR LACK OF PREY, AND THE STOUT LIONS WHELPS ARE SCATTERED ABROAD.K# 12 NOW A THING WAS SECRETLY BROUGHT TO ME, AND MINE EAR RECEIVED A LITTLE THEREOF.RJ# 13 IN THOUGHTS FROM THE VISIONS OF THE NIGHT, WHEN DEEP SLEEP FALLETH ON MEN, H# 14 FEAR CAME UPON ME, AND TREMBLING, WHICH MADE ALL MY BONES TO SHAKE.H# 15 THEN A SPIRIT PASSED BEFORE MY FACE; THE HAIR OF MY FLESH STOOD UP:K# 16 IT STOOD STILL, BUT I COULD NOT DISCERN THE FORM THEREOF: AN IMAGE WASNB BEFORE MINE EYES, THERE WAS SILENCE, AND I HEARD A VOICE, SAYING,J# 17 SHALL MORTAL MAN BE MORE JUST THAN GOD? SHALL A MAN BE MORE PURE THAN HIS MAKER?,L# 18 BEHOLD, HE PUT NO TRUST IN HIS SERVANTS; AND HIS ANGELS HE CHARGED WITH FOLLY:NL# 19 HOW MUCH LESS IN THEM THAT DWELL IN HOUSES OF CLAY, WHOSE FOUNDATION IS0 IN THE DUST, WHICH ARE CRUSHED BEFORE THE MOTH?M# 20 THEY ARE DESTROYED FROM MORNING TO EVENING: THEY PERISH FOR EVER WITHOUTL ANY REGARDING IT.G# 21 DOTH NOT THEIR EXCELLENCY WHICH IS IN THEM GO AWAY? THEY DIE, EVENN WITHOUT WISDOM. = CHAPTER 5 H# 1 CALL NOW, IF THERE BE ANY THAT WILL ANSWER THEE; AND TO WHICH OF THE SAINTS WILT THOU TURN?HF# 2 FOR WRATH KILLETH THE FOOLISH MAN, AND ENVY SLAYETH THE SILLY ONE.B# 3 I HAVE SEEN THE FOOLISH TAKING ROOT: BUT SUDDENLY I CURSED HIS HABITATION.G# 4 HIS CHILDREN ARE FAR FROM SAFETY, AND THEY ARE CRUSHED IN THE GATE,O& NEITHER IS THERE ANY TO DELIVER THEM.M# 5 WHOSE HARVEST THE HUNGRY EATETH UP, AND TAKETH IT EVEN OUT OF THE THORNS, . AND THE ROBBER SWALLOWETH UP THEIR SUBSTANCE.J# 6 ALTHOUGH AFFLICTION COMETH NOT FORTH OF THE DUST, NEITHER DOTH TROUBLE SPRING OUT OF THE GROUND;;# 7 YET MAN IS BORN UNTO TROUBLE, AS THE SPARKS FLY UPWARD. @# 8 I WOULD SEEK UNTO GOD, AND UNTO GOD WOULD I COMMIT MY CAUSE:H# 9 WHICH DOETH GREAT THINGS AND UNSEARCHABLE; MARVELLOUS THINGS WITHOUT NUMBER:H# 10 WHO GIVETH RAIN UPON THE EARTH, AND SENDETH WATERS UPON THE FIELDS:G# 11 TO SET UP ON HIGH THOSE THAT BE LOW; THAT THOSE WHICH MOURN MAY BE  EXALTED TO SAFETY.LK# 12 HE DISAPPOINTETH THE DEVICES OF THE CRAFTY, SO THAT THEIR HANDS CANNOTU PERFORM THEIR ENTERPRISE.G# 13 HE TAKETH T00px54<%X>%+%O-%TADATADATAHE WISE IN THEIR OWN CRAFTINESS: AND THE COUNSEL OF THE  FROWARD IS CARRIED HEADLONG.UL# 14 THEY MEET WITH DARKNESS IN THE DAY TIME, AND GROPE IN THE NOONDAY AS IN THE NIGHT.LJ# 15 BUT HE SAVETH THE POOR FROM THE SWORD, FROM THEIR MOUTH, AND FROM THE HAND OF THE MIGHTY.<# 16 SO THE POOR HATH HOPE, AND INIQUITY STOPPETH HER MOUTH.M# 17 BEHOLD, HAPPY IS THE MAN WHOM GOD CORRECTETH: THEREFORE DESPISE NOT THOUI THE CHASTENING OF THE ALMIGHTY:H# 18 FOR HE MAKETH SORE, AND BINDETH UP: HE WOUNDETH, AND HIS HANDS MAKE WHOLE.TM# 19 HE SHALL DELIVER THEE IN SIX TROUBLES: YEA, IN SEVEN THERE SHALL NO EVILW TOUCH THEE.L# 20 IN FAMINE HE SHALL REDEEM THEE FROM DEATH: AND IN WAR FROM THE POWER OF THE SWORD.RL# 21 THOU SHALT BE HID FROM THE SCOURGE OF THE TONGUE: NEITHER SHALT THOU BE& AFRAID OF DESTRUCTION WHEN IT COMETH.M# 22 AT DESTRUCTION AND FAMINE THOU SHALT LAUGH: NEITHER SHALT THOU BE AFRAIDE OF THE BEASTS OF THE EARTH.M# 23 FOR THOU SHALT BE IN LEAGUE WITH THE STONES OF THE FIELD: AND THE BEASTSA* OF THE FIELD SHALL BE AT PEACE WITH THEE.H# 24 AND THOU SHALT KNOW THAT THY TABERNACLE SHALL BE IN PEACE; AND THOU/ SHALT VISIT THY HABITATION, AND SHALT NOT SIN.NK# 25 THOU SHALT KNOW ALSO THAT THY SEED SHALL BE GREAT, AND THINE OFFSPRING  AS THE GRASS OF THE EARTH.TH# 26 THOU SHALT COME TO THY GRAVE IN A FULL AGE, LIKE AS A SHOCK OF CORN COMETH IN IN HIS SEASON.HJ# 27 LO THIS, WE HAVE SEARCHED IT, SO IT IS; HEAR IT, AND KNOW THOU IT FOR THY GOOD. = CHAPTER 6 # 1 BUT JOB ANSWERED AND SAID,H# 2 OH THAT MY GRIEF WERE THROUGHLY WEIGHED, AND MY CALAMITY LAID IN THE BALANCES TOGETHER!LL# 3 FOR NOW IT WOULD BE HEAVIER THAN THE SAND OF THE SEA: THEREFORE MY WORDS ARE SWALLOWED UP.M# 4 FOR THE ARROWS OF THE ALMIGHTY ARE WITHIN ME, THE POISON WHEREOF DRINKETHHH UP MY SPIRIT: THE TERRORS OF GOD DO SET THEMSELVES IN ARRAY AGAINST ME.H# 5 DOTH THE WILD ASS BRAY WHEN HE HATH GRASS? OR LOWETH THE OX OVER HIS FODDER?L# 6 CAN THAT WHICH IS UNSAVOURY BE EATEN WITHOUT SALT? OR IS THERE ANY TASTE IN THE WHITE OF AN EGG?F# 7 THE THINGS THAT MY SOUL REFUSED TO TOUCH ARE AS MY SORROWFUL MEAT.J# 8 OH THAT I MIGHT HAVE MY REQUEST; AND THAT GOD WOULD GRANT ME THE THING THAT I LONG FOR!UL# 9 EVEN THAT IT WOULD PLEASE GOD TO DESTROY ME; THAT HE WOULD LET LOOSE HIS HAND, AND CUT ME OFF!J# 10 THEN SHOULD I YET HAVE COMFORT; YEA, I WOULD HARDEN MYSELF IN SORROW:G LET HIM NOT SPARE; FOR I HAVE NOT CONCEALED THE WORDS OF THE HOLY ONE.HJ# 11 WHAT IS MY STRENGTH, THAT I SHOULD HOPE? AND WHAT IS MINE END, THAT I SHOULD PROLONG MY LIFE?D# 12 IS MY STRENGTH THE STRENGTH OF STONES? OR IS MY FLESH OF BRASS?># 13 IS NOT MY HELP IN ME? AND IS WISDOM DRIVEN QUITE FROM ME?K# 14 TO HIM THAT IS AFFLICTED PITY SHOULD BE SHEWED FROM HIS FRIEND; BUT HEA$ FORSAKETH THE FEAR OF THE ALMIGHTY.H# 15 MY BRETHREN HAVE DEALT DECEITFULLY AS A BROOK, AND AS THE STREAM OF BROOKS THEY PASS AWAY;TJ# 16 WHICH ARE BLACKISH BY REASON OF THE ICE, AND WHEREIN THE SNOW IS HID:L# 17 WHAT TIME THEY WAX WARM, THEY VANISH: WHEN IT IS HOT, THEY ARE CONSUMED OUT OF THEIR PLACE.M# 18 THE PATHS OF THEIR WAY ARE TURNED ASIDE; THEY GO TO NOTHING, AND PERISH.NG# 19 THE TROOPS OF TEMA LOOKED, THE COMPANIES OF SHEBA WAITED FOR THEM.IM# 20 THEY WERE CONFOUNDED BECAUSE THEY HAD HOPED; THEY CAME THITHER, AND WERET ASHAMED. D# 21 FOR NOW YE ARE NOTHING; YE SEE MY CASTING DOWN, AND ARE AFRAID.J# 22 DID I SAY, BRING UNTO ME? OR, GIVE A REWARD FOR ME OF YOUR SUBSTANCE?L# 23 OR, DELIVER ME FROM THE ENEMYS HAND? OR, REDEEM ME FROM THE HAND OF THE MIGHTY?L# 24 TEACH ME, AND I WILL HOLD MY TONGUE: AND CAUSE ME TO UNDERSTAND WHEREIN I HAVE ERRED.F# 25 HOW FORCIBLE ARE RIGHT WORDS! BUT WHAT DOTH YOUR ARGUING REPROVE?D# 26 DO YE IMAGINE TO REPROVE WORDS, AND THE SPEECHES OF ONE THAT IS DESPERATE, WHICH ARE AS WIND?H# 27 YEA, YE OVERWHELM THE FATHERLESS, AND YE DIG A PIT FOR YOUR FRIEND.L# 28 NOW THEREFORE BE CONTENT, LOOK UPON ME; FOR IT IS EVIDENT UNTO YOU IF I LIE. F# 29 RETURN, I PRAY YOU, LET IT NOT BE INIQUITY; YEA, RETU00p5b5D%5%T6%! !RN AGAIN, MY RIGHTEOUSNESS IS IN IT.M# 30 IS THERE INIQUITY IN MY TONGUE? CANNOT MY TASTE DISCERN PERVERSE THINGS?. = CHAPTER 7 K# 1 IS THERE NOT AN APPOINTED TIME TO MAN UPON EARTH? ARE NOT HIS DAYS ALSOE LIKE THE DAYS OF AN HIRELING?J# 2 AS A SERVANT EARNESTLY DESIRETH THE SHADOW, AND AS AN HIRELING LOOKETH FOR THE REWARD OF HIS WORK:F# 3 SO AM I MADE TO POSSESS MONTHS OF VANITY, AND WEARISOME NIGHTS ARE APPOINTED TO ME. L# 4 WHEN I LIE DOWN, I SAY, WHEN SHALL I ARISE, AND THE NIGHT BE GONE? AND I< AM FULL OF TOSSINGS TO AND FRO UNTO THE DAWNING OF THE DAY.L# 5 MY FLESH IS CLOTHED WITH WORMS AND CLODS OF DUST; MY SKIN IS BROKEN, AND BECOME LOATHSOME.K# 6 MY DAYS ARE SWIFTER THAN A WEAVERS SHUTTLE, AND ARE SPENT WITHOUT HOPE.E# 7 O REMEMBER THAT MY LIFE IS WIND: MINE EYE SHALL NO MORE SEE GOOD.EI# 8 THE EYE OF HIM THAT HATH SEEN ME SHALL SEE ME NO MORE: THINE EYES AREI UPON ME, AND I AM NOT.AM# 9 AS THE CLOUD IS CONSUMED AND VANISHETH AWAY: SO HE THAT GOETH DOWN TO THE  GRAVE SHALL COME UP NO MORE.OK# 10 HE SHALL RETURN NO MORE TO HIS HOUSE, NEITHER SHALL HIS PLACE KNOW HIMI ANY MORE.M# 11 THEREFORE I WILL NOT REFRAIN MY MOUTH; I WILL SPEAK IN THE ANGUISH OF MYF6 SPIRIT; I WILL COMPLAIN IN THE BITTERNESS OF MY SOUL.?# 12 AM I A SEA, OR A WHALE, THAT THOU SETTEST A WATCH OVER ME? L# 13 WHEN I SAY, MY BED SHALL COMFORT ME, MY COUCH SHALL EASE MY COMPLAINTS;I# 14 THEN THOU SCAREST ME WITH DREAMS, AND TERRIFIEST ME THROUGH VISIONS:AH# 15 SO THAT MY SOUL CHOOSETH STRANGLING, AND DEATH RATHER THAN MY LIFE.G# 16 I LOATHE IT; I WOULD NOT LIVE ALWAY: LET ME ALONE; FOR MY DAYS AREA VANITY.J# 17 WHAT IS MAN, THAT THOU SHOULDEST MAGNIFY HIM? AND THAT THOU SHOULDEST SET THINE HEART UPON HIM?G# 18 AND THAT THOU SHOULDEST VISIT HIM EVERY MORNING, AND TRY HIM EVERYT MOMENT?K# 19 HOW LONG WILT THOU NOT DEPART FROM ME, NOR LET ME ALONE TILL I SWALLOWY DOWN MY SPITTLE?TK# 20 I HAVE SINNED; WHAT SHALL I DO UNTO THEE, O THOU PRESERVER OF MEN? WHY J HAST THOU SET ME AS A MARK AGAINST THEE, SO THAT I AM A BURDEN TO MYSELF?D# 21 AND WHY DOST THOU NOT PARDON MY TRANSGRESSION, AND TAKE AWAY MYK INIQUITY? FOR NOW SHALL I SLEEP IN THE DUST; AND THOU SHALT SEEK ME IN THET MORNING, BUT I SHALL NOT BE. = CHAPTER 8 /# 1 THEN ANSWERED BILDAD THE SHUHITE, AND SAID, J# 2 HOW LONG WILT THOU SPEAK THESE THINGS? AND HOW LONG SHALL THE WORDS OF! THY MOUTH BE LIKE A STRONG WIND?ED# 3 DOTH GOD PERVERT JUDGMENT? OR DOTH THE ALMIGHTY PERVERT JUSTICE?K# 4 IF THY CHILDREN HAVE SINNED AGAINST HIM, AND HE HAVE CAST THEM AWAY FORO THEIR TRANSGRESSION;DL# 5 IF THOU WOULDEST SEEK UNTO GOD BETIMES, AND MAKE THY SUPPLICATION TO THE ALMIGHTY;J# 6 IF THOU WERT PURE AND UPRIGHT; SURELY NOW HE WOULD AWAKE FOR THEE, AND5 MAKE THE HABITATION OF THY RIGHTEOUSNESS PROSPEROUS. E# 7 THOUGH THY BEGINNING WAS SMALL, YET THY LATTER END SHOULD GREATLYH INCREASE.K# 8 FOR ENQUIRE, I PRAY THEE, OF THE FORMER AGE, AND PREPARE THYSELF TO THEE SEARCH OF THEIR FATHERS:I# 9 (FOR WE ARE BUT OF YESTERDAY, AND KNOW NOTHING, BECAUSE OUR DAYS UPONO EARTH ARE A SHADOW:)DK# 10 SHALL NOT THEY TEACH THEE, AND TELL THEE, AND UTTER WORDS OUT OF THEIRE HEART?TH# 11 CAN THE RUSH GROW UP WITHOUT MIRE? CAN THE FLAG GROW WITHOUT WATER?M# 12 WHILST IT IS YET IN HIS GREENNESS, AND NOT CUT DOWN, IT WITHERETH BEFOREG ANY OTHER HERB.K# 13 SO ARE THE PATHS OF ALL THAT FORGET GOD; AND THE HYPOCRITES HOPE SHALL  PERISH:I# 14 WHOSE HOPE SHALL BE CUT OFF, AND WHOSE TRUST SHALL BE A SPIDERS WEB.WK# 15 HE SHALL LEAN UPON HIS HOUSE, BUT IT SHALL NOT STAND: HE SHALL HOLD ITA FAST, BUT IT SHALL NOT ENDURE.EM# 16 HE IS GREEN BEFORE THE SUN, AND HIS BRANCH SHOOTETH FORTH IN HIS GARDEN.RI# 17 HIS ROOTS ARE WRAPPED ABOUT THE HEAP, AND SEETH THE PLACE OF STONES.IM# 18 IF HE DESTROY HIM FROM HIS PLACE, THEN IT SHALL DENY HIM, SAYING, I HAVE. NOT SEEN THEE. J# 19 BEHOLD, THIS IS THE JOY OF HIS WAY, AND OUT OF THE EARTH SHALL OTHERS GROW.K# 20 BEHOLD, GOD WILL NOT CAST AWAY A PERFECT MAN, NEITHER WILL HE HELP THE EVIL DOERS:G# 00p54<%X>%+%O-%TADATADATA21 TILL HE FILL THY MOUTH WITH LAUGHING, AND THY LIPS WITH REJOICING. L# 22 THEY THAT HATE THEE SHALL BE CLOTHED WITH SHAME; AND THE DWELLING PLACE$ OF THE WICKED SHALL COME TO NOUGHT. = CHAPTER 9 # 1 THEN JOB ANSWERED AND SAID,ID# 2 I KNOW IT IS SO OF A TRUTH: BUT HOW SHOULD MAN BE JUST WITH GOD?H# 3 IF HE WILL CONTEND WITH HIM, HE CANNOT ANSWER HIM ONE OF A THOUSAND.J# 4 HE IS WISE IN HEART, AND MIGHTY IN STRENGTH: WHO HATH HARDENED HIMSELF! AGAINST HIM, AND HATH PROSPERED? K# 5 WHICH REMOVETH THE MOUNTAINS, AND THEY KNOW NOT: WHICH OVERTURNETH THEMI IN HIS ANGER.E# 6 WHICH SHAKETH THE EARTH OUT OF HER PLACE, AND THE PILLARS THEREOFP TREMBLE.HJ# 7 WHICH COMMANDETH THE SUN, AND IT RISETH NOT; AND SEALETH UP THE STARS.M# 8 WHICH ALONE SPREADETH OUT THE HEAVENS, AND TREADETH UPON THE WAVES OF THEF SEA.LG# 9 WHICH MAKETH ARCTURUS, ORION, AND PLEIADES, AND THE CHAMBERS OF THEE SOUTH.,H# 10 WHICH DOETH GREAT THINGS PAST FINDING OUT; YEA, AND WONDERS WITHOUT NUMBER.E# 11 LO, HE GOETH BY ME, AND I SEE HIM NOT: HE PASSETH ON ALSO, BUT IE PERCEIVE HIM NOT.L# 12 BEHOLD, HE TAKETH AWAY, WHO CAN HINDER HIM? WHO WILL SAY UNTO HIM, WHAT DOEST THOU?I# 13 IF GOD WILL NOT WITHDRAW HIS ANGER, THE PROUD HELPERS DO STOOP UNDER  HIM. M# 14 HOW MUCH LESS SHALL I ANSWER HIM, AND CHOOSE OUT MY WORDS TO REASON WITH  HIM? L# 15 WHOM, THOUGH I WERE RIGHTEOUS, YET WOULD I NOT ANSWER, BUT I WOULD MAKE SUPPLICATION TO MY JUDGE.M# 16 IF I HAD CALLED, AND HE HAD ANSWERED ME; YET WOULD I NOT BELIEVE THAT HED HAD HEARKENED UNTO MY VOICE.LI# 17 FOR HE BREAKETH ME WITH A TEMPEST, AND MULTIPLIETH MY WOUNDS WITHOUT  CAUSE.WM# 18 HE WILL NOT SUFFER ME TO TAKE MY BREATH, BUT FILLETH ME WITH BITTERNESS.TL# 19 IF I SPEAK OF STRENGTH, LO, HE IS STRONG: AND IF OF JUDGMENT, WHO SHALL SET ME A TIME TO PLEAD?I# 20 IF I JUSTIFY MYSELF, MINE OWN MOUTH SHALL CONDEMN ME: IF I SAY, I AMO* PERFECT, IT SHALL ALSO PROVE ME PERVERSE.L# 21 THOUGH I WERE PERFECT, YET WOULD I NOT KNOW MY SOUL: I WOULD DESPISE MY LIFE.J# 22 THIS IS ONE THING, THEREFORE I SAID IT, HE DESTROYETH THE PERFECT AND THE WICKED.D# 23 IF THE SCOURGE SLAY SUDDENLY, HE WILL LAUGH AT THE TRIAL OF THE INNOCENT.M# 24 THE EARTH IS GIVEN INTO THE HAND OF THE WICKED: HE COVERETH THE FACES OFA2 THE JUDGES THEREOF; IF NOT, WHERE, AND WHO IS HE?K# 25 NOW MY DAYS ARE SWIFTER THAN A POST: THEY FLEE AWAY, THEY SEE NO GOOD.OJ# 26 THEY ARE PASSED AWAY AS THE SWIFT SHIPS: AS THE EAGLE THAT HASTETH TO THE PREY.M# 27 IF I SAY, I WILL FORGET MY COMPLAINT, I WILL LEAVE OFF MY HEAVINESS, AND  COMFORT MYSELF:E# 28 I AM AFRAID OF ALL MY SORROWS, I KNOW THAT THOU WILT NOT HOLD MEH INNOCENT./# 29 IF I BE WICKED, WHY THEN LABOUR I IN VAIN?IK# 30 IF I WASH MYSELF WITH SNOW WATER, AND MAKE MY HANDS NEVER SO CLEAN; ITHL# 31 YET SHALT THOU PLUNGE ME IN THE DITCH, AND MINE OWN CLOTHES SHALL ABHOR ME.J# 32 FOR HE IS NOT A MAN, AS I AM, THAT I SHOULD ANSWER HIM, AND WE SHOULD COME TOGETHER IN JUDGMENT.OM# 33 NEITHER IS THERE ANY DAYSMAN BETWIXT US, THAT MIGHT LAY HIS HAND UPON USA BOTH.H# 34 LET HIM TAKE HIS ROD AWAY FROM ME, AND LET NOT HIS FEAR TERRIFY ME:D# 35 THEN WOULD I SPEAK, AND NOT FEAR HIM; BUT IT IS NOT SO WITH ME. = CHAPTER 10 N# 1 MY SOUL IS WEARY OF MY LIFE; I WILL LEAVE MY COMPLAINT UPON MYSELF; I WILL$ SPEAK IN THE BITTERNESS OF MY SOUL.M# 2 I WILL SAY UNTO GOD, DO NOT CONDEMN ME; SHEW ME WHEREFORE THOU CONTENDESTA WITH ME.AI# 3 IS IT GOOD UNTO THEE THAT THOU SHOULDEST OPPRESS, THAT THOU SHOULDESTRK DESPISE THE WORK OF THINE HANDS, AND SHINE UPON THE COUNSEL OF THE WICKED?H8# 4 HAST THOU EYES OF FLESH? OR SEEST THOU AS MAN SEETH?@# 5 ARE THY DAYS AS THE DAYS OF MAN? ARE THY YEARS AS MANS DAYS,H# 6 THAT THOU ENQUIREST AFTER MINE INIQUITY, AND SEARCHEST AFTER MY SIN?M# 7 THOU KNOWEST THAT I AM NOT WICKED; AND THERE IS NONE THAT CAN DELIVER OUTL OF THINE HAND. L# 8 THINE HANDS HAVE MADE ME AND FASHIONED ME TOGETHER ROUND ABOUT; YET THOU DOST DESTROY ME.UJ# 9 REMEMBER, I BESEECH THEE, THAT THOU HAST MADE ME AS THE CLAY; AN00p5b5D%5%T6%! !D WILT THOU BRING ME INTO DUST AGAIN? E# 10 HAST THOU NOT POURED ME OUT AS MILK, AND CURDLED ME LIKE CHEESE? L# 11 THOU HAST CLOTHED ME WITH SKIN AND FLESH, AND HAST FENCED ME WITH BONES AND SINEWS.L# 12 THOU HAST GRANTED ME LIFE AND FAVOUR, AND THY VISITATION HATH PRESERVED MY SPIRIT.EL# 13 AND THESE THINGS HAST THOU HID IN THINE HEART: I KNOW THAT THIS IS WITH THEE.J# 14 IF I SIN, THEN THOU MARKEST ME, AND THOU WILT NOT ACQUIT ME FROM MINE INIQUITY.L# 15 IF I BE WICKED, WOE UNTO ME; AND IF I BE RIGHTEOUS, YET WILL I NOT LIFTH UP MY HEAD. I AM FULL OF CONFUSION; THEREFORE SEE THOU MINE AFFLICTION;H# 16 FOR IT INCREASETH. THOU HUNTEST ME AS A FIERCE LION: AND AGAIN THOU$ SHEWEST THYSELF MARVELLOUS UPON ME.M# 17 THOU RENEWEST THY WITNESSES AGAINST ME, AND INCREASEST THINE INDIGNATION3) UPON ME; CHANGES AND WAR ARE AGAINST ME.AM# 18 WHEREFORE THEN HAST THOU BROUGHT ME FORTH OUT OF THE WOMB? OH THAT I HADT, GIVEN UP THE GHOST, AND NO EYE HAD SEEN ME!L# 19 I SHOULD HAVE BEEN AS THOUGH I HAD NOT BEEN; I SHOULD HAVE BEEN CARRIED FROM THE WOMB TO THE GRAVE.G# 20 ARE NOT MY DAYS FEW? CEASE THEN, AND LET ME ALONE, THAT I MAY TAKEH COMFORT A LITTLE,L# 21 BEFORE I GO WHENCE I SHALL NOT RETURN, EVEN TO THE LAND OF DARKNESS AND THE SHADOW OF DEATH;TH# 22 A LAND OF DARKNESS, AS DARKNESS ITSELF; AND OF THE SHADOW OF DEATH,7 WITHOUT ANY ORDER, AND WHERE THE LIGHT IS AS DARKNESS.O = CHAPTER 11 2# 1 THEN ANSWERED ZOPHAR THE NAAMATHITE, AND SAID,K# 2 SHOULD NOT THE MULTITUDE OF WORDS BE ANSWERED? AND SHOULD A MAN FULL OFN TALK BE JUSTIFIED?OK# 3 SHOULD THY LIES MAKE MEN HOLD THEIR PEACE? AND WHEN THOU MOCKEST, SHALLT NO MAN MAKE THEE ASHAMED?J# 4 FOR THOU HAST SAID, MY DOCTRINE IS PURE, AND I AM CLEAN IN THINE EYES.@# 5 BUT OH THAT GOD WOULD SPEAK, AND OPEN HIS LIPS AGAINST THEE;K# 6 AND THAT HE WOULD SHEW THEE THE SECRETS OF WISDOM, THAT THEY ARE DOUBLEHK TO THAT WHICH IS! KNOW THEREFORE THAT GOD EXACTETH OF THEE LESS THAN THINEA INIQUITY DESERVETH.J# 7 CANST THOU BY SEARCHING FIND OUT GOD? CANST THOU FIND OUT THE ALMIGHTY UNTO PERFECTION?UM# 8 IT IS AS HIGH AS HEAVEN; WHAT CANST THOU DO? DEEPER THAN HELL; WHAT CANSTA THOU KNOW?EK# 9 THE MEASURE THEREOF IS LONGER THAN THE EARTH, AND BROADER THAN THE SEA..M# 10 IF HE CUT OFF, AND SHUT UP, OR GATHER TOGETHER, THEN WHO CAN HINDER HIM?TH# 11 FOR HE KNOWETH VAIN MEN: HE SEETH WICKEDNESS ALSO; WILL HE NOT THEN CONSIDER IT? J# 12 FOR VAIN MEN WOULD BE WISE, THOUGH MAN BE BORN LIKE A WILD ASSS COLT.I# 13 IF THOU PREPARE THINE HEART, AND STRETCH OUT THINE HANDS TOWARD HIM;J# 14 IF INIQUITY BE IN THINE HAND, PUT IT FAR AWAY, AND LET NOT WICKEDNESS DWELL IN THY TABERNACLES.J# 15 FOR THEN SHALT THOU LIFT UP THY FACE WITHOUT SPOT; YEA, THOU SHALT BE STEDFAST, AND SHALT NOT FEAR:I# 16 BECAUSE THOU SHALT FORGET THY MISERY, AND REMEMBER IT AS WATERS THATW PASS AWAY: M# 17 AND THINE AGE SHALL BE CLEARER THAN THE NOONDAY: THOU SHALT SHINE FORTH,O THOU SHALT BE AS THE MORNING.I# 18 AND THOU SHALT BE SECURE, BECAUSE THERE IS HOPE; YEA, THOU SHALT DIGH4 ABOUT THEE, AND THOU SHALT TAKE THY REST IN SAFETY.I# 19 ALSO THOU SHALT LIE DOWN, AND NONE SHALL MAKE THEE AFRAID; YEA, MANY  SHALL MAKE SUIT UNTO THEE.PJ# 20 BUT THE EYES OF THE WICKED SHALL FAIL, AND THEY SHALL NOT ESCAPE, AND3 THEIR HOPE SHALL BE AS THE GIVING UP OF THE GHOST.E = CHAPTER 12 T# 1 AND JOB ANSWERED AND SAID,B# 2 NO DOUBT BUT YE ARE THE PEOPLE, AND WISDOM SHALL DIE WITH YOU.K# 3 BUT I HAVE UNDERSTANDING AS WELL AS YOU; I AM NOT INFERIOR TO YOU: YEA,I& WHO KNOWETH NOT SUCH THINGS AS THESE?E# 4 I AM AS ONE MOCKED OF HIS NEIGHBOUR, WHO CALLETH UPON GOD, AND HEW9 ANSWERETH HIM: THE JUST UPRIGHT MAN IS LAUGHED TO SCORN. G# 5 HE THAT IS READY TO SLIP WITH HIS FEET IS AS A LAMP DESPISED IN THEA THOUGHT OF HIM THAT IS AT EASE.M# 6 THE TABERNACLES OF ROBBERS PROSPER, AND THEY THAT PROVOKE GOD ARE SECURE;D) INTO WHOSE HAND GOD BRINGETH ABUNDANTLY. K# 7 BUT ASK NOW THE BEASTS, AND THEY SHALL TEACH THEE; AND THE FOWLS OF THEI AIR, AND THEY SHALL TELL THEE:WM00p54<%X>%+%O-%TADATADATA# 8 OR SPEAK TO THE EARTH, AND IT SHALL TEACH THEE: AND THE FISHES OF THE SEAW SHALL DECLARE UNTO THEE.WM# 9 WHO KNOWETH NOT IN ALL THESE THAT THE HAND OF THE LORD HATH WROUGHT THIS?AK# 10 IN WHOSE HAND IS THE SOUL OF EVERY LIVING THING, AND THE BREATH OF ALLI MANKIND.># 11 DOTH NOT THE EAR TRY WORDS? AND THE MOUTH TASTE HIS MEAT?E# 12 WITH THE ANCIENT IS WISDOM; AND IN LENGTH OF DAYS UNDERSTANDING. H# 13 WITH HIM IS WISDOM AND STRENGTH, HE HATH COUNSEL AND UNDERSTANDING.M# 14 BEHOLD, HE BREAKETH DOWN, AND IT CANNOT BE BUILT AGAIN: HE SHUTTETH UP AN" MAN, AND THERE CAN BE NO OPENING.M# 15 BEHOLD, HE WITHHOLDETH THE WATERS, AND THEY DRY UP: ALSO HE SENDETH THEMT" OUT, AND THEY OVERTURN THE EARTH.L# 16 WITH HIM IS STRENGTH AND WISDOM: THE DECEIVED AND THE DECEIVER ARE HIS.F# 17 HE LEADETH COUNSELLORS AWAY SPOILED, AND MAKETH THE JUDGES FOOLS.I# 18 HE LOOSETH THE BOND OF KINGS, AND GIRDETH THEIR LOINS WITH A GIRDLE.WB# 19 HE LEADETH PRINCES AWAY SPOILED, AND OVERTHROWETH THE MIGHTY.C# 20 HE REMOVETH AWAY THE SPEECH OF THE TRUSTY, AND TAKETH AWAY THEM UNDERSTANDING OF THE AGED.NH# 21 HE POURETH CONTEMPT UPON PRINCES, AND WEAKENETH THE STRENGTH OF THE MIGHTY.J# 22 HE DISCOVERETH DEEP THINGS OUT OF DARKNESS, AND BRINGETH OUT TO LIGHT THE SHADOW OF DEATH.IE# 23 HE INCREASETH THE NATIONS, AND DESTROYETH THEM: HE ENLARGETH THEJ% NATIONS, AND STRAITENETH THEM AGAIN.OJ# 24 HE TAKETH AWAY THE HEART OF THE CHIEF OF THE PEOPLE OF THE EARTH, AND> CAUSETH THEM TO WANDER IN A WILDERNESS WHERE THERE IS NO WAY.M# 25 THEY GROPE IN THE DARK WITHOUT LIGHT, AND HE MAKETH THEM TO STAGGER LIKE  A DRUNKEN MAN.T = CHAPTER 13 EK# 1 LO, MINE EYE HATH SEEN ALL THIS, MINE EAR HATH HEARD AND UNDERSTOOD IT.GF# 2 WHAT YE KNOW, THE SAME DO I KNOW ALSO: I AM NOT INFERIOR UNTO YOU.J# 3 SURELY I WOULD SPEAK TO THE ALMIGHTY, AND I DESIRE TO REASON WITH GOD.B# 4 BUT YE ARE FORGERS OF LIES, YE ARE ALL PHYSICIANS OF NO VALUE.M# 5 O THAT YE WOULD ALTOGETHER HOLD YOUR PEACE! AND IT SHOULD BE YOUR WISDOM.SC# 6 HEAR NOW MY REASONING, AND HEARKEN TO THE PLEADINGS OF MY LIPS.AA# 7 WILL YE SPEAK WICKEDLY FOR GOD? AND TALK DECEITFULLY FOR HIM?E7# 8 WILL YE ACCEPT HIS PERSON? WILL YE CONTEND FOR GOD?DL# 9 IS IT GOOD THAT HE SHOULD SEARCH YOU OUT? OR AS ONE MAN MOCKETH ANOTHER, DO YE SO MOCK HIM?UB# 10 HE WILL SURELY REPROVE YOU, IF YE DO SECRETLY ACCEPT PERSONS.K# 11 SHALL NOT HIS EXCELLENCY MAKE YOU AFRAID? AND HIS DREAD FALL UPON YOU?HJ# 12 YOUR REMEMBRANCES ARE LIKE UNTO ASHES, YOUR BODIES TO BODIES OF CLAY.M# 13 HOLD YOUR PEACE, LET ME ALONE, THAT I MAY SPEAK, AND LET COME ON ME WHATP WILL.L# 14 WHEREFORE DO I TAKE MY FLESH IN MY TEETH, AND PUT MY LIFE IN MINE HAND?M# 15 THOUGH HE SLAY ME, YET WILL I TRUST IN HIM: BUT I WILL MAINTAIN MINE OWNN WAYS BEFORE HIM.EJ# 16 HE ALSO SHALL BE MY SALVATION: FOR AN HYPOCRITE SHALL NOT COME BEFORE HIM. B# 17 HEAR DILIGENTLY MY SPEECH, AND MY DECLARATION WITH YOUR EARS.K# 18 BEHOLD NOW, I HAVE ORDERED MY CAUSE; I KNOW THAT I SHALL BE JUSTIFIED.OM# 19 WHO IS HE THAT WILL PLEAD WITH ME? FOR NOW, IF I HOLD MY TONGUE, I SHALL  GIVE UP THE GHOST.LK# 20 ONLY DO NOT TWO THINGS UNTO ME: THEN WILL I NOT HIDE MYSELF FROM THEE.NK# 21 WITHDRAW THINE HAND FAR FROM ME: AND LET NOT THY DREAD MAKE ME AFRAID. L# 22 THEN CALL THOU, AND I WILL ANSWER: OR LET ME SPEAK, AND ANSWER THOU ME.L# 23 HOW MANY ARE MINE INIQUITIES AND SINS? MAKE ME TO KNOW MY TRANSGRESSION AND MY SIN.D# 24 WHEREFORE HIDEST THOU THY FACE, AND HOLDEST ME FOR THINE ENEMY?K# 25 WILT THOU BREAK A LEAF DRIVEN TO AND FRO? AND WILT THOU PURSUE THE DRY STUBBLE?HL# 26 FOR THOU WRITEST BITTER THINGS AGAINST ME, AND MAKEST ME TO POSSESS THE INIQUITIES OF MY YOUTH.K# 27 THOU PUTTEST MY FEET ALSO IN THE STOCKS, AND LOOKEST NARROWLY UNTO ALL : MY PATHS; THOU SETTEST A PRINT UPON THE HEELS OF MY FEET.K# 28 AND HE, AS A ROTTEN THING, CONSUMETH, AS A GARMENT THAT IS MOTH EATEN.O = CHAPTER 14 IC# 1 MAN THAT IS BORN OF A WOMAN IS OF FEW DAYS AND FULL OF TROUBLE. G# 2 HE COMETH FORTH LIKE A FLOWER, AND IS CUT DOWN00p5b5D%5%T6%! !: HE FLEETH ALSO AS A  SHADOW, AND CONTINUETH NOT.H# 3 AND DOTH THOU OPEN THINE EYES UPON SUCH AN ONE, AND BRINGEST ME INTO JUDGMENT WITH THEE?;# 4 WHO CAN BRING A CLEAN THING OUT OF AN UNCLEAN? NOT ONE. K# 5 SEEING HIS DAYS ARE DETERMINED, THE NUMBER OF HIS MONTHS ARE WITH THEE, 4 THOU HAST APPOINTED HIS BOUNDS THAT HE CANNOT PASS;D# 6 TURN FROM HIM, THAT HE MAY REST, TILL HE SHALL ACCOMPLISH, AS AN HIRELING, HIS DAY. G# 7 FOR THERE IS HOPE OF A TREE, IF IT BE CUT DOWN, THAT IT WILL SPROUT : AGAIN, AND THAT THE TENDER BRANCH THEREOF WILL NOT CEASE.K# 8 THOUGH THE ROOT THEREOF WAX OLD IN THE EARTH, AND THE STOCK THEREOF DIEM IN THE GROUND; M# 9 YET THROUGH THE SCENT OF WATER IT WILL BUD, AND BRING FORTH BOUGHS LIKE A  PLANT.MM# 10 BUT MAN DIETH, AND WASTETH AWAY: YEA, MAN GIVETH UP THE GHOST, AND WHERE  IS HE?AK# 11 AS THE WATERS FAIL FROM THE SEA, AND THE FLOOD DECAYETH AND DRIETH UP: I# 12 SO MAN LIETH DOWN, AND RISETH NOT: TILL THE HEAVENS BE NO MORE, THEYN3 SHALL NOT AWAKE, NOR BE RAISED OUT OF THEIR SLEEP.RJ# 13 O THAT THOU WOULDEST HIDE ME IN THE GRAVE, THAT THOU WOULDEST KEEP MEK SECRET, UNTIL THY WRATH BE PAST, THAT THOU WOULDEST APPOINT ME A SET TIME,F AND REMEMBER ME! I# 14 IF A MAN DIE, SHALL HE LIVE AGAIN? ALL THE DAYS OF MY APPOINTED TIMEW" WILL I WAIT, TILL MY CHANGE COME.L# 15 THOU SHALT CALL, AND I WILL ANSWER THEE: THOU WILT HAVE A DESIRE TO THE WORK OF THINE HANDS.2F# 16 FOR NOW THOU NUMBEREST MY STEPS: DOST THOU NOT WATCH OVER MY SIN?D# 17 MY TRANSGRESSION IS SEALED UP IN A BAG, AND THOU SEWEST UP MINE INIQUITY.G# 18 AND SURELY THE MOUNTAINS FALLING COMETH TO NOUGHT, AND THE ROCK ISB REMOVED OUT OF HIS PLACE.L# 19 THE WATERS WEAR THE STONES: THOU WASHEST AWAY THE THINGS WHICH GROW OUT? OF THE DUST OF THE EARTH; AND THOU DESTROYEST THE HOPE OF MAN.HL# 20 THOU PREVAILEST FOR EVER AGAINST HIM, AND HE PASSETH: THOU CHANGEST HIS# COUNTENANCE, AND SENDEST HIM AWAY. I# 21 HIS SONS COME TO HONOUR, AND HE KNOWETH IT NOT; AND THEY ARE BROUGHTM' LOW, BUT HE PERCEIVETH IT NOT OF THEM.DJ# 22 BUT HIS FLESH UPON HIM SHALL HAVE PAIN, AND HIS SOUL WITHIN HIM SHALL MOURN.G = CHAPTER 15 K1# 1 THEN ANSWERED ELIPHAZ THE TEMANITE, AND SAID,EL# 2 SHOULD A WISE MAN UTTER VAIN KNOWLEDGE, AND FILL HIS BELLY WITH THE EAST WIND?J# 3 SHOULD HE REASON WITH UNPROFITABLE TALK? OR WITH SPEECHES WHEREWITH HE CAN DO NO GOOD?B# 4 YEA, THOU CASTEST OFF FEAR, AND RESTRAINEST PRAYER BEFORE GOD.J# 5 FOR THY MOUTH UTTERETH THINE INIQUITY, AND THOU CHOOSEST THE TONGUE OF THE CRAFTY.K# 6 THINE OWN MOUTH CONDEMNETH THEE, AND NOT I: YEA, THINE OWN LIPS TESTIFYU AGAINST THEE.M# 7 ART THOU THE FIRST MAN THAT WAS BORN? OR WAST THOU MADE BEFORE THE HILLS?EG# 8 HAST THOU HEARD THE SECRET OF GOD? AND DOST THOU RESTRAIN WISDOM TO THYSELF??J# 9 WHAT KNOWEST THOU, THAT WE KNOW NOT? WHAT UNDERSTANDEST THOU, WHICH IS NOT IN US?GK# 10 WITH US ARE BOTH THE GRAYHEADED AND VERY AGED MEN, MUCH ELDER THAN THY  FATHER.K# 11 ARE THE CONSOLATIONS OF GOD SMALL WITH THEE? IS THERE ANY SECRET THING WITH THEE?OH# 12 WHY DOTH THINE HEART CARRY THEE AWAY? AND WHAT DO THY EYES WINK AT,L# 13 THAT THOU TURNEST THY SPIRIT AGAINST GOD, AND LETTEST SUCH WORDS GO OUT OF THY MOUTH?K# 14 WHAT IS MAN, THAT HE SHOULD BE CLEAN? AND HE WHICH IS BORN OF A WOMAN,  THAT HE SHOULD BE RIGHTEOUS?OH# 15 BEHOLD, HE PUTTETH NO TRUST IN HIS SAINTS; YEA, THE HEAVENS ARE NOT CLEAN IN HIS SIGHT.M# 16 HOW MUCH MORE ABOMINABLE AND FILTHY IS MAN, WHICH DRINKETH INIQUITY LIKED WATER?TJ# 17 I WILL SHEW THEE, HEAR ME; AND THAT WHICH I HAVE SEEN I WILL DECLARE;F# 18 WHICH WISE MEN HAVE TOLD FROM THEIR FATHERS, AND HAVE NOT HID IT:L# 19 UNTO WHOM ALONE THE EARTH WAS GIVEN, AND NO STRANGER PASSED AMONG THEM.H# 20 THE WICKED MAN TRAVAILETH WITH PAIN ALL HIS DAYS, AND THE NUMBER OF" YEARS IS HIDDEN TO THE OPPRESSOR.L# 21 A DREADFUL SOUND IS IN HIS EARS: IN PROSPERITY THE DESTROYER SHALL COME UPON HIM.L# 22 HE BELIEVETH NOT THAT HE SHALL RETURN OUT OF DARKNESS, AND HE IS WAITED FOR OF THE SWORD.L# 23 HE WA00p54<%X>%+%O-%TADATADATANDERETH ABROAD FOR BREAD, SAYING, WHERE IS IT? HE KNOWETH THAT THE& DAY OF DARKNESS IS READY AT HIS HAND.J# 24 TROUBLE AND ANGUISH SHALL MAKE HIM AFRAID; THEY SHALL PREVAIL AGAINST$ HIM, AS A KING READY TO THE BATTLE.J# 25 FOR HE STRETCHETH OUT HIS HAND AGAINST GOD, AND STRENGTHENETH HIMSELF AGAINST THE ALMIGHTY.H# 26 HE RUNNETH UPON HIM, EVEN ON HIS NECK, UPON THE THICK BOSSES OF HIS BUCKLERS:M# 27 BECAUSE HE COVERETH HIS FACE WITH HIS FATNESS, AND MAKETH COLLOPS OF FATR ON HIS FLANKS. C# 28 AND HE DWELLETH IN DESOLATE CITIES, AND IN HOUSES WHICH NO MANT- INHABITETH, WHICH ARE READY TO BECOME HEAPS. H# 29 HE SHALL NOT BE RICH, NEITHER SHALL HIS SUBSTANCE CONTINUE, NEITHER8 SHALL HE PROLONG THE PERFECTION THEREOF UPON THE EARTH.D# 30 HE SHALL NOT DEPART OUT OF DARKNESS; THE FLAME SHALL DRY UP HIS; BRANCHES, AND BY THE BREATH OF HIS MOUTH SHALL HE GO AWAY.EJ# 31 LET NOT HIM THAT IS DECEIVED TRUST IN VANITY: FOR VANITY SHALL BE HIS RECOMPENCE.J# 32 IT SHALL BE ACCOMPLISHED BEFORE HIS TIME, AND HIS BRANCH SHALL NOT BE GREEN.DL# 33 HE SHALL SHAKE OFF HIS UNRIPE GRAPE AS THE VINE, AND SHALL CAST OFF HIS FLOWER AS THE OLIVE.NI# 34 FOR THE CONGREGATION OF HYPOCRITES SHALL BE DESOLATE, AND FIRE SHALLI$ CONSUME THE TABERNACLES OF BRIBERY.D# 35 THEY CONCEIVE MISCHIEF, AND BRING FORTH VANITY, AND THEIR BELLY PREPARETH DECEIT. = CHAPTER 16 L# 1 THEN JOB ANSWERED AND SAID,TC# 2 I HAVE HEARD MANY SUCH THINGS: MISERABLE COMFORTERS ARE YE ALL..D# 3 SHALL VAIN WORDS HAVE AN END? OR WHAT EMBOLDENETH THEE THAT THOU ANSWEREST?NM# 4 I ALSO COULD SPEAK AS YE DO: IF YOUR SOUL WERE IN MY SOULS STEAD, I COULDS7 HEAP UP WORDS AGAINST YOU, AND SHAKE MINE HEAD AT YOU.PG# 5 BUT I WOULD STRENGTHEN YOU WITH MY MOUTH, AND THE MOVING OF MY LIPSR SHOULD ASSWAGE YOUR GRIEF.SM# 6 THOUGH I SPEAK, MY GRIEF IS NOT ASSWAGED: AND THOUGH I FORBEAR, WHAT AM I6 EASED?HJ# 7 BUT NOW HE HATH MADE ME WEARY: THOU HAST MADE DESOLATE ALL MY COMPANY.M# 8 AND THOU HAST FILLED ME WITH WRINKLES, WHICH IS A WITNESS AGAINST ME: ANDE8 MY LEANNESS RISING UP IN ME BEARETH WITNESS TO MY FACE.K# 9 HE TEARETH ME IN HIS WRATH, WHO HATETH ME: HE GNASHETH UPON ME WITH HISN/ TEETH; MINE ENEMY SHARPENETH HIS EYES UPON ME.GL# 10 THEY HAVE GAPED UPON ME WITH THEIR MOUTH; THEY HAVE SMITTEN ME UPON THEH CHEEK REPROACHFULLY; THEY HAVE GATHERED THEMSELVES TOGETHER AGAINST ME.L# 11 GOD HATH DELIVERED ME TO THE UNGODLY, AND TURNED ME OVER INTO THE HANDS OF THE WICKED.K# 12 I WAS AT EASE, BUT HE HATH BROKEN ME ASUNDER: HE HATH ALSO TAKEN ME BYE> MY NECK, AND SHAKEN ME TO PIECES, AND SET ME UP FOR HIS MARK.J# 13 HIS ARCHERS COMPASS ME ROUND ABOUT, HE CLEAVETH MY REINS ASUNDER, AND8 DOTH NOT SPARE; HE POURETH OUT MY GALL UPON THE GROUND.M# 14 HE BREAKETH ME WITH BREACH UPON BREACH, HE RUNNETH UPON ME LIKE A GIANT.OJ# 15 I HAVE SEWED SACKCLOTH UPON MY SKIN, AND DEFILED MY HORN IN THE DUST.L# 16 MY FACE IS FOUL WITH WEEPING, AND ON MY EYELIDS IS THE SHADOW OF DEATH;A# 17 NOT FOR ANY INJUSTICE IN MINE HANDS: ALSO MY PRAYER IS PURE. D# 18 O EARTH, COVER NOT THOU MY BLOOD, AND LET MY CRY HAVE NO PLACE.I# 19 ALSO NOW, BEHOLD, MY WITNESS IS IN HEAVEN, AND MY RECORD IS ON HIGH.EB# 20 MY FRIENDS SCORN ME: BUT MINE EYE POURETH OUT TEARS UNTO GOD.I# 21 O THAT ONE MIGHT PLEAD FOR A MAN WITH GOD, AS A MAN PLEADETH FOR HISO NEIGHBOUR! J# 22 WHEN A FEW YEARS ARE COME, THEN I SHALL GO THE WAY WHENCE I SHALL NOT RETURN. = CHAPTER 17 DK# 1 MY BREATH IS CORRUPT, MY DAYS ARE EXTINCT, THE GRAVES ARE READY FOR ME.NJ# 2 ARE THERE NOT MOCKERS WITH ME? AND DOTH NOT MINE EYE CONTINUE IN THEIR PROVOCATION? J# 3 LAY DOWN NOW, PUT ME IN A SURETY WITH THEE; WHO IS HE THAT WILL STRIKE HANDS WITH ME?RJ# 4 FOR THOU HAST HID THEIR HEART FROM UNDERSTANDING: THEREFORE SHALT THOU NOT EXALT THEM.K# 5 HE THAT SPEAKETH FLATTERY TO HIS FRIENDS, EVEN THE EYES OF HIS CHILDRENR SHALL FAIL.I# 6 HE HATH MADE ME ALSO A BYWORD OF THE PEOPLE; AND AFORETIME I WAS AS AT TABRET.I# 7 MINE EYE ALSO IS DIM BY REASON OF SORROW, AND ALL MY MEMBERS ARE AS AO SHA00p5b5D%5%T6%! !DOW.I# 8 UPRIGHT MEN SHALL BE ASTONIED AT THIS, AND THE INNOCENT SHALL STIR UPN HIMSELF AGAINST THE HYPOCRITE. J# 9 THE RIGHTEOUS ALSO SHALL HOLD ON HIS WAY, AND HE THAT HATH CLEAN HANDS SHALL BE STRONGER AND STRONGER.J# 10 BUT AS FOR YOU ALL, DO YE RETURN, AND COME NOW: FOR I CANNOT FIND ONE WISE MAN AMONG YOU.J# 11 MY DAYS ARE PAST, MY PURPOSES ARE BROKEN OFF, EVEN THE THOUGHTS OF MY HEART.EL# 12 THEY CHANGE THE NIGHT INTO DAY: THE LIGHT IS SHORT BECAUSE OF DARKNESS.L# 13 IF I WAIT, THE GRAVE IS MINE HOUSE: I HAVE MADE MY BED IN THE DARKNESS.L# 14 I HAVE SAID TO CORRUPTION, THOU ART MY FATHER: TO THE WORM, THOU ART MY MOTHER, AND MY SISTER.S@# 15 AND WHERE IS NOW MY HOPE? AS FOR MY HOPE, WHO SHALL SEE IT?L# 16 THEY SHALL GO DOWN TO THE BARS OF THE PIT, WHEN OUR REST TOGETHER IS IN THE DUST. = CHAPTER 18 1/# 1 THEN ANSWERED BILDAD THE SHUHITE, AND SAID,EL# 2 HOW LONG WILL IT BE ERE YE MAKE AN END OF WORDS? MARK, AND AFTERWARDS WE WILL SPEAK.G# 3 WHEREFORE ARE WE COUNTED AS BEASTS, AND REPUTED VILE IN YOUR SIGHT? J# 4 HE TEARETH HIMSELF IN HIS ANGER: SHALL THE EARTH BE FORSAKEN FOR THEE?0 AND SHALL THE ROCK BE REMOVED OUT OF HIS PLACE?L# 5 YEA, THE LIGHT OF THE WICKED SHALL BE PUT OUT, AND THE SPARK OF HIS FIRE SHALL NOT SHINE.BJ# 6 THE LIGHT SHALL BE DARK IN HIS TABERNACLE, AND HIS CANDLE SHALL BE PUT OUT WITH HIM.L# 7 THE STEPS OF HIS STRENGTH SHALL BE STRAITENED, AND HIS OWN COUNSEL SHALL CAST HIM DOWN.AK# 8 FOR HE IS CAST INTO A NET BY HIS OWN FEET, AND HE WALKETH UPON A SNARE.EL# 9 THE GIN SHALL TAKE HIM BY THE HEEL, AND THE ROBBER SHALL PREVAIL AGAINST HIM.KL# 10 THE SNARE IS LAID FOR HIM IN THE GROUND, AND A TRAP FOR HIM IN THE WAY.L# 11 TERRORS SHALL MAKE HIM AFRAID ON EVERY SIDE, AND SHALL DRIVE HIM TO HIS FEET.J# 12 HIS STRENGTH SHALL BE HUNGERBITTEN, AND DESTRUCTION SHALL BE READY AT HIS SIDE.J# 13 IT SHALL DEVOUR THE STRENGTH OF HIS SKIN: EVEN THE FIRSTBORN OF DEATH SHALL DEVOUR HIS STRENGTH. M# 14 HIS CONFIDENCE SHALL BE ROOTED OUT OF HIS TABERNACLE, AND IT SHALL BRINGI HIM TO THE KING OF TERRORS.K# 15 IT SHALL DWELL IN HIS TABERNACLE, BECAUSE IT IS NONE OF HIS: BRIMSTONEI( SHALL BE SCATTERED UPON HIS HABITATION.K# 16 HIS ROOTS SHALL BE DRIED UP BENEATH, AND ABOVE SHALL HIS BRANCH BE CUTH OFF.EK# 17 HIS REMEMBRANCE SHALL PERISH FROM THE EARTH, AND HE SHALL HAVE NO NAMET IN THE STREET.3G# 18 HE SHALL BE DRIVEN FROM LIGHT INTO DARKNESS, AND CHASED OUT OF THES WORLD.UM# 19 HE SHALL NEITHER HAVE SON NOR NEPHEW AMONG HIS PEOPLE, NOR ANY REMAININGD IN HIS DWELLINGS.M# 20 THEY THAT COME AFTER HIM SHALL BE ASTONIED AT HIS DAY, AS THEY THAT WENTS BEFORE WERE AFFRIGHTED.J# 21 SURELY SUCH ARE THE DWELLINGS OF THE WICKED, AND THIS IS THE PLACE OF HIM THAT KNOWETH NOT GOD. = CHAPTER 19 # 1 THEN JOB ANSWERED AND SAID,LD# 2 HOW LONG WILL YE VEX MY SOUL, AND BREAK ME IN PIECES WITH WORDS?J# 3 THESE TEN TIMES HAVE YE REPROACHED ME: YE ARE NOT ASHAMED THAT YE MAKE YOURSELVES STRANGE TO ME.I# 4 AND BE IT INDEED THAT I HAVE ERRED, MINE ERROR REMAINETH WITH MYSELF.GL# 5 IF INDEED YE WILL MAGNIFY YOURSELVES AGAINST ME, AND PLEAD AGAINST ME MY REPROACH:M# 6 KNOW NOW THAT GOD HATH OVERTHROWN ME, AND HATH COMPASSED ME WITH HIS NET.IM# 7 BEHOLD, I CRY OUT OF WRONG, BUT I AM NOT HEARD: I CRY ALOUD, BUT THERE ISE NO JUDGMENT. L# 8 HE HATH FENCED UP MY WAY THAT I CANNOT PASS, AND HE HATH SET DARKNESS IN MY PATHS.F# 9 HE HATH STRIPPED ME OF MY GLORY, AND TAKEN THE CROWN FROM MY HEAD.M# 10 HE HATH DESTROYED ME ON EVERY SIDE, AND I AM GONE: AND MINE HOPE HATH HEE REMOVED LIKE A TREE.WK# 11 HE HATH ALSO KINDLED HIS WRATH AGAINST ME, AND HE COUNTETH ME UNTO HIMN AS ONE OF HIS ENEMIES.TL# 12 HIS TROOPS COME TOGETHER, AND RAISE UP THEIR WAY AGAINST ME, AND ENCAMP ROUND ABOUT MY TABERNACLE.LJ# 13 HE HATH PUT MY BRETHREN FAR FROM ME, AND MINE ACQUAINTANCE ARE VERILY ESTRANGED FROM ME.SH# 14 MY KINSFOLK HAVE FAILED, AND MY FAMILIAR FRIENDS HAVE FORGOTTEN ME.L# 15 THEY THAT DWELL IN MINE HOUSE, AND MY MAIDS, COUNT ME FOR A STRANGER: I AM 00p54<%X>%+%O-%TADATADATAAN ALIEN IN THEIR SIGHT.K# 16 I CALLED MY SERVANT, AND HE GAVE ME NO ANSWER; I INTREATED HIM WITH MYC MOUTH.EJ# 17 MY BREATH IS STRANGE TO MY WIFE, THOUGH I INTREATED FOR THE CHILDRENS SAKE OF MINE OWN BODY.EI# 18 YEA, YOUNG CHILDREN DESPISED ME; I AROSE, AND THEY SPAKE AGAINST ME.RH# 19 ALL MY INWARD FRIENDS ABHORRED ME: AND THEY WHOM I LOVED ARE TURNED AGAINST ME.K# 20 MY BONE CLEAVETH TO MY SKIN AND TO MY FLESH, AND I AM ESCAPED WITH THEI SKIN OF MY TEETH.K# 21 HAVE PITY UPON ME, HAVE PITY UPON ME, O YE MY FRIENDS; FOR THE HAND OFY GOD HATH TOUCHED ME.EH# 22 WHY DO YE PERSECUTE ME AS GOD, AND ARE NOT SATISFIED WITH MY FLESH?L# 23 OH THAT MY WORDS WERE NOW WRITTEN! OH THAT THEY WERE PRINTED IN A BOOK!J# 24 THAT THEY WERE GRAVEN WITH AN IRON PEN AND LEAD IN THE ROCK FOR EVER!G# 25 FOR I KNOW THAT MY REDEEMER LIVETH, AND THAT HE SHALL STAND AT THEA LATTER DAY UPON THE EARTH:VL# 26 AND THOUGH AFTER MY SKIN WORMS DESTROY THIS BODY, YET IN MY FLESH SHALL I SEE GOD:IE# 27 WHOM I SHALL SEE FOR MYSELF, AND MINE EYES SHALL BEHOLD, AND NOTH0 ANOTHER; THOUGH MY REINS BE CONSUMED WITHIN ME.K# 28 BUT YE SHOULD SAY, WHY PERSECUTE WE HIM, SEEING THE ROOT OF THE MATTERT IS FOUND IN ME?I# 29 BE YE AFRAID OF THE SWORD: FOR WRATH BRINGETH THE PUNISHMENTS OF THED- SWORD, THAT YE MAY KNOW THERE IS A JUDGMENT. = CHAPTER 20 ,2# 1 THEN ANSWERED ZOPHAR THE NAAMATHITE, AND SAID,K# 2 THEREFORE DO MY THOUGHTS CAUSE ME TO ANSWER, AND FOR THIS I MAKE HASTE.FM# 3 I HAVE HEARD THE CHECK OF MY REPROACH, AND THE SPIRIT OF MY UNDERSTANDING  CAUSETH ME TO ANSWER.B# 4 KNOWEST THOU NOT THIS OF OLD, SINCE MAN WAS PLACED UPON EARTH,L# 5 THAT THE TRIUMPHING OF THE WICKED IS SHORT, AND THE JOY OF THE HYPOCRITE BUT FOR A MOMENT?J# 6 THOUGH HIS EXCELLENCY MOUNT UP TO THE HEAVENS, AND HIS HEAD REACH UNTO THE CLOUDS;L# 7 YET HE SHALL PERISH FOR EVER LIKE HIS OWN DUNG: THEY WHICH HAVE SEEN HIM SHALL SAY, WHERE IS HE?J# 8 HE SHALL FLY AWAY AS A DREAM, AND SHALL NOT BE FOUND: YEA, HE SHALL BE& CHASED AWAY AS A VISION OF THE NIGHT.M# 9 THE EYE ALSO WHICH SAW HIM SHALL SEE HIM NO MORE; NEITHER SHALL HIS PLACEA ANY MORE BEHOLD HIM.,L# 10 HIS CHILDREN SHALL SEEK TO PLEASE THE POOR, AND HIS HANDS SHALL RESTORE THEIR GOODS.MJ# 11 HIS BONES ARE FULL OF THE SIN OF HIS YOUTH, WHICH SHALL LIE DOWN WITH HIM IN THE DUST.I# 12 THOUGH WICKEDNESS BE SWEET IN HIS MOUTH, THOUGH HE HIDE IT UNDER HISM TONGUE;I# 13 THOUGH HE SPARE IT, AND FORSAKE IT NOT; BUT KEEP IT STILL WITHIN HIS  MOUTH:HM# 14 YET HIS MEAT IN HIS BOWELS IS TURNED, IT IS THE GALL OF ASPS WITHIN HIM.SI# 15 HE HATH SWALLOWED DOWN RICHES, AND HE SHALL VOMIT THEM UP AGAIN: GOD0" SHALL CAST THEM OUT OF HIS BELLY.H# 16 HE SHALL SUCK THE POISON OF ASPS: THE VIPERS TONGUE SHALL SLAY HIM.M# 17 HE SHALL NOT SEE THE RIVERS, THE FLOODS, THE BROOKS OF HONEY AND BUTTER.2J# 18 THAT WHICH HE LABOURED FOR SHALL HE RESTORE, AND SHALL NOT SWALLOW ITL DOWN: ACCORDING TO HIS SUBSTANCE SHALL THE RESTITUTION BE, AND HE SHALL NOT REJOICE THEREIN.YJ# 19 BECAUSE HE HATH OPPRESSED AND HATH FORSAKEN THE POOR; BECAUSE HE HATH4 VIOLENTLY TAKEN AWAY AN HOUSE WHICH HE BUILDED NOT;J# 20 SURELY HE SHALL NOT FEEL QUIETNESS IN HIS BELLY, HE SHALL NOT SAVE OF THAT WHICH HE DESIRED.PJ# 21 THERE SHALL NONE OF HIS MEAT BE LEFT; THEREFORE SHALL NO MAN LOOK FOR HIS GOODS.OL# 22 IN THE FULNESS OF HIS SUFFICIENCY HE SHALL BE IN STRAITS: EVERY HAND OF THE WICKED SHALL COME UPON HIM.M# 23 WHEN HE IS ABOUT TO FILL HIS BELLY, GOD SHALL CAST THE FURY OF HIS WRATH9 UPON HIM, AND SHALL RAIN IT UPON HIM WHILE HE IS EATING.BJ# 24 HE SHALL FLEE FROM THE IRON WEAPON, AND THE BOW OF STEEL SHALL STRIKE HIM THROUGH.NG# 25 IT IS DRAWN, AND COMETH OUT OF THE BODY; YEA, THE GLITTERING SWORDR. COMETH OUT OF HIS GALL: TERRORS ARE UPON HIM.K# 26 ALL DARKNESS SHALL BE HID IN HIS SECRET PLACES: A FIRE NOT BLOWN SHALLFF CONSUME HIM; IT SHALL GO ILL WITH HIM THAT IS LEFT IN HIS TABERNACLE.F# 27 THE HEAVEN SHALL REVEAL HIS INIQUITY; AND THE EARTH SHALL RISE UP AGAINST HIM.M# 28 THE INC00p5b5D%5%T6%! !REASE OF HIS HOUSE SHALL DEPART, AND HIS GOODS SHALL FLOW AWAY INE THE DAY OF HIS WRATH.M# 29 THIS IS THE PORTION OF A WICKED MAN FROM GOD, AND THE HERITAGE APPOINTEDO UNTO HIM BY GOD., = CHAPTER 21 # 1 BUT JOB ANSWERED AND SAID,A# 2 HEAR DILIGENTLY MY SPEECH, AND LET THIS BE YOUR CONSOLATIONS.TF# 3 SUFFER ME THAT I MAY SPEAK; AND AFTER THAT I HAVE SPOKEN, MOCK ON.K# 4 AS FOR ME, IS MY COMPLAINT TO MAN? AND IF IT WERE SO, WHY SHOULD NOT MYA SPIRIT BE TROUBLED?B# 5 MARK ME, AND BE ASTONISHED, AND LAY YOUR HAND UPON YOUR MOUTH.L# 6 EVEN WHEN I REMEMBER I AM AFRAID, AND TREMBLING TAKETH HOLD ON MY FLESH.G# 7 WHEREFORE DO THE WICKED LIVE, BECOME OLD, YEA, ARE MIGHTY IN POWER?GK# 8 THEIR SEED IS ESTABLISHED IN THEIR SIGHT WITH THEM, AND THEIR OFFSPRINGS BEFORE THEIR EYES.EI# 9 THEIR HOUSES ARE SAFE FROM FEAR, NEITHER IS THE ROD OF GOD UPON THEM. J# 10 THEIR BULL GENDERETH, AND FAILETH NOT; THEIR COW CALVETH, AND CASTETH NOT HER CALF.G# 11 THEY SEND FORTH THEIR LITTLE ONES LIKE A FLOCK, AND THEIR CHILDRENN DANCE.UK# 12 THEY TAKE THE TIMBREL AND HARP, AND REJOICE AT THE SOUND OF THE ORGAN.MK# 13 THEY SPEND THEIR DAYS IN WEALTH, AND IN A MOMENT GO DOWN TO THE GRAVE.WG# 14 THEREFORE THEY SAY UNTO GOD, DEPART FROM US; FOR WE DESIRE NOT THEF KNOWLEDGE OF THY WAYS.YK# 15 WHAT IS THE ALMIGHTY, THAT WE SHOULD SERVE HIM? AND WHAT PROFIT SHOULDM WE HAVE, IF WE PRAY UNTO HIM?J# 16 LO, THEIR GOOD IS NOT IN THEIR HAND: THE COUNSEL OF THE WICKED IS FAR FROM ME.EJ# 17 HOW OFT IS THE CANDLE OF THE WICKED PUT OUT! AND HOW OFT COMETH THEIR> DESTRUCTION UPON THEM! GOD DISTRIBUTETH SORROWS IN HIS ANGER.E# 18 THEY ARE AS STUBBLE BEFORE THE WIND, AND AS CHAFF THAT THE STORME CARRIETH AWAY.EJ# 19 GOD LAYETH UP HIS INIQUITY FOR HIS CHILDREN: HE REWARDETH HIM, AND HE SHALL KNOW IT.AK# 20 HIS EYES SHALL SEE HIS DESTRUCTION, AND HE SHALL DRINK OF THE WRATH OFE THE ALMIGHTY.M# 21 FOR WHAT PLEASURE HATH HE IN HIS HOUSE AFTER HIM, WHEN THE NUMBER OF HISF MONTHS IS CUT OFF IN THE MIDST?J# 22 SHALL ANY TEACH GOD KNOWLEDGE? SEEING HE JUDGETH THOSE THAT ARE HIGH.D# 23 ONE DIETH IN HIS FULL STRENGTH, BEING WHOLLY AT EASE AND QUIET.K# 24 HIS BREASTS ARE FULL OF MILK, AND HIS BONES ARE MOISTENED WITH MARROW.YK# 25 AND ANOTHER DIETH IN THE BITTERNESS OF HIS SOUL, AND NEVER EATETH WITHT PLEASURE.K# 26 THEY SHALL LIE DOWN ALIKE IN THE DUST, AND THE WORMS SHALL COVER THEM.MF# 27 BEHOLD, I KNOW YOUR THOUGHTS, AND THE DEVICES WHICH YE WRONGFULLY IMAGINE AGAINST ME.M# 28 FOR YE SAY, WHERE IS THE HOUSE OF THE PRINCE? AND WHERE ARE THE DWELLINGT PLACES OF THE WICKED?H# 29 HAVE YE NOT ASKED THEM THAT GO BY THE WAY? AND DO YE NOT KNOW THEIR TOKENS,I# 30 THAT THE WICKED IS RESERVED TO THE DAY OF DESTRUCTION? THEY SHALL BEO# BROUGHT FORTH TO THE DAY OF WRATH.OK# 31 WHO SHALL DECLARE HIS WAY TO HIS FACE? AND WHO SHALL REPAY HIM WHAT HE HATH DONE? H# 32 YET SHALL HE BE BROUGHT TO THE GRAVE, AND SHALL REMAIN IN THE TOMB.I# 33 THE CLODS OF THE VALLEY SHALL BE SWEET UNTO HIM, AND EVERY MAN SHALL 5 DRAW AFTER HIM, AS THERE ARE INNUMERABLE BEFORE HIM.EK# 34 HOW THEN COMFORT YE ME IN VAIN, SEEING IN YOUR ANSWERS THERE REMAINETHO FALSEHOOD? = CHAPTER 22 T0# 1 THEN ELIPHAZ THE TEMANITE ANSWERED AND SAID,J# 2 CAN A MAN BE PROFITABLE UNTO GOD, AS HE THAT IS WISE MAY BE PROFITABLE UNTO HIMSELF?I# 3 IS IT ANY PLEASURE TO THE ALMIGHTY, THAT THOU ART RIGHTEOUS? OR IS IT 0 GAIN TO HIM, THAT THOU MAKEST THY WAYS PERFECT?G# 4 WILL HE REPROVE THEE FOR FEAR OF THEE? WILL HE ENTER WITH THEE INTO JUDGMENT??# 5 IS NOT THY WICKEDNESS GREAT? AND THINE INIQUITIES INFINITE? J# 6 FOR THOU HAST TAKEN A PLEDGE FROM THY BROTHER FOR NOUGHT, AND STRIPPED THE NAKED OF THEIR CLOTHING.HM# 7 THOU HAST NOT GIVEN WATER TO THE WEARY TO DRINK, AND THOU HAST WITHHOLDEN  BREAD FROM THE HUNGRY.TM# 8 BUT AS FOR THE MIGHTY MAN, HE HAD THE EARTH; AND THE HONOURABLE MAN DWELTH IN IT. I# 9 THOU HAST SENT WIDOWS AWAY EMPTY, AND THE ARMS OF THE FATHERLESS HAVEV BEEN BROKEN. K# 10 THEREFORE SNARES ARE ROUND ABOUT THEE, AND 00p54<%X>%+%O-%TADATADATASUDDEN FEAR TROUBLETH THEE; H# 11 OR DARKNESS, THAT THOU CANST NOT SEE; AND ABUNDANCE OF WATERS COVER THEE.L# 12 IS NOT GOD IN THE HEIGHT OF HEAVEN? AND BEHOLD THE HEIGHT OF THE STARS, HOW HIGH THEY ARE!TM# 13 AND THOU SAYEST, HOW DOTH GOD KNOW? CAN HE JUDGE THROUGH THE DARK CLOUD? M# 14 THICK CLOUDS ARE A COVERING TO HIM, THAT HE SEETH NOT; AND HE WALKETH IN  THE CIRCUIT OF HEAVEN.W@# 15 HAST THOU MARKED THE OLD WAY WHICH WICKED MEN HAVE TRODDEN?K# 16 WHICH WERE CUT DOWN OUT OF TIME, WHOSE FOUNDATION WAS OVERFLOWN WITH A  FLOOD: J# 17 WHICH SAID UNTO GOD, DEPART FROM US: AND WHAT CAN THE ALMIGHTY DO FOR THEM?H# 18 YET HE FILLED THEIR HOUSES WITH GOOD THINGS: BUT THE COUNSEL OF THE WICKED IS FAR FROM ME.TG# 19 THE RIGHTEOUS SEE IT, AND ARE GLAD: AND THE INNOCENT LAUGH THEM TO4 SCORN.OL# 20 WHEREAS OUR SUBSTANCE IS NOT CUT DOWN, BUT THE REMNANT OF THEM THE FIRE CONSUMETH.L# 21 ACQUAINT NOW THYSELF WITH HIM, AND BE AT PEACE: THEREBY GOOD SHALL COME UNTO THEE.OJ# 22 RECEIVE, I PRAY THEE, THE LAW FROM HIS MOUTH, AND LAY UP HIS WORDS IN THINE HEART.AK# 23 IF THOU RETURN TO THE ALMIGHTY, THOU SHALT BE BUILT UP, THOU SHALT PUTR( AWAY INIQUITY FAR FROM THY TABERNACLES.M# 24 THEN SHALT THOU LAY UP GOLD AS DUST, AND THE GOLD OF OPHIR AS THE STONEST OF THE BROOKS. J# 25 YEA, THE ALMIGHTY SHALL BE THY DEFENCE, AND THOU SHALT HAVE PLENTY OF SILVER.L# 26 FOR THEN SHALT THOU HAVE THY DELIGHT IN THE ALMIGHTY, AND SHALT LIFT UP THY FACE UNTO GOD.OJ# 27 THOU SHALT MAKE THY PRAYER UNTO HIM, AND HE SHALL HEAR THEE, AND THOU SHALT PAY THY VOWS.K# 28 THOU SHALT ALSO DECREE A THING, AND IT SHALL BE ESTABLISHED UNTO THEE: ) AND THE LIGHT SHALL SHINE UPON THY WAYS.EM# 29 WHEN MEN ARE CAST DOWN, THEN THOU SHALT SAY, THERE IS LIFTING UP; AND HEE SHALL SAVE THE HUMBLE PERSON.L# 30 HE SHALL DELIVER THE ISLAND OF THE INNOCENT: AND IT IS DELIVERED BY THE PURENESS OF THINE HANDS.U = CHAPTER 23 H# 1 THEN JOB ANSWERED AND SAID, D# 2 EVEN TO DAY IS MY COMPLAINT BITTER: MY STROKE IS HEAVIER THAN MY GROANING.H# 3 OH THAT I KNEW WHERE I MIGHT FIND HIM! THAT I MIGHT COME EVEN TO HIS SEAT!H# 4 I WOULD ORDER MY CAUSE BEFORE HIM, AND FILL MY MOUTH WITH ARGUMENTS.K# 5 I WOULD KNOW THE WORDS WHICH HE WOULD ANSWER ME, AND UNDERSTAND WHAT HE; WOULD SAY UNTO ME. G# 6 WILL HE PLEAD AGAINST ME WITH HIS GREAT POWER? NO; BUT HE WOULD PUT  STRENGTH IN ME.L# 7 THERE THE RIGHTEOUS MIGHT DISPUTE WITH HIM; SO SHOULD I BE DELIVERED FOR EVER FROM MY JUDGE.I# 8 BEHOLD, I GO FORWARD, BUT HE IS NOT THERE; AND BACKWARD, BUT I CANNOTA PERCEIVE HIM:L# 9 ON THE LEFT HAND, WHERE HE DOTH WORK, BUT I CANNOT BEHOLD HIM: HE HIDETH2 HIMSELF ON THE RIGHT HAND, THAT I CANNOT SEE HIM:L# 10 BUT HE KNOWETH THE WAY THAT I TAKE: WHEN HE HATH TRIED ME, I SHALL COME FORTH AS GOLD.EH# 11 MY FOOT HATH HELD HIS STEPS, HIS WAY HAVE I KEPT, AND NOT DECLINED.F# 12 NEITHER HAVE I GONE BACK FROM THE COMMANDMENT OF HIS LIPS; I HAVE= ESTEEMED THE WORDS OF HIS MOUTH MORE THAN MY NECESSARY FOOD. M# 13 BUT HE IS IN ONE MIND, AND WHO CAN TURN HIM? AND WHAT HIS SOUL DESIRETH,  EVEN THAT HE DOETH.H# 14 FOR HE PERFORMETH THE THING THAT IS APPOINTED FOR ME: AND MANY SUCH THINGS ARE WITH HIM.EM# 15 THEREFORE AM I TROUBLED AT HIS PRESENCE: WHEN I CONSIDER, I AM AFRAID OF  HIM.FA# 16 FOR GOD MAKETH MY HEART SOFT, AND THE ALMIGHTY TROUBLETH ME:PK# 17 BECAUSE I WAS NOT CUT OFF BEFORE THE DARKNESS, NEITHER HATH HE COVEREDI THE DARKNESS FROM MY FACE. = CHAPTER 24 UM# 1 WHY, SEEING TIMES ARE NOT HIDDEN FROM THE ALMIGHTY, DO THEY THAT KNOW HIMH NOT SEE HIS DAYS?H# 2 SOME REMOVE THE LANDMARKS; THEY VIOLENTLY TAKE AWAY FLOCKS, AND FEED THEREOF.DL# 3 THEY DRIVE AWAY THE ASS OF THE FATHERLESS, THEY TAKE THE WIDOWS OX FOR A PLEDGE.M# 4 THEY TURN THE NEEDY OUT OF THE WAY: THE POOR OF THE EARTH HIDE THEMSELVESF TOGETHER.L# 5 BEHOLD, AS WILD ASSES IN THE DESERT, GO THEY FORTH TO THEIR WORK; RISINGH BETIMES FOR A PREY: THE WILDERNESS YIELDETH FOOD FOR THEM AND FOR THEIR CHILDREN.M# 6 THEY REAP EVERY ONE HIS CORN IN THE 00p5b5D%5%T6%! !FIELD: AND THEY GATHER THE VINTAGE OFY THE WICKED.E# 7 THEY CAUSE THE NAKED TO LODGE WITHOUT CLOTHING, THAT THEY HAVE NOF COVERING IN THE COLD.L# 8 THEY ARE WET WITH THE SHOWERS OF THE MOUNTAINS, AND EMBRACE THE ROCK FOR WANT OF A SHELTER.TM# 9 THEY PLUCK THE FATHERLESS FROM THE BREAST, AND TAKE A PLEDGE OF THE POOR. H# 10 THEY CAUSE HIM TO GO NAKED WITHOUT CLOTHING, AND THEY TAKE AWAY THE SHEAF FROM THE HUNGRY;EH# 11 WHICH MAKE OIL WITHIN THEIR WALLS, AND TREAD THEIR WINEPRESSES, AND SUFFER THIRST.AL# 12 MEN GROAN FROM OUT OF THE CITY, AND THE SOUL OF THE WOUNDED CRIETH OUT:" YET GOD LAYETH NOT FOLLY TO THEM.K# 13 THEY ARE OF THOSE THAT REBEL AGAINST THE LIGHT; THEY KNOW NOT THE WAYSS) THEREOF, NOR ABIDE IN THE PATHS THEREOF.TJ# 14 THE MURDERER RISING WITH THE LIGHT KILLETH THE POOR AND NEEDY, AND IN THE NIGHT IS AS A THIEF.IK# 15 THE EYE ALSO OF THE ADULTERER WAITETH FOR THE TWILIGHT, SAYING, NO EYEY' SHALL SEE ME: AND DISGUISETH HIS FACE.SC# 16 IN THE DARK THEY DIG THROUGH HOUSES, WHICH THEY HAD MARKED FORF4 THEMSELVES IN THE DAYTIME: THEY KNOW NOT THE LIGHT.H# 17 FOR THE MORNING IS TO THEM EVEN AS THE SHADOW OF DEATH: IF ONE KNOW6 THEM, THEY ARE IN THE TERRORS OF THE SHADOW OF DEATH.H# 18 HE IS SWIFT AS THE WATERS; THEIR PORTION IS CURSED IN THE EARTH: HE( BEHOLDETH NOT THE WAY OF THE VINEYARDS.L# 19 DROUGHT AND HEAT CONSUME THE SNOW WATERS: SO DOTH THE GRAVE THOSE WHICH HAVE SINNED.NL# 20 THE WOMB SHALL FORGET HIM; THE WORM SHALL FEED SWEETLY ON HIM; HE SHALLA BE NO MORE REMEMBERED; AND WICKEDNESS SHALL BE BROKEN AS A TREE.EJ# 21 HE EVIL ENTREATETH THE BARREN THAT BEARETH NOT: AND DOETH NOT GOOD TO THE WIDOW.IK# 22 HE DRAWETH ALSO THE MIGHTY WITH HIS POWER: HE RISETH UP, AND NO MAN ISS SURE OF LIFE.M# 23 THOUGH IT BE GIVEN HIM TO BE IN SAFETY, WHEREON HE RESTETH; YET HIS EYESI ARE UPON THEIR WAYS.AL# 24 THEY ARE EXALTED FOR A LITTLE WHILE, BUT ARE GONE AND BROUGHT LOW; THEYN ARE TAKEN OUT OF THE WAY AS ALL OTHER, AND CUT OFF AS THE TOPS OF THE EARS OF CORN.I# 25 AND IF IT BE NOT SO NOW, WHO WILL MAKE ME A LIAR, AND MAKE MY SPEECHT NOTHING WORTH?N = CHAPTER 25 O/# 1 THEN ANSWERED BILDAD THE SHUHITE, AND SAID,RG# 2 DOMINION AND FEAR ARE WITH HIM, HE MAKETH PEACE IN HIS HIGH PLACES. G# 3 IS THERE ANY NUMBER OF HIS ARMIES? AND UPON WHOM DOTH NOT HIS LIGHT; ARISE?EJ# 4 HOW THEN CAN MAN BE JUSTIFIED WITH GOD? OR HOW CAN HE BE CLEAN THAT IS BORN OF A WOMAN?TL# 5 BEHOLD EVEN TO THE MOON, AND IT SHINETH NOT; YEA, THE STARS ARE NOT PURE IN HIS SIGHT.K# 6 HOW MUCH LESS MAN, THAT IS A WORM? AND THE SON OF MAN, WHICH IS A WORM?C = CHAPTER 26 R# 1 BUT JOB ANSWERED AND SAID,K# 2 HOW HAST THOU HELPED HIM THAT IS WITHOUT POWER? HOW SAVEST THOU THE ARME THAT HATH NO STRENGTH? G# 3 HOW HAST THOU COUNSELLED HIM THAT HATH NO WISDOM? AND HOW HAST THOUI) PLENTIFULLY DECLARED THE THING AS IT IS? E# 4 TO WHOM HAST THOU UTTERED WORDS? AND WHOSE SPIRIT CAME FROM THEE?E# 5 DEAD THINGS ARE FORMED FROM UNDER THE WATERS, AND THE INHABITANTS THEREOF.I?# 6 HELL IS NAKED BEFORE HIM, AND DESTRUCTION HATH NO COVERING.AK# 7 HE STRETCHETH OUT THE NORTH OVER THE EMPTY PLACE, AND HANGETH THE EARTH  UPON NOTHING.K# 8 HE BINDETH UP THE WATERS IN HIS THICK CLOUDS; AND THE CLOUD IS NOT RENT UNDER THEM.L# 9 HE HOLDETH BACK THE FACE OF HIS THRONE, AND SPREADETH HIS CLOUD UPON IT.K# 10 HE HATH COMPASSED THE WATERS WITH BOUNDS, UNTIL THE DAY AND NIGHT COMEI TO AN END. E# 11 THE PILLARS OF HEAVEN TREMBLE AND ARE ASTONISHED AT HIS REPROOF.IL# 12 HE DIVIDETH THE SEA WITH HIS POWER, AND BY HIS UNDERSTANDING HE SMITETH THROUGH THE PROUD.HJ# 13 BY HIS SPIRIT HE HATH GARNISHED THE HEAVENS; HIS HAND HATH FORMED THE CROOKED SERPENT.UJ# 14 LO, THESE ARE PARTS OF HIS WAYS: BUT HOW LITTLE A PORTION IS HEARD OF6 HIM? BUT THE THUNDER OF HIS POWER WHO CAN UNDERSTAND? = CHAPTER 27 N1# 1 MOREOVER JOB CONTINUED HIS PARABLE, AND SAID,,I# 2 AS GOD LIVETH, WHO HATH TAKEN AWAY MY JUDGMENT; AND THE ALMIGHTY, WHOE HATH VEXED MY SOUL;D# 3 ALL THE WHILE MY BREATH IS IN ME, AND THE SPIR00p54<%X>%+%O-%TADATADATAIT OF GOD IS IN MY NOSTRILS;C# 4 MY LIPS SHALL NOT SPEAK WICKEDNESS, NOR MY TONGUE UTTER DECEIT.IK# 5 GOD FORBID THAT I SHOULD JUSTIFY YOU: TILL I DIE I WILL NOT REMOVE MINEE INTEGRITY FROM ME.SL# 6 MY RIGHTEOUSNESS I HOLD FAST, AND WILL NOT LET IT GO: MY HEART SHALL NOT REPROACH ME SO LONG AS I LIVE.L# 7 LET MINE ENEMY BE AS THE WICKED, AND HE THAT RISETH UP AGAINST ME AS THE UNRIGHTEOUS. J# 8 FOR WHAT IS THE HOPE OF THE HYPOCRITE, THOUGH HE HATH GAINED, WHEN GOD TAKETH AWAY HIS SOUL?7# 9 WILL GOD HEAR HIS CRY WHEN TROUBLE COMETH UPON HIM?OK# 10 WILL HE DELIGHT HIMSELF IN THE ALMIGHTY? WILL HE ALWAYS CALL UPON GOD?DI# 11 I WILL TEACH YOU BY THE HAND OF GOD: THAT WHICH IS WITH THE ALMIGHTY  WILL I NOT CONCEAL.L# 12 BEHOLD, ALL YE YOURSELVES HAVE SEEN IT; WHY THEN ARE YE THUS ALTOGETHER VAIN?F# 13 THIS IS THE PORTION OF A WICKED MAN WITH GOD, AND THE HERITAGE OF6 OPPRESSORS, WHICH THEY SHALL RECEIVE OF THE ALMIGHTY.J# 14 IF HIS CHILDREN BE MULTIPLIED, IT IS FOR THE SWORD: AND HIS OFFSPRING# SHALL NOT BE SATISFIED WITH BREAD.PL# 15 THOSE THAT REMAIN OF HIM SHALL BE BURIED IN DEATH: AND HIS WIDOWS SHALL NOT WEEP.K# 16 THOUGH HE HEAP UP SILVER AS THE DUST, AND PREPARE RAIMENT AS THE CLAY;LL# 17 HE MAY PREPARE IT, BUT THE JUST SHALL PUT IT ON, AND THE INNOCENT SHALL DIVIDE THE SILVER.IL# 18 HE BUILDETH HIS HOUSE AS A MOTH, AND AS A BOOTH THAT THE KEEPER MAKETH.J# 19 THE RICH MAN SHALL LIE DOWN, BUT HE SHALL NOT BE GATHERED: HE OPENETH HIS EYES, AND HE IS NOT. K# 20 TERRORS TAKE HOLD ON HIM AS WATERS, A TEMPEST STEALETH HIM AWAY IN THEA NIGHT.OF# 21 THE EAST WIND CARRIETH HIM AWAY, AND HE DEPARTETH: AND AS A STORM HURLETH HIM OUT OF HIS PLACE.J# 22 FOR GOD SHALL CAST UPON HIM, AND NOT SPARE: HE WOULD FAIN FLEE OUT OF HIS HAND.L# 23 MEN SHALL CLAP THEIR HANDS AT HIM, AND SHALL HISS HIM OUT OF HIS PLACE. = CHAPTER 28 J# 1 SURELY THERE IS A VEIN FOR THE SILVER, AND A PLACE FOR GOLD WHERE THEY FINE IT.BI# 2 IRON IS TAKEN OUT OF THE EARTH, AND BRASS IS MOLTEN OUT OF THE STONE.OH# 3 HE SETTETH AN END TO DARKNESS, AND SEARCHETH OUT ALL PERFECTION: THE- STONES OF DARKNESS, AND THE SHADOW OF DEATH.NL# 4 THE FLOOD BREAKETH OUT FROM THE INHABITANT; EVEN THE WATERS FORGOTTEN OF: THE FOOT: THEY ARE DRIED UP, THEY ARE GONE AWAY FROM MEN.M# 5 AS FOR THE EARTH, OUT OF IT COMETH BREAD: AND UNDER IT IS TURNED UP AS ITP WERE FIRE. J# 6 THE STONES OF IT ARE THE PLACE OF SAPPHIRES: AND IT HATH DUST OF GOLD.J# 7 THERE IS A PATH WHICH NO FOWL KNOWETH, AND WHICH THE VULTURES EYE HATH NOT SEEN:K# 8 THE LIONS WHELPS HAVE NOT TRODDEN IT, NOR THE FIERCE LION PASSED BY IT. L# 9 HE PUTTETH FORTH HIS HAND UPON THE ROCK; HE OVERTURNETH THE MOUNTAINS BY THE ROOTS.NL# 10 HE CUTTETH OUT RIVERS AMONG THE ROCKS; AND HIS EYE SEETH EVERY PRECIOUS THING. F# 11 HE BINDETH THE FLOODS FROM OVERFLOWING; AND THE THING THAT IS HID BRINGETH HE FORTH TO LIGHT.?# 12 BUT WHERE SHALL WISDOM BE FOUND? AND WHERE IS THE PLACE OF UNDERSTANDING?TJ# 13 MAN KNOWETH NOT THE PRICE THEREOF; NEITHER IS IT FOUND IN THE LAND OF THE LIVING.L# 14 THE DEPTH SAITH, IT IS NOT IN ME: AND THE SEA SAITH, IT IS NOT WITH ME.J# 15 IT CANNOT BE GOTTEN FOR GOLD, NEITHER SHALL SILVER BE WEIGHED FOR THE PRICE THEREOF.IK# 16 IT CANNOT BE VALUED WITH THE GOLD OF OPHIR, WITH THE PRECIOUS ONYX, ORD THE SAPPHIRE.K# 17 THE GOLD AND THE CRYSTAL CANNOT EQUAL IT: AND THE EXCHANGE OF IT SHALL2 NOT BE FOR JEWELS OF FINE GOLD.M# 18 NO MENTION SHALL BE MADE OF CORAL, OR OF PEARLS: FOR THE PRICE OF WISDOME IS ABOVE RUBIES. I# 19 THE TOPAZ OF ETHIOPIA SHALL NOT EQUAL IT, NEITHER SHALL IT BE VALUEDA WITH PURE GOLD.H# 20 WHENCE THEN COMETH WISDOM? AND WHERE IS THE PLACE OF UNDERSTANDING?J# 21 SEEING IT IS HID FROM THE EYES OF ALL LIVING, AND KEPT CLOSE FROM THE FOWLS OF THE AIR.M# 22 DESTRUCTION AND DEATH SAY, WE HAVE HEARD THE FAME THEREOF WITH OUR EARS.LI# 23 GOD UNDERSTANDETH THE WAY THEREOF, AND HE KNOWETH THE PLACE THEREOF.NG# 24 FOR HE LOOKETH TO THE ENDS OF THE EARTH, AND SEETH UNDER THE WHOLE HEAVEN;M# 2500p5b5D%5%T6%! ! TO MAKE THE WEIGHT FOR THE WINDS; AND HE WEIGHETH THE WATERS BY MEASURE.LK# 26 WHEN HE MADE A DECREE FOR THE RAIN, AND A WAY FOR THE LIGHTNING OF THEE THUNDER:AM# 27 THEN DID HE SEE IT, AND DECLARE IT; HE PREPARED IT, YEA, AND SEARCHED ITT OUT.WL# 28 AND UNTO MAN HE SAID, BEHOLD, THE FEAR OF THE LORD, THAT IS WISDOM; AND& TO DEPART FROM EVIL IS UNDERSTANDING. = CHAPTER 29 F1# 1 MOREOVER JOB CONTINUED HIS PARABLE, AND SAID,OK# 2 OH THAT I WERE AS IN MONTHS PAST, AS IN THE DAYS WHEN GOD PRESERVED ME; G# 3 WHEN HIS CANDLE SHINED UPON MY HEAD, AND WHEN BY HIS LIGHT I WALKED  THROUGH DARKNESS;H# 4 AS I WAS IN THE DAYS OF MY YOUTH, WHEN THE SECRET OF GOD WAS UPON MY TABERNACLE;F# 5 WHEN THE ALMIGHTY WAS YET WITH ME, WHEN MY CHILDREN WERE ABOUT ME;L# 6 WHEN I WASHED MY STEPS WITH BUTTER, AND THE ROCK POURED ME OUT RIVERS OF OIL;FL# 7 WHEN I WENT OUT TO THE GATE THROUGH THE CITY, WHEN I PREPARED MY SEAT IN THE STREET!K# 8 THE YOUNG MEN SAW ME, AND HID THEMSELVES: AND THE AGED AROSE, AND STOODE UP.F# 9 THE PRINCES REFRAINED TALKING, AND LAID THEIR HAND ON THEIR MOUTH.I# 10 THE NOBLES HELD THEIR PEACE, AND THEIR TONGUE CLEAVED TO THE ROOF OFF THEIR MOUTH.YK# 11 WHEN THE EAR HEARD ME, THEN IT BLESSED ME; AND WHEN THE EYE SAW ME, ITA GAVE WITNESS TO ME:I# 12 BECAUSE I DELIVERED THE POOR THAT CRIED, AND THE FATHERLESS, AND HIM  THAT HAD NONE TO HELP HIM. L# 13 THE BLESSING OF HIM THAT WAS READY TO PERISH CAME UPON ME: AND I CAUSED" THE WIDOWS HEART TO SING FOR JOY.M# 14 I PUT ON RIGHTEOUSNESS, AND IT CLOTHED ME: MY JUDGMENT WAS AS A ROBE AND A DIADEM.9# 15 I WAS EYES TO THE BLIND, AND FEET WAS I TO THE LAME.EJ# 16 I WAS A FATHER TO THE POOR: AND THE CAUSE WHICH I KNEW NOT I SEARCHED OUT.EI# 17 AND I BRAKE THE JAWS OF THE WICKED, AND PLUCKED THE SPOIL OUT OF HISL TEETH.EM# 18 THEN I SAID, I SHALL DIE IN MY NEST, AND I SHALL MULTIPLY MY DAYS AS THE  SAND.L# 19 MY ROOT WAS SPREAD OUT BY THE WATERS, AND THE DEW LAY ALL NIGHT UPON MY BRANCH.A# 20 MY GLORY WAS FRESH IN ME, AND MY BOW WAS RENEWED IN MY HAND.JF# 21 UNTO ME MEN GAVE EAR, AND WAITED, AND KEPT SILENCE AT MY COUNSEL.J# 22 AFTER MY WORDS THEY SPAKE NOT AGAIN; AND MY SPEECH DROPPED UPON THEM.M# 23 AND THEY WAITED FOR ME AS FOR THE RAIN; AND THEY OPENED THEIR MOUTH WIDED AS FOR THE LATTER RAIN.D# 24 IF I LAUGHED ON THEM, THEY BELIEVED IT NOT; AND THE LIGHT OF MY COUNTENANCE THEY CAST NOT DOWN.K# 25 I CHOSE OUT THEIR WAY, AND SAT CHIEF, AND DWELT AS A KING IN THE ARMY,% AS ONE THAT COMFORTETH THE MOURNERS., = CHAPTER 30 M# 1 BUT NOW THEY THAT ARE YOUNGER THAN I HAVE ME IN DERISION, WHOSE FATHERS IT< WOULD HAVE DISDAINED TO HAVE SET WITH THE DOGS OF MY FLOCK.M# 2 YEA, WHERETO MIGHT THE STRENGTH OF THEIR HANDS PROFIT ME, IN WHOM OLD AGEE WAS PERISHED?J# 3 FOR WANT AND FAMINE THEY WERE SOLITARY; FLEEING INTO THE WILDERNESS IN FORMER TIME DESOLATE AND WASTE.G# 4 WHO CUT UP MALLOWS BY THE BUSHES, AND JUNIPER ROOTS FOR THEIR MEAT.,L# 5 THEY WERE DRIVEN FORTH FROM AMONG MEN, (THEY CRIED AFTER THEM AS AFTER A THIEF;)L# 6 TO DWELL IN THE CLIFFS OF THE VALLEYS, IN CAVES OF THE EARTH, AND IN THE ROCKS.UF# 7 AMONG THE BUSHES THEY BRAYED; UNDER THE NETTLES THEY WERE GATHERED TOGETHER.K# 8 THEY WERE CHILDREN OF FOOLS, YEA, CHILDREN OF BASE MEN: THEY WERE VILER  THAN THE EARTH.4# 9 AND NOW AM I THEIR SONG, YEA, I AM THEIR BYWORD.L# 10 THEY ABHOR ME, THEY FLEE FAR FROM ME, AND SPARE NOT TO SPIT IN MY FACE.I# 11 BECAUSE HE HATH LOOSED MY CORD, AND AFFLICTED ME, THEY HAVE ALSO LETC LOOSE THE BRIDLE BEFORE ME.H# 12 UPON MY RIGHT HAND RISE THE YOUTH; THEY PUSH AWAY MY FEET, AND THEY3 RAISE UP AGAINST ME THE WAYS OF THEIR DESTRUCTION.DI# 13 THEY MAR MY PATH, THEY SET FORWARD MY CALAMITY, THEY HAVE NO HELPER.OI# 14 THEY CAME UPON ME AS A WIDE BREAKING IN OF WATERS: IN THE DESOLATION THEY ROLLED THEMSELVES UPON ME.H# 15 TERRORS ARE TURNED UPON ME: THEY PURSUE MY SOUL AS THE WIND: AND MY! WELFARE PASSETH AWAY AS A CLOUD. M# 16 AND NOW MY SOUL IS POURED OUT UPON ME; THE DAYS OF AFFLICTION HAVE TAKENE00p54<%X>%+%O-%TADATADATA HOLD UPON ME.J# 17 MY BONES ARE PIERCED IN ME IN THE NIGHT SEASON: AND MY SINEWS TAKE NO REST.J# 18 BY THE GREAT FORCE OF MY DISEASE IS MY GARMENT CHANGED: IT BINDETH ME ABOUT AS THE COLLAR OF MY COAT.H# 19 HE HATH CAST ME INTO THE MIRE, AND I AM BECOME LIKE DUST AND ASHES.E# 20 I CRY UNTO THEE, AND THOU DOST NOT HEAR ME: I STAND UP, AND THOU: REGARDEST ME NOT.L# 21 THOU ART BECOME CRUEL TO ME: WITH THY STRONG HAND THOU OPPOSEST THYSELF AGAINST ME.I# 22 THOU LIFTEST ME UP TO THE WIND; THOU CAUSEST ME TO RIDE UPON IT, AND  DISSOLVEST MY SUBSTANCE.GL# 23 FOR I KNOW THAT THOU WILT BRING ME TO DEATH, AND TO THE HOUSE APPOINTED FOR ALL LIVING.K# 24 HOWBEIT HE WILL NOT STRETCH OUT HIS HAND TO THE GRAVE, THOUGH THEY CRYI IN HIS DESTRUCTION.L# 25 DID NOT I WEEP FOR HIM THAT WAS IN TROUBLE? WAS NOT MY SOUL GRIEVED FOR THE POOR?J# 26 WHEN I LOOKED FOR GOOD, THEN EVIL CAME UNTO ME: AND WHEN I WAITED FOR LIGHT, THERE CAME DARKNESS.K# 27 MY BOWELS BOILED, AND RESTED NOT: THE DAYS OF AFFLICTION PREVENTED ME.ED# 28 I WENT MOURNING WITHOUT THE SUN: I STOOD UP, AND I CRIED IN THE CONGREGATION.8# 29 I AM A BROTHER TO DRAGONS, AND A COMPANION TO OWLS.A# 30 MY SKIN IS BLACK UPON ME, AND MY BONES ARE BURNED WITH HEAT. L# 31 MY HARP ALSO IS TURNED TO MOURNING, AND MY ORGAN INTO THE VOICE OF THEM THAT WEEP.L = CHAPTER 31 TJ# 1 I MADE A COVENANT WITH MINE EYES; WHY THEN SHOULD I THINK UPON A MAID?L# 2 FOR WHAT PORTION OF GOD IS THERE FROM ABOVE? AND WHAT INHERITANCE OF THE ALMIGHTY FROM ON HIGH?RM# 3 IS NOT DESTRUCTION TO THE WICKED? AND A STRANGE PUNISHMENT TO THE WORKERST OF INIQUITY?O4# 4 DOTH NOT HE SEE MY WAYS, AND COUNT ALL MY STEPS?F# 5 IF I HAVE WALKED WITH VANITY, OR IF MY FOOT HATH HASTED TO DECEIT;J# 6 LET ME BE WEIGHED IN AN EVEN BALANCE THAT GOD MAY KNOW MINE INTEGRITY.K# 7 IF MY STEP HATH TURNED OUT OF THE WAY, AND MINE HEART WALKED AFTER MINE 2 EYES, AND IF ANY BLOT HATH CLEAVED TO MINE HANDS;I# 8 THEN LET ME SOW, AND LET ANOTHER EAT; YEA, LET MY OFFSPRING BE ROOTEDO OUT.RM# 9 IF MINE HEART HAVE BEEN DECEIVED BY A WOMAN, OR IF I HAVE LAID WAIT AT MYT NEIGHBOURS DOOR; K# 10 THEN LET MY WIFE GRIND UNTO ANOTHER, AND LET OTHERS BOW DOWN UPON HER. K# 11 FOR THIS IS AN HEINOUS CRIME; YEA, IT IS AN INIQUITY TO BE PUNISHED BYN THE JUDGES.K# 12 FOR IT IS A FIRE THAT CONSUMETH TO DESTRUCTION, AND WOULD ROOT OUT ALLM MINE INCREASE.AK# 13 IF I DID DESPISE THE CAUSE OF MY MANSERVANT OR OF MY MAIDSERVANT, WHENM THEY CONTENDED WITH ME;H# 14 WHAT THEN SHALL I DO WHEN GOD RISETH UP? AND WHEN HE VISITETH, WHAT SHALL I ANSWER HIM?M# 15 DID NOT HE THAT MADE ME IN THE WOMB MAKE HIM? AND DID NOT ONE FASHION USO IN THE WOMB?EK# 16 IF I HAVE WITHHELD THE POOR FROM THEIR DESIRE, OR HAVE CAUSED THE EYESN OF THE WIDOW TO FAIL;L# 17 OR HAVE EATEN MY MORSEL MYSELF ALONE, AND THE FATHERLESS HATH NOT EATEN THEREOF;UJ# 18 (FOR FROM MY YOUTH HE WAS BROUGHT UP WITH ME, AS WITH A FATHER, AND I' HAVE GUIDED HER FROM MY MOTHERS WOMB;)EH# 19 IF I HAVE SEEN ANY PERISH FOR WANT OF CLOTHING, OR ANY POOR WITHOUT COVERING;I# 20 IF HIS LOINS HAVE NOT BLESSED ME, AND IF HE WERE NOT WARMED WITH THED FLEECE OF MY SHEEP;K# 21 IF I HAVE LIFTED UP MY HAND AGAINST THE FATHERLESS, WHEN I SAW MY HELPV IN THE GATE:EJ# 22 THEN LET MINE ARM FALL FROM MY SHOULDER BLADE, AND MINE ARM BE BROKEN FROM THE BONE.HF# 23 FOR DESTRUCTION FROM GOD WAS A TERROR TO ME, AND BY REASON OF HIS HIGHNESS I COULD NOT ENDURE.VL# 24 IF I HAVE MADE GOLD MY HOPE, OR HAVE SAID TO THE FINE GOLD, THOU ART MY CONFIDENCE;H# 25 IF I REJOICE BECAUSE MY WEALTH WAS GREAT, AND BECAUSE MINE HAND HAD GOTTEN MUCH; K# 26 IF I BEHELD THE SUN WHEN IT SHINED, OR THE MOON WALKING IN BRIGHTNESS;NH# 27 AND MY HEART HATH BEEN SECRETLY ENTICED, OR MY MOUTH HATH KISSED MY HAND:I# 28 THIS ALSO WERE AN INIQUITY TO BE PUNISHED BY THE JUDGE: FOR I SHOULDR# HAVE DENIED THE GOD THAT IS ABOVE. G# 29 IF I REJOICE AT THE DESTRUCTION OF HIM THAT HATED ME, OR LIFTED UPM MYSELF WHEN EVIL FOUND HIM:L# 30 NEITHER HAVE I SUFFERED MY MO00p5b5D%5%T6%! !UTH TO SIN BY WISHING A CURSE TO HIS SOUL.J# 31 IF THE MEN OF MY TABERNACLE SAID NOT, OH THAT WE HAD OF HIS FLESH! WE CANNOT BE SATISFIED.OK# 32 THE STRANGER DID NOT LODGE IN THE STREET: BUT I OPENED MY DOORS TO THEC TRAVELLER.TJ# 33 IF I COVERED MY TRANSGRESSIONS AS ADAM, BY HIDING MINE INIQUITY IN MY BOSOM::J# 34 DID I FEAR A GREAT MULTITUDE, OR DID THE CONTEMPT OF FAMILIES TERRIFY7 ME, THAT I KEPT SILENCE, AND WENT NOT OUT OF THE DOOR?LM# 35 OH THAT ONE WOULD HEAR ME! BEHOLD, MY DESIRE IS, THAT THE ALMIGHTY WOULD 7 ANSWER ME, AND THAT MINE ADVERSARY HAD WRITTEN A BOOK.IK# 36 SURELY I WOULD TAKE IT UPON MY SHOULDER, AND BIND IT AS A CROWN TO ME.NL# 37 I WOULD DECLARE UNTO HIM THE NUMBER OF MY STEPS; AS A PRINCE WOULD I GO NEAR UNTO HIM. D# 38 IF MY LAND CRY AGAINST ME, OR THAT THE FURROWS LIKEWISE THEREOF COMPLAIN;I# 39 IF I HAVE EATEN THE FRUITS THEREOF WITHOUT MONEY, OR HAVE CAUSED THEE# OWNERS THEREOF TO LOSE THEIR LIFE:OJ# 40 LET THISTLES GROW INSTEAD OF WHEAT, AND COCKLE INSTEAD OF BARLEY. THE WORDS OF JOB ARE ENDED. = CHAPTER 32 SL# 1 SO THESE THREE MEN CEASED TO ANSWER JOB, BECAUSE HE WAS RIGHTEOUS IN HIS OWN EYES.J# 2 THEN WAS KINDLED THE WRATH OF ELIHU THE SON OF BARACHEL THE BUZITE, OFL THE KINDRED OF RAM: AGAINST JOB WAS HIS WRATH KINDLED, BECAUSE HE JUSTIFIED HIMSELF RATHER THAN GOD.CJ# 3 ALSO AGAINST HIS THREE FRIENDS WAS HIS WRATH KINDLED, BECAUSE THEY HAD, FOUND NO ANSWER, AND YET HAD CONDEMNED JOB.J# 4 NOW ELIHU HAD WAITED TILL JOB HAD SPOKEN, BECAUSE THEY WERE ELDER THAN HE.L# 5 WHEN ELIHU SAW THAT THERE WAS NO ANSWER IN THE MOUTH OF THESE THREE MEN, THEN HIS WRATH WAS KINDLED.K# 6 AND ELIHU THE SON OF BARACHEL THE BUZITE ANSWERED AND SAID, I AM YOUNG,EI AND YE ARE VERY OLD; WHEREFORE I WAS AFRAID, AND DURST NOT SHEW YOU MINEE OPINION.SJ# 7 I SAID, DAYS SHOULD SPEAK, AND MULTITUDE OF YEARS SHOULD TEACH WISDOM.L# 8 BUT THERE IS A SPIRIT IN MAN: AND THE INSPIRATION OF THE ALMIGHTY GIVETH THEM UNDERSTANDING.K# 9 GREAT MEN ARE NOT ALWAYS WISE: NEITHER DO THE AGED UNDERSTAND JUDGMENT.UD# 10 THEREFORE I SAID, HEARKEN TO ME; I ALSO WILL SHEW MINE OPINION.K# 11 BEHOLD, I WAITED FOR YOUR WORDS; I GAVE EAR TO YOUR REASONS, WHILST YE  SEARCHED OUT WHAT TO SAY.F# 12 YEA, I ATTENDED UNTO YOU, AND, BEHOLD, THERE WAS NONE OF YOU THAT+ CONVINCED JOB, OR THAT ANSWERED HIS WORDS:DJ# 13 LEST YE SHOULD SAY, WE HAVE FOUND OUT WISDOM: GOD THRUSTETH HIM DOWN, NOT MAN.PM# 14 NOW HE HATH NOT DIRECTED HIS WORDS AGAINST ME: NEITHER WILL I ANSWER HIMA WITH YOUR SPEECHES.E# 15 THEY WERE AMAZED, THEY ANSWERED NO MORE: THEY LEFT OFF SPEAKING.LM# 16 WHEN I HAD WAITED, (FOR THEY SPAKE NOT, BUT STOOD STILL, AND ANSWERED NO  MORE;)OG# 17 I SAID, I WILL ANSWER ALSO MY PART, I ALSO WILL SHEW MINE OPINION.,C# 18 FOR I AM FULL OF MATTER, THE SPIRIT WITHIN ME CONSTRAINETH ME.WI# 19 BEHOLD, MY BELLY IS AS WINE WHICH HATH NO VENT; IT IS READY TO BURSTR LIKE NEW BOTTLES.K# 20 I WILL SPEAK, THAT I MAY BE REFRESHED: I WILL OPEN MY LIPS AND ANSWER.AH# 21 LET ME NOT, I PRAY YOU, ACCEPT ANY MANS PERSON, NEITHER LET ME GIVE FLATTERING TITLES UNTO MAN.I# 22 FOR I KNOW NOT TO GIVE FLATTERING TITLES; IN SO DOING MY MAKER WOULDD SOON TAKE ME AWAY.I = CHAPTER 33 NH# 1 WHEREFORE, JOB, I PRAY THEE, HEAR MY SPEECHES, AND HEARKEN TO ALL MY WORDS.HJ# 2 BEHOLD, NOW I HAVE OPENED MY MOUTH, MY TONGUE HATH SPOKEN IN MY MOUTH.M# 3 MY WORDS SHALL BE OF THE UPRIGHTNESS OF MY HEART: AND MY LIPS SHALL UTTERA KNOWLEDGE CLEARLY. M# 4 THE SPIRIT OF GOD HATH MADE ME, AND THE BREATH OF THE ALMIGHTY HATH GIVENP ME LIFE.HH# 5 IF THOU CANST ANSWER ME, SET THY WORDS IN ORDER BEFORE ME, STAND UP.M# 6 BEHOLD, I AM ACCORDING TO THY WISH IN GODS STEAD: I ALSO AM FORMED OUT OF THE CLAY.J# 7 BEHOLD, MY TERROR SHALL NOT MAKE THEE AFRAID, NEITHER SHALL MY HAND BE HEAVY UPON THEE. J# 8 SURELY THOU HAST SPOKEN IN MINE HEARING, AND I HAVE HEARD THE VOICE OF THY WORDS, SAYING,SE# 9 I AM CLEAN WITHOUT TRANSGRESSION, I AM INNOCENT; NEITHER IS THEREP INIQUITY IN ME.K# 10 BEHOLD, HE FINDETH 00p54<%X>%+%O-%TADATADATAOCCASIONS AGAINST ME, HE COUNTETH ME FOR HIS ENEMY,A?# 11 HE PUTTETH MY FEET IN THE STOCKS, HE MARKETH ALL MY PATHS.EG# 12 BEHOLD, IN THIS THOU ART NOT JUST: I WILL ANSWER THEE, THAT GOD IS GREATER THAN MAN.J# 13 WHY DOST THOU STRIVE AGAINST HIM? FOR HE GIVETH NOT ACCOUNT OF ANY OF HIS MATTERS. A# 14 FOR GOD SPEAKETH ONCE, YEA TWICE, YET MAN PERCEIVETH IT NOT. L# 15 IN A DREAM, IN A VISION OF THE NIGHT, WHEN DEEP SLEEP FALLETH UPON MEN, IN SLUMBERINGS UPON THE BED; ITD# 16 THEN HE OPENETH THE EARS OF MEN, AND SEALETH THEIR INSTRUCTION,H# 17 THAT HE MAY WITHDRAW MAN FROM HIS PURPOSE, AND HIDE PRIDE FROM MAN.J# 18 HE KEEPETH BACK HIS SOUL FROM THE PIT, AND HIS LIFE FROM PERISHING BY THE SWORD.AJ# 19 HE IS CHASTENED ALSO WITH PAIN UPON HIS BED, AND THE MULTITUDE OF HIS BONES WITH STRONG PAIN:@# 20 SO THAT HIS LIFE ABHORRETH BREAD, AND HIS SOUL DAINTY MEAT.K# 21 HIS FLESH IS CONSUMED AWAY, THAT IT CANNOT BE SEEN; AND HIS BONES THAT WERE NOT SEEN STICK OUT.DC# 22 YEA, HIS SOUL DRAWETH NEAR UNTO THE GRAVE, AND HIS LIFE TO THET DESTROYERS.L# 23 IF THERE BE A MESSENGER WITH HIM, AN INTERPRETER, ONE AMONG A THOUSAND," TO SHEW UNTO MAN HIS UPRIGHTNESS:L# 24 THEN HE IS GRACIOUS UNTO HIM, AND SAITH, DELIVER HIM FROM GOING DOWN TO THE PIT: I HAVE FOUND A RANSOM.M# 25 HIS FLESH SHALL BE FRESHER THAN A CHILDS: HE SHALL RETURN TO THE DAYS OFS HIS YOUTH:AM# 26 HE SHALL PRAY UNTO GOD, AND HE WILL BE FAVOURABLE UNTO HIM: AND HE SHALLF SEE HIS FACE WITH JOY: FOR HE WILL RENDER UNTO MAN HIS RIGHTEOUSNESS.K# 27 HE LOOKETH UPON MEN, AND IF ANY SAY, I HAVE SINNED, AND PERVERTED THATI) WHICH WAS RIGHT, AND IT PROFITED ME NOT;TM# 28 HE WILL DELIVER HIS SOUL FROM GOING INTO THE PIT, AND HIS LIFE SHALL SEE THE LIGHT.R:# 29 LO, ALL THESE THINGS WORKETH GOD OFTENTIMES WITH MAN,M# 30 TO BRING BACK HIS SOUL FROM THE PIT, TO BE ENLIGHTENED WITH THE LIGHT OFU THE LIVING.I# 31 MARK WELL, O JOB, HEARKEN UNTO ME: HOLD THY PEACE, AND I WILL SPEAK.EL# 32 IF THOU HAST ANYTHING TO SAY, ANSWER ME: SPEAK, FOR I DESIRE TO JUSTIFY THEE.L# 33 IF NOT, HEARKEN UNTO ME: HOLD THY PEACE, AND I SHALL TEACH THEE WISDOM. = CHAPTER 34 (# 1 FURTHERMORE ELIHU ANSWERED AND SAID,D# 2 HEAR MY WORDS, O YE WISE MEN; AND GIVE EAR UNTO ME, YE THAT HAVE KNOWLEDGE.I8# 3 FOR THE EAR TRIETH WORDS, AS THE MOUTH TASTETH MEAT.K# 4 LET US CHOOSE TO US JUDGMENT: LET US KNOW AMONG OURSELVES WHAT IS GOOD.1K# 5 FOR JOB HATH SAID, I AM RIGHTEOUS: AND GOD HATH TAKEN AWAY MY JUDGMENT.I@# 6 SHOULD I LIE AGAINST MY RIGHT? MY WOUND IS INCURABLE WITHOUT TRANSGRESSION.3># 7 WHAT MAN IS LIKE JOB, WHO DRINKETH UP SCORNING LIKE WATER?I# 8 WHICH GOETH IN COMPANY WITH THE WORKERS OF INIQUITY, AND WALKETH WITHR WICKED MEN.G# 9 FOR HE HATH SAID, IT PROFITETH A MAN NOTHING THAT HE SHOULD DELIGHT  HIMSELF WITH GOD.K# 10 THEREFORE HEARKEN UNTO ME YE MEN OF UNDERSTANDING: FAR BE IT FROM GOD, K THAT HE SHOULD DO WICKEDNESS; AND FROM THE ALMIGHTY, THAT HE SHOULD COMMIT INIQUITY.K# 11 FOR THE WORK OF A MAN SHALL HE RENDER UNTO HIM, AND CAUSE EVERY MAN TOT FIND ACCORDING TO HIS WAYS.L# 12 YEA, SURELY GOD WILL NOT DO WICKEDLY, NEITHER WILL THE ALMIGHTY PERVERT JUDGMENT.I# 13 WHO HATH GIVEN HIM A CHARGE OVER THE EARTH? OR WHO HATH DISPOSED THE WHOLE WORLD?MK# 14 IF HE SET HIS HEART UPON MAN, IF HE GATHER UNTO HIMSELF HIS SPIRIT ANDN HIS BREATH;I# 15 ALL FLESH SHALL PERISH TOGETHER, AND MAN SHALL TURN AGAIN UNTO DUST.DJ# 16 IF NOW THOU HAST UNDERSTANDING, HEAR THIS: HEARKEN TO THE VOICE OF MY WORDS.AK# 17 SHALL EVEN HE THAT HATETH RIGHT GOVERN? AND WILT THOU CONDEMN HIM THAT IS MOST JUST?H# 18 IS IT FIT TO SAY TO A KING, THOU ART WICKED? AND TO PRINCES, YE ARE UNGODLY?TH# 19 HOW MUCH LESS TO HIM THAT ACCEPTETH NOT THE PERSONS OF PRINCES, NORH REGARDETH THE RICH MORE THAN THE POOR? FOR THEY ALL ARE THE WORK OF HIS HANDS.D# 20 IN A MOMENT SHALL THEY DIE, AND THE PEOPLE SHALL BE TROUBLED ATJ MIDNIGHT, AND PASS AWAY: AND THE MIGHTY SHALL BE TAKEN AWAY WITHOUT HAND.H# 21 FOR HIS EYES ARE UPON THE WAYS OF MAN, AND HE S00p6b5D%5%T6%! !EETH ALL HIS GOINGS.M# 22 THERE IS NO DARKNESS, NOR SHADOW OF DEATH, WHERE THE WORKERS OF INIQUITYN MAY HIDE THEMSELVES. L# 23 FOR HE WILL NOT LAY UPON MAN MORE THAN RIGHT; THAT HE SHOULD ENTER INTO JUDGMENT WITH GOD.,J# 24 HE SHALL BREAK IN PIECES MIGHTY MEN WITHOUT NUMBER, AND SET OTHERS IN THEIR STEAD. L# 25 THEREFORE HE KNOWETH THEIR WORKS, AND HE OVERTURNETH THEM IN THE NIGHT, SO THAT THEY ARE DESTROYED.@# 26 HE STRIKETH THEM AS WICKED MEN IN THE OPEN SIGHT OF OTHERS;I# 27 BECAUSE THEY TURNED BACK FROM HIM, AND WOULD NOT CONSIDER ANY OF HISS WAYS:L# 28 SO THAT THEY CAUSE THE CRY OF THE POOR TO COME UNTO HIM, AND HE HEARETH THE CRY OF THE AFFLICTED.L# 29 WHEN HE GIVETH QUIETNESS, WHO THEN CAN MAKE TROUBLE? AND WHEN HE HIDETHK HIS FACE, WHO THEN CAN BEHOLD HIM? WHETHER IT BE DONE AGAINST A NATION, ORT AGAINST A MAN ONLY:?# 30 THAT THE HYPOCRITE REIGN NOT, LEST THE PEOPLE BE ENSNARED.RM# 31 SURELY IT IS MEET TO BE SAID UNTO GOD, I HAVE BORNE CHASTISEMENT, I WILL NOT OFFEND ANY MORE:DK# 32 THAT WHICH I SEE NOT TEACH THOU ME: IF I HAVE DONE INIQUITY, I WILL DO NO MORE.RL# 33 SHOULD IT BE ACCORDING TO THY MIND? HE WILL RECOMPENSE IT, WHETHER THOUN REFUSE, OR WHETHER THOU CHOOSE; AND NOT I: THEREFORE SPEAK WHAT THOU KNOWEST.J# 34 LET MEN OF UNDERSTANDING TELL ME, AND LET A WISE MAN HEARKEN UNTO ME.J# 35 JOB HATH SPOKEN WITHOUT KNOWLEDGE, AND HIS WORDS WERE WITHOUT WISDOM.K# 36 MY DESIRE IS THAT JOB MAY BE TRIED UNTO THE END BECAUSE OF HIS ANSWERSN FOR WICKED MEN.J# 37 FOR HE ADDETH REBELLION UNTO HIS SIN, HE CLAPPETH HIS HANDS AMONG US,' AND MULTIPLIETH HIS WORDS AGAINST GOD.L = CHAPTER 35 N## 1 ELIHU SPAKE MOREOVER, AND SAID, I# 2 THINKEST THOU THIS TO BE RIGHT, THAT THOU SAIDST, MY RIGHTEOUSNESS ISH MORE THAN GODS?J# 3 FOR THOU SAIDST, WHAT ADVANTAGE WILL IT BE UNTO THEE? AND, WHAT PROFIT, SHALL I HAVE, IF I BE CLEANSED FROM MY SIN?5# 4 I WILL ANSWER THEE, AND THY COMPANIONS WITH THEE.BJ# 5 LOOK UNTO THE HEAVENS, AND SEE; AND BEHOLD THE CLOUDS WHICH ARE HIGHER THAN THOU.RM# 6 IF THOU SINNEST, WHAT DOEST THOU AGAINST HIM? OR IF THY TRANSGRESSIONS BER& MULTIPLIED, WHAT DOEST THOU UNTO HIM?M# 7 IF THOU BE RIGHTEOUS, WHAT GIVEST THOU HIM? OR WHAT RECEIVETH HE OF THINEA HAND?H# 8 THY WICKEDNESS MAY HURT A MAN AS THOU ART; AND THY RIGHTEOUSNESS MAY PROFIT THE SON OF MAN.,M# 9 BY REASON OF THE MULTITUDE OF OPPRESSIONS THEY MAKE THE OPPRESSED TO CRY:H1 THEY CRY OUT BY REASON OF THE ARM OF THE MIGHTY.HJ# 10 BUT NONE SAITH, WHERE IS GOD MY MAKER, WHO GIVETH SONGS IN THE NIGHT;K# 11 WHO TEACHETH US MORE THAN THE BEASTS OF THE EARTH, AND MAKETH US WISER THAN THE FOWLS OF HEAVEN?I# 12 THERE THEY CRY, BUT NONE GIVETH ANSWER, BECAUSE OF THE PRIDE OF EVILT MEN. J# 13 SURELY GOD WILL NOT HEAR VANITY, NEITHER WILL THE ALMIGHTY REGARD IT.M# 14 ALTHOUGH THOU SAYEST THOU SHALT NOT SEE HIM, YET JUDGMENT IS BEFORE HIM;S THEREFORE TRUST THOU IN HIM.OH# 15 BUT NOW, BECAUSE IT IS NOT SO, HE HATH VISITED IN HIS ANGER; YET HE# KNOWETH IT NOT IN GREAT EXTREMITY:EL# 16 THEREFORE DOTH JOB OPEN HIS MOUTH IN VAIN; HE MULTIPLIETH WORDS WITHOUT KNOWLEDGE.U = CHAPTER 36 ## 1 ELIHU ALSO PROCEEDED, AND SAID, M# 2 SUFFER ME A LITTLE, AND I WILL SHEW THEE THAT I HAVE YET TO SPEAK ON GODS  BEHALF.M# 3 I WILL FETCH MY KNOWLEDGE FROM AFAR, AND WILL ASCRIBE RIGHTEOUSNESS TO MY  MAKER.TM# 4 FOR TRULY MY WORDS SHALL NOT BE FALSE: HE THAT IS PERFECT IN KNOWLEDGE IS5 WITH THEE.AJ# 5 BEHOLD, GOD IS MIGHTY, AND DESPISETH NOT ANY: HE IS MIGHTY IN STRENGTH AND WISDOM.K# 6 HE PRESERVETH NOT THE LIFE OF THE WICKED: BUT GIVETH RIGHT TO THE POOR.OK# 7 HE WITHDRAWETH NOT HIS EYES FROM THE RIGHTEOUS: BUT WITH KINGS ARE THEYUK ON THE THRONE; YEA, HE DOTH ESTABLISH THEM FOR EVER, AND THEY ARE EXALTED.HJ# 8 AND IF THEY BE BOUND IN FETTERS, AND BE HOLDEN IN CORDS OF AFFLICTION;L# 9 THEN HE SHEWETH THEM THEIR WORK, AND THEIR TRANSGRESSIONS THAT THEY HAVE EXCEEDED.M# 10 HE OPENETH ALSO THEIR EAR TO DISCIPLINE, AND COMMANDETH THAT THEY RETURN  FROM INIQUITY.HK# 11 IF THEY OBEY AND 00p64<%X>%+%O-%TADATADATASERVE HIM, THEY SHALL SPEND THEIR DAYS IN PROSPERITY,T AND THEIR YEARS IN PLEASURES.M# 12 BUT IF THEY OBEY NOT, THEY SHALL PERISH BY THE SWORD, AND THEY SHALL DIEE WITHOUT KNOWLEDGE.TL# 13 BUT THE HYPOCRITES IN HEART HEAP UP WRATH: THEY CRY NOT WHEN HE BINDETH THEM.<# 14 THEY DIE IN YOUTH, AND THEIR LIFE IS AMONG THE UNCLEAN.H# 15 HE DELIVERETH THE POOR IN HIS AFFLICTION, AND OPENETH THEIR EARS IN OPPRESSION.M# 16 EVEN SO WOULD HE HAVE REMOVED THEE OUT OF THE STRAIT INTO A BROAD PLACE,OH WHERE THERE IS NO STRAITNESS; AND THAT WHICH SHOULD BE SET ON THY TABLE SHOULD BE FULL OF FATNESS.TM# 17 BUT THOU HAST FULFILLED THE JUDGMENT OF THE WICKED: JUDGMENT AND JUSTICET TAKE HOLD ON THEE.TK# 18 BECAUSE THERE IS WRATH, BEWARE LEST HE TAKE THEE AWAY WITH HIS STROKE:) THEN A GREAT RANSOM CANNOT DELIVER THEE.MM# 19 WILL HE ESTEEM THY RICHES? NO, NOT GOLD, NOR ALL THE FORCES OF STRENGTH.EB# 20 DESIRE NOT THE NIGHT, WHEN PEOPLE ARE CUT OFF IN THEIR PLACE.J# 21 TAKE HEED, REGARD NOT INIQUITY: FOR THIS HAST THOU CHOSEN RATHER THAN AFFLICTION.># 22 BEHOLD, GOD EXALTETH BY HIS POWER: WHO TEACHETH LIKE HIM?E# 23 WHO HATH ENJOINED HIM HIS WAY? OR WHO CAN SAY, THOU HAST WROUGHTK INIQUITY?;# 24 REMEMBER THAT THOU MAGNIFY HIS WORK, WHICH MEN BEHOLD.W6# 25 EVERY MAN MAY SEE IT; MAN MAY BEHOLD IT AFAR OFF.M# 26 BEHOLD, GOD IS GREAT, AND WE KNOW HIM NOT, NEITHER CAN THE NUMBER OF HIST YEARS BE SEARCHED OUT. M# 27 FOR HE MAKETH SMALL THE DROPS OF WATER: THEY POUR DOWN RAIN ACCORDING TOI THE VAPOUR THEREOF:=# 28 WHICH THE CLOUDS DO DROP AND DISTIL UPON MAN ABUNDANTLY.TJ# 29 ALSO CAN ANY UNDERSTAND THE SPREADINGS OF THE CLOUDS, OR THE NOISE OF HIS TABERNACLE?K# 30 BEHOLD, HE SPREADETH HIS LIGHT UPON IT, AND COVERETH THE BOTTOM OF THE  SEA.OD# 31 FOR BY THEM JUDGETH HE THE PEOPLE; HE GIVETH MEAT IN ABUNDANCE.M# 32 WITH CLOUDS HE COVERETH THE LIGHT; AND COMMANDETH IT NOT TO SHINE BY THEB CLOUD THAT COMETH BETWIXT. L# 33 THE NOISE THEREOF SHEWETH CONCERNING IT, THE CATTLE ALSO CONCERNING THE VAPOUR. = CHAPTER 37 EC# 1 AT THIS ALSO MY HEART TREMBLETH, AND IS MOVED OUT OF HIS PLACE.NL# 2 HEAR ATTENTIVELY THE NOISE OF HIS VOICE, AND THE SOUND THAT GOETH OUT OF HIS MOUTH.PK# 3 HE DIRECTETH IT UNDER THE WHOLE HEAVEN, AND HIS LIGHTNING UNTO THE ENDSB OF THE EARTH.M# 4 AFTER IT A VOICE ROARETH: HE THUNDERETH WITH THE VOICE OF HIS EXCELLENCY;G3 AND HE WILL NOT STAY THEM WHEN HIS VOICE IS HEARD.AL# 5 GOD THUNDERETH MARVELLOUSLY WITH HIS VOICE; GREAT THINGS DOETH HE, WHICH WE CANNOT COMPREHEND.I# 6 FOR HE SAITH TO THE SNOW, BE THOU ON THE EARTH; LIKEWISE TO THE SMALL - RAIN, AND TO THE GREAT RAIN OF HIS STRENGTH.OH# 7 HE SEALETH UP THE HAND OF EVERY MAN; THAT ALL MEN MAY KNOW HIS WORK.=# 8 THEN THE BEASTS GO INTO DENS, AND REMAIN IN THEIR PLACES.E# 9 OUT OF THE SOUTH COMETH THE WHIRLWIND: AND COLD OUT OF THE NORTH.IJ# 10 BY THE BREATH OF GOD FROST IS GIVEN: AND THE BREADTH OF THE WATERS IS STRAITENED.K# 11 ALSO BY WATERING HE WEARIETH THE THICK CLOUD: HE SCATTERETH HIS BRIGHTC CLOUD:.C# 12 AND IT IS TURNED ROUND ABOUT BY HIS COUNSELS: THAT THEY MAY DO G WHATSOEVER HE COMMANDETH THEM UPON THE FACE OF THE WORLD IN THE EARTH. K# 13 HE CAUSETH IT TO COME, WHETHER FOR CORRECTION, OR FOR HIS LAND, OR FORO MERCY.SK# 14 HEARKEN UNTO THIS, O JOB: STAND STILL, AND CONSIDER THE WONDROUS WORKSD OF GOD.M# 15 DOST THOU KNOW WHEN GOD DISPOSED THEM, AND CAUSED THE LIGHT OF HIS CLOUDE TO SHINE?K# 16 DOST THOU KNOW THE BALANCINGS OF THE CLOUDS, THE WONDROUS WORKS OF HIMH WHICH IS PERFECT IN KNOWLEDGE?IM# 17 HOW THY GARMENTS ARE WARM, WHEN HE QUIETETH THE EARTH BY THE SOUTH WIND?AL# 18 HAST THOU WITH HIM SPREAD OUT THE SKY, WHICH IS STRONG, AND AS A MOLTEN LOOKING GLASS?OK# 19 TEACH US WHAT WE SHALL SAY UNTO HIM; FOR WE CANNOT ORDER OUR SPEECH BYS REASON OF DARKNESS.J# 20 SHALL IT BE TOLD HIM THAT I SPEAK? IF A MAN SPEAK, SURELY HE SHALL BE SWALLOWED UP.I# 21 AND NOW MEN SEE NOT THE BRIGHT LIGHT WHICH IS IN THE CLOUDS: BUT THE " WIND PASSETH, AND CLEANSETH THEM.H# 22 FAIR WEAT00p6b5D%5%T6%! !HER COMETH OUT OF THE NORTH: WITH GOD IS TERRIBLE MAJESTY.M# 23 TOUCHING THE ALMIGHTY, WE CANNOT FIND HIM OUT: HE IS EXCELLENT IN POWER,S@ AND IN JUDGMENT, AND IN PLENTY OF JUSTICE: HE WILL NOT AFFLICT.M# 24 MEN DO THEREFORE FEAR HIM: HE RESPECTETH NOT ANY THAT ARE WISE OF HEART.D = CHAPTER 38 S># 1 THEN THE LORD ANSWERED JOB OUT OF THE WHIRLWIND, AND SAID,B# 2 WHO IS THIS THAT DARKENETH COUNSEL BY WORDS WITHOUT KNOWLEDGE?K# 3 GIRD UP NOW THY LOINS LIKE A MAN; FOR I WILL DEMAND OF THEE, AND ANSWERE THOU ME.HI# 4 WHERE WAST THOU WHEN I LAID THE FOUNDATIONS OF THE EARTH? DECLARE, IFY THOU HAST UNDERSTANDING.ED# 5 WHO HATH LAID THE MEASURES THEREOF, IF THOU KNOWEST? OR WHO HATH STRETCHED THE LINE UPON IT?J# 6 WHEREUPON ARE THE FOUNDATIONS THEREOF FASTENED? OR WHO LAID THE CORNER STONE THEREOF;HM# 7 WHEN THE MORNING STARS SANG TOGETHER, AND ALL THE SONS OF GOD SHOUTED FORD JOY?HH# 8 OR WHO SHUT UP THE SEA WITH DOORS, WHEN IT BRAKE FORTH, AS IF IT HAD ISSUED OUT OF THE WOMB?C# 9 WHEN I MADE THE CLOUD THE GARMENT THEREOF, AND THICK DARKNESS AA SWADDLINGBAND FOR IT,B# 10 AND BRAKE UP FOR IT MY DECREED PLACE, AND SET BARS AND DOORS,K# 11 AND SAID, HITHERTO SHALT THOU COME, BUT NO FURTHER: AND HERE SHALL THYR PROUD WAVES BE STAYED? M# 12 HAST THOU COMMANDED THE MORNING SINCE THY DAYS; AND CAUSED THE DAYSPRINGG TO KNOW HIS PLACE; L# 13 THAT IT MIGHT TAKE HOLD OF THE ENDS OF THE EARTH, THAT THE WICKED MIGHT BE SHAKEN OUT OF IT?RC# 14 IT IS TURNED AS CLAY TO THE SEAL; AND THEY STAND AS A GARMENT. M# 15 AND FROM THE WICKED THEIR LIGHT IS WITHHOLDEN, AND THE HIGH ARM SHALL BEA BROKEN.J# 16 HAST THOU ENTERED INTO THE SPRINGS OF THE SEA? OR HAST THOU WALKED IN THE SEARCH OF THE DEPTH?AI# 17 HAVE THE GATES OF DEATH BEEN OPENED UNTO THEE? OR HAST THOU SEEN THEM DOORS OF THE SHADOW OF DEATH?M# 18 HAST THOU PERCEIVED THE BREADTH OF THE EARTH? DECLARE IF THOU KNOWEST ITS ALL. M# 19 WHERE IS THE WAY WHERE LIGHT DWELLETH? AND AS FOR DARKNESS, WHERE IS THE  PLACE THEREOF, ITD# 20 THAT THOU SHOULDEST TAKE IT TO THE BOUND THEREOF, AND THAT THOU/ SHOULDEST KNOW THE PATHS TO THE HOUSE THEREOF?HK# 21 KNOWEST THOU IT, BECAUSE THOU WAST THEN BORN? OR BECAUSE THE NUMBER OFA THY DAYS IS GREAT? L# 22 HAST THOU ENTERED INTO THE TREASURES OF THE SNOW? OR HAST THOU SEEN THE TREASURES OF THE HAIL,?J# 23 WHICH I HAVE RESERVED AGAINST THE TIME OF TROUBLE, AGAINST THE DAY OF BATTLE AND WAR?M# 24 BY WHAT WAY IS THE LIGHT PARTED, WHICH SCATTERETH THE EAST WIND UPON THEA EARTH?FK# 25 WHO HATH DIVIDED A WATERCOURSE FOR THE OVERFLOWING OF WATERS, OR A WAYS FOR THE LIGHTNING OF THUNDER;J# 26 TO CAUSE IT TO RAIN ON THE EARTH, WHERE NO MAN IS; ON THE WILDERNESS, WHEREIN THERE IS NO MAN; J# 27 TO SATISFY THE DESOLATE AND WASTE GROUND; AND TO CAUSE THE BUD OF THE TENDER HERB TO SPRING FORTH? C# 28 HATH THE RAIN A FATHER? OR WHO HATH BEGOTTEN THE DROPS OF DEW?SL# 29 OUT OF WHOSE WOMB CAME THE ICE? AND THE HOARY FROST OF HEAVEN, WHO HATH GENDERED IT?SL# 30 THE WATERS ARE HID AS WITH A STONE, AND THE FACE OF THE DEEP IS FROZEN.L# 31 CANST THOU BIND THE SWEET INFLUENCES OF PLEIADES, OR LOOSE THE BANDS OF ORION? H# 32 CANST THOU BRING FORTH MAZZAROTH IN HIS SEASON? OR CANST THOU GUIDE ARCTURUS WITH HIS SONS?G# 33 KNOWEST THOU THE ORDINANCES OF HEAVEN? CANST THOU SET THE DOMINIONG THEREOF IN THE EARTH?M# 34 CANST THOU LIFT UP THY VOICE TO THE CLOUDS, THAT ABUNDANCE OF WATERS MAYC COVER THEE?L# 35 CANST THOU SEND LIGHTNINGS, THAT THEY MAY GO AND SAY UNTO THEE, HERE WE ARE?TM# 36 WHO HATH PUT WISDOM IN THE INWARD PARTS? OR WHO HATH GIVEN UNDERSTANDINGI TO THE HEART?H# 37 WHO CAN NUMBER THE CLOUDS IN WISDOM? OR WHO CAN STAY THE BOTTLES OF HEAVEN,M# 38 WHEN THE DUST GROWETH INTO HARDNESS, AND THE CLODS CLEAVE FAST TOGETHER?RL# 39 WILT THOU HUNT THE PREY FOR THE LION? OR FILL THE APPETITE OF THE YOUNG LIONS,OK# 40 WHEN THEY COUCH IN THEIR DENS, AND ABIDE IN THE COVERT TO LIE IN WAIT??L# 41 WHO PROVIDETH FOR THE RAVEN HIS FOOD? WHEN HIS YOUNG ONES CRY UNTO GOD, THEY WANDER F00p64<%X>%+%O-%TADATADATAOR LACK OF MEAT. = CHAPTER 39 DI# 1 KNOWEST THOU THE TIME WHEN THE WILD GOATS OF THE ROCK BRING FORTH? ORE) CANST THOU MARK WHEN THE HINDS DO CALVE? K# 2 CANST THOU NUMBER THE MONTHS THAT THEY FULFIL? OR KNOWEST THOU THE TIME  WHEN THEY BRING FORTH? I# 3 THEY BOW THEMSELVES, THEY BRING FORTH THEIR YOUNG ONES, THEY CAST OUT THEIR SORROWS.EH# 4 THEIR YOUNG ONES ARE IN GOOD LIKING, THEY GROW UP WITH CORN; THEY GO! FORTH, AND RETURN NOT UNTO THEM.OL# 5 WHO HATH SENT OUT THE WILD ASS FREE? OR WHO HATH LOOSED THE BANDS OF THE WILD ASS?C# 6 WHOSE HOUSE I HAVE MADE THE WILDERNESS, AND THE BARREN LAND HISE DWELLINGS. M# 7 HE SCORNETH THE MULTITUDE OF THE CITY, NEITHER REGARDETH HE THE CRYING OFI THE DRIVER.K# 8 THE RANGE OF THE MOUNTAINS IS HIS PASTURE, AND HE SEARCHETH AFTER EVERY GREEN THING.ND# 9 WILL THE UNICORN BE WILLING TO SERVE THEE, OR ABIDE BY THY CRIB?H# 10 CANST THOU BIND THE UNICORN WITH HIS BAND IN THE FURROW? OR WILL HE HARROW THE VALLEYS AFTER THEE? K# 11 WILT THOU TRUST HIM, BECAUSE HIS STRENGTH IS GREAT? OR WILT THOU LEAVES THY LABOUR TO HIM?DK# 12 WILT THOU BELIEVE HIM, THAT HE WILL BRING HOME THY SEED, AND GATHER IT  INTO THY BARN?HJ# 13 GAVEST THOU THE GOODLY WINGS UNTO THE PEACOCKS? OR WINGS AND FEATHERS UNTO THE OSTRICH?C# 14 WHICH LEAVETH HER EGGS IN THE EARTH, AND WARMETH THEM IN DUST,IL# 15 AND FORGETTETH THAT THE FOOT MAY CRUSH THEM, OR THAT THE WILD BEAST MAY BREAK THEM.J# 16 SHE IS HARDENED AGAINST HER YOUNG ONES, AS THOUGH THEY WERE NOT HERS:$ HER LABOUR IS IN VAIN WITHOUT FEAR;M# 17 BECAUSE GOD HATH DEPRIVED HER OF WISDOM, NEITHER HATH HE IMPARTED TO HERH UNDERSTANDING. M# 18 WHAT TIME SHE LIFTETH UP HERSELF ON HIGH, SHE SCORNETH THE HORSE AND HISN RIDER.AH# 19 HAST THOU GIVEN THE HORSE STRENGTH? HAST THOU CLOTHED HIS NECK WITH THUNDER?EK# 20 CANST THOU MAKE HIM AFRAID AS A GRASSHOPPER? THE GLORY OF HIS NOSTRILS IS TERRIBLE.HK# 21 HE PAWETH IN THE VALLEY, AND REJOICETH IN HIS STRENGTH: HE GOETH ON TOA MEET THE ARMED MEN.L# 22 HE MOCKETH AT FEAR, AND IS NOT AFFRIGHTED; NEITHER TURNETH HE BACK FROM THE SWORD. J# 23 THE QUIVER RATTLETH AGAINST HIM, THE GLITTERING SPEAR AND THE SHIELD.L# 24 HE SWALLOWETH THE GROUND WITH FIERCENESS AND RAGE: NEITHER BELIEVETH HE% THAT IT IS THE SOUND OF THE TRUMPET.CI# 25 HE SAITH AMONG THE TRUMPETS, HA, HA; AND HE SMELLETH THE BATTLE AFARS4 OFF, THE THUNDER OF THE CAPTAINS, AND THE SHOUTING.M# 26 DOTH THE HAWK FLY BY THY WISDOM, AND STRETCH HER WINGS TOWARD THE SOUTH?EG# 27 DOTH THE EAGLE MOUNT UP AT THY COMMAND, AND MAKE HER NEST ON HIGH? M# 28 SHE DWELLETH AND ABIDETH ON THE ROCK, UPON THE CRAG OF THE ROCK, AND THEL STRONG PLACE.D# 29 FROM THENCE SHE SEEKETH THE PREY, AND HER EYES BEHOLD AFAR OFF.I# 30 HER YOUNG ONES ALSO SUCK UP BLOOD: AND WHERE THE SLAIN ARE, THERE IST SHE. = CHAPTER 40 A-# 1 MOREOVER THE LORD ANSWERED JOB, AND SAID,HD# 2 SHALL HE THAT CONTENDETH WITH THE ALMIGHTY INSTRUCT HIM? HE THAT" REPROVETH GOD, LET HIM ANSWER IT.)# 3 THEN JOB ANSWERED THE LORD, AND SAID,NM# 4 BEHOLD, I AM VILE; WHAT SHALL I ANSWER THEE? I WILL LAY MINE HAND UPON MY  MOUTH.CM# 5 ONCE HAVE I SPOKEN; BUT I WILL NOT ANSWER: YEA, TWICE; BUT I WILL PROCEEDE NO FURTHER.C# 6 THEN ANSWERED THE LORD UNTO JOB OUT OF THE WHIRLWIND, AND SAID,DM# 7 GIRD UP THY LOINS NOW LIKE A MAN: I WILL DEMAND OF THEE, AND DECLARE THOUL UNTO ME.DH# 8 WILT THOU ALSO DISANNUL MY JUDGMENT? WILT THOU CONDEMN ME, THAT THOU MAYEST BE RIGHTEOUS?HK# 9 HAST THOU AN ARM LIKE GOD? OR CANST THOU THUNDER WITH A VOICE LIKE HIM?OI# 10 DECK THYSELF NOW WITH MAJESTY AND EXCELLENCY; AND ARRAY THYSELF WITHU GLORY AND BEAUTY.K# 11 CAST ABROAD THE RAGE OF THY WRATH: AND BEHOLD EVERY ONE THAT IS PROUD,. AND ABASE HIM.EK# 12 LOOK ON EVERY ONE THAT IS PROUD, AND BRING HIM LOW; AND TREAD DOWN THEO WICKED IN THEIR PLACE.ND# 13 HIDE THEM IN THE DUST TOGETHER; AND BIND THEIR FACES IN SECRET.J# 14 THEN WILL I ALSO CONFESS UNTO THEE THAT THINE OWN RIGHT HAND CAN SAVE THEE.K# 15 BEHOLD NOW BEHEMOTH, WHICH I MADE WITH THEE; HE00p 6b5D%5%T6%! ! EATETH GRASS AS AN OX.SK# 16 LO NOW, HIS STRENGTH IS IN HIS LOINS, AND HIS FORCE IS IN THE NAVEL OFT HIS BELLY. J# 17 HE MOVETH HIS TAIL LIKE A CEDAR: THE SINEWS OF HIS STONES ARE WRAPPED TOGETHER.H# 18 HIS BONES ARE AS STRONG PIECES OF BRASS; HIS BONES ARE LIKE BARS OF IRON.L# 19 HE IS THE CHIEF OF THE WAYS OF GOD: HE THAT MADE HIM CAN MAKE HIS SWORD TO APPROACH UNTO HIM.K# 20 SURELY THE MOUNTAINS BRING HIM FORTH FOOD, WHERE ALL THE BEASTS OF THEB FIELD PLAY.I# 21 HE LIETH UNDER THE SHADY TREES, IN THE COVERT OF THE REED, AND FENS.SJ# 22 THE SHADY TREES COVER HIM WITH THEIR SHADOW; THE WILLOWS OF THE BROOK COMPASS HIM ABOUT. M# 23 BEHOLD, HE DRINKETH UP A RIVER, AND HASTETH NOT: HE TRUSTETH THAT HE CANA DRAW UP JORDAN INTO HIS MOUTH. B# 24 HE TAKETH IT WITH HIS EYES: HIS NOSE PIERCETH THROUGH SNARES. = CHAPTER 41 DI# 1 CANST THOU DRAW OUT LEVIATHAN WITH AN HOOK? OR HIS TONGUE WITH A CORD  WHICH THOU LETTEST DOWN? H# 2 CANST THOU PUT AN HOOK INTO HIS NOSE? OR BORE HIS JAW THROUGH WITH A THORN?OL# 3 WILL HE MAKE MANY SUPPLICATIONS UNTO THEE? WILL HE SPEAK SOFT WORDS UNTO THEE?K# 4 WILL HE MAKE A COVENANT WITH THEE? WILT THOU TAKE HIM FOR A SERVANT FOR, EVER?I# 5 WILT THOU PLAY WITH HIM AS WITH A BIRD? OR WILT THOU BIND HIM FOR THYH MAIDENS? M# 6 SHALL THE COMPANIONS MAKE A BANQUET OF HIM? SHALL THEY PART HIM AMONG THEU MERCHANTS?IM# 7 CANST THOU FILL HIS SKIN WITH BARBED IRONS? OR HIS HEAD WITH FISH SPEARS? =# 8 LAY THINE HAND UPON HIM, REMEMBER THE BATTLE, DO NO MORE.IJ# 9 BEHOLD, THE HOPE OF HIM IS IN VAIN: SHALL NOT ONE BE CAST DOWN EVEN AT THE SIGHT OF HIM?G# 10 NONE IS SO FIERCE THAT DARE STIR HIM UP: WHO THEN IS ABLE TO STANDV BEFORE ME?EL# 11 WHO HATH PREVENTED ME, THAT I SHOULD REPAY HIM? WHATSOEVER IS UNDER THE WHOLE HEAVEN IS MINE.L# 12 I WILL NOT CONCEAL HIS PARTS, NOR HIS POWER, NOR HIS COMELY PROPORTION.J# 13 WHO CAN DISCOVER THE FACE OF HIS GARMENT? OR WHO CAN COME TO HIM WITH HIS DOUBLE BRIDLE?NL# 14 WHO CAN OPEN THE DOORS OF HIS FACE? HIS TEETH ARE TERRIBLE ROUND ABOUT.E# 15 HIS SCALES ARE HIS PRIDE, SHUT UP TOGETHER AS WITH A CLOSE SEAL. B# 16 ONE IS SO NEAR TO ANOTHER, THAT NO AIR CAN COME BETWEEN THEM.M# 17 THEY ARE JOINED ONE TO ANOTHER, THEY STICK TOGETHER, THAT THEY CANNOT BEE SUNDERED.M# 18 BY HIS NEESINGS A LIGHT DOTH SHINE, AND HIS EYES ARE LIKE THE EYELIDS OFO THE MORNING.OD# 19 OUT OF HIS MOUTH GO BURNING LAMPS, AND SPARKS OF FIRE LEAP OUT.J# 20 OUT OF HIS NOSTRILS GOETH SMOKE, AS OUT OF A SEETHING POT OR CALDRON.C# 21 HIS BREATH KINDLETH COALS, AND A FLAME GOETH OUT OF HIS MOUTH.,I# 22 IN HIS NECK REMAINETH STRENGTH, AND SORROW IS TURNED INTO JOY BEFOREH HIM.IB# 23 THE FLAKES OF HIS FLESH ARE JOINED TOGETHER: THEY ARE FIRM IN" THEMSELVES; THEY CANNOT BE MOVED.K# 24 HIS HEART IS AS FIRM AS A STONE; YEA, AS HARD AS A PIECE OF THE NETHERT MILLSTONE.OD# 25 WHEN HE RAISETH UP HIMSELF, THE MIGHTY ARE AFRAID: BY REASON OF" BREAKINGS THEY PURIFY THEMSELVES.J# 26 THE SWORD OF HIM THAT LAYETH AT HIM CANNOT HOLD: THE SPEAR, THE DART, NOR THE HABERGEON.L:# 27 HE ESTEEMETH IRON AS STRAW, AND BRASS AS ROTTEN WOOD.I# 28 THE ARROW CANNOT MAKE HIM FLEE: SLINGSTONES ARE TURNED WITH HIM INTOS STUBBLE.JI# 29 DARTS ARE COUNTED AS STUBBLE: HE LAUGHETH AT THE SHAKING OF A SPEAR.HK# 30 SHARP STONES ARE UNDER HIM: HE SPREADETH SHARP POINTED THINGS UPON THES MIRE.K# 31 HE MAKETH THE DEEP TO BOIL LIKE A POT: HE MAKETH THE SEA LIKE A POT OFN OINTMENT.H# 32 HE MAKETH A PATH TO SHINE AFTER HIM; ONE WOULD THINK THE DEEP TO BE HOARY.E@# 33 UPON EARTH THERE IS NOT HIS LIKE, WHO IS MADE WITHOUT FEAR.H# 34 HE BEHOLDETH ALL HIGH THINGS: HE IS A KING OVER ALL THE CHILDREN OF PRIDE. = CHAPTER 42 )# 1 THEN JOB ANSWERED THE LORD, AND SAID,LE# 2 I KNOW THAT THOU CANST DO EVERY THING, AND THAT NO THOUGHT CAN BE  WITHHOLDEN FROM THEE.M# 3 WHO IS HE THAT HIDETH COUNSEL WITHOUT KNOWLEDGE? THEREFORE HAVE I UTTEREDEF THAT I UNDERSTOOD NOT; THINGS TOO WONDERFUL FOR ME, WHICH I KNEW NOT.F# 4 HEAR, I BESEECH THEE, AND I WILL SPEAK: I 00p(6q-6<%X>%+%O-%TADATADATAWILL DEMAND OF THEE, AND DECLARE THOU UNTO ME.J# 5 I HAVE HEARD OF THEE BY THE HEARING OF THE EAR: BUT NOW MINE EYE SEETH THEE.;# 6 WHEREFORE I ABHOR MYSELF, AND REPENT IN DUST AND ASHES.EK# 7 AND IT WAS SO, THAT AFTER THE LORD HAD SPOKEN THESE WORDS UNTO JOB, THEOI LORD SAID TO ELIPHAZ THE TEMANITE, MY WRATH IS KINDLED AGAINST THEE, AND H AGAINST THY TWO FRIENDS: FOR YE HAVE NOT SPOKEN OF ME THE THING THAT IS RIGHT, AS MY SERVANT JOB HATH.KK# 8 THEREFORE TAKE UNTO YOU NOW SEVEN BULLOCKS AND SEVEN RAMS, AND GO TO MYAN SERVANT JOB, AND OFFER UP FOR YOURSELVES A BURNT OFFERING; AND MY SERVANT JOBK SHALL PRAY FOR YOU: FOR HIM WILL I ACCEPT: LEST I DEAL WITH YOU AFTER YOURUJ FOLLY, IN THAT YE HAVE NOT SPOKEN OF ME THE THING WHICH IS RIGHT, LIKE MY SERVANT JOB.OL# 9 SO ELIPHAZ THE TEMANITE AND BILDAD THE SHUHITE AND ZOPHAR THE NAAMATHITEK WENT, AND DID ACCORDING AS THE LORD COMMANDED THEM: THE LORD ALSO ACCEPTEDG JOB.ME# 10 AND THE LORD TURNED THE CAPTIVITY OF JOB, WHEN HE PRAYED FOR HISD@ FRIENDS: ALSO THE LORD GAVE JOB TWICE AS MUCH AS HE HAD BEFORE.L# 11 THEN CAME THERE UNTO HIM ALL HIS BRETHREN, AND ALL HIS SISTERS, AND ALLM THEY THAT HAD BEEN OF HIS ACQUAINTANCE BEFORE, AND DID EAT BREAD WITH HIM IN K HIS HOUSE: AND THEY BEMOANED HIM, AND COMFORTED HIM OVER ALL THE EVIL THATNM THE LORD HAD BROUGHT UPON HIM: EVERY MAN ALSO GAVE HIM A PIECE OF MONEY, ANDA EVERY ONE AN EARRING OF GOLD.K# 12 SO THE LORD BLESSED THE LATTER END OF JOB MORE THAN HIS BEGINNING: FOREM HE HAD FOURTEEN THOUSAND SHEEP, AND SIX THOUSAND CAMELS, AND A THOUSAND YOKEB# OF OXEN, AND A THOUSAND SHE ASSES. 0# 13 HE HAD ALSO SEVEN SONS AND THREE DAUGHTERS.M# 14 AND HE CALLED THE NAME OF THE FIRST, JEMIMA; AND THE NAME OF THE SECOND,H0 KEZIA; AND THE NAME OF THE THIRD, KERENHAPPUCH.M# 15 AND IN ALL THE LAND WERE NO WOMEN FOUND SO FAIR AS THE DAUGHTERS OF JOB:I= AND THEIR FATHER GAVE THEM INHERITANCE AMONG THEIR BRETHREN.SK# 16 AFTER THIS LIVED JOB AN HUNDRED AND FORTY YEARS, AND SAW HIS SONS, ANDA& HIS SONS SONS, EVEN FOUR GENERATIONS.-# 17 SO JOB DIED, BEING OLD AND FULL OF DAYS. A THOUSAND SHE ASSES. 0# 13 HE HAD ALSO SEVEN SONS AND THREE DAUGHTERS.M# 14 AND HE CALLED THE NAME OF THE FIRST, JEMIMA; AND THE NAME OF THE SECOND,H0 KEZIA; AND THE NAME OF THE THIRD, KERENHAPPUCH.M# 15 AND IN ALL THE LAND WERE NO WOMEN FOUND SO FAIR AS THE DAUGHTERS OF JOB:I= AND THEIR FATHER GAVE THEM INHERITANCE AMONG THEIR BRETHREN.SK# 16 AFTER THIS LIVED JOB AN HUNDRED AND FORTY YEARS, AND SAW HIS SONS, ANDA& HIS SONS SONS* BOOK19 PSALMS = CHAPTER 1 J# 1 BLESSED IS THE MAN THAT WALKETH NOT IN THE COUNSEL OF THE UNGODLY, NORI STANDETH IN THE WAY OF SINNERS, NOR SITTETH IN THE SEAT OF THE SCORNFUL.E# 2 BUT HIS DELIGHT IS IN THE LAW OF THE LORD; AND IN HIS LAW DOTH HE MEDITATE DAY AND NIGHT.M# 3 AND HE SHALL BE LIKE A TREE PLANTED BY THE RIVERS OF WATER, THAT BRINGETHN FORTH HIS FRUIT IN HIS SEASON; HIS LEAF ALSO SHALL NOT WITHER; AND WHATSOEVER HE DOETH SHALL PROSPER.I# 4 THE UNGODLY ARE NOT SO: BUT ARE LIKE THE CHAFF WHICH THE WIND DRIVETH  AWAY.M# 5 THEREFORE THE UNGODLY SHALL NOT STAND IN THE JUDGMENT, NOR SINNERS IN THE  CONGREGATION OF THE RIGHTEOUS.HM# 6 FOR THE LORD KNOWETH THE WAY OF THE RIGHTEOUS: BUT THE WAY OF THE UNGODLYA SHALL PERISH. = CHAPTER 2 A# 1 WHY DO THE HEATHEN RAGE, AND THE PEOPLE IMAGINE A VAIN THING?RF# 2 THE KINGS OF THE EARTH SET THEMSELVES, AND THE RULERS TAKE COUNSEL> TOGETHER, AGAINST THE LORD, AND AGAINST HIS ANOINTED, SAYING,H# 3 LET US BREAK THEIR BANDS ASUNDER, AND CAST AWAY THEIR CORDS FROM US.K# 4 HE THAT SITTETH IN THE HEAVENS SHALL LAUGH: THE LORD SHALL HAVE THEM INN DERISION.H# 5 THEN SHALL HE SPEAK UNTO THEM IN HIS WRATH, AND VEX THEM IN HIS SORE DISPLEASURE.T5# 6 YET HAVE I SET MY KING UPON MY HOLY HILL OF ZION.K# 7 I WILL DECLARE THE DECREE: THE LORD HATH SAID UNTO ME, THOU ART MY SON;I THIS DAY HAVE I BEGOTTEN THEE.AK# 8 ASK OF ME, AND I SHALL GIVE THEE THE HEATHEN FOR THINE INHERITANCE, ANDN5 THE UTTERMOST PARTS OF THE EARTH FOR THY POSSESSION. 00q06b5D%5%T6%! !L# 9 THOU SHALT BREAK THEM WITH A ROD OF IRON; THOU SHALT DASH THEM IN PIECES LIKE A POTTERS VESSEL.MG# 10 BE WISE NOW THEREFORE, O YE KINGS: BE INSTRUCTED, YE JUDGES OF THE  EARTH.I:# 11 SERVE THE LORD WITH FEAR, AND REJOICE WITH TREMBLING.I# 12 KISS THE SON, LEST HE BE ANGRY, AND YE PERISH FROM THE WAY, WHEN HISML WRATH IS KINDLED BUT A LITTLE. BLESSED ARE ALL THEY THAT PUT THEIR TRUST IN HIM.V = CHAPTER 3 L# 1 LORD, HOW ARE THEY INCREASED THAT TROUBLE ME! MANY ARE THEY THAT RISE UP AGAINST ME.H# 2 MANY THERE BE WHICH SAY OF MY SOUL, THERE IS NO HELP FOR HIM IN GOD. SELAH. I# 3 BUT THOU, O LORD, ART A SHIELD FOR ME; MY GLORY, AND THE LIFTER UP OF MINE HEAD. H# 4 I CRIED UNTO THE LORD WITH MY VOICE, AND HE HEARD ME OUT OF HIS HOLY HILL. SELAH.,B# 5 I LAID ME DOWN AND SLEPT; I AWAKED; FOR THE LORD SUSTAINED ME.M# 6 I WILL NOT BE AFRAID OF TEN THOUSANDS OF PEOPLE, THAT HAVE SET THEMSELVESH AGAINST ME ROUND ABOUT.L# 7 ARISE, O LORD; SAVE ME, O MY GOD: FOR THOU HAST SMITTEN ALL MINE ENEMIES@ UPON THE CHEEK BONE; THOU HAST BROKEN THE TEETH OF THE UNGODLY.G# 8 SALVATION BELONGETH UNTO THE LORD: THY BLESSING IS UPON THY PEOPLE.T SELAH. = CHAPTER 4 N# 1 HEAR ME WHEN I CALL, O GOD OF MY RIGHTEOUSNESS: THOU HAST ENLARGED ME WHEN; I WAS IN DISTRESS; HAVE MERCY UPON ME, AND HEAR MY PRAYER. I# 2 O YE SONS OF MEN, HOW LONG WILL YE TURN MY GLORY INTO SHAME? HOW LONG,4 WILL YE LOVE VANITY, AND SEEK AFTER LEASING? SELAH.L# 3 BUT KNOW THAT THE LORD HATH SET APART HIM THAT IS GODLY FOR HIMSELF: THE% LORD WILL HEAR WHEN I CALL UNTO HIM.TM# 4 STAND IN AWE, AND SIN NOT: COMMUNE WITH YOUR OWN HEART UPON YOUR BED, ANDS BE STILL. SELAH.J# 5 OFFER THE SACRIFICES OF RIGHTEOUSNESS, AND PUT YOUR TRUST IN THE LORD.M# 6 THERE BE MANY THAT SAY, WHO WILL SHEW US ANY GOOD? LORD, LIFT THOU UP THE " LIGHT OF THY COUNTENANCE UPON US.M# 7 THOU HAST PUT GLADNESS IN MY HEART, MORE THAN IN THE TIME THAT THEIR CORNK AND THEIR WINE INCREASED.L# 8 I WILL BOTH LAY ME DOWN IN PEACE, AND SLEEP: FOR THOU, LORD, ONLY MAKEST ME DWELL IN SAFETY. = CHAPTER 5 9# 1 GIVE EAR TO MY WORDS, O LORD, CONSIDER MY MEDITATION.UM# 2 HEARKEN UNTO THE VOICE OF MY CRY, MY KING, AND MY GOD: FOR UNTO THEE WILLS I PRAY.J# 3 MY VOICE SHALT THOU HEAR IN THE MORNING, O LORD; IN THE MORNING WILL I. DIRECT MY PRAYER UNTO THEE, AND WILL LOOK UP.J# 4 FOR THOU ART NOT A GOD THAT HATH PLEASURE IN WICKEDNESS: NEITHER SHALL EVIL DWELL WITH THEE.H# 5 THE FOOLISH SHALL NOT STAND IN THY SIGHT: THOU HATEST ALL WORKERS OF INIQUITY.G# 6 THOU SHALT DESTROY THEM THAT SPEAK LEASING: THE LORD WILL ABHOR THEW BLOODY AND DECEITFUL MAN.L# 7 BUT AS FOR ME, I WILL COME INTO THY HOUSE IN THE MULTITUDE OF THY MERCY:7 AND IN THY FEAR WILL I WORSHIP TOWARD THY HOLY TEMPLE.HK# 8 LEAD ME, O LORD, IN THY RIGHTEOUSNESS BECAUSE OF MINE ENEMIES; MAKE THYL WAY STRAIGHT BEFORE MY FACE.TJ# 9 FOR THERE IS NO FAITHFULNESS IN THEIR MOUTH; THEIR INWARD PART IS VERYG WICKEDNESS; THEIR THROAT IS AN OPEN SEPULCHRE; THEY FLATTER WITH THEIR  TONGUE.M# 10 DESTROY THOU THEM, O GOD; LET THEM FALL BY THEIR OWN COUNSELS; CAST THEMM OUT IN THE MULTITUDE OF THEIR TRANSGRESSIONS; FOR THEY HAVE REBELLED AGAINSTE THEE.J# 11 BUT LET ALL THOSE THAT PUT THEIR TRUST IN THEE REJOICE: LET THEM EVERM SHOUT FOR JOY, BECAUSE THOU DEFENDEST THEM: LET THEM ALSO THAT LOVE THY NAMEW BE JOYFUL IN THEE. L# 12 FOR THOU, LORD, WILT BLESS THE RIGHTEOUS; WITH FAVOUR WILT THOU COMPASS HIM AS WITH A SHIELD. = CHAPTER 6 G# 1 O LORD, REBUKE ME NOT IN THINE ANGER, NEITHER CHASTEN ME IN THY HOTM DISPLEASURE.EL# 2 HAVE MERCY UPON ME, O LORD; FOR I AM WEAK: O LORD, HEAL ME; FOR MY BONES ARE VEXED.R;# 3 MY SOUL IS ALSO SORE VEXED: BUT THOU, O LORD, HOW LONG?TE# 4 RETURN, O LORD, DELIVER MY SOUL: OH SAVE ME FOR THY MERCIES SAKE.AM# 5 FOR IN DEATH THERE IS NO REMEMBRANCE OF THEE: IN THE GRAVE WHO SHALL GIVE THEE THANKS?,M# 6 I AM WEARY WITH MY GROANING; ALL THE NIGHT MAKE I MY BED TO SWIM; I WATERS MY COUCH WITH MY TEARS.L# 7 MINE EYE IS CONSUMED BECAUSE OF GRIEF; IT 00q86-6<%X>%+%O-%TADATADATAWAXETH OLD BECAUSE OF ALL MINE ENEMIES. K# 8 DEPART FROM ME, ALL YE WORKERS OF INIQUITY; FOR THE LORD HATH HEARD THEE VOICE OF MY WEEPING.SI# 9 THE LORD HATH HEARD MY SUPPLICATION; THE LORD WILL RECEIVE MY PRAYER. K# 10 LET ALL MINE ENEMIES BE ASHAMED AND SORE VEXED: LET THEM RETURN AND BEM ASHAMED SUDDENLY. = CHAPTER 7 H# 1 O LORD MY GOD, IN THEE DO I PUT MY TRUST: SAVE ME FROM ALL THEM THAT PERSECUTE ME, AND DELIVER ME:J# 2 LEST HE TEAR MY SOUL LIKE A LION, RENDING IT IN PIECES, WHILE THERE IS NONE TO DELIVER. I# 3 O LORD MY GOD, IF I HAVE DONE THIS; IF THERE BE INIQUITY IN MY HANDS;HL# 4 IF I HAVE REWARDED EVIL UNTO HIM THAT WAS AT PEACE WITH ME; (YEA, I HAVE1 DELIVERED HIM THAT WITHOUT CAUSE IS MINE ENEMY:)LL# 5 LET THE ENEMY PERSECUTE MY SOUL, AND TAKE IT; YEA, LET HIM TREAD DOWN MY= LIFE UPON THE EARTH, AND LAY MINE HONOUR IN THE DUST. SELAH. I# 6 ARISE, O LORD, IN THINE ANGER, LIFT UP THYSELF BECAUSE OF THE RAGE OFEI MINE ENEMIES: AND AWAKE FOR ME TO THE JUDGMENT THAT THOU HAST COMMANDED. I# 7 SO SHALL THE CONGREGATION OF THE PEOPLE COMPASS THEE ABOUT: FOR THEIRI% SAKES THEREFORE RETURN THOU ON HIGH.IF# 8 THE LORD SHALL JUDGE THE PEOPLE: JUDGE ME, O LORD, ACCORDING TO MY> RIGHTEOUSNESS, AND ACCORDING TO MINE INTEGRITY THAT IS IN ME.I# 9 OH LET THE WICKEDNESS OF THE WICKED COME TO AN END; BUT ESTABLISH THE 9 JUST: FOR THE RIGHTEOUS GOD TRIETH THE HEARTS AND REINS.N=# 10 MY DEFENCE IS OF GOD, WHICH SAVETH THE UPRIGHT IN HEART.:K# 11 GOD JUDGETH THE RIGHTEOUS, AND GOD IS ANGRY WITH THE WICKED EVERY DAY.EK# 12 IF HE TURN NOT, HE WILL WHET HIS SWORD; HE HATH BENT HIS BOW, AND MADER IT READY.M# 13 HE HATH ALSO PREPARED FOR HIM THE INSTRUMENTS OF DEATH; HE ORDAINETH HISY ARROWS AGAINST THE PERSECUTORS.J# 14 BEHOLD, HE TRAVAILETH WITH INIQUITY, AND HATH CONCEIVED MISCHIEF, AND BROUGHT FORTH FALSEHOOD.HH# 15 HE MADE A PIT, AND DIGGED IT, AND IS FALLEN INTO THE DITCH WHICH HE MADE.I# 16 HIS MISCHIEF SHALL RETURN UPON HIS OWN HEAD, AND HIS VIOLENT DEALINGS# SHALL COME DOWN UPON HIS OWN PATE.EI# 17 I WILL PRAISE THE LORD ACCORDING TO HIS RIGHTEOUSNESS: AND WILL SING,* PRAISE TO THE NAME OF THE LORD MOST HIGH. = CHAPTER 8 N# 1 O LORD, OUR LORD, HOW EXCELLENT IS THY NAME IN ALL THE EARTH! WHO HAST SET THY GLORY ABOVE THE HEAVENS. G# 2 OUT OF THE MOUTH OF BABES AND SUCKLINGS HAST THOU ORDAINED STRENGTH N BECAUSE OF THINE ENEMIES, THAT THOU MIGHTEST STILL THE ENEMY AND THE AVENGER.J# 3 WHEN I CONSIDER THY HEAVENS, THE WORK OF THY FINGERS, THE MOON AND THE! STARS, WHICH THOU HAST ORDAINED;EL# 4 WHAT IS MAN, THAT THOU ART MINDFUL OF HIM? AND THE SON OF MAN, THAT THOU VISITEST HIM?K# 5 FOR THOU HAST MADE HIM A LITTLE LOWER THAN THE ANGELS, AND HAST CROWNED  HIM WITH GLORY AND HONOUR. K# 6 THOU MADEST HIM TO HAVE DOMINION OVER THE WORKS OF THY HANDS; THOU HASTN PUT ALL THINGS UNDER HIS FEET:R9# 7 ALL SHEEP AND OXEN, YEA, AND THE BEASTS OF THE FIELD; H# 8 THE FOWL OF THE AIR, AND THE FISH OF THE SEA, AND WHATSOEVER PASSETH THROUGH THE PATHS OF THE SEAS.A@# 9 O LORD OUR LORD, HOW EXCELLENT IS THY NAME IN ALL THE EARTH! = CHAPTER 9 N# 1 I WILL PRAISE THEE, O LORD, WITH MY WHOLE HEART; I WILL SHEW FORTH ALL THY MARVELLOUS WORKS.I# 2 I WILL BE GLAD AND REJOICE IN THEE: I WILL SING PRAISE TO THY NAME, OO THOU MOST HIGH.H# 3 WHEN MINE ENEMIES ARE TURNED BACK, THEY SHALL FALL AND PERISH AT THY PRESENCE.M# 4 FOR THOU HAST MAINTAINED MY RIGHT AND MY CAUSE; THOU SATEST IN THE THRONEF JUDGING RIGHT.NL# 5 THOU HAST REBUKED THE HEATHEN, THOU HAST DESTROYED THE WICKED, THOU HAST& PUT OUT THEIR NAME FOR EVER AND EVER.I# 6 O THOU ENEMY, DESTRUCTIONS ARE COME TO A PERPETUAL END: AND THOU HASTL8 DESTROYED CITIES; THEIR MEMORIAL IS PERISHED WITH THEM.G# 7 BUT THE LORD SHALL ENDURE FOR EVER: HE HATH PREPARED HIS THRONE FORG JUDGMENT.M# 8 AND HE SHALL JUDGE THE WORLD IN RIGHTEOUSNESS, HE SHALL MINISTER JUDGMENT  TO THE PEOPLE IN UPRIGHTNESS.J# 9 THE LORD ALSO WILL BE A REFUGE FOR THE OPPRESSED, A REFUGE IN TIMES OF TROUBLE.HH# 10 AND THEY THAT KNOW THY NAME WIL00q@6b5D%5%T6%! !L PUT THEIR TRUST IN THEE: FOR THOU,- LORD, HAST NOT FORSAKEN THEM THAT SEEK THEE.OH# 11 SING PRAISES TO THE LORD, WHICH DWELLETH IN ZION: DECLARE AMONG THE PEOPLE HIS DOINGS.IM# 12 WHEN HE MAKETH INQUISITION FOR BLOOD, HE REMEMBERETH THEM: HE FORGETTETHO NOT THE CRY OF THE HUMBLE.AK# 13 HAVE MERCY UPON ME, O LORD; CONSIDER MY TROUBLE WHICH I SUFFER OF THEMP? THAT HATE ME, THOU THAT LIFTEST ME UP FROM THE GATES OF DEATH:PI# 14 THAT I MAY SHEW FORTH ALL THY PRAISE IN THE GATES OF THE DAUGHTER OFW' ZION: I WILL REJOICE IN THY SALVATION.LJ# 15 THE HEATHEN ARE SUNK DOWN IN THE PIT THAT THEY MADE: IN THE NET WHICH" THEY HID IS THEIR OWN FOOT TAKEN.H# 16 THE LORD IS KNOWN BY THE JUDGMENT WHICH HE EXECUTETH: THE WICKED IS6 SNARED IN THE WORK OF HIS OWN HANDS. HIGGAION. SELAH.J# 17 THE WICKED SHALL BE TURNED INTO HELL, AND ALL THE NATIONS THAT FORGET GOD.EL# 18 FOR THE NEEDY SHALL NOT ALWAY BE FORGOTTEN: THE EXPECTATION OF THE POOR SHALL NOT PERISH FOR EVER.AI# 19 ARISE, O LORD; LET NOT MAN PREVAIL: LET THE HEATHEN BE JUDGED IN THYN SIGHT.TM# 20 PUT THEM IN FEAR, O LORD: THAT THE NATIONS MAY KNOW THEMSELVES TO BE BUT MEN. SELAH. = CHAPTER 10 6K# 1 WHY STANDEST THOU AFAR OFF, O LORD? WHY HIDEST THOU THYSELF IN TIMES OF TROUBLE? M# 2 THE WICKED IN HIS PRIDE DOTH PERSECUTE THE POOR: LET THEM BE TAKEN IN THEA! DEVICES THAT THEY HAVE IMAGINED.DL# 3 FOR THE WICKED BOASTETH OF HIS HEARTS DESIRE, AND BLESSETH THE COVETOUS, WHOM THE LORD ABHORRETH.VI# 4 THE WICKED, THROUGH THE PRIDE OF HIS COUNTENANCE, WILL NOT SEEK AFTER % GOD: GOD IS NOT IN ALL HIS THOUGHTS.OH# 5 HIS WAYS ARE ALWAYS GRIEVOUS; THY JUDGMENTS ARE FAR ABOVE OUT OF HIS3 SIGHT: AS FOR ALL HIS ENEMIES, HE PUFFETH AT THEM.HL# 6 HE HATH SAID IN HIS HEART, I SHALL NOT BE MOVED: FOR I SHALL NEVER BE IN ADVERSITY.TJ# 7 HIS MOUTH IS FULL OF CURSING AND DECEIT AND FRAUD: UNDER HIS TONGUE IS MISCHIEF AND VANITY. J# 8 HE SITTETH IN THE LURKING PLACES OF THE VILLAGES: IN THE SECRET PLACESH DOTH HE MURDER THE INNOCENT: HIS EYES ARE PRIVILY SET AGAINST THE POOR.M# 9 HE LIETH IN WAIT SECRETLY AS A LION IN HIS DEN: HE LIETH IN WAIT TO CATCHHD THE POOR: HE DOTH CATCH THE POOR, WHEN HE DRAWETH HIM INTO HIS NET.M# 10 HE CROUCHETH, AND HUMBLETH HIMSELF, THAT THE POOR MAY FALL BY HIS STRONGI ONES.J# 11 HE HATH SAID IN HIS HEART, GOD HATH FORGOTTEN: HE HIDETH HIS FACE; HE WILL NEVER SEE IT. E# 12 ARISE, O LORD; O GOD, LIFT UP THINE HAND: FORGET NOT THE HUMBLE. K# 13 WHEREFORE DOTH THE WICKED CONTEMN GOD? HE HATH SAID IN HIS HEART, THOUI WILT NOT REQUIRE IT.OL# 14 THOU HAST SEEN IT; FOR THOU BEHOLDEST MISCHIEF AND SPITE, TO REQUITE ITM WITH THY HAND: THE POOR COMMITTETH HIMSELF UNTO THEE; THOU ART THE HELPER OF0 THE FATHERLESS.D# 15 BREAK THOU THE ARM OF THE WICKED AND THE EVIL MAN: SEEK OUT HIS WICKEDNESS TILL THOU FIND NONE.L# 16 THE LORD IS KING FOR EVER AND EVER: THE HEATHEN ARE PERISHED OUT OF HIS LAND.L# 17 LORD, THOU HAST HEARD THE DESIRE OF THE HUMBLE: THOU WILT PREPARE THEIR* HEART, THOU WILT CAUSE THINE EAR TO HEAR:M# 18 TO JUDGE THE FATHERLESS AND THE OPPRESSED, THAT THE MAN OF THE EARTH MAYN NO MORE OPPRESS. = CHAPTER 11 AM# 1 IN THE LORD PUT I MY TRUST: HOW SAY YE TO MY SOUL, FLEE AS A BIRD TO YOURL MOUNTAIN?L# 2 FOR, LO, THE WICKED BEND THEIR BOW, THEY MAKE READY THEIR ARROW UPON THE= STRING, THAT THEY MAY PRIVILY SHOOT AT THE UPRIGHT IN HEART.E?# 3 IF THE FOUNDATIONS BE DESTROYED, WHAT CAN THE RIGHTEOUS DO?AK# 4 THE LORD IS IN HIS HOLY TEMPLE, THE LORDS THRONE IS IN HEAVEN: HIS EYES . BEHOLD, HIS EYELIDS TRY, THE CHILDREN OF MEN.E# 5 THE LORD TRIETH THE RIGHTEOUS: BUT THE WICKED AND HIM THAT LOVETH VIOLENCE HIS SOUL HATETH.M# 6 UPON THE WICKED HE SHALL RAIN SNARES, FIRE AND BRIMSTONE, AND AN HORRIBLE1 TEMPEST: THIS SHALL BE THE PORTION OF THEIR CUP.EL# 7 FOR THE RIGHTEOUS LORD LOVETH RIGHTEOUSNESS; HIS COUNTENANCE DOTH BEHOLD THE UPRIGHT. = CHAPTER 12 OK# 1 HELP, LORD; FOR THE GODLY MAN CEASETH; FOR THE FAITHFUL FAIL FROM AMONGP THE CHILDREN OF MEN. L# 2 THEY SPEAK VANITY EVERY ON00qH6-6<%X>%+%O-%TADATADATAE WITH HIS NEIGHBOUR: WITH FLATTERING LIPS AND# WITH A DOUBLE HEART DO THEY SPEAK.CL# 3 THE LORD SHALL CUT OFF ALL FLATTERING LIPS, AND THE TONGUE THAT SPEAKETH PROUD THINGS:M# 4 WHO HAVE SAID, WITH OUR TONGUE WILL WE PREVAIL; OUR LIPS ARE OUR OWN: WHOT IS LORD OVER US? L# 5 FOR THE OPPRESSION OF THE POOR, FOR THE SIGHING OF THE NEEDY, NOW WILL IN ARISE, SAITH THE LORD; I WILL SET HIM IN SAFETY FROM HIM THAT PUFFETH AT HIM.I# 6 THE WORDS OF THE LORD ARE PURE WORDS: AS SILVER TRIED IN A FURNACE OFN EARTH, PURIFIED SEVEN TIMES.TD# 7 THOU SHALT KEEP THEM, O LORD, THOU SHALT PRESERVE THEM FROM THIS GENERATION FOR EVER.NC# 8 THE WICKED WALK ON EVERY SIDE, WHEN THE VILEST MEN ARE EXALTED.I = CHAPTER 13 GK# 1 HOW LONG WILT THOU FORGET ME, O LORD? FOR EVER? HOW LONG WILT THOU HIDEH THY FACE FROM ME?G# 2 HOW LONG SHALL I TAKE COUNSEL IN MY SOUL, HAVING SORROW IN MY HEART 5 DAILY? HOW LONG SHALL MINE ENEMY BE EXALTED OVER ME? L# 3 CONSIDER AND HEAR ME, O LORD MY GOD: LIGHTEN MINE EYES, LEST I SLEEP THE SLEEP OF DEATH;M# 4 LEST MINE ENEMY SAY, I HAVE PREVAILED AGAINST HIM; AND THOSE THAT TROUBLE ME REJOICE WHEN I AM MOVED.M# 5 BUT I HAVE TRUSTED IN THY MERCY; MY HEART SHALL REJOICE IN THY SALVATION.I# 6 I WILL SING UNTO THE LORD, BECAUSE HE HATH DEALT BOUNTIFULLY WITH ME.H = CHAPTER 14 ML# 1 THE FOOL HATH SAID IN HIS HEART, THERE IS NO GOD. THEY ARE CORRUPT, THEY; HAVE DONE ABOMINABLE WORKS, THERE IS NONE THAT DOETH GOOD. H# 2 THE LORD LOOKED DOWN FROM HEAVEN UPON THE CHILDREN OF MEN, TO SEE IF2 THERE WERE ANY THAT DID UNDERSTAND, AND SEEK GOD.J# 3 THEY ARE ALL GONE ASIDE, THEY ARE ALL TOGETHER BECOME FILTHY: THERE IS# NONE THAT DOETH GOOD, NO, NOT ONE.MJ# 4 HAVE ALL THE WORKERS OF INIQUITY NO KNOWLEDGE? WHO EAT UP MY PEOPLE AS, THEY EAT BREAD, AND CALL NOT UPON THE LORD.F# 5 THERE WERE THEY IN GREAT FEAR: FOR GOD IS IN THE GENERATION OF THE RIGHTEOUS.HK# 6 YE HAVE SHAMED THE COUNSEL OF THE POOR, BECAUSE THE LORD IS HIS REFUGE.DH# 7 OH THAT THE SALVATION OF ISRAEL WERE COME OUT OF ZION! WHEN THE LORDK BRINGETH BACK THE CAPTIVITY OF HIS PEOPLE, JACOB SHALL REJOICE, AND ISRAEL  SHALL BE GLAD.M = CHAPTER 15 N# 1 LORD, WHO SHALL ABIDE IN THY TABERNACLE? WHO SHALL DWELL IN THY HOLY HILL?J# 2 HE THAT WALKETH UPRIGHTLY, AND WORKETH RIGHTEOUSNESS, AND SPEAKETH THE TRUTH IN HIS HEART.L# 3 HE THAT BACKBITETH NOT WITH HIS TONGUE, NOR DOETH EVIL TO HIS NEIGHBOUR,0 NOR TAKETH UP A REPROACH AGAINST HIS NEIGHBOUR.M# 4 IN WHOSE EYES A VILE PERSON IS CONTEMNED; BUT HE HONOURETH THEM THAT FEAR!> THE LORD. HE THAT SWEARETH TO HIS OWN HURT, AND CHANGETH NOT.M# 5 HE THAT PUTTETH NOT OUT HIS MONEY TO USURY, NOR TAKETH REWARD AGAINST THEH; INNOCENT. HE THAT DOETH THESE THINGS SHALL NEVER BE MOVED.? = CHAPTER 16 A6# 1 PRESERVE ME, O GOD: FOR IN THEE DO I PUT MY TRUST.J# 2 O MY SOUL, THOU HAST SAID UNTO THE LORD, THOU ART MY LORD: MY GOODNESS EXTENDETH NOT TO THEE;UM# 3 BUT TO THE SAINTS THAT ARE IN THE EARTH, AND TO THE EXCELLENT, IN WHOM ISP ALL MY DELIGHT.J# 4 THEIR SORROWS SHALL BE MULTIPLIED THAT HASTEN AFTER ANOTHER GOD: THEIRK DRINK OFFERINGS OF BLOOD WILL I NOT OFFER, NOR TAKE UP THEIR NAMES INTO MYA LIPS.C# 5 THE LORD IS THE PORTION OF MINE INHERITANCE AND OF MY CUP: THOUE MAINTAINEST MY LOT.I# 6 THE LINES ARE FALLEN UNTO ME IN PLEASANT PLACES; YEA, I HAVE A GOODLYT HERITAGE.L# 7 I WILL BLESS THE LORD, WHO HATH GIVEN ME COUNSEL: MY REINS ALSO INSTRUCT ME IN THE NIGHT SEASONS.IK# 8 I HAVE SET THE LORD ALWAYS BEFORE ME: BECAUSE HE IS AT MY RIGHT HAND, IO SHALL NOT BE MOVED.K# 9 THEREFORE MY HEART IS GLAD, AND MY GLORY REJOICETH: MY FLESH ALSO SHALLT REST IN HOPE.L# 10 FOR THOU WILT NOT LEAVE MY SOUL IN HELL; NEITHER WILT THOU SUFFER THINE HOLY ONE TO SEE CORRUPTION.K# 11 THOU WILT SHEW ME THE PATH OF LIFE: IN THY PRESENCE IS FULNESS OF JOY; 4 AT THY RIGHT HAND THERE ARE PLEASURES FOR EVERMORE. = CHAPTER 17 M# 1 HEAR THE RIGHT, O LORD, ATTEND UNTO MY CRY, GIVE EAR UNTO MY PRAYER, THATT GOETH NOT OUT OF FEIGNED LIPS. K# 2 LET MY SENTENCE COME FORTH FROM 00qP6b5D%5%T6%! !THY PRESENCE; LET THINE EYES BEHOLD THEL THINGS THAT ARE EQUAL.HM# 3 THOU HAST PROVED MINE HEART; THOU HAST VISITED ME IN THE NIGHT; THOU HAST H TRIED ME, AND SHALT FIND NOTHING; I AM PURPOSED THAT MY MOUTH SHALL NOT TRANSGRESS.L# 4 CONCERNING THE WORKS OF MEN, BY THE WORD OF THY LIPS I HAVE KEPT ME FROM THE PATHS OF THE DESTROYER.?# 5 HOLD UP MY GOINGS IN THY PATHS, THAT MY FOOTSTEPS SLIP NOT.YL# 6 I HAVE CALLED UPON THEE, FOR THOU WILT HEAR ME, O GOD: INCLINE THINE EAR UNTO ME, AND HEAR MY SPEECH.RL# 7 SHEW THY MARVELLOUS LOVINGKINDNESS, O THOU THAT SAVEST BY THY RIGHT HANDI THEM WHICH PUT THEIR TRUST IN THEE FROM THOSE THAT RISE UP AGAINST THEM.AK# 8 KEEP ME AS THE APPLE OF THE EYE, HIDE ME UNDER THE SHADOW OF THY WINGS, K# 9 FROM THE WICKED THAT OPPRESS ME, FROM MY DEADLY ENEMIES, WHO COMPASS MET ABOUT.OM# 10 THEY ARE INCLOSED IN THEIR OWN FAT: WITH THEIR MOUTH THEY SPEAK PROUDLY.TM# 11 THEY HAVE NOW COMPASSED US IN OUR STEPS: THEY HAVE SET THEIR EYES BOWINGR DOWN TO THE EARTH;MK# 12 LIKE AS A LION THAT IS GREEDY OF HIS PREY, AND AS IT WERE A YOUNG LION  LURKING IN SECRET PLACES.K# 13 ARISE, O LORD, DISAPPOINT HIM, CAST HIM DOWN: DELIVER MY SOUL FROM THEE WICKED, WHICH IS THY SWORD:K# 14 FROM MEN WHICH ARE THY HAND, O LORD, FROM MEN OF THE WORLD, WHICH HAVEAF THEIR PORTION IN THIS LIFE, AND WHOSE BELLY THOU FILLEST WITH THY HIDN TREASURE: THEY ARE FULL OF CHILDREN, AND LEAVE THE REST OF THEIR SUBSTANCE TO THEIR BABES.HC# 15 AS FOR ME, I WILL BEHOLD THY FACE IN RIGHTEOUSNESS: I SHALL BEL, SATISFIED, WHEN I AWAKE, WITH THY LIKENESS. = CHAPTER 18 *# 1 I WILL LOVE THEE, O LORD, MY STRENGTH.F# 2 THE LORD IS MY ROCK, AND MY FORTRESS, AND MY DELIVERER; MY GOD, MYN STRENGTH, IN WHOM I WILL TRUST; MY BUCKLER, AND THE HORN OF MY SALVATION, AND MY HIGH TOWER.I# 3 I WILL CALL UPON THE LORD, WHO IS WORTHY TO BE PRAISED: SO SHALL I BEE SAVED FROM MINE ENEMIES.LL# 4 THE SORROWS OF DEATH COMPASSED ME, AND THE FLOODS OF UNGODLY MEN MADE ME AFRAID.M# 5 THE SORROWS OF HELL COMPASSED ME ABOUT: THE SNARES OF DEATH PREVENTED ME.YM# 6 IN MY DISTRESS I CALLED UPON THE LORD, AND CRIED UNTO MY GOD: HE HEARD MY I VOICE OUT OF HIS TEMPLE, AND MY CRY CAME BEFORE HIM, EVEN INTO HIS EARS.IH# 7 THEN THE EARTH SHOOK AND TREMBLED; THE FOUNDATIONS ALSO OF THE HILLS- MOVED AND WERE SHAKEN, BECAUSE HE WAS WROTH.IH# 8 THERE WENT UP A SMOKE OUT OF HIS NOSTRILS, AND FIRE OUT OF HIS MOUTH$ DEVOURED: COALS WERE KINDLED BY IT.H# 9 HE BOWED THE HEAVENS ALSO, AND CAME DOWN: AND DARKNESS WAS UNDER HIS FEET.K# 10 AND HE RODE UPON A CHERUB, AND DID FLY: YEA, HE DID FLY UPON THE WINGSE OF THE WIND.DI# 11 HE MADE DARKNESS HIS SECRET PLACE; HIS PAVILION ROUND ABOUT HIM WEREE+ DARK WATERS AND THICK CLOUDS OF THE SKIES.HH# 12 AT THE BRIGHTNESS THAT WAS BEFORE HIM HIS THICK CLOUDS PASSED, HAIL STONES AND COALS OF FIRE.L# 13 THE LORD ALSO THUNDERED IN THE HEAVENS, AND THE HIGHEST GAVE HIS VOICE; HAIL STONES AND COALS OF FIRE..E# 14 YEA, HE SENT OUT HIS ARROWS, AND SCATTERED THEM; AND HE SHOT OUTH" LIGHTNINGS, AND DISCOMFITED THEM.L# 15 THEN THE CHANNELS OF WATERS WERE SEEN, AND THE FOUNDATIONS OF THE WORLDI WERE DISCOVERED AT THY REBUKE, O LORD, AT THE BLAST OF THE BREATH OF THYA NOSTRILS.C# 16 HE SENT FROM ABOVE, HE TOOK ME, HE DREW ME OUT OF MANY WATERS.HL# 17 HE DELIVERED ME FROM MY STRONG ENEMY, AND FROM THEM WHICH HATED ME: FOR THEY WERE TOO STRONG FOR ME.EK# 18 THEY PREVENTED ME IN THE DAY OF MY CALAMITY: BUT THE LORD WAS MY STAY. M# 19 HE BROUGHT ME FORTH ALSO INTO A LARGE PLACE; HE DELIVERED ME, BECAUSE HET DELIGHTED IN ME. I# 20 THE LORD REWARDED ME ACCORDING TO MY RIGHTEOUSNESS; ACCORDING TO THEI. CLEANNESS OF MY HANDS HATH HE RECOMPENSED ME.I# 21 FOR I HAVE KEPT THE WAYS OF THE LORD, AND HAVE NOT WICKEDLY DEPARTEDW FROM MY GOD. E# 22 FOR ALL HIS JUDGMENTS WERE BEFORE ME, AND I DID NOT PUT AWAY HISH STATUTES FROM ME.I# 23 I WAS ALSO UPRIGHT BEFORE HIM, AND I KEPT MYSELF FROM MINE INIQUITY.YJ# 24 THEREFORE HATH THE LORD RECOMPENSED ME ACCORDING TO MY RIGHTEOUSNESS,8 A00qX6-6<%X>%+%O-%TADATADATACCORDING TO THE CLEANNESS OF MY HANDS IN HIS EYESIGHT.K# 25 WITH THE MERCIFUL THOU WILT SHEW THYSELF MERCIFUL; WITH AN UPRIGHT MANN THOU WILT SHEW THYSELF UPRIGHT;I# 26 WITH THE PURE THOU WILT SHEW THYSELF PURE; AND WITH THE FROWARD THOUP WILT SHEW THYSELF FROWARD.FM# 27 FOR THOU WILT SAVE THE AFFLICTED PEOPLE; BUT WILT BRING DOWN HIGH LOOKS.ME# 28 FOR THOU WILT LIGHT MY CANDLE: THE LORD MY GOD WILL ENLIGHTEN MYN DARKNESS.M# 29 FOR BY THEE I HAVE RUN THROUGH A TROOP; AND BY MY GOD HAVE I LEAPED OVERR A WALL.K# 30 AS FOR GOD, HIS WAY IS PERFECT: THE WORD OF THE LORD IS TRIED: HE IS AE( BUCKLER TO ALL THOSE THAT TRUST IN HIM.A# 31 FOR WHO IS GOD SAVE THE LORD? OR WHO IS A ROCK SAVE OUR GOD? H# 32 IT IS GOD THAT GIRDETH ME WITH STRENGTH, AND MAKETH MY WAY PERFECT.K# 33 HE MAKETH MY FEET LIKE HINDS FEET, AND SETTETH ME UPON MY HIGH PLACES.J# 34 HE TEACHETH MY HANDS TO WAR, SO THAT A BOW OF STEEL IS BROKEN BY MINE ARMS.L# 35 THOU HAST ALSO GIVEN ME THE SHIELD OF THY SALVATION: AND THY RIGHT HAND: HATH HOLDEN ME UP, AND THY GENTLENESS HATH MADE ME GREAT.E# 36 THOU HAST ENLARGED MY STEPS UNDER ME, THAT MY FEET DID NOT SLIP.H# 37 I HAVE PURSUED MINE ENEMIES, AND OVERTAKEN THEM: NEITHER DID I TURN AGAIN TILL THEY WERE CONSUMED.EI# 38 I HAVE WOUNDED THEM THAT THEY WERE NOT ABLE TO RISE: THEY ARE FALLENN UNDER MY FEET. M# 39 FOR THOU HAST GIRDED ME WITH STRENGTH UNTO THE BATTLE: THOU HAST SUBDUEDR( UNDER ME THOSE THAT ROSE UP AGAINST ME.L# 40 THOU HAST ALSO GIVEN ME THE NECKS OF MINE ENEMIES; THAT I MIGHT DESTROY THEM THAT HATE ME.TL# 41 THEY CRIED, BUT THERE WAS NONE TO SAVE THEM: EVEN UNTO THE LORD, BUT HE ANSWERED THEM NOT.VL# 42 THEN DID I BEAT THEM SMALL AS THE DUST BEFORE THE WIND: I DID CAST THEM OUT AS THE DIRT IN THE STREETS.K# 43 THOU HAST DELIVERED ME FROM THE STRIVINGS OF THE PEOPLE; AND THOU HAST L MADE ME THE HEAD OF THE HEATHEN: A PEOPLE WHOM I HAVE NOT KNOWN SHALL SERVE ME.H# 44 AS SOON AS THEY HEAR OF ME, THEY SHALL OBEY ME: THE STRANGERS SHALL SUBMIT THEMSELVES UNTO ME.ML# 45 THE STRANGERS SHALL FADE AWAY, AND BE AFRAID OUT OF THEIR CLOSE PLACES.M# 46 THE LORD LIVETH; AND BLESSED BE MY ROCK; AND LET THE GOD OF MY SALVATIONT BE EXALTED.B# 47 IT IS GOD THAT AVENGETH ME, AND SUBDUETH THE PEOPLE UNDER ME.L# 48 HE DELIVERETH ME FROM MINE ENEMIES: YEA, THOU LIFTEST ME UP ABOVE THOSEF THAT RISE UP AGAINST ME: THOU HAST DELIVERED ME FROM THE VIOLENT MAN.K# 49 THEREFORE WILL I GIVE THANKS UNTO THEE, O LORD, AMONG THE HEATHEN, ANDS SING PRAISES UNTO THY NAME.F# 50 GREAT DELIVERANCE GIVETH HE TO HIS KING; AND SHEWETH MERCY TO HIS2 ANOINTED, TO DAVID, AND TO HIS SEED FOR EVERMORE. = CHAPTER 19 G# 1 THE HEAVENS DECLARE THE GLORY OF GOD; AND THE FIRMAMENT SHEWETH HISE HANDYWORK.BI# 2 DAY UNTO DAY UTTERETH SPEECH, AND NIGHT UNTO NIGHT SHEWETH KNOWLEDGE.HD# 3 THERE IS NO SPEECH NOR LANGUAGE, WHERE THEIR VOICE IS NOT HEARD.L# 4 THEIR LINE IS GONE OUT THROUGH ALL THE EARTH, AND THEIR WORDS TO THE END< OF THE WORLD. IN THEM HATH HE SET A TABERNACLE FOR THE SUN,J# 5 WHICH IS AS A BRIDEGROOM COMING OUT OF HIS CHAMBER, AND REJOICETH AS A STRONG MAN TO RUN A RACE.K# 6 HIS GOING FORTH IS FROM THE END OF THE HEAVEN, AND HIS CIRCUIT UNTO THE < ENDS OF IT: AND THERE IS NOTHING HID FROM THE HEAT THEREOF.M# 7 THE LAW OF THE LORD IS PERFECT, CONVERTING THE SOUL: THE TESTIMONY OF THEE& LORD IS SURE, MAKING WISE THE SIMPLE.L# 8 THE STATUTES OF THE LORD ARE RIGHT, REJOICING THE HEART: THE COMMANDMENT, OF THE LORD IS PURE, ENLIGHTENING THE EYES.J# 9 THE FEAR OF THE LORD IS CLEAN, ENDURING FOR EVER: THE JUDGMENTS OF THE( LORD ARE TRUE AND RIGHTEOUS ALTOGETHER.M# 10 MORE TO BE DESIRED ARE THEY THAN GOLD, YEA, THAN MUCH FINE GOLD: SWEETERU# ALSO THAN HONEY AND THE HONEYCOMB.OL# 11 MOREOVER BY THEM IS THY SERVANT WARNED: AND IN KEEPING OF THEM THERE IS GREAT REWARD.G# 12 WHO CAN UNDERSTAND HIS ERRORS? CLEANSE THOU ME FROM SECRET FAULTS.TI# 13 KEEP BACK THY SERVANT ALSO FROM PRESUMPTUOUS SINS; LET THEM NOT HAVEDL DOMINION OVER ME: THEN SHALL I BE UPRIGHT, AND I SH00q`6b5D%5%T6%! !ALL BE INNOCENT FROM THE GREAT TRANSGRESSION. M# 14 LET THE WORDS OF MY MOUTH, AND THE MEDITATION OF MY HEART, BE ACCEPTABLEH4 IN THY SIGHT, O LORD, MY STRENGTH, AND MY REDEEMER. = CHAPTER 20 DJ# 1 THE LORD HEAR THEE IN THE DAY OF TROUBLE; THE NAME OF THE GOD OF JACOB DEFEND THEE; G# 2 SEND THEE HELP FROM THE SANCTUARY, AND STRENGTHEN THEE OUT OF ZION;RF# 3 REMEMBER ALL THY OFFERINGS, AND ACCEPT THY BURNT SACRIFICE; SELAH.H# 4 GRANT THEE ACCORDING TO THINE OWN HEART, AND FULFIL ALL THY COUNSEL.L# 5 WE WILL REJOICE IN THY SALVATION, AND IN THE NAME OF OUR GOD WE WILL SET3 UP OUR BANNERS: THE LORD FULFIL ALL THY PETITIONS.K# 6 NOW KNOW I THAT THE LORD SAVETH HIS ANOINTED; HE WILL HEAR HIM FROM HIS 8 HOLY HEAVEN WITH THE SAVING STRENGTH OF HIS RIGHT HAND.M# 7 SOME TRUST IN CHARIOTS, AND SOME IN HORSES: BUT WE WILL REMEMBER THE NAME  OF THE LORD OUR GOD. J# 8 THEY ARE BROUGHT DOWN AND FALLEN: BUT WE ARE RISEN, AND STAND UPRIGHT.2# 9 SAVE, LORD: LET THE KING HEAR US WHEN WE CALL. = CHAPTER 21 H# 1 THE KING SHALL JOY IN THY STRENGTH, O LORD; AND IN THY SALVATION HOW GREATLY SHALL HE REJOICE!F# 2 THOU HAST GIVEN HIM HIS HEARTS DESIRE, AND HAST NOT WITHHOLDEN THE REQUEST OF HIS LIPS. SELAH.J# 3 FOR THOU PREVENTEST HIM WITH THE BLESSINGS OF GOODNESS: THOU SETTEST A CROWN OF PURE GOLD ON HIS HEAD.J# 4 HE ASKED LIFE OF THEE, AND THOU GAVEST IT HIM, EVEN LENGTH OF DAYS FOR EVER AND EVER. J# 5 HIS GLORY IS GREAT IN THY SALVATION: HONOUR AND MAJESTY HAST THOU LAID UPON HIM.D# 6 FOR THOU HAST MADE HIM MOST BLESSED FOR EVER: THOU HAST MADE HIM% EXCEEDING GLAD WITH THY COUNTENANCE. M# 7 FOR THE KING TRUSTETH IN THE LORD, AND THROUGH THE MERCY OF THE MOST HIGHE HE SHALL NOT BE MOVED.EJ# 8 THINE HAND SHALL FIND OUT ALL THINE ENEMIES: THY RIGHT HAND SHALL FIND OUT THOSE THAT HATE THEE.M# 9 THOU SHALT MAKE THEM AS A FIERY OVEN IN THE TIME OF THINE ANGER: THE LORDAD SHALL SWALLOW THEM UP IN HIS WRATH, AND THE FIRE SHALL DEVOUR THEM.M# 10 THEIR FRUIT SHALT THOU DESTROY FROM THE EARTH, AND THEIR SEED FROM AMONGS THE CHILDREN OF MEN. M# 11 FOR THEY INTENDED EVIL AGAINST THEE: THEY IMAGINED A MISCHIEVOUS DEVICE,T$ WHICH THEY ARE NOT ABLE TO PERFORM.I# 12 THEREFORE SHALT THOU MAKE THEM TURN THEIR BACK, WHEN THOU SHALT MAKEN> READY THINE ARROWS UPON THY STRINGS AGAINST THE FACE OF THEM.M# 13 BE THOU EXALTED, LORD, IN THINE OWN STRENGTH: SO WILL WE SING AND PRAISEA THY POWER.L = CHAPTER 22 IG# 1 MY GOD, MY GOD, WHY HAST THOU FORSAKEN ME? WHY ART THOU SO FAR FROMT. HELPING ME, AND FROM THE WORDS OF MY ROARING?K# 2 O MY GOD, I CRY IN THE DAY TIME, BUT THOU HEAREST NOT; AND IN THE NIGHTE SEASON, AND AM NOT SILENT.ID# 3 BUT THOU ART HOLY, O THOU THAT INHABITEST THE PRAISES OF ISRAEL.K# 4 OUR FATHERS TRUSTED IN THEE: THEY TRUSTED, AND THOU DIDST DELIVER THEM.AL# 5 THEY CRIED UNTO THEE, AND WERE DELIVERED: THEY TRUSTED IN THEE, AND WERE NOT CONFOUNDED.G# 6 BUT I AM A WORM, AND NO MAN; A REPROACH OF MEN, AND DESPISED OF THE  PEOPLE.H# 7 ALL THEY THAT SEE ME LAUGH ME TO SCORN: THEY SHOOT OUT THE LIP, THEY SHAKE THE HEAD, SAYING, ITEJ# 8 HE TRUSTED ON THE LORD THAT HE WOULD DELIVER HIM: LET HIM DELIVER HIM, SEEING HE DELIGHTED IN HIM.I# 9 BUT THOU ART HE THAT TOOK ME OUT OF THE WOMB: THOU DIDST MAKE ME HOPEE$ WHEN I WAS UPON MY MOTHERS BREASTS.H# 10 I WAS CAST UPON THEE FROM THE WOMB: THOU ART MY GOD FROM MY MOTHERS BELLY.EH# 11 BE NOT FAR FROM ME; FOR TROUBLE IS NEAR; FOR THERE IS NONE TO HELP.G# 12 MANY BULLS HAVE COMPASSED ME: STRONG BULLS OF BASHAN HAVE BESET MEN ROUND.OL# 13 THEY GAPED UPON ME WITH THEIR MOUTHS, AS A RAVENING AND A ROARING LION.L# 14 I AM POURED OUT LIKE WATER, AND ALL MY BONES ARE OUT OF JOINT: MY HEART5 IS LIKE WAX; IT IS MELTED IN THE MIDST OF MY BOWELS.UJ# 15 MY STRENGTH IS DRIED UP LIKE A POTSHERD; AND MY TONGUE CLEAVETH TO MY7 JAWS; AND THOU HAST BROUGHT ME INTO THE DUST OF DEATH.M# 16 FOR DOGS HAVE COMPASSED ME: THE ASSEMBLY OF THE WICKED HAVE INCLOSED ME:L# THEY PIERCED MY HANDS AND MY FEET.::# 17 I MAY TELL ALL MY BONES: THEY LOOK AN00qh6-6<%X>%+%O-%TADATADATAD STARE UPON ME.E# 18 THEY PART MY GARMENTS AMONG THEM, AND CAST LOTS UPON MY VESTURE.4K# 19 BUT BE NOT THOU FAR FROM ME, O LORD: O MY STRENGTH, HASTE THEE TO HELP  ME.J# 20 DELIVER MY SOUL FROM THE SWORD; MY DARLING FROM THE POWER OF THE DOG.K# 21 SAVE ME FROM THE LIONS MOUTH: FOR THOU HAST HEARD ME FROM THE HORNS OF  THE UNICORNS.B# 22 I WILL DECLARE THY NAME UNTO MY BRETHREN: IN THE MIDST OF THE! CONGREGATION WILL I PRAISE THEE. I# 23 YE THAT FEAR THE LORD, PRAISE HIM; ALL YE THE SEED OF JACOB, GLORIFYP. HIM; AND FEAR HIM, ALL YE THE SEED OF ISRAEL.K# 24 FOR HE HATH NOT DESPISED NOR ABHORRED THE AFFLICTION OF THE AFFLICTED;YM NEITHER HATH HE HID HIS FACE FROM HIM; BUT WHEN HE CRIED UNTO HIM, HE HEARD.AM# 25 MY PRAISE SHALL BE OF THEE IN THE GREAT CONGREGATION: I WILL PAY MY VOWSA BEFORE THEM THAT FEAR HIM. I# 26 THE MEEK SHALL EAT AND BE SATISFIED: THEY SHALL PRAISE THE LORD THATS* SEEK HIM: YOUR HEART SHALL LIVE FOR EVER.M# 27 ALL THE ENDS OF THE WORLD SHALL REMEMBER AND TURN UNTO THE LORD: AND ALLH7 THE KINDREDS OF THE NATIONS SHALL WORSHIP BEFORE THEE. L# 28 FOR THE KINGDOM IS THE LORDS: AND HE IS THE GOVERNOR AMONG THE NATIONS.L# 29 ALL THEY THAT BE FAT UPON EARTH SHALL EAT AND WORSHIP: ALL THEY THAT GOM DOWN TO THE DUST SHALL BOW BEFORE HIM: AND NONE CAN KEEP ALIVE HIS OWN SOUL.HD# 30 A SEED SHALL SERVE HIM; IT SHALL BE ACCOUNTED TO THE LORD FOR A GENERATION.L# 31 THEY SHALL COME, AND SHALL DECLARE HIS RIGHTEOUSNESS UNTO A PEOPLE THAT' SHALL BE BORN, THAT HE HATH DONE THIS. = CHAPTER 23 .# 1 THE LORD IS MY SHEPHERD; I SHALL NOT WANT.H# 2 HE MAKETH ME TO LIE DOWN IN GREEN PASTURES: HE LEADETH ME BESIDE THE STILL WATERS.M# 3 HE RESTORETH MY SOUL: HE LEADETH ME IN THE PATHS OF RIGHTEOUSNESS FOR HISW NAMES SAKE.M# 4 YEA, THOUGH I WALK THROUGH THE VALLEY OF THE SHADOW OF DEATH, I WILL FEAR F NO EVIL: FOR THOU ART WITH ME; THY ROD AND THY STAFF THEY COMFORT ME.J# 5 THOU PREPAREST A TABLE BEFORE ME IN THE PRESENCE OF MINE ENEMIES: THOU1 ANOINTEST MY HEAD WITH OIL; MY CUP RUNNETH OVER.L# 6 SURELY GOODNESS AND MERCY SHALL FOLLOW ME ALL THE DAYS OF MY LIFE: AND I. WILL DWELL IN THE HOUSE OF THE LORD FOR EVER. = CHAPTER 24 M# 1 THE EARTH IS THE LORDS, AND THE FULNESS THEREOF; THE WORLD, AND THEY THATN DWELL THEREIN.EM# 2 FOR HE HATH FOUNDED IT UPON THE SEAS, AND ESTABLISHED IT UPON THE FLOODS.VI# 3 WHO SHALL ASCEND INTO THE HILL OF THE LORD? OR WHO SHALL STAND IN HISP HOLY PLACE?J# 4 HE THAT HATH CLEAN HANDS, AND A PURE HEART; WHO HATH NOT LIFTED UP HIS) SOUL UNTO VANITY, NOR SWORN DECEITFULLY.NK# 5 HE SHALL RECEIVE THE BLESSING FROM THE LORD, AND RIGHTEOUSNESS FROM THET GOD OF HIS SALVATION.G# 6 THIS IS THE GENERATION OF THEM THAT SEEK HIM, THAT SEEK THY FACE, OO JACOB. SELAH.L# 7 LIFT UP YOUR HEADS, O YE GATES; AND BE YE LIFT UP, YE EVERLASTING DOORS;% AND THE KING OF GLORY SHALL COME IN.HM# 8 WHO IS THIS KING OF GLORY? THE LORD STRONG AND MIGHTY, THE LORD MIGHTY INC BATTLE.L# 9 LIFT UP YOUR HEADS, O YE GATES; EVEN LIFT THEM UP, YE EVERLASTING DOORS;% AND THE KING OF GLORY SHALL COME IN. K# 10 WHO IS THIS KING OF GLORY? THE LORD OF HOSTS, HE IS THE KING OF GLORY.D SELAH.A = CHAPTER 25 H,# 1 UNTO THEE, O LORD, DO I LIFT UP MY SOUL.J# 2 O MY GOD, I TRUST IN THEE: LET ME NOT BE ASHAMED, LET NOT MINE ENEMIES TRIUMPH OVER ME. I# 3 YEA, LET NONE THAT WAIT ON THEE BE ASHAMED: LET THEM BE ASHAMED WHICH  TRANSGRESS WITHOUT CAUSE.1# 4 SHEW ME THY WAYS, O LORD; TEACH ME THY PATHS.IM# 5 LEAD ME IN THY TRUTH, AND TEACH ME: FOR THOU ART THE GOD OF MY SALVATION;E ON THEE DO I WAIT ALL THE DAY. K# 6 REMEMBER, O LORD, THY TENDER MERCIES AND THY LOVINGKINDNESSES; FOR THEYS HAVE BEEN EVER OF OLD. J# 7 REMEMBER NOT THE SINS OF MY YOUTH, NOR MY TRANSGRESSIONS: ACCORDING TO: THY MERCY REMEMBER THOU ME FOR THY GOODNESS SAKE, O LORD.M# 8 GOOD AND UPRIGHT IS THE LORD: THEREFORE WILL HE TEACH SINNERS IN THE WAY.K# 9 THE MEEK WILL HE GUIDE IN JUDGMENT: AND THE MEEK WILL HE TEACH HIS WAY.IH# 10 ALL THE PATHS OF THE LORD ARE MERCY AND TRUTH UNTO SUCH AS KEEP00qp6b5D%5%T6%! ! HIS COVENANT AND HIS TESTIMONIES.G# 11 FOR THY NAMES SAKE, O LORD, PARDON MINE INIQUITY; FOR IT IS GREAT.EM# 12 WHAT MAN IS HE THAT FEARETH THE LORD? HIM SHALL HE TEACH IN THE WAY THATN HE SHALL CHOOSE.SH# 13 HIS SOUL SHALL DWELL AT EASE; AND HIS SEED SHALL INHERIT THE EARTH.M# 14 THE SECRET OF THE LORD IS WITH THEM THAT FEAR HIM; AND HE WILL SHEW THEM HIS COVENANT.J# 15 MINE EYES ARE EVER TOWARD THE LORD; FOR HE SHALL PLUCK MY FEET OUT OF THE NET.HE# 16 TURN THEE UNTO ME, AND HAVE MERCY UPON ME; FOR I AM DESOLATE ANDT AFFLICTED.1E# 17 THE TROUBLES OF MY HEART ARE ENLARGED: O BRING THOU ME OUT OF MY DISTRESSES.D# 18 LOOK UPON MINE AFFLICTION AND MY PAIN; AND FORGIVE ALL MY SINS.J# 19 CONSIDER MINE ENEMIES; FOR THEY ARE MANY; AND THEY HATE ME WITH CRUEL HATRED.H# 20 O KEEP MY SOUL, AND DELIVER ME: LET ME NOT BE ASHAMED; FOR I PUT MY TRUST IN THEE.NC# 21 LET INTEGRITY AND UPRIGHTNESS PRESERVE ME; FOR I WAIT ON THEE.F3# 22 REDEEM ISRAEL, O GOD, OUT OF ALL HIS TROUBLES.A = CHAPTER 26 EN# 1 JUDGE ME, O LORD; FOR I HAVE WALKED IN MINE INTEGRITY: I HAVE TRUSTED ALSO* IN THE LORD; THEREFORE I SHALL NOT SLIDE.@# 2 EXAMINE ME, O LORD, AND PROVE ME; TRY MY REINS AND MY HEART.H# 3 FOR THY LOVINGKINDNESS IS BEFORE MINE EYES: AND I HAVE WALKED IN THY TRUTH.HL# 4 I HAVE NOT SAT WITH VAIN PERSONS, NEITHER WILL I GO IN WITH DISSEMBLERS.J# 5 I HAVE HATED THE CONGREGATION OF EVIL DOERS; AND WILL NOT SIT WITH THE WICKED.I# 6 I WILL WASH MINE HANDS IN INNOCENCY: SO WILL I COMPASS THINE ALTAR, O LORD:J# 7 THAT I MAY PUBLISH WITH THE VOICE OF THANKSGIVING, AND TELL OF ALL THY WONDROUS WORKS.M# 8 LORD, I HAVE LOVED THE HABITATION OF THY HOUSE, AND THE PLACE WHERE THINE  HONOUR DWELLETH. A# 9 GATHER NOT MY SOUL WITH SINNERS, NOR MY LIFE WITH BLOODY MEN:HH# 10 IN WHOSE HANDS IS MISCHIEF, AND THEIR RIGHT HAND IS FULL OF BRIBES.M# 11 BUT AS FOR ME, I WILL WALK IN MINE INTEGRITY: REDEEM ME, AND BE MERCIFULT UNTO ME..M# 12 MY FOOT STANDETH IN AN EVEN PLACE: IN THE CONGREGATIONS WILL I BLESS THEL LORD. = CHAPTER 27 BM# 1 THE LORD IS MY LIGHT AND MY SALVATION; WHOM SHALL I FEAR? THE LORD IS THE 0 STRENGTH OF MY LIFE; OF WHOM SHALL I BE AFRAID?M# 2 WHEN THE WICKED, EVEN MINE ENEMIES AND MY FOES, CAME UPON ME TO EAT UP MYR FLESH, THEY STUMBLED AND FELL.L# 3 THOUGH AN HOST SHOULD ENCAMP AGAINST ME, MY HEART SHALL NOT FEAR: THOUGH9 WAR SHOULD RISE AGAINST ME, IN THIS WILL I BE CONFIDENT.NL# 4 ONE THING HAVE I DESIRED OF THE LORD, THAT WILL I SEEK AFTER; THAT I MAYM DWELL IN THE HOUSE OF THE LORD ALL THE DAYS OF MY LIFE, TO BEHOLD THE BEAUTYA+ OF THE LORD, AND TO ENQUIRE IN HIS TEMPLE.IG# 5 FOR IN THE TIME OF TROUBLE HE SHALL HIDE ME IN HIS PAVILION: IN THECK SECRET OF HIS TABERNACLE SHALL HE HIDE ME; HE SHALL SET ME UP UPON A ROCK.SK# 6 AND NOW SHALL MINE HEAD BE LIFTED UP ABOVE MINE ENEMIES ROUND ABOUT ME:LN THEREFORE WILL I OFFER IN HIS TABERNACLE SACRIFICES OF JOY; I WILL SING, YEA,# I WILL SING PRAISES UNTO THE LORD.OH# 7 HEAR, O LORD, WHEN I CRY WITH MY VOICE: HAVE MERCY ALSO UPON ME, AND ANSWER ME. I# 8 WHEN THOU SAIDST, SEEK YE MY FACE; MY HEART SAID UNTO THEE, THY FACE,I LORD, WILL I SEEK. J# 9 HIDE NOT THY FACE FAR FROM ME; PUT NOT THY SERVANT AWAY IN ANGER: THOUL HAST BEEN MY HELP; LEAVE ME NOT, NEITHER FORSAKE ME, O GOD OF MY SALVATION.L# 10 WHEN MY FATHER AND MY MOTHER FORSAKE ME, THEN THE LORD WILL TAKE ME UP.K# 11 TEACH ME THY WAY, O LORD, AND LEAD ME IN A PLAIN PATH, BECAUSE OF MINES ENEMIES.OK# 12 DELIVER ME NOT OVER UNTO THE WILL OF MINE ENEMIES: FOR FALSE WITNESSESD: ARE RISEN UP AGAINST ME, AND SUCH AS BREATHE OUT CRUELTY.L# 13 I HAD FAINTED, UNLESS I HAD BELIEVED TO SEE THE GOODNESS OF THE LORD IN THE LAND OF THE LIVING.H# 14 WAIT ON THE LORD: BE OF GOOD COURAGE, AND HE SHALL STRENGTHEN THINE! HEART: WAIT, I SAY, ON THE LORD.W = CHAPTER 28 NL# 1 UNTO THEE WILL I CRY, O LORD MY ROCK; BE NOT SILENT TO ME: LEST, IF THOU? BE SILENT TO ME, I BECOME LIKE THEM THAT GO DOWN INTO THE PIT.OL# 2 HEAR THE VOICE OF MY SUPPLICATIONS, WHEN I CRY UNTO TH00qx6-6<%X>%+%O-%TADATADATAEE, WHEN I LIFT UP! MY HANDS TOWARD THY HOLY ORACLE.HM# 3 DRAW ME NOT AWAY WITH THE WICKED, AND WITH THE WORKERS OF INIQUITY, WHICHGB SPEAK PEACE TO THEIR NEIGHBOURS, BUT MISCHIEF IS IN THEIR HEARTS.J# 4 GIVE THEM ACCORDING TO THEIR DEEDS, AND ACCORDING TO THE WICKEDNESS OFJ THEIR ENDEAVOURS: GIVE THEM AFTER THE WORK OF THEIR HANDS; RENDER TO THEM THEIR DESERT.K# 5 BECAUSE THEY REGARD NOT THE WORKS OF THE LORD, NOR THE OPERATION OF HISP5 HANDS, HE SHALL DESTROY THEM, AND NOT BUILD THEM UP.YM# 6 BLESSED BE THE LORD, BECAUSE HE HATH HEARD THE VOICE OF MY SUPPLICATIONS. L# 7 THE LORD IS MY STRENGTH AND MY SHIELD; MY HEART TRUSTED IN HIM, AND I AMM HELPED: THEREFORE MY HEART GREATLY REJOICETH; AND WITH MY SONG WILL I PRAISEO HIM.DD# 8 THE LORD IS THEIR STRENGTH, AND HE IS THE SAVING STRENGTH OF HIS ANOINTED.J# 9 SAVE THY PEOPLE, AND BLESS THINE INHERITANCE: FEED THEM ALSO, AND LIFT THEM UP FOR EVER. = CHAPTER 29 OK# 1 GIVE UNTO THE LORD, O YE MIGHTY, GIVE UNTO THE LORD GLORY AND STRENGTH. K# 2 GIVE UNTO THE LORD THE GLORY DUE UNTO HIS NAME; WORSHIP THE LORD IN THE  BEAUTY OF HOLINESS.J# 3 THE VOICE OF THE LORD IS UPON THE WATERS: THE GOD OF GLORY THUNDERETH: THE LORD IS UPON MANY WATERS.G# 4 THE VOICE OF THE LORD IS POWERFUL; THE VOICE OF THE LORD IS FULL OFI MAJESTY.GI# 5 THE VOICE OF THE LORD BREAKETH THE CEDARS; YEA, THE LORD BREAKETH THEN CEDARS OF LEBANON.NL# 6 HE MAKETH THEM ALSO TO SKIP LIKE A CALF; LEBANON AND SIRION LIKE A YOUNG UNICORN.O6# 7 THE VOICE OF THE LORD DIVIDETH THE FLAMES OF FIRE.F# 8 THE VOICE OF THE LORD SHAKETH THE WILDERNESS; THE LORD SHAKETH THE WILDERNESS OF KADESH.H# 9 THE VOICE OF THE LORD MAKETH THE HINDS TO CALVE, AND DISCOVERETH THE> FORESTS: AND IN HIS TEMPLE DOTH EVERY ONE SPEAK OF HIS GLORY.J# 10 THE LORD SITTETH UPON THE FLOOD; YEA, THE LORD SITTETH KING FOR EVER.I# 11 THE LORD WILL GIVE STRENGTH UNTO HIS PEOPLE; THE LORD WILL BLESS HISM PEOPLE WITH PEACE.C = CHAPTER 30 DL# 1 I WILL EXTOL THEE, O LORD; FOR THOU HAST LIFTED ME UP, AND HAST NOT MADE MY FOES TO REJOICE OVER ME.># 2 O LORD MY GOD, I CRIED UNTO THEE, AND THOU HAST HEALED ME.J# 3 O LORD, THOU HAST BROUGHT UP MY SOUL FROM THE GRAVE: THOU HAST KEPT ME- ALIVE, THAT I SHOULD NOT GO DOWN TO THE PIT.EB# 4 SING UNTO THE LORD, O YE SAINTS OF HIS, AND GIVE THANKS AT THE REMEMBRANCE OF HIS HOLINESS.EK# 5 FOR HIS ANGER ENDURETH BUT A MOMENT; IN HIS FAVOUR IS LIFE: WEEPING MAYM3 ENDURE FOR A NIGHT, BUT JOY COMETH IN THE MORNING.T8# 6 AND IN MY PROSPERITY I SAID, I SHALL NEVER BE MOVED.H# 7 LORD, BY THY FAVOUR THOU HAST MADE MY MOUNTAIN TO STAND STRONG: THOU) DIDST HIDE THY FACE, AND I WAS TROUBLED.HC# 8 I CRIED TO THEE, O LORD; AND UNTO THE LORD I MADE SUPPLICATION.TJ# 9 WHAT PROFIT IS THERE IN MY BLOOD, WHEN I GO DOWN TO THE PIT? SHALL THE. DUST PRAISE THEE? SHALL IT DECLARE THY TRUTH?C# 10 HEAR, O LORD, AND HAVE MERCY UPON ME: LORD, BE THOU MY HELPER. K# 11 THOU HAST TURNED FOR ME MY MOURNING INTO DANCING: THOU HAST PUT OFF MY ( SACKCLOTH, AND GIRDED ME WITH GLADNESS;K# 12 TO THE END THAT MY GLORY MAY SING PRAISE TO THEE, AND NOT BE SILENT. OG4 LORD MY GOD, I WILL GIVE THANKS UNTO THEE FOR EVER. = CHAPTER 31 EN# 1 IN THEE, O LORD, DO I PUT MY TRUST; LET ME NEVER BE ASHAMED: DELIVER ME IN THY RIGHTEOUSNESS.OJ# 2 BOW DOWN THINE EAR TO ME; DELIVER ME SPEEDILY: BE THOU MY STRONG ROCK,$ FOR AN HOUSE OF DEFENCE TO SAVE ME.K# 3 FOR THOU ART MY ROCK AND MY FORTRESS; THEREFORE FOR THY NAMES SAKE LEADA ME, AND GUIDE ME.K# 4 PULL ME OUT OF THE NET THAT THEY HAVE LAID PRIVILY FOR ME: FOR THOU ARTL MY STRENGTH.AL# 5 INTO THINE HAND I COMMIT MY SPIRIT: THOU HAST REDEEMED ME, O LORD GOD OF TRUTH..J# 6 I HAVE HATED THEM THAT REGARD LYING VANITIES: BUT I TRUST IN THE LORD.H# 7 I WILL BE GLAD AND REJOICE IN THY MERCY: FOR THOU HAST CONSIDERED MY1 TROUBLE; THOU HAST KNOWN MY SOUL IN ADVERSITIES;AM# 8 AND HAST NOT SHUT ME UP INTO THE HAND OF THE ENEMY: THOU HAST SET MY FEETF IN A LARGE ROOM.AI# 9 HAVE MERCY UPON ME, O LORD, FOR I AM IN TROUBLE: MINE EYE IS CONSUMEDD'00q6b5D%5%T6%! ! WITH GRIEF, YEA, MY SOUL AND MY BELLY.GL# 10 FOR MY LIFE IS SPENT WITH GRIEF, AND MY YEARS WITH SIGHING: MY STRENGTH= FAILETH BECAUSE OF MINE INIQUITY, AND MY BONES ARE CONSUMED.SE# 11 I WAS A REPROACH AMONG ALL MINE ENEMIES, BUT ESPECIALLY AMONG MY:J NEIGHBOURS, AND A FEAR TO MINE ACQUAINTANCE: THEY THAT DID SEE ME WITHOUT FLED FROM ME.I# 12 I AM FORGOTTEN AS A DEAD MAN OUT OF MIND: I AM LIKE A BROKEN VESSEL. M# 13 FOR I HAVE HEARD THE SLANDER OF MANY: FEAR WAS ON EVERY SIDE: WHILE THEYCE TOOK COUNSEL TOGETHER AGAINST ME, THEY DEVISED TO TAKE AWAY MY LIFE. <# 14 BUT I TRUSTED IN THEE, O LORD: I SAID, THOU ART MY GOD.L# 15 MY TIMES ARE IN THY HAND: DELIVER ME FROM THE HAND OF MINE ENEMIES, AND FROM THEM THAT PERSECUTE ME. K# 16 MAKE THY FACE TO SHINE UPON THY SERVANT: SAVE ME FOR THY MERCIES SAKE. H# 17 LET ME NOT BE ASHAMED, O LORD; FOR I HAVE CALLED UPON THEE: LET THE8 WICKED BE ASHAMED, AND LET THEM BE SILENT IN THE GRAVE.F# 18 LET THE LYING LIPS BE PUT TO SILENCE; WHICH SPEAK GRIEVOUS THINGS2 PROUDLY AND CONTEMPTUOUSLY AGAINST THE RIGHTEOUS.M# 19 OH HOW GREAT IS THY GOODNESS, WHICH THOU HAST LAID UP FOR THEM THAT FEARIM THEE; WHICH THOU HAST WROUGHT FOR THEM THAT TRUST IN THEE BEFORE THE SONS OFT MEN!SI# 20 THOU SHALT HIDE THEM IN THE SECRET OF THY PRESENCE FROM THE PRIDE OFEM MAN: THOU SHALT KEEP THEM SECRETLY IN A PAVILION FROM THE STRIFE OF TONGUES.LL# 21 BLESSED BE THE LORD: FOR HE HATH SHEWED ME HIS MARVELLOUS KINDNESS IN A STRONG CITY.PA# 22 FOR I SAID IN MY HASTE, I AM CUT OFF FROM BEFORE THINE EYES:UK NEVERTHELESS THOU HEARDEST THE VOICE OF MY SUPPLICATIONS WHEN I CRIED UNTOT THEE.D# 23 O LOVE THE LORD, ALL YE HIS SAINTS: FOR THE LORD PRESERVETH THE4 FAITHFUL, AND PLENTIFULLY REWARDETH THE PROUD DOER.M# 24 BE OF GOOD COURAGE, AND HE SHALL STRENGTHEN YOUR HEART, ALL YE THAT HOPEK IN THE LORD.L = CHAPTER 32 H# 1 BLESSED IS HE WHOSE TRANSGRESSION IS FORGIVEN, WHOSE SIN IS COVERED.M# 2 BLESSED IS THE MAN UNTO WHOM THE LORD IMPUTETH NOT INIQUITY, AND IN WHOSEI SPIRIT THERE IS NO GUILE.J# 3 WHEN I KEPT SILENCE, MY BONES WAXED OLD THROUGH MY ROARING ALL THE DAY LONG.L# 4 FOR DAY AND NIGHT THY HAND WAS HEAVY UPON ME: MY MOISTURE IS TURNED INTO THE DROUGHT OF SUMMER. SELAH.M# 5 I ACKNOWLEDGE MY SIN UNTO THEE, AND MINE INIQUITY HAVE I NOT HID. I SAID, G I WILL CONFESS MY TRANSGRESSIONS UNTO THE LORD; AND THOU FORGAVEST THEH INIQUITY OF MY SIN. SELAH.IM# 6 FOR THIS SHALL EVERY ONE THAT IS GODLY PRAY UNTO THEE IN A TIME WHEN THOUNJ MAYEST BE FOUND: SURELY IN THE FLOODS OF GREAT WATERS THEY SHALL NOT COME NIGH UNTO HIM.EM# 7 THOU ART MY HIDING PLACE; THOU SHALT PRESERVE ME FROM TROUBLE; THOU SHALTS3 COMPASS ME ABOUT WITH SONGS OF DELIVERANCE. SELAH.GI# 8 I WILL INSTRUCT THEE AND TEACH THEE IN THE WAY WHICH THOU SHALT GO: I  WILL GUIDE THEE WITH MINE EYE. H# 9 BE YE NOT AS THE HORSE, OR AS THE MULE, WHICH HAVE NO UNDERSTANDING:J WHOSE MOUTH MUST BE HELD IN WITH BIT AND BRIDLE, LEST THEY COME NEAR UNTO THEE.K# 10 MANY SORROWS SHALL BE TO THE WICKED: BUT HE THAT TRUSTETH IN THE LORD,  MERCY SHALL COMPASS HIM ABOUT.K# 11 BE GLAD IN THE LORD, AND REJOICE, YE RIGHTEOUS: AND SHOUT FOR JOY, ALLS YE THAT ARE UPRIGHT IN HEART. = CHAPTER 33 SN# 1 REJOICE IN THE LORD, O YE RIGHTEOUS: FOR PRAISE IS COMELY FOR THE UPRIGHT.E# 2 PRAISE THE LORD WITH HARP: SING UNTO HIM WITH THE PSALTERY AND AN  INSTRUMENT OF TEN STRINGS.S?# 3 SING UNTO HIM A NEW SONG; PLAY SKILFULLY WITH A LOUD NOISE.TK# 4 FOR THE WORD OF THE LORD IS RIGHT; AND ALL HIS WORKS ARE DONE IN TRUTH.TK# 5 HE LOVETH RIGHTEOUSNESS AND JUDGMENT: THE EARTH IS FULL OF THE GOODNESS OF THE LORD.EK# 6 BY THE WORD OF THE LORD WERE THE HEAVENS MADE; AND ALL THE HOST OF THEM BY THE BREATH OF HIS MOUTH.L# 7 HE GATHERETH THE WATERS OF THE SEA TOGETHER AS AN HEAP: HE LAYETH UP THE DEPTH IN STOREHOUSES.I# 8 LET ALL THE EARTH FEAR THE LORD: LET ALL THE INHABITANTS OF THE WORLDU STAND IN AWE OF HIM.YC# 9 FOR HE SPAKE, AND IT WAS DONE; HE COMMANDED, AND IT STOOD FAST.;J# 10 THE LORD BRINGETH THE COUNS00q6-6<%X>%+%O-%TADATADATAEL OF THE HEATHEN TO NOUGHT: HE MAKETH THE& DEVICES OF THE PEOPLE OF NONE EFFECT.L# 11 THE COUNSEL OF THE LORD STANDETH FOR EVER, THE THOUGHTS OF HIS HEART TO ALL GENERATIONS.BM# 12 BLESSED IS THE NATION WHOSE GOD IS THE LORD; AND THE PEOPLE WHOM HE HATHA CHOSEN FOR HIS OWN INHERITANCE.D# 13 THE LORD LOOKETH FROM HEAVEN; HE BEHOLDETH ALL THE SONS OF MEN.L# 14 FROM THE PLACE OF HIS HABITATION HE LOOKETH UPON ALL THE INHABITANTS OF THE EARTH.EF# 15 HE FASHIONETH THEIR HEARTS ALIKE; HE CONSIDERETH ALL THEIR WORKS.L# 16 THERE IS NO KING SAVED BY THE MULTITUDE OF AN HOST: A MIGHTY MAN IS NOT DELIVERED BY MUCH STRENGTH.M# 17 AN HORSE IS A VAIN THING FOR SAFETY: NEITHER SHALL HE DELIVER ANY BY HISA GREAT STRENGTH.K# 18 BEHOLD, THE EYE OF THE LORD IS UPON THEM THAT FEAR HIM, UPON THEM THAT3 HOPE IN HIS MERCY;MH# 19 TO DELIVER THEIR SOUL FROM DEATH, AND TO KEEP THEM ALIVE IN FAMINE.B# 20 OUR SOUL WAITETH FOR THE LORD: HE IS OUR HELP AND OUR SHIELD.L# 21 FOR OUR HEART SHALL REJOICE IN HIM, BECAUSE WE HAVE TRUSTED IN HIS HOLY NAME.E# 22 LET THY MERCY, O LORD, BE UPON US, ACCORDING AS WE HOPE IN THEE. = CHAPTER 34 M# 1 I WILL BLESS THE LORD AT ALL TIMES: HIS PRAISE SHALL CONTINUALLY BE IN MY MOUTH.RL# 2 MY SOUL SHALL MAKE HER BOAST IN THE LORD: THE HUMBLE SHALL HEAR THEREOF, AND BE GLAD.NC# 3 O MAGNIFY THE LORD WITH ME, AND LET US EXALT HIS NAME TOGETHER. K# 4 I SOUGHT THE LORD, AND HE HEARD ME, AND DELIVERED ME FROM ALL MY FEARS.SF# 5 THEY LOOKED UNTO HIM, AND WERE LIGHTENED: AND THEIR FACES WERE NOT ASHAMED.YM# 6 THIS POOR MAN CRIED, AND THE LORD HEARD HIM, AND SAVED HIM OUT OF ALL HIS TROUBLES.G# 7 THE ANGEL OF THE LORD ENCAMPETH ROUND ABOUT THEM THAT FEAR HIM, ANDY DELIVERETH THEM.RK# 8 O TASTE AND SEE THAT THE LORD IS GOOD: BLESSED IS THE MAN THAT TRUSTETH, IN HIM.J# 9 O FEAR THE LORD, YE HIS SAINTS: FOR THERE IS NO WANT TO THEM THAT FEAR HIM. L# 10 THE YOUNG LIONS DO LACK, AND SUFFER HUNGER: BUT THEY THAT SEEK THE LORD SHALL NOT WANT ANY GOOD THING.TI# 11 COME, YE CHILDREN, HEARKEN UNTO ME: I WILL TEACH YOU THE FEAR OF THEE LORD.M# 12 WHAT MAN IS HE THAT DESIRETH LIFE, AND LOVETH MANY DAYS, THAT HE MAY SEEN GOOD?A# 13 KEEP THY TONGUE FROM EVIL, AND THY LIPS FROM SPEAKING GUILE.T># 14 DEPART FROM EVIL, AND DO GOOD; SEEK PEACE, AND PURSUE IT.L# 15 THE EYES OF THE LORD ARE UPON THE RIGHTEOUS, AND HIS EARS ARE OPEN UNTO THEIR CRY.HF# 16 THE FACE OF THE LORD IS AGAINST THEM THAT DO EVIL, TO CUT OFF THE$ REMEMBRANCE OF THEM FROM THE EARTH.L# 17 THE RIGHTEOUS CRY, AND THE LORD HEARETH, AND DELIVERETH THEM OUT OF ALL THEIR TROUBLES.K# 18 THE LORD IS NIGH UNTO THEM THAT ARE OF A BROKEN HEART; AND SAVETH SUCHG AS BE OF A CONTRITE SPIRIT.K# 19 MANY ARE THE AFFLICTIONS OF THE RIGHTEOUS: BUT THE LORD DELIVERETH HIMD OUT OF THEM ALL.U9# 20 HE KEEPETH ALL HIS BONES: NOT ONE OF THEM IS BROKEN. J# 21 EVIL SHALL SLAY THE WICKED: AND THEY THAT HATE THE RIGHTEOUS SHALL BE DESOLATE.M# 22 THE LORD REDEEMETH THE SOUL OF HIS SERVANTS: AND NONE OF THEM THAT TRUSTO IN HIM SHALL BE DESOLATE. = CHAPTER 35 HM# 1 PLEAD MY CAUSE, O LORD, WITH THEM THAT STRIVE WITH ME: FIGHT AGAINST THEM  THAT FIGHT AGAINST ME.H@# 2 TAKE HOLD OF SHIELD AND BUCKLER, AND STAND UP FOR MINE HELP.M# 3 DRAW OUT ALSO THE SPEAR, AND STOP THE WAY AGAINST THEM THAT PERSECUTE ME:E& SAY UNTO MY SOUL, I AM THY SALVATION.M# 4 LET THEM BE CONFOUNDED AND PUT TO SHAME THAT SEEK AFTER MY SOUL: LET THEML= BE TURNED BACK AND BROUGHT TO CONFUSION THAT DEVISE MY HURT.NM# 5 LET THEM BE AS CHAFF BEFORE THE WIND: AND LET THE ANGEL OF THE LORD CHASE  THEM.E# 6 LET THEIR WAY BE DARK AND SLIPPERY: AND LET THE ANGEL OF THE LORDT PERSECUTE THEM.L# 7 FOR WITHOUT CAUSE HAVE THEY HID FOR ME THEIR NET IN A PIT, WHICH WITHOUT$ CAUSE THEY HAVE DIGGED FOR MY SOUL.K# 8 LET DESTRUCTION COME UPON HIM AT UNAWARES; AND LET HIS NET THAT HE HATH < HID CATCH HIMSELF: INTO THAT VERY DESTRUCTION LET HIM FALL.D# 9 AND MY SOUL SHALL BE JOYFUL IN THE LORD: IT SHALL REJOICE IN HIS SALVATION. J# 10 ALL MY BONES SHALL 00q6b5D%5%T6%! !SAY, LORD, WHO IS LIKE UNTO THEE, WHICH DELIVERESTJ THE POOR FROM HIM THAT IS TOO STRONG FOR HIM, YEA, THE POOR AND THE NEEDY FROM HIM THAT SPOILETH HIM?K# 11 FALSE WITNESSES DID RISE UP; THEY LAID TO MY CHARGE THINGS THAT I KNEWT NOT.E?# 12 THEY REWARDED ME EVIL FOR GOOD TO THE SPOILING OF MY SOUL.EM# 13 BUT AS FOR ME, WHEN THEY WERE SICK, MY CLOTHING WAS SACKCLOTH: I HUMBLEDNB MY SOUL WITH FASTING; AND MY PRAYER RETURNED INTO MINE OWN BOSOM.I# 14 I BEHAVED MYSELF AS THOUGH HE HAD BEEN MY FRIEND OR BROTHER: I BOWEDI3 DOWN HEAVILY, AS ONE THAT MOURNETH FOR HIS MOTHER.AK# 15 BUT IN MINE ADVERSITY THEY REJOICED, AND GATHERED THEMSELVES TOGETHER: M YEA, THE ABJECTS GATHERED THEMSELVES TOGETHER AGAINST ME, AND I KNEW IT NOT;E" THEY DID TEAR ME, AND CEASED NOT:I# 16 WITH HYPOCRITICAL MOCKERS IN FEASTS, THEY GNASHED UPON ME WITH THEIRE TEETH. @# 17 LORD, HOW LONG WILT THOU LOOK ON? RESCUE MY SOUL FROM THEIR) DESTRUCTIONS, MY DARLING FROM THE LIONS.IJ# 18 I WILL GIVE THEE THANKS IN THE GREAT CONGREGATION: I WILL PRAISE THEE AMONG MUCH PEOPLE.MK# 19 LET NOT THEM THAT ARE MINE ENEMIES WRONGFULLY REJOICE OVER ME: NEITHERR9 LET THEM WINK WITH THE EYE THAT HATE ME WITHOUT A CAUSE.LM# 20 FOR THEY SPEAK NOT PEACE: BUT THEY DEVISE DECEITFUL MATTERS AGAINST THEM: THAT ARE QUIET IN THE LAND.J# 21 YEA, THEY OPENED THEIR MOUTH WIDE AGAINST ME, AND SAID, AHA, AHA, OUR EYE HATH SEEN IT.K# 22 THIS THOU HAST SEEN, O LORD: KEEP NOT SILENCE: O LORD, BE NOT FAR FROMI ME.J# 23 STIR UP THYSELF, AND AWAKE TO MY JUDGMENT, EVEN UNTO MY CAUSE, MY GOD AND MY LORD.LJ# 24 JUDGE ME, O LORD MY GOD, ACCORDING TO THY RIGHTEOUSNESS; AND LET THEM NOT REJOICE OVER ME. L# 25 LET THEM NOT SAY IN THEIR HEARTS, AH, SO WOULD WE HAVE IT: LET THEM NOT SAY, WE HAVE SWALLOWED HIM UP.J# 26 LET THEM BE ASHAMED AND BROUGHT TO CONFUSION TOGETHER THAT REJOICE ATE MINE HURT: LET THEM BE CLOTHED WITH SHAME AND DISHONOUR THAT MAGNIFYE THEMSELVES AGAINST ME.NI# 27 LET THEM SHOUT FOR JOY, AND BE GLAD, THAT FAVOUR MY RIGHTEOUS CAUSE:UN YEA, LET THEM SAY CONTINUALLY, LET THE LORD BE MAGNIFIED, WHICH HATH PLEASURE" IN THE PROSPERITY OF HIS SERVANT.M# 28 AND MY TONGUE SHALL SPEAK OF THY RIGHTEOUSNESS AND OF THY PRAISE ALL THES DAY LONG. = CHAPTER 36 MK# 1 THE TRANSGRESSION OF THE WICKED SAITH WITHIN MY HEART, THAT THERE IS NOT FEAR OF GOD BEFORE HIS EYES.CM# 2 FOR HE FLATTERETH HIMSELF IN HIS OWN EYES, UNTIL HIS INIQUITY BE FOUND TOT BE HATEFUL.J# 3 THE WORDS OF HIS MOUTH ARE INIQUITY AND DECEIT: HE HATH LEFT OFF TO BE WISE, AND TO DO GOOD.J# 4 HE DEVISETH MISCHIEF UPON HIS BED; HE SETTETH HIMSELF IN A WAY THAT IS! NOT GOOD; HE ABHORRETH NOT EVIL.ML# 5 THY MERCY, O LORD, IS IN THE HEAVENS; AND THY FAITHFULNESS REACHETH UNTO THE CLOUDS.L# 6 THY RIGHTEOUSNESS IS LIKE THE GREAT MOUNTAINS; THY JUDGMENTS ARE A GREAT- DEEP: O LORD, THOU PRESERVEST MAN AND BEAST.EM# 7 HOW EXCELLENT IS THY LOVINGKINDNESS, O GOD! THEREFORE THE CHILDREN OF MENU/ PUT THEIR TRUST UNDER THE SHADOW OF THY WINGS.EI# 8 THEY SHALL BE ABUNDANTLY SATISFIED WITH THE FATNESS OF THY HOUSE; ANDI: THOU SHALT MAKE THEM DRINK OF THE RIVER OF THY PLEASURES.K# 9 FOR WITH THEE IS THE FOUNTAIN OF LIFE: IN THY LIGHT SHALL WE SEE LIGHT.HD# 10 O CONTINUE THY LOVINGKINDNESS UNTO THEM THAT KNOW THEE; AND THY' RIGHTEOUSNESS TO THE UPRIGHT IN HEART.EK# 11 LET NOT THE FOOT OF PRIDE COME AGAINST ME, AND LET NOT THE HAND OF THES WICKED REMOVE ME.L# 12 THERE ARE THE WORKERS OF INIQUITY FALLEN: THEY ARE CAST DOWN, AND SHALL NOT BE ABLE TO RISE.A = CHAPTER 37 YN# 1 FRET NOT THYSELF BECAUSE OF EVILDOERS, NEITHER BE THOU ENVIOUS AGAINST THE WORKERS OF INIQUITY.EK# 2 FOR THEY SHALL SOON BE CUT DOWN LIKE THE GRASS, AND WITHER AS THE GREENT HERB.H# 3 TRUST IN THE LORD, AND DO GOOD; SO SHALT THOU DWELL IN THE LAND, AND VERILY THOU SHALT BE FED.K# 4 DELIGHT THYSELF ALSO IN THE LORD: AND HE SHALL GIVE THEE THE DESIRES OF THINE HEART.EM# 5 COMMIT THY WAY UNTO THE LORD; TRUST ALSO IN HIM; AND HE SHALL BRING IT TOD PASS.M# 6 AND HE SHALL BRING FORTH THY R00q6-6<%X>%+%O-%TADATADATAIGHTEOUSNESS AS THE LIGHT, AND THY JUDGMENTR AS THE NOONDAY.M# 7 REST IN THE LORD, AND WAIT PATIENTLY FOR HIM: FRET NOT THYSELF BECAUSE OFWN HIM WHO PROSPERETH IN HIS WAY, BECAUSE OF THE MAN WHO BRINGETH WICKED DEVICES TO PASS.SK# 8 CEASE FROM ANGER, AND FORSAKE WRATH: FRET NOT THYSELF IN ANY WISE TO DOS EVIL.K# 9 FOR EVILDOERS SHALL BE CUT OFF: BUT THOSE THAT WAIT UPON THE LORD, THEYM SHALL INHERIT THE EARTH.RI# 10 FOR YET A LITTLE WHILE, AND THE WICKED SHALL NOT BE: YEA, THOU SHALTF4 DILIGENTLY CONSIDER HIS PLACE, AND IT SHALL NOT BE.J# 11 BUT THE MEEK SHALL INHERIT THE EARTH; AND SHALL DELIGHT THEMSELVES IN THE ABUNDANCE OF PEACE.I# 12 THE WICKED PLOTTETH AGAINST THE JUST, AND GNASHETH UPON HIM WITH HISS TEETH.SF# 13 THE LORD SHALL LAUGH AT HIM: FOR HE SEETH THAT HIS DAY IS COMING.J# 14 THE WICKED HAVE DRAWN OUT THE SWORD, AND HAVE BENT THEIR BOW, TO CASTI DOWN THE POOR AND NEEDY, AND TO SLAY SUCH AS BE OF UPRIGHT CONVERSATION.,J# 15 THEIR SWORD SHALL ENTER INTO THEIR OWN HEART, AND THEIR BOWS SHALL BE BROKEN.I# 16 A LITTLE THAT A RIGHTEOUS MAN HATH IS BETTER THAN THE RICHES OF MANYT WICKED.K# 17 FOR THE ARMS OF THE WICKED SHALL BE BROKEN: BUT THE LORD UPHOLDETH THED RIGHTEOUS.NM# 18 THE LORD KNOWETH THE DAYS OF THE UPRIGHT: AND THEIR INHERITANCE SHALL BEI FOR EVER.J# 19 THEY SHALL NOT BE ASHAMED IN THE EVIL TIME: AND IN THE DAYS OF FAMINE THEY SHALL BE SATISFIED.EM# 20 BUT THE WICKED SHALL PERISH, AND THE ENEMIES OF THE LORD SHALL BE AS THETF FAT OF LAMBS: THEY SHALL CONSUME; INTO SMOKE SHALL THEY CONSUME AWAY.J# 21 THE WICKED BORROWETH, AND PAYETH NOT AGAIN: BUT THE RIGHTEOUS SHEWETH MERCY, AND GIVETH.EL# 22 FOR SUCH AS BE BLESSED OF HIM SHALL INHERIT THE EARTH; AND THEY THAT BE CURSED OF HIM SHALL BE CUT OFF.J# 23 THE STEPS OF A GOOD MAN ARE ORDERED BY THE LORD: AND HE DELIGHTETH IN HIS WAY.VD# 24 THOUGH HE FALL, HE SHALL NOT BE UTTERLY CAST DOWN: FOR THE LORD UPHOLDETH HIM WITH HIS HAND. I# 25 I HAVE BEEN YOUNG, AND NOW AM OLD; YET HAVE I NOT SEEN THE RIGHTEOUS;& FORSAKEN, NOR HIS SEED BEGGING BREAD.?# 26 HE IS EVER MERCIFUL, AND LENDETH; AND HIS SEED IS BLESSED.S;# 27 DEPART FROM EVIL, AND DO GOOD; AND DWELL FOR EVERMORE.HI# 28 FOR THE LORD LOVETH JUDGMENT, AND FORSAKETH NOT HIS SAINTS; THEY AREFA PRESERVED FOR EVER: BUT THE SEED OF THE WICKED SHALL BE CUT OFF.LF# 29 THE RIGHTEOUS SHALL INHERIT THE LAND, AND DWELL THEREIN FOR EVER.J# 30 THE MOUTH OF THE RIGHTEOUS SPEAKETH WISDOM, AND HIS TONGUE TALKETH OF JUDGMENT.G# 31 THE LAW OF HIS GOD IS IN HIS HEART; NONE OF HIS STEPS SHALL SLIDE. @# 32 THE WICKED WATCHETH THE RIGHTEOUS, AND SEEKETH TO SLAY HIM.H# 33 THE LORD WILL NOT LEAVE HIM IN HIS HAND, NOR CONDEMN HIM WHEN HE IS JUDGED.K# 34 WAIT ON THE LORD, AND KEEP HIS WAY, AND HE SHALL EXALT THEE TO INHERITE: THE LAND: WHEN THE WICKED ARE CUT OFF, THOU SHALT SEE IT.H# 35 I HAVE SEEN THE WICKED IN GREAT POWER, AND SPREADING HIMSELF LIKE A GREEN BAY TREE.M# 36 YET HE PASSED AWAY, AND, LO, HE WAS NOT: YEA, I SOUGHT HIM, BUT HE COULD  NOT BE FOUND.M# 37 MARK THE PERFECT MAN, AND BEHOLD THE UPRIGHT: FOR THE END OF THAT MAN ISN PEACE. M# 38 BUT THE TRANSGRESSORS SHALL BE DESTROYED TOGETHER: THE END OF THE WICKEDN SHALL BE CUT OFF.L# 39 BUT THE SALVATION OF THE RIGHTEOUS IS OF THE LORD: HE IS THEIR STRENGTH IN THE TIME OF TROUBLE.J# 40 AND THE LORD SHALL HELP THEM, AND DELIVER THEM: HE SHALL DELIVER THEM; FROM THE WICKED, AND SAVE THEM, BECAUSE THEY TRUST IN HIM.A = CHAPTER 38 E# 1 O LORD, REBUKE ME NOT IN THY WRATH: NEITHER CHASTEN ME IN THY HOTM DISPLEASURE. E# 2 FOR THINE ARROWS STICK FAST IN ME, AND THY HAND PRESSETH ME SORE.8H# 3 THERE IS NO SOUNDNESS IN MY FLESH BECAUSE OF THINE ANGER; NEITHER IS. THERE ANY REST IN MY BONES BECAUSE OF MY SIN.L# 4 FOR MINE INIQUITIES ARE GONE OVER MINE HEAD: AS AN HEAVY BURDEN THEY ARE TOO HEAVY FOR ME.># 5 MY WOUNDS STINK AND ARE CORRUPT BECAUSE OF MY FOOLISHNESS.K# 6 I AM TROUBLED; I AM BOWED DOWN GREATLY; I GO MOURNING ALL THE DAY LONG.OE# 7 FOR MY LOINS ARE FILLED WITH A LOATHSOME D00q6b5D%5%T6%! !ISEASE: AND THERE IS NOA SOUNDNESS IN MY FLESH.OL# 8 I AM FEEBLE AND SORE BROKEN: I HAVE ROARED BY REASON OF THE DISQUIETNESS OF MY HEART.EM# 9 LORD, ALL MY DESIRE IS BEFORE THEE; AND MY GROANING IS NOT HID FROM THEE..M# 10 MY HEART PANTETH, MY STRENGTH FAILETH ME: AS FOR THE LIGHT OF MINE EYES, IT ALSO IS GONE FROM ME.WL# 11 MY LOVERS AND MY FRIENDS STAND ALOOF FROM MY SORE; AND MY KINSMEN STAND AFAR OFF.L# 12 THEY ALSO THAT SEEK AFTER MY LIFE LAY SNARES FOR ME: AND THEY THAT SEEKH MY HURT SPEAK MISCHIEVOUS THINGS, AND IMAGINE DECEITS ALL THE DAY LONG.J# 13 BUT I, AS A DEAF MAN, HEARD NOT; AND I WAS AS A DUMB MAN THAT OPENETH NOT HIS MOUTH. D# 14 THUS I WAS AS A MAN THAT HEARETH NOT, AND IN WHOSE MOUTH ARE NO REPROOFS.C# 15 FOR IN THEE, O LORD, DO I HOPE: THOU WILT HEAR, O LORD MY GOD.IM# 16 FOR I SAID, HEAR ME, LEST OTHERWISE THEY SHOULD REJOICE OVER ME: WHEN MYE3 FOOT SLIPPETH, THEY MAGNIFY THEMSELVES AGAINST ME.AD# 17 FOR I AM READY TO HALT, AND MY SORROW IS CONTINUALLY BEFORE ME.B# 18 FOR I WILL DECLARE MINE INIQUITY; I WILL BE SORRY FOR MY SIN.L# 19 BUT MINE ENEMIES ARE LIVELY, AND THEY ARE STRONG: AND THEY THAT HATE ME WRONGFULLY ARE MULTIPLIED.SH# 20 THEY ALSO THAT RENDER EVIL FOR GOOD ARE MINE ADVERSARIES; BECAUSE I FOLLOW THE THING THAT GOOD IS.I:# 21 FORSAKE ME NOT, O LORD: O MY GOD, BE NOT FAR FROM ME.0# 22 MAKE HASTE TO HELP ME, O LORD MY SALVATION. = CHAPTER 39 YN# 1 I SAID, I WILL TAKE HEED TO MY WAYS, THAT I SIN NOT WITH MY TONGUE: I WILL< KEEP MY MOUTH WITH A BRIDLE, WHILE THE WICKED IS BEFORE ME.K# 2 I WAS DUMB WITH SILENCE, I HELD MY PEACE, EVEN FROM GOOD; AND MY SORROWS WAS STIRRED. H# 3 MY HEART WAS HOT WITHIN ME, WHILE I WAS MUSING THE FIRE BURNED: THEN SPAKE I WITH MY TONGUE,K# 4 LORD, MAKE ME TO KNOW MINE END, AND THE MEASURE OF MY DAYS, WHAT IT IS:R THAT I MAY KNOW HOW FRAIL I AM.H# 5 BEHOLD, THOU HAST MADE MY DAYS AS AN HANDBREADTH; AND MINE AGE IS ASN NOTHING BEFORE THEE: VERILY EVERY MAN AT HIS BEST STATE IS ALTOGETHER VANITY. SELAH.TJ# 6 SURELY EVERY MAN WALKETH IN A VAIN SHEW: SURELY THEY ARE DISQUIETED INC VAIN: HE HEAPETH UP RICHES, AND KNOWETH NOT WHO SHALL GATHER THEM.H7# 7 AND NOW, LORD, WHAT WAIT I FOR? MY HOPE IS IN THEE.DJ# 8 DELIVER ME FROM ALL MY TRANSGRESSIONS: MAKE ME NOT THE REPROACH OF THE FOOLISH.F=# 9 I WAS DUMB, I OPENED NOT MY MOUTH; BECAUSE THOU DIDST IT.EM# 10 REMOVE THY STROKE AWAY FROM ME: I AM CONSUMED BY THE BLOW OF THINE HAND.FJ# 11 WHEN THOU WITH REBUKES DOST CORRECT MAN FOR INIQUITY, THOU MAKEST HISG BEAUTY TO CONSUME AWAY LIKE A MOTH: SURELY EVERY MAN IS VANITY. SELAH. L# 12 HEAR MY PRAYER, O LORD, AND GIVE EAR UNTO MY CRY; HOLD NOT THY PEACE ATL MY TEARS: FOR I AM A STRANGER WITH THEE, AND A SOJOURNER, AS ALL MY FATHERS WERE.J# 13 O SPARE ME, THAT I MAY RECOVER STRENGTH, BEFORE I GO HENCE, AND BE NO MORE. = CHAPTER 40 UJ# 1 I WAITED PATIENTLY FOR THE LORD; AND HE INCLINED UNTO ME, AND HEARD MY CRY.OK# 2 HE BROUGHT ME UP ALSO OUT OF AN HORRIBLE PIT, OUT OF THE MIRY CLAY, ANDO4 SET MY FEET UPON A ROCK, AND ESTABLISHED MY GOINGS.J# 3 AND HE HATH PUT A NEW SONG IN MY MOUTH, EVEN PRAISE UNTO OUR GOD: MANY5 SHALL SEE IT, AND FEAR, AND SHALL TRUST IN THE LORD. J# 4 BLESSED IS THAT MAN THAT MAKETH THE LORD HIS TRUST, AND RESPECTETH NOT+ THE PROUD, NOR SUCH AS TURN ASIDE TO LIES.GJ# 5 MANY, O LORD MY GOD, ARE THY WONDERFUL WORKS WHICH THOU HAST DONE, ANDL THY THOUGHTS WHICH ARE TO US-WARD: THEY CANNOT BE RECKONED UP IN ORDER UNTOF THEE: IF I WOULD DECLARE AND SPEAK OF THEM, THEY ARE MORE THAN CAN BE NUMBERED.M# 6 SACRIFICE AND OFFERING THOU DIDST NOT DESIRE; MINE EARS HAST THOU OPENED:N8 BURNT OFFERING AND SIN OFFERING HAST THOU NOT REQUIRED.K# 7 THEN SAID I, LO, I COME: IN THE VOLUME OF THE BOOK IT IS WRITTEN OF ME,EH# 8 I DELIGHT TO DO THY WILL, O MY GOD: YEA, THY LAW IS WITHIN MY HEART.K# 9 I HAVE PREACHED RIGHTEOUSNESS IN THE GREAT CONGREGATION: LO, I HAVE NOTH) REFRAINED MY LIPS, O LORD, THOU KNOWEST. J# 10 I HAVE NOT HID THY RIGHTEOUSNESS WITHIN MY HEART; I HAVE DECLARED THYL F00q6-6<%X>%+%O-%TADATADATAAITHFULNESS AND THY SALVATION: I HAVE NOT CONCEALED THY LOVINGKINDNESS AND' THY TRUTH FROM THE GREAT CONGREGATION.NB# 11 WITHHOLD NOT THOU THY TENDER MERCIES FROM ME, O LORD: LET THY6 LOVINGKINDNESS AND THY TRUTH CONTINUALLY PRESERVE ME.H# 12 FOR INNUMERABLE EVILS HAVE COMPASSED ME ABOUT: MINE INIQUITIES HAVEM TAKEN HOLD UPON ME, SO THAT I AM NOT ABLE TO LOOK UP; THEY ARE MORE THAN THEF3 HAIRS OF MINE HEAD: THEREFORE MY HEART FAILETH ME.OF# 13 BE PLEASED, O LORD, TO DELIVER ME: O LORD, MAKE HASTE TO HELP ME.K# 14 LET THEM BE ASHAMED AND CONFOUNDED TOGETHER THAT SEEK AFTER MY SOUL TOHL DESTROY IT; LET THEM BE DRIVEN BACKWARD AND PUT TO SHAME THAT WISH ME EVIL.L# 15 LET THEM BE DESOLATE FOR A REWARD OF THEIR SHAME THAT SAY UNTO ME, AHA, AHA.RJ# 16 LET ALL THOSE THAT SEEK THEE REJOICE AND BE GLAD IN THEE: LET SUCH AS; LOVE THY SALVATION SAY CONTINUALLY, THE LORD BE MAGNIFIED.AM# 17 BUT I AM POOR AND NEEDY; YET THE LORD THINKETH UPON ME: THOU ART MY HELPO. AND MY DELIVERER; MAKE NO TARRYING, O MY GOD. = CHAPTER 41 TN# 1 BLESSED IS HE THAT CONSIDERETH THE POOR: THE LORD WILL DELIVER HIM IN TIME OF TROUBLE.K# 2 THE LORD WILL PRESERVE HIM, AND KEEP HIM ALIVE; AND HE SHALL BE BLESSED L UPON THE EARTH: AND THOU WILT NOT DELIVER HIM UNTO THE WILL OF HIS ENEMIES.L# 3 THE LORD WILL STRENGTHEN HIM UPON THE BED OF LANGUISHING: THOU WILT MAKE ALL HIS BED IN HIS SICKNESS.GF# 4 I SAID, LORD, BE MERCIFUL UNTO ME: HEAL MY SOUL; FOR I HAVE SINNED AGAINST THEE.J# 5 MINE ENEMIES SPEAK EVIL OF ME, WHEN SHALL HE DIE, AND HIS NAME PERISH?E# 6 AND IF HE COME TO SEE ME, HE SPEAKETH VANITY: HIS HEART GATHERETHO9 INIQUITY TO ITSELF; WHEN HE GOETH ABROAD, HE TELLETH IT.IK# 7 ALL THAT HATE ME WHISPER TOGETHER AGAINST ME: AGAINST ME DO THEY DEVISEU MY HURT.LL# 8 AN EVIL DISEASE, SAY THEY, CLEAVETH FAST UNTO HIM: AND NOW THAT HE LIETH HE SHALL RISE UP NO MORE.I# 9 YEA, MINE OWN FAMILIAR FRIEND, IN WHOM I TRUSTED, WHICH DID EAT OF MYF+ BREAD, HATH LIFTED UP HIS HEEL AGAINST ME.EG# 10 BUT THOU, O LORD, BE MERCIFUL UNTO ME, AND RAISE ME UP, THAT I MAYF REQUITE THEM.G# 11 BY THIS I KNOW THAT THOU FAVOUREST ME, BECAUSE MINE ENEMY DOTH NOTE TRIUMPH OVER ME.EG# 12 AND AS FOR ME, THOU UPHOLDEST ME IN MINE INTEGRITY, AND SETTEST MED BEFORE THY FACE FOR EVER.L# 13 BLESSED BE THE LORD GOD OF ISRAEL FROM EVERLASTING, AND TO EVERLASTING. AMEN, AND AMEN. = CHAPTER 42 EN# 1 AS THE HART PANTETH AFTER THE WATER BROOKS, SO PANTETH MY SOUL AFTER THEE, O GOD. H# 2 MY SOUL THIRSTETH FOR GOD, FOR THE LIVING GOD: WHEN SHALL I COME AND APPEAR BEFORE GOD?AM# 3 MY TEARS HAVE BEEN MY MEAT DAY AND NIGHT, WHILE THEY CONTINUALLY SAY UNTOE ME, WHERE IS THY GOD?J# 4 WHEN I REMEMBER THESE THINGS, I POUR OUT MY SOUL IN ME: FOR I HAD GONEL WITH THE MULTITUDE, I WENT WITH THEM TO THE HOUSE OF GOD, WITH THE VOICE OF4 JOY AND PRAISE, WITH A MULTITUDE THAT KEPT HOLYDAY.I# 5 WHY ART THOU CAST DOWN, O MY SOUL? AND WHY ART THOU DISQUIETED IN ME?MN HOPE THOU IN GOD: FOR I SHALL YET PRAISE HIM FOR THE HELP OF HIS COUNTENANCE.L# 6 O MY GOD, MY SOUL IS CAST DOWN WITHIN ME: THEREFORE WILL I REMEMBER THEEE FROM THE LAND OF JORDAN, AND OF THE HERMONITES, FROM THE HILL MIZAR.M# 7 DEEP CALLETH UNTO DEEP AT THE NOISE OF THY WATERSPOUTS: ALL THY WAVES ANDT THY BILLOWS ARE GONE OVER ME.L# 8 YET THE LORD WILL COMMAND HIS LOVINGKINDNESS IN THE DAY TIME, AND IN THEH NIGHT HIS SONG SHALL BE WITH ME, AND MY PRAYER UNTO THE GOD OF MY LIFE.E# 9 I WILL SAY UNTO GOD MY ROCK, WHY HAST THOU FORGOTTEN ME? WHY GO IH1 MOURNING BECAUSE OF THE OPPRESSION OF THE ENEMY?SJ# 10 AS WITH A SWORD IN MY BONES, MINE ENEMIES REPROACH ME; WHILE THEY SAY! DAILY UNTO ME, WHERE IS THY GOD? J# 11 WHY ART THOU CAST DOWN, O MY SOUL? AND WHY ART THOU DISQUIETED WITHINJ ME? HOPE THOU IN GOD: FOR I SHALL YET PRAISE HIM, WHO IS THE HEALTH OF MY COUNTENANCE, AND MY GOD.H = CHAPTER 43 L# 1 JUDGE ME, O GOD, AND PLEAD MY CAUSE AGAINST AN UNGODLY NATION: O DELIVER& ME FROM THE DECEITFUL AND UNJUST MAN.L# 2 FOR THOU ART THE GOD OF MY STRENGTH: WHY DOST THOU CAST 00q6b5D%5%T6%! !ME OFF? WHY GO I1 MOURNING BECAUSE OF THE OPPRESSION OF THE ENEMY?EK# 3 O SEND OUT THY LIGHT AND THY TRUTH: LET THEM LEAD ME; LET THEM BRING MEY, UNTO THY HOLY HILL, AND TO THY TABERNACLES.I# 4 THEN WILL I GO UNTO THE ALTAR OF GOD, UNTO GOD MY EXCEEDING JOY: YEA,O0 UPON THE HARP WILL I PRAISE THEE, O GOD MY GOD.M# 5 WHY ART THOU CAST DOWN, O MY SOUL? AND WHY ART THOU DISQUIETED WITHIN ME?ON HOPE IN GOD: FOR I SHALL YET PRAISE HIM, WHO IS THE HEALTH OF MY COUNTENANCE, AND MY GOD. = CHAPTER 44 CK# 1 WE HAVE HEARD WITH OUR EARS, O GOD, OUR FATHERS HAVE TOLD US, WHAT WORK / THOU DIDST IN THEIR DAYS, IN THE TIMES OF OLD. K# 2 HOW THOU DIDST DRIVE OUT THE HEATHEN WITH THY HAND, AND PLANTEDST THEM;N6 HOW THOU DIDST AFFLICT THE PEOPLE, AND CAST THEM OUT.K# 3 FOR THEY GOT NOT THE LAND IN POSSESSION BY THEIR OWN SWORD, NEITHER DIDUM THEIR OWN ARM SAVE THEM: BUT THY RIGHT HAND, AND THINE ARM, AND THE LIGHT OFO8 THY COUNTENANCE, BECAUSE THOU HADST A FAVOUR UNTO THEM.<# 4 THOU ART MY KING, O GOD: COMMAND DELIVERANCES FOR JACOB.H# 5 THROUGH THEE WILL WE PUSH DOWN OUR ENEMIES: THROUGH THY NAME WILL WE* TREAD THEM UNDER THAT RISE UP AGAINST US.C# 6 FOR I WILL NOT TRUST IN MY BOW, NEITHER SHALL MY SWORD SAVE ME.OL# 7 BUT THOU HAST SAVED US FROM OUR ENEMIES, AND HAST PUT THEM TO SHAME THAT HATED US.J# 8 IN GOD WE BOAST ALL THE DAY LONG, AND PRAISE THY NAME FOR EVER. SELAH.M# 9 BUT THOU HAST CAST OFF, AND PUT US TO SHAME; AND GOEST NOT FORTH WITH OURF ARMIES.M# 10 THOU MAKEST US TO TURN BACK FROM THE ENEMY: AND THEY WHICH HATE US SPOILG FOR THEMSELVES.L# 11 THOU HAST GIVEN US LIKE SHEEP APPOINTED FOR MEAT; AND HAST SCATTERED US AMONG THE HEATHEN. L# 12 THOU SELLEST THY PEOPLE FOR NOUGHT, AND DOST NOT INCREASE THY WEALTH BY THEIR PRICE.UK# 13 THOU MAKEST US A REPROACH TO OUR NEIGHBOURS, A SCORN AND A DERISION TOL THEM THAT ARE ROUND ABOUT US.K# 14 THOU MAKEST US A BYWORD AMONG THE HEATHEN, A SHAKING OF THE HEAD AMONGE THE PEOPLE.I# 15 MY CONFUSION IS CONTINUALLY BEFORE ME, AND THE SHAME OF MY FACE HATHE COVERED ME,L# 16 FOR THE VOICE OF HIM THAT REPROACHETH AND BLASPHEMETH; BY REASON OF THE ENEMY AND AVENGER.EK# 17 ALL THIS IS COME UPON US; YET HAVE WE NOT FORGOTTEN THEE, NEITHER HAVE " WE DEALT FALSELY IN THY COVENANT.K# 18 OUR HEART IS NOT TURNED BACK, NEITHER HAVE OUR STEPS DECLINED FROM THYI WAY;L# 19 THOUGH THOU HAST SORE BROKEN US IN THE PLACE OF DRAGONS, AND COVERED US WITH THE SHADOW OF DEATH.L# 20 IF WE HAVE FORGOTTEN THE NAME OF OUR GOD, OR STRETCHED OUT OUR HANDS TO A STRANGE GOD;CL# 21 SHALL NOT GOD SEARCH THIS OUT? FOR HE KNOWETH THE SECRETS OF THE HEART.H# 22 YEA, FOR THY SAKE ARE WE KILLED ALL THE DAY LONG; WE ARE COUNTED AS SHEEP FOR THE SLAUGHTER.HG# 23 AWAKE, WHY SLEEPEST THOU, O LORD? ARISE, CAST US NOT OFF FOR EVER.DJ# 24 WHEREFORE HIDEST THOU THY FACE, AND FORGETTEST OUR AFFLICTION AND OUR OPPRESSION?H# 25 FOR OUR SOUL IS BOWED DOWN TO THE DUST: OUR BELLY CLEAVETH UNTO THE EARTH.E<# 26 ARISE FOR OUR HELP, AND REDEEM US FOR THY MERCIES SAKE. = CHAPTER 45 EJ# 1 MY HEART IS INDITING A GOOD MATTER: I SPEAK OF THE THINGS WHICH I HAVE@ MADE TOUCHING THE KING: MY TONGUE IS THE PEN OF A READY WRITER.L# 2 THOU ART FAIRER THAN THE CHILDREN OF MEN: GRACE IS POURED INTO THY LIPS:* THEREFORE GOD HATH BLESSED THEE FOR EVER.H# 3 GIRD THY SWORD UPON THY THIGH, O MOST MIGHTY, WITH THY GLORY AND THY MAJESTY.?J# 4 AND IN THY MAJESTY RIDE PROSPEROUSLY BECAUSE OF TRUTH AND MEEKNESS ANDD RIGHTEOUSNESS; AND THY RIGHT HAND SHALL TEACH THEE TERRIBLE THINGS.I# 5 THINE ARROWS ARE SHARP IN THE HEART OF THE KINGS ENEMIES; WHEREBY THEI PEOPLE FALL UNDER THEE.L# 6 THY THRONE, O GOD, IS FOR EVER AND EVER: THE SCEPTRE OF THY KINGDOM IS A RIGHT SCEPTRE. M# 7 THOU LOVEST RIGHTEOUSNESS, AND HATEST WICKEDNESS: THEREFORE GOD, THY GOD,E? HATH ANOINTED THEE WITH THE OIL OF GLADNESS ABOVE THY FELLOWS.OL# 8 ALL THY GARMENTS SMELL OF MYRRH, AND ALOES, AND CASSIA, OUT OF THE IVORY+ PALACES, WHEREBY THEY HAVE MADE THEE GLAD. L# 9 KINGS DAUGHTERS WERE AMONG THY HONOURABLE 00q6-6<%X>%+%O-%TADATADATAWOMEN: UPON THY RIGHT HAND DID" STAND THE QUEEN IN GOLD OF OPHIR.J# 10 HEARKEN, O DAUGHTER, AND CONSIDER, AND INCLINE THINE EAR; FORGET ALSO) THINE OWN PEOPLE, AND THY FATHERS HOUSE;SI# 11 SO SHALL THE KING GREATLY DESIRE THY BEAUTY: FOR HE IS THY LORD; ANDO WORSHIP THOU HIM.M# 12 AND THE DAUGHTER OF TYRE SHALL BE THERE WITH A GIFT; EVEN THE RICH AMONGS% THE PEOPLE SHALL INTREAT THY FAVOUR. J# 13 THE KINGS DAUGHTER IS ALL GLORIOUS WITHIN: HER CLOTHING IS OF WROUGHT GOLD.M# 14 SHE SHALL BE BROUGHT UNTO THE KING IN RAIMENT OF NEEDLEWORK: THE VIRGINSO; HER COMPANIONS THAT FOLLOW HER SHALL BE BROUGHT UNTO THEE.LM# 15 WITH GLADNESS AND REJOICING SHALL THEY BE BROUGHT: THEY SHALL ENTER INTO  THE KINGS PALACE.H# 16 INSTEAD OF THY FATHERS SHALL BE THY CHILDREN, WHOM THOU MAYEST MAKE PRINCES IN ALL THE EARTH.H# 17 I WILL MAKE THY NAME TO BE REMEMBERED IN ALL GENERATIONS: THEREFORE0 SHALL THE PEOPLE PRAISE THEE FOR EVER AND EVER. = CHAPTER 46 LC# 1 GOD IS OUR REFUGE AND STRENGTH, A VERY PRESENT HELP IN TROUBLE. K# 2 THEREFORE WILL NOT WE FEAR, THOUGH THE EARTH BE REMOVED, AND THOUGH THE 0 MOUNTAINS BE CARRIED INTO THE MIDST OF THE SEA;H# 3 THOUGH THE WATERS THEREOF ROAR AND BE TROUBLED, THOUGH THE MOUNTAINS( SHAKE WITH THE SWELLING THEREOF. SELAH.J# 4 THERE IS A RIVER, THE STREAMS WHEREOF SHALL MAKE GLAD THE CITY OF GOD,4 THE HOLY PLACE OF THE TABERNACLES OF THE MOST HIGH.K# 5 GOD IS IN THE MIDST OF HER; SHE SHALL NOT BE MOVED: GOD SHALL HELP HER,  AND THAT RIGHT EARLY.I# 6 THE HEATHEN RAGED, THE KINGDOMS WERE MOVED: HE UTTERED HIS VOICE, THEH EARTH MELTED.H# 7 THE LORD OF HOSTS IS WITH US; THE GOD OF JACOB IS OUR REFUGE. SELAH.L# 8 COME, BEHOLD THE WORKS OF THE LORD, WHAT DESOLATIONS HE HATH MADE IN THE EARTH.HK# 9 HE MAKETH WARS TO CEASE UNTO THE END OF THE EARTH; HE BREAKETH THE BOW,AE AND CUTTETH THE SPEAR IN SUNDER; HE BURNETH THE CHARIOT IN THE FIRE.TM# 10 BE STILL, AND KNOW THAT I AM GOD: I WILL BE EXALTED AMONG THE HEATHEN, IH WILL BE EXALTED IN THE EARTH.I# 11 THE LORD OF HOSTS IS WITH US; THE GOD OF JACOB IS OUR REFUGE. SELAH.E = CHAPTER 47 F# 1 O CLAP YOUR HANDS, ALL YE PEOPLE; SHOUT UNTO GOD WITH THE VOICE OF TRIUMPH.EG# 2 FOR THE LORD MOST HIGH IS TERRIBLE; HE IS A GREAT KING OVER ALL THEH EARTH.MH# 3 HE SHALL SUBDUE THE PEOPLE UNDER US, AND THE NATIONS UNDER OUR FEET.K# 4 HE SHALL CHOOSE OUR INHERITANCE FOR US, THE EXCELLENCY OF JACOB WHOM HET LOVED. SELAH.F# 5 GOD IS GONE UP WITH A SHOUT, THE LORD WITH THE SOUND OF A TRUMPET.G# 6 SING PRAISES TO GOD, SING PRAISES: SING PRAISES UNTO OUR KING, SINGR PRAISES.HM# 7 FOR GOD IS THE KING OF ALL THE EARTH: SING YE PRAISES WITH UNDERSTANDING.HE# 8 GOD REIGNETH OVER THE HEATHEN: GOD SITTETH UPON THE THRONE OF HIS HOLINESS.K# 9 THE PRINCES OF THE PEOPLE ARE GATHERED TOGETHER, EVEN THE PEOPLE OF THEOL GOD OF ABRAHAM: FOR THE SHIELDS OF THE EARTH BELONG UNTO GOD: HE IS GREATLY EXALTED.H = CHAPTER 48 K# 1 GREAT IS THE LORD, AND GREATLY TO BE PRAISED IN THE CITY OF OUR GOD, IN. THE MOUNTAIN OF HIS HOLINESS.J# 2 BEAUTIFUL FOR SITUATION, THE JOY OF THE WHOLE EARTH, IS MOUNT ZION, ON4 THE SIDES OF THE NORTH, THE CITY OF THE GREAT KING.-# 3 GOD IS KNOWN IN HER PALACES FOR A REFUGE.T?# 4 FOR, LO, THE KINGS WERE ASSEMBLED, THEY PASSED BY TOGETHER.PL# 5 THEY SAW IT, AND SO THEY MARVELLED; THEY WERE TROUBLED, AND HASTED AWAY.G# 6 FEAR TOOK HOLD UPON THEM THERE, AND PAIN, AS OF A WOMAN IN TRAVAIL.E:# 7 THOU BREAKEST THE SHIPS OF TARSHISH WITH AN EAST WIND.J# 8 AS WE HAVE HEARD, SO HAVE WE SEEN IN THE CITY OF THE LORD OF HOSTS, IN< THE CITY OF OUR GOD: GOD WILL ESTABLISH IT FOR EVER. SELAH.M# 9 WE HAVE THOUGHT OF THY LOVINGKINDNESS, O GOD, IN THE MIDST OF THY TEMPLE.EH# 10 ACCORDING TO THY NAME, O GOD, SO IS THY PRAISE UNTO THE ENDS OF THE0 EARTH: THY RIGHT HAND IS FULL OF RIGHTEOUSNESS.K# 11 LET MOUNT ZION REJOICE, LET THE DAUGHTERS OF JUDAH BE GLAD, BECAUSE OF  THY JUDGMENTS.AF# 12 WALK ABOUT ZION, AND GO ROUND ABOUT HER: TELL THE TOWERS THEREOF.L# 13 MARK YE WELL HER BULWARKS, CONSIDER HER PALACES00q6b5D%5%T6%! !; THAT YE MAY TELL IT TO THE GENERATION FOLLOWING.I# 14 FOR THIS GOD IS OUR GOD FOR EVER AND EVER: HE WILL BE OUR GUIDE EVENS UNTO DEATH. = CHAPTER 49 H# 1 HEAR THIS, ALL YE PEOPLE; GIVE EAR, ALL YE INHABITANTS OF THE WORLD:/# 2 BOTH LOW AND HIGH, RICH AND POOR, TOGETHER.EK# 3 MY MOUTH SHALL SPEAK OF WISDOM; AND THE MEDITATION OF MY HEART SHALL BEC OF UNDERSTANDING.M# 4 I WILL INCLINE MINE EAR TO A PARABLE: I WILL OPEN MY DARK SAYING UPON THE HARP.H# 5 WHEREFORE SHOULD I FEAR IN THE DAYS OF EVIL, WHEN THE INIQUITY OF MY HEELS SHALL COMPASS ME ABOUT?M# 6 THEY THAT TRUST IN THEIR WEALTH, AND BOAST THEMSELVES IN THE MULTITUDE OF. THEIR RICHES;G# 7 NONE OF THEM CAN BY ANY MEANS REDEEM HIS BROTHER, NOR GIVE TO GOD A: RANSOM FOR HIM:L# 8 (FOR THE REDEMPTION OF THEIR SOUL IS PRECIOUS, AND IT CEASETH FOR EVER:)?# 9 THAT HE SHOULD STILL LIVE FOR EVER, AND NOT SEE CORRUPTION.IM# 10 FOR HE SEETH THAT WISE MEN DIE, LIKEWISE THE FOOL AND THE BRUTISH PERSON * PERISH, AND LEAVE THEIR WEALTH TO OTHERS.L# 11 THEIR INWARD THOUGHT IS, THAT THEIR HOUSES SHALL CONTINUE FOR EVER, ANDL THEIR DWELLING PLACES TO ALL GENERATIONS; THEY CALL THEIR LANDS AFTER THEIR OWN NAMES.MM# 12 NEVERTHELESS MAN BEING IN HONOUR ABIDETH NOT: HE IS LIKE THE BEASTS THAT  PERISH.E# 13 THIS THEIR WAY IS THEIR FOLLY: YET THEIR POSTERITY APPROVE THEIRT SAYINGS. SELAH.M# 14 LIKE SHEEP THEY ARE LAID IN THE GRAVE; DEATH SHALL FEED ON THEM; AND THEKM UPRIGHT SHALL HAVE DOMINION OVER THEM IN THE MORNING; AND THEIR BEAUTY SHALLR* CONSUME IN THE GRAVE FROM THEIR DWELLING.J# 15 BUT GOD WILL REDEEM MY SOUL FROM THE POWER OF THE GRAVE: FOR HE SHALL RECEIVE ME. SELAH.LM# 16 BE NOT THOU AFRAID WHEN ONE IS MADE RICH, WHEN THE GLORY OF HIS HOUSE ISO INCREASED; G# 17 FOR WHEN HE DIETH HE SHALL CARRY NOTHING AWAY: HIS GLORY SHALL NOT  DESCEND AFTER HIM.II# 18 THOUGH WHILE HE LIVED HE BLESSED HIS SOUL: AND MEN WILL PRAISE THEE,L! WHEN THOU DOEST WELL TO THYSELF.SG# 19 HE SHALL GO TO THE GENERATION OF HIS FATHERS; THEY SHALL NEVER SEEN LIGHT.HJ# 20 MAN THAT IS IN HONOUR, AND UNDERSTANDETH NOT, IS LIKE THE BEASTS THAT PERISH. = CHAPTER 50 AM# 1 THE MIGHTY GOD, EVEN THE LORD, HATH SPOKEN, AND CALLED THE EARTH FROM THEH/ RISING OF THE SUN UNTO THE GOING DOWN THEREOF.W;# 2 OUT OF ZION, THE PERFECTION OF BEAUTY, GOD HATH SHINED. G# 3 OUR GOD SHALL COME, AND SHALL NOT KEEP SILENCE: A FIRE SHALL DEVOURN> BEFORE HIM, AND IT SHALL BE VERY TEMPESTUOUS ROUND ABOUT HIM.J# 4 HE SHALL CALL TO THE HEAVENS FROM ABOVE, AND TO THE EARTH, THAT HE MAY JUDGE HIS PEOPLE.K# 5 GATHER MY SAINTS TOGETHER UNTO ME; THOSE THAT HAVE MADE A COVENANT WITHP ME BY SACRIFICE.IE# 6 AND THE HEAVENS SHALL DECLARE HIS RIGHTEOUSNESS: FOR GOD IS JUDGER HIMSELF. SELAH.M# 7 HEAR, O MY PEOPLE, AND I WILL SPEAK; O ISRAEL, AND I WILL TESTIFY AGAINSTT THEE: I AM GOD, EVEN THY GOD.I# 8 I WILL NOT REPROVE THEE FOR THY SACRIFICES OR THY BURNT OFFERINGS, TOH! HAVE BEEN CONTINUALLY BEFORE ME. K# 9 I WILL TAKE NO BULLOCK OUT OF THY HOUSE, NOR HE GOATS OUT OF THY FOLDS.MJ# 10 FOR EVERY BEAST OF THE FOREST IS MINE, AND THE CATTLE UPON A THOUSAND HILLS. L# 11 I KNOW ALL THE FOWLS OF THE MOUNTAINS: AND THE WILD BEASTS OF THE FIELD ARE MINE.L# 12 IF I WERE HUNGRY, I WOULD NOT TELL THEE: FOR THE WORLD IS MINE, AND THE FULNESS THEREOF. @# 13 WILL I EAT THE FLESH OF BULLS, OR DRINK THE BLOOD OF GOATS?F# 14 OFFER UNTO GOD THANKSGIVING; AND PAY THY VOWS UNTO THE MOST HIGH:J# 15 AND CALL UPON ME IN THE DAY OF TROUBLE: I WILL DELIVER THEE, AND THOU SHALT GLORIFY ME.F# 16 BUT UNTO THE WICKED GOD SAITH, WHAT HAST THOU TO DO TO DECLARE MY@ STATUTES, OR THAT THOU SHOULDEST TAKE MY COVENANT IN THY MOUTH?F# 17 SEEING THOU HATEST INSTRUCTION, AND CASTETH MY WORDS BEHIND THEE.L# 18 WHEN THOU SAWEST A THIEF, THEN THOU CONSENTEDST WITH HIM, AND HAST BEEN PARTAKER WITH ADULTERERS.B# 19 THOU GIVEST THY MOUTH TO EVIL, AND THY TONGUE FRAMETH DECEIT.M# 20 THOU SITTEST AND SPEAKEST AGAINST THY BROTHER; THOU SLANDEREST THINE OWNI MOTHERS SON.HL# 21 THESE THINGS HA00q6-6<%X>%+%O-%TADATADATAST THOU DONE, AND I KEPT SILENCE; THOU THOUGHTEST THAT IM WAS ALTOGETHER SUCH AN ONE AS THYSELF: BUT I WILL REPROVE THEE, AND SET THEMI IN ORDER BEFORE THINE EYES.J# 22 NOW CONSIDER THIS, YE THAT FORGET GOD, LEST I TEAR YOU IN PIECES, AND THERE BE NONE TO DELIVER.F# 23 WHOSO OFFERETH PRAISE GLORIFIETH ME: AND TO HIM THAT ORDERETH HIS6 CONVERSATION ARIGHT WILL I SHEW THE SALVATION OF GOD. = CHAPTER 51 N# 1 HAVE MERCY UPON ME, O GOD, ACCORDING TO THY LOVINGKINDNESS: ACCORDING UNTO@ THE MULTITUDE OF THY TENDER MERCIES BLOT OUT MY TRANSGRESSIONS.E# 2 WASH ME THROUGHLY FROM MINE INIQUITY, AND CLEANSE ME FROM MY SIN.EF# 3 FOR I ACKNOWLEDGE MY TRANSGRESSIONS: AND MY SIN IS EVER BEFORE ME.L# 4 AGAINST THEE, THEE ONLY, HAVE I SINNED, AND DONE THIS EVIL IN THY SIGHT:K THAT THOU MIGHTEST BE JUSTIFIED WHEN THOU SPEAKEST, AND BE CLEAR WHEN THOUN JUDGEST.RK# 5 BEHOLD, I WAS SHAPEN IN INIQUITY; AND IN SIN DID MY MOTHER CONCEIVE ME.EK# 6 BEHOLD, THOU DESIREST TRUTH IN THE INWARD PARTS: AND IN THE HIDDEN PARTH# THOU SHALT MAKE ME TO KNOW WISDOM.SG# 7 PURGE ME WITH HYSSOP, AND I SHALL BE CLEAN: WASH ME, AND I SHALL BES WHITER THAN SNOW.K# 8 MAKE ME TO HEAR JOY AND GLADNESS; THAT THE BONES WHICH THOU HAST BROKENH MAY REJOICE. A# 9 HIDE THY FACE FROM MY SINS, AND BLOT OUT ALL MINE INIQUITIES.SK# 10 CREATE IN ME A CLEAN HEART, O GOD; AND RENEW A RIGHT SPIRIT WITHIN ME. J# 11 CAST ME NOT AWAY FROM THY PRESENCE; AND TAKE NOT THY HOLY SPIRIT FROM ME.J# 12 RESTORE UNTO ME THE JOY OF THY SALVATION; AND UPHOLD ME WITH THY FREE SPIRIT.M# 13 THEN WILL I TEACH TRANSGRESSORS THY WAYS; AND SINNERS SHALL BE CONVERTEDL UNTO THEE. M# 14 DELIVER ME FROM BLOODGUILTINESS, O GOD, THOU GOD OF MY SALVATION: AND MYT. TONGUE SHALL SING ALOUD OF THY RIGHTEOUSNESS.I# 15 O LORD, OPEN THOU MY LIPS; AND MY MOUTH SHALL SHEW FORTH THY PRAISE.RK# 16 FOR THOU DESIREST NOT SACRIFICE; ELSE WOULD I GIVE IT: THOU DELIGHTESTY NOT IN BURNT OFFERING.HG# 17 THE SACRIFICES OF GOD ARE A BROKEN SPIRIT: A BROKEN AND A CONTRITEA% HEART, O GOD, THOU WILT NOT DESPISE. D# 18 DO GOOD IN THY GOOD PLEASURE UNTO ZION: BUILD THOU THE WALLS OF JERUSALEM. J# 19 THEN SHALT THOU BE PLEASED WITH THE SACRIFICES OF RIGHTEOUSNESS, WITHM BURNT OFFERING AND WHOLE BURNT OFFERING: THEN SHALL THEY OFFER BULLOCKS UPONH THINE ALTAR. = CHAPTER 52 SL# 1 WHY BOASTEST THOU THYSELF IN MISCHIEF, O MIGHTY MAN? THE GOODNESS OF GOD ENDURETH CONTINUALLY.K# 2 THE TONGUE DEVISETH MISCHIEFS; LIKE A SHARP RAZOR, WORKING DECEITFULLY.RC# 3 THOU LOVEST EVIL MORE THAN GOOD; AND LYING RATHER THAN TO SPEAK  RIGHTEOUSNESS. SELAH.=# 4 THOU LOVEST ALL DEVOURING WORDS, O THOU DECEITFUL TONGUE.HJ# 5 GOD SHALL LIKEWISE DESTROY THEE FOR EVER, HE SHALL TAKE THEE AWAY, ANDK PLUCK THEE OUT OF THY DWELLING PLACE, AND ROOT THEE OUT OF THE LAND OF THET LIVING. SELAH.2C# 6 THE RIGHTEOUS ALSO SHALL SEE, AND FEAR, AND SHALL LAUGH AT HIM:NJ# 7 LO, THIS IS THE MAN THAT MADE NOT GOD HIS STRENGTH; BUT TRUSTED IN THEE ABUNDANCE OF HIS RICHES, AND STRENGTHENED HIMSELF IN HIS WICKEDNESS.OH# 8 BUT I AM LIKE A GREEN OLIVE TREE IN THE HOUSE OF GOD: I TRUST IN THE MERCY OF GOD FOR EVER AND EVER.K# 9 I WILL PRAISE THEE FOR EVER, BECAUSE THOU HAST DONE IT: AND I WILL WAITH/ ON THY NAME; FOR IT IS GOOD BEFORE THY SAINTS.C = CHAPTER 53 EK# 1 THE FOOL HATH SAID IN HIS HEART, THERE IS NO GOD. CORRUPT ARE THEY, AND > HAVE DONE ABOMINABLE INIQUITY: THERE IS NONE THAT DOETH GOOD.I# 2 GOD LOOKED DOWN FROM HEAVEN UPON THE CHILDREN OF MEN, TO SEE IF THEREN1 WERE ANY THAT DID UNDERSTAND, THAT DID SEEK GOD. L# 3 EVERY ONE OF THEM IS GONE BACK: THEY ARE ALTOGETHER BECOME FILTHY; THERE& IS NONE THAT DOETH GOOD, NO, NOT ONE.K# 4 HAVE THE WORKERS OF INIQUITY NO KNOWLEDGE? WHO EAT UP MY PEOPLE AS THEY * EAT BREAD: THEY HAVE NOT CALLED UPON GOD.L# 5 THERE WERE THEY IN GREAT FEAR, WHERE NO FEAR WAS: FOR GOD HATH SCATTEREDK THE BONES OF HIM THAT ENCAMPETH AGAINST THEE: THOU HAST PUT THEM TO SHAME,O BECAUSE GOD HATH DESPISED THEM.L# 6 OH THAT THE SALVATION OF ISRAEL WERE COME OUT OF ZION!00q6b5D%5%T6%! ! WHEN GOD BRINGETHK BACK THE CAPTIVITY OF HIS PEOPLE, JACOB SHALL REJOICE, AND ISRAEL SHALL BET GLAD. = CHAPTER 54 T># 1 SAVE ME, O GOD, BY THY NAME, AND JUDGE ME BY THY STRENGTH.=# 2 HEAR MY PRAYER, O GOD; GIVE EAR TO THE WORDS OF MY MOUTH.AM# 3 FOR STRANGERS ARE RISEN UP AGAINST ME, AND OPPRESSORS SEEK AFTER MY SOUL:A* THEY HAVE NOT SET GOD BEFORE THEM. SELAH.J# 4 BEHOLD, GOD IS MINE HELPER: THE LORD IS WITH THEM THAT UPHOLD MY SOUL.F# 5 HE SHALL REWARD EVIL UNTO MINE ENEMIES: CUT THEM OFF IN THY TRUTH.M# 6 I WILL FREELY SACRIFICE UNTO THEE: I WILL PRAISE THY NAME, O LORD; FOR ITS IS GOOD.GK# 7 FOR HE HATH DELIVERED ME OUT OF ALL TROUBLE: AND MINE EYE HATH SEEN HISR DESIRE UPON MINE ENEMIES. = CHAPTER 55 L# 1 GIVE EAR TO MY PRAYER, O GOD; AND HIDE NOT THYSELF FROM MY SUPPLICATION.K# 2 ATTEND UNTO ME, AND HEAR ME: I MOURN IN MY COMPLAINT, AND MAKE A NOISE; G# 3 BECAUSE OF THE VOICE OF THE ENEMY, BECAUSE OF THE OPPRESSION OF THE C WICKED: FOR THEY CAST INIQUITY UPON ME, AND IN WRATH THEY HATE ME.J# 4 MY HEART IS SORE PAINED WITHIN ME: AND THE TERRORS OF DEATH ARE FALLEN UPON ME.DK# 5 FEARFULNESS AND TREMBLING ARE COME UPON ME, AND HORROR HATH OVERWHELMEDI ME.K# 6 AND I SAID, OH THAT I HAD WINGS LIKE A DOVE! FOR THEN WOULD I FLY AWAY,N AND BE AT REST.I# 7 LO, THEN WOULD I WANDER FAR OFF, AND REMAIN IN THE WILDERNESS. SELAH.L># 8 I WOULD HASTEN MY ESCAPE FROM THE WINDY STORM AND TEMPEST.K# 9 DESTROY, O LORD, AND DIVIDE THEIR TONGUES: FOR I HAVE SEEN VIOLENCE ANDA STRIFE IN THE CITY.M# 10 DAY AND NIGHT THEY GO ABOUT IT UPON THE WALLS THEREOF: MISCHIEF ALSO ANDN SORROW ARE IN THE MIDST OF IT. M# 11 WICKEDNESS IS IN THE MIDST THEREOF: DECEIT AND GUILE DEPART NOT FROM HER STREETS.AL# 12 FOR IT WAS NOT AN ENEMY THAT REPROACHED ME; THEN I COULD HAVE BORNE IT:L NEITHER WAS IT HE THAT HATED ME THAT DID MAGNIFY HIMSELF AGAINST ME; THEN I WOULD HAVE HID MYSELF FROM HIM:H# 13 BUT IT WAS THOU, A MAN MINE EQUAL, MY GUIDE, AND MINE ACQUAINTANCE.H# 14 WE TOOK SWEET COUNSEL TOGETHER, AND WALKED UNTO THE HOUSE OF GOD IN COMPANY.TI# 15 LET DEATH SEIZE UPON THEM, AND LET THEM GO DOWN QUICK INTO HELL: FOR12 WICKEDNESS IS IN THEIR DWELLINGS, AND AMONG THEM.A# 16 AS FOR ME, I WILL CALL UPON GOD; AND THE LORD SHALL SAVE ME.AJ# 17 EVENING, AND MORNING, AND AT NOON, WILL I PRAY, AND CRY ALOUD: AND HE SHALL HEAR MY VOICE.SL# 18 HE HATH DELIVERED MY SOUL IN PEACE FROM THE BATTLE THAT WAS AGAINST ME: FOR THERE WERE MANY WITH ME.NJ# 19 GOD SHALL HEAR, AND AFFLICT THEM, EVEN HE THAT ABIDETH OF OLD. SELAH.; BECAUSE THEY HAVE NO CHANGES, THEREFORE THEY FEAR NOT GOD.MI# 20 HE HATH PUT FORTH HIS HANDS AGAINST SUCH AS BE AT PEACE WITH HIM: HEI HATH BROKEN HIS COVENANT.I# 21 THE WORDS OF HIS MOUTH WERE SMOOTHER THAN BUTTER, BUT WAR WAS IN HIS C HEART: HIS WORDS WERE SOFTER THAN OIL, YET WERE THEY DRAWN SWORDS.HM# 22 CAST THY BURDEN UPON THE LORD, AND HE SHALL SUSTAIN THEE: HE SHALL NEVERS" SUFFER THE RIGHTEOUS TO BE MOVED.H# 23 BUT THOU, O GOD, SHALT BRING THEM DOWN INTO THE PIT OF DESTRUCTION:N BLOODY AND DECEITFUL MEN SHALL NOT LIVE OUT HALF THEIR DAYS; BUT I WILL TRUST IN THEE.F = CHAPTER 56 AN# 1 BE MERCIFUL UNTO ME, O GOD: FOR MAN WOULD SWALLOW ME UP; HE FIGHTING DAILY OPPRESSETH ME. G# 2 MINE ENEMIES WOULD DAILY SWALLOW ME UP: FOR THEY BE MANY THAT FIGHTF AGAINST ME, O THOU MOST HIGH.0# 3 WHAT TIME I AM AFRAID, I WILL TRUST IN THEE.I# 4 IN GOD I WILL PRAISE HIS WORD, IN GOD I HAVE PUT MY TRUST; I WILL NOT. FEAR WHAT FLESH CAN DO UNTO ME.H# 5 EVERY DAY THEY WREST MY WORDS: ALL THEIR THOUGHTS ARE AGAINST ME FOR EVIL.G# 6 THEY GATHER THEMSELVES TOGETHER, THEY HIDE THEMSELVES, THEY MARK MYE# STEPS, WHEN THEY WAIT FOR MY SOUL.LI# 7 SHALL THEY ESCAPE BY INIQUITY? IN THINE ANGER CAST DOWN THE PEOPLE, OD GOD.SK# 8 THOU TELLEST MY WANDERINGS: PUT THOU MY TEARS INTO THY BOTTLE: ARE THEY  NOT IN THY BOOK?RM# 9 WHEN I CRY UNTO THEE, THEN SHALL MINE ENEMIES TURN BACK: THIS I KNOW; FORT GOD IS FOR ME. G# 10 IN GOD WILL I PRAISE HIS WORD: IN THE LORD WILL I PRAISE HIS 00q6-6<%X>%+%O-%TADATADATAWORD.:J# 11 IN GOD HAVE I PUT MY TRUST: I WILL NOT BE AFRAID WHAT MAN CAN DO UNTO ME.B# 12 THY VOWS ARE UPON ME, O GOD: I WILL RENDER PRAISES UNTO THEE.I# 13 FOR THOU HAST DELIVERED MY SOUL FROM DEATH: WILT NOT THOU DELIVER MYEJ FEET FROM FALLING, THAT I MAY WALK BEFORE GOD IN THE LIGHT OF THE LIVING? = CHAPTER 57 EL# 1 BE MERCIFUL UNTO ME, O GOD, BE MERCIFUL UNTO ME: FOR MY SOUL TRUSTETH INI THEE: YEA, IN THE SHADOW OF THY WINGS WILL I MAKE MY REFUGE, UNTIL THESEO CALAMITIES BE OVERPAST.J# 2 I WILL CRY UNTO GOD MOST HIGH; UNTO GOD THAT PERFORMETH ALL THINGS FOR ME.H# 3 HE SHALL SEND FROM HEAVEN, AND SAVE ME FROM THE REPROACH OF HIM THATJ WOULD SWALLOW ME UP. SELAH. GOD SHALL SEND FORTH HIS MERCY AND HIS TRUTH.K# 4 MY SOUL IS AMONG LIONS: AND I LIE EVEN AMONG THEM THAT ARE SET ON FIRE,LL EVEN THE SONS OF MEN, WHOSE TEETH ARE SPEARS AND ARROWS, AND THEIR TONGUE A SHARP SWORD.TM# 5 BE THOU EXALTED, O GOD, ABOVE THE HEAVENS; LET THY GLORY BE ABOVE ALL THES EARTH.MK# 6 THEY HAVE PREPARED A NET FOR MY STEPS; MY SOUL IS BOWED DOWN: THEY HAVETK DIGGED A PIT BEFORE ME, INTO THE MIDST WHEREOF THEY ARE FALLEN THEMSELVES.E SELAH. M# 7 MY HEART IS FIXED, O GOD, MY HEART IS FIXED: I WILL SING AND GIVE PRAISE.RL# 8 AWAKE UP, MY GLORY; AWAKE, PSALTERY AND HARP: I MYSELF WILL AWAKE EARLY.M# 9 I WILL PRAISE THEE, O LORD, AMONG THE PEOPLE: I WILL SING UNTO THEE AMONGE THE NATIONS.DL# 10 FOR THY MERCY IS GREAT UNTO THE HEAVENS, AND THY TRUTH UNTO THE CLOUDS.J# 11 BE THOU EXALTED, O GOD, ABOVE THE HEAVENS: LET THY GLORY BE ABOVE ALL THE EARTH.V = CHAPTER 58 IN# 1 DO YE INDEED SPEAK RIGHTEOUSNESS, O CONGREGATION? DO YE JUDGE UPRIGHTLY, O YE SONS OF MEN?L# 2 YEA, IN HEART YE WORK WICKEDNESS; YE WEIGH THE VIOLENCE OF YOUR HANDS IN THE EARTH.AM# 3 THE WICKED ARE ESTRANGED FROM THE WOMB: THEY GO ASTRAY AS SOON AS THEY BEN BORN, SPEAKING LIES.NH# 4 THEIR POISON IS LIKE THE POISON OF A SERPENT: THEY ARE LIKE THE DEAF ADDER THAT STOPPETH HER EAR;CF# 5 WHICH WILL NOT HEARKEN TO THE VOICE OF CHARMERS, CHARMING NEVER SO WISELY.J# 6 BREAK THEIR TEETH, O GOD, IN THEIR MOUTH: BREAK OUT THE GREAT TEETH OF THE YOUNG LIONS, O LORD.HK# 7 LET THEM MELT AWAY AS WATERS WHICH RUN CONTINUALLY: WHEN HE BENDETH HISV7 BOW TO SHOOT HIS ARROWS, LET THEM BE AS CUT IN PIECES.EG# 8 AS A SNAIL WHICH MELTETH, LET EVERY ONE OF THEM PASS AWAY: LIKE THEK: UNTIMELY BIRTH OF A WOMAN, THAT THEY MAY NOT SEE THE SUN.K# 9 BEFORE YOUR POTS CAN FEEL THE THORNS, HE SHALL TAKE THEM AWAY AS WITH AH* WHIRLWIND, BOTH LIVING, AND IN HIS WRATH.K# 10 THE RIGHTEOUS SHALL REJOICE WHEN HE SEETH THE VENGEANCE: HE SHALL WASH % HIS FEET IN THE BLOOD OF THE WICKED.DI# 11 SO THAT A MAN SHALL SAY, VERILY THERE IS A REWARD FOR THE RIGHTEOUS: . VERILY HE IS A GOD THAT JUDGETH IN THE EARTH. = CHAPTER 59 L# 1 DELIVER ME FROM MINE ENEMIES, O MY GOD: DEFEND ME FROM THEM THAT RISE UP AGAINST ME.I# 2 DELIVER ME FROM THE WORKERS OF INIQUITY, AND SAVE ME FROM BLOODY MEN. J# 3 FOR, LO, THEY LIE IN WAIT FOR MY SOUL: THE MIGHTY ARE GATHERED AGAINST6 ME; NOT FOR MY TRANSGRESSION, NOR FOR MY SIN, O LORD.K# 4 THEY RUN AND PREPARE THEMSELVES WITHOUT MY FAULT: AWAKE TO HELP ME, AND1 BEHOLD.J# 5 THOU THEREFORE, O LORD GOD OF HOSTS, THE GOD OF ISRAEL, AWAKE TO VISITE ALL THE HEATHEN: BE NOT MERCIFUL TO ANY WICKED TRANSGRESSORS. SELAH.IL# 6 THEY RETURN AT EVENING: THEY MAKE A NOISE LIKE A DOG, AND GO ROUND ABOUT THE CITY.J# 7 BEHOLD, THEY BELCH OUT WITH THEIR MOUTH: SWORDS ARE IN THEIR LIPS: FOR WHO, SAY THEY, DOTH HEAR?M# 8 BUT THOU, O LORD, SHALT LAUGH AT THEM; THOU SHALT HAVE ALL THE HEATHEN INR DERISION.I# 9 BECAUSE OF HIS STRENGTH WILL I WAIT UPON THEE: FOR GOD IS MY DEFENCE.LI# 10 THE GOD OF MY MERCY SHALL PREVENT ME: GOD SHALL LET ME SEE MY DESIRES UPON MINE ENEMIES. I# 11 SLAY THEM NOT, LEST MY PEOPLE FORGET: SCATTER THEM BY THY POWER; ANDE$ BRING THEM DOWN, O LORD OUR SHIELD.L# 12 FOR THE SIN OF THEIR MOUTH AND THE WORDS OF THEIR LIPS LET THEM EVEN BEB TAKEN IN THEIR PRIDE: AND FOR CURSING AND LYING WHICH THEY SPEAK.L00q6b5D%5%T6%! !# 13 CONSUME THEM IN WRATH, CONSUME THEM, THAT THEY MAY NOT BE: AND LET THEMA KNOW THAT GOD RULETH IN JACOB UNTO THE ENDS OF THE EARTH. SELAH.DJ# 14 AND AT EVENING LET THEM RETURN; AND LET THEM MAKE A NOISE LIKE A DOG, AND GO ROUND ABOUT THE CITY.D# 15 LET THEM WANDER UP AND DOWN FOR MEAT, AND GRUDGE IF THEY BE NOT SATISFIED.TM# 16 BUT I WILL SING OF THY POWER; YEA, I WILL SING ALOUD OF THY MERCY IN THETL MORNING: FOR THOU HAST BEEN MY DEFENCE AND REFUGE IN THE DAY OF MY TROUBLE.J# 17 UNTO THEE, O MY STRENGTH, WILL I SING: FOR GOD IS MY DEFENCE, AND THE GOD OF MY MERCY. = CHAPTER 60 RH# 1 O GOD, THOU HAST CAST US OFF, THOU HAST SCATTERED US, THOU HAST BEEN( DISPLEASED; O TURN THYSELF TO US AGAIN.F# 2 THOU HAST MADE THE EARTH TO TREMBLE; THOU HAST BROKEN IT: HEAL THE" BREACHES THEREOF; FOR IT SHAKETH.K# 3 THOU HAST SHEWED THY PEOPLE HARD THINGS: THOU HAST MADE US TO DRINK THE  WINE OF ASTONISHMENT.M# 4 THOU HAST GIVEN A BANNER TO THEM THAT FEAR THEE, THAT IT MAY BE DISPLAYED7 BECAUSE OF THE TRUTH. SELAH. M# 5 THAT THY BELOVED MAY BE DELIVERED; SAVE WITH THY RIGHT HAND, AND HEAR ME. K# 6 GOD HATH SPOKEN IN HIS HOLINESS; I WILL REJOICE, I WILL DIVIDE SHECHEM,A$ AND METE OUT THE VALLEY OF SUCCOTH.I# 7 GILEAD IS MINE, AND MANASSEH IS MINE; EPHRAIM ALSO IS THE STRENGTH OFE! MINE HEAD; JUDAH IS MY LAWGIVER;UM# 8 MOAB IS MY WASHPOT; OVER EDOM WILL I CAST OUT MY SHOE: PHILISTIA, TRIUMPHA THOU BECAUSE OF ME.G# 9 WHO WILL BRING ME INTO THE STRONG CITY? WHO WILL LEAD ME INTO EDOM?BJ# 10 WILT NOT THOU, O GOD, WHICH HADST CAST US OFF? AND THOU, O GOD, WHICH" DIDST NOT GO OUT WITH OUR ARMIES?<# 11 GIVE US HELP FROM TROUBLE: FOR VAIN IS THE HELP OF MAN.J# 12 THROUGH GOD WE SHALL DO VALIANTLY: FOR HE IT IS THAT SHALL TREAD DOWN OUR ENEMIES.E = CHAPTER 61 I.# 1 HEAR MY CRY, O GOD; ATTEND UNTO MY PRAYER.D# 2 FROM THE END OF THE EARTH WILL I CRY UNTO THEE, WHEN MY HEART IS8 OVERWHELMED: LEAD ME TO THE ROCK THAT IS HIGHER THAN I.K# 3 FOR THOU HAST BEEN A SHELTER FOR ME, AND A STRONG TOWER FROM THE ENEMY. J# 4 I WILL ABIDE IN THY TABERNACLE FOR EVER: I WILL TRUST IN THE COVERT OF THY WINGS. SELAH.K# 5 FOR THOU, O GOD, HAST HEARD MY VOWS: THOU HAST GIVEN ME THE HERITAGE OFH THOSE THAT FEAR THY NAME.H# 6 THOU WILT PROLONG THE KINGS LIFE: AND HIS YEARS AS MANY GENERATIONS.L# 7 HE SHALL ABIDE BEFORE GOD FOR EVER: O PREPARE MERCY AND TRUTH, WHICH MAY PRESERVE HIM.M# 8 SO WILL I SING PRAISE UNTO THY NAME FOR EVER, THAT I MAY DAILY PERFORM MYH VOWS. = CHAPTER 62 MA# 1 TRULY MY SOUL WAITETH UPON GOD: FROM HIM COMETH MY SALVATION.EI# 2 HE ONLY IS MY ROCK AND MY SALVATION; HE IS MY DEFENCE; I SHALL NOT BE  GREATLY MOVED. M# 3 HOW LONG WILL YE IMAGINE MISCHIEF AGAINST A MAN? YE SHALL BE SLAIN ALL OF= YOU: AS A BOWING WALL SHALL YE BE, AND AS A TOTTERING FENCE.EK# 4 THEY ONLY CONSULT TO CAST HIM DOWN FROM HIS EXCELLENCY: THEY DELIGHT INWC LIES: THEY BLESS WITH THEIR MOUTH, BUT THEY CURSE INWARDLY. SELAH. E# 5 MY SOUL, WAIT THOU ONLY UPON GOD; FOR MY EXPECTATION IS FROM HIM.YI# 6 HE ONLY IS MY ROCK AND MY SALVATION: HE IS MY DEFENCE; I SHALL NOT BEO MOVED. H# 7 IN GOD IS MY SALVATION AND MY GLORY: THE ROCK OF MY STRENGTH, AND MY REFUGE, IS IN GOD.SM# 8 TRUST IN HIM AT ALL TIMES; YE PEOPLE, POUR OUT YOUR HEART BEFORE HIM: GOD  IS A REFUGE FOR US. SELAH.EM# 9 SURELY MEN OF LOW DEGREE ARE VANITY, AND MEN OF HIGH DEGREE ARE A LIE: TOA BE LAID IN THE BALANCE, THEY ARE ALTOGETHER LIGHTER THAN VANITY. G# 10 TRUST NOT IN OPPRESSION, AND BECOME NOT VAIN IN ROBBERY: IF RICHES( INCREASE, SET NOT YOUR HEART UPON THEM.M# 11 GOD HATH SPOKEN ONCE; TWICE HAVE I HEARD THIS; THAT POWER BELONGETH UNTOL GOD.EM# 12 ALSO UNTO THEE, O LORD, BELONGETH MERCY: FOR THOU RENDEREST TO EVERY MANE ACCORDING TO HIS WORK.U = CHAPTER 63 HI# 1 O GOD, THOU ART MY GOD; EARLY WILL I SEEK THEE: MY SOUL THIRSTETH FORNN THEE, MY FLESH LONGETH FOR THEE IN A DRY AND THIRSTY LAND, WHERE NO WATER IS;L# 2 TO SEE THY POWER AND THY GLORY, SO AS I HAVE SEEN THEE IN THE SANCTUARY.H# 3 BECAUSE THY LOVINGKINDNESS00q6-6<%X>%+%O-%TADATADATA IS BETTER THAN LIFE, MY LIPS SHALL PRAISE THEE.M# 4 THUS WILL I BLESS THEE WHILE I LIVE: I WILL LIFT UP MY HANDS IN THY NAME.2M# 5 MY SOUL SHALL BE SATISFIED AS WITH MARROW AND FATNESS; AND MY MOUTH SHALLC PRAISE THEE WITH JOYFUL LIPS:G# 6 WHEN I REMEMBER THEE UPON MY BED, AND MEDITATE ON THEE IN THE NIGHTT WATCHES.EM# 7 BECAUSE THOU HAST BEEN MY HELP, THEREFORE IN THE SHADOW OF THY WINGS WILL I REJOICE.WC# 8 MY SOUL FOLLOWETH HARD AFTER THEE: THY RIGHT HAND UPHOLDETH ME.SM# 9 BUT THOSE THAT SEEK MY SOUL, TO DESTROY IT, SHALL GO INTO THE LOWER PARTSS OF THE EARTH.E# 10 THEY SHALL FALL BY THE SWORD: THEY SHALL BE A PORTION FOR FOXES.LL# 11 BUT THE KING SHALL REJOICE IN GOD; EVERY ONE THAT SWEARETH BY HIM SHALL? GLORY: BUT THE MOUTH OF THEM THAT SPEAK LIES SHALL BE STOPPED.A = CHAPTER 64 HI# 1 HEAR MY VOICE, O GOD, IN MY PRAYER: PRESERVE MY LIFE FROM FEAR OF THES ENEMY.TK# 2 HIDE ME FROM THE SECRET COUNSEL OF THE WICKED; FROM THE INSURRECTION OFT THE WORKERS OF INIQUITY:UJ# 3 WHO WHET THEIR TONGUE LIKE A SWORD, AND BEND THEIR BOWS TO SHOOT THEIR ARROWS, EVEN BITTER WORDS: K# 4 THAT THEY MAY SHOOT IN SECRET AT THE PERFECT: SUDDENLY DO THEY SHOOT ATL HIM, AND FEAR NOT.RG# 5 THEY ENCOURAGE THEMSELVES IN AN EVIL MATTER: THEY COMMUNE OF LAYINGK. SNARES PRIVILY; THEY SAY, WHO SHALL SEE THEM?K# 6 THEY SEARCH OUT INIQUITIES; THEY ACCOMPLISH A DILIGENT SEARCH: BOTH THET= INWARD THOUGHT OF EVERY ONE OF THEM, AND THE HEART, IS DEEP.NE# 7 BUT GOD SHALL SHOOT AT THEM WITH AN ARROW; SUDDENLY SHALL THEY BEI WOUNDED. M# 8 SO THEY SHALL MAKE THEIR OWN TONGUE TO FALL UPON THEMSELVES: ALL THAT SEE  THEM SHALL FLEE AWAY.M# 9 AND ALL MEN SHALL FEAR, AND SHALL DECLARE THE WORK OF GOD; FOR THEY SHALLE WISELY CONSIDER OF HIS DOING.M# 10 THE RIGHTEOUS SHALL BE GLAD IN THE LORD, AND SHALL TRUST IN HIM; AND ALLY" THE UPRIGHT IN HEART SHALL GLORY. = CHAPTER 65 SK# 1 PRAISE WAITETH FOR THEE, O GOD, IN SION: AND UNTO THEE SHALL THE VOW BEP PERFORMED.O?# 2 O THOU THAT HEAREST PRAYER, UNTO THEE SHALL ALL FLESH COME.UH# 3 INIQUITIES PREVAIL AGAINST ME: AS FOR OUR TRANSGRESSIONS, THOU SHALT PURGE THEM AWAY. M# 4 BLESSED IS THE MAN WHOM THOU CHOOSEST, AND CAUSEST TO APPROACH UNTO THEE,;L THAT HE MAY DWELL IN THY COURTS: WE SHALL BE SATISFIED WITH THE GOODNESS OF$ THY HOUSE, EVEN OF THY HOLY TEMPLE.I# 5 BY TERRIBLE THINGS IN RIGHTEOUSNESS WILT THOU ANSWER US, O GOD OF OUREL SALVATION; WHO ART THE CONFIDENCE OF ALL THE ENDS OF THE EARTH, AND OF THEM THAT ARE AFAR OFF UPON THE SEA:G# 6 WHICH BY HIS STRENGTH SETTETH FAST THE MOUNTAINS; BEING GIRDED WITH  POWER:RK# 7 WHICH STILLETH THE NOISE OF THE SEAS, THE NOISE OF THEIR WAVES, AND THEU TUMULT OF THE PEOPLE.I# 8 THEY ALSO THAT DWELL IN THE UTTERMOST PARTS ARE AFRAID AT THY TOKENS:FA THOU MAKEST THE OUTGOINGS OF THE MORNING AND EVENING TO REJOICE. L# 9 THOU VISITEST THE EARTH, AND WATEREST IT: THOU GREATLY ENRICHEST IT WITHN THE RIVER OF GOD, WHICH IS FULL OF WATER: THOU PREPAREST THEM CORN, WHEN THOU HAST SO PROVIDED FOR IT. K# 10 THOU WATEREST THE RIDGES THEREOF ABUNDANTLY: THOU SETTLEST THE FURROWSRG THEREOF: THOU MAKEST IT SOFT WITH SHOWERS: THOU BLESSEST THE SPRINGINGN THEREOF.MJ# 11 THOU CROWNEST THE YEAR WITH THY GOODNESS; AND THY PATHS DROP FATNESS.H# 12 THEY DROP UPON THE PASTURES OF THE WILDERNESS: AND THE LITTLE HILLS REJOICE ON EVERY SIDE.SL# 13 THE PASTURES ARE CLOTHED WITH FLOCKS; THE VALLEYS ALSO ARE COVERED OVER/ WITH CORN; THEY SHOUT FOR JOY, THEY ALSO SING.M = CHAPTER 66 U/# 1 MAKE A JOYFUL NOISE UNTO GOD, ALL YE LANDS:T@# 2 SING FORTH THE HONOUR OF HIS NAME: MAKE HIS PRAISE GLORIOUS.K# 3 SAY UNTO GOD, HOW TERRIBLE ART THOU IN THY WORKS! THROUGH THE GREATNESS> OF THY POWER SHALL THINE ENEMIES SUBMIT THEMSELVES UNTO THEE.J# 4 ALL THE EARTH SHALL WORSHIP THEE, AND SHALL SING UNTO THEE; THEY SHALL SING TO THY NAME. SELAH. I# 5 COME AND SEE THE WORKS OF GOD: HE IS TERRIBLE IN HIS DOING TOWARD THEE CHILDREN OF MEN.NI# 6 HE TURNED THE SEA INTO DRY LAND: THEY WENT THROUGH THE FLOOD ON FOOT:O THERE DID00q6b5D%5%T6%! ! WE REJOICE IN HIM. M# 7 HE RULETH BY HIS POWER FOR EVER; HIS EYES BEHOLD THE NATIONS: LET NOT THED$ REBELLIOUS EXALT THEMSELVES. SELAH.M# 8 O BLESS OUR GOD, YE PEOPLE, AND MAKE THE VOICE OF HIS PRAISE TO BE HEARD:OK# 9 WHICH HOLDETH OUR SOUL IN LIFE, AND SUFFERETH NOT OUR FEET TO BE MOVED.SM# 10 FOR THOU, O GOD, HAST PROVED US: THOU HAST TRIED US, AS SILVER IS TRIED.IL# 11 THOU BROUGHTEST US INTO THE NET; THOU LAIDST AFFLICTION UPON OUR LOINS.J# 12 THOU HAST CAUSED MEN TO RIDE OVER OUR HEADS; WE WENT THROUGH FIRE AND@ THROUGH WATER: BUT THOU BROUGHTEST US OUT INTO A WEALTHY PLACE.L# 13 I WILL GO INTO THY HOUSE WITH BURNT OFFERINGS: I WILL PAY THEE MY VOWS,H# 14 WHICH MY LIPS HAVE UTTERED, AND MY MOUTH HATH SPOKEN, WHEN I WAS IN TROUBLE.IM# 15 I WILL OFFER UNTO THEE BURNT SACRIFICES OF FATLINGS, WITH THE INCENSE OFO/ RAMS; I WILL OFFER BULLOCKS WITH GOATS. SELAH.I# 16 COME AND HEAR, ALL YE THAT FEAR GOD, AND I WILL DECLARE WHAT HE HATH. DONE FOR MY SOUL.H# 17 I CRIED UNTO HIM WITH MY MOUTH, AND HE WAS EXTOLLED WITH MY TONGUE.A# 18 IF I REGARD INIQUITY IN MY HEART, THE LORD WILL NOT HEAR ME:TF# 19 BUT VERILY GOD HATH HEARD ME; HE HATH ATTENDED TO THE VOICE OF MY PRAYER.M# 20 BLESSED BE GOD, WHICH HATH NOT TURNED AWAY MY PRAYER, NOR HIS MERCY FROME ME. = CHAPTER 67 RK# 1 GOD BE MERCIFUL UNTO US, AND BLESS US; AND CAUSE HIS FACE TO SHINE UPONO US; SELAH.E# 2 THAT THY WAY MAY BE KNOWN UPON EARTH, THY SAVING HEALTH AMONG ALLT NATIONS.OF# 3 LET THE PEOPLE PRAISE THEE, O GOD; LET ALL THE PEOPLE PRAISE THEE.H# 4 O LET THE NATIONS BE GLAD AND SING FOR JOY: FOR THOU SHALT JUDGE THE> PEOPLE RIGHTEOUSLY, AND GOVERN THE NATIONS UPON EARTH. SELAH.F# 5 LET THE PEOPLE PRAISE THEE, O GOD; LET ALL THE PEOPLE PRAISE THEE.M# 6 THEN SHALL THE EARTH YIELD HER INCREASE; AND GOD, EVEN OUR OWN GOD, SHALLO BLESS US.E# 7 GOD SHALL BLESS US; AND ALL THE ENDS OF THE EARTH SHALL FEAR HIM.Y = CHAPTER 68 PL# 1 LET GOD ARISE, LET HIS ENEMIES BE SCATTERED: LET THEM ALSO THAT HATE HIM FLEE BEFORE HIM.LJ# 2 AS SMOKE IS DRIVEN AWAY, SO DRIVE THEM AWAY: AS WAX MELTETH BEFORE THE7 FIRE, SO LET THE WICKED PERISH AT THE PRESENCE OF GOD.HM# 3 BUT LET THE RIGHTEOUS BE GLAD; LET THEM REJOICE BEFORE GOD: YEA, LET THEME EXCEEDINGLY REJOICE. K# 4 SING UNTO GOD, SING PRAISES TO HIS NAME: EXTOL HIM THAT RIDETH UPON THE1 HEAVENS BY HIS NAME JAH, AND REJOICE BEFORE HIM.SM# 5 A FATHER OF THE FATHERLESS, AND A JUDGE OF THE WIDOWS, IS GOD IN HIS HOLYI HABITATION.I# 6 GOD SETTETH THE SOLITARY IN FAMILIES: HE BRINGETH OUT THOSE WHICH AREA; BOUND WITH CHAINS: BUT THE REBELLIOUS DWELL IN A DRY LAND. K# 7 O GOD, WHEN THOU WENTEST FORTH BEFORE THY PEOPLE, WHEN THOU DIDST MARCHG THROUGH THE WILDERNESS; SELAH: J# 8 THE EARTH SHOOK, THE HEAVENS ALSO DROPPED AT THE PRESENCE OF GOD: EVENB SINAI ITSELF WAS MOVED AT THE PRESENCE OF GOD, THE GOD OF ISRAEL.H# 9 THOU, O GOD, DIDST SEND A PLENTIFUL RAIN, WHEREBY THOU DIDST CONFIRM& THINE INHERITANCE, WHEN IT WAS WEARY.K# 10 THY CONGREGATION HATH DWELT THEREIN: THOU, O GOD, HAST PREPARED OF THYR GOODNESS FOR THE POOR.UJ# 11 THE LORD GAVE THE WORD: GREAT WAS THE COMPANY OF THOSE THAT PUBLISHED IT.M# 12 KINGS OF ARMIES DID FLEE APACE: AND SHE THAT TARRIED AT HOME DIVIDED THEA SPOIL.,J# 13 THOUGH YE HAVE LIEN AMONG THE POTS, YET SHALL YE BE AS THE WINGS OF A= DOVE COVERED WITH SILVER, AND HER FEATHERS WITH YELLOW GOLD.,M# 14 WHEN THE ALMIGHTY SCATTERED KINGS IN IT, IT WAS WHITE AS SNOW IN SALMON.HJ# 15 THE HILL OF GOD IS AS THE HILL OF BASHAN; AN HIGH HILL AS THE HILL OF BASHAN.M# 16 WHY LEAP YE, YE HIGH HILLS? THIS IS THE HILL WHICH GOD DESIRETH TO DWELLC- IN; YEA, THE LORD WILL DWELL IN IT FOR EVER.SK# 17 THE CHARIOTS OF GOD ARE TWENTY THOUSAND, EVEN THOUSANDS OF ANGELS: THE,4 LORD IS AMONG THEM, AS IN SINAI, IN THE HOLY PLACE.K# 18 THOU HAST ASCENDED ON HIGH, THOU HAST LED CAPTIVITY CAPTIVE: THOU HASTON RECEIVED GIFTS FOR MEN; YEA, FOR THE REBELLIOUS ALSO, THAT THE LORD GOD MIGHT DWELL AMONG THEM.M# 19 BLESSED BE THE LORD, WHO DAILY LOADETH US WITH BENE00q6-6<%X>%+%O-%TADATADATAFITS, EVEN THE GOD OF6 OUR SALVATION. SELAH.M# 20 HE THAT IS OUR GOD IS THE GOD OF SALVATION; AND UNTO GOD THE LORD BELONGL THE ISSUES FROM DEATH.TM# 21 BUT GOD SHALL WOUND THE HEAD OF HIS ENEMIES, AND THE HAIRY SCALP OF SUCHS, AN ONE AS GOETH ON STILL IN HIS TRESPASSES.J# 22 THE LORD SAID, I WILL BRING AGAIN FROM BASHAN, I WILL BRING MY PEOPLE" AGAIN FROM THE DEPTHS OF THE SEA:G# 23 THAT THY FOOT MAY BE DIPPED IN THE BLOOD OF THINE ENEMIES, AND THEE TONGUE OF THY DOGS IN THE SAME.M# 24 THEY HAVE SEEN THY GOINGS, O GOD; EVEN THE GOINGS OF MY GOD, MY KING, INU THE SANCTUARY.OH# 25 THE SINGERS WENT BEFORE, THE PLAYERS ON INSTRUMENTS FOLLOWED AFTER;3 AMONG THEM WERE THE DAMSELS PLAYING WITH TIMBRELS. K# 26 BLESS YE GOD IN THE CONGREGATIONS, EVEN THE LORD, FROM THE FOUNTAIN OFL ISRAEL.H# 27 THERE IS LITTLE BENJAMIN WITH THEIR RULER, THE PRINCES OF JUDAH ANDD THEIR COUNCIL, THE PRINCES OF ZEBULUN, AND THE PRINCES OF NAPHTALI.L# 28 THY GOD HATH COMMANDED THY STRENGTH: STRENGTHEN, O GOD, THAT WHICH THOU HAST WROUGHT FOR US.HM# 29 BECAUSE OF THY TEMPLE AT JERUSALEM SHALL KINGS BRING PRESENTS UNTO THEE.EI# 30 REBUKE THE COMPANY OF SPEARMEN, THE MULTITUDE OF THE BULLS, WITH THEPK CALVES OF THE PEOPLE, TILL EVERY ONE SUBMIT HIMSELF WITH PIECES OF SILVER:,- SCATTER THOU THE PEOPLE THAT DELIGHT IN WAR. I# 31 PRINCES SHALL COME OUT OF EGYPT; ETHIOPIA SHALL SOON STRETCH OUT HER  HANDS UNTO GOD.K# 32 SING UNTO GOD, YE KINGDOMS OF THE EARTH; O SING PRAISES UNTO THE LORD;  SELAH:NK# 33 TO HIM THAT RIDETH UPON THE HEAVENS OF HEAVENS, WHICH WERE OF OLD; LO,A5 HE DOTH SEND OUT HIS VOICE, AND THAT A MIGHTY VOICE.0I# 34 ASCRIBE YE STRENGTH UNTO GOD: HIS EXCELLENCY IS OVER ISRAEL, AND HISL STRENGTH IS IN THE CLOUDS. M# 35 O GOD, THOU ART TERRIBLE OUT OF THY HOLY PLACES: THE GOD OF ISRAEL IS HEH@ THAT GIVETH STRENGTH AND POWER UNTO HIS PEOPLE. BLESSED BE GOD. = CHAPTER 69 <# 1 SAVE ME, O GOD; FOR THE WATERS ARE COME IN UNTO MY SOUL.H# 2 I SINK IN DEEP MIRE, WHERE THERE IS NO STANDING: I AM COME INTO DEEP& WATERS, WHERE THE FLOODS OVERFLOW ME.L# 3 I AM WEARY OF MY CRYING: MY THROAT IS DRIED: MINE EYES FAIL WHILE I WAIT FOR MY GOD.K# 4 THEY THAT HATE ME WITHOUT A CAUSE ARE MORE THAN THE HAIRS OF MINE HEAD:UN THEY THAT WOULD DESTROY ME, BEING MINE ENEMIES WRONGFULLY, ARE MIGHTY: THEN I% RESTORED THAT WHICH I TOOK NOT AWAY.NJ# 5 O GOD, THOU KNOWEST MY FOOLISHNESS; AND MY SINS ARE NOT HID FROM THEE.J# 6 LET NOT THEM THAT WAIT ON THEE, O LORD GOD OF HOSTS, BE ASHAMED FOR MYG SAKE: LET NOT THOSE THAT SEEK THEE BE CONFOUNDED FOR MY SAKE, O GOD OF  ISRAEL.K# 7 BECAUSE FOR THY SAKE I HAVE BORNE REPROACH; SHAME HATH COVERED MY FACE..I# 8 I AM BECOME A STRANGER UNTO MY BRETHREN, AND AN ALIEN UNTO MY MOTHERSD CHILDREN.L# 9 FOR THE ZEAL OF THINE HOUSE HATH EATEN ME UP; AND THE REPROACHES OF THEM) THAT REPROACHED THEE ARE FALLEN UPON ME.,D# 10 WHEN I WEPT, AND CHASTENED MY SOUL WITH FASTING, THAT WAS TO MY REPROACH.F# 11 I MADE SACKCLOTH ALSO MY GARMENT; AND I BECAME A PROVERB TO THEM.J# 12 THEY THAT SIT IN THE GATE SPEAK AGAINST ME; AND I WAS THE SONG OF THE DRUNKARDS.HL# 13 BUT AS FOR ME, MY PRAYER IS UNTO THEE, O LORD, IN AN ACCEPTABLE TIME: OK GOD, IN THE MULTITUDE OF THY MERCY HEAR ME, IN THE TRUTH OF THY SALVATION. I# 14 DELIVER ME OUT OF THE MIRE, AND LET ME NOT SINK: LET ME BE DELIVERED 4 FROM THEM THAT HATE ME, AND OUT OF THE DEEP WATERS.L# 15 LET NOT THE WATERFLOOD OVERFLOW ME, NEITHER LET THE DEEP SWALLOW ME UP,, AND LET NOT THE PIT SHUT HER MOUTH UPON ME.L# 16 HEAR ME, O LORD; FOR THY LOVINGKINDNESS IS GOOD: TURN UNTO ME ACCORDING( TO THE MULTITUDE OF THY TENDER MERCIES.I# 17 AND HIDE NOT THY FACE FROM THY SERVANT; FOR I AM IN TROUBLE: HEAR MEM SPEEDILY.F# 18 DRAW NIGH UNTO MY SOUL, AND REDEEM IT: DELIVER ME BECAUSE OF MINE ENEMIES.,F# 19 THOU HAST KNOWN MY REPROACH, AND MY SHAME, AND MY DISHONOUR: MINE! ADVERSARIES ARE ALL BEFORE THEE.NL# 20 REPROACH HATH BROKEN MY HEART; AND I AM FULL OF HEAVINESS: AND I LOOKEDK FOR SOME TO TAKE PITY, BUT THERE WAS NONE; AND 00q7b5D%5%T6%! !FOR COMFORTERS, BUT I FOUNDE NONE.F# 21 THEY GAVE ME ALSO GALL FOR MY MEAT; AND IN MY THIRST THEY GAVE ME VINEGAR TO DRINK.K# 22 LET THEIR TABLE BECOME A SNARE BEFORE THEM: AND THAT WHICH SHOULD HAVEI. BEEN FOR THEIR WELFARE, LET IT BECOME A TRAP.H# 23 LET THEIR EYES BE DARKENED, THAT THEY SEE NOT; AND MAKE THEIR LOINS CONTINUALLY TO SHAKE.J# 24 POUR OUT THINE INDIGNATION UPON THEM, AND LET THY WRATHFUL ANGER TAKE HOLD OF THEM.I# 25 LET THEIR HABITATION BE DESOLATE; AND LET NONE DWELL IN THEIR TENTS.FH# 26 FOR THEY PERSECUTE HIM WHOM THOU HAST SMITTEN; AND THEY TALK TO THE' GRIEF OF THOSE WHOM THOU HAST WOUNDED.RE# 27 ADD INIQUITY UNTO THEIR INIQUITY: AND LET THEM NOT COME INTO THYH RIGHTEOUSNESS. J# 28 LET THEM BE BLOTTED OUT OF THE BOOK OF THE LIVING, AND NOT BE WRITTEN WITH THE RIGHTEOUS.H# 29 BUT I AM POOR AND SORROWFUL: LET THY SALVATION, O GOD, SET ME UP ON HIGH.I# 30 I WILL PRAISE THE NAME OF GOD WITH A SONG, AND WILL MAGNIFY HIM WITHO THANKSGIVING.K# 31 THIS ALSO SHALL PLEASE THE LORD BETTER THAN AN OX OR BULLOCK THAT HATHT HORNS AND HOOFS.TK# 32 THE HUMBLE SHALL SEE THIS, AND BE GLAD: AND YOUR HEART SHALL LIVE THATT SEEK GOD.D# 33 FOR THE LORD HEARETH THE POOR, AND DESPISETH NOT HIS PRISONERS.H# 34 LET THE HEAVEN AND EARTH PRAISE HIM, THE SEAS, AND EVERY THING THAT MOVETH THEREIN.J# 35 FOR GOD WILL SAVE ZION, AND WILL BUILD THE CITIES OF JUDAH: THAT THEY, MAY DWELL THERE, AND HAVE IT IN POSSESSION.K# 36 THE SEED ALSO OF HIS SERVANTS SHALL INHERIT IT: AND THEY THAT LOVE HISD NAME SHALL DWELL THEREIN. = CHAPTER 70 HD# 1 MAKE HASTE, O GOD, TO DELIVER ME; MAKE HASTE TO HELP ME, O LORD.K# 2 LET THEM BE ASHAMED AND CONFOUNDED THAT SEEK AFTER MY SOUL: LET THEM BE < TURNED BACKWARD, AND PUT TO CONFUSION, THAT DESIRE MY HURT.K# 3 LET THEM BE TURNED BACK FOR A REWARD OF THEIR SHAME THAT SAY, AHA, AHA. M# 4 LET ALL THOSE THAT SEEK THEE REJOICE AND BE GLAD IN THEE: AND LET SUCH AS : LOVE THY SALVATION SAY CONTINUALLY, LET GOD BE MAGNIFIED.L# 5 BUT I AM POOR AND NEEDY: MAKE HASTE UNTO ME, O GOD: THOU ART MY HELP AND( MY DELIVERER; O LORD, MAKE NO TARRYING. = CHAPTER 71 TI# 1 IN THEE, O LORD, DO I PUT MY TRUST: LET ME NEVER BE PUT TO CONFUSION.MJ# 2 DELIVER ME IN THY RIGHTEOUSNESS, AND CAUSE ME TO ESCAPE: INCLINE THINE EAR UNTO ME, AND SAVE ME.J# 3 BE THOU MY STRONG HABITATION, WHEREUNTO I MAY CONTINUALLY RESORT: THOUI HAST GIVEN COMMANDMENT TO SAVE ME; FOR THOU ART MY ROCK AND MY FORTRESS.VK# 4 DELIVER ME, O MY GOD, OUT OF THE HAND OF THE WICKED, OUT OF THE HAND OFK THE UNRIGHTEOUS AND CRUEL MAN.MF# 5 FOR THOU ART MY HOPE, O LORD GOD: THOU ART MY TRUST FROM MY YOUTH.M# 6 BY THEE HAVE I BEEN HOLDEN UP FROM THE WOMB: THOU ART HE THAT TOOK ME OUTE> OF MY MOTHERS BOWELS: MY PRAISE SHALL BE CONTINUALLY OF THEE.># 7 I AM AS A WONDER UNTO MANY; BUT THOU ART MY STRONG REFUGE.K# 8 LET MY MOUTH BE FILLED WITH THY PRAISE AND WITH THY HONOUR ALL THE DAY. K# 9 CAST ME NOT OFF IN THE TIME OF OLD AGE; FORSAKE ME NOT WHEN MY STRENGTHT FAILETH.TJ# 10 FOR MINE ENEMIES SPEAK AGAINST ME; AND THEY THAT LAY WAIT FOR MY SOUL TAKE COUNSEL TOGETHER,DM# 11 SAYING, GOD HATH FORSAKEN HIM: PERSECUTE AND TAKE HIM; FOR THERE IS NONEW TO DELIVER HIM.A# 12 O GOD, BE NOT FAR FROM ME: O MY GOD, MAKE HASTE FOR MY HELP.AM# 13 LET THEM BE CONFOUNDED AND CONSUMED THAT ARE ADVERSARIES TO MY SOUL; LET ? THEM BE COVERED WITH REPROACH AND DISHONOUR THAT SEEK MY HURT.TI# 14 BUT I WILL HOPE CONTINUALLY, AND WILL YET PRAISE THEE MORE AND MORE.YJ# 15 MY MOUTH SHALL SHEW FORTH THY RIGHTEOUSNESS AND THY SALVATION ALL THE) DAY; FOR I KNOW NOT THE NUMBERS THEREOF.HJ# 16 I WILL GO IN THE STRENGTH OF THE LORD GOD: I WILL MAKE MENTION OF THY# RIGHTEOUSNESS, EVEN OF THINE ONLY.DK# 17 O GOD, THOU HAST TAUGHT ME FROM MY YOUTH: AND HITHERTO HAVE I DECLAREDN THY WONDROUS WORKS.J# 18 NOW ALSO WHEN I AM OLD AND GREYHEADED, O GOD, FORSAKE ME NOT; UNTIL IJ HAVE SHEWED THY STRENGTH UNTO THIS GENERATION, AND THY POWER TO EVERY ONE THAT IS TO COME. M# 19 THY RIGHTEOUSNESS ALSO, O GOD, IS VERY HIGH, 00q7-6<%X>%+%O-%TADATADATAWHO HAST DONE GREAT THINGS:T O GOD, WHO IS LIKE UNTO THEE!I# 20 THOU, WHICH HAST SHEWED ME GREAT AND SORE TROUBLES, SHALT QUICKEN ME A AGAIN, AND SHALT BRING ME UP AGAIN FROM THE DEPTHS OF THE EARTH.HD# 21 THOU SHALT INCREASE MY GREATNESS, AND COMFORT ME ON EVERY SIDE.I# 22 I WILL ALSO PRAISE THEE WITH THE PSALTERY, EVEN THY TRUTH, O MY GOD:M@ UNTO THEE WILL I SING WITH THE HARP, O THOU HOLY ONE OF ISRAEL.L# 23 MY LIPS SHALL GREATLY REJOICE WHEN I SING UNTO THEE; AND MY SOUL, WHICH THOU HAST REDEEMED.I# 24 MY TONGUE ALSO SHALL TALK OF THY RIGHTEOUSNESS ALL THE DAY LONG: FORHI THEY ARE CONFOUNDED, FOR THEY ARE BROUGHT UNTO SHAME, THAT SEEK MY HURT. = CHAPTER 72 IL# 1 GIVE THE KING THY JUDGMENTS, O GOD, AND THY RIGHTEOUSNESS UNTO THE KINGS SON.MM# 2 HE SHALL JUDGE THY PEOPLE WITH RIGHTEOUSNESS, AND THY POOR WITH JUDGMENT.HK# 3 THE MOUNTAINS SHALL BRING PEACE TO THE PEOPLE, AND THE LITTLE HILLS, BY. RIGHTEOUSNESS.AL# 4 HE SHALL JUDGE THE POOR OF THE PEOPLE, HE SHALL SAVE THE CHILDREN OF THE0 NEEDY, AND SHALL BREAK IN PIECES THE OPPRESSOR.K# 5 THEY SHALL FEAR THEE AS LONG AS THE SUN AND MOON ENDURE, THROUGHOUT ALLT GENERATIONS.EK# 6 HE SHALL COME DOWN LIKE RAIN UPON THE MOWN GRASS: AS SHOWERS THAT WATER THE EARTH. L# 7 IN HIS DAYS SHALL THE RIGHTEOUS FLOURISH; AND ABUNDANCE OF PEACE SO LONG AS THE MOON ENDURETH.L# 8 HE SHALL HAVE DOMINION ALSO FROM SEA TO SEA, AND FROM THE RIVER UNTO THE ENDS OF THE EARTH. K# 9 THEY THAT DWELL IN THE WILDERNESS SHALL BOW BEFORE HIM; AND HIS ENEMIESN SHALL LICK THE DUST.NK# 10 THE KINGS OF TARSHISH AND OF THE ISLES SHALL BRING PRESENTS: THE KINGSE% OF SHEBA AND SEBA SHALL OFFER GIFTS.L# 11 YEA, ALL KINGS SHALL FALL DOWN BEFORE HIM: ALL NATIONS SHALL SERVE HIM.J# 12 FOR HE SHALL DELIVER THE NEEDY WHEN HE CRIETH; THE POOR ALSO, AND HIM THAT HATH NO HELPER. G# 13 HE SHALL SPARE THE POOR AND NEEDY, AND SHALL SAVE THE SOULS OF THE  NEEDY. L# 14 HE SHALL REDEEM THEIR SOUL FROM DECEIT AND VIOLENCE: AND PRECIOUS SHALL THEIR BLOOD BE IN HIS SIGHT.G# 15 AND HE SHALL LIVE, AND TO HIM SHALL BE GIVEN OF THE GOLD OF SHEBA: N PRAYER ALSO SHALL BE MADE FOR HIM CONTINUALLY; AND DAILY SHALL HE BE PRAISED.G# 16 THERE SHALL BE AN HANDFUL OF CORN IN THE EARTH UPON THE TOP OF THERL MOUNTAINS; THE FRUIT THEREOF SHALL SHAKE LIKE LEBANON: AND THEY OF THE CITY( SHALL FLOURISH LIKE GRASS OF THE EARTH.K# 17 HIS NAME SHALL ENDURE FOR EVER: HIS NAME SHALL BE CONTINUED AS LONG ASTN THE SUN: AND MEN SHALL BE BLESSED IN HIM: ALL NATIONS SHALL CALL HIM BLESSED.H# 18 BLESSED BE THE LORD GOD, THE GOD OF ISRAEL, WHO ONLY DOETH WONDROUS THINGS.J# 19 AND BLESSED BE HIS GLORIOUS NAME FOR EVER: AND LET THE WHOLE EARTH BE' FILLED WITH HIS GLORY; AMEN, AND AMEN.I5# 20 THE PRAYERS OF DAVID THE SON OF JESSE ARE ENDED. = CHAPTER 73 HF# 1 TRULY GOD IS GOOD TO ISRAEL, EVEN TO SUCH AS ARE OF A CLEAN HEART.L# 2 BUT AS FOR ME, MY FEET WERE ALMOST GONE; MY STEPS HAD WELL NIGH SLIPPED.F# 3 FOR I WAS ENVIOUS AT THE FOOLISH, WHEN I SAW THE PROSPERITY OF THE WICKED.F# 4 FOR THERE ARE NO BANDS IN THEIR DEATH: BUT THEIR STRENGTH IS FIRM.M# 5 THEY ARE NOT IN TROUBLE AS OTHER MEN; NEITHER ARE THEY PLAGUED LIKE OTHER  MEN.AL# 6 THEREFORE PRIDE COMPASSETH THEM ABOUT AS A CHAIN; VIOLENCE COVERETH THEM AS A GARMENT.L# 7 THEIR EYES STAND OUT WITH FATNESS: THEY HAVE MORE THAN HEART COULD WISH.J# 8 THEY ARE CORRUPT, AND SPEAK WICKEDLY CONCERNING OPPRESSION: THEY SPEAK LOFTILY.GF# 9 THEY SET THEIR MOUTH AGAINST THE HEAVENS, AND THEIR TONGUE WALKETH THROUGH THE EARTH.K# 10 THEREFORE HIS PEOPLE RETURN HITHER: AND WATERS OF A FULL CUP ARE WRUNGH OUT TO THEM.RH# 11 AND THEY SAY, HOW DOTH GOD KNOW? AND IS THERE KNOWLEDGE IN THE MOST HIGH?K# 12 BEHOLD, THESE ARE THE UNGODLY, WHO PROSPER IN THE WORLD; THEY INCREASE IN RICHES.SD# 13 VERILY I HAVE CLEANSED MY HEART IN VAIN, AND WASHED MY HANDS IN INNOCENCY.TK# 14 FOR ALL THE DAY LONG HAVE I BEEN PLAGUED, AND CHASTENED EVERY MORNING.SE# 15 IF I SAY, I WILL SPEAK THUS; BEHOLD, I SHOULD OFFEND AGAINST THET GENERATION 00q7b5D%5%T6%! !OF THY CHILDREN.<# 16 WHEN I THOUGHT TO KNOW THIS, IT WAS TOO PAINFUL FOR ME;I# 17 UNTIL I WENT INTO THE SANCTUARY OF GOD; THEN UNDERSTOOD I THEIR END.IK# 18 SURELY THOU DIDST SET THEM IN SLIPPERY PLACES: THOU CASTEDST THEM DOWNR INTO DESTRUCTION.K# 19 HOW ARE THEY BROUGHT INTO DESOLATION, AS IN A MOMENT! THEY ARE UTTERLYD CONSUMED WITH TERRORS.FK# 20 AS A DREAM WHEN ONE AWAKETH; SO, O LORD, WHEN THOU AWAKEST, THOU SHALTI DESPISE THEIR IMAGE.H># 21 THUS MY HEART WAS GRIEVED, AND I WAS PRICKED IN MY REINS.B# 22 SO FOOLISH WAS I, AND IGNORANT: I WAS AS A BEAST BEFORE THEE.M# 23 NEVERTHELESS I AM CONTINUALLY WITH THEE: THOU HAST HOLDEN ME BY MY RIGHT  HAND.M# 24 THOU SHALT GUIDE ME WITH THY COUNSEL, AND AFTERWARD RECEIVE ME TO GLORY.UH# 25 WHOM HAVE I IN HEAVEN BUT THEE? AND THERE IS NONE UPON EARTH THAT I DESIRE BESIDE THEE.L# 26 MY FLESH AND MY HEART FAILETH: BUT GOD IS THE STRENGTH OF MY HEART, AND MY PORTION FOR EVER.EK# 27 FOR, LO, THEY THAT ARE FAR FROM THEE SHALL PERISH: THOU HAST DESTROYED.& ALL THEM THAT GO A WHORING FROM THEE.J# 28 BUT IT IS GOOD FOR ME TO DRAW NEAR TO GOD: I HAVE PUT MY TRUST IN THE, LORD GOD, THAT I MAY DECLARE ALL THY WORKS. = CHAPTER 74 DI# 1 O GOD, WHY HAST THOU CAST US OFF FOR EVER? WHY DOTH THINE ANGER SMOKEI" AGAINST THE SHEEP OF THY PASTURE?K# 2 REMEMBER THY CONGREGATION, WHICH THOU HAST PURCHASED OF OLD; THE ROD OFHK THINE INHERITANCE, WHICH THOU HAST REDEEMED; THIS MOUNT ZION, WHEREIN THOU HAST DWELT.L# 3 LIFT UP THY FEET UNTO THE PERPETUAL DESOLATIONS; EVEN ALL THAT THE ENEMY% HATH DONE WICKEDLY IN THE SANCTUARY. K# 4 THINE ENEMIES ROAR IN THE MIDST OF THY CONGREGATIONS; THEY SET UP THEIRL ENSIGNS FOR SIGNS. M# 5 A MAN WAS FAMOUS ACCORDING AS HE HAD LIFTED UP AXES UPON THE THICK TREES.EI# 6 BUT NOW THEY BREAK DOWN THE CARVED WORK THEREOF AT ONCE WITH AXES AND, HAMMERS. M# 7 THEY HAVE CAST FIRE INTO THY SANCTUARY, THEY HAVE DEFILED BY CASTING DOWND. THE DWELLING PLACE OF THY NAME TO THE GROUND.M# 8 THEY SAID IN THEIR HEARTS, LET US DESTROY THEM TOGETHER: THEY HAVE BURNEDH* UP ALL THE SYNAGOGUES OF GOD IN THE LAND.H# 9 WE SEE NOT OUR SIGNS: THERE IS NO MORE ANY PROPHET: NEITHER IS THERE$ AMONG US ANY THAT KNOWETH HOW LONG.L# 10 O GOD, HOW LONG SHALL THE ADVERSARY REPROACH? SHALL THE ENEMY BLASPHEME THY NAME FOR EVER?DL# 11 WHY WITHDRAWEST THOU THY HAND, EVEN THY RIGHT HAND? PLUCK IT OUT OF THY BOSOM.TL# 12 FOR GOD IS MY KING OF OLD, WORKING SALVATION IN THE MIDST OF THE EARTH.M# 13 THOU DIDST DIVIDE THE SEA BY THY STRENGTH: THOU BRAKEST THE HEADS OF THEA DRAGONS IN THE WATERS.YM# 14 THOU BRAKEST THE HEADS OF LEVIATHAN IN PIECES, AND GAVEST HIM TO BE MEATO) TO THE PEOPLE INHABITING THE WILDERNESS.KI# 15 THOU DIDST CLEAVE THE FOUNTAIN AND THE FLOOD: THOU DRIEDST UP MIGHTYT RIVERS.L# 16 THE DAY IS THINE, THE NIGHT ALSO IS THINE: THOU HAST PREPARED THE LIGHT AND THE SUN.KJ# 17 THOU HAST SET ALL THE BORDERS OF THE EARTH: THOU HAST MADE SUMMER AND WINTER.H# 18 REMEMBER THIS, THAT THE ENEMY HATH REPROACHED, O LORD, AND THAT THE) FOOLISH PEOPLE HAVE BLASPHEMED THY NAME.EG# 19 O DELIVER NOT THE SOUL OF THY TURTLEDOVE UNTO THE MULTITUDE OF THET: WICKED: FORGET NOT THE CONGREGATION OF THY POOR FOR EVER.I# 20 HAVE RESPECT UNTO THE COVENANT: FOR THE DARK PLACES OF THE EARTH AREV$ FULL OF THE HABITATIONS OF CRUELTY.J# 21 O LET NOT THE OPPRESSED RETURN ASHAMED: LET THE POOR AND NEEDY PRAISE THY NAME.F# 22 ARISE, O GOD, PLEAD THINE OWN CAUSE: REMEMBER HOW THE FOOLISH MAN REPROACHETH THEE DAILY.L# 23 FORGET NOT THE VOICE OF THINE ENEMIES: THE TUMULT OF THOSE THAT RISE UP% AGAINST THEE INCREASETH CONTINUALLY.R = CHAPTER 75 EN# 1 UNTO THEE, O GOD, DO WE GIVE THANKS, UNTO THEE DO WE GIVE THANKS: FOR THAT- THY NAME IS NEAR THY WONDROUS WORKS DECLARE.RA# 2 WHEN I SHALL RECEIVE THE CONGREGATION I WILL JUDGE UPRIGHTLY. J# 3 THE EARTH AND ALL THE INHABITANTS THEREOF ARE DISSOLVED: I BEAR UP THE PILLARS OF IT. SELAH.M# 4 I SAID UNTO THE FOOLS, DEAL NOT FOOLISHLY: AND TO THE WICKED, LIFT NOT UPL THE HORN:?# 5 LIFT NOT U00q7-6<%X>%+%O-%TADATADATAP YOUR HORN ON HIGH: SPEAK NOT WITH A STIFF NECK. K# 6 FOR PROMOTION COMETH NEITHER FROM THE EAST, NOR FROM THE WEST, NOR FROMG THE SOUTH.EF# 7 BUT GOD IS THE JUDGE: HE PUTTETH DOWN ONE, AND SETTETH UP ANOTHER.J# 8 FOR IN THE HAND OF THE LORD THERE IS A CUP, AND THE WINE IS RED; IT ISL FULL OF MIXTURE; AND HE POURETH OUT OF THE SAME: BUT THE DREGS THEREOF, ALL> THE WICKED OF THE EARTH SHALL WRING THEM OUT, AND DRINK THEM.I# 9 BUT I WILL DECLARE FOR EVER; I WILL SING PRAISES TO THE GOD OF JACOB.NJ# 10 ALL THE HORNS OF THE WICKED ALSO WILL I CUT OFF; BUT THE HORNS OF THE RIGHTEOUS SHALL BE EXALTED. = CHAPTER 76 ,7# 1 IN JUDAH IS GOD KNOWN: HIS NAME IS GREAT IN ISRAEL.TD# 2 IN SALEM ALSO IS HIS TABERNACLE, AND HIS DWELLING PLACE IN ZION.L# 3 THERE BRAKE HE THE ARROWS OF THE BOW, THE SHIELD, AND THE SWORD, AND THE BATTLE. SELAH. D# 4 THOU ART MORE GLORIOUS AND EXCELLENT THAN THE MOUNTAINS OF PREY.J# 5 THE STOUTHEARTED ARE SPOILED, THEY HAVE SLEPT THEIR SLEEP: AND NONE OF) THE MEN OF MIGHT HAVE FOUND THEIR HANDS. M# 6 AT THY REBUKE, O GOD OF JACOB, BOTH THE CHARIOT AND HORSE ARE CAST INTO AE DEAD SLEEP.J# 7 THOU, EVEN THOU, ART TO BE FEARED: AND WHO MAY STAND IN THY SIGHT WHEN ONCE THOU ART ANGRY?,L# 8 THOU DIDST CAUSE JUDGMENT TO BE HEARD FROM HEAVEN; THE EARTH FEARED, AND WAS STILL, I# 9 WHEN GOD AROSE TO JUDGMENT, TO SAVE ALL THE MEEK OF THE EARTH. SELAH.EL# 10 SURELY THE WRATH OF MAN SHALL PRAISE THEE: THE REMAINDER OF WRATH SHALT THOU RESTRAIN.AI# 11 VOW, AND PAY UNTO THE LORD YOUR GOD: LET ALL THAT BE ROUND ABOUT HIMO1 BRING PRESENTS UNTO HIM THAT OUGHT TO BE FEARED.IK# 12 HE SHALL CUT OFF THE SPIRIT OF PRINCES: HE IS TERRIBLE TO THE KINGS OFD THE EARTH. = CHAPTER 77 UL# 1 I CRIED UNTO GOD WITH MY VOICE, EVEN UNTO GOD WITH MY VOICE; AND HE GAVE EAR UNTO ME.WM# 2 IN THE DAY OF MY TROUBLE I SOUGHT THE LORD: MY SORE RAN IN THE NIGHT, ANDS- CEASED NOT: MY SOUL REFUSED TO BE COMFORTED.SG# 3 I REMEMBERED GOD, AND WAS TROUBLED: I COMPLAINED, AND MY SPIRIT WAS  OVERWHELMED. SELAH.H# 4 THOU HOLDEST MINE EYES WAKING: I AM SO TROUBLED THAT I CANNOT SPEAK.B# 5 I HAVE CONSIDERED THE DAYS OF OLD, THE YEARS OF ANCIENT TIMES.G# 6 I CALL TO REMEMBRANCE MY SONG IN THE NIGHT: I COMMUNE WITH MINE OWND+ HEART: AND MY SPIRIT MADE DILIGENT SEARCH.AG# 7 WILL THE LORD CAST OFF FOR EVER? AND WILL HE BE FAVOURABLE NO MORE?DI# 8 IS HIS MERCY CLEAN GONE FOR EVER? DOTH HIS PROMISE FAIL FOR EVERMORE?TJ# 9 HATH GOD FORGOTTEN TO BE GRACIOUS? HATH HE IN ANGER SHUT UP HIS TENDER MERCIES? SELAH.K# 10 AND I SAID, THIS IS MY INFIRMITY: BUT I WILL REMEMBER THE YEARS OF THEA RIGHT HAND OF THE MOST HIGH.AF# 11 I WILL REMEMBER THE WORKS OF THE LORD: SURELY I WILL REMEMBER THY WONDERS OF OLD.B# 12 I WILL MEDITATE ALSO OF ALL THY WORK, AND TALK OF THY DOINGS.K# 13 THY WAY, O GOD, IS IN THE SANCTUARY: WHO IS SO GREAT A GOD AS OUR GOD? I# 14 THOU ART THE GOD THAT DOEST WONDERS: THOU HAST DECLARED THY STRENGTH  AMONG THE PEOPLE.H# 15 THOU HAST WITH THINE ARM REDEEMED THY PEOPLE, THE SONS OF JACOB AND JOSEPH. SELAH.IK# 16 THE WATERS SAW THEE, O GOD, THE WATERS SAW THEE; THEY WERE AFRAID: THEM DEPTHS ALSO WERE TROUBLED.BJ# 17 THE CLOUDS POURED OUT WATER: THE SKIES SENT OUT A SOUND: THINE ARROWS ALSO WENT ABROAD.M# 18 THE VOICE OF THY THUNDER WAS IN THE HEAVEN: THE LIGHTNINGS LIGHTENED THET% WORLD: THE EARTH TREMBLED AND SHOOK. E# 19 THY WAY IS IN THE SEA, AND THY PATH IN THE GREAT WATERS, AND THYN FOOTSTEPS ARE NOT KNOWN. I# 20 THOU LEDDEST THY PEOPLE LIKE A FLOCK BY THE HAND OF MOSES AND AARON.S = CHAPTER 78 J# 1 GIVE EAR, O MY PEOPLE, TO MY LAW: INCLINE YOUR EARS TO THE WORDS OF MY MOUTH.LH# 2 I WILL OPEN MY MOUTH IN A PARABLE: I WILL UTTER DARK SAYINGS OF OLD:@# 3 WHICH WE HAVE HEARD AND KNOWN, AND OUR FATHERS HAVE TOLD US.K# 4 WE WILL NOT HIDE THEM FROM THEIR CHILDREN, SHEWING TO THE GENERATION TOMM COME THE PRAISES OF THE LORD, AND HIS STRENGTH, AND HIS WONDERFUL WORKS THAT  HE HATH DONE.K# 5 FOR HE ESTABLISHED A TESTIMONY IN JACOB, AND APPOINTED A LAW IN ISRAEL,FJ WHI00q 7b5D%5%T6%! !CH HE COMMANDED OUR FATHERS, THAT THEY SHOULD MAKE THEM KNOWN TO THEIR CHILDREN:H# 6 THAT THE GENERATION TO COME MIGHT KNOW THEM, EVEN THE CHILDREN WHICHE SHOULD BE BORN; WHO SHOULD ARISE AND DECLARE THEM TO THEIR CHILDREN:DK# 7 THAT THEY MIGHT SET THEIR HOPE IN GOD, AND NOT FORGET THE WORKS OF GOD,E BUT KEEP HIS COMMANDMENTS:CL# 8 AND MIGHT NOT BE AS THEIR FATHERS, A STUBBORN AND REBELLIOUS GENERATION;G A GENERATION THAT SET NOT THEIR HEART ARIGHT, AND WHOSE SPIRIT WAS NOTD STEDFAST WITH GOD.WK# 9 THE CHILDREN OF EPHRAIM, BEING ARMED, AND CARRYING BOWS, TURNED BACK INI THE DAY OF BATTLE.GG# 10 THEY KEPT NOT THE COVENANT OF GOD, AND REFUSED TO WALK IN HIS LAW;RC# 11 AND FORGAT HIS WORKS, AND HIS WONDERS THAT HE HAD SHEWED THEM.EK# 12 MARVELLOUS THINGS DID HE IN THE SIGHT OF THEIR FATHERS, IN THE LAND OFI EGYPT, IN THE FIELD OF ZOAN. I# 13 HE DIVIDED THE SEA, AND CAUSED THEM TO PASS THROUGH; AND HE MADE THEO WATERS TO STAND AS AN HEAP.K# 14 IN THE DAYTIME ALSO HE LED THEM WITH A CLOUD, AND ALL THE NIGHT WITH AR LIGHT OF FIRE. L# 15 HE CLAVE THE ROCKS IN THE WILDERNESS, AND GAVE THEM DRINK AS OUT OF THE GREAT DEPTHS.K# 16 HE BROUGHT STREAMS ALSO OUT OF THE ROCK, AND CAUSED WATERS TO RUN DOWNE LIKE RIVERS.SK# 17 AND THEY SINNED YET MORE AGAINST HIM BY PROVOKING THE MOST HIGH IN THE WILDERNESS.G# 18 AND THEY TEMPTED GOD IN THEIR HEART BY ASKING MEAT FOR THEIR LUST.TK# 19 YEA, THEY SPAKE AGAINST GOD; THEY SAID, CAN GOD FURNISH A TABLE IN THEA WILDERNESS?K# 20 BEHOLD, HE SMOTE THE ROCK, THAT THE WATERS GUSHED OUT, AND THE STREAMSLI OVERFLOWED; CAN HE GIVE BREAD ALSO? CAN HE PROVIDE FLESH FOR HIS PEOPLE?DH# 21 THEREFORE THE LORD HEARD THIS, AND WAS WROTH: SO A FIRE WAS KINDLED6 AGAINST JACOB, AND ANGER ALSO CAME UP AGAINST ISRAEL;H# 22 BECAUSE THEY BELIEVED NOT IN GOD, AND TRUSTED NOT IN HIS SALVATION:K# 23 THOUGH HE HAD COMMANDED THE CLOUDS FROM ABOVE, AND OPENED THE DOORS OFY HEAVEN,J# 24 AND HAD RAINED DOWN MANNA UPON THEM TO EAT, AND HAD GIVEN THEM OF THE CORN OF HEAVEN.<# 25 MAN DID EAT ANGELS FOOD: HE SENT THEM MEAT TO THE FULL.F# 26 HE CAUSED AN EAST WIND TO BLOW IN THE HEAVEN: AND BY HIS POWER HE BROUGHT IN THE SOUTH WIND. L# 27 HE RAINED FLESH ALSO UPON THEM AS DUST, AND FEATHERED FOWLS LIKE AS THE SAND OF THE SEA:2E# 28 AND HE LET IT FALL IN THE MIDST OF THEIR CAMP, ROUND ABOUT THEIR HABITATIONS.DF# 29 SO THEY DID EAT, AND WERE WELL FILLED: FOR HE GAVE THEM THEIR OWN DESIRE;M# 30 THEY WERE NOT ESTRANGED FROM THEIR LUST. BUT WHILE THEIR MEAT WAS YET IN. THEIR MOUTHS,M# 31 THE WRATH OF GOD CAME UPON THEM, AND SLEW THE FATTEST OF THEM, AND SMOTEB DOWN THE CHOSEN MEN OF ISRAEL.EM# 32 FOR ALL THIS THEY SINNED STILL, AND BELIEVED NOT FOR HIS WONDROUS WORKS.,F# 33 THEREFORE THEIR DAYS DID HE CONSUME IN VANITY, AND THEIR YEARS IN TROUBLE.EL# 34 WHEN HE SLEW THEM, THEN THEY SOUGHT HIM: AND THEY RETURNED AND ENQUIRED EARLY AFTER GOD.LH# 35 AND THEY REMEMBERED THAT GOD WAS THEIR ROCK, AND THE HIGH GOD THEIR REDEEMER.K# 36 NEVERTHELESS THEY DID FLATTER HIM WITH THEIR MOUTH, AND THEY LIED UNTOE HIM WITH THEIR TONGUES.J# 37 FOR THEIR HEART WAS NOT RIGHT WITH HIM, NEITHER WERE THEY STEDFAST IN HIS COVENANT.L# 38 BUT HE, BEING FULL OF COMPASSION, FORGAVE THEIR INIQUITY, AND DESTROYEDM THEM NOT: YEA, MANY A TIME TURNED HE HIS ANGER AWAY, AND DID NOT STIR UP ALL HIS WRATH.GJ# 39 FOR HE REMEMBERED THAT THEY WERE BUT FLESH; A WIND THAT PASSETH AWAY, AND COMETH NOT AGAIN.J# 40 HOW OFT DID THEY PROVOKE HIM IN THE WILDERNESS, AND GRIEVE HIM IN THE DESERT!G# 41 YEA, THEY TURNED BACK AND TEMPTED GOD, AND LIMITED THE HOLY ONE OFT ISRAEL.J# 42 THEY REMEMBERED NOT HIS HAND, NOR THE DAY WHEN HE DELIVERED THEM FROM THE ENEMY.GK# 43 HOW HE HAD WROUGHT HIS SIGNS IN EGYPT, AND HIS WONDERS IN THE FIELD OFA ZOAN.H# 44 AND HAD TURNED THEIR RIVERS INTO BLOOD; AND THEIR FLOODS, THAT THEY COULD NOT DRINK.AG# 45 HE SENT DIVERS SORTS OF FLIES AMONG THEM, WHICH DEVOURED THEM; AND FROGS, WHICH DESTROYED THEM.IL# 46 HE GAVE ALSO THEIR INCREASE UNTO 00q(7q-7<%X>%+%O-%TADATADATATHE CATERPILLER, AND THEIR LABOUR UNTO THE LOCUST.M# 47 HE DESTROYED THEIR VINES WITH HAIL, AND THEIR SYCOMORE TREES WITH FROST.,F# 48 HE GAVE UP THEIR CATTLE ALSO TO THE HAIL, AND THEIR FLOCKS TO HOT THUNDERBOLTS.K# 49 HE CAST UPON THEM THE FIERCENESS OF HIS ANGER, WRATH, AND INDIGNATION,I0 AND TROUBLE, BY SENDING EVIL ANGELS AMONG THEM.I# 50 HE MADE A WAY TO HIS ANGER; HE SPARED NOT THEIR SOUL FROM DEATH, BUTV( GAVE THEIR LIFE OVER TO THE PESTILENCE;M# 51 AND SMOTE ALL THE FIRSTBORN IN EGYPT; THE CHIEF OF THEIR STRENGTH IN THE  TABERNACLES OF HAM:K# 52 BUT MADE HIS OWN PEOPLE TO GO FORTH LIKE SHEEP, AND GUIDED THEM IN THE WILDERNESS LIKE A FLOCK.ED# 53 AND HE LED THEM ON SAFELY, SO THAT THEY FEARED NOT: BUT THE SEA OVERWHELMED THEIR ENEMIES.FE# 54 AND HE BROUGHT THEM TO THE BORDER OF HIS SANCTUARY, EVEN TO THISE. MOUNTAIN, WHICH HIS RIGHT HAND HAD PURCHASED.B# 55 HE CAST OUT THE HEATHEN ALSO BEFORE THEM, AND DIVIDED THEM ANL INHERITANCE BY LINE, AND MADE THE TRIBES OF ISRAEL TO DWELL IN THEIR TENTS.F# 56 YET THEY TEMPTED AND PROVOKED THE MOST HIGH GOD, AND KEPT NOT HIS TESTIMONIES: J# 57 BUT TURNED BACK, AND DEALT UNFAITHFULLY LIKE THEIR FATHERS: THEY WERE# TURNED ASIDE LIKE A DECEITFUL BOW.OL# 58 FOR THEY PROVOKED HIM TO ANGER WITH THEIR HIGH PLACES, AND MOVED HIM TO# JEALOUSY WITH THEIR GRAVEN IMAGES.ED# 59 WHEN GOD HEARD THIS, HE WAS WROTH, AND GREATLY ABHORRED ISRAEL:J# 60 SO THAT HE FORSOOK THE TABERNACLE OF SHILOH, THE TENT WHICH HE PLACED AMONG MEN; M# 61 AND DELIVERED HIS STRENGTH INTO CAPTIVITY, AND HIS GLORY INTO THE ENEMYS  HAND.H# 62 HE GAVE HIS PEOPLE OVER ALSO UNTO THE SWORD; AND WAS WROTH WITH HIS INHERITANCE.IK# 63 THE FIRE CONSUMED THEIR YOUNG MEN; AND THEIR MAIDENS WERE NOT GIVEN TOV MARRIAGE.K# 64 THEIR PRIESTS FELL BY THE SWORD; AND THEIR WIDOWS MADE NO LAMENTATION.MI# 65 THEN THE LORD AWAKED AS ONE OUT OF SLEEP, AND LIKE A MIGHTY MAN THAT: SHOUTETH BY REASON OF WINE.M# 66 AND HE SMOTE HIS ENEMIES IN THE HINDER PARTS: HE PUT THEM TO A PERPETUALD REPROACH.M# 67 MOREOVER HE REFUSED THE TABERNACLE OF JOSEPH, AND CHOSE NOT THE TRIBE OFL EPHRAIM: A# 68 BUT CHOSE THE TRIBE OF JUDAH, THE MOUNT ZION WHICH HE LOVED.RJ# 69 AND HE BUILT HIS SANCTUARY LIKE HIGH PALACES, LIKE THE EARTH WHICH HE HATH ESTABLISHED FOR EVER.TG# 70 HE CHOSE DAVID ALSO HIS SERVANT, AND TOOK HIM FROM THE SHEEPFOLDS:EJ# 71 FROM FOLLOWING THE EWES GREAT WITH YOUNG HE BROUGHT HIM TO FEED JACOB( HIS PEOPLE, AND ISRAEL HIS INHERITANCE.L# 72 SO HE FED THEM ACCORDING TO THE INTEGRITY OF HIS HEART; AND GUIDED THEM! BY THE SKILFULNESS OF HIS HANDS.O = CHAPTER 79 EL# 1 O GOD, THE HEATHEN ARE COME INTO THINE INHERITANCE; THY HOLY TEMPLE HAVE1 THEY DEFILED; THEY HAVE LAID JERUSALEM ON HEAPS.AM# 2 THE DEAD BODIES OF THY SERVANTS HAVE THEY GIVEN TO BE MEAT UNTO THE FOWLSIE OF THE HEAVEN, THE FLESH OF THY SAINTS UNTO THE BEASTS OF THE EARTH.WJ# 3 THEIR BLOOD HAVE THEY SHED LIKE WATER ROUND ABOUT JERUSALEM; AND THERE WAS NONE TO BURY THEM.L# 4 WE ARE BECOME A REPROACH TO OUR NEIGHBOURS, A SCORN AND DERISION TO THEM THAT ARE ROUND ABOUT US.HM# 5 HOW LONG, LORD? WILT THOU BE ANGRY FOR EVER? SHALL THY JEALOUSY BURN LIKE  FIRE?J# 6 POUR OUT THY WRATH UPON THE HEATHEN THAT HAVE NOT KNOWN THEE, AND UPON1 THE KINGDOMS THAT HAVE NOT CALLED UPON THY NAME.TD# 7 FOR THEY HAVE DEVOURED JACOB, AND LAID WASTE HIS DWELLING PLACE.G# 8 O REMEMBER NOT AGAINST US FORMER INIQUITIES: LET THY TENDER MERCIES 2 SPEEDILY PREVENT US: FOR WE ARE BROUGHT VERY LOW.K# 9 HELP US, O GOD OF OUR SALVATION, FOR THE GLORY OF THY NAME: AND DELIVERA1 US, AND PURGE AWAY OUR SINS, FOR THY NAMES SAKE.OK# 10 WHEREFORE SHOULD THE HEATHEN SAY, WHERE IS THEIR GOD? LET HIM BE KNOWNWM AMONG THE HEATHEN IN OUR SIGHT BY THE REVENGING OF THE BLOOD OF THY SERVANTSV WHICH IS SHED. G# 11 LET THE SIGHING OF THE PRISONER COME BEFORE THEE; ACCORDING TO THE F GREATNESS OF THY POWER PRESERVE THOU THOSE THAT ARE APPOINTED TO DIE;D# 12 AND RENDER UNTO OUR NEIGHBOURS SEVENFOLD INTO THEIR BOSOM THEIR7 REPROACH, WHEREWITH00q07b5D%5%T6%! ! THEY HAVE REPROACHED THEE, O LORD.NH# 13 SO WE THY PEOPLE AND SHEEP OF THY PASTURE WILL GIVE THEE THANKS FOR8 EVER: WE WILL SHEW FORTH THY PRAISE TO ALL GENERATIONS. = CHAPTER 80 GJ# 1 GIVE EAR, O SHEPHERD OF ISRAEL, THOU THAT LEADEST JOSEPH LIKE A FLOCK;7 THOU THAT DWELLEST BETWEEN THE CHERUBIMS, SHINE FORTH. K# 2 BEFORE EPHRAIM AND BENJAMIN AND MANASSEH STIR UP THY STRENGTH, AND COMEH AND SAVE US.DM# 3 TURN US AGAIN, O GOD, AND CAUSE THY FACE TO SHINE; AND WE SHALL BE SAVED.J# 4 O LORD GOD OF HOSTS, HOW LONG WILT THOU BE ANGRY AGAINST THE PRAYER OF THY PEOPLE?M# 5 THOU FEEDEST THEM WITH THE BREAD OF TEARS; AND GIVEST THEM TEARS TO DRINKT IN GREAT MEASURE.L# 6 THOU MAKEST US A STRIFE UNTO OUR NEIGHBOURS: AND OUR ENEMIES LAUGH AMONG THEMSELVES.L# 7 TURN US AGAIN, O GOD OF HOSTS, AND CAUSE THY FACE TO SHINE; AND WE SHALL BE SAVED.J# 8 THOU HAST BROUGHT A VINE OUT OF EGYPT: THOU HAST CAST OUT THE HEATHEN, AND PLANTED IT.M# 9 THOU PREPAREDST ROOM BEFORE IT, AND DIDST CAUSE IT TO TAKE DEEP ROOT, ANDN IT FILLED THE LAND.I# 10 THE HILLS WERE COVERED WITH THE SHADOW OF IT, AND THE BOUGHS THEREOF  WERE LIKE THE GOODLY CEDARS. K# 11 SHE SENT OUT HER BOUGHS UNTO THE SEA, AND HER BRANCHES UNTO THE RIVER.AK# 12 WHY HAST THOU THEN BROKEN DOWN HER HEDGES, SO THAT ALL THEY WHICH PASSA BY THE WAY DO PLUCK HER? L# 13 THE BOAR OUT OF THE WOOD DOTH WASTE IT, AND THE WILD BEAST OF THE FIELD DOTH DEVOUR IT.H# 14 RETURN, WE BESEECH THEE, O GOD OF HOSTS: LOOK DOWN FROM HEAVEN, AND BEHOLD, AND VISIT THIS VINE;IL# 15 AND THE VINEYARD WHICH THY RIGHT HAND HATH PLANTED, AND THE BRANCH THAT THOU MADEST STRONG FOR THYSELF.M# 16 IT IS BURNED WITH FIRE, IT IS CUT DOWN: THEY PERISH AT THE REBUKE OF THYO COUNTENANCE. M# 17 LET THY HAND BE UPON THE MAN OF THY RIGHT HAND, UPON THE SON OF MAN WHOM THOU MADEST STRONG FOR THYSELF.L# 18 SO WILL NOT WE GO BACK FROM THEE: QUICKEN US, AND WE WILL CALL UPON THY NAME.H# 19 TURN US AGAIN, O LORD GOD OF HOSTS, CAUSE THY FACE TO SHINE; AND WE SHALL BE SAVED. = CHAPTER 81 I# 1 SING ALOUD UNTO GOD OUR STRENGTH: MAKE A JOYFUL NOISE UNTO THE GOD OF JACOB.EJ# 2 TAKE A PSALM, AND BRING HITHER THE TIMBREL, THE PLEASANT HARP WITH THE PSALTERY.M# 3 BLOW UP THE TRUMPET IN THE NEW MOON, IN THE TIME APPOINTED, ON OUR SOLEMNH FEAST DAY. E# 4 FOR THIS WAS A STATUTE FOR ISRAEL, AND A LAW OF THE GOD OF JACOB. L# 5 THIS HE ORDAINED IN JOSEPH FOR A TESTIMONY, WHEN HE WENT OUT THROUGH THE? LAND OF EGYPT: WHERE I HEARD A LANGUAGE THAT I UNDERSTOOD NOT.AM# 6 I REMOVED HIS SHOULDER FROM THE BURDEN: HIS HANDS WERE DELIVERED FROM THEU POTS.J# 7 THOU CALLEDST IN TROUBLE, AND I DELIVERED THEE; I ANSWERED THEE IN THEH SECRET PLACE OF THUNDER: I PROVED THEE AT THE WATERS OF MERIBAH. SELAH.K# 8 HEAR, O MY PEOPLE, AND I WILL TESTIFY UNTO THEE: O ISRAEL, IF THOU WILTA HEARKEN UNTO ME;,I# 9 THERE SHALL NO STRANGE GOD BE IN THEE; NEITHER SHALT THOU WORSHIP ANYI STRANGE GOD.EM# 10 I AM THE LORD THY GOD, WHICH BROUGHT THEE OUT OF THE LAND OF EGYPT: OPENN$ THY MOUTH WIDE, AND I WILL FILL IT.J# 11 BUT MY PEOPLE WOULD NOT HEARKEN TO MY VOICE; AND ISRAEL WOULD NONE OF ME.K# 12 SO I GAVE THEM UP UNTO THEIR OWN HEARTS LUST: AND THEY WALKED IN THEIR  OWN COUNSELS.I# 13 OH THAT MY PEOPLE HAD HEARKENED UNTO ME, AND ISRAEL HAD WALKED IN MYO WAYS!I# 14 I SHOULD SOON HAVE SUBDUED THEIR ENEMIES, AND TURNED MY HAND AGAINSTB THEIR ADVERSARIES.AJ# 15 THE HATERS OF THE LORD SHOULD HAVE SUBMITTED THEMSELVES UNTO HIM: BUT) THEIR TIME SHOULD HAVE ENDURED FOR EVER.TH# 16 HE SHOULD HAVE FED THEM ALSO WITH THE FINEST OF THE WHEAT: AND WITH4 HONEY OUT OF THE ROCK SHOULD I HAVE SATISFIED THEE. = CHAPTER 82 TN# 1 GOD STANDETH IN THE CONGREGATION OF THE MIGHTY; HE JUDGETH AMONG THE GODS.J# 2 HOW LONG WILL YE JUDGE UNJUSTLY, AND ACCEPT THE PERSONS OF THE WICKED? SELAH. J# 3 DEFEND THE POOR AND FATHERLESS: DO JUSTICE TO THE AFFLICTED AND NEEDY.G# 4 DELIVER THE POOR AND NEEDY: RID THEM OUT OF THE HAND OF THE WICKED. J# 5 THEY KNOW NOT, NEITHER WILL THEY UNDERSTAND; THEY WA00q87-7<%X>%+%O-%TADATADATALK ON IN DARKNESS:4 ALL THE FOUNDATIONS OF THE EARTH ARE OUT OF COURSE.K# 6 I HAVE SAID, YE ARE GODS; AND ALL OF YOU ARE CHILDREN OF THE MOST HIGH.T@# 7 BUT YE SHALL DIE LIKE MEN, AND FALL LIKE ONE OF THE PRINCES.F# 8 ARISE, O GOD, JUDGE THE EARTH: FOR THOU SHALT INHERIT ALL NATIONS. = CHAPTER 83 N# 1 KEEP NOT THOU SILENCE, O GOD: HOLD NOT THY PEACE, AND BE NOT STILL, O GOD.M# 2 FOR, LO, THINE ENEMIES MAKE A TUMULT: AND THEY THAT HATE THEE HAVE LIFTEDY UP THE HEAD.HL# 3 THEY HAVE TAKEN CRAFTY COUNSEL AGAINST THY PEOPLE, AND CONSULTED AGAINST THY HIDDEN ONES.CK# 4 THEY HAVE SAID, COME, AND LET US CUT THEM OFF FROM BEING A NATION; THAT 2 THE NAME OF ISRAEL MAY BE NO MORE IN REMEMBRANCE.K# 5 FOR THEY HAVE CONSULTED TOGETHER WITH ONE CONSENT: THEY ARE CONFEDERATEI AGAINST THEE:M# 6 THE TABERNACLES OF EDOM, AND THE ISHMAELITES; OF MOAB, AND THE HAGARENES;TI# 7 GEBAL, AND AMMON, AND AMALEK; THE PHILISTINES WITH THE INHABITANTS OFE TYRE;I# 8 ASSUR ALSO IS JOINED WITH THEM: THEY HAVE HOLPEN THE CHILDREN OF LOT.P SELAH.DJ# 9 DO UNTO THEM AS UNTO THE MIDIANITES; AS TO SISERA, AS TO JABIN, AT THE BROOK OF KISON:@# 10 WHICH PERISHED AT ENDOR: THEY BECAME AS DUNG FOR THE EARTH.J# 11 MAKE THEIR NOBLES LIKE OREB, AND LIKE ZEEB: YEA, ALL THEIR PRINCES AS ZEBAH, AND AS ZALMUNNA:H# 12 WHO SAID, LET US TAKE TO OURSELVES THE HOUSES OF GOD IN POSSESSION.F# 13 O MY GOD, MAKE THEM LIKE A WHEEL; AS THE STUBBLE BEFORE THE WIND.J# 14 AS THE FIRE BURNETH A WOOD, AND AS THE FLAME SETTETH THE MOUNTAINS ON FIRE;M# 15 SO PERSECUTE THEM WITH THY TEMPEST, AND MAKE THEM AFRAID WITH THY STORM. F# 16 FILL THEIR FACES WITH SHAME; THAT THEY MAY SEEK THY NAME, O LORD.J# 17 LET THEM BE CONFOUNDED AND TROUBLED FOR EVER; YEA, LET THEM BE PUT TO SHAME, AND PERISH:NK# 18 THAT MEN MAY KNOW THAT THOU, WHOSE NAME ALONE IS JEHOVAH, ART THE MOST  HIGH OVER ALL THE EARTH.. = CHAPTER 84 ,5# 1 HOW AMIABLE ARE THY TABERNACLES, O LORD OF HOSTS!.L# 2 MY SOUL LONGETH, YEA, EVEN FAINTETH FOR THE COURTS OF THE LORD: MY HEART, AND MY FLESH CRIETH OUT FOR THE LIVING GOD.M# 3 YEA, THE SPARROW HATH FOUND AN HOUSE, AND THE SWALLOW A NEST FOR HERSELF,TN WHERE SHE MAY LAY HER YOUNG, EVEN THINE ALTARS, O LORD OF HOSTS, MY KING, AND MY GOD.I# 4 BLESSED ARE THEY THAT DWELL IN THY HOUSE: THEY WILL BE STILL PRAISING THEE. SELAH.EM# 5 BLESSED IS THE MAN WHOSE STRENGTH IS IN THEE; IN WHOSE HEART ARE THE WAYS OF THEM. H# 6 WHO PASSING THROUGH THE VALLEY OF BACA MAKE IT A WELL; THE RAIN ALSO FILLETH THE POOLS.HJ# 7 THEY GO FROM STRENGTH TO STRENGTH, EVERY ONE OF THEM IN ZION APPEARETH BEFORE GOD.I# 8 O LORD GOD OF HOSTS, HEAR MY PRAYER: GIVE EAR, O GOD OF JACOB. SELAH.RG# 9 BEHOLD, O GOD OUR SHIELD, AND LOOK UPON THE FACE OF THINE ANOINTED.LI# 10 FOR A DAY IN THY COURTS IS BETTER THAN A THOUSAND. I HAD RATHER BE A.M DOORKEEPER IN THE HOUSE OF MY GOD, THAN TO DWELL IN THE TENTS OF WICKEDNESS.TG# 11 FOR THE LORD GOD IS A SUN AND SHIELD: THE LORD WILL GIVE GRACE ANDAE GLORY: NO GOOD THING WILL HE WITHHOLD FROM THEM THAT WALK UPRIGHTLY.O?# 12 O LORD OF HOSTS, BLESSED IS THE MAN THAT TRUSTETH IN THEE. = CHAPTER 85 OM# 1 LORD, THOU HAST BEEN FAVOURABLE UNTO THY LAND: THOU HAST BROUGHT BACK THEH CAPTIVITY OF JACOB.H# 2 THOU HAST FORGIVEN THE INIQUITY OF THY PEOPLE, THOU HAST COVERED ALL THEIR SIN. SELAH.I# 3 THOU HAST TAKEN AWAY ALL THY WRATH: THOU HAST TURNED THYSELF FROM THE  FIERCENESS OF THINE ANGER.RG# 4 TURN US, O GOD OF OUR SALVATION, AND CAUSE THINE ANGER TOWARD US TO  CEASE.LJ# 5 WILT THOU BE ANGRY WITH US FOR EVER? WILT THOU DRAW OUT THINE ANGER TO ALL GENERATIONS?SG# 6 WILT THOU NOT REVIVE US AGAIN: THAT THY PEOPLE MAY REJOICE IN THEE?T:# 7 SHEW US THY MERCY, O LORD, AND GRANT US THY SALVATION.J# 8 I WILL HEAR WHAT GOD THE LORD WILL SPEAK: FOR HE WILL SPEAK PEACE UNTOE HIS PEOPLE, AND TO HIS SAINTS: BUT LET THEM NOT TURN AGAIN TO FOLLY.NL# 9 SURELY HIS SALVATION IS NIGH THEM THAT FEAR HIM; THAT GLORY MAY DWELL IN OUR LAND.J# 10 MERCY AND TRUTH ARE MET TOGETHER; RIGHTEOUSNESS AND PEACE HAVE KI00q@7b5D%5%T6%! !SSED EACH OTHER.K# 11 TRUTH SHALL SPRING OUT OF THE EARTH; AND RIGHTEOUSNESS SHALL LOOK DOWNU FROM HEAVEN.HJ# 12 YEA, THE LORD SHALL GIVE THAT WHICH IS GOOD; AND OUR LAND SHALL YIELD HER INCREASE.J# 13 RIGHTEOUSNESS SHALL GO BEFORE HIM; AND SHALL SET US IN THE WAY OF HIS STEPS.L = CHAPTER 86 AA# 1 BOW DOWN THINE EAR, O LORD, HEAR ME: FOR I AM POOR AND NEEDY.II# 2 PRESERVE MY SOUL; FOR I AM HOLY: O THOU MY GOD, SAVE THY SERVANT THATR TRUSTETH IN THEE.;# 3 BE MERCIFUL UNTO ME, O LORD: FOR I CRY UNTO THEE DAILY.K# 4 REJOICE THE SOUL OF THY SERVANT: FOR UNTO THEE, O LORD, DO I LIFT UP MY SOUL.J# 5 FOR THOU, LORD, ART GOOD, AND READY TO FORGIVE; AND PLENTEOUS IN MERCY# UNTO ALL THEM THAT CALL UPON THEE.SC# 6 GIVE EAR, O LORD, UNTO MY PRAYER; AND ATTEND TO THE VOICE OF MYL SUPPLICATIONS.L# 7 IN THE DAY OF MY TROUBLE I WILL CALL UPON THEE: FOR THOU WILT ANSWER ME.J# 8 AMONG THE GODS THERE IS NONE LIKE UNTO THEE, O LORD; NEITHER ARE THERE ANY WORKS LIKE UNTO THY WORKS.,I# 9 ALL NATIONS WHOM THOU HAST MADE SHALL COME AND WORSHIP BEFORE THEE, OF" LORD; AND SHALL GLORIFY THY NAME.G# 10 FOR THOU ART GREAT, AND DOEST WONDROUS THINGS: THOU ART GOD ALONE.EJ# 11 TEACH ME THY WAY, O LORD; I WILL WALK IN THY TRUTH: UNITE MY HEART TO FEAR THY NAME. M# 12 I WILL PRAISE THEE, O LORD MY GOD, WITH ALL MY HEART: AND I WILL GLORIFYL THY NAME FOR EVERMORE.UK# 13 FOR GREAT IS THY MERCY TOWARD ME: AND THOU HAST DELIVERED MY SOUL FROMI THE LOWEST HELL.YM# 14 O GOD, THE PROUD ARE RISEN AGAINST ME, AND THE ASSEMBLIES OF VIOLENT MEND> HAVE SOUGHT AFTER MY SOUL; AND HAVE NOT SET THEE BEFORE THEM.G# 15 BUT THOU, O LORD, ART A GOD FULL OF COMPASSION, AND GRACIOUS, LONG - SUFFERING, AND PLENTEOUS IN MERCY AND TRUTH. G# 16 O TURN UNTO ME, AND HAVE MERCY UPON ME; GIVE THY STRENGTH UNTO THYR- SERVANT, AND SAVE THE SON OF THINE HANDMAID.LI# 17 SHEW ME A TOKEN FOR GOOD; THAT THEY WHICH HATE ME MAY SEE IT, AND BE ? ASHAMED: BECAUSE THOU, LORD, HAST HOLPEN ME, AND COMFORTED ME. = CHAPTER 87 ,# 1 HIS FOUNDATION IS IN THE HOLY MOUNTAINS.K# 2 THE LORD LOVETH THE GATES OF ZION MORE THAN ALL THE DWELLINGS OF JACOB.O=# 3 GLORIOUS THINGS ARE SPOKEN OF THEE, O CITY OF GOD. SELAH.SI# 4 I WILL MAKE MENTION OF RAHAB AND BABYLON TO THEM THAT KNOW ME: BEHOLD = PHILISTIA, AND TYRE, WITH ETHIOPIA; THIS MAN WAS BORN THERE.TL# 5 AND OF ZION IT SHALL BE SAID, THIS AND THAT MAN WAS BORN IN HER: AND THE% HIGHEST HIMSELF SHALL ESTABLISH HER.AJ# 6 THE LORD SHALL COUNT, WHEN HE WRITETH UP THE PEOPLE, THAT THIS MAN WAS BORN THERE. SELAH.HL# 7 AS WELL THE SINGERS AS THE PLAYERS ON INSTRUMENTS SHALL BE THERE: ALL MY SPRINGS ARE IN THEE.R = CHAPTER 88 G# 1 O LORD GOD OF MY SALVATION, I HAVE CRIED DAY AND NIGHT BEFORE THEE:AB# 2 LET MY PRAYER COME BEFORE THEE: INCLINE THINE EAR UNTO MY CRY;M# 3 FOR MY SOUL IS FULL OF TROUBLES: AND MY LIFE DRAWETH NIGH UNTO THE GRAVE.DM# 4 I AM COUNTED WITH THEM THAT GO DOWN INTO THE PIT: I AM AS A MAN THAT HATH NO STRENGTH:CH# 5 FREE AMONG THE DEAD, LIKE THE SLAIN THAT LIE IN THE GRAVE, WHOM THOU9 REMEMBEREST NO MORE: AND THEY ARE CUT OFF FROM THY HAND.HC# 6 THOU HAST LAID ME IN THE LOWEST PIT, IN DARKNESS, IN THE DEEPS.OI# 7 THY WRATH LIETH HARD UPON ME, AND THOU HAST AFFLICTED ME WITH ALL THYY WAVES. SELAH.J# 8 THOU HAST PUT AWAY MINE ACQUAINTANCE FAR FROM ME; THOU HAST MADE ME AN> ABOMINATION UNTO THEM: I AM SHUT UP, AND I CANNOT COME FORTH.M# 9 MINE EYE MOURNETH BY REASON OF AFFLICTION: LORD, I HAVE CALLED DAILY UPON / THEE, I HAVE STRETCHED OUT MY HANDS UNTO THEE. H# 10 WILT THOU SHEW WONDERS TO THE DEAD? SHALL THE DEAD ARISE AND PRAISE THEE? SELAH.UK# 11 SHALL THY LOVINGKINDNESS BE DECLARED IN THE GRAVE? OR THY FAITHFULNESSI IN DESTRUCTION?I# 12 SHALL THY WONDERS BE KNOWN IN THE DARK? AND THY RIGHTEOUSNESS IN THE  LAND OF FORGETFULNESS?RK# 13 BUT UNTO THEE HAVE I CRIED, O LORD; AND IN THE MORNING SHALL MY PRAYERA PREVENT THEE.J# 14 LORD, WHY CASTEST THOU OFF MY SOUL? WHY HIDEST THOU THY FACE FROM ME?I# 15 I AM AFFLICTED AND READY TO DIE FROM MY YOUTH U00qH7-7<%X>%+%O-%TADATADATAP: WHILE I SUFFER THY  TERRORS I AM DISTRACTED.TA# 16 THY FIERCE WRATH GOETH OVER ME; THY TERRORS HAVE CUT ME OFF.NG# 17 THEY CAME ROUND ABOUT ME DAILY LIKE WATER; THEY COMPASSED ME ABOUT2 TOGETHER.K# 18 LOVER AND FRIEND HAST THOU PUT FAR FROM ME, AND MINE ACQUAINTANCE INTOL DARKNESS. = CHAPTER 89 HN# 1 I WILL SING OF THE MERCIES OF THE LORD FOR EVER: WITH MY MOUTH WILL I MAKE+ KNOWN THY FAITHFULNESS TO ALL GENERATIONS. M# 2 FOR I HAVE SAID, MERCY SHALL BE BUILT UP FOR EVER: THY FAITHFULNESS SHALTW$ THOU ESTABLISH IN THE VERY HEAVENS.E# 3 I HAVE MADE A COVENANT WITH MY CHOSEN, I HAVE SWORN UNTO DAVID MYO SERVANT,TF# 4 THY SEED WILL I ESTABLISH FOR EVER, AND BUILD UP THY THRONE TO ALL GENERATIONS. SELAH.K# 5 AND THE HEAVENS SHALL PRAISE THY WONDERS, O LORD: THY FAITHFULNESS ALSO # IN THE CONGREGATION OF THE SAINTS.MK# 6 FOR WHO IN THE HEAVEN CAN BE COMPARED UNTO THE LORD? WHO AMONG THE SONSS, OF THE MIGHTY CAN BE LIKENED UNTO THE LORD?L# 7 GOD IS GREATLY TO BE FEARED IN THE ASSEMBLY OF THE SAINTS, AND TO BE HAD- IN REVERENCE OF ALL THEM THAT ARE ABOUT HIM.TG# 8 O LORD GOD OF HOSTS, WHO IS A STRONG LORD LIKE UNTO THEE? OR TO THY  FAITHFULNESS ROUND ABOUT THEE?TI# 9 THOU RULEST THE RAGING OF THE SEA: WHEN THE WAVES THEREOF ARISE, THOUY STILLEST THEM. F# 10 THOU HAST BROKEN RAHAB IN PIECES, AS ONE THAT IS SLAIN; THOU HAST- SCATTERED THINE ENEMIES WITH THY STRONG ARM.WM# 11 THE HEAVENS ARE THINE, THE EARTH ALSO IS THINE: AS FOR THE WORLD AND THEE) FULNESS THEREOF, THOU HAST FOUNDED THEM.IK# 12 THE NORTH AND THE SOUTH THOU HAST CREATED THEM: TABOR AND HERMON SHALLD REJOICE IN THY NAME. L# 13 THOU HAST A MIGHTY ARM: STRONG IS THY HAND, AND HIGH IS THY RIGHT HAND.K# 14 JUSTICE AND JUDGMENT ARE THE HABITATION OF THY THRONE: MERCY AND TRUTHL SHALL GO BEFORE THY FACE.I# 15 BLESSED IS THE PEOPLE THAT KNOW THE JOYFUL SOUND: THEY SHALL WALK, OE' LORD, IN THE LIGHT OF THY COUNTENANCE.EI# 16 IN THY NAME SHALL THEY REJOICE ALL THE DAY: AND IN THY RIGHTEOUSNESST SHALL THEY BE EXALTED. I# 17 FOR THOU ART THE GLORY OF THEIR STRENGTH: AND IN THY FAVOUR OUR HORNO SHALL BE EXALTED.I# 18 FOR THE LORD IS OUR DEFENCE; AND THE HOLY ONE OF ISRAEL IS OUR KING.TI# 19 THEN THOU SPAKEST IN VISION TO THY HOLY ONE, AND SAIDST, I HAVE LAID K HELP UPON ONE THAT IS MIGHTY; I HAVE EXALTED ONE CHOSEN OUT OF THE PEOPLE. I# 20 I HAVE FOUND DAVID MY SERVANT; WITH MY HOLY OIL HAVE I ANOINTED HIM:TK# 21 WITH WHOM MY HAND SHALL BE ESTABLISHED: MINE ARM ALSO SHALL STRENGTHENU HIM.J# 22 THE ENEMY SHALL NOT EXACT UPON HIM; NOR THE SON OF WICKEDNESS AFFLICT HIM. M# 23 AND I WILL BEAT DOWN HIS FOES BEFORE HIS FACE, AND PLAGUE THEM THAT HATE  HIM.EM# 24 BUT MY FAITHFULNESS AND MY MERCY SHALL BE WITH HIM: AND IN MY NAME SHALL  HIS HORN BE EXALTED.HK# 25 I WILL SET HIS HAND ALSO IN THE SEA, AND HIS RIGHT HAND IN THE RIVERS. I# 26 HE SHALL CRY UNTO ME, THOU ART MY FATHER, MY GOD, AND THE ROCK OF MY SALVATION.MK# 27 ALSO I WILL MAKE HIM MY FIRSTBORN, HIGHER THAN THE KINGS OF THE EARTH.EK# 28 MY MERCY WILL I KEEP FOR HIM FOR EVERMORE, AND MY COVENANT SHALL STAND  FAST WITH HIM.TM# 29 HIS SEED ALSO WILL I MAKE TO ENDURE FOR EVER, AND HIS THRONE AS THE DAYS OF HEAVEN.AB# 30 IF HIS CHILDREN FORSAKE MY LAW, AND WALK NOT IN MY JUDGMENTS;=# 31 IF THEY BREAK MY STATUTES, AND KEEP NOT MY COMMANDMENTS;HK# 32 THEN WILL I VISIT THEIR TRANSGRESSION WITH THE ROD, AND THEIR INIQUITY, WITH STRIPES.I# 33 NEVERTHELESS MY LOVINGKINDNESS WILL I NOT UTTERLY TAKE FROM HIM, NOR SUFFER MY FAITHFULNESS TO FAIL.M# 34 MY COVENANT WILL I NOT BREAK, NOR ALTER THE THING THAT IS GONE OUT OF MYM LIPS.E# 35 ONCE HAVE I SWORN BY MY HOLINESS THAT I WILL NOT LIE UNTO DAVID.YI# 36 HIS SEED SHALL ENDURE FOR EVER, AND HIS THRONE AS THE SUN BEFORE ME.UL# 37 IT SHALL BE ESTABLISHED FOR EVER AS THE MOON, AND AS A FAITHFUL WITNESS IN HEAVEN. SELAH.I# 38 BUT THOU HAST CAST OFF AND ABHORRED, THOU HAST BEEN WROTH WITH THINEN ANOINTED.L# 39 THOU HAST MADE VOID THE COVENANT OF THY SERVANT: THOU HAST PROFANED HIS# CROWN B00qP7b5D%5%T6%! !Y CASTING IT TO THE GROUND. M# 40 THOU HAST BROKEN DOWN ALL HIS HEDGES; THOU HAST BROUGHT HIS STRONG HOLDSI TO RUIN.YL# 41 ALL THAT PASS BY THE WAY SPOIL HIM: HE IS A REPROACH TO HIS NEIGHBOURS.K# 42 THOU HAST SET UP THE RIGHT HAND OF HIS ADVERSARIES; THOU HAST MADE ALLE HIS ENEMIES TO REJOICE.J# 43 THOU HAST ALSO TURNED THE EDGE OF HIS SWORD, AND HAST NOT MADE HIM TO STAND IN THE BATTLE.WG# 44 THOU HAST MADE HIS GLORY TO CEASE, AND CAST HIS THRONE DOWN TO THEA GROUND.J# 45 THE DAYS OF HIS YOUTH HAST THOU SHORTENED: THOU HAST COVERED HIM WITH SHAME. SELAH.J# 46 HOW LONG, LORD? WILT THOU HIDE THYSELF FOR EVER? SHALL THY WRATH BURN LIKE FIRE?IM# 47 REMEMBER HOW SHORT MY TIME IS: WHEREFORE HAST THOU MADE ALL MEN IN VAIN?DJ# 48 WHAT MAN IS HE THAT LIVETH, AND SHALL NOT SEE DEATH? SHALL HE DELIVER, HIS SOUL FROM THE HAND OF THE GRAVE? SELAH.I# 49 LORD, WHERE ARE THY FORMER LOVINGKINDNESSES, WHICH THOU SWAREST UNTO  DAVID IN THY TRUTH?L# 50 REMEMBER, LORD, THE REPROACH OF THY SERVANTS; HOW I DO BEAR IN MY BOSOM' THE REPROACH OF ALL THE MIGHTY PEOPLE;AI# 51 WHEREWITH THINE ENEMIES HAVE REPROACHED, O LORD; WHEREWITH THEY HAVEU, REPROACHED THE FOOTSTEPS OF THINE ANOINTED.6# 52 BLESSED BE THE LORD FOR EVERMORE. AMEN, AND AMEN. = CHAPTER 90 ?# 1 LORD, THOU HAST BEEN OUR DWELLING PLACE IN ALL GENERATIONS. J# 2 BEFORE THE MOUNTAINS WERE BROUGHT FORTH, OR EVER THOU HADST FORMED THEI EARTH AND THE WORLD, EVEN FROM EVERLASTING TO EVERLASTING, THOU ART GOD.RL# 3 THOU TURNEST MAN TO DESTRUCTION; AND SAYEST, RETURN, YE CHILDREN OF MEN.K# 4 FOR A THOUSAND YEARS IN THY SIGHT ARE BUT AS YESTERDAY WHEN IT IS PAST,  AND AS A WATCH IN THE NIGHT.EH# 5 THOU CARRIEST THEM AWAY AS WITH A FLOOD; THEY ARE AS A SLEEP: IN THE. MORNING THEY ARE LIKE GRASS WHICH GROWETH UP.K# 6 IN THE MORNING IT FLOURISHETH, AND GROWETH UP; IN THE EVENING IT IS CUTW DOWN, AND WITHERETH.VI# 7 FOR WE ARE CONSUMED BY THINE ANGER, AND BY THY WRATH ARE WE TROUBLED.EM# 8 THOU HAST SET OUR INIQUITIES BEFORE THEE, OUR SECRET SINS IN THE LIGHT OFR THY COUNTENANCE.EJ# 9 FOR ALL OUR DAYS ARE PASSED AWAY IN THY WRATH: WE SPEND OUR YEARS AS A TALE THAT IS TOLD. L# 10 THE DAYS OF OUR YEARS ARE THREESCORE YEARS AND TEN; AND IF BY REASON OFK STRENGTH THEY BE FOURSCORE YEARS, YET IS THEIR STRENGTH LABOUR AND SORROW;G) FOR IT IS SOON CUT OFF, AND WE FLY AWAY.NL# 11 WHO KNOWETH THE POWER OF THINE ANGER? EVEN ACCORDING TO THY FEAR, SO IS THY WRATH.WF# 12 SO TEACH US TO NUMBER OUR DAYS, THAT WE MAY APPLY OUR HEARTS UNTO WISDOM.D# 13 RETURN, O LORD, HOW LONG? AND LET IT REPENT THEE CONCERNING THY SERVANTS.K# 14 O SATISFY US EARLY WITH THY MERCY; THAT WE MAY REJOICE AND BE GLAD ALLR OUR DAYS.K# 15 MAKE US GLAD ACCORDING TO THE DAYS WHEREIN THOU HAST AFFLICTED US, ANDR% THE YEARS WHEREIN WE HAVE SEEN EVIL.RD# 16 LET THY WORK APPEAR UNTO THY SERVANTS, AND THY GLORY UNTO THEIR CHILDREN.J# 17 AND LET THE BEAUTY OF THE LORD OUR GOD BE UPON US: AND ESTABLISH THOUM THE WORK OF OUR HANDS UPON US; YEA, THE WORK OF OUR HANDS ESTABLISH THOU IT.O = CHAPTER 91 ?K# 1 HE THAT DWELLETH IN THE SECRET PLACE OF THE MOST HIGH SHALL ABIDE UNDERI THE SHADOW OF THE ALMIGHTY.K# 2 I WILL SAY OF THE LORD, HE IS MY REFUGE AND MY FORTRESS: MY GOD; IN HIMR WILL I TRUST.K# 3 SURELY HE SHALL DELIVER THEE FROM THE SNARE OF THE FOWLER, AND FROM THEP NOISOME PESTILENCE.I# 4 HE SHALL COVER THEE WITH HIS FEATHERS, AND UNDER HIS WINGS SHALT THOU 2 TRUST: HIS TRUTH SHALL BE THY SHIELD AND BUCKLER.L# 5 THOU SHALT NOT BE AFRAID FOR THE TERROR BY NIGHT; NOR FOR THE ARROW THAT FLIETH BY DAY; L# 6 NOR FOR THE PESTILENCE THAT WALKETH IN DARKNESS; NOR FOR THE DESTRUCTION THAT WASTETH AT NOONDAY.LJ# 7 A THOUSAND SHALL FALL AT THY SIDE, AND TEN THOUSAND AT THY RIGHT HAND;! BUT IT SHALL NOT COME NIGH THEE. L# 8 ONLY WITH THINE EYES SHALT THOU BEHOLD AND SEE THE REWARD OF THE WICKED.L# 9 BECAUSE THOU HAST MADE THE LORD, WHICH IS MY REFUGE, EVEN THE MOST HIGH, THY HABITATION;L# 10 THERE SHALL NO EVIL BEFALL THEE, NEITHER SHALL ANY PLAGUE COME NIGH00qX7-7<%X>%+%O-%TADATADATA THY DWELLING.K# 11 FOR HE SHALL GIVE HIS ANGELS CHARGE OVER THEE, TO KEEP THEE IN ALL THYR WAYS.L# 12 THEY SHALL BEAR THEE UP IN THEIR HANDS, LEST THOU DASH THY FOOT AGAINST A STONE.,L# 13 THOU SHALT TREAD UPON THE LION AND ADDER: THE YOUNG LION AND THE DRAGON SHALT THOU TRAMPLE UNDER FEET.EJ# 14 BECAUSE HE HATH SET HIS LOVE UPON ME, THEREFORE WILL I DELIVER HIM: I5 WILL SET HIM ON HIGH, BECAUSE HE HATH KNOWN MY NAME.OH# 15 HE SHALL CALL UPON ME, AND I WILL ANSWER HIM: I WILL BE WITH HIM IN- TROUBLE; I WILL DELIVER HIM, AND HONOUR HIM.AB# 16 WITH LONG LIFE WILL I SATISFY HIM, AND SHEW HIM MY SALVATION. = CHAPTER 92 M# 1 IT IS A GOOD THING TO GIVE THANKS UNTO THE LORD, AND TO SING PRAISES UNTO  THY NAME, O MOST HIGH:DI# 2 TO SHEW FORTH THY LOVINGKINDNESS IN THE MORNING, AND THY FAITHFULNESSB EVERY NIGHT,SK# 3 UPON AN INSTRUMENT OF TEN STRINGS, AND UPON THE PSALTERY; UPON THE HARPB WITH A SOLEMN SOUND. M# 4 FOR THOU, LORD, HAST MADE ME GLAD THROUGH THY WORK: I WILL TRIUMPH IN THEN WORKS OF THY HANDS.D# 5 O LORD, HOW GREAT ARE THY WORKS! AND THY THOUGHTS ARE VERY DEEP.C# 6 A BRUTISH MAN KNOWETH NOT; NEITHER DOTH A FOOL UNDERSTAND THIS.IM# 7 WHEN THE WICKED SPRING AS THE GRASS, AND WHEN ALL THE WORKERS OF INIQUITY : DO FLOURISH; IT IS THAT THEY SHALL BE DESTROYED FOR EVER:/# 8 BUT THOU, LORD, ART MOST HIGH FOR EVERMORE.EL# 9 FOR, LO, THINE ENEMIES, O LORD, FOR, LO, THINE ENEMIES SHALL PERISH; ALL, THE WORKERS OF INIQUITY SHALL BE SCATTERED.I# 10 BUT MY HORN SHALT THOU EXALT LIKE THE HORN OF AN UNICORN: I SHALL BE  ANOINTED WITH FRESH OIL.YK# 11 MINE EYE ALSO SHALL SEE MY DESIRE ON MINE ENEMIES, AND MINE EARS SHALLU6 HEAR MY DESIRE OF THE WICKED THAT RISE UP AGAINST ME.J# 12 THE RIGHTEOUS SHALL FLOURISH LIKE THE PALM TREE: HE SHALL GROW LIKE A CEDAR IN LEBANON.I# 13 THOSE THAT BE PLANTED IN THE HOUSE OF THE LORD SHALL FLOURISH IN THEE COURTS OF OUR GOD.LI# 14 THEY SHALL STILL BRING FORTH FRUIT IN OLD AGE; THEY SHALL BE FAT ANDE FLOURISHING;ME# 15 TO SHEW THAT THE LORD IS UPRIGHT: HE IS MY ROCK, AND THERE IS NON UNRIGHTEOUSNESS IN HIM. = CHAPTER 93 SK# 1 THE LORD REIGNETH, HE IS CLOTHED WITH MAJESTY; THE LORD IS CLOTHED WITHTJ STRENGTH, WHEREWITH HE HATH GIRDED HIMSELF: THE WORLD ALSO IS STABLISHED, THAT IT CANNOT BE MOVED. @# 2 THY THRONE IS ESTABLISHED OF OLD: THOU ART FROM EVERLASTING.M# 3 THE FLOODS HAVE LIFTED UP, O LORD, THE FLOODS HAVE LIFTED UP THEIR VOICE;L THE FLOODS LIFT UP THEIR WAVES.M# 4 THE LORD ON HIGH IS MIGHTIER THAN THE NOISE OF MANY WATERS, YEA, THAN THE  MIGHTY WAVES OF THE SEA.NM# 5 THY TESTIMONIES ARE VERY SURE: HOLINESS BECOMETH THINE HOUSE, O LORD, FORD EVER. = CHAPTER 94 E# 1 O LORD GOD, TO WHOM VENGEANCE BELONGETH; O GOD, TO WHOM VENGEANCED BELONGETH, SHEW THYSELF. K# 2 LIFT UP THYSELF, THOU JUDGE OF THE EARTH: RENDER A REWARD TO THE PROUD.RG# 3 LORD, HOW LONG SHALL THE WICKED, HOW LONG SHALL THE WICKED TRIUMPH?PK# 4 HOW LONG SHALL THEY UTTER AND SPEAK HARD THINGS? AND ALL THE WORKERS OFH INIQUITY BOAST THEMSELVES?AH# 5 THEY BREAK IN PIECES THY PEOPLE, O LORD, AND AFFLICT THINE HERITAGE.D# 6 THEY SLAY THE WIDOW AND THE STRANGER, AND MURDER THE FATHERLESS.H# 7 YET THEY SAY, THE LORD SHALL NOT SEE, NEITHER SHALL THE GOD OF JACOB REGARD IT.NJ# 8 UNDERSTAND, YE BRUTISH AMONG THE PEOPLE: AND YE FOOLS, WHEN WILL YE BE WISE?M# 9 HE THAT PLANTED THE EAR, SHALL HE NOT HEAR? HE THAT FORMED THE EYE, SHALLT HE NOT SEE?K# 10 HE THAT CHASTISETH THE HEATHEN, SHALL NOT HE CORRECT? HE THAT TEACHETHI" MAN KNOWLEDGE, SHALL NOT HE KNOW?@# 11 THE LORD KNOWETH THE THOUGHTS OF MAN, THAT THEY ARE VANITY.M# 12 BLESSED IS THE MAN WHOM THOU CHASTENEST, O LORD, AND TEACHEST HIM OUT OFY THY LAW;OM# 13 THAT THOU MAYEST GIVE HIM REST FROM THE DAYS OF ADVERSITY, UNTIL THE PIT  BE DIGGED FOR THE WICKED.K# 14 FOR THE LORD WILL NOT CAST OFF HIS PEOPLE, NEITHER WILL HE FORSAKE HIS INHERITANCE.AI# 15 BUT JUDGMENT SHALL RETURN UNTO RIGHTEOUSNESS: AND ALL THE UPRIGHT IN, HEART SHALL FOLLOW IT. L# 16 WHO WILL RISE UP FOR ME AGAINST T00q`7b5D%5%T6%! !HE EVILDOERS? OR WHO WILL STAND UP FOR$ ME AGAINST THE WORKERS OF INIQUITY?K# 17 UNLESS THE LORD HAD BEEN MY HELP, MY SOUL HAD ALMOST DWELT IN SILENCE.OB# 18 WHEN I SAID, MY FOOT SLIPPETH; THY MERCY, O LORD, HELD ME UP.L# 19 IN THE MULTITUDE OF MY THOUGHTS WITHIN ME THY COMFORTS DELIGHT MY SOUL.J# 20 SHALL THE THRONE OF INIQUITY HAVE FELLOWSHIP WITH THEE, WHICH FRAMETH MISCHIEF BY A LAW?EK# 21 THEY GATHER THEMSELVES TOGETHER AGAINST THE SOUL OF THE RIGHTEOUS, AND  CONDEMN THE INNOCENT BLOOD.E# 22 BUT THE LORD IS MY DEFENCE; AND MY GOD IS THE ROCK OF MY REFUGE.FL# 23 AND HE SHALL BRING UPON THEM THEIR OWN INIQUITY, AND SHALL CUT THEM OFFC IN THEIR OWN WICKEDNESS; YEA, THE LORD OUR GOD SHALL CUT THEM OFF.L = CHAPTER 95 IM# 1 O COME, LET US SING UNTO THE LORD: LET US MAKE A JOYFUL NOISE TO THE ROCKA OF OUR SALVATION.H# 2 LET US COME BEFORE HIS PRESENCE WITH THANKSGIVING, AND MAKE A JOYFUL NOISE UNTO HIM WITH PSALMS.A# 3 FOR THE LORD IS A GREAT GOD, AND A GREAT KING ABOVE ALL GODS.LK# 4 IN HIS HAND ARE THE DEEP PLACES OF THE EARTH: THE STRENGTH OF THE HILLS IS HIS ALSO.LF# 5 THE SEA IS HIS, AND HE MADE IT: AND HIS HANDS FORMED THE DRY LAND.I# 6 O COME, LET US WORSHIP AND BOW DOWN: LET US KNEEL BEFORE THE LORD OUR MAKER.EM# 7 FOR HE IS OUR GOD; AND WE ARE THE PEOPLE OF HIS PASTURE, AND THE SHEEP OFA, HIS HAND. TO DAY IF YE WILL HEAR HIS VOICE,F# 8 HARDEN NOT YOUR HEART, AS IN THE PROVOCATION, AND AS IN THE DAY OF TEMPTATION IN THE WILDERNESS:=# 9 WHEN YOUR FATHERS TEMPTED ME, PROVED ME, AND SAW MY WORK.AK# 10 FORTY YEARS LONG WAS I GRIEVED WITH THIS GENERATION, AND SAID, IT IS AHD PEOPLE THAT DO ERR IN THEIR HEART, AND THEY HAVE NOT KNOWN MY WAYS:K# 11 UNTO WHOM I SWARE IN MY WRATH THAT THEY SHOULD NOT ENTER INTO MY REST.O = CHAPTER 96 ;G# 1 O SING UNTO THE LORD A NEW SONG: SING UNTO THE LORD, ALL THE EARTH.AL# 2 SING UNTO THE LORD, BLESS HIS NAME; SHEW FORTH HIS SALVATION FROM DAY TO DAY.SF# 3 DECLARE HIS GLORY AMONG THE HEATHEN, HIS WONDERS AMONG ALL PEOPLE.H# 4 FOR THE LORD IS GREAT, AND GREATLY TO BE PRAISED: HE IS TO BE FEARED ABOVE ALL GODS.M# 5 FOR ALL THE GODS OF THE NATIONS ARE IDOLS: BUT THE LORD MADE THE HEAVENS. E# 6 HONOUR AND MAJESTY ARE BEFORE HIM: STRENGTH AND BEAUTY ARE IN HIS SANCTUARY. M# 7 GIVE UNTO THE LORD, O YE KINDREDS OF THE PEOPLE, GIVE UNTO THE LORD GLORY, AND STRENGTH.J# 8 GIVE UNTO THE LORD THE GLORY DUE UNTO HIS NAME: BRING AN OFFERING, AND COME INTO HIS COURTS.J# 9 O WORSHIP THE LORD IN THE BEAUTY OF HOLINESS: FEAR BEFORE HIM, ALL THE EARTH.,J# 10 SAY AMONG THE HEATHEN THAT THE LORD REIGNETH: THE WORLD ALSO SHALL BEB ESTABLISHED THAT IT SHALL NOT BE MOVED: HE SHALL JUDGE THE PEOPLE RIGHTEOUSLY.DJ# 11 LET THE HEAVENS REJOICE, AND LET THE EARTH BE GLAD; LET THE SEA ROAR, AND THE FULNESS THEREOF.NI# 12 LET THE FIELD BE JOYFUL, AND ALL THAT IS THEREIN: THEN SHALL ALL THET TREES OF THE WOOD REJOICEI# 13 BEFORE THE LORD: FOR HE COMETH, FOR HE COMETH TO JUDGE THE EARTH: HEHI SHALL JUDGE THE WORLD WITH RIGHTEOUSNESS, AND THE PEOPLE WITH HIS TRUTH.S = CHAPTER 97 AK# 1 THE LORD REIGNETH; LET THE EARTH REJOICE; LET THE MULTITUDE OF ISLES BEA GLAD THEREOF.K# 2 CLOUDS AND DARKNESS ARE ROUND ABOUT HIM: RIGHTEOUSNESS AND JUDGMENT ARE  THE HABITATION OF HIS THRONE.D# 3 A FIRE GOETH BEFORE HIM, AND BURNETH UP HIS ENEMIES ROUND ABOUT.F# 4 HIS LIGHTNINGS ENLIGHTENED THE WORLD: THE EARTH SAW, AND TREMBLED.M# 5 THE HILLS MELTED LIKE WAX AT THE PRESENCE OF THE LORD, AT THE PRESENCE OFA THE LORD OF THE WHOLE EARTH.UL# 6 THE HEAVENS DECLARE HIS RIGHTEOUSNESS, AND ALL THE PEOPLE SEE HIS GLORY.M# 7 CONFOUNDED BE ALL THEY THAT SERVE GRAVEN IMAGES, THAT BOAST THEMSELVES OFU! IDOLS: WORSHIP HIM, ALL YE GODS.:L# 8 ZION HEARD, AND WAS GLAD; AND THE DAUGHTERS OF JUDAH REJOICED BECAUSE OF THY JUDGMENTS, O LORD.EL# 9 FOR THOU, LORD, ART HIGH ABOVE ALL THE EARTH: THOU ART EXALTED FAR ABOVE ALL GODS.M# 10 YE THAT LOVE THE LORD, HATE EVIL: HE PRESERVETH THE SOULS OF HIS SAINTS; 2 HE DELIVERETH THEM OUT OF THE HAND OF THE WICKED.L# 11 L00qh7-7<%X>%+%O-%TADATADATAIGHT IS SOWN FOR THE RIGHTEOUS, AND GLADNESS FOR THE UPRIGHT IN HEART.M# 12 REJOICE IN THE LORD, YE RIGHTEOUS; AND GIVE THANKS AT THE REMEMBRANCE OFS HIS HOLINESS. = CHAPTER 98 L# 1 O SING UNTO THE LORD A NEW SONG; FOR HE HATH DONE MARVELLOUS THINGS: HIS; RIGHT HAND, AND HIS HOLY ARM, HATH GOTTEN HIM THE VICTORY.LL# 2 THE LORD HATH MADE KNOWN HIS SALVATION: HIS RIGHTEOUSNESS HATH HE OPENLY$ SHEWED IN THE SIGHT OF THE HEATHEN.J# 3 HE HATH REMEMBERED HIS MERCY AND HIS TRUTH TOWARD THE HOUSE OF ISRAEL:> ALL THE ENDS OF THE EARTH HAVE SEEN THE SALVATION OF OUR GOD.L# 4 MAKE A JOYFUL NOISE UNTO THE LORD, ALL THE EARTH: MAKE A LOUD NOISE, AND REJOICE, AND SING PRAISE.G# 5 SING UNTO THE LORD WITH THE HARP; WITH THE HARP, AND THE VOICE OF AO PSALM.:J# 6 WITH TRUMPETS AND SOUND OF CORNET MAKE A JOYFUL NOISE BEFORE THE LORD, THE KING.M# 7 LET THE SEA ROAR, AND THE FULNESS THEREOF; THE WORLD, AND THEY THAT DWELLO THEREIN.EE# 8 LET THE FLOODS CLAP THEIR HANDS: LET THE HILLS BE JOYFUL TOGETHERII# 9 BEFORE THE LORD; FOR HE COMETH TO JUDGE THE EARTH: WITH RIGHTEOUSNESS 6 SHALL HE JUDGE THE WORLD, AND THE PEOPLE WITH EQUITY. = CHAPTER 99 DE# 1 THE LORD REIGNETH; LET THE PEOPLE TREMBLE: HE SITTETH BETWEEN THEH# CHERUBIMS; LET THE EARTH BE MOVED.MC# 2 THE LORD IS GREAT IN ZION; AND HE IS HIGH ABOVE ALL THE PEOPLE.T@# 3 LET THEM PRAISE THY GREAT AND TERRIBLE NAME; FOR IT IS HOLY.M# 4 THE KINGS STRENGTH ALSO LOVETH JUDGMENT; THOU DOST ESTABLISH EQUITY, THOUA/ EXECUTEST JUDGMENT AND RIGHTEOUSNESS IN JACOB.EL# 5 EXALT YE THE LORD OUR GOD, AND WORSHIP AT HIS FOOTSTOOL; FOR HE IS HOLY.K# 6 MOSES AND AARON AMONG HIS PRIESTS, AND SAMUEL AMONG THEM THAT CALL UPONN; HIS NAME; THEY CALLED UPON THE LORD, AND HE ANSWERED THEM.IK# 7 HE SPAKE UNTO THEM IN THE CLOUDY PILLAR: THEY KEPT HIS TESTIMONIES, ANDB! THE ORDINANCE THAT HE GAVE THEM.PH# 8 THOU ANSWEREDST THEM, O LORD OUR GOD: THOU WAST A GOD THAT FORGAVEST9 THEM, THOUGH THOU TOOKEST VENGEANCE OF THEIR INVENTIONS.EJ# 9 EXALT THE LORD OUR GOD, AND WORSHIP AT HIS HOLY HILL; FOR THE LORD OUR GOD IS HOLY.A= CHAPTER 100 4# 1 MAKE A JOYFUL NOISE UNTO THE LORD, ALL YE LANDS.H# 2 SERVE THE LORD WITH GLADNESS: COME BEFORE HIS PRESENCE WITH SINGING.K# 3 KNOW YE THAT THE LORD HE IS GOD: IT IS HE THAT HATH MADE US, AND NOT WEE< OURSELVES; WE ARE HIS PEOPLE, AND THE SHEEP OF HIS PASTURE.L# 4 ENTER INTO HIS GATES WITH THANKSGIVING, AND INTO HIS COURTS WITH PRAISE:* BE THANKFUL UNTO HIM, AND BLESS HIS NAME.M# 5 FOR THE LORD IS GOOD; HIS MERCY IS EVERLASTING; AND HIS TRUTH ENDURETH TOH ALL GENERATIONS. = CHAPTER 101 F# 1 I WILL SING OF MERCY AND JUDGMENT: UNTO THEE, O LORD, WILL I SING.L# 2 I WILL BEHAVE MYSELF WISELY IN A PERFECT WAY. O WHEN WILT THOU COME UNTO6 ME? I WILL WALK WITHIN MY HOUSE WITH A PERFECT HEART.M# 3 I WILL SET NO WICKED THING BEFORE MINE EYES: I HATE THE WORK OF THEM THAT ' TURN ASIDE; IT SHALL NOT CLEAVE TO ME.OJ# 4 A FROWARD HEART SHALL DEPART FROM ME: I WILL NOT KNOW A WICKED PERSON.M# 5 WHOSO PRIVILY SLANDERETH HIS NEIGHBOUR, HIM WILL I CUT OFF: HIM THAT HATHG2 AN HIGH LOOK AND A PROUD HEART WILL NOT I SUFFER.I# 6 MINE EYES SHALL BE UPON THE FAITHFUL OF THE LAND, THAT THEY MAY DWELLW> WITH ME: HE THAT WALKETH IN A PERFECT WAY, HE SHALL SERVE ME.K# 7 HE THAT WORKETH DECEIT SHALL NOT DWELL WITHIN MY HOUSE: HE THAT TELLETHF" LIES SHALL NOT TARRY IN MY SIGHT.K# 8 I WILL EARLY DESTROY ALL THE WICKED OF THE LAND; THAT I MAY CUT OFF ALL ( WICKED DOERS FROM THE CITY OF THE LORD.= CHAPTER 102 :# 1 HEAR MY PRAYER, O LORD, AND LET MY CRY COME UNTO THEE.L# 2 HIDE NOT THY FACE FROM ME IN THE DAY WHEN I AM IN TROUBLE; INCLINE THINE8 EAR UNTO ME: IN THE DAY WHEN I CALL ANSWER ME SPEEDILY.F# 3 FOR MY DAYS ARE CONSUMED LIKE SMOKE, AND MY BONES ARE BURNED AS AN HEARTH.L# 4 MY HEART IS SMITTEN, AND WITHERED LIKE GRASS; SO THAT I FORGET TO EAT MY BREAD.NE# 5 BY REASON OF THE VOICE OF MY GROANING MY BONES CLEAVE TO MY SKIN. J# 6 I AM LIKE A PELICAN OF THE WILDERNESS: I AM LIKE AN OWL OF THE DESERT.:# 7 I WATCH, AND AM AS A SPARR00qp7b5D%5%T6%! !OW ALONE UPON THE HOUSE TOP.J# 8 MINE ENEMIES REPROACH ME ALL THE DAY; AND THEY THAT ARE MAD AGAINST ME ARE SWORN AGAINST ME.I# 9 FOR I HAVE EATEN ASHES LIKE BREAD, AND MINGLED MY DRINK WITH WEEPING.,L# 10 BECAUSE OF THINE INDIGNATION AND THY WRATH: FOR THOU HAST LIFTED ME UP, AND CAST ME DOWN.L# 11 MY DAYS ARE LIKE A SHADOW THAT DECLINETH; AND I AM WITHERED LIKE GRASS.J# 12 BUT THOU, O LORD, SHALL ENDURE FOR EVER; AND THY REMEMBRANCE UNTO ALL GENERATIONS.EL# 13 THOU SHALT ARISE, AND HAVE MERCY UPON ZION: FOR THE TIME TO FAVOUR HER, YEA, THE SET TIME, IS COME.F# 14 FOR THY SERVANTS TAKE PLEASURE IN HER STONES, AND FAVOUR THE DUST THEREOF.AM# 15 SO THE HEATHEN SHALL FEAR THE NAME OF THE LORD, AND ALL THE KINGS OF THEI EARTH THY GLORY.TE# 16 WHEN THE LORD SHALL BUILD UP ZION, HE SHALL APPEAR IN HIS GLORY.KF# 17 HE WILL REGARD THE PRAYER OF THE DESTITUTE, AND NOT DESPISE THEIR PRAYER.K# 18 THIS SHALL BE WRITTEN FOR THE GENERATION TO COME: AND THE PEOPLE WHICH ( SHALL BE CREATED SHALL PRAISE THE LORD.J# 19 FOR HE HATH LOOKED DOWN FROM THE HEIGHT OF HIS SANCTUARY; FROM HEAVEN DID THE LORD BEHOLD THE EARTH;DL# 20 TO HEAR THE GROANING OF THE PRISONER; TO LOOSE THOSE THAT ARE APPOINTED TO DEATH;J# 21 TO DECLARE THE NAME OF THE LORD IN ZION, AND HIS PRAISE IN JERUSALEM;J# 22 WHEN THE PEOPLE ARE GATHERED TOGETHER, AND THE KINGDOMS, TO SERVE THE LORD.># 23 HE WEAKENED MY STRENGTH IN THE WAY; HE SHORTENED MY DAYS.J# 24 I SAID, O MY GOD, TAKE ME NOT AWAY IN THE MIDST OF MY DAYS: THY YEARS ARE THROUGHOUT ALL GENERATIONS.K# 25 OF OLD HAST THOU LAID THE FOUNDATION OF THE EARTH: AND THE HEAVENS ARET THE WORK OF THY HANDS.TM# 26 THEY SHALL PERISH, BUT THOU SHALT ENDURE: YEA, ALL OF THEM SHALL WAX OLD1G LIKE A GARMENT; AS A VESTURE SHALT THOU CHANGE THEM, AND THEY SHALL BE CHANGED: <# 27 BUT THOU ART THE SAME, AND THY YEARS SHALL HAVE NO END.I# 28 THE CHILDREN OF THY SERVANTS SHALL CONTINUE, AND THEIR SEED SHALL BE4 ESTABLISHED BEFORE THEE.N= CHAPTER 103 N# 1 BLESS THE LORD, O MY SOUL: AND ALL THAT IS WITHIN ME, BLESS HIS HOLY NAME.?# 2 BLESS THE LORD, O MY SOUL, AND FORGET NOT ALL HIS BENEFITS:WE# 3 WHO FORGIVETH ALL THINE INIQUITIES; WHO HEALETH ALL THY DISEASES; C# 4 WHO REDEEMETH THY LIFE FROM DESTRUCTION; WHO CROWNETH THEE WITHC# LOVINGKINDNESS AND TENDER MERCIES;GK# 5 WHO SATISFIETH THY MOUTH WITH GOOD THINGS; SO THAT THY YOUTH IS RENEWEDC LIKE THE EAGLES.AM# 6 THE LORD EXECUTETH RIGHTEOUSNESS AND JUDGMENT FOR ALL THAT ARE OPPRESSED.PL# 7 HE MADE KNOWN HIS WAYS UNTO MOSES, HIS ACTS UNTO THE CHILDREN OF ISRAEL.M# 8 THE LORD IS MERCIFUL AND GRACIOUS, SLOW TO ANGER, AND PLENTEOUS IN MERCY. F# 9 HE WILL NOT ALWAYS CHIDE: NEITHER WILL HE KEEP HIS ANGER FOR EVER.K# 10 HE HATH NOT DEALT WITH US AFTER OUR SINS; NOR REWARDED US ACCORDING TON OUR INIQUITIES.L# 11 FOR AS THE HEAVEN IS HIGH ABOVE THE EARTH, SO GREAT IS HIS MERCY TOWARD THEM THAT FEAR HIM.D# 12 AS FAR AS THE EAST IS FROM THE WEST, SO FAR HATH HE REMOVED OUR TRANSGRESSIONS FROM US.I# 13 LIKE AS A FATHER PITIETH HIS CHILDREN, SO THE LORD PITIETH THEM THATH FEAR HIM.?# 14 FOR HE KNOWETH OUR FRAME; HE REMEMBERETH THAT WE ARE DUST. G# 15 AS FOR MAN, HIS DAYS ARE AS GRASS: AS A FLOWER OF THE FIELD, SO HEH FLOURISHETH.TH# 16 FOR THE WIND PASSETH OVER IT, AND IT IS GONE; AND THE PLACE THEREOF SHALL KNOW IT NO MORE. K# 17 BUT THE MERCY OF THE LORD IS FROM EVERLASTING TO EVERLASTING UPON THEM2> THAT FEAR HIM, AND HIS RIGHTEOUSNESS UNTO CHILDRENS CHILDREN;A# 18 TO SUCH AS KEEP HIS COVENANT, AND TO THOSE THAT REMEMBER HISR COMMANDMENTS TO DO THEM.MM# 19 THE LORD HATH PREPARED HIS THRONE IN THE HEAVENS; AND HIS KINGDOM RULETHU OVER ALL.G# 20 BLESS THE LORD, YE HIS ANGELS, THAT EXCEL IN STRENGTH, THAT DO HISR5 COMMANDMENTS, HEARKENING UNTO THE VOICE OF HIS WORD.GJ# 21 BLESS YE THE LORD, ALL YE HIS HOSTS; YE MINISTERS OF HIS, THAT DO HIS PLEASURE.K# 22 BLESS THE LORD, ALL HIS WORKS IN ALL PLACES OF HIS DOMINION: BLESS THEN LORD, O MY SOUL.C= CHAPTER 104 K# 1 BLESS THE LORD, O MY SOUL. O LORD 00qx7-7<%X>%+%O-%TADATADATAMY GOD, THOU ART VERY GREAT; THOU ARTO! CLOTHED WITH HONOUR AND MAJESTY.AM# 2 WHO COVEREST THYSELF WITH LIGHT AS WITH A GARMENT: WHO STRETCHEST OUT THET HEAVENS LIKE A CURTAIN: ITEM# 3 WHO LAYETH THE BEAMS OF HIS CHAMBERS IN THE WATERS: WHO MAKETH THE CLOUDS 5 HIS CHARIOT: WHO WALKETH UPON THE WINGS OF THE WIND:N@# 4 WHO MAKETH HIS ANGELS SPIRITS; HIS MINISTERS A FLAMING FIRE:L# 5 WHO LAID THE FOUNDATIONS OF THE EARTH, THAT IT SHOULD NOT BE REMOVED FOR EVER.M# 6 THOU COVEREDST IT WITH THE DEEP AS WITH A GARMENT: THE WATERS STOOD ABOVE THE MOUNTAINS.OJ# 7 AT THY REBUKE THEY FLED; AT THE VOICE OF THY THUNDER THEY HASTED AWAY.K# 8 THEY GO UP BY THE MOUNTAINS; THEY GO DOWN BY THE VALLEYS UNTO THE PLACEO" WHICH THOU HAST FOUNDED FOR THEM.I# 9 THOU HAST SET A BOUND THAT THEY MAY NOT PASS OVER; THAT THEY TURN NOT  AGAIN TO COVER THE EARTH.H# 10 HE SENDETH THE SPRINGS INTO THE VALLEYS, WHICH RUN AMONG THE HILLS.M# 11 THEY GIVE DRINK TO EVERY BEAST OF THE FIELD: THE WILD ASSES QUENCH THEIRD THIRST.L# 12 BY THEM SHALL THE FOWLS OF THE HEAVEN HAVE THEIR HABITATION, WHICH SING AMONG THE BRANCHES.M# 13 HE WATERETH THE HILLS FROM HIS CHAMBERS: THE EARTH IS SATISFIED WITH THEY FRUIT OF THY WORKS.M# 14 HE CAUSETH THE GRASS TO GROW FOR THE CATTLE, AND HERB FOR THE SERVICE OF 4 MAN: THAT HE MAY BRING FORTH FOOD OUT OF THE EARTH;L# 15 AND WINE THAT MAKETH GLAD THE HEART OF MAN, AND OIL TO MAKE HIS FACE TO1 SHINE, AND BREAD WHICH STRENGTHENETH MANS HEART.EK# 16 THE TREES OF THE LORD ARE FULL OF SAP; THE CEDARS OF LEBANON, WHICH HEO HATH PLANTED;J# 17 WHERE THE BIRDS MAKE THEIR NESTS: AS FOR THE STORK, THE FIR TREES ARE HER HOUSE. J# 18 THE HIGH HILLS ARE A REFUGE FOR THE WILD GOATS; AND THE ROCKS FOR THE CONIES.G# 19 HE APPOINTED THE MOON FOR SEASONS: THE SUN KNOWETH HIS GOING DOWN. I# 20 THOU MAKEST DARKNESS, AND IT IS NIGHT: WHEREIN ALL THE BEASTS OF THEH FOREST DO CREEP FORTH.AI# 21 THE YOUNG LIONS ROAR AFTER THEIR PREY, AND SEEK THEIR MEAT FROM GOD.EK# 22 THE SUN ARISETH, THEY GATHER THEMSELVES TOGETHER, AND LAY THEM DOWN INL THEIR DENS.G# 23 MAN GOETH FORTH UNTO HIS WORK AND TO HIS LABOUR UNTIL THE EVENING.RK# 24 O LORD, HOW MANIFOLD ARE THY WORKS! IN WISDOM HAST THOU MADE THEM ALL:F! THE EARTH IS FULL OF THY RICHES. L# 25 SO IS THIS GREAT AND WIDE SEA, WHEREIN ARE THINGS CREEPING INNUMERABLE, BOTH SMALL AND GREAT BEASTS.LM# 26 THERE GO THE SHIPS: THERE IS THAT LEVIATHAN, WHOM THOU HAST MADE TO PLAY THEREIN. K# 27 THESE WAIT ALL UPON THEE; THAT THOU MAYEST GIVE THEM THEIR MEAT IN DUET SEASON.I# 28 THAT THOU GIVEST THEM THEY GATHER: THOU OPENEST THINE HAND, THEY ARET FILLED WITH GOOD.L# 29 THOU HIDEST THY FACE, THEY ARE TROUBLED: THOU TAKEST AWAY THEIR BREATH,$ THEY DIE, AND RETURN TO THEIR DUST.K# 30 THOU SENDEST FORTH THY SPIRIT, THEY ARE CREATED: AND THOU RENEWEST THEN FACE OF THE EARTH.LK# 31 THE GLORY OF THE LORD SHALL ENDURE FOR EVER: THE LORD SHALL REJOICE INT HIS WORKS. J# 32 HE LOOKETH ON THE EARTH, AND IT TREMBLETH: HE TOUCHETH THE HILLS, AND THEY SMOKE.J# 33 I WILL SING UNTO THE LORD AS LONG AS I LIVE: I WILL SING PRAISE TO MY GOD WHILE I HAVE MY BEING.IE# 34 MY MEDITATION OF HIM SHALL BE SWEET: I WILL BE GLAD IN THE LORD.YK# 35 LET THE SINNERS BE CONSUMED OUT OF THE EARTH, AND LET THE WICKED BE NO : MORE. BLESS THOU THE LORD, O MY SOUL. PRAISE YE THE LORD.= CHAPTER 105 I# 1 O GIVE THANKS UNTO THE LORD; CALL UPON HIS NAME: MAKE KNOWN HIS DEEDST AMONG THE PEOPLE.K# 2 SING UNTO HIM, SING PSALMS UNTO HIM: TALK YE OF ALL HIS WONDROUS WORKS. J# 3 GLORY YE IN HIS HOLY NAME: LET THE HEART OF THEM REJOICE THAT SEEK THE LORD.<# 4 SEEK THE LORD, AND HIS STRENGTH: SEEK HIS FACE EVERMORE.I# 5 REMEMBER HIS MARVELLOUS WORKS THAT HE HATH DONE; HIS WONDERS, AND THET JUDGMENTS OF HIS MOUTH;F# 6 O YE SEED OF ABRAHAM HIS SERVANT, YE CHILDREN OF JACOB HIS CHOSEN.?# 7 HE IS THE LORD OUR GOD: HIS JUDGMENTS ARE IN ALL THE EARTH.SL# 8 HE HATH REMEMBERED HIS COVENANT FOR EVER, THE WORD WHICH HE COMMANDED TO A THOUSAND GENERATIONS.A# 9 WHICH COVENANT00q7b5D%5%T6%! ! HE MADE WITH ABRAHAM, AND HIS OATH UNTO ISAAC;TF# 10 AND CONFIRMED THE SAME UNTO JACOB FOR A LAW, AND TO ISRAEL FOR AN EVERLASTING COVENANT:F# 11 SAYING, UNTO THEE WILL I GIVE THE LAND OF CANAAN, THE LOT OF YOUR INHERITANCE:ML# 12 WHEN THEY WERE BUT A FEW MEN IN NUMBER; YEA, VERY FEW, AND STRANGERS IN IT.K# 13 WHEN THEY WENT FROM ONE NATION TO ANOTHER, FROM ONE KINGDOM TO ANOTHER  PEOPLE;J# 14 HE SUFFERED NO MAN TO DO THEM WRONG: YEA, HE REPROVED KINGS FOR THEIR SAKES;NA# 15 SAYING, TOUCH NOT MINE ANOINTED, AND DO MY PROPHETS NO HARM.CL# 16 MOREOVER HE CALLED FOR A FAMINE UPON THE LAND: HE BRAKE THE WHOLE STAFF OF BREAD.H# 17 HE SENT A MAN BEFORE THEM, EVEN JOSEPH, WHO WAS SOLD FOR A SERVANT:<# 18 WHOSE FEET THEY HURT WITH FETTERS: HE WAS LAID IN IRON:G# 19 UNTIL THE TIME THAT HIS WORD CAME: THE WORD OF THE LORD TRIED HIM.EL# 20 THE KING SENT AND LOOSED HIM; EVEN THE RULER OF THE PEOPLE, AND LET HIM GO FREE. C# 21 HE MADE HIM LORD OF HIS HOUSE, AND RULER OF ALL HIS SUBSTANCE:TH# 22 TO BIND HIS PRINCES AT HIS PLEASURE; AND TEACH HIS SENATORS WISDOM.I# 23 ISRAEL ALSO CAME INTO EGYPT; AND JACOB SOJOURNED IN THE LAND OF HAM.HK# 24 AND HE INCREASED HIS PEOPLE GREATLY; AND MADE THEM STRONGER THAN THEIRE ENEMIES.HH# 25 HE TURNED THEIR HEART TO HATE HIS PEOPLE, TO DEAL SUBTILLY WITH HIS SERVANTS.=# 26 HE SENT MOSES HIS SERVANT; AND AARON WHOM HE HAD CHOSEN.EF# 27 THEY SHEWED HIS SIGNS AMONG THEM, AND WONDERS IN THE LAND OF HAM.J# 28 HE SENT DARKNESS, AND MADE IT DARK; AND THEY REBELLED NOT AGAINST HIS WORD.<# 29 HE TURNED THEIR WATERS INTO BLOOD, AND SLEW THEIR FISH.J# 30 THEIR LAND BROUGHT FORTH FROGS IN ABUNDANCE, IN THE CHAMBERS OF THEIR KINGS.PJ# 31 HE SPAKE, AND THERE CAME DIVERS SORTS OF FLIES, AND LICE IN ALL THEIR COASTS.@# 32 HE GAVE THEM HAIL FOR RAIN, AND FLAMING FIRE IN THEIR LAND.J# 33 HE SMOTE THEIR VINES ALSO AND THEIR FIG TREES; AND BRAKE THE TREES OF THEIR COASTS.G# 34 HE SPAKE, AND THE LOCUSTS CAME, AND CATERPILLERS, AND THAT WITHOUTD NUMBER,J# 35 AND DID EAT UP ALL THE HERBS IN THEIR LAND, AND DEVOURED THE FRUIT OF THEIR GROUND.J# 36 HE SMOTE ALSO ALL THE FIRSTBORN IN THEIR LAND, THE CHIEF OF ALL THEIR STRENGTH.K# 37 HE BROUGHT THEM FORTH ALSO WITH SILVER AND GOLD: AND THERE WAS NOT ONEE" FEEBLE PERSON AMONG THEIR TRIBES.L# 38 EGYPT WAS GLAD WHEN THEY DEPARTED: FOR THE FEAR OF THEM FELL UPON THEM.K# 39 HE SPREAD A CLOUD FOR A COVERING; AND FIRE TO GIVE LIGHT IN THE NIGHT.TI# 40 THE PEOPLE ASKED, AND HE BROUGHT QUAILS, AND SATISFIED THEM WITH THED BREAD OF HEAVEN.BG# 41 HE OPENED THE ROCK, AND THE WATERS GUSHED OUT; THEY RAN IN THE DRY  PLACES LIKE A RIVER.IA# 42 FOR HE REMEMBERED HIS HOLY PROMISE, AND ABRAHAM HIS SERVANT.HL# 43 AND HE BROUGHT FORTH HIS PEOPLE WITH JOY, AND HIS CHOSEN WITH GLADNESS:M# 44 AND GAVE THEM THE LANDS OF THE HEATHEN: AND THEY INHERITED THE LABOUR OFF THE PEOPLE;K# 45 THAT THEY MIGHT OBSERVE HIS STATUTES, AND KEEP HIS LAWS. PRAISE YE THET LORD.= CHAPTER 106 L# 1 PRAISE YE THE LORD. O GIVE THANKS UNTO THE LORD; FOR HE IS GOOD: FOR HIS MERCY ENDURETH FOR EVER.EI# 2 WHO CAN UTTER THE MIGHTY ACTS OF THE LORD? WHO CAN SHEW FORTH ALL HISH PRAISE?K# 3 BLESSED ARE THEY THAT KEEP JUDGMENT, AND HE THAT DOETH RIGHTEOUSNESS AT ALL TIMES.OM# 4 REMEMBER ME, O LORD, WITH THE FAVOUR THAT THOU BEAREST UNTO THY PEOPLE: OA VISIT ME WITH THY SALVATION;FM# 5 THAT I MAY SEE THE GOOD OF THY CHOSEN, THAT I MAY REJOICE IN THE GLADNESSR8 OF THY NATION, THAT I MAY GLORY WITH THINE INHERITANCE.M# 6 WE HAVE SINNED WITH OUR FATHERS, WE HAVE COMMITTED INIQUITY, WE HAVE DONEV WICKEDLY.L# 7 OUR FATHERS UNDERSTOOD NOT THY WONDERS IN EGYPT; THEY REMEMBERED NOT THEL MULTITUDE OF THY MERCIES; BUT PROVOKED HIM AT THE SEA, EVEN AT THE RED SEA.I# 8 NEVERTHELESS HE SAVED THEM FOR HIS NAMES SAKE, THAT HE MIGHT MAKE HISU MIGHTY POWER TO BE KNOWN.L# 9 HE REBUKED THE RED SEA ALSO, AND IT WAS DRIED UP: SO HE LED THEM THROUGH' THE DEPTHS, AS THROUGH THE WILDERNESS. I# 10 AND HE SAVED THEM FROM THE HAND OF HIM THAT HATED THEM, A00q7-7<%X>%+%O-%TADATADATAND REDEEMEDR! THEM FROM THE HAND OF THE ENEMY.AJ# 11 AND THE WATERS COVERED THEIR ENEMIES: THERE WAS NOT ONE OF THEM LEFT.8# 12 THEN BELIEVED THEY HIS WORDS; THEY SANG HIS PRAISE.A# 13 THEY SOON FORGAT HIS WORKS; THEY WAITED NOT FOR HIS COUNSEL:EM# 14 BUT LUSTED EXCEEDINGLY IN THE WILDERNESS, AND TEMPTED GOD IN THE DESERT.G# 15 AND HE GAVE THEM THEIR REQUEST; BUT SENT LEANNESS INTO THEIR SOUL.UI# 16 THEY ENVIED MOSES ALSO IN THE CAMP, AND AARON THE SAINT OF THE LORD.HH# 17 THE EARTH OPENED AND SWALLOWED UP DATHAN AND COVERED THE COMPANY OF ABIRAM.M# 18 AND A FIRE WAS KINDLED IN THEIR COMPANY; THE FLAME BURNED UP THE WICKED.T@# 19 THEY MADE A CALF IN HOREB, AND WORSHIPPED THE MOLTEN IMAGE.K# 20 THUS THEY CHANGED THEIR GLORY INTO THE SIMILITUDE OF AN OX THAT EATETHN GRASS.EI# 21 THEY FORGAT GOD THEIR SAVIOUR, WHICH HAD DONE GREAT THINGS IN EGYPT;EK# 22 WONDROUS WORKS IN THE LAND OF HAM, AND TERRIBLE THINGS BY THE RED SEA.EK# 23 THEREFORE HE SAID THAT HE WOULD DESTROY THEM, HAD NOT MOSES HIS CHOSEN G STOOD BEFORE HIM IN THE BREACH, TO TURN AWAY HIS WRATH, LEST HE SHOULDE DESTROY THEM.F# 24 YEA, THEY DESPISED THE PLEASANT LAND, THEY BELIEVED NOT HIS WORD:I# 25 BUT MURMURED IN THEIR TENTS, AND HEARKENED NOT UNTO THE VOICE OF THE  LORD.K# 26 THEREFORE HE LIFTED UP HIS HAND AGAINST THEM, TO OVERTHROW THEM IN THE WILDERNESS:K# 27 TO OVERTHROW THEIR SEED ALSO AMONG THE NATIONS, AND TO SCATTER THEM ING THE LANDS.SM# 28 THEY JOINED THEMSELVES ALSO UNTO BAALPEOR, AND ATE THE SACRIFICES OF THEE DEAD.J# 29 THUS THEY PROVOKED HIM TO ANGER WITH THEIR INVENTIONS: AND THE PLAGUE BRAKE IN UPON THEM.I# 30 THEN STOOD UP PHINEHAS, AND EXECUTED JUDGMENT: AND SO THE PLAGUE WASE STAYED.M# 31 AND THAT WAS COUNTED UNTO HIM FOR RIGHTEOUSNESS UNTO ALL GENERATIONS FORT EVERMORE.L# 32 THEY ANGERED HIM ALSO AT THE WATERS OF STRIFE, SO THAT IT WENT ILL WITH MOSES FOR THEIR SAKES:AL# 33 BECAUSE THEY PROVOKED HIS SPIRIT, SO THAT HE SPAKE UNADVISEDLY WITH HIS LIPS.I# 34 THEY DID NOT DESTROY THE NATIONS, CONCERNING WHOM THE LORD COMMANDED  THEM:A# 35 BUT WERE MINGLED AMONG THE HEATHEN, AND LEARNED THEIR WORKS.T?# 36 AND THEY SERVED THEIR IDOLS: WHICH WERE A SNARE UNTO THEM.AE# 37 YEA, THEY SACRIFICED THEIR SONS AND THEIR DAUGHTERS UNTO DEVILS, G# 38 AND SHED INNOCENT BLOOD, EVEN THE BLOOD OF THEIR SONS AND OF THEIRSK DAUGHTERS, WHOM THEY SACRIFICED UNTO THE IDOLS OF CANAAN: AND THE LAND WAST POLLUTED WITH BLOOD.,I# 39 THUS WERE THEY DEFILED WITH THEIR OWN WORKS, AND WENT A WHORING WITHH THEIR OWN INVENTIONS.M# 40 THEREFORE WAS THE WRATH OF THE LORD KINDLED AGAINST HIS PEOPLE, INSOMUCHA& THAT HE ABHORRED HIS OWN INHERITANCE.L# 41 AND HE GAVE THEM INTO THE HAND OF THE HEATHEN; AND THEY THAT HATED THEM RULED OVER THEM.HM# 42 THEIR ENEMIES ALSO OPPRESSED THEM, AND THEY WERE BROUGHT INTO SUBJECTIONA UNDER THEIR HAND.E# 43 MANY TIMES DID HE DELIVER THEM; BUT THEY PROVOKED HIM WITH THEIR2 COUNSEL, AND WERE BROUGHT LOW FOR THEIR INIQUITY.H# 44 NEVERTHELESS HE REGARDED THEIR AFFLICTION, WHEN HE HEARD THEIR CRY:K# 45 AND HE REMEMBERED FOR THEM HIS COVENANT, AND REPENTED ACCORDING TO THE MULTITUDE OF HIS MERCIES.L# 46 HE MADE THEM ALSO TO BE PITIED OF ALL THOSE THAT CARRIED THEM CAPTIVES.K# 47 SAVE US, O LORD OUR GOD, AND GATHER US FROM AMONG THE HEATHEN, TO GIVEH9 THANKS UNTO THY HOLY NAME, AND TO TRIUMPH IN THY PRAISE.MK# 48 BLESSED BE THE LORD GOD OF ISRAEL FROM EVERLASTING TO EVERLASTING: ANDN2 LET ALL THE PEOPLE SAY, AMEN. PRAISE YE THE LORD.= CHAPTER 107 K# 1 O GIVE THANKS UNTO THE LORD, FOR HE IS GOOD: FOR HIS MERCY ENDURETH FOR  EVER.L# 2 LET THE REDEEMED OF THE LORD SAY SO, WHOM HE HATH REDEEMED FROM THE HAND OF THE ENEMY;I# 3 AND GATHERED THEM OUT OF THE LANDS, FROM THE EAST, AND FROM THE WEST,G$ FROM THE NORTH, AND FROM THE SOUTH.L# 4 THEY WANDERED IN THE WILDERNESS IN A SOLITARY WAY; THEY FOUND NO CITY TO DWELL IN.3# 5 HUNGRY AND THIRSTY, THEIR SOUL FAINTED IN THEM.GM# 6 THEN THEY CRIED UNTO THE LORD IN THEIR TROUBLE, AND HE DELIVERED THEM OUT  OF THEIR DI00q7b5D%5%T6%! !STRESSES.LK# 7 AND HE LED THEM FORTH BY THE RIGHT WAY, THAT THEY MIGHT GO TO A CITY OFD HABITATION.M# 8 OH THAT MEN WOULD PRAISE THE LORD FOR HIS GOODNESS, AND FOR HIS WONDERFULE WORKS TO THE CHILDREN OF MEN!H# 9 FOR HE SATISFIETH THE LONGING SOUL, AND FILLETH THE HUNGRY SOUL WITH GOODNESS.G# 10 SUCH AS SIT IN DARKNESS AND IN THE SHADOW OF DEATH, BEING BOUND ING AFFLICTION AND IRON;OF# 11 BECAUSE THEY REBELLED AGAINST THE WORDS OF GOD, AND CONTEMNED THE COUNSEL OF THE MOST HIGH:K# 12 THEREFORE HE BROUGHT DOWN THEIR HEART WITH LABOUR; THEY FELL DOWN, ANDE THERE WAS NONE TO HELP.M# 13 THEN THEY CRIED UNTO THE LORD IN THEIR TROUBLE, AND HE SAVED THEM OUT OFI THEIR DISTRESSES.M# 14 HE BROUGHT THEM OUT OF DARKNESS AND THE SHADOW OF DEATH, AND BRAKE THEIRH BANDS IN SUNDER.D# 15 OH THAT MEN WOULD PRAISE THE LORD FOR HIS GOODNESS, AND FOR HIS( WONDERFUL WORKS TO THE CHILDREN OF MEN!G# 16 FOR HE HATH BROKEN THE GATES OF BRASS, AND CUT THE BARS OF IRON INU SUNDER.K# 17 FOOLS BECAUSE OF THEIR TRANSGRESSION, AND BECAUSE OF THEIR INIQUITIES,L ARE AFFLICTED.EI# 18 THEIR SOUL ABHORRETH ALL MANNER OF MEAT; AND THEY DRAW NEAR UNTO THEA GATES OF DEATH.L# 19 THEN THEY CRY UNTO THE LORD IN THEIR TROUBLE, AND HE SAVETH THEM OUT OF THEIR DISTRESSES.E# 20 HE SENT HIS WORD, AND HEALED THEM, AND DELIVERED THEM FROM THEIRR DESTRUCTIONS.D# 21 OH THAT MEN WOULD PRAISE THE LORD FOR HIS GOODNESS, AND FOR HIS( WONDERFUL WORKS TO THE CHILDREN OF MEN!K# 22 AND LET THEM SACRIFICE THE SACRIFICES OF THANKSGIVING, AND DECLARE HISU WORKS WITH REJOICING.M# 23 THEY THAT GO DOWN TO THE SEA IN SHIPS, THAT DO BUSINESS IN GREAT WATERS; B# 24 THESE SEE THE WORKS OF THE LORD, AND HIS WONDERS IN THE DEEP.I# 25 FOR HE COMMANDETH, AND RAISETH THE STORMY WIND, WHICH LIFTETH UP THET WAVES THEREOF.AI# 26 THEY MOUNT UP TO THE HEAVEN, THEY GO DOWN AGAIN TO THE DEPTHS: THEIRW# SOUL IS MELTED BECAUSE OF TROUBLE.,K# 27 THEY REEL TO AND FRO, AND STAGGER LIKE A DRUNKEN MAN, AND ARE AT THEIRR WITS ENK# 28 THEN THEY CRY UNTO THE LORD IN THEIR TROUBLE, AND HE BRINGETH THEM OUTE OF THEIR DISTRESSES.EE# 29 HE MAKETH THE STORM A CALM, SO THAT THE WAVES THEREOF ARE STILL.SM# 30 THEN ARE THEY GLAD BECAUSE THEY BE QUIET; SO HE BRINGETH THEM UNTO THEIR  DESIRED HAVEN.WD# 31 OH THAT MEN WOULD PRAISE THE LORD FOR HIS GOODNESS, AND FOR HIS( WONDERFUL WORKS TO THE CHILDREN OF MEN!J# 32 LET THEM EXALT HIM ALSO IN THE CONGREGATION OF THE PEOPLE, AND PRAISE# HIM IN THE ASSEMBLY OF THE ELDERS.HG# 33 HE TURNETH RIVERS INTO A WILDERNESS, AND THE WATERSPRINGS INTO DRY  GROUND;K# 34 A FRUITFUL LAND INTO BARRENNESS, FOR THE WICKEDNESS OF THEM THAT DWELLE THEREIN.EI# 35 HE TURNETH THE WILDERNESS INTO A STANDING WATER, AND DRY GROUND INTOT WATERSPRINGS.J# 36 AND THERE HE MAKETH THE HUNGRY TO DWELL, THAT THEY MAY PREPARE A CITY FOR HABITATION;G# 37 AND SOW THE FIELDS, AND PLANT VINEYARDS, WHICH MAY YIELD FRUITS OFH INCREASE.D# 38 HE BLESSETH THEM ALSO, SO THAT THEY ARE MULTIPLIED GREATLY; AND( SUFFERETH NOT THEIR CATTLE TO DECREASE.M# 39 AGAIN, THEY ARE MINISHED AND BROUGHT LOW THROUGH OPPRESSION, AFFLICTION,O AND SORROW.H# 40 HE POURETH CONTEMPT UPON PRINCES, AND CAUSETH THEM TO WANDER IN THE# WILDERNESS, WHERE THERE IS NO WAY.M# 41 YET SETTETH HE THE POOR ON HIGH FROM AFFLICTION, AND MAKETH HIM FAMILIESP LIKE A FLOCK.M# 42 THE RIGHTEOUS SHALL SEE IT, AND REJOICE: AND ALL INIQUITY SHALL STOP HERI MOUTH.IM# 43 WHOSO IS WISE, AND WILL OBSERVE THESE THINGS, EVEN THEY SHALL UNDERSTAND THE LOVINGKINDNESS OF THE LORD.= CHAPTER 108 N# 1 O GOD, MY HEART IS FIXED; I WILL SING AND GIVE PRAISE, EVEN WITH MY GLORY.8# 2 AWAKE, PSALTERY AND HARP: I MYSELF WILL AWAKE EARLY.I# 3 I WILL PRAISE THEE, O LORD, AMONG THE PEOPLE: AND I WILL SING PRAISESH UNTO THEE AMONG THE NATIONS.CM# 4 FOR THY MERCY IS GREAT ABOVE THE HEAVENS: AND THY TRUTH REACHETH UNTO THE, CLOUDS.J# 5 BE THOU EXALTED, O GOD, ABOVE THE HEAVENS: AND THY GLORY ABOVE ALL THE EARTH;TK# 6 THAT THY BELOVED MAY BE DELIVERED: SAVE WITH THY RIGHT HAN00q7-7<%X>%+%O-%TADATADATAD, AND ANSWER  ME.K# 7 GOD HATH SPOKEN IN HIS HOLINESS; I WILL REJOICE, I WILL DIVIDE SHECHEM,M$ AND METE OUT THE VALLEY OF SUCCOTH.J# 8 GILEAD IS MINE; MANASSEH IS MINE; EPHRAIM ALSO IS THE STRENGTH OF MINE HEAD; JUDAH IS MY LAWGIVER;I# 9 MOAB IS MY WASHPOT; OVER EDOM WILL I CAST OUT MY SHOE; OVER PHILISTIAS WILL I TRIUMPH.H# 10 WHO WILL BRING ME INTO THE STRONG CITY? WHO WILL LEAD ME INTO EDOM?M# 11 WILT NOT THOU, O GOD, WHO HAST CAST US OFF? AND WILT NOT THOU, O GOD, GOS FORTH WITH OUR HOSTS?<# 12 GIVE US HELP FROM TROUBLE: FOR VAIN IS THE HELP OF MAN.J# 13 THROUGH GOD WE SHALL DO VALIANTLY: FOR HE IT IS THAT SHALL TREAD DOWN OUR ENEMIES.E= CHAPTER 109 +# 1 HOLD NOT THY PEACE, O GOD OF MY PRAISE;AI# 2 FOR THE MOUTH OF THE WICKED AND THE MOUTH OF THE DECEITFUL ARE OPENED = AGAINST ME: THEY HAVE SPOKEN AGAINST ME WITH A LYING TONGUE. L# 3 THEY COMPASSED ME ABOUT ALSO WITH WORDS OF HATRED; AND FOUGHT AGAINST ME WITHOUT A CAUSE. G# 4 FOR MY LOVE THEY ARE MY ADVERSARIES: BUT I GIVE MYSELF UNTO PRAYER.HD# 5 AND THEY HAVE REWARDED ME EVIL FOR GOOD, AND HATRED FOR MY LOVE.J# 6 SET THOU A WICKED MAN OVER HIM: AND LET SATAN STAND AT HIS RIGHT HAND.L# 7 WHEN HE SHALL BE JUDGED, LET HIM BE CONDEMNED: AND LET HIS PRAYER BECOME SIN.E9# 8 LET HIS DAYS BE FEW; AND LET ANOTHER TAKE HIS OFFICE.T9# 9 LET HIS CHILDREN BE FATHERLESS, AND HIS WIFE A WIDOW.CL# 10 LET HIS CHILDREN BE CONTINUALLY VAGABONDS, AND BEG: LET THEM SEEK THEIR) BREAD ALSO OUT OF THEIR DESOLATE PLACES.SL# 11 LET THE EXTORTIONER CATCH ALL THAT HE HATH; AND LET THE STRANGERS SPOIL HIS LABOUR.L# 12 LET THERE BE NONE TO EXTEND MERCY UNTO HIM: NEITHER LET THERE BE ANY TO FAVOUR HIS FATHERLESS CHILDREN.L# 13 LET HIS POSTERITY BE CUT OFF; AND IN THE GENERATION FOLLOWING LET THEIR NAME BE BLOTTED OUT.AM# 14 LET THE INIQUITY OF HIS FATHERS BE REMEMBERED WITH THE LORD; AND LET NOTD& THE SIN OF HIS MOTHER BE BLOTTED OUT.L# 15 LET THEM BE BEFORE THE LORD CONTINUALLY, THAT HE MAY CUT OFF THE MEMORY OF THEM FROM THE EARTH.J# 16 BECAUSE THAT HE REMEMBERED NOT TO SHEW MERCY, BUT PERSECUTED THE POOR< AND NEEDY MAN, THAT HE MIGHT EVEN SLAY THE BROKEN IN HEART.I# 17 AS HE LOVED CURSING, SO LET IT COME UNTO HIM: AS HE DELIGHTED NOT IN % BLESSING, SO LET IT BE FAR FROM HIM.GK# 18 AS HE CLOTHED HIMSELF WITH CURSING LIKE AS WITH HIS GARMENT, SO LET ITE> COME INTO HIS BOWELS LIKE WATER, AND LIKE OIL INTO HIS BONES.K# 19 LET IT BE UNTO HIM AS THE GARMENT WHICH COVERETH HIM, AND FOR A GIRDLEF$ WHEREWITH HE IS GIRDED CONTINUALLY.J# 20 LET THIS BE THE REWARD OF MINE ADVERSARIES FROM THE LORD, AND OF THEM! THAT SPEAK EVIL AGAINST MY SOUL.NH# 21 BUT DO THOU FOR ME, O GOD THE LORD, FOR THY NAMES SAKE: BECAUSE THY MERCY IS GOOD, DELIVER THOU ME.@# 22 FOR I AM POOR AND NEEDY, AND MY HEART IS WOUNDED WITHIN ME.L# 23 I AM GONE LIKE THE SHADOW WHEN IT DECLINETH: I AM TOSSED UP AND DOWN AS THE LOCUST.H# 24 MY KNEES ARE WEAK THROUGH FASTING; AND MY FLESH FAILETH OF FATNESS.M# 25 I BECAME ALSO A REPROACH UNTO THEM: WHEN THEY LOOKED UPON ME THEY SHAKEDT THEIR HEADS.N># 26 HELP ME, O LORD MY GOD: O SAVE ME ACCORDING TO THY MERCY:M# 27 THAT THEY MAY KNOW THAT THIS IS THY HAND; THAT THOU, LORD, HAST DONE IT.UJ# 28 LET THEM CURSE, BUT BLESS THOU: WHEN THEY ARISE, LET THEM BE ASHAMED; BUT LET THY SERVANT REJOICE.C# 29 LET MINE ADVERSARIES BE CLOTHED WITH SHAME, AND LET THEM COVERD7 THEMSELVES WITH THEIR OWN CONFUSION, AS WITH A MANTLE.II# 30 I WILL GREATLY PRAISE THE LORD WITH MY MOUTH; YEA, I WILL PRAISE HIME AMONG THE MULTITUDE.NM# 31 FOR HE SHALL STAND AT THE RIGHT HAND OF THE POOR, TO SAVE HIM FROM THOSEI THAT CONDEMN HIS SOUL.A= CHAPTER 110 M# 1 THE LORD SAID UNTO MY LORD, SIT THOU AT MY RIGHT HAND, UNTIL I MAKE THINET ENEMIES THY FOOTSTOOL.IM# 2 THE LORD SHALL SEND THE ROD OF THY STRENGTH OUT OF ZION: RULE THOU IN THER MIDST OF THINE ENEMIES.K# 3 THY PEOPLE SHALL BE WILLING IN THE DAY OF THY POWER, IN THE BEAUTIES OFIG HOLINESS FROM THE WOMB OF THE MORNING: THOU HAST THE DEW OF THY YOUTH.IH# 4 THE LORD HATH SWOR00q7b5D%5%T6%! !N, AND WILL NOT REPENT, THOU ART A PRIEST FOR EVER AFTER THE ORDER OF MELCHIZEDEK.K# 5 THE LORD AT THY RIGHT HAND SHALL STRIKE THROUGH KINGS IN THE DAY OF HIS  WRATH.YL# 6 HE SHALL JUDGE AMONG THE HEATHEN, HE SHALL FILL THE PLACES WITH THE DEAD6 BODIES; HE SHALL WOUND THE HEADS OVER MANY COUNTRIES.J# 7 HE SHALL DRINK OF THE BROOK IN THE WAY: THEREFORE SHALL HE LIFT UP THE HEAD.= CHAPTER 111 J# 1 PRAISE YE THE LORD. I WILL PRAISE THE LORD WITH MY WHOLE HEART, IN THE2 ASSEMBLY OF THE UPRIGHT, AND IN THE CONGREGATION.E# 2 THE WORKS OF THE LORD ARE GREAT, SOUGHT OUT OF ALL THEM THAT HAVE  PLEASURE THEREIN.K# 3 HIS WORK IS HONOURABLE AND GLORIOUS: AND HIS RIGHTEOUSNESS ENDURETH FORE EVER.K# 4 HE HATH MADE HIS WONDERFUL WORKS TO BE REMEMBERED: THE LORD IS GRACIOUSH AND FULL OF COMPASSION.J# 5 HE HATH GIVEN MEAT UNTO THEM THAT FEAR HIM: HE WILL EVER BE MINDFUL OF HIS COVENANT.K# 6 HE HATH SHEWED HIS PEOPLE THE POWER OF HIS WORKS, THAT HE MAY GIVE THEMT THE HERITAGE OF THE HEATHEN.GL# 7 THE WORKS OF HIS HANDS ARE VERITY AND JUDGMENT; ALL HIS COMMANDMENTS ARE SURE.M# 8 THEY STAND FAST FOR EVER AND EVER, AND ARE DONE IN TRUTH AND UPRIGHTNESS.DJ# 9 HE SENT REDEMPTION UNTO HIS PEOPLE: HE HATH COMMANDED HIS COVENANT FOR% EVER: HOLY AND REVEREND IS HIS NAME.UJ# 10 THE FEAR OF THE LORD IS THE BEGINNING OF WISDOM: A GOOD UNDERSTANDINGF HAVE ALL THEY THAT DO HIS COMMANDMENTS: HIS PRAISE ENDURETH FOR EVER.= CHAPTER 112 F# 1 PRAISE YE THE LORD. BLESSED IS THE MAN THAT FEARETH THE LORD, THAT( DELIGHTETH GREATLY IN HIS COMMANDMENTS.L# 2 HIS SEED SHALL BE MIGHTY UPON EARTH: THE GENERATION OF THE UPRIGHT SHALL BE BLESSED.K# 3 WEALTH AND RICHES SHALL BE IN HIS HOUSE: AND HIS RIGHTEOUSNESS ENDURETHO FOR EVER.M# 4 UNTO THE UPRIGHT THERE ARISETH LIGHT IN THE DARKNESS: HE IS GRACIOUS, AND # FULL OF COMPASSION, AND RIGHTEOUS.DJ# 5 A GOOD MAN SHEWETH FAVOUR, AND LENDETH: HE WILL GUIDE HIS AFFAIRS WITH DISCRETION.D# 6 SURELY HE SHALL NOT BE MOVED FOR EVER: THE RIGHTEOUS SHALL BE IN EVERLASTING REMEMBRANCE.AK# 7 HE SHALL NOT BE AFRAID OF EVIL TIDINGS: HIS HEART IS FIXED, TRUSTING INT THE LORD.M# 8 HIS HEART IS ESTABLISHED, HE SHALL NOT BE AFRAID, UNTIL HE SEE HIS DESIRES UPON HIS ENEMIES.L# 9 HE HATH DISPERSED, HE HATH GIVEN TO THE POOR; HIS RIGHTEOUSNESS ENDURETH1 FOR EVER; HIS HORN SHALL BE EXALTED WITH HONOUR.OL# 10 THE WICKED SHALL SEE IT, AND BE GRIEVED; HE SHALL GNASH WITH HIS TEETH,6 AND MELT AWAY: THE DESIRE OF THE WICKED SHALL PERISH.= CHAPTER 113 M# 1 PRAISE YE THE LORD. PRAISE, O YE SERVANTS OF THE LORD, PRAISE THE NAME OFT THE LORD.J# 2 BLESSED BE THE NAME OF THE LORD FROM THIS TIME FORTH AND FOR EVERMORE.M# 3 FROM THE RISING OF THE SUN UNTO THE GOING DOWN OF THE SAME THE LORDS NAMEI IS TO BE PRAISED.H# 4 THE LORD IS HIGH ABOVE ALL NATIONS, AND HIS GLORY ABOVE THE HEAVENS.<# 5 WHO IS LIKE UNTO THE LORD OUR GOD, WHO DWELLETH ON HIGH,L# 6 WHO HUMBLETH HIMSELF TO BEHOLD THE THINGS THAT ARE IN HEAVEN, AND IN THE EARTH!RL# 7 HE RAISETH UP THE POOR OUT OF THE DUST, AND LIFTETH THE NEEDY OUT OF THE DUNGHILL;J# 8 THAT HE MAY SET HIM WITH PRINCES, EVEN WITH THE PRINCES OF HIS PEOPLE.J# 9 HE MAKETH THE BARREN WOMAN TO KEEP HOUSE, AND TO BE A JOYFUL MOTHER OF CHILDREN. PRAISE YE THE LORD.= CHAPTER 114 N# 1 WHEN ISRAEL WENT OUT OF EGYPT, THE HOUSE OF JACOB FROM A PEOPLE OF STRANGE LANGUAGE;5# 2 JUDAH WAS HIS SANCTUARY, AND ISRAEL HIS DOMINION.B5# 3 THE SEA SAW IT, AND FLED: JORDAN WAS DRIVEN BACK.NE# 4 THE MOUNTAINS SKIPPED LIKE RAMS, AND THE LITTLE HILLS LIKE LAMBS.TK# 5 WHAT AILED THEE, O THOU SEA, THAT THOU FLEDDEST? THOU JORDAN, THAT THOUV WAST DRIVEN BACK?M# 6 YE MOUNTAINS, THAT YE SKIPPED LIKE RAMS; AND YE LITTLE HILLS, LIKE LAMBS?LL# 7 TREMBLE, THOU EARTH, AT THE PRESENCE OF THE LORD, AT THE PRESENCE OF THE GOD OF JACOB;M# 8 WHICH TURNED THE ROCK INTO A STANDING WATER, THE FLINT INTO A FOUNTAIN OFC WATERS.= CHAPTER 115 K# 1 NOT UNTO US, O LORD, NOT UNTO US, BUT UNTO THY NAME GIVE GLORY, FOR THYA MERCY, AND FOR THY TRUTHS SAKE.=# 2 WHEREF00q7-7<%X>%+%O-%TADATADATAORE SHOULD THE HEATHEN SAY, WHERE IS NOW THEIR GOD?HK# 3 BUT OUR GOD IS IN THE HEAVENS: HE HATH DONE WHATSOEVER HE HATH PLEASED.H<# 4 THEIR IDOLS ARE SILVER AND GOLD, THE WORK OF MENS HANDS.K# 5 THEY HAVE MOUTHS, BUT THEY SPEAK NOT: EYES HAVE THEY, BUT THEY SEE NOT:GK# 6 THEY HAVE EARS, BUT THEY HEAR NOT: NOSES HAVE THEY, BUT THEY SMELL NOT: L# 7 THEY HAVE HANDS, BUT THEY HANDLE NOT: FEET HAVE THEY, BUT THEY WALK NOT:) NEITHER SPEAK THEY THROUGH THEIR THROAT.ML# 8 THEY THAT MAKE THEM ARE LIKE UNTO THEM; SO IS EVERY ONE THAT TRUSTETH IN THEM.H# 9 O ISRAEL, TRUST THOU IN THE LORD: HE IS THEIR HELP AND THEIR SHIELD.L# 10 O HOUSE OF AARON, TRUST IN THE LORD: HE IS THEIR HELP AND THEIR SHIELD.I# 11 YE THAT FEAR THE LORD, TRUST IN THE LORD: HE IS THEIR HELP AND THEIR SHIELD.J# 12 THE LORD HATH BEEN MINDFUL OF US: HE WILL BLESS US; HE WILL BLESS THE3 HOUSE OF ISRAEL; HE WILL BLESS THE HOUSE OF AARON. A# 13 HE WILL BLESS THEM THAT FEAR THE LORD, BOTH SMALL AND GREAT.YF# 14 THE LORD SHALL INCREASE YOU MORE AND MORE, YOU AND YOUR CHILDREN.<# 15 YE ARE BLESSED OF THE LORD WHICH MADE HEAVEN AND EARTH.M# 16 THE HEAVEN, EVEN THE HEAVENS, ARE THE LORDS: BUT THE EARTH HATH HE GIVEND TO THE CHILDREN OF MEN.I# 17 THE DEAD PRAISE NOT THE LORD, NEITHER ANY THAT GO DOWN INTO SILENCE.M# 18 BUT WE WILL BLESS THE LORD FROM THIS TIME FORTH AND FOR EVERMORE. PRAISEU THE LORD.= CHAPTER 116 I# 1 I LOVE THE LORD, BECAUSE HE HATH HEARD MY VOICE AND MY SUPPLICATIONS.LL# 2 BECAUSE HE HATH INCLINED HIS EAR UNTO ME, THEREFORE WILL I CALL UPON HIM AS LONG AS I LIVE.LJ# 3 THE SORROWS OF DEATH COMPASSED ME, AND THE PAINS OF HELL GAT HOLD UPON ME: I FOUND TROUBLE AND SORROW.L# 4 THEN CALLED I UPON THE NAME OF THE LORD; O LORD, I BESEECH THEE, DELIVER MY SOUL.YB# 5 GRACIOUS IS THE LORD, AND RIGHTEOUS; YEA, OUR GOD IS MERCIFUL.H# 6 THE LORD PRESERVETH THE SIMPLE: I WAS BROUGHT LOW, AND HE HELPED ME.M# 7 RETURN UNTO THY REST, O MY SOUL; FOR THE LORD HATH DEALT BOUNTIFULLY WITHA THEE.L# 8 FOR THOU HAST DELIVERED MY SOUL FROM DEATH, MINE EYES FROM TEARS, AND MY FEET FROM FALLING. :# 9 I WILL WALK BEFORE THE LORD IN THE LAND OF THE LIVING.B# 10 I BELIEVED, THEREFORE HAVE I SPOKEN: I WAS GREATLY AFFLICTED:+# 11 I SAID IN MY HASTE, ALL MEN ARE LIARS.MF# 12 WHAT SHALL I RENDER UNTO THE LORD FOR ALL HIS BENEFITS TOWARD ME?J# 13 I WILL TAKE THE CUP OF SALVATION, AND CALL UPON THE NAME OF THE LORD.L# 14 I WILL PAY MY VOWS UNTO THE LORD NOW IN THE PRESENCE OF ALL HIS PEOPLE.B# 15 PRECIOUS IN THE SIGHT OF THE LORD IS THE DEATH OF HIS SAINTS.K# 16 O LORD, TRULY I AM THY SERVANT; I AM THY SERVANT, AND THE SON OF THINE % HANDMAID: THOU HAST LOOSED MY BONDS.EK# 17 I WILL OFFER TO THEE THE SACRIFICE OF THANKSGIVING, AND WILL CALL UPONT THE NAME OF THE LORD.L# 18 I WILL PAY MY VOWS UNTO THE LORD NOW IN THE PRESENCE OF ALL HIS PEOPLE.I# 19 IN THE COURTS OF THE LORDS HOUSE, IN THE MIDST OF THEE, O JERUSALEM.I PRAISE YE THE LORD.= CHAPTER 117 A# 1 O PRAISE THE LORD, ALL YE NATIONS: PRAISE HIM, ALL YE PEOPLE. K# 2 FOR HIS MERCIFUL KINDNESS IS GREAT TOWARD US: AND THE TRUTH OF THE LORDH' ENDURETH FOR EVER. PRAISE YE THE LORD.I= CHAPTER 118 K# 1 O GIVE THANKS UNTO THE LORD; FOR HE IS GOOD: BECAUSE HIS MERCY ENDURETHW FOR EVER.9# 2 LET ISRAEL NOW SAY, THAT HIS MERCY ENDURETH FOR EVER.EE# 3 LET THE HOUSE OF AARON NOW SAY, THAT HIS MERCY ENDURETH FOR EVER. J# 4 LET THEM NOW THAT FEAR THE LORD SAY, THAT HIS MERCY ENDURETH FOR EVER.M# 5 I CALLED UPON THE LORD IN DISTRESS: THE LORD ANSWERED ME, AND SET ME IN A LARGE PLACE.CE# 6 THE LORD IS ON MY SIDE; I WILL NOT FEAR: WHAT CAN MAN DO UNTO ME? L# 7 THE LORD TAKETH MY PART WITH THEM THAT HELP ME: THEREFORE SHALL I SEE MY DESIRE UPON THEM THAT HATE ME.RD# 8 IT IS BETTER TO TRUST IN THE LORD THAN TO PUT CONFIDENCE IN MAN.H# 9 IT IS BETTER TO TRUST IN THE LORD THAN TO PUT CONFIDENCE IN PRINCES.G# 10 ALL NATIONS COMPASSED ME ABOUT: BUT IN THE NAME OF THE LORD WILL IU DESTROY THEM.K# 11 THEY COMPASSED ME ABOUT; YEA, THEY COMPASSED ME ABOUT: BUT IN THE NAME00q7b5D%5%T6%! !! OF THE LORD I WILL DESTROY THEM.NH# 12 THEY COMPASSED ME ABOUT LIKE BEES: THEY ARE QUENCHED AS THE FIRE OF9 THORNS: FOR IN THE NAME OF THE LORD I WILL DESTROY THEM.DK# 13 THOU HAST THRUST SORE AT ME THAT I MIGHT FALL: BUT THE LORD HELPED ME. B# 14 THE LORD IS MY STRENGTH AND SONG, AND IS BECOME MY SALVATION.F# 15 THE VOICE OF REJOICING AND SALVATION IS IN THE TABERNACLES OF THE7 RIGHTEOUS: THE RIGHT HAND OF THE LORD DOETH VALIANTLY. L# 16 THE RIGHT HAND OF THE LORD IS EXALTED: THE RIGHT HAND OF THE LORD DOETH VALIANTLY.TB# 17 I SHALL NOT DIE, BUT LIVE, AND DECLARE THE WORKS OF THE LORD.H# 18 THE LORD HATH CHASTENED ME SORE: BUT HE HATH NOT GIVEN ME OVER UNTO DEATH.TK# 19 OPEN TO ME THE GATES OF RIGHTEOUSNESS: I WILL GO INTO THEM, AND I WILLT PRAISE THE LORD:GA# 20 THIS GATE OF THE LORD, INTO WHICH THE RIGHTEOUS SHALL ENTER.NM# 21 I WILL PRAISE THEE: FOR THOU HAST HEARD ME, AND ART BECOME MY SALVATION. I# 22 THE STONE WHICH THE BUILDERS REFUSED IS BECOME THE HEAD STONE OF THEH CORNER.;# 23 THIS IS THE LORDS DOING; IT IS MARVELLOUS IN OUR EYES. M# 24 THIS IS THE DAY WHICH THE LORD HATH MADE; WE WILL REJOICE AND BE GLAD INE IT.G# 25 SAVE NOW, I BESEECH THEE, O LORD: O LORD, I BESEECH THEE, SEND NOWE PROSPERITY.K# 26 BLESSED BE HE THAT COMETH IN THE NAME OF THE LORD: WE HAVE BLESSED YOUW OUT OF THE HOUSE OF THE LORD.I# 27 GOD IS THE LORD, WHICH HATH SHEWED US LIGHT: BIND THE SACRIFICE WITHI) CORDS, EVEN UNTO THE HORNS OF THE ALTAR.UK# 28 THOU ART MY GOD, AND I WILL PRAISE THEE: THOU ART MY GOD, I WILL EXALT  THEE.L# 29 O GIVE THANKS UNTO THE LORD; FOR HE IS GOOD: FOR HIS MERCY ENDURETH FOR EVER.= CHAPTER 119 J# 1 BLESSED ARE THE UNDEFILED IN THE WAY, WHO WALK IN THE LAW OF THE LORD.J# 2 BLESSED ARE THEY THAT KEEP HIS TESTIMONIES, AND THAT SEEK HIM WITH THE WHOLE HEART. 4# 3 THEY ALSO DO NO INIQUITY: THEY WALK IN HIS WAYS.;# 4 THOU HAST COMMANDED US TO KEEP THY PRECEPTS DILIGENTLY.C6# 5 O THAT MY WAYS WERE DIRECTED TO KEEP THY STATUTES!A# 6 THEN SHALL I NOT BE ASHAMED, WHEN I HAVE RESPECT UNTO ALL THYE COMMANDMENTS.K# 7 I WILL PRAISE THEE WITH UPRIGHTNESS OF HEART, WHEN I SHALL HAVE LEARNEDH THY RIGHTEOUS JUDGMENTS. 7# 8 I WILL KEEP THY STATUTES: O FORSAKE ME NOT UTTERLY..I# 9 WHEREWITHAL SHALL A YOUNG MAN CLEANSE HIS WAY? BY TAKING HEED THERETOE ACCORDING TO THY WORD.YI# 10 WITH MY WHOLE HEART HAVE I SOUGHT THEE: O LET ME NOT WANDER FROM THY  COMMANDMENTS.J# 11 THY WORD HAVE I HID IN MINE HEART, THAT I MIGHT NOT SIN AGAINST THEE.5# 12 BLESSED ART THOU, O LORD: TEACH ME THY STATUTES.LA# 13 WITH MY LIPS HAVE I DECLARED ALL THE JUDGMENTS OF THY MOUTH.HM# 14 I HAVE REJOICED IN THE WAY OF THY TESTIMONIES, AS MUCH AS IN ALL RICHES.HE# 15 I WILL MEDITATE IN THY PRECEPTS, AND HAVE RESPECT UNTO THY WAYS.AG# 16 I WILL DELIGHT MYSELF IN THY STATUTES: I WILL NOT FORGET THY WORD.0K# 17 DEAL BOUNTIFULLY WITH THY SERVANT, THAT I MAY LIVE, AND KEEP THY WORD.AK# 18 OPEN THOU MINE EYES, THAT I MAY BEHOLD WONDROUS THINGS OUT OF THY LAW.TE# 19 I AM A STRANGER IN THE EARTH: HIDE NOT THY COMMANDMENTS FROM ME.TL# 20 MY SOUL BREAKETH FOR THE LONGING THAT IT HATH UNTO THY JUDGMENTS AT ALL TIMES. G# 21 THOU HAST REBUKED THE PROUD THAT ARE CURSED, WHICH DO ERR FROM THYI COMMANDMENTS.K# 22 REMOVE FROM ME REPROACH AND CONTEMPT; FOR I HAVE KEPT THY TESTIMONIES. L# 23 PRINCES ALSO DID SIT AND SPEAK AGAINST ME: BUT THY SERVANT DID MEDITATE IN THY STATUTES.H=# 24 THY TESTIMONIES ALSO ARE MY DELIGHT AND MY COUNSELLORS. TK# 25 MY SOUL CLEAVETH UNTO THE DUST: QUICKEN THOU ME ACCORDING TO THY WORD.NJ# 26 I HAVE DECLARED MY WAYS, AND THOU HEARDEST ME: TEACH ME THY STATUTES.J# 27 MAKE ME TO UNDERSTAND THE WAY OF THY PRECEPTS: SO SHALL I TALK OF THY WONDROUS WORKS.I# 28 MY SOUL MELTETH FOR HEAVINESS: STRENGTHEN THOU ME ACCORDING UNTO THYH WORD.F# 29 REMOVE FROM ME THE WAY OF LYING: AND GRANT ME THY LAW GRACIOUSLY.I# 30 I HAVE CHOSEN THE WAY OF TRUTH: THY JUDGMENTS HAVE I LAID BEFORE ME. D# 31 I HAVE STUCK UNTO THY TESTIMONIES: O LORD, PUT ME NOT TO SHAME.G# 32 I WILL RU00q7-7<%X>%+%O-%TADATADATAN THE WAY OF THY COMMANDMENTS, WHEN THOU SHALT ENLARGE MYN HEART.AL# 33 TEACH ME, O LORD, THE WAY OF THY STATUTES; AND I SHALL KEEP IT UNTO THE END. M# 34 GIVE ME UNDERSTANDING, AND I SHALL KEEP THY LAW; YEA, I SHALL OBSERVE ITT WITH MY WHOLE HEART.IM# 35 MAKE ME TO GO IN THE PATH OF THY COMMANDMENTS; FOR THEREIN DO I DELIGHT.WD# 36 INCLINE MY HEART UNTO THY TESTIMONIES, AND NOT TO COVETOUSNESS.J# 37 TURN AWAY MINE EYES FROM BEHOLDING VANITY; AND QUICKEN THOU ME IN THY WAY.HD# 38 STABLISH THY WORD UNTO THY SERVANT, WHO IS DEVOTED TO THY FEAR.D# 39 TURN AWAY MY REPROACH WHICH I FEAR: FOR THY JUDGMENTS ARE GOOD.@# 40 BEHOLD, I HAVE LONGED AFTER THY PRECEPTS: QUICKEN ME IN THY RIGHTEOUSNESS.YM# 41 LET THY MERCIES COME ALSO UNTO ME, O LORD, EVEN THY SALVATION, ACCORDINGH TO THY WORD.OM# 42 SO SHALL I HAVE WHEREWITH TO ANSWER HIM THAT REPROACHETH ME: FOR I TRUSTI IN THY WORD.CM# 43 AND TAKE NOT THE WORD OF TRUTH UTTERLY OUT OF MY MOUTH; FOR I HAVE HOPEDM IN THY JUDGMENTS.;# 44 SO SHALL I KEEP THY LAW CONTINUALLY FOR EVER AND EVER.F9# 45 AND I WILL WALK AT LIBERTY: FOR I SEEK THY PRECEPTS.MG# 46 I WILL SPEAK OF THY TESTIMONIES ALSO BEFORE KINGS, AND WILL NOT BE ASHAMED.GG# 47 AND I WILL DELIGHT MYSELF IN THY COMMANDMENTS, WHICH I HAVE LOVED.LL# 48 MY HANDS ALSO WILL I LIFT UP UNTO THY COMMANDMENTS, WHICH I HAVE LOVED;% AND I WILL MEDITATE IN THY STATUTES.IJ# 49 REMEMBER THE WORD UNTO THY SERVANT, UPON WHICH THOU HAST CAUSED ME TO HOPE.I# 50 THIS IS MY COMFORT IN MY AFFLICTION: FOR THY WORD HATH QUICKENED ME.EL# 51 THE PROUD HAVE HAD ME GREATLY IN DERISION: YET HAVE I NOT DECLINED FROM THY LAW.PJ# 52 I REMEMBERED THY JUDGMENTS OF OLD, O LORD; AND HAVE COMFORTED MYSELF.J# 53 HORROR HATH TAKEN HOLD UPON ME BECAUSE OF THE WICKED THAT FORSAKE THY LAW. C# 54 THY STATUTES HAVE BEEN MY SONGS IN THE HOUSE OF MY PILGRIMAGE.IM# 55 I HAVE REMEMBERED THY NAME, O LORD, IN THE NIGHT, AND HAVE KEPT THY LAW. -# 56 THIS I HAD, BECAUSE I KEPT THY PRECEPTS. J# 57 THOU ART MY PORTION, O LORD: I HAVE SAID THAT I WOULD KEEP THY WORDS.D# 58 I INTREATED THY FAVOUR WITH MY WHOLE HEART: BE MERCIFUL UNTO ME ACCORDING TO THY WORD.EC# 59 I THOUGHT ON MY WAYS, AND TURNED MY FEET UNTO THY TESTIMONIES.O<# 60 I MADE HASTE, AND DELAYED NOT TO KEEP THY COMMANDMENTS.I# 61 THE BANDS OF THE WICKED HAVE ROBBED ME: BUT I HAVE NOT FORGOTTEN THYA LAW. D# 62 AT MIDNIGHT I WILL RISE TO GIVE THANKS UNTO THEE BECAUSE OF THY RIGHTEOUS JUDGMENTS.,K# 63 I AM A COMPANION OF ALL THEM THAT FEAR THEE, AND OF THEM THAT KEEP THY PRECEPTS.D# 64 THE EARTH, O LORD, IS FULL OF THY MERCY: TEACH ME THY STATUTES.L# 65 THOU HAST DEALT WELL WITH THY SERVANT, O LORD, ACCORDING UNTO THY WORD.B# 66 TEACH ME GOOD JUDGMENT AND KNOWLEDGE: FOR I HAVE BELIEVED THY COMMANDMENTS.H# 67 BEFORE I WAS AFFLICTED I WENT ASTRAY: BUT NOW HAVE I KEPT THY WORD.:# 68 THOU ART GOOD, AND DOEST GOOD; TEACH ME THY STATUTES.I# 69 THE PROUD HAVE FORGED A LIE AGAINST ME: BUT I WILL KEEP THY PRECEPTSN WITH MY WHOLE HEART.A?# 70 THEIR HEART IS AS FAT AS GREASE; BUT I DELIGHT IN THY LAW. I# 71 IT IS GOOD FOR ME THAT I HAVE BEEN AFFLICTED; THAT I MIGHT LEARN THYL STATUTES.F# 72 THE LAW OF THY MOUTH IS BETTER UNTO ME THAN THOUSANDS OF GOLD AND SILVER.K# 73 THY HANDS HAVE MADE ME AND FASHIONED ME: GIVE ME UNDERSTANDING, THAT IT MAY LEARN THY COMMANDMENTS.L# 74 THEY THAT FEAR THEE WILL BE GLAD WHEN THEY SEE ME; BECAUSE I HAVE HOPED IN THY WORD.GC# 75 I KNOW, O LORD, THAT THY JUDGMENTS ARE RIGHT, AND THAT THOU INA FAITHFULNESS HAST AFFLICTED ME.L# 76 LET, I PRAY THEE, THY MERCIFUL KINDNESS BE FOR MY COMFORT, ACCORDING TO THY WORD UNTO THY SERVANT. L# 77 LET THY TENDER MERCIES COME UNTO ME, THAT I MAY LIVE: FOR THY LAW IS MY DELIGHT.J# 78 LET THE PROUD BE ASHAMED; FOR THEY DEALT PERVERSELY WITH ME WITHOUT A, CAUSE: BUT I WILL MEDITATE IN THY PRECEPTS.I# 79 LET THOSE THAT FEAR THEE TURN UNTO ME, AND THOSE THAT HAVE KNOWN THYI TESTIMONIES. B# 80 LET MY HEART BE SOUND IN THY STATUTES; THAT I BE NOT ASHAMED.@# 81 MY SOUL FAINT00q7b5D%5%T6%! !ETH FOR THY SALVATION: BUT I HOPE IN THY WORD.D# 82 MINE EYES FAIL FOR THY WORD, SAYING, WHEN WILT THOU COMFORT ME?H# 83 FOR I AM BECOME LIKE A BOTTLE IN THE SMOKE; YET DO I NOT FORGET THY STATUTES.M# 84 HOW MANY ARE THE DAYS OF THY SERVANT? WHEN WILT THOU EXECUTE JUDGMENT ONO THEM THAT PERSECUTE ME?D# 85 THE PROUD HAVE DIGGED PITS FOR ME, WHICH ARE NOT AFTER THY LAW.J# 86 ALL THY COMMANDMENTS ARE FAITHFUL: THEY PERSECUTE ME WRONGFULLY; HELP THOU ME.TL# 87 THEY HAD ALMOST CONSUMED ME UPON EARTH; BUT I FORSOOK NOT THY PRECEPTS.J# 88 QUICKEN ME AFTER THY LOVINGKINDNESS; SO SHALL I KEEP THE TESTIMONY OF THY MOUTH.35# 89 FOR EVER, O LORD, THY WORD IS SETTLED IN HEAVEN.OH# 90 THY FAITHFULNESS IS UNTO ALL GENERATIONS: THOU HAST ESTABLISHED THE EARTH, AND IT ABIDETH.TJ# 91 THEY CONTINUE THIS DAY ACCORDING TO THINE ORDINANCES: FOR ALL ARE THY SERVANTS.M# 92 UNLESS THY LAW HAD BEEN MY DELIGHTS, I SHOULD THEN HAVE PERISHED IN MINEL AFFLICTION.L# 93 I WILL NEVER FORGET THY PRECEPTS: FOR WITH THEM THOU HAST QUICKENED ME.9# 94 I AM THINE, SAVE ME: FOR I HAVE SOUGHT THY PRECEPTS.II# 95 THE WICKED HAVE WAITED FOR ME TO DESTROY ME: BUT I WILL CONSIDER THYT TESTIMONIES.OK# 96 I HAVE SEEN AN END OF ALL PERFECTION: BUT THY COMMANDMENT IS EXCEEDINGE BROAD. ;# 97 O HOW I LOVE THY LAW! IT IS MY MEDITATION ALL THE DAY.OL# 98 THOU THROUGH THY COMMANDMENTS HAST MADE ME WISER THAN MINE ENEMIES: FOR THEY ARE EVER WITH ME.RL# 99 I HAVE MORE UNDERSTANDING THAN ALL MY TEACHERS: FOR THY TESTIMONIES ARE MY MEDITATION.IG# 100 I UNDERSTAND MORE THAN THE ANCIENTS, BECAUSE I KEEP THY PRECEPTS. I# 101 I HAVE REFRAINED MY FEET FROM EVERY EVIL WAY, THAT I MIGHT KEEP THYT WORD.F# 102 I HAVE NOT DEPARTED FROM THY JUDGMENTS: FOR THOU HAST TAUGHT ME.J# 103 HOW SWEET ARE THY WORDS UNTO MY TASTE! YEA, SWEETER THAN HONEY TO MY MOUTH! L# 104 THROUGH THY PRECEPTS I GET UNDERSTANDING: THEREFORE I HATE EVERY FALSE WAY. @# 105 THY WORD IS A LAMP UNTO MY FEET, AND A LIGHT UNTO MY PATH.I# 106 I HAVE SWORN, AND I WILL PERFORM IT, THAT I WILL KEEP THY RIGHTEOUST JUDGMENTS.BL# 107 I AM AFFLICTED VERY MUCH: QUICKEN ME, O LORD, ACCORDING UNTO THY WORD.M# 108 ACCEPT, I BESEECH THEE, THE FREEWILL OFFERINGS OF MY MOUTH, O LORD, ANDS TEACH ME THY JUDGMENTS.E# 109 MY SOUL IS CONTINUALLY IN MY HAND: YET DO I NOT FORGET THY LAW.TM# 110 THE WICKED HAVE LAID A SNARE FOR ME: YET I ERRED NOT FROM THY PRECEPTS.EL# 111 THY TESTIMONIES HAVE I TAKEN AS AN HERITAGE FOR EVER: FOR THEY ARE THE REJOICING OF MY HEART.OM# 112 I HAVE INCLINED MINE HEART TO PERFORM THY STATUTES ALWAY, EVEN UNTO THE  END.F2# 113 I HATE VAIN THOUGHTS: BUT THY LAW DO I LOVE.A# 114 THOU ART MY HIDING PLACE AND MY SHIELD: I HOPE IN THY WORD. J# 115 DEPART FROM ME, YE EVILDOERS: FOR I WILL KEEP THE COMMANDMENTS OF MY GOD.YK# 116 UPHOLD ME ACCORDING UNTO THY WORD, THAT I MAY LIVE: AND LET ME NOT BEM ASHAMED OF MY HOPE.L# 117 HOLD THOU ME UP, AND I SHALL BE SAFE: AND I WILL HAVE RESPECT UNTO THY STATUTES CONTINUALLY.K# 118 THOU HAST TRODDEN DOWN ALL THEM THAT ERR FROM THY STATUTES: FOR THEIRA DECEIT IS FALSEHOOD.EK# 119 THOU PUTTEST AWAY ALL THE WICKED OF THE EARTH LIKE DROSS: THEREFORE II LOVE THY TESTIMONIES.L# 120 MY FLESH TREMBLETH FOR FEAR OF THEE; AND I AM AFRAID OF THY JUDGMENTS.H# 121 I HAVE DONE JUDGMENT AND JUSTICE: LEAVE ME NOT TO MINE OPPRESSORS.G# 122 BE SURETY FOR THY SERVANT FOR GOOD: LET NOT THE PROUD OPPRESS ME.E?# 123 MINE EYES FAIL FOR THY SALVATION, AND FOR THE WORD OF THYU RIGHTEOUSNESS.F# 124 DEAL WITH THY SERVANT ACCORDING UNTO THY MERCY, AND TEACH ME THY STATUTES.B# 125 I AM THY SERVANT; GIVE ME UNDERSTANDING, THAT I MAY KNOW THY TESTIMONIES.HJ# 126 IT IS TIME FOR THEE, LORD, TO WORK: FOR THEY HAVE MADE VOID THY LAW.I# 127 THEREFORE I LOVE THY COMMANDMENTS ABOVE GOLD; YEA, ABOVE FINE GOLD.EL# 128 THEREFORE I ESTEEM ALL THY PRECEPTS CONCERNING ALL THINGS TO BE RIGHT; AND I HATE EVERY FALSE WAY.F# 129 THY TESTIMONIES ARE WONDERFUL: THEREFORE DOTH MY SOUL KEEP THEM.J# 130 THE ENTRANCE OF THY WORDS GIVE00q7-7<%X>%+%O-%TADATADATATH LIGHT; IT GIVETH UNDERSTANDING UNTO THE SIMPLE.G# 131 I OPENED MY MOUTH, AND PANTED: FOR I LONGED FOR THY COMMANDMENTS.YJ# 132 LOOK THOU UPON ME, AND BE MERCIFUL UNTO ME, AS THOU USEST TO DO UNTO THOSE THAT LOVE THY NAME.M# 133 ORDER MY STEPS IN THY WORD: AND LET NOT ANY INIQUITY HAVE DOMINION OVERR ME.I# 134 DELIVER ME FROM THE OPPRESSION OF MAN: SO WILL I KEEP THY PRECEPTS. I# 135 MAKE THY FACE TO SHINE UPON THY SERVANT; AND TEACH ME THY STATUTES.PI# 136 RIVERS OF WATERS RUN DOWN MINE EYES, BECAUSE THEY KEEP NOT THY LAW.N@# 137 RIGHTEOUS ART THOU, O LORD, AND UPRIGHT ARE THY JUDGMENTS.E# 138 THY TESTIMONIES THAT THOU HAST COMMANDED ARE RIGHTEOUS AND VERYU FAITHFUL.G# 139 MY ZEAL HATH CONSUMED ME, BECAUSE MINE ENEMIES HAVE FORGOTTEN THY  WORDS. =# 140 THY WORD IS VERY PURE: THEREFORE THY SERVANT LOVETH IT.E@# 141 I AM SMALL AND DESPISED: YET DO NOT I FORGET THY PRECEPTS.K# 142 THY RIGHTEOUSNESS IS AN EVERLASTING RIGHTEOUSNESS, AND THY LAW IS THE3 TRUTH.OL# 143 TROUBLE AND ANGUISH HAVE TAKEN HOLD ON ME: YET THY COMMANDMENTS ARE MY DELIGHTS.B# 144 THE RIGHTEOUSNESS OF THY TESTIMONIES IS EVERLASTING: GIVE ME! UNDERSTANDING, AND I SHALL LIVE.VM# 145 I CRIED WITH MY WHOLE HEART; HEAR ME, O LORD: I WILL KEEP THY STATUTES.GC# 146 I CRIED UNTO THEE; SAVE ME, AND I SHALL KEEP THY TESTIMONIES.AM# 147 I PREVENTED THE DAWNING OF THE MORNING, AND CRIED: I HOPED IN THY WORD..M# 148 MINE EYES PREVENT THE NIGHT WATCHES, THAT I MIGHT MEDITATE IN THY WORD.I# 149 HEAR MY VOICE ACCORDING UNTO THY LOVINGKINDNESS: O LORD, QUICKEN MEE ACCORDING TO THY JUDGMENT. K# 150 THEY DRAW NIGH THAT FOLLOW AFTER MISCHIEF: THEY ARE FAR FROM THY LAW. @# 151 THOU ART NEAR, O LORD; AND ALL THY COMMANDMENTS ARE TRUTH.L# 152 CONCERNING THY TESTIMONIES, I HAVE KNOWN OF OLD THAT THOU HAST FOUNDED THEM FOR EVER.OL# 153 CONSIDER MINE AFFLICTION, AND DELIVER ME: FOR I DO NOT FORGET THY LAW.G# 154 PLEAD MY CAUSE, AND DELIVER ME: QUICKEN ME ACCORDING TO THY WORD.EG# 155 SALVATION IS FAR FROM THE WICKED: FOR THEY SEEK NOT THY STATUTES.LG# 156 GREAT ARE THY TENDER MERCIES, O LORD: QUICKEN ME ACCORDING TO THY JUDGMENTS.MM# 157 MANY ARE MY PERSECUTORS AND MINE ENEMIES; YET DO I NOT DECLINE FROM THYC TESTIMONIES. L# 158 I BEHELD THE TRANSGRESSORS, AND WAS GRIEVED; BECAUSE THEY KEPT NOT THY WORD.L# 159 CONSIDER HOW I LOVE THY PRECEPTS: QUICKEN ME, O LORD, ACCORDING TO THY LOVINGKINDNESS.I# 160 THY WORD IS TRUE FROM THE BEGINNING: AND EVERY ONE OF THY RIGHTEOUS  JUDGMENTS ENDURETH FOR EVER.IJ# 161 PRINCES HAVE PERSECUTED ME WITHOUT A CAUSE: BUT MY HEART STANDETH IN AWE OF THY WORD.A=# 162 I REJOICE AT THY WORD, AS ONE THAT FINDETH GREAT SPOIL.N4# 163 I HATE AND ABHOR LYING: BUT THY LAW DO I LOVE.L# 164 SEVEN TIMES A DAY DO I PRAISE THEE BECAUSE OF THY RIGHTEOUS JUDGMENTS.H# 165 GREAT PEACE HAVE THEY WHICH LOVE THY LAW: AND NOTHING SHALL OFFEND THEM.F# 166 LORD, I HAVE HOPED FOR THY SALVATION, AND DONE THY COMMANDMENTS.E# 167 MY SOUL HATH KEPT THY TESTIMONIES; AND I LOVE THEM EXCEEDINGLY.6G# 168 I HAVE KEPT THY PRECEPTS AND THY TESTIMONIES: FOR ALL MY WAYS AREA BEFORE THEE.AE# 169 LET MY CRY COME NEAR BEFORE THEE, O LORD: GIVE ME UNDERSTANDING  ACCORDING TO THY WORD.UM# 170 LET MY SUPPLICATION COME BEFORE THEE: DELIVER ME ACCORDING TO THY WORD.IH# 171 MY LIPS SHALL UTTER PRAISE, WHEN THOU HAST TAUGHT ME THY STATUTES.E# 172 MY TONGUE SHALL SPEAK OF THY WORD: FOR ALL THY COMMANDMENTS ARE  RIGHTEOUSNESS.A=# 173 LET THINE HAND HELP ME; FOR I HAVE CHOSEN THY PRECEPTS.HI# 174 I HAVE LONGED FOR THY SALVATION, O LORD; AND THY LAW IS MY DELIGHT.LL# 175 LET MY SOUL LIVE, AND IT SHALL PRAISE THEE; AND LET THY JUDGMENTS HELP ME.J# 176 I HAVE GONE ASTRAY LIKE A LOST SHEEP; SEEK THY SERVANT; FOR I DO NOT FORGET THY COMMANDMENTS.C= CHAPTER 120 :# 1 IN MY DISTRESS I CRIED UNTO THE LORD, AND HE HEARD ME.J# 2 DELIVER MY SOUL, O LORD, FROM LYING LIPS, AND FROM A DECEITFUL TONGUE.H# 3 WHAT SHALL BE GIVEN UNTO THEE? OR WHAT SHALL BE DONE UNTO THEE, THOU FALSE TONGUE?6# 4 SHARP ARROWS OF THE MIGH00q7b5D%5%T6%! !TY, WITH COALS OF JUNIPER.L# 5 WOE IS ME, THAT I SOJOURN IN MESECH, THAT I DWELL IN THE TENTS OF KEDAR!7# 6 MY SOUL HATH LONG DWELT WITH HIM THAT HATETH PEACE.Y7# 7 I AM FOR PEACE: BUT WHEN I SPEAK, THEY ARE FOR WAR.E= CHAPTER 121 H# 1 I WILL LIFT UP MINE EYES UNTO THE HILLS, FROM WHENCE COMETH MY HELP.># 2 MY HELP COMETH FROM THE LORD, WHICH MADE HEAVEN AND EARTH.J# 3 HE WILL NOT SUFFER THY FOOT TO BE MOVED: HE THAT KEEPETH THEE WILL NOT SLUMBER. C# 4 BEHOLD, HE THAT KEEPETH ISRAEL SHALL NEITHER SLUMBER NOR SLEEP.UF# 5 THE LORD IS THY KEEPER: THE LORD IS THY SHADE UPON THY RIGHT HAND.?# 6 THE SUN SHALL NOT SMITE THEE BY DAY, NOR THE MOON BY NIGHT.AK# 7 THE LORD SHALL PRESERVE THEE FROM ALL EVIL: HE SHALL PRESERVE THY SOUL. J# 8 THE LORD SHALL PRESERVE THY GOING OUT AND THY COMING IN FROM THIS TIME FORTH, AND EVEN FOR EVERMORE.= CHAPTER 122 L# 1 I WAS GLAD WHEN THEY SAID UNTO ME, LET US GO INTO THE HOUSE OF THE LORD.7# 2 OUR FEET SHALL STAND WITHIN THY GATES, O JERUSALEM.A<# 3 JERUSALEM IS BUILDED AS A CITY THAT IS COMPACT TOGETHER:K# 4 WHITHER THE TRIBES GO UP, THE TRIBES OF THE LORD, UNTO THE TESTIMONY OFH2 ISRAEL, TO GIVE THANKS UNTO THE NAME OF THE LORD.M# 5 FOR THERE ARE SET THRONES OF JUDGMENT, THE THRONES OF THE HOUSE OF DAVID.LG# 6 PRAY FOR THE PEACE OF JERUSALEM: THEY SHALL PROSPER THAT LOVE THEE.NA# 7 PEACE BE WITHIN THY WALLS, AND PROSPERITY WITHIN THY PALACES.MI# 8 FOR MY BRETHREN AND COMPANIONS SAKES, I WILL NOW SAY, PEACE BE WITHINH THEE.B# 9 BECAUSE OF THE HOUSE OF THE LORD OUR GOD I WILL SEEK THY GOOD.= CHAPTER 123 G# 1 UNTO THEE LIFT I UP MINE EYES, O THOU THAT DWELLEST IN THE HEAVENS.IL# 2 BEHOLD, AS THE EYES OF SERVANTS LOOK UNTO THE HAND OF THEIR MASTERS, ANDM AS THE EYES OF A MAIDEN UNTO THE HAND OF HER MISTRESS; SO OUR EYES WAIT UPONE4 THE LORD OUR GOD, UNTIL THAT HE HAVE MERCY UPON US.J# 3 HAVE MERCY UPON US, O LORD, HAVE MERCY UPON US: FOR WE ARE EXCEEDINGLY FILLED WITH CONTEMPT.I# 4 OUR SOUL IS EXCEEDINGLY FILLED WITH THE SCORNING OF THOSE THAT ARE AT * EASE, AND WITH THE CONTEMPT OF THE PROUD.= CHAPTER 124 H# 1 IF IT HAD NOT BEEN THE LORD WHO WAS ON OUR SIDE, NOW MAY ISRAEL SAY;M# 2 IF IT HAD NOT BEEN THE LORD WHO WAS ON OUR SIDE, WHEN MEN ROSE UP AGAINSTY US:M# 3 THEN THEY HAD SWALLOWED US UP QUICK, WHEN THEIR WRATH WAS KINDLED AGAINSTO US:J# 4 THEN THE WATERS HAD OVERWHELMED US, THE STREAM HAD GONE OVER OUR SOUL:1# 5 THEN THE PROUD WATERS HAD GONE OVER OUR SOUL.PH# 6 BLESSED BE THE LORD, WHO HATH NOT GIVEN US AS A PREY TO THEIR TEETH.L# 7 OUR SOUL IS ESCAPED AS A BIRD OUT OF THE SNARE OF THE FOWLERS: THE SNARE IS BROKEN, AND WE ARE ESCAPED.RC# 8 OUR HELP IS IN THE NAME OF THE LORD, WHO MADE HEAVEN AND EARTH.N= CHAPTER 125 G# 1 THEY THAT TRUST IN THE LORD SHALL BE AS MOUNT ZION, WHICH CANNOT BE  REMOVED, BUT ABIDETH FOR EVER.J# 2 AS THE MOUNTAINS ARE ROUND ABOUT JERUSALEM, SO THE LORD IS ROUND ABOUT* HIS PEOPLE FROM HENCEFORTH EVEN FOR EVER.K# 3 FOR THE ROD OF THE WICKED SHALL NOT REST UPON THE LOT OF THE RIGHTEOUS;I8 LEST THE RIGHTEOUS PUT FORTH THEIR HANDS UNTO INIQUITY.M# 4 DO GOOD, O LORD, UNTO THOSE THAT BE GOOD, AND TO THEM THAT ARE UPRIGHT IN  THEIR HEARTS.J# 5 AS FOR SUCH AS TURN ASIDE UNTO THEIR CROOKED WAYS, THE LORD SHALL LEADI THEM FORTH WITH THE WORKERS OF INIQUITY: BUT PEACE SHALL BE UPON ISRAEL.O= CHAPTER 126 L# 1 WHEN THE LORD TURNED AGAIN THE CAPTIVITY OF ZION, WE WERE LIKE THEM THAT DREAM.HI# 2 THEN WAS OUR MOUTH FILLED WITH LAUGHTER, AND OUR TONGUE WITH SINGING: L THEN SAID THEY AMONG THE HEATHEN, THE LORD HATH DONE GREAT THINGS FOR THEM.@# 3 THE LORD HATH DONE GREAT THINGS FOR US; WHEREOF WE ARE GLAD.B# 4 TURN AGAIN OUR CAPTIVITY, O LORD, AS THE STREAMS IN THE SOUTH.-# 5 THEY THAT SOW IN TEARS SHALL REAP IN JOY.TK# 6 HE THAT GOETH FORTH AND WEEPETH, BEARING PRECIOUS SEED, SHALL DOUBTLESSH: COME AGAIN WITH REJOICING, BRINGING HIS SHEAVES WITH HIM.= CHAPTER 127 N# 1 EXCEPT THE LORD BUILD THE HOUSE, THEY LABOUR IN VAIN THAT BUILD IT: EXCEPT9 THE LORD KEEP THE CITY, THE WATCHMAN WAKETH BUT I00q7-7<%X>%+%O-%TADATADATAN VAIN.LL# 2 IT IS VAIN FOR YOU TO RISE UP EARLY, TO SIT UP LATE, TO EAT THE BREAD OF- SORROWS: FOR SO HE GIVETH HIS BELOVED SLEEP.PJ# 3 LO, CHILDREN ARE AN HERITAGE OF THE LORD: AND THE FRUIT OF THE WOMB IS HIS REWARD.L# 4 AS ARROWS ARE IN THE HAND OF A MIGHTY MAN; SO ARE CHILDREN OF THE YOUTH.I# 5 HAPPY IS THE MAN THAT HATH HIS QUIVER FULL OF THEM: THEY SHALL NOT BE2< ASHAMED, BUT THEY SHALL SPEAK WITH THE ENEMIES IN THE GATE.= CHAPTER 128 I# 1 BLESSED IS EVERY ONE THAT FEARETH THE LORD; THAT WALKETH IN HIS WAYS. M# 2 FOR THOU SHALT EAT THE LABOUR OF THINE HANDS: HAPPY SHALT THOU BE, AND ITO SHALL BE WELL WITH THEE.SI# 3 THY WIFE SHALL BE AS A FRUITFUL VINE BY THE SIDES OF THINE HOUSE: THYW2 CHILDREN LIKE OLIVE PLANTS ROUND ABOUT THY TABLE.E# 4 BEHOLD, THAT THUS SHALL THE MAN BE BLESSED THAT FEARETH THE LORD.AI# 5 THE LORD SHALL BLESS THEE OUT OF ZION: AND THOU SHALT SEE THE GOOD OFL$ JERUSALEM ALL THE DAYS OF THY LIFE.F# 6 YEA, THOU SHALT SEE THY CHILDRENS CHILDREN, AND PEACE UPON ISRAEL.= CHAPTER 129 I# 1 MANY A TIME HAVE THEY AFFLICTED ME FROM MY YOUTH, MAY ISRAEL NOW SAY:AG# 2 MANY A TIME HAVE THEY AFFLICTED ME FROM MY YOUTH: YET THEY HAVE NOTI PREVAILED AGAINST ME.B# 3 THE PLOWERS PLOWED UPON MY BACK: THEY MADE LONG THEIR FURROWS.G# 4 THE LORD IS RIGHTEOUS: HE HATH CUT ASUNDER THE CORDS OF THE WICKED. ># 5 LET THEM ALL BE CONFOUNDED AND TURNED BACK THAT HATE ZION.I# 6 LET THEM BE AS THE GRASS UPON THE HOUSETOPS, WHICH WITHERETH AFORE ITH GROWETH UP:M# 7 WHEREWITH THE MOWER FILLETH NOT HIS HAND; NOR HE THAT BINDETH SHEAVES HIS  BOSOM.YM# 8 NEITHER DO THEY WHICH GO BY SAY, THE BLESSING OF THE LORD BE UPON YOU: WEU# BLESS YOU IN THE NAME OF THE LORD.A= CHAPTER 130 5# 1 OUT OF THE DEPTHS HAVE I CRIED UNTO THEE, O LORD.RG# 2 LORD, HEAR MY VOICE: LET THINE EARS BE ATTENTIVE TO THE VOICE OF MYK SUPPLICATIONS.MF# 3 IF THOU, LORD, SHOULDEST MARK INIQUITIES, O LORD, WHO SHALL STAND?C# 4 BUT THERE IS FORGIVENESS WITH THEE, THAT THOU MAYEST BE FEARED.F# 5 I WAIT FOR THE LORD, MY SOUL DOTH WAIT, AND IN HIS WORD DO I HOPE.M# 6 MY SOUL WAITETH FOR THE LORD MORE THAN THEY THAT WATCH FOR THE MORNING: I 0 SAY, MORE THAN THEY THAT WATCH FOR THE MORNING.K# 7 LET ISRAEL HOPE IN THE LORD: FOR WITH THE LORD THERE IS MERCY, AND WITH HIM IS PLENTEOUS REDEMPTION.I7# 8 AND HE SHALL REDEEM ISRAEL FROM ALL HIS INIQUITIES.M= CHAPTER 131 M# 1 LORD, MY HEART IS NOT HAUGHTY, NOR MINE EYES LOFTY: NEITHER DO I EXERCISEI7 MYSELF IN GREAT MATTERS, OR IN THINGS TOO HIGH FOR ME.TJ# 2 SURELY I HAVE BEHAVED AND QUIETED MYSELF, AS A CHILD THAT IS WEANED OF/ HIS MOTHER: MY SOUL IS EVEN AS A WEANED CHILD.T=# 3 LET ISRAEL HOPE IN THE LORD FROM HENCEFORTH AND FOR EVER..= CHAPTER 132 2# 1 LORD, REMEMBER DAVID, AND ALL HIS AFFLICTIONS:G# 2 HOW HE SWARE UNTO THE LORD, AND VOWED UNTO THE MIGHTY GOD OF JACOB;LM# 3 SURELY I WILL NOT COME INTO THE TABERNACLE OF MY HOUSE, NOR GO UP INTO MYN BED; C# 4 I WILL NOT GIVE SLEEP TO MINE EYES, OR SLUMBER TO MINE EYELIDS,HK# 5 UNTIL I FIND OUT A PLACE FOR THE LORD, AN HABITATION FOR THE MIGHTY GODI OF JACOB.J# 6 LO, WE HEARD OF IT AT EPHRATAH: WE FOUND IT IN THE FIELDS OF THE WOOD.F# 7 WE WILL GO INTO HIS TABERNACLES: WE WILL WORSHIP AT HIS FOOTSTOOL.D# 8 ARISE, O LORD, INTO THY REST; THOU, AND THE ARK OF THY STRENGTH.K# 9 LET THY PRIESTS BE CLOTHED WITH RIGHTEOUSNESS; AND LET THY SAINTS SHOUTT FOR JOY.NJ# 10 FOR THY SERVANT DAVIDS SAKE TURN NOT AWAY THE FACE OF THINE ANOINTED.J# 11 THE LORD HATH SWORN IN TRUTH UNTO DAVID; HE WILL NOT TURN FROM IT; OF2 THE FRUIT OF THY BODY WILL I SET UPON THY THRONE.H# 12 IF THY CHILDREN WILL KEEP MY COVENANT AND MY TESTIMONY THAT I SHALLH TEACH THEM, THEIR CHILDREN SHALL ALSO SIT UPON THY THRONE FOR EVERMORE.J# 13 FOR THE LORD HATH CHOSEN ZION; HE HATH DESIRED IT FOR HIS HABITATION.H# 14 THIS IS MY REST FOR EVER: HERE WILL I DWELL; FOR I HAVE DESIRED IT.H# 15 I WILL ABUNDANTLY BLESS HER PROVISION: I WILL SATISFY HER POOR WITH BREAD.EH# 16 I WILL ALSO CLOTHE HER PRIESTS WITH SALVATION: AND HER SAINTS SHA00q7b5D%5%T6%! !LL SHOUT ALOUD FOR JOY. K# 17 THERE WILL I MAKE THE HORN OF DAVID TO BUD: I HAVE ORDAINED A LAMP FORA MINE ANOINTED.HK# 18 HIS ENEMIES WILL I CLOTHE WITH SHAME: BUT UPON HIMSELF SHALL HIS CROWNE FLOURISH.= CHAPTER 133 M# 1 BEHOLD, HOW GOOD AND HOW PLEASANT IT IS FOR BRETHREN TO DWELL TOGETHER INR UNITY!RJ# 2 IT IS LIKE THE PRECIOUS OINTMENT UPON THE HEAD, THAT RAN DOWN UPON THEH BEARD, EVEN AARONS BEARD: THAT WENT DOWN TO THE SKIRTS OF HIS GARMENTS;M# 3 AS THE DEW OF HERMON, AND AS THE DEW THAT DESCENDED UPON THE MOUNTAINS OFEI ZION: FOR THERE THE LORD COMMANDED THE BLESSING, EVEN LIFE FOR EVERMORE. = CHAPTER 134 J# 1 BEHOLD, BLESS YE THE LORD, ALL YE SERVANTS OF THE LORD, WHICH BY NIGHT STAND IN THE HOUSE OF THE LORD.<# 2 LIFT UP YOUR HANDS IN THE SANCTUARY, AND BLESS THE LORD.?# 3 THE LORD THAT MADE HEAVEN AND EARTH BLESS THEE OUT OF ZION. = CHAPTER 135 H# 1 PRAISE YE THE LORD. PRAISE YE THE NAME OF THE LORD; PRAISE HIM, O YE SERVANTS OF THE LORD.M# 2 YE THAT STAND IN THE HOUSE OF THE LORD, IN THE COURTS OF THE HOUSE OF OURR GOD.TM# 3 PRAISE THE LORD; FOR THE LORD IS GOOD: SING PRAISES UNTO HIS NAME; FOR ITE IS PLEASANT.TL# 4 FOR THE LORD HATH CHOSEN JACOB UNTO HIMSELF, AND ISRAEL FOR HIS PECULIAR TREASURE.K# 5 FOR I KNOW THAT THE LORD IS GREAT, AND THAT OUR LORD IS ABOVE ALL GODS. L# 6 WHATSOEVER THE LORD PLEASED, THAT DID HE IN HEAVEN, AND IN EARTH, IN THE SEAS, AND ALL DEEP PLACES.OJ# 7 HE CAUSETH THE VAPOURS TO ASCEND FROM THE ENDS OF THE EARTH; HE MAKETHE LIGHTNINGS FOR THE RAIN; HE BRINGETH THE WIND OUT OF HIS TREASURIES.R<# 8 WHO SMOTE THE FIRSTBORN OF EGYPT, BOTH OF MAN AND BEAST.E# 9 WHO SENT TOKENS AND WONDERS INTO THE MIDST OF THEE, O EGYPT, UPONS$ PHARAOH, AND UPON ALL HIS SERVANTS.4# 10 WHO SMOTE GREAT NATIONS, AND SLEW MIGHTY KINGS;L# 11 SIHON KING OF THE AMORITES, AND OG KING OF BASHAN, AND ALL THE KINGDOMS OF CANAAN: M# 12 AND GAVE THEIR LAND FOR AN HERITAGE, AN HERITAGE UNTO ISRAEL HIS PEOPLE.SC# 13 THY NAME, O LORD, ENDURETH FOR EVER; AND THY MEMORIAL, O LORD,  THROUGHOUT ALL GENERATIONS.C# 14 FOR THE LORD WILL JUDGE HIS PEOPLE, AND HE WILL REPENT HIMSELF  CONCERNING HIS SERVANTS. J# 15 THE IDOLS OF THE HEATHEN ARE SILVER AND GOLD, THE WORK OF MENS HANDS.L# 16 THEY HAVE MOUTHS, BUT THEY SPEAK NOT; EYES HAVE THEY, BUT THEY SEE NOT;L# 17 THEY HAVE EARS, BUT THEY HEAR NOT; NEITHER IS THERE ANY BREATH IN THEIR MOUTHS.M# 18 THEY THAT MAKE THEM ARE LIKE UNTO THEM: SO IS EVERY ONE THAT TRUSTETH INT THEM.I# 19 BLESS THE LORD, O HOUSE OF ISRAEL: BLESS THE LORD, O HOUSE OF AARON:EL# 20 BLESS THE LORD, O HOUSE OF LEVI: YE THAT FEAR THE LORD, BLESS THE LORD.L# 21 BLESSED BE THE LORD OUT OF ZION, WHICH DWELLETH AT JERUSALEM. PRAISE YE THE LORD.= CHAPTER 136 K# 1 O GIVE THANKS UNTO THE LORD; FOR HE IS GOOD: FOR HIS MERCY ENDURETH FOR EVER.H# 2 O GIVE THANKS UNTO THE GOD OF GODS: FOR HIS MERCY ENDURETH FOR EVER.H# 3 O GIVE THANKS TO THE LORD OF LORDS: FOR HIS MERCY ENDURETH FOR EVER.J# 4 TO HIM WHO ALONE DOETH GREAT WONDERS: FOR HIS MERCY ENDURETH FOR EVER.L# 5 TO HIM THAT BY WISDOM MADE THE HEAVENS: FOR HIS MERCY ENDURETH FOR EVER.G# 6 TO HIM THAT STRETCHED OUT THE EARTH ABOVE THE WATERS: FOR HIS MERCYA ENDURETH FOR EVER.EC# 7 TO HIM THAT MADE GREAT LIGHTS: FOR HIS MERCY ENDURETH FOR EVER: <# 8 THE SUN TO RULE BY DAY: FOR HIS MERCY ENDURETH FOR EVER:I# 9 THE MOON AND STARS TO RULE BY NIGHT: FOR HIS MERCY ENDURETH FOR EVER. K# 10 TO HIM THAT SMOTE EGYPT IN THEIR FIRSTBORN: FOR HIS MERCY ENDURETH FORD EVER:M# 11 AND BROUGHT OUT ISRAEL FROM AMONG THEM: FOR HIS MERCY ENDURETH FOR EVER:E ITEM# 12 WITH A STRONG HAND, AND WITH A STRETCHED OUT ARM: FOR HIS MERCY ENDURETHB FOR EVER.L# 13 TO HIM WHICH DIVIDED THE RED SEA INTO PARTS: FOR HIS MERCY ENDURETH FOR EVER:L# 14 AND MADE ISRAEL TO PASS THROUGH THE MIDST OF IT: FOR HIS MERCY ENDURETH FOR EVER:E# 15 BUT OVERTHREW PHARAOH AND HIS HOST IN THE RED SEA: FOR HIS MERCY  ENDURETH FOR EVER.OF# 16 TO HIM WHICH LED HIS PEOPLE THROUGH THE WILDERNESS: FOR HIS MERCY ENDURETH 00q7-7<%X>%+%O-%TADATADATAFOR EVER. E# 17 TO HIM WHICH SMOTE GREAT KINGS: FOR HIS MERCY ENDURETH FOR EVER:T<# 18 AND SLEW FAMOUS KINGS: FOR HIS MERCY ENDURETH FOR EVER:A# 19 SIHON KING OF THE AMORITES: FOR HIS MERCY ENDURETH FOR EVER:O@# 20 AND OG THE KING OF BASHAN: FOR HIS MERCY ENDURETH FOR EVER:J# 21 AND GAVE THEIR LAND FOR AN HERITAGE: FOR HIS MERCY ENDURETH FOR EVER:I# 22 EVEN AN HERITAGE UNTO ISRAEL HIS SERVANT: FOR HIS MERCY ENDURETH FOR EVER.J# 23 WHO REMEMBERED US IN OUR LOW ESTATE: FOR HIS MERCY ENDURETH FOR EVER:L# 24 AND HATH REDEEMED US FROM OUR ENEMIES: FOR HIS MERCY ENDURETH FOR EVER.C# 25 WHO GIVETH FOOD TO ALL FLESH: FOR HIS MERCY ENDURETH FOR EVER.9K# 26 O GIVE THANKS UNTO THE GOD OF HEAVEN: FOR HIS MERCY ENDURETH FOR EVER.H= CHAPTER 137 F# 1 BY THE RIVERS OF BABYLON, THERE WE SAT DOWN, YEA, WE WEPT, WHEN WE REMEMBERED ZION. ># 2 WE HANGED OUR HARPS UPON THE WILLOWS IN THE MIDST THEREOF.J# 3 FOR THERE THEY THAT CARRIED US AWAY CAPTIVE REQUIRED OF US A SONG; ANDN THEY THAT WASTED US REQUIRED OF US MIRTH, SAYING, SING US ONE OF THE SONGS OF ZION.7# 4 HOW SHALL WE SING THE LORDS SONG IN A STRANGE LAND? H# 5 IF I FORGET THEE, O JERUSALEM, LET MY RIGHT HAND FORGET HER CUNNING.L# 6 IF I DO NOT REMEMBER THEE, LET MY TONGUE CLEAVE TO THE ROOF OF MY MOUTH;. IF I PREFER NOT JERUSALEM ABOVE MY CHIEF JOY.M# 7 REMEMBER, O LORD, THE CHILDREN OF EDOM IN THE DAY OF JERUSALEM; WHO SAID,S2 RASE IT, RASE IT, EVEN TO THE FOUNDATION THEREOF.K# 8 O DAUGHTER OF BABYLON, WHO ART TO BE DESTROYED; HAPPY SHALL HE BE, THAT,' REWARDETH THEE AS THOU HAST SERVED US.OJ# 9 HAPPY SHALL HE BE, THAT TAKETH AND DASHETH THY LITTLE ONES AGAINST THE STONES.= CHAPTER 138 N# 1 I WILL PRAISE THEE WITH MY WHOLE HEART: BEFORE THE GODS WILL I SING PRAISE UNTO THEE.RF# 2 I WILL WORSHIP TOWARD THY HOLY TEMPLE, AND PRAISE THY NAME FOR THYM LOVINGKINDNESS AND FOR THY TRUTH: FOR THOU HAST MAGNIFIED THY WORD ABOVE ALL THY NAME.J# 3 IN THE DAY WHEN I CRIED THOU ANSWEREDST ME, AND STRENGTHENEDST ME WITH STRENGTH IN MY SOUL.EL# 4 ALL THE KINGS OF THE EARTH SHALL PRAISE THEE, O LORD, WHEN THEY HEAR THE WORDS OF THY MOUTH.K# 5 YEA, THEY SHALL SING IN THE WAYS OF THE LORD: FOR GREAT IS THE GLORY OFE THE LORD.H# 6 THOUGH THE LORD BE HIGH, YET HATH HE RESPECT UNTO THE LOWLY: BUT THE PROUD HE KNOWETH AFAR OFF.AJ# 7 THOUGH I WALK IN THE MIDST OF TROUBLE, THOU WILT REVIVE ME: THOU SHALTJ STRETCH FORTH THINE HAND AGAINST THE WRATH OF MINE ENEMIES, AND THY RIGHT HAND SHALL SAVE ME.F# 8 THE LORD WILL PERFECT THAT WHICH CONCERNETH ME: THY MERCY, O LORD,= ENDURETH FOR EVER: FORSAKE NOT THE WORKS OF THINE OWN HANDS.H= CHAPTER 139 0# 1 O LORD, THOU HAST SEARCHED ME, AND KNOWN ME.H# 2 THOU KNOWEST MY DOWNSITTING AND MINE UPRISING, THOU UNDERSTANDEST MY THOUGHT AFAR OFF.M# 3 THOU COMPASSEST MY PATH AND MY LYING DOWN, AND ART ACQUAINTED WITH ALL MYR WAYS.J# 4 FOR THERE IS NOT A WORD IN MY TONGUE, BUT, LO, O LORD, THOU KNOWEST IT ALTOGETHER.F# 5 THOU HAST BESET ME BEHIND AND BEFORE, AND LAID THINE HAND UPON ME.L# 6 SUCH KNOWLEDGE IS TOO WONDERFUL FOR ME; IT IS HIGH, I CANNOT ATTAIN UNTO IT.H# 7 WHITHER SHALL I GO FROM THY SPIRIT? OR WHITHER SHALL I FLEE FROM THY PRESENCE?I# 8 IF I ASCEND UP INTO HEAVEN, THOU ART THERE: IF I MAKE MY BED IN HELL,T BEHOLD, THOU ART THERE.K# 9 IF I TAKE THE WINGS OF THE MORNING, AND DWELL IN THE UTTERMOST PARTS OF. THE SEA;HI# 10 EVEN THERE SHALL THY HAND LEAD ME, AND THY RIGHT HAND SHALL HOLD ME.EJ# 11 IF I SAY, SURELY THE DARKNESS SHALL COVER ME; EVEN THE NIGHT SHALL BE LIGHT ABOUT ME.I# 12 YEA, THE DARKNESS HIDETH NOT FROM THEE; BUT THE NIGHT SHINETH AS THEE8 DAY: THE DARKNESS AND THE LIGHT ARE BOTH ALIKE TO THEE.I# 13 FOR THOU HAST POSSESSED MY REINS: THOU HAST COVERED ME IN MY MOTHERS  WOMB.L# 14 I WILL PRAISE THEE; FOR I AM FEARFULLY AND WONDERFULLY MADE: MARVELLOUS4 ARE THY WORKS; AND THAT MY SOUL KNOWETH RIGHT WELL.G# 15 MY SUBSTANCE WAS NOT HID FROM THEE, WHEN I WAS MADE IN SECRET, AND14 CURIOUSLY WROUGHT IN THE LOWEST PARTS OF THE EARTH.J# 16 THINE EYES DID SEE 00q7b5D%5%T6%! !MY SUBSTANCE, YET BEING UNPERFECT; AND IN THY BOOKN ALL MY MEMBERS WERE WRITTEN, WHICH IN CONTINUANCE WERE FASHIONED, WHEN AS YET THERE WAS NONE OF THEM.L# 17 HOW PRECIOUS ALSO ARE THY THOUGHTS UNTO ME, O GOD! HOW GREAT IS THE SUM OF THEM!EJ# 18 IF I SHOULD COUNT THEM, THEY ARE MORE IN NUMBER THAN THE SAND: WHEN I AWAKE, I AM STILL WITH THEE.WJ# 19 SURELY THOU WILT SLAY THE WICKED, O GOD: DEPART FROM ME THEREFORE, YE BLOODY MEN.M# 20 FOR THEY SPEAK AGAINST THEE WICKEDLY, AND THINE ENEMIES TAKE THY NAME INE VAIN.J# 21 DO NOT I HATE THEM, O LORD, THAT HATE THEE? AND AM NOT I GRIEVED WITH! THOSE THAT RISE UP AGAINST THEE?@# 22 I HATE THEM WITH PERFECT HATRED: I COUNT THEM MINE ENEMIES.G# 23 SEARCH ME, O GOD, AND KNOW MY HEART: TRY ME, AND KNOW MY THOUGHTS:TE# 24 AND SEE IF THERE BE ANY WICKED WAY IN ME, AND LEAD ME IN THE WAYW EVERLASTING.9= CHAPTER 140 L# 1 DELIVER ME, O LORD, FROM THE EVIL MAN: PRESERVE ME FROM THE VIOLENT MAN;I# 2 WHICH IMAGINE MISCHIEFS IN THEIR HEART; CONTINUALLY ARE THEY GATHEREDI TOGETHER FOR WAR.L# 3 THEY HAVE SHARPENED THEIR TONGUES LIKE A SERPENT; ADDERS POISON IS UNDER THEIR LIPS. SELAH.2G# 4 KEEP ME, O LORD, FROM THE HANDS OF THE WICKED; PRESERVE ME FROM THE 7 VIOLENT MAN; WHO HAVE PURPOSED TO OVERTHROW MY GOINGS.SK# 5 THE PROUD HAVE HID A SNARE FOR ME, AND CORDS; THEY HAVE SPREAD A NET BYE/ THE WAYSIDE; THEY HAVE SET GINS FOR ME. SELAH.O?# 6 I SAID UNTO THE LORD, THOU ART MY GOD: HEAR THE VOICE OF MYC SUPPLICATIONS, O LORD.EK# 7 O GOD THE LORD, THE STRENGTH OF MY SALVATION, THOU HAST COVERED MY HEADH IN THE DAY OF BATTLE.H# 8 GRANT NOT, O LORD, THE DESIRES OF THE WICKED: FURTHER NOT HIS WICKED+ DEVICE; LEST THEY EXALT THEMSELVES. SELAH. M# 9 AS FOR THE HEAD OF THOSE THAT COMPASS ME ABOUT, LET THE MISCHIEF OF THEIR  OWN LIPS COVER THEM.FK# 10 LET BURNING COALS FALL UPON THEM: LET THEM BE CAST INTO THE FIRE; INTOS( DEEP PITS, THAT THEY RISE NOT UP AGAIN.M# 11 LET NOT AN EVIL SPEAKER BE ESTABLISHED IN THE EARTH: EVIL SHALL HUNT THEH VIOLENT MAN TO OVERTHROW HIM.K# 12 I KNOW THAT THE LORD WILL MAINTAIN THE CAUSE OF THE AFFLICTED, AND THER RIGHT OF THE POOR. L# 13 SURELY THE RIGHTEOUS SHALL GIVE THANKS UNTO THY NAME: THE UPRIGHT SHALL DWELL IN THY PRESENCE.O= CHAPTER 141 M# 1 LORD, I CRY UNTO THEE: MAKE HASTE UNTO ME; GIVE EAR UNTO MY VOICE, WHEN IC CRY UNTO THEE.EL# 2 LET MY PRAYER BE SET FORTH BEFORE THEE AS INCENSE; AND THE LIFTING UP OF# MY HANDS AS THE EVENING SACRIFICE. C# 3 SET A WATCH, O LORD, BEFORE MY MOUTH; KEEP THE DOOR OF MY LIPS.HM# 4 INCLINE NOT MY HEART TO ANY EVIL THING, TO PRACTISE WICKED WORKS WITH MENN: THAT WORK INIQUITY: AND LET ME NOT EAT OF THEIR DAINTIES.K# 5 LET THE RIGHTEOUS SMITE ME; IT SHALL BE A KINDNESS: AND LET HIM REPROVEHL ME; IT SHALL BE AN EXCELLENT OIL, WHICH SHALL NOT BREAK MY HEAD: FOR YET MY* PRAYER ALSO SHALL BE IN THEIR CALAMITIES.H# 6 WHEN THEIR JUDGES ARE OVERTHROWN IN STONY PLACES, THEY SHALL HEAR MY WORDS; FOR THEY ARE SWEET.H# 7 OUR BONES ARE SCATTERED AT THE GRAVES MOUTH, AS WHEN ONE CUTTETH AND CLEAVETH WOOD UPON THE EARTH.K# 8 BUT MINE EYES ARE UNTO THEE, O GOD THE LORD: IN THEE IS MY TRUST; LEAVEO NOT MY SOUL DESTITUTE.L# 9 KEEP ME FROM THE SNARES WHICH THEY HAVE LAID FOR ME, AND THE GINS OF THE WORKERS OF INIQUITY.EJ# 10 LET THE WICKED FALL INTO THEIR OWN NETS, WHILST THAT I WITHAL ESCAPE.= CHAPTER 142 J# 1 I CRIED UNTO THE LORD WITH MY VOICE; WITH MY VOICE UNTO THE LORD DID I MAKE MY SUPPLICATION.I# 2 I POURED OUT MY COMPLAINT BEFORE HIM; I SHEWED BEFORE HIM MY TROUBLE.EK# 3 WHEN MY SPIRIT WAS OVERWHELMED WITHIN ME, THEN THOU KNEWEST MY PATH. IND@ THE WAY WHEREIN I WALKED HAVE THEY PRIVILY LAID A SNARE FOR ME.J# 4 I LOOKED ON MY RIGHT HAND, AND BEHELD, BUT THERE WAS NO MAN THAT WOULD5 KNOW ME: REFUGE FAILED ME; NO MAN CARED FOR MY SOUL. K# 5 I CRIED UNTO THEE, O LORD: I SAID, THOU ART MY REFUGE AND MY PORTION INO THE LAND OF THE LIVING.E# 6 ATTEND UNTO MY CRY; FOR I AM BROUGHT VERY LOW: DELIVER ME FROM MYO+ PERSECUTORS; FOR THEY ARE STRONGER THAN I00q7-7<%X>%+%O-%TADATADATA.IJ# 7 BRING MY SOUL OUT OF PRISON, THAT I MAY PRAISE THY NAME: THE RIGHTEOUSA SHALL COMPASS ME ABOUT; FOR THOU SHALT DEAL BOUNTIFULLY WITH ME.A= CHAPTER 143 M# 1 HEAR MY PRAYER, O LORD, GIVE EAR TO MY SUPPLICATIONS: IN THY FAITHFULNESSO% ANSWER ME, AND IN THY RIGHTEOUSNESS.RK# 2 AND ENTER NOT INTO JUDGMENT WITH THY SERVANT: FOR IN THY SIGHT SHALL NOP MAN LIVING BE JUSTIFIED.EJ# 3 FOR THE ENEMY HATH PERSECUTED MY SOUL; HE HATH SMITTEN MY LIFE DOWN TOJ THE GROUND; HE HATH MADE ME TO DWELL IN DARKNESS, AS THOSE THAT HAVE BEEN LONG DEAD. G# 4 THEREFORE IS MY SPIRIT OVERWHELMED WITHIN ME; MY HEART WITHIN ME ISH DESOLATE.J# 5 I REMEMBER THE DAYS OF OLD; I MEDITATE ON ALL THY WORKS; I MUSE ON THE WORK OF THY HANDS.TJ# 6 I STRETCH FORTH MY HANDS UNTO THEE: MY SOUL THIRSTETH AFTER THEE, AS A THIRSTY LAND. SELAH.SK# 7 HEAR ME SPEEDILY, O LORD: MY SPIRIT FAILETH: HIDE NOT THY FACE FROM ME,N4 LEST I BE LIKE UNTO THEM THAT GO DOWN INTO THE PIT.H# 8 CAUSE ME TO HEAR THY LOVINGKINDNESS IN THE MORNING; FOR IN THEE DO IM TRUST: CAUSE ME TO KNOW THE WAY WHEREIN I SHOULD WALK; FOR I LIFT UP MY SOULA UNTO THEE.IG# 9 DELIVER ME, O LORD, FROM MINE ENEMIES: I FLEE UNTO THEE TO HIDE ME.KK# 10 TEACH ME TO DO THY WILL; FOR THOU ART MY GOD: THY SPIRIT IS GOOD; LEADE! ME INTO THE LAND OF UPRIGHTNESS.AM# 11 QUICKEN ME, O LORD, FOR THY NAMES SAKE: FOR THY RIGHTEOUSNESS SAKE BRING  MY SOUL OUT OF TROUBLE.M# 12 AND OF THY MERCY CUT OFF MINE ENEMIES, AND DESTROY ALL THEM THAT AFFLICTV MY SOUL: FOR I AM THY SERVANT.N= CHAPTER 144 J# 1 BLESSED BE THE LORD MY STRENGTH WHICH TEACHETH MY HANDS TO WAR, AND MY FINGERS TO FIGHT:M# 2 MY GOODNESS, AND MY FORTRESS; MY HIGH TOWER, AND MY DELIVERER; MY SHIELD,M9 AND HE IN WHOM I TRUST; WHO SUBDUETH MY PEOPLE UNDER ME.LL# 3 LORD, WHAT IS MAN, THAT THOU TAKEST KNOWLEDGE OF HIM! OR THE SON OF MAN,! THAT THOU MAKEST ACCOUNT OF HIM! F# 4 MAN IS LIKE TO VANITY: HIS DAYS ARE AS A SHADOW THAT PASSETH AWAY.I# 5 BOW THY HEAVENS, O LORD, AND COME DOWN: TOUCH THE MOUNTAINS, AND THEY SHALL SMOKE.G# 6 CAST FORTH LIGHTNING, AND SCATTER THEM: SHOOT OUT THINE ARROWS, ANDY DESTROY THEM.K# 7 SEND THINE HAND FROM ABOVE; RID ME, AND DELIVER ME OUT OF GREAT WATERS,H# FROM THE HAND OF STRANGE CHILDREN;SH# 8 WHOSE MOUTH SPEAKETH VANITY, AND THEIR RIGHT HAND IS A RIGHT HAND OF FALSEHOOD. C# 9 I WILL SING A NEW SONG UNTO THEE, O GOD: UPON A PSALTERY AND ANK9 INSTRUMENT OF TEN STRINGS WILL I SING PRAISES UNTO THEE. H# 10 IT IS HE THAT GIVETH SALVATION UNTO KINGS: WHO DELIVERETH DAVID HIS SERVANT FROM THE HURTFUL SWORD.J# 11 RID ME, AND DELIVER ME FROM THE HAND OF STRANGE CHILDREN, WHOSE MOUTHD SPEAKETH VANITY, AND THEIR RIGHT HAND IS A RIGHT HAND OF FALSEHOOD:E# 12 THAT OUR SONS MAY BE AS PLANTS GROWN UP IN THEIR YOUTH; THAT OURTN DAUGHTERS MAY BE AS CORNER STONES, POLISHED AFTER THE SIMILITUDE OF A PALACE:J# 13 THAT OUR GARNERS MAY BE FULL, AFFORDING ALL MANNER OF STORE: THAT OURB SHEEP MAY BRING FORTH THOUSANDS AND TEN THOUSANDS IN OUR STREETS:M# 14 THAT OUR OXEN MAY BE STRONG TO LABOUR; THAT THERE BE NO BREAKING IN, NORD8 GOING OUT; THAT THERE BE NO COMPLAINING IN OUR STREETS.M# 15 HAPPY IS THAT PEOPLE, THAT IS IN SUCH A CASE: YEA, HAPPY IS THAT PEOPLE, WHOSE GOD IS THE LORD. = CHAPTER 145 M# 1 I WILL EXTOL THEE, MY GOD, O KING; AND I WILL BLESS THY NAME FOR EVER ANDR EVER.H# 2 EVERY DAY WILL I BLESS THEE; AND I WILL PRAISE THY NAME FOR EVER AND EVER.F# 3 GREAT IS THE LORD, AND GREATLY TO BE PRAISED; AND HIS GREATNESS IS UNSEARCHABLE.K# 4 ONE GENERATION SHALL PRAISE THY WORKS TO ANOTHER, AND SHALL DECLARE THYG MIGHTY ACTS.TK# 5 I WILL SPEAK OF THE GLORIOUS HONOUR OF THY MAJESTY, AND OF THY WONDROUS  WORKS.SM# 6 AND MEN SHALL SPEAK OF THE MIGHT OF THY TERRIBLE ACTS: AND I WILL DECLARE  THY GREATNESS.MK# 7 THEY SHALL ABUNDANTLY UTTER THE MEMORY OF THY GREAT GOODNESS, AND SHALL  SING OF THY RIGHTEOUSNESS. M# 8 THE LORD IS GRACIOUS, AND FULL OF COMPASSION; SLOW TO ANGER, AND OF GREATP MERCY.NK# 9 THE LORD IS GOOD TO ALL: AND HIS TENDER MERC00q8b5D%5%T6%! !IES ARE OVER ALL HIS WORKS. H# 10 ALL THY WORKS SHALL PRAISE THEE, O LORD; AND THY SAINTS SHALL BLESS THEE.I# 11 THEY SHALL SPEAK OF THE GLORY OF THY KINGDOM, AND TALK OF THY POWER; G# 12 TO MAKE KNOWN TO THE SONS OF MEN HIS MIGHTY ACTS, AND THE GLORIOUSE MAJESTY OF HIS KINGDOM.E# 13 THY KINGDOM IS AN EVERLASTING KINGDOM, AND THY DOMINION ENDURETHR THROUGHOUT ALL GENERATIONS.M# 14 THE LORD UPHOLDETH ALL THAT FALL, AND RAISETH UP ALL THOSE THAT BE BOWED  DOWN.K# 15 THE EYES OF ALL WAIT UPON THEE; AND THOU GIVEST THEM THEIR MEAT IN DUEY SEASON.G# 16 THOU OPENEST THINE HAND, AND SATISFIEST THE DESIRE OF EVERY LIVINGL THING.FF# 17 THE LORD IS RIGHTEOUS IN ALL HIS WAYS, AND HOLY IN ALL HIS WORKS.M# 18 THE LORD IS NIGH UNTO ALL THEM THAT CALL UPON HIM, TO ALL THAT CALL UPON HIM IN TRUTH.M# 19 HE WILL FULFIL THE DESIRE OF THEM THAT FEAR HIM: HE ALSO WILL HEAR THEIRI CRY, AND WILL SAVE THEM.TK# 20 THE LORD PRESERVETH ALL THEM THAT LOVE HIM: BUT ALL THE WICKED WILL HEE DESTROY.IM# 21 MY MOUTH SHALL SPEAK THE PRAISE OF THE LORD: AND LET ALL FLESH BLESS HISS HOLY NAME FOR EVER AND EVER.E= CHAPTER 146 3# 1 PRAISE YE THE LORD. PRAISE THE LORD, O MY SOUL. H# 2 WHILE I LIVE WILL I PRAISE THE LORD: I WILL SING PRAISES UNTO MY GOD WHILE I HAVE ANY BEING.M# 3 PUT NOT YOUR TRUST IN PRINCES, NOR IN THE SON OF MAN, IN WHOM THERE IS NOE HELP.K# 4 HIS BREATH GOETH FORTH, HE RETURNETH TO HIS EARTH; IN THAT VERY DAY HISH THOUGHTS PERISH. M# 5 HAPPY IS HE THAT HATH THE GOD OF JACOB FOR HIS HELP, WHOSE HOPE IS IN THEI LORD HIS GOD:I# 6 WHICH MADE HEAVEN, AND EARTH, THE SEA, AND ALL THAT THEREIN IS: WHICH  KEEPETH TRUTH FOR EVER:H# 7 WHICH EXECUTETH JUDGMENT FOR THE OPPRESSED: WHICH GIVETH FOOD TO THE( HUNGRY. THE LORD LOOSETH THE PRISONERS:J# 8 THE LORD OPENETH THE EYES OF THE BLIND: THE LORD RAISETH THEM THAT ARE+ BOWED DOWN: THE LORD LOVETH THE RIGHTEOUS:HM# 9 THE LORD PRESERVETH THE STRANGERS; HE RELIEVETH THE FATHERLESS AND WIDOW: 2 BUT THE WAY OF THE WICKED HE TURNETH UPSIDE DOWN.B# 10 THE LORD SHALL REIGN FOR EVER, EVEN THY GOD, O ZION, UNTO ALL! GENERATIONS. PRAISE YE THE LORD.I= CHAPTER 147 N# 1 PRAISE YE THE LORD: FOR IT IS GOOD TO SING PRAISES UNTO OUR GOD; FOR IT IS PLEASANT; AND PRAISE IS COMELY.K# 2 THE LORD DOTH BUILD UP JERUSALEM: HE GATHERETH TOGETHER THE OUTCASTS OFD ISRAEL.@# 3 HE HEALETH THE BROKEN IN HEART, AND BINDETH UP THEIR WOUNDS.K# 4 HE TELLETH THE NUMBER OF THE STARS; HE CALLETH THEM ALL BY THEIR NAMES.TI# 5 GREAT IS OUR LORD, AND OF GREAT POWER: HIS UNDERSTANDING IS INFINITE.OK# 6 THE LORD LIFTETH UP THE MEEK: HE CASTETH THE WICKED DOWN TO THE GROUND. L# 7 SING UNTO THE LORD WITH THANKSGIVING; SING PRAISE UPON THE HARP UNTO OUR GOD:RJ# 8 WHO COVERETH THE HEAVEN WITH CLOUDS, WHO PREPARETH RAIN FOR THE EARTH,- WHO MAKETH GRASS TO GROW UPON THE MOUNTAINS.RG# 9 HE GIVETH TO THE BEAST HIS FOOD, AND TO THE YOUNG RAVENS WHICH CRY. K# 10 HE DELIGHTETH NOT IN THE STRENGTH OF THE HORSE: HE TAKETH NOT PLEASURE  IN THE LEGS OF A MAN.J# 11 THE LORD TAKETH PLEASURE IN THEM THAT FEAR HIM, IN THOSE THAT HOPE IN HIS MERCY.S:# 12 PRAISE THE LORD, O JERUSALEM; PRAISE THY GOD, O ZION.H# 13 FOR HE HATH STRENGTHENED THE BARS OF THY GATES; HE HATH BLESSED THY CHILDREN WITHIN THEE.L# 14 HE MAKETH PEACE IN THY BORDERS, AND FILLETH THEE WITH THE FINEST OF THE WHEAT.RG# 15 HE SENDETH FORTH HIS COMMANDMENT UPON EARTH: HIS WORD RUNNETH VERY SWIFTLY.EF# 16 HE GIVETH SNOW LIKE WOOL: HE SCATTERETH THE HOARFROST LIKE ASHES.J# 17 HE CASTETH FORTH HIS ICE LIKE MORSELS: WHO CAN STAND BEFORE HIS COLD?L# 18 HE SENDETH OUT HIS WORD, AND MELTETH THEM: HE CAUSETH HIS WIND TO BLOW, AND THE WATERS FLOW.RH# 19 HE SHEWETH HIS WORD UNTO JACOB, HIS STATUTES AND HIS JUDGMENTS UNTO ISRAEL.I# 20 HE HATH NOT DEALT SO WITH ANY NATION: AND AS FOR HIS JUDGMENTS, THEY ) HAVE NOT KNOWN THEM. PRAISE YE THE LORD. = CHAPTER 148 N# 1 PRAISE YE THE LORD. PRAISE YE THE LORD FROM THE HEAVENS: PRAISE HIM IN THE HEIGHTS.E@# 2 PRAISE YE HIM, ALL HIS ANGELS: PRAISE YE HIM, ALL 00q8r 8<%X>%+%O-%TADATADATAHIS HOSTS.C# 3 PRAISE YE HIM, SUN AND MOON: PRAISE HIM, ALL YE STARS OF LIGHT.EF# 4 PRAISE HIM, YE HEAVENS OF HEAVENS, AND YE WATERS THAT BE ABOVE THE HEAVENS.II# 5 LET THEM PRAISE THE NAME OF THE LORD: FOR HE COMMANDED, AND THEY WEREA CREATED.TI# 6 HE HATH ALSO STABLISHED THEM FOR EVER AND EVER: HE HATH MADE A DECREE  WHICH SHALL NOT PASS.># 7 PRAISE THE LORD FROM THE EARTH, YE DRAGONS, AND ALL DEEPS:G# 8 FIRE, AND HAIL; SNOW, AND VAPOURS; STORMY WIND FULFILLING HIS WORD:L=# 9 MOUNTAINS, AND ALL HILLS; FRUITFUL TREES, AND ALL CEDARS:O># 10 BEASTS, AND ALL CATTLE; CREEPING THINGS, AND FLYING FOWL:G# 11 KINGS OF THE EARTH, AND ALL PEOPLE; PRINCES, AND ALL JUDGES OF THEP EARTH: 8# 12 BOTH YOUNG MEN, AND MAIDENS; OLD MEN, AND CHILDREN:K# 13 LET THEM PRAISE THE NAME OF THE LORD: FOR HIS NAME ALONE IS EXCELLENT;E) HIS GLORY IS ABOVE THE EARTH AND HEAVEN.LK# 14 HE ALSO EXALTETH THE HORN OF HIS PEOPLE, THE PRAISE OF ALL HIS SAINTS; L EVEN OF THE CHILDREN OF ISRAEL, A PEOPLE NEAR UNTO HIM. PRAISE YE THE LORD.= CHAPTER 149 L# 1 PRAISE YE THE LORD. SING UNTO THE LORD A NEW SONG, AND HIS PRAISE IN THE CONGREGATION OF SAINTS.H# 2 LET ISRAEL REJOICE IN HIM THAT MADE HIM: LET THE CHILDREN OF ZION BE JOYFUL IN THEIR KING.I# 3 LET THEM PRAISE HIS NAME IN THE DANCE: LET THEM SING PRAISES UNTO HIML WITH THE TIMBREL AND HARP.YI# 4 FOR THE LORD TAKETH PLEASURE IN HIS PEOPLE: HE WILL BEAUTIFY THE MEEKP WITH SALVATION.K# 5 LET THE SAINTS BE JOYFUL IN GLORY: LET THEM SING ALOUD UPON THEIR BEDS.AK# 6 LET THE HIGH PRAISES OF GOD BE IN THEIR MOUTH, AND A TWO-EDGED SWORD INA THEIR HAND;K# 7 TO EXECUTE VENGEANCE UPON THE HEATHEN, AND PUNISHMENTS UPON THE PEOPLE;HK# 8 TO BIND THEIR KINGS WITH CHAINS, AND THEIR NOBLES WITH FETTERS OF IRON;MG# 9 TO EXECUTE UPON THEM THE JUDGMENT WRITTEN: THIS HONOUR HAVE ALL HIS  SAINTS. PRAISE YE THE LORD.= CHAPTER 150 F# 1 PRAISE YE THE LORD. PRAISE GOD IN HIS SANCTUARY: PRAISE HIM IN THE FIRMAMENT OF HIS POWER.I# 2 PRAISE HIM FOR HIS MIGHTY ACTS: PRAISE HIM ACCORDING TO HIS EXCELLENT GREATNESS.IJ# 3 PRAISE HIM WITH THE SOUND OF THE TRUMPET: PRAISE HIM WITH THE PSALTERY AND HARP.C# 4 PRAISE HIM WITH THE TIMBREL AND DANCE: PRAISE HIM WITH STRINGEDC INSTRUMENTS AND ORGANS.G# 5 PRAISE HIM UPON THE LOUD CYMBALS: PRAISE HIM UPON THE HIGH SOUNDING CYMBALS. I# 6 LET EVERY THING THAT HATH BREATH PRAISE THE LORD. PRAISE YE THE LORD.ORD. PRAISE GOD IN HIS SANCTUARY: PRAISE HIM IN THE FIRMAMENT OF HIS POWER.I# 2 PRAISE HIM FOR HIS MIGHTY ACTS: PRAISE HIM* BOOK20 PROVERBSX = CHAPTER 1 =# 1 THE PROVERBS OF SOLOMON THE SON OF DAVID, KING OF ISRAEL;HK# 2 TO KNOW WISDOM AND INSTRUCTION; TO PERCEIVE THE WORDS OF UNDERSTANDING;PL# 3 TO RECEIVE THE INSTRUCTION OF WISDOM, JUSTICE, AND JUDGMENT, AND EQUITY;B# 4 TO GIVE SUBTILTY TO THE SIMPLE, TO THE YOUNG MAN KNOWLEDGE AND DISCRETION.B# 5 A WISE MAN WILL HEAR, AND WILL INCREASE LEARNING; AND A MAN OF/ UNDERSTANDING SHALL ATTAIN UNTO WISE COUNSELS: K# 6 TO UNDERSTAND A PROVERB, AND THE INTERPRETATION; THE WORDS OF THE WISE,X AND THEIR DARK SAYINGS.I# 7 THE FEAR OF THE LORD IS THE BEGINNING OF KNOWLEDGE: BUT FOOLS DESPISED WISDOM AND INSTRUCTION.J# 8 MY SON, HEAR THE INSTRUCTION OF THY FATHER, AND FORSAKE NOT THE LAW OF THY MOTHER:J# 9 FOR THEY SHALL BE AN ORNAMENT OF GRACE UNTO THY HEAD, AND CHAINS ABOUT THY NECK.6# 10 MY SON, IF SINNERS ENTICE THEE, CONSENT THOU NOT.F# 11 IF THEY SAY, COME WITH US, LET US LAY WAIT FOR BLOOD, LET US LURK( PRIVILY FOR THE INNOCENT WITHOUT CAUSE:K# 12 LET US SWALLOW THEM UP ALIVE AS THE GRAVE; AND WHOLE, AS THOSE THAT GOO DOWN INTO THE PIT:IH# 13 WE SHALL FIND ALL PRECIOUS SUBSTANCE, WE SHALL FILL OUR HOUSES WITH SPOIL:T9# 14 CAST IN THY LOT AMONG US; LET US ALL HAVE ONE PURSE:TL# 15 MY SON, WALK NOT THOU IN THE WAY WITH THEM; REFRAIN THY FOOT FROM THEIR PATH:># 16 FOR THEIR FEET RUN TO EVIL, AND MAKE HASTE TO SHED BLOOD.?# 17 SURELY IN VAIN THE NET IS SPREAD IN THE SIGHT OF ANY BIRD.LK# 18 AND THEY LAY WAIT FOR THEIR OWN BLOOD; THEY LURK PRIVILY FOR 00r8b5D%5%T6%! !THEIR OWNM LIVES. K# 19 SO ARE THE WAYS OF EVERY ONE THAT IS GREEDY OF GAIN; WHICH TAKETH AWAYL THE LIFE OF THE OWNERS THEREOF.B# 20 WISDOM CRIETH WITHOUT; SHE UTTERETH HER VOICE IN THE STREETS:G# 21 SHE CRIETH IN THE CHIEF PLACE OF CONCOURSE, IN THE OPENINGS OF THET3 GATES: IN THE CITY SHE UTTERETH HER WORDS, SAYING,EH# 22 HOW LONG, YE SIMPLE ONES, WILL YE LOVE SIMPLICITY? AND THE SCORNERS5 DELIGHT IN THEIR SCORNING, AND FOOLS HATE KNOWLEDGE?EJ# 23 TURN YOU AT MY REPROOF: BEHOLD, I WILL POUR OUT MY SPIRIT UNTO YOU, I# WILL MAKE KNOWN MY WORDS UNTO YOU.TM# 24 BECAUSE I HAVE CALLED, AND YE REFUSED; I HAVE STRETCHED OUT MY HAND, ANDW NO MAN REGARDED;TL# 25 BUT YE HAVE SET AT NOUGHT ALL MY COUNSEL, AND WOULD NONE OF MY REPROOF:K# 26 I ALSO WILL LAUGH AT YOUR CALAMITY; I WILL MOCK WHEN YOUR FEAR COMETH;RJ# 27 WHEN YOUR FEAR COMETH AS DESOLATION, AND YOUR DESTRUCTION COMETH AS A6 WHIRLWIND; WHEN DISTRESS AND ANGUISH COMETH UPON YOU.L# 28 THEN SHALL THEY CALL UPON ME, BUT I WILL NOT ANSWER; THEY SHALL SEEK ME# EARLY, BUT THEY SHALL NOT FIND ME:NL# 29 FOR THAT THEY HATED KNOWLEDGE, AND DID NOT CHOOSE THE FEAR OF THE LORD:A# 30 THEY WOULD NONE OF MY COUNSEL: THEY DESPISED ALL MY REPROOF.MJ# 31 THEREFORE SHALL THEY EAT OF THE FRUIT OF THEIR OWN WAY, AND BE FILLED WITH THEIR OWN DEVICES.K# 32 FOR THE TURNING AWAY OF THE SIMPLE SHALL SLAY THEM, AND THE PROSPERITYI OF FOOLS SHALL DESTROY THEM.NM# 33 BUT WHOSO HEARKENETH UNTO ME SHALL DWELL SAFELY, AND SHALL BE QUIET FROMI FEAR OF EVIL. = CHAPTER 2 N# 1 MY SON, IF THOU WILT RECEIVE MY WORDS, AND HIDE MY COMMANDMENTS WITH THEE;H# 2 SO THAT THOU INCLINE THINE EAR UNTO WISDOM, AND APPLY THINE HEART TO UNDERSTANDING;EE# 3 YEA, IF THOU CRIEST AFTER KNOWLEDGE, AND LIFTEST UP THY VOICE FOR  UNDERSTANDING;IC# 4 IF THOU SEEKEST HER AS SILVER, AND SEARCHEST FOR HER AS FOR HIDL TREASURES;TK# 5 THEN SHALT THOU UNDERSTAND THE FEAR OF THE LORD, AND FIND THE KNOWLEDGEK OF GOD.E# 6 FOR THE LORD GIVETH WISDOM: OUT OF HIS MOUTH COMETH KNOWLEDGE ANDP UNDERSTANDING.NM# 7 HE LAYETH UP SOUND WISDOM FOR THE RIGHTEOUS: HE IS A BUCKLER TO THEM THATA WALK UPRIGHTLY.K# 8 HE KEEPETH THE PATHS OF JUDGMENT, AND PRESERVETH THE WAY OF HIS SAINTS.HL# 9 THEN SHALT THOU UNDERSTAND RIGHTEOUSNESS, AND JUDGMENT, AND EQUITY; YEA, EVERY GOOD PATH.EJ# 10 WHEN WISDOM ENTERETH INTO THINE HEART, AND KNOWLEDGE IS PLEASANT UNTO THY SOUL;C# 11 DISCRETION SHALL PRESERVE THEE, UNDERSTANDING SHALL KEEP THEE: M# 12 TO DELIVER THEE FROM THE WAY OF THE EVIL MAN, FROM THE MAN THAT SPEAKETHN FROWARD THINGS;I# 13 WHO LEAVE THE PATHS OF UPRIGHTNESS, TO WALK IN THE WAYS OF DARKNESS;HJ# 14 WHO REJOICE TO DO EVIL, AND DELIGHT IN THE FROWARDNESS OF THE WICKED;=# 15 WHOSE WAYS ARE CROOKED, AND THEY FROWARD IN THEIR PATHS:EI# 16 TO DELIVER THEE FROM THE STRANGE WOMAN, EVEN FROM THE STRANGER WHICHI FLATTERETH WITH HER WORDS;EK# 17 WHICH FORSAKETH THE GUIDE OF HER YOUTH, AND FORGETTETH THE COVENANT OFA HER GOD.EE# 18 FOR HER HOUSE INCLINETH UNTO DEATH, AND HER PATHS UNTO THE DEAD.TL# 19 NONE THAT GO UNTO HER RETURN AGAIN, NEITHER TAKE THEY HOLD OF THE PATHS OF LIFE.SL# 20 THAT THOU MAYEST WALK IN THE WAY OF GOOD MEN, AND KEEP THE PATHS OF THE RIGHTEOUS.M# 21 FOR THE UPRIGHT SHALL DWELL IN THE LAND, AND THE PERFECT SHALL REMAIN IN  IT.J# 22 BUT THE WICKED SHALL BE CUT OFF FROM THE EARTH, AND THE TRANSGRESSORS SHALL BE ROOTED OUT OF IT.T = CHAPTER 3 H# 1 MY SON, FORGET NOT MY LAW; BUT LET THINE HEART KEEP MY COMMANDMENTS:I# 2 FOR LENGTH OF DAYS, AND LONG LIFE, AND PEACE, SHALL THEY ADD TO THEE.HI# 3 LET NOT MERCY AND TRUTH FORSAKE THEE: BIND THEM ABOUT THY NECK; WRITE $ THEM UPON THE TABLE OF THINE HEART:L# 4 SO SHALT THOU FIND FAVOUR AND GOOD UNDERSTANDING IN THE SIGHT OF GOD AND MAN.AG# 5 TRUST IN THE LORD WITH ALL THINE HEART; AND LEAN NOT UNTO THINE OWNC UNDERSTANDING.AC# 6 IN ALL THY WAYS ACKNOWLEDGE HIM, AND HE SHALL DIRECT THY PATHS. G# 7 BE NOT WISE IN THINE OWN EYES: FEAR THE LORD, AND DEPART FROM EVIL.:=# 8 IT SHALL BE HEALTH TO THY NAVEL, A00r8 8<%X>%+%O-%TADATADATAND MARROW TO THY BONES.AM# 9 HONOUR THE LORD WITH THY SUBSTANCE, AND WITH THE FIRSTFRUITS OF ALL THINEK INCREASE:J# 10 SO SHALL THY BARNS BE FILLED WITH PLENTY, AND THY PRESSES SHALL BURST OUT WITH NEW WINE.IL# 11 MY SON, DESPISE NOT THE CHASTENING OF THE LORD; NEITHER BE WEARY OF HIS CORRECTION:M# 12 FOR WHOM THE LORD LOVETH HE CORRECTETH; EVEN AS A FATHER THE SON IN WHOMT HE DELIGHTETH. C# 13 HAPPY IS THE MAN THAT FINDETH WISDOM, AND THE MAN THAT GETTETH UNDERSTANDING.EL# 14 FOR THE MERCHANDISE OF IT IS BETTER THAN THE MERCHANDISE OF SILVER, AND! THE GAIN THEREOF THAN FINE GOLD. K# 15 SHE IS MORE PRECIOUS THAN RUBIES: AND ALL THE THINGS THOU CANST DESIREY! ARE NOT TO BE COMPARED UNTO HER. I# 16 LENGTH OF DAYS IS IN HER RIGHT HAND; AND IN HER LEFT HAND RICHES ANDR HONOUR.D# 17 HER WAYS ARE WAYS OF PLEASANTNESS, AND ALL HER PATHS ARE PEACE.M# 18 SHE IS A TREE OF LIFE TO THEM THAT LAY HOLD UPON HER: AND HAPPY IS EVERYS ONE THAT RETAINETH HER.H# 19 THE LORD BY WISDOM HATH FOUNDED THE EARTH; BY UNDERSTANDING HATH HE ESTABLISHED THE HEAVENS.L# 20 BY HIS KNOWLEDGE THE DEPTHS ARE BROKEN UP, AND THE CLOUDS DROP DOWN THE DEW.EG# 21 MY SON, LET NOT THEM DEPART FROM THINE EYES: KEEP SOUND WISDOM ANDT DISCRETION:@# 22 SO SHALL THEY BE LIFE UNTO THY SOUL, AND GRACE TO THY NECK.L# 23 THEN SHALT THOU WALK IN THY WAY SAFELY, AND THY FOOT SHALL NOT STUMBLE.H# 24 WHEN THOU LIEST DOWN, THOU SHALT NOT BE AFRAID: YEA, THOU SHALT LIE$ DOWN, AND THY SLEEP SHALL BE SWEET.K# 25 BE NOT AFRAID OF SUDDEN FEAR, NEITHER OF THE DESOLATION OF THE WICKED,E WHEN IT COMETH.M# 26 FOR THE LORD SHALL BE THY CONFIDENCE, AND SHALL KEEP THY FOOT FROM BEINGM TAKEN.TK# 27 WITHHOLD NOT GOOD FROM THEM TO WHOM IT IS DUE, WHEN IT IS IN THE POWERS OF THINE HAND TO DO IT.I# 28 SAY NOT UNTO THY NEIGHBOUR, GO, AND COME AGAIN, AND TO MORROW I WILLL! GIVE; WHEN THOU HAST IT BY THEE.J# 29 DEVISE NOT EVIL AGAINST THY NEIGHBOUR, SEEING HE DWELLETH SECURELY BY THEE.G# 30 STRIVE NOT WITH A MAN WITHOUT CAUSE, IF HE HAVE DONE THEE NO HARM. ># 31 ENVY THOU NOT THE OPPRESSOR, AND CHOOSE NONE OF HIS WAYS.K# 32 FOR THE FROWARD IS ABOMINATION TO THE LORD: BUT HIS SECRET IS WITH THE RIGHTEOUS.OM# 33 THE CURSE OF THE LORD IS IN THE HOUSE OF THE WICKED: BUT HE BLESSETH THE  HABITATION OF THE JUST.I# 34 SURELY HE SCORNETH THE SCORNERS: BUT HE GIVETH GRACE UNTO THE LOWLY.HM# 35 THE WISE SHALL INHERIT GLORY: BUT SHAME SHALL BE THE PROMOTION OF FOOLS.H = CHAPTER 4 F# 1 HEAR, YE CHILDREN, THE INSTRUCTION OF A FATHER, AND ATTEND TO KNOW UNDERSTANDING.V8# 2 FOR I GIVE YOU GOOD DOCTRINE, FORSAKE YE NOT MY LAW.H# 3 FOR I WAS MY FATHERS SON, TENDER AND ONLY BELOVED IN THE SIGHT OF MY MOTHER.I# 4 HE TAUGHT ME ALSO, AND SAID UNTO ME, LET THINE HEART RETAIN MY WORDS:S KEEP MY COMMANDMENTS, AND LIVE.J# 5 GET WISDOM, GET UNDERSTANDING: FORGET IT NOT; NEITHER DECLINE FROM THE WORDS OF MY MOUTH. I# 6 FORSAKE HER NOT, AND SHE SHALL PRESERVE THEE: LOVE HER, AND SHE SHALL KEEP THEE.II# 7 WISDOM IS THE PRINCIPAL THING; THEREFORE GET WISDOM: AND WITH ALL THY  GETTING GET UNDERSTANDING.EJ# 8 EXALT HER, AND SHE SHALL PROMOTE THEE: SHE SHALL BRING THEE TO HONOUR, WHEN THOU DOST EMBRACE HER.M# 9 SHE SHALL GIVE TO THINE HEAD AN ORNAMENT OF GRACE: A CROWN OF GLORY SHALL SHE DELIVER TO THEE.AL# 10 HEAR, O MY SON, AND RECEIVE MY SAYINGS; AND THE YEARS OF THY LIFE SHALL BE MANY.RM# 11 I HAVE TAUGHT THEE IN THE WAY OF WISDOM; I HAVE LED THEE IN RIGHT PATHS.NF# 12 WHEN THOU GOEST, THY STEPS SHALL NOT BE STRAITENED; AND WHEN THOU! RUNNEST, THOU SHALT NOT STUMBLE.TL# 13 TAKE FAST HOLD OF INSTRUCTION; LET HER NOT GO: KEEP HER; FOR SHE IS THY LIFE.I# 14 ENTER NOT INTO THE PATH OF THE WICKED, AND GO NOT IN THE WAY OF EVILE MEN.R;# 15 AVOID IT, PASS NOT BY IT, TURN FROM IT, AND PASS AWAY.EK# 16 FOR THEY SLEEP NOT, EXCEPT THEY HAVE DONE MISCHIEF; AND THEIR SLEEP ISA, TAKEN AWAY, UNLESS THEY CAUSE SOME TO FALL.J# 17 FOR THEY EAT THE BREAD OF WICKEDNESS, AND DRINK THE WINE OF VIOLENCE.L# 18 BUT THE PATH OF THE JUST IS00r 8b5D%5%T6%! ! AS THE SHINING LIGHT, THAT SHINETH MORE AND MORE UNTO THE PERFECT DAY.SE# 19 THE WAY OF THE WICKED IS AS DARKNESS: THEY KNOW NOT AT WHAT THEYN STUMBLE. C# 20 MY SON, ATTEND TO MY WORDS; INCLINE THINE EAR UNTO MY SAYINGS.DI# 21 LET THEM NOT DEPART FROM THINE EYES; KEEP THEM IN THE MIDST OF THINE, HEART.HI# 22 FOR THEY ARE LIFE UNTO THOSE THAT FIND THEM, AND HEALTH TO ALL THEIRS FLESH.LM# 23 KEEP THY HEART WITH ALL DILIGENCE; FOR OUT OF IT ARE THE ISSUES OF LIFE.M# 24 PUT AWAY FROM THEE A FROWARD MOUTH, AND PERVERSE LIPS PUT FAR FROM THEE.MM# 25 LET THINE EYES LOOK RIGHT ON, AND LET THINE EYELIDS LOOK STRAIGHT BEFOREW THEE.F# 26 PONDER THE PATH OF THY FEET, AND LET ALL THY WAYS BE ESTABLISHED.K# 27 TURN NOT TO THE RIGHT HAND NOR TO THE LEFT: REMOVE THY FOOT FROM EVIL.T = CHAPTER 5 I# 1 MY SON, ATTEND UNTO MY WISDOM, AND BOW THINE EAR TO MY UNDERSTANDING:HM# 2 THAT THOU MAYEST REGARD DISCRETION, AND THAT THY LIPS MAY KEEP KNOWLEDGE. J# 3 FOR THE LIPS OF A STRANGE WOMAN DROP AS AN HONEYCOMB, AND HER MOUTH IS SMOOTHER THAN OIL: B# 4 BUT HER END IS BITTER AS WORMWOOD, SHARP AS A TWO-EDGED SWORD.;# 5 HER FEET GO DOWN TO DEATH; HER STEPS TAKE HOLD ON HELL. L# 6 LEST THOU SHOULDEST PONDER THE PATH OF LIFE, HER WAYS ARE MOVEABLE, THAT THOU CANST NOT KNOW THEM.M# 7 HEAR ME NOW THEREFORE, O YE CHILDREN, AND DEPART NOT FROM THE WORDS OF MY  MOUTH.TI# 8 REMOVE THY WAY FAR FROM HER, AND COME NOT NIGH THE DOOR OF HER HOUSE:PJ# 9 LEST THOU GIVE THINE HONOUR UNTO OTHERS, AND THY YEARS UNTO THE CRUEL:H# 10 LEST STRANGERS BE FILLED WITH THY WEALTH; AND THY LABOURS BE IN THE HOUSE OF A STRANGER;WJ# 11 AND THOU MOURN AT THE LAST, WHEN THY FLESH AND THY BODY ARE CONSUMED,J# 12 AND SAY, HOW HAVE I HATED INSTRUCTION, AND MY HEART DESPISED REPROOF;K# 13 AND HAVE NOT OBEYED THE VOICE OF MY TEACHERS, NOR INCLINED MINE EAR TOT THEM THAT INSTRUCTED ME!UL# 14 I WAS ALMOST IN ALL EVIL IN THE MIDST OF THE CONGREGATION AND ASSEMBLY.K# 15 DRINK WATERS OUT OF THINE OWN CISTERN, AND RUNNING WATERS OUT OF THINE: OWN WELL.G# 16 LET THY FOUNTAINS BE DISPERSED ABROAD, AND RIVERS OF WATERS IN THE STREETS.W=# 17 LET THEM BE ONLY THINE OWN, AND NOT STRANGERS WITH THEE.AI# 18 LET THY FOUNTAIN BE BLESSED: AND REJOICE WITH THE WIFE OF THY YOUTH.IL# 19 LET HER BE AS THE LOVING HIND AND PLEASANT ROE; LET HER BREASTS SATISFY> THEE AT ALL TIMES; AND BE THOU RAVISHED ALWAYS WITH HER LOVE.M# 20 AND WHY WILT THOU, MY SON, BE RAVISHED WITH A STRANGE WOMAN, AND EMBRACEF THE BOSOM OF A STRANGER?NJ# 21 FOR THE WAYS OF MAN ARE BEFORE THE EYES OF THE LORD, AND HE PONDERETH ALL HIS GOINGS.M# 22 HIS OWN INIQUITIES SHALL TAKE THE WICKED HIMSELF, AND HE SHALL BE HOLDENS WITH THE CORDS OF HIS SINS.K# 23 HE SHALL DIE WITHOUT INSTRUCTION; AND IN THE GREATNESS OF HIS FOLLY HES SHALL GO ASTRAY.D = CHAPTER 6 L# 1 MY SON, IF THOU BE SURETY FOR THY FRIEND, IF THOU HAST STRICKEN THY HAND WITH A STRANGER,DH# 2 THOU ART SNARED WITH THE WORDS OF THY MOUTH, THOU ART TAKEN WITH THE WORDS OF THY MOUTH.I# 3 DO THIS NOW, MY SON, AND DELIVER THYSELF, WHEN THOU ART COME INTO THEEB HAND OF THY FRIEND; GO, HUMBLE THYSELF, AND MAKE SURE THY FRIEND.?# 4 GIVE NOT SLEEP TO THINE EYES, NOR SLUMBER TO THINE EYELIDS. L# 5 DELIVER THYSELF AS A ROE FROM THE HAND OF THE HUNTER, AND AS A BIRD FROM THE HAND OF THE FOWLER.A# 6 GO TO THE ANT, THOU SLUGGARD; CONSIDER HER WAYS, AND BE WISE:R.# 7 WHICH HAVING NO GUIDE, OVERSEER, OR RULER,L# 8 PROVIDETH HER MEAT IN THE SUMMER, AND GATHERETH HER FOOD IN THE HARVEST.I# 9 HOW LONG WILT THOU SLEEP, O SLUGGARD? WHEN WILT THOU ARISE OUT OF THY  SLEEP?NK# 10 YET A LITTLE SLEEP, A LITTLE SLUMBER, A LITTLE FOLDING OF THE HANDS TOS SLEEP:HI# 11 SO SHALL THY POVERTY COME AS ONE THAT TRAVELLETH, AND THY WANT AS AN ARMED MAN.HB# 12 A NAUGHTY PERSON, A WICKED MAN, WALKETH WITH A FROWARD MOUTH.J# 13 HE WINKETH WITH HIS EYES, HE SPEAKETH WITH HIS FEET, HE TEACHETH WITH HIS FINGERS;,M# 14 FROWARDNESS IS IN HIS HEART, HE DEVISETH MISCHIEF CONTINUALLY; HE SOWETH DISCORD. L# 15 THEREFORE S00r(8 8<%X>%+%O-%TADATADATAHALL HIS CALAMITY COME SUDDENLY; SUDDENLY SHALL HE BE BROKEN WITHOUT REMEDY.L# 16 THESE SIX THINGS DOTH THE LORD HATE: YEA, SEVEN ARE AN ABOMINATION UNTO HIM:HF# 17 A PROUD LOOK, A LYING TONGUE, AND HANDS THAT SHED INNOCENT BLOOD,F# 18 AN HEART THAT DEVISETH WICKED IMAGINATIONS, FEET THAT BE SWIFT IN RUNNING TO MISCHIEF,HI# 19 A FALSE WITNESS THAT SPEAKETH LIES, AND HE THAT SOWETH DISCORD AMONG4 BRETHREN.I# 20 MY SON, KEEP THY FATHERS COMMANDMENT, AND FORSAKE NOT THE LAW OF THY MOTHER:I# 21 BIND THEM CONTINUALLY UPON THINE HEART, AND TIE THEM ABOUT THY NECK.TK# 22 WHEN THOU GOEST, IT SHALL LEAD THEE; WHEN THOU SLEEPEST, IT SHALL KEEPT6 THEE; AND WHEN THOU AWAKEST, IT SHALL TALK WITH THEE.I# 23 FOR THE COMMANDMENT IS A LAMP; AND THE LAW IS LIGHT; AND REPROOFS OFA! INSTRUCTION ARE THE WAY OF LIFE:IK# 24 TO KEEP THEE FROM THE EVIL WOMAN, FROM THE FLATTERY OF THE TONGUE OF A  STRANGE WOMAN.BM# 25 LUST NOT AFTER HER BEAUTY IN THINE HEART; NEITHER LET HER TAKE THEE WITH HER EYELIDS.J# 26 FOR BY MEANS OF A WHORISH WOMAN A MAN IS BROUGHT TO A PIECE OF BREAD:3 AND THE ADULTRESS WILL HUNT FOR THE PRECIOUS LIFE.LE# 27 CAN A MAN TAKE FIRE IN HIS BOSOM, AND HIS CLOTHES NOT BE BURNED?H;# 28 CAN ONE GO UPON HOT COALS, AND HIS FEET NOT BE BURNED?GM# 29 SO HE THAT GOETH IN TO HIS NEIGHBOURS WIFE; WHOSOEVER TOUCHETH HER SHALLM NOT BE INNOCENT.OK# 30 MEN DO NOT DESPISE A THIEF, IF HE STEAL TO SATISFY HIS SOUL WHEN HE IS  HUNGRY;J# 31 BUT IF HE BE FOUND, HE SHALL RESTORE SEVENFOLD; HE SHALL GIVE ALL THE SUBSTANCE OF HIS HOUSE.I# 32 BUT WHOSO COMMITTETH ADULTERY WITH A WOMAN LACKETH UNDERSTANDING: HEE' THAT DOETH IT DESTROYETH HIS OWN SOUL. L# 33 A WOUND AND DISHONOUR SHALL HE GET; AND HIS REPROACH SHALL NOT BE WIPED AWAY.J# 34 FOR JEALOUSY IS THE RAGE OF A MAN: THEREFORE HE WILL NOT SPARE IN THE DAY OF VENGEANCE.M# 35 HE WILL NOT REGARD ANY RANSOM; NEITHER WILL HE REST CONTENT, THOUGH THOU  GIVEST MANY GIFTS. = CHAPTER 7 @# 1 MY SON, KEEP MY WORDS, AND LAY UP MY COMMANDMENTS WITH THEE.I# 2 KEEP MY COMMANDMENTS, AND LIVE; AND MY LAW AS THE APPLE OF THINE EYE.OI# 3 BIND THEM UPON THY FINGERS, WRITE THEM UPON THE TABLE OF THINE HEART. C# 4 SAY UNTO WISDOM, THOU ART MY SISTER; AND CALL UNDERSTANDING THYW KINSWOMAN:K# 5 THAT THEY MAY KEEP THEE FROM THE STRANGE WOMAN, FROM THE STRANGER WHICHD FLATTERETH WITH HER WORDS.L?# 6 FOR AT THE WINDOW OF MY HOUSE I LOOKED THROUGH MY CASEMENT, K# 7 AND BEHELD AMONG THE SIMPLE ONES, I DISCERNED AMONG THE YOUTHS, A YOUNGY MAN VOID OF UNDERSTANDING, J# 8 PASSING THROUGH THE STREET NEAR HER CORNER; AND HE WENT THE WAY TO HER HOUSE, A# 9 IN THE TWILIGHT, IN THE EVENING, IN THE BLACK AND DARK NIGHT:AI# 10 AND, BEHOLD, THERE MET HIM A WOMAN WITH THE ATTIRE OF AN HARLOT, AND SUBTIL OF HEART. @# 11 (SHE IS LOUD AND STUBBORN; HER FEET ABIDE NOT IN HER HOUSE:G# 12 NOW IS SHE WITHOUT, NOW IN THE STREETS, AND LIETH IN WAIT AT EVERYH CORNER.)TK# 13 SO SHE CAUGHT HIM, AND KISSED HIM, AND WITH AN IMPUDENT FACE SAID UNTON HIM,NC# 14 I HAVE PEACE OFFERINGS WITH ME; THIS DAY HAVE I PAYED MY VOWS.NL# 15 THEREFORE CAME I FORTH TO MEET THEE, DILIGENTLY TO SEEK THY FACE, AND I HAVE FOUND THEE.AM# 16 I HAVE DECKED MY BED WITH COVERINGS OF TAPESTRY, WITH CARVED WORKS, WITHT FINE LINEN OF EGYPT.T<# 17 I HAVE PERFUMED MY BED WITH MYRRH, ALOES, AND CINNAMON.H# 18 COME, LET US TAKE OUR FILL OF LOVE UNTIL THE MORNING: LET US SOLACE OURSELVES WITH LOVES.?# 19 FOR THE GOODMAN IS NOT AT HOME, HE IS GONE A LONG JOURNEY:DI# 20 HE HATH TAKEN A BAG OF MONEY WITH HIM, AND WILL COME HOME AT THE DAYM APPOINTED.5K# 21 WITH HER MUCH FAIR SPEECH SHE CAUSED HIM TO YIELD, WITH THE FLATTERINGV OF HER LIPS SHE FORCED HIM.M# 22 HE GOETH AFTER HER STRAIGHTWAY, AS AN OX GOETH TO THE SLAUGHTER, OR AS AF& FOOL TO THE CORRECTION OF THE STOCKS;J# 23 TILL A DART STRIKE THROUGH HIS LIVER; AS A BIRD HASTETH TO THE SNARE,) AND KNOWETH NOT THAT IT IS FOR HIS LIFE.TM# 24 HEARKEN UNTO ME NOW THEREFORE, O YE CHILDREN, AND ATTEND TO THE WORDS OF0 MY MOUTH.I# 2500r08b5D%5%T6%! ! LET NOT THINE HEART DECLINE TO HER WAYS, GO NOT ASTRAY IN HER PATHS. H# 26 FOR SHE HATH CAST DOWN MANY WOUNDED: YEA, MANY STRONG MEN HAVE BEEN SLAIN BY HER.G# 27 HER HOUSE IS THE WAY TO HELL, GOING DOWN TO THE CHAMBERS OF DEATH.E = CHAPTER 8 ?# 1 DOTH NOT WISDOM CRY? AND UNDERSTANDING PUT FORTH HER VOICE?SK# 2 SHE STANDETH IN THE TOP OF HIGH PLACES, BY THE WAY IN THE PLACES OF THEA PATHS.OJ# 3 SHE CRIETH AT THE GATES, AT THE ENTRY OF THE CITY, AT THE COMING IN AT THE DOORS.O@# 4 UNTO YOU, O MEN, I CALL; AND MY VOICE IS TO THE SONS OF MAN.L# 5 O YE SIMPLE, UNDERSTAND WISDOM: AND, YE FOOLS, BE YE OF AN UNDERSTANDING HEART.NJ# 6 HEAR; FOR I WILL SPEAK OF EXCELLENT THINGS; AND THE OPENING OF MY LIPS SHALL BE RIGHT THINGS.J# 7 FOR MY MOUTH SHALL SPEAK TRUTH; AND WICKEDNESS IS AN ABOMINATION TO MY LIPS.L# 8 ALL THE WORDS OF MY MOUTH ARE IN RIGHTEOUSNESS; THERE IS NOTHING FROWARD OR PERVERSE IN THEM. M# 9 THEY ARE ALL PLAIN TO HIM THAT UNDERSTANDETH, AND RIGHT TO THEM THAT FINDO KNOWLEDGE.IM# 10 RECEIVE MY INSTRUCTION, AND NOT SILVER; AND KNOWLEDGE RATHER THAN CHOICE  GOLD.M# 11 FOR WISDOM IS BETTER THAN RUBIES; AND ALL THE THINGS THAT MAY BE DESIREDL ARE NOT TO BE COMPARED TO IT.B# 12 I WISDOM DWELL WITH PRUDENCE, AND FIND OUT KNOWLEDGE OF WITTY INVENTIONS.M# 13 THE FEAR OF THE LORD IS TO HATE EVIL: PRIDE, AND ARROGANCY, AND THE EVILO' WAY, AND THE FROWARD MOUTH, DO I HATE.VL# 14 COUNSEL IS MINE, AND SOUND WISDOM: I AM UNDERSTANDING; I HAVE STRENGTH.3# 15 BY ME KINGS REIGN, AND PRINCES DECREE JUSTICE.UF# 16 BY ME PRINCES RULE, AND NOBLES, EVEN ALL THE JUDGES OF THE EARTH.J# 17 I LOVE THEM THAT LOVE ME; AND THOSE THAT SEEK ME EARLY SHALL FIND ME.J# 18 RICHES AND HONOUR ARE WITH ME; YEA, DURABLE RICHES AND RIGHTEOUSNESS.K# 19 MY FRUIT IS BETTER THAN GOLD, YEA, THAN FINE GOLD; AND MY REVENUE THAN: CHOICE SILVER.AE# 20 I LEAD IN THE WAY OF RIGHTEOUSNESS, IN THE MIDST OF THE PATHS OFS JUDGMENT:I# 21 THAT I MAY CAUSE THOSE THAT LOVE ME TO INHERIT SUBSTANCE; AND I WILLI FILL THEIR TREASURES.K# 22 THE LORD POSSESSED ME IN THE BEGINNING OF HIS WAY, BEFORE HIS WORKS OFT OLD.7I# 23 I WAS SET UP FROM EVERLASTING, FROM THE BEGINNING, OR EVER THE EARTH8 WAS. G# 24 WHEN THERE WERE NO DEPTHS, I WAS BROUGHT FORTH; WHEN THERE WERE NOR FOUNTAINS ABOUNDING WITH WATER.M# 25 BEFORE THE MOUNTAINS WERE SETTLED, BEFORE THE HILLS WAS I BROUGHT FORTH:IL# 26 WHILE AS YET HE HAD NOT MADE THE EARTH, NOR THE FIELDS, NOR THE HIGHEST PART OF THE DUST OF THE WORLD.SJ# 27 WHEN HE PREPARED THE HEAVENS, I WAS THERE: WHEN HE SET A COMPASS UPON THE FACE OF THE DEPTH:EM# 28 WHEN HE ESTABLISHED THE CLOUDS ABOVE: WHEN HE STRENGTHENED THE FOUNTAINSI OF THE DEEP: L# 29 WHEN HE GAVE TO THE SEA HIS DECREE, THAT THE WATERS SHOULD NOT PASS HIS= COMMANDMENT: WHEN HE APPOINTED THE FOUNDATIONS OF THE EARTH:OG# 30 THEN I WAS BY HIM, AS ONE BROUGHT UP WITH HIM: AND I WAS DAILY HISA& DELIGHT, REJOICING ALWAYS BEFORE HIM;L# 31 REJOICING IN THE HABITABLE PART OF HIS EARTH; AND MY DELIGHTS WERE WITH THE SONS OF MEN.WL# 32 NOW THEREFORE HEARKEN UNTO ME, O YE CHILDREN: FOR BLESSED ARE THEY THAT KEEP MY WAYS.6# 33 HEAR INSTRUCTION, AND BE WISE, AND REFUSE IT NOT.L# 34 BLESSED IS THE MAN THAT HEARETH ME, WATCHING DAILY AT MY GATES, WAITING AT THE POSTS OF MY DOORS.L# 35 FOR WHOSO FINDETH ME FINDETH LIFE, AND SHALL OBTAIN FAVOUR OF THE LORD.M# 36 BUT HE THAT SINNETH AGAINST ME WRONGETH HIS OWN SOUL: ALL THEY THAT HATE; ME LOVE DEATH.I = CHAPTER 9 G# 1 WISDOM HATH BUILDED HER HOUSE, SHE HATH HEWN OUT HER SEVEN PILLARS:NH# 2 SHE HATH KILLED HER BEASTS; SHE HATH MINGLED HER WINE; SHE HATH ALSO FURNISHED HER TABLE. J# 3 SHE HATH SENT FORTH HER MAIDENS: SHE CRIETH UPON THE HIGHEST PLACES OF THE CITY,D# 4 WHOSO IS SIMPLE, LET HIM TURN IN HITHER: AS FOR HIM THAT WANTETH! UNDERSTANDING, SHE SAITH TO HIM,NF# 5 COME, EAT OF MY BREAD, AND DRINK OF THE WINE WHICH I HAVE MINGLED.F# 6 FORSAKE THE FOOLISH, AND LIVE; AND GO IN THE WAY OF UNDERSTANDING.E# 7 HE THAT REPROVETH A SCORNER GETTETH TO HIMSE00r88 8<%X>%+%O-%TADATADATALF SHAME: AND HE THATA. REBUKETH A WICKED MAN GETTETH HIMSELF A BLOT.L# 8 REPROVE NOT A SCORNER, LEST HE HATE THEE: REBUKE A WISE MAN, AND HE WILL LOVE THEE.:J# 9 GIVE INSTRUCTION TO A WISE MAN, AND HE WILL BE YET WISER: TEACH A JUST' MAN, AND HE WILL INCREASE IN LEARNING.EJ# 10 THE FEAR OF THE LORD IS THE BEGINNING OF WISDOM: AND THE KNOWLEDGE OF THE HOLY IS UNDERSTANDING.GL# 11 FOR BY ME THY DAYS SHALL BE MULTIPLIED, AND THE YEARS OF THY LIFE SHALL BE INCREASED.K# 12 IF THOU BE WISE, THOU SHALT BE WISE FOR THYSELF: BUT IF THOU SCORNEST,N THOU ALONE SHALT BEAR IT.F# 13 A FOOLISH WOMAN IS CLAMOROUS: SHE IS SIMPLE, AND KNOWETH NOTHING.K# 14 FOR SHE SITTETH AT THE DOOR OF HER HOUSE, ON A SEAT IN THE HIGH PLACESR OF THE CITY,3# 15 TO CALL PASSENGERS WHO GO RIGHT ON THEIR WAYS:AI# 16 WHOSO IS SIMPLE, LET HIM TURN IN HITHER: AND AS FOR HIM THAT WANTETHS! UNDERSTANDING, SHE SAITH TO HIM,YD# 17 STOLEN WATERS ARE SWEET, AND BREAD EATEN IN SECRET IS PLEASANT.K# 18 BUT HE KNOWETH NOT THAT THE DEAD ARE THERE; AND THAT HER GUESTS ARE INE THE DEPTHS OF HELL. = CHAPTER 10 3K# 1 THE PROVERBS OF SOLOMON. A WISE SON MAKETH A GLAD FATHER: BUT A FOOLISHS$ SON IS THE HEAVINESS OF HIS MOTHER.M# 2 TREASURES OF WICKEDNESS PROFIT NOTHING: BUT RIGHTEOUSNESS DELIVERETH FROMG DEATH.IH# 3 THE LORD WILL NOT SUFFER THE SOUL OF THE RIGHTEOUS TO FAMISH: BUT HE* CASTETH AWAY THE SUBSTANCE OF THE WICKED.H# 4 HE BECOMETH POOR THAT DEALETH WITH A SLACK HAND: BUT THE HAND OF THE DILIGENT MAKETH RICH.F# 5 HE THAT GATHERETH IN SUMMER IS A WISE SON: BUT HE THAT SLEEPETH IN% HARVEST IS A SON THAT CAUSETH SHAME. L# 6 BLESSINGS ARE UPON THE HEAD OF THE JUST: BUT VIOLENCE COVERETH THE MOUTH OF THE WICKED.L# 7 THE MEMORY OF THE JUST IS BLESSED: BUT THE NAME OF THE WICKED SHALL ROT.I# 8 THE WISE IN HEART WILL RECEIVE COMMANDMENTS: BUT A PRATING FOOL SHALLH FALL.M# 9 HE THAT WALKETH UPRIGHTLY WALKETH SURELY: BUT HE THAT PERVERTETH HIS WAYS  SHALL BE KNOWN.J# 10 HE THAT WINKETH WITH THE EYE CAUSETH SORROW: BUT A PRATING FOOL SHALL FALL.J# 11 THE MOUTH OF A RIGHTEOUS MAN IS A WELL OF LIFE: BUT VIOLENCE COVERETH THE MOUTH OF THE WICKED.A<# 12 HATRED STIRRETH UP STRIFES: BUT LOVE COVERETH ALL SINS.M# 13 IN THE LIPS OF HIM THAT HATH UNDERSTANDING WISDOM IS FOUND: BUT A ROD IS.3 FOR THE BACK OF HIM THAT IS VOID OF UNDERSTANDING.TD# 14 WISE MEN LAY UP KNOWLEDGE: BUT THE MOUTH OF THE FOOLISH IS NEAR DESTRUCTION.TL# 15 THE RICH MANS WEALTH IS HIS STRONG CITY: THE DESTRUCTION OF THE POOR IS THEIR POVERTY.UL# 16 THE LABOUR OF THE RIGHTEOUS TENDETH TO LIFE: THE FRUIT OF THE WICKED TO SIN.BL# 17 HE IS IN THE WAY OF LIFE THAT KEEPETH INSTRUCTION: BUT HE THAT REFUSETH REPROOF ERRETH.K# 18 HE THAT HIDETH HATRED WITH LYING LIPS, AND HE THAT UTTERETH A SLANDER,N IS A FOOL.IL# 19 IN THE MULTITUDE OF WORDS THERE WANTETH NOT SIN: BUT HE THAT REFRAINETH HIS LIPS IS WISE.K# 20 THE TONGUE OF THE JUST IS AS CHOICE SILVER: THE HEART OF THE WICKED ISS LITTLE WORTH.K# 21 THE LIPS OF THE RIGHTEOUS FEED MANY: BUT FOOLS DIE FOR WANT OF WISDOM.OK# 22 THE BLESSING OF THE LORD, IT MAKETH RICH, AND HE ADDETH NO SORROW WITH  IT.M# 23 IT IS AS SPORT TO A FOOL TO DO MISCHIEF: BUT A MAN OF UNDERSTANDING HATHT WISDOM.J# 24 THE FEAR OF THE WICKED, IT SHALL COME UPON HIM: BUT THE DESIRE OF THE RIGHTEOUS SHALL BE GRANTED.M# 25 AS THE WHIRLWIND PASSETH, SO IS THE WICKED NO MORE: BUT THE RIGHTEOUS ISF AN EVERLASTING FOUNDATION.:M# 26 AS VINEGAR TO THE TEETH, AND AS SMOKE TO THE EYES, SO IS THE SLUGGARD TOE THEM THAT SEND HIM.L# 27 THE FEAR OF THE LORD PROLONGETH DAYS: BUT THE YEARS OF THE WICKED SHALL BE SHORTENED.L# 28 THE HOPE OF THE RIGHTEOUS SHALL BE GLADNESS: BUT THE EXPECTATION OF THE WICKED SHALL PERISH.M# 29 THE WAY OF THE LORD IS STRENGTH TO THE UPRIGHT: BUT DESTRUCTION SHALL BEG TO THE WORKERS OF INIQUITY.K# 30 THE RIGHTEOUS SHALL NEVER BE REMOVED: BUT THE WICKED SHALL NOT INHABITA THE EARTH. H# 31 THE MOUTH OF THE JUST BRINGETH FORTH WISDOM: BUT THE FROWARD TONGUE SHALL BE CUT OUT.L# 32 T00r@8b5D%5%T6%! !HE LIPS OF THE RIGHTEOUS KNOW WHAT IS ACCEPTABLE: BUT THE MOUTH OF THE WICKED SPEAKETH FROWARDNESS.E = CHAPTER 11 HH# 1 A FALSE BALANCE IS ABOMINATION TO THE LORD: BUT A JUST WEIGHT IS HIS DELIGHT.IG# 2 WHEN PRIDE COMETH, THEN COMETH SHAME: BUT WITH THE LOWLY IS WISDOM.NJ# 3 THE INTEGRITY OF THE UPRIGHT SHALL GUIDE THEM: BUT THE PERVERSENESS OF" TRANSGRESSORS SHALL DESTROY THEM.L# 4 RICHES PROFIT NOT IN THE DAY OF WRATH: BUT RIGHTEOUSNESS DELIVERETH FROM DEATH. I# 5 THE RIGHTEOUSNESS OF THE PERFECT SHALL DIRECT HIS WAY: BUT THE WICKEDE" SHALL FALL BY HIS OWN WICKEDNESS.J# 6 THE RIGHTEOUSNESS OF THE UPRIGHT SHALL DELIVER THEM: BUT TRANSGRESSORS) SHALL BE TAKEN IN THEIR OWN NAUGHTINESS.LJ# 7 WHEN A WICKED MAN DIETH, HIS EXPECTATION SHALL PERISH: AND THE HOPE OF UNJUST MEN PERISHETH.K# 8 THE RIGHTEOUS IS DELIVERED OUT OF TROUBLE, AND THE WICKED COMETH IN HISL STEAD.TE# 9 AN HYPOCRITE WITH HIS MOUTH DESTROYETH HIS NEIGHBOUR: BUT THROUGHV' KNOWLEDGE SHALL THE JUST BE DELIVERED.SL# 10 WHEN IT GOETH WELL WITH THE RIGHTEOUS, THE CITY REJOICETH: AND WHEN THE" WICKED PERISH, THERE IS SHOUTING.M# 11 BY THE BLESSING OF THE UPRIGHT THE CITY IS EXALTED: BUT IT IS OVERTHROWNO BY THE MOUTH OF THE WICKED.D# 12 HE THAT IS VOID OF WISDOM DESPISETH HIS NEIGHBOUR: BUT A MAN OF! UNDERSTANDING HOLDETH HIS PEACE. H# 13 A TALEBEARER REVEALETH SECRETS: BUT HE THAT IS OF A FAITHFUL SPIRIT CONCEALETH THE MATTER.TB# 14 WHERE NO COUNSEL IS, THE PEOPLE FALL: BUT IN THE MULTITUDE OF COUNSELLORS THERE IS SAFETY.EL# 15 HE THAT IS SURETY FOR A STRANGER SHALL SMART FOR IT: AND HE THAT HATETH SURETISHIP IS SURE.E# 16 A GRACIOUS WOMAN RETAINETH HONOUR: AND STRONG MEN RETAIN RICHES.RF# 17 THE MERCIFUL MAN DOETH GOOD TO HIS OWN SOUL: BUT HE THAT IS CRUEL TROUBLETH HIS OWN FLESH.A@# 18 THE WICKED WORKETH A DECEITFUL WORK: BUT TO HIM THAT SOWETH& RIGHTEOUSNESS SHALL BE A SURE REWARD.K# 19 AS RIGHTEOUSNESS TENDETH TO LIFE: SO HE THAT PURSUETH EVIL PURSUETH IT: TO HIS OWN DEATH.K# 20 THEY THAT ARE OF A FROWARD HEART ARE ABOMINATION TO THE LORD: BUT SUCHH- AS ARE UPRIGHT IN THEIR WAY ARE HIS DELIGHT.IJ# 21 THOUGH HAND JOIN IN HAND, THE WICKED SHALL NOT BE UNPUNISHED: BUT THE* SEED OF THE RIGHTEOUS SHALL BE DELIVERED.F# 22 AS A JEWEL OF GOLD IN A SWINES SNOUT, SO IS A FAIR WOMAN WHICH IS WITHOUT DISCRETION.I# 23 THE DESIRE OF THE RIGHTEOUS IS ONLY GOOD: BUT THE EXPECTATION OF THE WICKED IS WRATH.SD# 24 THERE IS THAT SCATTERETH, AND YET INCREASETH; AND THERE IS THAT: WITHHOLDETH MORE THAN IS MEET, BUT IT TENDETH TO POVERTY.F# 25 THE LIBERAL SOUL SHALL BE MADE FAT: AND HE THAT WATERETH SHALL BE WATERED ALSO HIMSELF.M# 26 HE THAT WITHHOLDETH CORN, THE PEOPLE SHALL CURSE HIM: BUT BLESSING SHALLA) BE UPON THE HEAD OF HIM THAT SELLETH IT.NJ# 27 HE THAT DILIGENTLY SEEKETH GOOD PROCURETH FAVOUR: BUT HE THAT SEEKETH" MISCHIEF, IT SHALL COME UNTO HIM.G# 28 HE THAT TRUSTETH IN HIS RICHES SHALL FALL; BUT THE RIGHTEOUS SHALLA FLOURISH AS A BRANCH.I# 29 HE THAT TROUBLETH HIS OWN HOUSE SHALL INHERIT THE WIND: AND THE FOOLO' SHALL BE SERVANT TO THE WISE OF HEART.DL# 30 THE FRUIT OF THE RIGHTEOUS IS A TREE OF LIFE; AND HE THAT WINNETH SOULS IS WISE.RK# 31 BEHOLD, THE RIGHTEOUS SHALL BE RECOMPENSED IN THE EARTH: MUCH MORE THET WICKED AND THE SINNER. = CHAPTER 12 L# 1 WHOSO LOVETH INSTRUCTION LOVETH KNOWLEDGE: BUT HE THAT HATETH REPROOF IS BRUTISH. M# 2 A GOOD MAN OBTAINETH FAVOUR OF THE LORD: BUT A MAN OF WICKED DEVICES WILLS HE CONDEMN.E# 3 A MAN SHALL NOT BE ESTABLISHED BY WICKEDNESS: BUT THE ROOT OF THEF RIGHTEOUS SHALL NOT BE MOVED.K# 4 A VIRTUOUS WOMAN IS A CROWN TO HER HUSBAND: BUT SHE THAT MAKETH ASHAMEDT IS AS ROTTENNESS IN HIS BONES.BK# 5 THE THOUGHTS OF THE RIGHTEOUS ARE RIGHT: BUT THE COUNSELS OF THE WICKEDE ARE DECEIT.J# 6 THE WORDS OF THE WICKED ARE TO LIE IN WAIT FOR BLOOD: BUT THE MOUTH OF THE UPRIGHT SHALL DELIVER THEM.J# 7 THE WICKED ARE OVERTHROWN, AND ARE NOT: BUT THE HOUSE OF THE RIGHTEOUS SHALL STAND.MI# 8 A MAN SHALL BE COMMENDED ACCORDING TO HIS WISDOM: BUT 00rH8 8<%X>%+%O-%TADATADATAHE THAT IS OF A" PERVERSE HEART SHALL BE DESPISED.M# 9 HE THAT IS DESPISED, AND HATH A SERVANT, IS BETTER THAN HE THAT HONOURETHS HIMSELF, AND LACKETH BREAD.L# 10 A RIGHTEOUS MAN REGARDETH THE LIFE OF HIS BEAST: BUT THE TENDER MERCIES OF THE WICKED ARE CRUEL.FH# 11 HE THAT TILLETH HIS LAND SHALL BE SATISFIED WITH BREAD: BUT HE THAT1 FOLLOWETH VAIN PERSONS IS VOID OF UNDERSTANDING.AK# 12 THE WICKED DESIRETH THE NET OF EVIL MEN: BUT THE ROOT OF THE RIGHTEOUSE YIELDETH FRUIT.H# 13 THE WICKED IS SNARED BY THE TRANSGRESSION OF HIS LIPS: BUT THE JUST SHALL COME OUT OF TROUBLE.DJ# 14 A MAN SHALL BE SATISFIED WITH GOOD BY THE FRUIT OF HIS MOUTH: AND THE7 RECOMPENCE OF A MANS HANDS SHALL BE RENDERED UNTO HIM.TL# 15 THE WAY OF A FOOL IS RIGHT IN HIS OWN EYES: BUT HE THAT HEARKENETH UNTO COUNSEL IS WISE.SH# 16 A FOOLS WRATH IS PRESENTLY KNOWN: BUT A PRUDENT MAN COVERETH SHAME.L# 17 HE THAT SPEAKETH TRUTH SHEWETH FORTH RIGHTEOUSNESS: BUT A FALSE WITNESS DECEIT.L# 18 THERE IS THAT SPEAKETH LIKE THE PIERCINGS OF A SWORD: BUT THE TONGUE OF THE WISE IS HEALTH.J# 19 THE LIP OF TRUTH SHALL BE ESTABLISHED FOR EVER: BUT A LYING TONGUE IS BUT FOR A MOMENT.M# 20 DECEIT IS IN THE HEART OF THEM THAT IMAGINE EVIL: BUT TO THE COUNSELLORSL OF PEACE IS JOY.NK# 21 THERE SHALL NO EVIL HAPPEN TO THE JUST: BUT THE WICKED SHALL BE FILLED  WITH MISCHIEF.BM# 22 LYING LIPS ARE ABOMINATION TO THE LORD: BUT THEY THAT DEAL TRULY ARE HISH DELIGHT.BK# 23 A PRUDENT MAN CONCEALETH KNOWLEDGE: BUT THE HEART OF FOOLS PROCLAIMETHO FOOLISHNESS.TH# 24 THE HAND OF THE DILIGENT SHALL BEAR RULE: BUT THE SLOTHFUL SHALL BE UNDER TRIBUTE.TM# 25 HEAVINESS IN THE HEART OF MAN MAKETH IT STOOP: BUT A GOOD WORD MAKETH ITT GLAD.K# 26 THE RIGHTEOUS IS MORE EXCELLENT THAN HIS NEIGHBOUR: BUT THE WAY OF THEH WICKED SEDUCETH THEM.I# 27 THE SLOTHFUL MAN ROASTETH NOT THAT WHICH HE TOOK IN HUNTING: BUT THEO) SUBSTANCE OF A DILIGENT MAN IS PRECIOUS. M# 28 IN THE WAY OF RIGHTEOUSNESS IS LIFE: AND IN THE PATHWAY THEREOF THERE ISL NO DEATH. = CHAPTER 13 SI# 1 A WISE SON HEARETH HIS FATHERS INSTRUCTION: BUT A SCORNER HEARETH NOTE REBUKE.G# 2 A MAN SHALL EAT GOOD BY THE FRUIT OF HIS MOUTH: BUT THE SOUL OF THEW" TRANSGRESSORS SHALL EAT VIOLENCE.L# 3 HE THAT KEEPETH HIS MOUTH KEEPETH HIS LIFE: BUT HE THAT OPENETH WIDE HIS LIPS SHALL HAVE DESTRUCTION.AL# 4 THE SOUL OF THE SLUGGARD DESIRETH, AND HATH NOTHING: BUT THE SOUL OF THE DILIGENT SHALL BE MADE FAT.K# 5 A RIGHTEOUS MAN HATETH LYING: BUT A WICKED MAN IS LOATHSOME, AND COMETHE TO SHAME.H# 6 RIGHTEOUSNESS KEEPETH HIM THAT IS UPRIGHT IN THE WAY: BUT WICKEDNESS OVERTHROWETH THE SINNER. M# 7 THERE IS THAT MAKETH HIMSELF RICH, YET HATH NOTHING: THERE IS THAT MAKETHO% HIMSELF POOR, YET HATH GREAT RICHES.PF# 8 THE RANSOM OF A MANS LIFE ARE HIS RICHES: BUT THE POOR HEARETH NOT REBUKE.M# 9 THE LIGHT OF THE RIGHTEOUS REJOICETH: BUT THE LAMP OF THE WICKED SHALL BEU PUT OUT.DJ# 10 ONLY BY PRIDE COMETH CONTENTION: BUT WITH THE WELL ADVISED IS WISDOM.J# 11 WEALTH GOTTEN BY VANITY SHALL BE DIMINISHED: BUT HE THAT GATHERETH BY LABOUR SHALL INCREASE.UM# 12 HOPE DEFERRED MAKETH THE HEART SICK: BUT WHEN THE DESIRE COMETH, IT IS A, TREE OF LIFE.I# 13 WHOSO DESPISETH THE WORD SHALL BE DESTROYED: BUT HE THAT FEARETH THEA COMMANDMENT SHALL BE REWARDED.SL# 14 THE LAW OF THE WISE IS A FOUNTAIN OF LIFE, TO DEPART FROM THE SNARES OF DEATH. L# 15 GOOD UNDERSTANDING GIVETH FAVOUR: BUT THE WAY OF TRANSGRESSORS IS HARD.I# 16 EVERY PRUDENT MAN DEALETH WITH KNOWLEDGE: BUT A FOOL LAYETH OPEN HISB FOLLY.HK# 17 A WICKED MESSENGER FALLETH INTO MISCHIEF: BUT A FAITHFUL AMBASSADOR ISK HEALTH.M# 18 POVERTY AND SHAME SHALL BE TO HIM THAT REFUSETH INSTRUCTION: BUT HE THATI% REGARDETH REPROOF SHALL BE HONOURED.EK# 19 THE DESIRE ACCOMPLISHED IS SWEET TO THE SOUL: BUT IT IS ABOMINATION TOE FOOLS TO DEPART FROM EVIL.PJ# 20 HE THAT WALKETH WITH WISE MEN SHALL BE WISE: BUT A COMPANION OF FOOLS SHALL BE DESTROYED.G# 21 EVIL PURSUETH SINNERS: BUT TO THE RIGHTEOUS GOOD SHALL BE REPAY00rP8b5D%5%T6%! !ED.AI# 22 A GOOD MAN LEAVETH AN INHERITANCE TO HIS CHILDRENS CHILDREN: AND THET. WEALTH OF THE SINNER IS LAID UP FOR THE JUST.L# 23 MUCH FOOD IS IN THE TILLAGE OF THE POOR: BUT THERE IS THAT IS DESTROYED FOR WANT OF JUDGMENT.C# 24 HE THAT SPARETH HIS ROD HATETH HIS SON: BUT HE THAT LOVETH HIMA CHASTENETH HIM BETIMES.M# 25 THE RIGHTEOUS EATETH TO THE SATISFYING OF HIS SOUL: BUT THE BELLY OF THEP WICKED SHALL WANT.L = CHAPTER 14 N# 1 EVERY WISE WOMAN BUILDETH HER HOUSE: BUT THE FOOLISH PLUCKETH IT DOWN WITH HER HANDS.VG# 2 HE THAT WALKETH IN HIS UPRIGHTNESS FEARETH THE LORD: BUT HE THAT ISN$ PERVERSE IN HIS WAYS DESPISETH HIM.K# 3 IN THE MOUTH OF THE FOOLISH IS A ROD OF PRIDE: BUT THE LIPS OF THE WISEN SHALL PRESERVE THEM. E# 4 WHERE NO OXEN ARE, THE CRIB IS CLEAN: BUT MUCH INCREASE IS BY THET STRENGTH OF THE OX.I# 5 A FAITHFUL WITNESS WILL NOT LIE: BUT A FALSE WITNESS WILL UTTER LIES.WL# 6 A SCORNER SEEKETH WISDOM, AND FINDETH IT NOT: BUT KNOWLEDGE IS EASY UNTO HIM THAT UNDERSTANDETH.J# 7 GO FROM THE PRESENCE OF A FOOLISH MAN, WHEN THOU PERCEIVEST NOT IN HIM THE LIPS OF KNOWLEDGE.PH# 8 THE WISDOM OF THE PRUDENT IS TO UNDERSTAND HIS WAY: BUT THE FOLLY OF FOOLS IS DECEIT.EF# 9 FOOLS MAKE A MOCK AT SIN: BUT AMONG THE RIGHTEOUS THERE IS FAVOUR.B# 10 THE HEART KNOWETH HIS OWN BITTERNESS; AND A STRANGER DOTH NOT INTERMEDDLE WITH HIS JOY.K# 11 THE HOUSE OF THE WICKED SHALL BE OVERTHROWN: BUT THE TABERNACLE OF THEN UPRIGHT SHALL FLOURISH.K# 12 THERE IS A WAY WHICH SEEMETH RIGHT UNTO A MAN, BUT THE END THEREOF AREO THE WAYS OF DEATH.PJ# 13 EVEN IN LAUGHTER THE HEART IS SORROWFUL; AND THE END OF THAT MIRTH IS HEAVINESS.SJ# 14 THE BACKSLIDER IN HEART SHALL BE FILLED WITH HIS OWN WAYS: AND A GOOD% MAN SHALL BE SATISFIED FROM HIMSELF.FM# 15 THE SIMPLE BELIEVETH EVERY WORD: BUT THE PRUDENT MAN LOOKETH WELL TO HIST GOING.WM# 16 A WISE MAN FEARETH, AND DEPARTETH FROM EVIL: BUT THE FOOL RAGETH, AND ISC CONFIDENT.UL# 17 HE THAT IS SOON ANGRY DEALETH FOOLISHLY: AND A MAN OF WICKED DEVICES IS HATED. J# 18 THE SIMPLE INHERIT FOLLY: BUT THE PRUDENT ARE CROWNED WITH KNOWLEDGE.E# 19 THE EVIL BOW BEFORE THE GOOD; AND THE WICKED AT THE GATES OF THEN RIGHTEOUS.BH# 20 THE POOR IS HATED EVEN OF HIS OWN NEIGHBOUR: BUT THE RICH HATH MANY FRIENDS.TK# 21 HE THAT DESPISETH HIS NEIGHBOUR SINNETH: BUT HE THAT HATH MERCY ON THEI POOR, HAPPY IS HE. K# 22 DO THEY NOT ERR THAT DEVISE EVIL? BUT MERCY AND TRUTH SHALL BE TO THEM THAT DEVISE GOOD.L# 23 IN ALL LABOUR THERE IS PROFIT: BUT THE TALK OF THE LIPS TENDETH ONLY TO PENURY.K# 24 THE CROWN OF THE WISE IS THEIR RICHES: BUT THE FOOLISHNESS OF FOOLS ISO FOLLY.OL# 25 A TRUE WITNESS DELIVERETH SOULS: BUT A DECEITFUL WITNESS SPEAKETH LIES.I# 26 IN THE FEAR OF THE LORD IS STRONG CONFIDENCE: AND HIS CHILDREN SHALLD HAVE A PLACE OF REFUGE.M# 27 THE FEAR OF THE LORD IS A FOUNTAIN OF LIFE, TO DEPART FROM THE SNARES OFR DEATH.IG# 28 IN THE MULTITUDE OF PEOPLE IS THE KINGS HONOUR: BUT IN THE WANT OFI) PEOPLE IS THE DESTRUCTION OF THE PRINCE.OM# 29 HE THAT IS SLOW TO WRATH IS OF GREAT UNDERSTANDING: BUT HE THAT IS HASTYS OF SPIRIT EXALTETH FOLLY.K# 30 A SOUND HEART IS THE LIFE OF THE FLESH: BUT ENVY THE ROTTENNESS OF THES BONES.HM# 31 HE THAT OPPRESSETH THE POOR REPROACHETH HIS MAKER: BUT HE THAT HONOURETHL HIM HATH MERCY ON THE POOR.M# 32 THE WICKED IS DRIVEN AWAY IN HIS WICKEDNESS: BUT THE RIGHTEOUS HATH HOPE IN HIS DEATH.I# 33 WISDOM RESTETH IN THE HEART OF HIM THAT HATH UNDERSTANDING: BUT THAT . WHICH IS IN THE MIDST OF FOOLS IS MADE KNOWN.J# 34 RIGHTEOUSNESS EXALTETH A NATION: BUT SIN IS A REPROACH TO ANY PEOPLE.L# 35 THE KINGS FAVOUR IS TOWARD A WISE SERVANT: BUT HIS WRATH IS AGAINST HIM THAT CAUSETH SHAME. = CHAPTER 15 G# 1 A SOFT ANSWER TURNETH AWAY WRATH: BUT GRIEVOUS WORDS STIR UP ANGER.HI# 2 THE TONGUE OF THE WISE USETH KNOWLEDGE ARIGHT: BUT THE MOUTH OF FOOLSS POURETH OUT FOOLISHNESS.PM# 3 THE EYES OF THE LORD ARE IN EVERY PLACE, BEHOLDING THE EVIL AND THE GOOD.DG# 4 A WHOLESOME TONGUE IS A TREE OF 00rX8 8<%X>%+%O-%TADATADATALIFE: BUT PERVERSENESS THEREIN IS AT BREACH IN THE SPIRIT.K# 5 A FOOL DESPISETH HIS FATHERS INSTRUCTION: BUT HE THAT REGARDETH REPROOFI IS PRUDENT.J# 6 IN THE HOUSE OF THE RIGHTEOUS IS MUCH TREASURE: BUT IN THE REVENUES OF THE WICKED IS TROUBLE.HI# 7 THE LIPS OF THE WISE DISPERSE KNOWLEDGE: BUT THE HEART OF THE FOOLISHL DOETH NOT SO.M# 8 THE SACRIFICE OF THE WICKED IS AN ABOMINATION TO THE LORD: BUT THE PRAYERI OF THE UPRIGHT IS HIS DELIGHT. L# 9 THE WAY OF THE WICKED IS AN ABOMINATION UNTO THE LORD: BUT HE LOVETH HIM$ THAT FOLLOWETH AFTER RIGHTEOUSNESS.H# 10 CORRECTION IS GRIEVOUS UNTO HIM THAT FORSAKETH THE WAY: AND HE THAT HATETH REPROOF SHALL DIE.L# 11 HELL AND DESTRUCTION ARE BEFORE THE LORD: HOW MUCH MORE THEN THE HEARTS OF THE CHILDREN OF MEN?M# 12 A SCORNER LOVETH NOT ONE THAT REPROVETH HIM: NEITHER WILL HE GO UNTO THE  WISE.L# 13 A MERRY HEART MAKETH A CHEERFUL COUNTENANCE: BUT BY SORROW OF THE HEART THE SPIRIT IS BROKEN.H# 14 THE HEART OF HIM THAT HATH UNDERSTANDING SEEKETH KNOWLEDGE: BUT THE' MOUTH OF FOOLS FEEDETH ON FOOLISHNESS..L# 15 ALL THE DAYS OF THE AFFLICTED ARE EVIL: BUT HE THAT IS OF A MERRY HEART HATH A CONTINUAL FEAST.G# 16 BETTER IS LITTLE WITH THE FEAR OF THE LORD THAN GREAT TREASURE ANDR TROUBLE THEREWITH.OL# 17 BETTER IS A DINNER OF HERBS WHERE LOVE IS, THAN A STALLED OX AND HATRED THEREWITH.SD# 18 A WRATHFUL MAN STIRRETH UP STRIFE: BUT HE THAT IS SLOW TO ANGER APPEASETH STRIFE.M# 19 THE WAY OF THE SLOTHFUL MAN IS AS AN HEDGE OF THORNS: BUT THE WAY OF THE: RIGHTEOUS IS MADE PLAIN.EM# 20 A WISE SON MAKETH A GLAD FATHER: BUT A FOOLISH MAN DESPISETH HIS MOTHER.TB# 21 FOLLY IS JOY TO HIM THAT IS DESTITUTE OF WISDOM: BUT A MAN OF! UNDERSTANDING WALKETH UPRIGHTLY.EG# 22 WITHOUT COUNSEL PURPOSES ARE DISAPPOINTED: BUT IN THE MULTITUDE OFW" COUNSELLORS THEY ARE ESTABLISHED.H# 23 A MAN HATH JOY BY THE ANSWER OF HIS MOUTH: AND A WORD SPOKEN IN DUE SEASON, HOW GOOD IS IT!G# 24 THE WAY OF LIFE IS ABOVE TO THE WISE, THAT HE MAY DEPART FROM HELLT BENEATH. L# 25 THE LORD WILL DESTROY THE HOUSE OF THE PROUD: BUT HE WILL ESTABLISH THE BORDER OF THE WIDOW.IM# 26 THE THOUGHTS OF THE WICKED ARE AN ABOMINATION TO THE LORD: BUT THE WORDS OF THE PURE ARE PLEASANT WORDS.J# 27 HE THAT IS GREEDY OF GAIN TROUBLETH HIS OWN HOUSE; BUT HE THAT HATETH GIFTS SHALL LIVE.H# 28 THE HEART OF THE RIGHTEOUS STUDIETH TO ANSWER: BUT THE MOUTH OF THE WICKED POURETH OUT EVIL THINGS.F# 29 THE LORD IS FAR FROM THE WICKED: BUT HE HEARETH THE PRAYER OF THE RIGHTEOUS.NL# 30 THE LIGHT OF THE EYES REJOICETH THE HEART: AND A GOOD REPORT MAKETH THE BONES FAT.EE# 31 THE EAR THAT HEARETH THE REPROOF OF LIFE ABIDETH AMONG THE WISE. M# 32 HE THAT REFUSETH INSTRUCTION DESPISETH HIS OWN SOUL: BUT HE THAT HEARETHE REPROOF GETTETH UNDERSTANDING.EL# 33 THE FEAR OF THE LORD IS THE INSTRUCTION OF WISDOM; AND BEFORE HONOUR IS HUMILITY. = CHAPTER 16 TJ# 1 THE PREPARATIONS OF THE HEART IN MAN, AND THE ANSWER OF THE TONGUE, IS FROM THE LORD.EJ# 2 ALL THE WAYS OF A MAN ARE CLEAN IN HIS OWN EYES; BUT THE LORD WEIGHETH THE SPIRITS.OJ# 3 COMMIT THY WORKS UNTO THE LORD, AND THY THOUGHTS SHALL BE ESTABLISHED.K# 4 THE LORD HATH MADE ALL THINGS FOR HIMSELF: YEA, EVEN THE WICKED FOR THEI DAY OF EVIL. J# 5 EVERY ONE THAT IS PROUD IN HEART IS AN ABOMINATION TO THE LORD: THOUGH/ HAND JOIN IN HAND, HE SHALL NOT BE UNPUNISHED. J# 6 BY MERCY AND TRUTH INIQUITY IS PURGED: AND BY THE FEAR OF THE LORD MEN DEPART FROM EVIL.I# 7 WHEN A MANS WAYS PLEASE THE LORD, HE MAKETH EVEN HIS ENEMIES TO BE ATN PEACE WITH HIM.L# 8 BETTER IS A LITTLE WITH RIGHTEOUSNESS THAN GREAT REVENUES WITHOUT RIGHT.D# 9 A MANS HEART DEVISETH HIS WAY: BUT THE LORD DIRECTETH HIS STEPS.J# 10 A DIVINE SENTENCE IS IN THE LIPS OF THE KING: HIS MOUTH TRANSGRESSETH NOT IN JUDGMENT.OL# 11 A JUST WEIGHT AND BALANCE ARE THE LORDS: ALL THE WEIGHTS OF THE BAG ARE HIS WORK.J# 12 IT IS AN ABOMINATION TO KINGS TO COMMIT WICKEDNESS: FOR THE THRONE IS ESTABLISHED BY RIGHTEOUSNESS.M# 13 RIGHTEOUS LIPS ARE THE DELI00r`8b5D%5%T6%! !GHT OF KINGS; AND THEY LOVE HIM THAT SPEAKETHT RIGHT.IG# 14 THE WRATH OF A KING IS AS MESSENGERS OF DEATH: BUT A WISE MAN WILLA PACIFY IT.IJ# 15 IN THE LIGHT OF THE KINGS COUNTENANCE IS LIFE; AND HIS FAVOUR IS AS A CLOUD OF THE LATTER RAIN.L# 16 HOW MUCH BETTER IS IT TO GET WISDOM THAN GOLD! AND TO GET UNDERSTANDING! RATHER TO BE CHOSEN THAN SILVER!HK# 17 THE HIGHWAY OF THE UPRIGHT IS TO DEPART FROM EVIL: HE THAT KEEPETH HISR WAY PRESERVETH HIS SOUL.HI# 18 PRIDE GOETH BEFORE DESTRUCTION, AND AN HAUGHTY SPIRIT BEFORE A FALL. J# 19 BETTER IT IS TO BE OF AN HUMBLE SPIRIT WITH THE LOWLY, THAN TO DIVIDE THE SPOIL WITH THE PROUD.L# 20 HE THAT HANDLETH A MATTER WISELY SHALL FIND GOOD: AND WHOSO TRUSTETH IN THE LORD, HAPPY IS HE.TM# 21 THE WISE IN HEART SHALL BE CALLED PRUDENT: AND THE SWEETNESS OF THE LIPST INCREASETH LEARNING.HI# 22 UNDERSTANDING IS A WELLSPRING OF LIFE UNTO HIM THAT HATH IT: BUT THE  INSTRUCTION OF FOOLS IS FOLLY.VI# 23 THE HEART OF THE WISE TEACHETH HIS MOUTH, AND ADDETH LEARNING TO HISB LIPS.M# 24 PLEASANT WORDS ARE AS AN HONEYCOMB, SWEET TO THE SOUL, AND HEALTH TO THEI BONES.SJ# 25 THERE IS A WAY THAT SEEMETH RIGHT UNTO A MAN, BUT THE END THEREOF ARE THE WAYS OF DEATH.NI# 26 HE THAT LABOURETH LABOURETH FOR HIMSELF; FOR HIS MOUTH CRAVETH IT OF  HIM. J# 27 AN UNGODLY MAN DIGGETH UP EVIL: AND IN HIS LIPS THERE IS AS A BURNING FIRE.K# 28 A FROWARD MAN SOWETH STRIFE: AND A WHISPERER SEPARATETH CHIEF FRIENDS.3L# 29 A VIOLENT MAN ENTICETH HIS NEIGHBOUR, AND LEADETH HIM INTO THE WAY THAT IS NOT GOOD. F# 30 HE SHUTTETH HIS EYES TO DEVISE FROWARD THINGS: MOVING HIS LIPS HE BRINGETH EVIL TO PASS.HE# 31 THE HOARY HEAD IS A CROWN OF GLORY, IF IT BE FOUND IN THE WAY OFH RIGHTEOUSNESS.LK# 32 HE THAT IS SLOW TO ANGER IS BETTER THAN THE MIGHTY; AND HE THAT RULETH ' HIS SPIRIT THAN HE THAT TAKETH A CITY.IL# 33 THE LOT IS CAST INTO THE LAP; BUT THE WHOLE DISPOSING THEREOF IS OF THE LORD. = CHAPTER 17 FJ# 1 BETTER IS A DRY MORSEL, AND QUIETNESS THEREWITH, THAN AN HOUSE FULL OF SACRIFICES WITH STRIFE.K# 2 A WISE SERVANT SHALL HAVE RULE OVER A SON THAT CAUSETH SHAME, AND SHALLI1 HAVE PART OF THE INHERITANCE AMONG THE BRETHREN.NH# 3 THE FINING POT IS FOR SILVER, AND THE FURNACE FOR GOLD: BUT THE LORD TRIETH THE HEARTS.TG# 4 A WICKED DOER GIVETH HEED TO FALSE LIPS; AND A LIAR GIVETH EAR TO A  NAUGHTY TONGUE.H# 5 WHOSO MOCKETH THE POOR REPROACHETH HIS MAKER: AND HE THAT IS GLAD AT$ CALAMITIES SHALL NOT BE UNPUNISHED.J# 6 CHILDRENS CHILDREN ARE THE CROWN OF OLD MEN; AND THE GLORY OF CHILDREN ARE THEIR FATHERS.RK# 7 EXCELLENT SPEECH BECOMETH NOT A FOOL: MUCH LESS DO LYING LIPS A PRINCE. B# 8 A GIFT IS AS A PRECIOUS STONE IN THE EYES OF HIM THAT HATH IT:) WHITHERSOEVER IT TURNETH, IT PROSPERETH.J# 9 HE THAT COVERETH A TRANSGRESSION SEEKETH LOVE; BUT HE THAT REPEATETH A MATTER SEPARATETH VERY FRIENDS.K# 10 A REPROOF ENTERETH MORE INTO A WISE MAN THAN AN HUNDRED STRIPES INTO A FOOL.M# 11 AN EVIL MAN SEEKETH ONLY REBELLION: THEREFORE A CRUEL MESSENGER SHALL BEA SENT AGAINST HIM.J# 12 LET A BEAR ROBBED OF HER WHELPS MEET A MAN, RATHER THAN A FOOL IN HIS FOLLY.II# 13 WHOSO REWARDETH EVIL FOR GOOD, EVIL SHALL NOT DEPART FROM HIS HOUSE.AH# 14 THE BEGINNING OF STRIFE IS AS WHEN ONE LETTETH OUT WATER: THEREFORE1 LEAVE OFF CONTENTION, BEFORE IT BE MEDDLED WITH.EI# 15 HE THAT JUSTIFIETH THE WICKED, AND HE THAT CONDEMNETH THE JUST, EVEN ' THEY BOTH ARE ABOMINATION TO THE LORD.K# 16 WHEREFORE IS THERE A PRICE IN THE HAND OF A FOOL TO GET WISDOM, SEEINGS HE HATH NO HEART TO IT?G# 17 A FRIEND LOVETH AT ALL TIMES, AND A BROTHER IS BORN FOR ADVERSITY.NK# 18 A MAN VOID OF UNDERSTANDING STRIKETH HANDS, AND BECOMETH SURETY IN THEM PRESENCE OF HIS FRIEND.I# 19 HE LOVETH TRANSGRESSION THAT LOVETH STRIFE: AND HE THAT EXALTETH HISN GATE SEEKETH DESTRUCTION.E# 20 HE THAT HATH A FROWARD HEART FINDETH NO GOOD: AND HE THAT HATH AE' PERVERSE TONGUE FALLETH INTO MISCHIEF.TI# 21 HE THAT BEGETTETH A FOOL DOETH IT TO HIS SORROW: AND THE FATHER OF AW FOOL HA00rh8 8<%X>%+%O-%TADATADATATH NO JOY.M# 22 A MERRY HEART DOETH GOOD LIKE A MEDICINE: BUT A BROKEN SPIRIT DRIETH THEF BONES.IG# 23 A WICKED MAN TAKETH A GIFT OUT OF THE BOSOM TO PERVERT THE WAYS OFY JUDGMENT.M# 24 WISDOM IS BEFORE HIM THAT HATH UNDERSTANDING; BUT THE EYES OF A FOOL ARE  IN THE ENDS OF THE EARTH.L# 25 A FOOLISH SON IS A GRIEF TO HIS FATHER, AND BITTERNESS TO HER THAT BARE HIM.TK# 26 ALSO TO PUNISH THE JUST IS NOT GOOD, NOR TO STRIKE PRINCES FOR EQUITY. L# 27 HE THAT HATH KNOWLEDGE SPARETH HIS WORDS: AND A MAN OF UNDERSTANDING IS OF AN EXCELLENT SPIRIT.I# 28 EVEN A FOOL, WHEN HE HOLDETH HIS PEACE, IS COUNTED WISE: AND HE THATH6 SHUTTETH HIS LIPS IS ESTEEMED A MAN OF UNDERSTANDING. = CHAPTER 18 OM# 1 THROUGH DESIRE A MAN, HAVING SEPARATED HIMSELF, SEEKETH AND INTERMEDDLETHN WITH ALL WISDOM. L# 2 A FOOL HATH NO DELIGHT IN UNDERSTANDING, BUT THAT HIS HEART MAY DISCOVER ITSELF.H# 3 WHEN THE WICKED COMETH, THEN COMETH ALSO CONTEMPT, AND WITH IGNOMINY REPROACH.G# 4 THE WORDS OF A MANS MOUTH ARE AS DEEP WATERS, AND THE WELLSPRING OFE WISDOM AS A FLOWING BROOK. G# 5 IT IS NOT GOOD TO ACCEPT THE PERSON OF THE WICKED, TO OVERTHROW THE  RIGHTEOUS IN JUDGMENT.NJ# 6 A FOOLS LIPS ENTER INTO CONTENTION, AND HIS MOUTH CALLETH FOR STROKES.M# 7 A FOOLS MOUTH IS HIS DESTRUCTION, AND HIS LIPS ARE THE SNARE OF HIS SOUL.DF# 8 THE WORDS OF A TALEBEARER ARE AS WOUNDS, AND THEY GO DOWN INTO THE INNERMOST PARTS OF THE BELLY.J# 9 HE ALSO THAT IS SLOTHFUL IN HIS WORK IS BROTHER TO HIM THAT IS A GREAT WASTER.K# 10 THE NAME OF THE LORD IS A STRONG TOWER: THE RIGHTEOUS RUNNETH INTO IT, AND IS SAFE.EL# 11 THE RICH MANS WEALTH IS HIS STRONG CITY, AND AS AN HIGH WALL IN HIS OWN CONCEIT.SI# 12 BEFORE DESTRUCTION THE HEART OF MAN IS HAUGHTY, AND BEFORE HONOUR IST HUMILITY.K# 13 HE THAT ANSWERETH A MATTER BEFORE HE HEARETH IT, IT IS FOLLY AND SHAMEA UNTO HIM.M# 14 THE SPIRIT OF A MAN WILL SUSTAIN HIS INFIRMITY; BUT A WOUNDED SPIRIT WHOH CAN BEAR?H# 15 THE HEART OF THE PRUDENT GETTETH KNOWLEDGE; AND THE EAR OF THE WISE SEEKETH KNOWLEDGE.NH# 16 A MANS GIFT MAKETH ROOM FOR HIM, AND BRINGETH HIM BEFORE GREAT MEN.M# 17 HE THAT IS FIRST IN HIS OWN CAUSE SEEMETH JUST; BUT HIS NEIGHBOUR COMETHB AND SEARCHETH HIM. J# 18 THE LOT CAUSETH CONTENTIONS TO CEASE, AND PARTETH BETWEEN THE MIGHTY.I# 19 A BROTHER OFFENDED IS HARDER TO BE WON THAN A STRONG CITY: AND THEIR + CONTENTIONS ARE LIKE THE BARS OF A CASTLE.MJ# 20 A MANS BELLY SHALL BE SATISFIED WITH THE FRUIT OF HIS MOUTH; AND WITH- THE INCREASE OF HIS LIPS SHALL HE BE FILLED.EI# 21 DEATH AND LIFE ARE IN THE POWER OF THE TONGUE: AND THEY THAT LOVE ITR SHALL EAT THE FRUIT THEREOF.IK# 22 WHOSO FINDETH A WIFE FINDETH A GOOD THING, AND OBTAINETH FAVOUR OF THEH LORD.?# 23 THE POOR USETH INTREATIES; BUT THE RICH ANSWERETH ROUGHLY.MG# 24 A MAN THAT HATH FRIENDS MUST SHEW HIMSELF FRIENDLY: AND THERE IS AN, FRIEND THAT STICKETH CLOSER THAN A BROTHER. = CHAPTER 19 AN# 1 BETTER IS THE POOR THAT WALKETH IN HIS INTEGRITY, THAN HE THAT IS PERVERSE IN HIS LIPS, AND IS A FOOL.I# 2 ALSO, THAT THE SOUL BE WITHOUT KNOWLEDGE, IT IS NOT GOOD; AND HE THATO HASTETH WITH HIS FEET SINNETH.EM# 3 THE FOOLISHNESS OF MAN PERVERTETH HIS WAY: AND HIS HEART FRETTETH AGAINSTH THE LORD.M# 4 WEALTH MAKETH MANY FRIENDS; BUT THE POOR IS SEPARATED FROM HIS NEIGHBOUR.AL# 5 A FALSE WITNESS SHALL NOT BE UNPUNISHED, AND HE THAT SPEAKETH LIES SHALL NOT ESCAPE.L# 6 MANY WILL INTREAT THE FAVOUR OF THE PRINCE: AND EVERY MAN IS A FRIEND TO HIM THAT GIVETH GIFTS.VM# 7 ALL THE BRETHREN OF THE POOR DO HATE HIM: HOW MUCH MORE DO HIS FRIENDS GOEH FAR FROM HIM? HE PURSUETH THEM WITH WORDS, YET THEY ARE WANTING TO HIM.M# 8 HE THAT GETTETH WISDOM LOVETH HIS OWN SOUL: HE THAT KEEPETH UNDERSTANDINGR SHALL FIND GOOD.TL# 9 A FALSE WITNESS SHALL NOT BE UNPUNISHED, AND HE THAT SPEAKETH LIES SHALL PERISH.K# 10 DELIGHT IS NOT SEEMLY FOR A FOOL; MUCH LESS FOR A SERVANT TO HAVE RULEW OVER PRINCES.M# 11 THE DISCRETION OF A MAN DEFERRETH HIS ANGER; AND IT IS HIS GLORY TO PASS  OVER A TRAN00rp8b5D%5%T6%! !SGRESSION.J# 12 THE KINGS WRATH IS AS THE ROARING OF A LION; BUT HIS FAVOUR IS AS DEW UPON THE GRASS.J# 13 A FOOLISH SON IS THE CALAMITY OF HIS FATHER: AND THE CONTENTIONS OF A WIFE ARE A CONTINUAL DROPPING.NK# 14 HOUSE AND RICHES ARE THE INHERITANCE OF FATHERS: AND A PRUDENT WIFE ISH FROM THE LORD.SJ# 15 SLOTHFULNESS CASTETH INTO A DEEP SLEEP; AND AN IDLE SOUL SHALL SUFFER HUNGER.F# 16 HE THAT KEEPETH THE COMMANDMENT KEEPETH HIS OWN SOUL; BUT HE THAT DESPISETH HIS WAYS SHALL DIE.M# 17 HE THAT HATH PITY UPON THE POOR LENDETH UNTO THE LORD; AND THAT WHICH HEI" HATH GIVEN WILL HE PAY HIM AGAIN.L# 18 CHASTEN THY SON WHILE THERE IS HOPE, AND LET NOT THY SOUL SPARE FOR HIS CRYING.K# 19 A MAN OF GREAT WRATH SHALL SUFFER PUNISHMENT: FOR IF THOU DELIVER HIM,  YET THOU MUST DO IT AGAIN. K# 20 HEAR COUNSEL, AND RECEIVE INSTRUCTION, THAT THOU MAYEST BE WISE IN THYL LATTER END.L# 21 THERE ARE MANY DEVICES IN A MANS HEART; NEVERTHELESS THE COUNSEL OF THE LORD, THAT SHALL STAND.I# 22 THE DESIRE OF A MAN IS HIS KINDNESS: AND A POOR MAN IS BETTER THAN AW LIAR.J# 23 THE FEAR OF THE LORD TENDETH TO LIFE: AND HE THAT HATH IT SHALL ABIDE. SATISFIED; HE SHALL NOT BE VISITED WITH EVIL.I# 24 A SLOTHFUL MAN HIDETH HIS HAND IN HIS BOSOM, AND WILL NOT SO MUCH ASM BRING IT TO HIS MOUTH AGAIN. K# 25 SMITE A SCORNER, AND THE SIMPLE WILL BEWARE: AND REPROVE ONE THAT HATHL1 UNDERSTANDING, AND HE WILL UNDERSTAND KNOWLEDGE.NK# 26 HE THAT WASTETH HIS FATHER, AND CHASETH AWAY HIS MOTHER, IS A SON THATD& CAUSETH SHAME, AND BRINGETH REPROACH.H# 27 CEASE, MY SON, TO HEAR THE INSTRUCTION THAT CAUSETH TO ERR FROM THE WORDS OF KNOWLEDGE.F# 28 AN UNGODLY WITNESS SCORNETH JUDGMENT: AND THE MOUTH OF THE WICKED DEVOURETH INIQUITY.L# 29 JUDGMENTS ARE PREPARED FOR SCORNERS, AND STRIPES FOR THE BACK OF FOOLS. = CHAPTER 20 NG# 1 WINE IS A MOCKER, STRONG DRINK IS RAGING: AND WHOSOEVER IS DECEIVEDG THEREBY IS NOT WISE.DJ# 2 THE FEAR OF A KING IS AS THE ROARING OF A LION: WHOSO PROVOKETH HIM TO$ ANGER SINNETH AGAINST HIS OWN SOUL.J# 3 IT IS AN HONOUR FOR A MAN TO CEASE FROM STRIFE: BUT EVERY FOOL WILL BE MEDDLING.L# 4 THE SLUGGARD WILL NOT PLOW BY REASON OF THE COLD; THEREFORE SHALL HE BEG IN HARVEST, AND HAVE NOTHING.@# 5 COUNSEL IN THE HEART OF MAN IS LIKE DEEP WATER; BUT A MAN OF UNDERSTANDING WILL DRAW IT OUT.M# 6 MOST MEN WILL PROCLAIM EVERY ONE HIS OWN GOODNESS: BUT A FAITHFUL MAN WHOT CAN FIND?I# 7 THE JUST MAN WALKETH IN HIS INTEGRITY: HIS CHILDREN ARE BLESSED AFTERT HIM.OJ# 8 A KING THAT SITTETH IN THE THRONE OF JUDGMENT SCATTERETH AWAY ALL EVIL WITH HIS EYES.UC# 9 WHO CAN SAY, I HAVE MADE MY HEART CLEAN, I AM PURE FROM MY SIN?EL# 10 DIVERS WEIGHTS, AND DIVERS MEASURES, BOTH OF THEM ARE ALIKE ABOMINATION TO THE LORD.HG# 11 EVEN A CHILD IS KNOWN BY HIS DOINGS, WHETHER HIS WORK BE PURE, AND  WHETHER IT BE RIGHT. I# 12 THE HEARING EAR, AND THE SEEING EYE, THE LORD HATH MADE EVEN BOTH OF  THEM.I# 13 LOVE NOT SLEEP, LEST THOU COME TO POVERTY; OPEN THINE EYES, AND THOU  SHALT BE SATISFIED WITH BREAD.NI# 14 IT IS NAUGHT, IT IS NAUGHT, SAITH THE BUYER: BUT WHEN HE IS GONE HISI WAY, THEN HE BOASTETH.,L# 15 THERE IS GOLD, AND A MULTITUDE OF RUBIES: BUT THE LIPS OF KNOWLEDGE ARE A PRECIOUS JEWEL.M# 16 TAKE HIS GARMENT THAT IS SURETY FOR A STRANGER: AND TAKE A PLEDGE OF HIMK FOR A STRANGE WOMAN.RI# 17 BREAD OF DECEIT IS SWEET TO A MAN; BUT AFTERWARDS HIS MOUTH SHALL BEE FILLED WITH GRAVEL.L# 18 EVERY PURPOSE IS ESTABLISHED BY COUNSEL: AND WITH GOOD ADVICE MAKE WAR.L# 19 HE THAT GOETH ABOUT AS A TALEBEARER REVEALETH SECRETS: THEREFORE MEDDLE, NOT WITH HIM THAT FLATTERETH WITH HIS LIPS.I# 20 WHOSO CURSETH HIS FATHER OR HIS MOTHER, HIS LAMP SHALL BE PUT OUT INK OBSCURE DARKNESS.G# 21 AN INHERITANCE MAY BE GOTTEN HASTILY AT THE BEGINNING; BUT THE ENDK THEREOF SHALL NOT BE BLESSED.M# 22 SAY NOT THOU, I WILL RECOMPENSE EVIL; BUT WAIT ON THE LORD, AND HE SHALLA SAVE THEE.EL# 23 DIVERS WEIGHTS ARE AN ABOMINATION UNTO THE LORD; AND A FALSE BALANCE IS NOT GOOD.L# 24 MANS GO00rx8 8<%X>%+%O-%TADATADATAINGS ARE OF THE LORD; HOW CAN A MAN THEN UNDERSTAND HIS OWN WAY?I# 25 IT IS A SNARE TO THE MAN WHO DEVOURETH THAT WHICH IS HOLY, AND AFTERT VOWS TO MAKE ENQUIRY.I# 26 A WISE KING SCATTERETH THE WICKED, AND BRINGETH THE WHEEL OVER THEM.TJ# 27 THE SPIRIT OF MAN IS THE CANDLE OF THE LORD, SEARCHING ALL THE INWARD PARTS OF THE BELLY.L# 28 MERCY AND TRUTH PRESERVE THE KING: AND HIS THRONE IS UPHOLDEN BY MERCY.K# 29 THE GLORY OF YOUNG MEN IS THEIR STRENGTH: AND THE BEAUTY OF OLD MEN ISG THE GREY HEAD.OJ# 30 THE BLUENESS OF A WOUND CLEANSETH AWAY EVIL: SO DO STRIPES THE INWARD PARTS OF THE BELLY. = CHAPTER 21 TJ# 1 THE KINGS HEART IS IN THE HAND OF THE LORD, AS THE RIVERS OF WATER: HE" TURNETH IT WHITHERSOEVER HE WILL.K# 2 EVERY WAY OF A MAN IS RIGHT IN HIS OWN EYES: BUT THE LORD PONDERETH THEL HEARTS.M# 3 TO DO JUSTICE AND JUDGMENT IS MORE ACCEPTABLE TO THE LORD THAN SACRIFICE.EK# 4 AN HIGH LOOK, AND A PROUD HEART, AND THE PLOWING OF THE WICKED, IS SIN.EM# 5 THE THOUGHTS OF THE DILIGENT TEND ONLY TO PLENTEOUSNESS; BUT OF EVERY ONEH THAT IS HASTY ONLY TO WANT.L# 6 THE GETTING OF TREASURES BY A LYING TONGUE IS A VANITY TOSSED TO AND FRO OF THEM THAT SEEK DEATH.RK# 7 THE ROBBERY OF THE WICKED SHALL DESTROY THEM; BECAUSE THEY REFUSE TO DO JUDGMENT.K# 8 THE WAY OF MAN IS FROWARD AND STRANGE: BUT AS FOR THE PURE, HIS WORK ISE RIGHT.EK# 9 IT IS BETTER TO DWELL IN A CORNER OF THE HOUSETOP, THAN WITH A BRAWLING, WOMAN IN A WIDE HOUSE.IM# 10 THE SOUL OF THE WICKED DESIRETH EVIL: HIS NEIGHBOUR FINDETH NO FAVOUR INT HIS EYES.M# 11 WHEN THE SCORNER IS PUNISHED, THE SIMPLE IS MADE WISE: AND WHEN THE WISEE' IS INSTRUCTED, HE RECEIVETH KNOWLEDGE.TJ# 12 THE RIGHTEOUS MAN WISELY CONSIDERETH THE HOUSE OF THE WICKED: BUT GOD. OVERTHROWETH THE WICKED FOR THEIR WICKEDNESS.F# 13 WHOSO STOPPETH HIS EARS AT THE CRY OF THE POOR, HE ALSO SHALL CRY! HIMSELF, BUT SHALL NOT BE HEARD.EG# 14 A GIFT IN SECRET PACIFIETH ANGER: AND A REWARD IN THE BOSOM STRONGT WRATH.FJ# 15 IT IS JOY TO THE JUST TO DO JUDGMENT: BUT DESTRUCTION SHALL BE TO THE WORKERS OF INIQUITY.SK# 16 THE MAN THAT WANDERETH OUT OF THE WAY OF UNDERSTANDING SHALL REMAIN INC THE CONGREGATION OF THE DEAD.M# 17 HE THAT LOVETH PLEASURE SHALL BE A POOR MAN: HE THAT LOVETH WINE AND OILH SHALL NOT BE RICH.CM# 18 THE WICKED SHALL BE A RANSOM FOR THE RIGHTEOUS, AND THE TRANSGRESSOR FORY THE UPRIGHT. L# 19 IT IS BETTER TO DWELL IN THE WILDERNESS, THAN WITH A CONTENTIOUS AND AN ANGRY WOMAN.TM# 20 THERE IS TREASURE TO BE DESIRED AND OIL IN THE DWELLING OF THE WISE; BUT  A FOOLISH MAN SPENDETH IT UP.B# 21 HE THAT FOLLOWETH AFTER RIGHTEOUSNESS AND MERCY FINDETH LIFE, RIGHTEOUSNESS, AND HONOUR.FM# 22 A WISE MAN SCALETH THE CITY OF THE MIGHTY, AND CASTETH DOWN THE STRENGTHN OF THE CONFIDENCE THEREOF.HK# 23 WHOSO KEEPETH HIS MOUTH AND HIS TONGUE KEEPETH HIS SOUL FROM TROUBLES. G# 24 PROUD AND HAUGHTY SCORNER IS HIS NAME, WHO DEALETH IN PROUD WRATH.WL# 25 THE DESIRE OF THE SLOTHFUL KILLETH HIM; FOR HIS HANDS REFUSE TO LABOUR.H# 26 HE COVETETH GREEDILY ALL THE DAY LONG: BUT THE RIGHTEOUS GIVETH AND SPARETH NOT.FG# 27 THE SACRIFICE OF THE WICKED IS ABOMINATION: HOW MUCH MORE, WHEN HE BRINGETH IT WITH A WICKED MIND?D# 28 A FALSE WITNESS SHALL PERISH: BUT THE MAN THAT HEARETH SPEAKETH CONSTANTLY.J# 29 A WICKED MAN HARDENETH HIS FACE: BUT AS FOR THE UPRIGHT, HE DIRECTETH HIS WAY.OG# 30 THERE IS NO WISDOM NOR UNDERSTANDING NOR COUNSEL AGAINST THE LORD.EJ# 31 THE HORSE IS PREPARED AGAINST THE DAY OF BATTLE: BUT SAFETY IS OF THE LORD. = CHAPTER 22 K# 1 A GOOD NAME IS RATHER TO BE CHOSEN THAN GREAT RICHES, AND LOVING FAVOURE RATHER THAN SILVER AND GOLD.HG# 2 THE RICH AND POOR MEET TOGETHER: THE LORD IS THE MAKER OF THEM ALL.TM# 3 A PRUDENT MAN FORESEETH THE EVIL, AND HIDETH HIMSELF: BUT THE SIMPLE PASSE ON, AND ARE PUNISHED.J# 4 BY HUMILITY AND THE FEAR OF THE LORD ARE RICHES, AND HONOUR, AND LIFE.J# 5 THORNS AND SNARES ARE IN THE WAY OF THE FROWARD: HE THAT DOTH KEEP HIS SOUL SHALL BE FAR FROM THEM. M# 6 TRAIN UP A00r8b5D%5%T6%! ! CHILD IN THE WAY HE SHOULD GO: AND WHEN HE IS OLD, HE WILL NOTN DEPART FROM IT.M# 7 THE RICH RULETH OVER THE POOR, AND THE BORROWER IS SERVANT TO THE LENDER.TM# 8 HE THAT SOWETH INIQUITY SHALL REAP VANITY: AND THE ROD OF HIS ANGER SHALL  FAIL.M# 9 HE THAT HATH A BOUNTIFUL EYE SHALL BE BLESSED; FOR HE GIVETH OF HIS BREAD TO THE POOR. G# 10 CAST OUT THE SCORNER, AND CONTENTION SHALL GO OUT; YEA, STRIFE ANDT REPROACH SHALL CEASE.I# 11 HE THAT LOVETH PURENESS OF HEART, FOR THE GRACE OF HIS LIPS THE KINGI SHALL BE HIS FRIEND. K# 12 THE EYES OF THE LORD PRESERVE KNOWLEDGE, AND HE OVERTHROWETH THE WORDST OF THE TRANSGRESSOR.EM# 13 THE SLOTHFUL MAN SAITH, THERE IS A LION WITHOUT, I SHALL BE SLAIN IN THED STREETS. I# 14 THE MOUTH OF STRANGE WOMEN IS A DEEP PIT: HE THAT IS ABHORRED OF THE; LORD SHALL FALL THEREIN. L# 15 FOOLISHNESS IS BOUND IN THE HEART OF A CHILD; BUT THE ROD OF CORRECTION SHALL DRIVE IT FAR FROM HIM.EK# 16 HE THAT OPPRESSETH THE POOR TO INCREASE HIS RICHES, AND HE THAT GIVETHN( TO THE RICH, SHALL SURELY COME TO WANT.H# 17 BOW DOWN THINE EAR, AND HEAR THE WORDS OF THE WISE, AND APPLY THINE HEART UNTO MY KNOWLEDGE.HI# 18 FOR IT IS A PLEASANT THING IF THOU KEEP THEM WITHIN THEE; THEY SHALL  WITHAL BE FITTED IN THY LIPS.K# 19 THAT THY TRUST MAY BE IN THE LORD, I HAVE MADE KNOWN TO THEE THIS DAY,5 EVEN TO THEE.K# 20 HAVE NOT I WRITTEN TO THEE EXCELLENT THINGS IN COUNSELS AND KNOWLEDGE, J# 21 THAT I MIGHT MAKE THEE KNOW THE CERTAINTY OF THE WORDS OF TRUTH; THATE THOU MIGHTEST ANSWER THE WORDS OF TRUTH TO THEM THAT SEND UNTO THEE?HK# 22 ROB NOT THE POOR, BECAUSE HE IS POOR: NEITHER OPPRESS THE AFFLICTED INL THE GATE:J# 23 FOR THE LORD WILL PLEAD THEIR CAUSE, AND SPOIL THE SOUL OF THOSE THAT SPOILED THEM.L# 24 MAKE NO FRIENDSHIP WITH AN ANGRY MAN; AND WITH A FURIOUS MAN THOU SHALT NOT GO:;# 25 LEST THOU LEARN HIS WAYS, AND GET A SNARE TO THY SOUL.HL# 26 BE NOT THOU ONE OF THEM THAT STRIKE HANDS, OR OF THEM THAT ARE SURETIES FOR DEBTS.DL# 27 IF THOU HAST NOTHING TO PAY, WHY SHOULD HE TAKE AWAY THY BED FROM UNDER THEE?A# 28 REMOVE NOT THE ANCIENT LANDMARK, WHICH THY FATHERS HAVE SET.AL# 29 SEEST THOU A MAN DILIGENT IN HIS BUSINESS? HE SHALL STAND BEFORE KINGS;$ HE SHALL NOT STAND BEFORE MEAN MEN. = CHAPTER 23 FM# 1 WHEN THOU SITTEST TO EAT WITH A RULER, CONSIDER DILIGENTLY WHAT IS BEFOREL THEE:F# 2 AND PUT A KNIFE TO THY THROAT, IF THOU BE A MAN GIVEN TO APPETITE.A# 3 BE NOT DESIROUS OF HIS DAINTIES: FOR THEY ARE DECEITFUL MEAT.7# 4 LABOUR NOT TO BE RICH: CEASE FROM THINE OWN WISDOM. I# 5 WILT THOU SET THINE EYES UPON THAT WHICH IS NOT? FOR RICHES CERTAINLY @ MAKE THEMSELVES WINGS; THEY FLY AWAY AS AN EAGLE TOWARD HEAVEN.L# 6 EAT THOU NOT THE BREAD OF HIM THAT HATH AN EVIL EYE, NEITHER DESIRE THOU HIS DAINTY MEATS:I# 7 FOR AS HE THINKETH IN HIS HEART, SO IS HE: EAT AND DRINK, SAITH HE TO& THEE; BUT HIS HEART IS NOT WITH THEE.L# 8 THE MORSEL WHICH THOU HAST EATEN SHALT THOU VOMIT UP, AND LOSE THY SWEET WORDS.TJ# 9 SPEAK NOT IN THE EARS OF A FOOL: FOR HE WILL DESPISE THE WISDOM OF THY WORDS.EF# 10 REMOVE NOT THE OLD LANDMARK; AND ENTER NOT INTO THE FIELDS OF THE FATHERLESS:H# 11 FOR THEIR REDEEMER IS MIGHTY; HE SHALL PLEAD THEIR CAUSE WITH THEE.G# 12 APPLY THINE HEART UNTO INSTRUCTION, AND THINE EARS TO THE WORDS OFS KNOWLEDGE.IM# 13 WITHHOLD NOT CORRECTION FROM THE CHILD: FOR IF THOU BEATEST HIM WITH THE  ROD, HE SHALL NOT DIE.LL# 14 THOU SHALT BEAT HIM WITH THE ROD, AND SHALT DELIVER HIS SOUL FROM HELL.G# 15 MY SON, IF THINE HEART BE WISE, MY HEART SHALL REJOICE, EVEN MINE.WC# 16 YEA, MY REINS SHALL REJOICE, WHEN THY LIPS SPEAK RIGHT THINGS.DJ# 17 LET NOT THINE HEART ENVY SINNERS: BUT BE THOU IN THE FEAR OF THE LORD ALL THE DAY LONG.L# 18 FOR SURELY THERE IS AN END; AND THINE EXPECTATION SHALL NOT BE CUT OFF.F# 19 HEAR THOU, MY SON, AND BE WISE, AND GUIDE THINE HEART IN THE WAY.=# 20 BE NOT AMONG WINEBIBBERS; AMONG RIOTOUS EATERS OF FLESH:EK# 21 FOR THE DRUNKARD AND THE GLUTTON SHALL COME TO POVERTY: AND DROWSINESSH S00r8 8<%X>%+%O-%TADATADATAHALL CLOTHE A MAN WITH RAGS.M# 22 HEARKEN UNTO THY FATHER THAT BEGAT THEE, AND DESPISE NOT THY MOTHER WHENI SHE IS OLD.F# 23 BUY THE TRUTH, AND SELL IT NOT; ALSO WISDOM, AND INSTRUCTION, AND UNDERSTANDING.LM# 24 THE FATHER OF THE RIGHTEOUS SHALL GREATLY REJOICE: AND HE THAT BEGETTETHF$ A WISE CHILD SHALL HAVE JOY OF HIM.J# 25 THY FATHER AND THY MOTHER SHALL BE GLAD, AND SHE THAT BARE THEE SHALL REJOICE.RE# 26 MY SON, GIVE ME THINE HEART, AND LET THINE EYES OBSERVE MY WAYS.TF# 27 FOR A WHORE IS A DEEP DITCH; AND A STRANGE WOMAN IS A NARROW PIT.K# 28 SHE ALSO LIETH IN WAIT AS FOR A PREY, AND INCREASETH THE TRANSGRESSORS3 AMONG MEN.HL# 29 WHO HATH WOE? WHO HATH SORROW? WHO HATH CONTENTIONS? WHO HATH BABBLING?9 WHO HATH WOUNDS WITHOUT CAUSE? WHO HATH REDNESS OF EYES?AG# 30 THEY THAT TARRY LONG AT THE WINE; THEY THAT GO TO SEEK MIXED WINE.HM# 31 LOOK NOT THOU UPON THE WINE WHEN IT IS RED, WHEN IT GIVETH HIS COLOUR ING' THE CUP, WHEN IT MOVETH ITSELF ARIGHT.SF# 32 AT THE LAST IT BITETH LIKE A SERPENT, AND STINGETH LIKE AN ADDER.G# 33 THINE EYES SHALL BEHOLD STRANGE WOMEN, AND THINE HEART SHALL UTTER  PERVERSE THINGS.L# 34 YEA, THOU SHALT BE AS HE THAT LIETH DOWN IN THE MIDST OF THE SEA, OR AS& HE THAT LIETH UPON THE TOP OF A MAST.I# 35 THEY HAVE STRICKEN ME, SHALT THOU SAY, AND I WAS NOT SICK; THEY HAVEEL BEATEN ME, AND I FELT IT NOT: WHEN SHALL I AWAKE? I WILL SEEK IT YET AGAIN. = CHAPTER 24 TI# 1 BE NOT THOU ENVIOUS AGAINST EVIL MEN, NEITHER DESIRE TO BE WITH THEM.TJ# 2 FOR THEIR HEART STUDIETH DESTRUCTION, AND THEIR LIPS TALK OF MISCHIEF.B# 3 THROUGH WISDOM IS AN HOUSE BUILDED; AND BY UNDERSTANDING IT IS ESTABLISHED: G# 4 AND BY KNOWLEDGE SHALL THE CHAMBERS BE FILLED WITH ALL PRECIOUS ANDH PLEASANT RICHES.OF# 5 A WISE MAN IS STRONG; YEA, A MAN OF KNOWLEDGE INCREASETH STRENGTH.D# 6 FOR BY WISE COUNSEL THOU SHALT MAKE THY WAR: AND IN MULTITUDE OF COUNSELLORS THERE IS SAFETY.PH# 7 WISDOM IS TOO HIGH FOR A FOOL: HE OPENETH NOT HIS MOUTH IN THE GATE.E# 8 HE THAT DEVISETH TO DO EVIL SHALL BE CALLED A MISCHIEVOUS PERSON.LK# 9 THE THOUGHT OF FOOLISHNESS IS SIN: AND THE SCORNER IS AN ABOMINATION TOI MEN.EB# 10 IF THOU FAINT IN THE DAY OF ADVERSITY, THY STRENGTH IS SMALL.I# 11 IF THOU FORBEAR TO DELIVER THEM THAT ARE DRAWN UNTO DEATH, AND THOSEN THAT ARE READY TO BE SLAIN;K# 12 IF THOU SAYEST, BEHOLD, WE KNEW IT NOT; DOTH NOT HE THAT PONDERETH THECJ HEART CONSIDER IT? AND HE THAT KEEPETH THY SOUL, DOTH NOT HE KNOW IT? AND9 SHALL NOT HE RENDER TO EVERY MAN ACCORDING TO HIS WORKS? L# 13 MY SON, EAT THOU HONEY, BECAUSE IT IS GOOD; AND THE HONEYCOMB, WHICH IS SWEET TO THY TASTE:L# 14 SO SHALL THE KNOWLEDGE OF WISDOM BE UNTO THY SOUL: WHEN THOU HAST FOUNDL IT, THEN THERE SHALL BE A REWARD, AND THY EXPECTATION SHALL NOT BE CUT OFF.M# 15 LAY NOT WAIT, O WICKED MAN, AGAINST THE DWELLING OF THE RIGHTEOUS; SPOILW NOT HIS RESTING PLACE: L# 16 FOR A JUST MAN FALLETH SEVEN TIMES, AND RISETH UP AGAIN: BUT THE WICKED SHALL FALL INTO MISCHIEF.J# 17 REJOICE NOT WHEN THINE ENEMY FALLETH, AND LET NOT THINE HEART BE GLAD WHEN HE STUMBLETH:DK# 18 LEST THE LORD SEE IT, AND IT DISPLEASE HIM, AND HE TURN AWAY HIS WRATHF FROM HIM.I# 19 FRET NOT THYSELF BECAUSE OF EVIL MEN, NEITHER BE THOU ENVIOUS AT THET WICKED:K# 20 FOR THERE SHALL BE NO REWARD TO THE EVIL MAN; THE CANDLE OF THE WICKEDL SHALL BE PUT OUT.K# 21 MY SON, FEAR THOU THE LORD AND THE KING: AND MEDDLE NOT WITH THEM THATA ARE GIVEN TO CHANGE: M# 22 FOR THEIR CALAMITY SHALL RISE SUDDENLY; AND WHO KNOWETH THE RUIN OF THEMT BOTH?I# 23 THESE THINGS ALSO BELONG TO THE WISE. IS NOT GOOD TO HAVE RESPECT OF, PERSONS IN JUDGMENT.AL# 24 HE THAT SAITH UNTO THE WICKED, THOU ARE RIGHTEOUS; HIM SHALL THE PEOPLE CURSE, NATIONS SHALL ABHOR HIM:L# 25 BUT TO THEM THAT REBUKE HIM SHALL BE DELIGHT, AND A GOOD BLESSING SHALL COME UPON THEM.># 26 EVERY MAN SHALL KISS HIS LIPS THAT GIVETH A RIGHT ANSWER.L# 27 PREPARE THY WORK WITHOUT, AND MAKE IT FIT FOR THYSELF IN THE FIELD; AND AFTERWARDS BUILD THINE HOUSE.J# 28 BE NOT A WI00r8b5D%5%T6%! !TNESS AGAINST THY NEIGHBOUR WITHOUT CAUSE; AND DECEIVE NOT WITH THY LIPS.EM# 29 SAY NOT, I WILL DO SO TO HIM AS HE HATH DONE TO ME: I WILL RENDER TO THEA MAN ACCORDING TO HIS WORK.EM# 30 I WENT BY THE FIELD OF THE SLOTHFUL, AND BY THE VINEYARD OF THE MAN VOIDB OF UNDERSTANDING;L# 31 AND, LO, IT WAS ALL GROWN OVER WITH THORNS, AND NETTLES HAD COVERED THE: FACE THEREOF, AND THE STONE WALL THEREOF WAS BROKEN DOWN.G# 32 THEN I SAW, AND CONSIDERED IT WELL: I LOOKED UPON IT, AND RECEIVED INSTRUCTION.NK# 33 YET A LITTLE SLEEP, A LITTLE SLUMBER, A LITTLE FOLDING OF THE HANDS TO  SLEEP:TI# 34 SO SHALL THY POVERTY COME AS ONE THAT TRAVELLETH; AND THY WANT AS ANC ARMED MAN. = CHAPTER 25 WI# 1 THESE ARE ALSO PROVERBS OF SOLOMON, WHICH THE MEN OF HEZEKIAH KING OF  JUDAH COPIED OUT.L# 2 IT IS THE GLORY OF GOD TO CONCEAL A THING: BUT THE HONOUR OF KINGS IS TO SEARCH OUT A MATTER.EM# 3 THE HEAVEN FOR HEIGHT, AND THE EARTH FOR DEPTH, AND THE HEART OF KINGS ISE UNSEARCHABLE.L# 4 TAKE AWAY THE DROSS FROM THE SILVER, AND THERE SHALL COME FORTH A VESSEL FOR THE FINER.NF# 5 TAKE AWAY THE WICKED FROM BEFORE THE KING, AND HIS THRONE SHALL BE ESTABLISHED IN RIGHTEOUSNESS.K# 6 PUT NOT FORTH THYSELF IN THE PRESENCE OF THE KING, AND STAND NOT IN THEH PLACE OF GREAT MEN:I# 7 FOR BETTER IT IS THAT IT BE SAID UNTO THEE, COME UP HITHER; THAN THATUJ THOU SHOULDEST BE PUT LOWER IN THE PRESENCE OF THE PRINCE WHOM THINE EYES HAVE SEEN.PL# 8 GO NOT FORTH HASTILY TO STRIVE, LEST THOU KNOW NOT WHAT TO DO IN THE END4 THEREOF, WHEN THY NEIGHBOUR HATH PUT THEE TO SHAME.M# 9 DEBATE THY CAUSE WITH THY NEIGHBOUR HIMSELF; AND DISCOVER NOT A SECRET TO ANOTHER:II# 10 LEST HE THAT HEARETH IT PUT THEE TO SHAME, AND THINE INFAMY TURN NOTN AWAY.F# 11 A WORD FITLY SPOKEN IS LIKE APPLES OF GOLD IN PICTURES OF SILVER.F# 12 AS AN EARRING OF GOLD, AND AN ORNAMENT OF FINE GOLD, SO IS A WISE REPROVER UPON AN OBEDIENT EAR.OK# 13 AS THE COLD OF SNOW IN THE TIME OF HARVEST, SO IS A FAITHFUL MESSENGERWB TO THEM THAT SEND HIM: FOR HE REFRESHETH THE SOUL OF HIS MASTERS.K# 14 WHOSO BOASTETH HIMSELF OF A FALSE GIFT IS LIKE CLOUDS AND WIND WITHOUTO RAIN.M# 15 BY LONG FORBEARING IS A PRINCE PERSUADED, AND A SOFT TONGUE BREAKETH THEN BONE.L# 16 HAST THOU FOUND HONEY? EAT SO MUCH AS IS SUFFICIENT FOR THEE, LEST THOU# BE FILLED THEREWITH, AND VOMIT IT. K# 17 WITHDRAW THY FOOT FROM THY NEIGHBOURS HOUSE; LEST HE BE WEARY OF THEE, AND SO HATE THEE.L# 18 A MAN THAT BEARETH FALSE WITNESS AGAINST HIS NEIGHBOUR IS A MAUL, AND A SWORD, AND A SHARP ARROW.H# 19 CONFIDENCE IN AN UNFAITHFUL MAN IN TIME OF TROUBLE IS LIKE A BROKEN TOOTH, AND A FOOT OUT OF JOINT.J# 20 AS HE THAT TAKETH AWAY A GARMENT IN COLD WEATHER, AND AS VINEGAR UPON6 NITRE, SO IS HE THAT SINGETH SONGS TO AN HEAVY HEART.K# 21 IF THINE ENEMY BE HUNGRY, GIVE HIM BREAD TO EAT; AND IF HE BE THIRSTY,T GIVE HIM WATER TO DRINK:GH# 22 FOR THOU SHALT HEAP COALS OF FIRE UPON HIS HEAD, AND THE LORD SHALL REWARD THEE.SE# 23 THE NORTH WIND DRIVETH AWAY RAIN: SO DOTH AN ANGRY COUNTENANCE AR BACKBITING TONGUE. E# 24 IT IS BETTER TO DWELL IN THE CORNER OF THE HOUSETOP, THAN WITH A $ BRAWLING WOMAN AND IN A WIDE HOUSE.J# 25 AS COLD WATERS TO A THIRSTY SOUL, SO IS GOOD NEWS FROM A FAR COUNTRY.D# 26 A RIGHTEOUS MAN FALLING DOWN BEFORE THE WICKED IS AS A TROUBLED FOUNTAIN, AND A CORRUPT SPRING.K# 27 IT IS NOT GOOD TO EAT MUCH HONEY: SO FOR MEN TO SEARCH THEIR OWN GLORYE IS NOT GLORY.K# 28 HE THAT HATH NO RULE OVER HIS OWN SPIRIT IS LIKE A CITY THAT IS BROKEN  DOWN, AND WITHOUT WALLS.R = CHAPTER 26 OL# 1 AS SNOW IN SUMMER, AND AS RAIN IN HARVEST, SO HONOUR IS NOT SEEMLY FOR A FOOL.D# 2 AS THE BIRD BY WANDERING, AS THE SWALLOW BY FLYING, SO THE CURSE CAUSELESS SHALL NOT COME.M# 3 A WHIP FOR THE HORSE, A BRIDLE FOR THE ASS, AND A ROD FOR THE FOOLS BACK.I# 4 ANSWER NOT A FOOL ACCORDING TO HIS FOLLY, LEST THOU ALSO BE LIKE UNTO  HIM. M# 5 ANSWER A FOOL ACCORDING TO HIS FOLLY, LEST HE BE WISE IN HIS OWN CONCEIT.OM# 6 HE THAT SENDETH A MESSAGE BY THE00r8 8<%X>%+%O-%TADATADATA HAND OF A FOOL CUTTETH OFF THE FEET, AND  DRINKETH DAMAGE.NG# 7 THE LEGS OF THE LAME ARE NOT EQUAL: SO IS A PARABLE IN THE MOUTH OF  FOOLS.BK# 8 AS HE THAT BINDETH A STONE IN A SLING, SO IS HE THAT GIVETH HONOUR TO AT FOOL.K# 9 AS A THORN GOETH UP INTO THE HAND OF A DRUNKARD, SO IS A PARABLE IN THE MOUTHS OF FOOLS.FF# 10 THE GREAT GOD THAT FORMED ALL THINGS BOTH REWARDETH THE FOOL, AND REWARDETH TRANSGRESSORS.SG# 11 AS A DOG RETURNETH TO HIS VOMIT, SO A FOOL RETURNETH TO HIS FOLLY.GK# 12 SEEST THOU A MAN WISE IN HIS OWN CONCEIT? THERE IS MORE HOPE OF A FOOLH THAN OF HIM.AI# 13 THE SLOTHFUL MAN SAITH, THERE IS A LION IN THE WAY; A LION IS IN THET STREETS.SL# 14 AS THE DOOR TURNETH UPON HIS HINGES, SO DOTH THE SLOTHFUL UPON HIS BED.K# 15 THE SLOTHFUL HIDETH HIS HAND IN HIS BOSOM; IT GRIEVETH HIM TO BRING ITF AGAIN TO HIS MOUTH.L# 16 THE SLUGGARD IS WISER IN HIS OWN CONCEIT THAN SEVEN MEN THAT CAN RENDER A REASON.J# 17 HE THAT PASSETH BY, AND MEDDLETH WITH STRIFE BELONGING NOT TO HIM, IS( LIKE ONE THAT TAKETH A DOG BY THE EARS.<# 18 AS A MAD MAN WHO CASTETH FIREBRANDS, ARROWS, AND DEATH,G# 19 SO IS THE MAN THAT DECEIVETH HIS NEIGHBOUR, AND SAITH, AM NOT I IN  SPORT?TE# 20 WHERE NO WOOD IS, THERE THE FIRE GOETH OUT: SO WHERE THERE IS NOO TALEBEARER, THE STRIFE CEASETH.M# 21 AS COALS ARE TO BURNING COALS, AND WOOD TO FIRE; SO IS A CONTENTIOUS MANR TO KINDLE STRIFE.G# 22 THE WORDS OF A TALEBEARER ARE AS WOUNDS, AND THEY GO DOWN INTO THEM INNERMOST PARTS OF THE BELLY.L# 23 BURNING LIPS AND A WICKED HEART ARE LIKE A POTSHERD COVERED WITH SILVER DROSS.IJ# 24 HE THAT HATETH DISSEMBLETH WITH HIS LIPS, AND LAYETH UP DECEIT WITHIN HIM;SM# 25 WHEN HE SPEAKETH FAIR, BELIEVE HIM NOT: FOR THERE ARE SEVEN ABOMINATIONSS IN HIS HEART.M# 26 WHOSE HATRED IS COVERED BY DECEIT, HIS WICKEDNESS SHALL BE SHEWED BEFORE  THE WHOLE CONGREGATION.L# 27 WHOSO DIGGETH A PIT SHALL FALL THEREIN: AND HE THAT ROLLETH A STONE, IT WILL RETURN UPON HIM.K# 28 A LYING TONGUE HATETH THOSE THAT ARE AFFLICTED BY IT; AND A FLATTERINGE MOUTH WORKETH RUIN. = CHAPTER 27 M# 1 BOAST NOT THYSELF OF TO MORROW; FOR THOU KNOWEST NOT WHAT A DAY MAY BRINGI FORTH.MM# 2 LET ANOTHER MAN PRAISE THEE, AND NOT THINE OWN MOUTH; A STRANGER, AND NOTN THINE OWN LIPS.M# 3 A STONE IS HEAVY, AND THE SAND WEIGHTY; BUT A FOOLS WRATH IS HEAVIER THAN THEM BOTH.CL# 4 WRATH IS CRUEL, AND ANGER IS OUTRAGEOUS; BUT WHO IS ABLE TO STAND BEFORE ENVY?+# 5 OPEN REBUKE IS BETTER THAN SECRET LOVE.NG# 6 FAITHFUL ARE THE WOUNDS OF A FRIEND; BUT THE KISSES OF AN ENEMY AREE DECEITFUL.HL# 7 THE FULL SOUL LOATHETH AN HONEYCOMB; BUT TO THE HUNGRY SOUL EVERY BITTER THING IS SWEET.K# 8 AS A BIRD THAT WANDERETH FROM HER NEST, SO IS A MAN THAT WANDERETH FROMN HIS PLACE.EK# 9 OINTMENT AND PERFUME REJOICE THE HEART: SO DOTH THE SWEETNESS OF A MANSH FRIEND BY HEARTY COUNSEL.K# 10 THINE OWN FRIEND, AND THY FATHERS FRIEND, FORSAKE NOT; NEITHER GO INTON THY BROTHERS HOUSE IN THE DAY OF THY CALAMITY: FOR BETTER IS A NEIGHBOUR THAT IS NEAR THAN A BROTHER FAR OFF.H# 11 MY SON, BE WISE, AND MAKE MY HEART GLAD, THAT I MAY ANSWER HIM THAT REPROACHETH ME.I# 12 A PRUDENT MAN FORESEETH THE EVIL, AND HIDETH HIMSELF; BUT THE SIMPLE  PASS ON, AND ARE PUNISHED.OM# 13 TAKE HIS GARMENT THAT IS SURETY FOR A STRANGER, AND TAKE A PLEDGE OF HIMN FOR A STRANGE WOMAN. G# 14 HE THAT BLESSETH HIS FRIEND WITH A LOUD VOICE, RISING EARLY IN THEE- MORNING, IT SHALL BE COUNTED A CURSE TO HIM.TI# 15 A CONTINUAL DROPPING IN A VERY RAINY DAY AND A CONTENTIOUS WOMAN ARET ALIKE.FH# 16 WHOSOEVER HIDETH HER HIDETH THE WIND, AND THE OINTMENT OF HIS RIGHT HAND, WHICH BEWRAYETH ITSELF.M# 17 IRON SHARPENETH IRON; SO A MAN SHARPENETH THE COUNTENANCE OF HIS FRIEND. G# 18 WHOSO KEEPETH THE FIG TREE SHALL EAT THE FRUIT THEREOF: SO HE THATT) WAITETH ON HIS MASTER SHALL BE HONOURED. D# 19 AS IN WATER FACE ANSWERETH TO FACE, SO THE HEART OF MAN TO MAN.F# 20 HELL AND DESTRUCTION ARE NEVER FULL; SO THE EYES OF MAN ARE NEVER SATISFIED.VK# 21 AS THE FI00r8b5D%5%T6%! !NING POT FOR SILVER, AND THE FURNACE FOR GOLD; SO IS A MAN TOE HIS PRAISE.M# 22 THOUGH THOU SHOULDEST BRAY A FOOL IN A MORTAR AMONG WHEAT WITH A PESTLE,H. YET WILL NOT HIS FOOLISHNESS DEPART FROM HIM.K# 23 BE THOU DILIGENT TO KNOW THE STATE OF THY FLOCKS, AND LOOK WELL TO THYO HERDS.TD# 24 FOR RICHES ARE NOT FOR EVER: AND DOTH THE CROWN ENDURE TO EVERY GENERATION?M# 25 THE HAY APPEARETH, AND THE TENDER GRASS SHEWETH ITSELF, AND HERBS OF THEO MOUNTAINS ARE GATHERED.G# 26 THE LAMBS ARE FOR THY CLOTHING, AND THE GOATS ARE THE PRICE OF THEL FIELD.AL# 27 AND THOU SHALT HAVE GOATS MILK ENOUGH FOR THY FOOD, FOR THE FOOD OF THY4 HOUSEHOLD, AND FOR THE MAINTENANCE FOR THY MAIDENS. = CHAPTER 28 II# 1 THE WICKED FLEE WHEN NO MAN PURSUETH: BUT THE RIGHTEOUS ARE BOLD AS A  LION.J# 2 FOR THE TRANSGRESSION OF A LAND MANY ARE THE PRINCES THEREOF: BUT BY AI MAN OF UNDERSTANDING AND KNOWLEDGE THE STATE THEREOF SHALL BE PROLONGED.,M# 3 A POOR MAN THAT OPPRESSETH THE POOR IS LIKE A SWEEPING RAIN WHICH LEAVETHN NO FOOD.GI# 4 THEY THAT FORSAKE THE LAW PRAISE THE WICKED: BUT SUCH AS KEEP THE LAWN CONTEND WITH THEM.RL# 5 EVIL MEN UNDERSTAND NOT JUDGMENT: BUT THEY THAT SEEK THE LORD UNDERSTAND ALL THINGS.G# 6 BETTER IS THE POOR THAT WALKETH IN HIS UPRIGHTNESS, THAN HE THAT ISL) PERVERSE IN HIS WAYS, THOUGH HE BE RICH.AF# 7 WHOSO KEEPETH THE LAW IS A WISE SON: BUT HE THAT IS A COMPANION OF RIOTOUS MEN SHAMETH HIS FATHER.G# 8 HE THAT BY USURY AND UNJUST GAIN INCREASETH HIS SUBSTANCE, HE SHALLH+ GATHER IT FOR HIM THAT WILL PITY THE POOR.KL# 9 HE THAT TURNETH AWAY HIS EAR FROM HEARING THE LAW, EVEN HIS PRAYER SHALL BE ABOMINATION.K# 10 WHOSO CAUSETH THE RIGHTEOUS TO GO ASTRAY IN AN EVIL WAY, HE SHALL FALL D HIMSELF INTO HIS OWN PIT: BUT THE UPRIGHT SHALL HAVE GOOD THINGS IN POSSESSION.D# 11 THE RICH MAN IS WISE IN HIS OWN CONCEIT; BUT THE POOR THAT HATH! UNDERSTANDING SEARCHETH HIM OUT.OM# 12 WHEN RIGHTEOUS MEN DO REJOICE, THERE IS GREAT GLORY: BUT WHEN THE WICKEDI RISE, A MAN IS HIDDEN.GJ# 13 HE THAT COVERETH HIS SINS SHALL NOT PROSPER: BUT WHOSO CONFESSETH AND! FORSAKETH THEM SHALL HAVE MERCY.YI# 14 HAPPY IS THE MAN THAT FEARETH ALWAY: BUT HE THAT HARDENETH HIS HEARTN SHALL FALL INTO MISCHIEF.I# 15 AS A ROARING LION, AND A RANGING BEAR; SO IS A WICKED RULER OVER THES POOR PEOPLE.TL# 16 THE PRINCE THAT WANTETH UNDERSTANDING IS ALSO A GREAT OPPRESSOR: BUT HE1 THAT HATETH COVETOUSNESS SHALL PROLONG HIS DAYS.JK# 17 A MAN THAT DOETH VIOLENCE TO THE BLOOD OF ANY PERSON SHALL FLEE TO THE  PIT; LET NO MAN STAY HIM.K# 18 WHOSO WALKETH UPRIGHTLY SHALL BE SAVED: BUT HE THAT IS PERVERSE IN HISY WAYS SHALL FALL AT ONCE.HE# 19 HE THAT TILLETH HIS LAND SHALL HAVE PLENTY OF BREAD: BUT HE THATS8 FOLLOWETH AFTER VAIN PERSONS SHALL HAVE POVERTY ENOUGH.L# 20 A FAITHFUL MAN SHALL ABOUND WITH BLESSINGS: BUT HE THAT MAKETH HASTE TO BE RICH SHALL NOT BE INNOCENT. J# 21 TO HAVE RESPECT OF PERSONS IS NOT GOOD: FOR FOR A PIECE OF BREAD THAT MAN WILL TRANSGRESS.LJ# 22 HE THAT HASTETH TO BE RICH HATH AN EVIL EYE, AND CONSIDERETH NOT THAT POVERTY SHALL COME UPON HIM.EJ# 23 HE THAT REBUKETH A MAN AFTERWARDS SHALL FIND MORE FAVOUR THAN HE THAT FLATTERETH WITH THE TONGUE.@# 24 WHOSO ROBBETH HIS FATHER OR HIS MOTHER, AND SAITH, IT IS NO9 TRANSGRESSION; THE SAME IS THE COMPANION OF A DESTROYER. L# 25 HE THAT IS OF A PROUD HEART STIRRETH UP STRIFE: BUT HE THAT PUTTETH HIS% TRUST IN THE LORD SHALL BE MADE FAT.:K# 26 HE THAT TRUSTETH IN HIS OWN HEART IS A FOOL: BUT WHOSO WALKETH WISELY,T HE SHALL BE DELIVERED.EM# 27 HE THAT GIVETH UNTO THE POOR SHALL NOT LACK: BUT HE THAT HIDETH HIS EYEST SHALL HAVE MANY A CURSE.NI# 28 WHEN THE WICKED RISE, MEN HIDE THEMSELVES: BUT WHEN THEY PERISH, THEH RIGHTEOUS INCREASE. = CHAPTER 29 G# 1 HE, THAT BEING OFTEN REPROVED HARDENETH HIS NECK, SHALL SUDDENLY BE5$ DESTROYED, AND THAT WITHOUT REMEDY.I# 2 WHEN THE RIGHTEOUS ARE IN AUTHORITY, THE PEOPLE REJOICE: BUT WHEN THE' WICKED BEARETH RULE, THE PEOPLE MOURN. I# 3 WHOSO LOVETH WISDOM REJOICETH HIS FATH00r8 8<%X>%+%O-%TADATADATAER: BUT HE THAT KEEPETH COMPANYG% WITH HARLOTS SPENDETH HIS SUBSTANCE. K# 4 THE KING BY JUDGMENT ESTABLISHETH THE LAND: BUT HE THAT RECEIVETH GIFTSS OVERTHROWETH IT.VE# 5 A MAN THAT FLATTERETH HIS NEIGHBOUR SPREADETH A NET FOR HIS FEET. K# 6 IN THE TRANSGRESSION OF AN EVIL MAN THERE IS A SNARE: BUT THE RIGHTEOUSR DOTH SING AND REJOICE.MM# 7 THE RIGHTEOUS CONSIDERETH THE CAUSE OF THE POOR: BUT THE WICKED REGARDETH NOT TO KNOW IT.I# 8 SCORNFUL MEN BRING A CITY INTO A SNARE: BUT WISE MEN TURN AWAY WRATH. J# 9 IF A WISE MAN CONTENDETH WITH A FOOLISH MAN, WHETHER HE RAGE OR LAUGH, THERE IS NO REST.C# 10 THE BLOODTHIRSTY HATE THE UPRIGHT: BUT THE JUST SEEK HIS SOUL. D# 11 A FOOL UTTERETH ALL HIS MIND: BUT A WISE MAN KEEPETH IT IN TILL AFTERWARDS.=# 12 IF A RULER HEARKEN TO LIES, ALL HIS SERVANTS ARE WICKED.K# 13 THE POOR AND THE DECEITFUL MAN MEET TOGETHER: THE LORD LIGHTENETH BOTH: THEIR EYES.C# 14 THE KING THAT FAITHFULLY JUDGETH THE POOR, HIS THRONE SHALL BES ESTABLISHED FOR EVER.J# 15 THE ROD AND REPROOF GIVE WISDOM: BUT A CHILD LEFT TO HIMSELF BRINGETH HIS MOTHER TO SHAME. F# 16 WHEN THE WICKED ARE MULTIPLIED, TRANSGRESSION INCREASETH: BUT THE RIGHTEOUS SHALL SEE THEIR FALL.M# 17 CORRECT THY SON, AND HE SHALL GIVE THEE REST; YEA, HE SHALL GIVE DELIGHTE UNTO THY SOUL.SI# 18 WHERE THERE IS NO VISION, THE PEOPLE PERISH: BUT HE THAT KEEPETH THET LAW, HAPPY IS HE.J# 19 A SERVANT WILL NOT BE CORRECTED BY WORDS: FOR THOUGH HE UNDERSTAND HE WILL NOT ANSWER.BI# 20 SEEST THOU A MAN THAT IS HASTY IN HIS WORDS? THERE IS MORE HOPE OF A  FOOL THAN OF HIM.K# 21 HE THAT DELICATELY BRINGETH UP HIS SERVANT FROM A CHILD SHALL HAVE HIME BECOME HIS SON AT THE LENGTH.D# 22 AN ANGRY MAN STIRRETH UP STRIFE, AND A FURIOUS MAN ABOUNDETH IN TRANSGRESSION. L# 23 A MANS PRIDE SHALL BRING HIM LOW: BUT HONOUR SHALL UPHOLD THE HUMBLE IN SPIRIT.K# 24 WHOSO IS PARTNER WITH A THIEF HATETH HIS OWN SOUL: HE HEARETH CURSING,O AND BEWRAYETH IT NOT.I# 25 THE FEAR OF MAN BRINGETH A SNARE: BUT WHOSO PUTTETH HIS TRUST IN THER LORD SHALL BE SAFE.I# 26 MANY SEEK THE RULERS FAVOUR; BUT EVERY MANS JUDGMENT COMETH FROM THE  LORD.K# 27 AN UNJUST MAN IS AN ABOMINATION TO THE JUST: AND HE THAT IS UPRIGHT INE& THE WAY IS ABOMINATION TO THE WICKED. = CHAPTER 30 SM# 1 THE WORDS OF AGUR THE SON OF JAKEH, EVEN THE PROPHECY: THE MAN SPAKE UNTOL# ITHIEL, EVEN UNTO ITHIEL AND UCAL, L# 2 SURELY I AM MORE BRUTISH THAN ANY MAN, AND HAVE NOT THE UNDERSTANDING OF A MAN.EA# 3 I NEITHER LEARNED WISDOM, NOR HAVE THE KNOWLEDGE OF THE HOLY.I# 4 WHO HATH ASCENDED UP INTO HEAVEN, OR DESCENDED? WHO HATH GATHERED THEMD WIND IN HIS FISTS? WHO HATH BOUND THE WATERS IN A GARMENT? WHO HATHN ESTABLISHED ALL THE ENDS OF THE EARTH? WHAT IS HIS NAME, AND WHAT IS HIS SONS NAME, IF THOU CANST TELL?L# 5 EVERY WORD OF GOD IS PURE: HE IS A SHIELD UNTO THEM THAT PUT THEIR TRUST IN HIM.J# 6 ADD THOU NOT UNTO HIS WORDS, LEST HE REPROVE THEE, AND THOU BE FOUND A LIAR.F# 7 TWO THINGS HAVE I REQUIRED OF THEE; DENY ME THEM NOT BEFORE I DIE:K# 8 REMOVE FAR FROM ME VANITY AND LIES: GIVE ME NEITHER POVERTY NOR RICHES;G% FEED ME WITH FOOD CONVENIENT FOR ME:AI# 9 LEST I BE FULL, AND DENY THEE, AND SAY, WHO IS THE LORD? OR LEST I BEE6 POOR, AND STEAL, AND TAKE THE NAME OF MY GOD IN VAIN.J# 10 ACCUSE NOT A SERVANT UNTO HIS MASTER, LEST HE CURSE THEE, AND THOU BE FOUND GUILTY.H# 11 THERE IS A GENERATION THAT CURSETH THEIR FATHER, AND DOTH NOT BLESS THEIR MOTHER.J# 12 THERE IS A GENERATION THAT ARE PURE IN THEIR OWN EYES, AND YET IS NOT WASHED FROM THEIR FILTHINESS.M# 13 THERE IS A GENERATION, O HOW LOFTY ARE THEIR EYES! AND THEIR EYELIDS AREN LIFTED UP. M# 14 THERE IS A GENERATION, WHOSE TEETH ARE AS SWORDS, AND THEIR JAW TEETH AS,M KNIVES, TO DEVOUR THE POOR FROM OFF THE EARTH, AND THE NEEDY FROM AMONG MEN.OK# 15 THE HORSELEACH HATH TWO DAUGHTERS, CRYING, GIVE, GIVE. THERE ARE THREE I THINGS THAT ARE NEVER SATISFIED, YEA, FOUR THINGS SAY NOT, IT IS ENOUGH: M# 16 THE GRAVE; AND THE BARREN WOMB; THE EARTH THAT IS NOT00r8b5D%5%T6%! ! FILLED WITH WATER;E+ AND THE FIRE THAT SAITH NOT, IT IS ENOUGH.EJ# 17 THE EYE THAT MOCKETH AT HIS FATHER, AND DESPISETH TO OBEY HIS MOTHER,K THE RAVENS OF THE VALLEY SHALL PICK IT OUT, AND THE YOUNG EAGLES SHALL EAT IT.L# 18 THERE BE THREE THINGS WHICH ARE TOO WONDERFUL FOR ME, YEA, FOUR WHICH I KNOW NOT:J# 19 THE WAY OF AN EAGLE IN THE AIR; THE WAY OF A SERPENT UPON A ROCK; THEI WAY OF A SHIP IN THE MIDST OF THE SEA; AND THE WAY OF A MAN WITH A MAID.EG# 20 SUCH IS THE WAY OF AN ADULTEROUS WOMAN; SHE EATETH, AND WIPETH HERE- MOUTH, AND SAITH, I HAVE DONE NO WICKEDNESS.EK# 21 FOR THREE THINGS THE EARTH IS DISQUIETED, AND FOR FOUR WHICH IT CANNOT  BEAR:L# 22 FOR A SERVANT WHEN HE REIGNETH; AND A FOOL WHEN HE IS FILLED WITH MEAT;M# 23 FOR AN ODIOUS WOMAN WHEN SHE IS MARRIED; AND AN HANDMAID THAT IS HEIR TO9 HER MISTRESS.G# 24 THERE BE FOUR THINGS WHICH ARE LITTLE UPON THE EARTH, BUT THEY ARE  EXCEEDING WISE:I# 25 THE ANTS ARE A PEOPLE NOT STRONG, YET THEY PREPARE THEIR MEAT IN THEU SUMMER;H# 26 THE CONIES ARE BUT A FEEBLE FOLK, YET MAKE THEY THEIR HOUSES IN THE ROCKS;RF# 27 THE LOCUSTS HAVE NO KING, YET GO THEY FORTH ALL OF THEM BY BANDS;D# 28 THE SPIDER TAKETH HOLD WITH HER HANDS, AND IS IN KINGS PALACES.H# 29 THERE BE THREE THINGS WHICH GO WELL, YEA, FOUR ARE COMELY IN GOING:J# 30 A LION WHICH IS STRONGEST AMONG BEASTS, AND TURNETH NOT AWAY FOR ANY;G# 31 A GREYHOUND; AN HE GOAT ALSO; AND A KING, AGAINST WHOM THERE IS NOE RISING UP.NG# 32 IF THOU HAST DONE FOOLISHLY IN LIFTING UP THYSELF, OR IF THOU HAST - THOUGHT EVIL, LAY THINE HAND UPON THY MOUTH.EK# 33 SURELY THE CHURNING OF MILK BRINGETH FORTH BUTTER, AND THE WRINGING OFAN THE NOSE BRINGETH FORTH BLOOD: SO THE FORCING OF WRATH BRINGETH FORTH STRIFE. = CHAPTER 31 F# 1 THE WORDS OF KING LEMUEL, THE PROPHECY THAT HIS MOTHER TAUGHT HIM.M# 2 WHAT, MY SON? AND WHAT, THE SON OF MY WOMB? AND WHAT, THE SON OF MY VOWS?HK# 3 GIVE NOT THY STRENGTH UNTO WOMEN, NOR THY WAYS TO THAT WHICH DESTROYETHU KINGS.EM# 4 IT IS NOT FOR KINGS, O LEMUEL, IT IS NOT FOR KINGS TO DRINK WINE; NOR FORN PRINCES STRONG DRINK:K# 5 LEST THEY DRINK, AND FORGET THE LAW, AND PERVERT THE JUDGMENT OF ANY OFE THE AFFLICTED.RK# 6 GIVE STRONG DRINK UNTO HIM THAT IS READY TO PERISH, AND WINE UNTO THOSE  THAT BE OF HEAVY HEARTS.HK# 7 LET HIM DRINK, AND FORGET HIS POVERTY, AND REMEMBER HIS MISERY NO MORE.FL# 8 OPEN THY MOUTH FOR THE DUMB IN THE CAUSE OF ALL SUCH AS ARE APPOINTED TO DESTRUCTION.TJ# 9 OPEN THY MOUTH, JUDGE RIGHTEOUSLY, AND PLEAD THE CAUSE OF THE POOR AND NEEDY.KF# 10 WHO CAN FIND A VIRTUOUS WOMAN? FOR HER PRICE IS FAR ABOVE RUBIES.M# 11 THE HEART OF HER HUSBAND DOTH SAFELY TRUST IN HER, SO THAT HE SHALL HAVE  NO NEED OF SPOIL.@# 12 SHE WILL DO HIM GOOD AND NOT EVIL ALL THE DAYS OF HER LIFE.F# 13 SHE SEEKETH WOOL, AND FLAX, AND WORKETH WILLINGLY WITH HER HANDS.F# 14 SHE IS LIKE THE MERCHANTS SHIPS; SHE BRINGETH HER FOOD FROM AFAR.M# 15 SHE RISETH ALSO WHILE IT IS YET NIGHT, AND GIVETH MEAT TO HER HOUSEHOLD,U AND A PORTION TO HER MAIDENS.L# 16 SHE CONSIDERETH A FIELD, AND BUYETH IT: WITH THE FRUIT OF HER HANDS SHE PLANTETH A VINEYARD.HE# 17 SHE GIRDETH HER LOINS WITH STRENGTH, AND STRENGTHENETH HER ARMS.NM# 18 SHE PERCEIVETH THAT HER MERCHANDISE IS GOOD: HER CANDLE GOETH NOT OUT BYF NIGHT.SI# 19 SHE LAYETH HER HANDS TO THE SPINDLE, AND HER HANDS HOLD THE DISTAFF.II# 20 SHE STRETCHETH OUT HER HAND TO THE POOR; YEA, SHE REACHETH FORTH HERT HANDS TO THE NEEDY.K# 21 SHE IS NOT AFRAID OF THE SNOW FOR HER HOUSEHOLD: FOR ALL HER HOUSEHOLD  ARE CLOTHED WITH SCARLET.G# 22 SHE MAKETH HERSELF COVERINGS OF TAPESTRY; HER CLOTHING IS SILK AND  PURPLE.K# 23 HER HUSBAND IS KNOWN IN THE GATES, WHEN HE SITTETH AMONG THE ELDERS OFT THE LAND.K# 24 SHE MAKETH FINE LINEN, AND SELLETH IT; AND DELIVERETH GIRDLES UNTO THEE MERCHANT.K# 25 STRENGTH AND HONOUR ARE HER CLOTHING; AND SHE SHALL REJOICE IN TIME TOD COME.G# 26 SHE OPENETH HER MOUTH WITH WISDOM; AND IN HER TONGUE IS THE LAW OF KINDNESS.L# 27 SHE LOOKETH WELL TO THE00r8s8<%X>%+%O-%TADATADATA WAYS OF HER HOUSEHOLD, AND EATETH NOT THE BREAD OF IDLENESS. J# 28 HER CHILDREN ARISE UP, AND CALL HER BLESSED; HER HUSBAND ALSO, AND HE PRAISETH HER.F# 29 MANY DAUGHTERS HAVE DONE VIRTUOUSLY, BUT THOU EXCELLEST THEM ALL.J# 30 FAVOUR IS DECEITFUL, AND BEAUTY IS VAIN: BUT A WOMAN THAT FEARETH THE LORD, SHE SHALL BE PRAISED.L# 31 GIVE HER OF THE FRUIT OF HER HANDS; AND LET HER OWN WORKS PRAISE HER IN THE GATES.WITH WISDOM; AND IN HER TONGUE IS THE LAW OF KINDNESS.L# 27 SHE LOOKETH WELL TO THE* BOOK21 ECCLESIASTES = CHAPTER 1 C# 1 THE WORDS OF THE PREACHER, THE SON OF DAVID, KING IN JERUSALEM.BF# 2 VANITY OF VANITIES, SAITH THE PREACHER, VANITY OF VANITIES; ALL IS VANITY.K# 3 WHAT PROFIT HATH A MAN OF ALL HIS LABOUR WHICH HE TAKETH UNDER THE SUN?IM# 4 ONE GENERATION PASSETH AWAY, AND ANOTHER GENERATION COMETH: BUT THE EARTHE ABIDETH FOR EVER.J# 5 THE SUN ALSO ARISETH, AND THE SUN GOETH DOWN, AND HASTETH TO HIS PLACE WHERE HE AROSE.I# 6 THE WIND GOETH TOWARD THE SOUTH, AND TURNETH ABOUT UNTO THE NORTH; ITJ WHIRLETH ABOUT CONTINUALLY, AND THE WIND RETURNETH AGAIN ACCORDING TO HIS CIRCUITS.L# 7 ALL THE RIVERS RUN INTO THE SEA; YET THE SEA IS NOT FULL; UNTO THE PLACE8 FROM WHENCE THE RIVERS COME, THITHER THEY RETURN AGAIN.F# 8 ALL THINGS ARE FULL OF LABOUR; MAN CANNOT UTTER IT: THE EYE IS NOT8 SATISFIED WITH SEEING, NOR THE EAR FILLED WITH HEARING.J# 9 THE THING THAT HATH BEEN, IT IS THAT WHICH SHALL BE; AND THAT WHICH ISK DONE IS THAT WHICH SHALL BE DONE: AND THERE IS NO NEW THING UNDER THE SUN.;I# 10 IS THERE ANY THING WHEREOF IT MAY BE SAID, SEE, THIS IS NEW? IT HATHO/ BEEN ALREADY OF OLD TIME, WHICH WAS BEFORE US. I# 11 THERE IS NO REMEMBRANCE OF FORMER THINGS; NEITHER SHALL THERE BE ANY I REMEMBRANCE OF THINGS THAT ARE TO COME WITH THOSE THAT SHALL COME AFTER.T6# 12 I THE PREACHER WAS KING OVER ISRAEL IN JERUSALEM.H# 13 AND I GAVE MY HEART TO SEEK AND SEARCH OUT BY WISDOM CONCERNING ALLK THINGS THAT ARE DONE UNDER HEAVEN: THIS SORE TRAVAIL HATH GOD GIVEN TO THEO' SONS OF MAN TO BE EXERCISED THEREWITH. L# 14 I HAVE SEEN ALL THE WORKS THAT ARE DONE UNDER THE SUN; AND, BEHOLD, ALL" IS VANITY AND VEXATION OF SPIRIT.M# 15 THAT WHICH IS CROOKED CANNOT BE MADE STRAIGHT: AND THAT WHICH IS WANTINGM CANNOT BE NUMBERED.K# 16 I COMMUNED WITH MINE OWN HEART, SAYING, LO, I AM COME TO GREAT ESTATE,OF AND HAVE GOTTEN MORE WISDOM THAN ALL THEY THAT HAVE BEEN BEFORE ME ING JERUSALEM: YEA, MY HEART HAD GREAT EXPERIENCE OF WISDOM AND KNOWLEDGE. I# 17 AND I GAVE MY HEART TO KNOW WISDOM, AND TO KNOW MADNESS AND FOLLY: I 0 PERCEIVED THAT THIS ALSO IS VEXATION OF SPIRIT.G# 18 FOR IN MUCH WISDOM IS MUCH GRIEF: AND HE THAT INCREASETH KNOWLEDGEH INCREASETH SORROW. = CHAPTER 2 L# 1 I SAID IN MINE HEART, GO TO NOW, I WILL PROVE THEE WITH MIRTH, THEREFORE2 ENJOY PLEASURE: AND, BEHOLD, THIS ALSO IS VANITY.B# 2 I SAID OF LAUGHTER, IT IS MAD: AND OF MIRTH, WHAT DOETH IT? ITI# 3 I SOUGHT IN MINE HEART TO GIVE MYSELF UNTO WINE, YET ACQUAINTING MINEEL HEART WITH WISDOM; AND TO LAY HOLD ON FOLLY, TILL I MIGHT SEE WHAT WAS THATM GOOD FOR THE SONS OF MEN, WHICH THEY SHOULD DO UNDER THE HEAVEN ALL THE DAYSM OF THEIR LIFE. G# 4 I MADE ME GREAT WORKS; I BUILDED ME HOUSES; I PLANTED ME VINEYARDS:DK# 5 I MADE ME GARDENS AND ORCHARDS, AND I PLANTED TREES IN THEM OF ALL KINDE OF FRUITS:EM# 6 I MADE ME POOLS OF WATER, TO WATER THEREWITH THE WOOD THAT BRINGETH FORTHA TREES:TL# 7 I GOT ME SERVANTS AND MAIDENS, AND HAD SERVANTS BORN IN MY HOUSE; ALSO IG HAD GREAT POSSESSIONS OF GREAT AND SMALL CATTLE ABOVE ALL THAT WERE INA JERUSALEM BEFORE ME:OJ# 8 I GATHERED ME ALSO SILVER AND GOLD, AND THE PECULIAR TREASURE OF KINGSF AND OF THE PROVINCES: I GAT ME MEN SINGERS AND WOMEN SINGERS, AND THEL DELIGHTS OF THE SONS OF MEN, AS MUSICAL INSTRUMENTS, AND THAT OF ALL SORTS.F# 9 SO I WAS GREAT, AND INCREASED MORE THAN ALL THAT WERE BEFORE ME IN, JERUSALEM: ALSO MY WISDOM REMAINED WITH ME.M# 10 AND WHATSOEVER MINE EYES DESIRED I KEPT NOT FROM THEM, I WITHHELD NOT MYEL HEART FROM ANY JOY; FOR M00s8b5D%5%T6%! !Y HEART REJOICED IN ALL MY LABOUR: AND THIS WAS MY PORTION OF ALL MY LABOUR.I# 11 THEN I LOOKED ON ALL THE WORKS THAT MY HANDS HAD WROUGHT, AND ON THEVN LABOUR THAT I HAD LABOURED TO DO: AND, BEHOLD, ALL WAS VANITY AND VEXATION OF/ SPIRIT, AND THERE WAS NO PROFIT UNDER THE SUN.TK# 12 AND I TURNED MYSELF TO BEHOLD WISDOM, AND MADNESS, AND FOLLY: FOR WHATJM CAN THE MAN DO THAT COMETH AFTER THE KING? EVEN THAT WHICH HATH BEEN ALREADYE DONE.F# 13 THEN I SAW THAT WISDOM EXCELLETH FOLLY, AS FAR AS LIGHT EXCELLETH DARKNESS.J# 14 THE WISE MANS EYES ARE IN HIS HEAD; BUT THE FOOL WALKETH IN DARKNESS:B AND I MYSELF PERCEIVED ALSO THAT ONE EVENT HAPPENETH TO THEM ALL.J# 15 THEN SAID I IN MY HEART, AS IT HAPPENETH TO THE FOOL, SO IT HAPPENETHM EVEN TO ME; AND WHY WAS I THEN MORE WISE? THEN I SAID IN MY HEART, THAT THISW ALSO IS VANITY.L# 16 FOR THERE IS NO REMEMBRANCE OF THE WISE MORE THAN OF THE FOOL FOR EVER;M SEEING THAT WHICH NOW IS IN THE DAYS TO COME SHALL ALL BE FORGOTTEN. AND HOWA! DIETH THE WISE MAN? AS THE FOOL..K# 17 THEREFORE I HATED LIFE; BECAUSE THE WORK THAT IS WROUGHT UNDER THE SUN? IS GRIEVOUS UNTO ME: FOR ALL IS VANITY AND VEXATION OF SPIRIT..J# 18 YEA, I HATED ALL MY LABOUR WHICH I HAD TAKEN UNDER THE SUN: BECAUSE I5 SHOULD LEAVE IT UNTO THE MAN THAT SHALL BE AFTER ME.DK# 19 AND WHO KNOWETH WHETHER HE SHALL BE A WISE MAN OR A FOOL? YET SHALL HEOI HAVE RULE OVER ALL MY LABOUR WHEREIN I HAVE LABOURED, AND WHEREIN I HAVEE7 SHEWED MYSELF WISE UNDER THE SUN. THIS IS ALSO VANITY.EJ# 20 THEREFORE I WENT ABOUT TO CAUSE MY HEART TO DESPAIR OF ALL THE LABOUR WHICH I TOOK UNDER THE SUN.K# 21 FOR THERE IS A MAN WHOSE LABOUR IS IN WISDOM, AND IN KNOWLEDGE, AND INAN EQUITY; YET TO A MAN THAT HATH NOT LABOURED THEREIN SHALL HE LEAVE IT FOR HIS/ PORTION. THIS ALSO IS VANITY AND A GREAT EVIL.OK# 22 FOR WHAT HATH MAN OF ALL HIS LABOUR, AND OF THE VEXATION OF HIS HEART,O( WHEREIN HE HATH LABOURED UNDER THE SUN?H# 23 FOR ALL HIS DAYS ARE SORROWS, AND HIS TRAVAIL GRIEF; YEA, HIS HEART3 TAKETH NOT REST IN THE NIGHT. THIS IS ALSO VANITY.OJ# 24 THERE IS NOTHING BETTER FOR A MAN, THAN THAT HE SHOULD EAT AND DRINK,L AND THAT HE SHOULD MAKE HIS SOUL ENJOY GOOD IN HIS LABOUR. THIS ALSO I SAW," THAT IT WAS FROM THE HAND OF GOD.C# 25 FOR WHO CAN EAT, OR WHO ELSE CAN HASTEN HEREUNTO, MORE THAN I?VM# 26 FOR GOD GIVETH TO A MAN THAT IS GOOD IN HIS SIGHT WISDOM, AND KNOWLEDGE,TM AND JOY: BUT TO THE SINNER HE GIVETH TRAVAIL, TO GATHER AND TO HEAP UP, THAT,M HE MAY GIVE TO HIM THAT IS GOOD BEFORE GOD. THIS ALSO IS VANITY AND VEXATIONA OF SPIRIT. = CHAPTER 3 K# 1 TO EVERY THING THERE IS A SEASON, AND A TIME TO EVERY PURPOSE UNDER THEO HEAVEN:H# 2 A TIME TO BE BORN, AND A TIME TO DIE; A TIME TO PLANT, AND A TIME TO PLUCK UP THAT WHICH IS PLANTED;K# 3 A TIME TO KILL, AND A TIME TO HEAL; A TIME TO BREAK DOWN, AND A TIME TON BUILD UP;G# 4 A TIME TO WEEP, AND A TIME TO LAUGH; A TIME TO MOURN, AND A TIME TOV DANCE;IL# 5 A TIME TO CAST AWAY STONES, AND A TIME TO GATHER STONES TOGETHER; A TIME2 TO EMBRACE, AND A TIME TO REFRAIN FROM EMBRACING;I# 6 A TIME TO GET, AND A TIME TO LOSE; A TIME TO KEEP, AND A TIME TO CASTP AWAY;L# 7 A TIME TO REND, AND A TIME TO SEW; A TIME TO KEEP SILENCE, AND A TIME TO SPEAK; K# 8 A TIME TO LOVE, AND A TIME TO HATE; A TIME OF WAR, AND A TIME OF PEACE. B# 9 WHAT PROFIT HATH HE THAT WORKETH IN THAT WHEREIN HE LABOURETH?K# 10 I HAVE SEEN THE TRAVAIL, WHICH GOD HATH GIVEN TO THE SONS OF MEN TO BET EXERCISED IN IT. I# 11 HE HATH MADE EVERY THING BEAUTIFUL IN HIS TIME: ALSO HE HATH SET THEFK WORLD IN THEIR HEART, SO THAT NO MAN CAN FIND OUT THE WORK THAT GOD MAKETHA FROM THE BEGINNING TO THE END. K# 12 I KNOW THAT THERE IS NO GOOD IN THEM, BUT FOR A MAN TO REJOICE, AND TOK DO GOOD IN HIS LIFE. L# 13 AND ALSO THAT EVERY MAN SHOULD EAT AND DRINK, AND ENJOY THE GOOD OF ALL# HIS LABOUR, IT IS THE GIFT OF GOD.AL# 14 I KNOW THAT, WHATSOEVER GOD DOETH, IT SHALL BE FOR EVER: NOTHING CAN BEJ PUT TO IT, NOR ANY THING TAKEN FROM IT: AND GOD DOETH IT, THAT MEN SH00s88<%X>%+%O-%TADATADATAOULD FEAR BEFORE HIM. L# 15 THAT WHICH HATH BEEN IS NOW; AND THAT WHICH IS TO BE HATH ALREADY BEEN;& AND GOD REQUIRETH THAT WHICH IS PAST.L# 16 AND MOREOVER I SAW UNDER THE SUN THE PLACE OF JUDGMENT, THAT WICKEDNESSD WAS THERE; AND THE PLACE OF RIGHTEOUSNESS, THAT INIQUITY WAS THERE.L# 17 I SAID IN MINE HEART, GOD SHALL JUDGE THE RIGHTEOUS AND THE WICKED: FOR< THERE IS A TIME THERE FOR EVERY PURPOSE AND FOR EVERY WORK.L# 18 I SAID IN MINE HEART CONCERNING THE ESTATE OF THE SONS OF MEN, THAT GODN MIGHT MANIFEST THEM, AND THAT THEY MIGHT SEE THAT THEY THEMSELVES ARE BEASTS.H# 19 FOR THAT WHICH BEFALLETH THE SONS OF MEN BEFALLETH BEASTS; EVEN ONEK THING BEFALLETH THEM: AS THE ONE DIETH, SO DIETH THE OTHER; YEA, THEY HAVETL ALL ONE BREATH; SO THAT A MAN HATH NO PREEMINENCE ABOVE A BEAST: FOR ALL IS VANITY.L# 20 ALL GO UNTO ONE PLACE; ALL ARE OF THE DUST, AND ALL TURN TO DUST AGAIN.K# 21 WHO KNOWETH THE SPIRIT OF MAN THAT GOETH UPWARD, AND THE SPIRIT OF THEE( BEAST THAT GOETH DOWNWARD TO THE EARTH?G# 22 WHEREFORE I PERCEIVE THAT THERE IS NOTHING BETTER, THAN THAT A MAN.N SHOULD REJOICE IN HIS OWN WORKS; FOR THAT IS HIS PORTION: FOR WHO SHALL BRING$ HIM TO SEE WHAT SHALL BE AFTER HIM? = CHAPTER 4 M# 1 SO I RETURNED, AND CONSIDERED ALL THE OPPRESSIONS THAT ARE DONE UNDER THEAE SUN: AND BEHOLD THE TEARS OF SUCH AS WERE OPPRESSED, AND THEY HAD NOEM COMFORTER; AND ON THE SIDE OF THEIR OPPRESSORS THERE WAS POWER; BUT THEY HADT NO COMFORTER.L# 2 WHEREFORE I PRAISED THE DEAD WHICH ARE ALREADY DEAD MORE THAN THE LIVING WHICH ARE YET ALIVE.OK# 3 YEA, BETTER IS HE THAN BOTH THEY, WHICH HATH NOT YET BEEN, WHO HATH NOT / SEEN THE EVIL WORK THAT IS DONE UNDER THE SUN.TJ# 4 AGAIN, I CONSIDERED ALL TRAVAIL, AND EVERY RIGHT WORK, THAT FOR THIS AL MAN IS ENVIED OF HIS NEIGHBOUR. THIS IS ALSO VANITY AND VEXATION OF SPIRIT.B# 5 THE FOOL FOLDETH HIS HANDS TOGETHER, AND EATETH HIS OWN FLESH.F# 6 BETTER IS AN HANDFUL WITH QUIETNESS, THAN BOTH THE HANDS FULL WITH TRAVAIL AND VEXATION OF SPIRIT.4# 7 THEN I RETURNED, AND I SAW VANITY UNDER THE SUN.M# 8 THERE IS ONE ALONE, AND THERE IS NOT A SECOND; YEA, HE HATH NEITHER CHILD G NOR BROTHER: YET IS THERE NO END OF ALL HIS LABOUR; NEITHER IS HIS EYEEN SATISFIED WITH RICHES; NEITHER SAITH HE, FOR WHOM DO I LABOUR, AND BEREAVE MY> SOUL OF GOOD? THIS IS ALSO VANITY, YEA, IT IS A SORE TRAVAIL.F# 9 TWO ARE BETTER THAN ONE; BECAUSE THEY HAVE A GOOD REWARD FOR THEIR LABOUR.K# 10 FOR IF THEY FALL, THE ONE WILL LIFT UP HIS FELLOW: BUT WOE TO HIM THAT.B IS ALONE WHEN HE FALLETH; FOR HE HATH NOT ANOTHER TO HELP HIM UP.M# 11 AGAIN, IF TWO LIE TOGETHER, THEN THEY HAVE HEAT: BUT HOW CAN ONE BE WARMR ALONE?TM# 12 AND IF ONE PREVAIL AGAINST HIM, TWO SHALL WITHSTAND HIM; AND A THREEFOLDT CORD IS NOT QUICKLY BROKEN.M# 13 BETTER IS A POOR AND A WISE CHILD THAN AN OLD AND FOOLISH KING, WHO WILLV NO MORE BE ADMONISHED.TJ# 14 FOR OUT OF PRISON HE COMETH TO REIGN; WHEREAS ALSO HE THAT IS BORN IN HIS KINGDOM BECOMETH POOR. J# 15 I CONSIDERED ALL THE LIVING WHICH WALK UNDER THE SUN, WITH THE SECOND( CHILD THAT SHALL STAND UP IN HIS STEAD.I# 16 THERE IS NO END OF ALL THE PEOPLE, EVEN OF ALL THAT HAVE BEEN BEFORE N THEM: THEY ALSO THAT COME AFTER SHALL NOT REJOICE IN HIM. SURELY THIS ALSO IS VANITY AND VEXATION OF SPIRIT.B = CHAPTER 5 K# 1 KEEP THY FOOT WHEN THOU GOEST TO THE HOUSE OF GOD, AND BE MORE READY TOIN HEAR, THAN TO GIVE THE SACRIFICE OF FOOLS: FOR THEY CONSIDER NOT THAT THEY DO EVIL.M# 2 BE NOT RASH WITH THY MOUTH, AND LET NOT THINE HEART BE HASTY TO UTTER ANY K THING BEFORE GOD: FOR GOD IS IN HEAVEN, AND THOU UPON EARTH: THEREFORE LET  THY WORDS BE FEW.K# 3 FOR A DREAM COMETH THROUGH THE MULTITUDE OF BUSINESS; AND A FOOLS VOICEA IS KNOWN BY MULTITUDE OF WORDS.H# 4 WHEN THOU VOWEST A VOW UNTO GOD, DEFER NOT TO PAY IT; FOR HE HATH NO3 PLEASURE IN FOOLS: PAY THAT WHICH THOU HAST VOWED.AJ# 5 BETTER IS IT THAT THOU SHOULDEST NOT VOW, THAN THAT THOU SHOULDEST VOW AND NOT PAY.IK# 6 SUFFER NOT THY MOUTH TO CAUSE THY FLESH TO SIN; NEITHER SAY TH00s8b5D%5%T6%! !OU BEFORE M THE ANGEL, THAT IT WAS AN ERROR: WHEREFORE SHOULD GOD BE ANGRY AT THY VOICE,E% AND DESTROY THE WORK OF THINE HANDS? G# 7 FOR IN THE MULTITUDE OF DREAMS AND MANY WORDS THERE ARE ALSO DIVERSY VANITIES: BUT FEAR THOU GOD.TG# 8 IF THOU SEEST THE OPPRESSION OF THE POOR, AND VIOLENT PERVERTING OF M JUDGMENT AND JUSTICE IN A PROVINCE, MARVEL NOT AT THE MATTER: FOR HE THAT ISTB HIGHER THAN THE HIGHEST REGARDETH; AND THERE BE HIGHER THAN THEY.K# 9 MOREOVER THE PROFIT OF THE EARTH IS FOR ALL: THE KING HIMSELF IS SERVED  BY THE FIELD.J# 10 HE THAT LOVETH SILVER SHALL NOT BE SATISFIED WITH SILVER; NOR HE THAT5 LOVETH ABUNDANCE WITH INCREASE: THIS IS ALSO VANITY.ML# 11 WHEN GOODS INCREASE, THEY ARE INCREASED THAT EAT THEM: AND WHAT GOOD ISK THERE TO THE OWNERS THEREOF, SAVING THE BEHOLDING OF THEM WITH THEIR EYES?UJ# 12 THE SLEEP OF A LABOURING MAN IS SWEET, WHETHER HE EAT LITTLE OR MUCH:< BUT THE ABUNDANCE OF THE RICH WILL NOT SUFFER HIM TO SLEEP.I# 13 THERE IS A SORE EVIL WHICH I HAVE SEEN UNDER THE SUN, NAMELY, RICHES + KEPT FOR THE OWNERS THEREOF TO THEIR HURT.NI# 14 BUT THOSE RICHES PERISH BY EVIL TRAVAIL: AND HE BEGETTETH A SON, ANDT THERE IS NOTHING IN HIS HAND.L# 15 AS HE CAME FORTH OF HIS MOTHERS WOMB, NAKED SHALL HE RETURN TO GO AS HEK CAME, AND SHALL TAKE NOTHING OF HIS LABOUR, WHICH HE MAY CARRY AWAY IN HISS HAND.M# 16 AND THIS ALSO IS A SORE EVIL, THAT IN ALL POINTS AS HE CAME, SO SHALL HE = GO: AND WHAT PROFIT HATH HE THAT HATH LABOURED FOR THE WIND?II# 17 ALL HIS DAYS ALSO HE EATETH IN DARKNESS, AND HE HATH MUCH SORROW ANDE WRATH WITH HIS SICKNESS.BL# 18 BEHOLD THAT WHICH I HAVE SEEN: IT IS GOOD AND COMELY FOR ONE TO EAT ANDK TO DRINK, AND TO ENJOY THE GOOD OF ALL HIS LABOUR THAT HE TAKETH UNDER THELK SUN ALL THE DAYS OF HIS LIFE, WHICH GOD GIVETH HIM: FOR IT IS HIS PORTION. L# 19 EVERY MAN ALSO TO WHOM GOD HATH GIVEN RICHES AND WEALTH, AND HATH GIVENI HIM POWER TO EAT THEREOF, AND TO TAKE HIS PORTION, AND TO REJOICE IN HISB! LABOUR; THIS IS THE GIFT OF GOD.DE# 20 FOR HE SHALL NOT MUCH REMEMBER THE DAYS OF HIS LIFE; BECAUSE GODT' ANSWERETH HIM IN THE JOY OF HIS HEART.I = CHAPTER 6 L# 1 THERE IS AN EVIL WHICH I HAVE SEEN UNDER THE SUN, AND IT IS COMMON AMONG MEN:AG# 2 A MAN TO WHOM GOD HATH GIVEN RICHES, WEALTH, AND HONOUR, SO THAT HEGM WANTETH NOTHING FOR HIS SOUL OF ALL THAT HE DESIRETH, YET GOD GIVETH HIM NOTRM POWER TO EAT THEREOF, BUT A STRANGER EATETH IT: THIS IS VANITY, AND IT IS ANR EVIL DISEASE.M# 3 IF A MAN BEGET AN HUNDRED CHILDREN, AND LIVE MANY YEARS, SO THAT THE DAYSMM OF HIS YEARS BE MANY, AND HIS SOUL BE NOT FILLED WITH GOOD, AND ALSO THAT HETA HAVE NO BURIAL; I SAY, THAT AN UNTIMELY BIRTH IS BETTER THAN HE.SI# 4 FOR HE COMETH IN WITH VANITY, AND DEPARTETH IN DARKNESS, AND HIS NAME, SHALL BE COVERED WITH DARKNESS.J# 5 MOREOVER HE HATH NOT SEEN THE SUN, NOR KNOWN ANY THING: THIS HATH MORE REST THAN THE OTHER.OH# 6 YEA, THOUGH HE LIVE A THOUSAND YEARS TWICE TOLD, YET HATH HE SEEN NO" GOOD: DO NOT ALL GO TO ONE PLACE?G# 7 ALL THE LABOUR OF MAN IS FOR HIS MOUTH, AND YET THE APPETITE IS NOTH FILLED.G# 8 FOR WHAT HATH THE WISE MORE THAN THE FOOL? WHAT HATH THE POOR, THAT # KNOWETH TO WALK BEFORE THE LIVING? M# 9 BETTER IS THE SIGHT OF THE EYES THAN THE WANDERING OF THE DESIRE: THIS ISL$ ALSO VANITY AND VEXATION OF SPIRIT.K# 10 THAT WHICH HATH BEEN IS NAMED ALREADY, AND IT IS KNOWN THAT IT IS MAN:T: NEITHER MAY HE CONTEND WITH HIM THAT IS MIGHTIER THAN HE.F# 11 SEEING THERE BE MANY THINGS THAT INCREASE VANITY, WHAT IS MAN THE BETTER?K# 12 FOR WHO KNOWETH WHAT IS GOOD FOR MAN IN THIS LIFE, ALL THE DAYS OF HISHN VAIN LIFE WHICH HE SPENDETH AS A SHADOW? FOR WHO CAN TELL A MAN WHAT SHALL BE AFTER HIM UNDER THE SUN?R = CHAPTER 7 K# 1 A GOOD NAME IS BETTER THAN PRECIOUS OINTMENT; AND THE DAY OF DEATH THANT THE DAY OF ONES BIRTH. K# 2 IT IS BETTER TO GO TO THE HOUSE OF MOURNING, THAN TO GO TO THE HOUSE OFML FEASTING: FOR THAT IS THE END OF ALL MEN; AND THE LIVING WILL LAY IT TO HIS HEART. M# 3 SORROW IS BETTER THAN LAUGHTER00s88<%X>%+%O-%TADATADATA: FOR BY THE SADNESS OF THE COUNTENANCE THEO HEART IS MADE BETTER.M# 4 THE HEART OF THE WISE IS IN THE HOUSE OF MOURNING; BUT THE HEART OF FOOLSM IS IN THE HOUSE OF MIRTH.K# 5 IT IS BETTER TO HEAR THE REBUKE OF THE WISE, THAN FOR A MAN TO HEAR THEE SONG OF FOOLS.FI# 6 FOR AS THE CRACKLING OF THORNS UNDER A POT, SO IS THE LAUGHTER OF THE  FOOL: THIS ALSO IS VANITY.EM# 7 SURELY OPPRESSION MAKETH A WISE MAN MAD; AND A GIFT DESTROYETH THE HEART.IL# 8 BETTER IS THE END OF A THING THAN THE BEGINNING THEREOF: AND THE PATIENT. IN SPIRIT IS BETTER THAN THE PROUD IN SPIRIT.M# 9 BE NOT HASTY IN THY SPIRIT TO BE ANGRY: FOR ANGER RESTETH IN THE BOSOM OFI FOOLS.HJ# 10 SAY NOT THOU, WHAT IS THE CAUSE THAT THE FORMER DAYS WERE BETTER THAN9 THESE? FOR THOU DOST NOT ENQUIRE WISELY CONCERNING THIS.GJ# 11 WISDOM IS GOOD WITH AN INHERITANCE: AND BY IT THERE IS PROFIT TO THEM THAT SEE THE SUN.K# 12 FOR WISDOM IS A DEFENCE, AND MONEY IS A DEFENCE: BUT THE EXCELLENCY OFI< KNOWLEDGE IS, THAT WISDOM GIVETH LIFE TO THEM THAT HAVE IT.L# 13 CONSIDER THE WORK OF GOD: FOR WHO CAN MAKE THAT STRAIGHT, WHICH HE HATH MADE CROOKED?D# 14 IN THE DAY OF PROSPERITY BE JOYFUL, BUT IN THE DAY OF ADVERSITYL CONSIDER: GOD ALSO HATH SET THE ONE OVER AGAINST THE OTHER, TO THE END THAT# MAN SHOULD FIND NOTHING AFTER HIM. I# 15 ALL THINGS HAVE I SEEN IN THE DAYS OF MY VANITY: THERE IS A JUST MANTD THAT PERISHETH IN HIS RIGHTEOUSNESS, AND THERE IS A WICKED MAN THAT' PROLONGETH HIS LIFE IN HIS WICKEDNESS.TD# 16 BE NOT RIGHTEOUS OVER MUCH; NEITHER MAKE THYSELF OVER WISE: WHY! SHOULDEST THOU DESTROY THYSELF ?HM# 17 BE NOT OVER MUCH WICKED, NEITHER BE THOU FOOLISH: WHY SHOULDEST THOU DIEI BEFORE THY TIME?IJ# 18 IT IS GOOD THAT THOU SHOULDEST TAKE HOLD OF THIS; YEA, ALSO FROM THISJ WITHDRAW NOT THINE HAND: FOR HE THAT FEARETH GOD SHALL COME FORTH OF THEM ALL. L# 19 WISDOM STRENGTHENETH THE WISE MORE THAN TEN MIGHTY MEN WHICH ARE IN THE CITY.I# 20 FOR THERE IS NOT A JUST MAN UPON EARTH, THAT DOETH GOOD, AND SINNETHI NOT. I# 21 ALSO TAKE NO HEED UNTO ALL WORDS THAT ARE SPOKEN; LEST THOU HEAR THYS SERVANT CURSE THEE:K# 22 FOR OFTENTIMES ALSO THINE OWN HEART KNOWETH THAT THOU THYSELF LIKEWISE  HAST CURSED OTHERS.M# 23 ALL THIS HAVE I PROVED BY WISDOM: I SAID, I WILL BE WISE; BUT IT WAS FARN FROM ME. D# 24 THAT WHICH IS FAR OFF, AND EXCEEDING DEEP, WHO CAN FIND IT OUT?M# 25 I APPLIED MINE HEART TO KNOW, AND TO SEARCH, AND TO SEEK OUT WISDOM, ANDTC THE REASON OF THINGS, AND TO KNOW THE WICKEDNESS OF FOLLY, EVEN OFT FOOLISHNESS AND MADNESS:UK# 26 AND I FIND MORE BITTER THAN DEATH THE WOMAN, WHOSE HEART IS SNARES AND2L NETS, AND HER HANDS AS BANDS: WHOSO PLEASETH GOD SHALL ESCAPE FROM HER; BUT" THE SINNER SHALL BE TAKEN BY HER.K# 27 BEHOLD, THIS HAVE I FOUND, SAITH THE PREACHER, COUNTING ONE BY ONE, TO4 FIND OUT THE ACCOUNT:M# 28 WHICH YET MY SOUL SEEKETH, BUT I FIND NOT: ONE MAN AMONG A THOUSAND HAVED7 I FOUND; BUT A WOMAN AMONG ALL THOSE HAVE I NOT FOUND.TI# 29 LO, THIS ONLY HAVE I FOUND, THAT GOD HATH MADE MAN UPRIGHT; BUT THEYE! HAVE SOUGHT OUT MANY INVENTIONS.H = CHAPTER 8 L# 1 WHO IS AS THE WISE MAN? AND WHO KNOWETH THE INTERPRETATION OF A THING? AL MANS WISDOM MAKETH HIS FACE TO SHINE, AND THE BOLDNESS OF HIS FACE SHALL BE CHANGED.AK# 2 I COUNSEL THEE TO KEEP THE KINGS COMMANDMENT, AND THAT IN REGARD OF THEN OATH OF GOD.YK# 3 BE NOT HASTY TO GO OUT OF HIS SIGHT: STAND NOT IN AN EVIL THING; FOR HE  DOETH WHATSOEVER PLEASETH HIM.IJ# 4 WHERE THE WORD OF A KING IS, THERE IS POWER: AND WHO MAY SAY UNTO HIM, WHAT DOEST THOU? K# 5 WHOSO KEEPETH THE COMMANDMENT SHALL FEEL NO EVIL THING: AND A WISE MANSH) HEART DISCERNETH BOTH TIME AND JUDGMENT.M# 6 BECAUSE TO EVERY PURPOSE THERE IS TIME AND JUDGMENT, THEREFORE THE MISERYC OF MAN IS GREAT UPON HIM.H# 7 FOR HE KNOWETH NOT THAT WHICH SHALL BE: FOR WHO CAN TELL HIM WHEN IT SHALL BE?I# 8 THERE IS NO MAN THAT HATH POWER OVER THE SPIRIT TO RETAIN THE SPIRIT;WM NEITHER HATH HE POWER IN THE DAY OF DEATH: AND THERE IS NO DISCHARGE IN THATWB WAR; 00s8b5D%5%T6%! !NEITHER SHALL WICKEDNESS DELIVER THOSE THAT ARE GIVEN TO IT.K# 9 ALL THIS HAVE I SEEN, AND APPLIED MY HEART UNTO EVERY WORK THAT IS DONEMN UNDER THE SUN: THERE IS A TIME WHEREIN ONE MAN RULETH OVER ANOTHER TO HIS OWN HURT.L# 10 AND SO I SAW THE WICKED BURIED, WHO HAD COME AND GONE FROM THE PLACE OFN THE HOLY, AND THEY WERE FORGOTTEN IN THE CITY WHERE THEY HAD SO DONE: THIS IS ALSO VANITY.ID# 11 BECAUSE SENTENCE AGAINST AN EVIL WORK IS NOT EXECUTED SPEEDILY,H THEREFORE THE HEART OF THE SONS OF MEN IS FULLY SET IN THEM TO DO EVIL.M# 12 THOUGH A SINNER DO EVIL AN HUNDRED TIMES, AND HIS DAYS BE PROLONGED, YETTH SURELY I KNOW THAT IT SHALL BE WELL WITH THEM THAT FEAR GOD, WHICH FEAR BEFORE HIM:K# 13 BUT IT SHALL NOT BE WELL WITH THE WICKED, NEITHER SHALL HE PROLONG HIS @ DAYS, WHICH ARE AS A SHADOW; BECAUSE HE FEARETH NOT BEFORE GOD.L# 14 THERE IS A VANITY WHICH IS DONE UPON THE EARTH; THAT THERE BE JUST MEN,L UNTO WHOM IT HAPPENETH ACCORDING TO THE WORK OF THE WICKED; AGAIN, THERE BEK WICKED MEN, TO WHOM IT HAPPENETH ACCORDING TO THE WORK OF THE RIGHTEOUS: I  SAID THAT THIS ALSO IS VANITY.OI# 15 THEN I COMMENDED MIRTH, BECAUSE A MAN HATH NO BETTER THING UNDER THE K SUN, THAN TO EAT, AND TO DRINK, AND TO BE MERRY: FOR THAT SHALL ABIDE WITHHL HIM OF HIS LABOUR THE DAYS OF HIS LIFE, WHICH GOD GIVETH HIM UNDER THE SUN.K# 16 WHEN I APPLIED MINE HEART TO KNOW WISDOM, AND TO SEE THE BUSINESS THAT L IS DONE UPON THE EARTH: (FOR ALSO THERE IS THAT NEITHER DAY NOR NIGHT SEETH SLEEP WITH HIS EYES:)K# 17 THEN I BEHELD ALL THE WORK OF GOD, THAT A MAN CANNOT FIND OUT THE WORKTL THAT IS DONE UNDER THE SUN: BECAUSE THOUGH A MAN LABOUR TO SEEK IT OUT, YETK HE SHALL NOT FIND IT; YEA FARTHER; THOUGH A WISE MAN THINK TO KNOW IT, YETH! SHALL HE NOT BE ABLE TO FIND IT.A = CHAPTER 9 L# 1 FOR ALL THIS I CONSIDERED IN MY HEART EVEN TO DECLARE ALL THIS, THAT THEI RIGHTEOUS, AND THE WISE, AND THEIR WORKS, ARE IN THE HAND OF GOD: NO MAN(: KNOWETH EITHER LOVE OR HATRED BY ALL THAT IS BEFORE THEM.M# 2 ALL THINGS COME ALIKE TO ALL: THERE IS ONE EVENT TO THE RIGHTEOUS, AND TOOJ THE WICKED; TO THE GOOD AND TO THE CLEAN, AND TO THE UNCLEAN; TO HIM THATH SACRIFICETH, AND TO HIM THAT SACRIFICETH NOT: AS IS THE GOOD, SO IS THE: SINNER; AND HE THAT SWEARETH, AS HE THAT FEARETH AN OATH.L# 3 THIS IS AN EVIL AMONG ALL THINGS THAT ARE DONE UNDER THE SUN, THAT THEREI IS ONE EVENT UNTO ALL: YEA, ALSO THE HEART OF THE SONS OF MEN IS FULL OF:L EVIL, AND MADNESS IS IN THEIR HEART WHILE THEY LIVE, AND AFTER THAT THEY GO TO THE DEAD.KK# 4 FOR TO HIM THAT IS JOINED TO ALL THE LIVING THERE IS HOPE: FOR A LIVINGO DOG IS BETTER THAN A DEAD LION.M# 5 FOR THE LIVING KNOW THAT THEY SHALL DIE: BUT THE DEAD KNOW NOT ANY THING,OJ NEITHER HAVE THEY ANY MORE A REWARD; FOR THE MEMORY OF THEM IS FORGOTTEN.G# 6 ALSO THEIR LOVE, AND THEIR HATRED, AND THEIR ENVY, IS NOW PERISHED;EN NEITHER HAVE THEY ANY MORE A PORTION FOR EVER IN ANY THING THAT IS DONE UNDER THE SUN.DG# 7 GO THY WAY, EAT THY BREAD WITH JOY, AND DRINK THY WINE WITH A MERRYE( HEART; FOR GOD NOW ACCEPTETH THY WORKS.H# 8 LET THY GARMENTS BE ALWAYS WHITE; AND LET THY HEAD LACK NO OINTMENT.L# 9 LIVE JOYFULLY WITH THE WIFE WHOM THOU LOVEST ALL THE DAYS OF THE LIFE OFH THY VANITY, WHICH HE HATH GIVEN THEE UNDER THE SUN, ALL THE DAYS OF THYK VANITY: FOR THAT IS THY PORTION IN THIS LIFE, AND IN THY LABOUR WHICH THOUE TAKEST UNDER THE SUN.M# 10 WHATSOEVER THY HAND FINDETH TO DO, DO IT WITH THY MIGHT; FOR THERE IS NOYH WORK, NOR DEVICE, NOR KNOWLEDGE, NOR WISDOM, IN THE GRAVE, WHITHER THOU GOEST. J# 11 I RETURNED, AND SAW UNDER THE SUN, THAT THE RACE IS NOT TO THE SWIFT,L NOR THE BATTLE TO THE STRONG, NEITHER YET BREAD TO THE WISE, NOR YET RICHESM TO MEN OF UNDERSTANDING, NOR YET FAVOUR TO MEN OF SKILL; BUT TIME AND CHANCEE HAPPENETH TO THEM ALL.RJ# 12 FOR MAN ALSO KNOWETH NOT HIS TIME: AS THE FISHES THAT ARE TAKEN IN ANL EVIL NET, AND AS THE BIRDS THAT ARE CAUGHT IN THE SNARE; SO ARE THE SONS OF@ MEN SNARED IN AN EVIL TIME, WHEN IT FALLETH SUDDENLY UPON THEM.M00s88<%X>%+%O-%TADATADATA# 13 THIS WISDOM HAVE I SEEN ALSO UNDER THE SUN, AND IT SEEMED GREAT UNTO ME:TK# 14 THERE WAS A LITTLE CITY, AND FEW MEN WITHIN IT; AND THERE CAME A GREATDG KING AGAINST IT, AND BESIEGED IT, AND BUILT GREAT BULWARKS AGAINST IT: D# 15 NOW THERE WAS FOUND IN IT A POOR WISE MAN, AND HE BY HIS WISDOM> DELIVERED THE CITY; YET NO MAN REMEMBERED THAT SAME POOR MAN.L# 16 THEN SAID I, WISDOM IS BETTER THAN STRENGTH: NEVERTHELESS THE POOR MANS1 WISDOM IS DESPISED, AND HIS WORDS ARE NOT HEARD.DK# 17 THE WORDS OF WISE MEN ARE HEARD IN QUIET MORE THAN THE CRY OF HIM THATM RULETH AMONG FOOLS.I# 18 WISDOM IS BETTER THAN WEAPONS OF WAR: BUT ONE SINNER DESTROYETH MUCH GOOD. = CHAPTER 10 EL# 1 DEAD FLIES CAUSE THE OINTMENT OF THE APOTHECARY TO SEND FORTH A STINKINGH SAVOUR: SO DOTH A LITTLE FOLLY HIM THAT IS IN REPUTATION FOR WISDOM AND HONOUR.J# 2 A WISE MANS HEART IS AT HIS RIGHT HAND; BUT A FOOLS HEART AT HIS LEFT.K# 3 YEA ALSO, WHEN HE THAT IS A FOOL WALKETH BY THE WAY, HIS WISDOM FAILETH 2 HIM, AND HE SAITH TO EVERY ONE THAT HE IS A FOOL.M# 4 IF THE SPIRIT OF THE RULER RISE UP AGAINST THEE, LEAVE NOT THY PLACE; FORS# YIELDING PACIFIETH GREAT OFFENCES.CG# 5 THERE IS AN EVIL WHICH I HAVE SEEN UNDER THE SUN, AS AN ERROR WHICHH PROCEEDETH FROM THE RULER:GA# 6 FOLLY IS SET IN GREAT DIGNITY, AND THE RICH SIT IN LOW PLACE.DJ# 7 I HAVE SEEN SERVANTS UPON HORSES, AND PRINCES WALKING AS SERVANTS UPON THE EARTH.FL# 8 HE THAT DIGGETH A PIT SHALL FALL INTO IT; AND WHOSO BREAKETH AN HEDGE, A SERPENT SHALL BITE HIM.L# 9 WHOSO REMOVETH STONES SHALL BE HURT THEREWITH; AND HE THAT CLEAVETH WOOD SHALL BE ENDANGERED THEREBY.K# 10 IF THE IRON BE BLUNT, AND HE DO NOT WHET THE EDGE, THEN MUST HE PUT TOU3 MORE STRENGTH: BUT WISDOM IS PROFITABLE TO DIRECT.EJ# 11 SURELY THE SERPENT WILL BITE WITHOUT ENCHANTMENT; AND A BABBLER IS NO BETTER.M# 12 THE WORDS OF A WISE MANS MOUTH ARE GRACIOUS; BUT THE LIPS OF A FOOL WILLF SWALLOW UP HIMSELF.K# 13 THE BEGINNING OF THE WORDS OF HIS MOUTH IS FOOLISHNESS: AND THE END OF ! HIS TALK IS MISCHIEVOUS MADNESS.LL# 14 A FOOL ALSO IS FULL OF WORDS: A MAN CANNOT TELL WHAT SHALL BE; AND WHAT& SHALL BE AFTER HIM, WHO CAN TELL HIM?M# 15 THE LABOUR OF THE FOOLISH WEARIETH EVERY ONE OF THEM, BECAUSE HE KNOWETHE NOT HOW TO GO TO THE CITY. J# 16 WOE TO THEE, O LAND, WHEN THY KING IS A CHILD, AND THY PRINCES EAT IN THE MORNING!IJ# 17 BLESSED ART THOU, O LAND, WHEN THY KING IS THE SON OF NOBLES, AND THYB PRINCES EAT IN DUE SEASON, FOR STRENGTH, AND NOT FOR DRUNKENNESS!L# 18 BY MUCH SLOTHFULNESS THE BUILDING DECAYETH; AND THROUGH IDLENESS OF THE" HANDS THE HOUSE DROPPETH THROUGH.M# 19 A FEAST IS MADE FOR LAUGHTER, AND WINE MAKETH MERRY: BUT MONEY ANSWERETHO ALL THINGS.M# 20 CURSE NOT THE KING, NO NOT IN THY THOUGHT; AND CURSE NOT THE RICH IN THYTM BEDCHAMBER: FOR A BIRD OF THE AIR SHALL CARRY THE VOICE, AND THAT WHICH HATHI WINGS SHALL TELL THE MATTER., = CHAPTER 11 IK# 1 CAST THY BREAD UPON THE WATERS: FOR THOU SHALT FIND IT AFTER MANY DAYS.OI# 2 GIVE A PORTION TO SEVEN, AND ALSO TO EIGHT; FOR THOU KNOWEST NOT WHATR EVIL SHALL BE UPON THE EARTH.L# 3 IF THE CLOUDS BE FULL OF RAIN, THEY EMPTY THEMSELVES UPON THE EARTH: ANDK IF THE TREE FALL TOWARD THE SOUTH, OR TOWARD THE NORTH, IN THE PLACE WHERET% THE TREE FALLETH, THERE IT SHALL BE.HG# 4 HE THAT OBSERVETH THE WIND SHALL NOT SOW; AND HE THAT REGARDETH THEI CLOUDS SHALL NOT REAP.LK# 5 AS THOU KNOWEST NOT WHAT IS THE WAY OF THE SPIRIT, NOR HOW THE BONES DOSI GROW IN THE WOMB OF HER THAT IS WITH CHILD: EVEN SO THOU KNOWEST NOT THEG WORKS OF GOD WHO MAKETH ALL.L# 6 IN THE MORNING SOW THY SEED, AND IN THE EVENING WITHHOLD NOT THINE HAND:L FOR THOU KNOWEST NOT WHETHER SHALL PROSPER, EITHER THIS OR THAT, OR WHETHER THEY BOTH SHALL BE ALIKE GOOD.TH# 7 TRULY THE LIGHT IS SWEET, AND A PLEASANT THING IT IS FOR THE EYES TO BEHOLD THE SUN:F# 8 BUT IF A MAN LIVE MANY YEARS, AND REJOICE IN THEM ALL; YET LET HIMJ REMEMBER THE DAYS OF DARKNESS; FOR THEY SHALL BE MANY. ALL THAT COMETH IS VANITY.K# 9 REJOICE, O Y00s8t8D%5%T6%! !OUNG MAN, IN THY YOUTH; AND LET THY HEART CHEER THEE IN THE L DAYS OF THY YOUTH, AND WALK IN THE WAYS OF THINE HEART, AND IN THE SIGHT OFN THINE EYES: BUT KNOW THOU, THAT FOR ALL THESE THINGS GOD WILL BRING THEE INTO JUDGMENT.G# 10 THEREFORE REMOVE SORROW FROM THY HEART, AND PUT AWAY EVIL FROM THYF+ FLESH: FOR CHILDHOOD AND YOUTH ARE VANITY.A = CHAPTER 12 YJ# 1 REMEMBER NOW THY CREATOR IN THE DAYS OF THY YOUTH, WHILE THE EVIL DAYSN COME NOT, NOR THE YEARS DRAW NIGH, WHEN THOU SHALT SAY, I HAVE NO PLEASURE IN THEM;L# 2 WHILE THE SUN, OR THE LIGHT, OR THE MOON, OR THE STARS, BE NOT DARKENED,& NOR THE CLOUDS RETURN AFTER THE RAIN:J# 3 IN THE DAY WHEN THE KEEPERS OF THE HOUSE SHALL TREMBLE, AND THE STRONGK MEN SHALL BOW THEMSELVES, AND THE GRINDERS CEASE BECAUSE THEY ARE FEW, AND 0 THOSE THAT LOOK OUT OF THE WINDOWS BE DARKENED,E# 4 AND THE DOORS SHALL BE SHUT IN THE STREETS, WHEN THE SOUND OF THE L GRINDING IS LOW, AND HE SHALL RISE UP AT THE VOICE OF THE BIRD, AND ALL THE* DAUGHTERS OF MUSICK SHALL BE BROUGHT LOW;L# 5 ALSO WHEN THEY SHALL BE AFRAID OF THAT WHICH IS HIGH, AND FEARS SHALL BEM IN THE WAY, AND THE ALMOND TREE SHALL FLOURISH, AND THE GRASSHOPPER SHALL BEUM A BURDEN, AND DESIRE SHALL FAIL: BECAUSE MAN GOETH TO HIS LONG HOME, AND THEE MOURNERS GO ABOUT THE STREETS:TK# 6 OR EVER THE SILVER CORD BE LOOSED, OR THE GOLDEN BOWL BE BROKEN, OR THEUG PITCHER BE BROKEN AT THE FOUNTAIN, OR THE WHEEL BROKEN AT THE CISTERN.RK# 7 THEN SHALL THE DUST RETURN TO THE EARTH AS IT WAS: AND THE SPIRIT SHALLR RETURN UNTO GOD WHO GAVE IT.S:# 8 VANITY OF VANITIES, SAITH THE PREACHER; ALL IS VANITY.K# 9 AND MOREOVER, BECAUSE THE PREACHER WAS WISE, HE STILL TAUGHT THE PEOPLEI KNOWLEDGE; YEA, HE GAVE GOOD HEED, AND SOUGHT OUT, AND SET IN ORDER MANYH PROVERBS.I# 10 THE PREACHER SOUGHT TO FIND OUT ACCEPTABLE WORDS: AND THAT WHICH WASD* WRITTEN WAS UPRIGHT, EVEN WORDS OF TRUTH.M# 11 THE WORDS OF THE WISE ARE AS GOADS, AND AS NAILS FASTENED BY THE MASTERSS2 OF ASSEMBLIES, WHICH ARE GIVEN FROM ONE SHEPHERD.M# 12 AND FURTHER, BY THESE, MY SON, BE ADMONISHED: OF MAKING MANY BOOKS THERE 7 IS NO END; AND MUCH STUDY IS A WEARINESS OF THE FLESH.SK# 13 LET US HEAR THE CONCLUSION OF THE WHOLE MATTER: FEAR GOD, AND KEEP HISO1 COMMANDMENTS: FOR THIS IS THE WHOLE DUTY OF MAN.TK# 14 FOR GOD SHALL BRING EVERY WORK INTO JUDGMENT, WITH EVERY SECRET THING,N+ WHETHER IT BE GOOD, OR WHETHER IT BE EVIL.WORDS OF THE WISE ARE AS GOADS, AND AS NAILS FASTENED BY THE MASTERSS2 OF ASSEMBLIES, WHICH ARE GIVEN FROM ONE* BOOK22 SONG OF SOLOMON = CHAPTER 1 )# 1 THE SONG OF SONGS, WHICH IS SOLOMONS. M# 2 LET HIM KISS ME WITH THE KISSES OF HIS MOUTH: FOR THY LOVE IS BETTER THANE WINE.G# 3 BECAUSE OF THE SAVOUR OF THY GOOD OINTMENTS THY NAME IS AS OINTMENTR2 POURED FORTH, THEREFORE DO THE VIRGINS LOVE THEE.F# 4 DRAW ME, WE WILL RUN AFTER THEE: THE KING HATH BROUGHT ME INTO HISN CHAMBERS: WE WILL BE GLAD AND REJOICE IN THEE, WE WILL REMEMBER THY LOVE MORE" THAN WINE: THE UPRIGHT LOVE THEE.H# 5 I AM BLACK, BUT COMELY, O YE DAUGHTERS OF JERUSALEM, AS THE TENTS OF# KEDAR, AS THE CURTAINS OF SOLOMON.J# 6 LOOK NOT UPON ME, BECAUSE I AM BLACK, BECAUSE THE SUN HATH LOOKED UPONK ME: MY MOTHERS CHILDREN WERE ANGRY WITH ME; THEY MADE ME THE KEEPER OF THEN2 VINEYARDS; BUT MINE OWN VINEYARD HAVE I NOT KEPT.G# 7 TELL ME, O THOU WHOM MY SOUL LOVETH, WHERE THOU FEEDEST, WHERE THOUOJ MAKEST THY FLOCK TO REST AT NOON: FOR WHY SHOULD I BE AS ONE THAT TURNETH' ASIDE BY THE FLOCKS OF THY COMPANIONS?EI# 8 IF THOU KNOW NOT, O THOU FAIREST AMONG WOMEN, GO THY WAY FORTH BY THEFF FOOTSTEPS OF THE FLOCK, AND FEED THY KIDS BESIDE THE SHEPHERDS TENTS.G# 9 I HAVE COMPARED THEE, O MY LOVE, TO A COMPANY OF HORSES IN PHARAOHS CHARIOTS.M# 10 THY CHEEKS ARE COMELY WITH ROWS OF JEWELS, THY NECK WITH CHAINS OF GOLD.T<# 11 WE WILL MAKE THEE BORDERS OF GOLD WITH STUDS OF SILVER.H# 12 WHILE THE KING SITTETH AT HIS TABLE, MY SPIKENARD SENDETH FORTH THE SMELL THEREOF.EI# 13 A BUNDLE OF MYRRH IS MY WELL-BELOVED UNTO ME; HE SHALL LIE ALL NI00t88<%X>%+%O-%TADATADATAGHTF BETWIXT MY BREASTS.G# 14 MY BELOVED IS UNTO ME AS A CLUSTER OF CAMPHIRE IN THE VINEYARDS OF  ENGEDI.K# 15 BEHOLD, THOU ART FAIR, MY LOVE; BEHOLD, THOU ART FAIR; THOU HAST DOVESA EYES.M# 16 BEHOLD, THOU ART FAIR, MY BELOVED, YEA, PLEASANT: ALSO OUR BED IS GREEN.S># 17 THE BEAMS OF OUR HOUSE ARE CEDAR, AND OUR RAFTERS OF FIR. = CHAPTER 2 9# 1 I AM THE ROSE OF SHARON, AND THE LILY OF THE VALLEYS.F@# 2 AS THE LILY AMONG THORNS, SO IS MY LOVE AMONG THE DAUGHTERS.M# 3 AS THE APPLE TREE AMONG THE TREES OF THE WOOD, SO IS MY BELOVED AMONG THEUN SONS. I SAT DOWN UNDER HIS SHADOW WITH GREAT DELIGHT, AND HIS FRUIT WAS SWEET TO MY TASTE.LK# 4 HE BROUGHT ME TO THE BANQUETING HOUSE, AND HIS BANNER OVER ME WAS LOVE.AH# 5 STAY ME WITH FLAGONS, COMFORT ME WITH APPLES: FOR I AM SICK OF LOVE.G# 6 HIS LEFT HAND IS UNDER MY HEAD, AND HIS RIGHT HAND DOTH EMBRACE ME.RL# 7 I CHARGE YOU, O YE DAUGHTERS OF JERUSALEM, BY THE ROES, AND BY THE HINDSF OF THE FIELD, THAT YE STIR NOT UP, NOR AWAKE MY LOVE, TILL HE PLEASE.J# 8 THE VOICE OF MY BELOVED! BEHOLD, HE COMETH LEAPING UPON THE MOUNTAINS, SKIPPING UPON THE HILLS.SL# 9 MY BELOVED IS LIKE A ROE OR A YOUNG HART: BEHOLD, HE STANDETH BEHIND OURL WALL, HE LOOKETH FORTH AT THE WINDOWS, SHEWING HIMSELF THROUGH THE LATTICE.K# 10 MY BELOVED SPAKE, AND SAID UNTO ME, RISE UP, MY LOVE, MY FAIR ONE, ANDH COME AWAY.M<# 11 FOR, LO, THE WINTER IS PAST, THE RAIN IS OVER AND GONE;I# 12 THE FLOWERS APPEAR ON THE EARTH; THE TIME OF THE SINGING OF BIRDS ISY8 COME, AND THE VOICE OF THE TURTLE IS HEARD IN OUR LAND;M# 13 THE FIG TREE PUTTETH FORTH HER GREEN FIGS, AND THE VINES WITH THE TENDERLE GRAPE GIVE A GOOD SMELL. ARISE, MY LOVE, MY FAIR ONE, AND COME AWAY.LK# 14 O MY DOVE, THAT ART IN THE CLEFTS OF THE ROCK, IN THE SECRET PLACES OF0L THE STAIRS, LET ME SEE THY COUNTENANCE, LET ME HEAR THY VOICE; FOR SWEET IS* THY VOICE, AND THY COUNTENANCE IS COMELY.M# 15 TAKE US THE FOXES, THE LITTLE FOXES, THAT SPOIL THE VINES: FOR OUR VINESH HAVE TENDER GRAPES.C# 16 MY BELOVED IS MINE, AND I AM HIS: HE FEEDETH AMONG THE LILIES.FM# 17 UNTIL THE DAY BREAK, AND THE SHADOWS FLEE AWAY, TURN, MY BELOVED, AND BEV> THOU LIKE A ROE OR A YOUNG HART UPON THE MOUNTAINS OF BETHER. = CHAPTER 3 L# 1 BY NIGHT ON MY BED I SOUGHT HIM WHOM MY SOUL LOVETH: I SOUGHT HIM, BUT I FOUND HIM NOT.EK# 2 I WILL RISE NOW, AND GO ABOUT THE CITY IN THE STREETS, AND IN THE BROADSM WAYS I WILL SEEK HIM WHOM MY SOUL LOVETH: I SOUGHT HIM, BUT I FOUND HIM NOT.UL# 3 THE WATCHMEN THAT GO ABOUT THE CITY FOUND ME: TO WHOM I SAID, SAW YE HIM WHOM MY SOUL LOVETH?M# 4 IT WAS BUT A LITTLE THAT I PASSED FROM THEM, BUT I FOUND HIM WHOM MY SOULN LOVETH: I HELD HIM, AND WOULD NOT LET HIM GO, UNTIL I HAD BROUGHT HIM INTO MY> MOTHERS HOUSE, AND INTO THE CHAMBER OF HER THAT CONCEIVED ME.L# 5 I CHARGE YOU, O YE DAUGHTERS OF JERUSALEM, BY THE ROES, AND BY THE HINDSF OF THE FIELD, THAT YE STIR NOT UP, NOR AWAKE MY LOVE, TILL HE PLEASE.H# 6 WHO IS THIS THAT COMETH OUT OF THE WILDERNESS LIKE PILLARS OF SMOKE,H PERFUMED WITH MYRRH AND FRANKINCENSE, WITH ALL POWDERS OF THE MERCHANT?K# 7 BEHOLD HIS BED, WHICH IS SOLOMONS; THREESCORE VALIANT MEN ARE ABOUT IT,T OF THE VALIANT OF ISRAEL.L# 8 THEY ALL HOLD SWORDS, BEING EXPERT IN WAR: EVERY MAN HATH HIS SWORD UPON( HIS THIGH BECAUSE OF FEAR IN THE NIGHT.?# 9 KING SOLOMON MADE HIMSELF A CHARIOT OF THE WOOD OF LEBANON.SK# 10 HE MADE THE PILLARS THEREOF OF SILVER, THE BOTTOM THEREOF OF GOLD, THE K COVERING OF IT OF PURPLE, THE MIDST THEREOF BEING PAVED WITH LOVE, FOR THEE DAUGHTERS OF JERUSALEM.M# 11 GO FORTH, O YE DAUGHTERS OF ZION, AND BEHOLD KING SOLOMON WITH THE CROWNTM WHEREWITH HIS MOTHER CROWNED HIM IN THE DAY OF HIS ESPOUSALS, AND IN THE DAYH OF THE GLADNESS OF HIS HEART. = CHAPTER 4 J# 1 BEHOLD, THOU ART FAIR, MY LOVE; BEHOLD, THOU ART FAIR; THOU HAST DOVESI EYES WITHIN THY LOCKS: THY HAIR IS AS A FLOCK OF GOATS, THAT APPEAR FROMT MOUNT GILEAD.J# 2 THY TEETH ARE LIKE A FLOCK OF SHEEP THAT ARE EVEN SHORN, WHICH CAME UPI FROM THE WASHING; WHEREOF EVE00t98D%5%T6%! !RY ONE BEAR TWINS, AND NONE IS BARREN AMONGT THEM.H# 3 THY LIPS ARE LIKE A THREAD OF SCARLET, AND THY SPEECH IS COMELY: THY< TEMPLES ARE LIKE A PIECE OF A POMEGRANATE WITHIN THY LOCKS.M# 4 THY NECK IS LIKE THE TOWER OF DAVID BUILDED FOR AN ARMOURY, WHEREON THERE 5 HANG A THOUSAND BUCKLERS, ALL SHIELDS OF MIGHTY MEN.HL# 5 THY TWO BREASTS ARE LIKE TWO YOUNG ROES THAT ARE TWINS, WHICH FEED AMONG THE LILIES.H# 6 UNTIL THE DAY BREAK, AND THE SHADOWS FLEE AWAY, I WILL GET ME TO THE4 MOUNTAIN OF MYRRH, AND TO THE HILL OF FRANKINCENSE.9# 7 THOU ART ALL FAIR, MY LOVE; THERE IS NO SPOT IN THEE.RM# 8 COME WITH ME FROM LEBANON, MY SPOUSE, WITH ME FROM LEBANON: LOOK FROM THEWK TOP OF AMANA, FROM THE TOP OF SHENIR AND HERMON, FROM THE LIONS DENS, FROMU THE MOUNTAINS OF THE LEOPARDS.AL# 9 THOU HAST RAVISHED MY HEART, MY SISTER, MY SPOUSE; THOU HAST RAVISHED MY: HEART WITH ONE OF THINE EYES, WITH ONE CHAIN OF THY NECK.L# 10 HOW FAIR IS THY LOVE, MY SISTER, MY SPOUSE! HOW MUCH BETTER IS THY LOVE= THAN WINE! AND THE SMELL OF THINE OINTMENTS THAN ALL SPICES!FK# 11 THY LIPS, O MY SPOUSE, DROP AS THE HONEYCOMB: HONEY AND MILK ARE UNDERPH THY TONGUE; AND THE SMELL OF THY GARMENTS IS LIKE THE SMELL OF LEBANON.L# 12 A GARDEN INCLOSED IS MY SISTER, MY SPOUSE; A SPRING SHUT UP, A FOUNTAIN SEALED.E# 13 THY PLANTS ARE AN ORCHARD OF POMEGRANATES, WITH PLEASANT FRUITS; CAMPHIRE, WITH SPIKENARD,C# 14 SPIKENARD AND SAFFRON; CALAMUS AND CINNAMON, WITH ALL TREES OF : FRANKINCENSE; MYRRH AND ALOES, WITH ALL THE CHIEF SPICES:E# 15 A FOUNTAIN OF GARDENS, A WELL OF LIVING WATERS, AND STREAMS FROM LEBANON. M# 16 AWAKE, O NORTH WIND; AND COME, THOU SOUTH; BLOW UPON MY GARDEN, THAT THESN SPICES THEREOF MAY FLOW OUT. LET MY BELOVED COME INTO HIS GARDEN, AND EAT HIS PLEASANT FRUITS. = CHAPTER 5 L# 1 I AM COME INTO MY GARDEN, MY SISTER, MY SPOUSE: I HAVE GATHERED MY MYRRHM WITH MY SPICE; I HAVE EATEN MY HONEYCOMB WITH MY HONEY; I HAVE DRUNK MY WINEIG WITH MY MILK: EAT, O FRIENDS; DRINK, YEA, DRINK ABUNDANTLY, O BELOVED.ED# 2 I SLEEP, BUT MY HEART WAKETH: IT IS THE VOICE OF MY BELOVED THATM KNOCKETH, SAYING, OPEN TO ME, MY SISTER, MY LOVE, MY DOVE, MY UNDEFILED: FORGF MY HEAD IS FILLED WITH DEW, AND MY LOCKS WITH THE DROPS OF THE NIGHT.M# 3 I HAVE PUT OFF MY COAT; HOW SHALL I PUT IT ON? I HAVE WASHED MY FEET; HOWM SHALL I DEFILE THEM? J# 4 MY BELOVED PUT IN HIS HAND BY THE HOLE OF THE DOOR, AND MY BOWELS WERE MOVED FOR HIM.HL# 5 I ROSE UP TO OPEN TO MY BELOVED; AND MY HANDS DROPPED WITH MYRRH, AND MYA FINGERS WITH SWEET SMELLING MYRRH, UPON THE HANDLES OF THE LOCK.FI# 6 I OPENED TO MY BELOVED; BUT MY BELOVED HAD WITHDRAWN HIMSELF, AND WASEN GONE: MY SOUL FAILED WHEN HE SPAKE: I SOUGHT HIM, BUT I COULD NOT FIND HIM; I& CALLED HIM, BUT HE GAVE ME NO ANSWER.G# 7 THE WATCHMEN THAT WENT ABOUT THE CITY FOUND ME, THEY SMOTE ME, THEYM@ WOUNDED ME; THE KEEPERS OF THE WALLS TOOK AWAY MY VEIL FROM ME.J# 8 I CHARGE YOU, O DAUGHTERS OF JERUSALEM, IF YE FIND MY BELOVED, THAT YE" TELL HIM, THAT I AM SICK OF LOVE.G# 9 WHAT IS THY BELOVED MORE THAN ANOTHER BELOVED, O THOU FAIREST AMONGPH WOMEN? WHAT IS THY BELOVED MORE THAN ANOTHER BELOVED, THAT THOU DOST SO CHARGE US?ED# 10 MY BELOVED IS WHITE AND RUDDY, THE CHIEFEST AMONG TEN THOUSAND.K# 11 HIS HEAD IS AS THE MOST FINE GOLD, HIS LOCKS ARE BUSHY, AND BLACK AS A  RAVEN.SK# 12 HIS EYES ARE AS THE EYES OF DOVES BY THE RIVERS OF WATERS, WASHED WITHM MILK, AND FITLY SET. G# 13 HIS CHEEKS ARE AS A BED OF SPICES, AS SWEET FLOWERS: HIS LIPS LIKE ' LILIES, DROPPING SWEET SMELLING MYRRH. K# 14 HIS HANDS ARE AS GOLD RINGS SET WITH THE BERYL: HIS BELLY IS AS BRIGHT  IVORY OVERLAID WITH SAPPHIRES.HJ# 15 HIS LEGS ARE AS PILLARS OF MARBLE, SET UPON SOCKETS OF FINE GOLD: HIS4 COUNTENANCE IS AS LEBANON, EXCELLENT AS THE CEDARS.F# 16 HIS MOUTH IS MOST SWEET: YEA, HE IS ALTOGETHER LOVELY. THIS IS MY: BELOVED, AND THIS IS MY FRIEND, O DAUGHTERS OF JERUSALEM. = CHAPTER 6 K# 1 WHITHER IS THY BELOVED GONE, O THOU FAIREST AMONG WOMEN? WHITHER IS THYL6 BELOVED TURNED ASID00t98<%X>%+%O-%TADATADATAE? THAT WE MAY SEEK HIM WITH THEE.K# 2 MY BELOVED IS GONE DOWN INTO HIS GARDEN, TO THE BEDS OF SPICES, TO FEEDO& IN THE GARDENS, AND TO GATHER LILIES.J# 3 I AM MY BELOVEDS, AND MY BELOVED IS MINE: HE FEEDETH AMONG THE LILIES.K# 4 THOU ART BEAUTIFUL, O MY LOVE, AS TIRZAH, COMELY AS JERUSALEM, TERRIBLE  AS AN ARMY WITH BANNERS.IM# 5 TURN AWAY THINE EYES FROM ME, FOR THEY HAVE OVERCOME ME: THY HAIR IS AS A( FLOCK OF GOATS THAT APPEAR FROM GILEAD.K# 6 THY TEETH ARE AS A FLOCK OF SHEEP WHICH GO UP FROM THE WASHING, WHEREOFIA EVERY ONE BEARETH TWINS, AND THERE IS NOT ONE BARREN AMONG THEM.EA# 7 AS A PIECE OF A POMEGRANATE ARE THY TEMPLES WITHIN THY LOCKS. F# 8 THERE ARE THREESCORE QUEENS, AND FOURSCORE CONCUBINES, AND VIRGINS WITHOUT NUMBER.L# 9 MY DOVE, MY UNDEFILED IS BUT ONE; SHE IS THE ONLY ONE OF HER MOTHER, SHEK IS THE CHOICE ONE OF HER THAT BARE HER. THE DAUGHTERS SAW HER, AND BLESSEDI? HER; YEA, THE QUEENS AND THE CONCUBINES, AND THEY PRAISED HER.TM# 10 WHO IS SHE THAT LOOKETH FORTH AS THE MORNING, FAIR AS THE MOON, CLEAR ASA/ THE SUN, AND TERRIBLE AS AN ARMY WITH BANNERS?MM# 11 I WENT DOWN INTO THE GARDEN OF NUTS TO SEE THE FRUITS OF THE VALLEY, ANDR@ TO SEE WHETHER THE VINE FLOURISHED AND THE POMEGRANATES BUDDED.I# 12 OR EVER I WAS AWARE, MY SOUL MADE ME LIKE THE CHARIOTS OF AMMINADIB.FM# 13 RETURN, RETURN, O SHULAMITE; RETURN, RETURN, THAT WE MAY LOOK UPON THEE.RI WHAT WILL YE SEE IN THE SHULAMITE? AS IT WERE THE COMPANY OF TWO ARMIES.H = CHAPTER 7 L# 1 HOW BEAUTIFUL ARE THY FEET WITH SHOES, O PRINCES DAUGHTER! THE JOINTS OFH THY THIGHS ARE LIKE JEWELS, THE WORK OF THE HANDS OF A CUNNING WORKMAN.L# 2 THY NAVEL IS LIKE A ROUND GOBLET, WHICH WANTETH NOT LIQUOR: THY BELLY IS- LIKE AN HEAP OF WHEAT SET ABOUT WITH LILIES.V;# 3 THY TWO BREASTS ARE LIKE TWO YOUNG ROES THAT ARE TWINS.BE# 4 THY NECK IS AS A TOWER OF IVORY; THINE EYES LIKE THE FISHPOOLS INUN HESHBON, BY THE GATE OF BATHRABBIM: THY NOSE IS AS THE TOWER OF LEBANON WHICH LOOKETH TOWARD DAMASCUS.OH# 5 THINE HEAD UPON THEE IS LIKE CARMEL, AND THE HAIR OF THINE HEAD LIKE+ PURPLE; THE KING IS HELD IN THE GALLERIES.N@# 6 HOW FAIR AND HOW PLEASANT ART THOU, O LOVE, FOR DELIGHTS! ITK# 7 THIS THY STATURE IS LIKE TO A PALM TREE, AND THY BREASTS TO CLUSTERS OFI GRAPES.I# 8 I SAID, I WILL GO UP TO THE PALM TREE, I WILL TAKE HOLD OF THE BOUGHS N THEREOF: NOW ALSO THY BREASTS SHALL BE AS CLUSTERS OF THE VINE, AND THE SMELL OF THY NOSE LIKE APPLES; K# 9 AND THE ROOF OF THY MOUTH LIKE THE BEST WINE FOR MY BELOVED, THAT GOETHHB DOWN SWEETLY, CAUSING THE LIPS OF THOSE THAT ARE ASLEEP TO SPEAK.3# 10 I AM MY BELOVEDS, AND HIS DESIRE IS TOWARD ME.EJ# 11 COME, MY BELOVED, LET US GO FORTH INTO THE FIELD; LET US LODGE IN THE VILLAGES.K# 12 LET US GET UP EARLY TO THE VINEYARDS; LET US SEE IF THE VINE FLOURISH,MN WHETHER THE TENDER GRAPE APPEAR, AND THE POMEGRANATES BUD FORTH: THERE WILL I GIVE THEE MY LOVES.L# 13 THE MANDRAKES GIVE A SMELL, AND AT OUR GATES ARE ALL MANNER OF PLEASANTB FRUITS, NEW AND OLD, WHICH I HAVE LAID UP FOR THEE, O MY BELOVED. = CHAPTER 8 N# 1 O THAT THOU WERT AS MY BROTHER, THAT SUCKED THE BREASTS OF MY MOTHER! WHENN I SHOULD FIND THEE WITHOUT, I WOULD KISS THEE; YEA, I SHOULD NOT BE DESPISED.F# 2 I WOULD LEAD THEE, AND BRING THEE INTO MY MOTHERS HOUSE, WHO WOULDK INSTRUCT ME: I WOULD CAUSE THEE TO DRINK OF SPICED WINE OF THE JUICE OF MYD POMEGRANATE.IL# 3 HIS LEFT HAND SHOULD BE UNDER MY HEAD, AND HIS RIGHT HAND SHOULD EMBRACE ME.M# 4 I CHARGE YOU, O DAUGHTERS OF JERUSALEM, THAT YE STIR NOT UP, NOR AWAKE MY  LOVE, UNTIL HE PLEASE. M# 5 WHO IS THIS THAT COMETH UP FROM THE WILDERNESS, LEANING UPON HER BELOVED?IL I RAISED THEE UP UNDER THE APPLE TREE: THERE THY MOTHER BROUGHT THEE FORTH:- THERE SHE BROUGHT THEE FORTH THAT BARE THEE.OL# 6 SET ME AS A SEAL UPON THINE HEART, AS A SEAL UPON THINE ARM: FOR LOVE ISM STRONG AS DEATH; JEALOUSY IS CRUEL AS THE GRAVE: THE COALS THEREOF ARE COALSA+ OF FIRE, WHICH HATH A MOST VEHEMENT FLAME. M# 7 MANY WATERS CANNOT QUENCH LOVE, NEITHER CAN THE FLOODS00t9u9D%5%T6%! ! DROWN IT: IF A MANLH WOULD GIVE ALL THE SUBSTANCE OF HIS HOUSE FOR LOVE, IT WOULD UTTERLY BE CONTEMNED.NJ# 8 WE HAVE A LITTLE SISTER, AND SHE HATH NO BREASTS: WHAT SHALL WE DO FOR4 OUR SISTER IN THE DAY WHEN SHE SHALL BE SPOKEN FOR?K# 9 IF SHE BE A WALL, WE WILL BUILD UPON HER A PALACE OF SILVER: AND IF SHEF5 BE A DOOR, WE WILL INCLOSE HER WITH BOARDS OF CEDAR.GK# 10 I AM A WALL, AND MY BREASTS LIKE TOWERS: THEN WAS I IN HIS EYES AS ONEE THAT FOUND FAVOUR.AF# 11 SOLOMON HAD A VINEYARD AT BAALHAMON; HE LET OUT THE VINEYARD UNTOK KEEPERS; EVERY ONE FOR THE FRUIT THEREOF WAS TO BRING A THOUSAND PIECES OF SILVER.K# 12 MY VINEYARD, WHICH IS MINE, IS BEFORE ME: THOU, O SOLOMON, MUST HAVE A = THOUSAND, AND THOSE THAT KEEP THE FRUIT THEREOF TWO HUNDRED. L# 13 THOU THAT DWELLEST IN THE GARDENS, THE COMPANIONS HEARKEN TO THY VOICE: CAUSE ME TO HEAR IT.FI# 14 MAKE HASTE, MY BELOVED, AND BE THOU LIKE TO A ROE OR TO A YOUNG HARTY UPON THE MOUNTAINS OF SPICES.F# 11 SOLOMON HAD A VINEYARD AT BAALHAM* BOOK23 ISAIAH = CHAPTER 1 K# 1 THE VISION OF ISAIAH THE SON OF AMOZ, WHICH HE SAW CONCERNING JUDAH ANDM JERUSALEM IN THE DAYS OF UZZIAH, JOTHAM, AHAZ, AND HEZEKIAH, KINGS OF JUDAH.L# 2 HEAR, O HEAVENS, AND GIVE EAR, O EARTH: FOR THE LORD HATH SPOKEN, I HAVEF NOURISHED AND BROUGHT UP CHILDREN, AND THEY HAVE REBELLED AGAINST ME.K# 3 THE OX KNOWETH HIS OWNER, AND THE ASS HIS MASTERS CRIB: BUT ISRAEL DOTH' NOT KNOW, MY PEOPLE DOTH NOT CONSIDER.H# 4 AH SINFUL NATION, A PEOPLE LADEN WITH INIQUITY, A SEED OF EVILDOERS,N CHILDREN THAT ARE CORRUPTERS: THEY HAVE FORSAKEN THE LORD, THEY HAVE PROVOKED@ THE HOLY ONE OF ISRAEL UNTO ANGER, THEY ARE GONE AWAY BACKWARD.I# 5 WHY SHOULD YE BE STRICKEN ANY MORE? YE WILL REVOLT MORE AND MORE: THE / WHOLE HEAD IS SICK, AND THE WHOLE HEART FAINT.UM# 6 FROM THE SOLE OF THE FOOT EVEN UNTO THE HEAD THERE IS NO SOUNDNESS IN IT;NJ BUT WOUNDS, AND BRUISES, AND PUTRIFYING SORES: THEY HAVE NOT BEEN CLOSED,3 NEITHER BOUND UP, NEITHER MOLLIFIED WITH OINTMENT. J# 7 YOUR COUNTRY IS DESOLATE, YOUR CITIES ARE BURNED WITH FIRE: YOUR LAND,K STRANGERS DEVOUR IT IN YOUR PRESENCE, AND IT IS DESOLATE, AS OVERTHROWN BYA STRANGERS.BK# 8 AND THE DAUGHTER OF ZION IS LEFT AS A COTTAGE IN A VINEYARD, AS A LODGEE. IN A GARDEN OF CUCUMBERS, AS A BESIEGED CITY.M# 9 EXCEPT THE LORD OF HOSTS HAD LEFT UNTO US A VERY SMALL REMNANT, WE SHOULDS@ HAVE BEEN AS SODOM, AND WE SHOULD HAVE BEEN LIKE UNTO GOMORRAH.L# 10 HEAR THE WORD OF THE LORD, YE RULERS OF SODOM; GIVE EAR UNTO THE LAW OF OUR GOD, YE PEOPLE OF GOMORRAH.K# 11 TO WHAT PURPOSE IS THE MULTITUDE OF YOUR SACRIFICES UNTO ME? SAITH THEAK LORD: I AM FULL OF THE BURNT OFFERINGS OF RAMS, AND THE FAT OF FED BEASTS;II AND I DELIGHT NOT IN THE BLOOD OF BULLOCKS, OR OF LAMBS, OR OF HE GOATS.RK# 12 WHEN YE COME TO APPEAR BEFORE ME, WHO HATH REQUIRED THIS AT YOUR HAND,S TO TREAD MY COURTS?M# 13 BRING NO MORE VAIN OBLATIONS; INCENSE IS AN ABOMINATION UNTO ME; THE NEW I MOONS AND SABBATHS, THE CALLING OF ASSEMBLIES, I CANNOT AWAY WITH; IT ISD# INIQUITY, EVEN THE SOLEMN MEETING.TH# 14 YOUR NEW MOONS AND YOUR APPOINTED FEASTS MY SOUL HATETH: THEY ARE A* TROUBLE UNTO ME; I AM WEARY TO BEAR THEM.I# 15 AND WHEN YE SPREAD FORTH YOUR HANDS, I WILL HIDE MINE EYES FROM YOU:FH YEA, WHEN YE MAKE MANY PRAYERS, I WILL NOT HEAR: YOUR HANDS ARE FULL OF BLOOD.TK# 16 WASH YOU, MAKE YOU CLEAN; PUT AWAY THE EVIL OF YOUR DOINGS FROM BEFOREI MINE EYES; CEASE TO DO EVIL;EF# 17 LEARN TO DO WELL; SEEK JUDGMENT, RELIEVE THE OPPRESSED, JUDGE THE! FATHERLESS, PLEAD FOR THE WIDOW. K# 18 COME NOW, AND LET US REASON TOGETHER, SAITH THE LORD: THOUGH YOUR SINSHG BE AS SCARLET, THEY SHALL BE AS WHITE AS SNOW; THOUGH THEY BE RED LIKEE CRIMSON, THEY SHALL BE AS WOOL.F# 19 IF YE BE WILLING AND OBEDIENT, YE SHALL EAT THE GOOD OF THE LAND:M# 20 BUT IF YE REFUSE AND REBEL, YE SHALL BE DEVOURED WITH THE SWORD: FOR THEH" MOUTH OF THE LORD HATH SPOKEN IT.H# 21 HOW IS THE FAITHFUL CITY BECOME AN HARLOT! IT WAS FULL OF JUDGMENT;/ RIGHTEOUSNESS LODGED IN IT; BUT00u98<%X>%+%O-%TADATADATA NOW MURDERERS.F;# 22 THY SILVER IS BECOME DROSS, THY WINE MIXED WITH WATER:IL# 23 THY PRINCES ARE REBELLIOUS, AND COMPANIONS OF THIEVES: EVERY ONE LOVETHK GIFTS, AND FOLLOWETH AFTER REWARDS: THEY JUDGE NOT THE FATHERLESS, NEITHERI, DOTH THE CAUSE OF THE WIDOW COME UNTO THEM.K# 24 THEREFORE SAITH THE LORD, THE LORD OF HOSTS, THE MIGHTY ONE OF ISRAEL,DG AH, I WILL EASE ME OF MINE ADVERSARIES, AND AVENGE ME OF MINE ENEMIES:CL# 25 AND I WILL TURN MY HAND UPON THEE, AND PURELY PURGE AWAY THY DROSS, AND TAKE AWAY ALL THY TIN:TM# 26 AND I WILL RESTORE THY JUDGES AS AT THE FIRST, AND THY COUNSELLORS AS ATBN THE BEGINNING: AFTERWARD THOU SHALT BE CALLED, THE CITY OF RIGHTEOUSNESS, THE FAITHFUL CITY.U@# 27 ZION SHALL BE REDEEMED WITH JUDGMENT, AND HER CONVERTS WITH RIGHTEOUSNESS.4I# 28 AND THE DESTRUCTION OF THE TRANSGRESSORS AND OF THE SINNERS SHALL BEA< TOGETHER, AND THEY THAT FORSAKE THE LORD SHALL BE CONSUMED.H# 29 FOR THEY SHALL BE ASHAMED OF THE OAKS WHICH YE HAVE DESIRED, AND YE9 SHALL BE CONFOUNDED FOR THE GARDENS THAT YE HAVE CHOSEN.TK# 30 FOR YE SHALL BE AS AN OAK WHOSE LEAF FADETH, AND AS A GARDEN THAT HATHF NO WATER.M# 31 AND THE STRONG SHALL BE AS TOW, AND THE MAKER OF IT AS A SPARK, AND THEYH6 SHALL BOTH BURN TOGETHER, AND NONE SHALL QUENCH THEM. = CHAPTER 2 L# 1 THE WORD THAT ISAIAH THE SON OF AMOZ SAW CONCERNING JUDAH AND JERUSALEM.H# 2 AND IT SHALL COME TO PASS IN THE LAST DAYS, THAT THE MOUNTAIN OF THEK LORDS HOUSE SHALL BE ESTABLISHED IN THE TOP OF THE MOUNTAINS, AND SHALL BEU= EXALTED ABOVE THE HILLS; AND ALL NATIONS SHALL FLOW UNTO IT.EF# 3 AND MANY PEOPLE SHALL GO AND SAY, COME YE, AND LET US GO UP TO THEM MOUNTAIN OF THE LORD, TO THE HOUSE OF THE GOD OF JACOB; AND HE WILL TEACH USSK OF HIS WAYS, AND WE WILL WALK IN HIS PATHS: FOR OUT OF ZION SHALL GO FORTHO2 THE LAW, AND THE WORD OF THE LORD FROM JERUSALEM.K# 4 AND HE SHALL JUDGE AMONG THE NATIONS, AND SHALL REBUKE MANY PEOPLE: ANDTD THEY SHALL BEAT THEIR SWORDS INTO PLOWSHARES, AND THEIR SPEARS INTOK PRUNINGHOOKS: NATION SHALL NOT LIFT UP SWORD AGAINST NATION, NEITHER SHALL  THEY LEARN WAR ANY MORE.HH# 5 O HOUSE OF JACOB, COME YE, AND LET US WALK IN THE LIGHT OF THE LORD.L# 6 THEREFORE THOU HAST FORSAKEN THY PEOPLE THE HOUSE OF JACOB, BECAUSE THEYL BE REPLENISHED FROM THE EAST, AND ARE SOOTHSAYERS LIKE THE PHILISTINES, AND5 THEY PLEASE THEMSELVES IN THE CHILDREN OF STRANGERS.OK# 7 THEIR LAND ALSO IS FULL OF SILVER AND GOLD, NEITHER IS THERE ANY END OFOM THEIR TREASURES; THEIR LAND IS ALSO FULL OF HORSES, NEITHER IS THERE ANY ENDT OF THEIR CHARIOTS:IH# 8 THEIR LAND ALSO IS FULL OF IDOLS; THEY WORSHIP THE WORK OF THEIR OWN/ HANDS, THAT WHICH THEIR OWN FINGERS HAVE MADE: E# 9 AND THE MEAN MAN BOWETH DOWN, AND THE GREAT MAN HUMBLETH HIMSELF:H THEREFORE FORGIVE THEM NOT.J# 10 ENTER INTO THE ROCK, AND HIDE THEE IN THE DUST, FOR FEAR OF THE LORD," AND FOR THE GLORY OF HIS MAJESTY.H# 11 THE LOFTY LOOKS OF MAN SHALL BE HUMBLED, AND THE HAUGHTINESS OF MENF SHALL BE BOWED DOWN, AND THE LORD ALONE SHALL BE EXALTED IN THAT DAY.K# 12 FOR THE DAY OF THE LORD OF HOSTS SHALL BE UPON EVERY ONE THAT IS PROUDHN AND LOFTY, AND UPON EVERY ONE THAT IS LIFTED UP; AND HE SHALL BE BROUGHT LOW:I# 13 AND UPON ALL THE CEDARS OF LEBANON, THAT ARE HIGH AND LIFTED UP, ANDO UPON ALL THE OAKS OF BASHAN,RL# 14 AND UPON ALL THE HIGH MOUNTAINS, AND UPON ALL THE HILLS THAT ARE LIFTED UP,;# 15 AND UPON EVERY HIGH TOWER, AND UPON EVERY FENCED WALL,DH# 16 AND UPON ALL THE SHIPS OF TARSHISH, AND UPON ALL PLEASANT PICTURES.M# 17 AND THE LOFTINESS OF MAN SHALL BE BOWED DOWN, AND THE HAUGHTINESS OF MEN D SHALL BE MADE LOW: AND THE LORD ALONE SHALL BE EXALTED IN THAT DAY.,# 18 AND THE IDOLS HE SHALL UTTERLY ABOLISH.M# 19 AND THEY SHALL GO INTO THE HOLES OF THE ROCKS, AND INTO THE CAVES OF THE G EARTH, FOR FEAR OF THE LORD, AND FOR THE GLORY OF HIS MAJESTY, WHEN HEH% ARISETH TO SHAKE TERRIBLY THE EARTH.OM# 20 IN THAT DAY A MAN SHALL CAST HIS IDOLS OF SILVER, AND HIS IDOLS OF GOLD,FI WHICH THEY MADE EACH ONE FOR HIMSELF TO WORSHIP00u 99D%5%T6%! !, TO THE MOLES AND TO THEH BATS;H# 21 TO GO INTO THE CLEFTS OF THE ROCKS, AND INTO THE TOPS OF THE RAGGEDG ROCKS, FOR FEAR OF THE LORD, AND FOR THE GLORY OF HIS MAJESTY, WHEN HEB% ARISETH TO SHAKE TERRIBLY THE EARTH. M# 22 CEASE YE FROM MAN, WHOSE BREATH IS IN HIS NOSTRILS: FOR WHEREIN IS HE TON BE ACCOUNTED OF ? = CHAPTER 3 K# 1 FOR, BEHOLD, THE LORD, THE LORD OF HOSTS, DOTH TAKE AWAY FROM JERUSALEMCN AND FROM JUDAH THE STAY AND THE STAFF, THE WHOLE STAY OF BREAD, AND THE WHOLE STAY OF WATER.PK# 2 THE MIGHTY MAN, AND THE MAN OF WAR, THE JUDGE, AND THE PROPHET, AND THEA PRUDENT, AND THE ANCIENT,M# 3 THE CAPTAIN OF FIFTY, AND THE HONOURABLE MAN, AND THE COUNSELLOR, AND THEA, CUNNING ARTIFICER, AND THE ELOQUENT ORATOR.K# 4 AND I WILL GIVE CHILDREN TO BE THEIR PRINCES, AND BABES SHALL RULE OVERC THEM.M# 5 AND THE PEOPLE SHALL BE OPPRESSED, EVERY ONE BY ANOTHER, AND EVERY ONE BYYK HIS NEIGHBOUR: THE CHILD SHALL BEHAVE HIMSELF PROUDLY AGAINST THE ANCIENT,R% AND THE BASE AGAINST THE HONOURABLE. I# 6 WHEN A MAN SHALL TAKE HOLD OF HIS BROTHER OF THE HOUSE OF HIS FATHER,N SAYING, THOU HAST CLOTHING, BE THOU OUR RULER, AND LET THIS RUIN BE UNDER THY HAND:J# 7 IN THAT DAY SHALL HE SWEAR, SAYING, I WILL NOT BE AN HEALER; FOR IN MYH HOUSE IS NEITHER BREAD NOR CLOTHING: MAKE ME NOT A RULER OF THE PEOPLE.J# 8 FOR JERUSALEM IS RUINED, AND JUDAH IS FALLEN: BECAUSE THEIR TONGUE ANDE THEIR DOINGS ARE AGAINST THE LORD, TO PROVOKE THE EYES OF HIS GLORY.EM# 9 THE SHEW OF THEIR COUNTENANCE DOTH WITNESS AGAINST THEM; AND THEY DECLAREOI THEIR SIN AS SODOM, THEY HIDE IT NOT. WOE UNTO THEIR SOUL! FOR THEY HAVE, REWARDED EVIL UNTO THEMSELVES.RL# 10 SAY YE TO THE RIGHTEOUS, THAT IT SHALL BE WELL WITH HIM: FOR THEY SHALL EAT THE FRUIT OF THEIR DOINGS. I# 11 WOE UNTO THE WICKED! IT SHALL BE ILL WITH HIM: FOR THE REWARD OF HISU HANDS SHALL BE GIVEN HIM.I# 12 AS FOR MY PEOPLE, CHILDREN ARE THEIR OPPRESSORS, AND WOMEN RULE OVERPK THEM. O MY PEOPLE, THEY WHICH LEAD THEE CAUSE THEE TO ERR, AND DESTROY THES WAY OF THY PATHS.E# 13 THE LORD STANDETH UP TO PLEAD, AND STANDETH TO JUDGE THE PEOPLE.LK# 14 THE LORD WILL ENTER INTO JUDGMENT WITH THE ANCIENTS OF HIS PEOPLE, ANDON THE PRINCES THEREOF: FOR YE HAVE EATEN UP THE VINEYARD; THE SPOIL OF THE POOR IS IN YOUR HOUSES.HJ# 15 WHAT MEAN YE THAT YE BEAT MY PEOPLE TO PIECES, AND GRIND THE FACES OF' THE POOR? SAITH THE LORD GOD OF HOSTS.EL# 16 MOREOVER THE LORD SAITH, BECAUSE THE DAUGHTERS OF ZION ARE HAUGHTY, ANDM WALK WITH STRETCHED FORTH NECKS AND WANTON EYES, WALKING AND MINCING AS THEY + GO, AND MAKING A TINKLING WITH THEIR FEET:HK# 17 THEREFORE THE LORD WILL SMITE WITH A SCAB THE CROWN OF THE HEAD OF THEEB DAUGHTERS OF ZION, AND THE LORD WILL DISCOVER THEIR SECRET PARTS.F# 18 IN THAT DAY THE LORD WILL TAKE AWAY THE BRAVERY OF THEIR TINKLINGL ORNAMENTS ABOUT THEIR FEET, AND THEIR CAULS, AND THEIR ROUND TIRES LIKE THE MOON,5# 19 THE CHAINS, AND THE BRACELETS, AND THE MUFFLERS,RK# 20 THE BONNETS, AND THE ORNAMENTS OF THE LEGS, AND THE HEADBANDS, AND THE  TABLETS, AND THE EARRINGS, # 21 THE RINGS, AND NOSE JEWELS,K# 22 THE CHANGEABLE SUITS OF APPAREL, AND THE MANTLES, AND THE WIMPLES, ANDE THE CRISPING PINS,SC# 23 THE GLASSES, AND THE FINE LINEN, AND THE HOODS, AND THE VAILS.TJ# 24 AND IT SHALL COME TO PASS, THAT INSTEAD OF SWEET SMELL THERE SHALL BEN STINK; AND INSTEAD OF A GIRDLE A RENT; AND INSTEAD OF WELL SET HAIR BALDNESS;J AND INSTEAD OF A STOMACHER A GIRDING OF SACKCLOTH; AND BURNING INSTEAD OF BEAUTY.@# 25 THY MEN SHALL FALL BY THE SWORD, AND THY MIGHTY IN THE WAR.K# 26 AND HER GATES SHALL LAMENT AND MOURN; AND SHE BEING DESOLATE SHALL SIT  UPON THE GROUND.E = CHAPTER 4 K# 1 AND IN THAT DAY SEVEN WOMEN SHALL TAKE HOLD OF ONE MAN, SAYING, WE WILLAJ EAT OUR OWN BREAD, AND WEAR OUR OWN APPAREL: ONLY LET US BE CALLED BY THY! NAME, TO TAKE AWAY OUR REPROACH. K# 2 IN THAT DAY SHALL THE BRANCH OF THE LORD BE BEAUTIFUL AND GLORIOUS, AND G THE FRUIT OF THE EARTH SHALL BE EXCELLENT AND COMELY FOR THEM THAT ARET ESCAPED OF ISRA00u(98<%X>%+%O-%TADATADATAEL.TH# 3 AND IT SHALL COME TO PASS, THAT HE THAT IS LEFT IN ZION, AND HE THATM REMAINETH IN JERUSALEM, SHALL BE CALLED HOLY, EVEN EVERY ONE THAT IS WRITTEN  AMONG THE LIVING IN JERUSALEM: L# 4 WHEN THE LORD SHALL HAVE WASHED AWAY THE FILTH OF THE DAUGHTERS OF ZION,K AND SHALL HAVE PURGED THE BLOOD OF JERUSALEM FROM THE MIDST THEREOF BY THE 2 SPIRIT OF JUDGMENT, AND BY THE SPIRIT OF BURNING.I# 5 AND THE LORD WILL CREATE UPON EVERY DWELLING PLACE OF MOUNT ZION, AND L UPON HER ASSEMBLIES, A CLOUD AND SMOKE BY DAY, AND THE SHINING OF A FLAMING: FIRE BY NIGHT: FOR UPON ALL THE GLORY SHALL BE A DEFENCE.I# 6 AND THERE SHALL BE A TABERNACLE FOR A SHADOW IN THE DAY TIME FROM THE L HEAT, AND FOR A PLACE OF REFUGE, AND FOR A COVERT FROM STORM AND FROM RAIN. = CHAPTER 5 G# 1 NOW WILL I SING TO MY WELLBELOVED A SONG OF MY BELOVED TOUCHING HIS B VINEYARD. MY WELLBELOVED HATH A VINEYARD IN A VERY FRUITFUL HILL:I# 2 AND HE FENCED IT, AND GATHERED OUT THE STONES THEREOF, AND PLANTED IT N WITH THE CHOICEST VINE, AND BUILT A TOWER IN THE MIDST OF IT, AND ALSO MADE AK WINEPRESS THEREIN: AND HE LOOKED THAT IT SHOULD BRING FORTH GRAPES, AND ITR BROUGHT FORTH WILD GRAPES. M# 3 AND NOW, O INHABITANTS OF JERUSALEM, AND MEN OF JUDAH, JUDGE, I PRAY YOU,N BETWIXT ME AND MY VINEYARD.J# 4 WHAT COULD HAVE BEEN DONE MORE TO MY VINEYARD, THAT I HAVE NOT DONE INK IT? WHEREFORE, WHEN I LOOKED THAT IT SHOULD BRING FORTH GRAPES, BROUGHT ITN FORTH WILD GRAPES?OM# 5 AND NOW GO TO; I WILL TELL YOU WHAT I WILL DO TO MY VINEYARD: I WILL TAKEWJ AWAY THE HEDGE THEREOF, AND IT SHALL BE EATEN UP; AND BREAK DOWN THE WALL' THEREOF, AND IT SHALL BE TRODDEN DOWN:J# 6 AND I WILL LAY IT WASTE: IT SHALL NOT BE PRUNED, NOR DIGGED; BUT THEREJ SHALL COME UP BRIERS AND THORNS: I WILL ALSO COMMAND THE CLOUDS THAT THEY RAIN NO RAIN UPON IT.M# 7 FOR THE VINEYARD OF THE LORD OF HOSTS IS THE HOUSE OF ISRAEL, AND THE MENHD OF JUDAH HIS PLEASANT PLANT: AND HE LOOKED FOR JUDGMENT, BUT BEHOLD1 OPPRESSION; FOR RIGHTEOUSNESS, BUT BEHOLD A CRY.AI# 8 WOE UNTO THEM THAT JOIN HOUSE TO HOUSE, THAT LAY FIELD TO FIELD, TILLEL THERE BE NO PLACE, THAT THEY MAY BE PLACED ALONE IN THE MIDST OF THE EARTH!H# 9 IN MINE EARS SAID THE LORD OF HOSTS, OF A TRUTH MANY HOUSES SHALL BE3 DESOLATE, EVEN GREAT AND FAIR, WITHOUT INHABITANT. H# 10 YEA, TEN ACRES OF VINEYARD SHALL YIELD ONE BATH, AND THE SEED OF AN HOMER SHALL YIELD AN EPHAH.J# 11 WOE UNTO THEM THAT RISE UP EARLY IN THE MORNING, THAT THEY MAY FOLLOWA STRONG DRINK; THAT CONTINUE UNTIL NIGHT, TILL WINE INFLAME THEM!EM# 12 AND THE HARP, AND THE VIOL, THE TABRET, AND PIPE, AND WINE, ARE IN THEIR G FEASTS: BUT THEY REGARD NOT THE WORK OF THE LORD, NEITHER CONSIDER THES OPERATION OF HIS HANDS.F# 13 THEREFORE MY PEOPLE ARE GONE INTO CAPTIVITY, BECAUSE THEY HAVE NOL KNOWLEDGE: AND THEIR HONOURABLE MEN ARE FAMISHED, AND THEIR MULTITUDE DRIED UP WITH THIRST.G# 14 THEREFORE HELL HATH ENLARGED HERSELF, AND OPENED HER MOUTH WITHOUTGK MEASURE: AND THEIR GLORY, AND THEIR MULTITUDE, AND THEIR POMP, AND HE THATN" REJOICETH, SHALL DESCEND INTO IT.H# 15 AND THE MEAN MAN SHALL BE BROUGHT DOWN, AND THE MIGHTY MAN SHALL BE5 HUMBLED, AND THE EYES OF THE LOFTY SHALL BE HUMBLED:SM# 16 BUT THE LORD OF HOSTS SHALL BE EXALTED IN JUDGMENT, AND GOD THAT IS HOLYE& SHALL BE SANCTIFIED IN RIGHTEOUSNESS.J# 17 THEN SHALL THE LAMBS FEED AFTER THEIR MANNER, AND THE WASTE PLACES OF" THE FAT ONES SHALL STRANGERS EAT.I# 18 WOE UNTO THEM THAT DRAW INIQUITY WITH CORDS OF VANITY, AND SIN AS ITM WERE WITH A CART ROPE: K# 19 THAT SAY, LET HIM MAKE SPEED, AND HASTEN HIS WORK, THAT WE MAY SEE IT: N AND LET THE COUNSEL OF THE HOLY ONE OF ISRAEL DRAW NIGH AND COME, THAT WE MAY KNOW IT!HL# 20 WOE UNTO THEM THAT CALL EVIL GOOD, AND GOOD EVIL; THAT PUT DARKNESS FORH LIGHT, AND LIGHT FOR DARKNESS; THAT PUT BITTER FOR SWEET, AND SWEET FOR BITTER!L# 21 WOE UNTO THEM THAT ARE WISE IN THEIR OWN EYES, AND PRUDENT IN THEIR OWN SIGHT!EH# 22 WOE UNTO THEM THAT ARE MIGHTY TO DRINK WINE, AND MEN OF STRENGTH TO MINGLE STRONG DRINK00u099D%5%T6%! !:9L# 23 WHICH JUSTIFY THE WICKED FOR REWARD, AND TAKE AWAY THE RIGHTEOUSNESS OF THE RIGHTEOUS FROM HIM!M# 24 THEREFORE AS THE FIRE DEVOURETH THE STUBBLE, AND THE FLAME CONSUMETH THEMN CHAFF, SO THEIR ROOT SHALL BE AS ROTTENNESS, AND THEIR BLOSSOM SHALL GO UP ASM DUST: BECAUSE THEY HAVE CAST AWAY THE LAW OF THE LORD OF HOSTS, AND DESPISEDH$ THE WORD OF THE HOLY ONE OF ISRAEL.J# 25 THEREFORE IS THE ANGER OF THE LORD KINDLED AGAINST HIS PEOPLE, AND HEK HATH STRETCHED FORTH HIS HAND AGAINST THEM, AND HATH SMITTEN THEM: AND THEEM HILLS DID TREMBLE, AND THEIR CARCASES WERE TORN IN THE MIDST OF THE STREETS.!I FOR ALL THIS HIS ANGER IS NOT TURNED AWAY, BUT HIS HAND IS STRETCHED OUT  STILL.AI# 26 AND HE WILL LIFT UP AN ENSIGN TO THE NATIONS FROM FAR, AND WILL HISSM UNTO THEM FROM THE END OF THE EARTH: AND, BEHOLD, THEY SHALL COME WITH SPEED SWIFTLY:FG# 27 NONE SHALL BE WEARY NOR STUMBLE AMONG THEM; NONE SHALL SLUMBER NOR M SLEEP; NEITHER SHALL THE GIRDLE OF THEIR LOINS BE LOOSED, NOR THE LATCHET OFT THEIR SHOES BE BROKEN:H# 28 WHOSE ARROWS ARE SHARP, AND ALL THEIR BOWS BENT, THEIR HORSES HOOFS@ SHALL BE COUNTED LIKE FLINT, AND THEIR WHEELS LIKE A WHIRLWIND:J# 29 THEIR ROARING SHALL BE LIKE A LION, THEY SHALL ROAR LIKE YOUNG LIONS:N YEA, THEY SHALL ROAR, AND LAY HOLD OF THE PREY, AND SHALL CARRY IT AWAY SAFE, AND NONE SHALL DELIVER IT.II# 30 AND IN THAT DAY THEY SHALL ROAR AGAINST THEM LIKE THE ROARING OF THE N SEA: AND IF ONE LOOK UNTO THE LAND, BEHOLD DARKNESS AND SORROW, AND THE LIGHT$ IS DARKENED IN THE HEAVENS THEREOF. = CHAPTER 6 H# 1 IN THE YEAR THAT KING UZZIAH DIED I SAW ALSO THE LORD SITTING UPON A= THRONE, HIGH AND LIFTED UP, AND HIS TRAIN FILLED THE TEMPLE.GG# 2 ABOVE IT STOOD THE SERAPHIMS: EACH ONE HAD SIX WINGS; WITH TWAIN HELL COVERED HIS FACE, AND WITH TWAIN HE COVERED HIS FEET, AND WITH TWAIN HE DID FLY.EJ# 3 AND ONE CRIED UNTO ANOTHER, AND SAID, HOLY, HOLY, HOLY, IS THE LORD OF- HOSTS: THE WHOLE EARTH IS FULL OF HIS GLORY.HK# 4 AND THE POSTS OF THE DOOR MOVED AT THE VOICE OF HIM THAT CRIED, AND THE HOUSE WAS FILLED WITH SMOKE.HJ# 5 THEN SAID I, WOE IS ME! FOR I AM UNDONE; BECAUSE I AM A MAN OF UNCLEANJ LIPS, AND I DWELL IN THE MIDST OF A PEOPLE OF UNCLEAN LIPS: FOR MINE EYES' HAVE SEEN THE KING, THE LORD OF HOSTS.K# 6 THEN FLEW ONE OF THE SERAPHIMS UNTO ME, HAVING A LIVE COAL IN HIS HAND,6 WHICH HE HAD TAKEN WITH THE TONGS FROM OFF THE ALTAR:K# 7 AND HE LAID IT UPON MY MOUTH, AND SAID, LO, THIS HATH TOUCHED THY LIPS; 6 AND THINE INIQUITY IS TAKEN AWAY, AND THY SIN PURGED.J# 8 ALSO I HEARD THE VOICE OF THE LORD, SAYING, WHOM SHALL I SEND, AND WHO1 WILL GO FOR US? THEN SAID I, HERE AM I; SEND ME.I# 9 AND HE SAID, GO, AND TELL THIS PEOPLE, HEAR YE INDEED, BUT UNDERSTAND* NOT; AND SEE YE INDEED, BUT PERCEIVE NOT.K# 10 MAKE THE HEART OF THIS PEOPLE FAT, AND MAKE THEIR EARS HEAVY, AND SHUTWI THEIR EYES; LEST THEY SEE WITH THEIR EYES, AND HEAR WITH THEIR EARS, ANDO9 UNDERSTAND WITH THEIR HEART, AND CONVERT, AND BE HEALED.DM# 11 THEN SAID I, LORD, HOW LONG? AND HE ANSWERED, UNTIL THE CITIES BE WASTEDOH WITHOUT INHABITANT, AND THE HOUSES WITHOUT MAN, AND THE LAND BE UTTERLY DESOLATE,K# 12 AND THE LORD HAVE REMOVED MEN FAR AWAY, AND THERE BE A GREAT FORSAKINGU IN THE MIDST OF THE LAND.M# 13 BUT YET IN IT SHALL BE A TENTH, AND IT SHALL RETURN, AND SHALL BE EATEN:EJ AS A TEIL TREE, AND AS AN OAK, WHOSE SUBSTANCE IS IN THEM, WHEN THEY CAST? THEIR LEAVES: SO THE HOLY SEED SHALL BE THE SUBSTANCE THEREOF.R = CHAPTER 7 I# 1 AND IT CAME TO PASS IN THE DAYS OF AHAZ THE SON OF JOTHAM, THE SON OFEJ UZZIAH, KING OF JUDAH, THAT REZIN THE KING OF SYRIA, AND PEKAH THE SON OFJ REMALIAH, KING OF ISRAEL, WENT UP TOWARD JERUSALEM TO WAR AGAINST IT, BUT COULD NOT PREVAIL AGAINST IT.I# 2 AND IT WAS TOLD THE HOUSE OF DAVID, SAYING, SYRIA IS CONFEDERATE WITH L EPHRAIM. AND HIS HEART WAS MOVED, AND THE HEART OF HIS PEOPLE, AS THE TREES% OF THE WOOD ARE MOVED WITH THE WIND.HH# 3 THEN SAID THE LORD UNTO ISAIAH, GO FORTH NOW TO MEET AHAZ, THOU, ANDH SHEARJASHUB THY00u898<%X>%+%O-%TADATADATA SON, AT THE END OF THE CONDUIT OF THE UPPER POOL IN THE HIGHWAY OF THE FULLERS FIELD;C# 4 AND SAY UNTO HIM, TAKE HEED, AND BE QUIET; FEAR NOT, NEITHER BEWK FAINTHEARTED FOR THE TWO TAILS OF THESE SMOKING FIREBRANDS, FOR THE FIERCE 7 ANGER OF REZIN WITH SYRIA, AND OF THE SON OF REMALIAH.AL# 5 BECAUSE SYRIA, EPHRAIM, AND THE SON OF REMALIAH, HAVE TAKEN EVIL COUNSEL AGAINST THEE, SAYING,L# 6 LET US GO UP AGAINST JUDAH, AND VEX IT, AND LET US MAKE A BREACH THEREINC FOR US, AND SET A KING IN THE MIDST OF IT, EVEN THE SON OF TABEAL: I# 7 THUS SAITH THE LORD GOD, IT SHALL NOT STAND, NEITHER SHALL IT COME TOH PASS.M# 8 FOR THE HEAD OF SYRIA IS DAMASCUS, AND THE HEAD OF DAMASCUS IS REZIN; ANDTK WITHIN THREESCORE AND FIVE YEARS SHALL EPHRAIM BE BROKEN, THAT IT BE NOT AT PEOPLE.L# 9 AND THE HEAD OF EPHRAIM IS SAMARIA, AND THE HEAD OF SAMARIA IS REMALIAHSA SON. IF YE WILL NOT BELIEVE, SURELY YE SHALL NOT BE ESTABLISHED. 5# 10 MOREOVER THE LORD SPAKE AGAIN UNTO AHAZ, SAYING,AK# 11 ASK THEE A SIGN OF THE LORD THY GOD; ASK IT EITHER IN THE DEPTH, OR INE THE HEIGHT ABOVE.B# 12 BUT AHAZ SAID, I WILL NOT ASK, NEITHER WILL I TEMPT THE LORD.L# 13 AND HE SAID, HEAR YE NOW, O HOUSE OF DAVID; IS IT A SMALL THING FOR YOU- TO WEARY MEN, BUT WILL YE WEARY MY GOD ALSO?BM# 14 THEREFORE THE LORD HIMSELF SHALL GIVE YOU A SIGN; BEHOLD, A VIRGIN SHALLA< CONCEIVE, AND BEAR A SON, AND SHALL CALL HIS NAME IMMANUEL.L# 15 BUTTER AND HONEY SHALL HE EAT, THAT HE MAY KNOW TO REFUSE THE EVIL, AND CHOOSE THE GOOD.IM# 16 FOR BEFORE THE CHILD SHALL KNOW TO REFUSE THE EVIL, AND CHOOSE THE GOOD,B THE LAND THAT THOU ABHORREST SHALL BE FORSAKEN OF BOTH HER KINGS.F# 17 THE LORD SHALL BRING UPON THEE, AND UPON THY PEOPLE, AND UPON THYK FATHERS HOUSE, DAYS THAT HAVE NOT COME, FROM THE DAY THAT EPHRAIM DEPARTED & FROM JUDAH; EVEN THE KING OF ASSYRIA.L# 18 AND IT SHALL COME TO PASS IN THAT DAY, THAT THE LORD SHALL HISS FOR THEJ FLY THAT IS IN THE UTTERMOST PART OF THE RIVERS OF EGYPT, AND FOR THE BEE THAT IS IN THE LAND OF ASSYRIA.M# 19 AND THEY SHALL COME, AND SHALL REST ALL OF THEM IN THE DESOLATE VALLEYS,HI AND IN THE HOLES OF THE ROCKS, AND UPON ALL THORNS, AND UPON ALL BUSHES. M# 20 IN THE SAME DAY SHALL THE LORD SHAVE WITH A RAZOR THAT IS HIRED, NAMELY,AL BY THEM BEYOND THE RIVER, BY THE KING OF ASSYRIA, THE HEAD, AND THE HAIR OF/ THE FEET: AND IT SHALL ALSO CONSUME THE BEARD.TL# 21 AND IT SHALL COME TO PASS IN THAT DAY, THAT A MAN SHALL NOURISH A YOUNG COW, AND TWO SHEEP;I# 22 AND IT SHALL COME TO PASS, FOR THE ABUNDANCE OF MILK THAT THEY SHALL K GIVE HE SHALL EAT BUTTER: FOR BUTTER AND HONEY SHALL EVERY ONE EAT THAT ISE LEFT IN THE LAND.L# 23 AND IT SHALL COME TO PASS IN THAT DAY, THAT EVERY PLACE SHALL BE, WHEREL THERE WERE A THOUSAND VINES AT A THOUSAND SILVERLINGS, IT SHALL EVEN BE FOR BRIERS AND THORNS.TK# 24 WITH ARROWS AND WITH BOWS SHALL MEN COME THITHER; BECAUSE ALL THE LANDL SHALL BECOME BRIERS AND THORNS.L# 25 AND ON ALL HILLS THAT SHALL BE DIGGED WITH THE MATTOCK, THERE SHALL NOTL COME THITHER THE FEAR OF BRIERS AND THORNS: BUT IT SHALL BE FOR THE SENDING6 FORTH OF OXEN, AND FOR THE TREADING OF LESSER CATTLE. = CHAPTER 8 K# 1 MOREOVER THE LORD SAID UNTO ME, TAKE THEE A GREAT ROLL, AND WRITE IN ITT/ WITH A MANS PEN CONCERNING MAHERSHALALHASHBAZ.NJ# 2 AND I TOOK UNTO ME FAITHFUL WITNESSES TO RECORD, URIAH THE PRIEST, AND" ZECHARIAH THE SON OF JEBERECHIAH.K# 3 AND I WENT UNTO THE PROPHETESS; AND SHE CONCEIVED, AND BARE A SON. THENA7 SAID THE LORD TO ME, CALL HIS NAME MAHERSHALALHASHBAZ.TG# 4 FOR BEFORE THE CHILD SHALL HAVE KNOWLEDGE TO CRY, MY FATHER, AND MYHL MOTHER, THE RICHES OF DAMASCUS AND THE SPOIL OF SAMARIA SHALL BE TAKEN AWAY BEFORE THE KING OF ASSYRIA..# 5 THE LORD SPAKE ALSO UNTO ME AGAIN, SAYING,K# 6 FORASMUCH AS THIS PEOPLE REFUSETH THE WATERS OF SHILOAH THAT GO SOFTLY, ( AND REJOICE IN REZIN AND REMALIAHS SON;K# 7 NOW THEREFORE, BEHOLD, THE LORD BRINGETH UP UPON THEM THE WATERS OF THEIL RIVER, STRONG AND MANY, EVEN THE KING OF ASSYRIA, AND ALL HIS GLORY: AND HE@ S00u@99D%5%T6%! !HALL COME UP OVER ALL HIS CHANNELS, AND GO OVER ALL HIS BANKS:L# 8 AND HE SHALL PASS THROUGH JUDAH; HE SHALL OVERFLOW AND GO OVER, HE SHALLK REACH EVEN TO THE NECK; AND THE STRETCHING OUT OF HIS WINGS SHALL FILL THE ! BREADTH OF THY LAND, O IMMANUEL.IL# 9 ASSOCIATE YOURSELVES, O YE PEOPLE, AND YE SHALL BE BROKEN IN PIECES; ANDN GIVE EAR, ALL YE OF FAR COUNTRIES: GIRD YOURSELVES, AND YE SHALL BE BROKEN IN; PIECES; GIRD YOURSELVES, AND YE SHALL BE BROKEN IN PIECES. L# 10 TAKE COUNSEL TOGETHER, AND IT SHALL COME TO NOUGHT; SPEAK THE WORD, AND( IT SHALL NOT STAND: FOR GOD IS WITH US.M# 11 FOR THE LORD SPAKE THUS TO ME WITH A STRONG HAND, AND INSTRUCTED ME THATN5 I SHOULD NOT WALK IN THE WAY OF THIS PEOPLE, SAYING, L# 12 SAY YE NOT, A CONFEDERACY, TO ALL THEM TO WHOM THIS PEOPLE SHALL SAY, A8 CONFEDERACY; NEITHER FEAR YE THEIR FEAR, NOR BE AFRAID.J# 13 SANCTIFY THE LORD OF HOSTS HIMSELF; AND LET HIM BE YOUR FEAR, AND LET HIM BE YOUR DREAD.LL# 14 AND HE SHALL BE FOR A SANCTUARY; BUT FOR A STONE OF STUMBLING AND FOR AK ROCK OF OFFENCE TO BOTH THE HOUSES OF ISRAEL, FOR A GIN AND FOR A SNARE TOE THE INHABITANTS OF JERUSALEM.G# 15 AND MANY AMONG THEM SHALL STUMBLE, AND FALL, AND BE BROKEN, AND BE  SNARED, AND BE TAKEN.<# 16 BIND UP THE TESTIMONY, SEAL THE LAW AMONG MY DISCIPLES.J# 17 AND I WILL WAIT UPON THE LORD, THAT HIDETH HIS FACE FROM THE HOUSE OF JACOB, AND I WILL LOOK FOR HIM.M# 18 BEHOLD, I AND THE CHILDREN WHOM THE LORD HATH GIVEN ME ARE FOR SIGNS ANDRL FOR WONDERS IN ISRAEL FROM THE LORD OF HOSTS, WHICH DWELLETH IN MOUNT ZION.H# 19 AND WHEN THEY SHALL SAY UNTO YOU, SEEK UNTO THEM THAT HAVE FAMILIARJ SPIRITS, AND UNTO WIZARDS THAT PEEP, AND THAT MUTTER: SHOULD NOT A PEOPLE1 SEEK UNTO THEIR GOD? FOR THE LIVING TO THE DEAD?TI# 20 TO THE LAW AND TO THE TESTIMONY: IF THEY SPEAK NOT ACCORDING TO THISO/ WORD, IT IS BECAUSE THERE IS NO LIGHT IN THEM.BL# 21 AND THEY SHALL PASS THROUGH IT, HARDLY BESTEAD AND HUNGRY: AND IT SHALLN COME TO PASS, THAT WHEN THEY SHALL BE HUNGRY, THEY SHALL FRET THEMSELVES, AND1 CURSE THEIR KING AND THEIR GOD, AND LOOK UPWARD.LI# 22 AND THEY SHALL LOOK UNTO THE EARTH; AND BEHOLD TROUBLE AND DARKNESS,S: DIMNESS OF ANGUISH; AND THEY SHALL BE DRIVEN TO DARKNESS. = CHAPTER 9 N# 1 NEVERTHELESS THE DIMNESS SHALL NOT BE SUCH AS WAS IN HER VEXATION, WHEN ATM THE FIRST HE LIGHTLY AFFLICTED THE LAND OF ZEBULUN AND THE LAND OF NAPHTALI,AL AND AFTERWARD DID MORE GRIEVOUSLY AFFLICT HER BY THE WAY OF THE SEA, BEYOND# JORDAN, IN GALILEE OF THE NATIONS.RI# 2 THE PEOPLE THAT WALKED IN DARKNESS HAVE SEEN A GREAT LIGHT: THEY THATOK DWELL IN THE LAND OF THE SHADOW OF DEATH, UPON THEM HATH THE LIGHT SHINED.AH# 3 THOU HAST MULTIPLIED THE NATION, AND NOT INCREASED THE JOY: THEY JOYJ BEFORE THEE ACCORDING TO THE JOY IN HARVEST, AND AS MEN REJOICE WHEN THEY DIVIDE THE SPOIL.E# 4 FOR THOU HAST BROKEN THE YOKE OF HIS BURDEN, AND THE STAFF OF HISA= SHOULDER, THE ROD OF HIS OPPRESSOR, AS IN THE DAY OF MIDIAN.TH# 5 FOR EVERY BATTLE OF THE WARRIOR IS WITH CONFUSED NOISE, AND GARMENTSB ROLLED IN BLOOD; BUT THIS SHALL BE WITH BURNING AND FUEL OF FIRE.K# 6 FOR UNTO US A CHILD IS BORN, UNTO US A SON IS GIVEN: AND THE GOVERNMENTSD SHALL BE UPON HIS SHOULDER: AND HIS NAME SHALL BE CALLED WONDERFUL,I COUNSELLOR, THE MIGHTY GOD, THE EVERLASTING FATHER, THE PRINCE OF PEACE. K# 7 OF THE INCREASE OF HIS GOVERNMENT AND PEACE THERE SHALL BE NO END, UPON L THE THRONE OF DAVID, AND UPON HIS KINGDOM, TO ORDER IT, AND TO ESTABLISH ITN WITH JUDGMENT AND WITH JUSTICE FROM HENCEFORTH EVEN FOR EVER. THE ZEAL OF THE! LORD OF HOSTS WILL PERFORM THIS.AE# 8 THE LORD SENT A WORD INTO JACOB, AND IT HATH LIGHTED UPON ISRAEL.EE# 9 AND ALL THE PEOPLE SHALL KNOW, EVEN EPHRAIM AND THE INHABITANT OF 7 SAMARIA, THAT SAY IN THE PRIDE AND STOUTNESS OF HEART,EH# 10 THE BRICKS ARE FALLEN DOWN, BUT WE WILL BUILD WITH HEWN STONES: THE= SYCOMORES ARE CUT DOWN, BUT WE WILL CHANGE THEM INTO CEDARS.DJ# 11 THEREFORE THE LORD SHALL SET UP THE ADVERSARIES OF REZIN AGAINST HIM, AND JOIN HIS ENEMIES TOGETHER;NJ# 00uH98<%X>%+%O-%TADATADATA12 THE SYRIANS BEFORE, AND THE PHILISTINES BEHIND; AND THEY SHALL DEVOURK ISRAEL WITH OPEN MOUTH. FOR ALL THIS HIS ANGER IS NOT TURNED AWAY, BUT HISE HAND IS STRETCHED OUT STILL.NK# 13 FOR THE PEOPLE TURNETH NOT UNTO HIM THAT SMITETH THEM, NEITHER DO THEYE SEEK THE LORD OF HOSTS.J# 14 THEREFORE THE LORD WILL CUT OFF FROM ISRAEL HEAD AND TAIL, BRANCH AND RUSH, IN ONE DAY.E# 15 THE ANCIENT AND HONOURABLE, HE IS THE HEAD; AND THE PROPHET THATO TEACHETH LIES, HE IS THE TAIL.IL# 16 FOR THE LEADERS OF THIS PEOPLE CAUSE THEM TO ERR; AND THEY THAT ARE LED OF THEM ARE DESTROYED.EK# 17 THEREFORE THE LORD SHALL HAVE NO JOY IN THEIR YOUNG MEN, NEITHER SHALL M HAVE MERCY ON THEIR FATHERLESS AND WIDOWS: FOR EVERY ONE IS AN HYPOCRITE AND K AN EVILDOER, AND EVERY MOUTH SPEAKETH FOLLY. FOR ALL THIS HIS ANGER IS NOTL2 TURNED AWAY, BUT HIS HAND IS STRETCHED OUT STILL.G# 18 FOR WICKEDNESS BURNETH AS THE FIRE: IT SHALL DEVOUR THE BRIERS ANDPM THORNS, AND SHALL KINDLE IN THE THICKETS OF THE FOREST, AND THEY SHALL MOUNTO! UP LIKE THE LIFTING UP OF SMOKE.TI# 19 THROUGH THE WRATH OF THE LORD OF HOSTS IS THE LAND DARKENED, AND THEOI PEOPLE SHALL BE AS THE FUEL OF THE FIRE: NO MAN SHALL SPARE HIS BROTHER.IK# 20 AND HE SHALL SNATCH ON THE RIGHT HAND, AND BE HUNGRY; AND HE SHALL EATEL ON THE LEFT HAND, AND THEY SHALL NOT BE SATISFIED: THEY SHALL EAT EVERY MAN THE FLESH OF HIS OWN ARM:I# 21 MANASSEH, EPHRAIM; AND EPHRAIM, MANASSEH: AND THEY TOGETHER SHALL BESJ AGAINST JUDAH. FOR ALL THIS HIS ANGER IS NOT TURNED AWAY, BUT HIS HAND IS STRETCHED OUT STILL.T = CHAPTER 10 TN# 1 WOE UNTO THEM THAT DECREE UNRIGHTEOUS DECREES, AND THAT WRITE GRIEVOUSNESS WHICH THEY HAVE PRESCRIBED;J# 2 TO TURN ASIDE THE NEEDY FROM JUDGMENT, AND TO TAKE AWAY THE RIGHT FROML THE POOR OF MY PEOPLE, THAT WIDOWS MAY BE THEIR PREY, AND THAT THEY MAY ROB THE FATHERLESS!M# 3 AND WHAT WILL YE DO IN THE DAY OF VISITATION, AND IN THE DESOLATION WHICHNL SHALL COME FROM FAR? TO WHOM WILL YE FLEE FOR HELP? AND WHERE WILL YE LEAVE YOUR GLORY?K# 4 WITHOUT ME THEY SHALL BOW DOWN UNDER THE PRISONERS, AND THEY SHALL FALL L UNDER THE SLAIN. FOR ALL THIS HIS ANGER IS NOT TURNED AWAY, BUT HIS HAND IS STRETCHED OUT STILL.RJ# 5 O ASSYRIAN, THE ROD OF MINE ANGER, AND THE STAFF IN THEIR HAND IS MINE INDIGNATION.HM# 6 I WILL SEND HIM AGAINST AN HYPOCRITICAL NATION, AND AGAINST THE PEOPLE OFHL MY WRATH WILL I GIVE HIM A CHARGE, TO TAKE THE SPOIL, AND TO TAKE THE PREY,5 AND TO TREAD THEM DOWN LIKE THE MIRE OF THE STREETS.WL# 7 HOWBEIT HE MEANETH NOT SO, NEITHER DOTH HIS HEART THINK SO; BUT IT IS IN4 HIS HEART TO DESTROY AND CUT OFF NATIONS NOT A FEW.6# 8 FOR HE SAITH, ARE NOT MY PRINCES ALTOGETHER KINGS?I# 9 IS NOT CALNO AS CARCHEMISH? IS NOT HAMATH AS ARPAD? IS NOT SAMARIA AS DAMASCUS?M# 10 AS MY HAND HATH FOUND THE KINGDOMS OF THE IDOLS, AND WHOSE GRAVEN IMAGES , DID EXCEL THEM OF JERUSALEM AND OF SAMARIA;E# 11 SHALL I NOT, AS I HAVE DONE UNTO SAMARIA AND HER IDOLS, SO DO TOH JERUSALEM AND HER IDOLS?EK# 12 WHEREFORE IT SHALL COME TO PASS, THAT WHEN THE LORD HATH PERFORMED HISUL WHOLE WORK UPON MOUNT ZION AND ON JERUSALEM, I WILL PUNISH THE FRUIT OF THEE STOUT HEART OF THE KING OF ASSYRIA, AND THE GLORY OF HIS HIGH LOOKS.IG# 13 FOR HE SAITH, BY THE STRENGTH OF MY HAND I HAVE DONE IT, AND BY MYNK WISDOM; FOR I AM PRUDENT: AND I HAVE REMOVED THE BOUNDS OF THE PEOPLE, ANDTH HAVE ROBBED THEIR TREASURES, AND I HAVE PUT DOWN THE INHABITANTS LIKE A VALIANT MAN:DJ# 14 AND MY HAND HATH FOUND AS A NEST THE RICHES OF THE PEOPLE: AND AS ONEK GATHERETH EGGS THAT ARE LEFT, HAVE I GATHERED ALL THE EARTH; AND THERE WAS : NONE THAT MOVED THE WING, OR OPENED THE MOUTH, OR PEEPED.K# 15 SHALL THE AXE BOAST ITSELF AGAINST HIM THAT HEWETH THEREWITH? OR SHALLBI THE SAW MAGNIFY ITSELF AGAINST HIM THAT SHAKETH IT? AS IF THE ROD SHOULDDM SHAKE ITSELF AGAINST THEM THAT LIFT IT UP, OR AS IF THE STAFF SHOULD LIFT UPS ITSELF, AS IF IT WERE NO WOOD.AI# 16 THEREFORE SHALL THE LORD, THE LORD OF HOSTS, SEND AMONG HIS FAT ONESIN LEANNESS; AND UNDER HIS G00uP99D%5%T6%! !LORY HE SHALL KINDLE A BURNING LIKE THE BURNING OF A FIRE.H# 17 AND THE LIGHT OF ISRAEL SHALL BE FOR A FIRE, AND HIS HOLY ONE FOR AJ FLAME: AND IT SHALL BURN AND DEVOUR HIS THORNS AND HIS BRIERS IN ONE DAY;J# 18 AND SHALL CONSUME THE GLORY OF HIS FOREST, AND OF HIS FRUITFUL FIELD,J BOTH SOUL AND BODY: AND THEY SHALL BE AS WHEN A STANDARD-BEARER FAINTETH.K# 19 AND THE REST OF THE TREES OF HIS FOREST SHALL BE FEW, THAT A CHILD MAY, WRITE THEM.K# 20 AND IT SHALL COME TO PASS IN THAT DAY, THAT THE REMNANT OF ISRAEL, ANDEM SUCH AS ARE ESCAPED OF THE HOUSE OF JACOB, SHALL NO MORE AGAIN STAY UPON HIM J THAT SMOTE THEM; BUT SHALL STAY UPON THE LORD, THE HOLY ONE OF ISRAEL, IN TRUTH.NI# 21 THE REMNANT SHALL RETURN, EVEN THE REMNANT OF JACOB, UNTO THE MIGHTYN GOD.SM# 22 FOR THOUGH THY PEOPLE ISRAEL BE AS THE SAND OF THE SEA, YET A REMNANT OFRN THEM SHALL RETURN: THE CONSUMPTION DECREED SHALL OVERFLOW WITH RIGHTEOUSNESS.L# 23 FOR THE LORD GOD OF HOSTS SHALL MAKE A CONSUMPTION, EVEN DETERMINED, IN THE MIDST OF ALL THE LAND.CM# 24 THEREFORE THUS SAITH THE LORD GOD OF HOSTS, O MY PEOPLE THAT DWELLEST INAI ZION, BE NOT AFRAID OF THE ASSYRIAN: HE SHALL SMITE THEE WITH A ROD, ANDUA SHALL LIFT UP HIS STAFF AGAINST THEE, AFTER THE MANNER OF EGYPT.OK# 25 FOR YET A VERY LITTLE WHILE, AND THE INDIGNATION SHALL CEASE, AND MINE  ANGER IN THEIR DESTRUCTION.K# 26 AND THE LORD OF HOSTS SHALL STIR UP A SCOURGE FOR HIM ACCORDING TO THE3M SLAUGHTER OF MIDIAN AT THE ROCK OF OREB: AND AS HIS ROD WAS UPON THE SEA, SOM/ SHALL HE LIFT IT UP AFTER THE MANNER OF EGYPT. J# 27 AND IT SHALL COME TO PASS IN THAT DAY, THAT HIS BURDEN SHALL BE TAKENI AWAY FROM OFF THY SHOULDER, AND HIS YOKE FROM OFF THY NECK, AND THE YOKEA- SHALL BE DESTROYED BECAUSE OF THE ANOINTING. M# 28 HE IS COME TO AIATH, HE IS PASSED TO MIGRON; AT MICHMASH HE HATH LAID UPG HIS CARRIAGES:UH# 29 THEY ARE GONE OVER THE PASSAGE: THEY HAVE TAKEN UP THEIR LODGING AT/ GEBA; RAMAH IS AFRAID; GIBEAH OF SAUL IS FLED.RG# 30 LIFT UP THY VOICE, O DAUGHTER OF GALLIM: CAUSE IT TO BE HEARD UNTOM LAISH, O POOR ANATHOTH.M# 31 MADMENAH IS REMOVED; THE INHABITANTS OF GEBIM GATHER THEMSELVES TO FLEE.OL# 32 AS YET SHALL HE REMAIN AT NOB THAT DAY: HE SHALL SHAKE HIS HAND AGAINST: THE MOUNT OF THE DAUGHTER OF ZION, THE HILL OF JERUSALEM.J# 33 BEHOLD, THE LORD, THE LORD OF HOSTS, SHALL LOP THE BOUGH WITH TERROR:J AND THE HIGH ONES OF STATURE SHALL BE HEWN DOWN, AND THE HAUGHTY SHALL BE HUMBLED.FL# 34 AND HE SHALL CUT DOWN THE THICKETS OF THE FOREST WITH IRON, AND LEBANON SHALL FALL BY A MIGHTY ONE. = CHAPTER 11 AK# 1 AND THERE SHALL COME FORTH A ROD OUT OF THE STEM OF JESSE, AND A BRANCHT SHALL GROW OUT OF HIS ROOTS:RL# 2 AND THE SPIRIT OF THE LORD SHALL REST UPON HIM, THE SPIRIT OF WISDOM ANDL UNDERSTANDING, THE SPIRIT OF COUNSEL AND MIGHT, THE SPIRIT OF KNOWLEDGE AND OF THE FEAR OF THE LORD;TM# 3 AND SHALL MAKE HIM OF QUICK UNDERSTANDING IN THE FEAR OF THE LORD: AND HE G SHALL NOT JUDGE AFTER THE SIGHT OF HIS EYES, NEITHER REPROVE AFTER THEH HEARING OF HIS EARS:AK# 4 BUT WITH RIGHTEOUSNESS SHALL HE JUDGE THE POOR, AND REPROVE WITH EQUITYDM FOR THE MEEK OF THE EARTH: AND HE SHALL SMITE THE EARTH: WITH THE ROD OF HISNA MOUTH, AND WITH THE BREATH OF HIS LIPS SHALL HE SLAY THE WICKED.AL# 5 AND RIGHTEOUSNESS SHALL BE THE GIRDLE OF HIS LOINS, AND FAITHFULNESS THE GIRDLE OF HIS REINS. K# 6 THE WOLF ALSO SHALL DWELL WITH THE LAMB, AND THE LEOPARD SHALL LIE DOWN:N WITH THE KID; AND THE CALF AND THE YOUNG LION AND THE FATLING TOGETHER; AND A LITTLE CHILD SHALL LEAD THEM.H# 7 AND THE COW AND THE BEAR SHALL FEED; THEIR YOUNG ONES SHALL LIE DOWN4 TOGETHER: AND THE LION SHALL EAT STRAW LIKE THE OX.K# 8 AND THE SUCKING CHILD SHALL PLAY ON THE HOLE OF THE ASP, AND THE WEANEDA0 CHILD SHALL PUT HIS HAND ON THE COCKATRICE DEN.J# 9 THEY SHALL NOT HURT NOR DESTROY IN ALL MY HOLY MOUNTAIN: FOR THE EARTHI SHALL BE FULL OF THE KNOWLEDGE OF THE LORD, AS THE WATERS COVER THE SEA. M# 10 AND IN THAT DAY THERE SHALL BE A ROOT OF JESSE, WHICH SHALL STAND FOR ANL00uX98<%X>%+%O-%TADATADATAK ENSIGN OF THE PEOPLE; TO IT SHALL THE GENTILES SEEK: AND HIS REST SHALL BEG GLORIOUS.L# 11 AND IT SHALL COME TO PASS IN THAT DAY, THAT THE LORD SHALL SET HIS HANDK AGAIN THE SECOND TIME TO RECOVER THE REMNANT OF HIS PEOPLE, WHICH SHALL BEPN LEFT, FROM ASSYRIA, AND FROM EGYPT, AND FROM PATHROS, AND FROM CUSH, AND FROMI ELAM, AND FROM SHINAR, AND FROM HAMATH, AND FROM THE ISLANDS OF THE SEA.,J# 12 AND HE SHALL SET UP AN ENSIGN FOR THE NATIONS, AND SHALL ASSEMBLE THEM OUTCASTS OF ISRAEL, AND GATHER TOGETHER THE DISPERSED OF JUDAH FROM THE FOURI CORNERS OF THE EARTH.H# 13 THE ENVY ALSO OF EPHRAIM SHALL DEPART, AND THE ADVERSARIES OF JUDAHH SHALL BE CUT OFF: EPHRAIM SHALL NOT ENVY JUDAH, AND JUDAH SHALL NOT VEX EPHRAIM.,H# 14 BUT THEY SHALL FLY UPON THE SHOULDERS OF THE PHILISTINES TOWARD THEL WEST; THEY SHALL SPOIL THEM OF THE EAST TOGETHER: THEY SHALL LAY THEIR HAND? UPON EDOM AND MOAB; AND THE CHILDREN OF AMMON SHALL OBEY THEM.NK# 15 AND THE LORD SHALL UTTERLY DESTROY THE TONGUE OF THE EGYPTIAN SEA; ANDDM WITH HIS MIGHTY WIND SHALL HE SHAKE HIS HAND OVER THE RIVER, AND SHALL SMITE 7 IT IN THE SEVEN STREAMS, AND MAKE MEN GO OVER DRYSHOD.LM# 16 AND THERE SHALL BE AN HIGHWAY FOR THE REMNANT OF HIS PEOPLE, WHICH SHALLK BE LEFT, FROM ASSYRIA; LIKE AS IT WAS TO ISRAEL IN THE DAY THAT HE CAME UPS OUT OF THE LAND OF EGYPT. = CHAPTER 12 EK# 1 AND IN THAT DAY THOU SHALT SAY, O LORD, I WILL PRAISE THEE: THOUGH THOUSI WAST ANGRY WITH ME, THINE ANGER IS TURNED AWAY, AND THOU COMFORTEDST ME. I# 2 BEHOLD, GOD IS MY SALVATION; I WILL TRUST, AND NOT BE AFRAID: FOR THERI LORD JEHOVAH IS MY STRENGTH AND MY SONG; HE ALSO IS BECOME MY SALVATION.HI# 3 THEREFORE WITH JOY SHALL YE DRAW WATER OUT OF THE WELLS OF SALVATION.CF# 4 AND IN THAT DAY SHALL YE SAY, PRAISE THE LORD, CALL UPON HIS NAME,L DECLARE HIS DOINGS AMONG THE PEOPLE, MAKE MENTION THAT HIS NAME IS EXALTED.K# 5 SING UNTO THE LORD; FOR HE HATH DONE EXCELLENT THINGS: THIS IS KNOWN INM ALL THE EARTH. L# 6 CRY OUT AND SHOUT, THOU INHABITANT OF ZION: FOR GREAT IS THE HOLY ONE OF ISRAEL IN THE MIDST OF THEE. = CHAPTER 13 O@# 1 THE BURDEN OF BABYLON, WHICH ISAIAH THE SON OF AMOZ DID SEE.J# 2 LIFT YE UP A BANNER UPON THE HIGH MOUNTAIN, EXALT THE VOICE UNTO THEM,? SHAKE THE HAND, THAT THEY MAY GO INTO THE GATES OF THE NOBLES.NJ# 3 I HAVE COMMANDED MY SANCTIFIED ONES, I HAVE ALSO CALLED MY MIGHTY ONES7 FOR MINE ANGER, EVEN THEM THAT REJOICE IN MY HIGHNESS.TK# 4 THE NOISE OF A MULTITUDE IN THE MOUNTAINS, LIKE AS OF A GREAT PEOPLE; AAK TUMULTUOUS NOISE OF THE KINGDOMS OF NATIONS GATHERED TOGETHER: THE LORD OF( HOSTS MUSTERETH THE HOST OF THE BATTLE.L# 5 THEY COME FROM A FAR COUNTRY, FROM THE END OF HEAVEN, EVEN THE LORD, AND; THE WEAPONS OF HIS INDIGNATION, TO DESTROY THE WHOLE LAND.HC# 6 HOWL YE; FOR THE DAY OF THE LORD IS AT HAND; IT SHALL COME AS AC DESTRUCTION FROM THE ALMIGHTY.YH# 7 THEREFORE SHALL ALL HANDS BE FAINT, AND EVERY MANS HEART SHALL MELT:M# 8 AND THEY SHALL BE AFRAID: PANGS AND SORROWS SHALL TAKE HOLD OF THEM; THEYMI SHALL BE IN PAIN AS A WOMAN THAT TRAVAILETH: THEY SHALL BE AMAZED ONE ATH) ANOTHER; THEIR FACES SHALL BE AS FLAMES. H# 9 BEHOLD, THE DAY OF THE LORD COMETH, CRUEL BOTH WITH WRATH AND FIERCEN ANGER, TO LAY THE LAND DESOLATE: AND HE SHALL DESTROY THE SINNERS THEREOF OUT OF IT. J# 10 FOR THE STARS OF HEAVEN AND THE CONSTELLATIONS THEREOF SHALL NOT GIVEN THEIR LIGHT: THE SUN SHALL BE DARKENED IN HIS GOING FORTH, AND THE MOON SHALL NOT CAUSE HER LIGHT TO SHINE.I# 11 AND I WILL PUNISH THE WORLD FOR THEIR EVIL, AND THE WICKED FOR THEIR M INIQUITY; AND I WILL CAUSE THE ARROGANCY OF THE PROUD TO CEASE, AND WILL LAYM% LOW THE HAUGHTINESS OF THE TERRIBLE.OH# 12 I WILL MAKE A MAN MORE PRECIOUS THAN FINE GOLD; EVEN A MAN THAN THE GOLDEN WEDGE OF OPHIR.SJ# 13 THEREFORE I WILL SHAKE THE HEAVENS, AND THE EARTH SHALL REMOVE OUT OFK HER PLACE, IN THE WRATH OF THE LORD OF HOSTS, AND IN THE DAY OF HIS FIERCEG ANGER.HM# 14 AND IT SHALL BE AS THE CHASED ROE, AND AS A SHEEP THAT NO MAN TAKETH UP:EM THEY SHALL 00u`99D%5%T6%! !EVERY MAN TURN TO HIS OWN PEOPLE, AND FLEE EVERY ONE INTO HIS OWNH LAND.K# 15 EVERY ONE THAT IS FOUND SHALL BE THRUST THROUGH; AND EVERY ONE THAT ISE* JOINED UNTO THEM SHALL FALL BY THE SWORD.K# 16 THEIR CHILDREN ALSO SHALL BE DASHED TO PIECES BEFORE THEIR EYES; THEIRW3 HOUSES SHALL BE SPOILED, AND THEIR WIVES RAVISHED. J# 17 BEHOLD, I WILL STIR UP THE MEDES AGAINST THEM, WHICH SHALL NOT REGARD7 SILVER; AND AS FOR GOLD, THEY SHALL NOT DELIGHT IN IT.NL# 18 THEIR BOWS ALSO SHALL DASH THE YOUNG MEN TO PIECES; AND THEY SHALL HAVEG NO PITY ON THE FRUIT OF THE WOMB; THEIR EYES SHALL NOT SPARE CHILDREN.UC# 19 AND BABYLON, THE GLORY OF KINGDOMS, THE BEAUTY OF THE CHALDEES ? EXCELLENCY, SHALL BE AS WHEN GOD OVERTHREW SODOM AND GOMORRAH.DC# 20 IT SHALL NEVER BE INHABITED, NEITHER SHALL IT BE DWELT IN FROMHN GENERATION TO GENERATION: NEITHER SHALL THE ARABIAN PITCH TENT THERE; NEITHER+ SHALL THE SHEPHERDS MAKE THEIR FOLD THERE.HM# 21 BUT WILD BEASTS OF THE DESERT SHALL LIE THERE; AND THEIR HOUSES SHALL BEPN FULL OF DOLEFUL CREATURES; AND OWLS SHALL DWELL THERE, AND SATYRS SHALL DANCE THERE. K# 22 AND THE WILD BEASTS OF THE ISLANDS SHALL CRY IN THEIR DESOLATE HOUSES,EM AND DRAGONS IN THEIR PLEASANT PALACES: AND HER TIME IS NEAR TO COME, AND HERH DAYS SHALL NOT BE PROLONGED. = CHAPTER 14 LN# 1 FOR THE LORD WILL HAVE MERCY ON JACOB, AND WILL YET CHOOSE ISRAEL, AND SETN THEM IN THEIR OWN LAND: AND THE STRANGERS SHALL BE JOINED WITH THEM, AND THEY$ SHALL CLEAVE TO THE HOUSE OF JACOB.J# 2 AND THE PEOPLE SHALL TAKE THEM, AND BRING THEM TO THEIR PLACE: AND THEL HOUSE OF ISRAEL SHALL POSSESS THEM IN THE LAND OF THE LORD FOR SERVANTS ANDL HANDMAIDS: AND THEY SHALL TAKE THEM CAPTIVES, WHOSE CAPTIVES THEY WERE; AND' THEY SHALL RULE OVER THEIR OPPRESSORS. K# 3 AND IT SHALL COME TO PASS IN THE DAY THAT THE LORD SHALL GIVE THEE REST K FROM THY SORROW, AND FROM THY FEAR, AND FROM THE HARD BONDAGE WHEREIN THOUS WAST MADE TO SERVE,I# 4 THAT THOU SHALT TAKE UP THIS PROVERB AGAINST THE KING OF BABYLON, ANDE< SAY, HOW HATH THE OPPRESSOR CEASED! THE GOLDEN CITY CEASED!H# 5 THE LORD HATH BROKEN THE STAFF OF THE WICKED, AND THE SCEPTRE OF THE RULERS.K# 6 HE WHO SMOTE THE PEOPLE IN WRATH WITH A CONTINUAL STROKE, HE THAT RULED 9 THE NATIONS IN ANGER, IS PERSECUTED, AND NONE HINDERETH.OL# 7 THE WHOLE EARTH IS AT REST, AND IS QUIET: THEY BREAK FORTH INTO SINGING.J# 8 YEA, THE FIR TREES REJOICE AT THEE, AND THE CEDARS OF LEBANON, SAYING,; SINCE THOU ART LAID DOWN, NO FELLER IS COME UP AGAINST US.BF# 9 HELL FROM BENEATH IS MOVED FOR THEE TO MEET THEE AT THY COMING: ITM STIRRETH UP THE DEAD FOR THEE, EVEN ALL THE CHIEF ONES OF THE EARTH; IT HATHR; RAISED UP FROM THEIR THRONES ALL THE KINGS OF THE NATIONS. M# 10 ALL THEY SHALL SPEAK AND SAY UNTO THEE, ART THOU ALSO BECOME WEAK AS WE?H ART THOU BECOME LIKE UNTO US?K# 11 THY POMP IS BROUGHT DOWN TO THE GRAVE, AND THE NOISE OF THY VIOLS: THEI5 WORM IS SPREAD UNDER THEE, AND THE WORMS COVER THEE.TL# 12 HOW ART THOU FALLEN FROM HEAVEN, O LUCIFER, SON OF THE MORNING! HOW ART= THOU CUT DOWN TO THE GROUND, WHICH DIDST WEAKEN THE NATIONS!EI# 13 FOR THOU HAST SAID IN THINE HEART, I WILL ASCEND INTO HEAVEN, I WILLFN EXALT MY THRONE ABOVE THE STARS OF GOD: I WILL SIT ALSO UPON THE MOUNT OF THE) CONGREGATION, IN THE SIDES OF THE NORTH: K# 14 I WILL ASCEND ABOVE THE HEIGHTS OF THE CLOUDS; I WILL BE LIKE THE MOSTA HIGH.E# 15 YET THOU SHALT BE BROUGHT DOWN TO HELL, TO THE SIDES OF THE PIT. I# 16 THEY THAT SEE THEE SHALL NARROWLY LOOK UPON THEE, AND CONSIDER THEE,OG SAYING, IS THIS THE MAN THAT MADE THE EARTH TO TREMBLE, THAT DID SHAKEO KINGDOMS;K# 17 THAT MADE THE WORLD AS A WILDERNESS, AND DESTROYED THE CITIES THEREOF;M, THAT OPENED NOT THE HOUSE OF HIS PRISONERS?L# 18 ALL THE KINGS OF THE NATIONS, EVEN ALL OF THEM, LIE IN GLORY, EVERY ONE IN HIS OWN HOUSE.M# 19 BUT THOU ART CAST OUT OF THY GRAVE LIKE AN ABOMINABLE BRANCH, AND AS THEEN RAIMENT OF THOSE THAT ARE SLAIN, THRUST THROUGH WITH A SWORD, THAT GO DOWN TO8 THE STONES OF THE PIT; AS A CARCASE TRODD00uh98<%X>%+%O-%TADATADATAEN UNDER FEET.D# 20 THOU SHALT NOT BE JOINED WITH THEM IN BURIAL, BECAUSE THOU HASTL DESTROYED THY LAND, AND SLAIN THY PEOPLE: THE SEED OF EVILDOERS SHALL NEVER BE RENOWNED.DJ# 21 PREPARE SLAUGHTER FOR HIS CHILDREN FOR THE INIQUITY OF THEIR FATHERS;L THAT THEY DO NOT RISE, NOR POSSESS THE LAND, NOR FILL THE FACE OF THE WORLD WITH CITIES.VJ# 22 FOR I WILL RISE UP AGAINST THEM, SAITH THE LORD OF HOSTS, AND CUT OFFI FROM BABYLON THE NAME, AND REMNANT, AND SON, AND NEPHEW, SAITH THE LORD.CJ# 23 I WILL ALSO MAKE IT A POSSESSION FOR THE BITTERN, AND POOLS OF WATER:L AND I WILL SWEEP IT WITH THE BESOM OF DESTRUCTION, SAITH THE LORD OF HOSTS.M# 24 THE LORD OF HOSTS HATH SWORN, SAYING, SURELY AS I HAVE THOUGHT, SO SHALLO< IT COME TO PASS; AND AS I HAVE PURPOSED, SO SHALL IT STAND:K# 25 THAT I WILL BREAK THE ASSYRIAN IN MY LAND, AND UPON MY MOUNTAINS TREADWI HIM UNDER FOOT: THEN SHALL HIS YOKE DEPART FROM OFF THEM, AND HIS BURDENO! DEPART FROM OFF THEIR SHOULDERS.NK# 26 THIS IS THE PURPOSE THAT IS PURPOSED UPON THE WHOLE EARTH: AND THIS IST5 THE HAND THAT IS STRETCHED OUT UPON ALL THE NATIONS. L# 27 FOR THE LORD OF HOSTS HATH PURPOSED, AND WHO SHALL DISANNUL IT? AND HIS3 HAND IS STRETCHED OUT, AND WHO SHALL TURN IT BACK? 5# 28 IN THE YEAR THAT KING AHAZ DIED WAS THIS BURDEN.:I# 29 REJOICE NOT THOU, WHOLE PALESTINA, BECAUSE THE ROD OF HIM THAT SMOTEAL THEE IS BROKEN: FOR OUT OF THE SERPENTS ROOT SHALL COME FORTH A COCKATRICE,/ AND HIS FRUIT SHALL BE A FIERY FLYING SERPENT.SK# 30 AND THE FIRSTBORN OF THE POOR SHALL FEED, AND THE NEEDY SHALL LIE DOWNHG IN SAFETY: AND I WILL KILL THY ROOT WITH FAMINE, AND HE SHALL SLAY THYT REMNANT. I# 31 HOWL, O GATE; CRY, O CITY; THOU, WHOLE PALESTINA, ART DISSOLVED: FORUH THERE SHALL COME FROM THE NORTH A SMOKE, AND NONE SHALL BE ALONE IN HIS APPOINTED TIMES.WK# 32 WHAT SHALL ONE THEN ANSWER THE MESSENGERS OF THE NATION? THAT THE LORDOA HATH FOUNDED ZION, AND THE POOR OF HIS PEOPLE SHALL TRUST IN IT.S = CHAPTER 15 J# 1 THE BURDEN OF MOAB. BECAUSE IN THE NIGHT AR OF MOAB IS LAID WASTE, ANDH BROUGHT TO SILENCE; BECAUSE IN THE NIGHT KIR OF MOAB IS LAID WASTE, AND BROUGHT TO SILENCE;I# 2 HE IS GONE UP TO BAJITH, AND TO DIBON, THE HIGH PLACES, TO WEEP: MOABVM SHALL HOWL OVER NEBO, AND OVER MEDEBA: ON ALL THEIR HEADS SHALL BE BALDNESS,H AND EVERY BEARD CUT OFF.2K# 3 IN THEIR STREETS THEY SHALL GIRD THEMSELVES WITH SACKCLOTH: ON THE TOPSTE OF THEIR HOUSES, AND IN THEIR STREETS, EVERY ONE SHALL HOWL, WEEPINGE ABUNDANTLY.L# 4 AND HESHBON SHALL CRY, AND ELEALEH: THEIR VOICE SHALL BE HEARD EVEN UNTOM JAHAZ: THEREFORE THE ARMED SOLDIERS OF MOAB SHALL CRY OUT; HIS LIFE SHALL BEI GRIEVOUS UNTO HIM.EK# 5 MY HEART SHALL CRY OUT FOR MOAB; HIS FUGITIVES SHALL FLEE UNTO ZOAR, ANRI HEIFER OF THREE YEARS OLD: FOR BY THE MOUNTING UP OF LUHITH WITH WEEPINGBM SHALL THEY GO IT UP; FOR IN THE WAY OF HORONAIM THEY SHALL RAISE UP A CRY OF DESTRUCTION.OM# 6 FOR THE WATERS OF NIMRIM SHALL BE DESOLATE: FOR THE HAY IS WITHERED AWAY,L, THE GRASS FAILETH, THERE IS NO GREEN THING.K# 7 THEREFORE THE ABUNDANCE THEY HAVE GOTTEN, AND THAT WHICH THEY HAVE LAIDO7 UP, SHALL THEY CARRY AWAY TO THE BROOK OF THE WILLOWS.EL# 8 FOR THE CRY IS GONE ROUND ABOUT THE BORDERS OF MOAB; THE HOWLING THEREOF4 UNTO EGLAIM, AND THE HOWLING THEREOF UNTO BEERELIM.I# 9 FOR THE WATERS OF DIMON SHALL BE FULL OF BLOOD: FOR I WILL BRING MOREEN UPON DIMON, LIONS UPON HIM THAT ESCAPETH OF MOAB, AND UPON THE REMNANT OF THE LAND. = CHAPTER 16 J# 1 SEND YE THE LAMB TO THE RULER OF THE LAND FROM SELA TO THE WILDERNESS,( UNTO THE MOUNT OF THE DAUGHTER OF ZION.K# 2 FOR IT SHALL BE, THAT, AS A WANDERING BIRD CAST OUT OF THE NEST, SO THEO2 DAUGHTERS OF MOAB SHALL BE AT THE FORDS OF ARNON.M# 3 TAKE COUNSEL, EXECUTE JUDGMENT; MAKE THY SHADOW AS THE NIGHT IN THE MIDSTEB OF THE NOONDAY; HIDE THE OUTCASTS; BEWRAY NOT HIM THAT WANDERETH.J# 4 LET MINE OUTCASTS DWELL WITH THEE, MOAB; BE THOU A COVERT TO THEM FROMG THE FACE OF THE SPOILER: FOR THE EXTORTIONER IS AT AN END, THE SPOILERE6 CEASETH, THE OP00up99D%5%T6%! !PRESSORS ARE CONSUMED OUT OF THE LAND.M# 5 AND IN MERCY SHALL THE THRONE BE ESTABLISHED: AND HE SHALL SIT UPON IT INSM TRUTH IN THE TABERNACLE OF DAVID, JUDGING, AND SEEKING JUDGMENT, AND HASTING RIGHTEOUSNESS. E# 6 WE HAVE HEARD OF THE PRIDE OF MOAB; HE IS VERY PROUD: EVEN OF HISOI HAUGHTINESS, AND HIS PRIDE, AND HIS WRATH: BUT HIS LIES SHALL NOT BE SO.AE# 7 THEREFORE SHALL MOAB HOWL FOR MOAB, EVERY ONE SHALL HOWL: FOR THETE FOUNDATIONS OF KIRHARESETH SHALL YE MOURN; SURELY THEY ARE STRICKEN.HL# 8 FOR THE FIELDS OF HESHBON LANGUISH, AND THE VINE OF SIBMAH: THE LORDS OFN THE HEATHEN HAVE BROKEN DOWN THE PRINCIPAL PLANTS THEREOF, THEY ARE COME EVENM UNTO JAZER, THEY WANDERED THROUGH THE WILDERNESS: HER BRANCHES ARE STRETCHEDR! OUT, THEY ARE GONE OVER THE SEA.PK# 9 THEREFORE I WILL BEWAIL WITH THE WEEPING OF JAZER THE VINE OF SIBMAH: ISL WILL WATER THEE WITH MY TEARS, O HESHBON, AND ELEALEH: FOR THE SHOUTING FOR1 THY SUMMER FRUITS AND FOR THY HARVEST IS FALLEN.UK# 10 AND GLADNESS IS TAKEN AWAY, AND JOY OUT OF THE PLENTIFUL FIELD; AND INHN THE VINEYARDS THERE SHALL BE NO SINGING, NEITHER SHALL THERE BE SHOUTING: THEM TREADERS SHALL TREAD OUT NO WINE IN THEIR PRESSES; I HAVE MADE THEIR VINTAGES SHOUTING TO CEASE.TK# 11 WHEREFORE MY BOWELS SHALL SOUND LIKE AN HARP FOR MOAB, AND MINE INWARDH PARTS FOR KIRHARESH.HI# 12 AND IT SHALL COME TO PASS, WHEN IT IS SEEN THAT MOAB IS WEARY ON THEHJ HIGH PLACE, THAT HE SHALL COME TO HIS SANCTUARY TO PRAY; BUT HE SHALL NOT PREVAIL.AJ# 13 THIS IS THE WORD THAT THE LORD HATH SPOKEN CONCERNING MOAB SINCE THAT TIME.K# 14 BUT NOW THE LORD HATH SPOKEN, SAYING, WITHIN THREE YEARS, AS THE YEARS N OF AN HIRELING, AND THE GLORY OF MOAB SHALL BE CONTEMNED, WITH ALL THAT GREAT; MULTITUDE; AND THE REMNANT SHALL BE VERY SMALL AND FEEBLE.O = CHAPTER 17 WM# 1 THE BURDEN OF DAMASCUS. BEHOLD, DAMASCUS IS TAKEN AWAY FROM BEING A CITY,H AND IT SHALL BE A RUINOUS HEAP.K# 2 THE CITIES OF AROER ARE FORSAKEN: THEY SHALL BE FOR FLOCKS, WHICH SHALLA+ LIE DOWN, AND NONE SHALL MAKE THEM AFRAID.OD# 3 THE FORTRESS ALSO SHALL CEASE FROM EPHRAIM, AND THE KINGDOM FROMF DAMASCUS, AND THE REMNANT OF SYRIA: THEY SHALL BE AS THE GLORY OF THE- CHILDREN OF ISRAEL, SAITH THE LORD OF HOSTS.TK# 4 AND IN THAT DAY IT SHALL COME TO PASS, THAT THE GLORY OF JACOB SHALL BEE8 MADE THIN, AND THE FATNESS OF HIS FLESH SHALL WAX LEAN.J# 5 AND IT SHALL BE AS WHEN THE HARVESTMAN GATHERETH THE CORN, AND REAPETHH THE EARS WITH HIS ARM; AND IT SHALL BE AS HE THAT GATHERETH EARS IN THE VALLEY OF REPHAIM.EM# 6 YET GLEANING GRAPES SHALL BE LEFT IN IT, AS THE SHAKING OF AN OLIVE TREE, L TWO OR THREE BERRIES IN THE TOP OF THE UPPERMOST BOUGH, FOUR OR FIVE IN THEA OUTMOST FRUITFUL BRANCHES THEREOF, SAITH THE LORD GOD OF ISRAEL. F# 7 AT THAT DAY SHALL A MAN LOOK TO HIS MAKER, AND HIS EYES SHALL HAVE# RESPECT TO THE HOLY ONE OF ISRAEL.LM# 8 AND HE SHALL NOT LOOK TO THE ALTARS, THE WORK OF HIS HANDS, NEITHER SHALLHL RESPECT THAT WHICH HIS FINGERS HAVE MADE, EITHER THE GROVES, OR THE IMAGES.F# 9 IN THAT DAY SHALL HIS STRONG CITIES BE AS A FORSAKEN BOUGH, AND ANI UPPERMOST BRANCH, WHICH THEY LEFT BECAUSE OF THE CHILDREN OF ISRAEL: ANDS THERE SHALL BE DESOLATION.L# 10 BECAUSE THOU HAST FORGOTTEN THE GOD OF THY SALVATION, AND HAST NOT BEENI MINDFUL OF THE ROCK OF THY STRENGTH, THEREFORE SHALT THOU PLANT PLEASANTH- PLANTS, AND SHALT SET IT WITH STRANGE SLIPS:OK# 11 IN THE DAY SHALT THOU MAKE THY PLANT TO GROW, AND IN THE MORNING SHALTIN THOU MAKE THY SEED TO FLOURISH: BUT THE HARVEST SHALL BE A HEAP IN THE DAY OF GRIEF AND OF DESPERATE SORROW.BK# 12 WOE TO THE MULTITUDE OF MANY PEOPLE, WHICH MAKE A NOISE LIKE THE NOISESI OF THE SEAS; AND TO THE RUSHING OF NATIONS, THAT MAKE A RUSHING LIKE THET RUSHING OF MIGHTY WATERS!J# 13 THE NATIONS SHALL RUSH LIKE THE RUSHING OF MANY WATERS: BUT GOD SHALLN REBUKE THEM, AND THEY SHALL FLEE FAR OFF, AND SHALL BE CHASED AS THE CHAFF OFN THE MOUNTAINS BEFORE THE WIND, AND LIKE A ROLLING THING BEFORE THE WHIRLWIND.I# 14 AND BEHOLD AT EVENINGTIDE TROUBLE00ux98<%X>%+%O-%TADATADATA; AND BEFORE THE MORNING HE IS NOT. L THIS IS THE PORTION OF THEM THAT SPOIL US, AND THE LOT OF THEM THAT ROB US. = CHAPTER 18 SG# 1 WOE TO THE LAND SHADOWING WITH WINGS, WHICH IS BEYOND THE RIVERS OF ETHIOPIA:J# 2 THAT SENDETH AMBASSADORS BY THE SEA, EVEN IN VESSELS OF BULRUSHES UPONG THE WATERS, SAYING, GO, YE SWIFT MESSENGERS, TO A NATION SCATTERED ANDLK PEELED, TO A PEOPLE TERRIBLE FROM THEIR BEGINNING HITHERTO; A NATION METEDG: OUT AND TRODDEN DOWN, WHOSE LAND THE RIVERS HAVE SPOILED!L# 3 ALL YE INHABITANTS OF THE WORLD, AND DWELLERS ON THE EARTH, SEE YE, WHENN HE LIFTETH UP AN ENSIGN ON THE MOUNTAINS; AND WHEN HE BLOWETH A TRUMPET, HEAR YE.M# 4 FOR SO THE LORD SAID UNTO ME, I WILL TAKE MY REST, AND I WILL CONSIDER INAK MY DWELLING PLACE LIKE A CLEAR HEAT UPON HERBS, AND LIKE A CLOUD OF DEW IN, THE HEAT OF HARVEST.SI# 5 FOR AFORE THE HARVEST, WHEN THE BUD IS PERFECT, AND THE SOUR GRAPE ISNM RIPENING IN THE FLOWER, HE SHALL BOTH CUT OFF THE SPRIGS WITH PRUNING HOOKS,V) AND TAKE AWAY AND CUT DOWN THE BRANCHES.OK# 6 THEY SHALL BE LEFT TOGETHER UNTO THE FOWLS OF THE MOUNTAINS, AND TO THE N BEASTS OF THE EARTH: AND THE FOWLS SHALL SUMMER UPON THEM, AND ALL THE BEASTS% OF THE EARTH SHALL WINTER UPON THEM. I# 7 IN THAT TIME SHALL THE PRESENT BE BROUGHT UNTO THE LORD OF HOSTS OF ALM PEOPLE SCATTERED AND PEELED, AND FROM A PEOPLE TERRIBLE FROM THEIR BEGINNING K HITHERTO; A NATION METED OUT AND TRODDEN UNDER FOOT, WHOSE LAND THE RIVERSTM HAVE SPOILED, TO THE PLACE OF THE NAME OF THE LORD OF HOSTS, THE MOUNT ZION.O = CHAPTER 19 LN# 1 THE BURDEN OF EGYPT. BEHOLD, THE LORD RIDETH UPON A SWIFT CLOUD, AND SHALLL COME INTO EGYPT: AND THE IDOLS OF EGYPT SHALL BE MOVED AT HIS PRESENCE, AND2 THE HEART OF EGYPT SHALL MELT IN THE MIDST OF IT.L# 2 AND I WILL SET THE EGYPTIANS AGAINST THE EGYPTIANS: AND THEY SHALL FIGHTI EVERY ONE AGAINST HIS BROTHER, AND EVERY ONE AGAINST HIS NEIGHBOUR; CITYE+ AGAINST CITY, AND KINGDOM AGAINST KINGDOM.RG# 3 AND THE SPIRIT OF EGYPT SHALL FAIL IN THE MIDST THEREOF; AND I WILL J DESTROY THE COUNSEL THEREOF: AND THEY SHALL SEEK TO THE IDOLS, AND TO THEF CHARMERS, AND TO THEM THAT HAVE FAMILIAR SPIRITS, AND TO THE WIZARDS.K# 4 AND THE EGYPTIANS WILL I GIVE OVER INTO THE HAND OF A CRUEL LORD; AND A E FIERCE KING SHALL RULE OVER THEM, SAITH THE LORD, THE LORD OF HOSTS.NM# 5 AND THE WATERS SHALL FAIL FROM THE SEA, AND THE RIVER SHALL BE WASTED ANDE DRIED UP.L# 6 AND THEY SHALL TURN THE RIVERS FAR AWAY; AND THE BROOKS OF DEFENCE SHALL; BE EMPTIED AND DRIED UP: THE REEDS AND FLAGS SHALL WITHER.UH# 7 THE PAPER REEDS BY THE BROOKS, BY THE MOUTH OF THE BROOKS, AND EVERYH THING SOWN BY THE BROOKS, SHALL WITHER, BE DRIVEN AWAY, AND BE NO MORE.G# 8 THE FISHERS ALSO SHALL MOURN, AND ALL THEY THAT CAST ANGLE INTO THEGE BROOKS SHALL LAMENT, AND THEY THAT SPREAD NETS UPON THE WATERS SHALL LANGUISH.M# 9 MOREOVER THEY THAT WORK IN FINE FLAX, AND THEY THAT WEAVE NETWORKS, SHALLY BE CONFOUNDED.IL# 10 AND THEY SHALL BE BROKEN IN THE PURPOSES THEREOF, ALL THAT MAKE SLUICES AND PONDS FOR FISH.B# 11 SURELY THE PRINCES OF ZOAN ARE FOOLS, THE COUNSEL OF THE WISEL COUNSELLORS OF PHARAOH IS BECOME BRUTISH: HOW SAY YE UNTO PHARAOH, I AM THE+ SON OF THE WISE, THE SON OF ANCIENT KINGS? L# 12 WHERE ARE THEY? WHERE ARE THY WISE MEN? AND LET THEM TELL THEE NOW, AND? LET THEM KNOW WHAT THE LORD OF HOSTS HATH PURPOSED UPON EGYPT.HL# 13 THE PRINCES OF ZOAN ARE BECOME FOOLS, THE PRINCES OF NOPH ARE DECEIVED;H THEY HAVE ALSO SEDUCED EGYPT, EVEN THEY THAT ARE THE STAY OF THE TRIBES THEREOF.NK# 14 THE LORD HATH MINGLED A PERVERSE SPIRIT IN THE MIDST THEREOF: AND THEYIL HAVE CAUSED EGYPT TO ERR IN EVERY WORK THEREOF, AS A DRUNKEN MAN STAGGERETH IN HIS VOMIT.G# 15 NEITHER SHALL THERE BE ANY WORK FOR EGYPT, WHICH THE HEAD OR TAIL,  BRANCH OR RUSH, MAY DO.K# 16 IN THAT DAY SHALL EGYPT BE LIKE UNTO WOMEN: AND IT SHALL BE AFRAID ANDG FEAR BECAUSE OF THE SHAKING OF THE HAND OF THE LORD OF HOSTS, WHICH HEE SHAKETH OVER IT. G# 17 AND THE LAND OF JUDAH SHALL BE A TERROR UNTO EGYP00u99D%5%T6%! !T, EVERY ONE THAT4M MAKETH MENTION THEREOF SHALL BE AFRAID IN HIMSELF, BECAUSE OF THE COUNSEL OF 8 THE LORD OF HOSTS, WHICH HE HATH DETERMINED AGAINST IT.M# 18 IN THAT DAY SHALL FIVE CITIES IN THE LAND OF EGYPT SPEAK THE LANGUAGE OFHI CANAAN, AND SWEAR TO THE LORD OF HOSTS; ONE SHALL BE CALLED, THE CITY OFY DESTRUCTION. M# 19 IN THAT DAY SHALL THERE BE AN ALTAR TO THE LORD IN THE MIDST OF THE LAND : OF EGYPT, AND A PILLAR AT THE BORDER THEREOF TO THE LORD.K# 20 AND IT SHALL BE FOR A SIGN AND FOR A WITNESS UNTO THE LORD OF HOSTS INOC THE LAND OF EGYPT: FOR THEY SHALL CRY UNTO THE LORD BECAUSE OF THEEL OPPRESSORS, AND HE SHALL SEND THEM A SAVIOUR, AND A GREAT ONE, AND HE SHALL DELIVER THEM.K# 21 AND THE LORD SHALL BE KNOWN TO EGYPT, AND THE EGYPTIANS SHALL KNOW THETM LORD IN THAT DAY, AND SHALL DO SACRIFICE AND OBLATION; YEA, THEY SHALL VOW AE# VOW UNTO THE LORD, AND PERFORM IT.SI# 22 AND THE LORD SHALL SMITE EGYPT: HE SHALL SMITE AND HEAL IT: AND THEYL SHALL RETURN EVEN TO THE LORD, AND HE SHALL BE INTREATED OF THEM, AND SHALL HEAL THEM.EJ# 23 IN THAT DAY SHALL THERE BE A HIGHWAY OUT OF EGYPT TO ASSYRIA, AND THEG ASSYRIAN SHALL COME INTO EGYPT, AND THE EGYPTIAN INTO ASSYRIA, AND THE* EGYPTIANS SHALL SERVE WITH THE ASSYRIANS.L# 24 IN THAT DAY SHALL ISRAEL BE THE THIRD WITH EGYPT AND WITH ASSYRIA, EVEN% A BLESSING IN THE MIDST OF THE LAND:WL# 25 WHOM THE LORD OF HOSTS SHALL BLESS, SAYING, BLESSED BE EGYPT MY PEOPLE,? AND ASSYRIA THE WORK OF MY HANDS, AND ISRAEL MINE INHERITANCE.N = CHAPTER 20 NN# 1 IN THE YEAR THAT TARTAN CAME UNTO ASHDOD, (WHEN SARGON THE KING OF ASSYRIA3 SENT HIM,) AND FOUGHT AGAINST ASHDOD, AND TOOK IT; M# 2 AT THE SAME TIME SPAKE THE LORD BY ISAIAH THE SON OF AMOZ, SAYING, GO ANDEL LOOSE THE SACKCLOTH FROM OFF THY LOINS, AND PUT OFF THY SHOE FROM THY FOOT.+ AND HE DID SO, WALKING NAKED AND BAREFOOT.TF# 3 AND THE LORD SAID, LIKE AS MY SERVANT ISAIAH HATH WALKED NAKED ANDI BAREFOOT THREE YEARS FOR A SIGN AND WONDER UPON EGYPT AND UPON ETHIOPIA;HK# 4 SO SHALL THE KING OF ASSYRIA LEAD AWAY THE EGYPTIANS PRISONERS, AND THEEH ETHIOPIANS CAPTIVES, YOUNG AND OLD, NAKED AND BAREFOOT, EVEN WITH THEIR+ BUTTOCKS UNCOVERED, TO THE SHAME OF EGYPT. K# 5 AND THEY SHALL BE AFRAID AND ASHAMED OF ETHIOPIA THEIR EXPECTATION, AND  OF EGYPT THEIR GLORY.J# 6 AND THE INHABITANT OF THIS ISLE SHALL SAY IN THAT DAY, BEHOLD, SUCH ISK OUR EXPECTATION, WHITHER WE FLEE FOR HELP TO BE DELIVERED FROM THE KING OF " ASSYRIA: AND HOW SHALL WE ESCAPE? = CHAPTER 21 IH# 1 THE BURDEN OF THE DESERT OF THE SEA. AS WHIRLWINDS IN THE SOUTH PASS= THROUGH; SO IT COMETH FROM THE DESERT, FROM A TERRIBLE LAND.FI# 2 A GRIEVOUS VISION IS DECLARED UNTO ME; THE TREACHEROUS DEALER DEALETH N TREACHEROUSLY, AND THE SPOILER SPOILETH. GO UP, O ELAM: BESIEGE, O MEDIA; ALL* THE SIGHING THEREOF HAVE I MADE TO CEASE.K# 3 THEREFORE ARE MY LOINS FILLED WITH PAIN: PANGS HAVE TAKEN HOLD UPON ME,EL AS THE PANGS OF A WOMAN THAT TRAVAILETH: I WAS BOWED DOWN AT THE HEARING OF( IT; I WAS DISMAYED AT THE SEEING OF IT.M# 4 MY HEART PANTED, FEARFULNESS AFFRIGHTED ME: THE NIGHT OF MY PLEASURE HATH  HE TURNED INTO FEAR UNTO ME.DE# 5 PREPARE THE TABLE, WATCH IN THE WATCHTOWER, EAT, DRINK: ARISE, YEE PRINCES, AND ANOINT THE SHIELD.L# 6 FOR THUS HATH THE LORD SAID UNTO ME, GO, SET A WATCHMAN, LET HIM DECLARE WHAT HE SEETH..M# 7 AND HE SAW A CHARIOT WITH A COUPLE OF HORSEMEN, A CHARIOT OF ASSES, AND A? CHARIOT OF CAMELS; AND HE HEARKENED DILIGENTLY WITH MUCH HEED: M# 8 AND HE CRIED, A LION: MY LORD, I STAND CONTINUALLY UPON THE WATCHTOWER INF3 THE DAYTIME, AND I AM SET IN MY WARD WHOLE NIGHTS:M# 9 AND, BEHOLD, HERE COMETH A CHARIOT OF MEN, WITH A COUPLE OF HORSEMEN. AND N HE ANSWERED AND SAID, BABYLON IS FALLEN, IS FALLEN; AND ALL THE GRAVEN IMAGES, OF HER GODS HE HATH BROKEN UNTO THE GROUND.M# 10 O MY THRESHING, AND THE CORN OF MY FLOOR: THAT WHICH I HAVE HEARD OF THE < LORD OF HOSTS, THE GOD OF ISRAEL, HAVE I DECLARED UNTO YOU.M# 11 THE BURDEN OF DUMAH. HE CALLETH TO ME OUT OF SEIR, WATCHMAN, WHAT OF THEI00u98<%X>%+%O-%TADATADATA$ NIGHT? WATCHMAN, WHAT OF THE NIGHT?J# 12 THE WATCHMAN SAID, THE MORNING COMETH, AND ALSO THE NIGHT: IF YE WILL# ENQUIRE, ENQUIRE YE: RETURN, COME.OI# 13 THE BURDEN UPON ARABIA. IN THE FOREST IN ARABIA SHALL YE LODGE, O YET! TRAVELLING COMPANIES OF DEDANIM.AF# 14 THE INHABITANTS OF THE LAND OF TEMA BROUGHT WATER TO HIM THAT WAS8 THIRSTY, THEY PREVENTED WITH THEIR BREAD HIM THAT FLED.K# 15 FOR THEY FLED FROM THE SWORDS, FROM THE DRAWN SWORD, AND FROM THE BENTT' BOW, AND FROM THE GRIEVOUSNESS OF WAR.I# 16 FOR THUS HATH THE LORD SAID UNTO ME, WITHIN A YEAR, ACCORDING TO THEO= YEARS OF AN HIRELING, AND ALL THE GLORY OF KEDAR SHALL FAIL:UM# 17 AND THE RESIDUE OF THE NUMBER OF ARCHERS, THE MIGHTY MEN OF THE CHILDREN,J OF KEDAR, SHALL BE DIMINISHED: FOR THE LORD GOD OF ISRAEL HATH SPOKEN IT. = CHAPTER 22 TK# 1 THE BURDEN OF THE VALLEY OF VISION. WHAT AILETH THEE NOW, THAT THOU ARTE! WHOLLY GONE UP TO THE HOUSETOPS?RJ# 2 THOU THAT ART FULL OF STIRS, A TUMULTUOUS CITY, JOYOUS CITY: THY SLAIN6 MEN ARE NOT SLAIN WITH THE SWORD, NOR DEAD IN BATTLE.M# 3 ALL THY RULERS ARE FLED TOGETHER, THEY ARE BOUND BY THE ARCHERS: ALL THATA@ ARE FOUND IN THEE ARE BOUND TOGETHER, WHICH HAVE FLED FROM FAR.L# 4 THEREFORE SAID I, LOOK AWAY FROM ME; I WILL WEEP BITTERLY, LABOUR NOT TOB COMFORT ME, BECAUSE OF THE SPOILING OF THE DAUGHTER OF MY PEOPLE.J# 5 FOR IT IS A DAY OF TROUBLE, AND OF TREADING DOWN, AND OF PERPLEXITY BYL THE LORD GOD OF HOSTS IN THE VALLEY OF VISION, BREAKING DOWN THE WALLS, AND OF CRYING TO THE MOUNTAINS.G# 6 AND ELAM BARE THE QUIVER WITH CHARIOTS OF MEN AND HORSEMEN, AND KIRR UNCOVERED THE SHIELD.I# 7 AND IT SHALL COME TO PASS, THAT THY CHOICEST VALLEYS SHALL BE FULL OFFF CHARIOTS, AND THE HORSEMEN SHALL SET THEMSELVES IN ARRAY AT THE GATE.L# 8 AND HE DISCOVERED THE COVERING OF JUDAH, AND THOU DIDST LOOK IN THAT DAY* TO THE ARMOUR OF THE HOUSE OF THE FOREST.L# 9 YE HAVE SEEN ALSO THE BREACHES OF THE CITY OF DAVID, THAT THEY ARE MANY:7 AND YE GATHERED TOGETHER THE WATERS OF THE LOWER POOL.OI# 10 AND YE HAVE NUMBERED THE HOUSES OF JERUSALEM, AND THE HOUSES HAVE YEN! BROKEN DOWN TO FORTIFY THE WALL. H# 11 YE MADE ALSO A DITCH BETWEEN THE TWO WALLS FOR THE WATER OF THE OLDN POOL: BUT YE HAVE NOT LOOKED UNTO THE MAKER THEREOF, NEITHER HAD RESPECT UNTO HIM THAT FASHIONED IT LONG AGO.F# 12 AND IN THAT DAY DID THE LORD GOD OF HOSTS CALL TO WEEPING, AND TO: MOURNING, AND TO BALDNESS, AND TO GIRDING WITH SACKCLOTH:I# 13 AND BEHOLD JOY AND GLADNESS, SLAYING OXEN, AND KILLING SHEEP, EATINGOL FLESH, AND DRINKING WINE: LET US EAT AND DRINK; FOR TO MORROW WE SHALL DIE.G# 14 AND IT WAS REVEALED IN MINE EARS BY THE LORD OF HOSTS, SURELY THIS I INIQUITY SHALL NOT BE PURGED FROM YOU TILL YE DIE, SAITH THE LORD GOD OFT HOSTS.TM# 15 THUS SAITH THE LORD GOD OF HOSTS, GO, GET THEE UNTO THIS TREASURER, EVEN / UNTO SHEBNA, WHICH IS OVER THE HOUSE, AND SAY,GL# 16 WHAT HAST THOU HERE? AND WHOM HAST THOU HERE, THAT THOU HAST HEWED THEEN OUT A SEPULCHRE HERE, AS HE THAT HEWETH HIM OUT A SEPULCHRE ON HIGH, AND THAT- GRAVETH AN HABITATION FOR HIMSELF IN A ROCK?RL# 17 BEHOLD, THE LORD WILL CARRY THEE AWAY WITH A MIGHTY CAPTIVITY, AND WILL SURELY COVER THEE.TI# 18 HE WILL SURELY VIOLENTLY TURN AND TOSS THEE LIKE A BALL INTO A LARGETL COUNTRY: THERE SHALT THOU DIE, AND THERE THE CHARIOTS OF THY GLORY SHALL BE THE SHAME OF THY LORDS HOUSE.M# 19 AND I WILL DRIVE THEE FROM THY STATION, AND FROM THY STATE SHALL HE PULLH THEE DOWN. G# 20 AND IT SHALL COME TO PASS IN THAT DAY, THAT I WILL CALL MY SERVANTH ELIAKIM THE SON OF HILKIAH:M# 21 AND I WILL CLOTHE HIM WITH THY ROBE, AND STRENGTHEN HIM WITH THY GIRDLE, L AND I WILL COMMIT THY GOVERNMENT INTO HIS HAND: AND HE SHALL BE A FATHER TO9 THE INHABITANTS OF JERUSALEM, AND TO THE HOUSE OF JUDAH.HJ# 22 AND THE KEY OF THE HOUSE OF DAVID WILL I LAY UPON HIS SHOULDER; SO HEI SHALL OPEN, AND NONE SHALL SHUT; AND HE SHALL SHUT, AND NONE SHALL OPEN. K# 23 AND I WILL FASTEN HIM AS A NAIL IN A SURE PLACE; AND HE SHALL BE FOR AT& GLORIOUS THRONE TO HIS FATH00u99D%5%T6%! !ERS HOUSE.J# 24 AND THEY SHALL HANG UPON HIM ALL THE GLORY OF HIS FATHEROS HOUSE, THEL OFFSPRING AND THE ISSUE, ALL VESSELS OF SMALL QUANTITY, FROM THE VESSELS OF* CUPS, EVEN TO ALL THE VESSELS OF FLAGONS.M# 25 IN THAT DAY, SAITH THE LORD OF HOSTS, SHALL THE NAIL THAT IS FASTENED INDN THE SURE PLACE BE REMOVED, AND BE CUT DOWN, AND FALL; AND THE BURDEN THAT WAS7 UPON IT SHALL BE CUT OFF: FOR THE LORD HATH SPOKEN IT.T = CHAPTER 23 LL# 1 THE BURDEN OF TYRE. HOWL, YE SHIPS OF TARSHISH; FOR IT IS LAID WASTE, SOG THAT THERE IS NO HOUSE, NO ENTERING IN: FROM THE LAND OF CHITTIM IT IS, REVEALED TO THEM.K# 2 BE STILL, YE INHABITANTS OF THE ISLE; THOU WHOM THE MERCHANTS OF ZIDON,O* THAT PASS OVER THE SEA, HAVE REPLENISHED.K# 3 AND BY GREAT WATERS THE SEED OF SIHOR, THE HARVEST OF THE RIVER, IS HERL' REVENUE; AND SHE IS A MART OF NATIONS.;K# 4 BE THOU ASHAMED, O ZIDON: FOR THE SEA HATH SPOKEN, EVEN THE STRENGTH OF G THE SEA, SAYING, I TRAVAIL NOT, NOR BRING FORTH CHILDREN, NEITHER DO I , NOURISH UP YOUNG MEN, NOR BRING UP VIRGINS.L# 5 AS AT THE REPORT CONCERNING EGYPT, SO SHALL THEY BE SORELY PAINED AT THE REPORT OF TYRE.?# 6 PASS YE OVER TO TARSHISH; HOWL, YE INHABITANTS OF THE ISLE.SI# 7 IS THIS YOUR JOYOUS CITY, WHOSE ANTIQUITY IS OF ANCIENT DAYS? HER OWN,* FEET SHALL CARRY HER AFAR OFF TO SOJOURN.F# 8 WHO HATH TAKEN THIS COUNSEL AGAINST TYRE, THE CROWNING CITY, WHOSEJ MERCHANTS ARE PRINCES, WHOSE TRAFFICKERS ARE THE HONOURABLE OF THE EARTH?L# 9 THE LORD OF HOSTS HATH PURPOSED IT, TO STAIN THE PRIDE OF ALL GLORY, AND8 TO BRING INTO CONTEMPT ALL THE HONOURABLE OF THE EARTH.J# 10 PASS THROUGH THY LAND AS A RIVER, O DAUGHTER OF TARSHISH: THERE IS NO MORE STRENGTH.SL# 11 HE STRETCHED OUT HIS HAND OVER THE SEA, HE SHOOK THE KINGDOMS: THE LORDJ HATH GIVEN A COMMANDMENT AGAINST THE MERCHANT CITY, TO DESTROY THE STRONG HOLDS THEREOF.IF# 12 AND HE SAID, THOU SHALT NO MORE REJOICE, O THOU OPPRESSED VIRGIN,N DAUGHTER OF ZIDON: ARISE, PASS OVER TO CHITTIM; THERE ALSO SHALT THOU HAVE NO REST.M# 13 BEHOLD THE LAND OF THE CHALDEANS; THIS PEOPLE WAS NOT, TILL THE ASSYRIAN I FOUNDED IT FOR THEM THAT DWELL IN THE WILDERNESS: THEY SET UP THE TOWERSEH THEREOF, THEY RAISED UP THE PALACES THEREOF; AND HE BROUGHT IT TO RUIN.A# 14 HOWL, YE SHIPS OF TARSHISH: FOR YOUR STRENGTH IS LAID WASTE. H# 15 AND IT SHALL COME TO PASS IN THAT DAY, THAT TYRE SHALL BE FORGOTTENK SEVENTY YEARS, ACCORDING TO THE DAYS OF ONE KING: AFTER THE END OF SEVENTYS$ YEARS SHALL TYRE SING AS AN HARLOT.K# 16 TAKE AN HARP, GO ABOUT THE CITY, THOU HARLOT THAT HAST BEEN FORGOTTEN;WD MAKE SWEET MELODY, SING MANY SONGS, THAT THOU MAYEST BE REMEMBERED.L# 17 AND IT SHALL COME TO PASS AFTER THE END OF SEVENTY YEARS, THAT THE LORDN WILL VISIT TYRE, AND SHE SHALL TURN TO HER HIRE, AND SHALL COMMIT FORNICATION? WITH ALL THE KINGDOMS OF THE WORLD UPON THE FACE OF THE EARTH.TM# 18 AND HER MERCHANDISE AND HER HIRE SHALL BE HOLINESS TO THE LORD: IT SHALLTI NOT BE TREASURED NOR LAID UP; FOR HER MERCHANDISE SHALL BE FOR THEM THATHF DWELL BEFORE THE LORD, TO EAT SUFFICIENTLY, AND FOR DURABLE CLOTHING. = CHAPTER 24 GM# 1 BEHOLD, THE LORD MAKETH THE EARTH EMPTY, AND MAKETH IT WASTE, AND TURNETHT? IT UPSIDE DOWN, AND SCATTERETH ABROAD THE INHABITANTS THEREOF. H# 2 AND IT SHALL BE, AS WITH THE PEOPLE, SO WITH THE PRIEST; AS WITH THEM SERVANT, SO WITH HIS MASTER; AS WITH THE MAID, SO WITH HER MISTRESS; AS WITHHL THE BUYER, SO WITH THE SELLER; AS WITH THE LENDER, SO WITH THE BORROWER; AS< WITH THE TAKER OF USURY, SO WITH THE GIVER OF USURY TO HIM.M# 3 THE LAND SHALL BE UTTERLY EMPTIED, AND UTTERLY SPOILED: FOR THE LORD HATHE SPOKEN THIS WORD.H# 4 THE EARTH MOURNETH AND FADETH AWAY, THE WORLD LANGUISHETH AND FADETH3 AWAY, THE HAUGHTY PEOPLE OF THE EARTH DO LANGUISH. I# 5 THE EARTH ALSO IS DEFILED UNDER THE INHABITANTS THEREOF; BECAUSE THEY J HAVE TRANSGRESSED THE LAWS, CHANGED THE ORDINANCE, BROKEN THE EVERLASTING COVENANT.L# 6 THEREFORE HATH THE CURSE DEVOURED THE EARTH, AND THEY THAT DWELL THEREINM ARE DESOLATE: THEREFORE THE INHAB00u98<%X>%+%O-%TADATADATAITANTS OF THE EARTH ARE BURNED, AND FEW MENE LEFT.H# 7 THE NEW WINE MOURNETH, THE VINE LANGUISHETH, ALL THE MERRYHEARTED DO SIGH.L# 8 THE MIRTH OF TABRETS CEASETH, THE NOISE OF THEM THAT REJOICE ENDETH, THE JOY OF THE HARP CEASETH. J# 9 THEY SHALL NOT DRINK WINE WITH A SONG; STRONG DRINK SHALL BE BITTER TO THEM THAT DRINK IT.J# 10 THE CITY OF CONFUSION IS BROKEN DOWN: EVERY HOUSE IS SHUT UP, THAT NO MAN MAY COME IN.UH# 11 THERE IS A CRYING FOR WINE IN THE STREETS; ALL JOY IS DARKENED, THE MIRTH OF THE LAND IS GONE.UA# 12 IN THE CITY IS LEFT DESOLATION, AND THE GATE IS SMITTEN WITHG DESTRUCTION.EK# 13 WHEN THUS IT SHALL BE IN THE MIDST OF THE LAND AMONG THE PEOPLE, THERE N SHALL BE AS THE SHAKING OF AN OLIVE TREE, AND AS THE GLEANING GRAPES WHEN THE VINTAGE IS DONE.RK# 14 THEY SHALL LIFT UP THEIR VOICE, THEY SHALL SING FOR THE MAJESTY OF THEN) LORD, THEY SHALL CRY ALOUD FROM THE SEA.AJ# 15 WHEREFORE GLORIFY YE THE LORD IN THE FIRES, EVEN THE NAME OF THE LORD' GOD OF ISRAEL IN THE ISLES OF THE SEA.DL# 16 FROM THE UTTERMOST PART OF THE EARTH HAVE WE HEARD SONGS, EVEN GLORY TOF THE RIGHTEOUS. BUT I SAID, MY LEANNESS, MY LEANNESS, WOE UNTO ME! THEK TREACHEROUS DEALERS HAVE DEALT TREACHEROUSLY; YEA, THE TREACHEROUS DEALERS  HAVE DEALT VERY TREACHEROUSLY.EI# 17 FEAR, AND THE PIT, AND THE SNARE, ARE UPON THEE, O INHABITANT OF THEJ EARTH.HM# 18 AND IT SHALL COME TO PASS, THAT HE WHO FLEETH FROM THE NOISE OF THE FEAROK SHALL FALL INTO THE PIT; AND HE THAT COMETH UP OUT OF THE MIDST OF THE PITEL SHALL BE TAKEN IN THE SNARE: FOR THE WINDOWS FROM ON HIGH ARE OPEN, AND THE# FOUNDATIONS OF THE EARTH DO SHAKE.YH# 19 THE EARTH IS UTTERLY BROKEN DOWN, THE EARTH IS CLEAN DISSOLVED, THE EARTH IS MOVED EXCEEDINGLY.J# 20 THE EARTH SHALL REEL TO AND FRO LIKE A DRUNKARD, AND SHALL BE REMOVEDM LIKE A COTTAGE; AND THE TRANSGRESSION THEREOF SHALL BE HEAVY UPON IT; AND ITO SHALL FALL, AND NOT RISE AGAIN.J# 21 AND IT SHALL COME TO PASS IN THAT DAY, THAT THE LORD SHALL PUNISH THEL HOST OF THE HIGH ONES THAT ARE ON HIGH, AND THE KINGS OF THE EARTH UPON THE EARTH.AJ# 22 AND THEY SHALL BE GATHERED TOGETHER, AS PRISONERS ARE GATHERED IN THEK PIT, AND SHALL BE SHUT UP IN THE PRISON, AND AFTER MANY DAYS SHALL THEY BEN VISITED.TM# 23 THEN THE MOON SHALL BE CONFOUNDED, AND THE SUN ASHAMED, WHEN THE LORD OFOK HOSTS SHALL REIGN IN MOUNT ZION, AND IN JERUSALEM, AND BEFORE HIS ANCIENTSF GLORIOUSLY. = CHAPTER 25 1K# 1 O LORD, THOU ART MY GOD; I WILL EXALT THEE, I WILL PRAISE THY NAME; FOR J THOU HAST DONE WONDERFUL THINGS; THY COUNSELS OF OLD ARE FAITHFULNESS AND TRUTH.2M# 2 FOR THOU HAST MADE OF A CITY AN HEAP; OF A DEFENCED CITY A RUIN: A PALACEN5 OF STRANGERS TO BE NO CITY; IT SHALL NEVER BE BUILT.HL# 3 THEREFORE SHALL THE STRONG PEOPLE GLORIFY THEE, THE CITY OF THE TERRIBLE NATIONS SHALL FEAR THEE.M# 4 FOR THOU HAST BEEN A STRENGTH TO THE POOR, A STRENGTH TO THE NEEDY IN HISGM DISTRESS, A REFUGE FROM THE STORM, A SHADOW FROM THE HEAT, WHEN THE BLAST OFI2 THE TERRIBLE ONES IS AS A STORM AGAINST THE WALL.M# 5 THOU SHALT BRING DOWN THE NOISE OF STRANGERS, AS THE HEAT IN A DRY PLACE;AJ EVEN THE HEAT WITH THE SHADOW OF A CLOUD: THE BRANCH OF THE TERRIBLE ONES SHALL BE BROUGHT LOW.M# 6 AND IN THIS MOUNTAIN SHALL THE LORD OF HOSTS MAKE UNTO ALL PEOPLE A FEAST N OF FAT THINGS, A FEAST OF WINES ON THE LEES, OF FAT THINGS FULL OF MARROW, OF WINES ON THE LEES WELL REFINED.K# 7 AND HE WILL DESTROY IN THIS MOUNTAIN THE FACE OF THE COVERING CAST OVERB: ALL PEOPLE, AND THE VAIL THAT IS SPREAD OVER ALL NATIONS.H# 8 HE WILL SWALLOW UP DEATH IN VICTORY; AND THE LORD GOD WILL WIPE AWAYJ TEARS FROM OFF ALL FACES; AND THE REBUKE OF HIS PEOPLE SHALL HE TAKE AWAY5 FROM OFF ALL THE EARTH: FOR THE LORD HATH SPOKEN IT.NM# 9 AND IT SHALL BE SAID IN THAT DAY, LO, THIS IS OUR GOD; WE HAVE WAITED FOR L HIM, AND HE WILL SAVE US: THIS IS THE LORD; WE HAVE WAITED FOR HIM, WE WILL& BE GLAD AND REJOICE IN HIS SALVATION.L# 10 FOR IN THIS MOUNTAIN SHALL THE HAND OF THE LORD REST, AND MOAB SHALL BEH TRODDEN00u99D%5%T6%! ! DOWN UNDER HIM, EVEN AS STRAW IS TRODDEN DOWN FOR THE DUNGHILL.I# 11 AND HE SHALL SPREAD FORTH HIS HANDS IN THE MIDST OF THEM, AS HE THATFJ SWIMMETH SPREADETH FORTH HIS HANDS TO SWIM: AND HE SHALL BRING DOWN THEIR/ PRIDE TOGETHER WITH THE SPOILS OF THEIR HANDS. L# 12 AND THE FORTRESS OF THE HIGH FORT OF THY WALLS SHALL HE BRING DOWN, LAY0 LOW, AND BRING TO THE GROUND, EVEN TO THE DUST. = CHAPTER 26 N# 1 IN THAT DAY SHALL THIS SONG BE SUNG IN THE LAND OF JUDAH; WE HAVE A STRONG9 CITY; SALVATION WILL GOD APPOINT FOR WALLS AND BULWARKS.DL# 2 OPEN YE THE GATES, THAT THE RIGHTEOUS NATION WHICH KEEPETH THE TRUTH MAY ENTER IN.F# 3 THOU WILT KEEP HIM IN PERFECT PEACE, WHOSE MIND IS STAYED ON THEE: BECAUSE HE TRUSTETH IN THEE.EI# 4 TRUST YE IN THE LORD FOR EVER: FOR IN THE LORD JEHOVAH IS EVERLASTINGO STRENGTH:K# 5 FOR HE BRINGETH DOWN THEM THAT DWELL ON HIGH; THE LOFTY CITY, HE LAYETH I IT LOW; HE LAYETH IT LOW, EVEN TO THE GROUND; HE BRINGETH IT EVEN TO THE  DUST.M# 6 THE FOOT SHALL TREAD IT DOWN, EVEN THE FEET OF THE POOR, AND THE STEPS OFY THE NEEDY.TJ# 7 THE WAY OF THE JUST IS UPRIGHTNESS: THOU, MOST UPRIGHT, DOST WEIGH THE PATH OF THE JUST.J# 8 YEA, IN THE WAY OF THY JUDGMENTS, O LORD, HAVE WE WAITED FOR THEE; THEC DESIRE OF OUR SOUL IS TO THY NAME, AND TO THE REMEMBRANCE OF THEE.NM# 9 WITH MY SOUL HAVE I DESIRED THEE IN THE NIGHT; YEA, WITH MY SPIRIT WITHINYH ME WILL I SEEK THEE EARLY: FOR WHEN THY JUDGMENTS ARE IN THE EARTH, THE3 INHABITANTS OF THE WORLD WILL LEARN RIGHTEOUSNESS.OM# 10 LET FAVOUR BE SHEWED TO THE WICKED, YET WILL HE NOT LEARN RIGHTEOUSNESS:TJ IN THE LAND OF UPRIGHTNESS WILL HE DEAL UNJUSTLY, AND WILL NOT BEHOLD THE MAJESTY OF THE LORD. M# 11 LORD, WHEN THY HAND IS LIFTED UP, THEY WILL NOT SEE: BUT THEY SHALL SEE,TL AND BE ASHAMED FOR THEIR ENVY AT THE PEOPLE; YEA, THE FIRE OF THINE ENEMIES SHALL DEVOUR THEM.AL# 12 LORD, THOU WILT ORDAIN PEACE FOR US: FOR THOU ALSO HAST WROUGHT ALL OUR WORKS IN US.,K# 13 O LORD OUR GOD, OTHER LORDS BESIDE THEE HAVE HAD DOMINION OVER US: BUTE/ BY THEE ONLY WILL WE MAKE MENTION OF THY NAME.TJ# 14 THEY ARE DEAD, THEY SHALL NOT LIVE; THEY ARE DECEASED, THEY SHALL NOTI RISE: THEREFORE HAST THOU VISITED AND DESTROYED THEM, AND MADE ALL THEIRT MEMORY TO PERISH.L# 15 THOU HAST INCREASED THE NATION, O LORD, THOU HAST INCREASED THE NATION:N THOU ART GLORIFIED: THOU HADST REMOVED IT FAR UNTO ALL THE ENDS OF THE EARTH.K# 16 LORD, IN TROUBLE HAVE THEY VISITED THEE, THEY POURED OUT A PRAYER WHENO THY CHASTENING WAS UPON THEM.L# 17 LIKE AS A WOMAN WITH CHILD, THAT DRAWETH NEAR THE TIME OF HER DELIVERY,I IS IN PAIN, AND CRIETH OUT IN HER PANGS; SO HAVE WE BEEN IN THY SIGHT, OS LORD.F# 18 WE HAVE BEEN WITH CHILD, WE HAVE BEEN IN PAIN, WE HAVE AS IT WEREN BROUGHT FORTH WIND; WE HAVE NOT WROUGHT ANY DELIVERANCE IN THE EARTH; NEITHER* HAVE THE INHABITANTS OF THE WORLD FALLEN.J# 19 THY DEAD MEN SHALL LIVE, TOGETHER WITH MY DEAD BODY SHALL THEY ARISE.K AWAKE AND SING, YE THAT DWELL IN DUST: FOR THY DEW IS AS THE DEW OF HERBS,.' AND THE EARTH SHALL CAST OUT THE DEAD.RL# 20 COME, MY PEOPLE, ENTER THOU INTO THY CHAMBERS, AND SHUT THY DOORS ABOUTL THEE: HIDE THYSELF AS IT WERE FOR A LITTLE MOMENT, UNTIL THE INDIGNATION BE OVERPAST.L# 21 FOR, BEHOLD, THE LORD COMETH OUT OF HIS PLACE TO PUNISH THE INHABITANTSN OF THE EARTH FOR THEIR INIQUITY: THE EARTH ALSO SHALL DISCLOSE HER BLOOD, AND SHALL NO MORE COVER HER SLAIN.T = CHAPTER 27 SN# 1 IN THAT DAY THE LORD WITH HIS SORE AND GREAT AND STRONG SWORD SHALL PUNISHL LEVIATHAN THE PIERCING SERPENT, EVEN LEVIATHAN THAT CROOKED SERPENT; AND HE* SHALL SLAY THE DRAGON THAT IS IN THE SEA.9# 2 IN THAT DAY SING YE UNTO HER, A VINEYARD OF RED WINE.OL# 3 I THE LORD DO KEEP IT; I WILL WATER IT EVERY MOMENT: LEST ANY HURT IT, I WILL KEEP IT NIGHT AND DAY.H# 4 FURY IS NOT IN ME: WHO WOULD SET THE BRIERS AND THORNS AGAINST ME IN= BATTLE? I WOULD GO THROUGH THEM, I WOULD BURN THEM TOGETHER. L# 5 OR LET HIM TAKE HOLD OF MY STRENGTH, THAT HE MAY MAKE PEACE WITH ME; AND HE SHALL MAKE PEA00u98<%X>%+%O-%TADATADATACE WITH ME. M# 6 HE SHALL CAUSE THEM THAT COME OF JACOB TO TAKE ROOT: ISRAEL SHALL BLOSSOMA4 AND BUD, AND FILL THE FACE OF THE WORLD WITH FRUIT.I# 7 HATH HE SMITTEN HIM, AS HE SMOTE THOSE THAT SMOTE HIM? OR IS HE SLAINM: ACCORDING TO THE SLAUGHTER OF THEM THAT ARE SLAIN BY HIM?L# 8 IN MEASURE, WHEN IT SHOOTETH FORTH, THOU WILT DEBATE WITH IT: HE STAYETH, HIS ROUGH WIND IN THE DAY OF THE EAST WIND.L# 9 BY THIS THEREFORE SHALL THE INIQUITY OF JACOB BE PURGED; AND THIS IS ALLN THE FRUIT TO TAKE AWAY HIS SIN; WHEN HE MAKETH ALL THE STONES OF THE ALTAR ASM CHALKSTONES THAT ARE BEATEN IN SUNDER, THE GROVES AND IMAGES SHALL NOT STANDR UP.J# 10 YET THE DEFENCED CITY SHALL BE DESOLATE, AND THE HABITATION FORSAKEN,N AND LEFT LIKE A WILDERNESS: THERE SHALL THE CALF FEED, AND THERE SHALL HE LIE( DOWN, AND CONSUME THE BRANCHES THEREOF.H# 11 WHEN THE BOUGHS THEREOF ARE WITHERED, THEY SHALL BE BROKEN OFF: THEJ WOMEN COME, AND SET THEM ON FIRE: FOR IT IS A PEOPLE OF NO UNDERSTANDING:L THEREFORE HE THAT MADE THEM WILL NOT HAVE MERCY ON THEM, AND HE THAT FORMED THEM WILL SHEW THEM NO FAVOUR. M# 12 AND IT SHALL COME TO PASS IN THAT DAY, THAT THE LORD SHALL BEAT OFF FROMYL THE CHANNEL OF THE RIVER UNTO THE STREAM OF EGYPT, AND YE SHALL BE GATHERED% ONE BY ONE, O YE CHILDREN OF ISRAEL.HK# 13 AND IT SHALL COME TO PASS IN THAT DAY, THAT THE GREAT TRUMPET SHALL BEEN BLOWN, AND THEY SHALL COME WHICH WERE READY TO PERISH IN THE LAND OF ASSYRIA,N AND THE OUTCASTS IN THE LAND OF EGYPT, AND SHALL WORSHIP THE LORD IN THE HOLY MOUNT AT JERUSALEM. = CHAPTER 28 OJ# 1 WOE TO THE CROWN OF PRIDE, TO THE DRUNKARDS OF EPHRAIM, WHOSE GLORIOUSL BEAUTY IS A FADING FLOWER, WHICH ARE ON THE HEAD OF THE FAT VALLEYS OF THEM THAT ARE OVERCOME WITH WINE!BM# 2 BEHOLD, THE LORD HATH A MIGHTY AND STRONG ONE, WHICH AS A TEMPEST OF HAILAL AND A DESTROYING STORM, AS A FLOOD OF MIGHTY WATERS OVERFLOWING, SHALL CAST! DOWN TO THE EARTH WITH THE HAND.AH# 3 THE CROWN OF PRIDE, THE DRUNKARDS OF EPHRAIM, SHALL BE TRODDEN UNDER FEET:M# 4 AND THE GLORIOUS BEAUTY, WHICH IS ON THE HEAD OF THE FAT VALLEY, SHALL BEDN A FADING FLOWER, AND AS THE HASTY FRUIT BEFORE THE SUMMER; WHICH WHEN HE THATD LOOKETH UPON IT SEETH, WHILE IT IS YET IN HIS HAND HE EATETH IT UP.J# 5 IN THAT DAY SHALL THE LORD OF HOSTS BE FOR A CROWN OF GLORY, AND FOR A2 DIADEM OF BEAUTY, UNTO THE RESIDUE OF HIS PEOPLE,I# 6 AND FOR A SPIRIT OF JUDGMENT TO HIM THAT SITTETH IN JUDGMENT, AND FOR 3 STRENGTH TO THEM THAT TURN THE BATTLE TO THE GATE. K# 7 BUT THEY ALSO HAVE ERRED THROUGH WINE, AND THROUGH STRONG DRINK ARE OUTFM OF THE WAY; THE PRIEST AND THE PROPHET HAVE ERRED THROUGH STRONG DRINK, THEY M ARE SWALLOWED UP OF WINE, THEY ARE OUT OF THE WAY THROUGH STRONG DRINK; THEY ) ERR IN VISION, THEY STUMBLE IN JUDGMENT. H# 8 FOR ALL TABLES ARE FULL OF VOMIT AND FILTHINESS, SO THAT THERE IS NO PLACE CLEAN.HG# 9 WHOM SHALL HE TEACH KNOWLEDGE? AND WHOM SHALL HE MAKE TO UNDERSTANDEJ DOCTRINE? THEM THAT ARE WEANED FROM THE MILK, AND DRAWN FROM THE BREASTS.L# 10 FOR PRECEPT MUST BE UPON PRECEPT, PRECEPT UPON PRECEPT; LINE UPON LINE,3 LINE UPON LINE; HERE A LITTLE, AND THERE A LITTLE:RF# 11 FOR WITH STAMMERING LIPS AND ANOTHER TONGUE WILL HE SPEAK TO THIS PEOPLE.J# 12 TO WHOM HE SAID, THIS IS THE REST WHEREWITH YE MAY CAUSE THE WEARY TO; REST; AND THIS IS THE REFRESHING: YET THEY WOULD NOT HEAR.AI# 13 BUT THE WORD OF THE LORD WAS UNTO THEM PRECEPT UPON PRECEPT, PRECEPTDI UPON PRECEPT; LINE UPON LINE, LINE UPON LINE; HERE A LITTLE, AND THERE A N LITTLE; THAT THEY MIGHT GO, AND FALL BACKWARD, AND BE BROKEN, AND SNARED, AND TAKEN.LI# 14 WHEREFORE HEAR THE WORD OF THE LORD, YE SCORNFUL MEN, THAT RULE THISG PEOPLE WHICH IS IN JERUSALEM.L# 15 BECAUSE YE HAVE SAID, WE HAVE MADE A COVENANT WITH DEATH, AND WITH HELLI ARE WE AT AGREEMENT; WHEN THE OVERFLOWING SCOURGE SHALL PASS THROUGH, ITON SHALL NOT COME UNTO US: FOR WE HAVE MADE LIES OUR REFUGE, AND UNDER FALSEHOOD HAVE WE HID OURSELVES: C# 16 THEREFORE THUS SAITH THE LORD GOD, BEHOLD, I LAY IN ZION FOR A C FOUND00u99D%5%T6%! !ATION A STONE, A TRIED STONE, A PRECIOUS CORNER STONE, A SUREK4 FOUNDATION: HE THAT BELIEVETH SHALL NOT MAKE HASTE.L# 17 JUDGMENT ALSO WILL I LAY TO THE LINE, AND RIGHTEOUSNESS TO THE PLUMMET:G AND THE HAIL SHALL SWEEP AWAY THE REFUGE OF LIES, AND THE WATERS SHALLR OVERFLOW THE HIDING PLACE.SJ# 18 AND YOUR COVENANT WITH DEATH SHALL BE DISANNULLED, AND YOUR AGREEMENTL WITH HELL SHALL NOT STAND; WHEN THE OVERFLOWING SCOURGE SHALL PASS THROUGH,% THEN YE SHALL BE TRODDEN DOWN BY IT.NH# 19 FROM THE TIME THAT IT GOETH FORTH IT SHALL TAKE YOU: FOR MORNING BYL MORNING SHALL IT PASS OVER, BY DAY AND BY NIGHT: AND IT SHALL BE A VEXATION ONLY TO UNDERSTAND THE REPORT.RJ# 20 FOR THE BED IS SHORTER THAN THAT A MAN CAN STRETCH HIMSELF ON IT: AND; THE COVERING NARROWER THAN THAT HE CAN WRAP HIMSELF IN IT.8L# 21 FOR THE LORD SHALL RISE UP AS IN MOUNT PERAZIM, HE SHALL BE WROTH AS INN THE VALLEY OF GIBEON, THAT HE MAY DO HIS WORK, HIS STRANGE WORK; AND BRING TO PASS HIS ACT, HIS STRANGE ACT. K# 22 NOW THEREFORE BE YE NOT MOCKERS, LEST YOUR BANDS BE MADE STRONG: FOR IIN HAVE HEARD FROM THE LORD GOD OF HOSTS A CONSUMPTION, EVEN DETERMINED UPON THE WHOLE EARTH. A# 23 GIVE YE EAR, AND HEAR MY VOICE; HEARKEN, AND HEAR MY SPEECH.IK# 24 DOTH THE PLOWMAN PLOW ALL DAY TO SOW? DOTH HE OPEN AND BREAK THE CLODS8 OF HIS GROUND?RJ# 25 WHEN HE HATH MADE PLAIN THE FACE THEREOF, DOTH HE NOT CAST ABROAD THEI FITCHES, AND SCATTER THE CUMMIN, AND CAST IN THE PRINCIPAL WHEAT AND THE - APPOINTED BARLEY AND THE RIE IN THEIR PLACE?EE# 26 FOR HIS GOD DOTH INSTRUCT HIM TO DISCRETION, AND DOTH TEACH HIM.TM# 27 FOR THE FITCHES ARE NOT THRESHED WITH A THRESHING INSTRUMENT, NEITHER IS J A CART WHEEL TURNED ABOUT UPON THE CUMMIN; BUT THE FITCHES ARE BEATEN OUT) WITH A STAFF, AND THE CUMMIN WITH A ROD.EI# 28 BREAD CORN IS BRUISED; BECAUSE HE WILL NOT EVER BE THRESHING IT, NORFF BREAK IT WITH THE WHEEL OF HIS CART, NOR BRUISE IT WITH HIS HORSEMEN.I# 29 THIS ALSO COMETH FORTH FROM THE LORD OF HOSTS, WHICH IS WONDERFUL IN # COUNSEL, AND EXCELLENT IN WORKING.T = CHAPTER 29 TL# 1 WOE TO ARIEL, TO ARIEL, THE CITY WHERE DAVID DWELT! ADD YE YEAR TO YEAR; LET THEM KILL SACRIFICES.K# 2 YET I WILL DISTRESS ARIEL, AND THERE SHALL BE HEAVINESS AND SORROW: ANDT IT SHALL BE UNTO ME AS ARIEL.M# 3 AND I WILL CAMP AGAINST THEE ROUND ABOUT, AND WILL LAY SIEGE AGAINST THEEE3 WITH A MOUNT, AND I WILL RAISE FORTS AGAINST THEE. J# 4 AND THOU SHALT BE BROUGHT DOWN, AND SHALT SPEAK OUT OF THE GROUND, ANDK THY SPEECH SHALL BE LOW OUT OF THE DUST, AND THY VOICE SHALL BE, AS OF ONEPM THAT HATH A FAMILIAR SPIRIT, OUT OF THE GROUND, AND THY SPEECH SHALL WHISPERO OUT OF THE DUST.IM# 5 MOREOVER THE MULTITUDE OF THY STRANGERS SHALL BE LIKE SMALL DUST, AND THE L MULTITUDE OF THE TERRIBLE ONES SHALL BE AS CHAFF THAT PASSETH AWAY: YEA, IT! SHALL BE AT AN INSTANT SUDDENLY.AE# 6 THOU SHALT BE VISITED OF THE LORD OF HOSTS WITH THUNDER, AND WITHNF EARTHQUAKE, AND GREAT NOISE, WITH STORM AND TEMPEST, AND THE FLAME OF DEVOURING FIRE.K# 7 AND THE MULTITUDE OF ALL THE NATIONS THAT FIGHT AGAINST ARIEL, EVEN ALLAN THAT FIGHT AGAINST HER AND HER MUNITION, AND THAT DISTRESS HER, SHALL BE AS A DREAM OF A NIGHT VISION.OL# 8 IT SHALL EVEN BE AS WHEN AN HUNGRY MAN DREAMETH, AND, BEHOLD, HE EATETH;J BUT HE AWAKETH, AND HIS SOUL IS EMPTY: OR AS WHEN A THIRSTY MAN DREAMETH,L AND, BEHOLD, HE DRINKETH; BUT HE AWAKETH, AND, BEHOLD, HE IS FAINT, AND HISM SOUL HATH APPETITE: SO SHALL THE MULTITUDE OF ALL THE NATIONS BE, THAT FIGHTD AGAINST MOUNT ZION.K# 9 STAY YOURSELVES, AND WONDER; CRY YE OUT, AND CRY: THEY ARE DRUNKEN, BUT 8 NOT WITH WINE; THEY STAGGER, BUT NOT WITH STRONG DRINK.M# 10 FOR THE LORD HATH POURED OUT UPON YOU THE SPIRIT OF DEEP SLEEP, AND HATHGK CLOSED YOUR EYES: THE PROPHETS AND YOUR RULERS, THE SEERS HATH HE COVERED.PL# 11 AND THE VISION OF ALL IS BECOME UNTO YOU AS THE WORDS OF A BOOK THAT ISL SEALED, WHICH MEN DELIVER TO ONE THAT IS LEARNED, SAYING, READ THIS, I PRAY0 THEE: AND HE SAITH, I CANNOT; FOR IT IS SEALED:M# 12 AND THE BOOK 00u98<%X>%+%O-%TADATADATAIS DELIVERED TO HIM THAT IS NOT LEARNED, SAYING, READ THIS,U- I PRAY THEE: AND HE SAITH, I AM NOT LEARNED.OH# 13 WHEREFORE THE LORD SAID, FORASMUCH AS THIS PEOPLE DRAW NEAR ME WITHL THEIR MOUTH, AND WITH THEIR LIPS DO HONOUR ME, BUT HAVE REMOVED THEIR HEARTG FAR FROM ME, AND THEIR FEAR TOWARD ME IS TAUGHT BY THE PRECEPT OF MEN: I# 14 THEREFORE, BEHOLD, I WILL PROCEED TO DO A MARVELLOUS WORK AMONG THISEN PEOPLE, EVEN A MARVELLOUS WORK AND A WONDER: FOR THE WISDOM OF THEIR WISE MENG SHALL PERISH, AND THE UNDERSTANDING OF THEIR PRUDENT MEN SHALL BE HID.AJ# 15 WOE UNTO THEM THAT SEEK DEEP TO HIDE THEIR COUNSEL FROM THE LORD, ANDM THEIR WORKS ARE IN THE DARK, AND THEY SAY, WHO SEETH US? AND WHO KNOWETH US?TG# 16 SURELY YOUR TURNING OF THINGS UPSIDE DOWN SHALL BE ESTEEMED AS THEHM POTTERS CLAY: FOR SHALL THE WORK SAY OF HIM THAT MADE IT, HE MADE ME NOT? OR K SHALL THE THING FRAMED SAY OF HIM THAT FRAMED IT, HE HAD NO UNDERSTANDING?WJ# 17 IS IT NOT YET A VERY LITTLE WHILE, AND LEBANON SHALL BE TURNED INTO AF FRUITFUL FIELD, AND THE FRUITFUL FIELD SHALL BE ESTEEMED AS A FOREST?L# 18 AND IN THAT DAY SHALL THE DEAF HEAR THE WORDS OF THE BOOK, AND THE EYES> OF THE BLIND SHALL SEE OUT OF OBSCURITY, AND OUT OF DARKNESS.K# 19 THE MEEK ALSO SHALL INCREASE THEIR JOY IN THE LORD, AND THE POOR AMONGA- MEN SHALL REJOICE IN THE HOLY ONE OF ISRAEL.HL# 20 FOR THE TERRIBLE ONE IS BROUGHT TO NOUGHT, AND THE SCORNER IS CONSUMED,- AND ALL THAT WATCH FOR INIQUITY ARE CUT OFF:II# 21 THAT MAKE A MAN AN OFFENDER FOR A WORD, AND LAY A SNARE FOR HIM THATUF REPROVETH IN THE GATE, AND TURN ASIDE THE JUST FOR A THING OF NOUGHT.H# 22 THEREFORE THUS SAITH THE LORD, WHO REDEEMED ABRAHAM, CONCERNING THEK HOUSE OF JACOB, JACOB SHALL NOT NOW BE ASHAMED, NEITHER SHALL HIS FACE NOWI WAX PALE.L# 23 BUT WHEN HE SEETH HIS CHILDREN, THE WORK OF MINE HANDS, IN THE MIDST OFJ HIM, THEY SHALL SANCTIFY MY NAME, AND SANCTIFY THE HOLY ONE OF JACOB, AND SHALL FEAR THE GOD OF ISRAEL.I# 24 THEY ALSO THAT ERRED IN SPIRIT SHALL COME TO UNDERSTANDING, AND THEYE$ THAT MURMURED SHALL LEARN DOCTRINE. = CHAPTER 30 EN# 1 WOE TO THE REBELLIOUS CHILDREN, SAITH THE LORD, THAT TAKE COUNSEL, BUT NOTK OF ME; AND THAT COVER WITH A COVERING, BUT NOT OF MY SPIRIT, THAT THEY MAYN ADD SIN TO SIN:G# 2 THAT WALK TO GO DOWN INTO EGYPT, AND HAVE NOT ASKED AT MY MOUTH; TONM STRENGTHEN THEMSELVES IN THE STRENGTH OF PHARAOH, AND TO TRUST IN THE SHADOWO OF EGYPT!K# 3 THEREFORE SHALL THE STRENGTH OF PHARAOH BE YOUR SHAME, AND THE TRUST IN $ THE SHADOW OF EGYPT YOUR CONFUSION.D# 4 FOR HIS PRINCES WERE AT ZOAN, AND HIS AMBASSADORS CAME TO HANES.K# 5 THEY WERE ALL ASHAMED OF A PEOPLE THAT COULD NOT PROFIT THEM, NOR BE AN 3 HELP NOR PROFIT, BUT A SHAME, AND ALSO A REPROACH.TG# 6 THE BURDEN OF THE BEASTS OF THE SOUTH: INTO THE LAND OF TROUBLE ANDVM ANGUISH, FROM WHENCE COME THE YOUNG AND OLD LION, THE VIPER AND FIERY FLYING,M SERPENT, THEY WILL CARRY THEIR RICHES UPON THE SHOULDERS OF YOUNG ASSES, ANDHN THEIR TREASURES UPON THE BUNCHES OF CAMELS, TO A PEOPLE THAT SHALL NOT PROFIT THEM.M# 7 FOR THE EGYPTIANS SHALL HELP IN VAIN, AND TO NO PURPOSE: THEREFORE HAVE IS7 CRIED CONCERNING THIS, THEIR STRENGTH IS TO SIT STILL.K# 8 NOW GO, WRITE IT BEFORE THEM IN A TABLE, AND NOTE IT IN A BOOK, THAT ITE/ MAY BE FOR THE TIME TO COME FOR EVER AND EVER:L# 9 THAT THIS IS A REBELLIOUS PEOPLE, LYING CHILDREN, CHILDREN THAT WILL NOT HEAR THE LAW OF THE LORD:L# 10 WHICH SAY TO THE SEERS, SEE NOT; AND TO THE PROPHETS, PROPHESY NOT UNTO@ US RIGHT THINGS, SPEAK UNTO US SMOOTH THINGS, PROPHESY DECEITS:K# 11 GET YOU OUT OF THE WAY, TURN ASIDE OUT OF THE PATH, CAUSE THE HOLY ONE# OF ISRAEL TO CEASE FROM BEFORE US.HI# 12 WHEREFORE THUS SAITH THE HOLY ONE OF ISRAEL, BECAUSE YE DESPISE THISTB WORD, AND TRUST IN OPPRESSION AND PERVERSENESS, AND STAY THEREON:G# 13 THEREFORE THIS INIQUITY SHALL BE TO YOU AS A BREACH READY TO FALL,IK SWELLING OUT IN A HIGH WALL, WHOSE BREAKING COMETH SUDDENLY AT AN INSTANT. H# 14 AND HE SHALL BREAK IT AS THE BREAKING OF THE POTTERS VESS00u99D%5%T6%! !EL THAT ISN BROKEN IN PIECES; HE SHALL NOT SPARE: SO THAT THERE SHALL NOT BE FOUND IN THEM BURSTING OF IT A SHERD TO TAKE FIRE FROM THE HEARTH, OR TO TAKE WATER WITHALT OUT OF THE PIT.J# 15 FOR THUS SAITH THE LORD GOD, THE HOLY ONE OF ISRAEL; IN RETURNING ANDE REST SHALL YE BE SAVED; IN QUIETNESS AND IN CONFIDENCE SHALL BE YOUR  STRENGTH: AND YE WOULD NOT.L# 16 BUT YE SAID, NO; FOR WE WILL FLEE UPON HORSES; THEREFORE SHALL YE FLEE:J AND, WE WILL RIDE UPON THE SWIFT; THEREFORE SHALL THEY THAT PURSUE YOU BE SWIFT.EH# 17 ONE THOUSAND SHALL FLEE AT THE REBUKE OF ONE; AT THE REBUKE OF FIVEN SHALL YE FLEE: TILL YE BE LEFT AS A BEACON UPON THE TOP OF A MOUNTAIN, AND AS AN ENSIGN ON AN HILL.L# 18 AND THEREFORE WILL THE LORD WAIT, THAT HE MAY BE GRACIOUS UNTO YOU, ANDL THEREFORE WILL HE BE EXALTED, THAT HE MAY HAVE MERCY UPON YOU: FOR THE LORD> IS A GOD OF JUDGMENT: BLESSED ARE ALL THEY THAT WAIT FOR HIM.H# 19 FOR THE PEOPLE SHALL DWELL IN ZION AT JERUSALEM: THOU SHALT WEEP NOJ MORE: HE WILL BE VERY GRACIOUS UNTO THEE AT THE VOICE OF THY CRY; WHEN HE$ SHALL HEAR IT, HE WILL ANSWER THEE.J# 20 AND THOUGH THE LORD GIVE YOU THE BREAD OF ADVERSITY, AND THE WATER OFN AFFLICTION, YET SHALL NOT THY TEACHERS BE REMOVED INTO A CORNER ANY MORE, BUT# THINE EYES SHALL SEE THY TEACHERS:EK# 21 AND THINE EARS SHALL HEAR A WORD BEHIND THEE, SAYING, THIS IS THE WAY, M WALK YE IN IT, WHEN YE TURN TO THE RIGHT HAND, AND WHEN YE TURN TO THE LEFT. J# 22 YE SHALL DEFILE ALSO THE COVERING OF THY GRAVEN IMAGES OF SILVER, ANDJ THE ORNAMENT OF THY MOLTEN IMAGES OF GOLD: THOU SHALT CAST THEM AWAY AS A: MENSTRUOUS CLOTH; THOU SHALT SAY UNTO IT, GET THEE HENCE.L# 23 THEN SHALL HE GIVE THE RAIN OF THY SEED, THAT THOU SHALT SOW THE GROUNDH WITHAL; AND BREAD OF THE INCREASE OF THE EARTH, AND IT SHALL BE FAT AND@ PLENTEOUS: IN THAT DAY SHALL THY CATTLE FEED IN LARGE PASTURES.H# 24 THE OXEN LIKEWISE AND THE YOUNG ASSES THAT EAR THE GROUND SHALL EATL CLEAN PROVENDER, WHICH HATH BEEN WINNOWED WITH THE SHOVEL AND WITH THE FAN.K# 25 AND THERE SHALL BE UPON EVERY HIGH MOUNTAIN, AND UPON EVERY HIGH HILL, I RIVERS AND STREAMS OF WATERS IN THE DAY OF THE GREAT SLAUGHTER, WHEN THE TOWERS FALL.HM# 26 MOREOVER THE LIGHT OF THE MOON SHALL BE AS THE LIGHT OF THE SUN, AND THENL LIGHT OF THE SUN SHALL BE SEVENFOLD, AS THE LIGHT OF SEVEN DAYS, IN THE DAYM THAT THE LORD BINDETH UP THE BREACH OF HIS PEOPLE, AND HEALETH THE STROKE OFA THEIR WOUND.DJ# 27 BEHOLD, THE NAME OF THE LORD COMETH FROM FAR, BURNING WITH HIS ANGER,K AND THE BURDEN THEREOF IS HEAVY: HIS LIPS ARE FULL OF INDIGNATION, AND HISY TONGUE AS A DEVOURING FIRE:J# 28 AND HIS BREATH, AS AN OVERFLOWING STREAM, SHALL REACH TO THE MIDST OFM THE NECK, TO SIFT THE NATIONS WITH THE SIEVE OF VANITY: AND THERE SHALL BE A7 BRIDLE IN THE JAWS OF THE PEOPLE, CAUSING THEM TO ERR.EM# 29 YE SHALL HAVE A SONG, AS IN THE NIGHT WHEN A HOLY SOLEMNITY IS KEPT; ANDLN GLADNESS OF HEART, AS WHEN ONE GOETH WITH A PIPE TO COME INTO THE MOUNTAIN OF' THE LORD, TO THE MIGHTY ONE OF ISRAEL.BL# 30 AND THE LORD SHALL CAUSE HIS GLORIOUS VOICE TO BE HEARD, AND SHALL SHEWN THE LIGHTING DOWN OF HIS ARM, WITH THE INDIGNATION OF HIS ANGER, AND WITH THEI FLAME OF A DEVOURING FIRE, WITH SCATTERING, AND TEMPEST, AND HAILSTONES.DI# 31 FOR THROUGH THE VOICE OF THE LORD SHALL THE ASSYRIAN BE BEATEN DOWN,E WHICH SMOTE WITH A ROD.K# 32 AND IN EVERY PLACE WHERE THE GROUNDED STAFF SHALL PASS, WHICH THE LORDSJ SHALL LAY UPON HIM, IT SHALL BE WITH TABRETS AND HARPS: AND IN BATTLES OF SHAKING WILL HE FIGHT WITH IT.TM# 33 FOR TOPHET IS ORDAINED OF OLD; YEA, FOR THE KING IT IS PREPARED; HE HATHNN MADE IT DEEP AND LARGE: THE PILE THEREOF IS FIRE AND MUCH WOOD; THE BREATH OF6 THE LORD, LIKE A STREAM OF BRIMSTONE, DOTH KINDLE IT. = CHAPTER 31 RM# 1 WOE TO THEM THAT GO DOWN TO EGYPT FOR HELP; AND STAY ON HORSES, AND TRUSTEK IN CHARIOTS, BECAUSE THEY ARE MANY; AND IN HORSEMEN, BECAUSE THEY ARE VERYIN STRONG; BUT THEY LOOK NOT UNTO THE HOLY ONE OF ISRAEL, NEITHER SEEK THE LORD!H# 2 YET HE ALSO IS WISE, A00u98<%X>%+%O-%TADATADATAND WILL BRING EVIL, AND WILL NOT CALL BACK HISJ WORDS: BUT WILL ARISE AGAINST THE HOUSE OF THE EVILDOERS, AND AGAINST THE! HELP OF THEM THAT WORK INIQUITY.OK# 3 NOW THE EGYPTIANS ARE MEN, AND NOT GOD; AND THEIR HORSES FLESH, AND NOTHM SPIRIT. WHEN THE LORD SHALL STRETCH OUT HIS HAND, BOTH HE THAT HELPETH SHALL E FALL, AND HE THAT IS HOLPEN SHALL FALL DOWN, AND THEY ALL SHALL FAILS TOGETHER.I# 4 FOR THUS HATH THE LORD SPOKEN UNTO ME, LIKE AS THE LION AND THE YOUNGTH LION ROARING ON HIS PREY, WHEN A MULTITUDE OF SHEPHERDS IS CALLED FORTHM AGAINST HIM, HE WILL NOT BE AFRAID OF THEIR VOICE, NOR ABASE HIMSELF FOR THETM NOISE OF THEM: SO SHALL THE LORD OF HOSTS COME DOWN TO FIGHT FOR MOUNT ZION,T AND FOR THE HILL THEREOF.J# 5 AS BIRDS FLYING, SO WILL THE LORD OF HOSTS DEFEND JERUSALEM; DEFENDING? ALSO HE WILL DELIVER IT; AND PASSING OVER HE WILL PRESERVE IT. K# 6 TURN YE UNTO HIM FROM WHOM THE CHILDREN OF ISRAEL HAVE DEEPLY REVOLTED.LJ# 7 FOR IN THAT DAY EVERY MAN SHALL CAST AWAY HIS IDOLS OF SILVER, AND HISB IDOLS OF GOLD, WHICH YOUR OWN HANDS HAVE MADE UNTO YOU FOR A SIN.M# 8 THEN SHALL THE ASSYRIAN FALL WITH THE SWORD, NOT OF A MIGHTY MAN; AND THEHN SWORD, NOT OF A MEAN MAN, SHALL DEVOUR HIM: BUT HE SHALL FLEE FROM THE SWORD,( AND HIS YOUNG MEN SHALL BE DISCOMFITED.M# 9 AND HE SHALL PASS OVER TO HIS STRONG HOLD FOR FEAR, AND HIS PRINCES SHALLEH BE AFRAID OF THE ENSIGN, SAITH THE LORD, WHOSE FIRE IS IN ZION, AND HIS FURNACE IN JERUSALEM. = CHAPTER 32 J# 1 BEHOLD, A KING SHALL REIGN IN RIGHTEOUSNESS, AND PRINCES SHALL RULE IN JUDGMENT.J# 2 AND A MAN SHALL BE AS AN HIDING PLACE FROM THE WIND, AND A COVERT FROMN THE TEMPEST; AS RIVERS OF WATER IN A DRY PLACE, AS THE SHADOW OF A GREAT ROCK IN A WEARY LAND.OM# 3 AND THE EYES OF THEM THAT SEE SHALL NOT BE DIM, AND THE EARS OF THEM THATV HEAR SHALL HEARKEN.L# 4 THE HEART ALSO OF THE RASH SHALL UNDERSTAND KNOWLEDGE, AND THE TONGUE OF0 THE STAMMERERS SHALL BE READY TO SPEAK PLAINLY.M# 5 THE VILE PERSON SHALL BE NO MORE CALLED LIBERAL, NOR THE CHURL SAID TO BES BOUNTIFUL.NM# 6 FOR THE VILE PERSON WILL SPEAK VILLANY, AND HIS HEART WILL WORK INIQUITY,VN TO PRACTISE HYPOCRISY, AND TO UTTER ERROR AGAINST THE LORD, TO MAKE EMPTY THEH SOUL OF THE HUNGRY, AND HE WILL CAUSE THE DRINK OF THE THIRSTY TO FAIL.M# 7 THE INSTRUMENTS ALSO OF THE CHURL ARE EVIL: HE DEVISETH WICKED DEVICES TO G DESTROY THE POOR WITH LYING WORDS, EVEN WHEN THE NEEDY SPEAKETH RIGHT.HK# 8 BUT THE LIBERAL DEVISETH LIBERAL THINGS; AND BY LIBERAL THINGS SHALL HEI STAND.RM# 9 RISE UP, YE WOMEN THAT ARE AT EASE; HEAR MY VOICE, YE CARELESS DAUGHTERS;Y GIVE EAR UNTO MY SPEECH.NI# 10 MANY DAYS AND YEARS SHALL YE BE TROUBLED, YE CARELESS WOMEN: FOR THEA2 VINTAGE SHALL FAIL, THE GATHERING SHALL NOT COME.M# 11 TREMBLE, YE WOMEN THAT ARE AT EASE; BE TROUBLED, YE CARELESS ONES: STRIPV< YOU, AND MAKE YOU BARE, AND GIRD SACKCLOTH UPON YOUR LOINS.F# 12 THEY SHALL LAMENT FOR THE TEATS, FOR THE PLEASANT FIELDS, FOR THE FRUITFUL VINE.GJ# 13 UPON THE LAND OF MY PEOPLE SHALL COME UP THORNS AND BRIERS; YEA, UPON* ALL THE HOUSES OF JOY IN THE JOYOUS CITY:K# 14 BECAUSE THE PALACES SHALL BE FORSAKEN; THE MULTITUDE OF THE CITY SHALLEH BE LEFT; THE FORTS AND TOWERS SHALL BE FOR DENS FOR EVER, A JOY OF WILD ASSES, A PASTURE OF FLOCKS;M# 15 UNTIL THE SPIRIT BE POURED UPON US FROM ON HIGH, AND THE WILDERNESS BE AB@ FRUITFUL FIELD, AND THE FRUITFUL FIELD BE COUNTED FOR A FOREST.M# 16 THEN JUDGMENT SHALL DWELL IN THE WILDERNESS, AND RIGHTEOUSNESS REMAIN IN  THE FRUITFUL FIELD.D# 17 AND THE WORK OF RIGHTEOUSNESS SHALL BE PEACE; AND THE EFFECT OF0 RIGHTEOUSNESS QUIETNESS AND ASSURANCE FOR EVER.E# 18 AND MY PEOPLE SHALL DWELL IN A PEACEABLE HABITATION, AND IN SURES( DWELLINGS, AND IN QUIET RESTING PLACES;M# 19 WHEN IT SHALL HAIL, COMING DOWN ON THE FOREST; AND THE CITY SHALL BE LOW  IN A LOW PLACE.K# 20 BLESSED ARE YE THAT SOW BESIDE ALL WATERS, THAT SEND FORTH THITHER THE. FEET OF THE OX AND THE ASS. = CHAPTER 33 RE# 1 WOE TO THEE THAT SPOILEST, AND THOU WAST NOT SPOILED; 00u99D%5%T6%! !AND DEALESTWK TREACHEROUSLY, AND THEY DEALT NOT TREACHEROUSLY WITH THEE! WHEN THOU SHALTEJ CEASE TO SPOIL, THOU SHALT BE SPOILED; AND WHEN THOU SHALT MAKE AN END TO= DEAL TREACHEROUSLY, THEY SHALL DEAL TREACHEROUSLY WITH THEE.;K# 2 O LORD, BE GRACIOUS UNTO US; WE HAVE WAITED FOR THEE: BE THOU THEIR ARMO: EVERY MORNING, OUR SALVATION ALSO IN THE TIME OF TROUBLE.L# 3 AT THE NOISE OF THE TUMULT THE PEOPLE FLED; AT THE LIFTING UP OF THYSELF THE NATIONS WERE SCATTERED.K# 4 AND YOUR SPOIL SHALL BE GATHERED LIKE THE GATHERING OF THE CATERPILLER:A= AS THE RUNNING TO AND FRO OF LOCUSTS SHALL HE RUN UPON THEM.IJ# 5 THE LORD IS EXALTED; FOR HE DWELLETH ON HIGH: HE HATH FILLED ZION WITH JUDGMENT AND RIGHTEOUSNESS.E# 6 AND WISDOM AND KNOWLEDGE SHALL BE THE STABILITY OF THY TIMES, AND = STRENGTH OF SALVATION: THE FEAR OF THE LORD IS HIS TREASURE. J# 7 BEHOLD, THEIR VALIANT ONES SHALL CRY WITHOUT: THE AMBASSADORS OF PEACE SHALL WEEP BITTERLY.I# 8 THE HIGHWAYS LIE WASTE, THE WAYFARING MAN CEASETH: HE HATH BROKEN THE < COVENANT, HE HATH DESPISED THE CITIES, HE REGARDETH NO MAN.I# 9 THE EARTH MOURNETH AND LANGUISHETH: LEBANON IS ASHAMED AND HEWN DOWN:OK SHARON IS LIKE A WILDERNESS; AND BASHAN AND CARMEL SHAKE OFF THEIR FRUITS.ML# 10 NOW WILL I RISE, SAITH THE LORD; NOW WILL I BE EXALTED; NOW WILL I LIFT UP MYSELF.OK# 11 YE SHALL CONCEIVE CHAFF, YE SHALL BRING FORTH STUBBLE: YOUR BREATH, AST FIRE, SHALL DEVOUR YOU.L# 12 AND THE PEOPLE SHALL BE AS THE BURNINGS OF LIME: AS THORNS CUT UP SHALL THEY BE BURNED IN THE FIRE.H# 13 HEAR, YE THAT ARE FAR OFF, WHAT I HAVE DONE; AND, YE THAT ARE NEAR, ACKNOWLEDGE MY MIGHT.C# 14 THE SINNERS IN ZION ARE AFRAID; FEARFULNESS HATH SURPRISED THEAK HYPOCRITES. WHO AMONG US SHALL DWELL WITH THE DEVOURING FIRE? WHO AMONG USD' SHALL DWELL WITH EVERLASTING BURNINGS?K# 15 HE THAT WALKETH RIGHTEOUSLY, AND SPEAKETH UPRIGHTLY; HE THAT DESPISETHRM THE GAIN OF OPPRESSIONS, THAT SHAKETH HIS HANDS FROM HOLDING OF BRIBES, THATNK STOPPETH HIS EARS FROM HEARING OF BLOOD, AND SHUTTETH HIS EYES FROM SEEING, EVIL;K# 16 HE SHALL DWELL ON HIGH: HIS PLACE OF DEFENCE SHALL BE THE MUNITIONS OF.; ROCKS: BREAD SHALL BE GIVEN HIM; HIS WATERS SHALL BE SURE.IL# 17 THINE EYES SHALL SEE THE KING IN HIS BEAUTY: THEY SHALL BEHOLD THE LAND THAT IS VERY FAR OFF.I# 18 THINE HEART SHALL MEDITATE TERROR. WHERE IS THE SCRIBE? WHERE IS THEU/ RECEIVER? WHERE IS HE THAT COUNTED THE TOWERS?SI# 19 THOU SHALT NOT SEE A FIERCE PEOPLE, A PEOPLE OF A DEEPER SPEECH THANAM THOU CANST PERCEIVE; OF A STAMMERING TONGUE, THAT THOU CANST NOT UNDERSTAND.HF# 20 LOOK UPON ZION, THE CITY OF OUR SOLEMNITIES: THINE EYES SHALL SEEM JERUSALEM A QUIET HABITATION, A TABERNACLE THAT SHALL NOT BE TAKEN DOWN; NOT J ONE OF THE STAKES THEREOF SHALL EVER BE REMOVED, NEITHER SHALL ANY OF THE CORDS THEREOF BE BROKEN.ML# 21 BUT THERE THE GLORIOUS LORD WILL BE UNTO US A PLACE OF BROAD RIVERS ANDJ STREAMS; WHEREIN SHALL GO NO GALLEY WITH OARS, NEITHER SHALL GALLANT SHIP PASS THEREBY.I# 22 FOR THE LORD IS OUR JUDGE, THE LORD IS OUR LAWGIVER, THE LORD IS OURN KING; HE WILL SAVE US.NI# 23 THY TACKLINGS ARE LOOSED; THEY COULD NOT WELL STRENGTHEN THEIR MAST,TK THEY COULD NOT SPREAD THE SAIL: THEN IS THE PREY OF A GREAT SPOIL DIVIDED;K THE LAME TAKE THE PREY.G# 24 AND THE INHABITANT SHALL NOT SAY, I AM SICK: THE PEOPLE THAT DWELLE* THEREIN SHALL BE FORGIVEN THEIR INIQUITY. = CHAPTER 34 SI# 1 COME NEAR, YE NATIONS, TO HEAR; AND HEARKEN, YE PEOPLE: LET THE EARTH L HEAR, AND ALL THAT IS THEREIN; THE WORLD, AND ALL THINGS THAT COME FORTH OF IT.J# 2 FOR THE INDIGNATION OF THE LORD IS UPON ALL NATIONS, AND HIS FURY UPONL ALL THEIR ARMIES: HE HATH UTTERLY DESTROYED THEM, HE HATH DELIVERED THEM TO THE SLAUGHTER.GL# 3 THEIR SLAIN ALSO SHALL BE CAST OUT, AND THEIR STINK SHALL COME UP OUT OFD THEIR CARCASES, AND THE MOUNTAINS SHALL BE MELTED WITH THEIR BLOOD.K# 4 AND ALL THE HOST OF HEAVEN SHALL BE DISSOLVED, AND THE HEAVENS SHALL BERM ROLLED TOGETHER AS A SCROLL: AND ALL THEIR HOST SHALL FALL DOWN, AS THE LEAFAC F00u98<%X>%+%O-%TADATADATAALLETH OFF FROM THE VINE, AND AS A FALLING FIG FROM THE FIG TREE.RK# 5 FOR MY SWORD SHALL BE BATHED IN HEAVEN: BEHOLD, IT SHALL COME DOWN UPOND6 IDUMEA, AND UPON THE PEOPLE OF MY CURSE, TO JUDGMENT.L# 6 THE SWORD OF THE LORD IS FILLED WITH BLOOD, IT IS MADE FAT WITH FATNESS,L AND WITH THE BLOOD OF LAMBS AND GOATS, WITH THE FAT OF THE KIDNEYS OF RAMS:N FOR THE LORD HATH A SACRIFICE IN BOZRAH, AND A GREAT SLAUGHTER IN THE LAND OF IDUMEA.I# 7 AND THE UNICORNS SHALL COME DOWN WITH THEM, AND THE BULLOCKS WITH THEFJ BULLS; AND THEIR LAND SHALL BE SOAKED WITH BLOOD, AND THEIR DUST MADE FAT WITH FATNESS.M# 8 FOR IT IS THE DAY OF THE LORDS VENGEANCE, AND THE YEAR OF RECOMPENCES FORC THE CONTROVERSY OF ZION. L# 9 AND THE STREAMS THEREOF SHALL BE TURNED INTO PITCH, AND THE DUST THEREOFA INTO BRIMSTONE, AND THE LAND THEREOF SHALL BECOME BURNING PITCH.:J# 10 IT SHALL NOT BE QUENCHED NIGHT NOR DAY; THE SMOKE THEREOF SHALL GO UPL FOR EVER: FROM GENERATION TO GENERATION IT SHALL LIE WASTE; NONE SHALL PASS THROUGH IT FOR EVER AND EVER.M# 11 BUT THE CORMORANT AND THE BITTERN SHALL POSSESS IT; THE OWL ALSO AND THEOF RAVEN SHALL DWELL IN IT: AND HE SHALL STRETCH OUT UPON IT THE LINE OF( CONFUSION, AND THE STONES OF EMPTINESS.I# 12 THEY SHALL CALL THE NOBLES THEREOF TO THE KINGDOM, BUT NONE SHALL BEM- THERE, AND ALL HER PRINCES SHALL BE NOTHING.GI# 13 AND THORNS SHALL COME UP IN HER PALACES, NETTLES AND BRAMBLES IN THEAN FORTRESSES THEREOF: AND IT SHALL BE AN HABITATION OF DRAGONS, AND A COURT FOR OWLS.J# 14 THE WILD BEASTS OF THE DESERT SHALL ALSO MEET WITH THE WILD BEASTS OFN THE ISLAND, AND THE SATYR SHALL CRY TO HIS FELLOW; THE SCREECH OWL ALSO SHALL2 REST THERE, AND FIND FOR HERSELF A PLACE OF REST.L# 15 THERE SHALL THE GREAT OWL MAKE HER NEST, AND LAY, AND HATCH, AND GATHERL UNDER HER SHADOW: THERE SHALL THE VULTURES ALSO BE GATHERED, EVERY ONE WITH HER MATE.I# 16 SEEK YE OUT OF THE BOOK OF THE LORD, AND READ: NO ONE OF THESE SHALLIH FAIL, NONE SHALL WANT HER MATE: FOR MY MOUTH IT HATH COMMANDED, AND HIS SPIRIT IT HATH GATHERED THEM.I# 17 AND HE HATH CAST THE LOT FOR THEM, AND HIS HAND HATH DIVIDED IT UNTO L THEM BY LINE: THEY SHALL POSSESS IT FOR EVER, FROM GENERATION TO GENERATION SHALL THEY DWELL THEREIN. = CHAPTER 35 KI# 1 THE WILDERNESS AND THE SOLITARY PLACE SHALL BE GLAD FOR THEM; AND THET/ DESERT SHALL REJOICE, AND BLOSSOM AS THE ROSE.RK# 2 IT SHALL BLOSSOM ABUNDANTLY, AND REJOICE EVEN WITH JOY AND SINGING: THEHN GLORY OF LEBANON SHALL BE GIVEN UNTO IT, THE EXCELLENCY OF CARMEL AND SHARON,E THEY SHALL SEE THE GLORY OF THE LORD, AND THE EXCELLENCY OF OUR GOD. ?# 3 STRENGTHEN YE THE WEAK HANDS, AND CONFIRM THE FEEBLE KNEES.SI# 4 SAY TO THEM THAT ARE OF A FEARFUL HEART, BE STRONG, FEAR NOT: BEHOLD,L YOUR GOD WILL COME WITH VENGEANCE, EVEN GOD WITH A RECOMPENCE; HE WILL COME AND SAVE YOU.H# 5 THEN THE EYES OF THE BLIND SHALL BE OPENED, AND THE EARS OF THE DEAF SHALL BE UNSTOPPED.M# 6 THEN SHALL THE LAME MAN LEAP AS AN HART, AND THE TONGUE OF THE DUMB SING:EI FOR IN THE WILDERNESS SHALL WATERS BREAK OUT, AND STREAMS IN THE DESERT.EL# 7 AND THE PARCHED GROUND SHALL BECOME A POOL, AND THE THIRSTY LAND SPRINGSL OF WATER: IN THE HABITATION OF DRAGONS, WHERE EACH LAY, SHALL BE GRASS WITH REEDS AND RUSHES.L# 8 AND AN HIGHWAY SHALL BE THERE, AND A WAY, AND IT SHALL BE CALLED THE WAYL OF HOLINESS; THE UNCLEAN SHALL NOT PASS OVER IT; BUT IT SHALL BE FOR THOSE:8 THE WAYFARING MEN, THOUGH FOOLS, SHALL NOT ERR THEREIN.J# 9 NO LION SHALL BE THERE, NOR ANY RAVENOUS BEAST SHALL GO UP THEREON, IT= SHALL NOT BE FOUND THERE; BUT THE REDEEMED SHALL WALK THERE:CK# 10 AND THE RANSOMED OF THE LORD SHALL RETURN, AND COME TO ZION WITH SONGSHN AND EVERLASTING JOY UPON THEIR HEADS: THEY SHALL OBTAIN JOY AND GLADNESS, AND$ SORROW AND SIGHING SHALL FLEE AWAY. = CHAPTER 36 TE# 1 NOW IT CAME TO PASS IN THE FOURTEENTH YEAR OF KING HEZEKIAH, THAT N SENNACHERIB KING OF ASSYRIA CAME UP AGAINST ALL THE DEFENCED CITIES OF JUDAH, AND TOOK THEM.LI# 2 AND THE KING OF ASSYRIA SENT RABSHAKEH FRO00u99D%5%T6%! !M LACHISH TO JERUSALEM UNTONJ KING HEZEKIAH WITH A GREAT ARMY. AND HE STOOD BY THE CONDUIT OF THE UPPER* POOL IN THE HIGHWAY OF THE FULLERS FIELD.M# 3 THEN CAME FORTH UNTO HIM ELIAKIM, HILKIAHS SON, WHICH WAS OVER THE HOUSE,G; AND SHEBNA THE SCRIBE, AND JOAH, ASAPHS SON, THE RECORDER. H# 4 AND RABSHAKEH SAID UNTO THEM, SAY YE NOW TO HEZEKIAH, THUS SAITH THEF GREAT KING, THE KING OF ASSYRIA, WHAT CONFIDENCE IS THIS WHEREIN THOU TRUSTEST?H# 5 I SAY, SAYEST THOU, (BUT THEY ARE BUT VAIN WORDS) I HAVE COUNSEL ANDK STRENGTH FOR WAR: NOW ON WHOM DOST THOU TRUST, THAT THOU REBELLEST AGAINSTD ME?L# 6 LO, THOU TRUSTEST IN THE STAFF OF THIS BROKEN REED, ON EGYPT; WHEREON IFL A MAN LEAN, IT WILL GO INTO HIS HAND, AND PIERCE IT : SO IS PHARAOH KING OF EGYPT TO ALL THAT TRUST IN HIM.L# 7 BUT IF THOU SAY TO ME, WE TRUST IN THE LORD OUR GOD: IS IT NOT HE, WHOSEM HIGH PLACES AND WHOSE ALTARS HEZEKIAH HATH TAKEN AWAY, AND SAID TO JUDAH ANDU2 TO JERUSALEM, YE SHALL WORSHIP BEFORE THIS ALTAR?E# 8 NOW THEREFORE GIVE PLEDGES, I PRAY THEE, TO MY MASTER THE KING OFTJ ASSYRIA, AND I WILL GIVE THEE TWO THOUSAND HORSES, IF THOU BE ABLE ON THY PART TO SET RIDERS UPON THEM.K# 9 HOW THEN WILT THOU TURN AWAY THE FACE OF ONE CAPTAIN OF THE LEAST OF MYAL MASTERS SERVANTS, AND PUT THY TRUST ON EGYPT FOR CHARIOTS AND FOR HORSEMEN?K# 10 AND AM I NOW COME UP WITHOUT THE LORD AGAINST THIS LAND TO DESTROY IT?E@ THE LORD SAID UNTO ME, GO UP AGAINST THIS LAND, AND DESTROY IT.H# 11 THEN SAID ELIAKIM AND SHEBNA AND JOAH UNTO RABSHAKEH, SPEAK, I PRAYJ THEE, UNTO THY SERVANTS IN THE SYRIAN LANGUAGE; FOR WE UNDERSTAND IT: ANDL SPEAK NOT TO US IN THE JEWS LANGUAGE, IN THE EARS OF THE PEOPLE THAT ARE ON THE WALL.L# 12 BUT RABSHAKEH SAID, HATH MY MASTER SENT ME TO THY MASTER AND TO THEE TOJ SPEAK THESE WORDS? HATH HE NOT SENT ME TO THE MEN THAT SIT UPON THE WALL,E THAT THEY MAY EAT THEIR OWN DUNG, AND DRINK THEIR OWN PISS WITH YOU?TL# 13 THEN RABSHAKEH STOOD, AND CRIED WITH A LOUD VOICE IN THE JEWS LANGUAGE,D AND SAID, HEAR YE THE WORDS OF THE GREAT KING, THE KING OF ASSYRIA.K# 14 THUS SAITH THE KING, LET NOT HEZEKIAH DECEIVE YOU: FOR HE SHALL NOT BES ABLE TO DELIVER YOU.OK# 15 NEITHER LET HEZEKIAH MAKE YOU TRUST IN THE LORD, SAYING, THE LORD WILL N SURELY DELIVER US: THIS CITY SHALL NOT BE DELIVERED INTO THE HAND OF THE KING OF ASSYRIA.I# 16 HEARKEN NOT TO HEZEKIAH: FOR THUS SAITH THE KING OF ASSYRIA, MAKE ANPL AGREEMENT WITH ME BY A PRESENT, AND COME OUT TO ME: AND EAT YE EVERY ONE OFN HIS VINE, AND EVERY ONE OF HIS FIG TREE, AND DRINK YE EVERY ONE THE WATERS OF HIS OWN CISTERN;TK# 17 UNTIL I COME AND TAKE YOU AWAY TO A LAND LIKE YOUR OWN LAND, A LAND OFV. CORN AND WINE, A LAND OF BREAD AND VINEYARDS.I# 18 BEWARE LEST HEZEKIAH PERSUADE YOU, SAYING, THE LORD WILL DELIVER US. N HATH ANY OF THE GODS OF THE NATIONS DELIVERED HIS LAND OUT OF THE HAND OF THE KING OF ASSYRIA?IC# 19 WHERE ARE THE GODS OF HAMATH AND ARPHAD? WHERE ARE THE GODS OFD< SEPHARVAIM? AND HAVE THEY DELIVERED SAMARIA OUT OF MY HAND?H# 20 WHO ARE THEY AMONG ALL THE GODS OF THESE LANDS, THAT HAVE DELIVEREDL THEIR LAND OUT OF MY HAND, THAT THE LORD SHOULD DELIVER JERUSALEM OUT OF MY HAND?J# 21 BUT THEY HELD THEIR PEACE, AND ANSWERED HIM NOT A WORD: FOR THE KINGS) COMMANDMENT WAS, SAYING, ANSWER HIM NOT. L# 22 THEN CAME ELIAKIM, THE SON OF HILKIAH, THAT WAS OVER THE HOUSEHOLD, ANDN SHEBNA THE SCRIBE, AND JOAH, THE SON OF ASAPH, THE RECORDER, TO HEZEKIAH WITH9 THEIR CLOTHES RENT, AND TOLD HIM THE WORDS OF RABSHAKEH.O = CHAPTER 37 F# 1 AND IT CAME TO PASS, WHEN KING HEZEKIAH HEARD IT, THAT HE RENT HISL CLOTHES, AND COVERED HIMSELF WITH SACKCLOTH, AND WENT INTO THE HOUSE OF THE LORD.K# 2 AND HE SENT ELIAKIM, WHO WAS OVER THE HOUSEHOLD, AND SHEBNA THE SCRIBE,N AND THE ELDERS OF THE PRIESTS COVERED WITH SACKCLOTH, UNTO ISAIAH THE PROPHET THE SON OF AMOZ.EE# 3 AND THEY SAID UNTO HIM, THUS SAITH HEZEKIAH, THIS DAY IS A DAY OFHK TROUBLE, AND OF REBUKE, AND OF BLASPHEMY: FOR THE CHILDREN ARE COME TO THER1 BIRTH, AND THERE IS NOT STRENGT00u98<%X>%+%O-%TADATADATAH TO BRING FORTH.,I# 4 IT MAY BE THE LORD THY GOD WILL HEAR THE WORDS OF RABSHAKEH, WHOM THELJ KING OF ASSYRIA HIS MASTER HATH SENT TO REPROACH THE LIVING GOD, AND WILLK REPROVE THE WORDS WHICH THE LORD THY GOD HATH HEARD: WHEREFORE LIFT UP THYF% PRAYER FOR THE REMNANT THAT IS LEFT.T4# 5 SO THE SERVANTS OF KING HEZEKIAH CAME TO ISAIAH.M# 6 AND ISAIAH SAID UNTO THEM, THUS SHALL YE SAY UNTO YOUR MASTER, THUS SAITHBI THE LORD, BE NOT AFRAID OF THE WORDS THAT THOU HAST HEARD, WHEREWITH THE 4 SERVANTS OF THE KING OF ASSYRIA HAVE BLASPHEMED ME.I# 7 BEHOLD, I WILL SEND A BLAST UPON HIM, AND HE SHALL HEAR A RUMOUR, ANDSM RETURN TO HIS OWN LAND; AND I WILL CAUSE HIM TO FALL BY THE SWORD IN HIS OWNH LAND.H# 8 SO RABSHAKEH RETURNED, AND FOUND THE KING OF ASSYRIA WARRING AGAINST< LIBNAH: FOR HE HAD HEARD THAT HE WAS DEPARTED FROM LACHISH.K# 9 AND HE HEARD SAY CONCERNING TIRHAKAH KING OF ETHIOPIA, HE IS COME FORTHAM TO MAKE WAR WITH THEE. AND WHEN HE HEARD IT, HE SENT MESSENGERS TO HEZEKIAH,  SAYING,L# 10 THUS SHALL YE SPEAK TO HEZEKIAH KING OF JUDAH, SAYING, LET NOT THY GOD,J IN WHOM THOU TRUSTEST, DECEIVE THEE, SAYING, JERUSALEM SHALL NOT BE GIVEN& INTO THE HAND OF THE KING OF ASSYRIA.M# 11 BEHOLD, THOU HAST HEARD WHAT THE KINGS OF ASSYRIA HAVE DONE TO ALL LANDSG9 BY DESTROYING THEM UTTERLY; AND SHALT THOU BE DELIVERED?OF# 12 HAVE THE GODS OF THE NATIONS DELIVERED THEM WHICH MY FATHERS HAVEK DESTROYED, AS GOZAN, AND HARAN, AND REZEPH, AND THE CHILDREN OF EDEN WHICHN WERE IN TELASSAR?M# 13 WHERE IS THE KING OF HAMATH, AND THE KING OF ARPHAD, AND THE KING OF THEH$ CITY OF SEPHARVAIM, HENA, AND IVAH?J# 14 AND HEZEKIAH RECEIVED THE LETTER FROM THE HAND OF THE MESSENGERS, ANDH READ IT: AND HEZEKIAH WENT UP UNTO THE HOUSE OF THE LORD, AND SPREAD IT BEFORE THE LORD. /# 15 AND HEZEKIAH PRAYED UNTO THE LORD, SAYING,RI# 16 O LORD OF HOSTS, GOD OF ISRAEL, THAT DWELLEST BETWEEN THE CHERUBIMS,EJ THOU ART THE GOD, EVEN THOU ALONE, OF ALL THE KINGDOMS OF THE EARTH: THOU HAST MADE HEAVEN AND EARTH.K# 17 INCLINE THINE EAR, O LORD, AND HEAR; OPEN THINE EYES, O LORD, AND SEE:TN AND HEAR ALL THE WORDS OF SENNACHERIB, WHICH HATH SENT TO REPROACH THE LIVING GOD.FL# 18 OF A TRUTH, LORD, THE KINGS OF ASSYRIA HAVE LAID WASTE ALL THE NATIONS, AND THEIR COUNTRIES,RK# 19 AND HAVE CAST THEIR GODS INTO THE FIRE: FOR THEY WERE NO GODS, BUT THEFH WORK OF MENS HANDS, WOOD AND STONE: THEREFORE THEY HAVE DESTROYED THEM.G# 20 NOW THEREFORE, O LORD OUR GOD, SAVE US FROM HIS HAND, THAT ALL THEEG KINGDOMS OF THE EARTH MAY KNOW THAT THOU ART THE LORD, EVEN THOU ONLY.EK# 21 THEN ISAIAH THE SON OF AMOZ SENT UNTO HEZEKIAH, SAYING, THUS SAITH THENL LORD GOD OF ISRAEL, WHEREAS THOU HAST PRAYED TO ME AGAINST SENNACHERIB KING OF ASSYRIA:L# 22 THIS IS THE WORD WHICH THE LORD HATH SPOKEN CONCERNING HIM; THE VIRGIN,I THE DAUGHTER OF ZION, HATH DESPISED THEE, AND LAUGHED THEE TO SCORN; THET4 DAUGHTER OF JERUSALEM HATH SHAKEN HER HEAD AT THEE.I# 23 WHOM HAST THOU REPROACHED AND BLASPHEMED? AND AGAINST WHOM HAST THOUTK EXALTED THY VOICE, AND LIFTED UP THINE EYES ON HIGH? EVEN AGAINST THE HOLYT ONE OF ISRAEL.NI# 24 BY THY SERVANTS HAST THOU REPROACHED THE LORD, AND HAST SAID, BY THE M MULTITUDE OF MY CHARIOTS AM I COME UP TO THE HEIGHT OF THE MOUNTAINS, TO THE N SIDES OF LEBANON; AND I WILL CUT DOWN THE TALL CEDARS THEREOF, AND THE CHOICEK FIR TREES THEREOF: AND I WILL ENTER INTO THE HEIGHT OF HIS BORDER, AND THET FOREST OF HIS CARMEL.H# 25 I HAVE DIGGED, AND DRUNK WATER; AND WITH THE SOLE OF MY FEET HAVE I0 DRIED UP ALL THE RIVERS OF THE BESIEGED PLACES.L# 26 HAST THOU NOT HEARD LONG AGO, HOW I HAVE DONE IT; AND OF ANCIENT TIMES,M THAT I HAVE FORMED IT? NOW HAVE I BROUGHT IT TO PASS, THAT THOU SHOULDEST BEI1 TO LAY WASTE DEFENCED CITIES INTO RUINOUS HEAPS.SL# 27 THEREFORE THEIR INHABITANTS WERE OF SMALL POWER, THEY WERE DISMAYED ANDK CONFOUNDED: THEY WERE AS THE GRASS OF THE FIELD, AND AS THE GREEN HERB, ASG THE GRASS ON THE HOUSETOPS, AND AS CORN BLASTED BEFORE IT BE GROWN UP. M# 28 BUT I KNOW THY ABODE, AND00u99D%5%T6%! ! THY GOING OUT, AND THY COMING IN, AND THY RAGEH AGAINST ME.L# 29 BECAUSE THY RAGE AGAINST ME, AND THY TUMULT, IS COME UP INTO MINE EARS,K THEREFORE WILL I PUT MY HOOK IN THY NOSE, AND MY BRIDLE IN THY LIPS, AND IE5 WILL TURN THEE BACK BY THE WAY BY WHICH THOU CAMEST.IG# 30 AND THIS SHALL BE A SIGN UNTO THEE, YE SHALL EAT THIS YEAR SUCH AS M GROWETH OF ITSELF; AND THE SECOND YEAR THAT WHICH SPRINGETH OF THE SAME: ANDOK IN THE THIRD YEAR SOW YE, AND REAP, AND PLANT VINEYARDS, AND EAT THE FRUITD THEREOF.GK# 31 AND THE REMNANT THAT IS ESCAPED OF THE HOUSE OF JUDAH SHALL AGAIN TAKEG& ROOT DOWNWARD, AND BEAR FRUIT UPWARD:L# 32 FOR OUT OF JERUSALEM SHALL GO FORTH A REMNANT, AND THEY THAT ESCAPE OUT< OF MOUNT ZION: THE ZEAL OF THE LORD OF HOSTS SHALL DO THIS.K# 33 THEREFORE THUS SAITH THE LORD CONCERNING THE KING OF ASSYRIA, HE SHALLUK NOT COME INTO THIS CITY, NOR SHOOT AN ARROW THERE, NOR COME BEFORE IT WITHA% SHIELDS, NOR CAST A BANK AGAINST IT.DM# 34 BY THE WAY THAT HE CAME, BY THE SAME SHALL HE RETURN, AND SHALL NOT COMET INTO THIS CITY, SAITH THE LORD.I# 35 FOR I WILL DEFEND THIS CITY TO SAVE IT FOR MINE OWN SAKE, AND FOR MYT SERVANT DAVIDS SAKE.FH# 36 THEN THE ANGEL OF THE LORD WENT FORTH, AND SMOTE IN THE CAMP OF THEI ASSYRIANS A HUNDRED AND FOURSCORE AND FIVE THOUSAND: AND WHEN THEY AROSE : EARLY IN THE MORNING, BEHOLD, THEY WERE ALL DEAD CORPSES.H# 37 SO SENNACHERIB KING OF ASSYRIA DEPARTED, AND WENT AND RETURNED, AND DWELT AT NINEVEH.K# 38 AND IT CAME TO PASS, AS HE WAS WORSHIPPING IN THE HOUSE OF NISROCH HISIJ GOD, THAT ADRAMMELECH AND SHAREZER HIS SONS SMOTE HIM WITH THE SWORD; ANDM THEY ESCAPED INTO THE LAND OF ARMENIA: AND ESARHADDON HIS SON REIGNED IN HIST STEAD.E = CHAPTER 38 MN# 1 IN THOSE DAYS WAS HEZEKIAH SICK UNTO DEATH. AND ISAIAH THE PROPHET THE SONI OF AMOZ CAME UNTO HIM, AND SAID UNTO HIM, THUS SAITH THE LORD, SET THINEE2 HOUSE IN ORDER: FOR THOU SHALT DIE, AND NOT LIVE.L# 2 THEN HEZEKIAH TURNED HIS FACE TOWARD THE WALL, AND PRAYED UNTO THE LORD,L# 3 AND SAID, REMEMBER NOW, O LORD, I BESEECH THEE, HOW I HAVE WALKED BEFOREL THEE IN TRUTH AND WITH A PERFECT HEART, AND HAVE DONE THAT WHICH IS GOOD IN# THY SIGHT. AND HEZEKIAH WEPT SORE.I5# 4 THEN CAME THE WORD OF THE LORD TO ISAIAH, SAYING, F# 5 GO, AND SAY TO HEZEKIAH, THUS SAITH THE LORD, THE GOD OF DAVID THYK FATHER, I HAVE HEARD THY PRAYER, I HAVE SEEN THY TEARS: BEHOLD, I WILL ADD: UNTO THY DAYS FIFTEEN YEARS.VH# 6 AND I WILL DELIVER THEE AND THIS CITY OUT OF THE HAND OF THE KING OF& ASSYRIA: AND I WILL DEFEND THIS CITY.K# 7 AND THIS SHALL BE A SIGN UNTO THEE FROM THE LORD, THAT THE LORD WILL DOC THIS THING THAT HE HATH SPOKEN;L# 8 BEHOLD, I WILL BRING AGAIN THE SHADOW OF THE DEGREES, WHICH IS GONE DOWNG IN THE SUN DIAL OF AHAZ, TEN DEGREES BACKWARD. SO THE SUN RETURNED TENO, DEGREES, BY WHICH DEGREES IT WAS GONE DOWN.I# 9 THE WRITING OF HEZEKIAH KING OF JUDAH, WHEN HE HAD BEEN SICK, AND WASF RECOVERED OF HIS SICKNESS:DI# 10 I SAID IN THE CUTTING OFF OF MY DAYS, I SHALL GO TO THE GATES OF THEI1 GRAVE: I AM DEPRIVED OF THE RESIDUE OF MY YEARS.UH# 11 I SAID, I SHALL NOT SEE THE LORD, EVEN THE LORD, IN THE LAND OF THEF LIVING: I SHALL BEHOLD MAN NO MORE WITH THE INHABITANTS OF THE WORLD.M# 12 MINE AGE IS DEPARTED, AND IS REMOVED FROM ME AS A SHEPHERDS TENT: I HAVEEM CUT OFF LIKE A WEAVER MY LIFE: HE WILL CUT ME OFF WITH PINING SICKNESS: FROMA/ DAY EVEN TO NIGHT WILT THOU MAKE AN END OF ME.M# 13 I RECKONED TILL MORNING, THAT, AS A LION, SO WILL HE BREAK ALL MY BONES:L4 FROM DAY EVEN TO NIGHT WILT THOU MAKE AN END OF ME.M# 14 LIKE A CRANE OR A SWALLOW, SO DID I CHATTER: I DID MOURN AS A DOVE: MINENI EYES FAIL WITH LOOKING UPWARD: O LORD, I AM OPPRESSED; UNDERTAKE FOR ME.OM# 15 WHAT SHALL I SAY? HE HATH BOTH SPOKEN UNTO ME, AND HIMSELF HATH DONE IT:T= I SHALL GO SOFTLY ALL MY YEARS IN THE BITTERNESS OF MY SOUL.FM# 16 O LORD, BY THESE THINGS MEN LIVE, AND IN ALL THESE THINGS IS THE LIFE OF9 MY SPIRIT: SO WILT THOU RECOVER ME, AND MAKE ME TO LIVE.RJ# 17 BEHOLD, FOR PEACE I HAD GREAT BIT00u98<%X>%+%O-%TADATADATATERNESS: BUT THOU HAST IN LOVE TO MYM SOUL DELIVERED IT FROM THE PIT OF CORRUPTION: FOR THOU HAST CAST ALL MY SINSE BEHIND THY BACK.NI# 18 FOR THE GRAVE CANNOT PRAISE THEE, DEATH CAN NOT CELEBRATE THEE: THEY?5 THAT GO DOWN INTO THE PIT CANNOT HOPE FOR THY TRUTH.TH# 19 THE LIVING, THE LIVING, HE SHALL PRAISE THEE, AS I DO THIS DAY: THE3 FATHER TO THE CHILDREN SHALL MAKE KNOWN THY TRUTH.SJ# 20 THE LORD WAS READY TO SAVE ME: THEREFORE WE WILL SING MY SONGS TO THEH STRINGED INSTRUMENTS ALL THE DAYS OF OUR LIFE IN THE HOUSE OF THE LORD.H# 21 FOR ISAIAH HAD SAID, LET THEM TAKE A LUMP OF FIGS, AND LAY IT FOR A. PLAISTER UPON THE BOIL, AND HE SHALL RECOVER.M# 22 HEZEKIAH ALSO HAD SAID, WHAT IS THE SIGN THAT I SHALL GO UP TO THE HOUSEE OF THE LORD?E = CHAPTER 39 TK# 1 AT THAT TIME MERODACHBALADAN, THE SON OF BALADAN, KING OF BABYLON, SENTFK LETTERS AND A PRESENT TO HEZEKIAH: FOR HE HAD HEARD THAT HE HAD BEEN SICK,O AND WAS RECOVERED.EL# 2 AND HEZEKIAH WAS GLAD OF THEM, AND SHEWED THEM THE HOUSE OF HIS PRECIOUSM THINGS, THE SILVER, AND THE GOLD, AND THE SPICES, AND THE PRECIOUS OINTMENT, J AND ALL THE HOUSE OF HIS ARMOUR, AND ALL THAT WAS FOUND IN HIS TREASURES:N THERE WAS NOTHING IN HIS HOUSE, NOR IN ALL HIS DOMINION, THAT HEZEKIAH SHEWED THEM NOT.L# 3 THEN CAME ISAIAH THE PROPHET UNTO KING HEZEKIAH, AND SAID UNTO HIM, WHATM SAID THESE MEN? AND FROM WHENCE CAME THEY UNTO THEE? AND HEZEKIAH SAID, THEY 8 ARE COME FROM A FAR COUNTRY UNTO ME, EVEN FROM BABYLON.L# 4 THEN SAID HE, WHAT HAVE THEY SEEN IN THINE HOUSE? AND HEZEKIAH ANSWERED,N ALL THAT IS IN MINE HOUSE HAVE THEY SEEN: THERE IS NOTHING AMONG MY TREASURES THAT I HAVE NOT SHEWED THEM. E# 5 THEN SAID ISAIAH TO HEZEKIAH, HEAR THE WORD OF THE LORD OF HOSTS:NJ# 6 BEHOLD, THE DAYS COME, THAT ALL THAT IS IN THINE HOUSE, AND THAT WHICHF THY FATHERS HAVE LAID UP IN STORE UNTIL THIS DAY, SHALL BE CARRIED TO0 BABYLON: NOTHING SHALL BE LEFT, SAITH THE LORD.M# 7 AND OF THY SONS THAT SHALL ISSUE FROM THEE, WHICH THOU SHALT BEGET, SHALLVG THEY TAKE AWAY; AND THEY SHALL BE EUNUCHS IN THE PALACE OF THE KING OFH BABYLON.HI# 8 THEN SAID HEZEKIAH TO ISAIAH, GOOD IS THE WORD OF THE LORD WHICH THOU N HAST SPOKEN. HE SAID MOREOVER, FOR THERE SHALL BE PEACE AND TRUTH IN MY DAYS. = CHAPTER 40 C5# 1 COMFORT YE, COMFORT YE MY PEOPLE, SAITH YOUR GOD.TL# 2 SPEAK YE COMFORTABLY TO JERUSALEM, AND CRY UNTO HER, THAT HER WARFARE ISJ ACCOMPLISHED, THAT HER INIQUITY IS PARDONED: FOR SHE HATH RECEIVED OF THE$ LORDS HAND DOUBLE FOR ALL HER SINS.M# 3 THE VOICE OF HIM THAT CRIETH IN THE WILDERNESS, PREPARE YE THE WAY OF THEH9 LORD, MAKE STRAIGHT IN THE DESERT A HIGHWAY FOR OUR GOD. L# 4 EVERY VALLEY SHALL BE EXALTED, AND EVERY MOUNTAIN AND HILL SHALL BE MADEI LOW: AND THE CROOKED SHALL BE MADE STRAIGHT, AND THE ROUGH PLACES PLAIN:MK# 5 AND THE GLORY OF THE LORD SHALL BE REVEALED, AND ALL FLESH SHALL SEE ITT4 TOGETHER: FOR THE MOUTH OF THE LORD HATH SPOKEN IT.K# 6 THE VOICE SAID, CRY. AND HE SAID, WHAT SHALL I CRY? ALL FLESH IS GRASS,H> AND ALL THE GOODLINESS THEREOF IS AS THE FLOWER OF THE FIELD:J# 7 THE GRASS WITHERETH, THE FLOWER FADETH: BECAUSE THE SPIRIT OF THE LORD- BLOWETH UPON IT: SURELY THE PEOPLE IS GRASS.DI# 8 THE GRASS WITHERETH, THE FLOWER FADETH: BUT THE WORD OF OUR GOD SHALL  STAND FOR EVER.M# 9 O ZION, THAT BRINGEST GOOD TIDINGS, GET THEE UP INTO THE HIGH MOUNTAIN; OFM JERUSALEM, THAT BRINGEST GOOD TIDINGS, LIFT UP THY VOICE WITH STRENGTH; LIFTHE IT UP, BE NOT AFRAID; SAY UNTO THE CITIES OF JUDAH, BEHOLD YOUR GOD!L# 10 BEHOLD, THE LORD GOD WILL COME WITH STRONG HAND, AND HIS ARM SHALL RULEB FOR HIM: BEHOLD, HIS REWARD IS WITH HIM, AND HIS WORK BEFORE HIM.L# 11 HE SHALL FEED HIS FLOCK LIKE A SHEPHERD: HE SHALL GATHER THE LAMBS WITHK HIS ARM, AND CARRY THEM IN HIS BOSOM, AND SHALL GENTLY LEAD THOSE THAT AREI WITH YOUNG.J# 12 WHO HATH MEASURED THE WATERS IN THE HOLLOW OF HIS HAND, AND METED OUTK HEAVEN WITH THE SPAN, AND COMPREHENDED THE DUST OF THE EARTH IN A MEASURE,UA AND WEIGHED THE MOUNTAINS IN SCALES, AND THE HILLS IN A BAL00u:9D%5%T6%! !ANCE?OK# 13 WHO HATH DIRECTED THE SPIRIT OF THE LORD, OR BEING HIS COUNSELLOR HATHE TAUGHT HIM?M# 14 WITH WHOM TOOK HE COUNSEL, AND WHO INSTRUCTED HIM, AND TAUGHT HIM IN THESI PATH OF JUDGMENT, AND TAUGHT HIM KNOWLEDGE, AND SHEWED TO HIM THE WAY OFL UNDERSTANDING?EJ# 15 BEHOLD, THE NATIONS ARE AS A DROP OF A BUCKET, AND ARE COUNTED AS THEK SMALL DUST OF THE BALANCE: BEHOLD, HE TAKETH UP THE ISLES AS A VERY LITTLE  THING. M# 16 AND LEBANON IS NOT SUFFICIENT TO BURN, NOR THE BEASTS THEREOF SUFFICIENTE FOR A BURNT OFFERING.L# 17 ALL NATIONS BEFORE HIM ARE AS NOTHING; AND THEY ARE COUNTED TO HIM LESS THAN NOTHING, AND VANITY.J# 18 TO WHOM THEN WILL YE LIKEN GOD? OR WHAT LIKENESS WILL YE COMPARE UNTO HIM?WL# 19 THE WORKMAN MELTETH A GRAVEN IMAGE, AND THE GOLDSMITH SPREADETH IT OVER& WITH GOLD, AND CASTETH SILVER CHAINS.M# 20 HE THAT IS SO IMPOVERISHED THAT HE HATH NO OBLATION CHOOSETH A TREE THATEH WILL NOT ROT; HE SEEKETH UNTO HIM A CUNNING WORKMAN TO PREPARE A GRAVEN IMAGE, THAT SHALL NOT BE MOVED.M# 21 HAVE YE NOT KNOWN? HAVE YE NOT HEARD? HATH IT NOT BEEN TOLD YOU FROM THETH BEGINNING? HAVE YE NOT UNDERSTOOD FROM THE FOUNDATIONS OF THE EARTH? ITL# 22 IT IS HE THAT SITTETH UPON THE CIRCLE OF THE EARTH, AND THE INHABITANTSK THEREOF ARE AS GRASSHOPPERS; THAT STRETCHETH OUT THE HEAVENS AS A CURTAIN, . AND SPREADETH THEM OUT AS A TENT TO DWELL IN:L# 23 THAT BRINGETH THE PRINCES TO NOTHING; HE MAKETH THE JUDGES OF THE EARTH AS VANITY.GL# 24 YEA, THEY SHALL NOT BE PLANTED; YEA, THEY SHALL NOT BE SOWN: YEA, THEIRN STOCK SHALL NOT TAKE ROOT IN THE EARTH: AND HE SHALL ALSO BLOW UPON THEM, ANDF THEY SHALL WITHER, AND THE WHIRLWIND SHALL TAKE THEM AWAY AS STUBBLE.L# 25 TO WHOM THEN WILL YE LIKEN ME, OR SHALL I BE EQUAL? SAITH THE HOLY ONE.I# 26 LIFT UP YOUR EYES ON HIGH, AND BEHOLD WHO HATH CREATED THESE THINGS,AL THAT BRINGETH OUT THEIR HOST BY NUMBER: HE CALLETH THEM ALL BY NAMES BY THEI GREATNESS OF HIS MIGHT, FOR THAT HE IS STRONG IN POWER; NOT ONE FAILETH.TM# 27 WHY SAYEST THOU, O JACOB, AND SPEAKEST, O ISRAEL, MY WAY IS HID FROM THET2 LORD, AND MY JUDGMENT IS PASSED OVER FROM MY GOD?L# 28 HAST THOU NOT KNOWN? HAST THOU NOT HEARD, THAT THE EVERLASTING GOD, THEL LORD, THE CREATOR OF THE ENDS OF THE EARTH, FAINTETH NOT, NEITHER IS WEARY?, THERE IS NO SEARCHING OF HIS UNDERSTANDING.D# 29 HE GIVETH POWER TO THE FAINT; AND TO THEM THAT HAVE NO MIGHT HE INCREASETH STRENGTH.EF# 30 EVEN THE YOUTHS SHALL FAINT AND BE WEARY, AND THE YOUNG MEN SHALL UTTERLY FALL:L# 31 BUT THEY THAT WAIT UPON THE LORD SHALL RENEW THEIR STRENGTH; THEY SHALLJ MOUNT UP WITH WINGS AS EAGLES; THEY SHALL RUN, AND NOT BE WEARY; AND THEY SHALL WALK, AND NOT FAINT.H = CHAPTER 41 OE# 1 KEEP SILENCE BEFORE ME, O ISLANDS; AND LET THE PEOPLE RENEW THEIRHM STRENGTH: LET THEM COME NEAR; THEN LET THEM SPEAK: LET US COME NEAR TOGETHERR TO JUDGMENT.AJ# 2 WHO RAISED UP THE RIGHTEOUS MAN FROM THE EAST, CALLED HIM TO HIS FOOT,K GAVE THE NATIONS BEFORE HIM, AND MADE HIM RULE OVER KINGS? HE GAVE THEM AST9 THE DUST TO HIS SWORD, AND AS DRIVEN STUBBLE TO HIS BOW.HL# 3 HE PURSUED THEM, AND PASSED SAFELY; EVEN BY THE WAY THAT HE HAD NOT GONE WITH HIS FEET.LM# 4 WHO HATH WROUGHT AND DONE IT, CALLING THE GENERATIONS FROM THE BEGINNING?L3 I THE LORD, THE FIRST, AND WITH THE LAST; I AM HE.NI# 5 THE ISLES SAW IT, AND FEARED; THE ENDS OF THE EARTH WERE AFRAID, DREWH NEAR, AND CAME.K# 6 THEY HELPED EVERY ONE HIS NEIGHBOUR; AND EVERY ONE SAID TO HIS BROTHER,H BE OF GOOD COURAGE.M# 7 SO THE CARPENTER ENCOURAGED THE GOLDSMITH, AND HE THAT SMOOTHETH WITH THEHN HAMMER HIM THAT SMOTE THE ANVIL, SAYING, IT IS READY FOR THE SODERING: AND HE5 FASTENED IT WITH NAILS, THAT IT SHOULD NOT BE MOVED. K# 8 BUT THOU, ISRAEL, ART MY SERVANT, JACOB WHOM I HAVE CHOSEN, THE SEED OF  ABRAHAM MY FRIEND.EK# 9 THOU WHOM I HAVE TAKEN FROM THE ENDS OF THE EARTH, AND CALLED THEE FROMHN THE CHIEF MEN THEREOF, AND SAID UNTO THEE, THOU ART MY SERVANT; I HAVE CHOSEN THEE, AND NOT CAST THEE AWAY.L# 10 FEAR THOU NOT; FOR I AM WITH THEE: BE00u:8<%X>%+%O-%TADATADATA NOT DISMAYED; FOR I AM THY GOD: IN WILL STRENGTHEN THEE; YEA, I WILL HELP THEE; YEA, I WILL UPHOLD THEE WITH THE RIGHT HAND OF MY RIGHTEOUSNESS.J# 11 BEHOLD, ALL THEY THAT WERE INCENSED AGAINST THEE SHALL BE ASHAMED ANDK CONFOUNDED: THEY SHALL BE AS NOTHING; AND THEY THAT STRIVE WITH THEE SHALLT PERISH.L# 12 THOU SHALT SEEK THEM, AND SHALT NOT FIND THEM, EVEN THEM THAT CONTENDEDM WITH THEE: THEY THAT WAR AGAINST THEE SHALL BE AS NOTHING, AND AS A THING OF NOUGHT.L# 13 FOR I THE LORD THY GOD WILL HOLD THY RIGHT HAND, SAYING UNTO THEE, FEAR NOT; I WILL HELP THEE.HM# 14 FEAR NOT, THOU WORM JACOB, AND YE MEN OF ISRAEL; I WILL HELP THEE, SAITH 4 THE LORD, AND THY REDEEMER, THE HOLY ONE OF ISRAEL.L# 15 BEHOLD, I WILL MAKE THEE A NEW SHARP THRESHING INSTRUMENT HAVING TEETH:I THOU SHALT THRESH THE MOUNTAINS, AND BEAT THEM SMALL, AND SHALT MAKE THE  HILLS AS CHAFF.E# 16 THOU SHALT FAN THEM, AND THE WIND SHALL CARRY THEM AWAY, AND THEGL WHIRLWIND SHALL SCATTER THEM: AND THOU SHALT REJOICE IN THE LORD, AND SHALT! GLORY IN THE HOLY ONE OF ISRAEL.TL# 17 WHEN THE POOR AND NEEDY SEEK WATER, AND THERE IS NONE, AND THEIR TONGUEL FAILETH FOR THIRST, I THE LORD WILL HEAR THEM, I THE GOD OF ISRAEL WILL NOT FORSAKE THEM.I# 18 I WILL OPEN RIVERS IN HIGH PLACES, AND FOUNTAINS IN THE MIDST OF THEHN VALLEYS: I WILL MAKE THE WILDERNESS A POOL OF WATER, AND THE DRY LAND SPRINGS OF WATER.H# 19 I WILL PLANT IN THE WILDERNESS THE CEDAR, THE SHITTAH TREE, AND THEI MYRTLE, AND THE OIL TREE; I WILL SET IN THE DESERT THE FIR TREE, AND THEH! PINE, AND THE BOX TREE TOGETHER:HM# 20 THAT THEY MAY SEE, AND KNOW, AND CONSIDER, AND UNDERSTAND TOGETHER, THATTM THE HAND OF THE LORD HATH DONE THIS, AND THE HOLY ONE OF ISRAEL HATH CREATED IT.I# 21 PRODUCE YOUR CAUSE, SAITH THE LORD; BRING FORTH YOUR STRONG REASONS,E SAITH THE KING OF JACOB.EL# 22 LET THEM BRING THEM FORTH, AND SHEW US WHAT SHALL HAPPEN: LET THEM SHEWI THE FORMER THINGS, WHAT THEY BE, THAT WE MAY CONSIDER THEM, AND KNOW THET6 LATTER END OF THEM; OR DECLARE US THINGS FOR TO COME.M# 23 SHEW THE THINGS THAT ARE TO COME HEREAFTER, THAT WE MAY KNOW THAT YE ARERG GODS: YEA, DO GOOD, OR DO EVIL, THAT WE MAY BE DISMAYED, AND BEHOLD ITN TOGETHER.M# 24 BEHOLD, YE ARE OF NOTHING, AND YOUR WORK OF NOUGHT: AN ABOMINATION IS HEG THAT CHOOSETH YOU.AL# 25 I HAVE RAISED UP ONE FROM THE NORTH, AND HE SHALL COME: FROM THE RISINGN OF THE SUN SHALL HE CALL UPON MY NAME: AND HE SHALL COME UPON PRINCES AS UPON) MORTER, AND AS THE POTTER TREADETH CLAY. L# 26 WHO HATH DECLARED FROM THE BEGINNING, THAT WE MAY KNOW? AND BEFORETIME,N THAT WE MAY SAY, HE IS RIGHTEOUS? YEA, THERE IS NONE THAT SHEWETH, YEA, THERED IS NONE THAT DECLARETH, YEA, THERE IS NONE THAT HEARETH YOUR WORDS.I# 27 THE FIRST SHALL SAY TO ZION, BEHOLD, BEHOLD THEM: AND I WILL GIVE TOH* JERUSALEM ONE THAT BRINGETH GOOD TIDINGS.J# 28 FOR I BEHELD, AND THERE WAS NO MAN; EVEN AMONG THEM, AND THERE WAS NO= COUNSELLOR, THAT, WHEN I ASKED OF THEM, COULD ANSWER A WORD.HG# 29 BEHOLD, THEY ARE ALL VANITY; THEIR WORKS ARE NOTHING: THEIR MOLTEN  IMAGES ARE WIND AND CONFUSION.A = CHAPTER 42 EM# 1 BEHOLD MY SERVANT, WHOM I UPHOLD; MINE ELECT, IN WHOM MY SOUL DELIGHTETH;RN I HAVE PUT MY SPIRIT UPON HIM: HE SHALL BRING FORTH JUDGMENT TO THE GENTILES.I# 2 HE SHALL NOT CRY, NOR LIFT UP, NOR CAUSE HIS VOICE TO BE HEARD IN THEG STREET.H# 3 A BRUISED REED SHALL HE NOT BREAK, AND THE SMOKING FLAX SHALL HE NOT2 QUENCH: HE SHALL BRING FORTH JUDGMENT UNTO TRUTH.J# 4 HE SHALL NOT FAIL NOR BE DISCOURAGED, TILL HE HAVE SET JUDGMENT IN THE- EARTH: AND THE ISLES SHALL WAIT FOR HIS LAW.AL# 5 THUS SAITH GOD THE LORD, HE THAT CREATED THE HEAVENS, AND STRETCHED THEMN OUT; HE THAT SPREAD FORTH THE EARTH, AND THAT WHICH COMETH OUT OF IT; HE THATM GIVETH BREATH UNTO THE PEOPLE UPON IT, AND SPIRIT TO THEM THAT WALK THEREIN:EK# 6 I THE LORD HAVE CALLED THEE IN RIGHTEOUSNESS, AND WILL HOLD THINE HAND,IL AND WILL KEEP THEE, AND GIVE THEE FOR A COVENANT OF THE PEOPLE, FOR A LIGHT OF THE GENTILES;OK# 7 TO OPEN THE BLIN00u:u:D%5%T6%! !D EYES, TO BRING OUT THE PRISONERS FROM THE PRISON, ANDL3 THEM THAT SIT IN DARKNESS OUT OF THE PRISON HOUSE. L# 8 I AM THE LORD: THAT IS MY NAME: AND MY GLORY WILL I NOT GIVE TO ANOTHER,$ NEITHER MY PRAISE TO GRAVEN IMAGES.L# 9 BEHOLD, THE FORMER THINGS ARE COME TO PASS, AND NEW THINGS DO I DECLARE:- BEFORE THEY SPRING FORTH I TELL YOU OF THEM.RM# 10 SING UNTO THE LORD A NEW SONG, AND HIS PRAISE FROM THE END OF THE EARTH,RH YE THAT GO DOWN TO THE SEA, AND ALL THAT IS THEREIN; THE ISLES, AND THE INHABITANTS THEREOF.OG# 11 LET THE WILDERNESS AND THE CITIES THEREOF LIFT UP THEIR VOICE, THE L VILLAGES THAT KEDAR DOTH INHABIT: LET THE INHABITANTS OF THE ROCK SING, LET* THEM SHOUT FROM THE TOP OF THE MOUNTAINS.E# 12 LET THEM GIVE GLORY UNTO THE LORD, AND DECLARE HIS PRAISE IN THEH ISLANDS.EL# 13 THE LORD SHALL GO FORTH AS A MIGHTY MAN, HE SHALL STIR UP JEALOUSY LIKEM A MAN OF WAR: HE SHALL CRY, YEA, ROAR; HE SHALL PREVAIL AGAINST HIS ENEMIES.HG# 14 I HAVE LONG TIME HOLDEN MY PEACE; I HAVE BEEN STILL, AND REFRAINEDOM MYSELF: NOW WILL I CRY LIKE A TRAVAILING WOMAN; I WILL DESTROY AND DEVOUR ATL ONCE.M# 15 I WILL MAKE WASTE MOUNTAINS AND HILLS, AND DRY UP ALL THEIR HERBS; AND IR; WILL MAKE THE RIVERS ISLANDS, AND I WILL DRY UP THE POOLS.HM# 16 AND I WILL BRING THE BLIND BY A WAY THAT THEY KNEW NOT; I WILL LEAD THEMHK IN PATHS THAT THEY HAVE NOT KNOWN: I WILL MAKE DARKNESS LIGHT BEFORE THEM,,G AND CROOKED THINGS STRAIGHT. THESE THINGS WILL I DO UNTO THEM, AND NOT  FORSAKE THEM.L# 17 THEY SHALL BE TURNED BACK, THEY SHALL BE GREATLY ASHAMED, THAT TRUST IN? GRAVEN IMAGES, THAT SAY TO THE MOLTEN IMAGES, YE ARE OUR GODS.S8# 18 HEAR, YE DEAF; AND LOOK, YE BLIND, THAT YE MAY SEE.L# 19 WHO IS BLIND, BUT MY SERVANT? OR DEAF, AS MY MESSENGER THAT I SENT? WHO@ IS BLIND AS HE THAT IS PERFECT, AND BLIND AS THE LORDS SERVANT?I# 20 SEEING MANY THINGS, BUT THOU OBSERVEST NOT; OPENING THE EARS, BUT HE, HEARETH NOT.TM# 21 THE LORD IS WELL PLEASED FOR HIS RIGHTEOUSNESS SAKE; HE WILL MAGNIFY THE7 LAW, AND MAKE IT HONOURABLE.YL# 22 BUT THIS IS A PEOPLE ROBBED AND SPOILED; THEY ARE ALL OF THEM SNARED INH HOLES, AND THEY ARE HID IN PRISON HOUSES: THEY ARE FOR A PREY, AND NONE2 DELIVERETH; FOR A SPOIL, AND NONE SAITH, RESTORE.K# 23 WHO AMONG YOU WILL GIVE EAR TO THIS? WHO WILL HEARKEN AND HEAR FOR THEB TIME TO COME?M# 24 WHO GAVE JACOB FOR A SPOIL, AND ISRAEL TO THE ROBBERS? DID NOT THE LORD,BM HE AGAINST WHOM WE HAVE SINNED? FOR THEY WOULD NOT WALK IN HIS WAYS, NEITHERE! WERE THEY OBEDIENT UNTO HIS LAW.AE# 25 THEREFORE HE HATH POURED UPON HIM THE FURY OF HIS ANGER, AND THEAN STRENGTH OF BATTLE: AND IT HATH SET HIM ON FIRE ROUND ABOUT, YET HE KNEW NOT;0 AND IT BURNED HIM, YET HE LAID IT NOT TO HEART. = CHAPTER 43 TN# 1 BUT NOW THUS SAITH THE LORD THAT CREATED THEE, O JACOB, AND HE THAT FORMEDN THEE, O ISRAEL, FEAR NOT: FOR I HAVE REDEEMED THEE, I HAVE CALLED THEE BY THY NAME; THOU ART MINE. J# 2 WHEN THOU PASSEST THROUGH THE WATERS, I WILL BE WITH THEE; AND THROUGHN THE RIVERS, THEY SHALL NOT OVERFLOW THEE: WHEN THOU WALKEST THROUGH THE FIRE,D THOU SHALT NOT BE BURNED; NEITHER SHALL THE FLAME KINDLE UPON THEE.J# 3 FOR I AM THE LORD THY GOD, THE HOLY ONE OF ISRAEL, THY SAVIOUR: I GAVE2 EGYPT FOR THY RANSOM, ETHIOPIA AND SEBA FOR THEE.J# 4 SINCE THOU WAST PRECIOUS IN MY SIGHT, THOU HAST BEEN HONOURABLE, AND IN HAVE LOVED THEE: THEREFORE WILL I GIVE MEN FOR THEE, AND PEOPLE FOR THY LIFE.J# 5 FEAR NOT: FOR I AM WITH THEE: I WILL BRING THY SEED FROM THE EAST, AND GATHER THEE FROM THE WEST;OL# 6 I WILL SAY TO THE NORTH, GIVE UP; AND TO THE SOUTH, KEEP NOT BACK: BRING? MY SONS FROM FAR, AND MY DAUGHTERS FROM THE ENDS OF THE EARTH;RK# 7 EVEN EVERY ONE THAT IS CALLED BY MY NAME: FOR I HAVE CREATED HIM FOR MY,0 GLORY, I HAVE FORMED HIM; YEA, I HAVE MADE HIM.M# 8 BRING FORTH THE BLIND PEOPLE THAT HAVE EYES, AND THE DEAF THAT HAVE EARS.FC# 9 LET ALL THE NATIONS BE GATHERED TOGETHER, AND LET THE PEOPLE BE K ASSEMBLED: WHO AMONG THEM CAN DECLARE THIS, AND SHEW US FORMER THINGS? LETOJ THEM BRING 00u:8<%X>%+%O-%TADATADATAFORTH THEIR WITNESSES, THAT THEY MAY BE JUSTIFIED: OR LET THEM HEAR, AND SAY, IT IS TRUTH.L# 10 YE ARE MY WITNESSES, SAITH THE LORD, AND MY SERVANT WHOM I HAVE CHOSEN:N THAT YE MAY KNOW AND BELIEVE ME, AND UNDERSTAND THAT I AM HE: BEFORE ME THERE4 WAS NO GOD FORMED, NEITHER SHALL THERE BE AFTER ME.?# 11 I, EVEN I, AM THE LORD; AND BESIDE ME THERE IS NO SAVIOUR.AJ# 12 I HAVE DECLARED, AND HAVE SAVED, AND I HAVE SHEWED, WHEN THERE WAS NOM STRANGE GOD AMONG YOU: THEREFORE YE ARE MY WITNESSES, SAITH THE LORD, THAT II AM GOD.L# 13 YEA, BEFORE THE DAY WAS I AM HE; AND THERE IS NONE THAT CAN DELIVER OUT/ OF MY HAND: I WILL WORK, AND WHO SHALL LET IT?WI# 14 THUS SAITH THE LORD, YOUR REDEEMER, THE HOLY ONE OF ISRAEL; FOR YOUR M SAKE I HAVE SENT TO BABYLON, AND HAVE BROUGHT DOWN ALL THEIR NOBLES, AND THE & CHALDEANS, WHOSE CRY IS IN THE SHIPS.D# 15 I AM THE LORD, YOUR HOLY ONE, THE CREATOR OF ISRAEL, YOUR KING.J# 16 THUS SAITH THE LORD, WHICH MAKETH A WAY IN THE SEA, AND A PATH IN THE MIGHTY WATERS;EM# 17 WHICH BRINGETH FORTH THE CHARIOT AND HORSE, THE ARMY AND THE POWER; THEYNI SHALL LIE DOWN TOGETHER, THEY SHALL NOT RISE: THEY ARE EXTINCT, THEY ARE  QUENCHED AS TOW.OK# 18 REMEMBER YE NOT THE FORMER THINGS, NEITHER CONSIDER THE THINGS OF OLD.BK# 19 BEHOLD, I WILL DO A NEW THING; NOW IT SHALL SPRING FORTH; SHALL YE NOT M KNOW IT? I WILL EVEN MAKE A WAY IN THE WILDERNESS, AND RIVERS IN THE DESERT.RF# 20 THE BEAST OF THE FIELD SHALL HONOUR ME, THE DRAGONS AND THE OWLS:K BECAUSE I GIVE WATERS IN THE WILDERNESS, AND RIVERS IN THE DESERT, TO GIVE, DRINK TO MY PEOPLE, MY CHOSEN.SK# 21 THIS PEOPLE HAVE I FORMED FOR MYSELF; THEY SHALL SHEW FORTH MY PRAISE.EK# 22 BUT THOU HAST NOT CALLED UPON ME, O JACOB; BUT THOU HAST BEEN WEARY OFT ME, O ISRAEL.F# 23 THOU HAST NOT BROUGHT ME THE SMALL CATTLE OF THY BURNT OFFERINGS;M NEITHER HAST THOU HONOURED ME WITH THY SACRIFICES. I HAVE NOT CAUSED THEE TOE7 SERVE WITH AN OFFERING, NOR WEARIED THEE WITH INCENSE.AK# 24 THOU HAST BOUGHT ME NO SWEET CANE WITH MONEY, NEITHER HAST THOU FILLEDHK ME WITH THE FAT OF THY SACRIFICES: BUT THOU HAST MADE ME TO SERVE WITH THY 2 SINS, THOU HAST WEARIED ME WITH THINE INIQUITIES.M# 25 I, EVEN I, AM HE THAT BLOTTETH OUT THY TRANSGRESSIONS FOR MINE OWN SAKE, AND WILL NOT REMEMBER THY SINS.J# 26 PUT ME IN REMEMBRANCE: LET US PLEAD TOGETHER: DECLARE THOU, THAT THOU MAYEST BE JUSTIFIED.FM# 27 THY FIRST FATHER HATH SINNED, AND THY TEACHERS HAVE TRANSGRESSED AGAINSTH ME.K# 28 THEREFORE I HAVE PROFANED THE PRINCES OF THE SANCTUARY, AND HAVE GIVENL. JACOB TO THE CURSE, AND ISRAEL TO REPROACHES. = CHAPTER 44 E# 1 YET NOW HEAR, O JACOB MY SERVANT; AND ISRAEL, WHOM I HAVE CHOSEN:L# 2 THUS SAITH THE LORD THAT MADE THEE, AND FORMED THEE FROM THE WOMB, WHICHN WILL HELP THEE; FEAR NOT, O JACOB, MY SERVANT; AND THOU, JESURUN, WHOM I HAVE CHOSEN.K# 3 FOR I WILL POUR WATER UPON HIM THAT IS THIRSTY, AND FLOODS UPON THE DRYEH GROUND: I WILL POUR MY SPIRIT UPON THY SEED, AND MY BLESSING UPON THINE OFFSPRING:EH# 4 AND THEY SHALL SPRING UP AS AMONG THE GRASS, AS WILLOWS BY THE WATER COURSES.CM# 5 ONE SHALL SAY, I AM THE LORDS; AND ANOTHER SHALL CALL HIMSELF BY THE NAMEHG OF JACOB; AND ANOTHER SHALL SUBSCRIBE WITH HIS HAND UNTO THE LORD, ANDM' SURNAME HIMSELF BY THE NAME OF ISRAEL.OH# 6 THUS SAITH THE LORD THE KING OF ISRAEL, AND HIS REDEEMER THE LORD OFI HOSTS; I AM THE FIRST, AND I AM THE LAST; AND BESIDE ME THERE IS NO GOD.NL# 7 AND WHO, AS I, SHALL CALL, AND SHALL DECLARE IT, AND SET IT IN ORDER FORN ME, SINCE I APPOINTED THE ANCIENT PEOPLE? AND THE THINGS THAT ARE COMING, AND% SHALL COME, LET THEM SHEW UNTO THEM.OL# 8 FEAR YE NOT, NEITHER BE AFRAID: HAVE NOT I TOLD THEE FROM THAT TIME, ANDK HAVE DECLARED IT? YE ARE EVEN MY WITNESSES. IS THERE A GOD BESIDE ME? YEA, ! THERE IS NO GOD; I KNOW NOT ANY.HC# 9 THEY THAT MAKE A GRAVEN IMAGE ARE ALL OF THEM VANITY; AND THEIRTK DELECTABLE THINGS SHALL NOT PROFIT; AND THEY ARE THEIR OWN WITNESSES; THEYL- SEE NOT, NOR KNOW; THAT THEY MAY BE ASHAMED.RK# 10 WHO HATH FORM00u ::D%5%T6%! !ED A GOD, OR MOLTEN A GRAVEN IMAGE THAT IS PROFITABLE FORN NOTHING?AK# 11 BEHOLD, ALL HIS FELLOWS SHALL BE ASHAMED: AND THE WORKMEN, THEY ARE OFNJ MEN: LET THEM ALL BE GATHERED TOGETHER, LET THEM STAND UP; YET THEY SHALL* FEAR, AND THEY SHALL BE ASHAMED TOGETHER.J# 12 THE SMITH WITH THE TONGS BOTH WORKETH IN THE COALS, AND FASHIONETH ITG WITH HAMMERS, AND WORKETH IT WITH THE STRENGTH OF HIS ARMS: YEA, HE IS F HUNGRY, AND HIS STRENGTH FAILETH: HE DRINKETH NO WATER, AND IS FAINT.M# 13 THE CARPENTER STRETCHETH OUT HIS RULE; HE MARKETH IT OUT WITH A LINE; HENN FITTETH IT WITH PLANES, AND HE MARKETH IT OUT WITH THE COMPASS, AND MAKETH ITI AFTER THE FIGURE OF A MAN, ACCORDING TO THE BEAUTY OF A MAN; THAT IT MAY  REMAIN IN THE HOUSE.TL# 14 HE HEWETH HIM DOWN CEDARS, AND TAKETH THE CYPRESS AND THE OAK, WHICH HEM STRENGTHENETH FOR HIMSELF AMONG THE TREES OF THE FOREST: HE PLANTETH AN ASH,F AND THE RAIN DOTH NOURISH IT.K# 15 THEN SHALL IT BE FOR A MAN TO BURN: FOR HE WILL TAKE THEREOF, AND WARMEJ HIMSELF; YEA, HE KINDLETH IT, AND BAKETH BREAD; YEA, HE MAKETH A GOD, ANDG WORSHIPPETH IT; HE MAKETH IT A GRAVEN IMAGE, AND FALLETH DOWN THERETO.TL# 16 HE BURNETH PART THEREOF IN THE FIRE; WITH PART THEREOF HE EATETH FLESH;N HE ROASTETH ROAST, AND IS SATISFIED: YEA, HE WARMETH HIMSELF, AND SAITH, AHA,! I AM WARM, I HAVE SEEN THE FIRE:HG# 17 AND THE RESIDUE THEREOF HE MAKETH A GOD, EVEN HIS GRAVEN IMAGE: HE J FALLETH DOWN UNTO IT, AND WORSHIPPETH IT, AND PRAYETH UNTO IT, AND SAITH,! DELIVER ME; FOR THOU ART MY GOD.HJ# 18 THEY HAVE NOT KNOWN NOR UNDERSTOOD: FOR HE HATH SHUT THEIR EYES, THAT@ THEY CANNOT SEE; AND THEIR HEARTS, THAT THEY CANNOT UNDERSTAND.F# 19 AND NONE CONSIDERETH IN HIS HEART, NEITHER IS THERE KNOWLEDGE NORM UNDERSTANDING TO SAY, I HAVE BURNED PART OF IT IN THE FIRE; YEA, ALSO I HAVEIL BAKED BREAD UPON THE COALS THEREOF; I HAVE ROASTED FLESH, AND EATEN IT: ANDJ SHALL I MAKE THE RESIDUE THEREOF AN ABOMINATION? SHALL I FALL DOWN TO THE STOCK OF A TREE?NI# 20 HE FEEDETH ON ASHES: A DECEIVED HEART HATH TURNED HIM ASIDE, THAT HEUG CANNOT DELIVER HIS SOUL, NOR SAY, IS THERE NOT A LIE IN MY RIGHT HAND? H# 21 REMEMBER THESE, O JACOB AND ISRAEL; FOR THOU ART MY SERVANT: I HAVEK FORMED THEE; THOU ART MY SERVANT: O ISRAEL, THOU SHALT NOT BE FORGOTTEN OF  ME.H# 22 I HAVE BLOTTED OUT, AS A THICK CLOUD, THY TRANSGRESSIONS, AND, AS A; CLOUD, THY SINS: RETURN UNTO ME; FOR I HAVE REDEEMED THEE. L# 23 SING, O YE HEAVENS; FOR THE LORD HATH DONE IT: SHOUT, YE LOWER PARTS OFL THE EARTH: BREAK FORTH INTO SINGING, YE MOUNTAINS, O FOREST, AND EVERY TREEL THEREIN: FOR THE LORD HATH REDEEMED JACOB, AND GLORIFIED HIMSELF IN ISRAEL.H# 24 THUS SAITH THE LORD, THY REDEEMER, AND HE THAT FORMED THEE FROM THEN WOMB, I AM THE LORD THAT MAKETH ALL THINGS; THAT STRETCHETH FORTH THE HEAVENS2 ALONE; THAT SPREADETH ABROAD THE EARTH BY MYSELF;L# 25 THAT FRUSTRATETH THE TOKENS OF THE LIARS, AND MAKETH DIVINERS MAD; THAT? TURNETH WISE MEN BACKWARD, AND MAKETH THEIR KNOWLEDGE FOOLISH;AK# 26 THAT CONFIRMETH THE WORD OF HIS SERVANT, AND PERFORMETH THE COUNSEL OFRM HIS MESSENGERS; THAT SAITH TO JERUSALEM, THOU SHALT BE INHABITED; AND TO THERK CITIES OF JUDAH, YE SHALL BE BUILT, AND I WILL RAISE UP THE DECAYED PLACESE THEREOF:AB# 27 THAT SAITH TO THE DEEP, BE DRY, AND I WILL DRY UP THY RIVERS:E# 28 THAT SAITH OF CYRUS, HE IS MY SHEPHERD, AND SHALL PERFORM ALL MYTL PLEASURE: EVEN SAYING TO JERUSALEM, THOU SHALT BE BUILT; AND TO THE TEMPLE, THY FOUNDATION SHALL BE LAID. = CHAPTER 45 J# 1 THUS SAITH THE LORD TO HIS ANOINTED, TO CYRUS, WHOSE RIGHT HAND I HAVEN HOLDEN, TO SUBDUE NATIONS BEFORE HIM; AND I WILL LOOSE THE LOINS OF KINGS, TOG OPEN BEFORE HIM THE TWO LEAVED GATES; AND THE GATES SHALL NOT BE SHUT;AM# 2 I WILL GO BEFORE THEE, AND MAKE THE CROOKED PLACES STRAIGHT: I WILL BREAKVB IN PIECES THE GATES OF BRASS, AND CUT IN SUNDER THE BARS OF IRON:H# 3 AND I WILL GIVE THEE THE TREASURES OF DARKNESS, AND HIDDEN RICHES OFN SECRET PLACES, THAT THOU MAYEST KNOW THAT I, THE LORD, WHICH CALL THEE BY THY NAM00u(:8<%X>%+%O-%TADATADATAE, AM THE GOD OF ISRAEL.I# 4 FOR JACOB MY SERVANTS SAKE, AND ISRAEL MINE ELECT, I HAVE EVEN CALLEDLG THEE BY THY NAME: I HAVE SURNAMED THEE, THOUGH THOU HAST NOT KNOWN ME.DG# 5 I AM THE LORD, AND THERE IS NONE ELSE, THERE IS NO GOD BESIDE ME: IR, GIRDED THEE, THOUGH THOU HAST NOT KNOWN ME:J# 6 THAT THEY MAY KNOW FROM THE RISING OF THE SUN, AND FROM THE WEST, THAT@ THERE IS NONE BESIDE ME. I AM THE LORD, AND THERE IS NONE ELSE.K# 7 I FORM THE LIGHT, AND CREATE DARKNESS: I MAKE PEACE, AND CREATE EVIL: I, THE LORD DO ALL THESE THINGS.B# 8 DROP DOWN, YE HEAVENS, FROM ABOVE, AND LET THE SKIES POUR DOWNK RIGHTEOUSNESS: LET THE EARTH OPEN, AND LET THEM BRING FORTH SALVATION, AND B LET RIGHTEOUSNESS SPRING UP TOGETHER; I THE LORD HAVE CREATED IT.K# 9 WOE UNTO HIM THAT STRIVETH WITH HIS MAKER! LET THE POTSHERD STRIVE WITHHJ THE POTSHERDS OF THE EARTH. SHALL THE CLAY SAY TO HIM THAT FASHIONETH IT,1 WHAT MAKEST THOU? OR THY WORK, HE HATH NO HANDS?LL# 10 WOE UNTO HIM THAT SAITH UNTO HIS FATHER, WHAT BEGETTEST THOU? OR TO THE% WOMAN, WHAT HAST THOU BROUGHT FORTH?NJ# 11 THUS SAITH THE LORD, THE HOLY ONE OF ISRAEL, AND HIS MAKER, ASK ME OFG THINGS TO COME CONCERNING MY SONS, AND CONCERNING THE WORK OF MY HANDSP COMMAND YE ME.LK# 12 I HAVE MADE THE EARTH, AND CREATED MAN UPON IT: I, EVEN MY HANDS, HAVEP@ STRETCHED OUT THE HEAVENS, AND ALL THEIR HOST HAVE I COMMANDED.K# 13 I HAVE RAISED HIM UP IN RIGHTEOUSNESS, AND I WILL DIRECT ALL HIS WAYS:NK HE SHALL BUILD MY CITY, AND HE SHALL LET GO MY CAPTIVES, NOT FOR PRICE NORO! REWARD, SAITH THE LORD OF HOSTS.TJ# 14 THUS SAITH THE LORD, THE LABOUR OF EGYPT, AND MERCHANDISE OF ETHIOPIAN AND OF THE SABEANS, MEN OF STATURE, SHALL COME OVER UNTO THEE, AND THEY SHALLJ BE THINE: THEY SHALL COME AFTER THEE; IN CHAINS THEY SHALL COME OVER, ANDH THEY SHALL FALL DOWN UNTO THEE, THEY SHALL MAKE SUPPLICATION UNTO THEE,H SAYING, SURELY GOD IS IN THEE; AND THERE IS NONE ELSE, THERE IS NO GOD.M# 15 VERILY THOU ART A GOD THAT HIDEST THYSELF, O GOD OF ISRAEL, THE SAVIOUR.OK# 16 THEY SHALL BE ASHAMED, AND ALSO CONFOUNDED, ALL OF THEM: THEY SHALL GOD0 TO CONFUSION TOGETHER THAT ARE MAKERS OF IDOLS.L# 17 BUT ISRAEL SHALL BE SAVED IN THE LORD WITH AN EVERLASTING SALVATION: YE7 SHALL NOT BE ASHAMED NOR CONFOUNDED WORLD WITHOUT END. G# 18 FOR THUS SAITH THE LORD THAT CREATED THE HEAVENS; GOD HIMSELF THATPK FORMED THE EARTH AND MADE IT; HE HATH ESTABLISHED IT, HE CREATED IT NOT IN K VAIN, HE FORMED IT TO BE INHABITED: I AM THE LORD; AND THERE IS NONE ELSE.RJ# 19 I HAVE NOT SPOKEN IN SECRET, IN A DARK PLACE OF THE EARTH: I SAID NOTN UNTO THE SEED OF JACOB, SEEK YE ME IN VAIN: I THE LORD SPEAK RIGHTEOUSNESS, I DECLARE THINGS THAT ARE RIGHT.DM# 20 ASSEMBLE YOURSELVES AND COME; DRAW NEAR TOGETHER, YE THAT ARE ESCAPED OFWI THE NATIONS: THEY HAVE NO KNOWLEDGE THAT SET UP THE WOOD OF THEIR GRAVENM- IMAGE, AND PRAY UNTO A GOD THAT CANNOT SAVE.AK# 21 TELL YE, AND BRING THEM NEAR; YEA, LET THEM TAKE COUNSEL TOGETHER: WHO:L HATH DECLARED THIS FROM ANCIENT TIME? WHO HATH TOLD IT FROM THAT TIME? HAVEN NOT I THE LORD? AND THERE IS NO GOD ELSE BESIDE ME; A JUST GOD AND A SAVIOUR; THERE IS NONE BESIDE ME.EL# 22 LOOK UNTO ME, AND BE YE SAVED, ALL THE ENDS OF THE EARTH: FOR I AM GOD, AND THERE IS NONE ELSE.@# 23 I HAVE SWORN BY MYSELF, THE WORD IS GONE OUT OF MY MOUTH INN RIGHTEOUSNESS, AND SHALL NOT RETURN, THAT UNTO ME EVERY KNEE SHALL BOW, EVERY TONGUE SHALL SWEAR.J# 24 SURELY, SHALL ONE SAY, IN THE LORD HAVE I RIGHTEOUSNESS AND STRENGTH:K EVEN TO HIM SHALL MEN COME; AND ALL THAT ARE INCENSED AGAINST HIM SHALL BED ASHAMED.OL# 25 IN THE LORD SHALL ALL THE SEED OF ISRAEL BE JUSTIFIED, AND SHALL GLORY. = CHAPTER 46 ,N# 1 BEL BOWETH DOWN, NEBO STOOPETH, THEIR IDOLS WERE UPON THE BEASTS, AND UPONM THE CATTLE: YOUR CARRIAGES WERE HEAVY LOADEN; THEY ARE A BURDEN TO THE WEARYO BEAST.NJ# 2 THEY STOOP, THEY BOW DOWN TOGETHER; THEY COULD NOT DELIVER THE BURDEN,( BUT THEMSELVES ARE GONE INTO CAPTIVITY.J# 3 HEARKEN UNTO ME, O HOUSE OF JACOB, AND ALL THE REMNANT OF THE HOUSE OF00u0::D%5%T6%! !I ISRAEL, WHICH ARE BORNE BY ME FROM THE BELLY, WHICH ARE CARRIED FROM THEA WOMB:I# 4 AND EVEN TO YOUR OLD AGE I AM HE; AND EVEN TO HOAR HAIRS WILL I CARRYOL YOU: I HAVE MADE, AND I WILL BEAR; EVEN I WILL CARRY, AND WILL DELIVER YOU.L# 5 TO WHOM WILL YE LIKEN ME, AND MAKE ME EQUAL, AND COMPARE ME, THAT WE MAY BE LIKE?YI# 6 THEY LAVISH GOLD OUT OF THE BAG, AND WEIGH SILVER IN THE BALANCE, ANDEM HIRE A GOLDSMITH; AND HE MAKETH IT A GOD: THEY FALL DOWN, YEA, THEY WORSHIP.LG# 7 THEY BEAR HIM UPON THE SHOULDER, THEY CARRY HIM, AND SET HIM IN HISLK PLACE, AND HE STANDETH; FROM HIS PLACE SHALL HE NOT REMOVE: YEA, ONE SHALL F CRY UNTO HIM, YET CAN HE NOT ANSWER, NOR SAVE HIM OUT OF HIS TROUBLE.H# 8 REMEMBER THIS, AND SHEW YOURSELVES MEN: BRING IT AGAIN TO MIND, O YE TRANSGRESSORS.,L# 9 REMEMBER THE FORMER THINGS OF OLD: FOR I AM GOD, AND THERE IS NONE ELSE;% I AM GOD, AND THERE IS NONE LIKE ME,L# 10 DECLARING THE END FROM THE BEGINNING, AND FROM ANCIENT TIMES THE THINGSL THAT ARE NOT YET DONE, SAYING, MY COUNSEL SHALL STAND, AND I WILL DO ALL MY PLEASURE:M# 11 CALLING A RAVENOUS BIRD FROM THE EAST, THE MAN THAT EXECUTETH MY COUNSELYK FROM A FAR COUNTRY: YEA, I HAVE SPOKEN IT, I WILL ALSO BRING IT TO PASS; ID% HAVE PURPOSED IT, I WILL ALSO DO IT. G# 12 HEARKEN UNTO ME, YE STOUTHEARTED, THAT ARE FAR FROM RIGHTEOUSNESS:IM# 13 I BRING NEAR MY RIGHTEOUSNESS; IT SHALL NOT BE FAR OFF, AND MY SALVATIONDI SHALL NOT TARRY: AND I WILL PLACE SALVATION IN ZION FOR ISRAEL MY GLORY.A = CHAPTER 47 OL# 1 COME DOWN, AND SIT IN THE DUST, O VIRGIN DAUGHTER OF BABYLON, SIT ON THEK GROUND: THERE IS NO THRONE, O DAUGHTER OF THE CHALDEANS: FOR THOU SHALT NO $ MORE BE CALLED TENDER AND DELICATE.I# 2 TAKE THE MILLSTONES, AND GRIND MEAL: UNCOVER THY LOCKS, MAKE BARE THE . LEG, UNCOVER THE THIGH, PASS OVER THE RIVERS.J# 3 THY NAKEDNESS SHALL BE UNCOVERED, YEA, THY SHAME SHALL BE SEEN: I WILL3 TAKE VENGEANCE, AND I WILL NOT MEET THEE AS A MAN.IG# 4 AS FOR OUR REDEEMER, THE LORD OF HOSTS IS HIS NAME, THE HOLY ONE OFE ISRAEL.M# 5 SIT THOU SILENT, AND GET THEE INTO DARKNESS, O DAUGHTER OF THE CHALDEANS:O8 FOR THOU SHALT NO MORE BE CALLED, THE LADY OF KINGDOMS.K# 6 I WAS WROTH WITH MY PEOPLE, I HAVE POLLUTED MINE INHERITANCE, AND GIVEN:K THEM INTO THINE HAND: THOU DIDST SHEW THEM NO MERCY; UPON THE ANCIENT HASTV! THOU VERY HEAVILY LAID THY YOKE.CK# 7 AND THOU SAIDST, I SHALL BE A LADY FOR EVER: SO THAT THOU DIDST NOT LAY H THESE THINGS TO THY HEART, NEITHER DIDST REMEMBER THE LATTER END OF IT.L# 8 THEREFORE HEAR NOW THIS, THOU THAT ART GIVEN TO PLEASURES, THAT DWELLESTI CARELESSLY, THAT SAYEST IN THINE HEART, I AM, AND NONE ELSE BESIDE ME; IDE SHALL NOT SIT AS A WIDOW, NEITHER SHALL I KNOW THE LOSS OF CHILDREN:HL# 9 BUT THESE TWO THINGS SHALL COME TO THEE IN A MOMENT IN ONE DAY, THE LOSSN OF CHILDREN, AND WIDOWHOOD: THEY SHALL COME UPON THEE IN THEIR PERFECTION FORE THE MULTITUDE OF THY SORCERIES, AND FOR THE GREAT ABUNDANCE OF THINEO ENCHANTMENTS.L# 10 FOR THOU HAST TRUSTED IN THY WICKEDNESS: THOU HAST SAID, NONE SEETH ME.L THY WISDOM AND THY KNOWLEDGE, IT HATH PERVERTED THEE; AND THOU HAST SAID IN, THINE HEART, I AM, AND NONE ELSE BESIDE ME.L# 11 THEREFORE SHALL EVIL COME UPON THEE; THOU SHALT NOT KNOW FROM WHENCE ITL RISETH: AND MISCHIEF SHALL FALL UPON THEE; THOU SHALT NOT BE ABLE TO PUT ITN OFF: AND DESOLATION SHALL COME UPON THEE SUDDENLY, WHICH THOU SHALT NOT KNOW.E# 12 STAND NOW WITH THINE ENCHANTMENTS, AND WITH THE MULTITUDE OF THYTM SORCERIES, WHEREIN THOU HAST LABOURED FROM THY YOUTH; IF SO BE THOU SHALT BE.. ABLE TO PROFIT, IF SO BE THOU MAYEST PREVAIL.C# 13 THOU ART WEARIED IN THE MULTITUDE OF THY COUNSELS. LET NOW THEIM ASTROLOGERS, THE STARGAZERS, THE MONTHLY PROGNOSTICATORS, STAND UP, AND SAVEC2 THEE FROM THESE THINGS THAT SHALL COME UPON THEE.K# 14 BEHOLD, THEY SHALL BE AS STUBBLE; THE FIRE SHALL BURN THEM; THEY SHALLDN NOT DELIVER THEMSELVES FROM THE POWER OF THE FLAME: THERE SHALL NOT BE A COAL' TO WARM AT, NOR FIRE TO SIT BEFORE IT.RH# 15 THUS SHALL THEY BE UNTO THEE WITH00u8:8<%X>%+%O-%TADATADATA WHOM THOU HAST LABOURED, EVEN THYL MERCHANTS, FROM THY YOUTH: THEY SHALL WANDER EVERY ONE TO HIS QUARTER; NONE SHALL SAVE THEE. = CHAPTER 48 OK# 1 HEAR YE THIS, O HOUSE OF JACOB, WHICH ARE CALLED BY THE NAME OF ISRAEL,EN AND ARE COME FORTH OUT OF THE WATERS OF JUDAH, WHICH SWEAR BY THE NAME OF THEF LORD, AND MAKE MENTION OF THE GOD OF ISRAEL, BUT NOT IN TRUTH, NOR IN RIGHTEOUSNESS.HK# 2 FOR THEY CALL THEMSELVES OF THE HOLY CITY, AND STAY THEMSELVES UPON THE. GOD OF ISRAEL; THE LORD OF HOSTS IS HIS NAME.M# 3 I HAVE DECLARED THE FORMER THINGS FROM THE BEGINNING; AND THEY WENT FORTHNJ OUT OF MY MOUTH, AND I SHEWED THEM; I DID THEM SUDDENLY, AND THEY CAME TO PASS.J# 4 BECAUSE I KNEW THAT THOU ART OBSTINATE, AND THY NECK IS AN IRON SINEW, AND THY BROW BRASS;I# 5 I HAVE EVEN FROM THE BEGINNING DECLARED IT TO THEE; BEFORE IT CAME TOSN PASS I SHEWED IT THEE: LEST THOU SHOULDEST SAY, MINE IDOL HATH DONE THEM, AND9 MY GRAVEN IMAGE, AND MY MOLTEN IMAGE, HATH COMMANDED THEAL# 6 THOU HAST HEARD, SEE ALL THIS; AND WILL NOT YE DECLARE IT? I HAVE SHEWEDL THEE NEW THINGS FROM THIS TIME, EVEN HIDDEN THINGS, AND THOU DIDST NOT KNOW THEM.I# 7 THEY ARE CREATED NOW, AND NOT FROM THE BEGINNING; EVEN BEFORE THE DAYAK WHEN THOU HEARDEST THEM NOT; LEST THOU SHOULDEST SAY, BEHOLD, I KNEW THEM.MK# 8 YEA, THOU HEARDEST NOT; YEA, THOU KNEWEST NOT; YEA, FROM THAT TIME THATEB THINE EAR WAS NOT OPENED: FOR I KNEW THAT THOU WOULDEST DEAL VERY= TREACHEROUSLY, AND WAST CALLED A TRANSGRESSOR FROM THE WOMB. G# 9 FOR MY NAMES SAKE WILL I DEFER MINE ANGER, AND FOR MY PRAISE WILL I + REFRAIN FOR THEE, THAT I CUT THEE NOT OFF.DL# 10 BEHOLD, I HAVE REFINED THEE, BUT NOT WITH SILVER; I HAVE CHOSEN THEE IN THE FURNACE OF AFFLICTION.WL# 11 FOR MINE OWN SAKE, EVEN FOR MINE OWN SAKE, WILL I DO IT: FOR HOW SHOULD@ MY NAME BE POLLUTED? AND I WILL NOT GIVE MY GLORY UNTO ANOTHER.M# 12 HEARKEN UNTO ME, O JACOB AND ISRAEL, MY CALLED; I AM HE; I AM THE FIRST,T I ALSO AM THE LAST.L# 13 MINE HAND ALSO HATH LAID THE FOUNDATION OF THE EARTH, AND MY RIGHT HANDI HATH SPANNED THE HEAVENS: WHEN I CALL UNTO THEM, THEY STAND UP TOGETHER.OJ# 14 ALL YE, ASSEMBLE YOURSELVES, AND HEAR; WHICH AMONG THEM HATH DECLAREDK THESE THINGS? THE LORD HATH LOVED HIM: HE WILL DO HIS PLEASURE ON BABYLON,W' AND HIS ARM SHALL BE ON THE CHALDEANS. L# 15 I, EVEN I, HAVE SPOKEN; YEA, I HAVE CALLED HIM: I HAVE BROUGHT HIM, AND" HE SHALL MAKE HIS WAY PROSPEROUS.M# 16 COME YE NEAR UNTO ME, HEAR YE THIS; I HAVE NOT SPOKEN IN SECRET FROM THE L BEGINNING; FROM THE TIME THAT IT WAS, THERE AM I: AND NOW THE LORD GOD, AND HIS SPIRIT, HATH SENT ME.M# 17 THUS SAITH THE LORD, THY REDEEMER, THE HOLY ONE OF ISRAEL; I AM THE LORDHJ THY GOD WHICH TEACHETH THEE TO PROFIT, WHICH LEADETH THEE BY THE WAY THAT THOU SHOULDEST GO.HL# 18 O THAT THOU HADST HEARKENED TO MY COMMANDMENTS! THEN HAD THY PEACE BEEN; AS A RIVER, AND THY RIGHTEOUSNESS AS THE WAVES OF THE SEA:OM# 19 THY SEED ALSO HAD BEEN AS THE SAND, AND THE OFFSPRING OF THY BOWELS LIKEFM THE GRAVEL THEREOF; HIS NAME SHOULD NOT HAVE BEEN CUT OFF NOR DESTROYED FROMO BEFORE ME.SH# 20 GO YE FORTH OF BABYLON, FLEE YE FROM THE CHALDEANS, WITH A VOICE OFN SINGING DECLARE YE, TELL THIS, UTTER IT EVEN TO THE END OF THE EARTH; SAY YE,* THE LORD HATH REDEEMED HIS SERVANT JACOB.J# 21 AND THEY THIRSTED NOT WHEN HE LED THEM THROUGH THE DESERTS: HE CAUSEDM THE WATERS TO FLOW OUT OF THE ROCK FOR THEM: HE CLAVE THE ROCK ALSO, AND THE  WATERS GUSHED OUT.S8# 22 THERE IS NO PEACE, SAITH THE LORD, UNTO THE WICKED. = CHAPTER 49 M# 1 LISTEN, O ISLES, UNTO ME; AND HEARKEN, YE PEOPLE, FROM FAR; THE LORD HATHHN CALLED ME FROM THE WOMB; FROM THE BOWELS OF MY MOTHER HATH HE MADE MENTION OF MY NAME.TK# 2 AND HE HATH MADE MY MOUTH LIKE A SHARP SWORD; IN THE SHADOW OF HIS HANDVL HATH HE HID ME, AND MADE ME A POLISHED SHAFT; IN HIS QUIVER HATH HE HID ME;F# 3 AND SAID UNTO ME, THOU ART MY SERVANT, O ISRAEL, IN WHOM I WILL BE GLORIFIED.HF# 4 THEN I SAID, I HAVE LABOURED IN VAIN, I HAVE SPENT MY STRENGTH FORJ NOUGHT, AND I00u@::D%5%T6%! !N VAIN: YET SURELY MY JUDGMENT IS WITH THE LORD, AND MY WORK WITH MY GOD. K# 5 AND NOW, SAITH THE LORD THAT FORMED ME FROM THE WOMB TO BE HIS SERVANT,EK TO BRING JACOB AGAIN TO HIM, THOUGH ISRAEL BE NOT GATHERED, YET SHALL I BEDC GLORIOUS IN THE EYES OF THE LORD, AND MY GOD SHALL BE MY STRENGTH. I# 6 AND HE SAID, IT IS A LIGHT THING THAT THOU SHOULDEST BE MY SERVANT TOVM RAISE UP THE TRIBES OF JACOB, AND TO RESTORE THE PRESERVED OF ISRAEL: I WILLDM ALSO GIVE THEE FOR A LIGHT TO THE GENTILES, THAT THOU MAYEST BE MY SALVATIONG UNTO THE END OF THE EARTH. I# 7 THUS SAITH THE LORD, THE REDEEMER OF ISRAEL, AND HIS HOLY ONE, TO HIMON WHOM MAN DESPISETH, TO HIM WHOM THE NATION ABHORRETH, TO A SERVANT OF RULERS,K KINGS SHALL SEE AND ARISE, PRINCES ALSO SHALL WORSHIP, BECAUSE OF THE LORDMH THAT IS FAITHFUL, AND THE HOLY ONE OF ISRAEL, AND HE SHALL CHOOSE THEE.J# 8 THUS SAITH THE LORD, IN AN ACCEPTABLE TIME HAVE I HEARD THEE, AND IN AM DAY OF SALVATION HAVE I HELPED THEE: AND I WILL PRESERVE THEE, AND GIVE THEESN FOR A COVENANT OF THE PEOPLE, TO ESTABLISH THE EARTH, TO CAUSE TO INHERIT THE DESOLATE HERITAGES;H# 9 THAT THOU MAYEST SAY TO THE PRISONERS, GO FORTH; TO THEM THAT ARE INK DARKNESS, SHEW YOURSELVES. THEY SHALL FEED IN THE WAYS, AND THEIR PASTURESW SHALL BE IN ALL HIGH PLACES.TK# 10 THEY SHALL NOT HUNGER NOR THIRST; NEITHER SHALL THE HEAT NOR SUN SMITEHM THEM: FOR HE THAT HATH MERCY ON THEM SHALL LEAD THEM, EVEN BY THE SPRINGS OFA WATER SHALL HE GUIDE THEM.NE# 11 AND I WILL MAKE ALL MY MOUNTAINS A WAY, AND MY HIGHWAYS SHALL BET EXALTED. I# 12 BEHOLD, THESE SHALL COME FROM FAR: AND, LO, THESE FROM THE NORTH ANDE1 FROM THE WEST; AND THESE FROM THE LAND OF SINIM. M# 13 SING, O HEAVENS; AND BE JOYFUL, O EARTH; AND BREAK FORTH INTO SINGING, OWL MOUNTAINS: FOR THE LORD HATH COMFORTED HIS PEOPLE, AND WILL HAVE MERCY UPON HIS AFFLICTED. M# 14 BUT ZION SAID, THE LORD HATH FORSAKEN ME, AND MY LORD HATH FORGOTTEN ME.TC# 15 CAN A WOMAN FORGET HER SUCKING CHILD, THAT SHE SHOULD NOT HAVELH COMPASSION ON THE SON OF HER WOMB? YEA, THEY MAY FORGET, YET WILL I NOT FORGET THEE. I# 16 BEHOLD, I HAVE GRAVEN THEE UPON THE PALMS OF MY HANDS; THY WALLS AREM CONTINUALLY BEFORE ME.3J# 17 THY CHILDREN SHALL MAKE HASTE; THY DESTROYERS AND THEY THAT MADE THEE WASTE SHALL GO FORTH OF THEE.L# 18 LIFT UP THINE EYES ROUND ABOUT, AND BEHOLD: ALL THESE GATHER THEMSELVESI TOGETHER, AND COME TO THEE. AS I LIVE, SAITH THE LORD, THOU SHALT SURELYAL CLOTHE THEE WITH THEM ALL, AS WITH AN ORNAMENT, AND BIND THEM ON THEE, AS A BRIDE DOETH.BL# 19 FOR THY WASTE AND THY DESOLATE PLACES, AND THE LAND OF THY DESTRUCTION,I SHALL EVEN NOW BE TOO NARROW BY REASON OF THE INHABITANTS, AND THEY THATE% SWALLOWED THEE UP SHALL BE FAR AWAY. H# 20 THE CHILDREN WHICH THOU SHALT HAVE, AFTER THOU HAST LOST THE OTHER,M SHALL SAY AGAIN IN THINE EARS, THE PLACE IS TOO STRAIT FOR ME: GIVE PLACE TOG ME THAT I MAY DWELL..M# 21 THEN SHALT THOU SAY IN THINE HEART, WHO HATH BEGOTTEN ME THESE, SEEING IWL HAVE LOST MY CHILDREN, AND AM DESOLATE, A CAPTIVE, AND REMOVING TO AND FRO?J AND WHO HATH BROUGHT UP THESE? BEHOLD, I WAS LEFT ALONE; THESE, WHERE HAD THEY BEEN?OE# 22 THUS SAITH THE LORD GOD, BEHOLD, I WILL LIFT UP MINE HAND TO THELN GENTILES, AND SET UP MY STANDARD TO THE PEOPLE: AND THEY SHALL BRING THY SONSH IN THEIR ARMS, AND THY DAUGHTERS SHALL BE CARRIED UPON THEIR SHOULDERS.I# 23 AND KINGS SHALL BE THY NURSING FATHERS, AND THEIR QUEENS THY NURSINGEK MOTHERS: THEY SHALL BOW DOWN TO THEE WITH THEIR FACE TOWARD THE EARTH, ANDSJ LICK UP THE DUST OF THY FEET; AND THOU SHALT KNOW THAT I AM THE LORD: FOR, THEY SHALL NOT BE ASHAMED THAT WAIT FOR ME.C# 24 SHALL THE PREY BE TAKEN FROM THE MIGHTY, OR THE LAWFUL CAPTIVE DELIVERED?L# 25 BUT THUS SAITH THE LORD, EVEN THE CAPTIVES OF THE MIGHTY SHALL BE TAKENJ AWAY, AND THE PREY OF THE TERRIBLE SHALL BE DELIVERED: FOR I WILL CONTENDB WITH HIM THAT CONTENDETH WITH THEE, AND I WILL SAVE THY CHILDREN.J# 26 AND I WILL FEED THEM THAT OPPRESS THEE WITH THEIR OWN FLESH; AND THEY00uH:8<%X>%+%O-%TADATADATAI SHALL BE DRUNKEN WITH THEIR OWN BLOOD, AS WITH SWEET WINE: AND ALL FLESHLN SHALL KNOW THAT I THE LORD AM THY SAVIOUR AND THY REDEEMER, THE MIGHTY ONE OF JACOB. = CHAPTER 50 TN# 1 THUS SAITH THE LORD, WHERE IS THE BILL OF YOUR MOTHERS DIVORCEMENT, WHOM IG HAVE PUT AWAY? OR WHICH OF MY CREDITORS IS IT TO WHOM I HAVE SOLD YOU? B BEHOLD, FOR YOUR INIQUITIES HAVE YE SOLD YOURSELVES, AND FOR YOUR( TRANSGRESSIONS IS YOUR MOTHER PUT AWAY.K# 2 WHEREFORE, WHEN I CAME, WAS THERE NO MAN? WHEN I CALLED, WAS THERE NONE L TO ANSWER? IS MY HAND SHORTENED AT ALL, THAT IT CANNOT REDEEM? OR HAVE I NOM POWER TO DELIVER? BEHOLD, AT MY REBUKE I DRY UP THE SEA, I MAKE THE RIVERS A J WILDERNESS: THEIR FISH STINKETH, BECAUSE THERE IS NO WATER, AND DIETH FOR THIRST.M# 3 I CLOTHE THE HEAVENS WITH BLACKNESS, AND I MAKE SACKCLOTH THEIR COVERING. L# 4 THE LORD GOD HATH GIVEN ME THE TONGUE OF THE LEARNED, THAT I SHOULD KNOWK HOW TO SPEAK A WORD IN SEASON TO HIM THAT IS WEARY: HE WAKENETH MORNING BYN6 MORNING, HE WAKENETH MINE EAR TO HEAR AS THE LEARNED.H# 5 THE LORD GOD HATH OPENED MINE EAR, AND I WAS NOT REBELLIOUS, NEITHER TURNED AWAY BACK.M# 6 I GAVE MY BACK TO THE SMITERS, AND MY CHEEKS TO THEM THAT PLUCKED OFF THEA1 HAIR: I HID NOT MY FACE FROM SHAME AND SPITTING. G# 7 FOR THE LORD GOD WILL HELP ME; THEREFORE SHALL I NOT BE CONFOUNDED: J THEREFORE HAVE I SET MY FACE LIKE A FLINT, AND I KNOW THAT I SHALL NOT BE ASHAMED. I# 8 HE IS NEAR THAT JUSTIFIETH ME; WHO WILL CONTEND WITH ME? LET US STANDI: TOGETHER: WHO IS MINE ADVERSARY? LET HIM COME NEAR TO ME.K# 9 BEHOLD, THE LORD GOD WILL HELP ME; WHO IS HE THAT SHALL CONDEMN ME? LO,BA THEY ALL SHALL WAX OLD AS A GARMENT; THE MOTH SHALL EAT THEM UP. J# 10 WHO IS AMONG YOU THAT FEARETH THE LORD, THAT OBEYETH THE VOICE OF HISK SERVANT, THAT WALKETH IN DARKNESS, AND HATH NO LIGHT? LET HIM TRUST IN THEE) NAME OF THE LORD, AND STAY UPON HIS GOD.WJ# 11 BEHOLD, ALL YE THAT KINDLE A FIRE, THAT COMPASS YOURSELVES ABOUT WITHG SPARKS: WALK IN THE LIGHT OF YOUR FIRE, AND IN THE SPARKS THAT YE HAVEIG KINDLED. THIS SHALL YE HAVE OF MINE HAND; YE SHALL LIE DOWN IN SORROW. = CHAPTER 51 EM# 1 HEARKEN TO ME, YE THAT FOLLOW AFTER RIGHTEOUSNESS, YE THAT SEEK THE LORD:0L LOOK UNTO THE ROCK WHENCE YE ARE HEWN, AND TO THE HOLE OF THE PIT WHENCE YE ARE DIGGED.M# 2 LOOK UNTO ABRAHAM YOUR FATHER, AND UNTO SARAH THAT BARE YOU: FOR I CALLEDD/ HIM ALONE, AND BLESSED HIM, AND INCREASED HIM.NJ# 3 FOR THE LORD SHALL COMFORT ZION: HE WILL COMFORT ALL HER WASTE PLACES;M AND HE WILL MAKE HER WILDERNESS LIKE EDEN, AND HER DESERT LIKE THE GARDEN OFII THE LORD; JOY AND GLADNESS SHALL BE FOUND THEREIN, THANKSGIVING, AND THEY VOICE OF MELODY. L# 4 HEARKEN UNTO ME, MY PEOPLE; AND GIVE EAR UNTO ME, O MY NATION: FOR A LAWN SHALL PROCEED FROM ME, AND I WILL MAKE MY JUDGMENT TO REST FOR A LIGHT OF THE PEOPLE.M# 5 MY RIGHTEOUSNESS IS NEAR; MY SALVATION IS GONE FORTH, AND MINE ARMS SHALLCK JUDGE THE PEOPLE; THE ISLES SHALL WAIT UPON ME, AND ON MINE ARM SHALL THEYS TRUST.;J# 6 LIFT UP YOUR EYES TO THE HEAVENS, AND LOOK UPON THE EARTH BENEATH: FORM THE HEAVENS SHALL VANISH AWAY LIKE SMOKE, AND THE EARTH SHALL WAX OLD LIKE AYF GARMENT, AND THEY THAT DWELL THEREIN SHALL DIE IN LIKE MANNER: BUT MYJ SALVATION SHALL BE FOR EVER, AND MY RIGHTEOUSNESS SHALL NOT BE ABOLISHED.M# 7 HEARKEN UNTO ME, YE THAT KNOW RIGHTEOUSNESS, THE PEOPLE IN WHOSE HEART ISAG MY LAW; FEAR YE NOT THE REPROACH OF MEN, NEITHER BE YE AFRAID OF THEIRA REVILINGS.MI# 8 FOR THE MOTH SHALL EAT THEM UP LIKE A GARMENT, AND THE WORM SHALL EATEN THEM LIKE WOOL: BUT MY RIGHTEOUSNESS SHALL BE FOR EVER, AND MY SALVATION FROM GENERATION TO GENERATION.F# 9 AWAKE, AWAKE, PUT ON STRENGTH, O ARM OF THE LORD; AWAKE, AS IN THEN ANCIENT DAYS, IN THE GENERATIONS OF OLD. ART THOU NOT IT THAT HATH CUT RAHAB, AND WOUNDED THE DRAGON?L# 10 ART THOU NOT IT WHICH HATH DRIED THE SEA, THE WATERS OF THE GREAT DEEP;J THAT HATH MADE THE DEPTHS OF THE SEA A WAY FOR THE RANSOMED TO PASS OVER?K# 11 THEREFORE THE REDEEMED OF THE LORD SHALL RE00uP::D%5%T6%! !TURN, AND COME WITH SINGINGEK UNTO ZION; AND EVERLASTING JOY SHALL BE UPON THEIR HEAD: THEY SHALL OBTAING; GLADNESS AND JOY; AND SORROW AND MOURNING SHALL FLEE AWAY.OL# 12 I, EVEN I, AM HE THAT COMFORTETH YOU: WHO ART THOU, THAT THOU SHOULDESTM BE AFRAID OF A MAN THAT SHALL DIE, AND OF THE SON OF MAN WHICH SHALL BE MADEO AS GRASS;E# 13 AND FORGETTEST THE LORD THY MAKER, THAT HATH STRETCHED FORTH THEEL HEAVENS, AND LAID THE FOUNDATIONS OF THE EARTH; AND HAST FEARED CONTINUALLYG EVERY DAY BECAUSE OF THE FURY OF THE OPPRESSOR, AS IF HE WERE READY TOR1 DESTROY? AND WHERE IS THE FURY OF THE OPPRESSOR?TJ# 14 THE CAPTIVE EXILE HASTENETH THAT HE MAY BE LOOSED, AND THAT HE SHOULD4 NOT DIE IN THE PIT, NOR THAT HIS BREAD SHOULD FAIL.M# 15 BUT I AM THE LORD THY GOD, THAT DIVIDED THE SEA, WHOSE WAVES ROARED: THE  LORD OF HOSTS IS HIS NAME. I# 16 AND I HAVE PUT MY WORDS IN THY MOUTH, AND I HAVE COVERED THEE IN THEEN SHADOW OF MINE HAND, THAT I MAY PLANT THE HEAVENS, AND LAY THE FOUNDATIONS OF2 THE EARTH, AND SAY UNTO ZION, THOU ART MY PEOPLE.M# 17 AWAKE, AWAKE, STAND UP, O JERUSALEM, WHICH HAST DRUNK AT THE HAND OF THEID LORD THE CUP OF HIS FURY; THOU HAST DRUNKEN THE DREGS OF THE CUP OF TREMBLING, AND WRUNG THEM OUT.HH# 18 THERE IS NONE TO GUIDE HER AMONG ALL THE SONS WHOM SHE HATH BROUGHTM FORTH; NEITHER IS THERE ANY THAT TAKETH HER BY THE HAND OF ALL THE SONS THAT  SHE HATH BROUGHT UP.OF# 19 THESE TWO THINGS ARE COME UNTO THEE; WHO SHALL BE SORRY FOR THEE?L DESOLATION, AND DESTRUCTION, AND THE FAMINE, AND THE SWORD: BY WHOM SHALL I COMFORT THEE?I# 20 THY SONS HAVE FAINTED, THEY LIE AT THE HEAD OF ALL THE STREETS, AS A M WILD BULL IN A NET: THEY ARE FULL OF THE FURY OF THE LORD, THE REBUKE OF THYN GOD.OM# 21 THEREFORE HEAR NOW THIS, THOU AFFLICTED, AND DRUNKEN, BUT NOT WITH WINE:M# 22 THUS SAITH THY LORD THE LORD, AND THY GOD THAT PLEADETH THE CAUSE OF HISN PEOPLE, BEHOLD, I HAVE TAKEN OUT OF THINE HAND THE CUP OF TREMBLING, EVEN THE@ DREGS OF THE CUP OF MY FURY; THOU SHALT NO MORE DRINK IT AGAIN:J# 23 BUT I WILL PUT IT INTO THE HAND OF THEM THAT AFFLICT THEE; WHICH HAVEM SAID TO THY SOUL, BOW DOWN, THAT WE MAY GO OVER: AND THOU HAST LAID THY BODYO: AS THE GROUND, AND AS THE STREET, TO THEM THAT WENT OVER. = CHAPTER 52 M# 1 AWAKE, AWAKE; PUT ON THY STRENGTH, O ZION; PUT ON THY BEAUTIFUL GARMENTS,DN O JERUSALEM, THE HOLY CITY: FOR HENCEFORTH THERE SHALL NO MORE COME INTO THEE# THE UNCIRCUMCISED AND THE UNCLEAN.EH# 2 SHAKE THYSELF FROM THE DUST; ARISE, AND SIT DOWN, O JERUSALEM: LOOSE@ THYSELF FROM THE BANDS OF THY NECK, O CAPTIVE DAUGHTER OF ZION.M# 3 FOR THUS SAITH THE LORD, YE HAVE SOLD YOURSELVES FOR NOUGHT; AND YE SHALLH BE REDEEMED WITHOUT MONEY.RL# 4 FOR THUS SAITH THE LORD GOD, MY PEOPLE WENT DOWN AFORETIME INTO EGYPT TO> SOJOURN THERE; AND THE ASSYRIAN OPPRESSED THEM WITHOUT CAUSE.L# 5 NOW THEREFORE, WHAT HAVE I HERE, SAITH THE LORD, THAT MY PEOPLE IS TAKENM AWAY FOR NOUGHT? THEY THAT RULE OVER THEM MAKE THEM TO HOWL, SAITH THE LORD;I1 AND MY NAME CONTINUALLY EVERY DAY IS BLASPHEMED. M# 6 THEREFORE MY PEOPLE SHALL KNOW MY NAME: THEREFORE THEY SHALL KNOW IN THAT,3 DAY THAT I AM HE THAT DOTH SPEAK: BEHOLD, IT IS I.BK# 7 HOW BEAUTIFUL UPON THE MOUNTAINS ARE THE FEET OF HIM THAT BRINGETH GOODOI TIDINGS, THAT PUBLISHETH PEACE; THAT BRINGETH GOOD TIDINGS OF GOOD, THAT > PUBLISHETH SALVATION; THAT SAITH UNTO ZION, THY GOD REIGNETH!L# 8 THY WATCHMEN SHALL LIFT UP THE VOICE; WITH THE VOICE TOGETHER SHALL THEYK SING: FOR THEY SHALL SEE EYE TO EYE, WHEN THE LORD SHALL BRING AGAIN ZION.MJ# 9 BREAK FORTH INTO JOY, SING TOGETHER, YE WASTE PLACES OF JERUSALEM: FOR@ THE LORD HATH COMFORTED HIS PEOPLE, HE HATH REDEEMED JERUSALEM.M# 10 THE LORD HATH MADE BARE HIS HOLY ARM IN THE EYES OF ALL THE NATIONS; ANDD> ALL THE ENDS OF THE EARTH SHALL SEE THE SALVATION OF OUR GOD.L# 11 DEPART YE, DEPART YE, GO YE OUT FROM THENCE, TOUCH NO UNCLEAN THING; GOL YE OUT OF THE MIDST OF HER; BE YE CLEAN, THAT BEAR THE VESSELS OF THE LORD.L# 12 FOR YE SHALL NOT GO OUT WITH HASTE, NOR GO BY F00uX:8<%X>%+%O-%TADATADATALIGHT: FOR THE LORD WILL< GO BEFORE YOU; AND THE GOD OF ISRAEL WILL BE YOUR REREWARD.E# 13 BEHOLD, MY SERVANT SHALL DEAL PRUDENTLY, HE SHALL BE EXALTED AND. EXTOLLED, AND BE VERY HIGH.J# 14 AS MANY WERE ASTONIED AT THEE; HIS VISAGE WAS SO MARRED MORE THAN ANY- MAN, AND HIS FORM MORE THAN THE SONS OF MEN:PL# 15 SO SHALL HE SPRINKLE MANY NATIONS; THE KINGS SHALL SHUT THEIR MOUTHS ATJ HIM: FOR THAT WHICH HAD NOT BEEN TOLD THEM SHALL THEY SEE; AND THAT WHICH( THEY HAD NOT HEARD SHALL THEY CONSIDER. = CHAPTER 53 TN# 1 WHO HATH BELIEVED OUR REPORT? AND TO WHOM IS THE ARM OF THE LORD REVEALED?M# 2 FOR HE SHALL GROW UP BEFORE HIM AS A TENDER PLANT, AND AS A ROOT OUT OF AAM DRY GROUND: HE HATH NO FORM NOR COMELINESS; AND WHEN WE SHALL SEE HIM, THEREM( IS NO BEAUTY THAT WE SHOULD DESIRE HIM.M# 3 HE IS DESPISED AND REJECTED OF MEN; A MAN OF SORROWS, AND ACQUAINTED WITHTI GRIEF: AND WE HID AS IT WERE OUR FACES FROM HIM; HE WAS DESPISED, AND WEE ESTEEMED HIM NOT.H# 4 SURELY HE HATH BORNE OUR GRIEFS, AND CARRIED OUR SORROWS: YET WE DID4 ESTEEM HIM STRICKEN, SMITTEN OF GOD, AND AFFLICTED.E# 5 BUT HE WAS WOUNDED FOR OUR TRANSGRESSIONS, HE WAS BRUISED FOR OUR M INIQUITIES: THE CHASTISEMENT OF OUR PEACE WAS UPON HIM; AND WITH HIS STRIPESS WE ARE HEALED.IK# 6 ALL WE LIKE SHEEP HAVE GONE ASTRAY; WE HAVE TURNED EVERY ONE TO HIS OWNN; WAY; AND THE LORD HATH LAID ON HIM THE INIQUITY OF US ALL.AK# 7 HE WAS OPPRESSED, AND HE WAS AFFLICTED, YET HE OPENED NOT HIS MOUTH: HE M IS BROUGHT AS A LAMB TO THE SLAUGHTER, AND AS A SHEEP BEFORE HER SHEARERS IS # DUMB, SO HE OPENETH NOT HIS MOUTH.LI# 8 HE WAS TAKEN FROM PRISON AND FROM JUDGMENT: AND WHO SHALL DECLARE HISUF GENERATION? FOR HE WAS CUT OFF OUT OF THE LAND OF THE LIVING: FOR THE, TRANSGRESSION OF MY PEOPLE WAS HE STRICKEN.J# 9 AND HE MADE HIS GRAVE WITH THE WICKED, AND WITH THE RICH IN HIS DEATH;F BECAUSE HE HAD DONE NO VIOLENCE, NEITHER WAS ANY DECEIT IN HIS MOUTH.J# 10 YET IT PLEASED THE LORD TO BRUISE HIM; HE HATH PUT HIM TO GRIEF: WHENN THOU SHALT MAKE HIS SOUL AN OFFERING FOR SIN, HE SHALL SEE HIS SEED, HE SHALLJ PROLONG HIS DAYS, AND THE PLEASURE OF THE LORD SHALL PROSPER IN HIS HAND.L# 11 HE SHALL SEE OF THE TRAVAIL OF HIS SOUL, AND SHALL BE SATISFIED: BY HISK KNOWLEDGE SHALL MY RIGHTEOUS SERVANT JUSTIFY MANY; FOR HE SHALL BEAR THEIRR INIQUITIES.G# 12 THEREFORE WILL I DIVIDE HIM A PORTION WITH THE GREAT, AND HE SHALL K DIVIDE THE SPOIL WITH THE STRONG; BECAUSE HE HATH POURED OUT HIS SOUL UNTOHJ DEATH: AND HE WAS NUMBERED WITH THE TRANSGRESSORS; AND HE BARE THE SIN OF3 MANY, AND MADE INTERCESSION FOR THE TRANSGRESSORS.D = CHAPTER 54 EK# 1 SING, O BARREN, THOU THAT DIDST NOT BEAR; BREAK FORTH INTO SINGING, ANDLM CRY ALOUD, THOU THAT DIDST NOT TRAVAIL WITH CHILD: FOR MORE ARE THE CHILDRENVG OF THE DESOLATE THAN THE CHILDREN OF THE MARRIED WIFE, SAITH THE LORD.WM# 2 ENLARGE THE PLACE OF THY TENT, AND LET THEM STRETCH FORTH THE CURTAINS OFHM THINE HABITATIONS: SPARE NOT, LENGTHEN THY CORDS, AND STRENGTHEN THY STAKES;EI# 3 FOR THOU SHALT BREAK FORTH ON THE RIGHT HAND AND ON THE LEFT; AND THYSD SEED SHALL INHERIT THE GENTILES, AND MAKE THE DESOLATE CITIES TO BE INHABITED.OL# 4 FEAR NOT; FOR THOU SHALT NOT BE ASHAMED: NEITHER BE THOU CONFOUNDED; FORN THOU SHALT NOT BE PUT TO SHAME: FOR THOU SHALT FORGET THE SHAME OF THY YOUTH,? AND SHALT NOT REMEMBER THE REPROACH OF THY WIDOWHOOD ANY MORE.TJ# 5 FOR THY MAKER IS THINE HUSBAND; THE LORD OF HOSTS IS HIS NAME; AND THYH REDEEMER THE HOLY ONE OF ISRAEL; THE GOD OF THE WHOLE EARTH SHALL HE BE CALLED.L# 6 FOR THE LORD HATH CALLED THEE AS A WOMAN FORSAKEN AND GRIEVED IN SPIRIT,< AND A WIFE OF YOUTH, WHEN THOU WAST REFUSED, SAITH THY GOD.J# 7 FOR A SMALL MOMENT HAVE I FORSAKEN THEE; BUT WITH GREAT MERCIES WILL I GATHER THEE.TD# 8 IN A LITTLE WRATH I HID MY FACE FROM THEE FOR A MOMENT; BUT WITHM EVERLASTING KINDNESS WILL I HAVE MERCY ON THEE, SAITH THE LORD THY REDEEMER.HK# 9 FOR THIS IS AS THE WATERS OF NOAH UNTO ME: FOR AS I HAVE SWORN THAT THEAN WATERS OF NOAH SHOULD NO MORE GO OVER T00u`::D%5%T6%! !HE EARTH; SO HAVE I SWORN THAT I WOULD) NOT BE WROTH WITH THEE, NOR REBUKE THEE.SE# 10 FOR THE MOUNTAINS SHALL DEPART, AND THE HILLS BE REMOVED; BUT MY L KINDNESS SHALL NOT DEPART FROM THEE, NEITHER SHALL THE COVENANT OF MY PEACE4 BE REMOVED, SAITH THE LORD THAT HATH MERCY ON THEE.M# 11 O THOU AFFLICTED, TOSSED WITH TEMPEST, AND NOT COMFORTED, BEHOLD, I WILLIJ LAY THY STONES WITH FAIR COLOURS, AND LAY THY FOUNDATIONS WITH SAPPHIRES.L# 12 AND I WILL MAKE THY WINDOWS OF AGATES, AND THY GATES OF CARBUNCLES, AND$ ALL THY BORDERS OF PLEASANT STONES.M# 13 AND ALL THY CHILDREN SHALL BE TAUGHT OF THE LORD; AND GREAT SHALL BE THET PEACE OF THY CHILDREN.MG# 14 IN RIGHTEOUSNESS SHALT THOU BE ESTABLISHED: THOU SHALT BE FAR FROMYL OPPRESSION; FOR THOU SHALT NOT FEAR: AND FROM TERROR; FOR IT SHALL NOT COME NEAR THEE. H# 15 BEHOLD, THEY SHALL SURELY GATHER TOGETHER, BUT NOT BY ME: WHOSOEVER< SHALL GATHER TOGETHER AGAINST THEE SHALL FALL FOR THY SAKE.M# 16 BEHOLD, I HAVE CREATED THE SMITH THAT BLOWETH THE COALS IN THE FIRE, ANDRN THAT BRINGETH FORTH AN INSTRUMENT FOR HIS WORK; AND I HAVE CREATED THE WASTER TO DESTROY.J# 17 NO WEAPON THAT IS FORMED AGAINST THEE SHALL PROSPER; AND EVERY TONGUEI THAT SHALL RISE AGAINST THEE IN JUDGMENT THOU SHALT CONDEMN. THIS IS THENN HERITAGE OF THE SERVANTS OF THE LORD, AND THEIR RIGHTEOUSNESS IS OF ME, SAITH THE LORD. = CHAPTER 55 L# 1 HO, EVERY ONE THAT THIRSTETH, COME YE TO THE WATERS, AND HE THAT HATH NOM MONEY; COME YE, BUY, AND EAT; YEA, COME, BUY WINE AND MILK WITHOUT MONEY ANDR WITHOUT PRICE.FL# 2 WHEREFORE DO YE SPEND MONEY FOR THAT WHICH IS NOT BREAD? AND YOUR LABOURK FOR THAT WHICH SATISFIETH NOT? HEARKEN DILIGENTLY UNTO ME, AND EAT YE THATT< WHICH IS GOOD, AND LET YOUR SOUL DELIGHT ITSELF IN FATNESS.M# 3 INCLINE YOUR EAR, AND COME UNTO ME: HEAR, AND YOUR SOUL SHALL LIVE; AND IFL WILL MAKE AN EVERLASTING COVENANT WITH YOU, EVEN THE SURE MERCIES OF DAVID.F# 4 BEHOLD, I HAVE GIVEN HIM FOR A WITNESS TO THE PEOPLE, A LEADER AND COMMANDER TO THE PEOPLE. L# 5 BEHOLD, THOU SHALT CALL A NATION THAT THOU KNOWEST NOT, AND NATIONS THATK KNEW NOT THEE SHALL RUN UNTO THEE BECAUSE OF THE LORD THY GOD, AND FOR THE 0 HOLY ONE OF ISRAEL; FOR HE HATH GLORIFIED THEE.H# 6 SEEK YE THE LORD WHILE HE MAY BE FOUND, CALL YE UPON HIM WHILE HE IS NEAR:M# 7 LET THE WICKED FORSAKE HIS WAY, AND THE UNRIGHTEOUS MAN HIS THOUGHTS: ANDAJ LET HIM RETURN UNTO THE LORD, AND HE WILL HAVE MERCY UPON HIM; AND TO OUR$ GOD, FOR HE WILL ABUNDANTLY PARDON.I# 8 FOR MY THOUGHTS ARE NOT YOUR THOUGHTS, NEITHER ARE YOUR WAYS MY WAYS,H SAITH THE LORD.L# 9 FOR AS THE HEAVENS ARE HIGHER THAN THE EARTH, SO ARE MY WAYS HIGHER THAN/ YOUR WAYS, AND MY THOUGHTS THAN YOUR THOUGHTS.GM# 10 FOR AS THE RAIN COMETH DOWN, AND THE SNOW FROM HEAVEN, AND RETURNETH NOTIL THITHER, BUT WATERETH THE EARTH, AND MAKETH IT BRING FORTH AND BUD, THAT IT4 MAY GIVE SEED TO THE SOWER, AND BREAD TO THE EATER:G# 11 SO SHALL MY WORD BE THAT GOETH FORTH OUT OF MY MOUTH: IT SHALL NOTRI RETURN UNTO ME VOID, BUT IT SHALL ACCOMPLISH THAT WHICH I PLEASE, AND ITA. SHALL PROSPER IN THE THING WHERETO I SENT IT.M# 12 FOR YE SHALL GO OUT WITH JOY, AND BE LED FORTH WITH PEACE: THE MOUNTAINSTN AND THE HILLS SHALL BREAK FORTH BEFORE YOU INTO SINGING, AND ALL THE TREES OF" THE FIELD SHALL CLAP THEIR HANDS.H# 13 INSTEAD OF THE THORN SHALL COME UP THE FIR TREE, AND INSTEAD OF THEM BRIER SHALL COME UP THE MYRTLE TREE: AND IT SHALL BE TO THE LORD FOR A NAME,T3 FOR AN EVERLASTING SIGN THAT SHALL NOT BE CUT OFF.M = CHAPTER 56 SN# 1 THUS SAITH THE LORD, KEEP YE JUDGMENT, AND DO JUSTICE: FOR MY SALVATION IS3 NEAR TO COME, AND MY RIGHTEOUSNESS TO BE REVEALED.BK# 2 BLESSED IS THE MAN THAT DOETH THIS, AND THE SON OF MAN THAT LAYETH HOLDRM ON IT; THAT KEEPETH THE SABBATH FROM POLLUTING IT, AND KEEPETH HIS HAND FROM  DOING ANY EVIL.H# 3 NEITHER LET THE SON OF THE STRANGER, THAT HATH JOINED HIMSELF TO THEI LORD, SPEAK, SAYING, THE LORD HATH UTTERLY SEPARATED ME FROM HIS PEOPLE:T5 NEITHER LET THE EUNUCH SAY, BEHOLD, I AM A DRY 00uh:8<%X>%+%O-%TADATADATATREE. G# 4 FOR THUS SAITH THE LORD UNTO THE EUNUCHS THAT KEEP MY SABBATHS, AND @ CHOOSE THE THINGS THAT PLEASE ME, AND TAKE HOLD OF MY COVENANT;L# 5 EVEN UNTO THEM WILL I GIVE IN MINE HOUSE AND WITHIN MY WALLS A PLACE ANDM A NAME BETTER THAN OF SONS AND OF DAUGHTERS: I WILL GIVE THEM AN EVERLASTINGA! NAME, THAT SHALL NOT BE CUT OFF.FM# 6 ALSO THE SONS OF THE STRANGER, THAT JOIN THEMSELVES TO THE LORD, TO SERVEHJ HIM, AND TO LOVE THE NAME OF THE LORD, TO BE HIS SERVANTS, EVERY ONE THATG KEEPETH THE SABBATH FROM POLLUTING IT, AND TAKETH HOLD OF MY COVENANT; J# 7 EVEN THEM WILL I BRING TO MY HOLY MOUNTAIN, AND MAKE THEM JOYFUL IN MYN HOUSE OF PRAYER: THEIR BURNT OFFERINGS AND THEIR SACRIFICES SHALL BE ACCEPTEDK UPON MINE ALTAR; FOR MINE HOUSE SHALL BE CALLED AN HOUSE OF PRAYER FOR ALL  PEOPLE.J# 8 THE LORD GOD, WHICH GATHERETH THE OUTCASTS OF ISRAEL SAITH, YET WILL I? GATHER OTHERS TO HIM, BESIDE THOSE THAT ARE GATHERED UNTO HIM. I# 9 ALL YE BEASTS OF THE FIELD, COME TO DEVOUR, YEA, ALL YE BEASTS IN THEF FOREST.K# 10 HIS WATCHMEN ARE BLIND: THEY ARE ALL IGNORANT, THEY ARE ALL DUMB DOGS,L; THEY CANNOT BARK; SLEEPING, LYING DOWN, LOVING TO SLUMBER.IH# 11 YEA, THEY ARE GREEDY DOGS WHICH CAN NEVER HAVE ENOUGH, AND THEY AREL SHEPHERDS THAT CANNOT UNDERSTAND: THEY ALL LOOK TO THEIR OWN WAY, EVERY ONE FOR HIS GAIN, FROM HIS QUARTER.J# 12 COME YE, SAY THEY, I WILL FETCH WINE, AND WE WILL FILL OURSELVES WITHJ STRONG DRINK; AND TO MORROW SHALL BE AS THIS DAY, AND MUCH MORE ABUNDANT. = CHAPTER 57 SL# 1 THE RIGHTEOUS PERISHETH, AND NO MAN LAYETH IT TO HEART: AND MERCIFUL MENK ARE TAKEN AWAY, NONE CONSIDERING THAT THE RIGHTEOUS IS TAKEN AWAY FROM THER EVIL TO COME.F# 2 HE SHALL ENTER INTO PEACE: THEY SHALL REST IN THEIR BEDS, EACH ONE WALKING IN HIS UPRIGHTNESS.M# 3 BUT DRAW NEAR HITHER, YE SONS OF THE SORCERESS, THE SEED OF THE ADULTERERM AND THE WHORE. K# 4 AGAINST WHOM DO YE SPORT YOURSELVES? AGAINST WHOM MAKE YE A WIDE MOUTH,WI AND DRAW OUT THE TONGUE? ARE YE NOT CHILDREN OF TRANSGRESSION, A SEED OFH FALSEHOOD.TG# 5 ENFLAMING YOURSELVES WITH IDOLS UNDER EVERY GREEN TREE, SLAYING THE 7 CHILDREN IN THE VALLEYS UNDER THE CLIFTS OF THE ROCKS?EL# 6 AMONG THE SMOOTH STONES OF THE STREAM IS THY PORTION; THEY, THEY ARE THYN LOT: EVEN TO THEM HAST THOU POURED A DRINK OFFERING, THOU HAST OFFERED A MEAT- OFFERING. SHOULD I RECEIVE COMFORT IN THESE?WF# 7 UPON A LOFTY AND HIGH MOUNTAIN HAST THOU SET THY BED: EVEN THITHER$ WENTEST THOU UP TO OFFER SACRIFICE.M# 8 BEHIND THE DOORS ALSO AND THE POSTS HAST THOU SET UP THY REMEMBRANCE: FOR L THOU HAST DISCOVERED THYSELF TO ANOTHER THAN ME, AND ART GONE UP; THOU HASTM ENLARGED THY BED, AND MADE THEE A COVENANT WITH THEM; THOU LOVEDST THEIR BEDA WHERE THOU SAWEST IT.F# 9 AND THOU WENTEST TO THE KING WITH OINTMENT, AND DIDST INCREASE THYJ PERFUMES, AND DIDST SEND THY MESSENGERS FAR OFF, AND DIDST DEBASE THYSELF EVEN UNTO HELL.M# 10 THOU ART WEARIED IN THE GREATNESS OF THY WAY; YET SAIDST THOU NOT, THEREFL IS NO HOPE: THOU HAST FOUND THE LIFE OF THINE HAND; THEREFORE THOU WAST NOT GRIEVED.OJ# 11 AND OF WHOM HAST THOU BEEN AFRAID OR FEARED, THAT THOU HAST LIED, ANDK HAST NOT REMEMBERED ME, NOR LAID IT TO THY HEART? HAVE NOT I HELD MY PEACE& EVEN OF OLD, AND THOU FEAREST ME NOT?H# 12 I WILL DECLARE THY RIGHTEOUSNESS, AND THY WORKS; FOR THEY SHALL NOT PROFIT THEE.SI# 13 WHEN THOU CRIEST, LET THY COMPANIES DELIVER THEE; BUT THE WIND SHALLEN CARRY THEM ALL AWAY; VANITY SHALL TAKE THEM: BUT HE THAT PUTTETH HIS TRUST IN? ME SHALL POSSESS THE LAND, AND SHALL INHERIT MY HOLY MOUNTAIN;IH# 14 AND SHALL SAY, CAST YE UP, CAST YE UP, PREPARE THE WAY, TAKE UP THE, STUMBLINGBLOCK OUT OF THE WAY OF MY PEOPLE.J# 15 FOR THUS SAITH THE HIGH AND LOFTY ONE THAT INHABITETH ETERNITY, WHOSEM NAME IS HOLY; I DWELL IN THE HIGH AND HOLY PLACE, WITH HIM ALSO THAT IS OF AN CONTRITE AND HUMBLE SPIRIT, TO REVIVE THE SPIRIT OF THE HUMBLE, AND TO REVIVE THE HEART OF THE CONTRITE ONES.M# 16 FOR I WILL NOT CONTEND FOR EVER, NEITHER WILL I BE ALWAYS WROTH: FOR TH00up::D%5%T6%! !E ? SPIRIT SHOULD FAIL BEFORE ME, AND THE SOULS WHICH I HAVE MADE.AK# 17 FOR THE INIQUITY OF HIS COVETOUSNESS WAS I WROTH, AND SMOTE HIM: I HIDEE ME, AND WAS WROTH, AND HE WENT ON FROWARDLY IN THE WAY OF HIS HEART.AG# 18 I HAVE SEEN HIS WAYS, AND WILL HEAL HIM: I WILL LEAD HIM ALSO, AND,/ RESTORE COMFORTS UNTO HIM AND TO HIS MOURNERS.EM# 19 I CREATE THE FRUIT OF THE LIPS; PEACE, PEACE TO HIM THAT IS FAR OFF, ANDO: TO HIM THAT IS NEAR, SAITH THE LORD; AND I WILL HEAL HIM.I# 20 BUT THE WICKED ARE LIKE THE TROUBLED SEA, WHEN IT CANNOT REST, WHOSEU WATERS CAST UP MIRE AND DIRT.4# 21 THERE IS NO PEACE, SAITH MY GOD, TO THE WICKED. = CHAPTER 58 N# 1 CRY ALOUD, SPARE NOT, LIFT UP THY VOICE LIKE A TRUMPET, AND SHEW MY PEOPLE8 THEIR TRANSGRESSION, AND THE HOUSE OF JACOB THEIR SINS.M# 2 YET THEY SEEK ME DAILY, AND DELIGHT TO KNOW MY WAYS, AS A NATION THAT DIDIN RIGHTEOUSNESS, AND FORSOOK NOT THE ORDINANCE OF THEIR GOD: THEY ASK OF ME THE@ ORDINANCES OF JUSTICE; THEY TAKE DELIGHT IN APPROACHING TO GOD.M# 3 WHEREFORE HAVE WE FASTED, SAY THEY, AND THOU SEEST NOT? WHEREFORE HAVE WEM AFFLICTED OUR SOUL, AND THOU TAKEST NO KNOWLEDGE? BEHOLD, IN THE DAY OF YOURL3 FAST YE FIND PLEASURE, AND EXACT ALL YOUR LABOURS. H# 4 BEHOLD, YE FAST FOR STRIFE AND DEBATE, AND TO SMITE WITH THE FIST OFJ WICKEDNESS: YE SHALL NOT FAST AS YE DO THIS DAY, TO MAKE YOUR VOICE TO BE HEARD ON HIGH.SH# 5 IS IT SUCH A FAST THAT I HAVE CHOSEN? A DAY FOR A MAN TO AFFLICT HISK SOUL? IS IT TO BOW DOWN HIS HEAD AS A BULRUSH, AND TO SPREAD SACKCLOTH ANDWJ ASHES UNDER HIM? WILT THOU CALL THIS A FAST, AND AN ACCEPTABLE DAY TO THE LORD?B# 6 IS NOT THIS THE FAST THAT I HAVE CHOSEN? TO LOOSE THE BANDS OFM WICKEDNESS, TO UNDO THE HEAVY BURDENS, AND TO LET THE OPPRESSED GO FREE, ANDB THAT YE BREAK EVERY YOKE?K# 7 IS IT NOT TO DEAL THY BREAD TO THE HUNGRY, AND THAT THOU BRING THE POORTK THAT ARE CAST OUT TO THY HOUSE? WHEN THOU SEEST THE NAKED, THAT THOU COVER : HIM; AND THAT THOU HIDE NOT THYSELF FROM THINE OWN FLESH?K# 8 THEN SHALL THY LIGHT BREAK FORTH AS THE MORNING, AND THINE HEALTH SHALL M SPRING FORTH SPEEDILY: AND THY RIGHTEOUSNESS SHALL GO BEFORE THEE; THE GLORYE# OF THE LORD SHALL BE THY REREWARD.EK# 9 THEN SHALT THOU CALL, AND THE LORD SHALL ANSWER; THOU SHALT CRY, AND HEAM SHALL SAY, HERE I AM. IF THOU TAKE AWAY FROM THE MIDST OF THEE THE YOKE, THE 2 PUTTING FORTH OF THE FINGER, AND SPEAKING VANITY;K# 10 AND IF THOU DRAW OUT THY SOUL TO THE HUNGRY, AND SATISFY THE AFFLICTEDTN SOUL; THEN SHALL THY LIGHT RISE IN OBSCURITY, AND THY DARKNESS BE AS THE NOON DAY:TG# 11 AND THE LORD SHALL GUIDE THEE CONTINUALLY, AND SATISFY THY SOUL INON DROUGHT, AND MAKE FAT THY BONES: AND THOU SHALT BE LIKE A WATERED GARDEN, AND/ LIKE A SPRING OF WATER, WHOSE WATERS FAIL NOT.RJ# 12 AND THEY THAT SHALL BE OF THEE SHALL BUILD THE OLD WASTE PLACES: THOUN SHALT RAISE UP THE FOUNDATIONS OF MANY GENERATIONS; AND THOU SHALT BE CALLED,? THE REPAIRER OF THE BREACH, THE RESTORER OF PATHS TO DWELL IN.L# 13 IF THOU TURN AWAY THY FOOT FROM THE SABBATH, FROM DOING THY PLEASURE ONC MY HOLY DAY; AND CALL THE SABBATH A DELIGHT, THE HOLY OF THE LORD, N HONOURABLE; AND SHALT HONOUR HIM, NOT DOING THINE OWN WAYS, NOR FINDING THINE, OWN PLEASURE, NOR SPEAKING THINE OWN WORDS:J# 14 THEN SHALT THOU DELIGHT THYSELF IN THE LORD; AND I WILL CAUSE THEE TOK RIDE UPON THE HIGH PLACES OF THE EARTH, AND FEED THEE WITH THE HERITAGE OFO< JACOB THY FATHER: FOR THE MOUTH OF THE LORD HATH SPOKEN IT. = CHAPTER 59 LM# 1 BEHOLD, THE LORDS HAND IS NOT SHORTENED, THAT IT CANNOT SAVE; NEITHER HISR EAR HEAVY, THAT IT CANNOT HEAR:I# 2 BUT YOUR INIQUITIES HAVE SEPARATED BETWEEN YOU AND YOUR GOD, AND YOUR,8 SINS HAVE HID HIS FACE FROM YOU, THAT HE WILL NOT HEAR.J# 3 FOR YOUR HANDS ARE DEFILED WITH BLOOD, AND YOUR FINGERS WITH INIQUITY;D YOUR LIPS HAVE SPOKEN LIES, YOUR TONGUE HATH MUTTERED PERVERSENESS.G# 4 NONE CALLETH FOR JUSTICE, NOR ANY PLEADETH FOR TRUTH: THEY TRUST INHJ VANITY, AND SPEAK LIES; THEY CONCEIVE MISCHIEF, AND BRING FORTH INIQUITY.L# 5 THEY HAT00ux:8<%X>%+%O-%TADATADATACH COCKATRICE EGGS, AND WEAVE THE SPIDERS WEB: HE THAT EATETH OFG THEIR EGGS DIETH, AND THAT WHICH IS CRUSHED BREAKETH OUT INTO A VIPER.DM# 6 THEIR WEBS SHALL NOT BECOME GARMENTS, NEITHER SHALL THEY COVER THEMSELVESHM WITH THEIR WORKS: THEIR WORKS ARE WORKS OF INIQUITY, AND THE ACT OF VIOLENCEP IS IN THEIR HANDS.EM# 7 THEIR FEET RUN TO EVIL, AND THEY MAKE HASTE TO SHED INNOCENT BLOOD: THEIRRH THOUGHTS ARE THOUGHTS OF INIQUITY; WASTING AND DESTRUCTION ARE IN THEIR PATHS.FM# 8 THE WAY OF PEACE THEY KNOW NOT; AND THERE IS NO JUDGMENT IN THEIR GOINGS:HJ THEY HAVE MADE THEM CROOKED PATHS: WHOSOEVER GOETH THEREIN SHALL NOT KNOW PEACE.DK# 9 THEREFORE IS JUDGMENT FAR FROM US, NEITHER DOTH JUSTICE OVERTAKE US: WEEE WAIT FOR LIGHT, BUT BEHOLD OBSCURITY; FOR BRIGHTNESS, BUT WE WALK INF DARKNESS.M# 10 WE GROPE FOR THE WALL LIKE THE BLIND, AND WE GROPE AS IF WE HAD NO EYES:NJ WE STUMBLE AT NOON DAY AS IN THE NIGHT; WE ARE IN DESOLATE PLACES AS DEAD MEN.RM# 11 WE ROAR ALL LIKE BEARS, AND MOURN SORE LIKE DOVES: WE LOOK FOR JUDGMENT,E= BUT THERE IS NONE; FOR SALVATION, BUT IT IS FAR OFF FROM US.EL# 12 FOR OUR TRANSGRESSIONS ARE MULTIPLIED BEFORE THEE, AND OUR SINS TESTIFYN AGAINST US: FOR OUR TRANSGRESSIONS ARE WITH US; AND AS FOR OUR INIQUITIES, WE KNOW THEM;NM# 13 IN TRANSGRESSING AND LYING AGAINST THE LORD, AND DEPARTING AWAY FROM OURDL GOD, SPEAKING OPPRESSION AND REVOLT, CONCEIVING AND UTTERING FROM THE HEART WORDS OF FALSEHOOD.M# 14 AND JUDGMENT IS TURNED AWAY BACKWARD, AND JUSTICE STANDETH AFAR OFF: FORO8 TRUTH IS FALLEN IN THE STREET, AND EQUITY CANNOT ENTER.I# 15 YEA, TRUTH FAILETH; AND HE THAT DEPARTETH FROM EVIL MAKETH HIMSELF AHM PREY: AND THE LORD SAW IT, AND IT DISPLEASED HIM THAT THERE WAS NO JUDGMENT.AE# 16 AND HE SAW THAT THERE WAS NO MAN, AND WONDERED THAT THERE WAS NO C INTERCESSOR: THEREFORE HIS ARM BROUGHT SALVATION UNTO HIM; AND HISS! RIGHTEOUSNESS, IT SUSTAINED HIM.RM# 17 FOR HE PUT ON RIGHTEOUSNESS AS A BREASTPLATE, AND AN HELMET OF SALVATIONWM UPON HIS HEAD; AND HE PUT ON THE GARMENTS OF VENGEANCE FOR CLOTHING, AND WASQ CLAD WITH ZEAL AS A CLOAK. E# 18 ACCORDING TO THEIR DEEDS, ACCORDINGLY HE WILL REPAY, FURY TO HIS:E ADVERSARIES, RECOMPENCE TO HIS ENEMIES; TO THE ISLANDS HE WILL REPAYA RECOMPENCE.I# 19 SO SHALL THEY FEAR THE NAME OF THE LORD FROM THE WEST, AND HIS GLORYHK FROM THE RISING OF THE SUN. WHEN THE ENEMY SHALL COME IN LIKE A FLOOD, THEA9 SPIRIT OF THE LORD SHALL LIFT UP A STANDARD AGAINST HIM.TF# 20 AND THE REDEEMER SHALL COME TO ZION, AND UNTO THEM THAT TURN FROM( TRANSGRESSION IN JACOB, SAITH THE LORD.M# 21 AS FOR ME, THIS IS MY COVENANT WITH THEM, SAITH THE LORD; MY SPIRIT THATRK IS UPON THEE, AND MY WORDS WHICH I HAVE PUT IN THY MOUTH, SHALL NOT DEPARTEL OUT OF THY MOUTH, NOR OUT OF THE MOUTH OF THY SEED, NOR OUT OF THE MOUTH OF> THY SEEDS SEED, SAITH THE LORD, FROM HENCEFORTH AND FOR EVER. = CHAPTER 60 EK# 1 ARISE, SHINE; FOR THY LIGHT IS COME, AND THE GLORY OF THE LORD IS RISENH UPON THEE.DK# 2 FOR, BEHOLD, THE DARKNESS SHALL COVER THE EARTH, AND GROSS DARKNESS THENM PEOPLE: BUT THE LORD SHALL ARISE UPON THEE, AND HIS GLORY SHALL BE SEEN UPONH THEE.L# 3 AND THE GENTILES SHALL COME TO THY LIGHT, AND KINGS TO THE BRIGHTNESS OF THY RISING.G# 4 LIFT UP THINE EYES ROUND ABOUT, AND SEE: ALL THEY GATHER THEMSELVES M TOGETHER, THEY COME TO THEE: THY SONS SHALL COME FROM FAR, AND THY DAUGHTERSP SHALL BE NURSED AT THY SIDE. K# 5 THEN THOU SHALT SEE, AND FLOW TOGETHER, AND THINE HEART SHALL FEAR, AND,L BE ENLARGED; BECAUSE THE ABUNDANCE OF THE SEA SHALL BE CONVERTED UNTO THEE,1 THE FORCES OF THE GENTILES SHALL COME UNTO THEE.SK# 6 THE MULTITUDE OF CAMELS SHALL COVER THEE, THE DROMEDARIES OF MIDIAN AND N EPHAH; ALL THEY FROM SHEBA SHALL COME: THEY SHALL BRING GOLD AND INCENSE; AND/ THEY SHALL SHEW FORTH THE PRAISES OF THE LORD.EM# 7 ALL THE FLOCKS OF KEDAR SHALL BE GATHERED TOGETHER UNTO THEE, THE RAMS OFSN NEBAIOTH SHALL MINISTER UNTO THEE: THEY SHALL COME UP WITH ACCEPTANCE ON MINE1 ALTAR, AND I WILL GLORIFY THE HOUSE OF MY GLO00u::D%5%T6%! !RY. I# 8 WHO ARE THESE THAT FLY AS A CLOUD, AND AS THE DOVES TO THEIR WINDOWS? K# 9 SURELY THE ISLES SHALL WAIT FOR ME, AND THE SHIPS OF TARSHISH FIRST, TOEN BRING THY SONS FROM FAR, THEIR SILVER AND THEIR GOLD WITH THEM, UNTO THE NAMEN OF THE LORD THY GOD, AND TO THE HOLY ONE OF ISRAEL, BECAUSE HE HATH GLORIFIED THEE.H# 10 AND THE SONS OF STRANGERS SHALL BUILD UP THY WALLS, AND THEIR KINGSN SHALL MINISTER UNTO THEE: FOR IN MY WRATH I SMOTE THEE, BUT IN MY FAVOUR HAVE I HAD MERCY ON THEE.OJ# 11 THEREFORE THY GATES SHALL BE OPEN CONTINUALLY; THEY SHALL NOT BE SHUTL DAY NOR NIGHT; THAT MEN MAY BRING UNTO THEE THE FORCES OF THE GENTILES, AND! THAT THEIR KINGS MAY BE BROUGHT.FK# 12 FOR THE NATION AND KINGDOM THAT WILL NOT SERVE THEE SHALL PERISH; YEA,D' THOSE NATIONS SHALL BE UTTERLY WASTED.HL# 13 THE GLORY OF LEBANON SHALL COME UNTO THEE, THE FIR TREE, THE PINE TREE,M AND THE BOX TOGETHER, TO BEAUTIFY THE PLACE OF MY SANCTUARY; AND I WILL MAKEB THE PLACE OF MY FEET GLORIOUS.YL# 14 THE SONS ALSO OF THEM THAT AFFLICTED THEE SHALL COME BENDING UNTO THEE;N AND ALL THEY THAT DESPISED THEE SHALL BOW THEMSELVES DOWN AT THE SOLES OF THYK FEET; AND THEY SHALL CALL THEE; THE CITY OF THE LORD, THE ZION OF THE HOLYH ONE OF ISRAEL. J# 15 WHEREAS THOU HAS BEEN FORSAKEN AND HATED, SO THAT NO MAN WENT THROUGHI THEE, I WILL MAKE THEE AN ETERNAL EXCELLENCY, A JOY OF MANY GENERATIONS.TM# 16 THOU SHALT ALSO SUCK THE MILK OF THE GENTILES, AND SHALT SUCK THE BREASTPE OF KINGS: AND THOU SHALT KNOW THAT I THE LORD AM THY SAVIOUR AND THYH# REDEEMER, THE MIGHTY ONE OF JACOB.DK# 17 FOR BRASS I WILL BRING GOLD, AND FOR IRON I WILL BRING SILVER, AND FORFJ WOOD BRASS, AND FOR STONES IRON: I WILL ALSO MAKE THY OFFICERS PEACE, AND THINE EXACTORS RIGHTEOUSNESS.I# 18 VIOLENCE SHALL NO MORE BE HEARD IN THY LAND, WASTING NOR DESTRUCTION K WITHIN THY BORDERS; BUT THOU SHALT CALL THY WALLS SALVATION, AND THY GATES  PRAISE.L# 19 THE SUN SHALL BE NO MORE THY LIGHT BY DAY; NEITHER FOR BRIGHTNESS SHALLN THE MOON GIVE LIGHT UNTO THEE: BUT THE LORD SHALL BE UNTO THEE AN EVERLASTING LIGHT, AND THY GOD THY GLORY.K# 20 THY SUN SHALL NO MORE GO DOWN; NEITHER SHALL THY MOON WITHDRAW ITSELF:EL FOR THE LORD SHALL BE THINE EVERLASTING LIGHT, AND THE DAYS OF THY MOURNING SHALL BE ENDED.L# 21 THY PEOPLE ALSO SHALL BE ALL RIGHTEOUS: THEY SHALL INHERIT THE LAND FORE EVER, THE BRANCH OF MY PLANTING, THE WORK OF MY HANDS, THAT I MAY BE GLORIFIED.SM# 22 A LITTLE ONE SHALL BECOME A THOUSAND, AND A SMALL ONE A STRONG NATION: IL% THE LORD WILL HASTEN IT IN HIS TIME.N = CHAPTER 61 LL# 1 THE SPIRIT OF THE LORD GOD IS UPON ME; BECAUSE THE LORD HATH ANOINTED MEE TO PREACH GOOD TIDINGS UNTO THE MEEK; HE HATH SENT ME TO BIND UP THEEK BROKENHEARTED, TO PROCLAIM LIBERTY TO THE CAPTIVES, AND THE OPENING OF THEL PRISON TO THEM THAT ARE BOUND;EL# 2 TO PROCLAIM THE ACCEPTABLE YEAR OF THE LORD, AND THE DAY OF VENGEANCE OF$ OUR GOD; TO COMFORT ALL THAT MOURN;I# 3 TO APPOINT UNTO THEM THAT MOURN IN ZION, TO GIVE UNTO THEM BEAUTY FOR L ASHES, THE OIL OF JOY FOR MOURNING, THE GARMENT OF PRAISE FOR THE SPIRIT OFM HEAVINESS; THAT THEY MIGHT BE CALLED TREES OF RIGHTEOUSNESS, THE PLANTING OFI& THE LORD, THAT HE MIGHT BE GLORIFIED.G# 4 AND THEY SHALL BUILD THE OLD WASTES, THEY SHALL RAISE UP THE FORMEROM DESOLATIONS, AND THEY SHALL REPAIR THE WASTE CITIES, THE DESOLATIONS OF MANYE GENERATIONS.RM# 5 AND STRANGERS SHALL STAND AND FEED YOUR FLOCKS, AND THE SONS OF THE ALIENP- SHALL BE YOUR PLOWMEN AND YOUR VINEDRESSERS. I# 6 BUT YE SHALL BE NAMED THE PRIESTS OF THE LORD: MEN SHALL CALL YOU THEEL MINISTERS OF OUR GOD: YE SHALL EAT THE RICHES OF THE GENTILES, AND IN THEIR! GLORY SHALL YE BOAST YOURSELVES.AM# 7 FOR YOUR SHAME YE SHALL HAVE DOUBLE; AND FOR CONFUSION THEY SHALL REJOICEAI IN THEIR PORTION: THEREFORE IN THEIR LAND THEY SHALL POSSESS THE DOUBLE:H$ EVERLASTING JOY SHALL BE UNTO THEM.J# 8 FOR I THE LORD LOVE JUDGMENT, I HATE ROBBERY FOR BURNT OFFERING; AND IN WILL DIRECT THEIR WORK IN TRUTH, AND I WILL MAKE AN EVERLASTING COV00u:8<%X>%+%O-%TADATADATAENANT WITH THEM.I# 9 AND THEIR SEED SHALL BE KNOWN AMONG THE GENTILES, AND THEIR OFFSPRINGAN AMONG THE PEOPLE: ALL THAT SEE THEM SHALL ACKNOWLEDGE THEM, THAT THEY ARE THE" SEED WHICH THE LORD HATH BLESSED.K# 10 I WILL GREATLY REJOICE IN THE LORD, MY SOUL SHALL BE JOYFUL IN MY GOD;HJ FOR HE HATH CLOTHED ME WITH THE GARMENTS OF SALVATION, HE HATH COVERED MEE WITH THE ROBE OF RIGHTEOUSNESS, AS A BRIDEGROOM DECKETH HIMSELF WITH;< ORNAMENTS, AND AS A BRIDE ADORNETH HERSELF WITH HER JEWELS.K# 11 FOR AS THE EARTH BRINGETH FORTH HER BUD, AND AS THE GARDEN CAUSETH THE G THINGS THAT ARE SOWN IN IT TO SPRING FORTH; SO THE LORD GOD WILL CAUSELA RIGHTEOUSNESS AND PRAISE TO SPRING FORTH BEFORE ALL THE NATIONS.S = CHAPTER 62 LK# 1 FOR ZIONS SAKE WILL I NOT HOLD MY PEACE, AND FOR JERUSALEMS SAKE I WILLAJ NOT REST, UNTIL THE RIGHTEOUSNESS THEREOF GO FORTH AS BRIGHTNESS, AND THE* SALVATION THEREOF AS A LAMP THAT BURNETH.J# 2 AND THE GENTILES SHALL SEE THY RIGHTEOUSNESS, AND ALL KINGS THY GLORY:J AND THOU SHALT BE CALLED BY A NEW NAME, WHICH THE MOUTH OF THE LORD SHALL NAME.L# 3 THOU SHALT ALSO BE A CROWN OF GLORY IN THE HAND OF THE LORD, AND A ROYAL DIADEM IN THE HAND OF THY GOD.TM# 4 THOU SHALT NO MORE BE TERMED FORSAKEN; NEITHER SHALL THY LAND ANY MORE BEMN TERMED DESOLATE: BUT THOU SHALT BE CALLED HEPHZIBAH, AND THY LAND BEULAH: FOR< THE LORD DELIGHTETH IN THEE, AND THY LAND SHALL BE MARRIED.K# 5 FOR AS A YOUNG MAN MARRIETH A VIRGIN, SO SHALL THY SONS MARRY THEE: AND J AS THE BRIDEGROOM REJOICETH OVER THE BRIDE, SO SHALL THY GOD REJOICE OVER THEE.K# 6 I HAVE SET WATCHMEN UPON THY WALLS, O JERUSALEM, WHICH SHALL NEVER HOLDLF THEIR PEACE DAY NOR NIGHT: YE THAT MAKE MENTION OF THE LORD, KEEP NOT SILENCE,DI# 7 AND GIVE HIM NO REST, TILL HE ESTABLISH, AND TILL HE MAKE JERUSALEM AS PRAISE IN THE EARTH.HJ# 8 THE LORD HATH SWORN BY HIS RIGHT HAND, AND BY THE ARM OF HIS STRENGTH,J SURELY I WILL NO MORE GIVE THY CORN TO BE MEAT FOR THINE ENEMIES; AND THEG SONS OF THE STRANGER SHALL NOT DRINK THY WINE, FOR THE WHICH THOU HAST LABOURED:I# 9 BUT THEY THAT HAVE GATHERED IT SHALL EAT IT, AND PRAISE THE LORD; ANDAF THEY THAT HAVE BROUGHT IT TOGETHER SHALL DRINK IT IN THE COURTS OF MY HOLINESS.M# 10 GO THROUGH, GO THROUGH THE GATES; PREPARE YE THE WAY OF THE PEOPLE; CASTEK UP, CAST UP THE HIGHWAY; GATHER OUT THE STONES; LIFT UP A STANDARD FOR THE, PEOPLE.J# 11 BEHOLD, THE LORD HATH PROCLAIMED UNTO THE END OF THE WORLD, SAY YE TOJ THE DAUGHTER OF ZION, BEHOLD, THY SALVATION COMETH; BEHOLD, HIS REWARD IS# WITH HIM, AND HIS WORK BEFORE HIM. M# 12 AND THEY SHALL CALL THEM, THE HOLY PEOPLE, THE REDEEMED OF THE LORD: ANDH7 THOU SHALT BE CALLED, SOUGHT OUT, A CITY NOT FORSAKEN.O = CHAPTER 63 .K# 1 WHO IS THIS THAT COMETH FROM EDOM, WITH DYED GARMENTS FROM BOZRAH? THISSN THAT IS GLORIOUS IN HIS APPAREL, TRAVELLING IN THE GREATNESS OF HIS STRENGTH?/ I THAT SPEAK IN RIGHTEOUSNESS, MIGHTY TO SAVE. K# 2 WHEREFORE ART THOU RED IN THINE APPAREL, AND THY GARMENTS LIKE HIM THATA TREADETH IN THE WINEFAT?WM# 3 I HAVE TRODDEN THE WINEPRESS ALONE; AND OF THE PEOPLE THERE WAS NONE WITHEJ ME: FOR I WILL TREAD THEM IN MINE ANGER, AND TRAMPLE THEM IN MY FURY; ANDI THEIR BLOOD SHALL BE SPRINKLED UPON MY GARMENTS, AND I WILL STAIN ALL MYM RAIMENT. M# 4 FOR THE DAY OF VENGEANCE IS IN MINE HEART, AND THE YEAR OF MY REDEEMED ISI COME.K# 5 AND I LOOKED, AND THERE WAS NONE TO HELP; AND I WONDERED THAT THERE WAS I NONE TO UPHOLD: THEREFORE MINE OWN ARM BROUGHT SALVATION UNTO ME; AND MY FURY, IT UPHELD ME.M# 6 AND I WILL TREAD DOWN THE PEOPLE IN MINE ANGER, AND MAKE THEM DRUNK IN MYW9 FURY, AND I WILL BRING DOWN THEIR STRENGTH TO THE EARTH. K# 7 I WILL MENTION THE LOVINGKINDNESSES OF THE LORD, AND THE PRAISES OF THE H LORD, ACCORDING TO ALL THAT THE LORD HATH BESTOWED ON US, AND THE GREATN GOODNESS TOWARD THE HOUSE OF ISRAEL, WHICH HE HATH BESTOWED ON THEM ACCORDINGH TO HIS MERCIES, AND ACCORDING TO THE MULTITUDE OF HIS LOVINGKINDNESSES.M# 8 FOR HE SAID, SURELY THEY ARE MY PEOPLE, CHILDREN THAT WILL NOT00u::D%5%T6%! ! LIE: SO HEI WAS THEIR SAVIOUR.PK# 9 IN ALL THEIR AFFLICTION HE WAS AFFLICTED, AND THE ANGEL OF HIS PRESENCEEL SAVED THEM: IN HIS LOVE AND IN HIS PITY HE REDEEMED THEM; AND HE BARE THEM,& AND CARRIED THEM ALL THE DAYS OF OLD.M# 10 BUT THEY REBELLED, AND VEXED HIS HOLY SPIRIT: THEREFORE HE WAS TURNED TOT, BE THEIR ENEMY, AND HE FOUGHT AGAINST THEM.M# 11 THEN HE REMEMBERED THE DAYS OF OLD, MOSES, AND HIS PEOPLE, SAYING, WHERENJ IS HE THAT BROUGHT THEM UP OUT OF THE SEA WITH THE SHEPHERD OF HIS FLOCK?1 WHERE IS HE THAT PUT HIS HOLY SPIRIT WITHIN HIM?RM# 12 THAT LED THEM BY THE RIGHT HAND OF MOSES WITH HIS GLORIOUS ARM, DIVIDINGI< THE WATER BEFORE THEM, TO MAKE HIMSELF AN EVERLASTING NAME?M# 13 THAT LED THEM THROUGH THE DEEP, AS AN HORSE IN THE WILDERNESS, THAT THEYY SHOULD NOT STUMBLE?M# 14 AS A BEAST GOETH DOWN INTO THE VALLEY, THE SPIRIT OF THE LORD CAUSED HIMMI TO REST: SO DIDST THOU LEAD THY PEOPLE, TO MAKE THYSELF A GLORIOUS NAME.RJ# 15 LOOK DOWN FROM HEAVEN, AND BEHOLD FROM THE HABITATION OF THY HOLINESSJ AND OF THY GLORY: WHERE IS THY ZEAL AND THY STRENGTH, THE SOUNDING OF THY: BOWELS AND OF THY MERCIES TOWARD ME? ARE THEY RESTRAINED?I# 16 DOUBTLESS THOU ART OUR FATHER, THOUGH ABRAHAM BE IGNORANT OF US, ANDDK ISRAEL ACKNOWLEDGE US NOT: THOU, O LORD, ART OUR FATHER, OUR REDEEMER; THY  NAME IS FROM EVERLASTING.I# 17 O LORD, WHY HAST THOU MADE US TO ERR FROM THY WAYS, AND HARDENED OURYG HEART FROM THY FEAR? RETURN FOR THY SERVANTS SAKE, THE TRIBES OF THINEN INHERITANCE.HI# 18 THE PEOPLE OF THY HOLINESS HAVE POSSESSED IT BUT A LITTLE WHILE: OURS- ADVERSARIES HAVE TRODDEN DOWN THY SANCTUARY.YL# 19 WE ARE THINE: THOU NEVER BAREST RULE OVER THEM; THEY WERE NOT CALLED BY THY NAME. = CHAPTER 64 ON# 1 OH THAT THOU WOULDEST REND THE HEAVENS, THAT THOU WOULDEST COME DOWN, THAT/ THE MOUNTAINS MIGHT FLOW DOWN AT THY PRESENCE,,M# 2 AS WHEN THE MELTING FIRE BURNETH, THE FIRE CAUSETH THE WATERS TO BOIL, TO N MAKE THY NAME KNOWN TO THINE ADVERSARIES, THAT THE NATIONS MAY TREMBLE AT THY PRESENCE!H# 3 WHEN THOU DIDST TERRIBLE THINGS WHICH WE LOOKED NOT FOR, THOU CAMEST1 DOWN, THE MOUNTAINS FLOWED DOWN AT THY PRESENCE.TM# 4 FOR SINCE THE BEGINNING OF THE WORLD MEN HAVE NOT HEARD, NOR PERCEIVED BY N THE EAR, NEITHER HATH THE EYE SEEN, O GOD, BESIDE THEE, WHAT HE HATH PREPARED FOR HIM THAT WAITETH FOR HIM.I# 5 THOU MEETEST HIM THAT REJOICETH AND WORKETH RIGHTEOUSNESS, THOSE THATEJ REMEMBER THEE IN THY WAYS: BEHOLD, THOU ART WROTH; FOR WE HAVE SINNED: IN- THOSE IS CONTINUANCE, AND WE SHALL BE SAVED. J# 6 BUT WE ARE ALL AS AN UNCLEAN THING, AND ALL OUR RIGHTEOUSNESSES ARE ASN FILTHY RAGS; AND WE ALL DO FADE AS A LEAF; AND OUR INIQUITIES, LIKE THE WIND, HAVE TAKEN US AWAY.M# 7 AND THERE IS NONE THAT CALLETH UPON THY NAME, THAT STIRRETH UP HIMSELF TO,M TAKE HOLD OF THEE: FOR THOU HAST HID THY FACE FROM US, AND HAST CONSUMED US,A BECAUSE OF OUR INIQUITIES.EG# 8 BUT NOW, O LORD, THOU ART OUR FATHER; WE ARE THE CLAY, AND THOU OUR - POTTER; AND WE ALL ARE THE WORK OF THY HAND.AG# 9 BE NOT WROTH VERY SORE, O LORD, NEITHER REMEMBER INIQUITY FOR EVER:U5 BEHOLD, SEE, WE BESEECH THEE, WE ARE ALL THY PEOPLE.AH# 10 THY HOLY CITIES ARE A WILDERNESS, ZION IS A WILDERNESS, JERUSALEM A DESOLATION.I# 11 OUR HOLY AND OUR BEAUTIFUL HOUSE, WHERE OUR FATHERS PRAISED THEE, ISOA BURNED UP WITH FIRE: AND ALL OUR PLEASANT THINGS ARE LAID WASTE.K# 12 WILT THOU REFRAIN THYSELF FOR THESE THINGS, O LORD? WILT THOU HOLD THYE! PEACE, AND AFFLICT US VERY SORE?A = CHAPTER 65 HM# 1 I AM SOUGHT OF THEM THAT ASKED NOT FOR ME; I AM FOUND OF THEM THAT SOUGHTUN ME NOT: I SAID, BEHOLD ME, BEHOLD ME, UNTO A NATION THAT WAS NOT CALLED BY MY NAME.J# 2 I HAVE SPREAD OUT MY HANDS ALL THE DAY UNTO A REBELLIOUS PEOPLE, WHICH> WALKETH IN A WAY THAT WAS NOT GOOD, AFTER THEIR OWN THOUGHTS;D# 3 A PEOPLE THAT PROVOKETH ME TO ANGER CONTINUALLY TO MY FACE; THATB SACRIFICETH IN GARDENS, AND BURNETH INCENSE UPON ALTARS OF BRICK;H# 4 WHICH REMAIN AMONG THE GRAVES, AND LODGE IN THE MONUMENTS, WHICH EATB SWINES FLESH, AND00u:8<%X>%+%O-%TADATADATA BROTH OF ABOMINABLE THINGS IS IN THEIR VESSELS;J# 5 WHICH SAY, STAND BY THYSELF, COME NOT NEAR TO ME; FOR I AM HOLIER THANE THOU. THESE ARE A SMOKE IN MY NOSE, A FIRE THAT BURNETH ALL THE DAY.EF# 6 BEHOLD, IT IS WRITTEN BEFORE ME: I WILL NOT KEEP SILENCE, BUT WILL. RECOMPENSE, EVEN RECOMPENSE INTO THEIR BOSOM,K# 7 YOUR INIQUITIES, AND THE INIQUITIES OF YOUR FATHERS TOGETHER, SAITH THENK LORD, WHICH HAVE BURNED INCENSE UPON THE MOUNTAINS, AND BLASPHEMED ME UPON H THE HILLS: THEREFORE WILL I MEASURE THEIR FORMER WORK INTO THEIR BOSOM.I# 8 THUS SAITH THE LORD, AS THE NEW WINE IS FOUND IN THE CLUSTER, AND ONE M SAITH, DESTROY IT NOT; FOR A BLESSING IS IN IT: SO WILL I DO FOR MY SERVANTSE( SAKES, THAT I MAY NOT DESTROY THEM ALL.M# 9 AND I WILL BRING FORTH A SEED OUT OF JACOB, AND OUT OF JUDAH AN INHERITORON OF MY MOUNTAINS: AND MINE ELECT SHALL INHERIT IT, AND MY SERVANTS SHALL DWELL THERE.,J# 10 AND SHARON SHALL BE A FOLD OF FLOCKS, AND THE VALLEY OF ACHOR A PLACEA FOR THE HERDS TO LIE DOWN IN, FOR MY PEOPLE THAT HAVE SOUGHT ME..I# 11 BUT YE ARE THEY THAT FORSAKE THE LORD, THAT FORGET MY HOLY MOUNTAIN, N THAT PREPARE A TABLE FOR THAT TROOP, AND THAT FURNISH THE DRINK OFFERING UNTO THAT NUMBER.IK# 12 THEREFORE WILL I NUMBER YOU TO THE SWORD, AND YE SHALL ALL BOW DOWN TONN THE SLAUGHTER: BECAUSE WHEN I CALLED, YE DID NOT ANSWER; WHEN I SPAKE, YE DIDG NOT HEAR; BUT DID EVIL BEFORE MINE EYES, AND DID CHOOSE THAT WHEREIN IF DELIGHTED NOT.VM# 13 THEREFORE THUS SAITH THE LORD GOD, BEHOLD, MY SERVANTS SHALL EAT, BUT YESK SHALL BE HUNGRY: BEHOLD, MY SERVANTS SHALL DRINK, BUT YE SHALL BE THIRSTY:O< BEHOLD, MY SERVANTS SHALL REJOICE, BUT YE SHALL BE ASHAMED:J# 14 BEHOLD, MY SERVANTS SHALL SING FOR JOY OF HEART, BUT YE SHALL CRY FOR8 SORROW OF HEART, AND SHALL HOWL FOR VEXATION OF SPIRIT.J# 15 AND YE SHALL LEAVE YOUR NAME FOR A CURSE UNTO MY CHOSEN: FOR THE LORD< GOD SHALL SLAY THEE, AND CALL HIS SERVANTS BY ANOTHER NAME:M# 16 THAT HE WHO BLESSETH HIMSELF IN THE EARTH SHALL BLESS HIMSELF IN THE GODTM OF TRUTH; AND HE THAT SWEARETH IN THE EARTH SHALL SWEAR BY THE GOD OF TRUTH; N BECAUSE THE FORMER TROUBLES ARE FORGOTTEN, AND BECAUSE THEY ARE HID FROM MINE EYES.L# 17 FOR, BEHOLD, I CREATE NEW HEAVENS AND A NEW EARTH: AND THE FORMER SHALL' NOT BE REMEMBERED, NOR COME INTO MIND.SM# 18 BUT BE YE GLAD AND REJOICE FOR EVER IN THAT WHICH I CREATE: FOR, BEHOLD,O6 I CREATE JERUSALEM A REJOICING, AND HER PEOPLE A JOY.L# 19 AND I WILL REJOICE IN JERUSALEM, AND JOY IN MY PEOPLE: AND THE VOICE OF@ WEEPING SHALL BE NO MORE HEARD IN HER, NOR THE VOICE OF CRYING.I# 20 THERE SHALL BE NO MORE THENCE AN INFANT OF DAYS, NOR AN OLD MAN THATEL HATH NOT FILLED HIS DAYS: FOR THE CHILD SHALL DIE AN HUNDRED YEARS OLD; BUT9 THE SINNER BEING AN HUNDRED YEARS OLD SHALL BE ACCURSED.OH# 21 AND THEY SHALL BUILD HOUSES, AND INHABIT THEM; AND THEY SHALL PLANT& VINEYARDS, AND EAT THE FRUIT OF THEM.I# 22 THEY SHALL NOT BUILD, AND ANOTHER INHABIT; THEY SHALL NOT PLANT, ANDLK ANOTHER EAT: FOR AS THE DAYS OF A TREE ARE THE DAYS OF MY PEOPLE, AND MINEN0 ELECT SHALL LONG ENJOY THE WORK OF THEIR HANDS.M# 23 THEY SHALL NOT LABOUR IN VAIN, NOR BRING FORTH FOR TROUBLE; FOR THEY AREDD THE SEED OF THE BLESSED OF THE LORD, AND THEIR OFFSPRING WITH THEM.I# 24 AND IT SHALL COME TO PASS, THAT BEFORE THEY CALL, I WILL ANSWER; ANDS* WHILE THEY ARE YET SPEAKING, I WILL HEAR.L# 25 THE WOLF AND THE LAMB SHALL FEED TOGETHER, AND THE LION SHALL EAT STRAWK LIKE THE BULLOCK: AND DUST SHALL BE THE SERPENTS MEAT. THEY SHALL NOT HURT 5 NOR DESTROY IN ALL MY HOLY MOUNTAIN, SAITH THE LORD. = CHAPTER 66 OE# 1 THUS SAITH THE LORD, THE HEAVEN IS MY THRONE, AND THE EARTH IS MY L FOOTSTOOL: WHERE IS THE HOUSE THAT YE BUILD UNTO ME? AND WHERE IS THE PLACE OF MY REST?M# 2 FOR ALL THOSE THINGS HATH MINE HAND MADE, AND ALL THOSE THINGS HAVE BEEN,WM SAITH THE LORD: BUT TO THIS MAN WILL I LOOK, EVEN TO HIM THAT IS POOR AND OF - A CONTRITE SPIRIT, AND TREMBLETH AT MY WORD.HM# 3 HE THAT KILLETH AN OX IS AS IF HE SLEW A MAN; HE THAT SACRIFICETH A 00u::D%5%T6%! !LAMB,RM AS IF HE CUT OFF A DOGS NECK; HE THAT OFFERETH AN OBLATION, AS IF HE OFFEREDEK SWINES BLOOD; HE THAT BURNETH INCENSE, AS IF HE BLESSED AN IDOL. YEA, THEYEM HAVE CHOSEN THEIR OWN WAYS, AND THEIR SOUL DELIGHTETH IN THEIR ABOMINATIONS. M# 4 I ALSO WILL CHOOSE THEIR DELUSIONS, AND WILL BRING THEIR FEARS UPON THEM;LM BECAUSE WHEN I CALLED, NONE DID ANSWER; WHEN I SPAKE, THEY DID NOT HEAR: BUT I THEY DID EVIL BEFORE MINE EYES, AND CHOSE THAT IN WHICH I DELIGHTED NOT.LI# 5 HEAR THE WORD OF THE LORD, YE THAT TREMBLE AT HIS WORD; YOUR BRETHRENHK THAT HATED YOU, THAT CAST YOU OUT FOR MY NAMES SAKE, SAID, LET THE LORD BECG GLORIFIED: BUT HE SHALL APPEAR TO YOUR JOY, AND THEY SHALL BE ASHAMED.AK# 6 A VOICE OF NOISE FROM THE CITY, A VOICE FROM THE TEMPLE, A VOICE OF THER/ LORD THAT RENDERETH RECOMPENCE TO HIS ENEMIES.LJ# 7 BEFORE SHE TRAVAILED, SHE BROUGHT FORTH; BEFORE HER PAIN CAME, SHE WAS DELIVERED OF A MAN CHILD.K# 8 WHO HATH HEARD SUCH A THING? WHO HATH SEEN SUCH THINGS? SHALL THE EARTHEM BE MADE TO BRING FORTH IN ONE DAY? OR SHALL A NATION BE BORN AT ONCE? FOR ASY8 SOON AS ZION TRAVAILED, SHE BROUGHT FORTH HER CHILDREN.M# 9 SHALL I BRING TO THE BIRTH, AND NOT CAUSE TO BRING FORTH? SAITH THE LORD:F@ SHALL I CAUSE TO BRING FORTH, AND SHUT THE WOMB? SAITH THY GOD.K# 10 REJOICE YE WITH JERUSALEM, AND BE GLAD WITH HER, ALL YE THAT LOVE HER: 5 REJOICE FOR JOY WITH HER, ALL YE THAT MOURN FOR HER:DM# 11 THAT YE MAY SUCK, AND BE SATISFIED WITH THE BREASTS OF HER CONSOLATIONS;HH THAT YE MAY MILK OUT, AND BE DELIGHTED WITH THE ABUNDANCE OF HER GLORY.G# 12 FOR THUS SAITH THE LORD, BEHOLD, I WILL EXTEND PEACE TO HER LIKE ADJ RIVER, AND THE GLORY OF THE GENTILES LIKE A FLOWING STREAM: THEN SHALL YEG SUCK, YE SHALL BE BORNE UPON HER SIDES, AND BE DANDLED UPON HER KNEES..K# 13 AS ONE WHOM HIS MOTHER COMFORTETH, SO WILL I COMFORT YOU; AND YE SHALL  BE COMFORTED IN JERUSALEM.AI# 14 AND WHEN YE SEE THIS, YOUR HEART SHALL REJOICE, AND YOUR BONES SHALLEJ FLOURISH LIKE AN HERB: AND THE HAND OF THE LORD SHALL BE KNOWN TOWARD HIS2 SERVANTS, AND HIS INDIGNATION TOWARD HIS ENEMIES.L# 15 FOR, BEHOLD, THE LORD WILL COME WITH FIRE, AND WITH HIS CHARIOTS LIKE AN WHIRLWIND, TO RENDER HIS ANGER WITH FURY, AND HIS REBUKE WITH FLAMES OF FIRE.M# 16 FOR BY FIRE AND BY HIS SWORD WILL THE LORD PLEAD WITH ALL FLESH: AND THEE! SLAIN OF THE LORD SHALL BE MANY.HH# 17 THEY THAT SANCTIFY THEMSELVES, AND PURIFY THEMSELVES IN THE GARDENSL BEHIND ONE TREE IN THE MIDST, EATING SWINES FLESH, AND THE ABOMINATION, AND7 THE MOUSE, SHALL BE CONSUMED TOGETHER, SAITH THE LORD.DJ# 18 FOR I KNOW THEIR WORKS AND THEIR THOUGHTS: IT SHALL COME, THAT I WILLG GATHER ALL NATIONS AND TONGUES; AND THEY SHALL COME, AND SEE MY GLORY.,K# 19 AND I WILL SET A SIGN AMONG THEM, AND I WILL SEND THOSE THAT ESCAPE OFTH THEM UNTO THE NATIONS, TO TARSHISH, PUL, AND LUD, THAT DRAW THE BOW, TON TUBAL, AND JAVAN, TO THE ISLES AFAR OFF, THAT HAVE NOT HEARD MY FAME, NEITHERH HAVE SEEN MY GLORY; AND THEY SHALL DECLARE MY GLORY AMONG THE GENTILES.M# 20 AND THEY SHALL BRING ALL YOUR BRETHREN FOR AN OFFERING UNTO THE LORD OUT M OF ALL NATIONS UPON HORSES, AND IN CHARIOTS, AND IN LITTERS, AND UPON MULES,OM AND UPON SWIFT BEASTS, TO MY HOLY MOUNTAIN JERUSALEM, SAITH THE LORD, AS THEGM CHILDREN OF ISRAEL BRING AN OFFERING IN A CLEAN VESSEL INTO THE HOUSE OF THES LORD.H# 21 AND I WILL ALSO TAKE OF THEM FOR PRIESTS AND FOR LEVITES, SAITH THE LORD.G# 22 FOR AS THE NEW HEAVENS AND THE NEW EARTH, WHICH I WILL MAKE, SHALL K REMAIN BEFORE ME, SAITH THE LORD, SO SHALL YOUR SEED AND YOUR NAME REMAIN. K# 23 AND IT SHALL COME TO PASS, THAT FROM ONE NEW MOON TO ANOTHER, AND FROM M ONE SABBATH TO ANOTHER, SHALL ALL FLESH COME TO WORSHIP BEFORE ME, SAITH THEE LORD.M# 24 AND THEY SHALL GO FORTH, AND LOOK UPON THE CARCASES OF THE MEN THAT HAVEEK TRANSGRESSED AGAINST ME: FOR THEIR WORM SHALL NOT DIE, NEITHER SHALL THEIRTA FIRE BE QUENCHED; AND THEY SHALL BE AN ABHORRING UNTO ALL FLESH.ND THE NEW EARTH, WHICH I WILL MAKE, SHALL K REMAIN BEFORE ME, SAITH THE LOR00v:8<%X>%+%O-%TADATADATA* BOOK24 JEREMIAHE = CHAPTER 1 I# 1 THE WORDS OF JEREMIAH THE SON OF HILKIAH, OF THE PRIESTS THAT WERE INE" ANATHOTH IN THE LAND OF BENJAMIN:K# 2 TO WHOM THE WORD OF THE LORD CAME IN THE DAYS OF JOSIAH THE SON OF AMONE4 KING OF JUDAH, IN THE THIRTEENTH YEAR OF HIS REIGN.J# 3 IT CAME ALSO IN THE DAYS OF JEHOIAKIM THE SON OF JOSIAH KING OF JUDAH,H UNTO THE END OF THE ELEVENTH YEAR OF ZEDEKIAH THE SON OF JOSIAH KING OFG JUDAH, UNTO THE CARRYING AWAY OF JERUSALEM CAPTIVE IN THE FIFTH MONTH.I6# 4 THEN THE WORD OF THE LORD CAME UNTO ME, SAYING, ITI# 5 BEFORE I FORMED THEE IN THE BELLY I KNEW THEE; AND BEFORE THOU CAMEST L FORTH OUT OF THE WOMB I SANCTIFIED THEE, AND I ORDAINED THEE A PROPHET UNTO THE NATIONS. H# 6 THEN SAID I, AH, LORD GOD! BEHOLD, I CANNOT SPEAK: FOR I AM A CHILD.J# 7 BUT THE LORD SAID UNTO ME, SAY NOT, I AM A CHILD: FOR THOU SHALT GO TOL ALL THAT I SHALL SEND THEE, AND WHATSOEVER I COMMAND THEE THOU SHALT SPEAK.K# 8 BE NOT AFRAID OF THEIR FACES: FOR I AM WITH THEE TO DELIVER THEE, SAITH THE LORD.M# 9 THEN THE LORD PUT FORTH HIS HAND, AND TOUCHED MY MOUTH. AND THE LORD SAIDD3 UNTO ME, BEHOLD, I HAVE PUT MY WORDS IN THY MOUTH.FM# 10 SEE, I HAVE THIS DAY SET THEE OVER THE NATIONS AND OVER THE KINGDOMS, TOAM ROOT OUT, AND TO PULL DOWN, AND TO DESTROY, AND TO THROW DOWN, TO BUILD, ANDN TO PLANT.M# 11 MOREOVER THE WORD OF THE LORD CAME UNTO ME, SAYING, JEREMIAH, WHAT SEESTE1 THOU? AND I SAID, I SEE A ROD OF AN ALMOND TREE.RJ# 12 THEN SAID THE LORD UNTO ME, THOU HAST WELL SEEN: FOR I WILL HASTEN MY WORD TO PERFORM IT.H# 13 AND THE WORD OF THE LORD CAME UNTO ME THE SECOND TIME, SAYING, WHATM SEEST THOU? AND I SAID, I SEE A SEETHING POT; AND THE FACE THEREOF IS TOWARDH THE NORTH. K# 14 THEN THE LORD SAID UNTO ME, OUT OF THE NORTH AN EVIL SHALL BREAK FORTHH& UPON ALL THE INHABITANTS OF THE LAND.H# 15 FOR, LO, I WILL CALL ALL THE FAMILIES OF THE KINGDOMS OF THE NORTH,M SAITH THE LORD; AND THEY SHALL COME, AND THEY SHALL SET EVERY ONE HIS THRONE M AT THE ENTERING OF THE GATES OF JERUSALEM, AND AGAINST ALL THE WALLS THEREOFA2 ROUND ABOUT, AND AGAINST ALL THE CITIES OF JUDAH.B# 16 AND I WILL UTTER MY JUDGMENTS AGAINST THEM TOUCHING ALL THEIRK WICKEDNESS, WHO HAVE FORSAKEN ME, AND HAVE BURNED INCENSE UNTO OTHER GODS,T- AND WORSHIPPED THE WORKS OF THEIR OWN HANDS. I# 17 THOU THEREFORE GIRD UP THY LOINS, AND ARISE, AND SPEAK UNTO THEM ALLSJ THAT I COMMAND THEE: BE NOT DISMAYED AT THEIR FACES, LEST I CONFOUND THEE BEFORE THEM.EH# 18 FOR, BEHOLD, I HAVE MADE THEE THIS DAY A DEFENCED CITY, AND AN IRONM PILLAR, AND BRASEN WALLS AGAINST THE WHOLE LAND, AGAINST THE KINGS OF JUDAH, J AGAINST THE PRINCES THEREOF, AGAINST THE PRIESTS THEREOF, AND AGAINST THE PEOPLE OF THE LAND.J# 19 AND THEY SHALL FIGHT AGAINST THEE; BUT THEY SHALL NOT PREVAIL AGAINST; THEE; FOR I AM WITH THEE, SAITH THE LORD, TO DELIVER THEE.A = CHAPTER 2 5# 1 MOREOVER THE WORD OF THE LORD CAME TO ME, SAYING, G# 2 GO AND CRY IN THE EARS OF JERUSALEM, SAYING, THUS SAITH THE LORD; I L REMEMBER THEE, THE KINDNESS OF THY YOUTH, THE LOVE OF THINE ESPOUSALS, WHENF THOU WENTEST AFTER ME IN THE WILDERNESS, IN A LAND THAT WAS NOT SOWN.K# 3 ISRAEL WAS HOLINESS UNTO THE LORD, AND THE FIRSTFRUITS OF HIS INCREASE:NM ALL THAT DEVOUR HIM SHALL OFFEND; EVIL SHALL COME UPON THEM, SAITH THE LORD.K# 4 HEAR YE THE WORD OF THE LORD, O HOUSE OF JACOB, AND ALL THE FAMILIES OF  THE HOUSE OF ISRAEL:TJ# 5 THUS SAITH THE LORD, WHAT INIQUITY HAVE YOUR FATHERS FOUND IN ME, THATN THEY ARE GONE FAR FROM ME, AND HAVE WALKED AFTER VANITY, AND ARE BECOME VAIN?K# 6 NEITHER SAID THEY, WHERE IS THE LORD THAT BROUGHT US UP OUT OF THE LAND L OF EGYPT, THAT LED US THROUGH THE WILDERNESS, THROUGH A LAND OF DESERTS ANDJ OF PITS, THROUGH A LAND OF DROUGHT, AND OF THE SHADOW OF DEATH, THROUGH A9 LAND THAT NO MAN PASSED THROUGH, AND WHERE NO MAN DWELT? L# 7 AND I BROUGHT YOU INTO A PLENTIFUL COUNTRY, TO EAT THE FRUIT THEREOF ANDM THE GOODNESS THEREOF; BUT WHEN YE ENTERED, YE DEFILED MY LAND, AND MADE MINEF HERITAGE AN ABOMINATION. I00v::D%5%T6%! !# 8 THE PRIESTS SAID NOT, WHERE IS THE LORD? AND THEY THAT HANDLE THE LAWDH KNEW ME NOT: THE PASTORS ALSO TRANSGRESSED AGAINST ME, AND THE PROPHETS@ PROPHESIED BY BAAL, AND WALKED AFTER THINGS THAT DO NOT PROFIT.F# 9 WHEREFORE I WILL YET PLEAD WITH YOU, SAITH THE LORD, AND WITH YOUR! CHILDRENS CHILDREN WILL I PLEAD.TJ# 10 FOR PASS OVER THE ISLES OF CHITTIM, AND SEE; AND SEND UNTO KEDAR, AND7 CONSIDER DILIGENTLY, AND SEE IF THERE BE SUCH A THING.LK# 11 HATH A NATION CHANGED THEIR GODS, WHICH ARE YET NO GODS? BUT MY PEOPLEN9 HAVE CHANGED THEIR GLORY FOR THAT WHICH DOTH NOT PROFIT. M# 12 BE ASTONISHED, O YE HEAVENS, AT THIS, AND BE HORRIBLY AFRAID, BE YE VERY  DESOLATE, SAITH THE LORD.F# 13 FOR MY PEOPLE HAVE COMMITTED TWO EVILS; THEY HAVE FORSAKEN ME THEN FOUNTAIN OF LIVING WATERS, AND HEWED THEM OUT CISTERNS, BROKEN CISTERNS, THAT CAN HOLD NO WATER.,D# 14 IS ISRAEL A SERVANT? IS HE A HOMEBORN SLAVE? WHY IS HE SPOILED?H# 15 THE YOUNG LIONS ROARED UPON HIM, AND YELLED, AND THEY MADE HIS LAND1 WASTE: HIS CITIES ARE BURNED WITHOUT INHABITANT.RI# 16 ALSO THE CHILDREN OF NOPH AND TAHAPANES HAVE BROKEN THE CROWN OF THYI HEAD.M# 17 HAST THOU NOT PROCURED THIS UNTO THYSELF, IN THAT THOU HAST FORSAKEN THEH+ LORD THY GOD, WHEN HE LED THEE BY THE WAY?EM# 18 AND NOW WHAT HAST THOU TO DO IN THE WAY OF EGYPT, TO DRINK THE WATERS OF M SIHOR? OR WHAT HAST THOU TO DO IN THE WAY OF ASSYRIA, TO DRINK THE WATERS OFH THE RIVER?EH# 19 THINE OWN WICKEDNESS SHALL CORRECT THEE, AND THY BACKSLIDINGS SHALLJ REPROVE THEE: KNOW THEREFORE AND SEE THAT IT IS AN EVIL THING AND BITTER,K THAT THOU HAST FORSAKEN THE LORD THY GOD, AND THAT MY FEAR IS NOT IN THEE,U SAITH THE LORD GOD OF HOSTS.,J# 20 FOR OF OLD TIME I HAVE BROKEN THY YOKE, AND BURST THY BANDS; AND THOUI SAIDST, I WILL NOT TRANSGRESS; WHEN UPON EVERY HIGH HILL AND UNDER EVERYE/ GREEN TREE THOU WANDEREST, PLAYING THE HARLOT.YK# 21 YET I HAD PLANTED THEE A NOBLE VINE, WHOLLY A RIGHT SEED: HOW THEN ART A THOU TURNED INTO THE DEGENERATE PLANT OF A STRANGE VINE UNTO ME? M# 22 FOR THOUGH THOU WASH THEE WITH NITRE, AND TAKE THEE MUCH SOAP, YET THINEN2 INIQUITY IS MARKED BEFORE ME, SAITH THE LORD GOD.M# 23 HOW CANST THOU SAY, I AM NOT POLLUTED, I HAVE NOT GONE AFTER BAALIM? SEEAL THY WAY IN THE VALLEY, KNOW WHAT THOU HAST DONE: THOU ART A SWIFT DROMEDARY TRAVERSING HER WAYS;RH# 24 A WILD ASS USED TO THE WILDERNESS, THAT SNUFFETH UP THE WIND AT HERM PLEASURE; IN HER OCCASION WHO CAN TURN HER AWAY? ALL THEY THAT SEEK HER WILL 8 NOT WEARY THEMSELVES; IN HER MONTH THEY SHALL FIND HER.I# 25 WITHHOLD THY FOOT FROM BEING UNSHOD, AND THY THROAT FROM THIRST: BUTTN THOU SAIDST, THERE IS NO HOPE: NO; FOR I HAVE LOVED STRANGERS, AND AFTER THEM WILL I GO.EH# 26 AS THE THIEF IS ASHAMED WHEN HE IS FOUND, SO IS THE HOUSE OF ISRAELH ASHAMED; THEY, THEIR KINGS, THEIR PRINCES, AND THEIR PRIESTS, AND THEIR PROPHETS.M# 27 SAYING TO A STOCK, THOU ART MY FATHER; AND TO A STONE, THOU HAST BROUGHTNN ME FORTH: FOR THEY HAVE TURNED THEIR BACK UNTO ME, AND NOT THEIR FACE: BUT IN= THE TIME OF THEIR TROUBLE THEY WILL SAY, ARISE, AND SAVE US.DM# 28 BUT WHERE ARE THY GODS THAT THOU HAST MADE THEE? LET THEM ARISE, IF THEYAM CAN SAVE THEE IN THE TIME OF THY TROUBLE: FOR ACCORDING TO THE NUMBER OF THYW CITIES ARE THY GODS, O JUDAH.J# 29 WHEREFORE WILL YE PLEAD WITH ME? YE ALL HAVE TRANSGRESSED AGAINST ME, SAITH THE LORD.L# 30 IN VAIN HAVE I SMITTEN YOUR CHILDREN; THEY RECEIVED NO CORRECTION: YOUR? OWN SWORD HATH DEVOURED YOUR PROPHETS, LIKE A DESTROYING LION. M# 31 O GENERATION, SEE YE THE WORD OF THE LORD. HAVE I BEEN A WILDERNESS UNTOSK ISRAEL? A LAND OF DARKNESS? WHEREFORE SAY MY PEOPLE, WE ARE LORDS; WE WILLT COME NO MORE UNTO THEE?J# 32 CAN A MAID FORGET HER ORNAMENTS, OR A BRIDE HER ATTIRE? YET MY PEOPLE' HAVE FORGOTTEN ME DAYS WITHOUT NUMBER.EL# 33 WHY TRIMMEST THOU THY WAY TO SEEK LOVE? THEREFORE HAST THOU ALSO TAUGHT THE WICKED ONES THY WAYS.C# 34 ALSO IN THY SKIRTS IS FOUND THE BLOOD OF THE SOULS OF THE POOR E INNOCENTS: I HAVE NOT FOUND IT BY SECRET 00v:8<%X>%+%O-%TADATADATASEARCH, BUT UPON ALL THESE.OM# 35 YET THOU SAYEST, BECAUSE I AM INNOCENT, SURELY HIS ANGER SHALL TURN FROMOL ME. BEHOLD, I WILL PLEAD WITH THEE, BECAUSE THOU SAYEST, I HAVE NOT SINNED.I# 36 WHY GADDEST THOU ABOUT SO MUCH TO CHANGE THY WAY? THOU ALSO SHALT BEG3 ASHAMED OF EGYPT, AS THOU WAST ASHAMED OF ASSYRIA.UL# 37 YEA, THOU SHALT GO FORTH FROM HIM, AND THINE HANDS UPON THINE HEAD: FORL THE LORD HATH REJECTED THY CONFIDENCES, AND THOU SHALT NOT PROSPER IN THEM. = CHAPTER 3 I# 1 THEY SAY, IF A MAN PUT AWAY HIS WIFE, AND SHE GO FROM HIM, AND BECOMETM ANOTHER MANS, SHALL HE RETURN UNTO HER AGAIN? SHALL NOT THAT LAND BE GREATLY M POLLUTED? BUT THOU HAST PLAYED THE HARLOT WITH MANY LOVERS; YET RETURN AGAIN  TO ME, SAITH THE LORD.HM# 2 LIFT UP THINE EYES UNTO THE HIGH PLACES, AND SEE WHERE THOU HAST NOT BEENUE LIEN WITH. IN THE WAYS HAST THOU SAT FOR THEM, AS THE ARABIAN IN THEAL WILDERNESS; AND THOU HAST POLLUTED THE LAND WITH THY WHOREDOMS AND WITH THY WICKEDNESS.M# 3 THEREFORE THE SHOWERS HAVE BEEN WITHHOLDEN, AND THERE HATH BEEN NO LATTERMF RAIN; AND THOU HADST A WHORES FOREHEAD, THOU REFUSEDST TO BE ASHAMED.K# 4 WILT THOU NOT FROM THIS TIME CRY UNTO ME, MY FATHER, THOU ART THE GUIDER OF MY YOUTH?TK# 5 WILL HE RESERVE HIS ANGER FOR EVER? WILL HE KEEP IT TO THE END? BEHOLD,W8 THOU HAST SPOKEN AND DONE EVIL THINGS AS THOU COULDEST.M# 6 THE LORD SAID ALSO UNTO ME IN THE DAYS OF JOSIAH THE KING, HAST THOU SEEN H THAT WHICH BACKSLIDING ISRAEL HATH DONE? SHE IS GONE UP UPON EVERY HIGHG MOUNTAIN AND UNDER EVERY GREEN TREE, AND THERE HATH PLAYED THE HARLOT. J# 7 AND I SAID AFTER SHE HAD DONE ALL THESE THINGS, TURN THOU UNTO ME. BUT; SHE RETURNED NOT. AND HER TREACHEROUS SISTER JUDAH SAW IT. K# 8 AND I SAW, WHEN FOR ALL THE CAUSES WHEREBY BACKSLIDING ISRAEL COMMITTEDDF ADULTERY I HAD PUT HER AWAY, AND GIVEN HER A BILL OF DIVORCE; YET HERJ TREACHEROUS SISTER JUDAH FEARED NOT, BUT WENT AND PLAYED THE HARLOT ALSO.G# 9 AND IT CAME TO PASS THROUGH THE LIGHTNESS OF HER WHOREDOM, THAT SHEHF DEFILED THE LAND, AND COMMITTED ADULTERY WITH STONES AND WITH STOCKS.K# 10 AND YET FOR ALL THIS HER TREACHEROUS SISTER JUDAH HATH NOT TURNED UNTOT8 ME WITH HER WHOLE HEART, BUT FEIGNEDLY, SAITH THE LORD.M# 11 AND THE LORD SAID UNTO ME, THE BACKSLIDING ISRAEL HATH JUSTIFIED HERSELFE MORE THAN TREACHEROUS JUDAH.YH# 12 GO AND PROCLAIM THESE WORDS TOWARD THE NORTH, AND SAY, RETURN, THOUL BACKSLIDING ISRAEL, SAITH THE LORD; AND I WILL NOT CAUSE MINE ANGER TO FALLK UPON YOU: FOR I AM MERCIFUL, SAITH THE LORD, AND I WILL NOT KEEP ANGER FORU EVER.M# 13 ONLY ACKNOWLEDGE THINE INIQUITY, THAT THOU HAST TRANSGRESSED AGAINST THEDM LORD THY GOD, AND HAST SCATTERED THY WAYS TO THE STRANGERS UNDER EVERY GREENR7 TREE, AND YE HAVE NOT OBEYED MY VOICE, SAITH THE LORD.LM# 14 TURN, O BACKSLIDING CHILDREN, SAITH THE LORD; FOR I AM MARRIED UNTO YOU:TM AND I WILL TAKE YOU ONE OF A CITY, AND TWO OF A FAMILY, AND I WILL BRING YOUT TO ZION:DJ# 15 AND I WILL GIVE YOU PASTORS ACCORDING TO MINE HEART, WHICH SHALL FEED& YOU WITH KNOWLEDGE AND UNDERSTANDING.J# 16 AND IT SHALL COME TO PASS, WHEN YE BE MULTIPLIED AND INCREASED IN THEL LAND, IN THOSE DAYS, SAITH THE LORD, THEY SHALL SAY NO MORE, THE ARK OF THEH COVENANT OF THE LORD: NEITHER SHALL IT COME TO MIND: NEITHER SHALL THEYI REMEMBER IT; NEITHER SHALL THEY VISIT IT; NEITHER SHALL THAT BE DONE ANYT MORE.K# 17 AT THAT TIME THEY SHALL CALL JERUSALEM THE THRONE OF THE LORD; AND ALL N THE NATIONS SHALL BE GATHERED UNTO IT, TO THE NAME OF THE LORD, TO JERUSALEM:L NEITHER SHALL THEY WALK ANY MORE AFTER THE IMAGINATION OF THEIR EVIL HEART.J# 18 IN THOSE DAYS THE HOUSE OF JUDAH SHALL WALK WITH THE HOUSE OF ISRAEL,M AND THEY SHALL COME TOGETHER OUT OF THE LAND OF THE NORTH TO THE LAND THAT IL1 HAVE GIVEN FOR AN INHERITANCE UNTO YOUR FATHERS. I# 19 BUT I SAID, HOW SHALL I PUT THEE AMONG THE CHILDREN, AND GIVE THEE AAK PLEASANT LAND, A GOODLY HERITAGE OF THE HOSTS OF NATIONS? AND I SAID, THOUN; SHALT CALL ME, MY FATHER; AND SHALT NOT TURN AWAY FROM ME. J# 20 SURELY AS A W00v::D%5%T6%! !IFE TREACHEROUSLY DEPARTETH FROM HER HUSBAND, SO HAVE YE@ DEALT TREACHEROUSLY WITH ME, O HOUSE OF ISRAEL, SAITH THE LORD.M# 21 A VOICE WAS HEARD UPON THE HIGH PLACES, WEEPING AND SUPPLICATIONS OF THERE CHILDREN OF ISRAEL: FOR THEY HAVE PERVERTED THEIR WAY, AND THEY HAVES FORGOTTEN THE LORD THEIR GOD.H# 22 RETURN, YE BACKSLIDING CHILDREN, AND I WILL HEAL YOUR BACKSLIDINGS.: BEHOLD, WE COME UNTO THEE; FOR THOU ART THE LORD OUR GOD.F# 23 TRULY IN VAIN IS SALVATION HOPED FOR FROM THE HILLS, AND FROM THEN MULTITUDE OF MOUNTAINS: TRULY IN THE LORD OUR GOD IS THE SALVATION OF ISRAEL.L# 24 FOR SHAME HATH DEVOURED THE LABOUR OF OUR FATHERS FROM OUR YOUTH; THEIR8 FLOCKS AND THEIR HERDS, THEIR SONS AND THEIR DAUGHTERS.I# 25 WE LIE DOWN IN OUR SHAME, AND OUR CONFUSION COVERETH US: FOR WE HAVELN SINNED AGAINST THE LORD OUR GOD, WE AND OUR FATHERS, FROM OUR YOUTH EVEN UNTO= THIS DAY, AND HAVE NOT OBEYED THE VOICE OF THE LORD OUR GOD. = CHAPTER 4 N# 1 IF THOU WILT RETURN, O ISRAEL, SAITH THE LORD, RETURN UNTO ME: AND IF THOUN WILT PUT AWAY THINE ABOMINATIONS OUT OF MY SIGHT, THEN SHALT THOU NOT REMOVE.H# 2 AND THOU SHALT SWEAR, THE LORD LIVETH, IN TRUTH, IN JUDGMENT, AND INI RIGHTEOUSNESS; AND THE NATIONS SHALL BLESS THEMSELVES IN HIM, AND IN HIM, SHALL THEY GLORY.L# 3 FOR THUS SAITH THE LORD TO THE MEN OF JUDAH AND JERUSALEM, BREAK UP YOUR) FALLOW GROUND, AND SOW NOT AMONG THORNS.HJ# 4 CIRCUMCISE YOURSELVES TO THE LORD, AND TAKE AWAY THE FORESKINS OF YOURM HEART, YE MEN OF JUDAH AND INHABITANTS OF JERUSALEM: LEST MY FURY COME FORTHYI LIKE FIRE, AND BURN THAT NONE CAN QUENCH IT, BECAUSE OF THE EVIL OF YOURH DOINGS.G# 5 DECLARE YE IN JUDAH, AND PUBLISH IN JERUSALEM; AND SAY, BLOW YE THE M TRUMPET IN THE LAND: CRY, GATHER TOGETHER, AND SAY, ASSEMBLE YOURSELVES, AND $ LET US GO INTO THE DEFENCED CITIES.L# 6 SET UP THE STANDARD TOWARD ZION: RETIRE, STAY NOT: FOR I WILL BRING EVIL) FROM THE NORTH, AND A GREAT DESTRUCTION.DK# 7 THE LION IS COME UP FROM HIS THICKET, AND THE DESTROYER OF THE GENTILESJN IS ON HIS WAY; HE IS GONE FORTH FROM HIS PLACE TO MAKE THY LAND DESOLATE; AND7 THY CITIES SHALL BE LAID WASTE, WITHOUT AN INHABITANT.IK# 8 FOR THIS GIRD YOU WITH SACKCLOTH, LAMENT AND HOWL: FOR THE FIERCE ANGERD( OF THE LORD IS NOT TURNED BACK FROM US.L# 9 AND IT SHALL COME TO PASS AT THAT DAY, SAITH THE LORD, THAT THE HEART OFN THE KING SHALL PERISH, AND THE HEART OF THE PRINCES; AND THE PRIESTS SHALL BE+ ASTONISHED, AND THE PROPHETS SHALL WONDER.RM# 10 THEN SAID I, AH, LORD GOD! SURELY THOU HAST GREATLY DECEIVED THIS PEOPLEFL AND JERUSALEM, SAYING, YE SHALL HAVE PEACE; WHEREAS THE SWORD REACHETH UNTO THE SOUL.I# 11 AT THAT TIME SHALL IT BE SAID TO THIS PEOPLE AND TO JERUSALEM, A DRYFL WIND OF THE HIGH PLACES IN THE WILDERNESS TOWARD THE DAUGHTER OF MY PEOPLE, NOT TO FAN, NOR TO CLEANSE,K# 12 EVEN A FULL WIND FROM THOSE PLACES SHALL COME UNTO ME: NOW ALSO WILL IE GIVE SENTENCE AGAINST THEM.G# 13 BEHOLD, HE SHALL COME UP AS CLOUDS, AND HIS CHARIOTS SHALL BE AS A G WHIRLWIND: HIS HORSES ARE SWIFTER THAN EAGLES. WOE UNTO US! FOR WE ARE SPOILED.SG# 14 O JERUSALEM, WASH THINE HEART FROM WICKEDNESS, THAT THOU MAYEST BET; SAVED. HOW LONG SHALL THY VAIN THOUGHTS LODGE WITHIN THEE?FI# 15 FOR A VOICE DECLARETH FROM DAN, AND PUBLISHETH AFFLICTION FROM MOUNTL EPHRAIM. L# 16 MAKE YE MENTION TO THE NATIONS; BEHOLD, PUBLISH AGAINST JERUSALEM, THATN WATCHERS COME FROM A FAR COUNTRY, AND GIVE OUT THEIR VOICE AGAINST THE CITIES OF JUDAH.I# 17 AS KEEPERS OF A FIELD, ARE THEY AGAINST HER ROUND ABOUT; BECAUSE SHEA1 HATH BEEN REBELLIOUS AGAINST ME, SAITH THE LORD.JM# 18 THY WAY AND THY DOINGS HAVE PROCURED THESE THINGS UNTO THEE; THIS IS THYOH WICKEDNESS, BECAUSE IT IS BITTER, BECAUSE IT REACHETH UNTO THINE HEART.J# 19 MY BOWELS, MY BOWELS! I AM PAINED AT MY VERY HEART; MY HEART MAKETH AM NOISE IN ME; I CANNOT HOLD MY PEACE, BECAUSE THOU HAST HEARD, O MY SOUL, THEF( SOUND OF THE TRUMPET, THE ALARM OF WAR.J# 20 DESTRUCTION UPON DESTRUCTION IS CRIED; FOR THE WHOLE LAND IS SPOILED:< SUDDENLY AR00v:8<%X>%+%O-%TADATADATAE MY TENTS SPOILED, AND MY CURTAINS IN A MOMENT.J# 21 HOW LONG SHALL I SEE THE STANDARD, AND HEAR THE SOUND OF THE TRUMPET?G# 22 FOR MY PEOPLE IS FOOLISH, THEY HAVE NOT KNOWN ME; THEY ARE SOTTISH M CHILDREN, AND THEY HAVE NONE UNDERSTANDING: THEY ARE WISE TO DO EVIL, BUT TOE DO GOOD THEY HAVE NO KNOWLEDGE.H# 23 I BEHELD THE EARTH, AND, LO, IT WAS WITHOUT FORM, AND VOID; AND THE HEAVENS, AND THEY HAD NO LIGHT.L# 24 I BEHELD THE MOUNTAINS, AND, LO, THEY TREMBLED, AND ALL THE HILLS MOVED LIGHTLY. J# 25 I BEHELD, AND, LO, THERE WAS NO MAN, AND ALL THE BIRDS OF THE HEAVENS WERE FLED.DH# 26 I BEHELD, AND, LO, THE FRUITFUL PLACE WAS A WILDERNESS, AND ALL THEH CITIES THEREOF WERE BROKEN DOWN AT THE PRESENCE OF THE LORD, AND BY HIS FIERCE ANGER.L# 27 FOR THUS HATH THE LORD SAID, THE WHOLE LAND SHALL BE DESOLATE; YET WILL I NOT MAKE A FULL END.WL# 28 FOR THIS SHALL THE EARTH MOURN, AND THE HEAVENS ABOVE BE BLACK; BECAUSEJ I HAVE SPOKEN IT, I HAVE PURPOSED IT, AND WILL NOT REPENT, NEITHER WILL I TURN BACK FROM IT. M# 29 THE WHOLE CITY SHALL FLEE FOR THE NOISE OF THE HORSEMEN AND BOWMEN; THEYHI SHALL GO INTO THICKETS, AND CLIMB UP UPON THE ROCKS: EVERY CITY SHALL BER' FORSAKEN, AND NOT A MAN DWELL THEREIN.HG# 30 AND WHEN THOU ART SPOILED, WHAT WILT THOU DO? THOUGH THOU CLOTHEST N THYSELF WITH CRIMSON, THOUGH THOU DECKEST THEE WITH ORNAMENTS OF GOLD, THOUGHK THOU RENTEST THY FACE WITH PAINTING, IN VAIN SHALT THOU MAKE THYSELF FAIR;N7 THY LOVERS WILL DESPISE THEE, THEY WILL SEEK THY LIFE.LM# 31 FOR I HAVE HEARD A VOICE AS OF A WOMAN IN TRAVAIL, AND THE ANGUISH AS OFOL HER THAT BRINGETH FORTH HER FIRST CHILD, THE VOICE OF THE DAUGHTER OF ZION,M THAT BEWAILETH HERSELF, THAT SPREADETH HER HANDS, SAYING, WOE IS ME NOW! FOR ) MY SOUL IS WEARIED BECAUSE OF MURDERERS. = CHAPTER 5 N# 1 RUN YE TO AND FRO THROUGH THE STREETS OF JERUSALEM, AND SEE NOW, AND KNOW,L AND SEEK IN THE BROAD PLACES THEREOF, IF YE CAN FIND A MAN, IF THERE BE ANYG THAT EXECUTETH JUDGMENT, THAT SEEKETH THE TRUTH; AND I WILL PARDON IT.VD# 2 AND THOUGH THEY SAY, THE LORD LIVETH; SURELY THEY SWEAR FALSELY.K# 3 O LORD, ARE NOT THINE EYES UPON THE TRUTH? THOU HAST STRICKEN THEM, BUTAI THEY HAVE NOT GRIEVED; THOU HAST CONSUMED THEM, BUT THEY HAVE REFUSED TOM RECEIVE CORRECTION: THEY HAVE MADE THEIR FACES HARDER THAN A ROCK; THEY HAVE  REFUSED TO RETURN.FL# 4 THEREFORE I SAID, SURELY THESE ARE POOR; THEY ARE FOOLISH: FOR THEY KNOW8 NOT THE WAY OF THE LORD, NOR THE JUDGMENT OF THEIR GOD.M# 5 I WILL GET ME UNTO THE GREAT MEN, AND WILL SPEAK UNTO THEM; FOR THEY HAVEEI KNOWN THE WAY OF THE LORD, AND THE JUDGMENT OF THEIR GOD: BUT THESE HAVEO1 ALTOGETHER BROKEN THE YOKE, AND BURST THE BONDS.AI# 6 WHEREFORE A LION OUT OF THE FOREST SHALL SLAY THEM, AND A WOLF OF THEEN EVENINGS SHALL SPOIL THEM, A LEOPARD SHALL WATCH OVER THEIR CITIES: EVERY ONEL THAT GOETH OUT THENCE SHALL BE TORN IN PIECES: BECAUSE THEIR TRANSGRESSIONS0 ARE MANY, AND THEIR BACKSLIDINGS ARE INCREASED.H# 7 HOW SHALL I PARDON THEE FOR THIS? THY CHILDREN HAVE FORSAKEN ME, ANDK SWORN BY THEM THAT ARE NO GODS: WHEN I HAD FED THEM TO THE FULL, THEY THENHN COMMITTED ADULTERY, AND ASSEMBLED THEMSELVES BY TROOPS IN THE HARLOTS HOUSES.G# 8 THEY WERE AS FED HORSES IN THE MORNING: EVERY ONE NEIGHED AFTER HIS NEIGHBOURS WIFE.IM# 9 SHALL I NOT VISIT FOR THESE THINGS? SAITH THE LORD: AND SHALL NOT MY SOULN% BE AVENGED ON SUCH A NATION AS THIS?IM# 10 GO YE UP UPON HER WALLS, AND DESTROY; BUT MAKE NOT A FULL END: TAKE AWAYL- HER BATTLEMENTS; FOR THEY ARE NOT THE LORDS.SC# 11 FOR THE HOUSE OF ISRAEL AND THE HOUSE OF JUDAH HAVE DEALT VERY * TREACHEROUSLY AGAINST ME, SAITH THE LORD.J# 12 THEY HAVE BELIED THE LORD, AND SAID, IT IS NOT HE; NEITHER SHALL EVIL5 COME UPON US; NEITHER SHALL WE SEE SWORD NOR FAMINE:J# 13 AND THE PROPHETS SHALL BECOME WIND, AND THE WORD IS NOT IN THEM: THUS SHALL IT BE DONE UNTO THEM.L# 14 WHEREFORE THUS SAITH THE LORD GOD OF HOSTS, BECAUSE YE SPEAK THIS WORD,M BEHOLD, I WILL MAKE MY WORDS IN THY MOUTH FIRE, AND THIS PEOPLE WOOD, AND I00v::D%5%T6%! !TS SHALL DEVOUR THEM.EJ# 15 LO, I WILL BRING A NATION UPON YOU FROM FAR, O HOUSE OF ISRAEL, SAITHI THE LORD: IT IS A MIGHTY NATION, IT IS AN ANCIENT NATION, A NATION WHOSE @ LANGUAGE THOU KNOWEST NOT, NEITHER UNDERSTANDEST WHAT THEY SAY.C# 16 THEIR QUIVER IS AS AN OPEN SEPULCHRE, THEY ARE ALL MIGHTY MEN.TK# 17 AND THEY SHALL EAT UP THINE HARVEST, AND THY BREAD, WHICH THY SONS ANDOM THY DAUGHTERS SHOULD EAT: THEY SHALL EAT UP THY FLOCKS AND THINE HERDS: THEYTK SHALL EAT UP THY VINES AND THY FIG TREES: THEY SHALL IMPOVERISH THY FENCEDI0 CITIES, WHEREIN THOU TRUSTEDST, WITH THE SWORD.K# 18 NEVERTHELESS IN THOSE DAYS, SAITH THE LORD, I WILL NOT MAKE A FULL ENDN WITH YOU.K# 19 AND IT SHALL COME TO PASS, WHEN YE SHALL SAY, WHEREFORE DOETH THE LORDRJ OUR GOD ALL THESE THINGS UNTO US? THEN SHALT THOU ANSWER THEM, LIKE AS YEJ HAVE FORSAKEN ME, AND SERVED STRANGE GODS IN YOUR LAND, SO SHALL YE SERVE' STRANGERS IN A LAND THAT IS NOT YOURS. I# 20 DECLARE THIS IN THE HOUSE OF JACOB, AND PUBLISH IT IN JUDAH, SAYING,LK# 21 HEAR NOW THIS, O FOOLISH PEOPLE, AND WITHOUT UNDERSTANDING; WHICH HAVE 2 EYES, AND SEE NOT; WHICH HAVE EARS, AND HEAR NOT:H# 22 FEAR YE NOT ME? SAITH THE LORD: WILL YE NOT TREMBLE AT MY PRESENCE,K WHICH HAVE PLACED THE SAND FOR THE BOUND OF THE SEA BY A PERPETUAL DECREE,EN THAT IT CANNOT PASS IT: AND THOUGH THE WAVES THEREOF TOSS THEMSELVES, YET CANC THEY NOT PREVAIL; THOUGH THEY ROAR, YET CAN THEY NOT PASS OVER IT?UF# 23 BUT THIS PEOPLE HATH A REVOLTING AND A REBELLIOUS HEART; THEY ARE REVOLTED AND GONE.OL# 24 NEITHER SAY THEY IN THEIR HEART, LET US NOW FEAR THE LORD OUR GOD, THATN GIVETH RAIN, BOTH THE FORMER AND THE LATTER, IN HIS SEASON: HE RESERVETH UNTO' US THE APPOINTED WEEKS OF THE HARVEST.HF# 25 YOUR INIQUITIES HAVE TURNED AWAY THESE THINGS, AND YOUR SINS HAVE! WITHHOLDEN GOOD THINGS FROM YOU.HH# 26 FOR AMONG MY PEOPLE ARE FOUND WICKED MEN: THEY LAY WAIT, AS HE THAT1 SETTETH SNARES; THEY SET A TRAP, THEY CATCH MEN. D# 27 AS A CAGE IS FULL OF BIRDS, SO ARE THEIR HOUSES FULL OF DECEIT:1 THEREFORE THEY ARE BECOME GREAT, AND WAXEN RICH. H# 28 THEY ARE WAXEN FAT, THEY SHINE: YEA, THEY OVERPASS THE DEEDS OF THEH WICKED: THEY JUDGE NOT THE CAUSE, THE CAUSE OF THE FATHERLESS, YET THEY7 PROSPER; AND THE RIGHT OF THE NEEDY DO THEY NOT JUDGE.NM# 29 SHALL I NOT VISIT FOR THESE THINGS? SAITH THE LORD: SHALL NOT MY SOUL BEE" AVENGED ON SUCH A NATION AS THIS?=# 30 A WONDERFUL AND HORRIBLE THING IS COMMITTED IN THE LAND;MM# 31 THE PROPHETS PROPHESY FALSELY, AND THE PRIESTS BEAR RULE BY THEIR MEANS;EJ AND MY PEOPLE LOVE TO HAVE IT SO: AND WHAT WILL YE DO IN THE END THEREOF? = CHAPTER 6 L# 1 O YE CHILDREN OF BENJAMIN, GATHER YOURSELVES TO FLEE OUT OF THE MIDST OFG JERUSALEM, AND BLOW THE TRUMPET IN TEKOA, AND SET UP A SIGN OF FIRE INNJ BETHHACCEREM: FOR EVIL APPEARETH OUT OF THE NORTH, AND GREAT DESTRUCTION.G# 2 I HAVE LIKENED THE DAUGHTER OF ZION TO A COMELY AND DELICATE WOMAN.HI# 3 THE SHEPHERDS WITH THEIR FLOCKS SHALL COME UNTO HER; THEY SHALL PITCHYM THEIR TENTS AGAINST HER ROUND ABOUT; THEY SHALL FEED EVERY ONE IN HIS PLACE.:M# 4 PREPARE YE WAR AGAINST HER; ARISE, AND LET US GO UP AT NOON. WOE UNTO US!NJ FOR THE DAY GOETH AWAY, FOR THE SHADOWS OF THE EVENING ARE STRETCHED OUT.B# 5 ARISE, AND LET US GO BY NIGHT, AND LET US DESTROY HER PALACES.M# 6 FOR THUS HATH THE LORD OF HOSTS SAID, HEW YE DOWN TREES, AND CAST A MOUNTTL AGAINST JERUSALEM: THIS IS THE CITY TO BE VISITED; SHE IS WHOLLY OPPRESSION IN THE MIDST OF HER.UL# 7 AS A FOUNTAIN CASTETH OUT HER WATERS, SO SHE CASTETH OUT HER WICKEDNESS:G VIOLENCE AND SPOIL IS HEARD IN HER; BEFORE ME CONTINUALLY IS GRIEF ANDL WOUNDS.J# 8 BE THOU INSTRUCTED, O JERUSALEM, LEST MY SOUL DEPART FROM THEE; LEST I* MAKE THEE DESOLATE, A LAND NOT INHABITED.K# 9 THUS SAITH THE LORD OF HOSTS, THEY SHALL THROUGHLY GLEAN THE REMNANT OFOL ISRAEL AS A VINE: TURN BACK THINE HAND AS A GRAPEGATHERER INTO THE BASKETS.I# 10 TO WHOM SHALL I SPEAK, AND GIVE WARNING, THAT THEY MAY HEAR? BEHOLD,M THEIR EAR IS UNCIRCUMCISED, AND THEY CANN00v:8<%X>%+%O-%TADATADATAOT HEARKEN: BEHOLD, THE WORD OF THEV: LORD IS UNTO THEM A REPROACH; THEY HAVE NO DELIGHT IN IT.M# 11 THEREFORE I AM FULL OF THE FURY OF THE LORD; I AM WEARY WITH HOLDING IN:FL I WILL POUR IT OUT UPON THE CHILDREN ABROAD, AND UPON THE ASSEMBLY OF YOUNGJ MEN TOGETHER: FOR EVEN THE HUSBAND WITH THE WIFE SHALL BE TAKEN, THE AGED WITH HIM THAT IS FULL OF DAYS.AH# 12 AND THEIR HOUSES SHALL BE TURNED UNTO OTHERS, WITH THEIR FIELDS ANDK WIVES TOGETHER: FOR I WILL STRETCH OUT MY HAND UPON THE INHABITANTS OF THEH LAND, SAITH THE LORD.K# 13 FOR FROM THE LEAST OF THEM EVEN UNTO THE GREATEST OF THEM EVERY ONE ISEK GIVEN TO COVETOUSNESS; AND FROM THE PROPHET EVEN UNTO THE PRIEST EVERY ONEL DEALETH FALSELY.TJ# 14 THEY HAVE HEALED ALSO THE HURT OF THE DAUGHTER OF MY PEOPLE SLIGHTLY,. SAYING, PEACE, PEACE; WHEN THERE IS NO PEACE.J# 15 WERE THEY ASHAMED WHEN THEY HAD COMMITTED ABOMINATION? NAY, THEY WEREN NOT AT ALL ASHAMED, NEITHER COULD THEY BLUSH: THEREFORE THEY SHALL FALL AMONGM THEM THAT FALL: AT THE TIME THAT I VISIT THEM THEY SHALL BE CAST DOWN, SAITHS THE LORD.L# 16 THUS SAITH THE LORD, STAND YE IN THE WAYS, AND SEE, AND ASK FOR THE OLDK PATHS, WHERE IS THE GOOD WAY, AND WALK THEREIN, AND YE SHALL FIND REST FORE5 YOUR SOULS. BUT THEY SAID, WE WILL NOT WALK THEREIN.HF# 17 ALSO I SET WATCHMEN OVER YOU, SAYING, HEARKEN TO THE SOUND OF THE- TRUMPET. BUT THEY SAID, WE WILL NOT HEARKEN.TH# 18 THEREFORE HEAR, YE NATIONS, AND KNOW, O CONGREGATION, WHAT IS AMONG THEM.H# 19 HEAR, O EARTH: BEHOLD, I WILL BRING EVIL UPON THIS PEOPLE, EVEN THEL FRUIT OF THEIR THOUGHTS, BECAUSE THEY HAVE NOT HEARKENED UNTO MY WORDS, NOR TO MY LAW, BUT REJECTED IT.I# 20 TO WHAT PURPOSE COMETH THERE TO ME INCENSE FROM SHEBA, AND THE SWEETYK CANE FROM A FAR COUNTRY? YOUR BURNT OFFERINGS ARE NOT ACCEPTABLE, NOR YOURN SACRIFICES SWEET UNTO ME.M# 21 THEREFORE THUS SAITH THE LORD, BEHOLD, I WILL LAY STUMBLINGBLOCKS BEFOREOM THIS PEOPLE, AND THE FATHERS AND THE SONS TOGETHER SHALL FALL UPON THEM; THE,' NEIGHBOUR AND HIS FRIEND SHALL PERISH.TM# 22 THUS SAITH THE LORD, BEHOLD, A PEOPLE COMETH FROM THE NORTH COUNTRY, AND < A GREAT NATION SHALL BE RAISED FROM THE SIDES OF THE EARTH.M# 23 THEY SHALL LAY HOLD ON BOW AND SPEAR; THEY ARE CRUEL, AND HAVE NO MERCY;RM THEIR VOICE ROARETH LIKE THE SEA; AND THEY RIDE UPON HORSES, SET IN ARRAY AS . MEN FOR WAR AGAINST THEE, O DAUGHTER OF ZION.M# 24 WE HAVE HEARD THE FAME THEREOF: OUR HANDS WAX FEEBLE: ANGUISH HATH TAKEN 0 HOLD OF US, AND PAIN, AS OF A WOMAN IN TRAVAIL.K# 25 GO NOT FORTH INTO THE FIELD, NOR WALK BY THE WAY; FOR THE SWORD OF THEC! ENEMY AND FEAR IS ON EVERY SIDE.M# 26 O DAUGHTER OF MY PEOPLE, GIRD THEE WITH SACKCLOTH, AND WALLOW THYSELF INAL ASHES: MAKE THEE MOURNING, AS FOR AN ONLY SON, MOST BITTER LAMENTATION: FOR) THE SPOILER SHALL SUDDENLY COME UPON US.SJ# 27 I HAVE SET THEE FOR A TOWER AND A FORTRESS AMONG MY PEOPLE, THAT THOU MAYEST KNOW AND TRY THEIR WAY.HK# 28 THEY ARE ALL GRIEVOUS REVOLTERS, WALKING WITH SLANDERS: THEY ARE BRASS # AND IRON; THEY ARE ALL CORRUPTERS.FJ# 29 THE BELLOWS ARE BURNED, THE LEAD IS CONSUMED OF THE FIRE; THE FOUNDER6 MELTETH IN VAIN: FOR THE WICKED ARE NOT PLUCKED AWAY.I# 30 REPROBATE SILVER SHALL MEN CALL THEM, BECAUSE THE LORD HATH REJECTEDY THEM. = CHAPTER 7 9# 1 THE WORD THAT CAME TO JEREMIAH FROM THE LORD, SAYING, K# 2 STAND IN THE GATE OF THE LORDS HOUSE, AND PROCLAIM THERE THIS WORD, ANDYN SAY, HEAR THE WORD OF THE LORD, ALL YE OF JUDAH, THAT ENTER IN AT THESE GATES TO WORSHIP THE LORD.SM# 3 THUS SAITH THE LORD OF HOSTS, THE GOD OF ISRAEL, AMEND YOUR WAYS AND YOUR 5 DOINGS, AND I WILL CAUSE YOU TO DWELL IN THIS PLACE. K# 4 TRUST YE NOT IN LYING WORDS, SAYING, THE TEMPLE OF THE LORD, THE TEMPLEE0 OF THE LORD, THE TEMPLE OF THE LORD, ARE THESE.H# 5 FOR IF YE THROUGHLY AMEND YOUR WAYS AND YOUR DOINGS; IF YE THROUGHLY2 EXECUTE JUDGMENT BETWEEN A MAN AND HIS NEIGHBOUR;K# 6 IF YE OPPRESS NOT THE STRANGER, THE FATHERLESS, AND THE WIDOW, AND SHEDTN NOT INNOCENT BLOOD IN THIS PLACE, NEITHER WALK AFTER OTHER GODS00v::D%5%T6%! ! TO YOUR HURT:L# 7 THEN WILL I CAUSE YOU TO DWELL IN THIS PLACE, IN THE LAND THAT I GAVE TO! YOUR FATHERS, FOR EVER AND EVER.E8# 8 BEHOLD, YE TRUST IN LYING WORDS, THAT CANNOT PROFIT.K# 9 WILL YE STEAL, MURDER, AND COMMIT ADULTERY, AND SWEAR FALSELY, AND BURNG? INCENSE UNTO BAAL, AND WALK AFTER OTHER GODS WHOM YE KNOW NOT;DL# 10 AND COME AND STAND BEFORE ME IN THIS HOUSE, WHICH IS CALLED BY MY NAME,8 AND SAY, WE ARE DELIVERED TO DO ALL THESE ABOMINATIONS?J# 11 IS THIS HOUSE, WHICH IS CALLED BY MY NAME, BECOME A DEN OF ROBBERS IN8 YOUR EYES? BEHOLD, EVEN I HAVE SEEN IT, SAITH THE LORD.L# 12 BUT GO YE NOW UNTO MY PLACE WHICH WAS IN SHILOH, WHERE I SET MY NAME ATL THE FIRST, AND SEE WHAT I DID TO IT FOR THE WICKEDNESS OF MY PEOPLE ISRAEL.I# 13 AND NOW, BECAUSE YE HAVE DONE ALL THESE WORKS, SAITH THE LORD, AND I M SPAKE UNTO YOU, RISING UP EARLY AND SPEAKING, BUT YE HEARD NOT; AND I CALLED  YOU, BUT YE ANSWERED NOT;M# 14 THEREFORE WILL I DO UNTO THIS HOUSE, WHICH IS CALLED BY MY NAME, WHEREINMK YE TRUST, AND UNTO THE PLACE WHICH I GAVE TO YOU AND TO YOUR FATHERS, AS IS HAVE DONE TO SHILOH.TE# 15 AND I WILL CAST YOU OUT OF MY SIGHT, AS I HAVE CAST OUT ALL YOURT* BRETHREN, EVEN THE WHOLE SEED OF EPHRAIM.L# 16 THEREFORE PRAY NOT THOU FOR THIS PEOPLE, NEITHER LIFT UP CRY NOR PRAYERE FOR THEM, NEITHER MAKE INTERCESSION TO ME: FOR I WILL NOT HEAR THEE.KM# 17 SEEST THOU NOT WHAT THEY DO IN THE CITIES OF JUDAH AND IN THE STREETS OFE JERUSALEM?TM# 18 THE CHILDREN GATHER WOOD, AND THE FATHERS KINDLE THE FIRE, AND THE WOMENCI KNEAD THEIR DOUGH, TO MAKE CAKES TO THE QUEEN OF HEAVEN, AND TO POUR OUT D DRINK OFFERINGS UNTO OTHER GODS, THAT THEY MAY PROVOKE ME TO ANGER.E# 19 DO THEY PROVOKE ME TO ANGER? SAITH THE LORD: DO THEY NOT PROVOKEU0 THEMSELVES TO THE CONFUSION OF THEIR OWN FACES?L# 20 THEREFORE THUS SAITH THE LORD GOD; BEHOLD, MINE ANGER AND MY FURY SHALLL BE POURED OUT UPON THIS PLACE, UPON MAN, AND UPON BEAST, AND UPON THE TREESM OF THE FIELD, AND UPON THE FRUIT OF THE GROUND; AND IT SHALL BURN, AND SHALLH NOT BE QUENCHED.ED# 21 THUS SAITH THE LORD OF HOSTS, THE GOD OF ISRAEL; PUT YOUR BURNT/ OFFERINGS UNTO YOUR SACRIFICES, AND EAT FLESH.KL# 22 FOR I SPAKE NOT UNTO YOUR FATHERS, NOR COMMANDED THEM IN THE DAY THAT IE BROUGHT THEM OUT OF THE LAND OF EGYPT, CONCERNING BURNT OFFERINGS ORO SACRIFICES:J# 23 BUT THIS THING COMMANDED I THEM, SAYING, OBEY MY VOICE, AND I WILL BEM YOUR GOD, AND YE SHALL BE MY PEOPLE: AND WALK YE IN ALL THE WAYS THAT I HAVEH- COMMANDED YOU, THAT IT MAY BE WELL UNTO YOU.HF# 24 BUT THEY HEARKENED NOT, NOR INCLINED THEIR EAR, BUT WALKED IN THEL COUNSELS AND IN THE IMAGINATION OF THEIR EVIL HEART, AND WENT BACKWARD, AND NOT FORWARD.TM# 25 SINCE THE DAY THAT YOUR FATHERS CAME FORTH OUT OF THE LAND OF EGYPT UNTOTN THIS DAY I HAVE EVEN SENT UNTO YOU ALL MY SERVANTS THE PROPHETS, DAILY RISING UP EARLY AND SENDING THEM: I# 26 YET THEY HEARKENED NOT UNTO ME, NOR INCLINED THEIR EAR, BUT HARDENEDK/ THEIR NECK: THEY DID WORSE THAN THEIR FATHERS. L# 27 THEREFORE THOU SHALT SPEAK ALL THESE WORDS UNTO THEM; BUT THEY WILL NOTJ HEARKEN TO THEE: THOU SHALT ALSO CALL UNTO THEM; BUT THEY WILL NOT ANSWER THEE.H# 28 BUT THOU SHALT SAY UNTO THEM, THIS IS A NATION THAT OBEYETH NOT THEN VOICE OF THE LORD THEIR GOD, NOR RECEIVETH CORRECTION: TRUTH IS PERISHED, AND IS CUT OFF FROM THEIR MOUTH.LE# 29 CUT OFF THINE HAIR, O JERUSALEM, AND CAST IT AWAY, AND TAKE UP AOH LAMENTATION ON HIGH PLACES; FOR THE LORD HATH REJECTED AND FORSAKEN THE GENERATION OF HIS WRATH.EJ# 30 FOR THE CHILDREN OF JUDAH HAVE DONE EVIL IN MY SIGHT, SAITH THE LORD:M THEY HAVE SET THEIR ABOMINATIONS IN THE HOUSE WHICH IS CALLED BY MY NAME, TO POLLUTE IT.M# 31 AND THEY HAVE BUILT THE HIGH PLACES OF TOPHET, WHICH IS IN THE VALLEY OFEM THE SON OF HINNOM, TO BURN THEIR SONS AND THEIR DAUGHTERS IN THE FIRE; WHICHR5 I COMMANDED THEM NOT, NEITHER CAME IT INTO MY HEART.TL# 32 THEREFORE, BEHOLD, THE DAYS COME, SAITH THE LORD, THAT IT SHALL NO MOREI BE CALLED TOPHET, NOR THE VALLEY OF THE SON OF HINN00v:8<%X>%+%O-%TADATADATAOM, BUT THE VALLEY OFJB SLAUGHTER: FOR THEY SHALL BURY IN TOPHET, TILL THERE BE NO PLACE.G# 33 AND THE CARCASES OF THIS PEOPLE SHALL BE MEAT FOR THE FOWLS OF THE.H HEAVEN, AND FOR THE BEASTS OF THE EARTH; AND NONE SHALL FRAY THEM AWAY.F# 34 THEN WILL I CAUSE TO CEASE FROM THE CITIES OF JUDAH, AND FROM THEI STREETS OF JERUSALEM, THE VOICE OF MIRTH, AND THE VOICE OF GLADNESS, THE2K VOICE OF THE BRIDEGROOM, AND THE VOICE OF THE BRIDE: FOR THE LAND SHALL BE DESOLATE. = CHAPTER 8 M# 1 AT THAT TIME, SAITH THE LORD, THEY SHALL BRING OUT THE BONES OF THE KINGSNN OF JUDAH, AND THE BONES OF HIS PRINCES, AND THE BONES OF THE PRIESTS, AND THEM BONES OF THE PROPHETS, AND THE BONES OF THE INHABITANTS OF JERUSALEM, OUT OFS THEIR GRAVES:M# 2 AND THEY SHALL SPREAD THEM BEFORE THE SUN, AND THE MOON, AND ALL THE HOSTSK OF HEAVEN, WHOM THEY HAVE LOVED, AND WHOM THEY HAVE SERVED, AND AFTER WHOMIL THEY HAVE WALKED, AND WHOM THEY HAVE SOUGHT, AND WHOM THEY HAVE WORSHIPPED:K THEY SHALL NOT BE GATHERED, NOR BE BURIED; THEY SHALL BE FOR DUNG UPON THET FACE OF THE EARTH.NI# 3 AND DEATH SHALL BE CHOSEN RATHER THAN LIFE BY ALL THE RESIDUE OF THEMDJ THAT REMAIN OF THIS EVIL FAMILY, WHICH REMAIN IN ALL THE PLACES WHITHER I+ HAVE DRIVEN THEM, SAITH THE LORD OF HOSTS.SL# 4 MOREOVER THOU SHALT SAY UNTO THEM, THUS SAITH THE LORD; SHALL THEY FALL,3 AND NOT ARISE? SHALL HE TURN AWAY, AND NOT RETURN?WD# 5 WHY THEN IS THIS PEOPLE OF JERUSALEM SLIDDEN BACK BY A PERPETUAL; BACKSLIDING? THEY HOLD FAST DECEIT, THEY REFUSE TO RETURN.YL# 6 I HEARKENED AND HEARD, BUT THEY SPAKE NOT ARIGHT: NO MAN REPENTED HIM OFM HIS WICKEDNESS, SAYING, WHAT HAVE I DONE? EVERY ONE TURNED TO HIS COURSE, ASI# THE HORSE RUSHETH INTO THE BATTLE.IL# 7 YEA, THE STORK IN THE HEAVEN KNOWETH HER APPOINTED TIMES; AND THE TURTLEN AND THE CRANE AND THE SWALLOW OBSERVE THE TIME OF THEIR COMING; BUT MY PEOPLE# KNOW NOT THE JUDGMENT OF THE LORD.HG# 8 HOW DO YE SAY, WE ARE WISE, AND THE LAW OF THE LORD IS WITH US? LO, A CERTAINLY IN VAIN MADE HE IT; THE PEN OF THE SCRIBES IS IN VAIN. H# 9 THE WISE MEN ARE ASHAMED, THEY ARE DISMAYED AND TAKEN: LO, THEY HAVE; REJECTED THE WORD OF THE LORD; AND WHAT WISDOM IS IN THEM?IL# 10 THEREFORE WILL I GIVE THEIR WIVES UNTO OTHERS, AND THEIR FIELDS TO THEMM THAT SHALL INHERIT THEM: FOR EVERY ONE FROM THE LEAST EVEN UNTO THE GREATESTTJ IS GIVEN TO COVETOUSNESS, FROM THE PROPHET EVEN UNTO THE PRIEST EVERY ONE DEALETH FALSELY.,I# 11 FOR THEY HAVE HEALED THE HURT OF THE DAUGHTER OF MY PEOPLE SLIGHTLY,M. SAYING, PEACE, PEACE; WHEN THERE IS NO PEACE.J# 12 WERE THEY ASHAMED WHEN THEY HAD COMMITTED ABOMINATION? NAY, THEY WEREN NOT AT ALL ASHAMED, NEITHER COULD THEY BLUSH: THEREFORE SHALL THEY FALL AMONGI THEM THAT FALL: IN THE TIME OF THEIR VISITATION THEY SHALL BE CAST DOWN,I SAITH THE LORD.L# 13 I WILL SURELY CONSUME THEM, SAITH THE LORD: THERE SHALL BE NO GRAPES ONL THE VINE, NOR FIGS ON THE FIG TREE, AND THE LEAF SHALL FADE; AND THE THINGS2 THAT I HAVE GIVEN THEM SHALL PASS AWAY FROM THEM.H# 14 WHY DO WE SIT STILL? ASSEMBLE YOURSELVES, AND LET US ENTER INTO THEN DEFENCED CITIES, AND LET US BE SILENT THERE: FOR THE LORD OUR GOD HATH PUT USH TO SILENCE, AND GIVEN US WATER OF GALL TO DRINK, BECAUSE WE HAVE SINNED AGAINST THE LORD.I# 15 WE LOOKED FOR PEACE, BUT NO GOOD CAME; AND FOR A TIME OF HEALTH, ANDY BEHOLD TROUBLE!K# 16 THE SNORTING OF HIS HORSES WAS HEARD FROM DAN: THE WHOLE LAND TREMBLED,M AT THE SOUND OF THE NEIGHING OF HIS STRONG ONES; FOR THEY ARE COME, AND HAVEAI DEVOURED THE LAND, AND ALL THAT IS IN IT; THE CITY, AND THOSE THAT DWELLE THEREIN.J# 17 FOR, BEHOLD, I WILL SEND SERPENTS, COCKATRICES, AMONG YOU, WHICH WILL9 NOT BE CHARMED, AND THEY SHALL BITE YOU, SAITH THE LORD.SI# 18 WHEN I WOULD COMFORT MYSELF AGAINST SORROW, MY HEART IS FAINT IN ME. M# 19 BEHOLD THE VOICE OF THE CRY OF THE DAUGHTER OF MY PEOPLE BECAUSE OF THEMSN THAT DWELL IN A FAR COUNTRY: IS NOT THE LORD IN ZION? IS NOT HER KING IN HER?N WHY HAVE THEY PROVOKED ME TO ANGER WITH THEIR GRAVEN IMAGES, AND WITH STRANGE VAN00v::D%5%T6%! !ITIES?D# 20 THE HARVEST IS PAST, THE SUMMER IS ENDED, AND WE ARE NOT SAVED.E# 21 FOR THE HURT OF THE DAUGHTER OF MY PEOPLE AM I HURT; I AM BLACK;,$ ASTONISHMENT HATH TAKEN HOLD ON ME.M# 22 IS THERE NO BALM IN GILEAD; IS THERE NO PHYSICIAN THERE? WHY THEN IS NOT 3 THE HEALTH OF THE DAUGHTER OF MY PEOPLE RECOVERED? = CHAPTER 9 J# 1 OH THAT MY HEAD WERE WATERS, AND MINE EYES A FOUNTAIN OF TEARS, THAT IE MIGHT WEEP DAY AND NIGHT FOR THE SLAIN OF THE DAUGHTER OF MY PEOPLE! L# 2 OH THAT I HAD IN THE WILDERNESS A LODGING PLACE OF WAYFARING MEN; THAT IH MIGHT LEAVE MY PEOPLE, AND GO FROM THEM! FOR THEY BE ALL ADULTERERS, AN ASSEMBLY OF TREACHEROUS MEN.TI# 3 AND THEY BEND THEIR TONGUES LIKE THEIR BOW FOR LIES: BUT THEY ARE NOT N VALIANT FOR THE TRUTH UPON THE EARTH; FOR THEY PROCEED FROM EVIL TO EVIL, AND" THEY KNOW NOT ME, SAITH THE LORD.M# 4 TAKE YE HEED EVERY ONE OF HIS NEIGHBOUR, AND TRUST YE NOT IN ANY BROTHER:AL FOR EVERY BROTHER WILL UTTERLY SUPPLANT, AND EVERY NEIGHBOUR WILL WALK WITH SLANDERS.I# 5 AND THEY WILL DECEIVE EVERY ONE HIS NEIGHBOUR, AND WILL NOT SPEAK THEOL TRUTH: THEY HAVE TAUGHT THEIR TONGUE TO SPEAK LIES, AND WEARY THEMSELVES TO COMMIT INIQUITY.IM# 6 THINE HABITATION IS IN THE MIDST OF DECEIT; THROUGH DECEIT THEY REFUSE TOO KNOW ME, SAITH THE LORD.EM# 7 THEREFORE THUS SAITH THE LORD OF HOSTS, BEHOLD, I WILL MELT THEM, AND TRYE8 THEM; FOR HOW SHALL I DO FOR THE DAUGHTER OF MY PEOPLE?J# 8 THEIR TONGUE IS AS AN ARROW SHOT OUT; IT SPEAKETH DECEIT: ONE SPEAKETHL PEACEABLY TO HIS NEIGHBOUR WITH HIS MOUTH, BUT IN HEART HE LAYETH HIS WAIT.I# 9 SHALL I NOT VISIT THEM FOR THESE THINGS? SAITH THE LORD: SHALL NOT MYA* SOUL BE AVENGED ON SUCH A NATION AS THIS?H# 10 FOR THE MOUNTAINS WILL I TAKE UP A WEEPING AND WAILING, AND FOR THEL HABITATIONS OF THE WILDERNESS A LAMENTATION, BECAUSE THEY ARE BURNED UP, SOG THAT NONE CAN PASS THROUGH THEM; NEITHER CAN MEN HEAR THE VOICE OF THEOL CATTLE; BOTH THE FOWL OF THE HEAVENS AND THE BEAST ARE FLED; THEY ARE GONE.K# 11 AND I WILL MAKE JERUSALEM HEAPS, AND A DEN OF DRAGONS; AND I WILL MAKEH5 THE CITIES OF JUDAH DESOLATE, WITHOUT AN INHABITANT.?M# 12 WHO IS THE WISE MAN, THAT MAY UNDERSTAND THIS? AND WHO IS HE TO WHOM THE0I MOUTH OF THE LORD HATH SPOKEN, THAT HE MAY DECLARE IT, FOR WHAT THE LANDTI PERISHETH AND IS BURNED UP LIKE A WILDERNESS, THAT NONE PASSETH THROUGH?AM# 13 AND THE LORD SAITH, BECAUSE THEY HAVE FORSAKEN MY LAW WHICH I SET BEFOREB< THEM, AND HAVE NOT OBEYED MY VOICE, NEITHER WALKED THEREIN;H# 14 BUT HAVE WALKED AFTER THE IMAGINATION OF THEIR OWN HEART, AND AFTER) BAALIM, WHICH THEIR FATHERS TAUGHT THEM:TI# 15 THEREFORE THUS SAITH THE LORD OF HOSTS, THE GOD OF ISRAEL; BEHOLD, INM WILL FEED THEM, EVEN THIS PEOPLE, WITH WORMWOOD, AND GIVE THEM WATER OF GALLT TO DRINK.L# 16 I WILL SCATTER THEM ALSO AMONG THE HEATHEN, WHOM NEITHER THEY NOR THEIRM FATHERS HAVE KNOWN: AND I WILL SEND A SWORD AFTER THEM, TILL I HAVE CONSUMEDB THEM.I# 17 THUS SAITH THE LORD OF HOSTS, CONSIDER YE, AND CALL FOR THE MOURNING K WOMEN, THAT THEY MAY COME; AND SEND FOR CUNNING WOMEN, THAT THEY MAY COME:EM# 18 AND LET THEM MAKE HASTE, AND TAKE UP A WAILING FOR US, THAT OUR EYES MAYO; RUN DOWN WITH TEARS, AND OUR EYELIDS GUSH OUT WITH WATERS. L# 19 FOR A VOICE OF WAILING IS HEARD OUT OF ZION, HOW ARE WE SPOILED! WE AREM GREATLY CONFOUNDED, BECAUSE WE HAVE FORSAKEN THE LAND, BECAUSE OUR DWELLINGSW HAVE CAST US OUT.L# 20 YET HEAR THE WORD OF THE LORD, O YE WOMEN, AND LET YOUR EAR RECEIVE THEG WORD OF HIS MOUTH, AND TEACH YOUR DAUGHTERS WAILING, AND EVERY ONE HERD NEIGHBOUR LAMENTATION.TL# 21 FOR DEATH IS COME UP INTO OUR WINDOWS, AND IS ENTERED INTO OUR PALACES,J TO CUT OFF THE CHILDREN FROM WITHOUT, AND THE YOUNG MEN FROM THE STREETS.L# 22 SPEAK, THUS SAITH THE LORD, EVEN THE CARCASES OF MEN SHALL FALL AS DUNGM UPON THE OPEN FIELD, AND AS THE HANDFUL AFTER THE HARVESTMAN, AND NONE SHALLG GATHER THEM.UK# 23 THUS SAITH THE LORD, LET NOT THE WISE MAN GLORY IN HIS WISDOM, NEITHERII LET THE MIGHTY MAN GLORY IN HIS MIGHT, LET NOT TH00v:8<%X>%+%O-%TADATADATAE RICH MAN GLORY IN HIS  RICHES:G# 24 BUT LET HIM THAT GLORIETH GLORY IN THIS, THAT HE UNDERSTANDETH ANDEL KNOWETH ME, THAT I AM THE LORD WHICH EXERCISE LOVINGKINDNESS, JUDGMENT, ANDL RIGHTEOUSNESS, IN THE EARTH: FOR IN THESE THINGS I DELIGHT, SAITH THE LORD.M# 25 BEHOLD, THE DAYS COME, SAITH THE LORD, THAT I WILL PUNISH ALL THEM WHICHE( ARE CIRCUMCISED WITH THE UNCIRCUMCISED;M# 26 EGYPT, AND JUDAH, AND EDOM, AND THE CHILDREN OF AMMON, AND MOAB, AND ALLTL THAT ARE IN THE UTMOST CORNERS, THAT DWELL IN THE WILDERNESS: FOR ALL THESEL NATIONS ARE UNCIRCUMCISED, AND ALL THE HOUSE OF ISRAEL ARE UNCIRCUMCISED IN THE HEART.T = CHAPTER 10 RI# 1 HEAR YE THE WORD WHICH THE LORD SPEAKETH UNTO YOU, O HOUSE OF ISRAEL:HE# 2 THUS SAITH THE LORD, LEARN NOT THE WAY OF THE HEATHEN, AND BE NOT G DISMAYED AT THE SIGNS OF HEAVEN; FOR THE HEATHEN ARE DISMAYED AT THEM.DM# 3 FOR THE CUSTOMS OF THE PEOPLE ARE VAIN: FOR ONE CUTTETH A TREE OUT OF THEA< FOREST, THE WORK OF THE HANDS OF THE WORKMAN, WITH THE AXE.I# 4 THEY DECK IT WITH SILVER AND WITH GOLD; THEY FASTEN IT WITH NAILS ANDL WITH HAMMERS, THAT IT MOVE NOT.H# 5 THEY ARE UPRIGHT AS THE PALM TREE, BUT SPEAK NOT: THEY MUST NEEDS BEI BORNE, BECAUSE THEY CANNOT GO. BE NOT AFRAID OF THEM; FOR THEY CANNOT DOT- EVIL, NEITHER ALSO IS IT IN THEM TO DO GOOD. J# 6 FORASMUCH AS THERE IS NONE LIKE UNTO THEE, O LORD; THOU ART GREAT, AND THY NAME IS GREAT IN MIGHT.C# 7 WHO WOULD NOT FEAR THEE, O KING OF NATIONS? FOR TO THEE DOTH ITOJ APPERTAIN: FORASMUCH AS AMONG ALL THE WISE MEN OF THE NATIONS, AND IN ALL. THEIR KINGDOMS, THERE IS NONE LIKE UNTO THEE.K# 8 BUT THEY ARE ALTOGETHER BRUTISH AND FOOLISH: THE STOCK IS A DOCTRINE OFS VANITIES.L# 9 SILVER SPREAD INTO PLATES IS BROUGHT FROM TARSHISH, AND GOLD FROM UPHAZ,M THE WORK OF THE WORKMAN, AND OF THE HANDS OF THE FOUNDER: BLUE AND PURPLE ISK6 THEIR CLOTHING: THEY ARE ALL THE WORK OF CUNNING MEN.K# 10 BUT THE LORD IS THE TRUE GOD, HE IS THE LIVING GOD, AND AN EVERLASTINGON KING: AT HIS WRATH THE EARTH SHALL TREMBLE, AND THE NATIONS SHALL NOT BE ABLE TO ABIDE HIS INDIGNATION.M# 11 THUS SHALL YE SAY UNTO THEM, THE GODS THAT HAVE NOT MADE THE HEAVENS ANDOG THE EARTH, EVEN THEY SHALL PERISH FROM THE EARTH, AND FROM UNDER THESET HEAVENS.IJ# 12 HE HATH MADE THE EARTH BY HIS POWER, HE HATH ESTABLISHED THE WORLD BYB HIS WISDOM, AND HATH STRETCHED OUT THE HEAVENS BY HIS DISCRETION.F# 13 WHEN HE UTTERETH HIS VOICE, THERE IS A MULTITUDE OF WATERS IN THEM HEAVENS, AND HE CAUSETH THE VAPOURS TO ASCEND FROM THE ENDS OF THE EARTH; HETD MAKETH LIGHTNINGS WITH RAIN, AND BRINGETH FORTH THE WIND OUT OF HIS TREASURES.MJ# 14 EVERY MAN IS BRUTISH IN HIS KNOWLEDGE: EVERY FOUNDER IS CONFOUNDED BYL THE GRAVEN IMAGE: FOR HIS MOLTEN IMAGE IS FALSEHOOD, AND THERE IS NO BREATH IN THEM.HM# 15 THEY ARE VANITY, AND THE WORK OF ERRORS: IN THE TIME OF THEIR VISITATION  THEY SHALL PERISH.SG# 16 THE PORTION OF JACOB IS NOT LIKE THEM: FOR HE IS THE FORMER OF ALL K THINGS; AND ISRAEL IS THE ROD OF HIS INHERITANCE: THE LORD OF HOSTS IS HISA NAME.G# 17 GATHER UP THY WARES OUT OF THE LAND, O INHABITANT OF THE FORTRESS.TM# 18 FOR THUS SAITH THE LORD, BEHOLD, I WILL SLING OUT THE INHABITANTS OF THENE LAND AT THIS ONCE, AND WILL DISTRESS THEM, THAT THEY MAY FIND IT SO. M# 19 WOE IS ME FOR MY HURT! MY WOUND IS GRIEVOUS; BUT I SAID, TRULY THIS IS AT GRIEF, AND I MUST BEAR IT.EK# 20 MY TABERNACLE IS SPOILED, AND ALL MY CORDS ARE BROKEN: MY CHILDREN AREOK GONE FORTH OF ME, AND THEY ARE NOT: THERE IS NONE TO STRETCH FORTH MY TENTH% ANY MORE, AND TO SET UP MY CURTAINS.YF# 21 FOR THE PASTORS ARE BECOME BRUTISH, AND HAVE NOT SOUGHT THE LORD:K THEREFORE THEY SHALL NOT PROSPER, AND ALL THEIR FLOCKS SHALL BE SCATTERED. M# 22 BEHOLD, THE NOISE OF THE BRUIT IS COME, AND A GREAT COMMOTION OUT OF THE K NORTH COUNTRY, TO MAKE THE CITIES OF JUDAH DESOLATE, AND A DEN OF DRAGONS.BK# 23 O LORD, I KNOW THAT THE WAY OF MAN IS NOT IN HIMSELF: IT IS NOT IN MAND" THAT WALKETH TO DIRECT HIS STEPS.I# 24 O LORD, CORRECT ME, BUT WITH JUDGMENT; NOT IN T00v;:D%5%T6%! !HINE ANGER, LEST THOUP BRING ME TO NOTHING.RH# 25 POUR OUT THY FURY UPON THE HEATHEN THAT KNOW THEE NOT, AND UPON THEF FAMILIES THAT CALL NOT ON THY NAME: FOR THEY HAVE EATEN UP JACOB, ANDG DEVOURED HIM, AND CONSUMED HIM, AND HAVE MADE HIS HABITATION DESOLATE. = CHAPTER 11 Y8# 1 THE WORD THAT CAME TO JEREMIAH FROM THE LORD SAYING,L# 2 HEAR YE THE WORDS OF THIS COVENANT, AND SPEAK UNTO THE MEN OF JUDAH, AND! TO THE INHABITANTS OF JERUSALEM;TL# 3 AND SAY THOU UNTO THEM, THUS SAITH THE LORD GOD OF ISRAEL; CURSED BE THE1 MAN THAT OBEYETH NOT THE WORDS OF THIS COVENANT,UK# 4 WHICH I COMMANDED YOUR FATHERS IN THE DAY THAT I BROUGHT THEM FORTH OUTTK OF THE LAND OF EGYPT, FROM THE IRON FURNACE, SAYING, OBEY MY VOICE, AND DOAL THEM, ACCORDING TO ALL WHICH I COMMAND YOU: SO SHALL YE BE MY PEOPLE, AND I WILL BE YOUR GOD:M# 5 THAT I MAY PERFORM THE OATH WHICH I HAVE SWORN UNTO YOUR FATHERS, TO GIVEOM THEM A LAND FLOWING WITH MILK AND HONEY, AS IT IS THIS DAY. THEN ANSWERED I,H AND SAID, SO BE IT, O LORD.I# 6 THEN THE LORD SAID UNTO ME, PROCLAIM ALL THESE WORDS IN THE CITIES OFHJ JUDAH, AND IN THE STREETS OF JERUSALEM, SAYING, HEAR YE THE WORDS OF THIS COVENANT, AND DO THEM.HI# 7 FOR I EARNESTLY PROTESTED UNTO YOUR FATHERS IN THE DAY THAT I BROUGHTCG THEM UP OUT OF THE LAND OF EGYPT, EVEN UNTO THIS DAY, RISING EARLY AND # PROTESTING, SAYING, OBEY MY VOICE.AL# 8 YET THEY OBEYED NOT, NOR INCLINED THEIR EAR, BUT WALKED EVERY ONE IN THEJ IMAGINATION OF THEIR EVIL HEART: THEREFORE I WILL BRING UPON THEM ALL THEM WORDS OF THIS COVENANT, WHICH I COMMANDED THEM TO DO: BUT THEY DID THEM NOT.NL# 9 AND THE LORD SAID UNTO ME, A CONSPIRACY IS FOUND AMONG THE MEN OF JUDAH,( AND AMONG THE INHABITANTS OF JERUSALEM.G# 10 THEY ARE TURNED BACK TO THE INIQUITIES OF THEIR FOREFATHERS, WHICHOL REFUSED TO HEAR MY WORDS; AND THEY WENT AFTER OTHER GODS TO SERVE THEM: THEL HOUSE OF ISRAEL AND THE HOUSE OF JUDAH HAVE BROKEN MY COVENANT WHICH I MADE WITH THEIR FATHERS.H# 11 THEREFORE THUS SAITH THE LORD, BEHOLD, I WILL BRING EVIL UPON THEM,M WHICH THEY SHALL NOT BE ABLE TO ESCAPE; AND THOUGH THEY SHALL CRY UNTO ME, I  WILL NOT HEARKEN UNTO THEM.L# 12 THEN SHALL THE CITIES OF JUDAH AND INHABITANTS OF JERUSALEM GO, AND CRYL UNTO THE GODS UNTO WHOM THEY OFFER INCENSE: BUT THEY SHALL NOT SAVE THEM AT" ALL IN THE TIME OF THEIR TROUBLE.J# 13 FOR ACCORDING TO THE NUMBER OF THY CITIES WERE THY GODS, O JUDAH; ANDM ACCORDING TO THE NUMBER OF THE STREETS OF JERUSALEM HAVE YE SET UP ALTARS TOU< THAT SHAMEFUL THING, EVEN ALTARS TO BURN INCENSE UNTO BAAL.M# 14 THEREFORE PRAY NOT THOU FOR THIS PEOPLE, NEITHER LIFT UP A CRY OR PRAYER I FOR THEM: FOR I WILL NOT HEAR THEM IN THE TIME THAT THEY CRY UNTO ME FOR  THEIR TROUBLE.AF# 15 WHAT HATH MY BELOVED TO DO IN MINE HOUSE, SEEING SHE HATH WROUGHTL LEWDNESS WITH MANY, AND THE HOLY FLESH IS PASSED FROM THEE? WHEN THOU DOEST EVIL, THEN THOU REJOICEST.OM# 16 THE LORD CALLED THY NAME, A GREEN OLIVE TREE, FAIR, AND OF GOODLY FRUIT:SG WITH THE NOISE OF A GREAT TUMULT HE HATH KINDLED FIRE UPON IT, AND THEB BRANCHES OF IT ARE BROKEN. K# 17 FOR THE LORD OF HOSTS, THAT PLANTED THEE, HATH PRONOUNCED EVIL AGAINST K THEE, FOR THE EVIL OF THE HOUSE OF ISRAEL AND OF THE HOUSE OF JUDAH, WHICHWM THEY HAVE DONE AGAINST THEMSELVES TO PROVOKE ME TO ANGER IN OFFERING INCENSEH UNTO BAAL.EI# 18 AND THE LORD HATH GIVEN ME KNOWLEDGE OF IT, AND I KNOW IT: THEN THOUT SHEWEDST ME THEIR DOINGS.K# 19 BUT I WAS LIKE A LAMB OR AN OX THAT IS BROUGHT TO THE SLAUGHTER; AND IGN KNEW NOT THAT THEY HAD DEVISED DEVICES AGAINST ME, SAYING, LET US DESTROY THEI TREE WITH THE FRUIT THEREOF, AND LET US CUT HIM OFF FROM THE LAND OF THES1 LIVING, THAT HIS NAME MAY BE NO MORE REMEMBERED.OJ# 20 BUT, O LORD OF HOSTS, THAT JUDGEST RIGHTEOUSLY, THAT TRIEST THE REINSF AND THE HEART, LET ME SEE THY VENGEANCE ON THEM: FOR UNTO THEE HAVE I REVEALED MY CAUSE.IH# 21 THEREFORE THUS SAITH THE LORD OF THE MEN OF ANATHOTH, THAT SEEK THYM LIFE, SAYING, PROPHESY NOT IN THE NAME OF THE LORD, THAT THOU DIE NOT BY OURE00v;8<%X>%+%O-%TADATADATA HAND:L# 22 THEREFORE THUS SAITH THE LORD OF HOSTS, BEHOLD, I WILL PUNISH THEM: THEN YOUNG MEN SHALL DIE BY THE SWORD; THEIR SONS AND THEIR DAUGHTERS SHALL DIE BY FAMINE:J# 23 AND THERE SHALL BE NO REMNANT OF THEM: FOR I WILL BRING EVIL UPON THE4 MEN OF ANATHOTH, EVEN THE YEAR OF THEIR VISITATION. = CHAPTER 12 NL# 1 RIGHTEOUS ART THOU, O LORD, WHEN I PLEAD WITH THEE: YET LET ME TALK WITHE THEE OF THY JUDGMENTS: WHEREFORE DOTH THE WAY OF THE WICKED PROSPER?M; WHEREFORE ARE ALL THEY HAPPY THAT DEAL VERY TREACHEROUSLY?OK# 2 THOU HAST PLANTED THEM, YEA, THEY HAVE TAKEN ROOT: THEY GROW, YEA, THEYSK BRING FORTH FRUIT: THOU ART NEAR IN THEIR MOUTH, AND FAR FROM THEIR REINS.I# 3 BUT THOU, O LORD, KNOWEST ME: THOU HAST SEEN ME, AND TRIED MINE HEARTN TOWARD THEE: PULL THEM OUT LIKE SHEEP FOR THE SLAUGHTER, AND PREPARE THEM FOR THE DAY OF SLAUGHTER.K# 4 HOW LONG SHALL THE LAND MOURN, AND THE HERBS OF EVERY FIELD WITHER, FOR L THE WICKEDNESS OF THEM THAT DWELL THEREIN? THE BEASTS ARE CONSUMED, AND THE9 BIRDS; BECAUSE THEY SAID, HE SHALL NOT SEE OUR LAST END. K# 5 IF THOU HAST RUN WITH THE FOOTMEN, AND THEY HAVE WEARIED THEE, THEN HOWTJ CANST THOU CONTEND WITH HORSES? AND IF IN THE LAND OF PEACE, WHEREIN THOUG TRUSTEDST, THEY WEARIED THEE, THEN HOW WILT THOU DO IN THE SWELLING OFS JORDAN?L# 6 FOR EVEN THY BRETHREN, AND THE HOUSE OF THY FATHER, EVEN THEY HAVE DEALTG TREACHEROUSLY WITH THEE; YEA, THEY HAVE CALLED A MULTITUDE AFTER THEE:S: BELIEVE THEM NOT, THOUGH THEY SPEAK FAIR WORDS UNTO THEE.K# 7 I HAVE FORSAKEN MINE HOUSE, I HAVE LEFT MINE HERITAGE; I HAVE GIVEN THEA8 DEARLY BELOVED OF MY SOUL INTO THE HAND OF HER ENEMIES.K# 8 MINE HERITAGE IS UNTO ME AS A LION IN THE FOREST; IT CRIETH OUT AGAINSTH ME: THEREFORE HAVE I HATED IT.,J# 9 MINE HERITAGE IS UNTO ME AS A SPECKLED BIRD, THE BIRDS ROUND ABOUT AREL AGAINST HER; COME YE, ASSEMBLE ALL THE BEASTS OF THE FIELD, COME TO DEVOUR.J# 10 MANY PASTORS HAVE DESTROYED MY VINEYARD, THEY HAVE TRODDEN MY PORTIONF UNDER FOOT, THEY HAVE MADE MY PLEASANT PORTION A DESOLATE WILDERNESS.L# 11 THEY HAVE MADE IT DESOLATE, AND BEING DESOLATE IT MOURNETH UNTO ME; THE@ WHOLE LAND IS MADE DESOLATE, BECAUSE NO MAN LAYETH IT TO HEART.K# 12 THE SPOILERS ARE COME UPON ALL HIGH PLACES THROUGH THE WILDERNESS: FORHL THE SWORD OF THE LORD SHALL DEVOUR FROM THE ONE END OF THE LAND EVEN TO THE2 OTHER END OF THE LAND: NO FLESH SHALL HAVE PEACE.M# 13 THEY HAVE SOWN WHEAT, BUT SHALL REAP THORNS: THEY HAVE PUT THEMSELVES TOYG PAIN, BUT SHALL NOT PROFIT: AND THEY SHALL BE ASHAMED OF YOUR REVENUESE) BECAUSE OF THE FIERCE ANGER OF THE LORD.DI# 14 THUS SAITH THE LORD AGAINST ALL MINE EVIL NEIGHBOURS, THAT TOUCH THEAL INHERITANCE WHICH I HAVE CAUSED MY PEOPLE ISRAEL TO INHERIT; BEHOLD, I WILLJ PLUCK THEM OUT OF THEIR LAND, AND PLUCK OUT THE HOUSE OF JUDAH FROM AMONG THEM.I# 15 AND IT SHALL COME TO PASS, AFTER THAT I HAVE PLUCKED THEM OUT I WILL.M RETURN, AND HAVE COMPASSION ON THEM, AND WILL BRING THEM AGAIN, EVERY MAN TOY) HIS HERITAGE, AND EVERY MAN TO HIS LAND.LL# 16 AND IT SHALL COME TO PASS, IF THEY WILL DILIGENTLY LEARN THE WAYS OF MYJ PEOPLE, TO SWEAR BY MY NAME, THE LORD LIVETH; AS THEY TAUGHT MY PEOPLE TOC SWEAR BY BAAL; THEN SHALL THEY BE BUILT IN THE MIDST OF MY PEOPLE. H# 17 BUT IF THEY WILL NOT OBEY, I WILL UTTERLY PLUCK UP AND DESTROY THAT NATION, SAITH THE LORD. = CHAPTER 13 K# 1 THUS SAITH THE LORD UNTO ME, GO AND GET THEE A LINEN GIRDLE, AND PUT ITN) UPON THY LOINS, AND PUT IT NOT IN WATER.MI# 2 SO I GOT A GIRDLE ACCORDING TO THE WORD OF THE LORD, AND PUT IT ON MYT LOINS.FB# 3 AND THE WORD OF THE LORD CAME UNTO ME THE SECOND TIME, SAYING,K# 4 TAKE THE GIRDLE THAT THOU HAST GOT, WHICH IS UPON THY LOINS, AND ARISE,L: GO TO EUPHRATES, AND HIDE IT THERE IN A HOLE OF THE ROCK.A# 5 SO I WENT, AND HID IT BY EUPHRATES, AS THE LORD COMMANDED ME.SK# 6 AND IT CAME TO PASS AFTER MANY DAYS, THAT THE LORD SAID UNTO ME, ARISE,HL GO TO EUPHRATES, AND TAKE THE GIRDLE FROM THENCE, WHICH I COMMANDED THEE TO HIDE THERE.L# 7 THEN I WENT TO EUPHRATES00v;:D%5%T6%! !, AND DIGGED, AND TOOK THE GIRDLE FROM THE PLACEN WHERE I HAD HID IT: AND, BEHOLD, THE GIRDLE WAS MARRED, IT WAS PROFITABLE FOR NOTHING.A3# 8 THEN THE WORD OF THE LORD CAME UNTO ME, SAYING,EM# 9 THUS SAITH THE LORD, AFTER THIS MANNER WILL I MAR THE PRIDE OF JUDAH, ANDY THE GREAT PRIDE OF JERUSALEM.G# 10 THIS EVIL PEOPLE, WHICH REFUSE TO HEAR MY WORDS, WHICH WALK IN THEMM IMAGINATION OF THEIR HEART, AND WALK AFTER OTHER GODS, TO SERVE THEM, AND TODG WORSHIP THEM, SHALL EVEN BE AS THIS GIRDLE, WHICH IS GOOD FOR NOTHING.KJ# 11 FOR AS THE GIRDLE CLEAVETH TO THE LOINS OF A MAN, SO HAVE I CAUSED TOM CLEAVE UNTO ME THE WHOLE HOUSE OF ISRAEL AND THE WHOLE HOUSE OF JUDAH, SAITHUM THE LORD; THAT THEY MIGHT BE UNTO ME FOR A PEOPLE, AND FOR A NAME, AND FOR AD2 PRAISE, AND FOR A GLORY: BUT THEY WOULD NOT HEAR.L# 12 THEREFORE THOU SHALT SPEAK UNTO THEM THIS WORD; THUS SAITH THE LORD GODK OF ISRAEL, EVERY BOTTLE SHALL BE FILLED WITH WINE: AND THEY SHALL SAY UNTORL THEE, DO WE NOT CERTAINLY KNOW THAT EVERY BOTTLE SHALL BE FILLED WITH WINE?L# 13 THEN SHALT THOU SAY UNTO THEM, THUS SAITH THE LORD, BEHOLD, I WILL FILLN ALL THE INHABITANTS OF THIS LAND, EVEN THE KINGS THAT SIT UPON DAVIDS THRONE,N AND THE PRIESTS, AND THE PROPHETS, AND ALL THE INHABITANTS OF JERUSALEM, WITH DRUNKENNESS. L# 14 AND I WILL DASH THEM ONE AGAINST ANOTHER, EVEN THE FATHERS AND THE SONSJ TOGETHER, SAITH THE LORD: I WILL NOT PITY, NOR SPARE, NOR HAVE MERCY, BUT DESTROY THEM.C# 15 HEAR YE, AND GIVE EAR; BE NOT PROUD: FOR THE LORD HATH SPOKEN.EJ# 16 GIVE GLORY TO THE LORD YOUR GOD, BEFORE HE CAUSE DARKNESS, AND BEFOREL YOUR FEET STUMBLE UPON THE DARK MOUNTAINS, AND, WHILE YE LOOK FOR LIGHT, HE> TURN IT INTO THE SHADOW OF DEATH, AND MAKE IT GROSS DARKNESS.M# 17 BUT IF YE WILL NOT HEAR IT, MY SOUL SHALL WEEP IN SECRET PLACES FOR YOUREJ PRIDE; AND MINE EYE SHALL WEEP SORE, AND RUN DOWN WITH TEARS, BECAUSE THE% LORDS FLOCK IS CARRIED AWAY CAPTIVE.VI# 18 SAY UNTO THE KING AND TO THE QUEEN, HUMBLE YOURSELVES, SIT DOWN: FOR C YOUR PRINCIPALITIES SHALL COME DOWN, EVEN THE CROWN OF YOUR GLORY.HH# 19 THE CITIES OF THE SOUTH SHALL BE SHUT UP, AND NONE SHALL OPEN THEM:J JUDAH SHALL BE CARRIED AWAY CAPTIVE ALL OF IT, IT SHALL BE WHOLLY CARRIED AWAY CAPTIVE.J# 20 LIFT UP YOUR EYES, AND BEHOLD THEM THAT COME FROM THE NORTH: WHERE IS4 THE FLOCK THAT WAS GIVEN THEE, THY BEAUTIFUL FLOCK?L# 21 WHAT WILT THOU SAY WHEN HE SHALL PUNISH THEE? FOR THOU HAST TAUGHT THEMJ TO BE CAPTAINS, AND AS CHIEF OVER THEE: SHALL NOT SORROWS TAKE THEE, AS A WOMAN IN TRAVAIL?M# 22 AND IF THOU SAY IN THINE HEART, WHEREFORE COME THESE THINGS UPON ME? FORBN THE GREATNESS OF THINE INIQUITY ARE THY SKIRTS DISCOVERED, AND THY HEELS MADE BARE.M# 23 CAN THE ETHIOPIAN CHANGE HIS SKIN, OR THE LEOPARD HIS SPOTS? THEN MAY YEE. ALSO DO GOOD, THAT ARE ACCUSTOMED TO DO EVIL.J# 24 THEREFORE WILL I SCATTER THEM AS THE STUBBLE THAT PASSETH AWAY BY THE WIND OF THE WILDERNESS.J# 25 THIS IS THY LOT, THE PORTION OF THY MEASURES FROM ME, SAITH THE LORD;: BECAUSE THOU HAST FORGOTTEN ME, AND TRUSTED IN FALSEHOOD.K# 26 THEREFORE WILL I DISCOVER THY SKIRTS UPON THY FACE, THAT THY SHAME MAY  APPEAR.I# 27 I HAVE SEEN THINE ADULTERIES, AND THY NEIGHINGS, THE LEWDNESS OF THYHN WHOREDOM, AND THINE ABOMINATIONS ON THE HILLS IN THE FIELDS. WOE UNTO THEE, O? JERUSALEM! WILT THOU NOT BE MADE CLEAN? WHEN SHALL IT ONCE BE?M = CHAPTER 14 E# 1 THE WORD OF THE LORD THAT CAME TO JEREMIAH CONCERNING THE DEARTH.TK# 2 JUDAH MOURNETH, AND THE GATES THEREOF LANGUISH; THEY ARE BLACK UNTO THER- GROUND; AND THE CRY OF JERUSALEM IS GONE UP.EL# 3 AND THEIR NOBLES HAVE SENT THEIR LITTLE ONES TO THE WATERS: THEY CAME TOK THE PITS, AND FOUND NO WATER; THEY RETURNED WITH THEIR VESSELS EMPTY; THEYW6 WERE ASHAMED AND CONFOUNDED, AND COVERED THEIR HEADS.H# 4 BECAUSE THE GROUND IS CHAPT, FOR THERE WAS NO RAIN IN THE EARTH, THE0 PLOWMEN WERE ASHAMED, THEY COVERED THEIR HEADS.M# 5 YEA, THE HIND ALSO CALVED IN THE FIELD, AND FORSOOK IT, BECAUSE THERE WAS NO GRASS.M# 6 AND THE WILD ASSES DID S00v;8<%X>%+%O-%TADATADATATAND IN THE HIGH PLACES, THEY SNUFFED UP THE WIND ? LIKE DRAGONS; THEIR EYES DID FAIL, BECAUSE THERE WAS NO GRASS.EH# 7 O LORD, THOUGH OUR INIQUITIES TESTIFY AGAINST US, DO THOU IT FOR THYH NAMES SAKE: FOR OUR BACKSLIDINGS ARE MANY; WE HAVE SINNED AGAINST THEE.E# 8 O THE HOPE OF ISRAEL, THE SAVIOUR THEREOF IN TIME OF TROUBLE, WHY,I SHOULDEST THOU BE AS A STRANGER IN THE LAND, AND AS A WAYFARING MAN THATL$ TURNETH ASIDE TO TARRY FOR A NIGHT?H# 9 WHY SHOULDEST THOU BE AS A MAN ASTONIED, AS A MIGHTY MAN THAT CANNOTI SAVE? YET THOU, O LORD, ART IN THE MIDST OF US, AND WE ARE CALLED BY THY  NAME; LEAVE US NOT.J# 10 THUS SAITH THE LORD UNTO THIS PEOPLE, THUS HAVE THEY LOVED TO WANDER,M THEY HAVE NOT REFRAINED THEIR FEET, THEREFORE THE LORD DOTH NOT ACCEPT THEM;; HE WILL NOW REMEMBER THEIR INIQUITY, AND VISIT THEIR SINS.BI# 11 THEN SAID THE LORD UNTO ME, PRAY NOT FOR THIS PEOPLE FOR THEIR GOOD.MI# 12 WHEN THEY FAST, I WILL NOT HEAR THEIR CRY; AND WHEN THEY OFFER BURNTSM OFFERING AND AN OBLATION, I WILL NOT ACCEPT THEM: BUT I WILL CONSUME THEM BYH5 THE SWORD, AND BY THE FAMINE, AND BY THE PESTILENCE.UL# 13 THEN SAID I, AH, LORD GOD! BEHOLD, THE PROPHETS SAY UNTO THEM, YE SHALLM NOT SEE THE SWORD, NEITHER SHALL YE HAVE FAMINE; BUT I WILL GIVE YOU ASSUREDH PEACE IN THIS PLACE.MI# 14 THEN THE LORD SAID UNTO ME, THE PROPHETS PROPHESY LIES IN MY NAME: I,L SENT THEM NOT, NEITHER HAVE I COMMANDED THEM, NEITHER SPAKE UNTO THEM: THEYL PROPHESY UNTO YOU A FALSE VISION AND DIVINATION, AND A THING OF NOUGHT, AND THE DECEIT OF THEIR HEART.SK# 15 THEREFORE THUS SAITH THE LORD CONCERNING THE PROPHETS THAT PROPHESY INEM MY NAME, AND I SENT THEM NOT, YET THEY SAY, SWORD AND FAMINE SHALL NOT BE INTA THIS LAND; BY SWORD AND FAMINE SHALL THOSE PROPHETS BE CONSUMED.HM# 16 AND THE PEOPLE TO WHOM THEY PROPHESY SHALL BE CAST OUT IN THE STREETS OFYK JERUSALEM BECAUSE OF THE FAMINE AND THE SWORD; AND THEY SHALL HAVE NONE TOSN BURY THEM, THEM, THEIR WIVES, NOR THEIR SONS, NOR THEIR DAUGHTERS: FOR I WILL! POUR THEIR WICKEDNESS UPON THEM.TI# 17 THEREFORE THOU SHALT SAY THIS WORD UNTO THEM; LET MINE EYES RUN DOWNAM WITH TEARS NIGHT AND DAY, AND LET THEM NOT CEASE: FOR THE VIRGIN DAUGHTER OFHD MY PEOPLE IS BROKEN WITH A GREAT BREACH, WITH A VERY GRIEVOUS BLOW.L# 18 IF I GO FORTH INTO THE FIELD, THEN BEHOLD THE SLAIN WITH THE SWORD! ANDK IF I ENTER INTO THE CITY, THEN BEHOLD THEM THAT ARE SICK WITH FAMINE! YEA,LI BOTH THE PROPHET AND THE PRIEST GO ABOUT INTO A LAND THAT THEY KNOW NOT.UJ# 19 HAST THOU UTTERLY REJECTED JUDAH? HATH THY SOUL LOTHED ZION? WHY HASTJ THOU SMITTEN US, AND THERE IS NO HEALING FOR US? WE LOOKED FOR PEACE, ANDC THERE IS NO GOOD; AND FOR THE TIME OF HEALING, AND BEHOLD TROUBLE!EM# 20 WE ACKNOWLEDGE, O LORD, OUR WICKEDNESS, AND THE INIQUITY OF OUR FATHERS:I! FOR WE HAVE SINNED AGAINST THEE.NK# 21 DO NOT ABHOR US, FOR THY NAMES SAKE, DO NOT DISGRACE THE THRONE OF THYC1 GLORY: REMEMBER, BREAK NOT THY COVENANT WITH US.EM# 22 ARE THERE ANY AMONG THE VANITIES OF THE GENTILES THAT CAN CAUSE RAIN? ORUL CAN THE HEAVENS GIVE SHOWERS? ART NOT THOU HE, O LORD OUR GOD? THEREFORE WE: WILL WAIT UPON THEE: FOR THOU HAST MADE ALL THESE THINGS. = CHAPTER 15 L# 1 THEN SAID THE LORD UNTO ME, THOUGH MOSES AND SAMUEL STOOD BEFORE ME, YETL MY MIND COULD NOT BE TOWARD THIS PEOPLE: CAST THEM OUT OF MY SIGHT, AND LET THEM GO FORTH.OI# 2 AND IT SHALL COME TO PASS, IF THEY SAY UNTO THEE, WHITHER SHALL WE GOAN FORTH? THEN THOU SHALT TELL THEM, THUS SAITH THE LORD; SUCH AS ARE FOR DEATH,K TO DEATH; AND SUCH AS ARE FOR THE SWORD, TO THE SWORD; AND SUCH AS ARE FOR E THE FAMINE, TO THE FAMINE; AND SUCH AS ARE FOR THE CAPTIVITY, TO THEA CAPTIVITY.GI# 3 AND I WILL APPOINT OVER THEM FOUR KINDS, SAITH THE LORD: THE SWORD TO K SLAY, AND THE DOGS TO TEAR, AND THE FOWLS OF THE HEAVEN, AND THE BEASTS OF " THE EARTH, TO DEVOUR AND DESTROY.G# 4 AND I WILL CAUSE THEM TO BE REMOVED INTO ALL KINGDOMS OF THE EARTH,EM BECAUSE OF MANASSEH THE SON OF HEZEKIAH KING OF JUDAH, FOR THAT WHICH HE DIDE IN JERUSALEM.M# 5 FOR 00v ;:D%5%T6%! !WHO SHALL HAVE PITY UPON THEE, O JERUSALEM? OR WHO SHALL BEMOAN THEE?,- OR WHO SHALL GO ASIDE TO ASK HOW THOU DOEST?TL# 6 THOU HAST FORSAKEN ME, SAITH THE LORD, THOU ART GONE BACKWARD: THEREFOREK WILL I STRETCH OUT MY HAND AGAINST THEE, AND DESTROY THEE; I AM WEARY WITHV REPENTING.EK# 7 AND I WILL FAN THEM WITH A FAN IN THE GATES OF THE LAND; I WILL BEREAVE L THEM OF CHILDREN, I WILL DESTROY MY PEOPLE SINCE THEY RETURN NOT FROM THEIR WAYS.G# 8 THEIR WIDOWS ARE INCREASED TO ME ABOVE THE SAND OF THE SEAS: I HAVEEN BROUGHT UPON THEM AGAINST THE MOTHER OF THE YOUNG MEN A SPOILER AT NOONDAY: IE HAVE CAUSED HIM TO FALL UPON IT SUDDENLY, AND TERRORS UPON THE CITY.OK# 9 SHE THAT HATH BORNE SEVEN LANGUISHETH: SHE HATH GIVEN UP THE GHOST; HER M SUN IS GONE DOWN WHILE IT WAS YET DAY: SHE HATH BEEN ASHAMED AND CONFOUNDED:NJ AND THE RESIDUE OF THEM WILL I DELIVER TO THE SWORD BEFORE THEIR ENEMIES, SAITH THE LORD.L# 10 WOE IS ME, MY MOTHER, THAT THOU HAST BORNE ME A MAN OF STRIFE AND A MANM OF CONTENTION TO THE WHOLE EARTH! I HAVE NEITHER LENT ON USURY, NOR MEN HAVEU: LENT TO ME ON USURY; YET EVERY ONE OF THEM DOTH CURSE ME.K# 11 THE LORD SAID, VERILY IT SHALL BE WELL WITH THY REMNANT; VERILY I WILLGL CAUSE THE ENEMY TO ENTREAT THEE WELL IN THE TIME OF EVIL AND IN THE TIME OF AFFLICTION.6# 12 SHALL IRON BREAK THE NORTHERN IRON AND THE STEEL?L# 13 THY SUBSTANCE AND THY TREASURES WILL I GIVE TO THE SPOIL WITHOUT PRICE,4 AND THAT FOR ALL THY SINS, EVEN IN ALL THY BORDERS.K# 14 AND I WILL MAKE THEE TO PASS WITH THINE ENEMIES INTO A LAND WHICH THOURM KNOWEST NOT: FOR A FIRE IS KINDLED IN MINE ANGER, WHICH SHALL BURN UPON YOU. J# 15 O LORD, THOU KNOWEST: REMEMBER ME, AND VISIT ME, AND REVENGE ME OF MYM PERSECUTORS; TAKE ME NOT AWAY IN THY LONGSUFFERING: KNOW THAT FOR THY SAKE IA HAVE SUFFERED REBUKE.K# 16 THY WORDS WERE FOUND, AND I DID EAT THEM; AND THY WORD WAS UNTO ME THERL JOY AND REJOICING OF MINE HEART: FOR I AM CALLED BY THY NAME, O LORD GOD OF HOSTS. H# 17 I SAT NOT IN THE ASSEMBLY OF THE MOCKERS, NOR REJOICED; I SAT ALONE? BECAUSE OF THY HAND: FOR THOU HAST FILLED ME WITH INDIGNATION.WK# 18 WHY IS MY PAIN PERPETUAL, AND MY WOUND INCURABLE, WHICH REFUSETH TO BE L HEALED? WILT THOU BE ALTOGETHER UNTO ME AS A LIAR, AND AS WATERS THAT FAIL?J# 19 THEREFORE THUS SAITH THE LORD, IF THOU RETURN, THEN WILL I BRING THEEK AGAIN, AND THOU SHALT STAND BEFORE ME: AND IF THOU TAKE FORTH THE PRECIOUSII FROM THE VILE, THOU SHALT BE AS MY MOUTH: LET THEM RETURN UNTO THEE; BUTN RETURN NOT THOU UNTO THEM.KI# 20 AND I WILL MAKE THEE UNTO THIS PEOPLE A FENCED BRASEN WALL: AND THEYML SHALL FIGHT AGAINST THEE, BUT THEY SHALL NOT PREVAIL AGAINST THEE: FOR I AM< WITH THEE TO SAVE THEE AND TO DELIVER THEE, SAITH THE LORD.M# 21 AND I WILL DELIVER THEE OUT OF THE HAND OF THE WICKED, AND I WILL REDEEMO& THEE OUT OF THE HAND OF THE TERRIBLE. = CHAPTER 16 T3# 1 THE WORD OF THE LORD CAME ALSO UNTO ME, SAYING,ID# 2 THOU SHALT NOT TAKE THEE A WIFE, NEITHER SHALT THOU HAVE SONS OR DAUGHTERS IN THIS PLACE.TL# 3 FOR THUS SAITH THE LORD CONCERNING THE SONS AND CONCERNING THE DAUGHTERSN THAT ARE BORN IN THIS PLACE, AND CONCERNING THEIR MOTHERS THAT BARE THEM, AND7 CONCERNING THEIR FATHERS THAT BEGAT THEM IN THIS LAND;TJ# 4 THEY SHALL DIE OF GRIEVOUS DEATHS; THEY SHALL NOT BE LAMENTED; NEITHERL SHALL THEY BE BURIED; BUT THEY SHALL BE AS DUNG UPON THE FACE OF THE EARTH:K AND THEY SHALL BE CONSUMED BY THE SWORD, AND BY FAMINE; AND THEIR CARCASESWH SHALL BE MEAT FOR THE FOWLS OF HEAVEN, AND FOR THE BEASTS OF THE EARTH.M# 5 FOR THUS SAITH THE LORD, ENTER NOT INTO THE HOUSE OF MOURNING, NEITHER GO L TO LAMENT NOR BEMOAN THEM: FOR I HAVE TAKEN AWAY MY PEACE FROM THIS PEOPLE,1 SAITH THE LORD, EVEN LOVINGKINDNESS AND MERCIES. J# 6 BOTH THE GREAT AND THE SMALL SHALL DIE IN THIS LAND: THEY SHALL NOT BEH BURIED, NEITHER SHALL MEN LAMENT FOR THEM, NOR CUT THEMSELVES, NOR MAKE THEMSELVES BALD FOR THEM:K# 7 NEITHER SHALL MEN TEAR THEMSELVES FOR THEM IN MOURNING, TO COMFORT THEMWN FOR THE DEAD; NEITHER SHALL MEN GIV00v(;8<%X>%+%O-%TADATADATAE THEM THE CUP OF CONSOLATION TO DRINK FOR" THEIR FATHER OR FOR THEIR MOTHER.J# 8 THOU SHALT NOT ALSO GO INTO THE HOUSE OF FEASTING, TO SIT WITH THEM TO EAT AND TO DRINK.M# 9 FOR THUS SAITH THE LORD OF HOSTS, THE GOD OF ISRAEL; BEHOLD, I WILL CAUSESH TO CEASE OUT OF THIS PLACE IN YOUR EYES, AND IN YOUR DAYS, THE VOICE OFM MIRTH, AND THE VOICE OF GLADNESS, THE VOICE OF THE BRIDEGROOM, AND THE VOICEE OF THE BRIDE.J# 10 AND IT SHALL COME TO PASS, WHEN THOU SHALT SHEW THIS PEOPLE ALL THESEL WORDS, AND THEY SHALL SAY UNTO THEE, WHEREFORE HATH THE LORD PRONOUNCED ALLM THIS GREAT EVIL AGAINST US? OR WHAT IS OUR INIQUITY? OR WHAT IS OUR SIN THATH, WE HAVE COMMITTED AGAINST THE LORD OUR GOD?J# 11 THEN SHALT THOU SAY UNTO THEM, BECAUSE YOUR FATHERS HAVE FORSAKEN ME,L SAITH THE LORD, AND HAVE WALKED AFTER OTHER GODS, AND HAVE SERVED THEM, ANDF HAVE WORSHIPPED THEM, AND HAVE FORSAKEN ME, AND HAVE NOT KEPT MY LAW;M# 12 AND YE HAVE DONE WORSE THAN YOUR FATHERS; FOR, BEHOLD, YE WALK EVERY ONEEL AFTER THE IMAGINATION OF HIS EVIL HEART, THAT THEY MAY NOT HEARKEN UNTO ME:M# 13 THEREFORE WILL I CAST YOU OUT OF THIS LAND INTO A LAND THAT YE KNOW NOT,AI NEITHER YE NOR YOUR FATHERS; AND THERE SHALL YE SERVE OTHER GODS DAY ANDU) NIGHT; WHERE I WILL NOT SHEW YOU FAVOUR.NL# 14 THEREFORE, BEHOLD, THE DAYS COME, SAITH THE LORD, THAT IT SHALL NO MOREL BE SAID, THE LORD LIVETH, THAT BROUGHT UP THE CHILDREN OF ISRAEL OUT OF THE LAND OF EGYPT;DJ# 15 BUT, THE LORD LIVETH, THAT BROUGHT UP THE CHILDREN OF ISRAEL FROM THEL LAND OF THE NORTH, AND FROM ALL THE LANDS WHITHER HE HAD DRIVEN THEM: AND IF WILL BRING THEM AGAIN INTO THEIR LAND THAT I GAVE UNTO THEIR FATHERS.I# 16 BEHOLD, I WILL SEND FOR MANY FISHERS, SAITH THE LORD, AND THEY SHALLTL FISH THEM; AND AFTER WILL I SEND FOR MANY HUNTERS, AND THEY SHALL HUNT THEMM FROM EVERY MOUNTAIN, AND FROM EVERY HILL, AND OUT OF THE HOLES OF THE ROCKS.PJ# 17 FOR MINE EYES ARE UPON ALL THEIR WAYS: THEY ARE NOT HID FROM MY FACE,. NEITHER IS THEIR INIQUITY HID FROM MINE EYES.M# 18 AND FIRST I WILL RECOMPENSE THEIR INIQUITY AND THEIR SIN DOUBLE; BECAUSEDF THEY HAVE DEFILED MY LAND, THEY HAVE FILLED MINE INHERITANCE WITH THE4 CARCASES OF THEIR DETESTABLE AND ABOMINABLE THINGS.F# 19 O LORD, MY STRENGTH, AND MY FORTRESS, AND MY REFUGE IN THE DAY OFN AFFLICTION, THE GENTILES SHALL COME UNTO THEE FROM THE ENDS OF THE EARTH, ANDN SHALL SAY, SURELY OUR FATHERS HAVE INHERITED LIES, VANITY, AND THINGS WHEREIN THERE IS NO PROFIT.># 20 SHALL A MAN MAKE GODS UNTO HIMSELF, AND THEY ARE NO GODS?I# 21 THEREFORE, BEHOLD, I WILL THIS ONCE CAUSE THEM TO KNOW, I WILL CAUSE M THEM TO KNOW MINE HAND AND MY MIGHT; AND THEY SHALL KNOW THAT MY NAME IS THET LORD. = CHAPTER 17 MK# 1 THE SIN OF JUDAH IS WRITTEN WITH A PEN OF IRON, AND WITH THE POINT OF AHK DIAMOND: IT IS GRAVEN UPON THE TABLE OF THEIR HEART, AND UPON THE HORNS OF YOUR ALTARS;AM# 2 WHILST THEIR CHILDREN REMEMBER THEIR ALTARS AND THEIR GROVES BY THE GREENE TREES UPON THE HIGH HILLS.AE# 3 O MY MOUNTAIN IN THE FIELD, I WILL GIVE THY SUBSTANCE AND ALL THYOH TREASURES TO THE SPOIL, AND THY HIGH PLACES FOR SIN, THROUGHOUT ALL THY BORDERS.YM# 4 AND THOU, EVEN THYSELF, SHALT DISCONTINUE FROM THINE HERITAGE THAT I GAVEHJ THEE; AND I WILL CAUSE THEE TO SERVE THINE ENEMIES IN THE LAND WHICH THOUL KNOWEST NOT: FOR YE HAVE KINDLED A FIRE IN MINE ANGER, WHICH SHALL BURN FOR EVER.K# 5 THUS SAITH THE LORD; CURSED BE THE MAN THAT TRUSTETH IN MAN, AND MAKETHR8 FLESH HIS ARM, AND WHOSE HEART DEPARTETH FROM THE LORD.M# 6 FOR HE SHALL BE LIKE THE HEATH IN THE DESERT, AND SHALL NOT SEE WHEN GOODTJ COMETH; BUT SHALL INHABIT THE PARCHED PLACES IN THE WILDERNESS, IN A SALT LAND AND NOT INHABITED.M# 7 BLESSED IS THE MAN THAT TRUSTETH IN THE LORD, AND WHOSE HOPE THE LORD IS.NK# 8 FOR HE SHALL BE AS A TREE PLANTED BY THE WATERS, AND THAT SPREADETH OUTEI HER ROOTS BY THE RIVER, AND SHALL NOT SEE WHEN HEAT COMETH, BUT HER LEAFEI SHALL BE GREEN; AND SHALL NOT BE CAREFUL IN THE YEAR OF DROUGHT, NEITHERA! SHALL CEASE FROM YIELDING FRUIT.A00v0;:D%5%T6%! !L# 9 THE HEART IS DECEITFUL ABOVE ALL THINGS, AND DESPERATELY WICKED: WHO CAN KNOW IT?BI# 10 I THE LORD SEARCH THE HEART, I TRY THE REINS, EVEN TO GIVE EVERY MAN.A ACCORDING TO HIS WAYS, AND ACCORDING TO THE FRUIT OF HIS DOINGS.TH# 11 AS THE PARTRIDGE SITTETH ON EGGS, AND HATCHETH THEM NOT; SO HE THATM GETTETH RICHES, AND NOT BY RIGHT, SHALL LEAVE THEM IN THE MIDST OF HIS DAYS,B AND AT HIS END SHALL BE A FOOL.M# 12 A GLORIOUS HIGH THRONE FROM THE BEGINNING IS THE PLACE OF OUR SANCTUARY.IL# 13 O LORD, THE HOPE OF ISRAEL, ALL THAT FORSAKE THEE SHALL BE ASHAMED, ANDJ THEY THAT DEPART FROM ME SHALL BE WRITTEN IN THE EARTH, BECAUSE THEY HAVE2 FORSAKEN THE LORD, THE FOUNTAIN OF LIVING WATERS.K# 14 HEAL ME, O LORD, AND I SHALL BE HEALED; SAVE ME, AND I SHALL BE SAVED:, FOR THOU ART MY PRAISE.I# 15 BEHOLD, THEY SAY UNTO ME, WHERE IS THE WORD OF THE LORD? LET IT COMEO NOW.AG# 16 AS FOR ME, I HAVE NOT HASTENED FROM BEING A PASTOR TO FOLLOW THEE:TL NEITHER HAVE I DESIRED THE WOEFUL DAY; THOU KNOWEST: THAT WHICH CAME OUT OF MY LIPS WAS RIGHT BEFORE THEE.SB# 17 BE NOT A TERROR UNTO ME: THOU ART MY HOPE IN THE DAY OF EVIL.L# 18 LET THEM BE CONFOUNDED THAT PERSECUTE ME, BUT LET NOT ME BE CONFOUNDED:M LET THEM BE DISMAYED, BUT LET NOT ME BE DISMAYED: BRING UPON THEM THE DAY OFO0 EVIL, AND DESTROY THEM WITH DOUBLE DESTRUCTION.L# 19 THUS SAID THE LORD UNTO ME; GO AND STAND IN THE GATE OF THE CHILDREN OFN THE PEOPLE, WHEREBY THE KINGS OF JUDAH COME IN, AND BY THE WHICH THEY GO OUT,# AND IN ALL THE GATES OF JERUSALEM; L# 20 AND SAY UNTO THEM, HEAR YE THE WORD OF THE LORD, YE KINGS OF JUDAH, ANDH ALL JUDAH, AND ALL THE INHABITANTS OF JERUSALEM, THAT ENTER IN BY THESE GATES:LL# 21 THUS SAITH THE LORD; TAKE HEED TO YOURSELVES, AND BEAR NO BURDEN ON THE8 SABBATH DAY, NOR BRING IT IN BY THE GATES OF JERUSALEM;H# 22 NEITHER CARRY FORTH A BURDEN OUT OF YOUR HOUSES ON THE SABBATH DAY,K NEITHER DO YE ANY WORK, BUT HALLOW YE THE SABBATH DAY, AS I COMMANDED YOURB FATHERS. I# 23 BUT THEY OBEYED NOT, NEITHER INCLINED THEIR EAR, BUT MADE THEIR NECK : STIFF, THAT THEY MIGHT NOT HEAR, NOR RECEIVE INSTRUCTION.K# 24 AND IT SHALL COME TO PASS, IF YE DILIGENTLY HEARKEN UNTO ME, SAITH THEJ LORD, TO BRING IN NO BURDEN THROUGH THE GATES OF THIS CITY ON THE SABBATH8 DAY, BUT HALLOW THE SABBATH DAY, TO DO NO WORK THEREIN;I# 25 THEN SHALL THERE ENTER INTO THE GATES OF THIS CITY KINGS AND PRINCESN SITTING UPON THE THRONE OF DAVID, RIDING IN CHARIOTS AND ON HORSES, THEY, ANDL THEIR PRINCES, THE MEN OF JUDAH, AND THE INHABITANTS OF JERUSALEM: AND THIS CITY SHALL REMAIN FOR EVER.L# 26 AND THEY SHALL COME FROM THE CITIES OF JUDAH, AND FROM THE PLACES ABOUTK JERUSALEM, AND FROM THE LAND OF BENJAMIN, AND FROM THE PLAIN, AND FROM THEEM MOUNTAINS, AND FROM THE SOUTH, BRINGING BURNT OFFERINGS, AND SACRIFICES, ANDWI MEAT OFFERINGS, AND INCENSE, AND BRINGING SACRIFICES OF PRAISE, UNTO THE  HOUSE OF THE LORD.GM# 27 BUT IF YE WILL NOT HEARKEN UNTO ME TO HALLOW THE SABBATH DAY, AND NOT TOPN BEAR A BURDEN, EVEN ENTERING IN AT THE GATES OF JERUSALEM ON THE SABBATH DAY;H THEN WILL I KINDLE A FIRE IN THE GATES THEREOF, AND IT SHALL DEVOUR THE4 PALACES OF JERUSALEM, AND IT SHALL NOT BE QUENCHED. = CHAPTER 18 D:# 1 THE WORD WHICH CAME TO JEREMIAH FROM THE LORD, SAYING,K# 2 ARISE, AND GO DOWN TO THE POTTERS HOUSE, AND THERE I WILL CAUSE THEE TON HEAR MY WORDS.SL# 3 THEN I WENT DOWN TO THE POTTERS HOUSE, AND, BEHOLD, HE WROUGHT A WORK ON THE WHEELS.M# 4 AND THE VESSEL THAT HE MADE OF CLAY WAS MARRED IN THE HAND OF THE POTTER:HM SO HE MADE IT AGAIN ANOTHER VESSEL, AS SEEMED GOOD TO THE POTTER TO MAKE IT.E1# 5 THEN THE WORD OF THE LORD CAME TO ME, SAYING,UK# 6 O HOUSE OF ISRAEL, CANNOT I DO WITH YOU AS THIS POTTER? SAITH THE LORD. L BEHOLD, AS THE CLAY IS IN THE POTTERS HAND, SO ARE YE IN MINE HAND, O HOUSE OF ISRAEL.IG# 7 AT WHAT INSTANT I SHALL SPEAK CONCERNING A NATION, AND CONCERNING AR; KINGDOM, TO PLUCK UP, AND TO PULL DOWN, AND TO DESTROY IT; K# 8 IF THAT NATION, AGAINST WHOM I HAVE PRONOUNCED, TURN FROM 00v8;8<%X>%+%O-%TADATADATATHEIR EVIL, IS8 WILL REPENT OF THE EVIL THAT I THOUGHT TO DO UNTO THEM.K# 9 AND AT WHAT INSTANT I SHALL SPEAK CONCERNING A NATION, AND CONCERNING A # KINGDOM, TO BUILD AND TO PLANT IT; M# 10 IF IT DO EVIL IN MY SIGHT, THAT IT OBEY NOT MY VOICE, THEN I WILL REPENTS4 OF THE GOOD, WHEREWITH I SAID I WOULD BENEFIT THEM.K# 11 NOW THEREFORE GO TO, SPEAK TO THE MEN OF JUDAH, AND TO THE INHABITANTSOM OF JERUSALEM, SAYING, THUS SAITH THE LORD; BEHOLD, I FRAME EVIL AGAINST YOU,HL AND DEVISE A DEVICE AGAINST YOU: RETURN YE NOW EVERY ONE FROM HIS EVIL WAY,) AND MAKE YOUR WAYS AND YOUR DOINGS GOOD. M# 12 AND THEY SAID, THERE IS NO HOPE: BUT WE WILL WALK AFTER OUR OWN DEVICES,D< AND WE WILL EVERY ONE DO THE IMAGINATION OF HIS EVIL HEART.J# 13 THEREFORE THUS SAITH THE LORD; ASK YE NOW AMONG THE HEATHEN, WHO HATHI HEARD SUCH THINGS: THE VIRGIN OF ISRAEL HATH DONE A VERY HORRIBLE THING. K# 14 WILL A MAN LEAVE THE SNOW OF LEBANON WHICH COMETH FROM THE ROCK OF THE H FIELD? OR SHALL THE COLD FLOWING WATERS THAT COME FROM ANOTHER PLACE BE FORSAKEN?M# 15 BECAUSE MY PEOPLE HATH FORGOTTEN ME, THEY HAVE BURNED INCENSE TO VANITY,RN AND THEY HAVE CAUSED THEM TO STUMBLE IN THEIR WAYS FROM THE ANCIENT PATHS, TO% WALK IN PATHS, IN A WAY NOT CAST UP; I# 16 TO MAKE THEIR LAND DESOLATE, AND A PERPETUAL HISSING; EVERY ONE THATH7 PASSETH THEREBY SHALL BE ASTONISHED, AND WAG HIS HEAD.OK# 17 I WILL SCATTER THEM AS WITH AN EAST WIND BEFORE THE ENEMY; I WILL SHEWH? THEM THE BACK, AND NOT THE FACE, IN THE DAY OF THEIR CALAMITY.EM# 18 THEN SAID THEY, COME AND LET US DEVISE DEVICES AGAINST JEREMIAH; FOR THEHN LAW SHALL NOT PERISH FROM THE PRIEST, NOR COUNSEL FROM THE WISE, NOR THE WORDM FROM THE PROPHET. COME, AND LET US SMITE HIM WITH THE TONGUE, AND LET US NOT6 GIVE HEED TO ANY OF HIS WORDS. K# 19 GIVE HEED TO ME, O LORD, AND HEARKEN TO THE VOICE OF THEM THAT CONTENDN WITH ME.EJ# 20 SHALL EVIL BE RECOMPENSED FOR GOOD? FOR THEY HAVE DIGGED A PIT FOR MYL SOUL. REMEMBER THAT I STOOD BEFORE THEE TO SPEAK GOOD FOR THEM, AND TO TURN AWAY THY WRATH FROM THEM.J# 21 THEREFORE DELIVER UP THEIR CHILDREN TO THE FAMINE, AND POUR OUT THEIRJ BLOOD BY THE FORCE OF THE SWORD; AND LET THEIR WIVES BE BEREAVED OF THEIRL CHILDREN, AND BE WIDOWS; AND LET THEIR MEN BE PUT TO DEATH; LET THEIR YOUNG% MEN BE SLAIN BY THE SWORD IN BATTLE.DH# 22 LET A CRY BE HEARD FROM THEIR HOUSES, WHEN THOU SHALT BRING A TROOPN SUDDENLY UPON THEM: FOR THEY HAVE DIGGED A PIT TO TAKE ME, AND HID SNARES FOR MY FEET.DM# 23 YET, LORD, THOU KNOWEST ALL THEIR COUNSEL AGAINST ME TO SLAY ME: FORGIVE L NOT THEIR INIQUITY, NEITHER BLOT OUT THEIR SIN FROM THY SIGHT, BUT LET THEMK BE OVERTHROWN BEFORE THEE; DEAL THUS WITH THEM IN THE TIME OF THINE ANGER.D = CHAPTER 19 OM# 1 THUS SAITH THE LORD, GO AND GET A POTTERS EARTHEN BOTTLE, AND TAKE OF THEO< ANCIENTS OF THE PEOPLE, AND OF THE ANCIENTS OF THE PRIESTS;L# 2 AND GO FORTH UNTO THE VALLEY OF THE SON OF HINNOM, WHICH IS BY THE ENTRYG OF THE EAST GATE, AND PROCLAIM THERE THE WORDS THAT I SHALL TELL THEE,LL# 3 AND SAY, HEAR YE THE WORD OF THE LORD, O KINGS OF JUDAH, AND INHABITANTSN OF JERUSALEM; THUS SAITH THE LORD OF HOSTS, THE GOD OF ISRAEL; BEHOLD, I WILLH BRING EVIL UPON THIS PLACE, THE WHICH WHOSOEVER HEARETH, HIS EARS SHALL TINGLE.J# 4 BECAUSE THEY HAVE FORSAKEN ME, AND HAVE ESTRANGED THIS PLACE, AND HAVEJ BURNED INCENSE IN IT UNTO OTHER GODS, WHOM NEITHER THEY NOR THEIR FATHERSN HAVE KNOWN, NOR THE KINGS OF JUDAH, AND HAVE FILLED THIS PLACE WITH THE BLOOD OF INNOCENTS;I# 5 THEY HAVE BUILT ALSO THE HIGH PLACES OF BAAL, TO BURN THEIR SONS WITHOI FIRE FOR BURNT OFFERINGS UNTO BAAL, WHICH I COMMANDED NOT, NOR SPAKE IT,G NEITHER CAME IT INTO MY MIND:K# 6 THEREFORE, BEHOLD, THE DAYS COME, SAITH THE LORD, THAT THIS PLACE SHALLLN NO MORE BE CALLED TOPHET, NOR THE VALLEY OF THE SON OF HINNOM, BUT THE VALLEY OF SLAUGHTER.J# 7 AND I WILL MAKE VOID THE COUNSEL OF JUDAH AND JERUSALEM IN THIS PLACE;L AND I WILL CAUSE THEM TO FALL BY THE SWORD BEFORE THEIR ENEMIES, AND BY THEJ HANDS OF THEM THAT SEEK T00v@;:D%5%T6%! !HEIR LIVES: AND THEIR CARCASES WILL I GIVE TO BEC MEAT FOR THE FOWLS OF THE HEAVEN, AND FOR THE BEASTS OF THE EARTH.KF# 8 AND I WILL MAKE THIS CITY DESOLATE, AND AN HISSING; EVERY ONE THATH PASSETH THEREBY SHALL BE ASTONISHED AND HISS BECAUSE OF ALL THE PLAGUES THEREOF.EI# 9 AND I WILL CAUSE THEM TO EAT THE FLESH OF THEIR SONS AND THE FLESH OF M THEIR DAUGHTERS, AND THEY SHALL EAT EVERY ONE THE FLESH OF HIS FRIEND IN THETH SIEGE AND STRAITNESS, WHEREWITH THEIR ENEMIES, AND THEY THAT SEEK THEIR LIVES, SHALL STRAITEN THEM.J# 10 THEN SHALT THOU BREAK THE BOTTLE IN THE SIGHT OF THE MEN THAT GO WITH THEE,J# 11 AND SHALT SAY UNTO THEM, THUS SAITH THE LORD OF HOSTS; EVEN SO WILL IH BREAK THIS PEOPLE AND THIS CITY, AS ONE BREAKETH A POTTERS VESSEL, THATN CANNOT BE MADE WHOLE AGAIN: AND THEY SHALL BURY THEM IN TOPHET, TILL THERE BE NO PLACE TO BURY.K# 12 THUS WILL I DO UNTO THIS PLACE, SAITH THE LORD, AND TO THE INHABITANTSS, THEREOF, AND EVEN MAKE THIS CITY AS TOPHET:M# 13 AND THE HOUSES OF JERUSALEM, AND THE HOUSES OF THE KINGS OF JUDAH, SHALLEN BE DEFILED AS THE PLACE OF TOPHET, BECAUSE OF ALL THE HOUSES UPON WHOSE ROOFSJ THEY HAVE BURNED INCENSE UNTO ALL THE HOST OF HEAVEN, AND HAVE POURED OUT! DRINK OFFERINGS UNTO OTHER GODS.TE# 14 THEN CAME JEREMIAH FROM TOPHET, WHITHER THE LORD HAD SENT HIM TO L PROPHESY; AND HE STOOD IN THE COURT OF THE LORDS HOUSE; AND SAID TO ALL THE PEOPLE,J# 15 THUS SAITH THE LORD OF HOSTS, THE GOD OF ISRAEL; BEHOLD, I WILL BRINGJ UPON THIS CITY AND UPON ALL HER TOWNS ALL THE EVIL THAT I HAVE PRONOUNCEDM AGAINST IT, BECAUSE THEY HAVE HARDENED THEIR NECKS, THAT THEY MIGHT NOT HEARO MY WORDS. = CHAPTER 20 N# 1 NOW PASHUR THE SON OF IMMER THE PRIEST, WHO WAS ALSO CHIEF GOVERNOR IN THE@ HOUSE OF THE LORD, HEARD THAT JEREMIAH PROPHESIED THESE THINGS.J# 2 THEN PASHUR SMOTE JEREMIAH THE PROPHET, AND PUT HIM IN THE STOCKS THATG WERE IN THE HIGH GATE OF BENJAMIN, WHICH WAS BY THE HOUSE OF THE LORD.DM# 3 AND IT CAME TO PASS ON THE MORROW, THAT PASHUR BROUGHT FORTH JEREMIAH OUTEN OF THE STOCKS. THEN SAID JEREMIAH UNTO HIM, THE LORD HATH NOT CALLED THY NAME PASHUR, BUT MAGORMISSABIB.J# 4 FOR THUS SAITH THE LORD, BEHOLD, I WILL MAKE THEE A TERROR TO THYSELF,K AND TO ALL THY FRIENDS: AND THEY SHALL FALL BY THE SWORD OF THEIR ENEMIES,EK AND THINE EYES SHALL BEHOLD IT: AND I WILL GIVE ALL JUDAH INTO THE HAND OFNM THE KING OF BABYLON, AND HE SHALL CARRY THEM CAPTIVE INTO BABYLON, AND SHALL  SLAY THEM WITH THE SWORD.F# 5 MOREOVER I WILL DELIVER ALL THE STRENGTH OF THIS CITY, AND ALL THEL LABOURS THEREOF, AND ALL THE PRECIOUS THINGS THEREOF, AND ALL THE TREASURESN OF THE KINGS OF JUDAH WILL I GIVE INTO THE HAND OF THEIR ENEMIES, WHICH SHALL6 SPOIL THEM, AND TAKE THEM, AND CARRY THEM TO BABYLON.E# 6 AND THOU, PASHUR, AND ALL THAT DWELL IN THINE HOUSE SHALL GO INTOII CAPTIVITY: AND THOU SHALT COME TO BABYLON, AND THERE THOU SHALT DIE, ANDED SHALT BE BURIED THERE, THOU, AND ALL THY FRIENDS, TO WHOM THOU HAST PROPHESIED LIES.VM# 7 O LORD, THOU HAST DECEIVED ME, AND I WAS DECEIVED; THOU ART STRONGER THAN E I, AND HAST PREVAILED: I AM IN DERISION DAILY, EVERY ONE MOCKETH ME.GK# 8 FOR SINCE I SPAKE, I CRIED OUT, I CRIED VIOLENCE AND SPOIL; BECAUSE THEEE WORD OF THE LORD WAS MADE A REPROACH UNTO ME, AND A DERISION, DAILY. J# 9 THEN I SAID, I WILL NOT MAKE MENTION OF HIM, NOR SPEAK ANY MORE IN HISL NAME. BUT HIS WORD WAS IN MINE HEART AS A BURNING FIRE SHUT UP IN MY BONES,7 AND I WAS WEARY WITH FORBEARING, AND I COULD NOT STAY.L# 10 FOR I HEARD THE DEFAMING OF MANY, FEAR ON EVERY SIDE. REPORT, SAY THEY,H AND WE WILL REPORT IT. ALL MY FAMILIARS WATCHED FOR MY HALTING, SAYING,J PERADVENTURE HE WILL BE ENTICED, AND WE SHALL PREVAIL AGAINST HIM, AND WE SHALL TAKE OUR REVENGE ON HIM.PC# 11 BUT THE LORD IS WITH ME AS A MIGHTY TERRIBLE ONE: THEREFORE MYAM PERSECUTORS SHALL STUMBLE, AND THEY SHALL NOT PREVAIL: THEY SHALL BE GREATLYEM ASHAMED; FOR THEY SHALL NOT PROSPER: THEIR EVERLASTING CONFUSION SHALL NEVERN BE FORGOTTEN.M# 12 BUT, O LORD OF HOSTS, THAT TRIE00vH;8<%X>%+%O-%TADATADATAST THE RIGHTEOUS, AND SEEST THE REINS ANDEL THE HEART, LET ME SEE THY VENGEANCE ON THEM: FOR UNTO THEE HAVE I OPENED MY CAUSE.TK# 13 SING UNTO THE LORD, PRAISE YE THE LORD: FOR HE HATH DELIVERED THE SOUL ( OF THE POOR FROM THE HAND OF EVILDOERS.L# 14 CURSED BE THE DAY WHEREIN I WAS BORN: LET NOT THE DAY WHEREIN MY MOTHER BARE ME BE BLESSED.L# 15 CURSED BE THE MAN WHO BROUGHT TIDINGS TO MY FATHER, SAYING, A MAN CHILD) IS BORN UNTO THEE; MAKING HIM VERY GLAD.EM# 16 AND LET THAT MAN BE AS THE CITIES WHICH THE LORD OVERTHREW, AND REPENTEDNL NOT: AND LET HIM HEAR THE CRY IN THE MORNING, AND THE SHOUTING AT NOONTIDE;L# 17 BECAUSE HE SLEW ME NOT FROM THE WOMB; OR THAT MY MOTHER MIGHT HAVE BEEN3 MY GRAVE, AND HER WOMB TO BE ALWAYS GREAT WITH ME..M# 18 WHEREFORE CAME I FORTH OUT OF THE WOMB TO SEE LABOUR AND SORROW, THAT MY$ DAYS SHOULD BE CONSUMED WITH SHAME? = CHAPTER 21 GL# 1 THE WORD WHICH CAME UNTO JEREMIAH FROM THE LORD, WHEN KING ZEDEKIAH SENTK UNTO HIM PASHUR THE SON OF MELCHIAH, AND ZEPHANIAH THE SON OF MAASEIAH THEA PRIEST, SAYING,H# 2 ENQUIRE, I PRAY THEE, OF THE LORD FOR US; FOR NEBUCHADREZZAR KING OFH BABYLON MAKETH WAR AGAINST US; IF SO BE THAT THE LORD WILL DEAL WITH US@ ACCORDING TO ALL HIS WONDROUS WORKS, THAT HE MAY GO UP FROM US.@# 3 THEN SAID JEREMIAH UNTO THEM, THUS SHALL YE SAY TO ZEDEKIAH:K# 4 THUS SAITH THE LORD GOD OF ISRAEL; BEHOLD, I WILL TURN BACK THE WEAPONSHF OF WAR THAT ARE IN YOUR HANDS, WHEREWITH YE FIGHT AGAINST THE KING OFM BABYLON, AND AGAINST THE CHALDEANS, WHICH BESIEGE YOU WITHOUT THE WALLS, ANDN2 I WILL ASSEMBLE THEM INTO THE MIDST OF THIS CITY.L# 5 AND I MYSELF WILL FIGHT AGAINST YOU WITH AN OUTSTRETCHED HAND AND WITH A< STRONG ARM, EVEN IN ANGER, AND IN FURY, AND IN GREAT WRATH.K# 6 AND I WILL SMITE THE INHABITANTS OF THIS CITY, BOTH MAN AND BEAST: THEY ! SHALL DIE OF A GREAT PESTILENCE.RM# 7 AND AFTERWARD, SAITH THE LORD, I WILL DELIVER ZEDEKIAH KING OF JUDAH, ANDRI HIS SERVANTS, AND THE PEOPLE, AND SUCH AS ARE LEFT IN THIS CITY FROM THEHB PESTILENCE, FROM THE SWORD, AND FROM THE FAMINE, INTO THE HAND OFM NEBUCHADREZZAR KING OF BABYLON, AND INTO THE HAND OF THEIR ENEMIES, AND INTOHN THE HAND OF THOSE THAT SEEK THEIR LIFE: AND HE SHALL SMITE THEM WITH THE EDGEJ OF THE SWORD; HE SHALL NOT SPARE THEM, NEITHER HAVE PITY, NOR HAVE MERCY.K# 8 AND UNTO THIS PEOPLE THOU SHALT SAY, THUS SAITH THE LORD; BEHOLD, I SETH2 BEFORE YOU THE WAY OF LIFE, AND THE WAY OF DEATH.K# 9 HE THAT ABIDETH IN THIS CITY SHALL DIE BY THE SWORD, AND BY THE FAMINE,HK AND BY THE PESTILENCE: BUT HE THAT GOETH OUT, AND FALLETH TO THE CHALDEANSAL THAT BESIEGE YOU, HE SHALL LIVE, AND HIS LIFE SHALL BE UNTO HIM FOR A PREY.I# 10 FOR I HAVE SET MY FACE AGAINST THIS CITY FOR EVIL, AND NOT FOR GOOD,OL SAITH THE LORD: IT SHALL BE GIVEN INTO THE HAND OF THE KING OF BABYLON, AND HE SHALL BURN IT WITH FIRE.J# 11 AND TOUCHING THE HOUSE OF THE KING OF JUDAH, SAY, HEAR YE THE WORD OF THE LORD;L# 12 O HOUSE OF DAVID, THUS SAITH THE LORD; EXECUTE JUDGMENT IN THE MORNING,J AND DELIVER HIM THAT IS SPOILED OUT OF THE HAND OF THE OPPRESSOR, LEST MYM FURY GO OUT LIKE FIRE, AND BURN THAT NONE CAN QUENCH IT, BECAUSE OF THE EVILA OF YOUR DOINGS.K# 13 BEHOLD, I AM AGAINST THEE, O INHABITANT OF THE VALLEY, AND ROCK OF THELI PLAIN, SAITH THE LORD; WHICH SAY, WHO SHALL COME DOWN AGAINST US? OR WHO " SHALL ENTER INTO OUR HABITATIONS?K# 14 BUT I WILL PUNISH YOU ACCORDING TO THE FRUIT OF YOUR DOINGS, SAITH THEON LORD: AND I WILL KINDLE A FIRE IN THE FOREST THEREOF, AND IT SHALL DEVOUR ALL THINGS ROUND ABOUT IT.O = CHAPTER 22 OM# 1 THUS SAITH THE LORD; GO DOWN TO THE HOUSE OF THE KING OF JUDAH, AND SPEAK  THERE THIS WORD,EJ# 2 AND SAY, HEAR THE WORD OF THE LORD, O KING OF JUDAH, THAT SITTEST UPONM THE THRONE OF DAVID, THOU, AND THY SERVANTS, AND THY PEOPLE THAT ENTER IN BYN THESE GATES: K# 3 THUS SAITH THE LORD; EXECUTE YE JUDGMENT AND RIGHTEOUSNESS, AND DELIVERGN THE SPOILED OUT OF THE HAND OF THE OPPRESSOR: AND DO NO WRONG, DO NO VIOLENCEL TO THE STRANGER, THE FATHERLESS, NOR TH00vP;:D%5%T6%! !E WIDOW, NEITHER SHED INNOCENT BLOOD IN THIS PLACE.IM# 4 FOR IF YE DO THIS THING INDEED, THEN SHALL THERE ENTER IN BY THE GATES OF M THIS HOUSE KINGS SITTING UPON THE THRONE OF DAVID, RIDING IN CHARIOTS AND ONP. HORSES, HE, AND HIS SERVANTS, AND HIS PEOPLE.K# 5 BUT IF YE WILL NOT HEAR THESE WORDS, I SWEAR BY MYSELF, SAITH THE LORD,E+ THAT THIS HOUSE SHALL BECOME A DESOLATION.IJ# 6 FOR THUS SAITH THE LORD UNTO THE KINGS HOUSE OF JUDAH; THOU ART GILEADL UNTO ME, AND THE HEAD OF LEBANON: YET SURELY I WILL MAKE THEE A WILDERNESS,$ AND CITIES WHICH ARE NOT INHABITED.K# 7 AND I WILL PREPARE DESTROYERS AGAINST THEE, EVERY ONE WITH HIS WEAPONS:OH AND THEY SHALL CUT DOWN THY CHOICE CEDARS, AND CAST THEM INTO THE FIRE.M# 8 AND MANY NATIONS SHALL PASS BY THIS CITY, AND THEY SHALL SAY EVERY MAN TO G HIS NEIGHBOUR, WHEREFORE HATH THE LORD DONE THUS UNTO THIS GREAT CITY? J# 9 THEN THEY SHALL ANSWER, BECAUSE THEY HAVE FORSAKEN THE COVENANT OF THE< LORD THEIR GOD, AND WORSHIPPED OTHER GODS, AND SERVED THEM.M# 10 WEEP YE NOT FOR THE DEAD, NEITHER BEMOAN HIM: BUT WEEP SORE FOR HIM THAT E GOETH AWAY: FOR HE SHALL RETURN NO MORE, NOR SEE HIS NATIVE COUNTRY.DG# 11 FOR THUS SAITH THE LORD TOUCHING SHALLUM THE SON OF JOSIAH KING OF K JUDAH, WHICH REIGNED INSTEAD OF JOSIAH HIS FATHER, WHICH WENT FORTH OUT OFH2 THIS PLACE; HE SHALL NOT RETURN THITHER ANY MORE:I# 12 BUT HE SHALL DIE IN THE PLACE WHITHER THEY HAVE LED HIM CAPTIVE, ANDT SHALL SEE THIS LAND NO MORE. E# 13 WOE UNTO HIM THAT BUILDETH HIS HOUSE BY UNRIGHTEOUSNESS, AND HISTH CHAMBERS BY WRONG; THAT USETH HIS NEIGHBOURS SERVICE WITHOUT WAGES, AND GIVETH HIM NOT FOR HIS WORK;EM# 14 THAT SAITH, I WILL BUILD ME A WIDE HOUSE AND LARGE CHAMBERS, AND CUTTETHFJ HIM OUT WINDOWS; AND IT IS CIELED WITH CEDAR, AND PAINTED WITH VERMILION.I# 15 SHALT THOU REIGN, BECAUSE THOU CLOSEST THYSELF IN CEDAR? DID NOT THY2M FATHER EAT AND DRINK, AND DO JUDGMENT AND JUSTICE, AND THEN IT WAS WELL WITHS HIM? J# 16 HE JUDGED THE CAUSE OF THE POOR AND NEEDY; THEN IT WAS WELL WITH HIM:) WAS NOT THIS TO KNOW ME? SAITH THE LORD.HM# 17 BUT THINE EYES AND THINE HEART ARE NOT BUT FOR THY COVETOUSNESS, AND FORTH TO SHED INNOCENT BLOOD, AND FOR OPPRESSION, AND FOR VIOLENCE, TO DO IT.I# 18 THEREFORE THUS SAITH THE LORD CONCERNING JEHOIAKIM THE SON OF JOSIAHL KING OF JUDAH; THEY SHALL NOT LAMENT FOR HIM, SAYING, AH MY BROTHER! OR, AHJ SISTER! THEY SHALL NOT LAMENT FOR HIM, SAYING, AH LORD! OR, AH HIS GLORY!G# 19 HE SHALL BE BURIED WITH THE BURIAL OF AN ASS, DRAWN AND CAST FORTHL BEYOND THE GATES OF JERUSALEM. M# 20 GO UP TO LEBANON, AND CRY; AND LIFT UP THY VOICE IN BASHAN, AND CRY FROMO0 THE PASSAGES: FOR ALL THY LOVERS ARE DESTROYED.K# 21 I SPAKE UNTO THEE IN THY PROSPERITY; BUT THOU SAIDST, I WILL NOT HEAR.OK THIS HATH BEEN THY MANNER FROM THY YOUTH, THAT THOU OBEYEDST NOT MY VOICE.MH# 22 THE WIND SHALL EAT UP ALL THY PASTORS, AND THY LOVERS SHALL GO INTOH CAPTIVITY: SURELY THEN SHALT THOU BE ASHAMED AND CONFOUNDED FOR ALL THY WICKEDNESS.E# 23 O INHABITANT OF LEBANON, THAT MAKEST THY NEST IN THE CEDARS, HOWGL GRACIOUS SHALT THOU BE WHEN PANGS COME UPON THEE, THE PAIN AS OF A WOMAN IN TRAVAIL!FJ# 24 AS I LIVE, SAITH THE LORD, THOUGH CONIAH THE SON OF JEHOIAKIM KING OFI JUDAH WERE THE SIGNET UPON MY RIGHT HAND, YET WOULD I PLUCK THEE THENCE;TL# 25 AND I WILL GIVE THEE INTO THE HAND OF THEM THAT SEEK THY LIFE, AND INTO@ THE HAND OF THEM WHOSE FACE THOU FEAREST, EVEN INTO THE HAND OFD NEBUCHADREZZAR KING OF BABYLON, AND INTO THE HAND OF THE CHALDEANS.J# 26 AND I WILL CAST THEE OUT, AND THY MOTHER THAT BARE THEE, INTO ANOTHER9 COUNTRY, WHERE YE WERE NOT BORN; AND THERE SHALL YE DIE.L# 27 BUT TO THE LAND WHEREUNTO THEY DESIRE TO RETURN, THITHER SHALL THEY NOT RETURN.L# 28 IS THIS MAN CONIAH A DESPISED BROKEN IDOL? IS HE A VESSEL WHEREIN IS NOL PLEASURE? WHEREFORE ARE THEY CAST OUT, HE AND HIS SEED, AND ARE CAST INTO A LAND WHICH THEY KNOW NOT?6# 29 O EARTH, EARTH, EARTH, HEAR THE WORD OF THE LORD.K# 30 THUS SAITH THE LORD, WRITE YE THIS MAN CHILDLESS, A M00vX;8<%X>%+%O-%TADATADATAAN THAT SHALL NOTUL PROSPER IN HIS DAYS: FOR NO MAN OF HIS SEED SHALL PROSPER, SITTING UPON THE/ THRONE OF DAVID, AND RULING ANY MORE IN JUDAH.D = CHAPTER 23 M# 1 WOE BE UNTO THE PASTORS THAT DESTROY AND SCATTER THE SHEEP OF MY PASTURE!E SAITH THE LORD.M# 2 THEREFORE THUS SAITH THE LORD GOD OF ISRAEL AGAINST THE PASTORS THAT FEEDHJ MY PEOPLE; YE HAVE SCATTERED MY FLOCK, AND DRIVEN THEM AWAY, AND HAVE NOTK VISITED THEM: BEHOLD, I WILL VISIT UPON YOU THE EVIL OF YOUR DOINGS, SAITH THE LORD.L# 3 AND I WILL GATHER THE REMNANT OF MY FLOCK OUT OF ALL COUNTRIES WHITHER IN HAVE DRIVEN THEM, AND WILL BRING THEM AGAIN TO THEIR FOLDS; AND THEY SHALL BE FRUITFUL AND INCREASE.TI# 4 AND I WILL SET UP SHEPHERDS OVER THEM WHICH SHALL FEED THEM: AND THEYEN SHALL FEAR NO MORE, NOR BE DISMAYED, NEITHER SHALL THEY BE LACKING, SAITH THE LORD.I# 5 BEHOLD, THE DAYS COME, SAITH THE LORD, THAT I WILL RAISE UNTO DAVID AH RIGHTEOUS BRANCH, AND A KING SHALL REIGN AND PROSPER, AND SHALL EXECUTE# JUDGMENT AND JUSTICE IN THE EARTH. M# 6 IN HIS DAYS JUDAH SHALL BE SAVED, AND ISRAEL SHALL DWELL SAFELY: AND THISWD IS HIS NAME WHEREBY HE SHALL BE CALLED, THE LORD OUR RIGHTEOUSNESS.M# 7 THEREFORE, BEHOLD, THE DAYS COME, SAITH THE LORD, THAT THEY SHALL NO MOREDN SAY, THE LORD LIVETH, WHICH BROUGHT UP THE CHILDREN OF ISRAEL OUT OF THE LAND OF EGYPT;H# 8 BUT, THE LORD LIVETH, WHICH BROUGHT UP AND WHICH LED THE SEED OF THEK HOUSE OF ISRAEL OUT OF THE NORTH COUNTRY, AND FROM ALL COUNTRIES WHITHER IE9 HAD DRIVEN THEM; AND THEY SHALL DWELL IN THEIR OWN LAND.AH# 9 MINE HEART WITHIN ME IS BROKEN BECAUSE OF THE PROPHETS; ALL MY BONESH SHAKE; I AM LIKE A DRUNKEN MAN, AND LIKE A MAN WHOM WINE HATH OVERCOME,? BECAUSE OF THE LORD, AND BECAUSE OF THE WORDS OF HIS HOLINESS.YI# 10 FOR THE LAND IS FULL OF ADULTERERS; FOR BECAUSE OF SWEARING THE LANDH MOURNETH; THE PLEASANT PLACES OF THE WILDERNESS ARE DRIED UP, AND THEIR. COURSE IS EVIL, AND THEIR FORCE IS NOT RIGHT.K# 11 FOR BOTH PROPHET AND PRIEST ARE PROFANE; YEA, IN MY HOUSE HAVE I FOUNDE" THEIR WICKEDNESS, SAITH THE LORD.M# 12 WHEREFORE THEIR WAY SHALL BE UNTO THEM AS SLIPPERY WAYS IN THE DARKNESS: L THEY SHALL BE DRIVEN ON, AND FALL THEREIN: FOR I WILL BRING EVIL UPON THEM,3 EVEN THE YEAR OF THEIR VISITATION, SAITH THE LORD.TI# 13 AND I HAVE SEEN FOLLY IN THE PROPHETS OF SAMARIA; THEY PROPHESIED IN;* BAAL, AND CAUSED MY PEOPLE ISRAEL TO ERR.J# 14 I HAVE SEEN ALSO IN THE PROPHETS OF JERUSALEM AN HORRIBLE THING: THEYE COMMIT ADULTERY, AND WALK IN LIES: THEY STRENGTHEN ALSO THE HANDS OFTK EVILDOERS, THAT NONE DOTH RETURN FROM HIS WICKEDNESS; THEY ARE ALL OF THEM ; UNTO ME AS SODOM, AND THE INHABITANTS THEREOF AS GOMORRAH. L# 15 THEREFORE THUS SAITH THE LORD OF HOSTS CONCERNING THE PROPHETS; BEHOLD,K I WILL FEED THEM WITH WORMWOOD, AND MAKE THEM DRINK THE WATER OF GALL: FORAL FROM THE PROPHETS OF JERUSALEM IS PROFANENESS GONE FORTH INTO ALL THE LAND.M# 16 THUS SAITH THE LORD OF HOSTS, HEARKEN NOT UNTO THE WORDS OF THE PROPHETSLM THAT PROPHESY UNTO YOU: THEY MAKE YOU VAIN: THEY SPEAK A VISION OF THEIR OWNN- HEART, AND NOT OUT OF THE MOUTH OF THE LORD. K# 17 THEY SAY STILL UNTO THEM THAT DESPISE ME, THE LORD HATH SAID, YE SHALLTN HAVE PEACE; AND THEY SAY UNTO EVERY ONE THAT WALKETH AFTER THE IMAGINATION OF, HIS OWN HEART, NO EVIL SHALL COME UPON YOU.J# 18 FOR WHO HATH STOOD IN THE COUNSEL OF THE LORD, AND HATH PERCEIVED AND8 HEARD HIS WORD? WHO HATH MARKED HIS WORD, AND HEARD IT?K# 19 BEHOLD, A WHIRLWIND OF THE LORD IS GONE FORTH IN FURY, EVEN A GRIEVOUS A WHIRLWIND: IT SHALL FALL GRIEVOUSLY UPON THE HEAD OF THE WICKED.UM# 20 THE ANGER OF THE LORD SHALL NOT RETURN, UNTIL HE HAVE EXECUTED, AND TILLEI HE HAVE PERFORMED THE THOUGHTS OF HIS HEART: IN THE LATTER DAYS YE SHALLA CONSIDER IT PERFECTLY.OM# 21 I HAVE NOT SENT THESE PROPHETS, YET THEY RAN: I HAVE NOT SPOKEN TO THEM,T YET THEY PROPHESIED. M# 22 BUT IF THEY HAD STOOD IN MY COUNSEL, AND HAD CAUSED MY PEOPLE TO HEAR MY?K WORDS, THEN THEY SHOULD HAVE TURNED THEM FROM THEIR EVIL WAY, AND FROM THE  E00v`;:D%5%T6%! !VIL OF THEIR DOINGS.@# 23 AM I A GOD AT HAND, SAITH THE LORD, AND NOT A GOD AFAR OFF?J# 24 CAN ANY HIDE HIMSELF IN SECRET PLACES THAT I SHALL NOT SEE HIM? SAITH: THE LORD. DO NOT I FILL HEAVEN AND EARTH? SAITH THE LORD.H# 25 I HAVE HEARD WHAT THE PROPHETS SAID, THAT PROPHESY LIES IN MY NAME,( SAYING, I HAVE DREAMED, I HAVE DREAMED.L# 26 HOW LONG SHALL THIS BE IN THE HEART OF THE PROPHETS THAT PROPHESY LIES?9 YEA, THEY ARE PROPHETS OF THE DECEIT OF THEIR OWN HEART;RK# 27 WHICH THINK TO CAUSE MY PEOPLE TO FORGET MY NAME BY THEIR DREAMS WHICHHN THEY TELL EVERY MAN TO HIS NEIGHBOUR, AS THEIR FATHERS HAVE FORGOTTEN MY NAME FOR BAAL.M# 28 THE PROPHET THAT HATH A DREAM, LET HIM TELL A DREAM; AND HE THAT HATH MYTN WORD, LET HIM SPEAK MY WORD FAITHFULLY. WHAT IS THE CHAFF TO THE WHEAT? SAITH THE LORD.J# 29 IS NOT MY WORD LIKE AS A FIRE? SAITH THE LORD; AND LIKE A HAMMER THAT BREAKETH THE ROCK IN PIECES?EM# 30 THEREFORE, BEHOLD, I AM AGAINST THE PROPHETS, SAITH THE LORD, THAT STEALK' MY WORDS EVERY ONE FROM HIS NEIGHBOUR.TF# 31 BEHOLD, I AM AGAINST THE PROPHETS, SAITH THE LORD, THAT USE THEIR TONGUES, AND SAY, HE SAITH.J# 32 BEHOLD, I AM AGAINST THEM THAT PROPHESY FALSE DREAMS, SAITH THE LORD,I AND DO TELL THEM, AND CAUSE MY PEOPLE TO ERR BY THEIR LIES, AND BY THEIR M LIGHTNESS; YET I SENT THEM NOT, NOR COMMANDED THEM: THEREFORE THEY SHALL NOTD+ PROFIT THIS PEOPLE AT ALL, SAITH THE LORD.IG# 33 AND WHEN THIS PEOPLE, OR THE PROPHET, OR A PRIEST, SHALL ASK THEE,LL SAYING, WHAT IS THE BURDEN OF THE LORD? THOU SHALT THEN SAY UNTO THEM, WHAT1 BURDEN? I WILL EVEN FORSAKE YOU, SAITH THE LORD.RL# 34 AND AS FOR THE PROPHET, AND THE PRIEST, AND THE PEOPLE, THAT SHALL SAY,C THE BURDEN OF THE LORD, I WILL EVEN PUNISH THAT MAN AND HIS HOUSE.TG# 35 THUS SHALL YE SAY EVERY ONE TO HIS NEIGHBOUR, AND EVERY ONE TO HISCF BROTHER, WHAT HATH THE LORD ANSWERED? AND, WHAT HATH THE LORD SPOKEN?M# 36 AND THE BURDEN OF THE LORD SHALL YE MENTION NO MORE: FOR EVERY MANS WORDSK SHALL BE HIS BURDEN; FOR YE HAVE PERVERTED THE WORDS OF THE LIVING GOD, OFH THE LORD OF HOSTS OUR GOD.NJ# 37 THUS SHALT THOU SAY TO THE PROPHET, WHAT HATH THE LORD ANSWERED THEE? AND, WHAT HATH THE LORD SPOKEN?M# 38 BUT SINCE YE SAY, THE BURDEN OF THE LORD; THEREFORE THUS SAITH THE LORD; L BECAUSE YE SAY THIS WORD, THE BURDEN OF THE LORD, AND I HAVE SENT UNTO YOU,2 SAYING, YE SHALL NOT SAY, THE BURDEN OF THE LORD;F# 39 THEREFORE, BEHOLD, I, EVEN I, WILL UTTERLY FORGET YOU, AND I WILLM FORSAKE YOU, AND THE CITY THAT I GAVE YOU AND YOUR FATHERS, AND CAST YOU OUTN OF MY PRESENCE:G# 40 AND I WILL BRING AN EVERLASTING REPROACH UPON YOU, AND A PERPETUALH% SHAME, WHICH SHALL NOT BE FORGOTTEN.T = CHAPTER 24 EL# 1 THE LORD SHEWED ME, AND, BEHOLD, TWO BASKETS OF FIGS WERE SET BEFORE THEJ TEMPLE OF THE LORD, AFTER THAT NEBUCHADREZZAR KING OF BABYLON HAD CARRIEDM AWAY CAPTIVE JECONIAH THE SON OF JEHOIAKIM KING OF JUDAH, AND THE PRINCES OFOL JUDAH, WITH THE CARPENTERS AND SMITHS, FROM JERUSALEM, AND HAD BROUGHT THEM TO BABYLON.J# 2 ONE BASKET HAD VERY GOOD FIGS, EVEN LIKE THE FIGS THAT ARE FIRST RIPE:K AND THE OTHER BASKET HAD VERY NAUGHTY FIGS, WHICH COULD NOT BE EATEN, THEYO WERE SO BAD.TL# 3 THEN SAID THE LORD UNTO ME, WHAT SEEST THOU, JEREMIAH? AND I SAID, FIGS;N THE GOOD FIGS, VERY GOOD; AND THE EVIL, VERY EVIL, THAT CANNOT BE EATEN, THEY ARE SO EVIL.A4# 4 AGAIN THE WORD OF THE LORD CAME UNTO ME, SAYING,K# 5 THUS SAITH THE LORD, THE GOD OF ISRAEL; LIKE THESE GOOD FIGS, SO WILL IMN ACKNOWLEDGE THEM THAT ARE CARRIED AWAY CAPTIVE OF JUDAH, WHOM I HAVE SENT OUT= OF THIS PLACE INTO THE LAND OF THE CHALDEANS FOR THEIR GOOD.YL# 6 FOR I WILL SET MINE EYES UPON THEM FOR GOOD, AND I WILL BRING THEM AGAINN TO THIS LAND: AND I WILL BUILD THEM, AND NOT PULL THEM DOWN; AND I WILL PLANT THEM, AND NOT PLUCK THEM UP.VJ# 7 AND I WILL GIVE THEM AN HEART TO KNOW ME, THAT I AM THE LORD: AND THEYK SHALL BE MY PEOPLE, AND I WILL BE THEIR GOD: FOR THEY SHALL RETURN UNTO MEE WITH THEIR WHOLE HEART.I# 8 AND AS THE EVIL FIGS, WHICH CANNOT BE EA00vh;8<%X>%+%O-%TADATADATATEN, THEY ARE SO EVIL; SURELYOH THUS SAITH THE LORD, SO WILL I GIVE ZEDEKIAH THE KING OF JUDAH, AND HISJ PRINCES, AND THE RESIDUE OF JERUSALEM, THAT REMAIN IN THIS LAND, AND THEM! THAT DWELL IN THE LAND OF EGYPT:NL# 9 AND I WILL DELIVER THEM TO BE REMOVED INTO ALL THE KINGDOMS OF THE EARTHL FOR THEIR HURT, TO BE A REPROACH AND A PROVERB, A TAUNT AND A CURSE, IN ALL# PLACES WHITHER I SHALL DRIVE THEM. K# 10 AND I WILL SEND THE SWORD, THE FAMINE, AND THE PESTILENCE, AMONG THEM, K TILL THEY BE CONSUMED FROM OFF THE LAND THAT I GAVE UNTO THEM AND TO THEIR FATHERS.I = CHAPTER 25 L# 1 THE WORD THAT CAME TO JEREMIAH CONCERNING ALL THE PEOPLE OF JUDAH IN THEM FOURTH YEAR OF JEHOIAKIM THE SON OF JOSIAH KING OF JUDAH, THAT WAS THE FIRSTR( YEAR OF NEBUCHADREZZAR KING OF BABYLON;M# 2 THE WHICH JEREMIAH THE PROPHET SPAKE UNTO ALL THE PEOPLE OF JUDAH, AND TOR* ALL THE INHABITANTS OF JERUSALEM, SAYING,J# 3 FROM THE THIRTEENTH YEAR OF JOSIAH THE SON OF AMON KING OF JUDAH, EVENJ UNTO THIS DAY, THAT IS THE THREE AND TWENTIETH YEAR, THE WORD OF THE LORDN HATH COME UNTO ME, AND I HAVE SPOKEN UNTO YOU, RISING EARLY AND SPEAKING; BUT YE HAVE NOT HEARKENED.AI# 4 AND THE LORD HATH SENT UNTO YOU ALL HIS SERVANTS THE PROPHETS, RISINGAL EARLY AND SENDING THEM; BUT YE HAVE NOT HEARKENED, NOR INCLINED YOUR EAR TO HEAR.J# 5 THEY SAID, TURN YE AGAIN NOW EVERY ONE FROM HIS EVIL WAY, AND FROM THEM EVIL OF YOUR DOINGS, AND DWELL IN THE LAND THAT THE LORD HATH GIVEN UNTO YOUF' AND TO YOUR FATHERS FOR EVER AND EVER: G# 6 AND GO NOT AFTER OTHER GODS TO SERVE THEM, AND TO WORSHIP THEM, AND K PROVOKE ME NOT TO ANGER WITH THE WORKS OF YOUR HANDS; AND I WILL DO YOU NOA HURT.L# 7 YET YE HAVE NOT HEARKENED UNTO ME, SAITH THE LORD; THAT YE MIGHT PROVOKE; ME TO ANGER WITH THE WORKS OF YOUR HANDS TO YOUR OWN HURT. H# 8 THEREFORE THUS SAITH THE LORD OF HOSTS; BECAUSE YE HAVE NOT HEARD MY WORDS,RI# 9 BEHOLD, I WILL SEND AND TAKE ALL THE FAMILIES OF THE NORTH, SAITH THENN LORD, AND NEBUCHADREZZAR THE KING OF BABYLON, MY SERVANT, AND WILL BRING THEMN AGAINST THIS LAND, AND AGAINST THE INHABITANTS THEREOF, AND AGAINST ALL THESEE NATIONS ROUND ABOUT, AND WILL UTTERLY DESTROY THEM, AND MAKE THEM ANO9 ASTONISHMENT, AND AN HISSING, AND PERPETUAL DESOLATIONS.H# 10 MOREOVER I WILL TAKE FROM THEM THE VOICE OF MIRTH, AND THE VOICE OFM GLADNESS, THE VOICE OF THE BRIDEGROOM, AND THE VOICE OF THE BRIDE, THE SOUNDO0 OF THE MILLSTONES, AND THE LIGHT OF THE CANDLE.H# 11 AND THIS WHOLE LAND SHALL BE A DESOLATION, AND AN ASTONISHMENT; AND= THESE NATIONS SHALL SERVE THE KING OF BABYLON SEVENTY YEARS.AK# 12 AND IT SHALL COME TO PASS, WHEN SEVENTY YEARS ARE ACCOMPLISHED, THAT IYL WILL PUNISH THE KING OF BABYLON, AND THAT NATION, SAITH THE LORD, FOR THEIRD INIQUITY, AND THE LAND OF THE CHALDEANS, AND WILL MAKE IT PERPETUAL DESOLATIONS. I# 13 AND I WILL BRING UPON THAT LAND ALL MY WORDS WHICH I HAVE PRONOUNCED G AGAINST IT, EVEN ALL THAT IS WRITTEN IN THIS BOOK, WHICH JEREMIAH HATHH$ PROPHESIED AGAINST ALL THE NATIONS.J# 14 FOR MANY NATIONS AND GREAT KINGS SHALL SERVE THEMSELVES OF THEM ALSO:J AND I WILL RECOMPENSE THEM ACCORDING TO THEIR DEEDS, AND ACCORDING TO THE WORKS OF THEIR OWN HANDS.M# 15 FOR THUS SAITH THE LORD GOD OF ISRAEL UNTO ME; TAKE THE WINE CUP OF THISLN FURY AT MY HAND, AND CAUSE ALL THE NATIONS, TO WHOM I SEND THEE, TO DRINK IT.I# 16 AND THEY SHALL DRINK, AND BE MOVED, AND BE MAD, BECAUSE OF THE SWORDE THAT I WILL SEND AMONG THEM. G# 17 THEN TOOK I THE CUP AT THE LORDS HAND, AND MADE ALL THE NATIONS TOR' DRINK, UNTO WHOM THE LORD HAD SENT ME: K# 18 TO WIT, JERUSALEM, AND THE CITIES OF JUDAH, AND THE KINGS THEREOF, ANDSM THE PRINCES THEREOF, TO MAKE THEM A DESOLATION, AN ASTONISHMENT, AN HISSING,D AND A CURSE; AS IT IS THIS DAY;J# 19 PHARAOH KING OF EGYPT, AND HIS SERVANTS, AND HIS PRINCES, AND ALL HIS PEOPLE;M# 20 AND ALL THE MINGLED PEOPLE, AND ALL THE KINGS OF THE LAND OF UZ, AND ALL N THE KINGS OF THE LAND OF THE PHILISTINES, AND ASHKELON, AND AZZAH, AND EKRON, AND THE REMNANT OF ASHDOD,T/# 00vp;:D%5%T6%! !21 EDOM, AND MOAB, AND THE CHILDREN OF AMMON,8M# 22 AND ALL THE KINGS OF TYRUS, AND ALL THE KINGS OF ZIDON, AND THE KINGS OFP$ THE ISLES WHICH ARE BEYOND THE SEA,F# 23 DEDAN, AND TEMA, AND BUZ, AND ALL THAT ARE IN THE UTMOST CORNERS,I# 24 AND ALL THE KINGS OF ARABIA, AND ALL THE KINGS OF THE MINGLED PEOPLEP THAT DWELL IN THE DESERT,M# 25 AND ALL THE KINGS OF ZIMRI, AND ALL THE KINGS OF ELAM, AND ALL THE KINGSA OF THE MEDES,L# 26 AND ALL THE KINGS OF THE NORTH, FAR AND NEAR, ONE WITH ANOTHER, AND ALLN THE KINGDOMS OF THE WORLD, WHICH ARE UPON THE FACE OF THE EARTH: AND THE KING$ OF SHESHACH SHALL DRINK AFTER THEM.J# 27 THEREFORE THOU SHALT SAY UNTO THEM, THUS SAITH THE LORD OF HOSTS, THEI GOD OF ISRAEL; DRINK YE, AND BE DRUNKEN, AND SPUE, AND FALL, AND RISE NO 8 MORE, BECAUSE OF THE SWORD WHICH I WILL SEND AMONG YOU.L# 28 AND IT SHALL BE, IF THEY REFUSE TO TAKE THE CUP AT THINE HAND TO DRINK,F THEN SHALT THOU SAY UNTO THEM, THUS SAITH THE LORD OF HOSTS; YE SHALL CERTAINLY DRINK.NK# 29 FOR, LO, I BEGIN TO BRING EVIL ON THE CITY WHICH IS CALLED BY MY NAME,RL AND SHOULD YE BE UTTERLY UNPUNISHED? YE SHALL NOT BE UNPUNISHED: FOR I WILLJ CALL FOR A SWORD UPON ALL THE INHABITANTS OF THE EARTH, SAITH THE LORD OF HOSTS.EM# 30 THEREFORE PROPHESY THOU AGAINST THEM ALL THESE WORDS, AND SAY UNTO THEM, D THE LORD SHALL ROAR FROM ON HIGH, AND UTTER HIS VOICE FROM HIS HOLYH HABITATION; HE SHALL MIGHTILY ROAR UPON HIS HABITATION; HE SHALL GIVE AI SHOUT, AS THEY THAT TREAD THE GRAPES, AGAINST ALL THE INHABITANTS OF THEI EARTH.NJ# 31 A NOISE SHALL COME EVEN TO THE ENDS OF THE EARTH; FOR THE LORD HATH AN CONTROVERSY WITH THE NATIONS, HE WILL PLEAD WITH ALL FLESH; HE WILL GIVE THEM. THAT ARE WICKED TO THE SWORD, SAITH THE LORD.M# 32 THUS SAITH THE LORD OF HOSTS, BEHOLD, EVIL SHALL GO FORTH FROM NATION TOH NATION, AND A GREAT WHIRLWIND SHALL BE RAISED UP FROM THE COASTS OF THE EARTH.HM# 33 AND THE SLAIN OF THE LORD SHALL BE AT THAT DAY FROM ONE END OF THE EARTHTJ EVEN UNTO THE OTHER END OF THE EARTH: THEY SHALL NOT BE LAMENTED, NEITHER: GATHERED, NOR BURIED; THEY SHALL BE DUNG UPON THE GROUND.H# 34 HOWL, YE SHEPHERDS, AND CRY; AND WALLOW YOURSELVES IN THE ASHES, YEC PRINCIPAL OF THE FLOCK: FOR THE DAYS OF YOUR SLAUGHTER AND OF YOUR H DISPERSIONS ARE ACCOMPLISHED; AND YE SHALL FALL LIKE A PLEASANT VESSEL.J# 35 AND THE SHEPHERDS SHALL HAVE NO WAY TO FLEE, NOR THE PRINCIPAL OF THE FLOCK TO ESCAPE.AL# 36 A VOICE OF THE CRY OF THE SHEPHERDS, AND AN HOWLING OF THE PRINCIPAL OFD THE FLOCK, SHALL BE HEARD: FOR THE LORD HATH SPOILED THEIR PASTURE.K# 37 AND THE PEACEABLE HABITATIONS ARE CUT DOWN BECAUSE OF THE FIERCE ANGERA OF THE LORD.LI# 38 HE HATH FORSAKEN HIS COVERT, AS THE LION: FOR THEIR LAND IS DESOLATEUM BECAUSE OF THE FIERCENESS OF THE OPPRESSOR, AND BECAUSE OF HIS FIERCE ANGER. = CHAPTER 26 EN# 1 IN THE BEGINNING OF THE REIGN OF JEHOIAKIM THE SON OF JOSIAH KING OF JUDAH& CAME THIS WORD FROM THE LORD, SAYING,I# 2 THUS SAITH THE LORD; STAND IN THE COURT OF THE LORDS HOUSE, AND SPEAK L UNTO ALL THE CITIES OF JUDAH, WHICH COME TO WORSHIP IN THE LORDS HOUSE, ALLG THE WORDS THAT I COMMAND THEE TO SPEAK UNTO THEM; DIMINISH NOT A WORD:HL# 3 IF SO BE THEY WILL HEARKEN, AND TURN EVERY MAN FROM HIS EVIL WAY, THAT IJ MAY REPENT ME OF THE EVIL, WHICH I PURPOSE TO DO UNTO THEM BECAUSE OF THE EVIL OF THEIR DOINGS.M# 4 AND THOU SHALT SAY UNTO THEM, THUS SAITH THE LORD; IF YE WILL NOT HEARKENW7 TO ME, TO WALK IN MY LAW, WHICH I HAVE SET BEFORE YOU,DI# 5 TO HEARKEN TO THE WORDS OF MY SERVANTS THE PROPHETS, WHOM I SENT UNTO,H YOU, BOTH RISING UP EARLY, AND SENDING THEM, BUT YE HAVE NOT HEARKENED;L# 6 THEN WILL I MAKE THIS HOUSE LIKE SHILOH, AND WILL MAKE THIS CITY A CURSE! TO ALL THE NATIONS OF THE EARTH.WE# 7 SO THE PRIESTS AND THE PROPHETS AND ALL THE PEOPLE HEARD JEREMIAH / SPEAKING THESE WORDS IN THE HOUSE OF THE LORD.HK# 8 NOW IT CAME TO PASS, WHEN JEREMIAH HAD MADE AN END OF SPEAKING ALL THAT N THE LORD HAD COMMANDED HIM TO SPEAK UNTO ALL THE PEOPLE, THAT THE PRIESTS ANDI THE PROPH00vx;8<%X>%+%O-%TADATADATAETS AND ALL THE PEOPLE TOOK HIM, SAYING, THOU SHALT SURELY DIE.NH# 9 WHY HAST THOU PROPHESIED IN THE NAME OF THE LORD, SAYING, THIS HOUSEM SHALL BE LIKE SHILOH, AND THIS CITY SHALL BE DESOLATE WITHOUT AN INHABITANT?HL AND ALL THE PEOPLE WERE GATHERED AGAINST JEREMIAH IN THE HOUSE OF THE LORD.M# 10 WHEN THE PRINCES OF JUDAH HEARD THESE THINGS, THEN THEY CAME UP FROM THEEM KINGS HOUSE UNTO THE HOUSE OF THE LORD, AND SAT DOWN IN THE ENTRY OF THE NEWE GATE OF THE LORDS HOUSE.TL# 11 THEN SPAKE THE PRIESTS AND THE PROPHETS UNTO THE PRINCES AND TO ALL THEJ PEOPLE, SAYING, THIS MAN IS WORTHY TO DIE; FOR HE HATH PROPHESIED AGAINST, THIS CITY, AS YE HAVE HEARD WITH YOUR EARS.L# 12 THEN SPAKE JEREMIAH UNTO ALL THE PRINCES AND TO ALL THE PEOPLE, SAYING,N THE LORD SENT ME TO PROPHESY AGAINST THIS HOUSE AND AGAINST THIS CITY ALL THE WORDS THAT YE HAVE HEARD.M# 13 THEREFORE NOW AMEND YOUR WAYS AND YOUR DOINGS, AND OBEY THE VOICE OF THEEE LORD YOUR GOD; AND THE LORD WILL REPENT HIM OF THE EVIL THAT HE HATHE PRONOUNCED AGAINST YOU.I# 14 AS FOR ME, BEHOLD, I AM IN YOUR HAND: DO WITH ME AS SEEMETH GOOD AND  MEET UNTO YOU.DI# 15 BUT KNOW YE FOR CERTAIN, THAT IF YE PUT ME TO DEATH, YE SHALL SURELYEG BRING INNOCENT BLOOD UPON YOURSELVES, AND UPON THIS CITY, AND UPON THEML INHABITANTS THEREOF: FOR OF A TRUTH THE LORD HATH SENT ME UNTO YOU TO SPEAK ALL THESE WORDS IN YOUR EARS.I# 16 THEN SAID THE PRINCES AND ALL THE PEOPLE UNTO THE PRIESTS AND TO THEDN PROPHETS; THIS MAN IS NOT WORTHY TO DIE: FOR HE HATH SPOKEN TO US IN THE NAME OF THE LORD OUR GOD.OI# 17 THEN ROSE UP CERTAIN OF THE ELDERS OF THE LAND, AND SPAKE TO ALL THE ASSEMBLY OF THE PEOPLE, SAYING,K# 18 MICAH THE MORASTHITE PROPHESIED IN THE DAYS OF HEZEKIAH KING OF JUDAH,,L AND SPAKE TO ALL THE PEOPLE OF JUDAH, SAYING, THUS SAITH THE LORD OF HOSTS;M ZION SHALL BE PLOWED LIKE A FIELD, AND JERUSALEM SHALL BECOME HEAPS, AND THEA6 MOUNTAIN OF THE HOUSE AS THE HIGH PLACES OF A FOREST.M# 19 DID HEZEKIAH KING OF JUDAH AND ALL JUDAH PUT HIM AT ALL TO DEATH? DID HEHK NOT FEAR THE LORD, AND BESOUGHT THE LORD, AND THE LORD REPENTED HIM OF THEEL EVIL WHICH HE HAD PRONOUNCED AGAINST THEM? THUS MIGHT WE PROCURE GREAT EVIL AGAINST OUR SOULS.DM# 20 AND THERE WAS ALSO A MAN THAT PROPHESIED IN THE NAME OF THE LORD, URIJAH,K THE SON OF SHEMAIAH OF KIRJATHJEARIM, WHO PROPHESIED AGAINST THIS CITY ANDN: AGAINST THIS LAND ACCORDING TO ALL THE WORDS OF JEREMIAH.F# 21 AND WHEN JEHOIAKIM THE KING, WITH ALL HIS MIGHTY MEN, AND ALL THEH PRINCES, HEARD HIS WORDS, THE KING SOUGHT TO PUT HIM TO DEATH: BUT WHEN? URIJAH HEARD IT, HE WAS AFRAID, AND FLED, AND WENT INTO EGYPT;HL# 22 AND JEHOIAKIM THE KING SENT MEN INTO EGYPT, NAMELY, ELNATHAN THE SON OF- ACHBOR, AND CERTAIN MEN WITH HIM INTO EGYPT.SE# 23 AND THEY FETCHED FORTH URIJAH OUT OF EGYPT, AND BROUGHT HIM UNTOAM JEHOIAKIM THE KING; WHO SLEW HIM WITH THE SWORD, AND CAST HIS DEAD BODY INTO ! THE GRAVES OF THE COMMON PEOPLE.EJ# 24 NEVERTHELESS THE HAND OF AHIKAM THE SON OF SHAPHAN WAS WITH JEREMIAH,H THAT THEY SHOULD NOT GIVE HIM INTO THE HAND OF THE PEOPLE TO PUT HIM TO DEATH.A = CHAPTER 27 ,N# 1 IN THE BEGINNING OF THE REIGN OF JEHOIAKIM THE SON OF JOSIAH KING OF JUDAH4 CAME THIS WORD UNTO JEREMIAH FROM THE LORD, SAYING,K# 2 THUS SAITH THE LORD TO ME; MAKE THEE BONDS AND YOKES, AND PUT THEM UPONH THY NECK,J# 3 AND SEND THEM TO THE KING OF EDOM, AND TO THE KING OF MOAB, AND TO THEN KING OF THE AMMONITES, AND TO THE KING OF TYRUS, AND TO THE KING OF ZIDON, BYI THE HAND OF THE MESSENGERS WHICH COME TO JERUSALEM UNTO ZEDEKIAH KING OFA JUDAH; M# 4 AND COMMAND THEM TO SAY UNTO THEIR MASTERS, THUS SAITH THE LORD OF HOSTS,G8 THE GOD OF ISRAEL; THUS SHALL YE SAY UNTO YOUR MASTERS;M# 5 I HAVE MADE THE EARTH, THE MAN AND THE BEAST THAT ARE UPON THE GROUND, BY J MY GREAT POWER AND BY MY OUTSTRETCHED ARM, AND HAVE GIVEN IT UNTO WHOM IT SEEMED MEET UNTO ME. L# 6 AND NOW HAVE I GIVEN ALL THESE LANDS INTO THE HAND OF NEBUCHADNEZZAR THEJ KING OF BABYLON, MY SERVANT; AND THE BEASTS OF THE FIELD HAVE I GIVEN00v;:D%5%T6%! ! HIM ALSO TO SERVE HIM. M# 7 AND ALL NATIONS SHALL SERVE HIM, AND HIS SON, AND HIS SONS SON, UNTIL THETN VERY TIME OF HIS LAND COME: AND THEN MANY NATIONS AND GREAT KINGS SHALL SERVE THEMSELVES OF HIM.TI# 8 AND IT SHALL COME TO PASS, THAT THE NATION AND KINGDOM WHICH WILL NOT I SERVE THE SAME NEBUCHADNEZZAR THE KING OF BABYLON, AND THAT WILL NOT PUTEM THEIR NECK UNDER THE YOKE OF THE KING OF BABYLON, THAT NATION WILL I PUNISH,EN SAITH THE LORD, WITH THE SWORD, AND WITH THE FAMINE, AND WITH THE PESTILENCE,( UNTIL I HAVE CONSUMED THEM BY HIS HAND.K# 9 THEREFORE HEARKEN NOT YE TO YOUR PROPHETS, NOR TO YOUR DIVINERS, NOR TOAJ YOUR DREAMERS, NOR TO YOUR ENCHANTERS, NOR TO YOUR SORCERERS, WHICH SPEAK: UNTO YOU, SAYING, YE SHALL NOT SERVE THE KING OF BABYLON:L# 10 FOR THEY PROPHESY A LIE UNTO YOU, TO REMOVE YOU FAR FROM YOUR LAND; AND3 THAT I SHOULD DRIVE YOU OUT, AND YE SHOULD PERISH. H# 11 BUT THE NATIONS THAT BRING THEIR NECK UNDER THE YOKE OF THE KING OFI BABYLON, AND SERVE HIM, THOSE WILL I LET REMAIN STILL IN THEIR OWN LAND,T; SAITH THE LORD; AND THEY SHALL TILL IT, AND DWELL THEREIN.TI# 12 I SPAKE ALSO TO ZEDEKIAH KING OF JUDAH ACCORDING TO ALL THESE WORDS,ON SAYING, BRING YOUR NECKS UNDER THE YOKE OF THE KING OF BABYLON, AND SERVE HIM AND HIS PEOPLE, AND LIVE.K# 13 WHY WILL YE DIE, THOU AND THY PEOPLE, BY THE SWORD, BY THE FAMINE, ANDDL BY THE PESTILENCE, AS THE LORD HATH SPOKEN AGAINST THE NATION THAT WILL NOT SERVE THE KING OF BABYLON?NI# 14 THEREFORE HEARKEN NOT UNTO THE WORDS OF THE PROPHETS THAT SPEAK UNTOAM YOU, SAYING, YE SHALL NOT SERVE THE KING OF BABYLON: FOR THEY PROPHESY A LIEE UNTO YOU.L# 15 FOR I HAVE NOT SENT THEM, SAITH THE LORD, YET THEY PROPHESY A LIE IN MYH NAME; THAT I MIGHT DRIVE YOU OUT, AND THAT YE MIGHT PERISH, YE, AND THE! PROPHETS THAT PROPHESY UNTO YOU.AK# 16 ALSO I SPAKE TO THE PRIESTS AND TO ALL THIS PEOPLE, SAYING, THUS SAITHLL THE LORD; HEARKEN NOT TO THE WORDS OF YOUR PROPHETS THAT PROPHESY UNTO YOU,L SAYING, BEHOLD, THE VESSELS OF THE LORDS HOUSE SHALL NOW SHORTLY BE BROUGHT6 AGAIN FROM BABYLON: FOR THEY PROPHESY A LIE UNTO YOU.J# 17 HEARKEN NOT UNTO THEM; SERVE THE KING OF BABYLON, AND LIVE: WHEREFORE SHOULD THIS CITY BE LAID WASTE?K# 18 BUT IF THEY BE PROPHETS, AND IF THE WORD OF THE LORD BE WITH THEM, LETL THEM NOW MAKE INTERCESSION TO THE LORD OF HOSTS, THAT THE VESSELS WHICH AREM LEFT IN THE HOUSE OF THE LORD, AND IN THE HOUSE OF THE KING OF JUDAH, AND AT  JERUSALEM, GO NOT TO BABYLON.L# 19 FOR THUS SAITH THE LORD OF HOSTS CONCERNING THE PILLARS, AND CONCERNINGM THE SEA, AND CONCERNING THE BASES, AND CONCERNING THE RESIDUE OF THE VESSELS  THAT REMAIN IN THIS CITY.H# 20 WHICH NEBUCHADNEZZAR KING OF BABYLON TOOK NOT, WHEN HE CARRIED AWAYF CAPTIVE JECONIAH THE SON OF JEHOIAKIM KING OF JUDAH FROM JERUSALEM TO4 BABYLON, AND ALL THE NOBLES OF JUDAH AND JERUSALEM;I# 21 YEA, THUS SAITH THE LORD OF HOSTS, THE GOD OF ISRAEL, CONCERNING THEGN VESSELS THAT REMAIN IN THE HOUSE OF THE LORD, AND IN THE HOUSE OF THE KING OF JUDAH AND OF JERUSALEM;L# 22 THEY SHALL BE CARRIED TO BABYLON, AND THERE SHALL THEY BE UNTIL THE DAYJ THAT I VISIT THEM, SAITH THE LORD; THEN WILL I BRING THEM UP, AND RESTORE THEM TO THIS PLACE. = CHAPTER 28 G# 1 AND IT CAME TO PASS THE SAME YEAR, IN THE BEGINNING OF THE REIGN OFEI ZEDEKIAH KING OF JUDAH, IN THE FOURTH YEAR, AND IN THE FIFTH MONTH, THAT L HANANIAH THE SON OF AZUR THE PROPHET, WHICH WAS OF GIBEON, SPAKE UNTO ME INM THE HOUSE OF THE LORD, IN THE PRESENCE OF THE PRIESTS AND OF ALL THE PEOPLE,O SAYING,M# 2 THUS SPEAKETH THE LORD OF HOSTS, THE GOD OF ISRAEL, SAYING, I HAVE BROKENY! THE YOKE OF THE KING OF BABYLON.DL# 3 WITHIN TWO FULL YEARS WILL I BRING AGAIN INTO THIS PLACE ALL THE VESSELSL OF THE LORDS HOUSE, THAT NEBUCHADNEZZAR KING OF BABYLON TOOK AWAY FROM THIS$ PLACE, AND CARRIED THEM TO BABYLON:K# 4 AND I WILL BRING AGAIN TO THIS PLACE JECONIAH THE SON OF JEHOIAKIM KINGIL OF JUDAH, WITH ALL THE CAPTIVES OF JUDAH, THAT WENT INTO BABYLON, SAITH THE8 LORD: FOR I WILL BREAK THE YOKE OF 00v;8<%X>%+%O-%TADATADATATHE KING OF BABYLON.L# 5 THEN THE PROPHET JEREMIAH SAID UNTO THE PROPHET HANANIAH IN THE PRESENCEN OF THE PRIESTS, AND IN THE PRESENCE OF ALL THE PEOPLE THAT STOOD IN THE HOUSE OF THE LORD, ITJ# 6 EVEN THE PROPHET JEREMIAH SAID, AMEN: THE LORD DO SO: THE LORD PERFORMN THY WORDS WHICH THOU HAST PROPHESIED, TO BRING AGAIN THE VESSELS OF THE LORDSK HOUSE, AND ALL THAT IS CARRIED AWAY CAPTIVE, FROM BABYLON INTO THIS PLACE.SK# 7 NEVERTHELESS HEAR THOU NOW THIS WORD THAT I SPEAK IN THINE EARS, AND INE THE EARS OF ALL THE PEOPLE;K# 8 THE PROPHETS THAT HAVE BEEN BEFORE ME AND BEFORE THEE OF OLD PROPHESIED N BOTH AGAINST MANY COUNTRIES, AND AGAINST GREAT KINGDOMS, OF WAR, AND OF EVIL, AND OF PESTILENCE.NH# 9 THE PROPHET WHICH PROPHESIETH OF PEACE, WHEN THE WORD OF THE PROPHETN SHALL COME TO PASS, THEN SHALL THE PROPHET BE KNOWN, THAT THE LORD HATH TRULY SENT HIM.K# 10 THEN HANANIAH THE PROPHET TOOK THE YOKE FROM OFF THE PROPHET JEREMIAHSH NECK, AND BRAKE IT.M# 11 AND HANANIAH SPAKE IN THE PRESENCE OF ALL THE PEOPLE, SAYING, THUS SAITHPJ THE LORD; EVEN SO WILL I BREAK THE YOKE OF NEBUCHADNEZZAR KING OF BABYLONI FROM THE NECK OF ALL NATIONS WITHIN THE SPACE OF TWO FULL YEARS. AND THEO PROPHET JEREMIAH WENT HIS WAY.HI# 12 THEN THE WORD OF THE LORD CAME UNTO JEREMIAH THE PROPHET, AFTER THAT,J HANANIAH THE PROPHET HAD BROKEN THE YOKE FROM OFF THE NECK OF THE PROPHET JEREMIAH, SAYING,L# 13 GO AND TELL HANANIAH, SAYING, THUS SAITH THE LORD; THOU HAST BROKEN THE; YOKES OF WOOD; BUT THOU SHALT MAKE FOR THEM YOKES OF IRON.NK# 14 FOR THUS SAITH THE LORD OF HOSTS, THE GOD OF ISRAEL; I HAVE PUT A YOKEN@ OF IRON UPON THE NECK OF ALL THESE NATIONS, THAT THEY MAY SERVEK NEBUCHADNEZZAR KING OF BABYLON; AND THEY SHALL SERVE HIM: AND I HAVE GIVENO" HIM THE BEASTS OF THE FIELD ALSO.H# 15 THEN SAID THE PROPHET JEREMIAH UNTO HANANIAH THE PROPHET, HEAR NOW,L HANANIAH; THE LORD HATH NOT SENT THEE; BUT THOU MAKEST THIS PEOPLE TO TRUST IN A LIE.I# 16 THEREFORE THUS SAITH THE LORD; BEHOLD, I WILL CAST THEE FROM OFF THEYF FACE OF THE EARTH: THIS YEAR THOU SHALT DIE, BECAUSE THOU HAST TAUGHT REBELLION AGAINST THE LORD.E# 17 SO HANANIAH THE PROPHET DIED THE SAME YEAR IN THE SEVENTH MONTH.A = CHAPTER 29 OM# 1 NOW THESE ARE THE WORDS OF THE LETTER THAT JEREMIAH THE PROPHET SENT FROMSK JERUSALEM UNTO THE RESIDUE OF THE ELDERS WHICH WERE CARRIED AWAY CAPTIVES,D AND TO THE PRIESTS, AND TO THE PROPHETS, AND TO ALL THE PEOPLE WHOMC NEBUCHADNEZZAR HAD CARRIED AWAY CAPTIVE FROM JERUSALEM TO BABYLON;LF# 2 (AFTER THAT JECONIAH THE KING, AND THE QUEEN, AND THE EUNUCHS, THEI PRINCES OF JUDAH AND JERUSALEM, AND THE CARPENTERS, AND THE SMITHS, WEREE DEPARTED FROM JERUSALEM;)E# 3 BY THE HAND OF ELASAH THE SON OF SHAPHAN, AND GEMARIAH THE SON OFTJ HILKIAH, (WHOM ZEDEKIAH KING OF JUDAH SENT UNTO BABYLON TO NEBUCHADNEZZAR KING OF BABYLON) SAYING,RF# 4 THUS SAITH THE LORD OF HOSTS, THE GOD OF ISRAEL, UNTO ALL THAT AREL CARRIED AWAY CAPTIVES, WHOM I HAVE CAUSED TO BE CARRIED AWAY FROM JERUSALEM UNTO BABYLON;L# 5 BUILD YE HOUSES, AND DWELL IN THEM; AND PLANT GARDENS, AND EAT THE FRUIT OF THEM; H# 6 TAKE YE WIVES, AND BEGET SONS AND DAUGHTERS; AND TAKE WIVES FOR YOURG SONS, AND GIVE YOUR DAUGHTERS TO HUSBANDS, THAT THEY MAY BEAR SONS ANDN? DAUGHTERS; THAT YE MAY BE INCREASED THERE, AND NOT DIMINISHED. J# 7 AND SEEK THE PEACE OF THE CITY WHITHER I HAVE CAUSED YOU TO BE CARRIEDM AWAY CAPTIVES, AND PRAY UNTO THE LORD FOR IT: FOR IN THE PEACE THEREOF SHALLS YE HAVE PEACE.AE# 8 FOR THUS SAITH THE LORD OF HOSTS, THE GOD OF ISRAEL; LET NOT YOURHN PROPHETS AND YOUR DIVINERS, THAT BE IN THE MIDST OF YOU, DECEIVE YOU, NEITHER5 HEARKEN TO YOUR DREAMS WHICH YE CAUSE TO BE DREAMED.AH# 9 FOR THEY PROPHESY FALSELY UNTO YOU IN MY NAME: I HAVE NOT SENT THEM, SAITH THE LORD.I# 10 FOR THUS SAITH THE LORD, THAT AFTER SEVENTY YEARS BE ACCOMPLISHED ATWN BABYLON I WILL VISIT YOU, AND PERFORM MY GOOD WORD TOWARD YOU, IN CAUSING YOU TO RETURN TO THIS PLACE.RE# 11 FOR I KNOW THE THOUGHTS THAT I THINK TOWARD YOU, SAITH THE LO00v;:D%5%T6%! !RD, A THOUGHTS OF PEACE, AND NOT OF EVIL, TO GIVE YOU AN EXPECTED END.IM# 12 THEN SHALL YE CALL UPON ME, AND YE SHALL GO AND PRAY UNTO ME, AND I WILLE HEARKEN UNTO YOU.L# 13 AND YE SHALL SEEK ME, AND FIND ME, WHEN YE SHALL SEARCH FOR ME WITH ALL YOUR HEART.J# 14 AND I WILL BE FOUND OF YOU, SAITH THE LORD: AND I WILL TURN AWAY YOURH CAPTIVITY, AND I WILL GATHER YOU FROM ALL THE NATIONS, AND FROM ALL THEM PLACES WHITHER I HAVE DRIVEN YOU, SAITH THE LORD; AND I WILL BRING YOU AGAIND? INTO THE PLACE WHENCE I CAUSED YOU TO BE CARRIED AWAY CAPTIVE.IJ# 15 BECAUSE YE HAVE SAID, THE LORD HATH RAISED US UP PROPHETS IN BABYLON;K# 16 KNOW THAT THUS SAITH THE LORD OF THE KING THAT SITTETH UPON THE THRONEAH OF DAVID, AND OF ALL THE PEOPLE THAT DWELLETH IN THIS CITY, AND OF YOUR: BRETHREN THAT ARE NOT GONE FORTH WITH YOU INTO CAPTIVITY;K# 17 THUS SAITH THE LORD OF HOSTS; BEHOLD, I WILL SEND UPON THEM THE SWORD,EH THE FAMINE, AND THE PESTILENCE, AND WILL MAKE THEM LIKE VILE FIGS, THAT# CANNOT BE EATEN, THEY ARE SO EVIL.EL# 18 AND I WILL PERSECUTE THEM WITH THE SWORD, WITH THE FAMINE, AND WITH THEK PESTILENCE, AND WILL DELIVER THEM TO BE REMOVED TO ALL THE KINGDOMS OF THEIK EARTH, TO BE A CURSE, AND AN ASTONISHMENT, AND AN HISSING, AND A REPROACH,E2 AMONG ALL THE NATIONS WHITHER I HAVE DRIVEN THEM:I# 19 BECAUSE THEY HAVE NOT HEARKENED TO MY WORDS, SAITH THE LORD, WHICH IHN SENT UNTO THEM BY MY SERVANTS THE PROPHETS, RISING UP EARLY AND SENDING THEM;' BUT YE WOULD NOT HEAR, SAITH THE LORD. L# 20 HEAR YE THEREFORE THE WORD OF THE LORD, ALL YE OF THE CAPTIVITY, WHOM I% HAVE SENT FROM JERUSALEM TO BABYLON:CH# 21 THUS SAITH THE LORD OF HOSTS, THE GOD OF ISRAEL, OF AHAB THE SON OFL KOLAIAH, AND OF ZEDEKIAH THE SON OF MAASEIAH, WHICH PROPHESY A LIE UNTO YOUM IN MY NAME; BEHOLD, I WILL DELIVER THEM INTO THE HAND OF NEBUCHADREZZAR KINGN5 OF BABYLON; AND HE SHALL SLAY THEM BEFORE YOUR EYES;EH# 22 AND OF THEM SHALL BE TAKEN UP A CURSE BY ALL THE CAPTIVITY OF JUDAHN WHICH ARE IN BABYLON, SAYING, THE LORD MAKE THEE LIKE ZEDEKIAH AND LIKE AHAB,. WHOM THE KING OF BABYLON ROASTED IN THE FIRE;F# 23 BECAUSE THEY HAVE COMMITTED VILLANY IN ISRAEL, AND HAVE COMMITTEDN ADULTERY WITH THEIR NEIGHBOURS WIVES, AND HAVE SPOKEN LYING WORDS IN MY NAME,J WHICH I HAVE NOT COMMANDED THEM; EVEN I KNOW, AND AM A WITNESS, SAITH THE LORD.C# 24 THUS SHALT THOU ALSO SPEAK TO SHEMAIAH THE NEHELAMITE, SAYING,YM# 25 THUS SPEAKETH THE LORD OF HOSTS, THE GOD OF ISRAEL, SAYING, BECAUSE THOUM HAST SENT LETTERS IN THY NAME UNTO ALL THE PEOPLE THAT ARE AT JERUSALEM, ANDM TO ZEPHANIAH THE SON OF MAASEIAH THE PRIEST, AND TO ALL THE PRIESTS, SAYING,DM# 26 THE LORD HATH MADE THEE PRIEST IN THE STEAD OF JEHOIADA THE PRIEST, THATAK YE SHOULD BE OFFICERS IN THE HOUSE OF THE LORD, FOR EVERY MAN THAT IS MAD,NL AND MAKETH HIMSELF A PROPHET, THAT THOU SHOULDEST PUT HIM IN PRISON, AND IN THE STOCKS.I# 27 NOW THEREFORE WHY HAST THOU NOT REPROVED JEREMIAH OF ANATHOTH, WHICHR! MAKETH HIMSELF A PROPHET TO YOU?EH# 28 FOR THEREFORE HE SENT UNTO US IN BABYLON, SAYING, THIS CAPTIVITY ISI LONG: BUILD YE HOUSES, AND DWELL IN THEM; AND PLANT GARDENS, AND EAT THED FRUIT OF THEM.AJ# 29 AND ZEPHANIAH THE PRIEST READ THIS LETTER IN THE EARS OF JEREMIAH THE PROPHET.I:# 30 THEN CAME THE WORD OF THE LORD UNTO JEREMIAH, SAYING,C# 31 SEND TO ALL THEM OF THE CAPTIVITY, SAYING, THUS SAITH THE LORDNJ CONCERNING SHEMAIAH THE NEHELAMITE; BECAUSE THAT SHEMAIAH HATH PROPHESIEDC UNTO YOU, AND I SENT HIM NOT, AND HE CAUSED YOU TO TRUST IN A LIE:EF# 32 THEREFORE THUS SAITH THE LORD; BEHOLD, I WILL PUNISH SHEMAIAH THEN NEHELAMITE, AND HIS SEED: HE SHALL NOT HAVE A MAN TO DWELL AMONG THIS PEOPLE;I NEITHER SHALL HE BEHOLD THE GOOD THAT I WILL DO FOR MY PEOPLE, SAITH THEP9 LORD; BECAUSE HE HATH TAUGHT REBELLION AGAINST THE LORD., = CHAPTER 30 S9# 1 THE WORD THAT CAME TO JEREMIAH FROM THE LORD, SAYING,RJ# 2 THUS SPEAKETH THE LORD GOD OF ISRAEL, SAYING, WRITE THEE ALL THE WORDS( THAT I HAVE SPOKEN UNTO THEE IN A BOOK.G# 3 FOR, LO, THE DAYS COME, SAITH THE LORD00v;8<%X>%+%O-%TADATADATA, THAT I WILL BRING AGAIN THEDJ CAPTIVITY OF MY PEOPLE ISRAEL AND JUDAH, SAITH THE LORD: AND I WILL CAUSEH THEM TO RETURN TO THE LAND THAT I GAVE TO THEIR FATHERS, AND THEY SHALL POSSESS IT.E# 4 AND THESE ARE THE WORDS THAT THE LORD SPAKE CONCERNING ISRAEL ANDH CONCERNING JUDAH.M# 5 FOR THUS SAITH THE LORD; WE HAVE HEARD A VOICE OF TREMBLING, OF FEAR, ANDK NOT OF PEACE.M# 6 ASK YE NOW, AND SEE WHETHER A MAN DOTH TRAVAIL WITH CHILD? WHEREFORE DO IAJ SEE EVERY MAN WITH HIS HANDS ON HIS LOINS, AS A WOMAN IN TRAVAIL, AND ALL FACES ARE TURNED INTO PALENESS?M# 7 ALAS! FOR THAT DAY IS GREAT, SO THAT NONE IS LIKE IT: IT IS EVEN THE TIMET4 OF JACOBS TROUBLE, BUT HE SHALL BE SAVED OUT OF IT.J# 8 FOR IT SHALL COME TO PASS IN THAT DAY, SAITH THE LORD OF HOSTS, THAT IE WILL BREAK HIS YOKE FROM OFF THY NECK, AND WILL BURST THY BONDS, AND 1 STRANGERS SHALL NO MORE SERVE THEMSELVES OF HIM:EI# 9 BUT THEY SHALL SERVE THE LORD THEIR GOD, AND DAVID THEIR KING, WHOM IE WILL RAISE UP UNTO THEM.HL# 10 THEREFORE FEAR THOU NOT, O MY SERVANT JACOB, SAITH THE LORD; NEITHER BEK DISMAYED, O ISRAEL: FOR, LO, I WILL SAVE THEE FROM AFAR, AND THY SEED FROMK THE LAND OF THEIR CAPTIVITY; AND JACOB SHALL RETURN, AND SHALL BE IN REST,O. AND BE QUIET, AND NONE SHALL MAKE HIM AFRAID.K# 11 FOR I AM WITH THEE, SAITH THE LORD, TO SAVE THEE: THOUGH I MAKE A FULLSM END OF ALL NATIONS WHITHER I HAVE SCATTERED THEE, YET I WILL NOT MAKE A FULLLI END OF THEE: BUT I WILL CORRECT THEE IN MEASURE, AND WILL NOT LEAVE THEE  ALTOGETHER UNPUNISHED.TG# 12 FOR THUS SAITH THE LORD, THY BRUISE IS INCURABLE, AND THY WOUND ISR GRIEVOUS.I# 13 THERE IS NONE TO PLEAD THY CAUSE, THAT THOU MAYEST BE BOUND UP: THOU  HAST NO HEALING MEDICINES. G# 14 ALL THY LOVERS HAVE FORGOTTEN THEE; THEY SEEK THEE NOT; FOR I HAVEAJ WOUNDED THEE WITH THE WOUND OF AN ENEMY, WITH THE CHASTISEMENT OF A CRUELK ONE, FOR THE MULTITUDE OF THINE INIQUITY; BECAUSE THY SINS WERE INCREASED. J# 15 WHY CRIEST THOU FOR THINE AFFLICTION? THY SORROW IS INCURABLE FOR THEJ MULTITUDE OF THINE INIQUITY: BECAUSE THY SINS WERE INCREASED, I HAVE DONE THESE THINGS UNTO THEE.I# 16 THEREFORE ALL THEY THAT DEVOUR THEE SHALL BE DEVOURED; AND ALL THINE M ADVERSARIES, EVERY ONE OF THEM, SHALL GO INTO CAPTIVITY; AND THEY THAT SPOILEK THEE SHALL BE A SPOIL, AND ALL THAT PREY UPON THEE WILL I GIVE FOR A PREY.CM# 17 FOR I WILL RESTORE HEALTH UNTO THEE, AND I WILL HEAL THEE OF THY WOUNDS,SK SAITH THE LORD; BECAUSE THEY CALLED THEE AN OUTCAST, SAYING, THIS IS ZION,S WHOM NO MAN SEEKETH AFTER.EL# 18 THUS SAITH THE LORD; BEHOLD, I WILL BRING AGAIN THE CAPTIVITY OF JACOBSK TENTS, AND HAVE MERCY ON HIS DWELLINGPLACES; AND THE CITY SHALL BE BUILDED I UPON HER OWN HEAP, AND THE PALACE SHALL REMAIN AFTER THE MANNER THEREOF.HJ# 19 AND OUT OF THEM SHALL PROCEED THANKSGIVING AND THE VOICE OF THEM THATM MAKE MERRY: AND I WILL MULTIPLY THEM, AND THEY SHALL NOT BE FEW; I WILL ALSOE+ GLORIFY THEM, AND THEY SHALL NOT BE SMALL.EL# 20 THEIR CHILDREN ALSO SHALL BE AS AFORETIME, AND THEIR CONGREGATION SHALLC BE ESTABLISHED BEFORE ME, AND I WILL PUNISH ALL THAT OPPRESS THEM.OF# 21 AND THEIR NOBLES SHALL BE OF THEMSELVES, AND THEIR GOVERNOR SHALLJ PROCEED FROM THE MIDST OF THEM; AND I WILL CAUSE HIM TO DRAW NEAR, AND HEK SHALL APPROACH UNTO ME: FOR WHO IS THIS THAT ENGAGED HIS HEART TO APPROACH  UNTO ME? SAITH THE LORD.A7# 22 AND YE SHALL BE MY PEOPLE, AND I WILL BE YOUR GOD.LJ# 23 BEHOLD, THE WHIRLWIND OF THE LORD GOETH FORTH WITH FURY, A CONTINUING@ WHIRLWIND: IT SHALL FALL WITH PAIN UPON THE HEAD OF THE WICKED.J# 24 THE FIERCE ANGER OF THE LORD SHALL NOT RETURN, UNTIL HE HATH DONE IT,L AND UNTIL HE HAVE PERFORMED THE INTENTS OF HIS HEART: IN THE LATTER DAYS YE SHALL CONSIDER IT. = CHAPTER 31 AN# 1 AT THE SAME TIME, SAITH THE LORD, WILL I BE THE GOD OF ALL THE FAMILIES OF% ISRAEL, AND THEY SHALL BE MY PEOPLE.AL# 2 THUS SAITH THE LORD, THE PEOPLE WHICH WERE LEFT OF THE SWORD FOUND GRACEB IN THE WILDERNESS; EVEN ISRAEL, WHEN I WENT TO CAUSE HIM TO REST.I# 3 THE LORD HATH APPEARED O00v;:D%5%T6%! !F OLD UNTO ME, SAYING, YEA, I HAVE LOVED THEEEK WITH AN EVERLASTING LOVE: THEREFORE WITH LOVINGKINDNESS HAVE I DRAWN THEE.RI# 4 AGAIN I WILL BUILD THEE, AND THOU SHALT BE BUILT, O VIRGIN OF ISRAEL: H THOU SHALT AGAIN BE ADORNED WITH THY TABRETS, AND SHALT GO FORTH IN THE DANCES OF THEM THAT MAKE MERRY.J# 5 THOU SHALT YET PLANT VINES UPON THE MOUNTAINS OF SAMARIA: THE PLANTERS2 SHALL PLANT, AND SHALL EAT THEM AS COMMON THINGS.L# 6 FOR THERE SHALL BE A DAY, THAT THE WATCHMEN UPON THE MOUNT EPHRAIM SHALL? CRY, ARISE YE, AND LET US GO UP TO ZION UNTO THE LORD OUR GOD.GJ# 7 FOR THUS SAITH THE LORD; SING WITH GLADNESS FOR JACOB, AND SHOUT AMONGK THE CHIEF OF THE NATIONS: PUBLISH YE, PRAISE YE, AND SAY, O LORD, SAVE THYE PEOPLE, THE REMNANT OF ISRAEL.AJ# 8 BEHOLD, I WILL BRING THEM FROM THE NORTH COUNTRY, AND GATHER THEM FROMN THE COASTS OF THE EARTH, AND WITH THEM THE BLIND AND THE LAME, THE WOMAN WITHI CHILD AND HER THAT TRAVAILETH WITH CHILD TOGETHER: A GREAT COMPANY SHALLP RETURN THITHER.L# 9 THEY SHALL COME WITH WEEPING, AND WITH SUPPLICATIONS WILL I LEAD THEM: IK WILL CAUSE THEM TO WALK BY THE RIVERS OF WATERS IN A STRAIGHT WAY, WHEREINEG THEY SHALL NOT STUMBLE: FOR I AM A FATHER TO ISRAEL, AND EPHRAIM IS MY FIRSTBORN.RI# 10 HEAR THE WORD OF THE LORD, O YE NATIONS, AND DECLARE IT IN THE ISLESNN AFAR OFF, AND SAY, HE THAT SCATTERED ISRAEL WILL GATHER HIM, AND KEEP HIM, AS A SHEPHERD DOTH HIS FLOCK.DL# 11 FOR THE LORD HATH REDEEMED JACOB, AND RANSOMED HIM FROM THE HAND OF HIM THAT WAS STRONGER THAN HE.HM# 12 THEREFORE THEY SHALL COME AND SING IN THE HEIGHT OF ZION, AND SHALL FLOWBL TOGETHER TO THE GOODNESS OF THE LORD, FOR WHEAT, AND FOR WINE, AND FOR OIL,M AND FOR THE YOUNG OF THE FLOCK AND OF THE HERD: AND THEIR SOUL SHALL BE AS AD; WATERED GARDEN; AND THEY SHALL NOT SORROW ANY MORE AT ALL.AG# 13 THEN SHALL THE VIRGIN REJOICE IN THE DANCE, BOTH YOUNG MEN AND OLDSN TOGETHER: FOR I WILL TURN THEIR MOURNING INTO JOY, AND WILL COMFORT THEM, AND% MAKE THEM REJOICE FROM THEIR SORROW. K# 14 AND I WILL SATIATE THE SOUL OF THE PRIESTS WITH FATNESS, AND MY PEOPLEZ5 SHALL BE SATISFIED WITH MY GOODNESS, SAITH THE LORD.LM# 15 THUS SAITH THE LORD; A VOICE WAS HEARD IN RAMAH, LAMENTATION, AND BITTER H WEEPING; RAHEL WEEPING FOR HER CHILDREN REFUSED TO BE COMFORTED FOR HER! CHILDREN, BECAUSE THEY WERE NOT.3M# 16 THUS SAITH THE LORD; REFRAIN THY VOICE FROM WEEPING, AND THINE EYES FROM:K TEARS: FOR THY WORK SHALL BE REWARDED, SAITH THE LORD; AND THEY SHALL COMEH" AGAIN FROM THE LAND OF THE ENEMY.L# 17 AND THERE IS HOPE IN THINE END, SAITH THE LORD, THAT THY CHILDREN SHALL COME AGAIN TO THEIR OWN BORDER.L# 18 I HAVE SURELY HEARD EPHRAIM BEMOANING HIMSELF THUS; THOU HAST CHASTISEDN ME, AND I WAS CHASTISED, AS A BULLOCK UNACCUSTOMED TO THE YOKE: TURN THOU ME,5 AND I SHALL BE TURNED; FOR THOU ART THE LORD MY GOD.TE# 19 SURELY AFTER THAT I WAS TURNED, I REPENTED; AND AFTER THAT I WAS:H INSTRUCTED, I SMOTE UPON MY THIGH: I WAS ASHAMED, YEA, EVEN CONFOUNDED,- BECAUSE I DID BEAR THE REPROACH OF MY YOUTH.AF# 20 IS EPHRAIM MY DEAR SON? IS HE A PLEASANT CHILD? FOR SINCE I SPAKEH AGAINST HIM, I DO EARNESTLY REMEMBER HIM STILL: THEREFORE MY BOWELS AREE TROUBLED FOR HIM; I WILL SURELY HAVE MERCY UPON HIM, SAITH THE LORD.LK# 21 SET THEE UP WAYMARKS, MAKE THEE HIGH HEAPS: SET THINE HEART TOWARD THEUJ HIGHWAY, EVEN THE WAY WHICH THOU WENTEST: TURN AGAIN, O VIRGIN OF ISRAEL, TURN AGAIN TO THESE THY CITIES.K# 22 HOW LONG WILT THOU GO ABOUT, O THOU BACKSLIDING DAUGHTER? FOR THE LORDAD HATH CREATED A NEW THING IN THE EARTH, A WOMAN SHALL COMPASS A MAN.K# 23 THUS SAITH THE LORD OF HOSTS, THE GOD OF ISRAEL; AS YET THEY SHALL USELI THIS SPEECH IN THE LAND OF JUDAH AND IN THE CITIES THEREOF, WHEN I SHALLNK BRING AGAIN THEIR CAPTIVITY; THE LORD BLESS THEE, O HABITATION OF JUSTICE,T AND MOUNTAIN OF HOLINESS.I# 24 AND THERE SHALL DWELL IN JUDAH ITSELF, AND IN ALL THE CITIES THEREOFR: TOGETHER, HUSBANDMEN, AND THEY THAT GO FORTH WITH FLOCKS.E# 25 FOR I HAVE SATIATED THE WEARY SOUL, AND I HAVE REPL00v;8<%X>%+%O-%TADATADATAENISHED EVERYN SORROWFUL SOUL.D# 26 UPON THIS I AWAKED, AND BEHELD; AND MY SLEEP WAS SWEET UNTO ME.H# 27 BEHOLD, THE DAYS COME, SAITH THE LORD, THAT I WILL SOW THE HOUSE OFI ISRAEL AND THE HOUSE OF JUDAH WITH THE SEED OF MAN, AND WITH THE SEED OFD BEAST.EI# 28 AND IT SHALL COME TO PASS, THAT LIKE AS I HAVE WATCHED OVER THEM, TOAG PLUCK UP, AND TO BREAK DOWN, AND TO THROW DOWN, AND TO DESTROY, AND TOAL AFFLICT; SO WILL I WATCH OVER THEM, TO BUILD, AND TO PLANT, SAITH THE LORD.H# 29 IN THOSE DAYS THEY SHALL SAY NO MORE, THE FATHERS HAVE EATEN A SOUR0 GRAPE, AND THE CHILDRENS TEETH ARE SET ON EDGE.L# 30 BUT EVERY ONE SHALL DIE FOR HIS OWN INIQUITY: EVERY MAN THAT EATETH THE, SOUR GRAPE, HIS TEETH SHALL BE SET ON EDGE.K# 31 BEHOLD, THE DAYS COME, SAITH THE LORD, THAT I WILL MAKE A NEW COVENANTK7 WITH THE HOUSE OF ISRAEL, AND WITH THE HOUSE OF JUDAH:AL# 32 NOT ACCORDING TO THE COVENANT THAT I MADE WITH THEIR FATHERS IN THE DAYN THAT I TOOK THEM BY THE HAND TO BRING THEM OUT OF THE LAND OF EGYPT; WHICH MYJ COVENANT THEY BRAKE, ALTHOUGH I WAS AN HUSBAND UNTO THEM, SAITH THE LORD:F# 33 BUT THIS SHALL BE THE COVENANT THAT I WILL MAKE WITH THE HOUSE OFL ISRAEL; AFTER THOSE DAYS, SAITH THE LORD, I WILL PUT MY LAW IN THEIR INWARDN PARTS, AND WRITE IT IN THEIR HEARTS; AND WILL BE THEIR GOD, AND THEY SHALL BE MY PEOPLE.RL# 34 AND THEY SHALL TEACH NO MORE EVERY MAN HIS NEIGHBOUR, AND EVERY MAN HISN BROTHER, SAYING, KNOW THE LORD: FOR THEY SHALL ALL KNOW ME, FROM THE LEAST OFI THEM UNTO THE GREATEST OF THEM, SAITH THE LORD: FOR I WILL FORGIVE THEIR 1 INIQUITY, AND I WILL REMEMBER THEIR SIN NO MORE.HJ# 35 THUS SAITH THE LORD, WHICH GIVETH THE SUN FOR A LIGHT BY DAY, AND THEM ORDINANCES OF THE MOON AND OF THE STARS FOR A LIGHT BY NIGHT, WHICH DIVIDETHID THE SEA WHEN THE WAVES THEREOF ROAR; THE LORD OF HOSTS IS HIS NAME:M# 36 IF THOSE ORDINANCES DEPART FROM BEFORE ME, SAITH THE LORD, THEN THE SEEDC OF ISRAEL ALSO SHALL CEASE FROM BEING A NATION BEFORE ME FOR EVER. B# 37 THUS SAITH THE LORD; IF HEAVEN ABOVE CAN BE MEASURED, AND THEL FOUNDATIONS OF THE EARTH SEARCHED OUT BENEATH, I WILL ALSO CAST OFF ALL THE< SEED OF ISRAEL FOR ALL THAT THEY HAVE DONE, SAITH THE LORD.K# 38 BEHOLD, THE DAYS COME, SAITH THE LORD, THAT THE CITY SHALL BE BUILT TOVA THE LORD FROM THE TOWER OF HANANEEL UNTO THE GATE OF THE CORNER.HL# 39 AND THE MEASURING LINE SHALL YET GO FORTH OVER AGAINST IT UPON THE HILL) GAREB, AND SHALL COMPASS ABOUT TO GOATH.MK# 40 AND THE WHOLE VALLEY OF THE DEAD BODIES, AND OF THE ASHES, AND ALL THEVN FIELDS UNTO THE BROOK OF KIDRON, UNTO THE CORNER OF THE HORSE GATE TOWARD THEJ EAST, SHALL BE HOLY UNTO THE LORD; IT SHALL NOT BE PLUCKED UP, NOR THROWN DOWN ANY MORE FOR EVER. = CHAPTER 32 AN# 1 THE WORD THAT CAME TO JEREMIAH FROM THE LORD IN THE TENTH YEAR OF ZEDEKIAH@ KING OF JUDAH, WHICH WAS THE EIGHTEENTH YEAR OF NEBUCHADREZZAR.K# 2 FOR THEN THE KING OF BABYLONS ARMY BESIEGED JERUSALEM: AND JEREMIAH THEUI PROPHET WAS SHUT UP IN THE COURT OF THE PRISON, WHICH WAS IN THE KING OFS JUDAHS HOUSE.K# 3 FOR ZEDEKIAH KING OF JUDAH HAD SHUT HIM UP, SAYING, WHEREFORE DOST THOUEK PROPHESY, AND SAY, THUS SAITH THE LORD, BEHOLD, I WILL GIVE THIS CITY INTO7 THE HAND OF THE KING OF BABYLON, AND HE SHALL TAKE IT;AF# 4 AND ZEDEKIAH KING OF JUDAH SHALL NOT ESCAPE OUT OF THE HAND OF THEF CHALDEANS, BUT SHALL SURELY BE DELIVERED INTO THE HAND OF THE KING OFL BABYLON, AND SHALL SPEAK WITH HIM MOUTH TO MOUTH, AND HIS EYES SHALL BEHOLD HIS EYES;H# 5 AND HE SHALL LEAD ZEDEKIAH TO BABYLON, AND THERE SHALL HE BE UNTIL IL VISIT HIM, SAITH THE LORD: THOUGH YE FIGHT WITH THE CHALDEANS, YE SHALL NOT PROSPER. A# 6 AND JEREMIAH SAID, THE WORD OF THE LORD CAME UNTO ME, SAYING, H# 7 BEHOLD, HANAMEEL THE SON OF SHALLUM THINE UNCLE SHALL COME UNTO THEEN SAYING, BUY THEE MY FIELD THAT IS IN ANATHOTH: FOR THE RIGHT OF REDEMPTION IS THINE TO BUY IT.NE# 8 SO HANAMEEL MINE UNCLES SON CAME TO ME IN THE COURT OF THE PRISONDJ ACCORDING TO THE WORD OF THE LORD, AND SAID UNTO ME, BUY MY FIELD, I PRAYN THEE, THA00v;:D%5%T6%! !T IS IN ANATHOTH, WHICH IS IN THE COUNTRY OF BENJAMIN: FOR THE RIGHTJ OF INHERITANCE IS THINE, AND THE REDEMPTION IS THINE; BUY IT FOR THYSELF.0 THEN I KNEW THAT THIS WAS THE WORD OF THE LORD.K# 9 AND I BOUGHT THE FIELD OF HANAMEEL MY UNCLES SON, THAT WAS IN ANATHOTH, = AND WEIGHED HIM THE MONEY, EVEN SEVENTEEN SHEKELS OF SILVER.TJ# 10 AND I SUBSCRIBED THE EVIDENCE, AND SEALED IT, AND TOOK WITNESSES, AND' WEIGHED HIM THE MONEY IN THE BALANCES.HG# 11 SO I TOOK THE EVIDENCE OF THE PURCHASE, BOTH THAT WHICH WAS SEALEDH: ACCORDING TO THE LAW AND CUSTOM, AND THAT WHICH WAS OPEN:K# 12 AND I GAVE THE EVIDENCE OF THE PURCHASE UNTO BARUCH THE SON OF NERIAH, J THE SON OF MAASEIAH, IN THE SIGHT OF HANAMEEL MINE UNCLES SON, AND IN THEK PRESENCE OF THE WITNESSES THAT SUBSCRIBED THE BOOK OF THE PURCHASE, BEFORES2 ALL THE JEWS THAT SAT IN THE COURT OF THE PRISON..# 13 AND I CHARGED BARUCH BEFORE THEM, SAYING,K# 14 THUS SAITH THE LORD OF HOSTS, THE GOD OF ISRAEL; TAKE THESE EVIDENCES,FM THIS EVIDENCE OF THE PURCHASE, BOTH WHICH IS SEALED, AND THIS EVIDENCE WHICHNN IS OPEN; AND PUT THEM IN AN EARTHEN VESSEL, THAT THEY MAY CONTINUE MANY DAYS.K# 15 FOR THUS SAITH THE LORD OF HOSTS, THE GOD OF ISRAEL; HOUSES AND FIELDSL5 AND VINEYARDS SHALL BE POSSESSED AGAIN IN THIS LAND.SJ# 16 NOW WHEN I HAD DELIVERED THE EVIDENCE OF THE PURCHASE UNTO BARUCH THE/ SON OF NERIAH, I PRAYED UNTO THE LORD, SAYING,EH# 17 AH LORD GOD! BEHOLD, THOU HAST MADE THE HEAVEN AND THE EARTH BY THYK GREAT POWER AND STRETCHED OUT ARM, AND THERE IS NOTHING TOO HARD FOR THEE: E# 18 THOU SHEWEST LOVINGKINDNESS UNTO THOUSANDS, AND RECOMPENSEST THE I INIQUITY OF THE FATHERS INTO THE BOSOM OF THEIR CHILDREN AFTER THEM: THED7 GREAT, THE MIGHTY GOD, THE LORD OF HOSTS, IS HIS NAME,OK# 19 GREAT IN COUNSEL, AND MIGHTY IN WORK: FOR THINE EYES ARE OPEN UPON ALLHJ THE WAYS OF THE SONS OF MEN: TO GIVE EVERY ONE ACCORDING TO HIS WAYS, AND& ACCORDING TO THE FRUIT OF HIS DOINGS:J# 20 WHICH HAST SET SIGNS AND WONDERS IN THE LAND OF EGYPT, EVEN UNTO THISJ DAY, AND IN ISRAEL, AND AMONG OTHER MEN; AND HAST MADE THEE A NAME, AS AT THIS DAY;K# 21 AND HAST BROUGHT FORTH THY PEOPLE ISRAEL OUT OF THE LAND OF EGYPT WITHEJ SIGNS, AND WITH WONDERS, AND WITH A STRONG HAND, AND WITH A STRETCHED OUT ARM, AND WITH GREAT TERROR;K# 22 AND HAST GIVEN THEM THIS LAND, WHICH THOU DIDST SWEAR TO THEIR FATHERSN2 TO GIVE THEM, A LAND FLOWING WITH MILK AND HONEY;G# 23 AND THEY CAME IN, AND POSSESSED IT; BUT THEY OBEYED NOT THY VOICE, C NEITHER WALKED IN THY LAW; THEY HAVE DONE NOTHING OF ALL THAT THOUON COMMANDEDST THEM TO DO: THEREFORE THOU HAST CAUSED ALL THIS EVIL TO COME UPON THEM:L# 24 BEHOLD THE MOUNTS, THEY ARE COME UNTO THE CITY TO TAKE IT; AND THE CITYK IS GIVEN INTO THE HAND OF THE CHALDEANS, THAT FIGHT AGAINST IT, BECAUSE OF2H THE SWORD, AND OF THE FAMINE, AND OF THE PESTILENCE: AND WHAT THOU HAST4 SPOKEN IS COME TO PASS; AND, BEHOLD, THOU SEEST IT.J# 25 AND THOU HAST SAID UNTO ME, O LORD GOD, BUY THEE THE FIELD FOR MONEY,J AND TAKE WITNESSES; FOR THE CITY IS GIVEN INTO THE HAND OF THE CHALDEANS.:# 26 THEN CAME THE WORD OF THE LORD UNTO JEREMIAH, SAYING,M# 27 BEHOLD, I AM THE LORD, THE GOD OF ALL FLESH: IS THERE ANY THING TOO HARDT FOR ME?J# 28 THEREFORE THUS SAITH THE LORD; BEHOLD, I WILL GIVE THIS CITY INTO THEL HAND OF THE CHALDEANS, AND INTO THE HAND OF NEBUCHADREZZAR KING OF BABYLON, AND HE SHALL TAKE IT:M# 29 AND THE CHALDEANS, THAT FIGHT AGAINST THIS CITY, SHALL COME AND SET FIREBN ON THIS CITY, AND BURN IT WITH THE HOUSES, UPON WHOSE ROOFS THEY HAVE OFFEREDN INCENSE UNTO BAAL, AND POURED OUT DRINK OFFERINGS UNTO OTHER GODS, TO PROVOKE ME TO ANGER.LM# 30 FOR THE CHILDREN OF ISRAEL AND THE CHILDREN OF JUDAH HAVE ONLY DONE EVILM BEFORE ME FROM THEIR YOUTH: FOR THE CHILDREN OF ISRAEL HAVE ONLY PROVOKED MEN7 TO ANGER WITH THE WORK OF THEIR HANDS, SAITH THE LORD.IK# 31 FOR THIS CITY HATH BEEN TO ME AS A PROVOCATION OF MINE ANGER AND OF MYAN FURY FROM THE DAY THAT THEY BUILT IT EVEN UNTO THIS DAY; THAT I SHOULD REMOVE IT FROM BEFORE MY00v;8<%X>%+%O-%TADATADATA FACE,M# 32 BECAUSE OF ALL THE EVIL OF THE CHILDREN OF ISRAEL AND OF THE CHILDREN OFOM JUDAH, WHICH THEY HAVE DONE TO PROVOKE ME TO ANGER, THEY, THEIR KINGS, THEIRNJ PRINCES, THEIR PRIESTS, AND THEIR PROPHETS, AND THE MEN OF JUDAH, AND THE INHABITANTS OF JERUSALEM.M# 33 AND THEY HAVE TURNED UNTO ME THE BACK, AND NOT THE FACE: THOUGH I TAUGHT H THEM, RISING UP EARLY AND TEACHING THEM, YET THEY HAVE NOT HEARKENED TO RECEIVE INSTRUCTION.TH# 34 BUT THEY SET THEIR ABOMINATIONS IN THE HOUSE, WHICH IS CALLED BY MY NAME, TO DEFILE IT.K# 35 AND THEY BUILT THE HIGH PLACES OF BAAL, WHICH ARE IN THE VALLEY OF THEVK SON OF HINNOM, TO CAUSE THEIR SONS AND THEIR DAUGHTERS TO PASS THROUGH THEEL FIRE UNTO MOLECH; WHICH I COMMANDED THEM NOT, NEITHER CAME IT INTO MY MIND,= THAT THEY SHOULD DO THIS ABOMINATION, TO CAUSE JUDAH TO SIN.AI# 36 AND NOW THEREFORE THUS SAITH THE LORD, THE GOD OF ISRAEL, CONCERNINGVN THIS CITY, WHEREOF YE SAY, IT SHALL BE DELIVERED INTO THE HAND OF THE KING OF@ BABYLON BY THE SWORD, AND BY THE FAMINE, AND BY THE PESTILENCE;K# 37 BEHOLD, I WILL GATHER THEM OUT OF ALL COUNTRIES, WHITHER I HAVE DRIVENON THEM IN MINE ANGER, AND IN MY FURY, AND IN GREAT WRATH; AND I WILL BRING THEM> AGAIN UNTO THIS PLACE, AND I WILL CAUSE THEM TO DWELL SAFELY::# 38 AND THEY SHALL BE MY PEOPLE, AND I WILL BE THEIR GOD:K# 39 AND I WILL GIVE THEM ONE HEART, AND ONE WAY, THAT THEY MAY FEAR ME FORE> EVER, FOR THE GOOD OF THEM, AND OF THEIR CHILDREN AFTER THEM:L# 40 AND I WILL MAKE AN EVERLASTING COVENANT WITH THEM, THAT I WILL NOT TURNN AWAY FROM THEM, TO DO THEM GOOD; BUT I WILL PUT MY FEAR IN THEIR HEARTS, THAT THEY SHALL NOT DEPART FROM ME.DL# 41 YEA, I WILL REJOICE OVER THEM TO DO THEM GOOD, AND I WILL PLANT THEM IN@ THIS LAND ASSUREDLY WITH MY WHOLE HEART AND WITH MY WHOLE SOUL.M# 42 FOR THUS SAITH THE LORD; LIKE AS I HAVE BROUGHT ALL THIS GREAT EVIL UPONEI THIS PEOPLE, SO WILL I BRING UPON THEM ALL THE GOOD THAT I HAVE PROMISED  THEM.L# 43 AND FIELDS SHALL BE BOUGHT IN THIS LAND, WHEREOF YE SAY, IT IS DESOLATEB WITHOUT MAN OR BEAST; IT IS GIVEN INTO THE HAND OF THE CHALDEANS.L# 44 MEN SHALL BUY FIELDS FOR MONEY, AND SUBSCRIBE EVIDENCES, AND SEAL THEM,D AND TAKE WITNESSES IN THE LAND OF BENJAMIN, AND IN THE PLACES ABOUTK JERUSALEM, AND IN THE CITIES OF JUDAH, AND IN THE CITIES OF THE MOUNTAINS,HL AND IN THE CITIES OF THE VALLEY, AND IN THE CITIES OF THE SOUTH: FOR I WILL1 CAUSE THEIR CAPTIVITY TO RETURN, SAITH THE LORD.E = CHAPTER 33 3N# 1 MOREOVER THE WORD OF THE LORD CAME UNTO JEREMIAH THE SECOND TIME, WHILE HE4 WAS YET SHUT UP IN THE COURT OF THE PRISON, SAYING,F# 2 THUS SAITH THE LORD THE MAKER THEREOF, THE LORD THAT FORMED IT, TO$ ESTABLISH IT; THE LORD IS HIS NAME;H# 3 CALL UNTO ME, AND I WILL ANSWER THEE, AND SHEW THEE GREAT AND MIGHTY THINGS, WHICH THOU KNOWEST NOT.M# 4 FOR THUS SAITH THE LORD, THE GOD OF ISRAEL, CONCERNING THE HOUSES OF THISHM CITY, AND CONCERNING THE HOUSES OF THE KINGS OF JUDAH, WHICH ARE THROWN DOWN3! BY THE MOUNTS, AND BY THE SWORD; J# 5 THEY COME TO FIGHT WITH THE CHALDEANS, BUT IT IS TO FILL THEM WITH THEL DEAD BODIES OF MEN, WHOM I HAVE SLAIN IN MINE ANGER AND IN MY FURY, AND FOR8 ALL WHOSE WICKEDNESS I HAVE HID MY FACE FROM THIS CITY.L# 6 BEHOLD, I WILL BRING IT HEALTH AND CURE, AND I WILL CURE THEM , AND WILL3 REVEAL UNTO THEM THE ABUNDANCE OF PEACE AND TRUTH.RJ# 7 AND I WILL CAUSE THE CAPTIVITY OF JUDAH AND THE CAPTIVITY OF ISRAEL TO. RETURN, AND WILL BUILD THEM, AS AT THE FIRST.M# 8 AND I WILL CLEANSE THEM FROM ALL THEIR INIQUITY, WHEREBY THEY HAVE SINNEDHN AGAINST ME; AND I WILL PARDON ALL THEIR INIQUITIES, WHEREBY THEY HAVE SINNED,/ AND WHEREBY THEY HAVE TRANSGRESSED AGAINST ME.EJ# 9 AND IT SHALL BE TO ME A NAME OF JOY, A PRAISE AND AN HONOUR BEFORE ALLM THE NATIONS OF THE EARTH, WHICH SHALL HEAR ALL THE GOOD THAT I DO UNTO THEM:CE AND THEY SHALL FEAR AND TREMBLE FOR ALL THE GOODNESS AND FOR ALL THE # PROSPERITY THAT I PROCURE UNTO IT.AL# 10 THUS SAITH THE LORD; AGAIN THERE SHALL BE HEARD IN THIS PLACE, WHICH YEK SAY SHALL BE DESO00v;:D%5%T6%! !LATE WITHOUT MAN AND WITHOUT BEAST, EVEN IN THE CITIES OFEL JUDAH, AND IN THE STREETS OF JERUSALEM, THAT ARE DESOLATE, WITHOUT MAN, AND' WITHOUT INHABITANT, AND WITHOUT BEAST, B# 11 THE VOICE OF JOY, AND THE VOICE OF GLADNESS, THE VOICE OF THEJ BRIDEGROOM, AND THE VOICE OF THE BRIDE, THE VOICE OF THEM THAT SHALL SAY,K PRAISE THE LORD OF HOSTS: FOR THE LORD IS GOOD; FOR HIS MERCY ENDURETH FOROM EVER: AND OF THEM THAT SHALL BRING THE SACRIFICE OF PRAISE INTO THE HOUSE OFAJ THE LORD. FOR I WILL CAUSE TO RETURN THE CAPTIVITY OF THE LAND, AS AT THE FIRST, SAITH THE LORD.NI# 12 THUS SAITH THE LORD OF HOSTS; AGAIN IN THIS PLACE, WHICH IS DESOLATETJ WITHOUT MAN AND WITHOUT BEAST, AND IN ALL THE CITIES THEREOF, SHALL BE AN: HABITATION OF SHEPHERDS CAUSING THEIR FLOCKS TO LIE DOWN.J# 13 IN THE CITIES OF THE MOUNTAINS, IN THE CITIES OF THE VALE, AND IN THEJ CITIES OF THE SOUTH, AND IN THE LAND OF BENJAMIN, AND IN THE PLACES ABOUTM JERUSALEM, AND IN THE CITIES OF JUDAH, SHALL THE FLOCKS PASS AGAIN UNDER THER0 HANDS OF HIM THAT TELLETH THEM, SAITH THE LORD.I# 14 BEHOLD, THE DAYS COME, SAITH THE LORD, THAT I WILL PERFORM THAT GOOD I THING WHICH I HAVE PROMISED UNTO THE HOUSE OF ISRAEL AND TO THE HOUSE OFH JUDAH.A@# 15 IN THOSE DAYS, AND AT THAT TIME, WILL I CAUSE THE BRANCH OFG RIGHTEOUSNESS TO GROW UP UNTO DAVID; AND HE SHALL EXECUTE JUDGMENT ANDN RIGHTEOUSNESS IN THE LAND.NJ# 16 IN THOSE DAYS SHALL JUDAH BE SAVED, AND JERUSALEM SHALL DWELL SAFELY:A AND THIS IS THE NAME WHEREWITH SHE SHALL BE CALLED, THE LORD OURI RIGHTEOUSNESS.EJ# 17 FOR THUS SAITH THE LORD; DAVID SHALL NEVER WANT A MAN TO SIT UPON THE THRONE OF THE HOUSE OF ISRAEL;IH# 18 NEITHER SHALL THE PRIESTS THE LEVITES WANT A MAN BEFORE ME TO OFFERC BURNT OFFERINGS, AND TO KINDLE MEAT OFFERINGS, AND TO DO SACRIFICET CONTINUALLY.W9# 19 AND THE WORD OF THE LORD CAME UNTO JEREMIAH, SAYING,OH# 20 THUS SAITH THE LORD; IF YE CAN BREAK MY COVENANT OF THE DAY, AND MYK COVENANT OF THE NIGHT, AND THAT THERE SHOULD NOT BE DAY AND NIGHT IN THEIRT SEASON;G# 21 THEN MAY ALSO MY COVENANT BE BROKEN WITH DAVID MY SERVANT, THAT HETI SHOULD NOT HAVE A SON TO REIGN UPON HIS THRONE; AND WITH THE LEVITES THEL PRIESTS, MY MINISTERS.WJ# 22 AS THE HOST OF HEAVEN CANNOT BE NUMBERED, NEITHER THE SAND OF THE SEAK MEASURED: SO WILL I MULTIPLY THE SEED OF DAVID MY SERVANT, AND THE LEVITEST THAT MINISTER UNTO ME.0<# 23 MOREOVER THE WORD OF THE LORD CAME TO JEREMIAH, SAYING,G# 24 CONSIDEREST THOU NOT WHAT THIS PEOPLE HAVE SPOKEN, SAYING, THE TWOTK FAMILIES WHICH THE LORD HATH CHOSEN, HE HATH EVEN CAST THEM OFF? THUS THEYSK HAVE DESPISED MY PEOPLE, THAT THEY SHOULD BE NO MORE A NATION BEFORE THEM.HL# 25 THUS SAITH THE LORD; IF MY COVENANT BE NOT WITH DAY AND NIGHT, AND IF I7 HAVE NOT APPOINTED THE ORDINANCES OF HEAVEN AND EARTH;LL# 26 THEN WILL I CAST AWAY THE SEED OF JACOB AND DAVID MY SERVANT, SO THAT IL WILL NOT TAKE ANY OF HIS SEED TO BE RULERS OVER THE SEED OF ABRAHAM, ISAAC,I AND JACOB: FOR I WILL CAUSE THEIR CAPTIVITY TO RETURN, AND HAVE MERCY ON  THEM. = CHAPTER 34 SM# 1 THE WORD WHICH CAME UNTO JEREMIAH FROM THE LORD, WHEN NEBUCHADNEZZAR KING G OF BABYLON, AND ALL HIS ARMY, AND ALL THE KINGDOMS OF THE EARTH OF HIS L DOMINION, AND ALL THE PEOPLE, FOUGHT AGAINST JERUSALEM, AND AGAINST ALL THE CITIES THEREOF, SAYING,L# 2 THUS SAITH THE LORD, THE GOD OF ISRAEL; GO AND SPEAK TO ZEDEKIAH KING OFM JUDAH, AND TELL HIM, THUS SAITH THE LORD; BEHOLD, I WILL GIVE THIS CITY INTOAA THE HAND OF THE KING OF BABYLON, AND HE SHALL BURN IT WITH FIRE:YM# 3 AND THOU SHALT NOT ESCAPE OUT OF HIS HAND, BUT SHALT SURELY BE TAKEN, ANDRM DELIVERED INTO HIS HAND; AND THINE EYES SHALL BEHOLD THE EYES OF THE KING OFMK BABYLON, AND HE SHALL SPEAK WITH THEE MOUTH TO MOUTH, AND THOU SHALT GO TOE BABYLON.NK# 4 YET HEAR THE WORD OF THE LORD, O ZEDEKIAH KING OF JUDAH; THUS SAITH THEA/ LORD OF THEE, THOU SHALT NOT DIE BY THE SWORD: J# 5 BUT THOU SHALT DIE IN PEACE: AND WITH THE BURNINGS OF THY FATHERS, THEM FORMER KINGS WHICH WERE BEFORE THEE, SO SHALL THEY BU00v;8<%X>%+%O-%TADATADATARN ODOURS FOR THEE; ANDNN THEY WILL LAMENT THEE, SAYING, AH LORD! FOR I HAVE PRONOUNCED THE WORD, SAITH THE LORD.I# 6 THEN JEREMIAH THE PROPHET SPAKE ALL THESE WORDS UNTO ZEDEKIAH KING OFK JUDAH IN JERUSALEM,L# 7 WHEN THE KING OF BABYLONS ARMY FOUGHT AGAINST JERUSALEM, AND AGAINST ALLM THE CITIES OF JUDAH THAT WERE LEFT, AGAINST LACHISH, AND AGAINST AZEKAH: FORE7 THESE DEFENCED CITIES REMAINED OF THE CITIES OF JUDAH.UJ# 8 THIS IS THE WORD THAT CAME UNTO JEREMIAH FROM THE LORD, AFTER THAT THED KING ZEDEKIAH HAD MADE A COVENANT WITH ALL THE PEOPLE WHICH WERE AT* JERUSALEM, TO PROCLAIM LIBERTY UNTO THEM;L# 9 THAT EVERY MAN SHOULD LET HIS MANSERVANT, AND EVERY MAN HIS MAIDSERVANT,L BEING AN HEBREW OR AN HEBREWESS, GO FREE; THAT NONE SHOULD SERVE HIMSELF OF$ THEM, TO WIT, OF A JEW HIS BROTHER.M# 10 NOW WHEN ALL THE PRINCES, AND ALL THE PEOPLE, WHICH HAD ENTERED INTO THEDL COVENANT, HEARD THAT EVERY ONE SHOULD LET HIS MANSERVANT, AND EVERY ONE HISJ MAIDSERVANT, GO FREE, THAT NONE SHOULD SERVE THEMSELVES OF THEM ANY MORE,# THEN THEY OBEYED, AND LET THEM GO. J# 11 BUT AFTERWARD THEY TURNED, AND CAUSED THE SERVANTS AND THE HANDMAIDS,K WHOM THEY HAD LET GO FREE, TO RETURN, AND BROUGHT THEM INTO SUBJECTION FORE SERVANTS AND FOR HANDMAIDS.K# 12 THEREFORE THE WORD OF THE LORD CAME TO JEREMIAH FROM THE LORD, SAYING,HH# 13 THUS SAITH THE LORD, THE GOD OF ISRAEL; I MADE A COVENANT WITH YOURN FATHERS IN THE DAY THAT I BROUGHT THEM FORTH OUT OF THE LAND OF EGYPT, OUT OF THE HOUSE OF BONDMEN, SAYING,I# 14 AT THE END OF SEVEN YEARS LET YE GO EVERY MAN HIS BROTHER AN HEBREW,AM WHICH HATH BEEN SOLD UNTO THEE; AND WHEN HE HATH SERVED THEE SIX YEARS, THOUDI SHALT LET HIM GO FREE FROM THEE: BUT YOUR FATHERS HEARKENED NOT UNTO ME,N NEITHER INCLINED THEIR EAR.K# 15 AND YE WERE NOW TURNED, AND HAD DONE RIGHT IN MY SIGHT, IN PROCLAIMINGAL LIBERTY EVERY MAN TO HIS NEIGHBOUR; AND YE HAD MADE A COVENANT BEFORE ME IN& THE HOUSE WHICH IS CALLED BY MY NAME:J# 16 BUT YE TURNED AND POLLUTED MY NAME, AND CAUSED EVERY MAN HIS SERVANT,M AND EVERY MAN HIS HANDMAID, WHOM HE HAD SET AT LIBERTY AT THEIR PLEASURE, TONN RETURN, AND BROUGHT THEM INTO SUBJECTION, TO BE UNTO YOU FOR SERVANTS AND FOR HANDMAIDS. E# 17 THEREFORE THUS SAITH THE LORD; YE HAVE NOT HEARKENED UNTO ME, IN5D PROCLAIMING LIBERTY, EVERY ONE TO HIS BROTHER, AND EVERY MAN TO HISH NEIGHBOUR: BEHOLD, I PROCLAIM A LIBERTY FOR YOU, SAITH THE LORD, TO THEG SWORD, TO THE PESTILENCE, AND TO THE FAMINE; AND I WILL MAKE YOU TO BEL, REMOVED INTO ALL THE KINGDOMS OF THE EARTH.K# 18 AND I WILL GIVE THE MEN THAT HAVE TRANSGRESSED MY COVENANT, WHICH HAVE,L NOT PERFORMED THE WORDS OF THE COVENANT WHICH THEY HAD MADE BEFORE ME, WHENB THEY CUT THE CALF IN TWAIN, AND PASSED BETWEEN THE PARTS THEREOF,M# 19 THE PRINCES OF JUDAH, AND THE PRINCES OF JERUSALEM, THE EUNUCHS, AND THEVK PRIESTS, AND ALL THE PEOPLE OF THE LAND, WHICH PASSED BETWEEN THE PARTS OFO THE CALF;L# 20 I WILL EVEN GIVE THEM INTO THE HAND OF THEIR ENEMIES, AND INTO THE HANDK OF THEM THAT SEEK THEIR LIFE: AND THEIR DEAD BODIES SHALL BE FOR MEAT UNTOA9 THE FOWLS OF THE HEAVEN, AND TO THE BEASTS OF THE EARTH.EL# 21 AND ZEDEKIAH KING OF JUDAH AND HIS PRINCES WILL I GIVE INTO THE HAND OFL THEIR ENEMIES, AND INTO THE HAND OF THEM THAT SEEK THEIR LIFE, AND INTO THE? HAND OF THE KING OF BABYLONS ARMY, WHICH ARE GONE UP FROM YOU. M# 22 BEHOLD, I WILL COMMAND, SAITH THE LORD, AND CAUSE THEM TO RETURN TO THIS0K CITY; AND THEY SHALL FIGHT AGAINST IT, AND TAKE IT, AND BURN IT WITH FIRE: H AND I WILL MAKE THE CITIES OF JUDAH A DESOLATION WITHOUT AN INHABITANT. = CHAPTER 35 HL# 1 THE WORD WHICH CAME UNTO JEREMIAH FROM THE LORD IN THE DAYS OF JEHOIAKIM) THE SON OF JOSIAH KING OF JUDAH, SAYING,L# 2 GO UNTO THE HOUSE OF THE RECHABITES, AND SPEAK UNTO THEM, AND BRING THEML INTO THE HOUSE OF THE LORD, INTO ONE OF THE CHAMBERS, AND GIVE THEM WINE TO DRINK.OM# 3 THEN I TOOK JAAZANIAH THE SON OF JEREMIAH, THE SON OF HABAZINIAH, AND HIS C BRETHREN, AND ALL HIS SONS, AND THE WHOLE HOUSE OF THE RECHABITES;A00v;:D%5%T6%! !J# 4 AND I BROUGHT THEM INTO THE HOUSE OF THE LORD, INTO THE CHAMBER OF THEN SONS OF HANAN, THE SON OF IGDALIAH, A MAN OF GOD, WHICH WAS BY THE CHAMBER OFM THE PRINCES, WHICH WAS ABOVE THE CHAMBER OF MAASEIAH THE SON OF SHALLUM, THEE KEEPER OF THE DOOR:I# 5 AND I SET BEFORE THE SONS OF THE HOUSE OF THE RECHABITES POTS FULL OFD5 WINE, AND CUPS, AND I SAID UNTO THEM, DRINK YE WINE. K# 6 BUT THEY SAID, WE WILL DRINK NO WINE: FOR JONADAB THE SON OF RECHAB OURSJ FATHER COMMANDED US, SAYING, YE SHALL DRINK NO WINE, NEITHER YE, NOR YOUR SONS FOR EVER:RL# 7 NEITHER SHALL YE BUILD HOUSE, NOR SOW SEED, NOR PLANT VINEYARD, NOR HAVEN ANY: BUT ALL YOUR DAYS YE SHALL DWELL IN TENTS; THAT YE MAY LIVE MANY DAYS IN THE LAND WHERE YE BE STRANGERS.L# 8 THUS HAVE WE OBEYED THE VOICE OF JONADAB THE SON OF RECHAB OUR FATHER INK ALL THAT HE HATH CHARGED US, TO DRINK NO WINE ALL OUR DAYS, WE, OUR WIVES,U OUR SONS, NOR OUR DAUGHTERS;II# 9 NOR TO BUILD HOUSES FOR US TO DWELL IN: NEITHER HAVE WE VINEYARD, NORA FIELD, NOR SEED:EK# 10 BUT WE HAVE DWELT IN TENTS, AND HAVE OBEYED, AND DONE ACCORDING TO ALLO& THAT JONADAB OUR FATHER COMMANDED US.J# 11 BUT IT CAME TO PASS, WHEN NEBUCHADREZZAR KING OF BABYLON CAME UP INTON THE LAND, THAT WE SAID, COME, AND LET US GO TO JERUSALEM FOR FEAR OF THE ARMYJ OF THE CHALDEANS, AND FOR FEAR OF THE ARMY OF THE SYRIANS: SO WE DWELL AT JERUSALEM.D:# 12 THEN CAME THE WORD OF THE LORD UNTO JEREMIAH, SAYING,L# 13 THUS SAITH THE LORD OF HOSTS, THE GOD OF ISRAEL; GO AND TELL THE MEN OFK JUDAH AND THE INHABITANTS OF JERUSALEM, WILL YE NOT RECEIVE INSTRUCTION TOI% HEARKEN TO MY WORDS? SAITH THE LORD.MK# 14 THE WORDS OF JONADAB THE SON OF RECHAB, THAT HE COMMANDED HIS SONS NOTEJ TO DRINK WINE, ARE PERFORMED; FOR UNTO THIS DAY THEY DRINK NONE, BUT OBEYJ THEIR FATHERS COMMANDMENT: NOTWITHSTANDING I HAVE SPOKEN UNTO YOU, RISING2 EARLY AND SPEAKING; BUT YE HEARKENED NOT UNTO ME.L# 15 I HAVE SENT ALSO UNTO YOU ALL MY SERVANTS THE PROPHETS, RISING UP EARLYI AND SENDING THEM, SAYING, RETURN YE NOW EVERY MAN FROM HIS EVIL WAY, AND,K AMEND YOUR DOINGS, AND GO NOT AFTER OTHER GODS TO SERVE THEM, AND YE SHALLM DWELL IN THE LAND WHICH I HAVE GIVEN TO YOU AND TO YOUR FATHERS: BUT YE HAVET. NOT INCLINED YOUR EAR, NOR HEARKENED UNTO ME.E# 16 BECAUSE THE SONS OF JONADAB THE SON OF RECHAB HAVE PERFORMED THE K COMMANDMENT OF THEIR FATHER, WHICH HE COMMANDED THEM; BUT THIS PEOPLE HATHM NOT HEARKENED UNTO ME: M# 17 THEREFORE THUS SAITH THE LORD GOD OF HOSTS, THE GOD OF ISRAEL; BEHOLD, INM WILL BRING UPON JUDAH AND UPON ALL THE INHABITANTS OF JERUSALEM ALL THE EVILNJ THAT I HAVE PRONOUNCED AGAINST THEM: BECAUSE I HAVE SPOKEN UNTO THEM, BUTN THEY HAVE NOT HEARD; AND I HAVE CALLED UNTO THEM, BUT THEY HAVE NOT ANSWERED.L# 18 AND JEREMIAH SAID UNTO THE HOUSE OF THE RECHABITES, THUS SAITH THE LORDG OF HOSTS, THE GOD OF ISRAEL; BECAUSE YE HAVE OBEYED THE COMMANDMENT OFTL JONADAB YOUR FATHER, AND KEPT ALL HIS PRECEPTS, AND DONE ACCORDING UNTO ALL THAT HE HATH COMMANDED YOU:K# 19 THEREFORE THUS SAITH THE LORD OF HOSTS, THE GOD OF ISRAEL; JONADAB THES@ SON OF RECHAB SHALL NOT WANT A MAN TO STAND BEFORE ME FOR EVER. = CHAPTER 36 NN# 1 AND IT CAME TO PASS IN THE FOURTH YEAR OF JEHOIAKIM THE SON OF JOSIAH KINGC OF JUDAH, THAT THIS WORD CAME UNTO JEREMIAH FROM THE LORD, SAYING,,K# 2 TAKE THEE A ROLL OF A BOOK, AND WRITE THEREIN ALL THE WORDS THAT I HAVEEH SPOKEN UNTO THEE AGAINST ISRAEL, AND AGAINST JUDAH, AND AGAINST ALL THEL NATIONS, FROM THE DAY I SPAKE UNTO THEE, FROM THE DAYS OF JOSIAH, EVEN UNTO THIS DAY.L# 3 IT MAY BE THAT THE HOUSE OF JUDAH WILL HEAR ALL THE EVIL WHICH I PURPOSEN TO DO UNTO THEM; THAT THEY MAY RETURN EVERY MAN FROM HIS EVIL WAY; THAT I MAY& FORGIVE THEIR INIQUITY AND THEIR SIN.L# 4 THEN JEREMIAH CALLED BARUCH THE SON OF NERIAH: AND BARUCH WROTE FROM THEK MOUTH OF JEREMIAH ALL THE WORDS OF THE LORD, WHICH HE HAD SPOKEN UNTO HIM,O UPON A ROLL OF A BOOK.AM# 5 AND JEREMIAH COMMANDED BARUCH, SAYING, I AM SHUT UP; I CANNOT GO INTO THE  HOUSE OF THE LORD:FL# 6 THER00v;8<%X>%+%O-%TADATADATAEFORE GO THOU, AND READ IN THE ROLL, WHICH THOU HAST WRITTEN FROM MYJ MOUTH, THE WORDS OF THE LORD IN THE EARS OF THE PEOPLE IN THE LORDS HOUSEM UPON THE FASTING DAY: AND ALSO THOU SHALT READ THEM IN THE EARS OF ALL JUDAH  THAT COME OUT OF THEIR CITIES.OL# 7 IT MAY BE THEY WILL PRESENT THEIR SUPPLICATION BEFORE THE LORD, AND WILLM RETURN EVERY ONE FROM HIS EVIL WAY: FOR GREAT IS THE ANGER AND THE FURY THATI. THE LORD HATH PRONOUNCED AGAINST THIS PEOPLE.G# 8 AND BARUCH THE SON OF NERIAH DID ACCORDING TO ALL THAT JEREMIAH THENN PROPHET COMMANDED HIM, READING IN THE BOOK THE WORDS OF THE LORD IN THE LORDS HOUSE.TM# 9 AND IT CAME TO PASS IN THE FIFTH YEAR OF JEHOIAKIM THE SON OF JOSIAH KINGHM OF JUDAH, IN THE NINTH MONTH, THAT THEY PROCLAIMED A FAST BEFORE THE LORD TOHM ALL THE PEOPLE IN JERUSALEM, AND TO ALL THE PEOPLE THAT CAME FROM THE CITIES  OF JUDAH UNTO JERUSALEM.TK# 10 THEN READ BARUCH IN THE BOOK THE WORDS OF JEREMIAH IN THE HOUSE OF THELN LORD, IN THE CHAMBER OF GEMARIAH THE SON OF SHAPHAN THE SCRIBE, IN THE HIGHERK COURT, AT THE ENTRY OF THE NEW GATE OF THE LORDS HOUSE, IN THE EARS OF ALL THE PEOPLE.L# 11 WHEN MICHAIAH THE SON OF GEMARIAH, THE SON OF SHAPHAN, HAD HEARD OUT OF$ THE BOOK ALL THE WORDS OF THE LORD,K# 12 THEN HE WENT DOWN INTO THE KINGS HOUSE, INTO THE SCRIBES CHAMBER: AND,AM LO, ALL THE PRINCES SAT THERE, EVEN ELISHAMA THE SCRIBE, AND DELAIAH THE SON N OF SHEMAIAH, AND ELNATHAN THE SON OF ACHBOR, AND GEMARIAH THE SON OF SHAPHAN,7 AND ZEDEKIAH THE SON OF HANANIAH, AND ALL THE PRINCES.HK# 13 THEN MICHAIAH DECLARED UNTO THEM ALL THE WORDS THAT HE HAD HEARD, WHENS0 BARUCH READ THE BOOK IN THE EARS OF THE PEOPLE.K# 14 THEREFORE ALL THE PRINCES SENT JEHUDI THE SON OF NETHANIAH, THE SON OFFN SHELEMIAH, THE SON OF CUSHI, UNTO BARUCH, SAYING, TAKE IN THINE HAND THE ROLLN WHEREIN THOU HAST READ IN THE EARS OF THE PEOPLE, AND COME. SO BARUCH THE SON9 OF NERIAH TOOK THE ROLL IN HIS HAND, AND CAME UNTO THEM. M# 15 AND THEY SAID UNTO HIM, SIT DOWN NOW, AND READ IT IN OUR EARS. SO BARUCHI READ IT IN THEIR EARS.HM# 16 NOW IT CAME TO PASS, WHEN THEY HAD HEARD ALL THE WORDS, THEY WERE AFRAIDON BOTH ONE AND OTHER, AND SAID UNTO BARUCH, WE WILL SURELY TELL THE KING OF ALL THESE WORDS.TI# 17 AND THEY ASKED BARUCH, SAYING, TELL US NOW, HOW DIDST THOU WRITE ALLE THESE WORDS AT HIS MOUTH?J# 18 THEN BARUCH ANSWERED THEM, HE PRONOUNCED ALL THESE WORDS UNTO ME WITH2 HIS MOUTH, AND I WROTE THEM WITH INK IN THE BOOK.M# 19 THEN SAID THE PRINCES UNTO BARUCH, GO, HIDE THEE, THOU AND JEREMIAH; AND LET NO MAN KNOW WHERE YE BE.NK# 20 AND THEY WENT IN TO THE KING INTO THE COURT, BUT THEY LAID UP THE ROLLTM IN THE CHAMBER OF ELISHAMA THE SCRIBE, AND TOLD ALL THE WORDS IN THE EARS OFE THE KING.E# 21 SO THE KING SENT JEHUDI TO FETCH THE ROLL: AND HE TOOK IT OUT OFLN ELISHAMA THE SCRIBES CHAMBER. AND JEHUDI READ IT IN THE EARS OF THE KING, AND< IN THE EARS OF ALL THE PRINCES WHICH STOOD BESIDE THE KING.L# 22 NOW THE KING SAT IN THE WINTERHOUSE IN THE NINTH MONTH: AND THERE WAS A' FIRE ON THE HEARTH BURNING BEFORE HIM.EL# 23 AND IT CAME TO PASS, THAT WHEN JEHUDI HAD READ THREE OR FOUR LEAVES, HEL CUT IT WITH THE PENKNIFE, AND CAST IT INTO THE FIRE THAT WAS ON THE HEARTH,D UNTIL ALL THE ROLL WAS CONSUMED IN THE FIRE THAT WAS ON THE HEARTH.M# 24 YET THEY WERE NOT AFRAID, NOR RENT THEIR GARMENTS, NEITHER THE KING, NORT0 ANY OF HIS SERVANTS THAT HEARD ALL THESE WORDS.L# 25 NEVERTHELESS ELNATHAN AND DELAIAH AND GEMARIAH HAD MADE INTERCESSION TOF THE KING THAT HE WOULD NOT BURN THE ROLL: BUT HE WOULD NOT HEAR THEM.K# 26 BUT THE KING COMMANDED JERAHMEEL THE SON OF HAMMELECH, AND SERAIAH THEVN SON OF AZRIEL, AND SHELEMIAH THE SON OF ABDEEL, TO TAKE BARUCH THE SCRIBE AND- JEREMIAH THE PROPHET: BUT THE LORD HID THEM.IH# 27 THEN THE WORD OF THE LORD CAME TO JEREMIAH, AFTER THAT THE KING HADL BURNED THE ROLL, AND THE WORDS WHICH BARUCH WROTE AT THE MOUTH OF JEREMIAH, SAYING,L# 28 TAKE THEE AGAIN ANOTHER ROLL, AND WRITE IN IT ALL THE FORMER WORDS THATG WERE IN THE FIRST ROLL, WHI00v;:D%5%T6%! !CH JEHOIAKIM THE KING OF JUDAH HATH BURNED.BM# 29 AND THOU SHALT SAY TO JEHOIAKIM KING OF JUDAH, THUS SAITH THE LORD; THOU J HAST BURNED THIS ROLL, SAYING, WHY HAST THOU WRITTEN THEREIN, SAYING, THEL KING OF BABYLON SHALL CERTAINLY COME AND DESTROY THIS LAND, AND SHALL CAUSE$ TO CEASE FROM THENCE MAN AND BEAST?L# 30 THEREFORE THUS SAITH THE LORD OF JEHOIAKIM KING OF JUDAH; HE SHALL HAVEM NONE TO SIT UPON THE THRONE OF DAVID: AND HIS DEAD BODY SHALL BE CAST OUT INO4 THE DAY TO THE HEAT, AND IN THE NIGHT TO THE FROST.L# 31 AND I WILL PUNISH HIM AND HIS SEED AND HIS SERVANTS FOR THEIR INIQUITY;L AND I WILL BRING UPON THEM, AND UPON THE INHABITANTS OF JERUSALEM, AND UPONM THE MEN OF JUDAH, ALL THE EVIL THAT I HAVE PRONOUNCED AGAINST THEM; BUT THEY  HEARKENED NOT.AK# 32 THEN TOOK JEREMIAH ANOTHER ROLL, AND GAVE IT TO BARUCH THE SCRIBE, THE M SON OF NERIAH; WHO WROTE THEREIN FROM THE MOUTH OF JEREMIAH ALL THE WORDS OF N THE BOOK WHICH JEHOIAKIM KING OF JUDAH HAD BURNED IN THE FIRE: AND THERE WERE) ADDED BESIDES UNTO THEM MANY LIKE WORDS.H = CHAPTER 37 EL# 1 AND KING ZEDEKIAH THE SON OF JOSIAH REIGNED INSTEAD OF CONIAH THE SON OFH JEHOIAKIM, WHOM NEBUCHADREZZAR KING OF BABYLON MADE KING IN THE LAND OF JUDAH. M# 2 BUT NEITHER HE, NOR HIS SERVANTS, NOR THE PEOPLE OF THE LAND, DID HEARKENND UNTO THE WORDS OF THE LORD, WHICH HE SPAKE BY THE PROPHET JEREMIAH.M# 3 AND ZEDEKIAH THE KING SENT JEHUCAL THE SON OF SHELEMIAH AND ZEPHANIAH THEEN SON OF MAASEIAH THE PRIEST TO THE PROPHET JEREMIAH, SAYING, PRAY NOW UNTO THE LORD OUR GOD FOR US.HL# 4 NOW JEREMIAH CAME IN AND WENT OUT AMONG THE PEOPLE: FOR THEY HAD NOT PUT HIM INTO PRISON.JJ# 5 THEN PHARAOHS ARMY WAS COME FORTH OUT OF EGYPT: AND WHEN THE CHALDEANSM THAT BESIEGED JERUSALEM HEARD TIDINGS OF THEM, THEY DEPARTED FROM JERUSALEM.RD# 6 THEN CAME THE WORD OF THE LORD UNTO THE PROPHET JEREMIAH SAYING,L# 7 THUS SAITH THE LORD, THE GOD OF ISRAEL; THUS SHALL YE SAY TO THE KING OFL JUDAH, THAT SENT YOU UNTO ME TO ENQUIRE OF ME; BEHOLD, PHARAOHS ARMY, WHICHF IS COME FORTH TO HELP YOU, SHALL RETURN TO EGYPT INTO THEIR OWN LAND.M# 8 AND THE CHALDEANS SHALL COME AGAIN, AND FIGHT AGAINST THIS CITY, AND TAKER IT, AND BURN IT WITH FIRE.TL# 9 THUS SAITH THE LORD; DECEIVE NOT YOURSELVES, SAYING, THE CHALDEANS SHALL2 SURELY DEPART FROM US: FOR THEY SHALL NOT DEPART.I# 10 FOR THOUGH YE HAD SMITTEN THE WHOLE ARMY OF THE CHALDEANS THAT FIGHTGL AGAINST YOU, AND THERE REMAINED BUT WOUNDED MEN AMONG THEM, YET SHOULD THEY= RISE UP EVERY MAN IN HIS TENT, AND BURN THIS CITY WITH FIRE.TK# 11 AND IT CAME TO PASS, THAT WHEN THE ARMY OF THE CHALDEANS WAS BROKEN UP * FROM JERUSALEM FOR FEAR OF PHARAOHS ARMY,E# 12 THEN JEREMIAH WENT FORTH OUT OF JERUSALEM TO GO INTO THE LAND OFCA BENJAMIN, TO SEPARATE HIMSELF THENCE IN THE MIDST OF THE PEOPLE.OG# 13 AND WHEN HE WAS IN THE GATE OF BENJAMIN, A CAPTAIN OF THE WARD WASEM THERE, WHOSE NAME WAS IRIJAH, THE SON OF SHELEMIAH, THE SON OF HANANIAH; ANDDJ HE TOOK JEREMIAH THE PROPHET, SAYING, THOU FALLEST AWAY TO THE CHALDEANS.K# 14 THEN SAID JEREMIAH, IT IS FALSE; I FALL NOT AWAY TO THE CHALDEANS. BUTLI HE HEARKENED NOT TO HIM: SO IRIJAH TOOK JEREMIAH, AND BROUGHT HIM TO THE PRINCES.NK# 15 WHEREFORE THE PRINCES WERE WROTH WITH JEREMIAH, AND SMOTE HIM, AND PUTEN HIM IN PRISON IN THE HOUSE OF JONATHAN THE SCRIBE: FOR THEY HAD MADE THAT THE PRISON.I# 16 WHEN JEREMIAH WAS ENTERED INTO THE DUNGEON, AND INTO THE CABINS, AND,' JEREMIAH HAD REMAINED THERE MANY DAYS;MJ# 17 THEN ZEDEKIAH THE KING SENT, AND TOOK HIM OUT: AND THE KING ASKED HIMF SECRETLY IN HIS HOUSE, AND SAID, IS THERE ANY WORD FROM THE LORD? ANDM JEREMIAH SAID, THERE IS: FOR, SAID HE, THOU SHALT BE DELIVERED INTO THE HAND OF THE KING OF BABYLON.L# 18 MOREOVER JEREMIAH SAID UNTO KING ZEDEKIAH, WHAT HAVE I OFFENDED AGAINSTN THEE, OR AGAINST THY SERVANTS, OR AGAINST THIS PEOPLE, THAT YE HAVE PUT ME IN PRISON?L# 19 WHERE ARE NOW YOUR PROPHETS WHICH PROPHESIED UNTO YOU, SAYING, THE KING> OF BABYLON SHALL NOT COME AGAINST YOU, NOR AGAINST THIS LAND?@00v;8<%X>%+%O-%TADATADATA# 20 THEREFORE HEAR NOW, I PRAY THEE, O MY LORD THE KING: LET MYN SUPPLICATION, I PRAY THEE, BE ACCEPTED BEFORE THEE; THAT THOU CAUSE ME NOT TO> RETURN TO THE HOUSE OF JONATHAN THE SCRIBE, LEST I DIE THERE.K# 21 THEN ZEDEKIAH THE KING COMMANDED THAT THEY SHOULD COMMIT JEREMIAH INTO,N THE COURT OF THE PRISON, AND THAT THEY SHOULD GIVE HIM DAILY A PIECE OF BREADK OUT OF THE BAKERS STREET, UNTIL ALL THE BREAD IN THE CITY WERE SPENT. THUSI. JEREMIAH REMAINED IN THE COURT OF THE PRISON. = CHAPTER 38 NJ# 1 THEN SHEPHATIAH THE SON OF MATTAN, AND GEDALIAH THE SON OF PASHUR, ANDL JUCAL THE SON OF SHELEMIAH, AND PASHUR THE SON OF MALCHIAH, HEARD THE WORDS6 THAT JEREMIAH HAD SPOKEN UNTO ALL THE PEOPLE, SAYING,H# 2 THUS SAITH THE LORD, HE THAT REMAINETH IN THIS CITY SHALL DIE BY THEL SWORD, BY THE FAMINE, AND BY THE PESTILENCE: BUT HE THAT GOETH FORTH TO THEM CHALDEANS SHALL LIVE; FOR HE SHALL HAVE HIS LIFE FOR A PREY, AND SHALL LIVE..M# 3 THUS SAITH THE LORD, THIS CITY SHALL SURELY BE GIVEN INTO THE HAND OF THEN, KING OF BABYLONS ARMY, WHICH SHALL TAKE IT.K# 4 THEREFORE THE PRINCES SAID UNTO THE KING, WE BESEECH THEE, LET THIS MANHH BE PUT TO DEATH: FOR THUS HE WEAKENETH THE HANDS OF THE MEN OF WAR THATM REMAIN IN THIS CITY, AND THE HANDS OF ALL THE PEOPLE, IN SPEAKING SUCH WORDSSN UNTO THEM: FOR THIS MAN SEEKETH NOT THE WELFARE OF THIS PEOPLE, BUT THE HURT.L# 5 THEN ZEDEKIAH THE KING SAID, BEHOLD, HE IS IN YOUR HAND: FOR THE KING IS* NOT HE THAT CAN DO ANY THING AGAINST YOU.J# 6 THEN TOOK THEY JEREMIAH, AND CAST HIM INTO THE DUNGEON OF MALCHIAH THEI SON OF HAMMELECH, THAT WAS IN THE COURT OF THE PRISON: AND THEY LET DOWN I JEREMIAH WITH CORDS. AND IN THE DUNGEON THERE WAS NO WATER, BUT MIRE: SOH JEREMIAH SUNK IN THE MIRE. J# 7 NOW WHEN EBEDMELECH THE ETHIOPIAN, ONE OF THE EUNUCHS WHICH WAS IN THEL KINGS HOUSE, HEARD THAT THEY HAD PUT JEREMIAH IN THE DUNGEON; THE KING THEN! SITTING IN THE GATE OF BENJAMIN;HG# 8 EBEDMELECH WENT FORTH OUT OF THE KINGS HOUSE, AND SPAKE TO THE KINGN SAYING,L# 9 MY LORD THE KING, THESE MEN HAVE DONE EVIL IN ALL THAT THEY HAVE DONE TON JEREMIAH THE PROPHET, WHOM THEY HAVE CAST INTO THE DUNGEON; AND HE IS LIKE TOK DIE FOR HUNGER IN THE PLACE WHERE HE IS: FOR THERE IS NO MORE BREAD IN THEE CITY.H# 10 THEN THE KING COMMANDED EBEDMELECH THE ETHIOPIAN, SAYING, TAKE FROMH HENCE THIRTY MEN WITH THEE, AND TAKE UP JEREMIAH THE PROPHET OUT OF THE DUNGEON, BEFORE HE DIE.M# 11 SO EBEDMELECH TOOK THE MEN WITH HIM, AND WENT INTO THE HOUSE OF THE KINGKM UNDER THE TREASURY, AND TOOK THENCE OLD CAST CLOUTS AND OLD ROTTEN RAGS, AND 5 LET THEM DOWN BY CORDS INTO THE DUNGEON TO JEREMIAH.TL# 12 AND EBEDMELECH THE ETHIOPIAN SAID UNTO JEREMIAH, PUT NOW THESE OLD CASTN CLOUTS AND ROTTEN RAGS UNDER THINE ARMHOLES UNDER THE CORDS. AND JEREMIAH DID SO.M# 13 SO THEY DREW UP JEREMIAH WITH CORDS, AND TOOK HIM UP OUT OF THE DUNGEON:M2 AND JEREMIAH REMAINED IN THE COURT OF THE PRISON.M# 14 THEN ZEDEKIAH THE KING SENT, AND TOOK JEREMIAH THE PROPHET UNTO HIM INTOKI THE THIRD ENTRY THAT IS IN THE HOUSE OF THE LORD: AND THE KING SAID UNTO 9 JEREMIAH, I WILL ASK THEE A THING; HIDE NOTHING FROM ME.TK# 15 THEN JEREMIAH SAID UNTO ZEDEKIAH, IF I DECLARE IT UNTO THEE, WILT THOUTN NOT SURELY PUT ME TO DEATH? AND IF I GIVE THEE COUNSEL, WILT THOU NOT HEARKEN UNTO ME?3K# 16 SO ZEDEKIAH THE KING SWARE SECRETLY UNTO JEREMIAH, SAYING, AS THE LORDAM LIVETH, THAT MADE US THIS SOUL, I WILL NOT PUT THEE TO DEATH, NEITHER WILL IE9 GIVE THEE INTO THE HAND OF THESE MEN THAT SEEK THY LIFE.DM# 17 THEN SAID JEREMIAH UNTO ZEDEKIAH, THUS SAITH THE LORD, THE GOD OF HOSTS,WM THE GOD OF ISRAEL; IF THOU WILT ASSUREDLY GO FORTH UNTO THE KING OF BABYLONSKJ PRINCES, THEN THY SOUL SHALL LIVE, AND THIS CITY SHALL NOT BE BURNED WITH, FIRE; AND THOU SHALT LIVE, AND THINE HOUSE:H# 18 BUT IF THOU WILT NOT GO FORTH TO THE KING OF BABYLONS PRINCES, THENM SHALL THIS CITY BE GIVEN INTO THE HAND OF THE CHALDEANS, AND THEY SHALL BURN,; IT WITH FIRE, AND THOU SHALT NOT ESCAPE OUT OF THEIR HAND.SK# 19 AND ZEDEKIAH TH00v;:D%5%T6%! !E KING SAID UNTO JEREMIAH, I AM AFRAID OF THE JEWS THATHL ARE FALLEN TO THE CHALDEANS, LEST THEY DELIVER ME INTO THEIR HAND, AND THEY MOCK ME.BJ# 20 BUT JEREMIAH SAID, THEY SHALL NOT DELIVER THEE. OBEY, I BESEECH THEE,I THE VOICE OF THE LORD, WHICH I SPEAK UNTO THEE: SO IT SHALL BE WELL UNTO  THEE, AND THY SOUL SHALL LIVE.OH# 21 BUT IF THOU REFUSE TO GO FORTH, THIS IS THE WORD THAT THE LORD HATH SHEWED ME:AI# 22 AND, BEHOLD, ALL THE WOMEN THAT ARE LEFT IN THE KING OF JUDAHS HOUSE9N SHALL BE BROUGHT FORTH TO THE KING OF BABYLONS PRINCES, AND THOSE WOMEN SHALLM SAY, THY FRIENDS HAVE SET THEE ON, AND HAVE PREVAILED AGAINST THEE: THY FEETE5 ARE SUNK IN THE MIRE, AND THEY ARE TURNED AWAY BACK..M# 23 SO THEY SHALL BRING OUT ALL THY WIVES AND THY CHILDREN TO THE CHALDEANS:SL AND THOU SHALT NOT ESCAPE OUT OF THEIR HAND, BUT SHALT BE TAKEN BY THE HANDI OF THE KING OF BABYLON: AND THOU SHALT CAUSE THIS CITY TO BE BURNED WITHE FIRE.J# 24 THEN SAID ZEDEKIAH UNTO JEREMIAH, LET NO MAN KNOW OF THESE WORDS, AND THOU SHALT NOT DIE.M# 25 BUT IF THE PRINCES HEAR THAT I HAVE TALKED WITH THEE, AND THEY COME UNTOAJ THEE, AND SAY UNTO THEE, DECLARE UNTO US NOW WHAT THOU HAST SAID UNTO THEL KING, HIDE IT NOT FROM US, AND WE WILL NOT PUT THEE TO DEATH; ALSO WHAT THE KING SAID UNTO THEE:DJ# 26 THEN THOU SHALT SAY UNTO THEM, I PRESENTED MY SUPPLICATION BEFORE THEM KING, THAT HE WOULD NOT CAUSE ME TO RETURN TO JONATHANS HOUSE, TO DIE THERE..M# 27 THEN CAME ALL THE PRINCES UNTO JEREMIAH, AND ASKED HIM: AND HE TOLD THEMTK ACCORDING TO ALL THESE WORDS THAT THE KING HAD COMMANDED. SO THEY LEFT OFF,5 SPEAKING WITH HIM; FOR THE MATTER WAS NOT PERCEIVED. D# 28 SO JEREMIAH ABODE IN THE COURT OF THE PRISON UNTIL THE DAY THAT@ JERUSALEM WAS TAKEN: AND HE WAS THERE WHEN JERUSALEM WAS TAKEN. = CHAPTER 39 EI# 1 IN THE NINTH YEAR OF ZEDEKIAH KING OF JUDAH, IN THE TENTH MONTH, CAMETL NEBUCHADREZZAR KING OF BABYLON AND ALL HIS ARMY AGAINST JERUSALEM, AND THEY BESIEGED IT.EL# 2 AND IN THE ELEVENTH YEAR OF ZEDEKIAH, IN THE FOURTH MONTH, THE NINTH DAY& OF THE MONTH, THE CITY WAS BROKEN UP.M# 3 AND ALL THE PRINCES OF THE KING OF BABYLON CAME IN, AND SAT IN THE MIDDLESL GATE, EVEN NERGALSHAREZER, SAMGARNEBO, SARSECHIM, RABSARIS, NERGALSHAREZER,D RABMAG, WITH ALL THE RESIDUE OF THE PRINCES OF THE KING OF BABYLON.K# 4 AND IT CAME TO PASS, THAT WHEN ZEDEKIAH THE KING OF JUDAH SAW THEM, ANDBM ALL THE MEN OF WAR, THEN THEY FLED, AND WENT FORTH OUT OF THE CITY BY NIGHT,EJ BY THE WAY OF THE KINGS GARDEN, BY THE GATE BETWIXT THE TWO WALLS: AND HE WENT OUT THE WAY OF THE PLAIN.TK# 5 BUT THE CHALDEANS ARMY PURSUED AFTER THEM, AND OVERTOOK ZEDEKIAH IN THE G PLAINS OF JERICHO: AND WHEN THEY HAD TAKEN HIM, THEY BROUGHT HIM UP TOBN NEBUCHADNEZZAR KING OF BABYLON TO RIBLAH IN THE LAND OF HAMATH, WHERE HE GAVE JUDGMENT UPON HIM. K# 6 THEN THE KING OF BABYLON SLEW THE SONS OF ZEDEKIAH IN RIBLAH BEFORE HISE= EYES: ALSO THE KING OF BABYLON SLEW ALL THE NOBLES OF JUDAH.NK# 7 MOREOVER HE PUT OUT ZEDEKIAHS EYES, AND BOUND HIM WITH CHAINS, TO CARRYN HIM TO BABYLON.K# 8 AND THE CHALDEANS BURNED THE KINGS HOUSE, AND THE HOUSES OF THE PEOPLE,T2 WITH FIRE, AND BRAKE DOWN THE WALLS OF JERUSALEM.G# 9 THEN NEBUZARADAN THE CAPTAIN OF THE GUARD CARRIED AWAY CAPTIVE INTOOL BABYLON THE REMNANT OF THE PEOPLE THAT REMAINED IN THE CITY, AND THOSE THATH FELL AWAY, THAT FELL TO HIM, WITH THE REST OF THE PEOPLE THAT REMAINED.M# 10 BUT NEBUZARADAN THE CAPTAIN OF THE GUARD LEFT OF THE POOR OF THE PEOPLE,UL WHICH HAD NOTHING, IN THE LAND OF JUDAH, AND GAVE THEM VINEYARDS AND FIELDS AT THE SAME TIME.J# 11 NOW NEBUCHADREZZAR KING OF BABYLON GAVE CHARGE CONCERNING JEREMIAH TO. NEBUZARADAN THE CAPTAIN OF THE GUARD, SAYING,M# 12 TAKE HIM, AND LOOK WELL TO HIM, AND DO HIM NO HARM; BUT DO UNTO HIM EVENT AS HE SHALL SAY UNTO THEE.IM# 13 SO NEBUZARADAN THE CAPTAIN OF THE GUARD SENT, AND NEBUSHASBAN, RABSARIS,PB AND NERGALSHAREZER, RABMAG, AND ALL THE KING OF BABYLONS PRINCES;J# 14 EVEN THEY SENT, AND TOOK JEREMIAH OUT OF THE COURT OF THE PRISON,00v;8<%X>%+%O-%TADATADATA ANDJ COMMITTED HIM UNTO GEDALIAH THE SON OF AHIKAM THE SON OF SHAPHAN, THAT HE5 SHOULD CARRY HIM HOME: SO HE DWELT AMONG THE PEOPLE.M# 15 NOW THE WORD OF THE LORD CAME UNTO JEREMIAH, WHILE HE WAS SHUT UP IN THE  COURT OF THE PRISON, SAYING, M# 16 GO AND SPEAK TO EBEDMELECH THE ETHIOPIAN, SAYING, THUS SAITH THE LORD OFFK HOSTS, THE GOD OF ISRAEL; BEHOLD, I WILL BRING MY WORDS UPON THIS CITY FORDJ EVIL, AND NOT FOR GOOD; AND THEY SHALL BE ACCOMPLISHED IN THAT DAY BEFORE THEE.L# 17 BUT I WILL DELIVER THEE IN THAT DAY, SAITH THE LORD: AND THOU SHALT NOT; BE GIVEN INTO THE HAND OF THE MEN OF WHOM THOU ART AFRAID. J# 18 FOR I WILL SURELY DELIVER THEE, AND THOU SHALT NOT FALL BY THE SWORD,L BUT THY LIFE SHALL BE FOR A PREY UNTO THEE: BECAUSE THOU HAST PUT THY TRUST IN ME, SAITH THE LORD.S = CHAPTER 40 TL# 1 THE WORD THAT CAME TO JEREMIAH FROM THE LORD, AFTER THAT NEBUZARADAN THEL CAPTAIN OF THE GUARD HAD LET HIM GO FROM RAMAH, WHEN HE HAD TAKEN HIM BEINGJ BOUND IN CHAINS AMONG ALL THAT WERE CARRIED AWAY CAPTIVE OF JERUSALEM AND5 JUDAH, WHICH WERE CARRIED AWAY CAPTIVE UNTO BABYLON.MK# 2 AND THE CAPTAIN OF THE GUARD TOOK JEREMIAH, AND SAID UNTO HIM, THE LORDH3 THY GOD HATH PRONOUNCED THIS EVIL UPON THIS PLACE.RM# 3 NOW THE LORD HATH BROUGHT IT, AND DONE ACCORDING AS HE HATH SAID: BECAUSE J YE HAVE SINNED AGAINST THE LORD, AND HAVE NOT OBEYED HIS VOICE, THEREFORE THIS THING IS COME UPON YOU. J# 4 AND NOW, BEHOLD, I LOOSE THEE THIS DAY FROM THE CHAINS WHICH WERE UPONN THINE HAND. IF IT SEEM GOOD UNTO THEE TO COME WITH ME INTO BABYLON, COME; ANDN I WILL LOOK WELL UNTO THEE: BUT IF IT SEEM ILL UNTO THEE TO COME WITH ME INTOJ BABYLON, FORBEAR: BEHOLD, ALL THE LAND IS BEFORE THEE: WHITHER IT SEEMETH0 GOOD AND CONVENIENT FOR THEE TO GO, THITHER GO.M# 5 NOW WHILE HE WAS NOT YET GONE BACK, HE SAID, GO BACK ALSO TO GEDALIAH THENN SON OF AHIKAM THE SON OF SHAPHAN, WHOM THE KING OF BABYLON HATH MADE GOVERNORE OVER THE CITIES OF JUDAH, AND DWELL WITH HIM AMONG THE PEOPLE: OR GOII WHERESOEVER IT SEEMETH CONVENIENT UNTO THEE TO GO. SO THE CAPTAIN OF THE6 GUARD GAVE HIM VICTUALS AND A REWARD, AND LET HIM GO.K# 6 THEN WENT JEREMIAH UNTO GEDALIAH THE SON OF AHIKAM TO MIZPAH; AND DWELTE6 WITH HIM AMONG THE PEOPLE THAT WERE LEFT IN THE LAND.J# 7 NOW WHEN ALL THE CAPTAINS OF THE FORCES WHICH WERE IN THE FIELDS, EVENM THEY AND THEIR MEN, HEARD THAT THE KING OF BABYLON HAD MADE GEDALIAH THE SON K OF AHIKAM GOVERNOR IN THE LAND, AND HAD COMMITTED UNTO HIM MEN, AND WOMEN,EN AND CHILDREN, AND OF THE POOR OF THE LAND, OF THEM THAT WERE NOT CARRIED AWAY CAPTIVE TO BABYLON;L# 8 THEN THEY CAME TO GEDALIAH TO MIZPAH, EVEN ISHMAEL THE SON OF NETHANIAH,D AND JOHANAN AND JONATHAN THE SONS OF KAREAH, AND SERAIAH THE SON OFM TANHUMETH, AND THE SONS OF EPHAI THE NETOPHATHITE, AND JEZANIAH THE SON OF A ! MAACHATHITE, THEY AND THEIR MEN. L# 9 AND GEDALIAH THE SON OF AHIKAM THE SON OF SHAPHAN SWARE UNTO THEM AND TOK THEIR MEN, SAYING, FEAR NOT TO SERVE THE CHALDEANS: DWELL IN THE LAND, ANDI: SERVE THE KING OF BABYLON, AND IT SHALL BE WELL WITH YOU.M# 10 AS FOR ME, BEHOLD, I WILL DWELL AT MIZPAH, TO SERVE THE CHALDEANS, WHICHNK WILL COME UNTO US: BUT YE, GATHER YE WINE, AND SUMMER FRUITS, AND OIL, AND G PUT THEM IN YOUR VESSELS, AND DWELL IN YOUR CITIES THAT YE HAVE TAKEN.EK# 11 LIKEWISE WHEN ALL THE JEWS THAT WERE IN MOAB, AND AMONG THE AMMONITES,AH AND IN EDOM, AND THAT WERE IN ALL THE COUNTRIES, HEARD THAT THE KING OFL BABYLON HAD LEFT A REMNANT OF JUDAH, AND THAT HE HAD SET OVER THEM GEDALIAH& THE SON OF AHIKAM THE SON OF SHAPHAN;K# 12 EVEN ALL THE JEWS RETURNED OUT OF ALL PLACES WHITHER THEY WERE DRIVEN,DK AND CAME TO THE LAND OF JUDAH, TO GEDALIAH, UNTO MIZPAH, AND GATHERED WINEA AND SUMMER FRUITS VERY MUCH. K# 13 MOREOVER JOHANAN THE SON OF KAREAH, AND ALL THE CAPTAINS OF THE FORCESL5 THAT WERE IN THE FIELDS, CAME TO GEDALIAH TO MIZPAH,L# 14 AND SAID UNTO HIM, DOST THOU CERTAINLY KNOW THAT BAALIS THE KING OF THEL AMMONITES HATH SENT ISHMAEL THE SON OF NETHANIAH TO SLAY THEE? BUT GEDALIAH% THE00v<:D%5%T6%! ! SON OF AHIKAM BELIEVED THEM NOT.2H# 15 THEN JOHANAN THE SON OF KAREAH SPAKE TO GEDALIAH IN MIZPAH SECRETLYN SAYING, LET ME GO, I PRAY THEE, AND I WILL SLAY ISHMAEL THE SON OF NETHANIAH,K AND NO MAN SHALL KNOW IT: WHEREFORE SHOULD HE SLAY THEE, THAT ALL THE JEWSLK WHICH ARE GATHERED UNTO THEE SHOULD BE SCATTERED, AND THE REMNANT IN JUDAHI PERISH?M# 16 BUT GEDALIAH THE SON OF AHIKAM SAID UNTO JOHANAN THE SON OF KAREAH, THOUM? SHALT NOT DO THIS THING: FOR THOU SPEAKEST FALSELY OF ISHMAEL.E = CHAPTER 41 NE# 1 NOW IT CAME TO PASS IN THE SEVENTH MONTH, THAT ISHMAEL THE SON OFKI NETHANIAH THE SON OF ELISHAMA, OF THE SEED ROYAL, AND THE PRINCES OF THELM KING, EVEN TEN MEN WITH HIM, CAME UNTO GEDALIAH THE SON OF AHIKAM TO MIZPAH;L1 AND THERE THEY DID EAT BREAD TOGETHER IN MIZPAH.EK# 2 THEN AROSE ISHMAEL THE SON OF NETHANIAH, AND THE TEN MEN THAT WERE WITHBM HIM, AND SMOTE GEDALIAH THE SON OF AHIKAM THE SON OF SHAPHAN WITH THE SWORD,TH AND SLEW HIM, WHOM THE KING OF BABYLON HAD MADE GOVERNOR OVER THE LAND.M# 3 ISHMAEL ALSO SLEW ALL THE JEWS THAT WERE WITH HIM, EVEN WITH GEDALIAH, ATAE MIZPAH, AND THE CHALDEANS THAT WERE FOUND THERE, AND THE MEN OF WAR.KJ# 4 AND IT CAME TO PASS THE SECOND DAY AFTER HE HAD SLAIN GEDALIAH, AND NO MAN KNEW IT,EM# 5 THAT THERE CAME CERTAIN FROM SHECHEM, FROM SHILOH, AND FROM SAMARIA, EVENAN FOURSCORE MEN, HAVING THEIR BEARDS SHAVEN, AND THEIR CLOTHES RENT, AND HAVINGK CUT THEMSELVES, WITH OFFERINGS AND INCENSE IN THEIR HAND, TO BRING THEM TOA THE HOUSE OF THE LORD.LI# 6 AND ISHMAEL THE SON OF NETHANIAH WENT FORTH FROM MIZPAH TO MEET THEM,LK WEEPING ALL ALONG AS HE WENT: AND IT CAME TO PASS, AS HE MET THEM, HE SAIDR/ UNTO THEM, COME TO GEDALIAH THE SON OF AHIKAM.HJ# 7 AND IT WAS SO, WHEN THEY CAME INTO THE MIDST OF THE CITY, THAT ISHMAELM THE SON OF NETHANIAH SLEW THEM, AND CAST THEM INTO THE MIDST OF THE PIT, HE,B AND THE MEN THAT WERE WITH HIM.J# 8 BUT TEN MEN WERE FOUND AMONG THEM THAT SAID UNTO ISHMAEL, SLAY US NOT:M FOR WE HAVE TREASURES IN THE FIELD, OF WHEAT, AND OF BARLEY, AND OF OIL, ANDHA OF HONEY. SO HE FORBARE, AND SLEW THEM NOT AMONG THEIR BRETHREN.NM# 9 NOW THE PIT WHEREIN ISHMAEL HAD CAST ALL THE DEAD BODIES OF THE MEN, WHOMTN HE HAD SLAIN BECAUSE OF GEDALIAH, WAS IT WHICH ASA THE KING HAD MADE FOR FEARJ OF BAASHA KING OF ISRAEL: AND ISHMAEL THE SON OF NETHANIAH FILLED IT WITH THEM THAT WERE SLAIN.I# 10 THEN ISHMAEL CARRIED AWAY CAPTIVE ALL THE RESIDUE OF THE PEOPLE THATIN WERE IN MIZPAH, EVEN THE KINGS DAUGHTERS, AND ALL THE PEOPLE THAT REMAINED INL MIZPAH, WHOM NEBUZARADAN THE CAPTAIN OF THE GUARD HAD COMMITTED TO GEDALIAHF THE SON OF AHIKAM: AND ISHMAEL THE SON OF NETHANIAH CARRIED THEM AWAY3 CAPTIVE, AND DEPARTED TO GO OVER TO THE AMMONITES.GK# 11 BUT WHEN JOHANAN THE SON OF KAREAH, AND ALL THE CAPTAINS OF THE FORCESEL THAT WERE WITH HIM, HEARD OF ALL THE EVIL THAT ISHMAEL THE SON OF NETHANIAH HAD DONE,J# 12 THEN THEY TOOK ALL THE MEN, AND WENT TO FIGHT WITH ISHMAEL THE SON OFA NETHANIAH, AND FOUND HIM BY THE GREAT WATERS THAT ARE IN GIBEON.MJ# 13 NOW IT CAME TO PASS, THAT WHEN ALL THE PEOPLE WHICH WERE WITH ISHMAELL SAW JOHANAN THE SON OF KAREAH, AND ALL THE CAPTAINS OF THE FORCES THAT WERE WITH HIM, THEN THEY WERE GLAD.EM# 14 SO ALL THE PEOPLE THAT ISHMAEL HAD CARRIED AWAY CAPTIVE FROM MIZPAH CASTT= ABOUT AND RETURNED, AND WENT UNTO JOHANAN THE SON OF KAREAH.MJ# 15 BUT ISHMAEL THE SON OF NETHANIAH ESCAPED FROM JOHANAN WITH EIGHT MEN, AND WENT TO THE AMMONITES. L# 16 THEN TOOK JOHANAN THE SON OF KAREAH, AND ALL THE CAPTAINS OF THE FORCESM THAT WERE WITH HIM, ALL THE REMNANT OF THE PEOPLE WHOM HE HAD RECOVERED FROMJL ISHMAEL THE SON OF NETHANIAH, FROM MIZPAH, AFTER THAT HE HAD SLAIN GEDALIAHL THE SON OF AHIKAM, EVEN MIGHTY MEN OF WAR, AND THE WOMEN, AND THE CHILDREN,8 AND THE EUNUCHS, WHOM HE HAD BROUGHT AGAIN FROM GIBEON:K# 17 AND THEY DEPARTED, AND DWELT IN THE HABITATION OF CHIMHAM, WHICH IS BYA& BETHLEHEM, TO GO TO ENTER INTO EGYPT,L# 18 BECAUSE OF THE CHALDEANS: FOR THEY WERE AFRAID OF THEM, BECAUSE ISHMAELL T00v<8<%X>%+%O-%TADATADATAHE SON OF NETHANIAH HAD SLAIN GEDALIAH THE SON OF AHIKAM, WHOM THE KING OF# BABYLON MADE GOVERNOR IN THE LAND.E = CHAPTER 42 AK# 1 THEN ALL THE CAPTAINS OF THE FORCES, AND JOHANAN THE SON OF KAREAH, ANDGN JEZANIAH THE SON OF HOSHAIAH, AND ALL THE PEOPLE FROM THE LEAST EVEN UNTO THE GREATEST, CAME NEAR,OA# 2 AND SAID UNTO JEREMIAH THE PROPHET, LET, WE BESEECH THEE, OUR M SUPPLICATION BE ACCEPTED BEFORE THEE, AND PRAY FOR US UNTO THE LORD THY GOD,EM EVEN FOR ALL THIS REMNANT; (FOR WE ARE LEFT BUT A FEW OF MANY, AS THINE EYESL DO BEHOLD US:)SJ# 3 THAT THE LORD THY GOD MAY SHEW US THE WAY WHEREIN WE MAY WALK, AND THE THING THAT WE MAY DO.I# 4 THEN JEREMIAH THE PROPHET SAID UNTO THEM, I HAVE HEARD YOU; BEHOLD, IHL WILL PRAY UNTO THE LORD YOUR GOD ACCORDING TO YOUR WORDS; AND IT SHALL COMEL TO PASS, THAT WHATSOEVER THING THE LORD SHALL ANSWER YOU, I WILL DECLARE IT- UNTO YOU; I WILL KEEP NOTHING BACK FROM YOU.PG# 5 THEN THEY SAID TO JEREMIAH, THE LORD BE A TRUE AND FAITHFUL WITNESSRM BETWEEN US, IF WE DO NOT EVEN ACCORDING TO ALL THINGS FOR THE WHICH THE LORDH THY GOD SHALL SEND THEE TO US. L# 6 WHETHER IT BE GOOD, OR WHETHER IT BE EVIL, WE WILL OBEY THE VOICE OF THEN LORD OUR GOD, TO WHOM WE SEND THEE; THAT IT MAY BE WELL WITH US, WHEN WE OBEY THE VOICE OF THE LORD OUR GOD.LK# 7 AND IT CAME TO PASS AFTER TEN DAYS, THAT THE WORD OF THE LORD CAME UNTOL JEREMIAH.I# 8 THEN CALLED HE JOHANAN THE SON OF KAREAH, AND ALL THE CAPTAINS OF THE J FORCES WHICH WERE WITH HIM, AND ALL THE PEOPLE FROM THE LEAST EVEN TO THE GREATEST,L# 9 AND SAID UNTO THEM, THUS SAITH THE LORD, THE GOD OF ISRAEL, UNTO WHOM YE1 SENT ME TO PRESENT YOUR SUPPLICATION BEFORE HIM;HM# 10 IF YE WILL STILL ABIDE IN THIS LAND, THEN WILL I BUILD YOU, AND NOT PULLSM YOU DOWN, AND I WILL PLANT YOU, AND NOT PLUCK YOU UP: FOR I REPENT ME OF THE EVIL THAT I HAVE DONE UNTO YOU.H# 11 BE NOT AFRAID OF THE KING OF BABYLON, OF WHOM YE ARE AFRAID; BE NOTM AFRAID OF HIM, SAITH THE LORD: FOR I AM WITH YOU TO SAVE YOU, AND TO DELIVERM YOU FROM HIS HAND.EK# 12 AND I WILL SHEW MERCIES UNTO YOU, THAT HE MAY HAVE MERCY UPON YOU, AND & CAUSE YOU TO RETURN TO YOUR OWN LAND.M# 13 BUT IF YE SAY, WE WILL NOT DWELL IN THIS LAND, NEITHER OBEY THE VOICE OF  THE LORD YOUR GOD,LM# 14 SAYING, NO; BUT WE WILL GO INTO THE LAND OF EGYPT, WHERE WE SHALL SEE NOHL WAR, NOR HEAR THE SOUND OF THE TRUMPET, NOR HAVE HUNGER OF BREAD; AND THERE WILL WE DWELL: K# 15 AND NOW THEREFORE HEAR THE WORD OF THE LORD, YE REMNANT OF JUDAH; THUS,K SAITH THE LORD OF HOSTS, THE GOD OF ISRAEL; IF YE WHOLLY SET YOUR FACES TO,+ ENTER INTO EGYPT, AND GO TO SOJOURN THERE;EG# 16 THEN IT SHALL COME TO PASS, THAT THE SWORD, WHICH YE FEARED, SHALLNI OVERTAKE YOU THERE IN THE LAND OF EGYPT, AND THE FAMINE, WHEREOF YE WERENM AFRAID, SHALL FOLLOW CLOSE AFTER YOU THERE IN EGYPT; AND THERE YE SHALL DIE.RM# 17 SO SHALL IT BE WITH ALL THE MEN THAT SET THEIR FACES TO GO INTO EGYPT TO F SOJOURN THERE; THEY SHALL DIE BY THE SWORD, BY THE FAMINE, AND BY THEN PESTILENCE: AND NONE OF THEM SHALL REMAIN OR ESCAPE FROM THE EVIL THAT I WILL BRING UPON THEM.GK# 18 FOR THUS SAITH THE LORD OF HOSTS, THE GOD OF ISRAEL; AS MINE ANGER ANDRN MY FURY HATH BEEN POURED FORTH UPON THE INHABITANTS OF JERUSALEM; SO SHALL MYL FURY BE POURED FORTH UPON YOU, WHEN YE SHALL ENTER INTO EGYPT: AND YE SHALLK BE AN EXECRATION, AND AN ASTONISHMENT, AND A CURSE, AND A REPROACH; AND YE  SHALL SEE THIS PLACE NO MORE.M# 19 THE LORD HATH SAID CONCERNING YOU, O YE REMNANT OF JUDAH; GO YE NOT INTO:; EGYPT: KNOW CERTAINLY THAT I HAVE ADMONISHED YOU THIS DAY. I# 20 FOR YE DISSEMBLED IN YOUR HEARTS, WHEN YE SENT ME UNTO THE LORD YOUR L GOD, SAYING, PRAY FOR US UNTO THE LORD OUR GOD; AND ACCORDING UNTO ALL THATC THE LORD OUR GOD SHALL SAY, SO DECLARE UNTO US, AND WE WILL DO IT. K# 21 AND NOW I HAVE THIS DAY DECLARED IT TO YOU; BUT YE HAVE NOT OBEYED THE M VOICE OF THE LORD YOUR GOD, NOR ANY THING FOR THE WHICH HE HATH SENT ME UNTOL YOU.HH# 22 NOW THEREFORE KNOW CERTAINLY THAT YE SHALL DIE BY THE SWORD, 00v<:D%5%T6%! !BY THEK FAMINE, AND BY THE PESTILENCE, IN THE PLACE WHITHER YE DESIRE TO GO AND TOO SOJOURN.W = CHAPTER 43 UL# 1 AND IT CAME TO PASS, THAT WHEN JEREMIAH HAD MADE AN END OF SPEAKING UNTOM ALL THE PEOPLE ALL THE WORDS OF THE LORD THEIR GOD, FOR WHICH THE LORD THEIRL0 GOD HAD SENT HIM TO THEM, EVEN ALL THESE WORDS,J# 2 THEN SPAKE AZARIAH THE SON OF HOSHAIAH, AND JOHANAN THE SON OF KAREAH,M AND ALL THE PROUD MEN, SAYING UNTO JEREMIAH, THOU SPEAKEST FALSELY: THE LORDIG OUR GOD HATH NOT SENT THEE TO SAY, GO NOT INTO EGYPT TO SOJOURN THERE:EK# 3 BUT BARUCH THE SON OF NERIAH SETTETH THEE ON AGAINST US, FOR TO DELIVER N US INTO THE HAND OF THE CHALDEANS, THAT THEY MIGHT PUT US TO DEATH, AND CARRY US AWAY CAPTIVES INTO BABYLON.LM# 4 SO JOHANAN THE SON OF KAREAH, AND ALL THE CAPTAINS OF THE FORCES, AND ALLHM THE PEOPLE, OBEYED NOT THE VOICE OF THE LORD, TO DWELL IN THE LAND OF JUDAH.KK# 5 BUT JOHANAN THE SON OF KAREAH, AND ALL THE CAPTAINS OF THE FORCES, TOOKTL ALL THE REMNANT OF JUDAH, THAT WERE RETURNED FROM ALL NATIONS, WHITHER THEY0 HAD BEEN DRIVEN, TO DWELL IN THE LAND OF JUDAH;I# 6 EVEN MEN, AND WOMEN, AND CHILDREN, AND THE KINGS DAUGHTERS, AND EVERYTL PERSON THAT NEBUZARADAN THE CAPTAIN OF THE GUARD HAD LEFT WITH GEDALIAH THEK SON OF AHIKAM THE SON OF SHAPHAN, AND JEREMIAH THE PROPHET, AND BARUCH THEE SON OF NERIAH.OM# 7 SO THEY CAME INTO THE LAND OF EGYPT: FOR THEY OBEYED NOT THE VOICE OF THEO( LORD: THUS CAME THEY EVEN TO TAHPANHES.F# 8 THEN CAME THE WORD OF THE LORD UNTO JEREMIAH IN TAHPANHES, SAYING,E# 9 TAKE GREAT STONES IN THINE HAND, AND HIDE THEM IN THE CLAY IN THE N BRICKKILN, WHICH IS AT THE ENTRY OF PHARAOHS HOUSE IN TAHPANHES, IN THE SIGHT OF THE MEN OF JUDAH;CH# 10 AND SAY UNTO THEM, THUS SAITH THE LORD OF HOSTS, THE GOD OF ISRAEL;M BEHOLD, I WILL SEND AND TAKE NEBUCHADREZZAR THE KING OF BABYLON, MY SERVANT,EH AND WILL SET HIS THRONE UPON THESE STONES THAT I HAVE HID; AND HE SHALL% SPREAD HIS ROYAL PAVILION OVER THEM. K# 11 AND WHEN HE COMETH, HE SHALL SMITE THE LAND OF EGYPT, AND DELIVER SUCHEK AS ARE FOR DEATH TO DEATH; AND SUCH AS ARE FOR CAPTIVITY TO CAPTIVITY; ANDH( SUCH AS ARE FOR THE SWORD TO THE SWORD.H# 12 AND I WILL KINDLE A FIRE IN THE HOUSES OF THE GODS OF EGYPT; AND HEJ SHALL BURN THEM, AND CARRY THEM AWAY CAPTIVES: AND HE SHALL ARRAY HIMSELFN WITH THE LAND OF EGYPT, AS A SHEPHERD PUTTETH ON HIS GARMENT; AND HE SHALL GO FORTH FROM THENCE IN PEACE.J# 13 HE SHALL BREAK ALSO THE IMAGES OF BETHSHEMESH, THAT IS IN THE LAND OFL EGYPT; AND THE HOUSES OF THE GODS OF THE EGYPTIANS SHALL HE BURN WITH FIRE. = CHAPTER 44 HM# 1 THE WORD THAT CAME TO JEREMIAH CONCERNING ALL THE JEWS WHICH DWELL IN THERL LAND OF EGYPT, WHICH DWELL AT MIGDOL, AND AT TAHPANHES, AND AT NOPH, AND IN THE COUNTRY OF PATHROS, SAYING,I# 2 THUS SAITH THE LORD OF HOSTS, THE GOD OF ISRAEL; YE HAVE SEEN ALL THEPK EVIL THAT I HAVE BROUGHT UPON JERUSALEM, AND UPON ALL THE CITIES OF JUDAH; J AND, BEHOLD, THIS DAY THEY ARE A DESOLATION, AND NO MAN DWELLETH THEREIN,J# 3 BECAUSE OF THEIR WICKEDNESS WHICH THEY HAVE COMMITTED TO PROVOKE ME TOM ANGER, IN THAT THEY WENT TO BURN INCENSE, AND TO SERVE OTHER GODS, WHOM THEYH. KNEW NOT, NEITHER THEY, YE, NOR YOUR FATHERS.J# 4 HOWBEIT I SENT UNTO YOU ALL MY SERVANTS THE PROPHETS, RISING EARLY ANDD SENDING THEM, SAYING, OH, DO NOT THIS ABOMINABLE THING THAT I HATE.E# 5 BUT THEY HEARKENED NOT, NOR INCLINED THEIR EAR TO TURN FROM THEIRT0 WICKEDNESS, TO BURN NO INCENSE UNTO OTHER GODS.M# 6 WHEREFORE MY FURY AND MINE ANGER WAS POURED FORTH, AND WAS KINDLED IN THE I CITIES OF JUDAH AND IN THE STREETS OF JERUSALEM; AND THEY ARE WASTED ANDE DESOLATE, AS AT THIS DAY.K# 7 THEREFORE NOW THUS SAITH THE LORD, THE GOD OF HOSTS, THE GOD OF ISRAEL;EL WHEREFORE COMMIT YE THIS GREAT EVIL AGAINST YOUR SOULS, TO CUT OFF FROM YOUN MAN AND WOMAN, CHILD AND SUCKLING, OUT OF JUDAH, TO LEAVE YOU NONE TO REMAIN;J# 8 IN THAT YE PROVOKE ME UNTO WRATH WITH THE WORKS OF YOUR HANDS, BURNINGK INCENSE UNTO OTHER GODS IN THE LAND OF EGYPT, WHITHER YE BE GONE TO DWELL,WN T00v<8<%X>%+%O-%TADATADATAHAT YE MIGHT CUT YOURSELVES OFF, AND THAT YE MIGHT BE A CURSE AND A REPROACH$ AMONG ALL THE NATIONS OF THE EARTH?K# 9 HAVE YE FORGOTTEN THE WICKEDNESS OF YOUR FATHERS, AND THE WICKEDNESS OFAD THE KINGS OF JUDAH, AND THE WICKEDNESS OF THEIR WIVES, AND YOUR OWNK WICKEDNESS, AND THE WICKEDNESS OF YOUR WIVES, WHICH THEY HAVE COMMITTED INN4 THE LAND OF JUDAH, AND IN THE STREETS OF JERUSALEM?K# 10 THEY ARE NOT HUMBLED EVEN UNTO THIS DAY, NEITHER HAVE THEY FEARED, NOR L WALKED IN MY LAW, NOR IN MY STATUTES, THAT I SET BEFORE YOU AND BEFORE YOUR FATHERS.TI# 11 THEREFORE THUS SAITH THE LORD OF HOSTS, THE GOD OF ISRAEL; BEHOLD, IYA WILL SET MY FACE AGAINST YOU FOR EVIL, AND TO CUT OFF ALL JUDAH.J# 12 AND I WILL TAKE THE REMNANT OF JUDAH, THAT HAVE SET THEIR FACES TO GOM INTO THE LAND OF EGYPT TO SOJOURN THERE, AND THEY SHALL ALL BE CONSUMED, ANDNK FALL IN THE LAND OF EGYPT; THEY SHALL EVEN BE CONSUMED BY THE SWORD AND BYUJ THE FAMINE: THEY SHALL DIE, FROM THE LEAST EVEN UNTO THE GREATEST, BY THE? SWORD AND BY THE FAMINE: AND THEY SHALL BE AN EXECRATION, AND T+ ASTONISHMENT, AND A CURSE, AND A REPROACH.DF# 13 FOR I WILL PUNISH THEM THAT DWELL IN THE LAND OF EGYPT, AS I HAVEH PUNISHED JERUSALEM, BY THE SWORD, BY THE FAMINE, AND BY THE PESTILENCE:J# 14 SO THAT NONE OF THE REMNANT OF JUDAH, WHICH ARE GONE INTO THE LAND OFM EGYPT TO SOJOURN THERE, SHALL ESCAPE OR REMAIN, THAT THEY SHOULD RETURN INTOEM THE LAND OF JUDAH, TO THE WHICH THEY HAVE A DESIRE TO RETURN TO DWELL THERE:H0 FOR NONE SHALL RETURN BUT SUCH AS SHALL ESCAPE.I# 15 THEN ALL THE MEN WHICH KNEW THAT THEIR WIVES HAD BURNED INCENSE UNTOAM OTHER GODS, AND ALL THE WOMEN THAT STOOD BY, A GREAT MULTITUDE, EVEN ALL THEPG PEOPLE THAT DWELT IN THE LAND OF EGYPT, IN PATHROS, ANSWERED JEREMIAH,  SAYING,K# 16 AS FOR THE WORD THAT THOU HAST SPOKEN UNTO US IN THE NAME OF THE LORD,O WE WILL NOT HEARKEN UNTO THEE.,I# 17 BUT WE WILL CERTAINLY DO WHATSOEVER THING GOETH FORTH OUT OF OUR OWNAG MOUTH, TO BURN INCENSE UNTO THE QUEEN OF HEAVEN, AND TO POUR OUT DRINKAM OFFERINGS UNTO HER, AS WE HAVE DONE, WE, AND OUR FATHERS, OUR KINGS, AND OUREK PRINCES, IN THE CITIES OF JUDAH, AND IN THE STREETS OF JERUSALEM: FOR THEN ; HAD WE PLENTY OF VICTUALS, AND WERE WELL, AND SAW NO EVIL.,I# 18 BUT SINCE WE LEFT OFF TO BURN INCENSE TO THE QUEEN OF HEAVEN, AND TOUL POUR OUT DRINK OFFERINGS UNTO HER, WE HAVE WANTED ALL THINGS, AND HAVE BEEN) CONSUMED BY THE SWORD AND BY THE FAMINE.FL# 19 AND WHEN WE BURNED INCENSE TO THE QUEEN OF HEAVEN, AND POURED OUT DRINKM OFFERINGS UNTO HER, DID WE MAKE HER CAKES TO WORSHIP HER, AND POUR OUT DRINKR% OFFERINGS UNTO HER, WITHOUT OUR MEN?EJ# 20 THEN JEREMIAH SAID UNTO ALL THE PEOPLE, TO THE MEN, AND TO THE WOMEN,? AND TO ALL THE PEOPLE WHICH HAD GIVEN HIM THAT ANSWER, SAYING,OM# 21 THE INCENSE THAT YE BURNED IN THE CITIES OF JUDAH, AND IN THE STREETS OFNN JERUSALEM, YE, AND YOUR FATHERS, YOUR KINGS, AND YOUR PRINCES, AND THE PEOPLEL OF THE LAND, DID NOT THE LORD REMEMBER THEM, AND CAME IT NOT INTO HIS MIND?G# 22 SO THAT THE LORD COULD NO LONGER BEAR, BECAUSE OF THE EVIL OF YOURAN DOINGS, AND BECAUSE OF THE ABOMINATIONS WHICH YE HAVE COMMITTED; THEREFORE ISE YOUR LAND A DESOLATION, AND AN ASTONISHMENT, AND A CURSE, WITHOUT AN  INHABITANT, AS AT THIS DAY.K# 23 BECAUSE YE HAVE BURNED INCENSE, AND BECAUSE YE HAVE SINNED AGAINST THENL LORD, AND HAVE NOT OBEYED THE VOICE OF THE LORD, NOR WALKED IN HIS LAW, NORN IN HIS STATUTES, NOR IN HIS TESTIMONIES; THEREFORE THIS EVIL IS HAPPENED UNTO YOU, AS AT THIS DAY. K# 24 MOREOVER JEREMIAH SAID UNTO ALL THE PEOPLE, AND TO ALL THE WOMEN, HEARG? THE WORD OF THE LORD, ALL JUDAH THAT ARE IN THE LAND OF EGYPT:FI# 25 THUS SAITH THE LORD OF HOSTS, THE GOD OF ISRAEL, SAYING; YE AND YOURAG WIVES HAVE BOTH SPOKEN WITH YOUR MOUTHS, AND FULFILLED WITH YOUR HAND,DL SAYING, WE WILL SURELY PERFORM OUR VOWS THAT WE HAVE VOWED, TO BURN INCENSEJ TO THE QUEEN OF HEAVEN, AND TO POUR OUT DRINK OFFERINGS UNTO HER: YE WILL; SURELY ACCOMPLISH YOUR VOWS, AND SURELY PERFORM YOUR VOWS.YM# 26 THERE00v <:D%5%T6%! !FORE HEAR YE THE WORD OF THE LORD, ALL JUDAH THAT DWELL IN THE LANDGN OF EGYPT; BEHOLD, I HAVE SWORN BY MY GREAT NAME, SAITH THE LORD, THAT MY NAMEK SHALL NO MORE BE NAMED IN THE MOUTH OF ANY MAN OF JUDAH IN ALL THE LAND OFO$ EGYPT, SAYING, THE LORD GOD LIVETH.K# 27 BEHOLD, I WILL WATCH OVER THEM FOR EVIL, AND NOT FOR GOOD: AND ALL THEON MEN OF JUDAH THAT ARE IN THE LAND OF EGYPT SHALL BE CONSUMED BY THE SWORD AND. BY THE FAMINE, UNTIL THERE BE AN END OF THEM.M# 28 YET A SMALL NUMBER THAT ESCAPE THE SWORD SHALL RETURN OUT OF THE LAND OFLJ EGYPT INTO THE LAND OF JUDAH, AND ALL THE REMNANT OF JUDAH, THAT ARE GONEM INTO THE LAND OF EGYPT TO SOJOURN THERE, SHALL KNOW WHOSE WORDS SHALL STAND,  MINE, OR THEIRS. J# 29 AND THIS SHALL BE A SIGN UNTO YOU, SAITH THE LORD, THAT I WILL PUNISHM YOU IN THIS PLACE, THAT YE MAY KNOW THAT MY WORDS SHALL SURELY STAND AGAINST  YOU FOR EVIL:I# 30 THUS SAITH THE LORD; BEHOLD, I WILL GIVE PHARAOHHOPHRA KING OF EGYPT L INTO THE HAND OF HIS ENEMIES, AND INTO THE HAND OF THEM THAT SEEK HIS LIFE;I AS I GAVE ZEDEKIAH KING OF JUDAH INTO THE HAND OF NEBUCHADREZZAR KING OFA. BABYLON, HIS ENEMY, AND THAT SOUGHT HIS LIFE. = CHAPTER 45 WK# 1 THE WORD THAT JEREMIAH THE PROPHET SPAKE UNTO BARUCH THE SON OF NERIAH, K WHEN HE HAD WRITTEN THESE WORDS IN A BOOK AT THE MOUTH OF JEREMIAH, IN THE B FOURTH YEAR OF JEHOIAKIM THE SON OF JOSIAH KING OF JUDAH, SAYING,@# 2 THUS SAITH THE LORD, THE GOD OF ISRAEL, UNTO THEE, O BARUCH:F# 3 THOU DIDST SAY, WOE IS ME NOW! FOR THE LORD HATH ADDED GRIEF TO MY5 SORROW; I FAINTED IN MY SIGHING, AND I FIND NO REST.HK# 4 THUS SHALT THOU SAY UNTO HIM, THE LORD SAITH THUS; BEHOLD, THAT WHICH I.M HAVE BUILT WILL I BREAK DOWN, AND THAT WHICH I HAVE PLANTED I WILL PLUCK UP,S EVEN THIS WHOLE LAND.L# 5 AND SEEKEST THOU GREAT THINGS FOR THYSELF? SEEK THEM NOT: FOR, BEHOLD, IN WILL BRING EVIL UPON ALL FLESH, SAITH THE LORD: BUT THY LIFE WILL I GIVE UNTO2 THEE FOR A PREY IN ALL PLACES WHITHER THOU GOEST. = CHAPTER 46 OG# 1 THE WORD OF THE LORD WHICH CAME TO JEREMIAH THE PROPHET AGAINST THEY GENTILES;L# 2 AGAINST EGYPT, AGAINST THE ARMY OF PHARAOHNECHO KING OF EGYPT, WHICH WASK BY THE RIVER EUPHRATES IN CARCHEMISH, WHICH NEBUCHADREZZAR KING OF BABYLONTG SMOTE IN THE FOURTH YEAR OF JEHOIAKIM THE SON OF JOSIAH KING OF JUDAH.T=# 3 ORDER YE THE BUCKLER AND SHIELD, AND DRAW NEAR TO BATTLE.VJ# 4 HARNESS THE HORSES; AND GET UP, YE HORSEMEN, AND STAND FORTH WITH YOUR9 HELMETS; FURBISH THE SPEARS, AND PUT ON THE BRIGANDINES. G# 5 WHEREFORE HAVE I SEEN THEM DISMAYED AND TURNED AWAY BACK? AND THEIRGM MIGHTY ONES ARE BEATEN DOWN, AND ARE FLED APACE, AND LOOK NOT BACK: FOR FEARI! WAS ROUND ABOUT, SAITH THE LORD.CF# 6 LET NOT THE SWIFT FLEE AWAY, NOR THE MIGHTY MAN ESCAPE; THEY SHALL; STUMBLE, AND FALL TOWARD THE NORTH BY THE RIVER EUPHRATES. H# 7 WHO IS THIS THAT COMETH UP AS A FLOOD, WHOSE WATERS ARE MOVED AS THE RIVERS?K# 8 EGYPT RISETH UP LIKE A FLOOD, AND HIS WATERS ARE MOVED LIKE THE RIVERS;NN AND HE SAITH, I WILL GO UP, AND WILL COVER THE EARTH; I WILL DESTROY THE CITY AND THE INHABITANTS THEREOF.NJ# 9 COME UP, YE HORSES; AND RAGE, YE CHARIOTS; AND LET THE MIGHTY MEN COMEG FORTH; THE ETHIOPIANS AND THE LIBYANS, THAT HANDLE THE SHIELD; AND THEG' LYDIANS, THAT HANDLE AND BEND THE BOW. K# 10 FOR THIS IS THE DAY OF THE LORD GOD OF HOSTS, A DAY OF VENGEANCE, THATPI HE MAY AVENGE HIM OF HIS ADVERSARIES: AND THE SWORD SHALL DEVOUR, AND ITIL SHALL BE SATIATE AND MADE DRUNK WITH THEIR BLOOD: FOR THE LORD GOD OF HOSTS> HATH A SACRIFICE IN THE NORTH COUNTRY BY THE RIVER EUPHRATES.J# 11 GO UP INTO GILEAD, AND TAKE BALM, O VIRGIN, THE DAUGHTER OF EGYPT: INA VAIN SHALT THOU USE MANY MEDICINES; FOR THOU SHALT NOT BE CURED.HK# 12 THE NATIONS HAVE HEARD OF THY SHAME, AND THY CRY HATH FILLED THE LAND:0N FOR THE MIGHTY MAN HATH STUMBLED AGAINST THE MIGHTY, AND THEY ARE FALLEN BOTH TOGETHER.M# 13 THE WORD THAT THE LORD SPAKE TO JEREMIAH THE PROPHET, HOW NEBUCHADREZZAR 9 KING OF BABYLON SHOULD COME AND SMITE THE LAND OF EGYPT.TK# 14 DECLARE YE IN E00v(<8<%X>%+%O-%TADATADATAGYPT, AND PUBLISH IN MIGDOL, AND PUBLISH IN NOPH AND INIL TAHPANHES: SAY YE, STAND FAST, AND PREPARE THEE; FOR THE SWORD SHALL DEVOUR ROUND ABOUT THEE.M# 15 WHY ARE THY VALIANT MEN SWEPT AWAY? THEY STOOD NOT, BECAUSE THE LORD DIDR DRIVE THEM.L# 16 HE MADE MANY TO FALL, YEA, ONE FELL UPON ANOTHER: AND THEY SAID, ARISE,M AND LET US GO AGAIN TO OUR OWN PEOPLE, AND TO THE LAND OF OUR NATIVITY, FROMP THE OPPRESSING SWORD.M# 17 THEY DID CRY THERE, PHARAOH KING OF EGYPT IS BUT A NOISE; HE HATH PASSEDN THE TIME APPOINTED.J# 18 AS I LIVE, SAITH THE KING, WHOSE NAME IS THE LORD OF HOSTS, SURELY ASJ TABOR IS AMONG THE MOUNTAINS, AND AS CARMEL BY THE SEA, SO SHALL HE COME.M# 19 O THOU DAUGHTER DWELLING IN EGYPT, FURNISH THYSELF TO GO INTO CAPTIVITY: < FOR NOPH SHALL BE WASTE AND DESOLATE WITHOUT AN INHABITANT.L# 20 EGYPT IS LIKE A VERY FAIR HEIFER, BUT DESTRUCTION COMETH; IT COMETH OUT OF THE NORTH.I# 21 ALSO HER HIRED MEN ARE IN THE MIDST OF HER LIKE FATTED BULLOCKS; FORUK THEY ALSO ARE TURNED BACK, AND ARE FLED AWAY TOGETHER: THEY DID NOT STAND,IL BECAUSE THE DAY OF THEIR CALAMITY WAS COME UPON THEM, AND THE TIME OF THEIR VISITATION.L# 22 THE VOICE THEREOF SHALL GO LIKE A SERPENT; FOR THEY SHALL MARCH WITH AN9 ARMY, AND COME AGAINST HER WITH AXES, AS HEWERS OF WOOD.AH# 23 THEY SHALL CUT DOWN HER FOREST, SAITH THE LORD, THOUGH IT CANNOT BEL SEARCHED; BECAUSE THEY ARE MORE THAN THE GRASSHOPPERS, AND ARE INNUMERABLE.K# 24 THE DAUGHTER OF EGYPT SHALL BE CONFOUNDED; SHE SHALL BE DELIVERED INTOA% THE HAND OF THE PEOPLE OF THE NORTH.DK# 25 THE LORD OF HOSTS, THE GOD OF ISRAEL, SAITH; BEHOLD, I WILL PUNISH THETK MULTITUDE OF NO, AND PHARAOH, AND EGYPT, WITH THEIR GODS, AND THEIR KINGS;O. EVEN PHARAOH, AND ALL THEM THAT TRUST IN HIM:J# 26 AND I WILL DELIVER THEM INTO THE HAND OF THOSE THAT SEEK THEIR LIVES,N AND INTO THE HAND OF NEBUCHADREZZAR KING OF BABYLON, AND INTO THE HAND OF HISL SERVANTS: AND AFTERWARD IT SHALL BE INHABITED, AS IN THE DAYS OF OLD, SAITH THE LORD.J# 27 BUT FEAR NOT THOU, O MY SERVANT JACOB, AND BE NOT DISMAYED, O ISRAEL:K FOR, BEHOLD, I WILL SAVE THEE FROM AFAR OFF, AND THY SEED FROM THE LAND OFON THEIR CAPTIVITY; AND JACOB SHALL RETURN, AND BE IN REST AND AT EASE, AND NONE SHALL MAKE HIM AFRAID.IK# 28 FEAR THOU NOT, O JACOB MY SERVANT, SAITH THE LORD: FOR I AM WITH THEE;IN FOR I WILL MAKE A FULL END OF ALL THE NATIONS WHITHER I HAVE DRIVEN THEE: BUTL I WILL NOT MAKE A FULL END OF THEE, BUT CORRECT THEE IN MEASURE; YET WILL I" NOT LEAVE THEE WHOLLY UNPUNISHED. = CHAPTER 47 AF# 1 THE WORD OF THE LORD THAT CAME TO JEREMIAH THE PROPHET AGAINST THE- PHILISTINES, BEFORE THAT PHARAOH SMOTE GAZA.K# 2 THUS SAITH THE LORD; BEHOLD, WATERS RISE UP OUT OF THE NORTH, AND SHALLEF BE AN OVERFLOWING FLOOD, AND SHALL OVERFLOW THE LAND, AND ALL THAT ISL THEREIN; THE CITY, AND THEM THAT DWELL THEREIN: THEN THE MEN SHALL CRY, AND, ALL THE INHABITANTS OF THE LAND SHALL HOWL.J# 3 AT THE NOISE OF THE STAMPING OF THE HOOFS OF HIS STRONG HORSES, AT THEN RUSHING OF HIS CHARIOTS, AND AT THE RUMBLING OF HIS WHEELS, THE FATHERS SHALL9 NOT LOOK BACK TO THEIR CHILDREN FOR FEEBLENESS OF HANDS;AK# 4 BECAUSE OF THE DAY THAT COMETH TO SPOIL ALL THE PHILISTINES, AND TO CUTFN OFF FROM TYRUS AND ZIDON EVERY HELPER THAT REMAINETH: FOR THE LORD WILL SPOIL8 THE PHILISTINES, THE REMNANT OF THE COUNTRY OF CAPHTOR.M# 5 BALDNESS IS COME UPON GAZA; ASHKELON IS CUT OFF WITH THE REMNANT OF THEIR.( VALLEY: HOW LONG WILT THOU CUT THYSELF?K# 6 O THOU SWORD OF THE LORD, HOW LONG WILL IT BE ERE THOU BE QUIET? PUT UPL/ THYSELF INTO THY SCABBARD, REST, AND BE STILL.AG# 7 HOW CAN IT BE QUIET, SEEING THE LORD HATH GIVEN IT A CHARGE AGAINSTAA ASHKELON, AND AGAINST THE SEA SHORE? THERE HATH HE APPOINTED IT. = CHAPTER 48 J# 1 AGAINST MOAB THUS SAITH THE LORD OF HOSTS, THE GOD OF ISRAEL; WOE UNTOG NEBO! FOR IT IS SPOILED: KIRIATHAIM IS CONFOUNDED AND TAKEN: MISGAB IS  CONFOUNDED AND DISMAYED. L# 2 THERE SHALL BE NO MORE PRAISE OF MOAB: IN HESHBON THEY HAVE DEVISED EVILM AGAINST IT; COME, AND LET US CU00v0<:D%5%T6%! !T IT OFF FROM BEING A NATION. ALSO THOU SHALTE4 BE CUT DOWN, O MADMEN; THE SWORD SHALL PURSUE THEE.M# 3 A VOICE OF CRYING SHALL BE FROM HORONAIM, SPOILING AND GREAT DESTRUCTION.HE# 4 MOAB IS DESTROYED; HER LITTLE ONES HAVE CAUSED A CRY TO BE HEARD. K# 5 FOR IN THE GOING UP OF LUHITH CONTINUAL WEEPING SHALL GO UP; FOR IN THEID GOING DOWN OF HORONAIM THE ENEMIES HAVE HEARD A CRY OF DESTRUCTION.C# 6 FLEE, SAVE YOUR LIVES, AND BE LIKE THE HEATH IN THE WILDERNESS.II# 7 FOR BECAUSE THOU HAST TRUSTED IN THY WORKS AND IN THY TREASURES, THOUOH SHALT ALSO BE TAKEN: AND CHEMOSH SHALL GO FORTH INTO CAPTIVITY WITH HIS" PRIESTS AND HIS PRINCES TOGETHER.M# 8 AND THE SPOILER SHALL COME UPON EVERY CITY, AND NO CITY SHALL ESCAPE: THEVM VALLEY ALSO SHALL PERISH, AND THE PLAIN SHALL BE DESTROYED, AS THE LORD HATHN SPOKEN.G# 9 GIVE WINGS UNTO MOAB, THAT IT MAY FLEE AND GET AWAY: FOR THE CITIES 9 THEREOF SHALL BE DESOLATE, WITHOUT ANY TO DWELL THEREIN.AL# 10 CURSED BE HE THAT DOETH THE WORK OF THE LORD DECEITFULLY, AND CURSED BE+ HE THAT KEEPETH BACK HIS SWORD FROM BLOOD.NL# 11 MOAB HATH BEEN AT EASE FROM HIS YOUTH, AND HE HATH SETTLED ON HIS LEES,K AND HATH NOT BEEN EMPTIED FROM VESSEL TO VESSEL, NEITHER HATH HE GONE INTOAN CAPTIVITY: THEREFORE HIS TASTE REMAINED IN HIM, AND HIS SCENT IS NOT CHANGED.L# 12 THEREFORE, BEHOLD, THE DAYS COME, SAITH THE LORD, THAT I WILL SEND UNTOL HIM WANDERERS, THAT SHALL CAUSE HIM TO WANDER, AND SHALL EMPTY HIS VESSELS, AND BREAK THEIR BOTTLES.TM# 13 AND MOAB SHALL BE ASHAMED OF CHEMOSH, AS THE HOUSE OF ISRAEL WAS ASHAMED  OF BETHEL THEIR CONFIDENCE.:# 14 HOW SAY YE, WE ARE MIGHTY AND STRONG MEN FOR THE WAR?M# 15 MOAB IS SPOILED, AND GONE UP OUT OF HER CITIES, AND HIS CHOSEN YOUNG MENJ ARE GONE DOWN TO THE SLAUGHTER, SAITH THE KING, WHOSE NAME IS THE LORD OF HOSTS.TK# 16 THE CALAMITY OF MOAB IS NEAR TO COME, AND HIS AFFLICTION HASTETH FAST.WJ# 17 ALL YE THAT ARE ABOUT HIM, BEMOAN HIM; AND ALL YE THAT KNOW HIS NAME,< SAY, HOW IS THE STRONG STAFF BROKEN, AND THE BEAUTIFUL ROD!M# 18 THOU DAUGHTER THAT DOST INHABIT DIBON, COME DOWN FROM THY GLORY, AND SITWN IN THIRST; FOR THE SPOILER OF MOAB SHALL COME UPON THEE, AND HE SHALL DESTROY THY STRONG HOLDS.L# 19 O INHABITANT OF AROER, STAND BY THE WAY, AND ESPY; ASK HIM THAT FLEETH,. AND HER THAT ESCAPETH, AND SAY, WHAT IS DONE?K# 20 MOAB IS CONFOUNDED; FOR IT IS BROKEN DOWN: HOWL AND CRY; TELL YE IT INL ARNON, THAT MOAB IS SPOILED,HF# 21 AND JUDGMENT IS COME UPON THE PLAIN COUNTRY; UPON HOLON, AND UPON JAHAZAH, AND UPON MEPHAATH,<# 22 AND UPON DIBON, AND UPON NEBO, AND UPON BETHDIBLATHAIM,@# 23 AND UPON KIRIATHAIM, AND UPON BETHGAMUL, AND UPON BETHMEON,K# 24 AND UPON KERIOTH, AND UPON BOZRAH, AND UPON ALL THE CITIES OF THE LANDT OF MOAB, FAR OR NEAR.H# 25 THE HORN OF MOAB IS CUT OFF, AND HIS ARM IS BROKEN, SAITH THE LORD.I# 26 MAKE YE HIM DRUNKEN: FOR HE MAGNIFIED HIMSELF AGAINST THE LORD: MOABB ALSO SHALL WALLOW IN HIS VOMIT, AND HE ALSO SHALL BE IN DERISION.M# 27 FOR WAS NOT ISRAEL A DERISION UNTO THEE? WAS HE FOUND AMONG THIEVES? FOR 3 SINCE THOU SPAKEST OF HIM, THOU SKIPPEDST FOR JOY.AM# 28 O YE THAT DWELL IN MOAB, LEAVE THE CITIES, AND DWELL IN THE ROCK, AND BETD LIKE THE DOVE THAT MAKETH HER NEST IN THE SIDES OF THE HOLES MOUTH.L# 29 WE HAVE HEARD THE PRIDE OF MOAB, (HE IS EXCEEDING PROUD) HIS LOFTINESS,D AND HIS ARROGANCY, AND HIS PRIDE, AND THE HAUGHTINESS OF HIS HEART.M# 30 I KNOW HIS WRATH, SAITH THE LORD; BUT IT SHALL NOT BE SO; HIS LIES SHALL. NOT SO EFFECT IT.J# 31 THEREFORE WILL I HOWL FOR MOAB, AND I WILL CRY OUT FOR ALL MOAB; MINE+ HEART SHALL MOURN FOR THE MEN OF KIRHERES.OJ# 32 O VINE OF SIBMAH, I WILL WEEP FOR THEE WITH THE WEEPING OF JAZER: THYG PLANTS ARE GONE OVER THE SEA, THEY REACH EVEN TO THE SEA OF JAZER: THEW? SPOILER IS FALLEN UPON THY SUMMER FRUITS AND UPON THY VINTAGE.NI# 33 AND JOY AND GLADNESS IS TAKEN FROM THE PLENTIFUL FIELD, AND FROM THEN LAND OF MOAB, AND I HAVE CAUSED WINE TO FAIL FROM THE WINEPRESSES: NONE SHALL: TREAD WITH SHOUTING; THEIR SHOUTING SHALL BE 00v8<8<%X>%+%O-%TADATADATANO SHOUTING.I# 34 FROM THE CRY OF HESHBON EVEN UNTO ELEALEH, AND EVEN UNTO JAHAZ, HAVERN THEY UTTERED THEIR VOICE, FROM ZOAR EVEN UNTO HORONAIM, AS AN HEIFER OF THREE< YEARS OLD: FOR THE WATERS ALSO OF NIMRIM SHALL BE DESOLATE.E# 35 MOREOVER I WILL CAUSE TO CEASE IN MOAB, SAITH THE LORD, HIM THATNG OFFERETH IN THE HIGH PLACES, AND HIM THAT BURNETH INCENSE TO HIS GODS.FI# 36 THEREFORE MINE HEART SHALL SOUND FOR MOAB LIKE PIPES, AND MINE HEARTSK SHALL SOUND LIKE PIPES FOR THE MEN OF KIRHERES: BECAUSE THE RICHES THAT HE4 HATH GOTTEN ARE PERISHED.H# 37 FOR EVERY HEAD SHALL BE BALD, AND EVERY BEARD CLIPPED: UPON ALL THE7 HANDS SHALL BE CUTTINGS, AND UPON THE LOINS SACKCLOTH.OM# 38 THERE SHALL BE LAMENTATION GENERALLY UPON ALL THE HOUSETOPS OF MOAB, ANDEK IN THE STREETS THEREOF: FOR I HAVE BROKEN MOAB LIKE A VESSEL WHEREIN IS NON PLEASURE, SAITH THE LORD.M# 39 THEY SHALL HOWL, SAYING, HOW IS IT BROKEN DOWN! HOW HATH MOAB TURNED THENI BACK WITH SHAME! SO SHALL MOAB BE A DERISION AND A DISMAYING TO ALL THEME ABOUT HIM.HI# 40 FOR THUS SAITH THE LORD; BEHOLD, HE SHALL FLY AS AN EAGLE, AND SHALLD SPREAD HIS WINGS OVER MOAB.I# 41 KERIOTH IS TAKEN, AND THE STRONG HOLDS ARE SURPRISED, AND THE MIGHTYEH MENS HEARTS IN MOAB AT THAT DAY SHALL BE AS THE HEART OF A WOMAN IN HER PANGS.RE# 42 AND MOAB SHALL BE DESTROYED FROM BEING A PEOPLE, BECAUSE HE HATHL$ MAGNIFIED HIMSELF AGAINST THE LORD.J# 43 FEAR, AND THE PIT, AND THE SNARE, SHALL BE UPON THEE, O INHABITANT OF MOAB, SAITH THE LORD.F# 44 HE THAT FLEETH FROM THE FEAR SHALL FALL INTO THE PIT; AND HE THATM GETTETH UP OUT OF THE PIT SHALL BE TAKEN IN THE SNARE: FOR I WILL BRING UPONRB IT, EVEN UPON MOAB, THE YEAR OF THEIR VISITATION, SAITH THE LORD.K# 45 THEY THAT FLED STOOD UNDER THE SHADOW OF HESHBON BECAUSE OF THE FORCE:NJ BUT A FIRE SHALL COME FORTH OUT OF HESHBON, AND A FLAME FROM THE MIDST OFM SIHON, AND SHALL DEVOUR THE CORNER OF MOAB, AND THE CROWN OF THE HEAD OF THES TUMULTUOUS ONES.OL# 46 WOE BE UNTO THEE, O MOAB! THE PEOPLE OF CHEMOSH PERISHETH: FOR THY SONS0 ARE TAKEN CAPTIVES, AND THY DAUGHTERS CAPTIVES.K# 47 YET WILL I BRING AGAIN THE CAPTIVITY OF MOAB IN THE LATTER DAYS, SAITHN, THE LORD. THUS FAR IS THE JUDGMENT OF MOAB. = CHAPTER 49 EL# 1 CONCERNING THE AMMONITES, THUS SAITH THE LORD; HATH ISRAEL NO SONS? HATHN HE NO HEIR? WHY THEN DOTH THEIR KING INHERIT GAD, AND HIS PEOPLE DWELL IN HIS CITIES?J# 2 THEREFORE, BEHOLD, THE DAYS COME, SAITH THE LORD, THAT I WILL CAUSE ANG ALARM OF WAR TO BE HEARD IN RABBAH OF THE AMMONITES; AND IT SHALL BE A N DESOLATE HEAP, AND HER DAUGHTERS SHALL BE BURNED WITH FIRE: THEN SHALL ISRAEL7 BE HEIR UNTO THEM THAT WERE HIS HEIRS, SAITH THE LORD.EM# 3 HOWL, O HESHBON, FOR AI IS SPOILED: CRY, YE DAUGHTERS OF RABBAH, GIRD YOUMI WITH SACKCLOTH; LAMENT, AND RUN TO AND FRO BY THE HEDGES; FOR THEIR KINGEC SHALL GO INTO CAPTIVITY, AND HIS PRIESTS AND HIS PRINCES TOGETHER.M# 4 WHEREFORE GLORIEST THOU IN THE VALLEYS, THY FLOWING VALLEY, O BACKSLIDINGAI DAUGHTER? THAT TRUSTED IN HER TREASURES, SAYING, WHO SHALL COME UNTO ME?LL# 5 BEHOLD, I WILL BRING A FEAR UPON THEE, SAITH THE LORD GOD OF HOSTS, FROMI ALL THOSE THAT BE ABOUT THEE; AND YE SHALL BE DRIVEN OUT EVERY MAN RIGHTF4 FORTH; AND NONE SHALL GATHER UP HIM THAT WANDERETH.L# 6 AND AFTERWARD I WILL BRING AGAIN THE CAPTIVITY OF THE CHILDREN OF AMMON, SAITH THE LORD.G# 7 CONCERNING EDOM, THUS SAITH THE LORD OF HOSTS; IS WISDOM NO MORE INEG TEMAN? IS COUNSEL PERISHED FROM THE PRUDENT? IS THEIR WISDOM VANISHED?AL# 8 FLEE YE, TURN BACK, DWELL DEEP, O INHABITANTS OF DEDAN; FOR I WILL BRING? THE CALAMITY OF ESAU UPON HIM, THE TIME THAT I WILL VISIT HIM.LF# 9 IF GRAPEGATHERERS COME TO THEE, WOULD THEY NOT LEAVE SOME GLEANINGF GRAPES? IF THIEVES BY NIGHT, THEY WILL DESTROY TILL THEY HAVE ENOUGH.J# 10 BUT I HAVE MADE ESAU BARE, I HAVE UNCOVERED HIS SECRET PLACES, AND HEN SHALL NOT BE ABLE TO HIDE HIMSELF: HIS SEED IS SPOILED, AND HIS BRETHREN, AND HIS NEIGHBOURS, AND HE IS NOT.PK# 11 LEAVE THY FATHERLESS CHILDREN, I WILL PRESERVE THEM ALIVE00v@<:D%5%T6%! !; AND LET THYA WIDOWS TRUST IN ME.M# 12 FOR THUS SAITH THE LORD; BEHOLD, THEY WHOSE JUDGMENT WAS NOT TO DRINK OFI THE CUP HAVE ASSUREDLY DRUNKEN; AND ART THOU HE THAT SHALL ALTOGETHER GOAM UNPUNISHED? THOU SHALT NOT GO UNPUNISHED, BUT THOU SHALT SURELY DRINK OF IT.HK# 13 FOR I HAVE SWORN BY MYSELF, SAITH THE LORD, THAT BOZRAH SHALL BECOME A I DESOLATION, A REPROACH, A WASTE, AND A CURSE; AND ALL THE CITIES THEREOFH SHALL BE PERPETUAL WASTES.LL# 14 I HAVE HEARD A RUMOUR FROM THE LORD, AND AN AMBASSADOR IS SENT UNTO THEN HEATHEN, SAYING, GATHER YE TOGETHER, AND COME AGAINST HER, AND RISE UP TO THE BATTLE.J# 15 FOR, LO, I WILL MAKE THEE SMALL AMONG THE HEATHEN, AND DESPISED AMONG MEN.UI# 16 THY TERRIBLENESS HATH DECEIVED THEE, AND THE PRIDE OF THINE HEART, OHM THOU THAT DWELLEST IN THE CLEFTS OF THE ROCK, THAT HOLDEST THE HEIGHT OF THEM HILL: THOUGH THOU SHOULDEST MAKE THY NEST AS HIGH AS THE EAGLE, I WILL BRINGA' THEE DOWN FROM THENCE, SAITH THE LORD.RI# 17 ALSO EDOM SHALL BE A DESOLATION: EVERY ONE THAT GOETH BY IT SHALL BEI7 ASTONISHED, AND SHALL HISS AT ALL THE PLAGUES THEREOF. G# 18 AS IN THE OVERTHROW OF SODOM AND GOMORRAH AND THE NEIGHBOUR CITIES N THEREOF, SAITH THE LORD, NO MAN SHALL ABIDE THERE, NEITHER SHALL A SON OF MAN DWELL IN IT.AM# 19 BEHOLD, HE SHALL COME UP LIKE A LION FROM THE SWELLING OF JORDAN AGAINSTON THE HABITATION OF THE STRONG: BUT I WILL SUDDENLY MAKE HIM RUN AWAY FROM HER:N AND WHO IS A CHOSEN MAN, THAT I MAY APPOINT OVER HER? FOR WHO IS LIKE ME? ANDN WHO WILL APPOINT ME THE TIME? AND WHO IS THAT SHEPHERD THAT WILL STAND BEFORE ME?M# 20 THEREFORE HEAR THE COUNSEL OF THE LORD, THAT HE HATH TAKEN AGAINST EDOM;OJ AND HIS PURPOSES, THAT HE HATH PURPOSED AGAINST THE INHABITANTS OF TEMAN:N SURELY THE LEAST OF THE FLOCK SHALL DRAW THEM OUT: SURELY HE SHALL MAKE THEIR HABITATIONS DESOLATE WITH THEM.H# 21 THE EARTH IS MOVED AT THE NOISE OF THEIR FALL, AT THE CRY THE NOISE" THEREOF WAS HEARD IN THE RED SEA.M# 22 BEHOLD, HE SHALL COME UP AND FLY AS THE EAGLE, AND SPREAD HIS WINGS OVERAL BOZRAH: AND AT THAT DAY SHALL THE HEART OF THE MIGHTY MEN OF EDOM BE AS THE HEART OF A WOMAN IN HER PANGS. H# 23 CONCERNING DAMASCUS. HAMATH IS CONFOUNDED, AND ARPAD: FOR THEY HAVEJ HEARD EVIL TIDINGS: THEY ARE FAINTHEARTED; THERE IS SORROW ON THE SEA; IT CANNOT BE QUIET.EI# 24 DAMASCUS IS WAXED FEEBLE, AND TURNETH HERSELF TO FLEE, AND FEAR HATHIJ SEIZED ON HER: ANGUISH AND SORROWS HAVE TAKEN HER, AS A WOMAN IN TRAVAIL.<# 25 HOW IS THE CITY OF PRAISE NOT LEFT, THE CITY OF MY JOY!J# 26 THEREFORE HER YOUNG MEN SHALL FALL IN HER STREETS, AND ALL THE MEN OF; WAR SHALL BE CUT OFF IN THAT DAY, SAITH THE LORD OF HOSTS.NK# 27 AND I WILL KINDLE A FIRE IN THE WALL OF DAMASCUS, AND IT SHALL CONSUME  THE PALACES OF BENHADAD.TB# 28 CONCERNING KEDAR, AND CONCERNING THE KINGDOMS OF HAZOR, WHICHN NEBUCHADREZZAR KING OF BABYLON SHALL SMITE, THUS SAITH THE LORD; ARISE YE, GO, UP TO KEDAR, AND SPOIL THE MEN OF THE EAST.J# 29 THEIR TENTS AND THEIR FLOCKS SHALL THEY TAKE AWAY: THEY SHALL TAKE TOM THEMSELVES THEIR CURTAINS, AND ALL THEIR VESSELS, AND THEIR CAMELS; AND THEYR, SHALL CRY UNTO THEM, FEAR IS ON EVERY SIDE.L# 30 FLEE, GET YOU FAR OFF, DWELL DEEP, O YE INHABITANTS OF HAZOR, SAITH THEM LORD; FOR NEBUCHADREZZAR KING OF BABYLON HATH TAKEN COUNSEL AGAINST YOU, ANDH& HATH CONCEIVED A PURPOSE AGAINST YOU.K# 31 ARISE, GET YOU UP UNTO THE WEALTHY NATION, THAT DWELLETH WITHOUT CARE,DF SAITH THE LORD, WHICH HAVE NEITHER GATES NOR BARS, WHICH DWELL ALONE.K# 32 AND THEIR CAMELS SHALL BE A BOOTY, AND THE MULTITUDE OF THEIR CATTLE AHN SPOIL: AND I WILL SCATTER INTO ALL WINDS THEM THAT ARE IN THE UTMOST CORNERS;H AND I WILL BRING THEIR CALAMITY FROM ALL SIDES THEREOF, SAITH THE LORD.J# 33 AND HAZOR SHALL BE A DWELLING FOR DRAGONS, AND A DESOLATION FOR EVER:@ THERE SHALL NO MAN ABIDE THERE, NOR ANY SON OF MAN DWELL IN IT.K# 34 THE WORD OF THE LORD THAT CAME TO JEREMIAH THE PROPHET AGAINST ELAM INE> THE BEGINNING OF THE REIGN OF ZEDEKIAH KING OF JUDAH, SAYING,L# 35 THUS SAITH TH00vH<8<%X>%+%O-%TADATADATAE LORD OF HOSTS; BEHOLD, I WILL BREAK THE BOW OF ELAM, THE CHIEF OF THEIR MIGHT.H# 36 AND UPON ELAM WILL I BRING THE FOUR WINDS FROM THE FOUR QUARTERS OFL HEAVEN, AND WILL SCATTER THEM TOWARD ALL THOSE WINDS; AND THERE SHALL BE NO4 NATION WHITHER THE OUTCASTS OF ELAM SHALL NOT COME.J# 37 FOR I WILL CAUSE ELAM TO BE DISMAYED BEFORE THEIR ENEMIES, AND BEFOREK THEM THAT SEEK THEIR LIFE: AND I WILL BRING EVIL UPON THEM, EVEN MY FIERCEII ANGER, SAITH THE LORD; AND I WILL SEND THE SWORD AFTER THEM, TILL I HAVED CONSUMED THEM:,L# 38 AND I WILL SET MY THRONE IN ELAM, AND WILL DESTROY FROM THENCE THE KING! AND THE PRINCES, SAITH THE LORD.HJ# 39 BUT IT SHALL COME TO PASS IN THE LATTER DAYS, THAT I WILL BRING AGAIN' THE CAPTIVITY OF ELAM, SAITH THE LORD. = CHAPTER 50 ML# 1 THE WORD THAT THE LORD SPAKE AGAINST BABYLON AND AGAINST THE LAND OF THE# CHALDEANS BY JEREMIAH THE PROPHET. E# 2 DECLARE YE AMONG THE NATIONS, AND PUBLISH, AND SET UP A STANDARD;HM PUBLISH, AND CONCEAL NOT: SAY, BABYLON IS TAKEN, BEL IS CONFOUNDED, MERODACH H IS BROKEN IN PIECES; HER IDOLS ARE CONFOUNDED, HER IMAGES ARE BROKEN IN PIECES.J# 3 FOR OUT OF THE NORTH THERE COMETH UP A NATION AGAINST HER, WHICH SHALLN MAKE HER LAND DESOLATE, AND NONE SHALL DWELL THEREIN: THEY SHALL REMOVE, THEY" SHALL DEPART, BOTH MAN AND BEAST.K# 4 IN THOSE DAYS, AND IN THAT TIME, SAITH THE LORD, THE CHILDREN OF ISRAELOM SHALL COME, THEY AND THE CHILDREN OF JUDAH TOGETHER, GOING AND WEEPING: THEY' SHALL GO, AND SEEK THE LORD THEIR GOD.SH# 5 THEY SHALL ASK THE WAY TO ZION WITH THEIR FACES THITHERWARD, SAYING,I COME, AND LET US JOIN OURSELVES TO THE LORD IN A PERPETUAL COVENANT THATE SHALL NOT BE FORGOTTEN.J# 6 MY PEOPLE HATH BEEN LOST SHEEP: THEIR SHEPHERDS HAVE CAUSED THEM TO GOI ASTRAY, THEY HAVE TURNED THEM AWAY ON THE MOUNTAINS: THEY HAVE GONE FROMD: MOUNTAIN TO HILL, THEY HAVE FORGOTTEN THEIR RESTINGPLACE.J# 7 ALL THAT FOUND THEM HAVE DEVOURED THEM: AND THEIR ADVERSARIES SAID, WEI OFFEND NOT, BECAUSE THEY HAVE SINNED AGAINST THE LORD, THE HABITATION OFY3 JUSTICE, EVEN THE LORD, THE HOPE OF THEIR FATHERS.,K# 8 REMOVE OUT OF THE MIDST OF BABYLON, AND GO FORTH OUT OF THE LAND OF THEN5 CHALDEANS, AND BE AS THE HE GOATS BEFORE THE FLOCKS.HM# 9 FOR, LO, I WILL RAISE AND CAUSE TO COME UP AGAINST BABYLON AN ASSEMBLY OFEM GREAT NATIONS FROM THE NORTH COUNTRY: AND THEY SHALL SET THEMSELVES IN ARRAYRK AGAINST HER; FROM THENCE SHE SHALL BE TAKEN: THEIR ARROWS SHALL BE AS OF AE. MIGHTY EXPERT MAN; NONE SHALL RETURN IN VAIN.I# 10 AND CHALDEA SHALL BE A SPOIL: ALL THAT SPOIL HER SHALL BE SATISFIED,F SAITH THE LORD.G# 11 BECAUSE YE WERE GLAD, BECAUSE YE REJOICED, O YE DESTROYERS OF MINEHI HERITAGE, BECAUSE YE ARE GROWN FAT AS THE HEIFER AT GRASS, AND BELLOW ASW BULLS; E# 12 YOUR MOTHER SHALL BE SORE CONFOUNDED; SHE THAT BARE YOU SHALL BEOL ASHAMED: BEHOLD, THE HINDERMOST OF THE NATIONS SHALL BE A WILDERNESS, A DRY LAND, AND A DESERT.M# 13 BECAUSE OF THE WRATH OF THE LORD IT SHALL NOT BE INHABITED, BUT IT SHALLNM BE WHOLLY DESOLATE: EVERY ONE THAT GOETH BY BABYLON SHALL BE ASTONISHED, ANDD HISS AT ALL HER PLAGUES.BJ# 14 PUT YOURSELVES IN ARRAY AGAINST BABYLON ROUND ABOUT: ALL YE THAT BENDN THE BOW, SHOOT AT HER, SPARE NO ARROWS: FOR SHE HATH SINNED AGAINST THE LORD.L# 15 SHOUT AGAINST HER ROUND ABOUT: SHE HATH GIVEN HER HAND: HER FOUNDATIONSL ARE FALLEN, HER WALLS ARE THROWN DOWN: FOR IT IS THE VENGEANCE OF THE LORD:8 TAKE VENGEANCE UPON HER; AS SHE HATH DONE, DO UNTO HER.L# 16 CUT OFF THE SOWER FROM BABYLON, AND HIM THAT HANDLETH THE SICKLE IN THEL TIME OF HARVEST: FOR FEAR OF THE OPPRESSING SWORD THEY SHALL TURN EVERY ONE> TO HIS PEOPLE, AND THEY SHALL FLEE EVERY ONE TO HIS OWN LAND.K# 17 ISRAEL IS A SCATTERED SHEEP; THE LIONS HAVE DRIVEN HIM AWAY: FIRST THE.H KING OF ASSYRIA HATH DEVOURED HIM; AND LAST THIS NEBUCHADREZZAR KING OF BABYLON HATH BROKEN HIS BONES.TI# 18 THEREFORE THUS SAITH THE LORD OF HOSTS, THE GOD OF ISRAEL; BEHOLD, I M WILL PUNISH THE KING OF BABYLON AND HIS LAND, AS I HAVE PUNISHED THE KING OFA ASSYR00vP<:D%5%T6%! !IA.TJ# 19 AND I WILL BRING ISRAEL AGAIN TO HIS HABITATION, AND HE SHALL FEED ONJ CARMEL AND BASHAN, AND HIS SOUL SHALL BE SATISFIED UPON MOUNT EPHRAIM AND GILEAD.L# 20 IN THOSE DAYS, AND IN THAT TIME, SAITH THE LORD, THE INIQUITY OF ISRAELN SHALL BE SOUGHT FOR, AND THERE SHALL BE NONE; AND THE SINS OF JUDAH, AND THEY; SHALL NOT BE FOUND: FOR I WILL PARDON THEM WHOM I RESERVE.OJ# 21 GO UP AGAINST THE LAND OF MERATHAIM, EVEN AGAINST IT, AND AGAINST THEL INHABITANTS OF PEKOD: WASTE AND UTTERLY DESTROY AFTER THEM, SAITH THE LORD,4 AND DO ACCORDING TO ALL THAT I HAVE COMMANDED THEE.@# 22 A SOUND OF BATTLE IS IN THE LAND, AND OF GREAT DESTRUCTION.H# 23 HOW IS THE HAMMER OF THE WHOLE EARTH CUT ASUNDER AND BROKEN! HOW IS/ BABYLON BECOME A DESOLATION AMONG THE NATIONS! J# 24 I HAVE LAID A SNARE FOR THEE, AND THOU ART ALSO TAKEN, O BABYLON, ANDH THOU WAST NOT AWARE: THOU ART FOUND, AND ALSO CAUGHT, BECAUSE THOU HAST STRIVEN AGAINST THE LORD.L# 25 THE LORD HATH OPENED HIS ARMOURY, AND HATH BROUGHT FORTH THE WEAPONS OFN HIS INDIGNATION: FOR THIS IS THE WORK OF THE LORD GOD OF HOSTS IN THE LAND OF THE CHALDEANS.TL# 26 COME AGAINST HER FROM THE UTMOST BORDER, OPEN HER STOREHOUSES: CAST HERB UP AS HEAPS, AND DESTROY HER UTTERLY: LET NOTHING OF HER BE LEFT.M# 27 SLAY ALL HER BULLOCKS; LET THEM GO DOWN TO THE SLAUGHTER: WOE UNTO THEM!Y5 FOR THEIR DAY IS COME, THE TIME OF THEIR VISITATION.OJ# 28 THE VOICE OF THEM THAT FLEE AND ESCAPE OUT OF THE LAND OF BABYLON, TOH DECLARE IN ZION THE VENGEANCE OF THE LORD OUR GOD, THE VENGEANCE OF HIS TEMPLE.I# 29 CALL TOGETHER THE ARCHERS AGAINST BABYLON: ALL YE THAT BEND THE BOW,6E CAMP AGAINST IT ROUND ABOUT; LET NONE THEREOF ESCAPE: RECOMPENSE HERRM ACCORDING TO HER WORK; ACCORDING TO ALL THAT SHE HATH DONE, DO UNTO HER: FOR F SHE HATH BEEN PROUD AGAINST THE LORD, AGAINST THE HOLY ONE OF ISRAEL.J# 30 THEREFORE SHALL HER YOUNG MEN FALL IN THE STREETS, AND ALL HER MEN OF2 WAR SHALL BE CUT OFF IN THAT DAY, SAITH THE LORD.H# 31 BEHOLD, I AM AGAINST THEE, O THOU MOST PROUD, SAITH THE LORD GOD OF= HOSTS: FOR THY DAY IS COME, THE TIME THAT I WILL VISIT THEE. L# 32 AND THE MOST PROUD SHALL STUMBLE AND FALL, AND NONE SHALL RAISE HIM UP:L AND I WILL KINDLE A FIRE IN HIS CITIES, AND IT SHALL DEVOUR ALL ROUND ABOUT HIM.OM# 33 THUS SAITH THE LORD OF HOSTS; THE CHILDREN OF ISRAEL AND THE CHILDREN OFEI JUDAH WERE OPPRESSED TOGETHER: AND ALL THAT TOOK THEM CAPTIVES HELD THEM # FAST; THEY REFUSED TO LET THEM GO.,F# 34 THEIR REDEEMER IS STRONG; THE LORD OF HOSTS IS HIS NAME: HE SHALLM THROUGHLY PLEAD THEIR CAUSE, THAT HE MAY GIVE REST TO THE LAND, AND DISQUIETE THE INHABITANTS OF BABYLON.L# 35 A SWORD IS UPON THE CHALDEANS, SAITH THE LORD, AND UPON THE INHABITANTS9 OF BABYLON, AND UPON HER PRINCES, AND UPON HER WISE MEN.H# 36 A SWORD IS UPON THE LIARS; AND THEY SHALL DOTE: A SWORD IS UPON HER( MIGHTY MEN; AND THEY SHALL BE DISMAYED.L# 37 A SWORD IS UPON THEIR HORSES, AND UPON THEIR CHARIOTS, AND UPON ALL THEM MINGLED PEOPLE THAT ARE IN THE MIDST OF HER; AND THEY SHALL BECOME AS WOMEN:H9 A SWORD IS UPON HER TREASURES; AND THEY SHALL BE ROBBED.DL# 38 A DROUGHT IS UPON HER WATERS; AND THEY SHALL BE DRIED UP: FOR IT IS THE: LAND OF GRAVEN IMAGES, AND THEY ARE MAD UPON THEIR IDOLS.H# 39 THEREFORE THE WILD BEASTS OF THE DESERT WITH THE WILD BEASTS OF THEM ISLANDS SHALL DWELL THERE, AND THE OWLS SHALL DWELL THEREIN: AND IT SHALL BEEL NO MORE INHABITED FOR EVER; NEITHER SHALL IT BE DWELT IN FROM GENERATION TO GENERATION.J# 40 AS GOD OVERTHREW SODOM AND GOMORRAH AND THE NEIGHBOUR CITIES THEREOF,J SAITH THE LORD; SO SHALL NO MAN ABIDE THERE, NEITHER SHALL ANY SON OF MAN DWELL THEREIN.TM# 41 BEHOLD, A PEOPLE SHALL COME FROM THE NORTH, AND A GREAT NATION, AND MANYU7 KINGS SHALL BE RAISED UP FROM THE COASTS OF THE EARTH.EM# 42 THEY SHALL HOLD THE BOW AND THE LANCE: THEY ARE CRUEL, AND WILL NOT SHEWLM MERCY: THEIR VOICE SHALL ROAR LIKE THE SEA, AND THEY SHALL RIDE UPON HORSES, N EVERY ONE PUT IN ARRAY, LIKE A MAN TO THE BATTLE, AGAINST THEE, O DAUGHTER OF BAB00vX<8<%X>%+%O-%TADATADATAYLON.TK# 43 THE KING OF BABYLON HATH HEARD THE REPORT OF THEM, AND HIS HANDS WAXEDEF FEEBLE: ANGUISH TOOK HOLD OF HIM, AND PANGS AS OF A WOMAN IN TRAVAIL.J# 44 BEHOLD, HE SHALL COME UP LIKE A LION FROM THE SWELLING OF JORDAN UNTOJ THE HABITATION OF THE STRONG: BUT I WILL MAKE THEM SUDDENLY RUN AWAY FROMK HER: AND WHO IS A CHOSEN MAN, THAT I MAY APPOINT OVER HER? FOR WHO IS LIKEHI ME? AND WHO WILL APPOINT ME THE TIME? AND WHO IS THAT SHEPHERD THAT WILLA STAND BEFORE ME?AJ# 45 THEREFORE HEAR YE THE COUNSEL OF THE LORD, THAT HE HATH TAKEN AGAINSTI BABYLON; AND HIS PURPOSES, THAT HE HATH PURPOSED AGAINST THE LAND OF THEAN CHALDEANS: SURELY THE LEAST OF THE FLOCK SHALL DRAW THEM OUT: SURELY HE SHALL* MAKE THEIR HABITATION DESOLATE WITH THEM.M# 46 AT THE NOISE OF THE TAKING OF BABYLON THE EARTH IS MOVED, AND THE CRY ISS HEARD AMONG THE NATIONS.P = CHAPTER 51 M# 1 THUS SAITH THE LORD; BEHOLD, I WILL RAISE UP AGAINST BABYLON, AND AGAINSTRK THEM THAT DWELL IN THE MIDST OF THEM THAT RISE UP AGAINST ME, A DESTROYINGO WIND;K# 2 AND WILL SEND UNTO BABYLON FANNERS, THAT SHALL FAN HER, AND SHALL EMPTYIK HER LAND: FOR IN THE DAY OF TROUBLE THEY SHALL BE AGAINST HER ROUND ABOUT.EI# 3 AGAINST HIM THAT BENDETH LET THE ARCHER BEND HIS BOW, AND AGAINST HIM K THAT LIFTETH HIMSELF UP IN HIS BRIGANDINE: AND SPARE YE NOT HER YOUNG MEN;D! DESTROY YE UTTERLY ALL HER HOST. M# 4 THUS THE SLAIN SHALL FALL IN THE LAND OF THE CHALDEANS, AND THEY THAT ARER THRUST THROUGH IN HER STREETS.FK# 5 FOR ISRAEL HATH NOT BEEN FORSAKEN, NOR JUDAH OF HIS GOD, OF THE LORD OFBM HOSTS; THOUGH THEIR LAND WAS FILLED WITH SIN AGAINST THE HOLY ONE OF ISRAEL. L# 6 FLEE OUT OF THE MIDST OF BABYLON, AND DELIVER EVERY MAN HIS SOUL: BE NOTN CUT OFF IN HER INIQUITY; FOR THIS IS THE TIME OF THE LORDS VENGEANCE; HE WILL RENDER UNTO HER A RECOMPENCE.M# 7 BABYLON HATH BEEN A GOLDEN CUP IN THE LORDS HAND, THAT MADE ALL THE EARTHLN DRUNKEN: THE NATIONS HAVE DRUNKEN OF HER WINE; THEREFORE THE NATIONS ARE MAD.M# 8 BABYLON IS SUDDENLY FALLEN AND DESTROYED: HOWL FOR HER; TAKE BALM FOR HERO" PAIN, IF SO BE SHE MAY BE HEALED.M# 9 WE WOULD HAVE HEALED BABYLON, BUT SHE IS NOT HEALED: FORSAKE HER, AND LETBM US GO EVERY ONE INTO HIS OWN COUNTRY: FOR HER JUDGMENT REACHETH UNTO HEAVEN,S$ AND IS LIFTED UP EVEN TO THE SKIES.L# 10 THE LORD HATH BROUGHT FORTH OUR RIGHTEOUSNESS: COME, AND LET US DECLARE& IN ZION THE WORK OF THE LORD OUR GOD.L# 11 MAKE BRIGHT THE ARROWS; GATHER THE SHIELDS: THE LORD HATH RAISED UP THEH SPIRIT OF THE KINGS OF THE MEDES: FOR HIS DEVICE IS AGAINST BABYLON, TOJ DESTROY IT; BECAUSE IT IS THE VENGEANCE OF THE LORD, THE VENGEANCE OF HIS TEMPLE.J# 12 SET UP THE STANDARD UPON THE WALLS OF BABYLON, MAKE THE WATCH STRONG,N SET UP THE WATCHMEN, PREPARE THE AMBUSHES: FOR THE LORD HATH BOTH DEVISED AND= DONE THAT WHICH HE SPAKE AGAINST THE INHABITANTS OF BABYLON. L# 13 O THOU THAT DWELLEST UPON MANY WATERS, ABUNDANT IN TREASURES, THINE END. IS COME, AND THE MEASURE OF THY COVETOUSNESS.M# 14 THE LORD OF HOSTS HATH SWORN BY HIMSELF, SAYING, SURELY I WILL FILL THEEOM WITH MEN, AS WITH CATERPILLERS; AND THEY SHALL LIFT UP A SHOUT AGAINST THEE.TJ# 15 HE HATH MADE THE EARTH BY HIS POWER, HE HATH ESTABLISHED THE WORLD BYD HIS WISDOM, AND HATH STRETCHED OUT THE HEAVEN BY HIS UNDERSTANDING.F# 16 WHEN HE UTTERETH HIS VOICE, THERE IS A MULTITUDE OF WATERS IN THEM HEAVENS; AND HE CAUSETH THE VAPOURS TO ASCEND FROM THE ENDS OF THE EARTH: HEID MAKETH LIGHTNINGS WITH RAIN, AND BRINGETH FORTH THE WIND OUT OF HIS TREASURES. J# 17 EVERY MAN IS BRUTISH BY HIS KNOWLEDGE; EVERY FOUNDER IS CONFOUNDED BYL THE GRAVEN IMAGE: FOR HIS MOLTEN IMAGE IS FALSEHOOD, AND THERE IS NO BREATH IN THEM.SI# 18 THEY ARE VANITY, THE WORK OF ERRORS: IN THE TIME OF THEIR VISITATIONU THEY SHALL PERISH.NG# 19 THE PORTION OF JACOB IS NOT LIKE THEM; FOR HE IS THE FORMER OF ALLTK THINGS: AND ISRAEL IS THE ROD OF HIS INHERITANCE: THE LORD OF HOSTS IS HISH NAME.M# 20 THOU ART MY BATTLE AXE AND WEAPONS OF WAR: FOR WITH THEE WILL I BREAK INE; PIECES THE NATI00v`<:D%5%T6%! !ONS, AND WITH THEE WILL I DESTROY KINGDOMS;OK# 21 AND WITH THEE WILL I BREAK IN PIECES THE HORSE AND HIS RIDER; AND WITH 7 THEE WILL I BREAK IN PIECES THE CHARIOT AND HIS RIDER; L# 22 WITH THEE ALSO WILL I BREAK IN PIECES MAN AND WOMAN; AND WITH THEE WILLJ I BREAK IN PIECES OLD AND YOUNG; AND WITH THEE WILL I BREAK IN PIECES THE YOUNG MAN AND THE MAID;J# 23 I WILL ALSO BREAK IN PIECES WITH THEE THE SHEPHERD AND HIS FLOCK; ANDJ WITH THEE WILL I BREAK IN PIECES THE HUSBANDMAN AND HIS YOKE OF OXEN; AND6 WITH THEE WILL I BREAK IN PIECES CAPTAINS AND RULERS.M# 24 AND I WILL RENDER UNTO BABYLON AND TO ALL THE INHABITANTS OF CHALDEA ALLIF THEIR EVIL THAT THEY HAVE DONE IN ZION IN YOUR SIGHT, SAITH THE LORD.L# 25 BEHOLD, I AM AGAINST THEE, O DESTROYING MOUNTAIN, SAITH THE LORD, WHICHJ DESTROYEST ALL THE EARTH: AND I WILL STRETCH OUT MINE HAND UPON THEE, ANDD ROLL THEE DOWN FROM THE ROCKS, AND WILL MAKE THEE A BURNT MOUNTAIN.J# 26 AND THEY SHALL NOT TAKE OF THEE A STONE FOR A CORNER, NOR A STONE FORB FOUNDATIONS; BUT THOU SHALT BE DESOLATE FOR EVER, SAITH THE LORD.J# 27 SET YE UP A STANDARD IN THE LAND, BLOW THE TRUMPET AMONG THE NATIONS,K PREPARE THE NATIONS AGAINST HER, CALL TOGETHER AGAINST HER THE KINGDOMS OFHN ARARAT, MINNI, AND ASHCHENAZ; APPOINT A CAPTAIN AGAINST HER; CAUSE THE HORSES& TO COME UP AS THE ROUGH CATERPILLERS.E# 28 PREPARE AGAINST HER THE NATIONS WITH THE KINGS OF THE MEDES, THE F CAPTAINS THEREOF, AND ALL THE RULERS THEREOF, AND ALL THE LAND OF HIS DOMINION.I# 29 AND THE LAND SHALL TREMBLE AND SORROW: FOR EVERY PURPOSE OF THE LORDEM SHALL BE PERFORMED AGAINST BABYLON, TO MAKE THE LAND OF BABYLON A DESOLATIONN WITHOUT AN INHABITANT.AK# 30 THE MIGHTY MEN OF BABYLON HAVE FORBORN TO FIGHT, THEY HAVE REMAINED INSM THEIR HOLDS: THEIR MIGHT HATH FAILED; THEY BECAME AS WOMEN: THEY HAVE BURNEDU) HER DWELLINGPLACES; HER BARS ARE BROKEN.TK# 31 ONE POST SHALL RUN TO MEET ANOTHER, AND ONE MESSENGER TO MEET ANOTHER,R? TO SHEW THE KING OF BABYLON THAT HIS CITY IS TAKEN AT ONE END,LK# 32 AND THAT THE PASSAGES ARE STOPPED, AND THE REEDS THEY HAVE BURNED WITHR) FIRE, AND THE MEN OF WAR ARE AFFRIGHTED.BI# 33 FOR THUS SAITH THE LORD OF HOSTS, THE GOD OF ISRAEL; THE DAUGHTER OFNI BABYLON IS LIKE A THRESHINGFLOOR, IT IS TIME TO THRESH HER: YET A LITTLEA/ WHILE, AND THE TIME OF HER HARVEST SHALL COME.UM# 34 NEBUCHADREZZAR THE KING OF BABYLON HATH DEVOURED ME, HE HATH CRUSHED ME,NK HE HATH MADE ME AN EMPTY VESSEL, HE HATH SWALLOWED ME UP LIKE A DRAGON, HE > HATH FILLED HIS BELLY WITH MY DELICATES, HE HATH CAST ME OUT.G# 35 THE VIOLENCE DONE TO ME AND TO MY FLESH BE UPON BABYLON, SHALL THERL INHABITANT OF ZION SAY; AND MY BLOOD UPON THE INHABITANTS OF CHALDEA, SHALL JERUSALEM SAY.BL# 36 THEREFORE THUS SAITH THE LORD; BEHOLD, I WILL PLEAD THY CAUSE, AND TAKEI VENGEANCE FOR THEE; AND I WILL DRY UP HER SEA, AND MAKE HER SPRINGS DRY. D# 37 AND BABYLON SHALL BECOME HEAPS, A DWELLINGPLACE FOR DRAGONS, AN5 ASTONISHMENT, AND AN HISSING, WITHOUT AN INHABITANT.J# 38 THEY SHALL ROAR TOGETHER LIKE LIONS: THEY SHALL YELL AS LIONS WHELPS.J# 39 IN THEIR HEAT I WILL MAKE THEIR FEASTS, AND I WILL MAKE THEM DRUNKEN,L THAT THEY MAY REJOICE, AND SLEEP A PERPETUAL SLEEP, AND NOT WAKE, SAITH THE LORD.J# 40 I WILL BRING THEM DOWN LIKE LAMBS TO THE SLAUGHTER, LIKE RAMS WITH HE GOATS.FD# 41 HOW IS SHESHACH TAKEN! AND HOW IS THE PRAISE OF THE WHOLE EARTHD SURPRISED! HOW IS BABYLON BECOME AN ASTONISHMENT AMONG THE NATIONS!J# 42 THE SEA IS COME UP UPON BABYLON: SHE IS COVERED WITH THE MULTITUDE OF THE WAVES THEREOF.SF# 43 HER CITIES ARE A DESOLATION, A DRY LAND, AND A WILDERNESS, A LANDC WHEREIN NO MAN DWELLETH, NEITHER DOTH ANY SON OF MAN PASS THEREBY.EH# 44 AND I WILL PUNISH BEL IN BABYLON, AND I WILL BRING FORTH OUT OF HISF MOUTH THAT WHICH HE HATH SWALLOWED UP: AND THE NATIONS SHALL NOT FLOWA TOGETHER ANY MORE UNTO HIM: YEA, THE WALL OF BABYLON SHALL FALL.DK# 45 MY PEOPLE, GO YE OUT OF THE MIDST OF HER, AND DELIVER YE EVERY MAN HISO( SOUL FROM THE FIERCE ANGER OF THE LORD.H# 46 AND LEST 00vh<8<%X>%+%O-%TADATADATAYOUR HEART FAINT, AND YE FEAR FOR THE RUMOUR THAT SHALL BEH HEARD IN THE LAND; A RUMOUR SHALL BOTH COME ONE YEAR, AND AFTER THAT INJ ANOTHER YEAR SHALL COME A RUMOUR, AND VIOLENCE IN THE LAND, RULER AGAINST RULER.NG# 47 THEREFORE, BEHOLD, THE DAYS COME, THAT I WILL DO JUDGMENT UPON THENN GRAVEN IMAGES OF BABYLON: AND HER WHOLE LAND SHALL BE CONFOUNDED, AND ALL HER& SLAIN SHALL FALL IN THE MIDST OF HER.K# 48 THEN THE HEAVEN AND THE EARTH, AND ALL THAT IS THEREIN, SHALL SING FOREN BABYLON: FOR THE SPOILERS SHALL COME UNTO HER FROM THE NORTH, SAITH THE LORD.L# 49 AS BABYLON HATH CAUSED THE SLAIN OF ISRAEL TO FALL, SO AT BABYLON SHALL! FALL THE SLAIN OF ALL THE EARTH.DK# 50 YE THAT HAVE ESCAPED THE SWORD, GO AWAY, STAND NOT STILL: REMEMBER THEA6 LORD AFAR OFF, AND LET JERUSALEM COME INTO YOUR MIND.J# 51 WE ARE CONFOUNDED, BECAUSE WE HAVE HEARD REPROACH: SHAME HATH COVEREDK OUR FACES: FOR STRANGERS ARE COME INTO THE SANCTUARIES OF THE LORDS HOUSE.HE# 52 WHEREFORE, BEHOLD, THE DAYS COME, SAITH THE LORD, THAT I WILL DONL JUDGMENT UPON HER GRAVEN IMAGES: AND THROUGH ALL HER LAND THE WOUNDED SHALL GROAN. L# 53 THOUGH BABYLON SHOULD MOUNT UP TO HEAVEN, AND THOUGH SHE SHOULD FORTIFYL THE HEIGHT OF HER STRENGTH, YET FROM ME SHALL SPOILERS COME UNTO HER, SAITH THE LORD.I# 54 A SOUND OF A CRY COMETH FROM BABYLON, AND GREAT DESTRUCTION FROM THER LAND OF THE CHALDEANS:VH# 55 BECAUSE THE LORD HATH SPOILED BABYLON, AND DESTROYED OUT OF HER THEN GREAT VOICE; WHEN HER WAVES DO ROAR LIKE GREAT WATERS, A NOISE OF THEIR VOICE IS UTTERED:L# 56 BECAUSE THE SPOILER IS COME UPON HER, EVEN UPON BABYLON, AND HER MIGHTYF MEN ARE TAKEN, EVERY ONE OF THEIR BOWS IS BROKEN: FOR THE LORD GOD OF" RECOMPENCES SHALL SURELY REQUITE.K# 57 AND I WILL MAKE DRUNK HER PRINCES, AND HER WISE MEN, HER CAPTAINS, ANDRL HER RULERS, AND HER MIGHTY MEN: AND THEY SHALL SLEEP A PERPETUAL SLEEP, AND; NOT WAKE, SAITH THE KING, WHOSE NAME IS THE LORD OF HOSTS. F# 58 THUS SAITH THE LORD OF HOSTS; THE BROAD WALLS OF BABYLON SHALL BEM UTTERLY BROKEN, AND HER HIGH GATES SHALL BE BURNED WITH FIRE; AND THE PEOPLE,I SHALL LABOUR IN VAIN, AND THE FOLK IN THE FIRE, AND THEY SHALL BE WEARY. M# 59 THE WORD WHICH JEREMIAH THE PROPHET COMMANDED SERAIAH THE SON OF NERIAH,WG THE SON OF MAASEIAH, WHEN HE WENT WITH ZEDEKIAH THE KING OF JUDAH INTOLN BABYLON IN THE FOURTH YEAR OF HIS REIGN. AND THIS SERAIAH WAS A QUIET PRINCE.L# 60 SO JEREMIAH WROTE IN A BOOK ALL THE EVIL THAT SHOULD COME UPON BABYLON,7 EVEN ALL THESE WORDS THAT ARE WRITTEN AGAINST BABYLON.OI# 61 AND JEREMIAH SAID TO SERAIAH, WHEN THOU COMEST TO BABYLON, AND SHALTL% SEE, AND SHALT READ ALL THESE WORDS;,M# 62 THEN SHALT THOU SAY, O LORD, THOU HAST SPOKEN AGAINST THIS PLACE, TO CUTSI IT OFF, THAT NONE SHALL REMAIN IN IT, NEITHER MAN NOR BEAST, BUT THAT ITH SHALL BE DESOLATE FOR EVER.K# 63 AND IT SHALL BE, WHEN THOU HAST MADE AN END OF READING THIS BOOK, THAT H THOU SHALT BIND A STONE TO IT, AND CAST IT INTO THE MIDST OF EUPHRATES:M# 64 AND THOU SHALT SAY, THUS SHALL BABYLON SINK, AND SHALL NOT RISE FROM THEAK EVIL THAT I WILL BRING UPON HER: AND THEY SHALL BE WEARY. THUS FAR ARE THEA WORDS OF JEREMIAH.2 = CHAPTER 52 UH# 1 ZEDEKIAH WAS ONE AND TWENTY YEARS OLD WHEN HE BEGAN TO REIGN, AND HEH REIGNED ELEVEN YEARS IN JERUSALEM. AND HIS MOTHERS NAME WAS HAMUTAL THE DAUGHTER OF JEREMIAH OF LIBNAH.L# 2 AND HE DID THAT WHICH WAS EVIL IN THE EYES OF THE LORD, ACCORDING TO ALL THAT JEHOIAKIM HAD DONE. M# 3 FOR THROUGH THE ANGER OF THE LORD IT CAME TO PASS IN JERUSALEM AND JUDAH, L TILL HE HAD CAST THEM OUT FROM HIS PRESENCE, THAT ZEDEKIAH REBELLED AGAINST THE KING OF BABYLON. K# 4 AND IT CAME TO PASS IN THE NINTH YEAR OF HIS REIGN, IN THE TENTH MONTH,EL IN THE TENTH DAY OF THE MONTH, THAT NEBUCHADREZZAR KING OF BABYLON CAME, HEM AND ALL HIS ARMY, AGAINST JERUSALEM, AND PITCHED AGAINST IT, AND BUILT FORTSE AGAINST IT ROUND ABOUT.E# 5 SO THE CITY WAS BESIEGED UNTO THE ELEVENTH YEAR OF KING ZEDEKIAH. J# 6 AND IN THE FOURTH MONTH, IN THE NINTH DAY OF THE MONTH, THE FAMI00vp<:D%5%T6%! !NE WASI SORE IN THE CITY, SO THAT THERE WAS NO BREAD FOR THE PEOPLE OF THE LAND.NL# 7 THEN THE CITY WAS BROKEN UP, AND ALL THE MEN OF WAR FLED, AND WENT FORTHM OUT OF THE CITY BY NIGHT BY THE WAY OF THE GATE BETWEEN THE TWO WALLS, WHICH K WAS BY THE KINGS GARDEN; (NOW THE CHALDEANS WERE BY THE CITY ROUND ABOUT:)G' AND THEY WENT BY THE WAY OF THE PLAIN.OF# 8 BUT THE ARMY OF THE CHALDEANS PURSUED AFTER THE KING, AND OVERTOOKL ZEDEKIAH IN THE PLAINS OF JERICHO; AND ALL HIS ARMY WAS SCATTERED FROM HIM.K# 9 THEN THEY TOOK THE KING, AND CARRIED HIM UP UNTO THE KING OF BABYLON TO ? RIBLAH IN THE LAND OF HAMATH; WHERE HE GAVE JUDGMENT UPON HIM.LJ# 10 AND THE KING OF BABYLON SLEW THE SONS OF ZEDEKIAH BEFORE HIS EYES: HE. SLEW ALSO ALL THE PRINCES OF JUDAH IN RIBLAH.L# 11 THEN HE PUT OUT THE EYES OF ZEDEKIAH; AND THE KING OF BABYLON BOUND HIMM IN CHAINS, AND CARRIED HIM TO BABYLON, AND PUT HIM IN PRISON TILL THE DAY OF HIS DEATH.DI# 12 NOW IN THE FIFTH MONTH, IN THE TENTH DAY OF THE MONTH, WHICH WAS THE M NINETEENTH YEAR OF NEBUCHADREZZAR KING OF BABYLON, CAME NEBUZARADAN, CAPTAINB@ OF THE GUARD, WHICH SERVED THE KING OF BABYLON, INTO JERUSALEM,G# 13 AND BURNED THE HOUSE OF THE LORD, AND THE KINGS HOUSE; AND ALL THESI HOUSES OF JERUSALEM, AND ALL THE HOUSES OF THE GREAT MEN, BURNED HE WITH  FIRE:I# 14 AND ALL THE ARMY OF THE CHALDEANS, THAT WERE WITH THE CAPTAIN OF THEL: GUARD, BRAKE DOWN ALL THE WALLS OF JERUSALEM ROUND ABOUT.K# 15 THEN NEBUZARADAN THE CAPTAIN OF THE GUARD CARRIED AWAY CAPTIVE CERTAINNN OF THE POOR OF THE PEOPLE, AND THE RESIDUE OF THE PEOPLE THAT REMAINED IN THEJ CITY, AND THOSE THAT FELL AWAY, THAT FELL TO THE KING OF BABYLON, AND THE REST OF THE MULTITUDE.AM# 16 BUT NEBUZARADAN THE CAPTAIN OF THE GUARD LEFT CERTAIN OF THE POOR OF THEH* LAND FOR VINEDRESSERS AND FOR HUSBANDMEN.J# 17 ALSO THE PILLARS OF BRASS THAT WERE IN THE HOUSE OF THE LORD, AND THEK BASES, AND THE BRASEN SEA THAT WAS IN THE HOUSE OF THE LORD, THE CHALDEANSH5 BRAKE, AND CARRIED ALL THE BRASS OF THEM TO BABYLON.OM# 18 THE CALDRONS ALSO, AND THE SHOVELS, AND THE SNUFFERS, AND THE BOWLS, ANDCN THE SPOONS, AND ALL THE VESSELS OF BRASS WHEREWITH THEY MINISTERED, TOOK THEY AWAY.K# 19 AND THE BASONS, AND THE FIREPANS, AND THE BOWLS, AND THE CALDRONS, AND J THE CANDLESTICKS, AND THE SPOONS, AND THE CUPS; THAT WHICH WAS OF GOLD INL GOLD, AND THAT WHICH WAS OF SILVER IN SILVER, TOOK THE CAPTAIN OF THE GUARD AWAY.J# 20 THE TWO PILLARS, ONE SEA, AND TWELVE BRASEN BULLS THAT WERE UNDER THEN BASES, WHICH KING SOLOMON HAD MADE IN THE HOUSE OF THE LORD: THE BRASS OF ALL" THESE VESSELS WAS WITHOUT WEIGHT.F# 21 AND CONCERNING THE PILLARS, THE HEIGHT OF ONE PILLAR WAS EIGHTEENH CUBITS; AND A FILLET OF TWELVE CUBITS DID COMPASS IT; AND THE THICKNESS) THEREOF WAS FOUR FINGERS: IT WAS HOLLOW.OL# 22 AND A CHAPITER OF BRASS WAS UPON IT; AND THE HEIGHT OF ONE CHAPITER WASK FIVE CUBITS, WITH NETWORK AND POMEGRANATES UPON THE CHAPITERS ROUND ABOUT,NI ALL OF BRASS. THE SECOND PILLAR ALSO AND THE POMEGRANATES WERE LIKE UNTOM THESE.DF# 23 AND THERE WERE NINETY AND SIX POMEGRANATES ON A SIDE; AND ALL THE; POMEGRANATES UPON THE NETWORK WERE AN HUNDRED ROUND ABOUT.PD# 24 AND THE CAPTAIN OF THE GUARD TOOK SERAIAH THE CHIEF PRIEST, AND@ ZEPHANIAH THE SECOND PRIEST, AND THE THREE KEEPERS OF THE DOOR:L# 25 HE TOOK ALSO OUT OF THE CITY AN EUNUCH, WHICH HAD THE CHARGE OF THE MENJ OF WAR; AND SEVEN MEN OF THEM THAT WERE NEAR THE KINGS PERSON, WHICH WEREJ FOUND IN THE CITY; AND THE PRINCIPAL SCRIBE OF THE HOST, WHO MUSTERED THEL PEOPLE OF THE LAND; AND THREESCORE MEN OF THE PEOPLE OF THE LAND, THAT WERE FOUND IN THE MIDST OF THE CITY.K# 26 SO NEBUZARADAN THE CAPTAIN OF THE GUARD TOOK THEM, AND BROUGHT THEM TOR THE KING OF BABYLON TO RIBLAH.AK# 27 AND THE KING OF BABYLON SMOTE THEM, AND PUT THEM TO DEATH IN RIBLAH IN M THE LAND OF HAMATH. THUS JUDAH WAS CARRIED AWAY CAPTIVE OUT OF HIS OWN LAND.MH# 28 THIS IS THE PEOPLE WHOM NEBUCHADREZZAR CARRIED AWAY CAPTIVE: IN THE7 SEVENTH YEAR THREE THOUSAND JEWS AND THREE AN00vx%+%O-%TADATADATAD TWENTY:J# 29 IN THE EIGHTEENTH YEAR OF NEBUCHADREZZAR HE CARRIED AWAY CAPTIVE FROM0 JERUSALEM EIGHT HUNDRED THIRTY AND TWO PERSONS:F# 30 IN THE THREE AND TWENTIETH YEAR OF NEBUCHADREZZAR NEBUZARADAN THEN CAPTAIN OF THE GUARD CARRIED AWAY CAPTIVE OF THE JEWS SEVEN HUNDRED FORTY ANDB FIVE PERSONS: ALL THE PERSONS WERE FOUR THOUSAND AND SIX HUNDRED.L# 31 AND IT CAME TO PASS IN THE SEVEN AND THIRTIETH YEAR OF THE CAPTIVITY OFN JEHOIACHIN KING OF JUDAH, IN THE TWELFTH MONTH, IN THE FIVE AND TWENTIETH DAYI OF THE MONTH, THAT EVILMERODACH KING OF BABYLON IN THE FIRST YEAR OF HISTL REIGN LIFTED UP THE HEAD OF JEHOIACHIN KING OF JUDAH, AND BROUGHT HIM FORTH OUT OF PRISON.RJ# 32 AND SPAKE KINDLY UNTO HIM, AND SET HIS THRONE ABOVE THE THRONE OF THE% KINGS THAT WERE WITH HIM IN BABYLON,M# 33 AND CHANGED HIS PRISON GARMENTS: AND HE DID CONTINUALLY EAT BREAD BEFORE  HIM ALL THE DAYS OF HIS LIFE.J# 34 AND FOR HIS DIET, THERE WAS A CONTINUAL DIET GIVEN HIM OF THE KING OFM BABYLON, EVERY DAY A PORTION UNTIL THE DAY OF HIS DEATH, ALL THE DAYS OF HISB LIFE.N THE FIRST YEAR OF HISTL REIGN LIFTED UP THE HEAD OF JEHOIACHIN KING OF JUDAH, AND BROUGHT HIM FORTH OUT OF PRISON.RJ# 32 AND SPAKE KINDLY UNTO HIM, AND SET HIS THRONE ABOVE THE THRONE OF THE% KINGS THAT WERE WITH HIM IN BABYLON,M# 33 AND CHANGED HIS PRISON GARMENTS: AND HE DID CONTINUALLY EAT BREAD BEFORE  HIM ALL THE DAYS OF HIS LIFE.J# 34 AND FOR HIS DIET, THERE WAS A CONTINUAL DIET GIVEN HIM OF THE KING OFM BABYLON, EVERY DAY A PORTION UN* BOOK25 LAMENTATIONSH = CHAPTER 1 N# 1 HOW DOTH THE CITY SIT SOLITARY, THAT WAS FULL OF PEOPLE! HOW IS SHE BECOMEI AS A WIDOW! SHE THAT WAS GREAT AMONG THE NATIONS, AND PRINCESS AMONG THEN( PROVINCES, HOW IS SHE BECOME TRIBUTARY!M# 2 SHE WEEPETH SORE IN THE NIGHT, AND HER TEARS ARE ON HER CHEEKS: AMONG ALLID HER LOVERS SHE HATH NONE TO COMFORT HER: ALL HER FRIENDS HAVE DEALT5 TREACHEROUSLY WITH HER, THEY ARE BECOME HER ENEMIES.NL# 3 JUDAH IS GONE INTO CAPTIVITY BECAUSE OF AFFLICTION, AND BECAUSE OF GREATH SERVITUDE: SHE DWELLETH AMONG THE HEATHEN, SHE FINDETH NO REST: ALL HER. PERSECUTORS OVERTOOK HER BETWEEN THE STRAITS.J# 4 THE WAYS OF ZION DO MOURN, BECAUSE NONE COME TO THE SOLEMN FEASTS: ALLM HER GATES ARE DESOLATE: HER PRIESTS SIGH, HER VIRGINS ARE AFFLICTED, AND SHES IS IN BITTERNESS.I# 5 HER ADVERSARIES ARE THE CHIEF, HER ENEMIES PROSPER; FOR THE LORD HATHDM AFFLICTED HER FOR THE MULTITUDE OF HER TRANSGRESSIONS: HER CHILDREN ARE GONE ! INTO CAPTIVITY BEFORE THE ENEMY.NM# 6 AND FROM THE DAUGHTER OF ZION ALL HER BEAUTY IS DEPARTED: HER PRINCES ARE K BECOME LIKE HARTS THAT FIND NO PASTURE, AND THEY ARE GONE WITHOUT STRENGTHS BEFORE THE PURSUER.J# 7 JERUSALEM REMEMBERED IN THE DAYS OF HER AFFLICTION AND OF HER MISERIESN ALL HER PLEASANT THINGS THAT SHE HAD IN THE DAYS OF OLD, WHEN HER PEOPLE FELLL INTO THE HAND OF THE ENEMY, AND NONE DID HELP HER: THE ADVERSARIES SAW HER, AND DID MOCK AT HER SABBATHS.H# 8 JERUSALEM HATH GRIEVOUSLY SINNED; THEREFORE SHE IS REMOVED: ALL THATI HONOURED HER DESPISE HER, BECAUSE THEY HAVE SEEN HER NAKEDNESS: YEA, SHEB SIGHETH, AND TURNETH BACKWARD.TF# 9 HER FILTHINESS IS IN HER SKIRTS; SHE REMEMBERETH NOT HER LAST END;M THEREFORE SHE CAME DOWN WONDERFULLY: SHE HAD NO COMFORTER. O LORD, BEHOLD MYE2 AFFLICTION: FOR THE ENEMY HATH MAGNIFIED HIMSELF.M# 10 THE ADVERSARY HATH SPREAD OUT HIS HAND UPON ALL HER PLEASANT THINGS: FORRK SHE HATH SEEN THAT THE HEATHEN ENTERED INTO HER SANCTUARY, WHOM THOU DIDSTI: COMMAND THAT THEY SHOULD NOT ENTER INTO THY CONGREGATION.I# 11 ALL HER PEOPLE SIGH, THEY SEEK BREAD; THEY HAVE GIVEN THEIR PLEASANTNI THINGS FOR MEAT TO RELIEVE THE SOUL: SEE, O LORD, AND CONSIDER; FOR I AMR BECOME VILE.EK# 12 IS IT NOTHING TO YOU, ALL YE THAT PASS BY? BEHOLD, AND SEE IF THERE BEAJ ANY SORROW LIKE UNTO MY SORROW, WHICH IS DONE UNTO ME, WHEREWITH THE LORD2 HATH AFFLICTED ME IN THE DAY OF HIS FIERCE ANGER.J# 13 FROM ABOVE HATH HE SENT FIRE INTO MY BONES, AND IT PREVAILETH AGAINSTM THEM: HE HATH SPREAD A NET FOR MY FEET, HE HA00w<:D%5%T6%! !TH TURNED ME BACK: HE HATH MADEO# ME DESOLATE AND FAINT ALL THE DAY.GK# 14 THE YOKE OF MY TRANSGRESSIONS IS BOUND BY HIS HAND: THEY ARE WREATHED,CJ AND COME UP UPON MY NECK: HE HATH MADE MY STRENGTH TO FALL, THE LORD HATHC DELIVERED ME INTO THEIR HANDS, FROM WHOM I AM NOT ABLE TO RISE UP.,K# 15 THE LORD HATH TRODDEN UNDER FOOT ALL MY MIGHTY MEN IN THE MIDST OF ME:HK HE HATH CALLED AN ASSEMBLY AGAINST ME TO CRUSH MY YOUNG MEN: THE LORD HATHV> TRODDEN THE VIRGIN, THE DAUGHTER OF JUDAH, AS IN A WINEPRESS.I# 16 FOR THESE THINGS I WEEP; MINE EYE, MINE EYE RUNNETH DOWN WITH WATER,TN BECAUSE THE COMFORTER THAT SHOULD RELIEVE MY SOUL IS FAR FROM ME: MY CHILDREN+ ARE DESOLATE, BECAUSE THE ENEMY PREVAILED.OJ# 17 ZION SPREADETH FORTH HER HANDS, AND THERE IS NONE TO COMFORT HER: THEK LORD HATH COMMANDED CONCERNING JACOB, THAT HIS ADVERSARIES SHOULD BE ROUNDE: ABOUT HIM: JERUSALEM IS AS A MENSTRUOUS WOMAN AMONG THEM.H# 18 THE LORD IS RIGHTEOUS; FOR I HAVE REBELLED AGAINST HIS COMMANDMENT:L HEAR, I PRAY YOU, ALL PEOPLE, AND BEHOLD MY SORROW: MY VIRGINS AND MY YOUNG MEN ARE GONE INTO CAPTIVITY.TM# 19 I CALLED FOR MY LOVERS, BUT THEY DECEIVED ME: MY PRIESTS AND MINE ELDERSLM GAVE UP THE GHOST IN THE CITY, WHILE THEY SOUGHT THEIR MEAT TO RELIEVE THEIRE SOULS.EM# 20 BEHOLD, O LORD; FOR I AM IN DISTRESS: MY BOWELS ARE TROUBLED; MINE HEARTEF IS TURNED WITHIN ME; FOR I HAVE GRIEVOUSLY REBELLED: ABROAD THE SWORD& BEREAVETH, AT HOME THERE IS AS DEATH.G# 21 THEY HAVE HEARD THAT I SIGH: THERE IS NONE TO COMFORT ME: ALL MINEAM ENEMIES HAVE HEARD OF MY TROUBLE; THEY ARE GLAD THAT THOU HAST DONE IT: THOU J WILT BRING THE DAY THAT THOU HAST CALLED, AND THEY SHALL BE LIKE UNTO ME.I# 22 LET ALL THEIR WICKEDNESS COME BEFORE THEE; AND DO UNTO THEM, AS THOUHK HAST DONE UNTO ME FOR ALL MY TRANSGRESSIONS: FOR MY SIGHS ARE MANY, AND MYB HEART IS FAINT. = CHAPTER 2 M# 1 HOW HATH THE LORD COVERED THE DAUGHTER OF ZION WITH A CLOUD IN HIS ANGER,HN AND CAST DOWN FROM HEAVEN UNTO THE EARTH THE BEAUTY OF ISRAEL, AND REMEMBERED+ NOT HIS FOOTSTOOL IN THE DAY OF HIS ANGER!;I# 2 THE LORD HATH SWALLOWED UP ALL THE HABITATIONS OF JACOB, AND HATH NOT M PITIED: HE HATH THROWN DOWN IN HIS WRATH THE STRONG HOLDS OF THE DAUGHTER OFEM JUDAH; HE HATH BROUGHT THEM DOWN TO THE GROUND: HE HATH POLLUTED THE KINGDOME AND THE PRINCES THEREOF.NM# 3 HE HATH CUT OFF IN HIS FIERCE ANGER ALL THE HORN OF ISRAEL: HE HATH DRAWNAN BACK HIS RIGHT HAND FROM BEFORE THE ENEMY, AND HE BURNED AGAINST JACOB LIKE A+ FLAMING FIRE, WHICH DEVOURETH ROUND ABOUT.NJ# 4 HE HATH BENT HIS BOW LIKE AN ENEMY: HE STOOD WITH HIS RIGHT HAND AS ANK ADVERSARY, AND SLEW ALL THAT WERE PLEASANT TO THE EYE IN THE TABERNACLE OFI8 THE DAUGHTER OF ZION: HE POURED OUT HIS FURY LIKE FIRE.L# 5 THE LORD WAS AS AN ENEMY: HE HATH SWALLOWED UP ISRAEL, HE HATH SWALLOWEDN UP ALL HER PALACES: HE HATH DESTROYED HIS STRONG HOLDS, AND HATH INCREASED IN0 THE DAUGHTER OF JUDAH MOURNING AND LAMENTATION.G# 6 AND HE HATH VIOLENTLY TAKEN AWAY HIS TABERNACLE, AS IF IT WERE OF AUK GARDEN: HE HATH DESTROYED HIS PLACES OF THE ASSEMBLY: THE LORD HATH CAUSED M THE SOLEMN FEASTS AND SABBATHS TO BE FORGOTTEN IN ZION, AND HATH DESPISED IN 6 THE INDIGNATION OF HIS ANGER THE KING AND THE PRIEST.M# 7 THE LORD HATH CAST OFF HIS ALTAR, HE HATH ABHORRED HIS SANCTUARY, HE HATH M GIVEN UP INTO THE HAND OF THE ENEMY THE WALLS OF HER PALACES; THEY HAVE MADETC A NOISE IN THE HOUSE OF THE LORD, AS IN THE DAY OF A SOLEMN FEAST. J# 8 THE LORD HATH PURPOSED TO DESTROY THE WALL OF THE DAUGHTER OF ZION: HEK HATH STRETCHED OUT A LINE, HE HATH NOT WITHDRAWN HIS HAND FROM DESTROYING:SF THEREFORE HE MADE THE RAMPART AND THE WALL TO LAMENT; THEY LANGUISHED TOGETHER.H# 9 HER GATES ARE SUNK INTO THE GROUND; HE HATH DESTROYED AND BROKEN HERK BARS: HER KING AND HER PRINCES ARE AMONG THE GENTILES: THE LAW IS NO MORE;F0 HER PROPHETS ALSO FIND NO VISION FROM THE LORD.E# 10 THE ELDERS OF THE DAUGHTER OF ZION SIT UPON THE GROUND, AND KEEP N SILENCE: THEY HAVE CAST UP DUST UPON THEIR HEADS; THEY HAVE GIRDED THEMSELV00w<{<<%X>%+%O-%TADATADATAESN WITH SACKCLOTH: THE VIRGINS OF JERUSALEM HANG DOWN THEIR HEADS TO THE GROUND.M# 11 MINE EYES DO FAIL WITH TEARS, MY BOWELS ARE TROUBLED, MY LIVER IS POUREDN UPON THE EARTH, FOR THE DESTRUCTION OF THE DAUGHTER OF MY PEOPLE; BECAUSE THE= CHILDREN AND THE SUCKLINGS SWOON IN THE STREETS OF THE CITY. L# 12 THEY SAY TO THEIR MOTHERS, WHERE IS CORN AND WINE? WHEN THEY SWOONED ASL THE WOUNDED IN THE STREETS OF THE CITY, WHEN THEIR SOUL WAS POURED OUT INTO THEIR MOTHERS BOSOM.;M# 13 WHAT THING SHALL I TAKE TO WITNESS FOR THEE? WHAT THING SHALL I LIKEN TOWN THEE, O DAUGHTER OF JERUSALEM? WHAT SHALL I EQUAL TO THEE, THAT I MAY COMFORTK THEE, O VIRGIN DAUGHTER OF ZION? FOR THY BREACH IS GREAT LIKE THE SEA: WHOG CAN HEAL THEE?;K# 14 THY PROPHETS HAVE SEEN VAIN AND FOOLISH THINGS FOR THEE: AND THEY HAVEM NOT DISCOVERED THINE INIQUITY, TO TURN AWAY THY CAPTIVITY; BUT HAVE SEEN FORT- THEE FALSE BURDENS AND CAUSES OF BANISHMENT.IL# 15 ALL THAT PASS BY CLAP THEIR HANDS AT THEE; THEY HISS AND WAG THEIR HEADI AT THE DAUGHTER OF JERUSALEM, SAYING, IS THIS THE CITY THAT MEN CALL THEJ2 PERFECTION OF BEAUTY, THE JOY OF THE WHOLE EARTH?J# 16 ALL THINE ENEMIES HAVE OPENED THEIR MOUTH AGAINST THEE: THEY HISS ANDK GNASH THE TEETH: THEY SAY, WE HAVE SWALLOWED HER UP: CERTAINLY THIS IS THE 8 DAY THAT WE LOOKED FOR; WE HAVE FOUND, WE HAVE SEEN IT.M# 17 THE LORD HATH DONE THAT WHICH HE HAD DEVISED; HE HATH FULFILLED HIS WORDOL THAT HE HAD COMMANDED IN THE DAYS OF OLD: HE HATH THROWN DOWN, AND HATH NOTL PITIED: AND HE HATH CAUSED THINE ENEMY TO REJOICE OVER THEE, HE HATH SET UP THE HORN OF THINE ADVERSARIES.TI# 18 THEIR HEART CRIED UNTO THE LORD, O WALL OF THE DAUGHTER OF ZION, LETUM TEARS RUN DOWN LIKE A RIVER DAY AND NIGHT: GIVE THYSELF NO REST; LET NOT THEE APPLE OF THINE EYE CEASE.J# 19 ARISE, CRY OUT IN THE NIGHT: IN THE BEGINNING OF THE WATCHES POUR OUTM THINE HEART LIKE WATER BEFORE THE FACE OF THE LORD: LIFT UP THY HANDS TOWARDML HIM FOR THE LIFE OF THY YOUNG CHILDREN, THAT FAINT FOR HUNGER IN THE TOP OF EVERY STREET.H# 20 BEHOLD, O LORD, AND CONSIDER TO WHOM THOU HAST DONE THIS. SHALL THEM WOMEN EAT THEIR FRUIT, AND CHILDREN OF A SPAN LONG? SHALL THE PRIEST AND THEU/ PROPHET BE SLAIN IN THE SANCTUARY OF THE LORD?EK# 21 THE YOUNG AND THE OLD LIE ON THE GROUND IN THE STREETS: MY VIRGINS ANDUI MY YOUNG MEN ARE FALLEN BY THE SWORD; THOU HAST SLAIN THEM IN THE DAY OF / THINE ANGER; THOU HAST KILLED, AND NOT PITIED.NK# 22 THOU HAST CALLED AS IN A SOLEMN DAY MY TERRORS ROUND ABOUT, SO THAT IN H THE DAY OF THE LORDS ANGER NONE ESCAPED NOR REMAINED: THOSE THAT I HAVE2 SWADDLED AND BROUGHT UP HATH MINE ENEMY CONSUMED. = CHAPTER 3 C# 1 I AM THE MAN THAT HATH SEEN AFFLICTION BY THE ROD OF HIS WRATH.NE# 2 HE HATH LED ME, AND BROUGHT ME INTO DARKNESS, BUT NOT INTO LIGHT.HJ# 3 SURELY AGAINST ME IS HE TURNED; HE TURNETH HIS HAND AGAINST ME ALL THE DAY.TC# 4 MY FLESH AND MY SKIN HATH HE MADE OLD; HE HATH BROKEN MY BONES.G# 5 HE HATH BUILDED AGAINST ME, AND COMPASSED ME WITH GALL AND TRAVAIL.I?# 6 HE HATH SET ME IN DARK PLACES, AS THEY THAT BE DEAD OF OLD.TI# 7 HE HATH HEDGED ME ABOUT, THAT I CANNOT GET OUT: HE HATH MADE MY CHAIN  HEAVY.M9# 8 ALSO WHEN I CRY AND SHOUT, HE SHUTTETH OUT MY PRAYER.NL# 9 HE HATH INCLOSED MY WAYS WITH HEWN STONE, HE HATH MADE MY PATHS CROOKED.L# 10 HE WAS UNTO ME AS A BEAR LYING IN WAIT, AND AS A LION IN SECRET PLACES.K# 11 HE HATH TURNED ASIDE MY WAYS, AND PULLED ME IN PIECES: HE HATH MADE MEE DESOLATE.># 12 HE HATH BENT HIS BOW, AND SET ME AS A MARK FOR THE ARROW.D# 13 HE HATH CAUSED THE ARROWS OF HIS QUIVER TO ENTER INTO MY REINS.C# 14 I WAS A DERISION TO ALL MY PEOPLE; AND THEIR SONG ALL THE DAY.YD# 15 HE HATH FILLED ME WITH BITTERNESS, HE HATH MADE ME DRUNKEN WITH WORMWOOD.M# 16 HE HATH ALSO BROKEN MY TEETH WITH GRAVEL STONES, HE HATH COVERED ME WITH  ASHES. K# 17 AND THOU HAST REMOVED MY SOUL FAR OFF FROM PEACE: I FORGAT PROSPERITY.WC# 18 AND I SAID, MY STRENGTH AND MY HOPE IS PERISHED FROM THE LORD:AJ# 19 REMEMBERING MINE AFFLICTION AND MY MISERY00w<:D%5%T6%! !, THE WORMWOOD AND THE GALL.B# 20 MY SOUL HATH THEM STILL IN REMEMBRANCE, AND IS HUMBLED IN ME.5# 21 THIS I RECALL TO MY MIND, THEREFORE HAVE I HOPE.HE# 22 IT IS OF THE LORDS MERCIES THAT WE ARE NOT CONSUMED, BECAUSE HISO COMPASSIONS FAIL NOT.;# 23 THEY ARE NEW EVERY MORNING: GREAT IS THY FAITHFULNESS.AI# 24 THE LORD IS MY PORTION, SAITH MY SOUL; THEREFORE WILL I HOPE IN HIM.SK# 25 THE LORD IS GOOD UNTO THEM THAT WAIT FOR HIM, TO THE SOUL THAT SEEKETHA HIM.RD# 26 IT IS GOOD THAT A MAN SHOULD BOTH HOPE AND QUIETLY WAIT FOR THE SALVATION OF THE LORD.I=# 27 IT IS GOOD FOR A MAN THAT HE BEAR THE YOKE OF HIS YOUTH. M# 28 HE SITTETH ALONE AND KEEPETH SILENCE, BECAUSE HE HATH BORNE IT UPON HIM.OB# 29 HE PUTTETH HIS MOUTH IN THE DUST; IF SO BE THERE MAY BE HOPE.H# 30 HE GIVETH HIS CHEEK TO HIM THAT SMITETH HIM: HE IS FILLED FULL WITH REPROACH.-# 31 FOR THE LORD WILL NOT CAST OFF FOR EVER: L# 32 BUT THOUGH HE CAUSE GRIEF, YET WILL HE HAVE COMPASSION ACCORDING TO THE MULTITUDE OF HIS MERCIES.F# 33 FOR HE DOTH NOT AFFLICT WILLINGLY NOR GRIEVE THE CHILDREN OF MEN.<# 34 TO CRUSH UNDER HIS FEET ALL THE PRISONERS OF THE EARTH.G# 35 TO TURN ASIDE THE RIGHT OF A MAN BEFORE THE FACE OF THE MOST HIGH, ;# 36 TO SUBVERT A MAN IN HIS CAUSE, THE LORD APPROVETH NOT.PM# 37 WHO IS HE THAT SAITH, AND IT COMETH TO PASS, WHEN THE LORD COMMANDETH ITR NOT?.D# 38 OUT OF THE MOUTH OF THE MOST HIGH PROCEEDETH NOT EVIL AND GOOD?J# 39 WHEREFORE DOTH A LIVING MAN COMPLAIN, A MAN FOR THE PUNISHMENT OF HIS SINS?@# 40 LET US SEARCH AND TRY OUR WAYS, AND TURN AGAIN TO THE LORD.E# 41 LET US LIFT UP OUR HEART WITH OUR HANDS UNTO GOD IN THE HEAVENS. D# 42 WE HAVE TRANSGRESSED AND HAVE REBELLED: THOU HAST NOT PARDONED.K# 43 THOU HAST COVERED WITH ANGER, AND PERSECUTED US: THOU HAST SLAIN, THOUE HAST NOT PITIED. L# 44 THOU HAST COVERED THYSELF WITH A CLOUD, THAT OUR PRAYER SHOULD NOT PASS THROUGH.IH# 45 THOU HAST MADE US AS THE OFFSCOURING AND REFUSE IN THE MIDST OF THE PEOPLE.9# 46 ALL OUR ENEMIES HAVE OPENED THEIR MOUTHS AGAINST US.YB# 47 FEAR AND A SNARE IS COME UPON US, DESOLATION AND DESTRUCTION.J# 48 MINE EYE RUNNETH DOWN WITH RIVERS OF WATER FOR THE DESTRUCTION OF THE DAUGHTER OF MY PEOPLE.TH# 49 MINE EYE TRICKLETH DOWN, AND CEASETH NOT, WITHOUT ANY INTERMISSION.5# 50 TILL THE LORD LOOK DOWN, AND BEHOLD FROM HEAVEN.RK# 51 MINE EYE AFFECTETH MINE HEART BECAUSE OF ALL THE DAUGHTERS OF MY CITY.O=# 52 MINE ENEMIES CHASED ME SORE, LIKE A BIRD, WITHOUT CAUSE.EH# 53 THEY HAVE CUT OFF MY LIFE IN THE DUNGEON, AND CAST A STONE UPON ME.=# 54 WATERS FLOWED OVER MINE HEAD; THEN I SAID, I AM CUT OFF..<# 55 I CALLED UPON THY NAME, O LORD, OUT OF THE LOW DUNGEON.M# 56 THOU HAST HEARD MY VOICE: HIDE NOT THINE EAR AT MY BREATHING, AT MY CRY.SL# 57 THOU DREWEST NEAR IN THE DAY THAT I CALLED UPON THEE: THOU SAIDST, FEAR NOT.VK# 58 O LORD, THOU HAST PLEADED THE CAUSES OF MY SOUL; THOU HAST REDEEMED MYI LIFE.:# 59 O LORD, THOU HAST SEEN MY WRONG: JUDGE THOU MY CAUSE.J# 60 THOU HAST SEEN ALL THEIR VENGEANCE AND ALL THEIR IMAGINATIONS AGAINST ME.G# 61 THOU HAST HEARD THEIR REPROACH, O LORD, AND ALL THEIR IMAGINATIONSP AGAINST ME;K# 62 THE LIPS OF THOSE THAT ROSE UP AGAINST ME, AND THEIR DEVICE AGAINST ME ALL THE DAY.HG# 63 BEHOLD THEIR SITTING DOWN, AND THEIR RISING UP; I AM THEIR MUSICK.EJ# 64 RENDER UNTO THEM A RECOMPENCE, O LORD, ACCORDING TO THE WORK OF THEIR HANDS.H4# 65 GIVE THEM SORROW OF HEART, THY CURSE UNTO THEM.L# 66 PERSECUTE AND DESTROY THEM IN ANGER FROM UNDER THE HEAVENS OF THE LORD. = CHAPTER 4 M# 1 HOW IS THE GOLD BECOME DIM! HOW IS THE MOST FINE GOLD CHANGED! THE STONEST< OF THE SANCTUARY ARE POURED OUT IN THE TOP OF EVERY STREET.M# 2 THE PRECIOUS SONS OF ZION, COMPARABLE TO FINE GOLD, HOW ARE THEY ESTEEMEDH: AS EARTHEN PITCHERS, THE WORK OF THE HANDS OF THE POTTER!L# 3 EVEN THE SEA MONSTERS DRAW OUT THE BREAST, THEY GIVE SUCK TO THEIR YOUNGK ONES: THE DAUGHTER OF MY PEOPLE IS BECOME CRUEL, LIKE THE OSTRICHES IN THEA WILDERNESS.I# 4 THE TONGUE OF THE SUCKING CHILD CLEAVETH T00w<{<<%X>%+%O-%TADATADATAO THE ROOF OF HIS MOUTH FOREH THIRST: THE YOUNG CHILDREN ASK BREAD, AND NO MAN BREAKETH IT UNTO THEM.M# 5 THEY THAT DID FEED DELICATELY ARE DESOLATE IN THE STREETS: THEY THAT WEREZ) BROUGHT UP IN SCARLET EMBRACE DUNGHILLS.EF# 6 FOR THE PUNISHMENT OF THE INIQUITY OF THE DAUGHTER OF MY PEOPLE ISM GREATER THAN THE PUNISHMENT OF THE SIN OF SODOM, THAT WAS OVERTHROWN AS IN AE$ MOMENT, AND NO HANDS STAYED ON HER.M# 7 HER NAZARITES WERE PURER THAN SNOW, THEY WERE WHITER THAN MILK, THEY WERE A MORE RUDDY IN BODY THAN RUBIES, THEIR POLISHING WAS OF SAPPHIRE:IK# 8 THEIR VISAGE IS BLACKER THAN A COAL; THEY ARE NOT KNOWN IN THE STREETS:LH THEIR SKIN CLEAVETH TO THEIR BONES; IT IS WITHERED, IT IS BECOME LIKE A STICK.EM# 9 THEY THAT BE SLAIN WITH THE SWORD ARE BETTER THAN THEY THAT BE SLAIN WITHLL HUNGER: FOR THESE PINE AWAY, STRICKEN THROUGH FOR WANT OF THE FRUITS OF THE FIELD.MM# 10 THE HANDS OF THE PITIFUL WOMEN HAVE SODDEN THEIR OWN CHILDREN: THEY WEREY< THEIR MEAT IN THE DESTRUCTION OF THE DAUGHTER OF MY PEOPLE.G# 11 THE LORD HATH ACCOMPLISHED HIS FURY; HE HATH POURED OUT HIS FIERCENM ANGER, AND HATH KINDLED A FIRE IN ZION, AND IT HATH DEVOURED THE FOUNDATIONSE THEREOF.TL# 12 THE KINGS OF THE EARTH, AND ALL THE INHABITANTS OF THE WORLD, WOULD NOTL HAVE BELIEVED THAT THE ADVERSARY AND THE ENEMY SHOULD HAVE ENTERED INTO THE GATES OF JERUSALEM.J# 13 FOR THE SINS OF HER PROPHETS, AND THE INIQUITIES OF HER PRIESTS, THAT5 HAVE SHED THE BLOOD OF THE JUST IN THE MIDST OF HER,RG# 14 THEY HAVE WANDERED AS BLIND MEN IN THE STREETS, THEY HAVE POLLUTED C THEMSELVES WITH BLOOD, SO THAT MEN COULD NOT TOUCH THEIR GARMENTS. J# 15 THEY CRIED UNTO THEM, DEPART YE; IT IS UNCLEAN; DEPART, DEPART, TOUCHI NOT: WHEN THEY FLED AWAY AND WANDERED, THEY SAID AMONG THE HEATHEN, THEYD SHALL NO MORE SOJOURN THERE.MJ# 16 THE ANGER OF THE LORD HATH DIVIDED THEM; HE WILL NO MORE REGARD THEM:M THEY RESPECTED NOT THE PERSONS OF THE PRIESTS, THEY FAVOURED NOT THE ELDERS.HL# 17 AS FOR US, OUR EYES AS YET FAILED FOR OUR VAIN HELP: IN OUR WATCHING WE2 HAVE WATCHED FOR A NATION THAT COULD NOT SAVE US.L# 18 THEY HUNT OUR STEPS, THAT WE CANNOT GO IN OUR STREETS: OUR END IS NEAR,- OUR DAYS ARE FULFILLED; FOR OUR END IS COME. L# 19 OUR PERSECUTORS ARE SWIFTER THAN THE EAGLES OF THE HEAVEN: THEY PURSUED@ US UPON THE MOUNTAINS, THEY LAID WAIT FOR US IN THE WILDERNESS.M# 20 THE BREATH OF OUR NOSTRILS, THE ANOINTED OF THE LORD, WAS TAKEN IN THEIRSI PITS, OF WHOM WE SAID, UNDER HIS SHADOW WE SHALL LIVE AMONG THE HEATHEN.RJ# 21 REJOICE AND BE GLAD, O DAUGHTER OF EDOM, THAT DWELLEST IN THE LAND OFJ UZ; THE CUP ALSO SHALL PASS THROUGH UNTO THEE: THOU SHALT BE DRUNKEN, AND SHALT MAKE THYSELF NAKED.M# 22 THE PUNISHMENT OF THINE INIQUITY IS ACCOMPLISHED, O DAUGHTER OF ZION; HELM WILL NO MORE CARRY THEE AWAY INTO CAPTIVITY: HE WILL VISIT THINE INIQUITY, ON- DAUGHTER OF EDOM; HE WILL DISCOVER THY SINS.L = CHAPTER 5 N# 1 REMEMBER, O LORD, WHAT IS COME UPON US: CONSIDER, AND BEHOLD OUR REPROACH.A# 2 OUR INHERITANCE IS TURNED TO STRANGERS, OUR HOUSES TO ALIENS.R=# 3 WE ARE ORPHANS AND FATHERLESS, OUR MOTHERS ARE AS WIDOWS. B# 4 WE HAVE DRUNKEN OUR WATER FOR MONEY; OUR WOOD IS SOLD UNTO US.A# 5 OUR NECKS ARE UNDER PERSECUTION: WE LABOUR, AND HAVE NO REST.OH# 6 WE HAVE GIVEN THE HAND TO THE EGYPTIANS, AND TO THE ASSYRIANS, TO BE SATISFIED WITH BREAD.M# 7 OUR FATHERS HAVE SINNED, AND ARE NOT; AND WE HAVE BORNE THEIR INIQUITIES.RJ# 8 SERVANTS HAVE RULED OVER US: THERE IS NONE THAT DOTH DELIVER US OUT OF THEIR HAND.L# 9 WE GAT OUR BREAD WITH THE PERIL OF OUR LIVES BECAUSE OF THE SWORD OF THE WILDERNESS.D# 10 OUR SKIN WAS BLACK LIKE AN OVEN BECAUSE OF THE TERRIBLE FAMINE.K# 11 THEY RAVISHED THE WOMEN IN ZION, AND THE MAIDS IN THE CITIES OF JUDAH.EF# 12 PRINCES ARE HANGED UP BY THEIR HAND: THE FACES OF ELDERS WERE NOT HONOURED.L# 13 THEY TOOK THE YOUNG MEN TO GRIND, AND THE CHILDREN FELL UNDER THE WOOD.K# 14 THE ELDERS HAVE CEASED FROM THE GATE, THE YOUNG MEN FROM THEIR MUSICK.HG# 15 THE JOY OF OUR HEART IS CEASED; OUR DAN00w%+%O-%TADATADATA THEM: FOR THE SPIRIT OF THE# LIVING CREATURE WAS IN THE WHEELS.RM# 21 WHEN THOSE WENT, THESE WENT; AND WHEN THOSE STOOD, THESE STOOD; AND WHENYL THOSE WERE LIFTED UP FROM THE EARTH, THE WHEELS WERE LIFTED UP OVER AGAINST? THEM: FOR THE SPIRIT OF THE LIVING CREATURE WAS IN THE WHEELS. L# 22 AND THE LIKENESS OF THE FIRMAMENT UPON THE HEADS OF THE LIVING CREATUREL WAS AS THE COLOUR OF THE TERRIBLE CRYSTAL, STRETCHED FORTH OVER THEIR HEADS ABOVE.PJ# 23 AND UNDER THE FIRMAMENT WERE THEIR WINGS STRAIGHT, THE ONE TOWARD THEM OTHER: EVERY ONE HAD TWO, WHICH COVERED ON THIS SIDE, AND EVERY ONE HAD TWO,T* WHICH COVERED ON THAT SIDE, THEIR BODIES.L# 24 AND WHEN THEY WENT, I HEARD THE NOISE OF THEIR WINGS, LIKE THE NOISE OFN GREAT WATERS, AS THE VOICE OF THE ALMIGHTY, THE VOICE OF SPEECH, AS THE NOISE8 OF AN HOST: WHEN THEY STOOD, THEY LET DOWN THEIR WINGS.M# 25 AND THERE WAS A VOICE FROM THE FIRMAMENT THAT WAS OVER THEIR HEADS, WHENR* THEY STOOD, AND HAD LET DOWN THEIR WINGS.L# 26 AND ABOVE THE FIRMAMENT THAT WAS OVER THEIR HEADS WAS THE LIKENESS OF AL THRONE, AS THE APPEARANCE OF A SAPPHIRE STONE: AND UPON THE LIKENESS OF THEB THRONE WAS THE LIKENESS AS THE APPEARANCE OF A MAN ABOVE UPON IT.L# 27 AND I SAW AS THE COLOUR OF AMBER, AS THE APPEARANCE OF FIRE ROUND ABOUTF WITHIN IT, FROM THE APPEARANCE OF HIS LOINS EVEN UPWARD, AND FROM THEJ APPEARANCE OF HIS LOINS EVEN DOWNWARD, I SAW AS IT WERE THE APPEARANCE OF) FIRE, AND IT HAD BRIGHTNESS ROUND ABOUT.TM# 28 AS THE APPEARANCE OF THE BOW THAT IS IN THE CLOUD IN THE DAY OF RAIN, SOTM WAS THE APPEARANCE OF THE BRIGHTNESS ROUND ABOUT. THIS WAS THE APPEARANCE OFLI THE LIKENESS OF THE GLORY OF THE LORD. AND WHEN I SAW IT, I FELL UPON MYP- FACE, AND I HEARD A VOICE OF ONE THAT SPAKE.A = CHAPTER 2 J# 1 AND HE SAID UNTO ME, SON OF MAN, STAND UPON THY FEET, AND I WILL SPEAK UNTO THEE.ML# 2 AND THE SPIRIT ENTERED INTO ME WHEN HE SPAKE UNTO ME, AND SET ME UPON MY+ FEET, THAT I HEARD HIM THAT SPAKE UNTO ME.TK# 3 AND HE SAID UNTO ME, SON OF MAN, I SEND THEE TO THE CHILDREN OF ISRAEL,SM TO A REBELLIOUS NATION THAT HATH REBELLED AGAINST ME: THEY AND THEIR FATHERSO7 HAVE TRANSGRESSED AGAINST ME, EVEN UNTO THIS VERY DAY.WH# 4 FOR THEY ARE IMPUDENT CHILDREN AND STIFFHEARTED. I DO SEND THEE UNTO= THEM; AND THOU SHALT SAY UNTO THEM, THUS SAITH THE LORD GOD.EM# 5 AND THEY, WHETHER THEY WILL HEAR, OR WHETHER THEY WILL FORBEAR, (FOR THEYSM ARE A REBELLIOUS HOUSE,) YET SHALL KNOW THAT THERE HATH BEEN A PROPHET AMONG THEM.K# 6 AND THOU, SON OF MAN, BE NOT AFRAID OF THEM, NEITHER BE AFRAID OF THEIREH WORDS, THOUGH BRIERS AND THORNS BE WITH THEE, AND THOU DOST DWELL AMONGI SCORPIONS: BE NOT AFRAID OF THEIR WORDS, NOR BE DISMAYED AT THEIR LOOKS,P# THOUGH THEY BE A REBELLIOUS HOUSE. G# 7 AND THOU SHALT SPEAK MY WORDS UNTO THEM, WHETHER THEY WILL HEAR, ORG9 WHETHER THEY WILL FORBEAR: FOR THEY ARE MOST REBELLIOUS. K# 8 BUT THOU, SON OF MAN, HEAR WHAT I SAY UNTO THEE; BE NOT THOU REBELLIOUS F LIKE THAT REBELLIOUS HOUSE: OPEN THY MOUTH, AND EAT THAT I GIVE THEE.M# 9 AND WHEN I LOOKED, BEHOLD, AN HAND WAS SENT UNTO ME; AND, LO, A ROLL OF AI BOOK WAS THEREIN;K# 10 AND HE SPREAD IT BEFORE ME; AND IT WAS WRITTEN WITHIN AND WITHOUT: ANDT? THERE WAS WRITTEN THEREIN LAMENTATIONS, AND MOURNING, AND WOE.S = CHAPTER 3 I# 1 MOREOVER HE SAID UNTO ME, SON OF MAN, EAT THAT THOU FINDEST; EAT THISO- ROLL, AND GO SPEAK UNTO THE HOUSE OF ISRAEL. <# 2 SO I OPENED MY MOUTH, AND HE CAUSED ME TO EAT THAT ROLL.I# 3 AND HE SAID UNTO ME, SON OF MAN, CAUSE THY BELLY TO EAT, AND FILL THYNL BOWELS WITH THIS ROLL THAT I GIVE THEE. THEN DID I EAT IT; AND IT WAS IN MY MOUTH AS HONEY FOR SWEETNESS.K# 4 AND HE SAID UNTO ME, SON OF MAN, GO, GET THEE UNTO THE HOUSE OF ISRAEL,T# AND SPEAK WITH MY WORDS UNTO THEM.,H# 5 FOR THOU ART NOT SENT TO A PEOPLE OF A STRANGE SPEECH AND OF AN HARD& LANGUAGE, BUT TO THE HOUSE OF ISRAEL;I# 6 NOT TO MANY PEOPLE OF A STRANGE SPEECH AND OF AN HARD LANGUAGE, WHOSE M WORDS THOU CANST NOT UNDERSTAND. SURELY, HAD I SENT THEE TO THEM, THEY WOULDA HAV00x<<D%5%T6%! !E HEARKENED UNTO THEE.I# 7 BUT THE HOUSE OF ISRAEL WILL NOT HEARKEN UNTO THEE; FOR THEY WILL NOTAK HEARKEN UNTO ME: FOR ALL THE HOUSE OF ISRAEL ARE IMPUDENT AND HARDHEARTED.OM# 8 BEHOLD, I HAVE MADE THY FACE STRONG AGAINST THEIR FACES, AND THY FOREHEADN STRONG AGAINST THEIR FOREHEADS.L# 9 AS AN ADAMANT HARDER THAN FLINT HAVE I MADE THY FOREHEAD: FEAR THEM NOT,G NEITHER BE DISMAYED AT THEIR LOOKS, THOUGH THEY BE A REBELLIOUS HOUSE.AJ# 10 MOREOVER HE SAID UNTO ME, SON OF MAN, ALL MY WORDS THAT I SHALL SPEAK< UNTO THEE RECEIVE IN THINE HEART, AND HEAR WITH THINE EARS.H# 11 AND GO, GET THEE TO THEM OF THE CAPTIVITY, UNTO THE CHILDREN OF THYM PEOPLE, AND SPEAK UNTO THEM, AND TELL THEM, THUS SAITH THE LORD GOD; WHETHERI. THEY WILL HEAR, OR WHETHER THEY WILL FORBEAR.I# 12 THEN THE SPIRIT TOOK ME UP, AND I HEARD BEHIND ME A VOICE OF A GREATOB RUSHING, SAYING, BLESSED BE THE GLORY OF THE LORD FROM HIS PLACE.M# 13 I HEARD ALSO THE NOISE OF THE WINGS OF THE LIVING CREATURES THAT TOUCHED M ONE ANOTHER, AND THE NOISE OF THE WHEELS OVER AGAINST THEM, AND A NOISE OF AE GREAT RUSHING.GL# 14 SO THE SPIRIT LIFTED ME UP, AND TOOK ME AWAY, AND I WENT IN BITTERNESS,G IN THE HEAT OF MY SPIRIT; BUT THE HAND OF THE LORD WAS STRONG UPON ME.IM# 15 THEN I CAME TO THEM OF THE CAPTIVITY AT TELABIB, THAT DWELT BY THE RIVERHN OF CHEBAR, AND I SAT WHERE THEY SAT, AND REMAINED THERE ASTONISHED AMONG THEM SEVEN DAYS.L# 16 AND IT CAME TO PASS AT THE END OF SEVEN DAYS, THAT THE WORD OF THE LORD CAME UNTO ME, SAYING,F# 17 SON OF MAN, I HAVE MADE THEE A WATCHMAN UNTO THE HOUSE OF ISRAEL:D THEREFORE HEAR THE WORD AT MY MOUTH, AND GIVE THEM WARNING FROM ME.K# 18 WHEN I SAY UNTO THE WICKED, THOU SHALT SURELY DIE; AND THOU GIVEST HIM N NOT WARNING, NOR SPEAKEST TO WARN THE WICKED FROM HIS WICKED WAY, TO SAVE HISJ LIFE; THE SAME WICKED MAN SHALL DIE IN HIS INIQUITY; BUT HIS BLOOD WILL I REQUIRE AT THINE HAND.VJ# 19 YET IF THOU WARN THE WICKED, AND HE TURN NOT FROM HIS WICKEDNESS, NORK FROM HIS WICKED WAY, HE SHALL DIE IN HIS INIQUITY; BUT THOU HAST DELIVEREDM THY SOUL.M# 20 AGAIN, WHEN A RIGHTEOUS MAN DOTH TURN FROM HIS RIGHTEOUSNESS, AND COMMITRM INIQUITY, AND I LAY A STUMBLING-BLOCK BEFORE HIM, HE SHALL DIE: BECAUSE THOU K HAST NOT GIVEN HIM WARNING, HE SHALL DIE IN HIS SIN, AND HIS RIGHTEOUSNESSAL WHICH HE HATH DONE SHALL NOT BE REMEMBERED; BUT HIS BLOOD WILL I REQUIRE AT THINE HAND.M# 21 NEVERTHELESS IF THOU WARN THE RIGHTEOUS MAN, THAT THE RIGHTEOUS SIN NOT,CK AND HE DOTH NOT SIN, HE SHALL SURELY LIVE, BECAUSE HE IS WARNED; ALSO THOUS HAST DELIVERED THY SOUL. L# 22 AND THE HAND OF THE LORD WAS THERE UPON ME; AND HE SAID UNTO ME, ARISE,: GO FORTH INTO THE PLAIN, AND I WILL THERE TALK WITH THEE.K# 23 THEN I AROSE, AND WENT FORTH INTO THE PLAIN: AND, BEHOLD, THE GLORY OF M THE LORD STOOD THERE, AS THE GLORY WHICH I SAW BY THE RIVER OF CHEBAR: AND IW FELL ON MY FACE.TM# 24 THEN THE SPIRIT ENTERED INTO ME, AND SET ME UPON MY FEET, AND SPAKE WITHS; ME, AND SAID UNTO ME, GO, SHUT THYSELF WITHIN THINE HOUSE.SH# 25 BUT THOU, O SON OF MAN, BEHOLD, THEY SHALL PUT BANDS UPON THEE, ANDA SHALL BIND THEE WITH THEM, AND THOU SHALT NOT GO OUT AMONG THEM:TJ# 26 AND I WILL MAKE THY TONGUE CLEAVE TO THE ROOF OF THY MOUTH, THAT THOUN SHALT BE DUMB, AND SHALT NOT BE TO THEM A REPROVER: FOR THEY ARE A REBELLIOUS HOUSE. J# 27 BUT WHEN I SPEAK WITH THEE, I WILL OPEN THY MOUTH, AND THOU SHALT SAYJ UNTO THEM, THUS SAITH THE LORD GOD; HE THAT HEARETH, LET HIM HEAR; AND HEC THAT FORBEARETH, LET HIM FORBEAR: FOR THEY ARE A REBELLIOUS HOUSE.O = CHAPTER 4 H# 1 THOU ALSO, SON OF MAN, TAKE THEE A TILE, AND LAY IT BEFORE THEE, AND+ POURTRAY UPON IT THE CITY, EVEN JERUSALEM:DK# 2 AND LAY SIEGE AGAINST IT, AND BUILD A FORT AGAINST IT, AND CAST A MOUNT L AGAINST IT; SET THE CAMP ALSO AGAINST IT, AND SET BATTERING RAMS AGAINST IT ROUND ABOUT. K# 3 MOREOVER TAKE THOU UNTO THEE AN IRON PAN, AND SET IT FOR A WALL OF IRONSH BETWEEN THEE AND THE CITY: AND SET THY FACE AGAINST IT, AND IT SHALL BEK BESIEGED, AND THOU SHALT LAY SI00x<{<<%X>%+%O-%TADATADATAEGE AGAINST IT. THIS SHALL BE A SIGN TO THEU HOUSE OF ISRAEL.TJ# 4 LIE THOU ALSO UPON THY LEFT SIDE, AND LAY THE INIQUITY OF THE HOUSE OFM ISRAEL UPON IT: ACCORDING TO THE NUMBER OF THE DAYS THAT THOU SHALT LIE UPONC# IT THOU SHALT BEAR THEIR INIQUITY.MK# 5 FOR I HAVE LAID UPON THEE THE YEARS OF THEIR INIQUITY, ACCORDING TO THEEJ NUMBER OF THE DAYS, THREE HUNDRED AND NINETY DAYS: SO SHALT THOU BEAR THE! INIQUITY OF THE HOUSE OF ISRAEL.AJ# 6 AND WHEN THOU HAST ACCOMPLISHED THEM, LIE AGAIN ON THY RIGHT SIDE, ANDF THOU SHALT BEAR THE INIQUITY OF THE HOUSE OF JUDAH FORTY DAYS: I HAVE$ APPOINTED THEE EACH DAY FOR A YEAR.H# 7 THEREFORE THOU SHALT SET THY FACE TOWARD THE SIEGE OF JERUSALEM, ANDB THINE ARM SHALL BE UNCOVERED, AND THOU SHALT PROPHESY AGAINST IT.I# 8 AND, BEHOLD, I WILL LAY BANDS UPON THEE, AND THOU SHALT NOT TURN THEENF FROM ONE SIDE TO ANOTHER, TILL THOU HAST ENDED THE DAYS OF THY SIEGE.L# 9 TAKE THOU ALSO UNTO THEE WHEAT, AND BARLEY, AND BEANS, AND LENTILES, ANDN MILLET, AND FITCHES, AND PUT THEM IN ONE VESSEL, AND MAKE THEE BREAD THEREOF,M ACCORDING TO THE NUMBER OF THE DAYS THAT THOU SHALT LIE UPON THY SIDE, THREE 0 HUNDRED AND NINETY DAYS SHALT THOU EAT THEREOF.K# 10 AND THY MEAT WHICH THOU SHALT EAT SHALL BE BY WEIGHT, TWENTY SHEKELS A* DAY: FROM TIME TO TIME SHALT THOU EAT IT.K# 11 THOU SHALT DRINK ALSO WATER BY MEASURE, THE SIXTH PART OF AN HIN: FROME TIME TO TIME SHALT THOU DRINK.EL# 12 AND THOU SHALT EAT IT AS BARLEY CAKES, AND THOU SHALT BAKE IT WITH DUNG( THAT COMETH OUT OF MAN, IN THEIR SIGHT.H# 13 AND THE LORD SAID, EVEN THUS SHALL THE CHILDREN OF ISRAEL EAT THEIR= DEFILED BREAD AMONG THE GENTILES, WHITHER I WILL DRIVE THEM.AJ# 14 THEN SAID I, AH LORD GOD! BEHOLD, MY SOUL HATH NOT BEEN POLLUTED: FORG FROM MY YOUTH UP EVEN TILL NOW HAVE I NOT EATEN OF THAT WHICH DIETH OFTJ ITSELF, OR IS TORN IN PIECES; NEITHER CAME THERE ABOMINABLE FLESH INTO MY MOUTH. M# 15 THEN HE SAID UNTO ME, LO, I HAVE GIVEN THEE COWS DUNG FOR MANS DUNG, ANDB( THOU SHALT PREPARE THY BREAD THEREWITH.L# 16 MOREOVER HE SAID UNTO ME, SON OF MAN, BEHOLD, I WILL BREAK THE STAFF OFK BREAD IN JERUSALEM: AND THEY SHALL EAT BREAD BY WEIGHT, AND WITH CARE; AND: THEY SHALL DRINK WATER BY MEASURE, AND WITH ASTONISHMENT:J# 17 THAT THEY MAY WANT BREAD AND WATER, AND BE ASTONIED ONE WITH ANOTHER,% AND CONSUME AWAY FOR THEIR INIQUITY.E = CHAPTER 5 M# 1 AND THOU, SON OF MAN, TAKE THEE A SHARP KNIFE, TAKE THEE A BARBERS RAZOR,HH AND CAUSE IT TO PASS UPON THINE HEAD AND UPON THY BEARD: THEN TAKE THEE( BALANCES TO WEIGH, AND DIVIDE THE HAIR.M# 2 THOU SHALT BURN WITH FIRE A THIRD PART IN THE MIDST OF THE CITY, WHEN THE M DAYS OF THE SIEGE ARE FULFILLED: AND THOU SHALT TAKE A THIRD PART, AND SMITEUN ABOUT IT WITH A KNIFE: AND A THIRD PART THOU SHALT SCATTER IN THE WIND; AND I" WILL DRAW OUT A SWORD AFTER THEM.F# 3 THOU SHALT ALSO TAKE THEREOF A FEW IN NUMBER, AND BIND THEM IN THY SKIRTS.J# 4 THEN TAKE OF THEM AGAIN, AND CAST THEM INTO THE MIDST OF THE FIRE, ANDN BURN THEM IN THE FIRE; FOR THEREOF SHALL A FIRE COME FORTH INTO ALL THE HOUSE OF ISRAEL.TM# 5 THUS SAITH THE LORD GOD; THIS IS JERUSALEM: I HAVE SET IT IN THE MIDST OFS4 THE NATIONS AND COUNTRIES THAT ARE ROUND ABOUT HER.L# 6 AND SHE HATH CHANGED MY JUDGMENTS INTO WICKEDNESS MORE THAN THE NATIONS,K AND MY STATUTES MORE THAN THE COUNTRIES THAT ARE ROUND ABOUT HER: FOR THEYEI HAVE REFUSED MY JUDGMENTS AND MY STATUTES, THEY HAVE NOT WALKED IN THEM. J# 7 THEREFORE THUS SAITH THE LORD GOD; BECAUSE YE MULTIPLIED MORE THAN THEN NATIONS THAT ARE ROUND ABOUT YOU, AND HAVE NOT WALKED IN MY STATUTES, NEITHERL HAVE KEPT MY JUDGMENTS, NEITHER HAVE DONE ACCORDING TO THE JUDGMENTS OF THE" NATIONS THAT ARE ROUND ABOUT YOU;J# 8 THEREFORE THUS SAITH THE LORD GOD; BEHOLD, I, EVEN I, AM AGAINST THEE,M AND WILL EXECUTE JUDGMENTS IN THE MIDST OF THEE IN THE SIGHT OF THE NATIONS.:J# 9 AND I WILL DO IN THEE THAT WHICH I HAVE NOT DONE, AND WHEREUNTO I WILL= NOT DO ANY MORE THE LIKE, BECAUSE OF ALL THINE ABOMINATIONS.UK# 10 THEREFORE THE FATHERS SHA00x<<D%5%T6%! !LL EAT THE SONS IN THE MIDST OF THEE, AND THEDL SONS SHALL EAT THEIR FATHERS; AND I WILL EXECUTE JUDGMENTS IN THEE, AND THE: WHOLE REMNANT OF THEE WILL I SCATTER IN TO ALL THE WINDS.H# 11 WHEREFORE, AS I LIVE, SAITH THE LORD GOD; SURELY, BECAUSE THOU HASTH DEFILED MY SANCTUARY WITH ALL THY DETESTABLE THINGS, AND WITH ALL THINEJ ABOMINATIONS, THEREFORE WILL I ALSO DIMINISH THEE; NEITHER SHALL MINE EYE% SPARE, NEITHER WILL I HAVE ANY PITY.CH# 12 A THIRD PART OF THEE SHALL DIE WITH THE PESTILENCE, AND WITH FAMINEL SHALL THEY BE CONSUMED IN THE MIDST OF THEE: AND A THIRD PART SHALL FALL BYI THE SWORD ROUND ABOUT THEE; AND I WILL SCATTER A THIRD PART INTO ALL THE / WINDS, AND I WILL DRAW OUT A SWORD AFTER THEM.SL# 13 THUS SHALL MINE ANGER BE ACCOMPLISHED, AND I WILL CAUSE MY FURY TO RESTM UPON THEM, AND I WILL BE COMFORTED: AND THEY SHALL KNOW THAT I THE LORD HAVED@ SPOKEN IT IN MY ZEAL, WHEN I HAVE ACCOMPLISHED MY FURY IN THEM.K# 14 MOREOVER I WILL MAKE THEE WASTE, AND A REPROACH AMONG THE NATIONS THAT 8 ARE ROUND ABOUT THEE, IN THE SIGHT OF ALL THAT PASS BY.A# 15 SO IT SHALL BE A REPROACH AND A TAUNT, AN INSTRUCTION AND AN N ASTONISHMENT UNTO THE NATIONS THAT ARE ROUND ABOUT THEE, WHEN I SHALL EXECUTEJ JUDGMENTS IN THEE IN ANGER AND IN FURY AND IN FURIOUS REBUKES. I THE LORD HAVE SPOKEN IT.J# 16 WHEN I SHALL SEND UPON THEM THE EVIL ARROWS OF FAMINE, WHICH SHALL BEH FOR THEIR DESTRUCTION, AND WHICH I WILL SEND TO DESTROY YOU: AND I WILLB INCREASE THE FAMINE UPON YOU, AND WILL BREAK YOUR STAFF OF BREAD:K# 17 SO WILL I SEND UPON YOU FAMINE AND EVIL BEASTS, AND THEY SHALL BEREAVEEM THEE: AND PESTILENCE AND BLOOD SHALL PASS THROUGH THEE; AND I WILL BRING THE , SWORD UPON THEE. I THE LORD HAVE SPOKEN IT. = CHAPTER 6 2# 1 AND THE WORD OF THE LORD CAME UNTO ME, SAYING,I# 2 SON OF MAN, SET THY FACE TOWARD THE MOUNTAINS OF ISRAEL, AND PROPHESYO AGAINST THEM,H# 3 AND SAY, YE MOUNTAINS OF ISRAEL, HEAR THE WORD OF THE LORD GOD; THUSM SAITH THE LORD GOD TO THE MOUNTAINS, AND TO THE HILLS, TO THE RIVERS, AND TO H THE VALLEYS; BEHOLD, I, EVEN I, WILL BRING A SWORD UPON YOU, AND I WILL DESTROY YOUR HIGH PLACES.M# 4 AND YOUR ALTARS SHALL BE DESOLATE, AND YOUR IMAGES SHALL BE BROKEN: AND IO1 WILL CAST DOWN YOUR SLAIN MEN BEFORE YOUR IDOLS.OK# 5 AND I WILL LAY THE DEAD CARCASES OF THE CHILDREN OF ISRAEL BEFORE THEIRN> IDOLS; AND I WILL SCATTER YOUR BONES ROUND ABOUT YOUR ALTARS.K# 6 IN ALL YOUR DWELLINGPLACES THE CITIES SHALL BE LAID WASTE, AND THE HIGH F PLACES SHALL BE DESOLATE; THAT YOUR ALTARS MAY BE LAID WASTE AND MADEM DESOLATE, AND YOUR IDOLS MAY BE BROKEN AND CEASE, AND YOUR IMAGES MAY BE CUTH' DOWN, AND YOUR WORKS MAY BE ABOLISHED.SM# 7 AND THE SLAIN SHALL FALL IN THE MIDST OF YOU, AND YE SHALL KNOW THAT I AMB THE LORD.K# 8 YET WILL I LEAVE A REMNANT, THAT YE MAY HAVE SOME THAT SHALL ESCAPE THE K SWORD AMONG THE NATIONS, WHEN YE SHALL BE SCATTERED THROUGH THE COUNTRIES.NK# 9 AND THEY THAT ESCAPE OF YOU SHALL REMEMBER ME AMONG THE NATIONS WHITHEREN THEY SHALL BE CARRIED CAPTIVES, BECAUSE I AM BROKEN WITH THEIR WHORISH HEART,K WHICH HATH DEPARTED FROM ME, AND WITH THEIR EYES, WHICH GO A WHORING AFTERYK THEIR IDOLS: AND THEY SHALL LOTHE THEMSELVES FOR THE EVILS WHICH THEY HAVEU% COMMITTED IN ALL THEIR ABOMINATIONS.RM# 10 AND THEY SHALL KNOW THAT I AM THE LORD, AND THAT I HAVE NOT SAID IN VAIN % THAT I WOULD DO THIS EVIL UNTO THEM.LM# 11 THUS SAITH THE LORD GOD; SMITE WITH THINE HAND, AND STAMP WITH THY FOOT,EM AND SAY, ALAS FOR ALL THE EVIL ABOMINATIONS OF THE HOUSE OF ISRAEL! FOR THEYI? SHALL FALL BY THE SWORD, BY THE FAMINE, AND BY THE PESTILENCE.EH# 12 HE THAT IS FAR OFF SHALL DIE OF THE PESTILENCE; AND HE THAT IS NEARL SHALL FALL BY THE SWORD; AND HE THAT REMAINETH AND IS BESIEGED SHALL DIE BY6 THE FAMINE: THUS WILL I ACCOMPLISH MY FURY UPON THEM.I# 13 THEN SHALL YE KNOW THAT I AM THE LORD, WHEN THEIR SLAIN MEN SHALL BEMM AMONG THEIR IDOLS ROUND ABOUT THEIR ALTARS, UPON EVERY HIGH HILL, IN ALL THETN TOPS OF THE MOUNTAINS, AND UNDER EVERY GREEN TREE, AND UNDER EVERY THIC00x<{<<%X>%+%O-%TADATADATAK OAK,@ THE PLACE WHERE THEY DID OFFER SWEET SAVOUR TO ALL THEIR IDOLS.I# 14 SO WILL I STRETCH OUT MY HAND UPON THEM, AND MAKE THE LAND DESOLATE,RD YEA, MORE DESOLATE THAN THE WILDERNESS TOWARD DIBLATH, IN ALL THEIR5 HABITATIONS: AND THEY SHALL KNOW THAT I AM THE LORD.P = CHAPTER 7 7# 1 MOREOVER THE WORD OF THE LORD CAME UNTO ME, SAYING,MK# 2 ALSO, THOU SON OF MAN, THUS SAITH THE LORD GOD UNTO THE LAND OF ISRAEL;L; AN END, THE END IS COME UPON THE FOUR CORNERS OF THE LAND. L# 3 NOW IS THE END COME UPON THEE, AND I WILL SEND MINE ANGER UPON THEE, ANDI WILL JUDGE THEE ACCORDING TO THY WAYS, AND WILL RECOMPENSE UPON THEE ALLE THINE ABOMINATIONS.K# 4 AND MINE EYE SHALL NOT SPARE THEE, NEITHER WILL I HAVE PITY: BUT I WILLTL RECOMPENSE THY WAYS UPON THEE, AND THINE ABOMINATIONS SHALL BE IN THE MIDST/ OF THEE: AND YE SHALL KNOW THAT I AM THE LORD.OD# 5 THUS SAITH THE LORD GOD; AN EVIL, AN ONLY EVIL, BEHOLD, IS COME.H# 6 AN END IS COME, THE END IS COME: IT WATCHETH FOR THEE; BEHOLD, IT IS COME.M# 7 THE MORNING IS COME UNTO THEE, O THOU THAT DWELLEST IN THE LAND: THE TIMERG IS COME, THE DAY OF TROUBLE IS NEAR, AND NOT THE SOUNDING AGAIN OF THE. MOUNTAINS.EL# 8 NOW WILL I SHORTLY POUR OUT MY FURY UPON THEE, AND ACCOMPLISH MINE ANGERL UPON THEE: AND I WILL JUDGE THEE ACCORDING TO THY WAYS, AND WILL RECOMPENSE! THEE FOR ALL THINE ABOMINATIONS.OM# 9 AND MINE EYE SHALL NOT SPARE, NEITHER WILL I HAVE PITY: I WILL RECOMPENSEEK THEE ACCORDING TO THY WAYS AND THINE ABOMINATIONS THAT ARE IN THE MIDST OF 9 THEE; AND YE SHALL KNOW THAT I AM THE LORD THAT SMITETH.LK# 10 BEHOLD THE DAY, BEHOLD, IT IS COME: THE MORNING IS GONE FORTH; THE RODA# HATH BLOSSOMED, PRIDE HATH BUDDED.LF# 11 VIOLENCE IS RISEN UP INTO A ROD OF WICKEDNESS: NONE OF THEM SHALLM REMAIN, NOR OF THEIR MULTITUDE, NOR OF ANY OF THEIRS: NEITHER SHALL THERE BEO WAILING FOR THEM.K# 12 THE TIME IS COME, THE DAY DRAWETH NEAR: LET NOT THE BUYER REJOICE, NORC? THE SELLER MOURN: FOR WRATH IS UPON ALL THE MULTITUDE THEREOF. I# 13 FOR THE SELLER SHALL NOT RETURN TO THAT WHICH IS SOLD, ALTHOUGH THEYEN WERE YET ALIVE: FOR THE VISION IS TOUCHING THE WHOLE MULTITUDE THEREOF, WHICHN SHALL NOT RETURN; NEITHER SHALL ANY STRENGTHEN HIMSELF IN THE INIQUITY OF HIS LIFE.K# 14 THEY HAVE BLOWN THE TRUMPET, EVEN TO MAKE ALL READY; BUT NONE GOETH TOR< THE BATTLE: FOR MY WRATH IS UPON ALL THE MULTITUDE THEREOF.L# 15 THE SWORD IS WITHOUT, AND THE PESTILENCE AND THE FAMINE WITHIN: HE THATM IS IN THE FIELD SHALL DIE WITH THE SWORD; AND HE THAT IS IN THE CITY, FAMINEO! AND PESTILENCE SHALL DEVOUR HIM.HM# 16 BUT THEY THAT ESCAPE OF THEM SHALL ESCAPE, AND SHALL BE ON THE MOUNTAINSRM LIKE DOVES OF THE VALLEYS, ALL OF THEM MOURNING, EVERY ONE FOR HIS INIQUITY.UE# 17 ALL HANDS SHALL BE FEEBLE, AND ALL KNEES SHALL BE WEAK AS WATER.RK# 18 THEY SHALL ALSO GIRD THEMSELVES WITH SACKCLOTH, AND HORROR SHALL COVER L THEM; AND SHAME SHALL BE UPON ALL FACES, AND BALDNESS UPON ALL THEIR HEADS.I# 19 THEY SHALL CAST THEIR SILVER IN THE STREETS, AND THEIR GOLD SHALL BECN REMOVED: THEIR SILVER AND THEIR GOLD SHALL NOT BE ABLE TO DELIVER THEM IN THEJ DAY OF THE WRATH OF THE LORD: THEY SHALL NOT SATISFY THEIR SOULS, NEITHERG FILL THEIR BOWELS: BECAUSE IT IS THE STUMBLINGBLOCK OF THEIR INIQUITY.LK# 20 AS FOR THE BEAUTY OF HIS ORNAMENT, HE SET IT IN MAJESTY: BUT THEY MADE I THE IMAGES OF THEIR ABOMINATIONS AND OF THEIR DETESTABLE THINGS THEREIN:B' THEREFORE HAVE I SET IT FAR FROM THEM.HJ# 21 AND I WILL GIVE IT INTO THE HANDS OF THE STRANGERS FOR A PREY, AND TO@ THE WICKED OF THE EARTH FOR A SPOIL; AND THEY SHALL POLLUTE IT.I# 22 MY FACE WILL I TURN ALSO FROM THEM, AND THEY SHALL POLLUTE MY SECRETI; PLACE: FOR THE ROBBERS SHALL ENTER INTO IT, AND DEFILE IT.HI# 23 MAKE A CHAIN: FOR THE LAND IS FULL OF BLOODY CRIMES, AND THE CITY IST FULL OF VIOLENCE.L# 24 WHEREFORE I WILL BRING THE WORST OF THE HEATHEN, AND THEY SHALL POSSESSJ THEIR HOUSES: I WILL ALSO MAKE THE POMP OF THE STRONG TO CEASE; AND THEIR HOLY PLACES SHALL BE DEFILED.L# 25 DESTRUCTION COMETH; AND THEY 00x<<D%5%T6%! !SHALL SEEK PEACE, AND THERE SHALL BE NONE.M# 26 MISCHIEF SHALL COME UPON MISCHIEF, AND RUMOUR SHALL BE UPON RUMOUR; THEN K SHALL THEY SEEK A VISION OF THE PROPHET; BUT THE LAW SHALL PERISH FROM THE3' PRIEST, AND COUNSEL FROM THE ANCIENTS.OK# 27 THE KING SHALL MOURN, AND THE PRINCE SHALL BE CLOTHED WITH DESOLATION, J AND THE HANDS OF THE PEOPLE OF THE LAND SHALL BE TROUBLED: I WILL DO UNTOL THEM AFTER THEIR WAY, AND ACCORDING TO THEIR DESERTS WILL I JUDGE THEM; AND$ THEY SHALL KNOW THAT I AM THE LORD. = CHAPTER 8 K# 1 AND IT CAME TO PASS IN THE SIXTH YEAR, IN THE SIXTH MONTH, IN THE FIFTHOM DAY OF THE MONTH, AS I SAT IN MINE HOUSE, AND THE ELDERS OF JUDAH SAT BEFOREH6 ME, THAT THE HAND OF THE LORD GOD FELL THERE UPON ME.H# 2 THEN I BEHELD, AND LO A LIKENESS AS THE APPEARANCE OF FIRE: FROM THEM APPEARANCE OF HIS LOINS EVEN DOWNWARD, FIRE; AND FROM HIS LOINS EVEN UPWARD, 9 AS THE APPEARANCE OF BRIGHTNESS, AS THE COLOUR OF AMBER.IM# 3 AND HE PUT FORTH THE FORM OF AN HAND, AND TOOK ME BY A LOCK OF MINE HEAD;EM AND THE SPIRIT LIFTED ME UP BETWEEN THE EARTH AND THE HEAVEN, AND BROUGHT METG IN THE VISIONS OF GOD TO JERUSALEM, TO THE DOOR OF THE INNER GATE THATTM LOOKETH TOWARD THE NORTH; WHERE WAS THE SEAT OF THE IMAGE OF JEALOUSY, WHICHH PROVOKETH TO JEALOUSY. K# 4 AND, BEHOLD, THE GLORY OF THE GOD OF ISRAEL WAS THERE, ACCORDING TO THEE VISION THAT I SAW IN THE PLAIN.K# 5 THEN SAID HE UNTO ME, SON OF MAN, LIFT UP THINE EYES NOW THE WAY TOWARDFI THE NORTH. SO I LIFTED UP MINE EYES THE WAY TOWARD THE NORTH, AND BEHOLDIH NORTHWARD AT THE GATE OF THE ALTAR THIS IMAGE OF JEALOUSY IN THE ENTRY.J# 6 HE SAID FURTHERMORE UNTO ME, SON OF MAN, SEEST THOU WHAT THEY DO? EVENH THE GREAT ABOMINATIONS THAT THE HOUSE OF ISRAEL COMMITTETH HERE, THAT IM SHOULD GO FAR OFF FROM MY SANCTUARY? BUT TURN THEE YET AGAIN, AND THOU SHALTR SEE GREATER ABOMINATIONS.K# 7 AND HE BROUGHT ME TO THE DOOR OF THE COURT; AND WHEN I LOOKED, BEHOLD AN HOLE IN THE WALL.I# 8 THEN SAID HE UNTO ME, SON OF MAN, DIG NOW IN THE WALL: AND WHEN I HADB# DIGGED IN THE WALL, BEHOLD A DOOR. L# 9 AND HE SAID UNTO ME, GO IN, AND BEHOLD THE WICKED ABOMINATIONS THAT THEY DO HERE.SH# 10 SO I WENT IN AND SAW; AND BEHOLD EVERY FORM OF CREEPING THINGS, ANDM ABOMINABLE BEASTS, AND ALL THE IDOLS OF THE HOUSE OF ISRAEL, POURTRAYED UPONE THE WALL ROUND ABOUT.L# 11 AND THERE STOOD BEFORE THEM SEVENTY MEN OF THE ANCIENTS OF THE HOUSE OFJ ISRAEL, AND IN THE MIDST OF THEM STOOD JAAZANIAH THE SON OF SHAPHAN, WITHH EVERY MAN HIS CENSER IN HIS HAND; AND A THICK CLOUD OF INCENSE WENT UP.J# 12 THEN SAID HE UNTO ME, SON OF MAN, HAST THOU SEEN WHAT THE ANCIENTS OFN THE HOUSE OF ISRAEL DO IN THE DARK, EVERY MAN IN THE CHAMBERS OF HIS IMAGERY?G FOR THEY SAY, THE LORD SEETH US NOT; THE LORD HATH FORSAKEN THE EARTH.UJ# 13 HE SAID ALSO UNTO ME, TURN THEE YET AGAIN, AND THOU SHALT SEE GREATER ABOMINATIONS THAT THEY DO.HL# 14 THEN HE BROUGHT ME TO THE DOOR OF THE GATE OF THE LORDS HOUSE WHICH WASC TOWARD THE NORTH; AND, BEHOLD, THERE SAT WOMEN WEEPING FOR TAMMUZ.IK# 15 THEN SAID HE UNTO ME, HAST THOU SEEN THIS, O SON OF MAN? TURN THEE YETU; AGAIN, AND THOU SHALT SEE GREATER ABOMINATIONS THAN THESE.RL# 16 AND HE BROUGHT ME INTO THE INNER COURT OF THE LORDS HOUSE, AND, BEHOLD,M AT THE DOOR OF THE TEMPLE OF THE LORD, BETWEEN THE PORCH AND THE ALTAR, WEREYK ABOUT FIVE AND TWENTY MEN, WITH THEIR BACKS TOWARD THE TEMPLE OF THE LORD, N AND THEIR FACES TOWARD THE EAST; AND THEY WORSHIPPED THE SUN TOWARD THE EAST.K# 17 THEN HE SAID UNTO ME, HAST THOU SEEN THIS, O SON OF MAN? IS IT A LIGHTNI THING TO THE HOUSE OF JUDAH THAT THEY COMMIT THE ABOMINATIONS WHICH THEYSL COMMIT HERE? FOR THEY HAVE FILLED THE LAND WITH VIOLENCE, AND HAVE RETURNEDD TO PROVOKE ME TO ANGER: AND, LO, THEY PUT THE BRANCH TO THEIR NOSE.J# 18 THEREFORE WILL I ALSO DEAL IN FURY: MINE EYE SHALL NOT SPARE, NEITHERJ WILL I HAVE PITY: AND THOUGH THEY CRY IN MINE EARS WITH A LOUD VOICE, YET WILL I NOT HEAR THEM. = CHAPTER 9 N# 1 HE CRIED ALSO IN MINE EARS WITH A LOUD VOICE, SAYING, CAUS00x<{<<%X>%+%O-%TADATADATAE THEM THAT HAVEM CHARGE OVER THE CITY TO DRAW NEAR, EVEN EVERY MAN WITH HIS DESTROYING WEAPONO IN HIS HAND.J# 2 AND, BEHOLD, SIX MEN CAME FROM THE WAY OF THE HIGHER GATE, WHICH LIETHL TOWARD THE NORTH, AND EVERY MAN A SLAUGHTER WEAPON IN HIS HAND; AND ONE MANK AMONG THEM WAS CLOTHED WITH LINEN, WITH A WRITERS INKHORN BY HIS SIDE: AND 1 THEY WENT IN, AND STOOD BESIDE THE BRASEN ALTAR.LM# 3 AND THE GLORY OF THE GOD OF ISRAEL WAS GONE UP FROM THE CHERUB, WHEREUPON M HE WAS, TO THE THRESHOLD OF THE HOUSE. AND HE CALLED TO THE MAN CLOTHED WITHD2 LINEN, WHICH HAD THE WRITERS INKHORN BY HIS SIDE;M# 4 AND THE LORD SAID UNTO HIM, GO THROUGH THE MIDST OF THE CITY, THROUGH THE,K MIDST OF JERUSALEM, AND SET A MARK UPON THE FOREHEADS OF THE MEN THAT SIGH;I AND THAT CRY FOR ALL THE ABOMINATIONS THAT BE DONE IN THE MIDST THEREOF. J# 5 AND TO THE OTHERS HE SAID IN MINE HEARING, GO YE AFTER HIM THROUGH THE? CITY, AND SMITE: LET NOT YOUR EYE SPARE, NEITHER HAVE YE PITY:UK# 6 SLAY UTTERLY OLD AND YOUNG, BOTH MAIDS, AND LITTLE CHILDREN, AND WOMEN:DL BUT COME NOT NEAR ANY MAN UPON WHOM IS THE MARK; AND BEGIN AT MY SANCTUARY.@ THEN THEY BEGAN AT THE ANCIENT MEN WHICH WERE BEFORE THE HOUSE.I# 7 AND HE SAID UNTO THEM, DEFILE THE HOUSE, AND FILL THE COURTS WITH THEA? SLAIN: GO YE FORTH. AND THEY WENT FORTH, AND SLEW IN THE CITY.EM# 8 AND IT CAME TO PASS, WHILE THEY WERE SLAYING THEM, AND I WAS LEFT, THAT ITK FELL UPON MY FACE, AND CRIED, AND SAID, AH LORD GOD! WILT THOU DESTROY ALLYE THE RESIDUE OF ISRAEL IN THY POURING OUT OF THY FURY UPON JERUSALEM?BJ# 9 THEN SAID HE UNTO ME, THE INIQUITY OF THE HOUSE OF ISRAEL AND JUDAH ISE EXCEEDING GREAT, AND THE LAND IS FULL OF BLOOD, AND THE CITY FULL OFNK PERVERSENESS: FOR THEY SAY, THE LORD HATH FORSAKEN THE EARTH, AND THE LORD SEETH NOT.AL# 10 AND AS FOR ME ALSO, MINE EYE SHALL NOT SPARE, NEITHER WILL I HAVE PITY,1 BUT I WILL RECOMPENSE THEIR WAY UPON THEIR HEAD. J# 11 AND, BEHOLD, THE MAN CLOTHED WITH LINEN, WHICH HAD THE INKHORN BY HISJ SIDE, REPORTED THE MATTER, SAYING, I HAVE DONE AS THOU HAST COMMANDED ME. = CHAPTER 10 EK# 1 THEN I LOOKED, AND, BEHOLD, IN THE FIRMAMENT THAT WAS ABOVE THE HEAD OF K THE CHERUBIMS THERE APPEARED OVER THEM AS IT WERE A SAPPHIRE STONE, AS THEE( APPEARANCE OF THE LIKENESS OF A THRONE.M# 2 AND HE SPAKE UNTO THE MAN CLOTHED WITH LINEN, AND SAID, GO IN BETWEEN THELK WHEELS, EVEN UNDER THE CHERUB, AND FILL THINE HAND WITH COALS OF FIRE FROM L BETWEEN THE CHERUBIMS, AND SCATTER THEM OVER THE CITY. AND HE WENT IN IN MY SIGHT.AM# 3 NOW THE CHERUBIMS STOOD ON THE RIGHT SIDE OF THE HOUSE, WHEN THE MAN WENTI* IN; AND THE CLOUD FILLED THE INNER COURT.J# 4 THEN THE GLORY OF THE LORD WENT UP FROM THE CHERUB, AND STOOD OVER THEI THRESHOLD OF THE HOUSE; AND THE HOUSE WAS FILLED WITH THE CLOUD, AND THE 5 COURT WAS FULL OF THE BRIGHTNESS OF THE LORDS GLORY.IK# 5 AND THE SOUND OF THE CHERUBIMS WINGS WAS HEARD EVEN TO THE OUTER COURT,S3 AS THE VOICE OF THE ALMIGHTY GOD WHEN HE SPEAKETH.HH# 6 AND IT CAME TO PASS, THAT WHEN HE HAD COMMANDED THE MAN CLOTHED WITHN LINEN, SAYING, TAKE FIRE FROM BETWEEN THE WHEELS, FROM BETWEEN THE CHERUBIMS;. THEN HE WENT IN, AND STOOD BESIDE THE WHEELS.K# 7 AND ONE CHERUB STRETCHED FORTH HIS HAND FROM BETWEEN THE CHERUBIMS UNTOTK THE FIRE THAT WAS BETWEEN THE CHERUBIMS, AND TOOK THEREOF, AND PUT IT INTOSI THE HANDS OF HIM THAT WAS CLOTHED WITH LINEN: WHO TOOK IT, AND WENT OUT.EK# 8 AND THERE APPEARED IN THE CHERUBIMS THE FORM OF A MANS HAND UNDER THEIRH WINGS. L# 9 AND WHEN I LOOKED, BEHOLD THE FOUR WHEELS BY THE CHERUBIMS, ONE WHEEL BYK ONE CHERUB, AND ANOTHER WHEEL BY ANOTHER CHERUB: AND THE APPEARANCE OF THEW+ WHEELS WAS AS THE COLOUR OF A BERYL STONE. L# 10 AND AS FOR THEIR APPEARANCES, THEY FOUR HAD ONE LIKENESS, AS IF A WHEEL" HAD BEEN IN THE MIDST OF A WHEEL.M# 11 WHEN THEY WENT, THEY WENT UPON THEIR FOUR SIDES; THEY TURNED NOT AS THEY:M WENT, BUT TO THE PLACE WHITHER THE HEAD LOOKED THEY FOLLOWED IT; THEY TURNEDO NOT AS THEY WENT.M# 12 AND THEIR WHOLE BODY, AND THEIR BACKS, AND THEI00x<<D%5%T6%! !R HANDS, AND THEIR WINGS,SN AND THE WHEELS, WERE FULL OF EYES ROUND ABOUT, EVEN THE WHEELS THAT THEY FOUR HAD. F# 13 AS FOR THE WHEELS, IT WAS CRIED UNTO THEM IN MY HEARING, O WHEEL.K# 14 AND EVERY ONE HAD FOUR FACES: THE FIRST FACE WAS THE FACE OF A CHERUB,DM AND THE SECOND FACE WAS THE FACE OF A MAN, AND THE THIRD THE FACE OF A LION,E% AND THE FOURTH THE FACE OF AN EAGLE. M# 15 AND THE CHERUBIMS WERE LIFTED UP. THIS IS THE LIVING CREATURE THAT I SAW2 BY THE RIVER OF CHEBAR.G# 16 AND WHEN THE CHERUBIMS WENT, THE WHEELS WENT BY THEM: AND WHEN THEUL CHERUBIMS LIFTED UP THEIR WINGS TO MOUNT UP FROM THE EARTH, THE SAME WHEELS" ALSO TURNED NOT FROM BESIDE THEM.M# 17 WHEN THEY STOOD, THESE STOOD; AND WHEN THEY WERE LIFTED UP, THESE LIFTED G UP THEMSELVES ALSO: FOR THE SPIRIT OF THE LIVING CREATURE WAS IN THEM.HM# 18 THEN THE GLORY OF THE LORD DEPARTED FROM OFF THE THRESHOLD OF THE HOUSE,C AND STOOD OVER THE CHERUBIMS.K# 19 AND THE CHERUBIMS LIFTED UP THEIR WINGS, AND MOUNTED UP FROM THE EARTH M IN MY SIGHT: WHEN THEY WENT OUT, THE WHEELS ALSO WERE BESIDE THEM, AND EVERYEL ONE STOOD AT THE DOOR OF THE EAST GATE OF THE LORDS HOUSE; AND THE GLORY OF' THE GOD OF ISRAEL WAS OVER THEM ABOVE.TJ# 20 THIS IS THE LIVING CREATURE THAT I SAW UNDER THE GOD OF ISRAEL BY THE: RIVER OF CHEBAR; AND I KNEW THAT THEY WERE THE CHERUBIMS.G# 21 EVERY ONE HAD FOUR FACES APIECE, AND EVERY ONE FOUR WINGS; AND THES6 LIKENESS OF THE HANDS OF A MAN WAS UNDER THEIR WINGS.J# 22 AND THE LIKENESS OF THEIR FACES WAS THE SAME FACES WHICH I SAW BY THEG RIVER OF CHEBAR, THEIR APPEARANCES AND THEMSELVES: THEY WENT EVERY ONER STRAIGHT FORWARD. = CHAPTER 11 EN# 1 MOREOVER THE SPIRIT LIFTED ME UP, AND BROUGHT ME UNTO THE EAST GATE OF THEM LORDS HOUSE, WHICH LOOKETH EASTWARD: AND BEHOLD AT THE DOOR OF THE GATE FIVE M AND TWENTY MEN; AMONG WHOM I SAW JAAZANIAH THE SON OF AZUR, AND PELATIAH THE ' SON OF BENAIAH, PRINCES OF THE PEOPLE. M# 2 THEN SAID HE UNTO ME, SON OF MAN, THESE ARE THE MEN THAT DEVISE MISCHIEF,C& AND GIVE WICKED COUNSEL IN THIS CITY:M# 3 WHICH SAY, IT IS NOT NEAR; LET US BUILD HOUSES: THIS CITY IS THE CALDRON,R AND WE BE THE FLESH.E<# 4 THEREFORE PROPHESY AGAINST THEM, PROPHESY, O SON OF MAN.J# 5 AND THE SPIRIT OF THE LORD FELL UPON ME, AND SAID UNTO ME, SPEAK; THUSL SAITH THE LORD; THUS HAVE YE SAID, O HOUSE OF ISRAEL: FOR I KNOW THE THINGS- THAT COME INTO YOUR MIND, EVERY ONE OF THEM.,F# 6 YE HAVE MULTIPLIED YOUR SLAIN IN THIS CITY, AND YE HAVE FILLED THE STREETS THEREOF WITH THE SLAIN.J# 7 THEREFORE THUS SAITH THE LORD GOD; YOUR SLAIN WHOM YE HAVE LAID IN THEJ MIDST OF IT, THEY ARE THE FLESH, AND THIS CITY IS THE CALDRON: BUT I WILL( BRING YOU FORTH OUT OF THE MIDST OF IT.J# 8 YE HAVE FEARED THE SWORD; AND I WILL BRING A SWORD UPON YOU, SAITH THE LORD GOD.K# 9 AND I WILL BRING YOU OUT OF THE MIDST THEREOF, AND DELIVER YOU INTO THE: HANDS OF STRANGERS, AND WILL EXECUTE JUDGMENTS AMONG YOU.J# 10 YE SHALL FALL BY THE SWORD; I WILL JUDGE YOU IN THE BORDER OF ISRAEL;& AND YE SHALL KNOW THAT I AM THE LORD.J# 11 THIS CITY SHALL NOT BE YOUR CALDRON, NEITHER SHALL YE BE THE FLESH INA THE MIDST THEREOF; BUT I WILL JUDGE YOU IN THE BORDER OF ISRAEL:RG# 12 AND YE SHALL KNOW THAT I AM THE LORD: FOR YE HAVE NOT WALKED IN MYGL STATUTES, NEITHER EXECUTED MY JUDGMENTS, BUT HAVE DONE AFTER THE MANNERS OF& THE HEATHEN THAT ARE ROUND ABOUT YOU.M# 13 AND IT CAME TO PASS, WHEN I PROPHESIED, THAT PELATIAH THE SON OF BENAIAHLL DIED. THEN FELL I DOWN UPON MY FACE, AND CRIED WITH A LOUD VOICE, AND SAID,A AH LORD GOD! WILT THOU MAKE A FULL END OF THE REMNANT OF ISRAEL?E5# 14 AGAIN THE WORD OF THE LORD CAME UNTO ME, SAYING,IM# 15 SON OF MAN, THY BRETHREN, EVEN THY BRETHREN, THE MEN OF THY KINDRED, ANDRF ALL THE HOUSE OF ISRAEL WHOLLY, ARE THEY UNTO WHOM THE INHABITANTS OFN JERUSALEM HAVE SAID, GET YOU FAR FROM THE LORD: UNTO US IS THIS LAND GIVEN IN POSSESSION.J# 16 THEREFORE SAY, THUS SAITH THE LORD GOD; ALTHOUGH I HAVE CAST THEM FARD OFF AMONG THE HEATHEN, AND ALTHOUGH I HAVE SCATTERED THEM AMONG THE00x<{<<%X>%+%O-%TADATADATAN COUNTRIES, YET WILL I BE TO THEM AS A LITTLE SANCTUARY IN THE COUNTRIES WHERE THEY SHALL COME.AL# 17 THEREFORE SAY, THUS SAITH THE LORD GOD; I WILL EVEN GATHER YOU FROM THEL PEOPLE, AND ASSEMBLE YOU OUT OF THE COUNTRIES WHERE YE HAVE BEEN SCATTERED,( AND I WILL GIVE YOU THE LAND OF ISRAEL.M# 18 AND THEY SHALL COME THITHER, AND THEY SHALL TAKE AWAY ALL THE DETESTABLEE= THINGS THEREOF AND ALL THE ABOMINATIONS THEREOF FROM THENCE.RL# 19 AND I WILL GIVE THEM ONE HEART, AND I WILL PUT A NEW SPIRIT WITHIN YOU;J AND I WILL TAKE THE STONY HEART OUT OF THEIR FLESH, AND WILL GIVE THEM AN HEART OF FLESH:H# 20 THAT THEY MAY WALK IN MY STATUTES, AND KEEP MINE ORDINANCES, AND DO< THEM: AND THEY SHALL BE MY PEOPLE, AND I WILL BE THEIR GOD.L# 21 BUT AS FOR THEM WHOSE HEART WALKETH AFTER THE HEART OF THEIR DETESTABLEJ THINGS AND THEIR ABOMINATIONS, I WILL RECOMPENSE THEIR WAY UPON THEIR OWN HEADS, SAITH THE LORD GOD.TL# 22 THEN DID THE CHERUBIMS LIFT UP THEIR WINGS, AND THE WHEELS BESIDE THEM;8 AND THE GLORY OF THE GOD OF ISRAEL WAS OVER THEM ABOVE.L# 23 AND THE GLORY OF THE LORD WENT UP FROM THE MIDST OF THE CITY, AND STOOD9 UPON THE MOUNTAIN WHICH IS ON THE EAST SIDE OF THE CITY.:H# 24 AFTERWARDS THE SPIRIT TOOK ME UP, AND BROUGHT ME IN A VISION BY THEK SPIRIT OF GOD INTO CHALDEA, TO THEM OF THE CAPTIVITY. SO THE VISION THAT I  HAD SEEN WENT UP FROM ME.M# 25 THEN I SPAKE UNTO THEM OF THE CAPTIVITY ALL THE THINGS THAT THE LORD HADH SHEWED ME.U = CHAPTER 12 A3# 1 THE WORD OF THE LORD ALSO CAME UNTO ME, SAYING, L# 2 SON OF MAN, THOU DWELLEST IN THE MIDST OF A REBELLIOUS HOUSE, WHICH HAVEM EYES TO SEE, AND SEE NOT; THEY HAVE EARS TO HEAR, AND HEAR NOT: FOR THEY ARE  A REBELLIOUS HOUSE.K# 3 THEREFORE, THOU SON OF MAN, PREPARE THEE STUFF FOR REMOVING, AND REMOVEDM BY DAY IN THEIR SIGHT; AND THOU SHALT REMOVE FROM THY PLACE TO ANOTHER PLACEUJ IN THEIR SIGHT: IT MAY BE THEY WILL CONSIDER, THOUGH THEY BE A REBELLIOUS HOUSE. M# 4 THEN SHALT THOU BRING FORTH THY STUFF BY DAY IN THEIR SIGHT, AS STUFF FOR J REMOVING: AND THOU SHALT GO FORTH AT EVEN IN THEIR SIGHT, AS THEY THAT GO FORTH INTO CAPTIVITY.D# 5 DIG THOU THROUGH THE WALL IN THEIR SIGHT, AND CARRY OUT THEREBY.L# 6 IN THEIR SIGHT SHALT THOU BEAR IT UPON THY SHOULDERS, AND CARRY IT FORTHN IN THE TWILIGHT: THOU SHALT COVER THY FACE, THAT THOU SEE NOT THE GROUND: FOR5 I HAVE SET THEE FOR A SIGN UNTO THE HOUSE OF ISRAEL.LH# 7 AND I DID SO AS I WAS COMMANDED: I BROUGHT FORTH MY STUFF BY DAY, ASI STUFF FOR CAPTIVITY, AND IN THE EVEN I DIGGED THROUGH THE WALL WITH MINE L HAND; I BROUGHT IT FORTH IN THE TWILIGHT, AND I BARE IT UPON MY SHOULDER IN THEIR SIGHT.TA# 8 AND IN THE MORNING CAME THE WORD OF THE LORD UNTO ME, SAYING,RM# 9 SON OF MAN, HATH NOT THE HOUSE OF ISRAEL, THE REBELLIOUS HOUSE, SAID UNTOG THEE, WHAT DOEST THOU?FL# 10 SAY THOU UNTO THEM, THUS SAITH THE LORD GOD; THIS BURDEN CONCERNETH THEF PRINCE IN JERUSALEM, AND ALL THE HOUSE OF ISRAEL THAT ARE AMONG THEM.M# 11 SAY, I AM YOUR SIGN: LIKE AS I HAVE DONE, SO SHALL IT BE DONE UNTO THEM:W) THEY SHALL REMOVE AND GO INTO CAPTIVITY.NJ# 12 AND THE PRINCE THAT IS AMONG THEM SHALL BEAR UPON HIS SHOULDER IN THEK TWILIGHT, AND SHALL GO FORTH: THEY SHALL DIG THROUGH THE WALL TO CARRY OUTHL THEREBY: HE SHALL COVER HIS FACE, THAT HE SEE NOT THE GROUND WITH HIS EYES.K# 13 MY NET ALSO WILL I SPREAD UPON HIM, AND HE SHALL BE TAKEN IN MY SNARE:EK AND I WILL BRING HIM TO BABYLON TO THE LAND OF THE CHALDEANS; YET SHALL HE.' NOT SEE IT, THOUGH HE SHALL DIE THERE.EM# 14 AND I WILL SCATTER TOWARD EVERY WIND ALL THAT ARE ABOUT HIM TO HELP HIM,Y= AND ALL HIS BANDS; AND I WILL DRAW OUT THE SWORD AFTER THEM.SL# 15 AND THEY SHALL KNOW THAT I AM THE LORD, WHEN I SHALL SCATTER THEM AMONG1 THE NATIONS, AND DISPERSE THEM IN THE COUNTRIES.TL# 16 BUT I WILL LEAVE A FEW MEN OF THEM FROM THE SWORD, FROM THE FAMINE, ANDL FROM THE PESTILENCE; THAT THEY MAY DECLARE ALL THEIR ABOMINATIONS AMONG THEC HEATHEN WHITHER THEY COME; AND THEY SHALL KNOW THAT I AM THE LORD.L6# 17 MOREOVER THE WORD OF THE LO00x<<D%5%T6%! !RD CAME TO ME, SAYING,E# 18 SON OF MAN, EAT THY BREAD WITH QUAKING, AND DRINK THY WATER WITHA TREMBLING AND WITH CAREFULNESS;H# 19 AND SAY UNTO THE PEOPLE OF THE LAND, THUS SAITH THE LORD GOD OF THEJ INHABITANTS OF JERUSALEM, AND OF THE LAND OF ISRAEL; THEY SHALL EAT THEIRJ BREAD WITH CAREFULNESS, AND DRINK THEIR WATER WITH ASTONISHMENT, THAT HERN LAND MAY BE DESOLATE FROM ALL THAT IS THEREIN, BECAUSE OF THE VIOLENCE OF ALL THEM THAT DWELL THEREIN.TH# 20 AND THE CITIES THAT ARE INHABITED SHALL BE LAID WASTE, AND THE LAND9 SHALL BE DESOLATE; AND YE SHALL KNOW THAT I AM THE LORD.W6# 21 AND THE WORD OF THE LORD CAME UNTO ME, SAYING, ITI# 22 SON OF MAN, WHAT IS THAT PROVERB THAT YE HAVE IN THE LAND OF ISRAEL,S: SAYING, THE DAYS ARE PROLONGED, AND EVERY VISION FAILETH?K# 23 TELL THEM THEREFORE, THUS SAITH THE LORD GOD; I WILL MAKE THIS PROVERBRM TO CEASE, AND THEY SHALL NO MORE USE IT AS A PROVERB IN ISRAEL; BUT SAY UNTOL< THEM, THE DAYS ARE AT HAND, AND THE EFFECT OF EVERY VISION.I# 24 FOR THERE SHALL BE NO MORE ANY VAIN VISION NOR FLATTERING DIVINATIONK WITHIN THE HOUSE OF ISRAEL.K# 25 FOR I AM THE LORD: I WILL SPEAK, AND THE WORD THAT I SHALL SPEAK SHALLTL COME TO PASS; IT SHALL BE NO MORE PROLONGED: FOR IN YOUR DAYS, O REBELLIOUSE HOUSE, WILL I SAY THE WORD, AND WILL PERFORM IT, SAITH THE LORD GOD.E3# 26 AGAIN THE WORD OF THE LORD CAME TO ME, SAYING.TL# 27 SON OF MAN, BEHOLD, THEY OF THE HOUSE OF ISRAEL SAY, THE VISION THAT HEM SEETH IS FOR MANY DAYS TO COME, AND HE PROPHESIETH OF THE TIMES THAT ARE FAR  OFF.NM# 28 THEREFORE SAY UNTO THEM, THUS SAITH THE LORD GOD; THERE SHALL NONE OF MY M WORDS BE PROLONGED ANY MORE, BUT THE WORD WHICH I HAVE SPOKEN SHALL BE DONE,I SAITH THE LORD GOD. = CHAPTER 13 Y2# 1 AND THE WORD OF THE LORD CAME UNTO ME, SAYING,J# 2 SON OF MAN, PROPHESY AGAINST THE PROPHETS OF ISRAEL THAT PROPHESY, ANDN SAY THOU UNTO THEM THAT PROPHESY OUT OF THEIR OWN HEARTS, HEAR YE THE WORD OF THE LORD;M# 3 THUS SAITH THE LORD GOD; WOE UNTO THE FOOLISH PROPHETS, THAT FOLLOW THEIRR# OWN SPIRIT, AND HAVE SEEN NOTHING!T=# 4 O ISRAEL, THY PROPHETS ARE LIKE THE FOXES IN THE DESERTS.SH# 5 YE HAVE NOT GONE UP INTO THE GAPS, NEITHER MADE UP THE HEDGE FOR THE? HOUSE OF ISRAEL TO STAND IN THE BATTLE IN THE DAY OF THE LORD.DK# 6 THEY HAVE SEEN VANITY AND LYING DIVINATION, SAYING, THE LORD SAITH: ANDEI THE LORD HATH NOT SENT THEM: AND THEY HAVE MADE OTHERS TO HOPE THAT THEYA WOULD CONFIRM THE WORD.B# 7 HAVE YE NOT SEEN A VAIN VISION, AND HAVE YE NOT SPOKEN A LYINGI DIVINATION, WHEREAS YE SAY, THE LORD SAITH IT; ALBEIT I HAVE NOT SPOKEN? I# 8 THEREFORE THUS SAITH THE LORD GOD; BECAUSE YE HAVE SPOKEN VANITY, ANDND SEEN LIES, THEREFORE, BEHOLD, I AM AGAINST YOU, SAITH THE LORD GOD.M# 9 AND MINE HAND SHALL BE UPON THE PROPHETS THAT SEE VANITY, AND THAT DIVINE L LIES: THEY SHALL NOT BE IN THE ASSEMBLY OF MY PEOPLE, NEITHER SHALL THEY BEM WRITTEN IN THE WRITING OF THE HOUSE OF ISRAEL, NEITHER SHALL THEY ENTER INTOO> THE LAND OF ISRAEL; AND YE SHALL KNOW THAT I AM THE LORD GOD.J# 10 BECAUSE, EVEN BECAUSE THEY HAVE SEDUCED MY PEOPLE, SAYING, PEACE; ANDL THERE WAS NO PEACE; AND ONE BUILT UP A WALL, AND, LO, OTHERS DAUBED IT WITH UNTEMPERED MORTER:AL# 11 SAY UNTO THEM WHICH DAUB IT WITH UNTEMPERED MORTER, THAT IT SHALL FALL:N THERE SHALL BE AN OVERFLOWING SHOWER; AND YE, O GREAT HAILSTONES, SHALL FALL;! AND A STORMY WIND SHALL REND IT.M# 12 LO, WHEN THE WALL IS FALLEN, SHALL IT NOT BE SAID UNTO YOU, WHERE IS THE% DAUBING WHEREWITH YE HAVE DAUBED IT?TI# 13 THEREFORE THUS SAITH THE LORD GOD; I WILL EVEN REND IT WITH A STORMYPM WIND IN MY FURY; AND THERE SHALL BE AN OVERFLOWING SHOWER IN MINE ANGER, ANDO+ GREAT HAILSTONES IN MY FURY TO CONSUME IT. F# 14 SO WILL I BREAK DOWN THE WALL THAT YE HAVE DAUBED WITH UNTEMPEREDN MORTER, AND BRING IT DOWN TO THE GROUND, SO THAT THE FOUNDATION THEREOF SHALLH BE DISCOVERED, AND IT SHALL FALL, AND YE SHALL BE CONSUMED IN THE MIDST/ THEREOF: AND YE SHALL KNOW THAT I AM THE LORD.UK# 15 THUS WILL I ACCOMPLISH MY WRATH UPON THE WALL, 00x<{<<%X>%+%O-%TADATADATAAND UPON THEM THAT HAVE N DAUBED IT WITH UNTEMPERED MORTER, AND WILL SAY UNTO YOU, THE WALL IS NO MORE, NEITHER THEY THAT DAUBED IT;OL# 16 TO WIT, THE PROPHETS OF ISRAEL WHICH PROPHESY CONCERNING JERUSALEM, ANDJ WHICH SEE VISIONS OF PEACE FOR HER, AND THERE IS NO PEACE, SAITH THE LORD GOD. I# 17 LIKEWISE, THOU SON OF MAN, SET THY FACE AGAINST THE DAUGHTERS OF THYDI PEOPLE, WHICH PROPHESY OUT OF THEIR OWN HEART; AND PROPHESY THOU AGAINSTH THEM,K# 18 AND SAY, THUS SAITH THE LORD GOD; WOE TO THE WOMEN THAT SEW PILLOWS TO H ALL ARMHOLES, AND MAKE KERCHIEFS UPON THE HEAD OF EVERY STATURE TO HUNTM SOULS! WILL YE HUNT THE SOULS OF MY PEOPLE, AND WILL YE SAVE THE SOULS ALIVEC THAT COME UNTO YOU?J# 19 AND WILL YE POLLUTE ME AMONG MY PEOPLE FOR HANDFULS OF BARLEY AND FORN PIECES OF BREAD, TO SLAY THE SOULS THAT SHOULD NOT DIE, AND TO SAVE THE SOULSL ALIVE THAT SHOULD NOT LIVE, BY YOUR LYING TO MY PEOPLE THAT HEAR YOUR LIES?J# 20 WHEREFORE THUS SAITH THE LORD GOD; BEHOLD, I AM AGAINST YOUR PILLOWS,N WHEREWITH YE THERE HUNT THE SOULS TO MAKE THEM FLY, AND I WILL TEAR THEM FROMJ YOUR ARMS, AND WILL LET THE SOULS GO, EVEN THE SOULS THAT YE HUNT TO MAKE THEM FLY.M# 21 YOUR KERCHIEFS ALSO WILL I TEAR, AND DELIVER MY PEOPLE OUT OF YOUR HAND, N AND THEY SHALL BE NO MORE IN YOUR HAND TO BE HUNTED; AND YE SHALL KNOW THAT I AM THE LORD. J# 22 BECAUSE WITH LIES YE HAVE MADE THE HEART OF THE RIGHTEOUS SAD, WHOM IL HAVE NOT MADE SAD; AND STRENGTHENED THE HANDS OF THE WICKED, THAT HE SHOULD7 NOT RETURN FROM HIS WICKED WAY, BY PROMISING HIM LIFE:EI# 23 THEREFORE YE SHALL SEE NO MORE VANITY, NOR DIVINE DIVINATIONS: FOR I,I WILL DELIVER MY PEOPLE OUT OF YOUR HAND: AND YE SHALL KNOW THAT I AM THEW LORD. = CHAPTER 14 I# 1 THEN CAME CERTAIN OF THE ELDERS OF ISRAEL UNTO ME, AND SAT BEFORE ME. 2# 2 AND THE WORD OF THE LORD CAME UNTO ME, SAYING,M# 3 SON OF MAN, THESE MEN HAVE SET UP THEIR IDOLS IN THEIR HEART, AND PUT THE L STUMBLINGBLOCK OF THEIR INIQUITY BEFORE THEIR FACE: SHOULD I BE ENQUIRED OF AT ALL BY THEM?J# 4 THEREFORE SPEAK UNTO THEM, AND SAY UNTO THEM, THUS SAITH THE LORD GOD;M EVERY MAN OF THE HOUSE OF ISRAEL THAT SETTETH UP HIS IDOLS IN HIS HEART, AND N PUTTETH THE STUMBLINGBLOCK OF HIS INIQUITY BEFORE HIS FACE, AND COMETH TO THEN PROPHET; I THE LORD WILL ANSWER HIM THAT COMETH ACCORDING TO THE MULTITUDE OF HIS IDOLS;SL# 5 THAT I MAY TAKE THE HOUSE OF ISRAEL IN THEIR OWN HEART, BECAUSE THEY ARE+ ALL ESTRANGED FROM ME THROUGH THEIR IDOLS.EL# 6 THEREFORE SAY UNTO THE HOUSE OF ISRAEL, THUS SAITH THE LORD GOD; REPENT,L AND TURN YOURSELVES FROM YOUR IDOLS; AND TURN AWAY YOUR FACES FROM ALL YOUR ABOMINATIONS.L# 7 FOR EVERY ONE OF THE HOUSE OF ISRAEL, OR OF THE STRANGER THAT SOJOURNETHM IN ISRAEL, WHICH SEPARATETH HIMSELF FROM ME, AND SETTETH UP HIS IDOLS IN HISHK HEART, AND PUTTETH THE STUMBLINGBLOCK OF HIS INIQUITY BEFORE HIS FACE, ANDKL COMETH TO A PROPHET TO ENQUIRE OF HIM CONCERNING ME; I THE LORD WILL ANSWER HIM BY MYSELF:RK# 8 AND I WILL SET MY FACE AGAINST THAT MAN, AND WILL MAKE HIM A SIGN AND A;J PROVERB, AND I WILL CUT HIM OFF FROM THE MIDST OF MY PEOPLE; AND YE SHALL KNOW THAT I AM THE LORD.J# 9 AND IF THE PROPHET BE DECEIVED WHEN HE HATH SPOKEN A THING, I THE LORDN HAVE DECEIVED THAT PROPHET, AND I WILL STRETCH OUT MY HAND UPON HIM, AND WILL0 DESTROY HIM FROM THE MIDST OF MY PEOPLE ISRAEL.L# 10 AND THEY SHALL BEAR THE PUNISHMENT OF THEIR INIQUITY: THE PUNISHMENT OFJ THE PROPHET SHALL BE EVEN AS THE PUNISHMENT OF HIM THAT SEEKETH UNTO HIM;G# 11 THAT THE HOUSE OF ISRAEL MAY GO NO MORE ASTRAY FROM ME, NEITHER BETI POLLUTED ANY MORE WITH ALL THEIR TRANSGRESSIONS; BUT THAT THEY MAY BE MYD4 PEOPLE, AND I MAY BE THEIR GOD, SAITH THE LORD GOD.3# 12 THE WORD OF THE LORD CAME AGAIN TO ME, SAYING,,L# 13 SON OF MAN, WHEN THE LAND SINNETH AGAINST ME BY TRESPASSING GRIEVOUSLY,K THEN WILL I STRETCH OUT MINE HAND UPON IT, AND WILL BREAK THE STAFF OF THEUL BREAD THEREOF, AND WILL SEND FAMINE UPON IT, AND WILL CUT OFF MAN AND BEAST FROM IT:UK# 14 THOUGH THESE THREE MEN, NOA00x=<D%5%T6%! !H, DANIEL, AND JOB, WERE IN IT, THEY SHOULDRH DELIVER BUT THEIR OWN SOULS BY THEIR RIGHTEOUSNESS, SAITH THE LORD GOD.K# 15 IF I CAUSE NOISOME BEASTS TO PASS THROUGH THE LAND, AND THEY SPOIL IT,FL SO THAT IT BE DESOLATE, THAT NO MAN MAY PASS THROUGH BECAUSE OF THE BEASTS:K# 16 THOUGH THESE THREE MEN WERE IN IT, AS I LIVE, SAITH THE LORD GOD, THEY L SHALL DELIVER NEITHER SONS NOR DAUGHTERS; THEY ONLY SHALL BE DELIVERED, BUT THE LAND SHALL BE DESOLATE.I# 17 OR IF I BRING A SWORD UPON THAT LAND, AND SAY, SWORD, GO THROUGH THEE/ LAND; SO THAT I CUT OFF MAN AND BEAST FROM IT:SK# 18 THOUGH THESE THREE MEN WERE IN IT, AS I LIVE, SAITH THE LORD GOD, THEYTK SHALL DELIVER NEITHER SONS NOR DAUGHTERS, BUT THEY ONLY SHALL BE DELIVEREDO THEMSELVES.K# 19 OR IF I SEND A PESTILENCE INTO THAT LAND, AND POUR OUT MY FURY UPON ITL, IN BLOOD, TO CUT OFF FROM IT MAN AND BEAST:L# 20 THOUGH NOAH, DANIEL, AND JOB WERE IN IT, AS I LIVE, SAITH THE LORD GOD,N THEY SHALL DELIVER NEITHER SON NOR DAUGHTER; THEY SHALL BUT DELIVER THEIR OWN SOULS BY THEIR RIGHTEOUSNESS.H# 21 FOR THUS SAITH THE LORD GOD; HOW MUCH MORE WHEN I SEND MY FOUR SOREL JUDGMENTS UPON JERUSALEM, THE SWORD, AND THE FAMINE, AND THE NOISOME BEAST,6 AND THE PESTILENCE, TO CUT OFF FROM IT MAN AND BEAST?G# 22 YET, BEHOLD, THEREIN SHALL BE LEFT A REMNANT THAT SHALL BE BROUGHT L FORTH, BOTH SONS AND DAUGHTERS: BEHOLD, THEY SHALL COME FORTH UNTO YOU, ANDN YE SHALL SEE THEIR WAY AND THEIR DOINGS: AND YE SHALL BE COMFORTED CONCERNINGM THE EVIL THAT I HAVE BROUGHT UPON JERUSALEM, EVEN CONCERNING ALL THAT I HAVEF BROUGHT UPON IT.OM# 23 AND THEY SHALL COMFORT YOU, WHEN YE SEE THEIR WAYS AND THEIR DOINGS: ANDSM YE SHALL KNOW THAT I HAVE NOT DONE WITHOUT CAUSE ALL THAT I HAVE DONE IN IT,R SAITH THE LORD GOD. = CHAPTER 15 D2# 1 AND THE WORD OF THE LORD CAME UNTO ME, SAYING,J# 2 SON OF MAN, WHAT IS THE VINE TREE MORE THAN ANY TREE, OR THAN A BRANCH( WHICH IS AMONG THE TREES OF THE FOREST?L# 3 SHALL WOOD BE TAKEN THEREOF TO DO ANY WORK? OR WILL MEN TAKE A PIN OF IT TO HANG ANY VESSEL THEREON?J# 4 BEHOLD, IT IS CAST INTO THE FIRE FOR FUEL; THE FIRE DEVOURETH BOTH THED ENDS OF IT, AND THE MIDST OF IT IS BURNED. IS IT MEET FOR ANY WORK?K# 5 BEHOLD, WHEN IT WAS WHOLE, IT WAS MEET FOR NO WORK: HOW MUCH LESS SHALLHG IT BE MEET YET FOR ANY WORK, WHEN THE FIRE HATH DEVOURED IT, AND IT ISF BURNED?J# 6 THEREFORE THUS SAITH THE LORD GOD; AS THE VINE TREE AMONG THE TREES OFH THE FOREST, WHICH I HAVE GIVEN TO THE FIRE FOR FUEL, SO WILL I GIVE THE INHABITANTS OF JERUSALEM.M# 7 AND I WILL SET MY FACE AGAINST THEM; THEY SHALL GO OUT FROM ONE FIRE, ANDFM ANOTHER FIRE SHALL DEVOUR THEM; AND YE SHALL KNOW THAT I AM THE LORD, WHEN IF SET MY FACE AGAINST THEM.D# 8 AND I WILL MAKE THE LAND DESOLATE, BECAUSE THEY HAVE COMMITTED A TRESPASS, SAITH THE LORD GOD. = CHAPTER 16 U4# 1 AGAIN THE WORD OF THE LORD CAME UNTO ME, SAYING,9# 2 SON OF MAN, CAUSE JERUSALEM TO KNOW HER ABOMINATIONS,RF# 3 AND SAY, THUS SAITH THE LORD GOD UNTO JERUSALEM; THY BIRTH AND THYM NATIVITY IS OF THE LAND OF CANAAN; THY FATHER WAS AN AMORITE, AND THY MOTHERT AN HITTITE.M# 4 AND AS FOR THY NATIVITY, IN THE DAY THOU WAST BORN THY NAVEL WAS NOT CUT,WJ NEITHER WAST THOU WASHED IN WATER TO SUPPLE THEE; THOU WAST NOT SALTED AT ALL, NOR SWADDLED AT ALL.J# 5 NONE EYE PITIED THEE, TO DO ANY OF THESE UNTO THEE, TO HAVE COMPASSIONK UPON THEE; BUT THOU WAST CAST OUT IN THE OPEN FIELD, TO THE LOTHING OF THYN( PERSON, IN THE DAY THAT THOU WAST BORN.J# 6 AND WHEN I PASSED BY THEE, AND SAW THEE POLLUTED IN THINE OWN BLOOD, IM SAID UNTO THEE WHEN THOU WAST IN THY BLOOD, LIVE; YEA, I SAID UNTO THEE WHENT THOU WAST IN THY BLOOD, LIVE.I# 7 I HAVE CAUSED THEE TO MULTIPLY AS THE BUD OF THE FIELD, AND THOU HAST;I INCREASED AND WAXEN GREAT, AND THOU ART COME TO EXCELLENT ORNAMENTS: THYHL BREASTS ARE FASHIONED, AND THINE HAIR IS GROWN, WHEREAS THOU WAST NAKED AND BARE.M# 8 NOW WHEN I PASSED BY THEE, AND LOOKED UPON THEE, BEHOLD, THY TIME WAS THETJ TIME OF LOVE; AND I SPREAD MY SKIRT OVER THEE, AN00x={<<%X>%+%O-%TADATADATAD COVERED THY NAKEDNESS:N YEA, I SWARE UNTO THEE, AND ENTERED INTO A COVENANT WITH THEE, SAITH THE LORD GOD, AND THOU BECAMEST MINE.,I# 9 THEN WASHED I THEE WITH WATER; YEA, I THROUGHLY WASHED AWAY THY BLOODU) FROM THEE, AND I ANOINTED THEE WITH OIL.UH# 10 I CLOTHED THEE ALSO WITH BROIDERED WORK, AND SHOD THEE WITH BADGERSM SKIN, AND I GIRDED THEE ABOUT WITH FINE LINEN, AND I COVERED THEE WITH SILK.EK# 11 I DECKED THEE ALSO WITH ORNAMENTS, AND I PUT BRACELETS UPON THY HANDS,A AND A CHAIN ON THY NECK.OI# 12 AND I PUT A JEWEL ON THY FOREHEAD, AND EARRINGS IN THINE EARS, AND AW! BEAUTIFUL CROWN UPON THINE HEAD. L# 13 THUS WAST THOU DECKED WITH GOLD AND SILVER; AND THY RAIMENT WAS OF FINEK LINEN, AND SILK, AND BROIDERED WORK; THOU DIDST EAT FINE FLOUR, AND HONEY,DJ AND OIL: AND THOU WAST EXCEEDING BEAUTIFUL, AND THOU DIDST PROSPER INTO A KINGDOM.OK# 14 AND THY RENOWN WENT FORTH AMONG THE HEATHEN FOR THY BEAUTY: FOR IT WASIN PERFECT THROUGH MY COMELINESS, WHICH I HAD PUT UPON THEE, SAITH THE LORD GOD.F# 15 BUT THOU DIDST TRUST IN THINE OWN BEAUTY, AND PLAYEDST THE HARLOTK BECAUSE OF THY RENOWN, AND POUREDST OUT THY FORNICATIONS ON EVERY ONE THATA PASSED BY; HIS IT WAS.TK# 16 AND OF THY GARMENTS THOU DIDST TAKE, AND DECKEDST THY HIGH PLACES WITH,M DIVERS COLOURS, AND PLAYEDST THE HARLOT THEREUPON: THE LIKE THINGS SHALL NOTE COME, NEITHER SHALL IT BE SO.L# 17 THOU HAST ALSO TAKEN THY FAIR JEWELS OF MY GOLD AND OF MY SILVER, WHICHH I HAD GIVEN THEE, AND MADEST TO THYSELF IMAGES OF MEN, AND DIDST COMMIT WHOREDOM WITH THEM,J# 18 AND TOOKEST THY BROIDERED GARMENTS, AND COVEREDST THEM: AND THOU HAST+ SET MINE OIL AND MINE INCENSE BEFORE THEM.AD# 19 MY MEAT ALSO WHICH I GAVE THEE, FINE FLOUR, AND OIL, AND HONEY,L WHEREWITH I FED THEE, THOU HAST EVEN SET IT BEFORE THEM FOR A SWEET SAVOUR:% AND THUS IT WAS, SAITH THE LORD GOD.CH# 20 MOREOVER THOU HAST TAKEN THY SONS AND THY DAUGHTERS, WHOM THOU HASTK BORNE UNTO ME, AND THESE HAST THOU SACRIFICED UNTO THEM TO BE DEVOURED. ISA& THIS OF THY WHOREDOMS A SMALL MATTER,J# 21 THAT THOU HAST SLAIN MY CHILDREN, AND DELIVERED THEM TO CAUSE THEM TO PASS THROUGH THE FIRE FOR THEM?M# 22 AND IN ALL THINE ABOMINATIONS AND THY WHOREDOMS THOU HAST NOT REMEMBEREDLK THE DAYS OF THY YOUTH, WHEN THOU WAST NAKED AND BARE, AND WAST POLLUTED INS THY BLOOD.M# 23 AND IT CAME TO PASS AFTER ALL THY WICKEDNESS, (WOE, WOE UNTO THEE! SAITHA THE LORD GOD;) M# 24 THAT THOU HAST ALSO BUILT UNTO THEE AN EMINENT PLACE, AND HAST MADE THEED AN HIGH PLACE IN EVERY STREET.OK# 25 THOU HAST BUILT THY HIGH PLACE AT EVERY HEAD OF THE WAY, AND HAST MADE M THY BEAUTY TO BE ABHORRED, AND HAST OPENED THY FEET TO EVERY ONE THAT PASSEDN" BY, AND MULTIPLIED THY WHOREDOMS.L# 26 THOU HAST ALSO COMMITTED FORNICATION WITH THE EGYPTIANS THY NEIGHBOURS,J GREAT OF FLESH; AND HAST INCREASED THY WHOREDOMS, TO PROVOKE ME TO ANGER.G# 27 BEHOLD, THEREFORE I HAVE STRETCHED OUT MY HAND OVER THEE, AND HAVELN DIMINISHED THINE ORDINARY FOOD, AND DELIVERED THEE UNTO THE WILL OF THEM THATK HATE THEE, THE DAUGHTERS OF THE PHILISTINES, WHICH ARE ASHAMED OF THY LEWD  WAY.DJ# 28 THOU HAST PLAYED THE WHORE ALSO WITH THE ASSYRIANS, BECAUSE THOU WASTM UNSATIABLE; YEA, THOU HAST PLAYED THE HARLOT WITH THEM, AND YET COULDEST NOTC BE SATISFIED.M# 29 THOU HAST MOREOVER MULTIPLIED THY FORNICATION IN THE LAND OF CANAAN UNTO 4 CHALDEA; AND YET THOU WAST NOT SATISFIED THEREWITH.M# 30 HOW WEAK IS THINE HEART, SAITH THE LORD GOD, SEEING THOU DOEST ALL THESED0 THINGS, THE WORK OF AN IMPERIOUS WHORISH WOMAN;L# 31 IN THAT THOU BUILDEST THINE EMINENT PLACE IN THE HEAD OF EVERY WAY, ANDL MAKEST THINE HIGH PLACE IN EVERY STREET; AND HAST NOT BEEN AS AN HARLOT, IN THAT THOU SCORNEST HIRE;LK# 32 BUT AS A WIFE THAT COMMITTETH ADULTERY, WHICH TAKETH STRANGERS INSTEADA OF HER HUSBAND!H# 33 THEY GIVE GIFTS TO ALL WHORES: BUT THOU GIVEST THY GIFTS TO ALL THYL LOVERS, AND HIREST THEM, THAT THEY MAY COME UNTO THEE ON EVERY SIDE FOR THY WHOREDOM.K# 34 AND THE CONTRARY IS IN THEE FROM OTHER WOMEN IN THY WHO00x=<D%5%T6%! !REDOMS, WHEREAS K NONE FOLLOWETH THEE TO COMMIT WHOREDOMS: AND IN THAT THOU GIVEST A REWARD, ? AND NO REWARD IS GIVEN UNTO THEE, THEREFORE THOU ART CONTRARY. 4# 35 WHEREFORE, O HARLOT, HEAR THE WORD OF THE LORD:L# 36 THUS SAITH THE LORD GOD; BECAUSE THY FILTHINESS WAS POURED OUT, AND THYM NAKEDNESS DISCOVERED THROUGH THY WHOREDOMS WITH THY LOVERS, AND WITH ALL THEAN IDOLS OF THY ABOMINATIONS, AND BY THE BLOOD OF THY CHILDREN, WHICH THOU DIDST GIVE UNTO THEM;H# 37 BEHOLD, THEREFORE I WILL GATHER ALL THY LOVERS, WITH WHOM THOU HASTK TAKEN PLEASURE, AND ALL THEM THAT THOU HAST LOVED, WITH ALL THEM THAT THOUDG HAST HATED; I WILL EVEN GATHER THEM ROUND ABOUT AGAINST THEE, AND WILLLG DISCOVER THY NAKEDNESS UNTO THEM, THAT THEY MAY SEE ALL THY NAKEDNESS. J# 38 AND I WILL JUDGE THEE, AS WOMEN THAT BREAK WEDLOCK AND SHED BLOOD ARE9 JUDGED; AND I WILL GIVE THEE BLOOD IN FURY AND JEALOUSY.NI# 39 AND I WILL ALSO GIVE THEE INTO THEIR HAND, AND THEY SHALL THROW DOWN;L THINE EMINENT PLACE, AND SHALL BREAK DOWN THY HIGH PLACES: THEY SHALL STRIPI THEE ALSO OF THY CLOTHES, AND SHALL TAKE THY FAIR JEWELS, AND LEAVE THEE NAKED AND BARE.J# 40 THEY SHALL ALSO BRING UP A COMPANY AGAINST THEE, AND THEY SHALL STONE= THEE WITH STONES, AND THRUST THEE THROUGH WITH THEIR SWORDS.IK# 41 AND THEY SHALL BURN THINE HOUSES WITH FIRE, AND EXECUTE JUDGMENTS UPONDM THEE IN THE SIGHT OF MANY WOMEN: AND I WILL CAUSE THEE TO CEASE FROM PLAYINGI7 THE HARLOT, AND THOU ALSO SHALT GIVE NO HIRE ANY MORE.TM# 42 SO WILL I MAKE MY FURY TOWARD THEE TO REST, AND MY JEALOUSY SHALL DEPARTH; FROM THEE, AND I WILL BE QUIET, AND WILL BE NO MORE ANGRY.NM# 43 BECAUSE THOU HAST NOT REMEMBERED THE DAYS OF THY YOUTH, BUT HAST FRETTEDSN ME IN ALL THESE THINGS; BEHOLD, THEREFORE I ALSO WILL RECOMPENSE THY WAY UPONN THINE HEAD, SAITH THE LORD GOD: AND THOU SHALT NOT COMMIT THIS LEWDNESS ABOVE ALL THINE ABOMINATIONS.I# 44 BEHOLD, EVERY ONE THAT USETH PROVERBS SHALL USE THIS PROVERB AGAINSTS4 THEE, SAYING, AS IS THE MOTHER, SO IS HER DAUGHTER.D# 45 THOU ART THY MOTHERS DAUGHTER, THAT LOTHETH HER HUSBAND AND HERN CHILDREN; AND THOU ART THE SISTER OF THY SISTERS, WHICH LOTHED THEIR HUSBANDSL AND THEIR CHILDREN: YOUR MOTHER WAS AN HITTITE, AND YOUR FATHER AN AMORITE.K# 46 AND THINE ELDER SISTER IS SAMARIA, SHE AND HER DAUGHTERS THAT DWELL AT K THY LEFT HAND: AND THY YOUNGER SISTER, THAT DWELLETH AT THY RIGHT HAND, IS SODOM AND HER DAUGHTERS. D# 47 YET HAST THOU NOT WALKED AFTER THEIR WAYS, NOR DONE AFTER THEIRL ABOMINATIONS: BUT, AS IF THAT WERE A VERY LITTLE THING, THOU WAST CORRUPTED MORE THAN THEY IN ALL THY WAYS.K# 48 AS I LIVE, SAITH THE LORD GOD, SODOM THY SISTER HATH NOT DONE, SHE NORE: HER DAUGHTERS, AS THOU HAST DONE, THOU AND THY DAUGHTERS.I# 49 BEHOLD, THIS WAS THE INIQUITY OF THY SISTER SODOM, PRIDE, FULNESS OFTN BREAD, AND ABUNDANCE OF IDLENESS WAS IN HER AND IN HER DAUGHTERS, NEITHER DID/ SHE STRENGTHEN THE HAND OF THE POOR AND NEEDY.SL# 50 AND THEY WERE HAUGHTY, AND COMMITTED ABOMINATION BEFORE ME: THEREFORE I TOOK THEM AWAY AS I SAW GOOD.C# 51 NEITHER HATH SAMARIA COMMITTED HALF OF THY SINS; BUT THOU HAST M MULTIPLIED THINE ABOMINATIONS MORE THAN THEY, AND HAST JUSTIFIED THY SISTERSE0 IN ALL THINE ABOMINATIONS WHICH THOU HAST DONE.K# 52 THOU ALSO, WHICH HAST JUDGED THY SISTERS, BEAR THINE OWN SHAME FOR THYEG SINS THAT THOU HAST COMMITTED MORE ABOMINABLE THAN THEY: THEY ARE MOREDJ RIGHTEOUS THAN THOU: YEA, BE THOU CONFOUNDED ALSO, AND BEAR THY SHAME, IN& THAT THOU HAST JUSTIFIED THY SISTERS.M# 53 WHEN I SHALL BRING AGAIN THEIR CAPTIVITY, THE CAPTIVITY OF SODOM AND HEREM DAUGHTERS, AND THE CAPTIVITY OF SAMARIA AND HER DAUGHTERS, THEN WILL I BRINGE: AGAIN THE CAPTIVITY OF THY CAPTIVES IN THE MIDST OF THEM:K# 54 THAT THOU MAYEST BEAR THINE OWN SHAME, AND MAYEST BE CONFOUNDED IN ALL ; THAT THOU HAST DONE, IN THAT THOU ART A COMFORT UNTO THEM. L# 55 WHEN THY SISTERS, SODOM AND HER DAUGHTERS, SHALL RETURN TO THEIR FORMERK ESTATE, AND SAMARIA AND HER DAUGHTERS SHALL RETURN TO THEIR FORMER ESTATE, @ THEN THOU AND00x={<<%X>%+%O-%TADATADATA THY DAUGHTERS SHALL RETURN TO YOUR FORMER ESTATE.J# 56 FOR THY SISTER SODOM WAS NOT MENTIONED BY THY MOUTH IN THE DAY OF THY PRIDE,RL# 57 BEFORE THY WICKEDNESS WAS DISCOVERED, AS AT THE TIME OF THY REPROACH OFK THE DAUGHTERS OF SYRIA, AND ALL THAT ARE ROUND ABOUT HER, THE DAUGHTERS OFH1 THE PHILISTINES, WHICH DESPISE THEE ROUND ABOUT. I# 58 THOU HAST BORNE THY LEWDNESS AND THINE ABOMINATIONS, SAITH THE LORD.I# 59 FOR THUS SAITH THE LORD GOD; I WILL EVEN DEAL WITH THEE AS THOU HAST = DONE, WHICH HAST DESPISED THE OATH IN BREAKING THE COVENANT.TJ# 60 NEVERTHELESS I WILL REMEMBER MY COVENANT WITH THEE IN THE DAYS OF THY? YOUTH, AND I WILL ESTABLISH UNTO THEE AN EVERLASTING COVENANT.EG# 61 THEN THOU SHALT REMEMBER THY WAYS, AND BE ASHAMED, WHEN THOU SHALT L RECEIVE THY SISTERS, THINE ELDER AND THY YOUNGER: AND I WILL GIVE THEM UNTO- THEE FOR DAUGHTERS, BUT NOT BY THY COVENANT. K# 62 AND I WILL ESTABLISH MY COVENANT WITH THEE; AND THOU SHALT KNOW THAT I AM THE LORD:AK# 63 THAT THOU MAYEST REMEMBER, AND BE CONFOUNDED, AND NEVER OPEN THY MOUTHK ANY MORE BECAUSE OF THY SHAME, WHEN I AM PACIFIED TOWARD THEE FOR ALL THATY$ THOU HAST DONE, SAITH THE LORD GOD. = CHAPTER 17 O2# 1 AND THE WORD OF THE LORD CAME UNTO ME, SAYING,I# 2 SON OF MAN, PUT FORTH A RIDDLE, AND SPEAK A PARABLE UNTO THE HOUSE OFO ISRAEL;E# 3 AND SAY, THUS SAITH THE LORD GOD; A GREAT EAGLE WITH GREAT WINGS,K LONGWINGED, FULL OF FEATHERS, WHICH HAD DIVERS COLOURS, CAME UNTO LEBANON,* AND TOOK THE HIGHEST BRANCH OF THE CEDAR:L# 4 HE CROPPED OFF THE TOP OF HIS YOUNG TWIGS, AND CARRIED IT INTO A LAND OF, TRAFFICK; HE SET IT IN A CITY OF MERCHANTS.M# 5 HE TOOK ALSO OF THE SEED OF THE LAND, AND PLANTED IT IN A FRUITFUL FIELD;H; HE PLACED IT BY GREAT WATERS, AND SET IT AS A WILLOW TREE.DK# 6 AND IT GREW, AND BECAME A SPREADING VINE OF LOW STATURE, WHOSE BRANCHES N TURNED TOWARD HIM, AND THE ROOTS THEREOF WERE UNDER HIM: SO IT BECAME A VINE,3 AND BROUGHT FORTH BRANCHES, AND SHOT FORTH SPRIGS.OJ# 7 THERE WAS ALSO ANOTHER GREAT EAGLE WITH GREAT WINGS AND MANY FEATHERS:I AND, BEHOLD, THIS VINE DID BEND HER ROOTS TOWARD HIM, AND SHOT FORTH HERCN BRANCHES TOWARD HIM, THAT HE MIGHT WATER IT BY THE FURROWS OF HER PLANTATION.L# 8 IT WAS PLANTED IN A GOOD SOIL BY GREAT WATERS, THAT IT MIGHT BRING FORTHH BRANCHES, AND THAT IT MIGHT BEAR FRUIT, THAT IT MIGHT BE A GOODLY VINE.M# 9 SAY THOU, THUS SAITH THE LORD GOD; SHALL IT PROSPER? SHALL HE NOT PULL UPDK THE ROOTS THEREOF, AND CUT OFF THE FRUIT THEREOF, THAT IT WITHER? IT SHALLGI WITHER IN ALL THE LEAVES OF HER SPRING, EVEN WITHOUT GREAT POWER OR MANY , PEOPLE TO PLUCK IT UP BY THE ROOTS THEREOF.G# 10 YEA, BEHOLD, BEING PLANTED, SHALL IT PROSPER? SHALL IT NOT UTTERLYTM WITHER, WHEN THE EAST WIND TOUCHETH IT? IT SHALL WITHER IN THE FURROWS WHEREF IT GREW.C8# 11 MOREOVER THE WORD OF THE LORD CAME UNTO ME, SAYING,I# 12 SAY NOW TO THE REBELLIOUS HOUSE, KNOW YE NOT WHAT THESE THINGS MEAN? L TELL THEM, BEHOLD, THE KING OF BABYLON IS COME TO JERUSALEM, AND HATH TAKENM THE KING THEREOF, AND THE PRINCES THEREOF, AND LED THEM WITH HIM TO BABYLON; M# 13 AND HATH TAKEN OF THE KINGS SEED, AND MADE A COVENANT WITH HIM, AND HATH A TAKEN AN OATH OF HIM: HE HATH ALSO TAKEN THE MIGHTY OF THE LAND: J# 14 THAT THE KINGDOM MIGHT BE BASE, THAT IT MIGHT NOT LIFT ITSELF UP, BUT0 THAT BY KEEPING OF HIS COVENANT IT MIGHT STAND.L# 15 BUT HE REBELLED AGAINST HIM IN SENDING HIS AMBASSADORS INTO EGYPT, THATN THEY MIGHT GIVE HIM HORSES AND MUCH PEOPLE. SHALL HE PROSPER? SHALL HE ESCAPEJ THAT DOETH SUCH THINGS? OR SHALL HE BREAK THE COVENANT, AND BE DELIVERED?F# 16 AS I LIVE, SAITH THE LORD GOD, SURELY IN THE PLACE WHERE THE KINGK DWELLETH THAT MADE HIM KING, WHOSE OATH HE DESPISED, AND WHOSE COVENANT HED; BRAKE, EVEN WITH HIM IN THE MIDST OF BABYLON HE SHALL DIE.FJ# 17 NEITHER SHALL PHARAOH WITH HIS MIGHTY ARMY AND GREAT COMPANY MAKE FORJ HIM IN THE WAR, BY CASTING UP MOUNTS, AND BUILDING FORTS, TO CUT OFF MANY PERSONS:HK# 18 SEEING HE DESPISED THE OATH BY BREAKING THE COVENANT, WHEN, LO, HE 00x =<D%5%T6%! !HADHE GIVEN HIS HAND, AND HATH DONE ALL THESE THINGS, HE SHALL NOT ESCAPE.IK# 19 THEREFORE THUS SAITH THE LORD GOD; AS I LIVE, SURELY MINE OATH THAT HEDN HATH DESPISED, AND MY COVENANT THAT HE HATH BROKEN, EVEN IT WILL I RECOMPENSE UPON HIS OWN HEAD.YJ# 20 AND I WILL SPREAD MY NET UPON HIM, AND HE SHALL BE TAKEN IN MY SNARE,G AND I WILL BRING HIM TO BABYLON, AND WILL PLEAD WITH HIM THERE FOR HISO- TRESPASS THAT HE HATH TRESPASSED AGAINST ME.EJ# 21 AND ALL HIS FUGITIVES WITH ALL HIS BANDS SHALL FALL BY THE SWORD, ANDM THEY THAT REMAIN SHALL BE SCATTERED TOWARD ALL WINDS: AND YE SHALL KNOW THAT  I THE LORD HAVE SPOKEN IT.,K# 22 THUS SAITH THE LORD GOD; I WILL ALSO TAKE OF THE HIGHEST BRANCH OF THEEM HIGH CEDAR, AND WILL SET IT; I WILL CROP OFF FROM THE TOP OF HIS YOUNG TWIGSEC A TENDER ONE, AND WILL PLANT IT UPON AN HIGH MOUNTAIN AND EMINENT: J# 23 IN THE MOUNTAIN OF THE HEIGHT OF ISRAEL WILL I PLANT IT: AND IT SHALLN BRING FORTH BOUGHS, AND BEAR FRUIT, AND BE A GOODLY CEDAR: AND UNDER IT SHALLJ DWELL ALL FOWL OF EVERY WING; IN THE SHADOW OF THE BRANCHES THEREOF SHALL THEY DWELL.K# 24 AND ALL THE TREES OF THE FIELD SHALL KNOW THAT I THE LORD HAVE BROUGHTAM DOWN THE HIGH TREE, HAVE EXALTED THE LOW TREE, HAVE DRIED UP THE GREEN TREE,OM AND HAVE MADE THE DRY TREE TO FLOURISH: I THE LORD HAVE SPOKEN AND HAVE DONEN IT. = CHAPTER 18 I4# 1 THE WORD OF THE LORD CAME UNTO ME AGAIN, SAYING,I# 2 WHAT MEAN YE, THAT YE USE THIS PROVERB CONCERNING THE LAND OF ISRAEL, L SAYING, THE FATHERS HAVE EATEN SOUR GRAPES, AND THE CHILDRENS TEETH ARE SET ON EDGE?NM# 3 AS I LIVE, SAITH THE LORD GOD, YE SHALL NOT HAVE OCCASION ANY MORE TO USEW THIS PROVERB IN ISRAEL.K# 4 BEHOLD, ALL SOULS ARE MINE; AS THE SOUL OF THE FATHER, SO ALSO THE SOUL 9 OF THE SON IS MINE: THE SOUL THAT SINNETH, IT SHALL DIE. @# 5 BUT IF A MAN BE JUST, AND DO THAT WHICH IS LAWFUL AND RIGHT,M# 6 AND HATH NOT EATEN UPON THE MOUNTAINS, NEITHER HATH LIFTED UP HIS EYES TOBL THE IDOLS OF THE HOUSE OF ISRAEL, NEITHER HATH DEFILED HIS NEIGHBOURS WIFE,. NEITHER HATH COME NEAR TO A MENSTRUOUS WOMAN,K# 7 AND HATH NOT OPPRESSED ANY, BUT HATH RESTORED TO THE DEBTOR HIS PLEDGE,L HATH SPOILED NONE BY VIOLENCE, HATH GIVEN HIS BREAD TO THE HUNGRY, AND HATH" COVERED THE NAKED WITH A GARMENT;M# 8 HE THAT HATH NOT GIVEN FORTH UPON USURY, NEITHER HATH TAKEN ANY INCREASE, H THAT HATH WITHDRAWN HIS HAND FROM INIQUITY, HATH EXECUTED TRUE JUDGMENT BETWEEN MAN AND MAN,DM# 9 HATH WALKED IN MY STATUTES, AND HATH KEPT MY JUDGMENTS, TO DEAL TRULY; HEE3 IS JUST, HE SHALL SURELY LIVE, SAITH THE LORD GOD.UK# 10 IF HE BEGET A SON THAT IS A ROBBER, A SHEDDER OF BLOOD, AND THAT DOETH % THE LIKE TO ANY ONE OF THESE THINGS,EI# 11 AND THAT DOETH NOT ANY OF THOSE DUTIES, BUT EVEN HATH EATEN UPON THEA, MOUNTAINS, AND DEFILED HIS NEIGHBOURS WIFE,J# 12 HATH OPPRESSED THE POOR AND NEEDY, HATH SPOILED BY VIOLENCE, HATH NOTN RESTORED THE PLEDGE, AND HATH LIFTED UP HIS EYES TO THE IDOLS, HATH COMMITTED ABOMINATION, H# 13 HATH GIVEN FORTH UPON USURY, AND HATH TAKEN INCREASE: SHALL HE THENN LIVE? HE SHALL NOT LIVE: HE HATH DONE ALL THESE ABOMINATIONS; HE SHALL SURELY" DIE; HIS BLOOD SHALL BE UPON HIM.I# 14 NOW, LO, IF HE BEGET A SON, THAT SEETH ALL HIS FATHERS SINS WHICH HEB5 HATH DONE, AND CONSIDERETH, AND DOETH NOT SUCH LIKE,IL# 15 THAT HATH NOT EATEN UPON THE MOUNTAINS, NEITHER HATH LIFTED UP HIS EYESK TO THE IDOLS OF THE HOUSE OF ISRAEL, HATH NOT DEFILED HIS NEIGHBOURS WIFE,OM# 16 NEITHER HATH OPPRESSED ANY, HATH NOT WITHHOLDEN THE PLEDGE, NEITHER HATHTN SPOILED BY VIOLENCE, BUT HATH GIVEN HIS BREAD TO THE HUNGRY, AND HATH COVERED THE NAKED WITH A GARMENT,M# 17 THAT HATH TAKEN OFF HIS HAND FROM THE POOR, THAT HATH NOT RECEIVED USURYTI NOR INCREASE, HATH EXECUTED MY JUDGMENTS, HATH WALKED IN MY STATUTES; HETD SHALL NOT DIE FOR THE INIQUITY OF HIS FATHER, HE SHALL SURELY LIVE.L# 18 AS FOR HIS FATHER, BECAUSE HE CRUELLY OPPRESSED, SPOILED HIS BROTHER BYM VIOLENCE, AND DID THAT WHICH IS NOT GOOD AMONG HIS PEOPLE, LO, EVEN HE SHALLP DIE IN HIS INIQUI00x(={<<%X>%+%O-%TADATADATATY.SL# 19 YET SAY YE, WHY? DOTH NOT THE SON BEAR THE INIQUITY OF THE FATHER? WHENG THE SON HATH DONE THAT WHICH IS LAWFUL AND RIGHT, AND HATH KEPT ALL MYO4 STATUTES, AND HATH DONE THEM, HE SHALL SURELY LIVE.M# 20 THE SOUL THAT SINNETH, IT SHALL DIE. THE SON SHALL NOT BEAR THE INIQUITYIJ OF THE FATHER, NEITHER SHALL THE FATHER BEAR THE INIQUITY OF THE SON: THEL RIGHTEOUSNESS OF THE RIGHTEOUS SHALL BE UPON HIM, AND THE WICKEDNESS OF THE WICKED SHALL BE UPON HIM.J# 21 BUT IF THE WICKED WILL TURN FROM ALL HIS SINS THAT HE HATH COMMITTED,J AND KEEP ALL MY STATUTES, AND DO THAT WHICH IS LAWFUL AND RIGHT, HE SHALL SURELY LIVE, HE SHALL NOT DIE.EE# 22 ALL HIS TRANSGRESSIONS THAT HE HATH COMMITTED, THEY SHALL NOT BETJ MENTIONED UNTO HIM: IN HIS RIGHTEOUSNESS THAT HE HATH DONE HE SHALL LIVE.J# 23 HAVE I ANY PLEASURE AT ALL THAT THE WICKED SHOULD DIE? SAITH THE LORD< GOD: AND NOT THAT HE SHOULD RETURN FROM HIS WAYS, AND LIVE?D# 24 BUT WHEN THE RIGHTEOUS TURNETH AWAY FROM HIS RIGHTEOUSNESS, ANDJ COMMITTETH INIQUITY, AND DOETH ACCORDING TO ALL THE ABOMINATIONS THAT THEI WICKED MAN DOETH, SHALL HE LIVE? ALL HIS RIGHTEOUSNESS THAT HE HATH DONEDL SHALL NOT BE MENTIONED: IN HIS TRESPASS THAT HE HATH TRESPASSED, AND IN HIS/ SIN THAT HE HATH SINNED, IN THEM SHALL HE DIE. G# 25 YET YE SAY, THE WAY OF THE LORD IS NOT EQUAL. HEAR NOW, O HOUSE OF 8 ISRAEL; IS NOT MY WAY EQUAL? ARE NOT YOUR WAYS UNEQUAL?M# 26 WHEN A RIGHTEOUS MAN TURNETH AWAY FROM HIS RIGHTEOUSNESS, AND COMMITTETHIN INIQUITY, AND DIETH IN THEM; FOR HIS INIQUITY THAT HE HATH DONE SHALL HE DIE.M# 27 AGAIN, WHEN THE WICKED MAN TURNETH AWAY FROM HIS WICKEDNESS THAT HE HATHHL COMMITTED, AND DOETH THAT WHICH IS LAWFUL AND RIGHT, HE SHALL SAVE HIS SOUL ALIVE.HI# 28 BECAUSE HE CONSIDERETH, AND TURNETH AWAY FROM ALL HIS TRANSGRESSIONSW@ THAT HE HATH COMMITTED, HE SHALL SURELY LIVE, HE SHALL NOT DIE.M# 29 YET SAITH THE HOUSE OF ISRAEL, THE WAY OF THE LORD IS NOT EQUAL. O HOUSEW= OF ISRAEL, ARE NOT MY WAYS EQUAL? ARE NOT YOUR WAYS UNEQUAL?HJ# 30 THEREFORE I WILL JUDGE YOU, O HOUSE OF ISRAEL, EVERY ONE ACCORDING TOH HIS WAYS, SAITH THE LORD GOD. REPENT, AND TURN YOURSELVES FROM ALL YOUR4 TRANSGRESSIONS; SO INIQUITY SHALL NOT BE YOUR RUIN.@# 31 CAST AWAY FROM YOU ALL YOUR TRANSGRESSIONS, WHEREBY YE HAVEN TRANSGRESSED; AND MAKE YOU A NEW HEART AND A NEW SPIRIT: FOR WHY WILL YE DIE, O HOUSE OF ISRAEL? J# 32 FOR I HAVE NO PLEASURE IN THE DEATH OF HIM THAT DIETH, SAITH THE LORD- GOD: WHEREFORE TURN YOURSELVES, AND LIVE YE.U = CHAPTER 19 HB# 1 MOREOVER TAKE THOU UP A LAMENTATION FOR THE PRINCES OF ISRAEL,I# 2 AND SAY, WHAT IS THY MOTHER? A LIONESS: SHE LAY DOWN AMONG LIONS, SHEL( NOURISHED HER WHELPS AMONG YOUNG LIONS.H# 3 AND SHE BROUGHT UP ONE OF HER WHELPS: IT BECAME A YOUNG LION, AND IT, LEARNED TO CATCH THE PREY; IT DEVOURED MEN.F# 4 THE NATIONS ALSO HEARD OF HIM; HE WAS TAKEN IN THEIR PIT, AND THEY0 BROUGHT HIM WITH CHAINS UNTO THE LAND OF EGYPT.I# 5 NOW WHEN SHE SAW THAT SHE HAD WAITED, AND HER HOPE WAS LOST, THEN SHEP7 TOOK ANOTHER OF HER WHELPS, AND MADE HIM A YOUNG LION. H# 6 AND HE WENT UP AND DOWN AMONG THE LIONS, HE BECAME A YOUNG LION, AND- LEARNED TO CATCH THE PREY, AND DEVOURED MEN.NK# 7 AND HE KNEW THEIR DESOLATE PALACES, AND HE LAID WASTE THEIR CITIES; ANDIM THE LAND WAS DESOLATE, AND THE FULNESS THEREOF, BY THE NOISE OF HIS ROARING.HJ# 8 THEN THE NATIONS SET AGAINST HIM ON EVERY SIDE FROM THE PROVINCES, AND6 SPREAD THEIR NET OVER HIM: HE WAS TAKEN IN THEIR PIT.F# 9 AND THEY PUT HIM IN WARD IN CHAINS, AND BROUGHT HIM TO THE KING OFM BABYLON: THEY BROUGHT HIM INTO HOLDS, THAT HIS VOICE SHOULD NO MORE BE HEARDE UPON THE MOUNTAINS OF ISRAEL.K# 10 THY MOTHER IS LIKE A VINE IN THY BLOOD, PLANTED BY THE WATERS: SHE WASS8 FRUITFUL AND FULL OF BRANCHES BY REASON OF MANY WATERS.M# 11 AND SHE HAD STRONG RODS FOR THE SCEPTRES OF THEM THAT BARE RULE, AND HEROM STATURE WAS EXALTED AMONG THE THICK BRANCHES, AND SHE APPEARED IN HER HEIGHTR$ WITH THE MULTITUDE OF HER BRANCHES.M# 12 BUT SHE WAS PLUCKED UP IN FURY, SHE WAS CAST 00x0=<D%5%T6%! !DOWN TO THE GROUND, AND THEHL EAST WIND DRIED UP HER FRUIT: HER STRONG RODS WERE BROKEN AND WITHERED; THE FIRE CONSUMED THEM.K# 13 AND NOW SHE IS PLANTED IN THE WILDERNESS, IN A DRY AND THIRSTY GROUND.K# 14 AND FIRE IS GONE OUT OF A ROD OF HER BRANCHES, WHICH HATH DEVOURED HERRI FRUIT, SO THAT SHE HATH NO STRONG ROD TO BE A SCEPTRE TO RULE. THIS IS AA- LAMENTATION, AND SHALL BE FOR A LAMENTATION. = CHAPTER 20 N# 1 AND IT CAME TO PASS IN THE SEVENTH YEAR, IN THE FIFTH MONTH, THE TENTH DAYJ OF THE MONTH, THAT CERTAIN OF THE ELDERS OF ISRAEL CAME TO ENQUIRE OF THE LORD, AND SAT BEFORE ME.T3# 2 THEN CAME THE WORD OF THE LORD UNTO ME, SAYING, H# 3 SON OF MAN, SPEAK UNTO THE ELDERS OF ISRAEL, AND SAY UNTO THEM, THUSL SAITH THE LORD GOD; ARE YE COME TO ENQUIRE OF ME? AS I LIVE, SAITH THE LORD' GOD, I WILL NOT BE ENQUIRED OF BY YOU. I# 4 WILT THOU JUDGE THEM, SON OF MAN, WILT THOU JUDGE THEM? CAUSE THEM TO ( KNOW THE ABOMINATIONS OF THEIR FATHERS:G# 5 AND SAY UNTO THEM, THUS SAITH THE LORD GOD; IN THE DAY WHEN I CHOSEFN ISRAEL, AND LIFTED UP MINE HAND UNTO THE SEED OF THE HOUSE OF JACOB, AND MADEM MYSELF KNOWN UNTO THEM IN THE LAND OF EGYPT, WHEN I LIFTED UP MINE HAND UNTOE& THEM, SAYING, I AM THE LORD YOUR GOD;K# 6 IN THE DAY THAT I LIFTED UP MINE HAND UNTO THEM, TO BRING THEM FORTH OFDL THE LAND OF EGYPT INTO A LAND THAT I HAD ESPIED FOR THEM, FLOWING WITH MILK, AND HONEY, WHICH IS THE GLORY OF ALL LANDS:I# 7 THEN SAID I UNTO THEM, CAST YE AWAY EVERY MAN THE ABOMINATIONS OF HIS L EYES, AND DEFILE NOT YOURSELVES WITH THE IDOLS OF EGYPT: I AM THE LORD YOUR GOD. M# 8 BUT THEY REBELLED AGAINST ME, AND WOULD NOT HEARKEN UNTO ME: THEY DID NOTNM EVERY MAN CAST AWAY THE ABOMINATIONS OF THEIR EYES, NEITHER DID THEY FORSAKEEG THE IDOLS OF EGYPT: THEN I SAID, I WILL POUR OUT MY FURY UPON THEM, TOLD ACCOMPLISH MY ANGER AGAINST THEM IN THE MIDST OF THE LAND OF EGYPT.J# 9 BUT I WROUGHT FOR MY NAMES SAKE, THAT IT SHOULD NOT BE POLLUTED BEFOREK THE HEATHEN, AMONG WHOM THEY WERE, IN WHOSE SIGHT I MADE MYSELF KNOWN UNTOV7 THEM, IN BRINGING THEM FORTH OUT OF THE LAND OF EGYPT. F# 10 WHEREFORE I CAUSED THEM TO GO FORTH OUT OF THE LAND OF EGYPT, AND" BROUGHT THEM INTO THE WILDERNESS.J# 11 AND I GAVE THEM MY STATUTES, AND SHEWED THEM MY JUDGMENTS, WHICH IF A$ MAN DO, HE SHALL EVEN LIVE IN THEM.M# 12 MOREOVER ALSO I GAVE THEM MY SABBATHS, TO BE A SIGN BETWEEN ME AND THEM,< THAT THEY MIGHT KNOW THAT I AM THE LORD THAT SANCTIFY THEM.H# 13 BUT THE HOUSE OF ISRAEL REBELLED AGAINST ME IN THE WILDERNESS: THEYN WALKED NOT IN MY STATUTES, AND THEY DESPISED MY JUDGMENTS, WHICH IF A MAN DO,J HE SHALL EVEN LIVE IN THEM; AND MY SABBATHS THEY GREATLY POLLUTED: THEN IM SAID, I WOULD POUR OUT MY FURY UPON THEM IN THE WILDERNESS, TO CONSUME THEM.YK# 14 BUT I WROUGHT FOR MY NAMES SAKE, THAT IT SHOULD NOT BE POLLUTED BEFOREL0 THE HEATHEN, IN WHOSE SIGHT I BROUGHT THEM OUT.K# 15 YET ALSO I LIFTED UP MY HAND UNTO THEM IN THE WILDERNESS, THAT I WOULD K NOT BRING THEM INTO THE LAND WHICH I HAD GIVEN THEM, FLOWING WITH MILK ANDE( HONEY, WHICH IS THE GLORY OF ALL LANDS;K# 16 BECAUSE THEY DESPISED MY JUDGMENTS, AND WALKED NOT IN MY STATUTES, BUTT> POLLUTED MY SABBATHS: FOR THEIR HEART WENT AFTER THEIR IDOLS.J# 17 NEVERTHELESS MINE EYE SPARED THEM FROM DESTROYING THEM, NEITHER DID I' MAKE AN END OF THEM IN THE WILDERNESS.FI# 18 BUT I SAID UNTO THEIR CHILDREN IN THE WILDERNESS, WALK YE NOT IN THETF STATUTES OF YOUR FATHERS, NEITHER OBSERVE THEIR JUDGMENTS, NOR DEFILE YOURSELVES WITH THEIR IDOLS:EL# 19 I AM THE LORD YOUR GOD; WALK IN MY STATUTES, AND KEEP MY JUDGMENTS, AND DO THEM;EI# 20 AND HALLOW MY SABBATHS; AND THEY SHALL BE A SIGN BETWEEN ME AND YOU,S. THAT YE MAY KNOW THAT I AM THE LORD YOUR GOD.L# 21 NOTWITHSTANDING THE CHILDREN REBELLED AGAINST ME: THEY WALKED NOT IN MYL STATUTES, NEITHER KEPT MY JUDGMENTS TO DO THEM, WHICH IF A MAN DO, HE SHALLL EVEN LIVE IN THEM; THEY POLLUTED MY SABBATHS: THEN I SAID, I WOULD POUR OUTJ MY FURY UPON THEM, TO ACCOMPLISH MY ANGER AGAINST THEM IN THE WILDERNESS.K# 00x8={<<%X>%+%O-%TADATADATA22 NEVERTHELESS I WITHDREW MINE HAND, AND WROUGHT FOR MY NAMES SAKE, THATEH IT SHOULD NOT BE POLLUTED IN THE SIGHT OF THE HEATHEN, IN WHOSE SIGHT I BROUGHT THEM FORTH.I# 23 I LIFTED UP MINE HAND UNTO THEM ALSO IN THE WILDERNESS, THAT I WOULDAI SCATTER THEM AMONG THE HEATHEN, AND DISPERSE THEM THROUGH THE COUNTRIES;TD# 24 BECAUSE THEY HAD NOT EXECUTED MY JUDGMENTS, BUT HAD DESPISED MYH STATUTES, AND HAD POLLUTED MY SABBATHS, AND THEIR EYES WERE AFTER THEIR FATHERS IDOLS.TJ# 25 WHEREFORE I GAVE THEM ALSO STATUTES THAT WERE NOT GOOD, AND JUDGMENTS WHEREBY THEY SHOULD NOT LIVE;H# 26 AND I POLLUTED THEM IN THEIR OWN GIFTS, IN THAT THEY CAUSED TO PASSM THROUGH THE FIRE ALL THAT OPENETH THE WOMB, THAT I MIGHT MAKE THEM DESOLATE,T4 TO THE END THAT THEY MIGHT KNOW THAT I AM THE LORD.H# 27 THEREFORE, SON OF MAN, SPEAK UNTO THE HOUSE OF ISRAEL, AND SAY UNTOL THEM, THUS SAITH THE LORD GOD; YET IN THIS YOUR FATHERS HAVE BLASPHEMED ME,3 IN THAT THEY HAVE COMMITTED A TRESPASS AGAINST ME.EI# 28 FOR WHEN I HAD BROUGHT THEM INTO THE LAND, FOR THE WHICH I LIFTED UPYI MINE HAND TO GIVE IT TO THEM, THEN THEY SAW EVERY HIGH HILL, AND ALL THETE THICK TREES, AND THEY OFFERED THERE THEIR SACRIFICES, AND THERE THEY N PRESENTED THE PROVOCATION OF THEIR OFFERING: THERE ALSO THEY MADE THEIR SWEET4 SAVOUR, AND POURED OUT THERE THEIR DRINK OFFERINGS.K# 29 THEN I SAID UNTO THEM, WHAT IS THE HIGH PLACE WHEREUNTO YE GO? AND THEE, NAME WHEREOF IS CALLED BAMAH UNTO THIS DAY.L# 30 WHEREFORE SAY UNTO THE HOUSE OF ISRAEL, THUS SAITH THE LORD GOD; ARE YEN POLLUTED AFTER THE MANNER OF YOUR FATHERS? AND COMMIT YE WHOREDOM AFTER THEIR ABOMINATIONS?M# 31 FOR WHEN YE OFFER YOUR GIFTS, WHEN YE MAKE YOUR SONS TO PASS THROUGH THE I FIRE, YE POLLUTE YOURSELVES WITH ALL YOUR IDOLS, EVEN UNTO THIS DAY: ANDSL SHALL I BE ENQUIRED OF BY YOU, O HOUSE OF ISRAEL? AS I LIVE, SAITH THE LORD' GOD, I WILL NOT BE ENQUIRED OF BY YOU.OK# 32 AND THAT WHICH COMETH INTO YOUR MIND SHALL NOT BE AT ALL, THAT YE SAY,EK WE WILL BE AS THE HEATHEN, AS THE FAMILIES OF THE COUNTRIES, TO SERVE WOODE AND STONE.OI# 33 AS I LIVE, SAITH THE LORD GOD, SURELY WITH A MIGHTY HAND, AND WITH ARC STRETCHED OUT ARM, AND WITH FURY POURED OUT, WILL I RULE OVER YOU: M# 34 AND I WILL BRING YOU OUT FROM THE PEOPLE, AND WILL GATHER YOU OUT OF THESM COUNTRIES WHEREIN YE ARE SCATTERED, WITH A MIGHTY HAND, AND WITH A STRETCHEDD# OUT ARM, AND WITH FURY POURED OUT.M# 35 AND I WILL BRING YOU INTO THE WILDERNESS OF THE PEOPLE, AND THERE WILL IW PLEAD WITH YOU FACE TO FACE.EI# 36 LIKE AS I PLEADED WITH YOUR FATHERS IN THE WILDERNESS OF THE LAND OFA5 EGYPT, SO WILL I PLEAD WITH YOU, SAITH THE LORD GOD.RJ# 37 AND I WILL CAUSE YOU TO PASS UNDER THE ROD, AND I WILL BRING YOU INTO THE BOND OF THE COVENANT:M# 38 AND I WILL PURGE OUT FROM AMONG YOU THE REBELS, AND THEM THAT TRANSGRESSEK AGAINST ME: I WILL BRING THEM FORTH OUT OF THE COUNTRY WHERE THEY SOJOURN,DN AND THEY SHALL NOT ENTER INTO THE LAND OF ISRAEL: AND YE SHALL KNOW THAT I AM THE LORD.L# 39 AS FOR YOU, O HOUSE OF ISRAEL, THUS SAITH THE LORD GOD; GO YE, SERVE YEM EVERY ONE HIS IDOLS, AND HEREAFTER ALSO, IF YE WILL NOT HEARKEN UNTO ME: BUTRF POLLUTE YE MY HOLY NAME NO MORE WITH YOUR GIFTS, AND WITH YOUR IDOLS.H# 40 FOR IN MINE HOLY MOUNTAIN, IN THE MOUNTAIN OF THE HEIGHT OF ISRAEL,L SAITH THE LORD GOD, THERE SHALL ALL THE HOUSE OF ISRAEL, ALL OF THEM IN THEH LAND, SERVE ME: THERE WILL I ACCEPT THEM, AND THERE WILL I REQUIRE YOURM OFFERINGS, AND THE FIRSTFRUITS OF YOUR OBLATIONS, WITH ALL YOUR HOLY THINGS.UL# 41 I WILL ACCEPT YOU WITH YOUR SWEET SAVOUR, WHEN I BRING YOU OUT FROM THEL PEOPLE, AND GATHER YOU OUT OF THE COUNTRIES WHEREIN YE HAVE BEEN SCATTERED;4 AND I WILL BE SANCTIFIED IN YOU BEFORE THE HEATHEN.J# 42 AND YE SHALL KNOW THAT I AM THE LORD, WHEN I SHALL BRING YOU INTO THEM LAND OF ISRAEL, INTO THE COUNTRY FOR THE WHICH I LIFTED UP MINE HAND TO GIVE, IT TO YOUR FATHERS.K# 43 AND THERE SHALL YE REMEMBER YOUR WAYS, AND ALL YOUR DOINGS, WHEREIN YE K HAVE BEEN DEFILED; AND YE SHALL LOTHE YOU00x@=<D%5%T6%! !RSELVES IN YOUR OWN SIGHT FOR ALLO# YOUR EVILS THAT YE HAVE COMMITTED. M# 44 AND YE SHALL KNOW THAT I AM THE LORD WHEN I HAVE WROUGHT WITH YOU FOR MYTM NAMES SAKE, NOT ACCORDING TO YOUR WICKED WAYS, NOR ACCORDING TO YOUR CORRUPT 2 DOINGS, O YE HOUSE OF ISRAEL, SAITH THE LORD GOD.8# 45 MOREOVER THE WORD OF THE LORD CAME UNTO ME, SAYING,L# 46 SON OF MAN, SET THY FACE TOWARD THE SOUTH, AND DROP THY WORD TOWARD THE; SOUTH, AND PROPHESY AGAINST THE FOREST OF THE SOUTH FIELD;DH# 47 AND SAY TO THE FOREST OF THE SOUTH, HEAR THE WORD OF THE LORD; THUSN SAITH THE LORD GOD; BEHOLD, I WILL KINDLE A FIRE IN THEE, AND IT SHALL DEVOURM EVERY GREEN TREE IN THEE, AND EVERY DRY TREE: THE FLAMING FLAME SHALL NOT BEOM QUENCHED, AND ALL FACES FROM THE SOUTH TO THE NORTH SHALL BE BURNED THEREIN..M# 48 AND ALL FLESH SHALL SEE THAT I THE LORD HAVE KINDLED IT: IT SHALL NOT BET QUENCHED.J# 49 THEN SAID I, AH LORD GOD! THEY SAY OF ME, DOTH HE NOT SPEAK PARABLES? = CHAPTER 21 E2# 1 AND THE WORD OF THE LORD CAME UNTO ME, SAYING,K# 2 SON OF MAN, SET THY FACE TOWARD JERUSALEM, AND DROP THY WORD TOWARD THED6 HOLY PLACES, AND PROPHESY AGAINST THE LAND OF ISRAEL,L# 3 AND SAY TO THE LAND OF ISRAEL, THUS SAITH THE LORD; BEHOLD, I AM AGAINSTL THEE, AND WILL DRAW FORTH MY SWORD OUT OF HIS SHEATH, AND WILL CUT OFF FROM# THEE THE RIGHTEOUS AND THE WICKED. K# 4 SEEING THEN THAT I WILL CUT OFF FROM THEE THE RIGHTEOUS AND THE WICKED, K THEREFORE SHALL MY SWORD GO FORTH OUT OF HIS SHEATH AGAINST ALL FLESH FROMH THE SOUTH TO THE NORTH:L# 5 THAT ALL FLESH MAY KNOW THAT I THE LORD HAVE DRAWN FORTH MY SWORD OUT OF* HIS SHEATH: IT SHALL NOT RETURN ANY MORE.M# 6 SIGH THEREFORE, THOU SON OF MAN, WITH THE BREAKING OF THY LOINS; AND WITH # BITTERNESS SIGH BEFORE THEIR EYES.RJ# 7 AND IT SHALL BE, WHEN THEY SAY UNTO THEE, WHEREFORE SIGHEST THOU? THATM THOU SHALT ANSWER, FOR THE TIDINGS; BECAUSE IT COMETH: AND EVERY HEART SHALL K MELT, AND ALL HANDS SHALL BE FEEBLE, AND EVERY SPIRIT SHALL FAINT, AND ALLLI KNEES SHALL BE WEAK AS WATER: BEHOLD, IT COMETH, AND SHALL BE BROUGHT TOT PASS, SAITH THE LORD GOD.4# 8 AGAIN THE WORD OF THE LORD CAME UNTO ME, SAYING,M# 9 SON OF MAN, PROPHESY, AND SAY, THUS SAITH THE LORD; SAY, A SWORD, A SWORDT" IS SHARPENED, AND ALSO FURBISHED:J# 10 IT IS SHARPENED TO MAKE A SORE SLAUGHTER; IT IS FURBISHED THAT IT MAYN GLITTER: SHOULD WE THEN MAKE MIRTH? IT CONTEMNETH THE ROD OF MY SON, AS EVERY TREE.M# 11 AND HE HATH GIVEN IT TO BE FURBISHED, THAT IT MAY BE HANDLED: THIS SWORDEK IS SHARPENED, AND IT IS FURBISHED, TO GIVE IT INTO THE HAND OF THE SLAYER.,J# 12 CRY AND HOWL, SON OF MAN: FOR IT SHALL BE UPON MY PEOPLE, IT SHALL BEM UPON ALL THE PRINCES OF ISRAEL: TERRORS BY REASON OF THE SWORD SHALL BE UPON+ MY PEOPLE: SMITE THEREFORE UPON THY THIGH.SJ# 13 BECAUSE IT IS A TRIAL, AND WHAT IF THE SWORD CONTEMN EVEN THE ROD? IT& SHALL BE NO MORE, SAITH THE LORD GOD.J# 14 THOU THEREFORE, SON OF MAN, PROPHESY, AND SMITE THINE HANDS TOGETHER.K AND LET THE SWORD BE DOUBLED THE THIRD TIME, THE SWORD OF THE SLAIN: IT IS K THE SWORD OF THE GREAT MEN THAT ARE SLAIN, WHICH ENTERETH INTO THEIR PRIVYI CHAMBERS.J# 15 I HAVE SET THE POINT OF THE SWORD AGAINST ALL THEIR GATES, THAT THEIRM HEART MAY FAINT, AND THEIR RUINS BE MULTIPLIED: AH! IT IS MADE BRIGHT, IT IS  WRAPPED UP FOR THE SLAUGHTER.H# 16 GO THEE ONE WAY OR OTHER, EITHER ON THE RIGHT HAND, OR ON THE LEFT, WHITHERSOEVER THY FACE IS SET.OM# 17 I WILL ALSO SMITE MINE HANDS TOGETHER, AND I WILL CAUSE MY FURY TO REST:  I THE LORD HAVE SAID IT.F5# 18 THE WORD OF THE LORD CAME UNTO ME AGAIN, SAYING,EM# 19 ALSO, THOU SON OF MAN, APPOINT THEE TWO WAYS, THAT THE SWORD OF THE KING M OF BABYLON MAY COME: BOTH TWAIN SHALL COME FORTH OUT OF ONE LAND: AND CHOOSEU< THOU A PLACE, CHOOSE IT AT THE HEAD OF THE WAY TO THE CITY.L# 20 APPOINT A WAY, THAT THE SWORD MAY COME TO RABBATH OF THE AMMONITES, AND$ TO JUDAH IN JERUSALEM THE DEFENCED.L# 21 FOR THE KING OF BABYLON STOOD AT THE PARTING OF THE WAY, AT THE HEAD OFN THE TWO WAYS, TO USE DIVINATION: HE MADE HI00xH={<<%X>%+%O-%TADATADATAS ARROWS BRIGHT, HE CONSULTED WITH IMAGES, HE LOOKED IN THE LIVER.M# 22 AT HIS RIGHT HAND WAS THE DIVINATION FOR JERUSALEM, TO APPOINT CAPTAINS, K TO OPEN THE MOUTH IN THE SLAUGHTER, TO LIFT UP THE VOICE WITH SHOUTING, TO,J APPOINT BATTERING RAMS AGAINST THE GATES, TO CAST A MOUNT, AND TO BUILD A FORT.L# 23 AND IT SHALL BE UNTO THEM AS A FALSE DIVINATION IN THEIR SIGHT, TO THEMJ THAT HAVE SWORN OATHS: BUT HE WILL CALL TO REMEMBRANCE THE INIQUITY, THAT THEY MAY BE TAKEN. M# 24 THEREFORE THUS SAITH THE LORD GOD; BECAUSE YE HAVE MADE YOUR INIQUITY TODJ BE REMEMBERED, IN THAT YOUR TRANSGRESSIONS ARE DISCOVERED, SO THAT IN ALLE YOUR DOINGS YOUR SINS DO APPEAR; BECAUSE, I SAY, THAT YE ARE COME TO . REMEMBRANCE, YE SHALL BE TAKEN WITH THE HAND.G# 25 AND THOU, PROFANE WICKED PRINCE OF ISRAEL, WHOSE DAY IS COME, WHEN  INIQUITY SHALL HAVE AN END,M# 26 THUS SAITH THE LORD GOD; REMOVE THE DIADEM, AND TAKE OFF THE CROWN: THIS J SHALL NOT BE THE SAME: EXALT HIM THAT IS LOW, AND ABASE HIM THAT IS HIGH.L# 27 I WILL OVERTURN, OVERTURN, OVERTURN, IT: AND IT SHALL BE NO MORE, UNTIL3 HE COME WHOSE RIGHT IT IS; AND I WILL GIVE IT HIM.LD# 28 AND THOU, SON OF MAN, PROPHESY AND SAY, THUS SAITH THE LORD GODL CONCERNING THE AMMONITES, AND CONCERNING THEIR REPROACH; EVEN SAY THOU, THEI SWORD, THE SWORD IS DRAWN: FOR THE SLAUGHTER IT IS FURBISHED, TO CONSUME, BECAUSE OF THE GLITTERING:DM# 29 WHILES THEY SEE VANITY UNTO THEE, WHILES THEY DIVINE A LIE UNTO THEE, TOLN BRING THEE UPON THE NECKS OF THEM THAT ARE SLAIN, OF THE WICKED, WHOSE DAY IS- COME, WHEN THEIR INIQUITY SHALL HAVE AN END.HI# 30 SHALL I CAUSE IT TO RETURN INTO HIS SHEATH? I WILL JUDGE THEE IN THEA< PLACE WHERE THOU WAST CREATED, IN THE LAND OF THY NATIVITY.M# 31 AND I WILL POUR OUT MINE INDIGNATION UPON THEE, I WILL BLOW AGAINST THEE L IN THE FIRE OF MY WRATH, AND DELIVER THEE INTO THE HAND OF BRUTISH MEN, AND SKILFUL TO DESTROY.K# 32 THOU SHALT BE FOR FUEL TO THE FIRE; THY BLOOD SHALL BE IN THE MIDST OFEK THE LAND; THOU SHALT BE NO MORE REMEMBERED: FOR I THE LORD HAVE SPOKEN IT.W = CHAPTER 22 I7# 1 MOREOVER THE WORD OF THE LORD CAME UNTO ME, SAYING,NK# 2 NOW, THOU SON OF MAN, WILT THOU JUDGE, WILT THOU JUDGE THE BLOODY CITY?T/ YEA, THOU SHALT SHEW HER ALL HER ABOMINATIONS.TJ# 3 THEN SAY THOU, THUS SAITH THE LORD GOD, THE CITY SHEDDETH BLOOD IN THEI MIDST OF IT, THAT HER TIME MAY COME, AND MAKETH IDOLS AGAINST HERSELF TOO DEFILE HERSELF.M# 4 THOU ART BECOME GUILTY IN THY BLOOD THAT THOU HAST SHED; AND HAST DEFILED N THYSELF IN THINE IDOLS WHICH THOU HAST MADE; AND THOU HAST CAUSED THY DAYS TOJ DRAW NEAR, AND ART COME EVEN UNTO THY YEARS: THEREFORE HAVE I MADE THEE A; REPROACH UNTO THE HEATHEN, AND A MOCKING TO ALL COUNTRIES.AI# 5 THOSE THAT BE NEAR, AND THOSE THAT BE FAR FROM THEE, SHALL MOCK THEE, # WHICH ART INFAMOUS AND MUCH VEXED. K# 6 BEHOLD, THE PRINCES OF ISRAEL, EVERY ONE WERE IN THEE TO THEIR POWER TOF SHED BLOOD.J# 7 IN THEE HAVE THEY SET LIGHT BY FATHER AND MOTHER: IN THE MIDST OF THEEM HAVE THEY DEALT BY OPPRESSION WITH THE STRANGER: IN THEE HAVE THEY VEXED THED FATHERLESS AND THE WIDOW.G# 8 THOU HAST DESPISED MINE HOLY THINGS, AND HAST PROFANED MY SABBATHS.NM# 9 IN THEE ARE MEN THAT CARRY TALES TO SHED BLOOD: AND IN THEE THEY EAT UPONH: THE MOUNTAINS: IN THE MIDST OF THEE THEY COMMIT LEWDNESS.L# 10 IN THEE HAVE THEY DISCOVERED THEIR FATHERS NAKEDNESS: IN THEE HAVE THEY. HUMBLED HER THAT WAS SET APART FOR POLLUTION.M# 11 AND ONE HATH COMMITTED ABOMINATION WITH HIS NEIGHBOURS WIFE; AND ANOTHERAN HATH LEWDLY DEFILED HIS DAUGHTER IN LAW; AND ANOTHER IN THEE HATH HUMBLED HIS SISTER, HIS FATHERS DAUGHTER.K# 12 IN THEE HAVE THEY TAKEN GIFTS TO SHED BLOOD; THOU HAST TAKEN USURY ANDHL INCREASE, AND THOU HAST GREEDILY GAINED OF THY NEIGHBOURS BY EXTORTION, AND' HAST FORGOTTEN ME, SAITH THE LORD GOD. K# 13 BEHOLD, THEREFORE I HAVE SMITTEN MINE HAND AT THY DISHONEST GAIN WHICHHG THOU HAST MADE, AND AT THY BLOOD WHICH HATH BEEN IN THE MIDST OF THEE. M# 14 CAN THINE HEART ENDURE, OR CAN THINE HANDS BE STRONG, IN 00xP=<D%5%T6%! !THE DAYS THAT IUA SHALL DEAL WITH THEE? I THE LORD HAVE SPOKEN IT, AND WILL DO IT.TH# 15 AND I WILL SCATTER THEE AMONG THE HEATHEN, AND DISPERSE THEE IN THE8 COUNTRIES, AND WILL CONSUME THY FILTHINESS OUT OF THEE.I# 16 AND THOU SHALT TAKE THINE INHERITANCE IN THYSELF IN THE SIGHT OF THEG1 HEATHEN, AND THOU SHALT KNOW THAT I AM THE LORD.N3# 17 AND THE WORD OF THE LORD CAME UNTO ME, SAYING,AH# 18 SON OF MAN, THE HOUSE OF ISRAEL IS TO ME BECOME DROSS: ALL THEY AREJ BRASS, AND TIN, AND IRON, AND LEAD, IN THE MIDST OF THE FURNACE; THEY ARE EVEN THE DROSS OF SILVER.H# 19 THEREFORE THUS SAITH THE LORD GOD; BECAUSE YE ARE ALL BECOME DROSS,A BEHOLD, THEREFORE I WILL GATHER YOU INTO THE MIDST OF JERUSALEM.UL# 20 AS THEY GATHER SILVER, AND BRASS, AND IRON, AND LEAD, AND TIN, INTO THEM MIDST OF THE FURNACE, TO BLOW THE FIRE UPON IT, TO MELT IT; SO WILL I GATHER L YOU IN MINE ANGER AND IN MY FURY, AND I WILL LEAVE YOU THERE, AND MELT YOU.K# 21 YEA, I WILL GATHER YOU, AND BLOW UPON YOU IN THE FIRE OF MY WRATH, ANDI( YE SHALL BE MELTED IN THE MIDST THEROF.K# 22 AS SILVER IS MELTED IN THE MIDST OF THE FURNACE, SO SHALL YE BE MELTEDCK IN THE MIDST THEREOF; AND YE SHALL KNOW THAT I THE LORD HAVE POURED OUT MYU FURY UPON YOU.T3# 23 AND THE WORD OF THE LORD CAME UNTO ME, SAYING,NJ# 24 SON OF MAN, SAY UNTO HER, THOU ART THE LAND THAT IS NOT CLEANSED, NOR' RAINED UPON IN THE DAY OF INDIGNATION.FG# 25 THERE IS A CONSPIRACY OF HER PROPHETS IN THE MIDST THEREOF, LIKE AON ROARING LION RAVENING THE PREY; THEY HAVE DEVOURED SOULS; THEY HAVE TAKEN THEJ TREASURE AND PRECIOUS THINGS; THEY HAVE MADE HER MANY WIDOWS IN THE MIDST THEREOF.EJ# 26 HER PRIESTS HAVE VIOLATED MY LAW, AND HAVE PROFANED MINE HOLY THINGS:L THEY HAVE PUT NO DIFFERENCE BETWEEN THE HOLY AND PROFANE, NEITHER HAVE THEYM SHEWED DIFFERENCE BETWEEN THE UNCLEAN AND THE CLEAN, AND HAVE HID THEIR EYESI0 FROM MY SABBATHS, AND I AM PROFANED AMONG THEM.K# 27 HER PRINCES IN THE MIDST THEREOF ARE LIKE WOLVES RAVENING THE PREY, TOA9 SHED BLOOD, AND TO DESTROY SOULS, TO GET DISHONEST GAIN.TM# 28 AND HER PROPHETS HAVE DAUBED THEM WITH UNTEMPERED MORTER, SEEING VANITY,L AND DIVINING LIES UNTO THEM, SAYING, THUS SAITH THE LORD GOD, WHEN THE LORD HATH NOT SPOKEN.EL# 29 THE PEOPLE OF THE LAND HAVE USED OPPRESSION, AND EXERCISED ROBBERY, ANDE HAVE VEXED THE POOR AND NEEDY: YEA, THEY HAVE OPPRESSED THE STRANGERF WRONGFULLY.J# 30 AND I SOUGHT FOR A MAN AMONG THEM, THAT SHOULD MAKE UP THE HEDGE, ANDM STAND IN THE GAP BEFORE ME FOR THE LAND, THAT I SHOULD NOT DESTROY IT: BUT II FOUND NONE.L# 31 THEREFORE HAVE I POURED OUT MINE INDIGNATION UPON THEM; I HAVE CONSUMEDL THEM WITH THE FIRE OF MY WRATH: THEIR OWN WAY HAVE I RECOMPENSED UPON THEIR HEADS, SAITH THE LORD GOD.T = CHAPTER 23 E4# 1 THE WORD OF THE LORD CAME AGAIN UNTO ME, SAYING,B# 2 SON OF MAN, THERE WERE TWO WOMEN, THE DAUGHTERS OF ONE MOTHER:L# 3 AND THEY COMMITTED WHOREDOMS IN EGYPT; THEY COMMITTED WHOREDOMS IN THEIRM YOUTH: THERE WERE THEIR BREASTS PRESSED, AND THERE THEY BRUISED THE TEATS OFE THEIR VIRGINITY.FM# 4 AND THE NAMES OF THEM WERE AHOLAH THE ELDER, AND AHOLIBAH HER SISTER: AND I THEY WERE MINE, AND THEY BARE SONS AND DAUGHTERS. THUS WERE THEIR NAMES; + SAMARIA IS AHOLAH, AND JERUSALEM AHOLIBAH.HH# 5 AND AHOLAH PLAYED THE HARLOT WHEN SHE WAS MINE; AND SHE DOTED ON HER) LOVERS, ON THE ASSYRIANS HER NEIGHBOURS, L# 6 WHICH WERE CLOTHED WITH BLUE, CAPTAINS AND RULERS, ALL OF THEM DESIRABLE( YOUNG MEN, HORSEMEN RIDING UPON HORSES.K# 7 THUS SHE COMMITTED HER WHOREDOMS WITH THEM, WITH ALL THEM THAT WERE THE L CHOSEN MEN OF ASSYRIA, AND WITH ALL ON WHOM SHE DOTED: WITH ALL THEIR IDOLS SHE DEFILED HERSELF. L# 8 NEITHER LEFT SHE HER WHOREDOMS BROUGHT FROM EGYPT: FOR IN HER YOUTH THEYN LAY WITH HER, AND THEY BRUISED THE BREASTS OF HER VIRGINITY, AND POURED THEIR WHOREDOM UPON HER.OM# 9 WHEREFORE I HAVE DELIVERED HER INTO THE HAND OF HER LOVERS, INTO THE HANDD' OF THE ASSYRIANS, UPON WHOM SHE DOTED.NJ# 10 THESE DISCOVERED HER NAKEDNESS: THEY TOOK HER SONS AND HER DAUGHTERS,00xX={<<%X>%+%O-%TADATADATAM AND SLEW HER WITH THE SWORD: AND SHE BECAME FAMOUS AMONG WOMEN; FOR THEY HADS EXECUTED JUDGMENT UPON HER.G# 11 AND WHEN HER SISTER AHOLIBAH SAW THIS, SHE WAS MORE CORRUPT IN HER K INORDINATE LOVE THAN SHE, AND IN HER WHOREDOMS MORE THAN HER SISTER IN HERH WHOREDOMS. M# 12 SHE DOTED UPON THE ASSYRIANS HER NEIGHBOURS, CAPTAINS AND RULERS CLOTHED J MOST GORGEOUSLY, HORSEMEN RIDING UPON HORSES, ALL OF THEM DESIRABLE YOUNG MEN. B# 13 THEN I SAW THAT SHE WAS DEFILED, THAT THEY TOOK BOTH ONE WAY,J# 14 AND THAT SHE INCREASED HER WHOREDOMS: FOR WHEN SHE SAW MEN POURTRAYEDF UPON THE WALL, THE IMAGES OF THE CHALDEANS POURTRAYED WITH VERMILION,H# 15 GIRDED WITH GIRDLES UPON THEIR LOINS, EXCEEDING IN DYED ATTIRE UPONE THEIR HEADS, ALL OF THEM PRINCES TO LOOK TO, AFTER THE MANNER OF THET4 BABYLONIANS OF CHALDEA, THE LAND OF THEIR NATIVITY:M# 16 AND AS SOON AS SHE SAW THEM WITH HER EYES, SHE DOTED UPON THEM, AND SENTB# MESSENGERS UNTO THEM INTO CHALDEA.TK# 17 AND THE BABYLONIANS CAME TO HER INTO THE BED OF LOVE, AND THEY DEFILEDEJ HER WITH THEIR WHOREDOM, AND SHE WAS POLLUTED WITH THEM, AND HER MIND WAS ALIENATED FROM THEM.DK# 18 SO SHE DISCOVERED HER WHOREDOMS, AND DISCOVERED HER NAKEDNESS: THEN MYDL MIND WAS ALIENATED FROM HER, LIKE AS MY MIND WAS ALIENATED FROM HER SISTER.L# 19 YET SHE MULTIPLIED HER WHOREDOMS, IN CALLING TO REMEMBRANCE THE DAYS OFC HER YOUTH, WHEREIN SHE HAD PLAYED THE HARLOT IN THE LAND OF EGYPT.EG# 20 FOR SHE DOTED UPON THEIR PARAMOURS, WHOSE FLESH IS AS THE FLESH OF 4 ASSES, AND WHOSE ISSUE IS LIKE THE ISSUE OF HORSES.M# 21 THUS THOU CALLEDST TO REMEMBRANCE THE LEWDNESS OF THY YOUTH, IN BRUISINGD6 THY TEATS BY THE EGYPTIANS FOR THE PAPS OF THY YOUTH.L# 22 THEREFORE, O AHOLIBAH, THUS SAITH THE LORD GOD; BEHOLD, I WILL RAISE UPK THY LOVERS AGAINST THEE, FROM WHOM THY MIND IS ALIENATED, AND I WILL BRINGR! THEM AGAINST THEE ON EVERY SIDE; J# 23 THE BABYLONIANS, AND ALL THE CHALDEANS, PEKOD, AND SHOA, AND KOA, ANDK ALL THE ASSYRIANS WITH THEM: ALL OF THEM DESIRABLE YOUNG MEN, CAPTAINS ANDUB RULERS, GREAT LORDS AND RENOWNED, ALL OF THEM RIDING UPON HORSES.L# 24 AND THEY SHALL COME AGAINST THEE WITH CHARIOTS, WAGONS, AND WHEELS, ANDL WITH AN ASSEMBLY OF PEOPLE, WHICH SHALL SET AGAINST THEE BUCKLER AND SHIELDL AND HELMET ROUND ABOUT: AND I WILL SET JUDGMENT BEFORE THEM, AND THEY SHALL) JUDGE THEE ACCORDING TO THEIR JUDGMENTS. K# 25 AND I WILL SET MY JEALOUSY AGAINST THEE, AND THEY SHALL DEAL FURIOUSLYNI WITH THEE: THEY SHALL TAKE AWAY THY NOSE AND THINE EARS; AND THY REMNANTCM SHALL FALL BY THE SWORD: THEY SHALL TAKE THY SONS AND THY DAUGHTERS; AND THY.' RESIDUE SHALL BE DEVOURED BY THE FIRE.IJ# 26 THEY SHALL ALSO STRIP THEE OUT OF THY CLOTHES, AND TAKE AWAY THY FAIR JEWELS.G# 27 THUS WILL I MAKE THY LEWDNESS TO CEASE FROM THEE, AND THY WHOREDOMGJ BROUGHT FROM THE LAND OF EGYPT: SO THAT THOU SHALT NOT LIFT UP THINE EYES( UNTO THEM, NOR REMEMBER EGYPT ANY MORE.K# 28 FOR THUS SAITH THE LORD GOD; BEHOLD, I WILL DELIVER THEE INTO THE HANDSF OF THEM WHOM THOU HATEST, INTO THE HAND OF THEM FROM WHOM THY MIND IS ALIENATED:SI# 29 AND THEY SHALL DEAL WITH THEE HATEFULLY, AND SHALL TAKE AWAY ALL THY6F LABOUR, AND SHALL LEAVE THEE NAKED AND BARE: AND THE NAKEDNESS OF THYD WHOREDOMS SHALL BE DISCOVERED, BOTH THY LEWDNESS AND THY WHOREDOMS.M# 30 I WILL DO THESE THINGS UNTO THEE, BECAUSE THOU HAST GONE A WHORING AFTERH= THE HEATHEN, AND BECAUSE THOU ART POLLUTED WITH THEIR IDOLS.UM# 31 THOU HAST WALKED IN THE WAY OF THY SISTER; THEREFORE WILL I GIVE HER CUP  INTO THINE HAND.HJ# 32 THUS SAITH THE LORD GOD; THOU SHALT DRINK OF THY SISTERS CUP DEEP ANDI LARGE: THOU SHALT BE LAUGHED TO SCORN AND HAD IN DERISION; IT CONTAINETHE MUCH.F# 33 THOU SHALT BE FILLED WITH DRUNKENNESS AND SORROW, WITH THE CUP OFA ASTONISHMENT AND DESOLATION, WITH THE CUP OF THY SISTER SAMARIA.NG# 34 THOU SHALT EVEN DRINK IT AND SUCK IT OUT, AND THOU SHALT BREAK THESM SHERDS THEREOF, AND PLUCK OFF THINE OWN BREASTS: FOR I HAVE SPOKEN IT, SAITH  THE LORD GOD.K# 35 THEREFORE THUS SAITH THE LO00x`=<D%5%T6%! !RD GOD; BECAUSE THOU HAST FORGOTTEN ME, ANDUG CAST ME BEHIND THY BACK, THEREFORE BEAR THOU ALSO THY LEWDNESS AND THYO WHOREDOMS.DK# 36 THE LORD SAID MOREOVER UNTO ME; SON OF MAN, WILT THOU JUDGE AHOLAH ANDE8 AHOLIBAH? YEA, DECLARE UNTO THEM THEIR ABOMINATIONS; ITM# 37 THAT THEY HAVE COMMITTED ADULTERY, AND BLOOD IS IN THEIR HANDS, AND WITHKK THEIR IDOLS HAVE THEY COMMITTED ADULTERY, AND HAVE ALSO CAUSED THEIR SONS,BK WHOM THEY BARE UNTO ME, TO PASS FOR THEM THROUGH THE FIRE, TO DEVOUR THEM.TL# 38 MOREOVER THIS THEY HAVE DONE UNTO ME: THEY HAVE DEFILED MY SANCTUARY IN- THE SAME DAY, AND HAVE PROFANED MY SABBATHS.OJ# 39 FOR WHEN THEY HAD SLAIN THEIR CHILDREN TO THEIR IDOLS, THEN THEY CAMEN THE SAME DAY INTO MY SANCTUARY TO PROFANE IT; AND, LO, THUS HAVE THEY DONE IN THE MIDST OF MINE HOUSE.DM# 40 AND FURTHERMORE, THAT YE HAVE SENT FOR MEN TO COME FROM FAR, UNTO WHOM ADJ MESSENGER WAS SENT; AND, LO, THEY CAME: FOR WHOM THOU DIDST WASH THYSELF,9 PAINTEDST THY EYES, AND DECKEDST THYSELF WITH ORNAMENTS,EM# 41 AND SATEST UPON A STATELY BED, AND A TABLE PREPARED BEFORE IT, WHEREUPON,) THOU HAST SET MINE INCENSE AND MINE OIL.WL# 42 AND A VOICE OF A MULTITUDE BEING AT EASE WAS WITH HER: AND WITH THE MENG OF THE COMMON SORT WERE BROUGHT SABEANS FROM THE WILDERNESS, WHICH PUTMC BRACELETS UPON THEIR HANDS, AND BEAUTIFUL CROWNS UPON THEIR HEADS. J# 43 THEN SAID I UNTO HER THAT WAS OLD IN ADULTERIES, WILL THEY NOW COMMIT' WHOREDOMS WITH HER, AND SHE WITH THEM?TK# 44 YET THEY WENT IN UNTO HER, AS THEY GO IN UNTO A WOMAN THAT PLAYETH THEEG HARLOT: SO WENT THEY IN UNTO AHOLAH AND UNTO AHOLIBAH, THE LEWD WOMEN.NE# 45 AND THE RIGHTEOUS MEN, THEY SHALL JUDGE THEM AFTER THE MANNER OF N ADULTERESSES, AND AFTER THE MANNER OF WOMEN THAT SHED BLOOD; BECAUSE THEY ARE+ ADULTERESSES, AND BLOOD IS IN THEIR HANDS.AJ# 46 FOR THUS SAITH THE LORD GOD; I WILL BRING UP A COMPANY UPON THEM, AND* WILL GIVE THEM TO BE REMOVED AND SPOILED.I# 47 AND THE COMPANY SHALL STONE THEM WITH STONES, AND DISPATCH THEM WITH J THEIR SWORDS; THEY SHALL SLAY THEIR SONS AND THEIR DAUGHTERS, AND BURN UP THEIR HOUSES WITH FIRE.L# 48 THUS WILL I CAUSE LEWDNESS TO CEASE OUT OF THE LAND, THAT ALL WOMEN MAY) BE TAUGHT NOT TO DO AFTER YOUR LEWDNESS.NL# 49 AND THEY SHALL RECOMPENSE YOUR LEWDNESS UPON YOU, AND YE SHALL BEAR THE> SINS OF YOUR IDOLS: AND YE SHALL KNOW THAT I AM THE LORD GOD. = CHAPTER 24 NH# 1 AGAIN IN THE NINTH YEAR, IN THE TENTH MONTH, IN THE TENTH DAY OF THE2 MONTH, THE WORD OF THE LORD CAME UNTO ME, SAYING,J# 2 SON OF MAN, WRITE THEE THE NAME OF THE DAY, EVEN OF THIS SAME DAY: THE= KING OF BABYLON SET HIMSELF AGAINST JERUSALEM THIS SAME DAY. J# 3 AND UTTER A PARABLE UNTO THE REBELLIOUS HOUSE, AND SAY UNTO THEM, THUSJ SAITH THE LORD GOD; SET ON A POT, SET IT ON, AND ALSO POUR WATER INTO IT:L# 4 GATHER THE PIECES THEREOF INTO IT, EVEN EVERY GOOD PIECE, THE THIGH, AND- THE SHOULDER; FILL IT WITH THE CHOICE BONES.IL# 5 TAKE THE CHOICE OF THE FLOCK, AND BURN ALSO THE BONES UNDER IT, AND MAKE; IT BOIL WELL, AND LET THEM SEETHE THE BONES OF IT THEREIN.DI# 6 WHEREFORE THUS SAITH THE LORD GOD; WOE TO THE BLOODY CITY, TO THE POTLJ WHOSE SCUM IS THEREIN, AND WHOSE SCUM IS NOT GONE OUT OF IT! BRING IT OUT) PIECE BY PIECE; LET NO LOT FALL UPON IT.TL# 7 FOR HER BLOOD IS IN THE MIDST OF HER; SHE SET IT UPON THE TOP OF A ROCK;: SHE POURED IT NOT UPON THE GROUND, TO COVER IT WITH DUST;I# 8 THAT IT MIGHT CAUSE FURY TO COME UP TO TAKE VENGEANCE; I HAVE SET HERN= BLOOD UPON THE TOP OF A ROCK, THAT IT SHOULD NOT BE COVERED.TJ# 9 THEREFORE THUS SAITH THE LORD GOD; WOE TO THE BLOODY CITY! I WILL EVEN MAKE THE PILE FOR FIRE GREAT.M# 10 HEAP ON WOOD, KINDLE THE FIRE, CONSUME THE FLESH, AND SPICE IT WELL, ANDO LET THE BONES BE BURNED. J# 11 THEN SET IT EMPTY UPON THE COALS THEREOF, THAT THE BRASS OF IT MAY BEK HOT, AND MAY BURN, AND THAT THE FILTHINESS OF IT MAY BE MOLTEN IN IT, THATS THE SCUM OF IT MAY BE CONSUMED.J# 12 SHE HATH WEARIED HERSELF WITH LIES, AND HER GREAT SCUM WENT NOT FORTH+ OUT OF HER: HER SCUM SHALL BE IN 00xh={<<%X>%+%O-%TADATADATATHE FIRE.RM# 13 IN THY FILTHINESS IS LEWDNESS: BECAUSE I HAVE PURGED THEE, AND THOU WASTFJ NOT PURGED, THOU SHALT NOT BE PURGED FROM THY FILTHINESS ANY MORE, TILL I' HAVE CAUSED MY FURY TO REST UPON THEE.NJ# 14 I THE LORD HAVE SPOKEN IT: IT SHALL COME TO PASS, AND I WILL DO IT; IL WILL NOT GO BACK, NEITHER WILL I SPARE, NEITHER WILL I REPENT; ACCORDING TOM THY WAYS, AND ACCORDING TO THY DOINGS, SHALL THEY JUDGE THEE, SAITH THE LORD, GOD.R4# 15 ALSO THE WORD OF THE LORD CAME UNTO ME, SAYING,L# 16 SON OF MAN, BEHOLD, I TAKE AWAY FROM THEE THE DESIRE OF THINE EYES WITHM A STROKE: YET NEITHER SHALT THOU MOURN NOR WEEP, NEITHER SHALL THY TEARS RUN  DOWN.J# 17 FORBEAR TO CRY, MAKE NO MOURNING FOR THE DEAD, BIND THE TIRE OF THINEL HEAD UPON THEE, AND PUT ON THY SHOES UPON THY FEET, AND COVER NOT THY LIPS, AND EAT NOT THE BREAD OF MEN.M# 18 SO I SPAKE UNTO THE PEOPLE IN THE MORNING: AND AT EVEN MY WIFE DIED; ANDE) I DID IN THE MORNING AS I WAS COMMANDED.OM# 19 AND THE PEOPLE SAID UNTO ME, WILT THOU NOT TELL US WHAT THESE THINGS ARE  TO US, THAT THOU DOEST SO? E# 20 THEN I ANSWERED THEM, THE WORD OF THE LORD CAME UNTO ME, SAYING,HL# 21 SPEAK UNTO THE HOUSE OF ISRAEL, THUS SAITH THE LORD GOD; BEHOLD, I WILLJ PROFANE MY SANCTUARY, THE EXCELLENCY OF YOUR STRENGTH, THE DESIRE OF YOURN EYES, AND THAT WHICH YOUR SOUL PITIETH; AND YOUR SONS AND YOUR DAUGHTERS WHOM& YE HAVE LEFT SHALL FALL BY THE SWORD.J# 22 AND YE SHALL DO AS I HAVE DONE: YE SHALL NOT COVER YOUR LIPS, NOR EAT THE BREAD OF MEN.L# 23 AND YOUR TIRES SHALL BE UPON YOUR HEADS, AND YOUR SHOES UPON YOUR FEET:M YE SHALL NOT MOURN NOR WEEP; BUT YE SHALL PINE AWAY FOR YOUR INIQUITIES, ANDT MOURN ONE TOWARD ANOTHER.H# 24 THUS EZEKIEL IS UNTO YOU A SIGN: ACCORDING TO ALL THAT HE HATH DONEI SHALL YE DO: AND WHEN THIS COMETH, YE SHALL KNOW THAT I AM THE LORD GOD.TL# 25 ALSO, THOU SON OF MAN, SHALL IT NOT BE IN THE DAY WHEN I TAKE FROM THEMK THEIR STRENGTH, THE JOY OF THEIR GLORY, THE DESIRE OF THEIR EYES, AND THATT@ WHEREUPON THEY SET THEIR MINDS, THEIR SONS AND THEIR DAUGHTERS,M# 26 THAT HE THAT ESCAPETH IN THAT DAY SHALL COME UNTO THEE, TO CAUSE THEE TON HEAR IT WITH THINE EARS? L# 27 IN THAT DAY SHALL THY MOUTH BE OPENED TO HIM WHICH IS ESCAPED, AND THOUJ SHALT SPEAK, AND BE NO MORE DUMB: AND THOU SHALT BE A SIGN UNTO THEM; AND$ THEY SHALL KNOW THAT I AM THE LORD. = CHAPTER 25 M4# 1 THE WORD OF THE LORD CAME AGAIN UNTO ME, SAYING,H# 2 SON OF MAN, SET THY FACE AGAINST THE AMMONITES, AND PROPHESY AGAINST THEM;M# 3 AND SAY UNTO THE AMMONITES, HEAR THE WORD OF THE LORD GOD; THUS SAITH THE F LORD GOD; BECAUSE THOU SAIDST, AHA, AGAINST MY SANCTUARY, WHEN IT WASL PROFANED; AND AGAINST THE LAND OF ISRAEL, WHEN IT WAS DESOLATE; AND AGAINST3 THE HOUSE OF JUDAH, WHEN THEY WENT INTO CAPTIVITY;AF# 4 BEHOLD, THEREFORE I WILL DELIVER THEE TO THE MEN OF THE EAST FOR AE POSSESSION, AND THEY SHALL SET THEIR PALACES IN THEE, AND MAKE THEIRNL DWELLINGS IN THEE: THEY SHALL EAT THY FRUIT, AND THEY SHALL DRINK THY MILK.L# 5 AND I WILL MAKE RABBAH A STABLE FOR CAMELS, AND THE AMMONITES A COUCHING8 PLACE FOR FLOCKS: AND YE SHALL KNOW THAT I AM THE LORD.K# 6 FOR THUS SAITH THE LORD GOD; BECAUSE THOU HAST CLAPPED THINE HANDS, ANDSN STAMPED WITH THE FEET, AND REJOICED IN HEART WITH ALL THY DESPITE AGAINST THE LAND OF ISRAEL;F# 7 BEHOLD, THEREFORE I WILL STRETCH OUT MINE HAND UPON THEE, AND WILLJ DELIVER THEE FOR A SPOIL TO THE HEATHEN; AND I WILL CUT THEE OFF FROM THEM PEOPLE, AND I WILL CAUSE THEE TO PERISH OUT OF THE COUNTRIES: I WILL DESTROYH. THEE; AND THOU SHALT KNOW THAT I AM THE LORD.K# 8 THUS SAITH THE LORD GOD; BECAUSE THAT MOAB AND SEIR DO SAY, BEHOLD, THEI- HOUSE OF JUDAH IS LIKE UNTO ALL THE HEATHEN;EM# 9 THEREFORE, BEHOLD, I WILL OPEN THE SIDE OF MOAB FROM THE CITIES, FROM HISEL CITIES WHICH ARE ON HIS FRONTIERS, THE GLORY OF THE COUNTRY, BETHJESHIMOTH, BAALMEON, AND KIRIATHAIM,G# 10 UNTO THE MEN OF THE EAST WITH THE AMMONITES, AND WILL GIVE THEM INH POSSESSION, THAT THE AMMONITES MAY NOT BE REMEMBERED AMONG THE NATIONS.00xp=<D%5%T6%! !J# 11 AND I WILL EXECUTE JUDGMENTS UPON MOAB; AND THEY SHALL KNOW THAT I AM THE LORD.L# 12 THUS SAITH THE LORD GOD; BECAUSE THAT EDOM HATH DEALT AGAINST THE HOUSEN OF JUDAH BY TAKING VENGEANCE, AND HATH GREATLY OFFENDED, AND REVENGED HIMSELF UPON THEM;I# 13 THEREFORE THUS SAITH THE LORD GOD; I WILL ALSO STRETCH OUT MINE HAND,F UPON EDOM, AND WILL CUT OFF MAN AND BEAST FROM IT; AND I WILL MAKE IT@ DESOLATE FROM TEMAN; AND THEY OF DEDAN SHALL FALL BY THE SWORD.K# 14 AND I WILL LAY MY VENGEANCE UPON EDOM BY THE HAND OF MY PEOPLE ISRAEL:NL AND THEY SHALL DO IN EDOM ACCORDING TO MINE ANGER AND ACCORDING TO MY FURY;6 AND THEY SHALL KNOW MY VENGEANCE, SAITH THE LORD GOD.L# 15 THUS SAITH THE LORD GOD; BECAUSE THE PHILISTINES HAVE DEALT BY REVENGE,L AND HAVE TAKEN VENGEANCE WITH A DESPITEFUL HEART, TO DESTROY IT FOR THE OLD HATRED;L# 16 THEREFORE THUS SAITH THE LORD GOD; BEHOLD, I WILL STRETCH OUT MINE HANDI UPON THE PHILISTINES, AND I WILL CUT OFF THE CHERETHIMS, AND DESTROY THEA REMNANT OF THE SEA COAST.K# 17 AND I WILL EXECUTE GREAT VENGEANCE UPON THEM WITH FURIOUS REBUKES; ANDAM THEY SHALL KNOW THAT I AM THE LORD, WHEN I SHALL LAY MY VENGEANCE UPON THEM.R = CHAPTER 26 UL# 1 AND IT CAME TO PASS IN THE ELEVENTH YEAR, IN THE FIRST DAY OF THE MONTH,0 THAT THE WORD OF THE LORD CAME UNTO ME, SAYING,K# 2 SON OF MAN, BECAUSE THAT TYRUS HATH SAID AGAINST JERUSALEM, AHA, SHE IS K BROKEN THAT WAS THE GATES OF THE PEOPLE: SHE IS TURNED UNTO ME: I SHALL BEH$ REPLENISHED, NOW SHE IS LAID WASTE:J# 3 THEREFORE THUS SAITH THE LORD GOD; BEHOLD, I AM AGAINST THEE, O TYRUS,L AND WILL CAUSE MANY NATIONS TO COME UP AGAINST THEE, AS THE SEA CAUSETH HIS WAVES TO COME UP.K# 4 AND THEY SHALL DESTROY THE WALLS OF TYRUS, AND BREAK DOWN HER TOWERS: IDI WILL ALSO SCRAPE HER DUST FROM HER, AND MAKE HER LIKE THE TOP OF A ROCK. J# 5 IT SHALL BE A PLACE FOR THE SPREADING OF NETS IN THE MIDST OF THE SEA:M FOR I HAVE SPOKEN IT, SAITH THE LORD GOD: AND IT SHALL BECOME A SPOIL TO THEI NATIONS.HM# 6 AND HER DAUGHTERS WHICH ARE IN THE FIELD SHALL BE SLAIN BY THE SWORD; ANDH$ THEY SHALL KNOW THAT I AM THE LORD.@# 7 FOR THUS SAITH THE LORD GOD; BEHOLD, I WILL BRING UPON TYRUSN NEBUCHADREZZAR KING OF BABYLON, A KING OF KINGS, FROM THE NORTH, WITH HORSES,F AND WITH CHARIOTS, AND WITH HORSEMEN, AND COMPANIES, AND MUCH PEOPLE.I# 8 HE SHALL SLAY WITH THE SWORD THY DAUGHTERS IN THE FIELD: AND HE SHALL I MAKE A FORT AGAINST THEE, AND CAST A MOUNT AGAINST THEE, AND LIFT UP THES BUCKLER AGAINST THEE.K# 9 AND HE SHALL SET ENGINES OF WAR AGAINST THY WALLS, AND WITH HIS AXES HEN SHALL BREAK DOWN THY TOWERS.TJ# 10 BY REASON OF THE ABUNDANCE OF HIS HORSES THEIR DUST SHALL COVER THEE:N THY WALLS SHALL SHAKE AT THE NOISE OF THE HORSEMEN, AND OF THE WHEELS, AND OFK THE CHARIOTS, WHEN HE SHALL ENTER INTO THY GATES, AS MEN ENTER INTO A CITYE WHEREIN IS MADE A BREACH.I# 11 WITH THE HOOFS OF HIS HORSES SHALL HE TREAD DOWN ALL THY STREETS: HESN SHALL SLAY THY PEOPLE BY THE SWORD, AND THY STRONG GARRISONS SHALL GO DOWN TO THE GROUND.F# 12 AND THEY SHALL MAKE A SPOIL OF THY RICHES, AND MAKE A PREY OF THYK MERCHANDISE: AND THEY SHALL BREAK DOWN THY WALLS, AND DESTROY THY PLEASANTRI HOUSES: AND THEY SHALL LAY THY STONES AND THY TIMBER AND THY DUST IN THEE MIDST OF THE WATER.K# 13 AND I WILL CAUSE THE NOISE OF THY SONGS TO CEASE; AND THE SOUND OF THYI HARPS SHALL BE NO MORE HEARD.J# 14 AND I WILL MAKE THEE LIKE THE TOP OF A ROCK: THOU SHALT BE A PLACE TON SPREAD NETS UPON; THOU SHALT BE BUILT NO MORE: FOR I THE LORD HAVE SPOKEN IT, SAITH THE LORD GOD.M# 15 THUS SAITH THE LORD GOD TO TYRUS; SHALL NOT THE ISLES SHAKE AT THE SOUNDBN OF THY FALL, WHEN THE WOUNDED CRY, WHEN THE SLAUGHTER IS MADE IN THE MIDST OF THEE?L# 16 THEN ALL THE PRINCES OF THE SEA SHALL COME DOWN FROM THEIR THRONES, ANDN LAY AWAY THEIR ROBES, AND PUT OFF THEIR BROIDERED GARMENTS: THEY SHALL CLOTHEM THEMSELVES WITH TREMBLING; THEY SHALL SIT UPON THE GROUND, AND SHALL TREMBLEC, AT EVERY MOMENT, AND BE ASTONISHED AT THEE.L# 17 AND THEY SHALL TAKE U00xx={<<%X>%+%O-%TADATADATAP A LAMENTATION FOR THEE, AND SAY TO THEE, HOW ARTI THOU DESTROYED, THAT WAST INHABITED OF SEAFARING MEN, THE RENOWNED CITY,LI WHICH WAST STRONG IN THE SEA, SHE AND HER INHABITANTS, WHICH CAUSE THEIR# TERROR TO BE ON ALL THAT HAUNT IT!SL# 18 NOW SHALL THE ISLES TREMBLE IN THE DAY OF THY FALL; YEA, THE ISLES THAT3 ARE IN THE SEA SHALL BE TROUBLED AT THY DEPARTURE. I# 19 FOR THUS SAITH THE LORD GOD; WHEN I SHALL MAKE THEE A DESOLATE CITY,RL LIKE THE CITIES THAT ARE NOT INHABITED; WHEN I SHALL BRING UP THE DEEP UPON) THEE, AND GREAT WATERS SHALL COVER THEE; K# 20 WHEN I SHALL BRING THEE DOWN WITH THEM THAT DESCEND INTO THE PIT, WITHWM THE PEOPLE OF OLD TIME, AND SHALL SET THEE IN THE LOW PARTS OF THE EARTH, INBL PLACES DESOLATE OF OLD, WITH THEM THAT GO DOWN TO THE PIT, THAT THOU BE NOT< INHABITED; AND I SHALL SET GLORY IN THE LAND OF THE LIVING;I# 21 I WILL MAKE THEE A TERROR, AND THOU SHALT BE NO MORE: THOUGH THOU BEAE SOUGHT FOR, YET SHALT THOU NEVER BE FOUND AGAIN, SAITH THE LORD GOD. = CHAPTER 27 E4# 1 THE WORD OF THE LORD CAME AGAIN UNTO ME, SAYING,:# 2 NOW, THOU SON OF MAN, TAKE UP A LAMENTATION FOR TYRUS;H# 3 AND SAY UNTO TYRUS, O THOU THAT ART SITUATE AT THE ENTRY OF THE SEA,N WHICH ART A MERCHANT OF THE PEOPLE FOR MANY ISLES, THUS SAITH THE LORD GOD; O/ TYRUS, THOU HAST SAID, I AM OF PERFECT BEAUTY.LM# 4 THY BORDERS ARE IN THE MIDST OF THE SEAS, THY BUILDERS HAVE PERFECTED THYB BEAUTY.M# 5 THEY HAVE MADE ALL THY SHIP BOARDS OF FIR TREES OF SENIR: THEY HAVE TAKENO, CEDARS FROM LEBANON TO MAKE MASTS FOR THEE.G# 6 OF THE OAKS OF BASHAN HAVE THEY MADE THINE OARS; THE COMPANY OF THEEF ASHURITES HAVE MADE THY BENCHES OF IVORY, BROUGHT OUT OF THE ISLES OF CHITTIM. K# 7 FINE LINEN WITH BROIDERED WORK FROM EGYPT WAS THAT WHICH THOU SPREADESTLI FORTH TO BE THY SAIL; BLUE AND PURPLE FROM THE ISLES OF ELISHAH WAS THATR WHICH COVERED THEE.I# 8 THE INHABITANTS OF ZIDON AND ARVAD WERE THY MARINERS: THY WISE MEN, OL+ TYRUS, THAT WERE IN THEE, WERE THY PILOTS.HL# 9 THE ANCIENTS OF GEBAL AND THE WISE MEN THEREOF WERE IN THEE THY CALKERS:H ALL THE SHIPS OF THE SEA WITH THEIR MARINERS WERE IN THEE TO OCCUPY THY MERCHANDISE. I# 10 THEY OF PERSIA AND OF LUD AND OF PHUT WERE IN THINE ARMY, THY MEN OFEC WAR: THEY HANGED THE SHIELD AND HELMET IN THEE; THEY SET FORTH THYI COMELINESS.J# 11 THE MEN OF ARVAD WITH THINE ARMY WERE UPON THY WALLS ROUND ABOUT, ANDK THE GAMMADIMS WERE IN THY TOWERS: THEY HANGED THEIR SHIELDS UPON THY WALLSW0 ROUND ABOUT; THEY HAVE MADE THY BEAUTY PERFECT.H# 12 TARSHISH WAS THY MERCHANT BY REASON OF THE MULTITUDE OF ALL KIND OFD RICHES; WITH SILVER, IRON, TIN, AND LEAD, THEY TRADED IN THY FAIRS.H# 13 JAVAN, TUBAL, AND MESHECH, THEY WERE THY MERCHANTS: THEY TRADED THE3 PERSONS OF MEN AND VESSELS OF BRASS IN THY MARKET.EF# 14 THEY OF THE HOUSE OF TOGARMAH TRADED IN THY FAIRS WITH HORSES AND HORSEMEN AND MULES.L# 15 THE MEN OF DEDAN WERE THY MERCHANTS; MANY ISLES WERE THE MERCHANDISE OFF THINE HAND: THEY BROUGHT THEE FOR A PRESENT HORNS OF IVORY AND EBONY.J# 16 SYRIA WAS THY MERCHANT BY REASON OF THE MULTITUDE OF THE WARES OF THYN MAKING: THEY OCCUPIED IN THY FAIRS WITH EMERALDS, PURPLE, AND BROIDERED WORK,& AND FINE LINEN, AND CORAL, AND AGATE.K# 17 JUDAH, AND THE LAND OF ISRAEL, THEY WERE THY MERCHANTS: THEY TRADED IN4G THY MARKET WHEAT OF MINNITH, AND PANNAG, AND HONEY, AND OIL, AND BALM.EK# 18 DAMASCUS WAS THY MERCHANT IN THE MULTITUDE OF THE WARES OF THY MAKING, H FOR THE MULTITUDE OF ALL RICHES; IN THE WINE OF HELBON, AND WHITE WOOL.L# 19 DAN ALSO AND JAVAN GOING TO AND FRO OCCUPIED IN THY FAIRS: BRIGHT IRON,) CASSIA, AND CALAMUS, WERE IN THY MARKET.A=# 20 DEDAN WAS THY MERCHANT IN PRECIOUS CLOTHES FOR CHARIOTS.,L# 21 ARABIA, AND ALL THE PRINCES OF KEDAR, THEY OCCUPIED WITH THEE IN LAMBS,7 AND RAMS, AND GOATS: IN THESE WERE THEY THY MERCHANTS. E# 22 THE MERCHANTS OF SHEBA AND RAAMAH, THEY WERE THY MERCHANTS: THEYIN OCCUPIED IN THY FAIRS WITH CHIEF OF ALL SPICES, AND WITH ALL PRECIOUS STONES, AND GOLD.E# 23 HARAN, AND CANNEH, AND EDEN, THE 00x=<D%5%T6%! !MERCHANTS OF SHEBA, ASSHUR, ANDC CHILMAD, WERE THY MERCHANTS.,J# 24 THESE WERE THY MERCHANTS IN ALL SORTS OF THINGS, IN BLUE CLOTHES, ANDM BROIDERED WORK, AND IN CHESTS OF RICH APPAREL, BOUND WITH CORDS, AND MADE OFE CEDAR, AMONG THY MERCHANDISE.H# 25 THE SHIPS OF TARSHISH DID SING OF THEE IN THY MARKET: AND THOU WAST> REPLENISHED, AND MADE VERY GLORIOUS IN THE MIDST OF THE SEAS.G# 26 THY ROWERS HAVE BROUGHT THEE INTO GREAT WATERS: THE EAST WIND HATHA& BROKEN THEE IN THE MIDST OF THE SEAS.F# 27 THY RICHES, AND THY FAIRS, THY MERCHANDISE, THY MARINERS, AND THYN PILOTS, THY CALKERS, AND THE OCCUPIERS OF THY MERCHANDISE, AND ALL THY MEN OFM WAR, THAT ARE IN THEE, AND IN ALL THY COMPANY WHICH IS IN THE MIDST OF THEE,C> SHALL FALL INTO THE MIDST OF THE SEAS IN THE DAY OF THY RUIN.C# 28 THE SUBURBS SHALL SHAKE AT THE SOUND OF THE CRY OF THY PILOTS.LI# 29 AND ALL THAT HANDLE THE OAR, THE MARINERS, AND ALL THE PILOTS OF THEEG SEA, SHALL COME DOWN FROM THEIR SHIPS, THEY SHALL STAND UPON THE LAND; H# 30 AND SHALL CAUSE THEIR VOICE TO BE HEARD AGAINST THEE, AND SHALL CRYE BITTERLY, AND SHALL CAST UP DUST UPON THEIR HEADS, THEY SHALL WALLOW  THEMSELVES IN THE ASHES: M# 31 AND THEY SHALL MAKE THEMSELVES UTTERLY BALD FOR THEE, AND GIRD THEM WITHDL SACKCLOTH, AND THEY SHALL WEEP FOR THEE WITH BITTERNESS OF HEART AND BITTER WAILING.CH# 32 AND IN THEIR WAILING THEY SHALL TAKE UP A LAMENTATION FOR THEE, ANDM LAMENT OVER THEE, SAYING, WHAT CITY IS LIKE TYRUS, LIKE THE DESTROYED IN THEU MIDST OF THE SEA?J# 33 WHEN THY WARES WENT FORTH OUT OF THE SEAS, THOU FILLEDST MANY PEOPLE;N THOU DIDST ENRICH THE KINGS OF THE EARTH WITH THE MULTITUDE OF THY RICHES AND OF THY MERCHANDISE.K# 34 IN THE TIME WHEN THOU SHALT BE BROKEN BY THE SEAS IN THE DEPTHS OF THECL WATERS THY MERCHANDISE AND ALL THY COMPANY IN THE MIDST OF THEE SHALL FALL.L# 35 ALL THE INHABITANTS OF THE ISLES SHALL BE ASTONISHED AT THEE, AND THEIRI KINGS SHALL BE SORE AFRAID, THEY SHALL BE TROUBLED IN THEIR COUNTENANCE. G# 36 THE MERCHANTS AMONG THE PEOPLE SHALL HISS AT THEE; THOU SHALT BE A % TERROR, AND NEVER SHALT BE ANY MORE. = CHAPTER 28 S4# 1 THE WORD OF THE LORD CAME AGAIN UNTO ME, SAYING,F# 2 SON OF MAN, SAY UNTO THE PRINCE OF TYRUS, THUS SAITH THE LORD GOD;K BECAUSE THINE HEART IS LIFTED UP, AND THOU HAST SAID, I AM A GOD, I SIT INML THE SEAT OF GOD, IN THE MIDST OF THE SEAS; YET THOU ART A MAN, AND NOT GOD,1 THOUGH THOU SET THINE HEART AS THE HEART OF GOD:IM# 3 BEHOLD, THOU ART WISER THAN DANIEL; THERE IS NO SECRET THAT THEY CAN HIDEP FROM THEE:IF# 4 WITH THY WISDOM AND WITH THINE UNDERSTANDING THOU HAST GOTTEN THEE< RICHES, AND HAST GOTTEN GOLD AND SILVER INTO THY TREASURES:K# 5 BY THY GREAT WISDOM AND BY THY TRAFFICK HAST THOU INCREASED THY RICHES,4 AND THINE HEART IS LIFTED UP BECAUSE OF THY RICHES:K# 6 THEREFORE THUS SAITH THE LORD GOD; BECAUSE THOU HAST SET THINE HEART ASA THE HEART OF GOD;K# 7 BEHOLD, THEREFORE I WILL BRING STRANGERS UPON THEE, THE TERRIBLE OF THEWL NATIONS: AND THEY SHALL DRAW THEIR SWORDS AGAINST THE BEAUTY OF THY WISDOM,& AND THEY SHALL DEFILE THY BRIGHTNESS.K# 8 THEY SHALL BRING THEE DOWN TO THE PIT, AND THOU SHALT DIE THE DEATHS OFR. THEM THAT ARE SLAIN IN THE MIDST OF THE SEAS.L# 9 WILT THOU YET SAY BEFORE HIM THAT SLAYETH THEE, I AM GOD? BUT THOU SHALT< BE A MAN, AND NO GOD, IN THE HAND OF HIM THAT SLAYETH THEE.M# 10 THOU SHALT DIE THE DEATHS OF THE UNCIRCUMCISED BY THE HAND OF STRANGERS:L* FOR I HAVE SPOKEN IT, SAITH THE LORD GOD.8# 11 MOREOVER THE WORD OF THE LORD CAME UNTO ME, SAYING,K# 12 SON OF MAN, TAKE UP A LAMENTATION UPON THE KING OF TYRUS, AND SAY UNTOAK HIM, THUS SAITH THE LORD GOD; THOU SEALEST UP THE SUM, FULL OF WISDOM, ANDA PERFECT IN BEAUTY. K# 13 THOU HAST BEEN IN EDEN THE GARDEN OF GOD; EVERY PRECIOUS STONE WAS THYUL COVERING, THE SARDIUS, TOPAZ, AND THE DIAMOND, THE BERYL, THE ONYX, AND THED JASPER, THE SAPPHIRE, THE EMERALD, AND THE CARBUNCLE, AND GOLD: THEL WORKMANSHIP OF THY TABRETS AND OF THY PIPES WAS PREPARED IN THEE IN THE DAY THAT THOU WAST CREA00x={<<%X>%+%O-%TADATADATATED.M# 14 THOU ART THE ANOINTED CHERUB THAT COVERETH; AND I HAVE SET THEE SO: THOUTN WAST UPON THE HOLY MOUNTAIN OF GOD; THOU HAST WALKED UP AND DOWN IN THE MIDST OF THE STONES OF FIRE. L# 15 THOU WAST PERFECT IN THY WAYS FROM THE DAY THAT THOU WAST CREATED, TILL INIQUITY WAS FOUND IN THEE.K# 16 BY THE MULTITUDE OF THY MERCHANDISE THEY HAVE FILLED THE MIDST OF THEEAK WITH VIOLENCE, AND THOU HAST SINNED: THEREFORE I WILL CAST THEE AS PROFANEPM OUT OF THE MOUNTAIN OF GOD: AND I WILL DESTROY THEE, O COVERING CHERUB, FROMH! THE MIDST OF THE STONES OF FIRE.DM# 17 THINE HEART WAS LIFTED UP BECAUSE OF THY BEAUTY, THOU HAST CORRUPTED THYEK WISDOM BY REASON OF THY BRIGHTNESS: I WILL CAST THEE TO THE GROUND, I WILLI2 LAY THEE BEFORE KINGS, THAT THEY MAY BEHOLD THEE.L# 18 THOU HAST DEFILED THY SANCTUARIES BY THE MULTITUDE OF THINE INIQUITIES,N BY THE INIQUITY OF THY TRAFFICK; THEREFORE WILL I BRING FORTH A FIRE FROM THEM MIDST OF THEE, IT SHALL DEVOUR THEE, AND I WILL BRING THEE TO ASHES UPON THEH1 EARTH IN THE SIGHT OF ALL THEM THAT BEHOLD THEE.NJ# 19 ALL THEY THAT KNOW THEE AMONG THE PEOPLE SHALL BE ASTONISHED AT THEE:: THOU SHALT BE A TERROR, AND NEVER SHALT THOU BE ANY MORE.5# 20 AGAIN THE WORD OF THE LORD CAME UNTO ME, SAYING,NE# 21 SON OF MAN, SET THY FACE AGAINST ZIDON, AND PROPHESY AGAINST IT,BJ# 22 AND SAY, THUS SAITH THE LORD GOD; BEHOLD, I AM AGAINST THEE, O ZIDON;L AND I WILL BE GLORIFIED IN THE MIDST OF THEE: AND THEY SHALL KNOW THAT I AMD THE LORD, WHEN I SHALL HAVE EXECUTED JUDGMENTS IN HER, AND SHALL BE SANCTIFIED IN HER.EM# 23 FOR I WILL SEND INTO HER PESTILENCE, AND BLOOD INTO HER STREETS; AND THEK WOUNDED SHALL BE JUDGED IN THE MIDST OF HER BY THE SWORD UPON HER ON EVERYR. SIDE; AND THEY SHALL KNOW THAT I AM THE LORD.J# 24 AND THERE SHALL BE NO MORE A PRICKING BRIER UNTO THE HOUSE OF ISRAEL,M NOR ANY GRIEVING THORN OF ALL THAT ARE ROUND ABOUT THEM, THAT DESPISED THEM;O, AND THEY SHALL KNOW THAT I AM THE LORD GOD.L# 25 THUS SAITH THE LORD GOD; WHEN I SHALL HAVE GATHERED THE HOUSE OF ISRAELJ FROM THE PEOPLE AMONG WHOM THEY ARE SCATTERED, AND SHALL BE SANCTIFIED INM THEM IN THE SIGHT OF THE HEATHEN, THEN SHALL THEY DWELL IN THEIR LAND THAT I HAVE GIVEN TO MY SERVANT JACOB.K# 26 AND THEY SHALL DWELL SAFELY THEREIN, AND SHALL BUILD HOUSES, AND PLANT G VINEYARDS; YEA, THEY SHALL DWELL WITH CONFIDENCE, WHEN I HAVE EXECUTEDTL JUDGMENTS UPON ALL THOSE THAT DESPISE THEM ROUND ABOUT THEM; AND THEY SHALL# KNOW THAT I AM THE LORD THEIR GOD.O = CHAPTER 29 SK# 1 IN THE TENTH YEAR, IN THE TENTH MONTH, IN THE TWELFTH DAY OF THE MONTH,S+ THE WORD OF THE LORD CAME UNTO ME, SAYING,NH# 2 SON OF MAN, SET THY FACE AGAINST PHARAOH KING OF EGYPT, AND PROPHESY$ AGAINST HIM, AND AGAINST ALL EGYPT:G# 3 SPEAK, AND SAY, THUS SAITH THE LORD GOD; BEHOLD, I AM AGAINST THEE,VG PHARAOH KING OF EGYPT, THE GREAT DRAGON THAT LIETH IN THE MIDST OF HISJN RIVERS, WHICH HATH SAID, MY RIVER IS MINE OWN, AND I HAVE MADE IT FOR MYSELF.M# 4 BUT I WILL PUT HOOKS IN THY JAWS, AND I WILL CAUSE THE FISH OF THY RIVERS K TO STICK UNTO THY SCALES, AND I WILL BRING THEE UP OUT OF THE MIDST OF THYTD RIVERS, AND ALL THE FISH OF THY RIVERS SHALL STICK UNTO THY SCALES.K# 5 AND I WILL LEAVE THEE THROWN INTO THE WILDERNESS, THEE AND ALL THE FISH G OF THY RIVERS: THOU SHALT FALL UPON THE OPEN FIELDS; THOU SHALT NOT BEYL BROUGHT TOGETHER, NOR GATHERED: I HAVE GIVEN THEE FOR MEAT TO THE BEASTS OF* THE FIELD AND TO THE FOWLS OF THE HEAVEN.K# 6 AND ALL THE INHABITANTS OF EGYPT SHALL KNOW THAT I AM THE LORD, BECAUSEF7 THEY HAVE BEEN A STAFF OF REED TO THE HOUSE OF ISRAEL. K# 7 WHEN THEY TOOK HOLD OF THEE BY THY HAND, THOU DIDST BREAK, AND REND ALLLM THEIR SHOULDER: AND WHEN THEY LEANED UPON THEE, THOU BRAKEST, AND MADEST ALL  THEIR LOINS TO BE AT A STAND.H# 8 THEREFORE THUS SAITH THE LORD GOD; BEHOLD, I WILL BRING A SWORD UPON- THEE, AND CUT OFF MAN AND BEAST OUT OF THEE.MJ# 9 AND THE LAND OF EGYPT SHALL BE DESOLATE AND WASTE; AND THEY SHALL KNOWM THAT I AM THE LORD: BECAUSE HE HATH SAID, THE RIVER IS MINE, AN00x=<D%5%T6%! !D I HAVE MADEB IT.L# 10 BEHOLD, THEREFORE I AM AGAINST THEE, AND AGAINST THY RIVERS, AND I WILLK MAKE THE LAND OF EGYPT UTTERLY WASTE AND DESOLATE, FROM THE TOWER OF SYENE " EVEN UNTO THE BORDER OF ETHIOPIA.G# 11 NO FOOT OF MAN SHALL PASS THROUGH IT, NOR FOOT OF BEAST SHALL PASSO7 THROUGH IT, NEITHER SHALL IT BE INHABITED FORTY YEARS.MM# 12 AND I WILL MAKE THE LAND OF EGYPT DESOLATE IN THE MIDST OF THE COUNTRIESTM THAT ARE DESOLATE, AND HER CITIES AMONG THE CITIES THAT ARE LAID WASTE SHALL M BE DESOLATE FORTY YEARS: AND I WILL SCATTER THE EGYPTIANS AMONG THE NATIONS,I. AND WILL DISPERSE THEM THROUGH THE COUNTRIES.M# 13 YET THUS SAITH THE LORD GOD; AT THE END OF FORTY YEARS WILL I GATHER THE 7 EGYPTIANS FROM THE PEOPLE WHITHER THEY WERE SCATTERED:NJ# 14 AND I WILL BRING AGAIN THE CAPTIVITY OF EGYPT, AND WILL CAUSE THEM TOM RETURN INTO THE LAND OF PATHROS, INTO THE LAND OF THEIR HABITATION; AND THEY  SHALL BE THERE A BASE KINGDOM.NJ# 15 IT SHALL BE THE BASEST OF THE KINGDOMS; NEITHER SHALL IT EXALT ITSELFN ANY MORE ABOVE THE NATIONS: FOR I WILL DIMINISH THEM, THAT THEY SHALL NO MORE RULE OVER THE NATIONS.EI# 16 AND IT SHALL BE NO MORE THE CONFIDENCE OF THE HOUSE OF ISRAEL, WHICHEM BRINGETH THEIR INIQUITY TO REMEMBRANCE, WHEN THEY SHALL LOOK AFTER THEM: BUTL( THEY SHALL KNOW THAT I AM THE LORD GOD.M# 17 AND IT CAME TO PASS IN THE SEVEN AND TWENTIETH YEAR, IN THE FIRST MONTH,BJ IN THE FIRST DAY OF THE MONTH, THE WORD OF THE LORD CAME UNTO ME, SAYING,J# 18 SON OF MAN, NEBUCHADREZZAR KING OF BABYLON CAUSED HIS ARMY TO SERVE AN GREAT SERVICE AGAINST TYRUS: EVERY HEAD WAS MADE BALD, AND EVERY SHOULDER WASN PEELED: YET HAD HE NO WAGES, NOR HIS ARMY, FOR TYRUS, FOR THE SERVICE THAT HE HAD SERVED AGAINST IT:TM# 19 THEREFORE THUS SAITH THE LORD GOD; BEHOLD, I WILL GIVE THE LAND OF EGYPTMJ UNTO NEBUCHADREZZAR KING OF BABYLON; AND HE SHALL TAKE HER MULTITUDE, ANDK TAKE HER SPOIL, AND TAKE HER PREY; AND IT SHALL BE THE WAGES FOR HIS ARMY. J# 20 I HAVE GIVEN HIM THE LAND OF EGYPT FOR HIS LABOUR WHEREWITH HE SERVED= AGAINST IT, BECAUSE THEY WROUGHT FOR ME, SAITH THE LORD GOD.MK# 21 IN THAT DAY WILL I CAUSE THE HORN OF THE HOUSE OF ISRAEL TO BUD FORTH, M AND I WILL GIVE THEE THE OPENING OF THE MOUTH IN THE MIDST OF THEM; AND THEYU SHALL KNOW THAT I AM THE LORD.I = CHAPTER 30 D4# 1 THE WORD OF THE LORD CAME AGAIN UNTO ME, SAYING,M# 2 SON OF MAN, PROPHESY AND SAY, THUS SAITH THE LORD GOD; HOWL YE, WOE WORTHA THE DAY!AK# 3 FOR THE DAY IS NEAR, EVEN THE DAY OF THE LORD IS NEAR, A CLOUDY DAY; ITE" SHALL BE THE TIME OF THE HEATHEN.M# 4 AND THE SWORD SHALL COME UPON EGYPT, AND GREAT PAIN SHALL BE IN ETHIOPIA, L WHEN THE SLAIN SHALL FALL IN EGYPT, AND THEY SHALL TAKE AWAY HER MULTITUDE,* AND HER FOUNDATIONS SHALL BE BROKEN DOWN.M# 5 ETHIOPIA, AND LIBYA, AND LYDIA, AND ALL THE MINGLED PEOPLE, AND CHUB, ANDMJ THE MEN OF THE LAND THAT IS IN LEAGUE, SHALL FALL WITH THEM BY THE SWORD.H# 6 THUS SAITH THE LORD; THEY ALSO THAT UPHOLD EGYPT SHALL FALL; AND THEL PRIDE OF HER POWER SHALL COME DOWN: FROM THE TOWER OF SYENE SHALL THEY FALL( IN IT BY THE SWORD, SAITH THE LORD GOD.E# 7 AND THEY SHALL BE DESOLATE IN THE MIDST OF THE COUNTRIES THAT ARE N DESOLATE, AND HER CITIES SHALL BE IN THE MIDST OF THE CITIES THAT ARE WASTED.L# 8 AND THEY SHALL KNOW THAT I AM THE LORD, WHEN I HAVE SET A FIRE IN EGYPT,- AND WHEN ALL HER HELPERS SHALL BE DESTROYED.EF# 9 IN THAT DAY SHALL MESSENGERS GO FORTH FROM ME IN SHIPS TO MAKE THEK CARELESS ETHIOPIANS AFRAID, AND GREAT PAIN SHALL COME UPON THEM, AS IN THEW" DAY OF EGYPT: FOR, LO, IT COMETH.H# 10 THUS SAITH THE LORD GOD; I WILL ALSO MAKE THE MULTITUDE OF EGYPT TO5 CEASE BY THE HAND OF NEBUCHADREZZAR KING OF BABYLON.TF# 11 HE AND HIS PEOPLE WITH HIM, THE TERRIBLE OF THE NATIONS, SHALL BEM BROUGHT TO DESTROY THE LAND: AND THEY SHALL DRAW THEIR SWORDS AGAINST EGYPT,A" AND FILL THE LAND WITH THE SLAIN.K# 12 AND I WILL MAKE THE RIVERS DRY, AND SELL THE LAND INTO THE HAND OF THETM WICKED: AND I WILL MAKE THE LAND WASTE, AND ALL THAT IS THEREIN, BY THE HANDW) O00x={<<%X>%+%O-%TADATADATAF STRANGERS: I THE LORD HAVE SPOKEN IT.TM# 13 THUS SAITH THE LORD GOD; I WILL ALSO DESTROY THE IDOLS, AND I WILL CAUSEHN THEIR IMAGES TO CEASE OUT OF NOPH; AND THERE SHALL BE NO MORE A PRINCE OF THE; LAND OF EGYPT: AND I WILL PUT A FEAR IN THE LAND OF EGYPT.AJ# 14 AND I WILL MAKE PATHROS DESOLATE, AND WILL SET FIRE IN ZOAN, AND WILL EXECUTE JUDGMENTS IN NO.LL# 15 AND I WILL POUR MY FURY UPON SIN, THE STRENGTH OF EGYPT; AND I WILL CUT OFF THE MULTITUDE OF NO.AM# 16 AND I WILL SET FIRE IN EGYPT: SIN SHALL HAVE GREAT PAIN, AND NO SHALL BET4 RENT ASUNDER, AND NOPH SHALL HAVE DISTRESSES DAILY.M# 17 THE YOUNG MEN OF AVEN AND OF PIBESETH SHALL FALL BY THE SWORD: AND THESE CITIES SHALL GO INTO CAPTIVITY.L# 18 AT TEHAPHNEHES ALSO THE DAY SHALL BE DARKENED, WHEN I SHALL BREAK THEREL THE YOKES OF EGYPT: AND THE POMP OF HER STRENGTH SHALL CEASE IN HER: AS FORI HER, A CLOUD SHALL COVER HER, AND HER DAUGHTERS SHALL GO INTO CAPTIVITY.LJ# 19 THUS WILL I EXECUTE JUDGMENTS IN EGYPT: AND THEY SHALL KNOW THAT I AM THE LORD.I# 20 AND IT CAME TO PASS IN THE ELEVENTH YEAR, IN THE FIRST MONTH, IN THELJ SEVENTH DAY OF THE MONTH, THAT THE WORD OF THE LORD CAME UNTO ME, SAYING,L# 21 SON OF MAN, I HAVE BROKEN THE ARM OF PHARAOH KING OF EGYPT; AND, LO, ITK SHALL NOT BE BOUND UP TO BE HEALED, TO PUT A ROLLER TO BIND IT, TO MAKE ITF STRONG TO HOLD THE SWORD.L# 22 THEREFORE THUS SAITH THE LORD GOD; BEHOLD, I AM AGAINST PHARAOH KING OFM EGYPT, AND WILL BREAK HIS ARMS, THE STRONG, AND THAT WHICH WAS BROKEN; AND IA. WILL CAUSE THE SWORD TO FALL OUT OF HIS HAND.J# 23 AND I WILL SCATTER THE EGYPTIANS AMONG THE NATIONS, AND WILL DISPERSE THEM THROUGH THE COUNTRIES.L# 24 AND I WILL STRENGTHEN THE ARMS OF THE KING OF BABYLON, AND PUT MY SWORDK IN HIS HAND: BUT I WILL BREAK PHARAOHS ARMS, AND HE SHALL GROAN BEFORE HIMD, WITH THE GROANINGS OF A DEADLY WOUNDED MAN.K# 25 BUT I WILL STRENGTHEN THE ARMS OF THE KING OF BABYLON, AND THE ARMS OFN PHARAOH SHALL FALL DOWN; AND THEY SHALL KNOW THAT I AM THE LORD, WHEN I SHALLK PUT MY SWORD INTO THE HAND OF THE KING OF BABYLON, AND HE SHALL STRETCH ITG OUT UPON THE LAND OF EGYPT.J# 26 AND I WILL SCATTER THE EGYPTIANS AMONG THE NATIONS, AND DISPERSE THEM= AMONG THE COUNTRIES; AND THEY SHALL KNOW THAT I AM THE LORD.U = CHAPTER 31 PN# 1 AND IT CAME TO PASS IN THE ELEVENTH YEAR, IN THE THIRD MONTH, IN THE FIRSTB DAY OF THE MONTH, THAT THE WORD OF THE LORD CAME UNTO ME, SAYING,L# 2 SON OF MAN, SPEAK UNTO PHARAOH KING OF EGYPT, AND TO HIS MULTITUDE; WHOM ART THOU LIKE IN THY GREATNESS?L# 3 BEHOLD, THE ASSYRIAN WAS A CEDAR IN LEBANON WITH FAIR BRANCHES, AND WITHL A SHADOWING SHROUD, AND OF AN HIGH STATURE; AND HIS TOP WAS AMONG THE THICK BOUGHS.J# 4 THE WATERS MADE HIM GREAT, THE DEEP SET HIM UP ON HIGH WITH HER RIVERSN RUNNING ROUND ABOUT HIS PLANTS, AND SENT HER LITTLE RIVERS UNTO ALL THE TREES OF THE FIELD.J# 5 THEREFORE HIS HEIGHT WAS EXALTED ABOVE ALL THE TREES OF THE FIELD, ANDH HIS BOUGHS WERE MULTIPLIED, AND HIS BRANCHES BECAME LONG BECAUSE OF THE) MULTITUDE OF WATERS, WHEN HE SHOT FORTH.SI# 6 ALL THE FOWLS OF HEAVEN MADE THEIR NESTS IN HIS BOUGHS, AND UNDER HISRL BRANCHES DID ALL THE BEASTS OF THE FIELD BRING FORTH THEIR YOUNG, AND UNDER$ HIS SHADOW DWELT ALL GREAT NATIONS.M# 7 THUS WAS HE FAIR IN HIS GREATNESS, IN THE LENGTH OF HIS BRANCHES: FOR HISI ROOT WAS BY GREAT WATERS.J# 8 THE CEDARS IN THE GARDEN OF GOD COULD NOT HIDE HIM: THE FIR TREES WEREL NOT LIKE HIS BOUGHS, AND THE CHESTNUT TREES WERE NOT LIKE HIS BRANCHES; NOR? ANY TREE IN THE GARDEN OF GOD WAS LIKE UNTO HIM IN HIS BEAUTY.LJ# 9 I HAVE MADE HIM FAIR BY THE MULTITUDE OF HIS BRANCHES: SO THAT ALL THE; TREES OF EDEN, THAT WERE IN THE GARDEN OF GOD, ENVIED HIM.AK# 10 THEREFORE THUS SAITH THE LORD GOD; BECAUSE THOU HAST LIFTED UP THYSELFRM IN HEIGHT, AND HE HATH SHOT UP HIS TOP AMONG THE THICK BOUGHS, AND HIS HEART  IS LIFTED UP IN HIS HEIGHT;J# 11 I HAVE THEREFORE DELIVERED HIM INTO THE HAND OF THE MIGHTY ONE OF THEF HEATHEN; HE SHALL SURELY DEAL WITH HIM: I HAVE DRIVEN HIM OUT FOR H00x=x=D%5%T6%! !IS WICKEDNESS.K# 12 AND STRANGERS, THE TERRIBLE OF THE NATIONS, HAVE CUT HIM OFF, AND HAVEAM LEFT HIM: UPON THE MOUNTAINS AND IN ALL THE VALLEYS HIS BRANCHES ARE FALLEN,HL AND HIS BOUGHS ARE BROKEN BY ALL THE RIVERS OF THE LAND; AND ALL THE PEOPLE? OF THE EARTH ARE GONE DOWN FROM HIS SHADOW, AND HAVE LEFT HIM.GH# 13 UPON HIS RUIN SHALL ALL THE FOWLS OF THE HEAVEN REMAIN, AND ALL THE0 BEASTS OF THE FIELD SHALL BE UPON HIS BRANCHES:M# 14 TO THE END THAT NONE OF ALL THE TREES BY THE WATERS EXALT THEMSELVES FOREI THEIR HEIGHT, NEITHER SHOOT UP THEIR TOP AMONG THE THICK BOUGHS, NEITHERAM THEIR TREES STAND UP IN THEIR HEIGHT, ALL THAT DRINK WATER: FOR THEY ARE ALL L DELIVERED UNTO DEATH, TO THE NETHER PARTS OF THE EARTH, IN THE MIDST OF THE4 CHILDREN OF MEN, WITH THEM THAT GO DOWN TO THE PIT.I# 15 THUS SAITH THE LORD GOD; IN THE DAY WHEN HE WENT DOWN TO THE GRAVE IRK CAUSED A MOURNING: I COVERED THE DEEP FOR HIM, AND I RESTRAINED THE FLOODS M THEREOF, AND THE GREAT WATERS WERE STAYED: AND I CAUSED LEBANON TO MOURN FORH5 HIM, AND ALL THE TREES OF THE FIELD FAINTED FOR HIM.SJ# 16 I MADE THE NATIONS TO SHAKE AT THE SOUND OF HIS FALL, WHEN I CAST HIMM DOWN TO HELL WITH THEM THAT DESCEND INTO THE PIT: AND ALL THE TREES OF EDEN, L THE CHOICE AND BEST OF LEBANON, ALL THAT DRINK WATER, SHALL BE COMFORTED IN THE NETHER PARTS OF THE EARTH.EL# 17 THEY ALSO WENT DOWN INTO HELL WITH HIM UNTO THEM THAT BE SLAIN WITH THEL SWORD; AND THEY THAT WERE HIS ARM, THAT DWELT UNDER HIS SHADOW IN THE MIDST OF THE HEATHEN.L# 18 TO WHOM ART THOU THUS LIKE IN GLORY AND IN GREATNESS AMONG THE TREES OFL EDEN? YET SHALT THOU BE BROUGHT DOWN WITH THE TREES OF EDEN UNTO THE NETHERJ PARTS OF THE EARTH: THOU SHALT LIE IN THE MIDST OF THE UNCIRCUMCISED WITHN THEM THAT BE SLAIN BY THE SWORD. THIS IS PHARAOH AND ALL HIS MULTITUDE, SAITH THE LORD GOD. = CHAPTER 32 7I# 1 AND IT CAME TO PASS IN THE TWELFTH YEAR, IN THE TWELFTH MONTH, IN THESH FIRST DAY OF THE MONTH, THAT THE WORD OF THE LORD CAME UNTO ME, SAYING,M# 2 SON OF MAN, TAKE UP A LAMENTATION FOR PHARAOH KING OF EGYPT, AND SAY UNTOMK HIM, THOU ART LIKE A YOUNG LION OF THE NATIONS, AND THOU ART AS A WHALE INNK THE SEAS: AND THOU CAMEST FORTH WITH THY RIVERS, AND TROUBLEDST THE WATERSI* WITH THY FEET, AND FOULEDST THEIR RIVERS.I# 3 THUS SAITH THE LORD GOD; I WILL THEREFORE SPREAD OUT MY NET OVER THEEEG WITH A COMPANY OF MANY PEOPLE; AND THEY SHALL BRING THEE UP IN MY NET.,I# 4 THEN WILL I LEAVE THEE UPON THE LAND, I WILL CAST THEE FORTH UPON THESL OPEN FIELD, AND WILL CAUSE ALL THE FOWLS OF THE HEAVEN TO REMAIN UPON THEE,9 AND I WILL FILL THE BEASTS OF THE WHOLE EARTH WITH THEE.AJ# 5 AND I WILL LAY THY FLESH UPON THE MOUNTAINS, AND FILL THE VALLEYS WITH THY HEIGHT.L# 6 I WILL ALSO WATER WITH THY BLOOD THE LAND WHEREIN THOU SWIMMEST, EVEN TO5 THE MOUNTAINS; AND THE RIVERS SHALL BE FULL OF THEE.EH# 7 AND WHEN I SHALL PUT THEE OUT, I WILL COVER THE HEAVEN, AND MAKE THEN STARS THEREOF DARK; I WILL COVER THE SUN WITH A CLOUD, AND THE MOON SHALL NOT GIVE HER LIGHT.G# 8 ALL THE BRIGHT LIGHTS OF HEAVEN WILL I MAKE DARK OVER THEE, AND SETL, DARKNESS UPON THY LAND, SAITH THE LORD GOD.E# 9 I WILL ALSO VEX THE HEARTS OF MANY PEOPLE, WHEN I SHALL BRING THYHM DESTRUCTION AMONG THE NATIONS, INTO THE COUNTRIES WHICH THOU HAST NOT KNOWN.MJ# 10 YEA, I WILL MAKE MANY PEOPLE AMAZED AT THEE, AND THEIR KINGS SHALL BEJ HORRIBLY AFRAID FOR THEE, WHEN I SHALL BRANDISH MY SWORD BEFORE THEM; ANDN THEY SHALL TREMBLE AT EVERY MOMENT, EVERY MAN FOR HIS OWN LIFE, IN THE DAY OF THY FALL.M# 11 FOR THUS SAITH THE LORD GOD; THE SWORD OF THE KING OF BABYLON SHALL COMES UPON THEE.NH# 12 BY THE SWORDS OF THE MIGHTY WILL I CAUSE THY MULTITUDE TO FALL, THEN TERRIBLE OF THE NATIONS, ALL OF THEM: AND THEY SHALL SPOIL THE POMP OF EGYPT,2 AND ALL THE MULTITUDE THEREOF SHALL BE DESTROYED.M# 13 I WILL DESTROY ALSO ALL THE BEASTS THEREOF FROM BESIDE THE GREAT WATERS; M NEITHER SHALL THE FOOT OF MAN TROUBLE THEM ANY MORE, NOR THE HOOFS OF BEASTSE TROUBLE THEM.K# 14 THEN WILL I MAKE THEI00x={<<%X>%+%O-%TADATADATAR WATERS DEEP, AND CAUSE THEIR RIVERS TO RUN LIKEW OIL, SAITH THE LORD GOD.SK# 15 WHEN I SHALL MAKE THE LAND OF EGYPT DESOLATE, AND THE COUNTRY SHALL BEUN DESTITUTE OF THAT WHEREOF IT WAS FULL, WHEN I SHALL SMITE ALL THEM THAT DWELL2 THEREIN, THEN SHALL THEY KNOW THAT I AM THE LORD.K# 16 THIS IS THE LAMENTATION WHEREWITH THEY SHALL LAMENT HER: THE DAUGHTERSSL OF THE NATIONS SHALL LAMENT HER: THEY SHALL LAMENT FOR HER, EVEN FOR EGYPT,/ AND FOR ALL HER MULTITUDE, SAITH THE LORD GOD.EJ# 17 IT CAME TO PASS ALSO IN THE TWELFTH YEAR, IN THE FIFTEENTH DAY OF THE7 MONTH, THAT THE WORD OF THE LORD CAME UNTO ME, SAYING,EJ# 18 SON OF MAN, WAIL FOR THE MULTITUDE OF EGYPT, AND CAST THEM DOWN, EVENK HER, AND THE DAUGHTERS OF THE FAMOUS NATIONS, UNTO THE NETHER PARTS OF THET, EARTH, WITH THEM THAT GO DOWN INTO THE PIT.F# 19 WHOM DOST THOU PASS IN BEAUTY? GO DOWN, AND BE THOU LAID WITH THE UNCIRCUMCISED.YM# 20 THEY SHALL FALL IN THE MIDST OF THEM THAT ARE SLAIN BY THE SWORD: SHE ISO9 DELIVERED TO THE SWORD: DRAW HER AND ALL HER MULTITUDES. L# 21 THE STRONG AMONG THE MIGHTY SHALL SPEAK TO HIM OUT OF THE MIDST OF HELLN WITH THEM THAT HELP HIM: THEY ARE GONE DOWN, THEY LIE UNCIRCUMCISED, SLAIN BY THE SWORD.HJ# 22 ASSHUR IS THERE AND ALL HER COMPANY: HIS GRAVES ARE ABOUT HIM: ALL OF! THEM SLAIN, FALLEN BY THE SWORD:K# 23 WHOSE GRAVES ARE SET IN THE SIDES OF THE PIT, AND HER COMPANY IS ROUNDRM ABOUT HER GRAVE: ALL OF THEM SLAIN, FALLEN BY THE SWORD, WHICH CAUSED TERRORR IN THE LAND OF THE LIVING. K# 24 THERE IS ELAM AND ALL HER MULTITUDE ROUND ABOUT HER GRAVE, ALL OF THEMAN SLAIN, FALLEN BY THE SWORD, WHICH ARE GONE DOWN UNCIRCUMCISED INTO THE NETHERM PARTS OF THE EARTH, WHICH CAUSED THEIR TERROR IN THE LAND OF THE LIVING; YETD? HAVE THEY BORNE THEIR SHAME WITH THEM THAT GO DOWN TO THE PIT.FC# 25 THEY HAVE SET HER A BED IN THE MIDST OF THE SLAIN WITH ALL HERIL MULTITUDE: HER GRAVES ARE ROUND ABOUT HIM: ALL OF THEM UNCIRCUMCISED, SLAINL BY THE SWORD: THOUGH THEIR TERROR WAS CAUSED IN THE LAND OF THE LIVING, YETL HAVE THEY BORNE THEIR SHAME WITH THEM THAT GO DOWN TO THE PIT: HE IS PUT IN! THE MIDST OF THEM THAT BE SLAIN.CI# 26 THERE IS MESHECH, TUBAL, AND ALL HER MULTITUDE: HER GRAVES ARE ROUNDIM ABOUT HIM: ALL OF THEM UNCIRCUMCISED, SLAIN BY THE SWORD, THOUGH THEY CAUSEDD( THEIR TERROR IN THE LAND OF THE LIVING.B# 27 AND THEY SHALL NOT LIE WITH THE MIGHTY THAT ARE FALLEN OF THEJ UNCIRCUMCISED, WHICH ARE GONE DOWN TO HELL WITH THEIR WEAPONS OF WAR: ANDM THEY HAVE LAID THEIR SWORDS UNDER THEIR HEADS, BUT THEIR INIQUITIES SHALL BERK UPON THEIR BONES, THOUGH THEY WERE THE TERROR OF THE MIGHTY IN THE LAND OFA THE LIVING.K# 28 YEA, THOU SHALT BE BROKEN IN THE MIDST OF THE UNCIRCUMCISED, AND SHALTA- LIE WITH THEM THAT ARE SLAIN WITH THE SWORD.HJ# 29 THERE IS EDOM, HER KINGS, AND ALL HER PRINCES, WHICH WITH THEIR MIGHTG ARE LAID BY THEM THAT WERE SLAIN BY THE SWORD: THEY SHALL LIE WITH THEC6 UNCIRCUMCISED, AND WITH THEM THAT GO DOWN TO THE PIT.K# 30 THERE BE THE PRINCES OF THE NORTH, ALL OF THEM, AND ALL THE ZIDONIANS,SJ WHICH ARE GONE DOWN WITH THE SLAIN; WITH THEIR TERROR THEY ARE ASHAMED OFN THEIR MIGHT; AND THEY LIE UNCIRCUMCISED WITH THEM THAT BE SLAIN BY THE SWORD,8 AND BEAR THEIR SHAME WITH THEM THAT GO DOWN TO THE PIT.K# 31 PHARAOH SHALL SEE THEM, AND SHALL BE COMFORTED OVER ALL HIS MULTITUDE,HF EVEN PHARAOH AND ALL HIS ARMY SLAIN BY THE SWORD, SAITH THE LORD GOD.K# 32 FOR I HAVE CAUSED MY TERROR IN THE LAND OF THE LIVING: AND HE SHALL BETI LAID IN THE MIDST OF THE UNCIRCUMCISED WITH THEM THAT ARE SLAIN WITH THEI? SWORD, EVEN PHARAOH AND ALL HIS MULTITUDE, SAITH THE LORD GOD.E = CHAPTER 33 G4# 1 AGAIN THE WORD OF THE LORD CAME UNTO ME, SAYING,L# 2 SON OF MAN, SPEAK TO THE CHILDREN OF THY PEOPLE, AND SAY UNTO THEM, WHENM I BRING THE SWORD UPON A LAND, IF THE PEOPLE OF THE LAND TAKE A MAN OF THEIR ( COASTS, AND SET HIM FOR THEIR WATCHMAN:K# 3 IF WHEN HE SEETH THE SWORD COME UPON THE LAND, HE BLOW THE TRUMPET, ANDI WARN THE PEOPLE;BL# 4 THEN WHOSOEVER HEARETH THE SOUND OF THE 00x==D%5%T6%! !TRUMPET, AND TAKETH NOT WARNING;L IF THE SWORD COME, AND TAKE HIM AWAY, HIS BLOOD SHALL BE UPON HIS OWN HEAD.L# 5 HE HEARD THE SOUND OF THE TRUMPET, AND TOOK NOT WARNING; HIS BLOOD SHALL@ BE UPON HIM. BUT HE THAT TAKETH WARNING SHALL DELIVER HIS SOUL.M# 6 BUT IF THE WATCHMAN SEE THE SWORD COME, AND BLOW NOT THE TRUMPET, AND THETN PEOPLE BE NOT WARNED; IF THE SWORD COME, AND TAKE ANY PERSON FROM AMONG THEM,F HE IS TAKEN AWAY IN HIS INIQUITY; BUT HIS BLOOD WILL I REQUIRE AT THE WATCHMANS HAND.G# 7 SO THOU, O SON OF MAN, I HAVE SET THEE A WATCHMAN UNTO THE HOUSE OFMK ISRAEL; THEREFORE THOU SHALT HEAR THE WORD AT MY MOUTH, AND WARN THEM FROMR ME.L# 8 WHEN I SAY UNTO THE WICKED, O WICKED MAN, THOU SHALT SURELY DIE; IF THOUM DOST NOT SPEAK TO WARN THE WICKED FROM HIS WAY, THAT WICKED MAN SHALL DIE INW: HIS INIQUITY; BUT HIS BLOOD WILL I REQUIRE AT THINE HAND.K# 9 NEVERTHELESS, IF THOU WARN THE WICKED OF HIS WAY TO TURN FROM IT; IF HEUF DO NOT TURN FROM HIS WAY, HE SHALL DIE IN HIS INIQUITY; BUT THOU HAST DELIVERED THY SOUL.J# 10 THEREFORE, O THOU SON OF MAN, SPEAK UNTO THE HOUSE OF ISRAEL; THUS YEJ SPEAK, SAYING, IF OUR TRANSGRESSIONS AND OUR SINS BE UPON US, AND WE PINE' AWAY IN THEM, HOW SHOULD WE THEN LIVE?IL# 11 SAY UNTO THEM, AS I LIVE, SAITH THE LORD GOD, I HAVE NO PLEASURE IN THEN DEATH OF THE WICKED; BUT THAT THE WICKED TURN FROM HIS WAY AND LIVE: TURN YE,E TURN YE FROM YOUR EVIL WAYS; FOR WHY WILL YE DIE, O HOUSE OF ISRAEL? I# 12 THEREFORE, THOU SON OF MAN, SAY UNTO THE CHILDREN OF THY PEOPLE, THERG RIGHTEOUSNESS OF THE RIGHTEOUS SHALL NOT DELIVER HIM IN THE DAY OF HISIN TRANSGRESSION: AS FOR THE WICKEDNESS OF THE WICKED, HE SHALL NOT FALL THEREBYL IN THE DAY THAT HE TURNETH FROM HIS WICKEDNESS; NEITHER SHALL THE RIGHTEOUSB BE ABLE TO LIVE FOR HIS RIGHTEOUSNESS IN THE DAY THAT HE SINNETH.H# 13 WHEN I SHALL SAY TO THE RIGHTEOUS, THAT HE SHALL SURELY LIVE; IF HEM TRUST TO HIS OWN RIGHTEOUSNESS, AND COMMIT INIQUITY, ALL HIS RIGHTEOUSNESSES I SHALL NOT BE REMEMBERED; BUT FOR HIS INIQUITY THAT HE HATH COMMITTED, HEO SHALL DIE FOR IT.I# 14 AGAIN, WHEN I SAY UNTO THE WICKED, THOU SHALT SURELY DIE; IF HE TURN 5 FROM HIS SIN, AND DO THAT WHICH IS LAWFUL AND RIGHT;HM# 15 IF THE WICKED RESTORE THE PLEDGE, GIVE AGAIN THAT HE HAD ROBBED, WALK INEL THE STATUTES OF LIFE, WITHOUT COMMITTING INIQUITY; HE SHALL SURELY LIVE, HE SHALL NOT DIE.TL# 16 NONE OF HIS SINS THAT HE HATH COMMITTED SHALL BE MENTIONED UNTO HIM: HE@ HATH DONE THAT WHICH IS LAWFUL AND RIGHT; HE SHALL SURELY LIVE.J# 17 YET THE CHILDREN OF THY PEOPLE SAY, THE WAY OF THE LORD IS NOT EQUAL:) BUT AS FOR THEM, THEIR WAY IS NOT EQUAL. F# 18 WHEN THE RIGHTEOUS TURNETH FROM HIS RIGHTEOUSNESS, AND COMMITTETH% INIQUITY, HE SHALL EVEN DIE THEREBY.,L# 19 BUT IF THE WICKED TURN FROM HIS WICKEDNESS, AND DO THAT WHICH IS LAWFUL" AND RIGHT, HE SHALL LIVE THEREBY.J# 20 YET YE SAY, THE WAY OF THE LORD IS NOT EQUAL. O YE HOUSE OF ISRAEL, I) WILL JUDGE YOU EVERY ONE AFTER HIS WAYS.HK# 21 AND IT CAME TO PASS IN THE TWELFTH YEAR OF OUR CAPTIVITY, IN THE TENTHPG MONTH, IN THE FIFTH DAY OF THE MONTH, THAT ONE THAT HAD ESCAPED OUT OF 5 JERUSALEM CAME UNTO ME, SAYING, THE CITY IS SMITTEN.SK# 22 NOW THE HAND OF THE LORD WAS UPON ME IN THE EVENING, AFORE HE THAT WASBK ESCAPED CAME; AND HAD OPENED MY MOUTH, UNTIL HE CAME TO ME IN THE MORNING;R1 AND MY MOUTH WAS OPENED, AND I WAS NO MORE DUMB.W4# 23 THEN THE WORD OF THE LORD CAME UNTO ME, SAYING,L# 24 SON OF MAN, THEY THAT INHABIT THOSE WASTES OF THE LAND OF ISRAEL SPEAK,N SAYING, ABRAHAM WAS ONE, AND HE INHERITED THE LAND: BUT WE ARE MANY; THE LAND IS GIVEN US FOR INHERITANCE.TM# 25 WHEREFORE SAY UNTO THEM, THUS SAITH THE LORD GOD; YE EAT WITH THE BLOOD, N AND LIFT UP YOUR EYES TOWARD YOUR IDOLS, AND SHED BLOOD: AND SHALL YE POSSESS THE LAND?K# 26 YE STAND UPON YOUR SWORD, YE WORK ABOMINATION, AND YE DEFILE EVERY ONE 4 HIS NEIGHBOURS WIFE: AND SHALL YE POSSESS THE LAND?M# 27 SAY THOU THUS UNTO THEM, THUS SAITH THE LORD GOD; AS I LIVE, SURELY THEY L THAT ARE IN THE WASTES SHALL 00x={<<%X>%+%O-%TADATADATAFALL BY THE SWORD, AND HIM THAT IS IN THE OPENN FIELD WILL I GIVE TO THE BEASTS TO BE DEVOURED, AND THEY THAT BE IN THE FORTS. AND IN THE CAVES SHALL DIE OF THE PESTILENCE.H# 28 FOR I WILL LAY THE LAND MOST DESOLATE, AND THE POMP OF HER STRENGTHL SHALL CEASE; AND THE MOUNTAINS OF ISRAEL SHALL BE DESOLATE, THAT NONE SHALL PASS THROUGH.L# 29 THEN SHALL THEY KNOW THAT I AM THE LORD, WHEN I HAVE LAID THE LAND MOSTF DESOLATE BECAUSE OF ALL THEIR ABOMINATIONS WHICH THEY HAVE COMMITTED.H# 30 ALSO, THOU SON OF MAN, THE CHILDREN OF THY PEOPLE STILL ARE TALKINGK AGAINST THEE BY THE WALLS AND IN THE DOORS OF THE HOUSES, AND SPEAK ONE TODN ANOTHER, EVERY ONE TO HIS BROTHER, SAYING, COME, I PRAY YOU, AND HEAR WHAT IS* THE WORD THAT COMETH FORTH FROM THE LORD.K# 31 AND THEY COME UNTO THEE AS THE PEOPLE COMETH, AND THEY SIT BEFORE THEE K AS MY PEOPLE, AND THEY HEAR THY WORDS, BUT THEY WILL NOT DO THEM: FOR WITHLC THEIR MOUTH THEY SHEW MUCH LOVE, BUT THEIR HEART GOETH AFTER THEIR  COVETOUSNESS.I# 32 AND, LO, THOU ART UNTO THEM AS A VERY LOVELY SONG OF ONE THAT HATH ANM PLEASANT VOICE, AND CAN PLAY WELL ON AN INSTRUMENT: FOR THEY HEAR THY WORDS,R BUT THEY DO THEM NOT.K# 33 AND WHEN THIS COMETH TO PASS, (LO, IT WILL COME,) THEN SHALL THEY KNOWR% THAT A PROPHET HATH BEEN AMONG THEM.H = CHAPTER 34 E2# 1 AND THE WORD OF THE LORD CAME UNTO ME, SAYING,K# 2 SON OF MAN, PROPHESY AGAINST THE SHEPHERDS OF ISRAEL, PROPHESY, AND SAYEE UNTO THEM, THUS SAITH THE LORD GOD UNTO THE SHEPHERDS; WOE BE TO THE K SHEPHERDS OF ISRAEL THAT DO FEED THEMSELVES! SHOULD NOT THE SHEPHERDS FEEDE THE FLOCKS?J# 3 YE EAT THE FAT, AND YE CLOTHE YOU WITH THE WOOL, YE KILL THEM THAT ARE FED: BUT YE FEED NOT THE FLOCK.L# 4 THE DISEASED HAVE YE NOT STRENGTHENED, NEITHER HAVE YE HEALED THAT WHICHJ WAS SICK, NEITHER HAVE YE BOUND UP THAT WHICH WAS BROKEN, NEITHER HAVE YEL BROUGHT AGAIN THAT WHICH WAS DRIVEN AWAY, NEITHER HAVE YE SOUGHT THAT WHICH> WAS LOST; BUT WITH FORCE AND WITH CRUELTY HAVE YE RULED THEM.J# 5 AND THEY WERE SCATTERED, BECAUSE THERE IS NO SHEPHERD: AND THEY BECAME? MEAT TO ALL THE BEASTS OF THE FIELD, WHEN THEY WERE SCATTERED. J# 6 MY SHEEP WANDERED THROUGH ALL THE MOUNTAINS, AND UPON EVERY HIGH HILL:I YEA, MY FLOCK WAS SCATTERED UPON ALL THE FACE OF THE EARTH, AND NONE DIDH SEARCH OR SEEK AFTER THEM.B7# 7 THEREFORE, YE SHEPHERDS, HEAR THE WORD OF THE LORD;AM# 8 AS I LIVE, SAITH THE LORD GOD, SURELY BECAUSE MY FLOCK BECAME A PREY, ANDBG MY FLOCK BECAME MEAT TO EVERY BEAST OF THE FIELD, BECAUSE THERE WAS NOTN SHEPHERD, NEITHER DID MY SHEPHERDS SEARCH FOR MY FLOCK, BUT THE SHEPHERDS FED" THEMSELVES, AND FED NOT MY FLOCK;9# 9 THEREFORE, O YE SHEPHERDS, HEAR THE WORD OF THE LORD;OL# 10 THUS SAITH THE LORD GOD; BEHOLD, I AM AGAINST THE SHEPHERDS; AND I WILLI REQUIRE MY FLOCK AT THEIR HAND, AND CAUSE THEM TO CEASE FROM FEEDING THE,H FLOCK; NEITHER SHALL THE SHEPHERDS FEED THEMSELVES ANY MORE; FOR I WILLG DELIVER MY FLOCK FROM THEIR MOUTH, THAT THEY MAY NOT BE MEAT FOR THEM.OH# 11 FOR THUS SAITH THE LORD GOD; BEHOLD, I, EVEN I, WILL BOTH SEARCH MY SHEEP, AND SEEK THEM OUT.H# 12 AS A SHEPHERD SEEKETH OUT HIS FLOCK IN THE DAY THAT HE IS AMONG HISM SHEEP THAT ARE SCATTERED; SO WILL I SEEK OUT MY SHEEP, AND WILL DELIVER THEMAM OUT OF ALL PLACES WHERE THEY HAVE BEEN SCATTERED IN THE CLOUDY AND DARK DAY.EH# 13 AND I WILL BRING THEM OUT FROM THE PEOPLE, AND GATHER THEM FROM THEI COUNTRIES, AND WILL BRING THEM TO THEIR OWN LAND, AND FEED THEM UPON THE J MOUNTAINS OF ISRAEL BY THE RIVERS, AND IN ALL THE INHABITED PLACES OF THE COUNTRY.OG# 14 I WILL FEED THEM IN A GOOD PASTURE, AND UPON THE HIGH MOUNTAINS OFHN ISRAEL SHALL THEIR FOLD BE: THERE SHALL THEY LIE IN A GOOD FOLD, AND IN A FAT6 PASTURE SHALL THEY FEED UPON THE MOUNTAINS OF ISRAEL.L# 15 I WILL FEED MY FLOCK, AND I WILL CAUSE THEM TO LIE DOWN, SAITH THE LORD GOD.NK# 16 I WILL SEEK THAT WHICH WAS LOST, AND BRING AGAIN THAT WHICH WAS DRIVENIM AWAY, AND WILL BIND UP THAT WHICH WAS BROKEN, AND WILL STRENGTHEN THAT WHICH K WAS SICK: BUT I WILL DESTRO00x==D%5%T6%! !Y THE FAT AND THE STRONG; I WILL FEED THEM WITHT JUDGMENT.I# 17 AND AS FOR YOU, O MY FLOCK, THUS SAITH THE LORD GOD; BEHOLD, I JUDGEE> BETWEEN CATTLE AND CATTLE, BETWEEN THE RAMS AND THE HE GOATS.M# 18 SEEMETH IT A SMALL THING UNTO YOU TO HAVE EATEN UP THE GOOD PASTURE, BUTAL YE MUST TREAD DOWN WITH YOUR FEET THE RESIDUE OF YOUR PASTURES? AND TO HAVEG DRUNK OF THE DEEP WATERS, BUT YE MUST FOUL THE RESIDUE WITH YOUR FEET?TM# 19 AND AS FOR MY FLOCK, THEY EAT THAT WHICH YE HAVE TRODDEN WITH YOUR FEET;O9 AND THEY DRINK THAT WHICH YE HAVE FOULED WITH YOUR FEET..I# 20 THEREFORE THUS SAITH THE LORD GOD UNTO THEM; BEHOLD, I, EVEN I, WILLE: JUDGE BETWEEN THE FAT CATTLE AND BETWEEN THE LEAN CATTLE.K# 21 BECAUSE YE HAVE THRUST WITH SIDE AND WITH SHOULDER, AND PUSHED ALL THEE> DISEASED WITH YOUR HORNS, TILL YE HAVE SCATTERED THEM ABROAD;L# 22 THEREFORE WILL I SAVE MY FLOCK, AND THEY SHALL NO MORE BE A PREY; AND I& WILL JUDGE BETWEEN CATTLE AND CATTLE.K# 23 AND I WILL SET UP ONE SHEPHERD OVER THEM, AND HE SHALL FEED THEM, EVENTF MY SERVANT DAVID; HE SHALL FEED THEM, AND HE SHALL BE THEIR SHEPHERD.J# 24 AND I THE LORD WILL BE THEIR GOD, AND MY SERVANT DAVID A PRINCE AMONG! THEM; I THE LORD HAVE SPOKEN IT.CK# 25 AND I WILL MAKE WITH THEM A COVENANT OF PEACE, AND WILL CAUSE THE EVILED BEASTS TO CEASE OUT OF THE LAND: AND THEY SHALL DWELL SAFELY IN THE$ WILDERNESS, AND SLEEP IN THE WOODS.L# 26 AND I WILL MAKE THEM AND THE PLACES ROUND ABOUT MY HILL A BLESSING; ANDN I WILL CAUSE THE SHOWER TO COME DOWN IN HIS SEASON; THERE SHALL BE SHOWERS OF BLESSING.I# 27 AND THE TREE OF THE FIELD SHALL YIELD HER FRUIT, AND THE EARTH SHALLHN YIELD HER INCREASE, AND THEY SHALL BE SAFE IN THEIR LAND, AND SHALL KNOW THATN I AM THE LORD, WHEN I HAVE BROKEN THE BANDS OF THEIR YOKE, AND DELIVERED THEM9 OUT OF THE HAND OF THOSE THAT SERVED THEMSELVES OF THEM.LM# 28 AND THEY SHALL NO MORE BE A PREY TO THE HEATHEN, NEITHER SHALL THE BEASTHJ OF THE LAND DEVOUR THEM; BUT THEY SHALL DWELL SAFELY, AND NONE SHALL MAKE THEM AFRAID.SI# 29 AND I WILL RAISE UP FOR THEM A PLANT OF RENOWN, AND THEY SHALL BE NODM MORE CONSUMED WITH HUNGER IN THE LAND, NEITHER BEAR THE SHAME OF THE HEATHENL ANY MORE.J# 30 THUS SHALL THEY KNOW THAT I THE LORD THEIR GOD AM WITH THEM, AND THATC THEY, EVEN THE HOUSE OF ISRAEL, ARE MY PEOPLE, SAITH THE LORD GOD.SJ# 31 AND YE MY FLOCK, THE FLOCK OF MY PASTURE, ARE MEN, AND I AM YOUR GOD, SAITH THE LORD GOD. = CHAPTER 35 H7# 1 MOREOVER THE WORD OF THE LORD CAME UNTO ME, SAYING, I# 2 SON OF MAN, SET THY FACE AGAINST MOUNT SEIR, AND PROPHESY AGAINST IT,NH# 3 AND SAY UNTO IT, THUS SAITH THE LORD GOD; BEHOLD, O MOUNT SEIR, I AMM AGAINST THEE, AND I WILL STRETCH OUT MINE HAND AGAINST THEE, AND I WILL MAKET THEE MOST DESOLATE.K# 4 I WILL LAY THY CITIES WASTE, AND THOU SHALT BE DESOLATE, AND THOU SHALT  KNOW THAT I AM THE LORD.FL# 5 BECAUSE THOU HAST HAD A PERPETUAL HATRED, AND HAST SHED THE BLOOD OF THEL CHILDREN OF ISRAEL BY THE FORCE OF THE SWORD IN THE TIME OF THEIR CALAMITY,, IN THE TIME THAT THEIR INIQUITY HAD AN END:M# 6 THEREFORE, AS I LIVE, SAITH THE LORD GOD, I WILL PREPARE THEE UNTO BLOOD,ON AND BLOOD SHALL PURSUE THEE: SITH THOU HAST NOT HATED BLOOD, EVEN BLOOD SHALL PURSUE THEE.LK# 7 THUS WILL I MAKE MOUNT SEIR MOST DESOLATE, AND CUT OFF FROM IT HIM THAT $ PASSETH OUT AND HIM THAT RETURNETH.J# 8 AND I WILL FILL HIS MOUNTAINS WITH HIS SLAIN MEN: IN THY HILLS, AND INL THY VALLEYS, AND IN ALL THY RIVERS, SHALL THEY FALL THAT ARE SLAIN WITH THE SWORD.RL# 9 I WILL MAKE THEE PERPETUAL DESOLATIONS, AND THY CITIES SHALL NOT RETURN:& AND YE SHALL KNOW THAT I AM THE LORD.L# 10 BECAUSE THOU HAST SAID, THESE TWO NATIONS AND THESE TWO COUNTRIES SHALL= BE MINE, AND WE WILL POSSESS IT; WHEREAS THE LORD WAS THERE:TJ# 11 THEREFORE, AS I LIVE, SAITH THE LORD GOD, I WILL EVEN DO ACCORDING TOI THINE ANGER, AND ACCORDING TO THINE ENVY WHICH THOU HAST USED OUT OF THYHJ HATRED AGAINST THEM; AND I WILL MAKE MYSELF KNOWN AMONG THEM, WHEN I HAVE JUDGED THEE.J# 12 AND THOU SHALT KNOW THAT I AM00x={<<%X>%+%O-%TADATADATA THE LORD, AND THAT I HAVE HEARD ALL THYL BLASPHEMIES WHICH THOU HAST SPOKEN AGAINST THE MOUNTAINS OF ISRAEL, SAYING,6 THEY ARE LAID DESOLATE, THEY ARE GIVEN US TO CONSUME.I# 13 THUS WITH YOUR MOUTH YE HAVE BOASTED AGAINST ME, AND HAVE MULTIPLIED * YOUR WORDS AGAINST ME: I HAVE HEARD THEM.I# 14 THUS SAITH THE LORD GOD; WHEN THE WHOLE EARTH REJOICETH, I WILL MAKES THEE DESOLATE.HM# 15 AS THOU DIDST REJOICE AT THE INHERITANCE OF THE HOUSE OF ISRAEL, BECAUSEEI IT WAS DESOLATE, SO WILL I DO UNTO THEE: THOU SHALT BE DESOLATE, O MOUNTDN SEIR, AND ALL IDUMEA, EVEN ALL OF IT: AND THEY SHALL KNOW THAT I AM THE LORD. = CHAPTER 36 RM# 1 ALSO, THOU SON OF MAN, PROPHESY UNTO THE MOUNTAINS OF ISRAEL, AND SAY, YEV0 MOUNTAINS OF ISRAEL, HEAR THE WORD OF THE LORD:J# 2 THUS SAITH THE LORD GOD; BECAUSE THE ENEMY HATH SAID AGAINST YOU, AHA,5 EVEN THE ANCIENT HIGH PLACES ARE OURS IN POSSESSION:J# 3 THEREFORE PROPHESY AND SAY, THUS SAITH THE LORD GOD; BECAUSE THEY HAVEJ MADE YOU DESOLATE, AND SWALLOWED YOU UP ON EVERY SIDE, THAT YE MIGHT BE AL POSSESSION UNTO THE RESIDUE OF THE HEATHEN, AND YE ARE TAKEN UP IN THE LIPS- OF TALKERS, AND ARE AN INFAMY OF THE PEOPLE:,J# 4 THEREFORE, YE MOUNTAINS OF ISRAEL, HEAR THE WORD OF THE LORD GOD; THUSM SAITH THE LORD GOD TO THE MOUNTAINS, AND TO THE HILLS, TO THE RIVERS, AND TO J THE VALLEYS, TO THE DESOLATE WASTES, AND TO THE CITIES THAT ARE FORSAKEN,N WHICH BECAME A PREY AND DERISION TO THE RESIDUE OF THE HEATHEN THAT ARE ROUND ABOUT; M# 5 THEREFORE THUS SAITH THE LORD GOD; SURELY IN THE FIRE OF MY JEALOUSY HAVENK I SPOKEN AGAINST THE RESIDUE OF THE HEATHEN, AND AGAINST ALL IDUMEA, WHICHAN HAVE APPOINTED MY LAND INTO THEIR POSSESSION WITH THE JOY OF ALL THEIR HEART,2 WITH DESPITEFUL MINDS, TO CAST IT OUT FOR A PREY.F# 6 PROPHESY THEREFORE CONCERNING THE LAND OF ISRAEL, AND SAY UNTO THEK MOUNTAINS, AND TO THE HILLS, TO THE RIVERS, AND TO THE VALLEYS, THUS SAITH N THE LORD GOD; BEHOLD, I HAVE SPOKEN IN MY JEALOUSY AND IN MY FURY, BECAUSE YE% HAVE BORNE THE SHAME OF THE HEATHEN: M# 7 THEREFORE THUS SAITH THE LORD GOD; I HAVE LIFTED UP MINE HAND, SURELY THE 9 HEATHEN THAT ARE ABOUT YOU, THEY SHALL BEAR THEIR SHAME.OJ# 8 BUT YE, O MOUNTAINS OF ISRAEL, YE SHALL SHOOT FORTH YOUR BRANCHES, ANDG YIELD YOUR FRUIT TO MY PEOPLE OF ISRAEL; FOR THEY ARE AT HAND TO COME. H# 9 FOR, BEHOLD, I AM FOR YOU, AND I WILL TURN UNTO YOU, AND YE SHALL BE TILLED AND SOWN:UK# 10 AND I WILL MULTIPLY MEN UPON YOU, ALL THE HOUSE OF ISRAEL, EVEN ALL OF H IT: AND THE CITIES SHALL BE INHABITED, AND THE WASTES SHALL BE BUILDED:L# 11 AND I WILL MULTIPLY UPON YOU MAN AND BEAST; AND THEY SHALL INCREASE ANDN BRING FRUIT: AND I WILL SETTLE YOU AFTER YOUR OLD ESTATES, AND WILL DO BETTERH UNTO YOU THAN AT YOUR BEGINNINGS: AND YE SHALL KNOW THAT I AM THE LORD.L# 12 YEA, I WILL CAUSE MEN TO WALK UPON YOU, EVEN MY PEOPLE ISRAEL; AND THEYK SHALL POSSESS THEE, AND THOU SHALT BE THEIR INHERITANCE, AND THOU SHALT NOM% MORE HENCEFORTH BEREAVE THEM OF MEN.VL# 13 THUS SAITH THE LORD GOD; BECAUSE THEY SAY UNTO YOU, THOU LAND DEVOUREST' UP MEN, AND HAST BEREAVED THY NATIONS: M# 14 THEREFORE THOU SHALT DEVOUR MEN NO MORE, NEITHER BEREAVE THY NATIONS ANY  MORE, SAITH THE LORD GOD.J# 15 NEITHER WILL I CAUSE MEN TO HEAR IN THEE THE SHAME OF THE HEATHEN ANYK MORE, NEITHER SHALT THOU BEAR THE REPROACH OF THE PEOPLE ANY MORE, NEITHERAC SHALT THOU CAUSE THY NATIONS TO FALL ANY MORE, SAITH THE LORD GOD.E8# 16 MOREOVER THE WORD OF THE LORD CAME UNTO ME, SAYING,G# 17 SON OF MAN, WHEN THE HOUSE OF ISRAEL DWELT IN THEIR OWN LAND, THEYVL DEFILED IT BY THEIR OWN WAY AND BY THEIR DOINGS: THEIR WAY WAS BEFORE ME AS$ THE UNCLEANNESS OF A REMOVED WOMAN.J# 18 WHEREFORE I POURED MY FURY UPON THEM FOR THE BLOOD THAT THEY HAD SHEDC UPON THE LAND, AND FOR THEIR IDOLS WHEREWITH THEY HAD POLLUTED IT:EL# 19 AND I SCATTERED THEM AMONG THE HEATHEN, AND THEY WERE DISPERSED THROUGHM THE COUNTRIES: ACCORDING TO THEIR WAY AND ACCORDING TO THEIR DOINGS I JUDGEDM THEM.M# 20 AND WHEN THEY ENTERED UNTO THE HEATHEN, WHITHER THE00x==D%5%T6%! !Y WENT, THEY PROFANEDTL MY HOLY NAME, WHEN THEY SAID TO THEM, THESE ARE THE PEOPLE OF THE LORD, AND ARE GONE FORTH OUT OF HIS LAND.E# 21 BUT I HAD PITY FOR MINE HOLY NAME, WHICH THE HOUSE OF ISRAEL HADT/ PROFANED AMONG THE HEATHEN, WHITHER THEY WENT. J# 22 THEREFORE SAY UNTO THE HOUSE OF ISRAEL, THUS SAITH THE LORD GOD; I DOJ NOT THIS FOR YOUR SAKES, O HOUSE OF ISRAEL, BUT FOR MINE HOLY NAMES SAKE,; WHICH YE HAVE PROFANED AMONG THE HEATHEN, WHITHER YE WENT. M# 23 AND I WILL SANCTIFY MY GREAT NAME, WHICH WAS PROFANED AMONG THE HEATHEN,,M WHICH YE HAVE PROFANED IN THE MIDST OF THEM; AND THE HEATHEN SHALL KNOW THAT L I AM THE LORD, SAITH THE LORD GOD, WHEN I SHALL BE SANCTIFIED IN YOU BEFORE THEIR EYES.J# 24 FOR I WILL TAKE YOU FROM AMONG THE HEATHEN, AND GATHER YOU OUT OF ALL2 COUNTRIES, AND WILL BRING YOU INTO YOUR OWN LAND.K# 25 THEN WILL I SPRINKLE CLEAN WATER UPON YOU, AND YE SHALL BE CLEAN: FROMHB ALL YOUR FILTHINESS, AND FROM ALL YOUR IDOLS, WILL I CLEANSE YOU.I# 26 A NEW HEART ALSO WILL I GIVE YOU, AND A NEW SPIRIT WILL I PUT WITHINYM YOU: AND I WILL TAKE AWAY THE STONY HEART OUT OF YOUR FLESH, AND I WILL GIVEH YOU AN HEART OF FLESH.DE# 27 AND I WILL PUT MY SPIRIT WITHIN YOU, AND CAUSE YOU TO WALK IN MYL7 STATUTES, AND YE SHALL KEEP MY JUDGMENTS, AND DO THEM.AM# 28 AND YE SHALL DWELL IN THE LAND THAT I GAVE TO YOUR FATHERS; AND YE SHALLL& BE MY PEOPLE, AND I WILL BE YOUR GOD.J# 29 I WILL ALSO SAVE YOU FROM ALL YOUR UNCLEANNESSES: AND I WILL CALL FOR< THE CORN, AND WILL INCREASE IT, AND LAY NO FAMINE UPON YOU.G# 30 AND I WILL MULTIPLY THE FRUIT OF THE TREE, AND THE INCREASE OF THERK FIELD, THAT YE SHALL RECEIVE NO MORE REPROACH OF FAMINE AMONG THE HEATHEN.IM# 31 THEN SHALL YE REMEMBER YOUR OWN EVIL WAYS, AND YOUR DOINGS THAT WERE NOTUK GOOD, AND SHALL LOTHE YOURSELVES IN YOUR OWN SIGHT FOR YOUR INIQUITIES ANDU FOR YOUR ABOMINATIONS.L# 32 NOT FOR YOUR SAKES DO I THIS, SAITH THE LORD GOD, BE IT KNOWN UNTO YOU:@ BE ASHAMED AND CONFOUNDED FOR YOUR OWN WAYS, O HOUSE OF ISRAEL.L# 33 THUS SAITH THE LORD GOD; IN THE DAY THAT I SHALL HAVE CLEANSED YOU FROMJ ALL YOUR INIQUITIES I WILL ALSO CAUSE YOU TO DWELL IN THE CITIES, AND THE WASTES SHALL BE BUILDED.NJ# 34 AND THE DESOLATE LAND SHALL BE TILLED, WHEREAS IT LAY DESOLATE IN THE SIGHT OF ALL THAT PASSED BY.YG# 35 AND THEY SHALL SAY, THIS LAND THAT WAS DESOLATE IS BECOME LIKE THEOH GARDEN OF EDEN; AND THE WASTE AND DESOLATE AND RUINED CITIES ARE BECOME FENCED, AND ARE INHABITED.FI# 36 THEN THE HEATHEN THAT ARE LEFT ROUND ABOUT YOU SHALL KNOW THAT I THE K LORD BUILD THE RUINED PLACES, AND PLANT THAT THAT WAS DESOLATE: I THE LORDL" HAVE SPOKEN IT, AND I WILL DO IT.M# 37 THUS SAITH THE LORD GOD; I WILL YET FOR THIS BE ENQUIRED OF BY THE HOUSEDJ OF ISRAEL, TO DO IT FOR THEM; I WILL INCREASE THEM WITH MEN LIKE A FLOCK.J# 38 AS THE HOLY FLOCK, AS THE FLOCK OF JERUSALEM IN HER SOLEMN FEASTS; SON SHALL THE WASTE CITIES BE FILLED WITH FLOCKS OF MEN: AND THEY SHALL KNOW THAT I AM THE LORD.T = CHAPTER 37 M# 1 THE HAND OF THE LORD WAS UPON ME, AND CARRIED ME OUT IN THE SPIRIT OF THEAJ LORD, AND SET ME DOWN IN THE MIDST OF THE VALLEY WHICH WAS FULL OF BONES,K# 2 AND CAUSED ME TO PASS BY THEM ROUND ABOUT: AND, BEHOLD, THERE WERE VERYB6 MANY IN THE OPEN VALLEY; AND, LO, THEY WERE VERY DRY.L# 3 AND HE SAID UNTO ME, SON OF MAN, CAN THESE BONES LIVE? AND I ANSWERED, O LORD GOD, THOU KNOWEST.M# 4 AGAIN HE SAID UNTO ME, PROPHESY UPON THESE BONES, AND SAY UNTO THEM, O YE & DRY BONES, HEAR THE WORD OF THE LORD.L# 5 THUS SAITH THE LORD GOD UNTO THESE BONES; BEHOLD, I WILL CAUSE BREATH TO# ENTER INTO YOU, AND YE SHALL LIVE: I# 6 AND I WILL LAY SINEWS UPON YOU, AND WILL BRING UP FLESH UPON YOU, ANDOL COVER YOU WITH SKIN, AND PUT BREATH IN YOU, AND YE SHALL LIVE; AND YE SHALL KNOW THAT I AM THE LORD. H# 7 SO I PROPHESIED AS I WAS COMMANDED: AND AS I PROPHESIED, THERE WAS AL NOISE, AND BEHOLD A SHAKING, AND THE BONES CAME TOGETHER, BONE TO HIS BONE.J# 8 AND WHEN I BEHELD, LO, THE SINEWS AND THE FLESH CAME UP UPON THEM, AND> THE00x={<<%X>%+%O-%TADATADATA SKIN COVERED THEM ABOVE: BUT THERE WAS NO BREATH IN THEM.K# 9 THEN SAID HE UNTO ME, PROPHESY UNTO THE WIND, PROPHESY, SON OF MAN, ANDNN SAY TO THE WIND, THUS SAITH THE LORD GOD; COME FROM THE FOUR WINDS, O BREATH,2 AND BREATHE UPON THESE SLAIN, THAT THEY MAY LIVE.K# 10 SO I PROPHESIED AS HE COMMANDED ME, AND THE BREATH CAME INTO THEM, ANDEC THEY LIVED, AND STOOD UP UPON THEIR FEET, AN EXCEEDING GREAT ARMY.NI# 11 THEN HE SAID UNTO ME, SON OF MAN, THESE BONES ARE THE WHOLE HOUSE OF L ISRAEL: BEHOLD, THEY SAY, OUR BONES ARE DRIED, AND OUR HOPE IS LOST: WE ARE CUT OFF FOR OUR PARTS.EM# 12 THEREFORE PROPHESY AND SAY UNTO THEM, THUS SAITH THE LORD GOD; BEHOLD, OII MY PEOPLE, I WILL OPEN YOUR GRAVES, AND CAUSE YOU TO COME UP OUT OF YOURS/ GRAVES, AND BRING YOU INTO THE LAND OF ISRAEL.DL# 13 AND YE SHALL KNOW THAT I AM THE LORD, WHEN I HAVE OPENED YOUR GRAVES, O2 MY PEOPLE, AND BROUGHT YOU UP OUT OF YOUR GRAVES,M# 14 AND SHALL PUT MY SPIRIT IN YOU, AND YE SHALL LIVE, AND I SHALL PLACE YOUEI IN YOUR OWN LAND: THEN SHALL YE KNOW THAT I THE LORD HAVE SPOKEN IT, ANDT PERFORMED IT, SAITH THE LORD.5# 15 THE WORD OF THE LORD CAME AGAIN UNTO ME, SAYING,DK# 16 MOREOVER, THOU SON OF MAN, TAKE THEE ONE STICK, AND WRITE UPON IT, FORUH JUDAH, AND FOR THE CHILDREN OF ISRAEL HIS COMPANIONS: THEN TAKE ANOTHERK STICK, AND WRITE UPON IT, FOR JOSEPH, THE STICK OF EPHRAIM AND FOR ALL THE HOUSE OF ISRAEL HIS COMPANIONS:K# 17 AND JOIN THEM ONE TO ANOTHER INTO ONE STICK; AND THEY SHALL BECOME ONEC IN THINE HAND.OL# 18 AND WHEN THE CHILDREN OF THY PEOPLE SHALL SPEAK UNTO THEE, SAYING, WILT- THOU NOT SHEW US WHAT THOU MEANEST BY THESE?AM# 19 SAY UNTO THEM, THUS SAITH THE LORD GOD; BEHOLD, I WILL TAKE THE STICK OF,F JOSEPH, WHICH IS IN THE HAND OF EPHRAIM, AND THE TRIBES OF ISRAEL HISL FELLOWS, AND WILL PUT THEM WITH HIM, EVEN WITH THE STICK OF JUDAH, AND MAKE4 THEM ONE STICK, AND THEY SHALL BE ONE IN MINE HAND.L# 20 AND THE STICKS WHEREON THOU WRITEST SHALL BE IN THINE HAND BEFORE THEIR EYES.H# 21 AND SAY UNTO THEM, THUS SAITH THE LORD GOD; BEHOLD, I WILL TAKE THEJ CHILDREN OF ISRAEL FROM AMONG THE HEATHEN, WHITHER THEY BE GONE, AND WILL? GATHER THEM ON EVERY SIDE, AND BRING THEM INTO THEIR OWN LAND:IF# 22 AND I WILL MAKE THEM ONE NATION IN THE LAND UPON THE MOUNTAINS OFN ISRAEL; AND ONE KING SHALL BE KING TO THEM ALL: AND THEY SHALL BE NO MORE TWOJ NATIONS, NEITHER SHALL THEY BE DIVIDED INTO TWO KINGDOMS ANY MORE AT ALL.M# 23 NEITHER SHALL THEY DEFILE THEMSELVES ANY MORE WITH THEIR IDOLS, NOR WITHSJ THEIR DETESTABLE THINGS, NOR WITH ANY OF THEIR TRANSGRESSIONS: BUT I WILLN SAVE THEM OUT OF ALL THEIR DWELLINGPLACES, WHEREIN THEY HAVE SINNED, AND WILLC CLEANSE THEM: SO SHALL THEY BE MY PEOPLE, AND I WILL BE THEIR GOD.EJ# 24 AND DAVID MY SERVANT SHALL BE KING OVER THEM; AND THEY ALL SHALL HAVEM ONE SHEPHERD: THEY SHALL ALSO WALK IN MY JUDGMENTS, AND OBSERVE MY STATUTES, AND DO THEM. E# 25 AND THEY SHALL DWELL IN THE LAND THAT I HAVE GIVEN UNTO JACOB MYSM SERVANT, WHEREIN YOUR FATHERS HAVE DWELT; AND THEY SHALL DWELL THEREIN, EVENAH THEY, AND THEIR CHILDREN, AND THEIR CHILDRENS CHILDREN FOR EVER: AND MY. SERVANT DAVID SHALL BE THEIR PRINCE FOR EVER.G# 26 MOREOVER I WILL MAKE A COVENANT OF PEACE WITH THEM; IT SHALL BE ANAN EVERLASTING COVENANT WITH THEM: AND I WILL PLACE THEM, AND MULTIPLY THEM, AND9 WILL SET MY SANCTUARY IN THE MIDST OF THEM FOR EVERMORE.TI# 27 MY TABERNACLE ALSO SHALL BE WITH THEM: YEA, I WILL BE THEIR GOD, AND  THEY SHALL BE MY PEOPLE.AK# 28 AND THE HEATHEN SHALL KNOW THAT I THE LORD DO SANCTIFY ISRAEL, WHEN MYE6 SANCTUARY SHALL BE IN THE MIDST OF THEM FOR EVERMORE. = CHAPTER 38 S2# 1 AND THE WORD OF THE LORD CAME UNTO ME, SAYING,M# 2 SON OF MAN, SET THY FACE AGAINST GOG, THE LAND OF MAGOG, THE CHIEF PRINCEG0 OF MESHECH AND TUBAL, AND PROPHESY AGAINST HIM,K# 3 AND SAY, THUS SAITH THE LORD GOD; BEHOLD, I AM AGAINST THEE, O GOG, THE# CHIEF PRINCE OF MESHECH AND TUBAL: L# 4 AND I WILL TURN THEE BACK, AND PUT HOOKS INTO THY JAWS, AND I WILL BRINGN THEE FORTH, AND ALL T00x==D%5%T6%! !HINE ARMY, HORSES AND HORSEMEN, ALL OF THEM CLOTHED WITHL ALL SORTS OF ARMOUR, EVEN A GREAT COMPANY WITH BUCKLERS AND SHIELDS, ALL OF THEM HANDLING SWORDS:F# 5 PERSIA, ETHIOPIA, AND LIBYA WITH THEM; ALL OF THEM WITH SHIELD AND HELMET:J# 6 GOMER, AND ALL HIS BANDS; THE HOUSE OF TOGARMAH OF THE NORTH QUARTERS,. AND ALL HIS BANDS: AND MANY PEOPLE WITH THEE.M# 7 BE THOU PREPARED, AND PREPARE FOR THYSELF, THOU, AND ALL THY COMPANY THATA8 ARE ASSEMBLED UNTO THEE, AND BE THOU A GUARD UNTO THEM.I# 8 AFTER MANY DAYS THOU SHALT BE VISITED: IN THE LATTER YEARS THOU SHALTRL COME INTO THE LAND THAT IS BROUGHT BACK FROM THE SWORD, AND IS GATHERED OUTH OF MANY PEOPLE, AGAINST THE MOUNTAINS OF ISRAEL, WHICH HAVE BEEN ALWAYSH WASTE: BUT IT IS BROUGHT FORTH OUT OF THE NATIONS, AND THEY SHALL DWELL SAFELY ALL OF THEM.J# 9 THOU SHALT ASCEND AND COME LIKE A STORM, THOU SHALT BE LIKE A CLOUD TOD COVER THE LAND, THOU, AND ALL THY BANDS, AND MANY PEOPLE WITH THEE.J# 10 THUS SAITH THE LORD GOD; IT SHALL ALSO COME TO PASS, THAT AT THE SAMEL TIME SHALL THINGS COME INTO THY MIND, AND THOU SHALT THINK AN EVIL THOUGHT:I# 11 AND THOU SHALT SAY, I WILL GO UP TO THE LAND OF UNWALLED VILLAGES; IUJ WILL GO TO THEM THAT ARE AT REST, THAT DWELL SAFELY, ALL OF THEM DWELLING2 WITHOUT WALLS, AND HAVING NEITHER BARS NOR GATES,E# 12 TO TAKE A SPOIL, AND TO TAKE A PREY; TO TURN THINE HAND UPON THEKN DESOLATE PLACES THAT ARE NOW INHABITED, AND UPON THE PEOPLE THAT ARE GATHEREDJ OUT OF THE NATIONS, WHICH HAVE GOTTEN CATTLE AND GOODS, THAT DWELL IN THE MIDST OF THE LAND.SH# 13 SHEBA, AND DEDAN, AND THE MERCHANTS OF TARSHISH, WITH ALL THE YOUNGM LIONS THEREOF, SHALL SAY UNTO THEE, ART THOU COME TO TAKE A SPOIL? HAST THOUTL GATHERED THY COMPANY TO TAKE A PREY? TO CARRY AWAY SILVER AND GOLD, TO TAKE. AWAY CATTLE AND GOODS, TO TAKE A GREAT SPOIL?J# 14 THEREFORE, SON OF MAN, PROPHESY AND SAY UNTO GOG, THUS SAITH THE LORDJ GOD; IN THAT DAY WHEN MY PEOPLE OF ISRAEL DWELLETH SAFELY, SHALT THOU NOT KNOW IT?HI# 15 AND THOU SHALT COME FROM THY PLACE OUT OF THE NORTH PARTS, THOU, ANDSN MANY PEOPLE WITH THEE, ALL OF THEM RIDING UPON HORSES, A GREAT COMPANY, AND A MIGHTY ARMY:NL# 16 AND THOU SHALT COME UP AGAINST MY PEOPLE OF ISRAEL, AS A CLOUD TO COVERK THE LAND; IT SHALL BE IN THE LATTER DAYS, AND I WILL BRING THEE AGAINST MYOJ LAND, THAT THE HEATHEN MAY KNOW ME, WHEN I SHALL BE SANCTIFIED IN THEE, O GOG, BEFORE THEIR EYES.K# 17 THUS SAITH THE LORD GOD; ART THOU HE OF WHOM I HAVE SPOKEN IN OLD TIME K BY MY SERVANTS THE PROPHETS OF ISRAEL, WHICH PROPHESIED IN THOSE DAYS MANYN, YEARS THAT I WOULD BRING THEE AGAINST THEM?K# 18 AND IT SHALL COME TO PASS AT THE SAME TIME WHEN GOG SHALL COME AGAINSTEI THE LAND OF ISRAEL, SAITH THE LORD GOD, THAT MY FURY SHALL COME UP IN MYE FACE.L# 19 FOR IN MY JEALOUSY AND IN THE FIRE OF MY WRATH HAVE I SPOKEN, SURELY IN? THAT DAY THERE SHALL BE A GREAT SHAKING IN THE LAND OF ISRAEL;EH# 20 SO THAT THE FISHES OF THE SEA, AND THE FOWLS OF THE HEAVEN, AND THEL BEASTS OF THE FIELD, AND ALL CREEPING THINGS THAT CREEP UPON THE EARTH, ANDM ALL THE MEN THAT ARE UPON THE FACE OF THE EARTH, SHALL SHAKE AT MY PRESENCE,TM AND THE MOUNTAINS SHALL BE THROWN DOWN, AND THE STEEP PLACES SHALL FALL, ANDH% EVERY WALL SHALL FALL TO THE GROUND.UI# 21 AND I WILL CALL FOR A SWORD AGAINST HIM THROUGHOUT ALL MY MOUNTAINS,IC SAITH THE LORD GOD: EVERY MANS SWORD SHALL BE AGAINST HIS BROTHER.AL# 22 AND I WILL PLEAD AGAINST HIM WITH PESTILENCE AND WITH BLOOD; AND I WILLJ RAIN UPON HIM, AND UPON HIS BANDS, AND UPON THE MANY PEOPLE THAT ARE WITHE HIM, AN OVERFLOWING RAIN, AND GREAT HAILSTONES, FIRE, AND BRIMSTONE.HL# 23 THUS WILL I MAGNIFY MYSELF, AND SANCTIFY MYSELF; AND I WILL BE KNOWN INB THE EYES OF MANY NATIONS, AND THEY SHALL KNOW THAT I AM THE LORD. = CHAPTER 39 LM# 1 THEREFORE, THOU SON OF MAN, PROPHESY AGAINST GOG, AND SAY, THUS SAITH THEEL LORD GOD; BEHOLD, I AM AGAINST THEE, O GOG, THE CHIEF PRINCE OF MESHECH AND TUBAL:SM# 2 AND I WILL TURN THEE BACK, AND LEAVE BUT THE SIXTH PART OF THEE, AND WILLN00x={<<%X>%+%O-%TADATADATAI CAUSE THEE TO COME UP FROM THE NORTH PARTS, AND WILL BRING THEE UPON THEO MOUNTAINS OF ISRAEL:EG# 3 AND I WILL SMITE THY BOW OUT OF THY LEFT HAND, AND WILL CAUSE THINEN& ARROWS TO FALL OUT OF THY RIGHT HAND.J# 4 THOU SHALT FALL UPON THE MOUNTAINS OF ISRAEL, THOU, AND ALL THY BANDS,N AND THE PEOPLE THAT IS WITH THEE: I WILL GIVE THEE UNTO THE RAVENOUS BIRDS OF; EVERY SORT, AND TO THE BEASTS OF THE FIELD TO BE DEVOURED.SM# 5 THOU SHALT FALL UPON THE OPEN FIELD: FOR I HAVE SPOKEN IT, SAITH THE LORDN GOD.EL# 6 AND I WILL SEND A FIRE ON MAGOG, AND AMONG THEM THAT DWELL CARELESSLY IN3 THE ISLES: AND THEY SHALL KNOW THAT I AM THE LORD.HM# 7 SO WILL I MAKE MY HOLY NAME KNOWN IN THE MIDST OF MY PEOPLE ISRAEL; AND I L WILL NOT LET THEM POLLUTE MY HOLY NAME ANY MORE: AND THE HEATHEN SHALL KNOW, THAT I AM THE LORD, THE HOLY ONE IN ISRAEL.K# 8 BEHOLD, IT IS COME, AND IT IS DONE, SAITH THE LORD GOD; THIS IS THE DAY  WHEREOF I HAVE SPOKEN.TM# 9 AND THEY THAT DWELL IN THE CITIES OF ISRAEL SHALL GO FORTH, AND SHALL SETNN ON FIRE AND BURN THE WEAPONS, BOTH THE SHIELDS AND THE BUCKLERS, THE BOWS ANDN THE ARROWS, AND THE HANDSTAVES, AND THE SPEARS, AND THEY SHALL BURN THEM WITH FIRE SEVEN YEARS:K# 10 SO THAT THEY SHALL TAKE NO WOOD OUT OF THE FIELD, NEITHER CUT DOWN ANYNN OUT OF THE FORESTS; FOR THEY SHALL BURN THE WEAPONS WITH FIRE: AND THEY SHALLN SPOIL THOSE THAT SPOILED THEM, AND ROB THOSE THAT ROBBED THEM, SAITH THE LORD GOD.PM# 11 AND IT SHALL COME TO PASS IN THAT DAY, THAT I WILL GIVE UNTO GOG A PLACELK THERE OF GRAVES IN ISRAEL, THE VALLEY OF THE PASSENGERS ON THE EAST OF THE N SEA: AND IT SHALL STOP THE NOSES OF THE PASSENGERS: AND THERE SHALL THEY BURYJ GOG AND ALL HIS MULTITUDE: AND THEY SHALL CALL IT THE VALLEY OF HAMONGOG.M# 12 AND SEVEN MONTHS SHALL THE HOUSE OF ISRAEL BE BURYING OF THEM, THAT THEYA MAY CLEANSE THE LAND.M# 13 YEA, ALL THE PEOPLE OF THE LAND SHALL BURY THEM; AND IT SHALL BE TO THEMH@ A RENOWN THE DAY THAT I SHALL BE GLORIFIED, SAITH THE LORD GOD.J# 14 AND THEY SHALL SEVER OUT MEN OF CONTINUAL EMPLOYMENT, PASSING THROUGHL THE LAND TO BURY WITH THE PASSENGERS THOSE THAT REMAIN UPON THE FACE OF THEG EARTH, TO CLEANSE IT: AFTER THE END OF SEVEN MONTHS SHALL THEY SEARCH.AI# 15 AND THE PASSENGERS THAT PASS THROUGH THE LAND, WHEN ANY SEETH A MANSFL BONE, THEN SHALL HE SET UP A SIGN BY IT, TILL THE BURIERS HAVE BURIED IT IN THE VALLEY OF HAMONGOG.L# 16 AND ALSO THE NAME OF THE CITY SHALL BE HAMONAH. THUS SHALL THEY CLEANSE THE LAND.D# 17 AND, THOU SON OF MAN, THUS SAITH THE LORD GOD; SPEAK UNTO EVERYJ FEATHERED FOWL, AND TO EVERY BEAST OF THE FIELD, ASSEMBLE YOURSELVES, ANDN COME; GATHER YOURSELVES ON EVERY SIDE TO MY SACRIFICE THAT I DO SACRIFICE FORJ YOU, EVEN A GREAT SACRIFICE UPON THE MOUNTAINS OF ISRAEL, THAT YE MAY EAT FLESH, AND DRINK BLOOD.M# 18 YE SHALL EAT THE FLESH OF THE MIGHTY, AND DRINK THE BLOOD OF THE PRINCESEH OF THE EARTH, OF RAMS, OF LAMBS, AND OF GOATS, OF BULLOCKS, ALL OF THEM FATLINGS OF BASHAN.E# 19 AND YE SHALL EAT FAT TILL YE BE FULL, AND DRINK BLOOD TILL YE BEO: DRUNKEN, OF MY SACRIFICE WHICH I HAVE SACRIFICED FOR YOU.G# 20 THUS YE SHALL BE FILLED AT MY TABLE WITH HORSES AND CHARIOTS, WITHI9 MIGHTY MEN, AND WITH ALL MEN OF WAR, SAITH THE LORD GOD.UM# 21 AND I WILL SET MY GLORY AMONG THE HEATHEN, AND ALL THE HEATHEN SHALL SEE J MY JUDGMENT THAT I HAVE EXECUTED, AND MY HAND THAT I HAVE LAID UPON THEM.M# 22 SO THE HOUSE OF ISRAEL SHALL KNOW THAT I AM THE LORD THEIR GOD FROM THAT  DAY AND FORWARD.DL# 23 AND THE HEATHEN SHALL KNOW THAT THE HOUSE OF ISRAEL WENT INTO CAPTIVITYK FOR THEIR INIQUITY: BECAUSE THEY TRESPASSED AGAINST ME, THEREFORE HID I MY K FACE FROM THEM, AND GAVE THEM INTO THE HAND OF THEIR ENEMIES: SO FELL THEYR ALL BY THE SWORD.I# 24 ACCORDING TO THEIR UNCLEANNESS AND ACCORDING TO THEIR TRANSGRESSIONSL2 HAVE I DONE UNTO THEM, AND HID MY FACE FROM THEM.L# 25 THEREFORE THUS SAITH THE LORD GOD; NOW WILL I BRING AGAIN THE CAPTIVITYM OF JACOB, AND HAVE MERCY UPON THE WHOLE HOUSE OF ISRAEL, AND WILL BE JEALOUSL00x==D%5%T6%! ! FOR MY HOLY NAME;M# 26 AFTER THAT THEY HAVE BORNE THEIR SHAME, AND ALL THEIR TRESPASSES WHEREBYAK THEY HAVE TRESPASSED AGAINST ME, WHEN THEY DWELT SAFELY IN THEIR LAND, AND  NONE MADE THEM AFRAID.EM# 27 WHEN I HAVE BROUGHT THEM AGAIN FROM THE PEOPLE, AND GATHERED THEM OUT OFEM THEIR ENEMIES LANDS, AND AM SANCTIFIED IN THEM IN THE SIGHT OF MANY NATIONS;EL# 28 THEN SHALL THEY KNOW THAT I AM THE LORD THEIR GOD, WHICH CAUSED THEM TOM BE LED INTO CAPTIVITY AMONG THE HEATHEN: BUT I HAVE GATHERED THEM UNTO THEIR 5 OWN LAND, AND HAVE LEFT NONE OF THEM ANY MORE THERE.,M# 29 NEITHER WILL I HIDE MY FACE ANY MORE FROM THEM: FOR I HAVE POURED OUT MY 5 SPIRIT UPON THE HOUSE OF ISRAEL, SAITH THE LORD GOD.D = CHAPTER 40 L# 1 IN THE FIVE AND TWENTIETH YEAR OF OUR CAPTIVITY, IN THE BEGINNING OF THEK YEAR, IN THE TENTH DAY OF THE MONTH, IN THE FOURTEENTH YEAR AFTER THAT THEEL CITY WAS SMITTEN, IN THE SELFSAME DAY THE HAND OF THE LORD WAS UPON ME, AND BROUGHT ME THITHER.K# 2 IN THE VISIONS OF GOD BROUGHT HE ME INTO THE LAND OF ISRAEL, AND SET MENM UPON A VERY HIGH MOUNTAIN, BY WHICH WAS AS THE FRAME OF A CITY ON THE SOUTH.:M# 3 AND HE BROUGHT ME THITHER, AND, BEHOLD, THERE WAS A MAN, WHOSE APPEARANCEDI WAS LIKE THE APPEARANCE OF BRASS, WITH A LINE OF FLAX IN HIS HAND, AND A * MEASURING REED; AND HE STOOD IN THE GATE.J# 4 AND THE MAN SAID UNTO ME, SON OF MAN, BEHOLD WITH THINE EYES, AND HEARM WITH THINE EARS, AND SET THINE HEART UPON ALL THAT I SHALL SHEW THEE; FOR TOM THE INTENT THAT I MIGHT SHEW THEM UNTO THEE ART THOU BROUGHT HITHER: DECLAREU, ALL THAT THOU SEEST TO THE HOUSE OF ISRAEL.I# 5 AND BEHOLD A WALL ON THE OUTSIDE OF THE HOUSE ROUND ABOUT, AND IN THE G MANS HAND A MEASURING REED OF SIX CUBITS LONG BY THE CUBIT AND AN HANDTG BREADTH: SO HE MEASURED THE BREADTH OF THE BUILDING, ONE REED; AND THEE HEIGHT, ONE REED.M# 6 THEN CAME HE UNTO THE GATE WHICH LOOKETH TOWARD THE EAST, AND WENT UP THESK STAIRS THEREOF, AND MEASURED THE THRESHOLD OF THE GATE, WHICH WAS ONE REEDHF BROAD; AND THE OTHER THRESHOLD OF THE GATE, WHICH WAS ONE REED BROAD.G# 7 AND EVERY LITTLE CHAMBER WAS ONE REED LONG, AND ONE REED BROAD; ANDIL BETWEEN THE LITTLE CHAMBERS WERE FIVE CUBITS; AND THE THRESHOLD OF THE GATE. BY THE PORCH OF THE GATE WITHIN WAS ONE REED.<# 8 HE MEASURED ALSO THE PORCH OF THE GATE WITHIN, ONE REED.G# 9 THEN MEASURED HE THE PORCH OF THE GATE, EIGHT CUBITS; AND THE POSTS ; THEREOF, TWO CUBITS; AND THE PORCH OF THE GATE WAS INWARD. J# 10 AND THE LITTLE CHAMBERS OF THE GATE EASTWARD WERE THREE ON THIS SIDE,N AND THREE ON THAT SIDE; THEY THREE WERE OF ONE MEASURE: AND THE POSTS HAD ONE' MEASURE ON THIS SIDE AND ON THAT SIDE.NJ# 11 AND HE MEASURED THE BREADTH OF THE ENTRY OF THE GATE, TEN CUBITS; AND) THE LENGTH OF THE GATE, THIRTEEN CUBITS. J# 12 THE SPACE ALSO BEFORE THE LITTLE CHAMBERS WAS ONE CUBIT ON THIS SIDE,K AND THE SPACE WAS ONE CUBIT ON THAT SIDE: AND THE LITTLE CHAMBERS WERE SIXS2 CUBITS ON THIS SIDE, AND SIX CUBITS ON THAT SIDE.I# 13 HE MEASURED THEN THE GATE FROM THE ROOF OF ONE LITTLE CHAMBER TO THEEL ROOF OF ANOTHER: THE BREADTH WAS FIVE AND TWENTY CUBITS, DOOR AGAINST DOOR.M# 14 HE MADE ALSO POSTS OF THREESCORE CUBITS, EVEN UNTO THE POST OF THE COURT  ROUND ABOUT THE GATE.M# 15 AND FROM THE FACE OF THE GATE OF THE ENTRANCE UNTO THE FACE OF THE PORCHE% OF THE INNER GATE WERE FIFTY CUBITS.SM# 16 AND THERE WERE NARROW WINDOWS TO THE LITTLE CHAMBERS, AND TO THEIR POSTSIJ WITHIN THE GATE ROUND ABOUT, AND LIKEWISE TO THE ARCHES: AND WINDOWS WERE8 ROUND ABOUT INWARD: AND UPON EACH POST WERE PALM TREES.M# 17 THEN BROUGHT HE ME INTO THE OUTWARD COURT, AND, LO, THERE WERE CHAMBERS,4M AND A PAVEMENT MADE FOR THE COURT ROUND ABOUT: THIRTY CHAMBERS WERE UPON THEU PAVEMENT.M# 18 AND THE PAVEMENT BY THE SIDE OF THE GATES OVER AGAINST THE LENGTH OF THE  GATES WAS THE LOWER PAVEMENT.K# 19 THEN HE MEASURED THE BREADTH FROM THE FOREFRONT OF THE LOWER GATE UNTODI THE FOREFRONT OF THE INNER COURT WITHOUT, AN HUNDRED CUBITS EASTWARD AND NORTHWARD.EG# 20 AND THE GATE OF THE OUTWA00x={<<%X>%+%O-%TADATADATARD COURT THAT LOOKED TOWARD THE NORTH, HER6 MEASURED THE LENGTH THEREOF, AND THE BREADTH THEREOF.I# 21 AND THE LITTLE CHAMBERS THEREOF WERE THREE ON THIS SIDE AND THREE ON G THAT SIDE; AND THE POSTS THEREOF AND THE ARCHES THEREOF WERE AFTER THESH MEASURE OF THE FIRST GATE: THE LENGTH THEREOF WAS FIFTY CUBITS, AND THE BREADTH FIVE AND TWENTY CUBITS.J# 22 AND THEIR WINDOWS, AND THEIR ARCHES, AND THEIR PALM TREES, WERE AFTERL THE MEASURE OF THE GATE THAT LOOKETH TOWARD THE EAST; AND THEY WENT UP UNTO< IT BY SEVEN STEPS; AND THE ARCHES THEREOF WERE BEFORE THEM.I# 23 AND THE GATE OF THE INNER COURT WAS OVER AGAINST THE GATE TOWARD THEFI NORTH, AND TOWARD THE EAST; AND HE MEASURED FROM GATE TO GATE AN HUNDREDN CUBITS.L# 24 AFTER THAT HE BROUGHT ME TOWARD THE SOUTH, AND BEHOLD A GATE TOWARD THEM SOUTH: AND HE MEASURED THE POSTS THEREOF AND THE ARCHES THEREOF ACCORDING TOS THESE MEASURES.M# 25 AND THERE WERE WINDOWS IN IT AND IN THE ARCHES THEREOF ROUND ABOUT, LIKEDL THOSE WINDOWS: THE LENGTH WAS FIFTY CUBITS, AND THE BREADTH FIVE AND TWENTY CUBITS.K# 26 AND THERE WERE SEVEN STEPS TO GO UP TO IT, AND THE ARCHES THEREOF WERE J BEFORE THEM: AND IT HAD PALM TREES, ONE ON THIS SIDE, AND ANOTHER ON THAT SIDE, UPON THE POSTS THEREOF.E# 27 AND THERE WAS A GATE IN THE INNER COURT TOWARD THE SOUTH: AND HEN? MEASURED FROM GATE TO GATE TOWARD THE SOUTH AN HUNDRED CUBITS.TL# 28 AND HE BROUGHT ME TO THE INNER COURT BY THE SOUTH GATE: AND HE MEASURED, THE SOUTH GATE ACCORDING TO THESE MEASURES;K# 29 AND THE LITTLE CHAMBERS THEREOF, AND THE POSTS THEREOF, AND THE ARCHESEN THEREOF, ACCORDING TO THESE MEASURES: AND THERE WERE WINDOWS IN IT AND IN THEJ ARCHES THEREOF ROUND ABOUT: IT WAS FIFTY CUBITS LONG, AND FIVE AND TWENTY CUBITS BROAD.J# 30 AND THE ARCHES ROUND ABOUT WERE FIVE AND TWENTY CUBITS LONG, AND FIVE CUBITS BROAD.L# 31 AND THE ARCHES THEREOF WERE TOWARD THE UTTER COURT; AND PALM TREES WERE@ UPON THE POSTS THEREOF: AND THE GOING UP TO IT HAD EIGHT STEPS.L# 32 AND HE BROUGHT ME INTO THE INNER COURT TOWARD THE EAST: AND HE MEASURED& THE GATE ACCORDING TO THESE MEASURES.K# 33 AND THE LITTLE CHAMBERS THEREOF, AND THE POSTS THEREOF, AND THE ARCHESHN THEREOF, WERE ACCORDING TO THESE MEASURES: AND THERE WERE WINDOWS THEREIN ANDJ IN THE ARCHES THEREOF ROUND ABOUT: IT WAS FIFTY CUBITS LONG, AND FIVE AND TWENTY CUBITS BROAD.AI# 34 AND THE ARCHES THEREOF WERE TOWARD THE OUTWARD COURT; AND PALM TREESON WERE UPON THE POSTS THEREOF, ON THIS SIDE, AND ON THAT SIDE: AND THE GOING UP TO IT HAD EIGHT STEPS. L# 35 AND HE BROUGHT ME TO THE NORTH GATE, AND MEASURED IT ACCORDING TO THESE MEASURES;L# 36 THE LITTLE CHAMBERS THEREOF, THE POSTS THEREOF, AND THE ARCHES THEREOF,H AND THE WINDOWS TO IT ROUND ABOUT: THE LENGTH WAS FIFTY CUBITS, AND THE BREADTH FIVE AND TWENTY CUBITS.K# 37 AND THE POSTS THEREOF WERE TOWARD THE UTTER COURT; AND PALM TREES WEREHL UPON THE POSTS THEREOF, ON THIS SIDE, AND ON THAT SIDE: AND THE GOING UP TO IT HAD EIGHT STEPS.M# 38 AND THE CHAMBERS AND THE ENTRIES THEREOF WERE BY THE POSTS OF THE GATES, & WHERE THEY WASHED THE BURNT OFFERING.G# 39 AND IN THE PORCH OF THE GATE WERE TWO TABLES ON THIS SIDE, AND TWO M TABLES ON THAT SIDE, TO SLAY THEREON THE BURNT OFFERING AND THE SIN OFFERINGH AND THE TRESPASS OFFERING.BM# 40 AND AT THE SIDE WITHOUT, AS ONE GOETH UP TO THE ENTRY OF THE NORTH GATE,RL WERE TWO TABLES; AND ON THE OTHER SIDE, WHICH WAS AT THE PORCH OF THE GATE, WERE TWO TABLES.IM# 41 FOUR TABLES WERE ON THIS SIDE, AND FOUR TABLES ON THAT SIDE, BY THE SIDEEA OF THE GATE; EIGHT TABLES, WHEREUPON THEY SLEW THEIR SACRIFICES.NH# 42 AND THE FOUR TABLES WERE OF HEWN STONE FOR THE BURNT OFFERING, OF AK CUBIT AND AN HALF LONG, AND A CUBIT AND AN HALF BROAD, AND ONE CUBIT HIGH:RG WHEREUPON ALSO THEY LAID THE INSTRUMENTS WHEREWITH THEY SLEW THE BURNTG OFFERING AND THE SACRIFICE.M# 43 AND WITHIN WERE HOOKS, AN HAND BROAD, FASTENED ROUND ABOUT: AND UPON THET& TABLES WAS THE FLESH OF THE OFFERING.M# 44 AND WITHOUT THE INNER GATE WERE THE CHAMBERS OF THE SINGERS00x>=D%5%T6%! ! IN THE INNERAN COURT, WHICH WAS AT THE SIDE OF THE NORTH GATE; AND THEIR PROSPECT WAS TOWARDK THE SOUTH: ONE AT THE SIDE OF THE EAST GATE HAVING THE PROSPECT TOWARD THEA NORTH.TK# 45 AND HE SAID UNTO ME, THIS CHAMBER, WHOSE PROSPECT IS TOWARD THE SOUTH,U< IS FOR THE PRIESTS, THE KEEPERS OF THE CHARGE OF THE HOUSE.K# 46 AND THE CHAMBER WHOSE PROSPECT IS TOWARD THE NORTH IS FOR THE PRIESTS,ON THE KEEPERS OF THE CHARGE OF THE ALTAR: THESE ARE THE SONS OF ZADOK AMONG THE@ SONS OF LEVI, WHICH COME NEAR TO THE LORD TO MINISTER UNTO HIM.L# 47 SO HE MEASURED THE COURT, AN HUNDRED CUBITS LONG, AND AN HUNDRED CUBITS< BROAD, FOURSQUARE; AND THE ALTAR THAT WAS BEFORE THE HOUSE.K# 48 AND HE BROUGHT ME TO THE PORCH OF THE HOUSE, AND MEASURED EACH POST OFEK THE PORCH, FIVE CUBITS ON THIS SIDE, AND FIVE CUBITS ON THAT SIDE: AND THEAL BREADTH OF THE GATE WAS THREE CUBITS ON THIS SIDE, AND THREE CUBITS ON THAT SIDE.F# 49 THE LENGTH OF THE PORCH WAS TWENTY CUBITS, AND THE BREADTH ELEVENM CUBITS, AND HE BROUGHT ME BY THE STEPS WHEREBY THEY WENT UP TO IT: AND THERE G WERE PILLARS BY THE POSTS, ONE ON THIS SIDE, AND ANOTHER ON THAT SIDE.A = CHAPTER 41 AM# 1 AFTERWARD HE BROUGHT ME TO THE TEMPLE, AND MEASURED THE POSTS, SIX CUBITS M BROAD ON THE ONE SIDE, AND SIX CUBITS BROAD ON THE OTHER SIDE, WHICH WAS THET BREADTH OF THE TABERNACLE.EI# 2 AND THE BREADTH OF THE DOOR WAS TEN CUBITS; AND THE SIDES OF THE DOORSL WERE FIVE CUBITS ON THE ONE SIDE, AND FIVE CUBITS ON THE OTHER SIDE: AND HEK MEASURED THE LENGTH THEREOF, FORTY CUBITS: AND THE BREADTH, TWENTY CUBITS. K# 3 THEN WENT HE INWARD, AND MEASURED THE POST OF THE DOOR, TWO CUBITS; AND A THE DOOR, SIX CUBITS; AND THE BREADTH OF THE DOOR, SEVEN CUBITS.EM# 4 SO HE MEASURED THE LENGTH THEREOF, TWENTY CUBITS; AND THE BREADTH, TWENTYTM CUBITS, BEFORE THE TEMPLE: AND HE SAID UNTO ME, THIS IS THE MOST HOLY PLACE.TK# 5 AFTER HE MEASURED THE WALL OF THE HOUSE, SIX CUBITS; AND THE BREADTH OFOF EVERY SIDE CHAMBER, FOUR CUBITS, ROUND ABOUT THE HOUSE ON EVERY SIDE.L# 6 AND THE SIDE CHAMBERS WERE THREE, ONE OVER ANOTHER, AND THIRTY IN ORDER;L AND THEY ENTERED INTO THE WALL WHICH WAS OF THE HOUSE FOR THE SIDE CHAMBERSM ROUND ABOUT, THAT THEY MIGHT HAVE HOLD, BUT THEY HAD NOT HOLD IN THE WALL OFH THE HOUSE. L# 7 AND THERE WAS AN ENLARGING, AND A WINDING ABOUT STILL UPWARD TO THE SIDEK CHAMBERS: FOR THE WINDING ABOUT OF THE HOUSE WENT STILL UPWARD ROUND ABOUTSG THE HOUSE: THEREFORE THE BREADTH OF THE HOUSE WAS STILL UPWARD, AND SON? INCREASED FROM THE LOWEST CHAMBER TO THE HIGHEST BY THE MIDST.TJ# 8 I SAW ALSO THE HEIGHT OF THE HOUSE ROUND ABOUT: THE FOUNDATIONS OF THE4 SIDE CHAMBERS WERE A FULL REED OF SIX GREAT CUBITS.J# 9 THE THICKNESS OF THE WALL, WHICH WAS FOR THE SIDE CHAMBER WITHOUT, WASM FIVE CUBITS: AND THAT WHICH WAS LEFT WAS THE PLACE OF THE SIDE CHAMBERS THAT WERE WITHIN.BK# 10 AND BETWEEN THE CHAMBERS WAS THE WIDENESS OF TWENTY CUBITS ROUND ABOUTH THE HOUSE ON EVERY SIDE. L# 11 AND THE DOORS OF THE SIDE CHAMBERS WERE TOWARD THE PLACE THAT WAS LEFT,N ONE DOOR TOWARD THE NORTH, AND ANOTHER DOOR TOWARD THE SOUTH: AND THE BREADTH8 OF THE PLACE THAT WAS LEFT WAS FIVE CUBITS ROUND ABOUT.J# 12 NOW THE BUILDING THAT WAS BEFORE THE SEPARATE PLACE AT THE END TOWARDI THE WEST WAS SEVENTY CUBITS BROAD; AND THE WALL OF THE BUILDING WAS FIVET@ CUBITS THICK ROUND ABOUT, AND THE LENGTH THEREOF NINETY CUBITS.G# 13 SO HE MEASURED THE HOUSE, AN HUNDRED CUBITS LONG; AND THE SEPARATEII PLACE, AND THE BUILDING, WITH THE WALLS THEREOF, AN HUNDRED CUBITS LONG;SI# 14 ALSO THE BREADTH OF THE FACE OF THE HOUSE, AND OF THE SEPARATE PLACET$ TOWARD THE EAST, AN HUNDRED CUBITS.I# 15 AND HE MEASURED THE LENGTH OF THE BUILDING OVER AGAINST THE SEPARATEEL PLACE WHICH WAS BEHIND IT, AND THE GALLERIES THEREOF ON THE ONE SIDE AND ONM THE OTHER SIDE, AN HUNDRED CUBITS, WITH THE INNER TEMPLE, AND THE PORCHES OF THE COURT;.M# 16 THE DOOR POSTS, AND THE NARROW WINDOWS, AND THE GALLERIES ROUND ABOUT ONAN THEIR THREE STORIES, OVER AGAINST THE DOOR, CIELED WITH WOOD ROUN00x>{<<%X>%+%O-%TADATADATAD ABOUT, ANDA FROM THE GROUND UP TO THE WINDOWS, AND THE WINDOWS WERE COVERED;K# 17 TO THAT ABOVE THE DOOR, EVEN UNTO THE INNER HOUSE, AND WITHOUT, AND BYB9 ALL THE WALL ROUND ABOUT WITHIN AND WITHOUT, BY MEASURE. K# 18 AND IT WAS MADE WITH CHERUBIMS AND PALM TREES, SO THAT A PALM TREE WASD? BETWEEN A CHERUB AND A CHERUB; AND EVERY CHERUB HAD TWO FACES;TL# 19 SO THAT THE FACE OF A MAN WAS TOWARD THE PALM TREE ON THE ONE SIDE, ANDM THE FACE OF A YOUNG LION TOWARD THE PALM TREE ON THE OTHER SIDE: IT WAS MADE,# THROUGH ALL THE HOUSE ROUND ABOUT.OL# 20 FROM THE GROUND UNTO ABOVE THE DOOR WERE CHERUBIMS AND PALM TREES MADE, AND ON THE WALL OF THE TEMPLE.BM# 21 THE POSTS OF THE TEMPLE WERE SQUARED, AND THE FACE OF THE SANCTUARY; THEA6 APPEARANCE OF THE ONE AS THE APPEARANCE OF THE OTHER.H# 22 THE ALTAR OF WOOD WAS THREE CUBITS HIGH, AND THE LENGTH THEREOF TWOG CUBITS; AND THE CORNERS THEREOF, AND THE LENGTH THEREOF, AND THE WALLSM THEREOF, WERE OF WOOD: AND HE SAID UNTO ME, THIS IS THE TABLE THAT IS BEFORE THE LORD.4# 23 AND THE TEMPLE AND THE SANCTUARY HAD TWO DOORS.L# 24 AND THE DOORS HAD TWO LEAVES APIECE, TWO TURNING LEAVES; TWO LEAVES FOR1 THE ONE DOOR, AND TWO LEAVES FOR THE OTHER DOOR.DK# 25 AND THERE WERE MADE ON THEM, ON THE DOORS OF THE TEMPLE, CHERUBIMS AND J PALM TREES, LIKE AS WERE MADE UPON THE WALLS; AND THERE WERE THICK PLANKS$ UPON THE FACE OF THE PORCH WITHOUT.L# 26 AND THERE WERE NARROW WINDOWS AND PALM TREES ON THE ONE SIDE AND ON THEI OTHER SIDE, ON THE SIDES OF THE PORCH, AND UPON THE SIDE CHAMBERS OF THEM HOUSE, AND THICK PLANKS.W = CHAPTER 42 AL# 1 THEN HE BROUGHT ME FORTH INTO THE UTTER COURT, THE WAY TOWARD THE NORTH:M AND HE BROUGHT ME INTO THE CHAMBER THAT WAS OVER AGAINST THE SEPARATE PLACE, 4 AND WHICH WAS BEFORE THE BUILDING TOWARD THE NORTH.F# 2 BEFORE THE LENGTH OF AN HUNDRED CUBITS WAS THE NORTH DOOR, AND THE BREADTH WAS FIFTY CUBITS.K# 3 OVER AGAINST THE TWENTY CUBITS WHICH WERE FOR THE INNER COURT, AND OVERTH AGAINST THE PAVEMENT WHICH WAS FOR THE UTTER COURT, WAS GALLERY AGAINST GALLERY IN THREE STORIES.M# 4 AND BEFORE THE CHAMBERS WAS A WALK TO TEN CUBITS BREADTH INWARD, A WAY OFY- ONE CUBIT; AND THEIR DOORS TOWARD THE NORTH. K# 5 NOW THE UPPER CHAMBERS WERE SHORTER: FOR THE GALLERIES WERE HIGHER THAN @ THESE, THAN THE LOWER, AND THAN THE MIDDLEMOST OF THE BUILDING.M# 6 FOR THEY WERE IN THREE STORIES, BUT HAD NOT PILLARS AS THE PILLARS OF THETK COURTS: THEREFORE THE BUILDING WAS STRAITENED MORE THAN THE LOWEST AND THEM MIDDLEMOST FROM THE GROUND.M# 7 AND THE WALL THAT WAS WITHOUT OVER AGAINST THE CHAMBERS, TOWARD THE UTTERRL COURT ON THE FOREPART OF THE CHAMBERS, THE LENGTH THEREOF WAS FIFTY CUBITS.I# 8 FOR THE LENGTH OF THE CHAMBERS THAT WERE IN THE UTTER COURT WAS FIFTYL; CUBITS: AND, LO, BEFORE THE TEMPLE WERE AN HUNDRED CUBITS.EH# 9 AND FROM UNDER THESE CHAMBERS WAS THE ENTRY ON THE EAST SIDE, AS ONE& GOETH INTO THEM FROM THE UTTER COURT.K# 10 THE CHAMBERS WERE IN THE THICKNESS OF THE WALL OF THE COURT TOWARD THEDF EAST, OVER AGAINST THE SEPARATE PLACE, AND OVER AGAINST THE BUILDING.J# 11 AND THE WAY BEFORE THEM WAS LIKE THE APPEARANCE OF THE CHAMBERS WHICHL WERE TOWARD THE NORTH, AS LONG AS THEY, AND AS BROAD AS THEY: AND ALL THEIRI GOINGS OUT WERE BOTH ACCORDING TO THEIR FASHIONS, AND ACCORDING TO THEIRA DOORS. J# 12 AND ACCORDING TO THE DOORS OF THE CHAMBERS THAT WERE TOWARD THE SOUTHI WAS A DOOR IN THE HEAD OF THE WAY, EVEN THE WAY DIRECTLY BEFORE THE WALLH, TOWARD THE EAST, AS ONE ENTERETH INTO THEM.K# 13 THEN SAID HE UNTO ME, THE NORTH CHAMBERS AND THE SOUTH CHAMBERS, WHICH M ARE BEFORE THE SEPARATE PLACE, THEY BE HOLY CHAMBERS, WHERE THE PRIESTS THAT L APPROACH UNTO THE LORD SHALL EAT THE MOST HOLY THINGS: THERE SHALL THEY LAYK THE MOST HOLY THINGS, AND THE MEAT OFFERING, AND THE SIN OFFERING, AND THE * TRESPASS OFFERING; FOR THE PLACE IS HOLY.K# 14 WHEN THE PRIESTS ENTER THEREIN, THEN SHALL THEY NOT GO OUT OF THE HOLYEL PLACE INTO THE UTTER COURT, BUT THERE THEY SHALL LAY THEIR GARMENTS WHEREINM THEY MINI00x>=D%5%T6%! !STER; FOR THEY ARE HOLY; AND SHALL PUT ON OTHER GARMENTS, AND SHALLA3 APPROACH TO THOSE THINGS WHICH ARE FOR THE PEOPLE.WL# 15 NOW WHEN HE HAD MADE AN END OF MEASURING THE INNER HOUSE, HE BROUGHT MEI FORTH TOWARD THE GATE WHOSE PROSPECT IS TOWARD THE EAST, AND MEASURED ITH ROUND ABOUT. K# 16 HE MEASURED THE EAST SIDE WITH THE MEASURING REED, FIVE HUNDRED REEDS,N% WITH THE MEASURING REED ROUND ABOUT. L# 17 HE MEASURED THE NORTH SIDE, FIVE HUNDRED REEDS, WITH THE MEASURING REED ROUND ABOUT.TM# 18 HE MEASURED THE SOUTH SIDE, FIVE HUNDRED REEDS, WITH THE MEASURING REED.AK# 19 HE TURNED ABOUT TO THE WEST SIDE, AND MEASURED FIVE HUNDRED REEDS WITH  THE MEASURING REED.F# 20 HE MEASURED IT BY THE FOUR SIDES: IT HAD A WALL ROUND ABOUT, FIVEM HUNDRED REEDS LONG, AND FIVE HUNDRED BROAD, TO MAKE A SEPARATION BETWEEN THEE! SANCTUARY AND THE PROFANE PLACE.R = CHAPTER 43 TN# 1 AFTERWARD HE BROUGHT ME TO THE GATE, EVEN THE GATE THAT LOOKETH TOWARD THE EAST:H# 2 AND, BEHOLD, THE GLORY OF THE GOD OF ISRAEL CAME FROM THE WAY OF THEJ EAST: AND HIS VOICE WAS LIKE A NOISE OF MANY WATERS: AND THE EARTH SHINED WITH HIS GLORY.J# 3 AND IT WAS ACCORDING TO THE APPEARANCE OF THE VISION WHICH I SAW, EVENL ACCORDING TO THE VISION THAT I SAW WHEN I CAME TO DESTROY THE CITY: AND THEM VISIONS WERE LIKE THE VISION THAT I SAW BY THE RIVER CHEBAR; AND I FELL UPONP MY FACE.HH# 4 AND THE GLORY OF THE LORD CAME INTO THE HOUSE BY THE WAY OF THE GATE# WHOSE PROSPECT IS TOWARD THE EAST.HG# 5 SO THE SPIRIT TOOK ME UP, AND BROUGHT ME INTO THE INNER COURT; AND,H0 BEHOLD, THE GLORY OF THE LORD FILLED THE HOUSE.K# 6 AND I HEARD HIM SPEAKING UNTO ME OUT OF THE HOUSE; AND THE MAN STOOD BY  ME.M# 7 AND HE SAID UNTO ME, SON OF MAN, THE PLACE OF MY THRONE, AND THE PLACE OFRI THE SOLES OF MY FEET, WHERE I WILL DWELL IN THE MIDST OF THE CHILDREN OF M ISRAEL FOR EVER, AND MY HOLY NAME, SHALL THE HOUSE OF ISRAEL NO MORE DEFILE,HI NEITHER THEY, NOR THEIR KINGS, BY THEIR WHOREDOM, NOR BY THE CARCASES OFO" THEIR KINGS IN THEIR HIGH PLACES.K# 8 IN THEIR SETTING OF THEIR THRESHOLD BY MY THRESHOLDS, AND THEIR POST BYSK MY POSTS, AND THE WALL BETWEEN ME AND THEM, THEY HAVE EVEN DEFILED MY HOLYBF NAME BY THEIR ABOMINATIONS THAT THEY HAVE COMMITTED: WHEREFORE I HAVE CONSUMED THEM IN MINE ANGER. J# 9 NOW LET THEM PUT AWAY THEIR WHOREDOM, AND THE CARCASES OF THEIR KINGS,= FAR FROM ME, AND I WILL DWELL IN THE MIDST OF THEM FOR EVER.HM# 10 THOU SON OF MAN, SHEW THE HOUSE TO THE HOUSE OF ISRAEL, THAT THEY MAY BET? ASHAMED OF THEIR INIQUITIES: AND LET THEM MEASURE THE PATTERN.HM# 11 AND IF THEY BE ASHAMED OF ALL THAT THEY HAVE DONE, SHEW THEM THE FORM OFEH THE HOUSE, AND THE FASHION THEREOF, AND THE GOINGS OUT THEREOF, AND THEF COMINGS IN THEREOF, AND ALL THE FORMS THEREOF, AND ALL THE ORDINANCESN THEREOF, AND ALL THE FORMS THEREOF, AND ALL THE LAWS THEREOF: AND WRITE IT INB THEIR SIGHT, THAT THEY MAY KEEP THE WHOLE FORM THEREOF, AND ALL T! ORDINANCES THEREOF, AND DO THEM.HI# 12 THIS IS THE LAW OF THE HOUSE; UPON THE TOP OF THE MOUNTAIN THE WHOLE M LIMIT THEREOF ROUND ABOUT SHALL BE MOST HOLY. BEHOLD, THIS IS THE LAW OF THEO HOUSE.TM# 13 AND THESE ARE THE MEASURES OF THE ALTAR AFTER THE CUBITS: THE CUBIT IS AOM CUBIT AND AN HAND BREADTH; EVEN THE BOTTOM SHALL BE A CUBIT, AND THE BREADTHCK A CUBIT, AND THE BORDER THEREOF BY THE EDGE THEREOF ROUND ABOUT SHALL BE AI7 SPAN: AND THIS SHALL BE THE HIGHER PLACE OF THE ALTAR.RJ# 14 AND FROM THE BOTTOM UPON THE GROUND EVEN TO THE LOWER SETTLE SHALL BEN TWO CUBITS, AND THE BREADTH ONE CUBIT; AND FROM THE LESSER SETTLE EVEN TO THE@ GREATER SETTLE SHALL BE FOUR CUBITS, AND THE BREADTH ONE CUBIT.K# 15 SO THE ALTAR SHALL BE FOUR CUBITS; AND FROM THE ALTAR AND UPWARD SHALLC BE FOUR HORNS.BK# 16 AND THE ALTAR SHALL BE TWELVE CUBITS LONG, TWELVE BROAD, SQUARE IN THE  FOUR SQUARES THEREOF.K# 17 AND THE SETTLE SHALL BE FOURTEEN CUBITS LONG AND FOURTEEN BROAD IN THE M FOUR SQUARES THEREOF; AND THE BORDER ABOUT IT SHALL BE HALF A CUBIT; AND THELL BOTTOM THEREOF SHALL BE A CUBIT ABOUT; 00x>{<<%X>%+%O-%TADATADATAAND HIS STAIRS SHALL LOOK TOWARD THE EAST.L# 18 AND HE SAID UNTO ME, SON OF MAN, THUS SAITH THE LORD GOD; THESE ARE THEK ORDINANCES OF THE ALTAR IN THE DAY WHEN THEY SHALL MAKE IT, TO OFFER BURNTO2 OFFERINGS THEREON, AND TO SPRINKLE BLOOD THEREON.J# 19 AND THOU SHALT GIVE TO THE PRIESTS THE LEVITES THAT BE OF THE SEED OFJ ZADOK, WHICH APPROACH UNTO ME, TO MINISTER UNTO ME, SAITH THE LORD GOD, A" YOUNG BULLOCK FOR A SIN OFFERING.K# 20 AND THOU SHALT TAKE OF THE BLOOD THEREOF, AND PUT IT ON THE FOUR HORNSIH OF IT, AND ON THE FOUR CORNERS OF THE SETTLE, AND UPON THE BORDER ROUND- ABOUT: THUS SHALT THOU CLEANSE AND PURGE IT.DL# 21 THOU SHALT TAKE THE BULLOCK ALSO OF THE SIN OFFERING, AND HE SHALL BURN? IT IN THE APPOINTED PLACE OF THE HOUSE, WITHOUT THE SANCTUARY.LF# 22 AND ON THE SECOND DAY THOU SHALT OFFER A KID OF THE GOATS WITHOUTJ BLEMISH FOR A SIN OFFERING; AND THEY SHALL CLEANSE THE ALTAR, AS THEY DID CLEANSE IT WITH THE BULLOCK.TI# 23 WHEN THOU HAST MADE AN END OF CLEANSING IT, THOU SHALT OFFER A YOUNG E BULLOCK WITHOUT BLEMISH, AND A RAM OUT OF THE FLOCK WITHOUT BLEMISH.TJ# 24 AND THOU SHALT OFFER THEM BEFORE THE LORD, AND THE PRIESTS SHALL CASTK SALT UPON THEM, AND THEY SHALL OFFER THEM UP FOR A BURNT OFFERING UNTO THE  LORD.L# 25 SEVEN DAYS SHALT THOU PREPARE EVERY DAY A GOAT FOR A SIN OFFERING: THEYH SHALL ALSO PREPARE A YOUNG BULLOCK, AND A RAM OUT OF THE FLOCK, WITHOUT BLEMISH.HH# 26 SEVEN DAYS SHALL THEY PURGE THE ALTAR AND PURIFY IT; AND THEY SHALL CONSECRATE THEMSELVES. L# 27 AND WHEN THESE DAYS ARE EXPIRED, IT SHALL BE, THAT UPON THE EIGHTH DAY,L AND SO FORWARD, THE PRIESTS SHALL MAKE YOUR BURNT OFFERINGS UPON THE ALTAR,E AND YOUR PEACE OFFERINGS; AND I WILL ACCEPT YOU, SAITH THE LORD GOD.I = CHAPTER 44 LN# 1 THEN HE BROUGHT ME BACK THE WAY OF THE GATE OF THE OUTWARD SANCTUARY WHICH* LOOKETH TOWARD THE EAST; AND IT WAS SHUT.H# 2 THEN SAID THE LORD UNTO ME; THIS GATE SHALL BE SHUT, IT SHALL NOT BEN OPENED, AND NO MAN SHALL ENTER IN BY IT; BECAUSE THE LORD, THE GOD OF ISRAEL,3 HATH ENTERED IN BY IT, THEREFORE IT SHALL BE SHUT.TL# 3 IT IS FOR THE PRINCE; THE PRINCE, HE SHALL SIT IN IT TO EAT BREAD BEFOREL THE LORD; HE SHALL ENTER BY THE WAY OF THE PORCH OF THAT GATE, AND SHALL GO OUT BY THE WAY OF THE SAME.H# 4 THEN BROUGHT HE ME THE WAY OF THE NORTH GATE BEFORE THE HOUSE: AND IM LOOKED, AND, BEHOLD, THE GLORY OF THE LORD FILLED THE HOUSE OF THE LORD: ANDH I FELL UPON MY FACE.IK# 5 AND THE LORD SAID UNTO ME, SON OF MAN, MARK WELL, AND BEHOLD WITH THINEHK EYES, AND HEAR WITH THINE EARS ALL THAT I SAY UNTO THEE CONCERNING ALL THETM ORDINANCES OF THE HOUSE OF THE LORD, AND ALL THE LAWS THEREOF; AND MARK WELLRG THE ENTERING IN OF THE HOUSE, WITH EVERY GOING FORTH OF THE SANCTUARY.TK# 6 AND THOU SHALT SAY TO THE REBELLIOUS, EVEN TO THE HOUSE OF ISRAEL, THUSFI SAITH THE LORD GOD; O YE HOUSE OF ISRAEL, LET IT SUFFICE YOU OF ALL YOURE ABOMINATIONS,I# 7 IN THAT YE HAVE BROUGHT INTO MY SANCTUARY STRANGERS, UNCIRCUMCISED IN,N HEART, AND UNCIRCUMCISED IN FLESH, TO BE IN MY SANCTUARY, TO POLLUTE IT, EVENN MY HOUSE, WHEN YE OFFER MY BREAD, THE FAT AND THE BLOOD, AND THEY HAVE BROKEN. MY COVENANT BECAUSE OF ALL YOUR ABOMINATIONS.H# 8 AND YE HAVE NOT KEPT THE CHARGE OF MINE HOLY THINGS: BUT YE HAVE SET5 KEEPERS OF MY CHARGE IN MY SANCTUARY FOR YOURSELVES.,E# 9 THUS SAITH THE LORD GOD; NO STRANGER, UNCIRCUMCISED IN HEART, NORFL UNCIRCUMCISED IN FLESH, SHALL ENTER INTO MY SANCTUARY, OF ANY STRANGER THAT! IS AMONG THE CHILDREN OF ISRAEL.NM# 10 AND THE LEVITES THAT ARE GONE AWAY FAR FROM ME, WHEN ISRAEL WENT ASTRAY,,M WHICH WENT ASTRAY AWAY FROM ME AFTER THEIR IDOLS; THEY SHALL EVEN BEAR THEIRA INIQUITY.L# 11 YET THEY SHALL BE MINISTERS IN MY SANCTUARY, HAVING CHARGE AT THE GATESF OF THE HOUSE, AND MINISTERING TO THE HOUSE: THEY SHALL SLAY THE BURNTL OFFERING AND THE SACRIFICE FOR THE PEOPLE, AND THEY SHALL STAND BEFORE THEM TO MINISTER UNTO THEM.SI# 12 BECAUSE THEY MINISTERED UNTO THEM BEFORE THEIR IDOLS, AND CAUSED THEOL HOUSE OF ISRAEL TO FALL INTO INIQ00x >=D%5%T6%! !UITY; THEREFORE HAVE I LIFTED UP MINE HANDF AGAINST THEM, SAITH THE LORD GOD, AND THEY SHALL BEAR THEIR INIQUITY.L# 13 AND THEY SHALL NOT COME NEAR UNTO ME, TO DO THE OFFICE OF A PRIEST UNTOK ME, NOR TO COME NEAR TO ANY OF MY HOLY THINGS, IN THE MOST HOLY PLACE: BUT:D THEY SHALL BEAR THEIR SHAME, AND THEIR ABOMINATIONS WHICH THEY HAVE COMMITTED.AI# 14 BUT I WILL MAKE THEM KEEPERS OF THE CHARGE OF THE HOUSE, FOR ALL THED9 SERVICE THEREOF, AND FOR ALL THAT SHALL BE DONE THEREIN.SL# 15 BUT THE PRIESTS THE LEVITES, THE SONS OF ZADOK, THAT KEPT THE CHARGE OFN MY SANCTUARY WHEN THE CHILDREN OF ISRAEL WENT ASTRAY FROM ME, THEY SHALL COMEM NEAR TO ME TO MINISTER UNTO ME, AND THEY SHALL STAND BEFORE ME TO OFFER UNTO . ME THE FAT AND THE BLOOD, SAITH THE LORD GOD:G# 16 THEY SHALL ENTER INTO MY SANCTUARY, AND THEY SHALL COME NEAR TO MYA; TABLE, TO MINISTER UNTO ME, AND THEY SHALL KEEP MY CHARGE.AK# 17 AND IT SHALL COME TO PASS, THAT WHEN THEY ENTER IN AT THE GATES OF THEOJ INNER COURT, THEY SHALL BE CLOTHED WITH LINEN GARMENTS; AND NO WOOL SHALLJ COME UPON THEM, WHILES THEY MINISTER IN THE GATES OF THE INNER COURT, AND WITHIN.I# 18 THEY SHALL HAVE LINEN BONNETS UPON THEIR HEADS, AND SHALL HAVE LINENON BREECHES UPON THEIR LOINS; THEY SHALL NOT GIRD THEMSELVES WITH ANY THING THAT CAUSETH SWEAT.UK# 19 AND WHEN THEY GO FORTH INTO THE UTTER COURT, EVEN INTO THE UTTER COURTHN TO THE PEOPLE, THEY SHALL PUT OFF THEIR GARMENTS WHEREIN THEY MINISTERED, ANDN LAY THEM IN THE HOLY CHAMBERS, AND THEY SHALL PUT ON OTHER GARMENTS; AND THEY3 SHALL NOT SANCTIFY THE PEOPLE WITH THEIR GARMENTS. I# 20 NEITHER SHALL THEY SHAVE THEIR HEADS, NOR SUFFER THEIR LOCKS TO GROWB( LONG; THEY SHALL ONLY POLL THEIR HEADS.H# 21 NEITHER SHALL ANY PRIEST DRINK WINE, WHEN THEY ENTER INTO THE INNER COURT.TI# 22 NEITHER SHALL THEY TAKE FOR THEIR WIVES A WIDOW, NOR HER THAT IS PUTIK AWAY: BUT THEY SHALL TAKE MAIDENS OF THE SEED OF THE HOUSE OF ISRAEL, OR AI WIDOW THAT HAD A PRIEST BEFORE.G# 23 AND THEY SHALL TEACH MY PEOPLE THE DIFFERENCE BETWEEN THE HOLY ANDAF PROFANE, AND CAUSE THEM TO DISCERN BETWEEN THE UNCLEAN AND THE CLEAN.M# 24 AND IN CONTROVERSY THEY SHALL STAND IN JUDGMENT; AND THEY SHALL JUDGE ITLN ACCORDING TO MY JUDGMENTS: AND THEY SHALL KEEP MY LAWS AND MY STATUTES IN ALL4 MINE ASSEMBLIES; AND THEY SHALL HALLOW MY SABBATHS.H# 25 AND THEY SHALL COME AT NO DEAD PERSON TO DEFILE THEMSELVES: BUT FORH FATHER, OR FOR MOTHER, OR FOR SON, OR FOR DAUGHTER, FOR BROTHER, OR FOR= SISTER THAT HATH HAD NO HUSBAND, THEY MAY DEFILE THEMSELVES.NE# 26 AND AFTER HE IS CLEANSED, THEY SHALL RECKON UNTO HIM SEVEN DAYS. K# 27 AND IN THE DAY THAT HE GOETH INTO THE SANCTUARY, UNTO THE INNER COURT,YN TO MINISTER IN THE SANCTUARY, HE SHALL OFFER HIS SIN OFFERING, SAITH THE LORD GOD.EJ# 28 AND IT SHALL BE UNTO THEM FOR AN INHERITANCE: I AM THEIR INHERITANCE:G AND YE SHALL GIVE THEM NO POSSESSION IN ISRAEL: I AM THEIR POSSESSION. M# 29 THEY SHALL EAT THE MEAT OFFERING, AND THE SIN OFFERING, AND THE TRESPASS ? OFFERING: AND EVERY DEDICATED THING IN ISRAEL SHALL BE THEIRS.SK# 30 AND THE FIRST OF ALL THE FIRSTFRUITS OF ALL THINGS, AND EVERY OBLATIONHM OF ALL, OF EVERY SORT OF YOUR OBLATIONS, SHALL BE THE PRIESTS: YE SHALL ALSORM GIVE UNTO THE PRIEST THE FIRST OF YOUR DOUGH, THAT HE MAY CAUSE THE BLESSINGE TO REST IN THINE HOUSE.L# 31 THE PRIESTS SHALL NOT EAT OF ANY THING THAT IS DEAD OF ITSELF, OR TORN, WHETHER IT BE FOWL OR BEAS9 = CHAPTER 45 L# 1 MOREOVER, WHEN YE SHALL DIVIDE BY LOT THE LAND FOR INHERITANCE, YE SHALLI OFFER AN OBLATION UNTO THE LORD, AN HOLY PORTION OF THE LAND: THE LENGTHHM SHALL BE THE LENGTH OF FIVE AND TWENTY THOUSAND REEDS, AND THE BREADTH SHALLRL BE TEN THOUSAND. THIS SHALL BE HOLY IN ALL THE BORDERS THEREOF ROUND ABOUT.I# 2 OF THIS THERE SHALL BE FOR THE SANCTUARY FIVE HUNDRED IN LENGTH, WITH.N FIVE HUNDRED IN BREADTH, SQUARE ROUND ABOUT; AND FIFTY CUBITS ROUND ABOUT FOR THE SUBURBS THEREOF.BH# 3 AND OF THIS MEASURE SHALT THOU MEASURE THE LENGTH OF FIVE AND TWENTYL THOUSAND, AND THE BREADTH00x(>{<<%X>%+%O-%TADATADATA OF TEN THOUSAND: AND IN IT SHALL BE THE SANCTUARY AND THE MOST HOLY PLACE.AJ# 4 THE HOLY PORTION OF THE LAND SHALL BE FOR THE PRIESTS THE MINISTERS OFM THE SANCTUARY, WHICH SHALL COME NEAR TO MINISTER UNTO THE LORD: AND IT SHALL B BE A PLACE FOR THEIR HOUSES, AND AN HOLY PLACE FOR THE SANCTUARY.G# 5 AND THE FIVE AND TWENTY THOUSAND OF LENGTH, AND THE TEN THOUSAND OFDE BREADTH SHALL ALSO THE LEVITES, THE MINISTERS OF THE HOUSE, HAVE FORM2 THEMSELVES, FOR A POSSESSION FOR TWENTY CHAMBERS.L# 6 AND YE SHALL APPOINT THE POSSESSION OF THE CITY FIVE THOUSAND BROAD, ANDN FIVE AND TWENTY THOUSAND LONG, OVER AGAINST THE OBLATION OF THE HOLY PORTION:+ IT SHALL BE FOR THE WHOLE HOUSE OF ISRAEL.AJ# 7 AND A PORTION SHALL BE FOR THE PRINCE ON THE ONE SIDE AND ON THE OTHERM SIDE OF THE OBLATION OF THE HOLY PORTION, AND OF THE POSSESSION OF THE CITY,GJ BEFORE THE OBLATION OF THE HOLY PORTION, AND BEFORE THE POSSESSION OF THEL CITY, FROM THE WEST SIDE WESTWARD, AND FROM THE EAST SIDE EASTWARD: AND THEL LENGTH SHALL BE OVER AGAINST ONE OF THE PORTIONS, FROM THE WEST BORDER UNTO THE EAST BORDER.OJ# 8 IN THE LAND SHALL BE HIS POSSESSION IN ISRAEL: AND MY PRINCES SHALL NON MORE OPPRESS MY PEOPLE; AND THE REST OF THE LAND SHALL THEY GIVE TO THE HOUSE% OF ISRAEL ACCORDING TO THEIR TRIBES.OL# 9 THUS SAITH THE LORD GOD; LET IT SUFFICE YOU, O PRINCES OF ISRAEL: REMOVEE VIOLENCE AND SPOIL, AND EXECUTE JUDGMENT AND JUSTICE, TAKE AWAY YOURF. EXACTIONS FROM MY PEOPLE, SAITH THE LORD GOD.D# 10 YE SHALL HAVE JUST BALANCES, AND A JUST EPHAH, AND A JUST BATH.F# 11 THE EPHAH AND THE BATH SHALL BE OF ONE MEASURE, THAT THE BATH MAYN CONTAIN THE TENTH PART OF AN HOMER, AND THE EPHAH THE TENTH PART OF AN HOMER:. THE MEASURE THEREOF SHALL BE AFTER THE HOMER.K# 12 AND THE SHEKEL SHALL BE TWENTY GERAHS: TWENTY SHEKELS, FIVE AND TWENTYT/ SHEKELS, FIFTEEN SHEKELS, SHALL BE YOUR MANEH.OL# 13 THIS IS THE OBLATION THAT YE SHALL OFFER; THE SIXTH PART OF AN EPHAH OFL AN HOMER OF WHEAT, AND YE SHALL GIVE THE SIXTH PART OF AN EPHAH OF AN HOMER OF BARLEY:NI# 14 CONCERNING THE ORDINANCE OF OIL, THE BATH OF OIL, YE SHALL OFFER THEHM TENTH PART OF A BATH OUT OF THE COR, WHICH IS AN HOMER OF TEN BATHS; FOR TENF BATHS ARE AN HOMER:F# 15 AND ONE LAMB OUT OF THE FLOCK, OUT OF TWO HUNDRED, OUT OF THE FATK PASTURES OF ISRAEL; FOR A MEAT OFFERING, AND FOR A BURNT OFFERING, AND FORBF PEACE OFFERINGS, TO MAKE RECONCILIATION FOR THEM, SAITH THE LORD GOD.J# 16 ALL THE PEOPLE OF THE LAND SHALL GIVE THIS OBLATION FOR THE PRINCE IN ISRAEL.G# 17 AND IT SHALL BE THE PRINCES PART TO GIVE BURNT OFFERINGS, AND MEATHL OFFERINGS, AND DRINK OFFERINGS, IN THE FEASTS, AND IN THE NEW MOONS, AND INN THE SABBATHS, IN ALL SOLEMNITIES OF THE HOUSE OF ISRAEL: HE SHALL PREPARE THEK SIN OFFERING, AND THE MEAT OFFERING, AND THE BURNT OFFERING, AND THE PEACE ; OFFERINGS, TO MAKE RECONCILIATION FOR THE HOUSE OF ISRAEL.SI# 18 THUS SAITH THE LORD GOD; IN THE FIRST MONTH, IN THE FIRST DAY OF THE H MONTH, THOU SHALT TAKE A YOUNG BULLOCK WITHOUT BLEMISH, AND CLEANSE THE SANCTUARY:TK# 19 AND THE PRIEST SHALL TAKE OF THE BLOOD OF THE SIN OFFERING, AND PUT ITEL UPON THE POSTS OF THE HOUSE, AND UPON THE FOUR CORNERS OF THE SETTLE OF THE: ALTAR, AND UPON THE POSTS OF THE GATE OF THE INNER COURT.I# 20 AND SO THOU SHALT DO THE SEVENTH DAY OF THE MONTH FOR EVERY ONE THATFE ERRETH, AND FOR HIM THAT IS SIMPLE: SO SHALL YE RECONCILE THE HOUSE.TJ# 21 IN THE FIRST MONTH, IN THE FOURTEENTH DAY OF THE MONTH, YE SHALL HAVEF THE PASSOVER, A FEAST OF SEVEN DAYS; UNLEAVENED BREAD SHALL BE EATEN.K# 22 AND UPON THAT DAY SHALL THE PRINCE PREPARE FOR HIMSELF AND FOR ALL THEE1 PEOPLE OF THE LAND A BULLOCK FOR A SIN OFFERING.OI# 23 AND SEVEN DAYS OF THE FEAST HE SHALL PREPARE A BURNT OFFERING TO THENN LORD, SEVEN BULLOCKS AND SEVEN RAMS WITHOUT BLEMISH DAILY THE SEVEN DAYS; AND- A KID OF THE GOATS DAILY FOR A SIN OFFERING. K# 24 AND HE SHALL PREPARE A MEAT OFFERING OF AN EPHAH FOR A BULLOCK, AND ANY1 EPHAH FOR A RAM, AND AN HIN OF OIL FOR AN EPHAH.TM# 25 IN THE SEVENTH MO00x0>=D%5%T6%! !NTH, IN THE FIFTEENTH DAY OF THE MONTH, SHALL HE DO THETN LIKE IN THE FEAST OF THE SEVEN DAYS, ACCORDING TO THE SIN OFFERING, ACCORDINGL TO THE BURNT OFFERING, AND ACCORDING TO THE MEAT OFFERING, AND ACCORDING TO THE OIL. = CHAPTER 46 VL# 1 THUS SAITH THE LORD GOD; THE GATE OF THE INNER COURT THAT LOOKETH TOWARDL THE EAST SHALL BE SHUT THE SIX WORKING DAYS; BUT ON THE SABBATH IT SHALL BE; OPENED, AND IN THE DAY OF THE NEW MOON IT SHALL BE OPENED. L# 2 AND THE PRINCE SHALL ENTER BY THE WAY OF THE PORCH OF THAT GATE WITHOUT,K AND SHALL STAND BY THE POST OF THE GATE, AND THE PRIESTS SHALL PREPARE HISNN BURNT OFFERING AND HIS PEACE OFFERINGS, AND HE SHALL WORSHIP AT THE THRESHOLDN OF THE GATE: THEN HE SHALL GO FORTH; BUT THE GATE SHALL NOT BE SHUT UNTIL THE EVENING.EJ# 3 LIKEWISE THE PEOPLE OF THE LAND SHALL WORSHIP AT THE DOOR OF THIS GATE6 BEFORE THE LORD IN THE SABBATHS AND IN THE NEW MOONS.K# 4 AND THE BURNT OFFERING THAT THE PRINCE SHALL OFFER UNTO THE LORD IN THELK SABBATH DAY SHALL BE SIX LAMBS WITHOUT BLEMISH, AND A RAM WITHOUT BLEMISH. L# 5 AND THE MEAT OFFERING SHALL BE AN EPHAH FOR A RAM, AND THE MEAT OFFERINGJ FOR THE LAMBS AS HE SHALL BE ABLE TO GIVE, AND AN HIN OF OIL TO AN EPHAH.F# 6 AND IN THE DAY OF THE NEW MOON IT SHALL BE A YOUNG BULLOCK WITHOUTB BLEMISH, AND SIX LAMBS, AND A RAM: THEY SHALL BE WITHOUT BLEMISH.H# 7 AND HE SHALL PREPARE A MEAT OFFERING, AN EPHAH FOR A BULLOCK, AND ANL EPHAH FOR A RAM, AND FOR THE LAMBS ACCORDING AS HIS HAND SHALL ATTAIN UNTO, AND AN HIN OF OIL TO AN EPHAH.MK# 8 AND WHEN THE PRINCE SHALL ENTER, HE SHALL GO IN BY THE WAY OF THE PORCH 9 OF THAT GATE, AND HE SHALL GO FORTH BY THE WAY THERE OF.LL# 9 BUT WHEN THE PEOPLE OF THE LAND SHALL COME BEFORE THE LORD IN THE SOLEMNM FEASTS, HE THAT ENTERETH IN BY THE WAY OF THE NORTH GATE TO WORSHIP SHALL GO I OUT BY THE WAY OF THE SOUTH GATE; AND HE THAT ENTERETH BY THE WAY OF THENL SOUTH GATE SHALL GO FORTH BY THE WAY OF THE NORTH GATE: HE SHALL NOT RETURNK BY THE WAY OF THE GATE WHEREBY HE CAME IN, BUT SHALL GO FORTH OVER AGAINSTT IT.K# 10 AND THE PRINCE IN THE MIDST OF THEM, WHEN THEY GO IN, SHALL GO IN; ANDH$ WHEN THEY GO FORTH, SHALL GO FORTH.K# 11 AND IN THE FEASTS AND IN THE SOLEMNITIES THE MEAT OFFERING SHALL BE ANNM EPHAH TO A BULLOCK, AND AN EPHAH TO A RAM, AND TO THE LAMBS AS HE IS ABLE TO % GIVE, AND AN HIN OF OIL TO AN EPHAH.DJ# 12 NOW WHEN THE PRINCE SHALL PREPARE A VOLUNTARY BURNT OFFERING OR PEACEK OFFERINGS VOLUNTARILY UNTO THE LORD, ONE SHALL THEN OPEN HIM THE GATE THATMI LOOKETH TOWARD THE EAST, AND HE SHALL PREPARE HIS BURNT OFFERING AND HISDK PEACE OFFERINGS, AS HE DID ON THE SABBATH DAY: THEN HE SHALL GO FORTH; AND / AFTER HIS GOING FORTH ONE SHALL SHUT THE GATE.TM# 13 THOU SHALT DAILY PREPARE A BURNT OFFERING UNTO THE LORD OF A LAMB OF THE A FIRST YEAR WITHOUT BLEMISH: THOU SHALT PREPARE IT EVERY MORNING.EK# 14 AND THOU SHALT PREPARE A MEAT OFFERING FOR IT EVERY MORNING, THE SIXTHPJ PART OF AN EPHAH, AND THE THIRD PART OF AN HIN OF OIL, TO TEMPER WITH THEJ FINE FLOUR; A MEAT OFFERING CONTINUALLY BY A PERPETUAL ORDINANCE UNTO THE LORD.J# 15 THUS SHALL THEY PREPARE THE LAMB, AND THE MEAT OFFERING, AND THE OIL,. EVERY MORNING FOR A CONTINUAL BURNT OFFERING.M# 16 THUS SAITH THE LORD GOD; IF THE PRINCE GIVE A GIFT UNTO ANY OF HIS SONS,HK THE INHERITANCE THEREOF SHALL BE HIS SONS; IT SHALL BE THEIR POSSESSION BYA INHERITANCE.RM# 17 BUT IF HE GIVE A GIFT OF HIS INHERITANCE TO ONE OF HIS SERVANTS, THEN ITTN SHALL BE HIS TO THE YEAR OF LIBERTY; AFTER IT SHALL RETURN TO THE PRINCE: BUT, HIS INHERITANCE SHALL BE HIS SONS FOR THEM.E# 18 MOREOVER THE PRINCE SHALL NOT TAKE OF THE PEOPLES INHERITANCE BY J OPPRESSION, TO THRUST THEM OUT OF THEIR POSSESSION; BUT HE SHALL GIVE HISL SONS INHERITANCE OUT OF HIS OWN POSSESSION: THAT MY PEOPLE BE NOT SCATTERED EVERY MAN FROM HIS POSSESSION.TH# 19 AFTER HE BROUGHT ME THROUGH THE ENTRY, WHICH WAS AT THE SIDE OF THEL GATE, INTO THE HOLY CHAMBERS OF THE PRIESTS, WHICH LOOKED TOWARD THE NORTH:: AND, BEHOLD, THERE WAS A PLAC00x8>{<<%X>%+%O-%TADATADATAE ON THE TWO SIDES WESTWARD.M# 20 THEN SAID HE UNTO ME, THIS IS THE PLACE WHERE THE PRIESTS SHALL BOIL THEKG TRESPASS OFFERING AND THE SIN OFFERING, WHERE THEY SHALL BAKE THE MEATRL OFFERING; THAT THEY BEAR THEM NOT OUT INTO THE UTTER COURT, TO SANCTIFY THE PEOPLE.L# 21 THEN HE BROUGHT ME FORTH INTO THE UTTER COURT, AND CAUSED ME TO PASS BYI THE FOUR CORNERS OF THE COURT; AND, BEHOLD, IN EVERY CORNER OF THE COURTY THERE WAS A COURT.SG# 22 IN THE FOUR CORNERS OF THE COURT THERE WERE COURTS JOINED OF FORTYEF CUBITS LONG AND THIRTY BROAD: THESE FOUR CORNERS WERE OF ONE MEASURE.J# 23 AND THERE WAS A ROW OF BUILDING ROUND ABOUT IN THEM, ROUND ABOUT THEMF FOUR, AND IT WAS MADE WITH BOILING PLACES UNDER THE ROWS ROUND ABOUT.L# 24 THEN SAID HE UNTO ME, THESE ARE THE PLACES OF THEM THAT BOIL, WHERE THE? MINISTERS OF THE HOUSE SHALL BOIL THE SACRIFICE OF THE PEOPLE.T = CHAPTER 47 BJ# 1 AFTERWARD HE BROUGHT ME AGAIN UNTO THE DOOR OF THE HOUSE; AND, BEHOLD,J WATERS ISSUED OUT FROM UNDER THE THRESHOLD OF THE HOUSE EASTWARD: FOR THEL FOREFRONT OF THE HOUSE STOOD TOWARD THE EAST, AND THE WATERS CAME DOWN FROMH UNDER FROM THE RIGHT SIDE OF THE HOUSE, AT THE SOUTH SIDE OF THE ALTAR.M# 2 THEN BROUGHT HE ME OUT OF THE WAY OF THE GATE NORTHWARD, AND LED ME ABOUTEK THE WAY WITHOUT UNTO THE UTTER GATE BY THE WAY THAT LOOKETH EASTWARD; AND, 0 BEHOLD, THERE RAN OUT WATERS ON THE RIGHT SIDE.J# 3 AND WHEN THE MAN THAT HAD THE LINE IN HIS HAND WENT FORTH EASTWARD, HEM MEASURED A THOUSAND CUBITS, AND HE BROUGHT ME THROUGH THE WATERS; THE WATERSF WERE TO THE ANKLES.H# 4 AGAIN HE MEASURED A THOUSAND, AND BROUGHT ME THROUGH THE WATERS; THEG WATERS WERE TO THE KNEES. AGAIN HE MEASURED A THOUSAND, AND BROUGHT ME ' THROUGH; THE WATERS WERE TO THE LOINS.AI# 5 AFTERWARD HE MEASURED A THOUSAND; AND IT WAS A RIVER THAT I COULD NOTEL PASS OVER: FOR THE WATERS WERE RISEN, WATERS TO SWIM IN, A RIVER THAT COULD NOT BE PASSED OVER.M# 6 AND HE SAID UNTO ME, SON OF MAN, HAST THOU SEEN THIS? THEN HE BROUGHT ME,H3 AND CAUSED ME TO RETURN TO THE BRINK OF THE RIVER.OL# 7 NOW WHEN I HAD RETURNED, BEHOLD, AT THE BANK OF THE RIVER WERE VERY MANY( TREES ON THE ONE SIDE AND ON THE OTHER.M# 8 THEN SAID HE UNTO ME, THESE WATERS ISSUE OUT TOWARD THE EAST COUNTRY, ANDSM GO DOWN INTO THE DESERT, AND GO INTO THE SEA: WHICH BEING BROUGHT FORTH INTO% THE SEA, THE WATERS SHALL BE HEALED.WJ# 9 AND IT SHALL COME TO PASS, THAT EVERY THING THAT LIVETH, WHICH MOVETH,K WHITHERSOEVER THE RIVERS SHALL COME, SHALL LIVE: AND THERE SHALL BE A VERYEK GREAT MULTITUDE OF FISH, BECAUSE THESE WATERS SHALL COME THITHER: FOR THEYAF SHALL BE HEALED; AND EVERY THING SHALL LIVE WHITHER THE RIVER COMETH.I# 10 AND IT SHALL COME TO PASS, THAT THE FISHERS SHALL STAND UPON IT FROMCM ENGEDI EVEN UNTO ENEGLAIM; THEY SHALL BE A PLACE TO SPREAD FORTH NETS; THEIRTF FISH SHALL BE ACCORDING TO THEIR KINDS, AS THE FISH OF THE GREAT SEA, EXCEEDING MANY.F# 11 BUT THE MIRY PLACES THEREOF AND THE MARISHES THEREOF SHALL NOT BE% HEALED; THEY SHALL BE GIVEN TO SALT.VK# 12 AND BY THE RIVER UPON THE BANK THEREOF, ON THIS SIDE AND ON THAT SIDE,TL SHALL GROW ALL TREES FOR MEAT, WHOSE LEAF SHALL NOT FADE, NEITHER SHALL THEK FRUIT THEREOF BE CONSUMED: IT SHALL BRING FORTH NEW FRUIT ACCORDING TO HISEM MONTHS, BECAUSE THEIR WATERS THEY ISSUED OUT OF THE SANCTUARY: AND THE FRUITF> THEREOF SHALL BE FOR MEAT, AND THE LEAF THEREOF FOR MEDICINE.H# 13 THUS SAITH THE LORD GOD; THIS SHALL BE THE BORDER, WHEREBY YE SHALLM INHERIT THE LAND ACCORDING TO THE TWELVE TRIBES OF ISRAEL: JOSEPH SHALL HAVEI TWO PORTIONS.L# 14 AND YE SHALL INHERIT IT, ONE AS WELL AS ANOTHER: CONCERNING THE WHICH IK LIFTED UP MINE HAND TO GIVE IT UNTO YOUR FATHERS: AND THIS LAND SHALL FALLA UNTO YOU FOR INHERITANCE.M# 15 AND THIS SHALL BE THE BORDER OF THE LAND TOWARD THE NORTH SIDE, FROM THE 3 GREAT SEA, THE WAY OF HETHLON, AS MEN GO TO ZEDAD;EK# 16 HAMATH, BEROTHAH, SIBRAIM, WHICH IS BETWEEN THE BORDER OF DAMASCUS ANDDF THE BORDER OF HAMATH; HAZARHATTICON, WHICH IS BY THE COAST OF HAURAN.L# 17 A00x@>=D%5%T6%! !ND THE BORDER FROM THE SEA SHALL BE HAZARENAN, THE BORDER OF DAMASCUS,I AND THE NORTH NORTHWARD, AND THE BORDER OF HAMATH. AND THIS IS THE NORTHI SIDE.K# 18 AND THE EAST SIDE YE SHALL MEASURE FROM HAURAN, AND FROM DAMASCUS, ANDTM FROM GILEAD, AND FROM THE LAND OF ISRAEL BY JORDAN, FROM THE BORDER UNTO THEA% EAST SEA. AND THIS IS THE EAST SIDE.DM# 19 AND THE SOUTH SIDE SOUTHWARD, FROM TAMAR EVEN TO THE WATERS OF STRIFE INDJ KADESH, THE RIVER TO THE GREAT SEA. AND THIS IS THE SOUTH SIDE SOUTHWARD.J# 20 THE WEST SIDE ALSO SHALL BE THE GREAT SEA FROM THE BORDER, TILL A MAN1 COME OVER AGAINST HAMATH. THIS IS THE WEST SIDE. M# 21 SO SHALL YE DIVIDE THIS LAND UNTO YOU ACCORDING TO THE TRIBES OF ISRAEL.UE# 22 AND IT SHALL COME TO PASS, THAT YE SHALL DIVIDE IT BY LOT FOR AN I INHERITANCE UNTO YOU, AND TO THE STRANGERS THAT SOJOURN AMONG YOU, WHICHDJ SHALL BEGET CHILDREN AMONG YOU: AND THEY SHALL BE UNTO YOU AS BORN IN THEK COUNTRY AMONG THE CHILDREN OF ISRAEL; THEY SHALL HAVE INHERITANCE WITH YOUR AMONG THE TRIBES OF ISRAEL.K# 23 AND IT SHALL COME TO PASS, THAT IN WHAT TRIBE THE STRANGER SOJOURNETH,T= THERE SHALL YE GIVE HIM HIS INHERITANCE, SAITH THE LORD GOD.Y = CHAPTER 48 M# 1 NOW THESE ARE THE NAMES OF THE TRIBES. FROM THE NORTH END TO THE COAST OF N THE WAY OF HETHLON, AS ONE GOETH TO HAMATH, HAZARENAN, THE BORDER OF DAMASCUSL NORTHWARD, TO THE COAST OF HAMATH; FOR THESE ARE HIS SIDES EAST AND WEST; A PORTION FOR DAN.AF# 2 AND BY THE BORDER OF DAN, FROM THE EAST SIDE UNTO THE WEST SIDE, A PORTION FOR ASHER.EM# 3 AND BY THE BORDER OF ASHER, FROM THE EAST SIDE EVEN UNTO THE WEST SIDE, AT PORTION FOR NAPHTALI.K# 4 AND BY THE BORDER OF NAPHTALI, FROM THE EAST SIDE UNTO THE WEST SIDE, AH PORTION FOR MANASSEH.K# 5 AND BY THE BORDER OF MANASSEH, FROM THE EAST SIDE UNTO THE WEST SIDE, AT PORTION FOR EPHRAIM.RM# 6 AND BY THE BORDER OF EPHRAIM, FROM THE EAST SIDE EVEN UNTO THE WEST SIDE,A A PORTION FOR REUBEN.I# 7 AND BY THE BORDER OF REUBEN, FROM THE EAST SIDE UNTO THE WEST SIDE, A, PORTION FOR JUDAH.RL# 8 AND BY THE BORDER OF JUDAH, FROM THE EAST SIDE UNTO THE WEST SIDE, SHALLJ BE THE OFFERING WHICH YE SHALL OFFER OF FIVE AND TWENTY THOUSAND REEDS INN BREADTH, AND IN LENGTH AS ONE OF THE OTHER PARTS, FROM THE EAST SIDE UNTO THE: WEST SIDE: AND THE SANCTUARY SHALL BE IN THE MIDST OF IT.G# 9 THE OBLATION THAT YE SHALL OFFER UNTO THE LORD SHALL BE OF FIVE ANDE; TWENTY THOUSAND IN LENGTH, AND OF TEN THOUSAND IN BREADTH.EL# 10 AND FOR THEM, EVEN FOR THE PRIESTS, SHALL BE THIS HOLY OBLATION; TOWARDF THE NORTH FIVE AND TWENTY THOUSAND IN LENGTH, AND TOWARD THE WEST TENM THOUSAND IN BREADTH, AND TOWARD THE EAST TEN THOUSAND IN BREADTH, AND TOWARDEL THE SOUTH FIVE AND TWENTY THOUSAND IN LENGTH: AND THE SANCTUARY OF THE LORD SHALL BE IN THE MIDST THEREOF.CJ# 11 IT SHALL BE FOR THE PRIESTS THAT ARE SANCTIFIED OF THE SONS OF ZADOK;M WHICH HAVE KEPT MY CHARGE, WHICH WENT NOT ASTRAY WHEN THE CHILDREN OF ISRAELN) WENT ASTRAY, AS THE LEVITES WENT ASTRAY. M# 12 AND THIS OBLATION OF THE LAND THAT IS OFFERED SHALL BE UNTO THEM A THINGO( MOST HOLY BY THE BORDER OF THE LEVITES.K# 13 AND OVER AGAINST THE BORDER OF THE PRIESTS THE LEVITES SHALL HAVE FIVEEK AND TWENTY THOUSAND IN LENGTH, AND TEN THOUSAND IN BREADTH: ALL THE LENGTHDA SHALL BE FIVE AND TWENTY THOUSAND, AND THE BREADTH TEN THOUSAND.SF# 14 AND THEY SHALL NOT SELL OF IT, NEITHER EXCHANGE, NOR ALIENATE THE7 FIRSTFRUITS OF THE LAND: FOR IT IS HOLY UNTO THE LORD. I# 15 AND THE FIVE THOUSAND, THAT ARE LEFT IN THE BREADTH OVER AGAINST THEAE FIVE AND TWENTY THOUSAND, SHALL BE A PROFANE PLACE FOR THE CITY, FORHG DWELLING, AND FOR SUBURBS: AND THE CITY SHALL BE IN THE MIDST THEREOF.HJ# 16 AND THESE SHALL BE THE MEASURES THEREOF; THE NORTH SIDE FOUR THOUSANDL AND FIVE HUNDRED, AND THE SOUTH SIDE FOUR THOUSAND AND FIVE HUNDRED, AND ONN THE EAST SIDE FOUR THOUSAND AND FIVE HUNDRED, AND THE WEST SIDE FOUR THOUSAND AND FIVE HUNDRED.J# 17 AND THE SUBURBS OF THE CITY SHALL BE TOWARD THE NORTH TWO HUNDRED ANDK FIFTY, AND TOWARD THE SOU00xH>yN><%X>%+%O-%TADATADATATH TWO HUNDRED AND FIFTY, AND TOWARD THE EAST TWOR> HUNDRED AND FIFTY, AND TOWARD THE WEST TWO HUNDRED AND FIFTY.L# 18 AND THE RESIDUE IN LENGTH OVER AGAINST THE OBLATION OF THE HOLY PORTIONK SHALL BE TEN THOUSAND EASTWARD, AND TEN THOUSAND WESTWARD: AND IT SHALL BE N OVER AGAINST THE OBLATION OF THE HOLY PORTION; AND THE INCREASE THEREOF SHALL+ BE FOR FOOD UNTO THEM THAT SERVE THE CITY.FI# 19 AND THEY THAT SERVE THE CITY SHALL SERVE IT OUT OF ALL THE TRIBES OFO ISRAEL.J# 20 ALL THE OBLATION SHALL BE FIVE AND TWENTY THOUSAND BY FIVE AND TWENTYN THOUSAND: YE SHALL OFFER THE HOLY OBLATION FOURSQUARE, WITH THE POSSESSION OF THE CITY.H# 21 AND THE RESIDUE SHALL BE FOR THE PRINCE, ON THE ONE SIDE AND ON THEL OTHER OF THE HOLY OBLATION, AND OF THE POSSESSION OF THE CITY, OVER AGAINSTI THE FIVE AND TWENTY THOUSAND OF THE OBLATION TOWARD THE EAST BORDER, ANDUK WESTWARD OVER AGAINST THE FIVE AND TWENTY THOUSAND TOWARD THE WEST BORDER, K OVER AGAINST THE PORTIONS FOR THE PRINCE: AND IT SHALL BE THE HOLY OBLATION> AND THE SANCTUARY OF THE HOUSE SHALL BE IN THE MIDST THEREOF.L# 22 MOREOVER FROM THE POSSESSION OF THE LEVITES, AND FROM THE POSSESSION OFN THE CITY, BEING IN THE MIDST OF THAT WHICH IS THE PRINCES, BETWEEN THE BORDER> OF JUDAH AND THE BORDER OF BENJAMIN, SHALL BE FOR THE PRINCE.J# 23 AS FOR THE REST OF THE TRIBES, FROM THE EAST SIDE UNTO THE WEST SIDE, BENJAMIN SHALL HAVE A PORTION.WJ# 24 AND BY THE BORDER OF BENJAMIN, FROM THE EAST SIDE UNTO THE WEST SIDE, SIMEON SHALL HAVE A PORTION. H# 25 AND BY THE BORDER OF SIMEON, FROM THE EAST SIDE UNTO THE WEST SIDE, ISSACHAR A PORTION.J# 26 AND BY THE BORDER OF ISSACHAR, FROM THE EAST SIDE UNTO THE WEST SIDE, ZEBULUN A PORTION.CM# 27 AND BY THE BORDER OF ZEBULUN, FROM THE EAST SIDE UNTO THE WEST SIDE, GADL A PORTION.PL# 28 AND BY THE BORDER OF GAD, AT THE SOUTH SIDE SOUTHWARD, THE BORDER SHALLI BE EVEN FROM TAMAR UNTO THE WATERS OF STRIFE IN KADESH, AND TO THE RIVER  TOWARD THE GREAT SEA.L# 29 THIS IS THE LAND WHICH YE SHALL DIVIDE BY LOT UNTO THE TRIBES OF ISRAELC FOR INHERITANCE, AND THESE ARE THEIR PORTIONS, SAITH THE LORD GOD.6E# 30 AND THESE ARE THE GOINGS OUT OF THE CITY ON THE NORTH SIDE, FOUR$ THOUSAND AND FIVE HUNDRED MEASURES.H# 31 AND THE GATES OF THE CITY SHALL BE AFTER THE NAMES OF THE TRIBES OFJ ISRAEL: THREE GATES NORTHWARD; ONE GATE OF REUBEN, ONE GATE OF JUDAH, ONE GATE OF LEVI.J# 32 AND AT THE EAST SIDE FOUR THOUSAND AND FIVE HUNDRED: AND THREE GATES;? AND ONE GATE OF JOSEPH, ONE GATE OF BENJAMIN, ONE GATE OF DAN.UM# 33 AND AT THE SOUTH SIDE FOUR THOUSAND AND FIVE HUNDRED MEASURES: AND THREE F GATES; ONE GATE OF SIMEON, ONE GATE OF ISSACHAR, ONE GATE OF ZEBULUN.M# 34 AT THE WEST SIDE FOUR THOUSAND AND FIVE HUNDRED, WITH THEIR THREE GATES; : ONE GATE OF GAD, ONE GATE OF ASHER, ONE GATE OF NAPHTALI.L# 35 IT WAS ROUND ABOUT EIGHTEEN THOUSAND MEASURES: AND THE NAME OF THE CITY+ FROM THAT DAY SHALL BE, THE LORD IS THERE. FIVE HUNDRED: AND THREE GATES;? AND ONE GATE OF JOSEPH, ONE GATE OF BENJAMIN, ONE GAT* BOOK27 DANIELA = CHAPTER 1 B# 1 IN THE THIRD YEAR OF THE REIGN OF JEHOIAKIM KING OF JUDAH CAME@ NEBUCHADNEZZAR KING OF BABYLON UNTO JERUSALEM, AND BESIEGED IT.M# 2 AND THE LORD GAVE JEHOIAKIM KING OF JUDAH INTO HIS HAND, WITH PART OF THEOM VESSELS OF THE HOUSE OF GOD: WHICH HE CARRIED INTO THE LAND OF SHINAR TO THEUL HOUSE OF HIS GOD; AND HE BROUGHT THE VESSELS INTO THE TREASURE HOUSE OF HIS GOD.LG# 3 AND THE KING SPAKE UNTO ASHPENAZ THE MASTER OF HIS EUNUCHS, THAT HEEN SHOULD BRING CERTAIN OF THE CHILDREN OF ISRAEL, AND OF THE KINGS SEED, AND OF THE PRINCES;OJ# 4 CHILDREN IN WHOM WAS NO BLEMISH, BUT WELL FAVOURED, AND SKILFUL IN ALLM WISDOM, AND CUNNING IN KNOWLEDGE, AND UNDERSTANDING SCIENCE, AND SUCH AS HADNL ABILITY IN THEM TO STAND IN THE KINGS PALACE, AND WHOM THEY MIGHT TEACH THE* LEARNING AND THE TONGUE OF THE CHALDEANS.K# 5 AND THE KING APPOINTED THEM A DAILY PROVISION OF THE KINGS MEAT, AND OF I THE WINE WHICH HE DRANK: SO NOURISHING THEM THREE YEARS, THAT AT THE END * THEREOF00yP>=D%5%T6%! ! THEY MIGHT STAND BEFORE THE KING.M# 6 NOW AMONG THESE WERE OF THE CHILDREN OF JUDAH, DANIEL, HANANIAH, MISHAEL,W AND AZARIAH:NK# 7 UNTO WHOM THE PRINCE OF THE EUNUCHS GAVE NAMES: FOR HE GAVE UNTO DANIELEK THE NAME OF BELTESHAZZAR; AND TO HANANIAH, OF SHADRACH; AND TO MISHAEL, OFH& MESHACH; AND TO AZARIAH, OF ABEDNEGO.J# 8 BUT DANIEL PURPOSED IN HIS HEART THAT HE WOULD NOT DEFILE HIMSELF WITHN THE PORTION OF THE KINGS MEAT, NOR WITH THE WINE WHICH HE DRANK: THEREFORE HEI REQUESTED OF THE PRINCE OF THE EUNUCHS THAT HE MIGHT NOT DEFILE HIMSELF.MM# 9 NOW GOD HAD BROUGHT DANIEL INTO FAVOUR AND TENDER LOVE WITH THE PRINCE OFI THE EUNUCHS.WM# 10 AND THE PRINCE OF THE EUNUCHS SAID UNTO DANIEL, I FEAR MY LORD THE KING,FN WHO HATH APPOINTED YOUR MEAT AND YOUR DRINK: FOR WHY SHOULD HE SEE YOUR FACESM WORSE LIKING THAN THE CHILDREN WHICH ARE OF YOUR SORT? THEN SHALL YE MAKE MET ENDANGER MY HEAD TO THE KING.L# 11 THEN SAID DANIEL TO MELZAR, WHOM THE PRINCE OF THE EUNUCHS HAD SET OVER( DANIEL, HANANIAH, MISHAEL, AND AZARIAH,M# 12 PROVE THY SERVANTS, I BESEECH THEE, TEN DAYS; AND LET THEM GIVE US PULSE  TO EAT, AND WATER TO DRINK.B# 13 THEN LET OUR COUNTENANCES BE LOOKED UPON BEFORE THEE, AND THEN COUNTENANCE OF THE CHILDREN THAT EAT OF THE PORTION OF THE KINGS MEAT: AND AS$ THOU SEEST, DEAL WITH THY SERVANTS.F# 14 SO HE CONSENTED TO THEM IN THIS MATTER, AND PROVED THEM TEN DAYS.M# 15 AND AT THE END OF TEN DAYS THEIR COUNTENANCES APPEARED FAIRER AND FATTERHL IN FLESH THAN ALL THE CHILDREN WHICH DID EAT THE PORTION OF THE KINGS MEAT.L# 16 THUS MELZAR TOOK AWAY THE PORTION OF THEIR MEAT, AND THE WINE THAT THEY# SHOULD DRINK; AND GAVE THEM PULSE. I# 17 AS FOR THESE FOUR CHILDREN, GOD GAVE THEM KNOWLEDGE AND SKILL IN ALLRM LEARNING AND WISDOM: AND DANIEL HAD UNDERSTANDING IN ALL VISIONS AND DREAMS.YK# 18 NOW AT THE END OF THE DAYS THAT THE KING HAD SAID HE SHOULD BRING THEMDJ IN, THEN THE PRINCE OF THE EUNUCHS BROUGHT THEM IN BEFORE NEBUCHADNEZZAR.L# 19 AND THE KING COMMUNED WITH THEM; AND AMONG THEM ALL WAS FOUND NONE LIKEN DANIEL, HANANIAH, MISHAEL, AND AZARIAH: THEREFORE STOOD THEY BEFORE THE KING.K# 20 AND IN ALL MATTERS OF WISDOM AND UNDERSTANDING, THAT THE KING ENQUIRED,C OF THEM, HE FOUND THEM TEN TIMES BETTER THAN ALL THE MAGICIANS AND ( ASTROLOGERS THAT WERE IN ALL HIS REALM.A# 21 AND DANIEL CONTINUED EVEN UNTO THE FIRST YEAR OF KING CYRUS.H = CHAPTER 2 H# 1 AND IN THE SECOND YEAR OF THE REIGN OF NEBUCHADNEZZAR NEBUCHADNEZZARL DREAMED DREAMS, WHEREWITH HIS SPIRIT WAS TROUBLED, AND HIS SLEEP BRAKE FROM HIM.EK# 2 THEN THE KING COMMANDED TO CALL THE MAGICIANS, AND THE ASTROLOGERS, ANDNK THE SORCERERS, AND THE CHALDEANS, FOR TO SHEW THE KING HIS DREAMS. SO THEYE CAME AND STOOD BEFORE THE KING.J# 3 AND THE KING SAID UNTO THEM, I HAVE DREAMED A DREAM, AND MY SPIRIT WAS TROUBLED TO KNOW THE DREAM.K# 4 THEN SPAKE THE CHALDEANS TO THE KING IN SYRIACK, O KING, LIVE FOR EVER:NB TELL THY SERVANTS THE DREAM, AND WE WILL SHEW THE INTERPRETATION.K# 5 THE KING ANSWERED AND SAID TO THE CHALDEANS, THE THING IS GONE FROM ME:HN IF YE WILL NOT MAKE KNOWN UNTO ME THE DREAM, WITH THE INTERPRETATION THEREOF,E YE SHALL BE CUT IN PIECES, AND YOUR HOUSES SHALL BE MADE A DUNGHILL.CF# 6 BUT IF YE SHEW THE DREAM, AND THE INTERPRETATION THEREOF, YE SHALLH RECEIVE OF ME GIFTS AND REWARDS AND GREAT HONOUR: THEREFORE SHEW ME THE' DREAM, AND THE INTERPRETATION THEREOF.CK# 7 THEY ANSWERED AGAIN AND SAID, LET THE KING TELL HIS SERVANTS THE DREAM,E+ AND WE WILL SHEW THE INTERPRETATION OF IT.AJ# 8 THE KING ANSWERED AND SAID, I KNOW OF CERTAINTY THAT YE WOULD GAIN THE0 TIME, BECAUSE YE SEE THE THING IS GONE FROM ME.L# 9 BUT IF YE WILL NOT MAKE KNOWN UNTO ME THE DREAM, THERE IS BUT ONE DECREEJ FOR YOU: FOR YE HAVE PREPARED LYING AND CORRUPT WORDS TO SPEAK BEFORE ME,M TILL THE TIME BE CHANGED: THEREFORE TELL ME THE DREAM, AND I SHALL KNOW THAT + YE CAN SHEW ME THE INTERPRETATION THEREOF.EI# 10 THE CHALDEANS ANSWERED BEFORE THE KING, AND SAID, THERE IS NOT A MANSK UPON THE EARTH THAT CAN SHEW THE KINGS 00yX>N><%X>%+%O-%TADATADATAMATTER: THEREFORE THERE IS NO KING,TK LORD, NOR RULER, THAT ASKED SUCH THINGS AT ANY MAGICIAN, OR ASTROLOGER, OR. CHALDEAN.L# 11 AND IT IS A RARE THING THAT THE KING REQUIRETH, AND THERE IS NONE OTHERN THAT CAN SHEW IT BEFORE THE KING, EXCEPT THE GODS, WHOSE DWELLING IS NOT WITH FLESH.EI# 12 FOR THIS CAUSE THE KING WAS ANGRY AND VERY FURIOUS, AND COMMANDED TO % DESTROY ALL THE WISE MEN OF BABYLON.DJ# 13 AND THE DECREE WENT FORTH THAT THE WISE MEN SHOULD BE SLAIN; AND THEY+ SOUGHT DANIEL AND HIS FELLOWS TO BE SLAIN.HJ# 14 THEN DANIEL ANSWERED WITH COUNSEL AND WISDOM TO ARIOCH THE CAPTAIN OFG THE KINGS GUARD, WHICH WAS GONE FORTH TO SLAY THE WISE MEN OF BABYLON: K# 15 HE ANSWERED AND SAID TO ARIOCH THE KINGS CAPTAIN, WHY IS THE DECREE SO A HASTY FROM THE KING? THEN ARIOCH MADE THE THING KNOWN TO DANIEL. H# 16 THEN DANIEL WENT IN, AND DESIRED OF THE KING THAT HE WOULD GIVE HIM: TIME, AND THAT HE WOULD SHEW THE KING THE INTERPRETATION.I# 17 THEN DANIEL WENT TO HIS HOUSE, AND MADE THE THING KNOWN TO HANANIAH,S& MISHAEL, AND AZARIAH, HIS COMPANIONS:H# 18 THAT THEY WOULD DESIRE MERCIES OF THE GOD OF HEAVEN CONCERNING THISK SECRET; THAT DANIEL AND HIS FELLOWS SHOULD NOT PERISH WITH THE REST OF THEC WISE MEN OF BABYLON.YL# 19 THEN WAS THE SECRET REVEALED UNTO DANIEL IN A NIGHT VISION. THEN DANIEL BLESSED THE GOD OF HEAVEN.NL# 20 DANIEL ANSWERED AND SAID, BLESSED BE THE NAME OF GOD FOR EVER AND EVER: FOR WISDOM AND MIGHT ARE HIS:F# 21 AND HE CHANGETH THE TIMES AND THE SEASONS: HE REMOVETH KINGS, ANDM SETTETH UP KINGS: HE GIVETH WISDOM UNTO THE WISE, AND KNOWLEDGE TO THEM THATC KNOW UNDERSTANDING:G# 22 HE REVEALETH THE DEEP AND SECRET THINGS: HE KNOWETH WHAT IS IN THEH+ DARKNESS, AND THE LIGHT DWELLETH WITH HIM.YL# 23 I THANK THEE, AND PRAISE THEE, O THOU GOD OF MY FATHERS, WHO HAST GIVENN ME WISDOM AND MIGHT, AND HAST MADE KNOWN UNTO ME NOW WHAT WE DESIRED OF THEE:7 FOR THOU HAST NOW MADE KNOWN UNTO US THE KINGS MATTER.IH# 24 THEREFORE DANIEL WENT IN UNTO ARIOCH, WHOM THE KING HAD ORDAINED TOM DESTROY THE WISE MEN OF BABYLON: HE WENT AND SAID THUS UNTO HIM; DESTROY NOTCK THE WISE MEN OF BABYLON: BRING ME IN BEFORE THE KING, AND I WILL SHEW UNTOE THE KING THE INTERPRETATION.AJ# 25 THEN ARIOCH BROUGHT IN DANIEL BEFORE THE KING IN HASTE, AND SAID THUSL UNTO HIM, I HAVE FOUND A MAN OF THE CAPTIVES OF JUDAH, THAT WILL MAKE KNOWN" UNTO THE KING THE INTERPRETATION.K# 26 THE KING ANSWERED AND SAID TO DANIEL, WHOSE NAME WAS BELTESHAZZAR, ARTNE THOU ABLE TO MAKE KNOWN UNTO ME THE DREAM WHICH I HAVE SEEN, AND THES INTERPRETATION THEREOF?L# 27 DANIEL ANSWERED IN THE PRESENCE OF THE KING, AND SAID, THE SECRET WHICHL THE KING HATH DEMANDED CANNOT THE WISE MEN, THE ASTROLOGERS, THE MAGICIANS,% THE SOOTHSAYERS, SHEW UNTO THE KING;IM# 28 BUT THERE IS A GOD IN HEAVEN THAT REVEALETH SECRETS, AND MAKETH KNOWN TODM THE KING NEBUCHADNEZZAR WHAT SHALL BE IN THE LATTER DAYS. THY DREAM, AND THEW- VISIONS OF THY HEAD UPON THY BED, ARE THESE;AL# 29 AS FOR THEE, O KING, THY THOUGHTS CAME INTO THY MIND UPON THY BED, WHATM SHOULD COME TO PASS HEREAFTER: AND HE THAT REVEALETH SECRETS MAKETH KNOWN TOG THEE WHAT SHALL COME TO PASS.K# 30 BUT AS FOR ME, THIS SECRET IS NOT REVEALED TO ME FOR ANY WISDOM THAT ITI HAVE MORE THAN ANY LIVING, BUT FOR THEIR SAKES THAT SHALL MAKE KNOWN THETL INTERPRETATION TO THE KING, AND THAT THOU MIGHTEST KNOW THE THOUGHTS OF THY HEART. L# 31 THOU, O KING, SAWEST, AND BEHOLD A GREAT IMAGE. THIS GREAT IMAGE, WHOSEF BRIGHTNESS WAS EXCELLENT, STOOD BEFORE THEE; AND THE FORM THEREOF WAS TERRIBLE.J# 32 THIS IMAGES HEAD WAS OF FINE GOLD, HIS BREAST AND HIS ARMS OF SILVER,# HIS BELLY AND HIS THIGHS OF BRASS,0># 33 HIS LEGS OF IRON, HIS FEET PART OF IRON AND PART OF CLAY.M# 34 THOU SAWEST TILL THAT A STONE WAS CUT OUT WITHOUT HANDS, WHICH SMOTE THE J IMAGE UPON HIS FEET THAT WERE OF IRON AND CLAY, AND BRAKE THEM TO PIECES.M# 35 THEN WAS THE IRON, THE CLAY, THE BRASS, THE SILVER, AND THE GOLD, BROKENAM TO PIECES TOGETHER, AND BECAME LIKE THE CHAFF OF THE SUMMER THRESHING00y`>=D%5%T6%! !FLOORS;EJ AND THE WIND CARRIED THEM AWAY, THAT NO PLACE WAS FOUND FOR THEM: AND THEI STONE THAT SMOTE THE IMAGE BECAME A GREAT MOUNTAIN, AND FILLED THE WHOLEI EARTH.FJ# 36 THIS IS THE DREAM; AND WE WILL TELL THE INTERPRETATION THEREOF BEFORE THE KING.M# 37 THOU, O KING, ART A KING OF KINGS: FOR THE GOD OF HEAVEN HATH GIVEN THEED+ A KINGDOM, POWER, AND STRENGTH, AND GLORY.NK# 38 AND WHERESOEVER THE CHILDREN OF MEN DWELL, THE BEASTS OF THE FIELD AND,J THE FOWLS OF THE HEAVEN HATH HE GIVEN INTO THINE HAND, AND HATH MADE THEE1 RULER OVER THEM ALL. THOU ART THIS HEAD OF GOLD.AM# 39 AND AFTER THEE SHALL ARISE ANOTHER KINGDOM INFERIOR TO THEE, AND ANOTHERLB THIRD KINGDOM OF BRASS, WHICH SHALL BEAR RULE OVER ALL THE EARTH.F# 40 AND THE FOURTH KINGDOM SHALL BE STRONG AS IRON: FORASMUCH AS IRONJ BREAKETH IN PIECES AND SUBDUETH ALL THINGS: AND AS IRON THAT BREAKETH ALL, THESE, SHALL IT BREAK IN PIECES AND BRUISE.I# 41 AND WHEREAS THOU SAWEST THE FEET AND TOES, PART OF POTTERS CLAY, ANDEL PART OF IRON, THE KINGDOM SHALL BE DIVIDED; BUT THERE SHALL BE IN IT OF THEN STRENGTH OF THE IRON, FORASMUCH AS THOU SAWEST THE IRON MIXED WITH MIRY CLAY.L# 42 AND AS THE TOES OF THE FEET WERE PART OF IRON, AND PART OF CLAY, SO THE3 KINGDOM SHALL BE PARTLY STRONG, AND PARTLY BROKEN.SI# 43 AND WHEREAS THOU SAWEST IRON MIXED WITH MIRY CLAY, THEY SHALL MINGLEAK THEMSELVES WITH THE SEED OF MEN: BUT THEY SHALL NOT CLEAVE ONE TO ANOTHER,A% EVEN AS IRON IS NOT MIXED WITH CLAY.SM# 44 AND IN THE DAYS OF THESE KINGS SHALL THE GOD OF HEAVEN SET UP A KINGDOM,TK WHICH SHALL NEVER BE DESTROYED: AND THE KINGDOM SHALL NOT BE LEFT TO OTHERHL PEOPLE, BUT IT SHALL BREAK IN PIECES AND CONSUME ALL THESE KINGDOMS, AND IT SHALL STAND FOR EVER.H# 45 FORASMUCH AS THOU SAWEST THAT THE STONE WAS CUT OUT OF THE MOUNTAINN WITHOUT HANDS, AND THAT IT BRAKE IN PIECES THE IRON, THE BRASS, THE CLAY, THEK SILVER, AND THE GOLD; THE GREAT GOD HATH MADE KNOWN TO THE KING WHAT SHALLNI COME TO PASS HEREAFTER: AND THE DREAM IS CERTAIN, AND THE INTERPRETATIONH THEREOF SURE.L# 46 THEN THE KING NEBUCHADNEZZAR FELL UPON HIS FACE, AND WORSHIPPED DANIEL,L AND COMMANDED THAT THEY SHOULD OFFER AN OBLATION AND SWEET ODOURS UNTO HIM.M# 47 THE KING ANSWERED UNTO DANIEL, AND SAID, OF A TRUTH IT IS, THAT YOUR GODWN IS A GOD OF GODS, AND A LORD OF KINGS, AND A REVEALER OF SECRETS, SEEING THOU COULDEST REVEAL THIS SECRET.LJ# 48 THEN THE KING MADE DANIEL A GREAT MAN, AND GAVE HIM MANY GREAT GIFTS,H AND MADE HIM RULER OVER THE WHOLE PROVINCE OF BABYLON, AND CHIEF OF THE, GOVERNORS OVER ALL THE WISE MEN OF BABYLON.I# 49 THEN DANIEL REQUESTED OF THE KING, AND HE SET SHADRACH, MESHACH, ANDOM ABEDNEGO, OVER THE AFFAIRS OF THE PROVINCE OF BABYLON: BUT DANIEL SAT IN THEA GATE OF THE KING. = CHAPTER 3 N# 1 NEBUCHADNEZZAR THE KING MADE AN IMAGE OF GOLD, WHOSE HEIGHT WAS THREESCOREI CUBITS, AND THE BREADTH THEREOF SIX CUBITS: HE SET IT UP IN THE PLAIN OFI" DURA, IN THE PROVINCE OF BABYLON.I# 2 THEN NEBUCHADNEZZAR THE KING SENT TO GATHER TOGETHER THE PRINCES, THEEN GOVERNORS, AND THE CAPTAINS, THE JUDGES, THE TREASURERS, THE COUNSELLORS, THEL SHERIFFS, AND ALL THE RULERS OF THE PROVINCES, TO COME TO THE DEDICATION OF4 THE IMAGE WHICH NEBUCHADNEZZAR THE KING HAD SET UP.B# 3 THEN THE PRINCES, THE GOVERNORS, AND CAPTAINS, THE JUDGES, THEE TREASURERS, THE COUNSELLORS, THE SHERIFFS, AND ALL THE RULERS OF THETH PROVINCES, WERE GATHERED TOGETHER UNTO THE DEDICATION OF THE IMAGE THATI NEBUCHADNEZZAR THE KING HAD SET UP; AND THEY STOOD BEFORE THE IMAGE THATI NEBUCHADNEZZAR HAD SET UP.HJ# 4 THEN AN HERALD CRIED ALOUD, TO YOU IT IS COMMANDED, O PEOPLE, NATIONS, AND LANGUAGES,FL# 5 THAT AT WHAT TIME YE HEAR THE SOUND OF THE CORNET, FLUTE, HARP, SACKBUT,J PSALTERY, DULCIMER, AND ALL KINDS OF MUSICK, YE FALL DOWN AND WORSHIP THE7 GOLDEN IMAGE THAT NEBUCHADNEZZAR THE KING HATH SET UP: J# 6 AND WHOSO FALLETH NOT DOWN AND WORSHIPPETH SHALL THE SAME HOUR BE CAST+ INTO THE MIDST OF A BURNING FIERY FURNACE. F# 7 THEREFORE AT THAT TIME, WHEN ALL THE PEOPLE HEARD TH00yh>N><%X>%+%O-%TADATADATAE SOUND OF THEI CORNET, FLUTE, HARP, SACKBUT, PSALTERY, AND ALL KINDS OF MUSICK, ALL THEPL PEOPLE, THE NATIONS, AND THE LANGUAGES, FELL DOWN AND WORSHIPPED THE GOLDEN/ IMAGE THAT NEBUCHADNEZZAR THE KING HAD SET UP.EM# 8 WHEREFORE AT THAT TIME CERTAIN CHALDEANS CAME NEAR, AND ACCUSED THE JEWS.BJ# 9 THEY SPAKE AND SAID TO THE KING NEBUCHADNEZZAR, O KING, LIVE FOR EVER.I# 10 THOU, O KING, HAST MADE A DECREE, THAT EVERY MAN THAT SHALL HEAR THEAK SOUND OF THE CORNET, FLUTE, HARP, SACKBUT, PSALTERY, AND DULCIMER, AND ALL? KINDS OF MUSICK, SHALL FALL DOWN AND WORSHIP THE GOLDEN IMAGE: L# 11 AND WHOSO FALLETH NOT DOWN AND WORSHIPPETH, THAT HE SHOULD BE CAST INTO& THE MIDST OF A BURNING FIERY FURNACE.F# 12 THERE ARE CERTAIN JEWS WHOM THOU HAST SET OVER THE AFFAIRS OF THEN PROVINCE OF BABYLON, SHADRACH, MESHACH, AND ABEDNEGO; THESE MEN, O KING, HAVEI NOT REGARDED THEE: THEY SERVE NOT THY GODS, NOR WORSHIP THE GOLDEN IMAGEA WHICH THOU HAST SET UP.J# 13 THEN NEBUCHADNEZZAR IN HIS RAGE AND FURY COMMANDED TO BRING SHADRACH,D MESHACH, AND ABEDNEGO. THEN THEY BROUGHT THESE MEN BEFORE THE KING.I# 14 NEB U CHAD NEZ ZAR SPAKE AND SAID UNTO THEM, IS IT TRUE, O SHADRACH,TM MESHACH, AND ABEDNEGO, DO NOT YE SERVE MY GODS, NOR WORSHIP THE GOLDEN IMAGET WHICH I HAVE SET UP?FJ# 15 NOW IF YE BE READY THAT AT WHAT TIME YE HEAR THE SOUND OF THE CORNET,J FLUTE, HARP, SACKBUT, PSALTERY, AND DULCIMER, AND ALL KINDS OF MUSICK, YEK FALL DOWN AND WORSHIP THE IMAGE WHICH I HAVE MADE; WELL: BUT IF YE WORSHIPFF NOT, YE SHALL BE CAST THE SAME HOUR INTO THE MIDST OF A BURNING FIERYE FURNACE; AND WHO IS THAT GOD THAT SHALL DELIVER YOU OUT OF MY HANDS?UF# 16 SHADRACH, MESHACH, AND ABEDNEGO, ANSWERED AND SAID TO THE KING, OB NEBUCHADNEZZAR, WE ARE NOT CAREFUL TO ANSWER THEE IN THIS MATTER.F# 17 IF IT BE SO, OUR GOD WHOM WE SERVE IS ABLE TO DELIVER US FROM THEI BURNING FIERY FURNACE, AND HE WILL DELIVER US OUT OF THINE HAND, O KING. J# 18 BUT IF NOT, BE IT KNOWN UNTO THEE, O KING, THAT WE WILL NOT SERVE THY; GODS, NOR WORSHIP THE GOLDEN IMAGE WHICH THOU HAST SET UP.AI# 19 THEN WAS NEBUCHADNEZZAR FULL OF FURY, AND THE FORM OF HIS VISAGE WAS I CHANGED AGAINST SHADRACH, MESHACH, AND ABEDNEGO: THEREFORE HE SPAKE, ANDKM COMMANDED THAT THEY SHOULD HEAT THE FURNACE ONE SEVEN TIMES MORE THAN IT WAS7 WONT TO BE HEATED. G# 20 AND HE COMMANDED THE MOST MIGHTY MEN THAT WERE IN HIS ARMY TO BIND I SHADRACH, MESHACH, AND ABEDNEGO, AND TO CAST THEM INTO THE BURNING FIERYN FURNACE. K# 21 THEN THESE MEN WERE BOUND IN THEIR COATS, THEIR HOSEN, AND THEIR HATS, L AND THEIR OTHER GARMENTS, AND WERE CAST INTO THE MIDST OF THE BURNING FIERY FURNACE. H# 22 THEREFORE BECAUSE THE KINGS COMMANDMENT WAS URGENT, AND THE FURNACEL EXCEEDING HOT, THE FLAMES OF THE FIRE SLEW THOSE MEN THAT TOOK UP SHADRACH, MESHACH, AND ABEDNEGO.TJ# 23 AND THESE THREE MEN, SHADRACH, MESHACH, AND ABEDNEGO, FELL DOWN BOUND- INTO THE MIDST OF THE BURNING FIERY FURNACE.SI# 24 THEN NEBUCHADNEZZAR THE KING WAS ASTONIED, AND ROSE UP IN HASTE, ANDIK SPAKE, AND SAID UNTO HIS COUNSELLORS, DID NOT WE CAST THREE MEN BOUND INTOWK THE MIDST OF THE FIRE? THEY ANSWERED AND SAID UNTO THE KING, TRUE, O KING.UL# 25 HE ANSWERED AND SAID, LO, I SEE FOUR MEN LOOSE, WALKING IN THE MIDST OFL THE FIRE, AND THEY HAVE NO HURT; AND THE FORM OF THE FOURTH IS LIKE THE SON OF GOD.M# 26 THEN NEBUCHADNEZZAR CAME NEAR TO THE MOUTH OF THE BURNING FIERY FURNACE,IN AND SPAKE, AND SAID, SHADRACH, MESHACH, AND ABEDNEGO, YE SERVANTS OF THE MOSTM HIGH GOD, COME FORTH, AND COME HITHER. THEN SHADRACH, MESHACH, AND ABEDNEGO,W% CAME FORTH OF THE MIDST OF THE FIRE.TI# 27 AND THE PRINCES, GOVERNORS, AND CAPTAINS, AND THE KINGS COUNSELLORS, J BEING GATHERED TOGETHER, SAW THESE MEN, UPON WHOSE BODIES THE FIRE HAD NOF POWER, NOR WAS AN HAIR OF THEIR HEAD SINGED, NEITHER WERE THEIR COATS3 CHANGED, NOR THE SMELL OF FIRE HAD PASSED ON THEM.OI# 28 THEN NEBUCHADNEZZAR SPAKE, AND SAID, BLESSED BE THE GOD OF SHADRACH,,K MESHACH, AND ABEDNEGO, WHO HATH SENT HIS ANGEL, AND DELIVERED HIS SERVANTSRH THAT 00yp>=D%5%T6%! !TRUSTED IN HIM, AND HAVE CHANGED THE KINGS WORD, AND YIELDED THEIRM BODIES, THAT THEY MIGHT NOT SERVE NOR WORSHIP ANY GOD, EXCEPT THEIR OWN GOD.SH# 29 THEREFORE I MAKE A DECREE, THAT EVERY PEOPLE, NATION, AND LANGUAGE,F WHICH SPEAK ANY THING AMISS AGAINST THE GOD OF SHADRACH, MESHACH, ANDM ABEDNEGO, SHALL BE CUT IN PIECES, AND THEIR HOUSES SHALL BE MADE A DUNGHILL:E@ BECAUSE THERE IS NO OTHER GOD THAT CAN DELIVER AFTER THIS SORT.L# 30 THEN THE KING PROMOTED SHADRACH, MESHACH, AND ABEDNEGO, IN THE PROVINCE OF BABYLON. = CHAPTER 4 J# 1 NEBUCHADNEZZAR THE KING, UNTO ALL PEOPLE, NATIONS, AND LANGUAGES, THAT6 DWELL IN ALL THE EARTH; PEACE BE MULTIPLIED UNTO YOU.J# 2 I THOUGHT IT GOOD TO SHEW THE SIGNS AND WONDERS THAT THE HIGH GOD HATH WROUGHT TOWARD ME.EK# 3 HOW GREAT ARE HIS SIGNS! AND HOW MIGHTY ARE HIS WONDERS! HIS KINGDOM ISHK AN EVERLASTING KINGDOM, AND HIS DOMINION IS FROM GENERATION TO GENERATION.IM# 4 I NEBUCHADNEZZAR WAS AT REST IN MINE HOUSE, AND FLOURISHING IN MY PALACE:GL# 5 I SAW A DREAM WHICH MADE ME AFRAID, AND THE THOUGHTS UPON MY BED AND THE VISIONS OF MY HEAD TROUBLED ME.L# 6 THEREFORE MADE I A DECREE TO BRING IN ALL THE WISE MEN OF BABYLON BEFOREH ME, THAT THEY MIGHT MAKE KNOWN UNTO ME THE INTERPRETATION OF THE DREAM.G# 7 THEN CAME IN THE MAGICIANS, THE ASTROLOGERS, THE CHALDEANS, AND THE!K SOOTHSAYERS: AND I TOLD THE DREAM BEFORE THEM; BUT THEY DID NOT MAKE KNOWNN$ UNTO ME THE INTERPRETATION THEREOF.J# 8 BUT AT THE LAST DANIEL CAME IN BEFORE ME, WHOSE NAME WAS BELTESHAZZAR,M ACCORDING TO THE NAME OF MY GOD, AND IN WHOM IS THE SPIRIT OF THE HOLY GODS:A) AND BEFORE HIM I TOLD THE DREAM, SAYING,EK# 9 O BELTESHAZZAR, MASTER OF THE MAGICIANS, BECAUSE I KNOW THAT THE SPIRITNG OF THE HOLY GODS IS IN THEE, AND NO SECRET TROUBLETH THEE, TELL ME THEAF VISIONS OF MY DREAM THAT I HAVE SEEN, AND THE INTERPRETATION THEREOF.K# 10 THUS WERE THE VISIONS OF MINE HEAD IN MY BED; I SAW, AND BEHOLD A TREEO= IN THE MIDST OF THE EARTH, AND THE HEIGHT THEREOF WAS GREAT. G# 11 THE TREE GREW, AND WAS STRONG, AND THE HEIGHT THEREOF REACHED UNTOT; HEAVEN, AND THE SIGHT THEREOF TO THE END OF ALL THE EARTH:ML# 12 THE LEAVES THEREOF WERE FAIR, AND THE FRUIT THEREOF MUCH, AND IN IT WASL MEAT FOR ALL: THE BEASTS OF THE FIELD HAD SHADOW UNDER IT, AND THE FOWLS OFE THE HEAVEN DWELT IN THE BOUGHS THEREOF, AND ALL FLESH WAS FED OF IT.HL# 13 I SAW IN THE VISIONS OF MY HEAD UPON MY BED, AND, BEHOLD, A WATCHER AND# AN HOLY ONE CAME DOWN FROM HEAVEN;NF# 14 HE CRIED ALOUD, AND SAID THUS, HEW DOWN THE TREE, AND CUT OFF HISJ BRANCHES, SHAKE OFF HIS LEAVES, AND SCATTER HIS FRUIT: LET THE BEASTS GET5 AWAY FROM UNDER IT, AND THE FOWLS FROM HIS BRANCHES:,M# 15 NEVERTHELESS LEAVE THE STUMP OF HIS ROOTS IN THE EARTH, EVEN WITH A BANDEL OF IRON AND BRASS, IN THE TENDER GRASS OF THE FIELD; AND LET IT BE WET WITHN THE DEW OF HEAVEN, AND LET HIS PORTION BE WITH THE BEASTS IN THE GRASS OF THE EARTH:,M# 16 LET HIS HEART BE CHANGED FROM MANS, AND LET A BEASTS HEART BE GIVEN UNTOU( HIM; AND LET SEVEN TIMES PASS OVER HIM.M# 17 THIS MATTER IS BY THE DECREE OF THE WATCHERS, AND THE DEMAND BY THE WORDSL OF THE HOLY ONES: TO THE INTENT THAT THE LIVING MAY KNOW THAT THE MOST HIGHG RULETH IN THE KINGDOM OF MEN, AND GIVETH IT TO WHOMSOEVER HE WILL, ANDN& SETTETH UP OVER IT THE BASEST OF MEN.J# 18 THIS DREAM I KING NEBUCHADNEZZAR HAVE SEEN. NOW THOU, O BELTESHAZZAR,H DECLARE THE INTERPRETATION THEREOF, FORASMUCH AS ALL THE WISE MEN OF MYL KINGDOM ARE NOT ABLE TO MAKE KNOWN UNTO ME THE INTERPRETATION: BUT THOU ART2 ABLE; FOR THE SPIRIT OF THE HOLY GODS IS IN THEE.M# 19 THEN DANIEL, WHOSE NAME WAS BELTESHAZZAR, WAS ASTONIED FOR ONE HOUR, AND K HIS THOUGHTS TROUBLED HIM. THE KING SPAKE, AND SAID, BELTESHAZZAR, LET NOTVN THE DREAM, OR THE INTERPRETATION THEREOF, TROUBLE THEE. BELTESHAZZAR ANSWERED@ AND SAID, MY LORD, THE DREAM BE TO THEM THAT HATE THEE, AND THE) INTERPRETATION THEREOF TO THINE ENEMIES.FH# 20 THE TREE THAT THOU SAWEST, WHICH GREW, AND WAS STRONG, WHOSE HEIGHTA REACHED UNTO THE HEAVEN, AND THE SI00yx>N><%X>%+%O-%TADATADATAGHT THEREOF TO ALL THE EARTH;EK# 21 WHOSE LEAVES WERE FAIR, AND THE FRUIT THEREOF MUCH, AND IN IT WAS MEATTL FOR ALL; UNDER WHICH THE BEASTS OF THE FIELD DWELT, AND UPON WHOSE BRANCHES. THE FOWLS OF THE HEAVEN HAD THEIR HABITATION:L# 22 IT IS THOU, O KING, THAT ART GROWN AND BECOME STRONG: FOR THY GREATNESSN IS GROWN, AND REACHETH UNTO HEAVEN, AND THY DOMINION TO THE END OF THE EARTH.H# 23 AND WHEREAS THE KING SAW A WATCHER AND AN HOLY ONE COMING DOWN FROMN HEAVEN, AND SAYING, HEW THE TREE DOWN, AND DESTROY IT; YET LEAVE THE STUMP OFK THE ROOTS THEREOF IN THE EARTH, EVEN WITH A BAND OF IRON AND BRASS, IN THEFM TENDER GRASS OF THE FIELD; AND LET IT BE WET WITH THE DEW OF HEAVEN, AND LETEM HIS PORTION BE WITH THE BEASTS OF THE FIELD, TILL SEVEN TIMES PASS OVER HIM;RK# 24 THIS IS THE INTERPRETATION, O KING, AND THIS IS THE DECREE OF THE MOST,. HIGH, WHICH IS COME UPON MY LORD THE KING: ITL# 25 THAT THEY SHALL DRIVE THEE FROM MEN, AND THY DWELLING SHALL BE WITH THEM BEASTS OF THE FIELD, AND THEY SHALL MAKE THEE TO EAT GRASS AS OXEN, AND THEYOM SHALL WET THEE WITH THE DEW OF HEAVEN, AND SEVEN TIMES SHALL PASS OVER THEE,RN TILL THOU KNOW THAT THE MOST HIGH RULETH IN THE KINGDOM OF MEN, AND GIVETH IT TO WHOMSOEVER HE WILL.TI# 26 AND WHEREAS THEY COMMANDED TO LEAVE THE STUMP OF THE TREE ROOTS; THY,K KINGDOM SHALL BE SURE UNTO THEE, AFTER THAT THOU SHALT HAVE KNOWN THAT THER HEAVENS DO RULE.5M# 27 WHEREFORE, O KING, LET MY COUNSEL BE ACCEPTABLE UNTO THEE, AND BREAK OFFTN THY SINS BY RIGHTEOUSNESS, AND THINE INIQUITIES BY SHEWING MERCY TO THE POOR;0 IF IT MAY BE A LENGTHENING OF THY TRANQUILLITY.0# 28 ALL THIS CAME UPON THE KING NEBUCHADNEZZAR.J# 29 AT THE END OF TWELVE MONTHS HE WALKED IN THE PALACE OF THE KINGDOM OF BABYLON.DK# 30 THE KING SPAKE, AND SAID, IS NOT THIS GREAT BABYLON, THAT I HAVE BUILTSM FOR THE HOUSE OF THE KINGDOM BY THE MIGHT OF MY POWER, AND FOR THE HONOUR OF MY MAJESTY?K# 31 WHILE THE WORD WAS IN THE KINGS MOUTH, THERE FELL A VOICE FROM HEAVEN,YM SAYING, O KING NEBUCHADNEZZAR, TO THEE IT IS SPOKEN; THE KINGDOM IS DEPARTED FROM THEE.EK# 32 AND THEY SHALL DRIVE THEE FROM MEN, AND THY DWELLING SHALL BE WITH THEAJ BEASTS OF THE FIELD: THEY SHALL MAKE THEE TO EAT GRASS AS OXEN, AND SEVENM TIMES SHALL PASS OVER THEE, UNTIL THOU KNOW THAT THE MOST HIGH RULETH IN THEI5 KINGDOM OF MEN, AND GIVETH IT TO WHOMSOEVER HE WILL.TJ# 33 THE SAME HOUR WAS THE THING FULFILLED UPON NEBUCHADNEZZAR: AND HE WASN DRIVEN FROM MEN, AND DID EAT GRASS AS OXEN, AND HIS BODY WAS WET WITH THE DEWN OF HEAVEN, TILL HIS HAIRS WERE GROWN LIKE EAGLES FEATHERS, AND HIS NAILS LIKE BIRDS CLAWS.HI# 34 AND AT THE END OF THE DAYS I NEBUCHADNEZZAR LIFTED UP MINE EYES UNTOYN HEAVEN, AND MINE UNDERSTANDING RETURNED UNTO ME, AND I BLESSED THE MOST HIGH,J AND I PRAISED AND HONOURED HIM THAT LIVETH FOR EVER, WHOSE DOMINION IS ANH EVERLASTING DOMINION, AND HIS KINGDOM IS FROM GENERATION TO GENERATION:H# 35 AND ALL THE INHABITANTS OF THE EARTH ARE REPUTED AS NOTHING: AND HEM DOETH ACCORDING TO HIS WILL IN THE ARMY OF HEAVEN, AND AMONG THE INHABITANTSEL OF THE EARTH: AND NONE CAN STAY HIS HAND, OR SAY UNTO HIM, WHAT DOEST THOU?I# 36 AT THE SAME TIME MY REASON RETURNED UNTO ME; AND FOR THE GLORY OF MYSM KINGDOM, MINE HONOUR AND BRIGHTNESS RETURNED UNTO ME; AND MY COUNSELLORS ANDUL MY LORDS SOUGHT UNTO ME; AND I WAS ESTABLISHED IN MY KINGDOM, AND EXCELLENT MAJESTY WAS ADDED UNTO ME.OM# 37 NOW I NEBUCHADNEZZAR PRAISE AND EXTOL AND HONOUR THE KING OF HEAVEN, ALLIN WHOSE WORKS ARE TRUTH, AND HIS WAYS JUDGMENT: AND THOSE THAT WALK IN PRIDE HE IS ABLE TO ABASE. = CHAPTER 5 J# 1 BELSHAZZAR THE KING MADE A GREAT FEAST TO A THOUSAND OF HIS LORDS, AND DRANK WINE BEFORE THE THOUSAND.L# 2 BELSHAZZAR, WHILES HE TASTED THE WINE, COMMANDED TO BRING THE GOLDEN ANDK SILVER VESSELS WHICH HIS FATHER NEBUCHADNEZZAR HAD TAKEN OUT OF THE TEMPLE K WHICH WAS IN JERUSALEM; THAT THE KING, AND HIS PRINCES, HIS WIVES, AND HISA! CONCUBINES, MIGHT DRINK THEREIN.IM# 3 THEN THEY BROUGHT THE GOLDEN VESSELS THAT WERE TAKEN00y>=D%5%T6%! ! OUT OF THE TEMPLE OFAL THE HOUSE OF GOD WHICH WAS AT JERUSALEM; AND THE KING, AND HIS PRINCES, HIS* WIVES, AND HIS CONCUBINES, DRANK IN THEM.K# 4 THEY DRANK WINE, AND PRAISED THE GODS OF GOLD, AND OF SILVER, OF BRASS,E OF IRON, OF WOOD, AND OF STONE.F# 5 IN THE SAME HOUR CAME FORTH FINGERS OF A MANS HAND, AND WROTE OVERK AGAINST THE CANDLESTICK UPON THE PLAISTER OF THE WALL OF THE KINGS PALACE:V2 AND THE KING SAW THE PART OF THE HAND THAT WROTE.M# 6 THEN THE KINGS COUNTENANCE WAS CHANGED, AND HIS THOUGHTS TROUBLED HIM, SOTJ THAT THE JOINTS OF HIS LOINS WERE LOOSED, AND HIS KNEES SMOTE ONE AGAINST ANOTHER. L# 7 THE KING CRIED ALOUD TO BRING IN THE ASTROLOGERS, THE CHALDEANS, AND THEF SOOTHSAYERS. AND THE KING SPAKE, AND SAID TO THE WISE MEN OF BABYLON,K WHOSOEVER SHALL READ THIS WRITING, AND SHEW ME THE INTERPRETATION THEREOF,EL SHALL BE CLOTHED WITH SCARLET, AND HAVE A CHAIN OF GOLD ABOUT HIS NECK, AND) SHALL BE THE THIRD RULER IN THE KINGDOM. M# 8 THEN CAME IN ALL THE KINGS WISE MEN: BUT THEY COULD NOT READ THE WRITING,A7 NOR MAKE KNOWN TO THE KING THE INTERPRETATION THEREOF.EF# 9 THEN WAS KING BELSHAZZAR GREATLY TROUBLED, AND HIS COUNTENANCE WAS- CHANGED IN HIM, AND HIS LORDS WERE ASTONIED.NM# 10 NOW THE QUEEN BY REASON OF THE WORDS OF THE KING AND HIS LORDS CAME INTOHL THE BANQUET HOUSE: AND THE QUEEN SPAKE AND SAID, O KING, LIVE FOR EVER: LETC NOT THY THOUGHTS TROUBLE THEE, NOR LET THY COUNTENANCE BE CHANGED:HK# 11 THERE IS A MAN IN THY KINGDOM, IN WHOM IS THE SPIRIT OF THE HOLY GODS; K AND IN THE DAYS OF THY FATHER LIGHT AND UNDERSTANDING AND WISDOM, LIKE THETG WISDOM OF THE GODS, WAS FOUND IN HIM; WHOM THE KING NEBUCHADNEZZAR THYNC FATHER, THE KING, I SAY, THY FATHER, MADE MASTER OF THE MAGICIANS,Q) ASTROLOGERS, CHALDEANS, AND SOOTHSAYERS; H# 12 FORASMUCH AS AN EXCELLENT SPIRIT, AND KNOWLEDGE, AND UNDERSTANDING,I INTERPRETING OF DREAMS, AND SHEWING OF HARD SENTENCES, AND DISSOLVING OFEM DOUBTS, WERE FOUND IN THE SAME DANIEL, WHOM THE KING NAMED BELTESHAZZAR: NOWF; LET DANIEL BE CALLED, AND HE WILL SHEW THE INTERPRETATION.DL# 13 THEN WAS DANIEL BROUGHT IN BEFORE THE KING. AND THE KING SPAKE AND SAIDN UNTO DANIEL, ART THOU THAT DANIEL, WHICH ART OF THE CHILDREN OF THE CAPTIVITY8 OF JUDAH, WHOM THE KING MY FATHER BROUGHT OUT OF JEWRY?K# 14 I HAVE EVEN HEARD OF THEE, THAT THE SPIRIT OF THE GODS IS IN THEE, AND,D THAT LIGHT AND UNDERSTANDING AND EXCELLENT WISDOM IS FOUND IN THEE.K# 15 AND NOW THE WISE MEN, THE ASTROLOGERS, HAVE BEEN BROUGHT IN BEFORE ME,ZN THAT THEY SHOULD READ THIS WRITING, AND MAKE KNOWN UNTO ME THE INTERPRETATIONB THEREOF: BUT THEY COULD NOT SHEW THE INTERPRETATION OF THE THING:H# 16 AND I HAVE HEARD OF THEE, THAT THOU CANST MAKE INTERPRETATIONS, ANDN DISSOLVE DOUBTS: NOW IF THOU CANST READ THE WRITING, AND MAKE KNOWN TO ME THEM INTERPRETATION THEREOF, THOU SHALT BE CLOTHED WITH SCARLET, AND HAVE A CHAIN E OF GOLD ABOUT THY NECK, AND SHALT BE THE THIRD RULER IN THE KINGDOM.WG# 17 THEN DANIEL ANSWERED AND SAID BEFORE THE KING, LET THY GIFTS BE TOOK THYSELF, AND GIVE THY REWARDS TO ANOTHER; YET I WILL READ THE WRITING UNTOU4 THE KING, AND MAKE KNOWN TO HIM THE INTERPRETATION.M# 18 O THOU KING, THE MOST HIGH GOD GAVE NEBUCHADNEZZAR THY FATHER A KINGDOM,S$ AND MAJESTY, AND GLORY, AND HONOUR:C# 19 AND FOR THE MAJESTY THAT HE GAVE HIM, ALL PEOPLE, NATIONS, ANDHN LANGUAGES, TREMBLED AND FEARED BEFORE HIM: WHOM HE WOULD HE SLEW; AND WHOM HEK WOULD HE KEPT ALIVE; AND WHOM HE WOULD HE SET UP; AND WHOM HE WOULD HE PUTF DOWN.M# 20 BUT WHEN HIS HEART WAS LIFTED UP, AND HIS MIND HARDENED IN PRIDE, HE WASLB DEPOSED FROM HIS KINGLY THRONE, AND THEY TOOK HIS GLORY FROM HIM:L# 21 AND HE WAS DRIVEN FROM THE SONS OF MEN; AND HIS HEART WAS MADE LIKE THEJ BEASTS, AND HIS DWELLING WAS WITH THE WILD ASSES: THEY FED HIM WITH GRASSN LIKE OXEN, AND HIS BODY WAS WET WITH THE DEW OF HEAVEN; TILL HE KNEW THAT THEJ MOST HIGH GOD RULED IN THE KINGDOM OF MEN, AND THAT HE APPOINTETH OVER IT WHOMSOEVER HE WILL.I# 22 AND THOU HIS SON, O BELSHAZZAR, HAST NOT HUMBLED THINE 00y>N><%X>%+%O-%TADATADATAHEART, THOUGHD THOU KNEWEST ALL THIS;DI# 23 BUT HAST LIFTED UP THYSELF AGAINST THE LORD OF HEAVEN; AND THEY HAVEIK BROUGHT THE VESSELS OF HIS HOUSE BEFORE THEE, AND THOU, AND THY LORDS, THYTN WIVES, AND THY CONCUBINES, HAVE DRUNK WINE IN THEM; AND THOU HAST PRAISED THEN GODS OF SILVER, AND GOLD, OF BRASS, IRON, WOOD, AND STONE, WHICH SEE NOT, NORK HEAR, NOR KNOW: AND THE GOD IN WHOSE HAND THY BREATH IS, AND WHOSE ARE ALLW# THY WAYS, HAST THOU NOT GLORIFIED: F# 24 THEN WAS THE PART OF THE HAND SENT FROM HIM; AND THIS WRITING WAS WRITTEN.K# 25 AND THIS IS THE WRITING THAT WAS WRITTEN, MENE, MENE, TEKEL, UPHARSIN.BI# 26 THIS IS THE INTERPRETATION OF THE THING: MENE; GOD HATH NUMBERED THY KINGDOM, AND FINISHED IT.D# 27 TEKEL; THOU ART WEIGHED IN THE BALANCES, AND ART FOUND WANTING.H# 28 PERES; THY KINGDOM IS DIVIDED, AND GIVEN TO THE MEDES AND PERSIANS.M# 29 THEN COMMANDED BELSHAZZAR, AND THEY CLOTHED DANIEL WITH SCARLET, AND PUTSM A CHAIN OF GOLD ABOUT HIS NECK, AND MADE A PROCLAMATION CONCERNING HIM, THATH- HE SHOULD BE THE THIRD RULER IN THE KINGDOM.EB# 30 IN THAT NIGHT WAS BELSHAZZAR THE KING OF THE CHALDEANS SLAIN.K# 31 AND DARIUS THE MEDIAN TOOK THE KINGDOM, BEING ABOUT THREESCORE AND TWON YEARS OLD.. = CHAPTER 6 L# 1 IT PLEASED DARIUS TO SET OVER THE KINGDOM AN HUNDRED AND TWENTY PRINCES,( WHICH SHOULD BE OVER THE WHOLE KINGDOM;G# 2 AND OVER THESE THREE PRESIDENTS; OF WHOM DANIEL WAS FIRST: THAT THESK PRINCES MIGHT GIVE ACCOUNTS UNTO THEM, AND THE KING SHOULD HAVE NO DAMAGE.NL# 3 THEN THIS DANIEL WAS PREFERRED ABOVE THE PRESIDENTS AND PRINCES, BECAUSEI AN EXCELLENT SPIRIT WAS IN HIM; AND THE KING THOUGHT TO SET HIM OVER THEH WHOLE REALM.HJ# 4 THEN THE PRESIDENTS AND PRINCES SOUGHT TO FIND OCCASION AGAINST DANIELE CONCERNING THE KINGDOM; BUT THEY COULD FIND NONE OCCASION NOR FAULT;,L FORASMUCH AS HE WAS FAITHFUL, NEITHER WAS THERE ANY ERROR OR FAULT FOUND IN HIM.HL# 5 THEN SAID THESE MEN, WE SHALL NOT FIND ANY OCCASION AGAINST THIS DANIEL,= EXCEPT WE FIND IT AGAINST HIM CONCERNING THE LAW OF HIS GOD.RI# 6 THEN THESE PRESIDENTS AND PRINCES ASSEMBLED TOGETHER TO THE KING, ANDI0 SAID THUS UNTO HIM, KING DARIUS, LIVE FOR EVER.J# 7 ALL THE PRESIDENTS OF THE KINGDOM, THE GOVERNORS, AND THE PRINCES, THEL COUNSELLORS, AND THE CAPTAINS, HAVE CONSULTED TOGETHER TO ESTABLISH A ROYALK STATUTE, AND TO MAKE A FIRM DECREE, THAT WHOSOEVER SHALL ASK A PETITION OFNL ANY GOD OR MAN FOR THIRTY DAYS, SAVE OF THEE, O KING, HE SHALL BE CAST INTO THE DEN OF LIONS.K# 8 NOW, O KING, ESTABLISH THE DECREE, AND SIGN THE WRITING, THAT IT BE NOTIM CHANGED, ACCORDING TO THE LAW OF THE MEDES AND PERSIANS, WHICH ALTERETH NOT.N<# 9 WHEREFORE KING DARIUS SIGNED THE WRITING AND THE DECREE.H# 10 NOW WHEN DANIEL KNEW THAT THE WRITING WAS SIGNED, HE WENT IN TO HISN HOUSE; AND HIS WINDOWS BEING OPEN IN HIS CHAMBER TOWARD JERUSALEM, HE KNEELEDN UPON HIS KNEES THREE TIMES A DAY, AND PRAYED, AND GAVE THANKS BEFORE HIS GOD, AS HE DID AFORETIME.LB# 11 THEN THESE MEN ASSEMBLED, AND FOUND DANIEL PRAYING AND MAKING SUPPLICATION BEFORE HIS GOD.AH# 12 THEN THEY CAME NEAR, AND SPAKE BEFORE THE KING CONCERNING THE KINGSG DECREE; HAST THOU NOT SIGNED A DECREE, THAT EVERY MAN THAT SHALL ASK ADN PETITION OF ANY GOD OR MAN WITHIN THIRTY DAYS, SAVE OF THEE, O KING, SHALL BEK CAST INTO THE DEN OF LIONS? THE KING ANSWERED AND SAID, THE THING IS TRUE,LD ACCORDING TO THE LAW OF THE MEDES AND PERSIANS, WHICH ALTERETH NOT.J# 13 THEN ANSWERED THEY AND SAID BEFORE THE KING, THAT DANIEL, WHICH IS OFL THE CHILDREN OF THE CAPTIVITY OF JUDAH, REGARDETH NOT THEE, O KING, NOR THEI DECREE THAT THOU HAST SIGNED, BUT MAKETH HIS PETITION THREE TIMES A DAY.UG# 14 THEN THE KING, WHEN HE HEARD THESE WORDS, WAS SORE DISPLEASED WITHGN HIMSELF, AND SET HIS HEART ON DANIEL TO DELIVER HIM: AND HE LABOURED TILL THE& GOING DOWN OF THE SUN TO DELIVER HIM.L# 15 THEN THESE MEN ASSEMBLED UNTO THE KING, AND SAID UNTO THE KING, KNOW, OL KING, THAT THE LAW OF THE MEDES AND PERSIANS IS, THAT NO DECREE NOR STATUTE, WHICH THE KING ESTABLIS00y>=D%5%T6%! !HETH MAY BE CHANGED.L# 16 THEN THE KING COMMANDED, AND THEY BROUGHT DANIEL, AND CAST HIM INTO THEI DEN OF LIONS. NOW THE KING SPAKE AND SAID UNTO DANIEL, THY GOD WHOM THOUH+ SERVEST CONTINUALLY, HE WILL DELIVER THEE.FI# 17 AND A STONE WAS BROUGHT, AND LAID UPON THE MOUTH OF THE DEN; AND THEIK KING SEALED IT WITH HIS OWN SIGNET, AND WITH THE SIGNET OF HIS LORDS; THATN4 THE PURPOSE MIGHT NOT BE CHANGED CONCERNING DANIEL.L# 18 THEN THE KING WENT TO HIS PALACE, AND PASSED THE NIGHT FASTING: NEITHERL WERE INSTRUMENTS OF MUSICK BROUGHT BEFORE HIM: AND HIS SLEEP WENT FROM HIM.J# 19 THEN THE KING AROSE VERY EARLY IN THE MORNING, AND WENT IN HASTE UNTO THE DEN OF LIONS.G# 20 AND WHEN HE CAME TO THE DEN, HE CRIED WITH A LAMENTABLE VOICE UNTOSH DANIEL: AND THE KING SPAKE AND SAID TO DANIEL, O DANIEL, SERVANT OF THEL LIVING GOD, IS THY GOD, WHOM THOU SERVEST CONTINUALLY, ABLE TO DELIVER THEE FROM THE LIONS?;# 21 THEN SAID DANIEL UNTO THE KING, O KING, LIVE FOR EVER.PJ# 22 MY GOD HATH SENT HIS ANGEL, AND HATH SHUT THE LIONS MOUTHS, THAT THEYN HAVE NOT HURT ME: FORASMUCH AS BEFORE HIM INNOCENCY WAS FOUND IN ME; AND ALSO* BEFORE THEE, O KING, HAVE I DONE NO HURT.H# 23 THEN WAS THE KING EXCEEDINGLY GLAD FOR HIM, AND COMMANDED THAT THEYM SHOULD TAKE DANIEL UP OUT OF THE DEN. SO DANIEL WAS TAKEN UP OUT OF THE DEN,EJ AND NO MANNER OF HURT WAS FOUND UPON HIM, BECAUSE HE BELIEVED IN HIS GOD.I# 24 AND THE KING COMMANDED, AND THEY BROUGHT THOSE MEN WHICH HAD ACCUSED L DANIEL, AND THEY CAST THEM INTO THE DEN OF LIONS, THEM, THEIR CHILDREN, ANDN THEIR WIVES; AND THE LIONS HAD THE MASTERY OF THEM, AND BRAKE ALL THEIR BONES6 IN PIECES OR EVER THEY CAME AT THE BOTTOM OF THE DEN.I# 25 THEN KING DARIUS WROTE UNTO ALL PEOPLE, NATIONS, AND LANGUAGES, THAT 6 DWELL IN ALL THE EARTH; PEACE BE MULTIPLIED UNTO YOU.J# 26 I MAKE A DECREE, THAT IN EVERY DOMINION OF MY KINGDOM MEN TREMBLE ANDJ FEAR BEFORE THE GOD OF DANIEL: FOR HE IS THE LIVING GOD, AND STEDFAST FORJ EVER, AND HIS KINGDOM THAT WHICH SHALL NOT BE DESTROYED, AND HIS DOMINION SHALL BE EVEN UNTO THE END.K# 27 HE DELIVERETH AND RESCUETH, AND HE WORKETH SIGNS AND WONDERS IN HEAVENSE AND IN EARTH, WHO HATH DELIVERED DANIEL FROM THE POWER OF THE LIONS.TI# 28 SO THIS DANIEL PROSPERED IN THE REIGN OF DARIUS, AND IN THE REIGN OFP CYRUS THE PERSIAN.T = CHAPTER 7 J# 1 IN THE FIRST YEAR OF BELSHAZZAR KING OF BABYLON DANIEL HAD A DREAM ANDL VISIONS OF HIS HEAD UPON HIS BED: THEN HE WROTE THE DREAM, AND TOLD THE SUM OF THE MATTERS.M# 2 DANIEL SPAKE AND SAID, I SAW IN MY VISION BY NIGHT, AND, BEHOLD, THE FOUR/ WINDS OF THE HEAVEN STROVE UPON THE GREAT SEA.II# 3 AND FOUR GREAT BEASTS CAME UP FROM THE SEA, DIVERSE ONE FROM ANOTHER.HL# 4 THE FIRST WAS LIKE A LION, AND HAD EAGLES WINGS: I BEHELD TILL THE WINGSJ THEREOF WERE PLUCKED, AND IT WAS LIFTED UP FROM THE EARTH, AND MADE STAND: UPON THE FEET AS A MAN, AND A MANS HEART WAS GIVEN TO IT.H# 5 AND BEHOLD ANOTHER BEAST, A SECOND, LIKE TO A BEAR, AND IT RAISED UPI ITSELF ON ONE SIDE, AND IT HAD THREE RIBS IN THE MOUTH OF IT BETWEEN THE C TEETH OF IT: AND THEY SAID THUS UNTO IT, ARISE, DEVOUR MUCH FLESH.AK# 6 AFTER THIS I BEHELD, AND LO ANOTHER, LIKE A LEOPARD, WHICH HAD UPON THEHM BACK OF IT FOUR WINGS OF A FOWL; THE BEAST HAD ALSO FOUR HEADS; AND DOMINION WAS GIVEN TO IT.EE# 7 AFTER THIS I SAW IN THE NIGHT VISIONS, AND BEHOLD A FOURTH BEAST,AL DREADFUL AND TERRIBLE, AND STRONG EXCEEDINGLY; AND IT HAD GREAT IRON TEETH:N IT DEVOURED AND BRAKE IN PIECES, AND STAMPED THE RESIDUE WITH THE FEET OF IT:K AND IT WAS DIVERSE FROM ALL THE BEASTS THAT WERE BEFORE IT; AND IT HAD TEN  HORNS.VI# 8 I CONSIDERED THE HORNS, AND, BEHOLD, THERE CAME UP AMONG THEM ANOTHERWK LITTLE HORN, BEFORE WHOM THERE WERE THREE OF THE FIRST HORNS PLUCKED UP BY K THE ROOTS: AND, BEHOLD, IN THIS HORN WERE EYES LIKE THE EYES OF MAN, AND AI MOUTH SPEAKING GREAT THINGS.TI# 9 I BEHELD TILL THE THRONES WERE CAST DOWN, AND THE ANCIENT OF DAYS DIDEM SIT, WHOSE GARMENT WAS WHITE AS SNOW, AND THE HAIR OF HIS HEAD LIKE THE PUREFK WOOL: H00y>N><%X>%+%O-%TADATADATAIS THRONE WAS LIKE THE FIERY FLAME, AND HIS WHEELS AS BURNING FIRE. M# 10 A FIERY STREAM ISSUED AND CAME FORTH FROM BEFORE HIM: THOUSAND THOUSANDSEK MINISTERED UNTO HIM, AND TEN THOUSAND TIMES TEN THOUSAND STOOD BEFORE HIM:C1 THE JUDGMENT WAS SET, AND THE BOOKS WERE OPENED.EI# 11 I BEHELD THEN BECAUSE OF THE VOICE OF THE GREAT WORDS WHICH THE HORN K SPAKE: I BEHELD EVEN TILL THE BEAST WAS SLAIN, AND HIS BODY DESTROYED, ANDH GIVEN TO THE BURNING FLAME.H# 12 AS CONCERNING THE REST OF THE BEASTS, THEY HAD THEIR DOMINION TAKEN< AWAY: YET THEIR LIVES WERE PROLONGED FOR A SEASON AND TIME.J# 13 I SAW IN THE NIGHT VISIONS, AND, BEHOLD, ONE LIKE THE SON OF MAN CAMEM WITH THE CLOUDS OF HEAVEN, AND CAME TO THE ANCIENT OF DAYS, AND THEY BROUGHT  HIM NEAR BEFORE HIM.WI# 14 AND THERE WAS GIVEN HIM DOMINION, AND GLORY, AND A KINGDOM, THAT ALLIE PEOPLE, NATIONS, AND LANGUAGES, SHOULD SERVE HIM: HIS DOMINION IS ANOL EVERLASTING DOMINION, WHICH SHALL NOT PASS AWAY, AND HIS KINGDOM THAT WHICH SHALL NOT BE DESTROYED.G# 15 I DANIEL WAS GRIEVED IN MY SPIRIT IN THE MIDST OF MY BODY, AND THED VISIONS OF MY HEAD TROUBLED ME.K# 16 I CAME NEAR UNTO ONE OF THEM THAT STOOD BY, AND ASKED HIM THE TRUTH OF L ALL THIS. SO HE TOLD ME, AND MADE ME KNOW THE INTERPRETATION OF THE THINGS.J# 17 THESE GREAT BEASTS, WHICH ARE FOUR, ARE FOUR KINGS, WHICH SHALL ARISE OUT OF THE EARTH.L# 18 BUT THE SAINTS OF THE MOST HIGH SHALL TAKE THE KINGDOM, AND POSSESS THE* KINGDOM FOR EVER, EVEN FOR EVER AND EVER.L# 19 THEN I WOULD KNOW THE TRUTH OF THE FOURTH BEAST, WHICH WAS DIVERSE FROML ALL THE OTHERS, EXCEEDING DREADFUL, WHOSE TEETH WERE OF IRON, AND HIS NAILSL OF BRASS; WHICH DEVOURED, BRAKE IN PIECES, AND STAMPED THE RESIDUE WITH HIS FEET;L# 20 AND OF THE TEN HORNS THAT WERE IN HIS HEAD, AND OF THE OTHER WHICH CAMEM UP, AND BEFORE WHOM THREE FELL; EVEN OF THAT HORN THAT HAD EYES, AND A MOUTHTJ THAT SPAKE VERY GREAT THINGS, WHOSE LOOK WAS MORE STOUT THAN HIS FELLOWS.H# 21 I BEHELD, AND THE SAME HORN MADE WAR WITH THE SAINTS, AND PREVAILED AGAINST THEM;L# 22 UNTIL THE ANCIENT OF DAYS CAME, AND JUDGMENT WAS GIVEN TO THE SAINTS OFH THE MOST HIGH; AND THE TIME CAME THAT THE SAINTS POSSESSED THE KINGDOM.K# 23 THUS HE SAID, THE FOURTH BEAST SHALL BE THE FOURTH KINGDOM UPON EARTH,HL WHICH SHALL BE DIVERSE FROM ALL KINGDOMS, AND SHALL DEVOUR THE WHOLE EARTH,1 AND SHALL TREAD IT DOWN, AND BREAK IT IN PIECES. J# 24 AND THE TEN HORNS OUT OF THIS KINGDOM ARE TEN KINGS THAT SHALL ARISE:K AND ANOTHER SHALL RISE AFTER THEM; AND HE SHALL BE DIVERSE FROM THE FIRST,! AND HE SHALL SUBDUE THREE KINGS.,M# 25 AND HE SHALL SPEAK GREAT WORDS AGAINST THE MOST HIGH, AND SHALL WEAR OUTTJ THE SAINTS OF THE MOST HIGH, AND THINK TO CHANGE TIMES AND LAWS: AND THEYN SHALL BE GIVEN INTO HIS HAND UNTIL A TIME AND TIMES AND THE DIVIDING OF TIME.J# 26 BUT THE JUDGMENT SHALL SIT, AND THEY SHALL TAKE AWAY HIS DOMINION, TO( CONSUME AND TO DESTROY IT UNTO THE END.M# 27 AND THE KINGDOM AND DOMINION, AND THE GREATNESS OF THE KINGDOM UNDER THEMK WHOLE HEAVEN, SHALL BE GIVEN TO THE PEOPLE OF THE SAINTS OF THE MOST HIGH,,K WHOSE KINGDOM IS AN EVERLASTING KINGDOM, AND ALL DOMINIONS SHALL SERVE ANDU OBEY HIM.M# 28 HITHERTO IS THE END OF THE MATTER. AS FOR ME DANIEL, MY COGITATIONS MUCHIK TROUBLED ME, AND MY COUNTENANCE CHANGED IN ME: BUT I KEPT THE MATTER IN MYT HEART.N = CHAPTER 8 L# 1 IN THE THIRD YEAR OF THE REIGN OF KING BELSHAZZAR A VISION APPEARED UNTOI ME, EVEN UNTO ME DANIEL, AFTER THAT WHICH APPEARED UNTO ME AT THE FIRST.NI# 2 AND I SAW IN A VISION; AND IT CAME TO PASS, WHEN I SAW, THAT I WAS ATMH SHUSHAN IN THE PALACE, WHICH IS IN THE PROVINCE OF ELAM; AND I SAW IN A( VISION, AND I WAS BY THE RIVER OF ULAI.L# 3 THEN I LIFTED UP MINE EYES, AND SAW, AND, BEHOLD, THERE STOOD BEFORE THEJ RIVER A RAM WHICH HAD TWO HORNS: AND THE TWO HORNS WERE HIGH; BUT ONE WAS4 HIGHER THAN THE OTHER, AND THE HIGHER CAME UP LAST.L# 4 I SAW THE RAM PUSHING WESTWARD, AND NORTHWARD, AND SOUTHWARD; SO THAT NOL BEASTS MIGHT STAND BEFORE HIM, NEITHER WAS THERE 00y>=D%5%T6%! !ANY THAT COULD DELIVER OUTA OF HIS HAND; BUT HE DID ACCORDING TO HIS WILL, AND BECAME GREAT.IJ# 5 AND AS I WAS CONSIDERING, BEHOLD, AN HE GOAT CAME FROM THE WEST ON THEH FACE OF THE WHOLE EARTH, AND TOUCHED NOT THE GROUND: AND THE GOAT HAD A NOTABLE HORN BETWEEN HIS EYES.TH# 6 AND HE CAME TO THE RAM THAT HAD TWO HORNS, WHICH I HAD SEEN STANDING= BEFORE THE RIVER, AND RAN UNTO HIM IN THE FURY OF HIS POWER.AG# 7 AND I SAW HIM COME CLOSE UNTO THE RAM, AND HE WAS MOVED WITH CHOLERHJ AGAINST HIM, AND SMOTE THE RAM, AND BRAKE HIS TWO HORNS: AND THERE WAS NON POWER IN THE RAM TO STAND BEFORE HIM, BUT HE CAST HIM DOWN TO THE GROUND, ANDK STAMPED UPON HIM: AND THERE WAS NONE THAT COULD DELIVER THE RAM OUT OF HISO HAND.M# 8 THEREFORE THE HE GOAT WAXED VERY GREAT: AND WHEN HE WAS STRONG, THE GREATTL HORN WAS BROKEN; AND FOR IT CAME UP FOUR NOTABLE ONES TOWARD THE FOUR WINDS OF HEAVEN.NJ# 9 AND OUT OF ONE OF THEM CAME FORTH A LITTLE HORN, WHICH WAXED EXCEEDINGL GREAT, TOWARD THE SOUTH, AND TOWARD THE EAST, AND TOWARD THE PLEASANT LAND.M# 10 AND IT WAXED GREAT, EVEN TO THE HOST OF HEAVEN; AND IT CAST DOWN SOME OFW@ THE HOST AND OF THE STARS TO THE GROUND, AND STAMPED UPON THEM.M# 11 YEA, HE MAGNIFIED HIMSELF EVEN TO THE PRINCE OF THE HOST, AND BY HIM THEGN DAILY SACRIFICE WAS TAKEN AWAY, AND THE PLACE OF THE SANCTUARY WAS CAST DOWN.G# 12 AND AN HOST WAS GIVEN HIM AGAINST THE DAILY SACRIFICE BY REASON OFOK TRANSGRESSION, AND IT CAST DOWN THE TRUTH TO THE GROUND; AND IT PRACTISED,U AND PROSPERED.EF# 13 THEN I HEARD ONE SAINT SPEAKING, AND ANOTHER SAINT SAID UNTO THATM CERTAIN SAINT WHICH SPAKE, HOW LONG SHALL BE THE VISION CONCERNING THE DAILY K SACRIFICE, AND THE TRANSGRESSION OF DESOLATION, TO GIVE BOTH THE SANCTUARYI' AND THE HOST TO BE TRODDEN UNDER FOOT?SH# 14 AND HE SAID UNTO ME, UNTO TWO THOUSAND AND THREE HUNDRED DAYS; THEN! SHALL THE SANCTUARY BE CLEANSED.TI# 15 AND IT CAME TO PASS, WHEN I, EVEN I DANIEL, HAD SEEN THE VISION, ANDUN SOUGHT FOR THE MEANING, THEN, BEHOLD, THERE STOOD BEFORE ME AS THE APPEARANCE OF A MAN.J# 16 AND I HEARD A MANS VOICE BETWEEN THE BANKS OF ULAI, WHICH CALLED, AND7 SAID, GABRIEL, MAKE THIS MAN TO UNDERSTAND THE VISION.HL# 17 SO HE CAME NEAR WHERE I STOOD: AND WHEN HE CAME, I WAS AFRAID, AND FELLM UPON MY FACE: BUT HE SAID UNTO ME, UNDERSTAND, O SON OF MAN: FOR AT THE TIMEU OF THE END SHALL BE THE VISION.L# 18 NOW AS HE WAS SPEAKING WITH ME, I WAS IN A DEEP SLEEP ON MY FACE TOWARD3 THE GROUND: BUT HE TOUCHED ME, AND SET ME UPRIGHT.LM# 19 AND HE SAID, BEHOLD, I WILL MAKE THEE KNOW WHAT SHALL BE IN THE LAST END @ OF THE INDIGNATION: FOR AT THE TIME APPOINTED THE END SHALL BE.J# 20 THE RAM WHICH THOU SAWEST HAVING TWO HORNS ARE THE KINGS OF MEDIA AND PERSIA.I# 21 AND THE ROUGH GOAT IS THE KING OF GRECIA: AND THE GREAT HORN THAT ISE$ BETWEEN HIS EYES IS THE FIRST KING.M# 22 NOW THAT BEING BROKEN, WHEREAS FOUR STOOD UP FOR IT, FOUR KINGDOMS SHALLI2 STAND UP OUT OF THE NATION, BUT NOT IN HIS POWER.M# 23 AND IN THE LATTER TIME OF THEIR KINGDOM, WHEN THE TRANSGRESSORS ARE COMEKM TO THE FULL, A KING OF FIERCE COUNTENANCE, AND UNDERSTANDING DARK SENTENCES,T SHALL STAND UP.J# 24 AND HIS POWER SHALL BE MIGHTY, BUT NOT BY HIS OWN POWER: AND HE SHALLL DESTROY WONDERFULLY, AND SHALL PROSPER, AND PRACTISE, AND SHALL DESTROY THE MIGHTY AND THE HOLY PEOPLE.M# 25 AND THROUGH HIS POLICY ALSO HE SHALL CAUSE CRAFT TO PROSPER IN HIS HAND;OL AND HE SHALL MAGNIFY HIMSELF IN HIS HEART, AND BY PEACE SHALL DESTROY MANY:M HE SHALL ALSO STAND UP AGAINST THE PRINCE OF PRINCES; BUT HE SHALL BE BROKENH WITHOUT HAND.J# 26 AND THE VISION OF THE EVENING AND THE MORNING WHICH WAS TOLD IS TRUE:B WHEREFORE SHUT THOU UP THE VISION; FOR IT SHALL BE FOR MANY DAYS.J# 27 AND I DANIEL FAINTED, AND WAS SICK CERTAIN DAYS; AFTERWARD I ROSE UP,I AND DID THE KINGS BUSINESS; AND I WAS ASTONISHED AT THE VISION, BUT NONE  UNDERSTOOD IT. = CHAPTER 9 H# 1 IN THE FIRST YEAR OF DARIUS THE SON OF AHASUERUS, OF THE SEED OF THE< MEDES, WHICH WAS MADE KING OVER THE REALM OF THE CHALDE00y>N><%X>%+%O-%TADATADATAANS;M# 2 IN THE FIRST YEAR OF HIS REIGN I DANIEL UNDERSTOOD BY BOOKS THE NUMBER OFEN THE YEARS, WHEREOF THE WORD OF THE LORD CAME TO JEREMIAH THE PROPHET, THAT HE@ WOULD ACCOMPLISH SEVENTY YEARS IN THE DESOLATIONS OF JERUSALEM.M# 3 AND I SET MY FACE UNTO THE LORD GOD, TO SEEK BY PRAYER AND SUPPLICATIONS,W( WITH FASTING, AND SACKCLOTH, AND ASHES:J# 4 AND I PRAYED UNTO THE LORD MY GOD, AND MADE MY CONFESSION, AND SAID, ON LORD, THE GREAT AND DREADFUL GOD, KEEPING THE COVENANT AND MERCY TO THEM THAT2 LOVE HIM, AND TO THEM THAT KEEP HIS COMMANDMENTS;L# 5 WE HAVE SINNED, AND HAVE COMMITTED INIQUITY, AND HAVE DONE WICKEDLY, ANDK HAVE REBELLED, EVEN BY DEPARTING FROM THY PRECEPTS AND FROM THY JUDGMENTS:EL# 6 NEITHER HAVE WE HEARKENED UNTO THY SERVANTS THE PROPHETS, WHICH SPAKE INN THY NAME TO OUR KINGS, OUR PRINCES, AND OUR FATHERS, AND TO ALL THE PEOPLE OF THE LAND.G# 7 O LORD, RIGHTEOUSNESS BELONGETH UNTO THEE, BUT UNTO US CONFUSION OFAF FACES, AS AT THIS DAY; TO THE MEN OF JUDAH, AND TO THE INHABITANTS OFM JERUSALEM, AND UNTO ALL ISRAEL, THAT ARE NEAR, AND THAT ARE FAR OFF, THROUGHDK ALL THE COUNTRIES WHITHER THOU HAST DRIVEN THEM, BECAUSE OF THEIR TRESPASSM( THAT THEY HAVE TRESPASSED AGAINST THEE.L# 8 O LORD, TO US BELONGETH CONFUSION OF FACE, TO OUR KINGS, TO OUR PRINCES,9 AND TO OUR FATHERS, BECAUSE WE HAVE SINNED AGAINST THEE.AH# 9 TO THE LORD OUR GOD BELONG MERCIES AND FORGIVENESSES, THOUGH WE HAVE REBELLED AGAINST HIM;I# 10 NEITHER HAVE WE OBEYED THE VOICE OF THE LORD OUR GOD, TO WALK IN HISF; LAWS, WHICH HE SET BEFORE US BY HIS SERVANTS THE PROPHETS.EL# 11 YEA, ALL ISRAEL HAVE TRANSGRESSED THY LAW, EVEN BY DEPARTING, THAT THEYN MIGHT NOT OBEY THY VOICE; THEREFORE THE CURSE IS POURED UPON US, AND THE OATHH THAT IS WRITTEN IN THE LAW OF MOSES THE SERVANT OF GOD, BECAUSE WE HAVE SINNED AGAINST HIM.L# 12 AND HE HATH CONFIRMED HIS WORDS, WHICH HE SPAKE AGAINST US, AND AGAINSTK OUR JUDGES THAT JUDGED US, BY BRINGING UPON US A GREAT EVIL: FOR UNDER THEOB WHOLE HEAVEN HATH NOT BEEN DONE AS HATH BEEN DONE UPON JERUSALEM.M# 13 AS IT IS WRITTEN IN THE LAW OF MOSES, ALL THIS EVIL IS COME UPON US: YETLL MADE WE NOT OUR PRAYER BEFORE THE LORD OUR GOD, THAT WE MIGHT TURN FROM OUR& INIQUITIES, AND UNDERSTAND THY TRUTH.K# 14 THEREFORE HATH THE LORD WATCHED UPON THE EVIL, AND BROUGHT IT UPON US: J FOR THE LORD OUR GOD IS RIGHTEOUS IN ALL HIS WORKS WHICH HE DOETH: FOR WE OBEYED NOT HIS VOICE.K# 15 AND NOW, O LORD OUR GOD, THAT HAST BROUGHT THY PEOPLE FORTH OUT OF THEHJ LAND OF EGYPT WITH A MIGHTY HAND, AND HAST GOTTEN THEE RENOWN, AS AT THIS, DAY; WE HAVE SINNED, WE HAVE DONE WICKEDLY.J# 16 O LORD, ACCORDING TO ALL THY RIGHTEOUSNESS, I BESEECH THEE, LET THINEN ANGER AND THY FURY BE TURNED AWAY FROM THY CITY JERUSALEM, THY HOLY MOUNTAIN:K BECAUSE FOR OUR SINS, AND FOR THE INIQUITIES OF OUR FATHERS, JERUSALEM ANDO; THY PEOPLE ARE BECOME A REPROACH TO ALL THAT ARE ABOUT US.EF# 17 NOW THEREFORE, O OUR GOD, HEAR THE PRAYER OF THY SERVANT, AND HISF SUPPLICATIONS, AND CAUSE THY FACE TO SHINE UPON THY SANCTUARY THAT IS DESOLATE, FOR THE LORDS SAKE.K# 18 O MY GOD, INCLINE THINE EAR, AND HEAR; OPEN THINE EYES, AND BEHOLD OURIM DESOLATIONS, AND THE CITY WHICH IS CALLED BY THY NAME: FOR WE DO NOT PRESENT I OUR SUPPLICATIONS BEFORE THEE FOR OUR RIGHTEOUSNESSES, BUT FOR THY GREATI MERCIES.FJ# 19 O LORD, HEAR; O LORD, FORGIVE; O LORD, HEARKEN AND DO; DEFER NOT, FORN THINE OWN SAKE, O MY GOD: FOR THY CITY AND THY PEOPLE ARE CALLED BY THY NAME.J# 20 AND WHILES I WAS SPEAKING, AND PRAYING, AND CONFESSING MY SIN AND THEK SIN OF MY PEOPLE ISRAEL, AND PRESENTING MY SUPPLICATION BEFORE THE LORD MYR% GOD FOR THE HOLY MOUNTAIN OF MY GOD;SK# 21 YEA, WHILES I WAS SPEAKING IN PRAYER, EVEN THE MAN GABRIEL, WHOM I HADOM SEEN IN THE VISION AT THE BEGINNING, BEING CAUSED TO FLY SWIFTLY, TOUCHED MEI( ABOUT THE TIME OF THE EVENING OBLATION.I# 22 AND HE INFORMED ME, AND TALKED WITH ME, AND SAID, O DANIEL, I AM NOWC1 COME FORTH TO GIVE THEE SKILL AND UNDERSTANDING.DL# 23 AT THE BEGINNING OF THY SUPPLICAT00y>=D%5%T6%! !IONS THE COMMANDMENT CAME FORTH, AND IM AM COME TO SHEW THEE; FOR THOU ART GREATLY BELOVED: THEREFORE UNDERSTAND THEE! MATTER, AND CONSIDER THE VISION.AL# 24 SEVENTY WEEKS ARE DETERMINED UPON THY PEOPLE AND UPON THY HOLY CITY, TOB FINISH THE TRANSGRESSION, AND TO MAKE AN END OF SINS, AND TO MAKEL RECONCILIATION FOR INIQUITY, AND TO BRING IN EVERLASTING RIGHTEOUSNESS, ANDA TO SEAL UP THE VISION AND PROPHECY, AND TO ANOINT THE MOST HOLY.ED# 25 KNOW THEREFORE AND UNDERSTAND, THAT FROM THE GOING FORTH OF THEJ COMMANDMENT TO RESTORE AND TO BUILD JERUSALEM UNTO THE MESSIAH THE PRINCEN SHALL BE SEVEN WEEKS, AND THREESCORE AND TWO WEEKS: THE STREET SHALL BE BUILT. AGAIN, AND THE WALL, EVEN IN TROUBLOUS TIMES.M# 26 AND AFTER THREESCORE AND TWO WEEKS SHALL MESSIAH BE CUT OFF, BUT NOT FOR,M HIMSELF: AND THE PEOPLE OF THE PRINCE THAT SHALL COME SHALL DESTROY THE CITYUK AND THE SANCTUARY; AND THE END THEREOF SHALL BE WITH A FLOOD, AND UNTO THEE+ END OF THE WAR DESOLATIONS ARE DETERMINED.OI# 27 AND HE SHALL CONFIRM THE COVENANT WITH MANY FOR ONE WEEK: AND IN THETN MIDST OF THE WEEK HE SHALL CAUSE THE SACRIFICE AND THE OBLATION TO CEASE, ANDL FOR THE OVERSPREADING OF ABOMINATIONS HE SHALL MAKE IT DESOLATE, EVEN UNTILI THE CONSUMMATION, AND THAT DETERMINED SHALL BE POURED UPON THE DESOLATE. = CHAPTER 10 HG# 1 IN THE THIRD YEAR OF CYRUS KING OF PERSIA A THING WAS REVEALED UNTOSL DANIEL, WHOSE NAME WAS CALLED BELTESHAZZAR; AND THE THING WAS TRUE, BUT THEL TIME APPOINTED WAS LONG: AND HE UNDERSTOOD THE THING, AND HAD UNDERSTANDING OF THE VISION.E9# 2 IN THOSE DAYS I DANIEL WAS MOURNING THREE FULL WEEKS.FM# 3 I ATE NO PLEASANT BREAD, NEITHER CAME FLESH NOR WINE IN MY MOUTH, NEITHERHC DID I ANOINT MYSELF AT ALL, TILL THREE WHOLE WEEKS WERE FULFILLED.NI# 4 AND IN THE FOUR AND TWENTIETH DAY OF THE FIRST MONTH, AS I WAS BY THEA, SIDE OF THE GREAT RIVER, WHICH IS HIDDEKEL;L# 5 THEN I LIFTED UP MINE EYES, AND LOOKED, AND BEHOLD A CERTAIN MAN CLOTHED; IN LINEN, WHOSE LOINS WERE GIRDED WITH FINE GOLD OF UPHAZ:,G# 6 HIS BODY ALSO WAS LIKE THE BERYL, AND HIS FACE AS THE APPEARANCE OFML LIGHTNING, AND HIS EYES AS LAMPS OF FIRE, AND HIS ARMS AND HIS FEET LIKE INI COLOUR TO POLISHED BRASS, AND THE VOICE OF HIS WORDS LIKE THE VOICE OF A MULTITUDE.LL# 7 AND I DANIEL ALONE SAW THE VISION: FOR THE MEN THAT WERE WITH ME SAW NOTJ THE VISION; BUT A GREAT QUAKING FELL UPON THEM, SO THAT THEY FLED TO HIDE THEMSELVES.M# 8 THEREFORE I WAS LEFT ALONE, AND SAW THIS GREAT VISION, AND THERE REMAINEDTM NO STRENGTH IN ME: FOR MY COMELINESS WAS TURNED IN ME INTO CORRUPTION, AND IH RETAINED NO STRENGTH.I# 9 YET HEARD I THE VOICE OF HIS WORDS: AND WHEN I HEARD THE VOICE OF HISLM WORDS, THEN WAS I IN A DEEP SLEEP ON MY FACE, AND MY FACE TOWARD THE GROUND.UM# 10 AND, BEHOLD, AN HAND TOUCHED ME, WHICH SET ME UPON MY KNEES AND UPON THEN PALMS OF MY HANDS.AI# 11 AND HE SAID UNTO ME, O DANIEL, A MAN GREATLY BELOVED, UNDERSTAND THE N WORDS THAT I SPEAK UNTO THEE, AND STAND UPRIGHT: FOR UNTO THEE AM I NOW SENT.= AND WHEN HE HAD SPOKEN THIS WORD UNTO ME, I STOOD TREMBLING.IM# 12 THEN SAID HE UNTO ME, FEAR NOT, DANIEL: FOR FROM THE FIRST DAY THAT THOU L DIDST SET THINE HEART TO UNDERSTAND, AND TO CHASTEN THYSELF BEFORE THY GOD,3 THY WORDS WERE HEARD, AND I AM COME FOR THY WORDS.NH# 13 BUT THE PRINCE OF THE KINGDOM OF PERSIA WITHSTOOD ME ONE AND TWENTYI DAYS: BUT, LO, MICHAEL, ONE OF THE CHIEF PRINCES, CAME TO HELP ME; AND IN) REMAINED THERE WITH THE KINGS OF PERSIA.SJ# 14 NOW I AM COME TO MAKE THEE UNDERSTAND WHAT SHALL BEFALL THY PEOPLE IN6 THE LATTER DAYS: FOR YET THE VISION IS FOR MANY DAYS.H# 15 AND WHEN HE HAD SPOKEN SUCH WORDS UNTO ME, I SET MY FACE TOWARD THE GROUND, AND I BECAME DUMB.AM# 16 AND, BEHOLD, ONE LIKE THE SIMILITUDE OF THE SONS OF MEN TOUCHED MY LIPS:SM THEN I OPENED MY MOUTH, AND SPAKE, AND SAID UNTO HIM THAT STOOD BEFORE ME, ODM MY LORD, BY THE VISION MY SORROWS ARE TURNED UPON ME, AND I HAVE RETAINED NOI STRENGTH.K# 17 FOR HOW CAN THE SERVANT OF THIS MY LORD TALK WITH THIS MY LORD? FOR ASLN00y>N><%X>%+%O-%TADATADATA FOR ME, STRAIGHTWAY THERE REMAINED NO STRENGTH IN ME, NEITHER IS THERE BREATH LEFT IN ME.K# 18 THEN THERE CAME AGAIN AND TOUCHED ME ONE LIKE THE APPEARANCE OF A MAN,C AND HE STRENGTHENED ME,F# 19 AND SAID, O MAN GREATLY BELOVED, FEAR NOT: PEACE BE UNTO THEE, BEL STRONG, YEA, BE STRONG. AND WHEN HE HAD SPOKEN UNTO ME, I WAS STRENGTHENED,< AND SAID, LET MY LORD SPEAK; FOR THOU HAST STRENGTHENED ME.J# 20 THEN SAID HE, KNOWEST THOU WHEREFORE I COME UNTO THEE? AND NOW WILL IM RETURN TO FIGHT WITH THE PRINCE OF PERSIA: AND WHEN I AM GONE FORTH, LO, THEM PRINCE OF GRECIA SHALL COME.FL# 21 BUT I WILL SHEW THEE THAT WHICH IS NOTED IN THE SCRIPTURE OF TRUTH: ANDM THERE IS NONE THAT HOLDETH WITH ME IN THESE THINGS, BUT MICHAEL YOUR PRINCE.N = CHAPTER 11 TM# 1 ALSO I IN THE FIRST YEAR OF DARIUS THE MEDE, EVEN I, STOOD TO CONFIRM ANDN TO STRENGTHEN HIM.LH# 2 AND NOW WILL I SHEW THEE THE TRUTH. BEHOLD, THERE SHALL STAND UP YETM THREE KINGS IN PERSIA; AND THE FOURTH SHALL BE FAR RICHER THAN THEY ALL: ANDRM BY HIS STRENGTH THROUGH HIS RICHES HE SHALL STIR UP ALL AGAINST THE REALM OFE GRECIA.J# 3 AND A MIGHTY KING SHALL STAND UP, THAT SHALL RULE WITH GREAT DOMINION, AND DO ACCORDING TO HIS WILL.I# 4 AND WHEN HE SHALL STAND UP, HIS KINGDOM SHALL BE BROKEN, AND SHALL BEHG DIVIDED TOWARD THE FOUR WINDS OF HEAVEN; AND NOT TO HIS POSTERITY, NORGK ACCORDING TO HIS DOMINION WHICH HE RULED: FOR HIS KINGDOM SHALL BE PLUCKED " UP, EVEN FOR OTHERS BESIDE THOSE.M# 5 AND THE KING OF THE SOUTH SHALL BE STRONG, AND ONE OF HIS PRINCES; AND HESL SHALL BE STRONG ABOVE HIM, AND HAVE DOMINION; HIS DOMINION SHALL BE A GREAT DOMINION.H# 6 AND IN THE END OF YEARS THEY SHALL JOIN THEMSELVES TOGETHER; FOR THEK KINGS DAUGHTER OF THE SOUTH SHALL COME TO THE KING OF THE NORTH TO MAKE ANBK AGREEMENT: BUT SHE SHALL NOT RETAIN THE POWER OF THE ARM; NEITHER SHALL HEN STAND, NOR HIS ARM: BUT SHE SHALL BE GIVEN UP, AND THEY THAT BROUGHT HER, AND@ HE THAT BEGAT HER, AND HE THAT STRENGTHENED HER IN THESE TIMES.L# 7 BUT OUT OF A BRANCH OF HER ROOTS SHALL ONE STAND UP IN HIS ESTATE, WHICHN SHALL COME WITH AN ARMY, AND SHALL ENTER INTO THE FORTRESS OF THE KING OF THE7 NORTH, AND SHALL DEAL AGAINST THEM, AND SHALL PREVAIL:NL# 8 AND SHALL ALSO CARRY CAPTIVES INTO EGYPT THEIR GODS, WITH THEIR PRINCES,M AND WITH THEIR PRECIOUS VESSELS OF SILVER AND OF GOLD; AND HE SHALL CONTINUED' MORE YEARS THAN THE KING OF THE NORTH. J# 9 SO THE KING OF THE SOUTH SHALL COME INTO HIS KINGDOM, AND SHALL RETURN INTO HIS OWN LAND.H# 10 BUT HIS SONS SHALL BE STIRRED UP, AND SHALL ASSEMBLE A MULTITUDE OFL GREAT FORCES: AND ONE SHALL CERTAINLY COME, AND OVERFLOW, AND PASS THROUGH:? THEN SHALL HE RETURN, AND BE STIRRED UP, EVEN TO HIS FORTRESS. I# 11 AND THE KING OF THE SOUTH SHALL BE MOVED WITH CHOLER, AND SHALL COMEL FORTH AND FIGHT WITH HIM, EVEN WITH THE KING OF THE NORTH: AND HE SHALL SETI FORTH A GREAT MULTITUDE; BUT THE MULTITUDE SHALL BE GIVEN INTO HIS HAND.AM# 12 AND WHEN HE HATH TAKEN AWAY THE MULTITUDE, HIS HEART SHALL BE LIFTED UP;SL AND HE SHALL CAST DOWN MANY TEN THOUSANDS: BUT HE SHALL NOT BE STRENGTHENED BY IT.LL# 13 FOR THE KING OF THE NORTH SHALL RETURN, AND SHALL SET FORTH A MULTITUDEM GREATER THAN THE FORMER, AND SHALL CERTAINLY COME AFTER CERTAIN YEARS WITH AO! GREAT ARMY AND WITH MUCH RICHES.FI# 14 AND IN THOSE TIMES THERE SHALL MANY STAND UP AGAINST THE KING OF THEN SOUTH: ALSO THE ROBBERS OF THY PEOPLE SHALL EXALT THEMSELVES TO ESTABLISH THE VISION; BUT THEY SHALL FALL.EK# 15 SO THE KING OF THE NORTH SHALL COME, AND CAST UP A MOUNT, AND TAKE THETK MOST FENCED CITIES: AND THE ARMS OF THE SOUTH SHALL NOT WITHSTAND, NEITHEREE HIS CHOSEN PEOPLE, NEITHER SHALL THERE BE ANY STRENGTH TO WITHSTAND. K# 16 BUT HE THAT COMETH AGAINST HIM SHALL DO ACCORDING TO HIS OWN WILL, AND L NONE SHALL STAND BEFORE HIM: AND HE SHALL STAND IN THE GLORIOUS LAND, WHICH BY HIS HAND SHALL BE CONSUMED.EG# 17 HE SHALL ALSO SET HIS FACE TO ENTER WITH THE STRENGTH OF HIS WHOLEBL KINGDOM, AND UPRIGHT ONES WITH HIM; THUS SHALL HE DO: A00y>=D%5%T6%! !ND HE SHALL GIVE HIML THE DAUGHTER OF WOMEN, CORRUPTING HER: BUT SHE SHALL NOT STAND ON HIS SIDE, NEITHER BE FOR HIM.K# 18 AFTER THIS SHALL HE TURN HIS FACE UNTO THE ISLES, AND SHALL TAKE MANY:BK BUT A PRINCE FOR HIS OWN BEHALF SHALL CAUSE THE REPROACH OFFERED BY HIM TO D CEASE; WITHOUT HIS OWN REPROACH HE SHALL CAUSE IT TO TURN UPON HIM.H# 19 THEN HE SHALL TURN HIS FACE TOWARD THE FORT OF HIS OWN LAND: BUT HE* SHALL STUMBLE AND FALL, AND NOT BE FOUND.L# 20 THEN SHALL STAND UP IN HIS ESTATE A RAISER OF TAXES IN THE GLORY OF THEM KINGDOM: BUT WITHIN FEW DAYS HE SHALL BE DESTROYED, NEITHER IN ANGER, NOR INB BATTLE.K# 21 AND IN HIS ESTATE SHALL STAND UP A VILE PERSON, TO WHOM THEY SHALL NOTBK GIVE THE HONOUR OF THE KINGDOM: BUT HE SHALL COME IN PEACEABLY, AND OBTAIN  THE KINGDOM BY FLATTERIES.RJ# 22 AND WITH THE ARMS OF A FLOOD SHALL THEY BE OVERFLOWN FROM BEFORE HIM,; AND SHALL BE BROKEN; YEA, ALSO THE PRINCE OF THE COVENANT.LI# 23 AND AFTER THE LEAGUE MADE WITH HIM HE SHALL WORK DECEITFULLY: FOR HEX< SHALL COME UP, AND SHALL BECOME STRONG WITH A SMALL PEOPLE.K# 24 HE SHALL ENTER PEACEABLY EVEN UPON THE FATTEST PLACES OF THE PROVINCE;AF AND HE SHALL DO THAT WHICH HIS FATHERS HAVE NOT DONE, NOR HIS FATHERSK FATHERS; HE SHALL SCATTER AMONG THEM THE PREY, AND SPOIL, AND RICHES: YEA,TM AND HE SHALL FORECAST HIS DEVICES AGAINST THE STRONG HOLDS, EVEN FOR A TIME. K# 25 AND HE SHALL STIR UP HIS POWER AND HIS COURAGE AGAINST THE KING OF THEAJ SOUTH WITH A GREAT ARMY; AND THE KING OF THE SOUTH SHALL BE STIRRED UP TOK BATTLE WITH A VERY GREAT AND MIGHTY ARMY; BUT HE SHALL NOT STAND: FOR THEYA$ SHALL FORECAST DEVICES AGAINST HIM.J# 26 YEA, THEY THAT FEED OF THE PORTION OF HIS MEAT SHALL DESTROY HIM, AND9 HIS ARMY SHALL OVERFLOW: AND MANY SHALL FALL DOWN SLAIN.NK# 27 AND BOTH OF THESE KINGS HEARTS SHALL BE TO DO MISCHIEF, AND THEY SHALLRL SPEAK LIES AT ONE TABLE; BUT IT SHALL NOT PROSPER: FOR YET THE END SHALL BE AT THE TIME APPOINTED.HH# 28 THEN SHALL HE RETURN INTO HIS LAND WITH GREAT RICHES; AND HIS HEARTL SHALL BE AGAINST THE HOLY COVENANT; AND HE SHALL DO EXPLOITS, AND RETURN TO HIS OWN LAND.M# 29 AT THE TIME APPOINTED HE SHALL RETURN, AND COME TOWARD THE SOUTH; BUT IT . SHALL NOT BE AS THE FORMER, OR AS THE LATTER.K# 30 FOR THE SHIPS OF CHITTIM SHALL COME AGAINST HIM: THEREFORE HE SHALL BE N GRIEVED, AND RETURN, AND HAVE INDIGNATION AGAINST THE HOLY COVENANT: SO SHALLN HE DO; HE SHALL EVEN RETURN, AND HAVE INTELLIGENCE WITH THEM THAT FORSAKE THE HOLY COVENANT.NK# 31 AND ARMS SHALL STAND ON HIS PART, AND THEY SHALL POLLUTE THE SANCTUARYHK OF STRENGTH, AND SHALL TAKE AWAY THE DAILY SACRIFICE, AND THEY SHALL PLACED& THE ABOMINATION THAT MAKETH DESOLATE.E# 32 AND SUCH AS DO WICKEDLY AGAINST THE COVENANT SHALL HE CORRUPT BYTJ FLATTERIES: BUT THE PEOPLE THAT DO KNOW THEIR GOD SHALL BE STRONG, AND DO EXPLOITS.L# 33 AND THEY THAT UNDERSTAND AMONG THE PEOPLE SHALL INSTRUCT MANY: YET THEYN SHALL FALL BY THE SWORD, AND BY FLAME, BY CAPTIVITY, AND BY SPOIL, MANY DAYS.K# 34 NOW WHEN THEY SHALL FALL, THEY SHALL BE HOLPEN WITH A LITTLE HELP: BUT+ MANY SHALL CLEAVE TO THEM WITH FLATTERIES.AM# 35 AND SOME OF THEM OF UNDERSTANDING SHALL FALL, TO TRY THEM, AND TO PURGE,DM AND TO MAKE THEM WHITE, EVEN TO THE TIME OF THE END: BECAUSE IT IS YET FOR AT TIME APPOINTED.M# 36 AND THE KING SHALL DO ACCORDING TO HIS WILL; AND HE SHALL EXALT HIMSELF,TG AND MAGNIFY HIMSELF ABOVE EVERY GOD, AND SHALL SPEAK MARVELLOUS THINGSOC AGAINST THE GOD OF GODS, AND SHALL PROSPER TILL THE INDIGNATION BEE9 ACCOMPLISHED: FOR THAT THAT IS DETERMINED SHALL BE DONE. M# 37 NEITHER SHALL HE REGARD THE GOD OF HIS FATHERS, NOR THE DESIRE OF WOMEN,D< NOR REGARD ANY GOD: FOR HE SHALL MAGNIFY HIMSELF ABOVE ALL.L# 38 BUT IN HIS ESTATE SHALL HE HONOUR THE GOD OF FORCES: AND A GOD WHOM HISJ FATHERS KNEW NOT SHALL HE HONOUR WITH GOLD, AND SILVER, AND WITH PRECIOUS STONES, AND PLEASANT THINGS.EJ# 39 THUS SHALL HE DO IN THE MOST STRONG HOLDS WITH A STRANGE GOD, WHOM HEK SHALL ACKNOWLEDGE AND INCREASE WITH GLORY: AND 00y>z><%X>%+%O-%TADATADATAHE SHALL CAUSE THEM TO RULET/ OVER MANY, AND SHALL DIVIDE THE LAND FOR GAIN.LL# 40 AND AT THE TIME OF THE END SHALL THE KING OF THE SOUTH PUSH AT HIM: ANDN THE KING OF THE NORTH SHALL COME AGAINST HIM LIKE A WHIRLWIND, WITH CHARIOTS,D AND WITH HORSEMEN, AND WITH MANY SHIPS; AND HE SHALL ENTER INTO THE- COUNTRIES, AND SHALL OVERFLOW AND PASS OVER.SL# 41 HE SHALL ENTER ALSO INTO THE GLORIOUS LAND, AND MANY COUNTRIES SHALL BEM OVERTHROWN: BUT THESE SHALL ESCAPE OUT OF HIS HAND, EVEN EDOM, AND MOAB, AND $ THE CHIEF OF THE CHILDREN OF AMMON.M# 42 HE SHALL STRETCH FORTH HIS HAND ALSO UPON THE COUNTRIES: AND THE LAND OF  EGYPT SHALL NOT ESCAPE.J# 43 BUT HE SHALL HAVE POWER OVER THE TREASURES OF GOLD AND OF SILVER, ANDJ OVER ALL THE PRECIOUS THINGS OF EGYPT: AND THE LIBYANS AND THE ETHIOPIANS SHALL BE AT HIS STEPS.NH# 44 BUT TIDINGS OUT OF THE EAST AND OUT OF THE NORTH SHALL TROUBLE HIM:L THEREFORE HE SHALL GO FORTH WITH GREAT FURY TO DESTROY, AND UTTERLY TO MAKE AWAY MANY.EM# 45 AND HE SHALL PLANT THE TABERNACLES OF HIS PALACE BETWEEN THE SEAS IN THETJ GLORIOUS HOLY MOUNTAIN; YET HE SHALL COME TO HIS END, AND NONE SHALL HELP HIM.C = CHAPTER 12 HL# 1 AND AT THAT TIME SHALL MICHAEL STAND UP, THE GREAT PRINCE WHICH STANDETHN FOR THE CHILDREN OF THY PEOPLE: AND THERE SHALL BE A TIME OF TROUBLE, SUCH ASL NEVER WAS SINCE THERE WAS A NATION EVEN TO THAT SAME TIME: AND AT THAT TIMEL THY PEOPLE SHALL BE DELIVERED, EVERY ONE THAT SHALL BE FOUND WRITTEN IN THE BOOK.M# 2 AND MANY OF THEM THAT SLEEP IN THE DUST OF THE EARTH SHALL AWAKE, SOME TOE> EVERLASTING LIFE, AND SOME TO SHAME AND EVERLASTING CONTEMPT.M# 3 AND THEY THAT BE WISE SHALL SHINE AS THE BRIGHTNESS OF THE FIRMAMENT; ANDAE THEY THAT TURN MANY TO RIGHTEOUSNESS AS THE STARS FOR EVER AND EVER.PI# 4 BUT THOU, O DANIEL, SHUT UP THE WORDS, AND SEAL THE BOOK, EVEN TO THEEN TIME OF THE END: MANY SHALL RUN TO AND FRO, AND KNOWLEDGE SHALL BE INCREASED.M# 5 THEN I DANIEL LOOKED, AND, BEHOLD, THERE STOOD OTHER TWO, THE ONE ON THISHM SIDE OF THE BANK OF THE RIVER, AND THE OTHER ON THAT SIDE OF THE BANK OF THE, RIVER. J# 6 AND ONE SAID TO THE MAN CLOTHED IN LINEN, WHICH WAS UPON THE WATERS OF@ THE RIVER, HOW LONG SHALL IT BE TO THE END OF THESE WONDERS? ITJ# 7 AND I HEARD THE MAN CLOTHED IN LINEN, WHICH WAS UPON THE WATERS OF THEI RIVER, WHEN HE HELD UP HIS RIGHT HAND AND HIS LEFT HAND UNTO HEAVEN, ANDRM SWARE BY HIM THAT LIVETH FOR EVER THAT IT SHALL BE FOR A TIME, TIMES, AND AN,K HALF; AND WHEN HE SHALL HAVE ACCOMPLISHED TO SCATTER THE POWER OF THE HOLYV, PEOPLE, ALL THESE THINGS SHALL BE FINISHED.L# 8 AND I HEARD, BUT I UNDERSTOOD NOT: THEN SAID I, O MY LORD, WHAT SHALL BE THE END OF THESE THINGS?OK# 9 AND HE SAID, GO THY WAY, DANIEL: FOR THE WORDS ARE CLOSED UP AND SEALEDL TILL THE TIME OF THE END.L# 10 MANY SHALL BE PURIFIED, AND MADE WHITE, AND TRIED; BUT THE WICKED SHALLI DO WICKEDLY: AND NONE OF THE WICKED SHALL UNDERSTAND; BUT THE WISE SHALL UNDERSTAND.L# 11 AND FROM THE TIME THAT THE DAILY SACRIFICE SHALL BE TAKEN AWAY, AND THEG ABOMINATION THAT MAKETH DESOLATE SET UP, THERE SHALL BE A THOUSAND TWOB HUNDRED AND NINETY DAYS.AM# 12 BLESSED IS HE THAT WAITETH, AND COMETH TO THE THOUSAND THREE HUNDRED AND  FIVE AND THIRTY DAYS.K# 13 BUT GO THOU THY WAY TILL THE END BE: FOR THOU SHALT REST, AND STAND IN THY LOT AT THE END OF THE DAYS.RIED; BUT THE WICKED SHALLI DO WICKEDLY: AND NONE OF THE WICKED SHALL UNDERSTAND; BUT THE WISE SHALL UNDERSTAND.L# 11 AND FROM THE TIME THAT THE DAILY SACRIFICE SHALL BE TAKEN AWAY,* BOOK28 HOSEA = CHAPTER 1 L# 1 THE WORD OF THE LORD THAT CAME UNTO HOSEA, THE SON OF BEERI, IN THE DAYSJ OF UZZIAH, JOTHAM, AHAZ, AND HEZEKIAH, KINGS OF JUDAH, AND IN THE DAYS OF+ JEROBOAM THE SON OF JOASH, KING OF ISRAEL.HH# 2 THE BEGINNING OF THE WORD OF THE LORD BY HOSEA. AND THE LORD SAID TOM HOSEA, GO, TAKE UNTO THEE A WIFE OF WHOREDOMS AND CHILDREN OF WHOREDOMS: FOR A THE LAND HATH COMMITTED GREAT WHOREDOM, DEPARTING FROM THE LORD.DK# 3 SO HE WENT AND TOOK GOMER THE DAUGHTER OF DIBLAIM; WHI00z>=D%5%T6%! !CH CONCEIVED, AND BARE HIM A SON.G# 4 AND THE LORD SAID UNTO HIM, CALL HIS NAME JEZREEL; FOR YET A LITTLEJ WHILE, AND I WILL AVENGE THE BLOOD OF JEZREEL UPON THE HOUSE OF JEHU, AND8 WILL CAUSE TO CEASE THE KINGDOM OF THE HOUSE OF ISRAEL.G# 5 AND IT SHALL COME TO PASS AT THAT DAY, THAT I WILL BREAK THE BOW OF " ISRAEL, IN THE VALLEY OF JEZREEL.M# 6 AND SHE CONCEIVED AGAIN, AND BARE A DAUGHTER. AND GOD SAID UNTO HIM, CALLIL HER NAME LORUHAMAH: FOR I WILL NO MORE HAVE MERCY UPON THE HOUSE OF ISRAEL;# BUT I WILL UTTERLY TAKE THEM AWAY.L# 7 BUT I WILL HAVE MERCY UPON THE HOUSE OF JUDAH, AND WILL SAVE THEM BY THEL LORD THEIR GOD, AND WILL NOT SAVE THEM BY BOW, NOR BY SWORD, NOR BY BATTLE, BY HORSES, NOR BY HORSEMEN.E# 8 NOW WHEN SHE HAD WEANED LORUHAMAH, SHE CONCEIVED, AND BARE A SON. M# 9 THEN SAID GOD, CALL HIS NAME LOAMMI: FOR YE ARE NOT MY PEOPLE, AND I WILLE NOT BE YOUR GOD. I# 10 YET THE NUMBER OF THE CHILDREN OF ISRAEL SHALL BE AS THE SAND OF THEML SEA, WHICH CANNOT BE MEASURED NOR NUMBERED; AND IT SHALL COME TO PASS, THATI IN THE PLACE WHERE IT WAS SAID UNTO THEM, YE ARE NOT MY PEOPLE, THERE ITT< SHALL BE SAID UNTO THEM, YE ARE THE SONS OF THE LIVING GOD.L# 11 THEN SHALL THE CHILDREN OF JUDAH AND THE CHILDREN OF ISRAEL BE GATHEREDM TOGETHER, AND APPOINT THEMSELVES ONE HEAD, AND THEY SHALL COME UP OUT OF THEA- LAND: FOR GREAT SHALL BE THE DAY OF JEZREEL.T = CHAPTER 2 B# 1 SAY YE UNTO YOUR BRETHREN, AMMI; AND TO YOUR SISTERS, RUHAMAH.K# 2 PLEAD WITH YOUR MOTHER, PLEAD: FOR SHE IS NOT MY WIFE, NEITHER AM I HERAL HUSBAND: LET HER THEREFORE PUT AWAY HER WHOREDOMS OUT OF HER SIGHT, AND HER% ADULTERIES FROM BETWEEN HER BREASTS;EL# 3 LEST I STRIP HER NAKED, AND SET HER AS IN THE DAY THAT SHE WAS BORN, ANDI MAKE HER AS A WILDERNESS, AND SET HER LIKE A DRY LAND, AND SLAY HER WITHN THIRST.L# 4 AND I WILL NOT HAVE MERCY UPON HER CHILDREN; FOR THEY BE THE CHILDREN OF WHOREDOMS.AI# 5 FOR THEIR MOTHER HATH PLAYED THE HARLOT: SHE THAT CONCEIVED THEM HATHHJ DONE SHAMEFULLY: FOR SHE SAID, I WILL GO AFTER MY LOVERS, THAT GIVE ME MY@ BREAD AND MY WATER, MY WOOL AND MY FLAX, MINE OIL AND MY DRINK.L# 6 THEREFORE, BEHOLD, I WILL HEDGE UP THY WAY WITH THORNS, AND MAKE A WALL,# THAT SHE SHALL NOT FIND HER PATHS.DK# 7 AND SHE SHALL FOLLOW AFTER HER LOVERS, BUT SHE SHALL NOT OVERTAKE THEM;M AND SHE SHALL SEEK THEM, BUT SHALL NOT FIND THEM: THEN SHALL SHE SAY, I WILLDL GO AND RETURN TO MY FIRST HUSBAND; FOR THEN WAS IT BETTER WITH ME THAN NOW.E# 8 FOR SHE DID NOT KNOW THAT I GAVE HER CORN, AND WINE, AND OIL, ANDL> MULTIPLIED HER SILVER AND GOLD, WHICH THEY PREPARED FOR BAAL.K# 9 THEREFORE WILL I RETURN, AND TAKE AWAY MY CORN IN THE TIME THEREOF, AND M MY WINE IN THE SEASON THEREOF, AND WILL RECOVER MY WOOL AND MY FLAX GIVEN TOL COVER HER NAKEDNESS.RI# 10 AND NOW WILL I DISCOVER HER LEWDNESS IN THE SIGHT OF HER LOVERS, ANDO) NONE SHALL DELIVER HER OUT OF MINE HAND.GM# 11 I WILL ALSO CAUSE ALL HER MIRTH TO CEASE, HER FEAST DAYS, HER NEW MOONS, - AND HER SABBATHS, AND ALL HER SOLEMN FEASTS.WK# 12 AND I WILL DESTROY HER VINES AND HER FIG TREES, WHEREOF SHE HATH SAID,BJ THESE ARE MY REWARDS THAT MY LOVERS HAVE GIVEN ME: AND I WILL MAKE THEM A4 FOREST, AND THE BEASTS OF THE FIELD SHALL EAT THEM.M# 13 AND I WILL VISIT UPON HER THE DAYS OF BAALIM, WHEREIN SHE BURNED INCENSEIJ TO THEM, AND SHE DECKED HERSELF WITH HER EARRINGS AND HER JEWELS, AND SHE6 WENT AFTER HER LOVERS, AND FORGAT ME, SAITH THE LORD.M# 14 THEREFORE, BEHOLD, I WILL ALLURE HER, AND BRING HER INTO THE WILDERNESS,L AND SPEAK COMFORTABLY UNTO HER.K# 15 AND I WILL GIVE HER HER VINEYARDS FROM THENCE, AND THE VALLEY OF ACHORDK FOR A DOOR OF HOPE: AND SHE SHALL SING THERE, AS IN THE DAYS OF HER YOUTH,T= AND AS IN THE DAY WHEN SHE CAME UP OUT OF THE LAND OF EGYPT.TI# 16 AND IT SHALL BE AT THAT DAY, SAITH THE LORD, THAT THOU SHALT CALL MER' ISHI; AND SHALT CALL ME NO MORE BAALI.DH# 17 FOR I WILL TAKE AWAY THE NAMES OF BAALIM OUT OF HER MOUTH, AND THEY+ SHALL NO MORE BE REMEMBERED BY THEIR NAME.IK# 18 AND IN THAT DAY WILL 00z>><%X>%+%O-%TADATADATAI MAKE A COVENANT FOR THEM WITH THE BEASTS OF THEHH FIELD AND WITH THE FOWLS OF HEAVEN, AND WITH THE CREEPING THINGS OF THEI GROUND: AND I WILL BREAK THE BOW AND THE SWORD AND THE BATTLE OUT OF THED. EARTH, AND WILL MAKE THEM TO LIE DOWN SAFELY.L# 19 AND I WILL BETROTH THEE UNTO ME FOR EVER; YEA, I WILL BETROTH THEE UNTOM ME IN RIGHTEOUSNESS, AND IN JUDGMENT, AND IN LOVINGKINDNESS, AND IN MERCIES.BJ# 20 I WILL EVEN BETROTH THEE UNTO ME IN FAITHFULNESS: AND THOU SHALT KNOW THE LORD.J# 21 AND IT SHALL COME TO PASS IN THAT DAY, I WILL HEAR, SAITH THE LORD, I6 WILL HEAR THE HEAVENS, AND THEY SHALL HEAR THE EARTH;K# 22 AND THE EARTH SHALL HEAR THE CORN, AND THE WINE, AND THE OIL; AND THEYT SHALL HEAR JEZREEL.L# 23 AND I WILL SOW HER UNTO ME IN THE EARTH; AND I WILL HAVE MERCY UPON HERN THAT HAD NOT OBTAINED MERCY; AND I WILL SAY TO THEM WHICH WERE NOT MY PEOPLE,9 THOU ART MY PEOPLE; AND THEY SHALL SAY, THOU ART MY GOD.H = CHAPTER 3 K# 1 THEN SAID THE LORD UNTO ME, GO YET, LOVE A WOMAN BELOVED OF HER FRIEND,AL YET AN ADULTERESS, ACCORDING TO THE LOVE OF THE LORD TOWARD THE CHILDREN OF: ISRAEL, WHO LOOK TO OTHER GODS, AND LOVE FLAGONS OF WINE.K# 2 SO I BOUGHT HER TO ME FOR FIFTEEN PIECES OF SILVER, AND FOR AN HOMER OFW% BARLEY, AND AN HALF HOMER OF BARLEY: J# 3 AND I SAID UNTO HER, THOU SHALT ABIDE FOR ME MANY DAYS; THOU SHALT NOTN PLAY THE HARLOT, AND THOU SHALT NOT BE FOR ANOTHER MAN: SO WILL I ALSO BE FOR THEE.H# 4 FOR THE CHILDREN OF ISRAEL SHALL ABIDE MANY DAYS WITHOUT A KING, ANDM WITHOUT A PRINCE, AND WITHOUT A SACRIFICE, AND WITHOUT AN IMAGE, AND WITHOUTD AN EPHOD, AND WITHOUT TERAPHIM:J# 5 AFTERWARD SHALL THE CHILDREN OF ISRAEL RETURN, AND SEEK THE LORD THEIRK GOD, AND DAVID THEIR KING; AND SHALL FEAR THE LORD AND HIS GOODNESS IN THEA LATTER DAYS. = CHAPTER 4 I# 1 HEAR THE WORD OF THE LORD, YE CHILDREN OF ISRAEL: FOR THE LORD HATH A M CONTROVERSY WITH THE INHABITANTS OF THE LAND, BECAUSE THERE IS NO TRUTH, NORH) MERCY, NOR KNOWLEDGE OF GOD IN THE LAND.OE# 2 BY SWEARING, AND LYING, AND KILLING, AND STEALING, AND COMMITTING 4 ADULTERY, THEY BREAK OUT, AND BLOOD TOUCHETH BLOOD.M# 3 THEREFORE SHALL THE LAND MOURN, AND EVERY ONE THAT DWELLETH THEREIN SHALLK LANGUISH, WITH THE BEASTS OF THE FIELD, AND WITH THE FOWLS OF HEAVEN; YEA,0 THE FISHES OF THE SEA ALSO SHALL BE TAKEN AWAY.J# 4 YET LET NO MAN STRIVE, NOR REPROVE ANOTHER: FOR THY PEOPLE ARE AS THEY THAT STRIVE WITH THE PRIEST.UI# 5 THEREFORE SHALT THOU FALL IN THE DAY, AND THE PROPHET ALSO SHALL FALL 7 WITH THEE IN THE NIGHT, AND I WILL DESTROY THY MOTHER.MM# 6 MY PEOPLE ARE DESTROYED FOR LACK OF KNOWLEDGE: BECAUSE THOU HAST REJECTEDHH KNOWLEDGE, I WILL ALSO REJECT THEE, THAT THOU SHALT BE NO PRIEST TO ME:F SEEING THOU HAST FORGOTTEN THE LAW OF THY GOD, I WILL ALSO FORGET THY CHILDREN.G# 7 AS THEY WERE INCREASED, SO THEY SINNED AGAINST ME: THEREFORE WILL IA CHANGE THEIR GLORY INTO SHAME.YG# 8 THEY EAT UP THE SIN OF MY PEOPLE, AND THEY SET THEIR HEART ON THEIRY INIQUITY.L# 9 AND THERE SHALL BE, LIKE PEOPLE, LIKE PRIEST: AND I WILL PUNISH THEM FOR* THEIR WAYS, AND REWARD THEM THEIR DOINGS.M# 10 FOR THEY SHALL EAT, AND NOT HAVE ENOUGH: THEY SHALL COMMIT WHOREDOM, ANDAI SHALL NOT INCREASE: BECAUSE THEY HAVE LEFT OFF TO TAKE HEED TO THE LORD.Y8# 11 WHOREDOM AND WINE AND NEW WINE TAKE AWAY THE HEART.J# 12 MY PEOPLE ASK COUNSEL AT THEIR STOCKS, AND THEIR STAFF DECLARETH UNTON THEM: FOR THE SPIRIT OF WHOREDOMS HATH CAUSED THEM TO ERR, AND THEY HAVE GONE A WHORING FROM UNDER THEIR GOD.M# 13 THEY SACRIFICE UPON THE TOPS OF THE MOUNTAINS, AND BURN INCENSE UPON THEAL HILLS, UNDER OAKS AND POPLARS AND ELMS, BECAUSE THE SHADOW THEREOF IS GOOD:N THEREFORE YOUR DAUGHTERS SHALL COMMIT WHOREDOM, AND YOUR SPOUSES SHALL COMMIT ADULTERY.I# 14 I WILL NOT PUNISH YOUR DAUGHTERS WHEN THEY COMMIT WHOREDOM, NOR YOUR M SPOUSES WHEN THEY COMMIT ADULTERY: FOR THEMSELVES ARE SEPARATED WITH WHORES,:D AND THEY SACRIFICE WITH HARLOTS: THEREFORE THE PEOPLE THAT DOTH NOT UNDERSTAND SHALL FALL. M# 15 THOUGH THOU, ISRAEL, PLAY00z>=D%5%T6%! ! THE HARLOT, YET LET NOT JUDAH OFFEND; AND COMEEN NOT YE UNTO GILGAL, NEITHER GO YE UP TO BETHAVEN, NOR SWEAR, THE LORD LIVETH.L# 16 FOR ISRAEL SLIDETH BACK AS A BACKSLIDING HEIFER: NOW THE LORD WILL FEED! THEM AS A LAMB IN A LARGE PLACE. /# 17 EPHRAIM IS JOINED TO IDOLS: LET HIM ALONE.OG# 18 THEIR DRINK IS SOUR: THEY HAVE COMMITTED WHOREDOM CONTINUALLY: HERR$ RULERS WITH SHAME DO LOVE, GIVE YE.G# 19 THE WIND HATH BOUND HER UP IN HER WINGS, AND THEY SHALL BE ASHAMEDL BECAUSE OF THEIR SACRIFICES.L = CHAPTER 5 N# 1 HEAR YE THIS, O PRIESTS; AND HEARKEN, YE HOUSE OF ISRAEL; AND GIVE YE EAR,N O HOUSE OF THE KING; FOR JUDGMENT IS TOWARD YOU, BECAUSE YE HAVE BEEN A SNARE( ON MIZPAH, AND A NET SPREAD UPON TABOR.J# 2 AND THE REVOLTERS ARE PROFOUND TO MAKE SLAUGHTER, THOUGH I HAVE BEEN A REBUKER OF THEM ALL. K# 3 I KNOW EPHRAIM, AND ISRAEL IS NOT HID FROM ME: FOR NOW, O EPHRAIM, THOUO, COMMITTEST WHOREDOM, AND ISRAEL IS DEFILED.K# 4 THEY WILL NOT FRAME THEIR DOINGS TO TURN UNTO THEIR GOD: FOR THE SPIRITHH OF WHOREDOMS IS IN THE MIDST OF THEM, AND THEY HAVE NOT KNOWN THE LORD.L# 5 AND THE PRIDE OF ISRAEL DOTH TESTIFY TO HIS FACE: THEREFORE SHALL ISRAELE AND EPHRAIM FALL IN THEIR INIQUITY: JUDAH ALSO SHALL FALL WITH THEM. J# 6 THEY SHALL GO WITH THEIR FLOCKS AND WITH THEIR HERDS TO SEEK THE LORD;B BUT THEY SHALL NOT FIND HIM; HE HATH WITHDRAWN HIMSELF FROM THEM.J# 7 THEY HAVE DEALT TREACHEROUSLY AGAINST THE LORD: FOR THEY HAVE BEGOTTENE STRANGE CHILDREN: NOW SHALL A MONTH DEVOUR THEM WITH THEIR PORTIONS.OH# 8 BLOW YE THE CORNET IN GIBEAH, AND THE TRUMPET IN RAMAH: CRY ALOUD AT" BETHAVEN, AFTER THEE, O BENJAMIN.G# 9 EPHRAIM SHALL BE DESOLATE IN THE DAY OF REBUKE: AMONG THE TRIBES OFT5 ISRAEL HAVE I MADE KNOWN THAT WHICH SHALL SURELY BE. K# 10 THE PRINCES OF JUDAH WERE LIKE THEM THAT REMOVE THE BOUND: THEREFORE I - WILL POUR OUT MY WRATH UPON THEM LIKE WATER.M# 11 EPHRAIM IS OPPRESSED AND BROKEN IN JUDGMENT, BECAUSE HE WILLINGLY WALKEDR AFTER THE COMMANDMENT.AM# 12 THEREFORE WILL I BE UNTO EPHRAIM AS A MOTH, AND TO THE HOUSE OF JUDAH AS ROTTENNESS.F# 13 WHEN EPHRAIM SAW HIS SICKNESS, AND JUDAH SAW HIS WOUND, THEN WENTL EPHRAIM TO THE ASSYRIAN, AND SENT TO KING JAREB: YET COULD HE NOT HEAL YOU, NOR CURE YOU OF YOUR WOUND.K# 14 FOR I WILL BE UNTO EPHRAIM AS A LION, AND AS A YOUNG LION TO THE HOUSEFM OF JUDAH: I, EVEN I, WILL TEAR AND GO AWAY; I WILL TAKE AWAY, AND NONE SHALLE RESCUE HIM.K# 15 I WILL GO AND RETURN TO MY PLACE, TILL THEY ACKNOWLEDGE THEIR OFFENCE,E? AND SEEK MY FACE: IN THEIR AFFLICTION THEY WILL SEEK ME EARLY.A = CHAPTER 6 M# 1 COME, AND LET US RETURN UNTO THE LORD: FOR HE HATH TORN, AND HE WILL HEALH- US; HE HATH SMITTEN, AND HE WILL BIND US UP.EK# 2 AFTER TWO DAYS WILL HE REVIVE US: IN THE THIRD DAY HE WILL RAISE US UP,T AND WE SHALL LIVE IN HIS SIGHT.L# 3 THEN SHALL WE KNOW, IF WE FOLLOW ON TO KNOW THE LORD: HIS GOING FORTH ISN PREPARED AS THE MORNING; AND HE SHALL COME UNTO US AS THE RAIN, AS THE LATTER AND FORMER RAIN UNTO THE EARTH.M# 4 O EPHRAIM, WHAT SHALL I DO UNTO THEE? O JUDAH, WHAT SHALL I DO UNTO THEE? M FOR YOUR GOODNESS IS AS A MORNING CLOUD, AND AS THE EARLY DEW IT GOETH AWAY.HI# 5 THEREFORE HAVE I HEWED THEM BY THE PROPHETS; I HAVE SLAIN THEM BY THEEH WORDS OF MY MOUTH: AND THY JUDGMENTS ARE AS THE LIGHT THAT GOETH FORTH.I# 6 FOR I DESIRED MERCY, AND NOT SACRIFICE; AND THE KNOWLEDGE OF GOD MOREO THAN BURNT OFFERINGS.K# 7 BUT THEY LIKE MEN HAVE TRANSGRESSED THE COVENANT: THERE HAVE THEY DEALTR TREACHEROUSLY AGAINST ME.L# 8 GILEAD IS A CITY OF THEM THAT WORK INIQUITY, AND IS POLLUTED WITH BLOOD.M# 9 AND AS TROOPS OF ROBBERS WAIT FOR A MAN, SO THE COMPANY OF PRIESTS MURDER1 IN THE WAY BY CONSENT: FOR THEY COMMIT LEWDNESS.HG# 10 I HAVE SEEN AN HORRIBLE THING IN THE HOUSE OF ISRAEL: THERE IS THEL( WHOREDOM OF EPHRAIM, ISRAEL IS DEFILED.H# 11 ALSO, O JUDAH, HE HATH SET AN HARVEST FOR THEE, WHEN I RETURNED THE CAPTIVITY OF MY PEOPLE. = CHAPTER 7 E# 1 WHEN I WOULD HAVE HEALED ISRAEL, THEN THE INIQUITY OF EPHRAIM WAS.N DISCOVERED, A00z>><%X>%+%O-%TADATADATAND THE WICKEDNESS OF SAMARIA: FOR THEY COMMIT FALSEHOOD; AND THE< THIEF COMETH IN, AND THE TROOP OF ROBBERS SPOILETH WITHOUT.C# 2 AND THEY CONSIDER NOT IN THEIR HEARTS THAT I REMEMBER ALL THEIRK WICKEDNESS: NOW THEIR OWN DOINGS HAVE BESET THEM ABOUT; THEY ARE BEFORE MYO FACE.M# 3 THEY MAKE THE KING GLAD WITH THEIR WICKEDNESS, AND THE PRINCES WITH THEIRE LIES.M# 4 THEY ARE ALL ADULTERERS, AS AN OVEN HEATED BY THE BAKER, WHO CEASETH FROME? RAISING AFTER HE HATH KNEADED THE DOUGH, UNTIL IT BE LEAVENED.TI# 5 IN THE DAY OF OUR KING THE PRINCES HAVE MADE HIM SICK WITH BOTTLES OF / WINE; HE STRETCHED OUT HIS HAND WITH SCORNERS. I# 6 FOR THEY HAVE MADE READY THEIR HEART LIKE AN OVEN, WHILES THEY LIE INNI WAIT: THEIR BAKER SLEEPETH ALL THE NIGHT; IN THE MORNING IT BURNETH AS A. FLAMING FIRE.J# 7 THEY ARE ALL HOT AS AN OVEN, AND HAVE DEVOURED THEIR JUDGES; ALL THEIRA KINGS ARE FALLEN: THERE IS NONE AMONG THEM THAT CALLETH UNTO ME.EJ# 8 EPHRAIM, HE HATH MIXED HIMSELF AMONG THE PEOPLE; EPHRAIM IS A CAKE NOT TURNED.J# 9 STRANGERS HAVE DEVOURED HIS STRENGTH, AND HE KNOWETH IT NOT: YEA, GRAY7 HAIRS ARE HERE AND THERE UPON HIM, YET HE KNOWETH NOT. K# 10 AND THE PRIDE OF ISRAEL TESTIFIETH TO HIS FACE: AND THEY DO NOT RETURNS2 TO THE LORD THEIR GOD, NOR SEEK HIM FOR ALL THIS.I# 11 EPHRAIM ALSO IS LIKE A SILLY DOVE WITHOUT HEART: THEY CALL TO EGYPT,R THEY GO TO ASSYRIA.J# 12 WHEN THEY SHALL GO, I WILL SPREAD MY NET UPON THEM; I WILL BRING THEMM DOWN AS THE FOWLS OF THE HEAVEN; I WILL CHASTISE THEM, AS THEIR CONGREGATION HATH HEARD.F# 13 WOE UNTO THEM! FOR THEY HAVE FLED FROM ME: DESTRUCTION UNTO THEM!L BECAUSE THEY HAVE TRANSGRESSED AGAINST ME: THOUGH I HAVE REDEEMED THEM, YET" THEY HAVE SPOKEN LIES AGAINST ME.L# 14 AND THEY HAVE NOT CRIED UNTO ME WITH THEIR HEART, WHEN THEY HOWLED UPONG THEIR BEDS: THEY ASSEMBLE THEMSELVES FOR CORN AND WINE, AND THEY REBELY AGAINST ME.I# 15 THOUGH I HAVE BOUND AND STRENGTHENED THEIR ARMS, YET DO THEY IMAGINES MISCHIEF AGAINST ME.NJ# 16 THEY RETURN, BUT NOT TO THE MOST HIGH: THEY ARE LIKE A DECEITFUL BOW:I THEIR PRINCES SHALL FALL BY THE SWORD FOR THE RAGE OF THEIR TONGUE: THISE. SHALL BE THEIR DERISION IN THE LAND OF EGYPT. = CHAPTER 8 M# 1 SET THE TRUMPET TO THY MOUTH. HE SHALL COME AS AN EAGLE AGAINST THE HOUSEIH OF THE LORD, BECAUSE THEY HAVE TRANSGRESSED MY COVENANT, AND TRESPASSED AGAINST MY LAW.3# 2 ISRAEL SHALL CRY UNTO ME, MY GOD, WE KNOW THEE.AL# 3 ISRAEL HATH CAST OFF THE THING THAT IS GOOD: THE ENEMY SHALL PURSUE HIM.M# 4 THEY HAVE SET UP KINGS, BUT NOT BY ME: THEY HAVE MADE PRINCES, AND I KNEWPL IT NOT: OF THEIR SILVER AND THEIR GOLD HAVE THEY MADE THEM IDOLS, THAT THEY MAY BE CUT OFF.J# 5 THY CALF, O SAMARIA, HATH CAST THEE OFF; MINE ANGER IS KINDLED AGAINST8 THEM: HOW LONG WILL IT BE ERE THEY ATTAIN TO INNOCENCY?I# 6 FOR FROM ISRAEL WAS IT ALSO: THE WORKMAN MADE IT; THEREFORE IT IS NOT 8 GOD: BUT THE CALF OF SAMARIA SHALL BE BROKEN IN PIECES.K# 7 FOR THEY HAVE SOWN THE WIND, AND THEY SHALL REAP THE WHIRLWIND: IT HATHYN NO STALK; THE BUD SHALL YIELD NO MEAL: IF SO BE IT YIELD, THE STRANGERS SHALL SWALLOW IT UP.AL# 8 ISRAEL IS SWALLOWED UP: NOW SHALL THEY BE AMONG THE GENTILES AS A VESSEL WHEREIN IS NO PLEASURE.I# 9 FOR THEY ARE GONE UP TO ASSYRIA, A WILD ASS ALONE BY HIMSELF: EPHRAIME HATH HIRED LOVERS.?K# 10 YEA, THOUGH THEY HAVE HIRED AMONG THE NATIONS, NOW WILL I GATHER THEM,F AND THEY SHALL SORROW A LITTLE FOR THE BURDEN OF THE KING OF PRINCES.K# 11 BECAUSE EPHRAIM HATH MADE MANY ALTARS TO SIN, ALTARS SHALL BE UNTO HIME TO SIN.L# 12 I HAVE WRITTEN TO HIM THE GREAT THINGS OF MY LAW, BUT THEY WERE COUNTED AS A STRANGE THING.K# 13 THEY SACRIFICE FLESH FOR THE SACRIFICES OF MINE OFFERINGS, AND EAT IT;J BUT THE LORD ACCEPTETH THEM NOT; NOW WILL HE REMEMBER THEIR INIQUITY, AND. VISIT THEIR SINS: THEY SHALL RETURN TO EGYPT.I# 14 FOR ISRAEL HATH FORGOTTEN HIS MAKER, AND BUILDETH TEMPLES; AND JUDAHAN HATH MULTIPLIED FENCED CITIES: BUT I WILL SEND A FIRE UPON HIS CITIES, AND IT" SHALL DEVOUR THE PALACES THEREOF.00z>=D%5%T6%! ! = CHAPTER 9 I# 1 REJOICE NOT, O ISRAEL, FOR JOY, AS OTHER PEOPLE: FOR THOU HAST GONE ACE WHORING FROM THY GOD, THOU HAST LOVED A REWARD UPON EVERY CORNFLOOR.CK# 2 THE FLOOR AND THE WINEPRESS SHALL NOT FEED THEM, AND THE NEW WINE SHALLL FAIL IN HER.EG# 3 THEY SHALL NOT DWELL IN THE LORDS LAND; BUT EPHRAIM SHALL RETURN TOR5 EGYPT, AND THEY SHALL EAT UNCLEAN THINGS IN ASSYRIA. J# 4 THEY SHALL NOT OFFER WINE OFFERINGS TO THE LORD, NEITHER SHALL THEY BEG PLEASING UNTO HIM: THEIR SACRIFICES SHALL BE UNTO THEM AS THE BREAD OFOL MOURNERS; ALL THAT EAT THEREOF SHALL BE POLLUTED: FOR THEIR BREAD FOR THEIR0 SOUL SHALL NOT COME INTO THE HOUSE OF THE LORD.I# 5 WHAT WILL YE DO IN THE SOLEMN DAY, AND IN THE DAY OF THE FEAST OF THEW LORD?J# 6 FOR, LO, THEY ARE GONE BECAUSE OF DESTRUCTION: EGYPT SHALL GATHER THEMK UP, MEMPHIS SHALL BURY THEM: THE PLEASANT PLACES FOR THEIR SILVER, NETTLES : SHALL POSSESS THEM: THORNS SHALL BE IN THEIR TABERNACLES.L# 7 THE DAYS OF VISITATION ARE COME, THE DAYS OF RECOMPENCE ARE COME; ISRAELH SHALL KNOW IT: THE PROPHET IS A FOOL, THE SPIRITUAL MAN IS MAD, FOR THE3 MULTITUDE OF THINE INIQUITY, AND THE GREAT HATRED.TL# 8 THE WATCHMAN OF EPHRAIM WAS WITH MY GOD: BUT THE PROPHET IS A SNARE OF A< FOWLER IN ALL HIS WAYS, AND HATRED IN THE HOUSE OF HIS GOD.D# 9 THEY HAVE DEEPLY CORRUPTED THEMSELVES, AS IN THE DAYS OF GIBEAH:E THEREFORE HE WILL REMEMBER THEIR INIQUITY, HE WILL VISIT THEIR SINS. L# 10 I FOUND ISRAEL LIKE GRAPES IN THE WILDERNESS; I SAW YOUR FATHERS AS THEL FIRSTRIPE IN THE FIG TREE AT HER FIRST TIME: BUT THEY WENT TO BAALPEOR, ANDL SEPARATED THEMSELVES UNTO THAT SHAME; AND THEIR ABOMINATIONS WERE ACCORDING AS THEY LOVED. L# 11 AS FOR EPHRAIM, THEIR GLORY SHALL FLY AWAY LIKE A BIRD, FROM THE BIRTH,, AND FROM THE WOMB, AND FROM THE CONCEPTION.M# 12 THOUGH THEY BRING UP THEIR CHILDREN, YET WILL I BEREAVE THEM, THAT THERE H SHALL NOT BE A MAN LEFT: YEA, WOE ALSO TO THEM WHEN I DEPART FROM THEM!I# 13 EPHRAIM, AS I SAW TYRUS, IS PLANTED IN A PLEASANT PLACE: BUT EPHRAIM 0 SHALL BRING FORTH HIS CHILDREN TO THE MURDERER.M# 14 GIVE THEM, O LORD: WHAT WILT THOU GIVE? GIVE THEM A MISCARRYING WOMB ANDE DRY BREASTS. G# 15 ALL THEIR WICKEDNESS IS IN GILGAL: FOR THERE I HATED THEM: FOR THE,L WICKEDNESS OF THEIR DOINGS I WILL DRIVE THEM OUT OF MINE HOUSE, I WILL LOVE/ THEM NO MORE: ALL THEIR PRINCES ARE REVOLTERS.EJ# 16 EPHRAIM IS SMITTEN, THEIR ROOT IS DRIED UP, THEY SHALL BEAR NO FRUIT:N YEA, THOUGH THEY BRING FORTH, YET WILL I SLAY EVEN THE BELOVED FRUIT OF THEIR WOMB.K# 17 MY GOD WILL CAST THEM AWAY, BECAUSE THEY DID NOT HEARKEN UNTO HIM: ANDH+ THEY SHALL BE WANDERERS AMONG THE NATIONS.M = CHAPTER 10 EL# 1 ISRAEL IS AN EMPTY VINE, HE BRINGETH FORTH FRUIT UNTO HIMSELF: ACCORDINGM TO THE MULTITUDE OF HIS FRUIT HE HATH INCREASED THE ALTARS; ACCORDING TO THEE3 GOODNESS OF HIS LAND THEY HAVE MADE GOODLY IMAGES. J# 2 THEIR HEART IS DIVIDED; NOW SHALL THEY BE FOUND FAULTY: HE SHALL BREAK0 DOWN THEIR ALTARS, HE SHALL SPOIL THEIR IMAGES.L# 3 FOR NOW THEY SHALL SAY, WE HAVE NO KING, BECAUSE WE FEARED NOT THE LORD;" WHAT THEN SHOULD A KING DO TO US?G# 4 THEY HAVE SPOKEN WORDS, SWEARING FALSELY IN MAKING A COVENANT: THUSI> JUDGMENT SPRINGETH UP AS HEMLOCK IN THE FURROWS OF THE FIELD.L# 5 THE INHABITANTS OF SAMARIA SHALL FEAR BECAUSE OF THE CALVES OF BETHAVEN:I FOR THE PEOPLE THEREOF SHALL MOURN OVER IT, AND THE PRIESTS THEREOF THATSG REJOICED ON IT, FOR THE GLORY THEREOF, BECAUSE IT IS DEPARTED FROM IT.AF# 6 IT SHALL BE ALSO CARRIED UNTO ASSYRIA FOR A PRESENT TO KING JAREB:M EPHRAIM SHALL RECEIVE SHAME, AND ISRAEL SHALL BE ASHAMED OF HIS OWN COUNSEL. C# 7 AS FOR SAMARIA, HER KING IS CUT OFF AS THE FOAM UPON THE WATER.L# 8 THE HIGH PLACES ALSO OF AVEN, THE SIN OF ISRAEL, SHALL BE DESTROYED: THEK THORN AND THE THISTLE SHALL COME UP ON THEIR ALTARS; AND THEY SHALL SAY TOL7 THE MOUNTAINS, COVER US; AND TO THE HILLS, FALL ON US.AM# 9 O ISRAEL, THOU HAST SINNED FROM THE DAYS OF GIBEAH: THERE THEY STOOD: THE I BATTLE IN GIBEAH AGAINST THE CHILDREN OF INIQUITY D00z>><%X>%+%O-%TADATADATAID NOT OVERTAKE THEM.AL# 10 IT IS IN MY DESIRE THAT I SHOULD CHASTISE THEM; AND THE PEOPLE SHALL BEM GATHERED AGAINST THEM, WHEN THEY SHALL BIND THEMSELVES IN THEIR TWO FURROWS.PL# 11 AND EPHRAIM IS AS AN HEIFER THAT IS TAUGHT, AND LOVETH TO TREAD OUT THEI CORN; BUT I PASSED OVER UPON HER FAIR NECK: I WILL MAKE EPHRAIM TO RIDE;I3 JUDAH SHALL PLOW, AND JACOB SHALL BREAK HIS CLODS.SL# 12 SOW TO YOURSELVES IN RIGHTEOUSNESS, REAP IN MERCY; BREAK UP YOUR FALLOWM GROUND: FOR IT IS TIME TO SEEK THE LORD, TILL HE COME AND RAIN RIGHTEOUSNESSS UPON YOU.J# 13 YE HAVE PLOWED WICKEDNESS, YE HAVE REAPED INIQUITY; YE HAVE EATEN THEL FRUIT OF LIES: BECAUSE THOU DIDST TRUST IN THY WAY, IN THE MULTITUDE OF THY MIGHTY MEN.L# 14 THEREFORE SHALL A TUMULT ARISE AMONG THY PEOPLE, AND ALL THY FORTRESSESI SHALL BE SPOILED, AS SHALMAN SPOILED BETHARBEL IN THE DAY OF BATTLE: THEA/ MOTHER WAS DASHED IN PIECES UPON HER CHILDREN.IG# 15 SO SHALL BETHEL DO UNTO YOU BECAUSE OF YOUR GREAT WICKEDNESS: IN A 5 MORNING SHALL THE KING OF ISRAEL UTTERLY BE CUT OFF. = CHAPTER 11 3N# 1 WHEN ISRAEL WAS A CHILD, THEN I LOVED HIM, AND CALLED MY SON OUT OF EGYPT.M# 2 AS THEY CALLED THEM, SO THEY WENT FROM THEM: THEY SACRIFICED UNTO BAALIM,E% AND BURNED INCENSE TO GRAVEN IMAGES. M# 3 I TAUGHT EPHRAIM ALSO TO GO, TAKING THEM BY THEIR ARMS; BUT THEY KNEW NOT  THAT I HEALED THEM.M# 4 I DREW THEM WITH CORDS OF A MAN, WITH BANDS OF LOVE: AND I WAS TO THEM AS F THEY THAT TAKE OFF THE YOKE ON THEIR JAWS, AND I LAID MEAT UNTO THEM.M# 5 HE SHALL NOT RETURN INTO THE LAND OF EGYPT, AND THE ASSYRIAN SHALL BE HIS & KING, BECAUSE THEY REFUSED TO RETURN.L# 6 AND THE SWORD SHALL ABIDE ON HIS CITIES, AND SHALL CONSUME HIS BRANCHES,0 AND DEVOUR THEM, BECAUSE OF THEIR OWN COUNSELS.M# 7 AND MY PEOPLE ARE BENT TO BACKSLIDING FROM ME: THOUGH THEY CALLED THEM TOY, THE MOST HIGH, NONE AT ALL WOULD EXALT HIM.L# 8 HOW SHALL I GIVE THEE UP, EPHRAIM? HOW SHALL I DELIVER THEE, ISRAEL? HOWJ SHALL I MAKE THEE AS ADMAH? HOW SHALL I SET THEE AS ZEBOIM? MINE HEART IS6 TURNED WITHIN ME, MY REPENTINGS ARE KINDLED TOGETHER.I# 9 I WILL NOT EXECUTE THE FIERCENESS OF MINE ANGER, I WILL NOT RETURN TOBI DESTROY EPHRAIM: FOR I AM GOD, AND NOT MAN; THE HOLY ONE IN THE MIDST OFS* THEE: AND I WILL NOT ENTER INTO THE CITY.M# 10 THEY SHALL WALK AFTER THE LORD: HE SHALL ROAR LIKE A LION: WHEN HE SHALLO5 ROAR, THEN THE CHILDREN SHALL TREMBLE FROM THE WEST.PM# 11 THEY SHALL TREMBLE AS A BIRD OUT OF EGYPT, AND AS A DOVE OUT OF THE LANDHC OF ASSYRIA: AND I WILL PLACE THEM IN THEIR HOUSES, SAITH THE LORD.EH# 12 EPHRAIM COMPASSETH ME ABOUT WITH LIES, AND THE HOUSE OF ISRAEL WITHH DECEIT: BUT JUDAH YET RULETH WITH GOD, AND IS FAITHFUL WITH THE SAINTS. = CHAPTER 12 NH# 1 EPHRAIM FEEDETH ON WIND, AND FOLLOWETH AFTER THE EAST WIND: HE DAILYE INCREASETH LIES AND DESOLATION; AND THEY DO MAKE A COVENANT WITH THER* ASSYRIANS, AND OIL IS CARRIED INTO EGYPT.F# 2 THE LORD HATH ALSO A CONTROVERSY WITH JUDAH, AND WILL PUNISH JACOBG ACCORDING TO HIS WAYS; ACCORDING TO HIS DOINGS WILL HE RECOMPENSE HIM.TK# 3 HE TOOK HIS BROTHER BY THE HEEL IN THE WOMB, AND BY HIS STRENGTH HE HADR POWER WITH GOD:F# 4 YEA, HE HAD POWER OVER THE ANGEL, AND PREVAILED: HE WEPT, AND MADEK SUPPLICATION UNTO HIM: HE FOUND HIM IN BETHEL, AND THERE HE SPAKE WITH US;D9# 5 EVEN THE LORD GOD OF HOSTS; THE LORD IS HIS MEMORIAL.OK# 6 THEREFORE TURN THOU TO THY GOD: KEEP MERCY AND JUDGMENT AND WAIT ON THYT GOD CONTINUALLY.YJ# 7 HE IS A MERCHANT, THE BALANCES OF DECEIT ARE IN HIS HAND: HE LOVETH TO OPPRESS.LM# 8 AND EPHRAIM SAID, YET I AM BECOME RICH, I HAVE FOUND ME OUT SUBSTANCE: INIB ALL MY LABOURS THEY SHALL FIND NONE INIQUITY IN ME THAT WERE SIN.L# 9 AND I THAT AM THE LORD THY GOD FROM THE LAND OF EGYPT WILL YET MAKE THEE= TO DWELL IN TABERNACLES, AS IN THE DAYS OF THE SOLEMN FEAST. K# 10 I HAVE ALSO SPOKEN BY THE PROPHETS, AND I HAVE MULTIPLIED VISIONS, ANDP3 USED SIMILITUDES, BY THE MINISTRY OF THE PROPHETS.YH# 11 IS THERE INIQUITY IN GILEAD? SURELY THEY ARE VANITY: THEY SACRIFICEI BULLOCKS 00z?=D%5%T6%! !IN GILGAL; YEA, THEIR ALTARS ARE AS HEAPS IN THE FURROWS OF THEM FIELDS.L# 12 AND JACOB FLED INTO THE COUNTRY OF SYRIA, AND ISRAEL SERVED FOR A WIFE, AND FOR A WIFE HE KEPT SHEEP.L# 13 AND BY A PROPHET THE LORD BROUGHT ISRAEL OUT OF EGYPT, AND BY A PROPHET WAS HE PRESERVED.J# 14 EPHRAIM PROVOKED HIM TO ANGER MOST BITTERLY: THEREFORE SHALL HE LEAVEE HIS BLOOD UPON HIM, AND HIS REPROACH SHALL HIS LORD RETURN UNTO HIM. = CHAPTER 13 QK# 1 WHEN EPHRAIM SPAKE TREMBLING, HE EXALTED HIMSELF IN ISRAEL; BUT WHEN HEY OFFENDED IN BAAL, HE DIED. M# 2 AND NOW THEY SIN MORE AND MORE, AND HAVE MADE THEM MOLTEN IMAGES OF THEIR,N SILVER, AND IDOLS ACCORDING TO THEIR OWN UNDERSTANDING, ALL OF IT THE WORK OFM THE CRAFTSMEN: THEY SAY OF THEM, LET THE MEN THAT SACRIFICE KISS THE CALVES..J# 3 THEREFORE THEY SHALL BE AS THE MORNING CLOUD AND AS THE EARLY DEW THATH PASSETH AWAY, AS THE CHAFF THAT IS DRIVEN WITH THE WHIRLWIND OUT OF THE, FLOOR, AND AS THE SMOKE OUT OF THE CHIMNEY.L# 4 YET I AM THE LORD THY GOD FROM THE LAND OF EGYPT, AND THOU SHALT KNOW NO/ GOD BUT ME: FOR THERE IS NO SAVIOUR BESIDE ME. D# 5 I DID KNOW THEE IN THE WILDERNESS, IN THE LAND OF GREAT DROUGHT.J# 6 ACCORDING TO THEIR PASTURE, SO WERE THEY FILLED; THEY WERE FILLED, AND; THEIR HEART WAS EXALTED; THEREFORE HAVE THEY FORGOTTEN ME.YK# 7 THEREFORE I WILL BE UNTO THEM AS A LION: AS A LEOPARD BY THE WAY WILL IH OBSERVE THEM:L# 8 I WILL MEET THEM AS A BEAR THAT IS BEREAVED OF HER WHELPS, AND WILL RENDL THE CAUL OF THEIR HEART, AND THERE WILL I DEVOUR THEM LIKE A LION: THE WILD BEAST SHALL TEAR THEM.EC# 9 O ISRAEL, THOU HAST DESTROYED THYSELF; BUT IN ME IS THINE HELP.II# 10 I WILL BE THY KING: WHERE IS ANY OTHER THAT MAY SAVE THEE IN ALL THYFH CITIES? AND THY JUDGES OF WHOM THOU SAIDST, GIVE ME A KING AND PRINCES?E# 11 I GAVE THEE A KING IN MINE ANGER, AND TOOK HIM AWAY IN MY WRATH.P9# 12 THE INIQUITY OF EPHRAIM IS BOUND UP; HIS SIN IS HID.MK# 13 THE SORROWS OF A TRAVAILING WOMAN SHALL COME UPON HIM: HE IS AN UNWISEHG SON; FOR HE SHOULD NOT STAY LONG IN THE PLACE OF THE BREAKING FORTH OFA CHILDREN.L# 14 I WILL RANSOM THEM FROM THE POWER OF THE GRAVE; I WILL REDEEM THEM FROMK DEATH: O DEATH, I WILL BE THY PLAGUES; O GRAVE, I WILL BE THY DESTRUCTION:D( REPENTANCE SHALL BE HID FROM MINE EYES.K# 15 THOUGH HE BE FRUITFUL AMONG HIS BRETHREN, AN EAST WIND SHALL COME, THEII WIND OF THE LORD SHALL COME UP FROM THE WILDERNESS, AND HIS SPRING SHALL L BECOME DRY, AND HIS FOUNTAIN SHALL BE DRIED UP: HE SHALL SPOIL THE TREASURE OF ALL PLEASANT VESSELS.LJ# 16 SAMARIA SHALL BECOME DESOLATE; FOR SHE HATH REBELLED AGAINST HER GOD:K THEY SHALL FALL BY THE SWORD: THEIR INFANTS SHALL BE DASHED IN PIECES, ANDW+ THEIR WOMEN WITH CHILD SHALL BE RIPPED UP.S = CHAPTER 14 PI# 1 O ISRAEL, RETURN UNTO THE LORD THY GOD; FOR THOU HAST FALLEN BY THINEB INIQUITY.J# 2 TAKE WITH YOU WORDS, AND TURN TO THE LORD: SAY UNTO HIM, TAKE AWAY ALLI INIQUITY, AND RECEIVE US GRACIOUSLY: SO WILL WE RENDER THE CALVES OF OUR: LIPS.K# 3 ASSHUR SHALL NOT SAVE US; WE WILL NOT RIDE UPON HORSES: NEITHER WILL WEEH SAY ANY MORE TO THE WORK OF OUR HANDS, YE ARE OUR GODS: FOR IN THEE THE FATHERLESS FINDETH MERCY.M# 4 I WILL HEAL THEIR BACKSLIDING, I WILL LOVE THEM FREELY: FOR MINE ANGER IS  TURNED AWAY FROM HIM.I# 5 I WILL BE AS THE DEW UNTO ISRAEL: HE SHALL GROW AS THE LILY, AND CASTA FORTH HIS ROOTS AS LEBANON.M# 6 HIS BRANCHES SHALL SPREAD, AND HIS BEAUTY SHALL BE AS THE OLIVE TREE, ANDO HIS SMELL AS LEBANON.K# 7 THEY THAT DWELL UNDER HIS SHADOW SHALL RETURN; THEY SHALL REVIVE AS THESF CORN, AND GROW AS THE VINE: THE SCENT THEREOF SHALL BE AS THE WINE OF LEBANON. J# 8 EPHRAIM SHALL SAY, WHAT HAVE I TO DO ANY MORE WITH IDOLS? I HAVE HEARDH HIM, AND OBSERVED HIM: I AM LIKE A GREEN FIR TREE. FROM ME IS THY FRUIT FOUND.TL# 9 WHO IS WISE, AND HE SHALL UNDERSTAND THESE THINGS? PRUDENT, AND HE SHALLJ KNOW THEM? FOR THE WAYS OF THE LORD ARE RIGHT, AND THE JUST SHALL WALK IN0 THEM: BUT THE TRANSGRESSORS SHALL FALL THEREIN.T DWELL UNDER HIS SHADOW SHALL RETUR00{ ?><%X>%+%O-%TADATADATA * BOOK29 JOELE = CHAPTER 1 ># 1 THE WORD OF THE LORD THAT CAME TO JOEL THE SON OF PETHUEL.M# 2 HEAR THIS, YE OLD MEN, AND GIVE EAR, ALL YE INHABITANTS OF THE LAND. HATHS= THIS BEEN IN YOUR DAYS, OR EVEN IN THE DAYS OF YOUR FATHERS?RK# 3 TELL YE YOUR CHILDREN OF IT, AND LET YOUR CHILDREN TELL THEIR CHILDREN,T' AND THEIR CHILDREN ANOTHER GENERATION. M# 4 THAT WHICH THE PALMERWORM HATH LEFT HATH THE LOCUST EATEN; AND THAT WHICHTN THE LOCUST HATH LEFT HATH THE CANKERWORM EATEN; AND THAT WHICH THE CANKERWORM& HATH LEFT HATH THE CATERPILLER EATEN.M# 5 AWAKE, YE DRUNKARDS, AND WEEP; AND HOWL, ALL YE DRINKERS OF WINE, BECAUSED4 OF THE NEW WINE; FOR IT IS CUT OFF FROM YOUR MOUTH.K# 6 FOR A NATION IS COME UP UPON MY LAND, STRONG, AND WITHOUT NUMBER, WHOSECL TEETH ARE THE TEETH OF A LION, AND HE HATH THE CHEEK TEETH OF A GREAT LION.M# 7 HE HATH LAID MY VINE WASTE, AND BARKED MY FIG TREE: HE HATH MADE IT CLEAN = BARE, AND CAST IT AWAY; THE BRANCHES THEREOF ARE MADE WHITE.RL# 8 LAMENT LIKE A VIRGIN GIRDED WITH SACKCLOTH FOR THE HUSBAND OF HER YOUTH.M# 9 THE MEAT OFFERING AND THE DRINK OFFERING IS CUT OFF FROM THE HOUSE OF THED/ LORD; THE PRIESTS, THE LORDS MINISTERS, MOURN.OL# 10 THE FIELD IS WASTED, THE LAND MOURNETH; FOR THE CORN IS WASTED: THE NEW' WINE IS DRIED UP, THE OIL LANGUISHETH. K# 11 BE YE ASHAMED, O YE HUSBANDMEN; HOWL, O YE VINEDRESSERS, FOR THE WHEAT B AND FOR THE BARLEY; BECAUSE THE HARVEST OF THE FIELD IS PERISHED.H# 12 THE VINE IS DRIED UP, AND THE FIG TREE LANGUISHETH; THE POMEGRANATEH TREE, THE PALM TREE ALSO, AND THE APPLE TREE, EVEN ALL THE TREES OF THEH FIELD, ARE WITHERED: BECAUSE JOY IS WITHERED AWAY FROM THE SONS OF MEN.G# 13 GIRD YOURSELVES, AND LAMENT, YE PRIESTS: HOWL, YE MINISTERS OF THERN ALTAR: COME, LIE ALL NIGHT IN SACKCLOTH, YE MINISTERS OF MY GOD: FOR THE MEATJ OFFERING AND THE DRINK OFFERING IS WITHHOLDEN FROM THE HOUSE OF YOUR GOD.J# 14 SANCTIFY YE A FAST, CALL A SOLEMN ASSEMBLY, GATHER THE ELDERS AND ALLN THE INHABITANTS OF THE LAND INTO THE HOUSE OF THE LORD YOUR GOD, AND CRY UNTO THE LORD,C# 15 ALAS FOR THE DAY! FOR THE DAY OF THE LORD IS AT HAND, AND AS AS- DESTRUCTION FROM THE ALMIGHTY SHALL IT COME. L# 16 IS NOT THE MEAT CUT OFF BEFORE OUR EYES, YEA, JOY AND GLADNESS FROM THE HOUSE OF OUR GOD?M# 17 THE SEED IS ROTTEN UNDER THEIR CLODS, THE GARNERS ARE LAID DESOLATE, THEF1 BARNS ARE BROKEN DOWN; FOR THE CORN IS WITHERED. M# 18 HOW DO THE BEASTS GROAN! THE HERDS OF CATTLE ARE PERPLEXED, BECAUSE THEYI= HAVE NO PASTURE; YEA, THE FLOCKS OF SHEEP ARE MADE DESOLATE. K# 19 O LORD, TO THEE WILL I CRY: FOR THE FIRE HATH DEVOURED THE PASTURES OFNF THE WILDERNESS, AND THE FLAME HATH BURNED ALL THE TREES OF THE FIELD.M# 20 THE BEASTS OF THE FIELD CRY ALSO UNTO THEE: FOR THE RIVERS OF WATERS AREUE DRIED UP, AND THE FIRE HATH DEVOURED THE PASTURES OF THE WILDERNESS. = CHAPTER 2 L# 1 BLOW YE THE TRUMPET IN ZION, AND SOUND AN ALARM IN MY HOLY MOUNTAIN: LETM ALL THE INHABITANTS OF THE LAND TREMBLE: FOR THE DAY OF THE LORD COMETH, FORT IT IS NIGH AT HAND;E# 2 A DAY OF DARKNESS AND OF GLOOMINESS, A DAY OF CLOUDS AND OF THICKVI DARKNESS, AS THE MORNING SPREAD UPON THE MOUNTAINS: A GREAT PEOPLE AND ATK STRONG; THERE HATH NOT BEEN EVER THE LIKE, NEITHER SHALL BE ANY MORE AFTERR+ IT, EVEN TO THE YEARS OF MANY GENERATIONS. K# 3 A FIRE DEVOURETH BEFORE THEM; AND BEHIND THEM A FLAME BURNETH: THE LAND M IS AS THE GARDEN OF EDEN BEFORE THEM, AND BEHIND THEM A DESOLATE WILDERNESS;N$ YEA, AND NOTHING SHALL ESCAPE THEM.K# 4 THE APPEARANCE OF THEM IS AS THE APPEARANCE OF HORSES; AND AS HORSEMEN,O SO SHALL THEY RUN.UM# 5 LIKE THE NOISE OF CHARIOTS ON THE TOPS OF MOUNTAINS SHALL THEY LEAP, LIKEPL THE NOISE OF A FLAME OF FIRE THAT DEVOURETH THE STUBBLE, AS A STRONG PEOPLE SET IN BATTLE ARRAY. M# 6 BEFORE THEIR FACE THE PEOPLE SHALL BE MUCH PAINED: ALL FACES SHALL GATHERD BLACKNESS. I# 7 THEY SHALL RUN LIKE MIGHTY MEN; THEY SHALL CLIMB THE WALL LIKE MEN OFAJ WAR; AND THEY SHALL MARCH EVERY ONE ON HIS WAYS, AND THEY SHALL NOT BREAK THEIR RANKS: L# 8 NEIT00{?=D%5%T6%! !HER SHALL ONE THRUST ANOTHER; THEY SHALL WALK EVERY ONE IN HIS PATH:> AND WHEN THEY FALL UPON THE SWORD, THEY SHALL NOT BE WOUNDED.M# 9 THEY SHALL RUN TO AND FRO IN THE CITY; THEY SHALL RUN UPON THE WALL, THEYEJ SHALL CLIMB UP UPON THE HOUSES; THEY SHALL ENTER IN AT THE WINDOWS LIKE A THIEF.AJ# 10 THE EARTH SHALL QUAKE BEFORE THEM; THE HEAVENS SHALL TREMBLE: THE SUNH AND THE MOON SHALL BE DARK, AND THE STARS SHALL WITHDRAW THEIR SHINING:M# 11 AND THE LORD SHALL UTTER HIS VOICE BEFORE HIS ARMY: FOR HIS CAMP IS VERYHL GREAT: FOR HE IS STRONG THAT EXECUTETH HIS WORD: FOR THE DAY OF THE LORD IS/ GREAT AND VERY TERRIBLE; AND WHO CAN ABIDE IT?SI# 12 THEREFORE ALSO NOW, SAITH THE LORD, TURN YE EVEN TO ME WITH ALL YOURL> HEART, AND WITH FASTING, AND WITH WEEPING, AND WITH MOURNING:L# 13 AND REND YOUR HEART, AND NOT YOUR GARMENTS, AND TURN UNTO THE LORD YOURL GOD: FOR HE IS GRACIOUS AND MERCIFUL, SLOW TO ANGER, AND OF GREAT KINDNESS, AND REPENTETH HIM OF THE EVIL. J# 14 WHO KNOWETH IF HE WILL RETURN AND REPENT, AND LEAVE A BLESSING BEHINDG HIM; EVEN A MEAT OFFERING AND A DRINK OFFERING UNTO THE LORD YOUR GOD? G# 15 BLOW THE TRUMPET IN ZION, SANCTIFY A FAST, CALL A SOLEMN ASSEMBLY:,G# 16 GATHER THE PEOPLE, SANCTIFY THE CONGREGATION, ASSEMBLE THE ELDERS,EL GATHER THE CHILDREN, AND THOSE THAT SUCK THE BREASTS: LET THE BRIDEGROOM GO7 FORTH OF HIS CHAMBER, AND THE BRIDE OUT OF HER CLOSET.RK# 17 LET THE PRIESTS, THE MINISTERS OF THE LORD, WEEP BETWEEN THE PORCH AND J THE ALTAR, AND LET THEM SAY, SPARE THY PEOPLE, O LORD, AND GIVE NOT THINEH HERITAGE TO REPROACH, THAT THE HEATHEN SHOULD RULE OVER THEM: WHEREFORE6 SHOULD THEY SAY AMONG THE PEOPLE, WHERE IS THEIR GOD?E# 18 THEN WILL THE LORD BE JEALOUS FOR HIS LAND, AND PITY HIS PEOPLE.AK# 19 YEA, THE LORD WILL ANSWER AND SAY UNTO HIS PEOPLE, BEHOLD, I WILL SENDLM YOU CORN, AND WINE, AND OIL, AND YE SHALL BE SATISFIED THEREWITH: AND I WILL/ NO MORE MAKE YOU A REPROACH AMONG THE HEATHEN:WM# 20 BUT I WILL REMOVE FAR OFF FROM YOU THE NORTHERN ARMY, AND WILL DRIVE HIMOL INTO A LAND BARREN AND DESOLATE, WITH HIS FACE TOWARD THE EAST SEA, AND HISL HINDER PART TOWARD THE UTMOST SEA, AND HIS STINK SHALL COME UP, AND HIS ILL9 SAVOUR SHALL COME UP, BECAUSE HE HATH DONE GREAT THINGS. F# 21 FEAR NOT, O LAND; BE GLAD AND REJOICE: FOR THE LORD WILL DO GREAT THINGS.C# 22 BE NOT AFRAID, YE BEASTS OF THE FIELD: FOR THE PASTURES OF THETK WILDERNESS DO SPRING, FOR THE TREE BEARETH HER FRUIT, THE FIG TREE AND THEW VINE DO YIELD THEIR STRENGTH.M# 23 BE GLAD THEN, YE CHILDREN OF ZION, AND REJOICE IN THE LORD YOUR GOD: FORFM HE HATH GIVEN YOU THE FORMER RAIN MODERATELY, AND HE WILL CAUSE TO COME DOWNTK FOR YOU THE RAIN, THE FORMER RAIN, AND THE LATTER RAIN IN THE FIRST MONTH.RL# 24 AND THE FLOORS SHALL BE FULL OF WHEAT, AND THE VATS SHALL OVERFLOW WITH WINE AND OIL.H# 25 AND I WILL RESTORE TO YOU THE YEARS THAT THE LOCUST HATH EATEN, THEK CANKERWORM, AND THE CATERPILLER, AND THE PALMERWORM, MY GREAT ARMY WHICH IV SENT AMONG YOU.M# 26 AND YE SHALL EAT IN PLENTY, AND BE SATISFIED, AND PRAISE THE NAME OF THERN LORD YOUR GOD, THAT HATH DEALT WONDROUSLY WITH YOU: AND MY PEOPLE SHALL NEVER BE ASHAMED.J# 27 AND YE SHALL KNOW THAT I AM IN THE MIDST OF ISRAEL, AND THAT I AM THED LORD YOUR GOD, AND NONE ELSE: AND MY PEOPLE SHALL NEVER BE ASHAMED.M# 28 AND IT SHALL COME TO PASS AFTERWARD, THAT I WILL POUR OUT MY SPIRIT UPONTI ALL FLESH; AND YOUR SONS AND YOUR DAUGHTERS SHALL PROPHESY, YOUR OLD MENG6 SHALL DREAM DREAMS, YOUR YOUNG MEN SHALL SEE VISIONS:K# 29 AND ALSO UPON THE SERVANTS AND UPON THE HANDMAIDS IN THOSE DAYS WILL I  POUR OUT MY SPIRIT.H# 30 AND I WILL SHEW WONDERS IN THE HEAVENS AND IN THE EARTH, BLOOD, AND FIRE, AND PILLARS OF SMOKE.K# 31 THE SUN SHALL BE TURNED INTO DARKNESS, AND THE MOON INTO BLOOD, BEFOREL- THE GREAT AND TERRIBLE DAY OF THE LORD COME.AL# 32 AND IT SHALL COME TO PASS, THAT WHOSOEVER SHALL CALL ON THE NAME OF THEE LORD SHALL BE DELIVERED: FOR IN MOUNT ZION AND IN JERUSALEM SHALL BEYK DELIVERANCE, AS THE LORD HATH SAID, A00{?|!?<%X>%+%O-%TADATADATAND IN THE REMNANT WHOM THE LORD SHALLE CALL. = CHAPTER 3 N# 1 FOR, BEHOLD, IN THOSE DAYS, AND IN THAT TIME, WHEN I SHALL BRING AGAIN THE" CAPTIVITY OF JUDAH AND JERUSALEM,L# 2 I WILL ALSO GATHER ALL NATIONS, AND WILL BRING THEM DOWN INTO THE VALLEYH OF JEHOSHAPHAT, AND WILL PLEAD WITH THEM THERE FOR MY PEOPLE AND FOR MYK HERITAGE ISRAEL, WHOM THEY HAVE SCATTERED AMONG THE NATIONS, AND PARTED MYR LAND.F# 3 AND THEY HAVE CAST LOTS FOR MY PEOPLE; AND HAVE GIVEN A BOY FOR AN9 HARLOT, AND SOLD A GIRL FOR WINE, THAT THEY MIGHT DRINK.HG# 4 YEA, AND WHAT HAVE YE TO DO WITH ME, O TYRE, AND ZIDON, AND ALL THEIN COASTS OF PALESTINE? WILL YE RENDER ME A RECOMPENCE? AND IF YE RECOMPENSE ME,G SWIFTLY AND SPEEDILY WILL I RETURN YOUR RECOMPENCE UPON YOUR OWN HEAD;EK# 5 BECAUSE YE HAVE TAKEN MY SILVER AND MY GOLD, AND HAVE CARRIED INTO YOUR # TEMPLES MY GOODLY PLEASANT THINGS:GI# 6 THE CHILDREN ALSO OF JUDAH AND THE CHILDREN OF JERUSALEM HAVE YE SOLDOD UNTO THE GRECIANS, THAT YE MIGHT REMOVE THEM FAR FROM THEIR BORDER.M# 7 BEHOLD, I WILL RAISE THEM OUT OF THE PLACE WHITHER YE HAVE SOLD THEM, ANDD0 WILL RETURN YOUR RECOMPENCE UPON YOUR OWN HEAD:E# 8 AND I WILL SELL YOUR SONS AND YOUR DAUGHTERS INTO THE HAND OF THEIL CHILDREN OF JUDAH, AND THEY SHALL SELL THEM TO THE SABEANS, TO A PEOPLE FAR" OFF: FOR THE LORD HATH SPOKEN IT.M# 9 PROCLAIM YE THIS AMONG THE GENTILES; PREPARE WAR, WAKE UP THE MIGHTY MEN,D4 LET ALL THE MEN OF WAR DRAW NEAR; LET THEM COME UP:L# 10 BEAT YOUR PLOWSHARES INTO SWORDS AND YOUR PRUNINGHOOKS INTO SPEARS: LET THE WEAK SAY, I AM STRONG.AI# 11 ASSEMBLE YOURSELVES, AND COME, ALL YE HEATHEN, AND GATHER YOURSELVESOJ TOGETHER ROUND ABOUT: THITHER CAUSE THY MIGHTY ONES TO COME DOWN, O LORD.J# 12 LET THE HEATHEN BE WAKENED, AND COME UP TO THE VALLEY OF JEHOSHAPHAT:; FOR THERE WILL I SIT TO JUDGE ALL THE HEATHEN ROUND ABOUT.HK# 13 PUT YE IN THE SICKLE, FOR THE HARVEST IS RIPE: COME, GET YOU DOWN; FORNE THE PRESS IS FULL, THE FATS OVERFLOW; FOR THEIR WICKEDNESS IS GREAT.OI# 14 MULTITUDES, MULTITUDES IN THE VALLEY OF DECISION: FOR THE DAY OF THE ( LORD IS NEAR IN THE VALLEY OF DECISION.I# 15 THE SUN AND THE MOON SHALL BE DARKENED, AND THE STARS SHALL WITHDRAWG THEIR SHINING.DC# 16 THE LORD ALSO SHALL ROAR OUT OF ZION, AND UTTER HIS VOICE FROMLK JERUSALEM; AND THE HEAVENS AND THE EARTH SHALL SHAKE: BUT THE LORD WILL BETD THE HOPE OF HIS PEOPLE, AND THE STRENGTH OF THE CHILDREN OF ISRAEL.K# 17 SO SHALL YE KNOW THAT I AM THE LORD YOUR GOD DWELLING IN ZION, MY HOLYEJ MOUNTAIN: THEN SHALL JERUSALEM BE HOLY, AND THERE SHALL NO STRANGERS PASS THROUGH HER ANY MORE.I# 18 AND IT SHALL COME TO PASS IN THAT DAY, THAT THE MOUNTAINS SHALL DROPEI DOWN NEW WINE, AND THE HILLS SHALL FLOW WITH MILK, AND ALL THE RIVERS OF I JUDAH SHALL FLOW WITH WATERS, AND A FOUNTAIN SHALL COME FORTH OUT OF THET: HOUSE OF THE LORD, AND SHALL WATER THE VALLEY OF SHITTIM.J# 19 EGYPT SHALL BE A DESOLATION, AND EDOM SHALL BE A DESOLATE WILDERNESS,G FOR THE VIOLENCE AGAINST THE CHILDREN OF JUDAH, BECAUSE THEY HAVE SHEDE INNOCENT BLOOD IN THEIR LAND.E# 20 BUT JUDAH SHALL DWELL FOR EVER, AND JERUSALEM FROM GENERATION TOA GENERATION.J# 21 FOR I WILL CLEANSE THEIR BLOOD THAT I HAVE NOT CLEANSED: FOR THE LORD DWELLETH IN ZION.E RIVERS OF I JUDAH SHALL FLOW WITH WATERS, AND A FOUNTAIN SHALL COME FORTH OUT OF THET: HOUSE OF THE LORD, AND SHALL WATER THE VALLEY OF SHITTIM.J# 19 EGYPT SHALL BE A DESOLATION, AND EDOM SHALL BE A DESOLATE WILDERNESS,G FOR THE VIOLENCE AGAINST THE CHILDREN OF JUDAH, BECAUSE THEY HA * BOOK30 AMOSC = CHAPTER 1 G# 1 THE WORDS OF AMOS, WHO WAS AMONG THE HERDMEN OF TEKOA, WHICH HE SAWAJ CONCERNING ISRAEL IN THE DAYS OF UZZIAH KING OF JUDAH, AND IN THE DAYS OFK JEROBOAM THE SON OF JOASH KING OF ISRAEL, TWO YEARS BEFORE THE EARTHQUAKE.HG# 2 AND HE SAID, THE LORD WILL ROAR FROM ZION, AND UTTER HIS VOICE FROM L JERUSALEM; AND THE HABITATIONS OF THE SHEPHERDS SHALL MOURN, AND THE TOP OF CARMEL SHALL WITHER.EL# 3 THUS SAITH THE LORD; FOR THREE TRANSGRESSIONS OF DAMASCUS, AND FOR FOUR,00|"?=D%5%T6%! !H I WILL NOT TURN AWAY THE PUNISHMENT THEREOF; BECAUSE THEY HAVE THRESHED+ GILEAD WITH THRESHING INSTRUMENTS OF IRON:SK# 4 BUT I WILL SEND A FIRE INTO THE HOUSE OF HAZAEL, WHICH SHALL DEVOUR THEO PALACES OF BENHADADOPJ# 5 I WILL BREAK ALSO THE BAR OF DAMASCUS, AND CUT OFF THE INHABITANT FROML THE PLAIN OF AVEN, AND HIM THAT HOLDETH THE SCEPTRE FROM THE HOUSE OF EDEN:J AND THE PEOPLE OF SYRIA SHALL GO INTO CAPTIVITY UNTO KIR, SAITH THE LORD.J# 6 THUS SAITH THE LORD; FOR THREE TRANSGRESSIONS OF GAZA, AND FOR FOUR, IM WILL NOT TURN AWAY THE PUNISHMENT THEREOF; BECAUSE THEY CARRIED AWAY CAPTIVER1 THE WHOLE CAPTIVITY, TO DELIVER THEM UP TO EDOM:HF# 7 BUT I WILL SEND A FIRE ON THE WALL OF GAZA, WHICH SHALL DEVOUR THE PALACES THEREOF:KK# 8 AND I WILL CUT OFF THE INHABITANT FROM ASHDOD, AND HIM THAT HOLDETH THENH SCEPTRE FROM ASHKELON, AND I WILL TURN MINE HAND AGAINST EKRON: AND THE= REMNANT OF THE PHILISTINES SHALL PERISH, SAITH THE LORD GOD. K# 9 THUS SAITH THE LORD; FOR THREE TRANSGRESSIONS OF TYRUS, AND FOR FOUR, ILI WILL NOT TURN AWAY THE PUNISHMENT THEREOF; BECAUSE THEY DELIVERED UP THED WHOLE CAPTIVITY TO EDOM, AND REMEMBERED NOT THE BROTHERLY COVENANT:H# 10 BUT I WILL SEND A FIRE ON THE WALL OF TYRUS, WHICH SHALL DEVOUR THE PALACES THEREOF.OK# 11 THUS SAITH THE LORD; FOR THREE TRANSGRESSIONS OF EDOM, AND FOR FOUR, ILM WILL NOT TURN AWAY THE PUNISHMENT THEREOF; BECAUSE HE DID PURSUE HIS BROTHEREB WITH THE SWORD, AND DID CAST OFF ALL PITY, AND HIS ANGER DID TEAR- PERPETUALLY, AND HE KEPT HIS WRATH FOR EVER:I# 12 BUT I WILL SEND A FIRE UPON TEMAN, WHICH SHALL DEVOUR THE PALACES OF BOZRAH.L# 13 THUS SAITH THE LORD; FOR THREE TRANSGRESSIONS OF THE CHILDREN OF AMMON,M AND FOR FOUR, I WILL NOT TURN AWAY THE PUNISHMENT THEREOF; BECAUSE THEY HAVE1H RIPPED UP THE WOMEN WITH CHILD OF GILEAD, THAT THEY MIGHT ENLARGE THEIR BORDER:L# 14 BUT I WILL KINDLE A FIRE IN THE WALL OF RABBAH, AND IT SHALL DEVOUR THEK PALACES THEREOF, WITH SHOUTING IN THE DAY OF BATTLE, WITH A TEMPEST IN THE  DAY OF THE WHIRLWIND:I# 15 AND THEIR KING SHALL GO INTO CAPTIVITY, HE AND HIS PRINCES TOGETHER,S SAITH THE LORD. = CHAPTER 2 J# 1 THUS SAITH THE LORD; FOR THREE TRANSGRESSIONS OF MOAB, AND FOR FOUR, IN WILL NOT TURN AWAY THE PUNISHMENT THEREOF; BECAUSE HE BURNED THE BONES OF THE KING OF EDOM INTO LIME:H# 2 BUT I WILL SEND A FIRE UPON MOAB, AND IT SHALL DEVOUR THE PALACES OFN KIRIOTH: AND MOAB SHALL DIE WITH TUMULT, WITH SHOUTING, AND WITH THE SOUND OF THE TRUMPET:AJ# 3 AND I WILL CUT OFF THE JUDGE FROM THE MIDST THEREOF, AND WILL SLAY ALL. THE PRINCES THEREOF WITH HIM, SAITH THE LORD.K# 4 THUS SAITH THE LORD; FOR THREE TRANSGRESSIONS OF JUDAH, AND FOR FOUR, ISN WILL NOT TURN AWAY THE PUNISHMENT THEREOF; BECAUSE THEY HAVE DESPISED THE LAWL OF THE LORD, AND HAVE NOT KEPT HIS COMMANDMENTS, AND THEIR LIES CAUSED THEM3 TO ERR, AFTER THE WHICH THEIR FATHERS HAVE WALKED: I# 5 BUT I WILL SEND A FIRE UPON JUDAH, AND IT SHALL DEVOUR THE PALACES OFO JERUSALEM.TL# 6 THUS SAITH THE LORD; FOR THREE TRANSGRESSIONS OF ISRAEL, AND FOR FOUR, IK WILL NOT TURN AWAY THE PUNISHMENT THEREOF; BECAUSE THEY SOLD THE RIGHTEOUSR. FOR SILVER, AND THE POOR FOR A PAIR OF SHOES;K# 7 THAT PANT AFTER THE DUST OF THE EARTH ON THE HEAD OF THE POOR, AND TURNDM ASIDE THE WAY OF THE MEEK: AND A MAN AND HIS FATHER WILL GO IN UNTO THE SAMEE MAID, TO PROFANE MY HOLY NAME:TL# 8 AND THEY LAY THEMSELVES DOWN UPON CLOTHES LAID TO PLEDGE BY EVERY ALTAR,D AND THEY DRINK THE WINE OF THE CONDEMNED IN THE HOUSE OF THEIR GOD.M# 9 YET DESTROYED I THE AMORITE BEFORE THEM, WHOSE HEIGHT WAS LIKE THE HEIGHTEM OF THE CEDARS, AND HE WAS STRONG AS THE OAKS; YET I DESTROYED HIS FRUIT FROMA# ABOVE, AND HIS ROOTS FROM BENEATH. J# 10 ALSO I BROUGHT YOU UP FROM THE LAND OF EGYPT, AND LED YOU FORTY YEARS< THROUGH THE WILDERNESS, TO POSSESS THE LAND OF THE AMORITE.I# 11 AND I RAISED UP OF YOUR SONS FOR PROPHETS, AND OF YOUR YOUNG MEN FOR I NAZARITES. IS IT NOT EVEN THUS, O YE CHILDREN OF ISRAEL? SAITH THE LORD.NI# 12 BUT YE GAVE THE N00|*?!?<%X>%+%O-%TADATADATAAZARITES WINE TO DRINK; AND COMMANDED THE PROPHETS,E SAYING, PROPHESY NOT.I# 13 BEHOLD, I AM PRESSED UNDER YOU, AS A CART IS PRESSED THAT IS FULL OFU SHEAVES.AK# 14 THEREFORE THE FLIGHT SHALL PERISH FROM THE SWIFT, AND THE STRONG SHALLOD NOT STRENGTHEN HIS FORCE, NEITHER SHALL THE MIGHTY DELIVER HIMSELF:J# 15 NEITHER SHALL HE STAND THAT HANDLETH THE BOW; AND HE THAT IS SWIFT OFG FOOT SHALL NOT DELIVER HIMSELF: NEITHER SHALL HE THAT RIDETH THE HORSEO DELIVER HIMSELF. M# 16 AND HE THAT IS COURAGEOUS AMONG THE MIGHTY SHALL FLEE AWAY NAKED IN THATS DAY, SAITH THE LORD.O = CHAPTER 3 G# 1 HEAR THIS WORD THAT THE LORD HATH SPOKEN AGAINST YOU, O CHILDREN OFSL ISRAEL, AGAINST THE WHOLE FAMILY WHICH I BROUGHT UP FROM THE LAND OF EGYPT, SAYING,L# 2 YOU ONLY HAVE I KNOWN OF ALL THE FAMILIES OF THE EARTH: THEREFORE I WILL$ PUNISH YOU FOR ALL YOUR INIQUITIES.1# 3 CAN TWO WALK TOGETHER, EXCEPT THEY BE AGREED?SK# 4 WILL A LION ROAR IN THE FOREST, WHEN HE HATH NO PREY? WILL A YOUNG LION . CRY OUT OF HIS DEN, IF HE HAVE TAKEN NOTHING?M# 5 CAN A BIRD FALL IN A SNARE UPON THE EARTH, WHERE NO GIN IS FOR HIM? SHALLAC ONE TAKE UP A SNARE FROM THE EARTH, AND HAVE TAKEN NOTHING AT ALL?TM# 6 SHALL A TRUMPET BE BLOWN IN THE CITY, AND THE PEOPLE NOT BE AFRAID? SHALLN8 THERE BE EVIL IN A CITY, AND THE LORD HATH NOT DONE IT?M# 7 SURELY THE LORD GOD WILL DO NOTHING, BUT HE REVEALETH HIS SECRET UNTO HISP SERVANTS THE PROPHETS.IJ# 8 THE LION HATH ROARED, WHO WILL NOT FEAR? THE LORD GOD HATH SPOKEN, WHO CAN BUT PROPHESY?G# 9 PUBLISH IN THE PALACES AT ASHDOD, AND IN THE PALACES IN THE LAND OFEN EGYPT, AND SAY, ASSEMBLE YOURSELVES UPON THE MOUNTAINS OF SAMARIA, AND BEHOLDG THE GREAT TUMULTS IN THE MIDST THEREOF, AND THE OPPRESSED IN THE MIDSTP THEREOF.FM# 10 FOR THEY KNOW NOT TO DO RIGHT, SAITH THE LORD, WHO STORE UP VIOLENCE ANDE ROBBERY IN THEIR PALACES.H# 11 THEREFORE THUS SAITH THE LORD GOD; AN ADVERSARY THERE SHALL BE EVENN ROUND ABOUT THE LAND; AND HE SHALL BRING DOWN THY STRENGTH FROM THEE, AND THY PALACES SHALL BE SPOILED.M# 12 THUS SAITH THE LORD; AS THE SHEPHERD TAKETH OUT OF THE MOUTH OF THE LIONMM TWO LEGS, OR A PIECE OF AN EAR; SO SHALL THE CHILDREN OF ISRAEL BE TAKEN OUT J THAT DWELL IN SAMARIA IN THE CORNER OF A BED, AND IN DAMASCUS IN A COUCH.L# 13 HEAR YE, AND TESTIFY IN THE HOUSE OF JACOB, SAITH THE LORD GOD, THE GOD OF HOSTS,M# 14 THAT IN THE DAY THAT I SHALL VISIT THE TRANSGRESSIONS OF ISRAEL UPON HIML I WILL ALSO VISIT THE ALTARS OF BETHEL: AND THE HORNS OF THE ALTAR SHALL BE! CUT OFF, AND FALL TO THE GROUND.TL# 15 AND I WILL SMITE THE WINTER HOUSE WITH THE SUMMER HOUSE; AND THE HOUSESI OF IVORY SHALL PERISH, AND THE GREAT HOUSES SHALL HAVE AN END, SAITH THE LORD. = CHAPTER 4 K# 1 HEAR THIS WORD, YE KINE OF BASHAN, THAT ARE IN THE MOUNTAIN OF SAMARIA,FK WHICH OPPRESS THE POOR, WHICH CRUSH THE NEEDY, WHICH SAY TO THEIR MASTERS,N BRING, AND LET US DRINK. J# 2 THE LORD GOD HATH SWORN BY HIS HOLINESS, THAT, LO, THE DAYS SHALL COMEI UPON YOU, THAT HE WILL TAKE YOU AWAY WITH HOOKS, AND YOUR POSTERITY WITHT FISHHOOKS.WJ# 3 AND YE SHALL GO OUT AT THE BREACHES, EVERY COW AT THAT WHICH IS BEFORE= HER; AND YE SHALL CAST THEM INTO THE PALACE, SAITH THE LORD.I# 4 COME TO BETHEL, AND TRANSGRESS; AT GILGAL MULTIPLY TRANSGRESSION; ANDTH BRING YOUR SACRIFICES EVERY MORNING, AND YOUR TITHES AFTER THREE YEARS:G# 5 AND OFFER A SACRIFICE OF THANKSGIVING WITH LEAVEN, AND PROCLAIM ANDDJ PUBLISH THE FREE OFFERINGS: FOR THIS LIKETH YOU, O YE CHILDREN OF ISRAEL, SAITH THE LORD GOD.M# 6 AND I ALSO HAVE GIVEN YOU CLEANNESS OF TEETH IN ALL YOUR CITIES, AND WANTTI OF BREAD IN ALL YOUR PLACES: YET HAVE YE NOT RETURNED UNTO ME, SAITH THEM LORD.K# 7 AND ALSO I HAVE WITHHOLDEN THE RAIN FROM YOU, WHEN THERE WERE YET THREETL MONTHS TO THE HARVEST: AND I CAUSED IT TO RAIN UPON ONE CITY, AND CAUSED ITH NOT TO RAIN UPON ANOTHER CITY: ONE PIECE WAS RAINED UPON, AND THE PIECE" WHEREUPON IT RAINED NOT WITHERED.K# 8 SO TWO OR THREE CITIES WANDERED UNTO ONE CITY, TO DRINK WATER; BUT THEY F W00|2?=D%5%T6%! !ERE NOT SATISFIED: YET HAVE YE NOT RETURNED UNTO ME, SAITH THE LORD.K# 9 I HAVE SMITTEN YOU WITH BLASTING AND MILDEW: WHEN YOUR GARDENS AND YOUR L VINEYARDS AND YOUR FIG TREES AND YOUR OLIVE TREES INCREASED, THE PALMERWORMA DEVOURED THEM: YET HAVE YE NOT RETURNED UNTO ME, SAITH THE LORD. I# 10 I HAVE SENT AMONG YOU THE PESTILENCE AFTER THE MANNER OF EGYPT: YOUR N YOUNG MEN HAVE I SLAIN WITH THE SWORD, AND HAVE TAKEN AWAY YOUR HORSES; AND IM HAVE MADE THE STINK OF YOUR CAMPS TO COME UP UNTO YOUR NOSTRILS: YET HAVE YEE& NOT RETURNED UNTO ME, SAITH THE LORD.L# 11 I HAVE OVERTHROWN SOME OF YOU, AS GOD OVERTHREW SODOM AND GOMORRAH, ANDL YE WERE AS A FIREBRAND PLUCKED OUT OF THE BURNING: YET HAVE YE NOT RETURNED UNTO ME, SAITH THE LORD.MM# 12 THEREFORE THUS WILL I DO UNTO THEE, O ISRAEL: AND BECAUSE I WILL DO THISU. UNTO THEE, PREPARE TO MEET THY GOD, O ISRAEL.G# 13 FOR, LO, HE THAT FORMETH THE MOUNTAINS, AND CREATETH THE WIND, AND;N DECLARETH UNTO MAN WHAT IS HIS THOUGHT, THAT MAKETH THE MORNING DARKNESS, ANDK TREADETH UPON THE HIGH PLACES OF THE EARTH, THE LORD, THE GOD OF HOSTS, ISF HIS NAME. = CHAPTER 5 N# 1 HEAR YE THIS WORD WHICH I TAKE UP AGAINST YOU, EVEN A LAMENTATION, O HOUSE OF ISRAEL.UK# 2 THE VIRGIN OF ISRAEL IS FALLEN; SHE SHALL NO MORE RISE: SHE IS FORSAKENI. UPON HER LAND; THERE IS NONE TO RAISE HER UP.K# 3 FOR THUS SAITH THE LORD GOD; THE CITY THAT WENT OUT BY A THOUSAND SHALLNN LEAVE AN HUNDRED, AND THAT WHICH WENT FORTH BY AN HUNDRED SHALL LEAVE TEN, TO THE HOUSE OF ISRAEL.SH# 4 FOR THUS SAITH THE LORD UNTO THE HOUSE OF ISRAEL, SEEK YE ME, AND YE SHALL LIVE:J# 5 BUT SEEK NOT BETHEL, NOR ENTER INTO GILGAL, AND PASS NOT TO BEERSHEBA:L FOR GILGAL SHALL SURELY GO INTO CAPTIVITY, AND BETHEL SHALL COME TO NOUGHT.H# 6 SEEK THE LORD, AND YE SHALL LIVE; LEST HE BREAK OUT LIKE FIRE IN THEJ HOUSE OF JOSEPH, AND DEVOUR IT, AND THERE BE NONE TO QUENCH IT IN BETHEL.H# 7 YE WHO TURN JUDGMENT TO WORMWOOD, AND LEAVE OFF RIGHTEOUSNESS IN THE EARTH,LM# 8 SEEK HIM THAT MAKETH THE SEVEN STARS AND ORION, AND TURNETH THE SHADOW OFEM DEATH INTO THE MORNING, AND MAKETH THE DAY DARK WITH NIGHT: THAT CALLETH FORRL THE WATERS OF THE SEA, AND POURETH THEM OUT UPON THE FACE OF THE EARTH: THE LORD IS HIS NAME:J# 9 THAT STRENGTHENETH THE SPOILED AGAINST THE STRONG, SO THAT THE SPOILED! SHALL COME AGAINST THE FORTRESS.HE# 10 THEY HATE HIM THAT REBUKETH IN THE GATE, AND THEY ABHOR HIM THATT SPEAKETH UPRIGHTLY.L# 11 FORASMUCH THEREFORE AS YOUR TREADING IS UPON THE POOR, AND YE TAKE FROMK HIM BURDENS OF WHEAT: YE HAVE BUILT HOUSES OF HEWN STONE, BUT YE SHALL NOTAJ DWELL IN THEM; YE HAVE PLANTED PLEASANT VINEYARDS, BUT YE SHALL NOT DRINK WINE OF THEM.G# 12 FOR I KNOW YOUR MANIFOLD TRANSGRESSIONS AND YOUR MIGHTY SINS: THEYNN AFFLICT THE JUST, THEY TAKE A BRIBE, AND THEY TURN ASIDE THE POOR IN THE GATE FROM THEIR RIGHT.M# 13 THEREFORE THE PRUDENT SHALL KEEP SILENCE IN THAT TIME; FOR IT IS AN EVIL  TIME.K# 14 SEEK GOOD, AND NOT EVIL, THAT YE MAY LIVE: AND SO THE LORD, THE GOD OFR- HOSTS, SHALL BE WITH YOU, AS YE HAVE SPOKEN. M# 15 HATE THE EVIL, AND LOVE THE GOOD, AND ESTABLISH JUDGMENT IN THE GATE: ITYG MAY BE THAT THE LORD GOD OF HOSTS WILL BE GRACIOUS UNTO THE REMNANT OFL JOSEPH.H# 16 THEREFORE THE LORD, THE GOD OF HOSTS, THE LORD, SAITH THUS; WAILINGM SHALL BE IN ALL STREETS; AND THEY SHALL SAY IN ALL THE HIGHWAYS, ALAS! ALAS!EK AND THEY SHALL CALL THE HUSBANDMAN TO MOURNING, AND SUCH AS ARE SKILFUL OFE LAMENTATION TO WAILING.I# 17 AND IN ALL VINEYARDS SHALL BE WAILING: FOR I WILL PASS THROUGH THEE,E SAITH THE LORD.M# 18 WOE UNTO YOU THAT DESIRE THE DAY OF THE LORD! TO WHAT END IS IT FOR YOU?M0 THE DAY OF THE LORD IS DARKNESS, AND NOT LIGHT.K# 19 AS IF A MAN DID FLEE FROM A LION, AND A BEAR MET HIM; OR WENT INTO THEE? HOUSE, AND LEANED HIS HAND ON THE WALL, AND A SERPENT BIT HIM.AH# 20 SHALL NOT THE DAY OF THE LORD BE DARKNESS, AND NOT LIGHT? EVEN VERY DARK, AND NO BRIGHTNESS IN IT?SK# 21 I HATE, I DESPISE YOUR FEAST DAYS, AND I WILL NOT SMELL IN YOUR SOLEMNI A00|:?!?<%X>%+%O-%TADATADATASSEMBLIES.K# 22 THOUGH YE OFFER ME BURNT OFFERINGS AND YOUR MEAT OFFERINGS, I WILL NOT K ACCEPT THEM: NEITHER WILL I REGARD THE PEACE OFFERINGS OF YOUR FAT BEASTS.NK# 23 TAKE THOU AWAY FROM ME THE NOISE OF THY SONGS; FOR I WILL NOT HEAR THEE MELODY OF THY VIOLS.NG# 24 BUT LET JUDGMENT RUN DOWN AS WATERS, AND RIGHTEOUSNESS AS A MIGHTYE STREAM.M# 25 HAVE YE OFFERED UNTO ME SACRIFICES AND OFFERINGS IN THE WILDERNESS FORTY YEARS, O HOUSE OF ISRAEL?K# 26 BUT YE HAVE BORNE THE TABERNACLE OF YOUR MOLOCH AND CHIUN YOUR IMAGES,E3 THE STAR OF YOUR GOD, WHICH YE MADE TO YOURSELVES.WK# 27 THEREFORE WILL I CAUSE YOU TO GO INTO CAPTIVITY BEYOND DAMASCUS, SAITH * THE LORD, WHOSE NAME IS THE GOD OF HOSTS. = CHAPTER 6 F# 1 WOE TO THEM THAT ARE AT EASE IN ZION, AND TRUST IN THE MOUNTAIN OFK SAMARIA, WHICH ARE NAMED CHIEF OF THE NATIONS, TO WHOM THE HOUSE OF ISRAELE CAME!L# 2 PASS YE UNTO CALNEH, AND SEE; AND FROM THENCE GO YE TO HAMATH THE GREAT:M THEN GO DOWN TO GATH OF THE PHILISTINES: BE THEY BETTER THAN THESE KINGDOMS?M* OR THEIR BORDER GREATER THAN YOUR BORDER?M# 3 YE THAT PUT FAR AWAY THE EVIL DAY, AND CAUSE THE SEAT OF VIOLENCE TO COMEA NEAR;K# 4 THAT LIE UPON BEDS OF IVORY, AND STRETCH THEMSELVES UPON THEIR COUCHES,TK AND EAT THE LAMBS OUT OF THE FLOCK, AND THE CALVES OUT OF THE MIDST OF THER STALL;HM# 5 THAT CHANT TO THE SOUND OF THE VIOL, AND INVENT TO THEMSELVES INSTRUMENTSE OF MUSICK, LIKE DAVID;CM# 6 THAT DRINK WINE IN BOWLS, AND ANOINT THEMSELVES WITH THE CHIEF OINTMENTS: 7 BUT THEY ARE NOT GRIEVED FOR THE AFFLICTION OF JOSEPH.AK# 7 THEREFORE NOW SHALL THEY GO CAPTIVE WITH THE FIRST THAT GO CAPTIVE, ANDV@ THE BANQUET OF THEM THAT STRETCHED THEMSELVES SHALL BE REMOVED.J# 8 THE LORD GOD HATH SWORN BY HIMSELF, SAITH THE LORD THE GOD OF HOSTS, IN ABHOR THE EXCELLENCY OF JACOB, AND HATE HIS PALACES: THEREFORE WILL I DELIVER& UP THE CITY WITH ALL THAT IS THEREIN.I# 9 AND IT SHALL COME TO PASS, IF THERE REMAIN TEN MEN IN ONE HOUSE, THATT THEY SHALL DIE.J# 10 AND A MANS UNCLE SHALL TAKE HIM UP, AND HE THAT BURNETH HIM, TO BRINGL OUT THE BONES OUT OF THE HOUSE, AND SHALL SAY UNTO HIM THAT IS BY THE SIDESN OF THE HOUSE, IS THERE YET ANY WITH THEE? AND HE SHALL SAY, NO. THEN SHALL HEK SAY, HOLD THY TONGUE: FOR WE MAY NOT MAKE MENTION OF THE NAME OF THE LORD.EM# 11 FOR, BEHOLD, THE LORD COMMANDETH, AND HE WILL SMITE THE GREAT HOUSE WITHY5 BREACHES, AND THE LITTLE HOUSE WITH CLEFTSOPSJ# 12 SHALL HORSES RUN UPON THE ROCK? WILL ONE PLOW THERE WITH OXEN? FOR YEM HAVE TURNED JUDGMENT INTO GALL, AND THE FRUIT OF RIGHTEOUSNESS INTO HEMLOCK:SK# 13 YE WHICH REJOICE IN A THING OF NOUGHT, WHICH SAY, HAVE WE NOT TAKEN TO, US HORNS BY OUR OWN STRENGTH?J# 14 BUT, BEHOLD, I WILL RAISE UP AGAINST YOU A NATION, O HOUSE OF ISRAEL,N SAITH THE LORD THE GOD OF HOSTS; AND THEY SHALL AFFLICT YOU FROM THE ENTERING/ IN OF HEMATH UNTO THE RIVER OF THE WILDERNESS.D = CHAPTER 7 N# 1 THUS HATH THE LORD GOD SHEWED UNTO ME; AND, BEHOLD, HE FORMED GRASSHOPPERSN IN THE BEGINNING OF THE SHOOTING UP OF THE LATTER GROWTH; AND, LO, IT WAS THE' LATTER GROWTH AFTER THE KINGS MOWINGS.OK# 2 AND IT CAME TO PASS, THAT WHEN THEY HAD MADE AN END OF EATING THE GRASSOM OF THE LAND, THEN I SAID, O LORD GOD, FORGIVE, I BESEECH THEE: BY WHOM SHALLF JACOB ARISE? FOR HE IS SMALL.@# 3 THE LORD REPENTED FOR THIS: IT SHALL NOT BE, SAITH THE LORD.K# 4 THUS HATH THE LORD GOD SHEWED UNTO ME: AND, BEHOLD, THE LORD GOD CALLEDDK TO CONTEND BY FIRE, AND IT DEVOURED THE GREAT DEEP, AND DID EAT UP A PART.FG# 5 THEN SAID I, O LORD GOD, CEASE, I BESEECH THEE: BY WHOM SHALL JACOBH ARISE? FOR HE IS SMALL.K# 6 THE LORD REPENTED FOR THIS: THIS ALSO SHALL NOT BE, SAITH THE LORD GOD.OH# 7 THUS HE SHEWED ME: AND, BEHOLD, THE LORD STOOD UPON A WALL MADE BY A) PLUMBLINE, WITH A PLUMBLINE IN HIS HAND. C# 8 AND THE LORD SAID UNTO ME, AMOS, WHAT SEEST THOU? AND I SAID, ASN PLUMBLINE. THEN SAID THE LORD, BEHOLD, I WILL SET A PLUMBLINE IN THE MIDST OF: MY PEOPLE ISRAEL: I WILL NOT AGAIN PASS BY THEM ANY MORE:J# 9 AND THE HIGH PLA00|B?=D%5%T6%! !CES OF ISAAC SHALL BE DESOLATE, AND THE SANCTUARIES OFJ ISRAEL SHALL BE LAID WASTE; AND I WILL RISE AGAINST THE HOUSE OF JEROBOAM WITH THE SWORD.G# 10 THEN AMAZIAH THE PRIEST OF BETHEL SENT TO JEROBOAM KING OF ISRAEL, N SAYING, AMOS HATH CONSPIRED AGAINST THEE IN THE MIDST OF THE HOUSE OF ISRAEL:, THE LAND IS NOT ABLE TO BEAR ALL HIS WORDS.K# 11 FOR THUS AMOS SAITH, JEROBOAM SHALL DIE BY THE SWORD, AND ISRAEL SHALLS2 SURELY BE LED AWAY CAPTIVE OUT OF THEIR OWN LAND.J# 12 ALSO AMAZIAH SAID UNTO AMOS, O THOU SEER, GO, FLEE THEE AWAY INTO THE8 LAND OF JUDAH, AND THERE EAT BREAD, AND PROPHESY THERE:K# 13 BUT PROPHESY NOT AGAIN ANY MORE AT BETHEL: FOR IT IS THE KINGS CHAPEL,T AND IT IS THE KINGS COURT.IM# 14 THEN ANSWERED AMOS, AND SAID TO AMAZIAH, I WAS NO PROPHET, NEITHER WAS IOH A PROPHETS SON; BUT I WAS AN HERDMAN, AND A GATHERER OF SYCOMORE FRUIT:M# 15 AND THE LORD TOOK ME AS I FOLLOWED THE FLOCK, AND THE LORD SAID UNTO ME,D$ GO, PROPHESY UNTO MY PEOPLE ISRAEL.L# 16 NOW THEREFORE HEAR THOU THE WORD OF THE LORD: THOU SAYEST, PROPHESY NOTB AGAINST ISRAEL, AND DROP NOT THY WORD AGAINST THE HOUSE OF ISAAC.L# 17 THEREFORE THUS SAITH THE LORD; THY WIFE SHALL BE AN HARLOT IN THE CITY,N AND THY SONS AND THY DAUGHTERS SHALL FALL BY THE SWORD, AND THY LAND SHALL BEI DIVIDED BY LINE; AND THOU SHALT DIE IN A POLLUTED LAND: AND ISRAEL SHALLS, SURELY GO INTO CAPTIVITY FORTH OF HIS LAND. = CHAPTER 8 H# 1 THUS HATH THE LORD GOD SHEWED UNTO ME: AND BEHOLD A BASKET OF SUMMER FRUIT.TM# 2 AND HE SAID, AMOS, WHAT SEEST THOU? AND I SAID, A BASKET OF SUMMER FRUIT.RM THEN SAID THE LORD UNTO ME, THE END IS COME UPON MY PEOPLE OF ISRAEL; I WILLT! NOT AGAIN PASS BY THEM ANY MORE.RM# 3 AND THE SONGS OF THE TEMPLE SHALL BE HOWLINGS IN THAT DAY, SAITH THE LORDTJ GOD: THERE SHALL BE MANY DEAD BODIES IN EVERY PLACE; THEY SHALL CAST THEM FORTH WITH SILENCE.K# 4 HEAR THIS, O YE THAT SWALLOW UP THE NEEDY, EVEN TO MAKE THE POOR OF THED LAND TO FAIL,J# 5 SAYING, WHEN WILL THE NEW MOON BE GONE, THAT WE MAY SELL CORN? AND THEM SABBATH, THAT WE MAY SET FORTH WHEAT, MAKING THE EPHAH SMALL, AND THE SHEKELT. GREAT, AND FALSIFYING THE BALANCES BY DECEIT?K# 6 THAT WE MAY BUY THE POOR FOR SILVER, AND THE NEEDY FOR A PAIR OF SHOES;E' YEA, AND SELL THE REFUSE OF THE WHEAT?GG# 7 THE LORD HATH SWORN BY THE EXCELLENCY OF JACOB, SURELY I WILL NEVER FORGET ANY OF THEIR WORKS.RJ# 8 SHALL NOT THE LAND TREMBLE FOR THIS, AND EVERY ONE MOURN THAT DWELLETHN THEREIN? AND IT SHALL RISE UP WHOLLY AS A FLOOD; AND IT SHALL BE CAST OUT AND# DROWNED, AS BY THE FLOOD OF EGYPT. J# 9 AND IT SHALL COME TO PASS IN THAT DAY, SAITH THE LORD GOD, THAT I WILLK CAUSE THE SUN TO GO DOWN AT NOON, AND I WILL DARKEN THE EARTH IN THE CLEARR DAY: G# 10 AND I WILL TURN YOUR FEASTS INTO MOURNING, AND ALL YOUR SONGS INTOWM LAMENTATION; AND I WILL BRING UP SACKCLOTH UPON ALL LOINS, AND BALDNESS UPONSK EVERY HEAD; AND I WILL MAKE IT AS THE MOURNING OF AN ONLY SON, AND THE ENDH THEREOF AS A BITTER DAY.SL# 11 BEHOLD, THE DAYS COME, SAITH THE LORD GOD, THAT I WILL SEND A FAMINE INL THE LAND, NOT A FAMINE OF BREAD, NOR A THIRST FOR WATER, BUT OF HEARING THE WORDS OF THE LORD:EJ# 12 AND THEY SHALL WANDER FROM SEA TO SEA, AND FROM THE NORTH EVEN TO THEL EAST, THEY SHALL RUN TO AND FRO TO SEEK THE WORD OF THE LORD, AND SHALL NOT FIND IT.NG# 13 IN THAT DAY SHALL THE FAIR VIRGINS AND YOUNG MEN FAINT FOR THIRST.AL# 14 THEY THAT SWEAR BY THE SIN OF SAMARIA, AND SAY, THY GOD, O DAN, LIVETH;M AND, THE MANNER OF BEERSHEBA LIVETH; EVEN THEY SHALL FALL, AND NEVER RISE UPE AGAIN.N = CHAPTER 9 L# 1 I SAW THE LORD STANDING UPON THE ALTAR: AND HE SAID, SMITE THE LINTEL OFK THE DOOR, THAT THE POSTS MAY SHAKE: AND CUT THEM IN THE HEAD, ALL OF THEM;EN AND I WILL SLAY THE LAST OF THEM WITH THE SWORD: HE THAT FLEETH OF THEM SHALLD NOT FLEE AWAY, AND HE THAT ESCAPETH OF THEM SHALL NOT BE DELIVERED.L# 2 THOUGH THEY DIG INTO HELL, THENCE SHALL MINE HAND TAKE THEM; THOUGH THEY3 CLIMB UP TO HEAVEN, THENCE WILL I BRING THEM DOWN:BK# 3 AND THOUGH THEY HIDE THE00|J?}O?<%X>%+%O-%TADATADATAMSELVES IN THE TOP OF CARMEL, I WILL SEARCH AND L TAKE THEM OUT THENCE; AND THOUGH THEY BE HID FROM MY SIGHT IN THE BOTTOM OFD THE SEA, THENCE WILL I COMMAND THE SERPENT, AND HE SHALL BITE THEM:I# 4 AND THOUGH THEY GO INTO CAPTIVITY BEFORE THEIR ENEMIES, THENCE WILL IHN COMMAND THE SWORD, AND IT SHALL SLAY THEM: AND I WILL SET MINE EYES UPON THEM FOR EVIL, AND NOT FOR GOOD.H# 5 AND THE LORD GOD OF HOSTS IS HE THAT TOUCHETH THE LAND, AND IT SHALLJ MELT, AND ALL THAT DWELL THEREIN SHALL MOURN: AND IT SHALL RISE UP WHOLLY> LIKE A FLOOD; AND SHALL BE DROWNED, AS BY THE FLOOD OF EGYPT.J# 6 IT IS HE THAT BUILDETH HIS STORIES IN THE HEAVEN, AND HATH FOUNDED HISK TROOP IN THE EARTH; HE THAT CALLETH FOR THE WATERS OF THE SEA, AND POURETHE; THEM OUT UPON THE FACE OF THE EARTH: THE LORD IS HIS NAME.TK# 7 ARE YE NOT AS CHILDREN OF THE ETHIOPIANS UNTO ME, O CHILDREN OF ISRAEL?GK SAITH THE LORD. HAVE NOT I BROUGHT UP ISRAEL OUT OF THE LAND OF EGYPT? ANDL8 THE PHILISTINES FROM CAPHTOR, AND THE SYRIANS FROM KIR?L# 8 BEHOLD, THE EYES OF THE LORD GOD ARE UPON THE SINFUL KINGDOM, AND I WILLJ DESTROY IT FROM OFF THE FACE OF THE EARTH; SAVING THAT I WILL NOT UTTERLY, DESTROY THE HOUSE OF JACOB, SAITH THE LORD.J# 9 FOR, LO, I WILL COMMAND, AND I WILL SIFT THE HOUSE OF ISRAEL AMONG ALLJ NATIONS, LIKE AS CORN IS SIFTED IN A SIEVE, YET SHALL NOT THE LEAST GRAIN FALL UPON THE EARTH.GM# 10 ALL THE SINNERS OF MY PEOPLE SHALL DIE BY THE SWORD, WHICH SAY, THE EVIL# SHALL NOT OVERTAKE NOR PREVENT US.EL# 11 IN THAT DAY WILL I RAISE UP THE TABERNACLE OF DAVID THAT IS FALLEN, ANDI CLOSE UP THE BREACHES THEREOF; AND I WILL RAISE UP HIS RUINS, AND I WILL BUILD IT AS IN THE DAYS OF OLD:M# 12 THAT THEY MAY POSSESS THE REMNANT OF EDOM, AND OF ALL THE HEATHEN, WHICHE7 ARE CALLED BY MY NAME, SAITH THE LORD THAT DOETH THIS.TK# 13 BEHOLD, THE DAYS COME, SAITH THE LORD, THAT THE PLOWMAN SHALL OVERTAKELN THE REAPER, AND THE TREADER OF GRAPES HIM THAT SOWETH SEED; AND THE MOUNTAINS5 SHALL DROP SWEET WINE, AND ALL THE HILLS SHALL MELT.AJ# 14 AND I WILL BRING AGAIN THE CAPTIVITY OF MY PEOPLE OF ISRAEL, AND THEYE SHALL BUILD THE WASTE CITIES, AND INHABIT THEM; AND THEY SHALL PLANT M VINEYARDS, AND DRINK THE WINE THEREOF; THEY SHALL ALSO MAKE GARDENS, AND EATA THE FRUIT OF THEM.LL# 15 AND I WILL PLANT THEM UPON THEIR LAND, AND THEY SHALL NO MORE BE PULLEDF UP OUT OF THEIR LAND WHICH I HAVE GIVEN THEM, SAITH THE LORD THY GOD.READER OF GRAPES HIM THAT SOWETH SEED; AND THE MOUNTAINS5 SHALL DROP SWEET WINE, AND ALL THE HILLS * BOOK31 OBADIAH = CHAPTER 1 K# 1 THE VISION OF OBADIAH. THUS SAITH THE LORD GOD CONCERNING EDOM; WE HAVESK HEARD A RUMOUR FROM THE LORD, AND AN AMBASSADOR IS SENT AMONG THE HEATHEN, 4 ARISE YE, AND LET US RISE UP AGAINST HER IN BATTLE.F# 2 BEHOLD, I HAVE MADE THEE SMALL AMONG THE HEATHEN: THOU ART GREATLY DESPISED.J# 3 THE PRIDE OF THINE HEART HATH DECEIVED THEE, THOU THAT DWELLEST IN THEK CLEFTS OF THE ROCK, WHOSE HABITATION IS HIGH; THAT SAITH IN HIS HEART, WHOO# SHALL BRING ME DOWN TO THE GROUND?OH# 4 THOUGH THOU EXALT THYSELF AS THE EAGLE, AND THOUGH THOU SET THY NEST@ AMONG THE STARS, THENCE WILL I BRING THEE DOWN, SAITH THE LORD.I# 5 IF THIEVES CAME TO THEE, IF ROBBERS BY NIGHT, (HOW ART THOU CUT OFF!)GL WOULD THEY NOT HAVE STOLEN TILL THEY HAD ENOUGH? IF THE GRAPEGATHERERS CAME+ TO THEE, WOULD THEY NOT LEAVE SOME GRAPES?TM# 6 HOW ARE THE THINGS OF ESAU SEARCHED OUT! HOW ARE HIS HIDDEN THINGS SOUGHTW UP!L# 7 ALL THE MEN OF THY CONFEDERACY HAVE BROUGHT THEE EVEN TO THE BORDER: THEK MEN THAT WERE AT PEACE WITH THEE HAVE DECEIVED THEE, AND PREVAILED AGAINST J THEE; THAT THEY EAT THY BREAD HAVE LAID A WOUND UNDER THEE: THERE IS NONE UNDERSTANDING IN HIM.M# 8 SHALL I NOT IN THAT DAY, SAITH THE LORD, EVEN DESTROY THE WISE MEN OUT OFL2 EDOM, AND UNDERSTANDING OUT OF THE MOUNT OF ESAU?M# 9 AND THY MIGHTY MEN, O TEMAN, SHALL BE DISMAYED, TO THE END THAT EVERY ONE 2 OF THE MOUNT OF ESAU MAY BE CUT OFF BY SLAUGHTER.K# 10 FOR THY VIOLENCE AGAINST THY BROTHER JACOB SHAME SHALL COVER THEE00}R?~W?D%5%T6%! !, ANDT THOU SHALT BE CUT OFF FOR EVER.I# 11 IN THE DAY THAT THOU STOODEST ON THE OTHER SIDE, IN THE DAY THAT THEAK STRANGERS CARRIED AWAY CAPTIVE HIS FORCES, AND FOREIGNERS ENTERED INTO HIS D GATES, AND CAST LOTS UPON JERUSALEM, EVEN THOU WAST AS ONE OF THEM.L# 12 BUT THOU SHOULDEST NOT HAVE LOOKED ON THE DAY OF THY BROTHER IN THE DAYI THAT HE BECAME A STRANGER; NEITHER SHOULDEST THOU HAVE REJOICED OVER THEEJ CHILDREN OF JUDAH IN THE DAY OF THEIR DESTRUCTION; NEITHER SHOULDEST THOU, HAVE SPOKEN PROUDLY IN THE DAY OF DISTRESS.M# 13 THOU SHOULDEST NOT HAVE ENTERED INTO THE GATE OF MY PEOPLE IN THE DAY OFTK THEIR CALAMITY; YEA, THOU SHOULDEST NOT HAVE LOOKED ON THEIR AFFLICTION INIM THE DAY OF THEIR CALAMITY, NOR HAVE LAID HANDS ON THEIR SUBSTANCE IN THE DAY OF THEIR CALAMITY;SK# 14 NEITHER SHOULDEST THOU HAVE STOOD IN THE CROSSWAY, TO CUT OFF THOSE OFAK HIS THAT DID ESCAPE; NEITHER SHOULDEST THOU HAVE DELIVERED UP THOSE OF HISH( THAT DID REMAIN IN THE DAY OF DISTRESS.M# 15 FOR THE DAY OF THE LORD IS NEAR UPON ALL THE HEATHEN: AS THOU HAST DONE, I IT SHALL BE DONE UNTO THEE: THY REWARD SHALL RETURN UPON THINE OWN HEAD.AI# 16 FOR AS YE HAVE DRUNK UPON MY HOLY MOUNTAIN, SO SHALL ALL THE HEATHEN K DRINK CONTINUALLY, YEA, THEY SHALL DRINK, AND THEY SHALL SWALLOW DOWN, ANDI+ THEY SHALL BE AS THOUGH THEY HAD NOT BEEN.IK# 17 BUT UPON MOUNT ZION SHALL BE DELIVERANCE, AND THERE SHALL BE HOLINESS; 8 AND THE HOUSE OF JACOB SHALL POSSESS THEIR POSSESSIONS.M# 18 AND THE HOUSE OF JACOB SHALL BE A FIRE, AND THE HOUSE OF JOSEPH A FLAME,:M AND THE HOUSE OF ESAU FOR STUBBLE, AND THEY SHALL KINDLE IN THEM, AND DEVOUR N THEM; AND THERE SHALL NOT BE ANY REMAINING OF THE HOUSE OF ESAU; FOR THE LORD HATH SPOKEN IT.K# 19 AND THEY OF THE SOUTH SHALL POSSESS THE MOUNT OF ESAU; AND THEY OF THEEM PLAIN THE PHILISTINES: AND THEY SHALL POSSESS THE FIELDS OF EPHRAIM, AND THEI6 FIELDS OF SAMARIA: AND BENJAMIN SHALL POSSESS GILEAD.K# 20 AND THE CAPTIVITY OF THIS HOST OF THE CHILDREN OF ISRAEL SHALL POSSESSEM THAT OF THE CANAANITES, EVEN UNTO ZAREPHATH; AND THE CAPTIVITY OF JERUSALEM, = WHICH IS IN SEPHARAD, SHALL POSSESS THE CITIES OF THE SOUTH.AM# 21 AND SAVIOURS SHALL COME UP ON MOUNT ZION TO JUDGE THE MOUNT OF ESAU; AND THE KINGDOM SHALL BE THE LORDS.SESS THE MOUNT OF ESAU; AND THEY OF THEEM PLAIN THE PHILISTINES: AND THEY SHALL POSSESS THE FIELDS OF EPHRAIM, AND THEI6 FIELDS OF SAMARIA: AND BENJAMIN SHALL POSSESS GILEAD.K# 20 AND THE CAPTIVITY OF THIS HOST OF THE CHILDREN OF ISRAEL SHALL POSSESSEM THAT * BOOK32 JONAH = CHAPTER 1 H# 1 NOW THE WORD OF THE LORD CAME UNTO JONAH THE SON OF AMITTAI, SAYING,H# 2 ARISE, GO TO NINEVEH, THAT GREAT CITY, AND CRY AGAINST IT; FOR THEIR! WICKEDNESS IS COME UP BEFORE ME.NJ# 3 BUT JONAH ROSE UP TO FLEE UNTO TARSHISH FROM THE PRESENCE OF THE LORD,N AND WENT DOWN TO JOPPA; AND HE FOUND A SHIP GOING TO TARSHISH: SO HE PAID THEL FARE THEREOF, AND WENT DOWN INTO IT, TO GO WITH THEM UNTO TARSHISH FROM THE PRESENCE OF THE LORD.K# 4 BUT THE LORD SENT OUT A GREAT WIND INTO THE SEA, AND THERE WAS A MIGHTYO< TEMPEST IN THE SEA, SO THAT THE SHIP WAS LIKE TO BE BROKEN.M# 5 THEN THE MARINERS WERE AFRAID, AND CRIED EVERY MAN UNTO HIS GOD, AND CASTK FORTH THE WARES THAT WERE IN THE SHIP INTO THE SEA, TO LIGHTEN IT OF THEM.SM BUT JONAH WAS GONE DOWN INTO THE SIDES OF THE SHIP; AND HE LAY, AND WAS FASTG ASLEEP.J# 6 SO THE SHIPMASTER CAME TO HIM, AND SAID UNTO HIM, WHAT MEANEST THOU, ON SLEEPER? ARISE, CALL UPON THY GOD, IF SO BE THAT GOD WILL THINK UPON US, THAT WE PERISH NOT. K# 7 AND THEY SAID EVERY ONE TO HIS FELLOW, COME, AND LET US CAST LOTS, THATTM WE MAY KNOW FOR WHOSE CAUSE THIS EVIL IS UPON US. SO THEY CAST LOTS, AND THEO LOT FELL UPON JONAH.EM# 8 THEN SAID THEY UNTO HIM, TELL US, WE PRAY THEE, FOR WHOSE CAUSE THIS EVILWJ IS UPON US; WHAT IS THINE OCCUPATION? AND WHENCE COMEST THOU? WHAT IS THY& COUNTRY? AND OF WHAT PEOPLE ART THOU?J# 9 AND HE SAID UNTO THEM, I AM AN HEBREW; AND I FEAR THE LORD, THE GOD OF2 HEAVEN, WHICH HATH MADE THE SEA AND THE DRY L00~Z?O?<%X>%+%O-%TADATADATAAND.K# 10 THEN WERE THE MEN EXCEEDINGLY AFRAID, AND SAID UNTO HIM. WHY HAST THOU,H DONE THIS? FOR THE MEN KNEW THAT HE FLED FROM THE PRESENCE OF THE LORD, BECAUSE HE HAD TOLD THEM.M# 11 THEN SAID THEY UNTO HIM, WHAT SHALL WE DO UNTO THEE, THAT THE SEA MAY BEH8 CALM UNTO US? FOR THE SEA WROUGHT, AND WAS TEMPESTUOUS.J# 12 AND HE SAID UNTO THEM, TAKE ME UP, AND CAST ME FORTH INTO THE SEA; SOG SHALL THE SEA BE CALM UNTO YOU: FOR I KNOW THAT FOR MY SAKE THIS GREATE TEMPEST IS UPON YOU.SL# 13 NEVERTHELESS THE MEN ROWED HARD TO BRING IT TO THE LAND; BUT THEY COULD< NOT: FOR THE SEA WROUGHT, AND WAS TEMPESTUOUS AGAINST THEM.K# 14 WHEREFORE THEY CRIED UNTO THE LORD, AND SAID, WE BESEECH THEE, O LORD,TK WE BESEECH THEE, LET US NOT PERISH FOR THIS MANS LIFE, AND LAY NOT UPON US?@ INNOCENT BLOOD: FOR THOU, O LORD, HAST DONE AS IT PLEASED THEE.H# 15 SO THEY LOOK UP JONAH, AND CAST HIM FORTH INTO THE SEA: AND THE SEA CEASED FROM HER RAGING.K# 16 THEN THE MEN FEARED THE LORD EXCEEDINGLY, AND OFFERED A SACRIFICE UNTO  THE LORD, AND MADE VOWS.HJ# 17 NOW THE LORD HAD PREPARED A GREAT FISH TO SWALLOW UP JONAH. AND JONAH: WAS IN THE BELLY OF THE FISH THREE DAYS AND THREE NIGHTS. = CHAPTER 2 C# 1 THEN JONAH PRAYED UNTO THE LORD HIS GOD OUT OF THE FISHS BELLY, H# 2 AND SAID, I CRIED BY REASON OF MINE AFFLICTION UNTO THE LORD, AND HEH HEARD ME; OUT OF THE BELLY OF HELL CRIED I, AND THOU HEARDEST MY VOICE.K# 3 FOR THOU HADST CAST ME INTO THE DEEP, IN THE MIDST OF THE SEAS; AND THEEI FLOODS COMPASSED ME ABOUT: ALL THY BILLOWS AND THY WAVES PASSED OVER ME.WM# 4 THEN I SAID, I AM CAST OUT OF THY SIGHT; YET I WILL LOOK AGAIN TOWARD THY HOLY TEMPLE.SH# 5 THE WATERS COMPASSED ME ABOUT, EVEN TO THE SOUL: THE DEPTH CLOSED ME3 ROUND ABOUT, THE WEEDS WERE WRAPPED ABOUT MY HEAD.DL# 6 I WENT DOWN TO THE BOTTOMS OF THE MOUNTAINS; THE EARTH WITH HER BARS WASL ABOUT ME FOR EVER: YET HAST THOU BROUGHT UP MY LIFE FROM CORRUPTION, O LORD MY GOD.L# 7 WHEN MY SOUL FAINTED WITHIN ME I REMEMBERED THE LORD: AND MY PRAYER CAME& IN UNTO THEE, INTO THINE HOLY TEMPLE.=# 8 THEY THAT OBSERVE LYING VANITIES FORSAKE THEIR OWN MERCY.OM# 9 BUT I WILL SACRIFICE UNTO THEE WITH THE VOICE OF THANKSGIVING; I WILL PAYO2 THAT THAT I HAVE VOWED. SALVATION IS OF THE LORD.L# 10 AND THE LORD SPAKE UNTO THE FISH, AND IT VOMITED OUT JONAH UPON THE DRY LAND. = CHAPTER 3 E# 1 AND THE WORD OF THE LORD CAME UNTO JONAH THE SECOND TIME, SAYING,OM# 2 ARISE, GO UNTO NINEVEH, THAT GREAT CITY, AND PREACH UNTO IT THE PREACHING  THAT I BID THEE. M# 3 SO JONAH AROSE, AND WENT UNTO NINEVEH, ACCORDING TO THE WORD OF THE LORD.I? NOW NINEVEH WAS AN EXCEEDING GREAT CITY OF THREE DAYS JOURNEY.WL# 4 AND JONAH BEGAN TO ENTER INTO THE CITY A DAYS JOURNEY, AND HE CRIED, AND7 SAID, YET FORTY DAYS, AND NINEVEH SHALL BE OVERTHROWN.AL# 5 SO THE PEOPLE OF NINEVEH BELIEVED GOD, AND PROCLAIMED A FAST, AND PUT ON@ SACKCLOTH, FROM THE GREATEST OF THEM EVEN TO THE LEAST OF THEM.M# 6 FOR WORD CAME UNTO THE KING OF NINEVEH, AND HE AROSE FROM HIS THRONE, AND M HE LAID HIS ROBE FROM HIM, AND COVERED HIM WITH SACKCLOTH, AND SAT IN ASHES. J# 7 AND HE CAUSED IT TO BE PROCLAIMED AND PUBLISHED THROUGH NINEVEH BY THEK DECREE OF THE KING AND HIS NOBLES, SAYING, LET NEITHER MAN NOR BEAST, HERDS@ NOR FLOCK, TASTE ANY THING: LET THEM NOT FEED, NOR DRINK WATER:J# 8 BUT LET MAN AND BEAST BE COVERED WITH SACKCLOTH, AND CRY MIGHTILY UNTOK GOD: YEA, LET THEM TURN EVERY ONE FROM HIS EVIL WAY, AND FROM THE VIOLENCEN THAT IS IN THEIR HANDS.K# 9 WHO CAN TELL IF GOD WILL TURN AND REPENT, AND TURN AWAY FROM HIS FIERCE  ANGER, THAT WE PERISH NOT?HK# 10 AND GOD SAW THEIR WORKS, THAT THEY TURNED FROM THEIR EVIL WAY; AND GODTN REPENTED OF THE EVIL, THAT HE HAD SAID THAT HE WOULD DO UNTO THEM; AND HE DID IT NOT. = CHAPTER 4 ?# 1 BUT IT DISPLEASED JONAH EXCEEDINGLY, AND HE WAS VERY ANGRY.EL# 2 AND HE PRAYED UNTO THE LORD, AND SAID, I PRAY THEE, O LORD, WAS NOT THISF MY SAYING, WHEN I WAS YET IN MY COUNTRY? THEREFORE I FLED BEFORE UNTOI TARSHISH: FOR I KNEW THAT THOU ART A GR00~b?e?D%5%T6%! !ACIOUS GOD, AND MERCIFUL, SLOW TOS> ANGER, AND OF GREAT KINDNESS, AND REPENTEST THEE OF THE EVIL.K# 3 THEREFORE NOW, O LORD, TAKE, I BESEECH THEE, MY LIFE FROM ME; FOR IT IST# BETTER FOR ME TO DIE THAN TO LIVE. 4# 4 THEN SAID THE LORD, DOEST THOU WELL TO BE ANGRY?L# 5 SO JONAH WENT OUT OF THE CITY, AND SAT ON THE EAST SIDE OF THE CITY, ANDJ THERE MADE HIM A BOOTH, AND SAT UNDER IT IN THE SHADOW, TILL HE MIGHT SEE WHAT WOULD BECOME OF THE CITY.LI# 6 AND THE LORD GOD PREPARED A GOURD, AND MADE IT TO COME UP OVER JONAH,CK THAT IT MIGHT BE A SHADOW OVER HIS HEAD, TO DELIVER HIM FROM HIS GRIEF. SO.' JONAH WAS EXCEEDING GLAD OF THE GOURD.EL# 7 BUT GOD PREPARED A WORM WHEN THE MORNING ROSE THE NEXT DAY, AND IT SMOTE THE GOURD THAT IT WITHERED.M# 8 AND IT CAME TO PASS, WHEN THE SUN DID ARISE, THAT GOD PREPARED A VEHEMENTDI EAST WIND; AND THE SUN BEAT UPON THE HEAD OF JONAH, THAT HE FAINTED, AND,M WISHED IN HIMSELF TO DIE, AND SAID, IT IS BETTER FOR ME TO DIE THAN TO LIVE.AL# 9 AND GOD SAID TO JONAH, DOEST THOU WELL TO BE ANGRY FOR THE GOURD? AND HE. SAID, I DO WELL TO BE ANGRY, EVEN UNTO DEATH.L# 10 THEN SAID THE LORD, THOU HAST HAD PITY ON THE GOURD, FOR THE WHICH THOUI HAST NOT LABOURED, NEITHER MADEST IT GROW; WHICH CAME UP IN A NIGHT, AND  PERISHED IN A NIGHT:WK# 11 AND SHOULD NOT I SPARE NINEVEH, THAT GREAT CITY, WHEREIN ARE MORE THEN K SIXSCORE THOUSAND PERSONS THAT CANNOT DISCERN BETWEEN THEIR RIGHT HAND AND,' THEIR LEFT HAND; AND ALSO MUCH CATTLE?N TO LIVE.AL# 9 AND GOD SAID TO JONAH,* BOOK33 MICAH = CHAPTER 1 I# 1 THE WORD OF THE LORD THAT CAME TO MICAH THE MORASTHITE IN THE DAYS OFTL JOTHAM, AHAZ, AND HEZEKIAH, KINGS OF JUDAH, WHICH HE SAW CONCERNING SAMARIA AND JERUSALEM.TK# 2 HEAR, ALL YE PEOPLE; HEARKEN, O EARTH, AND ALL THAT THEREIN IS: AND LET D THE LORD GOD BE WITNESS AGAINST YOU, THE LORD FROM HIS HOLY TEMPLE.L# 3 FOR, BEHOLD, THE LORD COMETH FORTH OUT OF HIS PLACE, AND WILL COME DOWN,- AND TREAD UPON THE HIGH PLACES OF THE EARTH.TI# 4 AND THE MOUNTAINS SHALL BE MOLTEN UNDER HIM, AND THE VALLEYS SHALL BE N CLEFT, AS WAX BEFORE THE FIRE, AND AS THE WATERS THAT ARE POURED DOWN A STEEP PLACE.ZM# 5 FOR THE TRANSGRESSION OF JACOB IS ALL THIS, AND FOR THE SINS OF THE HOUSEEK OF ISRAEL. WHAT IS THE TRANSGRESSION OF JACOB? IS IT NOT SAMARIA? AND WHATL6 ARE THE HIGH PLACES OF JUDAH? ARE THEY NOT JERUSALEM?K# 6 THEREFORE I WILL MAKE SAMARIA AS AN HEAP OF THE FIELD, AND AS PLANTINGSEN OF A VINEYARD: AND I WILL POUR DOWN THE STONES THEREOF INTO THE VALLEY, AND I' WILL DISCOVER THE FOUNDATIONS THEREOF.SL# 7 AND ALL THE GRAVEN IMAGES THEREOF SHALL BE BEATEN TO PIECES, AND ALL THEN HIRES THEREOF SHALL BE BURNED WITH THE FIRE, AND ALL THE IDOLS THEREOF WILL IK LAY DESOLATE: FOR SHE GATHERED IT OF THE HIRE OF AN HARLOT, AND THEY SHALLO! RETURN TO THE HIRE OF AN HARLOT. M# 8 THEREFORE I WILL WAIL AND HOWL, I WILL GO STRIPPED AND NAKED: I WILL MAKEA6 A WAILING LIKE THE DRAGONS, AND MOURNING AS THE OWLS.J# 9 FOR HER WOUND IS INCURABLE; FOR IT IS COME UNTO JUDAH; HE IS COME UNTO* THE GATE OF MY PEOPLE, EVEN TO JERUSALEM.J# 10 DECLARE YE IT NOT AT GATH, WEEP YE NOT AT ALL: IN THE HOUSE OF APHRAH ROLL THYSELF IN THE DUST.I# 11 PASS YE AWAY, THOU INHABITANT OF SAPHIR, HAVING THY SHAME NAKED: THEOJ INHABITANT OF ZAANAN CAME NOT FORTH IN THE MOURNING OF BETHEZEL; HE SHALL RECEIVE OF YOU HIS STANDING. J# 12 FOR THE INHABITANT OF MAROTH WAITED CAREFULLY FOR GOOD: BUT EVIL CAME/ DOWN FROM THE LORD UNTO THE GATE OF JERUSALEM.SK# 13 O THOU INHABITANT OF LACHISH, BIND THE CHARIOT TO THE SWIFT BEAST: SHEEL IS THE BEGINNING OF THE SIN TO THE DAUGHTER OF ZION: FOR THE TRANSGRESSIONS OF ISRAEL WERE FOUND IN THEE.G# 14 THEREFORE SHALT THOU GIVE PRESENTS TO MORESHETHGATH: THE HOUSES OFS. ACHZIB SHALL BE A LIE TO THE KINGS OF ISRAEL.K# 15 YET WILL I BRING AN HEIR UNTO THEE, O INHABITANT OF MARESHAH: HE SHALL' COME UNTO ADULLAM THE GLORY OF ISRAEL.CI# 16 MAKE THEE BALD, AND POLL THEE FOR THY DELICATE CHILDREN; ENLARGE THYSC BALDNESS AS THE EAGLE; FOR THEY ARE GONE INTO CAPTIVI00j?O?<%X>%+%O-%TADATADATATY FROM THEE.I = CHAPTER 2 M# 1 WOE TO THEM THAT DEVISE INIQUITY, AND WORK EVIL UPON THEIR BEDS! WHEN THEN MORNING IS LIGHT, THEY PRACTISE IT, BECAUSE IT IS IN THE POWER OF THEIR HAND.J# 2 AND THEY COVET FIELDS, AND TAKE THEM BY VIOLENCE; AND HOUSES, AND TAKEM THEM AWAY: SO THEY OPPRESS A MAN AND HIS HOUSE, EVEN A MAN AND HIS HERITAGE.MM# 3 THEREFORE THUS SAITH THE LORD; BEHOLD, AGAINST THIS FAMILY DO I DEVISE ANYE EVIL, FROM WHICH YE SHALL NOT REMOVE YOUR NECKS; NEITHER SHALL YE GOG" HAUGHTILY: FOR THIS TIME IS EVIL.J# 4 IN THAT DAY SHALL ONE TAKE UP A PARABLE AGAINST YOU, AND LAMENT WITH AI DOLEFUL LAMENTATION, AND SAY, WE BE UTTERLY SPOILED: HE HATH CHANGED THEEK PORTION OF MY PEOPLE: HOW HATH HE REMOVED IT FROM ME! TURNING AWAY HE HATHO DIVIDED OUR FIELDS.G# 5 THEREFORE THOU SHALT HAVE NONE THAT SHALL CAST A CORD BY LOT IN THE CONGREGATION OF THE LORD.L# 6 PROPHESY YE NOT, SAY THEY TO THEM THAT PROPHESY: THEY SHALL NOT PROPHESY) TO THEM, THAT THEY SHALL NOT TAKE SHAME.GG# 7 O THOU THAT ART NAMED THE HOUSE OF JACOB, IS THE SPIRIT OF THE LORD N STRAITENED? ARE THESE HIS DOINGS? DO NOT MY WORDS DO GOOD TO HIM THAT WALKETH UPRIGHTLY? M# 8 EVEN OF LATE MY PEOPLE IS RISEN UP AS AN ENEMY: YE PULL OFF THE ROBE WITHRD THE GARMENT FROM THEM THAT PASS BY SECURELY AS MEN AVERSE FROM WAR.L# 9 THE WOMEN OF MY PEOPLE HAVE YE CAST OUT FROM THEIR PLEASANT HOUSES; FROM5 THEIR CHILDREN HAVE YE TAKEN AWAY MY GLORY FOR EVER.HM# 10 ARISE YE, AND DEPART; FOR THIS IS NOT YOUR REST: BECAUSE IT IS POLLUTED,R4 IT SHALL DESTROY YOU, EVEN WITH A SORE DESTRUCTION.H# 11 IF A MAN WALKING IN THE SPIRIT AND FALSEHOOD DO LIE, SAYING, I WILLM PROPHESY UNTO THEE OF WINE AND OF STRONG DRINK; HE SHALL EVEN BE THE PROPHETL OF THIS PEOPLE.K# 12 I WILL SURELY ASSEMBLE, O JACOB, ALL OF THEE; I WILL SURELY GATHER THE K REMNANT OF ISRAEL; I WILL PUT THEM TOGETHER AS THE SHEEP OF BOZRAH, AS THEEK FLOCK IN THE MIDST OF THEIR FOLD: THEY SHALL MAKE GREAT NOISE BY REASON OF; THE MULTITUDE OF MEN.M# 13 THE BREAKER IS COME UP BEFORE THEM: THEY HAVE BROKEN UP, AND HAVE PASSEDOK THROUGH THE GATE, AND ARE GONE OUT BY IT: AND THEIR KING SHALL PASS BEFORE( THEM, AND THE LORD ON THE HEAD OF THEM. = CHAPTER 3 I# 1 AND I SAID, HEAR, I PRAY YOU, O HEADS OF JACOB, AND YE PRINCES OF THEC5 HOUSE OF ISRAEL; IS IT NOT FOR YOU TO KNOW JUDGMENT? K# 2 WHO HATE THE GOOD, AND LOVE THE EVIL; WHO PLUCK OFF THEIR SKIN FROM OFFH, THEM, AND THEIR FLESH FROM OFF THEIR BONES;K# 3 WHO ALSO EAT THE FLESH OF MY PEOPLE, AND FLAY THEIR SKIN FROM OFF THEM;EL AND THEY BREAK THEIR BONES, AND CHOP THEM IN PIECES, AS FOR THE POT, AND AS FLESH WITHIN THE CALDRON.I# 4 THEN SHALL THEY CRY UNTO THE LORD, BUT HE WILL NOT HEAR THEM: HE WILL K EVEN HIDE HIS FACE FROM THEM AT THAT TIME, AS THEY HAVE BEHAVED THEMSELVESU ILL IN THEIR DOINGS. M# 5 THUS SAITH THE LORD CONCERNING THE PROPHETS THAT MAKE MY PEOPLE ERR, THAT J BITE WITH THEIR TEETH, AND CRY, PEACE; AND HE THAT PUTTETH NOT INTO THEIR+ MOUTHS, THEY EVEN PREPARE WAR AGAINST HIM. K# 6 THEREFORE NIGHT SHALL BE UNTO YOU, THAT YE SHALL NOT HAVE A VISION; ANDCJ IT SHALL BE DARK UNTO YOU, THAT YE SHALL NOT DIVINE; AND THE SUN SHALL GO= DOWN OVER THE PROPHETS, AND THE DAY SHALL BE DARK OVER THEM.IK# 7 THEN SHALL THE SEERS BE ASHAMED, AND THE DIVINERS CONFOUNDED: YEA, THEY ; SHALL ALL COVER THEIR LIPS; FOR THERE IS NO ANSWER OF GOD.TL# 8 BUT TRULY I AM FULL OF POWER BY THE SPIRIT OF THE LORD, AND OF JUDGMENT,N AND OF MIGHT, TO DECLARE UNTO JACOB HIS TRANSGRESSION, AND TO ISRAEL HIS SIN.M# 9 HEAR THIS, I PRAY YOU, YE HEADS OF THE HOUSE OF JACOB, AND PRINCES OF THE > HOUSE OF ISRAEL, THAT ABHOR JUDGMENT, AND PERVERT ALL EQUITY.@# 10 THEY BUILD UP ZION WITH BLOOD, AND JERUSALEM WITH INIQUITY.J# 11 THE HEADS THEREOF JUDGE FOR REWARD, AND THE PRIESTS THEREOF TEACH FORM HIRE, AND THE PROPHETS THEREOF DIVINE FOR MONEY: YET WILL THEY LEAN UPON THERE LORD, AND SAY, IS NOT THE LORD AMONG US? NONE EVIL CAN COME UPON US.DK# 12 THEREFORE SHALL ZION FOR YOUR SAKE BE PLOWED AS A FIELD, AND JERUSALEM L SHA00r?e?D%5%T6%! !LL BECOME HEAPS, AND THE MOUNTAIN OF THE HOUSE AS THE HIGH PLACES OF THE FOREST. = CHAPTER 4 N# 1 BUT IN THE LAST DAYS IT SHALL COME TO PASS, THAT THE MOUNTAIN OF THE HOUSEN OF THE LORD SHALL BE ESTABLISHED IN THE TOP OF THE MOUNTAINS, AND IT SHALL BE8 EXALTED ABOVE THE HILLS; AND PEOPLE SHALL FLOW UNTO IT.G# 2 AND MANY NATIONS SHALL COME, AND SAY, COME, AND LET US GO UP TO THERN MOUNTAIN OF THE LORD, AND TO THE HOUSE OF THE GOD OF JACOB; AND HE WILL TEACHM US OF HIS WAYS, AND WE WILL WALK IN HIS PATHS: FOR THE LAW SHALL GO FORTH OFF/ ZION, AND THE WORD OF THE LORD FROM JERUSALEM. M# 3 AND HE SHALL JUDGE AMONG MANY PEOPLE, AND REBUKE STRONG NATIONS AFAR OFF;FH AND THEY SHALL BEAT THEIR SWORDS INTO PLOWSHARES, AND THEIR SPEARS INTOM PRUNINGHOOKS: NATION SHALL NOT LIFT UP A SWORD AGAINST NATION, NEITHER SHALL  THEY LEARN WAR ANY MORE.,K# 4 BUT THEY SHALL SIT EVERY MAN UNDER HIS VINE AND UNDER HIS FIG TREE; ANDOL NONE SHALL MAKE THEM AFRAID: FOR THE MOUTH OF THE LORD OF HOSTS HATH SPOKEN IT.J# 5 FOR ALL PEOPLE WILL WALK EVERY ONE IN THE NAME OF HIS GOD, AND WE WILL8 WALK IN THE NAME OF THE LORD OUR GOD FOR EVER AND EVER.M# 6 IN THAT DAY, SAITH THE LORD, WILL I ASSEMBLE HER THAT HALTETH, AND I WILLS> GATHER HER THAT IS DRIVEN OUT, AND HER THAT I HAVE AFFLICTED;L# 7 AND I WILL MAKE HER THAT HALTED A REMNANT, AND HER THAT WAS CAST FAR OFFG A STRONG NATION: AND THE LORD SHALL REIGN OVER THEM IN MOUNT ZION FROM HENCEFORTH, EVEN FOR EVER. L# 8 AND THOU, O TOWER OF THE FLOCK, THE STRONG HOLD OF THE DAUGHTER OF ZION,L UNTO THEE SHALL IT COME, EVEN THE FIRST DOMINION; THE KINGDOM SHALL COME TO THE DAUGHTER OF JERUSALEM..E# 9 NOW WHY DOST THOU CRY OUT ALOUD? IS THERE NO KING IN THEE? IS THYDF COUNSELLOR PERISHED? FOR PANGS HAVE TAKEN THEE AS A WOMAN IN TRAVAIL.L# 10 BE IN PAIN, AND LABOUR TO BRING FORTH, O DAUGHTER OF ZION, LIKE A WOMANN IN TRAVAIL: FOR NOW SHALT THOU GO FORTH OUT OF THE CITY, AND THOU SHALT DWELLE IN THE FIELD, AND THOU SHALT GO EVEN TO BABYLON; THERE SHALT THOU BEGL DELIVERED; THERE THE LORD SHALL REDEEM THEE FROM THE HAND OF THINE ENEMIES.J# 11 NOW ALSO MANY NATIONS ARE GATHERED AGAINST THEE, THAT SAY, LET HER BE) DEFILED, AND LET OUR EYE LOOK UPON ZION.TL# 12 BUT THEY KNOW NOT THE THOUGHTS OF THE LORD, NEITHER UNDERSTAND THEY HISA COUNSEL: FOR HE SHALL GATHER THEM AS THE SHEAVES INTO THE FLOOR.IK# 13 ARISE AND THRESH, O DAUGHTER OF ZION: FOR I WILL MAKE THINE HORN IRON,NL AND I WILL MAKE THY HOOFS BRASS: AND THOU SHALT BEAT IN PIECES MANY PEOPLE:M AND I WILL CONSECRATE THEIR GAIN UNTO THE LORD, AND THEIR SUBSTANCE UNTO THEN LORD OF THE WHOLE EARTH.A = CHAPTER 5 J# 1 NOW GATHER THYSELF IN TROOPS, O DAUGHTER OF TROOPS: HE HATH LAID SIEGEL AGAINST US: THEY SHALL SMITE THE JUDGE OF ISRAEL WITH A ROD UPON THE CHEEK.K# 2 BUT THOU, BETHLEHEM EPHRATAH, THOUGH THOU BE LITTLE AMONG THE THOUSANDSRM OF JUDAH, YET OUT OF THEE SHALL HE COME FORTH UNTO ME THAT IS TO BE RULER INND ISRAEL; WHOSE GOINGS FORTH HAVE BEEN FROM OF OLD, FROM EVERLASTING.L# 3 THEREFORE WILL HE GIVE THEM UP, UNTIL THE TIME THAT SHE WHICH TRAVAILETHK HATH BROUGHT FORTH: THEN THE REMNANT OF HIS BRETHREN SHALL RETURN UNTO THEI CHILDREN OF ISRAEL.K# 4 AND HE SHALL STAND AND FEED IN THE STRENGTH OF THE LORD, IN THE MAJESTYEK OF THE NAME OF THE LORD HIS GOD; AND THEY SHALL ABIDE: FOR NOW SHALL HE BEE" GREAT UNTO THE ENDS OF THE EARTH.J# 5 AND THIS MAN SHALL BE THE PEACE, WHEN THE ASSYRIAN SHALL COME INTO OURN LAND: AND WHEN HE SHALL TREAD IN OUR PALACES, THEN SHALL WE RAISE AGAINST HIM* SEVEN SHEPHERDS, AND EIGHT PRINCIPAL MEN.L# 6 AND THEY SHALL WASTE THE LAND OF ASSYRIA WITH THE SWORD, AND THE LAND OFM NIMROD IN THE ENTRANCES THEREOF: THUS SHALL HE DELIVER US FROM THE ASSYRIAN,TG WHEN HE COMETH INTO OUR LAND, AND WHEN HE TREADETH WITHIN OUR BORDERS.DJ# 7 AND THE REMNANT OF JACOB SHALL BE IN THE MIDST OF MANY PEOPLE AS A DEWM FROM THE LORD, AS THE SHOWERS UPON THE GRASS, THAT TARRIETH NOT FOR MAN, NORR WAITETH FOR THE SONS OF MEN.DM# 8 AND THE REMNANT OF JACOB SHALL BE AMONG THE GENTILES I00z?O?<%X>%+%O-%TADATADATAN THE MIDST OF MANYRK PEOPLE AS A LION AMONG THE BEASTS OF THE FOREST, AS A YOUNG LION AMONG THEDK FLOCKS OF SHEEP: WHO, IF HE GO THROUGH, BOTH TREADETH DOWN, AND TEARETH IN  PIECES, AND NONE CAN DELIVER.G# 9 THINE HAND SHALL BE LIFTED UP UPON THINE ADVERSARIES, AND ALL THINEN ENEMIES SHALL BE CUT OFF.K# 10 AND IT SHALL COME TO PASS IN THAT DAY, SAITH THE LORD, THAT I WILL CUT,J OFF THY HORSES OUT OF THE MIDST OF THEE, AND I WILL DESTROY THY CHARIOTS:M# 11 AND I WILL CUT OFF THE CITIES OF THY LAND, AND THROW DOWN ALL THY STRONGS HOLDS:MM# 12 AND I WILL CUT OFF WITCHCRAFTS OUT OF THINE HAND; AND THOU SHALT HAVE NO, MORE SOOTHSAYERS:J# 13 THY GRAVEN IMAGES ALSO WILL I CUT OFF, AND THY STANDING IMAGES OUT OFK THE MIDST OF THEE; AND THOU SHALT NO MORE WORSHIP THE WORK OF THINE HANDS.AG# 14 AND I WILL PLUCK UP THY GROVES OUT OF THE MIDST OF THEE: SO WILL ID DESTROY THY CITIES.M# 15 AND I WILL EXECUTE VENGEANCE IN ANGER AND FURY UPON THE HEATHEN, SUCH ASA THEY HAVE NOT HEARD.I = CHAPTER 6 N# 1 HEAR YE NOW WHAT THE LORD SAITH; ARISE, CONTEND THOU BEFORE THE MOUNTAINS," AND LET THE HILLS HEAR THY VOICE.M# 2 HEAR YE, O MOUNTAINS, THE LORDS CONTROVERSY, AND YE STRONG FOUNDATIONS OFHN THE EARTH: FOR THE LORD HATH A CONTROVERSY WITH HIS PEOPLE, AND HE WILL PLEAD WITH ISRAEL.HM# 3 O MY PEOPLE, WHAT HAVE I DONE UNTO THEE? AND WHEREIN HAVE I WEARIED THEE?D TESTIFY AGAINST ME.L# 4 FOR I BROUGHT THEE UP OUT OF THE LAND OF EGYPT, AND REDEEMED THEE OUT OFH THE HOUSE OF SERVANTS; AND I SENT BEFORE THEE MOSES, AARON, AND MIRIAM.I# 5 O MY PEOPLE, REMEMBER NOW WHAT BALAK KING OF MOAB CONSULTED, AND WHAT J BALAAM THE SON OF BEOR ANSWERED HIM FROM SHITTIM UNTO GILGAL; THAT YE MAY$ KNOW THE RIGHTEOUSNESS OF THE LORD.J# 6 WHEREWITH SHALL I COME BEFORE THE LORD, AND BOW MYSELF BEFORE THE HIGHN GOD? SHALL I COME BEFORE HIM WITH BURNT OFFERINGS, WITH CALVES OF A YEAR OLD?M# 7 WILL THE LORD BE PLEASED WITH THOUSANDS OF RAMS, OR WITH TEN THOUSANDS OFDL RIVERS OF OIL? SHALL I GIVE MY FIRSTBORN FOR MY TRANSGRESSION, THE FRUIT OF MY BODY FOR THE SIN OF MY SOUL?L# 8 HE HATH SHEWED THEE, O MAN, WHAT IS GOOD; AND WHAT DOTH THE LORD REQUIREJ OF THEE, BUT TO DO JUSTLY, AND TO LOVE MERCY, AND TO WALK HUMBLY WITH THY GOD?RM# 9 THE LORDS VOICE CRIETH UNTO THE CITY, AND THE MAN OF WISDOM SHALL SEE THY2 NAME: HEAR YE THE ROD, AND WHO HATH APPOINTED IT.J# 10 ARE THERE YET THE TREASURES OF WICKEDNESS IN THE HOUSE OF THE WICKED,* AND THE SCANT MEASURE THAT IS ABOMINABLE?J# 11 SHALL I COUNT THEM PURE WITH THE WICKED BALANCES, AND WITH THE BAG OF DECEITFUL WEIGHTS??G# 12 FOR THE RICH MEN THEREOF ARE FULL OF VIOLENCE, AND THE INHABITANTSQH THEREOF HAVE SPOKEN LIES, AND THEIR TONGUE IS DECEITFUL IN THEIR MOUTH.I# 13 THEREFORE ALSO WILL I MAKE THEE SICK IN SMITING THEE, IN MAKING THEES DESOLATE BECAUSE OF THY SINS.K# 14 THOU SHALT EAT, BUT NOT BE SATISFIED; AND THY CASTING DOWN SHALL BE INIM THE MIDST OF THEE; AND THOU SHALT TAKE HOLD, BUT SHALT NOT DELIVER; AND THAT?3 WHICH THOU DELIVEREST WILL I GIVE UP TO THE SWORD.EJ# 15 THOU SHALT SOW, BUT THOU SHALT NOT REAP; THOU SHALT TREAD THE OLIVES,M BUT THOU SHALT NOT ANOINT THEE WITH OIL; AND SWEET WINE, BUT SHALT NOT DRINKR WINE.I# 16 FOR THE STATUTES OF OMRI ARE KEPT, AND ALL THE WORKS OF THE HOUSE OFSK AHAB, AND YE WALK IN THEIR COUNSELS; THAT I SHOULD MAKE THEE A DESOLATION, M AND THE INHABITANTS THEREOF AN HISSING: THEREFORE YE SHALL BEAR THE REPROACHE OF MY PEOPLE. = CHAPTER 7 L# 1 WOE IS ME! FOR I AM AS WHEN THEY HAVE GATHERED THE SUMMER FRUITS, AS THEK GRAPEGLEANINGS OF THE VINTAGE: THERE IS NO CLUSTER TO EAT: MY SOUL DESIREDI THE FIRSTRIPE FRUIT.OH# 2 THE GOOD MAN IS PERISHED OUT OF THE EARTH: AND THERE IS NONE UPRIGHTK AMONG MEN: THEY ALL LIE IN WAIT FOR BLOOD; THEY HUNT EVERY MAN HIS BROTHER, WITH A NET.K# 3 THAT THEY MAY DO EVIL WITH BOTH HANDS EARNESTLY, THE PRINCE ASKETH, ANDSN THE JUDGE ASKETH FOR A REWARD; AND THE GREAT MAN, HE UTTERETH HIS MISCHIEVOUS DESIRE: SO THEY WRAP IT UP.L# 4 THE BEST OF THEM IS AS A BRIER: THE MOST U00??D%5%T6%! !PRIGHT IS SHARPER THAN A THORNM HEDGE: THE DAY OF THY WATCHMEN AND THY VISITATION COMETH; NOW SHALL BE THEIRO PERPLEXITY.H# 5 TRUST YE NOT IN A FRIEND, PUT YE NOT CONFIDENCE IN A GUIDE: KEEP THE5 DOORS OF THY MOUTH FROM HER THAT LIETH IN THY BOSOM. K# 6 FOR THE SON DISHONOURETH THE FATHER, THE DAUGHTER RISETH UP AGAINST HERTN MOTHER, THE DAUGHTER IN LAW AGAINST HER MOTHER IN LAW; A MANS ENEMIES ARE THE MEN OF HIS OWN HOUSE.F# 7 THEREFORE I WILL LOOK UNTO THE LORD; I WILL WAIT FOR THE GOD OF MY SALVATION: MY GOD WILL HEAR ME.L# 8 REJOICE NOT AGAINST ME, O MINE ENEMY: WHEN I FALL, I SHALL ARISE; WHEN I4 SIT IN DARKNESS, THE LORD SHALL BE A LIGHT UNTO ME.J# 9 I WILL BEAR THE INDIGNATION OF THE LORD, BECAUSE I HAVE SINNED AGAINSTL HIM, UNTIL HE PLEAD MY CAUSE, AND EXECUTE JUDGMENT FOR ME: HE WILL BRING ME: FORTH TO THE LIGHT, AND I SHALL BEHOLD HIS RIGHTEOUSNESS.H# 10 THEN SHE THAT IS MINE ENEMY SHALL SEE IT, AND SHAME SHALL COVER HERK WHICH SAID UNTO ME, WHERE IS THE LORD THY GOD? MINE EYES SHALL BEHOLD HER:D: NOW SHALL SHE BE TRODDEN DOWN AS THE MIRE OF THE STREETS.L# 11 IN THE DAY THAT THY WALLS ARE TO BE BUILT, IN THAT DAY SHALL THE DECREE BE FAR REMOVED.K# 12 IN THAT DAY ALSO HE SHALL COME EVEN TO THEE FROM ASSYRIA, AND FROM THEIK FORTIFIED CITIES, AND FROM THE FORTRESS EVEN TO THE RIVER, AND FROM SEA TO $ SEA, AND FROM MOUNTAIN TO MOUNTAIN.J# 13 NOTWITHSTANDING THE LAND SHALL BE DESOLATE BECAUSE OF THEM THAT DWELL( THEREIN, FOR THE FRUIT OF THEIR DOINGS.K# 14 FEED THY PEOPLE WITH THY ROD, THE FLOCK OF THINE HERITAGE, WHICH DWELLAL SOLITARILY IN THE WOOD, IN THE MIDST OF CARMEL: LET THEM FEED IN BASHAN AND GILEAD, AS IN THE DAYS OF OLD.AM# 15 ACCORDING TO THE DAYS OF THY COMING OUT OF THE LAND OF EGYPT WILL I SHEWF UNTO HIM MARVELLOUS THINGS.K# 16 THE NATIONS SHALL SEE AND BE CONFOUNDED AT ALL THEIR MIGHT: THEY SHALLT; LAY THEIR HAND UPON THEIR MOUTH, THEIR EARS SHALL BE DEAF.LJ# 17 THEY SHALL LICK THE DUST LIKE A SERPENT, THEY SHALL MOVE OUT OF THEIRM HOLES LIKE WORMS OF THE EARTH: THEY SHALL BE AFRAID OF THE LORD OUR GOD, ANDL SHALL FEAR BECAUSE OF THEE.M# 18 WHO IS A GOD LIKE UNTO THEE, THAT PARDONETH INIQUITY, AND PASSETH BY THE M TRANSGRESSION OF THE REMNANT OF HIS HERITAGE? HE RETAINETH NOT HIS ANGER FORU& EVER, BECAUSE HE DELIGHTETH IN MERCY.L# 19 HE WILL TURN AGAIN, HE WILL HAVE COMPASSION UPON US; HE WILL SUBDUE OURJ INIQUITIES; AND THOU WILT CAST ALL THEIR SINS INTO THE DEPTHS OF THE SEA.J# 20 THOU WILT PERFORM THE TRUTH TO JACOB, AND THE MERCY TO ABRAHAM, WHICH7 THOU HAST SWORN UNTO OUR FATHERS FROM THE DAYS OF OLD.ALL FEAR BECAUSE OF THEE.M# 18 WHO IS A GOD LIKE UNTO THEE, THAT PARDONETH INIQUITY, AND PASSETH BY THE M TRANSGRESSION OF THE REMNANT OF HIS HERITAGE? HE RETAINETH NOT HIS ANGER FORU& EVER, BECAUSE HE DELIGHTETH IN MERCY.L# 19 HE WILL TURN AGAIN, HE WILL HAVE COMPASSION UPON US; HE WILL SUBDUE OURJ INIQUITIES; AND THOU WILT CAST ALL THEIR SINS INTO THE DEPTHS OF THE SEA.J# 20 THOU WILT PERFORM THE TRUTH TO JACOB, AND THE MERCY TO ABRAHAM, W* BOOK34 NAHUM = CHAPTER 1 I# 1 THE BURDEN OF NINEVEH. THE BOOK OF THE VISION OF NAHUM THE ELKOSHITE. F# 2 GOD IS JEALOUS, AND THE LORD REVENGETH; THE LORD REVENGETH, AND ISK FURIOUS; THE LORD WILL TAKE VENGEANCE ON HIS ADVERSARIES, AND HE RESERVETHB WRATH FOR HIS ENEMIES.EM# 3 THE LORD IS SLOW TO ANGER, AND GREAT IN POWER, AND WILL NOT AT ALL ACQUITOM THE WICKED: THE LORD HATH HIS WAY IN THE WHIRLWIND AND IN THE STORM, AND THE! CLOUDS ARE THE DUST OF HIS FEET. I# 4 HE REBUKETH THE SEA, AND MAKETH IT DRY, AND DRIETH UP ALL THE RIVERS:UG BASHAN LANGUISHETH, AND CARMEL, AND THE FLOWER OF LEBANON LANGUISHETH. K# 5 THE MOUNTAINS QUAKE AT HIM, AND THE HILLS MELT, AND THE EARTH IS BURNED = AT HIS PRESENCE, YEA, THE WORLD, AND ALL THAT DWELL THEREIN.M# 6 WHO CAN STAND BEFORE HIS INDIGNATION? AND WHO CAN ABIDE IN THE FIERCENESSDN OF HIS ANGER? HIS FURY IS POURED OUT LIKE FIRE, AND THE ROCKS ARE THROWN DOWN BY HIM.I# 7 THE LORD IS GOOD, A STRONG HOLD IN THE DAY OF TROUBLE; AND HE KNOWETH, THEM 00?O?<%X>%+%O-%TADATADATATHAT TRUST IN HIM.H# 8 BUT WITH AN OVERRUNNING FLOOD HE WILL MAKE AN UTTER END OF THE PLACE0 THEREOF, AND DARKNESS SHALL PURSUE HIS ENEMIES.C# 9 WHAT DO YE IMAGINE AGAINST THE LORD? HE WILL MAKE AN UTTER END:E. AFFLICTION SHALL NOT RISE UP THE SECOND TIME.L# 10 FOR WHILE THEY BE FOLDEN TOGETHER AS THORNS, AND WHILE THEY ARE DRUNKEN; AS DRUNKARDS, THEY SHALL BE DEVOURED AS STUBBLE FULLY DRY.CK# 11 THERE IS ONE COME OUT OF THEE, THAT IMAGINETH EVIL AGAINST THE LORD, AO WICKED COUNSELLOR.WK# 12 THUS SAITH THE LORD; THOUGH THEY BE QUIET, AND LIKEWISE MANY, YET THUSEL SHALL THEY BE CUT DOWN, WHEN HE SHALL PASS THROUGH. THOUGH I HAVE AFFLICTED# THEE, I WILL AFFLICT THEE NO MORE.RM# 13 FOR NOW WILL I BREAK HIS YOKE FROM OFF THEE, AND WILL BURST THY BONDS IN SUNDER.K# 14 AND THE LORD HATH GIVEN A COMMANDMENT CONCERNING THEE, THAT NO MORE OFAI THY NAME BE SOWN: OUT OF THE HOUSE OF THY GODS WILL I CUT OFF THE GRAVENOF IMAGE AND THE MOLTEN IMAGE: I WILL MAKE THY GRAVE; FOR THOU ART VILE.J# 15 BEHOLD UPON THE MOUNTAINS THE FEET OF HIM THAT BRINGETH GOOD TIDINGS,N THAT PUBLISHETH PEACE! O JUDAH, KEEP THY SOLEMN FEASTS, PERFORM THY VOWS: FORC THE WICKED SHALL NO MORE PASS THROUGH THEE; HE IS UTTERLY CUT OFF.I = CHAPTER 2 L# 1 HE THAT DASHETH IN PIECES IS COME UP BEFORE THY FACE: KEEP THE MUNITION,B WATCH THE WAY, MAKE THY LOINS STRONG, FORTIFY THY POWER MIGHTILY.L# 2 FOR THE LORD HATH TURNED AWAY THE EXCELLENCY OF JACOB, AS THE EXCELLENCYI OF ISRAEL: FOR THE EMPTIERS HAVE EMPTIED THEM OUT, AND MARRED THEIR VINET BRANCHES.M# 3 THE SHIELD OF HIS MIGHTY MEN IS MADE RED, THE VALIANT MEN ARE IN SCARLET: N THE CHARIOTS SHALL BE WITH FLAMING TORCHES IN THE DAY OF HIS PREPARATION, AND( THE FIR TREES SHALL BE TERRIBLY SHAKEN.I# 4 THE CHARIOTS SHALL RAGE IN THE STREETS, THEY SHALL JUSTLE ONE AGAINST,M ANOTHER IN THE BROAD WAYS: THEY SHALL SEEM LIKE TORCHES, THEY SHALL RUN LIKEH THE LIGHTNINGS.I# 5 HE SHALL RECOUNT HIS WORTHIES: THEY SHALL STUMBLE IN THEIR WALK; THEYEI SHALL MAKE HASTE TO THE WALL THEREOF, AND THE DEFENCE SHALL BE PREPARED.DD# 6 THE GATES OF THE RIVERS SHALL BE OPENED, AND THE PALACE SHALL BE DISSOLVED.LJ# 7 AND HUZZAB SHALL BE LED AWAY CAPTIVE, SHE SHALL BE BROUGHT UP, AND HERN MAIDS SHALL LEAD HER AS WITH THE VOICE OF DOVES, TABERING UPON THEIR BREASTS.I# 8 BUT NINEVEH IS OF OLD LIKE A POOL OF WATER: YET THEY SHALL FLEE AWAY.R8 STAND, STAND, SHALL THEY CRY; BUT NONE SHALL LOOK BACK.J# 9 TAKE YE THE SPOIL OF SILVER, TAKE THE SPOIL OF GOLD: FOR THERE IS NONE> END OF THE STORE AND GLORY OUT OF ALL THE PLEASANT FURNITURE.L# 10 SHE IS EMPTY, AND VOID, AND WASTE: AND THE HEART MELTETH, AND THE KNEESI SMITE TOGETHER, AND MUCH PAIN IS IN ALL LOINS, AND THE FACES OF THEM ALLD GATHER BLACKNESS.J# 11 WHERE IS THE DWELLING OF THE LIONS, AND THE FEEDINGPLACE OF THE YOUNGK LIONS, WHERE THE LION, EVEN THE OLD LION, WALKED, AND THE LIONS WHELP, ANDN NONE MADE THEM AFRAID?NM# 12 THE LION DID TEAR IN PIECES ENOUGH FOR HIS WHELPS, AND STRANGLED FOR HISRD LIONESSES, AND FILLED HIS HOLES WITH PREY, AND HIS DENS WITH RAVIN.L# 13 BEHOLD, I AM AGAINST THEE, SAITH THE LORD OF HOSTS, AND I WILL BURN HERN CHARIOTS IN THE SMOKE, AND THE SWORD SHALL DEVOUR THY YOUNG LIONS: AND I WILLJ CUT OFF THY PREY FROM THE EARTH, AND THE VOICE OF THY MESSENGERS SHALL NO MORE BE HEARD.E = CHAPTER 3 H# 1 WOE TO THE BLOODY CITY! IT IS ALL FULL OF LIES AND ROBBERY; THE PREY DEPARTETH NOT;AL# 2 THE NOISE OF A WHIP, AND THE NOISE OF THE RATTLING OF THE WHEELS, AND OF2 THE PRANSING HORSES, AND OF THE JUMPING CHARIOTS.K# 3 THE HORSEMAN LIFTETH UP BOTH THE BRIGHT SWORD AND THE GLITTERING SPEAR:OM AND THERE IS A MULTITUDE OF SLAIN, AND A GREAT NUMBER OF CARCASES; AND THEREY? IS NONE END OF THEIR CORPSES; THEY STUMBLE UPON THEIR CORPSES:HM# 4 BECAUSE OF THE MULTITUDE OF THE WHOREDOMS OF THE WELLFAVOURED HARLOT, THETI MISTRESS OF WITCHCRAFTS, THAT SELLETH NATIONS THROUGH HER WHOREDOMS, ANDT" FAMILIES THROUGH HER WITCHCRAFTS.K# 5 BEHOLD, I AM AGAINST THEE, SAITH THE LORD OF HOSTS; AND I WILL DISCOVEREM THY00??D%5%T6%! ! SKIRTS UPON THY FACE, AND I WILL SHEW THE NATIONS THY NAKEDNESS, AND THEL KINGDOMS THY SHAME.L# 6 AND I WILL CAST ABOMINABLE FILTH UPON THEE, AND MAKE THEE VILE, AND WILL SET THEE AS A GAZINGSTOCK.TK# 7 AND IT SHALL COME TO PASS, THAT ALL THEY THAT LOOK UPON THEE SHALL FLEEMM FROM THEE, AND SAY, NINEVEH IS LAID WASTE: WHO WILL BEMOAN HER? WHENCE SHALLO I SEEK COMFORTERS FOR THEE?M# 8 ART THOU BETTER THAN POPULOUS NO, THAT WAS SITUATE AMONG THE RIVERS, THATLK HAD THE WATERS ROUND ABOUT IT, WHOSE RAMPART WAS THE SEA, AND HER WALL WASW FROM THE SEA?L# 9 ETHIOPIA AND EGYPT WERE HER STRENGTH, AND IT WAS INFINITE; PUT AND LUBIM WERE THY HELPERS.J# 10 YET WAS SHE CARRIED AWAY, SHE WENT INTO CAPTIVITY: HER YOUNG CHILDRENM ALSO WERE DASHED IN PIECES AT THE TOP OF ALL THE STREETS: AND THEY CAST LOTSND FOR HER HONOURABLE MEN, AND ALL HER GREAT MEN WERE BOUND IN CHAINS.H# 11 THOU ALSO SHALT BE DRUNKEN: THOU SHALT BE HID, THOU ALSO SHALT SEEK STRENGTH BECAUSE OF THE ENEMY.TM# 12 ALL THY STRONG HOLDS SHALL BE LIKE FIG TREES WITH THE FIRSTRIPE FIGS: IF?B THEY BE SHAKEN, THEY SHALL EVEN FALL INTO THE MOUTH OF THE EATER.M# 13 BEHOLD, THY PEOPLE IN THE MIDST OF THEE ARE WOMEN: THE GATES OF THY LANDPK SHALL BE SET WIDE OPEN UNTO THINE ENEMIES: THE FIRE SHALL DEVOUR THY BARS. L# 14 DRAW THEE WATERS FOR THE SIEGE, FORTIFY THY STRONG HOLDS: GO INTO CLAY,1 AND TREAD THE MORTER, MAKE STRONG THE BRICKKILN.EM# 15 THERE SHALL THE FIRE DEVOUR THEE; THE SWORD SHALL CUT THEE OFF, IT SHALL K EAT THEE UP LIKE THE CANKERWORM: MAKE THYSELF MANY AS THE CANKERWORM, MAKE THYSELF MANY AS THE LOCUSTS.NF# 16 THOU HAST MULTIPLIED THY MERCHANTS ABOVE THE STARS OF HEAVEN: THE& CANKERWORM SPOILETH, AND FLEETH AWAY.B# 17 THY CROWNED ARE AS THE LOCUSTS, AND THY CAPTAINS AS THE GREATI GRASSHOPPERS, WHICH CAMP IN THE HEDGES IN THE COLD DAY, BUT WHEN THE SUN:E ARISETH THEY FLEE AWAY, AND THEIR PLACE IS NOT KNOWN WHERE THEY ARE.5L# 18 THY SHEPHERDS SLUMBER, O KING OF ASSYRIA: THY NOBLES SHALL DWELL IN THEM DUST: THY PEOPLE IS SCATTERED UPON THE MOUNTAINS, AND NO MAN GATHERETH THEM.YL# 19 THERE IS NO HEALING OF THY BRUISE; THY WOUND IS GRIEVOUS: ALL THAT HEARM THE BRUIT OF THEE SHALL CLAP THE HANDS OVER THEE: FOR UPON WHOM HATH NOT THYA WICKEDNESS PASSED CONTINUALLY?NS AS THE GREATI GRASSHOPPERS, WHICH CAMP IN THE HEDGES IN THE COLD DAY, BUT WHEN THE SUN:E ARISETH THEY FLEE AWAY, AND THEIR PLACE IS NOT KNOWN WHERE THEY ARE.5L# 18 THY SHEPHERDS SLUMBER, O KING OF ASSYRIA: THY NOBLES SHALL DWELL IN THEM DUST: THY PEOPL* BOOK35 HABAKKUK = CHAPTER 1 2# 1 THE BURDEN WHICH HABAKKUK THE PROPHET DID SEE.K# 2 O LORD, HOW LONG SHALL I CRY, AND THOU WILT NOT HEAR! EVEN CRY OUT UNTOA* THEE OF VIOLENCE, AND THOU WILT NOT SAVE!I# 3 WHY DOST THOU SHEW ME INIQUITY, AND CAUSE ME TO BEHOLD GRIEVANCE? FOR,L SPOILING AND VIOLENCE ARE BEFORE ME: AND THERE ARE THAT RAISE UP STRIFE AND CONTENTION.K# 4 THEREFORE THE LAW IS SLACKED, AND JUDGMENT DOTH NEVER GO FORTH: FOR THEON WICKED DOTH COMPASS ABOUT THE RIGHTEOUS; THEREFORE WRONG JUDGMENT PROCEEDETH.J# 5 BEHOLD YE AMONG THE HEATHEN, AND REGARD, AND WONDER MARVELOUSLY: FOR IK WILL WORK A WORK IN YOUR DAYS WHICH YE WILL NOT BELIEVE, THOUGH IT BE TOLDV YOU.,J# 6 FOR, LO, I RAISE UP THE CHALDEANS, THAT BITTER AND HASTY NATION, WHICHK SHALL MARCH THROUGH THE BREADTH OF THE LAND, TO POSSESS THE DWELLINGPLACES  THAT ARE NOT THEIRS.DJ# 7 THEY ARE TERRIBLE AND DREADFUL: THEIR JUDGMENT AND THEIR DIGNITY SHALL PROCEED OF THEMSELVES. M# 8 THEIR HORSES ALSO ARE SWIFTER THAN THE LEOPARDS, AND ARE MORE FIERCE THANOJ THE EVENING WOLVES: AND THEIR HORSEMEN SHALL SPREAD THEMSELVES, AND THEIRJ HORSEMEN SHALL COME FROM FAR; THEY SHALL FLY AS THE EAGLE THAT HASTETH TO EAT.OJ# 9 THEY SHALL COME ALL FOR VIOLENCE: THEIR FACES SHALL SUP UP AS THE EAST7 WIND, AND THEY SHALL GATHER THE CAPTIVITY AS THE SAND.EM# 10 AND THEY SHALL SCOFF AT THE KINGS, AND THE PRINCES SHALL BE A SCORN UNTO N THEM: THEY SHALL DERIDE EVERY STRONG HOLD; FOR THEY SHALL HEAP DUST, AND TAKE IT.M# 11 THEN SHALL HI00?O?<%X>%+%O-%TADATADATAS MIND CHANGE, AND HE SHALL PASS OVER, AND OFFEND, IMPUTINGT THIS HIS POWER UNTO HIS GOD.SJ# 12 ART THOU NOT FROM EVERLASTING, O LORD MY GOD, MINE HOLY ONE? WE SHALLJ NOT DIE. O LORD, THOU HAST ORDAINED THEM FOR JUDGMENT; AND, O MIGHTY GOD,+ THOU HAST ESTABLISHED THEM FOR CORRECTION.LF# 13 THOU ART OF PURER EYES THAN TO BEHOLD EVIL, AND CANST NOT LOOK ONH INIQUITY: WHEREFORE LOOKEST THOU UPON THEM THAT DEAL TREACHEROUSLY, ANDL HOLDEST THY TONGUE WHEN THE WICKED DEVOURETH THE MAN THAT IS MORE RIGHTEOUS THAN HE?,J# 14 AND MAKEST MEN AS THE FISHES OF THE SEA, AS THE CREEPING THINGS, THAT HAVE NO RULER OVER THEM?EK# 15 THEY TAKE UP ALL OF THEM WITH THE ANGLE, THEY CATCH THEM IN THEIR NET,SD AND GATHER THEM IN THEIR DRAG: THEREFORE THEY REJOICE AND ARE GLAD.I# 16 THEREFORE THEY SACRIFICE UNTO THEIR NET, AND BURN INCENSE UNTO THEIRAF DRAG; BECAUSE BY THEM THEIR PORTION IS FAT, AND THEIR MEAT PLENTEOUS.L# 17 SHALL THEY THEREFORE EMPTY THEIR NET, AND NOT SPARE CONTINUALLY TO SLAY THE NATIONS?G = CHAPTER 2 L# 1 I WILL STAND UPON MY WATCH, AND SET ME UPON THE TOWER, AND WILL WATCH TOJ SEE WHAT HE WILL SAY UNTO ME, AND WHAT I SHALL ANSWER WHEN I AM REPROVED.K# 2 AND THE LORD ANSWERED ME, AND SAID, WRITE THE VISION, AND MAKE IT PLAINH. UPON TABLES, THAT HE MAY RUN THAT READETH IT.H# 3 FOR THE VISION IS YET FOR AN APPOINTED TIME, BUT AT THE END IT SHALLI SPEAK, AND NOT LIE: THOUGH IT TARRY, WAIT FOR IT; BECAUSE IT WILL SURELYR COME, IT WILL NOT TARRY.SK# 4 BEHOLD, HIS SOUL WHICH IS LIFTED UP IS NOT UPRIGHT IN HIM: BUT THE JUST  SHALL LIVE BY HIS FAITH.HJ# 5 YEA ALSO, BECAUSE HE TRANSGRESSETH BY WINE, HE IS A PROUD MAN, NEITHERH KEEPETH AT HOME, WHO ENLARGETH HIS DESIRE AS HELL, AND IS AS DEATH, ANDN CANNOT BE SATISFIED, BUT GATHERETH UNTO HIM ALL NATIONS, AND HEAPETH UNTO HIM ALL PEOPLE:M# 6 SHALL NOT ALL THESE TAKE UP A PARABLE AGAINST HIM, AND A TAUNTING PROVERB:L AGAINST HIM, AND SAY, WOE TO HIM THAT INCREASETH THAT WHICH IS NOT HIS! HOW6 LONG? AND TO HIM THAT LADETH HIMSELF WITH THICK CLAY!H# 7 SHALL THEY NOT RISE UP SUDDENLY THAT SHALL BITE THEE, AND AWAKE THAT9 SHALL VEX THEE, AND THOU SHALT BE FOR BOOTIES UNTO THEM?KI# 8 BECAUSE THOU HAST SPOILED MANY NATIONS, ALL THE REMNANT OF THE PEOPLENN SHALL SPOIL THEE; BECAUSE OF MENS BLOOD, AND FOR THE VIOLENCE OF THE LAND, OF) THE CITY, AND OF ALL THAT DWELL THEREIN. K# 9 WOE TO HIM THAT COVETETH AN EVIL COVETOUSNESS TO HIS HOUSE, THAT HE MAYIG SET HIS NEST ON HIGH, THAT HE MAY BE DELIVERED FROM THE POWER OF EVIL!TK# 10 THOU HAST CONSULTED SHAME TO THY HOUSE BY CUTTING OFF MANY PEOPLE, ANDT HAST SINNED AGAINST THY SOUL.L# 11 FOR THE STONE SHALL CRY OUT OF THE WALL, AND THE BEAM OUT OF THE TIMBER SHALL ANSWER IT.LJ# 12 WOE TO HIM THAT BUILDETH A TOWN WITH BLOOD, AND STABLISHETH A CITY BY INIQUITY!K# 13 BEHOLD, IS IT NOT OF THE LORD OF HOSTS THAT THE PEOPLE SHALL LABOUR INHF THE VERY FIRE, AND THE PEOPLE SHALL WEARY THEMSELVES FOR VERY VANITY?I# 14 FOR THE EARTH SHALL BE FILLED WITH THE KNOWLEDGE OF THE GLORY OF THEO# LORD, AS THE WATERS COVER THE SEA.YM# 15 WOE UNTO HIM THAT GIVETH HIS NEIGHBOUR DRINK, THAT PUTTEST THY BOTTLE TOOL HIM, AND MAKEST HIM DRUNKEN ALSO, THAT THOU MAYEST LOOK ON THEIR NAKEDNESS!G# 16 THOU ART FILLED WITH SHAME FOR GLORY: DRINK THOU ALSO, AND LET THYTL FORESKIN BE UNCOVERED: THE CUP OF THE LORDS RIGHT HAND SHALL BE TURNED UNTO2 THEE, AND SHAMEFUL SPEWING SHALL BE ON THY GLORY.K# 17 FOR THE VIOLENCE OF LEBANON SHALL COVER THEE, AND THE SPOIL OF BEASTS, K WHICH MADE THEM AFRAID, BECAUSE OF MENS BLOOD, AND FOR THE VIOLENCE OF THE52 LAND, OF THE CITY, AND OF ALL THAT DWELL THEREIN.K# 18 WHAT PROFITETH THE GRAVEN IMAGE THAT THE MAKER THEREOF HATH GRAVEN IT;OM THE MOLTEN IMAGE, AND A TEACHER OF LIES, THAT THE MAKER OF HIS WORK TRUSTETHL THEREIN, TO MAKE DUMB IDOLS?UM# 19 WOE UNTO HIM THAT SAITH TO THE WOOD, AWAKE; TO THE DUMB STONE, ARISE, ITEK SHALL TEACH! BEHOLD, IT IS LAID OVER WITH GOLD AND SILVER, AND THERE IS NOV" BREATH AT ALL IN THE MIDST OF IT.G# 20 BUT THE LORD IS IN HIS HOLY TEMPL00??D%5%T6%! !E: LET ALL THE EARTH KEEP SILENCEH BEFORE HIM. = CHAPTER 3 5# 1 A PRAYER OF HABAKKUK THE PROPHET UPON SHIGIONOTH.VL# 2 O LORD, I HAVE HEARD THY SPEECH, AND WAS AFRAID: O LORD, REVIVE THY WORKJ IN THE MIDST OF THE YEARS, IN THE MIDST OF THE YEARS MAKE KNOWN; IN WRATH REMEMBER MERCY.L# 3 GOD CAME FROM TEMAN, AND THE HOLY ONE FROM MOUNT PARAN. SELAH. HIS GLORY; COVERED THE HEAVENS, AND THE EARTH WAS FULL OF HIS PRAISE. M# 4 AND HIS BRIGHTNESS WAS AS THE LIGHT; HE HAD HORNS COMING OUT OF HIS HAND:M' AND THERE WAS THE HIDING OF HIS POWER.FM# 5 BEFORE HIM WENT THE PESTILENCE, AND BURNING COALS WENT FORTH AT HIS FEET.F# 6 HE STOOD, AND MEASURED THE EARTH: HE BEHELD, AND DROVE ASUNDER THEK NATIONS; AND THE EVERLASTING MOUNTAINS WERE SCATTERED, THE PERPETUAL HILLSA# DID BOW: HIS WAYS ARE EVERLASTING.OL# 7 I SAW THE TENTS OF CUSHAN IN AFFLICTION: AND THE CURTAINS OF THE LAND OF MIDIAN DID TREMBLE.K# 8 WAS THE LORD DISPLEASED AGAINST THE RIVERS? WAS THINE ANGER AGAINST THE N RIVERS? WAS THY WRATH AGAINST THE SEA, THAT THOU DIDST RIDE UPON THINE HORSES AND THY CHARIOTS OF SALVATION?NL# 9 THY BOW WAS MADE QUITE NAKED, ACCORDING TO THE OATHS OF THE TRIBES, EVEN: THY WORD. SELAH. THOU DIDST CLEAVE THE EARTH WITH RIVERS.L# 10 THE MOUNTAINS SAW THEE, AND THEY TREMBLED: THE OVERFLOWING OF THE WATERH PASSED BY: THE DEEP UTTERED HIS VOICE, AND LIFTED UP HIS HANDS ON HIGH.L# 11 THE SUN AND MOON STOOD STILL IN THEIR HABITATION: AT THE LIGHT OF THINE> ARROWS THEY WENT, AND AT THE SHINING OF THY GLITTERING SPEAR.L# 12 THOU DIDST MARCH THROUGH THE LAND IN INDIGNATION, THOU DIDST THRESH THE HEATHEN IN ANGER.K# 13 THOU WENTEST FORTH FOR THE SALVATION OF THY PEOPLE, EVEN FOR SALVATIONHM WITH THINE ANOINTED; THOU WOUNDEDST THE HEAD OUT OF THE HOUSE OF THE WICKED,E4 BY DISCOVERING THE FOUNDATION UNTO THE NECK. SELAH.M# 14 THOU DIDST STRIKE THROUGH WITH HIS STAVES THE HEAD OF HIS VILLAGES: THEYML CAME OUT AS A WHIRLWIND TO SCATTER ME: THEIR REJOICING WAS AS TO DEVOUR THE POOR SECRETLY.NK# 15 THOU DIDST WALK THROUGH THE SEA WITH THINE HORSES, THROUGH THE HEAP OFT GREAT WATERS.D# 16 WHEN I HEARD, MY BELLY TREMBLED; MY LIPS QUIVERED AT THE VOICE:N ROTTENNESS ENTERED INTO MY BONES, AND I TREMBLED IN MYSELF, THAT I MIGHT RESTN IN THE DAY OF TROUBLE: WHEN HE COMETH UP UNTO THE PEOPLE, HE WILL INVADE THEM WITH HIS TROOPS.TK# 17 ALTHOUGH THE FIG TREE SHALL NOT BLOSSOM, NEITHER SHALL FRUIT BE IN THEMI VINES; THE LABOUR OF THE OLIVE SHALL FAIL, AND THE FIELDS SHALL YIELD NOPN MEAT; THE FLOCK SHALL BE CUT OFF FROM THE FOLD, AND THERE SHALL BE NO HERD IN THE STALLS:K# 18 YET I WILL REJOICE IN THE LORD, I WILL JOY IN THE GOD OF MY SALVATION. K# 19 THE LORD GOD IS MY STRENGTH, AND HE WILL MAKE MY FEET LIKE HINDS FEET,IM AND HE WILL MAKE ME TO WALK UPON MINE HIGH PLACES. TO THE CHIEF SINGER ON MYV STRINGED INSTRUMENTS.PS.TK# 17 ALTHOUGH THE FIG TREE SHALL NOT BLOSSOM, NEITHER SHALL FRUIT BE IN THEMI VINES; THE LABOUR OF THE OLIVE SHALL FAIL, AND THE FIELDS SHALL YIELD NOPN MEAT; THE FLOCK SHALL BE CUT * BOOK36 ZEPHARIAH = CHAPTER 1 L# 1 THE WORD OF THE LORD WHICH CAME UNTO ZEPHANIAH THE SON OF CUSHI, THE SONK OF GEDALIAH, THE SON OF AMARIAH, THE SON OF HIZKIAH, IN THE DAYS OF JOSIAHA THE SON OF AMON, KING OF JUDAH.H# 2 I WILL UTTERLY CONSUME ALL THINGS FROM OFF THE LAND, SAITH THE LORD.M# 3 I WILL CONSUME MAN AND BEAST; I WILL CONSUME THE FOWLS OF THE HEAVEN, ANDTL THE FISHES OF THE SEA, AND THE STUMBLING BLOCKS WITH THE WICKED: AND I WILL/ CUT OFF MAN FROM OFF THE LAND, SAITH THE LORD.BB# 4 I WILL ALSO STRETCH OUT MINE HAND UPON JUDAH, AND UPON ALL THEK INHABITANTS OF JERUSALEM; AND I WILL CUT OFF THE REMNANT OF BAAL FROM THISA7 PLACE, AND THE NAME OF THE CHEMARIMS WITH THE PRIESTS;SI# 5 AND THEM THAT WORSHIP THE HOST OF HEAVEN UPON THE HOUSETOPS; AND THEMTD THAT WORSHIP AND THAT SWEAR BY THE LORD, AND THAT SWEAR BY MALCHAM;H# 6 AND THEM THAT ARE TURNED BACK FROM THE LORD; AND THOSE THAT HAVE NOT' SOUGHT THE LORD, NOR ENQUIRED FOR HIM.CK# 7 HOLD THY PEACE AT THE PRESENCE OF THE LORD GOD00?O?<%X>%+%O-%TADATADATA: FOR THE DAY OF THE LORDIL IS AT HAND: FOR THE LORD HATH PREPARED A SACRIFICE, HE HATH BID HIS GUESTS.L# 8 AND IT SHALL COME TO PASS IN THE DAY OF THE LORDS SACRIFICE, THAT I WILLM PUNISH THE PRINCES, AND THE KINGS CHILDREN, AND ALL SUCH AS ARE CLOTHED WITHP STRANGE APPAREL. L# 9 IN THE SAME DAY ALSO WILL I PUNISH ALL THOSE THAT LEAP ON THE THRESHOLD,: WHICH FILL THEIR MASTERS HOUSES WITH VIOLENCE AND DECEIT.L# 10 AND IT SHALL COME TO PASS IN THAT DAY, SAITH THE LORD, THAT THERE SHALLN BE THE NOISE OF A CRY FROM THE FISH GATE, AND AN HOWLING FROM THE SECOND, AND! A GREAT CRASHING FROM THE HILLS.TI# 11 HOWL, YE INHABITANTS OF MAKTESH, FOR ALL THE MERCHANT PEOPLE ARE CUT - DOWN; ALL THEY THAT BEAR SILVER ARE CUT OFF.EI# 12 AND IT SHALL COME TO PASS AT THAT TIME, THAT I WILL SEARCH JERUSALEMAM WITH CANDLES, AND PUNISH THE MEN THAT ARE SETTLED ON THEIR LEES: THAT SAY INAA THEIR HEART, THE LORD WILL NOT DO GOOD, NEITHER WILL HE DO EVIL.AC# 13 THEREFORE THEIR GOODS SHALL BECOME A BOOTY, AND THEIR HOUSES ACI DESOLATION: THEY SHALL ALSO BUILD HOUSES, BUT NOT INHABIT THEM; AND THEYN7 SHALL PLANT VINEYARDS, BUT NOT DRINK THE WINE THEREOF. M# 14 THE GREAT DAY OF THE LORD IS NEAR, IT IS NEAR, AND HASTETH GREATLY, EVENOK THE VOICE OF THE DAY OF THE LORD: THE MIGHTY MAN SHALL CRY THERE BITTERLY.EH# 15 THAT DAY IS A DAY OF WRATH, A DAY OF TROUBLE AND DISTRESS, A DAY OFL WASTENESS AND DESOLATION, A DAY OF DARKNESS AND GLOOMINESS, A DAY OF CLOUDS AND THICK DARKNESS,J# 16 A DAY OF THE TRUMPET AND ALARM AGAINST THE FENCED CITIES, AND AGAINST THE HIGH TOWERS.NM# 17 AND I WILL BRING DISTRESS UPON MEN, THAT THEY SHALL WALK LIKE BLIND MEN,EK BECAUSE THEY HAVE SINNED AGAINST THE LORD: AND THEIR BLOOD SHALL BE POURED,* OUT AS DUST, AND THEIR FLESH AS THE DUNG.M# 18 NEITHER THEIR SILVER NOR THEIR GOLD SHALL BE ABLE TO DELIVER THEM IN THEYL DAY OF THE LORDS WRATH; BUT THE WHOLE LAND SHALL BE DEVOURED BY THE FIRE OFN HIS JEALOUSY: FOR HE SHALL MAKE EVEN A SPEEDY RIDDANCE OF ALL THEM THAT DWELL IN THE LAND.G = CHAPTER 2 K# 1 GATHER YOURSELVES TOGETHER, YEA, GATHER TOGETHER, O NATION NOT DESIRED;OK# 2 BEFORE THE DECREE BRING FORTH, BEFORE THE DAY PASS AS THE CHAFF, BEFORESN THE FIERCE ANGER OF THE LORD COME UPON YOU, BEFORE THE DAY OF THE LORDS ANGER COME UPON YOU.IF# 3 SEEK YE THE LORD, ALL YE MEEK OF THE EARTH, WHICH HAVE WROUGHT HISN JUDGMENT; SEEK RIGHTEOUSNESS, SEEK MEEKNESS: IT MAY BE YE SHALL BE HID IN THE DAY OF THE LORDS ANGER.K# 4 FOR GAZA SHALL BE FORSAKEN, AND ASHKELON A DESOLATION: THEY SHALL DRIVE : OUT ASHDOD AT THE NOON DAY, AND EKRON SHALL BE ROOTED UP.M# 5 WOE UNTO THE INHABITANTS OF THE SEA COAST, THE NATION OF THE CHERETHITES! N THE WORD OF THE LORD IS AGAINST YOU; O CANAAN, THE LAND OF THE PHILISTINES, I; WILL EVEN DESTROY THEE, THAT THERE SHALL BE NO INHABITANT.LH# 6 AND THE SEA COAST SHALL BE DWELLINGS AND COTTAGES FOR SHEPHERDS, AND FOLDS FOR FLOCKS.L# 7 AND THE COAST SHALL BE FOR THE REMNANT OF THE HOUSE OF JUDAH; THEY SHALLN FEED THEREUPON: IN THE HOUSES OF ASHKELON SHALL THEY LIE DOWN IN THE EVENING:H FOR THE LORD THEIR GOD SHALL VISIT THEM, AND TURN AWAY THEIR CAPTIVITY.K# 8 I HAVE HEARD THE REPROACH OF MOAB, AND THE REVILINGS OF THE CHILDREN OFTH AMMON, WHEREBY THEY HAVE REPROACHED MY PEOPLE, AND MAGNIFIED THEMSELVES AGAINST THEIR BORDER.K# 9 THEREFORE AS I LIVE, SAITH THE LORD OF HOSTS, THE GOD OF ISRAEL, SURELYDH MOAB SHALL BE AS SODOM, AND THE CHILDREN OF AMMON AS GOMORRAH, EVEN THEN BREEDING OF NETTLES, AND SALTPITS, AND A PERPETUAL DESOLATION: THE RESIDUE OFM MY PEOPLE SHALL SPOIL THEM, AND THE REMNANT OF MY PEOPLE SHALL POSSESS THEM.UK# 10 THIS SHALL THEY HAVE FOR THEIR PRIDE, BECAUSE THEY HAVE REPROACHED ANDL> MAGNIFIED THEMSELVES AGAINST THE PEOPLE OF THE LORD OF HOSTS.L# 11 THE LORD WILL BE TERRIBLE UNTO THEM: FOR HE WILL FAMISH ALL THE GODS OFM THE EARTH; AND MEN SHALL WORSHIP HIM, EVERY ONE FROM HIS PLACE, EVEN ALL THEO ISLES OF THE HEATHEN.7# 12 YE ETHIOPIANS ALSO, YE SHALL BE SLAIN BY MY SWORD.AM# 13 AND HE WILL STRETCH OUT HIS HAND AGAI00??D%5%T6%! !NST THE NORTH, AND DESTROY ASSYRIA;,? AND WILL MAKE NINEVEH A DESOLATION, AND DRY LIKE A WILDERNESS.LI# 14 AND FLOCKS SHALL LIE DOWN IN THE MIDST OF HER, ALL THE BEASTS OF THETM NATIONS: BOTH THE CORMORANT AND THE BITTERN SHALL LODGE IN THE UPPER LINTELSBI OF IT; THEIR VOICE SHALL SING IN THE WINDOWS; DESOLATION SHALL BE IN THE 1 THRESHOLDS; FOR HE SHALL UNCOVER THE CEDAR WORK.OG# 15 THIS IS THE REJOICING CITY THAT DWELT CARELESSLY, THAT SAID IN HERYL HEART, I AM, AND THERE IS NONE BESIDE ME: HOW IS SHE BECOME A DESOLATION, AK PLACE FOR BEASTS TO LIE DOWN IN! EVERY ONE THAT PASSETH BY HER SHALL HISS, AND WAG HIS HAND. = CHAPTER 3 C# 1 WOE TO HER THAT IS FILTHY AND POLLUTED, TO THE OPPRESSING CITY!TM# 2 SHE OBEYED NOT THE VOICE; SHE RECEIVED NOT CORRECTION; SHE TRUSTED NOT INI( THE LORD; SHE DREW NOT NEAR TO HER GOD.L# 3 HER PRINCES WITHIN HER ARE ROARING LIONS; HER JUDGES ARE EVENING WOLVES;) THEY GNAW NOT THE BONES TILL THE MORROW.DM# 4 HER PROPHETS ARE LIGHT AND TREACHEROUS PERSONS: HER PRIESTS HAVE POLLUTEDT3 THE SANCTUARY, THEY HAVE DONE VIOLENCE TO THE LAW.HI# 5 THE JUST LORD IS IN THE MIDST THEREOF; HE WILL NOT DO INIQUITY: EVERYOL MORNING DOTH HE BRING HIS JUDGMENT TO LIGHT, HE FAILETH NOT; BUT THE UNJUST KNOWETH NO SHAME.G# 6 I HAVE CUT OFF THE NATIONS: THEIR TOWERS ARE DESOLATE; I MADE THEIR I STREETS WASTE, THAT NONE PASSETH BY: THEIR CITIES ARE DESTROYED, SO THATI0 THERE IS NO MAN, THAT THERE IS NONE INHABITANT.M# 7 I SAID, SURELY THOU WILT FEAR ME, THOU WILT RECEIVE INSTRUCTION; SO THEIRUI DWELLING SHOULD NOT BE CUT OFF, HOWSOEVER I PUNISHED THEM: BUT THEY ROSER' EARLY, AND CORRUPTED ALL THEIR DOINGS. K# 8 THEREFORE WAIT YE UPON ME, SAITH THE LORD, UNTIL THE DAY THAT I RISE UPTG TO THE PREY: FOR MY DETERMINATION IS TO GATHER THE NATIONS, THAT I MAYIN ASSEMBLE THE KINGDOMS, TO POUR UPON THEM MINE INDIGNATION, EVEN ALL MY FIERCEI ANGER: FOR ALL THE EARTH SHALL BE DEVOURED WITH THE FIRE OF MY JEALOUSY.BI# 9 FOR THEN WILL I TURN TO THE PEOPLE A PURE LANGUAGE, THAT THEY MAY ALL;? CALL UPON THE NAME OF THE LORD, TO SERVE HIM WITH ONE CONSENT. K# 10 FROM BEYOND THE RIVERS OF ETHIOPIA MY SUPPLIANTS, EVEN THE DAUGHTER OF ) MY DISPERSED, SHALL BRING MINE OFFERING.DK# 11 IN THAT DAY SHALT THOU NOT BE ASHAMED FOR ALL THY DOINGS, WHEREIN THOUNL HAST TRANSGRESSED AGAINST ME: FOR THEN I WILL TAKE AWAY OUT OF THE MIDST OFG THEE THEM THAT REJOICE IN THY PRIDE, AND THOU SHALT NO MORE BE HAUGHTYR BECAUSE OF MY HOLY MOUNTAIN.NM# 12 I WILL ALSO LEAVE IN THE MIDST OF THEE AN AFFLICTED AND POOR PEOPLE, ANDN* THEY SHALL TRUST IN THE NAME OF THE LORD.I# 13 THE REMNANT OF ISRAEL SHALL NOT DO INIQUITY, NOR SPEAK LIES; NEITHERTN SHALL A DECEITFUL TONGUE BE FOUND IN THEIR MOUTH: FOR THEY SHALL FEED AND LIE' DOWN, AND NONE SHALL MAKE THEM AFRAID.NL# 14 SING, O DAUGHTER OF ZION; SHOUT, O ISRAEL; BE GLAD AND REJOICE WITH ALL$ THE HEART, O DAUGHTER OF JERUSALEM.J# 15 THE LORD HATH TAKEN AWAY THY JUDGMENTS, HE HATH CAST OUT THINE ENEMY:K THE KING OF ISRAEL, EVEN THE LORD, IS IN THE MIDST OF THEE: THOU SHALT NOTN SEE EVIL ANY MORE.NK# 16 IN THAT DAY IT SHALL BE SAID TO JERUSALEM, FEAR THOU NOT: AND TO ZION,  LET NOT THINE HANDS BE SLACK.K# 17 THE LORD THY GOD IN THE MIDST OF THEE IS MIGHTY; HE WILL SAVE, HE WILLAL REJOICE OVER THEE WITH JOY; HE WILL REST IN HIS LOVE, HE WILL JOY OVER THEE WITH SINGING.K# 18 I WILL GATHER THEM THAT ARE SORROWFUL FOR THE SOLEMN ASSEMBLY, WHO AREK2 OF THEE, TO WHOM THE REPROACH OF IT WAS A BURDEN.L# 19 BEHOLD, AT THAT TIME I WILL UNDO ALL THAT AFFLICT THEE: AND I WILL SAVEJ HER THAT HALTETH, AND GATHER HER THAT WAS DRIVEN OUT; AND I WILL GET THEMA PRAISE AND FAME IN EVERY LAND WHERE THEY HAVE BEEN PUT TO SHAME.LM# 20 AT THAT TIME WILL I BRING YOU AGAIN, EVEN IN THE TIME THAT I GATHER YOU:EN FOR I WILL MAKE YOU A NAME AND A PRAISE AMONG ALL PEOPLE OF THE EARTH, WHEN I; TURN BACK YOUR CAPTIVITY BEFORE YOUR EYES, SAITH THE LORD.SSEMBLY, WHO AREK2 OF THEE, TO WHOM THE REPROACH OF IT WAS A BURDEN.L# 19 BEHOLD, AT THAT TIME I WILL UNDO ALL THAT AFFLI00?O?<%X>%+%O-%TADATADATA* BOOK37 HAGGAIL = CHAPTER 1 K# 1 IN THE SECOND YEAR OF DARIUS THE KING, IN THE SIXTH MONTH, IN THE FIRST G DAY OF THE MONTH, CAME THE WORD OF THE LORD BY HAGGAI THE PROPHET UNTOTM ZERUBBABEL THE SON OF SHEALTIEL, GOVERNOR OF JUDAH, AND TO JOSHUA THE SON OFA# JOSEDECH, THE HIGH PRIEST, SAYING,PM# 2 THUS SPEAKETH THE LORD OF HOSTS, SAYING, THIS PEOPLE SAY, THE TIME IS NOTH5 COME, THE TIME THAT THE LORDS HOUSE SHOULD BE BUILT.HA# 3 THEN CAME THE WORD OF THE LORD BY HAGGAI THE PROPHET, SAYING,TL# 4 IS IT TIME FOR YOU, O YE, TO DWELL IN YOUR CIELED HOUSES, AND THIS HOUSE LIE WASTE?IC# 5 NOW THEREFORE THUS SAITH THE LORD OF HOSTS; CONSIDER YOUR WAYS.DK# 6 YE HAVE SOWN MUCH, AND BRING IN LITTLE; YE EAT, BUT YE HAVE NOT ENOUGH;UM YE DRINK, BUT YE ARE NOT FILLED WITH DRINK; YE CLOTHE YOU, BUT THERE IS NONESH WARM; AND HE THAT EARNETH WAGES EARNETH WAGES TO PUT IT INTO A BAG WITH HOLES.M5# 7 THUS SAITH THE LORD OF HOSTS; CONSIDER YOUR WAYS. J# 8 GO UP TO THE MOUNTAIN, AND BRING WOOD, AND BUILD THE HOUSE; AND I WILL> TAKE PLEASURE IN IT, AND I WILL BE GLORIFIED, SAITH THE LORD.I# 9 YE LOOKED FOR MUCH, AND, LO IT CAME TO LITTLE; AND WHEN YE BROUGHT ITN HOME, I DID BLOW UPON IT. WHY? SAITH THE LORD OF HOSTS. BECAUSE OF MINE HOUSE8 THAT IS WASTE, AND YE RUN EVERY MAN UNTO HIS OWN HOUSE.G# 10 THEREFORE THE HEAVEN OVER YOU IS STAYED FROM DEW, AND THE EARTH IS  STAYED FROM HER FRUIT.SJ# 11 AND I CALLED FOR A DROUGHT UPON THE LAND, AND UPON THE MOUNTAINS, ANDL UPON THE CORN, AND UPON THE NEW WINE, AND UPON THE OIL, AND UPON THAT WHICHK THE GROUND BRINGETH FORTH, AND UPON MEN, AND UPON CATTLE, AND UPON ALL THE  LABOUR OF THE HANDS.WJ# 12 THEN ZERUBBABEL THE SON OF SHEALTIEL, AND JOSHUA THE SON OF JOSEDECH,M THE HIGH PRIEST, WITH ALL THE REMNANT OF THE PEOPLE, OBEYED THE VOICE OF THE.K LORD THEIR GOD, AND THE WORDS OF HAGGAI THE PROPHET, AS THE LORD THEIR GODS7 HAD SENT HIM, AND THE PEOPLE DID FEAR BEFORE THE LORD.PH# 13 THEN SPAKE HAGGAI THE LORDS MESSENGER IN THE LORDS MESSAGE UNTO THE/ PEOPLE, SAYING, I AM WITH YOU, SAITH THE LORD.EK# 14 AND THE LORD STIRRED UP THE SPIRIT OF ZERUBBABEL THE SON OF SHEALTIEL,BJ GOVERNOR OF JUDAH, AND THE SPIRIT OF JOSHUA THE SON OF JOSEDECH, THE HIGHK PRIEST, AND THE SPIRIT OF ALL THE REMNANT OF THE PEOPLE; AND THEY CAME ANDY7 DID WORK IN THE HOUSE OF THE LORD OF HOSTS, THEIR GOD,AL# 15 IN THE FOUR AND TWENTIETH DAY OF THE SIXTH MONTH, IN THE SECOND YEAR OF DARIUS THE KING.P = CHAPTER 2 M# 1 IN THE SEVENTH MONTH, IN THE ONE AND TWENTIETH DAY OF THE MONTH, CAME THEI0 WORD OF THE LORD BY THE PROPHET HAGGAI, SAYING,K# 2 SPEAK NOW TO ZERUBBABEL THE SON OF SHEALTIEL, GOVERNOR OF JUDAH, AND TOHG JOSHUA THE SON OF JOSEDECH, THE HIGH PRIEST, AND TO THE RESIDUE OF THEE PEOPLE, SAYING,L# 3 WHO IS LEFT AMONG YOU THAT SAW THIS HOUSE IN HER FIRST GLORY? AND HOW DOF YE SEE IT NOW? IS IT NOT IN YOUR EYES IN COMPARISON OF IT AS NOTHING?M# 4 YET NOW BE STRONG, O ZERUBBABEL, SAITH THE LORD; AND BE STRONG, O JOSHUA,NL SON OF JOSEDECH, THE HIGH PRIEST; AND BE STRONG, ALL YE PEOPLE OF THE LAND,F SAITH THE LORD, AND WORK: FOR I AM WITH YOU, SAITH THE LORD OF HOSTS:H# 5 ACCORDING TO THE WORD THAT I COVENANTED WITH YOU WHEN YE CAME OUT OF6 EGYPT, SO MY SPIRIT REMAINETH AMONG YOU: FEAR YE NOT.K# 6 FOR THUS SAITH THE LORD OF HOSTS; YET ONCE, IT IS A LITTLE WHILE, AND I F WILL SHAKE THE HEAVENS, AND THE EARTH, AND THE SEA, AND THE DRY LAND;K# 7 AND I WILL SHAKE ALL NATIONS, AND THE DESIRE OF ALL NATIONS SHALL COME:H@ AND I WILL FILL THIS HOUSE WITH GLORY, SAITH THE LORD OF HOSTS.F# 8 THE SILVER IS MINE, AND THE GOLD IS MINE, SAITH THE LORD OF HOSTS.M# 9 THE GLORY OF THIS LATTER HOUSE SHALL BE GREATER THAN OF THE FORMER, SAITHCJ THE LORD OF HOSTS: AND IN THIS PLACE WILL I GIVE PEACE, SAITH THE LORD OF HOSTS.HL# 10 IN THE FOUR AND TWENTIETH DAY OF THE NINTH MONTH, IN THE SECOND YEAR OFA DARIUS, CAME THE WORD OF THE LORD BY HAGGAI THE PROPHET, SAYING,LJ# 11 THUS SAITH THE LORD OF HOSTS; ASK NOW THE PRIESTS CONCERNING THE LAW, SAYING,K# 12 IF ONE BEAR HOLY FLES00??D%5%T6%! !H IN THE SKIRT OF HIS GARMENT, AND WITH HIS SKIRTOL DO TOUCH BREAD, OR POTTAGE, OR WINE, OR OIL, OR ANY MEAT, SHALL IT BE HOLY?' AND THE PRIESTS ANSWERED AND SAID, NO.TI# 13 THEN SAID HAGGAI, IF ONE THAT IS UNCLEAN BY A DEAD BODY TOUCH ANY OFHK THESE, SHALL IT BE UNCLEAN? AND THE PRIESTS ANSWERED AND SAID, IT SHALL BEY UNCLEAN.RM# 14 THEN ANSWERED HAGGAI, AND SAID, SO IS THIS PEOPLE, AND SO IS THIS NATION I BEFORE ME, SAITH THE LORD; AND SO IS EVERY WORK OF THEIR HANDS; AND THATI# WHICH THEY OFFER THERE IS UNCLEAN. J# 15 AND NOW, I PRAY YOU, CONSIDER FROM THIS DAY AND UPWARD, FROM BEFORE A7 STONE WAS LAID UPON A STONE IN THE TEMPLE OF THE LORD:EH# 16 SINCE THOSE DAYS WERE, WHEN ONE CAME TO AN HEAP OF TWENTY MEASURES,H THERE WERE BUT TEN: WHEN ONE CAME TO THE PRESSFAT FOR TO DRAW OUT FIFTY1 VESSELS OUT OF THE PRESS, THERE WERE BUT TWENTY.WG# 17 I SMOTE YOU WITH BLASTING AND WITH MILDEW AND WITH HAIL IN ALL THE @ LABOURS OF YOUR HANDS; YET YE TURNED NOT TO ME, SAITH THE LORD.K# 18 CONSIDER NOW FROM THIS DAY AND UPWARD, FROM THE FOUR AND TWENTIETH DAYON OF THE NINTH MONTH, EVEN FROM THE DAY THAT THE FOUNDATION OF THE LORDS TEMPLE WAS LAID, CONSIDER IT.EM# 19 IS THE SEED YET IN THE BARN? YEA, AS YET THE VINE, AND THE FIG TREE, AND K THE POMEGRANATE, AND THE OLIVE TREE, HATH NOT BROUGHT FORTH: FROM THIS DAY  WILL I BLESS YOU.D# 20 AND AGAIN THE WORD OF THE LORD CAME UNTO HAGGAI IN THE FOUR AND$ TWENTIETH DAY OF THE MONTH, SAYING,M# 21 SPEAK TO ZERUBBABEL, GOVERNOR OF JUDAH, SAYING, I WILL SHAKE THE HEAVENS  AND THE EARTH;FH# 22 AND I WILL OVERTHROW THE THRONE OF KINGDOMS, AND I WILL DESTROY THEL STRENGTH OF THE KINGDOMS OF THE HEATHEN; AND I WILL OVERTHROW THE CHARIOTS,N AND THOSE THAT RIDE IN THEM; AND THE HORSES AND THEIR RIDERS SHALL COME DOWN,' EVERY ONE BY THE SWORD OF HIS BROTHER.RM# 23 IN THAT DAY, SAITH THE LORD OF HOSTS, WILL I TAKE THEE, O ZERUBBABEL, MY G SERVANT, THE SON OF SHEALTIEL, SAITH THE LORD, AND WILL MAKE THEE AS AT9 SIGNET: FOR I HAVE CHOSEN THEE, SAITH THE LORD OF HOSTS.EAVENS  AND THE EARTH;FH# 22 AND I WILL OVERTHROW THE THRONE OF KINGDOMS, AND I WILL DESTROY THEL STRENGTH OF THE KINGDOMS OF THE HEATHEN; AND I WILL OVERTHROW THE CHARIOTS,N AND THOSE THAT RIDE IN THEM; AND THE HORSES AND THEIR RIDERS SHALL COME DOWN,' EVERY ONE BY THE SWORD OF HIS BROTHER.RM# 23 IN THAT DAY, SAITH THE LORD OF HOSTS, WILL I TAKE THEE, O ZERUBBABEL, MY G SERVANT, THE SON OF SHEALTIEL, SAITH THE LORD, AND WILL MAKE THEE AS AT9 SIGNET: FOR I HAVE CHOSEN THEE, SAITH THE LOR* BOOK38 ZECHARIAH = CHAPTER 1 K# 1 IN THE EIGHTH MONTH, IN THE SECOND YEAR OF DARIUS, CAME THE WORD OF THEH LORD UNTO ZECHARIAH, THE SON OF BERECHIAH, THE SON OF IDDO THE PROPHET, SAYING,9# 2 THE LORD HATH BEEN SORE DISPLEASED WITH YOUR FATHERS.LL# 3 THEREFORE SAY THOU UNTO THEM, THUS SAITH THE LORD OF HOSTS; TURN YE UNTOI ME, SAITH THE LORD OF HOSTS, AND I WILL TURN UNTO YOU, SAITH THE LORD OF  HOSTS.IH# 4 BE YE NOT AS YOUR FATHERS, UNTO WHOM THE FORMER PROPHETS HAVE CRIED,K SAYING, THUS SAITH THE LORD OF HOSTS; TURN YE NOW FROM YOUR EVIL WAYS, AND,M FROM YOUR EVIL DOINGS: BUT THEY DID NOT HEAR, NOR HEARKEN UNTO ME, SAITH THE  LORD.J# 5 YOUR FATHERS, WHERE ARE THEY? AND THE PROPHETS, DO THEY LIVE FOR EVER?M# 6 BUT MY WORDS AND MY STATUTES, WHICH I COMMANDED MY SERVANTS THE PROPHETS,TL DID THEY NOT TAKE HOLD OF YOUR FATHERS? AND THEY RETURNED AND SAID, LIKE ASN THE LORD OF HOSTS THOUGHT TO DO UNTO US, ACCORDING TO OUR WAYS, AND ACCORDING) TO OUR DOINGS, SO HATH HE DEALT WITH US.TM# 7 UPON THE FOUR AND TWENTIETH DAY OF THE ELEVENTH MONTH, WHICH IS THE MONTHED SEBAT, IN THE SECOND YEAR OF DARIUS, CAME THE WORD OF THE LORD UNTOF ZECHARIAH, THE SON OF BERECHIAH, THE SON OF IDDO THE PROPHET, SAYING,J# 8 I SAW BY NIGHT, AND BEHOLD A MAN RIDING UPON A RED HORSE, AND HE STOODN AMONG THE MYRTLE TREES THAT WERE IN THE BOTTOM; AND BEHIND HIM WERE THERE RED HORSES, SPECKLED, AND WHITE.TM# 9 THEN SAID I, O MY LORD, WHAT ARE THESE? AND THE ANGEL THAT TALKED WITH MEH. SAID UNTO ME, I WILL SHEW00?O?<%X>%+%O-%TADATADATA THEE WHAT THESE BE.K# 10 AND THE MAN THAT STOOD AMONG THE MYRTLE TREES ANSWERED AND SAID, THESE G ARE THEY WHOM THE LORD HATH SENT TO WALK TO AND FRO THROUGH THE EARTH.RH# 11 AND THEY ANSWERED THE ANGEL OF THE LORD THAT STOOD AMONG THE MYRTLEK TREES, AND SAID, WE HAVE WALKED TO AND FRO THROUGH THE EARTH, AND, BEHOLD,W- ALL THE EARTH SITTETH STILL, AND IS AT REST.DL# 12 THEN THE ANGEL OF THE LORD ANSWERED AND SAID, O LORD OF HOSTS, HOW LONGJ WILT THOU NOT HAVE MERCY ON JERUSALEM AND ON THE CITIES OF JUDAH, AGAINST@ WHICH THOU HAST HAD INDIGNATION THESE THREESCORE AND TEN YEARS?L# 13 AND THE LORD ANSWERED THE ANGEL THAT TALKED WITH ME WITH GOOD WORDS AND COMFORTABLE WORDS.AL# 14 SO THE ANGEL THAT COMMUNED WITH ME SAID UNTO ME, CRY THOU, SAYING, THUSN SAITH THE LORD OF HOSTS; I AM JEALOUS FOR JERUSALEM AND FOR ZION WITH A GREAT JEALOUSY.K# 15 AND I AM VERY SORE DISPLEASED WITH THE HEATHEN THAT ARE AT EASE: FOR ILE WAS BUT A LITTLE DISPLEASED, AND THEY HELPED FORWARD THE AFFLICTION.HL# 16 THEREFORE THUS SAITH THE LORD; I AM RETURNED TO JERUSALEM WITH MERCIES:L MY HOUSE SHALL BE BUILT IN IT, SAITH THE LORD OF HOSTS, AND A LINE SHALL BE STRETCHED FORTH UPON JERUSALEM.E# 17 CRY YET, SAYING, THUS SAITH THE LORD OF HOSTS; MY CITIES THROUGHIL PROSPERITY SHALL YET BE SPREAD ABROAD; AND THE LORD SHALL YET COMFORT ZION, AND SHALL YET CHOOSE JERUSALEM.@# 18 THEN LIFTED I UP MINE EYES, AND SAW, AND BEHOLD FOUR HORNS.I# 19 AND I SAID UNTO THE ANGEL THAT TALKED WITH ME, WHAT BE THESE? AND HE I ANSWERED ME, THESE ARE THE HORNS WHICH HAVE SCATTERED JUDAH, ISRAEL, AND JERUSALEM.L,# 20 AND THE LORD SHEWED ME FOUR CARPENTERS.L# 21 THEN SAID I, WHAT COME THESE TO DO? AND HE SPAKE, SAYING, THESE ARE THEK HORNS WHICH HAVE SCATTERED JUDAH, SO THAT NO MAN DID LIFT UP HIS HEAD: BUT J THESE ARE COME TO FRAY THEM, TO CAST OUT THE HORNS OF THE GENTILES, WHICH; LIFTED UP THEIR HORN OVER THE LAND OF JUDAH TO SCATTER IT. = CHAPTER 2 N# 1 I LIFTED UP MINE EYES AGAIN, AND LOOKED, AND BEHOLD A MAN WITH A MEASURING LINE IN HIS HAND.D# 2 THEN SAID I, WHITHER GOEST THOU? AND HE SAID UNTO ME, TO MEASUREF JERUSALEM, TO SEE WHAT IS THE BREADTH THEREOF, AND WHAT IS THE LENGTH THEREOF. L# 3 AND, BEHOLD, THE ANGEL THAT TALKED WITH ME WENT FORTH, AND ANOTHER ANGEL WENT OUT TO MEET HIM,L# 4 AND SAID UNTO HIM, RUN, SPEAK TO THIS YOUNG MAN, SAYING, JERUSALEM SHALLH BE INHABITED AS TOWNS WITHOUT WALLS FOR THE MULTITUDE OF MEN AND CATTLE THEREIN: K# 5 FOR I, SAITH THE LORD, WILL BE UNTO HER A WALL OF FIRE ROUND ABOUT, ANDN' WILL BE THE GLORY IN THE MIDST OF HER.GL# 6 HO, HO, COME FORTH, AND FLEE FROM THE LAND OF THE NORTH, SAITH THE LORD:N FOR I HAVE SPREAD YOU ABROAD AS THE FOUR WINDS OF THE HEAVEN, SAITH THE LORD.H# 7 DELIVER THYSELF, O ZION, THAT DWELLEST WITH THE DAUGHTER OF BABYLON.J# 8 FOR THUS SAITH THE LORD OF HOSTS; AFTER THE GLORY HATH HE SENT ME UNTON THE NATIONS WHICH SPOILED YOU: FOR HE THAT TOUCHETH YOU TOUCHETH THE APPLE OF HIS EYE.OL# 9 FOR, BEHOLD, I WILL SHAKE MINE HAND UPON THEM, AND THEY SHALL BE A SPOILJ TO THEIR SERVANTS: AND YE SHALL KNOW THAT THE LORD OF HOSTS HATH SENT ME.L# 10 SING AND REJOICE, O DAUGHTER OF ZION: FOR, LO, I COME, AND I WILL DWELL& IN THE MIDST OF THEE, SAITH THE LORD.K# 11 AND MANY NATIONS SHALL BE JOINED TO THE LORD IN THAT DAY, AND SHALL BE K MY PEOPLE: AND I WILL DWELL IN THE MIDST OF THEE, AND THOU SHALT KNOW THATN* THE LORD OF HOSTS HATH SENT ME UNTO THEE.M# 12 AND THE LORD SHALL INHERIT JUDAH HIS PORTION IN THE HOLY LAND, AND SHALLN CHOOSE JERUSALEM AGAIN.L# 13 BE SILENT, O ALL FLESH, BEFORE THE LORD: FOR HE IS RAISED UP OUT OF HIS HOLY HABITATION.N = CHAPTER 3 L# 1 AND HE SHEWED ME JOSHUA THE HIGH PRIEST STANDING BEFORE THE ANGEL OF THE: LORD, AND SATAN STANDING AT HIS RIGHT HAND TO RESIST HIM.I# 2 AND THE LORD SAID UNTO SATAN, THE LORD REBUKE THEE, O SATAN; EVEN THESM LORD THAT HATH CHOSEN JERUSALEM REBUKE THEE: IS NOT THIS A BRAND PLUCKED OUT. OF THE FIRE?LL# 3 NOW JOSHUA WAS CLOTHED WITH FILTHY GARMENTS, AND STOOD BEFORE THE ANGEL.L# 4 00??D%5%T6%! !AND HE ANSWERED AND SPAKE UNTO THOSE THAT STOOD BEFORE HIM, SAYING, TAKEH AWAY THE FILTHY GARMENTS FROM HIM. AND UNTO HIM HE SAID, BEHOLD, I HAVEL CAUSED THINE INIQUITY TO PASS FROM THEE, AND I WILL CLOTHE THEE WITH CHANGE OF RAIMENT.K# 5 AND I SAID, LET THEM SET A FAIR MITRE UPON HIS HEAD. SO THEY SET A FAIR N MITRE UPON HIS HEAD, AND CLOTHED HIM WITH GARMENTS. AND THE ANGEL OF THE LORD STOOD BY.<# 6 AND THE ANGEL OF THE LORD PROTESTED UNTO JOSHUA, SAYING,K# 7 THUS SAITH THE LORD OF HOSTS; IF THOU WILT WALK IN MY WAYS, AND IF THOUEN WILT KEEP MY CHARGE, THEN THOU SHALT ALSO JUDGE MY HOUSE, AND SHALT ALSO KEEPJ MY COURTS, AND I WILL GIVE THEE PLACES TO WALK AMONG THESE THAT STAND BY.M# 8 HEAR NOW, O JOSHUA THE HIGH PRIEST, THOU, AND THY FELLOWS THAT SIT BEFOREFG THEE: FOR THEY ARE MEN WONDERED AT: FOR, BEHOLD, I WILL BRING FORTH MYL SERVANT THE BRANCH.M# 9 FOR BEHOLD THE STONE THAT I HAVE LAID BEFORE JOSHUA; UPON ONE STONE SHALLEM BE SEVEN EYES: BEHOLD, I WILL ENGRAVE THE GRAVING THEREOF, SAITH THE LORD OFM? HOSTS, AND I WILL REMOVE THE INIQUITY OF THAT LAND IN ONE DAY.JF# 10 IN THAT DAY, SAITH THE LORD OF HOSTS, SHALL YE CALL EVERY MAN HIS1 NEIGHBOUR UNDER THE VINE AND UNDER THE FIG TREE.W = CHAPTER 4 M# 1 AND THE ANGEL THAT TALKED WITH ME CAME AGAIN, AND WAKED ME, AS A MAN THATO IS WAKENED OUT OF HIS SLEEP.BL# 2 AND SAID UNTO ME, WHAT SEEST THOU? AND I SAID, I HAVE LOOKED, AND BEHOLDI A CANDLESTICK ALL OF GOLD, WITH A BOWL UPON THE TOP OF IT, AND HIS SEVENAJ LAMPS THEREON, AND SEVEN PIPES TO THE SEVEN LAMPS, WHICH ARE UPON THE TOP THEREOF:HK# 3 AND TWO OLIVE TREES BY IT, ONE UPON THE RIGHT SIDE OF THE BOWL, AND THEL" OTHER UPON THE LEFT SIDE THEREOF.J# 4 SO I ANSWERED AND SPAKE TO THE ANGEL THAT TALKED WITH ME, SAYING, WHAT ARE THESE, MY LORD?I# 5 THEN THE ANGEL THAT TALKED WITH ME ANSWERED AND SAID UNTO ME, KNOWESTT1 THOU NOT WHAT THESE BE? AND I SAID, NO, MY LORD.NL# 6 THEN HE ANSWERED AND SPAKE UNTO ME, SAYING, THIS IS THE WORD OF THE LORDM UNTO ZERUBBABEL, SAYING, NOT BY MIGHT, NOR BY POWER, BUT BY MY SPIRIT, SAITHT THE LORD OF HOSTS.NI# 7 WHO ART THOU, O GREAT MOUNTAIN? BEFORE ZERUBBABEL THOU SHALT BECOME AHN PLAIN: AND HE SHALL BRING FORTH THE HEADSTONE THEREOF WITH SHOUTINGS, CRYING, GRACE, GRACE UNTO IT.7# 8 MOREOVER THE WORD OF THE LORD CAME UNTO ME, SAYING,WM# 9 THE HANDS OF ZERUBBABEL HAVE LAID THE FOUNDATION OF THIS HOUSE; HIS HANDS,N SHALL ALSO FINISH IT; AND THOU SHALT KNOW THAT THE LORD OF HOSTS HATH SENT ME UNTO YOU.K# 10 FOR WHO HATH DESPISED THE DAY OF SMALL THINGS? FOR THEY SHALL REJOICE,TK AND SHALL SEE THE PLUMMET IN THE HAND OF ZERUBBABEL WITH THOSE SEVEN; THEYEH ARE THE EYES OF THE LORD, WHICH RUN TO AND FRO THROUGH THE WHOLE EARTH.L# 11 THEN ANSWERED I, AND SAID UNTO HIM, WHAT ARE THESE TWO OLIVE TREES UPONB THE RIGHT SIDE OF THE CANDLESTICK AND UPON THE LEFT SIDE THEREOF?E# 12 AND I ANSWERED AGAIN, AND SAID UNTO HIM, WHAT BE THESE TWO OLIVEDH BRANCHES WHICH THROUGH THE TWO GOLDEN PIPES EMPTY THE GOLDEN OIL OUT OF THEMSELVES?M# 13 AND HE ANSWERED ME AND SAID, KNOWEST THOU NOT WHAT THESE BE? AND I SAID,M NO, MY LORD.OM# 14 THEN SAID HE, THESE ARE THE TWO ANOINTED ONES, THAT STAND BY THE LORD OFN THE WHOLE EARTH.H = CHAPTER 5 K# 1 THEN I TURNED, AND LIFTED UP MINE EYES, AND LOOKED, AND BEHOLD A FLYINGT ROLL.H# 2 AND HE SAID UNTO ME, WHAT SEEST THOU? AND I ANSWERED, I SEE A FLYINGG ROLL; THE LENGTH THEREOF IS TWENTY CUBITS, AND THE BREADTH THEREOF TENH CUBITS.M# 3 THEN SAID HE UNTO ME, THIS IS THE CURSE THAT GOETH FORTH OVER THE FACE OFDN THE WHOLE EARTH: FOR EVERY ONE THAT STEALETH SHALL BE CUT OFF AS ON THIS SIDEN ACCORDING TO IT; AND EVERY ONE THAT SWEARETH SHALL BE CUT OFF AS ON THAT SIDE ACCORDING TO IT.HK# 4 I WILL BRING IT FORTH, SAITH THE LORD OF HOSTS, AND IT SHALL ENTER INTOAN THE HOUSE OF THE THIEF, AND INTO THE HOUSE OF HIM THAT SWEARETH FALSELY BY MYJ NAME: AND IT SHALL REMAIN IN THE MIDST OF HIS HOUSE, AND SHALL CONSUME IT0 WITH THE TIMBER THEREOF AND THE STONES THEREOF.L# 5 THEN THE ANGEL THAT TALKED W00?O?<%X>%+%O-%TADATADATAITH ME WENT FORTH, AND SAID UNTO ME, LIFT UP7 NOW THINE EYES, AND SEE WHAT IS THIS THAT GOETH FORTH.RK# 6 AND I SAID, WHAT IS IT? AND HE SAID, THIS IS AN EPHAH THAT GOETH FORTH.CC HE SAID MOREOVER, THIS IS THEIR RESEMBLANCE THROUGH ALL THE EARTH.NJ# 7 AND, BEHOLD, THERE WAS LIFTED UP A TALENT OF LEAD: AND THIS IS A WOMAN( THAT SITTETH IN THE MIDST OF THE EPHAH.I# 8 AND HE SAID, THIS IS WICKEDNESS. AND HE CAST IT INTO THE MIDST OF THEB> EPHAH; AND HE CAST THE WEIGHT OF LEAD UPON THE MOUTH THEREOF.K# 9 THEN LIFTED I UP MINE EYES, AND LOOKED, AND, BEHOLD, THERE CAME OUT TWOAM WOMEN, AND THE WIND WAS IN THEIR WINGS; FOR THEY HAD WINGS LIKE THE WINGS OFAH A STORK: AND THEY LIFTED UP THE EPHAH BETWEEN THE EARTH AND THE HEAVEN.L# 10 THEN SAID I TO THE ANGEL THAT TALKED WITH ME, WHITHER DO THESE BEAR THE EPHAH? L# 11 AND HE SAID UNTO ME, TO BUILD IT AN HOUSE IN THE LAND OF SHINAR: AND IT7 SHALL BE ESTABLISHED, AND SET THERE UPON HER OWN BASE.H = CHAPTER 6 N# 1 AND I TURNED, AND LIFTED UP MINE EYES, AND LOOKED, AND, BEHOLD, THERE CAMEE FOUR CHARIOTS OUT FROM BETWEEN TWO MOUNTAINS; AND THE MOUNTAINS WEREH MOUNTAINS OF BRASS.I# 2 IN THE FIRST CHARIOT WERE RED HORSES; AND IN THE SECOND CHARIOT BLACKT HORSES;L# 3 AND IN THE THIRD CHARIOT WHITE HORSES; AND IN THE FOURTH CHARIOT GRISLED AND BAY HORSES.I# 4 THEN I ANSWERED AND SAID UNTO THE ANGEL THAT TALKED WITH ME, WHAT ARER THESE, MY LORD?J# 5 AND THE ANGEL ANSWERED AND SAID UNTO ME, THESE ARE THE FOUR SPIRITS OFL THE HEAVENS, WHICH GO FORTH FROM STANDING BEFORE THE LORD OF ALL THE EARTH.K# 6 THE BLACK HORSES WHICH ARE THEREIN GO FORTH INTO THE NORTH COUNTRY; ANDRI THE WHITE GO FORTH AFTER THEM; AND THE GRISLED GO FORTH TOWARD THE SOUTHL COUNTRY.EL# 7 AND THE BAY WENT FORTH, AND SOUGHT TO GO THAT THEY MIGHT WALK TO AND FROK THROUGH THE EARTH: AND HE SAID, GET YOU HENCE, WALK TO AND FRO THROUGH THE 4 EARTH. SO THEY WALKED TO AND FRO THROUGH THE EARTH.K# 8 THEN CRIED HE UPON ME, AND SPAKE UNTO ME, SAYING, BEHOLD, THESE THAT GOCF TOWARD THE NORTH COUNTRY HAVE QUIETED MY SPIRIT IN THE NORTH COUNTRY.2# 9 AND THE WORD OF THE LORD CAME UNTO ME, SAYING,F# 10 TAKE OF THEM OF THE CAPTIVITY, EVEN OF HELDAI, OF TOBIJAH, AND OFN JEDAIAH, WHICH ARE COME FROM BABYLON, AND COME THOU THE SAME DAY, AND GO INTO* THE HOUSE OF JOSIAH THE SON OF ZEPHANIAH;K# 11 THEN TAKE SILVER AND GOLD, AND MAKE CROWNS, AND SET THEM UPON THE HEAD 0 OF JOSHUA THE SON OF JOSEDECH, THE HIGH PRIEST;I# 12 AND SPEAK UNTO HIM, SAYING, THUS SPEAKETH THE LORD OF HOSTS, SAYING,HI BEHOLD THE MAN WHOSE NAME IS THE BRANCH; AND HE SHALL GROW UP OUT OF HISO2 PLACE, AND HE SHALL BUILD THE TEMPLE OF THE LORD:M# 13 EVEN HE SHALL BUILD THE TEMPLE OF THE LORD; AND HE SHALL BEAR THE GLORY,OJ AND SHALL SIT AND RULE UPON HIS THRONE; AND HE SHALL BE A PRIEST UPON HIS= THRONE: AND THE COUNSEL OF PEACE SHALL BE BETWEEN THEM BOTH.AM# 14 AND THE CROWNS SHALL BE TO HELEM, AND TO TOBIJAH, AND TO JEDAIAH, AND TOHD HEN THE SON OF ZEPHANIAH, FOR A MEMORIAL IN THE TEMPLE OF THE LORD.H# 15 AND THEY THAT ARE FAR OFF SHALL COME AND BUILD IN THE TEMPLE OF THEJ LORD, AND YE SHALL KNOW THAT THE LORD OF HOSTS HATH SENT ME UNTO YOU. ANDJ THIS SHALL COME TO PASS, IF YE WILL DILIGENTLY OBEY THE VOICE OF THE LORD YOUR GOD. = CHAPTER 7 K# 1 AND IT CAME TO PASS IN THE FOURTH YEAR OF KING DARIUS, THAT THE WORD OFEK THE LORD CAME UNTO ZECHARIAH IN THE FOURTH DAY OF THE NINTH MONTH, EVEN INT CHISLEU;AJ# 2 WHEN THEY HAD SENT UNTO THE HOUSE OF GOD SHEREZER AND REGEMMELECH, AND$ THEIR MEN, TO PRAY BEFORE THE LORD,H# 3 AND TO SPEAK UNTO THE PRIESTS WHICH WERE IN THE HOUSE OF THE LORD OFF HOSTS, AND TO THE PROPHETS, SAYING, SHOULD I WEEP IN THE FIFTH MONTH,7 SEPARATING MYSELF, AS I HAVE DONE THESE SO MANY YEARS?D<# 4 THEN CAME THE WORD OF THE LORD OF HOSTS UNTO ME, SAYING,K# 5 SPEAK UNTO ALL THE PEOPLE OF THE LAND, AND TO THE PRIESTS, SAYING, WHENTI YE FASTED AND MOURNED IN THE FIFTH AND SEVENTH MONTH, EVEN THOSE SEVENTYE/ YEARS, DID YE AT ALL FAST UNTO ME, EVEN TO ME?,B# 6 AND WHEN YE DID EAT, AND WHE00??D%5%T6%! !N YE DID DRINK, DID NOT YE EAT FOR& YOURSELVES, AND DRINK FOR YOURSELVES?H# 7 SHOULD YE NOT HEAR THE WORDS WHICH THE LORD HATH CRIED BY THE FORMERI PROPHETS, WHEN JERUSALEM WAS INHABITED AND IN PROSPERITY, AND THE CITIESCE THEREOF ROUND ABOUT HER, WHEN MEN INHABITED THE SOUTH AND THE PLAIN?T9# 8 AND THE WORD OF THE LORD CAME UNTO ZECHARIAH, SAYING,YL# 9 THUS SPEAKETH THE LORD OF HOSTS, SAYING, EXECUTE TRUE JUDGMENT, AND SHEW0 MERCY AND COMPASSIONS EVERY MAN TO HIS BROTHER:I# 10 AND OPPRESS NOT THE WIDOW, NOR THE FATHERLESS, THE STRANGER, NOR THE,J POOR; AND LET NONE OF YOU IMAGINE EVIL AGAINST HIS BROTHER IN YOUR HEART.K# 11 BUT THEY REFUSED TO HEARKEN, AND PULLED AWAY THE SHOULDER, AND STOPPEDP' THEIR EARS, THAT THEY SHOULD NOT HEAR.OK# 12 YEA, THEY MADE THEIR HEARTS AS AN ADAMANT STONE, LEST THEY SHOULD HEAR N THE LAW, AND THE WORDS WHICH THE LORD OF HOSTS HATH SENT IN HIS SPIRIT BY THEF FORMER PROPHETS: THEREFORE CAME A GREAT WRATH FROM THE LORD OF HOSTS.M# 13 THEREFORE IT IS COME TO PASS, THAT AS HE CRIED, AND THEY WOULD NOT HEAR;O> SO THEY CRIED, AND I WOULD NOT HEAR, SAITH THE LORD OF HOSTS:J# 14 BUT I SCATTERED THEM WITH A WHIRLWIND AMONG ALL THE NATIONS WHOM THEYL KNEW NOT. THUS THE LAND WAS DESOLATE AFTER THEM, THAT NO MAN PASSED THROUGH8 NOR RETURNED: FOR THEY LAID THE PLEASANT LAND DESOLATE. = CHAPTER 8 ;# 1 AGAIN THE WORD OF THE LORD OF HOSTS CAME TO ME, SAYING,IM# 2 THUS SAITH THE LORD OF HOSTS; I WAS JEALOUS FOR ZION WITH GREAT JEALOUSY,.+ AND I WAS JEALOUS FOR HER WITH GREAT FURY.HM# 3 THUS SAITH THE LORD; I AM RETURNED UNTO ZION, AND WILL DWELL IN THE MIDST N OF JERUSALEM: AND JERUSALEM SHALL BE CALLED A CITY OF TRUTH; AND THE MOUNTAIN( OF THE LORD OF HOSTS THE HOLY MOUNTAIN.M# 4 THUS SAITH THE LORD OF HOSTS; THERE SHALL YET OLD MEN AND OLD WOMEN DWELLDJ IN THE STREETS OF JERUSALEM, AND EVERY MAN WITH HIS STAFF IN HIS HAND FOR VERY AGE.J# 5 AND THE STREETS OF THE CITY SHALL BE FULL OF BOYS AND GIRLS PLAYING IN THE STREETS THEREOF.AH# 6 THUS SAITH THE LORD OF HOSTS; IF IT BE MARVELLOUS IN THE EYES OF THEK REMNANT OF THIS PEOPLE IN THESE DAYS, SHOULD IT ALSO BE MARVELLOUS IN MINEM EYES? SAITH THE LORD OF HOSTS. M# 7 THUS SAITH THE LORD OF HOSTS; BEHOLD, I WILL SAVE MY PEOPLE FROM THE EASTL$ COUNTRY, AND FROM THE WEST COUNTRY;J# 8 AND I WILL BRING THEM, AND THEY SHALL DWELL IN THE MIDST OF JERUSALEM:F AND THEY SHALL BE MY PEOPLE, AND I WILL BE THEIR GOD, IN TRUTH AND IN RIGHTEOUSNESS.NK# 9 THUS SAITH THE LORD OF HOSTS; LET YOUR HANDS BE STRONG, YE THAT HEAR IN K THESE DAYS THESE WORDS BY THE MOUTH OF THE PROPHETS, WHICH WERE IN THE DAY,I THAT THE FOUNDATION OF THE HOUSE OF THE LORD OF HOSTS WAS LAID, THAT THE  TEMPLE MIGHT BE BUILT.HM# 10 FOR BEFORE THESE DAYS THERE WAS NO HIRE FOR MAN, NOR ANY HIRE FOR BEAST; K NEITHER WAS THERE ANY PEACE TO HIM THAT WENT OUT OR CAME IN BECAUSE OF THEU? AFFLICTION: FOR I SET ALL MEN EVERY ONE AGAINST HIS NEIGHBOUR. K# 11 BUT NOW I WILL NOT BE UNTO THE RESIDUE OF THIS PEOPLE AS IN THE FORMERN DAYS, SAITH THE LORD OF HOSTS.TM# 12 FOR THE SEED SHALL BE PROSPEROUS; THE VINE SHALL GIVE HER FRUIT, AND THEAL GROUND SHALL GIVE HER INCREASE, AND THE HEAVENS SHALL GIVE THEIR DEW; AND IC WILL CAUSE THE REMNANT OF THIS PEOPLE TO POSSESS ALL THESE THINGS.ML# 13 AND IT SHALL COME TO PASS, THAT AS YE WERE A CURSE AMONG THE HEATHEN, OK HOUSE OF JUDAH, AND HOUSE OF ISRAEL; SO WILL I SAVE YOU, AND YE SHALL BE AT2 BLESSING: FEAR NOT, BUT LET YOUR HANDS BE STRONG.L# 14 FOR THUS SAITH THE LORD OF HOSTS; AS I THOUGHT TO PUNISH YOU, WHEN YOURK FATHERS PROVOKED ME TO WRATH, SAITH THE LORD OF HOSTS, AND I REPENTED NOT:AK# 15 SO AGAIN HAVE I THOUGHT IN THESE DAYS TO DO WELL UNTO JERUSALEM AND TOI! THE HOUSE OF JUDAH: FEAR YE NOT.EK# 16 THESE ARE THE THINGS THAT YE SHALL DO; SPEAK YE EVERY MAN THE TRUTH TOEI HIS NEIGHBOUR; EXECUTE THE JUDGMENT OF TRUTH AND PEACE IN YOUR GATES: ITOK# 17 AND LET NONE OF YOU IMAGINE EVIL IN YOUR HEARTS AGAINST HIS NEIGHBOUR; N AND LOVE NO FALSE OATH: FOR ALL THESE ARE THINGS THAT I HATE, SAITH THE LORD.00?O?<%X>%+%O-%TADATADATA<# 18 AND THE WORD OF THE LORD OF HOSTS CAME UNTO ME, SAYING,M# 19 THUS SAITH THE LORD OF HOSTS; THE FAST OF THE FOURTH MONTH, AND THE FAST L OF THE FIFTH, AND THE FAST OF THE SEVENTH, AND THE FAST OF THE TENTH, SHALLJ BE TO THE HOUSE OF JUDAH JOY AND GLADNESS, AND CHEERFUL FEASTS; THEREFORE LOVE THE TRUTH AND PEACE.H# 20 THUS SAITH THE LORD OF HOSTS; IT SHALL YET COME TO PASS, THAT THERE7 SHALL COME PEOPLE, AND THE INHABITANTS OF MANY CITIES:TK# 21 AND THE INHABITANTS OF ONE CITY SHALL GO TO ANOTHER, SAYING, LET US GOFK SPEEDILY TO PRAY BEFORE THE LORD, AND TO SEEK THE LORD OF HOSTS: I WILL GOT ALSO.M# 22 YEA, MANY PEOPLE AND STRONG NATIONS SHALL COME TO SEEK THE LORD OF HOSTS + IN JERUSALEM, AND TO PRAY BEFORE THE LORD.HL# 23 THUS SAITH THE LORD OF HOSTS; IN THOSE DAYS IT SHALL COME TO PASS, THATM TEN MEN SHALL TAKE HOLD OUT OF ALL LANGUAGES OF THE NATIONS, EVEN SHALL TAKETL HOLD OF THE SKIRT OF HIM THAT IS A JEW, SAYING, WE WILL GO WITH YOU: FOR WE! HAVE HEARD THAT GOD IS WITH YOU.O = CHAPTER 9 K# 1 THE BURDEN OF THE WORD OF THE LORD IN THE LAND OF HADRACH, AND DAMASCUSSI SHALL BE THE REST THEREOF: WHEN THE EYES OF MAN, AS OF ALL THE TRIBES OF " ISRAEL, SHALL BE TOWARD THE LORD.M# 2 AND HAMATH ALSO SHALL BORDER THEREBY; TYRUS, AND ZIDON, THOUGH IT BE VERYS WISE.J# 3 AND TYRUS DID BUILD HERSELF A STRONG HOLD, AND HEAPED UP SILVER AS THE0 DUST, AND FINE GOLD AS THE MIRE OF THE STREETS.J# 4 BEHOLD, THE LORD WILL CAST HER OUT, AND HE WILL SMITE HER POWER IN THE* SEA; AND SHE SHALL BE DEVOURED WITH FIRE.H# 5 ASHKELON SHALL SEE IT, AND FEAR; GAZA ALSO SHALL SEE IT, AND BE VERYI SORROWFUL, AND EKRON; FOR HER EXPECTATION SHALL BE ASHAMED; AND THE KINGE= SHALL PERISH FROM GAZA, AND ASHKELON SHALL NOT BE INHABITED.TL# 6 AND A BASTARD SHALL DWELL IN ASHDOD, AND I WILL CUT OFF THE PRIDE OF THE PHILISTINES.GI# 7 AND I WILL TAKE AWAY HIS BLOOD OUT OF HIS MOUTH, AND HIS ABOMINATIONS N FROM BETWEEN HIS TEETH: BUT HE THAT REMAINETH, EVEN HE, SHALL BE FOR OUR GOD,A AND HE SHALL BE AS A GOVERNOR IN JUDAH, AND EKRON AS A JEBUSITE.LJ# 8 AND I WILL ENCAMP ABOUT MINE HOUSE BECAUSE OF THE ARMY, BECAUSE OF HIMK THAT PASSETH BY, AND BECAUSE OF HIM THAT RETURNETH: AND NO OPPRESSOR SHALLZ@ PASS THROUGH THEM ANY MORE: FOR NOW HAVE I SEEN WITH MINE EYES.H# 9 REJOICE GREATLY, O DAUGHTER OF ZION; SHOUT, O DAUGHTER OF JERUSALEM:L BEHOLD, THY KING COMETH UNTO THEE: HE IS JUST, AND HAVING SALVATION; LOWLY,< AND RIDING UPON AN ASS, AND UPON A COLT THE FOAL OF AN ASS.D# 10 AND I WILL CUT OFF THE CHARIOT FROM EPHRAIM, AND THE HORSE FROMN JERUSALEM, AND THE BATTLE BOW SHALL BE CUT OFF: AND HE SHALL SPEAK PEACE UNTOJ THE HEATHEN: AND HIS DOMINION SHALL BE FROM SEA EVEN TO SEA, AND FROM THE% RIVER EVEN TO THE ENDS OF THE EARTH.RI# 11 AS FOR THEE ALSO, BY THE BLOOD OF THY COVENANT I HAVE SENT FORTH THYS. PRISONERS OUT OF THE PIT WHEREIN IS NO WATER.H# 12 TURN YOU TO THE STRONG HOLD, YE PRISONERS OF HOPE: EVEN TO DAY DO I- DECLARE THAT I WILL RENDER DOUBLE UNTO THEE;.K# 13 WHEN I HAVE BENT JUDAH FOR ME, FILLED THE BOW WITH EPHRAIM, AND RAISEDSL UP THY SONS, O ZION, AGAINST THY SONS, O GREECE, AND MADE THEE AS THE SWORD OF A MIGHTY MAN.OJ# 14 AND THE LORD SHALL BE SEEN OVER THEM, AND HIS ARROW SHALL GO FORTH ASJ THE LIGHTNING: AND THE LORD GOD SHALL BLOW THE TRUMPET, AND SHALL GO WITH WHIRLWINDS OF THE SOUTH.OK# 15 THE LORD OF HOSTS SHALL DEFEND THEM; AND THEY SHALL DEVOUR, AND SUBDUEOK WITH SLING STONES; AND THEY SHALL DRINK, AND MAKE A NOISE AS THROUGH WINE;.F AND THEY SHALL BE FILLED LIKE BOWLS, AND AS THE CORNERS OF THE ALTAR.K# 16 AND THE LORD THEIR GOD SHALL SAVE THEM IN THAT DAY AS THE FLOCK OF HISEK PEOPLE: FOR THEY SHALL BE AS THE STONES OF A CROWN, LIFTED UP AS AN ENSIGNS UPON HIS LAND.OK# 17 FOR HOW GREAT IS HIS GOODNESS, AND HOW GREAT IS HIS BEAUTY! CORN SHALL 5 MAKE THE YOUNG MEN CHEERFUL, AND NEW WINE THE MAIDS.S = CHAPTER 10 HM# 1 ASK YE OF THE LORD RAIN IN THE TIME OF THE LATTER RAIN; SO THE LORD SHALLKM MAKE BRIGHT CLOUDS, AND GIVE THEM SHOWERS OF RAIN, TO EVERY ONE GRASS I00??D%5%T6%! !N THE  FIELD.RK# 2 FOR THE IDOLS HAVE SPOKEN VANITY, AND THE DIVINERS HAVE SEEN A LIE, ANDSL HAVE TOLD FALSE DREAMS; THEY COMFORT IN VAIN: THEREFORE THEY WENT THEIR WAY? AS A FLOCK, THEY WERE TROUBLED, BECAUSE THERE WAS NO SHEPHERD.OK# 3 MINE ANGER WAS KINDLED AGAINST THE SHEPHERDS, AND I PUNISHED THE GOATS:LJ FOR THE LORD OF HOSTS HATH VISITED HIS FLOCK THE HOUSE OF JUDAH, AND HATH- MADE THEM AS HIS GOODLY HORSE IN THE BATTLE.I# 4 OUT OF HIM CAME FORTH THE CORNER, OUT OF HIM THE NAIL, OUT OF HIM THEH1 BATTLE BOW, OUT OF HIM EVERY OPPRESSOR TOGETHER. J# 5 AND THEY SHALL BE AS MIGHTY MEN, WHICH TREAD DOWN THEIR ENEMIES IN THEM MIRE OF THE STREETS IN THE BATTLE: AND THEY SHALL FIGHT, BECAUSE THE LORD ISU9 WITH THEM, AND THE RIDERS ON HORSES SHALL BE CONFOUNDED.NJ# 6 AND I WILL STRENGTHEN THE HOUSE OF JUDAH, AND I WILL SAVE THE HOUSE OFI JOSEPH, AND I WILL BRING THEM AGAIN TO PLACE THEM; FOR I HAVE MERCY UPONEM THEM: AND THEY SHALL BE AS THOUGH I HAD NOT CAST THEM OFF: FOR I AM THE LORDT THEIR GOD, AND WILL HEAR THEM. I# 7 AND THEY OF EPHRAIM SHALL BE LIKE A MIGHTY MAN, AND THEIR HEART SHALLTN REJOICE AS THROUGH WINE: YEA, THEIR CHILDREN SHALL SEE IT, AND BE GLAD; THEIR! HEART SHALL REJOICE IN THE LORD.TM# 8 I WILL HISS FOR THEM, AND GATHER THEM; FOR I HAVE REDEEMED THEM: AND THEYE' SHALL INCREASE AS THEY HAVE INCREASED. K# 9 AND I WILL SOW THEM AMONG THE PEOPLE: AND THEY SHALL REMEMBER ME IN FARYD COUNTRIES; AND THEY SHALL LIVE WITH THEIR CHILDREN, AND TURN AGAIN.K# 10 I WILL BRING THEM AGAIN ALSO OUT OF THE LAND OF EGYPT, AND GATHER THEMHK OUT OF ASSYRIA; AND I WILL BRING THEM INTO THE LAND OF GILEAD AND LEBANON;E' AND PLACE SHALL NOT BE FOUND FOR THEM.AK# 11 AND HE SHALL PASS THROUGH THE SEA WITH AFFLICTION, AND SHALL SMITE THEAM WAVES IN THE SEA, AND ALL THE DEEPS OF THE RIVER SHALL DRY UP: AND THE PRIDECN OF ASSYRIA SHALL BE BROUGHT DOWN, AND THE SCEPTRE OF EGYPT SHALL DEPART AWAY.L# 12 AND I WILL STRENGTHEN THEM IN THE LORD; AND THEY SHALL WALK UP AND DOWN IN HIS NAME, SAITH THE LORD.S = CHAPTER 11 NC# 1 OPEN THY DOORS, O LEBANON, THAT THE FIRE MAY DEVOUR THY CEDARS.IL# 2 HOWL, FIR TREE; FOR THE CEDAR IS FALLEN; BECAUSE THE MIGHTY ARE SPOILED:G HOWL, O YE OAKS OF BASHAN; FOR THE FOREST OF THE VINTAGE IS COME DOWN. H# 3 THERE IS A VOICE OF THE HOWLING OF THE SHEPHERDS; FOR THEIR GLORY ISK SPOILED: A VOICE OF THE ROARING OF YOUNG LIONS; FOR THE PRIDE OF JORDAN IS SPOILED..@# 4 THUS SAITH THE LORD MY GOD; FEED THE FLOCK OF THE SLAUGHTER;M# 5 WHOSE POSSESSORS SLAY THEM, AND HOLD THEMSELVES NOT GUILTY: AND THEY THATSK SELL THEM SAY, BLESSED BE THE LORD; FOR I AM RICH: AND THEIR OWN SHEPHERDSH PITY THEM NOT.;M# 6 FOR I WILL NO MORE PITY THE INHABITANTS OF THE LAND, SAITH THE LORD: BUT, L LO, I WILL DELIVER THE MEN EVERY ONE INTO HIS NEIGHBOURS HAND, AND INTO THEN HAND OF HIS KING: AND THEY SHALL SMITE THE LAND, AND OUT OF THEIR HAND I WILL NOT DELIVER THEM.J# 7 AND I WILL FEED THE FLOCK OF SLAUGHTER, EVEN YOU, O POOR OF THE FLOCK.H AND I TOOK UNTO ME TWO STAVES; THE ONE I CALLED BEAUTY, AND THE OTHER I# CALLED BANDS; AND I FED THE FLOCK.TM# 8 THREE SHEPHERDS ALSO I CUT OFF IN ONE MONTH; AND MY SOUL LOTHED THEM, ANDI THEIR SOUL ALSO ABHORRED ME. K# 9 THEN SAID I, I WILL NOT FEED YOU: THAT THAT DIETH, LET IT DIE; AND THATOM THAT IS TO BE CUT OFF, LET IT BE CUT OFF; AND LET THE REST EAT EVERY ONE THE  FLESH OF ANOTHER.M# 10 AND I TOOK MY STAFF, EVEN BEAUTY, AND CUT IT ASUNDER, THAT I MIGHT BREAK 2 MY COVENANT WHICH I HAD MADE WITH ALL THE PEOPLE.L# 11 AND IT WAS BROKEN IN THAT DAY: AND SO THE POOR OF THE FLOCK THAT WAITED/ UPON ME KNEW THAT IT WAS THE WORD OF THE LORD.IJ# 12 AND I SAID UNTO THEM, IF YE THINK GOOD, GIVE ME MY PRICE; AND IF NOT,? FORBEAR. SO THEY WEIGHED FOR MY PRICE THIRTY PIECES OF SILVER.;L# 13 AND THE LORD SAID UNTO ME, CAST IT UNTO THE POTTER: A GOODLY PRICE THATJ I WAS PRISED AT OF THEM. AND I TOOK THE THIRTY PIECES OF SILVER, AND CAST- THEM TO THE POTTER IN THE HOUSE OF THE LORD.AL# 14 THEN I CUT ASUNDER MINE OTHER STAFF, EVEN BANDS00?O?<%X>%+%O-%TADATADATA, THAT I MIGHT BREAK THE& BROTHERHOOD BETWEEN JUDAH AND ISRAEL.G# 15 AND THE LORD SAID UNTO ME, TAKE UNTO THEE YET THE INSTRUMENTS OF AT FOOLISH SHEPHERD.K# 16 FOR, LO, I WILL RAISE UP A SHEPHERD IN THE LAND, WHICH SHALL NOT VISITTL THOSE THAT BE CUT OFF, NEITHER SHALL SEEK THE YOUNG ONE, NOR HEAL THAT THATL IS BROKEN, NOR FEED THAT THAT STANDETH STILL: BUT HE SHALL EAT THE FLESH OF) THE FAT, AND TEAR THEIR CLAWS IN PIECES.TM# 17 WOE TO THE IDOL SHEPHERD THAT LEAVETH THE FLOCK! THE SWORD SHALL BE UPONHJ HIS ARM, AND UPON HIS RIGHT EYE: HIS ARM SHALL BE CLEAN DRIED UP, AND HIS% RIGHT EYE SHALL BE UTTERLY DARKENED.E = CHAPTER 12 H# 1 THE BURDEN OF THE WORD OF THE LORD FOR ISRAEL, SAITH THE LORD, WHICHJ STRETCHETH FORTH THE HEAVENS, AND LAYETH THE FOUNDATION OF THE EARTH, AND& FORMETH THE SPIRIT OF MAN WITHIN HIM.H# 2 BEHOLD, I WILL MAKE JERUSALEM A CUP OF TREMBLING UNTO ALL THE PEOPLEL ROUND ABOUT, WHEN THEY SHALL BE IN THE SIEGE BOTH AGAINST JUDAH AND AGAINST JERUSALEM. L# 3 AND IN THAT DAY WILL I MAKE JERUSALEM A BURDENSOME STONE FOR ALL PEOPLE:J ALL THAT BURDEN THEMSELVES WITH IT SHALL BE CUT IN PIECES, THOUGH ALL THE5 PEOPLE OF THE EARTH BE GATHERED TOGETHER AGAINST IT.SL# 4 IN THAT DAY, SAITH THE LORD, I WILL SMITE EVERY HORSE WITH ASTONISHMENT,H AND HIS RIDER WITH MADNESS: AND I WILL OPEN MINE EYES UPON THE HOUSE OF@ JUDAH, AND WILL SMITE EVERY HORSE OF THE PEOPLE WITH BLINDNESS.K# 5 AND THE GOVERNORS OF JUDAH SHALL SAY IN THEIR HEART, THE INHABITANTS OFS? JERUSALEM SHALL BE MY STRENGTH IN THE LORD OF HOSTS THEIR GOD.OI# 6 IN THAT DAY WILL I MAKE THE GOVERNORS OF JUDAH LIKE AN HEARTH OF FIRECK AMONG THE WOOD, AND LIKE A TORCH OF FIRE IN A SHEAF; AND THEY SHALL DEVOUR M ALL THE PEOPLE ROUND ABOUT, ON THE RIGHT HAND AND ON THE LEFT: AND JERUSALEMD> SHALL BE INHABITED AGAIN IN HER OWN PLACE, EVEN IN JERUSALEM.L# 7 THE LORD ALSO SHALL SAVE THE TENTS OF JUDAH FIRST, THAT THE GLORY OF THEL HOUSE OF DAVID AND THE GLORY OF THE INHABITANTS OF JERUSALEM DO NOT MAGNIFY THEMSELVES AGAINST JUDAH.J# 8 IN THAT DAY SHALL THE LORD DEFEND THE INHABITANTS OF JERUSALEM; AND HEJ THAT IS FEEBLE AMONG THEM AT THAT DAY SHALL BE AS DAVID; AND THE HOUSE OF= DAVID SHALL BE AS GOD, AS THE ANGEL OF THE LORD BEFORE THEM.OJ# 9 AND IT SHALL COME TO PASS IN THAT DAY, THAT I WILL SEEK TO DESTROY ALL) THE NATIONS THAT COME AGAINST JERUSALEM.HI# 10 AND I WILL POUR UPON THE HOUSE OF DAVID, AND UPON THE INHABITANTS OFUN JERUSALEM, THE SPIRIT OF GRACE AND OF SUPPLICATIONS: AND THEY SHALL LOOK UPONM ME WHOM THEY HAVE PIERCED, AND THEY SHALL MOURN FOR HIM, AS ONE MOURNETH FORJD HIS ONLY SON, AND SHALL BE IN BITTERNESS FOR HIM, AS ONE THAT IS IN BITTERNESS FOR HIS FIRSTBORN.E# 11 IN THAT DAY SHALL THERE BE A GREAT MOURNING IN JERUSALEM, AS THEL3 MOURNING OF HADADRIMMON IN THE VALLEY OF MEGIDDON.YM# 12 AND THE LAND SHALL MOURN, EVERY FAMILY APART; THE FAMILY OF THE HOUSE OF M DAVID APART, AND THEIR WIVES APART; THE FAMILY OF THE HOUSE OF NATHAN APART,N AND THEIR WIVES APART;HM# 13 THE FAMILY OF THE HOUSE OF LEVI APART, AND THEIR WIVES APART; THE FAMILYS( OF SHIMEI APART, AND THEIR WIVES APART;M# 14 ALL THE FAMILIES THAT REMAIN, EVERY FAMILY APART, AND THEIR WIVES APART. = CHAPTER 13 YM# 1 IN THAT DAY THERE SHALL BE A FOUNTAIN OPENED TO THE HOUSE OF DAVID AND TON: THE INHABITANTS OF JERUSALEM FOR SIN AND FOR UNCLEANNESS.J# 2 AND IT SHALL COME TO PASS IN THAT DAY, SAITH THE LORD OF HOSTS, THAT IL WILL CUT OFF THE NAMES OF THE IDOLS OUT OF THE LAND, AND THEY SHALL NO MOREL BE REMEMBERED: AND ALSO I WILL CAUSE THE PROPHETS AND THE UNCLEAN SPIRIT TO PASS OUT OF THE LAND.I# 3 AND IT SHALL COME TO PASS, THAT WHEN ANY SHALL YET PROPHESY, THEN HIS,N FATHER AND HIS MOTHER THAT BEGAT HIM SHALL SAY UNTO HIM, THOU SHALT NOT LIVE;N FOR THOU SPEAKEST LIES IN THE NAME OF THE LORD: AND HIS FATHER AND HIS MOTHER= THAT BEGAT HIM SHALL THRUST HIM THROUGH WHEN HE PROPHESIETH.,M# 4 AND IT SHALL COME TO PASS IN THAT DAY, THAT THE PROPHETS SHALL BE ASHAMEDHL EVERY ONE OF HIS VISION, WHEN HE HATH PROPHESIED; NEITH00@?D%5%T6%! !ER SHALL THEY WEAR A ROUGH GARMENT TO DECEIVE:L# 5 BUT HE SHALL SAY, I AM NO PROPHET, I AM AN HUSBANDMAN; FOR MAN TAUGHT ME TO KEEP CATTLE FROM MY YOUTH.M# 6 AND ONE SHALL SAY UNTO HIM, WHAT ARE THESE WOUNDS IN THINE HANDS? THEN HETI SHALL ANSWER, THOSE WITH WHICH I WAS WOUNDED IN THE HOUSE OF MY FRIENDS.TG# 7 AWAKE, O SWORD, AGAINST MY SHEPHERD, AND AGAINST THE MAN THAT IS MYSL FELLOW, SAITH THE LORD OF HOSTS: SMITE THE SHEPHERD, AND THE SHEEP SHALL BE; SCATTERED: AND I WILL TURN MINE HAND UPON THE LITTLE ONES.EH# 8 AND IT SHALL COME TO PASS, THAT IN ALL THE LAND, SAITH THE LORD, TWOM PARTS THEREIN SHALL BE CUT OFF AND DIE; BUT THE THIRD SHALL BE LEFT THEREIN.NM# 9 AND I WILL BRING THE THIRD PART THROUGH THE FIRE, AND WILL REFINE THEM ASSM SILVER IS REFINED, AND WILL TRY THEM AS GOLD IS TRIED: THEY SHALL CALL ON MYSM NAME, AND I WILL HEAR THEM: I WILL SAY, IT IS MY PEOPLE: AND THEY SHALL SAY,L THE LORD IS MY GOD. = CHAPTER 14 M# 1 BEHOLD, THE DAY OF THE LORD COMETH, AND THY SPOIL SHALL BE DIVIDED IN THEE MIDST OF THEE.LK# 2 FOR I WILL GATHER ALL NATIONS AGAINST JERUSALEM TO BATTLE; AND THE CITYLK SHALL BE TAKEN, AND THE HOUSES RIFLED, AND THE WOMEN RAVISHED; AND HALF OFIL THE CITY SHALL GO FORTH INTO CAPTIVITY, AND THE RESIDUE OF THE PEOPLE SHALL NOT BE CUT OFF FROM THE CITY.M# 3 THEN SHALL THE LORD GO FORTH, AND FIGHT AGAINST THOSE NATIONS, AS WHEN HEM FOUGHT IN THE DAY OF BATTLE.K# 4 AND HIS FEET SHALL STAND IN THAT DAY UPON THE MOUNT OF OLIVES, WHICH IS J BEFORE JERUSALEM ON THE EAST, AND THE MOUNT OF OLIVES SHALL CLEAVE IN THEM MIDST THEREOF TOWARD THE EAST AND TOWARD THE WEST, AND THERE SHALL BE A VERYDJ GREAT VALLEY; AND HALF OF THE MOUNTAIN SHALL REMOVE TOWARD THE NORTH, AND HALF OF IT TOWARD THE SOUTH.RK# 5 AND YE SHALL FLEE TO THE VALLEY OF THE MOUNTAINS; FOR THE VALLEY OF THEEJ MOUNTAINS SHALL REACH UNTO AZAL: YEA, YE SHALL FLEE, LIKE AS YE FLED FROMK BEFORE THE EARTHQUAKE IN THE DAYS OF UZZIAH KING OF JUDAH: AND THE LORD MYO. GOD SHALL COME, AND ALL THE SAINTS WITH THEE.M# 6 AND IT SHALL COME TO PASS IN THAT DAY, THAT THE LIGHT SHALL NOT BE CLEAR,D NOR DARK: ITTJ# 7 BUT IT SHALL BE ONE DAY WHICH SHALL BE KNOWN TO THE LORD, NOT DAY, NORJ NIGHT: BUT IT SHALL COME TO PASS, THAT AT EVENING TIME IT SHALL BE LIGHT.E# 8 AND IT SHALL BE IN THAT DAY, THAT LIVING WATERS SHALL GO OUT FROMIK JERUSALEM; HALF OF THEM TOWARD THE FORMER SEA, AND HALF OF THEM TOWARD THEH1 HINDER SEA: IN SUMMER AND IN WINTER SHALL IT BE.NM# 9 AND THE LORD SHALL BE KING OVER ALL THE EARTH: IN THAT DAY SHALL THERE BEL ONE LORD, AND HIS NAME ONE.I# 10 ALL THE LAND SHALL BE TURNED AS A PLAIN FROM GEBA TO RIMMON SOUTH OFAG JERUSALEM: AND IT SHALL BE LIFTED UP, AND INHABITED IN HER PLACE, FROMMK BENJAMINS GATE UNTO THE PLACE OF THE FIRST GATE, UNTO THE CORNER GATE, ANDA7 FROM THE TOWER OF HANANEEL UNTO THE KINGS WINEPRESSES. M# 11 AND MEN SHALL DWELL IN IT, AND THERE SHALL BE NO MORE UTTER DESTRUCTION;I) BUT JERUSALEM SHALL BE SAFELY INHABITED.NG# 12 AND THIS SHALL BE THE PLAGUE WHEREWITH THE LORD WILL SMITE ALL THEJ PEOPLE THAT HAVE FOUGHT AGAINST JERUSALEM; THEIR FLESH SHALL CONSUME AWAYM WHILE THEY STAND UPON THEIR FEET, AND THEIR EYES SHALL CONSUME AWAY IN THEIRT; HOLES, AND THEIR TONGUE SHALL CONSUME AWAY IN THEIR MOUTH. M# 13 AND IT SHALL COME TO PASS IN THAT DAY, THAT A GREAT TUMULT FROM THE LORDNJ SHALL BE AMONG THEM; AND THEY SHALL LAY HOLD EVERY ONE ON THE HAND OF HISI NEIGHBOUR, AND HIS HAND SHALL RISE UP AGAINST THE HAND OF HIS NEIGHBOUR.TG# 14 AND JUDAH ALSO SHALL FIGHT AT JERUSALEM; AND THE WEALTH OF ALL THEHF HEATHEN ROUND ABOUT SHALL BE GATHERED TOGETHER, GOLD, AND SILVER, AND APPAREL, IN GREAT ABUNDANCE.DL# 15 AND SO SHALL BE THE PLAGUE OF THE HORSE, OF THE MULE, OF THE CAMEL, ANDH OF THE ASS, AND OF ALL THE BEASTS THAT SHALL BE IN THESE TENTS, AS THIS PLAGUE.F# 16 AND IT SHALL COME TO PASS, THAT EVERY ONE THAT IS LEFT OF ALL THEK NATIONS WHICH CAME AGAINST JERUSALEM SHALL EVEN GO UP FROM YEAR TO YEAR TOHK WORSHIP THE KING, THE LORD OF HOSTS, AND TO KEEP TH00 @ @<%X>%+%O-%TADATADATAE FEAST OF TABERNACLES. L# 17 AND IT SHALL BE, THAT WHOSO WILL NOT COME UP OF ALL THE FAMILIES OF THEL EARTH UNTO JERUSALEM TO WORSHIP THE KING, THE LORD OF HOSTS, EVEN UPON THEM SHALL BE NO RAIN.K# 18 AND IF THE FAMILY OF EGYPT GO NOT UP, AND COME NOT, THAT HAVE NO RAIN; J THERE SHALL BE THE PLAGUE, WHEREWITH THE LORD WILL SMITE THE HEATHEN THAT. COME NOT UP TO KEEP THE FEAST OF TABERNACLES.M# 19 THIS SHALL BE THE PUNISHMENT OF EGYPT, AND THE PUNISHMENT OF ALL NATIONSE3 THAT COME NOT UP TO KEEP THE FEAST OF TABERNACLES. K# 20 IN THAT DAY SHALL THERE BE UPON THE BELLS OF THE HORSES, HOLINESS UNTOEM THE LORD; AND THE POTS IN THE LORDS HOUSE SHALL BE LIKE THE BOWLS BEFORE THE ALTAR. M# 21 YEA, EVERY POT IN JERUSALEM AND IN JUDAH SHALL BE HOLINESS UNTO THE LORD N OF HOSTS: AND ALL THEY THAT SACRIFICE SHALL COME AND TAKE OF THEM, AND SEETHEN THEREIN: AND IN THAT DAY THERE SHALL BE NO MORE THE CANAANITE IN THE HOUSE OF THE LORD OF HOSTS.HE PUNISHMENT OF ALL NATIONSE3 THAT COME NOT UP TO KEEP TH* BOOK39 MALACHI = CHAPTER 1 <# 1 THE BURDEN OF THE WORD OF THE LORD TO ISRAEL BY MALACHI.M# 2 I HAVE LOVED YOU, SAITH THE LORD. YET YE SAY, WHEREIN HAST THOU LOVED US?F@ WAS NOT ESAU JACOBS BROTHER? SAITH THE LORD: YET I LOVED JACOB,K# 3 AND I HATED ESAU, AND LAID HIS MOUNTAINS AND HIS HERITAGE WASTE FOR THEL DRAGONS OF THE WILDERNESS.EM# 4 WHEREAS EDOM SAITH, WE ARE IMPOVERISHED, BUT WE WILL RETURN AND BUILD THESL DESOLATE PLACES; THUS SAITH THE LORD OF HOSTS, THEY SHALL BUILD, BUT I WILLI THROW DOWN; AND THEY SHALL CALL THEM, THE BORDER OF WICKEDNESS, AND, THEO8 PEOPLE AGAINST WHOM THE LORD HATH INDIGNATION FOR EVER.I# 5 AND YOUR EYES SHALL SEE, AND YE SHALL SAY, THE LORD WILL BE MAGNIFIEDR FROM THE BORDER OF ISRAEL. H# 6 A SON HONOURETH HIS FATHER, AND A SERVANT HIS MASTER: IF THEN I BE AL FATHER, WHERE IS MINE HONOUR? AND IF I BE A MASTER, WHERE IS MY FEAR? SAITHI THE LORD OF HOSTS UNTO YOU, O PRIESTS, THAT DESPISE MY NAME. AND YE SAY,E# WHEREIN HAVE WE DESPISED THY NAME? H# 7 YE OFFER POLLUTED BREAD UPON MINE ALTAR; AND YE SAY, WHEREIN HAVE WEF POLLUTED THEE? IN THAT YE SAY, THE TABLE OF THE LORD IS CONTEMPTIBLE.L# 8 AND IF YE OFFER THE BLIND FOR SACRIFICE, IS IT NOT EVIL? AND IF YE OFFERN THE LAME AND SICK, IS IT NOT EVIL? OFFER IT NOW UNTO THY GOVERNOR; WILL HE BEB PLEASED WITH THEE, OR ACCEPT THY PERSON? SAITH THE LORD OF HOSTS.K# 9 AND NOW, I PRAY YOU, BESEECH GOD THAT HE WILL BE GRACIOUS UNTO US: THISIH HATH BEEN BY YOUR MEANS: WILL HE REGARD YOUR PERSONS? SAITH THE LORD OF HOSTS.EF# 10 WHO IS THERE EVEN AMONG YOU THAT WOULD SHUT THE DOORS FOR NOUGHT?J NEITHER DO YE KINDLE FIRE ON MINE ALTAR FOR NOUGHT. I HAVE NO PLEASURE INN YOU, SAITH THE LORD OF HOSTS, NEITHER WILL I ACCEPT AN OFFERING AT YOUR HAND.K# 11 FOR FROM THE RISING OF THE SUN EVEN UNTO THE GOING DOWN OF THE SAME MYRL NAME SHALL BE GREAT AMONG THE GENTILES; AND IN EVERY PLACE INCENSE SHALL BEL OFFERED UNTO MY NAME, AND A PURE OFFERING: FOR MY NAME SHALL BE GREAT AMONG& THE HEATHEN, SAITH THE LORD OF HOSTS.F# 12 BUT YE HAVE PROFANED IT, IN THAT YE SAY, THE TABLE OF THE LORD ISA POLLUTED; AND THE FRUIT THEREOF, EVEN HIS MEAT, IS CONTEMPTIBLE.HM# 13 YE SAID ALSO, BEHOLD, WHAT A WEARINESS IS IT! AND YE HAVE SNUFFED AT IT,EK SAITH THE LORD OF HOSTS; AND YE BROUGHT THAT WHICH WAS TORN, AND THE LAME,ON AND THE SICK; THUS YE BROUGHT AN OFFERING: SHOULD I ACCEPT THIS OF YOUR HAND? SAITH THE LORD.L# 14 BUT CURSED BE THE DECEIVER, WHICH HATH IN HIS FLOCK A MALE, AND VOWETH,L AND SACRIFICETH UNTO THE LORD A CORRUPT THING: FOR I AM A GREAT KING, SAITH> THE LORD OF HOSTS, AND MY NAME IS DREADFUL AMONG THE HEATHEN. = CHAPTER 2 7# 1 AND NOW, O YE PRIESTS, THIS COMMANDMENT IS FOR YOU. J# 2 IF YE WILL NOT HEAR, AND IF YE WILL NOT LAY IT TO HEART, TO GIVE GLORYN UNTO MY NAME, SAITH THE LORD OF HOSTS, I WILL EVEN SEND A CURSE UPON YOU, ANDL I WILL CURSE YOUR BLESSINGS: YEA, I HAVE CURSED THEM ALREADY, BECAUSE YE DO NOT LAY IT TO HEART.IK# 3 BEHOLD, I WILL CORRUPT YOUR SEED, AND SPREAD DUNG UPON YOUR FACES, EVENR00@?D%5%T6%! !E THE DUNG OF YOUR SOLEMN FEASTS; AND ONE SHALL TAKE YOU AWAY WITH IT.MI# 4 AND YE SHALL KNOW THAT I HAVE SENT THIS COMMANDMENT UNTO YOU, THAT MYT6 COVENANT MIGHT BE WITH LEVI, SAITH THE LORD OF HOSTS.J# 5 MY COVENANT WAS WITH HIM OF LIFE AND PEACE; AND I GAVE THEM TO HIM FOR@ THE FEAR WHEREWITH HE FEARED ME, AND WAS AFRAID BEFORE MY NAME.H# 6 THE LAW OF TRUTH WAS IN HIS MOUTH, AND INIQUITY WAS NOT FOUND IN HISI LIPS: HE WALKED WITH ME IN PEACE AND EQUITY, AND DID TURN MANY AWAY FROMY INIQUITY.L# 7 FOR THE PRIESTS LIPS SHOULD KEEP KNOWLEDGE, AND THEY SHOULD SEEK THE LAW< AT HIS MOUTH: FOR HE IS THE MESSENGER OF THE LORD OF HOSTS.M# 8 BUT YE ARE DEPARTED OUT OF THE WAY; YE HAVE CAUSED MANY TO STUMBLE AT THEVF LAW; YE HAVE CORRUPTED THE COVENANT OF LEVI, SAITH THE LORD OF HOSTS.G# 9 THEREFORE HAVE I ALSO MADE YOU CONTEMPTIBLE AND BASE BEFORE ALL THEFL PEOPLE, ACCORDING AS YE HAVE NOT KEPT MY WAYS, BUT HAVE BEEN PARTIAL IN THE LAW.IL# 10 HAVE WE NOT ALL ONE FATHER? HATH NOT ONE GOD CREATED US? WHY DO WE DEALN TREACHEROUSLY EVERY MAN AGAINST HIS BROTHER, BY PROFANING THE COVENANT OF OUR FATHERS?MG# 11 JUDAH HATH DEALT TREACHEROUSLY, AND AN ABOMINATION IS COMMITTED INEJ ISRAEL AND IN JERUSALEM; FOR JUDAH HATH PROFANED THE HOLINESS OF THE LORD@ WHICH HE LOVED, AND HATH MARRIED THE DAUGHTER OF A STRANGE GOD.F# 12 THE LORD WILL CUT OFF THE MAN THAT DOETH THIS, THE MASTER AND THEL SCHOLAR, OUT OF THE TABERNACLES OF JACOB, AND HIM THAT OFFERETH AN OFFERING UNTO THE LORD OF HOSTS.L# 13 AND THIS HAVE YE DONE AGAIN, COVERING THE ALTAR OF THE LORD WITH TEARS,F WITH WEEPING, AND WITH CRYING OUT, INSOMUCH THAT HE REGARDETH NOT THE@ OFFERING ANY MORE, OR RECEIVETH IT WITH GOOD WILL AT YOUR HAND.K# 14 YET YE SAY, WHEREFORE? BECAUSE THE LORD HATH BEEN WITNESS BETWEEN THEEHN AND THE WIFE OF THY YOUTH, AGAINST WHOM THOU HAST DEALT TREACHEROUSLY: YET IS1 SHE THY COMPANION, AND THE WIFE OF THY COVENANT.FG# 15 AND DID NOT HE MAKE ONE? YET HAD HE THE RESIDUE OF THE SPIRIT. ANDOL WHEREFORE ONE? THAT HE MIGHT SEEK A GODLY SEED. THEREFORE TAKE HEED TO YOURG SPIRIT, AND LET NONE DEAL TREACHEROUSLY AGAINST THE WIFE OF HIS YOUTH.EL# 16 FOR THE LORD, THE GOD OF ISRAEL, SAITH THAT HE HATETH PUTTING AWAY: FORK ONE COVERETH VIOLENCE WITH HIS GARMENT, SAITH THE LORD OF HOSTS: THEREFORE: TAKE HEED TO YOUR SPIRIT, THAT YE DEAL NOT TREACHEROUSLY.J# 17 YE HAVE WEARIED THE LORD WITH YOUR WORDS. YET YE SAY, WHEREIN HAVE WEL WEARIED HIM? WHEN YE SAY, EVERY ONE THAT DOETH EVIL IS GOOD IN THE SIGHT OFG THE LORD, AND HE DELIGHTETH IN THEM; OR, WHERE IS THE GOD OF JUDGMENT?I = CHAPTER 3 M# 1 BEHOLD, I WILL SEND MY MESSENGER, AND HE SHALL PREPARE THE WAY BEFORE ME:GH AND THE LORD, WHOM YE SEEK, SHALL SUDDENLY COME TO HIS TEMPLE, EVEN THEL MESSENGER OF THE COVENANT, WHOM YE DELIGHT IN: BEHOLD, HE SHALL COME, SAITH THE LORD OF HOSTS.OH# 2 BUT WHO MAY ABIDE THE DAY OF HIS COMING? AND WHO SHALL STAND WHEN HEB APPEARETH? FOR HE IS LIKE A REFINERS FIRE, AND LIKE FULLERS SOAP:M# 3 AND HE SHALL SIT AS A REFINER AND PURIFIER OF SILVER: AND HE SHALL PURIFYSN THE SONS OF LEVI, AND PURGE THEM AS GOLD AND SILVER, THAT THEY MAY OFFER UNTO' THE LORD AN OFFERING IN RIGHTEOUSNESS.DM# 4 THEN SHALL THE OFFERING OF JUDAH AND JERUSALEM BE PLEASANT UNTO THE LORD,R/ AS IN THE DAYS OF OLD, AND AS IN FORMER YEARS.SJ# 5 AND I WILL COME NEAR TO YOU TO JUDGMENT; AND I WILL BE A SWIFT WITNESSE AGAINST THE SORCERERS, AND AGAINST THE ADULTERERS, AND AGAINST FALSENH SWEARERS, AND AGAINST THOSE THAT OPPRESS THE HIRELING IN HIS WAGES, THEL WIDOW, AND THE FATHERLESS, AND THAT TURN ASIDE THE STRANGER FROM HIS RIGHT,* AND FEAR NOT ME, SAITH THE LORD OF HOSTS.G# 6 FOR I AM THE LORD, I CHANGE NOT; THEREFORE YE SONS OF JACOB ARE NOTD CONSUMED.M# 7 EVEN FROM THE DAYS OF YOUR FATHERS YE ARE GONE AWAY FROM MINE ORDINANCES,SN AND HAVE NOT KEPT THEM. RETURN UNTO ME, AND I WILL RETURN UNTO YOU, SAITH THE5 LORD OF HOSTS. BUT YE SAID, WHEREIN SHALL WE RETURN? J# 8 WILL A MAN ROB GOD? YET YE HAVE ROBBED ME. BUT YE SAY, WHEREIN HAVE WE& ROBBED THEE00@ @<%X>%+%O-%TADATADATA? IN TITHES AND OFFERINGS.F# 9 YE ARE CURSED WITH A CURSE: FOR YE HAVE ROBBED ME, EVEN THIS WHOLE NATION.K# 10 BRING YE ALL THE TITHES INTO THE STOREHOUSE, THAT THERE MAY BE MEAT IN N MINE HOUSE, AND PROVE ME NOW HEREWITH, SAITH THE LORD OF HOSTS, IF I WILL NOTN OPEN YOU THE WINDOWS OF HEAVEN, AND POUR YOU OUT A BLESSING, THAT THERE SHALL" NOT BE ROOM ENOUGH TO RECEIVE IT.L# 11 AND I WILL REBUKE THE DEVOURER FOR YOUR SAKES, AND HE SHALL NOT DESTROYM THE FRUITS OF YOUR GROUND; NEITHER SHALL YOUR VINE CAST HER FRUIT BEFORE THE, TIME IN THE FIELD, SAITH THE LORD OF HOSTS.J# 12 AND ALL NATIONS SHALL CALL YOU BLESSED: FOR YE SHALL BE A DELIGHTSOME LAND, SAITH THE LORD OF HOSTS.IL# 13 YOUR WORDS HAVE BEEN STOUT AGAINST ME, SAITH THE LORD. YET YE SAY, WHAT% HAVE WE SPOKEN SO MUCH AGAINST THEE?AI# 14 YE HAVE SAID, IT IS VAIN TO SERVE GOD: AND WHAT PROFIT IS IT THAT WEEL HAVE KEPT HIS ORDINANCE, AND THAT WE HAVE WALKED MOURNFULLY BEFORE THE LORD OF HOSTS?L# 15 AND NOW WE CALL THE PROUD HAPPY; YEA, THEY THAT WORK WICKEDNESS ARE SET1 UP; YEA, THEY THAT TEMPT GOD ARE EVEN DELIVERED.AL# 16 THEN THEY THAT FEARED THE LORD SPAKE OFTEN ONE TO ANOTHER: AND THE LORDN HEARKENED, AND HEARD IT, AND A BOOK OF REMEMBRANCE WAS WRITTEN BEFORE HIM FOR; THEM THAT FEARED THE LORD, AND THAT THOUGHT UPON HIS NAME. M# 17 AND THEY SHALL BE MINE, SAITH THE LORD OF HOSTS, IN THAT DAY WHEN I MAKE G UP MY JEWELS; AND I WILL SPARE THEM, AS A MAN SPARETH HIS OWN SON THATO SERVETH HIM.AL# 18 THEN SHALL YE RETURN, AND DISCERN BETWEEN THE RIGHTEOUS AND THE WICKED,; BETWEEN HIM THAT SERVETH GOD AND HIM THAT SERVETH HIM NOT.T = CHAPTER 4 H# 1 FOR, BEHOLD, THE DAY COMETH, THAT SHALL BURN AS AN OVEN; AND ALL THEI PROUD, YEA, AND ALL THAT DO WICKEDLY, SHALL BE STUBBLE: AND THE DAY THAT M COMETH SHALL BURN THEM UP, SAITH THE LORD OF HOSTS, THAT IT SHALL LEAVE THEML NEITHER ROOT NOR BRANCH.HL# 2 BUT UNTO YOU THAT FEAR MY NAME SHALL THE SUN OF RIGHTEOUSNESS ARISE WITHJ HEALING IN HIS WINGS; AND YE SHALL GO FORTH, AND GROW UP AS CALVES OF THE STALL.AI# 3 AND YE SHALL TREAD DOWN THE WICKED; FOR THEY SHALL BE ASHES UNDER THETM SOLES OF YOUR FEET IN THE DAY THAT I SHALL DO THIS, SAITH THE LORD OF HOSTS.DJ# 4 REMEMBER YE THE LAW OF MOSES MY SERVANT, WHICH I COMMANDED UNTO HIM IN7 HOREB FOR ALL ISRAEL, WITH THE STATUTES AND JUDGMENTS.OM# 5 BEHOLD, I WILL SEND YOU ELIJAH THE PROPHET BEFORE THE COMING OF THE GREATA AND DREADFUL DAY OF THE LORD:M# 6 AND HE SHALL TURN THE HEART OF THE FATHERS TO THE CHILDREN, AND THE HEARTWI OF THE CHILDREN TO THEIR FATHERS, LEST I COME AND SMITE THE EARTH WITH A  CURSE.L BE ASHES UNDER THETM SOLES OF YOUR FEET IN THE DAY THAT I SHALL DO THIS, SAITH THE LORD OF HOSTS.DJ# 4 REMEMBER YE THE LAW OF MOSES MY SERVANT, WHICH I COMMANDED UNTO HIM IN7 HOREB FOR ALL ISRAEL, WITH THE STATUTES AND JUDGMENTS.OM# 5 BEHOLD, I WILL SEND YOU ELIJAH THE PROPHET BEFORE THE COMING OF THE GREATA AND DREADFUL DAY OF THE LORD:M# 6 AND HE SHALL TURN THE HEART OF THE FATHERS TO THE CHILDREN, AND THE HEARTWI* BOOK40 MATTHEW = CHAPTER 1 L# 1 THE BOOK OF THE GENERATION OF JESUS CHRIST, THE SON OF DAVID, THE SON OF ABRAHAM.M# 2 ABRAHAM BEGAT ISAAC; AND ISAAC BEGAT JACOB; AND JACOB BEGAT JUDAS AND HIS BRETHREN;J# 3 AND JUDAS BEGAT PHARES AND ZARA OF THAMAR; AND PHARES BEGAT ESROM; AND ESROM BEGAT ARAM;J# 4 AND ARAM BEGAT AMINADAB; AND AMINADAB BEGAT NAASSON; AND NAASSON BEGAT SALMON;J# 5 AND SALMON BEGAT BOOZ OF RACHAB; AND BOOZ BEGAT OBED OF RUTH; AND OBED BEGAT JESSE;K# 6 AND JESSE BEGAT DAVID THE KING; AND DAVID THE KING BEGAT SOLOMON OF HER ! THAT HAD BEEN THE WIFE OF URIAS; H# 7 AND SOLOMON BEGAT ROBOAM; AND ROBOAM BEGAT ABIA; AND ABIA BEGAT ASA;L# 8 AND ASA BEGAT JOSAPHAT; AND JOSAPHAT BEGAT JORAM; AND JORAM BEGAT OZIAS;E# 9 AND OZIAS BEGAT JOATHAM; AND JOATHAM BEGAT ACHAZ; AND ACHAZ BEGAT EZEKIAS;BH# 10 AND EZEKIAS BEGAT MANASSES; AND MANASSES BEGAT AMON; AND AMON BEGAT JOSIAS;J# 11 AND JOSIAS BEGAT JECHONIAS AND HIS BRETHREN, ABOUT THE TIME THEY WERE CARRIED AWAY TO BABYLON00"@?D%5%T6%! !:IK# 12 AND AFTER THEY WERE BROUGHT TO BABYLON, JECHONIAS BEGAT SALATHIEL; AND  SALATHIEL BEGAT ZOROBABEL;EJ# 13 AND ZOROBABEL BEGAT ABIUD; AND ABIUD BEGAT ELIAKIM; AND ELIAKIM BEGAT AZOR;H# 14 AND AZOR BEGAT SADOC; AND SADOC BEGAT ACHIM; AND ACHIM BEGAT ELIUD;J# 15 AND ELIUD BEGAT ELEAZAR; AND ELEAZAR BEGAT MATTHAN; AND MATTHAN BEGAT JACOB;NL# 16 AND JACOB BEGAT JOSEPH THE HUSBAND OF MARY, OF WHOM WAS BORN JESUS, WHO IS CALLED CHRIST.K# 17 SO ALL THE GENERATIONS FROM ABRAHAM TO DAVID ARE FOURTEEN GENERATIONS;RN AND FROM DAVID UNTIL THE CARRYING AWAY INTO BABYLON ARE FOURTEEN GENERATIONS;N AND FROM THE CARRYING AWAY INTO BABYLON UNTO CHRIST ARE FOURTEEN GENERATIONS.L# 18 NOW THE BIRTH OF JESUS CHRIST WAS ON THIS WISE: WHEN AS HIS MOTHER MARYL WAS ESPOUSED TO JOSEPH, BEFORE THEY CAME TOGETHER, SHE WAS FOUND WITH CHILD OF THE HOLY GHOST.M# 19 THEN JOSEPH HER HUSBAND, BEING A JUST MAN, AND NOT WILLING TO MAKE HER AI5 PUBLICK EXAMPLE, WAS MINDED TO PUT HER AWAY PRIVILY.HH# 20 BUT WHILE HE THOUGHT ON THESE THINGS, BEHOLD, THE ANGEL OF THE LORDM APPEARED UNTO HIM IN A DREAM, SAYING, JOSEPH, THOU SON OF DAVID, FEAR NOT TOBK TAKE UNTO THEE MARY THY WIFE: FOR THAT WHICH IS CONCEIVED IN HER IS OF THEI HOLY GHOST.M# 21 AND SHE SHALL BRING FORTH A SON, AND THOU SHALT CALL HIS NAME JESUS: FORH* HE SHALL SAVE HIS PEOPLE FROM THEIR SINS.J# 22 NOW ALL THIS WAS DONE, THAT IT MIGHT BE FULFILLED WHICH WAS SPOKEN OF! THE LORD BY THE PROPHET, SAYING,IK# 23 BEHOLD, A VIRGIN SHALL BE WITH CHILD, AND SHALL BRING FORTH A SON, ANDHL THEY SHALL CALL HIS NAME EMMANUEL, WHICH BEING INTERPRETED IS, GOD WITH US.I# 24 THEN JOSEPH BEING RAISED FROM SLEEP DID AS THE ANGEL OF THE LORD HAD ( BIDDEN HIM, AND TOOK UNTO HIM HIS WIFE:K# 25 AND KNEW HER NOT TILL SHE HAD BROUGHT FORTH HER FIRST BORN SON: AND HE  CALLED HIS NAME JESUS.P = CHAPTER 2 K# 1 NOW WHEN JESUS WAS BORN IN BETHLEHEM OF JUDAEA IN THE DAYS OF HEROD THEO> KING, BEHOLD, THERE CAME WISE MEN FROM THE EAST TO JERUSALEM,K# 2 SAYING, WHERE IS HE THAT IS BORN KING OF THE JEWS? FOR WE HAVE SEEN HISS/ STAR IN THE EAST, AND ARE COME TO WORSHIP HIM.IH# 3 WHEN HEROD THE KING HAD HEARD THESE THINGS, HE WAS TROUBLED, AND ALL JERUSALEM WITH HIM.L# 4 AND WHEN HE HAD GATHERED ALL THE CHIEF PRIESTS AND SCRIBES OF THE PEOPLE; TOGETHER, HE DEMANDED OF THEM WHERE CHRIST SHOULD BE BORN.PM# 5 AND THEY SAID UNTO HIM, IN BETHLEHEM OF JUDAEA: FOR THUS IT IS WRITTEN BY THE PROPHET,HH# 6 AND THOU BETHLEHEM, IN THE LAND OF JUDA, ART NOT THE LEAST AMONG THEK PRINCES OF JUDA: FOR OUT OF THEE SHALL COME A GOVERNOR, THAT SHALL RULE MYA PEOPLE ISRAEL.RI# 7 THEN HEROD, WHEN HE HAD PRIVILY CALLED THE WISE MEN, ENQUIRED OF THEM,( DILIGENTLY WHAT TIME THE STAR APPEARED.M# 8 AND HE SENT THEM TO BETHLEHEM, AND SAID, GO AND SEARCH DILIGENTLY FOR THEHN YOUNG CHILD; AND WHEN YE HAVE FOUND HIM, BRING ME WORD AGAIN, THAT I MAY COME AND WORSHIP HIM ALSO.I# 9 WHEN THEY HAD HEARD THE KING, THEY DEPARTED; AND, LO, THE STAR, WHICHNN THEY SAW IN THE EAST, WENT BEFORE THEM, TILL IT CAME AND STOOD OVER WHERE THE YOUNG CHILD WAS.AD# 10 WHEN THEY SAW THE STAR, THEY REJOICED WITH EXCEEDING GREAT JOY.J# 11 AND WHEN THEY WERE COME INTO THE HOUSE, THEY SAW THE YOUNG CHILD WITHM MARY HIS MOTHER, AND FELL DOWN, AND WORSHIPPED HIM: AND WHEN THEY HAD OPENEDOK THEIR TREASURES, THEY PRESENTED UNTO HIM GIFTS; GOLD, AND FRANKINCENSE AND  MYRRH.M# 12 AND BEING WARNED OF GOD IN A DREAM THAT THEY SHOULD NOT RETURN TO HEROD,O2 THEY DEPARTED INTO THEIR OWN COUNTRY ANOTHER WAY.L# 13 AND WHEN THEY WERE DEPARTED, BEHOLD, THE ANGEL OF THE LORD APPEARETH TOK JOSEPH IN A DREAM, SAYING, ARISE, AND TAKE THE YOUNG CHILD AND HIS MOTHER,YJ AND FLEE INTO EGYPT, AND BE THOU THERE UNTIL I BRING THEE WORD: FOR HEROD* WILL SEEK THE YOUNG CHILD TO DESTROY HIM.H# 14 WHEN HE AROSE, HE TOOK THE YOUNG CHILD AND HIS MOTHER BY NIGHT, AND DEPARTED INTO EGYPT:MM# 15 AND WAS THERE UNTIL THE DEATH OF HEROD: THAT IT MIGHT BE FULFILLED WHICHHM WAS SPOKEN OF THE LORD BY THE PROPHET, SAYING, OUT OF EGYPT HAVE 00*@ @<%X>%+%O-%TADATADATAI CALLED MYW SON.AD# 16 THEN HEROD, WHEN HE SAW THAT HE WAS MOCKED OF THE WISE MEN, WASH EXCEEDING WROTH, AND SENT FORTH, AND SLEW ALL THE CHILDREN THAT WERE INH BETHLEHEM, AND IN ALL THE COASTS THEREOF, FROM TWO YEARS OLD AND UNDER,H ACCORDING TO THE TIME WHICH HE HAD DILIGENTLY ENQUIRED OF THE WISE MEN.L# 17 THEN WAS FULFILLED THAT WHICH WAS SPOKEN BY JEREMY THE PROPHET, SAYING,I# 18 IN RAMA WAS THERE A VOICE HEARD, LAMENTATION, AND WEEPING, AND GREATLG MOURNING, RACHEL WEEPING FOR HER CHILDREN, AND WOULD NOT BE COMFORTED,T BECAUSE THEY ARE NOT.I# 19 BUT WHEN HEROD WAS DEAD, BEHOLD, AN ANGEL OF THE LORD APPEARETH IN AN DREAM TO JOSEPH IN EGYPT,L# 20 SAYING, ARISE, AND TAKE THE YOUNG CHILD AND HIS MOTHER, AND GO INTO THEF LAND OF ISRAEL: FOR THEY ARE DEAD WHICH SOUGHT THE YOUNG CHILDS LIFE.M# 21 AND HE AROSE, AND TOOK THE YOUNG CHILD AND HIS MOTHER, AND CAME INTO THEY LAND OF ISRAEL.L# 22 BUT WHEN HE HEARD THAT ARCHELAUS DID REIGN IN JUDAEA IN THE ROOM OF HISL FATHER HEROD, HE WAS AFRAID TO GO THITHER: NOTWITHSTANDING, BEING WARNED OF; GOD IN A DREAM, HE TURNED ASIDE INTO THE PARTS OF GALILEE:OF# 23 AND HE CAME AND DWELT IN A CITY CALLED NAZARETH: THAT IT MIGHT BEK FULFILLED WHICH WAS SPOKEN BY THE PROPHETS, HE SHALL BE CALLED A NAZARENE.E = CHAPTER 3 G# 1 IN THOSE DAYS CAME JOHN THE BAPTIST, PREACHING IN THE WILDERNESS OFH JUDAEA,@# 2 AND SAYING, REPENT YE: FOR THE KINGDOM OF HEAVEN IS AT HAND.H# 3 FOR THIS IS HE THAT WAS SPOKEN OF BY THE PROPHET ESAIAS, SAYING, THEL VOICE OF ONE CRYING IN THE WILDERNESS, PREPARE YE THE WAY OF THE LORD, MAKE HIS PATHS STRAIGHT.K# 4 AND THE SAME JOHN HAD HIS RAIMENT OF CAMELS HAIR, AND A LEATHERN GIRDLEH: ABOUT HIS LOINS; AND HIS MEAT WAS LOCUSTS AND WILD HONEY.L# 5 THEN WENT OUT TO HIM JERUSALEM, AND ALL JUDAEA, AND ALL THE REGION ROUND ABOUT JORDAN,># 6 AND WERE BAPTIZED OF HIM IN JORDAN, CONFESSING THEIR SINS.L# 7 BUT WHEN HE SAW MANY OF THE PHARISEES AND SADDUCEES COME TO HIS BAPTISM,L HE SAID UNTO THEM, O GENERATION OF VIPERS, WHO HATH WARNED YOU TO FLEE FROM THE WRATH TO COME?O5# 8 BRING FORTH THEREFORE FRUITS MEET FOR REPENTANCE:EJ# 9 AND THINK NOT TO SAY WITHIN YOURSELVES, WE HAVE ABRAHAM TO OUR FATHER:J FOR I SAY UNTO YOU, THAT GOD IS ABLE OF THESE STONES TO RAISE UP CHILDREN UNTO ABRAHAM.M# 10 AND NOW ALSO THE AXE IS LAID UNTO THE ROOT OF THE TREES: THEREFORE EVERY I TREE WHICH BRINGETH NOT FORTH GOOD FRUIT IS HEWN DOWN, AND CAST INTO THEN FIRE.H# 11 I INDEED BAPTIZE YOU WITH WATER UNTO REPENTANCE. BUT HE THAT COMETHK AFTER ME IS MIGHTIER THAN I, WHOSE SHOES I AM NOT WORTHY TO BEAR: HE SHALL 0 BAPTIZE YOU WITH THE HOLY GHOST, AND WITH FIRE:I# 12 WHOSE FAN IS IN HIS HAND, AND HE WILL THROUGHLY PURGE HIS FLOOR, AND,E GATHER HIS WHEAT INTO THE GARNER; BUT HE WILL BURN UP THE CHAFF WITH UNQUENCHABLE FIRE. J# 13 THEN COMETH JESUS FROM GALILEE TO JORDAN UNTO JOHN, TO BE BAPTIZED OF HIM.FI# 14 BUT JOHN FORBAD HIM, SAYING, I HAVE NEED TO BE BAPTIZED OF THEE, ANDT COMEST THOU TO ME?TK# 15 AND JESUS ANSWERING SAID UNTO HIM, SUFFER IT TO BE SO NOW: FOR THUS IT ? BECOMETH US TO FULFIL ALL RIGHTEOUSNESS. THEN HE SUFFERED HIM.TK# 16 AND JESUS, WHEN HE WAS BAPTIZED, WENT UP STRAIGHTWAY OUT OF THE WATER:HH AND, LO, THE HEAVENS WERE OPENED UNTO HIM, AND HE SAW THE SPIRIT OF GOD/ DESCENDING LIKE A DOVE, AND LIGHTING UPON HIM:EM# 17 AND LO A VOICE FROM HEAVEN, SAYING, THIS IS MY BELOVED SON, IN WHOM I AMJ WELL PLEASED. = CHAPTER 4 L# 1 THEN WAS JESUS LED UP OF THE SPIRIT INTO THE WILDERNESS TO BE TEMPTED OF THE DEVIL.OK# 2 AND WHEN HE HAD FASTED FORTY DAYS AND FORTY NIGHTS, HE WAS AFTERWARD ANO HUNGRED.NI# 3 AND WHEN THE TEMPTER CAME TO HIM, HE SAID, IF THOU BE THE SON OF GOD,A) COMMAND THAT THESE STONES BE MADE BREAD. H# 4 BUT HE ANSWERED AND SAID, IT IS WRITTEN, MAN SHALL NOT LIVE BY BREADB ALONE, BUT BY EVERY WORD THAT PROCEEDETH OUT OF THE MOUTH OF GOD.I# 5 THEN THE DEVIL TAKETH HIM UP INTO THE HOLY CITY, AND SETTETH HIM ON AH PINNACLE OF THE TEMPLE,L# 6 AND SAITH UNTO HIM, IF THOU BE THE SON OF GOD, CAS002@?D%5%T6%! !T THYSELF DOWN: FOR ITJ IS WRITTEN, HE SHALL GIVE HIS ANGELS CHARGE CONCERNING THEE: AND IN THEIRM HANDS THEY SHALL BEAR THEE UP, LEST AT ANY TIME THOU DASH THY FOOT AGAINST AD STONE.SK# 7 JESUS SAID UNTO HIM, IT IS WRITTEN AGAIN, THOU SHALT NOT TEMPT THE LORDA THY GOD. G# 8 AGAIN, THE DEVIL TAKETH HIM UP INTO AN EXCEEDING HIGH MOUNTAIN, ANDOB SHEWETH HIM ALL THE KINGDOMS OF THE WORLD, AND THE GLORY OF THEM;L# 9 AND SAITH UNTO HIM, ALL THESE THINGS WILL I GIVE THEE, IF THOU WILT FALL DOWN AND WORSHIP ME. I# 10 THEN SAITH JESUS UNTO HIM, GET THEE HENCE, SATAN: FOR IT IS WRITTEN, D THOU SHALT WORSHIP THE LORD THY GOD, AND HIM ONLY SHALT THOU SERVE.M# 11 THEN THE DEVIL LEAVETH HIM, AND, BEHOLD, ANGELS CAME AND MINISTERED UNTO  HIM.AI# 12 NOW WHEN JESUS HAD HEARD THAT JOHN WAS CAST INTO PRISON, HE DEPARTED  INTO GALILEE;L# 13 AND LEAVING NAZARETH, HE CAME AND DWELT IN CAPERNAUM, WHICH IS UPON THE5 SEA COAST, IN THE BORDERS OF ZABULON AND NEPHTHALIM: G# 14 THAT IT MIGHT BE FULFILLED WHICH WAS SPOKEN BY ESAIAS THE PROPHET,U SAYING,L# 15 THE LAND OF ZABULON, AND THE LAND OF NEPHTHALIM, BY THE WAY OF THE SEA,( BEYOND JORDAN, GALILEE OF THE GENTILES;L# 16 THE PEOPLE WHICH SAT IN DARKNESS SAW GREAT LIGHT; AND TO THEM WHICH SAT6 IN THE REGION AND SHADOW OF DEATH LIGHT IS SPRUNG UP.F# 17 FROM THAT TIME JESUS BEGAN TO PREACH, AND TO SAY, REPENT: FOR THE KINGDOM OF HEAVEN IS AT HAND.M# 18 AND JESUS, WALKING BY THE SEA OF GALILEE, SAW TWO BRETHREN, SIMON CALLEDAI PETER, AND ANDREW HIS BROTHER, CASTING A NET INTO THE SEA: FOR THEY WERE FISHERS.NK# 19 AND HE SAITH UNTO THEM, FOLLOW ME, AND I WILL MAKE YOU FISHERS OF MEN.D<# 20 AND THEY STRAIGHTWAY LEFT THEIR NETS, AND FOLLOWED HIM.J# 21 AND GOING ON FROM THENCE, HE SAW OTHER TWO BRETHREN, JAMES THE SON OFL ZEBEDEE, AND JOHN HIS BROTHER, IN A SHIP WITH ZEBEDEE THEIR FATHER, MENDING THEIR NETS; AND HE CALLED THEM.K# 22 AND THEY IMMEDIATELY LEFT THE SHIP AND THEIR FATHER, AND FOLLOWED HIM.HH# 23 AND JESUS WENT ABOUT ALL GALILEE, TEACHING IN THEIR SYNAGOGUES, ANDL PREACHING THE GOSPEL OF THE KINGDOM, AND HEALING ALL MANNER OF SICKNESS AND( ALL MANNER OF DISEASE AMONG THE PEOPLE.J# 24 AND HIS FAME WENT THROUGHOUT ALL SYRIA: AND THEY BROUGHT UNTO HIM ALLI SICK PEOPLE THAT WERE TAKEN WITH DIVERS DISEASES AND TORMENTS, AND THOSESK WHICH WERE POSSESSED WITH DEVILS, AND THOSE WHICH WERE LUNATICK, AND THOSEA( THAT HAD THE PALSY; AND HE HEALED THEM.M# 25 AND THERE FOLLOWED HIM GREAT MULTITUDES OF PEOPLE FROM GALILEE, AND FROMAH DECAPOLIS, AND FROM JERUSALEM, AND FROM JUDAEA, AND FROM BEYOND JORDAN. = CHAPTER 5 J# 1 AND SEEING THE MULTITUDES, HE WENT UP INTO A MOUNTAIN: AND WHEN HE WAS" SET, HIS DISCIPLES CAME UNTO HIM:5# 2 AND HE OPENED HIS MOUTH, AND TAUGHT THEM, SAYING, H# 3 BLESSED ARE THE POOR IN SPIRIT: FOR THEIRS IS THE KINGDOM OF HEAVEN.=# 4 BLESSED ARE THEY THAT MOURN: FOR THEY SHALL BE COMFORTED.T;# 5 BLESSED ARE THE MEEK: FOR THEY SHALL INHERIT THE EARTH.EM# 6 BLESSED ARE THEY WHICH DO HUNGER AND THIRST AFTER RIGHTEOUSNESS: FOR THEYJ SHALL BE FILLED.J:# 7 BLESSED ARE THE MERCIFUL: FOR THEY SHALL OBTAIN MERCY.:# 8 BLESSED ARE THE PURE IN HEART: FOR THEY SHALL SEE GOD.I# 9 BLESSED ARE THE PEACEMAKERS: FOR THEY SHALL BE CALLED THE CHILDREN OFH GOD. M# 10 BLESSED ARE THEY WHICH ARE PERSECUTED FOR RIGHTEOUSNESS SAKE: FOR THEIRSE IS THE KINGDOM OF HEAVEN.L# 11 BLESSED ARE YE, WHEN MEN SHALL REVILE YOU, AND PERSECUTE YOU, AND SHALL9 SAY ALL MANNER OF EVIL AGAINST YOU FALSELY, FOR MY SAKE.RL# 12 REJOICE, AND BE EXCEEDING GLAD: FOR GREAT IS YOUR REWARD IN HEAVEN: FOR7 SO PERSECUTED THEY THE PROPHETS WHICH WERE BEFORE YOU. H# 13 YE ARE THE SALT OF THE EARTH: BUT IF THE SALT HAVE LOST HIS SAVOUR,L WHEREWITH SHALL IT BE SALTED? IT IS THENCEFORTH GOOD FOR NOTHING, BUT TO BE/ CAST OUT, AND TO BE TRODDEN UNDER FOOT OF MEN.RK# 14 YE ARE THE LIGHT OF THE WORLD. A CITY THAT IS SET ON AN HILL CANNOT BEI HID. G# 15 NEITHER DO MEN LIGHT A CANDLE, AND PUT IT UNDER A BUSHEL, BUT ON A,A CANDLESTICK; AND IT GIVETH LIGHT UNTO ALL THA00:@ @<%X>%+%O-%TADATADATAT ARE IN THE HOUSE.OK# 16 LET YOUR LIGHT SO SHINE BEFORE MEN, THAT THEY MAY SEE YOUR GOOD WORKS,Y, AND GLORIFY YOUR FATHER WHICH IS IN HEAVEN.K# 17 THINK NOT THAT I AM COME TO DESTROY THE LAW, OR THE PROPHETS: I AM NOTF COME TO DESTROY, BUT TO FULFIL.J# 18 FOR VERILY I SAY UNTO YOU, TILL HEAVEN AND EARTH PASS, ONE JOT OR ONEB TITTLE SHALL IN NO WISE PASS FROM THE LAW, TILL ALL BE FULFILLED.I# 19 WHOSOEVER THEREFORE SHALL BREAK ONE OF THESE LEAST COMMANDMENTS, ANDIK SHALL TEACH MEN SO, HE SHALL BE CALLED THE LEAST IN THE KINGDOM OF HEAVEN: M BUT WHOSOEVER SHALL DO AND TEACH THEM, THE SAME SHALL BE CALLED GREAT IN THEH KINGDOM OF HEAVEN..H# 20 FOR I SAY UNTO YOU, THAT EXCEPT YOUR RIGHTEOUSNESS SHALL EXCEED THEK RIGHTEOUSNESS OF THE SCRIBES AND PHARISEES, YE SHALL IN NO CASE ENTER INTOH THE KINGDOM OF HEAVEN. M# 21 YE HAVE HEARD THAT IT WAS SAID OF THEM OF OLD TIME, THOU SHALT NOT KILL;= AND WHOSOEVER SHALL KILL SHALL BE IN DANGER OF THE JUDGMENT:MK# 22 BUT I SAY UNTO YOU, THAT WHOSOEVER IS ANGRY WITH HIS BROTHER WITHOUT AOI CAUSE SHALL BE IN DANGER OF THE JUDGMENT: AND WHOSOEVER SHALL SAY TO HISDK BROTHER, RACA, SHALL BE IN DANGER OF THE COUNCIL: BUT WHOSOEVER SHALL SAY,U, THOU FOOL, SHALL BE IN DANGER OF HELL FIRE.I# 23 THEREFORE IF THOU BRING THY GIFT TO THE ALTAR, AND THERE REMEMBERESTD* THAT THY BROTHER HATH OUGHT AGAINST THEE;D# 24 LEAVE THERE THY GIFT BEFORE THE ALTAR, AND GO THY WAY; FIRST BE= RECONCILED TO THY BROTHER, AND THEN COME AND OFFER THY GIFT.TM# 25 AGREE WITH THINE ADVERSARY QUICKLY, WHILES THOU ART IN THE WAY WITH HIM;DH LEST AT ANY TIME THE ADVERSARY DELIVER THEE TO THE JUDGE, AND THE JUDGE; DELIVER THEE TO THE OFFICER, AND THOU BE CAST INTO PRISON.TI# 26 VERILY I SAY UNTO THEE, THOU SHALT BY NO MEANS COME OUT THENCE, TILLY' THOU HAST PAID THE UTTERMOST FARTHING.DG# 27 YE HAVE HEARD THAT IT WAS SAID BY THEM OF OLD TIME, THOU SHALT NOTE COMMIT ADULTERY: L# 28 BUT I SAY UNTO YOU, THAT WHOSOEVER LOOKETH ON A WOMAN TO LUST AFTER HER7 HATH COMMITTED ADULTERY WITH HER ALREADY IN HIS HEART.HK# 29 AND IF THY RIGHT EYE OFFEND THEE, PLUCK IT OUT, AND CAST IT FROM THEE: M FOR IT IS PROFITABLE FOR THEE THAT ONE OF THY MEMBERS SHOULD PERISH, AND NOTR. THAT THY WHOLE BODY SHOULD BE CAST INTO HELL.J# 30 AND IF THY RIGHT HAND OFFEND THEE, CUT IT OFF, AND CAST IT FROM THEE:M FOR IT IS PROFITABLE FOR THEE THAT ONE OF THY MEMBERS SHOULD PERISH, AND NOTM. THAT THY WHOLE BODY SHOULD BE CAST INTO HELL.M# 31 IT HATH BEEN SAID, WHOSOEVER SHALL PUT AWAY HIS WIFE, LET HIM GIVE HER A  WRITING OF DIVORCEMENT:K# 32 BUT I SAY UNTO YOU, THAT WHOSOEVER SHALL PUT AWAY HIS WIFE, SAVING FORFN THE CAUSE OF FORNICATION, CAUSETH HER TO COMMIT ADULTERY: AND WHOSOEVER SHALL0 MARRY HER THAT IS DIVORCED COMMITTETH ADULTERY.J# 33 AGAIN, YE HAVE HEARD THAT IT HATH BEEN SAID BY THEM OF OLD TIME, THOUI SHALT NOT FORSWEAR THYSELF, BUT SHALT PERFORM UNTO THE LORD THINE OATHS:L# 34 BUT I SAY UNTO YOU, SWEAR NOT AT ALL; NEITHER BY HEAVEN; FOR IT IS GODS THRONE:L# 35 NOR BY THE EARTH; FOR IT IS HIS FOOTSTOOL: NEITHER BY JERUSALEM; FOR IT IS THE CITY OF THE GREAT KING. J# 36 NEITHER SHALT THOU SWEAR BY THY HEAD, BECAUSE THOU CANST NOT MAKE ONE HAIR WHITE OR BLACK.OI# 37 BUT LET YOUR COMMUNICATION BE, YEA, YEA; NAY, NAY: FOR WHATSOEVER ISE MORE THAN THESE COMETH OF EVIL.M# 38 YE HAVE HEARD THAT IT HATH BEEN SAID, AN EYE FOR AN EYE, AND A TOOTH FOR A TOOTH:IK# 39 BUT I SAY UNTO YOU, THAT YE RESIST NOT EVIL: BUT WHOSOEVER SHALL SMITE 5 THEE ON THY RIGHT CHEEK, TURN TO HIM THE OTHER ALSO.HM# 40 AND IF ANY MAN WILL SUE THEE AT THE LAW, AND TAKE AWAY THY COAT, LET HIM  HAVE THY CLOAK ALSO.WE# 41 AND WHOSOEVER SHALL COMPEL THEE TO GO A MILE, GO WITH HIM TWAIN.OI# 42 GIVE TO HIM THAT ASKETH THEE, AND FROM HIM THAT WOULD BORROW OF THEEE TURN NOT THOU AWAY.M# 43 YE HAVE HEARD THAT IT HATH BEEN SAID, THOU SHALT LOVE THY NEIGHBOUR, AND  HATE THINE ENEMY.I# 44 BUT I SAY UNTO YOU, LOVE YOUR ENEMIES, BLESS THEM THAT CURSE YOU, DO N GOOD TO THEM THAT HATE YOU, AND PRAY FOR THEM WHICH DESPI00B@?D%5%T6%! !TEFULLY USE YOU, AND PERSECUTE YOU; J# 45 THAT YE MAY BE THE CHILDREN OF YOUR FATHER WHICH IS IN HEAVEN: FOR HEL MAKETH HIS SUN TO RISE ON THE EVIL AND ON THE GOOD, AND SENDETH RAIN ON THE JUST AND ON THE UNJUST.M# 46 FOR IF YE LOVE THEM WHICH LOVE YOU, WHAT REWARD HAVE YE? DO NOT EVEN THET PUBLICANS THE SAME?M# 47 AND IF YE SALUTE YOUR BRETHREN ONLY, WHAT DO YE MORE THAN OTHERS? DO NOTO EVEN THE PUBLICANS SO?SG# 48 BE YE THEREFORE PERFECT, EVEN AS YOUR FATHER WHICH IS IN HEAVEN ISM PERFECT.I = CHAPTER 6 F# 1 TAKE HEED THAT YE DO NOT YOUR ALMS BEFORE MEN, TO BE SEEN OF THEM:? OTHERWISE YE HAVE NO REWARD OF YOUR FATHER WHICH IS IN HEAVEN. M# 2 THEREFORE WHEN THOU DOEST THINE ALMS, DO NOT SOUND A TRUMPET BEFORE THEE, N AS THE HYPOCRITES DO IN THE SYNAGOGUES AND IN THE STREETS, THAT THEY MAY HAVE= GLORY OF MEN. VERILY I SAY UNTO YOU, THEY HAVE THEIR REWARD.ML# 3 BUT WHEN THOU DOEST ALMS, LET NOT THY LEFT HAND KNOW WHAT THY RIGHT HAND DOETH:AJ# 4 THAT THINE ALMS MAY BE IN SECRET: AND THY FATHER WHICH SEETH IN SECRET" HIMSELF SHALL REWARD THEE OPENLY.L# 5 AND WHEN THOU PRAYEST, THOU SHALT NOT BE AS THE HYPOCRITES ARE: FOR THEYK LOVE TO PRAY STANDING IN THE SYNAGOGUES AND IN THE CORNERS OF THE STREETS,BM THAT THEY MAY BE SEEN OF MEN. VERILY I SAY UNTO YOU, THEY HAVE THEIR REWARD.TJ# 6 BUT THOU, WHEN THOU PRAYEST, ENTER INTO THY CLOSET, AND WHEN THOU HASTK SHUT THY DOOR, PRAY TO THY FATHER WHICH IS IN SECRET; AND THY FATHER WHICHD* SEETH IN SECRET SHALL REWARD THEE OPENLY.K# 7 BUT WHEN YE PRAY, USE NOT VAIN REPETITIONS, AS THE HEATHEN DO: FOR THEY.8 THINK THAT THEY SHALL BE HEARD FOR THEIR MUCH SPEAKING.K# 8 BE NOT YE THEREFORE LIKE UNTO THEM: FOR YOUR FATHER KNOWETH WHAT THINGSN$ YE HAVE NEED OF, BEFORE YE ASK HIM.H# 9 AFTER THIS MANNER THEREFORE PRAY YE: OUR FATHER WHICH ART IN HEAVEN, HALLOWED BE THY NAME.E# 10 THY KINGDOM COME, THY WILL BE DONE IN EARTH, AS IT IS IN HEAVEN.A&# 11 GIVE US THIS DAY OUR DAILY BREAD.9# 12 AND FORGIVE US OUR DEBTS, AS WE FORGIVE OUR DEBTORS. L# 13 AND LEAD US NOT INTO TEMPTATION, BUT DELIVER US FROM EVIL: FOR THINE IS; THE KINGDOM, AND THE POWER, AND THE GLORY, FOR EVER. AMEN.YK# 14 FOR IF YE FORGIVE MEN THEIR TRESPASSES, YOUR HEAVENLY FATHER WILL ALSOE FORGIVE YOU: I# 15 BUT IF YE FORGIVE NOT MEN THEIR TRESPASSES, NEITHER WILL YOUR FATHERH FORGIVE YOUR TRESPASSES.ML# 16 MOREOVER WHEN YE FAST, BE NOT, AS THE HYPOCRITES, OF A SAD COUNTENANCE:N FOR THEY DISFIGURE THEIR FACES, THAT THEY MAY APPEAR UNTO MEN TO FAST. VERILY( I SAY UNTO YOU, THEY HAVE THEIR REWARD.G# 17 BUT THOU, WHEN THOU FASTEST, ANOINT THINE HEAD, AND WASH THY FACE;HK# 18 THAT THOU APPEAR NOT UNTO MEN TO FAST, BUT UNTO THY FATHER WHICH IS INEI SECRET: AND THY FATHER, WHICH SEETH IN SECRET, SHALL REWARD THEE OPENLY.RM# 19 LAY NOT UP FOR YOURSELVES TREASURES UPON EARTH, WHERE MOTH AND RUST DOTHS4 CORRUPT, AND WHERE THIEVES BREAK THROUGH AND STEAL:J# 20 BUT LAY UP FOR YOURSELVES TREASURES IN HEAVEN, WHERE NEITHER MOTH NORE RUST DOTH CORRUPT, AND WHERE THIEVES DO NOT BREAK THROUGH NOR STEAL:R?# 21 FOR WHERE YOUR TREASURE IS, THERE WILL YOUR HEART BE ALSO. L# 22 THE LIGHT OF THE BODY IS THE EYE: IF THEREFORE THINE EYE BE SINGLE, THY# WHOLE BODY SHALL BE FULL OF LIGHT.WK# 23 BUT IF THINE EYE BE EVIL, THY WHOLE BODY SHALL BE FULL OF DARKNESS. IFVM THEREFORE THE LIGHT THAT IS IN THEE BE DARKNESS, HOW GREAT IS THAT DARKNESS! L# 24 NO MAN CAN SERVE TWO MASTERS: FOR EITHER HE WILL HATE THE ONE, AND LOVEM THE OTHER; OR ELSE HE WILL HOLD TO THE ONE, AND DESPISE THE OTHER. YE CANNOTU SERVE GOD AND MAMMON.K# 25 THEREFORE I SAY UNTO YOU, TAKE NO THOUGHT FOR YOUR LIFE, WHAT YE SHALLHM EAT, OR WHAT YE SHALL DRINK; NOR YET FOR YOUR BODY, WHAT YE SHALL PUT ON. ISF8 NOT THE LIFE MORE THAN MEAT, AND THE BODY THAN RAIMENT?M# 26 BEHOLD THE FOWLS OF THE AIR: FOR THEY SOW NOT, NEITHER DO THEY REAP, NORKJ GATHER INTO BARNS; YET YOUR HEAVENLY FATHER FEEDETH THEM. ARE YE NOT MUCH BETTER THAN THEY?G# 27 WHICH OF YOU BY TAKING THOUGHT CAN ADD ONE CUBIT UNTO HIS STATURE?EK# 28 AND WHY T00J@ @<%X>%+%O-%TADATADATAAKE YE THOUGHT FOR RAIMENT? CONSIDER THE LILIES OF THE FIELD,,4 HOW THEY GROW; THEY TOIL NOT, NEITHER DO THEY SPIN:G# 29 AND YET I SAY UNTO YOU, THAT EVEN SOLOMON IN ALL HIS GLORY WAS NOT ARRAYED LIKE ONE OF THESE. M# 30 WHEREFORE, IF GOD SO CLOTHE THE GRASS OF THE FIELD, WHICH TO DAY IS, AND L TO MORROW IS CAST INTO THE OVEN, SHALL HE NOT MUCH MORE CLOTHE YOU, O YE OF LITTLE FAITH?L# 31 THEREFORE TAKE NO THOUGHT, SAYING, WHAT SHALL WE EAT? OR, WHAT SHALL WE, DRINK? OR, WHEREWITHAL SHALL WE BE CLOTHED?I# 32 (FOR AFTER ALL THESE THINGS DO THE GENTILES SEEK:) FOR YOUR HEAVENLYH6 FATHER KNOWETH THAT YE HAVE NEED OF ALL THESE THINGS.I# 33 BUT SEEK YE FIRST THE KINGDOM OF GOD, AND HIS RIGHTEOUSNESS; AND ALLT& THESE THINGS SHALL BE ADDED UNTO YOU.H# 34 TAKE THEREFORE NO THOUGHT FOR THE MORROW: FOR THE MORROW SHALL TAKEF THOUGHT FOR THE THINGS OF ITSELF. SUFFICIENT UNTO THE DAY IS THE EVIL THEREOF.T = CHAPTER 7 %# 1 JUDGE NOT, THAT YE BE NOT JUDGED.HF# 2 FOR WITH WHAT JUDGMENT YE JUDGE, YE SHALL BE JUDGED: AND WITH WHAT4 MEASURE YE METE, IT SHALL BE MEASURED TO YOU AGAIN.D# 3 AND WHY BEHOLDEST THOU THE MOTE THAT IS IN THY BROTHERS EYE, BUT3 CONSIDEREST NOT THE BEAM THAT IS IN THINE OWN EYE?SH# 4 OR HOW WILT THOU SAY TO THY BROTHER, LET ME PULL OUT THE MOTE OUT OF4 THINE EYE; AND, BEHOLD, A BEAM IS IN THINE OWN EYE?J# 5 THOU HYPOCRITE, FIRST CAST OUT THE BEAM OUT OF THINE OWN EYE; AND THENE SHALT THOU SEE CLEARLY TO CAST OUT THE MOTE OUT OF THY BROTHERS EYE.HJ# 6 GIVE NOT THAT WHICH IS HOLY UNTO THE DOGS, NEITHER CAST YE YOUR PEARLSJ BEFORE SWINE, LEST THEY TRAMPLE THEM UNDER THEIR FEET, AND TURN AGAIN AND REND YOU.J# 7 ASK, AND IT SHALL BE GIVEN YOU; SEEK, AND YE SHALL FIND; KNOCK, AND IT SHALL BE OPENED UNTO YOU:L# 8 FOR EVERY ONE THAT ASKETH RECEIVETH; AND HE THAT SEEKETH FINDETH; AND TO& HIM THAT KNOCKETH IT SHALL BE OPENED.L# 9 OR WHAT MAN IS THERE OF YOU, WHOM IF HIS SON ASK BREAD, WILL HE GIVE HIM A STONE?U5# 10 OR IF HE ASK A FISH, WILL HE GIVE HIM A SERPENT? L# 11 IF YE THEN, BEING EVIL, KNOW HOW TO GIVE GOOD GIFTS UNTO YOUR CHILDREN,L HOW MUCH MORE SHALL YOUR FATHER WHICH IS IN HEAVEN GIVE GOOD THINGS TO THEM THAT ASK HIM?K# 12 THEREFORE ALL THINGS WHATSOEVER YE WOULD THAT MEN SHOULD DO TO YOU, DO: YE EVEN SO TO THEM: FOR THIS IS THE LAW AND THE PROPHETS.K# 13 ENTER YE IN AT THE STRAIT GATE: FOR WIDE IS THE GATE, AND BROAD IS THETI WAY, THAT LEADETH TO DESTRUCTION, AND MANY THERE BE WHICH GO IN THEREAT:OJ# 14 BECAUSE STRAIT IS THE GATE, AND NARROW IS THE WAY, WHICH LEADETH UNTO% LIFE, AND FEW THERE BE THAT FIND IT.RH# 15 BEWARE OF FALSE PROPHETS, WHICH COME TO YOU IN SHEEPS CLOTHING, BUT# INWARDLY THEY ARE RAVENING WOLVES.TK# 16 YE SHALL KNOW THEM BY THEIR FRUITS. DO MEN GATHER GRAPES OF THORNS, ORV FIGS OF THISTLES?J# 17 EVEN SO EVERY GOOD TREE BRINGETH FORTH GOOD FRUIT; BUT A CORRUPT TREE BRINGETH FORTH EVIL FRUIT. J# 18 A GOOD TREE CANNOT BRING FORTH EVIL FRUIT, NEITHER CAN A CORRUPT TREE BRING FORTH GOOD FRUIT.I# 19 EVERY TREE THAT BRINGETH NOT FORTH GOOD FRUIT IS HEWN DOWN, AND CASTE INTO THE FIRE.R2# 20 WHEREFORE BY THEIR FRUITS YE SHALL KNOW THEM.G# 21 NOT EVERY ONE THAT SAITH UNTO ME, LORD, LORD, SHALL ENTER INTO THELG KINGDOM OF HEAVEN; BUT HE THAT DOETH THE WILL OF MY FATHER WHICH IS INF HEAVEN.K# 22 MANY WILL SAY TO ME IN THAT DAY, LORD, LORD, HAVE WE NOT PROPHESIED INJ THY NAME? AND IN THY NAME HAVE CAST OUT DEVILS? AND IN THY NAME DONE MANY WONDERFUL WORKS?RL# 23 AND THEN WILL I PROFESS UNTO THEM, I NEVER KNEW YOU: DEPART FROM ME, YE THAT WORK INIQUITY.I# 24 THEREFORE WHOSOEVER HEARETH THESE SAYINGS OF MINE, AND DOETH THEM, ITC WILL LIKEN HIM UNTO A WISE MAN, WHICH BUILT HIS HOUSE UPON A ROCK:II# 25 AND THE RAIN DESCENDED, AND THE FLOODS CAME, AND THE WINDS BLEW, AND G BEAT UPON THAT HOUSE; AND IT FELL NOT: FOR IT WAS FOUNDED UPON A ROCK.WJ# 26 AND EVERY ONE THAT HEARETH THESE SAYINGS OF MINE, AND DOETH THEM NOT,J SHALL BE LIKENED UNTO A FOOLISH MAN, WHICH BUILT HIS HOUSE UPON THE SAND:I# 27 AND THE RAIN DESCENDED, AND T00R@?D%5%T6%! !HE FLOODS CAME, AND THE WINDS BLEW, ANDEA BEAT UPON THAT HOUSE; AND IT FELL: AND GREAT WAS THE FALL OF IT.WM# 28 AND IT CAME TO PASS, WHEN JESUS HAD ENDED THESE SAYINGS, THE PEOPLE WEREE ASTONISHED AT HIS DOCTRINE:H# 29 FOR HE TAUGHT THEM AS ONE HAVING AUTHORITY, AND NOT AS THE SCRIBES. = CHAPTER 8 K# 1 WHEN HE WAS COME DOWN FROM THE MOUNTAIN, GREAT MULTITUDES FOLLOWED HIM.DM# 2 AND, BEHOLD, THERE CAME A LEPER AND WORSHIPPED HIM, SAYING, LORD, IF THOUP WILT, THOU CANST MAKE ME CLEAN.J# 3 AND JESUS PUT FORTH HIS HAND, AND TOUCHED HIM, SAYING, I WILL; BE THOU1 CLEAN. AND IMMEDIATELY HIS LEPROSY WAS CLEANSED.8H# 4 AND JESUS SAITH UNTO HIM, SEE THOU TELL NO MAN; BUT GO THY WAY, SHEWF THYSELF TO THE PRIEST, AND OFFER THE GIFT THAT MOSES COMMANDED, FOR A TESTIMONY UNTO THEM. D# 5 AND WHEN JESUS WAS ENTERED INTO CAPERNAUM, THERE CAME UNTO HIM A CENTURION, BESEECHING HIM,DL# 6 AND SAYING, LORD, MY SERVANT LIETH AT HOME SICK OF THE PALSY, GRIEVOUSLY TORMENTED.O7# 7 AND JESUS SAITH UNTO HIM, I WILL COME AND HEAL HIM. D# 8 THE CENTURION ANSWERED AND SAID, LORD, I AM NOT WORTHY THAT THOUL SHOULDEST COME UNDER MY ROOF: BUT SPEAK THE WORD ONLY, AND MY SERVANT SHALL BE HEALED. J# 9 FOR I AM A MAN UNDER AUTHORITY, HAVING SOLDIERS UNDER ME: AND I SAY TOK THIS MAN, GO, AND HE GOETH; AND TO ANOTHER, COME, AND HE COMETH; AND TO MYE# SERVANT, DO THIS, AND HE DOETH IT.IG# 10 WHEN JESUS HEARD IT, HE MARVELLED, AND SAID TO THEM THAT FOLLOWED,YK VERILY I SAY UNTO YOU, I HAVE NOT FOUND SO GREAT FAITH, NO, NOT IN ISRAEL.LI# 11 AND I SAY UNTO YOU, THAT MANY SHALL COME FROM THE EAST AND WEST, ANDUM SHALL SIT DOWN WITH ABRAHAM, AND ISAAC, AND JACOB, IN THE KINGDOM OF HEAVEN.K# 12 BUT THE CHILDREN OF THE KINGDOM SHALL BE CAST OUT INTO OUTER DARKNESS:N. THERE SHALL BE WEEPING AND GNASHING OF TEETH.D# 13 AND JESUS SAID UNTO THE CENTURION, GO THY WAY; AND AS THOU HASTN BELIEVED, SO BE IT DONE UNTO THEE. AND HIS SERVANT WAS HEALED IN THE SELFSAME HOUR.M# 14 AND WHEN JESUS WAS COME INTO PETERS HOUSE, HE SAW HIS WIFES MOTHER LAID,A AND SICK OF A FEVER. H# 15 AND HE TOUCHED HER HAND, AND THE FEVER LEFT HER: AND SHE AROSE, AND MINISTERED UNTO THEM.K# 16 WHEN THE EVEN WAS COME, THEY BROUGHT UNTO HIM MANY THAT WERE POSSESSEDTL WITH DEVILS: AND HE CAST OUT THE SPIRITS WITH HIS WORD, AND HEALED ALL THAT WERE SICK:SG# 17 THAT IT MIGHT BE FULFILLED WHICH WAS SPOKEN BY ESAIAS THE PROPHET, ? SAYING, HIMSELF TOOK OUR INFIRMITIES, AND BARE OUR SICKNESSES..J# 18 NOW WHEN JESUS SAW GREAT MULTITUDES ABOUT HIM, HE GAVE COMMANDMENT TO DEPART UNTO THE OTHER SIDE.M# 19 AND A CERTAIN SCRIBE CAME, AND SAID UNTO HIM, MASTER, I WILL FOLLOW THEES WHITHERSOEVER THOU GOEST.M# 20 AND JESUS SAITH UNTO HIM, THE FOXES HAVE HOLES, AND THE BIRDS OF THE AIRS? HAVE NESTS; BUT THE SON OF MAN HATH NOT WHERE TO LAY HIS HEAD.L# 21 AND ANOTHER OF HIS DISCIPLES SAID UNTO HIM, LORD, SUFFER ME FIRST TO GO AND BURY MY FATHER.J# 22 BUT JESUS SAID UNTO HIM, FOLLOW ME; AND LET THE DEAD BURY THEIR DEAD.E# 23 AND WHEN HE WAS ENTERED INTO A SHIP, HIS DISCIPLES FOLLOWED HIM.OK# 24 AND, BEHOLD, THERE AROSE A GREAT TEMPEST IN THE SEA, INSOMUCH THAT THE 4 SHIP WAS COVERED WITH THE WAVES: BUT HE WAS ASLEEP.L# 25 AND HIS DISCIPLES CAME TO HIM, AND AWOKE HIM, SAYING, LORD, SAVE US: WE PERISH.K# 26 AND HE SAITH UNTO THEM, WHY ARE YE FEARFUL, O YE OF LITTLE FAITH? THENEI HE AROSE, AND REBUKED THE WINDS AND THE SEA; AND THERE WAS A GREAT CALM.TM# 27 BUT THE MEN MARVELLED, SAYING, WHAT MANNER OF MAN IS THIS, THAT EVEN THEE WINDS AND THE SEA OBEY HIM!C# 28 AND WHEN HE WAS COME TO THE OTHER SIDE INTO THE COUNTRY OF THEEN GERGESENES, THERE MET HIM TWO POSSESSED WITH DEVILS, COMING OUT OF THE TOMBS,9 EXCEEDING FIERCE, SO THAT NO MAN MIGHT PASS BY THAT WAY.IG# 29 AND, BEHOLD, THEY CRIED OUT, SAYING, WHAT HAVE WE TO DO WITH THEE,AL JESUS, THOU SON OF GOD? ART THOU COME HITHER TO TORMENT US BEFORE THE TIME?J# 30 AND THERE WAS A GOOD WAY OFF FROM THEM AN HERD OF MANY SWINE FEEDING.M# 31 SO THE DEVILS BESOUGHT HIM, SAYING, IF THOU CAST US OUT00Z@ @<%X>%+%O-%TADATADATA, SUFFER US TO GO8 AWAY INTO THE HERD OF SWINE.HK# 32 AND HE SAID UNTO THEM, GO. AND WHEN THEY WERE COME OUT, THEY WENT INTOTM THE HERD OF SWINE: AND, BEHOLD, THE WHOLE HERD OF SWINE RAN VIOLENTLY DOWN AS6 STEEP PLACE INTO THE SEA, AND PERISHED IN THE WATERS.I# 33 AND THEY THAT KEPT THEM FLED, AND WENT THEIR WAYS INTO THE CITY, ANDTH TOLD EVERY THING, AND WHAT WAS BEFALLEN TO THE POSSESSED OF THE DEVILS.J# 34 AND, BEHOLD, THE WHOLE CITY CAME OUT TO MEET JESUS: AND WHEN THEY SAWA HIM, THEY BESOUGHT HIM THAT HE WOULD DEPART OUT OF THEIR COASTS.I = CHAPTER 9 L# 1 AND HE ENTERED INTO A SHIP, AND PASSED OVER, AND CAME INTO HIS OWN CITY.M# 2 AND, BEHOLD, THEY BROUGHT TO HIM A MAN SICK OF THE PALSY, LYING ON A BED:PN AND JESUS SEEING THEIR FAITH SAID UNTO THE SICK OF THE PALSY; SON, BE OF GOOD" CHEER; THY SINS BE FORGIVEN THEE.H# 3 AND, BEHOLD, CERTAIN OF THE SCRIBES SAID WITHIN THEMSELVES, THIS MAN BLASPHEMETH.DJ# 4 AND JESUS KNOWING THEIR THOUGHTS SAID, WHEREFORE THINK YE EVIL IN YOUR HEARTS?H# 5 FOR WHETHER IS EASIER, TO SAY, THY SINS BE FORGIVEN THEE; OR TO SAY, ARISE, AND WALK?PK# 6 BUT THAT YE MAY KNOW THAT THE SON OF MAN HATH POWER ON EARTH TO FORGIVE L SINS, (THEN SAITH HE TO THE SICK OF THE PALSY,) ARISE, TAKE UP THY BED, AND GO UNTO THINE HOUSE. ,# 7 AND HE AROSE, AND DEPARTED TO HIS HOUSE.L# 8 BUT WHEN THE MULTITUDES SAW IT, THEY MARVELLED, AND GLORIFIED GOD, WHICH HAD GIVEN SUCH POWER UNTO MEN. G# 9 AND AS JESUS PASSED FORTH FROM THENCE, HE SAW A MAN, NAMED MATTHEW,HK SITTING AT THE RECEIPT OF CUSTOM: AND HE SAITH UNTO HIM, FOLLOW ME. AND HEA AROSE, AND FOLLOWED HIM. I# 10 AND IT CAME TO PASS, AS JESUS SAT AT MEAT IN THE HOUSE, BEHOLD, MANYSD PUBLICANS AND SINNERS CAME AND SAT DOWN WITH HIM AND HIS DISCIPLES.L# 11 AND WHEN THE PHARISEES SAW IT, THEY SAID UNTO HIS DISCIPLES, WHY EATETH( YOUR MASTER WITH PUBLICANS AND SINNERS?J# 12 BUT WHEN JESUS HEARD THAT, HE SAID UNTO THEM, THEY THAT BE WHOLE NEED) NOT A PHYSICIAN, BUT THEY THAT ARE SICK. F# 13 BUT GO YE AND LEARN WHAT THAT MEANETH, I WILL HAVE MERCY, AND NOTC SACRIFICE: FOR I AM NOT COME TO CALL THE RIGHTEOUS, BUT SINNERS TOA REPENTANCE.F# 14 THEN CAME TO HIM THE DISCIPLES OF JOHN, SAYING, WHY DO WE AND THE0 PHARISEES FAST OFT, BUT THY DISCIPLES FAST NOT?M# 15 AND JESUS SAID UNTO THEM, CAN THE CHILDREN OF THE BRIDECHAMBER MOURN, AS F LONG AS THE BRIDEGROOM IS WITH THEM? BUT THE DAYS WILL COME, WHEN THE? BRIDEGROOM SHALL BE TAKEN FROM THEM, AND THEN SHALL THEY FAST.YL# 16 NO MAN PUTTETH A PIECE OF NEW CLOTH UNTO AN OLD GARMENT, FOR THAT WHICHM IS PUT IN TO FILL IT UP TAKETH FROM THE GARMENT, AND THE RENT IS MADE WORSE.AJ# 17 NEITHER DO MEN PUT NEW WINE INTO OLD BOTTLES: ELSE THE BOTTLES BREAK,M AND THE WINE RUNNETH OUT, AND THE BOTTLES PERISH: BUT THEY PUT NEW WINE INTOI% NEW BOTTLES, AND BOTH ARE PRESERVED.IH# 18 WHILE HE SPAKE THESE THINGS UNTO THEM, BEHOLD, THERE CAME A CERTAINN RULER, AND WORSHIPPED HIM, SAYING, MY DAUGHTER IS EVEN NOW DEAD: BUT COME AND+ LAY THY HAND UPON HER, AND SHE SHALL LIVE.HA# 19 AND JESUS AROSE, AND FOLLOWED HIM, AND SO DID HIS DISCIPLES.TK# 20 AND, BEHOLD, A WOMAN, WHICH WAS DISEASED WITH AN ISSUE OF BLOOD TWELVE < YEARS, CAME BEHIND HIM, AND TOUCHED THE HEM OF HIS GARMENT:L# 21 FOR SHE SAID WITHIN HERSELF, IF I MAY BUT TOUCH HIS GARMENT, I SHALL BE WHOLE.HK# 22 BUT JESUS TURNED HIM ABOUT, AND WHEN HE SAW HER, HE SAID, DAUGHTER, BEAN OF GOOD COMFORT; THY FAITH HATH MADE THEE WHOLE. AND THE WOMAN WAS MADE WHOLE FROM THAT HOUR.M# 23 AND WHEN JESUS CAME INTO THE RULERS HOUSE, AND SAW THE MINSTRELS AND THEM PEOPLE MAKING A NOISE,SK# 24 HE SAID UNTO THEM, GIVE PLACE: FOR THE MAID IS NOT DEAD, BUT SLEEPETH.V AND THEY LAUGHED HIM TO SCORN.TH# 25 BUT WHEN THE PEOPLE WERE PUT FORTH, HE WENT IN, AND TOOK HER BY THE HAND, AND THE MAID AROSE.8# 26 AND THE FAME HEREOF WENT ABROAD INTO ALL THAT LAND.L# 27 AND WHEN JESUS DEPARTED THENCE, TWO BLIND MEN FOLLOWED HIM, CRYING, AND- SAYING, THOU SON OF DAVID, HAVE MERCY ON US.HH# 28 AND WHEN HE WAS COME INTO THE HOUSE, THE BL00b@?D%5%T6%! !IND MEN CAME TO HIM: ANDL JESUS SAITH UNTO THEM, BELIEVE YE THAT I AM ABLE TO DO THIS? THEY SAID UNTO HIM, YEA, LORD.K# 29 THEN TOUCHED HE THEIR EYES, SAYING, ACCORDING TO YOUR FAITH BE IT UNTOE YOU.RM# 30 AND THEIR EYES WERE OPENED; AND JESUS STRAITLY CHARGED THEM, SAYING, SEEA THAT NO MAN KNOW IT. J# 31 BUT THEY, WHEN THEY WERE DEPARTED, SPREAD ABROAD HIS FAME IN ALL THAT COUNTRY. L# 32 AS THEY WENT OUT, BEHOLD, THEY BROUGHT TO HIM A DUMB MAN POSSESSED WITH A DEVIL.MH# 33 AND WHEN THE DEVIL WAS CAST OUT, THE DUMB SPAKE: AND THE MULTITUDES3 MARVELLED, SAYING, IT WAS NEVER SO SEEN IN ISRAEL.L# 34 BUT THE PHARISEES SAID, HE CASTETH OUT DEVILS THROUGH THE PRINCE OF THE DEVILS.H# 35 AND JESUS WENT ABOUT ALL THE CITIES AND VILLAGES, TEACHING IN THEIRG SYNAGOGUES, AND PREACHING THE GOSPEL OF THE KINGDOM, AND HEALING EVERYR- SICKNESS AND EVERY DISEASE AMONG THE PEOPLE.J# 36 BUT WHEN HE SAW THE MULTITUDES, HE WAS MOVED WITH COMPASSION ON THEM,N BECAUSE THEY FAINTED, AND WERE SCATTERED ABROAD, AS SHEEP HAVING NO SHEPHERD.J# 37 THEN SAITH HE UNTO HIS DISCIPLES, THE HARVEST TRULY IS PLENTEOUS, BUT THE LABOURERS ARE FEW;,G# 38 PRAY YE THEREFORE THE LORD OF THE HARVEST, THAT HE WILL SEND FORTHS LABOURERS INTO HIS HARVEST. = CHAPTER 10 HL# 1 AND WHEN HE HAD CALLED UNTO HIM HIS TWELVE DISCIPLES, HE GAVE THEM POWERN AGAINST UNCLEAN SPIRITS, TO CAST THEM OUT, AND TO HEAL ALL MANNER OF SICKNESS AND ALL MANNER OF DISEASE.IL# 2 NOW THE NAMES OF THE TWELVE APOSTLES ARE THESE; THE FIRST, SIMON, WHO ISM CALLED PETER, AND ANDREW HIS BROTHER; JAMES THE SON OF ZEBEDEE, AND JOHN HISU BROTHER;EL# 3 PHILIP, AND BARTHOLOMEW; THOMAS, AND MATTHEW THE PUBLICAN; JAMES THE SON8 OF ALPHAEUS, AND LEBBAEUS, WHOSE SURNAME WAS THADDAEUS;C# 4 SIMON THE CANAANITE, AND JUDAS ISCARIOT, WHO ALSO BETRAYED HIM.SJ# 5 THESE TWELVE JESUS SENT FORTH, AND COMMANDED THEM, SAYING, GO NOT INTOK THE WAY OF THE GENTILES, AND INTO ANY CITY OF THE SAMARITANS ENTER YE NOT:E;# 6 BUT GO RATHER TO THE LOST SHEEP OF THE HOUSE OF ISRAEL.C# 7 AND AS YE GO, PREACH, SAYING, THE KINGDOM OF HEAVEN IS AT HAND.JG# 8 HEAL THE SICK, CLEANSE THE LEPERS, RAISE THE DEAD, CAST OUT DEVILS:E& FREELY YE HAVE RECEIVED, FREELY GIVE.?# 9 PROVIDE NEITHER GOLD, NOR SILVER, NOR BRASS IN YOUR PURSES,TJ# 10 NOR SCRIP FOR YOUR JOURNEY, NEITHER TWO COATS, NEITHER SHOES, NOR YET/ STAVES: FOR THE WORKMAN IS WORTHY OF HIS MEAT.TJ# 11 AND INTO WHATSOEVER CITY OR TOWN YE SHALL ENTER, ENQUIRE WHO IN IT IS+ WORTHY; AND THERE ABIDE TILL YE GO THENCE.U/# 12 AND WHEN YE COME INTO AN HOUSE, SALUTE IT. J# 13 AND IF THE HOUSE BE WORTHY, LET YOUR PEACE COME UPON IT: BUT IF IT BE* NOT WORTHY, LET YOUR PEACE RETURN TO YOU.M# 14 AND WHOSOEVER SHALL NOT RECEIVE YOU, NOR HEAR YOUR WORDS, WHEN YE DEPARTN< OUT OF THAT HOUSE OR CITY, SHAKE OFF THE DUST OF YOUR FEET.L# 15 VERILY I SAY UNTO YOU, IT SHALL BE MORE TOLERABLE FOR THE LAND OF SODOM9 AND GOMORRHA IN THE DAY OF JUDGMENT, THAN FOR THAT CITY.UD# 16 BEHOLD, I SENT YOU FORTH AS SHEEP IN THE MIDST OF WOLVES: BE YE3 THEREFORE WISE AS SERPENTS, AND HARMLESS AS DOVES.II# 17 BUT BEWARE OF MEN: FOR THEY WILL DELIVER YOU UP TO THE COUNCILS, ANDH+ THEY WILL SCOURGE YOU IN THEIR SYNAGOGUES;OJ# 18 AND YE SHALL BE BROUGHT BEFORE GOVERNORS AND KINGS FOR MY SAKE, FOR A) TESTIMONY AGAINST THEM AND THE GENTILES.OG# 19 BUT WHEN THEY DELIVER YOU UP, TAKE NO THOUGHT HOW OR WHAT YE SHALLLH SPEAK: FOR IT SHALL BE GIVEN YOU IN THAT SAME HOUR WHAT YE SHALL SPEAK.E# 20 FOR IT IS NOT YE THAT SPEAK, BUT THE SPIRIT OF YOUR FATHER WHICHT SPEAKETH IN YOU.RJ# 21 AND THE BROTHER SHALL DELIVER UP THE BROTHER TO DEATH, AND THE FATHERK THE CHILD: AND THE CHILDREN SHALL RISE UP AGAINST THEIR PARENTS, AND CAUSE THEM TO BE PUT TO DEATH.TM# 22 AND YE SHALL BE HATED OF ALL MEN FOR MY NAMES SAKE: BUT HE THAT ENDURETH  TO THE END SHALL BE SAVED.YH# 23 BUT WHEN THEY PERSECUTE YOU IN THIS CITY, FLEE YE INTO ANOTHER: FORN VERILY I SAY UNTO YOU, YE SHALL NOT HAVE GONE OVER THE CITIES OF ISRAEL, TILL THE SON OF MAN BE COME.J# 24 THE D00j@ @<%X>%+%O-%TADATADATAISCIPLE IS NOT ABOVE HIS MASTER, NOR THE SERVANT ABOVE HIS LORD.L# 25 IT IS ENOUGH FOR THE DISCIPLE THAT HE BE AS HIS MASTER, AND THE SERVANTM AS HIS LORD. IF THEY HAVE CALLED THE MASTER OF THE HOUSE BEELZEBUB, HOW MUCHY, MORE SHALL THEY CALL THEM OF HIS HOUSEHOLD?M# 26 FEAR THEM NOT THEREFORE: FOR THERE IS NOTHING COVERED, THAT SHALL NOT BEU, REVEALED; AND HID, THAT SHALL NOT BE KNOWN.M# 27 WHAT I TELL YOU IN DARKNESS, THAT SPEAK YE IN LIGHT: AND WHAT YE HEAR INL, THE EAR, THAT PREACH YE UPON THE HOUSETOPS.H# 28 AND FEAR NOT THEM WHICH KILL THE BODY, BUT ARE NOT ABLE TO KILL THEI SOUL: BUT RATHER FEAR HIM WHICH IS ABLE TO DESTROY BOTH SOUL AND BODY IN  HELL.M# 29 ARE NOT TWO SPARROWS SOLD FOR A FARTHING? AND ONE OF THEM SHALL NOT FALL # ON THE GROUND WITHOUT YOUR FATHER.M6# 30 BUT THE VERY HAIRS OF YOUR HEAD ARE ALL NUMBERED.D# 31 FEAR YE NOT THEREFORE, YE ARE OF MORE VALUE THAN MANY SPARROWS.M# 32 WHOSOEVER THEREFORE SHALL CONFESS ME BEFORE MEN, HIM WILL I CONFESS ALSOT% BEFORE MY FATHER WHICH IS IN HEAVEN.DK# 33 BUT WHOSOEVER SHALL DENY ME BEFORE MEN, HIM WILL I ALSO DENY BEFORE MYR FATHER WHICH IS IN HEAVEN.TH# 34 THINK NOT THAT I AM COME TO SEND PEACE ON EARTH: I CAME NOT TO SEND PEACE, BUT A SWORD.G# 35 FOR I AM COME TO SET A MAN AT VARIANCE AGAINST HIS FATHER, AND THETK DAUGHTER AGAINST HER MOTHER, AND THE DAUGHTER IN LAW AGAINST HER MOTHER INA LAW.O8# 36 AND A MANS FOES SHALL BE THEY OF HIS OWN HOUSEHOLD.M# 37 HE THAT LOVETH FATHER OR MOTHER MORE THAN ME IS NOT WORTHY OF ME: AND HEI> THAT LOVETH SON OR DAUGHTER MORE THAN ME IS NOT WORTHY OF ME.L# 38 AND HE THAT TAKETH NOT HIS CROSS, AND FOLLOWETH AFTER ME, IS NOT WORTHY OF ME.OL# 39 HE THAT FINDETH HIS LIFE SHALL LOSE IT: AND HE THAT LOSETH HIS LIFE FOR MY SAKE SHALL FIND IT.AK# 40 HE THAT RECEIVETH YOU RECEIVETH ME, AND HE THAT RECEIVETH ME RECEIVETHT HIM THAT SENT ME.I# 41 HE THAT RECEIVETH A PROPHET IN THE NAME OF A PROPHET SHALL RECEIVE ALH PROPHETS REWARD; AND HE THAT RECEIVETH A RIGHTEOUS MAN IN THE NAME OF A5 RIGHTEOUS MAN SHALL RECEIVE A RIGHTEOUS MANS REWARD.NM# 42 AND WHOSOEVER SHALL GIVE TO DRINK UNTO ONE OF THESE LITTLE ONES A CUP OF,N COLD WATER ONLY IN THE NAME OF A DISCIPLE, VERILY I SAY UNTO YOU, HE SHALL IN NO WISE LOSE HIS REWARD. = CHAPTER 11 L# 1 AND IT CAME TO PASS, WHEN JESUS HAD MADE AN END OF COMMANDING HIS TWELVEF DISCIPLES, HE DEPARTED THENCE TO TEACH AND TO PREACH IN THEIR CITIES.M# 2 NOW WHEN JOHN HAD HEARD IN THE PRISON THE WORKS OF CHRIST, HE SENT TWO OFU HIS DISCIPLES, F# 3 AND SAID UNTO HIM, ART THOU HE THAT SHOULD COME, OR DO WE LOOK FOR ANOTHER?AJ# 4 JESUS ANSWERED AND SAID UNTO THEM, GO AND SHEW JOHN AGAIN THOSE THINGS WHICH YE DO HEAR AND SEE:D# 5 THE BLIND RECEIVE THEIR SIGHT, AND THE LAME WALK, THE LEPERS AREK CLEANSED, AND THE DEAF HEAR, THE DEAD ARE RAISED UP, AND THE POOR HAVE THE  GOSPEL PREACHED TO THEM.R=# 6 AND BLESSED IS HE, WHOSOEVER SHALL NOT BE OFFENDED IN ME.NK# 7 AND AS THEY DEPARTED, JESUS BEGAN TO SAY UNTO THE MULTITUDES CONCERNINGIJ JOHN, WHAT WENT YE OUT INTO THE WILDERNESS TO SEE? A REED SHAKEN WITH THE WIND?K# 8 BUT WHAT WENT YE OUT FOR TO SEE? A MAN CLOTHED IN SOFT RAIMENT? BEHOLD,H2 THEY THAT WEAR SOFT CLOTHING ARE IN KINGS HOUSES.M# 9 BUT WHAT WENT YE OUT FOR TO SEE? A PROPHET? YEA, I SAY UNTO YOU, AND MORER THAN A PROPHET.G# 10 FOR THIS IS HE, OF WHOM IT IS WRITTEN, BEHOLD, I SEND MY MESSENGERE: BEFORE THY FACE, WHICH SHALL PREPARE THY WAY BEFORE THEE.L# 11 VERILY I SAY UNTO YOU, AMONG THEM THAT ARE BORN OF WOMEN THERE HATH NOTK RISEN A GREATER THAN JOHN THE BAPTIST: NOTWITHSTANDING HE THAT IS LEAST IN * THE KINGDOM OF HEAVEN IS GREATER THAN HE.J# 12 AND FROM THE DAYS OF JOHN THE BAPTIST UNTIL NOW THE KINGDOM OF HEAVEN6 SUFFERETH VIOLENCE, AND THE VIOLENT TAKE IT BY FORCE.<# 13 FOR ALL THE PROPHETS AND THE LAW PROPHESIED UNTIL JOHN.E# 14 AND IF YE WILL RECEIVE IT, THIS IS ELIAS, WHICH WAS FOR TO COME. -# 15 HE THAT HATH EARS TO HEAR, LET HIM HEAR.J# 16 BUT WHEREUNTO SHALL I LIKEN THIS GENERATION? IT IS LIKE UNTO CHILDR00r@?D%5%T6%! !EN8 SITTING IN THE MARKETS, AND CALLING UNTO THEIR FELLOWS,H# 17 AND SAYING, WE HAVE PIPED UNTO YOU, AND YE HAVE NOT DANCED; WE HAVE, MOURNED UNTO YOU, AND YE HAVE NOT LAMENTED.G# 18 FOR JOHN CAME NEITHER EATING NOR DRINKING, AND THEY SAY, HE HATH AC DEVIL.FH# 19 THE SON OF MAN CAME EATING AND DRINKING, AND THEY SAY, BEHOLD A MANL GLUTTONOUS, AND A WINEBIBBER, A FRIEND OF PUBLICANS AND SINNERS. BUT WISDOM IS JUSTIFIED OF HER CHILDREN.I# 20 THEN BEGAN HE TO UPBRAID THE CITIES WHEREIN MOST OF HIS MIGHTY WORKSG& WERE DONE, BECAUSE THEY REPENTED NOT:I# 21 WOE UNTO THEE, CHORAZIN! WOE UNTO THEE, BETHSAIDA! FOR IF THE MIGHTYWK WORKS, WHICH WERE DONE IN YOU, HAD BEEN DONE IN TYRE AND SIDON, THEY WOULDH/ HAVE REPENTED LONG AGO IN SACKCLOTH AND ASHES.M# 22 BUT I SAY UNTO YOU, IT SHALL BE MORE TOLERABLE FOR TYRE AND SIDON AT THEM DAY OF JUDGMENT, THAN FOR YOU.,I# 23 AND THOU, CAPERNAUM, WHICH ART EXALTED UNTO HEAVEN, SHALT BE BROUGHTEN DOWN TO HELL: FOR IF THE MIGHTY WORKS, WHICH HAVE BEEN DONE IN THEE, HAD BEEN6 DONE IN SODOM, IT WOULD HAVE REMAINED UNTIL THIS DAY.H# 24 BUT I SAY UNTO YOU, THAT IT SHALL BE MORE TOLERABLE FOR THE LAND OF- SODOM IN THE DAY OF JUDGMENT, THAN FOR THEE.OJ# 25 AT THAT TIME JESUS ANSWERED AND SAID, I THANK THEE, O FATHER, LORD OFG HEAVEN AND EARTH, BECAUSE THOU HAST HID THESE THINGS FROM THE WISE ANDY, PRUDENT, AND HAST REVEALED THEM UNTO BABES.9# 26 EVEN SO, FATHER: FOR SO IT SEEMED GOOD IN THY SIGHT.J# 27 ALL THINGS ARE DELIVERED UNTO ME OF MY FATHER: AND NO MAN KNOWETH THEN SON, BUT THE FATHER; NEITHER KNOWETH ANY MAN THE FATHER, SAVE THE SON, AND HE' TO WHOMSOEVER THE SON WILL REVEAL HIM.TJ# 28 COME UNTO ME, ALL YE THAT LABOUR AND ARE HEAVY LADEN, AND I WILL GIVE YOU REST.G# 29 TAKE MY YOKE UPON YOU, AND LEARN OF ME; FOR I AM MEEK AND LOWLY INE/ HEART: AND YE SHALL FIND REST UNTO YOUR SOULS.P1# 30 FOR MY YOKE IS EASY, AND MY BURDEN IS LIGHT.E = CHAPTER 12 OH# 1 AT THAT TIME JESUS WENT ON THE SABBATH DAY THROUGH THE CORN; AND HISK DISCIPLES WERE AN HUNGRED, AND BEGAN TO PLUCK THE EARS OF CORN AND TO EAT.NL# 2 BUT WHEN THE PHARISEES SAW IT, THEY SAID UNTO HIM, BEHOLD, THY DISCIPLES8 DO THAT WHICH IS NOT LAWFUL TO DO UPON THE SABBATH DAY.J# 3 BUT HE SAID UNTO THEM, HAVE YE NOT READ WHAT DAVID DID, WHEN HE WAS AN& HUNGRED, AND THEY THAT WERE WITH HIM;J# 4 HOW HE ENTERED INTO THE HOUSE OF GOD, AND DID EAT THE SHEWBREAD, WHICHN WAS NOT LAWFUL FOR HIM TO EAT, NEITHER FOR THEM WHICH WERE WITH HIM, BUT ONLY FOR THE PRIESTS?AL# 5 OR HAVE YE NOT READ IN THE LAW, HOW THAT ON THE SABBATH DAYS THE PRIESTS6 IN THE TEMPLE PROFANE THE SABBATH, AND ARE BLAMELESS?J# 6 BUT I SAY UNTO YOU, THAT IN THIS PLACE IS ONE GREATER THAN THE TEMPLE.E# 7 BUT IF YE HAD KNOWN WHAT THIS MEANETH, I WILL HAVE MERCY, AND NOT 6 SACRIFICE, YE WOULD NOT HAVE CONDEMNED THE GUILTLESS.7# 8 FOR THE SON OF MAN IS LORD EVEN OF THE SABBATH DAY. B# 9 AND WHEN HE WAS DEPARTED THENCE, HE WENT INTO THEIR SYNAGOGUE:M# 10 AND, BEHOLD, THERE WAS A MAN WHICH HAD HIS HAND WITHERED. AND THEY ASKEDEN HIM, SAYING, IS IT LAWFUL TO HEAL ON THE SABBATH DAYS? THAT THEY MIGHT ACCUSE HIM. I# 11 AND HE SAID UNTO THEM, WHAT MAN SHALL THERE BE AMONG YOU, THAT SHALLHN HAVE ONE SHEEP, AND IF IT FALL INTO A PIT ON THE SABBATH DAY, WILL HE NOT LAY HOLD ON IT, AND LIFT IT OUT?TM# 12 HOW MUCH THEN IS A MAN BETTER THAN A SHEEP? WHEREFORE IT IS LAWFUL TO DOA WELL ON THE SABBATH DAYS.L# 13 THEN SAITH HE TO THE MAN, STRETCH FORTH THINE HAND. AND HE STRETCHED IT5 FORTH; AND IT WAS RESTORED WHOLE, LIKE AS THE OTHER.MJ# 14 THEN THE PHARISEES WENT OUT, AND HELD A COUNCIL AGAINST HIM, HOW THEY MIGHT DESTROY HIM.AG# 15 BUT WHEN JESUS KNEW IT, HE WITHDREW HIMSELF FROM THENCE: AND GREATH1 MULTITUDES FOLLOWED HIM, AND HE HEALED THEM ALL;W:# 16 AND CHARGED THEM THAT THEY SHOULD NOT MAKE HIM KNOWN:G# 17 THAT IT MIGHT BE FULFILLED WHICH WAS SPOKEN BY ESAIAS THE PROPHET,  SAYING,J# 18 BEHOLD MY SERVANT, WHOM I HAVE CHOSEN; MY BELOVED, IN WHOM MY SOUL ISK WELL PLEASED: I WILL PUT MY SPIRIT UPON HIM, AND HE SHALL00z@ @<%X>%+%O-%TADATADATA SHEW JUDGMENT TOE THE GENTILES.J# 19 HE SHALL NOT STRIVE, NOR CRY; NEITHER SHALL ANY MAN HEAR HIS VOICE IN THE STREETS.UM# 20 A BRUISED REED SHALL HE NOT BREAK, AND SMOKING FLAX SHALL HE NOT QUENCH,M* TILL HE SEND FORTH JUDGMENT UNTO VICTORY..# 21 AND IN HIS NAME SHALL THE GENTILES TRUST.K# 22 THEN WAS BROUGHT UNTO HIM ONE POSSESSED WITH A DEVIL, BLIND, AND DUMB:,H AND HE HEALED HIM, INSOMUCH THAT THE BLIND AND DUMB BOTH SPAKE AND SAW.L# 23 AND ALL THE PEOPLE WERE AMAZED, AND SAID, IS NOT THIS THE SON OF DAVID?J# 24 BUT WHEN THE PHARISEES HEARD IT, THEY SAID, THIS FELLOW DOTH NOT CAST7 OUT DEVILS, BUT BY BEELZEBUB THE PRINCE OF THE DEVILS.HM# 25 AND JESUS KNEW THEIR THOUGHTS, AND SAID UNTO THEM, EVERY KINGDOM DIVIDEDUI AGAINST ITSELF IS BROUGHT TO DESOLATION; AND EVERY CITY OR HOUSE DIVIDEDT AGAINST ITSELF SHALL NOT STAND:J# 26 AND IF SATAN CAST OUT SATAN, HE IS DIVIDED AGAINST HIMSELF; HOW SHALL THEN HIS KINGDOM STAND?I# 27 AND IF I BY BEELZEBUB CAST OUT DEVILS, BY WHOM DO YOUR CHILDREN CASTN/ THEM OUT? THEREFORE THEY SHALL BE YOUR JUDGES. K# 28 BUT IF I CAST OUT DEVILS BY THE SPIRIT OF GOD, THEN THE KINGDOM OF GODE IS COME UNTO YOU.M# 29 OR ELSE HOW CAN ONE ENTER INTO A STRONG MANS HOUSE, AND SPOIL HIS GOODS,AG EXCEPT HE FIRST BIND THE STRONG MAN? AND THEN HE WILL SPOIL HIS HOUSE.L# 30 HE THAT IS NOT WITH ME IS AGAINST ME; AND HE THAT GATHERETH NOT WITH ME SCATTERETH ABROAD.HG# 31 WHEREFORE I SAY UNTO YOU, ALL MANNER OF SIN AND BLASPHEMY SHALL BEEI FORGIVEN UNTO MEN: BUT THE BLASPHEMY AGAINST THE HOLY GHOST SHALL NOT BEU FORGIVEN UNTO MEN.IF# 32 AND WHOSOEVER SPEAKETH A WORD AGAINST THE SON OF MAN, IT SHALL BEM FORGIVEN HIM: BUT WHOSOEVER SPEAKETH AGAINST THE HOLY GHOST, IT SHALL NOT BEOC FORGIVEN HIM, NEITHER IN THIS WORLD, NEITHER IN THE WORLD TO COME.LI# 33 EITHER MAKE THE TREE GOOD, AND HIS FRUIT GOOD; OR ELSE MAKE THE TREEGD CORRUPT, AND HIS FRUIT CORRUPT: FOR THE TREE IS KNOWN BY HIS FRUIT.K# 34 O GENERATION OF VIPERS, HOW CAN YE, BEING EVIL, SPEAK GOOD THINGS? FORL6 OUT OF THE ABUNDANCE OF THE HEART THE MOUTH SPEAKETH.I# 35 A GOOD MAN OUT OF THE GOOD TREASURE OF THE HEART BRINGETH FORTH GOODHM THINGS: AND AN EVIL MAN OUT OF THE EVIL TREASURE BRINGETH FORTH EVIL THINGS.NH# 36 BUT I SAY UNTO YOU, THAT EVERY IDLE WORD THAT MEN SHALL SPEAK, THEY3 SHALL GIVE ACCOUNT THEREOF IN THE DAY OF JUDGMENT.DM# 37 FOR BY THY WORDS THOU SHALT BE JUSTIFIED, AND BY THY WORDS THOU SHALT BEN CONDEMNED..G# 38 THEN CERTAIN OF THE SCRIBES AND OF THE PHARISEES ANSWERED, SAYING, ' MASTER, WE WOULD SEE A SIGN FROM THEE.TJ# 39 BUT HE ANSWERED AND SAID UNTO THEM, AN EVIL AND ADULTEROUS GENERATIONN SEEKETH AFTER A SIGN; AND THERE SHALL NO SIGN BE GIVEN TO IT, BUT THE SIGN OF THE PROPHET JONAS: I# 40 FOR AS JONAS WAS THREE DAYS AND THREE NIGHTS IN THE WHALES BELLY; SOAH SHALL THE SON OF MAN BE THREE DAYS AND THREE NIGHTS IN THE HEART OF THE EARTH.BH# 41 THE MEN OF NINEVEH SHALL RISE IN JUDGMENT WITH THIS GENERATION, ANDH SHALL CONDEMN IT: BECAUSE THEY REPENTED AT THE PREACHING OF JONAS; AND,& BEHOLD, A GREATER THAN JONAS IS HERE.C# 42 THE QUEEN OF THE SOUTH SHALL RISE UP IN THE JUDGMENT WITH THISEK GENERATION, AND SHALL CONDEMN IT: FOR SHE CAME FROM THE UTTERMOST PARTS OFEM THE EARTH TO HEAR THE WISDOM OF SOLOMON; AND, BEHOLD, A GREATER THAN SOLOMONE IS HERE.AI# 43 WHEN THE UNCLEAN SPIRIT IS GONE OUT OF A MAN, HE WALKETH THROUGH DRY( PLACES, SEEKING REST, AND FINDETH NONE.K# 44 THEN HE SAITH, I WILL RETURN INTO MY HOUSE FROM WHENCE I CAME OUT; ANDE< WHEN HE IS COME, HE FINDETH IT EMPTY, SWEPT, AND GARNISHED.K# 45 THEN GOETH HE, AND TAKETH WITH HIMSELF SEVEN OTHER SPIRITS MORE WICKEDHL THAN HIMSELF, AND THEY ENTER IN AND DWELL THERE: AND THE LAST STATE OF THATG MAN IS WORSE THAN THE FIRST. EVEN SO SHALL IT BE ALSO UNTO THIS WICKEDT GENERATION.K# 46 WHILE HE YET TALKED TO THE PEOPLE, BEHOLD, HIS MOTHER AND HIS BRETHRENO+ STOOD WITHOUT, DESIRING TO SPEAK WITH HIM.NF# 47 THEN ONE SAID UNTO HIM, BEHOLD, THY MOTHER AND THY BRETHREN STAND& WITHOUT, DESIRING TO SPEAK WI00@?D%5%T6%! !TH THEE.K# 48 BUT HE ANSWERED AND SAID UNTO HIM THAT TOLD HIM, WHO IS MY MOTHER? AND  WHO ARE MY BRETHREN?EK# 49 AND HE STRETCHED FORTH HIS HAND TOWARD HIS DISCIPLES, AND SAID, BEHOLDE MY MOTHER AND MY BRETHREN!TI# 50 FOR WHOSOEVER SHALL DO THE WILL OF MY FATHER WHICH IS IN HEAVEN, THEI, SAME IS MY BROTHER, AND SISTER, AND MOTHER. = CHAPTER 13 EF# 1 THE SAME DAY WENT JESUS OUT OF THE HOUSE, AND SAT BY THE SEA SIDE.I# 2 AND GREAT MULTITUDES WERE GATHERED TOGETHER UNTO HIM, SO THAT HE WENT B INTO A SHIP, AND SAT; AND THE WHOLE MULTITUDE STOOD ON THE SHORE.K# 3 AND HE SPAKE MANY THINGS UNTO THEM IN PARABLES, SAYING, BEHOLD, A SOWERT WENT FORTH TO SOW; J# 4 AND WHEN HE SOWED, SOME SEEDS FELL BY THE WAY SIDE, AND THE FOWLS CAME AND DEVOURED THEM UP:M# 5 SOME FELL UPON STONY PLACES, WHERE THEY HAD NOT MUCH EARTH: AND FORTHWITH.7 THEY SPRUNG UP, BECAUSE THEY HAD NO DEEPNESS OF EARTH:HH# 6 AND WHEN THE SUN WAS UP, THEY WERE SCORCHED; AND BECAUSE THEY HAD NO ROOT, THEY WITHERED AWAY.J# 7 AND SOME FELL AMONG THORNS; AND THE THORNS SPRUNG UP, AND CHOKED THEM:E# 8 BUT OTHER FELL INTO GOOD GROUND, AND BROUGHT FORTH FRUIT, SOME ANE. HUNDREDFOLD, SOME SIXTYFOLD, SOME THIRTYFOLD.(# 9 WHO HATH EARS TO HEAR, LET HIM HEAR.K# 10 AND THE DISCIPLES CAME, AND SAID UNTO HIM, WHY SPEAKEST THOU UNTO THEME IN PARABLES?EM# 11 HE ANSWERED AND SAID UNTO THEM, BECAUSE IT IS GIVEN UNTO YOU TO KNOW THEA MYSTERIES OF THE KINGDOM OF HEAVEN, BUT TO THEM IT IS NOT GIVEN.AF# 12 FOR WHOSOEVER HATH, TO HIM SHALL BE GIVEN, AND HE SHALL HAVE MOREM ABUNDANCE: BUT WHOSOEVER HATH NOT, FROM HIM SHALL BE TAKEN AWAY EVEN THAT HEB HATH.L# 13 THEREFORE SPEAK I TO THEM IN PARABLES: BECAUSE THEY SEEING SEE NOT; AND3 HEARING THEY HEAR NOT, NEITHER DO THEY UNDERSTAND.LM# 14 AND IN THEM IS FULFILLED THE PROPHECY OF ESAIAS, WHICH SAITH, BY HEARINGHL YE SHALL HEAR, AND SHALL NOT UNDERSTAND; AND SEEING YE SHALL SEE, AND SHALL NOT PERCEIVE:F# 15 FOR THIS PEOPLES HEART IS WAXED GROSS, AND THEIR EARS ARE DULL OFK HEARING, AND THEIR EYES THEY HAVE CLOSED; LEST AT ANY TIME THEY SHOULD SEEHK WITH THEIR EYES AND HEAR WITH THEIR EARS, AND SHOULD UNDERSTAND WITH THEIRK8 HEART, AND SHOULD BE CONVERTED, AND I SHOULD HEAL THEM.K# 16 BUT BLESSED ARE YOUR EYES, FOR THEY SEE: AND YOUR EARS, FOR THEY HEAR.FI# 17 FOR VERILY I SAY UNTO YOU, THAT MANY PROPHETS AND RIGHTEOUS MEN HAVE N DESIRED TO SEE THOSE THINGS WHICH YE SEE, AND HAVE NOT SEEN THEM; AND TO HEAR5 THOSE THINGS WHICH YE HEAR, AND HAVE NOT HEARD THEM.E0# 18 HEAR YE THEREFORE THE PARABLE OF THE SOWER.L# 19 WHEN ANY ONE HEARETH THE WORD OF THE KINGDOM, AND UNDERSTANDETH IT NOT,I THEN COMETH THE WICKED ONE, AND CATCHETH AWAY THAT WHICH WAS SOWN IN HISI7 HEART. THIS IS HE WHICH RECEIVED SEED BY THE WAY SIDE.HI# 20 BUT HE THAT RECEIVED THE SEED INTO STONY PLACES, THE SAME IS HE THATT2 HEARETH THE WORD, AND ANON WITH JOY RECEIVETH IT;F# 21 YET HATH HE NOT ROOT IN HIMSELF, BUT DURETH FOR A WHILE: FOR WHENH TRIBULATION OR PERSECUTION ARISETH BECAUSE OF THE WORD, BY AND BY HE IS OFFENDED.M# 22 HE ALSO THAT RECEIVED SEED AMONG THE THORNS IS HE THAT HEARETH THE WORD;NM AND THE CARE OF THIS WORLD, AND THE DECEITFULNESS OF RICHES, CHOKE THE WORD,N AND HE BECOMETH UNFRUITFUL.J# 23 BUT HE THAT RECEIVED SEED INTO THE GOOD GROUND IS HE THAT HEARETH THEJ WORD, AND UNDERSTANDETH IT; WHICH ALSO BEARETH FRUIT, AND BRINGETH FORTH,. SOME AN HUNDREDFOLD, SOME SIXTY, SOME THIRTY.M# 24 ANOTHER PARABLE PUT HE FORTH UNTO THEM, SAYING, THE KINGDOM OF HEAVEN ISS7 LIKENED UNTO A MAN WHICH SOWED GOOD SEED IN HIS FIELD:TM# 25 BUT WHILE MEN SLEPT, HIS ENEMY CAME AND SOWED TARES AMONG THE WHEAT, AND  WENT HIS WAY.M# 26 BUT WHEN THE BLADE WAS SPRUNG UP, AND BROUGHT FORTH FRUIT, THEN APPEARED THE TARES ALSO.J# 27 SO THE SERVANTS OF THE HOUSEHOLDER CAME AND SAID UNTO HIM, SIR, DIDSTE NOT THOU SOW GOOD SEED IN THY FIELD? FROM WHENCE THEN HATH IT TARES?RL# 28 HE SAID UNTO THEM, AN ENEMY HATH DONE THIS. THE SERVANTS SAID UNTO HIM,. WILT THOU THEN THAT WE GO AND GATHER THEM UP?M# 29 BUT HE SAID00@ @<%X>%+%O-%TADATADATA, NAY; LEST WHILE YE GATHER UP THE TARES, YE ROOT UP ALSO THEM WHEAT WITH THEM.RK# 30 LET BOTH GROW TOGETHER UNTIL THE HARVEST: AND IN THE TIME OF HARVEST IUN WILL SAY TO THE REAPERS, GATHER YE TOGETHER FIRST THE TARES, AND BIND THEM IN9 BUNDLES TO BURN THEM: BUT GATHER THE WHEAT INTO MY BARN.NM# 31 ANOTHER PARABLE PUT HE FORTH UNTO THEM, SAYING, THE KINGDOM OF HEAVEN ISAK LIKE TO A GRAIN OF MUSTARD SEED, WHICH A MAN TOOK, AND SOWED IN HIS FIELD:UL# 32 WHICH INDEED IS THE LEAST OF ALL SEEDS: BUT WHEN IT IS GROWN, IT IS THEM GREATEST AMONG HERBS, AND BECOMETH A TREE, SO THAT THE BIRDS OF THE AIR COMET# AND LODGE IN THE BRANCHES THEREOF. K# 33 ANOTHER PARABLE SPAKE HE UNTO THEM; THE KINGDOM OF HEAVEN IS LIKE UNTORN LEAVEN, WHICH A WOMAN TOOK, AND HID IN THREE MEASURES OF MEAL, TILL THE WHOLE WAS LEAVENED.M# 34 ALL THESE THINGS SPAKE JESUS UNTO THE MULTITUDE IN PARABLES; AND WITHOUTA" A PARABLE SPAKE HE NOT UNTO THEM:J# 35 THAT IT MIGHT BE FULFILLED WHICH WAS SPOKEN BY THE PROPHET, SAYING, II WILL OPEN MY MOUTH IN PARABLES; I WILL UTTER THINGS WHICH HAVE BEEN KEPTO) SECRET FROM THE FOUNDATION OF THE WORLD.EI# 36 THEN JESUS SENT THE MULTITUDE AWAY, AND WENT INTO THE HOUSE: AND HISNM DISCIPLES CAME UNTO HIM, SAYING, DECLARE UNTO US THE PARABLE OF THE TARES OFS THE FIELD. L# 37 HE ANSWERED AND SAID UNTO THEM, HE THAT SOWETH THE GOOD SEED IS THE SON OF MAN;K# 38 THE FIELD IS THE WORLD; THE GOOD SEED ARE THE CHILDREN OF THE KINGDOM;T5 BUT THE TARES ARE THE CHILDREN OF THE WICKED ONE; ITIJ# 39 THE ENEMY THAT SOWED THEM IS THE DEVIL; THE HARVEST IS THE END OF THE' WORLD; AND THE REAPERS ARE THE ANGELS.DL# 40 AS THEREFORE THE TARES ARE GATHERED AND BURNED IN THE FIRE; SO SHALL IT BE IN THE END OF THIS WORLD.IM# 41 THE SON OF MAN SHALL SEND FORTH HIS ANGELS, AND THEY SHALL GATHER OUT OFD@ HIS KINGDOM ALL THINGS THAT OFFEND, AND THEM WHICH DO INIQUITY;K# 42 AND SHALL CAST THEM INTO A FURNACE OF FIRE: THERE SHALL BE WAILING ANDD GNASHING OF TEETH.AL# 43 THEN SHALL THE RIGHTEOUS SHINE FORTH AS THE SUN IN THE KINGDOM OF THEIR- FATHER. WHO HATH EARS TO HEAR, LET HIM HEAR.NK# 44 AGAIN, THE KINGDOM OF HEAVEN IS LIKE UNTO TREASURE HID IN A FIELD; THEBN WHICH WHEN A MAN HATH FOUND, HE HIDETH, AND FOR JOY THEREOF GOETH AND SELLETH) ALL THAT HE HATH, AND BUYETH THAT FIELD.HM# 45 AGAIN, THE KINGDOM OF HEAVEN IS LIKE UNTO A MERCHANT MAN, SEEKING GOODLYU PEARLS:L# 46 WHO, WHEN HE HAD FOUND ONE PEARL OF GREAT PRICE, WENT AND SOLD ALL THAT HE HAD, AND BOUGHT IT.EL# 47 AGAIN, THE KINGDOM OF HEAVEN IS LIKE UNTO A NET, THAT WAS CAST INTO THE! SEA, AND GATHERED OF EVERY KIND:RL# 48 WHICH, WHEN IT WAS FULL, THEY DREW TO SHORE, AND SAT DOWN, AND GATHERED. THE GOOD INTO VESSELS, BUT CAST THE BAD AWAY.M# 49 SO SHALL IT BE AT THE END OF THE WORLD: THE ANGELS SHALL COME FORTH, AND& SEVER THE WICKED FROM AMONG THE JUST,M# 50 AND SHALL CAST THEM INTO THE FURNACE OF FIRE: THERE SHALL BE WAILING ANDN GNASHING OF TEETH.EI# 51 JESUS SAITH UNTO THEM, HAVE YE UNDERSTOOD ALL THESE THINGS? THEY SAY  UNTO HIM, YEA, LORD.AL# 52 THEN SAID HE UNTO THEM, THEREFORE EVERY SCRIBE WHICH IS INSTRUCTED UNTOG THE KINGDOM OF HEAVEN IS LIKE UNTO A MAN THAT IS AN HOUSEHOLDER, WHICHO7 BRINGETH FORTH OUT OF HIS TREASURE THINGS NEW AND OLD.BI# 53 AND IT CAME TO PASS, THAT WHEN JESUS HAD FINISHED THESE PARABLES, HEC DEPARTED THENCE.JG# 54 AND WHEN HE WAS COME INTO HIS OWN COUNTRY, HE TAUGHT THEM IN THEIRAN SYNAGOGUE, INSOMUCH THAT THEY WERE ASTONISHED, AND SAID, WHENCE HATH THIS MAN% THIS WISDOM, AND THESE MIGHTY WORKS?,K# 55 IS NOT THIS THE CARPENTERS SON? IS NOT HIS MOTHER CALLED MARY? AND HISS2 BRETHREN, JAMES, AND JOSES, AND SIMON, AND JUDAS?M# 56 AND HIS SISTERS, ARE THEY NOT ALL WITH US? WHENCE THEN HATH THIS MAN ALLN THESE THINGS?J# 57 AND THEY WERE OFFENDED IN HIM. BUT JESUS SAID UNTO THEM, A PROPHET ISC NOT WITHOUT HONOUR, SAVE IN HIS OWN COUNTRY, AND IN HIS OWN HOUSE.TF# 58 AND HE DID NOT MANY MIGHTY WORKS THERE BECAUSE OF THEIR UNBELIEF. = CHAPTER 14 H?# 1 AT THAT TIME HEROD THE TETRARCH HEARD OF00@?D%5%T6%! ! THE FAME OF JESUS, J# 2 AND SAID UNTO HIS SERVANTS, THIS IS JOHN THE BAPTIST; HE IS RISEN FROMF THE DEAD; AND THEREFORE MIGHTY WORKS DO SHEW FORTH THEMSELVES IN HIM.M# 3 FOR HEROD HAD LAID HOLD ON JOHN, AND BOUND HIM, AND PUT HIM IN PRISON FOR ) HERODIAS SAKE, HIS BROTHER PHILIPS WIFE.HB# 4 FOR JOHN SAID UNTO HIM, IT IS NOT LAWFUL FOR THEE TO HAVE HER.M# 5 AND WHEN HE WOULD HAVE PUT HIM TO DEATH, HE FEARED THE MULTITUDE, BECAUSER THEY COUNTED HIM AS A PROPHET.TM# 6 BUT WHEN HERODS BIRTHDAY WAS KEPT, THE DAUGHTER OF HERODIAS DANCED BEFOREI THEM, AND PLEASED HEROD.EL# 7 WHEREUPON HE PROMISED WITH AN OATH TO GIVE HER WHATSOEVER SHE WOULD ASK.K# 8 AND SHE, BEING BEFORE INSTRUCTED OF HER MOTHER, SAID, GIVE ME HERE JOHN  BAPTISTS HEAD IN A CHARGER.K# 9 AND THE KING WAS SORRY: NEVERTHELESS FOR THE OATHS SAKE, AND THEM WHICHA7 SAT WITH HIM AT MEAT, HE COMMANDED IT TO BE GIVEN HER.T2# 10 AND HE SENT, AND BEHEADED JOHN IN THE PRISON.L# 11 AND HIS HEAD WAS BROUGHT IN A CHARGER, AND GIVEN TO THE DAMSEL: AND SHE BROUGHT IT TO HER MOTHER.J# 12 AND HIS DISCIPLES CAME, AND TOOK UP THE BODY, AND BURIED IT, AND WENT AND TOLD JESUS.K# 13 WHEN JESUS HEARD OF IT, HE DEPARTED THENCE BY SHIP INTO A DESERT PLACEIL APART: AND WHEN THE PEOPLE HAD HEARD THEREOF, THEY FOLLOWED HIM ON FOOT OUT OF THE CITIES.EH# 14 AND JESUS WENT FORTH, AND SAW A GREAT MULTITUDE, AND WAS MOVED WITH2 COMPASSION TOWARD THEM, AND HE HEALED THEIR SICK.J# 15 AND WHEN IT WAS EVENING, HIS DISCIPLES CAME TO HIM, SAYING, THIS IS AK DESERT PLACE, AND THE TIME IS NOW PAST; SEND THE MULTITUDE AWAY, THAT THEYT7 MAY GO INTO THE VILLAGES, AND BUY THEMSELVES VICTUALS..I# 16 BUT JESUS SAID UNTO THEM, THEY NEED NOT DEPART; GIVE YE THEM TO EAT.CI# 17 AND THEY SAY UNTO HIM, WE HAVE HERE BUT FIVE LOAVES, AND TWO FISHES.T&# 18 HE SAID, BRING THEM HITHER TO ME.J# 19 AND HE COMMANDED THE MULTITUDE TO SIT DOWN ON THE GRASS, AND TOOK THEK FIVE LOAVES, AND THE TWO FISHES, AND LOOKING UP TO HEAVEN, HE BLESSED, AND F BRAKE, AND GAVE THE LOAVES TO HIS DISCIPLES, AND THE DISCIPLES TO THE MULTITUDE.TM# 20 AND THEY DID ALL EAT, AND WERE FILLED: AND THEY TOOK UP OF THE FRAGMENTS.# THAT REMAINED TWELVE BASKETS FULL. K# 21 AND THEY THAT HAD EATEN WERE ABOUT FIVE THOUSAND MEN, BESIDE WOMEN ANDE CHILDREN.L# 22 AND STRAIGHTWAY JESUS CONSTRAINED HIS DISCIPLES TO GET INTO A SHIP, ANDI TO GO BEFORE HIM UNTO THE OTHER SIDE, WHILE HE SENT THE MULTITUDES AWAY.SI# 23 AND WHEN HE HAD SENT THE MULTITUDES AWAY, HE WENT UP INTO A MOUNTAINNB APART TO PRAY: AND WHEN THE EVENING WAS COME, HE WAS THERE ALONE.M# 24 BUT THE SHIP WAS NOW IN THE MIDST OF THE SEA, TOSSED WITH WAVES: FOR THEG WIND WAS CONTRARY.DJ# 25 AND IN THE FOURTH WATCH OF THE NIGHT JESUS WENT UNTO THEM, WALKING ON THE SEA.DK# 26 AND WHEN THE DISCIPLES SAW HIM WALKING ON THE SEA, THEY WERE TROUBLED,S5 SAYING, IT IS A SPIRIT; AND THEY CRIED OUT FOR FEAR.HK# 27 BUT STRAIGHTWAY JESUS SPAKE UNTO THEM, SAYING, BE OF GOOD CHEER; IT ISU I; BE NOT AFRAID.K# 28 AND PETER ANSWERED HIM AND SAID, LORD, IF IT BE THOU, BID ME COME UNTO  THEE ON THE WATER.TH# 29 AND HE SAID, COME. AND WHEN PETER WAS COME DOWN OUT OF THE SHIP, HE% WALKED ON THE WATER, TO GO TO JESUS.RI# 30 BUT WHEN HE SAW THE WIND BOISTEROUS, HE WAS AFRAID; AND BEGINNING TOD' SINK, HE CRIED, SAYING, LORD, SAVE ME.EM# 31 AND IMMEDIATELY JESUS STRETCHED FORTH HIS HAND, AND CAUGHT HIM, AND SAIDR> UNTO HIM, O THOU OF LITTLE FAITH, WHEREFORE DIDST THOU DOUBT?<# 32 AND WHEN THEY WERE COME INTO THE SHIP, THE WIND CEASED.J# 33 THEN THEY THAT WERE IN THE SHIP CAME AND WORSHIPPED HIM, SAYING, OF A TRUTH THOU ARE THE SON OF GOD.PI# 34 AND WHEN THEY WERE GONE OVER, THEY CAME INTO THE LAND OF GENNESARET.SL# 35 AND WHEN THE MEN OF THAT PLACE HAD KNOWLEDGE OF HIM, THEY SENT OUT INTOK ALL THAT COUNTRY ROUND ABOUT, AND BROUGHT UNTO HIM ALL THAT WERE DISEASED;HL# 36 AND BESOUGHT HIM THAT THEY MIGHT ONLY TOUCH THE HEM OF HIS GARMENT: AND. AS MANY AS TOUCHED WERE MADE PERFECTLY WHOLE. = CHAPTER 15 TN# 1 THEN CAME TO JESUS SCRIBES AND PHARISEES00@ @<%X>%+%O-%TADATADATA, WHICH WERE OF JERUSALEM, SAYING,I# 2 WHY DO THY DISCIPLES TRANSGRESS THE TRADITION OF THE ELDERS? FOR THEYH* WASH NOT THEIR HANDS WHEN THEY EAT BREAD.E# 3 BUT HE ANSWERED AND SAID UNTO THEM, WHY DO YE ALSO TRANSGRESS THEM& COMMANDMENT OF GOD BY YOUR TRADITION?I# 4 FOR GOD COMMANDED, SAYING, HONOUR THY FATHER AND MOTHER: AND, HE THATH1 CURSETH FATHER OR MOTHER, LET HIM DIE THE DEATH.MH# 5 BUT YE SAY, WHOSOEVER SHALL SAY TO HIS FATHER OR HIS MOTHER, IT IS A5 GIFT, BY WHATSOEVER THOU MIGHTEST BE PROFITED BY ME;EK# 6 AND HONOUR NOT HIS FATHER OR HIS MOTHER, HE SHALL BE FREE. THUS HAVE YET> MADE THE COMMANDMENT OF GOD OF NONE EFFECT BY YOUR TRADITION.;# 7 YE HYPOCRITES, WELL DID ESAIAS PROPHESY OF YOU, SAYING,SL# 8 THIS PEOPLE DRAWETH NIGH UNTO ME WITH THEIR MOUTH, AND HONOURETH ME WITH, THEIR LIPS; BUT THEIR HEART IS FAR FROM ME.K# 9 BUT IN VAIN THEY DO WORSHIP ME, TEACHING FOR DOCTRINES THE COMMANDMENTSE OF MEN.K# 10 AND HE CALLED THE MULTITUDE, AND SAID UNTO THEM, HEAR, AND UNDERSTAND:BG# 11 NOT THAT WHICH GOETH INTO THE MOUTH DEFILETH A MAN; BUT THAT WHICH . COMETH OUT OF THE MOUTH, THIS DEFILETH A MAN.F# 12 THEN CAME HIS DISCIPLES, AND SAID UNTO HIM, KNOWEST THOU THAT THE7 PHARISEES WERE OFFENDED, AFTER THEY HEARD THIS SAYING?HM# 13 BUT HE ANSWERED AND SAID, EVERY PLANT, WHICH MY HEAVENLY FATHER HATH NOTI PLANTED, SHALL BE ROOTED UP. I# 14 LET THEM ALONE: THEY BE BLIND LEADERS OF THE BLIND. AND IF THE BLIND00 LEAD THE BLIND, BOTH SHALL FALL INTO THE DITCH.I# 15 THEN ANSWERED PETER AND SAID UNTO HIM, DECLARE UNTO US THIS PARABLE. ;# 16 AND JESUS SAID, ARE YE ALSO YET WITHOUT UNDERSTANDING? M# 17 DO NOT YE YET UNDERSTAND, THAT WHATSOEVER ENTERETH IN AT THE MOUTH GOETH2 INTO THE BELLY, AND IS CAST OUT INTO THE DRAUGHT?H# 18 BUT THOSE THINGS WHICH PROCEED OUT OF THE MOUTH COME FORTH FROM THE HEART; AND THEY DEFILE THE MAN.E# 19 FOR OUT OF THE HEART PROCEED EVIL THOUGHTS, MURDERS, ADULTERIES,I2 FORNICATIONS, THEFTS, FALSE WITNESS, BLASPHEMIES:L# 20 THESE ARE THE THINGS WHICH DEFILE A MAN: BUT TO EAT WITH UNWASHEN HANDS DEFILETH NOT A MAN.L# 21 THEN JESUS WENT THENCE, AND DEPARTED INTO THE COASTS OF TYRE AND SIDON.J# 22 AND, BEHOLD, A WOMAN OF CANAAN CAME OUT OF THE SAME COASTS, AND CRIEDN UNTO HIM, SAYING, HAVE MERCY ON ME, O LORD, THOU SON OF DAVID; MY DAUGHTER IS GRIEVOUSLY VEXED WITH A DEVIL. M# 23 BUT HE ANSWERED HER NOT A WORD. AND HIS DISCIPLES CAME AND BESOUGHT HIM, 0 SAYING, SEND HER AWAY; FOR SHE CRIETH AFTER US.K# 24 BUT HE ANSWERED AND SAID, I AM NOT SENT BUT UNTO THE LOST SHEEP OF THE  HOUSE OF ISRAEL.F=# 25 THEN CAME SHE AND WORSHIPPED HIM, SAYING, LORD, HELP ME.OJ# 26 BUT HE ANSWERED AND SAID, IT IS NOT MEET TO TAKE THE CHILDRENS BREAD, AND TO CAST IT TO DOGS.I# 27 AND SHE SAID, TRUTH, LORD: YET THE DOGS EAT OF THE CRUMBS WHICH FALLU FROM THEIR MASTERS TABLE.K# 28 THEN JESUS ANSWERED AND SAID UNTO HER, O WOMAN, GREAT IS THY FAITH: BENJ IT UNTO THEE EVEN AS THOU WILT. AND HER DAUGHTER WAS MADE WHOLE FROM THAT VERY HOUR.AK# 29 AND JESUS DEPARTED FROM THENCE, AND CAME NIGH UNTO THE SEA OF GALILEE; 1 AND WENT UP INTO A MOUNTAIN, AND SAT DOWN THERE.HI# 30 AND GREAT MULTITUDES CAME UNTO HIM, HAVING WITH THEM THOSE THAT WERENN LAME, BLIND, DUMB, MAIMED, AND MANY OTHERS, AND CAST THEM DOWN AT JESUS FEET; AND HE HEALED THEM:K# 31 INSOMUCH THAT THE MULTITUDE WONDERED, WHEN THEY SAW THE DUMB TO SPEAK,HI THE MAIMED TO BE WHOLE, THE LAME TO WALK, AND THE BLIND TO SEE: AND THEYH GLORIFIED THE GOD OF ISRAEL. M# 32 THEN JESUS CALLED HIS DISCIPLES UNTO HIM, AND SAID, I HAVE COMPASSION ON N THE MULTITUDE, BECAUSE THEY CONTINUE WITH ME NOW THREE DAYS, AND HAVE NOTHINGK TO EAT: AND I WILL NOT SEND THEM AWAY FASTING, LEST THEY FAINT IN THE WAY.DK# 33 AND HIS DISCIPLES SAY UNTO HIM, WHENCE SHOULD WE HAVE SO MUCH BREAD INE1 THE WILDERNESS, AS TO FILL SO GREAT A MULTITUDE?EG# 34 AND JESUS SAITH UNTO THEM, HOW MANY LOAVES HAVE YE? AND THEY SAID,O SEVEN, AND A FEW LITTLE FISHES.># 35 AND HE COMMANDED THE MULTITUDE TO SIT DOWN ON THE GROUND.L# 36 AND HE TOOK00@?D%5%T6%! ! THE SEVEN LOAVES AND THE FISHES, AND GAVE THANKS, AND BRAKEE THEM, AND GAVE TO HIS DISCIPLES, AND THE DISCIPLES TO THE MULTITUDE.WJ# 37 AND THEY DID ALL EAT, AND WERE FILLED: AND THEY TOOK UP OF THE BROKEN' MEAT THAT WAS LEFT SEVEN BASKETS FULL.AM# 38 AND THEY THAT DID EAT WERE FOUR THOUSAND MEN, BESIDE WOMEN AND CHILDREN.AL# 39 AND HE SENT AWAY THE MULTITUDE, AND TOOK SHIP, AND CAME INTO THE COASTS OF MAGDALA. = CHAPTER 16 AM# 1 THE PHARISEES ALSO WITH THE SADDUCEES CAME, AND TEMPTING DESIRED HIM THATS' HE WOULD SHEW THEM A SIGN FROM HEAVEN.KJ# 2 HE ANSWERED AND SAID UNTO THEM, WHEN IT IS EVENING, YE SAY, IT WILL BE" FAIR WEATHER: FOR THE SKY IS RED.J# 3 AND IN THE MORNING, IT WILL BE FOUL WEATHER TO DAY: FOR THE SKY IS REDN AND LOWERING. O YE HYPOCRITES, YE CAN DISCERN THE FACE OF THE SKY; BUT CAN YE$ NOT DISCERN THE SIGNS OF THE TIMES?L# 4 A WICKED AND ADULTEROUS GENERATION SEEKETH AFTER A SIGN; AND THERE SHALLI NO SIGN BE GIVEN UNTO IT, BUT THE SIGN OF THE PROPHET JONAS. AND HE LEFTD THEM, AND DEPARTED.M# 5 AND WHEN HIS DISCIPLES WERE COME TO THE OTHER SIDE, THEY HAD FORGOTTEN TOE TAKE BREAD.H# 6 THEN JESUS SAID UNTO THEM, TAKE HEED AND BEWARE OF THE LEAVEN OF THE PHARISEES AND OF THE SADDUCEES.K# 7 AND THEY REASONED AMONG THEMSELVES, SAYING, IT IS BECAUSE WE HAVE TAKENT NO BREAD.L# 8 WHICH WHEN JESUS PERCEIVED, HE SAID UNTO THEM, O YE OF LITTLE FAITH, WHY> REASON YE AMONG YOURSELVES, BECAUSE YE HAVE BROUGHT NO BREAD?J# 9 DO YE NOT YET UNDERSTAND, NEITHER REMEMBER THE FIVE LOAVES OF THE FIVE+ THOUSAND, AND HOW MANY BASKETS YE TOOK UP?HK# 10 NEITHER THE SEVEN LOAVES OF THE FOUR THOUSAND, AND HOW MANY BASKETS YET TOOK UP?EC# 11 HOW IS IT THAT YE DO NOT UNDERSTAND THAT I SPAKE IT NOT TO YOUN CONCERNING BREAD, THAT YE SHOULD BEWARE OF THE LEAVEN OF THE PHARISEES AND OF THE SADDUCEES?CK# 12 THEN UNDERSTOOD THEY HOW THAT HE BADE THEM NOT BEWARE OF THE LEAVEN OF B BREAD, BUT OF THE DOCTRINE OF THE PHARISEES AND OF THE SADDUCEES.G# 13 WHEN JESUS CAME INTO THE COASTS OF CAESAREA PHILIPPI, HE ASKED HIS,= DISCIPLES, SAYING, WHOM DO MEN SAY THAT I THE SON OF MAN AM?EM# 14 AND THEY SAID, SOME SAY THAT THOU ART JOHN THE BAPTIST: SOME, ELIAS; ANDA* OTHERS, JEREMIAS, OR ONE OF THE PROPHETS.3# 15 HE SAITH UNTO THEM, BUT WHOM SAY YE THAT I AM?HK# 16 AND SIMON PETER ANSWERED AND SAID, THOU ART THE CHRIST, THE SON OF THE LIVING GOD.K# 17 AND JESUS ANSWERED AND SAID UNTO HIM, BLESSED ART THOU, SIMON BARJONA:IN FOR FLESH AND BLOOD HATH NOT REVEALED IT UNTO THEE, BUT MY FATHER WHICH IS IN HEAVEN.M# 18 AND I SAY ALSO UNTO THEE, THAT THOU ART PETER, AND UPON THIS ROCK I WILL4E BUILD MY CHURCH; AND THE GATES OF HELL SHALL NOT PREVAIL AGAINST IT.NE# 19 AND I WILL GIVE UNTO THEE THE KEYS OF THE KINGDOM OF HEAVEN: AND,M WHATSOEVER THOU SHALT BIND ON EARTH SHALL BE BOUND IN HEAVEN: AND WHATSOEVERT5 THOU SHALT LOOSE ON EARTH SHALL BE LOOSED IN HEAVEN.SK# 20 THEN CHARGED HE HIS DISCIPLES THAT THEY SHOULD TELL NO MAN THAT HE WASD JESUS THE CHRIST.M# 21 FROM THAT TIME FORTH BEGAN JESUS TO SHEW UNTO HIS DISCIPLES, HOW THAT HEOG MUST GO UNTO JERUSALEM, AND SUFFER MANY THINGS OF THE ELDERS AND CHIEF G PRIESTS AND SCRIBES, AND BE KILLED, AND BE RAISED AGAIN THE THIRD DAY.EI# 22 THEN PETER TOOK HIM, AND BEGAN TO REBUKE HIM, SAYING, BE IT FAR FROMB) THEE, LORD: THIS SHALL NOT BE UNTO THEE.WL# 23 BUT HE TURNED, AND SAID UNTO PETER, GET THEE BEHIND ME, SATAN: THOU ARTJ AN OFFENCE UNTO ME: FOR THOU SAVOUREST NOT THE THINGS THAT BE OF GOD, BUT THOSE THAT BE OF MEN.K# 24 THEN SAID JESUS UNTO HIS DISCIPLES, IF ANY MAN WILL COME AFTER ME, LETU8 HIM DENY HIMSELF, AND TAKE UP HIS CROSS, AND FOLLOW ME.L# 25 FOR WHOSOEVER WILL SAVE HIS LIFE SHALL LOSE IT: AND WHOSOEVER WILL LOSE$ HIS LIFE FOR MY SAKE SHALL FIND IT.K# 26 FOR WHAT IS A MAN PROFITED, IF HE SHALL GAIN THE WHOLE WORLD, AND LOSEHA HIS OWN SOUL? OR WHAT SHALL A MAN GIVE IN EXCHANGE FOR HIS SOUL?SF# 27 FOR THE SON OF MAN SHALL COME IN THE GLORY OF HIS FATHER WITH HISC ANGELS; AND THEN HE SHALL REWARD EVERY MAN ACCORDING TO HIS W00@ @<%X>%+%O-%TADATADATAORKS. H# 28 VERILY I SAY UNTO YOU, THERE BE SOME STANDING HERE, WHICH SHALL NOTD TASTE OF DEATH, TILL THEY SEE THE SON OF MAN COMING IN HIS KINGDOM. = CHAPTER 17 IK# 1 AND AFTER SIX DAYS JESUS TAKETH PETER, JAMES, AND JOHN HIS BROTHER, ANDA. BRINGETH THEM UP INTO AN HIGH MOUNTAIN APART,L# 2 AND WAS TRANSFIGURED BEFORE THEM: AND HIS FACE DID SHINE AS THE SUN, AND$ HIS RAIMENT WAS WHITE AS THE LIGHT.K# 3 AND, BEHOLD, THERE APPEARED UNTO THEM MOSES AND ELIAS TALKING WITH HIM.VK# 4 THEN ANSWERED PETER, AND SAID UNTO JESUS, LORD, IT IS GOOD FOR US TO BETN HERE: IF THOU WILT, LET US MAKE HERE THREE TABERNACLES; ONE FOR THEE, AND ONE FOR MOSES, AND ONE FOR ELIAS.L# 5 WHILE HE YET SPAKE, BEHOLD, A BRIGHT CLOUD OVERSHADOWED THEM: AND BEHOLDK A VOICE OUT OF THE CLOUD, WHICH SAID, THIS IS MY BELOVED SON, IN WHOM I AMB WELL PLEASED; HEAR YE HIM.SK# 6 AND WHEN THE DISCIPLES HEARD IT, THEY FELL ON THEIR FACE, AND WERE SORET AFRAID.H# 7 AND JESUS CAME AND TOUCHED THEM, AND SAID, ARISE, AND BE NOT AFRAID.M# 8 AND WHEN THEY HAD LIFTED UP THEIR EYES, THEY SAW NO MAN, SAVE JESUS ONLY.UM# 9 AND AS THEY CAME DOWN FROM THE MOUNTAIN, JESUS CHARGED THEM, SAYING, TELLLI THE VISION TO NO MAN, UNTIL THE SON OF MAN BE RISEN AGAIN FROM THE DEAD. M# 10 AND HIS DISCIPLES ASKED HIM, SAYING, WHY THEN SAY THE SCRIBES THAT ELIASI MUST FIRST COME?;M# 11 AND JESUS ANSWERED AND SAID UNTO THEM, ELIAS TRULY SHALL FIRST COME, ANDN RESTORE ALL THINGS.K# 12 BUT I SAY UNTO YOU, THAT ELIAS IS COME ALREADY, AND THEY KNEW HIM NOT, N BUT HAVE DONE UNTO HIM WHATSOEVER THEY LISTED. LIKEWISE SHALL ALSO THE SON OF MAN SUFFER OF THEM.F# 13 THEN THE DISCIPLES UNDERSTOOD THAT HE SPAKE UNTO THEM OF JOHN THE BAPTIST.LJ# 14 AND WHEN THEY WERE COME TO THE MULTITUDE, THERE CAME TO HIM A CERTAIN' MAN, KNEELING DOWN TO HIM, AND SAYING,AH# 15 LORD, HAVE MERCY ON MY SON: FOR HE IS LUNATICK, AND SORE VEXED: FOR; OFTTIMES HE FALLETH INTO THE FIRE, AND OFT INTO THE WATER.2E# 16 AND I BROUGHT HIM TO THY DISCIPLES, AND THEY COULD NOT CURE HIM. K# 17 THEN JESUS ANSWERED AND SAID, O FAITHLESS AND PERVERSE GENERATION, HOW K LONG SHALL I BE WITH YOU? HOW LONG SHALL I SUFFER YOU? BRING HIM HITHER TOT ME.K# 18 AND JESUS REBUKED THE DEVIL; AND HE DEPARTED OUT OF HIM: AND THE CHILDE WAS CURED FROM THAT VERY HOUR.EL# 19 THEN CAME THE DISCIPLES TO JESUS APART, AND SAID, WHY COULD NOT WE CAST HIM OUT?SI# 20 AND JESUS SAID UNTO THEM, BECAUSE OF YOUR UNBELIEF: FOR VERILY I SAY2N UNTO YOU, IF YE HAVE FAITH AS A GRAIN OF MUSTARD SEED, YE SHALL SAY UNTO THISI MOUNTAIN, REMOVE HENCE TO YONDER PLACE; AND IT SHALL REMOVE; AND NOTHINGN SHALL BE IMPOSSIBLE UNTO YOU.?# 21 HOWBEIT THIS KIND GOETH NOT OUT BUT BY PRAYER AND FASTING.BJ# 22 AND WHILE THEY ABODE IN GALILEE, JESUS SAID UNTO THEM, THE SON OF MAN) SHALL BE BETRAYED INTO THE HANDS OF MEN:LM# 23 AND THEY SHALL KILL HIM, AND THE THIRD DAY HE SHALL BE RAISED AGAIN. ANDS THEY WERE EXCEEDING SORRY.RK# 24 AND WHEN THEY WERE COME TO CAPERNAUM, THEY THAT RECEIVED TRIBUTE MONEYR; CAME TO PETER, AND SAID, DOTH NOT YOUR MASTER PAY TRIBUTE?NM# 25 HE SAITH, YES. AND WHEN HE WAS COME INTO THE HOUSE, JESUS PREVENTED HIM, J SAYING, WHAT THINKEST THOU, SIMON? OF WHOM DO THE KINGS OF THE EARTH TAKE; CUSTOM OR TRIBUTE? OF THEIR OWN CHILDREN, OR OF STRANGERS?NK# 26 PETER SAITH UNTO HIM, OF STRANGERS. JESUS SAITH UNTO HIM, THEN ARE THEN CHILDREN FREE.EI# 27 NOTWITHSTANDING, LEST WE SHOULD OFFEND THEM, GO THOU TO THE SEA, ANDHL CAST AN HOOK, AND TAKE UP THE FISH THAT FIRST COMETH UP; AND WHEN THOU HASTM OPENED HIS MOUTH, THOU SHALT FIND A PIECE OF MONEY: THAT TAKE, AND GIVE UNTOA THEM FOR ME AND THEE. = CHAPTER 18 HF# 1 AT THE SAME TIME CAME THE DISCIPLES UNTO JESUS, SAYING, WHO IS THE# GREATEST IN THE KINGDOM OF HEAVEN?RI# 2 AND JESUS CALLED A LITTLE CHILD UNTO HIM, AND SET HIM IN THE MIDST OFJ THEM,J# 3 AND SAID, VERILY I SAY UNTO YOU, EXCEPT YE BE CONVERTED, AND BECOME AS@ LITTLE CHILDREN, YE SHALL NOT ENTER INTO THE KINGDOM OF HEAVEN.K# 4 WHOSOEVER THEREFORE SHALL HUMBLE HIMSELF AS THIS L00@?D%5%T6%! !ITTLE CHILD, THE SAMET& IS GREATEST IN THE KINGDOM OF HEAVEN.J# 5 AND WHOSO SHALL RECEIVE ONE SUCH LITTLE CHILD IN MY NAME RECEIVETH ME.K# 6 BUT WHOSO SHALL OFFEND ONE OF THESE LITTLE ONES WHICH BELIEVE IN ME, ITDM WERE BETTER FOR HIM THAT A MILLSTONE WERE HANGED ABOUT HIS NECK, AND THAT HEE& WERE DROWNED IN THE DEPTH OF THE SEA.E# 7 WOE UNTO THE WORLD BECAUSE OF OFFENCES! FOR IT MUST NEEDS BE THATN? OFFENCES COME; BUT WOE TO THAT MAN BY WHOM THE OFFENCE COMETH!HI# 8 WHEREFORE IF THY HAND OR THY FOOT OFFEND THEE, CUT THEM OFF, AND CASTII THEM FROM THEE: IT IS BETTER FOR THEE TO ENTER INTO LIFE HALT OR MAIMED, K RATHER THAN HAVING TWO HANDS OR TWO FEET TO BE CAST INTO EVERLASTING FIRE. L# 9 AND IF THINE EYE OFFEND THEE, PLUCK IT OUT, AND CAST IT FROM THEE: IT ISM BETTER FOR THEE TO ENTER INTO LIFE WITH ONE EYE, RATHER THAN HAVING TWO EYESO TO BE CAST INTO HELL FIRE.SK# 10 TAKE HEED THAT YE DESPISE NOT ONE OF THESE LITTLE ONES; FOR I SAY UNTO N YOU, THAT IN HEAVEN THEIR ANGELS DO ALWAYS BEHOLD THE FACE OF MY FATHER WHICH IS IN HEAVEN.<# 11 FOR THE SON OF MAN IS COME TO SAVE THAT WHICH WAS LOST.J# 12 HOW THINK YE? IF A MAN HAVE AN HUNDRED SHEEP, AND ONE OF THEM BE GONEM ASTRAY, DOTH HE NOT LEAVE THE NINETY AND NINE, AND GOETH INTO THE MOUNTAINS,T' AND SEEKETH THAT WHICH IS GONE ASTRAY?OK# 13 AND IF SO BE THAT HE FIND IT, VERILY I SAY UNTO YOU, HE REJOICETH MORESB OF THAT SHEEP, THAN OF THE NINETY AND NINE WHICH WENT NOT ASTRAY.K# 14 EVEN SO IT IS NOT THE WILL OF YOUR FATHER WHICH IS IN HEAVEN, THAT ONE $ OF THESE LITTLE ONES SHOULD PERISH.M# 15 MOREOVER IF THY BROTHER SHALL TRESPASS AGAINST THEE, GO AND TELL HIM HISAN FAULT BETWEEN THEE AND HIM ALONE: IF HE SHALL HEAR THEE, THOU HAST GAINED THY BROTHER. L# 16 BUT IF HE WILL NOT HEAR THEE, THEN TAKE WITH THEE ONE OR TWO MORE, THATF IN THE MOUTH OF TWO OR THREE WITNESSES EVERY WORD MAY BE ESTABLISHED.M# 17 AND IF HE SHALL NEGLECT TO HEAR THEM, TELL IT UNTO THE CHURCH: BUT IF HE4I NEGLECT TO HEAR THE CHURCH, LET HIM BE UNTO THEE AS AN HEATHEN MAN AND AO PUBLICAN.L# 18 VERILY I SAY UNTO YOU, WHATSOEVER YE SHALL BIND ON EARTH SHALL BE BOUNDM IN HEAVEN: AND WHATSOEVER YE SHALL LOOSE ON EARTH SHALL BE LOOSED IN HEAVEN.HE# 19 AGAIN I SAY UNTO YOU, THAT IF TWO OF YOU SHALL AGREE ON EARTH AS,N TOUCHING ANYTHING THAT THEY SHALL ASK, IT SHALL BE DONE FOR THEM OF MY FATHER WHICH IS IN HEAVEN.K# 20 FOR WHERE TWO OR THREE ARE GATHERED TOGETHER IN MY NAME, THERE AM I INR THE MIDST OF THEM.EI# 21 THEN CAME PETER TO HIM, AND SAID, LORD, HOW OFT SHALL MY BROTHER SINI1 AGAINST ME, AND I FORGIVE HIM? TILL SEVEN TIMES?LM# 22 JESUS SAITH UNTO HIM, I SAY NOT UNTO THEE, UNTIL SEVEN TIMES: BUT, UNTILR SEVENTY TIMES SEVEN.EJ# 23 THEREFORE IS THE KINGDOM OF HEAVEN LIKENED UNTO A CERTAIN KING, WHICH$ WOULD TAKE ACCOUNT OF HIS SERVANTS.J# 24 AND WHEN HE HAD BEGUN TO RECKON, ONE WAS BROUGHT UNTO HIM, WHICH OWED HIM TEN THOUSAND TALENTS.K# 25 BUT FORASMUCH AS HE HAD NOT TO PAY, HIS LORD COMMANDED HIM TO BE SOLD,EI AND HIS WIFE, AND CHILDREN, AND ALL THAT HE HAD, AND PAYMENT TO BE MADE.AL# 26 THE SERVANT THEREFORE FELL DOWN, AND WORSHIPPED HIM, SAYING, LORD, HAVE+ PATIENCE WITH ME, AND I WILL PAY THEE ALL.NM# 27 THEN THE LORD OF THAT SERVANT WAS MOVED WITH COMPASSION, AND LOOSED HIM,N AND FORGAVE HIM THE DEBT.H# 28 BUT THE SAME SERVANT WENT OUT, AND FOUND ONE OF HIS FELLOWSERVANTS,K WHICH OWED HIM AN HUNDRED PENCE: AND HE LAID HANDS ON HIM, AND TOOK HIM BYE, THE THROAT, SAYING, PAY ME THAT THOU OWEST.K# 29 AND HIS FELLOWSERVANT FELL DOWN AT HIS FEET, AND BESOUGHT HIM, SAYING,A0 HAVE PATIENCE WITH ME, AND I WILL PAY THEE ALL.L# 30 AND HE WOULD NOT: BUT WENT AND CAST HIM INTO PRISON, TILL HE SHOULD PAY THE DEBT.L# 31 SO WHEN HIS FELLOWSERVANTS SAW WHAT WAS DONE, THEY WERE VERY SORRY, AND1 CAME AND TOLD UNTO THEIR LORD ALL THAT WAS DONE.OG# 32 THEN HIS LORD, AFTER THAT HE HAD CALLED HIM, SAID UNTO HIM, O THOUEI WICKED SERVANT, I FORGAVE THEE ALL THAT DEBT, BECAUSE THOU DESIREDST ME:HK# 33 SHOULDEST NOT THOU ALSO HAVE HAD COMPASSION ON 00@ @<%X>%+%O-%TADATADATATHY FELLOWSERVANT, EVENT AS I HAD PITY ON THEE?II# 34 AND HIS LORD WAS WROTH, AND DELIVERED HIM TO THE TORMENTORS, TILL HE & SHOULD PAY ALL THAT WAS DUE UNTO HIM.K# 35 SO LIKEWISE SHALL MY HEAVENLY FATHER DO ALSO UNTO YOU, IF YE FROM YOURR; HEARTS FORGIVE NOT EVERY ONE HIS BROTHER THEIR TRESPASSES.E = CHAPTER 19 IG# 1 AND IT CAME TO PASS, THAT WHEN JESUS HAD FINISHED THESE SAYINGS, HEVI DEPARTED FROM GALILEE, AND CAME INTO THE COASTS OF JUDAEA BEYOND JORDAN;E@# 2 AND GREAT MULTITUDES FOLLOWED HIM; AND HE HEALED THEM THERE.K# 3 THE PHARISEES ALSO CAME UNTO HIM, TEMPTING HIM, AND SAYING UNTO HIM, ISH: IT LAWFUL FOR A MAN TO PUT AWAY HIS WIFE FOR EVERY CAUSE?L# 4 AND HE ANSWERED AND SAID UNTO THEM, HAVE YE NOT READ, THAT HE WHICH MADE1 THEM AT THE BEGINNING MADE THEM MALE AND FEMALE, K# 5 AND SAID, FOR THIS CAUSE SHALL A MAN LEAVE FATHER AND MOTHER, AND SHALLN7 CLEAVE TO HIS WIFE: AND THEY TWAIN SHALL BE ONE FLESH?EL# 6 WHEREFORE THEY ARE NO MORE TWAIN, BUT ONE FLESH. WHAT THEREFORE GOD HATH* JOINED TOGETHER, LET NOT MAN PUT ASUNDER.F# 7 THEY SAY UNTO HIM, WHY DID MOSES THEN COMMAND TO GIVE A WRITING OF" DIVORCEMENT, AND TO PUT HER AWAY?M# 8 HE SAITH UNTO THEM, MOSES BECAUSE OF THE HARDNESS OF YOUR HEARTS SUFFEREDTB YOU TO PUT AWAY YOUR WIVES: BUT FROM THE BEGINNING IT WAS NOT SO.K# 9 AND I SAY UNTO YOU, WHOSOEVER SHALL PUT AWAY HIS WIFE, EXCEPT IT BE FORN FORNICATION, AND SHALL MARRY ANOTHER, COMMITTETH ADULTERY: AND WHOSO MARRIETH, HER WHICH IS PUT AWAY DOTH COMMIT ADULTERY.L# 10 HIS DISCIPLES SAY UNTO HIM, IF THE CASE OF THE MAN BE SO WITH HIS WIFE, IT IS NOT GOOD TO MARRY.OL# 11 BUT HE SAID UNTO THEM, ALL MEN CANNOT RECEIVE THIS SAYING, SAVE THEY TO WHOM IT IS GIVEN.L# 12 FOR THERE ARE SOME EUNUCHS, WHICH WERE SO BORN FROM THEIR MOTHERS WOMB:I AND THERE ARE SOME EUNUCHS, WHICH WERE MADE EUNUCHS OF MEN: AND THERE BEYM EUNUCHS, WHICH HAVE MADE THEMSELVES EUNUCHS FOR THE KINGDOM OF HEAVENS SAKE. 3 HE THAT IS ABLE TO RECEIVE IT, LET HIM RECEIVE IT.DM# 13 THEN WERE THERE BROUGHT UNTO HIM LITTLE CHILDREN, THAT HE SHOULD PUT HISE9 HANDS ON THEM, AND PRAY: AND THE DISCIPLES REBUKED THEM. I# 14 BUT JESUS SAID, SUFFER LITTLE CHILDREN, AND FORBID THEM NOT, TO COMEI/ UNTO ME: FOR OF SUCH IS THE KINGDOM OF HEAVEN.W8# 15 AND HE LAID HIS HANDS ON THEM, AND DEPARTED THENCE.J# 16 AND, BEHOLD, ONE CAME AND SAID UNTO HIM, GOOD MASTER, WHAT GOOD THING* SHALL I DO, THAT I MAY HAVE ETERNAL LIFE?K# 17 AND HE SAID UNTO HIM, WHY CALLEST THOU ME GOOD? THERE IS NONE GOOD BUTEL ONE, THAT IS, GOD: BUT IF THOU WILT ENTER INTO LIFE, KEEP THE COMMANDMENTS.H# 18 HE SAITH UNTO HIM, WHICH? JESUS SAID, THOU SHALT DO NO MURDER, THOUK SHALT NOT COMMIT ADULTERY, THOU SHALT NOT STEAL, THOU SHALT NOT BEAR FALSE WITNESS,DL# 19 HONOUR THY FATHER AND THY MOTHER: AND, THOU SHALT LOVE THY NEIGHBOUR AS THYSELF.DM# 20 THE YOUNG MAN SAITH UNTO HIM, ALL THESE THINGS HAVE I KEPT FROM MY YOUTH  UP: WHAT LACK I YET?H# 21 JESUS SAID UNTO HIM, IF THOU WILT BE PERFECT, GO AND SELL THAT THOUM HAST, AND GIVE TO THE POOR, AND THOU SHALT HAVE TREASURE IN HEAVEN: AND COME. AND FOLLOW ME.NM# 22 BUT WHEN THE YOUNG MAN HEARD THAT SAYING, HE WENT AWAY SORROWFUL: FOR HEL HAD GREAT POSSESSIONS.LK# 23 THEN SAID JESUS UNTO HIS DISCIPLES, VERILY I SAY UNTO YOU, THAT A RICHE3 MAN SHALL HARDLY ENTER INTO THE KINGDOM OF HEAVEN.M# 24 AND AGAIN I SAY UNTO YOU, IT IS EASIER FOR A CAMEL TO GO THROUGH THE EYEC OF A NEEDLE, THAN FOR A RICH MAN TO ENTER INTO THE KINGDOM OF GOD.FK# 25 WHEN HIS DISCIPLES HEARD IT, THEY WERE EXCEEDINGLY AMAZED, SAYING, WHOT THEN CAN BE SAVED?DL# 26 BUT JESUS BEHELD THEM, AND SAID UNTO THEM, WITH MEN THIS IS IMPOSSIBLE;& BUT WITH GOD ALL THINGS ARE POSSIBLE.M# 27 THEN ANSWERED PETER AND SAID UNTO HIM, BEHOLD, WE HAVE FORSAKEN ALL, ANDH- FOLLOWED THEE; WHAT SHALL WE HAVE THEREFORE?NH# 28 AND JESUS SAID UNTO THEM, VERILY I SAY UNTO YOU, THAT YE WHICH HAVEM FOLLOWED ME, IN THE REGENERATION WHEN THE SON OF MAN SHALL SIT IN THE THRONEGH OF HIS GLORY, YE ALSO SHALL SIT UPON TWELVE THRONES, JUDGIN00@?D%5%T6%! !G THE TWELVE TRIBES OF ISRAEL.I# 29 AND EVERY ONE THAT HATH FORSAKEN HOUSES, OR BRETHREN, OR SISTERS, ORNL FATHER, OR MOTHER, OR WIFE, OR CHILDREN, OR LANDS, FOR MY NAMES SAKE, SHALL< RECEIVE AN HUNDREDFOLD, AND SHALL INHERIT EVERLASTING LIFE.H# 30 BUT MANY THAT ARE FIRST SHALL BE LAST; AND THE LAST SHALL BE FIRST. = CHAPTER 20 N# 1 FOR THE KINGDOM OF HEAVEN IS LIKE UNTO A MAN THAT IS AN HOUSEHOLDER, WHICHC WENT OUT EARLY IN THE MORNING TO HIRE LABOURERS INTO HIS VINEYARD.OM# 2 AND WHEN HE HAD AGREED WITH THE LABOURERS FOR A PENNY A DAY, HE SENT THEMA INTO HIS VINEYARD.SM# 3 AND HE WENT OUT ABOUT THE THIRD HOUR, AND SAW OTHERS STANDING IDLE IN THEN MARKETPLACE,SM# 4 AND SAID UNTO THEM; GO YE ALSO INTO THE VINEYARD, AND WHATSOEVER IS RIGHT0* I WILL GIVE YOU. AND THEY WENT THEIR WAY.G# 5 AGAIN HE WENT OUT ABOUT THE SIXTH AND NINTH HOUR, AND DID LIKEWISE.SL# 6 AND ABOUT THE ELEVENTH HOUR HE WENT OUT, AND FOUND OTHERS STANDING IDLE,9 AND SAITH UNTO THEM, WHY STAND YE HERE ALL THE DAY IDLE? K# 7 THEY SAY UNTO HIM, BECAUSE NO MAN HATH HIRED US. HE SAITH UNTO THEM, GODK YE ALSO INTO THE VINEYARD; AND WHATSOEVER IS RIGHT, THAT SHALL YE RECEIVE. K# 8 SO WHEN EVEN WAS COME, THE LORD OF THE VINEYARD SAITH UNTO HIS STEWARD,NK CALL THE LABOURERS, AND GIVE THEM THEIR HIRE, BEGINNING FROM THE LAST UNTO THE FIRST.BM# 9 AND WHEN THEY CAME THAT WERE HIRED ABOUT THE ELEVENTH HOUR, THEY RECEIVEDU EVERY MAN A PENNY.UJ# 10 BUT WHEN THE FIRST CAME, THEY SUPPOSED THAT THEY SHOULD HAVE RECEIVED4 MORE; AND THEY LIKEWISE RECEIVED EVERY MAN A PENNY.L# 11 AND WHEN THEY HAD RECEIVED IT, THEY MURMURED AGAINST THE GOODMAN OF THE HOUSE,TJ# 12 SAYING, THESE LAST HAVE WROUGHT BUT ONE HOUR, AND THOU HAST MADE THEM@ EQUAL UNTO US, WHICH HAVE BORNE THE BURDEN AND HEAT OF THE DAY.M# 13 BUT HE ANSWERED ONE OF THEM, AND SAID, FRIEND, I DO THEE NO WRONG: DIDST $ NOT THOU AGREE WITH ME FOR A PENNY?L# 14 TAKE THAT THINE IS, AND GO THY WAY: I WILL GIVE UNTO THIS LAST, EVEN AS UNTO THEE.HJ# 15 IS IT NOT LAWFUL FOR ME TO DO WHAT I WILL WITH MINE OWN? IS THINE EYE EVIL, BECAUSE I AM GOOD?EL# 16 SO THE LAST SHALL BE FIRST, AND THE FIRST LAST: FOR MANY BE CALLED, BUT FEW CHOSEN.K# 17 AND JESUS GOING UP TO JERUSALEM TOOK THE TWELVE DISCIPLES APART IN THEE WAY, AND SAID UNTO THEM,.M# 18 BEHOLD, WE GO UP TO JERUSALEM; AND THE SON OF MAN SHALL BE BETRAYED UNTO M THE CHIEF PRIESTS AND UNTO THE SCRIBES, AND THEY SHALL CONDEMN HIM TO DEATH,:J# 19 AND SHALL DELIVER HIM TO THE GENTILES TO MOCK, AND TO SCOURGE, AND TO4 CRUCIFY HIM: AND THE THIRD DAY HE SHALL RISE AGAIN.D# 20 THEN CAME TO HIM THE MOTHER OF ZEBEDEES CHILDREN WITH HER SONS,6 WORSHIPPING HIM, AND DESIRING A CERTAIN THING OF HIM.I# 21 AND HE SAID UNTO HER, WHAT WILT THOU? SHE SAITH UNTO HIM, GRANT THAT K THESE MY TWO SONS MAY SIT, THE ONE ON THY RIGHT HAND, AND THE OTHER ON THES LEFT, IN THY KINGDOM.I# 22 BUT JESUS ANSWERED AND SAID, YE KNOW NOT WHAT YE ASK. ARE YE ABLE TOHL DRINK OF THE CUP THAT I SHALL DRINK OF, AND TO BE BAPTIZED WITH THE BAPTISM9 THAT I AM BAPTIZED WITH? THEY SAY UNTO HIM, WE ARE ABLE.0M# 23 AND HE SAITH UNTO THEM, YE SHALL DRINK INDEED OF MY CUP, AND BE BAPTIZEDHN WITH THE BAPTISM THAT I AM BAPTIZED WITH: BUT TO SIT ON MY RIGHT HAND, AND ONK MY LEFT, IS NOT MINE TO GIVE, BUT IT SHALL BE GIVEN TO THEM FOR WHOM IT IST PREPARED OF MY FATHER.HL# 24 AND WHEN THE TEN HEARD IT, THEY WERE MOVED WITH INDIGNATION AGAINST THE TWO BRETHREN.J# 25 BUT JESUS CALLED THEM UNTO HIM, AND SAID, YE KNOW THAT THE PRINCES OFK THE GENTILES EXERCISE DOMINION OVER THEM, AND THEY THAT ARE GREAT EXERCISE0 AUTHORITY UPON THEM.OM# 26 BUT IT SHALL NOT BE SO AMONG YOU: BUT WHOSOEVER WILL BE GREAT AMONG YOU,T LET HIM BE YOUR MINISTER;D# 27 AND WHOSOEVER WILL BE CHIEF AMONG YOU, LET HIM BE YOUR SERVANT:L# 28 EVEN AS THE SON OF MAN CAME NOT TO BE MINISTERED UNTO, BUT TO MINISTER,( AND TO GIVE HIS LIFE A RANSOM FOR MANY.G# 29 AND AS THEY DEPARTED FROM JERICHO, A GREAT MULTITUDE FOLLOWED HIM.,M# 30 AND, BEHOLD, TWO BLIND MEN SITTING BY THE WAY SIDE,00@ @<%X>%+%O-%TADATADATA WHEN THEY HEARD THATEJ JESUS PASSED BY, CRIED OUT, SAYING, HAVE MERCY ON US, O LORD, THOU SON OF DAVID.EJ# 31 AND THE MULTITUDE REBUKED THEM, BECAUSE THEY SHOULD HOLD THEIR PEACE:N BUT THEY CRIED THE MORE, SAYING, HAVE MERCY ON US, O LORD, THOU SON OF DAVID.J# 32 AND JESUS STOOD STILL, AND CALLED THEM, AND SAID, WHAT WILL YE THAT I SHALL DO UNTO YOU? :# 33 THEY SAY UNTO HIM, LORD, THAT OUR EYES MAY BE OPENED.M# 34 SO JESUS HAD COMPASSION ON THEM, AND TOUCHED THEIR EYES: AND IMMEDIATELYE2 THEIR EYES RECEIVED SIGHT, AND THEY FOLLOWED HIM. = CHAPTER 21 NL# 1 AND WHEN THEY DREW NIGH UNTO JERUSALEM, AND WERE COME TO BETHPHAGE, UNTO4 THE MOUNT OF OLIVES, THEN SENT JESUS TWO DISCIPLES,K# 2 SAYING UNTO THEM, GO INTO THE VILLAGE OVER AGAINST YOU, AND STRAIGHTWAY K YE SHALL FIND AN ASS TIED, AND A COLT WITH HER: LOOSE THEM, AND BRING THEMA UNTO ME.YJ# 3 AND IF ANY MAN SAY OUGHT UNTO YOU, YE SHALL SAY, THE LORD HATH NEED OF) THEM; AND STRAIGHTWAY HE WILL SEND THEM.II# 4 ALL THIS WAS DONE, THAT IT MIGHT BE FULFILLED WHICH WAS SPOKEN BY THE. PROPHET, SAYING, J# 5 TELL YE THE DAUGHTER OF SION, BEHOLD, THY KING COMETH UNTO THEE, MEEK,8 AND SITTING UPON AN ASS, AND A COLT THE FOAL OF AN ASS.<# 6 AND THE DISCIPLES WENT, AND DID AS JESUS COMMANDED THEM,I# 7 AND BROUGHT THE ASS, AND THE COLT, AND PUT ON THEM THEIR CLOTHES, ANDD THEY SET HIM THEREON.K# 8 AND A VERY GREAT MULTITUDE SPREAD THEIR GARMENTS IN THE WAY; OTHERS CUT; DOWN BRANCHES FROM THE TREES, AND STRAWED THEM IN THE WAY.DJ# 9 AND THE MULTITUDES THAT WENT BEFORE, AND THAT FOLLOWED, CRIED, SAYING,J HOSANNA TO THE SON OF DAVID: BLESSED IS HE THAT COMETH IN THE NAME OF THE LORD; HOSANNA IN THE HIGHEST.M# 10 AND WHEN HE WAS COME INTO JERUSALEM, ALL THE CITY WAS MOVED, SAYING, WHOD IS THIS? E# 11 AND THE MULTITUDE SAID, THIS IS JESUS THE PROPHET OF NAZARETH OFD GALILEE. K# 12 AND JESUS WENT INTO THE TEMPLE OF GOD, AND CAST OUT ALL THEM THAT SOLD;M AND BOUGHT IN THE TEMPLE, AND OVERTHREW THE TABLES OF THE MONEYCHANGERS, AND # THE SEATS OF THEM THAT SOLD DOVES,AM# 13 AND SAID UNTO THEM, IT IS WRITTEN, MY HOUSE SHALL BE CALLED THE HOUSE OFH. PRAYER; BUT YE HAVE MADE IT A DEN OF THIEVES.H# 14 AND THE BLIND AND THE LAME CAME TO HIM IN THE TEMPLE; AND HE HEALED THEM.L# 15 AND WHEN THE CHIEF PRIESTS AND SCRIBES SAW THE WONDERFUL THINGS THAT HEN DID, AND THE CHILDREN CRYING IN THE TEMPLE, AND SAYING, HOSANNA TO THE SON OF" DAVID; THEY WERE SORE DISPLEASED,I# 16 AND SAID UNTO HIM, HEAREST THOU WHAT THESE SAY? AND JESUS SAITH UNTOEL THEM, YEA; HAVE YE NEVER READ, OUT OF THE MOUTH OF BABES AND SUCKLINGS THOU HAST PERFECTED PRAISE?HK# 17 AND HE LEFT THEM, AND WENT OUT OF THE CITY INTO BETHANY; AND HE LODGEDA THERE.MB# 18 NOW IN THE MORNING AS HE RETURNED INTO THE CITY, HE HUNGERED.L# 19 AND WHEN HE SAW A FIG TREE IN THE WAY, HE CAME TO IT, AND FOUND NOTHINGF THEREON, BUT LEAVES ONLY, AND SAID UNTO IT, LET NO FRUIT GROW ON THEEA HENCEFORWARD FOR EVER. AND PRESENTLY THE FIG TREE WITHERED AWAY.AK# 20 AND WHEN THE DISCIPLES SAW IT, THEY MARVELLED, SAYING, HOW SOON IS THEE FIG TREE WITHERED AWAY!I# 21 JESUS ANSWERED AND SAID UNTO THEM, VERILY I SAY UNTO YOU, IF YE HAVETI FAITH, AND DOUBT NOT, YE SHALL NOT ONLY DO THIS WHICH IS DONE TO THE FIGHK TREE, BUT ALSO IF YE SHALL SAY UNTO THIS MOUNTAIN, BE THOU REMOVED, AND BEE* THOU CAST INTO THE SEA; IT SHALL BE DONE.K# 22 AND ALL THINGS, WHATSOEVER YE SHALL ASK IN PRAYER, BELIEVING, YE SHALLW RECEIVE.RK# 23 AND WHEN HE WAS COME INTO THE TEMPLE, THE CHIEF PRIESTS AND THE ELDERS L OF THE PEOPLE CAME UNTO HIM AS HE WAS TEACHING, AND SAID, BY WHAT AUTHORITY; DOEST THOU THESE THINGS? AND WHO GAVE THEE THIS AUTHORITY?EJ# 24 AND JESUS ANSWERED AND SAID UNTO THEM, I ALSO WILL ASK YOU ONE THING,I WHICH IF YE TELL ME, I IN LIKE WISE WILL TELL YOU BY WHAT AUTHORITY I DO, THESE THINGS.I# 25 THE BAPTISM OF JOHN, WHENCE WAS IT? FROM HEAVEN, OR OF MEN? AND THEYAL REASONED WITH THEMSELVES, SAYING, IF WE SHALL SAY, FROM HEAVEN; HE WILL SAY* UNTO US, WHY DID YE NOT THEN BELIEVE HIM?L# 26 B00@?D%5%T6%! !UT IF WE SHALL SAY, OF MEN; WE FEAR THE PEOPLE; FOR ALL HOLD JOHN AS A PROPHET.EH# 27 AND THEY ANSWERED JESUS, AND SAID, WE CANNOT TELL. AND HE SAID UNTO> THEM, NEITHER TELL I YOU BY WHAT AUTHORITY I DO THESE THINGS.M# 28 BUT WHAT THINK YE? A CERTAIN MAN HAD TWO SONS; AND HE CAME TO THE FIRST,T. AND SAID, SON, GO WORK TO DAY IN MY VINEYARD.K# 29 HE ANSWERED AND SAID, I WILL NOT: BUT AFTERWARD HE REPENTED, AND WENT.SL# 30 AND HE CAME TO THE SECOND, AND SAID LIKEWISE. AND HE ANSWERED AND SAID, I GO, SIR: AND WENT NOT. M# 31 WHETHER OF THEM TWAIN DID THE WILL OF HIS FATHER? THEY SAY UNTO HIM, THENL FIRST. JESUS SAITH UNTO THEM, VERILY I SAY UNTO YOU, THAT THE PUBLICANS AND3 THE HARLOTS GO INTO THE KINGDOM OF GOD BEFORE YOU.WL# 32 FOR JOHN CAME UNTO YOU IN THE WAY OF RIGHTEOUSNESS, AND YE BELIEVED HIMN NOT: BUT THE PUBLICANS AND THE HARLOTS BELIEVED HIM: AND YE, WHEN YE HAD SEEN7 IT, REPENTED NOT AFTERWARD, THAT YE MIGHT BELIEVE HIM. K# 33 HEAR ANOTHER PARABLE: THERE WAS A CERTAIN HOUSEHOLDER, WHICH PLANTED ATM VINEYARD, AND HEDGED IT ROUND ABOUT, AND DIGGED A WINEPRESS IN IT, AND BUILTMD A TOWER, AND LET IT OUT TO HUSBANDMEN, AND WENT INTO A FAR COUNTRY:J# 34 AND WHEN THE TIME OF THE FRUIT DREW NEAR, HE SENT HIS SERVANTS TO THE6 HUSBANDMEN, THAT THEY MIGHT RECEIVE THE FRUITS OF IT.L# 35 AND THE HUSBANDMEN TOOK HIS SERVANTS, AND BEAT ONE, AND KILLED ANOTHER, AND STONED ANOTHER.I# 36 AGAIN, HE SENT OTHER SERVANTS MORE THAN THE FIRST: AND THEY DID UNTOA THEM LIKEWISE.CK# 37 BUT LAST OF ALL HE SENT UNTO THEM HIS SON, SAYING, THEY WILL REVERENCEN MY SON.M# 38 BUT WHEN THE HUSBANDMEN SAW THE SON, THEY SAID AMONG THEMSELVES, THIS ISIF THE HEIR; COME, LET US KILL HIM, AND LET US SEIZE ON HIS INHERITANCE.I# 39 AND THEY CAUGHT HIM, AND CAST HIM OUT OF THE VINEYARD, AND SLEW HIM.II# 40 WHEN THE LORD THEREFORE OF THE VINEYARD COMETH, WHAT WILL HE DO UNTOT THOSE HUSBANDMEN?L# 41 THEY SAY UNTO HIM, HE WILL MISERABLY DESTROY THOSE WICKED MEN, AND WILLN LET OUT HIS VINEYARD UNTO OTHER HUSBANDMEN, WHICH SHALL RENDER HIM THE FRUITS IN THEIR SEASONS.J# 42 JESUS SAITH UNTO THEM, DID YE NEVER READ IN THE SCRIPTURES, THE STONEM WHICH THE BUILDERS REJECTED, THE SAME IS BECOME THE HEAD OF THE CORNER: THISI6 IS THE LORDS DOING, AND IT IS MARVELLOUS IN OUR EYES?J# 43 THEREFORE SAY I UNTO YOU, THE KINGDOM OF GOD SHALL BE TAKEN FROM YOU,9 AND GIVEN TO A NATION BRINGING FORTH THE FRUITS THEREOF.AC# 44 AND WHOSOEVER SHALL FALL ON THIS STONE SHALL BE BROKEN: BUT ONT7 WHOMSOEVER IT SHALL FALL, IT WILL GRIND HIM TO POWDER.EJ# 45 AND WHEN THE CHIEF PRIESTS AND PHARISEES HAD HEARD HIS PARABLES, THEY! PERCEIVED THAT HE SPAKE OF THEM.EI# 46 BUT WHEN THEY SOUGHT TO LAY HANDS ON HIM, THEY FEARED THE MULTITUDE,T% BECAUSE THEY TOOK HIM FOR A PROPHET.R = CHAPTER 22 EG# 1 AND JESUS ANSWERED AND SPAKE UNTO THEM AGAIN BY PARABLES, AND SAID,OL# 2 THE KINGDOM OF HEAVEN IS LIKE UNTO A CERTAIN KING, WHICH MADE A MARRIAGE FOR HIS SON,FM# 3 AND SENT FORTH HIS SERVANTS TO CALL THEM THAT WERE BIDDEN TO THE WEDDING:G AND THEY WOULD NOT COME.AL# 4 AGAIN, HE SENT FORTH OTHER SERVANTS, SAYING, TELL THEM WHICH ARE BIDDEN,K BEHOLD, I HAVE PREPARED MY DINNER: MY OXEN AND MY FATLINGS ARE KILLED, ANDE. ALL THINGS ARE READY: COME UNTO THE MARRIAGE.L# 5 BUT THEY MADE LIGHT OF IT, AND WENT THEIR WAYS, ONE TO HIS FARM, ANOTHER TO HIS MERCHANDISE:I# 6 AND THE REMNANT TOOK HIS SERVANTS, AND ENTREATED THEM SPITEFULLY, AND SLEW THEM.RH# 7 BUT WHEN THE KING HEARD THEREOF, HE WAS WROTH: AND HE SENT FORTH HISA ARMIES, AND DESTROYED THOSE MURDERERS, AND BURNED UP THEIR CITY.RL# 8 THEN SAITH HE TO HIS SERVANTS, THE WEDDING IS READY, BUT THEY WHICH WERE BIDDEN WERE NOT WORTHY.K# 9 GO YE THEREFORE INTO THE HIGHWAYS, AND AS MANY AS YE SHALL FIND, BID TO THE MARRIAGE.L# 10 SO THOSE SERVANTS WENT OUT INTO THE HIGHWAYS, AND GATHERED TOGETHER ALLM AS MANY AS THEY FOUND, BOTH BAD AND GOOD: AND THE WEDDING WAS FURNISHED WITH  GUESTS.J# 11 AND WHEN THE KING CAME IN TO SEE THE GUESTS, HE SAW THERE A MAN WHICH HAD NOT ON A WE00@ @<%X>%+%O-%TADATADATADDING GARMENT:J# 12 AND HE SAITH UNTO HIM, FRIEND, HOW CAMEST THOU IN HITHER NOT HAVING A( WEDDING GARMENT? AND HE WAS SPEECHLESS.M# 13 THEN SAID THE KING TO THE SERVANTS, BIND HIM HAND AND FOOT, AND TAKE HIM L AWAY, AND CAST HIM INTO OUTER DARKNESS, THERE SHALL BE WEEPING AND GNASHING OF TEETH.-# 14 FOR MANY ARE CALLED, BUT FEW ARE CHOSEN.UM# 15 THEN WENT THE PHARISEES, AND TOOK COUNSEL HOW THEY MIGHT ENTANGLE HIM INW HIS TALK.K# 16 AND THEY SENT OUT UNTO HIM THEIR DISCIPLES WITH THE HERODIANS, SAYING,AJ MASTER, WE KNOW THAT THOU ART TRUE, AND TEACHEST THE WAY OF GOD IN TRUTH,K NEITHER CAREST THOU FOR ANY MAN: FOR THOU REGARDEST NOT THE PERSON OF MEN.TM# 17 TELL US THEREFORE, WHAT THINKEST THOU? IS IT LAWFUL TO GIVE TRIBUTE UNTOT CAESAR, OR NOT?H# 18 BUT JESUS PERCEIVED THEIR WICKEDNESS, AND SAID, WHY TEMPT YE ME, YE HYPOCRITES?B# 19 SHEW ME THE TRIBUTE MONEY. AND THEY BROUGHT UNTO HIM A PENNY.D# 20 AND HE SAITH UNTO THEM, WHOSE IS THIS IMAGE AND SUPERSCRIPTION?J# 21 THEY SAY UNTO HIM, CAESARS. THEN SAITH HE UNTO THEM, RENDER THEREFOREK UNTO CAESAR THE THINGS WHICH ARE CAESARS; AND UNTO GOD THE THINGS THAT AREU GODS.L# 22 WHEN THEY HAD HEARD THESE WORDS, THEY MARVELLED, AND LEFT HIM, AND WENT THEIR WAY.EG# 23 THE SAME DAY CAME TO HIM THE SADDUCEES, WHICH SAY THAT THERE IS NOS RESURRECTION, AND ASKED HIM,EF# 24 SAYING, MASTER, MOSES SAID, IF A MAN DIE, HAVING NO CHILDREN, HISB BROTHER SHALL MARRY HIS WIFE, AND RAISE UP SEED UNTO HIS BROTHER.F# 25 NOW THERE WERE WITH US SEVEN BRETHREN: AND THE FIRST, WHEN HE HADG MARRIED A WIFE, DECEASED, AND, HAVING NO ISSUE, LEFT HIS WIFE UNTO HIS BROTHER:T?# 26 LIKEWISE THE SECOND ALSO, AND THE THIRD, UNTO THE SEVENTH.E)# 27 AND LAST OF ALL THE WOMAN DIED ALSO.L# 28 THEREFORE IN THE RESURRECTION WHOSE WIFE SHALL SHE BE OF THE SEVEN? FOR THEY ALL HAD HER.B# 29 JESUS ANSWERED AND SAID UNTO THEM, YE DO ERR, NOT KNOWING THE" SCRIPTURES, NOR THE POWER OF GOD.K# 30 FOR IN THE RESURRECTION THEY NEITHER MARRY, NOR ARE GIVEN IN MARRIAGE, ( BUT ARE AS THE ANGELS OF GOD IN HEAVEN.H# 31 BUT AS TOUCHING THE RESURRECTION OF THE DEAD, HAVE YE NOT READ THAT* WHICH WAS SPOKEN UNTO YOU BY GOD, SAYING,M# 32 I AM THE GOD OF ABRAHAM, AND THE GOD OF ISAAC, AND THE GOD OF JACOB? GODT/ IS NOT THE GOD OF THE DEAD, BUT OF THE LIVING. M# 33 AND WHEN THE MULTITUDE HEARD THIS, THEY WERE ASTONISHED AT HIS DOCTRINE.MF# 34 BUT WHEN THE PHARISEES HAD HEARD THAT HE HAD PUT THE SADDUCEES TO& SILENCE, THEY WERE GATHERED TOGETHER.I# 35 THEN ONE OF THEM, WHICH WAS A LAWYER, ASKED HIM A QUESTION, TEMPTING  HIM, AND SAYING,T7# 36 MASTER, WHICH IS THE GREAT COMMANDMENT IN THE LAW?HG# 37 JESUS SAID UNTO HIM, THOU SHALT LOVE THE LORD THY GOD WITH ALL THYH5 HEART, AND WITH ALL THY SOUL, AND WITH ALL THY MIND. -# 38 THIS IS THE FIRST AND GREAT COMMANDMENT.WE# 39 AND THE SECOND IS LIKE UNTO IT, THOU SHALT LOVE THY NEIGHBOUR AS THYSELF. A# 40 ON THESE TWO COMMANDMENTS HANG ALL THE LAW AND THE PROPHETS. B# 41 WHILE THE PHARISEES WERE GATHERED TOGETHER, JESUS ASKED THEM,M# 42 SAYING, WHAT THINK YE OF CHRIST? WHOSE SON IS HE? THEY SAY UNTO HIM, THE  SON OF DAVID.M# 43 HE SAITH UNTO THEM, HOW THEN DOTH DAVID IN SPIRIT CALL HIM LORD, SAYING,WM# 44 THE LORD SAID UNTO MY LORD, SIT THOU ON MY RIGHT HAND, TILL I MAKE THINE  ENEMIES THY FOOTSTOOL?M4# 45 IF DAVID THEN CALL HIM LORD, HOW IS HE HIS SON?I# 46 AND NO MAN WAS ABLE TO ANSWER HIM A WORD, NEITHER DURST ANY MAN FROMN+ THAT DAY FORTH ASK HIM ANY MORE QUESTIONS.T = CHAPTER 23 R<# 1 THEN SPAKE JESUS TO THE MULTITUDE, AND TO HIS DISCIPLES,;# 2 SAYING THE SCRIBES AND THE PHARISEES SIT IN MOSES SEAT:NK# 3 ALL THEREFORE WHATSOEVER THEY BID YOU OBSERVE, THAT OBSERVE AND DO; BUTO7 DO NOT YE AFTER THEIR WORKS: FOR THEY SAY, AND DO NOT.NI# 4 FOR THEY BIND HEAVY BURDENS AND GRIEVOUS TO BE BORNE, AND LAY THEM ON I MENS SHOULDERS; BUT THEY THEMSELVES WILL NOT MOVE THEM WITH ONE OF THEIRH FINGERS.NL# 5 BUT ALL THEIR WORKS THEY DO FOR TO BE SEEN OF MEN: THEY MAKE BROAD THEIR9 PHYLACTERIES, AND ENLARGE THE BORDERS00@?D%5%T6%! ! OF THEIR GARMENTS,IF# 6 AND LOVE THE UPPERMOST ROOMS AT FEASTS, AND THE CHIEF SEATS IN THE SYNAGOGUES,H# 7 AND GREETINGS IN THE MARKETS, AND TO BE CALLED OF MEN, RABBI, RABBI.L# 8 BUT BE NOT YE CALLED RABBI: FOR ONE IS YOUR MASTER, EVEN CHRIST; AND ALL YE ARE BRETHREN.TM# 9 AND CALL NO MAN YOUR FATHER UPON THE EARTH: FOR ONE IS YOUR FATHER, WHICHE IS IN HEAVEN.G# 10 NEITHER BE YE CALLED MASTERS: FOR ONE IS YOUR MASTER, EVEN CHRIST.E=# 11 BUT HE THAT IS GREATEST AMONG YOU SHALL BE YOUR SERVANT.SI# 12 AND WHOSOEVER SHALL EXALT HIMSELF SHALL BE ABASED; AND HE THAT SHALLH! HUMBLE HIMSELF SHALL BE EXALTED. L# 13 BUT WOE UNTO YOU, SCRIBES AND PHARISEES, HYPOCRITES! FOR YE SHUT UP THEH KINGDOM OF HEAVEN AGAINST MEN: FOR YE NEITHER GO IN YOURSELVES, NEITHER+ SUFFER YE THEM THAT ARE ENTERING TO GO IN.EJ# 14 WOE UNTO YOU, SCRIBES AND PHARISEES, HYPOCRITES! FOR YE DEVOUR WIDOWSL HOUSES, AND FOR A PRETENCE MAKE LONG PRAYER: THEREFORE YE SHALL RECEIVE THE GREATER DAMNATION.YL# 15 WOE UNTO YOU, SCRIBES AND PHARISEES, HYPOCRITES! FOR YE COMPASS SEA ANDN LAND TO MAKE ONE PROSELYTE, AND WHEN HE IS MADE, YE MAKE HIM TWOFOLD MORE THE CHILD OF HELL THAN YOURSELVES.RK# 16 WOE UNTO YOU, YE BLIND GUIDES, WHICH SAY, WHOSOEVER SHALL SWEAR BY THENL TEMPLE, IT IS NOTHING; BUT WHOSOEVER SHALL SWEAR BY THE GOLD OF THE TEMPLE, HE IS A DEBTOR!M# 17 YE FOOLS AND BLIND: FOR WHETHER IS GREATER, THE GOLD, OR THE TEMPLE THATE SANCTIFIETH THE GOLD?J# 18 AND, WHOSOEVER SHALL SWEAR BY THE ALTAR, IT IS NOTHING; BUT WHOSOEVER4 SWEARETH BY THE GIFT THAT IS UPON IT, HE IS GUILTY.L# 19 YE FOOLS AND BLIND: FOR WHETHER IS GREATER, THE GIFT, OR THE ALTAR THAT SANCTIFIETH THE GIFT?I# 20 WHOSO THEREFORE SHALL SWEAR BY THE ALTAR, SWEARETH BY IT, AND BY ALL  THINGS THEREON.I# 21 AND WHOSO SHALL SWEAR BY THE TEMPLE, SWEARETH BY IT, AND BY HIM THATD DWELLETH THEREIN.M# 22 AND HE THAT SHALL SWEAR BY HEAVEN, SWEARETH BY THE THRONE OF GOD, AND BYH HIM THAT SITTETH THEREON.I# 23 WOE UNTO YOU, SCRIBES AND PHARISEES, HYPOCRITES! FOR YE PAY TITHE OFEN MINT AND ANISE AND CUMMIN, AND HAVE OMITTED THE WEIGHTIER MATTERS OF THE LAW,N JUDGMENT, MERCY, AND FAITH: THESE OUGHT YE TO HAVE DONE, AND NOT TO LEAVE THE OTHER UNDONE.B# 24 YE BLIND GUIDES, WHICH STRAIN AT A GNAT, AND SWALLOW A CAMEL.K# 25 WOE UNTO YOU, SCRIBES AND PHARISEES, HYPOCRITES! FOR YE MAKE CLEAN THEHM OUTSIDE OF THE CUP AND OF THE PLATTER, BUT WITHIN THEY ARE FULL OF EXTORTIONA AND EXCESS.H# 26 THOU BLIND PHARISEE, CLEANSE FIRST THAT WHICH IS WITHIN THE CUP AND5 PLATTER, THAT THE OUTSIDE OF THEM MAY BE CLEAN ALSO. J# 27 WOE UNTO YOU, SCRIBES AND PHARISEES, HYPOCRITES! FOR YE ARE LIKE UNTON WHITED SEPULCHRES, WHICH INDEED APPEAR BEAUTIFUL OUTWARD, BUT ARE WITHIN FULL, OF DEAD MENS BONES, AND OF ALL UNCLEANNESS.K# 28 EVEN SO YE ALSO OUTWARDLY APPEAR RIGHTEOUS UNTO MEN, BUT WITHIN YE AREL FULL OF HYPOCRISY AND INIQUITY.J# 29 WOE UNTO YOU, SCRIBES AND PHARISEES, HYPOCRITES! BECAUSE YE BUILD THED TOMBS OF THE PROPHETS, AND GARNISH THE SEPULCHRES OF THE RIGHTEOUS,J# 30 AND SAY, IF WE HAD BEEN IN THE DAYS OF OUR FATHERS, WE WOULD NOT HAVE7 BEEN PARTAKERS WITH THEM IN THE BLOOD OF THE PROPHETS.IK# 31 WHEREFORE YE BE WITNESSES UNTO YOURSELVES, THAT YE ARE THE CHILDREN OFO THEM WHICH KILLED THE PROPHETS.1# 32 FILL YE UP THEN THE MEASURE OF YOUR FATHERS.HM# 33 YE SERPENTS, YE GENERATION OF VIPERS, HOW CAN YE ESCAPE THE DAMNATION OFU HELL?L# 34 WHEREFORE, BEHOLD, I SEND UNTO YOU PROPHETS, AND WISE MEN, AND SCRIBES:N AND SOME OF THEM YE SHALL KILL AND CRUCIFY; AND SOME OF THEM SHALL YE SCOURGE: IN YOUR SYNAGOGUES, AND PERSECUTE THEM FROM CITY TO CITY:M# 35 THAT UPON YOU MAY COME ALL THE RIGHTEOUS BLOOD SHED UPON THE EARTH, FROM J THE BLOOD OF RIGHTEOUS ABEL UNTO THE BLOOD OF ZACHARIAS SON OF BARACHIAS,/ WHOM YE SLEW BETWEEN THE TEMPLE AND THE ALTAR.HM# 36 VERILY I SAY UNTO YOU, ALL THESE THINGS SHALL COME UPON THIS GENERATION.UM# 37 O JERUSALEM, JERUSALEM, THOU THAT KILLEST THE PROPHETS, AND STONEST THEMCG WHICH ARE SENT UNTO THEE, HOW OFTEN WOULD I00@ @<%X>%+%O-%TADATADATA HAVE GATHERED THY CHILDRENLM TOGETHER, EVEN AS A HEN GATHERETH HER CHICKENS UNDER HER WINGS, AND YE WOULDT NOT!N2# 38 BEHOLD, YOUR HOUSE IS LEFT UNTO YOU DESOLATE.K# 39 FOR I SAY UNTO YOU, YE SHALL NOT SEE ME HENCEFORTH, TILL YE SHALL SAY, 3 BLESSED IS HE THAT COMETH IN THE NAME OF THE LORD.A = CHAPTER 24 RL# 1 AND JESUS WENT OUT, AND DEPARTED FROM THE TEMPLE: AND HIS DISCIPLES CAME4 TO HIM FOR TO SHEW HIM THE BUILDINGS OF THE TEMPLE.L# 2 AND JESUS SAID UNTO THEM, SEE YE NOT ALL THESE THINGS? VERILY I SAY UNTOL YOU, THERE SHALL NOT BE LEFT HERE ONE STONE UPON ANOTHER, THAT SHALL NOT BE THROWN DOWN.TG# 3 AND AS HE SAT UPON THE MOUNT OF OLIVES, THE DISCIPLES CAME UNTO HIMSN PRIVATELY, SAYING, TELL US, WHEN SHALL THESE THINGS BE? AND WHAT SHALL BE THE1 SIGN OF THY COMING, AND OF THE END OF THE WORLD?4M# 4 AND JESUS ANSWERED AND SAID UNTO THEM, TAKE HEED THAT NO MAN DECEIVE YOU.EJ# 5 FOR MANY SHALL COME IN MY NAME, SAYING, I AM CHRIST; AND SHALL DECEIVE MANY.E# 6 AND YE SHALL HEAR OF WARS AND RUMOURS OF WARS: SEE THAT YE BE NOT J TROUBLED: FOR ALL THESE THINGS MUST COME TO PASS, BUT THE END IS NOT YET.J# 7 FOR NATION SHALL RISE AGAINST NATION, AND KINGDOM AGAINST KINGDOM: ANDL THERE SHALL BE FAMINES, AND PESTILENCES, AND EARTHQUAKES, IN DIVERS PLACES.+# 8 ALL THESE ARE THE BEGINNING OF SORROWS.4K# 9 THEN SHALL THEY DELIVER YOU UP TO BE AFFLICTED, AND SHALL KILL YOU: ANDU4 YE SHALL BE HATED OF ALL NATIONS FOR MY NAMES SAKE.M# 10 AND THEN SHALL MANY BE OFFENDED, AND SHALL BETRAY ONE ANOTHER, AND SHALLW HATE ONE ANOTHER.@# 11 AND MANY FALSE PROPHETS SHALL RISE, AND SHALL DECEIVE MANY.H# 12 AND BECAUSE INIQUITY SHALL ABOUND, THE LOVE OF MANY SHALL WAX COLD.D# 13 BUT HE THAT SHALL ENDURE UNTO THE END, THE SAME SHALL BE SAVED.L# 14 AND THIS GOSPEL OF THE KINGDOM SHALL BE PREACHED IN ALL THE WORLD FOR A7 WITNESS UNTO ALL NATIONS; AND THEN SHALL THE END COME.IL# 15 WHEN YE THEREFORE SHALL SEE THE ABOMINATION OF DESOLATION, SPOKEN OF BYE DANIEL THE PROPHET, STAND IN THE HOLY PLACE, (WHOSO READETH, LET HIMH UNDERSTAND:).># 16 THEN LET THEM WHICH BE IN JUDAEA FLEE INTO THE MOUNTAINS:L# 17 LET HIM WHICH IS ON THE HOUSETOP NOT COME DOWN TO TAKE ANY THING OUT OF HIS HOUSE:HK# 18 NEITHER LET HIM WHICH IS IN THE FIELD RETURN BACK TO TAKE HIS CLOTHES.OI# 19 AND WOE UNTO THEM THAT ARE WITH CHILD, AND TO THEM THAT GIVE SUCK INA THOSE DAYS!F# 20 BUT PRAY YE THAT YOUR FLIGHT BE NOT IN THE WINTER, NEITHER ON THE SABBATH DAY: M# 21 FOR THEN SHALL BE GREAT TRIBULATION, SUCH AS WAS NOT SINCE THE BEGINNING 2 OF THE WORLD TO THIS TIME, NO, NOR EVER SHALL BE.H# 22 AND EXCEPT THOSE DAYS SHOULD BE SHORTENED, THERE SHOULD NO FLESH BE> SAVED: BUT FOR THE ELECTS SAKE THOSE DAYS SHALL BE SHORTENED.F# 23 THEN IF ANY MAN SHALL SAY UNTO YOU, LO, HERE IS CHRIST, OR THERE; BELIEVE IT NOT.L# 24 FOR THERE SHALL ARISE FALSE CHRISTS, AND FALSE PROPHETS, AND SHALL SHEWH GREAT SIGNS AND WONDERS; INSOMUCH THAT, IF IT WERE POSSIBLE, THEY SHALL DECEIVE THE VERY ELECT.$# 25 BEHOLD, I HAVE TOLD YOU BEFORE.J# 26 WHEREFORE IF THEY SHALL SAY UNTO YOU, BEHOLD, HE IS IN THE DESERT; GOA NOT FORTH: BEHOLD, HE IS IN THE SECRET CHAMBERS; BELIEVE IT NOT.K# 27 FOR AS THE LIGHTNING COMETH OUT OF THE EAST, AND SHINETH EVEN UNTO THEA5 WEST; SO SHALL ALSO THE COMING OF THE SON OF MAN BE.;F# 28 FOR WHERESOEVER THE CARCASE IS, THERE WILL THE EAGLES BE GATHERED TOGETHER.E# 29 IMMEDIATELY AFTER THE TRIBULATION OF THOSE DAYS SHALL THE SUN BEBJ DARKENED, AND THE MOON SHALL NOT GIVE HER LIGHT, AND THE STARS SHALL FALL< FROM HEAVEN, AND THE POWERS OF THE HEAVENS SHALL BE SHAKEN:I# 30 AND THEN SHALL APPEAR THE SIGN OF THE SON OF MAN IN HEAVEN: AND THEN K SHALL ALL THE TRIBES OF THE EARTH MOURN, AND THEY SHALL SEE THE SON OF MANU; COMING IN THE CLOUDS OF HEAVEN WITH POWER AND GREAT GLORY.EK# 31 AND HE SHALL SEND HIS ANGELS WITH A GREAT SOUND OF A TRUMPET, AND THEYTL SHALL GATHER TOGETHER HIS ELECT FROM THE FOUR WINDS, FROM ONE END OF HEAVEN TO THE OTHER.L# 32 NOW LEARN A PARABLE OF THE FIG TREE; WHEN HIS BRANCH IS YET00@?D%5%T6%! ! TENDER, AND3 PUTTETH FORTH LEAVES, YE KNOW THAT SUMMER IS NIGH:AH# 33 SO LIKEWISE YE, WHEN YE SHALL SEE ALL THESE THINGS, KNOW THAT IT IS NEAR, EVEN AT THE DOORS.RJ# 34 VERILY I SAY UNTO YOU, THIS GENERATION SHALL NOT PASS, TILL ALL THESE THINGS BE FULFILLED.GH# 35 HEAVEN AND EARTH SHALL PASS AWAY, BUT MY WORDS SHALL NOT PASS AWAY.K# 36 BUT OF THAT DAY AND HOUR KNOWETH NO MAN, NO, NOT THE ANGELS OF HEAVEN,D BUT MY FATHER ONLY.L# 37 BUT AS THE DAYS OF NOE WERE, SO SHALL ALSO THE COMING OF THE SON OF MAN BE.G# 38 FOR AS IN THE DAYS THAT WERE BEFORE THE FLOOD THEY WERE EATING AND,J DRINKING, MARRYING AND GIVING IN MARRIAGE, UNTIL THE DAY THAT NOE ENTERED INTO THE ARK,M# 39 AND KNEW NOT UNTIL THE FLOOD CAME, AND TOOK THEM ALL AWAY; SO SHALL ALSOL! THE COMING OF THE SON OF MAN BE.LJ# 40 THEN SHALL TWO BE IN THE FIELD; THE ONE SHALL BE TAKEN, AND THE OTHER LEFT.M# 41 TWO WOMEN SHALL BE GRINDING AT THE MILL; THE ONE SHALL BE TAKEN, AND THE OTHER LEFT.D# 42 WATCH THEREFORE: FOR YE KNOW NOT WHAT HOUR YOUR LORD DOTH COME.L# 43 BUT KNOW THIS, THAT IF THE GOODMAN OF THE HOUSE HAD KNOWN IN WHAT WATCHM THE THIEF WOULD COME, HE WOULD HAVE WATCHED, AND WOULD NOT HAVE SUFFERED HISD HOUSE TO BE BROKEN UP. L# 44 THEREFORE BE YE ALSO READY: FOR IN SUCH AN HOUR AS YE THINK NOT THE SON OF MAN COMETH.LK# 45 WHO THEN IS A FAITHFUL AND WISE SERVANT, WHOM HIS LORD HATH MADE RULERO5 OVER HIS HOUSEHOLD, TO GIVE THEM MEAT IN DUE SEASON?TH# 46 BLESSED IS THAT SERVANT, WHOM HIS LORD WHEN HE COMETH SHALL FIND SO DOING.LL# 47 VERILY I SAY UNTO YOU, THAT HE SHALL MAKE HIM RULER OVER ALL HIS GOODS.J# 48 BUT AND IF THAT EVIL SERVANT SHALL SAY IN HIS HEART, MY LORD DELAYETH HIS COMING;K# 49 AND SHALL BEGIN TO SMITE HIS FELLOWSERVANTS, AND TO EAT AND DRINK WITHA THE DRUNKEN;II# 50 THE LORD OF THAT SERVANT SHALL COME IN A DAY WHEN HE LOOKETH NOT FORA- HIM, AND IN AN HOUR THAT HE IS NOT AWARE OF,OD# 51 AND SHALL CUT HIM ASUNDER, AND APPOINT HIM HIS PORTION WITH THE: HYPOCRITES: THERE SHALL BE WEEPING AND GNASHING OF TEETH. = CHAPTER 25 L# 1 THEN SHALL THE KINGDOM OF HEAVEN BE LIKENED UNTO TEN VIRGINS, WHICH TOOK4 THEIR LAMPS, AND WENT FORTH TO MEET THE BRIDEGROOM.6# 2 AND FIVE OF THEM WERE WISE, AND FIVE WERE FOOLISH.G# 3 THEY THAT WERE FOOLISH TOOK THEIR LAMPS, AND TOOK NO OIL WITH THEM:T<# 4 BUT THE WISE TOOK OIL IN THEIR VESSELS WITH THEIR LAMPS.?# 5 WHILE THE BRIDEGROOM TARRIED, THEY ALL SLUMBERED AND SLEPT.MK# 6 AND AT MIDNIGHT THERE WAS A CRY MADE, BEHOLD, THE BRIDEGROOM COMETH; GOE YE OUT TO MEET HIM.:# 7 THEN ALL THOSE VIRGINS AROSE, AND TRIMMED THEIR LAMPS.J# 8 AND THE FOOLISH SAID UNTO THE WISE, GIVE US OF YOUR OIL; FOR OUR LAMPS ARE GONE OUT.J# 9 BUT THE WISE ANSWERED, SAYING, NOT SO; LEST THERE BE NOT ENOUGH FOR USE AND YOU: BUT GO YE RATHER TO THEM THAT SELL, AND BUY FOR YOURSELVES.IH# 10 AND WHILE THEY WENT TO BUY, THE BRIDEGROOM CAME; AND THEY THAT WERE? READY WENT IN WITH HIM TO THE MARRIAGE: AND THE DOOR WAS SHUT. K# 11 AFTERWARD CAME ALSO THE OTHER VIRGINS, SAYING, LORD, LORD, OPEN TO US. E# 12 BUT HE ANSWERED AND SAID, VERILY I SAY UNTO YOU, I KNOW YOU NOT.LJ# 13 WATCH THEREFORE, FOR YE KNOW NEITHER THE DAY NOR THE HOUR WHEREIN THE SON OF MAN COMETH.EM# 14 FOR THE KINGDOM OF HEAVEN IS AS A MAN TRAVELLING INTO A FAR COUNTRY, WHOR< CALLED HIS OWN SERVANTS, AND DELIVERED UNTO THEM HIS GOODS.K# 15 AND UNTO ONE HE GAVE FIVE TALENTS, TO ANOTHER TWO, AND TO ANOTHER ONE; H TO EVERY MAN ACCORDING TO HIS SEVERAL ABILITY; AND STRAIGHTWAY TOOK HIS JOURNEY.IH# 16 THEN HE THAT HAD RECEIVED THE FIVE TALENTS WENT AND TRADED WITH THE( SAME, AND MADE THEM OTHER FIVE TALENTS.E# 17 AND LIKEWISE HE THAT HAD RECEIVED TWO, HE ALSO GAINED OTHER TWO.SK# 18 BUT HE THAT HAD RECEIVED ONE WENT AND DIGGED IN THE EARTH, AND HID HISO LORDS MONEY. L# 19 AFTER A LONG TIME THE LORD OF THOSE SERVANTS COMETH, AND RECKONETH WITH THEM.I# 20 AND SO HE THAT HAD RECEIVED FIVE TALENTS CAME AND BROUGHT OTHER FIVECM TALENTS, SAYING, LORD, THOU DELIVEREDST UNTO ME FIVE TALENTS: BEHOLD, I HAVE &00@ @<%X>%+%O-%TADATADATA GAINED BESIDE THEM FIVE TALENTS MORE.L# 21 HIS LORD SAID UNTO HIM, WELL DONE, THOU GOOD AND FAITHFUL SERVANT: THOUG HAST BEEN FAITHFUL OVER A FEW THINGS, I WILL MAKE THEE RULER OVER MANYH- THINGS: ENTER THOU INTO THE JOY OF THY LORD.HD# 22 HE ALSO THAT HAD RECEIVED TWO TALENTS CAME AND SAID, LORD, THOUI DELIVEREDST UNTO ME TWO TALENTS: BEHOLD, I HAVE GAINED TWO OTHER TALENTSE BESIDE THEM.TL# 23 HIS LORD SAID UNTO HIM, WELL DONE, GOOD AND FAITHFUL SERVANT; THOU HASTJ BEEN FAITHFUL OVER A FEW THINGS, I WILL MAKE THEE RULER OVER MANY THINGS:% ENTER THOU INTO THE JOY OF THY LORD.HJ# 24 THEN HE WHICH HAD RECEIVED THE ONE TALENT CAME AND SAID, LORD, I KNEWF THEE THAT THOU ART AN HARD MAN, REAPING WHERE THOU HAST NOT SOWN, AND* GATHERING WHERE THOU HAST NOT STRAWED: ITJ# 25 AND I WAS AFRAID, AND WENT AND HID THY TALENT IN THE EARTH: LO, THERE THOU HAST THAT IS THINE.AK# 26 HIS LORD ANSWERED AND SAID UNTO HIM, THOU WICKED AND SLOTHFUL SERVANT,HH THOU KNEWEST THAT I REAP WHERE I SOWED NOT, AND GATHER WHERE I HAVE NOT STRAWED: M# 27 THOU OUGHTEST THEREFORE TO HAVE PUT MY MONEY TO THE EXCHANGERS, AND THENC9 AT MY COMING I SHOULD HAVE RECEIVED MINE OWN WITH USURY.TL# 28 TAKE THEREFORE THE TALENT FROM HIM, AND GIVE IT UNTO HIM WHICH HATH TEN TALENTS.NC# 29 FOR UNTO EVERY ONE THAT HATH SHALL BE GIVEN, AND HE SHALL HAVE M ABUNDANCE: BUT FROM HIM THAT HATH NOT SHALL BE TAKEN AWAY EVEN THAT WHICH HEI HATH.M# 30 AND CAST YE THE UNPROFITABLE SERVANT INTO OUTER DARKNESS: THERE SHALL BE  WEEPING AND GNASHING OF TEETH.I# 31 WHEN THE SON OF MAN SHALL COME IN HIS GLORY, AND ALL THE HOLY ANGELSG: WITH HIM, THEN SHALL HE SIT UPON THE THRONE OF HIS GLORY:M# 32 AND BEFORE HIM SHALL BE GATHERED ALL NATIONS: AND HE SHALL SEPARATE THEMHC ONE FROM ANOTHER, AS A SHEPHERD DIVIDETH HIS SHEEP FROM THE GOATS:GM# 33 AND HE SHALL SET THE SHEEP ON HIS RIGHT HAND, BUT THE GOATS ON THE LEFT. M# 34 THEN SHALL THE KING SAY UNTO THEM ON HIS RIGHT HAND, COME, YE BLESSED OFOK MY FATHER, INHERIT THE KINGDOM PREPARED FOR YOU FROM THE FOUNDATION OF THE  WORLD:FM# 35 FOR I WAS AN HUNGRED, AND YE GAVE ME MEAT: I WAS THIRSTY, AND YE GAVE MEE, DRINK: I WAS A STRANGER, AND YE TOOK ME IN:F# 36 NAKED, AND YE CLOTHED ME: I WAS SICK, AND YE VISITED ME: I WAS IN PRISON, AND YE CAME UNTO ME.DK# 37 THEN SHALL THE RIGHTEOUS ANSWER HIM, SAYING, LORD, WHEN SAW WE THEE ANG8 HUNGRED, AND FED THEE? OR THIRSTY, AND GAVE THEE DRINK?I# 38 WHEN SAW WE THEE A STRANGER, AND TOOK THEE IN? OR NAKED, AND CLOTHEDE THEE?@# 39 OR WHEN SAW WE THEE SICK, OR IN PRISON, AND CAME UNTO THEE?H# 40 AND THE KING SHALL ANSWER AND SAY UNTO THEM, VERILY I SAY UNTO YOU,K INASMUCH AS YE HAVE DONE IT UNTO ONE OF THE LEAST OF THESE MY BRETHREN, YEM HAVE DONE IT UNTO ME.J# 41 THEN SHALL HE SAY ALSO UNTO THEM ON THE LEFT HAND, DEPART FROM ME, YEF CURSED, INTO EVERLASTING FIRE, PREPARED FOR THE DEVIL AND HIS ANGELS:M# 42 FOR I WAS AN HUNGRED, AND YE GAVE ME NO MEAT: I WAS THIRSTY, AND YE GAVEO ME NO DRINK:NK# 43 I WAS A STRANGER, AND YE TOOK ME NOT IN: NAKED, AND YE CLOTHED ME NOT:C, SICK, AND IN PRISON, AND YE VISITED ME NOT.G# 44 THEN SHALL THEY ALSO ANSWER HIM, SAYING, LORD, WHEN SAW WE THEE ANUM HUNGRED, OR ATHIRST, OR A STRANGER, OR NAKED, OR SICK, OR IN PRISON, AND DIDE NOT MINISTER UNTO THEE?M# 45 THEN SHALL HE ANSWER THEM, SAYING, VERILY I SAY UNTO YOU, INASMUCH AS YER> DID IT NOT TO ONE OF THE LEAST OF THESE, YE DID IT NOT TO ME.K# 46 AND THESE SHALL GO AWAY INTO EVERLASTING PUNISHMENT: BUT THE RIGHTEOUSA INTO LIFE ETERNAL.K = CHAPTER 26 EK# 1 AND IT CAME TO PASS, WHEN JESUS HAD FINISHED ALL THESE SAYINGS, HE SAID4 UNTO HIS DISCIPLES,L# 2 YE KNOW THAT AFTER TWO DAYS IS THE FEAST OF THE PASSOVER, AND THE SON OF! MAN IS BETRAYED TO BE CRUCIFIED.SG# 3 THEN ASSEMBLED TOGETHER THE CHIEF PRIESTS, AND THE SCRIBES, AND THEAI ELDERS OF THE PEOPLE, UNTO THE PALACE OF THE HIGH PRIEST, WHO WAS CALLEDS CAIAPHAS,G# 4 AND CONSULTED THAT THEY MIGHT TAKE JESUS BY SUBTILTY, AND KILL HIM.HJ# 5 BUT THEY SAID, NOT ON THE FEAST DAY, LEST THERE BE00A?D%5%T6%! ! AN UPROAR AMONG THE PEOPLE.C# 6 NOW WHEN JESUS WAS IN BETHANY, IN THE HOUSE OF SIMON THE LEPER,CH# 7 THERE CAME UNTO HIM A WOMAN HAVING AN ALABASTER BOX OF VERY PRECIOUS8 OINTMENT, AND POURED IT ON HIS HEAD, AS HE SAT AT MEAT.H# 8 BUT WHEN HIS DISCIPLES SAW IT, THEY HAD INDIGNATION, SAYING, TO WHAT PURPOSE IS THIS WASTE?AK# 9 FOR THIS OINTMENT MIGHT HAVE BEEN SOLD FOR MUCH, AND GIVEN TO THE POOR.EK# 10 WHEN JESUS UNDERSTOOD IT, HE SAID UNTO THEM, WHY TROUBLE YE THE WOMAN? * FOR SHE HATH WROUGHT A GOOD WORK UPON ME.E# 11 FOR YE HAVE THE POOR ALWAYS WITH YOU; BUT ME YE HAVE NOT ALWAYS.EL# 12 FOR IN THAT SHE HATH POURED THIS OINTMENT ON MY BODY, SHE DID IT FOR MY BURIAL.L# 13 VERILY I SAY UNTO YOU, WHERESOEVER THIS GOSPEL SHALL BE PREACHED IN THEM WHOLE WORLD, THERE SHALL ALSO THIS, THAT THIS WOMAN HATH DONE, BE TOLD FOR A  MEMORIAL OF HER.IG# 14 THEN ONE OF THE TWELVE, CALLED JUDAS ISCARIOT, WENT UNTO THE CHIEFE PRIESTS,HJ# 15 AND SAID UNTO THEM, WHAT WILL YE GIVE ME, AND I WILL DELIVER HIM UNTO? YOU? AND THEY COVENANTED WITH HIM FOR THIRTY PIECES OF SILVER.E<# 16 AND FROM THAT TIME HE SOUGHT OPPORTUNITY TO BETRAY HIM.M# 17 NOW THE FIRST DAY OF THE FEAST OF UNLEAVENED BREAD THE DISCIPLES CAME TOSL JESUS, SAYING UNTO HIM, WHERE WILT THOU THAT WE PREPARE FOR THEE TO EAT THE PASSOVER?G# 18 AND HE SAID, GO INTO THE CITY TO SUCH A MAN, AND SAY UNTO HIM, THEEM MASTER SAITH, MY TIME IS AT HAND; I WILL KEEP THE PASSOVER AT THY HOUSE WITH  MY DISCIPLES.K# 19 AND THE DISCIPLES DID AS JESUS HAD APPOINTED THEM; AND THEY MADE READYH THE PASSOVER.=# 20 NOW WHEN THE EVEN WAS COME, HE SAT DOWN WITH THE TWELVE. I# 21 AND AS THEY DID EAT, HE SAID, VERILY I SAY UNTO YOU, THAT ONE OF YOU  SHALL BETRAY ME.J# 22 AND THEY WERE EXCEEDING SORROWFUL, AND BEGAN EVERY ONE OF THEM TO SAY UNTO HIM, LORD, IS IT I?AL# 23 AND HE ANSWERED AND SAID, HE THAT DIPPETH HIS HAND WITH ME IN THE DISH, THE SAME SHALL BETRAY ME.K# 24 THE SON OF MAN GOETH AS IT IS WRITTEN OF HIM: BUT WOE UNTO THAT MAN BYAM WHOM THE SON OF MAN IS BETRAYED! IT HAD BEEN GOOD FOR THAT MAN IF HE HAD NOT BEEN BORN.CK# 25 THEN JUDAS, WHICH BETRAYED HIM, ANSWERED AND SAID, MASTER, IS IT I? HE  SAID UNTO HIM, THOU HAST SAID.M# 26 AND AS THEY WERE EATING, JESUS TOOK BREAD, AND BLESSED IT, AND BRAKE IT, D AND GAVE IT TO THE DISCIPLES, AND SAID, TAKE, EAT; THIS IS MY BODY.M# 27 AND HE TOOK THE CUP, AND GAVE THANKS, AND GAVE IT TO THEM, SAYING, DRINK YE ALL OF IT;J# 28 FOR THIS IS MY BLOOD OF THE NEW TESTAMENT, WHICH IS SHED FOR MANY FOR THE REMISSION OF SINS.DI# 29 BUT I SAY UNTO YOU, I WILL NOT DRINK HENCEFORTH OF THIS FRUIT OF THEHI VINE, UNTIL THAT DAY WHEN I DRINK IT NEW WITH YOU IN MY FATHERS KINGDOM.UL# 30 AND WHEN THEY HAD SUNG AN HYMN, THEY WENT OUT INTO THE MOUNT OF OLIVES.L# 31 THEN SAITH JESUS UNTO THEM, ALL YE SHALL BE OFFENDED BECAUSE OF ME THISJ NIGHT: FOR IT IS WRITTEN, I WILL SMITE THE SHEPHERD, AND THE SHEEP OF THE! FLOCK SHALL BE SCATTERED ABROAD.RC# 32 BUT AFTER I AM RISEN AGAIN, I WILL GO BEFORE YOU INTO GALILEE.TG# 33 PETER ANSWERED AND SAID UNTO HIM, THOUGH ALL MEN SHALL BE OFFENDEDR/ BECAUSE OF THEE, YET WILL I NEVER BE OFFENDED.HM# 34 JESUS SAID UNTO HIM, VERILY I SAY UNTO THEE, THAT THIS NIGHT, BEFORE THE & COCK CROW, THOU SHALT DENY ME THRICE.L# 35 PETER SAID UNTO HIM, THOUGH I SHOULD DIE WITH THEE, YET WILL I NOT DENY, THEE. LIKEWISE ALSO SAID ALL THE DISCIPLES.J# 36 THEN COMETH JESUS WITH THEM UNTO A PLACE CALLED GETHSEMANE, AND SAITH= UNTO THE DISCIPLES, SIT YE HERE, WHILE I GO AND PRAY YONDER.LL# 37 AND HE TOOK WITH HIM PETER AND THE TWO SONS OF ZEBEDEE, AND BEGAN TO BE SORROWFUL AND VERY HEAVY.G# 38 THEN SAITH HE UNTO THEM, MY SOUL IS EXCEEDING SORROWFUL, EVEN UNTO ) DEATH: TARRY YE HERE, AND WATCH WITH ME.HL# 39 AND HE WENT A LITTLE FARTHER, AND FELL ON HIS FACE, AND PRAYED, SAYING,L O MY FATHER, IF IT BE POSSIBLE, LET THIS CUP PASS FROM ME: NEVERTHELESS NOT AS I WILL, BUT AS THOU WILT. I# 40 AND HE COMETH UNTO THE DISCIPLES, AND FINDETH THEM ASLEEP, AND SAITHL7 UNTO PETER,00 A @<%X>%+%O-%TADATADATA WHAT, COULD YE NOT WATCH WITH ME ONE HOUR? L# 41 WATCH AND PRAY, THAT YE ENTER NOT INTO TEMPTATION: THE SPIRIT INDEED IS WILLING, BUT THE FLESH IS WEAK.L# 42 HE WENT AWAY AGAIN THE SECOND TIME, AND PRAYED, SAYING, O MY FATHER, IFI THIS CUP MAY NOT PASS AWAY FROM ME, EXCEPT I DRINK IT, THY WILL BE DONE.NH# 43 AND HE CAME AND FOUND THEM ASLEEP AGAIN: FOR THEIR EYES WERE HEAVY.M# 44 AND HE LEFT THEM, AND WENT AWAY AGAIN, AND PRAYED THE THIRD TIME, SAYINGA THE SAME WORDS.L# 45 THEN COMETH HE TO HIS DISCIPLES, AND SAITH UNTO THEM, SLEEP ON NOW, ANDL TAKE YOUR REST: BEHOLD, THE HOUR IS AT HAND, AND THE SON OF MAN IS BETRAYED INTO THE HANDS OF SINNERS..F# 46 RISE, LET US BE GOING: BEHOLD, HE IS AT HAND THAT DOTH BETRAY ME.M# 47 AND WHILE HE YET SPAKE, LO, JUDAS, ONE OF THE TWELVE, CAME, AND WITH HIMEL A GREAT MULTITUDE WITH SWORDS AND STAVES, FROM THE CHIEF PRIESTS AND ELDERS OF THE PEOPLE.TJ# 48 NOW HE THAT BETRAYED HIM GAVE THEM A SIGN, SAYING, WHOMSOEVER I SHALL& KISS, THAT SAME IS HE: HOLD HIM FAST.L# 49 AND FORTHWITH HE CAME TO JESUS, AND SAID, HAIL, MASTER; AND KISSED HIM.H# 50 AND JESUS SAID UNTO HIM, FRIEND, WHEREFORE ART THOU COME? THEN CAME, THEY, AND LAID HANDS ON JESUS AND TOOK HIM.K# 51 AND, BEHOLD, ONE OF THEM WHICH WERE WITH JESUS STRETCHED OUT HIS HAND,EL AND DREW HIS SWORD, AND STRUCK A SERVANT OF THE HIGH PRIESTS, AND SMOTE OFF HIS EAR.TM# 52 THEN SAID JESUS UNTO HIM, PUT UP AGAIN THY SWORD INTO HIS PLACE: FOR ALL 6 THEY THAT TAKE THE SWORD SHALL PERISH WITH THE SWORD.D# 53 THINKEST THOU THAT I CANNOT NOW PRAY TO MY FATHER, AND HE SHALL6 PRESENTLY GIVE ME MORE THAN TWELVE LEGIONS OF ANGELS?J# 54 BUT HOW THEN SHALL THE SCRIPTURES BE FULFILLED, THAT THUS IT MUST BE?G# 55 IN THAT SAME HOUR SAID JESUS TO THE MULTITUDES, ARE YE COME OUT AS L AGAINST A THIEF WITH SWORDS AND STAVES FOR TO TAKE ME? I SAT DAILY WITH YOU3 TEACHING IN THE TEMPLE, AND YE LAID NO HOLD ON ME.,H# 56 BUT ALL THIS WAS DONE, THAT THE SCRIPTURES OF THE PROPHETS MIGHT BE9 FULFILLED. THEN ALL THE DISCIPLES FORSOOK HIM, AND FLED.AK# 57 AND THEY THAT HAD LAID HOLD ON JESUS LED HIM AWAY TO CAIAPHAS THE HIGH 9 PRIEST, WHERE THE SCRIBES AND THE ELDERS WERE ASSEMBLED.BK# 58 BUT PETER FOLLOWED HIM AFAR OFF UNTO THE HIGH PRIESTS PALACE, AND WENTM/ IN, AND SAT WITH THE SERVANTS, TO SEE THE END.WI# 59 NOW THE CHIEF PRIESTS, AND ELDERS, AND ALL THE COUNCIL, SOUGHT FALSEE, WITNESS AGAINST JESUS, TO PUT HIM TO DEATH;J# 60 BUT FOUND NONE: YEA, THOUGH MANY FALSE WITNESSES CAME, YET FOUND THEY, NONE. AT THE LAST CAME TWO FALSE WITNESSES,L# 61 AND SAID, THIS FELLOW SAID, I AM ABLE TO DESTROY THE TEMPLE OF GOD, AND TO BUILD IT IN THREE DAYS.SJ# 62 AND THE HIGH PRIEST AROSE, AND SAID UNTO HIM, ANSWEREST THOU NOTHING?- WHAT IS IT WHICH THESE WITNESS AGAINST THEE?TI# 63 BUT JESUS HELD HIS PEACE, AND THE HIGH PRIEST ANSWERED AND SAID UNTOSL HIM, I ADJURE THEE BY THE LIVING GOD, THAT THOU TELL US WHETHER THOU BE THE CHRIST, THE SON OF GOD.G# 64 JESUS SAITH UNTO HIM, THOU HAST SAID: NEVERTHELESS I SAY UNTO YOU,TN HEREAFTER SHALL YE SEE THE SON OF MAN SITTING ON THE RIGHT HAND OF POWER, AND COMING IN THE CLOUDS OF HEAVEN.M# 65 THEN THE HIGH PRIEST RENT HIS CLOTHES, SAYING, HE HATH SPOKEN BLASPHEMY;EF WHAT FURTHER NEED HAVE WE OF WITNESSES? BEHOLD, NOW YE HAVE HEARD HIS BLASPHEMY. B# 66 WHAT THINK YE? THEY ANSWERED AND SAID, HE IS GUILTY OF DEATH.K# 67 THEN DID THEY SPIT IN HIS FACE, AND BUFFETED HIM; AND OTHERS SMOTE HIME WITH THE PALMS OF THEIR HANDS,TF# 68 SAYING, PROPHESY UNTO US, THOU CHRIST, WHO IS HE THAT SMOTE THEE?M# 69 NOW PETER SAT WITHOUT IN THE PALACE: AND A DAMSEL CAME UNTO HIM, SAYING,O& THOU ALSO WAST WITH JESUS OF GALILEE.H# 70 BUT HE DENIED BEFORE THEM ALL, SAYING, I KNOW NOT WHAT THOU SAYEST.L# 71 AND WHEN HE WAS GONE OUT INTO THE PORCH, ANOTHER MAID SAW HIM, AND SAIDH UNTO THEM THAT WERE THERE, THIS FELLOW WAS ALSO WITH JESUS OF NAZARETH.=# 72 AND AGAIN HE DENIED WITH AN OATH, I DO NOT KNOW THE MAN.WK# 73 AND AFTER A WHILE CAME UNTO HIM THEY THAT STOOD BY, AND SAID TO PETER,HA S00A?D%5%T6%! !URELY THOU ALSO ART ONE OF THEM; FOR THY SPEECH BETRAYETH THEE. I# 74 THEN BEGAN HE TO CURSE AND TO SWEAR, SAYING, I KNOW NOT THE MAN. AND. IMMEDIATELY THE COCK CREW.HL# 75 AND PETER REMEMBERED THE WORD OF JESUS, WHICH SAID UNTO HIM, BEFORE THEJ COCK CROW, THOU SHALT DENY ME THRICE. AND HE WENT OUT, AND WEPT BITTERLY. = CHAPTER 27 LM# 1 WHEN THE MORNING WAS COME, ALL THE CHIEF PRIESTS AND ELDERS OF THE PEOPLEW0 TOOK COUNSEL AGAINST JESUS TO PUT HIM TO DEATH:H# 2 AND WHEN THEY HAD BOUND HIM, THEY LED HIM AWAY, AND DELIVERED HIM TO PONTIUS PILATE THE GOVERNOR. J# 3 THEN JUDAS, WHICH HAD BETRAYED HIM, WHEN HE SAW THAT HE WAS CONDEMNED,M REPENTED HIMSELF, AND BROUGHT AGAIN THE THIRTY PIECES OF SILVER TO THE CHIEFI PRIESTS AND ELDERS,I# 4 SAYING, I HAVE SINNED IN THAT I HAVE BETRAYED THE INNOCENT BLOOD. ANDT1 THEY SAID, WHAT IS THAT TO US? SEE THOU TO THAT.MJ# 5 AND HE CAST DOWN THE PIECES OF SILVER IN THE TEMPLE, AND DEPARTED, AND WENT AND HANGED HIMSELF. L# 6 AND THE CHIEF PRIESTS TOOK THE SILVER PIECES, AND SAID, IT IS NOT LAWFULE FOR TO PUT THEM INTO THE TREASURY, BECAUSE IT IS THE PRICE OF BLOOD.HJ# 7 AND THEY TOOK COUNSEL, AND BOUGHT WITH THEM THE POTTERS FIELD, TO BURY STRANGERS IN.G# 8 WHEREFORE THAT FIELD WAS CALLED, THE FIELD OF BLOOD, UNTO THIS DAY. K# 9 THEN WAS FULFILLED THAT WHICH WAS SPOKEN BY JEREMY THE PROPHET, SAYING, M AND THEY TOOK THE THIRTY PIECES OF SILVER, THE PRICE OF HIM THAT WAS VALUED,P/ WHOM THEY OF THE CHILDREN OF ISRAEL DID VALUE;HC# 10 AND GAVE THEM FOR THE POTTERS FIELD, AS THE LORD APPOINTED ME.FM# 11 AND JESUS STOOD BEFORE THE GOVERNOR: AND THE GOVERNOR ASKED HIM, SAYING,HE ART THOU THE KING OF THE JEWS? AND JESUS SAID UNTO HIM, THOU SAYEST.NI# 12 AND WHEN HE WAS ACCUSED OF THE CHIEF PRIESTS AND ELDERS, HE ANSWEREDS NOTHING. M# 13 THEN SAID PILATE UNTO HIM, HEAREST THOU NOT HOW MANY THINGS THEY WITNESST AGAINST THEE?D# 14 AND HE ANSWERED HIM TO NEVER A WORD; INSOMUCH THAT THE GOVERNOR MARVELLED GREATLY.AI# 15 NOW AT THAT FEAST THE GOVERNOR WAS WONT TO RELEASE UNTO THE PEOPLE AN PRISONER, WHOM THEY WOULD.D;# 16 AND THEY HAD THEN A NOTABLE PRISONER, CALLED BARABBAS.AL# 17 THEREFORE WHEN THEY WERE GATHERED TOGETHER, PILATE SAID UNTO THEM, WHOML WILL YE THAT I RELEASE UNTO YOU? BARABBAS, OR JESUS WHICH IS CALLED CHRIST?6# 18 FOR HE KNEW THAT FOR ENVY THEY HAD DELIVERED HIM.G# 19 WHEN HE WAS SET DOWN ON THE JUDGMENT SEAT, HIS WIFE SENT UNTO HIM,EM SAYING, HAVE THOU NOTHING TO DO WITH THAT JUST MAN: FOR I HAVE SUFFERED MANYA+ THINGS THIS DAY IN A DREAM BECAUSE OF HIM.PG# 20 BUT THE CHIEF PRIESTS AND ELDERS PERSUADED THE MULTITUDE THAT THEYP( SHOULD ASK BARABBAS, AND DESTROY JESUS.K# 21 THE GOVERNOR ANSWERED AND SAID UNTO THEM, WHETHER OF THE TWAIN WILL YE . THAT I RELEASE UNTO YOU? THEY SAID, BARABBAS.L# 22 PILATE SAITH UNTO THEM, WHAT SHALL I DO THEN WITH JESUS WHICH IS CALLED5 CHRIST? THEY ALL SAY UNTO HIM, LET HIM BE CRUCIFIED. K# 23 AND THE GOVERNOR SAID, WHY, WHAT EVIL HATH HE DONE? BUT THEY CRIED OUTU( THE MORE, SAYING, LET HIM BE CRUCIFIED.L# 24 WHEN PILATE SAW THAT HE COULD PREVAIL NOTHING, BUT THAT RATHER A TUMULTN WAS MADE, HE TOOK WATER, AND WASHED HIS HANDS BEFORE THE MULTITUDE, SAYING, I< AM INNOCENT OF THE BLOOD OF THIS JUST PERSON: SEE YE TO IT.K# 25 THEN ANSWERED ALL THE PEOPLE, AND SAID, HIS BLOOD BE ON US, AND ON OURL CHILDREN.L# 26 THEN RELEASED HE BARABBAS UNTO THEM: AND WHEN HE HAD SCOURGED JESUS, HE DELIVERED HIM TO BE CRUCIFIED. K# 27 THEN THE SOLDIERS OF THE GOVERNOR TOOK JESUS INTO THE COMMON HALL, ANDB. GATHERED UNTO HIM THE WHOLE BAND OF SOLDIERS.:# 28 AND THEY STRIPPED HIM, AND PUT ON HIM A SCARLET ROBE.L# 29 AND WHEN THEY HAD PLATTED A CROWN OF THORNS, THEY PUT IT UPON HIS HEAD,M AND A REED IN HIS RIGHT HAND: AND THEY BOWED THE KNEE BEFORE HIM, AND MOCKEDL% HIM, SAYING, HAIL, KING OF THE JEWS! J# 30 AND THEY SPIT UPON HIM, AND TOOK THE REED, AND SMOTE HIM ON THE HEAD.M# 31 AND AFTER THAT THEY HAD MOCKED HIM, THEY TOOK THE ROBE OFF FROM HIM, AND = PUT HIS OWN RAIMENT ON HIM, AND LED HIM AWAY TO00A A<%X>%+%O-%TADATADATA CRUCIFY HIM.NI# 32 AND AS THEY CAME OUT, THEY FOUND A MAN OF CYRENE, SIMON BY NAME: HIMH" THEY COMPELLED TO BEAR HIS CROSS.L# 33 AND WHEN THEY WERE COME UNTO A PLACE CALLED GOLGOTHA, THAT IS TO SAY, A PLACE OF A SKULL,M# 34 THEY GAVE HIM VINEGAR TO DRINK MINGLED WITH GALL: AND WHEN HE HAD TASTEDS THEREOF, HE WOULD NOT DRINK.,K# 35 AND THEY CRUCIFIED HIM, AND PARTED HIS GARMENTS, CASTING LOTS: THAT ITML MIGHT BE FULFILLED WHICH WAS SPOKEN BY THE PROPHET, THEY PARTED MY GARMENTS4 AMONG THEM, AND UPON MY VESTURE DID THEY CAST LOTS.-# 36 AND SITTING DOWN THEY WATCHED HIM THERE;AL# 37 AND SET UP OVER HIS HEAD HIS ACCUSATION WRITTEN, THIS IS JESUS THE KING OF THE JEWS.DK# 38 THEN WERE THERE TWO THIEVES CRUCIFIED WITH HIM, ONE ON THE RIGHT HAND,T AND ANOTHER ON THE LEFT.A># 39 AND THEY THAT PASSED BY REVILED HIM, WAGGING THEIR HEADS,J# 40 AND SAYING, THOU THAT DESTROYEST THE TEMPLE, AND BUILDEST IT IN THREEI DAYS, SAVE THYSELF. IF THOU BE THE SON OF GOD, COME DOWN FROM THE CROSS.OF# 41 LIKEWISE ALSO THE CHIEF PRIESTS MOCKING HIM, WITH THE SCRIBES AND ELDERS, SAID,J# 42 HE SAVED OTHERS; HIMSELF HE CANNOT SAVE. IF HE BE THE KING OF ISRAEL,? LET HIM NOW COME DOWN FROM THE CROSS, AND WE WILL BELIEVE HIM.IL# 43 HE TRUSTED IN GOD; LET HIM DELIVER HIM NOW, IF HE WILL HAVE HIM: FOR HE SAID, I AM THE SON OF GOD.MJ# 44 THE THIEVES ALSO, WHICH WERE CRUCIFIED WITH HIM, CAST THE SAME IN HIS TEETH.TJ# 45 NOW FROM THE SIXTH HOUR THERE WAS DARKNESS OVER ALL THE LAND UNTO THE NINTH HOUR.I# 46 AND ABOUT THE NINTH HOUR JESUS CRIED WITH A LOUD VOICE, SAYING, ELI,DN ELI, LAMA SABACHTHANI? THAT IS TO SAY, MY GOD, MY GOD, WHY HAST THOU FORSAKEN ME?H# 47 SOME OF THEM THAT STOOD THERE, WHEN THEY HEARD THAT, SAID, THIS MAN CALLETH FOR ELIAS. K# 48 AND STRAIGHTWAY ONE OF THEM RAN, AND TOOK A SPUNGE, AND FILLED IT WITHM6 VINEGAR, AND PUT IT ON A REED, AND GAVE HIM TO DRINK.K# 49 THE REST SAID, LET BE, LET US SEE WHETHER ELIAS WILL COME TO SAVE HIM.SL# 50 JESUS, WHEN HE HAD CRIED AGAIN WITH A LOUD VOICE, YIELDED UP THE GHOST.J# 51 AND, BEHOLD, THE VEIL OF THE TEMPLE WAS RENT IN TWAIN FROM THE TOP TO9 THE BOTTOM; AND THE EARTH DID QUAKE, AND THE ROCKS RENT;MJ# 52 AND THE GRAVES WERE OPENED; AND MANY BODIES OF THE SAINTS WHICH SLEPT AROSE, I# 53 AND CAME OUT OF THE GRAVES AFTER HIS RESURRECTION, AND WENT INTO THET# HOLY CITY, AND APPEARED UNTO MANY.NM# 54 NOW WHEN THE CENTURION, AND THEY THAT WERE WITH HIM, WATCHING JESUS, SAW N THE EARTHQUAKE, AND THOSE THINGS THAT WERE DONE, THEY FEARED GREATLY, SAYING, TRULY THIS WAS THE SON OF GOD.DL# 55 AND MANY WOMEN WERE THERE BEHOLDING AFAR OFF, WHICH FOLLOWED JESUS FROM GALILEE, MINISTERING UNTO HIM: L# 56 AMONG WHICH WAS MARY MAGDALENE, AND MARY THE MOTHER OF JAMES AND JOSES,% AND THE MOTHER OF ZEBEDEES CHILDREN.EG# 57 WHEN THE EVEN WAS COME, THERE CAME A RICH MAN OF ARIMATHAEA, NAMEDR- JOSEPH, WHO ALSO HIMSELF WAS JESUS DISCIPLE:DK# 58 HE WENT TO PILATE, AND BEGGED THE BODY OF JESUS. THEN PILATE COMMANDEDI THE BODY TO BE DELIVERED.G# 59 AND WHEN JOSEPH HAD TAKEN THE BODY, HE WRAPPED IT IN A CLEAN LINENE CLOTH,EL# 60 AND LAID IT IN HIS OWN NEW TOMB, WHICH HE HAD HEWN OUT IN THE ROCK: ANDD HE ROLLED A GREAT STONE TO THE DOOR OF THE SEPULCHRE, AND DEPARTED.K# 61 AND THERE WAS MARY MAGDALENE, AND THE OTHER MARY, SITTING OVER AGAINSTC THE SEPULCHRE. J# 62 NOW THE NEXT DAY, THAT FOLLOWED THE DAY OF THE PREPARATION, THE CHIEF1 PRIESTS AND PHARISEES CAME TOGETHER UNTO PILATE,JG# 63 SAYING, SIR, WE REMEMBER THAT THAT DECEIVER SAID, WHILE HE WAS YETO+ ALIVE, AFTER THREE DAYS I WILL RISE AGAIN.LK# 64 COMMAND THEREFORE THAT THE SEPULCHRE BE MADE SURE UNTIL THE THIRD DAY, G LEST HIS DISCIPLES COME BY NIGHT, AND STEAL HIM AWAY, AND SAY UNTO THERM PEOPLE, HE IS RISEN FROM THE DEAD: SO THE LAST ERROR SHALL BE WORSE THAN THEG FIRST.IL# 65 PILATE SAID UNTO THEM, YE HAVE A WATCH: GO YOUR WAY, MAKE IT AS SURE AS YE CAN.F# 66 SO THEY WENT, AND MADE THE SEPULCHRE SURE, SEALING THE STONE, AND SETTING A WATCH.E = CHAPTER 28 EN# 1 IN THE END OF TH00"A'AD%5%T6%! !E SABBATH, AS IT BEGAN TO DAWN TOWARD THE FIRST DAY OF THEC WEEK, CAME MARY MAGDALENE AND THE OTHER MARY TO SEE THE SEPULCHRE.YH# 2 AND, BEHOLD, THERE WAS A GREAT EARTHQUAKE: FOR THE ANGEL OF THE LORDM DESCENDED FROM HEAVEN, AND CAME AND ROLLED BACK THE STONE FROM THE DOOR, ANDH SAT UPON IT. F# 3 HIS COUNTENANCE WAS LIKE LIGHTNING, AND HIS RAIMENT WHITE AS SNOW:F# 4 AND FOR FEAR OF HIM THE KEEPERS DID SHAKE, AND BECAME AS DEAD MEN.K# 5 AND THE ANGEL ANSWERED AND SAID UNTO THE WOMEN, FEAR NOT YE: FOR I KNOWT) THAT YE SEEK JESUS, WHICH WAS CRUCIFIED. J# 6 HE IS NOT HERE: FOR HE IS RISEN, AS HE SAID. COME, SEE THE PLACE WHERE THE LORD LAY.J# 7 AND GO QUICKLY, AND TELL HIS DISCIPLES THAT HE IS RISEN FROM THE DEAD;M AND, BEHOLD, HE GOETH BEFORE YOU INTO GALILEE; THERE SHALL YE SEE HIM: LO, I HAVE TOLD YOU.CM# 8 AND THEY DEPARTED QUICKLY FROM THE SEPULCHRE WITH FEAR AND GREAT JOY; ANDH% DID RUN TO BRING HIS DISCIPLES WORD. K# 9 AND AS THEY WENT TO TELL HIS DISCIPLES, BEHOLD, JESUS MET THEM, SAYING,KF ALL HAIL. AND THEY CAME AND HELD HIM BY THE FEET, AND WORSHIPPED HIM.L# 10 THEN SAID JESUS UNTO THEM, BE NOT AFRAID: GO TELL MY BRETHREN THAT THEY. GO INTO GALILEE, AND THERE SHALL THEY SEE ME.L# 11 NOW WHEN THEY WERE GOING, BEHOLD, SOME OF THE WATCH CAME INTO THE CITY,A AND SHEWED UNTO THE CHIEF PRIESTS ALL THE THINGS THAT WERE DONE.LI# 12 AND WHEN THEY WERE ASSEMBLED WITH THE ELDERS, AND HAD TAKEN COUNSEL,I) THEY GAVE LARGE MONEY UNTO THE SOLDIERS,LM# 13 SAYING, SAY YE, HIS DISCIPLES CAME BY NIGHT, AND STOLE HIM AWAY WHILE WEH SLEPT.YM# 14 AND IF THIS COME TO THE GOVERNORS EARS, WE WILL PERSUADE HIM, AND SECUREG YOU.ML# 15 SO THEY TOOK THE MONEY, AND DID AS THEY WERE TAUGHT: AND THIS SAYING IS1 COMMONLY REPORTED AMONG THE JEWS UNTIL THIS DAY.ML# 16 THEN THE ELEVEN DISCIPLES WENT AWAY INTO GALILEE, INTO A MOUNTAIN WHERE JESUS HAD APPOINTED THEM.B# 17 AND WHEN THEY SAW HIM, THEY WORSHIPPED HIM: BUT SOME DOUBTED.K# 18 AND JESUS CAME AND SPAKE UNTO THEM, SAYING, ALL POWER IS GIVEN UNTO MEG IN HEAVEN AND IN EARTH.J# 19 GO YE THEREFORE, AND TEACH ALL NATIONS, BAPTIZING THEM IN THE NAME OF3 THE FATHER, AND OF THE SON, AND OF THE HOLY GHOST:OI# 20 TEACHING THEM TO OBSERVE ALL THINGS WHATSOEVER I HAVE COMMANDED YOU:OD AND, LO, I AM WITH YOU ALWAY, EVEN UNTO THE END OF THE WORLD. AMEN. INTO GALILEE, INTO A MOUNTAIN WHERE JESUS HAD APPOINTED THEM.B# 17 AND WHEN THEY SAW HIM, THEY WORSHIPPED HIM: BUT SOME DOUBTED.K# 18 AND JESUS CAME AND SPAKE UNTO THEM, SAYING, ALL POWER IS GIVEN UNTO * BOOK41 MARKN = CHAPTER 1 @# 1 THE BEGINNING OF THE GOSPEL OF JESUS CHRIST, THE SON OF GOD;L# 2 AS IT IS WRITTEN IN THE PROPHETS, BEHOLD, I SEND MY MESSENGER BEFORE THY/ FACE, WHICH SHALL PREPARE THY WAY BEFORE THEE.MH# 3 THE VOICE OF ONE CRYING IN THE WILDERNESS, PREPARE YE THE WAY OF THE LORD, MAKE HIS PATHS STRAIGHT.NL# 4 JOHN DID BAPTIZE IN THE WILDERNESS, AND PREACH THE BAPTISM OF REPENTANCE FOR THE REMISSION OF SINS.C# 5 AND THERE WENT OUT UNTO HIM ALL THE LAND OF JUDAEA, AND THEY OFNK JERUSALEM, AND WERE ALL BAPTIZED OF HIM IN THE RIVER OF JORDAN, CONFESSINGR THEIR SINS.L# 6 AND JOHN WAS CLOTHED WITH CAMELS HAIR, AND WITH A GIRDLE OF A SKIN ABOUT2 HIS LOINS; AND HE DID EAT LOCUSTS AND WILD HONEY;H# 7 AND PREACHED, SAYING, THERE COMETH ONE MIGHTIER THAN I AFTER ME, THEB LATCHET OF WHOSE SHOES I AM NOT WORTHY TO STOOP DOWN AND UNLOOSE.L# 8 I INDEED HAVE BAPTIZED YOU WITH WATER: BUT HE SHALL BAPTIZE YOU WITH THE HOLY GHOST.G# 9 AND IT CAME TO PASS IN THOSE DAYS, THAT JESUS CAME FROM NAZARETH OF - GALILEE, AND WAS BAPTIZED OF JOHN IN JORDAN.,K# 10 AND STRAIGHTWAY COMING UP OUT OF THE WATER, HE SAW THE HEAVENS OPENED,T0 AND THE SPIRIT LIKE A DOVE DESCENDING UPON HIM:L# 11 AND THERE CAME A VOICE FROM HEAVEN, SAYING, THOU ART MY BELOVED SON, IN WHOM I AM WELL PLEASED.@# 12 AND IMMEDIATELY THE SPIRIT DRIVETH HIM INTO THE WILDERNESS.M# 13 AND HE WAS THERE IN THE WILDERNESS FORTY DAYS, TEMPTED OF SATAN; AND WAS: WITH THE WILD BEASTS; AND THE ANGELS MINISTERED UNTO HIM.D# 14 NOW00*A A<%X>%+%O-%TADATADATA AFTER THAT JOHN WAS PUT IN PRISON, JESUS CAME INTO GALILEE,, PREACHING THE GOSPEL OF THE KINGDOM OF GOD,J# 15 AND SAYING, THE TIME IS FULFILLED, AND THE KINGDOM OF GOD IS AT HAND:# REPENT YE, AND BELIEVE THE GOSPEL.CH# 16 NOW AS HE WALKED BY THE SEA OF GALILEE, HE SAW SIMON AND ANDREW HIS; BROTHER CASTING A NET INTO THE SEA: FOR THEY WERE FISHERS.EG# 17 AND JESUS SAID UNTO THEM, COME YE AFTER ME, AND I WILL MAKE YOU TOT BECOME FISHERS OF MEN.I?# 18 AND STRAIGHTWAY THEY FORSOOK THEIR NETS, AND FOLLOWED HIM.AJ# 19 AND WHEN HE HAD GONE A LITTLE FARTHER THENCE, HE SAW JAMES THE SON OFM ZEBEDEE, AND JOHN HIS BROTHER, WHO ALSO WERE IN THE SHIP MENDING THEIR NETS.FJ# 20 AND STRAIGHTWAY HE CALLED THEM: AND THEY LEFT THEIR FATHER ZEBEDEE IN6 THE SHIP WITH THE HIRED SERVANTS, AND WENT AFTER HIM.H# 21 AND THEY WENT INTO CAPERNAUM; AND STRAIGHTWAY ON THE SABBATH DAY HE( ENTERED INTO THE SYNAGOGUE, AND TAUGHT.M# 22 AND THEY WERE ASTONISHED AT HIS DOCTRINE: FOR HE TAUGHT THEM AS ONE THATH' HAD AUTHORITY, AND NOT AS THE SCRIBES.EJ# 23 AND THERE WAS IN THEIR SYNAGOGUE A MAN WITH AN UNCLEAN SPIRIT; AND HE CRIED OUT,OF# 24 SAYING, LET US ALONE; WHAT HAVE WE TO DO WITH THEE, THOU JESUS OFN NAZARETH? ART THOU COME TO DESTROY US? I KNOW THEE WHO THOU ART, THE HOLY ONE OF GOD.H# 25 AND JESUS REBUKED HIM, SAYING, HOLD THY PEACE, AND COME OUT OF HIM.K# 26 AND WHEN THE UNCLEAN SPIRIT HAD TORN HIM, AND CRIED WITH A LOUD VOICE,E HE CAME OUT OF HIM.B# 27 AND THEY WERE ALL AMAZED, INSOMUCH THAT THEY QUESTIONED AMONGL THEMSELVES, SAYING, WHAT THING IS THIS? WHAT NEW DOCTRINE IS THIS? FOR WITHH AUTHORITY COMMANDETH HE EVEN THE UNCLEAN SPIRITS, AND THEY DO OBEY HIM.K# 28 AND IMMEDIATELY HIS FAME SPREAD ABROAD THROUGHOUT ALL THE REGION ROUNDT ABOUT GALILEE. J# 29 AND FORTHWITH, WHEN THEY WERE COME OUT OF THE SYNAGOGUE, THEY ENTERED9 INTO THE HOUSE OF SIMON AND ANDREW, WITH JAMES AND JOHN.TK# 30 BUT SIMONS WIFES MOTHER LAY SICK OF A FEVER, AND ANON THEY TELL HIM OFE HER.AM# 31 AND HE CAME AND TOOK HER BY THE HAND, AND LIFTED HER UP; AND IMMEDIATELYT2 THE FEVER LEFT HER, AND SHE MINISTERED UNTO THEM.K# 32 AND AT EVEN, WHEN THE SUN DID SET, THEY BROUGHT UNTO HIM ALL THAT WERED4 DISEASED, AND THEM THAT WERE POSSESSED WITH DEVILS.8# 33 AND ALL THE CITY WAS GATHERED TOGETHER AT THE DOOR.L# 34 AND HE HEALED MANY THAT WERE SICK OF DIVERS DISEASES, AND CAST OUT MANYE DEVILS; AND SUFFERED NOT THE DEVILS TO SPEAK, BECAUSE THEY KNEW HIM.FM# 35 AND IN THE MORNING, RISING UP A GREAT WHILE BEFORE DAY, HE WENT OUT, ANDH2 DEPARTED INTO A SOLITARY PLACE, AND THERE PRAYED.># 36 AND SIMON AND THEY THAT WERE WITH HIM FOLLOWED AFTER HIM.L# 37 AND WHEN THEY HAD FOUND HIM, THEY SAID UNTO HIM, ALL MEN SEEK FOR THEE.L# 38 AND HE SAID UNTO THEM, LET US GO INTO THE NEXT TOWNS, THAT I MAY PREACH( THERE ALSO: FOR THEREFORE CAME I FORTH.M# 39 AND HE PREACHED IN THEIR SYNAGOGUES THROUGHOUT ALL GALILEE, AND CAST OUTE DEVILS.M# 40 AND THERE CAME A LEPER TO HIM, BESEECHING HIM, AND KNEELING DOWN TO HIM,B= AND SAYING UNTO HIM, IF THOU WILT, THOU CANST MAKE ME CLEAN.AK# 41 AND JESUS, MOVED WITH COMPASSION, PUT FORTH HIS HAND, AND TOUCHED HIM,I+ AND SAITH UNTO HIM, I WILL; BE THOU CLEAN.IM# 42 AND AS SOON AS HE HAD SPOKEN, IMMEDIATELY THE LEPROSY DEPARTED FROM HIM,T AND HE WAS CLEANSED.A># 43 AND HE STRAITLY CHARGED HIM, AND FORTHWITH SENT HIM AWAY;I# 44 AND SAITH UNTO HIM, SEE THOU SAY NOTHING TO ANY MAN: BUT GO THY WAY,.K SHEW THYSELF TO THE PRIEST, AND OFFER FOR THY CLEANSING THOSE THINGS WHICHM, MOSES COMMANDED, FOR A TESTIMONY UNTO THEM.K# 45 BUT HE WENT OUT, AND BEGAN TO PUBLISH IT MUCH, AND TO BLAZE ABROAD THENN MATTER, INSOMUCH THAT JESUS COULD NO MORE OPENLY ENTER INTO THE CITY, BUT WASC WITHOUT IN DESERT PLACES: AND THEY CAME TO HIM FROM EVERY QUARTER.A = CHAPTER 2 J# 1 AND AGAIN HE ENTERED INTO CAPERNAUM AFTER SOME DAYS; AND IT WAS NOISED THAT HE WAS IN THE HOUSE.K# 2 AND STRAIGHTWAY MANY WERE GATHERED TOGETHER, INSOMUCH THAT THERE WAS NOOM ROOM TO RECEIVE THEM, NO, NOT SO MUCH AS ABOUT THE DOOR: AND HE P002A'AD%5%T6%! !REACHED THEN WORD UNTO THEM.K# 3 AND THEY COME UNTO HIM, BRINGING ONE SICK OF THE PALSY, WHICH WAS BORNE, OF FOUR.HL# 4 AND WHEN THEY COULD NOT COME NIGH UNTO HIM FOR THE PRESS, THEY UNCOVEREDM THE ROOF WHERE HE WAS: AND WHEN THEY HAD BROKEN IT UP, THEY LET DOWN THE BED # WHEREIN THE SICK OF THE PALSY LAY.DL# 5 WHEN JESUS SAW THEIR FAITH, HE SAID UNTO THE SICK OF THE PALSY, SON, THY SINS BE FORGIVEN THEE.SH# 6 BUT THERE WAS CERTAIN OF THE SCRIBES SITTING THERE, AND REASONING IN THEIR HEARTS,J# 7 WHY DOTH THIS MAN THUS SPEAK BLASPHEMIES? WHO CAN FORGIVE SINS BUT GOD ONLY?L# 8 AND IMMEDIATELY WHEN JESUS PERCEIVED IN HIS SPIRIT THAT THEY SO REASONEDI WITHIN THEMSELVES, HE SAID UNTO THEM, WHY REASON YE THESE THINGS IN YOURE HEARTS?E# 9 WHETHER IS IT EASIER TO SAY TO THE SICK OF THE PALSY, THY SINS BE@ FORGIVEN THEE; OR TO SAY, ARISE, AND TAKE UP THY BED, AND WALK?L# 10 BUT THAT YE MAY KNOW THAT THE SON OF MAN HATH POWER ON EARTH TO FORGIVE+ SINS, (HE SAITH TO THE SICK OF THE PALSY,)TK# 11 I SAY UNTO THEE, ARISE, AND TAKE UP THY BED, AND GO THY WAY INTO THINED HOUSE.J# 12 AND IMMEDIATELY HE AROSE, TOOK UP THE BED, AND WENT FORTH BEFORE THEMM ALL; INSOMUCH THAT THEY WERE ALL AMAZED, AND GLORIFIED GOD, SAYING, WE NEVERH SAW IT ON THIS FASHION.L# 13 AND HE WENT FORTH AGAIN BY THE SEA SIDE; AND ALL THE MULTITUDE RESORTED UNTO HIM, AND HE TAUGHT THEM.H# 14 AND AS HE PASSED BY, HE SAW LEVI THE SON OF ALPHAEUS SITTING AT THEK RECEIPT OF CUSTOM, AND SAID UNTO HIM, FOLLOW ME. AND HE AROSE AND FOLLOWEDH HIM.SG# 15 AND IT CAME TO PASS, THAT, AS JESUS SAT AT MEAT IN HIS HOUSE, MANYMJ PUBLICANS AND SINNERS SAT ALSO TOGETHER WITH JESUS AND HIS DISCIPLES: FOR( THERE WERE MANY, AND THEY FOLLOWED HIM.F# 16 AND WHEN THE SCRIBES AND PHARISEES SAW HIM EAT WITH PUBLICANS ANDM SINNERS, THEY SAID UNTO HIS DISCIPLES, HOW IS IT THAT HE EATETH AND DRINKETHG WITH PUBLICANS AND SINNERS?I# 17 WHEN JESUS HEARD IT, HE SAITH UNTO THEM, THEY THAT ARE WHOLE HAVE NONF NEED OF THE PHYSICIAN, BUT THEY THAT ARE SICK: I CAME NOT TO CALL THE& RIGHTEOUS, BUT SINNERS TO REPENTANCE.J# 18 AND THE DISCIPLES OF JOHN AND OF THE PHARISEES USED TO FAST: AND THEYI COME AND SAY UNTO HIM, WHY DO THE DISCIPLES OF JOHN AND OF THE PHARISEESD" FAST, BUT THY DISCIPLES FAST NOT?I# 19 AND JESUS SAID UNTO THEM, CAN THE CHILDREN OF THE BRIDECHAMBER FAST,IL WHILE THE BRIDEGROOM IS WITH THEM? AS LONG AS THEY HAVE THE BRIDEGROOM WITH THEM, THEY CANNOT FAST.I# 20 BUT THE DAYS WILL COME, WHEN THE BRIDEGROOM SHALL BE TAKEN AWAY FROM . THEM, AND THEN SHALL THEY FAST IN THOSE DAYS.L# 21 NO MAN ALSO SEWETH A PIECE OF NEW CLOTH ON AN OLD GARMENT: ELSE THE NEWN PIECE THAT FILLED IT UP TAKETH AWAY FROM THE OLD, AND THE RENT IS MADE WORSE.I# 22 AND NO MAN PUTTETH NEW WINE INTO OLD BOTTLES: ELSE THE NEW WINE DOTHOL BURST THE BOTTLES, AND THE WINE IS SPILLED, AND THE BOTTLES WILL BE MARRED:+ BUT NEW WINE MUST BE PUT INTO NEW BOTTLES. M# 23 AND IT CAME TO PASS, THAT HE WENT THROUGH THE CORN FIELDS ON THE SABBATHMG DAY; AND HIS DISCIPLES BEGAN, AS THEY WENT, TO PLUCK THE EARS OF CORN..L# 24 AND THE PHARISEES SAID UNTO HIM, BEHOLD, WHY DO THEY ON THE SABBATH DAY THAT WHICH IS NOT LAWFUL?J# 25 AND HE SAID UNTO THEM, HAVE YE NEVER READ WHAT DAVID DID, WHEN HE HAD; NEED, AND WAS AN HUNGRED, HE, AND THEY THAT WERE WITH HIM?TG# 26 HOW HE WENT INTO THE HOUSE OF GOD IN THE DAYS OF ABIATHAR THE HIGHTJ PRIEST, AND DID EAT THE SHEWBREAD, WHICH IS NOT LAWFUL TO EAT BUT FOR THE4 PRIESTS, AND GAVE ALSO TO THEM WHICH WERE WITH HIM?M# 27 AND HE SAID UNTO THEM, THE SABBATH WAS MADE FOR MAN, AND NOT MAN FOR THEP SABBATH:I:# 28 THEREFORE THE SON OF MAN IS LORD ALSO OF THE SABBATH. = CHAPTER 3 L# 1 AND HE ENTERED AGAIN INTO THE SYNAGOGUE; AND THERE WAS A MAN THERE WHICH HAD A WITHERED HAND.UL# 2 AND THEY WATCHED HIM, WHETHER HE WOULD HEAL HIM ON THE SABBATH DAY; THAT THEY MIGHT ACCUSE HIM.RG# 3 AND HE SAITH UNTO THE MAN WHICH HAD THE WITHERED HAND, STAND FORTH.TK# 4 AND HE SAITH UNTO THEM, IS IT LAWFUL TO DO GOOD ON THE SABBATH DAYS, O00:A A<%X>%+%O-%TADATADATARHA TO DO EVIL? TO SAVE LIFE, OR TO KILL? BUT THEY HELD THEIR PEACE.PL# 5 AND WHEN HE HAD LOOKED ROUND ABOUT ON THEM WITH ANGER, BEING GRIEVED FORI THE HARDNESS OF THEIR HEARTS, HE SAITH UNTO THE MAN, STRETCH FORTH THINETM HAND. AND HE STRETCHED IT OUT: AND HIS HAND WAS RESTORED WHOLE AS THE OTHER.HG# 6 AND THE PHARISEES WENT FORTH, AND STRAIGHTWAY TOOK COUNSEL WITH THEI3 HERODIANS AGAINST HIM, HOW THEY MIGHT DESTROY HIM.RI# 7 BUT JESUS WITHDREW HIMSELF WITH HIS DISCIPLES TO THE SEA: AND A GREATY6 MULTITUDE FROM GALILEE FOLLOWED HIM, AND FROM JUDAEA,J# 8 AND FROM JERUSALEM, AND FROM IDUMAEA, AND FROM BEYOND JORDAN; AND THEYH ABOUT TYRE AND SIDON, A GREAT MULTITUDE, WHEN THEY HAD HEARD WHAT GREAT THINGS HE DID, CAME UNTO HIM.G# 9 AND HE SPAKE TO HIS DISCIPLES, THAT A SMALL SHIP SHOULD WAIT ON HIM 7 BECAUSE OF THE MULTITUDE, LEST THEY SHOULD THRONG HIM.SM# 10 FOR HE HAD HEALED MANY; INSOMUCH THAT THEY PRESSED UPON HIM FOR TO TOUCHU HIM, AS MANY AS HAD PLAGUES.CM# 11 AND UNCLEAN SPIRITS, WHEN THEY SAW HIM, FELL DOWN BEFORE HIM, AND CRIED,J! SAYING, THOU ART THE SON OF GOD. F# 12 AND HE STRAITLY CHARGED THEM THAT THEY SHOULD NOT MAKE HIM KNOWN.M# 13 AND HE GOETH UP INTO A MOUNTAIN, AND CALLETH UNTO HIM WHOM HE WOULD: AND. THEY CAME UNTO HIM.L# 14 AND HE ORDAINED TWELVE, THAT THEY SHOULD BE WITH HIM, AND THAT HE MIGHT SEND THEM FORTH TO PREACH,MB# 15 AND TO HAVE POWER TO HEAL SICKNESSES, AND TO CAST OUT DEVILS:!# 16 AND SIMON HE SURNAMED PETER;DH# 17 AND JAMES THE SON OF ZEBEDEE, AND JOHN THE BROTHER OF JAMES; AND HE8 SURNAMED THEM BOANERGES, WHICH IS, THE SONS OF THUNDER:J# 18 AND ANDREW, AND PHILIP, AND BARTHOLOMEW, AND MATTHEW, AND THOMAS, ANDC JAMES THE SON OF ALPHAEUS, AND THADDAEUS, AND SIMON THE CANAANITE,.G# 19 AND JUDAS ISCARIOT, WHICH ALSO BETRAYED HIM: AND THEY WENT INTO ANW HOUSE.AL# 20 AND THE MULTITUDE COMETH TOGETHER AGAIN, SO THAT THEY COULD NOT SO MUCH AS EAT BREAD.L# 21 AND WHEN HIS FRIENDS HEARD OF IT, THEY WENT OUT TO LAY HOLD ON HIM: FOR! THEY SAID, HE IS BESIDE HIMSELF. L# 22 AND THE SCRIBES WHICH CAME DOWN FROM JERUSALEM SAID, HE HATH BEELZEBUB,7 AND BY THE PRINCE OF THE DEVILS CASTETH HE OUT DEVILS.AI# 23 AND HE CALLED THEM UNTO HIM, AND SAID UNTO THEM IN PARABLES, HOW CANN SATAN CAST OUT SATAN?K# 24 AND IF A KINGDOM BE DIVIDED AGAINST ITSELF, THAT KINGDOM CANNOT STAND.DG# 25 AND IF A HOUSE BE DIVIDED AGAINST ITSELF, THAT HOUSE CANNOT STAND. K# 26 AND IF SATAN RISE UP AGAINST HIMSELF, AND BE DIVIDED, HE CANNOT STAND,O BUT HATH AN END.AK# 27 NO MAN CAN ENTER INTO A STRONG MANS HOUSE, AND SPOIL HIS GOODS, EXCEPTEE HE WILL FIRST BIND THE STRONG MAN; AND THEN HE WILL SPOIL HIS HOUSE. L# 28 VERILY I SAY UNTO YOU, ALL SINS SHALL BE FORGIVEN UNTO THE SONS OF MEN,7 AND BLASPHEMIES WHEREWITH SOEVER THEY SHALL BLASPHEME: B# 29 BUT HE THAT SHALL BLASPHEME AGAINST THE HOLY GHOST HATH NEVER4 FORGIVENESS, BUT IS IN DANGER OF ETERNAL DAMNATION.2# 30 BECAUSE THEY SAID, HE HATH AN UNCLEAN SPIRIT.M# 31 THERE CAME THEN HIS BRETHREN AND HIS MOTHER, AND, STANDING WITHOUT, SENTO UNTO HIM, CALLING HIM. I# 32 AND THE MULTITUDE SAT ABOUT HIM, AND THEY SAID UNTO HIM, BEHOLD, THYI/ MOTHER AND THY BRETHREN WITHOUT SEEK FOR THEE. D# 33 AND HE ANSWERED THEM, SAYING, WHO IS MY MOTHER, OR MY BRETHREN?L# 34 AND HE LOOKED ROUND ABOUT ON THEM WHICH SAT ABOUT HIM, AND SAID, BEHOLD MY MOTHER AND MY BRETHREN!FK# 35 FOR WHOSOEVER SHALL DO THE WILL OF GOD, THE SAME IS MY BROTHER, AND MYE SISTER, AND MOTHER. = CHAPTER 4 L# 1 AND HE BEGAN AGAIN TO TEACH BY THE SEA SIDE: AND THERE WAS GATHERED UNTOK HIM A GREAT MULTITUDE, SO THAT HE ENTERED INTO A SHIP, AND SAT IN THE SEA;M4 AND THE WHOLE MULTITUDE WAS BY THE SEA ON THE LAND.I# 2 AND HE TAUGHT THEM MANY THINGS BY PARABLES, AND SAID UNTO THEM IN HISH DOCTRINE,3# 3 HEARKEN; BEHOLD, THERE WENT OUT A SOWER TO SOW: H# 4 AND IT CAME TO PASS, AS HE SOWED, SOME FELL BY THE WAY SIDE, AND THE* FOWLS OF THE AIR CAME AND DEVOURED IT UP.C# 5 AND SOME FELL ON STONY GROUND, WHERE IT HAD NOT MUCH EARTH; AND < IMMEDIATELY IT SPRANG00BA'AD%5%T6%! ! UP, BECAUSE IT HAD NO DEPTH OF EARTH:L# 6 BUT WHEN THE SUN WAS UP, IT WAS SCORCHED; AND BECAUSE IT HAD NO ROOT, IT WITHERED AWAY.SM# 7 AND SOME FELL AMONG THORNS, AND THE THORNS GREW UP, AND CHOKED IT, AND ITA YIELDED NO FRUIT.I# 8 AND OTHER FELL ON GOOD GROUND, AND DID YIELD FRUIT THAT SPRANG UP AND G INCREASED; AND BROUGHT FORTH, SOME THIRTY, AND SOME SIXTY, AND SOME ANO HUNDRED.AC# 9 AND HE SAID UNTO THEM, HE THAT HATH EARS TO HEAR, LET HIM HEAR.AM# 10 AND WHEN HE WAS ALONE, THEY THAT WERE ABOUT HIM WITH THE TWELVE ASKED OFA HIM THE PARABLE.TK# 11 AND HE SAID UNTO THEM, UNTO YOU IT IS GIVEN TO KNOW THE MYSTERY OF THEYM KINGDOM OF GOD: BUT UNTO THEM THAT ARE WITHOUT, ALL THESE THINGS ARE DONE INI PARABLES:K# 12 THAT SEEING THEY MAY SEE, AND NOT PERCEIVE; AND HEARING THEY MAY HEAR,GN AND NOT UNDERSTAND; LEST AT ANY TIME THEY SHOULD BE CONVERTED, AND THEIR SINS SHOULD BE FORGIVEN THEM.SJ# 13 AND HE SAID UNTO THEM, KNOW YE NOT THIS PARABLE? AND HOW THEN WILL YE KNOW ALL PARABLES?E# 14 THE SOWER SOWETH THE WORD.DI# 15 AND THESE ARE THEY BY THE WAY SIDE, WHERE THE WORD IS SOWN; BUT WHENTM THEY HAVE HEARD, SATAN COMETH IMMEDIATELY, AND TAKETH AWAY THE WORD THAT WASL SOWN IN THEIR HEARTS.J# 16 AND THESE ARE THEY LIKEWISE WHICH ARE SOWN ON STONY GROUND; WHO, WHEN@ THEY HAVE HEARD THE WORD, IMMEDIATELY RECEIVE IT WITH GLADNESS;M# 17 AND HAVE NO ROOT IN THEMSELVES, AND SO ENDURE BUT FOR A TIME: AFTERWARD,TL WHEN AFFLICTION OR PERSECUTION ARISETH FOR THE WORDS SAKE, IMMEDIATELY THEY ARE OFFENDED.K# 18 AND THESE ARE THEY WHICH ARE SOWN AMONG THORNS; SUCH AS HEAR THE WORD,SJ# 19 AND THE CARES OF THIS WORLD, AND THE DECEITFULNESS OF RICHES, AND THEC LUSTS OF OTHER THINGS ENTERING IN, CHOKE THE WORD, AND IT BECOMETHI UNFRUITFUL.M# 20 AND THESE ARE THEY WHICH ARE SOWN ON GOOD GROUND; SUCH AS HEAR THE WORD,IM AND RECEIVE IT, AND BRING FORTH FRUIT, SOME THIRTYFOLD, SOME SIXTY, AND SOMER AN HUNDRED.L# 21 AND HE SAID UNTO THEM, IS A CANDLE BROUGHT TO BE PUT UNDER A BUSHEL, OR1 UNDER A BED? AND NOT TO BE SET ON A CANDLESTICK?CM# 22 FOR THERE IS NOTHING HID, WHICH SHALL NOT BE MANIFESTED; NEITHER WAS ANYR3 THING KEPT SECRET, BUT THAT IT SHOULD COME ABROAD.O0# 23 IF ANY MAN HAVE EARS TO HEAR, LET HIM HEAR.H# 24 AND HE SAID UNTO THEM, TAKE HEED WHAT YE HEAR: WITH WHAT MEASURE YEH METE, IT SHALL BE MEASURED TO YOU: AND UNTO YOU THAT HEAR SHALL MORE BE GIVEN.FL# 25 FOR HE THAT HATH, TO HIM SHALL BE GIVEN: AND HE THAT HATH NOT, FROM HIM( SHALL BE TAKEN EVEN THAT WHICH HE HATH.M# 26 AND HE SAID, SO IS THE KINGDOM OF GOD, AS IF A MAN SHOULD CAST SEED INTOI THE GROUND;M# 27 AND SHOULD SLEEP, AND RISE NIGHT AND DAY, AND THE SEED SHOULD SPRING ANDM GROW UP, HE KNOWETH NOT HOW.EM# 28 FOR THE EARTH BRINGETH FORTH FRUIT OF HERSELF; FIRST THE BLADE, THEN THER* EAR, AFTER THAT THE FULL CORN IN THE EAR.G# 29 BUT WHEN THE FRUIT IS BROUGHT FORTH, IMMEDIATELY HE PUTTETH IN THEH% SICKLE, BECAUSE THE HARVEST IS COME. K# 30 AND HE SAID, WHEREUNTO SHALL WE LIKEN THE KINGDOM OF GOD? OR WITH WHATD COMPARISON SHALL WE COMPARE IT?M# 31 IT IS LIKE A GRAIN OF MUSTARD SEED, WHICH, WHEN IT IS SOWN IN THE EARTH,R1 IS LESS THAN ALL THE SEEDS THAT BE IN THE EARTH:M# 32 BUT WHEN IT IS SOWN, IT GROWETH UP, AND BECOMETH GREATER THAN ALL HERBS,EN AND SHOOTETH OUT GREAT BRANCHES; SO THAT THE FOWLS OF THE AIR MAY LODGE UNDER THE SHADOW OF IT.J# 33 AND WITH MANY SUCH PARABLES SPAKE HE THE WORD UNTO THEM, AS THEY WERE ABLE TO HEAR IT.AL# 34 BUT WITHOUT A PARABLE SPAKE HE NOT UNTO THEM: AND WHEN THEY WERE ALONE,* HE EXPOUNDED ALL THINGS TO HIS DISCIPLES.I# 35 AND THE SAME DAY, WHEN THE EVEN WAS COME, HE SAITH UNTO THEM, LET USA PASS OVER UNTO THE OTHER SIDE.RL# 36 AND WHEN THEY HAD SENT AWAY THE MULTITUDE, THEY TOOK HIM EVEN AS HE WAS> IN THE SHIP. AND THERE WERE ALSO WITH HIM OTHER LITTLE SHIPS.M# 37 AND THERE AROSE A GREAT STORM OF WIND, AND THE WAVES BEAT INTO THE SHIP,A SO THAT IT WAS NOW FULL.SL# 38 AND HE WAS IN THE HINDER PART OF THE SHIP, ASLEEP ON A PILLOW: AND THEYE AWAKE HIM, AND 00JA A<%X>%+%O-%TADATADATASAY UNTO HIM, MASTER, CAREST THOU NOT THAT WE PERISH?EI# 39 AND HE AROSE, AND REBUKED THE WIND, AND SAID UNTO THE SEA, PEACE, BEU8 STILL. AND THE WIND CEASED, AND THERE WAS A GREAT CALM.L# 40 AND HE SAID UNTO THEM, WHY ARE YE SO FEARFUL? HOW IS IT THAT YE HAVE NO FAITH?AM# 41 AND THEY FEARED EXCEEDINGLY, AND SAID ONE TO ANOTHER, WHAT MANNER OF MANN2 IS THIS, THAT EVEN THE WIND AND THE SEA OBEY HIM? = CHAPTER 5 N# 1 AND THEY CAME OVER UNTO THE OTHER SIDE OF THE SEA, INTO THE COUNTRY OF THE GADARENES. J# 2 AND WHEN HE WAS COME OUT OF THE SHIP, IMMEDIATELY THERE MET HIM OUT OF( THE TOMBS A MAN WITH AN UNCLEAN SPIRIT,L# 3 WHO HAD HIS DWELLING AMONG THE TOMBS; AND NO MAN COULD BIND HIM, NO, NOT WITH CHAINS:MI# 4 BECAUSE THAT HE HAD BEEN OFTEN BOUND WITH FETTERS AND CHAINS, AND THE J CHAINS HAD BEEN PLUCKED ASUNDER BY HIM, AND THE FETTERS BROKEN IN PIECES: NEITHER COULD ANY MAN TAME HIM.I# 5 AND ALWAYS, NIGHT AND DAY, HE WAS IN THE MOUNTAINS, AND IN THE TOMBS,,) CRYING, AND CUTTING HIMSELF WITH STONES. ># 6 BUT WHEN HE SAW JESUS AFAR OFF, HE RAN AND WORSHIPPED HIM,G# 7 AND CRIED WITH A LOUD VOICE, AND SAID, WHAT HAVE I TO DO WITH THEE,GN JESUS, THOU SON OF THE MOST HIGH GOD? I ADJURE THEE BY GOD, THAT THOU TORMENT ME NOT.C# 8 FOR HE SAID UNTO HIM, COME OUT OF THE MAN, THOU UNCLEAN SPIRIT.EK# 9 AND HE ASKED HIM, WHAT IS THY NAME? AND HE ANSWERED, SAYING, MY NAME ISA LEGION: FOR WE ARE MANY.LI# 10 AND HE BESOUGHT HIM MUCH THAT HE WOULD NOT SEND THEM AWAY OUT OF THEA COUNTRY.HF# 11 NOW THERE WAS THERE NIGH UNTO THE MOUNTAINS A GREAT HERD OF SWINE FEEDING.,M# 12 AND ALL THE DEVILS BESOUGHT HIM, SAYING, SEND US INTO THE SWINE, THAT WES MAY ENTER INTO THEM.TK# 13 AND FORTHWITH JESUS GAVE THEM LEAVE. AND THE UNCLEAN SPIRITS WENT OUT, J AND ENTERED INTO THE SWINE: AND THE HERD RAN VIOLENTLY DOWN A STEEP PLACEJ INTO THE SEA, (THEY WERE ABOUT TWO THOUSAND;) AND WERE CHOKED IN THE SEA.J# 14 AND THEY THAT FED THE SWINE FLED, AND TOLD IT IN THE CITY, AND IN THE= COUNTRY. AND THEY WENT OUT TO SEE WHAT IT WAS THAT WAS DONE.TK# 15 AND THEY COME TO JESUS, AND SEE HIM THAT WAS POSSESSED WITH THE DEVIL, J AND HAD THE LEGION, SITTING, AND CLOTHED, AND IN HIS RIGHT MIND: AND THEY WERE AFRAID.GK# 16 AND THEY THAT SAW IT TOLD THEM HOW IT BEFELL TO HIM THAT WAS POSSESSEDN/ WITH THE DEVIL, AND ALSO CONCERNING THE SWINE.># 17 AND THEY BEGAN TO PRAY HIM TO DEPART OUT OF THEIR COASTS.L# 18 AND WHEN HE WAS COME INTO THE SHIP, HE THAT HAD BEEN POSSESSED WITH THE, DEVIL PRAYED HIM THAT HE MIGHT BE WITH HIM.G# 19 HOWBEIT JESUS SUFFERED HIM NOT, BUT SAITH UNTO HIM, GO HOME TO THY N FRIENDS, AND TELL THEM HOW GREAT THINGS THE LORD HATH DONE FOR THEE, AND HATH HAD COMPASSION ON THEE.H# 20 AND HE DEPARTED, AND BEGAN TO PUBLISH IN DECAPOLIS HOW GREAT THINGS0 JESUS HAD DONE FOR HIM: AND ALL MEN DID MARVEL.K# 21 AND WHEN JESUS WAS PASSED OVER AGAIN BY SHIP UNTO THE OTHER SIDE, MUCHC8 PEOPLE GATHERED UNTO HIM: AND HE WAS NIGH UNTO THE SEA.L# 22 AND, BEHOLD, THERE COMETH ONE OF THE RULERS OF THE SYNAGOGUE, JAIRUS BY0 NAME; AND WHEN HE SAW HIM, HE FELL AT HIS FEET,L# 23 AND BESOUGHT HIM GREATLY, SAYING, MY LITTLE DAUGHTER LIETH AT THE POINTN OF DEATH: I PRAY THEE, COME AND LAY THY HANDS ON HER, THAT SHE MAY BE HEALED; AND SHE SHALL LIVE.M# 24 AND JESUS WENT WITH HIM; AND MUCH PEOPLE FOLLOWED HIM, AND THRONGED HIM.WC# 25 AND A CERTAIN WOMAN, WHICH HAD AN ISSUE OF BLOOD TWELVE YEARS,PL# 26 AND HAD SUFFERED MANY THINGS OF MANY PHYSICIANS, AND HAD SPENT ALL THAT: SHE HAD, AND WAS NOTHING BETTERED, BUT RATHER GREW WORSE,K# 27 WHEN SHE HAD HEARD OF JESUS, CAME IN THE PRESS BEHIND, AND TOUCHED HISS GARMENT.ID# 28 FOR SHE SAID, IF I MAY TOUCH BUT HIS CLOTHES, I SHALL BE WHOLE.L# 29 AND STRAIGHTWAY THE FOUNTAIN OF HER BLOOD WAS DRIED UP; AND SHE FELT IN- HER BODY THAT SHE WAS HEALED OF THAT PLAGUE. J# 30 AND JESUS, IMMEDIATELY KNOWING IN HIMSELF THAT VIRTUE HAD GONE OUT OFF HIM, TURNED HIM ABOUT IN THE PRESS, AND SAID, WHO TOUCHED MY CLOTHES?H# 31 AND HIS DISCIPLES SAID UNTO HIM, THOU SEEST THE M00RA'AD%5%T6%! !ULTITUDE THRONGING' THEE, AND SAYEST THOU, WHO TOUCHED ME?AC# 32 AND HE LOOKED ROUND ABOUT TO SEE HER THAT HAD DONE THIS THING.IL# 33 BUT THE WOMAN FEARING AND TREMBLING, KNOWING WHAT WAS DONE IN HER, CAME6 AND FELL DOWN BEFORE HIM, AND TOLD HIM ALL THE TRUTH.J# 34 AND HE SAID UNTO HER, DAUGHTER, THY FAITH HATH MADE THEE WHOLE; GO IN# PEACE, AND BE WHOLE OF THY PLAGUE. J# 35 WHILE HE YET SPAKE, THERE CAME FROM THE RULER OF THE SYNAGOGUES HOUSEL CERTAIN WHICH SAID, THY DAUGHTER IS DEAD: WHY TROUBLEST THOU THE MASTER ANY FURTHER?SM# 36 AS SOON AS JESUS HEARD THE WORD THAT WAS SPOKEN, HE SAITH UNTO THE RULERD/ OF THE SYNAGOGUE, BE NOT AFRAID, ONLY BELIEVE.DJ# 37 AND HE SUFFERED NO MAN TO FOLLOW HIM, SAVE PETER, AND JAMES, AND JOHN THE BROTHER OF JAMES.L# 38 AND HE COMETH TO THE HOUSE OF THE RULER OF THE SYNAGOGUE, AND SEETH THE/ TUMULT, AND THEM THAT WEPT AND WAILED GREATLY.EK# 39 AND WHEN HE WAS COME IN, HE SAITH UNTO THEM, WHY MAKE YE THIS ADO, ANDI, WEEP? THE DAMSEL IS NOT DEAD, BUT SLEEPETH.H# 40 AND THEY LAUGHED HIM TO SCORN. BUT WHEN HE HAD PUT THEM ALL OUT, HEM TAKETH THE FATHER AND THE MOTHER OF THE DAMSEL, AND THEM THAT WERE WITH HIM,L, AND ENTERETH IN WHERE THE DAMSEL WAS LYING.I# 41 AND HE TOOK THE DAMSEL BY THE HAND, AND SAID UNTO HER, TALITHA CUMI;O= WHICH IS, BEING INTERPRETED, DAMSEL, I SAY UNTO THEE, ARISE.L# 42 AND STRAIGHTWAY THE DAMSEL AROSE, AND WALKED; FOR SHE WAS OF THE AGE OFB TWELVE YEARS. AND THEY WERE ASTONISHED WITH A GREAT ASTONISHMENT.K# 43 AND HE CHARGED THEM STRAITLY THAT NO MAN SHOULD KNOW IT; AND COMMANDEDA+ THAT SOMETHING SHOULD BE GIVEN HER TO EAT.D = CHAPTER 6 G# 1 AND HE WENT OUT FROM THENCE, AND CAME INTO HIS OWN COUNTRY; AND HISM DISCIPLES FOLLOW HIM.J# 2 AND WHEN THE SABBATH DAY WAS COME, HE BEGAN TO TEACH IN THE SYNAGOGUE:N AND MANY HEARING HIM WERE ASTONISHED, SAYING, FROM WHENCE HATH THIS MAN THESEH THINGS? AND WHAT WISDOM IS THIS WHICH IS GIVEN UNTO HIM, THAT EVEN SUCH' MIGHTY WORKS ARE WROUGHT BY HIS HANDS?MI# 3 IS NOT THIS THE CARPENTER, THE SON OF MARY, THE BROTHER OF JAMES, ANDMN JOSES, AND OF JUDA, AND SIMON? AND ARE NOT HIS SISTERS HERE WITH US? AND THEY WERE OFFENDED AT HIM.J# 4 BUT JESUS, SAID UNTO THEM, A PROPHET IS NOT WITHOUT HONOUR, BUT IN HIS: OWN COUNTRY, AND AMONG HIS OWN KIN, AND IN HIS OWN HOUSE.L# 5 AND HE COULD THERE DO NO MIGHTY WORK, SAVE THAT HE LAID HIS HANDS UPON A FEW SICK FOLK, AND HEALED THEM.K# 6 AND HE MARVELLED BECAUSE OF THEIR UNBELIEF. AND HE WENT ROUND ABOUT THEH VILLAGES, TEACHING.J# 7 AND HE CALLED UNTO HIM THE TWELVE, AND BEGAN TO SEND THEM FORTH BY TWO3 AND TWO; AND GAVE THEM POWER OVER UNCLEAN SPIRITS;SL# 8 AND COMMANDED THEM THAT THEY SHOULD TAKE NOTHING FOR THEIR JOURNEY, SAVE; A STAFF ONLY; NO SCRIP, NO BREAD, NO MONEY IN THEIR PURSE: 7# 9 BUT BE SHOD WITH SANDALS; AND NOT PUT ON TWO COATS. H# 10 AND HE SAID UNTO THEM, IN WHAT PLACE SOEVER YE ENTER INTO AN HOUSE,, THERE ABIDE TILL YE DEPART FROM THAT PLACE.F# 11 AND WHOSOEVER SHALL NOT RECEIVE YOU, NOR HEAR YOU, WHEN YE DEPARTI THENCE, SHAKE OFF THE DUST UNDER YOUR FEET FOR A TESTIMONY AGAINST THEM.TL VERILY I SAY UNTO YOU, IT SHALL BE MORE TOLERABLE FOR SODOM AND GOMORRHA IN) THE DAY OF JUDGMENT, THAN FOR THAT CITY.A<# 12 AND THEY WENT OUT, AND PREACHED THAT MEN SHOULD REPENT.H# 13 AND THEY CAST OUT MANY DEVILS, AND ANOINTED WITH OIL MANY THAT WERE SICK, AND HEALED THEM.LJ# 14 AND KING HEROD HEARD OF HIM; (FOR HIS NAME WAS SPREAD ABROAD:) AND HEJ SAID, THAT JOHN THE BAPTIST WAS RISEN FROM THE DEAD, AND THEREFORE MIGHTY' WORKS DO SHEW FORTH THEMSELVES IN HIM.FM# 15 OTHERS SAID, THAT IT IS ELIAS. AND OTHERS SAID, THAT IT IS A PROPHET, ORL AS ONE OF THE PROPHETS.K# 16 BUT WHEN HEROD HEARD THEREOF, HE SAID, IT IS JOHN, WHOM I BEHEADED: HEN IS RISEN FROM THE DEAD.L# 17 FOR HEROD HIMSELF HAD SENT FORTH AND LAID HOLD UPON JOHN, AND BOUND HIMJ IN PRISON FOR HERODIAS SAKE, HIS BROTHER PHILIPS WIFE: FOR HE HAD MARRIED HER. H# 18 FOR JOHN HAD SAID UNTO HEROD, IT IS NOT LAWFUL FOR THEE TO HAVE THY BROTHERS WIFE. M# 19 THE00ZA A<%X>%+%O-%TADATADATAREFORE HERODIAS HAD A QUARREL AGAINST HIM, AND WOULD HAVE KILLED HIM;E BUT SHE COULD NOT:,K# 20 FOR HEROD FEARED JOHN, KNOWING THAT HE WAS A JUST MAN AND AN HOLY, ANDRG OBSERVED HIM; AND WHEN HE HEARD HIM, HE DID MANY THINGS, AND HEARD HIMD GLADLY.J# 21 AND WHEN A CONVENIENT DAY WAS COME, THAT HEROD ON HIS BIRTHDAY MADE AB SUPPER TO HIS LORDS, HIGH CAPTAINS, AND CHIEF ESTATES OF GALILEE;H# 22 AND WHEN THE DAUGHTER OF THE SAID HERODIAS CAME IN, AND DANCED, ANDM PLEASED HEROD AND THEM THAT SAT WITH HIM, THE KING SAID UNTO THE DAMSEL, ASKI5 OF ME WHATSOEVER THOU WILT, AND I WILL GIVE IT THEE. K# 23 AND HE SWARE UNTO HER, WHATSOEVER THOU SHALT ASK OF ME, I WILL GIVE ITO# THEE, UNTO THE HALF OF MY KINGDOM.EL# 24 AND SHE WENT FORTH, AND SAID UNTO HER MOTHER, WHAT SHALL I ASK? AND SHE$ SAID, THE HEAD OF JOHN THE BAPTIST.M# 25 AND SHE CAME IN STRAIGHTWAY WITH HASTE UNTO THE KING, AND ASKED, SAYING,DN I WILL THAT THOU GIVE ME BY AND BY IN A CHARGER THE HEAD OF JOHN THE BAPTIST.L# 26 AND THE KING WAS EXCEEDING SORRY; YET FOR HIS OATHS SAKE, AND FOR THEIR3 SAKES WHICH SAT WITH HIM, HE WOULD NOT REJECT HER.HL# 27 AND IMMEDIATELY THE KING SENT AN EXECUTIONER, AND COMMANDED HIS HEAD TO8 BE BROUGHT: AND HE WENT AND BEHEADED HIM IN THE PRISON,J# 28 AND BROUGHT HIS HEAD IN A CHARGER, AND GAVE IT TO THE DAMSEL: AND THE DAMSEL GAVE IT TO HER MOTHER.J# 29 AND WHEN HIS DISCIPLES HEARD OF IT, THEY CAME AND TOOK UP HIS CORPSE, AND LAID IT IN A TOMB.AK# 30 AND THE APOSTLES GATHERED THEMSELVES TOGETHER UNTO JESUS, AND TOLD HIMT? ALL THINGS, BOTH WHAT THEY HAD DONE, AND WHAT THEY HAD TAUGHT. M# 31 AND HE SAID UNTO THEM, COME YE YOURSELVES APART INTO A DESERT PLACE, ANDCL REST A WHILE: FOR THERE WERE MANY COMING AND GOING, AND THEY HAD NO LEISURE SO MUCH AS TO EAT.S=# 32 AND THEY DEPARTED INTO A DESERT PLACE BY SHIP PRIVATELY. H# 33 AND THE PEOPLE SAW THEM DEPARTING, AND MANY KNEW HIM, AND RAN AFOOTI THITHER OUT OF ALL CITIES, AND OUTWENT THEM, AND CAME TOGETHER UNTO HIM.AE# 34 AND JESUS, WHEN HE CAME OUT, SAW MUCH PEOPLE, AND WAS MOVED WITH N COMPASSION TOWARD THEM, BECAUSE THEY WERE AS SHEEP NOT HAVING A SHEPHERD: AND$ HE BEGAN TO TEACH THEM MANY THINGS.I# 35 AND WHEN THE DAY WAS NOW FAR SPENT, HIS DISCIPLES CAME UNTO HIM, AND > SAID, THIS IS A DESERT PLACE, AND NOW THE TIME IS FAR PASSED:L# 36 SEND THEM AWAY, THAT THEY MAY GO INTO THE COUNTRY ROUND ABOUT, AND INTOF THE VILLAGES, AND BUY THEMSELVES BREAD: FOR THEY HAVE NOTHING TO EAT.K# 37 HE ANSWERED AND SAID UNTO THEM, GIVE YE THEM TO EAT. AND THEY SAY UNTOPK HIM, SHALL WE GO AND BUY TWO HUNDRED PENNYWORTH OF BREAD, AND GIVE THEM TOE EAT?AK# 38 HE SAITH UNTO THEM, HOW MANY LOAVES HAVE YE? GO AND SEE. AND WHEN THEY & KNEW, THEY SAY, FIVE, AND TWO FISHES.K# 39 AND HE COMMANDED THEM TO MAKE ALL SIT DOWN BY COMPANIES UPON THE GREENE GRASS.S=# 40 AND THEY SAT DOWN IN RANKS, BY HUNDREDS, AND BY FIFTIES.NK# 41 AND WHEN HE HAD TAKEN THE FIVE LOAVES AND THE TWO FISHES, HE LOOKED UP.M TO HEAVEN, AND BLESSED, AND BRAKE THE LOAVES, AND GAVE THEM TO HIS DISCIPLESB TO SET BEFORE THEM; AND THE TWO FISHES DIVIDED HE AMONG THEM ALL.+# 42 AND THEY DID ALL EAT, AND WERE FILLED.WF# 43 AND THEY TOOK UP TWELVE BASKETS FULL OF THE FRAGMENTS, AND OF THE FISHES.F# 44 AND THEY THAT DID EAT OF THE LOAVES WERE ABOUT FIVE THOUSAND MEN.K# 45 AND STRAIGHTWAY HE CONSTRAINED HIS DISCIPLES TO GET INTO THE SHIP, ANDFN TO GO TO THE OTHER SIDE BEFORE UNTO BETHSAIDA, WHILE HE SENT AWAY THE PEOPLE.I# 46 AND WHEN HE HAD SENT THEM AWAY, HE DEPARTED INTO A MOUNTAIN TO PRAY. I# 47 AND WHEN EVEN WAS COME, THE SHIP WAS IN THE MIDST OF THE SEA, AND HEL ALONE ON THE LAND. L# 48 AND HE SAW THEM TOILING IN ROWING; FOR THE WIND WAS CONTRARY UNTO THEM:N AND ABOUT THE FOURTH WATCH OF THE NIGHT HE COMETH UNTO THEM, WALKING UPON THE$ SEA, AND WOULD HAVE PASSED BY THEM.L# 49 BUT WHEN THEY SAW HIM WALKING UPON THE SEA, THEY SUPPOSED IT HAD BEEN A SPIRIT, AND CRIED OUT:TL# 50 FOR THEY ALL SAW HIM, AND WERE TROUBLED. AND IMMEDIATELY HE TALKED WITHE THEM, AND SAITH UNTO THEM, 00bA'AD%5%T6%! !BE OF GOOD CHEER: IT IS I; BE NOT AFRAID.SJ# 51 AND HE WENT UP UNTO THEM INTO THE SHIP; AND THE WIND CEASED: AND THEY= WERE SORE AMAZED IN THEMSELVES BEYOND MEASURE, AND WONDERED.:K# 52 FOR THEY CONSIDERED NOT THE MIRACLE OF THE LOAVES: FOR THEIR HEART WAST HARDENED.J# 53 AND WHEN THEY HAD PASSED OVER, THEY CAME INTO THE LAND OF GENNESARET, AND DREW TO THE SHORE.EH# 54 AND WHEN THEY WERE COME OUT OF THE SHIP, STRAIGHTWAY THEY KNEW HIM,L# 55 AND RAN THROUGH THAT WHOLE REGION ROUND ABOUT, AND BEGAN TO CARRY ABOUT7 IN BEDS THOSE THAT WERE SICK, WHERE THEY HEARD HE WAS.EM# 56 AND WHITHERSOEVER HE ENTERED, INTO VILLAGES, OR CITIES, OR COUNTRY, THEY K LAID THE SICK IN THE STREETS, AND BESOUGHT HIM THAT THEY MIGHT TOUCH IF ITHI WERE BUT THE BORDER OF HIS GARMENT: AND AS MANY AS TOUCHED HIM WERE MADEV WHOLE.C = CHAPTER 7 J# 1 THEN CAME TOGETHER UNTO HIM THE PHARISEES, AND CERTAIN OF THE SCRIBES, WHICH CAME FROM JERUSALEM.HK# 2 AND WHEN THEY SAW SOME OF HIS DISCIPLES EAT BREAD WITH DEFILED, THAT ISO0 TO SAY, WITH UNWASHEN, HANDS, THEY FOUND FAULT.J# 3 FOR THE PHARISEES, AND ALL THE JEWS, EXCEPT THEY WASH THEIR HANDS OFT,. EAT NOT, HOLDING THE TRADITION OF THE ELDERS.K# 4 AND WHEN THEY COME FROM THE MARKET, EXCEPT THEY WASH, THEY EAT NOT. ANDOM MANY OTHER THINGS THERE BE, WHICH THEY HAVE RECEIVED TO HOLD, AS THE WASHING 2 OF CUPS, AND POTS, BRASEN VESSELS, AND OF TABLES.H# 5 THEN THE PHARISEES AND SCRIBES ASKED HIM, WHY WALK NOT THY DISCIPLESM ACCORDING TO THE TRADITION OF THE ELDERS, BUT EAT BREAD WITH UNWASHEN HANDS? F# 6 HE ANSWERED AND SAID UNTO THEM, WELL HATH ESAIAS PROPHESIED OF YOUL HYPOCRITES, AS IT IS WRITTEN, THIS PEOPLE HONOURETH ME WITH THEIR LIPS, BUT THEIR HEART IS FAR FROM ME.B# 7 HOWBEIT IN VAIN DO THEY WORSHIP ME, TEACHING FOR DOCTRINES THE COMMANDMENTS OF MEN.EM# 8 FOR LAYING ASIDE THE COMMANDMENT OF GOD, YE HOLD THE TRADITION OF MEN, ASTE THE WASHING OF POTS AND CUPS: AND MANY OTHER SUCH LIKE THINGS YE DO.DK# 9 AND HE SAID UNTO THEM, FULL WELL YE REJECT THE COMMANDMENT OF GOD, THATH YE MAY KEEP YOUR OWN TRADITION.I# 10 FOR MOSES SAID, HONOUR THY FATHER AND THY MOTHER; AND, WHOSO CURSETHT) FATHER OR MOTHER, LET HIM DIE THE DEATH:PJ# 11 BUT YE SAY, IF A MAN SHALL SAY TO HIS FATHER OR MOTHER, IT IS CORBAN,J THAT IS TO SAY, A GIFT, BY WHATSOEVER THOU MIGHTEST BE PROFITED BY ME; HE SHALL BE FREE. H# 12 AND YE SUFFER HIM NO MORE TO DO OUGHT FOR HIS FATHER OR HIS MOTHER;K# 13 MAKING THE WORD OF GOD OF NONE EFFECT THROUGH YOUR TRADITION, WHICH YE 1 HAVE DELIVERED: AND MANY SUCH LIKE THINGS DO YE.YG# 14 AND WHEN HE HAD CALLED ALL THE PEOPLE UNTO HIM, HE SAID UNTO THEM,;2 HEARKEN UNTO ME EVERY ONE OF YOU, AND UNDERSTAND:K# 15 THERE IS NOTHING FROM WITHOUT A MAN, THAT ENTERING INTO HIM CAN DEFILE J HIM: BUT THE THINGS WHICH COME OUT OF HIM, THOSE ARE THEY THAT DEFILE THE MAN. 0# 16 IF ANY MAN HAVE EARS TO HEAR, LET HIM HEAR.J# 17 AND WHEN HE WAS ENTERED INTO THE HOUSE FROM THE PEOPLE, HIS DISCIPLES" ASKED HIM CONCERNING THE PARABLE.L# 18 AND HE SAITH UNTO THEM, ARE YE SO WITHOUT UNDERSTANDING ALSO? DO YE NOTN PERCEIVE, THAT WHATSOEVER THING FROM WITHOUT ENTERETH INTO THE MAN, IT CANNOT DEFILE HIM;J# 19 BECAUSE IT ENTERETH NOT INTO HIS HEART, BUT INTO THE BELLY, AND GOETH) OUT INTO THE DRAUGHT, PURGING ALL MEATS?IJ# 20 AND HE SAID, THAT WHICH COMETH OUT OF THE MAN, THAT DEFILETH THE MAN.E# 21 FOR FROM WITHIN, OUT OF THE HEART OF MEN, PROCEED EVIL THOUGHTS, # ADULTERIES, FORNICATIONS, MURDERS,K# 22 THEFTS, COVETOUSNESS, WICKEDNESS, DECEIT, LASCIVIOUSNESS, AN EVIL EYE,T BLASPHEMY, PRIDE, FOOLISHNESS:T@# 23 ALL THESE EVIL THINGS COME FROM WITHIN, AND DEFILE THE MAN.K# 24 AND FROM THENCE HE AROSE, AND WENT INTO THE BORDERS OF TYRE AND SIDON,TN AND ENTERED INTO AN HOUSE, AND WOULD HAVE NO MAN KNOW IT: BUT HE COULD NOT BE HID.DK# 25 FOR A CERTAIN WOMAN, WHOSE YOUNG DAUGHTER HAD AN UNCLEAN SPIRIT, HEARDH' OF HIM, AND CAME AND FELL AT HIS FEET: K# 26 THE WOMAN WAS A GREEK, A SYROPHENICIAN BY NATION; AND SHE BESOUGHT HIMW8 THAT HE WOULD CAST FORTH THE 00jA A<%X>%+%O-%TADATADATADEVIL OUT OF HER DAUGHTER.M# 27 BUT JESUS SAID UNTO HER, LET THE CHILDREN FIRST BE FILLED: FOR IT IS NOTL@ MEET TO TAKE THE CHILDRENS BREAD, AND TO CAST IT UNTO THE DOGS.J# 28 AND SHE ANSWERED AND SAID UNTO HIM, YES, LORD: YET THE DOGS UNDER THE# TABLE EAT OF THE CHILDRENS CRUMBS. L# 29 AND HE SAID UNTO HER, FOR THIS SAYING GO THY WAY; THE DEVIL IS GONE OUT OF THY DAUGHTER. J# 30 AND WHEN SHE WAS COME TO HER HOUSE, SHE FOUND THE DEVIL GONE OUT, AND HER DAUGHTER LAID UPON THE BED.M# 31 AND AGAIN, DEPARTING FROM THE COASTS OF TYRE AND SIDON, HE CAME UNTO THE > SEA OF GALILEE, THROUGH THE MIDST OF THE COASTS OF DECAPOLIS.L# 32 AND THEY BRING UNTO HIM ONE THAT WAS DEAF, AND HAD AN IMPEDIMENT IN HIS7 SPEECH; AND THEY BESEECH HIM TO PUT HIS HAND UPON HIM.OK# 33 AND HE TOOK HIM ASIDE FROM THE MULTITUDE, AND PUT HIS FINGERS INTO HISA+ EARS, AND HE SPIT, AND TOUCHED HIS TONGUE;M# 34 AND LOOKING UP TO HEAVEN, HE SIGHED, AND SAITH UNTO HIM, EPHPHATHA, THATR IS, BE OPENED.OK# 35 AND STRAIGHTWAY HIS EARS WERE OPENED, AND THE STRING OF HIS TONGUE WASA LOOSED, AND HE SPAKE PLAIN.F# 36 AND HE CHARGED THEM THAT THEY SHOULD TELL NO MAN: BUT THE MORE HE? CHARGED THEM, SO MUCH THE MORE A GREAT DEAL THEY PUBLISHED IT;DH# 37 AND WERE BEYOND MEASURE ASTONISHED, SAYING, HE HATH DONE ALL THINGS> WELL: HE MAKETH BOTH THE DEAF TO HEAR, AND THE DUMB TO SPEAK. = CHAPTER 8 L# 1 IN THOSE DAYS THE MULTITUDE BEING VERY GREAT, AND HAVING NOTHING TO EAT,: JESUS CALLED HIS DISCIPLES UNTO HIM, AND SAITH UNTO THEM,J# 2 I HAVE COMPASSION ON THE MULTITUDE, BECAUSE THEY HAVE NOW BEEN WITH ME% THREE DAYS, AND HAVE NOTHING TO EAT: K# 3 AND IF I SEND THEM AWAY FASTING TO THEIR OWN HOUSES, THEY WILL FAINT BYR+ THE WAY: FOR DIVERS OF THEM CAME FROM FAR.EK# 4 AND HIS DISCIPLES ANSWERED HIM, FROM WHENCE CAN A MAN SATISFY THESE MENT# WITH BREAD HERE IN THE WILDERNESS?PE# 5 AND HE ASKED THEM, HOW MANY LOAVES HAVE YE? AND THEY SAID, SEVEN.NJ# 6 AND HE COMMANDED THE PEOPLE TO SIT DOWN ON THE GROUND: AND HE TOOK THEK SEVEN LOAVES, AND GAVE THANKS, AND BRAKE, AND GAVE TO HIS DISCIPLES TO SETW6 BEFORE THEM; AND THEY DID SET THEM BEFORE THE PEOPLE.I# 7 AND THEY HAD A FEW SMALL FISHES: AND HE BLESSED, AND COMMANDED TO SETW THEM ALSO BEFORE THEM.MI# 8 SO THEY DID EAT, AND WERE FILLED: AND THEY TOOK UP OF THE BROKEN MEATI THAT WAS LEFT SEVEN BASKETS.EL# 9 AND THEY THAT HAD EATEN WERE ABOUT FOUR THOUSAND: AND HE SENT THEM AWAY.M# 10 AND STRAIGHTWAY HE ENTERED INTO A SHIP WITH HIS DISCIPLES, AND CAME INTOH THE PARTS OF DALMANUTHA.AM# 11 AND THE PHARISEES CAME FORTH, AND BEGAN TO QUESTION WITH HIM, SEEKING OF & HIM A SIGN FROM HEAVEN, TEMPTING HIM.L# 12 AND HE SIGHED DEEPLY IN HIS SPIRIT, AND SAITH, WHY DOTH THIS GENERATIONL SEEK AFTER A SIGN? VERILY I SAY UNTO YOU, THERE SHALL NO SIGN BE GIVEN UNTO THIS GENERATION.M# 13 AND HE LEFT THEM, AND ENTERING INTO THE SHIP AGAIN DEPARTED TO THE OTHERU SIDE.K# 14 NOW THE DISCIPLES HAD FORGOTTEN TO TAKE BREAD, NEITHER HAD THEY IN THES# SHIP WITH THEM MORE THAN ONE LOAF. H# 15 AND HE CHARGED THEM, SAYING, TAKE HEED, BEWARE OF THE LEAVEN OF THE' PHARISEES, AND OF THE LEAVEN OF HEROD.EI# 16 AND THEY REASONED AMONG THEMSELVES, SAYING, IT IS BECAUSE WE HAVE NOO BREAD.EJ# 17 AND WHEN JESUS KNEW IT, HE SAITH UNTO THEM, WHY REASON YE, BECAUSE YEK HAVE NO BREAD? PERCEIVE YE NOT YET, NEITHER UNDERSTAND? HAVE YE YOUR HEARTS YET HARDENED?I# 18 HAVING EYES, SEE YE NOT? AND HAVING EARS, HEAR YE NOT? AND DO YE NOTD REMEMBER?L# 19 WHEN I BRAKE THE FIVE LOAVES AMONG FIVE THOUSAND, HOW MANY BASKETS FULL4 OF FRAGMENTS TOOK YE UP? THEY SAY UNTO HIM, TWELVE.E# 20 AND WHEN THE SEVEN AMONG FOUR THOUSAND, HOW MANY BASKETS FULL OFS, FRAGMENTS TOOK YE UP? AND THEY SAID, SEVEN.@# 21 AND HE SAID UNTO THEM, HOW IS IT THAT YE DO NOT UNDERSTAND?I# 22 AND HE COMETH TO BETHSAIDA; AND THEY BRING A BLIND MAN UNTO HIM, ANDV BESOUGHT HIM TO TOUCH HIM.EL# 23 AND HE TOOK THE BLIND MAN BY THE HAND, AND LED HIM OUT OF THE TOWN; ANDM WHEN HE HAD SPIT ON HIS EYES, AND PUT HIS HANDS UPON HIM, HE ASKED 00rA'AD%5%T6%! !HIM IF HEA SAW OUGHT.O=# 24 AND HE LOOKED UP, AND SAID, I SEE MEN AS TREES, WALKING.EK# 25 AFTER THAT HE PUT HIS HANDS AGAIN UPON HIS EYES, AND MADE HIM LOOK UP:E0 AND HE WAS RESTORED, AND SAW EVERY MAN CLEARLY.M# 26 AND HE SENT HIM AWAY TO HIS HOUSE, SAYING, NEITHER GO INTO THE TOWN, NORD TELL IT TO ANY IN THE TOWN.F# 27 AND JESUS WENT OUT, AND HIS DISCIPLES, INTO THE TOWNS OF CAESAREAK PHILIPPI: AND BY THE WAY HE ASKED HIS DISCIPLES, SAYING UNTO THEM, WHOM DOA MEN SAY THAT I AM? J# 28 AND THEY ANSWERED, JOHN THE BAPTIST; BUT SOME SAY, ELIAS; AND OTHERS, ONE OF THE PROPHETS.GK# 29 AND HE SAITH UNTO THEM, BUT WHOM SAY YE THAT I AM? AND PETER ANSWERETHP) AND SAITH UNTO HIM, THOU ART THE CHRIST. =# 30 AND HE CHARGED THEM THAT THEY SHOULD TELL NO MAN OF HIM.EM# 31 AND HE BEGAN TO TEACH THEM, THAT THE SON OF MAN MUST SUFFER MANY THINGS,,M AND BE REJECTED OF THE ELDERS, AND OF THE CHIEF PRIESTS, AND SCRIBES, AND BEK) KILLED, AND AFTER THREE DAYS RISE AGAIN.AM# 32 AND HE SPAKE THAT SAYING OPENLY. AND PETER TOOK HIM, AND BEGAN TO REBUKE  HIM.AI# 33 BUT WHEN HE HAD TURNED ABOUT AND LOOKED ON HIS DISCIPLES, HE REBUKEDAL PETER, SAYING, GET THEE BEHIND ME, SATAN: FOR THOU SAVOUREST NOT THE THINGS/ THAT BE OF GOD, BUT THE THINGS THAT BE OF MEN.LK# 34 AND WHEN HE HAD CALLED THE PEOPLE UNTO HIM WITH HIS DISCIPLES ALSO, HEUM SAID UNTO THEM, WHOSOEVER WILL COME AFTER ME, LET HIM DENY HIMSELF, AND TAKEN UP HIS CROSS, AND FOLLOW ME.DM# 35 FOR WHOSOEVER WILL SAVE HIS LIFE SHALL LOSE IT; BUT WHOSOEVER SHALL LOSE > HIS LIFE FOR MY SAKE AND THE GOSPELS, THE SAME SHALL SAVE IT.J# 36 FOR WHAT SHALL IT PROFIT A MAN, IF HE SHALL GAIN THE WHOLE WORLD, AND LOSE HIS OWN SOUL?R7# 37 OR WHAT SHALL A MAN GIVE IN EXCHANGE FOR HIS SOUL?TG# 38 WHOSOEVER THEREFORE SHALL BE ASHAMED OF ME AND OF MY WORDS IN THISIF ADULTEROUS AND SINFUL GENERATION; OF HIM ALSO SHALL THE SON OF MAN BEI ASHAMED, WHEN HE COMETH IN THE GLORY OF HIS FATHER WITH THE HOLY ANGELS.R = CHAPTER 9 L# 1 AND HE SAID UNTO THEM, VERILY I SAY UNTO YOU, THAT THERE BE SOME OF THEMI THAT STAND HERE, WHICH SHALL NOT TASTE OF DEATH, TILL THEY HAVE SEEN THE KINGDOM OF GOD COME WITH POWER.L# 2 AND AFTER SIX DAYS JESUS TAKETH WITH HIM PETER, AND JAMES, AND JOHN, ANDF LEADETH THEM UP INTO AN HIGH MOUNTAIN APART BY THEMSELVES: AND HE WAS TRANSFIGURED BEFORE THEM.L# 3 AND HIS RAIMENT BECAME SHINING, EXCEEDING WHITE AS SNOW; SO AS NO FULLER ON EARTH CAN WHITE THEM.TM# 4 AND THERE APPEARED UNTO THEM ELIAS WITH MOSES: AND THEY WERE TALKING WITHA JESUS.UI# 5 AND PETER ANSWERED AND SAID TO JESUS, MASTER, IT IS GOOD FOR US TO BEAN HERE: AND LET US MAKE THREE TABERNACLES; ONE FOR THEE, AND ONE FOR MOSES, AND ONE FOR ELIAS.T;# 6 FOR HE WIST NOT WHAT TO SAY; FOR THEY WERE SORE AFRAID.IM# 7 AND THERE WAS A CLOUD THAT OVERSHADOWED THEM: AND A VOICE CAME OUT OF THE.1 CLOUD, SAYING, THIS IS MY BELOVED SON: HEAR HIM.TM# 8 AND SUDDENLY, WHEN THEY HAD LOOKED ROUND ABOUT, THEY SAW NO MAN ANY MORE,U! SAVE JESUS ONLY WITH THEMSELVES. M# 9 AND AS THEY CAME DOWN FROM THE MOUNTAIN, HE CHARGED THEM THAT THEY SHOULD K TELL NO MAN WHAT THINGS THEY HAD SEEN, TILL THE SON OF MAN WERE RISEN FROMH THE DEAD.L# 10 AND THEY KEPT THAT SAYING WITH THEMSELVES, QUESTIONING ONE WITH ANOTHER+ WHAT THE RISING FROM THE DEAD SHOULD MEAN.HJ# 11 AND THEY ASKED HIM, SAYING, WHY SAY THE SCRIBES THAT ELIAS MUST FIRST COME?L# 12 AND HE ANSWERED AND TOLD THEM, ELIAS VERILY COMETH FIRST, AND RESTORETHN ALL THINGS; AND HOW IT IS WRITTEN OF THE SON OF MAN, THAT HE MUST SUFFER MANY THINGS, AND BE SET AT NOUGHT.K# 13 BUT I SAY UNTO YOU, THAT ELIAS IS INDEED COME, AND THEY HAVE DONE UNTON5 HIM WHATSOEVER THEY LISTED, AS IT IS WRITTEN OF HIM.TL# 14 AND WHEN HE CAME TO HIS DISCIPLES, HE SAW A GREAT MULTITUDE ABOUT THEM,' AND THE SCRIBES QUESTIONING WITH THEM. G# 15 AND STRAIGHTWAY ALL THE PEOPLE, WHEN THEY BEHELD HIM, WERE GREATLY2( AMAZED, AND RUNNING TO HIM SALUTED HIM.:# 16 AND HE ASKED THE SCRIBES, WHAT QUESTION YE WITH THEM?L# 17 AND ONE OF THE MULTITUDE ANSWERED AND S00zA A<%X>%+%O-%TADATADATAAID, MASTER, I HAVE BROUGHT UNTO' THEE MY SON, WHICH HATH A DUMB SPIRIT; G# 18 AND WHERESOEVER HE TAKETH HIM, HE TEARETH HIM: AND HE FOAMETH, AND L GNASHETH WITH HIS TEETH, AND PINETH AWAY: AND I SPAKE TO THY DISCIPLES THAT. THEY SHOULD CAST HIM OUT; AND THEY COULD NOT.L# 19 HE ANSWERED HIM, AND SAITH, O FAITHLESS GENERATION, HOW LONG SHALL I BE: WITH YOU? HOW LONG SHALL I SUFFER YOU? BRING HIM UNTO ME.H# 20 AND THEY BROUGHT HIM UNTO HIM: AND WHEN HE SAW HIM, STRAIGHTWAY THEB SPIRIT TARE HIM; AND HE FELL ON THE GROUND, AND WALLOWED FOAMING.J# 21 AND HE ASKED HIS FATHER, HOW LONG IS IT AGO SINCE THIS CAME UNTO HIM? AND HE SAID, OF A CHILD.NI# 22 AND OFTTIMES IT HATH CAST HIM INTO THE FIRE, AND INTO THE WATERS, TO M DESTROY HIM: BUT IF THOU CANST DO ANY THING, HAVE COMPASSION ON US, AND HELP  US.K# 23 JESUS SAID UNTO HIM, IF THOU CANST BELIEVE, ALL THINGS ARE POSSIBLE TOF HIM THAT BELIEVETH.L# 24 AND STRAIGHTWAY THE FATHER OF THE CHILD CRIED OUT, AND SAID WITH TEARS,* LORD, I BELIEVE; HELP THOU MINE UNBELIEF.I# 25 WHEN JESUS SAW THAT THE PEOPLE CAME RUNNING TOGETHER, HE REBUKED THESM FOUL SPIRIT, SAYING UNTO HIM, THOU DUMB AND DEAF SPIRIT, I CHARGE THEE, COME ( OUT OF HIM, AND ENTER NO MORE INTO HIM.M# 26 AND THE SPIRIT CRIED, AND RENT HIM SORE, AND CAME OUT OF HIM: AND HE WASD2 AS ONE DEAD; INSOMUCH THAT MANY SAID, HE IS DEAD.E# 27 BUT JESUS TOOK HIM BY THE HAND, AND LIFTED HIM UP; AND HE AROSE.SL# 28 AND WHEN HE WAS COME INTO THE HOUSE, HIS DISCIPLES ASKED HIM PRIVATELY, WHY COULD NOT WE CAST HIM OUT?G# 29 AND HE SAID UNTO THEM, THIS KIND CAN COME FORTH BY NOTHING, BUT BYS PRAYER AND FASTING.K# 30 AND THEY DEPARTED THENCE, AND PASSED THROUGH GALILEE; AND HE WOULD NOTE THAT ANY MAN SHOULD KNOW IT.DG# 31 FOR HE TAUGHT HIS DISCIPLES, AND SAID UNTO THEM, THE SON OF MAN ISAL DELIVERED INTO THE HANDS OF MEN, AND THEY SHALL KILL HIM; AND AFTER THAT HE( IS KILLED, HE SHALL RISE THE THIRD DAY.E# 32 BUT THEY UNDERSTOOD NOT THAT SAYING, AND WERE AFRAID TO ASK HIM.VM# 33 AND HE CAME TO CAPERNAUM: AND BEING IN THE HOUSE HE ASKED THEM, WHAT WAS 1 IT THAT YE DISPUTED AMONG YOURSELVES BY THE WAY?TF# 34 BUT THEY HELD THEIR PEACE: FOR BY THE WAY THEY HAD DISPUTED AMONG( THEMSELVES, WHO SHOULD BE THE GREATEST.L# 35 AND HE SAT DOWN, AND CALLED THE TWELVE, AND SAITH UNTO THEM, IF ANY MANG DESIRE TO BE FIRST, THE SAME SHALL BE LAST OF ALL, AND SERVANT OF ALL.EK# 36 AND HE TOOK A CHILD, AND SET HIM IN THE MIDST OF THEM: AND WHEN HE HAD * TAKEN HIM IN HIS ARMS, HE SAID UNTO THEM,K# 37 WHOSOEVER SHALL RECEIVE ONE OF SUCH CHILDREN IN MY NAME, RECEIVETH ME: H AND WHOSOEVER SHALL RECEIVE ME, RECEIVETH NOT ME, BUT HIM THAT SENT ME.L# 38 AND JOHN ANSWERED HIM, SAYING, MASTER, WE SAW ONE CASTING OUT DEVILS INK THY NAME, AND HE FOLLOWETH NOT US: AND WE FORBAD HIM, BECAUSE HE FOLLOWETHF NOT US.I# 39 BUT JESUS SAID, FORBID HIM NOT: FOR THERE IS NO MAN WHICH SHALL DO A 7 MIRACLE IN MY NAME, THAT CAN LIGHTLY SPEAK EVIL OF ME. 2# 40 FOR HE THAT IS NOT AGAINST US IS ON OUR PART.M# 41 FOR WHOSOEVER SHALL GIVE YOU A CUP OF WATER TO DRINK IN MY NAME, BECAUSETJ YE BELONG TO CHRIST, VERILY I SAY UNTO YOU, HE SHALL NOT LOSE HIS REWARD.L# 42 AND WHOSOEVER SHALL OFFEND ONE OF THESE LITTLE ONES THAT BELIEVE IN ME,N IT IS BETTER FOR HIM THAT A MILLSTONE WERE HANGED ABOUT HIS NECK, AND HE WERE CAST INTO THE SEA.TL# 43 AND IF THY HAND OFFEND THEE, CUT IT OFF: IT IS BETTER FOR THEE TO ENTERL INTO LIFE MAIMED, THAN HAVING TWO HANDS TO GO INTO HELL, INTO THE FIRE THAT NEVER SHALL BE QUENCHED:F># 44 WHERE THEIR WORM DIETH NOT, AND THE FIRE IS NOT QUENCHED.L# 45 AND IF THY FOOT OFFEND THEE, CUT IT OFF: IT IS BETTER FOR THEE TO ENTERN HALT INTO LIFE, THAN HAVING TWO FEET TO BE CAST INTO HELL, INTO THE FIRE THAT NEVER SHALL BE QUENCHED: ># 46 WHERE THEIR WORM DIETH NOT, AND THE FIRE IS NOT QUENCHED.I# 47 AND IF THINE EYE OFFEND THEE, PLUCK IT OUT: IT IS BETTER FOR THEE TOFL ENTER INTO THE KINGDOM OF GOD WITH ONE EYE, THAN HAVING TWO EYES TO BE CAST INTO HELL FIRE:># 48 WHERE THEIR WORM DIETH NOT, AND00A'AD%5%T6%! ! THE FIRE IS NOT QUENCHED.J# 49 FOR EVERY ONE SHALL BE SALTED WITH FIRE, AND EVERY SACRIFICE SHALL BE SALTED WITH SALT.L# 50 SALT IS GOOD: BUT IF THE SALT HAVE LOST HIS SALTNESS, WHEREWITH WILL YEE SEASON IT? HAVE SALT IN YOURSELVES, AND HAVE PEACE ONE WITH ANOTHER., = CHAPTER 10 SI# 1 AND HE AROSE FROM THENCE, AND COMETH INTO THE COASTS OF JUDAEA BY THEEM FARTHER SIDE OF JORDAN: AND THE PEOPLE RESORT UNTO HIM AGAIN; AND, AS HE WASE WONT, HE TAUGHT THEM AGAIN.K# 2 AND THE PHARISEES CAME TO HIM, AND ASKED HIM, IS IT LAWFUL FOR A MAN TOE! PUT AWAY HIS WIFE? TEMPTING HIM.NC# 3 AND HE ANSWERED AND SAID UNTO THEM, WHAT DID MOSES COMMAND YOU?TL# 4 AND THEY SAID, MOSES SUFFERED TO WRITE A BILL OF DIVORCEMENT, AND TO PUT HER AWAY.L# 5 AND JESUS ANSWERED AND SAID UNTO THEM, FOR THE HARDNESS OF YOUR HEART HE WROTE YOU THIS PRECEPT.I# 6 BUT FROM THE BEGINNING OF THE CREATION GOD MADE THEM MALE AND FEMALE.TM# 7 FOR THIS CAUSE SHALL A MAN LEAVE HIS FATHER AND MOTHER, AND CLEAVE TO HISE WIFE;J# 8 AND THEY TWAIN SHALL BE ONE FLESH: SO THEN THEY ARE NO MORE TWAIN, BUT ONE FLESH. E# 9 WHAT THEREFORE GOD HATH JOINED TOGETHER, LET NOT MAN PUT ASUNDER.NG# 10 AND IN THE HOUSE HIS DISCIPLES ASKED HIM AGAIN OF THE SAME MATTER.HI# 11 AND HE SAITH UNTO THEM, WHOSOEVER SHALL PUT AWAY HIS WIFE, AND MARRYU* ANOTHER, COMMITTETH ADULTERY AGAINST HER.J# 12 AND IF A WOMAN SHALL PUT AWAY HER HUSBAND, AND BE MARRIED TO ANOTHER, SHE COMMITTETH ADULTERY.AK# 13 AND THEY BROUGHT YOUNG CHILDREN TO HIM, THAT HE SHOULD TOUCH THEM: ANDL/ HIS DISCIPLES REBUKED THOSE THAT BROUGHT THEM.TG# 14 BUT WHEN JESUS SAW IT, HE WAS MUCH DISPLEASED, AND SAID UNTO THEM,PM SUFFER THE LITTLE CHILDREN TO COME UNTO ME, AND FORBID THEM NOT: FOR OF SUCHA IS THE KINGDOM OF GOD. M# 15 VERILY I SAY UNTO YOU, WHOSOEVER SHALL NOT RECEIVE THE KINGDOM OF GOD ASA, A LITTLE CHILD, HE SHALL NOT ENTER THEREIN.J# 16 AND HE TOOK THEM UP IN HIS ARMS, PUT HIS HANDS UPON THEM, AND BLESSED THEM.I# 17 AND WHEN HE WAS GONE FORTH INTO THE WAY, THERE CAME ONE RUNNING, ANDHG KNEELED TO HIM, AND ASKED HIM, GOOD MASTER, WHAT SHALL I DO THAT I MAYT INHERIT ETERNAL LIFE?J# 18 AND JESUS SAID UNTO HIM, WHY CALLEST THOU ME GOOD? THERE IS NONE GOOD BUT ONE, THAT IS, GOD.AK# 19 THOU KNOWEST THE COMMANDMENTS, DO NOT COMMIT ADULTERY, DO NOT KILL, DOEI NOT STEAL, DO NOT BEAR FALSE WITNESS, DEFRAUD NOT, HONOUR THY FATHER AND MOTHER.I# 20 AND HE ANSWERED AND SAID UNTO HIM, MASTER, ALL THESE HAVE I OBSERVED  FROM MY YOUTH.SJ# 21 THEN JESUS BEHOLDING HIM LOVED HIM, AND SAID UNTO HIM, ONE THING THOUJ LACKEST: GO THY WAY, SELL WHATSOEVER THOU HAST, AND GIVE TO THE POOR, ANDL THOU SHALT HAVE TREASURE IN HEAVEN: AND COME, TAKE UP THE CROSS, AND FOLLOW ME.K# 22 AND HE WAS SAD AT THAT SAYING, AND WENT AWAY GRIEVED: FOR HE HAD GREATY POSSESSIONS.DK# 23 AND JESUS LOOKED ROUND ABOUT, AND SAITH UNTO HIS DISCIPLES, HOW HARDLY; SHALL THEY THAT HAVE RICHES ENTER INTO THE KINGDOM OF GOD!LH# 24 AND THE DISCIPLES WERE ASTONISHED AT HIS WORDS. BUT JESUS ANSWERETHL AGAIN, AND SAITH UNTO THEM, CHILDREN, HOW HARD IS IT FOR THEM THAT TRUST IN) RICHES TO ENTER INTO THE KINGDOM OF GOD!K# 25 IT IS EASIER FOR A CAMEL TO GO THROUGH THE EYE OF A NEEDLE, THAN FOR A+ RICH MAN TO ENTER INTO THE KINGDOM OF GOD. J# 26 AND THEY WERE ASTONISHED OUT OF MEASURE, SAYING AMONG THEMSELVES, WHO THEN CAN BE SAVED?HJ# 27 AND JESUS LOOKING UPON THEM SAITH, WITH MEN IT IS IMPOSSIBLE, BUT NOT0 WITH GOD: FOR WITH GOD ALL THINGS ARE POSSIBLE.E# 28 THEN PETER BEGAN TO SAY UNTO HIM, LO, WE HAVE LEFT ALL, AND HAVE, FOLLOWED THEE.RM# 29 AND JESUS ANSWERED AND SAID, VERILY I SAY UNTO YOU, THERE IS NO MAN THAT5L HATH LEFT HOUSE, OR BRETHREN, OR SISTERS, OR FATHER, OR MOTHER, OR WIFE, OR2 CHILDREN, OR LANDS, FOR MY SAKE, AND THE GOSPELS,F# 30 BUT HE SHALL RECEIVE AN HUNDREDFOLD NOW IN THIS TIME, HOUSES, ANDB BRETHREN, AND SISTERS, AND MOTHERS, AND CHILDREN, AND LANDS, WITH5 PERSECUTIONS; AND IN THE WORLD TO COME ETERNAL LIFE.N?# 31 BUT MANY THAT ARE FIRST SHALL BE LAST; AND THE LAST00A A<%X>%+%O-%TADATADATA FIRST.AJ# 32 AND THEY WERE IN THE WAY GOING UP TO JERUSALEM; AND JESUS WENT BEFOREK THEM: AND THEY WERE AMAZED; AND AS THEY FOLLOWED, THEY WERE AFRAID. AND HEOM TOOK AGAIN THE TWELVE, AND BEGAN TO TELL THEM WHAT THINGS SHOULD HAPPEN UNTO  HIM, G# 33 SAYING, BEHOLD, WE GO UP TO JERUSALEM; AND THE SON OF MAN SHALL BEEG DELIVERED UNTO THE CHIEF PRIESTS, AND UNTO THE SCRIBES; AND THEY SHALLH= CONDEMN HIM TO DEATH, AND SHALL DELIVER HIM TO THE GENTILES:BM# 34 AND THEY SHALL MOCK HIM, AND SHALL SCOURGE HIM, AND SHALL SPIT UPON HIM,I; AND SHALL KILL HIM: AND THE THIRD DAY HE SHALL RISE AGAIN.:L# 35 AND JAMES AND JOHN, THE SONS OF ZEBEDEE, COME UNTO HIM, SAYING, MASTER,C WE WOULD THAT THOU SHOULDEST DO FOR US WHATSOEVER WE SHALL DESIRE.TC# 36 AND HE SAID UNTO THEM, WHAT WOULD YE THAT I SHOULD DO FOR YOU?FH# 37 THEY SAID UNTO HIM, GRANT UNTO US THAT WE MAY SIT, ONE ON THY RIGHT4 HAND, AND THE OTHER ON THY LEFT HAND, IN THY GLORY.K# 38 BUT JESUS SAID UNTO THEM, YE KNOW NOT WHAT YE ASK: CAN YE DRINK OF THE,I CUP THAT I DRINK OF? AND BE BAPTIZED WITH THE BAPTISM THAT I AM BAPTIZED  WITH?G# 39 AND THEY SAID UNTO HIM, WE CAN. AND JESUS SAID UNTO THEM, YE SHALL,H INDEED DRINK OF THE CUP THAT I DRINK OF; AND WITH THE BAPTISM THAT I AM& BAPTIZED WITHAL SHALL YE BE BAPTIZED:M# 40 BUT TO SIT ON MY RIGHT HAND AND ON MY LEFT HAND IS NOT MINE TO GIVE; BUT 3 IT SHALL BE GIVEN TO THEM FOR WHOM IT IS PREPARED. K# 41 AND WHEN THE TEN HEARD IT, THEY BEGAN TO BE MUCH DISPLEASED WITH JAMES AND JOHN.I# 42 BUT JESUS CALLED THEM TO HIM, AND SAITH UNTO THEM, YE KNOW THAT THEYAK WHICH ARE ACCOUNTED TO RULE OVER THE GENTILES EXERCISE LORDSHIP OVER THEM; 3 AND THEIR GREAT ONES EXERCISE AUTHORITY UPON THEM. M# 43 BUT SO SHALL IT NOT BE AMONG YOU: BUT WHOSOEVER WILL BE GREAT AMONG YOU,: SHALL BE YOUR MINISTER:H# 44 AND WHOSOEVER OF YOU WILL BE THE CHIEFEST, SHALL BE SERVANT OF ALL.M# 45 FOR EVEN THE SON OF MAN CAME NOT TO BE MINISTERED UNTO, BUT TO MINISTER,T( AND TO GIVE HIS LIFE A RANSOM FOR MANY.E# 46 AND THEY CAME TO JERICHO: AND AS HE WENT OUT OF JERICHO WITH HISTN DISCIPLES AND A GREAT NUMBER OF PEOPLE, BLIND BARTIMAEUS, THE SON OF TIMAEUS,! SAT BY THE HIGHWAY SIDE BEGGING.EJ# 47 AND WHEN HE HEARD THAT IT WAS JESUS OF NAZARETH, HE BEGAN TO CRY OUT,5 AND SAY, JESUS, THOU SON OF DAVID, HAVE MERCY ON ME. I# 48 AND MANY CHARGED HIM THAT HE SHOULD HOLD HIS PEACE: BUT HE CRIED THE58 MORE A GREAT DEAL, THOU SON OF DAVID, HAVE MERCY ON ME.M# 49 AND JESUS STOOD STILL, AND COMMANDED HIM TO BE CALLED. AND THEY CALL THETG BLIND MAN, SAYING UNTO HIM, BE OF GOOD COMFORT, RISE; HE CALLETH THEE.T?# 50 AND HE, CASTING AWAY HIS GARMENT, ROSE, AND CAME TO JESUS. J# 51 AND JESUS ANSWERED AND SAID UNTO HIM, WHAT WILT THOU THAT I SHOULD DOM UNTO THEE? THE BLIND MAN SAID UNTO HIM, LORD, THAT I MIGHT RECEIVE MY SIGHT.EM# 52 AND JESUS SAID UNTO HIM, GO THY WAY; THY FAITH HATH MADE THEE WHOLE. ANDB IMMEDIATELY HE RECEIVED HIS SIGHT, AND FOLLOWED JESUS IN THE WAY. = CHAPTER 11 LL# 1 AND WHEN THEY CAME NIGH TO JERUSALEM, UNTO BETHPHAGE AND BETHANY, AT THE8 MOUNT OF OLIVES, HE SENDETH FORTH TWO OF HIS DISCIPLES,K# 2 AND SAITH UNTO THEM, GO YOUR WAY INTO THE VILLAGE OVER AGAINST YOU: ANDEK AS SOON AS YE BE ENTERED INTO IT, YE SHALL FIND A COLT TIED, WHEREON NEVER # MAN SAT; LOOSE HIM, AND BRING HIM. J# 3 AND IF ANY MAN SAY UNTO YOU, WHY DO YE THIS? SAY YE THAT THE LORD HATH6 NEED OF HIM; AND STRAIGHTWAY HE WILL SEND HIM HITHER.M# 4 AND THEY WENT THEIR WAY, AND FOUND THE COLT TIED BY THE DOOR WITHOUT IN A . PLACE WHERE TWO WAYS MET; AND THEY LOOSE HIM.L# 5 AND CERTAIN OF THEM THAT STOOD THERE SAID UNTO THEM, WHAT DO YE, LOOSING THE COLT?J# 6 AND THEY SAID UNTO THEM EVEN AS JESUS HAD COMMANDED: AND THEY LET THEM GO.K# 7 AND THEY BROUGHT THE COLT TO JESUS, AND CAST THEIR GARMENTS ON HIM; ANDM HE SAT UPON HIM.MK# 8 AND MANY SPREAD THEIR GARMENTS IN THE WAY: AND OTHERS CUT DOWN BRANCHES , OFF THE TREES, AND STRAWED THEM IN THE WAY.E# 9 AND THEY THAT WENT BEFORE, AND THEY THAT FOLLOWED, CRIED, SAYING,< HOSANNA; 00A'AD%5%T6%! !BLESSED IS HE THAT COMETH IN THE NAME OF THE LORD:K# 10 BLESSED BE THE KINGDOM OF OUR FATHER DAVID, THAT COMETH IN THE NAME OF " THE LORD: HOSANNA IN THE HIGHEST.K# 11 AND JESUS ENTERED INTO JERUSALEM, AND INTO THE TEMPLE: AND WHEN HE HADJK LOOKED ROUND ABOUT UPON ALL THINGS, AND NOW THE EVENTIDE WAS COME, HE WENTS" OUT UNTO BETHANY WITH THE TWELVE.H# 12 AND ON THE MORROW, WHEN THEY WERE COME FROM BETHANY, HE WAS HUNGRY:M# 13 AND SEEING A FIG TREE AFAR OFF HAVING LEAVES, HE CAME, IF HAPLY HE MIGHTAM FIND ANY THING THEREON: AND WHEN HE CAME TO IT, HE FOUND NOTHING BUT LEAVES;O" FOR THE TIME OF FIGS WAS NOT YET.L# 14 AND JESUS ANSWERED AND SAID UNTO IT, NO MAN EAT FRUIT OF THEE HEREAFTER& FOR EVER. AND HIS DISCIPLES HEARD IT.M# 15 AND THEY COME TO JERUSALEM: AND JESUS WENT INTO THE TEMPLE, AND BEGAN TO N CAST OUT THEM THAT SOLD AND BOUGHT IN THE TEMPLE, AND OVERTHREW THE TABLES OF: THE MONEYCHANGERS, AND THE SEATS OF THEM THAT SOLD DOVES;J# 16 AND WOULD NOT SUFFER THAT ANY MAN SHOULD CARRY ANY VESSEL THROUGH THE TEMPLE.J# 17 AND HE TAUGHT, SAYING UNTO THEM, IS IT NOT WRITTEN, MY HOUSE SHALL BEH CALLED OF ALL NATIONS THE HOUSE OF PRAYER? BUT YE HAVE MADE IT A DEN OF THIEVES.AJ# 18 AND THE SCRIBES AND CHIEF PRIESTS HEARD IT, AND SOUGHT HOW THEY MIGHTK DESTROY HIM: FOR THEY FEARED HIM, BECAUSE ALL THE PEOPLE WAS ASTONISHED ATD HIS DOCTRINE.5# 19 AND WHEN EVEN WAS COME, HE WENT OUT OF THE CITY. J# 20 AND IN THE MORNING, AS THEY PASSED BY, THEY SAW THE FIG TREE DRIED UP FROM THE ROOTS.M# 21 AND PETER CALLING TO REMEMBRANCE SAITH UNTO HIM, MASTER, BEHOLD, THE FIG + TREE WHICH THOU CURSEDST IS WITHERED AWAY.T<# 22 AND JESUS ANSWERING SAITH UNTO THEM, HAVE FAITH IN GOD.L# 23 FOR VERILY I SAY UNTO YOU, THAT WHOSOEVER SHALL SAY UNTO THIS MOUNTAIN,K BE THOU REMOVED, AND BE THOU CAST INTO THE SEA; AND SHALL NOT DOUBT IN HISAN HEART, BUT SHALL BELIEVE THAT THOSE THINGS WHICH HE SAITH SHALL COME TO PASS;# HE SHALL HAVE WHATSOEVER HE SAITH.YJ# 24 THEREFORE I SAY UNTO YOU, WHAT THINGS SOEVER YE DESIRE, WHEN YE PRAY,6 BELIEVE THAT YE RECEIVE THEM, AND YE SHALL HAVE THEM.K# 25 AND WHEN YE STAND PRAYING, FORGIVE, IF YE HAVE OUGHT AGAINST ANY: THATUE YOUR FATHER ALSO WHICH IS IN HEAVEN MAY FORGIVE YOU YOUR TRESPASSES.OJ# 26 BUT IF YE DO NOT FORGIVE, NEITHER WILL YOUR FATHER WHICH IS IN HEAVEN FORGIVE YOUR TRESPASSES.TK# 27 AND THEY COME AGAIN TO JERUSALEM: AND AS HE WAS WALKING IN THE TEMPLE,MF THERE COME TO HIM THE CHIEF PRIESTS, AND THE SCRIBES, AND THE ELDERS,I# 28 AND SAY UNTO HIM, BY WHAT AUTHORITY DOEST THOU THESE THINGS? AND WHOI- GAVE THEE THIS AUTHORITY TO DO THESE THINGS? F# 29 AND JESUS ANSWERED AND SAID UNTO THEM, I WILL ALSO ASK OF YOU ONEJ QUESTION, AND ANSWER ME, AND I WILL TELL YOU BY WHAT AUTHORITY I DO THESE THINGS.C# 30 THE BAPTISM OF JOHN, WAS IT FROM HEAVEN, OR OF MEN? ANSWER ME.RM# 31 AND THEY REASONED WITH THEMSELVES, SAYING, IF WE SHALL SAY, FROM HEAVEN; . HE WILL SAY, WHY THEN DID YE NOT BELIEVE HIM?M# 32 BUT IF WE SHALL SAY, OF MEN; THEY FEARED THE PEOPLE: FOR ALL MEN COUNTEDT$ JOHN, THAT HE WAS A PROPHET INDEED.E# 33 AND THEY ANSWERED AND SAID UNTO JESUS, WE CANNOT TELL. AND JESUSDN ANSWERING SAITH UNTO THEM, NEITHER DO I TELL YOU BY WHAT AUTHORITY I DO THESE THINGS. = CHAPTER 12 H# 1 AND HE BEGAN TO SPEAK UNTO THEM BY PARABLES. A CERTAIN MAN PLANTED AM VINEYARD, AND SET AN HEDGE ABOUT IT, AND DIGGED A PLACE FOR THE WINEFAT, AND,J BUILT A TOWER, AND LET IT OUT TO HUSBANDMEN, AND WENT INTO A FAR COUNTRY.H# 2 AND AT THE SEASON HE SENT TO THE HUSBANDMEN A SERVANT, THAT HE MIGHT: RECEIVE FROM THE HUSBANDMEN OF THE FRUIT OF THE VINEYARD.?# 3 AND THEY CAUGHT HIM, AND BEAT HIM, AND SENT HIM AWAY EMPTY. M# 4 AND AGAIN HE SENT UNTO THEM ANOTHER SERVANT; AND AT HIM THEY CAST STONES,2C AND WOUNDED HIM IN THE HEAD, AND SENT HIM AWAY SHAMEFULLY HANDLED.AL# 5 AND AGAIN HE SENT ANOTHER; AND HIM THEY KILLED, AND MANY OTHERS; BEATING SOME, AND KILLING SOME.M# 6 HAVING YET THEREFORE ONE SON, HIS WELLBELOVED, HE SENT HIM ALSO LAST UNTOO* THEM, SAYING, THEY WILL00A A<%X>%+%O-%TADATADATA REVERENCE MY SON.K# 7 BUT THOSE HUSBANDMEN SAID AMONG THEMSELVES, THIS IS THE HEIR; COME, LET 0 US KILL HIM, AND THE INHERITANCE SHALL BE OURS.H# 8 AND THEY TOOK HIM, AND KILLED HIM, AND CAST HIM OUT OF THE VINEYARD.F# 9 WHAT SHALL THEREFORE THE LORD OF THE VINEYARD DO? HE WILL COME AND@ DESTROY THE HUSBANDMEN, AND WILL GIVE THE VINEYARD UNTO OTHERS.F# 10 AND HAVE YE NOT READ THIS SCRIPTURE; THE STONE WHICH THE BUILDERS+ REJECTED IS BECOME THE HEAD OF THE CORNER: @# 11 THIS WAS THE LORDS DOING, AND IT IS MARVELLOUS IN OUR EYES?M# 12 AND THEY SOUGHT TO LAY HOLD ON HIM, BUT FEARED THE PEOPLE: FOR THEY KNEWMI THAT HE HAD SPOKEN THE PARABLE AGAINST THEM: AND THEY LEFT HIM, AND WENT, THEIR WAY. M# 13 AND THEY SEND UNTO HIM CERTAIN OF THE PHARISEES AND OF THE HERODIANS, TOW CATCH HIM IN HIS WORDS.J# 14 AND WHEN THEY WERE COME, THEY SAY UNTO HIM, MASTER, WE KNOW THAT THOUK ART TRUE, AND CAREST FOR NO MAN: FOR THOU REGARDEST NOT THE PERSON OF MEN,DN BUT TEACHEST THE WAY OF GOD IN TRUTH: IS IT LAWFUL TO GIVE TRIBUTE TO CAESAR, OR NOT?J# 15 SHALL WE GIVE, OR SHALL WE NOT GIVE? BUT HE, KNOWING THEIR HYPOCRISY,F SAID UNTO THEM, WHY TEMPT YE ME? BRING ME A PENNY, THAT I MAY SEE IT.I# 16 AND THEY BROUGHT IT. AND HE SAITH UNTO THEM, WHOSE IS THIS IMAGE AND 1 SUPERSCRIPTION? AND THEY SAID UNTO HIM, CAESARS.AM# 17 AND JESUS ANSWERING SAID UNTO THEM, RENDER TO CAESAR THE THINGS THAT ARE,I CAESARS, AND TO GOD THE THINGS THAT ARE GODS. AND THEY MARVELLED AT HIM.AJ# 18 THEN COME UNTO HIM THE SADDUCEES, WHICH SAY THERE IS NO RESURRECTION; AND THEY ASKED HIM, SAYING,K# 19 MASTER, MOSES WROTE UNTO US, IF A MANS BROTHER DIE, AND LEAVE HIS WIFETN BEHIND HIM, AND LEAVE NO CHILDREN, THAT HIS BROTHER SHOULD TAKE HIS WIFE, AND RAISE UP SEED UNTO HIS BROTHER.M# 20 NOW THERE WERE SEVEN BRETHREN: AND THE FIRST TOOK A WIFE, AND DYING LEFTE NO SEED.NI# 21 AND THE SECOND TOOK HER, AND DIED, NEITHER LEFT HE ANY SEED: AND THEI THIRD LIKEWISE.H# 22 AND THE SEVEN HAD HER, AND LEFT NO SEED: LAST OF ALL THE WOMAN DIED ALSO.J# 23 IN THE RESURRECTION THEREFORE, WHEN THEY SHALL RISE, WHOSE WIFE SHALL/ SHE BE OF THEM? FOR THE SEVEN HAD HER TO WIFE.WL# 24 AND JESUS ANSWERING SAID UNTO THEM, DO YE NOT THEREFORE ERR, BECAUSE YE3 KNOW NOT THE SCRIPTURES, NEITHER THE POWER OF GOD?EH# 25 FOR WHEN THEY SHALL RISE FROM THE DEAD, THEY NEITHER MARRY, NOR ARE> GIVEN IN MARRIAGE; BUT ARE AS THE ANGELS WHICH ARE IN HEAVEN.K# 26 AND AS TOUCHING THE DEAD, THAT THEY RISE: HAVE YE NOT READ IN THE BOOKEF OF MOSES, HOW IN THE BUSH GOD SPAKE UNTO HIM, SAYING, I AM THE GOD OF5 ABRAHAM, AND THE GOD OF ISAAC, AND THE GOD OF JACOB?TK# 27 HE IS NOT THE GOD OF THE DEAD, BUT THE GOD OF THE LIVING: YE THEREFORE, DO GREATLY ERR.K# 28 AND ONE OF THE SCRIBES CAME, AND HAVING HEARD THEM REASONING TOGETHER,5M AND PERCEIVING THAT HE HAD ANSWERED THEM WELL, ASKED HIM, WHICH IS THE FIRST  COMMANDMENT OF ALL?J# 29 AND JESUS ANSWERED HIM, THE FIRST OF ALL THE COMMANDMENTS IS, HEAR, O& ISRAEL; THE LORD OUR GOD IS ONE LORD:J# 30 AND THOU SHALT LOVE THE LORD THY GOD WITH ALL THY HEART, AND WITH ALLN THY SOUL, AND WITH ALL THY MIND, AND WITH ALL THY STRENGTH: THIS IS THE FIRST COMMANDMENT.FJ# 31 AND THE SECOND IS LIKE, NAMELY THIS, THOU SHALT LOVE THY NEIGHBOUR AS= THYSELF. THERE IS NONE OTHER COMMANDMENT GREATER THAN THESE. J# 32 AND THE SCRIBE SAID UNTO HIM, WELL, MASTER, THOU HAST SAID THE TRUTH:6 FOR THERE IS ONE GOD; AND THERE IS NONE OTHER BUT HE:L# 33 AND TO LOVE HIM WITH ALL THE HEART, AND WITH ALL THE UNDERSTANDING, ANDK WITH ALL THE SOUL, AND WITH ALL THE STRENGTH, AND TO LOVE HIS NEIGHBOUR AS,@ HIMSELF, IS MORE THAN ALL WHOLE BURNT OFFERINGS AND SACRIFICES.K# 34 AND WHEN JESUS SAW THAT HE ANSWERED DISCREETLY, HE SAID UNTO HIM, THOU M ART NOT FAR FROM THE KINGDOM OF GOD. AND NO MAN AFTER THAT DURST ASK HIM ANY QUESTION.L# 35 AND JESUS ANSWERED AND SAID, WHILE HE TAUGHT IN THE TEMPLE, HOW SAY THE) SCRIBES THAT CHRIST IS THE SON OF DAVID?L# 36 FOR DAVID HIMSELF SAID BY THE HOLY GHOST, THE LORD SAID TO MY LORD, SIT@ THO00A'AD%5%T6%! !U ON MY RIGHT HAND, TILL I MAKE THINE ENEMIES THY FOOTSTOOL.M# 37 DAVID THEREFORE HIMSELF CALLETH HIM LORD; AND WHENCE IS HE THEN HIS SON? ( AND THE COMMON PEOPLE HEARD HIM GLADLY.M# 38 AND HE SAID UNTO THEM IN HIS DOCTRINE, BEWARE OF THE SCRIBES, WHICH LOVEMB TO GO IN LONG CLOTHING, AND LOVE SALUTATIONS IN THE MARKETPLACES,F# 39 AND THE CHIEF SEATS IN THE SYNAGOGUES, AND THE UPPERMOST ROOMS AT FEASTS:L# 40 WHICH DEVOUR WIDOWS HOUSES, AND FOR A PRETENCE MAKE LONG PRAYERS: THESE! SHALL RECEIVE GREATER DAMNATION. L# 41 AND JESUS SAT OVER AGAINST THE TREASURY, AND BEHELD HOW THE PEOPLE CAST? MONEY INTO THE TREASURY: AND MANY THAT WERE RICH CAST IN MUCH. K# 42 AND THERE CAME A CERTAIN POOR WIDOW, AND SHE THREW IN TWO MITES, WHICHO MAKE A FARTHING.HL# 43 AND HE CALLED UNTO HIM HIS DISCIPLES, AND SAITH UNTO THEM, VERILY I SAYK UNTO YOU, THAT THIS POOR WIDOW HATH CAST MORE IN, THAN ALL THEY WHICH HAVE: CAST INTO THE TREASURY:I# 44 FOR ALL THEY DID CAST IN OF THEIR ABUNDANCE; BUT SHE OF HER WANT DIDR/ CAST IN ALL THAT SHE HAD, EVEN ALL HER LIVING. = CHAPTER 13 EJ# 1 AND AS HE WENT OUT OF THE TEMPLE, ONE OF HIS DISCIPLES SAITH UNTO HIM,? MASTER, SEE WHAT MANNER OF STONES AND WHAT BUILDINGS ARE HERE! H# 2 AND JESUS ANSWERING SAID UNTO HIM, SEEST THOU THESE GREAT BUILDINGS?I THERE SHALL NOT BE LEFT ONE STONE UPON ANOTHER, THAT SHALL NOT BE THROWNO DOWN.M# 3 AND AS HE SAT UPON THE MOUNT OF OLIVES OVER AGAINST THE TEMPLE, PETER ANDR/ JAMES AND JOHN AND ANDREW ASKED HIM PRIVATELY, L# 4 TELL US, WHEN SHALL THESE THINGS BE? AND WHAT SHALL BE THE SIGN WHEN ALL! THESE THINGS SHALL BE FULFILLED? I# 5 AND JESUS ANSWERING THEM BEGAN TO SAY, TAKE HEED LEST ANY MAN DECEIVET YOU:DJ# 6 FOR MANY SHALL COME IN MY NAME, SAYING, I AM CHRIST; AND SHALL DECEIVE MANY.K# 7 AND WHEN YE SHALL HEAR OF WARS AND RUMOURS OF WARS, BE YE NOT TROUBLED: = FOR SUCH THINGS MUST NEEDS BE; BUT THE END SHALL NOT BE YET.VJ# 8 FOR NATION SHALL RISE AGAINST NATION, AND KINGDOM AGAINST KINGDOM: ANDL THERE SHALL BE EARTHQUAKES IN DIVERS PLACES, AND THERE SHALL BE FAMINES AND/ TROUBLES: THESE ARE THE BEGINNINGS OF SORROWS.K# 9 BUT TAKE HEED TO YOURSELVES: FOR THEY SHALL DELIVER YOU UP TO COUNCILS;YI AND IN THE SYNAGOGUES YE SHALL BE BEATEN: AND YE SHALL BE BROUGHT BEFOREC< RULERS AND KINGS FOR MY SAKE, FOR A TESTIMONY AGAINST THEM.># 10 AND THE GOSPEL MUST FIRST BE PUBLISHED AMONG ALL NATIONS.F# 11 BUT WHEN THEY SHALL LEAD YOU, AND DELIVER YOU UP, TAKE NO THOUGHTJ BEFOREHAND WHAT YE SHALL SPEAK, NEITHER DO YE PREMEDITATE: BUT WHATSOEVERM SHALL BE GIVEN YOU IN THAT HOUR, THAT SPEAK YE: FOR IT IS NOT YE THAT SPEAK,O BUT THE HOLY GHOST.J# 12 NOW THE BROTHER SHALL BETRAY THE BROTHER TO DEATH, AND THE FATHER THEL SON; AND CHILDREN SHALL RISE UP AGAINST THEIR PARENTS, AND SHALL CAUSE THEM TO BE PUT TO DEATH.J# 13 AND YE SHALL BE HATED OF ALL MEN FOR MY NAMES SAKE: BUT HE THAT SHALL. ENDURE UNTO THE END, THE SAME SHALL BE SAVED.M# 14 BUT WHEN YE SHALL SEE THE ABOMINATION OF DESOLATION, SPOKEN OF BY DANIEL M THE PROPHET, STANDING WHERE IT OUGHT NOT, (LET HIM THAT READETH UNDERSTAND,):7 THEN LET THEM THAT BE IN JUDAEA FLEE TO THE MOUNTAINS:2L# 15 AND LET HIM THAT IS ON THE HOUSETOP NOT GO DOWN INTO THE HOUSE, NEITHER3 ENTER THEREIN, TO TAKE ANY THING OUT OF HIS HOUSE: L# 16 AND LET HIM THAT IS IN THE FIELD NOT TURN BACK AGAIN FOR TO TAKE UP HIS GARMENT.SM# 17 BUT WOE TO THEM THAT ARE WITH CHILD, AND TO THEM THAT GIVE SUCK IN THOSEB DAYS!7# 18 AND PRAY YE THAT YOUR FLIGHT BE NOT IN THE WINTER.DD# 19 FOR IN THOSE DAYS SHALL BE AFFLICTION, SUCH AS WAS NOT FROM THEN BEGINNING OF THE CREATION WHICH GOD CREATED UNTO THIS TIME, NEITHER SHALL BE.J# 20 AND EXCEPT THAT THE LORD HAD SHORTENED THOSE DAYS, NO FLESH SHOULD BEK SAVED: BUT FOR THE ELECTS SAKE, WHOM HE HATH CHOSEN, HE HATH SHORTENED THEI DAYS.L# 21 AND THEN IF ANY MAN SHALL SAY TO YOU, LO, HERE IS CHRIST; OR, LO, HE IS THERE; BELIEVE HIM NOT:J# 22 FOR FALSE CHRISTS AND FALSE PROPHETS SHALL RISE, AND SHALL SHEW SIGNS= AND WONDERS, TO SEDUCE, IF IT WERE 00A A<%X>%+%O-%TADATADATAPOSSIBLE, EVEN THE ELECT.N># 23 BUT TAKE YE HEED: BEHOLD, I HAVE FORETOLD YOU ALL THINGS.J# 24 BUT IN THOSE DAYS, AFTER THAT TRIBULATION, THE SUN SHALL BE DARKENED,' AND THE MOON SHALL NOT GIVE HER LIGHT,EJ# 25 AND THE STARS OF HEAVEN SHALL FALL, AND THE POWERS THAT ARE IN HEAVEN SHALL BE SHAKEN.DK# 26 AND THEN SHALL THEY SEE THE SON OF MAN COMING IN THE CLOUDS WITH GREAT  POWER AND GLORY. K# 27 AND THEN SHALL HE SEND HIS ANGELS, AND SHALL GATHER TOGETHER HIS ELECTDK FROM THE FOUR WINDS, FROM THE UTTERMOST PART OF THE EARTH TO THE UTTERMOSTH PART OF HEAVEN.L# 28 NOW LEARN A PARABLE OF THE FIG TREE; WHEN HER BRANCH IS YET TENDER, AND3 PUTTETH FORTH LEAVES, YE KNOW THAT SUMMER IS NEAR:EL# 29 SO YE IN LIKE MANNER, WHEN YE SHALL SEE THESE THINGS COME TO PASS, KNOW$ THAT IT IS NIGH, EVEN AT THE DOORS.I# 30 VERILY I SAY UNTO YOU, THAT THIS GENERATION SHALL NOT PASS, TILL ALLW THESE THINGS BE DONE.H# 31 HEAVEN AND EARTH SHALL PASS AWAY: BUT MY WORDS SHALL NOT PASS AWAY.K# 32 BUT OF THAT DAY AND THAT HOUR KNOWETH NO MAN, NO, NOT THE ANGELS WHICHR0 ARE IN HEAVEN, NEITHER THE SON, BUT THE FATHER.D# 33 TAKE YE HEED, WATCH AND PRAY: FOR YE KNOW NOT WHEN THE TIME IS.M# 34 FOR THE SON OF MAN IS AS A MAN TAKING A FAR JOURNEY, WHO LEFT HIS HOUSE,IM AND GAVE AUTHORITY TO HIS SERVANTS, AND TO EVERY MAN HIS WORK, AND COMMANDED  THE PORTER TO WATCH.EM# 35 WATCH YE THEREFORE: FOR YE KNOW NOT WHEN THE MASTER OF THE HOUSE COMETH, C AT EVEN, OR AT MIDNIGHT, OR AT THE COCKCROWING, OR IN THE MORNING:D/# 36 LEST COMING SUDDENLY HE FIND YOU SLEEPING.L3# 37 AND WHAT I SAY UNTO YOU I SAY UNTO ALL, WATCH.T = CHAPTER 14 N# 1 AFTER TWO DAYS WAS THE FEAST OF THE PASSOVER, AND OF UNLEAVENED BREAD: ANDK THE CHIEF PRIESTS AND THE SCRIBES SOUGHT HOW THEY MIGHT TAKE HIM BY CRAFT,T AND PUT HIM TO DEATH.G# 2 BUT THEY SAID, NOT ON THE FEAST DAY, LEST THERE BE AN UPROAR OF THEY PEOPLE.L# 3 AND BEING IN BETHANY IN THE HOUSE OF SIMON THE LEPER, AS HE SAT AT MEAT,I THERE CAME A WOMAN HAVING AN ALABASTER BOX OF OINTMENT OF SPIKENARD VERY < PRECIOUS; AND SHE BRAKE THE BOX, AND POURED IT ON HIS HEAD.M# 4 AND THERE WERE SOME THAT HAD INDIGNATION WITHIN THEMSELVES, AND SAID, WHYR% WAS THIS WASTE OF THE OINTMENT MADE?IK# 5 FOR IT MIGHT HAVE BEEN SOLD FOR MORE THAN THREE HUNDRED PENCE, AND HAVET7 BEEN GIVEN TO THE POOR. AND THEY MURMURED AGAINST HER.LI# 6 AND JESUS SAID, LET HER ALONE; WHY TROUBLE YE HER? SHE HATH WROUGHT AO GOOD WORK ON ME.PJ# 7 FOR YE HAVE THE POOR WITH YOU ALWAYS, AND WHENSOEVER YE WILL YE MAY DO& THEM GOOD: BUT ME YE HAVE NOT ALWAYS.L# 8 SHE HATH DONE WHAT SHE COULD: SHE IS COME AFOREHAND TO ANOINT MY BODY TO THE BURYING.TD# 9 VERILY I SAY UNTO YOU, WHERESOEVER THIS GOSPEL SHALL BE PREACHEDL THROUGHOUT THE WHOLE WORLD, THIS ALSO THAT SHE HATH DONE SHALL BE SPOKEN OF FOR A MEMORIAL OF HER..K# 10 AND JUDAS ISCARIOT, ONE OF THE TWELVE, WENT UNTO THE CHIEF PRIESTS, TOB BETRAY HIM UNTO THEM.L# 11 AND WHEN THEY HEARD IT, THEY WERE GLAD, AND PROMISED TO GIVE HIM MONEY.4 AND HE SOUGHT HOW HE MIGHT CONVENIENTLY BETRAY HIM.J# 12 AND THE FIRST DAY OF UNLEAVENED BREAD, WHEN THEY KILLED THE PASSOVER,N HIS DISCIPLES SAID UNTO HIM, WHERE WILT THOU THAT WE GO AND PREPARE THAT THOU MAYEST EAT THE PASSOVER?HJ# 13 AND HE SENDETH FORTH TWO OF HIS DISCIPLES, AND SAITH UNTO THEM, GO YEJ INTO THE CITY, AND THERE SHALL MEET YOU A MAN BEARING A PITCHER OF WATER: FOLLOW HIM.L# 14 AND WHERESOEVER HE SHALL GO IN, SAY YE TO THE GOODMAN OF THE HOUSE, THEM MASTER SAITH, WHERE IS THE GUESTCHAMBER, WHERE I SHALL EAT THE PASSOVER WITH  MY DISCIPLES?J# 15 AND HE WILL SHEW YOU A LARGE UPPER ROOM FURNISHED AND PREPARED: THERE MAKE READY FOR US.HJ# 16 AND HIS DISCIPLES WENT FORTH, AND CAME INTO THE CITY, AND FOUND AS HE6 HAD SAID UNTO THEM: AND THEY MADE READY THE PASSOVER.2# 17 AND IN THE EVENING HE COMETH WITH THE TWELVE.K# 18 AND AS THEY SAT AND DID EAT, JESUS SAID, VERILY I SAY UNTO YOU, ONE OFR* YOU WHICH EATETH WITH ME SHALL BETRAY ME.M# 19 AND THEY BEGAN TO BE SORROWFUL, AND TO SAY UNTO HIM ONE BY 00A'AD%5%T6%! !ONE, IS IT I?A AND ANOTHER SAID, IS IT I?F# 20 AND HE ANSWERED AND SAID UNTO THEM, IT IS ONE OF THE TWELVE, THAT DIPPETH WITH ME IN THE DISH.AJ# 21 THE SON OF MAN INDEED GOETH, AS IT IS WRITTEN OF HIM: BUT WOE TO THATL MAN BY WHOM THE SON OF MAN IS BETRAYED! GOOD WERE IT FOR THAT MAN IF HE HAD NEVER BEEN BORN.VJ# 22 AND AS THEY DID EAT, JESUS TOOK BREAD, AND BLESSED, AND BRAKE IT, AND4 GAVE TO THEM, AND SAID, TAKE, EAT: THIS IS MY BODY.K# 23 AND HE TOOK THE CUP, AND WHEN HE HAD GIVEN THANKS, HE GAVE IT TO THEM:A AND THEY ALL DRANK OF IT.K# 24 AND HE SAID UNTO THEM, THIS IS MY BLOOD OF THE NEW TESTAMENT, WHICH ISE SHED FOR MANY. J# 25 VERILY I SAY UNTO YOU, I WILL DRINK NO MORE OF THE FRUIT OF THE VINE,: UNTIL THAT DAY THAT I DRINK IT NEW IN THE KINGDOM OF GOD.L# 26 AND WHEN THEY HAD SUNG AN HYMN, THEY WENT OUT INTO THE MOUNT OF OLIVES.K# 27 AND JESUS SAITH UNTO THEM, ALL YE SHALL BE OFFENDED BECAUSE OF ME THISTL NIGHT: FOR IT IS WRITTEN, I WILL SMITE THE SHEPHERD, AND THE SHEEP SHALL BE SCATTERED.HB# 28 BUT AFTER THAT I AM RISEN, I WILL GO BEFORE YOU INTO GALILEE.M# 29 BUT PETER SAID UNTO HIM, ALTHOUGH ALL SHALL BE OFFENDED, YET WILL NOT I. M# 30 AND JESUS SAITH UNTO HIM, VERILY I SAY UNTO THEE, THAT THIS DAY, EVEN INIC THIS NIGHT, BEFORE THE COCK CROW TWICE, THOU SHALT DENY ME THRICE.HL# 31 BUT HE SPAKE THE MORE VEHEMENTLY, IF I SHOULD DIE WITH THEE, I WILL NOT4 DENY THEE IN ANY WISE. LIKEWISE ALSO SAID THEY ALL.M# 32 AND THEY CAME TO A PLACE WHICH WAS NAMED GETHSEMANE: AND HE SAITH TO HISD, DISCIPLES, SIT YE HERE, WHILE I SHALL PRAY.J# 33 AND HE TAKETH WITH HIM PETER AND JAMES AND JOHN, AND BEGAN TO BE SORE AMAZED, AND TO BE VERY HEAVY;M# 34 AND SAITH UNTO THEM, MY SOUL IS EXCEEDING SORROWFUL UNTO DEATH: TARRY YET HERE, AND WATCH.HK# 35 AND HE WENT FORWARD A LITTLE, AND FELL ON THE GROUND, AND PRAYED THAT,H3 IF IT WERE POSSIBLE, THE HOUR MIGHT PASS FROM HIM. L# 36 AND HE SAID, ABBA, FATHER, ALL THINGS ARE POSSIBLE UNTO THEE; TAKE AWAYD THIS CUP FROM ME: NEVERTHELESS NOT WHAT I WILL, BUT WHAT THOU WILT.K# 37 AND HE COMETH, AND FINDETH THEM SLEEPING, AND SAITH UNTO PETER, SIMON,N1 SLEEPEST THOU? COULDEST NOT THOU WATCH ONE HOUR?VJ# 38 WATCH YE AND PRAY, LEST YE ENTER INTO TEMPTATION. THE SPIRIT TRULY IS READY, BUT THE FLESH IS WEAK.B# 39 AND AGAIN HE WENT AWAY, AND PRAYED, AND SPAKE THE SAME WORDS.K# 40 AND WHEN HE RETURNED, HE FOUND THEM ASLEEP AGAIN, (FOR THEIR EYES WERE . HEAVY,) NEITHER WIST THEY WHAT TO ANSWER HIM.I# 41 AND HE COMETH THE THIRD TIME, AND SAITH UNTO THEM, SLEEP ON NOW, ANDWJ TAKE YOUR REST: IT IS ENOUGH, THE HOUR IS COME; BEHOLD, THE SON OF MAN IS$ BETRAYED INTO THE HANDS OF SINNERS.=# 42 RISE UP, LET US GO; LO, HE THAT BETRAYETH ME IS AT HAND.OJ# 43 AND IMMEDIATELY, WHILE HE YET SPAKE, COMETH JUDAS, ONE OF THE TWELVE,N AND WITH HIM A GREAT MULTITUDE WITH SWORDS AND STAVES, FROM THE CHIEF PRIESTS AND THE SCRIBES AND THE ELDERS.J# 44 AND HE THAT BETRAYED HIM HAD GIVEN THEM A TOKEN, SAYING, WHOMSOEVER IA SHALL KISS, THAT SAME IS HE; TAKE HIM, AND LEAD HIM AWAY SAFELY.WH# 45 AND AS SOON AS HE WAS COME, HE GOETH STRAIGHTWAY TO HIM, AND SAITH, MASTER, MASTER; AND KISSED HIM.4# 46 AND THEY LAID THEIR HANDS ON HIM, AND TOOK HIM.K# 47 AND ONE OF THEM THAT STOOD BY DREW A SWORD, AND SMOTE A SERVANT OF THE " HIGH PRIEST, AND CUT OFF HIS EAR.I# 48 AND JESUS ANSWERED AND SAID UNTO THEM, ARE YE COME OUT, AS AGAINST AS/ THIEF, WITH SWORDS AND WITH STAVES TO TAKE ME?AM# 49 I WAS DAILY WITH YOU IN THE TEMPLE TEACHING, AND YE TOOK ME NOT: BUT THEH SCRIPTURES MUST BE FULFILLED.(# 50 AND THEY ALL FORSOOK HIM, AND FLED.J# 51 AND THERE FOLLOWED HIM A CERTAIN YOUNG MAN, HAVING A LINEN CLOTH CAST: ABOUT HIS NAKED BODY; AND THE YOUNG MEN LAID HOLD ON HIM:;# 52 AND HE LEFT THE LINEN CLOTH, AND FLED FROM THEM NAKED.L# 53 AND THEY LED JESUS AWAY TO THE HIGH PRIEST: AND WITH HIM WERE ASSEMBLED6 ALL THE CHIEF PRIESTS AND THE ELDERS AND THE SCRIBES.F# 54 AND PETER FOLLOWED HIM AFAR OFF, EVEN INTO THE PALACE OF THE HIGHF PRIEST: AND HE SAT WITH THE SER00A A<%X>%+%O-%TADATADATAVANTS, AND WARMED HIMSELF AT THE FIRE.I# 55 AND THE CHIEF PRIESTS AND ALL THE COUNCIL SOUGHT FOR WITNESS AGAINST + JESUS TO PUT HIM TO DEATH; AND FOUND NONE.HJ# 56 FOR MANY BARE FALSE WITNESS AGAINST HIM, BUT THEIR WITNESS AGREED NOT TOGETHER.I# 57 AND THERE AROSE CERTAIN, AND BARE FALSE WITNESS AGAINST HIM, SAYING,AJ# 58 WE HEARD HIM SAY, I WILL DESTROY THIS TEMPLE THAT IS MADE WITH HANDS,? AND WITHIN THREE DAYS I WILL BUILD ANOTHER MADE WITHOUT HANDS.E5# 59 BUT NEITHER SO DID THEIR WITNESS AGREE TOGETHER.DH# 60 AND THE HIGH PRIEST STOOD UP IN THE MIDST, AND ASKED JESUS, SAYING,E ANSWEREST THOU NOTHING? WHAT IS IT WHICH THESE WITNESS AGAINST THEE?OM# 61 BUT HE HELD HIS PEACE, AND ANSWERED NOTHING. AGAIN THE HIGH PRIEST ASKEDTH HIM, AND SAID UNTO HIM, ART THOU THE CHRIST, THE SON OF THE BLESSED? ITI# 62 AND JESUS SAID, I AM: AND YE SHALL SEE THE SON OF MAN SITTING ON THEA9 RIGHT HAND OF POWER, AND COMING IN THE CLOUDS OF HEAVEN. G# 63 THEN THE HIGH PRIEST RENT HIS CLOTHES, AND SAITH, WHAT NEED WE ANYR FURTHER WITNESSES? K# 64 YE HAVE HEARD THE BLASPHEMY: WHAT THINK YE? AND THEY ALL CONDEMNED HIMN TO BE GUILTY OF DEATH. M# 65 AND SOME BEGAN TO SPIT ON HIM, AND TO COVER HIS FACE, AND TO BUFFET HIM, N AND TO SAY UNTO HIM, PROPHESY: AND THE SERVANTS DID STRIKE HIM WITH THE PALMS OF THEIR HANDS.M# 66 AND AS PETER WAS BENEATH IN THE PALACE, THERE COMETH ONE OF THE MAIDS OFG THE HIGH PRIEST:NK# 67 AND WHEN SHE SAW PETER WARMING HIMSELF, SHE LOOKED UPON HIM, AND SAID,S+ AND THOU ALSO WAST WITH JESUS OF NAZARETH.EF# 68 BUT HE DENIED, SAYING, I KNOW NOT, NEITHER UNDERSTAND I WHAT THOU; SAYEST. AND HE WENT OUT INTO THE PORCH; AND THE COCK CREW.OK# 69 AND A MAID SAW HIM AGAIN, AND BEGAN TO SAY TO THEM THAT STOOD BY, THISM IS ONE OF THEM.H# 70 AND HE DENIED IT AGAIN. AND A LITTLE AFTER, THEY THAT STOOD BY SAIDK AGAIN TO PETER, SURELY THOU ART ONE OF THEM: FOR THOU ART A GALILAEAN, ANDR THY SPEECH AGREETH THERETO.L# 71 BUT HE BEGAN TO CURSE AND TO SWEAR, SAYING, I KNOW NOT THIS MAN OF WHOM YE SPEAK.I# 72 AND THE SECOND TIME THE COCK CREW. AND PETER CALLED TO MIND THE WORDAI THAT JESUS SAID UNTO HIM, BEFORE THE COCK CROW TWICE, THOU SHALT DENY MEA. THRICE. AND WHEN HE THOUGHT THEREON, HE WEPT. = CHAPTER 15 ,M# 1 AND STRAIGHTWAY IN THE MORNING THE CHIEF PRIESTS HELD A CONSULTATION WITH K THE ELDERS AND SCRIBES AND THE WHOLE COUNCIL, AND BOUND JESUS, AND CARRIEDT' HIM AWAY, AND DELIVERED HIM TO PILATE.HI# 2 AND PILATE ASKED HIM, ART THOU THE KING OF THE JEWS? AND HE ANSWERINGN SAID UNTO THEM, THOU SAYEST IT.E# 3 AND THE CHIEF PRIESTS ACCUSED HIM OF MANY THINGS: BUT HE ANSWEREDE NOTHING.TJ# 4 AND PILATE ASKED HIM AGAIN, SAYING, ANSWEREST THOU NOTHING? BEHOLD HOW' MANY THINGS THEY WITNESS AGAINST THEE.,=# 5 BUT JESUS YET ANSWERED NOTHING; SO THAT PILATE MARVELLED.OI# 6 NOW AT THAT FEAST HE RELEASED UNTO THEM ONE PRISONER, WHOMSOEVER THEYJ DESIRED.AM# 7 AND THERE WAS ONE NAMED BARABBAS, WHICH LAY BOUND WITH THEM THAT HAD MADE E INSURRECTION WITH HIM, WHO HAD COMMITTED MURDER IN THE INSURRECTION.EK# 8 AND THE MULTITUDE CRYING ALOUD BEGAN TO DESIRE HIM TO DO AS HE HAD EVERE DONE UNTO THEM.I# 9 BUT PILATE ANSWERED THEM, SAYING, WILL YE THAT I RELEASE UNTO YOU THEN KING OF THE JEWS?C# 10 FOR HE KNEW THAT THE CHIEF PRIESTS HAD DELIVERED HIM FOR ENVY.MJ# 11 BUT THE CHIEF PRIESTS MOVED THE PEOPLE, THAT HE SHOULD RATHER RELEASE BARABBAS UNTO THEM.K# 12 AND PILATE ANSWERED AND SAID AGAIN UNTO THEM, WHAT WILL YE THEN THAT ID5 SHALL DO UNTO HIM WHOM YE CALL THE KING OF THE JEWS? +# 13 AND THEY CRIED OUT AGAIN, CRUCIFY HIM.IL# 14 THEN PILATE SAID UNTO THEM, WHY, WHAT EVIL HATH HE DONE? AND THEY CRIED' OUT THE MORE EXCEEDINGLY, CRUCIFY HIM.TI# 15 AND SO PILATE, WILLING TO CONTENT THE PEOPLE, RELEASED BARABBAS UNTOEF THEM, AND DELIVERED JESUS, WHEN HE HAD SCOURGED HIM, TO BE CRUCIFIED.M# 16 AND THE SOLDIERS LED HIM AWAY INTO THE HALL, CALLED PRAETORIUM; AND THEYT CALL TOGETHER THE WHOLE BAND.M# 17 AND THEY CLOTHED HIM WITH PURPLE, AND PLATTED A CROWN OF THORNS, AND PUT 00A'AD%5%T6%! ! IT ABOUT HIS HEAD, 5# 18 AND BEGAN TO SALUTE HIM, HAIL, KING OF THE JEWS!NK# 19 AND THEY SMOTE HIM ON THE HEAD WITH A REED, AND DID SPIT UPON HIM, ANDL# BOWING THEIR KNEES WORSHIPPED HIM. M# 20 AND WHEN THEY HAD MOCKED HIM, THEY TOOK OFF THE PURPLE FROM HIM, AND PUTS8 HIS OWN CLOTHES ON HIM, AND LED HIM OUT TO CRUCIFY HIM.K# 21 AND THEY COMPEL ONE SIMON A CYRENIAN, WHO PASSED BY, COMING OUT OF THEO? COUNTRY, THE FATHER OF ALEXANDER AND RUFUS, TO BEAR HIS CROSS.DM# 22 AND THEY BRING HIM UNTO THE PLACE GOLGOTHA, WHICH IS, BEING INTERPRETED,A THE PLACE OF A SKULL.K# 23 AND THEY GAVE HIM TO DRINK WINE MINGLED WITH MYRRH: BUT HE RECEIVED ITN NOT.NL# 24 AND WHEN THEY HAD CRUCIFIED HIM, THEY PARTED HIS GARMENTS, CASTING LOTS' UPON THEM, WHAT EVERY MAN SHOULD TAKE.S7# 25 AND IT WAS THE THIRD HOUR, AND THEY CRUCIFIED HIM..K# 26 AND THE SUPERSCRIPTION OF HIS ACCUSATION WAS WRITTEN OVER, THE KING OFO THE JEWS.J# 27 AND WITH HIM THEY CRUCIFY TWO THIEVES; THE ONE ON HIS RIGHT HAND, AND THE OTHER ON HIS LEFT.HK# 28 AND THE SCRIPTURE WAS FULFILLED, WHICH SAITH, AND HE WAS NUMBERED WITHH THE TRANSGRESSORS.LL# 29 AND THEY THAT PASSED BY RAILED ON HIM, WAGGING THEIR HEADS, AND SAYING,D AH, THOU THAT DESTROYEST THE TEMPLE, AND BUILDEST IT IN THREE DAYS,0# 30 SAVE THYSELF, AND COME DOWN FROM THE CROSS.K# 31 LIKEWISE ALSO THE CHIEF PRIESTS MOCKING SAID AMONG THEMSELVES WITH THET2 SCRIBES, HE SAVED OTHERS; HIMSELF HE CANNOT SAVE.J# 32 LET CHRIST THE KING OF ISRAEL DESCEND NOW FROM THE CROSS, THAT WE MAYD SEE AND BELIEVE. AND THEY THAT WERE CRUCIFIED WITH HIM REVILED HIM.M# 33 AND WHEN THE SIXTH HOUR WAS COME, THERE WAS DARKNESS OVER THE WHOLE LANDH UNTIL THE NINTH HOUR.M# 34 AND AT THE NINTH HOUR JESUS CRIED WITH A LOUD VOICE, SAYING, ELOI, ELOI,YM LAMA SABACHTHANI? WHICH IS, BEING INTERPRETED, MY GOD, MY GOD, WHY HAST THOUI FORSAKEN ME?II# 35 AND SOME OF THEM THAT STOOD BY, WHEN THEY HEARD IT, SAID, BEHOLD, HEA CALLETH ELIAS.LK# 36 AND ONE RAN AND FILLED A SPUNGE FULL OF VINEGAR, AND PUT IT ON A REED,DM AND GAVE HIM TO DRINK, SAYING, LET ALONE; LET US SEE WHETHER ELIAS WILL COME  TO TAKE HIM DOWN.># 37 AND JESUS CRIED WITH A LOUD VOICE, AND GAVE UP THE GHOST.M# 38 AND THE VAIL OF THE TEMPLE WAS RENT IN TWAIN FROM THE TOP TO THE BOTTOM.YI# 39 AND WHEN THE CENTURION, WHICH STOOD OVER AGAINST HIM, SAW THAT HE SOTN CRIED OUT, AND GAVE UP THE GHOST, HE SAID, TRULY THIS MAN WAS THE SON OF GOD.C# 40 THERE WERE ALSO WOMEN LOOKING ON AFAR OFF: AMONG WHOM WAS MARYNK MAGDALENE, AND MARY THE MOTHER OF JAMES THE LESS AND OF JOSES, AND SALOME;EI# 41 (WHO ALSO, WHEN HE WAS IN GALILEE, FOLLOWED HIM, AND MINISTERED UNTOJB HIM;) AND MANY OTHER WOMEN WHICH CAME UP WITH HIM UNTO JERUSALEM.M# 42 AND NOW WHEN THE EVEN WAS COME, BECAUSE IT WAS THE PREPARATION, THAT IS,  THE DAY BEFORE THE SABBATH,J# 43 JOSEPH OF ARIMATHAEA, AN HONOURABLE COUNSELLOR, WHICH ALSO WAITED FORN THE KINGDOM OF GOD, CAME, AND WENT IN BOLDLY UNTO PILATE, AND CRAVED THE BODY OF JESUS.K# 44 AND PILATE MARVELLED IF HE WERE ALREADY DEAD: AND CALLING UNTO HIM THE < CENTURION, HE ASKED HIM WHETHER HE HAD BEEN ANY WHILE DEAD.F# 45 AND WHEN HE KNEW IT OF THE CENTURION, HE GAVE THE BODY TO JOSEPH.H# 46 AND HE BOUGHT FINE LINEN, AND TOOK HIM DOWN, AND WRAPPED HIM IN THEN LINEN, AND LAID HIM IN A SEPULCHRE WHICH WAS HEWN OUT OF A ROCK, AND ROLLED A& STONE UNTO THE DOOR OF THE SEPULCHRE.H# 47 AND MARY MAGDALENE AND MARY THE MOTHER OF JOSES BEHELD WHERE HE WAS LAID. = CHAPTER 16 OI# 1 AND WHEN THE SABBATH WAS PAST, MARY MAGDALENE, AND MARY THE MOTHER OFTL JAMES, AND SALOME, HAD BOUGHT SWEET SPICES, THAT THEY MIGHT COME AND ANOINT HIM.EK# 2 AND VERY EARLY IN THE MORNING THE FIRST DAY OF THE WEEK, THEY CAME UNTOT( THE SEPULCHRE AT THE RISING OF THE SUN.M# 3 AND THEY SAID AMONG THEMSELVES, WHO SHALL ROLL US AWAY THE STONE FROM THE  DOOR OF THE SEPULCHRE? M# 4 AND WHEN THEY LOOKED, THEY SAW THAT THE STONE WAS ROLLED AWAY: FOR IT WASS VERY GREAT.H# 5 AND ENTERING INTO THE SEPULCHRE, THEY SAW A YOUNG MAN SITTING ON THEG RIG00AA<%X>%+%O-%TADATADATAHT SIDE, CLOTHED IN A LONG WHITE GARMENT; AND THEY WERE AFFRIGHTED.II# 6 AND HE SAITH UNTO THEM, BE NOT AFFRIGHTED: YE SEEK JESUS OF NAZARETH,NN WHICH WAS CRUCIFIED: HE IS RISEN; HE IS NOT HERE: BEHOLD THE PLACE WHERE THEY LAID HIM.J# 7 BUT GO YOUR WAY, TELL HIS DISCIPLES AND PETER THAT HE GOETH BEFORE YOU; INTO GALILEE: THERE SHALL YE SEE HIM, AS HE SAID UNTO YOU.WM# 8 AND THEY WENT OUT QUICKLY, AND FLED FROM THE SEPULCHRE; FOR THEY TREMBLEDTG AND WERE AMAZED: NEITHER SAID THEY ANY THING TO ANY MAN; FOR THEY WERED AFRAID.I# 9 NOW WHEN JESUS WAS RISEN EARLY THE FIRST DAY OF THE WEEK, HE APPEAREDN? FIRST TO MARY MAGDALENE, OUT OF WHOM HE HAD CAST SEVEN DEVILS. K# 10 AND SHE WENT AND TOLD THEM THAT HAD BEEN WITH HIM, AS THEY MOURNED AND  WEPT.J# 11 AND THEY, WHEN THEY HAD HEARD THAT HE WAS ALIVE, AND HAD BEEN SEEN OF HER, BELIEVED NOT.,M# 12 AFTER THAT HE APPEARED IN ANOTHER FORM UNTO TWO OF THEM, AS THEY WALKED,H AND WENT INTO THE COUNTRY.WL# 13 AND THEY WENT AND TOLD IT UNTO THE RESIDUE: NEITHER BELIEVED THEY THEM.M# 14 AFTERWARD HE APPEARED UNTO THE ELEVEN AS THEY SAT AT MEAT, AND UPBRAIDEDRJ THEM WITH THEIR UNBELIEF AND HARDNESS OF HEART, BECAUSE THEY BELIEVED NOT, THEM WHICH HAD SEEN HIM AFTER HE WAS RISEN.K# 15 AND HE SAID UNTO THEM, GO YE INTO ALL THE WORLD, AND PREACH THE GOSPELE TO EVERY CREATURE.FL# 16 HE THAT BELIEVETH AND IS BAPTIZED SHALL BE SAVED; BUT HE THAT BELIEVETH NOT SHALL BE DAMNED.HJ# 17 AND THESE SIGNS SHALL FOLLOW THEM THAT BELIEVE; IN MY NAME SHALL THEY4 CAST OUT DEVILS; THEY SHALL SPEAK WITH NEW TONGUES;H# 18 THEY SHALL TAKE UP SERPENTS; AND IF THEY DRINK ANY DEADLY THING, ITF SHALL NOT HURT THEM; THEY SHALL LAY HANDS ON THE SICK, AND THEY SHALL RECOVER.HI# 19 SO THEN AFTER THE LORD HAD SPOKEN UNTO THEM, HE WAS RECEIVED UP INTOD* HEAVEN, AND SAT ON THE RIGHT HAND OF GOD.I# 20 AND THEY WENT FORTH, AND PREACHED EVERY WHERE, THE LORD WORKING WITHE: THEM, AND CONFIRMING THE WORD WITH SIGNS FOLLOWING. AMEN.LOW THEM THAT BELIEVE; IN MY NAME SHALL THEY4 C * BOOK42 LUKE = CHAPTER 1 L# 1 FORASMUCH AS MANY HAVE TAKEN IN HAND TO SET FORTH IN ORDER A DECLARATION9 OF THOSE THINGS WHICH ARE MOST SURELY BELIEVED AMONG US,SF# 2 EVEN AS THEY DELIVERED THEM UNTO US, WHICH FROM THE BEGINNING WERE) EYEWITNESSES, AND MINISTERS OF THE WORD;DM# 3 IT SEEMED GOOD TO ME ALSO, HAVING HAD PERFECT UNDERSTANDING OF ALL THINGSAM FROM THE VERY FIRST, TO WRITE UNTO THEE IN ORDER, MOST EXCELLENT THEOPHILUS,IL# 4 THAT THOU MIGHTEST KNOW THE CERTAINTY OF THOSE THINGS, WHEREIN THOU HAST BEEN INSTRUCTED. H# 5 THERE WAS IN THE DAYS OF HEROD, THE KING OF JUDAEA, A CERTAIN PRIESTM NAMED ZACHARIAS, OF THE COURSE OF ABIA: AND HIS WIFE WAS OF THE DAUGHTERS OFH# AARON, AND HER NAME WAS ELISABETH. L# 6 AND THEY WERE BOTH RIGHTEOUS BEFORE GOD, WALKING IN ALL THE COMMANDMENTS& AND ORDINANCES OF THE LORD BLAMELESS.K# 7 AND THEY HAD NO CHILD, BECAUSE THAT ELISABETH WAS BARREN, AND THEY BOTHM! WERE NOW WELL STRICKEN IN YEARS.TM# 8 AND IT CAME TO PASS, THAT WHILE HE EXECUTED THE PRIESTS OFFICE BEFORE GODT IN THE ORDER OF HIS COURSE,F# 9 ACCORDING TO THE CUSTOM OF THE PRIESTS OFFICE, HIS LOT WAS TO BURN2 INCENSE WHEN HE WENT INTO THE TEMPLE OF THE LORD.K# 10 AND THE WHOLE MULTITUDE OF THE PEOPLE WERE PRAYING WITHOUT AT THE TIMEO OF INCENSE.K# 11 AND THERE APPEARED UNTO HIM AN ANGEL OF THE LORD STANDING ON THE RIGHT  SIDE OF THE ALTAR OF INCENSE.I# 12 AND WHEN ZACHARIAS SAW HIM, HE WAS TROUBLED, AND FEAR FELL UPON HIM.TH# 13 BUT THE ANGEL SAID UNTO HIM, FEAR NOT, ZACHARIAS: FOR THY PRAYER ISM HEARD; AND THY WIFE ELISABETH SHALL BEAR THEE A SON, AND THOU SHALT CALL HISS NAME JOHN.LH# 14 AND THOU SHALT HAVE JOY AND GLADNESS; AND MANY SHALL REJOICE AT HIS BIRTH.OL# 15 FOR HE SHALL BE GREAT IN THE SIGHT OF THE LORD, AND SHALL DRINK NEITHERM WINE NOR STRONG DRINK; AND HE SHALL BE FILLED WITH THE HOLY GHOST, EVEN FROMD HIS MOTHERS WOMB.L# 16 AND MANY OF THE CHILDREN OF ISRAEL SHALL HE TURN TO THE LORD THEIR GOD.M# 17 AND HE SHALL GO BEFORE HIM IN THE SPIRIT AND POWER OF E00A'AD%5%T6%! !LIAS, TO TURN THEL HEARTS OF THE FATHERS TO THE CHILDREN, AND THE DISOBEDIENT TO THE WISDOM OF8 THE JUST; TO MAKE READY A PEOPLE PREPARED FOR THE LORD.K# 18 AND ZACHARIAS SAID UNTO THE ANGEL, WHEREBY SHALL I KNOW THIS? FOR I AMI0 AN OLD MAN, AND MY WIFE WELL STRICKEN IN YEARS.K# 19 AND THE ANGEL ANSWERING SAID UNTO HIM, I AM GABRIEL, THAT STAND IN THEMM PRESENCE OF GOD; AND AM SENT TO SPEAK UNTO THEE, AND TO SHEW THEE THESE GLAD TIDINGS.J# 20 AND, BEHOLD, THOU SHALT BE DUMB, AND NOT ABLE TO SPEAK, UNTIL THE DAYK THAT THESE THINGS SHALL BE PERFORMED, BECAUSE THOU BELIEVEST NOT MY WORDS, * WHICH SHALL BE FULFILLED IN THEIR SEASON.J# 21 AND THE PEOPLE WAITED FOR ZACHARIAS, AND MARVELLED THAT HE TARRIED SO LONG IN THE TEMPLE.K# 22 AND WHEN HE CAME OUT, HE COULD NOT SPEAK UNTO THEM: AND THEY PERCEIVEDSH THAT HE HAD SEEN A VISION IN THE TEMPLE: FOR HE BECKONED UNTO THEM, AND REMAINED SPEECHLESS. L# 23 AND IT CAME TO PASS, THAT, AS SOON AS THE DAYS OF HIS MINISTRATION WERE, ACCOMPLISHED, HE DEPARTED TO HIS OWN HOUSE.L# 24 AND AFTER THOSE DAYS HIS WIFE ELISABETH CONCEIVED, AND HID HERSELF FIVE MONTHS, SAYING,M# 25 THUS HATH THE LORD DEALT WITH ME IN THE DAYS WHEREIN HE LOOKED ON ME, TOT! TAKE AWAY MY REPROACH AMONG MEN..K# 26 AND IN THE SIXTH MONTH THE ANGEL GABRIEL WAS SENT FROM GOD UNTO A CITYS OF GALILEE, NAMED NAZARETH,I# 27 TO A VIRGIN ESPOUSED TO A MAN WHOSE NAME WAS JOSEPH, OF THE HOUSE OFA& DAVID; AND THE VIRGINS NAME WAS MARY.I# 28 AND THE ANGEL CAME IN UNTO HER, AND SAID, HAIL, THOU THAT ART HIGHLY.? FAVOURED, THE LORD IS WITH THEE: BLESSED ART THOU AMONG WOMEN. J# 29 AND WHEN SHE SAW HIM, SHE WAS TROUBLED AT HIS SAYING, AND CAST IN HER/ MIND WHAT MANNER OF SALUTATION THIS SHOULD BE. L# 30 AND THE ANGEL SAID UNTO HER, FEAR NOT, MARY: FOR THOU HAST FOUND FAVOUR WITH GOD.M# 31 AND, BEHOLD, THOU SHALT CONCEIVE IN THY WOMB, AND BRING FORTH A SON, ANDE SHALT CALL HIS NAME JESUS.EK# 32 HE SHALL BE GREAT, AND SHALL BE CALLED THE SON OF THE HIGHEST: AND THE = LORD GOD SHALL GIVE UNTO HIM THE THRONE OF HIS FATHER DAVID: L# 33 AND HE SHALL REIGN OVER THE HOUSE OF JACOB FOR EVER; AND OF HIS KINGDOM THERE SHALL BE NO END.,J# 34 THEN SAID MARY UNTO THE ANGEL, HOW SHALL THIS BE, SEEING I KNOW NOT A MAN?GM# 35 AND THE ANGEL ANSWERED AND SAID UNTO HER, THE HOLY GHOST SHALL COME UPONAN THEE, AND THE POWER OF THE HIGHEST SHALL OVERSHADOW THEE: THEREFORE ALSO THATG HOLY THING WHICH SHALL BE BORN OF THEE SHALL BE CALLED THE SON OF GOD.OL# 36 AND, BEHOLD, THY COUSIN ELISABETH, SHE HATH ALSO CONCEIVED A SON IN HERF OLD AGE: AND THIS IS THE SIXTH MONTH WITH HER, WHO WAS CALLED BARREN..# 37 FOR WITH GOD NOTHING SHALL BE IMPOSSIBLE.L# 38 AND MARY SAID, BEHOLD THE HANDMAID OF THE LORD; BE IT UNTO ME ACCORDING. TO THY WORD. AND THE ANGEL DEPARTED FROM HER.M# 39 AND MARY AROSE IN THOSE DAYS, AND WENT INTO THE HILL COUNTRY WITH HASTE,V INTO A CITY OF JUDA;ED# 40 AND ENTERED INTO THE HOUSE OF ZACHARIAS, AND SALUTED ELISABETH.L# 41 AND IT CAME TO PASS, THAT, WHEN ELISABETH HEARD THE SALUTATION OF MARY,K THE BABE LEAPED IN HER WOMB; AND ELISABETH WAS FILLED WITH THE HOLY GHOST:DJ# 42 AND SHE SPAKE OUT WITH A LOUD VOICE, AND SAID, BLESSED ART THOU AMONG- WOMEN, AND BLESSED IS THE FRUIT OF THY WOMB.EL# 43 AND WHENCE IS THIS TO ME, THAT THE MOTHER OF MY LORD SHOULD COME TO ME?J# 44 FOR, LO, AS SOON AS THE VOICE OF THY SALUTATION SOUNDED IN MINE EARS,$ THE BABE LEAPED IN MY WOMB FOR JOY.J# 45 AND BLESSED IS SHE THAT BELIEVED: FOR THERE SHALL BE A PERFORMANCE OF0 THOSE THINGS WHICH WERE TOLD HER FROM THE LORD.2# 46 AND MARY SAID, MY SOUL DOTH MAGNIFY THE LORD,3# 47 AND MY SPIRIT HATH REJOICED IN GOD MY SAVIOUR.DM# 48 FOR HE HATH REGARDED THE LOW ESTATE OF HIS HANDMAIDEN: FOR, BEHOLD, FROMH2 HENCEFORTH ALL GENERATIONS SHALL CALL ME BLESSED.H# 49 FOR HE THAT IS MIGHTY HATH DONE TO ME GREAT THINGS; AND HOLY IS HIS NAME.J# 50 AND HIS MERCY IS ON THEM THAT FEAR HIM FROM GENERATION TO GENERATION.M# 51 HE HATH SHEWED STRENGTH WITH HIS ARM; HE HATH SCATTERED THE PROUD IN THEG IMAGI00AA<%X>%+%O-%TADATADATANATION OF THEIR HEARTS.LJ# 52 HE HATH PUT DOWN THE MIGHTY FROM THEIR SEATS, AND EXALTED THEM OF LOW DEGREE.J# 53 HE HATH FILLED THE HUNGRY WITH GOOD THINGS; AND THE RICH HE HATH SENT EMPTY AWAY.D# 54 HE HATH HOLPEN HIS SERVANT ISRAEL, IN REMEMBRANCE OF HIS MERCY;F# 55 AS HE SPAKE TO OUR FATHERS, TO ABRAHAM, AND TO HIS SEED FOR EVER.H# 56 AND MARY ABODE WITH HER ABOUT THREE MONTHS, AND RETURNED TO HER OWN HOUSE.H# 57 NOW ELISABETHS FULL TIME CAME THAT SHE SHOULD BE DELIVERED; AND SHE BROUGHT FORTH A SON.HK# 58 AND HER NEIGHBOURS AND HER COUSINS HEARD HOW THE LORD HAD SHEWED GREATT, MERCY UPON HER; AND THEY REJOICED WITH HER.L# 59 AND IT CAME TO PASS, THAT ON THE EIGHTH DAY THEY CAME TO CIRCUMCISE THED CHILD; AND THEY CALLED HIM ZACHARIAS, AFTER THE NAME OF HIS FATHER.K# 60 AND HIS MOTHER ANSWERED AND SAID, NOT SO; BUT HE SHALL BE CALLED JOHN.DK# 61 AND THEY SAID UNTO HER, THERE IS NONE OF THY KINDRED THAT IS CALLED BYI THIS NAME.TE# 62 AND THEY MADE SIGNS TO HIS FATHER, HOW HE WOULD HAVE HIM CALLED.K# 63 AND HE ASKED FOR A WRITING TABLE, AND WROTE, SAYING, HIS NAME IS JOHN. AND THEY MARVELLED ALL.H# 64 AND HIS MOUTH WAS OPENED IMMEDIATELY, AND HIS TONGUE LOOSED, AND HE SPAKE, AND PRAISED GOD.L# 65 AND FEAR CAME ON ALL THAT DWELT ROUND ABOUT THEM: AND ALL THESE SAYINGS> WERE NOISED ABROAD THROUGHOUT ALL THE HILL COUNTRY OF JUDAEA.L# 66 AND ALL THEY THAT HEARD THEM LAID THEM UP IN THEIR HEARTS, SAYING, WHATF MANNER OF CHILD SHALL THIS BE! AND THE HAND OF THE LORD WAS WITH HIM.M# 67 AND HIS FATHER ZACHARIAS WAS FILLED WITH THE HOLY GHOST, AND PROPHESIED,  SAYING,L# 68 BLESSED BE THE LORD GOD OF ISRAEL; FOR HE HATH VISITED AND REDEEMED HIS PEOPLE,G# 69 AND HATH RAISED UP AN HORN OF SALVATION FOR US IN THE HOUSE OF HIST SERVANT DAVID;TM# 70 AS HE SPAKE BY THE MOUTH OF HIS HOLY PROPHETS, WHICH HAVE BEEN SINCE THER WORLD BEGAN: L# 71 THAT WE SHOULD BE SAVED FROM OUR ENEMIES, AND FROM THE HAND OF ALL THAT HATE US;IK# 72 TO PERFORM THE MERCY PROMISED TO OUR FATHERS, AND TO REMEMBER HIS HOLY COVENANT;3# 73 THE OATH WHICH HE SWARE TO OUR FATHER ABRAHAM,NL# 74 THAT HE WOULD GRANT UNTO US, THAT WE BEING DELIVERED OUT OF THE HAND OF* OUR ENEMIES MIGHT SERVE HIM WITHOUT FEAR,H# 75 IN HOLINESS AND RIGHTEOUSNESS BEFORE HIM, ALL THE DAYS OF OUR LIFE.J# 76 AND THOU, CHILD, SHALT BE CALLED THE PROPHET OF THE HIGHEST: FOR THOU: SHALT GO BEFORE THE FACE OF THE LORD TO PREPARE HIS WAYS;M# 77 TO GIVE KNOWLEDGE OF SALVATION UNTO HIS PEOPLE BY THE REMISSION OF THEIR  SINS,L# 78 THROUGH THE TENDER MERCY OF OUR GOD; WHEREBY THE DAYSPRING FROM ON HIGH HATH VISITED US,4K# 79 TO GIVE LIGHT TO THEM THAT SIT IN DARKNESS AND IN THE SHADOW OF DEATH,R) TO GUIDE OUR FEET INTO THE WAY OF PEACE.5K# 80 AND THE CHILD GREW, AND WAXED STRONG IN SPIRIT, AND WAS IN THE DESERTSD) TILL THE DAY OF HIS SHEWING UNTO ISRAEL.F = CHAPTER 2 H# 1 AND IT CAME TO PASS IN THOSE DAYS, THAT THERE WENT OUT A DECREE FROM4 CAESAR AUGUSTUS THAT ALL THE WORLD SHOULD BE TAXED.I# 2 (AND THIS TAXING WAS FIRST MADE WHEN CYRENIUS WAS GOVERNOR OF SYRIA.)R:# 3 AND ALL WENT TO BE TAXED, EVERY ONE INTO HIS OWN CITY.K# 4 AND JOSEPH ALSO WENT UP FROM GALILEE, OUT OF THE CITY OF NAZARETH, INTODN JUDAEA, UNTO THE CITY OF DAVID, WHICH IS CALLED BETHLEHEM; (BECAUSE HE WAS OF! THE HOUSE AND LINEAGE OF DAVID:)TD# 5 TO BE TAXED WITH MARY HIS ESPOUSED WIFE, BEING GREAT WITH CHILD.J# 6 AND SO IT WAS, THAT, WHILE THEY WERE THERE, THE DAYS WERE ACCOMPLISHED THAT SHE SHOULD BE DELIVERED.J# 7 AND SHE BROUGHT FORTH HER FIRST BORN SON, AND WRAPPED HIM IN SWADDLINGM CLOTHES, AND LAID HIM IN A MANGER; BECAUSE THERE WAS NO ROOM FOR THEM IN THEH INN.EF# 8 AND THERE WERE IN THE SAME COUNTRY SHEPHERDS ABIDING IN THE FIELD,) KEEPING WATCH OVER THEIR FLOCK BY NIGHT. L# 9 AND, LO, THE ANGEL OF THE LORD CAME UPON THEM, AND THE GLORY OF THE LORD3 SHONE ROUND ABOUT THEM: AND THEY WERE SORE AFRAID.NJ# 10 AND THE ANGEL SAID UNTO THEM, FEAR NOT: FOR, BEHOLD, I BRING YOU GOOD4 TIDINGS OF GREAT JOY, WHICH SHALL BE TO ALL PEOPLE.K# 11 F00A'AD%5%T6%! !OR UNTO YOU IS BORN THIS DAY IN THE CITY OF DAVID A SAVIOUR, WHICH ISA CHRIST THE LORD. I# 12 AND THIS SHALL BE A SIGN UNTO YOU; YE SHALL FIND THE BABE WRAPPED INY& SWADDLING CLOTHES, LYING IN A MANGER.K# 13 AND SUDDENLY THERE WAS WITH THE ANGEL A MULTITUDE OF THE HEAVENLY HOST  PRAISING GOD, AND SAYING,K# 14 GLORY TO GOD IN THE HIGHEST, AND ON EARTH PEACE, GOOD WILL TOWARD MEN.AM# 15 AND IT CAME TO PASS, AS THE ANGELS WERE GONE AWAY FROM THEM INTO HEAVEN, N THE SHEPHERDS SAID ONE TO ANOTHER, LET US NOW GO EVEN UNTO BETHLEHEM, AND SEEJ THIS THING WHICH IS COME TO PASS, WHICH THE LORD HATH MADE KNOWN UNTO US.M# 16 AND THEY CAME WITH HASTE, AND FOUND MARY, AND JOSEPH, AND THE BABE LYING IN A MANGER. K# 17 AND WHEN THEY HAD SEEN IT, THEY MADE KNOWN ABROAD THE SAYING WHICH WASP! TOLD THEM CONCERNING THIS CHILD.YM# 18 AND ALL THEY THAT HEARD IT WONDERED AT THOSE THINGS WHICH WERE TOLD THEM  BY THE SHEPHERDS.D# 19 BUT MARY KEPT ALL THESE THINGS, AND PONDERED THEM IN HER HEART.H# 20 AND THE SHEPHERDS RETURNED, GLORIFYING AND PRAISING GOD FOR ALL THE? THINGS THAT THEY HAD HEARD AND SEEN, AS IT WAS TOLD UNTO THEM.AM# 21 AND WHEN EIGHT DAYS WERE ACCOMPLISHED FOR THE CIRCUMCISING OF THE CHILD, I HIS NAME WAS CALLED JESUS, WHICH WAS SO NAMED OF THE ANGEL BEFORE HE WAS  CONCEIVED IN THE WOMB.NM# 22 AND WHEN THE DAYS OF HER PURIFICATION ACCORDING TO THE LAW OF MOSES WEREWI ACCOMPLISHED, THEY BROUGHT HIM TO JERUSALEM, TO PRESENT HIM TO THE LORD;GJ# 23 (AS IT IS WRITTEN IN THE LAW OF THE LORD, EVERY MALE THAT OPENETH THE( WOMB SHALL BE CALLED HOLY TO THE LORD;)K# 24 AND TO OFFER A SACRIFICE ACCORDING TO THAT WHICH IS SAID IN THE LAW OF 7 THE LORD, A PAIR OF TURTLEDOVES, OR TWO YOUNG PIGEONS. J# 25 AND, BEHOLD, THERE WAS A MAN IN JERUSALEM, WHOSE NAME WAS SIMEON; ANDM THE SAME MAN WAS JUST AND DEVOUT, WAITING FOR THE CONSOLATION OF ISRAEL: ANDG THE HOLY GHOST WAS UPON HIM.CK# 26 AND IT WAS REVEALED UNTO HIM BY THE HOLY GHOST, THAT HE SHOULD NOT SEE(, DEATH, BEFORE HE HAD SEEN THE LORDS CHRIST.L# 27 AND HE CAME BY THE SPIRIT INTO THE TEMPLE: AND WHEN THE PARENTS BROUGHT? IN THE CHILD JESUS, TO DO FOR HIM AFTER THE CUSTOM OF THE LAW,@# 28 THEN TOOK HE HIM UP IN HIS ARMS, AND BLESSED GOD, AND SAID,I# 29 LORD, NOW LETTEST THOU THY SERVANT DEPART IN PEACE, ACCORDING TO THYM WORD:+# 30 FOR MINE EYES HAVE SEEN THY SALVATION,N<# 31 WHICH THOU HAST PREPARED BEFORE THE FACE OF ALL PEOPLE;I# 32 A LIGHT TO LIGHTEN THE GENTILES, AND THE GLORY OF THY PEOPLE ISRAEL.EM# 33 AND JOSEPH AND HIS MOTHER MARVELLED AT THOSE THINGS WHICH WERE SPOKEN OFP HIM. I# 34 AND SIMEON BLESSED THEM, AND SAID UNTO MARY HIS MOTHER, BEHOLD, THISOM CHILD IS SET FOR THE FALL AND RISING AGAIN OF MANY IN ISRAEL; AND FOR A SIGN, WHICH SHALL BE SPOKEN AGAINST; M# 35 (YEA, A SWORD SHALL PIERCE THROUGH THY OWN SOUL ALSO,) THAT THE THOUGHTSN OF MANY HEARTS MAY BE REVEALED.J# 36 AND THERE WAS ONE ANNA, A PROPHETESS, THE DAUGHTER OF PHANUEL, OF THEK TRIBE OF ASER: SHE WAS OF A GREAT AGE, AND HAD LIVED WITH AN HUSBAND SEVENM YEARS FROM HER VIRGINITY;J# 37 AND SHE WAS A WIDOW OF ABOUT FOURSCORE AND FOUR YEARS, WHICH DEPARTEDM NOT FROM THE TEMPLE, BUT SERVED GOD WITH FASTINGS AND PRAYERS NIGHT AND DAY. K# 38 AND SHE COMING IN THAT INSTANT GAVE THANKS LIKEWISE UNTO THE LORD, ANDOB SPAKE OF HIM TO ALL THEM THAT LOOKED FOR REDEMPTION IN JERUSALEM.M# 39 AND WHEN THEY HAD PERFORMED ALL THINGS ACCORDING TO THE LAW OF THE LORD,U8 THEY RETURNED INTO GALILEE, TO THEIR OWN CITY NAZARETH.L# 40 AND THE CHILD GREW, AND WAXED STRONG IN SPIRIT, FILLED WITH WISDOM: AND THE GRACE OF GOD WAS UPON HIM.RE# 41 NOW HIS PARENTS WENT TO JERUSALEM EVERY YEAR AT THE FEAST OF THEG PASSOVER.J# 42 AND WHEN HE WAS TWELVE YEARS OLD, THEY WENT UP TO JERUSALEM AFTER THE CUSTOM OF THE FEAST. L# 43 AND WHEN THEY HAD FULFILLED THE DAYS, AS THEY RETURNED, THE CHILD JESUSG TARRIED BEHIND IN JERUSALEM; AND JOSEPH AND HIS MOTHER KNEW NOT OF IT. E# 44 BUT THEY, SUPPOSING HIM TO HAVE BEEN IN THE COMPANY, WENT A DAYSAD JOURNEY; AND THEY SOUGHT HIM AM00AA<%X>%+%O-%TADATADATAONG THEIR KINSFOLK AND ACQUAINTANCE.F# 45 AND WHEN THEY FOUND HIM NOT, THEY TURNED BACK AGAIN TO JERUSALEM, SEEKING HIM.TM# 46 AND IT CAME TO PASS, THAT AFTER THREE DAYS THEY FOUND HIM IN THE TEMPLE,TH SITTING IN THE MIDST OF THE DOCTORS, BOTH HEARING THEM, AND ASKING THEM QUESTIONS.EM# 47 AND ALL THAT HEARD HIM WERE ASTONISHED AT HIS UNDERSTANDING AND ANSWERS.EK# 48 AND WHEN THEY SAW HIM, THEY WERE AMAZED: AND HIS MOTHER SAID UNTO HIM, L SON, WHY HAST THOU THUS DEALT WITH US? BEHOLD, THY FATHER AND I HAVE SOUGHT THEE SORROWING.K# 49 AND HE SAID UNTO THEM, HOW IS IT THAT YE SOUGHT ME? WIST YE NOT THAT IS# MUST BE ABOUT MY FATHERS BUSINESS?SA# 50 AND THEY UNDERSTOOD NOT THE SAYING WHICH HE SPAKE UNTO THEM. K# 51 AND HE WENT DOWN WITH THEM, AND CAME TO NAZARETH, AND WAS SUBJECT UNTO : THEM: BUT HIS MOTHER KEPT ALL THESE SAYINGS IN HER HEART.J# 52 AND JESUS INCREASED IN WISDOM AND STATURE, AND IN FAVOUR WITH GOD AND MAN. = CHAPTER 3 M# 1 NOW IN THE FIFTEENTH YEAR OF THE REIGN OF TIBERIUS CAESAR, PONTIUS PILATEEG BEING GOVERNOR OF JUDAEA, AND HEROD BEING TETRARCH OF GALILEE, AND HISSI BROTHER PHILIP TETRARCH OF ITURAEA AND OF THE REGION OF TRACHONITIS, ANDS" LYSANIAS THE TETRARCH OF ABILENE,M# 2 ANNAS AND CAIAPHAS BEING THE HIGH PRIESTS, THE WORD OF GOD CAME UNTO JOHNE( THE SON OF ZACHARIAS IN THE WILDERNESS.K# 3 AND HE CAME INTO ALL THE COUNTRY ABOUT JORDAN, PREACHING THE BAPTISM OFN& REPENTANCE FOR THE REMISSION OF SINS;L# 4 AS IT IS WRITTEN IN THE BOOK OF THE WORDS OF ESAIAS THE PROPHET, SAYING,K THE VOICE OF ONE CRYING IN THE WILDERNESS, PREPARE YE THE WAY OF THE LORD,  MAKE HIS PATHS STRAIGHT.RF# 5 EVERY VALLEY SHALL BE FILLED, AND EVERY MOUNTAIN AND HILL SHALL BEN BROUGHT LOW; AND THE CROOKED SHALL BE MADE STRAIGHT, AND THE ROUGH WAYS SHALL BE MADE SMOOTH;1# 6 AND ALL FLESH SHALL SEE THE SALVATION OF GOD.EJ# 7 THEN SAID HE TO THE MULTITUDE THAT CAME FORTH TO BE BAPTIZED OF HIM, OJ GENERATION OF VIPERS, WHO HATH WARNED YOU TO FLEE FROM THE WRATH TO COME?K# 8 BRING FORTH THEREFORE FRUITS WORTHY OF REPENTANCE, AND BEGIN NOT TO SAY K WITHIN YOURSELVES, WE HAVE ABRAHAM TO OUR FATHER: FOR I SAY UNTO YOU, THATY? GOD IS ABLE OF THESE STONES TO RAISE UP CHILDREN UNTO ABRAHAM.LG# 9 AND NOW ALSO THE AXE IS LAID UNTO THE ROOT OF THE TREES: EVERY TREE N THEREFORE WHICH BRINGETH NOT FORTH GOOD FRUIT IS HEWN DOWN, AND CAST INTO THE FIRE.=# 10 AND THE PEOPLE ASKED HIM, SAYING, WHAT SHALL WE DO THEN?OM# 11 HE ANSWERETH AND SAITH UNTO THEM, HE THAT HATH TWO COATS, LET HIM IMPARTTC TO HIM THAT HATH NONE; AND HE THAT HATH MEAT, LET HIM DO LIKEWISE.IM# 12 THEN CAME ALSO PUBLICANS TO BE BAPTIZED, AND SAID UNTO HIM, MASTER, WHAT SHALL WE DO?TK# 13 AND HE SAID UNTO THEM, EXACT NO MORE THAN THAT WHICH IS APPOINTED YOU.TM# 14 AND THE SOLDIERS LIKEWISE DEMANDED OF HIM, SAYING, AND WHAT SHALL WE DO?FN AND HE SAID UNTO THEM, DO VIOLENCE TO NO MAN, NEITHER ACCUSE ANY FALSELY; AND BE CONTENT WITH YOUR WAGES.M# 15 AND AS THE PEOPLE WERE IN EXPECTATION, AND ALL MEN MUSED IN THEIR HEARTS- OF JOHN, WHETHER HE WERE THE CHRIST, OR NOT;LJ# 16 JOHN ANSWERED, SAYING UNTO THEM ALL, I INDEED BAPTIZE YOU WITH WATER;N BUT ONE MIGHTIER THAN I COMETH, THE LATCHET OF WHOSE SHOES I AM NOT WORTHY TOA UNLOOSE: HE SHALL BAPTIZE YOU WITH THE HOLY GHOST AND WITH FIRE:IJ# 17 WHOSE FAN IS IN HIS HAND, AND HE WILL THOROUGHLY PURGE HIS FLOOR, ANDL WILL GATHER THE WHEAT INTO HIS GARNER; BUT THE CHAFF HE WILL BURN WITH FIRE UNQUENCHABLE.J# 18 AND MANY OTHER THINGS IN HIS EXHORTATION PREACHED HE UNTO THE PEOPLE.K# 19 BUT HEROD THE TETRARCH, BEING REPROVED BY HIM FOR HERODIAS HIS BROTHERH: PHILIPS WIFE, AND FOR ALL THE EVILS WHICH HEROD HAD DONE,># 20 ADDED YET THIS ABOVE ALL, THAT HE SHUT UP JOHN IN PRISON.L# 21 NOW WHEN ALL THE PEOPLE WERE BAPTIZED, IT CAME TO PASS, THAT JESUS ALSO4 BEING BAPTIZED, AND PRAYING, THE HEAVEN WAS OPENED,M# 22 AND THE HOLY GHOST DESCENDED IN A BODILY SHAPE LIKE A DOVE UPON HIM, ANDTL A VOICE CAME FROM HEAVEN, WHICH SAID, THOU ART MY BELOVED SON; IN THEE I AM WELL PLEASE00A'AD%5%T6%! !D.K# 23 AND JESUS HIMSELF BEGAN TO BE ABOUT THIRTY YEARS OF AGE, BEING (AS WAST; SUPPOSED) THE SON OF JOSEPH, WHICH WAS THE SON OF HELI, ITNK# 24 WHICH WAS THE SON OF MATTHAT, WHICH WAS THE SON OF LEVI, WHICH WAS THEWH SON OF MELCHI, WHICH WAS THE SON OF JANNA, WHICH WAS THE SON OF JOSEPH,J# 25 WHICH WAS THE SON OF MATTATHIAS, WHICH WAS THE SON OF AMOS, WHICH WASH THE SON OF NAUM, WHICH WAS THE SON OF ESLI, WHICH WAS THE SON OF NAGGE,K# 26 WHICH WAS THE SON OF MAATH, WHICH WAS THE SON OF MATTATHIAS, WHICH WASAJ THE SON OF SEMEI, WHICH WAS THE SON OF JOSEPH, WHICH WAS THE SON OF JUDA,K# 27 WHICH WAS THE SON OF JOANNA, WHICH WAS THE SON OF RHESA, WHICH WAS THESM SON OF ZOROBABEL, WHICH WAS THE SON OF SALATHIEL, WHICH WAS THE SON OF NERI, J# 28 WHICH WAS THE SON OF MELCHI, WHICH WAS THE SON OF ADDI, WHICH WAS THEE SON OF COSAM, WHICH WAS THE SON OF ELMODAM, WHICH WAS THE SON OF ER,HK# 29 WHICH WAS THE SON OF JOSE, WHICH WAS THE SON OF ELIEZER, WHICH WAS THEOG SON OF JORIM, WHICH WAS THE SON OF MATTHAT, WHICH WAS THE SON OF LEVI,WJ# 30 WHICH WAS THE SON OF SIMEON, WHICH WAS THE SON OF JUDA, WHICH WAS THEI SON OF JOSEPH, WHICH WAS THE SON OF JONAN, WHICH WAS THE SON OF ELIAKIM,,J# 31 WHICH WAS THE SON OF MELEA, WHICH WAS THE SON OF MENAN, WHICH WAS THEJ SON OF MATTATHA, WHICH WAS THE SON OF NATHAN, WHICH WAS THE SON OF DAVID,M# 32 WHICH WAS THE SON OF JESSE, WHICH WAS THE SON OF OBED, WHICH WAS THE SONND OF BOOZ, WHICH WAS THE SON OF SALMON, WHICH WAS THE SON OF NAASSON,L# 33 WHICH WAS THE SON OF AMINADAB, WHICH WAS THE SON OF ARAM, WHICH WAS THEF SON OF ESROM, WHICH WAS THE SON OF PHARES, WHICH WAS THE SON OF JUDA,J# 34 WHICH WAS THE SON OF JACOB, WHICH WAS THE SON OF ISAAC, WHICH WAS THEI SON OF ABRAHAM, WHICH WAS THE SON OF THARA, WHICH WAS THE SON OF NACHOR,TK# 35 WHICH WAS THE SON OF SARUCH, WHICH WAS THE SON OF RAGAU, WHICH WAS THETF SON OF PHALEC, WHICH WAS THE SON OF HEBER, WHICH WAS THE SON OF SALA,J# 36 WHICH WAS THE SON OF CAINAN, WHICH WAS THE SON OF ARPHAXAD, WHICH WASG THE SON OF SEM, WHICH WAS THE SON OF NOE, WHICH WAS THE SON OF LAMECH,SJ# 37 WHICH WAS THE SON OF MATHUSALA, WHICH WAS THE SON OF ENOCH, WHICH WASN THE SON OF JARED, WHICH WAS THE SON OF MALELEEL, WHICH WAS THE SON OF CAINAN,L# 38 WHICH WAS THE SON OF ENOS, WHICH WAS THE SON OF SETH, WHICH WAS THE SON# OF ADAM, WHICH WAS THE SON OF GOD.G = CHAPTER 4 L# 1 AND JESUS BEING FULL OF THE HOLY GHOST RETURNED FROM JORDAN, AND WAS LED# BY THE SPIRIT INTO THE WILDERNESS,CG# 2 BEING FORTY DAYS TEMPTED OF THE DEVIL. AND IN THOSE DAYS HE DID EATO: NOTHING: AND WHEN THEY WERE ENDED, HE AFTERWARD HUNGERED.H# 3 AND THE DEVIL SAID UNTO HIM, IF THOU BE THE SON OF GOD, COMMAND THIS STONE THAT IT BE MADE BREAD.HM# 4 AND JESUS ANSWERED HIM, SAYING, IT IS WRITTEN, THAT MAN SHALL NOT LIVE BYF' BREAD ALONE, BUT BY EVERY WORD OF GOD. K# 5 AND THE DEVIL, TAKING HIM UP INTO AN HIGH MOUNTAIN, SHEWED UNTO HIM ALLT/ THE KINGDOMS OF THE WORLD IN A MOMENT OF TIME.TI# 6 AND THE DEVIL SAID UNTO HIM, ALL THIS POWER WILL I GIVE THEE, AND THEHN GLORY OF THEM: FOR THAT IS DELIVERED UNTO ME; AND TO WHOMSOEVER I WILL I GIVE IT.:# 7 IF THOU THEREFORE WILT WORSHIP ME, ALL SHALL BE THINE.K# 8 AND JESUS ANSWERED AND SAID UNTO HIM, GET THEE BEHIND ME, SATAN: FOR IT I IS WRITTEN, THOU SHALT WORSHIP THE LORD THY GOD, AND HIM ONLY SHALT THOU  SERVE.M# 9 AND HE BROUGHT HIM TO JERUSALEM, AND SET HIM ON A PINNACLE OF THE TEMPLE,TL AND SAID UNTO HIM, IF THOU BE THE SON OF GOD, CAST THYSELF DOWN FROM HENCE:J# 10 FOR IT IS WRITTEN, HE SHALL GIVE HIS ANGELS CHARGE OVER THEE, TO KEEP THEE:K# 11 AND IN THEIR HANDS THEY SHALL BEAR THEE UP, LEST AT ANY TIME THOU DASHR THY FOOT AGAINST A STONE.L# 12 AND JESUS ANSWERING SAID UNTO HIM, IT IS SAID, THOU SHALT NOT TEMPT THE LORD THY GOD.J# 13 AND WHEN THE DEVIL HAD ENDED ALL THE TEMPTATION, HE DEPARTED FROM HIM FOR A SEASON.J# 14 AND JESUS RETURNED IN THE POWER OF THE SPIRIT INTO GALILEE: AND THERE; WENT OUT A FAME OF HIM THROUGH ALL THE REGION ROUND ABOUT.?# 15 AND HE TAUGHT IN THEIR SYNA00AA<%X>%+%O-%TADATADATAGOGUES, BEING GLORIFIED OF ALL.,G# 16 AND HE CAME TO NAZARETH, WHERE HE HAD BEEN BROUGHT UP: AND, AS HISTL CUSTOM WAS, HE WENT INTO THE SYNAGOGUE ON THE SABBATH DAY, AND STOOD UP FOR TO READ. I# 17 AND THERE WAS DELIVERED UNTO HIM THE BOOK OF THE PROPHET ESAIAS. ANDIF WHEN HE HAD OPENED THE BOOK, HE FOUND THE PLACE WHERE IT WAS WRITTEN,M# 18 THE SPIRIT OF THE LORD IS UPON ME, BECAUSE HE HATH ANOINTED ME TO PREACH M THE GOSPEL TO THE POOR; HE HATH SENT ME TO HEAL THE BROKENHEARTED, TO PREACHHM DELIVERANCE TO THE CAPTIVES, AND RECOVERING OF SIGHT TO THE BLIND, TO SET ATE LIBERTY THEM THAT ARE BRUISED,T/# 19 TO PREACH THE ACCEPTABLE YEAR OF THE LORD.SJ# 20 AND HE CLOSED THE BOOK, AND HE GAVE IT AGAIN TO THE MINISTER, AND SATK DOWN. AND THE EYES OF ALL THEM THAT WERE IN THE SYNAGOGUE WERE FASTENED ONU HIM.PK# 21 AND HE BEGAN TO SAY UNTO THEM, THIS DAY IS THIS SCRIPTURE FULFILLED INE YOUR EARS.DG# 22 AND ALL BARE HIM WITNESS, AND WONDERED AT THE GRACIOUS WORDS WHICHED PROCEEDED OUT OF HIS MOUTH. AND THEY SAID, IS NOT THIS JOSEPHS SON?D# 23 AND HE SAID UNTO THEM, YE WILL SURELY SAY UNTO ME THIS PROVERB,M PHYSICIAN, HEAL THYSELF: WHATSOEVER WE HAVE HEARD DONE IN CAPERNAUM, DO ALSOH HERE IN THY COUNTRY.MJ# 24 AND HE SAID, VERILY I SAY UNTO YOU, NO PROPHET IS ACCEPTED IN HIS OWN COUNTRY.NI# 25 BUT I TELL YOU OF A TRUTH, MANY WIDOWS WERE IN ISRAEL IN THE DAYS OFUJ ELIAS, WHEN THE HEAVEN WAS SHUT UP THREE YEARS AND SIX MONTHS, WHEN GREAT$ FAMINE WAS THROUGHOUT ALL THE LAND;G# 26 BUT UNTO NONE OF THEM WAS ELIAS SENT, SAVE UNTO SAREPTA, A CITY OF & SIDON, UNTO A WOMAN THAT WAS A WIDOW.K# 27 AND MANY LEPERS WERE IN ISRAEL IN THE TIME OF ELISEUS THE PROPHET; ANDC5 NONE OF THEM WAS CLEANSED, SAVING NAAMAN THE SYRIAN. M# 28 AND ALL THEY IN THE SYNAGOGUE, WHEN THEY HEARD THESE THINGS, WERE FILLED5 WITH WRATH,K# 29 AND ROSE UP, AND THRUST HIM OUT OF THE CITY, AND LED HIM UNTO THE BROWAH OF THE HILL WHEREON THEIR CITY WAS BUILT, THAT THEY MIGHT CAST HIM DOWN HEADLONG.;# 30 BUT HE PASSING THROUGH THE MIDST OF THEM WENT HIS WAY,SJ# 31 AND CAME DOWN TO CAPERNAUM, A CITY OF GALILEE, AND TAUGHT THEM ON THE SABBATH DAYS.K# 32 AND THEY WERE ASTONISHED AT HIS DOCTRINE: FOR HIS WORD WAS WITH POWER.IK# 33 AND IN THE SYNAGOGUE THERE WAS A MAN, WHICH HAD A SPIRIT OF AN UNCLEANH( DEVIL, AND CRIED OUT WITH A LOUD VOICE,F# 34 SAYING, LET US ALONE; WHAT HAVE WE TO DO WITH THEE, THOU JESUS OFN NAZARETH? ART THOU COME TO DESTROY US? I KNOW THEE WHO THOU ART; THE HOLY ONE OF GOD.L# 35 AND JESUS REBUKED HIM, SAYING, HOLD THY PEACE, AND COME OUT OF HIM. ANDM WHEN THE DEVIL HAD THROWN HIM IN THE MIDST, HE CAME OUT OF HIM, AND HURT HIM2 NOT.EI# 36 AND THEY WERE ALL AMAZED, AND SPAKE AMONG THEMSELVES, SAYING, WHAT AIN WORD IS THIS! FOR WITH AUTHORITY AND POWER HE COMMANDETH THE UNCLEAN SPIRITS, AND THEY COME OUT. G# 37 AND THE FAME OF HIM WENT OUT INTO EVERY PLACE OF THE COUNTRY ROUNDU ABOUT.ZJ# 38 AND HE AROSE OUT OF THE SYNAGOGUE, AND ENTERED INTO SIMONS HOUSE. ANDL SIMONS WIFES MOTHER WAS TAKEN WITH A GREAT FEVER; AND THEY BESOUGHT HIM FOR HER.DG# 39 AND HE STOOD OVER HER, AND REBUKED THE FEVER; AND IT LEFT HER: ANDR0 IMMEDIATELY SHE AROSE AND MINISTERED UNTO THEM.I# 40 NOW WHEN THE SUN WAS SETTING, ALL THEY THAT HAD ANY SICK WITH DIVERS L DISEASES BROUGHT THEM UNTO HIM; AND HE LAID HIS HANDS ON EVERY ONE OF THEM, AND HEALED THEM. G# 41 AND DEVILS ALSO CAME OUT OF MANY, CRYING OUT, AND SAYING, THOU ARTUL CHRIST THE SON OF GOD. AND HE REBUKING THEM SUFFERED THEM NOT TO SPEAK: FOR THEY KNEW THAT HE WAS CHRIST.K# 42 AND WHEN IT WAS DAY, HE DEPARTED AND WENT INTO A DESERT PLACE: AND THEEI PEOPLE SOUGHT HIM, AND CAME UNTO HIM, AND STAYED HIM, THAT HE SHOULD NOT. DEPART FROM THEM.L# 43 AND HE SAID UNTO THEM, I MUST PREACH THE KINGDOM OF GOD TO OTHER CITIES ALSO: FOR THEREFORE AM I SENT.S2# 44 AND HE PREACHED IN THE SYNAGOGUES OF GALILEE. = CHAPTER 5 N# 1 AND IT CAME TO PASS, THAT, AS THE PEOPLE PRESSED UPON HIM TO HEAR THE WORD, OF GOD, HE STOOD BY THE LAKE OF GENNESARET,K# 2 AN00B'AD%5%T6%! !D SAW TWO SHIPS STANDING BY THE LAKE: BUT THE FISHERMEN WERE GONE OUT & OF THEM, AND WERE WASHING THEIR NETS.J# 3 AND HE ENTERED INTO ONE OF THE SHIPS, WHICH WAS SIMONS, AND PRAYED HIMM THAT HE WOULD THRUST OUT A LITTLE FROM THE LAND. AND HE SAT DOWN, AND TAUGHT  THE PEOPLE OUT OF THE SHIP.J# 4 NOW WHEN HE HAD LEFT SPEAKING, HE SAID UNTO SIMON, LAUNCH OUT INTO THE, DEEP, AND LET DOWN YOUR NETS FOR A DRAUGHT.L# 5 AND SIMON ANSWERING SAID UNTO HIM, MASTER, WE HAVE TOILED ALL THE NIGHT,J AND HAVE TAKEN NOTHING: NEVERTHELESS AT THY WORD I WILL LET DOWN THE NET.K# 6 AND WHEN THEY HAD THIS DONE, THEY INCLOSED A GREAT MULTITUDE OF FISHES:N AND THEIR NET BRAKE.AM# 7 AND THEY BECKONED UNTO THEIR PARTNERS, WHICH WERE IN THE OTHER SHIP, THAT M THEY SHOULD COME AND HELP THEM. AND THEY CAME, AND FILLED BOTH THE SHIPS, SOT THAT THEY BEGAN TO SINK.OM# 8 WHEN SIMON PETER SAW IT, HE FELL DOWN AT JESUS KNEES, SAYING, DEPART FROMI# ME; FOR I AM A SINFUL MAN, O LORD.WL# 9 FOR HE WAS ASTONISHED, AND ALL THAT WERE WITH HIM, AT THE DRAUGHT OF THE FISHES WHICH THEY HAD TAKEN: E# 10 AND SO WAS ALSO JAMES, AND JOHN, THE SONS OF ZEBEDEE, WHICH WERENJ PARTNERS WITH SIMON. AND JESUS SAID UNTO SIMON, FEAR NOT; FROM HENCEFORTH THOU SHALT CATCH MEN.I# 11 AND WHEN THEY HAD BROUGHT THEIR SHIPS TO LAND, THEY FORSOOK ALL, ANDH FOLLOWED HIM.M# 12 AND IT CAME TO PASS, WHEN HE WAS IN A CERTAIN CITY, BEHOLD A MAN FULL OF L LEPROSY: WHO SEEING JESUS FELL ON HIS FACE, AND BESOUGHT HIM, SAYING, LORD,( IF THOU WILT, THOU CANST MAKE ME CLEAN.H# 13 AND HE PUT FORTH HIS HAND, AND TOUCHED HIM, SAYING, I WILL: BE THOU6 CLEAN. AND IMMEDIATELY THE LEPROSY DEPARTED FROM HIM.G# 14 AND HE CHARGED HIM TO TELL NO MAN: BUT GO, AND SHEW THYSELF TO THE I PRIEST, AND OFFER FOR THY CLEANSING, ACCORDING AS MOSES COMMANDED, FOR AF TESTIMONY UNTO THEM.OD# 15 BUT SO MUCH THE MORE WENT THERE A FAME ABROAD OF HIM: AND GREATC MULTITUDES CAME TOGETHER TO HEAR, AND TO BE HEALED BY HIM OF THEIRB INFIRMITIES.Y=# 16 AND HE WITHDREW HIMSELF INTO THE WILDERNESS, AND PRAYED.HI# 17 AND IT CAME TO PASS ON A CERTAIN DAY, AS HE WAS TEACHING, THAT THERE I WERE PHARISEES AND DOCTORS OF THE LAW SITTING BY, WHICH WERE COME OUT OF L EVERY TOWN OF GALILEE, AND JUDAEA, AND JERUSALEM: AND THE POWER OF THE LORD WAS PRESENT TO HEAL THEM.J# 18 AND, BEHOLD, MEN BROUGHT IN A BED A MAN WHICH WAS TAKEN WITH A PALSY:B AND THEY SOUGHT MEANS TO BRING HIM IN, AND TO LAY HIM BEFORE HIM.M# 19 AND WHEN THEY COULD NOT FIND BY WHAT WAY THEY MIGHT BRING HIM IN BECAUSETL OF THE MULTITUDE, THEY WENT UPON THE HOUSETOP, AND LET HIM DOWN THROUGH THE3 TILING WITH HIS COUCH INTO THE MIDST BEFORE JESUS.TE# 20 AND WHEN HE SAW THEIR FAITH, HE SAID UNTO HIM, MAN, THY SINS AREL FORGIVEN THEE.NK# 21 AND THE SCRIBES AND THE PHARISEES BEGAN TO REASON, SAYING, WHO IS THIS A WHICH SPEAKETH BLASPHEMIES? WHO CAN FORGIVE SINS, BUT GOD ALONE?AJ# 22 BUT WHEN JESUS PERCEIVED THEIR THOUGHTS, HE ANSWERING SAID UNTO THEM, WHAT REASON YE IN YOUR HEARTS?AM# 23 WHETHER IS EASIER, TO SAY, THY SINS BE FORGIVEN THEE; OR TO SAY, RISE UPT AND WALK?F# 24 BUT THAT YE MAY KNOW THAT THE SON OF MAN HATH POWER UPON EARTH TOL FORGIVE SINS, (HE SAID UNTO THE SICK OF THE PALSY,) I SAY UNTO THEE, ARISE,0 AND TAKE UP THY COUCH, AND GO INTO THINE HOUSE.M# 25 AND IMMEDIATELY HE ROSE UP BEFORE THEM, AND TOOK UP THAT WHEREON HE LAY,N/ AND DEPARTED TO HIS OWN HOUSE, GLORIFYING GOD.UK# 26 AND THEY WERE ALL AMAZED, AND THEY GLORIFIED GOD, AND WERE FILLED WITHY2 FEAR, SAYING, WE HAVE SEEN STRANGE THINGS TO DAY.J# 27 AND AFTER THESE THINGS HE WENT FORTH, AND SAW A PUBLICAN, NAMED LEVI,C SITTING AT THE RECEIPT OF CUSTOM: AND HE SAID UNTO HIM, FOLLOW ME.S0# 28 AND HE LEFT ALL, ROSE UP, AND FOLLOWED HIM.L# 29 AND LEVI MADE HIM A GREAT FEAST IN HIS OWN HOUSE: AND THERE WAS A GREAT< COMPANY OF PUBLICANS AND OF OTHERS THAT SAT DOWN WITH THEM.L# 30 BUT THEIR SCRIBES AND PHARISEES MURMURED AGAINST HIS DISCIPLES, SAYING,4 WHY DO YE EAT AND DRINK WITH PUBLICANS AND SINNERS?G# 31 AND JESUS ANSWERING SAID UNTO T00 BA<%X>%+%O-%TADATADATAHEM, THEY THAT ARE WHOLE NEED NOT A # PHYSICIAN; BUT THEY THAT ARE SICK.MA# 32 I CAME NOT TO CALL THE RIGHTEOUS, BUT SINNERS TO REPENTANCE.FI# 33 AND THEY SAID UNTO HIM, WHY DO THE DISCIPLES OF JOHN FAST OFTEN, AND M MAKE PRAYERS, AND LIKEWISE THE DISCIPLES OF THE PHARISEES; BUT THINE EAT ANDL DRINK? H# 34 AND HE SAID UNTO THEM, CAN YE MAKE THE CHILDREN OF THE BRIDECHAMBER) FAST, WHILE THE BRIDEGROOM IS WITH THEM?YI# 35 BUT THE DAYS WILL COME, WHEN THE BRIDEGROOM SHALL BE TAKEN AWAY FROMS. THEM, AND THEN SHALL THEY FAST IN THOSE DAYS.K# 36 AND HE SPAKE ALSO A PARABLE UNTO THEM; NO MAN PUTTETH A PIECE OF A NEWBL GARMENT UPON AN OLD; IF OTHERWISE, THEN BOTH THE NEW MAKETH A RENT, AND THE> PIECE THAT WAS TAKEN OUT OF THE NEW AGREETH NOT WITH THE OLD.I# 37 AND NO MAN PUTTETH NEW WINE INTO OLD BOTTLES; ELSE THE NEW WINE WILLHA BURST THE BOTTLES, AND BE SPILLED, AND THE BOTTLES SHALL PERISH.BG# 38 BUT NEW WINE MUST BE PUT INTO NEW BOTTLES; AND BOTH ARE PRESERVED.MG# 39 NO MAN ALSO HAVING DRUNK OLD WINE STRAIGHTWAY DESIRETH NEW: FOR HE. SAITH, THE OLD IS BETTER. = CHAPTER 6 K# 1 AND IT CAME TO PASS ON THE SECOND SABBATH AFTER THE FIRST, THAT HE WENTNM THROUGH THE CORN FIELDS; AND HIS DISCIPLES PLUCKED THE EARS OF CORN, AND DIDE" EAT, RUBBING THEM IN THEIR HANDS.L# 2 AND CERTAIN OF THE PHARISEES SAID UNTO THEM, WHY DO YE THAT WHICH IS NOT" LAWFUL TO DO ON THE SABBATH DAYS?I# 3 AND JESUS ANSWERING THEM SAID, HAVE YE NOT READ SO MUCH AS THIS, WHATEF DAVID DID, WHEN HIMSELF WAS AN HUNGRED, AND THEY WHICH WERE WITH HIM;J# 4 HOW HE WENT INTO THE HOUSE OF GOD, AND DID TAKE AND EAT THE SHEWBREAD,L AND GAVE ALSO TO THEM THAT WERE WITH HIM; WHICH IT IS NOT LAWFUL TO EAT BUT FOR THE PRIESTS ALONE? K# 5 AND HE SAID UNTO THEM, THAT THE SON OF MAN IS LORD ALSO OF THE SABBATH.NI# 6 AND IT CAME TO PASS ALSO ON ANOTHER SABBATH, THAT HE ENTERED INTO THEWI SYNAGOGUE AND TAUGHT: AND THERE WAS A MAN WHOSE RIGHT HAND WAS WITHERED.NK# 7 AND THE SCRIBES AND PHARISEES WATCHED HIM, WHETHER HE WOULD HEAL ON THET= SABBATH DAY; THAT THEY MIGHT FIND AN ACCUSATION AGAINST HIM.,J# 8 BUT HE KNEW THEIR THOUGHTS, AND SAID TO THE MAN WHICH HAD THE WITHEREDK HAND, RISE UP, AND STAND FORTH IN THE MIDST. AND HE AROSE AND STOOD FORTH.SL# 9 THEN SAID JESUS UNTO THEM, I WILL ASK YOU ONE THING; IS IT LAWFUL ON THEH SABBATH DAYS TO DO GOOD, OR TO DO EVIL? TO SAVE LIFE, OR TO DESTROY IT?I# 10 AND LOOKING ROUND ABOUT UPON THEM ALL, HE SAID UNTO THE MAN, STRETCHHM FORTH THY HAND. AND HE DID SO: AND HIS HAND WAS RESTORED WHOLE AS THE OTHER.YJ# 11 AND THEY WERE FILLED WITH MADNESS; AND COMMUNED ONE WITH ANOTHER WHAT THEY MIGHT DO TO JESUS.K# 12 AND IT CAME TO PASS IN THOSE DAYS, THAT HE WENT OUT INTO A MOUNTAIN TOE0 PRAY, AND CONTINUED ALL NIGHT IN PRAYER TO GOD.J# 13 AND WHEN IT WAS DAY, HE CALLED UNTO HIM HIS DISCIPLES: AND OF THEM HE+ CHOSE TWELVE, WHOM ALSO HE NAMED APOSTLES;YI# 14 SIMON, (WHOM HE ALSO NAMED PETER,) AND ANDREW HIS BROTHER, JAMES ANDE JOHN, PHILIP AND BARTHOLOMEW,M# 15 MATTHEW AND THOMAS, JAMES THE SON OF ALPHAEUS, AND SIMON CALLED ZELOTES, K# 16 AND JUDAS THE BROTHER OF JAMES, AND JUDAS ISCARIOT, WHICH ALSO WAS THE TRAITOR.AK# 17 AND HE CAME DOWN WITH THEM, AND STOOD IN THE PLAIN, AND THE COMPANY OFNE HIS DISCIPLES, AND A GREAT MULTITUDE OF PEOPLE OUT OF ALL JUDAEA AND M JERUSALEM, AND FROM THE SEA COAST OF TYRE AND SIDON, WHICH CAME TO HEAR HIM,L$ AND TO BE HEALED OF THEIR DISEASES;I# 18 AND THEY THAT WERE VEXED WITH UNCLEAN SPIRITS: AND THEY WERE HEALED.K# 19 AND THE WHOLE MULTITUDE SOUGHT TO TOUCH HIM: FOR THERE WENT VIRTUE OUT  OF HIM, AND HEALED THEM ALL. H# 20 AND HE LIFTED UP HIS EYES ON HIS DISCIPLES, AND SAID, BLESSED BE YE' POOR: FOR YOURS IS THE KINGDOM OF GOD.,K# 21 BLESSED ARE YE THAT HUNGER NOW: FOR YE SHALL BE FILLED. BLESSED ARE YEA# THAT WEEP NOW: FOR YE SHALL LAUGH.TJ# 22 BLESSED ARE YE, WHEN MEN SHALL HATE YOU, AND WHEN THEY SHALL SEPARATEJ YOU FROM THEIR COMPANY, AND SHALL REPROACH YOU, AND CAST OUT YOUR NAME AS EVIL, FOR THE SON OF MANS SAKE.J# 23 REJOICE YE IN00B'AD%5%T6%! ! THAT DAY, AND LEAP FOR JOY: FOR, BEHOLD, YOUR REWARD ISM GREAT IN HEAVEN: FOR IN THE LIKE MANNER DID THEIR FATHERS UNTO THE PROPHETS.BK# 24 BUT WOE UNTO YOU THAT ARE RICH! FOR YE HAVE RECEIVED YOUR CONSOLATION.HM# 25 WOE UNTO YOU THAT ARE FULL! FOR YE SHALL HUNGER. WOE UNTO YOU THAT LAUGHS" NOW! FOR YE SHALL MOURN AND WEEP.I# 26 WOE UNTO YOU, WHEN ALL MEN SHALL SPEAK WELL OF YOU! FOR SO DID THEIRN FATHERS TO THE FALSE PROPHETS.SL# 27 BUT I SAY UNTO YOU WHICH HEAR, LOVE YOUR ENEMIES, DO GOOD TO THEM WHICH HATE YOU,M# 28 BLESS THEM THAT CURSE YOU, AND PRAY FOR THEM WHICH DESPITEFULLY USE YOU.RJ# 29 AND UNTO HIM THAT SMITETH THEE ON THE ONE CHEEK OFFER ALSO THE OTHER;E AND HIM THAT TAKETH AWAY THY CLOAK FORBID NOT TO TAKE THY COAT ALSO.LK# 30 GIVE TO EVERY MAN THAT ASKETH OF THEE; AND OF HIM THAT TAKETH AWAY THYD GOODS ASK THEM NOT AGAIN.L# 31 AND AS YE WOULD THAT MEN SHOULD DO TO YOU, DO YE ALSO TO THEM LIKEWISE.M# 32 FOR IF YE LOVE THEM WHICH LOVE YOU, WHAT THANK HAVE YE? FOR SINNERS ALSOH LOVE THOSE THAT LOVE THEM.EL# 33 AND IF YE DO GOOD TO THEM WHICH DO GOOD TO YOU, WHAT THANK HAVE YE? FOR SINNERS ALSO DO EVEN THE SAME.TK# 34 AND IF YE LEND TO THEM OF WHOM YE HOPE TO RECEIVE, WHAT THANK HAVE YE?D< FOR SINNERS ALSO LEND TO SINNERS, TO RECEIVE AS MUCH AGAIN.H# 35 BUT LOVE YE YOUR ENEMIES, AND DO GOOD, AND LEND, HOPING FOR NOTHINGK AGAIN; AND YOUR REWARD SHALL BE GREAT, AND YE SHALL BE THE CHILDREN OF THE= HIGHEST: FOR HE IS KIND UNTO THE UNTHANKFUL AND TO THE EVIL.R?# 36 BE YE THEREFORE MERCIFUL, AS YOUR FATHER ALSO IS MERCIFUL.OL# 37 JUDGE NOT, AND YE SHALL NOT BE JUDGED: CONDEMN NOT, AND YE SHALL NOT BE. CONDEMNED: FORGIVE, AND YE SHALL BE FORGIVEN:J# 38 GIVE, AND IT SHALL BE GIVEN UNTO YOU; GOOD MEASURE, PRESSED DOWN, ANDL SHAKEN TOGETHER, AND RUNNING OVER, SHALL MEN GIVE INTO YOUR BOSOM. FOR WITHH THE SAME MEASURE THAT YE METE WITHAL IT SHALL BE MEASURED TO YOU AGAIN.J# 39 AND HE SPAKE A PARABLE UNTO THEM, CAN THE BLIND LEAD THE BLIND? SHALL# THEY NOT BOTH FALL INTO THE DITCH?EH# 40 THE DISCIPLE IS NOT ABOVE HIS MASTER: BUT EVERY ONE THAT IS PERFECT SHALL BE AS HIS MASTER.E# 41 AND WHY BEHOLDEST THOU THE MOTE THAT IS IN THY BROTHERS EYE, BUT2 PERCEIVEST NOT THE BEAM THAT IS IN THINE OWN EYE?K# 42 EITHER HOW CANST THOU SAY TO THY BROTHER, BROTHER, LET ME PULL OUT THETL MOTE THAT IS IN THINE EYE, WHEN THOU THYSELF BEHOLDEST NOT THE BEAM THAT ISK IN THINE OWN EYE? THOU HYPOCRITE, CAST OUT FIRST THE BEAM OUT OF THINE OWN I EYE, AND THEN SHALT THOU SEE CLEARLY TO PULL OUT THE MOTE THAT IS IN THYS BROTHERS EYE.M# 43 FOR A GOOD TREE BRINGETH NOT FORTH CORRUPT FRUIT; NEITHER DOTH A CORRUPTH TREE BRING FORTH GOOD FRUIT. G# 44 FOR EVERY TREE IS KNOWN BY HIS OWN FRUIT. FOR OF THORNS MEN DO NOT?7 GATHER FIGS, NOR OF A BRAMBLE BUSH GATHER THEY GRAPES. I# 45 A GOOD MAN OUT OF THE GOOD TREASURE OF HIS HEART BRINGETH FORTH THATSN WHICH IS GOOD; AND AN EVIL MAN OUT OF THE EVIL TREASURE OF HIS HEART BRINGETHF FORTH THAT WHICH IS EVIL: FOR OF THE ABUNDANCE OF THE HEART HIS MOUTH SPEAKETH.G# 46 AND WHY CALL YE ME, LORD, LORD, AND DO NOT THE THINGS WHICH I SAY?RK# 47 WHOSOEVER COMETH TO ME, AND HEARETH MY SAYINGS, AND DOETH THEM, I WILLE SHEW YOU TO WHOM HE IS LIKE:RI# 48 HE IS LIKE A MAN WHICH BUILT AN HOUSE, AND DIGGED DEEP, AND LAID THETK FOUNDATION ON A ROCK: AND WHEN THE FLOOD AROSE, THE STREAM BEAT VEHEMENTLYFI UPON THAT HOUSE, AND COULD NOT SHAKE IT: FOR IT WAS FOUNDED UPON A ROCK. E# 49 BUT HE THAT HEARETH, AND DOETH NOT, IS LIKE A MAN THAT WITHOUT AHL FOUNDATION BUILT AN HOUSE UPON THE EARTH; AGAINST WHICH THE STREAM DID BEATK VEHEMENTLY, AND IMMEDIATELY IT FELL; AND THE RUIN OF THAT HOUSE WAS GREAT.A = CHAPTER 7 K# 1 NOW WHEN HE HAD ENDED ALL HIS SAYINGS IN THE AUDIENCE OF THE PEOPLE, HEN ENTERED INTO CAPERNAUM.J# 2 AND A CERTAIN CENTURIONS SERVANT, WHO WAS DEAR UNTO HIM, WAS SICK, AND READY TO DIE.H# 3 AND WHEN HE HEARD OF JESUS, HE SENT UNTO HIM THE ELDERS OF THE JEWS,8 BESEECHING HIM THAT HE WOULD COME AND HEAL HIS SERVANT.M# 4 AND WHEN THEY CAME00BA<%X>%+%O-%TADATADATA TO JESUS, THEY BESOUGHT HIM INSTANTLY, SAYING, THAT HER' WAS WORTHY FOR WHOM HE SHOULD DO THIS:Y?# 5 FOR HE LOVETH OUR NATION, AND HE HATH BUILT US A SYNAGOGUE. J# 6 THEN JESUS WENT WITH THEM. AND WHEN HE WAS NOW NOT FAR FROM THE HOUSE,F THE CENTURION SENT FRIENDS TO HIM, SAYING UNTO HIM, LORD, TROUBLE NOTF THYSELF: FOR I AM NOT WORTHY THAT THOU SHOULDEST ENTER UNDER MY ROOF:M# 7 WHEREFORE NEITHER THOUGHT I MYSELF WORTHY TO COME UNTO THEE: BUT SAY IN AO& WORD, AND MY SERVANT SHALL BE HEALED.L# 8 FOR I ALSO AM A MAN SET UNDER AUTHORITY, HAVING UNDER ME SOLDIERS, AND IL SAY UNTO ONE, GO, AND HE GOETH; AND TO ANOTHER, COME, AND HE COMETH; AND TO& MY SERVANT, DO THIS, AND HE DOETH IT.M# 9 WHEN JESUS HEARD THESE THINGS, HE MARVELLED AT HIM, AND TURNED HIM ABOUT,DM AND SAID UNTO THE PEOPLE THAT FOLLOWED HIM, I SAY UNTO YOU, I HAVE NOT FOUNDT# SO GREAT FAITH, NO, NOT IN ISRAEL.M# 10 AND THEY THAT WERE SENT, RETURNING TO THE HOUSE, FOUND THE SERVANT WHOLE THAT HAD BEEN SICK.M# 11 AND IT CAME TO PASS THE DAY AFTER, THAT HE WENT INTO A CITY CALLED NAIN;S: AND MANY OF HIS DISCIPLES WENT WITH HIM, AND MUCH PEOPLE.L# 12 NOW WHEN HE CAME NIGH TO THE GATE OF THE CITY, BEHOLD, THERE WAS A DEADK MAN CARRIED OUT, THE ONLY SON OF HIS MOTHER, AND SHE WAS A WIDOW: AND MUCHA! PEOPLE OF THE CITY WAS WITH HER.EL# 13 AND WHEN THE LORD SAW HER, HE HAD COMPASSION ON HER, AND SAID UNTO HER, WEEP NOT.J# 14 AND HE CAME AND TOUCHED THE BIER: AND THEY THAT BARE HIM STOOD STILL.0 AND HE SAID, YOUNG MAN, I SAY UNTO THEE, ARISE.M# 15 AND HE THAT WAS DEAD SAT UP, AND BEGAN TO SPEAK. AND HE DELIVERED HIM TOI HIS MOTHER.I# 16 AND THERE CAME A FEAR ON ALL: AND THEY GLORIFIED GOD, SAYING, THAT ARK GREAT PROPHET IS RISEN UP AMONG US; AND, THAT GOD HATH VISITED HIS PEOPLE.OL# 17 AND THIS RUMOUR OF HIM WENT FORTH THROUGHOUT ALL JUDAEA, AND THROUGHOUT ALL THE REGION ROUND ABOUT.># 18 AND THE DISCIPLES OF JOHN SHEWED HIM OF ALL THESE THINGS.G# 19 AND JOHN CALLING UNTO HIM TWO OF HIS DISCIPLES SENT THEM TO JESUS,Y> SAYING, ART THOU HE THAT SHOULD COME? OR LOOK WE FOR ANOTHER?J# 20 WHEN THE MEN WERE COME UNTO HIM, THEY SAID, JOHN BAPTIST HATH SENT USI UNTO THEE, SAYING, ART THOU HE THAT SHOULD COME? OR LOOK WE FOR ANOTHER?PJ# 21 AND IN THAT SAME HOUR HE CURED MANY OF THEIR INFIRMITIES AND PLAGUES,B AND OF EVIL SPIRITS; AND UNTO MANY THAT WERE BLIND HE GAVE SIGHT.I# 22 THEN JESUS ANSWERING SAID UNTO THEM, GO YOUR WAY, AND TELL JOHN WHATGJ THINGS YE HAVE SEEN AND HEARD; HOW THAT THE BLIND SEE, THE LAME WALK, THEI LEPERS ARE CLEANSED, THE DEAF HEAR, THE DEAD ARE RAISED, TO THE POOR THE  GOSPEL IS PREACHED.># 23 AND BLESSED IS HE, WHOSOEVER SHALL NOT BE OFFENDED IN ME.J# 24 AND WHEN THE MESSENGERS OF JOHN WERE DEPARTED, HE BEGAN TO SPEAK UNTOM THE PEOPLE CONCERNING JOHN, WHAT WENT YE OUT INTO THE WILDERNESS FOR TO SEE?N A REED SHAKEN WITH THE WIND?GL# 25 BUT WHAT WENT YE OUT FOR TO SEE? A MAN CLOTHED IN SOFT RAIMENT? BEHOLD,H THEY WHICH ARE GORGEOUSLY APPARELLED, AND LIVE DELICATELY, ARE IN KINGS COURTS.I# 26 BUT WHAT WENT YE OUT FOR TO SEE? A PROPHET? YEA, I SAY UNTO YOU, AND  MUCH MORE THAN A PROPHET.J# 27 THIS IS HE, OF WHOM IT IS WRITTEN, BEHOLD, I SEND MY MESSENGER BEFORE3 THY FACE, WHICH SHALL PREPARE THY WAY BEFORE THEE. J# 28 FOR I SAY UNTO YOU, AMONG THOSE THAT ARE BORN OF WOMEN THERE IS NOT AN GREATER PROPHET THAN JOHN THE BAPTIST: BUT HE THAT IS LEAST IN THE KINGDOM OF GOD IS GREATER THAN HE.I# 29 AND ALL THE PEOPLE THAT HEARD HIM, AND THE PUBLICANS, JUSTIFIED GOD,R) BEING BAPTIZED WITH THE BAPTISM OF JOHN. F# 30 BUT THE PHARISEES AND LAWYERS REJECTED THE COUNSEL OF GOD AGAINST' THEMSELVES, BEING NOT BAPTIZED OF HIM.WD# 31 AND THE LORD SAID, WHEREUNTO THEN SHALL I LIKEN THE MEN OF THIS' GENERATION? AND TO WHAT ARE THEY LIKE?YL# 32 THEY ARE LIKE UNTO CHILDREN SITTING IN THE MARKETPLACE, AND CALLING ONEK TO ANOTHER, AND SAYING, WE HAVE PIPED UNTO YOU, AND YE HAVE NOT DANCED; WEE+ HAVE MOURNED TO YOU, AND YE HAVE NOT WEPT.DM# 33 FOR JOHN THE BAPTIST CAME NEITHER EATING BREAD NOR DRINKING00"B'AD%5%T6%! ! WINE; AND YEO SAY, HE HATH A DEVIL.E# 34 THE SON OF MAN IS COME EATING AND DRINKING; AND YE SAY, BEHOLD AGE GLUTTONOUS MAN, AND A WINEBIBBER, A FRIEND OF PUBLICANS AND SINNERS!L1# 35 BUT WISDOM IS JUSTIFIED OF ALL HER CHILDREN.TL# 36 AND ONE OF THE PHARISEES DESIRED HIM THAT HE WOULD EAT WITH HIM. AND HE5 WENT INTO THE PHARISEES HOUSE, AND SAT DOWN TO MEAT. M# 37 AND, BEHOLD, A WOMAN IN THE CITY, WHICH WAS A SINNER, WHEN SHE KNEW THATF JESUS SAT AT MEAT IN THE PHARISEES HOUSE, BROUGHT AN ALABASTER BOX OF OINTMENT,I# 38 AND STOOD AT HIS FEET BEHIND HIM WEEPING, AND BEGAN TO WASH HIS FEET I WITH TEARS, AND DID WIPE THEM WITH THE HAIRS OF HER HEAD, AND KISSED HISD+ FEET, AND ANOINTED THEM WITH THE OINTMENT.LG# 39 NOW WHEN THE PHARISEE WHICH HAD BIDDEN HIM SAW IT, HE SPAKE WITHIN J HIMSELF, SAYING, THIS MAN, IF HE WERE A PROPHET, WOULD HAVE KNOWN WHO ANDE WHAT MANNER OF WOMAN THIS IS THAT TOUCHETH HIM: FOR SHE IS A SINNER.NJ# 40 AND JESUS ANSWERING SAID UNTO HIM, SIMON, I HAVE SOMEWHAT TO SAY UNTO$ THEE. AND HE SAITH, MASTER, SAY ON.J# 41 THERE WAS A CERTAIN CREDITOR WHICH HAD TWO DEBTORS: THE ONE OWED FIVE$ HUNDRED PENCE, AND THE OTHER FIFTY.L# 42 AND WHEN THEY HAD NOTHING TO PAY, HE FRANKLY FORGAVE THEM BOTH. TELL ME- THEREFORE, WHICH OF THEM WILL LOVE HIM MOST?AM# 43 SIMON ANSWERED AND SAID, I SUPPOSE THAT HE, TO WHOM HE FORGAVE MOST. ANDW, HE SAID UNTO HIM, THOU HAST RIGHTLY JUDGED.L# 44 AND HE TURNED TO THE WOMAN, AND SAID UNTO SIMON, SEEST THOU THIS WOMAN?N I ENTERED INTO THINE HOUSE, THOU GAVEST ME NO WATER FOR MY FEET: BUT SHE HATHF WASHED MY FEET WITH TEARS, AND WIPED THEM WITH THE HAIRS OF HER HEAD.M# 45 THOU GAVEST ME NO KISS: BUT THIS WOMAN SINCE THE TIME I CAME IN HATH NOTL CEASED TO KISS MY FEET.L# 46 MY HEAD WITH OIL THOU DIDST NOT ANOINT: BUT THIS WOMAN HATH ANOINTED MY FEET WITH OINTMENT.K# 47 WHEREFORE I SAY UNTO THEE, HER SINS, WHICH ARE MANY, ARE FORGIVEN; FORH SHE LOVED MUCH: BUT TO WHOM LITTLE IS FORGIVEN, THE SAME LOVETH LITTLE.1# 48 AND HE SAID UNTO HER, THY SINS ARE FORGIVEN.WK# 49 AND THEY THAT SAT AT MEAT WITH HIM BEGAN TO SAY WITHIN THEMSELVES, WHOT" IS THIS THAT FORGIVETH SINS ALSO?F# 50 AND HE SAID TO THE WOMAN, THY FAITH HATH SAVED THEE; GO IN PEACE. = CHAPTER 8 I# 1 AND IT CAME TO PASS AFTERWARD, THAT HE WENT THROUGHOUT EVERY CITY ANDAK VILLAGE, PREACHING AND SHEWING THE GLAD TIDINGS OF THE KINGDOM OF GOD: ANDH THE TWELVE WERE WITH HIM,M# 2 AND CERTAIN WOMEN, WHICH HAD BEEN HEALED OF EVIL SPIRITS AND INFIRMITIES,6 MARY CALLED MAGDALENE, OUT OF WHOM WENT SEVEN DEVILS,F# 3 AND JOANNA THE WIFE OF CHUZA HERODS STEWARD, AND SUSANNA, AND MANY6 OTHERS, WHICH MINISTERED UNTO HIM OF THEIR SUBSTANCE.L# 4 AND WHEN MUCH PEOPLE WERE GATHERED TOGETHER, AND WERE COME TO HIM OUT OF# EVERY CITY, HE SPAKE BY A PARABLE: K# 5 A SOWER WENT OUT TO SOW HIS SEED: AND AS HE SOWED, SOME FELL BY THE WAYOE SIDE; AND IT WAS TRODDEN DOWN, AND THE FOWLS OF THE AIR DEVOURED IT. K# 6 AND SOME FELL UPON A ROCK; AND AS SOON AS IT WAS SPRUNG UP, IT WITHEREDM" AWAY, BECAUSE IT LACKED MOISTURE.L# 7 AND SOME FELL AMONG THORNS; AND THE THORNS SPRANG UP WITH IT, AND CHOKED IT.C# 8 AND OTHER FELL ON GOOD GROUND, AND SPRANG UP, AND BARE FRUIT ANEL HUNDREDFOLD. AND WHEN HE HAD SAID THESE THINGS, HE CRIED, HE THAT HATH EARS TO HEAR, LET HIM HEAR.OD# 9 AND HIS DISCIPLES ASKED HIM, SAYING, WHAT MIGHT THIS PARABLE BE?K# 10 AND HE SAID, UNTO YOU IT IS GIVEN TO KNOW THE MYSTERIES OF THE KINGDOMNG OF GOD: BUT TO OTHERS IN PARABLES; THAT SEEING THEY MIGHT NOT SEE, ANDA# HEARING THEY MIGHT NOT UNDERSTAND. :# 11 NOW THE PARABLE IS THIS: THE SEED IS THE WORD OF GOD.I# 12 THOSE BY THE WAY SIDE ARE THEY THAT HEAR; THEN COMETH THE DEVIL, ANDAJ TAKETH AWAY THE WORD OUT OF THEIR HEARTS, LEST THEY SHOULD BELIEVE AND BE SAVED. L# 13 THEY ON THE ROCK ARE THEY, WHICH, WHEN THEY HEAR, RECEIVE THE WORD WITHG JOY; AND THESE HAVE NO ROOT, WHICH FOR A WHILE BELIEVE, AND IN TIME OFE TEMPTATION FALL AWAY.L# 14 AND THAT WHICH FELL AMONG THORNS ARE THEY, WHICH, WHEN THEY HAVE HEARD,K G00*BA<%X>%+%O-%TADATADATAO FORTH, AND ARE CHOKED WITH CARES AND RICHES AND PLEASURES OF THIS LIFE,I" AND BRING NO FRUIT TO PERFECTION.M# 15 BUT THAT ON THE GOOD GROUND ARE THEY, WHICH IN AN HONEST AND GOOD HEART,RE HAVING HEARD THE WORD, KEEP IT, AND BRING FORTH FRUIT WITH PATIENCE.TI# 16 NO MAN, WHEN HE HATH LIGHTED A CANDLE, COVERETH IT WITH A VESSEL, ORYI PUTTETH IT UNDER A BED; BUT SETTETH IT ON A CANDLESTICK, THAT THEY WHICHT ENTER IN MAY SEE THE LIGHT.H# 17 FOR NOTHING IS SECRET, THAT SHALL NOT BE MADE MANIFEST; NEITHER ANY4 THING HID, THAT SHALL NOT BE KNOWN AND COME ABROAD.I# 18 TAKE HEED THEREFORE HOW YE HEAR: FOR WHOSOEVER HATH, TO HIM SHALL BEOJ GIVEN; AND WHOSOEVER HATH NOT, FROM HIM SHALL BE TAKEN EVEN THAT WHICH HE SEEMETH TO HAVE.IL# 19 THEN CAME TO HIM HIS MOTHER AND HIS BRETHREN, AND COULD NOT COME AT HIM FOR THE PRESS.VK# 20 AND IT WAS TOLD HIM BY CERTAIN WHICH SAID, THY MOTHER AND THY BRETHRENE% STAND WITHOUT, DESIRING TO SEE THEE.L# 21 AND HE ANSWERED AND SAID UNTO THEM, MY MOTHER AND MY BRETHREN ARE THESE' WHICH HEAR THE WORD OF GOD, AND DO IT.AL# 22 NOW IT CAME TO PASS ON A CERTAIN DAY, THAT HE WENT INTO A SHIP WITH HISL DISCIPLES: AND HE SAID UNTO THEM, LET US GO OVER UNTO THE OTHER SIDE OF THE LAKE. AND THEY LAUNCHED FORTH. K# 23 BUT AS THEY SAILED HE FELL ASLEEP: AND THERE CAME DOWN A STORM OF WINDPD ON THE LAKE; AND THEY WERE FILLED WITH WATER, AND WERE IN JEOPARDY.L# 24 AND THEY CAME TO HIM, AND AWOKE HIM, SAYING, MASTER, MASTER, WE PERISH.J THEN HE AROSE, AND REBUKED THE WIND AND THE RAGING OF THE WATER: AND THEY CEASED, AND THERE WAS A CALM.F# 25 AND HE SAID UNTO THEM, WHERE IS YOUR FAITH? AND THEY BEING AFRAIDD WONDERED, SAYING ONE TO ANOTHER, WHAT MANNER OF MAN IS THIS! FOR HE8 COMMANDETH EVEN THE WINDS AND WATER, AND THEY OBEY HIM.L# 26 AND THEY ARRIVED AT THE COUNTRY OF THE GADARENES, WHICH IS OVER AGAINST GALILEE.LL# 27 AND WHEN HE WENT FORTH TO LAND, THERE MET HIM OUT OF THE CITY A CERTAINK MAN, WHICH HAD DEVILS LONG TIME, AND WARE NO CLOTHES, NEITHER ABODE IN ANYD HOUSE, BUT IN THE TOMBS.NJ# 28 WHEN HE SAW JESUS, HE CRIED OUT, AND FELL DOWN BEFORE HIM, AND WITH AJ LOUD VOICE SAID, WHAT HAVE I TO DO WITH THEE, JESUS, THOU SON OF GOD MOST& HIGH? I BESEECH THEE, TORMENT ME NOT.I# 29 (FOR HE HAD COMMANDED THE UNCLEAN SPIRIT TO COME OUT OF THE MAN. FOREG OFTENTIMES IT HAD CAUGHT HIM: AND HE WAS KEPT BOUND WITH CHAINS AND INEF FETTERS; AND HE BRAKE THE BANDS, AND WAS DRIVEN OF THE DEVIL INTO THE WILDERNESS.)SH# 30 AND JESUS ASKED HIM, SAYING, WHAT IS THY NAME? AND HE SAID, LEGION:+ BECAUSE MANY DEVILS WERE ENTERED INTO HIM.TL# 31 AND THEY BESOUGHT HIM THAT HE WOULD NOT COMMAND THEM TO GO OUT INTO THE DEEP.K# 32 AND THERE WAS THERE AN HERD OF MANY SWINE FEEDING ON THE MOUNTAIN: ANDOG THEY BESOUGHT HIM THAT HE WOULD SUFFER THEM TO ENTER INTO THEM. AND HEN SUFFERED THEM.HM# 33 THEN WENT THE DEVILS OUT OF THE MAN, AND ENTERED INTO THE SWINE: AND THENF HERD RAN VIOLENTLY DOWN A STEEP PLACE INTO THE LAKE, AND WERE CHOKED.L# 34 WHEN THEY THAT FED THEM SAW WHAT WAS DONE, THEY FLED, AND WENT AND TOLD# IT IN THE CITY AND IN THE COUNTRY.TJ# 35 THEN THEY WENT OUT TO SEE WHAT WAS DONE; AND CAME TO JESUS, AND FOUNDM THE MAN, OUT OF WHOM THE DEVILS WERE DEPARTED, SITTING AT THE FEET OF JESUS,T6 CLOTHED, AND IN HIS RIGHT MIND: AND THEY WERE AFRAID.L# 36 THEY ALSO WHICH SAW IT TOLD THEM BY WHAT MEANS HE THAT WAS POSSESSED OF THE DEVILS WAS HEALED. I# 37 THEN THE WHOLE MULTITUDE OF THE COUNTRY OF THE GADARENES ROUND ABOUTON BESOUGHT HIM TO DEPART FROM THEM; FOR THEY WERE TAKEN WITH GREAT FEAR: AND HE0 WENT UP INTO THE SHIP, AND RETURNED BACK AGAIN.J# 38 NOW THE MAN OUT OF WHOM THE DEVILS WERE DEPARTED BESOUGHT HIM THAT HE4 MIGHT BE WITH HIM: BUT JESUS SENT HIM AWAY, SAYING,L# 39 RETURN TO THINE OWN HOUSE, AND SHEW HOW GREAT THINGS GOD HATH DONE UNTOM THEE. AND HE WENT HIS WAY, AND PUBLISHED THROUGHOUT THE WHOLE CITY HOW GREATD THINGS JESUS HAD DONE UNTO HIM.J# 40 AND IT CAME TO PASS, THAT, WHEN JESUS WAS RETURNED, THE PEOPLE GLADLY1 RECEIVED HIM: FOR THEY 002B'AD%5%T6%! !WERE ALL WAITING FOR HIM. J# 41 AND, BEHOLD, THERE CAME A MAN NAMED JAIRUS, AND HE WAS A RULER OF THEJ SYNAGOGUE: AND HE FELL DOWN AT JESUS FEET, AND BESOUGHT HIM THAT HE WOULD COME INTO HIS HOUSE:HK# 42 FOR HE HAD ONE ONLY DAUGHTER, ABOUT TWELVE YEARS OF AGE, AND SHE LAY AO/ DYING. BUT AS HE WENT THE PEOPLE THRONGED HIM. K# 43 AND A WOMAN HAVING AN ISSUE OF BLOOD TWELVE YEARS, WHICH HAD SPENT ALLI< HER LIVING UPON PHYSICIANS, NEITHER COULD BE HEALED OF ANY,L# 44 CAME BEHIND HIM, AND TOUCHED THE BORDER OF HIS GARMENT: AND IMMEDIATELY HER ISSUE OF BLOOD STANCHED.DI# 45 AND JESUS SAID, WHO TOUCHED ME? WHEN ALL DENIED, PETER AND THEY THATEJ WERE WITH HIM SAID, MASTER, THE MULTITUDE THRONG THEE AND PRESS THEE, AND SAYEST THOU, WHO TOUCHED ME? L# 46 AND JESUS SAID, SOMEBODY HATH TOUCHED ME: FOR I PERCEIVE THAT VIRTUE IS GONE OUT OF ME.I# 47 AND WHEN THE WOMAN SAW THAT SHE WAS NOT HID, SHE CAME TREMBLING, ANDPN FALLING DOWN BEFORE HIM, SHE DECLARED UNTO HIM BEFORE ALL THE PEOPLE FOR WHAT? CAUSE SHE HAD TOUCHED HIM, AND HOW SHE WAS HEALED IMMEDIATELY. L# 48 AND HE SAID UNTO HER, DAUGHTER, BE OF GOOD COMFORT: THY FAITH HATH MADE THEE WHOLE; GO IN PEACE.IJ# 49 WHILE HE YET SPAKE, THERE COMETH ONE FROM THE RULER OF THE SYNAGOGUESD HOUSE, SAYING TO HIM, THY DAUGHTER IS DEAD; TROUBLE NOT THE MASTER.H# 50 BUT WHEN JESUS HEARD IT, HE ANSWERED HIM, SAYING, FEAR NOT: BELIEVE# ONLY, AND SHE SHALL BE MADE WHOLE.NG# 51 AND WHEN HE CAME INTO THE HOUSE, HE SUFFERED NO MAN TO GO IN, SAVE I PETER, AND JAMES, AND JOHN, AND THE FATHER AND THE MOTHER OF THE MAIDEN.L# 52 AND ALL WEPT, AND BEWAILED HER: BUT HE SAID, WEEP NOT; SHE IS NOT DEAD, BUT SLEEPETH.># 53 AND THEY LAUGHED HIM TO SCORN, KNOWING THAT SHE WAS DEAD.K# 54 AND HE PUT THEM ALL OUT, AND TOOK HER BY THE HAND, AND CALLED, SAYING,N MAID, ARISE.K# 55 AND HER SPIRIT CAME AGAIN, AND SHE AROSE STRAIGHTWAY: AND HE COMMANDEDL TO GIVE HER MEAT.J# 56 AND HER PARENTS WERE ASTONISHED: BUT HE CHARGED THEM THAT THEY SHOULD TELL NO MAN WHAT WAS DONE., = CHAPTER 9 I# 1 THEN HE CALLED HIS TWELVE DISCIPLES TOGETHER, AND GAVE THEM POWER AND 1 AUTHORITY OVER ALL DEVILS, AND TO CURE DISEASES.SH# 2 AND HE SENT THEM TO PREACH THE KINGDOM OF GOD, AND TO HEAL THE SICK.M# 3 AND HE SAID UNTO THEM, TAKE NOTHING FOR YOUR JOURNEY, NEITHER STAVES, NORMD SCRIP, NEITHER BREAD, NEITHER MONEY; NEITHER HAVE TWO COATS APIECE.G# 4 AND WHATSOEVER HOUSE YE ENTER INTO, THERE ABIDE, AND THENCE DEPART.IJ# 5 AND WHOSOEVER WILL NOT RECEIVE YOU, WHEN YE GO OUT OF THAT CITY, SHAKE? OFF THE VERY DUST FROM YOUR FEET FOR A TESTIMONY AGAINST THEM. L# 6 AND THEY DEPARTED, AND WENT THROUGH THE TOWNS, PREACHING THE GOSPEL, AND HEALING EVERY WHERE.AH# 7 NOW HEROD THE TETRARCH HEARD OF ALL THAT WAS DONE BY HIM: AND HE WASJ PERPLEXED, BECAUSE THAT IT WAS SAID OF SOME, THAT JOHN WAS RISEN FROM THE DEAD;L# 8 AND OF SOME, THAT ELIAS HAD APPEARED; AND OF OTHERS, THAT ONE OF THE OLD PROPHETS WAS RISEN AGAIN.I# 9 AND HEROD SAID, JOHN HAVE I BEHEADED: BUT WHO IS THIS, OF WHOM I HEARS( SUCH THINGS? AND HE DESIRED TO SEE HIM.J# 10 AND THE APOSTLES, WHEN THEY WERE RETURNED, TOLD HIM ALL THAT THEY HADE DONE. AND HE TOOK THEM, AND WENT ASIDE PRIVATELY INTO A DESERT PLACEH( BELONGING TO THE CITY CALLED BETHSAIDA.K# 11 AND THE PEOPLE, WHEN THEY KNEW IT, FOLLOWED HIM: AND HE RECEIVED THEM,IL AND SPAKE UNTO THEM OF THE KINGDOM OF GOD, AND HEALED THEM THAT HAD NEED OF HEALING.FM# 12 AND WHEN THE DAY BEGAN TO WEAR AWAY, THEN CAME THE TWELVE, AND SAID UNTO J HIM, SEND THE MULTITUDE AWAY, THAT THEY MAY GO INTO THE TOWNS AND COUNTRYM ROUND ABOUT, AND LODGE, AND GET VICTUALS: FOR WE ARE HERE IN A DESERT PLACE.NJ# 13 BUT HE SAID UNTO THEM, GIVE YE THEM TO EAT. AND THEY SAID, WE HAVE NON MORE BUT FIVE LOAVES AND TWO FISHES; EXCEPT WE SHOULD GO AND BUY MEAT FOR ALL THIS PEOPLE.RI# 14 FOR THEY WERE ABOUT FIVE THOUSAND MEN. AND HE SAID TO HIS DISCIPLES, , MAKE THEM SIT DOWN BY FIFTIES IN A COMPANY.1# 15 AND THEY DID SO, AND MADE THEM ALL SIT DOWN. G# 16 THEN HE TOOK THE FIVE LOAVES AN00:BA<%X>%+%O-%TADATADATAD THE TWO FISHES, AND LOOKING UP TOSL HEAVEN, HE BLESSED THEM, AND BRAKE, AND GAVE TO THE DISCIPLES TO SET BEFORE THE MULTITUDE. E# 17 AND THEY DID EAT, AND WERE ALL FILLED: AND THERE WAS TAKEN UP OFO0 FRAGMENTS THAT REMAINED TO THEM TWELVE BASKETS.J# 18 AND IT CAME TO PASS, AS HE WAS ALONE PRAYING, HIS DISCIPLES WERE WITH? HIM: AND HE ASKED THEM, SAYING, WHOM SAY THE PEOPLE THAT I AM?WK# 19 THEY ANSWERING SAID, JOHN THE BAPTIST; BUT SOME SAY, ELIAS; AND OTHERS 2 SAY, THAT ONE OF THE OLD PROPHETS IS RISEN AGAIN.L# 20 HE SAID UNTO THEM, BUT WHOM SAY YE THAT I AM? PETER ANSWERING SAID, THE CHRIST OF GOD.EI# 21 AND HE STRAITLY CHARGED THEM, AND COMMANDED THEM TO TELL NO MAN THATR THING;EK# 22 SAYING, THE SON OF MAN MUST SUFFER MANY THINGS, AND BE REJECTED OF THETL ELDERS AND CHIEF PRIESTS AND SCRIBES, AND BE SLAIN, AND BE RAISED THE THIRD DAY.YI# 23 AND HE SAID TO THEM ALL, IF ANY MAN WILL COME AFTER ME, LET HIM DENYP5 HIMSELF, AND TAKE UP HIS CROSS DAILY, AND FOLLOW ME.OL# 24 FOR WHOSOEVER WILL SAVE HIS LIFE SHALL LOSE IT: BUT WHOSOEVER WILL LOSE. HIS LIFE FOR MY SAKE, THE SAME SHALL SAVE IT.G# 25 FOR WHAT IS A MAN ADVANTAGED, IF HE GAIN THE WHOLE WORLD, AND LOSEN HIMSELF, OR BE CAST AWAY?K# 26 FOR WHOSOEVER SHALL BE ASHAMED OF ME AND OF MY WORDS, OF HIM SHALL THENG SON OF MAN BE ASHAMED, WHEN HE SHALL COME IN HIS OWN GLORY, AND IN HISY! FATHERS, AND OF THE HOLY ANGELS.AL# 27 BUT I TELL YOU OF A TRUTH, THERE BE SOME STANDING HERE, WHICH SHALL NOT2 TASTE OF DEATH, TILL THEY SEE THE KINGDOM OF GOD.I# 28 AND IT CAME TO PASS ABOUT AN EIGHT DAYS AFTER THESE SAYINGS, HE TOOKM? PETER AND JOHN AND JAMES, AND WENT UP INTO A MOUNTAIN TO PRAY.HJ# 29 AND AS HE PRAYED, THE FASHION OF HIS COUNTENANCE WAS ALTERED, AND HIS" RAIMENT WAS WHITE AND GLISTERING.L# 30 AND, BEHOLD, THERE TALKED WITH HIM TWO MEN, WHICH WERE MOSES AND ELIAS:D# 31 WHO APPEARED IN GLORY, AND SPAKE OF HIS DECEASE WHICH HE SHOULD ACCOMPLISH AT JERUSALEM. J# 32 BUT PETER AND THEY THAT WERE WITH HIM WERE HEAVY WITH SLEEP: AND WHENJ THEY WERE AWAKE, THEY SAW HIS GLORY, AND THE TWO MEN THAT STOOD WITH HIM.K# 33 AND IT CAME TO PASS, AS THEY DEPARTED FROM HIM, PETER SAID UNTO JESUS,9M MASTER, IT IS GOOD FOR US TO BE HERE: AND LET US MAKE THREE TABERNACLES; ONETJ FOR THEE, AND ONE FOR MOSES, AND ONE FOR ELIAS: NOT KNOWING WHAT HE SAID.M# 34 WHILE HE THUS SPAKE, THERE CAME A CLOUD, AND OVERSHADOWED THEM: AND THEYA' FEARED AS THEY ENTERED INTO THE CLOUD.LM# 35 AND THERE CAME A VOICE OUT OF THE CLOUD, SAYING, THIS IS MY BELOVED SON:N HEAR HIM.I# 36 AND WHEN THE VOICE WAS PAST, JESUS WAS FOUND ALONE. AND THEY KEPT ITIN CLOSE, AND TOLD NO MAN IN THOSE DAYS ANY OF THOSE THINGS WHICH THEY HAD SEEN.M# 37 AND IT CAME TO PASS, THAT ON THE NEXT DAY, WHEN THEY WERE COME DOWN FROMA THE HILL, MUCH PEOPLE MET HIM.AK# 38 AND, BEHOLD, A MAN OF THE COMPANY CRIED OUT, SAYING, MASTER, I BESEECHN3 THEE, LOOK UPON MY SON: FOR HE IS MINE ONLY CHILD.EM# 39 AND, LO, A SPIRIT TAKETH HIM, AND HE SUDDENLY CRIETH OUT; AND IT TEARETHIG HIM THAT HE FOAMETH AGAIN, AND BRUISING HIM HARDLY DEPARTETH FROM HIM.AF# 40 AND I BESOUGHT THY DISCIPLES TO CAST HIM OUT; AND THEY COULD NOT.L# 41 AND JESUS ANSWERING SAID, O FAITHLESS AND PERVERSE GENERATION, HOW LONG; SHALL I BE WITH YOU, AND SUFFER YOU? BRING THY SON HITHER.EL# 42 AND AS HE WAS YET A COMING, THE DEVIL THREW HIM DOWN, AND TARE HIM. ANDJ JESUS REBUKED THE UNCLEAN SPIRIT, AND HEALED THE CHILD, AND DELIVERED HIM AGAIN TO HIS FATHER. H# 43 AND THEY WERE ALL AMAZED AT THE MIGHTY POWER OF GOD. BUT WHILE THEYN WONDERED EVERY ONE AT ALL THINGS WHICH JESUS DID, HE SAID UNTO HIS DISCIPLES,L# 44 LET THESE SAYINGS SINK DOWN INTO YOUR EARS: FOR THE SON OF MAN SHALL BE! DELIVERED INTO THE HANDS OF MEN. M# 45 BUT THEY UNDERSTOOD NOT THIS SAYING, AND IT WAS HID FROM THEM, THAT THEY = PERCEIVED IT NOT: AND THEY FEARED TO ASK HIM OF THAT SAYING.DE# 46 THEN THERE AROSE A REASONING AMONG THEM, WHICH OF THEM SHOULD BED GREATEST.L# 47 AND JESUS, PERCEIVING THE THOUGHT OF THEIR HEART, TOOK A CHILD, AND00BB'AD%5%T6%! ! SET HIM BY HIM,F# 48 AND SAID UNTO THEM, WHOSOEVER SHALL RECEIVE THIS CHILD IN MY NAMEM RECEIVETH ME: AND WHOSOEVER SHALL RECEIVE ME RECEIVETH HIM THAT SENT ME: FORL9 HE THAT IS LEAST AMONG YOU ALL, THE SAME SHALL BE GREAT.EM# 49 AND JOHN ANSWERED AND SAID, MASTER, WE SAW ONE CASTING OUT DEVILS IN THY:; NAME; AND WE FORBAD HIM, BECAUSE HE FOLLOWETH NOT WITH US. K# 50 AND JESUS SAID UNTO HIM, FORBID HIM NOT: FOR HE THAT IS NOT AGAINST USJ IS FOR US.IK# 51 AND IT CAME TO PASS, WHEN THE TIME WAS COME THAT HE SHOULD BE RECEIVEDS3 UP, HE STEDFASTLY SET HIS FACE TO GO TO JERUSALEM,MK# 52 AND SENT MESSENGERS BEFORE HIS FACE: AND THEY WENT, AND ENTERED INTO A 2 VILLAGE OF THE SAMARITANS, TO MAKE READY FOR HIM.M# 53 AND THEY DID NOT RECEIVE HIM, BECAUSE HIS FACE WAS AS THOUGH HE WOULD GOU TO JERUSALEM.J# 54 AND WHEN HIS DISCIPLES JAMES AND JOHN SAW THIS, THEY SAID, LORD, WILTN THOU THAT WE COMMAND FIRE TO COME DOWN FROM HEAVEN, AND CONSUME THEM, EVEN AS ELIAS DID?AJ# 55 BUT HE TURNED, AND REBUKED THEM, AND SAID, YE KNOW NOT WHAT MANNER OF SPIRIT YE ARE OF.L# 56 FOR THE SON OF MAN IS NOT COME TO DESTROY MENS LIVES, BUT TO SAVE THEM." AND THEY WENT TO ANOTHER VILLAGE.K# 57 AND IT CAME TO PASS, THAT, AS THEY WENT IN THE WAY, A CERTAIN MAN SAIDU= UNTO HIM, LORD, I WILL FOLLOW THEE WHITHERSOEVER THOU GOEST.DI# 58 AND JESUS SAID UNTO HIM, FOXES HAVE HOLES, AND BIRDS OF THE AIR HAVEH: NESTS; BUT THE SON OF MAN HATH NOT WHERE TO LAY HIS HEAD.L# 59 AND HE SAID UNTO ANOTHER, FOLLOW ME. BUT HE SAID, LORD, SUFFER ME FIRST TO GO AND BURY MY FATHER.G# 60 JESUS SAID UNTO HIM, LET THE DEAD BURY THEIR DEAD: BUT GO THOU AND, PREACH THE KINGDOM OF GOD. M# 61 AND ANOTHER ALSO SAID, LORD, I WILL FOLLOW THEE; BUT LET ME FIRST GO BIDA. THEM FAREWELL, WHICH ARE AT HOME AT MY HOUSE.L# 62 AND JESUS SAID UNTO HIM, NO MAN, HAVING PUT HIS HAND TO THE PLOUGH, AND- LOOKING BACK, IS FIT FOR THE KINGDOM OF GOD.U = CHAPTER 10 NK# 1 AFTER THESE THINGS THE LORD APPOINTED OTHER SEVENTY ALSO, AND SENT THEMUJ TWO AND TWO BEFORE HIS FACE INTO EVERY CITY AND PLACE, WHITHER HE HIMSELF WOULD COME.D# 2 THEREFORE SAID HE UNTO THEM, THE HARVEST TRULY IS GREAT, BUT THEL LABOURERS ARE FEW: PRAY YE THEREFORE THE LORD OF THE HARVEST, THAT HE WOULD' SEND FORTH LABOURERS INTO HIS HARVEST. A# 3 GO YOUR WAYS: BEHOLD, I SEND YOU FORTH AS LAMBS AMONG WOLVES.HL# 4 CARRY NEITHER PURSE, NOR SCRIP, NOR SHOES: AND SALUTE NO MAN BY THE WAY.J# 5 AND INTO WHATSOEVER HOUSE YE ENTER, FIRST SAY, PEACE BE TO THIS HOUSE.L# 6 AND IF THE SON OF PEACE BE THERE, YOUR PEACE SHALL REST UPON IT: IF NOT, IT SHALL TURN TO YOU AGAIN.I# 7 AND IN THE SAME HOUSE REMAIN, EATING AND DRINKING SUCH THINGS AS THEYAJ GIVE: FOR THE LABOURER IS WORTHY OF HIS HIRE. GO NOT FROM HOUSE TO HOUSE.L# 8 AND INTO WHATSOEVER CITY YE ENTER, AND THEY RECEIVE YOU, EAT SUCH THINGS AS ARE SET BEFORE YOU: M# 9 AND HEAL THE SICK THAT ARE THEREIN, AND SAY UNTO THEM, THE KINGDOM OF GODN IS COME NIGH UNTO YOU.EI# 10 BUT INTO WHATSOEVER CITY YE ENTER, AND THEY RECEIVE YOU NOT, GO YOURT0 WAYS OUT INTO THE STREETS OF THE SAME, AND SAY,J# 11 EVEN THE VERY DUST OF YOUR CITY, WHICH CLEAVETH ON US, WE DO WIPE OFFL AGAINST YOU: NOTWITHSTANDING BE YE SURE OF THIS, THAT THE KINGDOM OF GOD IS COME NIGH UNTO YOU.H# 12 BUT I SAY UNTO YOU, THAT IT SHALL BE MORE TOLERABLE IN THAT DAY FOR SODOM, THAN FOR THAT CITY. I# 13 WOE UNTO THEE, CHORAZIN! WOE UNTO THEE, BETHSAIDA! FOR IF THE MIGHTY M WORKS HAD BEEN DONE IN TYRE AND SIDON, WHICH HAVE BEEN DONE IN YOU, THEY HADY< A GREAT WHILE AGO REPENTED, SITTING IN SACKCLOTH AND ASHES.L# 14 BUT IT SHALL BE MORE TOLERABLE FOR TYRE AND SIDON AT THE JUDGMENT, THAN FOR YOU.FK# 15 AND THOU, CAPERNAUM, WHICH ART EXALTED TO HEAVEN, SHALT BE THRUST DOWNS TO HELL.HL# 16 HE THAT HEARETH YOU HEARETH ME; AND HE THAT DESPISETH YOU DESPISETH ME;5 AND HE THAT DESPISETH ME DESPISETH HIM THAT SENT ME.EK# 17 AND THE SEVENTY RETURNED AGAIN WITH JOY, SAYING, LORD, EVEN THE DEVILSE& ARE SUBJECT UNTO US THROUGH THY NAME.I# 18 AND HE SAID UNTO THEM, 00JBA<%X>%+%O-%TADATADATAI BEHELD SATAN AS LIGHTNING FALL FROM HEAVEN.SJ# 19 BEHOLD, I GIVE UNTO YOU POWER TO TREAD ON SERPENTS AND SCORPIONS, ANDJ OVER ALL THE POWER OF THE ENEMY: AND NOTHING SHALL BY ANY MEANS HURT YOU.K# 20 NOTWITHSTANDING IN THIS REJOICE NOT, THAT THE SPIRITS ARE SUBJECT UNTO C YOU; BUT RATHER REJOICE, BECAUSE YOUR NAMES ARE WRITTEN IN HEAVEN. M# 21 IN THAT HOUR JESUS REJOICED IN SPIRIT, AND SAID, I THANK THEE, O FATHER, L LORD OF HEAVEN AND EARTH, THAT THOU HAST HID THESE THINGS FROM THE WISE ANDN PRUDENT, AND HAST REVEALED THEM UNTO BABES: EVEN SO, FATHER; FOR SO IT SEEMED GOOD IN THY SIGHT.NL# 22 ALL THINGS ARE DELIVERED TO ME OF MY FATHER: AND NO MAN KNOWETH WHO THEK SON IS, BUT THE FATHER; AND WHO THE FATHER IS, BUT THE SON, AND HE TO WHOME THE SON WILL REVEAL HIM.J# 23 AND HE TURNED HIM UNTO HIS DISCIPLES, AND SAID PRIVATELY, BLESSED ARE+ THE EYES WHICH SEE THE THINGS THAT YE SEE:DK# 24 FOR I TELL YOU, THAT MANY PROPHETS AND KINGS HAVE DESIRED TO SEE THOSESL THINGS WHICH YE SEE, AND HAVE NOT SEEN THEM; AND TO HEAR THOSE THINGS WHICH" YE HEAR, AND HAVE NOT HEARD THEM.M# 25 AND, BEHOLD, A CERTAIN LAWYER STOOD UP, AND TEMPTED HIM, SAYING, MASTER,O) WHAT SHALL I DO TO INHERIT ETERNAL LIFE?WD# 26 HE SAID UNTO HIM, WHAT IS WRITTEN IN THE LAW? HOW READEST THOU?I# 27 AND HE ANSWERING SAID, THOU SHALT LOVE THE LORD THY GOD WITH ALL THYDJ HEART, AND WITH ALL THY SOUL, AND WITH ALL THY STRENGTH, AND WITH ALL THY$ MIND; AND THY NEIGHBOUR AS THYSELF.L# 28 AND HE SAID UNTO HIM, THOU HAST ANSWERED RIGHT: THIS DO, AND THOU SHALT LIVE.G# 29 BUT HE, WILLING TO JUSTIFY HIMSELF, SAID UNTO JESUS, AND WHO IS MYA NEIGHBOUR?,H# 30 AND JESUS ANSWERING SAID, A CERTAIN MAN WENT DOWN FROM JERUSALEM TOH JERICHO, AND FELL AMONG THIEVES, WHICH STRIPPED HIM OF HIS RAIMENT, AND2 WOUNDED HIM, AND DEPARTED, LEAVING HIM HALF DEAD.M# 31 AND BY CHANCE THERE CAME DOWN A CERTAIN PRIEST THAT WAY: AND WHEN HE SAWG% HIM, HE PASSED BY ON THE OTHER SIDE.IM# 32 AND LIKEWISE A LEVITE, WHEN HE WAS AT THE PLACE, CAME AND LOOKED ON HIM,O! AND PASSED BY ON THE OTHER SIDE.HM# 33 BUT A CERTAIN SAMARITAN, AS HE JOURNEYED, CAME WHERE HE WAS: AND WHEN HE # SAW HIM, HE HAD COMPASSION ON HIM,NK# 34 AND WENT TO HIM, AND BOUND UP HIS WOUNDS, POURING IN OIL AND WINE, ANDIK SET HIM ON HIS OWN BEAST, AND BROUGHT HIM TO AN INN, AND TOOK CARE OF HIM.AM# 35 AND ON THE MORROW WHEN HE DEPARTED, HE TOOK OUT TWO PENCE, AND GAVE THEMAF TO THE HOST, AND SAID UNTO HIM, TAKE CARE OF HIM; AND WHATSOEVER THOU5 SPENDEST MORE, WHEN I COME AGAIN, I WILL REPAY THEE.DI# 36 WHICH NOW OF THESE THREE, THINKEST THOU, WAS NEIGHBOUR UNTO HIM THATE FELL AMONG THE THIEVES?L# 37 AND HE SAID, HE THAT SHEWED MERCY ON HIM. THEN SAID JESUS UNTO HIM, GO, AND DO THOU LIKEWISE.F# 38 NOW IT CAME TO PASS, AS THEY WENT, THAT HE ENTERED INTO A CERTAING VILLAGE: AND A CERTAIN WOMAN NAMED MARTHA RECEIVED HIM INTO HER HOUSE. H# 39 AND SHE HAD A SISTER CALLED MARY, WHICH ALSO SAT AT JESUS FEET, AND HEARD HIS WORD.K# 40 BUT MARTHA WAS CUMBERED ABOUT MUCH SERVING, AND CAME TO HIM, AND SAID,WM LORD, DOST THOU NOT CARE THAT MY SISTER HATH LEFT ME TO SERVE ALONE? BID HERN THEREFORE THAT SHE HELP ME.K# 41 AND JESUS ANSWERED AND SAID UNTO HER, MARTHA, MARTHA, THOU ART CAREFULL AND TROUBLED ABOUT MANY THINGS:I# 42 BUT ONE THING IS NEEDFUL: AND MARY HATH CHOSEN THAT GOOD PART, WHICHA" SHALL NOT BE TAKEN AWAY FROM HER. = CHAPTER 11 AL# 1 AND IT CAME TO PASS, THAT, AS HE WAS PRAYING IN A CERTAIN PLACE, WHEN HEL CEASED, ONE OF HIS DISCIPLES SAID UNTO HIM, LORD, TEACH US TO PRAY, AS JOHN ALSO TAUGHT HIS DISCIPLES.CM# 2 AND HE SAID UNTO THEM, WHEN YE PRAY, SAY, OUR FATHER WHICH ART IN HEAVEN,EN HALLOWED BE THY NAME. THY KINGDOM COME. THY WILL BE DONE, AS IN HEAVEN, SO IN EARTH.D'# 3 GIVE US DAY BY DAY OUR DAILY BREAD.EK# 4 AND FORGIVE US OUR SINS; FOR WE ALSO FORGIVE EVERY ONE THAT IS INDEBTED B TO US. AND LEAD US NOT INTO TEMPTATION; BUT DELIVER US FROM EVIL.I# 5 AND HE SAID UNTO THEM, WHICH OF YOU SHALL HAVE A FRIEND, AND SHALL GOEF UNTO HIM AT MIDNIGHT, A00RB'AD%5%T6%! !ND SAY UNTO HIM, FRIEND, LEND ME THREE LOAVES;L# 6 FOR A FRIEND OF MINE IN HIS JOURNEY IS COME TO ME, AND I HAVE NOTHING TO SET BEFORE HIM?L# 7 AND HE FROM WITHIN SHALL ANSWER AND SAY, TROUBLE ME NOT: THE DOOR IS NOWG SHUT, AND MY CHILDREN ARE WITH ME IN BED; I CANNOT RISE AND GIVE THEE.;K# 8 I SAY UNTO YOU, THOUGH HE WILL NOT RISE AND GIVE HIM, BECAUSE HE IS HISOL FRIEND, YET BECAUSE OF HIS IMPORTUNITY HE WILL RISE AND GIVE HIM AS MANY AS HE NEEDETH.J# 9 AND I SAY UNTO YOU, ASK, AND IT SHALL BE GIVEN YOU; SEEK, AND YE SHALL. FIND; KNOCK, AND IT SHALL BE OPENED UNTO YOU.M# 10 FOR EVERY ONE THAT ASKETH RECEIVETH; AND HE THAT SEEKETH FINDETH; AND TOF& HIM THAT KNOCKETH IT SHALL BE OPENED.J# 11 IF A SON SHALL ASK BREAD OF ANY OF YOU THAT IS A FATHER, WILL HE GIVEI HIM A STONE? OR IF HE ASK A FISH, WILL HE FOR A FISH GIVE HIM A SERPENT?E=# 12 OR IF HE SHALL ASK AN EGG, WILL HE OFFER HIM A SCORPION?TL# 13 IF YE THEN, BEING EVIL, KNOW HOW TO GIVE GOOD GIFTS UNTO YOUR CHILDREN:K HOW MUCH MORE SHALL YOUR HEAVENLY FATHER GIVE THE HOLY SPIRIT TO THEM THATL ASK HIM?UJ# 14 AND HE WAS CASTING OUT A DEVIL, AND IT WAS DUMB. AND IT CAME TO PASS,F WHEN THE DEVIL WAS GONE OUT, THE DUMB SPAKE; AND THE PEOPLE WONDERED.M# 15 BUT SOME OF THEM SAID, HE CASTETH OUT DEVILS THROUGH BEELZEBUB THE CHIEFE OF THE DEVILS. @# 16 AND OTHERS, TEMPTING HIM, SOUGHT OF HIM A SIGN FROM HEAVEN.J# 17 BUT HE, KNOWING THEIR THOUGHTS, SAID UNTO THEM, EVERY KINGDOM DIVIDEDM AGAINST ITSELF IS BROUGHT TO DESOLATION; AND A HOUSE DIVIDED AGAINST A HOUSEI FALLETH. K# 18 IF SATAN ALSO BE DIVIDED AGAINST HIMSELF, HOW SHALL HIS KINGDOM STAND? 9 BECAUSE YE SAY THAT I CAST OUT DEVILS THROUGH BEELZEBUB.TJ# 19 AND IF I BY BEELZEBUB CAST OUT DEVILS, BY WHOM DO YOUR SONS CAST THEM* OUT? THEREFORE SHALL THEY BE YOUR JUDGES.M# 20 BUT IF I WITH THE FINGER OF GOD CAST OUT DEVILS, NO DOUBT THE KINGDOM OFH GOD IS COME UPON YOU.H# 21 WHEN A STRONG MAN ARMED KEEPETH HIS PALACE, HIS GOODS ARE IN PEACE:J# 22 BUT WHEN A STRONGER THAN HE SHALL COME UPON HIM, AND OVERCOME HIM, HEL TAKETH FROM HIM ALL HIS ARMOUR WHEREIN HE TRUSTED, AND DIVIDETH HIS SPOILS.L# 23 HE THAT IS NOT WITH ME IS AGAINST ME: AND HE THAT GATHERETH NOT WITH ME SCATTERETH.I# 24 WHEN THE UNCLEAN SPIRIT IS GONE OUT OF A MAN, HE WALKETH THROUGH DRY N PLACES, SEEKING REST; AND FINDING NONE, HE SAITH, I WILL RETURN UNTO MY HOUSE WHENCE I CAME OUT. ;# 25 AND WHEN HE COMETH, HE FINDETH IT SWEPT AND GARNISHED.CJ# 26 THEN GOETH HE, AND TAKETH TO HIM SEVEN OTHER SPIRITS MORE WICKED THANL HIMSELF; AND THEY ENTER IN, AND DWELL THERE: AND THE LAST STATE OF THAT MAN IS WORSE THAN THE FIRST.J# 27 AND IT CAME TO PASS, AS HE SPAKE THESE THINGS, A CERTAIN WOMAN OF THEN COMPANY LIFTED UP HER VOICE, AND SAID UNTO HIM, BLESSED IS THE WOMB THAT BARE+ THEE, AND THE PAPS WHICH THOU HAST SUCKED.GM# 28 BUT HE SAID, YEA RATHER, BLESSED ARE THEY THAT HEAR THE WORD OF GOD, ANDE KEEP IT.,L# 29 AND WHEN THE PEOPLE WERE GATHERED THICK TOGETHER, HE BEGAN TO SAY, THISN IS AN EVIL GENERATION: THEY SEEK A SIGN; AND THERE SHALL NO SIGN BE GIVEN IT,# BUT THE SIGN OF JONAS THE PROPHET. M# 30 FOR AS JONAS WAS A SIGN UNTO THE NINEVITES, SO SHALL ALSO THE SON OF MANE BE TO THIS GENERATION.AI# 31 THE QUEEN OF THE SOUTH SHALL RISE UP IN THE JUDGMENT WITH THE MEN OFTM THIS GENERATION, AND CONDEMN THEM: FOR SHE CAME FROM THE UTMOST PARTS OF THEEL EARTH TO HEAR THE WISDOM OF SOLOMON; AND, BEHOLD, A GREATER THAN SOLOMON IS HERE.J# 32 THE MEN OF NINEVE SHALL RISE UP IN THE JUDGMENT WITH THIS GENERATION,H AND SHALL CONDEMN IT: FOR THEY REPENTED AT THE PREACHING OF JONAS; AND,& BEHOLD, A GREATER THAN JONAS IS HERE.I# 33 NO MAN, WHEN HE HATH LIGHTED A CANDLE, PUTTETH IT IN A SECRET PLACE,IN NEITHER UNDER A BUSHEL, BUT ON A CANDLESTICK, THAT THEY WHICH COME IN MAY SEE THE LIGHT.AJ# 34 THE LIGHT OF THE BODY IS THE EYE: THEREFORE WHEN THINE EYE IS SINGLE,K THY WHOLE BODY ALSO IS FULL OF LIGHT; BUT WHEN THINE EYE IS EVIL, THY BODY ALSO IS FULL OF DARKNESS.I# 35 TAKE HEED THEREFORE THAT THE LIGH00ZBA<%X>%+%O-%TADATADATAT WHICH IS IN THEE BE NOT DARKNESS.TK# 36 IF THY WHOLE BODY THEREFORE BE FULL OF LIGHT, HAVING NO PART DARK, THESJ WHOLE SHALL BE FULL OF LIGHT, AS WHEN THE BRIGHT SHINING OF A CANDLE DOTH GIVE THEE LIGHT.DK# 37 AND AS HE SPAKE, A CERTAIN PHARISEE BESOUGHT HIM TO DINE WITH HIM: ANDT" HE WENT IN, AND SAT DOWN TO MEAT.L# 38 AND WHEN THE PHARISEE SAW IT, HE MARVELLED THAT HE HAD NOT FIRST WASHED BEFORE DINNER.NK# 39 AND THE LORD SAID UNTO HIM, NOW DO YE PHARISEES MAKE CLEAN THE OUTSIDEEI OF THE CUP AND THE PLATTER; BUT YOUR INWARD PART IS FULL OF RAVENING ANDT WICKEDNESS.L# 40 YE FOOLS, DID NOT HE THAT MADE THAT WHICH IS WITHOUT MAKE THAT WHICH IS WITHIN ALSO?NL# 41 BUT RATHER GIVE ALMS OF SUCH THINGS AS YE HAVE; AND, BEHOLD, ALL THINGS ARE CLEAN UNTO YOU.M# 42 BUT WOE UNTO YOU, PHARISEES! FOR YE TITHE MINT AND RUE AND ALL MANNER OFSJ HERBS, AND PASS OVER JUDGMENT AND THE LOVE OF GOD: THESE OUGHT YE TO HAVE) DONE, AND NOT TO LEAVE THE OTHER UNDONE.ID# 43 WOE UNTO YOU, PHARISEES! FOR YE LOVE THE UPPERMOST SEATS IN THE* SYNAGOGUES, AND GREETINGS IN THE MARKETS.J# 44 WOE UNTO YOU, SCRIBES AND PHARISEES, HYPOCRITES! FOR YE ARE AS GRAVESI WHICH APPEAR NOT, AND THE MEN THAT WALK OVER THEM ARE NOT AWARE OF THEM.;M# 45 THEN ANSWERED ONE OF THE LAWYERS, AND SAID UNTO HIM, MASTER, THUS SAYINGS THOU REPROACHEST US ALSO.M# 46 AND HE SAID, WOE UNTO YOU ALSO, YE LAWYERS! FOR YE LADE MEN WITH BURDENSUJ GRIEVOUS TO BE BORNE, AND YE YOURSELVES TOUCH NOT THE BURDENS WITH ONE OF YOUR FINGERS.H# 47 WOE UNTO YOU! FOR YE BUILD THE SEPULCHRES OF THE PROPHETS, AND YOUR FATHERS KILLED THEM.OL# 48 TRULY YE BEAR WITNESS THAT YE ALLOW THE DEEDS OF YOUR FATHERS: FOR THEY3 INDEED KILLED THEM, AND YE BUILD THEIR SEPULCHRES.MI# 49 THEREFORE ALSO SAID THE WISDOM OF GOD, I WILL SEND THEM PROPHETS ANDS: APOSTLES, AND SOME OF THEM THEY SHALL SLAY AND PERSECUTE:K# 50 THAT THE BLOOD OF ALL THE PROPHETS, WHICH WAS SHED FROM THE FOUNDATION,2 OF THE WORLD, MAY BE REQUIRED OF THIS GENERATION;F# 51 FROM THE BLOOD OF ABEL UNTO THE BLOOD OF ZACHARIAS WHICH PERISHEDN BETWEEN THE ALTAR AND THE TEMPLE: VERILY I SAY UNTO YOU, IT SHALL BE REQUIRED OF THIS GENERATION.K# 52 WOE UNTO YOU, LAWYERS! FOR YE HAVE TAKEN AWAY THE KEY OF KNOWLEDGE: YE9G ENTERED NOT IN YOURSELVES, AND THEM THAT WERE ENTERING IN YE HINDERED.AI# 53 AND AS HE SAID THESE THINGS UNTO THEM, THE SCRIBES AND THE PHARISEESOJ BEGAN TO URGE HIM VEHEMENTLY, AND TO PROVOKE HIM TO SPEAK OF MANY THINGS:J# 54 LAYING WAIT FOR HIM, AND SEEKING TO CATCH SOMETHING OUT OF HIS MOUTH, THAT THEY MIGHT ACCUSE HIM. = CHAPTER 12 AF# 1 IN THE MEAN TIME, WHEN THERE WERE GATHERED TOGETHER AN INNUMERABLEL MULTITUDE OF PEOPLE, INSOMUCH THAT THEY TRODE ONE UPON ANOTHER, HE BEGAN TOD SAY UNTO HIS DISCIPLES FIRST OF ALL, BEWARE YE OF THE LEAVEN OF THE PHARISEES, WHICH IS HYPOCRISY.EJ# 2 FOR THERE IS NOTHING COVERED, THAT SHALL NOT BE REVEALED; NEITHER HID, THAT SHALL NOT BE KNOWN.VI# 3 THEREFORE WHATSOEVER YE HAVE SPOKEN IN DARKNESS SHALL BE HEARD IN THECD LIGHT; AND THAT WHICH YE HAVE SPOKEN IN THE EAR IN CLOSETS SHALL BE PROCLAIMED UPON THE HOUSETOPS.HL# 4 AND I SAY UNTO YOU MY FRIENDS, BE NOT AFRAID OF THEM THAT KILL THE BODY,. AND AFTER THAT HAVE NO MORE THAT THEY CAN DO.M# 5 BUT I WILL FOREWARN YOU WHOM YE SHALL FEAR: FEAR HIM, WHICH AFTER HE HATHSD KILLED HATH POWER TO CAST INTO HELL; YEA, I SAY UNTO YOU, FEAR HIM.H# 6 ARE NOT FIVE SPARROWS SOLD FOR TWO FARTHINGS, AND NOT ONE OF THEM IS FORGOTTEN BEFORE GOD?C# 7 BUT EVEN THE VERY HAIRS OF YOUR HEAD ARE ALL NUMBERED. FEAR NOTO4 THEREFORE: YE ARE OF MORE VALUE THAN MANY SPARROWS.M# 8 ALSO I SAY UNTO YOU, WHOSOEVER SHALL CONFESS ME BEFORE MEN, HIM SHALL THEI2 SON OF MAN ALSO CONFESS BEFORE THE ANGELS OF GOD:J# 9 BUT HE THAT DENIETH ME BEFORE MEN SHALL BE DENIED BEFORE THE ANGELS OF GOD.HI# 10 AND WHOSOEVER SHALL SPEAK A WORD AGAINST THE SON OF MAN, IT SHALL BEL FORGIVEN HIM: BUT UNTO HIM THAT BLASPHEMETH AGAINST THE HOLY GHOST IT SHALL NOT BE FORGIVEN.K# 11 AND WHEN THEY BRING YOU UNTO THE SYNAGO00bB'AD%5%T6%! !GUES, AND UNTO MAGISTRATES, ANDOI POWERS, TAKE YE NO THOUGHT HOW OR WHAT THING YE SHALL ANSWER, OR WHAT YEO SHALL SAY:NI# 12 FOR THE HOLY GHOST SHALL TEACH YOU IN THE SAME HOUR WHAT YE OUGHT TOE SAY.OL# 13 AND ONE OF THE COMPANY SAID UNTO HIM, MASTER, SPEAK TO MY BROTHER, THAT# HE DIVIDE THE INHERITANCE WITH ME.EJ# 14 AND HE SAID UNTO HIM, MAN, WHO MADE ME A JUDGE OR A DIVIDER OVER YOU?M# 15 AND HE SAID UNTO THEM, TAKE HEED, AND BEWARE OF COVETOUSNESS: FOR A MANSWH LIFE CONSISTETH NOT IN THE ABUNDANCE OF THE THINGS WHICH HE POSSESSETH.K# 16 AND HE SPAKE A PARABLE UNTO THEM, SAYING, THE GROUND OF A CERTAIN RICHS MAN BROUGHT FORTH PLENTIFULLY:LK# 17 AND HE THOUGHT WITHIN HIMSELF, SAYING, WHAT SHALL I DO, BECAUSE I HAVEO# NO ROOM WHERE TO BESTOW MY FRUITS? F# 18 AND HE SAID, THIS WILL I DO: I WILL PULL DOWN MY BARNS, AND BUILD= GREATER; AND THERE WILL I BESTOW ALL MY FRUITS AND MY GOODS.5K# 19 AND I WILL SAY TO MY SOUL, SOUL, THOU HAST MUCH GOODS LAID UP FOR MANYL2 YEARS; TAKE THINE EASE, EAT, DRINK, AND BE MERRY.L# 20 BUT GOD SAID UNTO HIM, THOU FOOL, THIS NIGHT THY SOUL SHALL BE REQUIREDE OF THEE: THEN WHOSE SHALL THOSE THINGS BE, WHICH THOU HAST PROVIDED?HI# 21 SO IS HE THAT LAYETH UP TREASURE FOR HIMSELF, AND IS NOT RICH TOWARDT GOD.WF# 22 AND HE SAID UNTO HIS DISCIPLES, THEREFORE I SAY UNTO YOU, TAKE NON THOUGHT FOR YOUR LIFE, WHAT YE SHALL EAT; NEITHER FOR THE BODY, WHAT YE SHALL PUT ON.C# 23 THE LIFE IS MORE THAN MEAT, AND THE BODY IS MORE THAN RAIMENT.AK# 24 CONSIDER THE RAVENS: FOR THEY NEITHER SOW NOR REAP; WHICH NEITHER HAVEHL STOREHOUSE NOR BARN; AND GOD FEEDETH THEM: HOW MUCH MORE ARE YE BETTER THAN THE FOWLS? K# 25 AND WHICH OF YOU WITH TAKING THOUGHT CAN ADD TO HIS STATURE ONE CUBIT?,H# 26 IF YE THEN BE NOT ABLE TO DO THAT THING WHICH IS LEAST, WHY TAKE YE THOUGHT FOR THE REST?M# 27 CONSIDER THE LILIES HOW THEY GROW: THEY TOIL NOT, THEY SPIN NOT; AND YETEJ I SAY UNTO YOU, THAT SOLOMON IN ALL HIS GLORY WAS NOT ARRAYED LIKE ONE OF THESE.AJ# 28 IF THEN GOD SO CLOTHE THE GRASS, WHICH IS TO DAY IN THE FIELD, AND TOH MORROW IS CAST INTO THE OVEN; HOW MUCH MORE WILL HE CLOTHE YOU, O YE OF LITTLE FAITH?M# 29 AND SEEK NOT YE WHAT YE SHALL EAT, OR WHAT YE SHALL DRINK, NEITHER BE YET OF DOUBTFUL MIND.J# 30 FOR ALL THESE THINGS DO THE NATIONS OF THE WORLD SEEK AFTER: AND YOUR2 FATHER KNOWETH THAT YE HAVE NEED OF THESE THINGS.I# 31 BUT RATHER SEEK YE THE KINGDOM OF GOD; AND ALL THESE THINGS SHALL BEG ADDED UNTO YOU.M# 32 FEAR NOT, LITTLE FLOCK; FOR IT IS YOUR FATHERS GOOD PLEASURE TO GIVE YOU THE KINGDOM.NL# 33 SELL THAT YE HAVE, AND GIVE ALMS; PROVIDE YOURSELVES BAGS WHICH WAX NOTM OLD, A TREASURE IN THE HEAVENS THAT FAILETH NOT, WHERE NO THIEF APPROACHETH,K NEITHER MOTH CORRUPTETH.F?# 34 FOR WHERE YOUR TREASURE IS, THERE WILL YOUR HEART BE ALSO.E=# 35 LET YOUR LOINS BE GIRDED ABOUT, AND YOUR LIGHTS BURNING;TK# 36 AND YE YOURSELVES LIKE UNTO MEN THAT WAIT FOR THEIR LORD, WHEN HE WILLLN RETURN FROM THE WEDDING; THAT WHEN HE COMETH AND KNOCKETH, THEY MAY OPEN UNTO HIM IMMEDIATELY.OH# 37 BLESSED ARE THOSE SERVANTS, WHOM THE LORD WHEN HE COMETH SHALL FINDN WATCHING: VERILY I SAY UNTO YOU, THAT HE SHALL GIRD HIMSELF, AND MAKE THEM TO6 SIT DOWN TO MEAT, AND WILL COME FORTH AND SERVE THEM.J# 38 AND IF HE SHALL COME IN THE SECOND WATCH, OR COME IN THE THIRD WATCH,. AND FIND THEM SO, BLESSED ARE THOSE SERVANTS.L# 39 AND THIS KNOW, THAT IF THE GOODMAN OF THE HOUSE HAD KNOWN WHAT HOUR THEL THIEF WOULD COME, HE WOULD HAVE WATCHED, AND NOT HAVE SUFFERED HIS HOUSE TO BE BROKEN THROUGH.OM# 40 BE YE THEREFORE READY ALSO: FOR THE SON OF MAN COMETH AT AN HOUR WHEN YET THINK NOT. K# 41 THEN PETER SAID UNTO HIM, LORD, SPEAKEST THOU THIS PARABLE UNTO US, ORA EVEN TO ALL?EL# 42 AND THE LORD SAID, WHO THEN IS THAT FAITHFUL AND WISE STEWARD, WHOM HISM LORD SHALL MAKE RULER OVER HIS HOUSEHOLD, TO GIVE THEM THEIR PORTION OF MEATT IN DUE SEASON? H# 43 BLESSED IS THAT SERVANT, WHOM HIS LORD WHEN HE COMETH SHALL FIND SO DOING.WL# 44 OF A TRUTH I SAY UNTO YOU, 00jBA<%X>%+%O-%TADATADATATHAT HE WILL MAKE HIM RULER OVER ALL THAT HE HATH.K# 45 BUT AND IF THAT SERVANT SAY IN HIS HEART, MY LORD DELAYETH HIS COMING;1K AND SHALL BEGIN TO BEAT THE MENSERVANTS AND MAIDENS, AND TO EAT AND DRINK,E AND TO BE DRUNKEN;TM# 46 THE LORD OF THAT SERVANT WILL COME IN A DAY WHEN HE LOOKETH NOT FOR HIM, J AND AT AN HOUR WHEN HE IS NOT AWARE, AND WILL CUT HIM IN SUNDER, AND WILL. APPOINT HIM HIS PORTION WITH THE UNBELIEVERS.K# 47 AND THAT SERVANT, WHICH KNEW HIS LORDS WILL, AND PREPARED NOT HIMSELF, F NEITHER DID ACCORDING TO HIS WILL, SHALL BE BEATEN WITH MANY STRIPES.L# 48 BUT HE THAT KNEW NOT, AND DID COMMIT THINGS WORTHY OF STRIPES, SHALL BEL BEATEN WITH FEW STRIPES. FOR UNTO WHOMSOEVER MUCH IS GIVEN, OF HIM SHALL BEM MUCH REQUIRED: AND TO WHOM MEN HAVE COMMITTED MUCH, OF HIM THEY WILL ASK THEM MORE.K# 49 I AM COME TO SEND FIRE ON THE EARTH; AND WHAT WILL I, IF IT BE ALREADYI KINDLED?PK# 50 BUT I HAVE A BAPTISM TO BE BAPTIZED WITH; AND HOW AM I STRAITENED TILLL IT BE ACCOMPLISHED!K# 51 SUPPOSE YE THAT I AM COME TO GIVE PEACE ON EARTH? I TELL YOU, NAY; BUT. RATHER DIVISION:KH# 52 FOR FROM HENCEFORTH THERE SHALL BE FIVE IN ONE HOUSE DIVIDED, THREE$ AGAINST TWO, AND TWO AGAINST THREE.I# 53 THE FATHER SHALL BE DIVIDED AGAINST THE SON, AND THE SON AGAINST THECN FATHER; THE MOTHER AGAINST THE DAUGHTER, AND THE DAUGHTER AGAINST THE MOTHER;G THE MOTHER IN LAW AGAINST HER DAUGHTER IN LAW, AND THE DAUGHTER IN LAW  AGAINST HER MOTHER IN LAW.AH# 54 AND HE SAID ALSO TO THE PEOPLE, WHEN YE SEE A CLOUD RISE OUT OF THE? WEST, STRAIGHTWAY YE SAY, THERE COMETH A SHOWER; AND SO IT IS.KL# 55 AND WHEN YE SEE THE SOUTH WIND BLOW, YE SAY, THERE WILL BE HEAT; AND IT COMETH TO PASS.L# 56 YE HYPOCRITES, YE CAN DISCERN THE FACE OF THE SKY AND OF THE EARTH; BUT, HOW IS IT THAT YE DO NOT DISCERN THIS TIME?@# 57 YEA, AND WHY EVEN OF YOURSELVES JUDGE YE NOT WHAT IS RIGHT?K# 58 WHEN THOU GOEST WITH THINE ADVERSARY TO THE MAGISTRATE, AS THOU ART IN M THE WAY, GIVE DILIGENCE THAT THOU MAYEST BE DELIVERED FROM HIM; LEST HE HALETN THEE TO THE JUDGE, AND THE JUDGE DELIVER THEE TO THE OFFICER, AND THE OFFICER CAST THEE INTO PRISON. L# 59 I TELL THEE, THOU SHALT NOT DEPART THENCE, TILL THOU HAST PAID THE VERY LAST MITE.E = CHAPTER 13 TK# 1 THERE WERE PRESENT AT THAT SEASON SOME THAT TOLD HIM OF THE GALILAEANS, 6 WHOSE BLOOD PILATE HAD MINGLED WITH THEIR SACRIFICES.M# 2 AND JESUS ANSWERING SAID UNTO THEM, SUPPOSE YE THAT THESE GALILAEANS WERETE SINNERS ABOVE ALL THE GALILAEANS, BECAUSE THEY SUFFERED SUCH THINGS?LI# 3 I TELL YOU, NAY: BUT, EXCEPT YE REPENT, YE SHALL ALL LIKEWISE PERISH.,I# 4 OR THOSE EIGHTEEN, UPON WHOM THE TOWER IN SILOAM FELL, AND SLEW THEM,TG THINK YE THAT THEY WERE SINNERS ABOVE ALL MEN THAT DWELT IN JERUSALEM?TI# 5 I TELL YOU, NAY: BUT, EXCEPT YE REPENT, YE SHALL ALL LIKEWISE PERISH.SK# 6 HE SPAKE ALSO THIS PARABLE; A CERTAIN MAN HAD A FIG TREE PLANTED IN HISW@ VINEYARD; AND HE CAME AND SOUGHT FRUIT THEREON, AND FOUND NONE.L# 7 THEN SAID HE UNTO THE DRESSER OF HIS VINEYARD, BEHOLD, THESE THREE YEARSG I COME SEEKING FRUIT ON THIS FIG TREE, AND FIND NONE: CUT IT DOWN; WHYT CUMBERETH IT THE GROUND?EM# 8 AND HE ANSWERING SAID UNTO HIM, LORD, LET IT ALONE THIS YEAR ALSO, TILL IA! SHALL DIG ABOUT IT, AND DUNG IT: M# 9 AND IF IT BEAR FRUIT, WELL: AND IF NOT, THEN AFTER THAT THOU SHALT CUT ITE DOWN.A# 10 AND HE WAS TEACHING IN ONE OF THE SYNAGOGUES ON THE SABBATH.NL# 11 AND, BEHOLD, THERE WAS A WOMAN WHICH HAD A SPIRIT OF INFIRMITY EIGHTEENE YEARS, AND WAS BOWED TOGETHER, AND COULD IN NO WISE LIFT UP HERSELF.EL# 12 AND WHEN JESUS SAW HER, HE CALLED HER TO HIM, AND SAID UNTO HER, WOMAN,& THOU ART LOOSED FROM THINE INFIRMITY.M# 13 AND HE LAID HIS HANDS ON HER: AND IMMEDIATELY SHE WAS MADE STRAIGHT, ANDD GLORIFIED GOD. K# 14 AND THE RULER OF THE SYNAGOGUE ANSWERED WITH INDIGNATION, BECAUSE THAT.M JESUS HAD HEALED ON THE SABBATH DAY, AND SAID UNTO THE PEOPLE, THERE ARE SIX K DAYS IN WHICH MEN OUGHT TO WORK: IN THEM THEREFORE COME AND BE HEALED, ANDN NOT ON THE SABBATH DA00rB'AD%5%T6%! !Y.L# 15 THE LORD THEN ANSWERED HIM, AND SAID, THOU HYPOCRITE, DOTH NOT EACH ONEK OF YOU ON THE SABBATH LOOSE HIS OX OR HIS ASS FROM THE STALL, AND LEAD HIM  AWAY TO WATERING?K# 16 AND OUGHT NOT THIS WOMAN, BEING A DAUGHTER OF ABRAHAM, WHOM SATAN HATH N BOUND, LO, THESE EIGHTEEN YEARS, BE LOOSED FROM THIS BOND ON THE SABBATH DAY?M# 17 AND WHEN HE HAD SAID THESE THINGS, ALL HIS ADVERSARIES WERE ASHAMED: ANDYK ALL THE PEOPLE REJOICED FOR ALL THE GLORIOUS THINGS THAT WERE DONE BY HIM.TL# 18 THEN SAID HE, UNTO WHAT IS THE KINGDOM OF GOD LIKE? AND WHEREUNTO SHALL I RESEMBLE IT?OL# 19 IT IS LIKE A GRAIN OF MUSTARD SEED, WHICH A MAN TOOK, AND CAST INTO HISM GARDEN; AND IT GREW, AND WAXED A GREAT TREE; AND THE FOWLS OF THE AIR LODGEDH IN THE BRANCHES OF IT.UC# 20 AND AGAIN HE SAID, WHEREUNTO SHALL I LIKEN THE KINGDOM OF GOD? M# 21 IT IS LIKE LEAVEN, WHICH A WOMAN TOOK AND HID IN THREE MEASURES OF MEAL,  TILL THE WHOLE WAS LEAVENED.FJ# 22 AND HE WENT THROUGH THE CITIES AND VILLAGES, TEACHING, AND JOURNEYING TOWARD JERUSALEM.K# 23 THEN SAID ONE UNTO HIM, LORD, ARE THERE FEW THAT BE SAVED? AND HE SAIDF UNTO THEM,,J# 24 STRIVE TO ENTER IN AT THE STRAIT GATE: FOR MANY, I SAY UNTO YOU, WILL) SEEK TO ENTER IN, AND SHALL NOT BE ABLE.IH# 25 WHEN ONCE THE MASTER OF THE HOUSE IS RISEN UP, AND HATH SHUT TO THEM DOOR, AND YE BEGIN TO STAND WITHOUT, AND TO KNOCK AT THE DOOR, SAYING, LORD, I LORD, OPEN UNTO US; AND HE SHALL ANSWER AND SAY UNTO YOU, I KNOW YOU NOTH WHENCE YE ARE:IM# 26 THEN SHALL YE BEGIN TO SAY, WE HAVE EATEN AND DRUNK IN THY PRESENCE, ANDI! THOU HAST TAUGHT IN OUR STREETS.DL# 27 BUT HE SHALL SAY, I TELL YOU, I KNOW YOU NOT WHENCE YE ARE; DEPART FROM ME, ALL YE WORKERS OF INIQUITY.M# 28 THERE SHALL BE WEEPING AND GNASHING OF TEETH, WHEN YE SHALL SEE ABRAHAM, K AND ISAAC, AND JACOB, AND ALL THE PROPHETS, IN THE KINGDOM OF GOD, AND YOUK YOURSELVES THRUST OUT. G# 29 AND THEY SHALL COME FROM THE EAST, AND FROM THE WEST, AND FROM THE E NORTH, AND FROM THE SOUTH, AND SHALL SIT DOWN IN THE KINGDOM OF GOD.TJ# 30 AND, BEHOLD, THERE ARE LAST WHICH SHALL BE FIRST, AND THERE ARE FIRST WHICH SHALL BE LAST.LK# 31 THE SAME DAY THERE CAME CERTAIN OF THE PHARISEES, SAYING UNTO HIM, GETU6 THEE OUT, AND DEPART HENCE: FOR HEROD WILL KILL THEE.H# 32 AND HE SAID UNTO THEM, GO YE, AND TELL THAT FOX, BEHOLD, I CAST OUTJ DEVILS, AND I DO CURES TO DAY AND TO MORROW, AND THE THIRD DAY I SHALL BE PERFECTED. K# 33 NEVERTHELESS I MUST WALK TO DAY, AND TO MORROW, AND THE DAY FOLLOWING:H9 FOR IT CANNOT BE THAT A PROPHET PERISH OUT OF JERUSALEM.RI# 34 O JERUSALEM, JERUSALEM, WHICH KILLEST THE PROPHETS, AND STONEST THEMLF THAT ARE SENT UNTO THEE; HOW OFTEN WOULD I HAVE GATHERED THY CHILDRENL TOGETHER, AS A HEN DOTH GATHER HER BROOD UNDER HER WINGS, AND YE WOULD NOT!M# 35 BEHOLD, YOUR HOUSE IS LEFT UNTO YOU DESOLATE: AND VERILY I SAY UNTO YOU,UJ YE SHALL NOT SEE ME, UNTIL THE TIME COME WHEN YE SHALL SAY, BLESSED IS HE% THAT COMETH IN THE NAME OF THE LORD.M = CHAPTER 14 DF# 1 AND IT CAME TO PASS, AS HE WENT INTO THE HOUSE OF ONE OF THE CHIEFB PHARISEES TO EAT BREAD ON THE SABBATH DAY, THAT THEY WATCHED HIM.I# 2 AND, BEHOLD, THERE WAS A CERTAIN MAN BEFORE HIM WHICH HAD THE DROPSY.HK# 3 AND JESUS ANSWERING SPAKE UNTO THE LAWYERS AND PHARISEES, SAYING, IS ITL# LAWFUL TO HEAL ON THE SABBATH DAY?FK# 4 AND THEY HELD THEIR PEACE. AND HE TOOK HIM, AND HEALED HIM, AND LET HIM  GO;M# 5 AND ANSWERED THEM, SAYING, WHICH OF YOU SHALL HAVE AN ASS OR AN OX FALLENMF INTO A PIT, AND WILL NOT STRAIGHTWAY PULL HIM OUT ON THE SABBATH DAY?8# 6 AND THEY COULD NOT ANSWER HIM AGAIN TO THESE THINGS.M# 7 AND HE PUT FORTH A PARABLE TO THOSE WHICH WERE BIDDEN, WHEN HE MARKED HOW 2 THEY CHOSE OUT THE CHIEF ROOMS; SAYING UNTO THEM.M# 8 WHEN THOU ART BIDDEN OF ANY MAN TO A WEDDING, SIT NOT DOWN IN THE HIGHESTH= ROOM; LEST A MORE HONOURABLE MAN THAN THOU BE BIDDEN OF HIM;LL# 9 AND HE THAT BADE THEE AND HIM COME AND SAY TO THEE, GIVE THIS MAN PLACE;3 AND THOU BEGIN WITH SHAME TO TAKE THE LOWEST ROOM.OL# 10 BUT WHEN TH00zBA<%X>%+%O-%TADATADATAOU ART BIDDEN, GO AND SIT DOWN IN THE LOWEST ROOM; THAT WHENK HE THAT BADE THEE COMETH, HE MAY SAY UNTO THEE, FRIEND, GO UP HIGHER: THENEL SHALT THOU HAVE WORSHIP IN THE PRESENCE OF THEM THAT SIT AT MEAT WITH THEE.I# 11 FOR WHOSOEVER EXALTETH HIMSELF SHALL BE ABASED; AND HE THAT HUMBLETHI HIMSELF SHALL BE EXALTED.K# 12 THEN SAID HE ALSO TO HIM THAT BADE HIM, WHEN THOU MAKEST A DINNER OR A M SUPPER, CALL NOT THY FRIENDS, NOR THY BRETHREN, NEITHER THY KINSMEN, NOR THYTI RICH NEIGHBOURS; LEST THEY ALSO BID THEE AGAIN, AND A RECOMPENCE BE MADEE THEE.K# 13 BUT WHEN THOU MAKEST A FEAST, CALL THE POOR, THE MAIMED, THE LAME, THEG BLIND:EI# 14 AND THOU SHALT BE BLESSED; FOR THEY CANNOT RECOMPENSE THEE: FOR THOUE6 SHALT BE RECOMPENSED AT THE RESURRECTION OF THE JUST.J# 15 AND WHEN ONE OF THEM THAT SAT AT MEAT WITH HIM HEARD THESE THINGS, HEI SAID UNTO HIM, BLESSED IS HE THAT SHALL EAT BREAD IN THE KINGDOM OF GOD. M# 16 THEN SAID HE UNTO HIM, A CERTAIN MAN MADE A GREAT SUPPER, AND BADE MANY:T IT I# 17 AND SENT HIS SERVANT AT SUPPER TIME TO SAY TO THEM THAT WERE BIDDEN,M$ COME; FOR ALL THINGS ARE NOW READY.L# 18 AND THEY ALL WITH ONE CONSENT BEGAN TO MAKE EXCUSE. THE FIRST SAID UNTOM HIM, I HAVE BOUGHT A PIECE OF GROUND, AND I MUST NEEDS GO AND SEE IT: I PRAYS THEE HAVE ME EXCUSED.I# 19 AND ANOTHER SAID, I HAVE BOUGHT FIVE YOKE OF OXEN, AND I GO TO PROVES# THEM: I PRAY THEE HAVE ME EXCUSED. J# 20 AND ANOTHER SAID, I HAVE MARRIED A WIFE, AND THEREFORE I CANNOT COME.L# 21 SO THAT SERVANT CAME, AND SHEWED HIS LORD THESE THINGS. THEN THE MASTERN OF THE HOUSE BEING ANGRY SAID TO HIS SERVANT, GO OUT QUICKLY INTO THE STREETSM AND LANES OF THE CITY, AND BRING IN HITHER THE POOR, AND THE MAIMED, AND THEH HALT, AND THE BLIND.DK# 22 AND THE SERVANT SAID, LORD, IT IS DONE AS THOU HAST COMMANDED, AND YETR THERE IS ROOM.GM# 23 AND THE LORD SAID UNTO THE SERVANT, GO OUT INTO THE HIGHWAYS AND HEDGES,9 AND COMPEL THEM TO COME IN, THAT MY HOUSE MAY BE FILLED. M# 24 FOR I SAY UNTO YOU, THAT NONE OF THOSE MEN WHICH WERE BIDDEN SHALL TASTEE OF MY SUPPER.K# 25 AND THERE WENT GREAT MULTITUDES WITH HIM: AND HE TURNED, AND SAID UNTO THEM,J# 26 IF ANY MAN COME TO ME, AND HATE NOT HIS FATHER, AND MOTHER, AND WIFE,H AND CHILDREN, AND BRETHREN, AND SISTERS, YEA, AND HIS OWN LIFE ALSO, HE CANNOT BE MY DISCIPLE.TK# 27 AND WHOSOEVER DOTH NOT BEAR HIS CROSS, AND COME AFTER ME, CANNOT BE MYW DISCIPLE.J# 28 FOR WHICH OF YOU, INTENDING TO BUILD A TOWER, SITTETH NOT DOWN FIRST,@ AND COUNTETH THE COST, WHETHER HE HAVE SUFFICIENT TO FINISH IT?M# 29 LEST HAPLY, AFTER HE HATH LAID THE FOUNDATION, AND IS NOT ABLE TO FINISHD* IT, ALL THAT BEHOLD IT BEGIN TO MOCK HIM,A# 30 SAYING, THIS MAN BEGAN TO BUILD, AND WAS NOT ABLE TO FINISH.DK# 31 OR WHAT KING, GOING TO MAKE WAR AGAINST ANOTHER KING, SITTETH NOT DOWN L FIRST, AND CONSULTETH WHETHER HE BE ABLE WITH TEN THOUSAND TO MEET HIM THAT) COMETH AGAINST HIM WITH TWENTY THOUSAND?OC# 32 OR ELSE, WHILE THE OTHER IS YET A GREAT WAY OFF, HE SENDETH AN - AMBASSAGE, AND DESIRETH CONDITIONS OF PEACE.IM# 33 SO LIKEWISE, WHOSOEVER HE BE OF YOU THAT FORSAKETH NOT ALL THAT HE HATH,S HE CANNOT BE MY DISCIPLE.K# 34 SALT IS GOOD: BUT IF THE SALT HAVE LOST HIS SAVOUR, WHEREWITH SHALL IT BE SEASONED?OK# 35 IT IS NEITHER FIT FOR THE LAND, NOR YET FOR THE DUNGHILL; BUT MEN CASTT1 IT OUT. HE THAT HATH EARS TO HEAR, LET HIM HEAR.N = CHAPTER 15 HJ# 1 THEN DREW NEAR UNTO HIM ALL THE PUBLICANS AND SINNERS FOR TO HEAR HIM.F# 2 AND THE PHARISEES AND SCRIBES MURMURED, SAYING, THIS MAN RECEIVETH SINNERS, AND EATETH WITH THEM.E0# 3 AND HE SPAKE THIS PARABLE UNTO THEM, SAYING,J# 4 WHAT MAN OF YOU, HAVING AN HUNDRED SHEEP, IF HE LOSE ONE OF THEM, DOTHL NOT LEAVE THE NINETY AND NINE IN THE WILDERNESS, AND GO AFTER THAT WHICH IS LOST, UNTIL HE FIND IT?H# 5 AND WHEN HE HATH FOUND IT, HE LAYETH IT ON HIS SHOULDERS, REJOICING.L# 6 AND WHEN HE COMETH HOME, HE CALLETH TOGETHER HIS FRIENDS AND NEIGHBOURS,M SAYING UNTO THEM, REJOICE WITH ME; FOR I HAVE FOUND MY SHEEP WHICH WAS LOST.H00B'AD%5%T6%! !M# 7 I SAY UNTO YOU, THAT LIKEWISE JOY SHALL BE IN HEAVEN OVER ONE SINNER THATLF REPENTETH, MORE THAN OVER NINETY AND NINE JUST PERSONS, WHICH NEED NO REPENTANCE.I# 8 EITHER WHAT WOMAN HAVING TEN PIECES OF SILVER, IF SHE LOSE ONE PIECE,TK DOTH NOT LIGHT A CANDLE, AND SWEEP THE HOUSE, AND SEEK DILIGENTLY TILL SHEE FIND IT?SJ# 9 AND WHEN SHE HATH FOUND IT, SHE CALLETH HER FRIENDS AND HER NEIGHBOURSJ TOGETHER, SAYING, REJOICE WITH ME; FOR I HAVE FOUND THE PIECE WHICH I HAD LOST.L# 10 LIKEWISE, I SAY UNTO YOU, THERE IS JOY IN THE PRESENCE OF THE ANGELS OF$ GOD OVER ONE SINNER THAT REPENTETH.-# 11 AND HE SAID, A CERTAIN MAN HAD TWO SONS:HL# 12 AND THE YOUNGER OF THEM SAID TO HIS FATHER, FATHER, GIVE ME THE PORTIONB OF GOODS THAT FALLETH TO ME. AND HE DIVIDED UNTO THEM HIS LIVING.L# 13 AND NOT MANY DAYS AFTER THE YOUNGER SON GATHERED ALL TOGETHER, AND TOOKL HIS JOURNEY INTO A FAR COUNTRY, AND THERE WASTED HIS SUBSTANCE WITH RIOTOUS LIVING.M# 14 AND WHEN HE HAD SPENT ALL, THERE AROSE A MIGHTY FAMINE IN THAT LAND; ANDO HE BEGAN TO BE IN WANT.M# 15 AND HE WENT AND JOINED HIMSELF TO A CITIZEN OF THAT COUNTRY; AND HE SENT # HIM INTO HIS FIELDS TO FEED SWINE.OJ# 16 AND HE WOULD FAIN HAVE FILLED HIS BELLY WITH THE HUSKS THAT THE SWINE# DID EAT: AND NO MAN GAVE UNTO HIM.SH# 17 AND WHEN HE CAME TO HIMSELF, HE SAID, HOW MANY HIRED SERVANTS OF MYB FATHERS HAVE BREAD ENOUGH AND TO SPARE, AND I PERISH WITH HUNGER!L# 18 I WILL ARISE AND GO TO MY FATHER, AND WILL SAY UNTO HIM, FATHER, I HAVE( SINNED AGAINST HEAVEN, AND BEFORE THEE,L# 19 AND AM NO MORE WORTHY TO BE CALLED THY SON: MAKE ME AS ONE OF THY HIRED SERVANTS.J# 20 AND HE AROSE, AND CAME TO HIS FATHER. BUT WHEN HE WAS YET A GREAT WAYL OFF, HIS FATHER SAW HIM, AND HAD COMPASSION, AND RAN, AND FELL ON HIS NECK, AND KISSED HIM.L# 21 AND THE SON SAID UNTO HIM, FATHER, I HAVE SINNED AGAINST HEAVEN, AND IN7 THY SIGHT, AND AM NO MORE WORTHY TO BE CALLED THY SON.8L# 22 BUT THE FATHER SAID TO HIS SERVANTS, BRING FORTH THE BEST ROBE, AND PUT> IT ON HIM; AND PUT A RING ON HIS HAND, AND SHOES ON HIS FEET:J# 23 AND BRING HITHER THE FATTED CALF, AND KILL IT; AND LET US EAT, AND BE MERRY:DM# 24 FOR THIS MY SON WAS DEAD, AND IS ALIVE AGAIN; HE WAS LOST, AND IS FOUND.  AND THEY BEGAN TO BE MERRY.L# 25 NOW HIS ELDER SON WAS IN THE FIELD: AND AS HE CAME AND DREW NIGH TO THE$ HOUSE, HE HEARD MUSICK AND DANCING.J# 26 AND HE CALLED ONE OF THE SERVANTS, AND ASKED WHAT THESE THINGS MEANT.J# 27 AND HE SAID UNTO HIM, THY BROTHER IS COME; AND THY FATHER HATH KILLED> THE FATTED CALF, BECAUSE HE HATH RECEIVED HIM SAFE AND SOUND.J# 28 AND HE WAS ANGRY, AND WOULD NOT GO IN: THEREFORE CAME HIS FATHER OUT, AND INTREATED HIM.DI# 29 AND HE ANSWERING SAID TO HIS FATHER, LO, THESE MANY YEARS DO I SERVE M THEE, NEITHER TRANSGRESSED I AT ANY TIME THY COMMANDMENT: AND YET THOU NEVERO: GAVEST ME A KID, THAT I MIGHT MAKE MERRY WITH MY FRIENDS:I# 30 BUT AS SOON AS THIS THY SON WAS COME, WHICH HATH DEVOURED THY LIVINGD8 WITH HARLOTS, THOU HAST KILLED FOR HIM THE FATTED CALF.M# 31 AND HE SAID UNTO HIM, SON, THOU ART EVER WITH ME, AND ALL THAT I HAVE ISA THINE.AM# 32 IT WAS MEET THAT WE SHOULD MAKE MERRY, AND BE GLAD: FOR THIS THY BROTHERA: WAS DEAD, AND IS ALIVE AGAIN; AND WAS LOST, AND IS FOUND. = CHAPTER 16 ,L# 1 AND HE SAID ALSO UNTO HIS DISCIPLES, THERE WAS A CERTAIN RICH MAN, WHICHH HAD A STEWARD; AND THE SAME WAS ACCUSED UNTO HIM THAT HE HAD WASTED HIS GOODS.YM# 2 AND HE CALLED HIM, AND SAID UNTO HIM, HOW IS IT THAT I HEAR THIS OF THEE? J GIVE AN ACCOUNT OF THY STEWARDSHIP; FOR THOU MAYEST BE NO LONGER STEWARD.M# 3 THEN THE STEWARD SAID WITHIN HIMSELF, WHAT SHALL I DO? FOR MY LORD TAKETHRA AWAY FROM ME THE STEWARDSHIP: I CANNOT DIG; TO BEG I AM ASHAMED.II# 4 I AM RESOLVED WHAT TO DO, THAT, WHEN I AM PUT OUT OF THE STEWARDSHIP,I' THEY MAY RECEIVE ME INTO THEIR HOUSES.,K# 5 SO HE CALLED EVERY ONE OF HIS LORDS DEBTORS UNTO HIM, AND SAID UNTO THEH) FIRST, HOW MUCH OWEST THOU UNTO MY LORD?IK# 6 AND HE SAID, AN HUNDRED MEASURES OF OIL. AND HE SAID U00BA<%X>%+%O-%TADATADATANTO HIM, TAKE THYW- BILL, AND SIT DOWN QUICKLY, AND WRITE FIFTY.M# 7 THEN SAID HE TO ANOTHER, AND HOW MUCH OWEST THOU? AND HE SAID, AN HUNDREDM MEASURES OF WHEAT. AND HE SAID UNTO HIM, TAKE THY BILL, AND WRITE FOURSCORE.SJ# 8 AND THE LORD COMMENDED THE UNJUST STEWARD, BECAUSE HE HAD DONE WISELY:F FOR THE CHILDREN OF THIS WORLD ARE IN THEIR GENERATION WISER THAN THE CHILDREN OF LIGHT.AC# 9 AND I SAY UNTO YOU, MAKE TO YOURSELVES FRIENDS OF THE MAMMON OFSK UNRIGHTEOUSNESS; THAT, WHEN YE FAIL, THEY MAY RECEIVE YOU INTO EVERLASTINGS HABITATIONS.,M# 10 HE THAT IS FAITHFUL IN THAT WHICH IS LEAST IS FAITHFUL ALSO IN MUCH: ANDE7 HE THAT IS UNJUST IN THE LEAST IS UNJUST ALSO IN MUCH.HJ# 11 IF THEREFORE YE HAVE NOT BEEN FAITHFUL IN THE UNRIGHTEOUS MAMMON, WHO+ WILL COMMIT TO YOUR TRUST THE TRUE RICHES?RH# 12 AND IF YE HAVE NOT BEEN FAITHFUL IN THAT WHICH IS ANOTHER MANS, WHO' SHALL GIVE YOU THAT WHICH IS YOUR OWN?AK# 13 NO SERVANT CAN SERVE TWO MASTERS: FOR EITHER HE WILL HATE THE ONE, ANDAK LOVE THE OTHER; OR ELSE HE WILL HOLD TO THE ONE, AND DESPISE THE OTHER. YEA CANNOT SERVE GOD AND MAMMON.SK# 14 AND THE PHARISEES ALSO, WHO WERE COVETOUS, HEARD ALL THESE THINGS: ANDI THEY DERIDED HIM.L# 15 AND HE SAID UNTO THEM, YE ARE THEY WHICH JUSTIFY YOURSELVES BEFORE MEN;L BUT GOD KNOWETH YOUR HEARTS: FOR THAT WHICH IS HIGHLY ESTEEMED AMONG MEN IS! ABOMINATION IN THE SIGHT OF GOD.LM# 16 THE LAW AND THE PROPHETS WERE UNTIL JOHN: SINCE THAT TIME THE KINGDOM OFE1 GOD IS PREACHED, AND EVERY MAN PRESSETH INTO IT.OJ# 17 AND IT IS EASIER FOR HEAVEN AND EARTH TO PASS, THAN ONE TITTLE OF THE LAW TO FAIL.F# 18 WHOSOEVER PUTTETH AWAY HIS WIFE, AND MARRIETH ANOTHER, COMMITTETHG ADULTERY: AND WHOSOEVER MARRIETH HER THAT IS PUT AWAY FROM HER HUSBANDU COMMITTETH ADULTERY. G# 19 THERE WAS A CERTAIN RICH MAN, WHICH WAS CLOTHED IN PURPLE AND FINEN( LINEN, AND FARED SUMPTUOUSLY EVERY DAY:H# 20 AND THERE WAS A CERTAIN BEGGAR NAMED LAZARUS, WHICH WAS LAID AT HIS GATE, FULL OF SORES,HI# 21 AND DESIRING TO BE FED WITH THE CRUMBS WHICH FELL FROM THE RICH MANSE4 TABLE: MOREOVER THE DOGS CAME AND LICKED HIS SORES.M# 22 AND IT CAME TO PASS, THAT THE BEGGAR DIED, AND WAS CARRIED BY THE ANGELSR= INTO ABRAHAMS BOSOM: THE RICH MAN ALSO DIED, AND WAS BURIED;UJ# 23 AND IN HELL HE LIFT UP HIS EYES, BEING IN TORMENTS, AND SEETH ABRAHAM$ AFAR OFF, AND LAZARUS IN HIS BOSOM.F# 24 AND HE CRIED AND SAID, FATHER ABRAHAM, HAVE MERCY ON ME, AND SENDM LAZARUS, THAT HE MAY DIP THE TIP OF HIS FINGER IN WATER, AND COOL MY TONGUE;E" FOR I AM TORMENTED IN THIS FLAME.M# 25 BUT ABRAHAM SAID, SON, REMEMBER THAT THOU IN THY LIFETIME RECEIVEDST THY L GOOD THINGS, AND LIKEWISE LAZARUS EVIL THINGS: BUT NOW HE IS COMFORTED, AND THOU ART TORMENTED.L# 26 AND BESIDE ALL THIS, BETWEEN US AND YOU THERE IS A GREAT GULF FIXED: SON THAT THEY WHICH WOULD PASS FROM HENCE TO YOU CANNOT; NEITHER CAN THEY PASS TO! US, THAT WOULD COME FROM THENCE.EM# 27 THEN HE SAID, I PRAY THEE THEREFORE, FATHER, THAT THOU WOULDEST SEND HIMR TO MY FATHERS HOUSE:L# 28 FOR I HAVE FIVE BRETHREN; THAT HE MAY TESTIFY UNTO THEM, LEST THEY ALSO! COME INTO THIS PLACE OF TORMENT. L# 29 ABRAHAM SAITH UNTO HIM, THEY HAVE MOSES AND THE PROPHETS; LET THEM HEAR THEM.I# 30 AND HE SAID, NAY, FATHER ABRAHAM: BUT IF ONE WENT UNTO THEM FROM THEA DEAD, THEY WILL REPENT.K# 31 AND HE SAID UNTO HIM, IF THEY HEAR NOT MOSES AND THE PROPHETS, NEITHERT7 WILL THEY BE PERSUADED, THOUGH ONE ROSE FROM THE DEAD.H = CHAPTER 17 AL# 1 THEN SAID HE UNTO THE DISCIPLES, IT IS IMPOSSIBLE BUT THAT OFFENCES WILL0 COME: BUT WOE UNTO HIM, THROUGH WHOM THEY COME!K# 2 IT WERE BETTER FOR HIM THAT A MILLSTONE WERE HANGED ABOUT HIS NECK, ANDEK HE CAST INTO THE SEA, THAN THAT HE SHOULD OFFEND ONE OF THESE LITTLE ONES.FI# 3 TAKE HEED TO YOURSELVES: IF THY BROTHER TRESPASS AGAINST THEE, REBUKE.$ HIM; AND IF HE REPENT, FORGIVE HIM.L# 4 AND IF HE TRESPASS AGAINST THEE SEVEN TIMES IN A DAY, AND SEVEN TIMES IND A DAY TURN AGAIN TO THEE, SAYING, I REPENT; THOU SHALT FORGIVE HIM.<# 5 AND THE APOSTL00B'AD%5%T6%! !ES SAID UNTO THE LORD, INCREASE OUR FAITH.K# 6 AND THE LORD SAID, IF YE HAD FAITH AS A GRAIN OF MUSTARD SEED, YE MIGHT I SAY UNTO THIS SYCAMINE TREE, BE THOU PLUCKED UP BY THE ROOT, AND BE THOUD, PLANTED IN THE SEA; AND IT SHOULD OBEY YOU.J# 7 BUT WHICH OF YOU, HAVING A SERVANT PLOWING OR FEEDING CATTLE, WILL SAYM UNTO HIM BY AND BY, WHEN HE IS COME FROM THE FIELD, GO AND SIT DOWN TO MEAT?AI# 8 AND WILL NOT RATHER SAY UNTO HIM, MAKE READY WHEREWITH I MAY SUP, AND N GIRD THYSELF, AND SERVE ME, TILL I HAVE EATEN AND DRUNKEN; AND AFTERWARD THOU SHALT EAT AND DRINK?,L# 9 DOTH HE THANK THAT SERVANT BECAUSE HE DID THE THINGS THAT WERE COMMANDED HIM? I TROW NOT.CG# 10 SO LIKEWISE YE, WHEN YE SHALL HAVE DONE ALL THOSE THINGS WHICH ARE N COMMANDED YOU, SAY, WE ARE UNPROFITABLE SERVANTS: WE HAVE DONE THAT WHICH WAS OUR DUTY TO DO.M# 11 AND IT CAME TO PASS, AS HE WENT TO JERUSALEM, THAT HE PASSED THROUGH THET MIDST OF SAMARIA AND GALILEE.I# 12 AND AS HE ENTERED INTO A CERTAIN VILLAGE, THERE MET HIM TEN MEN THATA# WERE LEPERS, WHICH STOOD AFAR OFF:TL# 13 AND THEY LIFTED UP THEIR VOICES, AND SAID, JESUS, MASTER, HAVE MERCY ON US.I# 14 AND WHEN HE SAW THEM, HE SAID UNTO THEM, GO SHEW YOURSELVES UNTO THEEF PRIESTS. AND IT CAME TO PASS, THAT, AS THEY WENT, THEY WERE CLEANSED.M# 15 AND ONE OF THEM, WHEN HE SAW THAT HE WAS HEALED, TURNED BACK, AND WITH AS LOUD VOICE GLORIFIED GOD,K# 16 AND FELL DOWN ON HIS FACE AT HIS FEET, GIVING HIM THANKS: AND HE WAS AT SAMARITAN.EM# 17 AND JESUS ANSWERING SAID, WERE THERE NOT TEN CLEANSED? BUT WHERE ARE THET NINE?F# 18 THERE ARE NOT FOUND THAT RETURNED TO GIVE GLORY TO GOD, SAVE THIS STRANGER.M# 19 AND HE SAID UNTO HIM, ARISE, GO THY WAY: THY FAITH HATH MADE THEE WHOLE. G# 20 AND WHEN HE WAS DEMANDED OF THE PHARISEES, WHEN THE KINGDOM OF GODEK SHOULD COME, HE ANSWERED THEM AND SAID, THE KINGDOM OF GOD COMETH NOT WITHC OBSERVATION:,L# 21 NEITHER SHALL THEY SAY, LO HERE! OR, LO THERE! FOR, BEHOLD, THE KINGDOM OF GOD IS WITHIN YOU.M# 22 AND HE SAID UNTO THE DISCIPLES, THE DAYS WILL COME, WHEN YE SHALL DESIREC TO SEE ONE OF THE DAYS OF THE SON OF MAN, AND YE SHALL NOT SEE IT.SK# 23 AND THEY SHALL SAY TO YOU, SEE HERE; OR, SEE THERE: GO NOT AFTER THEM,D NOR FOLLOW THEM.0L# 24 FOR AS THE LIGHTNING, THAT LIGHTENETH OUT OF THE ONE PART UNDER HEAVEN,M SHINETH UNTO THE OTHER PART UNDER HEAVEN; SO SHALL ALSO THE SON OF MAN BE INI HIS DAY.NB# 25 BUT FIRST MUST HE SUFFER MANY THINGS, AND BE REJECTED OF THIS GENERATION.M# 26 AND AS IT WAS IN THE DAYS OF NOE, SO SHALL IT BE ALSO IN THE DAYS OF THES SON OF MAN.E# 27 THEY DID EAT, THEY DRANK, THEY MARRIED WIVES, THEY WERE GIVEN IN K MARRIAGE, UNTIL THE DAY THAT NOE ENTERED INTO THE ARK, AND THE FLOOD CAME,N AND DESTROYED THEM ALL.J# 28 LIKEWISE ALSO AS IT WAS IN THE DAYS OF LOT; THEY DID EAT, THEY DRANK,4 THEY BOUGHT, THEY SOLD, THEY PLANTED, THEY BUILDED;M# 29 BUT THE SAME DAY THAT LOT WENT OUT OF SODOM IT RAINED FIRE AND BRIMSTONEB% FROM HEAVEN, AND DESTROYED THEM ALL.AF# 30 EVEN THUS SHALL IT BE IN THE DAY WHEN THE SON OF MAN IS REVEALED.K# 31 IN THAT DAY, HE WHICH SHALL BE UPON THE HOUSETOP, AND HIS STUFF IN THEGK HOUSE, LET HIM NOT COME DOWN TO TAKE IT AWAY: AND HE THAT IS IN THE FIELD,O" LET HIM LIKEWISE NOT RETURN BACK.# 32 REMEMBER LOTS WIFE.M# 33 WHOSOEVER SHALL SEEK TO SAVE HIS LIFE SHALL LOSE IT; AND WHOSOEVER SHALL ! LOSE HIS LIFE SHALL PRESERVE IT.EI# 34 I TELL YOU, IN THAT NIGHT THERE SHALL BE TWO MEN IN ONE BED; THE ONEE- SHALL BE TAKEN, AND THE OTHER SHALL BE LEFT.SJ# 35 TWO WOMEN SHALL BE GRINDING TOGETHER; THE ONE SHALL BE TAKEN, AND THE OTHER LEFT.I# 36 TWO MEN SHALL BE IN THE FIELD; THE ONE SHALL BE TAKEN, AND THE OTHERO LEFT.M# 37 AND THEY ANSWERED AND SAID UNTO HIM, WHERE, LORD? AND HE SAID UNTO THEM,RG WHERESOEVER THE BODY IS, THITHER WILL THE EAGLES BE GATHERED TOGETHER. = CHAPTER 18 EJ# 1 AND HE SPAKE A PARABLE UNTO THEM TO THIS END, THAT MEN OUGHT ALWAYS TO PRAY, AND NOT TO FAINT;F# 2 SAYING, THERE WAS IN A CITY A JUDGE, WHICH FEARED NOT GOD, NEITHER00BA<%X>%+%O-%TADATADATA REGARDED MAN:M# 3 AND THERE WAS A WIDOW IN THAT CITY; AND SHE CAME UNTO HIM, SAYING, AVENGEM ME OF MINE ADVERSARY.G# 4 AND HE WOULD NOT FOR A WHILE: BUT AFTERWARD HE SAID WITHIN HIMSELF,A' THOUGH I FEAR NOT GOD, NOR REGARD MAN;DG# 5 YET BECAUSE THIS WIDOW TROUBLETH ME, I WILL AVENGE HER, LEST BY HERE CONTINUAL COMING SHE WEARY ME. 8# 6 AND THE LORD SAID, HEAR WHAT THE UNJUST JUDGE SAITH.M# 7 AND SHALL NOT GOD AVENGE HIS OWN ELECT, WHICH CRY DAY AND NIGHT UNTO HIM,, THOUGH HE BEAR LONG WITH THEM?RK# 8 I TELL YOU THAT HE WILL AVENGE THEM SPEEDILY. NEVERTHELESS WHEN THE SONS1 OF MAN COMETH, SHALL HE FIND FAITH ON THE EARTH?WK# 9 AND HE SPAKE THIS PARABLE UNTO CERTAIN WHICH TRUSTED IN THEMSELVES THATN* THEY WERE RIGHTEOUS, AND DESPISED OTHERS:I# 10 TWO MEN WENT UP INTO THE TEMPLE TO PRAY; THE ONE A PHARISEE, AND THEH OTHER A PUBLICAN.M# 11 THE PHARISEE STOOD AND PRAYED THUS WITH HIMSELF, GOD, I THANK THEE, THATEM I AM NOT AS OTHER MEN ARE, EXTORTIONERS, UNJUST, ADULTERERS, OR EVEN AS THISH PUBLICAN.C# 12 I FAST TWICE IN THE WEEK, I GIVE TITHES OF ALL THAT I POSSESS.SJ# 13 AND THE PUBLICAN, STANDING AFAR OFF, WOULD NOT LIFT UP SO MUCH AS HISM EYES UNTO HEAVEN, BUT SMOTE UPON HIS BREAST, SAYING, GOD BE MERCIFUL TO ME AN SINNER.J# 14 I TELL YOU, THIS MAN WENT DOWN TO HIS HOUSE JUSTIFIED RATHER THAN THEH OTHER: FOR EVERY ONE THAT EXALTETH HIMSELF SHALL BE ABASED; AND HE THAT# HUMBLETH HIMSELF SHALL BE EXALTED.IJ# 15 AND THEY BROUGHT UNTO HIM ALSO INFANTS, THAT HE WOULD TOUCH THEM: BUT. WHEN HIS DISCIPLES SAW IT, THEY REBUKED THEM.M# 16 BUT JESUS CALLED THEM UNTO HIM, AND SAID, SUFFER LITTLE CHILDREN TO COMEOA UNTO ME, AND FORBID THEM NOT: FOR OF SUCH IS THE KINGDOM OF GOD.IM# 17 VERILY I SAY UNTO YOU, WHOSOEVER SHALL NOT RECEIVE THE KINGDOM OF GOD AS / A LITTLE CHILD SHALL IN NO WISE ENTER THEREIN.K# 18 AND A CERTAIN RULER ASKED HIM, SAYING, GOOD MASTER, WHAT SHALL I DO TOM INHERIT ETERNAL LIFE?J# 19 AND JESUS SAID UNTO HIM, WHY CALLEST THOU ME GOOD? NONE IS GOOD, SAVE ONE, THAT IS, GOD.IK# 20 THOU KNOWEST THE COMMANDMENTS, DO NOT COMMIT ADULTERY, DO NOT KILL, DOSH NOT STEAL, DO NOT BEAR FALSE WITNESS, HONOUR THY FATHER AND THY MOTHER.9# 21 AND HE SAID, ALL THESE HAVE I KEPT FROM MY YOUTH UP. J# 22 NOW WHEN JESUS HEARD THESE THINGS, HE SAID UNTO HIM, YET LACKEST THOUK ONE THING: SELL ALL THAT THOU HAST, AND DISTRIBUTE UNTO THE POOR, AND THOUS4 SHALT HAVE TREASURE IN HEAVEN: AND COME, FOLLOW ME.I# 23 AND WHEN HE HEARD THIS, HE WAS VERY SORROWFUL: FOR HE WAS VERY RICH.EM# 24 AND WHEN JESUS SAW THAT HE WAS VERY SORROWFUL, HE SAID, HOW HARDLY SHALLO5 THEY THAT HAVE RICHES ENTER INTO THE KINGDOM OF GOD!HI# 25 FOR IT IS EASIER FOR A CAMEL TO GO THROUGH A NEEDLES EYE, THAN FOR AR+ RICH MAN TO ENTER INTO THE KINGDOM OF GOD.H8# 26 AND THEY THAT HEARD IT SAID, WHO THEN CAN BE SAVED?L# 27 AND HE SAID, THE THINGS WHICH ARE IMPOSSIBLE WITH MEN ARE POSSIBLE WITH GOD.U># 28 THEN PETER SAID, LO, WE HAVE LEFT ALL, AND FOLLOWED THEE.L# 29 AND HE SAID UNTO THEM, VERILY I SAY UNTO YOU, THERE IS NO MAN THAT HATHN LEFT HOUSE, OR PARENTS, OR BRETHREN, OR WIFE, OR CHILDREN, FOR THE KINGDOM OF GODS SAKE,OI# 30 WHO SHALL NOT RECEIVE MANIFOLD MORE IN THIS PRESENT TIME, AND IN THET WORLD TO COME LIFE EVERLASTING.K# 31 THEN HE TOOK UNTO HIM THE TWELVE, AND SAID UNTO THEM, BEHOLD, WE GO UPEM TO JERUSALEM, AND ALL THINGS THAT ARE WRITTEN BY THE PROPHETS CONCERNING THEH" SON OF MAN SHALL BE ACCOMPLISHED.J# 32 FOR HE SHALL BE DELIVERED UNTO THE GENTILES, AND SHALL BE MOCKED, AND& SPITEFULLY ENTREATED, AND SPITTED ON:K# 33 AND THEY SHALL SCOURGE HIM, AND PUT HIM TO DEATH: AND THE THIRD DAY HEF SHALL RISE AGAIN.K# 34 AND THEY UNDERSTOOD NONE OF THESE THINGS: AND THIS SAYING WAS HID FROMD6 THEM, NEITHER KNEW THEY THE THINGS WHICH WERE SPOKEN.J# 35 AND IT CAME TO PASS, THAT AS HE WAS COME NIGH UNTO JERICHO, A CERTAIN' BLIND MAN SAT BY THE WAY SIDE BEGGING:E?# 36 AND HEARING THE MULTITUDE PASS BY, HE ASKED WHAT IT MEANT. :# 37 AND THEY TOLD HIM, THAT JESUS OF NAZARETH PASSETH BY.F# 00B'AD%5%T6%! !38 AND HE CRIED, SAYING, JESUS, THOU SON OF DAVID, HAVE MERCY ON ME.K# 39 AND THEY WHICH WENT BEFORE REBUKED HIM, THAT HE SHOULD HOLD HIS PEACE: D BUT HE CRIED SO MUCH THE MORE, THOU SON OF DAVID, HAVE MERCY ON ME.K# 40 AND JESUS STOOD, AND COMMANDED HIM TO BE BROUGHT UNTO HIM: AND WHEN HEH WAS COME NEAR, HE ASKED HIM,II# 41 SAYING, WHAT WILT THOU THAT I SHALL DO UNTO THEE? AND HE SAID, LORD,T THAT I MAY RECEIVE MY SIGHT.WK# 42 AND JESUS SAID UNTO HIM, RECEIVE THY SIGHT: THY FAITH HATH SAVED THEE. M# 43 AND IMMEDIATELY HE RECEIVED HIS SIGHT, AND FOLLOWED HIM, GLORIFYING GOD:T< AND ALL THE PEOPLE, WHEN THEY SAW IT, GAVE PRAISE UNTO GOD. = CHAPTER 19 R1# 1 AND JESUS ENTERED AND PASSED THROUGH JERICHO. K# 2 AND, BEHOLD, THERE WAS A MAN NAMED ZACCHAEUS, WHICH WAS THE CHIEF AMONGH THE PUBLICANS, AND HE WAS RICH.G# 3 AND HE SOUGHT TO SEE JESUS WHO HE WAS; AND COULD NOT FOR THE PRESS, " BECAUSE HE WAS LITTLE OF STATURE.M# 4 AND HE RAN BEFORE, AND CLIMBED UP INTO A SYCOMORE TREE TO SEE HIM: FOR HE  WAS TO PASS THAT WAY.I# 5 AND WHEN JESUS CAME TO THE PLACE, HE LOOKED UP, AND SAW HIM, AND SAIDLK UNTO HIM, ZACCHAEUS, MAKE HASTE, AND COME DOWN; FOR TO DAY I MUST ABIDE ATE THY HOUSE.D@# 6 AND HE MADE HASTE, AND CAME DOWN, AND RECEIVED HIM JOYFULLY.K# 7 AND WHEN THEY SAW IT, THEY ALL MURMURED, SAYING, THAT HE WAS GONE TO BES# GUEST WITH A MAN THAT IS A SINNER.UM# 8 AND ZACCHAEUS STOOD, AND SAID UNTO THE LORD: BEHOLD, LORD, THE HALF OF MYRN GOODS I GIVE TO THE POOR; AND IF I HAVE TAKEN ANY THING FROM ANY MAN BY FALSE$ ACCUSATION, I RESTORE HIM FOURFOLD.F# 9 AND JESUS SAID UNTO HIM, THIS DAY IS SALVATION COME TO THIS HOUSE,* FORSOMUCH AS HE ALSO IS A SON OF ABRAHAM.H# 10 FOR THE SON OF MAN IS COME TO SEEK AND TO SAVE THAT WHICH WAS LOST.M# 11 AND AS THEY HEARD THESE THINGS, HE ADDED AND SPAKE A PARABLE, BECAUSE HE H WAS NIGH TO JERUSALEM, AND BECAUSE THEY THOUGHT THAT THE KINGDOM OF GOD SHOULD IMMEDIATELY APPEAR.LM# 12 HE SAID THEREFORE, A CERTAIN NOBLEMAN WENT INTO A FAR COUNTRY TO RECEIVEF& FOR HIMSELF A KINGDOM, AND TO RETURN.L# 13 AND HE CALLED HIS TEN SERVANTS, AND DELIVERED THEM TEN POUNDS, AND SAID UNTO THEM, OCCUPY TILL I COME.SI# 14 BUT HIS CITIZENS HATED HIM, AND SENT A MESSAGE AFTER HIM, SAYING, WE ) WILL NOT HAVE THIS MAN TO REIGN OVER US.DH# 15 AND IT CAME TO PASS, THAT WHEN HE WAS RETURNED, HAVING RECEIVED THEL KINGDOM, THEN HE COMMANDED THESE SERVANTS TO BE CALLED UNTO HIM, TO WHOM HEI HAD GIVEN THE MONEY, THAT HE MIGHT KNOW HOW MUCH EVERY MAN HAD GAINED BYY TRADING.FI# 16 THEN CAME THE FIRST, SAYING, LORD, THY POUND HATH GAINED TEN POUNDS.TJ# 17 AND HE SAID UNTO HIM, WELL, THOU GOOD SERVANT: BECAUSE THOU HAST BEEN@ FAITHFUL IN A VERY LITTLE, HAVE THOU AUTHORITY OVER TEN CITIES.J# 18 AND THE SECOND CAME, SAYING, LORD, THY POUND HATH GAINED FIVE POUNDS.@# 19 AND HE SAID LIKEWISE TO HIM, BE THOU ALSO OVER FIVE CITIES.L# 20 AND ANOTHER CAME, SAYING, LORD, BEHOLD, HERE IS THY POUND, WHICH I HAVE KEPT LAID UP IN A NAPKIN:L# 21 FOR I FEARED THEE, BECAUSE THOU ART AN AUSTERE MAN: THOU TAKEST UP THAT< THOU LAYEDST NOT DOWN, AND REAPEST THAT THOU DIDST NOT SOW.J# 22 AND HE SAITH UNTO HIM, OUT OF THINE OWN MOUTH WILL I JUDGE THEE, THOUN WICKED SERVANT. THOU KNEWEST THAT I WAS AN AUSTERE MAN, TAKING UP THAT I LAID* NOT DOWN, AND REAPING THAT I DID NOT SOW:M# 23 WHEREFORE THEN GAVEST NOT THOU MY MONEY INTO THE BANK, THAT AT MY COMINGO+ I MIGHT HAVE REQUIRED MINE OWN WITH USURY?PK# 24 AND HE SAID UNTO THEM THAT STOOD BY, TAKE FROM HIM THE POUND, AND GIVES IT TO HIM THAT HATH TEN POUNDS.8# 25 (AND THEY SAID UNTO HIM, LORD, HE HATH TEN POUNDS.)K# 26 FOR I SAY UNTO YOU, THAT UNTO EVERY ONE WHICH HATH SHALL BE GIVEN; ANDUH FROM HIM THAT HATH NOT, EVEN THAT HE HATH SHALL BE TAKEN AWAY FROM HIM.K# 27 BUT THOSE MINE ENEMIES, WHICH WOULD NOT THAT I SHOULD REIGN OVER THEM,O' BRING HITHER, AND SLAY THEM BEFORE ME. L# 28 AND WHEN HE HAD THUS SPOKEN, HE WENT BEFORE, ASCENDING UP TO JERUSALEM.L# 29 AND IT CAME TO PASS, WHEN HE WAS COME NIGH TO BETHPHAGE AND BETHANY, ATD T00BA<%X>%+%O-%TADATADATAHE MOUNT CALLED THE MOUNT OF OLIVES, HE SENT TWO OF HIS DISCIPLES,J# 30 SAYING, GO YE INTO THE VILLAGE OVER AGAINST YOU; IN THE WHICH AT YOURN ENTERING YE SHALL FIND A COLT TIED, WHEREON YET NEVER MAN SAT: LOOSE HIM, AND BRING HIM HITHER.M# 31 AND IF ANY MAN ASK YOU, WHY DO YE LOOSE HIM? THUS SHALL YE SAY UNTO HIM,T# BECAUSE THE LORD HATH NEED OF HIM.AJ# 32 AND THEY THAT WERE SENT WENT THEIR WAY, AND FOUND EVEN AS HE HAD SAID UNTO THEM.TJ# 33 AND AS THEY WERE LOOSING THE COLT, THE OWNERS THEREOF SAID UNTO THEM, WHY LOOSE YE THE COLT? .# 34 AND THEY SAID, THE LORD HATH NEED OF HIM.I# 35 AND THEY BROUGHT HIM TO JESUS: AND THEY CAST THEIR GARMENTS UPON THEF" COLT, AND THEY SET JESUS THEREON.:# 36 AND AS HE WENT, THEY SPREAD THEIR CLOTHES IN THE WAY.G# 37 AND WHEN HE WAS COME NIGH, EVEN NOW AT THE DESCENT OF THE MOUNT OFTM OLIVES, THE WHOLE MULTITUDE OF THE DISCIPLES BEGAN TO REJOICE AND PRAISE GODU? WITH A LOUD VOICE FOR ALL THE MIGHTY WORKS THAT THEY HAD SEEN;NK# 38 SAYING, BLESSED BE THE KING THAT COMETH IN THE NAME OF THE LORD: PEACE4% IN HEAVEN, AND GLORY IN THE HIGHEST.IF# 39 AND SOME OF THE PHARISEES FROM AMONG THE MULTITUDE SAID UNTO HIM, MASTER, REBUKE THY DISCIPLES.I# 40 AND HE ANSWERED AND SAID UNTO THEM, I TELL YOU THAT, IF THESE SHOULD78 HOLD THEIR PEACE, THE STONES WOULD IMMEDIATELY CRY OUT.E# 41 AND WHEN HE WAS COME NEAR, HE BEHELD THE CITY, AND WEPT OVER IT,IJ# 42 SAYING, IF THOU HADST KNOWN, EVEN THOU, AT LEAST IN THIS THY DAY, THEJ THINGS WHICH BELONG UNTO THY PEACE! BUT NOW THEY ARE HID FROM THINE EYES.G# 43 FOR THE DAYS SHALL COME UPON THEE, THAT THINE ENEMIES SHALL CAST APK TRENCH ABOUT THEE, AND COMPASS THEE ROUND, AND KEEP THEE IN ON EVERY SIDE,EK# 44 AND SHALL LAY THEE EVEN WITH THE GROUND, AND THY CHILDREN WITHIN THEE;7N AND THEY SHALL NOT LEAVE IN THEE ONE STONE UPON ANOTHER; BECAUSE THOU KNEWEST NOT THE TIME OF THY VISITATION.F# 45 AND HE WENT INTO THE TEMPLE, AND BEGAN TO CAST OUT THEM THAT SOLD THEREIN, AND THEM THAT BOUGHT;CM# 46 SAYING UNTO THEM, IT IS WRITTEN, MY HOUSE IS THE HOUSE OF PRAYER: BUT YEY HAVE MADE IT A DEN OF THIEVES.EM# 47 AND HE TAUGHT DAILY IN THE TEMPLE. BUT THE CHIEF PRIESTS AND THE SCRIBESE3 AND THE CHIEF OF THE PEOPLE SOUGHT TO DESTROY HIM,TH# 48 AND COULD NOT FIND WHAT THEY MIGHT DO: FOR ALL THE PEOPLE WERE VERY ATTENTIVE TO HEAR HIM.H = CHAPTER 20 UN# 1 AND IT CAME TO PASS, THAT ON ONE OF THOSE DAYS, AS HE TAUGHT THE PEOPLE INL THE TEMPLE, AND PREACHED THE GOSPEL, THE CHIEF PRIESTS AND THE SCRIBES CAME UPON HIM WITH THE ELDERS,K# 2 AND SPAKE UNTO HIM, SAYING, TELL US, BY WHAT AUTHORITY DOEST THOU THESE4 THINGS? OR WHO IS HE THAT GAVE THEE THIS AUTHORITY?J# 3 AND HE ANSWERED AND SAID UNTO THEM, I WILL ALSO ASK YOU ONE THING; AND ANSWER ME:C7# 4 THE BAPTISM OF JOHN, WAS IT FROM HEAVEN, OR OF MEN? L# 5 AND THEY REASONED WITH THEMSELVES, SAYING, IF WE SHALL SAY, FROM HEAVEN;+ HE WILL SAY, WHY THEN BELIEVED YE HIM NOT? H# 6 BUT AND IF WE SAY, OF MEN; ALL THE PEOPLE WILL STONE US: FOR THEY BE# PERSUADED THAT JOHN WAS A PROPHET. ># 7 AND THEY ANSWERED, THAT THEY COULD NOT TELL WHENCE IT WAS.M# 8 AND JESUS SAID UNTO THEM, NEITHER TELL I YOU BY WHAT AUTHORITY I DO THESES THINGS.L# 9 THEN BEGAN HE TO SPEAK TO THE PEOPLE THIS PARABLE; A CERTAIN MAN PLANTEDN A VINEYARD, AND LET IT FORTH TO HUSBANDMEN, AND WENT INTO A FAR COUNTRY FOR A LONG TIME.IL# 10 AND AT THE SEASON HE SENT A SERVANT TO THE HUSBANDMEN, THAT THEY SHOULDM GIVE HIM OF THE FRUIT OF THE VINEYARD: BUT THE HUSBANDMEN BEAT HIM, AND SENTD HIM AWAY EMPTY.M# 11 AND AGAIN HE SENT ANOTHER SERVANT: AND THEY BEAT HIM ALSO, AND ENTREATED ) HIM SHAMEFULLY, AND SENT HIM AWAY EMPTY.UL# 12 AND AGAIN HE SENT A THIRD: AND THEY WOUNDED HIM ALSO, AND CAST HIM OUT.H# 13 THEN SAID THE LORD OF THE VINEYARD, WHAT SHALL I DO? I WILL SEND MYB BELOVED SON: IT MAY BE THEY WILL REVERENCE HIM WHEN THEY SEE HIM.M# 14 BUT WHEN THE HUSBANDMEN SAW HIM, THEY REASONED AMONG THEMSELVES, SAYING,IK THIS IS THE HEIR: COME, LET US KILL HIM, THAT THE INHERITANCE MAY BE OURS.AI# 00B'AD%5%T6%! !15 SO THEY CAST HIM OUT OF THE VINEYARD, AND KILLED HIM. WHAT THEREFORE - SHALL THE LORD OF THE VINEYARD DO UNTO THEM?WL# 16 HE SHALL COME AND DESTROY THESE HUSBANDMEN, AND SHALL GIVE THE VINEYARD: TO OTHERS. AND WHEN THEY HEARD IT, THEY SAID, GOD FORBID.I# 17 AND HE BEHELD THEM, AND SAID, WHAT IS THIS THEN THAT IS WRITTEN, THEHN STONE WHICH THE BUILDERS REJECTED, THE SAME IS BECOME THE HEAD OF THE CORNER?L# 18 WHOSOEVER SHALL FALL UPON THAT STONE SHALL BE BROKEN; BUT ON WHOMSOEVER, IT SHALL FALL, IT WILL GRIND HIM TO POWDER.L# 19 AND THE CHIEF PRIESTS AND THE SCRIBES THE SAME HOUR SOUGHT TO LAY HANDSJ ON HIM; AND THEY FEARED THE PEOPLE: FOR THEY PERCEIVED THAT HE HAD SPOKEN THIS PARABLE AGAINST THEM.SC# 20 AND THEY WATCHED HIM, AND SENT FORTH SPIES, WHICH SHOULD FEIGNTJ THEMSELVES JUST MEN, THAT THEY MIGHT TAKE HOLD OF HIS WORDS, THAT SO THEY@ MIGHT DELIVER HIM UNTO THE POWER AND AUTHORITY OF THE GOVERNOR.E# 21 AND THEY ASKED HIM, SAYING, MASTER, WE KNOW THAT THOU SAYEST ANDM TEACHEST RIGHTLY, NEITHER ACCEPTEST THOU THE PERSON OF ANY, BUT TEACHEST THEE WAY OF GOD TRULY:<# 22 IS IT LAWFUL FOR US TO GIVE TRIBUTE UNTO CAESAR, OR NO?L# 23 BUT HE PERCEIVED THEIR CRAFTINESS, AND SAID UNTO THEM, WHY TEMPT YE ME?K# 24 SHEW ME A PENNY. WHOSE IMAGE AND SUPERSCRIPTION HATH IT? THEY ANSWEREDM AND SAID, CAESARS.AL# 25 AND HE SAID UNTO THEM, RENDER THEREFORE UNTO CAESAR THE THINGS WHICH BE0 CAESARS, AND UNTO GOD THE THINGS WHICH BE GODS.J# 26 AND THEY COULD NOT TAKE HOLD OF HIS WORDS BEFORE THE PEOPLE: AND THEY/ MARVELLED AT HIS ANSWER, AND HELD THEIR PEACE.L# 27 THEN CAME TO HIM CERTAIN OF THE SADDUCEES, WHICH DENY THAT THERE IS ANY" RESURRECTION; AND THEY ASKED HIM,K# 28 SAYING, MASTER, MOSES WROTE UNTO US, IF ANY MANS BROTHER DIE, HAVING AGN WIFE, AND HE DIE WITHOUT CHILDREN, THAT HIS BROTHER SHOULD TAKE HIS WIFE, AND RAISE UP SEED UNTO HIS BROTHER.M# 29 THERE WERE THEREFORE SEVEN BRETHREN: AND THE FIRST TOOK A WIFE, AND DIED. WITHOUT CHILDREN.<# 30 AND THE SECOND TOOK HER TO WIFE, AND HE DIED CHILDLESS.M# 31 AND THE THIRD TOOK HER; AND IN LIKE MANNER THE SEVEN ALSO: AND THEY LEFTT NO CHILDREN, AND DIED.T%# 32 LAST OF ALL THE WOMAN DIED ALSO.EK# 33 THEREFORE IN THE RESURRECTION WHOSE WIFE OF THEM IS SHE? FOR SEVEN HADI HER TO WIFE.WJ# 34 AND JESUS ANSWERING SAID UNTO THEM, THE CHILDREN OF THIS WORLD MARRY, AND ARE GIVEN IN MARRIAGE:TK# 35 BUT THEY WHICH SHALL BE ACCOUNTED WORTHY TO OBTAIN THAT WORLD, AND THEDF RESURRECTION FROM THE DEAD, NEITHER MARRY, NOR ARE GIVEN IN MARRIAGE:K# 36 NEITHER CAN THEY DIE ANY MORE: FOR THEY ARE EQUAL UNTO THE ANGELS; ANDLA ARE THE CHILDREN OF GOD, BEING THE CHILDREN OF THE RESURRECTION.WI# 37 NOW THAT THE DEAD ARE RAISED, EVEN MOSES SHEWED AT THE BUSH, WHEN HESJ CALLETH THE LORD THE GOD OF ABRAHAM, AND THE GOD OF ISAAC, AND THE GOD OF JACOB.DJ# 38 FOR HE IS NOT A GOD OF THE DEAD, BUT OF THE LIVING: FOR ALL LIVE UNTO HIM.EM# 39 THEN CERTAIN OF THE SCRIBES ANSWERING SAID, MASTER, THOU HAST WELL SAID.N?# 40 AND AFTER THAT THEY DURST NOT ASK HIM ANY QUESTION AT ALL.IC# 41 AND HE SAID UNTO THEM, HOW SAY THEY THAT CHRIST IS DAVIDS SON?EI# 42 AND DAVID HIMSELF SAITH IN THE BOOK OF PSALMS, THE LORD SAID UNTO MYA! LORD, SIT THOU ON MY RIGHT HAND, -# 43 TILL I MAKE THINE ENEMIES THY FOOTSTOOL.R># 44 DAVID THEREFORE CALLETH HIM LORD, HOW IS HE THEN HIS SON?G# 45 THEN IN THE AUDIENCE OF ALL THE PEOPLE HE SAID UNTO HIS DISCIPLES,H# 46 BEWARE OF THE SCRIBES, WHICH DESIRE TO WALK IN LONG ROBES, AND LOVEK GREETINGS IN THE MARKETS, AND THE HIGHEST SEATS IN THE SYNAGOGUES, AND THEA CHIEF ROOMS AT FEASTS; K# 47 WHICH DEVOUR WIDOWS HOUSES, AND FOR A SHEW MAKE LONG PRAYERS: THE SAMEK! SHALL RECEIVE GREATER DAMNATION. = CHAPTER 21 G# 1 AND HE LOOKED UP, AND SAW THE RICH MEN CASTING THEIR GIFTS INTO THED TREASURY.F# 2 AND HE SAW ALSO A CERTAIN POOR WIDOW CASTING IN THITHER TWO MITES.M# 3 AND HE SAID, OF A TRUTH I SAY UNTO YOU, THAT THIS POOR WIDOW HATH CAST INC MORE THAN THEY ALL:L# 4 FOR ALL THESE HAVE OF THEIR ABUNDANCE CAST IN UNTO T00BA<%X>%+%O-%TADATADATAHE OFFERINGS OF GOD:@ BUT SHE OF HER PENURY HATH CAST IN ALL THE LIVING THAT SHE HAD.J# 5 AND AS SOME SPAKE OF THE TEMPLE, HOW IT WAS ADORNED WITH GOODLY STONES AND GIFTS, HE SAID,I# 6 AS FOR THESE THINGS WHICH YE BEHOLD, THE DAYS WILL COME, IN THE WHICHII THERE SHALL NOT BE LEFT ONE STONE UPON ANOTHER, THAT SHALL NOT BE THROWNH DOWN.K# 7 AND THEY ASKED HIM, SAYING, MASTER, BUT WHEN SHALL THESE THINGS BE? ANDT> WHAT SIGN WILL THERE BE WHEN THESE THINGS SHALL COME TO PASS?M# 8 AND HE SAID, TAKE HEED THAT YE BE NOT DECEIVED: FOR MANY SHALL COME IN MYTJ NAME, SAYING, I AM CHRIST; AND THE TIME DRAWETH NEAR: GO YE NOT THEREFORE AFTER THEM.H# 9 BUT WHEN YE SHALL HEAR OF WARS AND COMMOTIONS, BE NOT TERRIFIED: FORD THESE THINGS MUST FIRST COME TO PASS; BUT THE END IS NOT BY AND BY.J# 10 THEN SAID HE UNTO THEM, NATION SHALL RISE AGAINST NATION, AND KINGDOM AGAINST KINGDOM:RF# 11 AND GREAT EARTHQUAKES SHALL BE IN DIVERS PLACES, AND FAMINES, ANDL PESTILENCES; AND FEARFUL SIGHTS AND GREAT SIGNS SHALL THERE BE FROM HEAVEN.K# 12 BUT BEFORE ALL THESE, THEY SHALL LAY THEIR HANDS ON YOU, AND PERSECUTEAJ YOU, DELIVERING YOU UP TO THE SYNAGOGUES, AND INTO PRISONS, BEING BROUGHT+ BEFORE KINGS AND RULERS FOR MY NAMES SAKE.T.# 13 AND IT SHALL TURN TO YOU FOR A TESTIMONY.M# 14 SETTLE IT THEREFORE IN YOUR HEARTS, NOT TO MEDITATE BEFORE WHAT YE SHALLO ANSWER:M# 15 FOR I WILL GIVE YOU A MOUTH AND WISDOM, WHICH ALL YOUR ADVERSARIES SHALL # NOT BE ABLE TO GAINSAY NOR RESIST.EK# 16 AND YE SHALL BE BETRAYED BOTH BY PARENTS, AND BRETHREN, AND KINSFOLKS, B AND FRIENDS; AND SOME OF YOU SHALL THEY CAUSE TO BE PUT TO DEATH.8# 17 AND YE SHALL BE HATED OF ALL MEN FOR MY NAMES SAKE.5# 18 BUT THERE SHALL NOT AN HAIR OF YOUR HEAD PERISH. ,# 19 IN YOUR PATIENCE POSSESS YE YOUR SOULS.J# 20 AND WHEN YE SHALL SEE JERUSALEM COMPASSED WITH ARMIES, THEN KNOW THAT THE DESOLATION THEREOF IS NIGH.J# 21 THEN LET THEM WHICH ARE IN JUDAEA FLEE TO THE MOUNTAINS; AND LET THEMJ WHICH ARE IN THE MIDST OF IT DEPART OUT; AND LET NOT THEM THAT ARE IN THE COUNTRIES ENTER THEREINTO.FJ# 22 FOR THESE BE THE DAYS OF VENGEANCE, THAT ALL THINGS WHICH ARE WRITTEN MAY BE FULFILLED.J# 23 BUT WOE UNTO THEM THAT ARE WITH CHILD, AND TO THEM THAT GIVE SUCK, INJ THOSE DAYS! FOR THERE SHALL BE GREAT DISTRESS IN THE LAND, AND WRATH UPON THIS PEOPLE.AH# 24 AND THEY SHALL FALL BY THE EDGE OF THE SWORD, AND SHALL BE LED AWAYE CAPTIVE INTO ALL NATIONS: AND JERUSALEM SHALL BE TRODDEN DOWN OF THEW8 GENTILES, UNTIL THE TIMES OF THE GENTILES BE FULFILLED.L# 25 AND THERE SHALL BE SIGNS IN THE SUN, AND IN THE MOON, AND IN THE STARS;I AND UPON THE EARTH DISTRESS OF NATIONS, WITH PERPLEXITY; THE SEA AND THEE WAVES ROARING;RJ# 26 MENS HEARTS FAILING THEM FOR FEAR, AND FOR LOOKING AFTER THOSE THINGSI WHICH ARE COMING ON THE EARTH: FOR THE POWERS OF HEAVEN SHALL BE SHAKEN. L# 27 AND THEN SHALL THEY SEE THE SON OF MAN COMING IN A CLOUD WITH POWER AND GREAT GLORY.RK# 28 AND WHEN THESE THINGS BEGIN TO COME TO PASS, THEN LOOK UP, AND LIFT UPL. YOUR HEADS; FOR YOUR REDEMPTION DRAWETH NIGH.L# 29 AND HE SPAKE TO THEM A PARABLE; BEHOLD THE FIG TREE, AND ALL THE TREES;G# 30 WHEN THEY NOW SHOOT FORTH, YE SEE AND KNOW OF YOUR OWN SELVES THAT  SUMMER IS NOW NIGH AT HAND.L# 31 SO LIKEWISE YE, WHEN YE SEE THESE THINGS COME TO PASS, KNOW YE THAT THE KINGDOM OF GOD IS NIGH AT HAND.L# 32 VERILY I SAY UNTO YOU, THIS GENERATION SHALL NOT PASS AWAY, TILL ALL BE FULFILLED.RH# 33 HEAVEN AND EARTH SHALL PASS AWAY: BUT MY WORDS SHALL NOT PASS AWAY.M# 34 AND TAKE HEED TO YOURSELVES, LEST AT ANY TIME YOUR HEARTS BE OVERCHARGED J WITH SURFEITING, AND DRUNKENNESS, AND CARES OF THIS LIFE, AND SO THAT DAY COME UPON YOU UNAWARES.K# 35 FOR AS A SNARE SHALL IT COME ON ALL THEM THAT DWELL ON THE FACE OF THEE WHOLE EARTH.TL# 36 WATCH YE THEREFORE, AND PRAY ALWAYS, THAT YE MAY BE ACCOUNTED WORTHY TOM ESCAPE ALL THESE THINGS THAT SHALL COME TO PASS, AND TO STAND BEFORE THE SONL OF MAN.L# 37 AND IN THE DAY TIME HE WAS TEACHING IN THE TEMPLE; AND AT NIGHT HE WENT@00B'AD%5%T6%! ! OUT, AND ABODE IN THE MOUNT THAT IS CALLED THE MOUNT OF OLIVES.K# 38 AND ALL THE PEOPLE CAME EARLY IN THE MORNING TO HIM IN THE TEMPLE, FORD TO HEAR HIM.Y = CHAPTER 22 N# 1 NOW THE FEAST OF UNLEAVENED BREAD DREW NIGH, WHICH IS CALLED THE PASSOVER.I# 2 AND THE CHIEF PRIESTS AND SCRIBES SOUGHT HOW THEY MIGHT KILL HIM; FORT THEY FEARED THE PEOPLE.K# 3 THEN ENTERED SATAN INTO JUDAS SURNAMED ISCARIOT, BEING OF THE NUMBER OF THE TWELVE.J# 4 AND HE WENT HIS WAY, AND COMMUNED WITH THE CHIEF PRIESTS AND CAPTAINS,# HOW HE MIGHT BETRAY HIM UNTO THEM.O9# 5 AND THEY WERE GLAD, AND COVENANTED TO GIVE HIM MONEY.OJ# 6 AND HE PROMISED, AND SOUGHT OPPORTUNITY TO BETRAY HIM UNTO THEM IN THE ABSENCE OF THE MULTITUDE.L# 7 THEN CAME THE DAY OF UNLEAVENED BREAD, WHEN THE PASSOVER MUST BE KILLED.L# 8 AND HE SENT PETER AND JOHN, SAYING, GO AND PREPARE US THE PASSOVER, THAT WE MAY EAT.<# 9 AND THEY SAID UNTO HIM, WHERE WILT THOU THAT WE PREPARE?L# 10 AND HE SAID UNTO THEM, BEHOLD, WHEN YE ARE ENTERED INTO THE CITY, THEREL SHALL A MAN MEET YOU, BEARING A PITCHER OF WATER; FOLLOW HIM INTO THE HOUSE WHERE HE ENTERETH IN.J# 11 AND YE SHALL SAY UNTO THE GOODMAN OF THE HOUSE, THE MASTER SAITH UNTOH THEE, WHERE IS THE GUESTCHAMBER, WHERE I SHALL EAT THE PASSOVER WITH MY DISCIPLES?MJ# 12 AND HE SHALL SHEW YOU A LARGE UPPER ROOM FURNISHED: THERE MAKE READY.K# 13 AND THEY WENT, AND FOUND AS HE HAD SAID UNTO THEM: AND THEY MADE READYH THE PASSOVER.J# 14 AND WHEN THE HOUR WAS COME, HE SAT DOWN, AND THE TWELVE APOSTLES WITH HIM.LK# 15 AND HE SAID UNTO THEM, WITH DESIRE I HAVE DESIRED TO EAT THIS PASSOVERE WITH YOU BEFORE I SUFFER:E# 16 FOR I SAY UNTO YOU, I WILL NOT ANY MORE EAT THEREOF, UNTIL IT BE,! FULFILLED IN THE KINGDOM OF GOD. M# 17 AND HE TOOK THE CUP, AND GAVE THANKS, AND SAID, TAKE THIS, AND DIVIDE ITE AMONG YOURSELVES:M# 18 FOR I SAY UNTO YOU, I WILL NOT DRINK OF THE FRUIT OF THE VINE, UNTIL THEN KINGDOM OF GOD SHALL COME.OJ# 19 AND HE TOOK BREAD, AND GAVE THANKS, AND BRAKE IT, AND GAVE UNTO THEM,N SAYING, THIS IS MY BODY WHICH IS GIVEN FOR YOU: THIS DO IN REMEMBRANCE OF ME.D# 20 LIKEWISE ALSO THE CUP AFTER SUPPER, SAYING, THIS CUP IS THE NEW. TESTAMENT IN MY BLOOD, WHICH IS SHED FOR YOU.L# 21 BUT, BEHOLD, THE HAND OF HIM THAT BETRAYETH ME IS WITH ME ON THE TABLE.L# 22 AND TRULY THE SON OF MAN GOETH, AS IT WAS DETERMINED: BUT WOE UNTO THAT MAN BY WHOM HE IS BETRAYED!J# 23 AND THEY BEGAN TO ENQUIRE AMONG THEMSELVES, WHICH OF THEM IT WAS THAT SHOULD DO THIS THING.D# 24 AND THERE WAS ALSO A STRIFE AMONG THEM, WHICH OF THEM SHOULD BE ACCOUNTED THE GREATEST.L# 25 AND HE SAID UNTO THEM, THE KINGS OF THE GENTILES EXERCISE LORDSHIP OVERI THEM; AND THEY THAT EXERCISE AUTHORITY UPON THEM ARE CALLED BENEFACTORS. M# 26 BUT YE SHALL NOT BE SO: BUT HE THAT IS GREATEST AMONG YOU, LET HIM BE ASO: THE YOUNGER; AND HE THAT IS CHIEF, AS HE THAT DOTH SERVE.L# 27 FOR WHETHER IS GREATER, HE THAT SITTETH AT MEAT, OR HE THAT SERVETH? ISD NOT HE THAT SITTETH AT MEAT? BUT I AM AMONG YOU AS HE THAT SERVETH.@# 28 YE ARE THEY WHICH HAVE CONTINUED WITH ME IN MY TEMPTATIONS.K# 29 AND I APPOINT UNTO YOU A KINGDOM, AS MY FATHER HATH APPOINTED UNTO ME; L# 30 THAT YE MAY EAT AND DRINK AT MY TABLE IN MY KINGDOM, AND SIT ON THRONES% JUDGING THE TWELVE TRIBES OF ISRAEL. M# 31 AND THE LORD SAID, SIMON, SIMON, BEHOLD, SATAN HATH DESIRED TO HAVE YOU,  THAT HE MAY SIFT YOU AS WHEAT:WK# 32 BUT I HAVE PRAYED FOR THEE, THAT THY FAITH FAIL NOT: AND WHEN THOU ARTH$ CONVERTED, STRENGTHEN THY BRETHREN.F# 33 AND HE SAID UNTO HIM, LORD, I AM READY TO GO WITH THEE, BOTH INTO PRISON, AND TO DEATH.G# 34 AND HE SAID, I TELL THEE, PETER, THE COCK SHALL NOT CROW THIS DAY,09 BEFORE THAT THOU SHALT THRICE DENY THAT THOU KNOWEST ME.II# 35 AND HE SAID UNTO THEM, WHEN I SENT YOU WITHOUT PURSE, AND SCRIP, ANDD4 SHOES, LACKED YE ANY THING? AND THEY SAID, NOTHING.L# 36 THEN SAID HE UNTO THEM, BUT NOW, HE THAT HATH A PURSE, LET HIM TAKE IT,M AND LIKEWISE HIS SCRIP: AND HE THAT HATH NO SWORD, LET HIM SELL HIS GARMENT,3 AND B00BB<%X>%+%O-%TADATADATAUY ONE.TK# 37 FOR I SAY UNTO YOU, THAT THIS THAT IS WRITTEN MUST YET BE ACCOMPLISHED N IN ME, AND HE WAS RECKONED AMONG THE TRANSGRESSORS: FOR THE THINGS CONCERNING ME HAVE AN END.M# 38 AND THEY SAID, LORD, BEHOLD, HERE ARE TWO SWORDS. AND HE SAID UNTO THEM,I IT IS ENOUGH.K# 39 AND HE CAME OUT, AND WENT, AS HE WAS WONT, TO THE MOUNT OF OLIVES; AND ! HIS DISCIPLES ALSO FOLLOWED HIM. L# 40 AND WHEN HE WAS AT THE PLACE, HE SAID UNTO THEM, PRAY THAT YE ENTER NOT INTO TEMPTATION.HJ# 41 AND HE WAS WITHDRAWN FROM THEM ABOUT A STONES CAST, AND KNEELED DOWN, AND PRAYED,A# 42 SAYING, FATHER, IF THOU BE WILLING, REMOVE THIS CUP FROM ME:R. NEVERTHELESS NOT MY WILL, BUT THINE, BE DONE.I# 43 AND THERE APPEARED AN ANGEL UNTO HIM FROM HEAVEN, STRENGTHENING HIM.ML# 44 AND BEING IN AN AGONY HE PRAYED MORE EARNESTLY: AND HIS SWEAT WAS AS IT6 WERE GREAT DROPS OF BLOOD FALLING DOWN TO THE GROUND.M# 45 AND WHEN HE ROSE UP FROM PRAYER, AND WAS COME TO HIS DISCIPLES, HE FOUNDI THEM SLEEPING FOR SORROW,H# 46 AND SAID UNTO THEM, WHY SLEEP YE? RISE AND PRAY, LEST YE ENTER INTO TEMPTATION.G# 47 AND WHILE HE YET SPAKE, BEHOLD A MULTITUDE, AND HE THAT WAS CALLED M JUDAS, ONE OF THE TWELVE, WENT BEFORE THEM, AND DREW NEAR UNTO JESUS TO KISSM HIM.,I# 48 BUT JESUS SAID UNTO HIM, JUDAS, BETRAYEST THOU THE SON OF MAN WITH AA KISS?I# 49 WHEN THEY WHICH WERE ABOUT HIM SAW WHAT WOULD FOLLOW, THEY SAID UNTO5* HIM, LORD, SHALL WE SMITE WITH THE SWORD?J# 50 AND ONE OF THEM SMOTE THE SERVANT OF THE HIGH PRIEST, AND CUT OFF HIS RIGHT EAR.SM# 51 AND JESUS ANSWERED AND SAID, SUFFER YE THUS FAR. AND HE TOUCHED HIS EAR,  AND HEALED HIM.L# 52 THEN JESUS SAID UNTO THE CHIEF PRIESTS, AND CAPTAINS OF THE TEMPLE, ANDM THE ELDERS, WHICH WERE COME TO HIM, BE YE COME OUT, AS AGAINST A THIEF, WITH, SWORDS AND STAVES?OI# 53 WHEN I WAS DAILY WITH YOU IN THE TEMPLE, YE STRETCHED FORTH NO HANDSD> AGAINST ME: BUT THIS IS YOUR HOUR, AND THE POWER OF DARKNESS.K# 54 THEN TOOK THEY HIM, AND LED HIM, AND BROUGHT HIM INTO THE HIGH PRIESTSH$ HOUSE. AND PETER FOLLOWED AFAR OFF.L# 55 AND WHEN THEY HAD KINDLED A FIRE IN THE MIDST OF THE HALL, AND WERE SET* DOWN TOGETHER, PETER SAT DOWN AMONG THEM.G# 56 BUT A CERTAIN MAID BEHELD HIM AS HE SAT BY THE FIRE, AND EARNESTLY 7 LOOKED UPON HIM, AND SAID, THIS MAN WAS ALSO WITH HIM.S6# 57 AND HE DENIED HIM, SAYING, WOMAN, I KNOW HIM NOT.I# 58 AND AFTER A LITTLE WHILE ANOTHER SAW HIM, AND SAID, THOU ART ALSO OFF% THEM. AND PETER SAID, MAN, I AM NOT.DH# 59 AND ABOUT THE SPACE OF ONE HOUR AFTER ANOTHER CONFIDENTLY AFFIRMED,I SAYING, OF A TRUTH THIS FELLOW ALSO WAS WITH HIM: FOR HE IS A GALILAEAN.LM# 60 AND PETER SAID, MAN, I KNOW NOT WHAT THOU SAYEST. AND IMMEDIATELY, WHILEM HE YET SPAKE, THE COCK CREW. I# 61 AND THE LORD TURNED, AND LOOKED UPON PETER. AND PETER REMEMBERED THEMM WORD OF THE LORD, HOW HE HAD SAID UNTO HIM, BEFORE THE COCK CROW, THOU SHALTT DENY ME THRICE.+# 62 AND PETER WENT OUT, AND WEPT BITTERLY.A;# 63 AND THE MEN THAT HELD JESUS MOCKED HIM, AND SMOTE HIM.NH# 64 AND WHEN THEY HAD BLINDFOLDED HIM, THEY STRUCK HIM ON THE FACE, AND8 ASKED HIM, SAYING, PROPHESY, WHO IS IT THAT SMOTE THEE?@# 65 AND MANY OTHER THINGS BLASPHEMOUSLY SPAKE THEY AGAINST HIM.F# 66 AND AS SOON AS IT WAS DAY, THE ELDERS OF THE PEOPLE AND THE CHIEFG PRIESTS AND THE SCRIBES CAME TOGETHER, AND LED HIM INTO THEIR COUNCIL,U SAYING,K# 67 ART THOU THE CHRIST? TELL US. AND HE SAID UNTO THEM, IF I TELL YOU, YEA WILL NOT BELIEVE:A# 68 AND IF I ALSO ASK YOU, YE WILL NOT ANSWER ME, NOR LET ME GO.AI# 69 HEREAFTER SHALL THE SON OF MAN SIT ON THE RIGHT HAND OF THE POWER OFH GOD.IM# 70 THEN SAID THEY ALL, ART THOU THEN THE SON OF GOD? AND HE SAID UNTO THEM,S YE SAY THAT I AM.K# 71 AND THEY SAID, WHAT NEED WE ANY FURTHER WITNESS? FOR WE OURSELVES HAVEF HEARD OF HIS OWN MOUTH. = CHAPTER 23 C# 1 AND THE WHOLE MULTITUDE OF THEM AROSE, AND LED HIM UNTO PILATE. M# 2 AND THEY BEGAN TO ACCUSE HIM, SAYING, WE FOUND THIS FELLOW PERVERTING THEDL NATION, AND FORBIDDING TO GIVE TRIBUTE TO CAESAR, SAYIN00B'AD%5%T6%! !G THAT HE HIMSELF IS CHRIST A KING. G# 3 AND PILATE ASKED HIM, SAYING, ART THOU THE KING OF THE JEWS? AND HEA' ANSWERED HIM AND SAID, THOU SAYEST IT.UL# 4 THEN SAID PILATE TO THE CHIEF PRIESTS AND TO THE PEOPLE, I FIND NO FAULT IN THIS MAN.OE# 5 AND THEY WERE THE MORE FIERCE, SAYING, HE STIRRETH UP THE PEOPLE,HE TEACHING THROUGHOUT ALL JEWRY, BEGINNING FROM GALILEE TO THIS PLACE.GL# 6 WHEN PILATE HEARD OF GALILEE, HE ASKED WHETHER THE MAN WERE A GALILAEAN.M# 7 AND AS SOON AS HE KNEW THAT HE BELONGED UNTO HERODS JURISDICTION, HE SENT > HIM TO HEROD, WHO HIMSELF ALSO WAS AT JERUSALEM AT THAT TIME.K# 8 AND WHEN HEROD SAW JESUS, HE WAS EXCEEDING GLAD: FOR HE WAS DESIROUS TO J SEE HIM OF A LONG SEASON, BECAUSE HE HAD HEARD MANY THINGS OF HIM; AND HE- HOPED TO HAVE SEEN SOME MIRACLE DONE BY HIM.HK# 9 THEN HE QUESTIONED WITH HIM IN MANY WORDS; BUT HE ANSWERED HIM NOTHING.HH# 10 AND THE CHIEF PRIESTS AND SCRIBES STOOD AND VEHEMENTLY ACCUSED HIM.I# 11 AND HEROD WITH HIS MEN OF WAR SET HIM AT NOUGHT, AND MOCKED HIM, ANDI> ARRAYED HIM IN A GORGEOUS ROBE, AND SENT HIM AGAIN TO PILATE.M# 12 AND THE SAME DAY PILATE AND HEROD WERE MADE FRIENDS TOGETHER: FOR BEFORE ( THEY WERE AT ENMITY BETWEEN THEMSELVES.M# 13 AND PILATE, WHEN HE HAD CALLED TOGETHER THE CHIEF PRIESTS AND THE RULERSR AND THE PEOPLE,M# 14 SAID UNTO THEM, YE HAVE BROUGHT THIS MAN UNTO ME, AS ONE THAT PERVERTETHJ THE PEOPLE: AND, BEHOLD, I, HAVING EXAMINED HIM BEFORE YOU, HAVE FOUND NO? FAULT IN THIS MAN TOUCHING THOSE THINGS WHEREOF YE ACCUSE HIM:MI# 15 NO, NOR YET HEROD: FOR I SENT YOU TO HIM; AND, LO, NOTHING WORTHY OF2 DEATH IS DONE UNTO HIM.4# 16 I WILL THEREFORE CHASTISE HIM, AND RELEASE HIM.C# 17 (FOR OF NECESSITY HE MUST RELEASE ONE UNTO THEM AT THE FEAST.)LL# 18 AND THEY CRIED OUT ALL AT ONCE, SAYING, AWAY WITH THIS MAN, AND RELEASE UNTO US BARABBAS:K# 19 (WHO FOR A CERTAIN SEDITION MADE IN THE CITY, AND FOR MURDER, WAS CASTH INTO PRISON.)E# 20 PILATE THEREFORE, WILLING TO RELEASE JESUS, SPAKE AGAIN TO THEM.W6# 21 BUT THEY CRIED, SAYING, CRUCIFY HIM, CRUCIFY HIM.I# 22 AND HE SAID UNTO THEM THE THIRD TIME, WHY, WHAT EVIL HATH HE DONE? IIL HAVE FOUND NO CAUSE OF DEATH IN HIM: I WILL THEREFORE CHASTISE HIM, AND LET HIM GO.G# 23 AND THEY WERE INSTANT WITH LOUD VOICES, REQUIRING THAT HE MIGHT BE,F CRUCIFIED. AND THE VOICES OF THEM AND OF THE CHIEF PRIESTS PREVAILED.A# 24 AND PILATE GAVE SENTENCE THAT IT SHOULD BE AS THEY REQUIRED.RM# 25 AND HE RELEASED UNTO THEM HIM THAT FOR SEDITION AND MURDER WAS CAST INTOE PRISON, WHOM THEY HAD DESIRED; BUT HE DELIVERED JESUS TO THEIR WILL.DI# 26 AND AS THEY LED HIM AWAY, THEY LAID HOLD UPON ONE SIMON, A CYRENIAN,CN COMING OUT OF THE COUNTRY, AND ON HIM THEY LAID THE CROSS, THAT HE MIGHT BEAR IT AFTER JESUS.J# 27 AND THERE FOLLOWED HIM A GREAT COMPANY OF PEOPLE, AND OF WOMEN, WHICH ALSO BEWAILED AND LAMENTED HIM.K# 28 BUT JESUS TURNING UNTO THEM SAID, DAUGHTERS OF JERUSALEM, WEEP NOT FOR4 ME, BUT WEEP FOR YOURSELVES, AND FOR YOUR CHILDREN.K# 29 FOR, BEHOLD, THE DAYS ARE COMING, IN THE WHICH THEY SHALL SAY, BLESSEDSM ARE THE BARREN, AND THE WOMBS THAT NEVER BARE, AND THE PAPS WHICH NEVER GAVEN SUCK.J# 30 THEN SHALL THEY BEGIN TO SAY TO THE MOUNTAINS, FALL ON US; AND TO THE HILLS, COVER US.EK# 31 FOR IF THEY DO THESE THINGS IN A GREEN TREE, WHAT SHALL BE DONE IN THE, DRY?J# 32 AND THERE WERE ALSO TWO OTHER, MALEFACTORS, LED WITH HIM TO BE PUT TO DEATH. I# 33 AND WHEN THEY WERE COME TO THE PLACE, WHICH IS CALLED CALVARY, THEREEN THEY CRUCIFIED HIM, AND THE MALEFACTORS, ONE ON THE RIGHT HAND, AND THE OTHER ON THE LEFT.EK# 34 THEN SAID JESUS, FATHER, FORGIVE THEM; FOR THEY KNOW NOT WHAT THEY DO.0, AND THEY PARTED HIS RAIMENT, AND CAST LOTS.J# 35 AND THE PEOPLE STOOD BEHOLDING. AND THE RULERS ALSO WITH THEM DERIDEDI HIM, SAYING, HE SAVED OTHERS; LET HIM SAVE HIMSELF, IF HE BE CHRIST, THE  CHOSEN OF GOD.AF# 36 AND THE SOLDIERS ALSO MOCKED HIM, COMING TO HIM, AND OFFERING HIM VINEGAR, ?# 37 AND SAYING, IF THOU BE THE KING OF THE JEWS, SAVE THYSELF.TL# 00BB<%X>%+%O-%TADATADATA38 AND A SUPERSCRIPTION ALSO WAS WRITTEN OVER HIM IN LETTERS OF GREEK, AND1 LATIN, AND HEBREW, THIS IS THE KING OF THE JEWS.OK# 39 AND ONE OF THE MALEFACTORS WHICH WERE HANGED RAILED ON HIM, SAYING, IFP% THOU BE CHRIST, SAVE THYSELF AND US.LI# 40 BUT THE OTHER ANSWERING REBUKED HIM, SAYING, DOST NOT THOU FEAR GOD,I* SEEING THOU ART IN THE SAME CONDEMNATION?J# 41 AND WE INDEED JUSTLY; FOR WE RECEIVE THE DUE REWARD OF OUR DEEDS: BUT" THIS MAN HATH DONE NOTHING AMISS.H# 42 AND HE SAID UNTO JESUS, LORD, REMEMBER ME WHEN THOU COMEST INTO THY KINGDOM. J# 43 AND JESUS SAID UNTO HIM, VERILY I SAY UNTO THEE, TO DAY SHALT THOU BE WITH ME IN PARADISE.AK# 44 AND IT WAS ABOUT THE SIXTH HOUR, AND THERE WAS A DARKNESS OVER ALL THE  EARTH UNTIL THE NINTH HOUR.I# 45 AND THE SUN WAS DARKENED, AND THE VEIL OF THE TEMPLE WAS RENT IN THEU MIDST.HJ# 46 AND WHEN JESUS HAD CRIED WITH A LOUD VOICE, HE SAID, FATHER, INTO THYG HANDS I COMMEND MY SPIRIT: AND HAVING SAID THUS, HE GAVE UP THE GHOST.DH# 47 NOW WHEN THE CENTURION SAW WHAT WAS DONE, HE GLORIFIED GOD, SAYING,$ CERTAINLY THIS WAS A RIGHTEOUS MAN.G# 48 AND ALL THE PEOPLE THAT CAME TOGETHER TO THAT SIGHT, BEHOLDING THE ; THINGS WHICH WERE DONE, SMOTE THEIR BREASTS, AND RETURNED.L# 49 AND ALL HIS ACQUAINTANCE, AND THE WOMEN THAT FOLLOWED HIM FROM GALILEE,( STOOD AFAR OFF, BEHOLDING THESE THINGS.J# 50 AND, BEHOLD, THERE WAS A MAN NAMED JOSEPH, A COUNSELLOR; AND HE WAS A GOOD MAN, AND A JUST:L# 51 (THE SAME HAD NOT CONSENTED TO THE COUNSEL AND DEED OF THEM;) HE WAS OFK ARIMATHAEA, A CITY OF THE JEWS: WHO ALSO HIMSELF WAITED FOR THE KINGDOM OF. GOD.A=# 52 THIS MAN WENT UNTO PILATE, AND BEGGED THE BODY OF JESUS.HM# 53 AND HE TOOK IT DOWN, AND WRAPPED IT IN LINEN, AND LAID IT IN A SEPULCHREH; THAT WAS HEWN IN STONE, WHEREIN NEVER MAN BEFORE WAS LAID.,?# 54 AND THAT DAY WAS THE PREPARATION, AND THE SABBATH DREW ON.RJ# 55 AND THE WOMEN ALSO, WHICH CAME WITH HIM FROM GALILEE, FOLLOWED AFTER,5 AND BEHELD THE SEPULCHRE, AND HOW HIS BODY WAS LAID.EI# 56 AND THEY RETURNED, AND PREPARED SPICES AND OINTMENTS; AND RESTED THEA* SABBATH DAY ACCORDING TO THE COMMANDMENT. = CHAPTER 24 IL# 1 NOW UPON THE FIRST DAY OF THE WEEK, VERY EARLY IN THE MORNING, THEY CAMEM UNTO THE SEPULCHRE, BRINGING THE SPICES WHICH THEY HAD PREPARED, AND CERTAINM OTHERS WITH THEM.<# 2 AND THEY FOUND THE STONE ROLLED AWAY FROM THE SEPULCHRE.B# 3 AND THEY ENTERED IN, AND FOUND NOT THE BODY OF THE LORD JESUS.L# 4 AND IT CAME TO PASS, AS THEY WERE MUCH PERPLEXED THEREABOUT, BEHOLD, TWO' MEN STOOD BY THEM IN SHINING GARMENTS:IJ# 5 AND AS THEY WERE AFRAID, AND BOWED DOWN THEIR FACES TO THE EARTH, THEY7 SAID UNTO THEM, WHY SEEK YE THE LIVING AMONG THE DEAD?RL# 6 HE IS NOT HERE, BUT IS RISEN: REMEMBER HOW HE SPAKE UNTO YOU WHEN HE WAS YET IN GALILEE,J# 7 SAYING, THE SON OF MAN MUST BE DELIVERED INTO THE HANDS OF SINFUL MEN,0 AND BE CRUCIFIED, AND THE THIRD DAY RISE AGAIN."# 8 AND THEY REMEMBERED HIS WORDS,G# 9 AND RETURNED FROM THE SEPULCHRE, AND TOLD ALL THESE THINGS UNTO THE, ELEVEN, AND TO ALL THE REST.NH# 10 IT WAS MARY MAGDALENE AND JOANNA, AND MARY THE MOTHER OF JAMES, ANDL OTHER WOMEN THAT WERE WITH THEM, WHICH TOLD THESE THINGS UNTO THE APOSTLES.I# 11 AND THEIR WORDS SEEMED TO THEM AS IDLE TALES, AND THEY BELIEVED THEM NOT. H# 12 THEN AROSE PETER, AND RAN UNTO THE SEPULCHRE; AND STOOPING DOWN, HEH BEHELD THE LINEN CLOTHES LAID BY THEMSELVES, AND DEPARTED, WONDERING IN( HIMSELF AT THAT WHICH WAS COME TO PASS.L# 13 AND, BEHOLD, TWO OF THEM WENT THAT SAME DAY TO A VILLAGE CALLED EMMAUS,4 WHICH WAS FROM JERUSALEM ABOUT THREESCORE FURLONGS.E# 14 AND THEY TALKED TOGETHER OF ALL THESE THINGS WHICH HAD HAPPENED.OJ# 15 AND IT CAME TO PASS, THAT, WHILE THEY COMMUNED TOGETHER AND REASONED,- JESUS HIMSELF DREW NEAR, AND WENT WITH THEM.2># 16 BUT THEIR EYES WERE HOLDEN THAT THEY SHOULD NOT KNOW HIM.K# 17 AND HE SAID UNTO THEM, WHAT MANNER OF COMMUNICATIONS ARE THESE THAT YEN. HAVE ONE TO ANOTHER, AS YE WALK, AND ARE SAD?J# 18 AND THE ONE OF THEM, WHOSE NAME WAS CLEOP00B'AD%5%T6%! !AS, ANSWERING SAID UNTO HIM,K ART THOU ONLY A STRANGER IN JERUSALEM, AND HAST NOT KNOWN THE THINGS WHICHT& ARE COME TO PASS THERE IN THESE DAYS?K# 19 AND HE SAID UNTO THEM, WHAT THINGS? AND THEY SAID UNTO HIM, CONCERNINGEN JESUS OF NAZARETH, WHICH WAS A PROPHET MIGHTY IN DEED AND WORD BEFORE GOD AND ALL THE PEOPLE:K# 20 AND HOW THE CHIEF PRIESTS AND OUR RULERS DELIVERED HIM TO BE CONDEMNEDR" TO DEATH, AND HAVE CRUCIFIED HIM.J# 21 BUT WE TRUSTED THAT IT HAD BEEN HE WHICH SHOULD HAVE REDEEMED ISRAEL:K AND BESIDE ALL THIS, TO DAY IS THE THIRD DAY SINCE THESE THINGS WERE DONE.TI# 22 YEA, AND CERTAIN WOMEN ALSO OF OUR COMPANY MADE US ASTONISHED, WHICHA WERE EARLY AT THE SEPULCHRE;GL# 23 AND WHEN THEY FOUND NOT HIS BODY, THEY CAME, SAYING, THAT THEY HAD ALSO7 SEEN A VISION OF ANGELS, WHICH SAID THAT HE WAS ALIVE.:L# 24 AND CERTAIN OF THEM WHICH WERE WITH US WENT TO THE SEPULCHRE, AND FOUND8 IT EVEN SO AS THE WOMEN HAD SAID: BUT HIM THEY SAW NOT.K# 25 THEN HE SAID UNTO THEM, O FOOLS, AND SLOW OF HEART TO BELIEVE ALL THAT  THE PROPHETS HAVE SPOKEN:J# 26 OUGHT NOT CHRIST TO HAVE SUFFERED THESE THINGS, AND TO ENTER INTO HIS GLORY?SK# 27 AND BEGINNING AT MOSES AND ALL THE PROPHETS, HE EXPOUNDED UNTO THEM INT2 ALL THE SCRIPTURES THE THINGS CONCERNING HIMSELF.K# 28 AND THEY DREW NIGH UNTO THE VILLAGE, WHITHER THEY WENT: AND HE MADE ASH# THOUGH HE WOULD HAVE GONE FURTHER.UF# 29 BUT THEY CONSTRAINED HIM, SAYING, ABIDE WITH US: FOR IT IS TOWARDF EVENING, AND THE DAY IS FAR SPENT. AND HE WENT IN TO TARRY WITH THEM.I# 30 AND IT CAME TO PASS, AS HE SAT AT MEAT WITH THEM, HE TOOK BREAD, ANDD) BLESSED IT, AND BRAKE, AND GAVE TO THEM.YJ# 31 AND THEIR EYES WERE OPENED, AND THEY KNEW HIM; AND HE VANISHED OUT OF THEIR SIGHT.SM# 32 AND THEY SAID ONE TO ANOTHER, DID NOT OUR HEART BURN WITHIN US, WHILE HEAE TALKED WITH US BY THE WAY, AND WHILE HE OPENED TO US THE SCRIPTURES?HM# 33 AND THEY ROSE UP THE SAME HOUR, AND RETURNED TO JERUSALEM, AND FOUND THEE8 ELEVEN GATHERED TOGETHER, AND THEM THAT WERE WITH THEM,B# 34 SAYING, THE LORD IS RISEN INDEED, AND HATH APPEARED TO SIMON.L# 35 AND THEY TOLD WHAT THINGS WERE DONE IN THE WAY, AND HOW HE WAS KNOWN OF THEM IN BREAKING OF BREAD.NJ# 36 AND AS THEY THUS SPAKE, JESUS HIMSELF STOOD IN THE MIDST OF THEM, AND$ SAITH UNTO THEM, PEACE BE UNTO YOU.L# 37 BUT THEY WERE TERRIFIED AND AFFRIGHTED, AND SUPPOSED THAT THEY HAD SEEN A SPIRIT.M# 38 AND HE SAID UNTO THEM, WHY ARE YE TROUBLED? AND WHY DO THOUGHTS ARISE INE YOUR HEARTS?GJ# 39 BEHOLD MY HANDS AND MY FEET, THAT IT IS I MYSELF: HANDLE ME, AND SEE;: FOR A SPIRIT HATH NOT FLESH AND BONES, AS YE SEE ME HAVE.H# 40 AND WHEN HE HAD THUS SPOKEN, HE SHEWED THEM HIS HANDS AND HIS FEET.H# 41 AND WHILE THEY YET BELIEVED NOT FOR JOY, AND WONDERED, HE SAID UNTO THEM, HAVE YE HERE ANY MEAT?EF# 42 AND THEY GAVE HIM A PIECE OF A BROILED FISH, AND OF AN HONEYCOMB.-# 43 AND HE TOOK IT, AND DID EAT BEFORE THEM.UM# 44 AND HE SAID UNTO THEM, THESE ARE THE WORDS WHICH I SPAKE UNTO YOU, WHILE M I WAS YET WITH YOU, THAT ALL THINGS MUST BE FULFILLED, WHICH WERE WRITTEN INAI THE LAW OF MOSES, AND IN THE PROPHETS, AND IN THE PSALMS, CONCERNING ME.TG# 45 THEN OPENED HE THEIR UNDERSTANDING, THAT THEY MIGHT UNDERSTAND THEE SCRIPTURES,J# 46 AND SAID UNTO THEM, THUS IT IS WRITTEN, AND THUS IT BEHOVED CHRIST TO1 SUFFER, AND TO RISE FROM THE DEAD THE THIRD DAY:AM# 47 AND THAT REPENTANCE AND REMISSION OF SINS SHOULD BE PREACHED IN HIS NAMEU+ AMONG ALL NATIONS, BEGINNING AT JERUSALEM.N*# 48 AND YE ARE WITNESSES OF THESE THINGS.K# 49 AND, BEHOLD, I SEND THE PROMISE OF MY FATHER UPON YOU: BUT TARRY YE IN C THE CITY OF JERUSALEM, UNTIL YE BE ENDUED WITH POWER FROM ON HIGH. J# 50 AND HE LED THEM OUT AS FAR AS TO BETHANY, AND HE LIFTED UP HIS HANDS, AND BLESSED THEM.M# 51 AND IT CAME TO PASS, WHILE HE BLESSED THEM, HE WAS PARTED FROM THEM, ANDE CARRIED UP INTO HEAVEN.G# 52 AND THEY WORSHIPPED HIM, AND RETURNED TO JERUSALEM WITH GREAT JOY:I# 53 AND WERE CONTINUALLY IN THE TEMPLE, PRAISING AND BLESSING GOD. AMEN.THESE THI00BB<%X>%+%O-%TADATADATA * BOOK43 JOHN = CHAPTER 1 N# 1 IN THE BEGINNING WAS THE WORD, AND THE WORD WAS WITH GOD, AND THE WORD WAS GOD.B+# 2 THE SAME WAS IN THE BEGINNING WITH GOD.HL# 3 ALL THINGS WERE MADE BY HIM; AND WITHOUT HIM WAS NOT ANY THING MADE THAT WAS MADE.7# 4 IN HIM WAS LIFE; AND THE LIFE WAS THE LIGHT OF MEN.DL# 5 AND THE LIGHT SHINETH IN DARKNESS; AND THE DARKNESS COMPREHENDED IT NOT.7# 6 THERE WAS A MAN SENT FROM GOD, WHOSE NAME WAS JOHN.TK# 7 THE SAME CAME FOR A WITNESS, TO BEAR WITNESS OF THE LIGHT, THAT ALL MENH THROUGH HIM MIGHT BELIEVE.BF# 8 HE WAS NOT THAT LIGHT, BUT WAS SENT TO BEAR WITNESS OF THAT LIGHT.J# 9 THAT WAS THE TRUE LIGHT, WHICH LIGHTETH EVERY MAN THAT COMETH INTO THE WORLD.DK# 10 HE WAS IN THE WORLD, AND THE WORLD WAS MADE BY HIM, AND THE WORLD KNEWD HIM NOT.A8# 11 HE CAME UNTO HIS OWN, AND HIS OWN RECEIVED HIM NOT.M# 12 BUT AS MANY AS RECEIVED HIM, TO THEM GAVE HE POWER TO BECOME THE SONS OFO, GOD, EVEN TO THEM THAT BELIEVE ON HIS NAME:L# 13 WHICH WERE BORN, NOT OF BLOOD, NOR OF THE WILL OF THE FLESH, NOR OF THE WILL OF MAN, BUT OF GOD.HH# 14 AND THE WORD WAS MADE FLESH, AND DWELT AMONG US, (AND WE BEHELD HISK GLORY, THE GLORY AS OF THE ONLY BEGOTTEN OF THE FATHER,) FULL OF GRACE ANDE TRUTH.NG# 15 JOHN BARE WITNESS OF HIM, AND CRIED, SAYING, THIS WAS HE OF WHOM IEM SPAKE, HE THAT COMETH AFTER ME IS PREFERRED BEFORE ME: FOR HE WAS BEFORE ME. B# 16 AND OF HIS FULNESS HAVE ALL WE RECEIVED, AND GRACE FOR GRACE.F# 17 FOR THE LAW WAS GIVEN BY MOSES, BUT GRACE AND TRUTH CAME BY JESUS CHRIST.M# 18 NO MAN HATH SEEN GOD AT ANY TIME, THE ONLY BEGOTTEN SON, WHICH IS IN THEH+ BOSOM OF THE FATHER, HE HATH DECLARED HIM.OK# 19 AND THIS IS THE RECORD OF JOHN, WHEN THE JEWS SENT PRIESTS AND LEVITESU) FROM JERUSALEM TO ASK HIM, WHO ART THOU?IJ# 20 AND HE CONFESSED, AND DENIED NOT; BUT CONFESSED, I AM NOT THE CHRIST.K# 21 AND THEY ASKED HIM, WHAT THEN? ART THOU ELIAS? AND HE SAITH, I AM NOT.E, ART THOU THAT PROPHET? AND HE ANSWERED, NO.I# 22 THEN SAID THEY UNTO HIM, WHO ART THOU? THAT WE MAY GIVE AN ANSWER TOA0 THEM THAT SENT US. WHAT SAYEST THOU OF THYSELF?K# 23 HE SAID, I AM THE VOICE OF ONE CRYING IN THE WILDERNESS, MAKE STRAIGHTI1 THE WAY OF THE LORD, AS SAID THE PROPHET ESAIAS. 4# 24 AND THEY WHICH WERE SENT WERE OF THE PHARISEES.L# 25 AND THEY ASKED HIM, AND SAID UNTO HIM, WHY BAPTIZEST THOU THEN, IF THOU5 BE NOT THAT CHRIST, NOR ELIAS, NEITHER THAT PROPHET?NM# 26 JOHN ANSWERED THEM, SAYING, I BAPTIZE WITH WATER: BUT THERE STANDETH ONE  AMONG YOU, WHOM YE KNOW NOT;UF# 27 HE IT IS, WHO COMING AFTER ME IS PREFERRED BEFORE ME, WHOSE SHOES$ LATCHET I AM NOT WORTHY TO UNLOOSE.F# 28 THESE THINGS WERE DONE IN BETHABARA BEYOND JORDAN, WHERE JOHN WAS BAPTIZING. I# 29 THE NEXT DAY JOHN SEETH JESUS COMING UNTO HIM, AND SAITH, BEHOLD THE55 LAMB OF GOD, WHICH TAKETH AWAY THE SIN OF THE WORLD.HH# 30 THIS IS HE OF WHOM I SAID, AFTER ME COMETH A MAN WHICH IS PREFERRED! BEFORE ME: FOR HE WAS BEFORE ME.BG# 31 AND I KNEW HIM NOT: BUT THAT HE SHOULD BE MADE MANIFEST TO ISRAEL,U* THEREFORE AM I COME BAPTIZING WITH WATER.J# 32 AND JOHN BARE RECORD, SAYING, I SAW THE SPIRIT DESCENDING FROM HEAVEN$ LIKE A DOVE, AND IT ABODE UPON HIM.L# 33 AND I KNEW HIM NOT: BUT HE THAT SENT ME TO BAPTIZE WITH WATER, THE SAMEL SAID UNTO ME, UPON WHOM THOU SHALT SEE THE SPIRIT DESCENDING, AND REMAINING< ON HIM, THE SAME IS HE WHICH BAPTIZETH WITH THE HOLY GHOST.<# 34 AND I SAW, AND BARE RECORD THAT THIS IS THE SON OF GOD.C# 35 AGAIN THE NEXT DAY AFTER JOHN STOOD, AND TWO OF HIS DISCIPLES;AK# 36 AND LOOKING UPON JESUS AS HE WALKED, HE SAITH, BEHOLD THE LAMB OF GOD!SD# 37 AND THE TWO DISCIPLES HEARD HIM SPEAK, AND THEY FOLLOWED JESUS.I# 38 THEN JESUS TURNED, AND SAW THEM FOLLOWING, AND SAITH UNTO THEM, WHATHI SEEK YE? THEY SAID UNTO HIM, RABBI, (WHICH IS TO SAY, BEING INTERPRETED,D MASTER,) WHERE DWELLEST THOU?L# 39 HE SAITH UNTO THEM, COME AND SEE. THEY CAME AND SAW WHERE HE DWELT, AND: ABODE WITH HIM THAT DAY: FOR IT WAS ABOUT THE TENTH HOUR.I# 40 ONE OF THE TWO WHICH HEARD JOHN SPE00B'AD%5%T6%! !AK, AND FOLLOWED HIM, WAS ANDREW,H SIMON PETERS BROTHER.H# 41 HE FIRST FINDETH HIS OWN BROTHER SIMON, AND SAITH UNTO HIM, WE HAVE< FOUND THE MESSIAS, WHICH IS, BEING INTERPRETED, THE CHRIST.J# 42 AND HE BROUGHT HIM TO JESUS. AND WHEN JESUS BEHELD HIM, HE SAID, THOUD ART SIMON THE SON OF JONA: THOU SHALT BE CALLED CEPHAS, WHICH IS BY INTERPRETATION, A STONE. M# 43 THE DAY FOLLOWING JESUS WOULD GO FORTH INTO GALILEE, AND FINDETH PHILIP,S AND SAITH UNTO HIM, FOLLOW ME.O?# 44 NOW PHILIP WAS OF BETHSAIDA, THE CITY OF ANDREW AND PETER.M# 45 PHILIP FINDETH NATHANAEL, AND SAITH UNTO HIM, WE HAVE FOUND HIM, OF WHOMUM MOSES IN THE LAW, AND THE PROPHETS, DID WRITE, JESUS OF NAZARETH, THE SON OF JOSEPH.F# 46 AND NATHANAEL SAID UNTO HIM, CAN THERE ANY GOOD THING COME OUT OF/ NAZARETH? PHILIP SAITH UNTO HIM, COME AND SEE.,M# 47 JESUS SAW NATHANAEL COMING TO HIM, AND SAITH OF HIM, BEHOLD AN ISRAELITE  INDEED, IN WHOM IS NO GUILE! I# 48 NATHANAEL SAITH UNTO HIM, WHENCE KNOWEST THOU ME? JESUS ANSWERED ANDAL SAID UNTO HIM, BEFORE THAT PHILIP CALLED THEE, WHEN THOU WAST UNDER THE FIG TREE, I SAW THEE.K# 49 NATHANAEL ANSWERED AND SAITH UNTO HIM, RABBI, THOU ART THE SON OF GOD;R THOU ART THE KING OF ISRAEL.6K# 50 JESUS ANSWERED AND SAID UNTO HIM, BECAUSE I SAID UNTO THEE, I SAW THEE?N UNDER THE FIG TREE, BELIEVEST THOU? THOU SHALT SEE GREATER THINGS THAN THESE.H# 51 AND HE SAITH UNTO HIM, VERILY, VERILY, I SAY UNTO YOU, HEREAFTER YEK SHALL SEE HEAVEN OPEN, AND THE ANGELS OF GOD ASCENDING AND DESCENDING UPONI THE SON OF MAN. = CHAPTER 2 M# 1 AND THE THIRD DAY THERE WAS A MARRIAGE IN CANA OF GALILEE; AND THE MOTHERS OF JESUS WAS THERE:B# 2 AND BOTH JESUS WAS CALLED, AND HIS DISCIPLES, TO THE MARRIAGE.L# 3 AND WHEN THEY WANTED WINE, THE MOTHER OF JESUS SAITH UNTO HIM, THEY HAVE NO WINE.EJ# 4 JESUS SAITH UNTO HER, WOMAN, WHAT HAVE I TO DO WITH THEE? MINE HOUR IS NOT YET COME.L# 5 HIS MOTHER SAITH UNTO THE SERVANTS, WHATSOEVER HE SAITH UNTO YOU, DO IT.L# 6 AND THERE WERE SET THERE SIX WATERPOTS OF STONE, AFTER THE MANNER OF THE? PURIFYING OF THE JEWS, CONTAINING TWO OR THREE FIRKINS APIECE.EI# 7 JESUS SAITH UNTO THEM, FILL THE WATERPOTS WITH WATER. AND THEY FILLEDD THEM UP TO THE BRIM.MK# 8 AND HE SAITH UNTO THEM, DRAW OUT NOW, AND BEAR UNTO THE GOVERNOR OF THET FEAST. AND THEY BARE IT.EL# 9 WHEN THE RULER OF THE FEAST HAD TASTED THE WATER THAT WAS MADE WINE, ANDJ KNEW NOT WHENCE IT WAS: (BUT THE SERVANTS WHICH DREW THE WATER KNEW;) THE- GOVERNOR OF THE FEAST CALLED THE BRIDEGROOM,RM# 10 AND SAITH UNTO HIM, EVERY MAN AT THE BEGINNING DOTH SET FORTH GOOD WINE;OK AND WHEN MEN HAVE WELL DRUNK, THEN THAT WHICH IS WORSE: BUT THOU HAST KEPTW THE GOOD WINE UNTIL NOW.EL# 11 THIS BEGINNING OF MIRACLES DID JESUS IN CANA OF GALILEE, AND MANIFESTED4 FORTH HIS GLORY; AND HIS DISCIPLES BELIEVED ON HIM.F# 12 AFTER THIS HE WENT DOWN TO CAPERNAUM, HE, AND HIS MOTHER, AND HISE BRETHREN, AND HIS DISCIPLES: AND THEY CONTINUED THERE NOT MANY DAYS.TG# 13 AND THE JEWS PASSOVER WAS AT HAND, AND JESUS WENT UP TO JERUSALEM.IJ# 14 AND FOUND IN THE TEMPLE THOSE THAT SOLD OXEN AND SHEEP AND DOVES, AND THE CHANGERS OF MONEY SITTING:OL# 15 AND WHEN HE HAD MADE A SCOURGE OF SMALL CORDS, HE DROVE THEM ALL OUT OFL THE TEMPLE, AND THE SHEEP, AND THE OXEN; AND POURED OUT THE CHANGERS MONEY, AND OVERTHREW THE TABLES;M# 16 AND SAID UNTO THEM THAT SOLD DOVES, TAKE THESE THINGS HENCE; MAKE NOT MYH' FATHERS HOUSE AN HOUSE OF MERCHANDISE.DH# 17 AND HIS DISCIPLES REMEMBERED THAT IT WAS WRITTEN, THE ZEAL OF THINE HOUSE HATH EATEN ME UP.J# 18 THEN ANSWERED THE JEWS AND SAID UNTO HIM, WHAT SIGN SHEWEST THOU UNTO) US, SEEING THAT THOU DOEST THESE THINGS?EI# 19 JESUS ANSWERED AND SAID UNTO THEM, DESTROY THIS TEMPLE, AND IN THREEL DAYS I WILL RAISE IT UP.XM# 20 THEN SAID THE JEWS, FORTY AND SIX YEARS WAS THIS TEMPLE IN BUILDING, ANDI$ WILT THOU REAR IT UP IN THREE DAYS?,# 21 BUT HE SPAKE OF THE TEMPLE OF HIS BODY.M# 22 WHEN THEREFORE HE WAS RISEN FROM THE DEAD, HIS DISCIPLES REMEMBERED THAT,J HE HAD SAID T00BB<%X>%+%O-%TADATADATAHIS UNTO THEM; AND THEY BELIEVED THE SCRIPTURE, AND THE WORD WHICH JESUS HAD SAID.I# 23 NOW WHEN HE WAS IN JERUSALEM AT THE PASSOVER, IN THE FEAST DAY, MANYS? BELIEVED IN HIS NAME, WHEN THEY SAW THE MIRACLES WHICH HE DID.I# 24 BUT JESUS DID NOT COMMIT HIMSELF UNTO THEM, BECAUSE HE KNEW ALL MEN,SK# 25 AND NEEDED NOT THAT ANY SHOULD TESTIFY OF MAN: FOR HE KNEW WHAT WAS INT MAN.K = CHAPTER 3 K# 1 THERE WAS A MAN OF THE PHARISEES, NAMED NICODEMUS, A RULER OF THE JEWS: K# 2 THE SAME CAME TO JESUS BY NIGHT, AND SAID UNTO HIM, RABBI, WE KNOW THATEM THOU ART A TEACHER COME FROM GOD: FOR NO MAN CAN DO THESE MIRACLES THAT THOUE DOEST, EXCEPT GOD BE WITH HIM.SM# 3 JESUS ANSWERED AND SAID UNTO HIM, VERILY, VERILY, I SAY UNTO THEE, EXCEPTS7 A MAN BE BORN AGAIN, HE CANNOT SEE THE KINGDOM OF GOD.MJ# 4 NICODEMUS SAITH UNTO HIM, HOW CAN A MAN BE BORN WHEN HE IS OLD? CAN HE: ENTER THE SECOND TIME INTO HIS MOTHERS WOMB, AND BE BORN?L# 5 JESUS ANSWERED, VERILY, VERILY, I SAY UNTO THEE, EXCEPT A MAN BE BORN OFB WATER AND OF THE SPIRIT, HE CANNOT ENTER INTO THE KINGDOM OF GOD.K# 6 THAT WHICH IS BORN OF THE FLESH IS FLESH; AND THAT WHICH IS BORN OF THED SPIRIT IS SPIRIT.<# 7 MARVEL NOT THAT I SAID UNTO THEE, YE MUST BE BORN AGAIN.J# 8 THE WIND BLOWETH WHERE IT LISTETH, AND THOU HEAREST THE SOUND THEREOF,K BUT CANST NOT TELL WHENCE IT COMETH, AND WHITHER IT GOETH: SO IS EVERY ONER THAT IS BORN OF THE SPIRIT.B# 9 NICODEMUS ANSWERED AND SAID UNTO HIM, HOW CAN THESE THINGS BE?G# 10 JESUS ANSWERED AND SAID UNTO HIM, ART THOU A MASTER OF ISRAEL, ANDE KNOWEST NOT THESE THINGS?K# 11 VERILY, VERILY, I SAY UNTO THEE, WE SPEAK THAT WE DO KNOW, AND TESTIFY3 THAT WE HAVE SEEN; AND YE RECEIVE NOT OUR WITNESS.HH# 12 IF I HAVE TOLD YOU EARTHLY THINGS, AND YE BELIEVE NOT, HOW SHALL YE+ BELIEVE, IF I TELL YOU OF HEAVENLY THINGS?TF# 13 AND NO MAN HATH ASCENDED UP TO HEAVEN, BUT HE THAT CAME DOWN FROM0 HEAVEN, EVEN THE SON OF MAN WHICH IS IN HEAVEN.K# 14 AND AS MOSES LIFTED UP THE SERPENT IN THE WILDERNESS, EVEN SO MUST THEA SON OF MAN BE LIFTED UP: H# 15 THAT WHOSOEVER BELIEVETH IN HIM SHOULD NOT PERISH, BUT HAVE ETERNAL LIFE.I# 16 FOR GOD SO LOVED THE WORLD, THAT HE GAVE HIS ONLY BEGOTTEN SON, THATTI WHOSOEVER BELIEVETH IN HIM SHOULD NOT PERISH, BUT HAVE EVERLASTING LIFE.LK# 17 FOR GOD SENT NOT HIS SON INTO THE WORLD TO CONDEMN THE WORLD; BUT THATN& THE WORLD THROUGH HIM MIGHT BE SAVED.L# 18 HE THAT BELIEVETH ON HIM IS NOT CONDEMNED: BUT HE THAT BELIEVETH NOT ISH CONDEMNED ALREADY, BECAUSE HE HATH NOT BELIEVED IN THE NAME OF THE ONLY BEGOTTEN SON OF GOD.SM# 19 AND THIS IS THE CONDEMNATION, THAT LIGHT IS COME INTO THE WORLD, AND MENDA LOVED DARKNESS RATHER THAN LIGHT, BECAUSE THEIR DEEDS WERE EVIL.OJ# 20 FOR EVERY ONE THAT DOETH EVIL HATETH THE LIGHT, NEITHER COMETH TO THE* LIGHT, LEST HIS DEEDS SHOULD BE REPROVED.L# 21 BUT HE THAT DOETH TRUTH COMETH TO THE LIGHT, THAT HIS DEEDS MAY BE MADE( MANIFEST, THAT THEY ARE WROUGHT IN GOD.M# 22 AFTER THESE THINGS CAME JESUS AND HIS DISCIPLES INTO THE LAND OF JUDAEA; . AND THERE HE TARRIED WITH THEM, AND BAPTIZED.J# 23 AND JOHN ALSO WAS BAPTIZING IN AENON NEAR TO SALIM, BECAUSE THERE WAS4 MUCH WATER THERE: AND THEY CAME, AND WERE BAPTIZED.+# 24 FOR JOHN WAS NOT YET CAST INTO PRISON. M# 25 THEN THERE AROSE A QUESTION BETWEEN SOME OF JOHNS DISCIPLES AND THE JEWSR ABOUT PURIFYING.HM# 26 AND THEY CAME UNTO JOHN, AND SAID UNTO HIM, RABBI, HE THAT WAS WITH THEETL BEYOND JORDAN, TO WHOM THOU BAREST WITNESS, BEHOLD, THE SAME BAPTIZETH, AND ALL MEN COME TO HIM.UJ# 27 JOHN ANSWERED AND SAID, A MAN CAN RECEIVE NOTHING, EXCEPT IT BE GIVEN HIM FROM HEAVEN.OI# 28 YE YOURSELVES BEAR ME WITNESS, THAT I SAID, I AM NOT THE CHRIST, BUTE THAT I AM SENT BEFORE HIM.AD# 29 HE THAT HATH THE BRIDE IS THE BRIDEGROOM: BUT THE FRIEND OF THEM BRIDEGROOM, WHICH STANDETH AND HEARETH HIM, REJOICETH GREATLY BECAUSE OF THEU7 BRIDEGROOMS VOICE: THIS MY JOY THEREFORE IS FULFILLED.T+# 30 HE MUST INCREASE, BUT I MUST DECREASE.,G# 31 HE THAT COMETH FROM ABOVE IS ABOVE ALL: HE TH00C'AD%5%T6%! !AT IS OF THE EARTH ISRM EARTHLY, AND SPEAKETH OF THE EARTH: HE THAT COMETH FROM HEAVEN IS ABOVE ALL.D# 32 AND WHAT HE HATH SEEN AND HEARD, THAT HE TESTIFIETH; AND NO MAN RECEIVETH HIS TESTIMONY.EI# 33 HE THAT HATH RECEIVED HIS TESTIMONY HATH SET TO HIS SEAL THAT GOD ISE TRUE.L# 34 FOR HE WHOM GOD HATH SENT SPEAKETH THE WORDS OF GOD: FOR GOD GIVETH NOT THE SPIRIT BY MEASURE UNTO HIM.H# 35 THE FATHER LOVETH THE SON, AND HATH GIVEN ALL THINGS INTO HIS HAND.D# 36 HE THAT BELIEVETH ON THE SON HATH EVERLASTING LIFE: AND HE THATJ BELIEVETH NOT THE SON SHALL NOT SEE LIFE; BUT THE WRATH OF GOD ABIDETH ON HIM.D = CHAPTER 4 L# 1 WHEN THEREFORE THE LORD KNEW HOW THE PHARISEES HAD HEARD THAT JESUS MADE' AND BAPTIZED MORE DISCIPLES THAN JOHN,T;# 2 (THOUGH JESUS HIMSELF BAPTIZED NOT, BUT HIS DISCIPLES,)H4# 3 HE LEFT JUDAEA, AND DEPARTED AGAIN INTO GALILEE.)# 4 AND HE MUST NEEDS GO THROUGH SAMARIA.EL# 5 THEN COMETH HE TO A CITY OF SAMARIA, WHICH IS CALLED SYCHAR, NEAR TO THE4 PARCEL OF GROUND THAT JACOB GAVE TO HIS SON JOSEPH.F# 6 NOW JACOBS WELL WAS THERE. JESUS THEREFORE, BEING WEARIED WITH HIS@ JOURNEY, SAT THUS ON THE WELL: AND IT WAS ABOUT THE SIXTH HOUR.M# 7 THERE COMETH A WOMAN OF SAMARIA TO DRAW WATER: JESUS SAITH UNTO HER, GIVEN ME TO DRINK. A# 8 (FOR HIS DISCIPLES WERE GONE AWAY UNTO THE CITY TO BUY MEAT.)AJ# 9 THEN SAITH THE WOMAN OF SAMARIA UNTO HIM, HOW IS IT THAT THOU, BEING AK JEW, ASKEST DRINK OF ME, WHICH AM A WOMAN OF SAMARIA? FOR THE JEWS HAVE NOT DEALINGS WITH THE SAMARITANS.K# 10 JESUS ANSWERED AND SAID UNTO HER, IF THOU KNEWEST THE GIFT OF GOD, ANDNL WHO IT IS THAT SAITH TO THEE, GIVE ME TO DRINK; THOU WOULDEST HAVE ASKED OF0 HIM, AND HE WOULD HAVE GIVEN THEE LIVING WATER.K# 11 THE WOMAN SAITH UNTO HIM, SIR, THOU HAST NOTHING TO DRAW WITH, AND THEW< WELL IS DEEP: FROM WHENCE THEN HAST THOU THAT LIVING WATER?H# 12 ART THOU GREATER THAN OUR FATHER JACOB, WHICH GAVE US THE WELL, AND9 DRANK THEREOF HIMSELF, AND HIS CHILDREN, AND HIS CATTLE?TM# 13 JESUS ANSWERED AND SAID UNTO HER, WHOSOEVER DRINKETH OF THIS WATER SHALLU THIRST AGAIN:J# 14 BUT WHOSOEVER DRINKETH OF THE WATER THAT I SHALL GIVE HIM SHALL NEVERL THIRST; BUT THE WATER THAT I SHALL GIVE HIM SHALL BE IN HIM A WELL OF WATER$ SPRINGING UP INTO EVERLASTING LIFE.J# 15 THE WOMAN SAITH UNTO HIM, SIR, GIVE ME THIS WATER, THAT I THIRST NOT, NEITHER COME HITHER TO DRAW.RA# 16 JESUS SAITH UNTO HER, GO, CALL THY HUSBAND, AND COME HITHER.EI# 17 THE WOMAN ANSWERED AND SAID, I HAVE NO HUSBAND. JESUS SAID UNTO HER,A( THOU HAST WELL SAID, I HAVE NO HUSBAND:J# 18 FOR THOU HAST HAD FIVE HUSBANDS; AND HE WHOM THOU NOW HAST IS NOT THY$ HUSBAND: IN THAT SAIDST THOU TRULY.G# 19 THE WOMAN SAITH UNTO HIM, SIR, I PERCEIVE THAT THOU ART A PROPHET.NK# 20 OUR FATHERS WORSHIPPED IN THIS MOUNTAIN; AND YE SAY, THAT IN JERUSALEMH) IS THE PLACE WHERE MEN OUGHT TO WORSHIP. L# 21 JESUS SAITH UNTO HER, WOMAN, BELIEVE ME, THE HOUR COMETH, WHEN YE SHALLD NEITHER IN THIS MOUNTAIN, NOR YET AT JERUSALEM, WORSHIP THE FATHER.K# 22 YE WORSHIP YE KNOW NOT WHAT: WE KNOW WHAT WE WORSHIP: FOR SALVATION ISD OF THE JEWS. M# 23 BUT THE HOUR COMETH, AND NOW IS, WHEN THE TRUE WORSHIPPERS SHALL WORSHIP9J THE FATHER IN SPIRIT AND IN TRUTH: FOR THE FATHER SEEKETH SUCH TO WORSHIP HIM.EJ# 24 GOD IS A SPIRIT: AND THEY THAT WORSHIP HIM MUST WORSHIP HIM IN SPIRIT AND IN TRUTH.J# 25 THE WOMAN SAITH UNTO HIM, I KNOW THAT MESSIAS COMETH, WHICH IS CALLED5 CHRIST: WHEN HE IS COME, HE WILL TELL US ALL THINGS. 8# 26 JESUS SAITH UNTO HER, I THAT SPEAK UNTO THEE AM HE.L# 27 AND UPON THIS CAME HIS DISCIPLES, AND MARVELLED THAT HE TALKED WITH THEJ WOMAN: YET NO MAN SAID, WHAT SEEKEST THOU? OR, WHY TALKEST THOU WITH HER?J# 28 THE WOMAN THEN LEFT HER WATERPOT, AND WENT HER WAY INTO THE CITY, AND SAITH TO THE MEN,K# 29 COME, SEE A MAN, WHICH TOLD ME ALL THINGS THAT EVER I DID: IS NOT THIS5 THE CHRIST?7# 30 THEN THEY WENT OUT OF THE CITY, AND CAME UNTO HIM.E# 31 IN THE MEAN WHILE HIS DISCIPLES PRAYED HIM, SAYING, MASTER, EAT.HC# 32 BUT HE SAID UNTO TH00 CB<%X>%+%O-%TADATADATAEM, I HAVE MEAT TO EAT THAT YE KNOW NOT OF. J# 33 THEREFORE SAID THE DISCIPLES ONE TO ANOTHER, HATH ANY MAN BROUGHT HIM OUGHT TO EAT?J# 34 JESUS SAITH UNTO THEM, MY MEAT IS TO DO THE WILL OF HIM THAT SENT ME, AND TO FINISH HIS WORK.L# 35 SAY NOT YE, THERE ARE YET FOUR MONTHS, AND THEN COMETH HARVEST? BEHOLD,N I SAY UNTO YOU, LIFT UP YOUR EYES, AND LOOK ON THE FIELDS; FOR THEY ARE WHITE ALREADY TO HARVEST.G# 36 AND HE THAT REAPETH RECEIVETH WAGES, AND GATHERETH FRUIT UNTO LIFE2L ETERNAL: THAT BOTH HE THAT SOWETH AND HE THAT REAPETH MAY REJOICE TOGETHER.E# 37 AND HEREIN IS THAT SAYING TRUE, ONE SOWETH, AND ANOTHER REAPETH.TE# 38 I SENT YOU TO REAP THAT WHEREON YE BESTOWED NO LABOUR: OTHER MENA1 LABOURED, AND YE ARE ENTERED INTO THEIR LABOURS.YK# 39 AND MANY OF THE SAMARITANS OF THAT CITY BELIEVED ON HIM FOR THE SAYINGO? OF THE WOMAN, WHICH TESTIFIED, HE TOLD ME ALL THAT EVER I DID.I# 40 SO WHEN THE SAMARITANS WERE COME UNTO HIM, THEY BESOUGHT HIM THAT HET4 WOULD TARRY WITH THEM: AND HE ABODE THERE TWO DAYS.4# 41 AND MANY MORE BELIEVED BECAUSE OF HIS OWN WORD;L# 42 AND SAID UNTO THE WOMAN, NOW WE BELIEVE, NOT BECAUSE OF THY SAYING: FORJ WE HAVE HEARD HIM OURSELVES, AND KNOW THAT THIS IS INDEED THE CHRIST, THE SAVIOUR OF THE WORLD.B# 43 NOW AFTER TWO DAYS HE DEPARTED THENCE, AND WENT INTO GALILEE.J# 44 FOR JESUS HIMSELF TESTIFIED, THAT A PROPHET HATH NO HONOUR IN HIS OWN COUNTRY.0L# 45 THEN WHEN HE WAS COME INTO GALILEE, THE GALILAEANS RECEIVED HIM, HAVINGN SEEN ALL THE THINGS THAT HE DID AT JERUSALEM AT THE FEAST: FOR THEY ALSO WENT UNTO THE FEAST.L# 46 SO JESUS CAME AGAIN INTO CANA OF GALILEE, WHERE HE MADE THE WATER WINE.C AND THERE WAS A CERTAIN NOBLEMAN, WHOSE SON WAS SICK AT CAPERNAUM.RJ# 47 WHEN HE HEARD THAT JESUS WAS COME OUT OF JUDAEA INTO GALILEE, HE WENTM UNTO HIM, AND BESOUGHT HIM THAT HE WOULD COME DOWN, AND HEAL HIS SON: FOR HE  WAS AT THE POINT OF DEATH.YK# 48 THEN SAID JESUS UNTO HIM, EXCEPT YE SEE SIGNS AND WONDERS, YE WILL NOTI BELIEVE.LB# 49 THE NOBLEMAN SAITH UNTO HIM, SIR, COME DOWN ERE MY CHILD DIE.K# 50 JESUS SAITH UNTO HIM, GO THY WAY; THY SON LIVETH. AND THE MAN BELIEVED > THE WORD THAT JESUS HAD SPOKEN UNTO HIM, AND HE WENT HIS WAY.F# 51 AND AS HE WAS NOW GOING DOWN, HIS SERVANTS MET HIM, AND TOLD HIM, SAYING, THY SON LIVETH.L# 52 THEN ENQUIRED HE OF THEM THE HOUR WHEN HE BEGAN TO AMEND. AND THEY SAID< UNTO HIM, YESTERDAY AT THE SEVENTH HOUR THE FEVER LEFT HIM.M# 53 SO THE FATHER KNEW THAT IT WAS AT THE SAME HOUR, IN THE WHICH JESUS SAIDEE UNTO HIM, THY SON LIVETH: AND HIMSELF BELIEVED, AND HIS WHOLE HOUSE.UM# 54 THIS IS AGAIN THE SECOND MIRACLE THAT JESUS DID, WHEN HE WAS COME OUT OFS JUDAEA INTO GALILEE.N = CHAPTER 5 M# 1 AFTER THIS THERE WAS A FEAST OF THE JEWS; AND JESUS WENT UP TO JERUSALEM.SL# 2 NOW THERE IS AT JERUSALEM BY THE SHEEP MARKET A POOL, WHICH IS CALLED IN1 THE HEBREW TONGUE BETHESDA, HAVING FIVE PORCHES. D# 3 IN THESE LAY A GREAT MULTITUDE OF IMPOTENT FOLK, OF BLIND, HALT,/ WITHERED, WAITING FOR THE MOVING OF THE WATER. J# 4 FOR AN ANGEL WENT DOWN AT A CERTAIN SEASON INTO THE POOL, AND TROUBLEDL THE WATER: WHOSOEVER THEN FIRST AFTER THE TROUBLING OF THE WATER STEPPED IN- WAS MADE WHOLE OF WHATSOEVER DISEASE HE HAD.EH# 5 AND A CERTAIN MAN WAS THERE, WHICH HAD AN INFIRMITY THIRTY AND EIGHT YEARS.EM# 6 WHEN JESUS SAW HIM LIE, AND KNEW THAT HE HAD BEEN NOW A LONG TIME IN THATE2 CASE, HE SAITH UNTO HIM, WILT THOU BE MADE WHOLE?H# 7 THE IMPOTENT MAN ANSWERED HIM, SIR, I HAVE NO MAN, WHEN THE WATER ISK TROUBLED, TO PUT ME INTO THE POOL: BUT WHILE I AM COMING, ANOTHER STEPPETH  DOWN BEFORE ME.:# 8 JESUS SAITH UNTO HIM, RISE, TAKE UP THY BED, AND WALK.L# 9 AND IMMEDIATELY THE MAN WAS MADE WHOLE, AND TOOK UP HIS BED, AND WALKED:% AND ON THE SAME DAY WAS THE SABBATH.IL# 10 THE JEWS THEREFORE SAID UNTO HIM THAT WAS CURED, IT IS THE SABBATH DAY:, IT IS NOT LAWFUL FOR THEE TO CARRY THY BED.L# 11 HE ANSWERED THEM, HE THAT MADE ME WHOLE, THE SAME SAID UNTO ME, TAKE UP THY BED, AND WALK.EL# 12 THEN ASKED THEY HIM, WH00C'AD%5%T6%! !AT MAN IS THAT WHICH SAID UNTO THEE, TAKE UP THY BED, AND WALK?DG# 13 AND HE THAT WAS HEALED WIST NOT WHO IT WAS: FOR JESUS HAD CONVEYED./ HIMSELF AWAY, A MULTITUDE BEING IN THAT PLACE. J# 14 AFTERWARD JESUS FINDETH HIM IN THE TEMPLE, AND SAID UNTO HIM, BEHOLD,E THOU ART MADE WHOLE: SIN NO MORE, LEST A WORSE THING COME UNTO THEE.J# 15 THE MAN DEPARTED, AND TOLD THE JEWS THAT IT WAS JESUS, WHICH HAD MADE HIM WHOLE.EH# 16 AND THEREFORE DID THE JEWS PERSECUTE JESUS, AND SOUGHT TO SLAY HIM,5 BECAUSE HE HAD DONE THESE THINGS ON THE SABBATH DAY.TE# 17 BUT JESUS ANSWERED THEM, MY FATHER WORKETH HITHERTO, AND I WORK.FL# 18 THEREFORE THE JEWS SOUGHT THE MORE TO KILL HIM, BECAUSE HE NOT ONLY HADJ BROKEN THE SABBATH, BUT SAID ALSO THAT GOD WAS HIS FATHER, MAKING HIMSELF EQUAL WITH GOD.L# 19 THEN ANSWERED JESUS AND SAID UNTO THEM, VERILY, VERILY, I SAY UNTO YOU,M THE SON CAN DO NOTHING OF HIMSELF, BUT WHAT HE SEETH THE FATHER DO: FOR WHATE; THINGS SOEVER HE DOETH, THESE ALSO DOETH THE SON LIKEWISE.UK# 20 FOR THE FATHER LOVETH THE SON, AND SHEWETH HIM ALL THINGS THAT HIMSELFMJ DOETH: AND HE WILL SHEW HIM GREATER WORKS THAN THESE, THAT YE MAY MARVEL.L# 21 FOR AS THE FATHER RAISETH UP THE DEAD, AND QUICKENETH THEM; EVEN SO THE SON QUICKENETH WHOM HE WILL.IL# 22 FOR THE FATHER JUDGETH NO MAN, BUT HATH COMMITTED ALL JUDGMENT UNTO THE SON:RK# 23 THAT ALL MEN SHOULD HONOUR THE SON, EVEN AS THEY HONOUR THE FATHER. HEHI THAT HONOURETH NOT THE SON HONOURETH NOT THE FATHER WHICH HATH SENT HIM.IK# 24 VERILY, VERILY, I SAY UNTO YOU, HE THAT HEARETH MY WORD, AND BELIEVETH D ON HIM THAT SENT ME, HATH EVERLASTING LIFE, AND SHALL NOT COME INTO2 CONDEMNATION; BUT IS PASSED FROM DEATH UNTO LIFE.M# 25 VERILY, VERILY, I SAY UNTO YOU, THE HOUR IS COMING, AND NOW IS, WHEN THEFL DEAD SHALL HEAR THE VOICE OF THE SON OF GOD: AND THEY THAT HEAR SHALL LIVE.K# 26 FOR AS THE FATHER HATH LIFE IN HIMSELF; SO HATH HE GIVEN TO THE SON TOH HAVE LIFE IN HIMSELF;M# 27 AND HATH GIVEN HIM AUTHORITY TO EXECUTE JUDGMENT ALSO, BECAUSE HE IS THEY SON OF MAN.M# 28 MARVEL NOT AT THIS: FOR THE HOUR IS COMING, IN THE WHICH ALL THAT ARE INF! THE GRAVES SHALL HEAR HIS VOICE,NM# 29 AND SHALL COME FORTH; THEY THAT HAVE DONE GOOD, UNTO THE RESURRECTION OF,H LIFE; AND THEY THAT HAVE DONE EVIL, UNTO THE RESURRECTION OF DAMNATION.K# 30 I CAN OF MINE OWN SELF DO NOTHING: AS I HEAR, I JUDGE: AND MY JUDGMENTIL IS JUST; BECAUSE I SEEK NOT MINE OWN WILL, BUT THE WILL OF THE FATHER WHICH HATH SENT ME.9# 31 IF I BEAR WITNESS OF MYSELF, MY WITNESS IS NOT TRUE.SM# 32 THERE IS ANOTHER THAT BEARETH WITNESS OF ME; AND I KNOW THAT THE WITNESSH# WHICH HE WITNESSETH OF ME IS TRUE.S;# 33 YE SENT UNTO JOHN, AND HE BARE WITNESS UNTO THE TRUTH.,J# 34 BUT I RECEIVE NOT TESTIMONY FROM MAN: BUT THESE THINGS I SAY, THAT YE MIGHT BE SAVED.K# 35 HE WAS A BURNING AND A SHINING LIGHT: AND YE WERE WILLING FOR A SEASOND TO REJOICE IN HIS LIGHT. J# 36 BUT I HAVE GREATER WITNESS THAN THAT OF JOHN: FOR THE WORKS WHICH THEN FATHER HATH GIVEN ME TO FINISH, THE SAME WORKS THAT I DO, BEAR WITNESS OF ME, THAT THE FATHER HATH SENT ME.M# 37 AND THE FATHER HIMSELF, WHICH HATH SENT ME, HATH BORNE WITNESS OF ME. YET> HAVE NEITHER HEARD HIS VOICE AT ANY TIME, NOR SEEN HIS SHAPE.K# 38 AND YE HAVE NOT HIS WORD ABIDING IN YOU: FOR WHOM HE HATH SENT, HIM YE BELIEVE NOT.NJ# 39 SEARCH THE SCRIPTURES; FOR IN THEM YE THINK YE HAVE ETERNAL LIFE: AND# THEY ARE THEY WHICH TESTIFY OF ME.I9# 40 AND YE WILL NOT COME TO ME, THAT YE MIGHT HAVE LIFE.A## 41 I RECEIVE NOT HONOUR FROM MEN. =# 42 BUT I KNOW YOU, THAT YE HAVE NOT THE LOVE OF GOD IN YOU.J# 43 I AM COME IN MY FATHERS NAME, AND YE RECEIVE ME NOT: IF ANOTHER SHALL+ COME IN HIS OWN NAME, HIM YE WILL RECEIVE.,J# 44 HOW CAN YE BELIEVE, WHICH RECEIVE HONOUR ONE OF ANOTHER, AND SEEK NOT& THE HONOUR THAT COMETH FROM GOD ONLY?I# 45 DO NOT THINK THAT I WILL ACCUSE YOU TO THE FATHER: THERE IS ONE THAT, ACCUSETH YOU, EVEN MOSES, IN WHOM YE TRUST.J# 46 FOR HAD YE BELIEVED MOSES, YE WOULD HAVE BELIEVED ME; FOR HE WROT00CB<%X>%+%O-%TADATADATAE OF ME.G# 47 BUT IF YE BELIEVE NOT HIS WRITINGS, HOW SHALL YE BELIEVE MY WORDS? = CHAPTER 6 N# 1 AFTER THESE THINGS JESUS WENT OVER THE SEA OF GALILEE, WHICH IS THE SEA OF TIBERIAS.K# 2 AND A GREAT MULTITUDE FOLLOWED HIM, BECAUSE THEY SAW HIS MIRACLES WHICHN# HE DID ON THEM THAT WERE DISEASED.RK# 3 AND JESUS WENT UP INTO A MOUNTAIN, AND THERE HE SAT WITH HIS DISCIPLES.S4# 4 AND THE PASSOVER, A FEAST OF THE JEWS, WAS NIGH.I# 5 WHEN JESUS THEN LIFTED UP HIS EYES, AND SAW A GREAT COMPANY COME UNTO J HIM, HE SAITH UNTO PHILIP, WHENCE SHALL WE BUY BREAD, THAT THESE MAY EAT?H# 6 AND THIS HE SAID TO PROVE HIM: FOR HE HIMSELF KNEW WHAT HE WOULD DO.J# 7 PHILIP ANSWERED HIM, TWO HUNDRED PENNYWORTH OF BREAD IS NOT SUFFICIENT4 FOR THEM, THAT EVERY ONE OF THEM MAY TAKE A LITTLE.G# 8 ONE OF HIS DISCIPLES, ANDREW, SIMON PETERS BROTHER, SAITH UNTO HIM,EM# 9 THERE IS A LAD HERE, WHICH HATH FIVE BARLEY LOAVES, AND TWO SMALL FISHES:G! BUT WHAT ARE THEY AMONG SO MANY?IK# 10 AND JESUS SAID, MAKE THE MEN SIT DOWN. NOW THERE WAS MUCH GRASS IN THEE; PLACE. SO THE MEN SAT DOWN, IN NUMBER ABOUT FIVE THOUSAND.DL# 11 AND JESUS TOOK THE LOAVES; AND WHEN HE HAD GIVEN THANKS, HE DISTRIBUTEDM TO THE DISCIPLES, AND THE DISCIPLES TO THEM THAT WERE SET DOWN; AND LIKEWISEF% OF THE FISHES AS MUCH AS THEY WOULD.SE# 12 WHEN THEY WERE FILLED, HE SAID UNTO HIS DISCIPLES, GATHER UP THES- FRAGMENTS THAT REMAIN, THAT NOTHING BE LOST. J# 13 THEREFORE THEY GATHERED THEM TOGETHER, AND FILLED TWELVE BASKETS WITHL THE FRAGMENTS OF THE FIVE BARLEY LOAVES, WHICH REMAINED OVER AND ABOVE UNTO THEM THAT HAD EATEN.TI# 14 THEN THOSE MEN, WHEN THEY HAD SEEN THE MIRACLE THAT JESUS DID, SAID,NA THIS IS OF A TRUTH THAT PROPHET THAT SHOULD COME INTO THE WORLD.AH# 15 WHEN JESUS THEREFORE PERCEIVED THAT THEY WOULD COME AND TAKE HIM BYL FORCE, TO MAKE HIM A KING, HE DEPARTED AGAIN INTO A MOUNTAIN HIMSELF ALONE.F# 16 AND WHEN EVEN WAS NOW COME, HIS DISCIPLES WENT DOWN UNTO THE SEA,L# 17 AND ENTERED INTO A SHIP, AND WENT OVER THE SEA TOWARD CAPERNAUM. AND IT. WAS NOW DARK, AND JESUS WAS NOT COME TO THEM.;# 18 AND THE SEA AROSE BY REASON OF A GREAT WIND THAT BLEW.HJ# 19 SO WHEN THEY HAD ROWED ABOUT FIVE AND TWENTY OR THIRTY FURLONGS, THEYL SEE JESUS WALKING ON THE SEA, AND DRAWING NIGH UNTO THE SHIP: AND THEY WERE AFRAID.4# 20 BUT HE SAITH UNTO THEM, IT IS I; BE NOT AFRAID.M# 21 THEN THEY WILLINGLY RECEIVED HIM INTO THE SHIP: AND IMMEDIATELY THE SHIPL# WAS AT THE LAND WHITHER THEY WENT.EL# 22 THE DAY FOLLOWING, WHEN THE PEOPLE WHICH STOOD ON THE OTHER SIDE OF THEJ SEA SAW THAT THERE WAS NONE OTHER BOAT THERE, SAVE THAT ONE WHEREINTO HISL DISCIPLES WERE ENTERED, AND THAT JESUS WENT NOT WITH HIS DISCIPLES INTO THE3 BOAT, BUT THAT HIS DISCIPLES WERE GONE AWAY ALONE;AL# 23 (HOWBEIT THERE CAME OTHER BOATS FROM TIBERIAS NIGH UNTO THE PLACE WHERE; THEY DID EAT BREAD, AFTER THAT THE LORD HAD GIVEN THANKS:)IH# 24 WHEN THE PEOPLE THEREFORE SAW THAT JESUS WAS NOT THERE, NEITHER HISN DISCIPLES, THEY ALSO TOOK SHIPPING, AND CAME TO CAPERNAUM, SEEKING FOR JESUS.M# 25 AND WHEN THEY HAD FOUND HIM ON THE OTHER SIDE OF THE SEA, THEY SAID UNTON( HIM, RABBI, WHEN CAMEST THOU HITHER? ITJ# 26 JESUS ANSWERED THEM AND SAID, VERILY, VERILY, I SAY UNTO YOU, YE SEEKK ME, NOT BECAUSE YE SAW THE MIRACLES, BUT BECAUSE YE DID EAT OF THE LOAVES,  AND WERE FILLED.EE# 27 LABOUR NOT FOR THE MEAT WHICH PERISHETH, BUT FOR THAT MEAT WHICHEN ENDURETH UNTO EVERLASTING LIFE, WHICH THE SON OF MAN SHALL GIVE UNTO YOU: FOR HIM HATH GOD THE FATHER SEALED.L# 28 THEN SAID THEY UNTO HIM, WHAT SHALL WE DO, THAT WE MIGHT WORK THE WORKS OF GOD?H# 29 JESUS ANSWERED AND SAID UNTO THEM, THIS IS THE WORK OF GOD, THAT YE" BELIEVE ON HIM WHOM HE HATH SENT.K# 30 THEY SAID THEREFORE UNTO HIM, WHAT SIGN SHEWEST THOU THEN, THAT WE MAYA, SEE, AND BELIEVE THEE? WHAT DOST THOU WORK?L# 31 OUR FATHERS DID EAT MANNA IN THE DESERT; AS IT IS WRITTEN, HE GAVE THEM BREAD FROM HEAVEN TO EAT.J# 32 THEN JESUS SAID UNTO THEM, VERILY, VERILY, I SAY UNTO YOU, MOSES GAVEM YOU NOT THAT BR00"C'AD%5%T6%! !EAD FROM HEAVEN; BUT MY FATHER GIVETH YOU THE TRUE BREAD FROME HEAVEN.I# 33 FOR THE BREAD OF GOD IS HE WHICH COMETH DOWN FROM HEAVEN, AND GIVETHA LIFE UNTO THE WORLD.H@# 34 THEN SAID THEY UNTO HIM, LORD, EVERMORE GIVE US THIS BREAD.K# 35 AND JESUS SAID UNTO THEM, I AM THE BREAD OF LIFE: HE THAT COMETH TO ME D SHALL NEVER HUNGER; AND HE THAT BELIEVETH ON ME SHALL NEVER THIRST.E# 36 BUT I SAID UNTO YOU, THAT YE ALSO HAVE SEEN ME, AND BELIEVE NOT.YK# 37 ALL THAT THE FATHER GIVETH ME SHALL COME TO ME; AND HIM THAT COMETH TO  ME I WILL IN NO WISE CAST OUT.FJ# 38 FOR I CAME DOWN FROM HEAVEN, NOT TO DO MINE OWN WILL, BUT THE WILL OF HIM THAT SENT ME.J# 39 AND THIS IS THE FATHERS WILL WHICH HATH SENT ME, THAT OF ALL WHICH HEN HATH GIVEN ME I SHOULD LOSE NOTHING, BUT SHOULD RAISE IT UP AGAIN AT THE LAST DAY.M# 40 AND THIS IS THE WILL OF HIM THAT SENT ME, THAT EVERY ONE WHICH SEETH THEIN SON, AND BELIEVETH ON HIM, MAY HAVE EVERLASTING LIFE: AND I WILL RAISE HIM UP AT THE LAST DAY.AI# 41 THE JEWS THEN MURMURED AT HIM, BECAUSE HE SAID, I AM THE BREAD WHICH  CAME DOWN FROM HEAVEN.EJ# 42 AND THEY SAID, IS NOT THIS JESUS, THE SON OF JOSEPH, WHOSE FATHER ANDG MOTHER WE KNOW? HOW IS IT THEN THAT HE SAITH, I CAME DOWN FROM HEAVEN? B# 43 JESUS THEREFORE ANSWERED AND SAID UNTO THEM, MURMUR NOT AMONG YOURSELVES.J# 44 NO MAN CAN COME TO ME, EXCEPT THE FATHER WHICH HATH SENT ME DRAW HIM:) AND I WILL RAISE HIM UP AT THE LAST DAY.EH# 45 IT IS WRITTEN IN THE PROPHETS, AND THEY SHALL BE ALL TAUGHT OF GOD.L EVERY MAN THEREFORE THAT HATH HEARD, AND HATH LEARNED OF THE FATHER, COMETH UNTO ME. L# 46 NOT THAT ANY MAN HATH SEEN THE FATHER, SAVE HE WHICH IS OF GOD, HE HATH SEEN THE FATHER. M# 47 VERILY, VERILY, I SAY UNTO YOU, HE THAT BELIEVETH ON ME HATH EVERLASTING  LIFE.# 48 I AM THAT BREAD OF LIFE.Y@# 49 YOUR FATHERS DID EAT MANNA IN THE WILDERNESS, AND ARE DEAD.H# 50 THIS IS THE BREAD WHICH COMETH DOWN FROM HEAVEN, THAT A MAN MAY EAT THEREOF, AND NOT DIE.I# 51 I AM THE LIVING BREAD WHICH CAME DOWN FROM HEAVEN: IF ANY MAN EAT OFAI THIS BREAD, HE SHALL LIVE FOR EVER: AND THE BREAD THAT I WILL GIVE IS MYA4 FLESH, WHICH I WILL GIVE FOR THE LIFE OF THE WORLD.I# 52 THE JEWS THEREFORE STROVE AMONG THEMSELVES, SAYING, HOW CAN THIS MANE GIVE US HIS FLESH TO EAT?M# 53 THEN JESUS SAID UNTO THEM, VERILY, VERILY, I SAY UNTO YOU, EXCEPT YE EATWJ THE FLESH OF THE SON OF MAN, AND DRINK HIS BLOOD, YE HAVE NO LIFE IN YOU.K# 54 WHOSO EATETH MY FLESH, AND DRINKETH MY BLOOD, HATH ETERNAL LIFE; AND II# WILL RAISE HIM UP AT THE LAST DAY.E?# 55 FOR MY FLESH IS MEAT INDEED, AND MY BLOOD IS DRINK INDEED. M# 56 HE THAT EATETH MY FLESH, AND DRINKETH MY BLOOD, DWELLETH IN ME, AND I INE HIM.HL# 57 AS THE LIVING FATHER HATH SENT ME, AND I LIVE BY THE FATHER: SO HE THAT% EATETH ME, EVEN HE SHALL LIVE BY ME.ML# 58 THIS IS THAT BREAD WHICH CAME DOWN FROM HEAVEN: NOT AS YOUR FATHERS DIDK EAT MANNA, AND ARE DEAD: HE THAT EATETH OF THIS BREAD SHALL LIVE FOR EVER.NF# 59 THESE THINGS SAID HE IN THE SYNAGOGUE, AS HE TAUGHT IN CAPERNAUM.M# 60 MANY THEREFORE OF HIS DISCIPLES, WHEN THEY HAD HEARD THIS, SAID, THIS IS! AN HARD SAYING; WHO CAN HEAR IT?RJ# 61 WHEN JESUS KNEW IN HIMSELF THAT HIS DISCIPLES MURMURED AT IT, HE SAID! UNTO THEM, DOTH THIS OFFEND YOU?AK# 62 WHAT AND IF YE SHALL SEE THE SON OF MAN ASCEND UP WHERE HE WAS BEFORE?RM# 63 IT IS THE SPIRIT THAT QUICKENETH; THE FLESH PROFITETH NOTHING: THE WORDSE; THAT I SPEAK UNTO YOU, THEY ARE SPIRIT, AND THEY ARE LIFE.TH# 64 BUT THERE ARE SOME OF YOU THAT BELIEVE NOT. FOR JESUS KNEW FROM THEF BEGINNING WHO THEY WERE THAT BELIEVED NOT, AND WHO SHOULD BETRAY HIM.J# 65 AND HE SAID, THEREFORE SAID I UNTO YOU, THAT NO MAN CAN COME UNTO ME,, EXCEPT IT WERE GIVEN UNTO HIM OF MY FATHER.L# 66 FROM THAT TIME MANY OF HIS DISCIPLES WENT BACK, AND WALKED NO MORE WITH HIM.E;# 67 THEN SAID JESUS UNTO THE TWELVE, WILL YE ALSO GO AWAY?FL# 68 THEN SIMON PETER ANSWERED HIM, LORD, TO WHOM SHALL WE GO? THOU HAST THE WORDS OF ETERNAL LIFE.BJ# 69 AND WE BELIEVE AND ARE SURE T00*CB<%X>%+%O-%TADATADATAHAT THOU ART THAT CHRIST, THE SON OF THE LIVING GOD.K# 70 JESUS ANSWERED THEM, HAVE NOT I CHOSEN YOU TWELVE, AND ONE OF YOU IS A  DEVIL?TK# 71 HE SPAKE OF JUDAS ISCARIOT THE SON OF SIMON: FOR HE IT WAS THAT SHOULDT% BETRAY HIM, BEING ONE OF THE TWELVE.I = CHAPTER 7 H# 1 AFTER THESE THINGS JESUS WALKED IN GALILEE: FOR HE WOULD NOT WALK IN, JEWRY, BECAUSE THE JEWS SOUGHT TO KILL HIM.2# 2 NOW THE JEWS FEAST OF TABERNACLES WAS AT HAND.L# 3 HIS BRETHREN THEREFORE SAID UNTO HIM, DEPART HENCE, AND GO IN TO JUDAEA,; THAT THY DISCIPLES ALSO MAY SEE THE WORKS THAT THOU DOEST.EF# 4 FOR THERE IS NO MAN THAT DOETH ANY THING IN SECRET, AND HE HIMSELFI SEEKETH TO BE KNOWN OPENLY. IF THOU DO THESE THINGS, SHEW THYSELF TO THE WORLD.I0# 5 FOR NEITHER DID HIS BRETHREN BELIEVE IN HIM.H# 6 THEN JESUS SAID UNTO THEM, MY TIME IS NOT YET COME: BUT YOUR TIME IS ALWAY READY.EI# 7 THE WORLD CANNOT HATE YOU; BUT ME IT HATETH, BECAUSE I TESTIFY OF IT,! THAT THE WORKS THEREOF ARE EVIL.OM# 8 GO YE UP UNTO THIS FEAST: I GO NOT UP YET UNTO THIS FEAST: FOR MY TIME ISW NOT YET FULL COME.EF# 9 WHEN HE HAD SAID THESE WORDS UNTO THEM, HE ABODE STILL IN GALILEE.M# 10 BUT WHEN HIS BRETHREN WERE GONE UP, THEN WENT HE ALSO UP UNTO THE FEAST,W& NOT OPENLY, BUT AS IT WERE IN SECRET.B# 11 THEN THE JEWS SOUGHT HIM AT THE FEAST, AND SAID, WHERE IS HE?K# 12 AND THERE WAS MUCH MURMURING AMONG THE PEOPLE CONCERNING HIM: FOR SOME G SAID, HE IS A GOOD MAN: OTHERS SAID, NAY; BUT HE DECEIVETH THE PEOPLE.=# 13 HOWBEIT NO MAN SPAKE OPENLY OF HIM FOR FEAR OF THE JEWS.FH# 14 NOW ABOUT THE MIDST OF THE FEAST JESUS WENT UP INTO THE TEMPLE, AND TAUGHT.I# 15 AND THE JEWS MARVELLED, SAYING, HOW KNOWETH THIS MAN LETTERS, HAVINGT NEVER LEARNED?TI# 16 JESUS ANSWERED THEM, AND SAID, MY DOCTRINE IS NOT MINE, BUT HIS THATH SENT ME.EK# 17 IF ANY MAN WILL DO HIS WILL, HE SHALL KNOW OF THE DOCTRINE, WHETHER ITE) BE OF GOD, OR WHETHER I SPEAK OF MYSELF.SK# 18 HE THAT SPEAKETH OF HIMSELF SEEKETH HIS OWN GLORY: BUT HE THAT SEEKETH M HIS GLORY THAT SENT HIM, THE SAME IS TRUE, AND NO UNRIGHTEOUSNESS IS IN HIM. M# 19 DID NOT MOSES GIVE YOU THE LAW, AND YET NONE OF YOU KEEPETH THE LAW? WHY, GO YE ABOUT TO KILL ME?M# 20 THE PEOPLE ANSWERED AND SAID, THOU HAST A DEVIL: WHO GOETH ABOUT TO KILLD THEE?H# 21 JESUS ANSWERED AND SAID UNTO THEM, I HAVE DONE ONE WORK, AND YE ALL MARVEL.M# 22 MOSES THEREFORE GAVE UNTO YOU CIRCUMCISION; (NOT BECAUSE IT IS OF MOSES, A BUT OF THE FATHERS;) AND YE ON THE SABBATH DAY CIRCUMCISE A MAN.EL# 23 IF A MAN ON THE SABBATH DAY RECEIVE CIRCUMCISION, THAT THE LAW OF MOSESJ SHOULD NOT BE BROKEN; ARE YE ANGRY AT ME, BECAUSE I HAVE MADE A MAN EVERY WHIT WHOLE ON THE SABBATH DAY?LI# 24 JUDGE NOT ACCORDING TO THE APPEARANCE, BUT JUDGE RIGHTEOUS JUDGMENT. K# 25 THEN SAID SOME OF THEM OF JERUSALEM, IS NOT THIS HE, WHOM THEY SEEK TOK KILL?G# 26 BUT, LO, HE SPEAKETH BOLDLY, AND THEY SAY NOTHING UNTO HIM. DO THEA1 RULERS KNOW INDEED THAT THIS IS THE VERY CHRIST?OJ# 27 HOWBEIT WE KNOW THIS MAN WHENCE HE IS: BUT WHEN CHRIST COMETH, NO MAN KNOWETH WHENCE HE IS.J# 28 THEN CRIED JESUS IN THE TEMPLE AS HE TAUGHT, SAYING, YE BOTH KNOW ME,M AND YE KNOW WHENCE I AM: AND I AM NOT COME OF MYSELF, BUT HE THAT SENT ME ISH TRUE, WHOM YE KNOW NOT.<# 29 BUT I KNOW HIM: FOR I AM FROM HIM, AND HE HATH SENT ME.L# 30 THEN THEY SOUGHT TO TAKE HIM: BUT NO MAN LAID HANDS ON HIM, BECAUSE HIS HOUR WAS NOT YET COME. J# 31 AND MANY OF THE PEOPLE BELIEVED ON HIM, AND SAID, WHEN CHRIST COMETH,> WILL HE DO MORE MIRACLES THAN THESE WHICH THIS MAN HATH DONE?M# 32 THE PHARISEES HEARD THAT THE PEOPLE MURMURED SUCH THINGS CONCERNING HIM;IC AND THE PHARISEES AND THE CHIEF PRIESTS SENT OFFICERS TO TAKE HIM.ML# 33 THEN SAID JESUS UNTO THEM, YET A LITTLE WHILE AM I WITH YOU, AND THEN I GO UNTO HIM THAT SENT ME.H# 34 YE SHALL SEEK ME, AND SHALL NOT FIND ME: AND WHERE I AM, THITHER YE CANNOT COME.SK# 35 THEN SAID THE JEWS AMONG THEMSELVES, WHITHER WILL HE GO, THAT WE SHALLSN NOT FIND HIM? WILL HE GO UNTO THE DISPERSED AMONG THE GENTI002C'AD%5%T6%! !LES, AND TEACH THE GENTILES?L# 36 WHAT MANNER OF SAYING IS THIS THAT HE SAID, YE SHALL SEEK ME, AND SHALL5 NOT FIND ME: AND WHERE I AM, THITHER YE CANNOT COME?TI# 37 IN THE LAST DAY, THAT GREAT DAY OF THE FEAST, JESUS STOOD AND CRIED,Y< SAYING, IF ANY MAN THIRST, LET HIM COME UNTO ME, AND DRINK.J# 38 HE THAT BELIEVETH ON ME, AS THE SCRIPTURE HATH SAID, OUT OF HIS BELLY# SHALL FLOW RIVERS OF LIVING WATER. L# 39 (BUT THIS SPAKE HE OF THE SPIRIT, WHICH THEY THAT BELIEVE ON HIM SHOULDN RECEIVE: FOR THE HOLY GHOST WAS NOT YET GIVEN; BECAUSE THAT JESUS WAS NOT YET GLORIFIED.)J# 40 MANY OF THE PEOPLE THEREFORE, WHEN THEY HEARD THIS SAYING, SAID, OF A TRUTH THIS IS THE PROPHET.TM# 41 OTHERS SAID, THIS IS THE CHRIST. BUT SOME SAID, SHALL CHRIST COME OUT OF GALILEE? J# 42 HATH NOT THE SCRIPTURE SAID, THAT CHRIST COMETH OF THE SEED OF DAVID,3 AND OUT OF THE TOWN OF BETHLEHEM, WHERE DAVID WAS?I=# 43 SO THERE WAS A DIVISION AMONG THE PEOPLE BECAUSE OF HIM. I# 44 AND SOME OF THEM WOULD HAVE TAKEN HIM; BUT NO MAN LAID HANDS ON HIM. M# 45 THEN CAME THE OFFICERS TO THE CHIEF PRIESTS AND PHARISEES; AND THEY SAID,( UNTO THEM, WHY HAVE YE NOT BROUGHT HIM?:# 46 THE OFFICERS ANSWERED, NEVER MAN SPAKE LIKE THIS MAN.<# 47 THEN ANSWERED THEM THE PHARISEES, ARE YE ALSO DECEIVED?@# 48 HAVE ANY OF THE RULERS OR OF THE PHARISEES BELIEVED ON HIM?8# 49 BUT THIS PEOPLE WHO KNOWETH NOT THE LAW ARE CURSED.M# 50 NICODEMUS SAITH UNTO THEM, (HE THAT CAME TO JESUS BY NIGHT, BEING ONE OFS THEM,)EL# 51 DOTH OUR LAW JUDGE ANY MAN, BEFORE IT HEAR HIM, AND KNOW WHAT HE DOETH?K# 52 THEY ANSWERED AND SAID UNTO HIM, ART THOU ALSO OF GALILEE? SEARCH, ANDE- LOOK: FOR OUT OF GALILEE ARISETH NO PROPHET.D+# 53 AND EVERY MAN WENT UNTO HIS OWN HOUSE.N = CHAPTER 8 (# 1 JESUS WENT UNTO THE MOUNT OF OLIVES.G# 2 AND EARLY IN THE MORNING HE CAME AGAIN INTO THE TEMPLE, AND ALL THE 8 PEOPLE CAME UNTO HIM; AND HE SAT DOWN, AND TAUGHT THEM.M# 3 AND THE SCRIBES AND PHARISEES BROUGHT UNTO HIM A WOMAN TAKEN IN ADULTERY;1( AND WHEN THEY HAD SET HER IN THE MIDST,L# 4 THEY SAY UNTO HIM, MASTER, THIS WOMAN WAS TAKEN IN ADULTERY, IN THE VERY ACT.FK# 5 NOW MOSES IN THE LAW COMMANDED US, THAT SUCH SHOULD BE STONED: BUT WHATA SAYEST THOU?NI# 6 THIS THEY SAID, TEMPTING HIM, THAT THEY MIGHT HAVE TO ACCUSE HIM. BUTEJ JESUS STOOPED DOWN, AND WITH HIS FINGER WROTE ON THE GROUND, AS THOUGH HE HEARD THEM NOT.J# 7 SO WHEN THEY CONTINUED ASKING HIM, HE LIFTED UP HIMSELF, AND SAID UNTOK THEM, HE THAT IS WITHOUT SIN AMONG YOU, LET HIM FIRST CAST A STONE AT HER.H7# 8 AND AGAIN HE STOOPED DOWN, AND WROTE ON THE GROUND.AJ# 9 AND THEY WHICH HEARD IT, BEING CONVICTED BY THEIR OWN CONSCIENCE, WENTK OUT ONE BY ONE, BEGINNING AT THE ELDEST, EVEN UNTO THE LAST: AND JESUS WASE1 LEFT ALONE, AND THE WOMAN STANDING IN THE MIDST.EJ# 10 WHEN JESUS HAD LIFTED UP HIMSELF, AND SAW NONE BUT THE WOMAN, HE SAIDM UNTO HER, WOMAN, WHERE ARE THOSE THINE ACCUSERS? HATH NO MAN CONDEMNED THEE?,J# 11 SHE SAID, NO MAN, LORD. AND JESUS SAID UNTO HER, NEITHER DO I CONDEMN THEE: GO, AND SIN NO MORE.IK# 12 THEN SPAKE JESUS AGAIN UNTO THEM, SAYING, I AM THE LIGHT OF THE WORLD:IM HE THAT FOLLOWETH ME SHALL NOT WALK IN DARKNESS, BUT SHALL HAVE THE LIGHT OFL LIFE.K# 13 THE PHARISEES THEREFORE SAID UNTO HIM, THOU BEAREST RECORD OF THYSELF;M THY RECORD IS NOT TRUE.K# 14 JESUS ANSWERED AND SAID UNTO THEM, THOUGH I BEAR RECORD OF MYSELF, YETHM MY RECORD IS TRUE: FOR I KNOW WHENCE I CAME, AND WHITHER I GO; BUT YE CANNOTA& TELL WHENCE I COME, AND WHITHER I GO..# 15 YE JUDGE AFTER THE FLESH; I JUDGE NO MAN.K# 16 AND YET IF I JUDGE, MY JUDGMENT IS TRUE: FOR I AM NOT ALONE, BUT I ANDH THE FATHER THAT SENT ME.OK# 17 IT IS ALSO WRITTEN IN YOUR LAW, THAT THE TESTIMONY OF TWO MEN IS TRUE.TF# 18 I AM ONE THAT BEAR WITNESS OF MYSELF, AND THE FATHER THAT SENT ME BEARETH WITNESS OF ME.SM# 19 THEN SAID THEY UNTO HIM, WHERE IS THY FATHER? JESUS ANSWERED, YE NEITHERRK KNOW ME, NOR MY FATHER: IF YE HAD KNOWN ME, YE SHOULD HAVE KNOWN MY FATHERI ALSO.M# 20 THESE WORDS SPAKE JES00:CB<%X>%+%O-%TADATADATAUS IN THE TREASURY, AS HE TAUGHT IN THE TEMPLE: ANDI9 NO MAN LAID HANDS ON HIM; FOR HIS HOUR WAS NOT YET COME.NL# 21 THEN SAID JESUS AGAIN UNTO THEM, I GO MY WAY, AND YE SHALL SEEK ME, AND6 SHALL DIE IN YOUR SINS: WHITHER I GO, YE CANNOT COME.J# 22 THEN SAID THE JEWS, WILL HE KILL HIMSELF? BECAUSE HE SAITH, WHITHER I GO, YE CANNOT COME.K# 23 AND HE SAID UNTO THEM, YE ARE FROM BENEATH; I AM FROM ABOVE: YE ARE OFE$ THIS WORLD; I AM NOT OF THIS WORLD.I# 24 I SAID THEREFORE UNTO YOU, THAT YE SHALL DIE IN YOUR SINS: FOR IF YEH5 BELIEVE NOT THAT I AM HE, YE SHALL DIE IN YOUR SINS.;K# 25 THEN SAID THEY UNTO HIM, WHO ART THOU? AND JESUS SAITH UNTO THEM, EVENM2 THE SAME THAT I SAID UNTO YOU FROM THE BEGINNING.J# 26 I HAVE MANY THINGS TO SAY AND TO JUDGE OF YOU: BUT HE THAT SENT ME ISG TRUE; AND I SPEAK TO THE WORLD THOSE THINGS WHICH I HAVE HEARD OF HIM.A=# 27 THEY UNDERSTOOD NOT THAT HE SPAKE TO THEM OF THE FATHER.K# 28 THEN SAID JESUS UNTO THEM, WHEN YE HAVE LIFTED UP THE SON OF MAN, THEN N SHALL YE KNOW THAT I AM HE, AND THAT I DO NOTHING OF MYSELF; BUT AS MY FATHER& HATH TAUGHT ME, I SPEAK THESE THINGS.M# 29 AND HE THAT SENT ME IS WITH ME: THE FATHER HATH NOT LEFT ME ALONE; FOR IU( DO ALWAYS THOSE THINGS THAT PLEASE HIM.3# 30 AS HE SPAKE THESE WORDS, MANY BELIEVED ON HIM.SK# 31 THEN SAID JESUS TO THOSE JEWS WHICH BELIEVED ON HIM, IF YE CONTINUE IN * MY WORD, THEN ARE YE MY DISCIPLES INDEED;D# 32 AND YE SHALL KNOW THE TRUTH, AND THE TRUTH SHALL MAKE YOU FREE.M# 33 THEY ANSWERED HIM, WE BE ABRAHAMS SEED, AND WERE NEVER IN BONDAGE TO ANY - MAN: HOW SAYEST THOU, YE SHALL BE MADE FREE?EC# 34 JESUS ANSWERED THEM, VERILY, VERILY, I SAY UNTO YOU, WHOSOEVERH& COMMITTETH SIN IS THE SERVANT OF SIN.K# 35 AND THE SERVANT ABIDETH NOT IN THE HOUSE FOR EVER: BUT THE SON ABIDETHH EVER.G# 36 IF THE SON THEREFORE SHALL MAKE YOU FREE, YE SHALL BE FREE INDEED. I# 37 I KNOW THAT YE ARE ABRAHAMS SEED; BUT YE SEEK TO KILL ME, BECAUSE MYU WORD HATH NO PLACE IN YOU.YK# 38 I SPEAK THAT WHICH I HAVE SEEN WITH MY FATHER: AND YE DO THAT WHICH YEA HAVE SEEN WITH YOUR FATHER.M# 39 THEY ANSWERED AND SAID UNTO HIM, ABRAHAM IS OUR FATHER. JESUS SAITH UNTONF THEM, IF YE WERE ABRAHAMS CHILDREN, YE WOULD DO THE WORKS OF ABRAHAM.L# 40 BUT NOW YE SEEK TO KILL ME, A MAN THAT HATH TOLD YOU THE TRUTH, WHICH I) HAVE HEARD OF GOD: THIS DID NOT ABRAHAM.YM# 41 YE DO THE DEEDS OF YOUR FATHER. THEN SAID THEY TO HIM, WE BE NOT BORN OF + FORNICATION; WE HAVE ONE FATHER, EVEN GOD.YK# 42 JESUS SAID UNTO THEM, IF GOD WERE YOUR FATHER, YE WOULD LOVE ME: FOR IHM PROCEEDED FORTH AND CAME FROM GOD; NEITHER CAME I OF MYSELF, BUT HE SENT ME.AM# 43 WHY DO YE NOT UNDERSTAND MY SPEECH? EVEN BECAUSE YE CANNOT HEAR MY WORD.LJ# 44 YE ARE OF YOUR FATHER THE DEVIL, AND THE LUSTS OF YOUR FATHER YE WILLN DO. HE WAS A MURDERER FROM THE BEGINNING, AND ABODE NOT IN THE TRUTH, BECAUSEN THERE IS NO TRUTH IN HIM. WHEN HE SPEAKETH A LIE, HE SPEAKETH OF HIS OWN: FOR$ HE IS A LIAR, AND THE FATHER OF IT.9# 45 AND BECAUSE I TELL YOU THE TRUTH, YE BELIEVE ME NOT.UM# 46 WHICH OF YOU CONVINCETH ME OF SIN? AND IF I SAY THE TRUTH, WHY DO YE NOTF BELIEVE ME?F# 47 HE THAT IS OF GOD HEARETH GODS WORDS: YE THEREFORE HEAR THEM NOT, BECAUSE YE ARE NOT OF GOD.YM# 48 THEN ANSWERED THE JEWS, AND SAID UNTO HIM, SAY WE NOT WELL THAT THOU ARTR A SAMARITAN, AND HAST A DEVIL?NJ# 49 JESUS ANSWERED, I HAVE NOT A DEVIL; BUT I HONOUR MY FATHER, AND YE DO DISHONOUR ME.J# 50 AND I SEEK NOT MINE OWN GLORY: THERE IS ONE THAT SEEKETH AND JUDGETH.L# 51 VERILY, VERILY, I SAY UNTO YOU, IF A MAN KEEP MY SAYING, HE SHALL NEVER SEE DEATH.EM# 52 THEN SAID THE JEWS UNTO HIM, NOW WE KNOW THAT THOU HAST A DEVIL. ABRAHAM:N IS DEAD, AND THE PROPHETS; AND THOU SAYEST, IF A MAN KEEP MY SAYING, HE SHALL NEVER TASTE OF DEATH.E# 53 ART THOU GREATER THAN OUR FATHER ABRAHAM, WHICH IS DEAD? AND THE - PROPHETS ARE DEAD: WHOM MAKEST THOU THYSELF?NG# 54 JESUS ANSWERED, IF I HONOUR MYSELF, MY HONOUR IS NOTHING: IT IS MYO? FATHER THAT HONOURETH ME; OF WHOM YE SAY, THAT HE IS YOUR G00BC'AD%5%T6%! !OD:IK# 55 YET YE HAVE NOT KNOWN HIM; BUT I KNOW HIM: AND IF I SHOULD SAY, I KNOWEG HIM NOT, I SHALL BE A LIAR LIKE UNTO YOU: BUT I KNOW HIM, AND KEEP HISI SAYING.M# 56 YOUR FATHER ABRAHAM REJOICED TO SEE MY DAY: AND HE SAW IT, AND WAS GLAD.EL# 57 THEN SAID THE JEWS UNTO HIM, THOU ART NOT YET FIFTY YEARS OLD, AND HAST THOU SEEN ABRAHAM?EI# 58 JESUS SAID UNTO THEM, VERILY, VERILY, I SAY UNTO YOU, BEFORE ABRAHAM WAS, I AM.HM# 59 THEN TOOK THEY UP STONES TO CAST AT HIM: BUT JESUS HID HIMSELF, AND WENTIF OUT OF THE TEMPLE, GOING THROUGH THE MIDST OF THEM, AND SO PASSED BY. = CHAPTER 9 H# 1 AND AS JESUS PASSED BY, HE SAW A MAN WHICH WAS BLIND FROM HIS BIRTH.J# 2 AND HIS DISCIPLES ASKED HIM, SAYING, MASTER, WHO DID SIN, THIS MAN, OR% HIS PARENTS, THAT HE WAS BORN BLIND?MK# 3 JESUS ANSWERED, NEITHER HATH THIS MAN SINNED, NOR HIS PARENTS: BUT THATS1 THE WORKS OF GOD SHOULD BE MADE MANIFEST IN HIM.FI# 4 I MUST WORK THE WORKS OF HIM THAT SENT ME, WHILE IT IS DAY: THE NIGHTU COMETH, WHEN NO MAN CAN WORK.># 5 AS LONG AS I AM IN THE WORLD, I AM THE LIGHT OF THE WORLD.H# 6 WHEN HE HAD THUS SPOKEN, HE SPAT ON THE GROUND, AND MADE CLAY OF THEB SPITTLE, AND HE ANOINTED THE EYES OF THE BLIND MAN WITH THE CLAY,C# 7 AND SAID UNTO HIM, GO, WASH IN THE POOL OF SILOAM, (WHICH IS BYG INTERPRETATION, SENT.) HE WENT HIS WAY THEREFORE, AND WASHED, AND CAMEA SEEING.L# 8 THE NEIGHBOURS THEREFORE, AND THEY WHICH BEFORE HAD SEEN HIM THAT HE WAS1 BLIND, SAID, IS NOT THIS HE THAT SAT AND BEGGED?,M# 9 SOME SAID, THIS IS HE: OTHERS SAID, HE IS LIKE HIM: BUT HE SAID, I AM HE. ># 10 THEREFORE SAID THEY UNTO HIM, HOW WERE THINE EYES OPENED?M# 11 HE ANSWERED AND SAID, A MAN THAT IS CALLED JESUS MADE CLAY, AND ANOINTEDCL MINE EYES, AND SAID UNTO ME, GO TO THE POOL OF SILOAM, AND WASH: AND I WENT" AND WASHED, AND I RECEIVED SIGHT.?# 12 THEN SAID THEY UNTO HIM, WHERE IS HE? HE SAID, I KNOW NOT.T@# 13 THEY BROUGHT TO THE PHARISEES HIM THAT AFORETIME WAS BLIND.H# 14 AND IT WAS THE SABBATH DAY WHEN JESUS MADE THE CLAY, AND OPENED HIS EYES.K# 15 THEN AGAIN THE PHARISEES ALSO ASKED HIM HOW HE HAD RECEIVED HIS SIGHT.HI HE SAID UNTO THEM, HE PUT CLAY UPON MINE EYES, AND I WASHED, AND DO SEE. M# 16 THEREFORE SAID SOME OF THE PHARISEES, THIS MAN IS NOT OF GOD, BECAUSE HE L KEEPETH NOT THE SABBATH DAY. OTHERS SAID, HOW CAN A MAN THAT IS A SINNER DO4 SUCH MIRACLES? AND THERE WAS A DIVISION AMONG THEM.M# 17 THEY SAY UNTO THE BLIND MAN AGAIN, WHAT SAYEST THOU OF HIM, THAT HE HATHA- OPENED THINE EYES? HE SAID, HE IS A PROPHET. M# 18 BUT THE JEWS DID NOT BELIEVE CONCERNING HIM, THAT HE HAD BEEN BLIND, ANDEK RECEIVED HIS SIGHT, UNTIL THEY CALLED THE PARENTS OF HIM THAT HAD RECEIVEDD HIS SIGHT. G# 19 AND THEY ASKED THEM, SAYING, IS THIS YOUR SON, WHO YE SAY WAS BORNU! BLIND? HOW THEN DOTH HE NOW SEE?YJ# 20 HIS PARENTS ANSWERED THEM AND SAID, WE KNOW THAT THIS IS OUR SON, AND THAT HE WAS BORN BLIND:H# 21 BUT BY WHAT MEANS HE NOW SEETH, WE KNOW NOT; OR WHO HATH OPENED HISF EYES, WE KNOW NOT: HE IS OF AGE; ASK HIM: HE SHALL SPEAK FOR HIMSELF.I# 22 THESE WORDS SPAKE HIS PARENTS, BECAUSE THEY FEARED THE JEWS: FOR THEIL JEWS HAD AGREED ALREADY, THAT IF ANY MAN DID CONFESS THAT HE WAS CHRIST, HE$ SHOULD BE PUT OUT OF THE SYNAGOGUE.7# 23 THEREFORE SAID HIS PARENTS, HE IS OF AGE; ASK HIM.TK# 24 THEN AGAIN CALLED THEY THE MAN THAT WAS BLIND, AND SAID UNTO HIM, GIVE 3 GOD THE PRAISE: WE KNOW THAT THIS MAN IS A SINNER.HH# 25 HE ANSWERED AND SAID, WHETHER HE BE A SINNER OR NO, I KNOW NOT: ONE4 THING I KNOW, THAT, WHEREAS I WAS BLIND, NOW I SEE.J# 26 THEN SAID THEY TO HIM AGAIN, WHAT DID HE TO THEE? HOW OPENED HE THINE EYES?D# 27 HE ANSWERED THEM, I HAVE TOLD YOU ALREADY, AND YE DID NOT HEAR:A WHEREFORE WOULD YE HEAR IT AGAIN? WILL YE ALSO BE HIS DISCIPLES?AM# 28 THEN THEY REVILED HIM, AND SAID, THOU ART HIS DISCIPLE; BUT WE ARE MOSESI DISCIPLES.UL# 29 WE KNOW THAT GOD SPAKE UNTO MOSES: AS FOR THIS FELLOW, WE KNOW NOT FROM WHENCE HE IS.K# 30 THE MAN ANSWERED AND SAID UNTO THEM, WHY HEREIN IS A MARVELLOUS THING,SF00JCB<%X>%+%O-%TADATADATA THAT YE KNOW NOT FROM WHENCE HE IS, AND YET HE HATH OPENED MINE EYES.M# 31 NOW WE KNOW THAT GOD HEARETH NOT SINNERS: BUT IF ANY MAN BE A WORSHIPPERR, OF GOD, AND DOETH HIS WILL, HIM HE HEARETH.K# 32 SINCE THE WORLD BEGAN WAS IT NOT HEARD THAT ANY MAN OPENED THE EYES OF  ONE THAT WAS BORN BLIND.I6# 33 IF THIS MAN WERE NOT OF GOD, HE COULD DO NOTHING.L# 34 THEY ANSWERED AND SAID UNTO HIM, THOU WAST ALTOGETHER BORN IN SINS, AND+ DOST THOU TEACH US? AND THEY CAST HIM OUT.EJ# 35 JESUS HEARD THAT THEY HAD CAST HIM OUT; AND WHEN HE HAD FOUND HIM, HE4 SAID UNTO HIM, DOST THOU BELIEVE ON THE SON OF GOD?H# 36 HE ANSWERED AND SAID, WHO IS HE, LORD, THAT I MIGHT BELIEVE ON HIM?H# 37 AND JESUS SAID UNTO HIM, THOU HAST BOTH SEEN HIM, AND IT IS HE THAT TALKETH WITH THEE.S9# 38 AND HE SAID, LORD, I BELIEVE. AND HE WORSHIPPED HIM. L# 39 AND JESUS SAID, FOR JUDGMENT I AM COME INTO THIS WORLD, THAT THEY WHICH@ SEE NOT MIGHT SEE; AND THAT THEY WHICH SEE MIGHT BE MADE BLIND.I# 40 AND SOME OF THE PHARISEES WHICH WERE WITH HIM HEARD THESE WORDS, ANDD" SAID UNTO HIM, ARE WE BLIND ALSO?K# 41 JESUS SAID UNTO THEM, IF YE WERE BLIND, YE SHOULD HAVE NO SIN: BUT NOWI. YE SAY, WE SEE; THEREFORE YOUR SIN REMAINETH. = CHAPTER 10 M# 1 VERILY, VERILY, I SAY UNTO YOU, HE THAT ENTERETH NOT BY THE DOOR INTO THE M SHEEPFOLD, BUT CLIMBETH UP SOME OTHER WAY, THE SAME IS A THIEF AND A ROBBER. E# 2 BUT HE THAT ENTERETH IN BY THE DOOR IS THE SHEPHERD OF THE SHEEP.CK# 3 TO HIM THE PORTER OPENETH; AND THE SHEEP HEAR HIS VOICE: AND HE CALLETHM- HIS OWN SHEEP BY NAME, AND LEADETH THEM OUT.EJ# 4 AND WHEN HE PUTTETH FORTH HIS OWN SHEEP, HE GOETH BEFORE THEM, AND THE+ SHEEP FOLLOW HIM: FOR THEY KNOW HIS VOICE.UI# 5 AND A STRANGER WILL THEY NOT FOLLOW, BUT WILL FLEE FROM HIM: FOR THEYA! KNOW NOT THE VOICE OF STRANGERS. K# 6 THIS PARABLE SPAKE JESUS UNTO THEM: BUT THEY UNDERSTOOD NOT WHAT THINGSR$ THEY WERE WHICH HE SPAKE UNTO THEM.M# 7 THEN SAID JESUS UNTO THEM AGAIN, VERILY, VERILY, I SAY UNTO YOU, I AM THEE DOOR OF THE SHEEP.DK# 8 ALL THAT EVER CAME BEFORE ME ARE THIEVES AND ROBBERS: BUT THE SHEEP DID  NOT HEAR THEM. M# 9 I AM THE DOOR: BY ME IF ANY MAN ENTER IN, HE SHALL BE SAVED, AND SHALL GOV IN AND OUT, AND FIND PASTURE.K# 10 THE THIEF COMETH NOT, BUT FOR TO STEAL, AND TO KILL, AND TO DESTROY: IRD AM COME THAT THEY MIGHT HAVE LIFE, AND THAT THEY MIGHT HAVE IT MORE ABUNDANTLY.M# 11 I AM THE GOOD SHEPHERD: THE GOOD SHEPHERD GIVETH HIS LIFE FOR THE SHEEP.VJ# 12 BUT HE THAT IS AN HIRELING, AND NOT THE SHEPHERD, WHOSE OWN THE SHEEPK ARE NOT, SEETH THE WOLF COMING, AND LEAVETH THE SHEEP, AND FLEETH: AND THEH. WOLF CATCHETH THEM, AND SCATTERETH THE SHEEP.K# 13 THE HIRELING FLEETH, BECAUSE HE IS AN HIRELING, AND CARETH NOT FOR THEE SHEEP.ME# 14 I AM THE GOOD SHEPHERD, AND KNOW MY SHEEP, AND AM KNOWN OF MINE.AK# 15 AS THE FATHER KNOWETH ME, EVEN SO KNOW I THE FATHER: AND I LAY DOWN MYI LIFE FOR THE SHEEP.I# 16 AND OTHER SHEEP I HAVE, WHICH ARE NOT OF THIS FOLD: THEM ALSO I MUSTHJ BRING, AND THEY SHALL HEAR MY VOICE; AND THERE SHALL BE ONE FOLD, AND ONE SHEPHERD.I# 17 THEREFORE DOTH MY FATHER LOVE ME, BECAUSE I LAY DOWN MY LIFE, THAT IT MIGHT TAKE IT AGAIN.HK# 18 NO MAN TAKETH IT FROM ME, BUT I LAY IT DOWN OF MYSELF. I HAVE POWER TOH LAY IT DOWN, AND I HAVE POWER TO TAKE IT AGAIN. THIS COMMANDMENT HAVE I RECEIVED OF MY FATHER.MK# 19 THERE WAS A DIVISION THEREFORE AGAIN AMONG THE JEWS FOR THESE SAYINGS.AI# 20 AND MANY OF THEM SAID, HE HATH A DEVIL, AND IS MAD; WHY HEAR YE HIM?GI# 21 OTHERS SAID, THESE ARE NOT THE WORDS OF HIM THAT HATH A DEVIL. CAN AH" DEVIL OPEN THE EYES OF THE BLIND?L# 22 AND IT WAS AT JERUSALEM THE FEAST OF THE DEDICATION, AND IT WAS WINTER.6# 23 AND JESUS WALKED IN THE TEMPLE IN SOLOMONS PORCH.I# 24 THEN CAME THE JEWS ROUND ABOUT HIM, AND SAID UNTO HIM, HOW LONG DOSTM? THOU MAKE US TO DOUBT? IF THOU BE THE CHRIST, TELL US PLAINLY.HK# 25 JESUS ANSWERED THEM, I TOLD YOU, AND YE BELIEVED NOT: THE WORKS THAT I 0 DO IN MY FATHERS NAME, THEY BEAR WITNESS OF ME.L# 26 BUT YE BELIEVE 00RC'AD%5%T6%! !NOT, BECAUSE YE ARE NOT OF MY SHEEP, AS I SAID UNTO YOU.A# 27 MY SHEEP HEAR MY VOICE, AND I KNOW THEM, AND THEY FOLLOW ME:AL# 28 AND I GIVE UNTO THEM ETERNAL LIFE; AND THEY SHALL NEVER PERISH, NEITHER) SHALL ANY MAN PLUCK THEM OUT OF MY HAND. K# 29 MY FATHER, WHICH GAVE THEM ME, IS GREATER THAN ALL; AND NO MAN IS ABLEF& TO PLUCK THEM OUT OF MY FATHERS HAND.# 30 I AND MY FATHER ARE ONE.D5# 31 THEN THE JEWS TOOK UP STONES AGAIN TO STONE HIM. K# 32 JESUS ANSWERED THEM, MANY GOOD WORKS HAVE I SHEWED YOU FROM MY FATHER;R) FOR WHICH OF THOSE WORKS DO YE STONE ME?7J# 33 THE JEWS ANSWERED HIM, SAYING, FOR A GOOD WORK WE STONE THEE NOT; BUTG FOR BLASPHEMY; AND BECAUSE THAT THOU, BEING A MAN, MAKEST THYSELF GOD.AM# 34 JESUS ANSWERED THEM, IS IT NOT WRITTEN IN YOUR LAW, I SAID, YE ARE GODS?TD# 35 IF HE CALLED THEM GODS, UNTO WHOM THE WORD OF GOD CAME, AND THE SCRIPTURE CANNOT BE BROKEN;M# 36 SAY YE OF HIM, WHOM THE FATHER HATH SANCTIFIED, AND SENT INTO THE WORLD,E7 THOU BLASPHEMEST; BECAUSE I SAID, I AM THE SON OF GOD?R8# 37 IF I DO NOT THE WORKS OF MY FATHER, BELIEVE ME NOT.J# 38 BUT IF I DO, THOUGH YE BELIEVE NOT ME, BELIEVE THE WORKS: THAT YE MAY; KNOW, AND BELIEVE, THAT THE FATHER IS IN ME, AND I IN HIM.I# 39 THEREFORE THEY SOUGHT AGAIN TO TAKE HIM: BUT HE ESCAPED OUT OF THEIRS HAND,I# 40 AND WENT AWAY AGAIN BEYOND JORDAN INTO THE PLACE WHERE JOHN AT FIRSTE BAPTIZED; AND THERE HE ABODE.G# 41 AND MANY RESORTED UNTO HIM, AND SAID, JOHN DID NO MIRACLE: BUT ALL . THINGS THAT JOHN SPAKE OF THIS MAN WERE TRUE.$# 42 AND MANY BELIEVED ON HIM THERE. = CHAPTER 11 MK# 1 NOW A CERTAIN MAN WAS SICK, NAMED LAZARUS, OF BETHANY, THE TOWN OF MARYE AND HER SISTER MARTHA. J# 2 (IT WAS THAT MARY WHICH ANOINTED THE LORD WITH OINTMENT, AND WIPED HIS5 FEET WITH HER HAIR, WHOSE BROTHER LAZARUS WAS SICK.)AK# 3 THEREFORE HIS SISTERS SENT UNTO HIM, SAYING, LORD, BEHOLD, HE WHOM THOUE LOVEST IS SICK.L# 4 WHEN JESUS HEARD THAT, HE SAID, THIS SICKNESS IS NOT UNTO DEATH, BUT FORB THE GLORY OF GOD, THAT THE SON OF GOD MIGHT BE GLORIFIED THEREBY.8# 5 NOW JESUS LOVED MARTHA, AND HER SISTER, AND LAZARUS.L# 6 WHEN HE HAD HEARD THEREFORE THAT HE WAS SICK, HE ABODE TWO DAYS STILL IN THE SAME PLACE WHERE HE WAS. K# 7 THEN AFTER THAT SAITH HE TO HIS DISCIPLES, LET US GO INTO JUDAEA AGAIN.OH# 8 HIS DISCIPLES SAY UNTO HIM, MASTER, THE JEWS OF LATE SOUGHT TO STONE' THEE; AND GOEST THOU THITHER AGAIN? ITSM# 9 JESUS ANSWERED, ARE THERE NOT TWELVE HOURS IN THE DAY? IF ANY MAN WALK INFE THE DAY, HE STUMBLETH NOT, BECAUSE HE SEETH THE LIGHT OF THIS WORLD.L# 10 BUT IF A MAN WALK IN THE NIGHT, HE STUMBLETH, BECAUSE THERE IS NO LIGHT IN HIM.H# 11 THESE THINGS SAID HE: AND AFTER THAT HE SAITH UNTO THEM, OUR FRIEND? LAZARUS SLEEPETH; BUT I GO, THAT I MAY AWAKE HIM OUT OF SLEEP.TB# 12 THEN SAID HIS DISCIPLES, LORD, IF HE SLEEP, HE SHALL DO WELL.M# 13 HOWBEIT JESUS SPAKE OF HIS DEATH: BUT THEY THOUGHT THAT HE HAD SPOKEN OFW TAKING OF REST IN SLEEP.H8# 14 THEN SAID JESUS UNTO THEM PLAINLY, LAZARUS IS DEAD.L# 15 AND I AM GLAD FOR YOUR SAKES THAT I WAS NOT THERE, TO THE INTENT YE MAY* BELIEVE; NEVERTHELESS LET US GO UNTO HIM.M# 16 THEN SAID THOMAS, WHICH IS CALLED DIDYMUS, UNTO HIS FELLOWDISCIPLES, LET & US ALSO GO, THAT WE MAY DIE WITH HIM.K# 17 THEN WHEN JESUS CAME, HE FOUND THAT HE HAD LAIN IN THE GRAVE FOUR DAYSH ALREADY. E# 18 NOW BETHANY WAS NIGH UNTO JERUSALEM, ABOUT FIFTEEN FURLONGS OFF: M# 19 AND MANY OF THE JEWS CAME TO MARTHA AND MARY, TO COMFORT THEM CONCERNINGH THEIR BROTHER.UJ# 20 THEN MARTHA, AS SOON AS SHE HEARD THAT JESUS WAS COMING, WENT AND MET& HIM: BUT MARY SAT STILL IN THE HOUSE.K# 21 THEN SAID MARTHA UNTO JESUS, LORD, IF THOU HADST BEEN HERE, MY BROTHERL HAD NOT DIED.I# 22 BUT I KNOW, THAT EVEN NOW, WHATSOEVER THOU WILT ASK OF GOD, GOD WILLO GIVE IT THEE.8# 23 JESUS SAITH UNTO HER, THY BROTHER SHALL RISE AGAIN.B# 24 MARTHA SAITH UNTO HIM, I KNOW THAT HE SHALL RISE AGAIN IN THE RESURRECTION AT THE LAST DAY.F# 25 JESUS SAID UNTO HER, I AM THE RESURRECTION, AND THE LIFE: HE THAT900ZCB<%X>%+%O-%TADATADATA BELIEVETH IN ME, THOUGH HE WERE DEAD, YET SHALL HE LIVE:HM# 26 AND WHOSOEVER LIVETH AND BELIEVETH IN ME SHALL NEVER DIE. BELIEVEST THOUF THIS?K# 27 SHE SAITH UNTO HIM, YEA, LORD: I BELIEVE THAT THOU ART THE CHRIST, THEH. SON OF GOD, WHICH SHOULD COME INTO THE WORLD.K# 28 AND WHEN SHE HAD SO SAID, SHE WENT HER WAY, AND CALLED MARY HER SISTERH< SECRETLY, SAYING, THE MASTER IS COME, AND CALLETH FOR THEE.E# 29 AS SOON AS SHE HEARD THAT, SHE AROSE QUICKLY, AND CAME UNTO HIM.TJ# 30 NOW JESUS WAS NOT YET COME INTO THE TOWN, BUT WAS IN THAT PLACE WHERE MARTHA MET HIM.L# 31 THE JEWS THEN WHICH WERE WITH HER IN THE HOUSE, AND COMFORTED HER, WHENL THEY SAW MARY, THAT SHE ROSE UP HASTILY AND WENT OUT, FOLLOWED HER, SAYING,( SHE GOETH UNTO THE GRAVE TO WEEP THERE.K# 32 THEN WHEN MARY WAS COME WHERE JESUS WAS, AND SAW HIM, SHE FELL DOWN ATRM HIS FEET, SAYING UNTO HIM, LORD, IF THOU HADST BEEN HERE, MY BROTHER HAD NOT  DIED.J# 33 WHEN JESUS THEREFORE SAW HER WEEPING, AND THE JEWS ALSO WEEPING WHICH; CAME WITH HER, HE GROANED IN THE SPIRIT, AND WAS TROUBLED.HI# 34 AND SAID, WHERE HAVE YE LAID HIM? THEY SAID UNTO HIM, LORD, COME ANDT SEE. # 35 JESUS WEPT.1# 36 THEN SAID THE JEWS, BEHOLD HOW HE LOVED HIM! L# 37 AND SOME OF THEM SAID, COULD NOT THIS MAN, WHICH OPENED THE EYES OF THE< BLIND, HAVE CAUSED THAT EVEN THIS MAN SHOULD NOT HAVE DIED?I# 38 JESUS THEREFORE AGAIN GROANING IN HIMSELF COMETH TO THE GRAVE. WAS AD CAVE, AND A STONE LAY UPON IT.AK# 39 JESUS SAID, TAKE YE AWAY THE STONE. MARTHA, THE SISTER OF HIM THAT WAS L DEAD, SAITH UNTO HIM, LORD, BY THIS TIME HE STINKETH: FOR HE HATH BEEN DEAD FOUR DAYS.LG# 40 JESUS SAITH UNTO HER, SAID I NOT UNTO THEE, THAT, IF THOU WOULDEST . BELIEVE, THOU SHOULDEST SEE THE GLORY OF GOD?J# 41 THEN THEY TOOK AWAY THE STONE FROM THE PLACE WHERE THE DEAD WAS LAID.L AND JESUS LIFTED UP HIS EYES, AND SAID, FATHER, I THANK THEE THAT THOU HAST HEARD ME.L# 42 AND I KNEW THAT THOU HEAREST ME ALWAYS: BUT BECAUSE OF THE PEOPLE WHICHB STAND BY I SAID IT, THAT THEY MAY BELIEVE THAT THOU HAST SENT ME.K# 43 AND WHEN HE THUS HAD SPOKEN, HE CRIED WITH A LOUD VOICE, LAZARUS, COMEL FORTH.SL# 44 AND HE THAT WAS DEAD CAME FORTH, BOUND HAND AND FOOT WITH GRAVECLOTHES:N AND HIS FACE WAS BOUND ABOUT WITH A NAPKIN. JESUS SAITH UNTO THEM, LOOSE HIM, AND LET HIM GO.L# 45 THEN MANY OF THE JEWS WHICH CAME TO MARY, AND HAD SEEN THE THINGS WHICH JESUS DID, BELIEVED ON HIM.J# 46 BUT SOME OF THEM WENT THEIR WAYS TO THE PHARISEES, AND TOLD THEM WHAT THINGS JESUS HAD DONE.HK# 47 THEN GATHERED THE CHIEF PRIESTS AND THE PHARISEES A COUNCIL, AND SAID,C. WHAT DO WE? FOR THIS MAN DOETH MANY MIRACLES.J# 48 IF WE LET HIM THUS ALONE, ALL MEN WILL BELIEVE ON HIM: AND THE ROMANS4 SHALL COME AND TAKE AWAY BOTH OUR PLACE AND NATION.K# 49 AND ONE OF THEM, NAMED CAIAPHAS, BEING THE HIGH PRIEST THAT SAME YEAR,I( SAID UNTO THEM, YE KNOW NOTHING AT ALL,J# 50 NOR CONSIDER THAT IT IS EXPEDIENT FOR US, THAT ONE MAN SHOULD DIE FOR2 THE PEOPLE, AND THAT THE WHOLE NATION PERISH NOT.J# 51 AND THIS SPAKE HE NOT OF HIMSELF: BUT BEING HIGH PRIEST THAT YEAR, HE2 PROPHESIED THAT JESUS SHOULD DIE FOR THAT NATION;M# 52 AND NOT FOR THAT NATION ONLY, BUT THAT ALSO HE SHOULD GATHER TOGETHER INA4 ONE THE CHILDREN OF GOD THAT WERE SCATTERED ABROAD.J# 53 THEN FROM THAT DAY FORTH THEY TOOK COUNSEL TOGETHER FOR TO PUT HIM TO DEATH.IJ# 54 JESUS THEREFORE WALKED NO MORE OPENLY AMONG THE JEWS; BUT WENT THENCEM UNTO A COUNTRY NEAR TO THE WILDERNESS, INTO A CITY CALLED EPHRAIM, AND THERER CONTINUED WITH HIS DISCIPLES.M# 55 AND THE JEWS PASSOVER WAS NIGH AT HAND: AND MANY WENT OUT OF THE COUNTRYO; UP TO JERUSALEM BEFORE THE PASSOVER, TO PURIFY THEMSELVES.BM# 56 THEN SOUGHT THEY FOR JESUS, AND SPAKE AMONG THEMSELVES, AS THEY STOOD INS? THE TEMPLE, WHAT THINK YE, THAT HE WILL NOT COME TO THE FEAST? J# 57 NOW BOTH THE CHIEF PRIESTS AND THE PHARISEES HAD GIVEN A COMMANDMENT,M THAT, IF ANY MAN KNEW WHERE HE WERE, HE SHOULD SHEW IT, THAT THEY MIGHT TAKEN HIM.T = CHAPTER 12 MJ# 1 THEN JESUS SIX DAYS 00bC'AD%5%T6%! !BEFORE THE PASSOVER CAME TO BETHANY, WHERE LAZARUS8 WAS, WHICH HAD BEEN DEAD, WHOM HE RAISED FROM THE DEAD.K# 2 THERE THEY MADE HIM A SUPPER; AND MARTHA SERVED: BUT LAZARUS WAS ONE OFO% THEM THAT SAT AT THE TABLE WITH HIM. E# 3 THEN TOOK MARY A POUND OF OINTMENT OF SPIKENARD, VERY COSTLY, ANDEL ANOINTED THE FEET OF JESUS, AND WIPED HIS FEET WITH HER HAIR: AND THE HOUSE+ WAS FILLED WITH THE ODOUR OF THE OINTMENT. M# 4 THEN SAITH ONE OF HIS DISCIPLES, JUDAS ISCARIOT, SIMONS SON, WHICH SHOULDS BETRAY HIM,L# 5 WHY WAS NOT THIS OINTMENT SOLD FOR THREE HUNDRED PENCE, AND GIVEN TO THE POOR?M# 6 THIS HE SAID, NOT THAT HE CARED FOR THE POOR; BUT BECAUSE HE WAS A THIEF,Z0 AND HAD THE BAG, AND BARE WHAT WAS PUT THEREIN.J# 7 THEN SAID JESUS, LET HER ALONE: AGAINST THE DAY OF MY BURYING HATH SHE KEPT THIS. D# 8 FOR THE POOR ALWAYS YE HAVE WITH YOU; BUT ME YE HAVE NOT ALWAYS.K# 9 MUCH PEOPLE OF THE JEWS THEREFORE KNEW THAT HE WAS THERE: AND THEY CAMEEK NOT FOR JESUS SAKE ONLY, BUT THAT THEY MIGHT SEE LAZARUS ALSO, WHOM HE HADH RAISED FROM THE DEAD.H# 10 BUT THE CHIEF PRIESTS CONSULTED THAT THEY MIGHT PUT LAZARUS ALSO TO DEATH; K# 11 BECAUSE THAT BY REASON OF HIM MANY OF THE JEWS WENT AWAY, AND BELIEVEDU ON JESUS.M# 12 ON THE NEXT DAY MUCH PEOPLE THAT WERE COME TO THE FEAST, WHEN THEY HEARDP$ THAT JESUS WAS COMING TO JERUSALEM,H# 13 TOOK BRANCHES OF PALM TREES, AND WENT FORTH TO MEET HIM, AND CRIED,L HOSANNA: BLESSED IS THE KING OF ISRAEL THAT COMETH IN THE NAME OF THE LORD.M# 14 AND JESUS, WHEN HE HAD FOUND A YOUNG ASS, SAT THEREON; AS IT IS WRITTEN,TL# 15 FEAR NOT, DAUGHTER OF SION: BEHOLD, THY KING COMETH, SITTING ON AN ASSS COLT.K# 16 THESE THINGS UNDERSTOOD NOT HIS DISCIPLES AT THE FIRST: BUT WHEN JESUSK WAS GLORIFIED, THEN REMEMBERED THEY THAT THESE THINGS WERE WRITTEN OF HIM,P. AND THAT THEY HAD DONE THESE THINGS UNTO HIM.M# 17 THE PEOPLE THEREFORE THAT WAS WITH HIM WHEN HE CALLED LAZARUS OUT OF HISS2 GRAVE, AND RAISED HIM FROM THE DEAD, BARE RECORD.L# 18 FOR THIS CAUSE THE PEOPLE ALSO MET HIM, FOR THAT THEY HEARD THAT HE HAD DONE THIS MIRACLE.AF# 19 THE PHARISEES THEREFORE SAID AMONG THEMSELVES, PERCEIVE YE HOW YE6 PREVAIL NOTHING? BEHOLD, THE WORLD IS GONE AFTER HIM.L# 20 AND THERE WERE CERTAIN GREEKS AMONG THEM THAT CAME UP TO WORSHIP AT THE FEAST: J# 21 THE SAME CAME THEREFORE TO PHILIP, WHICH WAS OF BETHSAIDA OF GALILEE,2 AND DESIRED HIM, SAYING, SIR, WE WOULD SEE JESUS.G# 22 PHILIP COMETH AND TELLETH ANDREW: AND AGAIN ANDREW AND PHILIP TELL8 JESUS. K# 23 AND JESUS ANSWERED THEM, SAYING, THE HOUR IS COME, THAT THE SON OF MANR SHOULD BE GLORIFIED.EI# 24 VERILY, VERILY, I SAY UNTO YOU, EXCEPT A CORN OF WHEAT FALL INTO THEEH GROUND AND DIE, IT ABIDETH ALONE: BUT IF IT DIE, IT BRINGETH FORTH MUCH FRUIT.HJ# 25 HE THAT LOVETH HIS LIFE SHALL LOSE IT; AND HE THAT HATETH HIS LIFE IN, THIS WORLD SHALL KEEP IT UNTO LIFE ETERNAL.M# 26 IF ANY MAN SERVE ME, LET HIM FOLLOW ME; AND WHERE I AM, THERE SHALL ALSOD? MY SERVANT BE: IF ANY MAN SERVE ME, HIM WILL MY FATHER HONOUR.AM# 27 NOW IS MY SOUL TROUBLED; AND WHAT SHALL I SAY? FATHER, SAVE ME FROM THISI0 HOUR: BUT FOR THIS CAUSE CAME I UNTO THIS HOUR.M# 28 FATHER, GLORIFY THY NAME. THEN CAME THERE A VOICE FROM HEAVEN, SAYING, IE3 HAVE BOTH GLORIFIED IT, AND WILL GLORIFY IT AGAIN.TD# 29 THE PEOPLE THEREFORE, THAT STOOD BY, AND HEARD IT, SAID THAT IT/ THUNDERED: OTHERS SAID, AN ANGEL SPAKE TO HIM. M# 30 JESUS ANSWERED AND SAID, THIS VOICE CAME NOT BECAUSE OF ME, BUT FOR YOUR  SAKES.NM# 31 NOW IS THE JUDGMENT OF THIS WORLD: NOW SHALL THE PRINCE OF THIS WORLD BES CAST OUT.H# 32 AND I, IF I BE LIFTED UP FROM THE EARTH, WILL DRAW ALL MEN UNTO ME.7# 33 THIS HE SAID, SIGNIFYING WHAT DEATH HE SHOULD DIE.EF# 34 THE PEOPLE ANSWERED HIM, WE HAVE HEARD OUT OF THE LAW THAT CHRISTM ABIDETH FOR EVER: AND HOW SAYEST THOU, THE SON OF MAN MUST BE LIFTED UP? WHOT IS THIS SON OF MAN?I# 35 THEN JESUS SAID UNTO THEM, YET A LITTLE WHILE IS THE LIGHT WITH YOU. G WALK WHILE YE HAVE THE LIGHT, LEST DARKNESS COME UPON YOU: FOR HE THA00jCB<%X>%+%O-%TADATADATATW2 WALKETH IN DARKNESS KNOWETH NOT WHITHER HE GOETH.K# 36 WHILE YE HAVE LIGHT, BELIEVE IN THE LIGHT, THAT YE MAY BE THE CHILDREN.L OF LIGHT. THESE THINGS SPAKE JESUS, AND DEPARTED, AND DID HIDE HIMSELF FROM THEM.K# 37 BUT THOUGH HE HAD DONE SO MANY MIRACLES BEFORE THEM, YET THEY BELIEVEDS NOT ON HIM:G# 38 THAT THE SAYING OF ESAIAS THE PROPHET MIGHT BE FULFILLED, WHICH HEAK SPAKE, LORD, WHO HATH BELIEVED OUR REPORT? AND TO WHOM HATH THE ARM OF THE  LORD BEEN REVEALED?F# 39 THEREFORE THEY COULD NOT BELIEVE, BECAUSE THAT ESAIAS SAID AGAIN,K# 40 HE HATH BLINDED THEIR EYES, AND HARDENED THEIR HEART; THAT THEY SHOULDEL NOT SEE WITH THEIR EYES, NOR UNDERSTAND WITH THEIR HEART, AND BE CONVERTED, AND I SHOULD HEAL THEM.G# 41 THESE THINGS SAID ESAIAS, WHEN HE SAW HIS GLORY, AND SPAKE OF HIM.NG# 42 NEVERTHELESS AMONG THE CHIEF RULERS ALSO MANY BELIEVED ON HIM; BUT,K BECAUSE OF THE PHARISEES THEY DID NOT CONFESS HIM, LEST THEY SHOULD BE PUTA OUT OF THE SYNAGOGUE:B# 43 FOR THEY LOVED THE PRAISE OF MEN MORE THAN THE PRAISE OF GOD.L# 44 JESUS CRIED AND SAID, HE THAT BELIEVETH ON ME, BELIEVETH NOT ON ME, BUT ON HIM THAT SENT ME.W1# 45 AND HE THAT SEETH ME SEETH HIM THAT SENT ME.DL# 46 I AM COME A LIGHT INTO THE WORLD, THAT WHOSOEVER BELIEVETH ON ME SHOULD NOT ABIDE IN DARKNESS.KJ# 47 AND IF ANY MAN HEAR MY WORDS, AND BELIEVE NOT, I JUDGE HIM NOT: FOR I4 CAME NOT TO JUDGE THE WORLD, BUT TO SAVE THE WORLD.L# 48 HE THAT REJECTETH ME, AND RECEIVETH NOT MY WORDS, HATH ONE THAT JUDGETHL HIM: THE WORD THAT I HAVE SPOKEN, THE SAME SHALL JUDGE HIM IN THE LAST DAY.K# 49 FOR I HAVE NOT SPOKEN OF MYSELF; BUT THE FATHER WHICH SENT ME, HE GAVEA> ME A COMMANDMENT, WHAT I SHOULD SAY, AND WHAT I SHOULD SPEAK.L# 50 AND I KNOW THAT HIS COMMANDMENT IS LIFE EVERLASTING: WHATSOEVER I SPEAK8 THEREFORE, EVEN AS THE FATHER SAID UNTO ME, SO I SPEAK. = CHAPTER 13 OK# 1 NOW BEFORE THE FEAST OF THE PASSOVER, WHEN JESUS KNEW THAT HIS HOUR WASRK COME THAT HE SHOULD DEPART OUT OF THIS WORLD UNTO THE FATHER, HAVING LOVEDD= HIS OWN WHICH WERE IN THE WORLD, HE LOVED THEM UNTO THE END.L# 2 AND SUPPER BEING ENDED, THE DEVIL HAVING NOW PUT INTO THE HEART OF JUDAS% ISCARIOT, SIMONS SON, TO BETRAY HIM;NJ# 3 JESUS KNOWING THAT THE FATHER HAD GIVEN ALL THINGS INTO HIS HANDS, AND, THAT HE WAS COME FROM GOD, AND WENT TO GOD;M# 4 HE RISETH FROM SUPPER, AND LAID ASIDE HIS GARMENTS; AND TOOK A TOWEL, ANDO GIRDED HIMSELF.M# 5 AFTER THAT HE POURETH WATER INTO A BASON, AND BEGAN TO WASH THE DISCIPLES ? FEET, AND TO WIPE THEM WITH THE TOWEL WHEREWITH HE WAS GIRDED. L# 6 THEN COMETH HE TO SIMON PETER: AND PETER SAITH UNTO HIM, LORD, DOST THOU WASH MY FEET?I# 7 JESUS ANSWERED AND SAID UNTO HIM, WHAT I DO THOU KNOWEST NOT NOW; BUTT THOU SHALT KNOW HEREAFTER.NL# 8 PETER SAITH UNTO HIM, THOU SHALT NEVER WASH MY FEET. JESUS ANSWERED HIM,/ IF I WASH THEE NOT, THOU HAST NO PART WITH ME.NM# 9 SIMON PETER SAITH UNTO HIM, LORD, NOT MY FEET ONLY, BUT ALSO MY HANDS ANDB MY HEAD.EM# 10 JESUS SAITH TO HIM, HE THAT IS WASHED NEEDETH NOT SAVE TO WASH HIS FEET, 8 BUT IS CLEAN EVERY WHIT: AND YE ARE CLEAN, BUT NOT ALL.I# 11 FOR HE KNEW WHO SHOULD BETRAY HIM; THEREFORE SAID HE, YE ARE NOT ALLI CLEAN.MK# 12 SO AFTER HE HAD WASHED THEIR FEET, AND HAD TAKEN HIS GARMENTS, AND WASED SET DOWN AGAIN, HE SAID UNTO THEM, KNOW YE WHAT I HAVE DONE TO YOU?># 13 YE CALL ME MASTER AND LORD: AND YE SAY WELL; FOR SO I AM.M# 14 IF I THEN, YOUR LORD AND MASTER, HAVE WASHED YOUR FEET; YE ALSO OUGHT TO  WASH ONE ANOTHERS FEET.I# 15 FOR I HAVE GIVEN YOU AN EXAMPLE, THAT YE SHOULD DO AS I HAVE DONE TOT YOU.EH# 16 VERILY, VERILY, I SAY UNTO YOU, THE SERVANT IS NOT GREATER THAN HIS= LORD; NEITHER HE THAT IS SENT GREATER THAN HE THAT SENT HIM.E9# 17 IF YE KNOW THESE THINGS, HAPPY ARE YE IF YE DO THEM.WD# 18 I SPEAK NOT OF YOU ALL: I KNOW WHOM I HAVE CHOSEN: BUT THAT THEL SCRIPTURE MAY BE FULFILLED, HE THAT EATETH BREAD WITH ME HATH LIFTED UP HIS HEEL AGAINST ME.EI# 19 NOW I TELL YOU BEFORE IT COME, THAT, WHEN IT IS COME TO PASS, YE MAYH BELIEVE00rC'AD%5%T6%! ! THAT I AM HE.H# 20 VERILY, VERILY, I SAY UNTO YOU, HE THAT RECEIVETH WHOMSOEVER I SENDC RECEIVETH ME; AND HE THAT RECEIVETH ME RECEIVETH HIM THAT SENT ME.TL# 21 WHEN JESUS HAD THUS SAID, HE WAS TROUBLED IN SPIRIT, AND TESTIFIED, ANDG SAID, VERILY, VERILY, I SAY UNTO YOU, THAT ONE OF YOU SHALL BETRAY ME.HI# 22 THEN THE DISCIPLES LOOKED ONE ON ANOTHER, DOUBTING OF WHOM HE SPAKE.MJ# 23 NOW THERE WAS LEANING ON JESUS BOSOM ONE OF HIS DISCIPLES, WHOM JESUS LOVED.HL# 24 SIMON PETER THEREFORE BECKONED TO HIM, THAT HE SHOULD ASK WHO IT SHOULD BE OF WHOM HE SPAKE.RC# 25 HE THEN LYING ON JESUS BREAST SAITH UNTO HIM, LORD, WHO IS IT?EM# 26 JESUS ANSWERED, HE IT IS, TO WHOM I SHALL GIVE A SOP, WHEN I HAVE DIPPEDPM IT. AND WHEN HE HAD DIPPED THE SOP, HE GAVE IT TO JUDAS ISCARIOT, THE SON OFU SIMON.TM# 27 AND AFTER THE SOP SATAN ENTERED INTO HIM. THEN SAID JESUS UNTO HIM, THATA THOU DOEST, DO QUICKLY.I# 28 NOW NO MAN AT THE TABLE KNEW FOR WHAT INTENT HE SPAKE THIS UNTO HIM.NM# 29 FOR SOME OF THEM THOUGHT, BECAUSE JUDAS HAD THE BAG, THAT JESUS HAD SAID L UNTO HIM, BUY THOSE THINGS THAT WE HAVE NEED OF AGAINST THE FEAST; OR, THAT& HE SHOULD GIVE SOMETHING TO THE POOR.L# 30 HE THEN HAVING RECEIVED THE SOP WENT IMMEDIATELY OUT: AND IT WAS NIGHT.G# 31 THEREFORE, WHEN HE WAS GONE OUT, JESUS SAID, NOW IS THE SON OF MANE( GLORIFIED, AND GOD IS GLORIFIED IN HIM.K# 32 IF GOD BE GLORIFIED IN HIM, GOD SHALL ALSO GLORIFY HIM IN HIMSELF, ANDE SHALL STRAIGHTWAY GLORIFY HIM.NM# 33 LITTLE CHILDREN, YET A LITTLE WHILE I AM WITH YOU. YE SHALL SEEK ME: ANDHL AS I SAID UNTO THE JEWS, WHITHER I GO, YE CANNOT COME; SO NOW I SAY TO YOU.K# 34 A NEW COMMANDMENT I GIVE UNTO YOU, THAT YE LOVE ONE ANOTHER; AS I HAVED* LOVED YOU, THAT YE ALSO LOVE ONE ANOTHER.M# 35 BY THIS SHALL ALL MEN KNOW THAT YE ARE MY DISCIPLES, IF YE HAVE LOVE ONE TO ANOTHER.M# 36 SIMON PETER SAID UNTO HIM, LORD, WHITHER GOEST THOU? JESUS ANSWERED HIM,RE WHITHER I GO, THOU CANST NOT FOLLOW ME NOW; BUT THOU SHALT FOLLOW ME AFTERWARDS.M# 37 PETER SAID UNTO HIM, LORD, WHY CANNOT I FOLLOW THEE NOW? I WILL LAY DOWN  MY LIFE FOR THY SAKE.I# 38 JESUS ANSWERED HIM, WILT THOU LAY DOWN THY LIFE FOR MY SAKE? VERILY, K VERILY, I SAY UNTO THEE, THE COCK SHALL NOT CROW, TILL THOU HAST DENIED ME5 THRICE. = CHAPTER 14 OJ# 1 LET NOT YOUR HEART BE TROUBLED: YE BELIEVE IN GOD, BELIEVE ALSO IN ME.J# 2 IN MY FATHERS HOUSE ARE MANY MANSIONS: IF IT WERE NOT SO, I WOULD HAVE+ TOLD YOU. I GO TO PREPARE A PLACE FOR YOU. K# 3 AND IF I GO AND PREPARE A PLACE FOR YOU, I WILL COME AGAIN, AND RECEIVEF8 YOU UNTO MYSELF; THAT WHERE I AM, THERE YE MAY BE ALSO.2# 4 AND WHITHER I GO YE KNOW, AND THE WAY YE KNOW.L# 5 THOMAS SAITH UNTO HIM, LORD, WE KNOW NOT WHITHER THOU GOEST; AND HOW CAN WE KNOW THE WAY?MG# 6 JESUS SAITH UNTO HIM, I AM THE WAY, THE TRUTH, AND THE LIFE: NO MANE# COMETH UNTO THE FATHER, BUT BY ME.NE# 7 IF YE HAD KNOWN ME, YE SHOULD HAVE KNOWN MY FATHER ALSO: AND FROMT+ HENCEFORTH YE KNOW HIM, AND HAVE SEEN HIM. I# 8 PHILIP SAITH UNTO HIM, LORD, SHEW US THE FATHER, AND IT SUFFICETH US.I# 9 JESUS SAITH UNTO HIM, HAVE I BEEN SO LONG TIME WITH YOU, AND YET HAST N THOU NOT KNOWN ME, PHILIP? HE THAT HATH SEEN ME HATH SEEN THE FATHER; AND HOW& SAYEST THOU THEN, SHEW US THE FATHER?J# 10 BELIEVEST THOU NOT THAT I AM IN THE FATHER, AND THE FATHER IN ME? THEG WORDS THAT I SPEAK UNTO YOU I SPEAK NOT OF MYSELF: BUT THE FATHER THATE$ DWELLETH IN ME, HE DOETH THE WORKS.F# 11 BELIEVE ME THAT I AM IN THE FATHER, AND THE FATHER IN ME: OR ELSE$ BELIEVE ME FOR THE VERY WORKS SAKE.L# 12 VERILY, VERILY, I SAY UNTO YOU, HE THAT BELIEVETH ON ME, THE WORKS THATN I DO SHALL HE DO ALSO; AND GREATER WORKS THAN THESE SHALL HE DO; BECAUSE I GO UNTO MY FATHER.L# 13 AND WHATSOEVER YE SHALL ASK IN MY NAME, THAT WILL I DO, THAT THE FATHER MAY BE GLORIFIED IN THE SON.?8# 14 IF YE SHALL ASK ANY THING IN MY NAME, I WILL DO IT.)# 15 IF YE LOVE ME, KEEP MY COMMANDMENTS.OI# 16 AND I WILL PRAY THE FATHER, AND HE SHALL GIVE YOU ANOTHER COMFORTER,M% THAT HE MAY ABIDE WIT00zCB<%X>%+%O-%TADATADATAH YOU FOR EVER;RH# 17 EVEN THE SPIRIT OF TRUTH; WHOM THE WORLD CANNOT RECEIVE, BECAUSE ITJ SEETH HIM NOT, NEITHER KNOWETH HIM: BUT YE KNOW HIM; FOR HE DWELLETH WITH YOU, AND SHALL BE IN YOU.:# 18 I WILL NOT LEAVE YOU COMFORTLESS: I WILL COME TO YOU.G# 19 YET A LITTLE WHILE, AND THE WORLD SEETH ME NO MORE; BUT YE SEE ME:L$ BECAUSE I LIVE, YE SHALL LIVE ALSO.M# 20 AT THAT DAY YE SHALL KNOW THAT I AM IN MY FATHER, AND YE IN ME, AND I IN, YOU. M# 21 HE THAT HATH MY COMMANDMENTS, AND KEEPETH THEM, HE IT IS THAT LOVETH ME:7L AND HE THAT LOVETH ME SHALL BE LOVED OF MY FATHER, AND I WILL LOVE HIM, AND WILL MANIFEST MYSELF TO HIM.TG# 22 JUDAS SAITH UNTO HIM, NOT ISCARIOT, LORD, HOW IS IT THAT THOU WILTL2 MANIFEST THYSELF UNTO US, AND NOT UNTO THE WORLD?H# 23 JESUS ANSWERED AND SAID UNTO HIM, IF A MAN LOVE ME, HE WILL KEEP MYL WORDS: AND MY FATHER WILL LOVE HIM, AND WE WILL COME UNTO HIM, AND MAKE OUR ABODE WITH HIM.M# 24 HE THAT LOVETH ME NOT KEEPETH NOT MY SAYINGS: AND THE WORD WHICH YE HEAR,, IS NOT MINE, BUT THE FATHERS WHICH SENT ME.E# 25 THESE THINGS HAVE I SPOKEN UNTO YOU, BEING YET PRESENT WITH YOU.EM# 26 BUT THE COMFORTER, WHICH IS THE HOLY GHOST, WHOM THE FATHER WILL SEND INAE MY NAME, HE SHALL TEACH YOU ALL THINGS, AND BRING ALL THINGS TO YOURJ. REMEMBRANCE, WHATSOEVER I HAVE SAID UNTO YOU.G# 27 PEACE I LEAVE WITH YOU, MY PEACE I GIVE UNTO YOU: NOT AS THE WORLD K GIVETH, GIVE I UNTO YOU. LET NOT YOUR HEART BE TROUBLED, NEITHER LET IT BEN AFRAID.K# 28 YE HAVE HEARD HOW I SAID UNTO YOU, I GO AWAY, AND COME AGAIN UNTO YOU..L IF YE LOVED ME, YE WOULD REJOICE, BECAUSE I SAID, I GO UNTO THE FATHER: FOR MY FATHER IS GREATER THAN I.EM# 29 AND NOW I HAVE TOLD YOU BEFORE IT COME TO PASS, THAT, WHEN IT IS COME TOI PASS, YE MIGHT BELIEVE.J# 30 HEREAFTER I WILL NOT TALK MUCH WITH YOU: FOR THE PRINCE OF THIS WORLD COMETH, AND HATH NOTHING IN ME.J# 31 BUT THAT THE WORLD MAY KNOW THAT I LOVE THE FATHER; AND AS THE FATHER; GAVE ME COMMANDMENT, EVEN SO I DO. ARISE, LET US GO HENCE.I = CHAPTER 15 O8# 1 I AM THE TRUE VINE, AND MY FATHER IS THE HUSBANDMAN.G# 2 EVERY BRANCH IN ME THAT BEARETH NOT FRUIT HE TAKETH AWAY: AND EVERYEN BRANCH THAT BEARETH FRUIT, HE PURGETH IT, THAT IT MAY BRING FORTH MORE FRUIT.C# 3 NOW YE ARE CLEAN THROUGH THE WORD WHICH I HAVE SPOKEN UNTO YOU.MI# 4 ABIDE IN ME, AND I IN YOU. AS THE BRANCH CANNOT BEAR FRUIT OF ITSELF,.D EXCEPT IT ABIDE IN THE VINE; NO MORE CAN YE, EXCEPT YE ABIDE IN ME.L# 5 I AM THE VINE, YE ARE THE BRANCHES: HE THAT ABIDETH IN ME, AND I IN HIM,F THE SAME BRINGETH FORTH MUCH FRUIT: FOR WITHOUT ME YE CAN DO NOTHING.L# 6 IF A MAN ABIDE NOT IN ME, HE IS CAST FORTH AS A BRANCH, AND IS WITHERED;G AND MEN GATHER THEM, AND CAST THEM INTO THE FIRE, AND THEY ARE BURNED. L# 7 IF YE ABIDE IN ME, AND MY WORDS ABIDE IN YOU, YE SHALL ASK WHAT YE WILL, AND IT SHALL BE DONE UNTO YOU.CM# 8 HEREIN IS MY FATHER GLORIFIED, THAT YE BEAR MUCH FRUIT; SO SHALL YE BE MYE DISCIPLES.NM# 9 AS THE FATHER HATH LOVED ME, SO HAVE I LOVED YOU: CONTINUE YE IN MY LOVE.IJ# 10 IF YE KEEP MY COMMANDMENTS, YE SHALL ABIDE IN MY LOVE; EVEN AS I HAVE5 KEPT MY FATHERS COMMANDMENTS, AND ABIDE IN HIS LOVE.NJ# 11 THESE THINGS HAVE I SPOKEN UNTO YOU, THAT MY JOY MIGHT REMAIN IN YOU,! AND THAT YOUR JOY MIGHT BE FULL. K# 12 THIS IS MY COMMANDMENT, THAT YE LOVE ONE ANOTHER, AS I HAVE LOVED YOU.EM# 13 GREATER LOVE HATH NO MAN THAN THIS, THAT A MAN LAY DOWN HIS LIFE FOR HISO FRIENDS.E:# 14 YE ARE MY FRIENDS, IF YE DO WHATSOEVER I COMMAND YOU.M# 15 HENCEFORTH I CALL YOU NOT SERVANTS; FOR THE SERVANT KNOWETH NOT WHAT HISLL LORD DOETH: BUT I HAVE CALLED YOU FRIENDS; FOR ALL THINGS THAT I HAVE HEARD) OF MY FATHER I HAVE MADE KNOWN UNTO YOU.EL# 16 YE HAVE NOT CHOSEN ME, BUT I HAVE CHOSEN YOU, AND ORDAINED YOU, THAT YEI SHOULD GO AND BRING FORTH FRUIT, AND THAT YOUR FRUIT SHOULD REMAIN: THATYF WHATSOEVER YE SHALL ASK OF THE FATHER IN MY NAME, HE MAY GIVE IT YOU.:# 17 THESE THINGS I COMMAND YOU, THAT YE LOVE ONE ANOTHER.I# 18 IF THE WORLD HATE YOU, YE KNOW THAT IT HATED ME BEFOR00C'AD%5%T6%! !E IT HATED YOU.SJ# 19 IF YE WERE OF THE WORLD, THE WORLD WOULD LOVE HIS OWN: BUT BECAUSE YEL ARE NOT OF THE WORLD, BUT I HAVE CHOSEN YOU OUT OF THE WORLD, THEREFORE THE WORLD HATETH YOU.L# 20 REMEMBER THE WORD THAT I SAID UNTO YOU, THE SERVANT IS NOT GREATER THANL HIS LORD. IF THEY HAVE PERSECUTED ME, THEY WILL ALSO PERSECUTE YOU; IF THEY0 HAVE KEPT MY SAYING, THEY WILL KEEP YOURS ALSO.J# 21 BUT ALL THESE THINGS WILL THEY DO UNTO YOU FOR MY NAMES SAKE, BECAUSE THEY KNOW NOT HIM THAT SENT ME.J# 22 IF I HAD NOT COME AND SPOKEN UNTO THEM, THEY HAD NOT HAD SIN: BUT NOW" THEY HAVE NO CLOAK FOR THEIR SIN.-# 23 HE THAT HATETH ME HATETH MY FATHER ALSO.LJ# 24 IF I HAD NOT DONE AMONG THEM THE WORKS WHICH NONE OTHER MAN DID, THEYN HAD NOT HAD SIN: BUT NOW HAVE THEY BOTH SEEN AND HATED BOTH ME AND MY FATHER.F# 25 BUT THIS COMETH TO PASS, THAT THE WORD MIGHT BE FULFILLED THAT IS5 WRITTEN IN THEIR LAW, THEY HATED ME WITHOUT A CAUSE.UG# 26 BUT WHEN THE COMFORTER IS COME, WHOM I WILL SEND UNTO YOU FROM THE2M FATHER, EVEN THE SPIRIT OF TRUTH, WHICH PROCEEDETH FROM THE FATHER, HE SHALLA TESTIFY OF ME:HJ# 27 AND YE ALSO SHALL BEAR WITNESS, BECAUSE YE HAVE BEEN WITH ME FROM THE BEGINNING.E = CHAPTER 16 CH# 1 THESE THINGS HAVE I SPOKEN UNTO YOU, THAT YE SHOULD NOT BE OFFENDED.H# 2 THEY SHALL PUT YOU OUT OF THE SYNAGOGUES: YEA, THE TIME COMETH, THAT< WHOSOEVER KILLETH YOU WILL THINK THAT HE DOETH GOD SERVICE.K# 3 AND THESE THINGS WILL THEY DO UNTO YOU, BECAUSE THEY HAVE NOT KNOWN THEN FATHER, NOR ME.K# 4 BUT THESE THINGS HAVE I TOLD YOU, THAT WHEN THE TIME SHALL COME, YE MAYHN REMEMBER THAT I TOLD YOU OF THEM. AND THESE THINGS I SAID NOT UNTO YOU AT THE# BEGINNING, BECAUSE I WAS WITH YOU.HG# 5 BUT NOW I GO MY WAY TO HIM THAT SENT ME; AND NONE OF YOU ASKETH ME,E WHITHER GOEST THOU?J# 6 BUT BECAUSE I HAVE SAID THESE THINGS UNTO YOU, SORROW HATH FILLED YOUR HEART.UH# 7 NEVERTHELESS I TELL YOU THE TRUTH; IT IS EXPEDIENT FOR YOU THAT I GOK AWAY: FOR IF I GO NOT AWAY, THE COMFORTER WILL NOT COME UNTO YOU; BUT IF IH" DEPART, I WILL SEND HIM UNTO YOU.A# 8 AND WHEN HE IS COME, HE WILL REPROVE THE WORLD OF SIN, AND OFE RIGHTEOUSNESS, AND OF JUDGMENT:+# 9 OF SIN, BECAUSE THEY BELIEVE NOT ON ME; H# 10 OF RIGHTEOUSNESS, BECAUSE I GO TO MY FATHER, AND YE SEE ME NO MORE;=# 11 OF JUDGMENT, BECAUSE THE PRINCE OF THIS WORLD IS JUDGED. I# 12 I HAVE YET MANY THINGS TO SAY UNTO YOU, BUT YE CANNOT BEAR THEM NOW.TJ# 13 HOWBEIT WHEN HE, THE SPIRIT OF TRUTH, IS COME, HE WILL GUIDE YOU INTOL ALL TRUTH: FOR HE SHALL NOT SPEAK OF HIMSELF; BUT WHATSOEVER HE SHALL HEAR,: THAT SHALL HE SPEAK: AND HE WILL SHEW YOU THINGS TO COME.I# 14 HE SHALL GLORIFY ME: FOR HE SHALL RECEIVE OF MINE, AND SHALL SHEW ITT UNTO YOU.H# 15 ALL THINGS THAT THE FATHER HATH ARE MINE: THEREFORE SAID I, THAT HE0 SHALL TAKE OF MINE, AND SHALL SHEW IT UNTO YOU.L# 16 A LITTLE WHILE, AND YE SHALL NOT SEE ME: AND AGAIN, A LITTLE WHILE, AND- YE SHALL SEE ME, BECAUSE I GO TO THE FATHER.RK# 17 THEN SAID SOME OF HIS DISCIPLES AMONG THEMSELVES, WHAT IS THIS THAT HEIL SAITH UNTO US, A LITTLE WHILE, AND YE SHALL NOT SEE ME: AND AGAIN, A LITTLE= WHILE, AND YE SHALL SEE ME: AND, BECAUSE I GO TO THE FATHER?IH# 18 THEY SAID THEREFORE, WHAT IS THIS THAT HE SAITH, A LITTLE WHILE? WE CANNOT TELL WHAT HE SAITH.IK# 19 NOW JESUS KNEW THAT THEY WERE DESIROUS TO ASK HIM, AND SAID UNTO THEM, L DO YE ENQUIRE AMONG YOURSELVES OF THAT I SAID, A LITTLE WHILE, AND YE SHALL< NOT SEE ME: AND AGAIN, A LITTLE WHILE, AND YE SHALL SEE ME?K# 20 VERILY, VERILY, I SAY UNTO YOU, THAT YE SHALL WEEP AND LAMENT, BUT THEII WORLD SHALL REJOICE: AND YE SHALL BE SORROWFUL, BUT YOUR SORROW SHALL BEM TURNED INTO JOY.OJ# 21 A WOMAN WHEN SHE IS IN TRAVAIL HATH SORROW, BECAUSE HER HOUR IS COME:J BUT AS SOON AS SHE IS DELIVERED OF THE CHILD, SHE REMEMBERETH NO MORE THE4 ANGUISH, FOR JOY THAT A MAN IS BORN INTO THE WORLD.I# 22 AND YE NOW THEREFORE HAVE SORROW: BUT I WILL SEE YOU AGAIN, AND YOURT: HEART SHALL REJOICE, AND YOUR JOY NO MAN TAKETH FROM YOU.M# 23 AND IN THAT DAY Y00CB<%X>%+%O-%TADATADATAE SHALL ASK ME NOTHING. VERILY, VERILY, I SAY UNTO YOU,RD WHATSOEVER YE SHALL ASK THE FATHER IN MY NAME, HE WILL GIVE IT YOU.J# 24 HITHERTO HAVE YE ASKED NOTHING IN MY NAME: ASK, AND YE SHALL RECEIVE, THAT YOUR JOY MAY BE FULL. J# 25 THESE THINGS HAVE I SPOKEN UNTO YOU IN PROVERBS: BUT THE TIME COMETH,N WHEN I SHALL NO MORE SPEAK UNTO YOU IN PROVERBS, BUT I SHALL SHEW YOU PLAINLY OF THE FATHER.EM# 26 AT THAT DAY YE SHALL ASK IN MY NAME: AND I SAY NOT UNTO YOU, THAT I WILLO PRAY THE FATHER FOR YOU: J# 27 FOR THE FATHER HIMSELF LOVETH YOU, BECAUSE YE HAVE LOVED ME, AND HAVE# BELIEVED THAT I CAME OUT FROM GOD.IM# 28 I CAME FORTH FROM THE FATHER, AND AM COME INTO THE WORLD: AGAIN, I LEAVEE! THE WORLD, AND GO TO THE FATHER. M# 29 HIS DISCIPLES SAID UNTO HIM, LO, NOW SPEAKEST THOU PLAINLY, AND SPEAKESTW NO PROVERB.K# 30 NOW ARE WE SURE THAT THOU KNOWEST ALL THINGS, AND NEEDEST NOT THAT ANYRI MAN SHOULD ASK THEE: BY THIS WE BELIEVE THAT THOU CAMEST FORTH FROM GOD.I,# 31 JESUS ANSWERED THEM, DO YE NOW BELIEVE?K# 32 BEHOLD, THE HOUR COMETH, YEA, IS NOW COME, THAT YE SHALL BE SCATTERED,HH EVERY MAN TO HIS OWN, AND SHALL LEAVE ME ALONE: AND YET I AM NOT ALONE, BECAUSE THE FATHER IS WITH ME.TL# 33 THESE THINGS I HAVE SPOKEN UNTO YOU, THAT IN ME YE MIGHT HAVE PEACE. INK THE WORLD YE SHALL HAVE TRIBULATION: BUT BE OF GOOD CHEER; I HAVE OVERCOMEH THE WORLD.L = CHAPTER 17 EH# 1 THESE WORDS SPAKE JESUS, AND LIFTED UP HIS EYES TO HEAVEN, AND SAID,I FATHER, THE HOUR IS COME; GLORIFY THY SON, THAT THY SON ALSO MAY GLORIFYH THEE:L# 2 AS THOU HAST GIVEN HIM POWER OVER ALL FLESH, THAT HE SHOULD GIVE ETERNAL( LIFE TO AS MANY AS THOU HAST GIVEN HIM.J# 3 AND THIS IS LIFE ETERNAL, THAT THEY MIGHT KNOW THEE THE ONLY TRUE GOD,' AND JESUS CHRIST, WHOM THOU HAST SENT.PK# 4 I HAVE GLORIFIED THEE ON THE EARTH: I HAVE FINISHED THE WORK WHICH THOUO GAVEST ME TO DO.DI# 5 AND NOW, O FATHER, GLORIFY THOU ME WITH THINE OWN SELF WITH THE GLORYH, WHICH I HAD WITH THEE BEFORE THE WORLD WAS.K# 6 I HAVE MANIFESTED THY NAME UNTO THE MEN WHICH THOU GAVEST ME OUT OF THENN WORLD: THINE THEY WERE, AND THOU GAVEST THEM ME; AND THEY HAVE KEPT THY WORD.L# 7 NOW THEY HAVE KNOWN THAT ALL THINGS WHATSOEVER THOU HAST GIVEN ME ARE OF THEE.L# 8 FOR I HAVE GIVEN UNTO THEM THE WORDS WHICH THOU GAVEST ME; AND THEY HAVEN RECEIVED THEM, AND HAVE KNOWN SURELY THAT I CAME OUT FROM THEE, AND THEY HAVE" BELIEVED THAT THOU DIDST SEND ME.K# 9 I PRAY FOR THEM: I PRAY NOT FOR THE WORLD, BUT FOR THEM WHICH THOU HAST  GIVEN ME; FOR THEY ARE THINE.L# 10 AND ALL MINE ARE THINE, AND THINE ARE MINE; AND I AM GLORIFIED IN THEM.I# 11 AND NOW I AM NO MORE IN THE WORLD, BUT THESE ARE IN THE WORLD, AND IAL COME TO THEE. HOLY FATHER, KEEP THROUGH THINE OWN NAME THOSE WHOM THOU HAST+ GIVEN ME, THAT THEY MAY BE ONE, AS WE ARE.TL# 12 WHILE I WAS WITH THEM IN THE WORLD, I KEPT THEM IN THY NAME: THOSE THATE THOU GAVEST ME I HAVE KEPT, AND NONE OF THEM IS LOST, BUT THE SON OFP2 PERDITION; THAT THE SCRIPTURE MIGHT BE FULFILLED.M# 13 AND NOW COME I TO THEE; AND THESE THINGS I SPEAK IN THE WORLD, THAT THEYN+ MIGHT HAVE MY JOY FULFILLED IN THEMSELVES.IL# 14 I HAVE GIVEN THEM THY WORD; AND THE WORLD HATH HATED THEM, BECAUSE THEY5 ARE NOT OF THE WORLD, EVEN AS I AM NOT OF THE WORLD. M# 15 I PRAY NOT THAT THOU SHOULDEST TAKE THEM OUT OF THE WORLD, BUT THAT THOUI# SHOULDEST KEEP THEM FROM THE EVIL. ># 16 THEY ARE NOT OF THE WORLD, EVEN AS I AM NOT OF THE WORLD.8# 17 SANCTIFY THEM THROUGH THY TRUTH: THY WORD IS TRUTH.L# 18 AS THOU HAST SENT ME INTO THE WORLD, EVEN SO HAVE I ALSO SENT THEM INTO THE WORLD.NC# 19 AND FOR THEIR SAKES I SANCTIFY MYSELF, THAT THEY ALSO MIGHT BEM SANCTIFIED THROUGH THE TRUTH.M# 20 NEITHER PRAY I FOR THESE ALONE, BUT FOR THEM ALSO WHICH SHALL BELIEVE ON ME THROUGH THEIR WORD; I# 21 THAT THEY ALL MAY BE ONE; AS THOU, FATHER, ART IN ME, AND I IN THEE,FK THAT THEY ALSO MAY BE ONE IN US: THAT THE WORLD MAY BELIEVE THAT THOU HAST. SENT ME.TK# 22 AND THE GLORY WHICH THOU GAVEST ME I HAVE GIVEN THEM; THAT THEY MAY B00C'AD%5%T6%! !EO ONE, EVEN AS WE ARE ONE:AI# 23 I IN THEM, AND THOU IN ME, THAT THEY MAY BE MADE PERFECT IN ONE; ANDFM THAT THE WORLD MAY KNOW THAT THOU HAST SENT ME, AND HAST LOVED THEM, AS THOU  HAST LOVED ME.BM# 24 FATHER, I WILL THAT THEY ALSO, WHOM THOU HAST GIVEN ME, BE WITH ME WHEREHH I AM; THAT THEY MAY BEHOLD MY GLORY, WHICH THOU HAST GIVEN ME: FOR THOU/ LOVEDST ME BEFORE THE FOUNDATION OF THE WORLD.EH# 25 O RIGHTEOUS FATHER, THE WORLD HATH NOT KNOWN THEE: BUT I HAVE KNOWN3 THEE, AND THESE HAVE KNOWN THAT THOU HAST SENT ME.EJ# 26 AND I HAVE DECLARED UNTO THEM THY NAME, AND WILL DECLARE IT: THAT THEA LOVE WHEREWITH THOU HAST LOVED ME MAY BE IN THEM, AND I IN THEM.O = CHAPTER 18 OL# 1 WHEN JESUS HAD SPOKEN THESE WORDS, HE WENT FORTH WITH HIS DISCIPLES OVERI THE BROOK CEDRON, WHERE WAS A GARDEN, INTO THE WHICH HE ENTERED, AND HISS DISCIPLES.OJ# 2 AND JUDAS ALSO, WHICH BETRAYED HIM, KNEW THE PLACE: FOR JESUS OFTTIMES% RESORTED THITHER WITH HIS DISCIPLES.UI# 3 JUDAS THEN, HAVING RECEIVED A BAND OF MEN AND OFFICERS FROM THE CHIEFAM PRIESTS AND PHARISEES, COMETH THITHER WITH LANTERNS AND TORCHES AND WEAPONS.RG# 4 JESUS THEREFORE, KNOWING ALL THINGS THAT SHOULD COME UPON HIM, WENT) FORTH, AND SAID UNTO THEM, WHOM SEEK YE?EM# 5 THEY ANSWERED HIM, JESUS OF NAZARETH. JESUS SAITH UNTO THEM, I AM HE. ANDH1 JUDAS ALSO, WHICH BETRAYED HIM, STOOD WITH THEM. K# 6 AS SOON THEN AS HE HAD SAID UNTO THEM, I AM HE, THEY WENT BACKWARD, AND  FELL TO THE GROUND.M# 7 THEN ASKED HE THEM AGAIN, WHOM SEEK YE? AND THEY SAID, JESUS OF NAZARETH.EJ# 8 JESUS ANSWERED, I HAVE TOLD YOU THAT I AM HE: IF THEREFORE YE SEEK ME, LET THESE GO THEIR WAY:J# 9 THAT THE SAYING MIGHT BE FULFILLED, WHICH HE SPAKE, OF THEM WHICH THOU GAVEST ME HAVE I LOST NONE.H# 10 THEN SIMON PETER HAVING A SWORD DREW IT, AND SMOTE THE HIGH PRIESTSC SERVANT, AND CUT OFF HIS RIGHT EAR. THE SERVANTS NAME WAS MALCHUS.AJ# 11 THEN SAID JESUS UNTO PETER, PUT UP THY SWORD INTO THE SHEATH: THE CUP5 WHICH MY FATHER HATH GIVEN ME, SHALL I NOT DRINK IT?HK# 12 THEN THE BAND AND THE CAPTAIN AND OFFICERS OF THE JEWS TOOK JESUS, ANDE BOUND HIM,EK# 13 AND LED HIM AWAY TO ANNAS FIRST; FOR HE WAS FATHER IN LAW TO CAIAPHAS,D* WHICH WAS THE HIGH PRIEST THAT SAME YEAR.E# 14 NOW CAIAPHAS WAS HE, WHICH GAVE COUNSEL TO THE JEWS, THAT IT WASN2 EXPEDIENT THAT ONE MAN SHOULD DIE FOR THE PEOPLE.F# 15 AND SIMON PETER FOLLOWED JESUS, AND SO DID ANOTHER DISCIPLE: THATI DISCIPLE WAS KNOWN UNTO THE HIGH PRIEST, AND WENT IN WITH JESUS INTO THE  PALACE OF THE HIGH PRIEST. L# 16 BUT PETER STOOD AT THE DOOR WITHOUT. THEN WENT OUT THAT OTHER DISCIPLE,M WHICH WAS KNOWN UNTO THE HIGH PRIEST, AND SPAKE UNTO HER THAT KEPT THE DOOR,A AND BROUGHT IN PETER.K# 17 THEN SAITH THE DAMSEL THAT KEPT THE DOOR UNTO PETER, ART NOT THOU ALSO 0 ONE OF THIS MANS DISCIPLES? HE SAITH, I AM NOT.M# 18 AND THE SERVANTS AND OFFICERS STOOD THERE, WHO HAD MADE A FIRE OF COALS;EL FOR IT WAS COLD: AND THEY WARMED THEMSELVES: AND PETER STOOD WITH THEM, AND WARMED HIMSELF.L# 19 THE HIGH PRIEST THEN ASKED JESUS OF HIS DISCIPLES, AND OF HIS DOCTRINE.J# 20 JESUS ANSWERED HIM, I SPAKE OPENLY TO THE WORLD; I EVER TAUGHT IN THEL SYNAGOGUE, AND IN THE TEMPLE, WHITHER THE JEWS ALWAYS RESORT; AND IN SECRET HAVE I SAID NOTHING. M# 21 WHY ASKEST THOU ME? ASK THEM WHICH HEARD ME, WHAT I HAVE SAID UNTO THEM:. BEHOLD, THEY KNOW WHAT I SAID.EK# 22 AND WHEN HE HAD THUS SPOKEN, ONE OF THE OFFICERS WHICH STOOD BY STRUCKRL JESUS WITH THE PALM OF HIS HAND, SAYING, ANSWEREST THOU THE HIGH PRIEST SO?M# 23 JESUS ANSWERED HIM, IF I HAVE SPOKEN EVIL, BEAR WITNESS OF THE EVIL: BUTS IF WELL, WHY SMITEST THOU ME?@# 24 NOW ANNAS HAD SENT HIM BOUND UNTO CAIAPHAS THE HIGH PRIEST.L# 25 AND SIMON PETER STOOD AND WARMED HIMSELF. THEY SAID THEREFORE UNTO HIM,J ART NOT THOU ALSO ONE OF HIS DISCIPLES? HE DENIED IT, AND SAID, I AM NOT.H# 26 ONE OF THE SERVANTS OF THE HIGH PRIEST, BEING HIS KINSMAN WHOSE EARA PETER CUT OFF, SAITH, DID NOT I SEE THEE IN THE GARDEN WITH HIM?I<# 27 PETER THEN DENIED AGAIN: AND IMMEDIAT00CB<%X>%+%O-%TADATADATAELY THE COCK CREW.L# 28 THEN LED THEY JESUS FROM CAIAPHAS UNTO THE HALL OF JUDGMENT: AND IT WASM EARLY; AND THEY THEMSELVES WENT NOT INTO THE JUDGMENT HALL, LEST THEY SHOULD 2 BE DEFILED; BUT THAT THEY MIGHT EAT THE PASSOVER.G# 29 PILATE THEN WENT OUT UNTO THEM, AND SAID, WHAT ACCUSATION BRING YED AGAINST THIS MAN?K# 30 THEY ANSWERED AND SAID UNTO HIM, IF HE WERE NOT A MALEFACTOR, WE WOULDR% NOT HAVE DELIVERED HIM UP UNTO THEE.TM# 31 THEN SAID PILATE UNTO THEM, TAKE YE HIM, AND JUDGE HIM ACCORDING TO YOUR N LAW. THE JEWS THEREFORE SAID UNTO HIM, IT IS NOT LAWFUL FOR US TO PUT ANY MAN TO DEATH:L# 32 THAT THE SAYING OF JESUS MIGHT BE FULFILLED, WHICH HE SPAKE, SIGNIFYING WHAT DEATH HE SHOULD DIE.L# 33 THEN PILATE ENTERED INTO THE JUDGMENT HALL AGAIN, AND CALLED JESUS, AND. SAID UNTO HIM, ART THOU THE KING OF THE JEWS?I# 34 JESUS ANSWERED HIM, SAYEST THOU THIS THING OF THYSELF, OR DID OTHERSH TELL IT THEE OF ME?M# 35 PILATE ANSWERED, AM I A JEW? THINE OWN NATION AND THE CHIEF PRIESTS HAVEN- DELIVERED THEE UNTO ME: WHAT HAST THOU DONE?HK# 36 JESUS ANSWERED, MY KINGDOM IS NOT OF THIS WORLD: IF MY KINGDOM WERE OFOL THIS WORLD, THEN WOULD MY SERVANTS FIGHT, THAT I SHOULD NOT BE DELIVERED TO0 THE JEWS: BUT NOW IS MY KINGDOM NOT FROM HENCE.J# 37 PILATE THEREFORE SAID UNTO HIM, ART THOU A KING THEN? JESUS ANSWERED,N THOU SAYEST THAT I AM A KING. TO THIS END WAS I BORN, AND FOR THIS CAUSE CAMEL I INTO THE WORLD, THAT I SHOULD BEAR WITNESS UNTO THE TRUTH. EVERY ONE THAT" IS OF THE TRUTH HEARETH MY VOICE.M# 38 PILATE SAITH UNTO HIM, WHAT IS TRUTH? AND WHEN HE HAD SAID THIS, HE WENT M OUT AGAIN UNTO THE JEWS, AND SAITH UNTO THEM, I FIND IN HIM NO FAULT AT ALL.TD# 39 BUT YE HAVE A CUSTOM, THAT I SHOULD RELEASE UNTO YOU ONE AT THEJ PASSOVER: WILL YE THEREFORE THAT I RELEASE UNTO YOU THE KING OF THE JEWS?G# 40 THEN CRIED THEY ALL AGAIN, SAYING, NOT THIS MAN, BUT BARABBAS. NOWF BARABBAS WAS A ROBBER.T = CHAPTER 19 A7# 1 THEN PILATE THEREFORE TOOK JESUS, AND SCOURGED HIM.IK# 2 AND THE SOLDIERS PLATTED A CROWN OF THORNS, AND PUT IT ON HIS HEAD, ANDA THEY PUT ON HIM A PURPLE ROBE, J# 3 AND SAID, HAIL, KING OF THE JEWS! AND THEY SMOTE HIM WITH THEIR HANDS.K# 4 PILATE THEREFORE WENT FORTH AGAIN, AND SAITH UNTO THEM, BEHOLD, I BRINGP@ HIM FORTH TO YOU, THAT YE MAY KNOW THAT I FIND NO FAULT IN HIM.L# 5 THEN CAME JESUS FORTH, WEARING THE CROWN OF THORNS, AND THE PURPLE ROBE., AND PILATE SAITH UNTO THEM, BEHOLD THE MAN!J# 6 WHEN THE CHIEF PRIESTS THEREFORE AND OFFICERS SAW HIM, THEY CRIED OUT,K SAYING, CRUCIFY HIM, CRUCIFY HIM. PILATE SAITH UNTO THEM, TAKE YE HIM, ANDA) CRUCIFY HIM: FOR I FIND NO FAULT IN HIM. I# 7 THE JEWS ANSWERED HIM, WE HAVE A LAW, AND BY OUR LAW HE OUGHT TO DIE,O( BECAUSE HE MADE HIMSELF THE SON OF GOD.D# 8 WHEN PILATE THEREFORE HEARD THAT SAYING, HE WAS THE MORE AFRAID;K# 9 AND WENT AGAIN INTO THE JUDGMENT HALL, AND SAITH UNTO JESUS, WHENCE ARTB$ THOU? BUT JESUS GAVE HIM NO ANSWER.L# 10 THEN SAITH PILATE UNTO HIM, SPEAKEST THOU NOT UNTO ME? KNOWEST THOU NOTC THAT I HAVE POWER TO CRUCIFY THEE, AND HAVE POWER TO RELEASE THEE?TM# 11 JESUS ANSWERED, THOU COULDEST HAVE NO POWER AT ALL AGAINST ME, EXCEPT ITEN WERE GIVEN THEE FROM ABOVE: THEREFORE HE THAT DELIVERED ME UNTO THEE HATH THE GREATER SIN.OJ# 12 AND FROM THENCEFORTH PILATE SOUGHT TO RELEASE HIM: BUT THE JEWS CRIEDM OUT, SAYING, IF THOU LET THIS MAN GO, THOU ART NOT CAESARS FRIEND: WHOSOEVERO/ MAKETH HIMSELF A KING SPEAKETH AGAINST CAESAR. M# 13 WHEN PILATE THEREFORE HEARD THAT SAYING, HE BROUGHT JESUS FORTH, AND SATRM DOWN IN THE JUDGMENT SEAT IN A PLACE THAT IS CALLED THE PAVEMENT, BUT IN THEO HEBREW, GABBATHA.J# 14 AND IT WAS THE PREPARATION OF THE PASSOVER, AND ABOUT THE SIXTH HOUR:. AND HE SAITH UNTO THE JEWS, BEHOLD YOUR KING!J# 15 BUT THEY CRIED OUT, AWAY WITH HIM, AWAY WITH HIM, CRUCIFY HIM. PILATEK SAITH UNTO THEM, SHALL I CRUCIFY YOUR KING? THE CHIEF PRIESTS ANSWERED, WEE HAVE NO KING BUT CAESAR.GM# 16 THEN DELIVERED HE HIM THEREFORE UNTO THEM TO BE CRUCIFIED. AND THEY TOOKO JESUS, AND LE00C'AD%5%T6%! !D HIM AWAY.K# 17 AND HE BEARING HIS CROSS WENT FORTH INTO A PLACE CALLED THE PLACE OF AO/ SKULL, WHICH IS CALLED IN THE HEBREW GOLGOTHA:TJ# 18 WHERE THEY CRUCIFIED HIM, AND TWO OTHER WITH HIM, ON EITHER SIDE ONE, AND JESUS IN THE MIDST.K# 19 AND PILATE WROTE A TITLE, AND PUT IT ON THE CROSS. AND THE WRITING WASU( JESUS OF NAZARETH THE KING OF THE JEWS.I# 20 THIS TITLE THEN READ MANY OF THE JEWS: FOR THE PLACE WHERE JESUS WAS M CRUCIFIED WAS NIGH TO THE CITY: AND IT WAS WRITTEN IN HEBREW, AND GREEK, AND  LATIN. K# 21 THEN SAID THE CHIEF PRIESTS OF THE JEWS TO PILATE, WRITE NOT, THE KINGS6 OF THE JEWS; BUT THAT HE SAID, I AM KING OF THE JEWS.9# 22 PILATE ANSWERED, WHAT I HAVE WRITTEN I HAVE WRITTEN.DM# 23 THEN THE SOLDIERS, WHEN THEY HAD CRUCIFIED JESUS, TOOK HIS GARMENTS, ANDTN MADE FOUR PARTS, TO EVERY SOLDIER A PART; AND ALSO HIS COAT: NOW THE COAT WAS- WITHOUT SEAM, WOVEN FROM THE TOP THROUGHOUT.LL# 24 THEY SAID THEREFORE AMONG THEMSELVES, LET US NOT REND IT, BUT CAST LOTSH FOR IT, WHOSE IT SHALL BE: THAT THE SCRIPTURE MIGHT BE FULFILLED, WHICHK SAITH, THEY PARTED MY RAIMENT AMONG THEM, AND FOR MY VESTURE THEY DID CASTN/ LOTS. THESE THINGS THEREFORE THE SOLDIERS DID. F# 25 NOW THERE STOOD BY THE CROSS OF JESUS HIS MOTHER, AND HIS MOTHERS7 SISTER, MARY THE WIFE OF CLEOPHAS, AND MARY MAGDALENE.EL# 26 WHEN JESUS THEREFORE SAW HIS MOTHER, AND THE DISCIPLE STANDING BY, WHOM; HE LOVED, HE SAITH UNTO HIS MOTHER, WOMAN, BEHOLD THY SON!SI# 27 THEN SAITH HE TO THE DISCIPLE, BEHOLD THY MOTHER! AND FROM THAT HOURT* THAT DISCIPLE TOOK HER UNTO HIS OWN HOME.J# 28 AFTER THIS, JESUS KNOWING THAT ALL THINGS WERE NOW ACCOMPLISHED, THAT3 THE SCRIPTURE MIGHT BE FULFILLED, SAITH, I THIRST.NI# 29 NOW THERE WAS SET A VESSEL FULL OF VINEGAR: AND THEY FILLED A SPUNGEM? WITH VINEGAR, AND PUT IT UPON HYSSOP, AND PUT IT TO HIS MOUTH.HL# 30 WHEN JESUS THEREFORE HAD RECEIVED THE VINEGAR, HE SAID, IT IS FINISHED:. AND HE BOWED HIS HEAD, AND GAVE UP THE GHOST.H# 31 THE JEWS THEREFORE, BECAUSE IT WAS THE PREPARATION, THAT THE BODIESK SHOULD NOT REMAIN UPON THE CROSS ON THE SABBATH DAY, (FOR THAT SABBATH DAY L WAS AN HIGH DAY,) BESOUGHT PILATE THAT THEIR LEGS MIGHT BE BROKEN, AND THAT THEY MIGHT BE TAKEN AWAY.H# 32 THEN CAME THE SOLDIERS, AND BRAKE THE LEGS OF THE FIRST, AND OF THE$ OTHER WHICH WAS CRUCIFIED WITH HIM.H# 33 BUT WHEN THEY CAME TO JESUS, AND SAW THAT HE WAS DEAD ALREADY, THEY BRAKE NOT HIS LEGS:I# 34 BUT ONE OF THE SOLDIERS WITH A SPEAR PIERCED HIS SIDE, AND FORTHWITHC CAME THERE OUT BLOOD AND WATER.K# 35 AND HE THAT SAW IT BARE RECORD, AND HIS RECORD IS TRUE: AND HE KNOWETHA+ THAT HE SAITH TRUE, THAT YE MIGHT BELIEVE.EJ# 36 FOR THESE THINGS WERE DONE, THAT THE SCRIPTURE SHOULD BE FULFILLED, A! BONE OF HIM SHALL NOT BE BROKEN.TH# 37 AND AGAIN ANOTHER SCRIPTURE SAITH, THEY SHALL LOOK ON HIM WHOM THEY PIERCED. H# 38 AND AFTER THIS JOSEPH OF ARIMATHAEA, BEING A DISCIPLE OF JESUS, BUTK SECRETLY FOR FEAR OF THE JEWS, BESOUGHT PILATE THAT HE MIGHT TAKE AWAY THEWJ BODY OF JESUS: AND PILATE GAVE HIM LEAVE. HE CAME THEREFORE, AND TOOK THE BODY OF JESUS.SG# 39 AND THERE CAME ALSO NICODEMUS, WHICH AT THE FIRST CAME TO JESUS BY6H NIGHT, AND BROUGHT A MIXTURE OF MYRRH AND ALOES, ABOUT AN HUNDRED POUND WEIGHT.M# 40 THEN TOOK THEY THE BODY OF JESUS, AND WOUND IT IN LINEN CLOTHES WITH THE . SPICES, AS THE MANNER OF THE JEWS IS TO BURY.K# 41 NOW IN THE PLACE WHERE HE WAS CRUCIFIED THERE WAS A GARDEN; AND IN THE 8 GARDEN A NEW SEPULCHRE, WHEREIN WAS NEVER MAN YET LAID.M# 42 THERE LAID THEY JESUS THEREFORE BECAUSE OF THE JEWS PREPARATION DAY; FOR THE SEPULCHRE WAS NIGH AT HAND. = CHAPTER 20 HJ# 1 THE FIRST DAY OF THE WEEK COMETH MARY MAGDALENE EARLY, WHEN IT WAS YETM DARK, UNTO THE SEPULCHRE, AND SEETH THE STONE TAKEN AWAY FROM THE SEPULCHRE.UK# 2 THEN SHE RUNNETH, AND COMETH TO SIMON PETER, AND TO THE OTHER DISCIPLE,SL WHOM JESUS LOVED, AND SAITH UNTO THEM, THEY HAVE TAKEN AWAY THE LORD OUT OF9 THE SEPULCHRE, AND WE KNOW NOT WHERE THEY HAVE LAID HIM.NH# 3 PETER THEREFORE WENT FOR00CB<%X>%+%O-%TADATADATATH, AND THAT OTHER DISCIPLE, AND CAME TO THE SEPULCHRE.OK# 4 SO THEY RAN BOTH TOGETHER: AND THE OTHER DISCIPLE DID OUTRUN PETER, ANDE CAME FIRST TO THE SEPULCHRE.LJ# 5 AND HE STOOPING DOWN, AND LOOKING IN, SAW THE LINEN CLOTHES LYING; YET WENT HE NOT IN.K# 6 THEN COMETH SIMON PETER FOLLOWING HIM, AND WENT INTO THE SEPULCHRE, ANDP SEETH THE LINEN CLOTHES LIE,IE# 7 AND THE NAPKIN, THAT WAS ABOUT HIS HEAD, NOT LYING WITH THE LINEN 4 CLOTHES, BUT WRAPPED TOGETHER IN A PLACE BY ITSELF.M# 8 THEN WENT IN ALSO THAT OTHER DISCIPLE, WHICH CAME FIRST TO THE SEPULCHRE,O AND HE SAW, AND BELIEVED.L# 9 FOR AS YET THEY KNEW NOT THE SCRIPTURE, THAT HE MUST RISE AGAIN FROM THE DEAD.<# 10 THEN THE DISCIPLES WENT AWAY AGAIN UNTO THEIR OWN HOME.J# 11 BUT MARY STOOD WITHOUT AT THE SEPULCHRE WEEPING: AND AS SHE WEPT, SHE- STOOPED DOWN, AND LOOKED INTO THE SEPULCHRE,SH# 12 AND SEETH TWO ANGELS IN WHITE SITTING, THE ONE AT THE HEAD, AND THE5 OTHER AT THE FEET, WHERE THE BODY OF JESUS HAD LAIN.LI# 13 AND THEY SAY UNTO HER, WOMAN, WHY WEEPEST THOU? SHE SAITH UNTO THEM,LJ BECAUSE THEY HAVE TAKEN AWAY MY LORD, AND I KNOW NOT WHERE THEY HAVE LAID HIM.TG# 14 AND WHEN SHE HAD THUS SAID, SHE TURNED HERSELF BACK, AND SAW JESUSG* STANDING, AND KNEW NOT THAT IT WAS JESUS.K# 15 JESUS SAITH UNTO HER, WOMAN, WHY WEEPEST THOU? WHOM SEEKEST THOU? SHE,LN SUPPOSING HIM TO BE THE GARDENER, SAITH UNTO HIM, SIR, IF THOU HAVE BORNE HIMC HENCE, TELL ME WHERE THOU HAST LAID HIM, AND I WILL TAKE HIM AWAY. H# 16 JESUS SAITH UNTO HER, MARY. SHE TURNED HERSELF, AND SAITH UNTO HIM," RABBONI; WHICH IS TO SAY, MASTER.H# 17 JESUS SAITH UNTO HER, TOUCH ME NOT; FOR I AM NOT YET ASCENDED TO MYK FATHER: BUT GO TO MY BRETHREN, AND SAY UNTO THEM, I ASCEND UNTO MY FATHER, . AND YOUR FATHER; AND TO MY GOD, AND YOUR GOD.K# 18 MARY MAGDALENE CAME AND TOLD THE DISCIPLES THAT SHE HAD SEEN THE LORD,E. AND THAT HE HAD SPOKEN THESE THINGS UNTO HER.L# 19 THEN THE SAME DAY AT EVENING, BEING THE FIRST DAY OF THE WEEK, WHEN THEN DOORS WERE SHUT WHERE THE DISCIPLES WERE ASSEMBLED FOR FEAR OF THE JEWS, CAMEF JESUS AND STOOD IN THE MIDST, AND SAITH UNTO THEM, PEACE BE UNTO YOU.I# 20 AND WHEN HE HAD SO SAID, HE SHEWED UNTO THEM HIS HANDS AND HIS SIDE.O6 THEN WERE THE DISCIPLES GLAD, WHEN THEY SAW THE LORD.M# 21 THEN SAID JESUS TO THEM AGAIN, PEACE BE UNTO YOU: AS MY FATHER HATH SENTS ME, EVEN SO SEND I YOU.I# 22 AND WHEN HE HAD SAID THIS, HE BREATHED ON THEM, AND SAITH UNTO THEM,N RECEIVE YE THE HOLY GHOST:HG# 23 WHOSE SOEVER SINS YE REMIT, THEY ARE REMITTED UNTO THEM; AND WHOSE * SOEVER SINS YE RETAIN, THEY ARE RETAINED.J# 24 BUT THOMAS, ONE OF THE TWELVE, CALLED DIDYMUS, WAS NOT WITH THEM WHEN JESUS CAME.L# 25 THE OTHER DISCIPLES THEREFORE SAID UNTO HIM, WE HAVE SEEN THE LORD. BUTK HE SAID UNTO THEM, EXCEPT I SHALL SEE IN HIS HANDS THE PRINT OF THE NAILS,FK AND PUT MY FINGER INTO THE PRINT OF THE NAILS, AND THRUST MY HAND INTO HISE SIDE, I WILL NOT BELIEVE.J# 26 AND AFTER EIGHT DAYS AGAIN HIS DISCIPLES WERE WITHIN, AND THOMAS WITHI THEM: THEN CAME JESUS, THE DOORS BEING SHUT, AND STOOD IN THE MIDST, ANDR SAID, PEACE BE UNTO YOU.OK# 27 THEN SAITH HE TO THOMAS, REACH HITHER THY FINGER, AND BEHOLD MY HANDS;TM AND REACH HITHER THY HAND, AND THRUST IT INTO MY SIDE: AND BE NOT FAITHLESS,D BUT BELIEVING.T?# 28 AND THOMAS ANSWERED AND SAID UNTO HIM, MY LORD AND MY GOD.IG# 29 JESUS SAITH UNTO HIM, THOMAS, BECAUSE THOU HAST SEEN ME, THOU HASTWF BELIEVED: BLESSED ARE THEY THAT HAVE NOT SEEN, AND YET HAVE BELIEVED.K# 30 AND MANY OTHER SIGNS TRULY DID JESUS IN THE PRESENCE OF HIS DISCIPLES, $ WHICH ARE NOT WRITTEN IN THIS BOOK:K# 31 BUT THESE ARE WRITTEN, THAT YE MIGHT BELIEVE THAT JESUS IS THE CHRIST,YH THE SON OF GOD; AND THAT BELIEVING YE MIGHT HAVE LIFE THROUGH HIS NAME. = CHAPTER 21 M# 1 AFTER THESE THINGS JESUS SHEWED HIMSELF AGAIN TO THE DISCIPLES AT THE SEAD1 OF TIBERIAS; AND ON THIS WISE SHEWED HE HIMSELF. M# 2 THERE WERE TOGETHER SIMON PETER, AND THOMAS CALLED DIDYMUS, AND NATHANAELEM OF CANA IN GALILEE, AND THE SONS OF00C'AD%5%T6%! ! ZEBEDEE, AND TWO OTHER OF HIS DISCIPLES.HK# 3 SIMON PETER SAITH UNTO THEM, I GO A FISHING. THEY SAY UNTO HIM, WE ALSOTM GO WITH THEE. THEY WENT FORTH, AND ENTERED INTO A SHIP IMMEDIATELY; AND THAT  NIGHT THEY CAUGHT NOTHING.TH# 4 BUT WHEN THE MORNING WAS NOW COME, JESUS STOOD ON THE SHORE: BUT THE& DISCIPLES KNEW NOT THAT IT WAS JESUS.I# 5 THEN JESUS SAITH UNTO THEM, CHILDREN, HAVE YE ANY MEAT? THEY ANSWERED HIM, NO.,M# 6 AND HE SAID UNTO THEM, CAST THE NET ON THE RIGHT SIDE OF THE SHIP, AND YEFK SHALL FIND. THEY CAST THEREFORE, AND NOW THEY WERE NOT ABLE TO DRAW IT FORI THE MULTITUDE OF FISHES.OH# 7 THEREFORE THAT DISCIPLE WHOM JESUS LOVED SAITH UNTO PETER, IT IS THEK LORD. NOW WHEN SIMON PETER HEARD THAT IT WAS THE LORD, HE GIRT HIS FISHERSWF COAT UNTO HIM, (FOR HE WAS NAKED,) AND DID CAST HIMSELF INTO THE SEA.I# 8 AND THE OTHER DISCIPLES CAME IN A LITTLE SHIP; (FOR THEY WERE NOT FAR M FROM LAND, BUT AS IT WERE TWO HUNDRED CUBITS,) DRAGGING THE NET WITH FISHES.TK# 9 AS SOON THEN AS THEY WERE COME TO LAND, THEY SAW A FIRE OF COALS THERE,R" AND FISH LAID THEREON, AND BREAD.G# 10 JESUS SAITH UNTO THEM, BRING OF THE FISH WHICH YE HAVE NOW CAUGHT.TK# 11 SIMON PETER WENT UP, AND DREW THE NET TO LAND FULL OF GREAT FISHES, ANEM HUNDRED AND FIFTY AND THREE: AND FOR ALL THERE WERE SO MANY, YET WAS NOT THET NET BROKEN.J# 12 JESUS SAITH UNTO THEM, COME AND DINE. AND NONE OF THE DISCIPLES DURST5 ASK HIM, WHO ART THOU? KNOWING THAT IT WAS THE LORD.TM# 13 JESUS THEN COMETH, AND TAKETH BREAD, AND GIVETH THEM, AND FISH LIKEWISE.RK# 14 THIS IS NOW THE THIRD TIME THAT JESUS SHEWED HIMSELF TO HIS DISCIPLES, ' AFTER THAT HE WAS RISEN FROM THE DEAD. M# 15 SO WHEN THEY HAD DINED, JESUS SAITH TO SIMON PETER, SIMON, SON OF JONAS,EK LOVEST THOU ME MORE THAN THESE? HE SAITH UNTO HIM, YEA, LORD; THOU KNOWEST 4 THAT I LOVE THEE. HE SAITH UNTO HIM, FEED MY LAMBS.L# 16 HE SAITH TO HIM AGAIN THE SECOND TIME, SIMON, SON OF JONAS, LOVEST THOUJ ME? HE SAITH UNTO HIM, YEA, LORD; THOU KNOWEST THAT I LOVE THEE. HE SAITH UNTO HIM, FEED MY SHEEP.K# 17 HE SAITH UNTO HIM THE THIRD TIME, SIMON, SON OF JONAS, LOVEST THOU ME?K PETER WAS GRIEVED BECAUSE HE SAID UNTO HIM THE THIRD TIME, LOVEST THOU ME?SN AND HE SAID UNTO HIM, LORD, THOU KNOWEST ALL THINGS; THOU KNOWEST THAT I LOVE+ THEE. JESUS SAITH UNTO HIM, FEED MY SHEEP.AH# 18 VERILY, VERILY, I SAY UNTO THEE, WHEN THOU WAST YOUNG, THOU GIRDESTN THYSELF, AND WALKEDST WHITHER THOU WOULDEST: BUT WHEN THOU SHALT BE OLD, THOUK SHALT STRETCH FORTH THY HANDS, AND ANOTHER SHALL GIRD THEE, AND CARRY THEE WHITHER THOU WOULDEST NOT.IL# 19 THIS SPAKE HE, SIGNIFYING BY WHAT DEATH HE SHOULD GLORIFY GOD. AND WHEN2 HE HAD SPOKEN THIS, HE SAITH UNTO HIM, FOLLOW ME.C# 20 THEN PETER, TURNING ABOUT, SEETH THE DISCIPLE WHOM JESUS LOVED L FOLLOWING; WHICH ALSO LEANED ON HIS BREAST AT SUPPER, AND SAID, LORD, WHICH IS HE THAT BETRAYETH THEE?UG# 21 PETER SEEING HIM SAITH TO JESUS, LORD, AND WHAT SHALL THIS MAN DO?TL# 22 JESUS SAITH UNTO HIM, IF I WILL THAT HE TARRY TILL I COME, WHAT IS THAT TO THEE? FOLLOW THOU ME.IH# 23 THEN WENT THIS SAYING ABROAD AMONG THE BRETHREN, THAT THAT DISCIPLEN SHOULD NOT DIE: YET JESUS SAID NOT UNTO HIM, HE SHALL NOT DIE; BUT, IF I WILL1 THAT HE TARRY TILL I COME, WHAT IS THAT TO THEE?EK# 24 THIS IS THE DISCIPLE WHICH TESTIFIETH OF THESE THINGS, AND WROTE THESED0 THINGS: AND WE KNOW THAT HIS TESTIMONY IS TRUE.M# 25 AND THERE ARE ALSO MANY OTHER THINGS WHICH JESUS DID, THE WHICH, IF THEYJL SHOULD BE WRITTEN EVERY ONE, I SUPPOSE THAT EVEN THE WORLD ITSELF COULD NOT0 CONTAIN THE BOOKS THAT SHOULD BE WRITTEN. AMEN.BROAD AMONG THE BRETHREN, THAT THAT DISCIPLEN SHOULD NOT DIE: YET JESUS SAID NOT UNTO HIM, HE SHALL NOT DIE; BUT, IF I WILL1 THAT HE TARRY TILL I COME, WHAT IS THAT TO THEE?EK# 24 THIS IS THE DISCIPLE WHICH TESTIFIETH OF THESE THINGS, AND WROTE THESED0 THINGS: AND WE KNOW THAT HIS TESTIMONY IS TRUE.M# 25 AND THERE ARE ALSO MANY OTHER THINGS WHICH JESUS DID, THE WHICH, IF THEYJL SHOULD BE WRITTEN EVERY ONE, I SUPPOSE THAT EVEN TH00CB<%X>%+%O-%TADATADATA * BOOK44 ACTS = CHAPTER 1 J# 1 THE FORMER TREATISE HAVE I MADE, O THEOPHILUS, OF ALL THAT JESUS BEGAN BOTH TO DO AND TEACH,J# 2 UNTIL THE DAY IN WHICH HE WAS TAKEN UP, AFTER THAT HE THROUGH THE HOLYC GHOST HAD GIVEN COMMANDMENTS UNTO THE APOSTLES WHOM HE HAD CHOSEN:M# 3 TO WHOM ALSO HE SHEWED HIMSELF ALIVE AFTER HIS PASSION BY MANY INFALLIBLEM PROOFS, BEING SEEN OF THEM FORTY DAYS, AND SPEAKING OF THE THINGS PERTAINING TO THE KINGDOM OF GOD:L# 4 AND, BEING ASSEMBLED TOGETHER WITH THEM, COMMANDED THEM THAT THEY SHOULDJ NOT DEPART FROM JERUSALEM, BUT WAIT FOR THE PROMISE OF THE FATHER, WHICH, SAITH HE, YE HAVE HEARD OF ME.NI# 5 FOR JOHN TRULY BAPTIZED WITH WATER; BUT YE SHALL BE BAPTIZED WITH THET HOLY GHOST NOT MANY DAYS HENCE.L# 6 WHEN THEY THEREFORE WERE COME TOGETHER, THEY ASKED OF HIM, SAYING, LORD,< WILT THOU AT THIS TIME RESTORE AGAIN THE KINGDOM TO ISRAEL?E# 7 AND HE SAID UNTO THEM, IT IS NOT FOR YOU TO KNOW THE TIMES OR THED5 SEASONS, WHICH THE FATHER HATH PUT IN HIS OWN POWER.DK# 8 BUT YE SHALL RECEIVE POWER, AFTER THAT THE HOLY GHOST IS COME UPON YOU:EL AND YE SHALL BE WITNESSES UNTO ME BOTH IN JERUSALEM, AND IN ALL JUDAEA, AND6 IN SAMARIA, AND UNTO THE UTTERMOST PART OF THE EARTH.L# 9 AND WHEN HE HAD SPOKEN THESE THINGS, WHILE THEY BEHELD, HE WAS TAKEN UP;- AND A CLOUD RECEIVED HIM OUT OF THEIR SIGHT. J# 10 AND WHILE THEY LOOKED STEDFASTLY TOWARD HEAVEN AS HE WENT UP, BEHOLD,( TWO MEN STOOD BY THEM IN WHITE APPAREL;L# 11 WHICH ALSO SAID, YE MEN OF GALILEE, WHY STAND YE GAZING UP INTO HEAVEN?J THIS SAME JESUS, WHICH IS TAKEN UP FROM YOU INTO HEAVEN, SHALL SO COME IN0 LIKE MANNER AS YE HAVE SEEN HIM GO INTO HEAVEN.M# 12 THEN RETURNED THEY UNTO JERUSALEM FROM THE MOUNT CALLED OLIVET, WHICH ISH' FROM JERUSALEM A SABBATH DAYS JOURNEY.EM# 13 AND WHEN THEY WERE COME IN, THEY WENT UP INTO AN UPPER ROOM, WHERE ABODEWN BOTH PETER, AND JAMES, AND JOHN, AND ANDREW, PHILIP, AND THOMAS, BARTHOLOMEW,I AND MATTHEW, JAMES THE SON OF ALPHAEUS, AND SIMON ZELOTES, AND JUDAS THEA BROTHER OF JAMES.M# 14 THESE ALL CONTINUED WITH ONE ACCORD IN PRAYER AND SUPPLICATION, WITH THEM< WOMEN, AND MARY THE MOTHER OF JESUS, AND WITH HIS BRETHREN.H# 15 AND IN THOSE DAYS PETER STOOD UP IN THE MIDST OF THE DISCIPLES, ANDG SAID, (THE NUMBER OF NAMES TOGETHER WERE ABOUT AN HUNDRED AND TWENTY,),K# 16 MEN AND BRETHREN, THIS SCRIPTURE MUST NEEDS HAVE BEEN FULFILLED, WHICHON THE HOLY GHOST BY THE MOUTH OF DAVID SPAKE BEFORE CONCERNING JUDAS, WHICH WAS GUIDE TO THEM THAT TOOK JESUS. I# 17 FOR HE WAS NUMBERED WITH US, AND HAD OBTAINED PART OF THIS MINISTRY. L# 18 NOW THIS MAN PURCHASED A FIELD WITH THE REWARD OF INIQUITY; AND FALLINGH HEADLONG, HE BURST ASUNDER IN THE MIDST, AND ALL HIS BOWELS GUSHED OUT.J# 19 AND IT WAS KNOWN UNTO ALL THE DWELLERS AT JERUSALEM; INSOMUCH AS THATL FIELD IS CALLED IN THEIR PROPER TONGUE, ACELDAMA, THAT IS TO SAY, THE FIELD OF BLOOD.M# 20 FOR IT IS WRITTEN IN THE BOOK OF PSALMS, LET HIS HABITATION BE DESOLATE,HC AND LET NO MAN DWELL THEREIN: AND HIS BISHOPRICK LET ANOTHER TAKE. J# 21 WHEREFORE OF THESE MEN WHICH HAVE COMPANIED WITH US ALL THE TIME THAT) THE LORD JESUS WENT IN AND OUT AMONG US,IM# 22 BEGINNING FROM THE BAPTISM OF JOHN, UNTO THAT SAME DAY THAT HE WAS TAKEN N UP FROM US, MUST ONE BE ORDAINED TO BE A WITNESS WITH US OF HIS RESURRECTION.M# 23 AND THEY APPOINTED TWO, JOSEPH CALLED BARSABAS, WHO WAS SURNAMED JUSTUS,O AND MATTHIAS.K# 24 AND THEY PRAYED, AND SAID, THOU, LORD, WHICH KNOWEST THE HEARTS OF ALLN1 MEN, SHEW WHETHER OF THESE TWO THOU HAST CHOSEN, M# 25 THAT HE MAY TAKE PART OF THIS MINISTRY AND APOSTLESHIP, FROM WHICH JUDASH: BY TRANSGRESSION FELL, THAT HE MIGHT GO TO HIS OWN PLACE.K# 26 AND THEY GAVE FORTH THEIR LOTS; AND THE LOT FELL UPON MATTHIAS; AND HEU' WAS NUMBERED WITH THE ELEVEN APOSTLES.I = CHAPTER 2 H# 1 AND WHEN THE DAY OF PENTECOST WAS FULLY COME, THEY WERE ALL WITH ONE ACCORD IN ONE PLACE.DL# 2 AND SUDDENLY THERE CAME A SOUND FROM HEAVEN AS OF A RUSHING MIGHTY WIND,5 AND IT FILLED ALL THE HOUSE WHERE THEY WERE S00C'AD%5%T6%! !ITTING.HK# 3 AND THERE APPEARED UNTO THEM CLOVEN TONGUES LIKE AS OF FIRE, AND IT SATC UPON EACH OF THEM.EI# 4 AND THEY WERE ALL FILLED WITH THE HOLY GHOST, AND BEGAN TO SPEAK WITHE2 OTHER TONGUES, AS THE SPIRIT GAVE THEM UTTERANCE.G# 5 AND THERE WERE DWELLING AT JERUSALEM JEWS, DEVOUT MEN, OUT OF EVERYY NATION UNDER HEAVEN. J# 6 NOW WHEN THIS WAS NOISED ABROAD, THE MULTITUDE CAME TOGETHER, AND WEREI CONFOUNDED, BECAUSE THAT EVERY MAN HEARD THEM SPEAK IN HIS OWN LANGUAGE.TJ# 7 AND THEY WERE ALL AMAZED AND MARVELLED, SAYING ONE TO ANOTHER, BEHOLD,* ARE NOT ALL THESE WHICH SPEAK GALILAEANS?F# 8 AND HOW HEAR WE EVERY MAN IN OUR OWN TONGUE, WHEREIN WE WERE BORN?L# 9 PARTHIANS, AND MEDES, AND ELAMITES, AND THE DWELLERS IN MESOPOTAMIA, AND0 IN JUDAEA, AND CAPPADOCIA, IN PONTUS, AND ASIA,F# 10 PHRYGIA, AND PAMPHYLIA, IN EGYPT, AND IN THE PARTS OF LIBYA ABOUT4 CYRENE, AND STRANGERS OF ROME, JEWS AND PROSELYTES,L# 11 CRETES AND ARABIANS, WE DO HEAR THEM SPEAK IN OUR TONGUES THE WONDERFUL WORKS OF GOD.M# 12 AND THEY WERE ALL AMAZED, AND WERE IN DOUBT, SAYING ONE TO ANOTHER, WHATK MEANETH THIS?9# 13 OTHERS MOCKING SAID, THESE MEN ARE FULL OF NEW WINE.EJ# 14 BUT PETER, STANDING UP WITH THE ELEVEN, LIFTED UP HIS VOICE, AND SAIDI UNTO THEM, YE MEN OF JUDAEA, AND ALL YE THAT DWELL AT JERUSALEM, BE THIS ) KNOWN UNTO YOU, AND HEARKEN TO MY WORDS:FI# 15 FOR THESE ARE NOT DRUNKEN, AS YE SUPPOSE, SEEING IT IS BUT THE THIRDE HOUR OF THE DAY.E;# 16 BUT THIS IS THAT WHICH WAS SPOKEN BY THE PROPHET JOEL;OK# 17 AND IT SHALL COME TO PASS IN THE LAST DAYS, SAITH GOD, I WILL POUR OUTWN OF MY SPIRIT UPON ALL FLESH: AND YOUR SONS AND YOUR DAUGHTERS SHALL PROPHESY,K AND YOUR YOUNG MEN SHALL SEE VISIONS, AND YOUR OLD MEN SHALL DREAM DREAMS:K# 18 AND ON MY SERVANTS AND ON MY HANDMAIDENS I WILL POUR OUT IN THOSE DAYSK' OF MY SPIRIT; AND THEY SHALL PROPHESY:M# 19 AND I WILL SHEW WONDERS IN HEAVEN ABOVE, AND SIGNS IN THE EARTH BENEATH;U& BLOOD, AND FIRE, AND VAPOUR OF SMOKE:K# 20 THE SUN SHALL BE TURNED INTO DARKNESS, AND THE MOON INTO BLOOD, BEFOREA, THE GREAT AND NOTABLE DAY OF THE LORD COME:L# 21 AND IT SHALL COME TO PASS, THAT WHOSOEVER SHALL CALL ON THE NAME OF THE LORD SHALL BE SAVED. M# 22 YE MEN OF ISRAEL, HEAR THESE WORDS; JESUS OF NAZARETH, A MAN APPROVED OFMM GOD AMONG YOU BY MIRACLES AND WONDERS AND SIGNS, WHICH GOD DID BY HIM IN THEP* MIDST OF YOU, AS YE YOURSELVES ALSO KNOW:I# 23 HIM, BEING DELIVERED BY THE DETERMINATE COUNSEL AND FOREKNOWLEDGE OF B GOD, YE HAVE TAKEN, AND BY WICKED HANDS HAVE CRUCIFIED AND SLAIN:J# 24 WHOM GOD HATH RAISED UP, HAVING LOOSED THE PAINS OF DEATH: BECAUSE IT1 WAS NOT POSSIBLE THAT HE SHOULD BE HOLDEN OF IT.EK# 25 FOR DAVID SPEAKETH CONCERNING HIM, I FORESAW THE LORD ALWAYS BEFORE MY;> FACE, FOR HE IS ON MY RIGHT HAND, THAT I SHOULD NOT BE MOVED:M# 26 THEREFORE DID MY HEART REJOICE, AND MY TONGUE WAS GLAD; MOREOVER ALSO MYU FLESH SHALL REST IN HOPE:J# 27 BECAUSE THOU WILT NOT LEAVE MY SOUL IN HELL, NEITHER WILT THOU SUFFER" THINE HOLY ONE TO SEE CORRUPTION.L# 28 THOU HAST MADE KNOWN TO ME THE WAYS OF LIFE; THOU SHALT MAKE ME FULL OF JOY WITH THY COUNTENANCE.K# 29 MEN AND BRETHREN, LET ME FREELY SPEAK UNTO YOU OF THE PATRIARCH DAVID,IM THAT HE IS BOTH DEAD AND BURIED, AND HIS SEPULCHRE IS WITH US UNTO THIS DAY.,K# 30 THEREFORE BEING A PROPHET, AND KNOWING THAT GOD HAD SWORN WITH AN OATHGI TO HIM, THAT OF THE FRUIT OF HIS LOINS, ACCORDING TO THE FLESH, HE WOULDO& RAISE UP CHRIST TO SIT ON HIS THRONE;M# 31 HE SEEING THIS BEFORE SPAKE OF THE RESURRECTION OF CHRIST, THAT HIS SOULW< WAS NOT LEFT IN HELL, NEITHER HIS FLESH DID SEE CORRUPTION.A# 32 THIS JESUS HATH GOD RAISED UP, WHEREOF WE ALL ARE WITNESSES. M# 33 THEREFORE BEING BY THE RIGHT HAND OF GOD EXALTED, AND HAVING RECEIVED OFRL THE FATHER THE PROMISE OF THE HOLY GHOST, HE HATH SHED FORTH THIS, WHICH YE NOW SEE AND HEAR.J# 34 FOR DAVID IS NOT ASCENDED INTO THE HEAVENS: BUT HE SAITH HIMSELF, THE3 LORD SAID UNTO MY LORD, SIT THOU ON MY RIGHT HAND,1)# 35 UNTIL I MAKE THY FOES THY FOOTSTOOL.C00CB<%X>%+%O-%TADATADATAM# 36 THEREFORE LET ALL THE HOUSE OF ISRAEL KNOW ASSUREDLY, THAT GOD HATH MADEE> THE SAME JESUS, WHOM YE HAVE CRUCIFIED, BOTH LORD AND CHRIST.I# 37 NOW WHEN THEY HEARD THIS, THEY WERE PRICKED IN THEIR HEART, AND SAIDDL UNTO PETER AND TO THE REST OF THE APOSTLES, MEN AND BRETHREN, WHAT SHALL WE DO?K# 38 THEN PETER SAID UNTO THEM, REPENT, AND BE BAPTIZED EVERY ONE OF YOU INEM THE NAME OF JESUS CHRIST FOR THE REMISSION OF SINS, AND YE SHALL RECEIVE THE  GIFT OF THE HOLY GHOST.K# 39 FOR THE PROMISE IS UNTO YOU, AND TO YOUR CHILDREN, AND TO ALL THAT AREU7 AFAR OFF, EVEN AS MANY AS THE LORD OUR GOD SHALL CALL. F# 40 AND WITH MANY OTHER WORDS DID HE TESTIFY AND EXHORT, SAYING, SAVE* YOURSELVES FROM THIS UNTOWARD GENERATION.L# 41 THEN THEY THAT GLADLY RECEIVED HIS WORD WERE BAPTIZED: AND THE SAME DAY7 THERE WERE ADDED UNTO THEM ABOUT THREE THOUSAND SOULS.VK# 42 AND THEY CONTINUED STEDFASTLY IN THE APOSTLES DOCTRINE AND FELLOWSHIP,Y* AND IN BREAKING OF BREAD, AND IN PRAYERS.K# 43 AND FEAR CAME UPON EVERY SOUL: AND MANY WONDERS AND SIGNS WERE DONE BYR THE APOSTLES.D# 44 AND ALL THAT BELIEVED WERE TOGETHER, AND HAD ALL THINGS COMMON;I# 45 AND SOLD THEIR POSSESSIONS AND GOODS, AND PARTED THEM TO ALL MEN, ASA EVERY MAN HAD NEED.K# 46 AND THEY, CONTINUING DAILY WITH ONE ACCORD IN THE TEMPLE, AND BREAKINGEN BREAD FROM HOUSE TO HOUSE, DID EAT THEIR MEAT WITH GLADNESS AND SINGLENESS OF HEART, L# 47 PRAISING GOD, AND HAVING FAVOUR WITH ALL THE PEOPLE. AND THE LORD ADDED- TO THE CHURCH DAILY SUCH AS SHOULD BE SAVED.A = CHAPTER 3 N# 1 NOW PETER AND JOHN WENT UP TOGETHER INTO THE TEMPLE AT THE HOUR OF PRAYER, BEING THE NINTH HOUR.L# 2 AND A CERTAIN MAN LAME FROM HIS MOTHERS WOMB WAS CARRIED, WHOM THEY LAIDJ DAILY AT THE GATE OF THE TEMPLE WHICH IS CALLED BEAUTIFUL, TO ASK ALMS OF# THEM THAT ENTERED INTO THE TEMPLE; H# 3 WHO SEEING PETER AND JOHN ABOUT TO GO INTO THE TEMPLE ASKED AN ALMS.G# 4 AND PETER, FASTENING HIS EYES UPON HIM WITH JOHN, SAID, LOOK ON US.DG# 5 AND HE GAVE HEED UNTO THEM, EXPECTING TO RECEIVE SOMETHING OF THEM. K# 6 THEN PETER SAID, SILVER AND GOLD HAVE I NONE; BUT SUCH AS I HAVE GIVE IB@ THEE: IN THE NAME OF JESUS CHRIST OF NAZARETH RISE UP AND WALK.M# 7 AND HE TOOK HIM BY THE RIGHT HAND, AND LIFTED HIM UP: AND IMMEDIATELY HISL( FEET AND ANKLE BONES RECEIVED STRENGTH.G# 8 AND HE LEAPING UP STOOD, AND WALKED, AND ENTERED WITH THEM INTO THET0 TEMPLE, WALKING, AND LEAPING, AND PRAISING GOD.8# 9 AND ALL THE PEOPLE SAW HIM WALKING AND PRAISING GOD:M# 10 AND THEY KNEW THAT IT WAS HE WHICH SAT FOR ALMS AT THE BEAUTIFUL GATE OFRM THE TEMPLE: AND THEY WERE FILLED WITH WONDER AND AMAZEMENT AT THAT WHICH HADA HAPPENED UNTO HIM. M# 11 AND AS THE LAME MAN WHICH WAS HEALED HELD PETER AND JOHN, ALL THE PEOPLEIE RAN TOGETHER UNTO THEM IN THE PORCH THAT IS CALLED SOLOMONS, GREATLY WONDERING.IJ# 12 AND WHEN PETER SAW IT, HE ANSWERED UNTO THE PEOPLE, YE MEN OF ISRAEL,K WHY MARVEL YE AT THIS? OR WHY LOOK YE SO EARNESTLY ON US, AS THOUGH BY OURA4 OWN POWER OR HOLINESS WE HAD MADE THIS MAN TO WALK?L# 13 THE GOD OF ABRAHAM, AND OF ISAAC, AND OF JACOB, THE GOD OF OUR FATHERS,J HATH GLORIFIED HIS SON JESUS; WHOM YE DELIVERED UP, AND DENIED HIM IN THE: PRESENCE OF PILATE, WHEN HE WAS DETERMINED TO LET HIM GO.J# 14 BUT YE DENIED THE HOLY ONE AND THE JUST, AND DESIRED A MURDERER TO BE GRANTED UNTO YOU;G# 15 AND KILLED THE PRINCE OF LIFE, WHOM GOD HATH RAISED FROM THE DEAD;W WHEREOF WE ARE WITNESSES.K# 16 AND HIS NAME THROUGH FAITH IN HIS NAME HATH MADE THIS MAN STRONG, WHOM L YE SEE AND KNOW: YEA, THE FAITH WHICH IS BY HIM HATH GIVEN HIM THIS PERFECT& SOUNDNESS IN THE PRESENCE OF YOU ALL.K# 17 AND NOW, BRETHREN, I WOT THAT THROUGH IGNORANCE YE DID IT, AS DID ALSOT YOUR RULERS.DJ# 18 BUT THOSE THINGS, WHICH GOD BEFORE HAD SHEWED BY THE MOUTH OF ALL HIS; PROPHETS, THAT CHRIST SHOULD SUFFER, HE HATH SO FULFILLED. I# 19 REPENT YE THEREFORE, AND BE CONVERTED, THAT YOUR SINS MAY BE BLOTTEDIL OUT, WHEN THE TIMES OF REFRESHING SHALL COME FROM THE PRESENCE OF THE LORD.H# 20 AND H00C'AD%5%T6%! !E SHALL SEND JESUS CHRIST, WHICH BEFORE WAS PREACHED UNTO YOU:G# 21 WHOM THE HEAVEN MUST RECEIVE UNTIL THE TIMES OF RESTITUTION OF ALLRN THINGS, WHICH GOD HATH SPOKEN BY THE MOUTH OF ALL HIS HOLY PROPHETS SINCE THE WORLD BEGAN.,M# 22 FOR MOSES TRULY SAID UNTO THE FATHERS, A PROPHET SHALL THE LORD YOUR GODOK RAISE UP UNTO YOU OF YOUR BRETHREN, LIKE UNTO ME; HIM SHALL YE HEAR IN ALLD) THINGS WHATSOEVER HE SHALL SAY UNTO YOU.NI# 23 AND IT SHALL COME TO PASS, THAT EVERY SOUL, WHICH WILL NOT HEAR THATD3 PROPHET, SHALL BE DESTROYED FROM AMONG THE PEOPLE.DJ# 24 YEA, AND ALL THE PROPHETS FROM SAMUEL AND THOSE THAT FOLLOW AFTER, AS; MANY AS HAVE SPOKEN, HAVE LIKEWISE FORETOLD OF THESE DAYS.HL# 25 YE ARE THE CHILDREN OF THE PROPHETS, AND OF THE COVENANT WHICH GOD MADEN WITH OUR FATHERS, SAYING UNTO ABRAHAM, AND IN THY SEED SHALL ALL THE KINDREDS OF THE EARTH BE BLESSED.YJ# 26 UNTO YOU FIRST GOD, HAVING RAISED UP HIS SON JESUS, SENT HIM TO BLESS; YOU, IN TURNING AWAY EVERY ONE OF YOU FROM HIS INIQUITIES.P = CHAPTER 4 J# 1 AND AS THEY SPAKE UNTO THE PEOPLE, THE PRIESTS, AND THE CAPTAIN OF THE+ TEMPLE, AND THE SADDUCEES, CAME UPON THEM,SM# 2 BEING GRIEVED THAT THEY TAUGHT THE PEOPLE, AND PREACHED THROUGH JESUS THEO RESURRECTION FROM THE DEAD.L# 3 AND THEY LAID HANDS ON THEM, AND PUT THEM IN HOLD UNTO THE NEXT DAY: FOR IT WAS NOW EVENTIDE.M# 4 HOWBEIT MANY OF THEM WHICH HEARD THE WORD BELIEVED; AND THE NUMBER OF THEE MEN WAS ABOUT FIVE THOUSAND.NI# 5 AND IT CAME TO PASS ON THE MORROW, THAT THEIR RULERS, AND ELDERS, AND SCRIBES,KL# 6 AND ANNAS THE HIGH PRIEST, AND CAIAPHAS, AND JOHN, AND ALEXANDER, AND ASJ MANY AS WERE OF THE KINDRED OF THE HIGH PRIEST, WERE GATHERED TOGETHER AT JERUSALEM.GM# 7 AND WHEN THEY HAD SET THEM IN THE MIDST, THEY ASKED, BY WHAT POWER, OR BYD WHAT NAME, HAVE YE DONE THIS?L# 8 THEN PETER, FILLED WITH THE HOLY GHOST, SAID UNTO THEM, YE RULERS OF THE PEOPLE, AND ELDERS OF ISRAEL,L# 9 IF WE THIS DAY BE EXAMINED OF THE GOOD DEED DONE TO THE IMPOTENT MAN, BY WHAT MEANS HE IS MADE WHOLE; K# 10 BE IT KNOWN UNTO YOU ALL, AND TO ALL THE PEOPLE OF ISRAEL, THAT BY THEAN NAME OF JESUS CHRIST OF NAZARETH, WHOM YE CRUCIFIED, WHOM GOD RAISED FROM THE= DEAD, EVEN BY HIM DOTH THIS MAN STAND HERE BEFORE YOU WHOLE.IH# 11 THIS IS THE STONE WHICH WAS SET AT NOUGHT OF YOU BUILDERS, WHICH IS BECOME THE HEAD OF THE CORNER.YJ# 12 NEITHER IS THERE SALVATION IN ANY OTHER: FOR THERE IS NONE OTHER NAME8 UNDER HEAVEN GIVEN AMONG MEN, WHEREBY WE MUST BE SAVED.I# 13 NOW WHEN THEY SAW THE BOLDNESS OF PETER AND JOHN, AND PERCEIVED THAT N THEY WERE UNLEARNED AND IGNORANT MEN, THEY MARVELLED; AND THEY TOOK KNOWLEDGE( OF THEM, THAT THEY HAD BEEN WITH JESUS.J# 14 AND BEHOLDING THE MAN WHICH WAS HEALED STANDING WITH THEM, THEY COULD SAY NOTHING AGAINST IT.J# 15 BUT WHEN THEY HAD COMMANDED THEM TO GO ASIDE OUT OF THE COUNCIL, THEY CONFERRED AMONG THEMSELVES,M# 16 SAYING, WHAT SHALL WE DO TO THESE MEN? FOR THAT INDEED A NOTABLE MIRACLE,L HATH BEEN DONE BY THEM IS MANIFEST TO ALL THEM THAT DWELL IN JERUSALEM; AND WE CANNOT DENY IT.AM# 17 BUT THAT IT SPREAD NO FURTHER AMONG THE PEOPLE, LET US STRAITLY THREATEND9 THEM, THAT THEY SPEAK HENCEFORTH TO NO MAN IN THIS NAME.LK# 18 AND THEY CALLED THEM, AND COMMANDED THEM NOT TO SPEAK AT ALL NOR TEACHA IN THE NAME OF JESUS.K# 19 BUT PETER AND JOHN ANSWERED AND SAID UNTO THEM, WHETHER IT BE RIGHT INGC THE SIGHT OF GOD TO HEARKEN UNTO YOU MORE THAN UNTO GOD, JUDGE YE.DE# 20 FOR WE CANNOT BUT SPEAK THE THINGS WHICH WE HAVE SEEN AND HEARD. H# 21 SO WHEN THEY HAD FURTHER THREATENED THEM, THEY LET THEM GO, FINDINGG NOTHING HOW THEY MIGHT PUNISH THEM, BECAUSE OF THE PEOPLE: FOR ALL MENY' GLORIFIED GOD FOR THAT WHICH WAS DONE.LK# 22 FOR THE MAN WAS ABOVE FORTY YEARS OLD, ON WHOM THIS MIRACLE OF HEALINGA WAS SHEWED.L# 23 AND BEING LET GO, THEY WENT TO THEIR OWN COMPANY, AND REPORTED ALL THAT1 THE CHIEF PRIESTS AND ELDERS HAD SAID UNTO THEM.OI# 24 AND WHEN THEY HEARD THAT, THEY LIFTED UP THEIR VOICE TO GOD WITH ONE M ACCORD, AND SAID, L00CB<%X>%+%O-%TADATADATAORD, THOU ART GOD, WHICH HAST MADE HEAVEN, AND EARTH, ANDE" THE SEA, AND ALL THAT IN THEM IS:I# 25 WHO BY THE MOUTH OF THY SERVANT DAVID HAST SAID, WHY DID THE HEATHENR* RAGE, AND THE PEOPLE IMAGINE VAIN THINGS?K# 26 THE KINGS OF THE EARTH STOOD UP, AND THE RULERS WERE GATHERED TOGETHERA* AGAINST THE LORD, AND AGAINST HIS CHRIST.J# 27 FOR OF A TRUTH AGAINST THY HOLY CHILD JESUS, WHOM THOU HAST ANOINTED,M BOTH HEROD, AND PONTIUS PILATE, WITH THE GENTILES, AND THE PEOPLE OF ISRAEL, WERE GATHERED TOGETHER,J# 28 FOR TO DO WHATSOEVER THY HAND AND THY COUNSEL DETERMINED BEFORE TO BE DONE.K# 29 AND NOW, LORD, BEHOLD THEIR THREATENINGS: AND GRANT UNTO THY SERVANTS,E0 THAT WITH ALL BOLDNESS THEY MAY SPEAK THY WORD,K# 30 BY STRETCHING FORTH THINE HAND TO HEAL; AND THAT SIGNS AND WONDERS MAYA- BE DONE BY THE NAME OF THY HOLY CHILD JESUS.FM# 31 AND WHEN THEY HAD PRAYED, THE PLACE WAS SHAKEN WHERE THEY WERE ASSEMBLEDOK TOGETHER; AND THEY WERE ALL FILLED WITH THE HOLY GHOST, AND THEY SPAKE THEA WORD OF GOD WITH BOLDNESS. I# 32 AND THE MULTITUDE OF THEM THAT BELIEVED WERE OF ONE HEART AND OF ONE9K SOUL: NEITHER SAID ANY OF THEM THAT OUGHT OF THE THINGS WHICH HE POSSESSEDA- WAS HIS OWN; BUT THEY HAD ALL THINGS COMMON. J# 33 AND WITH GREAT POWER GAVE THE APOSTLES WITNESS OF THE RESURRECTION OF3 THE LORD JESUS: AND GREAT GRACE WAS UPON THEM ALL.AF# 34 NEITHER WAS THERE ANY AMONG THEM THAT LACKED: FOR AS MANY AS WEREN POSSESSORS OF LANDS OR HOUSES SOLD THEM, AND BROUGHT THE PRICES OF THE THINGS THAT WERE SOLD,L# 35 AND LAID THEM DOWN AT THE APOSTLES FEET: AND DISTRIBUTION WAS MADE UNTO$ EVERY MAN ACCORDING AS HE HAD NEED.K# 36 AND JOSES, WHO BY THE APOSTLES WAS SURNAMED BARNABAS, (WHICH IS, BEINGAN INTERPRETED, THE SON OF CONSOLATION,) A LEVITE, AND OF THE COUNTRY OF CYPRUS,M# 37 HAVING LAND, SOLD IT, AND BROUGHT THE MONEY, AND LAID IT AT THE APOSTLESH FEET. = CHAPTER 5 C# 1 BUT A CERTAIN MAN NAMED ANANIAS, WITH SAPPHIRA HIS WIFE, SOLD AS POSSESSION,I# 2 AND KEPT BACK PART OF THE PRICE, HIS WIFE ALSO BEING PRIVY TO IT, ANDW: BROUGHT A CERTAIN PART, AND LAID IT AT THE APOSTLES FEET.L# 3 BUT PETER SAID, ANANIAS, WHY HATH SATAN FILLED THINE HEART TO LIE TO THE< HOLY GHOST, AND TO KEEP BACK PART OF THE PRICE OF THE LAND?K# 4 WHILES IT REMAINED, WAS IT NOT THINE OWN? AND AFTER IT WAS SOLD, WAS IT,K NOT IN THINE OWN POWER? WHY HAST THOU CONCEIVED THIS THING IN THINE HEART? + THOU HAST NOT LIED UNTO MEN, BUT UNTO GOD.II# 5 AND ANANIAS HEARING THESE WORDS FELL DOWN, AND GAVE UP THE GHOST: ANDS5 GREAT FEAR CAME ON ALL THEM THAT HEARD THESE THINGS.PJ# 6 AND THE YOUNG MEN AROSE, WOUND HIM UP, AND CARRIED HIM OUT, AND BURIED HIM. G# 7 AND IT WAS ABOUT THE SPACE OF THREE HOURS AFTER, WHEN HIS WIFE, NOTH KNOWING WHAT WAS DONE, CAME IN.H# 8 AND PETER ANSWERED UNTO HER, TELL ME WHETHER YE SOLD THE LAND FOR SO& MUCH? AND SHE SAID, YEA, FOR SO MUCH.M# 9 THEN PETER SAID UNTO HER, HOW IS IT THAT YE HAVE AGREED TOGETHER TO TEMPT G THE SPIRIT OF THE LORD? BEHOLD, THE FEET OF THEM WHICH HAVE BURIED THYG3 HUSBAND ARE AT THE DOOR, AND SHALL CARRY THEE OUT.J# 10 THEN FELL SHE DOWN STRAIGHTWAY AT HIS FEET, AND YIELDED UP THE GHOST:H AND THE YOUNG MEN CAME IN, AND FOUND HER DEAD, AND, CARRYING HER FORTH, BURIED HER BY HER HUSBAND.EM# 11 AND GREAT FEAR CAME UPON ALL THE CHURCH, AND UPON AS MANY AS HEARD THESEO THINGS.I# 12 AND BY THE HANDS OF THE APOSTLES WERE MANY SIGNS AND WONDERS WROUGHT H AMONG THE PEOPLE; (AND THEY WERE ALL WITH ONE ACCORD IN SOLOMONS PORCH.F# 13 AND OF THE REST DURST NO MAN JOIN HIMSELF TO THEM: BUT THE PEOPLE MAGNIFIED THEM.J# 14 AND BELIEVERS WERE THE MORE ADDED TO THE LORD, MULTITUDES BOTH OF MEN AND WOMEN.)I# 15 INSOMUCH THAT THEY BROUGHT FORTH THE SICK INTO THE STREETS, AND LAID K THEM ON BEDS AND COUCHES, THAT AT THE LEAST THE SHADOW OF PETER PASSING BYA MIGHT OVERSHADOW SOME OF THEM.2C# 16 THERE CAME ALSO A MULTITUDE OUT OF THE CITIES ROUND ABOUT UNTO G JERUSALEM, BRINGING SICK FOLKS, AND THEM WHICH WERE VEXED WITH UNCLEAN.) SPIRITS: AND THEY WERE HEALED E00C'AD%5%T6%! !VERY ONE.MM# 17 THEN THE HIGH PRIEST ROSE UP, AND ALL THEY THAT WERE WITH HIM, (WHICH ISE> THE SECT OF THE SADDUCEES,) AND WERE FILLED WITH INDIGNATION,M# 18 AND LAID THEIR HANDS ON THE APOSTLES, AND PUT THEM IN THE COMMON PRISON.BL# 19 BUT THE ANGEL OF THE LORD BY NIGHT OPENED THE PRISON DOORS, AND BROUGHT THEM FORTH, AND SAID,J# 20 GO, STAND AND SPEAK IN THE TEMPLE TO THE PEOPLE ALL THE WORDS OF THIS LIFE.H# 21 AND WHEN THEY HEARD THAT, THEY ENTERED INTO THE TEMPLE EARLY IN THEL MORNING, AND TAUGHT. BUT THE HIGH PRIEST CAME, AND THEY THAT WERE WITH HIM,G AND CALLED THE COUNCIL TOGETHER, AND ALL THE SENATE OF THE CHILDREN OFL5 ISRAEL, AND SENT TO THE PRISON TO HAVE THEM BROUGHT.AG# 22 BUT WHEN THE OFFICERS CAME, AND FOUND THEM NOT IN THE PRISON, THEYO RETURNED AND TOLD,EL# 23 SAYING, THE PRISON TRULY FOUND WE SHUT WITH ALL SAFETY, AND THE KEEPERSK STANDING WITHOUT BEFORE THE DOORS: BUT WHEN WE HAD OPENED, WE FOUND NO MANH WITHIN.I# 24 NOW WHEN THE HIGH PRIEST AND THE CAPTAIN OF THE TEMPLE AND THE CHIEFIL PRIESTS HEARD THESE THINGS, THEY DOUBTED OF THEM WHEREUNTO THIS WOULD GROW.H# 25 THEN CAME ONE AND TOLD THEM, SAYING, BEHOLD, THE MEN WHOM YE PUT IN< PRISON ARE STANDING IN THE TEMPLE, AND TEACHING THE PEOPLE.F# 26 THEN WENT THE CAPTAIN WITH THE OFFICERS, AND BROUGHT THEM WITHOUTI VIOLENCE: FOR THEY FEARED THE PEOPLE, LEST THEY SHOULD HAVE BEEN STONED.IJ# 27 AND WHEN THEY HAD BROUGHT THEM, THEY SET THEM BEFORE THE COUNCIL: AND THE HIGH PRIEST ASKED THEM,M# 28 SAYING, DID NOT WE STRAITLY COMMAND YOU THAT YE SHOULD NOT TEACH IN THIS N NAME? AND, BEHOLD, YE HAVE FILLED JERUSALEM WITH YOUR DOCTRINE, AND INTEND TO BRING THIS MANS BLOOD UPON US. J# 29 THEN PETER AND THE OTHER APOSTLES ANSWERED AND SAID, WE OUGHT TO OBEY GOD RATHER THAN MEN.HI# 30 THE GOD OF OUR FATHERS RAISED UP JESUS, WHOM YE SLEW AND HANGED ON A, TREE.K# 31 HIM HATH GOD EXALTED WITH HIS RIGHT HAND TO BE A PRINCE AND A SAVIOUR,H; FOR TO GIVE REPENTANCE TO ISRAEL, AND FORGIVENESS OF SINS.8M# 32 AND WE ARE HIS WITNESSES OF THESE THINGS; AND SO IS ALSO THE HOLY GHOST,M+ WHOM GOD HATH GIVEN TO THEM THAT OBEY HIM. J# 33 WHEN THEY HEARD THAT, THEY WERE CUT TO THE HEART, AND TOOK COUNSEL TO SLAY THEM.TJ# 34 THEN STOOD THERE UP ONE IN THE COUNCIL, A PHARISEE, NAMED GAMALIEL, AL DOCTOR OF THE LAW, HAD IN REPUTATION AMONG ALL THE PEOPLE, AND COMMANDED TO' PUT THE APOSTLES FORTH A LITTLE SPACE;GJ# 35 AND SAID UNTO THEM, YE MEN OF ISRAEL, TAKE HEED TO YOURSELVES WHAT YE$ INTEND TO DO AS TOUCHING THESE MEN.L# 36 FOR BEFORE THESE DAYS ROSE UP THEUDAS, BOASTING HIMSELF TO BE SOMEBODY;H TO WHOM A NUMBER OF MEN, ABOUT FOUR HUNDRED, JOINED THEMSELVES: WHO WASN SLAIN; AND ALL, AS MANY AS OBEYED HIM, WERE SCATTERED, AND BROUGHT TO NOUGHT.K# 37 AFTER THIS MAN ROSE UP JUDAS OF GALILEE IN THE DAYS OF THE TAXING, ANDPL DREW AWAY MUCH PEOPLE AFTER HIM: HE ALSO PERISHED; AND ALL, EVEN AS MANY AS OBEYED HIM, WERE DISPERSED.L# 38 AND NOW I SAY UNTO YOU, REFRAIN FROM THESE MEN, AND LET THEM ALONE: FOR@ IF THIS COUNSEL OR THIS WORK BE OF MEN, IT WILL COME TO NOUGHT:M# 39 BUT IF IT BE OF GOD, YE CANNOT OVERTHROW IT; LEST HAPLY YE BE FOUND EVENN TO FIGHT AGAINST GOD.G# 40 AND TO HIM THEY AGREED: AND WHEN THEY HAD CALLED THE APOSTLES, ANDUM BEATEN THEM, THEY COMMANDED THAT THEY SHOULD NOT SPEAK IN THE NAME OF JESUS,N AND LET THEM GO. L# 41 AND THEY DEPARTED FROM THE PRESENCE OF THE COUNCIL, REJOICING THAT THEY2 WERE COUNTED WORTHY TO SUFFER SHAME FOR HIS NAME.J# 42 AND DAILY IN THE TEMPLE, AND IN EVERY HOUSE, THEY CEASED NOT TO TEACH AND PREACH JESUS CHRIST.: = CHAPTER 6 M# 1 AND IN THOSE DAYS, WHEN THE NUMBER OF THE DISCIPLES WAS MULTIPLIED, THEREGL AROSE A MURMURING OF THE GRECIANS AGAINST THE HEBREWS, BECAUSE THEIR WIDOWS* WERE NEGLECTED IN THE DAILY MINISTRATION.H# 2 THEN THE TWELVE CALLED THE MULTITUDE OF THE DISCIPLES UNTO THEM, ANDG SAID, IT IS NOT REASON THAT WE SHOULD LEAVE THE WORD OF GOD, AND SERVE  TABLES.J# 3 WHEREFORE, BRETHREN, LOOK YE OUT AMONG YOU SEVEN MEN OF HONEST REPORT,K FULL OF THE HOLY 00CB<%X>%+%O-%TADATADATAGHOST AND WISDOM, WHOM WE MAY APPOINT OVER THIS BUSINESS.L# 4 BUT WE WILL GIVE OURSELVES CONTINUALLY TO PRAYER, AND TO THE MINISTRY OF THE WORD.M# 5 AND THE SAYING PLEASED THE WHOLE MULTITUDE: AND THEY CHOSE STEPHEN, A MANCM FULL OF FAITH AND OF THE HOLY GHOST, AND PHILIP, AND PROCHORUS, AND NICANOR, = AND TIMON, AND PARMENAS, AND NICOLAS A PROSELYTE OF ANTIOCH:DJ# 6 WHOM THEY SET BEFORE THE APOSTLES: AND WHEN THEY HAD PRAYED, THEY LAID THEIR HANDS ON THEM.MM# 7 AND THE WORD OF GOD INCREASED; AND THE NUMBER OF THE DISCIPLES MULTIPLIEDVN IN JERUSALEM GREATLY; AND A GREAT COMPANY OF THE PRIESTS WERE OBEDIENT TO THE FAITH.SH# 8 AND STEPHEN, FULL OF FAITH AND POWER, DID GREAT WONDERS AND MIRACLES AMONG THE PEOPLE.L# 9 THEN THERE AROSE CERTAIN OF THE SYNAGOGUE, WHICH IS CALLED THE SYNAGOGUEK OF THE LIBERTINES, AND CYRENIANS, AND ALEXANDRIANS, AND OF THEM OF CILICIAH% AND OF ASIA, DISPUTING WITH STEPHEN.EK# 10 AND THEY WERE NOT ABLE TO RESIST THE WISDOM AND THE SPIRIT BY WHICH HE  SPAKE.;L# 11 THEN THEY SUBORNED MEN, WHICH SAID, WE HAVE HEARD HIM SPEAK BLASPHEMOUS& WORDS AGAINST MOSES, AND AGAINST GOD.I# 12 AND THEY STIRRED UP THE PEOPLE, AND THE ELDERS, AND THE SCRIBES, ANDR? CAME UPON HIM, AND CAUGHT HIM, AND BROUGHT HIM TO THE COUNCIL,OJ# 13 AND SET UP FALSE WITNESSES, WHICH SAID, THIS MAN CEASETH NOT TO SPEAK8 BLASPHEMOUS WORDS AGAINST THIS HOLY PLACE, AND THE LAW:I# 14 FOR WE HAVE HEARD HIM SAY, THAT THIS JESUS OF NAZARETH SHALL DESTROYIC THIS PLACE, AND SHALL CHANGE THE CUSTOMS WHICH MOSES DELIVERED US.EM# 15 AND ALL THAT SAT IN THE COUNCIL, LOOKING STEDFASTLY ON HIM, SAW HIS FACEG% AS IT HAD BEEN THE FACE OF AN ANGEL.E = CHAPTER 7 3# 1 THEN SAID THE HIGH PRIEST, ARE THESE THINGS SO? F# 2 AND HE SAID, MEN, BRETHREN, AND FATHERS, HEARKEN; THE GOD OF GLORYN APPEARED UNTO OUR FATHER ABRAHAM, WHEN HE WAS IN MESOPOTAMIA, BEFORE HE DWELT IN CHARRAN,M# 3 AND SAID UNTO HIM, GET THEE OUT OF THY COUNTRY, AND FROM THY KINDRED, AND , COME INTO THE LAND WHICH I SHALL SHEW THEE.M# 4 THEN CAME HE OUT OF THE LAND OF THE CHALDAEANS, AND DWELT IN CHARRAN: AND N FROM THENCE, WHEN HIS FATHER WAS DEAD, HE REMOVED HIM INTO THIS LAND, WHEREIN YE NOW DWELL.I# 5 AND HE GAVE HIM NONE INHERITANCE IN IT, NO, NOT SO MUCH AS TO SET HISNL FOOT ON: YET HE PROMISED THAT HE WOULD GIVE IT TO HIM FOR A POSSESSION, AND4 TO HIS SEED AFTER HIM, WHEN AS YET HE HAD NO CHILD.I# 6 AND GOD SPAKE ON THIS WISE, THAT HIS SEED SHOULD SOJOURN IN A STRANGEDJ LAND; AND THAT THEY SHOULD BRING THEM INTO BONDAGE, AND ENTREAT THEM EVIL FOUR HUNDRED YEARS.K# 7 AND THE NATION TO WHOM THEY SHALL BE IN BONDAGE WILL I JUDGE, SAID GOD:EB AND AFTER THAT SHALL THEY COME FORTH, AND SERVE ME IN THIS PLACE.M# 8 AND HE GAVE HIM THE COVENANT OF CIRCUMCISION: AND SO ABRAHAM BEGAT ISAAC,PK AND CIRCUMCISED HIM THE EIGHTH DAY; AND ISAAC BEGAT JACOB; AND JACOB BEGATR THE TWELVE PATRIARCHS.NL# 9 AND THE PATRIARCHS, MOVED WITH ENVY, SOLD JOSEPH INTO EGYPT: BUT GOD WAS WITH HIM,J# 10 AND DELIVERED HIM OUT OF ALL HIS AFFLICTIONS, AND GAVE HIM FAVOUR ANDL WISDOM IN THE SIGHT OF PHARAOH KING OF EGYPT; AND HE MADE HIM GOVERNOR OVER EGYPT AND ALL HIS HOUSE.RH# 11 NOW THERE CAME A DEARTH OVER ALL THE LAND OF EGYPT AND CHANAAN, AND7 GREAT AFFLICTION: AND OUR FATHERS FOUND NO SUSTENANCE.AG# 12 BUT WHEN JACOB HEARD THAT THERE WAS CORN IN EGYPT, HE SENT OUT OURO FATHERS FIRST.EF# 13 AND AT THE SECOND TIME JOSEPH WAS MADE KNOWN TO HIS BRETHREN; AND- JOSEPHS KINDRED WAS MADE KNOWN UNTO PHARAOH.LF# 14 THEN SENT JOSEPH, AND CALLED HIS FATHER JACOB TO HIM, AND ALL HIS' KINDRED, THREESCORE AND FIFTEEN SOULS.DB# 15 SO JACOB WENT DOWN INTO EGYPT, AND DIED, HE, AND OUR FATHERS,F# 16 AND WERE CARRIED OVER INTO SYCHEM, AND LAID IN THE SEPULCHRE THATM ABRAHAM BOUGHT FOR A SUM OF MONEY OF THE SONS OF EMMOR THE FATHER OF SYCHEM.TG# 17 BUT WHEN THE TIME OF THE PROMISE DREW NIGH, WHICH GOD HAD SWORN TOH2 ABRAHAM, THE PEOPLE GREW AND MULTIPLIED IN EGYPT,4# 18 TILL ANOTHER KING AROSE, WHICH KNEW NOT JOSEPH.E# 19 THE SAME DEALT SUBTILLY WITH OU00C'AD%5%T6%! !R KINDRED, AND EVIL ENTREATED OURK FATHERS, SO THAT THEY CAST OUT THEIR YOUNG CHILDREN, TO THE END THEY MIGHT NOT LIVE.K# 20 IN WHICH TIME MOSES WAS BORN, AND WAS EXCEEDING FAIR, AND NOURISHED UPE# IN HIS FATHERS HOUSE THREE MONTHS:UK# 21 AND WHEN HE WAS CAST OUT, PHARAOHS DAUGHTER TOOK HIM UP, AND NOURISHEDE HIM FOR HER OWN SON.GM# 22 AND MOSES WAS LEARNED IN ALL THE WISDOM OF THE EGYPTIANS, AND WAS MIGHTY IN WORDS AND IN DEEDS.OJ# 23 AND WHEN HE WAS FULL FORTY YEARS OLD, IT CAME INTO HIS HEART TO VISIT% HIS BRETHREN THE CHILDREN OF ISRAEL.AJ# 24 AND SEEING ONE OF THEM SUFFER WRONG, HE DEFENDED HIM, AND AVENGED HIM, THAT WAS OPPRESSED, AND SMOTE THE EGYPTIAN:K# 25 FOR HE SUPPOSED HIS BRETHREN WOULD HAVE UNDERSTOOD HOW THAT GOD BY HISW2 HAND WOULD DELIVER THEM: BUT THEY UNDERSTOOD NOT.K# 26 AND THE NEXT DAY HE SHEWED HIMSELF UNTO THEM AS THEY STROVE, AND WOULD K HAVE SET THEM AT ONE AGAIN, SAYING, SIRS, YE ARE BRETHREN; WHY DO YE WRONGW ONE TO ANOTHER?J# 27 BUT HE THAT DID HIS NEIGHBOUR WRONG THRUST HIM AWAY, SAYING, WHO MADE" THEE A RULER AND A JUDGE OVER US??# 28 WILT THOU KILL ME, AS THOU DIDDEST THE EGYPTIAN YESTERDAY?RF# 29 THEN FLED MOSES AT THIS SAYING, AND WAS A STRANGER IN THE LAND OF! MADIAN, WHERE HE BEGAT TWO SONS.WD# 30 AND WHEN FORTY YEARS WERE EXPIRED, THERE APPEARED TO HIM IN THEL WILDERNESS OF MOUNT SINA AN ANGEL OF THE LORD IN A FLAME OF FIRE IN A BUSH.H# 31 WHEN MOSES SAW IT, HE WONDERED AT THE SIGHT: AND AS HE DREW NEAR TO0 BEHOLD IT, THE VOICE OF THE LORD CAME UNTO HIM,L# 32 SAYING, I AM THE GOD OF THY FATHERS, THE GOD OF ABRAHAM, AND THE GOD OFH ISAAC, AND THE GOD OF JACOB. THEN MOSES TREMBLED, AND DURST NOT BEHOLD.H# 33 THEN SAID THE LORD TO HIM, PUT OFF THY SHOES FROM THY FEET: FOR THE* PLACE WHERE THOU STANDEST IS HOLY GROUND.L# 34 I HAVE SEEN, I HAVE SEEN THE AFFLICTION OF MY PEOPLE WHICH IS IN EGYPT,K AND I HAVE HEARD THEIR GROANING, AND AM COME DOWN TO DELIVER THEM. AND NOW # COME, I WILL SEND THEE INTO EGYPT.M# 35 THIS MOSES WHOM THEY REFUSED, SAYING, WHO MADE THEE A RULER AND A JUDGE?TM THE SAME DID GOD SEND TO BE A RULER AND A DELIVERER BY THE HAND OF THE ANGELH# WHICH APPEARED TO HIM IN THE BUSH.LK# 36 HE BROUGHT THEM OUT, AFTER THAT HE HAD SHEWED WONDERS AND SIGNS IN THEF LAND OF EGYPT, AND IN THE RED SEA, AND IN THE WILDERNESS FORTY YEARS.J# 37 THIS IS THAT MOSES, WHICH SAID UNTO THE CHILDREN OF ISRAEL, A PROPHETN SHALL THE LORD YOUR GOD RAISE UP UNTO YOU OF YOUR BRETHREN, LIKE UNTO ME; HIM SHALL YE HEAR.IH# 38 THIS IS HE, THAT WAS IN THE CHURCH IN THE WILDERNESS WITH THE ANGELM WHICH SPAKE TO HIM IN THE MOUNT SINA, AND WITH OUR FATHERS: WHO RECEIVED THEW LIVELY ORACLES TO GIVE UNTO US:I# 39 TO WHOM OUR FATHERS WOULD NOT OBEY, BUT THRUST HIM FROM THEM, AND INH+ THEIR HEARTS TURNED BACK AGAIN INTO EGYPT,NL# 40 SAYING UNTO AARON, MAKE US GODS TO GO BEFORE US: FOR AS FOR THIS MOSES,M WHICH BROUGHT US OUT OF THE LAND OF EGYPT, WE WOT NOT WHAT IS BECOME OF HIM.BM# 41 AND THEY MADE A CALF IN THOSE DAYS, AND OFFERED SACRIFICE UNTO THE IDOL,C. AND REJOICED IN THE WORKS OF THEIR OWN HANDS.K# 42 THEN GOD TURNED, AND GAVE THEM UP TO WORSHIP THE HOST OF HEAVEN; AS ITLN IS WRITTEN IN THE BOOK OF THE PROPHETS, O YE HOUSE OF ISRAEL, HAVE YE OFFEREDE TO ME SLAIN BEASTS AND SACRIFICES BY THE SPACE OF FORTY YEARS IN THE WILDERNESS?G# 43 YEA, YE TOOK UP THE TABERNACLE OF MOLOCH, AND THE STAR OF YOUR GODGJ REMPHAN, FIGURES WHICH YE MADE TO WORSHIP THEM: AND I WILL CARRY YOU AWAY BEYOND BABYLON.K# 44 OUR FATHERS HAD THE TABERNACLE OF WITNESS IN THE WILDERNESS, AS HE HADRH APPOINTED, SPEAKING UNTO MOSES, THAT HE SHOULD MAKE IT ACCORDING TO THE FASHION THAT HE HAD SEEN.J# 45 WHICH ALSO OUR FATHERS THAT CAME AFTER BROUGHT IN WITH JESUS INTO THEF POSSESSION OF THE GENTILES, WHOM GOD DRAVE OUT BEFORE THE FACE OF OUR! FATHERS, UNTO THE DAYS OF DAVID; J# 46 WHO FOUND FAVOUR BEFORE GOD, AND DESIRED TO FIND A TABERNACLE FOR THE GOD OF JACOB.$# 47 BUT SOLOMON BUILT HIM AN HOUSE.L# 48 HOWBEIT THE MOST HIGH DWELLETH NOT IN TEMPLES MADE WI00CB<%X>%+%O-%TADATADATATH HANDS; AS SAITH THE PROPHET, ITM# 49 HEAVEN IS MY THRONE, AND EARTH IS MY FOOTSTOOL: WHAT HOUSE WILL YE BUILDS5 ME? SAITH THE LORD: OR WHAT IS THE PLACE OF MY REST?T,# 50 HATH NOT MY HAND MADE ALL THESE THINGS?L# 51 YE STIFFNECKED AND UNCIRCUMCISED IN HEART AND EARS, YE DO ALWAYS RESIST/ THE HOLY GHOST: AS YOUR FATHERS DID, SO DO YE. J# 52 WHICH OF THE PROPHETS HAVE NOT YOUR FATHERS PERSECUTED? AND THEY HAVEN SLAIN THEM WHICH SHEWED BEFORE OF THE COMING OF THE JUST ONE; OF WHOM YE HAVE& BEEN NOW THE BETRAYERS AND MURDERERS:I# 53 WHO HAVE RECEIVED THE LAW BY THE DISPOSITION OF ANGELS, AND HAVE NOTL KEPT IT.G# 54 WHEN THEY HEARD THESE THINGS, THEY WERE CUT TO THE HEART, AND THEYH! GNASHED ON HIM WITH THEIR TEETH. L# 55 BUT HE, BEING FULL OF THE HOLY GHOST, LOOKED UP STEDFASTLY INTO HEAVEN,G AND SAW THE GLORY OF GOD, AND JESUS STANDING ON THE RIGHT HAND OF GOD, L# 56 AND SAID, BEHOLD, I SEE THE HEAVENS OPENED, AND THE SON OF MAN STANDING ON THE RIGHT HAND OF GOD.K# 57 THEN THEY CRIED OUT WITH A LOUD VOICE, AND STOPPED THEIR EARS, AND RANV UPON HIM WITH ONE ACCORD,I# 58 AND CAST HIM OUT OF THE CITY, AND STONED HIM: AND THE WITNESSES LAIDT> DOWN THEIR CLOTHES AT A YOUNG MANS FEET, WHOSE NAME WAS SAUL.G# 59 AND THEY STONED STEPHEN, CALLING UPON GOD, AND SAYING, LORD JESUS,  RECEIVE MY SPIRIT.WM# 60 AND HE KNEELED DOWN, AND CRIED WITH A LOUD VOICE, LORD, LAY NOT THIS SIN,< TO THEIR CHARGE. AND WHEN HE HAD SAID THIS, HE FELL ASLEEP. = CHAPTER 8 N# 1 AND SAUL WAS CONSENTING UNTO HIS DEATH. AND AT THAT TIME THERE WAS A GREATI PERSECUTION AGAINST THE CHURCH WHICH WAS AT JERUSALEM; AND THEY WERE ALL,J SCATTERED ABROAD THROUGHOUT THE REGIONS OF JUDAEA AND SAMARIA, EXCEPT THE APOSTLES.L# 2 AND DEVOUT MEN CARRIED STEPHEN TO HIS BURIAL, AND MADE GREAT LAMENTATION OVER HIM.M# 3 AS FOR SAUL, HE MADE HAVOCK OF THE CHURCH, ENTERING INTO EVERY HOUSE, ANDL/ HALING MEN AND WOMEN COMMITTED THEM TO PRISON.NL# 4 THEREFORE THEY THAT WERE SCATTERED ABROAD WENT EVERY WHERE PREACHING THE WORD.J# 5 THEN PHILIP WENT DOWN TO THE CITY OF SAMARIA, AND PREACHED CHRIST UNTO THEM.K# 6 AND THE PEOPLE WITH ONE ACCORD GAVE HEED UNTO THOSE THINGS WHICH PHILIPO5 SPAKE, HEARING AND SEEING THE MIRACLES WHICH HE DID.EK# 7 FOR UNCLEAN SPIRITS, CRYING WITH LOUD VOICE, CAME OUT OF MANY THAT WERE.K POSSESSED WITH THEM: AND MANY TAKEN WITH PALSIES, AND THAT WERE LAME, WEREN HEALED.)# 8 AND THERE WAS GREAT JOY IN THAT CITY.K# 9 BUT THERE WAS A CERTAIN MAN, CALLED SIMON, WHICH BEFORETIME IN THE SAMEH CITY USED SORCERY, AND BEWITCHED THE PEOPLE OF SAMARIA, GIVING OUT THAT HIMSELF WAS SOME GREAT ONE:M# 10 TO WHOM THEY ALL GAVE HEED, FROM THE LEAST TO THE GREATEST, SAYING, THISN MAN IS THE GREAT POWER OF GOD.EK# 11 AND TO HIM THEY HAD REGARD, BECAUSE THAT OF LONG TIME HE HAD BEWITCHEDT THEM WITH SORCERIES. F# 12 BUT WHEN THEY BELIEVED PHILIP PREACHING THE THINGS CONCERNING THEK KINGDOM OF GOD, AND THE NAME OF JESUS CHRIST, THEY WERE BAPTIZED, BOTH MENC AND WOMEN.WM# 13 THEN SIMON HIMSELF BELIEVED ALSO: AND WHEN HE WAS BAPTIZED, HE CONTINUEDAM WITH PHILIP, AND WONDERED, BEHOLDING THE MIRACLES AND SIGNS WHICH WERE DONE.EI# 14 NOW WHEN THE APOSTLES WHICH WERE AT JERUSALEM HEARD THAT SAMARIA HADE> RECEIVED THE WORD OF GOD, THEY SENT UNTO THEM PETER AND JOHN:L# 15 WHO, WHEN THEY WERE COME DOWN, PRAYED FOR THEM, THAT THEY MIGHT RECEIVE THE HOLY GHOST:L# 16 (FOR AS YET HE WAS FALLEN UPON NONE OF THEM: ONLY THEY WERE BAPTIZED IN THE NAME OF THE LORD JESUS.)WJ# 17 THEN LAID THEY THEIR HANDS ON THEM, AND THEY RECEIVED THE HOLY GHOST.M# 18 AND WHEN SIMON SAW THAT THROUGH LAYING ON OF THE APOSTLES HANDS THE HOLYW( GHOST WAS GIVEN, HE OFFERED THEM MONEY,L# 19 SAYING, GIVE ME ALSO THIS POWER, THAT ON WHOMSOEVER I LAY HANDS, HE MAY RECEIVE THE HOLY GHOST.K# 20 BUT PETER SAID UNTO HIM, THY MONEY PERISH WITH THEE, BECAUSE THOU HASTC: THOUGHT THAT THE GIFT OF GOD MAY BE PURCHASED WITH MONEY.H# 21 THOU HAST NEITHER PART NOR LOT IN THIS MATTER: FOR THY HEART IS NOT RIGHT IN THE SIGHT OF GOD.DJ# 22 REP00D'AD%5%T6%! !ENT THEREFORE OF THIS THY WICKEDNESS, AND PRAY GOD, IF PERHAPS THE- THOUGHT OF THINE HEART MAY BE FORGIVEN THEE.WL# 23 FOR I PERCEIVE THAT THOU ART IN THE GALL OF BITTERNESS, AND IN THE BOND OF INIQUITY.ML# 24 THEN ANSWERED SIMON, AND SAID, PRAY YE TO THE LORD FOR ME, THAT NONE OF0 THESE THINGS WHICH YE HAVE SPOKEN COME UPON ME.I# 25 AND THEY, WHEN THEY HAD TESTIFIED AND PREACHED THE WORD OF THE LORD,AG RETURNED TO JERUSALEM, AND PREACHED THE GOSPEL IN MANY VILLAGES OF THEH SAMARITANS.G# 26 AND THE ANGEL OF THE LORD SPAKE UNTO PHILIP, SAYING, ARISE, AND GOSN TOWARD THE SOUTH UNTO THE WAY THAT GOETH DOWN FROM JERUSALEM UNTO GAZA, WHICH IS DESERT.EH# 27 AND HE AROSE AND WENT: AND, BEHOLD, A MAN OF ETHIOPIA, AN EUNUCH OFM GREAT AUTHORITY UNDER CANDACE QUEEN OF THE ETHIOPIANS, WHO HAD THE CHARGE OFE< ALL HER TREASURE, AND HAD COME TO JERUSALEM FOR TO WORSHIP,G# 28 WAS RETURNING, AND SITTING IN HIS CHARIOT READ ESAIAS THE PROPHET.AH# 29 THEN THE SPIRIT SAID UNTO PHILIP, GO NEAR, AND JOIN THYSELF TO THIS CHARIOT.DJ# 30 AND PHILIP RAN THITHER TO HIM, AND HEARD HIM READ THE PROPHET ESAIAS,0 AND SAID, UNDERSTANDEST THOU WHAT THOU READEST?L# 31 AND HE SAID, HOW CAN I, EXCEPT SOME MAN SHOULD GUIDE ME? AND HE DESIRED/ PHILIP THAT HE WOULD COME UP AND SIT WITH HIM.HM# 32 THE PLACE OF THE SCRIPTURE WHICH HE READ WAS THIS, HE WAS LED AS A SHEEPLL TO THE SLAUGHTER; AND LIKE A LAMB DUMB BEFORE HIS SHEARER, SO OPENED HE NOT HIS MOUTH:AJ# 33 IN HIS HUMILIATION HIS JUDGMENT WAS TAKEN AWAY: AND WHO SHALL DECLARE6 HIS GENERATION? FOR HIS LIFE IS TAKEN FROM THE EARTH.L# 34 AND THE EUNUCH ANSWERED PHILIP, AND SAID, I PRAY THEE, OF WHOM SPEAKETH4 THE PROPHET THIS? OF HIMSELF, OR OF SOME OTHER MAN?G# 35 THEN PHILIP OPENED HIS MOUTH, AND BEGAN AT THE SAME SCRIPTURE, ANDM PREACHED UNTO HIM JESUS.CK# 36 AND AS THEY WENT ON THEIR WAY, THEY CAME UNTO A CERTAIN WATER: AND THEDE EUNUCH SAID, SEE, HERE IS WATER; WHAT DOTH HINDER ME TO BE BAPTIZED? J# 37 AND PHILIP SAID, IF THOU BELIEVEST WITH ALL THINE HEART, THOU MAYEST.I AND HE ANSWERED AND SAID, I BELIEVE THAT JESUS CHRIST IS THE SON OF GOD.NI# 38 AND HE COMMANDED THE CHARIOT TO STAND STILL: AND THEY WENT DOWN BOTHOA INTO THE WATER, BOTH PHILIP AND THE EUNUCH; AND HE BAPTIZED HIM.,H# 39 AND WHEN THEY WERE COME UP OUT OF THE WATER, THE SPIRIT OF THE LORDL CAUGHT AWAY PHILIP, THAT THE EUNUCH SAW HIM NO MORE: AND HE WENT ON HIS WAY REJOICING.HK# 40 BUT PHILIP WAS FOUND AT AZOTUS: AND PASSING THROUGH HE PREACHED IN ALLT& THE CITIES, TILL HE CAME TO CAESAREA. = CHAPTER 9 F# 1 AND SAUL, YET BREATHING OUT THREATENINGS AND SLAUGHTER AGAINST THE2 DISCIPLES OF THE LORD, WENT UNTO THE HIGH PRIEST,H# 2 AND DESIRED OF HIM LETTERS TO DAMASCUS TO THE SYNAGOGUES, THAT IF HEK FOUND ANY OF THIS WAY, WHETHER THEY WERE MEN OR WOMEN, HE MIGHT BRING THEMT BOUND UNTO JERUSALEM.I# 3 AND AS HE JOURNEYED, HE CAME NEAR DAMASCUS: AND SUDDENLY THERE SHINEDI% ROUND ABOUT HIM A LIGHT FROM HEAVEN:UL# 4 AND HE FELL TO THE EARTH, AND HEARD A VOICE SAYING UNTO HIM, SAUL, SAUL, WHY PERSECUTEST THOU ME? L# 5 AND HE SAID, WHO ART THOU, LORD? AND THE LORD SAID, I AM JESUS WHOM THOU= PERSECUTEST: IT IS HARD FOR THEE TO KICK AGAINST THE PRICKS.TM# 6 AND HE TREMBLING AND ASTONISHED SAID, LORD, WHAT WILT THOU HAVE ME TO DO? N AND THE LORD SAID UNTO HIM, ARISE, AND GO INTO THE CITY, AND IT SHALL BE TOLD THEE WHAT THOU MUST DO.K# 7 AND THE MEN WHICH JOURNEYED WITH HIM STOOD SPEECHLESS, HEARING A VOICE,U BUT SEEING NO MAN.TK# 8 AND SAUL AROSE FROM THE EARTH; AND WHEN HIS EYES WERE OPENED, HE SAW NOOB MAN: BUT THEY LED HIM BY THE HAND, AND BROUGHT HIM INTO DAMASCUS.G# 9 AND HE WAS THREE DAYS WITHOUT SIGHT, AND NEITHER DID EAT NOR DRINK.RL# 10 AND THERE WAS A CERTAIN DISCIPLE AT DAMASCUS, NAMED ANANIAS; AND TO HIMJ SAID THE LORD IN A VISION, ANANIAS. AND HE SAID, BEHOLD, I AM HERE, LORD.G# 11 AND THE LORD SAID UNTO HIM, ARISE, AND GO INTO THE STREET WHICH ISIK CALLED STRAIGHT, AND ENQUIRE IN THE HOUSE OF JUDAS FOR ONE CALLED SAUL, OFL! TARSUS: FOR, BEHOLD, HE PRAYETH, M# 00 DB<%X>%+%O-%TADATADATA12 AND HATH SEEN IN A VISION A MAN NAMED ANANIAS COMING IN, AND PUTTING HISI. HAND ON HIM, THAT HE MIGHT RECEIVE HIS SIGHT.L# 13 THEN ANANIAS ANSWERED, LORD, I HAVE HEARD BY MANY OF THIS MAN, HOW MUCH. EVIL HE HATH DONE TO THY SAINTS AT JERUSALEM:L# 14 AND HERE HE HATH AUTHORITY FROM THE CHIEF PRIESTS TO BIND ALL THAT CALL ON THY NAME.DK# 15 BUT THE LORD SAID UNTO HIM, GO THY WAY: FOR HE IS A CHOSEN VESSEL UNTOUH ME, TO BEAR MY NAME BEFORE THE GENTILES, AND KINGS, AND THE CHILDREN OF ISRAEL:K# 16 FOR I WILL SHEW HIM HOW GREAT THINGS HE MUST SUFFER FOR MY NAMES SAKE. J# 17 AND ANANIAS WENT HIS WAY, AND ENTERED INTO THE HOUSE; AND PUTTING HISJ HANDS ON HIM SAID, BROTHER SAUL, THE LORD, EVEN JESUS, THAT APPEARED UNTOM THEE IN THE WAY AS THOU CAMEST, HATH SENT ME, THAT THOU MIGHTEST RECEIVE THYS* SIGHT, AND BE FILLED WITH THE HOLY GHOST.K# 18 AND IMMEDIATELY THERE FELL FROM HIS EYES AS IT HAD BEEN SCALES: AND HEM7 RECEIVED SIGHT FORTHWITH, AND AROSE, AND WAS BAPTIZED.EF# 19 AND WHEN HE HAD RECEIVED MEAT, HE WAS STRENGTHENED. THEN WAS SAUL8 CERTAIN DAYS WITH THE DISCIPLES WHICH WERE AT DAMASCUS.M# 20 AND STRAIGHTWAY HE PREACHED CHRIST IN THE SYNAGOGUES, THAT HE IS THE SONL OF GOD.F# 21 BUT ALL THAT HEARD HIM WERE AMAZED, AND SAID; IS NOT THIS HE THATK DESTROYED THEM WHICH CALLED ON THIS NAME IN JERUSALEM, AND CAME HITHER FOR D THAT INTENT, THAT HE MIGHT BRING THEM BOUND UNTO THE CHIEF PRIESTS?K# 22 BUT SAUL INCREASED THE MORE IN STRENGTH, AND CONFOUNDED THE JEWS WHICH95 DWELT AT DAMASCUS, PROVING THAT THIS IS VERY CHRIST.EK# 23 AND AFTER THAT MANY DAYS WERE FULFILLED, THE JEWS TOOK COUNSEL TO KILLD HIM:HM# 24 BUT THEIR LAYING AWAIT WAS KNOWN OF SAUL. AND THEY WATCHED THE GATES DAYB AND NIGHT TO KILL HIM.EL# 25 THEN THE DISCIPLES TOOK HIM BY NIGHT, AND LET HIM DOWN BY THE WALL IN A BASKET.K# 26 AND WHEN SAUL WAS COME TO JERUSALEM, HE ASSAYED TO JOIN HIMSELF TO THETK DISCIPLES: BUT THEY WERE ALL AFRAID OF HIM, AND BELIEVED NOT THAT HE WAS AU DISCIPLE.I# 27 BUT BARNABAS TOOK HIM, AND BROUGHT HIM TO THE APOSTLES, AND DECLAREDAN UNTO THEM HOW HE HAD SEEN THE LORD IN THE WAY, AND THAT HE HAD SPOKEN TO HIM,A AND HOW HE HAD PREACHED BOLDLY AT DAMASCUS IN THE NAME OF JESUS.E?# 28 AND HE WAS WITH THEM COMING IN AND GOING OUT AT JERUSALEM.ML# 29 AND HE SPAKE BOLDLY IN THE NAME OF THE LORD JESUS, AND DISPUTED AGAINST/ THE GRECIANS: BUT THEY WENT ABOUT TO SLAY HIM. I# 30 WHICH WHEN THE BRETHREN KNEW, THEY BROUGHT HIM DOWN TO CAESAREA, AND  SENT HIM FORTH TO TARSUS.E# 31 THEN HAD THE CHURCHES REST THROUGHOUT ALL JUDAEA AND GALILEE ANDTK SAMARIA, AND WERE EDIFIED; AND WALKING IN THE FEAR OF THE LORD, AND IN THEA, COMFORT OF THE HOLY GHOST, WERE MULTIPLIED.J# 32 AND IT CAME TO PASS, AS PETER PASSED THROUGHOUT ALL QUARTERS, HE CAME. DOWN ALSO TO THE SAINTS WHICH DWELT AT LYDDA.J# 33 AND THERE HE FOUND A CERTAIN MAN NAMED AENEAS, WHICH HAD KEPT HIS BED( EIGHT YEARS, AND WAS SICK OF THE PALSY.L# 34 AND PETER SAID UNTO HIM, AENEAS, JESUS CHRIST MAKETH THEE WHOLE: ARISE,, AND MAKE THY BED. AND HE AROSE IMMEDIATELY.K# 35 AND ALL THAT DWELT AT LYDDA AND SARON SAW HIM, AND TURNED TO THE LORD.FF# 36 NOW THERE WAS AT JOPPA A CERTAIN DISCIPLE NAMED TABITHA, WHICH BYG INTERPRETATION IS CALLED DORCAS: THIS WOMAN WAS FULL OF GOOD WORKS AND ALMSDEEDS WHICH SHE DID.II# 37 AND IT CAME TO PASS IN THOSE DAYS, THAT SHE WAS SICK, AND DIED: WHOMC9 WHEN THEY HAD WASHED, THEY LAID HER IN AN UPPER CHAMBER..J# 38 AND FORASMUCH AS LYDDA WAS NIGH TO JOPPA, AND THE DISCIPLES HAD HEARDM THAT PETER WAS THERE, THEY SENT UNTO HIM TWO MEN, DESIRING HIM THAT HE WOULDD NOT DELAY TO COME TO THEM.NL# 39 THEN PETER AROSE AND WENT WITH THEM. WHEN HE WAS COME, THEY BROUGHT HIMM INTO THE UPPER CHAMBER: AND ALL THE WIDOWS STOOD BY HIM WEEPING, AND SHEWING C THE COATS AND GARMENTS WHICH DORCAS MADE, WHILE SHE WAS WITH THEM.AL# 40 BUT PETER PUT THEM ALL FORTH, AND KNEELED DOWN, AND PRAYED; AND TURNINGL HIM TO THE BODY SAID, TABITHA, ARISE. AND SHE OPENED HER EYES: AND WHEN SHE SAW PETER, SHE SAT UP. L# 41 AND00D'AD%5%T6%! ! HE GAVE HER HIS HAND, AND LIFTED HER UP, AND WHEN HE HAD CALLED THE( SAINTS AND WIDOWS, PRESENTED HER ALIVE.J# 42 AND IT WAS KNOWN THROUGHOUT ALL JOPPA; AND MANY BELIEVED IN THE LORD.M# 43 AND IT CAME TO PASS, THAT HE TARRIED MANY DAYS IN JOPPA WITH ONE SIMON AD TANNER. = CHAPTER 10 DL# 1 THERE WAS A CERTAIN MAN IN CAESAREA CALLED CORNELIUS, A CENTURION OF THE BAND CALLED THE ITALIAN BAND,M# 2 A DEVOUT MAN, AND ONE THAT FEARED GOD WITH ALL HIS HOUSE, WHICH GAVE MUCHW- ALMS TO THE PEOPLE, AND PRAYED TO GOD ALWAY.HL# 3 HE SAW IN A VISION EVIDENTLY ABOUT THE NINTH HOUR OF THE DAY AN ANGEL OF6 GOD COMING IN TO HIM, AND SAYING UNTO HIM, CORNELIUS.M# 4 AND WHEN HE LOOKED ON HIM, HE WAS AFRAID, AND SAID, WHAT IS IT, LORD? ANDAH HE SAID UNTO HIM, THY PRAYERS AND THINE ALMS ARE COME UP FOR A MEMORIAL BEFORE GOD.G# 5 AND NOW SEND MEN TO JOPPA, AND CALL FOR ONE SIMON, WHOSE SURNAME ISI PETER:J# 6 HE LODGETH WITH ONE SIMON A TANNER, WHOSE HOUSE IS BY THE SEA SIDE: HE* SHALL TELL THEE WHAT THOU OUGHTEST TO DO.M# 7 AND WHEN THE ANGEL WHICH SPAKE UNTO CORNELIUS WAS DEPARTED, HE CALLED TWOEK OF HIS HOUSEHOLD SERVANTS, AND A DEVOUT SOLDIER OF THEM THAT WAITED ON HIM CONTINUALLY;HH# 8 AND WHEN HE HAD DECLARED ALL THESE THINGS UNTO THEM, HE SENT THEM TO JOPPA.TH# 9 ON THE MORROW, AS THEY WENT ON THEIR JOURNEY, AND DREW NIGH UNTO THEG CITY, PETER WENT UP UPON THE HOUSETOP TO PRAY ABOUT THE SIXTH HOUR: ITEI# 10 AND HE BECAME VERY HUNGRY, AND WOULD HAVE EATEN: BUT WHILE THEY MADE  READY, HE FELL INTO A TRANCE,K# 11 AND SAW HEAVEN OPENED, AND A CERTAIN VESSEL DESCENDING UPON HIM, AS ITEL HAD BEEN A GREAT SHEET KNIT AT THE FOUR CORNERS, AND LET DOWN TO THE EARTH:H# 12 WHEREIN WERE ALL MANNER OF FOURFOOTED BEASTS OF THE EARTH, AND WILD3 BEASTS, AND CREEPING THINGS, AND FOWLS OF THE AIR.Y?# 13 AND THERE CAME A VOICE TO HIM, RISE, PETER; KILL, AND EAT. K# 14 BUT PETER SAID, NOT SO, LORD; FOR I HAVE NEVER EATEN ANY THING THAT ISR COMMON OR UNCLEAN.AF# 15 AND THE VOICE SPAKE UNTO HIM AGAIN THE SECOND TIME, WHAT GOD HATH% CLEANSED, THAT CALL NOT THOU COMMON.LL# 16 THIS WAS DONE THRICE: AND THE VESSEL WAS RECEIVED UP AGAIN INTO HEAVEN.J# 17 NOW WHILE PETER DOUBTED IN HIMSELF WHAT THIS VISION WHICH HE HAD SEENM SHOULD MEAN, BEHOLD, THE MEN WHICH WERE SENT FROM CORNELIUS HAD MADE ENQUIRYY- FOR SIMONS HOUSE, AND STOOD BEFORE THE GATE,EH# 18 AND CALLED, AND ASKED WHETHER SIMON, WHICH WAS SURNAMED PETER, WERE LODGED THERE.I# 19 WHILE PETER THOUGHT ON THE VISION, THE SPIRIT SAID UNTO HIM, BEHOLD,E THREE MEN SEEK THEE.HL# 20 ARISE THEREFORE, AND GET THEE DOWN, AND GO WITH THEM, DOUBTING NOTHING: FOR I HAVE SENT THEM.M# 21 THEN PETER WENT DOWN TO THE MEN WHICH WERE SENT UNTO HIM FROM CORNELIUS;HK AND SAID, BEHOLD, I AM HE WHOM YE SEEK: WHAT IS THE CAUSE WHEREFORE YE ARED COME?M# 22 AND THEY SAID, CORNELIUS THE CENTURION, A JUST MAN, AND ONE THAT FEARETHKN GOD, AND OF GOOD REPORT AMONG ALL THE NATION OF THE JEWS, WAS WARNED FROM GODM BY AN HOLY ANGEL TO SEND FOR THEE INTO HIS HOUSE, AND TO HEAR WORDS OF THEE.HJ# 23 THEN CALLED HE THEM IN, AND LODGED THEM. AND ON THE MORROW PETER WENTA AWAY WITH THEM, AND CERTAIN BRETHREN FROM JOPPA ACCOMPANIED HIM.NJ# 24 AND THE MORROW AFTER THEY ENTERED INTO CAESAREA. AND CORNELIUS WAITEDC FOR THEM, AND HE HAD CALLED TOGETHER HIS KINSMEN AND NEAR FRIENDS.AH# 25 AND AS PETER WAS COMING IN, CORNELIUS MET HIM, AND FELL DOWN AT HIS FEET, AND WORSHIPPED HIM.E# 26 BUT PETER TOOK HIM UP, SAYING, STAND UP; I MYSELF ALSO AM A MAN. I# 27 AND AS HE TALKED WITH HIM, HE WENT IN, AND FOUND MANY THAT WERE COMEI TOGETHER.J# 28 AND HE SAID UNTO THEM, YE KNOW HOW THAT IT IS AN UNLAWFUL THING FOR AK MAN THAT IS A JEW TO KEEP COMPANY, OR COME UNTO ONE OF ANOTHER NATION; BUTSE GOD HATH SHEWED ME THAT I SHOULD NOT CALL ANY MAN COMMON OR UNCLEAN.IM# 29 THEREFORE CAME I UNTO YOU WITHOUT GAINSAYING, AS SOON AS I WAS SENT FOR:N5 I ASK THEREFORE FOR WHAT INTENT YE HAVE SENT FOR ME?TL# 30 AND CORNELIUS SAID, FOUR DAYS AGO I WAS FASTING UNTIL THIS HOUR; AND ATK THE NINTH00DB<%X>%+%O-%TADATADATA HOUR I PRAYED IN MY HOUSE, AND, BEHOLD, A MAN STOOD BEFORE ME IN8 BRIGHT CLOTHING,HH# 31 AND SAID, CORNELIUS, THY PRAYER IS HEARD, AND THINE ALMS ARE HAD IN! REMEMBRANCE IN THE SIGHT OF GOD.NL# 32 SEND THEREFORE TO JOPPA, AND CALL HITHER SIMON, WHOSE SURNAME IS PETER;N HE IS LODGED IN THE HOUSE OF ONE SIMON A TANNER BY THE SEA SIDE: WHO, WHEN HE COMETH, SHALL SPEAK UNTO THEE.RL# 33 IMMEDIATELY THEREFORE I SENT TO THEE; AND THOU HAST WELL DONE THAT THOUH ART COME. NOW THEREFORE ARE WE ALL HERE PRESENT BEFORE GOD, TO HEAR ALL' THINGS THAT ARE COMMANDED THEE OF GOD.BM# 34 THEN PETER OPENED HIS MOUTH, AND SAID, OF A TRUTH I PERCEIVE THAT GOD IS  NO RESPECTER OF PERSONS: K# 35 BUT IN EVERY NATION HE THAT FEARETH HIM, AND WORKETH RIGHTEOUSNESS, ISE ACCEPTED WITH HIM.HL# 36 THE WORD WHICH GOD SENT UNTO THE CHILDREN OF ISRAEL, PREACHING PEACE BY# JESUS CHRIST: (HE IS LORD OF ALL:)3J# 37 THAT WORD, I SAY, YE KNOW, WHICH WAS PUBLISHED THROUGHOUT ALL JUDAEA,? AND BEGAN FROM GALILEE, AFTER THE BAPTISM WHICH JOHN PREACHED;RK# 38 HOW GOD ANOINTED JESUS OF NAZARETH WITH THE HOLY GHOST AND WITH POWER:UM WHO WENT ABOUT DOING GOOD, AND HEALING ALL THAT WERE OPPRESSED OF THE DEVIL;  FOR GOD WAS WITH HIM.L# 39 AND WE ARE WITNESSES OF ALL THINGS WHICH HE DID BOTH IN THE LAND OF THE= JEWS, AND IN JERUSALEM; WHOM THEY SLEW AND HANGED ON A TREE: <# 40 HIM GOD RAISED UP THE THIRD DAY, AND SHEWED HIM OPENLY;M# 41 NOT TO ALL THE PEOPLE, BUT UNTO WITNESSES CHOSEN BEFORE GOD, EVEN TO US,A< WHO DID EAT AND DRINK WITH HIM AFTER HE ROSE FROM THE DEAD.M# 42 AND HE COMMANDED US TO PREACH UNTO THE PEOPLE, AND TO TESTIFY THAT IT IS @ HE WHICH WAS ORDAINED OF GOD TO BE THE JUDGE OF QUICK AND DEAD.J# 43 TO HIM GIVE ALL THE PROPHETS WITNESS, THAT THROUGH HIS NAME WHOSOEVER2 BELIEVETH IN HIM SHALL RECEIVE REMISSION OF SINS.M# 44 WHILE PETER YET SPAKE THESE WORDS, THE HOLY GHOST FELL ON ALL THEM WHICHH HEARD THE WORD.L# 45 AND THEY OF THE CIRCUMCISION WHICH BELIEVED WERE ASTONISHED, AS MANY ASN CAME WITH PETER, BECAUSE THAT ON THE GENTILES ALSO WAS POURED OUT THE GIFT OF THE HOLY GHOST.K# 46 FOR THEY HEARD THEM SPEAK WITH TONGUES, AND MAGNIFY GOD. THEN ANSWEREDO PETER,UL# 47 CAN ANY MAN FORBID WATER, THAT THESE SHOULD NOT BE BAPTIZED, WHICH HAVE' RECEIVED THE HOLY GHOST AS WELL AS WE?HB# 48 AND HE COMMANDED THEM TO BE BAPTIZED IN THE NAME OF THE LORD. = CHAPTER 11 OM# 1 AND THE APOSTLES AND BRETHREN THAT WERE IN JUDAEA HEARD THAT THE GENTILES # HAD ALSO RECEIVED THE WORD OF GOD.NB# 2 AND WHEN PETER WAS COME UP TO JERUSALEM, THEY THAT WERE OF THE! CIRCUMCISION CONTENDED WITH HIM,J# 3 SAYING, THOU WENTEST IN TO MEN UNCIRCUMCISED, AND DIDST EAT WITH THEM.J# 4 BUT PETER REHEARSED THE MATTER FROM THE BEGINNING, AND EXPOUNDED IT BY ORDER UNTO THEM, SAYING, I# 5 I WAS IN THE CITY OF JOPPA PRAYING: AND IN A TRANCE I SAW A VISION, AEN CERTAIN VESSEL DESCEND, AS IT HAD BEEN A GREAT SHEET, LET DOWN FROM HEAVEN BY& FOUR CORNERS; AND IT CAME EVEN TO ME:G# 6 UPON THE WHICH WHEN I HAD FASTENED MINE EYES, I CONSIDERED, AND SAWAJ FOURFOOTED BEASTS OF THE EARTH, AND WILD BEASTS, AND CREEPING THINGS, AND FOWLS OF THE AIR.C# 7 AND I HEARD A VOICE SAYING UNTO ME, ARISE, PETER; SLAY AND EAT.HL# 8 BUT I SAID, NOT SO, LORD: FOR NOTHING COMMON OR UNCLEAN HATH AT ANY TIME ENTERED INTO MY MOUTH.JM# 9 BUT THE VOICE ANSWERED ME AGAIN FROM HEAVEN, WHAT GOD HATH CLEANSED, THATT CALL NOT THOU COMMON.L# 10 AND THIS WAS DONE THREE TIMES: AND ALL WERE DRAWN UP AGAIN INTO HEAVEN.H# 11 AND, BEHOLD, IMMEDIATELY THERE WERE THREE MEN ALREADY COME UNTO THE/ HOUSE WHERE I WAS, SENT FROM CAESAREA UNTO ME.GJ# 12 AND THE SPIRIT BADE ME GO WITH THEM, NOTHING DOUBTING. MOREOVER THESEA SIX BRETHREN ACCOMPANIED ME, AND WE ENTERED INTO THE MANS HOUSE:NL# 13 AND HE SHEWED US HOW HE HAD SEEN AN ANGEL IN HIS HOUSE, WHICH STOOD ANDN SAID UNTO HIM, SEND MEN TO JOPPA, AND CALL FOR SIMON, WHOSE SURNAME IS PETER;G# 14 WHO SHALL TELL THEE WORDS, WHEREBY THOU AND ALL THY HOUSE SHALL BE  SAVED.EJ# 15 AND AS I BEGAN TO SPEAK, THE HOLY GHOST00"D'AD%5%T6%! ! FELL ON THEM, AS ON US AT THE BEGINNING.EJ# 16 THEN REMEMBERED I THE WORD OF THE LORD, HOW THAT HE SAID, JOHN INDEEDC BAPTIZED WITH WATER; BUT YE SHALL BE BAPTIZED WITH THE HOLY GHOST.NI# 17 FORASMUCH THEN AS GOD GAVE THEM THE LIKE GIFT AS HE DID UNTO US, WHONK BELIEVED ON THE LORD JESUS CHRIST; WHAT WAS I, THAT I COULD WITHSTAND GOD?CL# 18 WHEN THEY HEARD THESE THINGS, THEY HELD THEIR PEACE, AND GLORIFIED GOD,I SAYING, THEN HATH GOD ALSO TO THE GENTILES GRANTED REPENTANCE UNTO LIFE. I# 19 NOW THEY WHICH WERE SCATTERED ABROAD UPON THE PERSECUTION THAT AROSEBN ABOUT STEPHEN TRAVELLED AS FAR AS PHENICE, AND CYPRUS, AND ANTIOCH, PREACHING) THE WORD TO NONE BUT UNTO THE JEWS ONLY.OJ# 20 AND SOME OF THEM WERE MEN OF CYPRUS AND CYRENE, WHICH, WHEN THEY WERED COME TO ANTIOCH, SPAKE UNTO THE GRECIANS, PREACHING THE LORD JESUS.M# 21 AND THE HAND OF THE LORD WAS WITH THEM: AND A GREAT NUMBER BELIEVED, ANDR TURNED UNTO THE LORD.L# 22 THEN TIDINGS OF THESE THINGS CAME UNTO THE EARS OF THE CHURCH WHICH WASH IN JERUSALEM: AND THEY SENT FORTH BARNABAS, THAT HE SHOULD GO AS FAR AS ANTIOCH.DM# 23 WHO, WHEN HE CAME, AND HAD SEEN THE GRACE OF GOD, WAS GLAD, AND EXHORTEDNF THEM ALL, THAT WITH PURPOSE OF HEART THEY WOULD CLEAVE UNTO THE LORD.M# 24 FOR HE WAS A GOOD MAN, AND FULL OF THE HOLY GHOST AND OF FAITH: AND MUCHE PEOPLE WAS ADDED UNTO THE LORD.8# 25 THEN DEPARTED BARNABAS TO TARSUS, FOR TO SEEK SAUL:K# 26 AND WHEN HE HAD FOUND HIM, HE BROUGHT HIM UNTO ANTIOCH. AND IT CAME TOSN PASS, THAT A WHOLE YEAR THEY ASSEMBLED THEMSELVES WITH THE CHURCH, AND TAUGHTH MUCH PEOPLE. AND THE DISCIPLES WERE CALLED CHRISTIANS FIRST IN ANTIOCH.A# 27 AND IN THESE DAYS CAME PROPHETS FROM JERUSALEM UNTO ANTIOCH.OM# 28 AND THERE STOOD UP ONE OF THEM NAMED AGABUS, AND SIGNIFIED BY THE SPIRITOJ THAT THERE SHOULD BE GREAT DEARTH THROUGHOUT ALL THE WORLD: WHICH CAME TO% PASS IN THE DAYS OF CLAUDIUS CAESAR.FJ# 29 THEN THE DISCIPLES, EVERY MAN ACCORDING TO HIS ABILITY, DETERMINED TO5 SEND RELIEF UNTO THE BRETHREN WHICH DWELT IN JUDAEA:BL# 30 WHICH ALSO THEY DID, AND SENT IT TO THE ELDERS BY THE HANDS OF BARNABAS AND SAUL. = CHAPTER 12 IG# 1 NOW ABOUT THAT TIME HEROD THE KING STRETCHED FORTH HIS HANDS TO VEXO CERTAIN OF THE CHURCH.D;# 2 AND HE KILLED JAMES THE BROTHER OF JOHN WITH THE SWORD.TH# 3 AND BECAUSE HE SAW IT PLEASED THE JEWS, HE PROCEEDED FURTHER TO TAKE6 PETER ALSO. (THEN WERE THE DAYS OF UNLEAVENED BREAD.)L# 4 AND WHEN HE HAD APPREHENDED HIM, HE PUT HIM IN PRISON, AND DELIVERED HIMM TO FOUR QUATERNIONS OF SOLDIERS TO KEEP HIM; INTENDING AFTER EASTER TO BRINGT HIM FORTH TO THE PEOPLE.AK# 5 PETER THEREFORE WAS KEPT IN PRISON: BUT PRAYER WAS MADE WITHOUT CEASINGR OF THE CHURCH UNTO GOD FOR HIM.I# 6 AND WHEN HEROD WOULD HAVE BROUGHT HIM FORTH, THE SAME NIGHT PETER WASEM SLEEPING BETWEEN TWO SOLDIERS, BOUND WITH TWO CHAINS: AND THE KEEPERS BEFOREA THE DOOR KEPT THE PRISON.K# 7 AND, BEHOLD, THE ANGEL OF THE LORD CAME UPON HIM, AND A LIGHT SHINED INIM THE PRISON: AND HE SMOTE PETER ON THE SIDE, AND RAISED HIM UP, SAYING, ARISEN4 UP QUICKLY. AND HIS CHAINS FELL OFF FROM HIS HANDS.K# 8 AND THE ANGEL SAID UNTO HIM, GIRD THYSELF, AND BIND ON THY SANDALS. ANDSN SO HE DID. AND HE SAITH UNTO HIM, CAST THY GARMENT ABOUT THEE, AND FOLLOW ME.J# 9 AND HE WENT OUT, AND FOLLOWED HIM; AND WIST NOT THAT IT WAS TRUE WHICH4 WAS DONE BY THE ANGEL; BUT THOUGHT HE SAW A VISION.J# 10 WHEN THEY WERE PAST THE FIRST AND THE SECOND WARD, THEY CAME UNTO THEN IRON GATE THAT LEADETH UNTO THE CITY; WHICH OPENED TO THEM OF HIS OWN ACCORD:M AND THEY WENT OUT, AND PASSED ON THROUGH ONE STREET; AND FORTHWITH THE ANGELH DEPARTED FROM HIM.,I# 11 AND WHEN PETER WAS COME TO HIMSELF, HE SAID, NOW I KNOW OF A SURETY, L THAT THE LORD HATH SENT HIS ANGEL, AND HATH DELIVERED ME OUT OF THE HAND OF? HEROD, AND FROM ALL THE EXPECTATION OF THE PEOPLE OF THE JEWS.AK# 12 AND WHEN HE HAD CONSIDERED THE THING, HE CAME TO THE HOUSE OF MARY THEEJ MOTHER OF JOHN, WHOSE SURNAME WAS MARK; WHERE MANY WERE GATHERED TOGETHER PRAYING.OL# 13 A00*DB<%X>%+%O-%TADATADATAND AS PETER KNOCKED AT THE DOOR OF THE GATE, A DAMSEL CAME TO HEARKEN, NAMED RHODA. J# 14 AND WHEN SHE KNEW PETERS VOICE, SHE OPENED NOT THE GATE FOR GLADNESS,6 BUT RAN IN, AND TOLD HOW PETER STOOD BEFORE THE GATE.K# 15 AND THEY SAID UNTO HER, THOU ART MAD. BUT SHE CONSTANTLY AFFIRMED THATT1 IT WAS EVEN SO. THEN SAID THEY, IT IS HIS ANGEL.DM# 16 BUT PETER CONTINUED KNOCKING: AND WHEN THEY HAD OPENED THE DOOR, AND SAWF HIM, THEY WERE ASTONISHED.;L# 17 BUT HE, BECKONING UNTO THEM WITH THE HAND TO HOLD THEIR PEACE, DECLAREDJ UNTO THEM HOW THE LORD HAD BROUGHT HIM OUT OF THE PRISON. AND HE SAID, GOM SHEW THESE THINGS UNTO JAMES, AND TO THE BRETHREN. AND HE DEPARTED, AND WENTD INTO ANOTHER PLACE.K# 18 NOW AS SOON AS IT WAS DAY, THERE WAS NO SMALL STIR AMONG THE SOLDIERS,L WHAT WAS BECOME OF PETER.J# 19 AND WHEN HEROD HAD SOUGHT FOR HIM, AND FOUND HIM NOT, HE EXAMINED THEJ KEEPERS, AND COMMANDED THAT THEY SHOULD BE PUT TO DEATH. AND HE WENT DOWN* FROM JUDAEA TO CAESAREA, AND THERE ABODE.J# 20 AND HEROD WAS HIGHLY DISPLEASED WITH THEM OF TYRE AND SIDON: BUT THEYL CAME WITH ONE ACCORD TO HIM, AND, HAVING MADE BLASTUS THE KINGS CHAMBERLAINN THEIR FRIEND, DESIRED PEACE; BECAUSE THEIR COUNTRY WAS NOURISHED BY THE KINGS COUNTRY.HM# 21 AND UPON A SET DAY HEROD, ARRAYED IN ROYAL APPAREL, SAT UPON HIS THRONE,D AND MADE AN ORATION UNTO THEM.NK# 22 AND THE PEOPLE GAVE A SHOUT, SAYING, IT IS THE VOICE OF A GOD, AND NOT OF A MAN.M# 23 AND IMMEDIATELY THE ANGEL OF THE LORD SMOTE HIM, BECAUSE HE GAVE NOT GODW= THE GLORY: AND HE WAS EATEN OF WORMS, AND GAVE UP THE GHOST.M-# 24 BUT THE WORD OF GOD GREW AND MULTIPLIED.TK# 25 AND BARNABAS AND SAUL RETURNED FROM JERUSALEM, WHEN THEY HAD FULFILLED A THEIR MINISTRY, AND TOOK WITH THEM JOHN, WHOSE SURNAME WAS MARK.O = CHAPTER 13 OI# 1 NOW THERE WERE IN THE CHURCH THAT WAS AT ANTIOCH CERTAIN PROPHETS ANDAG TEACHERS; AS BARNABAS, AND SIMEON THAT WAS CALLED NIGER, AND LUCIUS OFOK CYRENE, AND MANAEN, WHICH HAD BEEN BROUGHT UP WITH HEROD THE TETRARCH, ANDV SAUL.M# 2 AS THEY MINISTERED TO THE LORD, AND FASTED, THE HOLY GHOST SAID, SEPARATEE@ ME BARNABAS AND SAUL FOR THE WORK WHEREUNTO I HAVE CALLED THEM.K# 3 AND WHEN THEY HAD FASTED AND PRAYED, AND LAID THEIR HANDS ON THEM, THEYH SENT THEM AWAY.L# 4 SO THEY, BEING SENT FORTH BY THE HOLY GHOST, DEPARTED UNTO SELEUCIA; AND# FROM THENCE THEY SAILED TO CYPRUS.AG# 5 AND WHEN THEY WERE AT SALAMIS, THEY PREACHED THE WORD OF GOD IN THERB SYNAGOGUES OF THE JEWS: AND THEY HAD ALSO JOHN TO THEIR MINISTER.M# 6 AND WHEN THEY HAD GONE THROUGH THE ISLE UNTO PAPHOS, THEY FOUND A CERTAINI; SORCERER, A FALSE PROPHET, A JEW, WHOSE NAME WAS BARJESUS:HL# 7 WHICH WAS WITH THE DEPUTY OF THE COUNTRY, SERGIUS PAULUS, A PRUDENT MAN;G WHO CALLED FOR BARNABAS AND SAUL, AND DESIRED TO HEAR THE WORD OF GOD.HL# 8 BUT ELYMAS THE SORCERER (FOR SO IS HIS NAME BY INTERPRETATION) WITHSTOOD6 THEM, SEEKING TO TURN AWAY THE DEPUTY FROM THE FAITH.M# 9 THEN SAUL, (WHO ALSO IS CALLED PAUL,) FILLED WITH THE HOLY GHOST, SET HISS EYES ON HIM.HI# 10 AND SAID, O FULL OF ALL SUBTILTY AND ALL MISCHIEF, THOU CHILD OF THEEK DEVIL, THOU ENEMY OF ALL RIGHTEOUSNESS, WILT THOU NOT CEASE TO PERVERT THEE RIGHT WAYS OF THE LORD?J# 11 AND NOW, BEHOLD, THE HAND OF THE LORD IS UPON THEE, AND THOU SHALT BEL BLIND, NOT SEEING THE SUN FOR A SEASON. AND IMMEDIATELY THERE FELL ON HIM AM MIST AND A DARKNESS; AND HE WENT ABOUT SEEKING SOME TO LEAD HIM BY THE HAND.TK# 12 THEN THE DEPUTY, WHEN HE SAW WHAT WAS DONE, BELIEVED, BEING ASTONISHED  AT THE DOCTRINE OF THE LORD.SL# 13 NOW WHEN PAUL AND HIS COMPANY LOOSED FROM PAPHOS, THEY CAME TO PERGA IN? PAMPHYLIA: AND JOHN DEPARTING FROM THEM RETURNED TO JERUSALEM.L# 14 BUT WHEN THEY DEPARTED FROM PERGA, THEY CAME TO ANTIOCH IN PISIDIA, AND: WENT INTO THE SYNAGOGUE ON THE SABBATH DAY, AND SAT DOWN.H# 15 AND AFTER THE READING OF THE LAW AND THE PROPHETS THE RULERS OF THEN SYNAGOGUE SENT UNTO THEM, SAYING, YE MEN AND BRETHREN, IF YE HAVE ANY WORD OF$ EXHORTATION FOR THE PEOPLE, SAY ON.M# 16 THEN PAUL S002D'AD%5%T6%! !TOOD UP, AND BECKONING WITH HIS HAND SAID, MEN OF ISRAEL, ANDE! YE THAT FEAR GOD, GIVE AUDIENCE.NH# 17 THE GOD OF THIS PEOPLE OF ISRAEL CHOSE OUR FATHERS, AND EXALTED THEK PEOPLE WHEN THEY DWELT AS STRANGERS IN THE LAND OF EGYPT, AND WITH AN HIGH  ARM BROUGHT HE THEM OUT OF IT. G# 18 AND ABOUT THE TIME OF FORTY YEARS SUFFERED HE THEIR MANNERS IN THES WILDERNESS.G# 19 AND WHEN HE HAD DESTROYED SEVEN NATIONS IN THE LAND OF CHANAAN, HEA# DIVIDED THEIR LAND TO THEM BY LOT.LL# 20 AND AFTER THAT HE GAVE UNTO THEM JUDGES ABOUT THE SPACE OF FOUR HUNDRED+ AND FIFTY YEARS, UNTIL SAMUEL THE PROPHET.EK# 21 AND AFTERWARD THEY DESIRED A KING: AND GOD GAVE UNTO THEM SAUL THE SONE OF CIS, A MAN OF THE TRIBE OF BENJAMIN, BY THE SPACE OF FORTY YEARS.HJ# 22 AND WHEN HE HAD REMOVED HIM, HE RAISED UP UNTO THEM DAVID TO BE THEIRM KING; TO WHOM ALSO HE GAVE THEIR TESTIMONY, AND SAID, I HAVE FOUND DAVID THEYJ SON OF JESSE, A MAN AFTER MINE OWN HEART, WHICH SHALL FULFIL ALL MY WILL.M# 23 OF THIS MANS SEED HATH GOD ACCORDING TO HIS PROMISE RAISED UNTO ISRAEL AN SAVIOUR, JESUS:M# 24 WHEN JOHN HAD FIRST PREACHED BEFORE HIS COMING THE BAPTISM OF REPENTANCEO TO ALL THE PEOPLE OF ISRAEL.M# 25 AND AS JOHN FULFILLED HIS COURSE, HE SAID, WHOM THINK YE THAT I AM? I AMDM NOT HE. BUT, BEHOLD, THERE COMETH ONE AFTER ME, WHOSE SHOES OF HIS FEET I AMH NOT WORTHY TO LOOSE.EL# 26 MEN AND BRETHREN, CHILDREN OF THE STOCK OF ABRAHAM, AND WHOSOEVER AMONG< YOU FEARETH GOD, TO YOU IS THE WORD OF THIS SALVATION SENT.J# 27 FOR THEY THAT DWELL AT JERUSALEM, AND THEIR RULERS, BECAUSE THEY KNEWN HIM NOT, NOR YET THE VOICES OF THE PROPHETS WHICH ARE READ EVERY SABBATH DAY,, THEY HAVE FULFILLED THEM IN CONDEMNING HIM.L# 28 AND THOUGH THEY FOUND NO CAUSE OF DEATH IN HIM, YET DESIRED THEY PILATE THAT HE SHOULD BE SLAIN.EK# 29 AND WHEN THEY HAD FULFILLED ALL THAT WAS WRITTEN OF HIM, THEY TOOK HIMD1 DOWN FROM THE TREE, AND LAID HIM IN A SEPULCHRE.O&# 30 BUT GOD RAISED HIM FROM THE DEAD:M# 31 AND HE WAS SEEN MANY DAYS OF THEM WHICH CAME UP WITH HIM FROM GALILEE TOT2 JERUSALEM, WHO ARE HIS WITNESSES UNTO THE PEOPLE.I# 32 AND WE DECLARE UNTO YOU GLAD TIDINGS, HOW THAT THE PROMISE WHICH WASI MADE UNTO THE FATHERS,IH# 33 GOD HATH FULFILLED THE SAME UNTO US THEIR CHILDREN, IN THAT HE HATHN RAISED UP JESUS AGAIN; AS IT IS ALSO WRITTEN IN THE SECOND PSALM, THOU ART MY$ SON, THIS DAY HAVE I BEGOTTEN THEE.J# 34 AND AS CONCERNING THAT HE RAISED HIM UP FROM THE DEAD, NOW NO MORE TOM RETURN TO CORRUPTION, HE SAID ON THIS WISE, I WILL GIVE YOU THE SURE MERCIESG OF DAVID.J# 35 WHEREFORE HE SAITH ALSO IN ANOTHER PSALM, THOU SHALT NOT SUFFER THINE HOLY ONE TO SEE CORRUPTION.J# 36 FOR DAVID, AFTER HE HAD SERVED HIS OWN GENERATION BY THE WILL OF GOD,B FELL ON SLEEP, AND WAS LAID UNTO HIS FATHERS, AND SAW CORRUPTION:6# 37 BUT HE, WHOM GOD RAISED AGAIN, SAW NO CORRUPTION.L# 38 BE IT KNOWN UNTO YOU THEREFORE, MEN AND BRETHREN, THAT THROUGH THIS MAN. IS PREACHED UNTO YOU THE FORGIVENESS OF SINS:M# 39 AND BY HIM ALL THAT BELIEVE ARE JUSTIFIED FROM ALL THINGS, FROM WHICH YE., COULD NOT BE JUSTIFIED BY THE LAW OF MOSES.I# 40 BEWARE THEREFORE, LEST THAT COME UPON YOU, WHICH IS SPOKEN OF IN THED PROPHETS;L# 41 BEHOLD, YE DESPISERS, AND WONDER, AND PERISH: FOR I WORK A WORK IN YOURM DAYS, A WORK WHICH YE SHALL IN NO WISE BELIEVE, THOUGH A MAN DECLARE IT UNTO  YOU.UL# 42 AND WHEN THE JEWS WERE GONE OUT OF THE SYNAGOGUE, THE GENTILES BESOUGHT= THAT THESE WORDS MIGHT BE PREACHED TO THEM THE NEXT SABBATH.DL# 43 NOW WHEN THE CONGREGATION WAS BROKEN UP, MANY OF THE JEWS AND RELIGIOUSM PROSELYTES FOLLOWED PAUL AND BARNABAS: WHO, SPEAKING TO THEM, PERSUADED THEMP! TO CONTINUE IN THE GRACE OF GOD.M# 44 AND THE NEXT SABBATH DAY CAME ALMOST THE WHOLE CITY TOGETHER TO HEAR THEK WORD OF GOD.,J# 45 BUT WHEN THE JEWS SAW THE MULTITUDES, THEY WERE FILLED WITH ENVY, ANDH SPAKE AGAINST THOSE THINGS WHICH WERE SPOKEN BY PAUL, CONTRADICTING AND BLASPHEMING. K# 46 THEN PAUL AND BARNABAS WAXED BOLD, AND SAID, IT WAS NECESSARY THAT THEOL WORD OF G00:DB<%X>%+%O-%TADATADATAOD SHOULD FIRST HAVE BEEN SPOKEN TO YOU: BUT SEEING YE PUT IT FROMK YOU, AND JUDGE YOURSELVES UNWORTHY OF EVERLASTING LIFE, LO, WE TURN TO THEH GENTILES.M# 47 FOR SO HATH THE LORD COMMANDED US, SAYING, I HAVE SET THEE TO BE A LIGHT K OF THE GENTILES, THAT THOU SHOULDEST BE FOR SALVATION UNTO THE ENDS OF THEL EARTH.EM# 48 AND WHEN THE GENTILES HEARD THIS, THEY WERE GLAD, AND GLORIFIED THE WORDAD OF THE LORD: AND AS MANY AS WERE ORDAINED TO ETERNAL LIFE BELIEVED.F# 49 AND THE WORD OF THE LORD WAS PUBLISHED THROUGHOUT ALL THE REGION.K# 50 BUT THE JEWS STIRRED UP THE DEVOUT AND HONOURABLE WOMEN, AND THE CHIEFLG MEN OF THE CITY, AND RAISED PERSECUTION AGAINST PAUL AND BARNABAS, ANDO# EXPELLED THEM OUT OF THEIR COASTS.OJ# 51 BUT THEY SHOOK OFF THE DUST OF THEIR FEET AGAINST THEM, AND CAME UNTO ICONIUM.HE# 52 AND THE DISCIPLES WERE FILLED WITH JOY, AND WITH THE HOLY GHOST.D = CHAPTER 14 WI# 1 AND IT CAME TO PASS IN ICONIUM, THAT THEY WENT BOTH TOGETHER INTO THEM SYNAGOGUE OF THE JEWS, AND SO SPAKE, THAT A GREAT MULTITUDE BOTH OF THE JEWST! AND ALSO OF THE GREEKS BELIEVED. J# 2 BUT THE UNBELIEVING JEWS STIRRED UP THE GENTILES, AND MADE THEIR MINDS$ EVIL AFFECTED AGAINST THE BRETHREN.J# 3 LONG TIME THEREFORE ABODE THEY SPEAKING BOLDLY IN THE LORD, WHICH GAVEJ TESTIMONY UNTO THE WORD OF HIS GRACE, AND GRANTED SIGNS AND WONDERS TO BE DONE BY THEIR HANDS.HK# 4 BUT THE MULTITUDE OF THE CITY WAS DIVIDED: AND PART HELD WITH THE JEWS,  AND PART WITH THE APOSTLES.L# 5 AND WHEN THERE WAS AN ASSAULT MADE BOTH OF THE GENTILES, AND ALSO OF THEE JEWS WITH THEIR RULERS, TO USE THEM DESPITEFULLY, AND TO STONE THEM,RM# 6 THEY WERE WARE OF IT, AND FLED UNTO LYSTRA AND DERBE, CITIES OF LYCAONIA,, AND UNTO THE REGION THAT LIETH ROUND ABOUT:'# 7 AND THERE THEY PREACHED THE GOSPEL.UH# 8 AND THERE SAT A CERTAIN MAN AT LYSTRA, IMPOTENT IN HIS FEET, BEING A5 CRIPPLE FROM HIS MOTHERS WOMB, WHO NEVER HAD WALKED:IK# 9 THE SAME HEARD PAUL SPEAK: WHO STEDFASTLY BEHOLDING HIM, AND PERCEIVINGN THAT HE HAD FAITH TO BE HEALED,I# 10 SAID WITH A LOUD VOICE, STAND UPRIGHT ON THY FEET. AND HE LEAPED ANDE WALKED.M# 11 AND WHEN THE PEOPLE SAW WHAT PAUL HAD DONE, THEY LIFTED UP THEIR VOICES,IF SAYING IN THE SPEECH OF LYCAONIA, THE GODS ARE COME DOWN TO US IN THE LIKENESS OF MEN. K# 12 AND THEY CALLED BARNABAS, JUPITER; AND PAUL, MERCURIUS, BECAUSE HE WAS, THE CHIEF SPEAKER.OJ# 13 THEN THE PRIEST OF JUPITER, WHICH WAS BEFORE THEIR CITY, BROUGHT OXENL AND GARLANDS UNTO THE GATES, AND WOULD HAVE DONE SACRIFICE WITH THE PEOPLE.J# 14 WHICH WHEN THE APOSTLES, BARNABAS AND PAUL, HEARD OF, THEY RENT THEIR2 CLOTHES, AND RAN IN AMONG THE PEOPLE, CRYING OUT,F# 15 AND SAYING, SIRS, WHY DO YE THESE THINGS? WE ALSO ARE MEN OF LIKEF PASSIONS WITH YOU, AND PREACH UNTO YOU THAT YE SHOULD TURN FROM THESEM VANITIES UNTO THE LIVING GOD, WHICH MADE HEAVEN, AND EARTH, AND THE SEA, ANDE ALL THINGS THAT ARE THEREIN: F# 16 WHO IN TIMES PAST SUFFERED ALL NATIONS TO WALK IN THEIR OWN WAYS.K# 17 NEVERTHELESS HE LEFT NOT HIMSELF WITHOUT WITNESS, IN THAT HE DID GOOD, L AND GAVE US RAIN FROM HEAVEN, AND FRUITFUL SEASONS, FILLING OUR HEARTS WITH FOOD AND GLADNESS.NL# 18 AND WITH THESE SAYINGS SCARCE RESTRAINED THEY THE PEOPLE, THAT THEY HAD NOT DONE SACRIFICE UNTO THEM.F# 19 AND THERE CAME THITHER CERTAIN JEWS FROM ANTIOCH AND ICONIUM, WHOH PERSUADED THE PEOPLE, AND HAVING STONED PAUL, DREW HIM OUT OF THE CITY, SUPPOSING HE HAD BEEN DEAD.J# 20 HOWBEIT, AS THE DISCIPLES STOOD ROUND ABOUT HIM, HE ROSE UP, AND CAMED INTO THE CITY: AND THE NEXT DAY HE DEPARTED WITH BARNABAS TO DERBE.M# 21 AND WHEN THEY HAD PREACHED THE GOSPEL TO THAT CITY, AND HAD TAUGHT MANY,N< THEY RETURNED AGAIN TO LYSTRA, AND TO ICONIUM, AND ANTIOCH,M# 22 CONFIRMING THE SOULS OF THE DISCIPLES, AND EXHORTING THEM TO CONTINUE INEL THE FAITH, AND THAT WE MUST THROUGH MUCH TRIBULATION ENTER INTO THE KINGDOM OF GOD.K# 23 AND WHEN THEY HAD ORDAINED THEM ELDERS IN EVERY CHURCH, AND HAD PRAYEDEF WITH FASTING, THEY COMMENDED THEM TO THE LORD, ON WHOM THEY BELIE00BD'AD%5%T6%! !VED.J# 24 AND AFTER THEY HAD PASSED THROUGHOUT PISIDIA, THEY CAME TO PAMPHYLIA.F# 25 AND WHEN THEY HAD PREACHED THE WORD IN PERGA, THEY WENT DOWN INTO ATTALIA:YK# 26 AND THENCE SAILED TO ANTIOCH, FROM WHENCE THEY HAD BEEN RECOMMENDED TOS4 THE GRACE OF GOD FOR THE WORK WHICH THEY FULFILLED.H# 27 AND WHEN THEY WERE COME, AND HAD GATHERED THE CHURCH TOGETHER, THEYM REHEARSED ALL THAT GOD HAD DONE WITH THEM, AND HOW HE HAD OPENED THE DOOR OFT FAITH UNTO THE GENTILES.H7# 28 AND THERE THEY ABODE LONG TIME WITH THE DISCIPLES.E = CHAPTER 15 RN# 1 AND CERTAIN MEN WHICH CAME DOWN FROM JUDAEA TAUGHT THE BRETHREN, AND SAID,H EXCEPT YE BE CIRCUMCISED AFTER THE MANNER OF MOSES, YE CANNOT BE SAVED.L# 2 WHEN THEREFORE PAUL AND BARNABAS HAD NO SMALL DISSENSION AND DISPUTATIONN WITH THEM, THEY DETERMINED THAT PAUL AND BARNABAS, AND CERTAIN OTHER OF THEM,L SHOULD GO UP TO JERUSALEM UNTO THE APOSTLES AND ELDERS ABOUT THIS QUESTION.M# 3 AND BEING BROUGHT ON THEIR WAY BY THE CHURCH, THEY PASSED THROUGH PHENICEGM AND SAMARIA, DECLARING THE CONVERSION OF THE GENTILES: AND THEY CAUSED GREAT  JOY UNTO ALL THE BRETHREN.EK# 4 AND WHEN THEY WERE COME TO JERUSALEM, THEY WERE RECEIVED OF THE CHURCH,BJ AND OF THE APOSTLES AND ELDERS, AND THEY DECLARED ALL THINGS THAT GOD HAD DONE WITH THEM.J# 5 BUT THERE ROSE UP CERTAIN OF THE SECT OF THE PHARISEES WHICH BELIEVED,L SAYING, THAT IT WAS NEEDFUL TO CIRCUMCISE THEM, AND TO COMMAND THEM TO KEEP THE LAW OF MOSES.M# 6 AND THE APOSTLES AND ELDERS CAME TOGETHER FOR TO CONSIDER OF THIS MATTER.NH# 7 AND WHEN THERE HAD BEEN MUCH DISPUTING, PETER ROSE UP, AND SAID UNTOJ THEM, MEN AND BRETHREN, YE KNOW HOW THAT A GOOD WHILE AGO GOD MADE CHOICEL AMONG US, THAT THE GENTILES BY MY MOUTH SHOULD HEAR THE WORD OF THE GOSPEL, AND BELIEVE.DI# 8 AND GOD, WHICH KNOWETH THE HEARTS, BARE THEM WITNESS, GIVING THEM THEW$ HOLY GHOST, EVEN AS HE DID UNTO US;H# 9 AND PUT NO DIFFERENCE BETWEEN US AND THEM, PURIFYING THEIR HEARTS BY FAITH. G# 10 NOW THEREFORE WHY TEMPT YE GOD, TO PUT A YOKE UPON THE NECK OF THE ? DISCIPLES, WHICH NEITHER OUR FATHERS NOR WE WERE ABLE TO BEAR? L# 11 BUT WE BELIEVE THAT THROUGH THE GRACE OF THE LORD JESUS CHRIST WE SHALL BE SAVED, EVEN AS THEY.K# 12 THEN ALL THE MULTITUDE KEPT SILENCE, AND GAVE AUDIENCE TO BARNABAS ANDNM PAUL, DECLARING WHAT MIRACLES AND WONDERS GOD HAD WROUGHT AMONG THE GENTILESS BY THEM.HI# 13 AND AFTER THEY HAD HELD THEIR PEACE, JAMES ANSWERED, SAYING, MEN ANDE BRETHREN, HEARKEN UNTO ME:NI# 14 SIMEON HATH DECLARED HOW GOD AT THE FIRST DID VISIT THE GENTILES, TOL( TAKE OUT OF THEM A PEOPLE FOR HIS NAME.C# 15 AND TO THIS AGREE THE WORDS OF THE PROPHETS; AS IT IS WRITTEN,DL# 16 AFTER THIS I WILL RETURN, AND WILL BUILD AGAIN THE TABERNACLE OF DAVID,K WHICH IS FALLEN DOWN; AND I WILL BUILD AGAIN THE RUINS THEREOF, AND I WILLL SET IT UP:SM# 17 THAT THE RESIDUE OF MEN MIGHT SEEK AFTER THE LORD, AND ALL THE GENTILES,TI UPON WHOM MY NAME IS CALLED, SAITH THE LORD, WHO DOETH ALL THESE THINGS.F# 18 KNOWN UNTO GOD ARE ALL HIS WORKS FROM THE BEGINNING OF THE WORLD.M# 19 WHEREFORE MY SENTENCE IS, THAT WE TROUBLE NOT THEM, WHICH FROM AMONG THEO GENTILES ARE TURNED TO GOD:M# 20 BUT THAT WE WRITE UNTO THEM, THAT THEY ABSTAIN FROM POLLUTIONS OF IDOLS,IA AND FROM FORNICATION, AND FROM THINGS STRANGLED, AND FROM BLOOD.,I# 21 FOR MOSES OF OLD TIME HATH IN EVERY CITY THEM THAT PREACH HIM, BEINGH* READ IN THE SYNAGOGUES EVERY SABBATH DAY.K# 22 THEN PLEASED IT THE APOSTLES AND ELDERS WITH THE WHOLE CHURCH, TO SENDTK CHOSEN MEN OF THEIR OWN COMPANY TO ANTIOCH WITH PAUL AND BARNABAS; NAMELY,EA JUDAS SURNAMED BARSABAS AND SILAS, CHIEF MEN AMONG THE BRETHREN:EG# 23 AND THEY WROTE LETTERS BY THEM AFTER THIS MANNER; THE APOSTLES AND N ELDERS AND BRETHREN SEND GREETING UNTO THE BRETHREN WHICH ARE OF THE GENTILES" IN ANTIOCH AND SYRIA AND CILICIA.I# 24 FORASMUCH AS WE HAVE HEARD, THAT CERTAIN WHICH WENT OUT FROM US HAVEGC TROUBLED YOU WITH WORDS, SUBVERTING YOUR SOULS, SAYING, YE MUST BEWG CIRCUMCISED, AND KEEP THE LAW: TO WHOM WE GAVE NO00JDB<%X>%+%O-%TADATADATA SUCH COMMANDMENT: ITCL# 25 IT SEEMED GOOD UNTO US, BEING ASSEMBLED WITH ONE ACCORD, TO SEND CHOSEN1 MEN UNTO YOU WITH OUR BELOVED BARNABAS AND PAUL,RF# 26 MEN THAT HAVE HAZARDED THEIR LIVES FOR THE NAME OF OUR LORD JESUS CHRIST.M# 27 WE HAVE SENT THEREFORE JUDAS AND SILAS, WHO SHALL ALSO TELL YOU THE SAME. THINGS BY MOUTH. H# 28 FOR IT SEEMED GOOD TO THE HOLY GHOST, AND TO US, TO LAY UPON YOU NO, GREATER BURDEN THAN THESE NECESSARY THINGS;J# 29 THAT YE ABSTAIN FROM MEATS OFFERED TO IDOLS, AND FROM BLOOD, AND FROMM THINGS STRANGLED, AND FROM FORNICATION: FROM WHICH IF YE KEEP YOURSELVES, YES SHALL DO WELL. FARE YE WELL.VI# 30 SO WHEN THEY WERE DISMISSED, THEY CAME TO ANTIOCH: AND WHEN THEY HADE= GATHERED THE MULTITUDE TOGETHER, THEY DELIVERED THE EPISTLE: A# 31 WHICH WHEN THEY HAD READ, THEY REJOICED FOR THE CONSOLATION. F# 32 AND JUDAS AND SILAS, BEING PROPHETS ALSO THEMSELVES, EXHORTED THE. BRETHREN WITH MANY WORDS, AND CONFIRMED THEM.M# 33 AND AFTER THEY HAD TARRIED THERE A SPACE, THEY WERE LET GO IN PEACE FROMG THE BRETHREN UNTO THE APOSTLES.;# 34 NOTWITHSTANDING IT PLEASED SILAS TO ABIDE THERE STILL.YL# 35 PAUL ALSO AND BARNABAS CONTINUED IN ANTIOCH, TEACHING AND PREACHING THE) WORD OF THE LORD, WITH MANY OTHERS ALSO.HK# 36 AND SOME DAYS AFTER PAUL SAID UNTO BARNABAS, LET US GO AGAIN AND VISITTL OUR BRETHREN IN EVERY CITY WHERE WE HAVE PREACHED THE WORD OF THE LORD, AND SEE HOW THEY DO.EL# 37 AND BARNABAS DETERMINED TO TAKE WITH THEM JOHN, WHOSE SURNAME WAS MARK.L# 38 BUT PAUL THOUGHT NOT GOOD TO TAKE HIM WITH THEM, WHO DEPARTED FROM THEM4 FROM PAMPHYLIA, AND WENT NOT WITH THEM TO THE WORK.M# 39 AND THE CONTENTION WAS SO SHARP BETWEEN THEM, THAT THEY DEPARTED ASUNDERTG ONE FROM THE OTHER: AND SO BARNABAS TOOK MARK, AND SAILED UNTO CYPRUS;PJ# 40 AND PAUL CHOSE SILAS, AND DEPARTED, BEING RECOMMENDED BY THE BRETHREN UNTO THE GRACE OF GOD.DD# 41 AND HE WENT THROUGH SYRIA AND CILICIA, CONFIRMING THE CHURCHES. = CHAPTER 16 WI# 1 THEN CAME HE TO DERBE AND LYSTRA: AND, BEHOLD, A CERTAIN DISCIPLE WASAL THERE, NAMED TIMOTHEUS, THE SON OF A CERTAIN WOMAN, WHICH WAS A JEWESS, AND& BELIEVED; BUT HIS FATHER WAS A GREEK:F# 2 WHICH WAS WELL REPORTED OF BY THE BRETHREN THAT WERE AT LYSTRA AND ICONIUM.SJ# 3 HIM WOULD PAUL HAVE TO GO FORTH WITH HIM; AND TOOK AND CIRCUMCISED HIMM BECAUSE OF THE JEWS WHICH WERE IN THOSE QUARTERS: FOR THEY KNEW ALL THAT HISA FATHER WAS A GREEK.L# 4 AND AS THEY WENT THROUGH THE CITIES, THEY DELIVERED THEM THE DECREES FORE TO KEEP, THAT WERE ORDAINED OF THE APOSTLES AND ELDERS WHICH WERE ATI JERUSALEM.SG# 5 AND SO WERE THE CHURCHES ESTABLISHED IN THE FAITH, AND INCREASED IN  NUMBER DAILY.L# 6 NOW WHEN THEY HAD GONE THROUGHOUT PHRYGIA AND THE REGION OF GALATIA, AND= WERE FORBIDDEN OF THE HOLY GHOST TO PREACH THE WORD IN ASIA,CL# 7 AFTER THEY WERE COME TO MYSIA, THEY ASSAYED TO GO INTO BITHYNIA: BUT THE SPIRIT SUFFERED THEM NOT.1# 8 AND THEY PASSING BY MYSIA CAME DOWN TO TROAS.,D# 9 AND A VISION APPEARED TO PAUL IN THE NIGHT; THERE STOOD A MAN OFJ MACEDONIA, AND PRAYED HIM, SAYING, COME OVER INTO MACEDONIA, AND HELP US.L# 10 AND AFTER HE HAD SEEN THE VISION, IMMEDIATELY WE ENDEAVOURED TO GO INTOM MACEDONIA, ASSUREDLY GATHERING THAT THE LORD HAD CALLED US FOR TO PREACH THED GOSPEL UNTO THEM.D# 11 THEREFORE LOOSING FROM TROAS, WE CAME WITH A STRAIGHT COURSE TO+ SAMOTHRACIA, AND THE NEXT DAY TO NEAPOLIS;II# 12 AND FROM THENCE TO PHILIPPI, WHICH IS THE CHIEF CITY OF THAT PART OF H MACEDONIA, AND A COLONY: AND WE WERE IN THAT CITY ABIDING CERTAIN DAYS.M# 13 AND ON THE SABBATH WE WENT OUT OF THE CITY BY A RIVER SIDE, WHERE PRAYERAN WAS WONT TO BE MADE; AND WE SAT DOWN, AND SPAKE UNTO THE WOMEN WHICH RESORTED THITHER.AH# 14 AND A CERTAIN WOMAN NAMED LYDIA, A SELLER OF PURPLE, OF THE CITY OFL THYATIRA, WHICH WORSHIPPED GOD, HEARD US: WHOSE HEART THE LORD OPENED, THAT8 SHE ATTENDED UNTO THE THINGS WHICH WERE SPOKEN OF PAUL.K# 15 AND WHEN SHE WAS BAPTIZED, AND HER HOUSEHOLD, SHE BESOUGHT US, SAYING,OI IF YE HAVE JUDGED ME TO BE FAITHFUL T00RD'AD%5%T6%! !O THE LORD, COME INTO MY HOUSE, ANDT% ABIDE THERE. AND SHE CONSTRAINED US.DJ# 16 AND IT CAME TO PASS, AS WE WENT TO PRAYER, A CERTAIN DAMSEL POSSESSEDK WITH A SPIRIT OF DIVINATION MET US, WHICH BROUGHT HER MASTERS MUCH GAIN BYL SOOTHSAYING:FH# 17 THE SAME FOLLOWED PAUL AND US, AND CRIED, SAYING, THESE MEN ARE THEH SERVANTS OF THE MOST HIGH GOD, WHICH SHEW UNTO US THE WAY OF SALVATION.L# 18 AND THIS DID SHE MANY DAYS. BUT PAUL, BEING GRIEVED, TURNED AND SAID TOK THE SPIRIT, I COMMAND THEE IN THE NAME OF JESUS CHRIST TO COME OUT OF HER. AND HE CAME OUT THE SAME HOUR. I# 19 AND WHEN HER MASTERS SAW THAT THE HOPE OF THEIR GAINS WAS GONE, THEYEK CAUGHT PAUL AND SILAS, AND DREW THEM INTO THE MARKETPLACE UNTO THE RULERS,NK# 20 AND BROUGHT THEM TO THE MAGISTRATES, SAYING, THESE MEN, BEING JEWS, DOT EXCEEDINGLY TROUBLE OUR CITY,J# 21 AND TEACH CUSTOMS, WHICH ARE NOT LAWFUL FOR US TO RECEIVE, NEITHER TO OBSERVE, BEING ROMANS.,I# 22 AND THE MULTITUDE ROSE UP TOGETHER AGAINST THEM: AND THE MAGISTRATES 4 RENT OFF THEIR CLOTHES, AND COMMANDED TO BEAT THEM.G# 23 AND WHEN THEY HAD LAID MANY STRIPES UPON THEM, THEY CAST THEM INTOI1 PRISON, CHARGING THE JAILOR TO KEEP THEM SAFELY:WK# 24 WHO, HAVING RECEIVED SUCH A CHARGE, THRUST THEM INTO THE INNER PRISON,G( AND MADE THEIR FEET FAST IN THE STOCKS.J# 25 AND AT MIDNIGHT PAUL AND SILAS PRAYED, AND SANG PRAISES UNTO GOD: AND THE PRISONERS HEARD THEM.J# 26 AND SUDDENLY THERE WAS A GREAT EARTHQUAKE, SO THAT THE FOUNDATIONS OFM THE PRISON WERE SHAKEN: AND IMMEDIATELY ALL THE DOORS WERE OPENED, AND EVERYT ONES BANDS WERE LOOSED.J# 27 AND THE KEEPER OF THE PRISON AWAKING OUT OF HIS SLEEP, AND SEEING THEI PRISON DOORS OPEN, HE DREW OUT HIS SWORD, AND WOULD HAVE KILLED HIMSELF,R, SUPPOSING THAT THE PRISONERS HAD BEEN FLED.M# 28 BUT PAUL CRIED WITH A LOUD VOICE, SAYING, DO THYSELF NO HARM: FOR WE AREA ALL HERE.L# 29 THEN HE CALLED FOR A LIGHT, AND SPRANG IN, AND CAME TREMBLING, AND FELL DOWN BEFORE PAUL AND SILAS,F# 30 AND BROUGHT THEM OUT, AND SAID, SIRS, WHAT MUST I DO TO BE SAVED?G# 31 AND THEY SAID, BELIEVE ON THE LORD JESUS CHRIST, AND THOU SHALT BEI SAVED, AND THY HOUSE.J# 32 AND THEY SPAKE UNTO HIM THE WORD OF THE LORD, AND TO ALL THAT WERE IN HIS HOUSE.MK# 33 AND HE TOOK THEM THE SAME HOUR OF THE NIGHT, AND WASHED THEIR STRIPES;H/ AND WAS BAPTIZED, HE AND ALL HIS, STRAIGHTWAY. J# 34 AND WHEN HE HAD BROUGHT THEM INTO HIS HOUSE, HE SET MEAT BEFORE THEM,3 AND REJOICED, BELIEVING IN GOD WITH ALL HIS HOUSE.0I# 35 AND WHEN IT WAS DAY, THE MAGISTRATES SENT THE SERJEANTS, SAYING, LETD THOSE MEN GO.K# 36 AND THE KEEPER OF THE PRISON TOLD THIS SAYING TO PAUL, THE MAGISTRATES2@ HAVE SENT TO LET YOU GO: NOW THEREFORE DEPART, AND GO IN PEACE.K# 37 BUT PAUL SAID UNTO THEM, THEY HAVE BEATEN US OPENLY UNCONDEMNED, BEINGHM ROMANS, AND HAVE CAST US INTO PRISON; AND NOW DO THEY THRUST US OUT PRIVILY?W; NAY VERILY; BUT LET THEM COME THEMSELVES AND FETCH US OUT.EF# 38 AND THE SERJEANTS TOLD THESE WORDS UNTO THE MAGISTRATES: AND THEY/ FEARED, WHEN THEY HEARD THAT THEY WERE ROMANS.AL# 39 AND THEY CAME AND BESOUGHT THEM, AND BROUGHT THEM OUT, AND DESIRED THEM TO DEPART OUT OF THE CITY.HJ# 40 AND THEY WENT OUT OF THE PRISON, AND ENTERED INTO THE HOUSE OF LYDIA:H AND WHEN THEY HAD SEEN THE BRETHREN, THEY COMFORTED THEM, AND DEPARTED. = CHAPTER 17 UK# 1 NOW WHEN THEY HAD PASSED THROUGH AMPHIPOLIS AND APOLLONIA, THEY CAME TOT1 THESSALONICA, WHERE WAS A SYNAGOGUE OF THE JEWS:EJ# 2 AND PAUL, AS HIS MANNER WAS, WENT IN UNTO THEM, AND THREE SABBATH DAYS* REASONED WITH THEM OUT OF THE SCRIPTURES,I# 3 OPENING AND ALLEGING, THAT CHRIST MUST NEEDS HAVE SUFFERED, AND RISENAM AGAIN FROM THE DEAD; AND THAT THIS JESUS, WHOM I PREACH UNTO YOU, IS CHRIST.EL# 4 AND SOME OF THEM BELIEVED, AND CONSORTED WITH PAUL AND SILAS; AND OF THEC DEVOUT GREEKS A GREAT MULTITUDE, AND OF THE CHIEF WOMEN NOT A FEW.PL# 5 BUT THE JEWS WHICH BELIEVED NOT, MOVED WITH ENVY, TOOK UNTO THEM CERTAINM LEWD FELLOWS OF THE BASER SORT, AND GATHERED A COMPANY, AND SET ALL THE CITYTM O00ZDB<%X>%+%O-%TADATADATAN AN UPROAR, AND ASSAULTED THE HOUSE OF JASON, AND SOUGHT TO BRING THEM OUTH TO THE PEOPLE.EK# 6 AND WHEN THEY FOUND THEM NOT, THEY DREW JASON AND CERTAIN BRETHREN UNTO M THE RULERS OF THE CITY, CRYING, THESE THAT HAVE TURNED THE WORLD UPSIDE DOWNT ARE COME HITHER ALSO;I# 7 WHOM JASON HATH RECEIVED: AND THESE ALL DO CONTRARY TO THE DECREES OF6 CAESAR, SAYING THAT THERE IS ANOTHER KING, ONE JESUS.L# 8 AND THEY TROUBLED THE PEOPLE AND THE RULERS OF THE CITY, WHEN THEY HEARD THESE THINGS.I# 9 AND WHEN THEY HAD TAKEN SECURITY OF JASON, AND OF THE OTHER, THEY LETG THEM GO.H# 10 AND THE BRETHREN IMMEDIATELY SENT AWAY PAUL AND SILAS BY NIGHT UNTO? BEREA: WHO COMING THITHER WENT INTO THE SYNAGOGUE OF THE JEWS. L# 11 THESE WERE MORE NOBLE THAN THOSE IN THESSALONICA, IN THAT THEY RECEIVEDH THE WORD WITH ALL READINESS OF MIND, AND SEARCHED THE SCRIPTURES DAILY, WHETHER THOSE THINGS WERE SO.I# 12 THEREFORE MANY OF THEM BELIEVED; ALSO OF HONOURABLE WOMEN WHICH WEREH GREEKS, AND OF MEN, NOT A FEW. M# 13 BUT WHEN THE JEWS OF THESSALONICA HAD KNOWLEDGE THAT THE WORD OF GOD WASN PREACHED OF PAUL AT BEREA, THEY CAME THITHER ALSO, AND STIRRED UP THE PEOPLE.M# 14 AND THEN IMMEDIATELY THE BRETHREN SENT AWAY PAUL TO GO AS IT WERE TO THEE0 SEA: BUT SILAS AND TIMOTHEUS ABODE THERE STILL.J# 15 AND THEY THAT CONDUCTED PAUL BROUGHT HIM UNTO ATHENS: AND RECEIVING AM COMMANDMENT UNTO SILAS AND TIMOTHEUS FOR TO COME TO HIM WITH ALL SPEED, THEYO DEPARTED.M# 16 NOW WHILE PAUL WAITED FOR THEM AT ATHENS, HIS SPIRIT WAS STIRRED IN HIM,O/ WHEN HE SAW THE CITY WHOLLY GIVEN TO IDOLATRY. G# 17 THEREFORE DISPUTED HE IN THE SYNAGOGUE WITH THE JEWS, AND WITH THETE DEVOUT PERSONS, AND IN THE MARKET DAILY WITH THEM THAT MET WITH HIM. E# 18 THEN CERTAIN PHILOSOPHERS OF THE EPICUREANS, AND OF THE STOICKS, K ENCOUNTERED HIM. AND SOME SAID, WHAT WILL THIS BABBLER SAY? OTHER SOME, HEML SEEMETH TO BE A SETTER FORTH OF STRANGE GODS: BECAUSE HE PREACHED UNTO THEM JESUS, AND THE RESURRECTION.AK# 19 AND THEY TOOK HIM, AND BROUGHT HIM UNTO AREOPAGUS, SAYING, MAY WE KNOWT3 WHAT THIS NEW DOCTRINE, WHEREOF THOU SPEAKEST, IS? H# 20 FOR THOU BRINGEST CERTAIN STRANGE THINGS TO OUR EARS: WE WOULD KNOW" THEREFORE WHAT THESE THINGS MEAN.K# 21 (FOR ALL THE ATHENIANS AND STRANGERS WHICH WERE THERE SPENT THEIR TIMECA IN NOTHING ELSE, BUT EITHER TO TELL, OR TO HEAR SOME NEW THING.)OM# 22 THEN PAUL STOOD IN THE MIDST OF MARS HILL, AND SAID, YE MEN OF ATHENS, IH6 PERCEIVE THAT IN ALL THINGS YE ARE TOO SUPERSTITIOUS.I# 23 FOR AS I PASSED BY, AND BEHELD YOUR DEVOTIONS, I FOUND AN ALTAR WITHHL THIS INSCRIPTION, TO THE UNKNOWN GOD. WHOM THEREFORE YE IGNORANTLY WORSHIP, HIM DECLARE I UNTO YOU.K# 24 GOD THAT MADE THE WORLD AND ALL THINGS THEREIN, SEEING THAT HE IS LORDN> OF HEAVEN AND EARTH, DWELLETH NOT IN TEMPLES MADE WITH HANDS;J# 25 NEITHER IS WORSHIPPED WITH MENS HANDS, AS THOUGH HE NEEDED ANY THING,: SEEING HE GIVETH TO ALL LIFE, AND BREATH, AND ALL THINGS;J# 26 AND HATH MADE OF ONE BLOOD ALL NATIONS OF MEN FOR TO DWELL ON ALL THEK FACE OF THE EARTH, AND HATH DETERMINED THE TIMES BEFORE APPOINTED, AND THE  BOUNDS OF THEIR HABITATION;L# 27 THAT THEY SHOULD SEEK THE LORD, IF HAPLY THEY MIGHT FEEL AFTER HIM, AND5 FIND HIM, THOUGH HE BE NOT FAR FROM EVERY ONE OF US: I# 28 FOR IN HIM WE LIVE, AND MOVE, AND HAVE OUR BEING; AS CERTAIN ALSO OF 9 YOUR OWN POETS HAVE SAID, FOR WE ARE ALSO HIS OFFSPRING.I# 29 FORASMUCH THEN AS WE ARE THE OFFSPRING OF GOD, WE OUGHT NOT TO THINKAK THAT THE GODHEAD IS LIKE UNTO GOLD, OR SILVER, OR STONE, GRAVEN BY ART ANDH MANS DEVICE.RJ# 30 AND THE TIMES OF THIS IGNORANCE GOD WINKED AT; BUT NOW COMMANDETH ALL MEN EVERY WHERE TO REPENT:LM# 31 BECAUSE HE HATH APPOINTED A DAY, IN THE WHICH HE WILL JUDGE THE WORLD INRG RIGHTEOUSNESS BY THAT MAN WHOM HE HATH ORDAINED; WHEREOF HE HATH GIVENNB ASSURANCE UNTO ALL MEN, IN THAT HE HATH RAISED HIM FROM THE DEAD.J# 32 AND WHEN THEY HEARD OF THE RESURRECTION OF THE DEAD, SOME MOCKED: AND5 OTHERS SAID, WE WILL HEAR THEE AGAIN OF THIS MATTER. &# 33 SO PA00bD'AD%5%T6%! !UL DEPARTED FROM AMONG THEM.J# 34 HOWBEIT CERTAIN MEN CLAVE UNTO HIM, AND BELIEVED: AMONG THE WHICH WASK DIONYSIUS THE AREOPAGITE, AND A WOMAN NAMED DAMARIS, AND OTHERS WITH THEM.D = CHAPTER 18 HF# 1 AFTER THESE THINGS PAUL DEPARTED FROM ATHENS, AND CAME TO CORINTH;J# 2 AND FOUND A CERTAIN JEW NAMED AQUILA, BORN IN PONTUS, LATELY COME FROMN ITALY, WITH HIS WIFE PRISCILLA; (BECAUSE THAT CLAUDIUS HAD COMMANDED ALL JEWS* TO DEPART FROM ROME:) AND CAME UNTO THEM.J# 3 AND BECAUSE HE WAS OF THE SAME CRAFT, HE ABODE WITH THEM, AND WROUGHT:. FOR BY THEIR OCCUPATION THEY WERE TENTMAKERS.J# 4 AND HE REASONED IN THE SYNAGOGUE EVERY SABBATH, AND PERSUADED THE JEWS AND THE GREEKS.K# 5 AND WHEN SILAS AND TIMOTHEUS WERE COME FROM MACEDONIA, PAUL WAS PRESSED @ IN THE SPIRIT, AND TESTIFIED TO THE JEWS THAT JESUS WAS CHRIST.K# 6 AND WHEN THEY OPPOSED THEMSELVES, AND BLASPHEMED, HE SHOOK HIS RAIMENT,AH AND SAID UNTO THEM, YOUR BLOOD BE UPON YOUR OWN HEADS; I AM CLEAN; FROM( HENCEFORTH I WILL GO UNTO THE GENTILES.H# 7 AND HE DEPARTED THENCE, AND ENTERED INTO A CERTAIN MANS HOUSE, NAMEDK JUSTUS, ONE THAT WORSHIPPED GOD, WHOSE HOUSE JOINED HARD TO THE SYNAGOGUE. L# 8 AND CRISPUS, THE CHIEF RULER OF THE SYNAGOGUE, BELIEVED ON THE LORD WITHF ALL HIS HOUSE; AND MANY OF THE CORINTHIANS HEARING BELIEVED, AND WERE BAPTIZED.L# 9 THEN SPAKE THE LORD TO PAUL IN THE NIGHT BY A VISION, BE NOT AFRAID, BUT SPEAK, AND HOLD NOT THY PEACE:LI# 10 FOR I AM WITH THEE, AND NO MAN SHALL SET ON THEE TO HURT THEE: FOR IE HAVE MUCH PEOPLE IN THIS CITY.HK# 11 AND HE CONTINUED THERE A YEAR AND SIX MONTHS, TEACHING THE WORD OF GODP AMONG THEM.I# 12 AND WHEN GALLIO WAS THE DEPUTY OF ACHAIA, THE JEWS MADE INSURRECTIONHD WITH ONE ACCORD AGAINST PAUL, AND BROUGHT HIM TO THE JUDGMENT SEAT,K# 13 SAYING, THIS FELLOW PERSUADETH MEN TO WORSHIP GOD CONTRARY TO THE LAW. H# 14 AND WHEN PAUL WAS NOW ABOUT TO OPEN HIS MOUTH, GALLIO SAID UNTO THEI JEWS, IF IT WERE A MATTER OF WRONG OR WICKED LEWDNESS, O YE JEWS, REASON # WOULD THAT I SHOULD BEAR WITH YOU:IL# 15 BUT IF IT BE A QUESTION OF WORDS AND NAMES, AND OF YOUR LAW, LOOK YE TO, IT; FOR I WILL BE NO JUDGE OF SUCH MATTERS..# 16 AND HE DRAVE THEM FROM THE JUDGMENT SEAT.J# 17 THEN ALL THE GREEKS TOOK SOSTHENES, THE CHIEF RULER OF THE SYNAGOGUE,J AND BEAT HIM BEFORE THE JUDGMENT SEAT. AND GALLIO CARED FOR NONE OF THOSE THINGS.J# 18 AND PAUL AFTER THIS TARRIED THERE YET A GOOD WHILE, AND THEN TOOK HISL LEAVE OF THE BRETHREN, AND SAILED THENCE INTO SYRIA, AND WITH HIM PRISCILLAA AND AQUILA; HAVING SHORN HIS HEAD IN CENCHREA: FOR HE HAD A VOW. M# 19 AND HE CAME TO EPHESUS, AND LEFT THEM THERE: BUT HE HIMSELF ENTERED INTO.+ THE SYNAGOGUE, AND REASONED WITH THE JEWS.AL# 20 WHEN THEY DESIRED HIM TO TARRY LONGER TIME WITH THEM, HE CONSENTED NOT;M# 21 BUT BADE THEM FAREWELL, SAYING, I MUST BY ALL MEANS KEEP THIS FEAST THATTK COMETH IN JERUSALEM: BUT I WILL RETURN AGAIN UNTO YOU, IF GOD WILL. AND HEK SAILED FROM EPHESUS.TM# 22 AND WHEN HE HAD LANDED AT CAESAREA, AND GONE UP, AND SALUTED THE CHURCH,  HE WENT DOWN TO ANTIOCH. K# 23 AND AFTER HE HAD SPENT SOME TIME THERE, HE DEPARTED, AND WENT OVER ALLHN THE COUNTRY OF GALATIA AND PHRYGIA IN ORDER, STRENGTHENING ALL THE DISCIPLES.J# 24 AND A CERTAIN JEW NAMED APOLLOS, BORN AT ALEXANDRIA, AN ELOQUENT MAN,/ AND MIGHTY IN THE SCRIPTURES, CAME TO EPHESUS.EM# 25 THIS MAN WAS INSTRUCTED IN THE WAY OF THE LORD; AND BEING FERVENT IN THEGL SPIRIT, HE SPAKE AND TAUGHT DILIGENTLY THE THINGS OF THE LORD, KNOWING ONLY THE BAPTISM OF JOHN.AH# 26 AND HE BEGAN TO SPEAK BOLDLY IN THE SYNAGOGUE: WHOM WHEN AQUILA ANDM PRISCILLA HAD HEARD, THEY TOOK HIM UNTO THEM, AND EXPOUNDED UNTO HIM THE WAY  OF GOD MORE PERFECTLY.HF# 27 AND WHEN HE WAS DISPOSED TO PASS INTO ACHAIA, THE BRETHREN WROTE,K EXHORTING THE DISCIPLES TO RECEIVE HIM: WHO, WHEN HE WAS COME, HELPED THEME' MUCH WHICH HAD BELIEVED THROUGH GRACE: K# 28 FOR HE MIGHTILY CONVINCED THE JEWS, AND THAT PUBLICKLY, SHEWING BY THEL" SCRIPTURES THAT JESUS WAS CHRIST. = CHAPTER 19 MH# 1 AND IT00jDB<%X>%+%O-%TADATADATA CAME TO PASS, THAT, WHILE APOLLOS WAS AT CORINTH, PAUL HAVINGE PASSED THROUGH THE UPPER COASTS CAME TO EPHESUS: AND FINDING CERTAIND DISCIPLES, M# 2 HE SAID UNTO THEM, HAVE YE RECEIVED THE HOLY GHOST SINCE YE BELIEVED? ANDIK THEY SAID UNTO HIM, WE HAVE NOT SO MUCH AS HEARD WHETHER THERE BE ANY HOLY  GHOST. J# 3 AND HE SAID UNTO THEM, UNTO WHAT THEN WERE YE BAPTIZED? AND THEY SAID, UNTO JOHNS BAPTISM.H# 4 THEN SAID PAUL, JOHN VERILY BAPTIZED WITH THE BAPTISM OF REPENTANCE,J SAYING UNTO THE PEOPLE, THAT THEY SHOULD BELIEVE ON HIM WHICH SHOULD COME% AFTER HIM, THAT IS, ON CHRIST JESUS.OK# 5 WHEN THEY HEARD THIS, THEY WERE BAPTIZED IN THE NAME OF THE LORD JESUS.EL# 6 AND WHEN PAUL HAD LAID HIS HANDS UPON THEM, THE HOLY GHOST CAME ON THEM;- AND THEY SPAKE WITH TONGUES, AND PROPHESIED.E&# 7 AND ALL THE MEN WERE ABOUT TWELVE.K# 8 AND HE WENT INTO THE SYNAGOGUE, AND SPAKE BOLDLY FOR THE SPACE OF THREE.K MONTHS, DISPUTING AND PERSUADING THE THINGS CONCERNING THE KINGDOM OF GOD.SK# 9 BUT WHEN DIVERS WERE HARDENED, AND BELIEVED NOT, BUT SPAKE EVIL OF THATTN WAY BEFORE THE MULTITUDE, HE DEPARTED FROM THEM, AND SEPARATED THE DISCIPLES,/ DISPUTING DAILY IN THE SCHOOL OF ONE TYRANNUS.UI# 10 AND THIS CONTINUED BY THE SPACE OF TWO YEARS; SO THAT ALL THEY WHICHKF DWELT IN ASIA HEARD THE WORD OF THE LORD JESUS, BOTH JEWS AND GREEKS.;# 11 AND GOD WROUGHT SPECIAL MIRACLES BY THE HANDS OF PAUL:EF# 12 SO THAT FROM HIS BODY WERE BROUGHT UNTO THE SICK HANDKERCHIEFS ORN APRONS, AND THE DISEASES DEPARTED FROM THEM, AND THE EVIL SPIRITS WENT OUT OF THEM.I# 13 THEN CERTAIN OF THE VAGABOND JEWS, EXORCISTS, TOOK UPON THEM TO CALLEH OVER THEM WHICH HAD EVIL SPIRITS THE NAME OF THE LORD JESUS, SAYING, WE) ADJURE YOU BY JESUS WHOM PAUL PREACHETH.;M# 14 AND THERE WERE SEVEN SONS OF ONE SCEVA, A JEW, AND CHIEF OF THE PRIESTS,  WHICH DID SO.J# 15 AND THE EVIL SPIRIT ANSWERED AND SAID, JESUS I KNOW, AND PAUL I KNOW; BUT WHO ARE YE?I# 16 AND THE MAN IN WHOM THE EVIL SPIRIT WAS LEAPED ON THEM, AND OVERCAMEDL THEM, AND PREVAILED AGAINST THEM, SO THAT THEY FLED OUT OF THAT HOUSE NAKED AND WOUNDED. L# 17 AND THIS WAS KNOWN TO ALL THE JEWS AND GREEKS ALSO DWELLING AT EPHESUS;I AND FEAR FELL ON THEM ALL, AND THE NAME OF THE LORD JESUS WAS MAGNIFIED.H# 18 AND MANY THAT BELIEVED CAME, AND CONFESSED, AND SHEWED THEIR DEEDS.L# 19 MANY OF THEM ALSO WHICH USED CURIOUS ARTS BROUGHT THEIR BOOKS TOGETHER,N AND BURNED THEM BEFORE ALL MEN: AND THEY COUNTED THE PRICE OF THEM, AND FOUND$ IT FIFTY THOUSAND PIECES OF SILVER.4# 20 SO MIGHTILY GREW THE WORD OF GOD AND PREVAILED.L# 21 AFTER THESE THINGS WERE ENDED, PAUL PURPOSED IN THE SPIRIT, WHEN HE HADN PASSED THROUGH MACEDONIA AND ACHAIA, TO GO TO JERUSALEM, SAYING, AFTER I HAVE" BEEN THERE, I MUST ALSO SEE ROME.D# 22 SO HE SENT INTO MACEDONIA TWO OF THEM THAT MINISTERED UNTO HIM,C TIMOTHEUS AND ERASTUS; BUT HE HIMSELF STAYED IN ASIA FOR A SEASON.G@# 23 AND THE SAME TIME THERE AROSE NO SMALL STIR ABOUT THAT WAY.H# 24 FOR A CERTAIN MAN NAMED DEMETRIUS, A SILVERSMITH, WHICH MADE SILVER= SHRINES FOR DIANA, BROUGHT NO SMALL GAIN UNTO THE CRAFTSMEN; K# 25 WHOM HE CALLED TOGETHER WITH THE WORKMEN OF LIKE OCCUPATION, AND SAID,I5 SIRS, YE KNOW THAT BY THIS CRAFT WE HAVE OUR WEALTH.D# 26 MOREOVER YE SEE AND HEAR, THAT NOT ALONE AT EPHESUS, BUT ALMOSTK THROUGHOUT ALL ASIA, THIS PAUL HATH PERSUADED AND TURNED AWAY MUCH PEOPLE,A8 SAYING THAT THEY BE NO GODS, WHICH ARE MADE WITH HANDS:J# 27 SO THAT NOT ONLY THIS OUR CRAFT IS IN DANGER TO BE SET AT NOUGHT; BUTL ALSO THAT THE TEMPLE OF THE GREAT GODDESS DIANA SHOULD BE DESPISED, AND HERK MAGNIFICENCE SHOULD BE DESTROYED, WHOM ALL ASIA AND THE WORLD WORSHIPPETH.UJ# 28 AND WHEN THEY HEARD THESE SAYINGS, THEY WERE FULL OF WRATH, AND CRIED. OUT, SAYING, GREAT IS DIANA OF THE EPHESIANS.J# 29 AND THE WHOLE CITY WAS FILLED WITH CONFUSION: AND HAVING CAUGHT GAIUSK AND ARISTARCHUS, MEN OF MACEDONIA, PAULS COMPANIONS IN TRAVEL, THEY RUSHEDD" WITH ONE ACCORD INTO THE THEATRE.G# 30 AND WHEN PAUL WOULD HAVE ENTERED IN UNTO THE PEOPLE00rD'AD%5%T6%! !, THE DISCIPLESG SUFFERED HIM NOT.M# 31 AND CERTAIN OF THE CHIEF OF ASIA, WHICH WERE HIS FRIENDS, SENT UNTO HIM,DC DESIRING HIM THAT HE WOULD NOT ADVENTURE HIMSELF INTO THE THEATRE.YK# 32 SOME THEREFORE CRIED ONE THING, AND SOME ANOTHER: FOR THE ASSEMBLY WAS.H CONFUSED: AND THE MORE PART KNEW NOT WHEREFORE THEY WERE COME TOGETHER.G# 33 AND THEY DREW ALEXANDER OUT OF THE MULTITUDE, THE JEWS PUTTING HIMRG FORWARD. AND ALEXANDER BECKONED WITH THE HAND, AND WOULD HAVE MADE HIS  DEFENCE UNTO THE PEOPLE. M# 34 BUT WHEN THEY KNEW THAT HE WAS A JEW, ALL WITH ONE VOICE ABOUT THE SPACEH9 OF TWO HOURS CRIED OUT, GREAT IS DIANA OF THE EPHESIANS.OG# 35 AND WHEN THE TOWNCLERK HAD APPEASED THE PEOPLE, HE SAID, YE MEN OFNE EPHESUS, WHAT MAN IS THERE THAT KNOWETH NOT HOW THAT THE CITY OF THERM EPHESIANS IS A WORSHIPPER OF THE GREAT GODDESS DIANA, AND OF THE IMAGE WHICHR FELL DOWN FROM JUPITER?K# 36 SEEING THEN THAT THESE THINGS CANNOT BE SPOKEN AGAINST, YE OUGHT TO BE ! QUIET, AND TO DO NOTHING RASHLY.EG# 37 FOR YE HAVE BROUGHT HITHER THESE MEN, WHICH ARE NEITHER ROBBERS OFU/ CHURCHES, NOR YET BLASPHEMERS OF YOUR GODDESS.II# 38 WHEREFORE IF DEMETRIUS, AND THE CRAFTSMEN WHICH ARE WITH HIM, HAVE A,J MATTER AGAINST ANY MAN, THE LAW IS OPEN, AND THERE ARE DEPUTIES: LET THEM IMPLEAD ONE ANOTHER.SF# 39 BUT IF YE ENQUIRE ANY THING CONCERNING OTHER MATTERS, IT SHALL BE! DETERMINED IN A LAWFUL ASSEMBLY.EH# 40 FOR WE ARE IN DANGER TO BE CALLED IN QUESTION FOR THIS DAYS UPROAR,G THERE BEING NO CAUSE WHEREBY WE MAY GIVE AN ACCOUNT OF THIS CONCOURSE.,<# 41 AND WHEN HE HAD THUS SPOKEN, HE DISMISSED THE ASSEMBLY. = CHAPTER 20 SL# 1 AND AFTER THE UPROAR WAS CEASED, PAUL CALLED UNTO HIM THE DISCIPLES, AND6 EMBRACED THEM, AND DEPARTED FOR TO GO INTO MACEDONIA.B# 2 AND WHEN HE HAD GONE OVER THOSE PARTS, AND HAD GIVEN THEM MUCH" EXHORTATION, HE CAME INTO GREECE,L# 3 AND THERE ABODE THREE MONTHS. AND WHEN THE JEWS LAID WAIT FOR HIM, AS HEG WAS ABOUT TO SAIL INTO SYRIA, HE PURPOSED TO RETURN THROUGH MACEDONIA.BD# 4 AND THERE ACCOMPANIED HIM INTO ASIA SOPATER OF BEREA; AND OF THEL THESSALONIANS, ARISTARCHUS AND SECUNDUS; AND GAIUS OF DERBE, AND TIMOTHEUS;% AND OF ASIA, TYCHICUS AND TROPHIMUS.I/# 5 THESE GOING BEFORE TARRIED FOR US AT TROAS. L# 6 AND WE SAILED AWAY FROM PHILIPPI AFTER THE DAYS OF UNLEAVENED BREAD, ANDA CAME UNTO THEM TO TROAS IN FIVE DAYS; WHERE WE ABODE SEVEN DAYS.HK# 7 AND UPON THE FIRST DAY OF THE WEEK, WHEN THE DISCIPLES CAME TOGETHER TOTI BREAK BREAD, PAUL PREACHED UNTO THEM, READY TO DEPART ON THE MORROW; ANDE% CONTINUED HIS SPEECH UNTIL MIDNIGHT.FM# 8 AND THERE WERE MANY LIGHTS IN THE UPPER CHAMBER, WHERE THEY WERE GATHEREDU TOGETHER.G# 9 AND THERE SAT IN A WINDOW A CERTAIN YOUNG MAN NAMED EUTYCHUS, BEINGTL FALLEN INTO A DEEP SLEEP: AND AS PAUL WAS LONG PREACHING, HE SUNK DOWN WITHA SLEEP, AND FELL DOWN FROM THE THIRD LOFT, AND WAS TAKEN UP DEAD. M# 10 AND PAUL WENT DOWN, AND FELL ON HIM, AND EMBRACING HIM SAID, TROUBLE NOTR$ YOURSELVES; FOR HIS LIFE IS IN HIM.J# 11 WHEN HE THEREFORE WAS COME UP AGAIN, AND HAD BROKEN BREAD, AND EATEN,A AND TALKED A LONG WHILE, EVEN TILL BREAK OF DAY, SO HE DEPARTED.TK# 12 AND THEY BROUGHT THE YOUNG MAN ALIVE, AND WERE NOT A LITTLE COMFORTED. J# 13 AND WE WENT BEFORE TO SHIP, AND SAILED UNTO ASSOS, THERE INTENDING TOD TAKE IN PAUL: FOR SO HAD HE APPOINTED, MINDING HIMSELF TO GO AFOOT.L# 14 AND WHEN HE MET WITH US AT ASSOS, WE TOOK HIM IN, AND CAME TO MITYLENE.L# 15 AND WE SAILED THENCE, AND CAME THE NEXT DAY OVER AGAINST CHIOS; AND THEM NEXT DAY WE ARRIVED AT SAMOS, AND TARRIED AT TROGYLLIUM; AND THE NEXT DAY WE  CAME TO MILETUS.LK# 16 FOR PAUL HAD DETERMINED TO SAIL BY EPHESUS, BECAUSE HE WOULD NOT SPENDAG THE TIME IN ASIA: FOR HE HASTED, IF IT WERE POSSIBLE FOR HIM, TO BE ATI JERUSALEM THE DAY OF PENTECOST.F# 17 AND FROM MILETUS HE SENT TO EPHESUS, AND CALLED THE ELDERS OF THE CHURCH.I# 18 AND WHEN THEY WERE COME TO HIM, HE SAID UNTO THEM, YE KNOW, FROM THEDK FIRST DAY THAT I CAME INTO ASIA, AFTER WHAT MANNER I HAVE BEEN WITH YOU A00zDB<%X>%+%O-%TADATADATATA ALL SEASONS, I# 19 SERVING THE LORD WITH ALL HUMILITY OF MIND, AND WITH MANY TEARS, AND? TEMPTATIONS, WHICH BEFELL ME BY THE LYING IN WAIT OF THE JEWS: G# 20 AND HOW I KEPT BACK NOTHING THAT WAS PROFITABLE UNTO YOU, BUT HAVE,D SHEWED YOU, AND HAVE TAUGHT YOU PUBLICKLY, AND FROM HOUSE TO HOUSE,K# 21 TESTIFYING BOTH TO THE JEWS, AND ALSO TO THE GREEKS, REPENTANCE TOWARDW- GOD, AND FAITH TOWARD OUR LORD JESUS CHRIST.OJ# 22 AND NOW, BEHOLD, I GO BOUND IN THE SPIRIT UNTO JERUSALEM, NOT KNOWING' THE THINGS THAT SHALL BEFALL ME THERE:EM# 23 SAVE THAT THE HOLY GHOST WITNESSETH IN EVERY CITY, SAYING THAT BONDS AND  AFFLICTIONS ABIDE ME.H# 24 BUT NONE OF THESE THINGS MOVE ME, NEITHER COUNT I MY LIFE DEAR UNTOM MYSELF, SO THAT I MIGHT FINISH MY COURSE WITH JOY, AND THE MINISTRY, WHICH IEL HAVE RECEIVED OF THE LORD JESUS, TO TESTIFY THE GOSPEL OF THE GRACE OF GOD.J# 25 AND NOW, BEHOLD, I KNOW THAT YE ALL, AMONG WHOM I HAVE GONE PREACHING/ THE KINGDOM OF GOD, SHALL SEE MY FACE NO MORE.TK# 26 WHEREFORE I TAKE YOU TO RECORD THIS DAY, THAT I AM PURE FROM THE BLOODH OF ALL MEN.G# 27 FOR I HAVE NOT SHUNNED TO DECLARE UNTO YOU ALL THE COUNSEL OF GOD.NH# 28 TAKE HEED THEREFORE UNTO YOURSELVES, AND TO ALL THE FLOCK, OVER THEI WHICH THE HOLY GHOST HATH MADE YOU OVERSEERS, TO FEED THE CHURCH OF GOD, , WHICH HE HATH PURCHASED WITH HIS OWN BLOOD.L# 29 FOR I KNOW THIS, THAT AFTER MY DEPARTING SHALL GRIEVOUS WOLVES ENTER IN" AMONG YOU, NOT SPARING THE FLOCK.J# 30 ALSO OF YOUR OWN SELVES SHALL MEN ARISE, SPEAKING PERVERSE THINGS, TO DRAW AWAY DISCIPLES AFTER THEM.M# 31 THEREFORE WATCH, AND REMEMBER, THAT BY THE SPACE OF THREE YEARS I CEASEDN0 NOT TO WARN EVERY ONE NIGHT AND DAY WITH TEARS.K# 32 AND NOW, BRETHREN, I COMMEND YOU TO GOD, AND TO THE WORD OF HIS GRACE,RM WHICH IS ABLE TO BUILD YOU UP, AND TO GIVE YOU AN INHERITANCE AMONG ALL THEM. WHICH ARE SANCTIFIED.8# 33 I HAVE COVETED NO MANS SILVER, OR GOLD, OR APPAREL.F# 34 YEA, YE YOURSELVES KNOW, THAT THESE HANDS HAVE MINISTERED UNTO MY, NECESSITIES, AND TO THEM THAT WERE WITH ME.L# 35 I HAVE SHEWED YOU ALL THINGS, HOW THAT SO LABOURING YE OUGHT TO SUPPORTJ THE WEAK, AND TO REMEMBER THE WORDS OF THE LORD JESUS, HOW HE SAID, IT IS& MORE BLESSED TO GIVE THAN TO RECEIVE.L# 36 AND WHEN HE HAD THUS SPOKEN, HE KNEELED DOWN, AND PRAYED WITH THEM ALL.D# 37 AND THEY ALL WEPT SORE, AND FELL ON PAULS NECK, AND KISSED HIM,M# 38 SORROWING MOST OF ALL FOR THE WORDS WHICH HE SPAKE, THAT THEY SHOULD SEEN: HIS FACE NO MORE. AND THEY ACCOMPANIED HIM UNTO THE SHIP. = CHAPTER 21 TE# 1 AND IT CAME TO PASS, THAT AFTER WE WERE GOTTEN FROM THEM, AND HADGJ LAUNCHED, WE CAME WITH A STRAIGHT COURSE UNTO COOS, AND THE DAY FOLLOWING* UNTO RHODES, AND FROM THENCE UNTO PATARA:J# 2 AND FINDING A SHIP SAILING OVER UNTO PHENICIA, WE WENT ABOARD, AND SET FORTH.TG# 3 NOW WHEN WE HAD DISCOVERED CYPRUS, WE LEFT IT ON THE LEFT HAND, AND L SAILED INTO SYRIA, AND LANDED AT TYRE: FOR THERE THE SHIP WAS TO UNLADE HER BURDEN.H# 4 AND FINDING DISCIPLES, WE TARRIED THERE SEVEN DAYS: WHO SAID TO PAUL; THROUGH THE SPIRIT, THAT HE SHOULD NOT GO UP TO JERUSALEM. J# 5 AND WHEN WE HAD ACCOMPLISHED THOSE DAYS, WE DEPARTED AND WENT OUR WAY;N AND THEY ALL BROUGHT US ON OUR WAY, WITH WIVES AND CHILDREN, TILL WE WERE OUT; OF THE CITY: AND WE KNEELED DOWN ON THE SHORE, AND PRAYED. J# 6 AND WHEN WE HAD TAKEN OUR LEAVE ONE OF ANOTHER, WE TOOK SHIP; AND THEY RETURNED HOME AGAIN.DL# 7 AND WHEN WE HAD FINISHED OUR COURSE FROM TYRE, WE CAME TO PTOLEMAIS, AND3 SALUTED THE BRETHREN, AND ABODE WITH THEM ONE DAY.LJ# 8 AND THE NEXT DAY WE THAT WERE OF PAULS COMPANY DEPARTED, AND CAME UNTOL CAESAREA: AND WE ENTERED INTO THE HOUSE OF PHILIP THE EVANGELIST, WHICH WAS& ONE OF THE SEVEN; AND ABODE WITH HIM.E# 9 AND THE SAME MAN HAD FOUR DAUGHTERS, VIRGINS, WHICH DID PROPHESY.EM# 10 AND AS WE TARRIED THERE MANY DAYS, THERE CAME DOWN FROM JUDAEA A CERTAINP PROPHET, NAMED AGABUS.EJ# 11 AND WHEN HE WAS COME UNTO US, HE TOOK PAULS GIRDLE, AND BOUND HIS OWNJ HANDS AND FEET, AND SAID, THUS SAITH 00D'AD%5%T6%! !THE HOLY GHOST, SO SHALL THE JEWS ATK JERUSALEM BIND THE MAN THAT OWNETH THIS GIRDLE, AND SHALL DELIVER HIM INTOA THE HANDS OF THE GENTILES.OE# 12 AND WHEN WE HEARD THESE THINGS, BOTH WE, AND THEY OF THAT PLACE,I( BESOUGHT HIM NOT TO GO UP TO JERUSALEM.L# 13 THEN PAUL ANSWERED, WHAT MEAN YE TO WEEP AND TO BREAK MINE HEART? FOR IL AM READY NOT TO BE BOUND ONLY, BUT ALSO TO DIE AT JERUSALEM FOR THE NAME OF THE LORD JESUS.K# 14 AND WHEN HE WOULD NOT BE PERSUADED, WE CEASED, SAYING, THE WILL OF THET LORD BE DONE.M# 15 AND AFTER THOSE DAYS WE TOOK UP OUR CARRIAGES, AND WENT UP TO JERUSALEM.AF# 16 THERE WENT WITH US ALSO CERTAIN OF THE DISCIPLES OF CAESAREA, ANDM BROUGHT WITH THEM ONE MNASON OF CYPRUS, AN OLD DISCIPLE, WITH WHOM WE SHOULDT LODGE.EI# 17 AND WHEN WE WERE COME TO JERUSALEM, THE BRETHREN RECEIVED US GLADLY.FG# 18 AND THE DAY FOLLOWING PAUL WENT IN WITH US UNTO JAMES; AND ALL THEE ELDERS WERE PRESENT.UK# 19 AND WHEN HE HAD SALUTED THEM, HE DECLARED PARTICULARLY WHAT THINGS GODH0 HAD WROUGHT AMONG THE GENTILES BY HIS MINISTRY.M# 20 AND WHEN THEY HEARD IT, THEY GLORIFIED THE LORD, AND SAID UNTO HIM, THOUCM SEEST, BROTHER, HOW MANY THOUSANDS OF JEWS THERE ARE WHICH BELIEVE; AND THEYU ARE ALL ZEALOUS OF THE LAW:M# 21 AND THEY ARE INFORMED OF THEE, THAT THOU TEACHEST ALL THE JEWS WHICH AREEN AMONG THE GENTILES TO FORSAKE MOSES, SAYING THAT THEY OUGHT NOT TO CIRCUMCISE3 THEIR CHILDREN, NEITHER TO WALK AFTER THE CUSTOMS.HK# 22 WHAT IS IT THEREFORE? THE MULTITUDE MUST NEEDS COME TOGETHER: FOR THEYG WILL HEAR THAT THOU ART COME.M# 23 DO THEREFORE THIS THAT WE SAY TO THEE: WE HAVE FOUR MEN WHICH HAVE A VOW ON THEM;TJ# 24 THEM TAKE, AND PURIFY THYSELF WITH THEM, AND BE AT CHARGES WITH THEM,M THAT THEY MAY SHAVE THEIR HEADS: AND ALL MAY KNOW THAT THOSE THINGS, WHEREOFLL THEY WERE INFORMED CONCERNING THEE, ARE NOTHING; BUT THAT THOU THYSELF ALSO& WALKEST ORDERLY, AND KEEPEST THE LAW.J# 25 AS TOUCHING THE GENTILES WHICH BELIEVE, WE HAVE WRITTEN AND CONCLUDEDJ THAT THEY OBSERVE NO SUCH THING, SAVE ONLY THAT THEY KEEP THEMSELVES FROMF THINGS OFFERED TO IDOLS, AND FROM BLOOD, AND FROM STRANGLED, AND FROM FORNICATION.I# 26 THEN PAUL TOOK THE MEN, AND THE NEXT DAY PURIFYING HIMSELF WITH THEMF ENTERED INTO THE TEMPLE, TO SIGNIFY THE ACCOMPLISHMENT OF THE DAYS OFN PURIFICATION, UNTIL THAT AN OFFERING SHOULD BE OFFERED FOR EVERY ONE OF THEM.L# 27 AND WHEN THE SEVEN DAYS WERE ALMOST ENDED, THE JEWS WHICH WERE OF ASIA,N WHEN THEY SAW HIM IN THE TEMPLE, STIRRED UP ALL THE PEOPLE, AND LAID HANDS ON HIM, L# 28 CRYING OUT, MEN OF ISRAEL, HELP: THIS IS THE MAN, THAT TEACHETH ALL MENI EVERY WHERE AGAINST THE PEOPLE, AND THE LAW, AND THIS PLACE: AND FURTHERTH BROUGHT GREEKS ALSO INTO THE TEMPLE, AND HATH POLLUTED THIS HOLY PLACE.J# 29 (FOR THEY HAD SEEN BEFORE WITH HIM IN THE CITY TROPHIMUS AN EPHESIAN,; WHOM THEY SUPPOSED THAT PAUL HAD BROUGHT INTO THE TEMPLE.) K# 30 AND ALL THE CITY WAS MOVED, AND THE PEOPLE RAN TOGETHER: AND THEY TOOKMI PAUL, AND DREW HIM OUT OF THE TEMPLE: AND FORTHWITH THE DOORS WERE SHUT.CL# 31 AND AS THEY WENT ABOUT TO KILL HIM, TIDINGS CAME UNTO THE CHIEF CAPTAIN2 OF THE BAND, THAT ALL JERUSALEM WAS IN AN UPROAR.J# 32 WHO IMMEDIATELY TOOK SOLDIERS AND CENTURIONS, AND RAN DOWN UNTO THEM:K AND WHEN THEY SAW THE CHIEF CAPTAIN AND THE SOLDIERS, THEY LEFT BEATING OF  PAUL.L# 33 THEN THE CHIEF CAPTAIN CAME NEAR, AND TOOK HIM, AND COMMANDED HIM TO BEF BOUND WITH TWO CHAINS; AND DEMANDED WHO HE WAS, AND WHAT HE HAD DONE.M# 34 AND SOME CRIED ONE THING, SOME ANOTHER, AMONG THE MULTITUDE: AND WHEN HEDL COULD NOT KNOW THE CERTAINTY FOR THE TUMULT, HE COMMANDED HIM TO BE CARRIED INTO THE CASTLE.SJ# 35 AND WHEN HE CAME UPON THE STAIRS, SO IT WAS, THAT HE WAS BORNE OF THE) SOLDIERS FOR THE VIOLENCE OF THE PEOPLE.TK# 36 FOR THE MULTITUDE OF THE PEOPLE FOLLOWED AFTER, CRYING, AWAY WITH HIM.HF# 37 AND AS PAUL WAS TO BE LED INTO THE CASTLE, HE SAID UNTO THE CHIEFB CAPTAIN, MAY I SPEAK UNTO THEE? WHO SAID, CANST THOU SPEAK GREEK?J# 38 ART NOT THOU THAT EGYPTIAN,00DB<%X>%+%O-%TADATADATA WHICH BEFORE THESE DAYS MADEST AN UPROAR,K AND LEDDEST OUT INTO THE WILDERNESS FOUR THOUSAND MEN THAT WERE MURDERERS?DM# 39 BUT PAUL SAID, I AM A MAN WHICH AM A JEW OF TARSUS, A CITY IN CILICIA, A J CITIZEN OF NO MEAN CITY: AND, I BESEECH THEE, SUFFER ME TO SPEAK UNTO THE PEOPLE.E# 40 AND WHEN HE HAD GIVEN HIM LICENCE, PAUL STOOD ON THE STAIRS, ANDWH BECKONED WITH THE HAND UNTO THE PEOPLE. AND WHEN THERE WAS MADE A GREAT: SILENCE, HE SPAKE UNTO THEM IN THE HEBREW TONGUE, SAYING, = CHAPTER 22 TM# 1 MEN, BRETHREN, AND FATHERS, HEAR YE MY DEFENCE WHICH I MAKE NOW UNTO YOU.RI# 2 (AND WHEN THEY HEARD THAT HE SPAKE IN THE HEBREW TONGUE TO THEM, THEYN& KEPT THE MORE SILENCE: AND HE SAITH,)L# 3 I AM VERILY A MAN WHICH AM A JEW, BORN IN TARSUS, A CITY IN CILICIA, YETM BROUGHT UP IN THIS CITY AT THE FEET OF GAMALIEL, AND TAUGHT ACCORDING TO THEIL PERFECT MANNER OF THE LAW OF THE FATHERS, AND WAS ZEALOUS TOWARD GOD, AS YE ALL ARE THIS DAY.I# 4 AND I PERSECUTED THIS WAY UNTO THE DEATH, BINDING AND DELIVERING INTOH PRISONS BOTH MEN AND WOMEN.K# 5 AS ALSO THE HIGH PRIEST DOTH BEAR ME WITNESS, AND ALL THE ESTATE OF THE I ELDERS: FROM WHOM ALSO I RECEIVED LETTERS UNTO THE BRETHREN, AND WENT TO I DAMASCUS, TO BRING THEM WHICH WERE THERE BOUND UNTO JERUSALEM, FOR TO BE PUNISHED.K# 6 AND IT CAME TO PASS, THAT, AS I MADE MY JOURNEY, AND WAS COME NIGH UNTOMJ DAMASCUS ABOUT NOON, SUDDENLY THERE SHONE FROM HEAVEN A GREAT LIGHT ROUND ABOUT ME.M# 7 AND I FELL UNTO THE GROUND, AND HEARD A VOICE SAYING UNTO ME, SAUL, SAUL,I WHY PERSECUTEST THOU ME? J# 8 AND I ANSWERED, WHO ART THOU, LORD? AND HE SAID UNTO ME, I AM JESUS OF! NAZARETH, WHOM THOU PERSECUTEST.LI# 9 AND THEY THAT WERE WITH ME SAW INDEED THE LIGHT, AND WERE AFRAID; BUT 2 THEY HEARD NOT THE VOICE OF HIM THAT SPAKE TO ME.M# 10 AND I SAID, WHAT SHALL I DO, LORD? AND THE LORD SAID UNTO ME, ARISE, ANDDJ GO INTO DAMASCUS; AND THERE IT SHALL BE TOLD THEE OF ALL THINGS WHICH ARE APPOINTED FOR THEE TO DO.K# 11 AND WHEN I COULD NOT SEE FOR THE GLORY OF THAT LIGHT, BEING LED BY THET6 HAND OF THEM THAT WERE WITH ME, I CAME INTO DAMASCUS.M# 12 AND ONE ANANIAS, A DEVOUT MAN ACCORDING TO THE LAW, HAVING A GOOD REPORTY# OF ALL THE JEWS WHICH DWELT THERE,HI# 13 CAME UNTO ME, AND STOOD, AND SAID UNTO ME, BROTHER SAUL, RECEIVE THY./ SIGHT. AND THE SAME HOUR I LOOKED UP UPON HIM. D# 14 AND HE SAID, THE GOD OF OUR FATHERS HATH CHOSEN THEE, THAT THOUM SHOULDEST KNOW HIS WILL, AND SEE THAT JUST ONE, AND SHOULDEST HEAR THE VOICE  OF HIS MOUTH.J# 15 FOR THOU SHALT BE HIS WITNESS UNTO ALL MEN OF WHAT THOU HAST SEEN AND HEARD.MI# 16 AND NOW WHY TARRIEST THOU? ARISE, AND BE BAPTIZED, AND WASH AWAY THYH' SINS, CALLING ON THE NAME OF THE LORD.IH# 17 AND IT CAME TO PASS, THAT, WHEN I WAS COME AGAIN TO JERUSALEM, EVEN1 WHILE I PRAYED IN THE TEMPLE, I WAS IN A TRANCE;KH# 18 AND SAW HIM SAYING UNTO ME, MAKE HASTE, AND GET THEE QUICKLY OUT OFB JERUSALEM: FOR THEY WILL NOT RECEIVE THY TESTIMONY CONCERNING ME.D# 19 AND I SAID, LORD, THEY KNOW THAT I IMPRISONED AND BEAT IN EVERY& SYNAGOGUE THEM THAT BELIEVED ON THEE:K# 20 AND WHEN THE BLOOD OF THY MARTYR STEPHEN WAS SHED, I ALSO WAS STANDING J BY, AND CONSENTING UNTO HIS DEATH, AND KEPT THE RAIMENT OF THEM THAT SLEW HIM. I# 21 AND HE SAID UNTO ME, DEPART: FOR I WILL SEND THEE FAR HENCE UNTO THEL GENTILES.H# 22 AND THEY GAVE HIM AUDIENCE UNTO THIS WORD, AND THEN LIFTED UP THEIRL VOICES, AND SAID, AWAY WITH SUCH A FELLOW FROM THE EARTH: FOR IT IS NOT FIT THAT HE SHOULD LIVE.,K# 23 AND AS THEY CRIED OUT, AND CAST OFF THEIR CLOTHES, AND THREW DUST INTO THE AIR, L# 24 THE CHIEF CAPTAIN COMMANDED HIM TO BE BROUGHT INTO THE CASTLE, AND BADEK THAT HE SHOULD BE EXAMINED BY SCOURGING; THAT HE MIGHT KNOW WHEREFORE THEYM CRIED SO AGAINST HIM.I# 25 AND AS THEY BOUND HIM WITH THONGS, PAUL SAID UNTO THE CENTURION THATDE STOOD BY, IS IT LAWFUL FOR YOU TO SCOURGE A MAN THAT IS A ROMAN, ANDE UNCONDEMNED?AG# 26 WHEN THE CENTURION HEARD THAT, HE WENT AND TOLD THE CHIEF CAPTAIN,I< SAYING, TAKE HEED WHAT THOU00D'AD%5%T6%! ! DOEST: FOR THIS MAN IS A ROMAN.H# 27 THEN THE CHIEF CAPTAIN CAME, AND SAID UNTO HIM, TELL ME, ART THOU A ROMAN? HE SAID, YEA.TE# 28 AND THE CHIEF CAPTAIN ANSWERED, WITH A GREAT SUM OBTAINED I THISN- FREEDOM. AND PAUL SAID, BUT I WAS FREE BORN.5L# 29 THEN STRAIGHTWAY THEY DEPARTED FROM HIM WHICH SHOULD HAVE EXAMINED HIM:N AND THE CHIEF CAPTAIN ALSO WAS AFRAID, AFTER HE KNEW THAT HE WAS A ROMAN, AND BECAUSE HE HAD BOUND HIM.J# 30 ON THE MORROW, BECAUSE HE WOULD HAVE KNOWN THE CERTAINTY WHEREFORE HEI WAS ACCUSED OF THE JEWS, HE LOOSED HIM FROM HIS BANDS, AND COMMANDED THEDN CHIEF PRIESTS AND ALL THEIR COUNCIL TO APPEAR, AND BROUGHT PAUL DOWN, AND SET HIM BEFORE THEM. = CHAPTER 23 NM# 1 AND PAUL, EARNESTLY BEHOLDING THE COUNCIL, SAID, MEN AND BRETHREN, I HAVEA8 LIVED IN ALL GOOD CONSCIENCE BEFORE GOD UNTIL THIS DAY.M# 2 AND THE HIGH PRIEST ANANIAS COMMANDED THEM THAT STOOD BY HIM TO SMITE HIM ON THE MOUTH.H# 3 THEN SAID PAUL UNTO HIM, GOD SHALL SMITE THEE, THOU WHITED WALL: FORH SITTEST THOU TO JUDGE ME AFTER THE LAW, AND COMMANDEST ME TO BE SMITTEN CONTRARY TO THE LAW?P@# 4 AND THEY THAT STOOD BY SAID, REVILEST THOU GODS HIGH PRIEST?M# 5 THEN SAID PAUL, I WIST NOT, BRETHREN, THAT HE WAS THE HIGH PRIEST: FOR IT B IS WRITTEN, THOU SHALT NOT SPEAK EVIL OF THE RULER OF THY PEOPLE.K# 6 BUT WHEN PAUL PERCEIVED THAT THE ONE PART WERE SADDUCEES, AND THE OTHERMK PHARISEES, HE CRIED OUT IN THE COUNCIL, MEN AND BRETHREN, I AM A PHARISEE,,L THE SON OF A PHARISEE: OF THE HOPE AND RESURRECTION OF THE DEAD I AM CALLED IN QUESTION.MK# 7 AND WHEN HE HAD SO SAID, THERE AROSE A DISSENSION BETWEEN THE PHARISEESS2 AND THE SADDUCEES: AND THE MULTITUDE WAS DIVIDED.K# 8 FOR THE SADDUCEES SAY THAT THERE IS NO RESURRECTION, NEITHER ANGEL, NOR,( SPIRIT: BUT THE PHARISEES CONFESS BOTH.K# 9 AND THERE AROSE A GREAT CRY: AND THE SCRIBES THAT WERE OF THE PHARISEESNM PART AROSE, AND STROVE, SAYING, WE FIND NO EVIL IN THIS MAN: BUT IF A SPIRIT > OR AN ANGEL HATH SPOKEN TO HIM, LET US NOT FIGHT AGAINST GOD.M# 10 AND WHEN THERE AROSE A GREAT DISSENSION, THE CHIEF CAPTAIN, FEARING LESTOM PAUL SHOULD HAVE BEEN PULLED IN PIECES OF THEM, COMMANDED THE SOLDIERS TO GOAJ DOWN, AND TO TAKE HIM BY FORCE FROM AMONG THEM, AND TO BRING HIM INTO THE CASTLE.H# 11 AND THE NIGHT FOLLOWING THE LORD STOOD BY HIM, AND SAID, BE OF GOODN CHEER, PAUL: FOR AS THOU HAST TESTIFIED OF ME IN JERUSALEM, SO MUST THOU BEAR WITNESS ALSO AT ROME.H# 12 AND WHEN IT WAS DAY, CERTAIN OF THE JEWS BANDED TOGETHER, AND BOUNDL THEMSELVES UNDER A CURSE, SAYING THAT THEY WOULD NEITHER EAT NOR DRINK TILL THEY HAD KILLED PAUL.B# 13 AND THEY WERE MORE THAN FORTY WHICH HAD MADE THIS CONSPIRACY.K# 14 AND THEY CAME TO THE CHIEF PRIESTS AND ELDERS, AND SAID, WE HAVE BOUNDTL OURSELVES UNDER A GREAT CURSE, THAT WE WILL EAT NOTHING UNTIL WE HAVE SLAIN PAUL.K# 15 NOW THEREFORE YE WITH THE COUNCIL SIGNIFY TO THE CHIEF CAPTAIN THAT HEEM BRING HIM DOWN UNTO YOU TO MORROW, AS THOUGH YE WOULD ENQUIRE SOMETHING MOREDJ PERFECTLY CONCERNING HIM: AND WE, OR EVER HE COME NEAR, ARE READY TO KILL HIM. I# 16 AND WHEN PAULS SISTERS SON HEARD OF THEIR LYING IN WAIT, HE WENT ANDW( ENTERED INTO THE CASTLE, AND TOLD PAUL.J# 17 THEN PAUL CALLED ONE OF THE CENTURIONS UNTO HIM, AND SAID, BRING THISK YOUNG MAN UNTO THE CHIEF CAPTAIN: FOR HE HATH A CERTAIN THING TO TELL HIM.M# 18 SO HE TOOK HIM, AND BROUGHT HIM TO THE CHIEF CAPTAIN, AND SAID, PAUL THEBN PRISONER CALLED ME UNTO HIM, AND PRAYED ME TO BRING THIS YOUNG MAN UNTO THEE,% WHO HATH SOMETHING TO SAY UNTO THEE.RI# 19 THEN THE CHIEF CAPTAIN TOOK HIM BY THE HAND, AND WENT WITH HIM ASIDEE= PRIVATELY, AND ASKED HIM, WHAT IS THAT THOU HAST TO TELL ME?TH# 20 AND HE SAID, THE JEWS HAVE AGREED TO DESIRE THEE THAT THOU WOULDESTI BRING DOWN PAUL TO MORROW INTO THE COUNCIL, AS THOUGH THEY WOULD ENQUIREA SOMEWHAT OF HIM MORE PERFECTLY.K# 21 BUT DO NOT THOU YIELD UNTO THEM: FOR THERE LIE IN WAIT FOR HIM OF THEMEN MORE THAN FORTY MEN, WHICH HAVE BOUND THEMSELVES WITH AN OATH, THAT THEY WILLI NEITHER EAT NOR DRI00DB<%X>%+%O-%TADATADATANK TILL THEY HAVE KILLED HIM: AND NOW ARE THEY READY, ! LOOKING FOR A PROMISE FROM THEE.IM# 22 SO THE CHIEF CAPTAIN THEN LET THE YOUNG MAN DEPART, AND CHARGED HIM, SEEH; THOU TELL NO MAN THAT THOU HAST SHEWED THESE THINGS TO ME.DJ# 23 AND HE CALLED UNTO HIM TWO CENTURIONS, SAYING, MAKE READY TWO HUNDREDN SOLDIERS TO GO TO CAESAREA, AND HORSEMEN THREESCORE AND TEN, AND SPEARMEN TWO) HUNDRED, AT THE THIRD HOUR OF THE NIGHT;NK# 24 AND PROVIDE THEM BEASTS, THAT THEY MAY SET PAUL ON, AND BRING HIM SAFED UNTO FELIX THE GOVERNOR.H-# 25 AND HE WROTE A LETTER AFTER THIS MANNER:OM# 26 CLAUDIUS LYSIAS UNTO THE MOST EXCELLENT GOVERNOR FELIX SENDETH GREETING.CI# 27 THIS MAN WAS TAKEN OF THE JEWS, AND SHOULD HAVE BEEN KILLED OF THEM:EK THEN CAME I WITH AN ARMY, AND RESCUED HIM, HAVING UNDERSTOOD THAT HE WAS AD ROMAN.RH# 28 AND WHEN I WOULD HAVE KNOWN THE CAUSE WHEREFORE THEY ACCUSED HIM, I& BROUGHT HIM FORTH INTO THEIR COUNCIL:J# 29 WHOM I PERCEIVED TO BE ACCUSED OF QUESTIONS OF THEIR LAW, BUT TO HAVE8 NOTHING LAID TO HIS CHARGE WORTHY OF DEATH OR OF BONDS.L# 30 AND WHEN IT WAS TOLD ME HOW THAT THE JEWS LAID WAIT FOR THE MAN, I SENTM STRAIGHTWAY TO THEE, AND GAVE COMMANDMENT TO HIS ACCUSERS ALSO TO SAY BEFOREE* THEE WHAT THEY HAD AGAINST HIM. FAREWELL.L# 31 THEN THE SOLDIERS, AS IT WAS COMMANDED THEM, TOOK PAUL, AND BROUGHT HIM BY NIGHT TO ANTIPATRIS.M# 32 ON THE MORROW THEY LEFT THE HORSEMEN TO GO WITH HIM, AND RETURNED TO THEW CASTLE:E# 33 WHO, WHEN THEY CAME TO CAESAREA AND DELIVERED THE EPISTLE TO THEI* GOVERNOR, PRESENTED PAUL ALSO BEFORE HIM.L# 34 AND WHEN THE GOVERNOR HAD READ THE LETTER, HE ASKED OF WHAT PROVINCE HE4 WAS. AND WHEN HE UNDERSTOOD THAT HE WAS OF CILICIA;I# 35 I WILL HEAR THEE, SAID HE, WHEN THINE ACCUSERS ARE ALSO COME. AND HE12 COMMANDED HIM TO BE KEPT IN HERODS JUDGMENT HALL. = CHAPTER 24 TN# 1 AND AFTER FIVE DAYS ANANIAS THE HIGH PRIEST DESCENDED WITH THE ELDERS, ANDI WITH A CERTAIN ORATOR NAMED TERTULLUS, WHO INFORMED THE GOVERNOR AGAINSTR PAUL.H# 2 AND WHEN HE WAS CALLED FORTH, TERTULLUS BEGAN TO ACCUSE HIM, SAYING,M SEEING THAT BY THEE WE ENJOY GREAT QUIETNESS, AND THAT VERY WORTHY DEEDS AREW) DONE UNTO THIS NATION BY THY PROVIDENCE,IF# 3 WE ACCEPT IT ALWAYS, AND IN ALL PLACES, MOST NOBLE FELIX, WITH ALL THANKFULNESS.I# 4 NOTWITHSTANDING, THAT I BE NOT FURTHER TEDIOUS UNTO THEE, I PRAY THEEE8 THAT THOU WOULDEST HEAR US OF THY CLEMENCY A FEW WORDS.J# 5 FOR WE HAVE FOUND THIS MAN A PESTILENT FELLOW, AND A MOVER OF SEDITIONM AMONG ALL THE JEWS THROUGHOUT THE WORLD, AND A RINGLEADER OF THE SECT OF THEI NAZARENES:SK# 6 WHO ALSO HATH GONE ABOUT TO PROFANE THE TEMPLE: WHOM WE TOOK, AND WOULD" HAVE JUDGED ACCORDING TO OUR LAW.K# 7 BUT THE CHIEF CAPTAIN LYSIAS CAME UPON US, AND WITH GREAT VIOLENCE TOOKL HIM AWAY OUT OF OUR HANDS,SK# 8 COMMANDING HIS ACCUSERS TO COME UNTO THEE: BY EXAMINING OF WHOM THYSELFUB MAYEST TAKE KNOWLEDGE OF ALL THESE THINGS, WHEREOF WE ACCUSE HIM.A# 9 AND THE JEWS ALSO ASSENTED, SAYING THAT THESE THINGS WERE SO.JG# 10 THEN PAUL, AFTER THAT THE GOVERNOR HAD BECKONED UNTO HIM TO SPEAK,SM ANSWERED, FORASMUCH AS I KNOW THAT THOU HAST BEEN OF MANY YEARS A JUDGE UNTO9 THIS NATION, I DO THE MORE CHEERFULLY ANSWER FOR MYSELF:TL# 11 BECAUSE THAT THOU MAYEST UNDERSTAND, THAT THERE ARE YET BUT TWELVE DAYS- SINCE I WENT UP TO JERUSALEM FOR TO WORSHIP.OL# 12 AND THEY NEITHER FOUND ME IN THE TEMPLE DISPUTING WITH ANY MAN, NEITHERC RAISING UP THE PEOPLE, NEITHER IN THE SYNAGOGUES, NOR IN THE CITY:AB# 13 NEITHER CAN THEY PROVE THE THINGS WHEREOF THEY NOW ACCUSE ME.M# 14 BUT THIS I CONFESS UNTO THEE, THAT AFTER THE WAY WHICH THEY CALL HERESY,EN SO WORSHIP I THE GOD OF MY FATHERS, BELIEVING ALL THINGS WHICH ARE WRITTEN IN THE LAW AND IN THE PROPHETS:HK# 15 AND HAVE HOPE TOWARD GOD, WHICH THEY THEMSELVES ALSO ALLOW, THAT THERE B SHALL BE A RESURRECTION OF THE DEAD, BOTH OF THE JUST AND UNJUST.I# 16 AND HEREIN DO I EXERCISE MYSELF, TO HAVE ALWAYS A CONSCIENCE VOID TOE$ OFFENCE TOWARD GOD, AND TOWARD MEN.K# 17 NOW AFTER MANY YEARS I CA00D'AD%5%T6%! !ME TO BRING ALMS TO MY NATION, AND OFFERINGS. F# 18 WHEREUPON CERTAIN JEWS FROM ASIA FOUND ME PURIFIED IN THE TEMPLE,) NEITHER WITH MULTITUDE, NOR WITH TUMULT.TK# 19 WHO OUGHT TO HAVE BEEN HERE BEFORE THEE, AND OBJECT, IF THEY HAD OUGHTE AGAINST ME.J# 20 OR ELSE LET THESE SAME HERE SAY, IF THEY HAVE FOUND ANY EVIL DOING IN& ME, WHILE I STOOD BEFORE THE COUNCIL,G# 21 EXCEPT IT BE FOR THIS ONE VOICE, THAT I CRIED STANDING AMONG THEM,J TOUCHING THE RESURRECTION OF THE DEAD I AM CALLED IN QUESTION BY YOU THIS DAY.SM# 22 AND WHEN FELIX HEARD THESE THINGS, HAVING MORE PERFECT KNOWLEDGE OF THATPJ WAY, HE DEFERRED THEM, AND SAID, WHEN LYSIAS THE CHIEF CAPTAIN SHALL COME0 DOWN, I WILL KNOW THE UTTERMOST OF YOUR MATTER.L# 23 AND HE COMMANDED A CENTURION TO KEEP PAUL, AND TO LET HIM HAVE LIBERTY,L AND THAT HE SHOULD FORBID NONE OF HIS ACQUAINTANCE TO MINISTER OR COME UNTO HIM.TJ# 24 AND AFTER CERTAIN DAYS, WHEN FELIX CAME WITH HIS WIFE DRUSILLA, WHICHN WAS A JEWESS, HE SENT FOR PAUL, AND HEARD HIM CONCERNING THE FAITH IN CHRIST.K# 25 AND AS HE REASONED OF RIGHTEOUSNESS, TEMPERANCE, AND JUDGMENT TO COME,DF FELIX TREMBLED, AND ANSWERED, GO THY WAY FOR THIS TIME; WHEN I HAVE A) CONVENIENT SEASON, I WILL CALL FOR THEE.I# 26 HE HOPED ALSO THAT MONEY SHOULD HAVE BEEN GIVEN HIM OF PAUL, THAT HE,J MIGHT LOOSE HIM: WHEREFORE HE SENT FOR HIM THE OFTENER, AND COMMUNED WITH HIM.MH# 27 BUT AFTER TWO YEARS PORCIUS FESTUS CAME INTO FELIX ROOM: AND FELIX,6 WILLING TO SHEW THE JEWS A PLEASURE, LEFT PAUL BOUND. = CHAPTER 25 TL# 1 NOW WHEN FESTUS WAS COME INTO THE PROVINCE, AFTER THREE DAYS HE ASCENDED FROM CAESAREA TO JERUSALEM.M# 2 THEN THE HIGH PRIEST AND THE CHIEF OF THE JEWS INFORMED HIM AGAINST PAUL,I AND BESOUGHT HIM,L# 3 AND DESIRED FAVOUR AGAINST HIM, THAT HE WOULD SEND FOR HIM TO JERUSALEM,$ LAYING WAIT IN THE WAY TO KILL HIM.J# 4 BUT FESTUS ANSWERED, THAT PAUL SHOULD BE KEPT AT CAESAREA, AND THAT HE& HIMSELF WOULD DEPART SHORTLY THITHER.K# 5 LET THEM THEREFORE, SAID HE, WHICH AMONG YOU ARE ABLE, GO DOWN WITH ME, 8 AND ACCUSE THIS MAN, IF THERE BE ANY WICKEDNESS IN HIM.L# 6 AND WHEN HE HAD TARRIED AMONG THEM MORE THAN TEN DAYS, HE WENT DOWN UNTOM CAESAREA; AND THE NEXT DAY SITTING ON THE JUDGMENT SEAT COMMANDED PAUL TO BEI BROUGHT.AM# 7 AND WHEN HE WAS COME, THE JEWS WHICH CAME DOWN FROM JERUSALEM STOOD ROUNDOL ABOUT, AND LAID MANY AND GRIEVOUS COMPLAINTS AGAINST PAUL, WHICH THEY COULD NOT PROVE.MG# 8 WHILE HE ANSWERED FOR HIMSELF, NEITHER AGAINST THE LAW OF THE JEWS,HN NEITHER AGAINST THE TEMPLE, NOR YET AGAINST CAESAR, HAVE I OFFENDED ANY THING AT ALL.K# 9 BUT FESTUS, WILLING TO DO THE JEWS A PLEASURE, ANSWERED PAUL, AND SAID,WM WILT THOU GO UP TO JERUSALEM, AND THERE BE JUDGED OF THESE THINGS BEFORE ME? J# 10 THEN SAID PAUL, I STAND AT CAESARS JUDGMENT SEAT, WHERE I OUGHT TO BEE JUDGED: TO THE JEWS HAVE I DONE NO WRONG, AS THOU VERY WELL KNOWEST.GL# 11 FOR IF I BE AN OFFENDER, OR HAVE COMMITTED ANY THING WORTHY OF DEATH, IM REFUSE NOT TO DIE: BUT IF THERE BE NONE OF THESE THINGS WHEREOF THESE ACCUSEA; ME, NO MAN MAY DELIVER ME UNTO THEM. I APPEAL UNTO CAESAR.TM# 12 THEN FESTUS, WHEN HE HAD CONFERRED WITH THE COUNCIL, ANSWERED, HAST THOU 1 APPEALED UNTO CAESAR? UNTO CAESAR SHALT THOU GO.SJ# 13 AND AFTER CERTAIN DAYS KING AGRIPPA AND BERNICE CAME UNTO CAESAREA TO SALUTE FESTUS.DM# 14 AND WHEN THEY HAD BEEN THERE MANY DAYS, FESTUS DECLARED PAULS CAUSE UNTO A THE KING, SAYING, THERE IS A CERTAIN MAN LEFT IN BONDS BY FELIX:RM# 15 ABOUT WHOM, WHEN I WAS AT JERUSALEM, THE CHIEF PRIESTS AND THE ELDERS OFM= THE JEWS INFORMED ME, DESIRING TO HAVE JUDGMENT AGAINST HIM.2J# 16 TO WHOM I ANSWERED, IT IS NOT THE MANNER OF THE ROMANS TO DELIVER ANYL MAN TO DIE, BEFORE THAT HE WHICH IS ACCUSED HAVE THE ACCUSERS FACE TO FACE,N AND HAVE LICENSE TO ANSWER FOR HIMSELF CONCERNING THE CRIME LAID AGAINST HIM.M# 17 THEREFORE, WHEN THEY WERE COME HITHER, WITHOUT ANY DELAY ON THE MORROW ISE SAT ON THE JUDGMENT SEAT, AND COMMANDED THE MAN TO BE BROUGHT FORTH.,M# 18 AGAINST WHOM WHEN THE A00DB<%X>%+%O-%TADATADATACCUSERS STOOD UP, THEY BROUGHT NONE ACCUSATION OFM SUCH THINGS AS I SUPPOSED:EL# 19 BUT HAD CERTAIN QUESTIONS AGAINST HIM OF THEIR OWN SUPERSTITION, AND OF; ONE JESUS, WHICH WAS DEAD, WHOM PAUL AFFIRMED TO BE ALIVE.HK# 20 AND BECAUSE I DOUBTED OF SUCH MANNER OF QUESTIONS, I ASKED HIM WHETHERR@ HE WOULD GO TO JERUSALEM, AND THERE BE JUDGED OF THESE MATTERS.L# 21 BUT WHEN PAUL HAD APPEALED TO BE RESERVED UNTO THE HEARING OF AUGUSTUS,< I COMMANDED HIM TO BE KEPT TILL I MIGHT SEND HIM TO CAESAR.H# 22 THEN AGRIPPA SAID UNTO FESTUS, I WOULD ALSO HEAR THE MAN MYSELF. TO& MORROW, SAID HE, THOU SHALT HEAR HIM.L# 23 AND ON THE MORROW, WHEN AGRIPPA WAS COME, AND BERNICE, WITH GREAT POMP,H AND WAS ENTERED INTO THE PLACE OF HEARING, WITH THE CHIEF CAPTAINS, ANDI PRINCIPAL MEN OF THE CITY, AT FESTUS COMMANDMENT PAUL WAS BROUGHT FORTH.EK# 24 AND FESTUS SAID, KING AGRIPPA, AND ALL MEN WHICH ARE HERE PRESENT WITHDN US, YE SEE THIS MAN, ABOUT WHOM ALL THE MULTITUDE OF THE JEWS HAVE DEALT WITHK ME, BOTH AT JERUSALEM, AND ALSO HERE, CRYING THAT HE OUGHT NOT TO LIVE ANYY LONGER.M# 25 BUT WHEN I FOUND THAT HE HAD COMMITTED NOTHING WORTHY OF DEATH, AND THATSE HE HIMSELF HATH APPEALED TO AUGUSTUS, I HAVE DETERMINED TO SEND HIM.FL# 26 OF WHOM I HAVE NO CERTAIN THING TO WRITE UNTO MY LORD. WHEREFORE I HAVEI BROUGHT HIM FORTH BEFORE YOU, AND SPECIALLY BEFORE THEE, O KING AGRIPPA,N= THAT, AFTER EXAMINATION HAD, I MIGHT HAVE SOMEWHAT TO WRITE.BL# 27 FOR IT SEEMETH TO ME UNREASONABLE TO SEND A PRISONER, AND NOT WITHAL TO% SIGNIFY THE CRIMES LAID AGAINST HIM.O = CHAPTER 26 N# 1 THEN AGRIPPA SAID UNTO PAUL, THOU ART PERMITTED TO SPEAK FOR THYSELF. THEN9 PAUL STRETCHED FORTH THE HAND, AND ANSWERED FOR HIMSELF:EI# 2 I THINK MYSELF HAPPY, KING AGRIPPA, BECAUSE I SHALL ANSWER FOR MYSELF I THIS DAY BEFORE THEE TOUCHING ALL THE THINGS WHEREOF I AM ACCUSED OF THE  JEWS:L# 3 ESPECIALLY BECAUSE I KNOW THEE TO BE EXPERT IN ALL CUSTOMS AND QUESTIONSI WHICH ARE AMONG THE JEWS: WHEREFORE I BESEECH THEE TO HEAR ME PATIENTLY. J# 4 MY MANNER OF LIFE FROM MY YOUTH, WHICH WAS AT THE FIRST AMONG MINE OWN( NATION AT JERUSALEM, KNOW ALL THE JEWS;K# 5 WHICH KNEW ME FROM THE BEGINNING, IF THEY WOULD TESTIFY, THAT AFTER THEF8 MOST STRAITEST SECT OF OUR RELIGION I LIVED A PHARISEE.J# 6 AND NOW I STAND AND AM JUDGED FOR THE HOPE OF THE PROMISE MADE OF GOD, UNTO OUR FATHERS:G# 7 UNTO WHICH PROMISE OUR TWELVE TRIBES, INSTANTLY SERVING GOD DAY ANDAM NIGHT, HOPE TO COME. FOR WHICH HOPES SAKE, KING AGRIPPA, I AM ACCUSED OF THET JEWS.I# 8 WHY SHOULD IT BE THOUGHT A THING INCREDIBLE WITH YOU, THAT GOD SHOULDN RAISE THE DEAD?L# 9 I VERILY THOUGHT WITH MYSELF, THAT I OUGHT TO DO MANY THINGS CONTRARY TO THE NAME OF JESUS OF NAZARETH.TK# 10 WHICH THING I ALSO DID IN JERUSALEM: AND MANY OF THE SAINTS DID I SHUTJN UP IN PRISON, HAVING RECEIVED AUTHORITY FROM THE CHIEF PRIESTS; AND WHEN THEY1 WERE PUT TO DEATH, I GAVE MY VOICE AGAINST THEM. F# 11 AND I PUNISHED THEM OFT IN EVERY SYNAGOGUE, AND COMPELLED THEM TOJ BLASPHEME; AND BEING EXCEEDINGLY MAD AGAINST THEM, I PERSECUTED THEM EVEN UNTO STRANGE CITIES.NK# 12 WHEREUPON AS I WENT TO DAMASCUS WITH AUTHORITY AND COMMISSION FROM THE  CHIEF PRIESTS,OG# 13 AT MIDDAY, O KING, I SAW IN THE WAY A LIGHT FROM HEAVEN, ABOVE THELL BRIGHTNESS OF THE SUN, SHINING ROUND ABOUT ME AND THEM WHICH JOURNEYED WITH ME.L# 14 AND WHEN WE WERE ALL FALLEN TO THE EARTH, I HEARD A VOICE SPEAKING UNTOM ME, AND SAYING IN THE HEBREW TONGUE, SAUL, SAUL, WHY PERSECUTEST THOU ME? ITO- IS HARD FOR THEE TO KICK AGAINST THE PRICKS. F# 15 AND I SAID, WHO ART THOU, LORD? AND HE SAID, I AM JESUS WHOM THOU PERSECUTEST.CI# 16 BUT RISE, AND STAND UPON THY FEET: FOR I HAVE APPEARED UNTO THEE FORYI THIS PURPOSE, TO MAKE THEE A MINISTER AND A WITNESS BOTH OF THESE THINGSTJ WHICH THOU HAST SEEN, AND OF THOSE THINGS IN THE WHICH I WILL APPEAR UNTO THEE;L# 17 DELIVERING THEE FROM THE PEOPLE, AND FROM THE GENTILES, UNTO WHOM NOW I SEND THEE, J# 18 TO OPEN THEIR EYES, AND TO TURN THEM FROM DARKNESS TO LIGHT, AN00D'AD%5%T6%! !D FROML THE POWER OF SATAN UNTO GOD, THAT THEY MAY RECEIVE FORGIVENESS OF SINS, ANDD INHERITANCE AMONG THEM WHICH ARE SANCTIFIED BY FAITH THAT IS IN ME.G# 19 WHEREUPON, O KING AGRIPPA, I WAS NOT DISOBEDIENT UNTO THE HEAVENLYT VISION: ITEM# 20 BUT SHEWED FIRST UNTO THEM OF DAMASCUS, AND AT JERUSALEM, AND THROUGHOUTCL ALL THE COASTS OF JUDAEA, AND THEN TO THE GENTILES, THAT THEY SHOULD REPENT3 AND TURN TO GOD, AND DO WORKS MEET FOR REPENTANCE.PI# 21 FOR THESE CAUSES THE JEWS CAUGHT ME IN THE TEMPLE, AND WENT ABOUT TOR KILL ME.NE# 22 HAVING THEREFORE OBTAINED HELP OF GOD, I CONTINUE UNTO THIS DAY,ON WITNESSING BOTH TO SMALL AND GREAT, SAYING NONE OTHER THINGS THAN THOSE WHICH, THE PROPHETS AND MOSES DID SAY SHOULD COME:K# 23 THAT CHRIST SHOULD SUFFER, AND THAT HE SHOULD BE THE FIRST THAT SHOULD,N RISE FROM THE DEAD, AND SHOW SHEW LIGHT UNTO THE PEOPLE, AND TO THE GENTILES.K# 24 AND AS HE THUS SPAKE FOR HIMSELF, FESTUS SAID WITH A LOUD VOICE, PAUL,R; THOU ART BESIDE THYSELF; MUCH LEARNING DOTH MAKE THEE MAD.TL# 25 BUT HE SAID, I AM NOT MAD, MOST NOBLE FESTUS; BUT SPEAK FORTH THE WORDS OF TRUTH AND SOBERNESS.K# 26 FOR THE KING KNOWETH OF THESE THINGS, BEFORE WHOM ALSO I SPEAK FREELY:TK FOR I AM PERSUADED THAT NONE OF THESE THINGS ARE HIDDEN FROM HIM; FOR THIS THING WAS NOT DONE IN A CORNER.K# 27 KING AGRIPPA, BELIEVEST THOU THE PROPHETS? I KNOW THAT THOU BELIEVEST..C# 28 THEN AGRIPPA SAID UNTO PAUL, ALMOST THOU PERSUADEST ME TO BE AE CHRISTIAN.OI# 29 AND PAUL SAID, I WOULD TO GOD, THAT NOT ONLY THOU, BUT ALSO ALL THAT N HEAR ME THIS DAY, WERE BOTH ALMOST, AND ALTOGETHER SUCH AS I AM, EXCEPT THESE BONDS.6I# 30 AND WHEN HE HAD THUS SPOKEN, THE KING ROSE UP, AND THE GOVERNOR, ANDF& BERNICE, AND THEY THAT SAT WITH THEM:K# 31 AND WHEN THEY WERE GONE ASIDE, THEY TALKED BETWEEN THEMSELVES, SAYING,N4 THIS MAN DOETH NOTHING WORTHY OF DEATH OR OF BONDS.L# 32 THEN SAID AGRIPPA UNTO FESTUS, THIS MAN MIGHT HAVE BEEN SET AT LIBERTY,$ IF HE HAD NOT APPEALED UNTO CAESAR. = CHAPTER 27 GM# 1 AND WHEN IT WAS DETERMINED THAT WE SHOULD SAIL INTO ITALY, THEY DELIVERED,G PAUL AND CERTAIN OTHER PRISONERS UNTO ONE NAMED JULIUS, A CENTURION OFD AUGUSTUS BAND. L# 2 AND ENTERING INTO A SHIP OF ADRAMYTTIUM, WE LAUNCHED, MEANING TO SAIL BYN THE COASTS OF ASIA; ONE ARISTARCHUS, A MACEDONIAN OF THESSALONICA, BEING WITH US.J# 3 AND THE NEXT DAY WE TOUCHED AT SIDON. AND JULIUS COURTEOUSLY ENTREATEDF PAUL, AND GAVE HIM LIBERTY TO GO UNTO HIS FRIENDS TO REFRESH HIMSELF.M# 4 AND WHEN WE HAD LAUNCHED FROM THENCE, WE SAILED UNDER CYPRUS, BECAUSE THEL WINDS WERE CONTRARY.EL# 5 AND WHEN WE HAD SAILED OVER THE SEA OF CILICIA AND PAMPHYLIA, WE CAME TO MYRA, A CITY OF LYCIA.NJ# 6 AND THERE THE CENTURION FOUND A SHIP OF ALEXANDRIA SAILING INTO ITALY; AND HE PUT US THEREIN.TF# 7 AND WHEN WE HAD SAILED SLOWLY MANY DAYS, AND SCARCE WERE COME OVERG AGAINST CNIDUS, THE WIND NOT SUFFERING US, WE SAILED UNDER CRETE, OVERV AGAINST SALMONE; F# 8 AND, HARDLY PASSING IT, CAME UNTO A PLACE WHICH IS CALLED THE FAIR. HAVENS; NIGH WHEREUNTO WAS THE CITY OF LASEA.M# 9 NOW WHEN MUCH TIME WAS SPENT, AND WHEN SAILING WAS NOW DANGEROUS, BECAUSEM5 THE FAST WAS NOW ALREADY PAST, PAUL ADMONISHED THEM,HL# 10 AND SAID UNTO THEM, SIRS, I PERCEIVE THAT THIS VOYAGE WILL BE WITH HURTI AND MUCH DAMAGE, NOT ONLY OF THE LADING AND SHIP, BUT ALSO OF OUR LIVES.CH# 11 NEVERTHELESS THE CENTURION BELIEVED THE MASTER AND THE OWNER OF THE8 SHIP, MORE THAN THOSE THINGS WHICH WERE SPOKEN BY PAUL.I# 12 AND BECAUSE THE HAVEN WAS NOT COMMODIOUS TO WINTER IN, THE MORE PART M ADVISED TO DEPART THENCE ALSO, IF BY ANY MEANS THEY MIGHT ATTAIN TO PHENICE,EL AND THERE TO WINTER; WHICH IS AN HAVEN OF CRETE, AND LIETH TOWARD THE SOUTH WEST AND NORTH WEST.,J# 13 AND WHEN THE SOUTH WIND BLEW SOFTLY, SUPPOSING THAT THEY HAD OBTAINED; THEIR PURPOSE, LOOSING THENCE, THEY SAILED CLOSE BY CRETE.LI# 14 BUT NOT LONG AFTER THERE AROSE AGAINST IT A TEMPESTUOUS WIND, CALLEDN EUROCLYDON.J# 15 AND WHEN THE SHIP WAS CAUGHT, AND COULD NOT BEAR UP INTO THE 00DB<%X>%+%O-%TADATADATAWIND, WE LET HER DRIVE.OK# 16 AND RUNNING UNDER A CERTAIN ISLAND WHICH IS CALLED CLAUDA, WE HAD MUCHO WORK TO COME BY THE BOAT:J# 17 WHICH WHEN THEY HAD TAKEN UP, THEY USED HELPS, UNDERGIRDING THE SHIP;L AND, FEARING LEST THEY SHOULD FALL INTO THE QUICKSANDS, STRAKE SAIL, AND SO WERE DRIVEN.PF# 18 AND WE BEING EXCEEDINGLY TOSSED WITH A TEMPEST, THE NEXT DAY THEY LIGHTENED THE SHIP;I# 19 AND THE THIRD DAY WE CAST OUT WITH OUR OWN HANDS THE TACKLING OF THES SHIP.G# 20 AND WHEN NEITHER SUN NOR STARS IN MANY DAYS APPEARED, AND NO SMALLII TEMPEST LAY ON US, ALL HOPE THAT WE SHOULD BE SAVED WAS THEN TAKEN AWAY.MI# 21 BUT AFTER LONG ABSTINENCE PAUL STOOD FORTH IN THE MIDST OF THEM, ANDRN SAID, SIRS, YE SHOULD HAVE HEARKENED UNTO ME, AND NOT HAVE LOOSED FROM CRETE,' AND TO HAVE GAINED THIS HARM AND LOSS. L# 22 AND NOW I EXHORT YOU TO BE OF GOOD CHEER: FOR THERE SHALL BE NO LOSS OF* ANY MANS LIFE AMONG YOU, BUT OF THE SHIP.L# 23 FOR THERE STOOD BY ME THIS NIGHT THE ANGEL OF GOD, WHOSE I AM, AND WHOM I SERVE,AM# 24 SAYING, FEAR NOT, PAUL; THOU MUST BE BROUGHT BEFORE CAESAR: AND, LO, GODD. HATH GIVEN THEE ALL THEM THAT SAIL WITH THEE.K# 25 WHEREFORE, SIRS, BE OF GOOD CHEER: FOR I BELIEVE GOD, THAT IT SHALL BEV EVEN AS IT WAS TOLD ME.3# 26 HOWBEIT WE MUST BE CAST UPON A CERTAIN ISLAND.HM# 27 BUT WHEN THE FOURTEENTH NIGHT WAS COME, AS WE WERE DRIVEN UP AND DOWN INBN ADRIA, ABOUT MIDNIGHT THE SHIPMEN DEEMED THAT THEY DREW NEAR TO SOME COUNTRY;G# 28 AND SOUNDED, AND FOUND IT TWENTY FATHOMS: AND WHEN THEY HAD GONE ASB LITTLE FURTHER, THEY SOUNDED AGAIN, AND FOUND IT FIFTEEN FATHOMS.G# 29 THEN FEARING LEST WE SHOULD HAVE FALLEN UPON ROCKS, THEY CAST FOURS2 ANCHORS OUT OF THE STERN, AND WISHED FOR THE DAY.M# 30 AND AS THE SHIPMEN WERE ABOUT TO FLEE OUT OF THE SHIP, WHEN THEY HAD LETAH DOWN THE BOAT INTO THE SEA, UNDER COLOUR AS THOUGH THEY WOULD HAVE CAST ANCHORS OUT OF THE FORESHIP,GJ# 31 PAUL SAID TO THE CENTURION AND TO THE SOLDIERS, EXCEPT THESE ABIDE IN THE SHIP, YE CANNOT BE SAVED.K# 32 THEN THE SOLDIERS CUT OFF THE ROPES OF THE BOAT, AND LET HER FALL OFF.IJ# 33 AND WHILE THE DAY WAS COMING ON, PAUL BESOUGHT THEM ALL TO TAKE MEAT,J SAYING, THIS DAY IS THE FOURTEENTH DAY THAT YE HAVE TARRIED AND CONTINUED FASTING, HAVING TAKEN NOTHING.OM# 34 WHEREFORE I PRAY YOU TO TAKE SOME MEAT: FOR THIS IS FOR YOUR HEALTH: FORS: THERE SHALL NOT AN HAIR FALL FROM THE HEAD OF ANY OF YOU.J# 35 AND WHEN HE HAD THUS SPOKEN, HE TOOK BREAD, AND GAVE THANKS TO GOD INB PRESENCE OF THEM ALL: AND WHEN HE HAD BROKEN IT, HE BEGAN TO EAT.D# 36 THEN WERE THEY ALL OF GOOD CHEER, AND THEY ALSO TOOK SOME MEAT.M# 37 AND WE WERE IN ALL IN THE SHIP TWO HUNDRED THREESCORE AND SIXTEEN SOULS.TJ# 38 AND WHEN THEY HAD EATEN ENOUGH, THEY LIGHTENED THE SHIP, AND CAST OUT THE WHEAT INTO THE SEA.G# 39 AND WHEN IT WAS DAY, THEY KNEW NOT THE LAND: BUT THEY DISCOVERED ATH CERTAIN CREEK WITH A SHORE, INTO THE WHICH THEY WERE MINDED, IF IT WERE! POSSIBLE, TO THRUST IN THE SHIP.TK# 40 AND WHEN THEY HAD TAKEN UP THE ANCHORS, THEY COMMITTED THEMSELVES UNTON THE SEA, AND LOOSED THE RUDDER BANDS, AND HOISED UP THE MAINSAIL TO THE WIND, AND MADE TOWARD SHORE. L# 41 AND FALLING INTO A PLACE WHERE TWO SEAS MET, THEY RAN THE SHIP AGROUND;N AND THE FOREPART STUCK FAST, AND REMAINED UNMOVEABLE, BUT THE HINDER PART WAS' BROKEN WITH THE VIOLENCE OF THE WAVES. I# 42 AND THE SOLDIERS COUNSEL WAS TO KILL THE PRISONERS, LEST ANY OF THEMI SHOULD SWIM OUT, AND ESCAPE. K# 43 BUT THE CENTURION, WILLING TO SAVE PAUL, KEPT THEM FROM THEIR PURPOSE;TK AND COMMANDED THAT THEY WHICH COULD SWIM SHOULD CAST THEMSELVES FIRST INTOE THE SEA, AND GET TO LAND:M# 44 AND THE REST, SOME ON BOARDS, AND SOME ON BROKEN PIECES OF THE SHIP. ANDN8 SO IT CAME TO PASS, THAT THEY ESCAPED ALL SAFE TO LAND. = CHAPTER 28 ,I# 1 AND WHEN THEY WERE ESCAPED, THEN THEY KNEW THAT THE ISLAND WAS CALLEDD MELITA.M# 2 AND THE BARBAROUS PEOPLE SHEWED US NO LITTLE KINDNESS: FOR THEY KINDLED A M FIRE, AND RECEIVED US EVERY ONE, BECAUSE OF THE PRESENT RAIN, AND00D'AD%5%T6%! ! BECAUSE OFR THE COLD.M# 3 AND WHEN PAUL HAD GATHERED A BUNDLE OF STICKS, AND LAID THEM ON THE FIRE,S> THERE CAME A VIPER OUT OF THE HEAT, AND FASTENED ON HIS HAND.I# 4 AND WHEN THE BARBARIANS SAW THE VENOMOUS BEAST HANG ON HIS HAND, THEYDM SAID AMONG THEMSELVES, NO DOUBT THIS MAN IS A MURDERER, WHOM, THOUGH HE HATHN6 ESCAPED THE SEA, YET VENGEANCE SUFFERETH NOT TO LIVE.?# 5 AND HE SHOOK OFF THE BEAST INTO THE FIRE, AND FELT NO HARM.H# 6 HOWBEIT THEY LOOKED WHEN HE SHOULD HAVE SWOLLEN, OR FALLEN DOWN DEADK SUDDENLY: BUT AFTER THEY HAD LOOKED A GREAT WHILE, AND SAW NO HARM COME TO ; HIM, THEY CHANGED THEIR MINDS, AND SAID THAT HE WAS A GOD.FI# 7 IN THE SAME QUARTERS WERE POSSESSIONS OF THE CHIEF MAN OF THE ISLAND,NB WHOSE NAME WAS PUBLIUS; WHO RECEIVED US, AND LODGED US THREE DAYS COURTEOUSLY.,K# 8 AND IT CAME TO PASS, THAT THE FATHER OF PUBLIUS LAY SICK OF A FEVER AND M OF A BLOODY FLUX: TO WHOM PAUL ENTERED IN, AND PRAYED, AND LAID HIS HANDS ONL HIM, AND HEALED HIM.VI# 9 SO WHEN THIS WAS DONE, OTHERS ALSO, WHICH HAD DISEASES IN THE ISLAND,T CAME, AND WERE HEALED:OM# 10 WHO ALSO HONOURED US WITH MANY HONOURS; AND WHEN WE DEPARTED, THEY LADEDE' US WITH SUCH THINGS AS WERE NECESSARY.IJ# 11 AND AFTER THREE MONTHS WE DEPARTED IN A SHIP OF ALEXANDRIA, WHICH HAD8 WINTERED IN THE ISLE, WHOSE SIGN WAS CASTOR AND POLLUX.:# 12 AND LANDING AT SYRACUSE, WE TARRIED THERE THREE DAYS.M# 13 AND FROM THENCE WE FETCHED A COMPASS, AND CAME TO RHEGIUM: AND AFTER ONEN> DAY THE SOUTH WIND BLEW, AND WE CAME THE NEXT DAY TO PUTEOLI:M# 14 WHERE WE FOUND BRETHREN, AND WERE DESIRED TO TARRY WITH THEM SEVEN DAYS:  AND SO WE WENT TOWARD ROME.L# 15 AND FROM THENCE, WHEN THE BRETHREN HEARD OF US, THEY CAME TO MEET US ASJ FAR AS APPII FORUM, AND THE THREE TAVERNS: WHOM WHEN PAUL SAW, HE THANKED GOD, AND TOOK COURAGE. K# 16 AND WHEN WE CAME TO ROME, THE CENTURION DELIVERED THE PRISONERS TO THE.G CAPTAIN OF THE GUARD: BUT PAUL WAS SUFFERED TO DWELL BY HIMSELF WITH AE SOLDIER THAT KEPT HIM.NL# 17 AND IT CAME TO PASS, THAT AFTER THREE DAYS PAUL CALLED THE CHIEF OF THEL JEWS TOGETHER: AND WHEN THEY WERE COME TOGETHER, HE SAID UNTO THEM, MEN ANDL BRETHREN, THOUGH I HAVE COMMITTED NOTHING AGAINST THE PEOPLE, OR CUSTOMS OFK OUR FATHERS, YET WAS I DELIVERED PRISONER FROM JERUSALEM INTO THE HANDS OFG THE ROMANS.L# 18 WHO, WHEN THEY HAD EXAMINED ME, WOULD HAVE LET ME GO, BECAUSE THERE WAS NO CAUSE OF DEATH IN ME.UI# 19 BUT WHEN THE JEWS SPAKE AGAINST IT, I WAS CONSTRAINED TO APPEAL UNTOH5 CAESAR; NOT THAT I HAD OUGHT TO ACCUSE MY NATION OF.AM# 20 FOR THIS CAUSE THEREFORE HAVE I CALLED FOR YOU, TO SEE YOU, AND TO SPEAKEJ WITH YOU: BECAUSE THAT FOR THE HOPE OF ISRAEL I AM BOUND WITH THIS CHAIN.F# 21 AND THEY SAID UNTO HIM, WE NEITHER RECEIVED LETTERS OUT OF JUDAEAK CONCERNING THEE, NEITHER ANY OF THE BRETHREN THAT CAME SHEWED OR SPAKE ANYN HARM OF THEE.M# 22 BUT WE DESIRE TO HEAR OF THEE WHAT THOU THINKEST: FOR AS CONCERNING THISE5 SECT, WE KNOW THAT EVERY WHERE IT IS SPOKEN AGAINST.K# 23 AND WHEN THEY HAD APPOINTED HIM A DAY, THERE CAME MANY TO HIM INTO HISHK LODGING; TO WHOM HE EXPOUNDED AND TESTIFIED THE KINGDOM OF GOD, PERSUADINGTN THEM CONCERNING JESUS, BOTH OUT OF THE LAW OF MOSES, AND OUT OF THE PROPHETS, FROM MORNING TILL EVENING.EK# 24 AND SOME BELIEVED THE THINGS WHICH WERE SPOKEN, AND SOME BELIEVED NOT.WI# 25 AND WHEN THEY AGREED NOT AMONG THEMSELVES, THEY DEPARTED, AFTER THATHJ PAUL HAD SPOKEN ONE WORD, WELL SPAKE THE HOLY GHOST BY ESAIAS THE PROPHET UNTO OUR FATHERS,K# 26 SAYING, GO UNTO THIS PEOPLE, AND SAY, HEARING YE SHALL HEAR, AND SHALLL; NOT UNDERSTAND; AND SEEING YE SHALL SEE, AND NOT PERCEIVE:,L# 27 FOR THE HEART OF THIS PEOPLE IS WAXED GROSS, AND THEIR EARS ARE DULL OFJ HEARING, AND THEIR EYES HAVE THEY CLOSED; LEST THEY SHOULD SEE WITH THEIRL EYES, AND HEAR WITH THEIR EARS, AND UNDERSTAND WITH THEIR HEART, AND SHOULD& BE CONVERTED, AND I SHOULD HEAL THEM.K# 28 BE IT KNOWN THEREFORE UNTO YOU, THAT THE SALVATION OF GOD IS SENT UNTOH* THE GENTILES, AND THAT THEY WILL 00DD<%X>%+%O-%TADATADATAHEAR IT.G# 29 AND WHEN HE HAD SAID THESE WORDS, THE JEWS DEPARTED, AND HAD GREAT; REASONING AMONG THEMSELVES.L# 30 AND PAUL DWELT TWO WHOLE YEARS IN HIS OWN HIRED HOUSE, AND RECEIVED ALL THAT CAME IN UNTO HIM, J# 31 PREACHING THE KINGDOM OF GOD, AND TEACHING THOSE THINGS WHICH CONCERNC THE LORD JESUS CHRIST, WITH ALL CONFIDENCE, NO MAN FORBIDDING HIM.BE CONVERTED, AND I SHOULD HEAL THEM.K# 28 BE IT KNOWN THEREFORE UNTO YOU, THAT THE SALVATION OF GOD IS SENT UNTOH* THE GENTILES, AND THAT THEY WILL * BOOK45 ROMANSD = CHAPTER 1 L# 1 PAUL, A SERVANT OF JESUS CHRIST, CALLED TO BE AN APOSTLE, SEPARATED UNTO THE GOSPEL OF GOD,LI# 2 (WHICH HE HAD PROMISED AFORE BY HIS PROPHETS IN THE HOLY SCRIPTURES,)NK# 3 CONCERNING HIS SON JESUS CHRIST OUR LORD, WHICH WAS MADE OF THE SEED OFC DAVID ACCORDING TO THE FLESH;L# 4 AND DECLARED TO BE THE SON OF GOD WITH POWER, ACCORDING TO THE SPIRIT OF- HOLINESS, BY THE RESURRECTION FROM THE DEAD:HH# 5 BY WHOM WE HAVE RECEIVED GRACE AND APOSTLESHIP, FOR OBEDIENCE TO THE' FAITH AMONG ALL NATIONS, FOR HIS NAME:E6# 6 AMONG WHOM ARE YE ALSO THE CALLED OF JESUS CHRIST:M# 7 TO ALL THAT BE IN ROME, BELOVED OF GOD, CALLED TO BE SAINTS: GRACE TO YOUI: AND PEACE FROM GOD OUR FATHER, AND THE LORD JESUS CHRIST.K# 8 FIRST, I THANK MY GOD THROUGH JESUS CHRIST FOR YOU ALL, THAT YOUR FAITH ) IS SPOKEN OF THROUGHOUT THE WHOLE WORLD.WK# 9 FOR GOD IS MY WITNESS, WHOM I SERVE WITH MY SPIRIT IN THE GOSPEL OF HISHI SON, THAT WITHOUT CEASING I MAKE MENTION OF YOU ALWAYS IN MY PRAYERS; ITL# 10 MAKING REQUEST, IF BY ANY MEANS NOW AT LENGTH I MIGHT HAVE A PROSPEROUS- JOURNEY BY THE WILL OF GOD TO COME UNTO YOU. K# 11 FOR I LONG TO SEE YOU, THAT I MAY IMPART UNTO YOU SOME SPIRITUAL GIFT,A" TO THE END YE MAY BE ESTABLISHED;K# 12 THAT IS, THAT I MAY BE COMFORTED TOGETHER WITH YOU BY THE MUTUAL FAITHI BOTH OF YOU AND ME.L# 13 NOW I WOULD NOT HAVE YOU IGNORANT, BRETHREN, THAT OFTENTIMES I PURPOSEDM TO COME UNTO YOU, (BUT WAS LET HITHERTO,) THAT I MIGHT HAVE SOME FRUIT AMONGM( YOU ALSO, EVEN AS AMONG OTHER GENTILES.M# 14 I AM DEBTOR BOTH TO THE GREEKS, AND TO THE BARBARIANS; BOTH TO THE WISE,  AND TO THE UNWISE. M# 15 SO, AS MUCH AS IN ME IS, I AM READY TO PREACH THE GOSPEL TO YOU THAT ARE  AT ROME ALSO.M# 16 FOR I AM NOT ASHAMED OF THE GOSPEL OF CHRIST: FOR IT IS THE POWER OF GODMN UNTO SALVATION TO EVERY ONE THAT BELIEVETH; TO THE JEW FIRST, AND ALSO TO THE GREEK.TM# 17 FOR THEREIN IS THE RIGHTEOUSNESS OF GOD REVEALED FROM FAITH TO FAITH: AS - IT IS WRITTEN, THE JUST SHALL LIVE BY FAITH.GM# 18 FOR THE WRATH OF GOD IS REVEALED FROM HEAVEN AGAINST ALL UNGODLINESS ANDO? UNRIGHTEOUSNESS OF MEN, WHO HOLD THE TRUTH IN UNRIGHTEOUSNESS; M# 19 BECAUSE THAT WHICH MAY BE KNOWN OF GOD IS MANIFEST IN THEM; FOR GOD HATHI SHEWED IT UNTO THEM.GG# 20 FOR THE INVISIBLE THINGS OF HIM FROM THE CREATION OF THE WORLD AREEM CLEARLY SEEN, BEING UNDERSTOOD BY THE THINGS THAT ARE MADE, EVEN HIS ETERNALI4 POWER AND GODHEAD; SO THAT THEY ARE WITHOUT EXCUSE:M# 21 BECAUSE THAT, WHEN THEY KNEW GOD, THEY GLORIFIED HIM NOT AS GOD, NEITHERON WERE THANKFUL; BUT BECAME VAIN IN THEIR IMAGINATIONS, AND THEIR FOOLISH HEART WAS DARKENED.9# 22 PROFESSING THEMSELVES TO BE WISE, THEY BECAME FOOLS,OK# 23 AND CHANGED THE GLORY OF THE UNCORRUPTIBLE GOD INTO AN IMAGE MADE LIKERN TO CORRUPTIBLE MAN, AND TO BIRDS, AND FOURFOOTED BEASTS, AND CREEPING THINGS.H# 24 WHEREFORE GOD ALSO GAVE THEM UP TO UNCLEANNESS THROUGH THE LUSTS OFD THEIR OWN HEARTS, TO DISHONOUR THEIR OWN BODIES BETWEEN THEMSELVES:K# 25 WHO CHANGED THE TRUTH OF GOD INTO A LIE, AND WORSHIPPED AND SERVED THEE? CREATURE MORE THAN THE CREATOR, WHO IS BLESSED FOR EVER. AMEN.RI# 26 FOR THIS CAUSE GOD GAVE THEM UP UNTO VILE AFFECTIONS: FOR EVEN THEIRDD WOMEN DID CHANGE THE NATURAL USE INTO THAT WHICH IS AGAINST NATURE:L# 27 AND LIKEWISE ALSO THE MEN, LEAVING THE NATURAL USE OF THE WOMAN, BURNEDE IN THEIR LUST ONE TOWARD ANOTHER; MEN WITH MEN WORKING THAT WHICH IS K UNSEEMLY, AND RECEIVING IN THEMSELVES THAT RECOMPENCE OF THEIR ERROR WHICH5 00D'AD%5%T6%! ! WAS MEET.M# 28 AND EVEN AS THEY DID NOT LIKE TO RETAIN GOD IN THEIR KNOWLEDGE, GOD GAVEAL THEM OVER TO A REPROBATE MIND, TO DO THOSE THINGS WHICH ARE NOT CONVENIENT;D# 29 BEING FILLED WITH ALL UNRIGHTEOUSNESS, FORNICATION, WICKEDNESS,N COVETOUSNESS, MALICIOUSNESS; FULL OF ENVY, MURDER, DEBATE, DECEIT, MALIGNITY; WHISPERERS,I# 30 BACKBITERS, HATERS OF GOD, DESPITEFUL, PROUD, BOASTERS, INVENTORS OFE% EVIL THINGS, DISOBEDIENT TO PARENTS,DI# 31 WITHOUT UNDERSTANDING, COVENANT BREAKERS, WITHOUT NATURAL AFFECTION, IMPLACABLE, UNMERCIFUL:L# 32 WHO KNOWING THE JUDGMENT OF GOD, THAT THEY WHICH COMMIT SUCH THINGS AREI WORTHY OF DEATH, NOT ONLY DO THE SAME, BUT HAVE PLEASURE IN THEM THAT DOH THEM. = CHAPTER 2 K# 1 THEREFORE THOU ART INEXCUSABLE, O MAN, WHOSOEVER THOU ART THAT JUDGEST: I FOR WHEREIN THOU JUDGEST ANOTHER, THOU CONDEMNEST THYSELF; FOR THOU THATE JUDGEST DOEST THE SAME THINGS.OJ# 2 BUT WE ARE SURE THAT THE JUDGMENT OF GOD IS ACCORDING TO TRUTH AGAINST THEM WHICH COMMIT SUCH THINGS.LJ# 3 AND THINKEST THOU THIS, O MAN, THAT JUDGEST THEM WHICH DO SUCH THINGS,@ AND DOEST THE SAME, THAT THOU SHALT ESCAPE THE JUDGMENT OF GOD?D# 4 OR DESPISEST THOU THE RICHES OF HIS GOODNESS AND FORBEARANCE ANDD LONGSUFFERING; NOT KNOWING THAT THE GOODNESS OF GOD LEADETH THEE TO REPENTANCE?J# 5 BUT AFTER THY HARDNESS AND IMPENITENT HEART TREASUREST UP UNTO THYSELFK WRATH AGAINST THE DAY OF WRATH AND REVELATION OF THE RIGHTEOUS JUDGMENT OFI GOD;D8# 6 WHO WILL RENDER TO EVERY MAN ACCORDING TO HIS DEEDS:G# 7 TO THEM WHO BY PATIENT CONTINUANCE IN WELL DOING SEEK FOR GLORY AND& HONOUR AND IMMORTALITY, ETERNAL LIFE:K# 8 BUT UNTO THEM THAT ARE CONTENTIOUS, AND DO NOT OBEY THE TRUTH, BUT OBEYD( UNRIGHTEOUSNESS, INDIGNATION AND WRATH,K# 9 TRIBULATION AND ANGUISH, UPON EVERY SOUL OF MAN THAT DOETH EVIL, OF THE $ JEW FIRST, AND ALSO OF THE GENTILE;M# 10 BUT GLORY, HONOUR, AND PEACE, TO EVERY MAN THAT WORKETH GOOD, TO THE JEWE FIRST, AND ALSO TO THE GENTILE:1# 11 FOR THERE IS NO RESPECT OF PERSONS WITH GOD. J# 12 FOR AS MANY AS HAVE SINNED WITHOUT LAW SHALL ALSO PERISH WITHOUT LAW:B AND AS MANY AS HAVE SINNED IN THE LAW SHALL BE JUDGED BY THE LAW;J# 13 (FOR NOT THE HEARERS OF THE LAW ARE JUST BEFORE GOD, BUT THE DOERS OF THE LAW SHALL BE JUSTIFIED.K# 14 FOR WHEN THE GENTILES, WHICH HAVE NOT THE LAW, DO BY NATURE THE THINGSLL CONTAINED IN THE LAW, THESE, HAVING NOT THE LAW, ARE A LAW UNTO THEMSELVES:M# 15 WHICH SHEW THE WORK OF THE LAW WRITTEN IN THEIR HEARTS, THEIR CONSCIENCESI ALSO BEARING WITNESS, AND THEIR THOUGHTS THE MEAN WHILE ACCUSING OR ELSEL EXCUSING ONE ANOTHER;):G# 16 IN THE DAY WHEN GOD SHALL JUDGE THE SECRETS OF MEN BY JESUS CHRIST3 ACCORDING TO MY GOSPEL.J# 17 BEHOLD, THOU ART CALLED A JEW, AND RESTEST IN THE LAW, AND MAKEST THY BOAST OF GOD,L# 18 AND KNOWEST HIS WILL, AND APPROVEST THE THINGS THAT ARE MORE EXCELLENT,! BEING INSTRUCTED OUT OF THE LAW;RM# 19 AND ART CONFIDENT THAT THOU THYSELF ART A GUIDE OF THE BLIND, A LIGHT OFH THEM WHICH ARE IN DARKNESS,M# 20 AN INSTRUCTOR OF THE FOOLISH, A TEACHER OF BABES, WHICH HAST THE FORM OFN' KNOWLEDGE AND OF THE TRUTH IN THE LAW.DK# 21 THOU THEREFORE WHICH TEACHEST ANOTHER, TEACHEST THOU NOT THYSELF? THOU 8 THAT PREACHEST A MAN SHOULD NOT STEAL, DOST THOU STEAL?H# 22 THOU THAT SAYEST A MAN SHOULD NOT COMMIT ADULTERY, DOST THOU COMMITA ADULTERY? THOU THAT ABHORREST IDOLS, DOST THOU COMMIT SACRILEGE?WD# 23 THOU THAT MAKEST THY BOAST OF THE LAW, THROUGH BREAKING THE LAW DISHONOUREST THOU GOD? L# 24 FOR THE NAME OF GOD IS BLASPHEMED AMONG THE GENTILES THROUGH YOU, AS IT IS WRITTEN.L# 25 FOR CIRCUMCISION VERILY PROFITETH, IF THOU KEEP THE LAW: BUT IF THOU BE? A BREAKER OF THE LAW, THY CIRCUMCISION IS MADE UNCIRCUMCISION. M# 26 THEREFORE IF THE UNCIRCUMCISION KEEP THE RIGHTEOUSNESS OF THE LAW, SHALLC4 NOT HIS UNCIRCUMCISION BE COUNTED FOR CIRCUMCISION?K# 27 AND SHALL NOT UNCIRCUMCISION WHICH IS BY NATURE, IF IT FULFIL THE LAW,SH JUDGE THEE, WHO BY THE LETTER AND CIRCUMCISION DOST TRANSGRESS THE LAW?A# 28 FOR HE IS N00DD<%X>%+%O-%TADATADATAOT A JEW, WHICH IS ONE OUTWARDLY; NEITHER IS THATT- CIRCUMCISION, WHICH IS OUTWARD IN THE FLESH:OL# 29 BUT HE IS A JEW, WHICH IS ONE INWARDLY; AND CIRCUMCISION IS THAT OF THEM HEART, IN THE SPIRIT, AND NOT IN THE LETTER; WHOSE PRAISE IS NOT OF MEN, BUT  OF GOD. = CHAPTER 3 N# 1 WHAT ADVANTAGE THEN HATH THE JEW? OR WHAT PROFIT IS THERE OF CIRCUMCISION?F# 2 MUCH EVERY WAY: CHIEFLY, BECAUSE THAT UNTO THEM WERE COMMITTED THE ORACLES OF GOD.L# 3 FOR WHAT IF SOME DID NOT BELIEVE? SHALL THEIR UNBELIEF MAKE THE FAITH OF GOD WITHOUT EFFECT?M# 4 GOD FORBID: YEA, LET GOD BE TRUE, BUT EVERY MAN A LIAR; AS IT IS WRITTEN,JK THAT THOU MIGHTEST BE JUSTIFIED IN THY SAYINGS, AND MIGHTEST OVERCOME WHENI THOU ART JUDGED. K# 5 BUT IF OUR UNRIGHTEOUSNESS COMMEND THE RIGHTEOUSNESS OF GOD, WHAT SHALLVD WE SAY? IS GOD UNRIGHTEOUS WHO TAKETH VENGEANCE? (I SPEAK AS A MAN)7# 6 GOD FORBID: FOR THEN HOW SHALL GOD JUDGE THE WORLD?MM# 7 FOR IF THE TRUTH OF GOD HATH MORE ABOUNDED THROUGH MY LIE UNTO HIS GLORY; & WHY YET AM I ALSO JUDGED AS A SINNER?L# 8 AND NOT RATHER, (AS WE BE SLANDEROUSLY REPORTED, AND AS SOME AFFIRM THATF WE SAY,) LET US DO EVIL, THAT GOOD MAY COME? WHOSE DAMNATION IS JUST.J# 9 WHAT THEN? ARE WE BETTER THAN THEY? NO, IN NO WISE: FOR WE HAVE BEFORE< PROVED BOTH JEWS AND GENTILES, THAT THEY ARE ALL UNDER SIN;<# 10 AS IT IS WRITTEN, THERE IS NONE RIGHTEOUS, NO, NOT ONE:L# 11 THERE IS NONE THAT UNDERSTANDETH, THERE IS NONE THAT SEEKETH AFTER GOD.M# 12 THEY ARE ALL GONE OUT OF THE WAY, THEY ARE TOGETHER BECOME UNPROFITABLE;N, THERE IS NONE THAT DOETH GOOD, NO, NOT ONE.I# 13 THEIR THROAT IS AN OPEN SEPULCHRE; WITH THEIR TONGUES THEY HAVE USEDA0 DECEIT; THE POISON OF ASPS IS UNDER THEIR LIPS:3# 14 WHOSE MOUTH IS FULL OF CURSING AND BITTERNESS:E(# 15 THEIR FEET ARE SWIFT TO SHED BLOOD:.# 16 DESTRUCTION AND MISERY ARE IN THEIR WAYS:.# 17 AND THE WAY OF PEACE HAVE THEY NOT KNOWN:/# 18 THERE IS NO FEAR OF GOD BEFORE THEIR EYES. L# 19 NOW WE KNOW THAT WHAT THINGS SOEVER THE LAW SAITH, IT SAITH TO THEM WHOJ ARE UNDER THE LAW: THAT EVERY MOUTH MAY BE STOPPED, AND ALL THE WORLD MAY BECOME GUILTY BEFORE GOD.K# 20 THEREFORE BY THE DEEDS OF THE LAW THERE SHALL NO FLESH BE JUSTIFIED INT3 HIS SIGHT: FOR BY THE LAW IS THE KNOWLEDGE OF SIN.IJ# 21 BUT NOW THE RIGHTEOUSNESS OF GOD WITHOUT THE LAW IS MANIFESTED, BEING' WITNESSED BY THE LAW AND THE PROPHETS;YM# 22 EVEN THE RIGHTEOUSNESS OF GOD WHICH IS BY FAITH OF JESUS CHRIST UNTO ALL < AND UPON ALL THEM THAT BELIEVE: FOR THERE IS NO DIFFERENCE:=# 23 FOR ALL HAVE SINNED, AND COME SHORT OF THE GLORY OF GOD;TJ# 24 BEING JUSTIFIED FREELY BY HIS GRACE THROUGH THE REDEMPTION THAT IS IN CHRIST JESUS:M# 25 WHOM GOD HATH SET FORTH TO BE A PROPITIATION THROUGH FAITH IN HIS BLOOD,NN TO DECLARE HIS RIGHTEOUSNESS FOR THE REMISSION OF SINS THAT ARE PAST, THROUGH THE FORBEARANCE OF GOD;H# 26 TO DECLARE, I SAY, AT THIS TIME HIS RIGHTEOUSNESS: THAT HE MIGHT BE9 JUST, AND THE JUSTIFIER OF HIM WHICH BELIEVETH IN JESUS. L# 27 WHERE IS BOASTING THEN? IT IS EXCLUDED. BY WHAT LAW? OF WORKS? NAY: BUT BY THE LAW OF FAITH.M# 28 THEREFORE WE CONCLUDE THAT A MAN IS JUSTIFIED BY FAITH WITHOUT THE DEEDSR OF THE LAW.L# 29 IS HE THE GOD OF THE JEWS ONLY? IS HE NOT ALSO OF THE GENTILES? YES, OF THE GENTILES ALSO:EM# 30 SEEING IT IS ONE GOD, WHICH SHALL JUSTIFY THE CIRCUMCISION BY FAITH, ANDO UNCIRCUMCISION THROUGH FAITH.D# 31 DO WE THEN MAKE VOID THE LAW THROUGH FAITH? GOD FORBID: YEA, WE ESTABLISH THE LAW.T = CHAPTER 4 H# 1 WHAT SHALL WE SAY THEN THAT ABRAHAM OUR FATHER, AS PERTAINING TO THE FLESH, HATH FOUND?IM# 2 FOR IF ABRAHAM WERE JUSTIFIED BY WORKS, HE HATH WHEREOF TO GLORY; BUT NOTE BEFORE GOD.J# 3 FOR WHAT SAITH THE SCRIPTURE? ABRAHAM BELIEVED GOD, AND IT WAS COUNTED UNTO HIM FOR RIGHTEOUSNESS.M# 4 NOW TO HIM THAT WORKETH IS THE REWARD NOT RECKONED OF GRACE, BUT OF DEBT.I# 5 BUT TO HIM THAT WORKETH NOT, BUT BELIEVETH ON HIM THAT JUSTIFIETH THEA1 UNGODLY, HIS FAITH IS COUNTED FOR RIGHTEOUSNESS.HK# 6 EVEN AS DAVID ALSO DESCRIBETH THE BLESSEDNESS 00D'AD%5%T6%! !OF THE MAN, UNTO WHOM GODO& IMPUTETH RIGHTEOUSNESS WITHOUT WORKS,J# 7 SAYING, BLESSED ARE THEY WHOSE INIQUITIES ARE FORGIVEN, AND WHOSE SINS ARE COVERED.H<# 8 BLESSED IS THE MAN TO WHOM THE LORD WILL NOT IMPUTE SIN.H# 9 COMETH THIS BLESSEDNESS THEN UPON THE CIRCUMCISION ONLY, OR UPON THEG UNCIRCUMCISION ALSO? FOR WE SAY THAT FAITH WAS RECKONED TO ABRAHAM FORB RIGHTEOUSNESS.IA# 10 HOW WAS IT THEN RECKONED? WHEN HE WAS IN CIRCUMCISION, OR INS< UNCIRCUMCISION? NOT IN CIRCUMCISION, BUT IN UNCIRCUMCISION.M# 11 AND HE RECEIVED THE SIGN OF CIRCUMCISION, A SEAL OF THE RIGHTEOUSNESS OFSL THE FAITH WHICH HE HAD YET BEING UNCIRCUMCISED: THAT HE MIGHT BE THE FATHERM OF ALL THEM THAT BELIEVE, THOUGH THEY BE NOT CIRCUMCISED; THAT RIGHTEOUSNESSS! MIGHT BE IMPUTED UNTO THEM ALSO:OK# 12 AND THE FATHER OF CIRCUMCISION TO THEM WHO ARE NOT OF THE CIRCUMCISION J ONLY, BUT WHO ALSO WALK IN THE STEPS OF THAT FAITH OF OUR FATHER ABRAHAM,& WHICH HE HAD BEING YET UNCIRCUMCISED.I# 13 FOR THE PROMISE, THAT HE SHOULD BE THE HEIR OF THE WORLD, WAS NOT TO K ABRAHAM, OR TO HIS SEED, THROUGH THE LAW, BUT THROUGH THE RIGHTEOUSNESS OF  FAITH.IK# 14 FOR IF THEY WHICH ARE OF THE LAW BE HEIRS, FAITH IS MADE VOID, AND THEY PROMISE MADE OF NONE EFFECT:ED# 15 BECAUSE THE LAW WORKETH WRATH: FOR WHERE NO LAW IS, THERE IS NO TRANSGRESSION.EH# 16 THEREFORE IT IS OF FAITH, THAT IT MIGHT BE BY GRACE; TO THE END THEM PROMISE MIGHT BE SURE TO ALL THE SEED; NOT TO THAT ONLY WHICH IS OF THE LAW, K BUT TO THAT ALSO WHICH IS OF THE FAITH OF ABRAHAM; WHO IS THE FATHER OF USR ALL,RJ# 17 (AS IT IS WRITTEN, I HAVE MADE THEE A FATHER OF MANY NATIONS,) BEFOREK HIM WHOM HE BELIEVED, EVEN GOD, WHO QUICKENETH THE DEAD, AND CALLETH THOSE) THINGS WHICH BE NOT AS THOUGH THEY WERE.EJ# 18 WHO AGAINST HOPE BELIEVED IN HOPE, THAT HE MIGHT BECOME THE FATHER OFH MANY NATIONS, ACCORDING TO THAT WHICH WAS SPOKEN, SO SHALL THY SEED BE.J# 19 AND BEING NOT WEAK IN FAITH, HE CONSIDERED NOT HIS OWN BODY NOW DEAD,K WHEN HE WAS ABOUT AN HUNDRED YEARS OLD, NEITHER YET THE DEADNESS OF SARAHSU WOMB:L# 20 HE STAGGERED NOT AT THE PROMISE OF GOD THROUGH UNBELIEF; BUT WAS STRONG IN FAITH, GIVING GLORY TO GOD;,K# 21 AND BEING FULLY PERSUADED THAT, WHAT HE HAD PROMISED, HE WAS ABLE ALSOT TO PERFORM.;# 22 AND THEREFORE IT WAS IMPUTED TO HIM FOR RIGHTEOUSNESS.EK# 23 NOW IT WAS NOT WRITTEN FOR HIS SAKE ALONE, THAT IT WAS IMPUTED TO HIM;EL# 24 BUT FOR US ALSO, TO WHOM IT SHALL BE IMPUTED, IF WE BELIEVE ON HIM THAT+ RAISED UP JESUS OUR LORD FROM THE DEAD; IT,E# 25 WHO WAS DELIVERED FOR OUR OFFENCES, AND WAS RAISED AGAIN FOR OURT JUSTIFICATION. = CHAPTER 5 J# 1 THEREFORE BEING JUSTIFIED BY FAITH, WE HAVE PEACE WITH GOD THROUGH OUR LORD JESUS CHRIST:EJ# 2 BY WHOM ALSO WE HAVE ACCESS BY FAITH INTO THIS GRACE WHEREIN WE STAND,) AND REJOICE IN HOPE OF THE GLORY OF GOD.ID# 3 AND NOT ONLY SO, BUT WE GLORY IN TRIBULATIONS ALSO: KNOWING THAT TRIBULATION WORKETH PATIENCE;3# 4 AND PATIENCE, EXPERIENCE; AND EXPERIENCE, HOPE:PJ# 5 AND HOPE MAKETH NOT ASHAMED; BECAUSE THE LOVE OF GOD IS SHED ABROAD IN5 OUR HEARTS BY THE HOLY GHOST WHICH IS GIVEN UNTO US.PJ# 6 FOR WHEN WE WERE YET WITHOUT STRENGTH, IN DUE TIME CHRIST DIED FOR THE UNGODLY.RI# 7 FOR SCARCELY FOR A RIGHTEOUS MAN WILL ONE DIE: YET PERADVENTURE FOR AW& GOOD MAN SOME WOULD EVEN DARE TO DIE.E# 8 BUT GOD COMMENDETH HIS LOVE TOWARD US, IN THAT, WHILE WE WERE YET  SINNERS, CHRIST DIED FOR US.NL# 9 MUCH MORE THEN, BEING NOW JUSTIFIED BY HIS BLOOD, WE SHALL BE SAVED FROM WRATH THROUGH HIM.SL# 10 FOR IF, WHEN WE WERE ENEMIES, WE WERE RECONCILED TO GOD BY THE DEATH OFE HIS SON, MUCH MORE, BEING RECONCILED, WE SHALL BE SAVED BY HIS LIFE.IK# 11 AND NOT ONLY SO, BUT WE ALSO JOY IN GOD THROUGH OUR LORD JESUS CHRIST,M, BY WHOM WE HAVE NOW RECEIVED THE ATONEMENT.K# 12 WHEREFORE, AS BY ONE MAN SIN ENTERED INTO THE WORLD, AND DEATH BY SIN;,< AND SO DEATH PASSED UPON ALL MEN, FOR THAT ALL HAVE SINNED:I# 13 (FOR UNTIL THE LAW SIN WAS IN THE WORLD: BUT SIN IS NOT IMPUTED WHENM THERE IS NO LAW.MK# 00DD<%X>%+%O-%TADATADATA14 NEVERTHELESS DEATH REIGNED FROM ADAM TO MOSES, EVEN OVER THEM THAT HAD M NOT SINNED AFTER THE SIMILITUDE OF ADAMS TRANSGRESSION, WHO IS THE FIGURE OF1 HIM THAT WAS TO COME.I# 15 BUT NOT AS THE OFFENCE, SO ALSO IS THE FREE GIFT. FOR IF THROUGH THEII OFFENCE OF ONE MANY BE DEAD, MUCH MORE THE GRACE OF GOD, AND THE GIFT BYDC GRACE, WHICH IS BY ONE MAN, JESUS CHRIST, HATH ABOUNDED UNTO MANY. K# 16 AND NOT AS IT WAS BY ONE THAT SINNED, SO IS THE GIFT: FOR THE JUDGMENTPG WAS BY ONE TO CONDEMNATION, BUT THE FREE GIFT IS OF MANY OFFENCES UNTO  JUSTIFICATION.EJ# 17 FOR IF BY ONE MANS OFFENCE DEATH REIGNED BY ONE; MUCH MORE THEY WHICHK RECEIVE ABUNDANCE OF GRACE AND OF THE GIFT OF RIGHTEOUSNESS SHALL REIGN IN  LIFE BY ONE, JESUS CHRIST.)E# 18 THEREFORE AS BY THE OFFENCE OF ONE JUDGMENT CAME UPON ALL MEN TO N CONDEMNATION; EVEN SO BY THE RIGHTEOUSNESS OF ONE THE FREE GIFT CAME UPON ALL MEN UNTO JUSTIFICATION OF LIFE.F# 19 FOR AS BY ONE MANS DISOBEDIENCE MANY WERE MADE SINNERS, SO BY THE/ OBEDIENCE OF ONE SHALL MANY BE MADE RIGHTEOUS.TK# 20 MOREOVER THE LAW ENTERED, THAT THE OFFENCE MIGHT ABOUND. BUT WHERE SINU& ABOUNDED, GRACE DID MUCH MORE ABOUND:K# 21 THAT AS SIN HATH REIGNED UNTO DEATH, EVEN SO MIGHT GRACE REIGN THROUGH : RIGHTEOUSNESS UNTO ETERNAL LIFE BY JESUS CHRIST OUR LORD. = CHAPTER 6 L# 1 WHAT SHALL WE SAY THEN? SHALL WE CONTINUE IN SIN, THAT GRACE MAY ABOUND?L# 2 GOD FORBID. HOW SHALL WE, THAT ARE DEAD TO SIN, LIVE ANY LONGER THEREIN?K# 3 KNOW YE NOT, THAT SO MANY OF US AS WERE BAPTIZED INTO JESUS CHRIST WEREG BAPTIZED INTO HIS DEATH? H# 4 THEREFORE WE ARE BURIED WITH HIM BY BAPTISM INTO DEATH: THAT LIKE ASJ CHRIST WAS RAISED UP FROM THE DEAD BY THE GLORY OF THE FATHER, EVEN SO WE% ALSO SHOULD WALK IN NEWNESS OF LIFE.EI# 5 FOR IF WE HAVE BEEN PLANTED TOGETHER IN THE LIKENESS OF HIS DEATH, WEL3 SHALL BE ALSO IN THE LIKENESS OF HIS RESURRECTION:YJ# 6 KNOWING THIS, THAT OUR OLD MAN IS CRUCIFIED WITH HIM, THAT THE BODY OFA SIN MIGHT BE DESTROYED, THAT HENCEFORTH WE SHOULD NOT SERVE SIN.T*# 7 FOR HE THAT IS DEAD IS FREED FROM SIN.J# 8 NOW IF WE BE DEAD WITH CHRIST, WE BELIEVE THAT WE SHALL ALSO LIVE WITH HIM:RL# 9 KNOWING THAT CHRIST BEING RAISED FROM THE DEAD DIETH NO MORE; DEATH HATH NO MORE DOMINION OVER HIM.EJ# 10 FOR IN THAT HE DIED, HE DIED UNTO SIN ONCE: BUT IN THAT HE LIVETH, HE LIVETH UNTO GOD.IM# 11 LIKEWISE RECKON YE ALSO YOURSELVES TO BE DEAD INDEED UNTO SIN, BUT ALIVEC( UNTO GOD THROUGH JESUS CHRIST OUR LORD.L# 12 LET NOT SIN THEREFORE REIGN IN YOUR MORTAL BODY, THAT YE SHOULD OBEY IT IN THE LUSTS THEREOF.I# 13 NEITHER YIELD YE YOUR MEMBERS AS INSTRUMENTS OF UNRIGHTEOUSNESS UNTOHK SIN: BUT YIELD YOURSELVES UNTO GOD, AS THOSE THAT ARE ALIVE FROM THE DEAD,E; AND YOUR MEMBERS AS INSTRUMENTS OF RIGHTEOUSNESS UNTO GOD.IL# 14 FOR SIN SHALL NOT HAVE DOMINION OVER YOU: FOR YE ARE NOT UNDER THE LAW, BUT UNDER GRACE. I# 15 WHEN THEN? SHALL WE SIN, BECAUSE WE ARE NOT UNDER THE LAW, BUT UNDERE GRACE? GOD FORBID.H# 16 KNOW YE NOT, THAT TO WHOM YE YIELD YOURSELVES SERVANTS TO OBEY, HISL SERVANTS YE ARE TO WHOM YE OBEY; WHETHER OF SIN UNTO DEATH, OR OF OBEDIENCE UNTO RIGHTEOUSNESS?M# 17 BUT GOD BE THANKED, THAT YE WERE THE SERVANTS OF SIN, BUT YE HAVE OBEYEDE> FROM THE HEART THAT FORM OF DOCTRINE WHICH WAS DELIVERED YOU.L# 18 BEING THEN MADE FREE FROM SIN, YE BECAME THE SERVANTS OF RIGHTEOUSNESS.L# 19 I SPEAK AFTER THE MANNER OF MEN BECAUSE OF THE INFIRMITY OF YOUR FLESH:L FOR AS YE HAVE YIELDED YOUR MEMBERS SERVANTS TO UNCLEANNESS AND TO INIQUITYM UNTO INIQUITY; EVEN SO NOW YIELD YOUR MEMBERS SERVANTS TO RIGHTEOUSNESS UNTOF HOLINESS.K# 20 FOR WHEN YE WERE THE SERVANTS OF SIN, YE WERE FREE FROM RIGHTEOUSNESS.WK# 21 WHAT FRUIT HAD YE THEN IN THOSE THINGS WHEREOF YE ARE NOW ASHAMED? FORC" THE END OF THOSE THINGS IS DEATH.J# 22 BUT NOW BEING MADE FREE FROM SIN, AND BECOME SERVANTS TO GOD, YE HAVE8 YOUR FRUIT UNTO HOLINESS, AND THE END EVERLASTING LIFE.G# 23 FOR THE WAGES OF SIN IS DEATH; BUT THE GIFT OF GOD IS ETERNAL LIFEN THROUGH JESUS CHRIST OU00D'AD%5%T6%! !R LORD.I = CHAPTER 7 L# 1 KNOW YE NOT, BRETHREN, (FOR I SPEAK TO THEM THAT KNOW THE LAW,) HOW THAT7 THE LAW HATH DOMINION OVER A MAN AS LONG AS HE LIVETH?SM# 2 FOR THE WOMAN WHICH HATH AN HUSBAND IS BOUND BY THE LAW TO HER HUSBAND SO M LONG AS HE LIVETH; BUT IF THE HUSBAND BE DEAD, SHE IS LOOSED FROM THE LAW OF, HER HUSBAND.VL# 3 SO THEN IF, WHILE HER HUSBAND LIVETH, SHE BE MARRIED TO ANOTHER MAN, SHEL SHALL BE CALLED AN ADULTERESS: BUT IF HER HUSBAND BE DEAD, SHE IS FREE FROMN THAT LAW; SO THAT SHE IS NO ADULTERESS, THOUGH SHE BE MARRIED TO ANOTHER MAN.M# 4 WHEREFORE, MY BRETHREN, YE ALSO ARE BECOME DEAD TO THE LAW BY THE BODY OFSM CHRIST; THAT YE SHOULD BE MARRIED TO ANOTHER, EVEN TO HIM WHO IS RAISED FROMA5 THE DEAD, THAT WE SHOULD BRING FORTH FRUIT UNTO GOD.SI# 5 FOR WHEN WE WERE IN THE FLESH, THE MOTIONS OF SINS, WHICH WERE BY THEF> LAW, DID WORK IN OUR MEMBERS TO BRING FORTH FRUIT UNTO DEATH.J# 6 BUT NOW WE ARE DELIVERED FROM THE LAW, THAT BEING DEAD WHEREIN WE WEREK HELD; THAT WE SHOULD SERVE IN NEWNESS OF SPIRIT, AND NOT IN THE OLDNESS OFA THE LETTER.L# 7 WHAT SHALL WE SAY THEN? IS THE LAW SIN? GOD FORBID. NAY, I HAD NOT KNOWNM SIN, BUT BY THE LAW: FOR I HAD NOT KNOWN LUST, EXCEPT THE LAW HAD SAID, THOUA SHALT NOT COVET.RL# 8 BUT SIN, TAKING OCCASION BY THE COMMANDMENT, WROUGHT IN ME ALL MANNER OF1 CONCUPISCENCE. FOR WITHOUT THE LAW SIN WAS DEAD.BL# 9 FOR I WAS ALIVE WITHOUT THE LAW ONCE: BUT WHEN THE COMMANDMENT CAME, SIN REVIVED, AND I DIED.EH# 10 AND THE COMMANDMENT, WHICH WAS ORDAINED TO LIFE, I FOUND TO BE UNTO DEATH.SM# 11 FOR SIN, TAKING OCCASION BY THE COMMANDMENT, DECEIVED ME, AND BY IT SLEW, ME.M# 12 WHEREFORE THE LAW IS HOLY, AND THE COMMANDMENT HOLY, AND JUST, AND GOOD.SI# 13 WAS THEN THAT WHICH IS GOOD MADE DEATH UNTO ME? GOD FORBID. BUT SIN,MN THAT IT MIGHT APPEAR SIN, WORKING DEATH IN ME BY THAT WHICH IS GOOD; THAT SIN2 BY THE COMMANDMENT MIGHT BECOME EXCEEDING SINFUL.L# 14 FOR WE KNOW THAT THE LAW IS SPIRITUAL: BUT I AM CARNAL, SOLD UNDER SIN.J# 15 FOR THAT WHICH I DO I ALLOW NOT: FOR WHAT I WOULD, THAT DO I NOT; BUT WHAT I HATE, THAT DO I.K# 16 IF THEN I DO THAT WHICH I WOULD NOT, I CONSENT UNTO THE LAW THAT IT IS  GOOD.F# 17 NOW THEN IT IS NO MORE I THAT DO IT, BUT SIN THAT DWELLETH IN ME.J# 18 FOR I KNOW THAT IN ME (THAT IS, IN MY FLESH,) DWELLETH NO GOOD THING:M FOR TO WILL IS PRESENT WITH ME; BUT HOW TO PERFORM THAT WHICH IS GOOD I FINDE NOT.IM# 19 FOR THE GOOD THAT I WOULD I DO NOT: BUT THE EVIL WHICH I WOULD NOT, THATN I DO.K# 20 NOW IF I DO THAT I WOULD NOT, IT IS NO MORE I THAT DO IT, BUT SIN THAT DWELLETH IN ME.L# 21 I FIND THEN A LAW, THAT, WHEN I WOULD DO GOOD, EVIL IS PRESENT WITH ME.:# 22 FOR I DELIGHT IN THE LAW OF GOD AFTER THE INWARD MAN:M# 23 BUT I SEE ANOTHER LAW IN MY MEMBERS, WARRING AGAINST THE LAW OF MY MIND,DI AND BRINGING ME INTO CAPTIVITY TO THE LAW OF SIN WHICH IS IN MY MEMBERS. I# 24 O WRETCHED MAN THAT I AM! WHO SHALL DELIVER ME FROM THE BODY OF THIS: DEATH?EG# 25 I THANK GOD THROUGH JESUS CHRIST OUR LORD. SO THEN WITH THE MIND II@ MYSELF SERVE THE LAW OF GOD; BUT WITH THE FLESH THE LAW OF SIN. = CHAPTER 8 M# 1 THERE IS THEREFORE NOW NO CONDEMNATION TO THEM WHICH ARE IN CHRIST JESUS, 4 WHO WALK NOT AFTER THE FLESH, BUT AFTER THE SPIRIT.L# 2 FOR THE LAW OF THE SPIRIT OF LIFE IN CHRIST JESUS HATH MADE ME FREE FROM THE LAW OF SIN AND DEATH.M# 3 FOR WHAT THE LAW COULD NOT DO, IN THAT IT WAS WEAK THROUGH THE FLESH, GODVL SENDING HIS OWN SON IN THE LIKENESS OF SINFUL FLESH, AND FOR SIN, CONDEMNED SIN IN THE FLESH:L# 4 THAT THE RIGHTEOUSNESS OF THE LAW MIGHT BE FULFILLED IN US, WHO WALK NOT' AFTER THE FLESH, BUT AFTER THE SPIRIT.NJ# 5 FOR THEY THAT ARE AFTER THE FLESH DO MIND THE THINGS OF THE FLESH; BUT9 THEY THAT ARE AFTER THE SPIRIT THE THINGS OF THE SPIRIT.IL# 6 FOR TO BE CARNALLY MINDED IS DEATH; BUT TO BE SPIRITUALLY MINDED IS LIFE AND PEACE.TK# 7 BECAUSE THE CARNAL MIND IS ENMITY AGAINST GOD: FOR IT IS NOT SUBJECT TOH' THE LAW OF GOD, NEITHER INDEED CAN BE.H9# 8 SO THEN THEY THAT ARE 00DD<%X>%+%O-%TADATADATAIN THE FLESH CANNOT PLEASE GOD.RL# 9 BUT YE ARE NOT IN THE FLESH, BUT IN THE SPIRIT, IF SO BE THAT THE SPIRITN OF GOD DWELL IN YOU. NOW IF ANY MAN HAVE NOT THE SPIRIT OF CHRIST, HE IS NONE OF HIS.M# 10 AND IF CHRIST BE IN YOU, THE BODY IS DEAD BECAUSE OF SIN; BUT THE SPIRITO" IS LIFE BECAUSE OF RIGHTEOUSNESS.I# 11 BUT IF THE SPIRIT OF HIM THAT RAISED UP JESUS FROM THE DEAD DWELL INNK YOU, HE THAT RAISED UP CHRIST FROM THE DEAD SHALL ALSO QUICKEN YOUR MORTALI+ BODIES BY HIS SPIRIT THAT DWELLETH IN YOU.TM# 12 THEREFORE, BRETHREN, WE ARE DEBTORS, NOT TO THE FLESH, TO LIVE AFTER THET FLESH.EH# 13 FOR IF YE LIVE AFTER THE FLESH, YE SHALL DIE: BUT IF YE THROUGH THE8 SPIRIT DO MORTIFY THE DEEDS OF THE BODY, YE SHALL LIVE.K# 14 FOR AS MANY AS ARE LED BY THE SPIRIT OF GOD, THEY ARE THE SONS OF GOD.II# 15 FOR YE HAVE NOT RECEIVED THE SPIRIT OF BONDAGE AGAIN TO FEAR; BUT YEED HAVE RECEIVED THE SPIRIT OF ADOPTION, WHEREBY WE CRY, ABBA, FATHER.G# 16 THE SPIRIT ITSELF BEARETH WITNESS WITH OUR SPIRIT, THAT WE ARE THET CHILDREN OF GOD: L# 17 AND IF CHILDREN, THEN HEIRS; HEIRS OF GOD, AND JOINT-HEIRS WITH CHRIST;J IF SO BE THAT WE SUFFER WITH HIM, THAT WE MAY BE ALSO GLORIFIED TOGETHER.L# 18 FOR I RECKON THAT THE SUFFERINGS OF THIS PRESENT TIME ARE NOT WORTHY TO: BE COMPARED WITH THE GLORY WHICH SHALL BE REVEALED IN US.@# 19 FOR THE EARNEST EXPECTATION OF THE CREATURE WAITETH FOR THE" MANIFESTATION OF THE SONS OF GOD.G# 20 FOR THE CREATURE WAS MADE SUBJECT TO VANITY, NOT WILLINGLY, BUT BY 3 REASON OF HIM WHO HATH SUBJECTED THE SAME IN HOPE,DL# 21 BECAUSE THE CREATURE ITSELF ALSO SHALL BE DELIVERED FROM THE BONDAGE OF= CORRUPTION INTO THE GLORIOUS LIBERTY OF THE CHILDREN OF GOD.EH# 22 FOR WE KNOW THAT THE WHOLE CREATION GROANETH AND TRAVAILETH IN PAIN TOGETHER UNTIL NOW.M# 23 AND NOT ONLY THEY, BUT OURSELVES ALSO, WHICH HAVE THE FIRSTFRUITS OF THEOL SPIRIT, EVEN WE OURSELVES GROAN WITHIN OURSELVES, WAITING FOR THE ADOPTION,$ TO WIT, THE REDEMPTION OF OUR BODY.L# 24 FOR WE ARE SAVED BY HOPE: BUT HOPE THAT IS SEEN IS NOT HOPE: FOR WHAT A% MAN SEETH, WHY DOTH HE YET HOPE FOR? J# 25 BUT IF WE HOPE FOR THAT WE SEE NOT, THEN DO WE WITH PATIENCE WAIT FOR IT.K# 26 LIKEWISE THE SPIRIT ALSO HELPETH OUR INFIRMITIES: FOR WE KNOW NOT WHATRN WE SHOULD PRAY FOR AS WE OUGHT: BUT THE SPIRIT ITSELF MAKETH INTERCESSION FOR+ US WITH GROANINGS WHICH CANNOT BE UTTERED.IM# 27 AND HE THAT SEARCHETH THE HEARTS KNOWETH WHAT IS THE MIND OF THE SPIRIT,,L BECAUSE HE MAKETH INTERCESSION FOR THE SAINTS ACCORDING TO THE WILL OF GOD.I# 28 AND WE KNOW THAT ALL THINGS WORK TOGETHER FOR GOOD TO THEM THAT LOVEB: GOD, TO THEM WHO ARE THE CALLED ACCORDING TO HIS PURPOSE.J# 29 FOR WHOM HE DID FOREKNOW, HE ALSO DID PREDESTINATE TO BE CONFORMED TOJ THE IMAGE OF HIS SON, THAT HE MIGHT BE THE FIRSTBORN AMONG MANY BRETHREN.H# 30 MOREOVER WHOM HE DID PREDESTINATE, THEM HE ALSO CALLED: AND WHOM HED CALLED, THEM HE ALSO JUSTIFIED: AND WHOM HE JUSTIFIED, THEM HE ALSO GLORIFIED.HI# 31 WHAT SHALL WE THEN SAY TO THESE THINGS? IF GOD BE FOR US, WHO CAN BED AGAINST US?I# 32 HE THAT SPARED NOT HIS OWN SON, BUT DELIVERED HIM UP FOR US ALL, HOW 6 SHALL HE NOT WITH HIM ALSO FREELY GIVE US ALL THINGS?H# 33 WHO SHALL LAY ANY THING TO THE CHARGE OF GODS ELECT? IT IS GOD THAT JUSTIFIETH.K# 34 WHO IS HE THAT CONDEMNETH? IT IS CHRIST THAT DIED, YEA RATHER, THAT ISSC RISEN AGAIN, WHO IS EVEN AT THE RIGHT HAND OF GOD, WHO ALSO MAKETHF INTERCESSION FOR US.II# 35 WHO SHALL SEPARATE US FROM THE LOVE OF CHRIST? SHALL TRIBULATION, OR?J DISTRESS, OR PERSECUTION, OR FAMINE, OR NAKEDNESS, OR PERIL, OR SWORD? ITJ# 36 AS IT IS WRITTEN, FOR THY SAKE WE ARE KILLED ALL THE DAY LONG; WE ARE& ACCOUNTED AS SHEEP FOR THE SLAUGHTER.J# 37 NAY, IN ALL THESE THINGS WE ARE MORE THAN CONQUERORS THROUGH HIM THAT LOVED US.F# 38 FOR I AM PERSUADED, THAT NEITHER DEATH, NOR LIFE, NOR ANGELS, NORD PRINCIPALITIES, NOR POWERS, NOR THINGS PRESENT, NOR THINGS TO COME,M# 39 NOR HEIGHT, NOR DEPTH, NOR ANY OTHER CREATURE, SHALL BE ABLE TO SEPARATEL< US FROM THE L00E'AD%5%T6%! !OVE OF GOD, WHICH IS IN CHRIST JESUS OUR LORD. = CHAPTER 9 G# 1 I SAY THE TRUTH IN CHRIST, I LIE NOT, MY CONSCIENCE ALSO BEARING ME  WITNESS IN THE HOLY GHOST,HA# 2 THAT I HAVE GREAT HEAVINESS AND CONTINUAL SORROW IN MY HEART.HK# 3 FOR I COULD WISH THAT MYSELF WERE ACCURSED FROM CHRIST FOR MY BRETHREN,T# MY KINSMEN ACCORDING TO THE FLESH:K# 4 WHO ARE ISRAELITES; TO WHOM PERTAINETH THE ADOPTION, AND THE GLORY, ANDRJ THE COVENANTS, AND THE GIVING OF THE LAW, AND THE SERVICE OF GOD, AND THE PROMISES;K# 5 WHOSE ARE THE FATHERS, AND OF WHOM AS CONCERNING THE FLESH CHRIST CAME,T- WHO IS OVER ALL, GOD BLESSED FOR EVER. AMEN.IJ# 6 NOT AS THOUGH THE WORD OF GOD HATH TAKEN NONE EFFECT. FOR THEY ARE NOT! ALL ISRAEL, WHICH ARE OF ISRAEL:OI# 7 NEITHER, BECAUSE THEY ARE THE SEED OF ABRAHAM, ARE THEY ALL CHILDREN: ( BUT, IN ISAAC SHALL THY SEED BE CALLED.H# 8 THAT IS, THEY WHICH ARE THE CHILDREN OF THE FLESH, THESE ARE NOT THEK CHILDREN OF GOD: BUT THE CHILDREN OF THE PROMISE ARE COUNTED FOR THE SEED.IH# 9 FOR THIS IS THE WORD OF PROMISE, AT THIS TIME WILL I COME, AND SARAH SHALL HAVE A SON.K# 10 AND NOT ONLY THIS; BUT WHEN REBECCA ALSO HAD CONCEIVED BY ONE, EVEN BYT OUR FATHER ISAAC;J# 11 (FOR THE CHILDREN BEING NOT YET BORN, NEITHER HAVING DONE ANY GOOD ORH EVIL, THAT THE PURPOSE OF GOD ACCORDING TO ELECTION MIGHT STAND, NOT OF! WORKS, BUT OF HIM THAT CALLETH;)E=# 12 IT WAS SAID UNTO HER, THE ELDER SHALL SERVE THE YOUNGER.DA# 13 AS IT IS WRITTEN, JACOB HAVE I LOVED, BUT ESAU HAVE I HATED.DK# 14 WHAT SHALL WE SAY THEN? IS THERE UNRIGHTEOUSNESS WITH GOD? GOD FORBID.L# 15 FOR HE SAITH TO MOSES, I WILL HAVE MERCY ON WHOM I WILL HAVE MERCY, AND7 I WILL HAVE COMPASSION ON WHOM I WILL HAVE COMPASSION.LK# 16 SO THEN IT IS NOT OF HIM THAT WILLETH, NOR OF HIM THAT RUNNETH, BUT OFP GOD THAT SHEWETH MERCY.L# 17 FOR THE SCRIPTURE SAITH UNTO PHARAOH, EVEN FOR THIS SAME PURPOSE HAVE IN RAISED THEE UP, THAT I MIGHT SHEW MY POWER IN THEE, AND THAT MY NAME MIGHT BE# DECLARED THROUGHOUT ALL THE EARTH.L# 18 THEREFORE HATH HE MERCY ON WHOM HE WILL HAVE MERCY, AND WHOM HE WILL HE HARDENETH.AI# 19 THOU WILT SAY THEN UNTO ME, WHY DOTH HE YET FIND FAULT? FOR WHO HATHE RESISTED HIS WILL? L# 20 NAY BUT, O MAN, WHO ART THOU THAT REPLIEST AGAINST GOD? SHALL THE THING> FORMED SAY TO HIM THAT FORMED IT, WHY HAST THOU MADE ME THUS?J# 21 HATH NOT THE POTTER POWER OVER THE CLAY, OF THE SAME LUMP TO MAKE ONE0 VESSEL UNTO HONOUR, AND ANOTHER UNTO DISHONOUR?I# 22 WHAT IF GOD, WILLING TO SHEW HIS WRATH, AND TO MAKE HIS POWER KNOWN, L ENDURED WITH MUCH LONGSUFFERING THE VESSELS OF WRATH FITTED TO DESTRUCTION:K# 23 AND THAT HE MIGHT MAKE KNOWN THE RICHES OF HIS GLORY ON THE VESSELS OFE/ MERCY, WHICH HE HAD AFORE PREPARED UNTO GLORY,HH# 24 EVEN US, WHOM HE HATH CALLED, NOT OF THE JEWS ONLY, BUT ALSO OF THE GENTILES?L# 25 AS HE SAITH ALSO IN OSEE, I WILL CALL THEM MY PEOPLE, WHICH WERE NOT MY0 PEOPLE; AND HER BELOVED, WHICH WAS NOT BELOVED.H# 26 AND IT SHALL COME TO PASS, THAT IN THE PLACE WHERE IT WAS SAID UNTOK THEM, YE ARE NOT MY PEOPLE; THERE SHALL THEY BE CALLED THE CHILDREN OF THET LIVING GOD.L# 27 ESAIAS ALSO CRIETH CONCERNING ISRAEL, THOUGH THE NUMBER OF THE CHILDREN? OF ISRAEL BE AS THE SAND OF THE SEA, A REMNANT SHALL BE SAVED: L# 28 FOR HE WILL FINISH THE WORK, AND CUT IT SHORT IN RIGHTEOUSNESS: BECAUSE0 A SHORT WORK WILL THE LORD MAKE UPON THE EARTH.H# 29 AND AS ESAIAS SAID BEFORE, EXCEPT THE LORD OF SABAOTH HAD LEFT US A? SEED, WE HAD BEEN AS SODOMA, AND BEEN MADE LIKE UNTO GOMORRHA.SH# 30 WHAT SHALL WE SAY THEN? THAT THE GENTILES, WHICH FOLLOWED NOT AFTERL RIGHTEOUSNESS, HAVE ATTAINED TO RIGHTEOUSNESS, EVEN THE RIGHTEOUSNESS WHICH IS OF FAITH.HH# 31 BUT ISRAEL, WHICH FOLLOWED AFTER THE LAW OF RIGHTEOUSNESS, HATH NOT& ATTAINED TO THE LAW OF RIGHTEOUSNESS.J# 32 WHEREFORE? BECAUSE THEY SOUGHT IT NOT BY FAITH, BUT AS IT WERE BY THE< WORKS OF THE LAW. FOR THEY STUMBLED AT THAT STUMBLINGSTONE;I# 33 AS IT IS WRITTEN, BEHOLD, I LAY IN SION A STUMBLINGSTONE AND ROCK OFE> OFFENCE: AND WHOSOE00 ED<%X>%+%O-%TADATADATAVER BELIEVETH ON HIM SHALL NOT BE ASHAMED. = CHAPTER 10 DI# 1 BRETHREN, MY HEARTS DESIRE AND PRAYER TO GOD FOR ISRAEL IS, THAT THEYO MIGHT BE SAVED.M# 2 FOR I BEAR THEM RECORD THAT THEY HAVE A ZEAL OF GOD, BUT NOT ACCORDING TOH KNOWLEDGE.EE# 3 FOR THEY BEING IGNORANT OF GODS RIGHTEOUSNESS, AND GOING ABOUT TONJ ESTABLISH THEIR OWN RIGHTEOUSNESS, HAVE NOT SUBMITTED THEMSELVES UNTO THE RIGHTEOUSNESS OF GOD.H# 4 FOR CHRIST IS THE END OF THE LAW FOR RIGHTEOUSNESS TO EVERY ONE THAT BELIEVETH. L# 5 FOR MOSES DESCRIBETH THE RIGHTEOUSNESS WHICH IS OF THE LAW, THAT THE MAN- WHICH DOETH THOSE THINGS SHALL LIVE BY THEM. M# 6 BUT THE RIGHTEOUSNESS WHICH IS OF FAITH SPEAKETH ON THIS WISE, SAY NOT INEJ THINE HEART, WHO SHALL ASCEND INTO HEAVEN? (THAT IS, TO BRING CHRIST DOWN FROM ABOVE:)UK# 7 OR, WHO SHALL DESCEND INTO THE DEEP? (THAT IS, TO BRING UP CHRIST AGAINI FROM THE DEAD.)K# 8 BUT WHAT SAITH IT? THE WORD IS NIGH THEE, EVEN IN THY MOUTH, AND IN THYT4 HEART: THAT IS, THE WORD OF FAITH, WHICH WE PREACH;G# 9 THAT IF THOU SHALT CONFESS WITH THY MOUTH THE LORD JESUS, AND SHALTDM BELIEVE IN THINE HEART THAT GOD HATH RAISED HIM FROM THE DEAD, THOU SHALT BEA SAVED.EL# 10 FOR WITH THE HEART MAN BELIEVETH UNTO RIGHTEOUSNESS; AND WITH THE MOUTH# CONFESSION IS MADE UNTO SALVATION.VE# 11 FOR THE SCRIPTURE SAITH, WHOSOEVER BELIEVETH ON HIM SHALL NOT BER ASHAMED.K# 12 FOR THERE IS NO DIFFERENCE BETWEEN THE JEW AND THE GREEK: FOR THE SAMEO3 LORD OVER ALL IS RICH UNTO ALL THAT CALL UPON HIM. G# 13 FOR WHOSOEVER SHALL CALL UPON THE NAME OF THE LORD SHALL BE SAVED.JL# 14 HOW THEN SHALL THEY CALL ON HIM IN WHOM THEY HAVE NOT BELIEVED? AND HOWJ SHALL THEY BELIEVE IN HIM OF WHOM THEY HAVE NOT HEARD? AND HOW SHALL THEY HEAR WITHOUT A PREACHER?UJ# 15 AND HOW SHALL THEY PREACH, EXCEPT THEY BE SENT? AS IT IS WRITTEN, HOWJ BEAUTIFUL ARE THE FEET OF THEM THAT PREACH THE GOSPEL OF PEACE, AND BRING GLAD TIDINGS OF GOOD THINGS!RI# 16 BUT THEY HAVE NOT ALL OBEYED THE GOSPEL. FOR ESAIAS SAITH, LORD, WHO  HATH BELIEVED OUR REPORT?E# 17 SO THEN FAITH COMETH BY HEARING, AND HEARING BY THE WORD OF GOD.LJ# 18 BUT I SAY, HAVE THEY NOT HEARD? YES VERILY, THEIR SOUND WENT INTO ALL7 THE EARTH, AND THEIR WORDS UNTO THE ENDS OF THE WORLD.IM# 19 BUT I SAY, DID NOT ISRAEL KNOW? FIRST MOSES SAITH, I WILL PROVOKE YOU TOIJ JEALOUSY BY THEM THAT ARE NO PEOPLE, AND BY A FOOLISH NATION I WILL ANGER YOU.DK# 20 BUT ESAIAS IS VERY BOLD, AND SAITH, I WAS FOUND OF THEM THAT SOUGHT ME < NOT; I WAS MADE MANIFEST UNTO THEM THAT ASKED NOT AFTER ME.I# 21 BUT TO ISRAEL HE SAITH, ALL DAY LONG I HAVE STRETCHED FORTH MY HANDS* UNTO A DISOBEDIENT AND GAINSAYING PEOPLE. = CHAPTER 11 DK# 1 I SAY THEN, HATH GOD CAST AWAY HIS PEOPLE? GOD FORBID. FOR I ALSO AM AN9= ISRAELITE, OF THE SEED OF ABRAHAM, OF THE TRIBE OF BENJAMIN.OL# 2 GOD HATH NOT CAST AWAY HIS PEOPLE WHICH HE FOREKNEW. WOT YE NOT WHAT THEK SCRIPTURE SAITH OF ELIAS? HOW HE MAKETH INTERCESSION TO GOD AGAINST ISRAELM SAYING,L# 3 LORD, THEY HAVE KILLED THY PROPHETS, AND DIGGED DOWN THINE ALTARS; AND I& AM LEFT ALONE, AND THEY SEEK MY LIFE.H# 4 BUT WHAT SAITH THE ANSWER OF GOD UNTO HIM? I HAVE RESERVED TO MYSELFF SEVEN THOUSAND MEN, WHO HAVE NOT BOWED THE KNEE TO THE IMAGE OF BAAL.J# 5 EVEN SO THEN AT THIS PRESENT TIME ALSO THERE IS A REMNANT ACCORDING TO THE ELECTION OF GRACE.CL# 6 AND IF BY GRACE, THEN IS IT NO MORE OF WORKS: OTHERWISE GRACE IS NO MOREM GRACE. BUT IF IT BE OF WORKS, THEN IT IS NO MORE GRACE: OTHERWISE WORK IS NO MORE WORK.LJ# 7 WHAT THEN? ISRAEL HATH NOT OBTAINED THAT WHICH HE SEEKETH FOR; BUT THE6 ELECTION HATH OBTAINED IT, AND THE REST WERE BLINDED.K# 8 (ACCORDING AS IT IS WRITTEN, GOD HATH GIVEN THEM THE SPIRIT OF SLUMBER,HN EYES THAT THEY SHOULD NOT SEE, AND EARS THAT THEY SHOULD NOT HEAR;) UNTO THIS DAY.NG# 9 AND DAVID SAITH, LET THEIR TABLE BE MADE A SNARE, AND A TRAP, AND AI, STUMBLINGBLOCK, AND A RECOMPENCE UNTO THEM:J# 10 LET THEIR EYES BE DARKENED, THAT THEY MAY NOT SEE, AND BOW DOWN THEIR BACK ALWAY.J# 11 I SAY THEN, HAVE 00E'AD%5%T6%! !THEY STUMBLED THAT THEY SHOULD FALL? GOD FORBID: BUTN RATHER THROUGH THEIR FALL SALVATION IS COME UNTO THE GENTILES, FOR TO PROVOKE THEM TO JEALOUSY.L# 12 NOW IF THE FALL OF THEM BE THE RICHES OF THE WORLD, AND THE DIMINISHINGA OF THEM THE RICHES OF THE GENTILES; HOW MUCH MORE THEIR FULNESS?TE# 13 FOR I SPEAK TO YOU GENTILES, INASMUCH AS I AM THE APOSTLE OF THE,! GENTILES, I MAGNIFY MINE OFFICE:LL# 14 IF BY ANY MEANS I MAY PROVOKE TO EMULATION THEM WHICH ARE MY FLESH, AND MIGHT SAVE SOME OF THEM. J# 15 FOR IF THE CASTING AWAY OF THEM BE THE RECONCILING OF THE WORLD, WHAT8 SHALL THE RECEIVING OF THEM BE, BUT LIFE FROM THE DEAD?M# 16 FOR IF THE FIRSTFRUIT BE HOLY, THE LUMP IS ALSO HOLY: AND IF THE ROOT BED HOLY, SO ARE THE BRANCHES.EL# 17 AND IF SOME OF THE BRANCHES BE BROKEN OFF, AND THOU, BEING A WILD OLIVEJ TREE, WERT GRAFFED IN AMONG THEM, AND WITH THEM PARTAKEST OF THE ROOT AND FATNESS OF THE OLIVE TREE;SL# 18 BOAST NOT AGAINST THE BRANCHES. BUT IF THOU BOAST, THOU BEAREST NOT THE ROOT, BUT THE ROOT THEE.TF# 19 THOU WILT SAY THEN, THE BRANCHES WERE BROKEN OFF, THAT I MIGHT BE GRAFFED IN.I# 20 WELL; BECAUSE OF UNBELIEF THEY WERE BROKEN OFF, AND THOU STANDEST BY $ FAITH. BE NOT HIGHMINDED, BUT FEAR:M# 21 FOR IF GOD SPARED NOT THE NATURAL BRANCHES, TAKE HEED LEST HE ALSO SPAREU NOT THEE.K# 22 BEHOLD THEREFORE THE GOODNESS AND SEVERITY OF GOD: ON THEM WHICH FELL,OG SEVERITY; BUT TOWARD THEE, GOODNESS, IF THOU CONTINUE IN HIS GOODNESS:.& OTHERWISE THOU ALSO SHALT BE CUT OFF.M# 23 AND THEY ALSO, IF THEY ABIDE NOT STILL IN UNBELIEF, SHALL BE GRAFFED IN: ( FOR GOD IS ABLE TO GRAFF THEM IN AGAIN.L# 24 FOR IF THOU WERT CUT OUT OF THE OLIVE TREE WHICH IS WILD BY NATURE, ANDL WERT GRAFFED CONTRARY TO NATURE INTO A GOOD OLIVE TREE: HOW MUCH MORE SHALLL THESE, WHICH BE THE NATURAL BRANCHES, BE GRAFFED INTO THEIR OWN OLIVE TREE?K# 25 FOR I WOULD NOT, BRETHREN, THAT YE SHOULD BE IGNORANT OF THIS MYSTERY,EG LEST YE SHOULD BE WISE IN YOUR OWN CONCEITS; THAT BLINDNESS IN PART IS B HAPPENED TO ISRAEL, UNTIL THE FULNESS OF THE GENTILES BE COME IN.M# 26 AND SO ALL ISRAEL SHALL BE SAVED: AS IT IS WRITTEN, THERE SHALL COME OUTRC OF SION THE DELIVERER, AND SHALL TURN AWAY UNGODLINESS FROM JACOB:EJ# 27 FOR THIS IS MY COVENANT UNTO THEM, WHEN I SHALL TAKE AWAY THEIR SINS.F# 28 AS CONCERNING THE GOSPEL, THEY ARE ENEMIES FOR YOUR SAKES: BUT AS? TOUCHING THE ELECTION, THEY ARE BELOVED FOR THE FATHERS SAKES.S=# 29 FOR THE GIFTS AND CALLING OF GOD ARE WITHOUT REPENTANCE.DI# 30 FOR AS YE IN TIMES PAST HAVE NOT BELIEVED GOD, YET HAVE NOW OBTAINED  MERCY THROUGH THEIR UNBELIEF:K# 31 EVEN SO HAVE THESE ALSO NOW NOT BELIEVED, THAT THROUGH YOUR MERCY THEYR ALSO MAY OBTAIN MERCY.NJ# 32 FOR GOD HATH CONCLUDED THEM ALL IN UNBELIEF, THAT HE MIGHT HAVE MERCY UPON ALL.K# 33 O THE DEPTH OF THE RICHES BOTH OF THE WISDOM AND KNOWLEDGE OF GOD! HOWU? UNSEARCHABLE ARE HIS JUDGMENTS, AND HIS WAYS PAST FINDING OUT!KB# 34 FOR WHO HATH KNOWN THE MIND OF THE LORD? OR WHO HATH BEEN HIS COUNSELLOR?I# 35 OR WHO HATH FIRST GIVEN TO HIM, AND IT SHALL BE RECOMPENSED UNTO HIMU AGAIN?UH# 36 FOR OF HIM, AND THROUGH HIM, AND TO HIM, ARE ALL THINGS: TO WHOM BE GLORY FOR EVER. AMEN. = CHAPTER 12 M# 1 I BESEECH YOU THEREFORE, BRETHREN, BY THE MERCIES OF GOD, THAT YE PRESENTOI YOUR BODIES A LIVING SACRIFICE, HOLY, ACCEPTABLE UNTO GOD, WHICH IS YOURG REASONABLE SERVICE.M# 2 AND BE NOT CONFORMED TO THIS WORLD: BUT BE YE TRANSFORMED BY THE RENEWINGHG OF YOUR MIND, THAT YE MAY PROVE WHAT IS THAT GOOD, AND ACCEPTABLE, ANDF PERFECT, WILL OF GOD.J# 3 FOR I SAY, THROUGH THE GRACE GIVEN UNTO ME, TO EVERY MAN THAT IS AMONGN YOU, NOT TO THINK OF HIMSELF MORE HIGHLY THAN HE OUGHT TO THINK; BUT TO THINKH SOBERLY, ACCORDING AS GOD HATH DEALT TO EVERY MAN THE MEASURE OF FAITH.I# 4 FOR AS WE HAVE MANY MEMBERS IN ONE BODY, AND ALL MEMBERS HAVE NOT THES SAME OFFICE:AK# 5 SO WE, BEING MANY, ARE ONE BODY IN CHRIST, AND EVERY ONE MEMBERS ONE OFY ANOTHER.NK# 6 HAVING THEN GIFTS DIFFERING ACCORDING TO THE GRACE THAT IS GIV00ED<%X>%+%O-%TADATADATAEN TO US,H WHETHER PROPHECY, LET US PROPHESY ACCORDING TO THE PROPORTION OF FAITH;H# 7 OR MINISTRY, LET US WAIT ON OUR MINISTERING: OR HE THAT TEACHETH, ON TEACHING;L# 8 OR HE THAT EXHORTETH, ON EXHORTATION: HE THAT GIVETH, LET HIM DO IT WITHH SIMPLICITY; HE THAT RULETH, WITH DILIGENCE; HE THAT SHEWETH MERCY, WITH CHEERFULNESS.J# 9 LET LOVE BE WITHOUT DISSIMULATION. ABHOR THAT WHICH IS EVIL; CLEAVE TO THAT WHICH IS GOOD.H# 10 BE KINDLY AFFECTIONED ONE TO ANOTHER WITH BROTHERLY LOVE; IN HONOUR PREFERRING ONE ANOTHER;C# 11 NOT SLOTHFUL IN BUSINESS; FERVENT IN SPIRIT; SERVING THE LORD;MM# 12 REJOICING IN HOPE; PATIENT IN TRIBULATION; CONTINUING INSTANT IN PRAYER; C# 13 DISTRIBUTING TO THE NECESSITY OF SAINTS; GIVEN TO HOSPITALITY. :# 14 BLESS THEM WHICH PERSECUTE YOU: BLESS, AND CURSE NOT.E# 15 REJOICE WITH THEM THAT DO REJOICE, AND WEEP WITH THEM THAT WEEP.OF# 16 BE OF THE SAME MIND ONE TOWARD ANOTHER. MIND NOT HIGH THINGS, BUTC CONDESCEND TO MEN OF LOW ESTATE. BE NOT WISE IN YOUR OWN CONCEITS.EK# 17 RECOMPENSE TO NO MAN EVIL FOR EVIL. PROVIDE THINGS HONEST IN THE SIGHT OF ALL MEN.M# 18 IF IT BE POSSIBLE, AS MUCH AS LIETH IN YOU, LIVE PEACEABLY WITH ALL MEN. M# 19 DEARLY BELOVED, AVENGE NOT YOURSELVES, BUT RATHER GIVE PLACE UNTO WRATH:TD FOR IT IS WRITTEN, VENGEANCE IS MINE; I WILL REPAY, SAITH THE LORD.M# 20 THEREFORE IF THINE ENEMY HUNGER, FEED HIM; IF HE THIRST, GIVE HIM DRINK:T; FOR IN SO DOING THOU SHALT HEAP COALS OF FIRE ON HIS HEAD.O:# 21 BE NOT OVERCOME OF EVIL, BUT OVERCOME EVIL WITH GOOD. = CHAPTER 13 K# 1 LET EVERY SOUL BE SUBJECT UNTO THE HIGHER POWERS. FOR THERE IS NO POWERB4 BUT OF GOD: THE POWERS THAT BE ARE ORDAINED OF GOD.L# 2 WHOSOEVER THEREFORE RESISTETH THE POWER, RESISTETH THE ORDINANCE OF GOD:< AND THEY THAT RESIST SHALL RECEIVE TO THEMSELVES DAMNATION.I# 3 FOR RULERS ARE NOT A TERROR TO GOOD WORKS, BUT TO THE EVIL. WILT THOUHL THEN NOT BE AFRAID OF THE POWER? DO THAT WHICH IS GOOD, AND THOU SHALT HAVE PRAISE OF THE SAME:M# 4 FOR HE IS THE MINISTER OF GOD TO THEE FOR GOOD. BUT IF THOU DO THAT WHICH H IS EVIL, BE AFRAID; FOR HE BEARETH NOT THE SWORD IN VAIN: FOR HE IS THEG MINISTER OF GOD, A REVENGER TO EXECUTE WRATH UPON HIM THAT DOETH EVIL.TH# 5 WHEREFORE YE MUST NEEDS BE SUBJECT, NOT ONLY FOR WRATH, BUT ALSO FOR CONSCIENCE SAKE.LH# 6 FOR FOR THIS CAUSE PAY YE TRIBUTE ALSO: FOR THEY ARE GODS MINISTERS,, ATTENDING CONTINUALLY UPON THIS VERY THING.G# 7 RENDER THEREFORE TO ALL THEIR DUES: TRIBUTE TO WHOM TRIBUTE IS DUE; A CUSTOM TO WHOM CUSTOM; FEAR TO WHOM FEAR; HONOUR TO WHOM HONOUR.AM# 8 OWE NO MAN ANY THING, BUT TO LOVE ONE ANOTHER: FOR HE THAT LOVETH ANOTHERT HATH FULFILLED THE LAW.M# 9 FOR THIS, THOU SHALT NOT COMMIT ADULTERY, THOU SHALT NOT KILL, THOU SHALT K NOT STEAL, THOU SHALT NOT BEAR FALSE WITNESS, THOU SHALT NOT COVET; AND IF K THERE BE ANY OTHER COMMANDMENT, IT IS BRIEFLY COMPREHENDED IN THIS SAYING,I2 NAMELY, THOU SHALT LOVE THY NEIGHBOUR AS THYSELF.K# 10 LOVE WORKETH NO ILL TO HIS NEIGHBOUR: THEREFORE LOVE IS THE FULFILLINGE OF THE LAW.I# 11 AND THAT, KNOWING THE TIME, THAT NOW IT IS HIGH TIME TO AWAKE OUT OFE> SLEEP: FOR NOW IS OUR SALVATION NEARER THAN WHEN WE BELIEVED.J# 12 THE NIGHT IS FAR SPENT, THE DAY IS AT HAND: LET US THEREFORE CAST OFF> THE WORKS OF DARKNESS, AND LET US PUT ON THE ARMOUR OF LIGHT.M# 13 LET US WALK HONESTLY, AS IN THE DAY; NOT IN RIOTING AND DRUNKENNESS, NOT 9 IN CHAMBERING AND WANTONNESS, NOT IN STRIFE AND ENVYING..H# 14 BUT PUT YE ON THE LORD JESUS CHRIST, AND MAKE NOT PROVISION FOR THE$ FLESH, TO FULFIL THE LUSTS THEREOF. = CHAPTER 14 TA# 1 HIM THAT IS WEAK IN THE FAITH RECEIVE YE, BUT NOT TO DOUBTFULL DISPUTATIONS.G# 2 FOR ONE BELIEVETH THAT HE MAY EAT ALL THINGS: ANOTHER, WHO IS WEAK,T EATETH HERBS.H# 3 LET NOT HIM THAT EATETH DESPISE HIM THAT EATETH NOT; AND LET NOT HIMC WHICH EATETH NOT JUDGE HIM THAT EATETH: FOR GOD HATH RECEIVED HIM.SH# 4 WHO ART THOU THAT JUDGEST ANOTHER MANS SERVANT? TO HIS OWN MASTER HEM STANDETH OR FALLETH. YEA, HE SHALL BE HOLDEN UP: FOR GOD IS ABLE 00"E'AD%5%T6%! !TO MAKE HIMF STAND. H# 5 ONE MAN ESTEEMETH ONE DAY ABOVE ANOTHER: ANOTHER ESTEEMETH EVERY DAY9 ALIKE. LET EVERY MAN BE FULLY PERSUADED IN HIS OWN MIND.VF# 6 HE THAT REGARDETH THE DAY, REGARDETH IT UNTO THE LORD; AND HE THATJ REGARDETH NOT THE DAY, TO THE LORD HE DOTH NOT REGARD IT. HE THAT EATETH,M EATETH TO THE LORD, FOR HE GIVETH GOD THANKS; AND HE THAT EATETH NOT, TO THE + LORD HE EATETH NOT, AND GIVETH GOD THANKS.SB# 7 FOR NONE OF US LIVETH TO HIMSELF, AND NO MAN DIETH TO HIMSELF.J# 8 FOR WHETHER WE LIVE, WE LIVE UNTO THE LORD; AND WHETHER WE DIE, WE DIED UNTO THE LORD: WHETHER WE LIVE THEREFORE, OR DIE, WE ARE THE LORDS.M# 9 FOR TO THIS END CHRIST BOTH DIED, AND ROSE, AND REVIVED, THAT HE MIGHT BEL" LORD BOTH OF THE DEAD AND LIVING.L# 10 BUT WHY DOST THOU JUDGE THY BROTHER? OR WHY DOST THOU SET AT NOUGHT THYD BROTHER? FOR WE SHALL ALL STAND BEFORE THE JUDGMENT SEAT OF CHRIST.J# 11 FOR IT IS WRITTEN, AS I LIVE, SAITH THE LORD, EVERY KNEE SHALL BOW TO+ ME, AND EVERY TONGUE SHALL CONFESS TO GOD.EB# 12 SO THEN EVERY ONE OF US SHALL GIVE ACCOUNT OF HIMSELF TO GOD.L# 13 LET US NOT THEREFORE JUDGE ONE ANOTHER ANY MORE: BUT JUDGE THIS RATHER,M THAT NO MAN PUT A STUMBLINGBLOCK OR AN OCCASION TO FALL IN HIS BROTHERS WAY. F# 14 I KNOW, AND AM PERSUADED BY THE LORD JESUS, THAT THERE IS NOTHINGM UNCLEAN OF ITSELF: BUT TO HIM THAT ESTEEMETH ANY THING TO BE UNCLEAN, TO HIMA IT IS UNCLEAN.1F# 15 BUT IF THY BROTHER BE GRIEVED WITH THY MEAT, NOW WALKEST THOU NOTA CHARITABLY. DESTROY NOT HIM WITH THY MEAT, FOR WHOM CHRIST DIED.E.# 16 LET NOT THEN YOUR GOOD BE EVIL SPOKEN OF:I# 17 FOR THE KINGDOM OF GOD IS NOT MEAT AND DRINK; BUT RIGHTEOUSNESS, AND" PEACE, AND JOY IN THE HOLY GHOST.I# 18 FOR HE THAT IN THESE THINGS SERVETH CHRIST IS ACCEPTABLE TO GOD, ANDY APPROVED OF MEN.AG# 19 LET US THEREFORE FOLLOW AFTER THE THINGS WHICH MAKE FOR PEACE, ANDN( THINGS WHEREWITH ONE MAY EDIFY ANOTHER.M# 20 FOR MEAT DESTROY NOT THE WORK OF GOD. ALL THINGS INDEED ARE PURE; BUT ITI. IS EVIL FOR THAT MAN WHO EATETH WITH OFFENCE.F# 21 IT IS GOOD NEITHER TO EAT FLESH, NOR TO DRINK WINE, NOR ANY THING@ WHEREBY THY BROTHER STUMBLETH, OR IS OFFENDED, OR IS MADE WEAK.E# 22 HAST THOU FAITH? HAVE IT TO THYSELF BEFORE GOD. HAPPY IS HE THATR8 CONDEMNETH NOT HIMSELF IN THAT THING WHICH HE ALLOWETH.G# 23 AND HE THAT DOUBTETH IS DAMNED IF HE EAT, BECAUSE HE EATETH NOT OFN. FAITH: FOR WHATSOEVER IS NOT OF FAITH IS SIN. = CHAPTER 15 ON# 1 WE THEN THAT ARE STRONG OUGHT TO BEAR THE INFIRMITIES OF THE WEAK, AND NOT TO PLEASE OURSELVES.CI# 2 LET EVERY ONE OF US PLEASE HIS NEIGHBOUR FOR HIS GOOD TO EDIFICATION.C# 3 FOR EVEN CHRIST PLEASED NOT HIMSELF; BUT, AS IT IS WRITTEN, THE24 REPROACHES OF THEM THAT REPROACHED THEE FELL ON ME.E# 4 FOR WHATSOEVER THINGS WERE WRITTEN AFORETIME WERE WRITTEN FOR OURL LEARNING, THAT WE THROUGH PATIENCE AND COMFORT OF THE SCRIPTURES MIGHT HAVE HOPE.J# 5 NOW THE GOD OF PATIENCE AND CONSOLATION GRANT YOU TO BE LIKEMINDED ONE* TOWARD ANOTHER ACCORDING TO CHRIST JESUS:K# 6 THAT YE MAY WITH ONE MIND AND ONE MOUTH GLORIFY GOD, EVEN THE FATHER OFO OUR LORD JESUS CHRIST.AM# 7 WHEREFORE RECEIVE YE ONE ANOTHER, AS CHRIST ALSO RECEIVED US TO THE GLORYR OF GOD.J# 8 NOW I SAY THAT JESUS CHRIST WAS A MINISTER OF THE CIRCUMCISION FOR THE= TRUTH OF GOD, TO CONFIRM THE PROMISES MADE UNTO THE FATHERS:HL# 9 AND THAT THE GENTILES MIGHT GLORIFY GOD FOR HIS MERCY; AS IT IS WRITTEN,L FOR THIS CAUSE I WILL CONFESS TO THEE AMONG THE GENTILES, AND SING UNTO THY NAME.?# 10 AND AGAIN HE SAITH, REJOICE, YE GENTILES, WITH HIS PEOPLE.FF# 11 AND AGAIN, PRAISE THE LORD, ALL YE GENTILES; AND LAUD HIM, ALL YE PEOPLE.I# 12 AND AGAIN, ESAIAS SAITH, THERE SHALL BE A ROOT OF JESSE, AND HE THAT H SHALL RISE TO REIGN OVER THE GENTILES; IN HIM SHALL THE GENTILES TRUST.K# 13 NOW THE GOD OF HOPE FILL YOU WITH ALL JOY AND PEACE IN BELIEVING, THAT < YE MAY ABOUND IN HOPE, THROUGH THE POWER OF THE HOLY GHOST.I# 14 AND I MYSELF ALSO AM PERSUADED OF YOU, MY BRETHREN, THAT YE ALSO AREG FULL OF GOODNESS, FILLED WI00*ED<%X>%+%O-%TADATADATATH ALL KNOWLEDGE, ABLE ALSO TO ADMONISH ONED ANOTHER.IL# 15 NEVERTHELESS, BRETHREN, I HAVE WRITTEN THE MORE BOLDLY UNTO YOU IN SOMEJ SORT, AS PUTTING YOU IN MIND, BECAUSE OF THE GRACE THAT IS GIVEN TO ME OF GOD,EC# 16 THAT I SHOULD BE THE MINISTER OF JESUS CHRIST TO THE GENTILES, M MINISTERING THE GOSPEL OF GOD, THAT THE OFFERING UP OF THE GENTILES MIGHT BEE0 ACCEPTABLE, BEING SANCTIFIED BY THE HOLY GHOST.G# 17 I HAVE THEREFORE WHEREOF I MAY GLORY THROUGH JESUS CHRIST IN THOSEF THINGS WHICH PERTAIN TO GOD.LJ# 18 FOR I WILL NOT DARE TO SPEAK OF ANY OF THOSE THINGS WHICH CHRIST HATHD NOT WROUGHT BY ME, TO MAKE THE GENTILES OBEDIENT, BY WORD AND DEED,L# 19 THROUGH MIGHTY SIGNS AND WONDERS, BY THE POWER OF THE SPIRIT OF GOD; SOK THAT FROM JERUSALEM, AND ROUND ABOUT UNTO ILLYRICUM, I HAVE FULLY PREACHED  THE GOSPEL OF CHRIST.M# 20 YEA, SO HAVE I STRIVED TO PREACH THE GOSPEL, NOT WHERE CHRIST WAS NAMED,.2 LEST I SHOULD BUILD UPON ANOTHER MANS FOUNDATION:L# 21 BUT AS IT IS WRITTEN, TO WHOM HE WAS NOT SPOKEN OF, THEY SHALL SEE: AND+ THEY THAT HAVE NOT HEARD SHALL UNDERSTAND.SG# 22 FOR WHICH CAUSE ALSO I HAVE BEEN MUCH HINDERED FROM COMING TO YOU.EK# 23 BUT NOW HAVING NO MORE PLACE IN THESE PARTS, AND HAVING A GREAT DESIRE # THESE MANY YEARS TO COME UNTO YOU;BM# 24 WHENSOEVER I TAKE MY JOURNEY INTO SPAIN, I WILL COME TO YOU: FOR I TRUSTOM TO SEE YOU IN MY JOURNEY, AND TO BE BROUGHT ON MY WAY THITHERWARD BY YOU, IFU. FIRST I BE SOMEWHAT FILLED WITH YOUR COMPANY.=# 25 BUT NOW I GO UNTO JERUSALEM TO MINISTER UNTO THE SAINTS.:G# 26 FOR IT HATH PLEASED THEM OF MACEDONIA AND ACHAIA TO MAKE A CERTAINA9 CONTRIBUTION FOR THE POOR SAINTS WHICH ARE AT JERUSALEM.TH# 27 IT HATH PLEASED THEM VERILY; AND THEIR DEBTORS THEY ARE. FOR IF THEK GENTILES HAVE BEEN MADE PARTAKERS OF THEIR SPIRITUAL THINGS, THEIR DUTY ISN- ALSO TO MINISTER UNTO THEM IN CARNAL THINGS. G# 28 WHEN THEREFORE I HAVE PERFORMED THIS, AND HAVE SEALED TO THEM THIST& FRUIT, I WILL COME BY YOU INTO SPAIN.M# 29 AND I AM SURE THAT, WHEN I COME UNTO YOU, I SHALL COME IN THE FULNESS OFA& THE BLESSING OF THE GOSPEL OF CHRIST.J# 30 NOW I BESEECH YOU, BRETHREN, FOR THE LORD JESUS CHRISTS SAKE, AND FORK THE LOVE OF THE SPIRIT, THAT YE STRIVE TOGETHER WITH ME IN YOUR PRAYERS TO GOD FOR ME;I# 31 THAT I MAY BE DELIVERED FROM THEM THAT DO NOT BELIEVE IN JUDAEA; ANDNJ THAT MY SERVICE WHICH I HAVE FOR JERUSALEM MAY BE ACCEPTED OF THE SAINTS;K# 32 THAT I MAY COME UNTO YOU WITH JOY BY THE WILL OF GOD, AND MAY WITH YOU9 BE REFRESHED.0# 33 NOW THE GOD OF PEACE BE WITH YOU ALL. AMEN. = CHAPTER 16 BI# 1 I COMMEND UNTO YOU PHEBE OUR SISTER, WHICH IS A SERVANT OF THE CHURCH  WHICH IS AT CENCHREA:K# 2 THAT YE RECEIVE HER IN THE LORD, AS BECOMETH SAINTS, AND THAT YE ASSISTAE HER IN WHATSOEVER BUSINESS SHE HATH NEED OF YOU: FOR SHE HATH BEEN AN' SUCCOURER OF MANY, AND OF MYSELF ALSO.I:# 3 GREET PRISCILLA AND AQUILA MY HELPERS IN CHRIST JESUS:M# 4 WHO HAVE FOR MY LIFE LAID DOWN THEIR OWN NECKS: UNTO WHOM NOT ONLY I GIVE3 THANKS, BUT ALSO ALL THE CHURCHES OF THE GENTILES. L# 5 LIKEWISE GREET THE CHURCH THAT IS IN THEIR HOUSE. SALUTE MY WELL-BELOVED9 EPAENETUS, WHO IS THE FIRSTFRUITS OF ACHAIA UNTO CHRIST.Y/# 6 GREET MARY, WHO BESTOWED MUCH LABOUR ON US.DM# 7 SALUTE ANDRONICUS AND JUNIA, MY KINSMEN, AND MY FELLOW-PRISONERS, WHO AREH? OF NOTE AMONG THE APOSTLES, WHO ALSO WERE IN CHRIST BEFORE ME.S)# 8 GREET AMPLIAS MY BELOVED IN THE LORD.:@# 9 SALUTE URBANE, OUR HELPER IN CHRIST, AND STACHYS MY BELOVED.L# 10 SALUTE APELLES APPROVED IN CHRIST. SALUTE THEM WHICH ARE OF ARISTOBULUS HOUSEHOLD.EG# 11 SALUTE HERODION MY KINSMAN. GREET THEM THAT BE OF THE HOUSEHOLD OFS" NARCISSUS, WHICH ARE IN THE LORD.M# 12 SALUTE TRYPHENA AND TRYPHOSA, WHO LABOUR IN THE LORD. SALUTE THE BELOVEDN) PERSIS, WHICH LABOURED MUCH IN THE LORD.S># 13 SALUTE RUFUS CHOSEN IN THE LORD, AND HIS MOTHER AND MINE.K# 14 SALUTE ASYNCRITUS, PHLEGON, HERMAS, PATROBAS, HERMES, AND THE BRETHRENO WHICH ARE WITH THEM.DK# 15 SALUTE PHILOLOGUS, AND JULIA, NEREUS, AND HIS SISTE002E6ED%5%T6%! !R, AND OLYMPAS, ANDC$ ALL THE SAINTS WHICH ARE WITH THEM.M# 16 SALUTE ONE ANOTHER WITH AN HOLY KISS. THE CHURCHES OF CHRIST SALUTE YOU.SE# 17 NOW I BESEECH YOU, BRETHREN, MARK THEM WHICH CAUSE DIVISIONS ANDUI OFFENCES CONTRARY TO THE DOCTRINE WHICH YE HAVE LEARNED; AND AVOID THEM.DJ# 18 FOR THEY THAT ARE SUCH SERVE NOT OUR LORD JESUS CHRIST, BUT THEIR OWNM BELLY; AND BY GOOD WORDS AND FAIR SPEECHES DECEIVE THE HEARTS OF THE SIMPLE.EK# 19 FOR YOUR OBEDIENCE IS COME ABROAD UNTO ALL MEN. I AM GLAD THEREFORE ONOH YOUR BEHALF: BUT YET I WOULD HAVE YOU WISE UNTO THAT WHICH IS GOOD, AND SIMPLE CONCERNING EVIL.I# 20 AND THE GOD OF PEACE SHALL BRUISE SATAN UNDER YOUR FEET SHORTLY. THE 2 GRACE OF OUR LORD JESUS CHRIST BE WITH YOU. AMEN.F# 21 TIMOTHEUS MY WORKFELLOW, AND LUCIUS, AND JASON, AND SOSIPATER, MY KINSMEN, SALUTE YOU.O?# 22 I TERTIUS, WHO WROTE THIS EPISTLE, SALUTE YOU IN THE LORD.RH# 23 GAIUS MINE HOST, AND OF THE WHOLE CHURCH, SALUTETH YOU. ERASTUS THE= CHAMBERLAIN OF THE CITY SALUTETH YOU, AND QUARTUS A BROTHER. ># 24 THE GRACE OF OUR LORD JESUS CHRIST BE WITH YOU ALL. AMEN.L# 25 NOW TO HIM THAT IS OF POWER TO STABLISH YOU ACCORDING TO MY GOSPEL, ANDK THE PREACHING OF JESUS CHRIST, ACCORDING TO THE REVELATION OF THE MYSTERY,T- WHICH WAS KEPT SECRET SINCE THE WORLD BEGAN,AE# 26 BUT NOW IS MADE MANIFEST, AND BY THE SCRIPTURES OF THE PROPHETS,SG ACCORDING TO THE COMMANDMENT OF THE EVERLASTING GOD, MADE KNOWN TO ALLE$ NATIONS FOR THE OBEDIENCE OF FAITH:D# 27 TO GOD ONLY WISE, BE GLORY THROUGH JESUS CHRIST FOR EVER. AMEN. GRACE OF OUR LORD JESUS CHRIST BE WITH YOU ALL. AMEN.L# 25 NOW TO HIM THAT IS OF POWER TO STABLISH YOU ACCORDING TO MY GOSPEL, ANDK THE PREACHING OF JESUS CHRIST, ACCORDING TO THE REVELATION OF THE MYSTERY,T- WHICH WAS KEPT SECRET SINCE THE WORLD BEGAN,AE# 26 BUT NOW IS MADE MANIFEST, AND BY THE SCRIPTURES OF THE PROPHETS,SG ACCORDING TO THE COMMANDMENT OF THE EVERLASTING GOD, MADE KNOWN TO ALLE$ NATIONS FOR THE OBEDIENCE OF FAITH:D# 27 TO GOD ONLY WISE, BE GLORY TH* BOOK46 1CORINTHIANSE = CHAPTER 1 M# 1 PAUL CALLED TO BE AN APOSTLE OF JESUS CHRIST THROUGH THE WILL OF GOD, ANDP SOSTHENES OUR BROTHER,RK# 2 UNTO THE CHURCH OF GOD WHICH IS AT CORINTH, TO THEM THAT ARE SANCTIFIEDLM IN CHRIST JESUS, CALLED TO BE SAINTS, WITH ALL THAT IN EVERY PLACE CALL UPONT< THE NAME OF JESUS CHRIST OUR LORD, BOTH THEIRS AND OURS: ITH# 3 GRACE BE UNTO YOU, AND PEACE, FROM GOD OUR FATHER, AND FROM THE LORD JESUS CHRIST.M# 4 I THANK MY GOD ALWAYS ON YOUR BEHALF, FOR THE GRACE OF GOD WHICH IS GIVENN YOU BY JESUS CHRIST;AL# 5 THAT IN EVERY THING YE ARE ENRICHED BY HIM, IN ALL UTTERANCE, AND IN ALL KNOWLEDGE;O9# 6 EVEN AS THE TESTIMONY OF CHRIST WAS CONFIRMED IN YOU:TI# 7 SO THAT YE COME BEHIND IN NO GIFT; WAITING FOR THE COMING OF OUR LORDH JESUS CHRIST:L# 8 WHO SHALL ALSO CONFIRM YOU UNTO THE END, THAT YE MAY BE BLAMELESS IN THE DAY OF OUR LORD JESUS CHRIST.J# 9 GOD IS FAITHFUL, BY WHOM YE WERE CALLED UNTO THE FELLOWSHIP OF HIS SON JESUS CHRIST OUR LORD. L# 10 NOW I BESEECH YOU, BRETHREN, BY THE NAME OF OUR LORD JESUS CHRIST, THATK YE ALL SPEAK THE SAME THING, AND THAT THERE BE NO DIVISIONS AMONG YOU; BUTVF THAT YE BE PERFECTLY JOINED TOGETHER IN THE SAME MIND AND IN THE SAME JUDGMENT.M# 11 FOR IT HATH BEEN DECLARED UNTO ME OF YOU, MY BRETHREN, BY THEM WHICH AREO= OF THE HOUSE OF CHLOE, THAT THERE ARE CONTENTIONS AMONG YOU.YH# 12 NOW THIS I SAY, THAT EVERY ONE OF YOU SAITH, I AM OF PAUL; AND I OF+ APOLLOS; AND I OF CEPHAS; AND I OF CHRIST.UJ# 13 IS CHRIST DIVIDED? WAS PAUL CRUCIFIED FOR YOU? OR WERE YE BAPTIZED IN THE NAME OF PAUL?D# 14 I THANK GOD THAT I BAPTIZED NONE OF YOU, BUT CRISPUS AND GAIUS;># 15 LEST ANY SHOULD SAY THAT I HAD BAPTIZED IN MINE OWN NAME.H# 16 AND I BAPTIZED ALSO THE HOUSEHOLD OF STEPHANAS: BESIDES, I KNOW NOT WHETHER I BAPTIZED ANY OTHER.J# 17 FOR CHRIST SENT ME NOT TO BAPTIZE, BUT TO PREACH THE GOSPEL: NOT WITHI WISDOM OF WORDS, LEST THE CROSS OF CHRIST SHOULD BE MADE OF NONE EFFECT.CK# 18 FOR THE PREACHING OF THE CROSS IS T00:ED<%X>%+%O-%TADATADATAO THEM THAT PERISH FOOLISHNESS; BUT 0 UNTO US WHICH ARE SAVED IT IS THE POWER OF GOD.M# 19 FOR IT IS WRITTEN, I WILL DESTROY THE WISDOM OF THE WISE, AND WILL BRINGH- TO NOTHING THE UNDERSTANDING OF THE PRUDENT.J# 20 WHERE IS THE WISE? WHERE IS THE SCRIBE? WHERE IS THE DISPUTER OF THIS; WORLD? HATH NOT GOD MADE FOOLISH THE WISDOM OF THIS WORLD?BM# 21 FOR AFTER THAT IN THE WISDOM OF GOD THE WORLD BY WISDOM KNEW NOT GOD, IT G PLEASED GOD BY THE FOOLISHNESS OF PREACHING TO SAVE THEM THAT BELIEVE.SC# 22 FOR THE JEWS REQUIRE A SIGN, AND THE GREEKS SEEK AFTER WISDOM:IM# 23 BUT WE PREACH CHRIST CRUCIFIED, UNTO THE JEWS A STUMBLINGBLOCK, AND UNTOE THE GREEKS FOOLISHNESS;K# 24 BUT UNTO THEM WHICH ARE CALLED, BOTH JEWS AND GREEKS, CHRIST THE POWERS OF GOD, AND THE WISDOM OF GOD.RJ# 25 BECAUSE THE FOOLISHNESS OF GOD IS WISER THAN MEN; AND THE WEAKNESS OF GOD IS STRONGER THAN MEN.L# 26 FOR YE SEE YOUR CALLING, BRETHREN, HOW THAT NOT MANY WISE MEN AFTER THE4 FLESH, NOT MANY MIGHTY, NOT MANY NOBLE, ARE CALLED:H# 27 BUT GOD HATH CHOSEN THE FOOLISH THINGS OF THE WORLD TO CONFOUND THEN WISE; AND GOD HATH CHOSEN THE WEAK THINGS OF THE WORLD TO CONFOUND THE THINGS WHICH ARE MIGHTY;J# 28 AND BASE THINGS OF THE WORLD, AND THINGS WHICH ARE DESPISED, HATH GODK CHOSEN, YEA, AND THINGS WHICH ARE NOT, TO BRING TO NOUGHT THINGS THAT ARE: 0# 29 THAT NO FLESH SHOULD GLORY IN HIS PRESENCE.J# 30 BUT OF HIM ARE YE IN CHRIST JESUS, WHO OF GOD IS MADE UNTO US WISDOM,7 AND RIGHTEOUSNESS, AND SANCTIFICATION, AND REDEMPTION::M# 31 THAT, ACCORDING AS IT IS WRITTEN, HE THAT GLORIETH, LET HIM GLORY IN THES LORD. = CHAPTER 2 N# 1 AND I, BRETHREN, WHEN I CAME TO YOU, CAME NOT WITH EXCELLENCY OF SPEECH OR4 OF WISDOM, DECLARING UNTO YOU THE TESTIMONY OF GOD.L# 2 FOR I DETERMINED NOT TO KNOW ANY THING AMONG YOU, SAVE JESUS CHRIST, AND HIM CRUCIFIED. G# 3 AND I WAS WITH YOU IN WEAKNESS, AND IN FEAR, AND IN MUCH TREMBLING. F# 4 AND MY SPEECH AND MY PREACHING WAS NOT WITH ENTICING WORDS OF MANS9 WISDOM, BUT IN DEMONSTRATION OF THE SPIRIT AND OF POWER: K# 5 THAT YOUR FAITH SHOULD NOT STAND IN THE WISDOM OF MEN, BUT IN THE POWER OF GOD.K# 6 HOWBEIT WE SPEAK WISDOM AMONG THEM THAT ARE PERFECT: YET NOT THE WISDOMDF OF THIS WORLD, NOR OF THE PRINCES OF THIS WORLD, THAT COME TO NOUGHT:H# 7 BUT WE SPEAK THE WISDOM OF GOD IN A MYSTERY, EVEN THE HIDDEN WISDOM,4 WHICH GOD ORDAINED BEFORE THE WORLD UNTO OUR GLORY:M# 8 WHICH NONE OF THE PRINCES OF THIS WORLD KNEW: FOR HAD THEY KNOWN IT, THEYO, WOULD NOT HAVE CRUCIFIED THE LORD OF GLORY.H# 9 BUT AS IT IS WRITTEN, EYE HATH NOT SEEN, NOR EAR HEARD, NEITHER HAVEK ENTERED INTO THE HEART OF MAN, THE THINGS WHICH GOD HATH PREPARED FOR THEMA THAT LOVE HIM.TE# 10 BUT GOD HATH REVEALED THEM UNTO US BY HIS SPIRIT: FOR THE SPIRITT3 SEARCHETH ALL THINGS, YEA, THE DEEP THINGS OF GOD.IK# 11 FOR WHAT MAN KNOWETH THE THINGS OF A MAN, SAVE THE SPIRIT OF MAN WHICHTL IS IN HIM? EVEN SO THE THINGS OF GOD KNOWETH NO MAN, BUT THE SPIRIT OF GOD.L# 12 NOW WE HAVE RECEIVED, NOT THE SPIRIT OF THE WORLD, BUT THE SPIRIT WHICHM IS OF GOD; THAT WE MIGHT KNOW THE THINGS THAT ARE FREELY GIVEN TO US OF GOD.RM# 13 WHICH THINGS ALSO WE SPEAK, NOT IN THE WORDS WHICH MANS WISDOM TEACHETH,BN BUT WHICH THE HOLY GHOST TEACHETH; COMPARING SPIRITUAL THINGS WITH SPIRITUAL.K# 14 BUT THE NATURAL MAN RECEIVETH NOT THE THINGS OF THE SPIRIT OF GOD: FOROJ THEY ARE FOOLISHNESS UNTO HIM: NEITHER CAN HE KNOW THEM, BECAUSE THEY ARE SPIRITUALLY DISCERNED. M# 15 BUT HE THAT IS SPIRITUAL JUDGETH ALL THINGS, YET HE HIMSELF IS JUDGED OF  NO MAN.K# 16 FOR WHO HATH KNOWN THE MIND OF THE LORD, THAT HE MAY INSTRUCT HIM? BUTG WE HAVE THE MIND OF CHRIST. = CHAPTER 3 L# 1 AND I, BRETHREN, COULD NOT SPEAK UNTO YOU AS UNTO SPIRITUAL, BUT AS UNTO& CARNAL, EVEN AS UNTO BABES IN CHRIST.I# 2 I HAVE FED YOU WITH MILK, AND NOT WITH MEAT: FOR HITHERTO YE WERE NOT . ABLE TO BEAR IT, NEITHER YET NOW ARE YE ABLE.F# 3 FOR YE ARE YET CARNAL: FOR WHEREAS THERE IS AMONG YOU ENVYING, AND; STRIFE, AND DIVISIONS, ARE YE NOT CARNAL, AND00BE6ED%5%T6%! ! WALK AS MEN?DK# 4 FOR WHILE ONE SAITH, I AM OF PAUL; AND ANOTHER, I AM OF APOLLOS; ARE YET NOT CARNAL?L# 5 WHO THEN IS PAUL, AND WHO IS APOLLOS, BUT MINISTERS BY WHOM YE BELIEVED,$ EVEN AS THE LORD GAVE TO EVERY MAN??# 6 I HAVE PLANTED, APOLLOS WATERED; BUT GOD GAVE THE INCREASE.UL# 7 SO THEN NEITHER IS HE THAT PLANTETH ANY THING, NEITHER HE THAT WATERETH;" BUT GOD THAT GIVETH THE INCREASE.J# 8 NOW HE THAT PLANTETH AND HE THAT WATERETH ARE ONE: AND EVERY MAN SHALL4 RECEIVE HIS OWN REWARD ACCORDING TO HIS OWN LABOUR.I# 9 FOR WE ARE LABOURERS TOGETHER WITH GOD: YE ARE GODS HUSBANDRY, YE AREN GODS BUILDING.HD# 10 ACCORDING TO THE GRACE OF GOD WHICH IS GIVEN UNTO ME, AS A WISEM MASTERBUILDER, I HAVE LAID THE FOUNDATION, AND ANOTHER BUILDETH THEREON. BUTT3 LET EVERY MAN TAKE HEED HOW HE BUILDETH THEREUPON.HJ# 11 FOR OTHER FOUNDATION CAN NO MAN LAY THAN THAT IS LAID, WHICH IS JESUS CHRIST.M# 12 NOW IF ANY MAN BUILD UPON THIS FOUNDATION GOLD, SILVER, PRECIOUS STONES,C WOOD, HAY, STUBBLE;J# 13 EVERY MANS WORK SHALL BE MADE MANIFEST: FOR THE DAY SHALL DECLARE IT,M BECAUSE IT SHALL BE REVEALED BY FIRE; AND THE FIRE SHALL TRY EVERY MANS WORKD OF WHAT SORT IT IS.M# 14 IF ANY MANS WORK ABIDE WHICH HE HATH BUILT THEREUPON, HE SHALL RECEIVE AT REWARD.K# 15 IF ANY MANS WORK SHALL BE BURNED, HE SHALL SUFFER LOSS: BUT HE HIMSELFD# SHALL BE SAVED; YET SO AS BY FIRE.DJ# 16 KNOW YE NOT THAT YE ARE THE TEMPLE OF GOD, AND THAT THE SPIRIT OF GOD DWELLETH IN YOU?UH# 17 IF ANY MAN DEFILE THE TEMPLE OF GOD, HIM SHALL GOD DESTROY; FOR THE, TEMPLE OF GOD IS HOLY, WHICH TEMPLE YE ARE.K# 18 LET NO MAN DECEIVE HIMSELF. IF ANY MAN AMONG YOU SEEMETH TO BE WISE INT8 THIS WORLD, LET HIM BECOME A FOOL, THAT HE MAY BE WISE.M# 19 FOR THE WISDOM OF THIS WORLD IS FOOLISHNESS WITH GOD. FOR IT IS WRITTEN,R, HE TAKETH THE WISE IN THEIR OWN CRAFTINESS.H# 20 AND AGAIN, THE LORD KNOWETH THE THOUGHTS OF THE WISE, THAT THEY ARE VAIN.A# 21 THEREFORE LET NO MAN GLORY IN MEN. FOR ALL THINGS ARE YOURS;EM# 22 WHETHER PAUL, OR APOLLOS, OR CEPHAS, OR THE WORLD, OR LIFE, OR DEATH, OR 2 THINGS PRESENT, OR THINGS TO COME; ALL ARE YOURS;,# 23 AND YE ARE CHRISTS; AND CHRIST IS GODS. = CHAPTER 4 N# 1 LET A MAN SO ACCOUNT OF US, AS OF THE MINISTERS OF CHRIST, AND STEWARDS OF THE MYSTERIES OF GOD.F# 2 MOREOVER IT IS REQUIRED IN STEWARDS, THAT A MAN BE FOUND FAITHFUL.K# 3 BUT WITH ME IT IS A VERY SMALL THING THAT I SHOULD BE JUDGED OF YOU, OR2 OF MANS JUDGMENT: YEA, I JUDGE NOT MINE OWN SELF.L# 4 FOR I KNOW NOTHING BY MYSELF; YET AM I NOT HEREBY JUSTIFIED: BUT HE THAT JUDGETH ME IS THE LORD.J# 5 THEREFORE JUDGE NOTHING BEFORE THE TIME, UNTIL THE LORD COME, WHO BOTHN WILL BRING TO LIGHT THE HIDDEN THINGS OF DARKNESS, AND WILL MAKE MANIFEST THEE COUNSELS OF THE HEARTS: AND THEN SHALL EVERY MAN HAVE PRAISE OF GOD.RL# 6 AND THESE THINGS, BRETHREN, I HAVE IN A FIGURE TRANSFERRED TO MYSELF ANDI TO APOLLOS FOR YOUR SAKES; THAT YE MIGHT LEARN IN US NOT TO THINK OF MEN M ABOVE THAT WHICH IS WRITTEN, THAT NO ONE OF YOU BE PUFFED UP FOR ONE AGAINSTB ANOTHER.:L# 7 FOR WHO MAKETH THEE TO DIFFER FROM ANOTHER? AND WHAT HAST THOU THAT THOUL DIDST NOT RECEIVE? NOW IF THOU DIDST RECEIVE IT, WHY DOST THOU GLORY, AS IF THOU HADST NOT RECEIVED IT?J# 8 NOW YE ARE FULL, NOW YE ARE RICH, YE HAVE REIGNED AS KINGS WITHOUT US:D AND I WOULD TO GOD YE DID REIGN, THAT WE ALSO MIGHT REIGN WITH YOU.H# 9 FOR I THINK THAT GOD HATH SET FORTH US THE APOSTLES LAST, AS IT WEREG APPOINTED TO DEATH: FOR WE ARE MADE A SPECTACLE UNTO THE WORLD, AND TOD ANGELS, AND TO MEN.K# 10 WE ARE FOOLS FOR CHRISTS SAKE, BUT YE ARE WISE IN CHRIST; WE ARE WEAK,U; BUT YE ARE STRONG; YE ARE HONOURABLE, BUT WE ARE DESPISED. K# 11 EVEN UNTO THIS PRESENT HOUR WE BOTH HUNGER, AND THIRST, AND ARE NAKED,,5 AND ARE BUFFETED, AND HAVE NO CERTAIN DWELLINGPLACE;K# 12 AND LABOUR, WORKING WITH OUR OWN HANDS: BEING REVILED, WE BLESS; BEING  PERSECUTED, WE SUFFER IT:J# 13 BEING DEFAMED, WE INTREAT: WE ARE MADE AS THE FILTH OF THE WORLD, AND1 ARE THE OFFSCOURING OF ALL TH00JED<%X>%+%O-%TADATADATAINGS UNTO THIS DAY. I# 14 I WRITE NOT THESE THINGS TO SHAME YOU, BUT AS MY BELOVED SONS I WARN  YOU.K# 15 FOR THOUGH YE HAVE TEN THOUSAND INSTRUCTERS IN CHRIST, YET HAVE YE NOTTJ MANY FATHERS: FOR IN CHRIST JESUS I HAVE BEGOTTEN YOU THROUGH THE GOSPEL.4# 16 WHEREFORE I BESEECH YOU, BE YE FOLLOWERS OF ME.J# 17 FOR THIS CAUSE HAVE I SENT UNTO YOU TIMOTHEUS, WHO IS MY BELOVED SON,J AND FAITHFUL IN THE LORD, WHO SHALL BRING YOU INTO REMEMBRANCE OF MY WAYS< WHICH BE IN CHRIST, AS I TEACH EVERY WHERE IN EVERY CHURCH.?# 18 NOW SOME ARE PUFFED UP, AS THOUGH I WOULD NOT COME TO YOU.OM# 19 BUT I WILL COME TO YOU SHORTLY, IF THE LORD WILL, AND WILL KNOW, NOT THEH3 SPEECH OF THEM WHICH ARE PUFFED UP, BUT THE POWER.J9# 20 FOR THE KINGDOM OF GOD IS NOT IN WORD, BUT IN POWER.EK# 21 WHAT WILL YE? SHALL I COME UNTO YOU WITH A ROD, OR IN LOVE, AND IN THEY SPIRIT OF MEEKNESS? = CHAPTER 5 I# 1 IT IS REPORTED COMMONLY THAT THERE IS FORNICATION AMONG YOU, AND SUCHSK FORNICATION AS IS NOT SO MUCH AS NAMED AMONG THE GENTILES, THAT ONE SHOULD  HAVE HIS FATHERS WIFE.IM# 2 AND YE ARE PUFFED UP, AND HAVE NOT RATHER MOURNED, THAT HE THAT HATH DONE,. THIS DEED MIGHT BE TAKEN AWAY FROM AMONG YOU.G# 3 FOR I VERILY, AS ABSENT IN BODY, BUT PRESENT IN SPIRIT, HAVE JUDGEDDI ALREADY, AS THOUGH I WERE PRESENT, CONCERNING HIM THAT HATH SO DONE THISN DEED,L# 4 IN THE NAME OF OUR LORD JESUS CHRIST, WHEN YE ARE GATHERED TOGETHER, AND4 MY SPIRIT, WITH THE POWER OF OUR LORD JESUS CHRIST,L# 5 TO DELIVER SUCH AN ONE UNTO SATAN FOR THE DESTRUCTION OF THE FLESH, THAT6 THE SPIRIT MAY BE SAVED IN THE DAY OF THE LORD JESUS.M# 6 YOUR GLORYING IS NOT GOOD. KNOW YE NOT THAT A LITTLE LEAVEN LEAVENETH THEM WHOLE LUMP?L# 7 PURGE OUT THEREFORE THE OLD LEAVEN, THAT YE MAY BE A NEW LUMP, AS YE ARE? UNLEAVENED. FOR EVEN CHRIST OUR PASSOVER IS SACRIFICED FOR US:NJ# 8 THEREFORE LET US KEEP THE FEAST, NOT WITH OLD LEAVEN, NEITHER WITH THEL LEAVEN OF MALICE AND WICKEDNESS; BUT WITH THE UNLEAVENED BREAD OF SINCERITY AND TRUTH.EC# 9 I WROTE UNTO YOU IN AN EPISTLE NOT TO COMPANY WITH FORNICATORS:EG# 10 YET NOT ALTOGETHER WITH THE FORNICATORS OF THIS WORLD, OR WITH THE L COVETOUS, OR EXTORTIONERS, OR WITH IDOLATERS; FOR THEN MUST YE NEEDS GO OUT OF THE WORLD.L# 11 BUT NOW I HAVE WRITTEN UNTO YOU NOT TO KEEP COMPANY, IF ANY MAN THAT ISL CALLED A BROTHER BE A FORNICATOR, OR COVETOUS, OR AN IDOLATOR, OR A RAILER,B OR A DRUNKARD, OR AN EXTORTIONER; WITH SUCH AN ONE NO NOT TO EAT.I# 12 FOR WHAT HAVE I TO DO TO JUDGE THEM ALSO THAT ARE WITHOUT? DO NOT YE  JUDGE THEM THAT ARE WITHIN?I# 13 BUT THEM THAT ARE WITHOUT GOD JUDGETH. THEREFORE PUT AWAY FROM AMONG  YOURSELVES THAT WICKED PERSON.T = CHAPTER 6 J# 1 DARE ANY OF YOU, HAVING A MATTER AGAINST ANOTHER, GO TO LAW BEFORE THE# UNJUST, AND NOT BEFORE THE SAINTS?AJ# 2 DO YE NOT KNOW THAT THE SAINTS SHALL JUDGE THE WORLD? AND IF THE WORLDG SHALL BE JUDGED BY YOU, ARE YE UNWORTHY TO JUDGE THE SMALLEST MATTERS? M# 3 KNOW YE NOT THAT WE SHALL JUDGE ANGELS? HOW MUCH MORE THINGS THAT PERTAINO TO THIS LIFE?L# 4 IF THEN YE HAVE JUDGMENTS OF THINGS PERTAINING TO THIS LIFE, SET THEM TO, JUDGE WHO ARE LEAST ESTEEMED IN THE CHURCH.L# 5 I SPEAK TO YOUR SHAME. IS IT SO, THAT THERE IS NOT A WISE MAN AMONG YOU?> NO, NOT ONE THAT SHALL BE ABLE TO JUDGE BETWEEN HIS BRETHREN?K# 6 BUT BROTHER GOETH TO LAW WITH BROTHER, AND THAT BEFORE THE UNBELIEVERS.J# 7 NOW THEREFORE THERE IS UTTERLY A FAULT AMONG YOU, BECAUSE YE GO TO LAWH ONE WITH ANOTHER. WHY DO YE NOT RATHER TAKE WRONG? WHY DO YE NOT RATHER# SUFFER YOURSELVES TO BE DEFRAUDED?V:# 8 NAY, YE DO WRONG, AND DEFRAUD, AND THAT YOUR BRETHREN.M# 9 KNOW YE NOT THAT THE UNRIGHTEOUS SHALL NOT INHERIT THE KINGDOM OF GOD? BESF NOT DECEIVED: NEITHER FORNICATORS, NOR IDOLATERS, NOR ADULTERERS, NOR4 EFFEMINATE, NOR ABUSERS OF THEMSELVES WITH MANKIND,@# 10 NOR THIEVES, NOR COVETOUS, NOR DRUNKARDS, NOR REVILERS, NOR0 EXTORTIONERS, SHALL INHERIT THE KINGDOM OF GOD.M# 11 AND SUCH WERE SOME OF YOU: BUT YE ARE WASHED, BUT YE ARE SANCTIFIED, BUTYN YE ARE JU00RE6ED%5%T6%! !STIFIED IN THE NAME OF THE LORD JESUS, AND BY THE SPIRIT OF OUR GOD.I# 12 ALL THINGS ARE LAWFUL UNTO ME, BUT ALL THINGS ARE NOT EXPEDIENT: ALLNL THINGS ARE LAWFUL FOR ME, BUT I WILL NOT BE BROUGHT UNDER THE POWER OF ANY.M# 13 MEATS FOR THE BELLY, AND THE BELLY FOR MEATS: BUT GOD SHALL DESTROY BOTHNL IT AND THEM. NOW THE BODY IS NOT FOR FORNICATION, BUT FOR THE LORD; AND THE LORD FOR THE BODY.TK# 14 AND GOD HATH BOTH RAISED UP THE LORD, AND WILL ALSO RAISE UP US BY HIS OWN POWER.DI# 15 KNOW YE NOT THAT YOUR BODIES ARE THE MEMBERS OF CHRIST? SHALL I THENOH TAKE THE MEMBERS OF CHRIST, AND MAKE THEM THE MEMBERS OF AN HARLOT? GOD FORBID.L# 16 WHAT? KNOW YE NOT THAT HE WHICH IS JOINED TO AN HARLOT IS ONE BODY? FOR# TWO, SAITH HE, SHALL BE ONE FLESH. 7# 17 BUT HE THAT IS JOINED UNTO THE LORD IS ONE SPIRIT.MM# 18 FLEE FORNICATION. EVERY SIN THAT A MAN DOETH IS WITHOUT THE BODY; BUT HE : THAT COMMITTETH FORNICATION SINNETH AGAINST HIS OWN BODY.K# 19 WHAT? KNOW YE NOT THAT YOUR BODY IS THE TEMPLE OF THE HOLY GHOST WHICH : IS IN YOU, WHICH YE HAVE OF GOD, AND YE ARE NOT YOUR OWN?L# 20 FOR YE ARE BOUGHT WITH A PRICE: THEREFORE GLORIFY GOD IN YOUR BODY, AND IN YOUR SPIRIT, WHICH ARE GODS. = CHAPTER 7 L# 1 NOW CONCERNING THE THINGS WHEREOF YE WROTE UNTO ME: IT IS GOOD FOR A MAN NOT TO TOUCH A WOMAN.L# 2 NEVERTHELESS, TO AVOID FORNICATION, LET EVERY MAN HAVE HIS OWN WIFE, AND& LET EVERY WOMAN HAVE HER OWN HUSBAND.K# 3 LET THE HUSBAND RENDER UNTO THE WIFE DUE BENEVOLENCE: AND LIKEWISE ALSOM THE WIFE UNTO THE HUSBAND.J# 4 THE WIFE HATH NOT POWER OF HER OWN BODY, BUT THE HUSBAND: AND LIKEWISE? ALSO THE HUSBAND HATH NOT POWER OF HIS OWN BODY, BUT THE WIFE. L# 5 DEFRAUD YE NOT ONE THE OTHER, EXCEPT IT BE WITH CONSENT FOR A TIME, THATL YE MAY GIVE YOURSELVES TO FASTING AND PRAYER; AND COME TOGETHER AGAIN, THAT+ SATAN TEMPT YOU NOT FOR YOUR INCONTINENCY.A;# 6 BUT I SPEAK THIS BY PERMISSION, AND NOT OF COMMANDMENT.J# 7 FOR I WOULD THAT ALL MEN WERE EVEN AS I MYSELF. BUT EVERY MAN HATH HISC PROPER GIFT OF GOD, ONE AFTER THIS MANNER, AND ANOTHER AFTER THAT.NL# 8 I SAY THEREFORE TO THE UNMARRIED AND WIDOWS, IT IS GOOD FOR THEM IF THEY ABIDE EVEN AS I.II# 9 BUT IF THEY CANNOT CONTAIN, LET THEM MARRY: FOR IT IS BETTER TO MARRYE THAN TO BURN.I# 10 AND UNTO THE MARRIED I COMMAND, YET NOT I, BUT THE LORD, LET NOT THEN WIFE DEPART FROM HER HUSBAND:L# 11 BUT AND IF SHE DEPART, LET HER REMAIN UNMARRIED OR BE RECONCILED TO HER4 HUSBAND: AND LET NOT THE HUSBAND PUT AWAY HIS WIFE.K# 12 BUT TO THE REST SPEAK I, NOT THE LORD: IF ANY BROTHER HATH A WIFE THATHI BELIEVETH NOT, AND SHE BE PLEASED TO DWELL WITH HIM, LET HIM NOT PUT HERI AWAY.I# 13 AND THE WOMAN WHICH HATH AN HUSBAND THAT BELIEVETH NOT, AND IF HE BEI2 PLEASED TO DWELL WITH HER, LET HER NOT LEAVE HIM.C# 14 FOR THE UNBELIEVING HUSBAND IS SANCTIFIED BY THE WIFE, AND THEAG UNBELIEVING WIFE IS SANCTIFIED BY THE HUSBAND: ELSE WERE YOUR CHILDREND UNCLEAN; BUT NOW ARE THEY HOLY.L# 15 BUT IF THE UNBELIEVING DEPART, LET HIM DEPART. A BROTHER OR A SISTER ISB NOT UNDER BONDAGE IN SUCH CASES: BUT GOD HATH CALLED US TO PEACE.K# 16 FOR WHAT KNOWEST THOU, O WIFE, WHETHER THOU SHALT SAVE THY HUSBAND? ORM; HOW KNOWEST THOU, O MAN, WHETHER THOU SHALT SAVE THY WIFE?PL# 17 BUT AS GOD HATH DISTRIBUTED TO EVERY MAN, AS THE LORD HATH CALLED EVERY7 ONE, SO LET HIM WALK. AND SO ORDAIN I IN ALL CHURCHES.FK# 18 IS ANY MAN CALLED BEING CIRCUMCISED? LET HIM NOT BECOME UNCIRCUMCISED.R= IS ANY CALLED IN UNCIRCUMCISION? LET HIM NOT BE CIRCUMCISED.TL# 19 CIRCUMCISION IS NOTHING, AND UNCIRCUMCISION IS NOTHING, BUT THE KEEPING OF THE COMMANDMENTS OF GOD.C# 20 LET EVERY MAN ABIDE IN THE SAME CALLING WHEREIN HE WAS CALLED.WL# 21 ART THOU CALLED BEING A SERVANT? CARE NOT FOR IT: BUT IF THOU MAYEST BE MADE FREE, USE IT RATHER.E# 22 FOR HE THAT IS CALLED IN THE LORD, BEING A SERVANT, IS THE LORDS J FREEMAN: LIKEWISE ALSO HE THAT IS CALLED, BEING FREE, IS CHRISTS SERVANT.?# 23 YE ARE BOUGHT WITH A PRICE; BE NOT YE THE SERVANTS OF MEN.EK# 24 BRETHREN, LET EVE00ZED<%X>%+%O-%TADATADATARY MAN, WHEREIN HE IS CALLED, THEREIN ABIDE WITH GOD.BL# 25 NOW CONCERNING VIRGINS I HAVE NO COMMANDMENT OF THE LORD: YET I GIVE MYF JUDGMENT, AS ONE THAT HATH OBTAINED MERCY OF THE LORD TO BE FAITHFUL.K# 26 I SUPPOSE THEREFORE THAT THIS IS GOOD FOR THE PRESENT DISTRESS, I SAY,F$ THAT IT IS GOOD FOR A MAN SO TO BE.L# 27 ART THOU BOUND UNTO A WIFE? SEEK NOT TO BE LOOSED. ART THOU LOOSED FROM A WIFE? SEEK NOT A WIFE. L# 28 BUT AND IF THOU MARRY, THOU HAST NOT SINNED; AND IF A VIRGIN MARRY, SHEJ HATH NOT SINNED. NEVERTHELESS SUCH SHALL HAVE TROUBLE IN THE FLESH: BUT I SPARE YOU.NI# 29 BUT THIS I SAY, BRETHREN, THE TIME IS SHORT: IT REMAINETH, THAT BOTHH1 THEY THAT HAVE WIVES BE AS THOUGH THEY HAD NONE;6K# 30 AND THEY THAT WEEP, AS THOUGH THEY WEPT NOT; AND THEY THAT REJOICE, ASAK THOUGH THEY REJOICED NOT; AND THEY THAT BUY, AS THOUGH THEY POSSESSED NOT;OM# 31 AND THEY THAT USE THIS WORLD, AS NOT ABUSING IT: FOR THE FASHION OF THISH WORLD PASSETH AWAY.J# 32 BUT I WOULD HAVE YOU WITHOUT CAREFULNESS. HE THAT IS UNMARRIED CARETHD FOR THE THINGS THAT BELONG TO THE LORD, HOW HE MAY PLEASE THE LORD:L# 33 BUT HE THAT IS MARRIED CARETH FOR THE THINGS THAT ARE OF THE WORLD, HOW HE MAY PLEASE HIS WIFE.H# 34 THERE IS DIFFERENCE ALSO BETWEEN A WIFE AND A VIRGIN. THE UNMARRIEDK WOMAN CARETH FOR THE THINGS OF THE LORD, THAT SHE MAY BE HOLY BOTH IN BODYSK AND IN SPIRIT: BUT SHE THAT IS MARRIED CARETH FOR THE THINGS OF THE WORLD,O HOW SHE MAY PLEASE HER HUSBAND.K# 35 AND THIS I SPEAK FOR YOUR OWN PROFIT; NOT THAT I MAY CAST A SNARE UPONFH YOU, BUT FOR THAT WHICH IS COMELY, AND THAT YE MAY ATTEND UPON THE LORD WITHOUT DISTRACTION.AF# 36 BUT IF ANY MAN THINK THAT HE BEHAVETH HIMSELF UNCOMELY TOWARD HISK VIRGIN, IF SHE PASS THE FLOWER OF HER AGE, AND NEED SO REQUIRE, LET HIM DOW. WHAT HE WILL, HE SINNETH NOT: LET THEM MARRY.C# 37 NEVERTHELESS HE THAT STANDETH STEDFAST IN HIS HEART, HAVING NOAN NECESSITY, BUT HATH POWER OVER HIS OWN WILL, AND HATH SO DECREED IN HIS HEART* THAT HE WILL KEEP HIS VIRGIN, DOETH WELL.J# 38 SO THEN HE THAT GIVETH HER IN MARRIAGE DOETH WELL; BUT HE THAT GIVETH" HER NOT IN MARRIAGE DOETH BETTER.K# 39 THE WIFE IS BOUND BY THE LAW AS LONG AS HER HUSBAND LIVETH; BUT IF HERHK HUSBAND BE DEAD, SHE IS AT LIBERTY TO BE MARRIED TO WHOM SHE WILL; ONLY IND THE LORD.L# 40 BUT SHE IS HAPPIER IF SHE SO ABIDE, AFTER MY JUDGMENT: AND I THINK ALSO THAT I HAVE THE SPIRIT OF GOD.N = CHAPTER 8 G# 1 NOW AS TOUCHING THINGS OFFERED UNTO IDOLS, WE KNOW THAT WE ALL HAVEW7 KNOWLEDGE. KNOWLEDGE PUFFETH UP, BUT CHARITY EDIFIETH.VM# 2 AND IF ANY MAN THINK THAT HE KNOWETH ANY THING, HE KNOWETH NOTHING YET ASB HE OUGHT TO KNOW.6# 3 BUT IF ANY MAN LOVE GOD, THE SAME IS KNOWN OF HIM.J# 4 AS CONCERNING THEREFORE THE EATING OF THOSE THINGS THAT ARE OFFERED INM SACRIFICE UNTO IDOLS, WE KNOW THAT AN IDOL IS NOTHING IN THE WORLD, AND THATE! THERE IS NONE OTHER GOD BUT ONE.TL# 5 FOR THOUGH THERE BE THAT ARE CALLED GODS, WHETHER IN HEAVEN OR IN EARTH,) (AS THERE BE GODS MANY, AND LORDS MANY,)NK# 6 BUT TO US THERE IS BUT ONE GOD, THE FATHER, OF WHOM ARE ALL THINGS, ANDKM WE IN HIM; AND ONE LORD JESUS CHRIST, BY WHOM ARE ALL THINGS, AND WE BY HIM.YC# 7 HOWBEIT THERE IS NOT IN EVERY MAN THAT KNOWLEDGE: FOR SOME WITH N CONSCIENCE OF THE IDOL UNTO THIS HOUR EAT IT AS A THING OFFERED UNTO AN IDOL;, AND THEIR CONSCIENCE BEING WEAK IS DEFILED.I# 8 BUT MEAT COMMENDETH US NOT TO GOD: FOR NEITHER, IF WE EAT, ARE WE THEE2 BETTER; NEITHER, IF WE EAT NOT, ARE WE THE WORSE.L# 9 BUT TAKE HEED LEST BY ANY MEANS THIS LIBERTY OF YOURS BECOME A STUMBLING BLOCK TO THEM THAT ARE WEAK.J# 10 FOR IF ANY MAN SEE THEE WHICH HAST KNOWLEDGE SIT AT MEAT IN THE IDOLSK TEMPLE, SHALL NOT THE CONSCIENCE OF HIM WHICH IS WEAK BE EMBOLDENED TO EATN) THOSE THINGS WHICH ARE OFFERED TO IDOLS;SM# 11 AND THROUGH THY KNOWLEDGE SHALL THE WEAK BROTHER PERISH, FOR WHOM CHRIST  DIED?B# 12 BUT WHEN YE SIN SO AGAINST THE BRETHREN, AND WOUND THEIR WEAK# CONSCIENCE, YE SIN AGAINST CHRIST. L# 13 WHEREFORE, IF MEAT MAKE MY BROTHER 00bE6ED%5%T6%! !TO OFFEND, I WILL EAT NO FLESH WHILE6 THE WORLD STANDETH, LEST I MAKE MY BROTHER TO OFFEND. = CHAPTER 9 K# 1 AM I AM NOT AN APOSTLE? AM I NOT FREE? HAVE I NOT SEEN JESUS CHRIST OURC& LORD? ARE NOT YE MY WORK IN THE LORD?J# 2 IF I BE NOT AN APOSTLE UNTO OTHERS, YET DOUBTLESS I AM TO YOU: FOR THE- SEAL OF MINE APOSTLESHIP ARE YE IN THE LORD.M3# 3 MINE ANSWER TO THEM THAT DO EXAMINE ME IS THIS, *# 4 HAVE WE NOT POWER TO EAT AND TO DRINK?F# 5 HAVE WE NOT POWER TO LEAD ABOUT A SISTER, A WIFE, AS WELL AS OTHER7 APOSTLES, AND AS THE BRETHREN OF THE LORD, AND CEPHAS? A# 6 OR I ONLY AND BARNABAS, HAVE NOT WE POWER TO FORBEAR WORKING?TM# 7 WHO GOETH A WARFARE ANY TIME AT HIS OWN CHARGES? WHO PLANTETH A VINEYARD, L AND EATETH NOT OF THE FRUIT THEREOF? OR WHO FEEDETH A FLOCK, AND EATETH NOT OF THE MILK OF THE FLOCK?D# 8 SAY I THESE THINGS AS A MAN? OR SAITH NOT THE LAW THE SAME ALSO?M# 9 FOR IT IS WRITTEN IN THE LAW OF MOSES, THOU SHALT NOT MUZZLE THE MOUTH OFE@ THE OX THAT TREADETH OUT THE CORN. DOTH GOD TAKE CARE FOR OXEN?K# 10 OR SAITH HE IT ALTOGETHER FOR OUR SAKES? FOR OUR SAKES, NO DOUBT, THISNG IS WRITTEN: THAT HE THAT PLOWETH SHOULD PLOW IN HOPE; AND THAT HE THAT 2 THRESHETH IN HOPE SHOULD BE PARTAKER OF HIS HOPE.I# 11 IF WE HAVE SOWN UNTO YOU SPIRITUAL THINGS, IS IT A GREAT THING IF WEI SHALL REAP YOUR CARNAL THINGS? F# 12 IF OTHERS BE PARTAKERS OF THIS POWER OVER YOU, ARE NOT WE RATHER?I NEVERTHELESS WE HAVE NOT USED THIS POWER; BUT SUFFER ALL THINGS, LEST WET$ SHOULD HINDER THE GOSPEL OF CHRIST.J# 13 DO YE NOT KNOW THAT THEY WHICH MINISTER ABOUT HOLY THINGS LIVE OF THEN THINGS OF THE TEMPLE? AND THEY WHICH WAIT AT THE ALTAR ARE PARTAKERS WITH THE ALTAR?L# 14 EVEN SO HATH THE LORD ORDAINED THAT THEY WHICH PREACH THE GOSPEL SHOULD LIVE OF THE GOSPEL.G# 15 BUT I HAVE USED NONE OF THESE THINGS: NEITHER HAVE I WRITTEN THESEEM THINGS, THAT IT SHOULD BE SO DONE UNTO ME: FOR IT WERE BETTER FOR ME TO DIE,V0 THAN THAT ANY MAN SHOULD MAKE MY GLORYING VOID.D# 16 FOR THOUGH I PREACH THE GOSPEL, I HAVE NOTHING TO GLORY OF: FORL NECESSITY IS LAID UPON ME; YEA, WOE IS UNTO ME, IF I PREACH NOT THE GOSPEL!I# 17 FOR IF I DO THIS THING WILLINGLY, I HAVE A REWARD: BUT IF AGAINST MYH9 WILL, A DISPENSATION OF THE GOSPEL IS COMMITTED UNTO ME.UI# 18 WHAT IS MY REWARD THEN? VERILY THAT, WHEN I PREACH THE GOSPEL, I MAYRK MAKE THE GOSPEL OF CHRIST WITHOUT CHARGE, THAT I ABUSE NOT MY POWER IN THER GOSPEL.K# 19 FOR THOUGH I BE FREE FROM ALL MEN, YET HAVE I MADE MYSELF SERVANT UNTOO! ALL, THAT I MIGHT GAIN THE MORE.HM# 20 AND UNTO THE JEWS I BECAME AS A JEW, THAT I MIGHT GAIN THE JEWS; TO THEMAJ THAT ARE UNDER THE LAW, AS UNDER THE LAW, THAT I MIGHT GAIN THEM THAT ARE UNDER THE LAW;HL# 21 TO THEM THAT ARE WITHOUT LAW, AS WITHOUT LAW, (BEING NOT WITHOUT LAW TOK GOD, BUT UNDER THE LAW TO CHRIST,) THAT I MIGHT GAIN THEM THAT ARE WITHOUTO LAW.TL# 22 TO THE WEAK BECAME I AS WEAK, THAT I MIGHT GAIN THE WEAK: I AM MADE ALL8 THINGS TO ALL MEN, THAT I MIGHT BY ALL MEANS SAVE SOME.I# 23 AND THIS I DO FOR THE GOSPELS SAKE, THAT I MIGHT BE PARTAKER THEREOFA WITH YOU.M# 24 KNOW YE NOT THAT THEY WHICH RUN IN A RACE RUN ALL, BUT ONE RECEIVETH THE # PRIZE? SO RUN, THAT YE MAY OBTAIN.EL# 25 AND EVERY MAN THAT STRIVETH FOR THE MASTERY IS TEMPERATE IN ALL THINGS.G NOW THEY DO IT TO OBTAIN A CORRUPTIBLE CROWN; BUT WE AN INCORRUPTIBLE.RH# 26 I THEREFORE SO RUN, NOT AS UNCERTAINLY; SO FIGHT I, NOT AS ONE THAT BEATETH THE AIR:AM# 27 BUT I KEEP UNDER MY BODY, AND BRING IT INTO SUBJECTION: LEST THAT BY ANYOF MEANS, WHEN I HAVE PREACHED TO OTHERS, I MYSELF SHOULD BE A CASTAWAY. = CHAPTER 10 TL# 1 MOREOVER, BRETHREN, I WOULD NOT THAT YE SHOULD BE IGNORANT, HOW THAT ALLB OUR FATHERS WERE UNDER THE CLOUD, AND ALL PASSED THROUGH THE SEA;A# 2 AND WERE ALL BAPTIZED UNTO MOSES IN THE CLOUD AND IN THE SEA;I,# 3 AND DID ALL EAT THE SAME SPIRITUAL MEAT;F# 4 AND DID ALL DRINK THE SAME SPIRITUAL DRINK: FOR THEY DRANK OF THAT= SPIRITUAL ROCK THAT FOLLOWED THEM: AND THAT ROCK WAS CHRIST.SL# 5 BUT WITH MANY OF THEM 00jED<%X>%+%O-%TADATADATAGOD WAS NOT WELL PLEASED: FOR THEY WERE OVERTHROWN IN THE WILDERNESS..H# 6 NOW THESE THINGS WERE OUR EXAMPLES, TO THE INTENT WE SHOULD NOT LUST( AFTER EVIL THINGS, AS THEY ALSO LUSTED.H# 7 NEITHER BE YE IDOLATERS, AS WERE SOME OF THEM; AS IT IS WRITTEN, THE7 PEOPLE SAT DOWN TO EAT AND DRINK, AND ROSE UP TO PLAY. M# 8 NEITHER LET US COMMIT FORNICATION, AS SOME OF THEM COMMITTED, AND FELL INO# ONE DAY THREE AND TWENTY THOUSAND. G# 9 NEITHER LET US TEMPT CHRIST, AS SOME OF THEM ALSO TEMPTED, AND WERE  DESTROYED OF SERPENTS. L# 10 NEITHER MURMUR YE, AS SOME OF THEM ALSO MURMURED, AND WERE DESTROYED OF THE DESTROYER.IH# 11 NOW ALL THESE THINGS HAPPENED UNTO THEM FOR ENSAMPLES: AND THEY AREF WRITTEN FOR OUR ADMONITION, UPON WHOM THE ENDS OF THE WORLD ARE COME.H# 12 WHEREFORE LET HIM THAT THINKETH HE STANDETH TAKE HEED LEST HE FALL.M# 13 THERE HATH NO TEMPTATION TAKEN YOU BUT SUCH AS IS COMMON TO MAN: BUT GODTK IS FAITHFUL, WHO WILL NOT SUFFER YOU TO BE TEMPTED ABOVE THAT YE ARE ABLE;EL BUT WILL WITH THE TEMPTATION ALSO MAKE A WAY TO ESCAPE, THAT YE MAY BE ABLE TO BEAR IT.6# 14 WHEREFORE, MY DEARLY BELOVED, FLEE FROM IDOLATRY.1# 15 I SPEAK AS TO WISE MEN; JUDGE YE WHAT I SAY. M# 16 THE CUP OF BLESSING WHICH WE BLESS, IS IT NOT THE COMMUNION OF THE BLOOD.L OF CHRIST? THE BREAD WHICH WE BREAK, IS IT NOT THE COMMUNION OF THE BODY OF CHRIST?L# 17 FOR WE BEING MANY ARE ONE BREAD, AND ONE BODY: FOR WE ARE ALL PARTAKERS OF THAT ONE BREAD.EL# 18 BEHOLD ISRAEL AFTER THE FLESH: ARE NOT THEY WHICH EAT OF THE SACRIFICES PARTAKERS OF THE ALTAR?M# 19 WHAT SAY I THEN? THAT THE IDOL IS ANY THING, OR THAT WHICH IS OFFERED INI! SACRIFICE TO IDOLS IS ANY THING?EL# 20 BUT I SAY, THAT THE THINGS WHICH THE GENTILES SACRIFICE, THEY SACRIFICEJ TO DEVILS, AND NOT TO GOD: AND I WOULD NOT THAT YE SHOULD HAVE FELLOWSHIP WITH DEVILS.FM# 21 YE CANNOT DRINK THE CUP OF THE LORD, AND THE CUP OF DEVILS: YE CANNOT BE : PARTAKERS OF THE LORDS TABLE, AND OF THE TABLE OF DEVILS.A# 22 DO WE PROVOKE THE LORD TO JEALOUSY? ARE WE STRONGER THAN HE?AH# 23 ALL THINGS ARE LAWFUL FOR ME, BUT ALL THINGS ARE NOT EXPEDIENT: ALL4 THINGS ARE LAWFUL FOR ME, BUT ALL THINGS EDIFY NOT.<# 24 LET NO MAN SEEK HIS OWN, BUT EVERY MAN ANOTHERS WEALTH.I# 25 WHATSOEVER IS SOLD IN THE SHAMBLES, THAT EAT, ASKING NO QUESTION FOR  CONSCIENCE SAKE:H9# 26 FOR THE EARTH IS THE LORDS, AND THE FULNESS THEREOF.DK# 27 IF ANY OF THEM THAT BELIEVE NOT BID YOU TO A FEAST, AND YE BE DISPOSED L TO GO; WHATSOEVER IS SET BEFORE YOU, EAT, ASKING NO QUESTION FOR CONSCIENCE SAKE.J# 28 BUT IF ANY MAN SAY UNTO YOU, THIS IS OFFERED IN SACRIFICE UNTO IDOLS,L EAT NOT FOR HIS SAKE THAT SHEWED IT, AND FOR CONSCIENCE SAKE: FOR THE EARTH' IS THE LORDS, AND THE FULNESS THEREOF: F# 29 CONSCIENCE, I SAY, NOT THINE OWN, BUT OF THE OTHER: FOR WHY IS MY+ LIBERTY JUDGED OF ANOTHER MANS CONSCIENCE?HJ# 30 FOR IF I BY GRACE BE A PARTAKER, WHY AM I EVIL SPOKEN OF FOR THAT FOR WHICH I GIVE THANKS? K# 31 WHETHER THEREFORE YE EAT, OR DRINK, OR WHATSOEVER YE DO, DO ALL TO THEO GLORY OF GOD.L# 32 GIVE NONE OFFENCE, NEITHER TO THE JEWS, NOR TO THE GENTILES, NOR TO THE CHURCH OF GOD:HM# 33 EVEN AS I PLEASE ALL MEN IN ALL THINGS, NOT SEEKING MINE OWN PROFIT, BUTA, THE PROFIT OF MANY, THAT THEY MAY BE SAVED. = CHAPTER 11 W7# 1 BE YE FOLLOWERS OF ME, EVEN AS I ALSO AM OF CHRIST.OK# 2 NOW I PRAISE YOU, BRETHREN, THAT YE REMEMBER ME IN ALL THINGS, AND KEEPP, THE ORDINANCES, AS I DELIVERED THEM TO YOU.L# 3 BUT I WOULD HAVE YOU KNOW, THAT THE HEAD OF EVERY MAN IS CHRIST; AND THE= HEAD OF THE WOMAN IS THE MAN; AND THE HEAD OF CHRIST IS GOD.RK# 4 EVERY MAN PRAYING OR PROPHESYING, HAVING HIS HEAD COVERED, DISHONOURETH HIS HEAD.G# 5 BUT EVERY WOMAN THAT PRAYETH OR PROPHESIETH WITH HER HEAD UNCOVEREDBG DISHONOURETH HER HEAD: FOR THAT IS EVEN ALL ONE AS IF SHE WERE SHAVEN. J# 6 FOR IF THE WOMAN BE NOT COVERED, LET HER ALSO BE SHORN: BUT IF IT BE A= SHAME FOR A WOMAN TO BE SHORN OR SHAVEN, LET HER BE COVERED.UH# 7 FOR A MAN INDEED OUGHT NOT TO COVER HIS HEAD, FORASMUC00rE6ED%5%T6%! !H AS HE IS THE? IMAGE AND GLORY OF GOD: BUT THE WOMAN IS THE GLORY OF THE MAN. ># 8 FOR THE MAN IS NOT OF THE WOMAN: BUT THE WOMAN OF THE MAN.I# 9 NEITHER WAS THE MAN CREATED FOR THE WOMAN; BUT THE WOMAN FOR THE MAN.HL# 10 FOR THIS CAUSE OUGHT THE WOMAN TO HAVE POWER ON HER HEAD BECAUSE OF THE ANGELS.I# 11 NEVERTHELESS NEITHER IS THE MAN WITHOUT THE WOMAN, NEITHER THE WOMAN  WITHOUT THE MAN, IN THE LORD.J# 12 FOR AS THE WOMAN IS OF THE MAN, EVEN SO IS THE MAN ALSO BY THE WOMAN; BUT ALL THINGS OF GOD.HL# 13 JUDGE IN YOURSELVES: IS IT COMELY THAT A WOMAN PRAY UNTO GOD UNCOVERED?M# 14 DOTH NOT EVEN NATURE ITSELF TEACH YOU, THAT, IF A MAN HAVE LONG HAIR, ITH IS A SHAME UNTO HIM?OI# 15 BUT IF A WOMAN HAVE LONG HAIR, IT IS A GLORY TO HER: FOR HER HAIR ISV GIVEN HER FOR A COVERING.K# 16 BUT IF ANY MAN SEEM TO BE CONTENTIOUS, WE HAVE NO SUCH CUSTOM, NEITHERT THE CHURCHES OF GOD.TG# 17 NOW IN THIS THAT I DECLARE UNTO YOU I PRAISE YOU NOT, THAT YE COMEH0 TOGETHER NOT FOR THE BETTER, BUT FOR THE WORSE.M# 18 FOR FIRST OF ALL, WHEN YE COME TOGETHER IN THE CHURCH, I HEAR THAT THERE1 BE DIVISIONS AMONG YOU; AND I PARTLY BELIEVE IT.FL# 19 FOR THERE MUST BE ALSO HERESIES AMONG YOU, THAT THEY WHICH ARE APPROVED MAY BE MADE MANIFEST AMONG YOU.K# 20 WHEN YE COME TOGETHER THEREFORE INTO ONE PLACE, THIS IS NOT TO EAT THEN LORDS SUPPER.K# 21 FOR IN EATING EVERY ONE TAKETH BEFORE OTHER HIS OWN SUPPER: AND ONE ISE HUNGRY, AND ANOTHER IS DRUNKEN.G# 22 WHAT? HAVE YE NOT HOUSES TO EAT AND TO DRINK IN? OR DESPISE YE THEFN CHURCH OF GOD, AND SHAME THEM THAT HAVE NOT? WHAT SHALL I SAY TO YOU? SHALL I& PRAISE YOU IN THIS? I PRAISE YOU NOT.J# 23 FOR I HAVE RECEIVED OF THE LORD THAT WHICH ALSO I DELIVERED UNTO YOU,H THAT THE LORD JESUS THE SAME NIGHT IN WHICH HE WAS BETRAYED TOOK BREAD:L# 24 AND WHEN HE HAD GIVEN THANKS, HE BRAKE IT, AND SAID, TAKE, EAT: THIS IS@ MY BODY, WHICH IS BROKEN FOR YOU: THIS DO IN REMEMBRANCE OF ME.L# 25 AFTER THE SAME MANNER ALSO HE TOOK THE CUP, WHEN HE HAD SUPPED, SAYING,N THIS CUP IS THE NEW TESTAMENT IN MY BLOOD: THIS DO YE, AS OFT AS YE DRINK IT, IN REMEMBRANCE OF ME.J# 26 FOR AS OFTEN AS YE EAT THIS BREAD, AND DRINK THIS CUP, YE DO SHEW THE LORDS DEATH TILL HE COME.H# 27 WHEREFORE WHOSOEVER SHALL EAT THIS BREAD, AND DRINK THIS CUP OF THEE LORD, UNWORTHILY, SHALL BE GUILTY OF THE BODY AND BLOOD OF THE LORD.EI# 28 BUT LET A MAN EXAMINE HIMSELF, AND SO LET HIM EAT OF THAT BREAD, ANDF DRINK OF THAT CUP.SD# 29 FOR HE THAT EATETH AND DRINKETH UNWORTHILY, EATETH AND DRINKETH5 DAMNATION TO HIMSELF, NOT DISCERNING THE LORDS BODY.AG# 30 FOR THIS CAUSE MANY ARE WEAK AND SICKLY AMONG YOU, AND MANY SLEEP.B># 31 FOR IF WE WOULD JUDGE OURSELVES, WE SHOULD NOT BE JUDGED.M# 32 BUT WHEN WE ARE JUDGED, WE ARE CHASTENED OF THE LORD, THAT WE SHOULD NOT BE CONDEMNED WITH THE WORLD.LH# 33 WHEREFORE, MY BRETHREN, WHEN YE COME TOGETHER TO EAT, TARRY ONE FOR ANOTHER.TJ# 34 AND IF ANY MAN HUNGER, LET HIM EAT AT HOME; THAT YE COME NOT TOGETHERA UNTO CONDEMNATION. AND THE REST WILL I SET IN ORDER WHEN I COME., = CHAPTER 12 L# 1 NOW CONCERNING SPIRITUAL GIFTS, BRETHREN, I WOULD NOT HAVE YOU IGNORANT.K# 2 YE KNOW THAT YE WERE GENTILES, CARRIED AWAY UNTO THESE DUMB IDOLS, EVEN AS YE WERE LED.M# 3 WHEREFORE I GIVE YOU TO UNDERSTAND, THAT NO MAN SPEAKING BY THE SPIRIT OFHL GOD CALLETH JESUS ACCURSED: AND THAT NO MAN CAN SAY THAT JESUS IS THE LORD, BUT BY THE HOLY GHOST.4<# 4 NOW THERE ARE DIVERSITIES OF GIFTS, BUT THE SAME SPIRIT.D# 5 AND THERE ARE DIFFERENCES OF ADMINISTRATIONS, BUT THE SAME LORD.I# 6 AND THERE ARE DIVERSITIES OF OPERATIONS, BUT IT IS THE SAME GOD WHICHL WORKETH ALL IN ALL.G# 7 BUT THE MANIFESTATION OF THE SPIRIT IS GIVEN TO EVERY MAN TO PROFIT, WITHAL.M# 8 FOR TO ONE IS GIVEN BY THE SPIRIT THE WORD OF WISDOM; TO ANOTHER THE WORD ! OF KNOWLEDGE BY THE SAME SPIRIT;AK# 9 TO ANOTHER FAITH BY THE SAME SPIRIT; TO ANOTHER THE GIFTS OF HEALING BYO THE SAME SPIRIT; H# 10 TO ANOTHER THE WORKING OF MIRACLES; TO ANOTHER PROPHECY; TO ANOTHERJ DISCERNING OF00zED<%X>%+%O-%TADATADATA SPIRITS; TO ANOTHER DIVERS KINDS OF TONGUES; TO ANOTHER THE INTERPRETATION OF TONGUES:MH# 11 BUT ALL THESE WORKETH THAT ONE AND THE SELFSAME SPIRIT, DIVIDING TO EVERY MAN SEVERALLY AS HE WILL.J# 12 FOR AS THE BODY IS ONE, AND HATH MANY MEMBERS, AND ALL THE MEMBERS OF< THAT ONE BODY, BEING MANY, ARE ONE BODY: SO ALSO IS CHRIST.L# 13 FOR BY ONE SPIRIT ARE WE ALL BAPTIZED INTO ONE BODY, WHETHER WE BE JEWSN OR GENTILES, WHETHER WE BE BOND OR FREE; AND HAVE BEEN ALL MADE TO DRINK INTO ONE SPIRIT..# 14 FOR THE BODY IS NOT ONE MEMBER, BUT MANY.L# 15 IF THE FOOT SHALL SAY, BECAUSE I AM NOT THE HAND, I AM NOT OF THE BODY;! IS IT THEREFORE NOT OF THE BODY?DH# 16 AND IF THE EAR SHALL SAY, BECAUSE I AM NOT THE EYE, I AM NOT OF THE' BODY; IS IT THEREFORE NOT OF THE BODY?FM# 17 IF THE WHOLE BODY WERE AN EYE, WHERE WERE THE HEARING? IF THE WHOLE WERE " HEARING, WHERE WERE THE SMELLING?J# 18 BUT NOW HATH GOD SET THE MEMBERS EVERY ONE OF THEM IN THE BODY, AS IT HATH PLEASED HIM.:# 19 AND IF THEY WERE ALL ONE MEMBER, WHERE WERE THE BODY?5# 20 BUT NOW ARE THEY MANY MEMBERS, YET BUT ONE BODY.TL# 21 AND THE EYE CANNOT SAY UNTO THE HAND, I HAVE NO NEED OF THEE: NOR AGAIN- THE HEAD TO THE FEET, I HAVE NO NEED OF YOU.,L# 22 NAY, MUCH MORE THOSE MEMBERS OF THE BODY, WHICH SEEM TO BE MORE FEEBLE, ARE NECESSARY: I# 23 AND THOSE MEMBERS OF THE BODY, WHICH WE THINK TO BE LESS HONOURABLE,NL UPON THESE WE BESTOW MORE ABUNDANT HONOUR; AND OUR UNCOMELY PARTS HAVE MORE ABUNDANT COMELINESS. F# 24 FOR OUR COMELY PARTS HAVE NO NEED: BUT GOD HATH TEMPERED THE BODYG TOGETHER, HAVING GIVEN MORE ABUNDANT HONOUR TO THAT PART WHICH LACKED.OL# 25 THAT THERE SHOULD BE NO SCHISM IN THE BODY; BUT THAT THE MEMBERS SHOULD$ HAVE THE SAME CARE ONE FOR ANOTHER.J# 26 AND WHETHER ONE MEMBER SUFFER, ALL THE MEMBERS SUFFER WITH IT; OR ONE5 MEMBER BE HONOURED, ALL THE MEMBERS REJOICE WITH IT.L># 27 NOW YE ARE THE BODY OF CHRIST, AND MEMBERS IN PARTICULAR.E# 28 AND GOD HATH SET SOME IN THE CHURCH, FIRST APOSTLES, SECONDARILYMI PROPHETS, THIRDLY TEACHERS, AFTER THAT MIRACLES, THEN GIFTS OF HEALINGS,I, HELPS, GOVERNMENTS, DIVERSITIES OF TONGUES.M# 29 ARE ALL APOSTLES? ARE ALL PROPHETS? ARE ALL TEACHERS? ARE ALL WORKERS OFH MIRACLES?E# 30 HAVE ALL THE GIFTS OF HEALING? DO ALL SPEAK WITH TONGUES? DO ALL INTERPRET?UG# 31 BUT COVET EARNESTLY THE BEST GIFTS: AND YET SHEW I UNTO YOU A MORET EXCELLENT WAY.R = CHAPTER 13 HF# 1 THOUGH I SPEAK WITH THE TONGUES OF MEN AND OF ANGELS, AND HAVE NOT> CHARITY, I AM BECOME AS SOUNDING BRASS, OR A TINKLING CYMBAL.M# 2 AND THOUGH I HAVE THE GIFT OF PROPHECY, AND UNDERSTAND ALL MYSTERIES, ANDON ALL KNOWLEDGE; AND THOUGH I HAVE ALL FAITH, SO THAT I COULD REMOVE MOUNTAINS,$ AND HAVE NOT CHARITY, I AM NOTHING.K# 3 AND THOUGH I BESTOW ALL MY GOODS TO FEED THE POOR, AND THOUGH I GIVE MYBB BODY TO BE BURNED, AND HAVE NOT CHARITY, IT PROFITETH ME NOTHING.E# 4 CHARITY SUFFERETH LONG, AND IS KIND; CHARITY ENVIETH NOT; CHARITYF' VAUNTETH NOT ITSELF, IS NOT PUFFED UP,YG# 5 DOTH NOT BEHAVE ITSELF UNSEEMLY, SEEKETH NOT HER OWN, IS NOT EASILYH PROVOKED, THINKETH NO EVIL;:# 6 REJOICETH NOT IN INIQUITY, BUT REJOICETH IN THE TRUTH;M# 7 BEARETH ALL THINGS, BELIEVETH ALL THINGS, HOPETH ALL THINGS, ENDURETH ALL  THINGS.L# 8 CHARITY NEVER FAILETH: BUT WHETHER THERE BE PROPHECIES, THEY SHALL FAIL;K WHETHER THERE BE TONGUES, THEY SHALL CEASE; WHETHER THERE BE KNOWLEDGE, ITT SHALL VANISH AWAY. 1# 9 FOR WE KNOW IN PART, AND WE PROPHESY IN PART.OM# 10 BUT WHEN THAT WHICH IS PERFECT IS COME, THEN THAT WHICH IS IN PART SHALLH BE DONE AWAY.G# 11 WHEN I WAS A CHILD, I SPAKE AS A CHILD, I UNDERSTOOD AS A CHILD, IRI THOUGHT AS A CHILD: BUT WHEN I BECAME A MAN, I PUT AWAY CHILDISH THINGS.HI# 12 FOR NOW WE SEE THROUGH A GLASS, DARKLY; BUT THEN FACE TO FACE: NOW IR= KNOW IN PART; BUT THEN SHALL I KNOW EVEN AS ALSO I AM KNOWN.EK# 13 AND NOW ABIDETH FAITH, HOPE, CHARITY, THESE THREE; BUT THE GREATEST OF  THESE IS CHARITY. = CHAPTER 14 EL# 1 FOLLOW AFTER CHARITY, AND DESIRE SPIRITUAL GIFTS, BUT RATHER00E6ED%5%T6%! ! THAT YE MAY PROPHESY.M# 2 FOR HE THAT SPEAKETH IN AN UNKNOWN TONGUE SPEAKETH NOT UNTO MEN, BUT UNTOSE GOD: FOR NO MAN UNDERSTANDETH HIM; HOWBEIT IN THE SPIRIT HE SPEAKETHC MYSTERIES.SA# 3 BUT HE THAT PROPHESIETH SPEAKETH UNTO MEN TO EDIFICATION, ANDA EXHORTATION, AND COMFORT.G# 4 HE THAT SPEAKETH IN AN UNKNOWN TONGUE EDIFIETH HIMSELF; BUT HE THATH! PROPHESIETH EDIFIETH THE CHURCH.HM# 5 I WOULD THAT YE ALL SPAKE WITH TONGUES BUT RATHER THAT YE PROPHESIED: FORNM GREATER IS HE THAT PROPHESIETH THAN HE THAT SPEAKETH WITH TONGUES, EXCEPT HEP1 INTERPRET, THAT THE CHURCH MAY RECEIVE EDIFYING.BI# 6 NOW, BRETHREN, IF I COME UNTO YOU SPEAKING WITH TONGUES, WHAT SHALL IKD PROFIT YOU, EXCEPT I SHALL SPEAK TO YOU EITHER BY REVELATION, OR BY. KNOWLEDGE, OR BY PROPHESYING, OR BY DOCTRINE?K# 7 AND EVEN THINGS WITHOUT LIFE GIVING SOUND, WHETHER PIPE OR HARP, EXCEPTHN THEY GIVE A DISTINCTION IN THE SOUNDS, HOW SHALL IT BE KNOWN WHAT IS PIPED OR HARPED?L# 8 FOR IF THE TRUMPET GIVE AN UNCERTAIN SOUND, WHO SHALL PREPARE HIMSELF TO THE BATTLE? ITHB# 9 SO LIKEWISE YE, EXCEPT YE UTTER BY THE TONGUE WORDS EASY TO BEN UNDERSTOOD, HOW SHALL IT BE KNOWN WHAT IS SPOKEN? FOR YE SHALL SPEAK INTO THE AIR.HL# 10 THERE ARE, IT MAY BE, SO MANY KINDS OF VOICES IN THE WORLD, AND NONE OF THEM IS WITHOUT SIGNIFICATION.GJ# 11 THEREFORE IF I KNOW NOT THE MEANING OF THE VOICE, I SHALL BE UNTO HIMN THAT SPEAKETH A BARBARIAN, AND HE THAT SPEAKETH SHALL BE A BARBARIAN UNTO ME.M# 12 EVEN SO YE, FORASMUCH AS YE ARE ZEALOUS OF SPIRITUAL GIFTS, SEEK THAT YET) MAY EXCEL TO THE EDIFYING OF THE CHURCH.EJ# 13 WHEREFORE LET HIM THAT SPEAKETH IN AN UNKNOWN TONGUE PRAY THAT HE MAY INTERPRET.YB# 14 FOR IF I PRAY IN AN UNKNOWN TONGUE, MY SPIRIT PRAYETH, BUT MY UNDERSTANDING IS UNFRUITFUL.DK# 15 WHAT IS IT THEN? I WILL PRAY WITH THE SPIRIT, AND I WILL PRAY WITH THEMJ UNDERSTANDING ALSO: I WILL SING WITH THE SPIRIT, AND I WILL SING WITH THE UNDERSTANDING ALSO.L# 16 ELSE WHEN THOU SHALT BLESS WITH THE SPIRIT, HOW SHALL HE THAT OCCUPIETHF THE ROOM OF THE UNLEARNED SAY AMEN AT THY GIVING OF THANKS, SEEING HE$ UNDERSTANDETH NOT WHAT THOU SAYEST?F# 17 FOR THOU VERILY GIVEST THANKS WELL, BUT THE OTHER IS NOT EDIFIED.;# 18 I THANK MY GOD, I SPEAK WITH TONGUES MORE THAN YE ALL:IK# 19 YET IN THE CHURCH I HAD RATHER SPEAK FIVE WORDS WITH MY UNDERSTANDING, J THAT BY MY VOICE I MIGHT TEACH OTHERS ALSO, THAN TEN THOUSAND WORDS IN AN UNKNOWN TONGUE.H# 20 BRETHREN, BE NOT CHILDREN IN UNDERSTANDING: HOWBEIT IN MALICE BE YE' CHILDREN, BUT IN UNDERSTANDING BE MEN.UL# 21 IN THE LAW IT IS WRITTEN, WITH MEN OF OTHER TONGUES AND OTHER LIPS WILLL I SPEAK UNTO THIS PEOPLE; AND YET FOR ALL THAT WILL THEY NOT HEAR ME, SAITH THE LORD.L# 22 WHEREFORE TONGUES ARE FOR A SIGN, NOT TO THEM THAT BELIEVE, BUT TO THEMM THAT BELIEVE NOT: BUT PROPHESYING SERVETH NOT FOR THEM THAT BELIEVE NOT, BUTI FOR THEM WHICH BELIEVE.K# 23 IF THEREFORE THE WHOLE CHURCH BE COME TOGETHER INTO ONE PLACE, AND ALLIC SPEAK WITH TONGUES, AND THERE COME IN THOSE THAT ARE UNLEARNED, ORD0 UNBELIEVERS, WILL THEY NOT SAY THAT YE ARE MAD?J# 24 BUT IF ALL PROPHESY, AND THERE COME IN ONE THAT BELIEVETH NOT, OR ONE8 UNLEARNED, HE IS CONVINCED OF ALL, HE IS JUDGED OF ALL:M# 25 AND THUS ARE THE SECRETS OF HIS HEART MADE MANIFEST; AND SO FALLING DOWNAK ON HIS FACE HE WILL WORSHIP GOD, AND REPORT THAT GOD IS IN YOU OF A TRUTH.FM# 26 HOW IS IT THEN, BRETHREN? WHEN YE COME TOGETHER, EVERY ONE OF YOU HATH AOB PSALM, HATH A DOCTRINE, HATH A TONGUE, HATH A REVELATION, HATH AN6 INTERPRETATION. LET ALL THINGS BE DONE UNTO EDIFYING.L# 27 IF ANY MAN SPEAK IN AN UNKNOWN TONGUE, LET IT BE BY TWO, OR AT THE MOST5 BY THREE, AND THAT BY COURSE; AND LET ONE INTERPRET.IL# 28 BUT IF THERE BE NO INTERPRETER, LET HIM KEEP SILENCE IN THE CHURCH; AND& LET HIM SPEAK TO HIMSELF, AND TO GOD.B# 29 LET THE PROPHETS SPEAK TWO OR THREE, AND LET THE OTHER JUDGE.L# 30 IF ANY THING BE REVEALED TO ANOTHER THAT SITTETH BY, LET THE FIRST HOLD HIS PEACE.NK# 31 FOR YE MAY ALL PROPHESY ONE BY ONE, THAT 00ED<%X>%+%O-%TADATADATAALL MAY LEARN, AND ALL MAY BE COMFORTED.EA# 32 AND THE SPIRITS OF THE PROPHETS ARE SUBJECT TO THE PROPHETS.TM# 33 FOR GOD IS NOT THE AUTHOR OF CONFUSION, BUT OF PEACE, AS IN ALL CHURCHES8 OF THE SAINTS.NI# 34 LET YOUR WOMEN KEEP SILENCE IN THE CHURCHES: FOR IT IS NOT PERMITTEDII UNTO THEM TO SPEAK; BUT THEY ARE COMMANDED TO BE UNDER OBEDIENCE AS ALSOT SAITH THE LAW.IK# 35 AND IF THEY WILL LEARN ANY THING, LET THEM ASK THEIR HUSBANDS AT HOME:P4 FOR IT IS A SHAME FOR WOMEN TO SPEAK IN THE CHURCH.G# 36 WHAT? CAME THE WORD OF GOD OUT FROM YOU? OR CAME IT UNTO YOU ONLY? D# 37 IF ANY MAN THINK HIMSELF TO BE A PROPHET, OR SPIRITUAL, LET HIMN ACKNOWLEDGE THAT THE THINGS THAT I WRITE UNTO YOU ARE THE COMMANDMENTS OF THE LORD.5# 38 BUT IF ANY MAN BE IGNORANT, LET HIM BE IGNORANT.I# 39 WHEREFORE, BRETHREN, COVET TO PROPHESY, AND FORBID NOT TO SPEAK WITH TONGUES.L2# 40 LET ALL THINGS BE DONE DECENTLY AND IN ORDER. = CHAPTER 15 BK# 1 MOREOVER, BRETHREN, I DECLARE UNTO YOU THE GOSPEL WHICH I PREACHED UNTOA8 YOU, WHICH ALSO YE HAVE RECEIVED, AND WHEREIN YE STAND;I# 2 BY WHICH ALSO YE ARE SAVED, IF YE KEEP IN MEMORY WHAT I PREACHED UNTOM& YOU, UNLESS YE HAVE BELIEVED IN VAIN.I# 3 FOR I DELIVERED UNTO YOU FIRST OF ALL THAT WHICH I ALSO RECEIVED, HOWN; THAT CHRIST DIED FOR OUR SINS ACCORDING TO THE SCRIPTURES; M# 4 AND THAT HE WAS BURIED, AND THAT HE ROSE AGAIN THE THIRD DAY ACCORDING TOD THE SCRIPTURES:7# 5 AND THAT HE WAS SEEN OF CEPHAS, THEN OF THE TWELVE:RK# 6 AFTER THAT, HE WAS SEEN OF ABOVE FIVE HUNDRED BRETHREN AT ONCE; OF WHOMEG THE GREATER PART REMAIN UNTO THIS PRESENT, BUT SOME ARE FALLEN ASLEEP.E?# 7 AFTER THAT, HE WAS SEEN OF JAMES; THEN OF ALL THE APOSTLES..K# 8 AND LAST OF ALL HE WAS SEEN OF ME ALSO, AS OF ONE BORN OUT OF DUE TIME.H# 9 FOR I AM THE LEAST OF THE APOSTLES, THAT AM NOT MEET TO BE CALLED AN1 APOSTLE, BECAUSE I PERSECUTED THE CHURCH OF GOD.YM# 10 BUT BY THE GRACE OF GOD I AM WHAT I AM: AND HIS GRACE WHICH WAS BESTOWEDHK UPON ME WAS NOT IN VAIN; BUT I LABOURED MORE ABUNDANTLY THAN THEY ALL: YETE/ NOT I, BUT THE GRACE OF GOD WHICH WAS WITH ME.EK# 11 THEREFORE WHETHER IT WERE I OR THEY, SO WE PREACH, AND SO YE BELIEVED.NM# 12 NOW IF CHRIST BE PREACHED THAT HE ROSE FROM THE DEAD, HOW SAY SOME AMONGO/ YOU THAT THERE IS NO RESURRECTION OF THE DEAD?HK# 13 BUT IF THERE BE NO RESURRECTION OF THE DEAD, THEN IS CHRIST NOT RISEN:TK# 14 AND IF CHRIST BE NOT RISEN, THEN IS OUR PREACHING VAIN, AND YOUR FAITHE IS ALSO VAIN.L# 15 YEA, AND WE ARE FOUND FALSE WITNESSES OF GOD; BECAUSE WE HAVE TESTIFIEDJ OF GOD THAT HE RAISED UP CHRIST: WHOM HE RAISED NOT UP, IF SO BE THAT THE DEAD RISE NOT.H9# 16 FOR IF THE DEAD RISE NOT, THEN IS NOT CHRIST RAISED:BH# 17 AND IF CHRIST BE NOT RAISED, YOUR FAITH IS VAIN; YE ARE YET IN YOUR SINS.C# 18 THEN THEY ALSO WHICH ARE FALLEN ASLEEP IN CHRIST ARE PERISHED.HH# 19 IF IN THIS LIFE ONLY WE HAVE HOPE IN CHRIST, WE ARE OF ALL MEN MOST MISERABLE.II# 20 BUT NOW IS CHRIST RISEN FROM THE DEAD, AND BECOME THE FIRSTFRUITS OFW THEM THAT SLEPT.CJ# 21 FOR SINCE BY MAN CAME DEATH, BY MAN CAME ALSO THE RESURRECTION OF THE DEAD.G# 22 FOR AS IN ADAM ALL DIE, EVEN SO IN CHRIST SHALL ALL BE MADE ALIVE.NK# 23 BUT EVERY MAN IN HIS OWN ORDER: CHRIST THE FIRSTFRUITS; AFTERWARD THEYA THAT ARE CHRISTS AT HIS COMING.M# 24 THEN COMETH THE END, WHEN HE SHALL HAVE DELIVERED UP THE KINGDOM TO GOD,EL EVEN THE FATHER; WHEN HE SHALL HAVE PUT DOWN ALL RULE AND ALL AUTHORITY AND POWER.ID# 25 FOR HE MUST REIGN, TILL HE HATH PUT ALL ENEMIES UNDER HIS FEET.5# 26 THE LAST ENEMY THAT SHALL BE DESTROYED IS DEATH.OL# 27 FOR HE HATH PUT ALL THINGS UNDER HIS FEET. BUT WHEN HE SAITH ALL THINGSI ARE PUT UNDER HIM, IT IS MANIFEST THAT HE IS EXCEPTED, WHICH DID PUT ALLH THINGS UNDER HIM.K# 28 AND WHEN ALL THINGS SHALL BE SUBDUED UNTO HIM, THEN SHALL THE SON ALSOHK HIMSELF BE SUBJECT UNTO HIM THAT PUT ALL THINGS UNDER HIM, THAT GOD MAY BEL ALL IN ALL.I# 29 ELSE WHAT SHALL THEY DO WHICH ARE BAPTIZED FOR THE DEAD, IF THE DEAD : RISE NOT AT ALL? WHY ARE THEY00E6ED%5%T6%! ! THEN BAPTIZED FOR THE DEAD?-# 30 AND WHY STAND WE IN JEOPARDY EVERY HOUR?AM# 31 I PROTEST BY YOUR REJOICING WHICH I HAVE IN CHRIST JESUS OUR LORD, I DIEH DAILY. J# 32 IF AFTER THE MANNER OF MEN I HAVE FOUGHT WITH BEASTS AT EPHESUS, WHATM ADVANTAGETH IT ME, IF THE DEAD RISE NOT? LET US EAT AND DRINK; FOR TO MORROWF WE DIE.?# 33 BE NOT DECEIVED: EVIL COMMUNICATIONS CORRUPT GOOD MANNERS.IL# 34 AWAKE TO RIGHTEOUSNESS, AND SIN NOT; FOR SOME HAVE NOT THE KNOWLEDGE OF! GOD: I SPEAK THIS TO YOUR SHAME.YM# 35 BUT SOME MAN WILL SAY, HOW ARE THE DEAD RAISED UP? AND WITH WHAT BODY DO THEY COME?BG# 36 THOU FOOL, THAT WHICH THOU SOWEST IS NOT QUICKENED, EXCEPT IT DIE:M# 37 AND THAT WHICH THOU SOWEST, THOU SOWEST NOT THAT BODY THAT SHALL BE, BUTV< BARE GRAIN, IT MAY CHANCE OF WHEAT, OR OF SOME OTHER GRAIN:K# 38 BUT GOD GIVETH IT A BODY AS IT HATH PLEASED HIM, AND TO EVERY SEED HISD OWN BODY.L# 39 ALL FLESH IS NOT THE SAME FLESH: BUT THERE IS ONE KIND OF FLESH OF MEN,B ANOTHER FLESH OF BEASTS, ANOTHER OF FISHES, AND ANOTHER OF BIRDS.K# 40 THERE ARE ALSO CELESTIAL BODIES, AND BODIES TERRESTRIAL: BUT THE GLORY F OF THE CELESTIAL IS ONE, AND THE GLORY OF THE TERRESTRIAL IS ANOTHER.F# 41 THERE IS ONE GLORY OF THE SUN, AND ANOTHER GLORY OF THE MOON, ANDH ANOTHER GLORY OF THE STARS: FOR ONE STAR DIFFERETH FROM ANOTHER STAR IN GLORY.DJ# 42 SO ALSO IS THE RESURRECTION OF THE DEAD. IS SOWN IN CORRUPTION; IT IS RAISED IN INCORRUPTION:L# 43 IT IS SOWN IN DISHONOUR; IT IS RAISED IN GLORY: IT IS SOWN IN WEAKNESS; IT IS RAISED IN POWER:.I# 44 IT IS SOWN A NATURAL BODY; IT IS RAISED A SPIRITUAL BODY. THERE IS AR- NATURAL BODY, AND THERE IS A SPIRITUAL BODY.TI# 45 AND SO IT IS WRITTEN, THE FIRST MAN ADAM WAS MADE A LIVING SOUL; THE ( LAST ADAM WAS MADE A QUICKENING SPIRIT.E# 46 HOWBEIT THAT WAS NOT FIRST WHICH IS SPIRITUAL, BUT THAT WHICH ISS0 NATURAL; AND AFTERWARD THAT WHICH IS SPIRITUAL.K# 47 THE FIRST MAN IS OF THE EARTH, EARTHY; THE SECOND MAN IS THE LORD FROMT HEAVEN.H# 48 AS IS THE EARTHY, SUCH ARE THEY ALSO THAT ARE EARTHY: AND AS IS THE0 HEAVENLY, SUCH ARE THEY ALSO THAT ARE HEAVENLY.I# 49 AND AS WE HAVE BORNE THE IMAGE OF THE EARTHY, WE SHALL ALSO BEAR THET IMAGE OF THE HEAVENLY.NF# 50 NOW THIS I SAY, BRETHREN, THAT FLESH AND BLOOD CANNOT INHERIT THE> KINGDOM OF GOD; NEITHER DOTH CORRUPTION INHERIT INCORRUPTION.K# 51 BEHOLD, I SHEW YOU A MYSTERY; WE SHALL NOT ALL SLEEP, BUT WE SHALL ALLT BE CHANGED,H# 52 IN A MOMENT, IN THE TWINKLING OF AN EYE, AT THE LAST TRUMP: FOR THEN TRUMPET SHALL SOUND, AND THE DEAD SHALL BE RAISED INCORRUPTIBLE, AND WE SHALL BE CHANGED.L# 53 FOR THIS CORRUPTIBLE MUST PUT ON INCORRUPTION, AND THIS MORTAL MUST PUT ON IMMORTALITY.M# 54 SO WHEN THIS CORRUPTIBLE SHALL HAVE PUT ON INCORRUPTION, AND THIS MORTALTM SHALL HAVE PUT ON IMMORTALITY, THEN SHALL BE BROUGHT TO PASS THE SAYING THAT . IS WRITTEN, DEATH IS SWALLOWED UP IN VICTORY.@# 55 O DEATH, WHERE IS THY STING? O GRAVE, WHERE IS THY VICTORY?C# 56 THE STING OF DEATH IS SIN; AND THE STRENGTH OF SIN IS THE LAW.DM# 57 BUT THANKS BE TO GOD, WHICH GIVETH US THE VICTORY THROUGH OUR LORD JESUSF CHRIST.G# 58 THEREFORE, MY BELOVED BRETHREN, BE YE STEDFAST, UNMOVEABLE, ALWAYSLL ABOUNDING IN THE WORK OF THE LORD, FORASMUCH AS YE KNOW THAT YOUR LABOUR IS NOT IN VAIN IN THE LORD.I = CHAPTER 16 NN# 1 NOW CONCERNING THE COLLECTION FOR THE SAINTS, AS I HAVE GIVEN ORDER TO THE$ CHURCHES OF GALATIA, EVEN SO DO YE.L# 2 UPON THE FIRST DAY OF THE WEEK LET EVERY ONE OF YOU LAY BY HIM IN STORE,D AS GOD HATH PROSPERED HIM, THAT THERE BE NO GATHERINGS WHEN I COME.M# 3 AND WHEN I COME, WHOMSOEVER YE SHALL APPROVE BY YOUR LETTERS, THEM WILL IB. SEND TO BRING YOUR LIBERALITY UNTO JERUSALEM.<# 4 AND IF IT BE MEET THAT I GO ALSO, THEY SHALL GO WITH ME.K# 5 NOW I WILL COME UNTO YOU, WHEN I SHALL PASS THROUGH MACEDONIA: FOR I DOT PASS THROUGH MACEDONIA.J# 6 AND IT MAY BE THAT I WILL ABIDE, YEA, AND WINTER WITH YOU, THAT YE MAY+ BRING ME ON MY JOURNEY WHITHERSOEVER I GO.OL# 7 FOR I WILL NOT SEE YOU NOW BY THE WAY;00EE<%X>%+%O-%TADATADATA BUT I TRUST TO TARRY A WHILE WITH YOU, IF THE LORD PERMIT. 0# 8 BUT I WILL TARRY AT EPHESUS UNTIL PENTECOST.H# 9 FOR A GREAT DOOR AND EFFECTUAL IS OPENED UNTO ME, AND THERE ARE MANY ADVERSARIES.EL# 10 NOW IF TIMOTHEUS COME, SEE THAT HE MAY BE WITH YOU WITHOUT FEAR: FOR HE, WORKETH THE WORK OF THE LORD, AS I ALSO DO.K# 11 LET NO MAN THEREFORE DESPISE HIM: BUT CONDUCT HIM FORTH IN PEACE, THATT; HE MAY COME UNTO ME: FOR I LOOK FOR HIM WITH THE BRETHREN.OL# 12 AS TOUCHING OUR BROTHER APOLLOS, I GREATLY DESIRED HIM TO COME UNTO YOUL WITH THE BRETHREN: BUT HIS WILL WAS NOT AT ALL TO COME AT THIS TIME; BUT HE. WILL COME WHEN HE SHALL HAVE CONVENIENT TIME.E# 13 WATCH YE, STAND FAST IN THE FAITH, QUIT YOU LIKE MEN, BE STRONG.E.# 14 LET ALL YOUR THINGS BE DONE WITH CHARITY.M# 15 I BESEECH YOU, BRETHREN, (YE KNOW THE HOUSE OF STEPHANAS, THAT IT IS THEPN FIRSTFRUITS OF ACHAIA, AND THAT THEY HAVE ADDICTED THEMSELVES TO THE MINISTRY OF THE SAINTS,)L# 16 THAT YE SUBMIT YOURSELVES UNTO SUCH, AND TO EVERY ONE THAT HELPETH WITH US, AND LABOURETH. J# 17 I AM GLAD OF THE COMING OF STEPHANAS AND FORTUNATUS AND ACHAICUS: FOR8 THAT WHICH WAS LACKING ON YOUR PART THEY HAVE SUPPLIED.J# 18 FOR THEY HAVE REFRESHED MY SPIRIT AND YOURS: THEREFORE ACKNOWLEDGE YE THEM THAT ARE SUCH.M# 19 THE CHURCHES OF ASIA SALUTE YOU. AQUILA AND PRISCILLA SALUTE YOU MUCH INH2 THE LORD, WITH THE CHURCH THAT IS IN THEIR HOUSE.H# 20 ALL THE BRETHREN GREET YOU. GREET YE ONE ANOTHER WITH AN HOLY KISS.2# 21 THE SALUTATION OF ME PAUL WITH MINE OWN HAND.C# 22 IF ANY MAN LOVE NOT THE LORD JESUS CHRIST, LET HIM BE ANATHEMA MARANATHA.D4# 23 THE GRACE OF OUR LORD JESUS CHRIST BE WITH YOU.3# 24 MY LOVE BE WITH YOU ALL IN CHRIST JESUS. AMEN.PIRIT AND YOURS: THEREFORE ACKNOWLEDGE YE THEM THAT ARE SUCH.M# 19 THE CHURCHES OF ASIA SALUTE YOU. AQUILA AND PRISCILLA SALUTE YOU MUCH INH2 THE LORD, WITH THE CHURCH THAT IS IN THEIR HOUSE.H# 20 ALL THE BRETHREN GREET YOU. GREET YE ONE ANOTHER WITH AN HOLY KISS.2# 21 THE SALUTATION OF ME PA* BOOK47 2CORINTHIANS = CHAPTER 1 H# 1 PAUL, AN APOSTLE OF JESUS CHRIST BY THE WILL OF GOD, AND TIMOTHY OURI BROTHER, UNTO THE CHURCH OF GOD WHICH IS AT CORINTH, WITH ALL THE SAINTSA WHICH ARE IN ALL ACHAIA:RJ# 2 GRACE BE TO YOU AND PEACE FROM GOD OUR FATHER, AND FROM THE LORD JESUS CHRIST.K# 3 BLESSED BE GOD, EVEN THE FATHER OF OUR LORD JESUS CHRIST, THE FATHER OFH% MERCIES, AND THE GOD OF ALL COMFORT;TL# 4 WHO COMFORTETH US IN ALL OUR TRIBULATION, THAT WE MAY BE ABLE TO COMFORTI THEM WHICH ARE IN ANY TROUBLE, BY THE COMFORT WHEREWITH WE OURSELVES AREO COMFORTED OF GOD.I# 5 FOR AS THE SUFFERINGS OF CHRIST ABOUND IN US, SO OUR CONSOLATION ALSOT ABOUNDETH BY CHRIST.SJ# 6 AND WHETHER WE BE AFFLICTED, IT IS FOR YOUR CONSOLATION AND SALVATION,H WHICH IS EFFECTUAL IN THE ENDURING OF THE SAME SUFFERINGS WHICH WE ALSON SUFFER: OR WHETHER WE BE COMFORTED, IT IS FOR YOUR CONSOLATION AND SALVATION.M# 7 AND OUR HOPE OF YOU IS STEDFAST, KNOWING, THAT AS YE ARE PARTAKERS OF THEC4 SUFFERINGS, SO SHALL YE BE ALSO OF THE CONSOLATION.K# 8 FOR WE WOULD NOT, BRETHREN, HAVE YOU IGNORANT OF OUR TROUBLE WHICH CAMEFM TO US IN ASIA, THAT WE WERE PRESSED OUT OF MEASURE, ABOVE STRENGTH, INSOMUCH THAT WE DESPAIRED EVEN OF LIFE:K# 9 BUT WE HAD THE SENTENCE OF DEATH IN OURSELVES, THAT WE SHOULD NOT TRUSTS1 IN OURSELVES, BUT IN GOD WHICH RAISETH THE DEAD:EI# 10 WHO DELIVERED US FROM SO GREAT A DEATH, AND DOTH DELIVER: IN WHOM WEO# TRUST THAT HE WILL YET DELIVER US;EJ# 11 YE ALSO HELPING TOGETHER BY PRAYER FOR US, THAT FOR THE GIFT BESTOWEDH UPON US BY THE MEANS OF MANY PERSONS THANKS MAY BE GIVEN BY MANY ON OUR BEHALF.H# 12 FOR OUR REJOICING IS THIS, THE TESTIMONY OF OUR CONSCIENCE, THAT INM SIMPLICITY AND GODLY SINCERITY, NOT WITH FLESHLY WISDOM, BUT BY THE GRACE OFSG GOD, WE HAVE HAD OUR CONVERSATION IN THE WORLD, AND MORE ABUNDANTLY TO YOU-WARD.B# 13 FOR WE WRITE NONE OTHER THINGS UNTO YOU, THAT WHAT YE READ OR? ACKNOWLEDGE; AND I TRUST YE SHALL ACKNOWLEDGE EVEN TO THE END;GI# 14 AS ALSO YE HA00E6ED%5%T6%! !VE ACKNOWLEDGED US IN PART, THAT WE ARE YOUR REJOICING,N7 EVEN AS YE ALSO ARE OURS IN THE DAY OF THE LORD JESUS.HI# 15 AND IN THIS CONFIDENCE I WAS MINDED TO COME UNTO YOU BEFORE, THAT YE  MIGHT HAVE A SECOND BENEFIT;RJ# 16 AND TO PASS BY YOU INTO MACEDONIA, AND TO COME AGAIN OUT OF MACEDONIA< UNTO YOU, AND OF YOU TO BE BROUGHT ON MY WAY TOWARD JUDAEA.I# 17 WHEN I THEREFORE WAS THUS MINDED, DID I USE LIGHTNESS? OR THE THINGSLH THAT I PURPOSE, DO I PURPOSE ACCORDING TO THE FLESH, THAT WITH ME THERE SHOULD BE YEA YEA, AND NAY NAY?A# 18 BUT AS GOD IS TRUE, OUR WORD TOWARD YOU WAS NOT YEA AND NAY.HM# 19 FOR THE SON OF GOD, JESUS CHRIST, WHO WAS PREACHED AMONG YOU BY US, EVENEK BY ME AND SILVANUS AND TIMOTHEUS, WAS NOT YEA AND NAY, BUT IN HIM WAS YEA.DJ# 20 FOR ALL THE PROMISES OF GOD IN HIM ARE YEA, AND IN HIM AMEN, UNTO THE GLORY OF GOD BY US.M# 21 NOW HE WHICH STABLISHETH US WITH YOU IN CHRIST, AND HATH ANOINTED US, ISL GOD; H# 22 WHO HATH ALSO SEALED US, AND GIVEN THE EARNEST OF THE SPIRIT IN OUR HEARTS.L# 23 MOREOVER I CALL GOD FOR A RECORD UPON MY SOUL, THAT TO SPARE YOU I CAME NOT AS YET UNTO CORINTH. K# 24 NOT FOR THAT WE HAVE DOMINION OVER YOUR FAITH, BUT ARE HELPERS OF YOURU JOY: FOR BY FAITH YE STAND. = CHAPTER 2 L# 1 BUT I DETERMINED THIS WITH MYSELF, THAT I WOULD NOT COME AGAIN TO YOU IN HEAVINESS.M# 2 FOR IF I MAKE YOU SORRY, WHO IS HE THEN THAT MAKETH ME GLAD, BUT THE SAMEH WHICH IS MADE SORRY BY ME?K# 3 AND I WROTE THIS SAME UNTO YOU, LEST, WHEN I CAME, I SHOULD HAVE SORROWAL FROM THEM OF WHOM I OUGHT TO REJOICE; HAVING CONFIDENCE IN YOU ALL, THAT MY JOY IS THE JOY OF YOU ALL.HI# 4 FOR OUT OF MUCH AFFLICTION AND ANGUISH OF HEART I WROTE UNTO YOU WITHYK MANY TEARS; NOT THAT YE SHOULD BE GRIEVED, BUT THAT YE MIGHT KNOW THE LOVEI' WHICH I HAVE MORE ABUNDANTLY UNTO YOU. M# 5 BUT IF ANY HAVE CAUSED GRIEF, HE HATH NOT GRIEVED ME, BUT IN PART: THAT IE MAY NOT OVERCHARGE YOU ALL.M# 6 SUFFICIENT TO SUCH A MAN IS THIS PUNISHMENT, WHICH WAS INFLICTED OF MANY.SI# 7 SO THAT CONTRARIWISE YE OUGHT RATHER TO FORGIVE HIM, AND COMFORT HIM,EE LEST PERHAPS SUCH A ONE SHOULD BE SWALLOWED UP WITH OVERMUCH SORROW. G# 8 WHEREFORE I BESEECH YOU THAT YE WOULD CONFIRM YOUR LOVE TOWARD HIM.TI# 9 FOR TO THIS END ALSO DID I WRITE, THAT I MIGHT KNOW THE PROOF OF YOU,O& WHETHER YE BE OBEDIENT IN ALL THINGS.G# 10 TO WHOM YE FORGIVE ANY THING, I FORGIVE ALSO: FOR IF I FORGAVE ANYTJ THING, TO WHOM I FORGAVE IT, FOR YOUR SAKES FORGAVE I IT IN THE PERSON OF CHRIST;M# 11 LEST SATAN SHOULD GET AN ADVANTAGE OF US: FOR WE ARE NOT IGNORANT OF HISM DEVICES.K# 12 FURTHERMORE, WHEN I CAME TO TROAS TO PREACH CHRISTS GOSPEL, AND A DOORH WAS OPENED UNTO ME OF THE LORD,J# 13 I HAD NO REST IN MY SPIRIT, BECAUSE I FOUND NOT TITUS MY BROTHER: BUT< TAKING MY LEAVE OF THEM, I WENT FROM THENCE INTO MACEDONIA.J# 14 NOW THANKS BE UNTO GOD, WHICH ALWAYS CAUSETH US TO TRIUMPH IN CHRIST,F AND MAKETH MANIFEST THE SAVOUR OF HIS KNOWLEDGE BY US IN EVERY PLACE.J# 15 FOR WE ARE UNTO GOD A SWEET SAVOUR OF CHRIST, IN THEM THAT ARE SAVED, AND IN THEM THAT PERISH:K# 16 TO THE ONE WE ARE THE SAVOUR OF DEATH UNTO DEATH; AND TO THE OTHER THEAB SAVOUR OF LIFE UNTO LIFE. AND WHO IS SUFFICIENT FOR THESE THINGS?E# 17 FOR WE ARE NOT AS MANY, WHICH CORRUPT THE WORD OF GOD: BUT AS OFOB SINCERITY, BUT AS OF GOD, IN THE SIGHT OF GOD SPEAK WE IN CHRIST. = CHAPTER 3 G# 1 DO WE BEGIN AGAIN TO COMMEND OURSELVES? OR NEED WE, AS SOME OTHERS,HF EPISTLES OF COMMENDATION TO YOU, OR LETTERS OF COMMENDATION FROM YOU?H# 2 YE ARE OUR EPISTLE WRITTEN IN OUR HEARTS, KNOWN AND READ OF ALL MEN:G# 3 FORASMUCH AS YE ARE MANIFESTLY DECLARED TO BE THE EPISTLE OF CHRISTSJ MINISTERED BY US, WRITTEN NOT WITH INK, BUT WITH THE SPIRIT OF THE LIVING@ GOD; NOT IN TABLES OF STONE, BUT IN FLESHY TABLES OF THE HEART.6# 4 AND SUCH TRUST HAVE WE THROUGH CHRIST TO GOD-WARD:D# 5 NOT THAT WE ARE SUFFICIENT OF OURSELVES TO THINK ANY THING AS OF* OURSELVES; BUT OUR SUFFICIENCY IS OF GOD;I# 6 WHO ALSO HATH MADE US ABLE MINISTERS OF THE NEW TE00EE<%X>%+%O-%TADATADATASTAMENT; NOT OF THEEI LETTER, BUT OF THE SPIRIT: FOR THE LETTER KILLETH, BUT THE SPIRIT GIVETH  LIFE.I# 7 BUT IF THE MINISTRATION OF DEATH, WRITTEN AND ENGRAVEN IN STONES, WASTN GLORIOUS, SO THAT THE CHILDREN OF ISRAEL COULD NOT STEDFASTLY BEHOLD THE FACEL OF MOSES FOR THE GLORY OF HIS COUNTENANCE; WHICH GLORY WAS TO BE DONE AWAY:D# 8 HOW SHALL NOT THE MINISTRATION OF THE SPIRIT BE RATHER GLORIOUS?H# 9 FOR IF THE MINISTRATION OF CONDEMNATION BE GLORY, MUCH MORE DOTH THE/ MINISTRATION OF RIGHTEOUSNESS EXCEED IN GLORY.EK# 10 FOR EVEN THAT WHICH WAS MADE GLORIOUS HAD NO GLORY IN THIS RESPECT, BY$ REASON OF THE GLORY THAT EXCELLETH.F# 11 FOR IF THAT WHICH IS DONE AWAY WAS GLORIOUS, MUCH MORE THAT WHICH REMAINETH IS GLORIOUS. J# 12 SEEING THEN THAT WE HAVE SUCH HOPE, WE USE GREAT PLAINNESS OF SPEECH:K# 13 AND NOT AS MOSES, WHICH PUT A VAIL OVER HIS FACE, THAT THE CHILDREN OFTH ISRAEL COULD NOT STEDFASTLY LOOK TO THE END OF THAT WHICH IS ABOLISHED:M# 14 BUT THEIR MINDS WERE BLINDED: FOR UNTIL THIS DAY REMAINETH THE SAME VAILRM UNTAKEN AWAY IN THE READING OF THE OLD TESTAMENT; WHICH VAIL IS DONE AWAY INF CHRIST.G# 15 BUT EVEN UNTO THIS DAY, WHEN MOSES IS READ, THE VAIL IS UPON THEIRM HEART.WI# 16 NEVERTHELESS WHEN IT SHALL TURN TO THE LORD, THE VAIL SHALL BE TAKEN  AWAY.L# 17 NOW THE LORD IS THAT SPIRIT: AND WHERE THE SPIRIT OF THE LORD IS, THERE IS LIBERTY.H# 18 BUT WE ALL, WITH OPEN FACE BEHOLDING AS IN A GLASS THE GLORY OF THEJ LORD, ARE CHANGED INTO THE SAME IMAGE FROM GLORY TO GLORY, EVEN AS BY THE SPIRIT OF THE LORD. = CHAPTER 4 I# 1 THEREFORE SEEING WE HAVE THIS MINISTRY, AS WE HAVE RECEIVED MERCY, WET FAINT NOT;IF# 2 BUT HAVE RENOUNCED THE HIDDEN THINGS OF DISHONESTY, NOT WALKING INN CRAFTINESS, NOR HANDLING THE WORD OF GOD DECEITFULLY; BUT BY MANIFESTATION OFM THE TRUTH COMMENDING OURSELVES TO EVERY MANS CONSCIENCE IN THE SIGHT OF GOD.E># 3 BUT IF OUR GOSPEL BE HID, IT IS HID TO THEM THAT ARE LOST:F# 4 IN WHOM THE GOD OF THIS WORLD HATH BLINDED THE MINDS OF THEM WHICHI BELIEVE NOT, LEST THE LIGHT OF THE GLORIOUS GOSPEL OF CHRIST, WHO IS THEG& IMAGE OF GOD, SHOULD SHINE UNTO THEM.I# 5 FOR WE PREACH NOT OURSELVES, BUT CHRIST JESUS THE LORD; AND OURSELVESI YOUR SERVANTS FOR JESUS SAKE.M# 6 FOR GOD, WHO COMMANDED THE LIGHT TO SHINE OUT OF DARKNESS, HATH SHINED INTJ OUR HEARTS, TO GIVE THE LIGHT OF THE KNOWLEDGE OF THE GLORY OF GOD IN THE FACE OF JESUS CHRIST.L# 7 BUT WE HAVE THIS TREASURE IN EARTHEN VESSELS, THAT THE EXCELLENCY OF THE$ POWER MAY BE OF GOD, AND NOT OF US.L# 8 WE ARE TROUBLED ON EVERY SIDE, YET NOT DISTRESSED; WE ARE PERPLEXED, BUT NOT IN DESPAIR;?# 9 PERSECUTED, BUT NOT FORSAKEN; CAST DOWN, BUT NOT DESTROYED;HK# 10 ALWAYS BEARING ABOUT IN THE BODY THE DYING OF THE LORD JESUS, THAT THEA7 LIFE ALSO OF JESUS MIGHT BE MADE MANIFEST IN OUR BODY.J# 11 FOR WE WHICH LIVE ARE ALWAY DELIVERED UNTO DEATH FOR JESUS SAKE, THATC THE LIFE ALSO OF JESUS MIGHT BE MADE MANIFEST IN OUR MORTAL FLESH.E2# 12 SO THEN DEATH WORKETH IN US, BUT LIFE IN YOU.F# 13 WE HAVING THE SAME SPIRIT OF FAITH, ACCORDING AS IT IS WRITTEN, IM BELIEVED, AND THEREFORE HAVE I SPOKEN; WE ALSO BELIEVE, AND THEREFORE SPEAK;TM# 14 KNOWING THAT HE WHICH RAISED UP THE LORD JESUS SHALL RAISE UP US ALSO BYT& JESUS, AND SHALL PRESENT US WITH YOU.M# 15 FOR ALL THINGS ARE FOR YOUR SAKES, THAT THE ABUNDANT GRACE MIGHT THROUGHL6 THE THANKSGIVING OF MANY REDOUND TO THE GLORY OF GOD.M# 16 FOR WHICH CAUSE WE FAINT NOT; BUT THOUGH OUR OUTWARD MAN PERISH, YET THEH" INWARD MAN IS RENEWED DAY BY DAY.J# 17 FOR OUR LIGHT AFFLICTION, WHICH IS BUT FOR A MOMENT, WORKETH FOR US A0 FAR MORE EXCEEDING AND ETERNAL WEIGHT OF GLORY;L# 18 WHILE WE LOOK NOT AT THE THINGS WHICH ARE SEEN, BUT AT THE THINGS WHICHI ARE NOT SEEN: FOR THE THINGS WHICH ARE SEEN ARE TEMPORAL; BUT THE THINGSG WHICH ARE NOT SEEN ARE ETERNAL. = CHAPTER 5 L# 1 FOR WE KNOW THAT IF OUR EARTHLY HOUSE OF THIS TABERNACLE WERE DISSOLVED,H WE HAVE A BUILDING OF GOD, AN HOUSE NOT MADE WITH HANDS, ETERNAL IN THE HEAVENS.SH# 2 FOR IN THI00E6ED%5%T6%! !S WE GROAN, EARNESTLY DESIRING TO BE CLOTHED UPON WITH OUR HOUSE WHICH IS FROM HEAVEN:<# 3 IF SO BE THAT BEING CLOTHED WE SHALL NOT BE FOUND NAKED.M# 4 FOR WE THAT ARE IN THIS TABERNACLE DO GROAN, BEING BURDENED: NOT FOR THATTN WE WOULD BE UNCLOTHED, BUT CLOTHED UPON, THAT MORTALITY MIGHT BE SWALLOWED UP OF LIFE. L# 5 NOW HE THAT HATH WROUGHT US FOR THE SELFSAME THING IS GOD, WHO ALSO HATH) GIVEN UNTO US THE EARNEST OF THE SPIRIT.HM# 6 THEREFORE WE ARE ALWAYS CONFIDENT, KNOWING THAT, WHILST WE ARE AT HOME IN ' THE BODY, WE ARE ABSENT FROM THE LORD:H)# 7 (FOR WE WALK BY FAITH, NOT BY SIGHT:)SK# 8 WE ARE CONFIDENT, I SAY, AND WILLING RATHER TO BE ABSENT FROM THE BODY,T! AND TO BE PRESENT WITH THE LORD.EL# 9 WHEREFORE WE LABOUR, THAT, WHETHER PRESENT OR ABSENT, WE MAY BE ACCEPTED OF HIM.J# 10 FOR WE MUST ALL APPEAR BEFORE THE JUDGMENT SEAT OF CHRIST; THAT EVERYM ONE MAY RECEIVE THE THINGS DONE IN HIS BODY, ACCORDING TO THAT HE HATH DONE,F WHETHER IT BE GOOD OR BAD.KJ# 11 KNOWING THEREFORE THE TERROR OF THE LORD, WE PERSUADE MEN; BUT WE AREC MADE MANIFEST UNTO GOD; AND I TRUST ALSO ARE MADE MANIFEST IN YOURT CONSCIENCES.LJ# 12 FOR WE COMMEND NOT OURSELVES AGAIN UNTO YOU, BUT GIVE YOU OCCASION TOM GLORY ON OUR BEHALF, THAT YE MAY HAVE SOMEWHAT TO ANSWER THEM WHICH GLORY IN APPEARANCE, AND NOT IN HEART.G# 13 FOR WHETHER WE BE BESIDE OURSELVES, IT IS TO GOD: OR WHETHER WE BEE SOBER, IT IS FOR YOUR CAUSE.DK# 14 FOR THE LOVE OF CHRIST CONSTRAINETH US; BECAUSE WE THUS JUDGE, THAT IFO& ONE DIED FOR ALL, THEN WERE ALL DEAD:I# 15 AND THAT HE DIED FOR ALL, THAT THEY WHICH LIVE SHOULD NOT HENCEFORTH H LIVE UNTO THEMSELVES, BUT UNTO HIM WHICH DIED FOR THEM, AND ROSE AGAIN.M# 16 WHEREFORE HENCEFORTH KNOW WE NO MAN AFTER THE FLESH: YEA, THOUGH WE HAVEAF KNOWN CHRIST AFTER THE FLESH, YET NOW HENCEFORTH KNOW WE HIM NO MORE.L# 17 THEREFORE IF ANY MAN BE IN CHRIST, HE IS A NEW CREATURE: OLD THINGS ARE0 PASSED AWAY; BEHOLD, ALL THINGS ARE BECOME NEW.J# 18 AND ALL THINGS ARE OF GOD, WHO HATH RECONCILED US TO HIMSELF BY JESUS= CHRIST, AND HATH GIVEN TO US THE MINISTRY OF RECONCILIATION;UL# 19 TO WIT, THAT GOD WAS IN CHRIST, RECONCILING THE WORLD UNTO HIMSELF, NOTL IMPUTING THEIR TRESPASSES UNTO THEM; AND HATH COMMITTED UNTO US THE WORD OF RECONCILIATION.M# 20 NOW THEN WE ARE AMBASSADORS FOR CHRIST, AS THOUGH GOD DID BESEECH YOU BYE; US: WE PRAY YOU IN CHRISTS STEAD, BE YE RECONCILED TO GOD.NM# 21 FOR HE HATH MADE HIM TO BE SIN FOR US, WHO KNEW NO SIN; THAT WE MIGHT BER& MADE THE RIGHTEOUSNESS OF GOD IN HIM. = CHAPTER 6 K# 1 WE THEN, AS WORKERS TOGETHER WITH HIM, BESEECH YOU ALSO THAT YE RECEIVET NOT THE GRACE OF GOD IN VAIN.J# 2 (FOR HE SAITH, I HAVE HEARD THEE IN A TIME ACCEPTED, AND IN THE DAY OFK SALVATION HAVE I SUCCOURED THEE: BEHOLD, NOW IS THE ACCEPTED TIME; BEHOLD,S NOW IS THE DAY OF SALVATION.)G# 3 GIVING NO OFFENCE IN ANY THING, THAT THE MINISTRY BE NOT BLAMED: IT J# 4 BUT IN ALL THINGS APPROVING OURSELVES AS THE MINISTERS OF GOD, IN MUCH9 PATIENCE, IN AFFLICTIONS, IN NECESSITIES, IN DISTRESSES,PJ# 5 IN STRIPES, IN IMPRISONMENTS, IN TUMULTS, IN LABOURS, IN WATCHINGS, IN FASTINGS;J# 6 BY PURENESS, BY KNOWLEDGE, BY LONG SUFFERING, BY KINDNESS, BY THE HOLY GHOST, BY LOVE UNFEIGNED,M# 7 BY THE WORD OF TRUTH, BY THE POWER OF GOD, BY THE ARMOUR OF RIGHTEOUSNESS# ON THE RIGHT HAND AND ON THE LEFT,IJ# 8 BY HONOUR AND DISHONOUR, BY EVIL REPORT AND GOOD REPORT: AS DECEIVERS, AND YET TRUE;F# 9 AS UNKNOWN, AND YET WELL KNOWN; AS DYING, AND, BEHOLD, WE LIVE; AS CHASTENED, AND NOT KILLED;TI# 10 AS SORROWFUL, YET ALWAY REJOICING; AS POOR, YET MAKING MANY RICH; ASH/ HAVING NOTHING, AND YET POSSESSING ALL THINGS.GI# 11 O YE CORINTHIANS, OUR MOUTH IS OPEN UNTO YOU, OUR HEART IS ENLARGED.K# 12 YE ARE NOT STRAITENED IN US, BUT YE ARE STRAITENED IN YOUR OWN BOWELS.K# 13 NOW FOR A RECOMPENCE IN THE SAME, (I SPEAK AS UNTO MY CHILDREN,) BE YER ALSO ENLARGED.PM# 14 BE YE NOT UNEQUALLY YOKED TOGETHER WITH UNBELIEVERS: FOR WHAT FELLOWSHIPGL HATH RIGHTEOUSNESS WITH UNRIGHTEOUS00EE<%X>%+%O-%TADATADATANESS? AND WHAT COMMUNION HATH LIGHT WITH DARKNESS?H# 15 AND WHAT CONCORD HATH CHRIST WITH BELIAL? OR WHAT PART HATH HE THAT BELIEVETH WITH AN INFIDEL? I# 16 AND WHAT AGREEMENT HATH THE TEMPLE OF GOD WITH IDOLS? FOR YE ARE THERN TEMPLE OF THE LIVING GOD; AS GOD HATH SAID, I WILL DWELL IN THEM, AND WALK IN< THEM; AND I WILL BE THEIR GOD, AND THEY SHALL BE MY PEOPLE.L# 17 WHEREFORE COME OUT FROM AMONG THEM, AND BE YE SEPARATE, SAITH THE LORD,9 AND TOUCH NOT THE UNCLEAN THING; AND I WILL RECEIVE YOU.SJ# 18 AND WILL BE A FATHER UNTO YOU, AND YE SHALL BE MY SONS AND DAUGHTERS, SAITH THE LORD ALMIGHTY. = CHAPTER 7 M# 1 HAVING THEREFORE THESE PROMISES, DEARLY BELOVED, LET US CLEANSE OURSELVES M FROM ALL FILTHINESS OF THE FLESH AND SPIRIT, PERFECTING HOLINESS IN THE FEAR, OF GOD.I# 2 RECEIVE US; WE HAVE WRONGED NO MAN, WE HAVE CORRUPTED NO MAN, WE HAVE  DEFRAUDED NO MAN.K# 3 I SPEAK NOT THIS TO CONDEMN YOU: FOR I HAVE SAID BEFORE, THAT YE ARE INU% OUR HEARTS TO DIE AND LIVE WITH YOU.CM# 4 GREAT IS MY BOLDNESS OF SPEECH TOWARD YOU, GREAT IS MY GLORYING OF YOU: IGF AM FILLED WITH COMFORT, I AM EXCEEDING JOYFUL IN ALL OUR TRIBULATION.M# 5 FOR, WHEN WE WERE COME INTO MACEDONIA, OUR FLESH HAD NO REST, BUT WE WEREOC TROUBLED ON EVERY SIDE; WITHOUT WERE FIGHTINGS, WITHIN WERE FEARS. L# 6 NEVERTHELESS GOD, THAT COMFORTETH THOSE THAT ARE CAST DOWN, COMFORTED US BY THE COMING OF TITUS;G# 7 AND NOT BY HIS COMING ONLY, BUT BY THE CONSOLATION WHEREWITH HE WASHK COMFORTED IN YOU, WHEN HE TOLD US YOUR EARNEST DESIRE, YOUR MOURNING, YOURO5 FERVENT MIND TOWARD ME; SO THAT I REJOICED THE MORE.FL# 8 FOR THOUGH I MADE YOU SORRY WITH A LETTER, I DO NOT REPENT, THOUGH I DIDL REPENT: FOR I PERCEIVE THAT THE SAME EPISTLE HATH MADE YOU SORRY, THOUGH IT WERE BUT FOR A SEASON.WG# 9 NOW I REJOICE, NOT THAT YE WERE MADE SORRY, BUT THAT YE SORROWED TOCG REPENTANCE: FOR YE WERE MADE SORRY AFTER A GODLY MANNER, THAT YE MIGHTN! RECEIVE DAMAGE BY US IN NOTHING.EL# 10 FOR GODLY SORROW WORKETH REPENTANCE TO SALVATION NOT TO BE REPENTED OF:+ BUT THE SORROW OF THE WORLD WORKETH DEATH.TI# 11 FOR BEHOLD THIS SELFSAME THING, THAT YE SORROWED AFTER A GODLY SORT, K WHAT CAREFULNESS IT WROUGHT IN YOU, YEA, WHAT CLEARING OF YOURSELVES, YEA,MM WHAT INDIGNATION, YEA, WHAT FEAR, YEA, WHAT VEHEMENT DESIRE, YEA, WHAT ZEAL, L YEA, WHAT REVENGE! IN ALL THINGS YE HAVE APPROVED YOURSELVES TO BE CLEAR IN THIS MATTER.LL# 12 WHEREFORE, THOUGH I WROTE UNTO YOU, I DID IT NOT FOR HIS CAUSE THAT HADM DONE THE WRONG, NOR FOR HIS CAUSE THAT SUFFERED WRONG, BUT THAT OUR CARE FORF/ YOU IN THE SIGHT OF GOD MIGHT APPEAR UNTO YOU.SJ# 13 THEREFORE WE WERE COMFORTED IN YOUR COMFORT: YEA, AND EXCEEDINGLY THEL MORE JOYED WE FOR THE JOY OF TITUS, BECAUSE HIS SPIRIT WAS REFRESHED BY YOU ALL.FL# 14 FOR IF I HAVE BOASTED ANY THING TO HIM OF YOU, I AM NOT ASHAMED; BUT ASH WE SPAKE ALL THINGS TO YOU IN TRUTH, EVEN SO OUR BOASTING, WHICH I MADE BEFORE TITUS, IS FOUND A TRUTH.D# 15 AND HIS INWARD AFFECTION IS MORE ABUNDANT TOWARD YOU, WHILST HEN REMEMBERETH THE OBEDIENCE OF YOU ALL, HOW WITH FEAR AND TREMBLING YE RECEIVED HIM.OE# 16 I REJOICE THEREFORE THAT I HAVE CONFIDENCE IN YOU IN ALL THINGS.E = CHAPTER 8 L# 1 MOREOVER, BRETHREN, WE DO YOU TO WIT OF THE GRACE OF GOD BESTOWED ON THE CHURCHES OF MACEDONIA;BJ# 2 HOW THAT IN A GREAT TRIAL OF AFFLICTION THE ABUNDANCE OF THEIR JOY ANDA THEIR DEEP POVERTY ABOUNDED UNTO THE RICHES OF THEIR LIBERALITY.UL# 3 FOR TO THEIR POWER, I BEAR RECORD, YEA, AND BEYOND THEIR POWER THEY WERE WILLING OF THEMSELVES;HJ# 4 PRAYING US WITH MUCH INTREATY THAT WE WOULD RECEIVE THE GIFT, AND TAKE9 UPON US THE FELLOWSHIP OF THE MINISTERING TO THE SAINTS.LJ# 5 AND THIS THEY DID, NOT AS WE HOPED, BUT FIRST GAVE THEIR OWN SELVES TO* THE LORD, AND UNTO US BY THE WILL OF GOD.J# 6 INSOMUCH THAT WE DESIRED TITUS, THAT AS HE HAD BEGUN, SO HE WOULD ALSO# FINISH IN YOU THE SAME GRACE ALSO.DH# 7 THEREFORE, AS YE ABOUND IN EVERY THING, IN FAITH, AND UTTERANCE, ANDL KNOWLEDGE, AND IN ALL DILIGENCE, AND IN YOUR LOVE T00E6ED%5%T6%! !O US, SEE THAT YE ABOUND IN THIS GRACE ALSO.M# 8 I SPEAK NOT BY COMMANDMENT, BUT BY OCCASION OF THE FORWARDNESS OF OTHERS,N) AND TO PROVE THE SINCERITY OF YOUR LOVE. M# 9 FOR YE KNOW THE GRACE OF OUR LORD JESUS CHRIST, THAT, THOUGH HE WAS RICH,SN YET FOR YOUR SAKES HE BECAME POOR, THAT YE THROUGH HIS POVERTY MIGHT BE RICH.I# 10 AND HEREIN I GIVE MY ADVICE: FOR THIS IS EXPEDIENT FOR YOU, WHO HAVEEA BEGUN BEFORE, NOT ONLY TO DO, BUT ALSO TO BE FORWARD A YEAR AGO.NL# 11 NOW THEREFORE PERFORM THE DOING OF IT; THAT AS THERE WAS A READINESS TOD WILL, SO THERE MAY BE A PERFORMANCE ALSO OUT OF THAT WHICH YE HAVE.M# 12 FOR IT THERE BE FIRST A WILLING MIND, IT IS ACCEPTED ACCORDING TO THAT AH1 MAN HATH, AND NOT ACCORDING TO THAT HE HATH NOT.A=# 13 FOR I MEAN NOT THAT OTHER MEN BE EASED, AND YE BURDENED:IM# 14 BUT BY AN EQUALITY, THAT NOW AT THIS TIME YOUR ABUNDANCE MAY BE A SUPPLYNN FOR THEIR WANT, THAT THEIR ABUNDANCE ALSO MAY BE A SUPPLY FOR YOUR WANT: THAT THERE MAY BE EQUALITY:OI# 15 AS IT IS WRITTEN, HE THAT HAD GATHERED MUCH HAD NOTHING OVER; AND HER& THAT HAD GATHERED LITTLE HAD NO LACK.L# 16 BUT THANKS BE TO GOD, WHICH PUT THE SAME EARNEST CARE INTO THE HEART OF TITUS FOR YOU.K# 17 FOR INDEED HE ACCEPTED THE EXHORTATION; BUT BEING MORE FORWARD, OF HISO OWN ACCORD HE WENT UNTO YOU.NI# 18 AND WE HAVE SENT WITH HIM THE BROTHER, WHOSE PRAISE IS IN THE GOSPELA THROUGHOUT ALL THE CHURCHES; I# 19 AND NOT THAT ONLY, BUT WHO WAS ALSO CHOSEN OF THE CHURCHES TO TRAVELAN WITH US WITH THIS GRACE, WHICH IS ADMINISTERED BY US TO THE GLORY OF THE SAME* LORD, AND DECLARATION OF YOUR READY MIND:J# 20 AVOIDING THIS, THAT NO MAN SHOULD BLAME US IN THIS ABUNDANCE WHICH IS ADMINISTERED BY US:M# 21 PROVIDING FOR HONEST THINGS, NOT ONLY IN THE SIGHT OF THE LORD, BUT ALSON IN THE SIGHT OF MEN.UK# 22 AND WE HAVE SENT WITH THEM OUR BROTHER, WHOM WE HAVE OFTENTIMES PROVEDAD DILIGENT IN MANY THINGS, BUT NOW MUCH MORE DILIGENT, UPON THE GREAT CONFIDENCE WHICH I HAVE IN YOU.G# 23 WHETHER ANY DO ENQUIRE OF TITUS, HE IS MY PARTNER AND FELLOWHELPEROK CONCERNING YOU: OR OUR BRETHREN BE ENQUIRED OF, THEY ARE THE MESSENGERS OFH' THE CHURCHES, AND THE GLORY OF CHRIST.CJ# 24 WHEREFORE SHEW YE TO THEM, AND BEFORE THE CHURCHES, THE PROOF OF YOUR* LOVE, AND OF OUR BOASTING ON YOUR BEHALF. = CHAPTER 9 N# 1 FOR AS TOUCHING THE MINISTERING TO THE SAINTS, IT IS SUPERFLUOUS FOR ME TO WRITE TO YOU:M# 2 FOR I KNOW THE FORWARDNESS OF YOUR MIND, FOR WHICH I BOAST OF YOU TO THEMEL OF MACEDONIA, THAT ACHAIA WAS READY A YEAR AGO; AND YOUR ZEAL HATH PROVOKED VERY MANY.NL# 3 YET HAVE I SENT THE BRETHREN, LEST OUR BOASTING OF YOU SHOULD BE IN VAIN2 IN THIS BEHALF; THAT, AS I SAID, YE MAY BE READY:M# 4 LEST HAPLY IF THEY OF MACEDONIA COME WITH ME, AND FIND YOU UNPREPARED, WESI (THAT WE SAY NOT, YE) SHOULD BE ASHAMED IN THIS SAME CONFIDENT BOASTING.TL# 5 THEREFORE I THOUGHT IT NECESSARY TO EXHORT THE BRETHREN, THAT THEY WOULDN GO BEFORE UNTO YOU, AND MAKE UP BEFOREHAND YOUR BOUNTY, WHEREOF YE HAD NOTICEK BEFORE, THAT THE SAME MIGHT BE READY, AS A MATTER OF BOUNTY, AND NOT AS OF  COVETOUSNESS.L# 6 BUT THIS I SAY, HE WHICH SOWETH SPARINGLY SHALL REAP ALSO SPARINGLY; AND9 HE WHICH SOWETH BOUNTIFULLY SHALL REAP ALSO BOUNTIFULLY.OJ# 7 EVERY MAN ACCORDING AS HE PURPOSETH IN HIS HEART, SO LET HIM GIVE; NOT> GRUDGINGLY, OR OF NECESSITY: FOR GOD LOVETH A CHEERFUL GIVER.H# 8 AND GOD IS ABLE TO MAKE ALL GRACE ABOUND TOWARD YOU; THAT YE, ALWAYSE HAVING ALL SUFFICIENCY IN ALL THINGS, MAY ABOUND TO EVERY GOOD WORK:FK# 9 (AS IT IS WRITTEN, HE HATH DISPERSED ABROAD; HE HATH GIVEN TO THE POOR:V& HIS RIGHTEOUSNESS REMAINETH FOR EVER.K# 10 NOW HE THAT MINISTERETH SEED TO THE SOWER BOTH MINISTER BREAD FOR YOURYC FOOD, AND MULTIPLY YOUR SEED SOWN, AND INCREASE THE FRUITS OF YOURT RIGHTEOUSNESS;)F# 11 BEING ENRICHED IN EVERY THING TO ALL BOUNTIFULNESS, WHICH CAUSETH THROUGH US THANKSGIVING TO GOD.J# 12 FOR THE ADMINISTRATION OF THIS SERVICE NOT ONLY SUPPLIETH THE WANT OFA THE SAINTS, BUT IS ABUNDANT ALSO BY MANY THANKSGIVI00EE<%X>%+%O-%TADATADATANGS UNTO GOD;EL# 13 WHILES BY THE EXPERIMENT OF THIS MINISTRATION THEY GLORIFY GOD FOR YOURE PROFESSED SUBJECTION UNTO THE GOSPEL OF CHRIST, AND FOR YOUR LIBERAL * DISTRIBUTION UNTO THEM, AND UNTO ALL MEN;H# 14 AND BY THEIR PRAYER FOR YOU, WHICH LONG AFTER YOU FOR THE EXCEEDING GRACE OF GOD IN YOU.Y1# 15 THANKS BE UNTO GOD FOR HIS UNSPEAKABLE GIFT.H = CHAPTER 10 GK# 1 NOW I PAUL MYSELF BESEECH YOU BY THE MEEKNESS AND GENTLENESS OF CHRIST,WH WHO IN PRESENCE AM BASE AMONG YOU, BUT BEING ABSENT AM BOLD TOWARD YOU:I# 2 BUT I BESEECH YOU, THAT I MAY NOT BE BOLD WHEN I AM PRESENT WITH THATOL CONFIDENCE, WHEREWITH I THINK TO BE BOLD AGAINST SOME, WHICH THINK OF US AS% IF WE WALKED ACCORDING TO THE FLESH.;C# 3 FOR THOUGH WE WALK IN THE FLESH, WE DO NOT WAR AFTER THE FLESH:EM# 4 (FOR THE WEAPONS OF OUR WARFARE ARE NOT CARNAL, BUT MIGHTY THROUGH GOD TOH# THE PULLING DOWN OF STRONG HOLDS;)LH# 5 CASTING DOWN IMAGINATIONS, AND EVERY HIGH THING THAT EXALTETH ITSELFK AGAINST THE KNOWLEDGE OF GOD, AND BRINGING INTO CAPTIVITY EVERY THOUGHT TOO THE OBEDIENCE OF CHRIST;HD# 6 AND HAVING IN A READINESS TO REVENGE ALL DISOBEDIENCE, WHEN YOUR OBEDIENCE IS FULFILLED.J# 7 DO YE LOOK ON THINGS AFTER THE OUTWARD APPEARANCE? IF ANY MAN TRUST TOM HIMSELF THAT HE IS CHRISTS, LET HIM OF HIMSELF THINK THIS AGAIN, THAT, AS HE $ IS CHRISTS, EVEN SO ARE WE CHRISTS.L# 8 FOR THOUGH I SHOULD BOAST SOMEWHAT MORE OF OUR AUTHORITY, WHICH THE LORDM HATH GIVEN US FOR EDIFICATION, AND NOT FOR YOUR DESTRUCTION, I SHOULD NOT BEG ASHAMED:P=# 9 THAT I MAY NOT SEEM AS IF I WOULD TERRIFY YOU BY LETTERS.AH# 10 FOR HIS LETTERS, SAY THEY, ARE WEIGHTY AND POWERFUL; BUT HIS BODILY/ PRESENCE IS WEAK, AND HIS SPEECH CONTEMPTIBLE.TM# 11 LET SUCH AN ONE THINK THIS, THAT, SUCH AS WE ARE IN WORD BY LETTERS WHENIA WE ARE ABSENT, SUCH WILL WE BE ALSO IN DEED WHEN WE ARE PRESENT.HL# 12 FOR WE DARE NOT MAKE OURSELVES OF THE NUMBER, OR COMPARE OURSELVES WITHK SOME THAT COMMEND THEMSELVES: BUT THEY MEASURING THEMSELVES BY THEMSELVES,D9 AND COMPARING THEMSELVES AMONG THEMSELVES, ARE NOT WISE. J# 13 BUT WE WILL NOT BOAST OF THINGS WITHOUT OUR MEASURE, BUT ACCORDING TOM THE MEASURE OF THE RULE WHICH GOD HATH DISTRIBUTED TO US, A MEASURE TO REACHL EVEN UNTO YOU.IJ# 14 FOR WE STRETCH NOT OURSELVES BEYOND OUR MEASURE, AS THOUGH WE REACHEDL NOT UNTO YOU: FOR WE ARE COME AS FAR AS TO YOU ALSO IN PREACHING THE GOSPEL OF CHRIST:NG# 15 NOT BOASTING OF THINGS WITHOUT OUR MEASURE, THAT IS, OF OTHER MENS I LABOURS; BUT HAVING HOPE, WHEN YOUR FAITH IS INCREASED, THAT WE SHALL BEE2 ENLARGED BY YOU ACCORDING TO OUR RULE ABUNDANTLY,H# 16 TO PREACH THE GOSPEL IN THE REGIONS BEYOND YOU, AND NOT TO BOAST IN4 ANOTHER MANS LINE OF THINGS MADE READY TO OUR HAND.5# 17 BUT HE THAT GLORIETH, LET HIM GLORY IN THE LORD.DF# 18 FOR NOT HE THAT COMMENDETH HIMSELF IS APPROVED, BUT WHOM THE LORD COMMENDETH. = CHAPTER 11 L# 1 WOULD TO GOD YE COULD BEAR WITH ME A LITTLE IN MY FOLLY: AND INDEED BEAR WITH ME.HM# 2 FOR I AM JEALOUS OVER YOU WITH GODLY JEALOUSY: FOR I HAVE ESPOUSED YOU TOLB ONE HUSBAND, THAT I MAY PRESENT YOU AS A CHASTE VIRGIN TO CHRIST.J# 3 BUT I FEAR, LEST BY ANY MEANS, AS THE SERPENT BEGUILED EVE THROUGH HISK SUBTILTY, SO YOUR MINDS SHOULD BE CORRUPTED FROM THE SIMPLICITY THAT IS ING CHRIST.M# 4 FOR IF HE THAT COMETH PREACHETH ANOTHER JESUS, WHOM WE HAVE NOT PREACHED,DH OR IF YE RECEIVE ANOTHER SPIRIT, WHICH YE HAVE NOT RECEIVED, OR ANOTHERA GOSPEL, WHICH YE HAVE NOT ACCEPTED, YE MIGHT WELL BEAR WITH HIM.SE# 5 FOR I SUPPOSE I WAS NOT A WHIT BEHIND THE VERY CHIEFEST APOSTLES.DJ# 6 BUT THOUGH I BE RUDE IN SPEECH, YET NOT IN KNOWLEDGE; BUT WE HAVE BEEN1 THROUGHLY MADE MANIFEST AMONG YOU IN ALL THINGS.HK# 7 HAVE I COMMITTED AN OFFENCE IN ABASING MYSELF THAT YE MIGHT BE EXALTED,I9 BECAUSE I HAVE PREACHED TO YOU THE GOSPEL OF GOD FREELY?EE# 8 I ROBBED OTHER CHURCHES, TAKING WAGES OF THEM, TO DO YOU SERVICE.CL# 9 AND WHEN I WAS PRESENT WITH YOU, AND WANTED, I WAS CHARGEABLE TO NO MAN:H FOR THAT WHICH WAS LACKING TO ME THE BRETHREN WHICH00E6ED%5%T6%! ! CAME FROM MACEDONIAJ SUPPLIED: AND IN ALL THINGS I HAVE KEPT MYSELF FROM BEING BURDENSOME UNTO YOU, AND SO WILL I KEEP MYSELF.K# 10 AS THE TRUTH OF CHRIST IS IN ME, NO MAN SHALL STOP ME OF THIS BOASTINGA IN THE REGIONS OF ACHAIA.4# 11 WHEREFORE? BECAUSE I LOVE YOU NOT? GOD KNOWETH.I# 12 BUT WHAT I DO, THAT I WILL DO, THAT I MAY CUT OFF OCCASION FROM THEMON WHICH DESIRE OCCASION; THAT WHEREIN THEY GLORY, THEY MAY BE FOUND EVEN AS WE.L# 13 FOR SUCH ARE FALSE APOSTLES, DECEITFUL WORKERS, TRANSFORMING THEMSELVES INTO THE APOSTLES OF CHRIST. L# 14 AND NO MARVEL; FOR SATAN HIMSELF IS TRANSFORMED INTO AN ANGEL OF LIGHT.K# 15 THEREFORE IT IS NO GREAT THING IF HIS MINISTERS ALSO BE TRANSFORMED ASBM THE MINISTERS OF RIGHTEOUSNESS; WHOSE END SHALL BE ACCORDING TO THEIR WORKS.OI# 16 I SAY AGAIN, LET NO MAN THINK ME A FOOL; IF OTHERWISE, YET AS A FOOL . RECEIVE ME, THAT I MAY BOAST MYSELF A LITTLE.F# 17 THAT WHICH I SPEAK, I SPEAK IT NOT AFTER THE LORD, BUT AS IT WERE+ FOOLISHLY, IN THIS CONFIDENCE OF BOASTING.V?# 18 SEEING THAT MANY GLORY AFTER THE FLESH, I WILL GLORY ALSO. ?# 19 FOR YE SUFFER FOOLS GLADLY, SEEING YE YOURSELVES ARE WISE. L# 20 FOR YE SUFFER, IF A MAN BRING YOU INTO BONDAGE, IF A MAN DEVOUR YOU, IFK A MAN TAKE OF YOU, IF A MAN EXALT HIMSELF, IF A MAN SMITE YOU ON THE FACE.NH# 21 I SPEAK AS CONCERNING REPROACH, AS THOUGH WE HAD BEEN WEAK. HOWBEIT@ WHEREINSOEVER ANY IS BOLD, (I SPEAK FOOLISHLY,) I AM BOLD ALSO.J# 22 ARE THEY HEBREWS? SO AM I. ARE THEY ISRAELITES? SO AM I. ARE THEY THE SEED OF ABRAHAM? SO AM I.L# 23 ARE THEY MINISTERS OF CHRIST? (I SPEAK AS A FOOL) I AM MORE; IN LABOURSM MORE ABUNDANT, IN STRIPES ABOVE MEASURE, IN PRISONS MORE FREQUENT, IN DEATHS  OFT.,># 24 OF THE JEWS FIVE TIMES RECEIVED I FORTY STRIPES SAVE ONE.H# 25 THRICE WAS I BEATEN WITH RODS, ONCE WAS I STONED, THRICE I SUFFERED6 SHIPWRECK, A NIGHT AND A DAY I HAVE BEEN IN THE DEEP;H# 26 IN JOURNEYINGS OFTEN, IN PERILS OF WATERS, IN PERILS OF ROBBERS, INJ PERILS BY MINE OWN COUNTRYMEN, IN PERILS BY THE HEATHEN, IN PERILS IN THEI CITY, IN PERILS IN THE WILDERNESS, IN PERILS IN THE SEA, IN PERILS AMONGB FALSE BRETHREN;L# 27 IN WEARINESS AND PAINFULNESS, IN WATCHINGS OFTEN, IN HUNGER AND THIRST,* IN FASTINGS OFTEN, IN COLD AND NAKEDNESS.K# 28 BESIDE THOSE THINGS THAT ARE WITHOUT, THAT WHICH COMETH UPON ME DAILY,C THE CARE OF ALL THE CHURCHES.E# 29 WHO IS WEAK, AND I AM NOT WEAK? WHO IS OFFENDED, AND I BURN NOT?II# 30 IF I MUST NEEDS GLORY, I WILL GLORY OF THE THINGS WHICH CONCERN MINEP INFIRMITIES.AF# 31 THE GOD AND FATHER OF OUR LORD JESUS CHRIST, WHICH IS BLESSED FOR" EVERMORE, KNOWETH THAT I LIE NOT.H# 32 IN DAMASCUS THE GOVERNOR UNDER ARETAS THE KING KEPT THE CITY OF THE6 DAMASCENES WITH A GARRISON, DESIROUS TO APPREHEND ME:M# 33 AND THROUGH A WINDOW IN A BASKET WAS I LET DOWN BY THE WALL, AND ESCAPED HIS HANDS.A = CHAPTER 12 .M# 1 IT IS NOT EXPEDIENT FOR ME DOUBTLESS TO GLORY. I WILL COME TO VISIONS ANDI REVELATIONS OF THE LORD.LL# 2 I KNEW A MAN IN CHRIST ABOVE FOURTEEN YEARS AGO, (WHETHER IN THE BODY, IN CANNOT TELL; OR WHETHER OUT OF THE BODY, I CANNOT TELL: GOD KNOWETH;) SUCH AN# ONE CAUGHT UP TO THE THIRD HEAVEN. M# 3 AND I KNEW SUCH A MAN, (WHETHER IN THE BODY, OR OUT OF THE BODY, I CANNOTU TELL: GOD KNOWETH;)I# 4 HOW THAT HE WAS CAUGHT UP INTO PARADISE, AND HEARD UNSPEAKABLE WORDS,+ WHICH IT IS NOT LAWFUL FOR A MAN TO UTTER. L# 5 OF SUCH AN ONE WILL I GLORY: YET OF MYSELF I WILL NOT GLORY, BUT IN MINE INFIRMITIES.M# 6 FOR THOUGH I WOULD DESIRE TO GLORY, I SHALL NOT BE A FOOL; FOR I WILL SAYCI THE TRUTH: BUT NOW I FORBEAR, LEST ANY MAN SHOULD THINK OF ME ABOVE THATN3 WHICH HE SEETH ME TO BE, OR THAT HE HEARETH OF ME.WK# 7 AND LEST I SHOULD BE EXALTED ABOVE MEASURE THROUGH THE ABUNDANCE OF THEKJ REVELATIONS, THERE WAS GIVEN TO ME A THORN IN THE FLESH, THE MESSENGER OF< SATAN TO BUFFET ME, LEST I SHOULD BE EXALTED ABOVE MEASURE.L# 8 FOR THIS THING I BESOUGHT THE LORD THRICE, THAT IT MIGHT DEPART FROM ME.L# 9 AND HE SAID UNTO ME, MY GRACE IS SUFFICIENT FOR TH00EE<%X>%+%O-%TADATADATAEE: FOR MY STRENGTH ISJ MADE PERFECT IN WEAKNESS. MOST GLADLY THEREFORE WILL I RATHER GLORY IN MY8 INFIRMITIES, THAT THE POWER OF CHRIST MAY REST UPON ME.M# 10 THEREFORE I TAKE PLEASURE IN INFIRMITIES, IN REPROACHES, IN NECESSITIES, M IN PERSECUTIONS, IN DISTRESSES FOR CHRISTS SAKE: FOR WHEN I AM WEAK, THEN AMF I STRONG.I# 11 I AM BECOME A FOOL IN GLORYING; YE HAVE COMPELLED ME: FOR I OUGHT TOSI HAVE BEEN COMMENDED OF YOU: FOR IN NOTHING AM I BEHIND THE VERY CHIEFESTM APOSTLES, THOUGH I BE NOTHING.EM# 12 TRULY THE SIGNS OF AN APOSTLE WERE WROUGHT AMONG YOU IN ALL PATIENCE, INA& SIGNS, AND WONDERS, AND MIGHTY DEEDS.L# 13 FOR WHAT IS IT WHEREIN YE WERE INFERIOR TO OTHER CHURCHES, EXCEPT IT BE@ THAT I MYSELF WAS NOT BURDENSOME TO YOU? FORGIVE ME THIS WRONG.H# 14 BEHOLD, THE THIRD TIME I AM READY TO COME TO YOU; AND I WILL NOT BEL BURDENSOME TO YOU: FOR I SEEK NOT YOURS BUT YOU: FOR THE CHILDREN OUGHT NOT= TO LAY UP FOR THE PARENTS, BUT THE PARENTS FOR THE CHILDREN.G# 15 AND I WILL VERY GLADLY SPEND AND BE SPENT FOR YOU; THOUGH THE MORE , ABUNDANTLY I LOVE YOU, THE LESS I BE LOVED.M# 16 BUT BE IT SO, I DID NOT BURDEN YOU: NEVERTHELESS, BEING CRAFTY, I CAUGHTT YOU WITH GUILE.B# 17 DID I MAKE A GAIN OF YOU BY ANY OF THEM WHOM I SENT UNTO YOU?M# 18 I DESIRED TITUS, AND WITH HIM I SENT A BROTHER. DID TITUS MAKE A GAIN OFOH YOU? WALKED WE NOT IN THE SAME SPIRIT? WALKED WE NOT IN THE SAME STEPS?K# 19 AGAIN, THINK YE THAT WE EXCUSE OURSELVES UNTO YOU? WE SPEAK BEFORE GOD5D IN CHRIST: BUT WE DO ALL THINGS, DEARLY BELOVED, FOR YOUR EDIFYING.M# 20 FOR I FEAR, LEST, WHEN I COME, I SHALL NOT FIND YOU SUCH AS I WOULD, ANDEL THAT I SHALL BE FOUND UNTO YOU SUCH AS YE WOULD NOT: LEST THERE BE DEBATES,I ENVYINGS, WRATHS, STRIFES, BACKBITINGS, WHISPERINGS, SWELLINGS, TUMULTS: M# 21 AND LEST, WHEN I COME AGAIN, MY GOD WILL HUMBLE ME AMONG YOU, AND THAT INJ SHALL BEWAIL MANY WHICH HAVE SINNED ALREADY, AND HAVE NOT REPENTED OF THEJ UNCLEANNESS AND FORNICATION AND LASCIVIOUSNESS WHICH THEY HAVE COMMITTED. = CHAPTER 13 RK# 1 THIS IS THE THIRD TIME I AM COMING TO YOU. IN THE MOUTH OF TWO OR THREEO+ WITNESSES SHALL EVERY WORD BE ESTABLISHED.LI# 2 I TOLD YOU BEFORE, AND FORETELL YOU, AS IF I WERE PRESENT, THE SECOND,M TIME; AND BEING ABSENT NOW I WRITE TO THEM WHICH HERETOFORE HAVE SINNED, AND,7 TO ALL OTHER, THAT, IF I COME AGAIN, I WILL NOT SPARE:TL# 3 SINCE YE SEEK A PROOF OF CHRIST SPEAKING IN ME, WHICH TO YOU-WARD IS NOT WEAK, BUT IS MIGHTY IN YOU.L# 4 FOR THOUGH HE WAS CRUCIFIED THROUGH WEAKNESS, YET HE LIVETH BY THE POWERM OF GOD. FOR WE ALSO ARE WEAK IN HIM, BUT WE SHALL LIVE WITH HIM BY THE POWERS OF GOD TOWARD YOU.TJ# 5 EXAMINE YOURSELVES, WHETHER YE BE IN THE FAITH; PROVE YOUR OWN SELVES.K KNOW YE NOT YOUR OWN SELVES, HOW THAT JESUS CHRIST IS IN YOU, EXCEPT YE BE REPROBATES?># 6 BUT I TRUST THAT YE SHALL KNOW THAT WE ARE NOT REPROBATES.M# 7 NOW I PRAY TO GOD THAT YE DO NO EVIL; NOT THAT WE SHOULD APPEAR APPROVED,BH BUT THAT YE SHOULD DO THAT WHICH IS HONEST, THOUGH WE BE AS REPROBATES.?# 8 FOR WE CAN DO NOTHING AGAINST THE TRUTH, BUT FOR THE TRUTH.UJ# 9 FOR WE ARE GLAD, WHEN WE ARE WEAK, AND YE ARE STRONG: AND THIS ALSO WE WISH, EVEN YOUR PERFECTION.M# 10 THEREFORE I WRITE THESE THINGS BEING ABSENT, LEST BEING PRESENT I SHOULDRF USE SHARPNESS, ACCORDING TO THE POWER WHICH THE LORD HATH GIVEN ME TO% EDIFICATION, AND NOT TO DESTRUCTION. K# 11 FINALLY, BRETHREN, FAREWELL. BE PERFECT, BE OF GOOD COMFORT, BE OF ONEBF MIND, LIVE IN PEACE; AND THE GOD OF LOVE AND PEACE SHALL BE WITH YOU.)# 12 GREET ONE ANOTHER WITH AN HOLY KISS.,# 13 ALL THE SAINTS SALUTE YOU.AE# 14 THE GRACE OF THE LORD JESUS CHRIST, AND THE LOVE OF GOD, AND THEE4 COMMUNION OF THE HOLY GHOST, BE WITH YOU ALL. AMEN.NGS BEING ABSENT, LEST BEING PRESENT I SHOULDRF USE SHARPNESS, ACCORDING TO THE POWER WHICH THE LORD HATH GIVEN ME TO% EDIFICATION, AND NOT TO DESTRUCTION. K# 11 FINALLY, BRETHREN, FAREWELL. BE PERFECT, BE OF GOOD COMFORT, BE OF ONEBF MIND, LIVE IN PEACE; AND THE GOD OF LOVE AND PEACE SHALL BE WIT00E6ED%5%T6%! !* BOOK48 GALATIANS = CHAPTER 1 K# 1 PAUL, AN APOSTLE, (NOT OF MEN, NEITHER BY MAN, BUT BY JESUS CHRIST, ANDD/ GOD THE FATHER, WHO RAISED HIM FROM THE DEAD;)MI# 2 AND ALL THE BRETHREN WHICH ARE WITH ME, UNTO THE CHURCHES OF GALATIA:GJ# 3 GRACE BE TO YOU AND PEACE FROM GOD THE FATHER, AND FROM OUR LORD JESUS CHRIST,M# 4 WHO GAVE HIMSELF FOR OUR SINS, THAT HE MIGHT DELIVER US FROM THIS PRESENT 9 EVIL WORLD, ACCORDING TO THE WILL OF GOD AND OUR FATHER:P-# 5 TO WHOM BE GLORY FOR EVER AND EVER. AMEN.TJ# 6 I MARVEL THAT YE ARE SO SOON REMOVED FROM HIM THAT CALLED YOU INTO THE% GRACE OF CHRIST UNTO ANOTHER GOSPEL:GG# 7 WHICH IS NOT ANOTHER; BUT THERE BE SOME THAT TROUBLE YOU, AND WOULDW PERVERT THE GOSPEL OF CHRIST.L# 8 BUT THOUGH WE, OR AN ANGEL FROM HEAVEN, PREACH ANY OTHER GOSPEL UNTO YOU@ THAN THAT WHICH WE HAVE PREACHED UNTO YOU, LET HIM BE ACCURSED.M# 9 AS WE SAID BEFORE, SO SAY I NOW AGAIN, IF ANY MAN PREACH ANY OTHER GOSPELO: UNTO YOU THAN THAT YE HAVE RECEIVED, LET HIM BE ACCURSED.L# 10 FOR DO I NOW PERSUADE MEN, OR GOD? OR DO I SEEK TO PLEASE MEN? FOR IF I8 YET PLEASED MEN, I SHOULD NOT BE THE SERVANT OF CHRIST.M# 11 BUT I CERTIFY YOU, BRETHREN, THAT THE GOSPEL WHICH WAS PREACHED OF ME ISE NOT AFTER MAN. J# 12 FOR I NEITHER RECEIVED IT OF MAN, NEITHER WAS I TAUGHT IT, BUT BY THE REVELATION OF JESUS CHRIST.L# 13 FOR YE HAVE HEARD OF MY CONVERSATION IN TIME PAST IN THE JEWS RELIGION,G HOW THAT BEYOND MEASURE I PERSECUTED THE CHURCH OF GOD, AND WASTED IT: G# 14 AND PROFITED IN THE JEWS RELIGION ABOVE MANY MY EQUALS IN MINE OWNKH NATION, BEING MORE EXCEEDINGLY ZEALOUS OF THE TRADITIONS OF MY FATHERS.H# 15 BUT WHEN IT PLEASED GOD, WHO SEPARATED ME FROM MY MOTHERS WOMB, AND CALLED ME BY HIS GRACE,H# 16 TO REVEAL HIS SON IN ME, THAT I MIGHT PREACH HIM AMONG THE HEATHEN;2 IMMEDIATELY I CONFERRED NOT WITH FLESH AND BLOOD:J# 17 NEITHER WENT I UP TO JERUSALEM TO THEM WHICH WERE APOSTLES BEFORE ME;: BUT I WENT INTO ARABIA, AND RETURNED AGAIN UNTO DAMASCUS.J# 18 THEN AFTER THREE YEARS I WENT UP TO JERUSALEM TO SEE PETER, AND ABODE WITH HIM FIFTEEN DAYS.EH# 19 BUT OTHER OF THE APOSTLES SAW I NONE, SAVE JAMES THE LORDS BROTHER.J# 20 NOW THE THINGS WHICH I WRITE UNTO YOU, BEHOLD, BEFORE GOD, I LIE NOT.=# 21 AFTERWARDS I CAME INTO THE REGIONS OF SYRIA AND CILICIA; F# 22 AND WAS UNKNOWN BY FACE UNTO THE CHURCHES OF JUDAEA WHICH WERE IN CHRIST:K# 23 BUT THEY HAD HEARD ONLY, THAT HE WHICH PERSECUTED US IN TIMES PAST NOWI- PREACHETH THE FAITH WHICH ONCE HE DESTROYED. "# 24 AND THEY GLORIFIED GOD IN ME. = CHAPTER 2 M# 1 THEN FOURTEEN YEARS AFTER I WENT UP AGAIN TO JERUSALEM WITH BARNABAS, ANDN TOOK TITUS WITH ME ALSO.RM# 2 AND I WENT UP BY REVELATION, AND COMMUNICATED UNTO THEM THAT GOSPEL WHICHOM I PREACH AMONG THE GENTILES, BUT PRIVATELY TO THEM WHICH WERE OF REPUTATION,S5 LEST BY ANY MEANS I SHOULD RUN, OR HAD RUN, IN VAIN. J# 3 BUT NEITHER TITUS, WHO WAS WITH ME, BEING A GREEK, WAS COMPELLED TO BE CIRCUMCISED:G# 4 AND THAT BECAUSE OF FALSE BRETHREN UNAWARES BROUGHT IN, WHO CAME INON PRIVILY TO SPY OUT OUR LIBERTY WHICH WE HAVE IN CHRIST JESUS, THAT THEY MIGHT BRING US INTO BONDAGE:TL# 5 TO WHOM WE GAVE PLACE BY SUBJECTION, NO, NOT FOR AN HOUR; THAT THE TRUTH' OF THE GOSPEL MIGHT CONTINUE WITH YOU.NL# 6 BUT OF THESE WHO SEEMED TO BE SOMEWHAT, (WHATSOEVER THEY WERE, IT MAKETHJ NO MATTER TO ME: GOD ACCEPTETH NO MANS PERSON:) FOR THEY WHO SEEMED TO BE, SOMEWHAT IN CONFERENCE ADDED NOTHING TO ME:M# 7 BUT CONTRARIWISE, WHEN THEY SAW THAT THE GOSPEL OF THE UNCIRCUMCISION WASAE COMMITTED UNTO ME, AS THE GOSPEL OF THE CIRCUMCISION WAS UNTO PETER;TG# 8 (FOR HE THAT WROUGHT EFFECTUALLY IN PETER TO THE APOSTLESHIP OF THEB> CIRCUMCISION, THE SAME WAS MIGHTY IN ME TOWARD THE GENTILES:)M# 9 AND WHEN JAMES, CEPHAS, AND JOHN, WHO SEEMED TO BE PILLARS, PERCEIVED THE N GRACE THAT WAS GIVEN UNTO ME, THEY GAVE TO ME AND BARNABAS THE RIGHT HANDS OFB FELLOWSHIP; THAT WE SHOULD GO UNTO THE HEATHEN, AND THEY UNTO THE CIRCUMCISION.L# 10 ONLY THEY WOULD THAT WE SHOULD REMEMBER THE P00EE<%X>%+%O-%TADATADATAOOR; THE SAME WHICH I ALSO WAS FORWARD TO DO.EM# 11 BUT WHEN PETER WAS COME TO ANTIOCH, I WITHSTOOD HIM TO THE FACE, BECAUSEO HE WAS TO BE BLAMED.BK# 12 FOR BEFORE THAT CERTAIN CAME FROM JAMES, HE DID EAT WITH THE GENTILES:NI BUT WHEN THEY WERE COME, HE WITHDREW AND SEPARATED HIMSELF, FEARING THEMT WHICH WERE OF THE CIRCUMCISION.L# 13 AND THE OTHER JEWS DISSEMBLED LIKEWISE WITH HIM; INSOMUCH THAT BARNABAS0 ALSO WAS CARRIED AWAY WITH THEIR DISSIMULATION.L# 14 BUT WHEN I SAW THAT THEY WALKED NOT UPRIGHTLY ACCORDING TO THE TRUTH OFL THE GOSPEL, I SAID UNTO PETER BEFORE THEM ALL, IF THOU, BEING A JEW, LIVESTN AFTER THE MANNER OF GENTILES, AND NOT AS DO THE JEWS, WHY COMPELLEST THOU THE! GENTILES TO LIVE AS DO THE JEWS?SC# 15 WE WHO ARE JEWS BY NATURE, AND NOT SINNERS OF THE GENTILES, ITIL# 16 KNOWING THAT A MAN IS NOT JUSTIFIED BY THE WORKS OF THE LAW, BUT BY THEL FAITH OF JESUS CHRIST, EVEN WE HAVE BELIEVED IN JESUS CHRIST, THAT WE MIGHTM BE JUSTIFIED BY THE FAITH OF CHRIST, AND NOT BY THE WORKS OF THE LAW: FOR BY 2 THE WORKS OF THE LAW SHALL NO FLESH BE JUSTIFIED.K# 17 BUT IF, WHILE WE SEEK TO BE JUSTIFIED BY CHRIST, WE OURSELVES ALSO ARETD FOUND SINNERS, IS THEREFORE CHRIST THE MINISTER OF SIN? GOD FORBID.G# 18 FOR IF I BUILD AGAIN THE THINGS WHICH I DESTROYED, I MAKE MYSELF AI TRANSGRESSOR.J# 19 FOR I THROUGH THE LAW AM DEAD TO THE LAW, THAT I MIGHT LIVE UNTO GOD.J# 20 I AM CRUCIFIED WITH CHRIST: NEVERTHLESS I LIVE; YET NOT I, BUT CHRISTM LIVETH IN ME: AND THE LIFE WHICH I NOW LIVE IN THE FLESH I LIVE BY THE FAITHR: OF THE SON OF GOD, WHO LOVED ME, AND GAVE HIMSELF FOR ME.J# 21 I DO NOT FRUSTRATE THE GRACE OF GOD: FOR IF RIGHTEOUSNESS COME BY THE" LAW, THEN CHRIST IS DEAD IN VAIN. = CHAPTER 3 L# 1 O FOOLISH GALATIANS, WHO HATH BEWITCHED YOU, THAT YE SHOULD NOT OBEY THEE TRUTH, BEFORE WHOSE EYES JESUS CHRIST HATH BEEN EVIDENTLY SET FORTH,  CRUCIFIED AMONG YOU? J# 2 THIS ONLY WOULD I LEARN OF YOU, RECEIVED YE THE SPIRIT BY THE WORKS OF% THE LAW, OR BY THE HEARING OF FAITH?IM# 3 ARE YE SO FOOLISH? HAVING BEGUN IN THE SPIRIT, ARE YE NOW MADE PERFECT BYE THE FLESH?MB# 4 HAVE YE SUFFERED SO MANY THINGS IN VAIN? IF IT BE YET IN VAIN.I# 5 HE THEREFORE THAT MINISTERETH TO YOU THE SPIRIT, AND WORKETH MIRACLES L AMONG YOU, DOETH HE IT BY THE WORKS OF THE LAW, OR BY THE HEARING OF FAITH?A# 6 EVEN AS ABRAHAM BELIEVED GOD, AND IT WAS ACCOUNTED TO HIM FORD RIGHTEOUSNESS. M# 7 KNOW YE THEREFORE THAT THEY WHICH ARE OF FAITH, THE SAME ARE THE CHILDRENW OF ABRAHAM.L# 8 AND THE SCRIPTURE, FORESEEING THAT GOD WOULD JUSTIFY THE HEATHEN THROUGHJ FAITH, PREACHED BEFORE THE GOSPEL UNTO ABRAHAM, SAYING, IN THEE SHALL ALL NATIONS BE BLESSED.E# 9 SO THEN THEY WHICH BE OF FAITH ARE BLESSED WITH FAITHFUL ABRAHAM.RK# 10 FOR AS MANY AS ARE OF THE WORKS OF THE LAW ARE UNDER THE CURSE: FOR IT L IS WRITTEN, CURSED IS EVERY ONE THAT CONTINUETH NOT IN ALL THINGS WHICH ARE+ WRITTEN IN THE BOOK OF THE LAW TO DO THEM.EG# 11 BUT THAT NO MAN IS JUSTIFIED BY THE LAW IN THE SIGHT OF GOD, IT ISH, EVIDENT: FOR, THE JUST SHALL LIVE BY FAITH.L# 12 AND THE LAW IS NOT OF FAITH: BUT, THE MAN THAT DOETH THEM SHALL LIVE IN THEM.J# 13 CHRIST HATH REDEEMED US FROM THE CURSE OF THE LAW, BEING MADE A CURSEG FOR US: FOR IT IS WRITTEN, CURSED IS EVERY ONE THAT HANGETH ON A TREE: J# 14 THAT THE BLESSING OF ABRAHAM MIGHT COME ON THE GENTILES THROUGH JESUSG CHRIST; THAT WE MIGHT RECEIVE THE PROMISE OF THE SPIRIT THROUGH FAITH. G# 15 BRETHREN, I SPEAK AFTER THE MANNER OF MEN; THOUGH IT BE BUT A MANS J COVENANT, YET IF IT BE CONFIRMED, NO MAN DISANNULLETH, OR ADDETH THERETO.M# 16 NOW TO ABRAHAM AND HIS SEED WERE THE PROMISES MADE. HE SAITH NOT, AND TOHD SEEDS, AS OF MANY; BUT AS OF ONE, AND TO THY SEED, WHICH IS CHRIST.K# 17 AND THIS I SAY, THAT THE COVENANT, THAT WAS CONFIRMED BEFORE OF GOD IN G CHRIST, THE LAW, WHICH WAS FOUR HUNDRED AND THIRTY YEARS AFTER, CANNOTA: DISANNUL, THAT IT SHOULD MAKE THE PROMISE OF NONE EFFECT.L# 18 FOR IF THE INHERITANCE BE OF THE LAW, IT IS NO MORE OF PROMISE: BUT GOD GAVE IT00E6ED%5%T6%! ! TO ABRAHAM BY PROMISE.NL# 19 WHEREFORE THEN SERVETH THE LAW? IT WAS ADDED BECAUSE OF TRANSGRESSIONS,L TILL THE SEED SHOULD COME TO WHOM THE PROMISE WAS MADE; AND IT WAS ORDAINED% BY ANGELS IN THE HAND OF A MEDIATOR.A=# 20 NOW A MEDIATOR IS NOT A MEDIATOR OF ONE, BUT GOD IS ONE.GJ# 21 IS THE LAW THEN AGAINST THE PROMISES OF GOD? GOD FORBID: FOR IT THEREN HAD BEEN A LAW GIVEN WHICH COULD HAVE GIVEN LIFE, VERILY RIGHTEOUSNESS SHOULD HAVE BEEN BY THE LAW.H# 22 BUT THE SCRIPTURE HATH CONCLUDED ALL UNDER SIN, THAT THE PROMISE BY; FAITH OF JESUS CHRIST MIGHT BE GIVEN TO THEM THAT BELIEVE.TH# 23 BUT BEFORE FAITH CAME, WE WERE KEPT UNDER THE LAW, SHUT UP UNTO THE+ FAITH WHICH SHOULD AFTERWARDS BE REVEALED. L# 24 WHEREFORE THE LAW WAS OUR SCHOOLMASTER TO BRING US UNTO CHRIST, THAT WE MIGHT BE JUSTIFIED BY FAITH.EI# 25 BUT AFTER THAT FAITH IS COME, WE ARE NO LONGER UNDER A SCHOOLMASTER.LA# 26 FOR YE ARE ALL THE CHILDREN OF GOD BY FAITH IN CHRIST JESUS.AM# 27 FOR AS MANY OF YOU AS HAVE BEEN BAPTIZED INTO CHRIST HAVE PUT ON CHRIST.FM# 28 THERE IS NEITHER JEW NOR GREEK, THERE IS NEITHER BOND NOR FREE, THERE IST= NEITHER MALE NOR FEMALE: FOR YE ARE ALL ONE IN CHRIST JESUS.IL# 29 AND IF YE BE CHRISTS, THEN ARE YE ABRAHAMS SEED, AND HEIRS ACCORDING TO THE PROMISE.N = CHAPTER 4 N# 1 NOW I SAY, THAT THE HEIR, AS LONG AS HE IS A CHILD, DIFFERETH NOTHING FROM% A SERVANT, THOUGH HE BE LORD OF ALL;FM# 2 BUT IS UNDER TUTORS AND GOVERNORS UNTIL THE TIME APPOINTED OF THE FATHER.OL# 3 EVEN SO WE, WHEN WE WERE CHILDREN, WERE IN BONDAGE UNDER THE ELEMENTS OF THE WORLD: K# 4 BUT WHEN THE FULNESS OF THE TIME WAS COME, GOD SENT FORTH HIS SON, MADEO OF A WOMAN, MADE UNDER THE LAW,E# 5 TO REDEEM THEM THAT WERE UNDER THE LAW, THAT WE MIGHT RECEIVE THED ADOPTION OF SONS.K# 6 AND BECAUSE YE ARE SONS, GOD HATH SENT FORTH THE SPIRIT OF HIS SON INTOF# YOUR HEARTS, CRYING, ABBA, FATHER.HJ# 7 WHEREFORE THOU ART NO MORE A SERVANT, BUT A SON; AND IF A SON, THEN AN HEIR OF GOD THROUGH CHRIST.I# 8 HOWBEIT THEN, WHEN YE KNEW NOT GOD, YE DID SERVICE UNTO THEM WHICH BYT NATURE ARE NO GODS.J# 9 BUT NOW, AFTER THAT YE HAVE KNOWN GOD, OR RATHER ARE KNOWN OF GOD, HOWN TURN YE AGAIN TO THE WEAK AND BEGGARLY ELEMENTS, WHEREUNTO YE DESIRE AGAIN TO BE IN BONDAGE?7# 10 YE OBSERVE DAYS, AND MONTHS, AND TIMES, AND YEARS. F# 11 I AM AFRAID OF YOU, LEST I HAVE BESTOWED UPON YOU LABOUR IN VAIN.I# 12 BRETHREN, I BESEECH YOU, BE AS I AM; FOR I AM AS YE ARE: YE HAVE NOTE INJURED ME AT ALL.RJ# 13 YE KNOW HOW THROUGH INFIRMITY OF THE FLESH I PREACHED THE GOSPEL UNTO YOU AT THE FIRST.K# 14 AND MY TEMPTATION WHICH WAS IN MY FLESH YE DESPISED NOT, NOR REJECTED;N: BUT RECEIVED ME AS AN ANGEL OF GOD, EVEN AS CHRIST JESUS.L# 15 WHERE IS THEN THE BLESSEDNESS YE SPAKE OF? FOR I BEAR YOU RECORD, THAT,K IF IT HAD BEEN POSSIBLE, YE WOULD HAVE PLUCKED OUT YOUR OWN EYES, AND HAVE  GIVEN THEM TO ME.D# 16 AM I THEREFORE BECOME YOUR ENEMY, BECAUSE I TELL YOU THE TRUTH?J# 17 THEY ZEALOUSLY AFFECT YOU, BUT NOT WELL; YEA, THEY WOULD EXCLUDE YOU, THAT YE MIGHT AFFECT THEM.NL# 18 BUT IT IS GOOD TO BE ZEALOUSLY AFFECTED ALWAYS IN A GOOD THING, AND NOT! ONLY WHEN I AM PRESENT WITH YOU.EI# 19 MY LITTLE CHILDREN, OF WHOM I TRAVAIL IN BIRTH AGAIN UNTIL CHRIST BES FORMED IN YOU,FM# 20 I DESIRE TO BE PRESENT WITH YOU NOW, AND TO CHANGE MY VOICE; FOR I STAND  IN DOUBT OF YOU.AI# 21 TELL ME, YE THAT DESIRE TO BE UNDER THE LAW, DO YE NOT HEAR THE LAW?EM# 22 FOR IT IS WRITTEN, THAT ABRAHAM HAD TWO SONS, THE ONE BY A BONDMAID, THE  OTHER BY A FREEWOMAN.L# 23 BUT HE WHO WAS OF THE BONDWOMAN WAS BORN AFTER THE FLESH; BUT HE OF THE FREEWOMAN WAS BY PROMISE.K# 24 WHICH THINGS ARE AN ALLEGORY: FOR THESE ARE THE TWO COVENANTS; THE ONEIA FROM THE MOUNT SINAI, WHICH GENDERETH TO BONDAGE, WHICH IS AGAR.BM# 25 FOR THIS AGAR IS MOUNT SINAI IN ARABIA, AND ANSWERETH TO JERUSALEM WHICHA- NOW IS, AND IS IN BONDAGE WITH HER CHILDREN.LI# 26 BUT JERUSALEM WHICH IS ABOVE IS FREE, WHICH IS THE MOTHER OF US ALL.SJ# 27 FOR IT IS WRITTEN, REJOICE, THOU BA00EE<%X>%+%O-%TADATADATARREN THAT BEAREST NOT; BREAK FORTHL AND CRY, THOU THAT TRAVAILEST NOT: FOR THE DESOLATE HATH MANY MORE CHILDREN THAN SHE WHICH HATH AN HUSBAND.A# 28 NOW WE, BRETHREN, AS ISAAC WAS, ARE THE CHILDREN OF PROMISE.NI# 29 BUT AS THEN HE THAT WAS BORN AFTER THE FLESH PERSECUTED HIM THAT WAS * BORN AFTER THE SPIRIT, EVEN SO IT IS NOW.J# 30 NEVERTHELESS WHAT SAITH THE SCRIPTURE? CAST OUT THE BONDWOMAN AND HERH SON: FOR THE SON OF THE BONDWOMAN SHALL NOT BE HEIR WITH THE SON OF THE FREEWOMAN.EH# 31 SO THEN, BRETHREN, WE ARE NOT CHILDREN OF THE BONDWOMAN, BUT OF THE FREE. = CHAPTER 5 K# 1 STAND FAST THEREFORE IN THE LIBERTY WHEREWITH CHRIST HATH MADE US FREE,,5 AND BE NOT ENTANGLED AGAIN WITH THE YOKE OF BONDAGE.H# 2 BEHOLD, I PAUL SAY UNTO YOU, THAT IF YE BE CIRCUMCISED, CHRIST SHALL PROFIT YOU NOTHING.M# 3 FOR I TESTIFY AGAIN TO EVERY MAN THAT IS CIRCUMCISED, THAT HE IS A DEBTORE TO DO THE WHOLE LAW.NM# 4 CHRIST IS BECOME OF NO EFFECT UNTO YOU, WHOSOEVER OF YOU ARE JUSTIFIED BYN# THE LAW; YE ARE FALLEN FROM GRACE.TJ# 5 FOR WE THROUGH THE SPIRIT WAIT FOR THE HOPE OF RIGHTEOUSNESS BY FAITH.D# 6 FOR IN JESUS CHRIST NEITHER CIRCUMCISION AVAILETH ANY THING, NOR1 UNCIRCUMCISION; BUT FAITH WHICH WORKETH BY LOVE. J# 7 YE DID RUN WELL; WHO DID HINDER YOU THAT YE SHOULD NOT OBEY THE TRUTH?7# 8 THIS PERSUASION COMETH NOT OF HIM THAT CALLETH YOU.A-# 9 A LITTLE LEAVEN LEAVENETH THE WHOLE LUMP.TD# 10 I HAVE CONFIDENCE IN YOU THROUGH THE LORD, THAT YE WILL BE NONEN OTHERWISE MINDED: BUT HE THAT TROUBLETH YOU SHALL BEAR HIS JUDGMENT, WHOSEVER HE BE.IG# 11 AND I, BRETHREN, IF I YET PREACH CIRCUMCISION, WHY DO I YET SUFFER 6 PERSECUTION? THEN IS THE OFFENCE OF THE CROSS CEASED.6# 12 I WOULD THEY WERE EVEN CUT OFF WHICH TROUBLE YOU.J# 13 FOR, BRETHREN, YE HAVE BEEN CALLED UNTO LIBERTY; ONLY USE NOT LIBERTY= FOR AN OCCASION TO THE FLESH, BUT BY LOVE SERVE ONE ANOTHER. L# 14 FOR ALL THE LAW IS FULFILLED IN ONE WORD, EVEN IN THIS; THOU SHALT LOVE THY NEIGHBOUR AS THYSELF.M# 15 BUT IF YE BITE AND DEVOUR ONE ANOTHER, TAKE HEED THAT YE BE NOT CONSUMEDI ONE OF ANOTHER.M# 16 THIS I SAY THEN, WALK IN THE SPIRIT, AND YE SHALL NOT FULFIL THE LUST OF THE FLESH.FI# 17 FOR THE FLESH LUSTETH AGAINST THE SPIRIT, AND THE SPIRIT AGAINST THEM FLESH: AND THESE ARE CONTRARY THE ONE TO THE OTHER: SO THAT YE CANNOT DO THER THINGS THAT YE WOULD.># 18 BUT IF YE BE LED OF THE SPIRIT, YE ARE NOT UNDER THE LAW.H# 19 NOW THE WORKS OF THE FLESH ARE MANIFEST, WHICH ARE THESE; ADULTERY,* FORNICATION, UNCLEANNESS, LASCIVIOUSNESS,G# 20 IDOLATRY, WITCHCRAFT, HATRED, VARIANCE, EMULATIONS, WRATH, STRIFE,  SEDITIONS, HERESIES,TL# 21 ENVYINGS, MURDERS, DRUNKENNESS, REVELLINGS, AND SUCH LIKE: OF THE WHICHL I TELL YOU BEFORE, AS I HAVE ALSO TOLD YOU IN TIME PAST, THAT THEY WHICH DO2 SUCH THINGS SHALL NOT INHERIT THE KINGDOM OF GOD.D# 22 BUT THE FRUIT OF THE SPIRIT IS LOVE, JOY, PEACE, LONGSUFFERING, GENTLENESS, GOODNESS, FAITH,E8# 23 MEEKNESS, TEMPERANCE: AGAINST SUCH THERE IS NO LAW.K# 24 AND THEY THAT ARE CHRISTS HAVE CRUCIFIED THE FLESH WITH THE AFFECTIONST AND LUSTS.,># 25 IF WE LIVE IN THE SPIRIT, LET US ALSO WALK IN THE SPIRIT.M# 26 LET US NOT BE DESIROUS OF VAIN GLORY, PROVOKING ONE ANOTHER, ENVYING ONE ANOTHER.I = CHAPTER 6 G# 1 BRETHREN, IF A MAN BE OVERTAKEN IN A FAULT, YE WHICH ARE SPIRITUAL,EN RESTORE SUCH AN ONE IN THE SPIRIT OF MEEKNESS; CONSIDERING THYSELF, LEST THOU ALSO BE TEMPTED.,B# 2 BEAR YE ONE ANOTHERS BURDENS, AND SO FULFIL THE LAW OF CHRIST.F# 3 FOR IF A MAN THINK HIMSELF TO BE SOMETHING, WHEN HE IS NOTHING, HE DECEIVETH HIMSELF.LM# 4 BUT LET EVERY MAN PROVE HIS OWN WORK, AND THEN SHALL HE HAVE REJOICING INT# HIMSELF ALONE, AND NOT IN ANOTHER.O,# 5 FOR EVERY MAN SHALL BEAR HIS OWN BURDEN.L# 6 LET HIM THAT IS TAUGHT IN THE WORD COMMUNICATE UNTO HIM THAT TEACHETH IN ALL GOOD THINGS.SI# 7 BE NOT DECEIVED; GOD IS NOT MOCKED: FOR WHATSOEVER A MAN SOWETH, THAT  SHALL HE ALSO REAP.K# 8 FOR HE THAT SOWETH TO HIS FLESH SHALL OF THE FLESH REAP CORRUPTION; BUTTH HE THAT SOWETH TO T00FFD%5%T6%! !HE SPIRIT SHALL OF THE SPIRIT REAP LIFE EVERLASTING.K# 9 AND LET US NOT BE WEARY IN WELL DOING: FOR IN DUE SEASON WE SHALL REAP,I IF WE FAINT NOT. C# 10 AS WE HAVE THEREFORE OPPORTUNITY, LET US DO GOOD UNTO ALL MEN, 8 ESPECIALLY UNTO THEM WHO ARE OF THE HOUSEHOLD OF FAITH.J# 11 YE SEE HOW LARGE A LETTER I HAVE WRITTEN UNTO YOU WITH MINE OWN HAND.K# 12 AS MANY AS DESIRE TO MAKE A FAIR SHEW IN THE FLESH, THEY CONSTRAIN YOUOM TO BE CIRCUMCISED; ONLY LEST THEY SHOULD SUFFER PERSECUTION FOR THE CROSS OFT CHRIST.M# 13 FOR NEITHER THEY THEMSELVES WHO ARE CIRCUMCISED KEEP THE LAW; BUT DESIRE < TO HAVE YOU CIRCUMCISED, THAT THEY MAY GLORY IN YOUR FLESH.L# 14 BUT GOD FORBID THAT I SHOULD GLORY, SAVE IN THE CROSS OF OUR LORD JESUSF CHRIST, BY WHOM THE WORLD IS CRUCIFIED UNTO ME, AND I UNTO THE WORLD.E# 15 FOR IN CHRIST JESUS NEITHER CIRCUMCISION AVAILETH ANY THING, NORE$ UNCIRCUMCISION, BUT A NEW CREATURE.M# 16 AND AS MANY AS WALK ACCORDING TO THIS RULE, PEACE BE ON THEM, AND MERCY,I AND UPON THE ISRAEL OF GOD.K# 17 FROM HENCEFORTH LET NO MAN TROUBLE ME: FOR I BEAR IN MY BODY THE MARKSR OF THE LORD JESUS.UL# 18 BRETHREN, THE GRACE OF OUR LORD JESUS CHRIST BE WITH YOUR SPIRIT. AMEN.GLORY, SAVE IN THE CROSS OF OUR LORD JESUSF CHRIST, BY WHOM THE WORLD IS CRUCIFIED UNTO ME, AND I UNTO THE WORLD.E# 15 FOR IN CHRIST JESUS NEITHER CIRCUMCISION AVAILETH ANY THING, NORE$ UNCIRCUMCISION, BUT A NEW CREATURE.M# 16 AND AS MANY AS WALK ACCORDING TO THIS RULE, PEACE BE ON THEM, AND MERCY,I AND UPON THE ISRA* BOOK49 EPHESIANS = CHAPTER 1 L# 1 PAUL, AN APOSTLE OF JESUS CHRIST BY THE WILL OF GOD, TO THE SAINTS WHICH5 ARE AT EPHESUS, AND TO THE FAITHFUL IN CHRIST JESUS:TL# 2 GRACE BE TO YOU, AND PEACE, FROM GOD OUR FATHER, AND FROM THE LORD JESUS CHRIST.L# 3 BLESSED BE THE GOD AND FATHER OF OUR LORD JESUS CHRIST, WHO HATH BLESSED> US WITH ALL SPIRITUAL BLESSINGS IN HEAVENLY PLACES IN CHRIST:M# 4 ACCORDING AS HE HATH CHOSEN US IN HIM BEFORE THE FOUNDATION OF THE WORLD,E= THAT WE SHOULD BE HOLY AND WITHOUT BLAME BEFORE HIM IN LOVE:EL# 5 HAVING PREDESTINATED US UNTO THE ADOPTION OF CHILDREN BY JESUS CHRIST TO8 HIMSELF, ACCORDING TO THE GOOD PLEASURE OF HIS WILL, ITM# 6 TO THE PRAISE OF THE GLORY OF HIS GRACE, WHEREIN HE HATH MADE US ACCEPTEDS IN THE BELOVED.J# 7 IN WHOM WE HAVE REDEMPTION THROUGH HIS BLOOD, THE FORGIVENESS OF SINS,& ACCORDING TO THE RICHES OF HIS GRACE;B# 8 WHEREIN HE HATH ABOUNDED TOWARD US IN ALL WISDOM AND PRUDENCE;L# 9 HAVING MADE KNOWN UNTO US THE MYSTERY OF HIS WILL, ACCORDING TO HIS GOOD, PLEASURE WHICH HE HATH PURPOSED IN HIMSELF:E# 10 THAT IN THE DISPENSATION OF THE FULNESS OF TIMES HE MIGHT GATHERON TOGETHER IN ONE ALL THINGS IN CHRIST, BOTH WHICH ARE IN HEAVEN, AND WHICH ARE ON EARTH; EVEN IN HIM:AF# 11 IN WHOM ALSO WE HAVE OBTAINED AN INHERITANCE, BEING PREDESTINATEDL ACCORDING TO THE PURPOSE OF HIM WHO WORKETH ALL THINGS AFTER THE COUNSEL OF HIS OWN WILL:G# 12 THAT WE SHOULD BE TO THE PRAISE OF HIS GLORY, WHO FIRST TRUSTED INU CHRIST.H# 13 IN WHOM YE ALSO TRUSTED, AFTER THAT YE HEARD THE WORD OF TRUTH, THEN GOSPEL OF YOUR SALVATION: IN WHOM ALSO AFTER THAT YE BELIEVED, YE WERE SEALED" WITH THAT HOLY SPIRIT OF PROMISE,H# 14 WHICH IS THE EARNEST OF OUR INHERITANCE UNTIL THE REDEMPTION OF THE4 PURCHASED POSSESSION, UNTO THE PRAISE OF HIS GLORY.I# 15 WHEREFORE I ALSO, AFTER I HEARD OF YOUR FAITH IN THE LORD JESUS, ANDF LOVE UNTO ALL THE SAINTS,K# 16 CEASE NOT TO GIVE THANKS FOR YOU, MAKING MENTION OF YOU IN MY PRAYERS;II# 17 THAT THE GOD OF OUR LORD JESUS CHRIST, THE FATHER OF GLORY, MAY GIVE F UNTO YOU THE SPIRIT OF WISDOM AND REVELATION IN THE KNOWLEDGE OF HIM:L# 18 THE EYES OF YOUR UNDERSTANDING BEING ENLIGHTENED; THAT YE MAY KNOW WHATD IS THE HOPE OF HIS CALLING, AND WHAT THE RICHES OF THE GLORY OF HIS INHERITANCE IN THE SAINTS,LM# 19 AND WHAT IS THE EXCEEDING GREATNESS OF HIS POWER TO US-WARD WHO BELIEVE,F. ACCORDING TO THE WORKING OF HIS MIGHTY POWER,J# 20 WHICH HE WROUGHT IN CHRIST, WHEN HE RAISED HIM FROM THE DEAD, AND SET2 HIM AT HIS OWN 00 FE<%X>%+%O-%TADATADATARIGHT HAND IN THE HEAVENLY PLACES,H# 21 FAR ABOVE ALL PRINCIPALITY, AND POWER, AND MIGHT, AND DOMINION, ANDL EVERY NAME THAT IS NAMED, NOT ONLY IN THIS WORLD, BUT ALSO IN THAT WHICH IS TO COME:HM# 22 AND HATH PUT ALL THINGS UNDER HIS FEET, AND GAVE HIM TO BE THE HEAD OVER  ALL THINGS TO THE CHURCH,C# 23 WHICH IS HIS BODY, THE FULNESS OF HIM THAT FILLETH ALL IN ALL.C = CHAPTER 2 D# 1 AND YOU HATH HE QUICKENED, WHO WERE DEAD IN TRESPASSES AND SINS;I# 2 WHEREIN IN TIME PAST YE WALKED ACCORDING TO THE COURSE OF THIS WORLD,NM ACCORDING TO THE PRINCE OF THE POWER OF THE AIR, THE SPIRIT THAT NOW WORKETH,! IN THE CHILDREN OF DISOBEDIENCE:TM# 3 AMONG WHOM ALSO WE ALL HAD OUR CONVERSATION IN TIMES PAST IN THE LUSTS OFLL OUR FLESH, FULFILLING THE DESIRES OF THE FLESH AND OF THE MIND; AND WERE BY. NATURE THE CHILDREN OF WRATH, EVEN AS OTHERS.L# 4 BUT GOD, WHO IS RICH IN MERCY, FOR HIS GREAT LOVE WHEREWITH HE LOVED US,K# 5 EVEN WHEN WE WERE DEAD IN SINS, HATH QUICKENED US TOGETHER WITH CHRIST,R (BY GRACE YE ARE SAVED;)WH# 6 AND HATH RAISED US UP TOGETHER, AND MADE US SIT TOGETHER IN HEAVENLY PLACES IN CHRIST JESUS:L# 7 THAT IN THE AGES TO COME HE MIGHT SHEW THE EXCEEDING RICHES OF HIS GRACE0 IN HIS KINDNESS TOWARD US THROUGH CHRIST JESUS.K# 8 FOR BY GRACE ARE YE SAVED THROUGH FAITH; AND THAT NOT OF YOURSELVES: IT  IS THE GIFT OF GOD:,# 9 NOT OF WORKS, LEST ANY MAN SHOULD BOAST.I# 10 FOR WE ARE HIS WORKMANSHIP, CREATED IN CHRIST JESUS UNTO GOOD WORKS,Q< WHICH GOD HATH BEFORE ORDAINED THAT WE SHOULD WALK IN THEM.J# 11 WHEREFORE REMEMBER, THAT YE BEING IN TIME PAST GENTILES IN THE FLESH,N WHO ARE CALLED UNCIRCUMCISION BY THAT WHICH IS CALLED THE CIRCUMCISION IN THE FLESH MADE BY HANDS;D# 12 THAT AT THAT TIME YE WERE WITHOUT CHRIST, BEING ALIENS FROM THEL COMMONWEALTH OF ISRAEL, AND STRANGERS FROM THE COVENANTS OF PROMISE, HAVING' NO HOPE, AND WITHOUT GOD IN THE WORLD:OK# 13 BUT NOW IN CHRIST JESUS YE WHO SOMETIMES WERE FAR OFF ARE MADE NIGH BYS THE BLOOD OF CHRIST.OJ# 14 FOR HE IS OUR PEACE, WHO HATH MADE BOTH ONE, AND HATH BROKEN DOWN THE% MIDDLE WALL OF PARTITION BETWEEN US;,K# 15 HAVING ABOLISHED IN HIS FLESH THE ENMITY, EVEN THE LAW OF COMMANDMENTSTI CONTAINED IN ORDINANCES; FOR TO MAKE IN HIMSELF OF TWAIN ONE NEW MAN, SOB MAKING PEACE;H# 16 AND THAT HE MIGHT RECONCILE BOTH UNTO GOD IN ONE BODY BY THE CROSS,! HAVING SLAIN THE ENMITY THEREBY: M# 17 AND CAME AND PREACHED PEACE TO YOU WHICH WERE AFAR OFF, AND TO THEM THATM WERE NIGH.G# 18 FOR THROUGH HIM WE BOTH HAVE ACCESS BY ONE SPIRIT UNTO THE FATHER. ?# 19 NOW THEREFORE YE ARE NO MORE STRANGERS AND FOREIGNERS, BUT= FELLOWCITIZENS WITH THE SAINTS, AND OF THE HOUSEHOLD OF GOD;CJ# 20 AND ARE BUILT UPON THE FOUNDATION OF THE APOSTLES AND PROPHETS, JESUS- CHRIST HIMSELF BEING THE CHIEF CORNER STONE;MH# 21 IN WHOM ALL THE BUILDING FITLY FRAMED TOGETHER GROWETH UNTO AN HOLY TEMPLE IN THE LORD:J# 22 IN WHOM YE ALSO ARE BUILDED TOGETHER FOR AN HABITATION OF GOD THROUGH THE SPIRIT. = CHAPTER 3 I# 1 FOR THIS CAUSE I PAUL, THE PRISONER OF JESUS CHRIST FOR YOU GENTILES,OK# 2 IF YE HAVE HEARD OF THE DISPENSATION OF THE GRACE OF GOD WHICH IS GIVENI ME TO YOU-WARD:I# 3 HOW THAT BY REVELATION HE MADE KNOWN UNTO ME THE MYSTERY; (AS I WROTED AFORE IN FEW WORDS,K# 4 WHEREBY, WHEN YE READ, YE MAY UNDERSTAND MY KNOWLEDGE IN THE MYSTERY OFL CHRIST)M# 5 WHICH IN OTHER AGES WAS NOT MADE KNOWN UNTO THE SONS OF MEN, AS IT IS NOWI< REVEALED UNTO HIS HOLY APOSTLES AND PROPHETS BY THE SPIRIT;F# 6 THAT THE GENTILES SHOULD BE FELLOWHEIRS, AND OF THE SAME BODY, AND2 PARTAKERS OF HIS PROMISE IN CHRIST BY THE GOSPEL:L# 7 WHEREOF I WAS MADE A MINISTER, ACCORDING TO THE GIFT OF THE GRACE OF GOD5 GIVEN UNTO ME BY THE EFFECTUAL WORKING OF HIS POWER.TK# 8 UNTO ME, WHO AM LESS THAN THE LEAST OF ALL SAINTS, IS THIS GRACE GIVEN,WK THAT I SHOULD PREACH AMONG THE GENTILES THE UNSEARCHABLE RICHES OF CHRIST;NM# 9 AND TO MAKE ALL MEN SEE WHAT IS THE FELLOWSHIP OF THE MYSTERY, WHICH FROMHK THE BEGINNING OF THE WORLD HATH BEEN HID IN GOD, WHO CR00FFD%5%T6%! !EATED ALL THINGS BYA JESUS CHRIST:J# 10 TO THE INTENT THAT NOW UNTO THE PRINCIPALITIES AND POWERS IN HEAVENLY@ PLACES MIGHT BE KNOWN BY THE CHURCH THE MAINFOLD WISDOM OF GOD,K# 11 ACCORDING TO THE ETERNAL PURPOSE WHICH HE PURPOSED IN CHRIST JESUS OURE LORD:M# 12 IN WHOM WE HAVE BOLDNESS AND ACCESS WITH CONFIDENCE BY THE FAITH OF HIM.UK# 13 WHEREFORE I DESIRE THAT YE FAINT NOT AT MY TRIBULATIONS FOR YOU, WHICHW IS YOUR GLORY.RL# 14 FOR THIS CAUSE I BOW MY KNEES UNTO THE FATHER OF OUR LORD JESUS CHRIST,;# 15 OF WHOM THE WHOLE FAMILY IN HEAVEN AND EARTH IS NAMED,NI# 16 THAT HE WOULD GRANT YOU, ACCORDING TO THE RICHES OF HIS GLORY, TO BE 8 STRENGTHENED WITH MIGHT BY HIS SPIRIT IN THE INNER MAN;M# 17 THAT CHRIST MAY DWELL IN YOUR HEARTS BY FAITH; THAT YE, BEING ROOTED AND  GROUNDED IN LOVE,G# 18 MAY BE ABLE TO COMPREHEND WITH ALL SAINTS WHAT IS THE BREADTH, ANDY LENGTH, AND DEPTH, AND HEIGHT;RK# 19 AND TO KNOW THE LOVE OF CHRIST, WHICH PASSETH KNOWLEDGE, THAT YE MIGHTA' BE FILLED WITH ALL THE FULNESS OF GOD.HK# 20 NOW UNTO HIM THAT IS ABLE TO DO EXCEEDING ABUNDANTLY ABOVE ALL THAT WEY9 ASK OR THINK, ACCORDING TO THE POWER THAT WORKETH IN US,EI# 21 UNTO HIM BE GLORY IN THE CHURCH BY CHRIST JESUS THROUGHOUT ALL AGES,I WORLD WITHOUT END. AMEN.T = CHAPTER 4 M# 1 I THEREFORE, THE PRISONER OF THE LORD, BESEECH YOU THAT YE WALK WORTHY OFA& THE VOCATION WHEREWITH YE ARE CALLED,G# 2 WITH ALL LOWLINESS AND MEEKNESS, WITH LONGSUFFERING, FORBEARING ONEL ANOTHER IN LOVE;AF# 3 ENDEAVOURING TO KEEP THE UNITY OF THE SPIRIT IN THE BOND OF PEACE.K# 4 THERE IS ONE BODY, AND ONE SPIRIT, EVEN AS YE ARE CALLED IN ONE HOPE OF  YOUR CALLING;%# 5 ONE LORD, ONE FAITH, ONE BAPTISM,IL# 6 ONE GOD AND FATHER OF ALL, WHO IS ABOVE ALL, AND THROUGH ALL, AND IN YOU ALL.PK# 7 BUT UNTO EVERY ONE OF US IS GIVEN GRACE ACCORDING TO THE MEASURE OF THEO GIFT OF CHRIST.E# 8 WHEREFORE HE SAITH, WHEN HE ASCENDED UP ON HIGH, HE LED CAPTIVITYT" CAPTIVE, AND GAVE GIFTS UNTO MEN.K# 9 (NOW THAT HE ASCENDED, WHAT IS IT BUT THAT HE ALSO DESCENDED FIRST INTOD THE LOWER PARTS OF THE EARTH?F# 10 HE THAT DESCENDED IS THE SAME ALSO THAT ASCENDED UP FAR ABOVE ALL) HEAVENS, THAT HE MIGHT FILL ALL THINGS.) K# 11 AND HE GAVE SOME, APOSTLES; AND SOME, PROPHETS; AND SOME, EVANGELISTS;A AND SOME, PASTORS AND TEACHERS;L# 12 FOR THE PERFECTING OF THE SAINTS, FOR THE WORK OF THE MINISTRY, FOR THE EDIFYING OF THE BODY OF CHRIST:L# 13 TILL WE ALL COME IN THE UNITY OF THE FAITH, AND OF THE KNOWLEDGE OF THEG SON OF GOD, UNTO A PERFECT MAN, UNTO THE MEASURE OF THE STATURE OF THER FULLNESS OF CHRIST:K# 14 THAT WE HENCEFORTH BE NO MORE CHILDREN, TOSSED TO AND FRO, AND CARRIEDEF ABOUT WITH EVERY WIND OF DOCTRINE, BY THE SLEIGHT OF MEN, AND CUNNING1 CRAFTINESS, WHEREBY THEY LIE IN WAIT TO DECEIVE;MH# 15 BUT SPEAKING THE TRUTH IN LOVE, MAY GROW UP INTO HIM IN ALL THINGS, WHICH IS THE HEAD, EVEN CHRIST:I# 16 FROM WHOM THE WHOLE BODY FITLY JOINED TOGETHER AND COMPACTED BY THATTG WHICH EVERY JOINT SUPPLIETH, ACCORDING TO THE EFFECTUAL WORKING IN THE H MEASURE OF EVERY PART, MAKETH INCREASE OF THE BODY UNTO THE EDIFYING OF ITSELF IN LOVE.K# 17 THIS I SAY THEREFORE, AND TESTIFY IN THE LORD, THAT YE HENCEFORTH WALKY9 NOT AS OTHER GENTILES WALK, IN THE VANITY OF THEIR MIND, L# 18 HAVING THE UNDERSTANDING DARKENED, BEING ALIENATED FROM THE LIFE OF GODI THROUGH THE IGNORANCE THAT IS IN THEM, BECAUSE OF THE BLINDNESS OF THEIRW HEART: K# 19 WHO BEING PAST FEELING HAVE GIVEN THEMSELVES OVER UNTO LASCIVIOUSNESS,C) TO WORK ALL UNCLEANNESS WITH GREEDINESS.M'# 20 BUT YE HAVE NOT SO LEARNED CHRIST;TI# 21 IF SO BE THAT YE HAVE HEARD HIM, AND HAVE BEEN TAUGHT BY HIM, AS THEA TRUTH IS IN JESUS:DM# 22 THAT YE PUT OFF CONCERNING THE FORMER CONVERSATION THE OLD MAN, WHICH IS * CORRUPT ACCORDING TO THE DECEITFUL LUSTS;/# 23 AND BE RENEWED IN THE SPIRIT OF YOUR MIND;HB# 24 AND THAT YE PUT ON THE NEW MAN, WHICH AFTER GOD IS CREATED IN! RIGHTEOUSNESS AND TRUE HOLINESS.NL# 25 WHEREFORE PUTTING AWAY LYING, SPEAK EVERY MAN TRUTH WITH HIS NE00FE<%X>%+%O-%TADATADATAIGHBOUR:# FOR WE ARE MEMBERS ONE OF ANOTHER.TG# 26 BE YE ANGRY, AND SIN NOT: LET NOT THE SUN GO DOWN UPON YOUR WRATH: %# 27 NEITHER GIVE PLACE TO THE DEVIL.SI# 28 LET HIM THAT STOLE STEAL NO MORE: BUT RATHER LET HIM LABOUR, WORKINGWM WITH HIS HANDS THE THING WHICH IS GOOD, THAT HE MAY HAVE TO GIVE TO HIM THATE NEEDETH.YK# 29 LET NO CORRUPT COMMUNICATION PROCEED OUT OF YOUR MOUTH, BUT THAT WHICHNM IS GOOD TO THE USE OF EDIFYING, THAT IT MAY MINISTER GRACE UNTO THE HEARERS.EJ# 30 AND GRIEVE NOT THE HOLY SPIRIT OF GOD, WHEREBY YE ARE SEALED UNTO THE DAY OF REDEMPTION.ID# 31 LET ALL BITTERNESS, AND WRATH, AND ANGER, AND CLAMOUR, AND EVIL1 SPEAKING, BE PUT AWAY FROM YOU, WITH ALL MALICE:OI# 32 AND BE YE KIND ONE TO ANOTHER, TENDERHEARTED, FORGIVING ONE ANOTHER, 0 EVEN AS GOD FOR CHRISTS SAKE HATH FORGIVEN YOU. = CHAPTER 5 7# 1 BE YE THEREFORE FOLLOWERS OF GOD, AS DEAR CHILDREN;BJ# 2 AND WALK IN LOVE, AS CHRIST ALSO HATH LOVED US, AND HATH GIVEN HIMSELFF FOR US AN OFFERING AND A SACRIFICE TO GOD FOR A SWEETSMELLING SAVOUR.M# 3 BUT FORNICATION, AND ALL UNCLEANNESS, OR COVETOUSNESS, LET IT NOT BE ONCEH% NAMED AMONG YOU, AS BECOMETH SAINTS;EG# 4 NEITHER FILTHINESS, NOR FOOLISH TALKING, NOR JESTING, WHICH ARE NOTO) CONVENIENT: BUT RATHER GIVING OF THANKS.HK# 5 FOR THIS YE KNOW, THAT NO WHOREMONGER, NOR UNCLEAN PERSON, NOR COVETOUSYN MAN, WHO IS AN IDOLATER, HATH ANY INHERITANCE IN THE KINGDOM OF CHRIST AND OF GOD.HG# 6 LET NO MAN DECEIVE YOU WITH VAIN WORDS: FOR BECAUSE OF THESE THINGS ; COMETH THE WRATH OF GOD UPON THE CHILDREN OF DISOBEDIENCE.A,# 7 BE NOT YE THEREFORE PARTAKERS WITH THEM.M# 8 FOR YE WERE SOMETIMES DARKNESS, BUT NOW ARE YE LIGHT IN THE LORD: WALK ASL CHILDREN OF LIGHT:II# 9 (FOR THE FRUIT OF THE SPIRIT IS IN ALL GOODNESS AND RIGHTEOUSNESS ANDS TRUTH;).# 10 PROVING WHAT IS ACCEPTABLE UNTO THE LORD.M# 11 AND HAVE NO FELLOWSHIP WITH THE UNFRUITFUL WORKS OF DARKNESS, BUT RATHER  REPROVE THEM.K# 12 FOR IT IS A SHAME EVEN TO SPEAK OF THOSE THINGS WHICH ARE DONE OF THEMM IN SECRET. I# 13 BUT ALL THINGS THAT ARE REPROVED ARE MADE MANIFEST BY THE LIGHT: FORR( WHATSOEVER DOTH MAKE MANIFEST IS LIGHT.K# 14 WHEREFORE HE SAITH, AWAKE THOU THAT SLEEPEST, AND ARISE FROM THE DEAD, " AND CHRIST SHALL GIVE THEE LIGHT.D# 15 SEE THEN THAT YE WALK CIRCUMSPECTLY, NOT AS FOOLS, BUT AS WISE,3# 16 REDEEMING THE TIME, BECAUSE THE DAYS ARE EVIL.IL# 17 WHEREFORE BE YE NOT UNWISE, BUT UNDERSTANDING WHAT THE WILL OF THE LORD IS.J# 18 AND BE NOT DRUNK WITH WINE, WHEREIN IS EXCESS; BUT BE FILLED WITH THE SPIRIT;L# 19 SPEAKING TO YOURSELVES IN PSALMS AND HYMNS AND SPIRITUAL SONGS, SINGING- AND MAKING MELODY IN YOUR HEART TO THE LORD;AL# 20 GIVING THANKS ALWAYS FOR ALL THINGS UNTO GOD AND THE FATHER IN THE NAME OF OUR LORD JESUS CHRIST;=# 21 SUBMITTING YOURSELVES ONE TO ANOTHER IN THE FEAR OF GOD.RG# 22 WIVES, SUBMIT YOURSELVES UNTO YOUR OWN HUSBANDS, AS UNTO THE LORD.UK# 23 FOR THE HUSBAND IS THE HEAD OF THE WIFE, EVEN AS CHRIST IS THE HEAD OFN/ THE CHURCH: AND HE IS THE SAVIOUR OF THE BODY.HK# 24 THEREFORE AS THE CHURCH IS SUBJECT UNTO CHRIST, SO LET THE WIVES BE TO # THEIR OWN HUSBANDS IN EVERY THING. I# 25 HUSBANDS, LOVE YOUR WIVES, EVEN AS CHRIST ALSO LOVED THE CHURCH, AND  GAVE HIMSELF FOR IT;AK# 26 THAT HE MIGHT SANCTIFY AND CLEANSE IT WITH THE WASHING OF WATER BY THET WORD,L# 27 THAT HE MIGHT PRESENT IT TO HIMSELF A GLORIOUS CHURCH, NOT HAVING SPOT,F OR WRINKLE, OR ANY SUCH THING; BUT THAT IT SHOULD BE HOLY AND WITHOUT BLEMISH.M# 28 SO OUGHT MEN TO LOVE THEIR WIVES AS THEIR OWN BODIES. HE THAT LOVETH HISI WIFE LOVETH HIMSELF.SK# 29 FOR NO MAN EVER YET HATED HIS OWN FLESH; BUT NOURISHETH AND CHERISHETHL! IT, EVEN AS THE LORD THE CHURCH: D# 30 FOR WE ARE MEMBERS OF HIS BODY, OF HIS FLESH, AND OF HIS BONES.I# 31 FOR THIS CAUSE SHALL A MAN LEAVE HIS FATHER AND MOTHER, AND SHALL BEE7 JOINED UNTO HIS WIFE, AND THEY TWO SHALL BE ONE FLESH.GK# 32 THIS IS A GREAT MYSTERY: BUT I SPEAK CONCERNING CHRIST AND THE CHURCH.TM# 33 NEVERTHELESS LET EVERY ONE OF YOU IN PA00"F(FD%5%T6%! !RTICULAR SO LOVE HIS WIFE EVEN AST: HIMSELF; AND THE WIFE SEE THAT SHE REVERENCE HER HUSBAND. = CHAPTER 6 ?# 1 CHILDREN, OBEY YOUR PARENTS IN THE LORD: FOR THIS IS RIGHT.HE# 2 HONOUR THY FATHER AND MOTHER; WHICH IS THE FIRST COMMANDMENT WITHI PROMISE; J# 3 THAT IT MAY BE WELL WITH THEE, AND THOU MAYEST LIVE LONG ON THE EARTH.M# 4 AND, YE FATHERS, PROVOKE NOT YOUR CHILDREN TO WRATH: BUT BRING THEM UP INS( THE NURTURE AND ADMONITION OF THE LORD.H# 5 SERVANTS, BE OBEDIENT TO THEM THAT ARE YOUR MASTERS ACCORDING TO THEM FLESH, WITH FEAR AND TREMBLING, IN SINGLENESS OF YOUR HEART, AS UNTO CHRIST; M# 6 NOT WITH EYESERVICE, AS MENPLEASERS; BUT AS THE SERVANTS OF CHRIST, DOING THE WILL OF GOD FROM THE HEART;A# 7 WITH GOOD WILL DOING SERVICE, AS TO THE LORD, AND NOT TO MEN:WG# 8 KNOWING THAT WHATSOEVER GOOD THING ANY MAN DOETH, THE SAME SHALL HER1 RECEIVE OF THE LORD, WHETHER HE BE BOND OR FREE.EJ# 9 AND, YE MASTERS, DO THE SAME THINGS UNTO THEM, FORBEARING THREATENING:H KNOWING THAT YOUR MASTER ALSO IS IN HEAVEN; NEITHER IS THERE RESPECT OF PERSONS WITH HIM.I# 10 FINALLY, MY BRETHREN, BE STRONG IN THE LORD, AND IN THE POWER OF HIS; MIGHT.HM# 11 PUT ON THE WHOLE ARMOUR OF GOD, THAT YE MAY BE ABLE TO STAND AGAINST THEI WILES OF THE DEVIL.L# 12 FOR WE WRESTLE NOT AGAINST FLESH AND BLOOD, BUT AGAINST PRINCIPALITIES,J AGAINST POWERS, AGAINST THE RULERS OF THE DARKNESS OF THIS WORLD, AGAINST% SPIRITUAL WICKEDNESS IN HIGH PLACES.GL# 13 WHEREFORE TAKE UNTO YOU THE WHOLE ARMOUR OF GOD, THAT YE MAY BE ABLE TO: WITHSTAND IN THE EVIL DAY, AND HAVING DONE ALL, TO STAND.L# 14 STAND THEREFORE, HAVING YOUR LOINS GIRT ABOUT WITH TRUTH, AND HAVING ON" THE BREASTPLATE OF RIGHTEOUSNESS;D# 15 AND YOUR FEET SHOD WITH THE PREPARATION OF THE GOSPEL OF PEACE;I# 16 ABOVE ALL, TAKING THE SHIELD OF FAITH, WHEREWITH YE SHALL BE ABLE TO* QUENCH ALL THE FIERY DARTS OF THE WICKED.L# 17 AND TAKE THE HELMET OF SALVATION, AND THE SWORD OF THE SPIRIT, WHICH IS THE WORD OF GOD:YG# 18 PRAYING ALWAYS WITH ALL PRAYER AND SUPPLICATION IN THE SPIRIT, ANDLJ WATCHING THEREUNTO WITH ALL PERSEVERANCE AND SUPPLICATION FOR ALL SAINTS;H# 19 AND FOR ME, THAT UTTERANCE MAY BE GIVEN UNTO ME, THAT I MAY OPEN MY7 MOUTH BOLDLY, TO MAKE KNOWN THE MYSTERY OF THE GOSPEL,PL# 20 FOR WHICH I AM AN AMBASSADOR IN BONDS: THAT THEREIN I MAY SPEAK BOLDLY, AS I OUGHT TO SPEAK. L# 21 BUT THAT YE ALSO MAY KNOW MY AFFAIRS, AND HOW I DO, TYCHICUS, A BELOVEDG BROTHER AND FAITHFUL MINISTER IN THE LORD, SHALL MAKE KNOWN TO YOU ALLI THINGS:K# 22 WHOM I HAVE SENT UNTO YOU FOR THE SAME PURPOSE, THAT YE MIGHT KNOW OURE0 AFFAIRS, AND THAT HE MIGHT COMFORT YOUR HEARTS.K# 23 PEACE BE TO THE BRETHREN, AND LOVE WITH FAITH, FROM GOD THE FATHER AND, THE LORD JESUS CHRIST.YI# 24 GRACE BE WITH ALL THEM THAT LOVE OUR LORD JESUS CHRIST IN SINCERITY.I AMEN.AK BOLDLY, AS I OUGHT TO SPEAK. L# 21 BUT THAT YE ALSO MAY KNOW MY AFFAIRS, AND HOW I DO, TYCHICUS, A BELOVEDG BROTHER AND FAITHFUL MINISTER IN THE LORD, SHALL MAKE KNOWN TO YOU ALLI THINGS:K# * BOOK50 PHILIPPIANS = CHAPTER 1 J# 1 PAUL AND TIMOTHEUS, THE SERVANTS OF JESUS CHRIST, TO ALL THE SAINTS INB CHRIST JESUS WHICH ARE AT PHILIPPI, WITH THE BISHOPS AND DEACONS:H# 2 GRACE BE UNTO YOU, AND PEACE, FROM GOD OUR FATHER, AND FROM THE LORD JESUS CHRIST.1# 3 I THANK MY GOD UPON EVERY REMEMBRANCE OF YOU,,G# 4 ALWAYS IN EVERY PRAYER OF MINE FOR YOU ALL MAKING REQUEST WITH JOY,HC# 5 FOR YOUR FELLOWSHIP IN THE GOSPEL FROM THE FIRST DAY UNTIL NOW;OL# 6 BEING CONFIDENT OF THIS VERY THING, THAT HE WHICH HATH BEGUN A GOOD WORK6 IN YOU WILL PERFORM IT UNTIL THE DAY OF JESUS CHRIST:M# 7 EVEN AS IT IS MEET FOR ME TO THINK THIS OF YOU ALL, BECAUSE I HAVE YOU IN L MY HEART; INASMUCH AS BOTH IN MY BONDS, AND IN THE DEFENCE AND CONFIRMATION1 OF THE GOSPEL, YE ALL ARE PARTAKERS OF MY GRACE.VK# 8 FOR GOD IS MY RECORD, HOW GREATLY I LONG AFTER YOU ALL IN THE BOWELS OFN JESUS CHRIST.M# 9 AND THIS I PRAY, THAT YOUR LOVE MAY ABOUND YET MORE AND MORE IN KNOWLEDGE  AND IN ALL JUDGMENT; J# 10 THAT YE M00*FE<%X>%+%O-%TADATADATAAY APPROVE THINGS THAT ARE EXCELLENT; THAT YE MAY BE SINCERE, AND WITHOUT OFFENCE TILL THE DAY OF CHRIST.F# 11 BEING FILLED WITH THE FRUITS OF RIGHTEOUSNESS, WHICH ARE BY JESUS* CHRIST, UNTO THE GLORY AND PRAISE OF GOD.F# 12 BUT I WOULD YE SHOULD UNDERSTAND, BRETHREN, THAT THE THINGS WHICHL HAPPENED UNTO ME HAVE FALLEN OUT RATHER UNTO THE FURTHERANCE OF THE GOSPEL;J# 13 SO THAT MY BONDS IN CHRIST ARE MANIFEST IN ALL THE PALACE, AND IN ALL OTHER PLACES;L# 14 AND MANY OF THE BRETHREN IN THE LORD, WAXING CONFIDENT BY MY BONDS, ARE/ MUCH MORE BOLD TO SPEAK THE WORD WITHOUT FEAR.NM# 15 SOME INDEED PREACH CHRIST EVEN OF ENVY AND STRIFE; AND SOME ALSO OF GOOD  WILL:I# 16 THE ONE PREACH CHRIST OF CONTENTION, NOT SINCERELY, SUPPOSING TO ADD  AFFLICTION TO MY BONDS:H# 17 BUT THE OTHER OF LOVE, KNOWING THAT I AM SET FOR THE DEFENCE OF THE GOSPEL.M# 18 WHAT THEN? NOTWITHSTANDING, EVERY WAY, WHETHER IN PRETENCE, OR IN TRUTH,AE CHRIST IS PREACHED; AND I THEREIN DO REJOICE, YEA, AND WILL REJOICE.RM# 19 FOR I KNOW THAT THIS SHALL TURN TO MY SALVATION THROUGH YOUR PRAYER, AND * THE SUPPLY OF THE SPIRIT OF JESUS CHRIST,M# 20 ACCORDING TO MY EARNEST EXPECTATION AND MY HOPE, THAT IN NOTHING I SHALLOL BE ASHAMED, BUT THAT WITH ALL BOLDNESS, AS ALWAYS, SO NOW ALSO CHRIST SHALL= BE MAGNIFIED IN MY BODY, WHETHER IT BE BY LIFE, OR BY DEATH.F5# 21 FOR TO ME TO LIVE IS CHRIST, AND TO DIE IS GAIN.WK# 22 BUT IF I LIVE IN THE FLESH, THIS IS THE FRUIT OF MY LABOUR: YET WHAT I  SHALL CHOOSE I WOT NOT.K# 23 FOR I AM IN A STRAIT BETWIXT TWO, HAVING A DESIRE TO DEPART, AND TO BEY" WITH CHRIST; WHICH IS FAR BETTER:@# 24 NEVERTHELESS TO ABIDE IN THE FLESH IS MORE NEEDFUL FOR YOU.L# 25 AND HAVING THIS CONFIDENCE, I KNOW THAT I SHALL ABIDE AND CONTINUE WITH/ YOU ALL FOR YOUR FURTHERANCE AND JOY OF FAITH;MJ# 26 THAT YOUR REJOICING MAY BE MORE ABUNDANT IN JESUS CHRIST FOR ME BY MY COMING TO YOU AGAIN.WL# 27 ONLY LET YOUR CONVERSATION BE AS IT BECOMETH THE GOSPEL OF CHRIST: THATK WHETHER I COME AND SEE YOU, OR ELSE BE ABSENT, I MAY HEAR OF YOUR AFFAIRS,EJ THAT YE STAND FAST IN ONE SPIRIT, WITH ONE MIND STRIVING TOGETHER FOR THE FAITH OF THE GOSPEL;LF# 28 AND IN NOTHING TERRIFIED BY YOUR ADVERSARIES: WHICH IS TO THEM ANF EVIDENT TOKEN OF PERDITION, BUT TO YOU OF SALVATION, AND THAT OF GOD.M# 29 FOR UNTO YOU IT IS GIVEN IN THE BEHALF OF CHRIST, NOT ONLY TO BELIEVE ON & HIM, BUT ALSO TO SUFFER FOR HIS SAKE;K# 30 HAVING THE SAME CONFLICT WHICH YE SAW IN ME, AND NOW HEAR TO BE IN ME.H = CHAPTER 2 L# 1 IF THERE BE THEREFORE ANY CONSOLATION IN CHRIST, IF ANY COMFORT OF LOVE,< IF ANY FELLOWSHIP OF THE SPIRIT, IF ANY BOWELS AND MERCIES,K# 2 FULFIL YE MY JOY, THAT YE BE LIKEMINDED, HAVING THE SAME LOVE, BEING OF  ONE ACCORD, OF ONE MIND.OM# 3 LET NOTHING BE DONE THROUGH STRIFE OR VAINGLORY; BUT IN LOWLINESS OF MIND . LET EACH ESTEEM OTHER BETTER THAN THEMSELVES.M# 4 LOOK NOT EVERY MAN ON HIS OWN THINGS, BUT EVERY MAN ALSO ON THE THINGS OFH OTHERS.<# 5 LET THIS MIND BE IN YOU, WHICH WAS ALSO IN CHRIST JESUS:J# 6 WHO, BEING IN THE FORM OF GOD, THOUGHT IT NOT ROBBERY TO BE EQUAL WITH GOD:PF# 7 BUT MADE HIMSELF OF NO REPUTATION, AND TOOK UPON HIM THE FORM OF A. SERVANT, AND WAS MADE IN THE LIKENESS OF MEN:G# 8 AND BEING FOUND IN FASHION AS A MAN, HE HUMBLED HIMSELF, AND BECAMEA2 OBEDIENT UNTO DEATH, EVEN THE DEATH OF THE CROSS.M# 9 WHEREFORE GOD ALSO HATH HIGHLY EXALTED HIM, AND GIVEN HIM A NAME WHICH ISV ABOVE EVERY NAME:J# 10 THAT AT THE NAME OF JESUS EVERY KNEE SHOULD BOW, OF THINGS IN HEAVEN,1 AND THINGS IN EARTH, AND THINGS UNDER THE EARTH;IK# 11 AND THAT EVERY TONGUE SHOULD CONFESS THAT JESUS CHRIST IS LORD, TO THE, GLORY OF GOD THE FATHER. K# 12 WHEREFORE, MY BELOVED, AS YE HAVE ALWAYS OBEYED, NOT AS IN MY PRESENCEFM ONLY, BUT NOW MUCH MORE IN MY ABSENCE, WORK OUT YOUR OWN SALVATION WITH FEARE AND TREMBLING.SJ# 13 FOR IT IS GOD WHICH WORKETH IN YOU BOTH TO WILL AND TO DO OF HIS GOOD PLEASURE.5# 14 DO ALL THINGS WITHOUT MURMURINGS AND DISPUTINGS:EL# 15 THAT YE MAY BE BLAMELESS AND HARMLE002F(FD%5%T6%! !SS, THE SONS OF GOD, WITHOUT REBUKE,M IN THE MIDST OF A CROOKED AND PERVERSE NATION, AMONG WHOM YE SHINE AS LIGHTST IN THE WORLD;M# 16 HOLDING FORTH THE WORD OF LIFE; THAT I MAY REJOICE IN THE DAY OF CHRIST,S7 THAT I HAVE NOT RUN IN VAIN, NEITHER LABOURED IN VAIN. M# 17 YEA, AND IF I BE OFFERED UPON THE SACRIFICE AND SERVICE OF YOUR FAITH, II JOY, AND REJOICE WITH YOU ALL.D<# 18 FOR THE SAME CAUSE ALSO DO YE JOY, AND REJOICE WITH ME.M# 19 BUT I TRUST IN THE LORD JESUS TO SEND TIMOTHEUS SHORTLY UNTO YOU, THAT IO5 ALSO MAY BE OF GOOD COMFORT, WHEN I KNOW YOUR STATE.PJ# 20 FOR I HAVE NO MAN LIKEMINDED, WHO WILL NATURALLY CARE FOR YOUR STATE.D# 21 FOR ALL SEEK THEIR OWN, NOT THE THINGS WHICH ARE JESUS CHRISTS.J# 22 BUT YE KNOW THE PROOF OF HIM, THAT, AS A SON WITH THE FATHER, HE HATH SERVED WITH ME IN THE GOSPEL.J# 23 HIM THEREFORE I HOPE TO SEND PRESENTLY, SO SOON AS I SHALL SEE HOW IT WILL GO WITH ME.EC# 24 BUT I TRUST IN THE LORD THAT I ALSO MYSELF SHALL COME SHORTLY.DM# 25 YET I SUPPOSED IT NECESSARY TO SEND TO YOU EPAPHRODITUS, MY BROTHER, AND H COMPANION IN LABOUR, AND FELLOWSOLDIER, BUT YOUR MESSENGER, AND HE THAT MINISTERED TO MY WANTS.L# 26 FOR HE LONGED AFTER YOU ALL, AND WAS FULL OF HEAVINESS, BECAUSE THAT YE! HAD HEARD THAT HE HAD BEEN SICK.HJ# 27 FOR INDEED HE WAS SICK NIGH UNTO DEATH: BUT GOD HAD MERCY ON HIM; ANDH NOT ON HIM ONLY, BUT ON ME ALSO, LEST I SHOULD HAVE SORROW UPON SORROW.M# 28 I SENT HIM THEREFORE THE MORE CAREFULLY, THAT, WHEN YE SEE HIM AGAIN, YEI3 MAY REJOICE, AND THAT I MAY BE THE LESS SORROWFUL.YJ# 29 RECEIVE HIM THEREFORE IN THE LORD WITH ALL GLADNESS; AND HOLD SUCH IN REPUTATION:M# 30 BECAUSE FOR THE WORK OF CHRIST HE WAS NIGH UNTO DEATH, NOT REGARDING HISV0 LIFE, TO SUPPLY YOUR LACK OF SERVICE TOWARD ME. = CHAPTER 3 J# 1 FINALLY, MY BRETHREN, REJOICE IN THE LORD. TO WRITE THE SAME THINGS TO; YOU, TO ME INDEED IS NOT GRIEVOUS, BUT FOR YOU IT IS SAFE.SD# 2 BEWARE OF DOGS, BEWARE OF EVIL WORKERS, BEWARE OF THE CONCISION.M# 3 FOR WE ARE THE CIRCUMCISION, WHICH WORSHIP GOD IN THE SPIRIT, AND REJOICEC6 IN CHRIST JESUS, AND HAVE NO CONFIDENCE IN THE FLESH.F# 4 THOUGH I MIGHT ALSO HAVE CONFIDENCE IN THE FLESH. IF ANY OTHER MANC THINKETH THAT HE HATH WHEREOF HE MIGHT TRUST IN THE FLESH, I MORE:CG# 5 CIRCUMCISED THE EIGHTH DAY, OF THE STOCK OF ISRAEL, OF THE TRIBE OF.E BENJAMIN, AN HEBREW OF THE HEBREWS; AS TOUCHING THE LAW, A PHARISEE;OM# 6 CONCERNING ZEAL, PERSECUTING THE CHURCH; TOUCHING THE RIGHTEOUSNESS WHICHO IS IN THE LAW, BLAMELESS.E# 7 BUT WHAT THINGS WERE GAIN TO ME, THOSE I COUNTED LOSS FOR CHRIST.TL# 8 YEA DOUBTLESS, AND I COUNT ALL THINGS BUT LOSS FOR THE EXCELLENCY OF THEL KNOWLEDGE OF CHRIST JESUS MY LORD: FOR WHOM I HAVE SUFFERED THE LOSS OF ALL; THINGS, AND DO COUNT THEM BUT DUNG, THAT I MAY WIN CHRIST,YK# 9 AND BE FOUND IN HIM, NOT HAVING MINE OWN RIGHTEOUSNESS, WHICH IS OF THEWL LAW, BUT THAT WHICH IS THROUGH THE FAITH OF CHRIST, THE RIGHTEOUSNESS WHICH IS OF GOD BY FAITH:D# 10 THAT I MAY KNOW HIM, AND THE POWER OF HIS RESURRECTION, AND THEE FELLOWSHIP OF HIS SUFFERINGS, BEING MADE CONFORMABLE UNTO HIS DEATH;IF# 11 IF BY ANY MEANS I MIGHT ATTAIN UNTO THE RESURRECTION OF THE DEAD.M# 12 NOT AS THOUGH I HAD ALREADY ATTAINED, EITHER WERE ALREADY PERFECT: BUT INN FOLLOW AFTER, IF THAT I MAY APPREHEND THAT FOR WHICH ALSO I AM APPREHENDED OF CHRIST JESUS.K# 13 BRETHREN, I COUNT NOT MYSELF TO HAVE APPREHENDED: BUT THIS ONE THING ITL DO, FORGETTING THOSE THINGS WHICH ARE BEHIND, AND REACHING FORTH UNTO THOSE THINGS WHICH ARE BEFORE,,H# 14 I PRESS TOWARD THE MARK FOR THE PRIZE OF THE HIGH CALLING OF GOD IN CHRIST JESUS.K# 15 LET US THEREFORE, AS MANY AS BE PERFECT, BE THUS MINDED: AND IF IN ANYHC THING YE BE OTHERWISE MINDED, GOD SHALL REVEAL EVEN THIS UNTO YOU.LL# 16 NEVERTHELESS, WHERETO WE HAVE ALREADY ATTAINED, LET US WALK BY THE SAME" RULE, LET US MIND THE SAME THING.M# 17 BRETHREN, BE FOLLOWERS TOGETHER OF ME, AND MARK THEM WHICH WALK SO AS YEH HAVE US FOR AN ENSAMPLE.RI# 18 (FOR MANY WALK, OF WHOM I HAVE TO00:FAF<%X>%+%O-%TADATADATALD YOU OFTEN, AND NOW TELL YOU EVENH; WEEPING, THAT THEY ARE THE ENEMIES OF THE CROSS OF CHRIST:EK# 19 WHOSE END IS DESTRUCTION, WHOSE GOD IS THEIR BELLY, AND WHOSE GLORY IS * IN THEIR SHAME, WHO MIND EARTHLY THINGS.)H# 20 FOR OUR CONVERSATION IS IN HEAVEN; FROM WHENCE ALSO WE LOOK FOR THE# SAVIOUR, THE LORD JESUS CHRIST: ITRK# 21 WHO SHALL CHANGE OUR VILE BODY, THAT IT MAY BE FASHIONED LIKE UNTO HIS N GLORIOUS BODY, ACCORDING TO THE WORKING WHEREBY HE IS ABLE EVEN TO SUBDUE ALL THINGS UNTO HIMSELF.D = CHAPTER 4 N# 1 THEREFORE, MY BRETHREN DEARLY BELOVED AND LONGED FOR, MY JOY AND CROWN, SO+ STAND FAST IN THE LORD, MY DEARLY BELOVED.IM# 2 I BESEECH EUODIAS, AND BESEECH SYNTYCHE, THAT THEY BE OF THE SAME MIND IN THE LORD.M# 3 AND I INTREAT THEE ALSO, TRUE YOKEFELLOW, HELP THOSE WOMEN WHICH LABOUREDDM WITH ME IN THE GOSPEL, WITH CLEMENT ALSO, AND WITH OTHER MY FELLOWLABOURERS,E% WHOSE NAMES ARE IN THE BOOK OF LIFE.D8# 4 REJOICE IN THE LORD ALWAY: AND AGAIN I SAY, REJOICE.C# 5 LET YOUR MODERATION BE KNOWN UNTO ALL MEN. THE LORD IS AT HAND.LI# 6 BE CAREFUL FOR NOTHING; BUT IN EVERY THING BY PRAYER AND SUPPLICATION < WITH THANKSGIVING LET YOUR REQUESTS BE MADE KNOWN UNTO GOD.J# 7 AND THE PEACE OF GOD, WHICH PASSETH ALL UNDERSTANDING, SHALL KEEP YOUR' HEARTS AND MINDS THROUGH CHRIST JESUS.LH# 8 FINALLY, BRETHREN, WHATSOEVER THINGS ARE TRUE, WHATSOEVER THINGS AREK HONEST, WHATSOEVER THINGS ARE JUST, WHATSOEVER THINGS ARE PURE, WHATSOEVERRI THINGS ARE LOVELY, WHATSOEVER THINGS ARE OF GOOD REPORT; IF THERE BE ANYL; VIRTUE, AND IF THERE BE ANY PRAISE, THINK ON THESE THINGS. J# 9 THOSE THINGS, WHICH YE HAVE BOTH LEARNED, AND RECEIVED, AND HEARD, AND8 SEEN IN ME, DO: AND THE GOD OF PEACE SHALL BE WITH YOU.M# 10 BUT I REJOICED IN THE LORD GREATLY, THAT NOW AT THE LAST YOUR CARE OF METC HATH FLOURISHED AGAIN; WHEREIN YE WERE ALSO CAREFUL, BUT YE LACKEDE OPPORTUNITY.HK# 11 NOT THAT I SPEAK IN RESPECT OF WANT: FOR I HAVE LEARNED, IN WHATSOEVERT% STATE I AM, THEREWITH TO BE CONTENT. L# 12 I KNOW BOTH HOW TO BE ABASED, AND I KNOW HOW TO ABOUND: EVERY WHERE ANDH IN ALL THINGS I AM INSTRUCTED BOTH TO BE FULL AND TO BE HUNGRY, BOTH TO ABOUND AND TO SUFFER NEED.M?# 13 I CAN DO ALL THINGS THROUGH CHRIST WHICH STRENGTHENETH ME.EG# 14 NOTWITHSTANDING YE HAVE WELL DONE, THAT YE DID COMMUNICATE WITH MYI AFFLICTION.L# 15 NOW YE PHILIPPIANS KNOW ALSO, THAT IN THE BEGINNING OF THE GOSPEL, WHENH I DEPARTED FROM MACEDONIA, NO CHURCH COMMUNICATED WITH ME AS CONCERNING# GIVING AND RECEIVING, BUT YE ONLY. G# 16 FOR EVEN IN THESSALONICA YE SENT ONCE AND AGAIN UNTO MY NECESSITY. L# 17 NOT BECAUSE I DESIRE A GIFT: BUT I DESIRE FRUIT THAT MAY ABOUND TO YOUR ACCOUNT.EK# 18 BUT I HAVE ALL, AND ABOUND: I AM FULL, HAVING RECEIVED OF EPAPHRODITUSNL THE THINGS WHICH WERE SENT FROM YOU, AN ODOUR OF A SWEET SMELL, A SACRIFICE! ACCEPTABLE, WELLPLEASING TO GOD.SK# 19 BUT MY GOD SHALL SUPPLY ALL YOUR NEED ACCORDING TO HIS RICHES IN GLORYC BY CHRIST JESUS.WB# 20 NOW UNTO GOD AND OUR FATHER BE GLORY FOR EVER AND EVER. AMEN.M# 21 SALUTE EVERY SAINT IN CHRIST JESUS. THE BRETHREN WHICH ARE WITH ME GREETU YOU.SK# 22 ALL THE SAINTS SALUTE YOU, CHIEFLY THEY THAT ARE OF CAESARS HOUSEHOLD.I># 23 THE GRACE OF OUR LORD JESUS CHRIST BE WITH YOU ALL. AMEN.SNL THE THINGS WHICH WERE SENT FROM YOU, AN ODOUR OF A SWEET SMELL, A SACRIFICE! ACCEPTABLE, WELLPLEASING TO GOD.SK# 19 BUT MY GOD SHALL SUPPLY ALL YOUR NEED ACCORDING TO HIS RICHES IN GLORYC BY CHRIST JESUS.WB# 20 NOW UNTO GOD AND OUR FATHER BE GLORY FOR EVER A* BOOK51 COLOSSIANSS = CHAPTER 1 J# 1 PAUL, AN APOSTLE OF JESUS CHRIST BY THE WILL OF GOD, AND TIMOTHEUS OUR BROTHER, M# 2 TO THE SAINTS AND FAITHFUL BRETHREN IN CHRIST WHICH ARE AT COLOSSE: GRACE G BE UNTO YOU, AND PEACE, FROM GOD OUR FATHER AND THE LORD JESUS CHRIST.RJ# 3 WE GIVE THANKS TO GOD AND THE FATHER OF OUR LORD JESUS CHRIST, PRAYING ALWAYS FOR YOU,J# 4 SINCE WE HEARD OF YOUR FAITH IN CHRIST JESUS, AND OF THE LOVE WHICH YE HAVE TO ALL THE SAINTS,L# 5 FOR THE HOPE WHICH IS LAID UP FO00BF(FD%5%T6%! !R YOU IN HEAVEN, WHEREOF YE HEARD BEFORE( IN THE WORD OF THE TRUTH OF THE GOSPEL;I# 6 WHICH IS COME UNTO YOU, AS IT IS IN ALL THE WORLD; AND BRINGETH FORTHBJ FRUIT, AS IT DOTH ALSO IN YOU, SINCE THE DAY YE HEARD OF IT, AND KNEW THE GRACE OF GOD IN TRUTH:LK# 7 AS YE ALSO LEARNED OF EPAPHRAS OUR DEAR FELLOWSERVANT, WHO IS FOR YOU AS FAITHFUL MINISTER OF CHRIST;O6# 8 WHO ALSO DECLARED UNTO US YOUR LOVE IN THE SPIRIT.K# 9 FOR THIS CAUSE WE ALSO, SINCE THE DAY WE HEARD IT, DO NOT CEASE TO PRAYAN FOR YOU, AND TO DESIRE THAT YE MIGHT BE FILLED WITH THE KNOWLEDGE OF HIS WILL+ IN ALL WISDOM AND SPIRITUAL UNDERSTANDING; L# 10 THAT YE MIGHT WALK WORTHY OF THE LORD UNTO ALL PLEASING, BEING FRUITFUL< IN EVERY GOOD WORK, AND INCREASING IN THE KNOWLEDGE OF GOD;K# 11 STRENGTHENED WITH ALL MIGHT, ACCORDING TO HIS GLORIOUS POWER, UNTO ALL , PATIENCE AND LONGSUFFERING WITH JOYFULNESS;K# 12 GIVING THANKS UNTO THE FATHER, WHICH HATH MADE US MEET TO BE PARTAKERSC+ OF THE INHERITANCE OF THE SAINTS IN LIGHT:M# 13 WHO HATH DELIVERED US FROM THE POWER OF DARKNESS, AND HATH TRANSLATED US" INTO THE KINGDOM OF HIS DEAR SON:J# 14 IN WHOM WE HAVE REDEMPTION THROUGH HIS BLOOD, EVEN THE FORGIVENESS OF SINS:L# 15 WHO IS THE IMAGE OF THE INVISIBLE GOD, THE FIRSTBORN OF EVERY CREATURE:L# 16 FOR BY HIM WERE ALL THINGS CREATED, THAT ARE IN HEAVEN, AND THAT ARE INH EARTH, VISIBLE AND INVISIBLE, WHETHER THEY BE THRONES, OR DOMINIONS, ORH PRINCIPALITIES, OR POWERS: ALL THINGS WERE CREATED BY HIM, AND FOR HIM:@# 17 AND HE IS BEFORE ALL THINGS, AND BY HIM ALL THINGS CONSIST.J# 18 AND HE IS THE HEAD OF THE BODY, THE CHURCH: WHO IS THE BEGINNING, THEK FIRSTBORN FROM THE DEAD; THAT IN ALL THINGS HE MIGHT HAVE THE PREEMINENCE.ID# 19 FOR IT PLEASED THE FATHER THAT IN HIM SHOULD ALL FULNESS DWELL;E# 20 AND, HAVING MADE PEACE THROUGH THE BLOOD OF HIS CROSS, BY HIM TO L RECONCILE ALL THINGS UNTO HIMSELF; BY HIM, I SAY, WHETHER THEY BE THINGS IN EARTH, OR THINGS IN HEAVEN.M# 21 AND YOU, THAT WERE SOMETIME ALIENATED AND ENEMIES IN YOUR MIND BY WICKEDN" WORKS, YET NOW HATH HE RECONCILEDD# 22 IN THE BODY OF HIS FLESH THROUGH DEATH, TO PRESENT YOU HOLY AND, UNBLAMEABLE AND UNREPROVEABLE IN HIS SIGHT:L# 23 IF YE CONTINUE IN THE FAITH GROUNDED AND SETTLED, AND BE NOT MOVED AWAYL FROM THE HOPE OF THE GOSPEL, WHICH YE HAVE HEARD, AND WHICH WAS PREACHED TOI EVERY CREATURE WHICH IS UNDER HEAVEN; WHEREOF I PAUL AM MADE A MINISTER;RH# 24 WHO NOW REJOICE IN MY SUFFERINGS FOR YOU, AND FILL UP THAT WHICH ISM BEHIND OF THE AFFLICTIONS OF CHRIST IN MY FLESH FOR HIS BODYS SAKE, WHICH IS THE CHURCH:M# 25 WHEREOF I AM MADE A MINISTER, ACCORDING TO THE DISPENSATION OF GOD WHICHE3 IS GIVEN TO ME FOR YOU, TO FULFIL THE WORD OF GOD; M# 26 EVEN THE MYSTERY WHICH HATH BEEN HID FROM AGES AND FROM GENERATIONS, BUT $ NOW IS MADE MANIFEST TO HIS SAINTS:I# 27 TO WHOM GOD WOULD MAKE KNOWN WHAT IS THE RICHES OF THE GLORY OF THISMG MYSTERY AMONG THE GENTILES; WHICH IS CHRIST IN YOU, THE HOPE OF GLORY: M# 28 WHOM WE PREACH, WARNING EVERY MAN, AND TEACHING EVERY MAN IN ALL WISDOM;S7 THAT WE MAY PRESENT EVERY MAN PERFECT IN CHRIST JESUS:MF# 29 WHEREUNTO I ALSO LABOUR, STRIVING ACCORDING TO HIS WORKING, WHICH WORKETH IN ME MIGHTILY. = CHAPTER 2 M# 1 FOR I WOULD THAT YE KNEW WHAT GREAT CONFLICT I HAVE FOR YOU, AND FOR THEMWD AT LAODICEA, AND FOR AS MANY AS HAVE NOT SEEN MY FACE IN THE FLESH;J# 2 THAT THEIR HEARTS MIGHT BE COMFORTED, BEING KNIT TOGETHER IN LOVE, AND? UNTO ALL RICHES OF THE FULL ASSURANCE OF UNDERSTANDING, TO THEGI ACKNOWLEDGEMENT OF THE MYSTERY OF GOD, AND OF THE FATHER, AND OF CHRIST;E># 3 IN WHOM ARE HID ALL THE TREASURES OF WISDOM AND KNOWLEDGE.H# 4 AND THIS I SAY, LEST ANY MAN SHOULD BEGUILE YOU WITH ENTICING WORDS.I# 5 FOR THOUGH I BE ABSENT IN THE FLESH, YET AM I WITH YOU IN THE SPIRIT,DG JOYING AND BEHOLDING YOUR ORDER, AND THE STEDFASTNESS OF YOUR FAITH IN  CHRIST.K# 6 AS YE HAVE THEREFORE RECEIVED CHRIST JESUS THE LORD, SO WALK YE IN HIM:TL# 7 ROOTED AND BUILT UP IN HIM, AND STABLISHED IN THE FAITH, AS YE HAVE BE00JFAF<%X>%+%O-%TADATADATAEN- TAUGHT, ABOUNDING THEREIN WITH THANKSGIVING.OK# 8 BEWARE LEST ANY MAN SPOIL YOU THROUGH PHILOSOPHY AND VAIN DECEIT, AFTER N THE TRADITION OF MEN, AFTER THE RUDIMENTS OF THE WORLD, AND NOT AFTER CHRIST.># 9 FOR IN HIM DWELLETH ALL THE FULNESS OF THE GODHEAD BODILY.J# 10 AND YE ARE COMPLETE IN HIM, WHICH IS THE HEAD OF ALL PRINCIPALITY AND POWER:.G# 11 IN WHOM ALSO YE ARE CIRCUMCISED WITH THE CIRCUMCISION MADE WITHOUTHL HANDS, IN PUTTING OFF THE BODY OF THE SINS OF THE FLESH BY THE CIRCUMCISION OF CHRIST:,K# 12 BURIED WITH HIM IN BAPTISM, WHEREIN ALSO YE ARE RISEN WITH HIM THROUGHOF THE FAITH OF THE OPERATION OF GOD, WHO HATH RAISED HIM FROM THE DEAD.K# 13 AND YOU, BEING DEAD IN YOUR SINS AND THE UNCIRCUMCISION OF YOUR FLESH,HI HATH HE QUICKENED TOGETHER WITH HIM, HAVING FORGIVEN YOU ALL TRESPASSES; J# 14 BLOTTING OUT THE HANDWRITING OF ORDINANCES THAT WAS AGAINST US, WHICHI WAS CONTRARY TO US, AND TOOK IT OUT OF THE WAY, NAILING IT TO HIS CROSS;FI# 15 AND HAVING SPOILED PRINCIPALITIES AND POWERS, HE MADE A SHEW OF THEMH$ OPENLY, TRIUMPHING OVER THEM IN IT.M# 16 LET NO MAN THEREFORE JUDGE YOU IN MEAT, OR IN DRINK, OR IN RESPECT OF ANR5 HOLYDAY, OR OF THE NEW MOON, OR OF THE SABBATH DAYS: E# 17 WHICH ARE A SHADOW OF THINGS TO COME; BUT THE BODY IS OF CHRIST.MF# 18 LET NO MAN BEGUILE YOU OF YOUR REWARD IN A VOLUNTARY HUMILITY ANDK WORSHIPPING OF ANGELS, INTRUDING INTO THOSE THINGS WHICH HE HATH NOT SEEN,O& VAINLY PUFFED UP BY HIS FLESHLY MIND,J# 19 AND NOT HOLDING THE HEAD, FROM WHICH ALL THE BODY BY JOINTS AND BANDSF HAVING NOURISHMENT MINISTERED, AND KNIT TOGETHER, INCREASETH WITH THE INCREASE OF GOD.DI# 20 WHEREFORE IF YE BE DEAD WITH CHRIST FROM THE RUDIMENTS OF THE WORLD, B WHY, AS THOUGH LIVING IN THE WORLD, ARE YE SUBJECT TO ORDINANCES,'# 21 (TOUCH NOT; TASTE NOT; HANDLE NOT;FH# 22 WHICH ALL ARE TO PERISH WITH THE USING;) AFTER THE COMMANDMENTS AND DOCTRINES OF MEN?M# 23 WHICH THINGS HAVE INDEED A SHEW OF WISDOM IN WILL WORSHIP, AND HUMILITY,HN AND NEGLECTING OF THE BODY: NOT IN ANY HONOUR TO THE SATISFYING OF THE FLESH. = CHAPTER 3 M# 1 IF YE THEN BE RISEN WITH CHRIST, SEEK THOSE THINGS WHICH ARE ABOVE, WHEREE) CHRIST SITTETH ON THE RIGHT HAND OF GOD.TC# 2 SET YOUR AFFECTION ON THINGS ABOVE, NOT ON THINGS ON THE EARTH.D=# 3 FOR YE ARE DEAD, AND YOUR LIFE IS HID WITH CHRIST IN GOD.AI# 4 WHEN CHRIST, WHO IS OUR LIFE, SHALL APPEAR, THEN SHALL YE ALSO APPEAR  WITH HIM IN GLORY.GI# 5 MORTIFY THEREFORE YOUR MEMBERS WHICH ARE UPON THE EARTH; FORNICATION,TI UNCLEANNESS, INORDINATE AFFECTION, EVIL CONCUPISCENCE, AND COVETOUSNESS,E WHICH IS IDOLATRY:BD# 6 FOR WHICH THINGS SAKE THE WRATH OF GOD COMETH ON THE CHILDREN OF DISOBEDIENCE:A# 7 IN THE WHICH YE ALSO WALKED SOME TIME, WHEN YE LIVED IN THEM.NG# 8 BUT NOW YE ALSO PUT OFF ALL THESE; ANGER, WRATH, MALICE, BLASPHEMY,R( FILTHY COMMUNICATION OUT OF YOUR MOUTH.L# 9 LIE NOT ONE TO ANOTHER, SEEING THAT YE HAVE PUT OFF THE OLD MAN WITH HIS DEEDS;FI# 10 AND HAVE PUT ON THE NEW MAN, WHICH IS RENEWED IN KNOWLEDGE AFTER THER IMAGE OF HIM THAT CREATED HIM:NK# 11 WHERE THERE IS NEITHER GREEK NOR JEW, CIRCUMCISION NOR UNCIRCUMCISION,RC BARBARIAN, SCYTHIAN, BOND NOR FREE: BUT CHRIST IS ALL, AND IN ALL.HG# 12 PUT ON THEREFORE, AS THE ELECT OF GOD, HOLY AND BELOVED, BOWELS OFU@ MERCIES, KINDNESS, HUMBLENESS OF MIND, MEEKNESS, LONGSUFFERING;I# 13 FORBEARING ONE ANOTHER, AND FORGIVING ONE ANOTHER, IF ANY MAN HAVE A @ QUARREL AGAINST ANY: EVEN AS CHRIST FORGAVE YOU, SO ALSO DO YE.D# 14 AND ABOVE ALL THESE THINGS PUT ON CHARITY, WHICH IS THE BOND OF PERFECTNESS. K# 15 AND LET THE PEACE OF GOD RULE IN YOUR HEARTS, TO THE WHICH ALSO YE AREB( CALLED IN ONE BODY; AND BE YE THANKFUL.K# 16 LET THE WORD OF CHRIST DWELL IN YOU RICHLY IN ALL WISDOM; TEACHING ANDDN ADMONISHING ONE ANOTHER IN PSALMS AND HYMNS AND SPIRITUAL SONGS, SINGING WITH" GRACE IN YOUR HEARTS TO THE LORD.I# 17 AND WHATSOEVER YE DO IN WORD OR DEED, DO ALL IN THE NAME OF THE LORDA3 JESUS, GIVING THANKS TO GOD AND THE FATHER BY HIM.AI# 18 WIVES, SUBMIT YOU00RFXFD%5%T6%! !RSELVES UNTO YOUR OWN HUSBANDS, AS IT IS FIT IN THEA LORD.?# 19 HUSBANDS, LOVE YOUR WIVES, AND BE NOT BITTER AGAINST THEM.CI# 20 CHILDREN, OBEY YOUR PARENTS IN ALL THINGS: FOR THIS IS WELL PLEASINGN UNTO THE LORD.LK# 21 FATHERS, PROVOKE NOT YOUR CHILDREN TO ANGER, LEST THEY BE DISCOURAGED.IJ# 22 SERVANTS, OBEY IN ALL THINGS YOUR MASTERS ACCORDING TO THE FLESH; NOTJ WITH EYESERVICE, AS MENPLEASERS; BUT IN SINGLENESS OF HEART, FEARING GOD;L# 23 AND WHATSOEVER YE DO, DO IT HEARTILY, AS TO THE LORD, AND NOT UNTO MEN;M# 24 KNOWING THAT OF THE LORD YE SHALL RECEIVE THE REWARD OF THE INHERITANCE:N FOR YE SERVE THE LORD CHRIST.L# 25 BUT HE THAT DOETH WRONG SHALL RECEIVE FOR THE WRONG WHICH HE HATH DONE:$ AND THERE IS NO RESPECT OF PERSONS. = CHAPTER 4 J# 1 MASTERS, GIVE UNTO YOUR SERVANTS THAT WHICH IS JUST AND EQUAL; KNOWING& THAT YE ALSO HAVE A MASTER IN HEAVEN.@# 2 CONTINUE IN PRAYER, AND WATCH IN THE SAME WITH THANKSGIVING;E# 3 WITHAL PRAYING ALSO FOR US, THAT GOD WOULD OPEN UNTO US A DOOR OFAI UTTERANCE, TO SPEAK THE MYSTERY OF CHRIST, FOR WHICH I AM ALSO IN BONDS: 5# 4 THAT I MAY MAKE IT MANIFEST, AS I OUGHT TO SPEAK. D# 5 WALK IN WISDOM TOWARD THEM THAT ARE WITHOUT, REDEEMING THE TIME.M# 6 LET YOUR SPEECH BE ALWAY WITH GRACE, SEASONED WITH SALT, THAT YE MAY KNOWO! HOW YE OUGHT TO ANSWER EVERY MANNK# 7 ALL MY STATE SHALL TYCHICUS DECLARE UNTO YOU, WHO IS A BELOVED BROTHER,Y7 AND A FAITHFUL MINISTER AND FELLOWSERVANT IN THE LORD:PK# 8 WHOM I HAVE SENT UNTO YOU FOR THE SAME PURPOSE, THAT HE MIGHT KNOW YOURE! ESTATE, AND COMFORT YOUR HEARTS; J# 9 WITH ONESIMUS, A FAITHFUL AND BELOVED BROTHER, WHO IS ONE OF YOU. THEY: SHALL MAKE KNOWN UNTO YOU ALL THINGS WHICH ARE DONE HERE.K# 10 ARISTARCHUS MY FELLOWPRISONER SALUTETH YOU, AND MARCUS, SISTERS SON TO H BARNABAS, (TOUCHING WHOM YE RECEIVED COMMANDMENTS: IF HE COME UNTO YOU, RECEIVE HIM;)J# 11 AND JESUS, WHICH IS CALLED JUSTUS, WHO ARE OF THE CIRCUMCISION. THESEM ONLY ARE MY FELLOWWORKERS UNTO THE KINGDOM OF GOD, WHICH HAVE BEEN A COMFORT UNTO ME.YK# 12 EPAPHRAS, WHO IS ONE OF YOU, A SERVANT OF CHRIST, SALUTETH YOU, ALWAYSEF LABOURING FERVENTLY FOR YOU IN PRAYERS, THAT YE MAY STAND PERFECT AND! COMPLETE IN ALL THE WILL OF GOD.IL# 13 FOR I BEAR HIM RECORD, THAT HE HATH A GREAT ZEAL FOR YOU, AND THEM THAT) ARE IN LAODICEA, AND THEM IN HIERAPOLIS. 7# 14 LUKE, THE BELOVED PHYSICIAN, AND DEMAS, GREET YOU.CK# 15 SALUTE THE BRETHREN WHICH ARE IN LAODICEA, AND NYMPHAS, AND THE CHURCHR WHICH IS IN HIS HOUSE.GK# 16 AND WHEN THIS EPISTLE IS READ AMONG YOU, CAUSE THAT IT BE READ ALSO IN I THE CHURCH OF THE LAODICEANS; AND THAT YE LIKEWISE READ THE EPISTLE FROM LAODICEA.M# 17 AND SAY TO ARCHIPPUS, TAKE HEED TO THE MINISTRY WHICH THOU HAST RECEIVED " IN THE LORD, THAT THOU FULFIL IT.L# 18 THE SALUTATION BY THE HAND OF ME PAUL. REMEMBER MY BONDS. GRACE BE WITH YOU. AMEN.D PHYSICIAN, AND DEMAS, GREET YOU.CK# 15 SALUTE THE BRETHREN WHICH ARE IN LAODICEA, AND NYMPHAS, AND THE CHURCHR WHICH IS IN HIS HOUSE.GK# 16 AND WHEN THIS EPIST* BOOK52 1THESSALONIANSS = CHAPTER 1 K# 1 PAUL, AND SILVANUS, AND TIMOTHEUS, UNTO THE CHURCH OF THE THESSALONIANSIL WHICH IS IN GOD THE FATHER AND IN THE LORD JESUS CHRIST: GRACE BE UNTO YOU,; AND PEACE, FROM GOD OUR FATHER, AND THE LORD JESUS CHRIST.J# 2 WE GIVE THANKS TO GOD ALWAYS FOR YOU ALL, MAKING MENTION OF YOU IN OUR PRAYERS;NK# 3 REMEMBERING WITHOUT CEASING YOUR WORK OF FAITH, AND LABOUR OF LOVE, ANDAG PATIENCE OF HOPE IN OUR LORD JESUS CHRIST, IN THE SIGHT OF GOD AND OURW FATHER;4# 4 KNOWING, BRETHREN BELOVED, YOUR ELECTION OF GOD.L# 5 FOR OUR GOSPEL CAME NOT UNTO YOU IN WORD ONLY, BUT ALSO IN POWER, AND INM THE HOLY GHOST, AND IN MUCH ASSURANCE; AS YE KNOW WHAT MANNER OF MEN WE WEREE AMONG YOU FOR YOUR SAKE.TL# 6 AND YE BECAME FOLLOWERS OF US, AND OF THE LORD, HAVING RECEIVED THE WORD0 IN MUCH AFFLICTION, WITH JOY OF THE HOLY GHOST.J# 7 SO THAT YE WERE ENSAMPLES TO ALL THAT BELIEVE IN MACEDONIA AND ACHAIA.K# 8 FOR FROM YOU SOUNDED OUT THE WORD OF THE LORD NOT ONLY IN MACEDONI00ZFAF<%X>%+%O-%TADATADATAA ANDWL ACHAIA, BUT ALSO IN EVERY PLACE YOUR FAITH TO GOD-WARD IS SPREAD ABROAD; SO% THAT WE NEED NOT TO SPEAK ANY THING.NI# 9 FOR THEY THEMSELVES SHEW OF US WHAT MANNER OF ENTERING IN WE HAD UNTO K YOU, AND HOW YE TURNED TO GOD FROM IDOLS TO SERVE THE LIVING AND TRUE GOD;OL# 10 AND TO WAIT FOR HIS SON FROM HEAVEN, WHOM HE RAISED FROM THE DEAD, EVEN2 JESUS, WHICH DELIVERED US FROM THE WRATH TO COME. = CHAPTER 2 L# 1 FOR YOURSELVES, BRETHREN, KNOW OUR ENTRANCE IN UNTO YOU, THAT IT WAS NOT IN VAIN:IC# 2 BUT EVEN AFTER THAT WE HAD SUFFERED BEFORE, AND WERE SHAMEFULLYRN ENTREATED, AS YE KNOW, AT PHILIPPI, WE WERE BOLD IN OUR GOD TO SPEAK UNTO YOU( THE GOSPEL OF GOD WITH MUCH CONTENTION.L# 3 FOR OUR EXHORTATION WAS NOT OF DECEIT, NOR OF UNCLEANNESS, NOR IN GUILE:M# 4 BUT AS WE WERE ALLOWED OF GOD TO BE PUT IN TRUST WITH THE GOSPEL, EVEN SODA WE SPEAK; NOT AS PLEASING MEN, BUT GOD, WHICH TRIETH OUR HEARTS.EM# 5 FOR NEITHER AT ANY TIME USED WE FLATTERING WORDS, AS YE KNOW, NOR A CLOKEN! OF COVETOUSNESS; GOD IS WITNESS:TJ# 6 NOR OF MEN SOUGHT WE GLORY, NEITHER OF YOU, NOR YET OF OTHERS, WHEN WE7 MIGHT HAVE BEEN BURDENSOME, AS THE APOSTLES OF CHRIST.EJ# 7 BUT WE WERE GENTLE AMONG YOU, EVEN AS A NURSE CHERISHETH HER CHILDREN:M# 8 SO BEING AFFECTIONATELY DESIROUS OF YOU, WE WERE WILLING TO HAVE IMPARTED N UNTO YOU, NOT THE GOSPEL OF GOD ONLY, BUT ALSO OUR OWN SOULS, BECAUSE YE WERE DEAR UNTO US.J# 9 FOR YE REMEMBER, BRETHREN, OUR LABOUR AND TRAVAIL: FOR LABOURING NIGHTN AND DAY, BECAUSE WE WOULD NOT BE CHARGEABLE UNTO ANY OF YOU, WE PREACHED UNTO YOU THE GOSPEL OF GOD.EM# 10 YE ARE WITNESSES, AND GOD ALSO, HOW HOLILY AND JUSTLY AND UNBLAMEABLY WE* BEHAVED OURSELVES AMONG YOU THAT BELIEVE:K# 11 AS YE KNOW HOW WE EXHORTED AND COMFORTED AND CHARGED EVERY ONE OF YOU,W AS A FATHER DOTH HIS CHILDREN,K# 12 THAT YE WOULD WALK WORTHY OF GOD, WHO HATH CALLED YOU UNTO HIS KINGDOME AND GLORY.UG# 13 FOR THIS CAUSE ALSO THANK WE GOD WITHOUT CEASING, BECAUSE, WHEN YENN RECEIVED THE WORD OF GOD WHICH YE HEARD OF US, YE RECEIVED IT NOT AS THE WORDJ OF MEN, BUT AS IT IS IN TRUTH, THE WORD OF GOD, WHICH EFFECTUALLY WORKETH ALSO IN YOU THAT BELIEVE.G# 14 FOR YE, BRETHREN, BECAME FOLLOWERS OF THE CHURCHES OF GOD WHICH INEN JUDAEA ARE IN CHRIST JESUS: FOR YE ALSO HAVE SUFFERED LIKE THINGS OF YOUR OWN+ COUNTRYMEN, EVEN AS THEY HAVE OF THE JEWS:OE# 15 WHO BOTH KILLED THE LORD JESUS, AND THEIR OWN PROPHETS, AND HAVEAE PERSECUTED US; AND THEY PLEASE NOT GOD, AND ARE CONTRARY TO ALL MEN: M# 16 FORBIDDING US TO SPEAK TO THE GENTILES THAT THEY MIGHT BE SAVED, TO FILLAG UP THEIR SINS ALWAY: FOR THE WRATH IS COME UPON THEM TO THE UTTERMOST.UM# 17 BUT WE, BRETHREN, BEING TAKEN FROM YOU FOR A SHORT TIME IN PRESENCE, NOTWN IN HEART, ENDEAVOURED THE MORE ABUNDANTLY TO SEE YOUR FACE WITH GREAT DESIRE.L# 18 WHEREFORE WE WOULD HAVE COME UNTO YOU, EVEN I PAUL, ONCE AND AGAIN; BUT SATAN HINDERED US.EL# 19 FOR WHAT IS OUR HOPE, OR JOY, OR CROWN OF REJOICING? ARE NOT EVEN YE IN5 THE PRESENCE OF OUR LORD JESUS CHRIST AT HIS COMING?E"# 20 FOR YE ARE OUR GLORY AND JOY. = CHAPTER 3 L# 1 WHEREFORE WHEN WE COULD NO LONGER FORBEAR, WE THOUGHT IT GOOD TO BE LEFT AT ATHENS ALONE;GA# 2 AND SENT TIMOTHEUS, OUR BROTHER, AND MINISTER OF GOD, AND OURAM FELLOWLABOURER IN THE GOSPEL OF CHRIST, TO ESTABLISH YOU, AND TO COMFORT YOUW CONCERNING YOUR FAITH:UI# 3 THAT NO MAN SHOULD BE MOVED BY THESE AFFLICTIONS: FOR YOURSELVES KNOWO! THAT WE ARE APPOINTED THEREUNTO.IH# 4 FOR VERILY, WHEN WE WERE WITH YOU, WE TOLD YOU BEFORE THAT WE SHOULD: SUFFER TRIBULATION; EVEN AS IT CAME TO PASS, AND YE KNOW.G# 5 FOR THIS CAUSE, WHEN I COULD NO LONGER FORBEAR, I SENT TO KNOW YOURM FAITH, LEST BY SOME MEANS THE TEMPTER HAVE TEMPTED YOU, AND OUR LABOUR BE INN VAIN.M# 6 BUT NOW WHEN TIMOTHEUS CAME FROM YOU UNTO US, AND BROUGHT US GOOD TIDINGSK OF YOUR FAITH AND CHARITY, AND THAT YE HAVE GOOD REMEMBRANCE OF US ALWAYS,S3 DESIRING GREATLY TO SEE US, AS WE ALSO TO SEE YOU:NM# 7 THEREFORE, BRETHREN, WE WERE COMFORTED OVER YOU IN ALL O00bFXFD%5%T6%! !UR AFFLICTION AND DISTRESS BY YOUR FAITH:2# 8 FOR NOW WE LIVE, IF YE STAND FAST IN THE LORD.G# 9 FOR WHAT THANKS CAN WE RENDER TO GOD AGAIN FOR YOU, FOR ALL THE JOYO0 WHEREWITH WE JOY FOR YOUR SAKES BEFORE OUR GOD;M# 10 NIGHT AND DAY PRAYING EXCEEDINGLY THAT WE MIGHT SEE YOUR FACE, AND MIGHTH- PERFECT THAT WHICH IS LACKING IN YOUR FAITH? J# 11 NOW GOD HIMSELF AND OUR FATHER, AND OUR LORD JESUS CHRIST, DIRECT OUR WAY UNTO YOU.M# 12 AND THE LORD MAKE YOU TO INCREASE AND ABOUND IN LOVE ONE TOWARD ANOTHER,I. AND TOWARD ALL MEN, EVEN AS WE DO TOWARD YOU:J# 13 TO THE END HE MAY STABLISH YOUR HEARTS UNBLAMEABLE IN HOLINESS BEFOREJ GOD, EVEN OUR FATHER, AT THE COMING OF OUR LORD JESUS CHRIST WITH ALL HIS SAINTS. = CHAPTER 4 I# 1 FURTHERMORE THEN WE BESEECH YOU, BRETHREN, AND EXHORT YOU BY THE LORDEN JESUS, THAT AS YE HAVE RECEIVED OF US HOW YE OUGHT TO WALK AND TO PLEASE GOD," SO YE WOULD ABOUND MORE AND MORE.@# 2 FOR YE KNOW WHAT COMMANDMENTS WE GAVE YOU BY THE LORD JESUS.I# 3 FOR THIS IS THE WILL OF GOD, EVEN YOUR SANCTIFICATION, THAT YE SHOULDO ABSTAIN FROM FORNICATION:B# 4 THAT EVERY ONE OF YOU SHOULD KNOW HOW TO POSSESS HIS VESSEL IN SANCTIFICATION AND HONOUR;OI# 5 NOT IN THE LUST OF CONCUPISCENCE, EVEN AS THE GENTILES WHICH KNOW NOTW GOD:CM# 6 THAT NO MAN GO BEYOND AND DEFRAUD HIS BROTHER IN ANY MATTER: BECAUSE THATOH THE LORD IS THE AVENGER OF ALL SUCH, AS WE ALSO HAVE FOREWARNED YOU AND TESTIFIED.OC# 7 FOR GOD HATH NOT CALLED US UNTO UNCLEANNESS, BUT UNTO HOLINESS.HJ# 8 HE THEREFORE THAT DESPISETH, DESPISETH NOT MAN, BUT GOD, WHO HATH ALSO GIVEN UNTO US HIS HOLY SPIRIT.OL# 9 BUT AS TOUCHING BROTHERLY LOVE YE NEED NOT THAT I WRITE UNTO YOU: FOR YE2 YOURSELVES ARE TAUGHT OF GOD TO LOVE ONE ANOTHER.L# 10 AND INDEED YE DO IT TOWARD ALL THE BRETHREN WHICH ARE IN ALL MACEDONIA:> BUT WE BESEECH YOU, BRETHREN, THAT YE INCREASE MORE AND MORE;L# 11 AND THAT YE STUDY TO BE QUIET, AND TO DO YOUR OWN BUSINESS, AND TO WORK* WITH YOUR OWN HANDS, AS WE COMMANDED YOU;L# 12 THAT YE MAY WALK HONESTLY TOWARD THEM THAT ARE WITHOUT, AND THAT YE MAY HAVE LACK OF NOTHING.M# 13 BUT I WOULD NOT HAVE YOU TO BE IGNORANT, BRETHREN, CONCERNING THEM WHICHNC ARE ASLEEP, THAT YE SORROW NOT, EVEN AS OTHERS WHICH HAVE NO HOPE. H# 14 FOR IF WE BELIEVE THAT JESUS DIED AND ROSE AGAIN, EVEN SO THEM ALSO. WHICH SLEEP IN JESUS WILL GOD BRING WITH HIM.H# 15 FOR THIS WE SAY UNTO YOU BY THE WORD OF THE LORD, THAT WE WHICH AREN ALIVE AND REMAIN UNTO THE COMING OF THE LORD SHALL NOT PREVENT THEM WHICH ARE ASLEEP.J# 16 FOR THE LORD HIMSELF SHALL DESCEND FROM HEAVEN WITH A SHOUT, WITH THEJ VOICE OF THE ARCHANGEL, AND WITH THE TRUMP OF GOD: AND THE DEAD IN CHRIST SHALL RISE FIRST:M# 17 THEN WE WHICH ARE ALIVE AND REMAIN SHALL BE CAUGHT UP TOGETHER WITH THEMTM IN THE CLOUDS, TO MEET THE LORD IN THE AIR: AND SO SHALL WE EVER BE WITH THED LORD.4# 18 WHEREFORE COMFORT ONE ANOTHER WITH THESE WORDS. = CHAPTER 5 L# 1 BUT OF THE TIMES AND THE SEASONS, BRETHREN, YE HAVE NO NEED THAT I WRITE UNTO YOU.I# 2 FOR YOURSELVES KNOW PERFECTLY THAT THE DAY OF THE LORD SO COMETH AS AS THIEF IN THE NIGHT.M# 3 FOR WHEN THEY SHALL SAY, PEACE AND SAFETY; THEN SUDDEN DESTRUCTION COMETHSJ UPON THEM, AS TRAVAIL UPON A WOMAN WITH CHILD; AND THEY SHALL NOT ESCAPE.L# 4 BUT YE, BRETHREN, ARE NOT IN DARKNESS, THAT THAT DAY SHOULD OVERTAKE YOU AS A THIEF.M# 5 YE ARE ALL THE CHILDREN OF LIGHT, AND THE CHILDREN OF THE DAY: WE ARE NOT  OF THE NIGHT, NOR OF DARKNESS.SL# 6 THEREFORE LET US NOT SLEEP, AS DO OTHERS; BUT LET US WATCH AND BE SOBER.H# 7 FOR THEY THAT SLEEP SLEEP IN THE NIGHT; AND THEY THAT BE DRUNKEN ARE DRUNKEN IN THE NIGHT.K# 8 BUT LET US, WHO ARE OF THE DAY, BE SOBER, PUTTING ON THE BREASTPLATE OFL: FAITH AND LOVE; AND FOR AN HELMET, THE HOPE OF SALVATION.J# 9 FOR GOD HATH NOT APPOINTED US TO WRATH, BUT TO OBTAIN SALVATION BY OUR LORD JESUS CHRIST,AM# 10 WHO DIED FOR US, THAT, WHETHER WE WAKE OR SLEEP, WE SHOULD LIVE TOGETHERH WITH HIM.J# 11 WHEREFORE COMFORT YOURSELVES TOGETHER, AND EDIFY ONE ANOTHE00jFmF<%X>%+%O-%TADATADATAR, EVEN AS ALSO YE DO.K# 12 AND WE BESEECH YOU, BRETHREN, TO KNOW THEM WHICH LABOUR AMONG YOU, ANDK, ARE OVER YOU IN THE LORD, AND ADMONISH YOU;K# 13 AND TO ESTEEM THEM VERY HIGHLY IN LOVE FOR THEIR WORKS SAKE. AND BE AT  PEACE AMONG YOURSELVES.H# 14 NOW WE EXHORT YOU, BRETHREN, WARN THEM THAT ARE UNRULY, COMFORT THE; FEEBLEMINDED, SUPPORT THE WEAK, BE PATIENT TOWARD ALL MEN.TJ# 15 SEE THAT NONE RENDER EVIL FOR EVIL UNTO ANY MAN; BUT EVER FOLLOW THAT6 WHICH IS GOOD, BOTH AMONG YOURSELVES, AND TO ALL MEN.# 16 REJOICE EVERMORE.# 17 PRAY WITHOUT CEASING.L# 18 IN EVERY THING GIVE THANKS: FOR THIS IS THE WILL OF GOD IN CHRIST JESUS CONCERNING YOU.# 19 QUENCH NOT THE SPIRIT. # 20 DESPISE NOT PROPHESYINGS.4# 21 PROVE ALL THINGS; HOLD FAST THAT WHICH IS GOOD.)# 22 ABSTAIN FROM ALL APPEARANCE OF EVIL.CM# 23 AND THE VERY GOD OF PEACE SANCTIFY YOU WHOLLY; AND I PRAY GOD YOUR WHOLESL SPIRIT AND SOUL AND BODY BE PRESERVED BLAMELESS UNTO THE COMING OF OUR LORD JESUS CHRIST.:# 24 FAITHFUL IS HE THAT CALLETH YOU, WHO ALSO WILL DO IT.# 25 BRETHREN, PRAY FOR US.I.# 26 GREET ALL THE BRETHREN WITH AN HOLY KISS.I# 27 I CHARGE YOU BY THE LORD THAT THIS EPISTLE BE READ UNTO ALL THE HOLY0 BRETHREN.:# 28 THE GRACE OF OUR LORD JESUS CHRIST BE WITH YOU. AMEN.IS GOOD.)# 22 ABSTAIN FROM ALL APPEARANCE OF EVIL.CM# 23 AND THE VERY GOD OF PEACE SANCTIFY YOU WHOLLY; AND I PRAY GOD YOUR WHOLESL SPIRIT AND SOUL AND BODY BE PRESERVED BLAMELESS UNTO THE COMING OF OUR LORD JESUS CHRIST.:# 24 FAITHFUL IS HE * BOOK53 2THESSALONIANSO = CHAPTER 1 N# 1 PAUL, AND SILVANUS, AND TIMOTHEUS, UNTO THE CHURCH OF THE THESSALONIANS IN* GOD OUR FATHER AND THE LORD JESUS CHRIST:M# 2 GRACE UNTO YOU, AND PEACE, FROM GOD OUR FATHER AND THE LORD JESUS CHRIST.SF# 3 WE ARE BOUND TO THANK GOD ALWAYS FOR YOU, BRETHREN, AS IT IS MEET,M BECAUSE THAT YOUR FAITH GROWETH EXCEEDINGLY, AND THE CHARITY OF EVERY ONE OFS% YOU ALL TOWARD EACH OTHER ABOUNDETH;DE# 4 SO THAT WE OURSELVES GLORY IN YOU IN THE CHURCHES OF GOD FOR YOURSM PATIENCE AND FAITH IN ALL YOUR PERSECUTIONS AND TRIBULATIONS THAT YE ENDURE:HK# 5 WHICH IS A MANIFEST TOKEN OF THE RIGHTEOUS JUDGMENT OF GOD, THAT YE MAYSC BE COUNTED WORTHY OF THE KINGDOM OF GOD, FOR WHICH YE ALSO SUFFER:EM# 6 SEEING IT IS A RIGHTEOUS THING WITH GOD TO RECOMPENSE TRIBULATION TO THEMS THAT TROUBLE YOU;J# 7 AND TO YOU WHO ARE TROUBLED REST WITH US, WHEN THE LORD JESUS SHALL BE- REVEALED FROM HEAVEN WITH HIS MIGHTY ANGELS,AM# 8 IN FLAMING FIRE TAKING VENGEANCE ON THEM THAT KNOW NOT GOD, AND THAT OBEYT) NOT THE GOSPEL OF OUR LORD JESUS CHRIST: K# 9 WHO SHALL BE PUNISHED WITH EVERLASTING DESTRUCTION FROM THE PRESENCE OFG+ THE LORD, AND FROM THE GLORY OF HIS POWER;IK# 10 WHEN HE SHALL COME TO BE GLORIFIED IN HIS SAINTS, AND TO BE ADMIRED INWM ALL THEM THAT BELIEVE (BECAUSE OUR TESTIMONY AMONG YOU WAS BELIEVED) IN THATW DAY.TH# 11 WHEREFORE ALSO WE PRAY ALWAYS FOR YOU, THAT OUR GOD WOULD COUNT YOUN WORTHY OF THIS CALLING, AND FULFIL ALL THE GOOD PLEASURE OF HIS GOODNESS, AND THE WORK OF FAITH WITH POWER:K# 12 THAT THE NAME OF OUR LORD JESUS CHRIST MAY BE GLORIFIED IN YOU, AND YEIE IN HIM, ACCORDING TO THE GRACE OF OUR GOD AND THE LORD JESUS CHRIST.H = CHAPTER 2 M# 1 NOW WE BESEECH YOU, BRETHREN, BY THE COMING OF OUR LORD JESUS CHRIST, ANDL$ BY OUR GATHERING TOGETHER UNTO HIM,J# 2 THAT YE BE NOT SOON SHAKEN IN MIND, OR BE TROUBLED, NEITHER BY SPIRIT,M NOR BY WORD, NOR BY LETTER AS FROM US, AS THAT THE DAY OF CHRIST IS AT HAND. L# 3 LET NO MAN DECEIVE YOU BY ANY MEANS: FOR THAT DAY SHALL NOT COME, EXCEPTM THERE COME A FALLING AWAY FIRST, AND THAT MAN OF SIN BE REVEALED, THE SON OF PERDITION;GK# 4 WHO OPPOSETH AND EXALTETH HIMSELF ABOVE ALL THAT IS CALLED GOD, OR THATEG IS WORSHIPPED; SO THAT HE AS GOD SITTETH IN THE TEMPLE OF GOD, SHEWING  HIMSELF THAT HE IS GOD.L# 5 REMEMBER YE NOT, THAT, WHEN I WAS YET WITH YOU, I TOLD YOU THESE THINGS?K# 6 AND NOW YE KNOW WHAT WITHHOLDETH THAT HE MIGHT BE REVEALED IN HIS TIME. J# 7 FOR THE MYSTERY OF INIQUITY DOTH ALREADY WORK: ONL00rFyFD%5%T6%! !Y HE WHO NOW LETTETH, WILL LET, UNTIL HE BE TAKEN OUT OF THE WAY.L# 8 AND THEN SHALL THAT WICKED BE REVEALED, WHOM THE LORD SHALL CONSUME WITHN THE SPIRIT OF HIS MOUTH, AND SHALL DESTROY WITH THE BRIGHTNESS OF HIS COMING:K# 9 EVEN HIM, WHOSE COMING IS AFTER THE WORKING OF SATAN WITH ALL POWER AND SIGNS AND LYING WONDERS,WH# 10 AND WITH ALL DECEIVABLENESS OF UNRIGHTEOUSNESS IN THEM THAT PERISH;K BECAUSE THEY RECEIVED NOT THE LOVE OF THE TRUTH, THAT THEY MIGHT BE SAVED.IM# 11 AND FOR THIS CAUSE GOD SHALL SEND THEM STRONG DELUSION, THAT THEY SHOULDN BELIEVE A LIE:F# 12 THAT THEY ALL MIGHT BE DAMNED WHO BELIEVED NOT THE TRUTH, BUT HAD PLEASURE IN UNRIGHTEOUSNESS. L# 13 BUT WE ARE BOUND TO GIVE THANKS ALWAYS TO GOD FOR YOU, BRETHREN BELOVEDI OF THE LORD, BECAUSE GOD HATH FROM THE BEGINNING CHOSEN YOU TO SALVATIONE> THROUGH SANCTIFICATION OF THE SPIRIT AND BELIEF OF THE TRUTH:L# 14 WHEREUNTO HE CALLED YOU BY OUR GOSPEL, TO THE OBTAINING OF THE GLORY OF OUR LORD JESUS CHRIST.FK# 15 THEREFORE, BRETHREN, STAND FAST, AND HOLD THE TRADITIONS WHICH YE HAVEE. BEEN TAUGHT, WHETHER BY WORD, OR OUR EPISTLE.L# 16 NOW OUR LORD JESUS CHRIST HIMSELF, AND GOD, EVEN OUR FATHER, WHICH HATHJ LOVED US, AND HATH GIVEN US EVERLASTING CONSOLATION AND GOOD HOPE THROUGH GRACE,SG# 17 COMFORT YOUR HEARTS, AND STABLISH YOU IN EVERY GOOD WORD AND WORK.C = CHAPTER 3 K# 1 FINALLY, BRETHREN, PRAY FOR US, THAT THE WORD OF THE LORD MAY HAVE FREEO2 COURSE, AND BE GLORIFIED, EVEN AS IT IS WITH YOU:J# 2 AND THAT WE MAY BE DELIVERED FROM UNREASONABLE AND WICKED MEN: FOR ALL MEN HAVE NOT FAITH.M# 3 BUT THE LORD IS FAITHFUL, WHO SHALL STABLISH YOU, AND KEEP YOU FROM EVIL.OM# 4 AND WE HAVE CONFIDENCE IN THE LORD TOUCHING YOU, THAT YE BOTH DO AND WILLA$ DO THE THINGS WHICH WE COMMAND YOU.F# 5 AND THE LORD DIRECT YOUR HEARTS INTO THE LOVE OF GOD, AND INTO THE PATIENT WAITING FOR CHRIST.L# 6 NOW WE COMMAND YOU, BRETHREN, IN THE NAME OF OUR LORD JESUS CHRIST, THATK YE WITHDRAW YOURSELVES FROM EVERY BROTHER THAT WALKETH DISORDERLY, AND NOTN- AFTER THE TRADITION WHICH HE RECEIVED OF US.OE# 7 FOR YOURSELVES KNOW HOW YE OUGHT TO FOLLOW US: FOR WE BEHAVED NOTP OURSELVES DISORDERLY AMONG YOU;M# 8 NEITHER DID WE EAT ANY MANS BREAD FOR NOUGHT; BUT WROUGHT WITH LABOUR ANDWF TRAVAIL NIGHT AND DAY, THAT WE MIGHT NOT BE CHARGEABLE TO ANY OF YOU:M# 9 NOT BECAUSE WE HAVE NOT POWER, BUT TO MAKE OURSELVES AN ENSAMPLE UNTO YOUT TO FOLLOW US.M# 10 FOR EVEN WHEN WE WERE WITH YOU, THIS WE COMMANDED YOU, THAT IF ANY WOULDA! NOT WORK, NEITHER SHOULD HE EAT.TM# 11 FOR WE HEAR THAT THERE ARE SOME WHICH WALK AMONG YOU DISORDERLY, WORKINGT NOT AT ALL, BUT ARE BUSYBODIES.K# 12 NOW THEM THAT ARE SUCH WE COMMAND AND EXHORT BY OUR LORD JESUS CHRIST, 8 THAT WITH QUIETNESS THEY WORK, AND EAT THEIR OWN BREAD.2# 13 BUT YE, BRETHREN, BE NOT WEARY IN WELL DOING.I# 14 AND IF ANY MAN OBEY NOT OUR WORD BY THIS EPISTLE, NOTE THAT MAN, ANDO2 HAVE NO COMPANY WITH HIM, THAT HE MAY BE ASHAMED.B# 15 YET COUNT HIM NOT AS AN ENEMY, BUT ADMONISH HIM AS A BROTHER.J# 16 NOW THE LORD OF PEACE HIMSELF GIVE YOU PEACE ALWAYS BY ALL MEANS. THE LORD BE WITH YOU ALL.K# 17 THE SALUTATION OF PAUL WITH MINE OWN HAND, WHICH IS THE TOKEN IN EVERYR EPISTLE: SO I WRITE.I># 18 THE GRACE OF OUR LORD JESUS CHRIST BE WITH YOU ALL. AMEN.# 13 BUT YE, BRETHREN, BE NOT WEARY IN WELL DOING.I# 14 AND IF ANY MAN OBEY NOT OUR WORD BY THIS EPISTLE, NOTE THAT MAN, ANDO2 HAVE NO COMPANY WITH HIM, THAT HE MAY BE ASHAMED.B# 15 YET COUNT HIM NOT AS AN ENEMY, BUT ADMONISH HIM A* BOOK54 1TIMOTHYN = CHAPTER 1 K# 1 PAUL, AN APOSTLE OF JESUS CHRIST BY THE COMMANDMENT OF GOD OUR SAVIOUR,.* AND LORD JESUS CHRIST, WHICH IS OUR HOPE;L# 2 UNTO TIMOTHY, MY OWN SON IN THE FAITH: GRACE, MERCY, AND PEACE, FROM GOD& OUR FATHER AND JESUS CHRIST OUR LORD.M# 3 AS I BESOUGHT THEE TO ABIDE STILL AT EPHESUS, WHEN I WENT INTO MACEDONIA,YB THAT THOU MIGHTEST CHARGE SOME THAT THEY TEACH NO OTHER DOCTRINE,G# 4 NEITHER GIVE HEED TO FABLES AND ENDLESS GENEALOGIES, WHICH MINISTERU@ QUESTIONS, RA00zFmF<%X>%+%O-%TADATADATATHER THAN GODLY EDIFYING WHICH IS IN FAITH: SO DO.K# 5 NOW THE END OF THE COMMANDMENT IS CHARITY OUT OF A PURE HEART, AND OF AU) GOOD CONSCIENCE, AND OF FAITH UNFEIGNED:TH# 6 FROM WHICH SOME HAVING SWERVED HAVE TURNED ASIDE UNTO VAIN JANGLING;L# 7 DESIRING TO BE TEACHERS OF THE LAW; UNDERSTANDING NEITHER WHAT THEY SAY, NOR WHEREOF THEY AFFIRM.A?# 8 BUT WE KNOW THAT THE LAW IS GOOD, IF A MAN USE IT LAWFULLY;RK# 9 KNOWING THIS, THAT THE LAW IS NOT MADE FOR A RIGHTEOUS MAN, BUT FOR THEUI LAWLESS AND DISOBEDIENT, FOR THE UNGODLY AND FOR SINNERS, FOR UNHOLY AND L PROFANE, FOR MURDERERS OF FATHERS AND MURDERERS OF MOTHERS, FOR MANSLAYERS,H# 10 FOR WHOREMONGERS, FOR THEM THAT DEFILE THEMSELVES WITH MANKIND, FORN MENSTEALERS, FOR LIARS, FOR PERJURED PERSONS, AND IF THERE BE ANY OTHER THING$ THAT IS CONTRARY TO SOUND DOCTRINE;M# 11 ACCORDING TO THE GLORIOUS GOSPEL OF THE BLESSED GOD, WHICH WAS COMMITTEDA TO MY TRUST.NH# 12 AND I THANK CHRIST JESUS OUR LORD, WHO HATH ENABLED ME, FOR THAT HE3 COUNTED ME FAITHFUL, PUTTING ME INTO THE MINISTRY;RH# 13 WHO WAS BEFORE A BLASPHEMER, AND A PERSECUTOR, AND INJURIOUS: BUT I9 OBTAINED MERCY, BECAUSE I DID IT IGNORANTLY IN UNBELIEF.TI# 14 AND THE GRACE OF OUR LORD WAS EXCEEDING ABUNDANT WITH FAITH AND LOVE  WHICH IS IN CHRIST JESUS.J# 15 THIS IS A FAITHFUL SAYING, AND WORTHY OF ALL ACCEPTATION, THAT CHRIST? JESUS CAME INTO THE WORLD TO SAVE SINNERS; OF WHOM I AM CHIEF.UK# 16 HOWBEIT FOR THIS CAUSE I OBTAINED MERCY, THAT IN ME FIRST JESUS CHRISTEG MIGHT SHEW FORTH ALL LONGSUFFERING, FOR A PATTERN TO THEM WHICH SHOULDR. HEREAFTER BELIEVE ON HIM TO LIFE EVERLASTING.J# 17 NOW UNTO THE KING ETERNAL, IMMORTAL, INVISIBLE, THE ONLY WISE GOD, BE* HONOUR AND GLORY FOR EVER AND EVER. AMEN.M# 18 THIS CHARGE I COMMIT UNTO THEE, SON TIMOTHY, ACCORDING TO THE PROPHECIESIJ WHICH WENT BEFORE ON THEE, THAT THOU BY THEM MIGHTEST WAR A GOOD WARFARE;E# 19 HOLDING FAITH, AND A GOOD CONSCIENCE; WHICH SOME HAVING PUT AWAYA& CONCERNING FAITH HAVE MADE SHIPWRECK:J# 20 OF WHOM IS HYMENAEUS AND ALEXANDER; WHOM I HAVE DELIVERED UNTO SATAN,& THAT THEY MAY LEARN NOT TO BLASPHEME. = CHAPTER 2 C# 1 I EXHORT THEREFORE, THAT, FIRST OF ALL, SUPPLICATIONS, PRAYERS,E: INTERCESSIONS, AND GIVING OF THANKS, BE MADE FOR ALL MEN;J# 2 FOR KINGS, AND FOR ALL THAT ARE IN AUTHORITY; THAT WE MAY LEAD A QUIET1 AND PEACEABLE LIFE IN ALL GODLINESS AND HONESTY.GD# 3 FOR THIS IS GOOD AND ACCEPTABLE IN THE SIGHT OF GOD OUR SAVIOUR;L# 4 WHO WILL HAVE ALL MEN TO BE SAVED, AND TO COME UNTO THE KNOWLEDGE OF THE TRUTH.LG# 5 FOR THERE IS ONE GOD, AND ONE MEDIATOR BETWEEN GOD AND MEN, THE MANL CHRIST JESUS;C# 6 WHO GAVE HIMSELF A RANSOM FOR ALL, TO BE TESTIFIED IN DUE TIME.AM# 7 WHEREUNTO I AM ORDAINED A PREACHER, AND AN APOSTLE, (I SPEAK THE TRUTH INGE CHRIST, AND LIE NOT;) A TEACHER OF THE GENTILES IN FAITH AND VERITY.AF# 8 I WILL THEREFORE THAT MEN PRAY EVERY WHERE, LIFTING UP HOLY HANDS, WITHOUT WRATH AND DOUBTING.L# 9 IN LIKE MANNER ALSO, THAT WOMEN ADORN THEMSELVES IN MODEST APPAREL, WITHK SHAMEFACEDNESS AND SOBRIETY; NOT WITH BROIDED HAIR, OR GOLD, OR PEARLS, ORA COSTLY ARRAY;E# 10 BUT (WHICH BECOMETH WOMEN PROFESSING GODLINESS) WITH GOOD WORKS.D8# 11 LET THE WOMAN LEARN IN SILENCE WITH ALL SUBJECTION.L# 12 BUT I SUFFER NOT A WOMAN TO TEACH, NOR TO USURP AUTHORITY OVER THE MAN, BUT TO BE IN SILENCE.)# 13 FOR ADAM WAS FIRST FORMED, THEN EVE.EG# 14 AND ADAM WAS NOT DECEIVED, BUT THE WOMAN BEING DECEIVED WAS IN THEL TRANSGRESSION.TL# 15 NOTWITHSTANDING SHE SHALL BE SAVED IN CHILDBEARING, IF THEY CONTINUE IN. FAITH AND CHARITY AND HOLINESS WITH SOBRIETY. = CHAPTER 3 N# 1 THIS IS A TRUE SAYING, IF A MAN DESIRE THE OFFICE OF A BISHOP, HE DESIRETH A GOOD WORK.NG# 2 A BISHOP THEN MUST BE BLAMELESS, THE HUSBAND OF ONE WIFE, VIGILANT,T> SOBER, OF GOOD BEHAVIOUR, GIVEN TO HOSPITALITY, APT TO TEACH;K# 3 NOT GIVEN TO WINE, NO STRIKER, NOT GREEDY OF FILTHY LUCRE; BUT PATIENT,D NOT A BRAWLER, NOT COVETOUS;WI# 4 ONE THAT RULETH WELL HIS OWN HOUSE, HAVING HIS CHILDREN IN SUBJECTIONI00FyFD%5%T6%! ! WITH ALL GRAVITY;L# 5 (FOR IF A MAN KNOW NOT HOW TO RULE HIS OWN HOUSE, HOW SHALL HE TAKE CARE OF THE CHURCH OF GOD?) B# 6 NOT A NOVICE, LEST BEING LIFTED UP WITH PRIDE HE FALL INTO THE CONDEMNATION OF THE DEVIL.LJ# 7 MOREOVER HE MUST HAVE A GOOD REPORT OF THEM WHICH ARE WITHOUT; LEST HE/ FALL INTO REPROACH AND THE SNARE OF THE DEVIL.NL# 8 LIKEWISE MUST THE DEACONS BE GRAVE, NOT DOUBLETONGUED, NOT GIVEN TO MUCH" WINE, NOT GREEDY OF FILTHY LUCRE;:# 9 HOLDING THE MYSTERY OF THE FAITH IN A PURE CONSCIENCE.J# 10 AND LET THESE ALSO FIRST BE PROVED; THEN LET THEM USE THE OFFICE OF A DEACON, BEING FOUND BLAMELESS.OJ# 11 EVEN SO MUST THEIR WIVES BE GRAVE, NOT SLANDERERS, SOBER, FAITHFUL IN ALL THINGS.K# 12 LET THE DEACONS BE THE HUSBANDS OF ONE WIFE, RULING THEIR CHILDREN ANDU THEIR OWN HOUSES WELL.PD# 13 FOR THEY THAT HAVE USED THE OFFICE OF A DEACON WELL PURCHASE TOM THEMSELVES A GOOD DEGREE, AND GREAT BOLDNESS IN THE FAITH WHICH IS IN CHRIST JESUS.NF# 14 THESE THINGS WRITE I UNTO THEE, HOPING TO COME UNTO THEE SHORTLY:K# 15 BUT IF I TARRY LONG, THAT THOU MAYEST KNOW HOW THOU OUGHTEST TO BEHAVEAH THYSELF IN THE HOUSE OF GOD, WHICH IS THE CHURCH OF THE LIVING GOD, THE PILLAR AND GROUND OF THE TRUTH.G# 16 AND WITHOUT CONTROVERSY GREAT IS THE MYSTERY OF GODLINESS: GOD WASEN MANIFEST IN THE FLESH, JUSTIFIED IN THE SPIRIT, SEEN OF ANGELS, PREACHED UNTO@ THE GENTILES, BELIEVED ON IN THE WORLD, RECEIVED UP INTO GLORY. = CHAPTER 4 J# 1 NOW THE SPIRIT SPEAKETH EXPRESSLY, THAT IN THE LATTER TIMES SOME SHALLI DEPART FROM THE FAITH, GIVING HEED TO SEDUCING SPIRITS, AND DOCTRINES OFO DEVILS;I# 2 SPEAKING LIES IN HYPOCRISY; HAVING THEIR CONSCIENCE SEARED WITH A HOTO IRON;M# 3 FORBIDDING TO MARRY, AND COMMANDING TO ABSTAIN FROM MEATS, WHICH GOD HATHTL CREATED TO BE RECEIVED WITH THANKSGIVING OF THEM WHICH BELIEVE AND KNOW THE TRUTH.GJ# 4 FOR EVERY CREATURE OF GOD IS GOOD, AND NOTHING TO BE REFUSED, IF IT BE RECEIVED WITH THANKSGIVING:7# 5 FOR IT IS SANCTIFIED BY THE WORD OF GOD AND PRAYER. L# 6 IF THOU PUT THE BRETHREN IN REMEMBRANCE OF THESE THINGS, THOU SHALT BE AN GOOD MINISTER OF JESUS CHRIST, NOURISHED UP IN THE WORDS OF FAITH AND OF GOOD( DOCTRINE, WHEREUNTO THOU HAST ATTAINED.M# 7 BUT REFUSE PROFANE AND OLD WIVES FABLES, AND EXERCISE THYSELF RATHER UNTOC GODLINESS.AJ# 8 FOR BODILY EXERCISE PROFITETH LITTLE: BUT GODLINESS IS PROFITABLE UNTOL ALL THINGS, HAVING PROMISE OF THE LIFE THAT NOW IS, AND OF THAT WHICH IS TO COME.<# 9 THIS IS A FAITHFUL SAYING AND WORTHY OF ALL ACCEPTATION.J# 10 FOR THEREFORE WE BOTH LABOUR AND SUFFER REPROACH, BECAUSE WE TRUST ING THE LIVING GOD, WHO IS THE SAVIOUR OF ALL MEN, SPECIALLY OF THOSE THATO BELIEVE.N$# 11 THESE THINGS COMMAND AND TEACH.K# 12 LET NO MAN DESPISE THY YOUTH; BUT BE THOU AN EXAMPLE OF THE BELIEVERS,GF IN WORD, IN CONVERSATION, IN CHARITY, IN SPIRIT, IN FAITH, IN PURITY.J# 13 TILL I COME, GIVE ATTENDANCE TO READING, TO EXHORTATION, TO DOCTRINE.L# 14 NEGLECT NOT THE GIFT THAT IS IN THEE, WHICH WAS GIVEN THEE BY PROPHECY,3 WITH THE LAYING ON OF THE HANDS OF THE PRESBYTERY.RF# 15 MEDITATE UPON THESE THINGS; GIVE THYSELF WHOLLY TO THEM; THAT THY PROFITING MAY APPEAR TO ALL.OL# 16 TAKE HEED UNTO THYSELF, AND UNTO THE DOCTRINE; CONTINUE IN THEM: FOR INB DOING THIS THOU SHALT BOTH SAVE THYSELF, AND THEM THAT HEAR THEE. = CHAPTER 5 L# 1 REBUKE NOT AN ELDER, BUT INTREAT HIM AS A FATHER; AND THE YOUNGER MEN AS BRETHREN;H# 2 THE ELDER WOMEN AS MOTHERS; THE YOUNGER AS SISTERS, WITH ALL PURITY.)# 3 HONOUR WIDOWS THAT ARE WIDOWS INDEED.AK# 4 BUT IF ANY WIDOW HAVE CHILDREN OR NEPHEWS, LET THEM LEARN FIRST TO SHEWVM PIETY AT HOME, AND TO REQUITE THEIR PARENTS: FOR THAT IS GOOD AND ACCEPTABLEE BEFORE GOD.F# 5 NOW SHE THAT IS A WIDOW INDEED, AND DESOLATE, TRUSTETH IN GOD, AND7 CONTINUETH IN SUPPLICATIONS AND PRAYERS NIGHT AND DAY. =# 6 BUT SHE THAT LIVETH IN PLEASURE IS DEAD WHILE SHE LIVETH.H@# 7 AND THESE THINGS GIVE IN CHARGE, THAT THEY MAY BE BLAMELESS.J# 8 BUT IF ANY PROVIDE NOT FOR HIS OWN, AND SPECIALLY FOR TH00FmF<%X>%+%O-%TADATADATAOSE OF HIS OWN? HOUSE, HE HATH DENIED THE FAITH, AND IS WORSE THAN AN INFIDEL.RH# 9 LET NOT A WIDOW BE TAKEN INTO THE NUMBER UNDER THREESCORE YEARS OLD,! HAVING BEEN THE WIFE OF ONE MAN..M# 10 WELL REPORTED OF FOR GOOD WORKS; IF SHE HAVE BROUGHT UP CHILDREN, IF SHEIG HAVE LODGED STRANGERS, IF SHE HAVE WASHED THE SAINTS FEET, IF SHE HAVETI RELIEVED THE AFFLICTED, IF SHE HAVE DILIGENTLY FOLLOWED EVERY GOOD WORK.GJ# 11 BUT THE YOUNGER WIDOWS REFUSE: FOR WHEN THEY HAVE BEGUN TO WAX WANTON! AGAINST CHRIST, THEY WILL MARRY;UD# 12 HAVING DAMNATION, BECAUSE THEY HAVE CAST OFF THEIR FIRST FAITH.K# 13 AND WITHAL THEY LEARN TO BE IDLE, WANDERING ABOUT FROM HOUSE TO HOUSE;NK AND NOT ONLY IDLE, BUT TATTLERS ALSO AND BUSYBODIES, SPEAKING THINGS WHICHU THEY OUGHT NOT.L# 14 I WILL THEREFORE THAT THE YOUNGER WOMEN MARRY, BEAR CHILDREN, GUIDE THEC HOUSE, GIVE NONE OCCASION TO THE ADVERSARY TO SPEAK REPROACHFULLY.O3# 15 FOR SOME ARE ALREADY TURNED ASIDE AFTER SATAN.NK# 16 IF ANY MAN OR WOMAN THAT BELIEVETH HAVE WIDOWS, LET THEM RELIEVE THEM,NL AND LET NOT THE CHURCH BE CHARGED; THAT IT MAY RELIEVE THEM THAT ARE WIDOWS INDEED.F# 17 LET THE ELDERS THAT RULE WELL BE COUNTED WORTHY OF DOUBLE HONOUR,5 ESPECIALLY THEY WHO LABOUR IN THE WORD AND DOCTRINE.L# 18 FOR THE SCRIPTURE SAITH, THOU SHALT NOT MUZZLE THE OX THAT TREADETH OUT5 THE CORN. AND, THE LABOURER IS WORTHY OF HIS REWARD.EH# 19 AGAINST AN ELDER RECEIVE NOT AN ACCUSATION, BUT BEFORE TWO OR THREE WITNESSES. @# 20 THEM THAT SIN REBUKE BEFORE ALL, THAT OTHERS ALSO MAY FEAR.G# 21 I CHARGE THEE BEFORE GOD, AND THE LORD JESUS CHRIST, AND THE ELECTAN ANGELS, THAT THOU OBSERVE THESE THINGS WITHOUT PREFERRING ONE BEFORE ANOTHER, DOING NOTHING BY PARTIALITY.YJ# 22 LAY HANDS SUDDENLY ON NO MAN, NEITHER BE PARTAKER OF OTHER MENS SINS: KEEP THYSELF PURE.XK# 23 DRINK NO LONGER WATER, BUT USE A LITTLE WINE FOR THY STOMACHS SAKE AND  THINE OFTEN INFIRMITIES. K# 24 SOME MENS SINS ARE OPEN BEFOREHAND, GOING BEFORE TO JUDGMENT; AND SOMER MEN THEY FOLLOW AFTER.HK# 25 LIKEWISE ALSO THE GOOD WORKS OF SOME ARE MANIFEST BEFOREHAND; AND THEY " THAT ARE OTHERWISE CANNOT BE HID. = CHAPTER 6 M# 1 LET AS MANY SERVANTS AS ARE UNDER THE YOKE COUNT THEIR OWN MASTERS WORTHY H OF ALL HONOUR, THAT THE NAME OF GOD AND HIS DOCTRINE BE NOT BLASPHEMED.L# 2 AND THEY THAT HAVE BELIEVING MASTERS, LET THEM NOT DESPISE THEM, BECAUSEM THEY ARE BRETHREN; BUT RATHER DO THEM SERVICE, BECAUSE THEY ARE FAITHFUL ANDBB BELOVED, PARTAKERS OF THE BENEFIT. THESE THINGS TEACH AND EXHORT.L# 3 IF ANY MAN TEACH OTHERWISE, AND CONSENT NOT TO WHOLESOME WORDS, EVEN THEJ WORDS OF OUR LORD JESUS CHRIST, AND TO THE DOCTRINE WHICH IS ACCORDING TO GODLINESS;NK# 4 HE IS PROUD, KNOWING NOTHING, BUT DOTING ABOUT QUESTIONS AND STRIFES OFF? WORDS, WHEREOF COMETH ENVY, STRIFE, RAILINGS, EVIL SURMISINGS,BL# 5 PERVERSE DISPUTINGS OF MEN OF CORRUPT MINDS, AND DESTITUTE OF THE TRUTH,> SUPPOSING THAT GAIN IS GODLINESS: FROM SUCH WITHDRAW THYSELF.1# 6 BUT GODLINESS WITH CONTENTMENT IS GREAT GAIN.EJ# 7 FOR WE BROUGHT NOTHING INTO THIS WORLD, AND IT IS CERTAIN WE CAN CARRY NOTHING OUT.S<# 8 AND HAVING FOOD AND RAIMENT LET US BE THEREWITH CONTENT.I# 9 BUT THEY THAT WILL BE RICH FALL INTO TEMPTATION AND A SNARE, AND INTOEN MANY FOOLISH AND HURTFUL LUSTS, WHICH DROWN MEN IN DESTRUCTION AND PERDITION.L# 10 FOR THE LOVE OF MONEY IS THE ROOT OF ALL EVIL: WHICH WHILE SOME COVETEDK AFTER, THEY HAVE ERRED FROM THE FAITH, AND PIERCED THEMSELVES THROUGH WITH  MANY SORROWS.@# 11 BUT THOU, O MAN OF GOD, FLEE THESE THINGS; AND FOLLOW AFTER; RIGHTEOUSNESS, GODLINESS, FAITH, LOVE, PATIENCE, MEEKNESS. L# 12 FIGHT THE GOOD FIGHT OF FAITH, LAY HOLD ON ETERNAL LIFE, WHEREUNTO THOUM ART ALSO CALLED, AND HAST PROFESSED A GOOD PROFESSION BEFORE MANY WITNESSES.UK# 13 I GIVE THEE CHARGE IN THE SIGHT OF GOD, WHO QUICKENETH ALL THINGS, ANDML BEFORE CHRIST JESUS, WHO BEFORE PONTIUS PILATE WITNESSED A GOOD CONFESSION;I# 14 THAT THOU KEEP THIS COMMANDMENT WITHOUT SPOT, UNREBUKABLE, UNTIL THE1$ APPEARING OF OUR LORD JES00FFD%5%T6%! !US CHRIST:M# 15 WHICH IN HIS TIMES HE SHALL SHEW, WHO IS THE BLESSED AND ONLY POTENTATE,E& THE KING OF KINGS, AND LORD OF LORDS;F# 16 WHO ONLY HATH IMMORTALITY, DWELLING IN THE LIGHT WHICH NO MAN CANI APPROACH UNTO; WHOM NO MAN HATH SEEN, NOR CAN SEE: TO WHOM BE HONOUR AND  POWER EVERLASTING. AMEN.IJ# 17 CHARGE THEM THAT ARE RICH IN THIS WORLD, THAT THEY BE NOT HIGHMINDED,K NOR TRUST IN UNCERTAIN RICHES, BUT IN THE LIVING GOD, WHO GIVETH US RICHLY, ALL THINGS TO ENJOY;1M# 18 THAT THEY DO GOOD, THAT THEY BE RICH IN GOOD WORKS, READY TO DISTRIBUTE,W WILLING TO COMMUNICATE;L# 19 LAYING UP IN STORE FOR THEMSELVES A GOOD FOUNDATION AGAINST THE TIME TO. COME, THAT THEY MAY LAY HOLD ON ETERNAL LIFE.K# 20 O TIMOTHY, KEEP THAT WHICH IS COMMITTED TO THY TRUST, AVOIDING PROFANEPB AND VAIN BABBLINGS, AND OPPOSITIONS OF SCIENCE FALSELY SO CALLED:I# 21 WHICH SOME PROFESSING HAVE ERRED CONCERNING THE FAITH. GRACE BE WITHE THEE. AMENWHO GIVETH US RICHLY, ALL THINGS TO ENJOY;1M# 18 THAT THEY DO GOOD, TH* BOOK55 2TIMOTHYG = CHAPTER 1 I# 1 PAUL, AN APOSTLE OF JESUS CHRIST BY THE WILL OF GOD, ACCORDING TO THEH* PROMISE OF LIFE WHICH IS IN CHRIST JESUS,L# 2 TO TIMOTHY, MY DEARLY BELOVED SON: GRACE, MERCY, AND PEACE, FROM GOD THE" FATHER AND CHRIST JESUS OUR LORD.L# 3 I THANK GOD, WHOM I SERVE FROM MY FOREFATHERS WITH PURE CONSCIENCE, THATH WITHOUT CEASING I HAVE REMEMBRANCE OF THEE IN MY PRAYERS NIGHT AND DAY;K# 4 GREATLY DESIRING TO SEE THEE, BEING MINDFUL OF THY TEARS, THAT I MAY BEH FILLED WITH JOY;OI# 5 WHEN I CALL TO REMEMBRANCE THE UNFEIGNED FAITH THAT IS IN THEE, WHICHIE DWELT FIRST IN THY GRANDMOTHER LOIS, AND THY MOTHER EUNICE; AND I AM, PERSUADED THAT IN THEE ALSO.OJ# 6 WHEREFORE I PUT THEE IN REMEMBRANCE THAT THOU STIR UP THE GIFT OF GOD,0 WHICH IS IN THEE BY THE PUTTING ON OF MY HANDS.L# 7 FOR GOD HATH NOT GIVEN US THE SPIRIT OF FEAR; BUT OF POWER, AND OF LOVE, AND OF A SOUND MIND.NM# 8 BE NOT THOU THEREFORE ASHAMED OF THE TESTIMONY OF OUR LORD, NOR OF ME HISYM PRISONER: BUT BE THOU PARTAKER OF THE AFFLICTIONS OF THE GOSPEL ACCORDING TOA THE POWER OF GOD;K# 9 WHO HATH SAVED US, AND CALLED US WITH AN HOLY CALLING, NOT ACCORDING TORM OUR WORKS, BUT ACCORDING TO HIS OWN PURPOSE AND GRACE, WHICH WAS GIVEN US INT% CHRIST JESUS BEFORE THE WORLD BEGAN,EK# 10 BUT IS NOW MADE MANIFEST BY THE APPEARING OF OUR SAVIOUR JESUS CHRIST, I WHO HATH ABOLISHED DEATH, AND HATH BROUGHT LIFE AND IMMORTALITY TO LIGHTH THROUGH THE GOSPEL:J# 11 WHEREUNTO I AM APPOINTED A PREACHER, AND AN APOSTLE, AND A TEACHER OF THE GENTILES.J# 12 FOR THE WHICH CAUSE I ALSO SUFFER THESE THINGS: NEVERTHELESS I AM NOTN ASHAMED: FOR I KNOW WHOM I HAVE BELIEVED, AND AM PERSUADED THAT HE IS ABLE TO< KEEP THAT WHICH I HAVE COMMITTED UNTO HIM AGAINST THAT DAY.M# 13 HOLD FAST THE FORM OF SOUND WORDS, WHICH THOU HAST HEARD OF ME, IN FAITHU# AND LOVE WHICH IS IN CHRIST JESUS.BI# 14 THAT GOOD THING WHICH WAS COMMITTED UNTO THEE KEEP BY THE HOLY GHOSTE WHICH DWELLETH IN US.K# 15 THIS THOU KNOWEST, THAT ALL THEY WHICH ARE IN ASIA BE TURNED AWAY FROM* ME; OF WHOM ARE PHYGELLUS AND HERMOGENES.L# 16 THE LORD GIVE MERCY UNTO THE HOUSE OF ONESIPHORUS; FOR HE OFT REFRESHED% ME, AND WAS NOT ASHAMED OF MY CHAIN: J# 17 BUT, WHEN HE WAS IN ROME, HE SOUGHT ME OUT VERY DILIGENTLY, AND FOUND ME.L# 18 THE LORD GRANT UNTO HIM THAT HE MAY FIND MERCY OF THE LORD IN THAT DAY:K AND IN HOW MANY THINGS HE MINISTERED UNTO ME AT EPHESUS, THOU KNOWEST VERYH WELL. = CHAPTER 2 K# 1 THOU THEREFORE, MY SON, BE STRONG IN THE GRACE THAT IS IN CHRIST JESUS.EL# 2 AND THE THINGS THAT THOU HAST HEARD OF ME AMONG MANY WITNESSES, THE SAMEE COMMIT THOU TO FAITHFUL MEN, WHO SHALL BE ABLE TO TEACH OTHERS ALSO.NF# 3 THOU THEREFORE ENDURE HARDNESS, AS A GOOD SOLDIER OF JESUS CHRIST.I# 4 NO MAN THAT WARRETH ENTANGLETH HIMSELF WITH THE AFFAIRS OF THIS LIFE;Y< THAT HE MAY PLEASE HIM WHO HATH CHOSEN HIM TO BE A SOLDIER.L# 5 AND IF A MAN ALSO STRIVE FOR MASTERIES, YET IS HE NOT CROWNED, EXCEPT HE STRIVE LAWFULLY.YG# 6 THE HUSBANDMAN THAT LA00FmF<%X>%+%O-%TADATADATABOURETH MUST BE FIRST PARTAKER OF THE FRUITS.SL# 7 CONSIDER WHAT I SAY; AND THE LORD GIVE THEE UNDERSTANDING IN ALL THINGS.L# 8 REMEMBER THAT JESUS CHRIST OF THE SEED OF DAVID WAS RAISED FROM THE DEAD ACCORDING TO MY GOSPEL:L# 9 WHEREIN I SUFFER TROUBLE, AS AN EVIL DOER, EVEN UNTO BONDS; BUT THE WORD OF GOD IS NOT BOUND.AK# 10 THEREFORE I ENDURE ALL THINGS FOR THE ELECTS SAKES, THAT THEY MAY ALSOSB OBTAIN THE SALVATION WHICH IS IN CHRIST JESUS WITH ETERNAL GLORY.L# 11 IT IS A FAITHFUL SAYING: FOR IF WE BE DEAD WITH HIM, WE SHALL ALSO LIVE WITH HIM:M# 12 IF WE SUFFER, WE SHALL ALSO REIGN WITH HIM: IF WE DENY HIM, HE ALSO WILLE DENY US:EH# 13 IF WE BELIEVE NOT, YET HE ABIDETH FAITHFUL: HE CANNOT DENY HIMSELF.K# 14 OF THESE THINGS PUT THEM IN REMEMBRANCE, CHARGING THEM BEFORE THE LORD L THAT THEY STRIVE NOT ABOUT WORDS TO NO PROFIT, BUT TO THE SUBVERTING OF THE HEARERS.,K# 15 STUDY TO SHEW THYSELF APPROVED UNTO GOD, A WORKMAN THAT NEEDETH NOT TOR0 BE ASHAMED, RIGHTLY DIVIDING THE WORD OF TRUTH.J# 16 BUT SHUN PROFANE AND VAIN BABBLINGS: FOR THEY WILL INCREASE UNTO MORE UNGODLINESS.WG# 17 AND THEIR WORD WILL EAT AS DOTH A CANKER: OF WHOM IS HYMENAEUS ANDT PHILETUS;I# 18 WHO CONCERNING THE TRUTH HAVE ERRED, SAYING THAT THE RESURRECTION ISM/ PAST ALREADY; AND OVERTHROW THE FAITH OF SOME.HL# 19 NEVERTHELESS THE FOUNDATION OF GOD STANDETH SURE, HAVING THIS SEAL, THEK LORD KNOWETH THEM THAT ARE HIS. AND, LET EVERY ONE THAT NAMETH THE NAME OFT CHRIST DEPART FROM INIQUITY.NK# 20 BUT IN A GREAT HOUSE THERE ARE NOT ONLY VESSELS OF GOLD AND OF SILVER, J BUT ALSO OF WOOD AND OF EARTH; AND SOME TO HONOUR, AND SOME TO DISHONOUR.K# 21 IF A MAN THEREFORE PURGE HIMSELF FROM THESE, HE SHALL BE A VESSEL UNTOAJ HONOUR, SANCTIFIED, AND MEET FOR THE MASTERS USE, AND PREPARED UNTO EVERY GOOD WORK.EH# 22 FLEE ALSO YOUTHFUL LUSTS: BUT FOLLOW RIGHTEOUSNESS, FAITH, CHARITY,< PEACE, WITH THEM THAT CALL ON THE LORD OUT OF A PURE HEART.K# 23 BUT FOOLISH AND UNLEARNED QUESTIONS AVOID, KNOWING THAT THEY DO GENDERO STRIFES.RM# 24 AND THE SERVANT OF THE LORD MUST NOT STRIVE; BUT BE GENTLE UNTO ALL MEN,  APT TO TEACH, PATIENT,TA# 25 IN MEEKNESS INSTRUCTING THOSE THAT OPPOSE THEMSELVES; IF GODSJ PERADVENTURE WILL GIVE THEM REPENTANCE TO THE ACKNOWLEDGING OF THE TRUTH;L# 26 AND THAT THEY MAY RECOVER THEMSELVES OUT OF THE SNARE OF THE DEVIL, WHO& ARE TAKEN CAPTIVE BY HIM AT HIS WILL. = CHAPTER 3 D# 1 THIS KNOW ALSO, THAT IN THE LAST DAYS PERILOUS TIMES SHALL COME.K# 2 FOR MEN SHALL BE LOVERS OF THEIR OWN SELVES, COVETOUS, BOASTERS, PROUD,R9 BLASPHEMERS, DISOBEDIENT TO PARENTS, UNTHANKFUL, UNHOLY,NJ# 3 WITHOUT NATURAL AFFECTION, TRUCEBREAKERS, FALSE ACCUSERS, INCONTINENT,* FIERCE, DESPISERS OF THOSE THAT ARE GOOD,M# 4 TRAITORS, HEADY, HIGHMINDED, LOVERS OF PLEASURES MORE THAN LOVERS OF GOD;CM# 5 HAVING A FORM OF GODLINESS, BUT DENYING THE POWER THEREOF: FROM SUCH TURNT AWAY.M# 6 FOR OF THIS SORT ARE THEY WHICH CREEP INTO HOUSES, AND LEAD CAPTIVE SILLYL3 WOMEN LADEN WITH SINS, LED AWAY WITH DIVERS LUSTS,EH# 7 EVER LEARNING, AND NEVER ABLE TO COME TO THE KNOWLEDGE OF THE TRUTH.J# 8 NOW AS JANNES AND JAMBRES WITHSTOOD MOSES, SO DO THESE ALSO RESIST THE= TRUTH: MEN OF CORRUPT MINDS, REPROBATE CONCERNING THE FAITH. M# 9 BUT THEY SHALL PROCEED NO FURTHER: FOR THEIR FOLLY SHALL BE MANIFEST UNTO  ALL MEN, AS THEIRS ALSO WAS.UK# 10 BUT THOU HAST FULLY KNOWN MY DOCTRINE, MANNER OF LIFE, PURPOSE, FAITH,E" LONGSUFFERING, CHARITY, PATIENCE,M# 11 PERSECUTIONS, AFFLICTIONS, WHICH CAME UNTO ME AT ANTIOCH, AT ICONIUM, ATVL LYSTRA; WHAT PERSECUTIONS I ENDURED: BUT OUT OF THEM ALL THE LORD DELIVERED ME.C# 12 YEA, AND ALL THAT WILL LIVE GODLY IN CHRIST JESUS SHALL SUFFERE PERSECUTION.NH# 13 BUT EVIL MEN AND SEDUCERS SHALL WAX WORSE AND WORSE, DECEIVING, AND BEING DECEIVED.J# 14 BUT CONTINUE THOU IN THE THINGS WHICH THOU HAST LEARNED AND HAST BEEN4 ASSURED OF, KNOWING OF WHOM THOU HAST LEARNED THEM;I# 15 AND THAT FROM A CHILD THOU HAST KNOWN THE HOLY SCRIPTURES, WHICH AREHN ABLE TO MAKE THEE WISE UN00FFD%5%T6%! !TO SALVATION THROUGH FAITH WHICH IS IN CHRIST JESUS.H# 16 ALL SCRIPTURE IS GIVEN BY INSPIRATION OF GOD, AND IS PROFITABLE FORI DOCTRINE, FOR REPROOF, FOR CORRECTION, FOR INSTRUCTION IN RIGHTEOUSNESS: J# 17 THAT THE MAN OF GOD MAY BE PERFECT, THROUGHLY FURNISHED UNTO ALL GOOD WORKS.T = CHAPTER 4 L# 1 I CHARGE THEE THEREFORE BEFORE GOD, AND THE LORD JESUS CHRIST, WHO SHALL? JUDGE THE QUICK AND THE DEAD AT HIS APPEARING AND HIS KINGDOM;TJ# 2 PREACH THE WORD; BE INSTANT IN SEASON, OUT OF SEASON; REPROVE, REBUKE,- EXHORT WITH ALL LONG SUFFERING AND DOCTRINE.6H# 3 FOR THE TIME WILL COME WHEN THEY WILL NOT ENDURE SOUND DOCTRINE; BUTM AFTER THEIR OWN LUSTS SHALL THEY HEAP TO THEMSELVES TEACHERS, HAVING ITCHINGA EARS; ITFK# 4 AND THEY SHALL TURN AWAY THEIR EARS FROM THE TRUTH, AND SHALL BE TURNED UNTO FABLES.TG# 5 BUT WATCH THOU IN ALL THINGS, ENDURE AFFLICTIONS, DO THE WORK OF ANE- EVANGELIST, MAKE FULL PROOF OF THY MINISTRY.NH# 6 FOR I AM NOW READY TO BE OFFERED, AND THE TIME OF MY DEPARTURE IS AT HAND.J# 7 I HAVE FOUGHT A GOOD FIGHT, I HAVE FINISHED MY COURSE, I HAVE KEPT THE FAITH:YJ# 8 HENCEFORTH THERE IS LAID UP FOR ME A CROWN OF RIGHTEOUSNESS, WHICH THEN LORD, THE RIGHTEOUS JUDGE, SHALL GIVE ME AT THAT DAY: AND NOT TO ME ONLY, BUT, UNTO ALL THEM ALSO THAT LOVE HIS APPEARING.-# 9 DO THY DILIGENCE TO COME SHORTLY UNTO ME: H# 10 FOR DEMAS HATH FORSAKEN ME, HAVING LOVED THIS PRESENT WORLD, AND ISF DEPARTED UNTO THESSALONICA; CRESCENS TO GALATIA, TITUS UNTO DALMATIA.H# 11 ONLY LUKE IS WITH ME. TAKE MARK, AND BRING HIM WITH THEE: FOR HE IS# PROFITABLE TO ME FOR THE MINISTRY.I)# 12 AND TYCHICUS HAVE I SENT TO EPHESUS.EM# 13 THE CLOKE THAT I LEFT AT TROAS WITH CARPUS, WHEN THOU COMEST, BRING WITH 4 THEE, AND THE BOOKS, BUT ESPECIALLY THE PARCHMENTS.D# 14 ALEXANDER THE COPPERSMITH DID ME MUCH EVIL: THE LORD REWARD HIM ACCORDING TO HIS WORKS:H# 15 OF WHOM BE THOU WARE ALSO; FOR HE HATH GREATLY WITHSTOOD OUR WORDS.L# 16 AT MY FIRST ANSWER NO MAN STOOD WITH ME, BUT ALL MEN FORSOOK ME: I PRAY- GOD THAT IT MAY NOT BE LAID TO THEIR CHARGE.SL# 17 NOTWITHSTANDING THE LORD STOOD WITH ME, AND STRENGTHENED ME; THAT BY MEN THE PREACHING MIGHT BE FULLY KNOWN, AND THAT ALL THE GENTILES MIGHT HEAR: AND. I WAS DELIVERED OUT OF THE MOUTH OF THE LION.M# 18 AND THE LORD SHALL DELIVER ME FROM EVERY EVIL WORK, AND WILL PRESERVE MEME UNTO HIS HEAVENLY KINGDOM: TO WHOM BE GLORY FOR EVER AND EVER. AMEN. @# 19 SALUTE PRISCA AND AQUILA, AND THE HOUSEHOLD OF ONESIPHORUS.I# 20 ERASTUS ABODE AT CORINTH: BUT TROPHIMUS HAVE I LEFT AT MILETUM SICK.HG# 21 DO THY DILIGENCE TO COME BEFORE WINTER. EUBULUS GREETETH THEE, ANDE6 PUDENS, AND LINUS, AND CLAUDIA, AND ALL THE BRETHREN.G# 22 THE LORD JESUS CHRIST BE WITH THY SPIRIT. GRACE BE WITH YOU. AMEN.TH OF THE LION.M# 18 AND THE LORD SHALL DELIVER ME FROM EVERY EVIL WORK, AND WILL PRESERVE MEME UNTO HIS HEAVENLY KINGDOM: TO WHOM BE GLORY FOR EVER AND EVER. AMEN. @# 19 SALUTE PRISCA AND AQUILA, AND THE HOUSEHOLD OF ONESIPHORUS.I# 20 ERASTUS ABODE AT CORINTH: B* BOOK56 TITUS = CHAPTER 1 L# 1 PAUL, A SERVANT OF GOD, AND AN APOSTLE OF JESUS CHRIST, ACCORDING TO THEG FAITH OF GODS ELECT, AND THE ACKNOWLEDGING OF THE TRUTH WHICH IS AFTERE GODLINESS;HL# 2 IN HOPE OF ETERNAL LIFE, WHICH GOD, THAT CANNOT LIE, PROMISED BEFORE THE WORLD BEGAN;II# 3 BUT HATH IN DUE TIMES MANIFESTED HIS WORD THROUGH PREACHING, WHICH ISDC COMMITTED UNTO ME ACCORDING TO THE COMMANDMENT OF GOD OUR SAVIOUR;DK# 4 TO TITUS, MINE OWN SON AFTER THE COMMON FAITH: GRACE, MERCY, AND PEACE,; FROM GOD THE FATHER AND THE LORD JESUS CHRIST OUR SAVIOUR. M# 5 FOR THIS CAUSE LEFT I THEE IN CRETE, THAT THOU SHOULDEST SET IN ORDER THENM THINGS THAT ARE WANTING, AND ORDAIN ELDERS IN EVERY CITY, AS I HAD APPOINTEDF THEE:J# 6 IF ANY BE BLAMELESS, THE HUSBAND OF ONE WIFE, HAVING FAITHFUL CHILDREN NOT ACCUSED OF RIOT OR UNRULY.OJ# 7 FOR A BISHOP MUST BE BLAMELESS, AS THE STEWARD OF GOD; NOT SELFWILLED,J NOT SOON ANGRY, NOT GIVEN TO WINE, NO STRIKER, NOT GIVEN TO FILTHY LUCRE;G# 8 BUT A LOVER 00FmF<%X>%+%O-%TADATADATAOF HOSPITALITY, A LOVER OF GOOD MEN, SOBER, JUST, HOLY,S TEMPERATE; I# 9 HOLDING FAST THE FAITHFUL WORD AS HE HATH BEEN TAUGHT, THAT HE MAY BEF ABLE BY SOUND DOCTRINE BOTH TO EXHORT AND TO CONVINCE THE GAINSAYERS.M# 10 FOR THERE ARE MANY UNRULY AND VAIN TALKERS AND DECEIVERS, SPECIALLY THEYU OF THE CIRCUMCISION:DL# 11 WHOSE MOUTHS MUST BE STOPPED, WHO SUBVERT WHOLE HOUSES, TEACHING THINGS. WHICH THEY OUGHT NOT, FOR FILTHY LUCRES SAKE.K# 12 ONE OF THEMSELVES, EVEN A PROPHET OF THEIR OWN, SAID, THE CRETIANS AREY( ALWAY LIARS, EVIL BEASTS, SLOW BELLIES.J# 13 THIS WITNESS IS TRUE. WHEREFORE REBUKE THEM SHARPLY, THAT THEY MAY BE SOUND IN THE FAITH;I# 14 NOT GIVING HEED TO JEWISH FABLES, AND COMMANDMENTS OF MEN, THAT TURNT FROM THE TRUTH.J# 15 UNTO THE PURE ALL THINGS ARE PURE: BUT UNTO THEM THAT ARE DEFILED ANDL UNBELIEVING IS NOTHING PURE; BUT EVEN THEIR MIND AND CONSCIENCE IS DEFILED.G# 16 THEY PROFESS THAT THEY KNOW GOD; BUT IN WORKS THEY DENY HIM, BEINGVA ABOMINABLE, AND DISOBEDIENT, AND UNTO EVERY GOOD WORK REPROBATE.V = CHAPTER 2 :# 1 BUT SPEAK THOU THE THINGS WHICH BECOME SOUND DOCTRINE:M# 2 THAT THE AGED MEN BE SOBER, GRAVE, TEMPERATE, SOUND IN FAITH, IN CHARITY,H IN PATIENCE.ML# 3 THE AGED WOMEN LIKEWISE, THAT THEY BE IN BEHAVIOUR AS BECOMETH HOLINESS,E NOT FALSE ACCUSERS, NOT GIVEN TO MUCH WINE, TEACHERS OF GOOD THINGS;UL# 4 THAT THEY MAY TEACH THE YOUNG WOMEN TO BE SOBER, TO LOVE THEIR HUSBANDS, TO LOVE THEIR CHILDREN,H# 5 TO BE DISCREET, CHASTE, KEEPERS AT HOME, GOOD, OBEDIENT TO THEIR OWN2 HUSBANDS, THAT THE WORD OF GOD BE NOT BLASPHEMED.1# 6 YOUNG MEN LIKEWISE EXHORT TO BE SOBER MINDED.AF# 7 IN ALL THINGS SHEWING THYSELF A PATTERN OF GOOD WORKS: IN DOCTRINE+ SHEWING UNCORRUPTNESS, GRAVITY, SINCERITY,HK# 8 SOUND SPEECH, THAT CANNOT BE CONDEMNED; THAT HE THAT IS OF THE CONTRARYU9 PART MAY BE ASHAMED, HAVING NO EVIL THING TO SAY OF YOU. M# 9 EXHORT SERVANTS TO BE OBEDIENT UNTO THEIR OWN MASTERS, AND TO PLEASE THEM) WELL IN ALL THINGS; NOT ANSWERING AGAIN;,K# 10 NOT PURLOINING, BUT SHEWING ALL GOOD FIDELITY; THAT THEY MAY ADORN THEE+ DOCTRINE OF GOD OUR SAVIOUR IN ALL THINGS. K# 11 FOR THE GRACE OF GOD THAT BRINGETH SALVATION HATH APPEARED TO ALL MEN,IL# 12 TEACHING US THAT, DENYING UNGODLINESS AND WORLDLY LUSTS, WE SHOULD LIVE8 SOBERLY, RIGHTEOUSLY, AND GODLY, IN THIS PRESENT WORLD;K# 13 LOOKING FOR THAT BLESSED HOPE, AND THE GLORIOUS APPEARING OF THE GREAT " GOD AND OUR SAVIOUR JESUS CHRIST;L# 14 WHO GAVE HIMSELF FOR US, THAT HE MIGHT REDEEM US FROM ALL INIQUITY, AND> PURIFY UNTO HIMSELF A PECULIAR PEOPLE, ZEALOUS OF GOOD WORKS.J# 15 THESE THINGS SPEAK, AND EXHORT, AND REBUKE WITH ALL AUTHORITY. LET NO MAN DESPISE THEE. = CHAPTER 3 H# 1 PUT THEM IN MIND TO BE SUBJECT TO PRINCIPALITIES AND POWERS, TO OBEY- MAGISTRATES, TO BE READY TO EVERY GOOD WORK,YG# 2 TO SPEAK EVIL OF NO MAN, TO BE NO BRAWLERS, BUT GENTLE, SHEWING ALLR MEEKNESS UNTO ALL MEN.AH# 3 FOR WE OURSELVES ALSO WERE SOMETIMES FOOLISH, DISOBEDIENT, DECEIVED,L SERVING DIVERS LUSTS AND PLEASURES, LIVING IN MALICE AND ENVY, HATEFUL, AND HATING ONE ANOTHER.F# 4 BUT AFTER THAT THE KINDNESS AND LOVE OF GOD OUR SAVIOUR TOWARD MAN APPEARED,J# 5 NOT BY WORKS OF RIGHTEOUSNESS WHICH WE HAVE DONE, BUT ACCORDING TO HISL MERCY HE SAVED US, BY THE WASHING OF REGENERATION, AND RENEWING OF THE HOLY GHOST;SD# 6 WHICH HE SHED ON US ABUNDANTLY THROUGH JESUS CHRIST OUR SAVIOUR;K# 7 THAT BEING JUSTIFIED BY HIS GRACE, WE SHOULD BE MADE HEIRS ACCORDING TOE THE HOPE OF ETERNAL LIFE.G# 8 THIS IS A FAITHFUL SAYING, AND THESE THINGS I WILL THAT THOU AFFIRMNN CONSTANTLY, THAT THEY WHICH HAVE BELIEVED IN GOD MIGHT BE CAREFUL TO MAINTAIN; GOOD WORKS. THESE THINGS ARE GOOD AND PROFITABLE UNTO MEN.EF# 9 BUT AVOID FOOLISH QUESTIONS, AND GENEALOGIES, AND CONTENTIONS, AND= STRIVINGS ABOUT THE LAW; FOR THEY ARE UNPROFITABLE AND VAIN.SL# 10 A MAN THAT IS AN HERETICK AFTER THE FIRST AND SECOND ADMONITION REJECT;L# 11 KNOWING THAT HE THAT IS SUCH IS SUBVERTED, AND SINNETH, BEING CONDEMNED OF HIMSELF.J# 12 WHEN 00FFF5%T6%! !I SHALL SEND ARTEMAS UNTO THEE, OR TYCHICUS, BE DILIGENT TO COME= UNTO ME TO NICOPOLIS: FOR I HAVE DETERMINED THERE TO WINTER.NI# 13 BRING ZENAS THE LAWYER AND APOLLOS ON THEIR JOURNEY DILIGENTLY, THAT  NOTHING BE WANTING UNTO THEM.L# 14 AND LET OURS ALSO LEARN TO MAINTAIN GOOD WORKS FOR NECESSARY USES, THAT THEY BE NOT UNFRUITFUL.L# 15 ALL THAT ARE WITH ME SALUTE THEE. GREET THEM THAT LOVE US IN THE FAITH. GRACE BE WITH YOU ALL. AMEN.BVERTED, AND SINNETH, BEING CONDEMNED OF HIMSELF.J# 12 WHEN * BOOK57 PHILEMONS = CHAPTER 1 L# 1 PAUL, A PRISONER OF JESUS CHRIST, AND TIMOTHY OUR BROTHER, UNTO PHILEMON( OUR DEARLY BELOVED, AND FELLOWLABOURER,J# 2 AND TO OUR BELOVED APPHIA, AND ARCHIPPUS OUR FELLOWSOLDIER, AND TO THE CHURCH IN THY HOUSE:RK# 3 GRACE TO YOU, AND PEACE, FROM GOD OUR FATHER AND THE LORD JESUS CHRIST.F@# 4 I THANK MY GOD, MAKING MENTION OF THEE ALWAYS IN MY PRAYERS,M# 5 HEARING OF THY LOVE AND FAITH, WHICH THOU HAST TOWARD THE LORD JESUS, ANDC TOWARD ALL SAINTS;.C# 6 THAT THE COMMUNICATION OF THY FAITH MAY BECOME EFFECTUAL BY THEOC ACKNOWLEDGING OF EVERY GOOD THING WHICH IS IN YOU IN CHRIST JESUS.EL# 7 FOR WE HAVE GREAT JOY AND CONSOLATION IN THY LOVE, BECAUSE THE BOWELS OF+ THE SAINTS ARE REFRESHED BY THEE, BROTHER.EH# 8 WHEREFORE, THOUGH I MIGHT BE MUCH BOLD IN CHRIST TO ENJOIN THEE THAT WHICH IS CONVENIENT,GK# 9 YET FOR LOVES SAKE I RATHER BESEECH THEE, BEING SUCH AN ONE AS PAUL THE / AGED, AND NOW ALSO A PRISONER OF JESUS CHRIST.CJ# 10 I BESEECH THEE FOR MY SON ONESIMUS, WHOM I HAVE BEGOTTEN IN MY BONDS:L# 11 WHICH IN TIME PAST WAS TO THEE UNPROFITABLE, BUT NOW PROFITABLE TO THEE AND TO ME: J# 12 WHOM I HAVE SENT AGAIN: THOU THEREFORE RECEIVE HIM, THAT IS, MINE OWN BOWELS:H# 13 WHOM I WOULD HAVE RETAINED WITH ME, THAT IN THY STEAD HE MIGHT HAVE/ MINISTERED UNTO ME IN THE BONDS OF THE GOSPEL:NL# 14 BUT WITHOUT THY MIND WOULD I DO NOTHING; THAT THY BENEFIT SHOULD NOT BE( AS IT WERE OF NECESSITY, BUT WILLINGLY.H# 15 FOR PERHAPS HE THEREFORE DEPARTED FOR A SEASON, THAT THOU SHOULDEST RECEIVE HIM FOR EVER;L# 16 NOT NOW AS A SERVANT, BUT ABOVE A SERVANT, A BROTHER BELOVED, SPECIALLYH TO ME, BUT HOW MUCH MORE UNTO THEE, BOTH IN THE FLESH, AND IN THE LORD?A# 17 IF THOU COUNT ME THEREFORE A PARTNER, RECEIVE HIM AS MYSELF.NL# 18 IF HE HATH WRONGED THEE, OR OWETH THEE OUGHT, PUT THAT ON MINE ACCOUNT;L# 19 I PAUL HAVE WRITTEN IT WITH MINE OWN HAND, I WILL REPAY IT: ALBEIT I DOD NOT SAY TO THEE HOW THOU OWEST UNTO ME EVEN THINE OWN SELF BESIDES.L# 20 YEA, BROTHER, LET ME HAVE JOY OF THEE IN THE LORD: REFRESH MY BOWELS IN THE LORD.L# 21 HAVING CONFIDENCE IN THY OBEDIENCE I WROTE UNTO THEE, KNOWING THAT THOU WILT ALSO DO MORE THAN I SAY.H# 22 BUT WITHAL PREPARE ME ALSO A LODGING: FOR I TRUST THAT THROUGH YOUR# PRAYERS I SHALL BE GIVEN UNTO YOU. C# 23 THERE SALUTE THEE EPAPHRAS, MY FELLOWPRISONER IN CHRIST JESUS;E;# 24 MARCUS, ARISTARCHUS, DEMAS, LUCAS, MY FELLOWLABOURERS.B# 25 THE GRACE OF OUR LORD JESUS CHRIST BE WITH YOUR SPIRIT. AMEN.L# 20 YEA, BROT* BOOK58 HEBREWS = CHAPTER 1 N# 1 GOD, WHO AT SUNDRY TIMES AND IN DIVERS MANNERS SPAKE IN TIME PAST UNTO THE FATHERS BY THE PROPHETS,IM# 2 HATH IN THESE LAST DAYS SPOKEN UNTO US BY HIS SON, WHOM HE HATH APPOINTED 5 HEIR OF ALL THINGS, BY WHOM ALSO HE MADE THE WORLDS;LG# 3 WHO BEING THE BRIGHTNESS OF HIS GLORY, AND THE EXPRESS IMAGE OF HISIJ PERSON, AND UPHOLDING ALL THINGS BY THE WORD OF HIS POWER, WHEN HE HAD BYL HIMSELF PURGED OUR SINS, SAT DOWN ON THE RIGHT HAND OF THE MAJESTY ON HIGH:H# 4 BEING MADE SO MUCH BETTER THAN THE ANGELS, AS HE HATH BY INHERITANCE* OBTAINED A MORE EXCELLENT NAME THAN THEY.K# 5 FOR UNTO WHICH OF THE ANGELS SAID HE AT ANY TIME, THOU ART MY SON, THIS M DAY HAVE I BEGOTTEN THEE? AND AGAIN, I WILL BE TO HIM A FATHER, AND HE SHALL  BE TO ME A SON?G# 6 AND AGAIN, WHEN HE BRINGETH IN THE FIRSTBEGOTTEN INTO THE WORLD, HE,2 SAITH, AND LET ALL THE ANGELS OF GOD WORSHIP HIM.F# 7 AND OF THE ANGELS HE SAITH, WHO MAKETH HIS ANGELS SPIRITS, AND HIS MINISTERS A FLAME OF FIRE00FmF<%X>%+%O-%TADATADATA.NI# 8 BUT UNTO THE SON HE SAITH, THY THRONE, O GOD, IS FOR EVER AND EVER: A 8 SCEPTRE OF RIGHTEOUSNESS IS THE SCEPTRE OF THY KINGDOM.J# 9 THOU HAST LOVED RIGHTEOUSNESS, AND HATED INIQUITY; THEREFORE GOD, EVENH THY GOD, HATH ANOINTED THEE WITH THE OIL OF GLADNESS ABOVE THY FELLOWS.M# 10 AND, THOU, LORD, IN THE BEGINNING HAST LAID THE FOUNDATION OF THE EARTH;I. AND THE HEAVENS ARE THE WORKS OF THINE HANDS:I# 11 THEY SHALL PERISH; BUT THOU REMAINEST; AND THEY ALL SHALL WAX OLD ASN DOTH A GARMENT;M# 12 AND AS A VESTURE SHALT THOU FOLD THEM UP, AND THEY SHALL BE CHANGED: BUT 1 THOU ART THE SAME, AND THY YEARS SHALL NOT FAIL. J# 13 BUT TO WHICH OF THE ANGELS SAID HE AT ANY TIME, SIT ON MY RIGHT HAND,* UNTIL I MAKE THINE ENEMIES THY FOOTSTOOL?J# 14 ARE THEY NOT ALL MINISTERING SPIRITS, SENT FORTH TO MINISTER FOR THEM! WHO SHALL BE HEIRS OF SALVATION?E = CHAPTER 2 K# 1 THEREFORE WE OUGHT TO GIVE THE MORE EARNEST HEED TO THE THINGS WHICH WEM6 HAVE HEARD, LEST AT ANY TIME WE SHOULD LET THEM SLIP.J# 2 FOR IF THE WORD SPOKEN BY ANGELS WAS STEDFAST, AND EVERY TRANSGRESSION7 AND DISOBEDIENCE RECEIVED A JUST RECOMPENCE OF REWARD;M# 3 HOW SHALL WE ESCAPE, IF WE NEGLECT SO GREAT SALVATION; WHICH AT THE FIRSTTM BEGAN TO BE SPOKEN BY THE LORD, AND WAS CONFIRMED UNTO US BY THEM THAT HEARDT HIM; H# 4 GOD ALSO BEARING THEM WITNESS, BOTH WITH SIGNS AND WONDERS, AND WITHI DIVERS MIRACLES, AND GIFTS OF THE HOLY GHOST, ACCORDING TO HIS OWN WILL?HH# 5 FOR UNTO THE ANGELS HATH HE NOT PUT IN SUBJECTION THE WORLD TO COME, WHEREOF WE SPEAK.L# 6 BUT ONE IN A CERTAIN PLACE TESTIFIED, SAYING, WHAT IS MAN, THAT THOU ART= MINDFUL OF HIM? OR THE SON OF MAN THAT THOU VISITEST HIM? ITSK# 7 THOU MADEST HIM A LITTLE LOWER THAN THE ANGELS; THOU CROWNEDST HIM WITHWA GLORY AND HONOUR, AND DIDST SET HIM OVER THE WORKS OF THY HANDS:IM# 8 THOU HAST PUT ALL THINGS IN SUBJECTION UNDER HIS FEET. FOR IN THAT HE PUTIL ALL IN SUBJECTION UNDER HIM, HE LEFT NOTHING THAT IS NOT PUT UNDER HIM. BUT- NOW WE SEE NOT YET ALL THINGS PUT UNDER HIM.I# 9 BUT WE SEE JESUS, WHO WAS MADE A LITTLE LOWER THAN THE ANGELS FOR THEIK SUFFERING OF DEATH, CROWNED WITH GLORY AND HONOUR; THAT HE BY THE GRACE OFI& GOD SHOULD TASTE DEATH FOR EVERY MAN.L# 10 FOR IT BECAME HIM, FOR WHOM ARE ALL THINGS, AND BY WHOM ARE ALL THINGS,I IN BRINGING MANY SONS UNTO GLORY, TO MAKE THE CAPTAIN OF THEIR SALVATIONI PERFECT THROUGH SUFFERINGS.M# 11 FOR BOTH HE THAT SANCTIFIETH AND THEY WHO ARE SANCTIFIED ARE ALL OF ONE:I9 FOR WHICH CAUSE HE IS NOT ASHAMED TO CALL THEM BRETHREN, J# 12 SAYING, I WILL DECLARE THY NAME UNTO MY BRETHREN, IN THE MIDST OF THE% CHURCH WILL I SING PRAISE UNTO THEE. G# 13 AND AGAIN, I WILL PUT MY TRUST IN HIM. AND AGAIN, BEHOLD I AND THE" CHILDREN WHICH GOD HATH GIVEN ME.M# 14 FORASMUCH THEN AS THE CHILDREN ARE PARTAKERS OF FLESH AND BLOOD, HE ALSO L HIMSELF LIKEWISE TOOK PART OF THE SAME; THAT THROUGH DEATH HE MIGHT DESTROY5 HIM THAT HAD THE POWER OF DEATH, THAT IS, THE DEVIL; G# 15 AND DELIVER THEM WHO THROUGH FEAR OF DEATH WERE ALL THEIR LIFETIME SUBJECT TO BONDAGE.K# 16 FOR VERILY HE TOOK NOT ON HIM THE NATURE OF ANGELS; BUT HE TOOK ON HIMI THE SEED OF ABRAHAM.DD# 17 WHEREFORE IN ALL THINGS IT BEHOVED HIM TO BE MADE LIKE UNTO HISI BRETHREN, THAT HE MIGHT BE A MERCIFUL AND FAITHFUL HIGH PRIEST IN THINGSTF PERTAINING TO GOD, TO MAKE RECONCILIATION FOR THE SINS OF THE PEOPLE.F# 18 FOR IN THAT HE HIMSELF HATH SUFFERED BEING TEMPTED, HE IS ABLE TO SUCCOUR THEM THAT ARE TEMPTED.D = CHAPTER 3 M# 1 WHEREFORE, HOLY BRETHREN, PARTAKERS OF THE HEAVENLY CALLING, CONSIDER THEF9 APOSTLE AND HIGH PRIEST OF OUR PROFESSION, CHRIST JESUS;OM# 2 WHO WAS FAITHFUL TO HIM THAT APPOINTED HIM, AS ALSO MOSES WAS FAITHFUL IN  ALL HIS HOUSE.NL# 3 FOR THIS MAN WAS COUNTED WORTHY OF MORE GLORY THAN MOSES, INASMUCH AS HE< WHO HATH BUILDED THE HOUSE HATH MORE HONOUR THAN THE HOUSE.K# 4 FOR EVERY HOUSE IS BUILDED BY SOME MAN; BUT HE THAT BUILT ALL THINGS ISS GOD.OG# 5 AND MOSES VERILY WAS FAITHFUL IN ALL HIS HOUSE, AS A SERVANT, FOR AT9 T00FFF5%T6%! !ESTIMONY OF THOSE THINGS WHICH WERE TO BE SPOKEN AFTER;OJ# 6 BUT CHRIST AS A SON OVER HIS OWN HOUSE; WHOSE HOUSE ARE WE, IF WE HOLDE FAST THE CONFIDENCE AND THE REJOICING OF THE HOPE FIRM UNTO THE END.UI# 7 WHEREFORE (AS THE HOLY GHOST SAITH, TO DAY IF YE WILL HEAR HIS VOICE,HK# 8 HARDEN NOT YOUR HEARTS, AS IN THE PROVOCATION, IN THE DAY OF TEMPTATION  IN THE WILDERNESS:DJ# 9 WHEN YOUR FATHERS TEMPTED ME, PROVED ME, AND SAW MY WORKS FORTY YEARS.J# 10 WHEREFORE I WAS GRIEVED WITH THAT GENERATION, AND SAID, THEY DO ALWAY5 ERR IN THEIR HEART; AND THEY HAVE NOT KNOWN MY WAYS. @# 11 SO I SWARE IN MY WRATH, THEY SHALL NOT ENTER INTO MY REST.)F# 12 TAKE HEED, BRETHREN, LEST THERE BE IN ANY OF YOU AN EVIL HEART OF, UNBELIEF, IN DEPARTING FROM THE LIVING GOD.M# 13 BUT EXHORT ONE ANOTHER DAILY, WHILE IT IS CALLED TO DAY; LEST ANY OF YOU . BE HARDENED THROUGH THE DECEITFULNESS OF SIN.I# 14 FOR WE ARE MADE PARTAKERS OF CHRIST, IF WE HOLD THE BEGINNING OF OURW" CONFIDENCE STEDFAST UNTO THE END;H# 15 WHILE IT IS SAID, TO DAY IF YE WILL HEAR HIS VOICE, HARDEN NOT YOUR HEARTS, AS IN THE PROVOCATION.NJ# 16 FOR SOME, WHEN THEY HAD HEARD, DID PROVOKE: HOWBEIT NOT ALL THAT CAME OUT OF EGYPT BY MOSES. L# 17 BUT WITH WHOM WAS HE GRIEVED FORTY YEARS? WAS IT NOT WITH THEM THAT HAD/ SINNED, WHOSE CARCASES FELL IN THE WILDERNESS?EJ# 18 AND TO WHOM SWARE HE THAT THEY SHOULD NOT ENTER INTO HIS REST, BUT TO THEM THAT BELIEVED NOT?@# 19 SO WE SEE THAT THEY COULD NOT ENTER IN BECAUSE OF UNBELIEF. = CHAPTER 4 M# 1 LET US THEREFORE FEAR, LEST, A PROMISE BEING LEFT US OF ENTERING INTO HIS 2 REST, ANY OF YOU SHOULD SEEM TO COME SHORT OF IT.K# 2 FOR UNTO US WAS THE GOSPEL PREACHED, AS WELL AS UNTO THEM: BUT THE WORDBL PREACHED DID NOT PROFIT THEM, NOT BEING MIXED WITH FAITH IN THEM THAT HEARD IT.H# 3 FOR WE WHICH HAVE BELIEVED DO ENTER INTO REST, AS HE SAID, AS I HAVEM SWORN IN MY WRATH, IF THEY SHALL ENTER INTO MY REST: ALTHOUGH THE WORKS WEREE+ FINISHED FROM THE FOUNDATION OF THE WORLD.LL# 4 FOR HE SPAKE IN A CERTAIN PLACE OF THE SEVENTH DAY ON THIS WISE, AND GOD- DID REST THE SEVENTH DAY FROM ALL HIS WORKS.S># 5 AND IN THIS PLACE AGAIN, IF THEY SHALL ENTER INTO MY REST.K# 6 SEEING THEREFORE IT REMAINETH THAT SOME MUST ENTER THEREIN, AND THEY TOI? WHOM IT WAS FIRST PREACHED ENTERED NOT IN BECAUSE OF UNBELIEF:VL# 7 AGAIN, HE LIMITETH A CERTAIN DAY, SAYING IN DAVID, TO DAY, AFTER SO LONGI A TIME; AS IT IS SAID, TO DAY IF YE WILL HEAR HIS VOICE, HARDEN NOT YOURF HEARTS.M# 8 FOR IF JESUS HAD GIVEN THEM REST, THEN WOULD HE NOT AFTERWARD HAVE SPOKENW OF ANOTHER DAY.:# 9 THERE REMAINETH THEREFORE A REST TO THE PEOPLE OF GOD.K# 10 FOR HE THAT IS ENTERED INTO HIS REST, HE ALSO HATH CEASED FROM HIS OWNN WORKS, AS GOD DID FROM HIS.M# 11 LET US LABOUR THEREFORE TO ENTER INTO THAT REST, LEST ANY MAN FALL AFTERF THE SAME EXAMPLE OF UNBELIEF.E# 12 FOR THE WORD OF GOD IS QUICK, AND POWERFUL, AND SHARPER THAN ANYDN TWOEDGED SWORD, PIERCING EVEN TO THE DIVIDING ASUNDER OF SOUL AND SPIRIT, ANDL OF THE JOINTS AND MARROW, AND IS A DISCERNER OF THE THOUGHTS AND INTENTS OF THE HEART. M# 13 NEITHER IS THERE ANY CREATURE THAT IS NOT MANIFEST IN HIS SIGHT: BUT ALLNJ THINGS ARE NAKED AND OPENED UNTO THE EYES OF HIM WITH WHOM WE HAVE TO DO.J# 14 SEEING THEN THAT WE HAVE A GREAT HIGH PRIEST, THAT IS PASSED INTO THE@ HEAVENS, JESUS THE SON OF GOD, LET US HOLD FAST OUR PROFESSION.L# 15 FOR WE HAVE NOT AN HIGH PRIEST WHICH CANNOT BE TOUCHED WITH THE FEELINGN OF OUR INFIRMITIES; BUT WAS IN ALL POINTS TEMPTED LIKE AS WE ARE, YET WITHOUT SIN.RG# 16 LET US THEREFORE COME BOLDLY UNTO THE THRONE OF GRACE, THAT WE MAYN6 OBTAIN MERCY, AND FIND GRACE TO HELP IN TIME OF NEED. = CHAPTER 5 L# 1 FOR EVERY HIGH PRIEST TAKEN FROM AMONG MEN IS ORDAINED FOR MEN IN THINGSI PERTAINING TO GOD, THAT HE MAY OFFER BOTH GIFTS AND SACRIFICES FOR SINS: L# 2 WHO CAN HAVE COMPASSION ON THE IGNORANT, AND ON THEM THAT ARE OUT OF THE; WAY; FOR THAT HE HIMSELF ALSO IS COMPASSED WITH INFIRMITY.IM# 3 AND BY REASON HEREOF HE OUGHT, AS FOR THE 00FmF<%X>%+%O-%TADATADATAPEOPLE, SO ALSO FOR HIMSELF, TO6 OFFER FOR SINS.M# 4 AND NO MAN TAKETH THIS HONOUR UNTO HIMSELF, BUT HE THAT IS CALLED OF GOD,C AS WAS AARON.J# 5 SO ALSO CHRIST GLORIFIED NOT HIMSELF TO BE MADE AN HIGH PRIEST; BUT HEB THAT SAID UNTO HIM, THOU ART MY SON, TO DAY HAVE I BEGOTTEN THEE.K# 6 AS HE SAITH ALSO IN ANOTHER PLACE, THOU ART A PRIEST FOR EVER AFTER THEN ORDER OF MELCHISEDEC.D# 7 WHO IN THE DAYS OF HIS FLESH, WHEN HE HAD OFFERED UP PRAYERS ANDN SUPPLICATIONS WITH STRONG CRYING AND TEARS UNTO HIM THAT WAS ABLE TO SAVE HIM- FROM DEATH, AND WAS HEARD IN THAT HE FEARED;SI# 8 THOUGH HE WERE A SON, YET LEARNED HE OBEDIENCE BY THE THINGS WHICH HEO SUFFERED;J# 9 AND BEING MADE PERFECT, HE BECAME THE AUTHOR OF ETERNAL SALVATION UNTO ALL THEM THAT OBEY HIM;A# 10 CALLED OF GOD AN HIGH PRIEST AFTER THE ORDER OF MELCHISEDEC. J# 11 OF WHOM WE HAVE MANY THINGS TO SAY, AND HARD TO BE UTTERED, SEEING YE ARE DULL OF HEARING. I# 12 FOR WHEN FOR THE TIME YE OUGHT TO BE TEACHERS, YE HAVE NEED THAT ONEOM TEACH YOU AGAIN WHICH BE THE FIRST PRINCIPLES OF THE ORACLES OF GOD; AND ARE: BECOME SUCH AS HAVE NEED OF MILK, AND NOT OF STRONG MEAT.M# 13 FOR EVERY ONE THAT USETH MILK IS UNSKILFUL IN THE WORD OF RIGHTEOUSNESS:  FOR HE IS A BABE.K# 14 BUT STRONG MEAT BELONGETH TO THEM THAT ARE OF FULL AGE, EVEN THOSE WHOEL BY REASON OF USE HAVE THEIR SENSES EXERCISED TO DISCERN BOTH GOOD AND EVIL. = CHAPTER 6 L# 1 THEREFORE LEAVING THE PRINCIPLES OF THE DOCTRINE OF CHRIST, LET US GO ONI UNTO PERFECTION; NOT LAYING AGAIN THE FOUNDATION OF REPENTANCE FROM DEAD WORKS, AND OF FAITH TOWARD GOD,B# 2 OF THE DOCTRINE OF BAPTISMS, AND OF LAYING ON OF HANDS, AND OF3 RESURRECTION OF THE DEAD, AND OF ETERNAL JUDGMENT.G'# 3 AND THIS WILL WE DO, IF GOD PERMIT.TM# 4 FOR IT IS IMPOSSIBLE FOR THOSE WHO WERE ONCE ENLIGHTENED, AND HAVE TASTEDNA OF THE HEAVENLY GIFT, AND WERE MADE PARTAKERS OF THE HOLY GHOST,H# 5 AND HAVE TASTED THE GOOD WORD OF GOD, AND THE POWERS OF THE WORLD TO COME,M# 6 IF THEY SHALL FALL AWAY, TO RENEW THEM AGAIN UNTO REPENTANCE; SEEING THEYDK CRUCIFY TO THEMSELVES THE SON OF GOD AFRESH, AND PUT HIM TO AN OPEN SHAME.OI# 7 FOR THE EARTH WHICH DRINKETH IN THE RAIN THAT COMETH OFT UPON IT, ANDGM BRINGETH FORTH HERBS MEET FOR THEM BY WHOM IT IS DRESSED, RECEIVETH BLESSINGT FROM GOD:J# 8 BUT THAT WHICH BEARETH THORNS AND BRIERS IS REJECTED, AND IS NIGH UNTO$ CURSING; WHOSE END IS TO BE BURNED.H# 9 BUT, BELOVED, WE ARE PERSUADED BETTER THINGS OF YOU, AND THINGS THAT+ ACCOMPANY SALVATION, THOUGH WE THUS SPEAK.AM# 10 FOR GOD IS NOT UNRIGHTEOUS TO FORGET YOUR WORK AND LABOUR OF LOVE, WHICH N YE HAVE SHEWED TOWARD HIS NAME, IN THAT YE HAVE MINISTERED TO THE SAINTS, AND DO MINISTER.OJ# 11 AND WE DESIRE THAT EVERY ONE OF YOU DO SHEW THE SAME DILIGENCE TO THE% FULL ASSURANCE OF HOPE UNTO THE END:TI# 12 THAT YE BE NOT SLOTHFUL, BUT FOLLOWERS OF THEM WHO THROUGH FAITH ANDH PATIENCE INHERIT THE PROMISES.,G# 13 FOR WHEN GOD MADE PROMISE TO ABRAHAM, BECAUSE HE COULD SWEAR BY NOA GREATER, HE SWARE BY HIMSELF,F# 14 SAYING, SURELY BLESSING I WILL BLESS THEE, AND MULTIPLYING I WILL MULTIPLY THEE. E# 15 AND SO, AFTER HE HAD PATIENTLY ENDURED, HE OBTAINED THE PROMISE.AL# 16 FOR MEN VERILY SWEAR BY THE GREATER: AND AN OATH FOR CONFIRMATION IS TO THEM AN END OF ALL STRIFE.AK# 17 WHEREIN GOD, WILLING MORE ABUNDANTLY TO SHEW UNTO THE HEIRS OF PROMISEE: THE IMMUTABILITY OF HIS COUNSEL, CONFIRMED IT BY AN OATH:M# 18 THAT BY TWO IMMUTABLE THINGS, IN WHICH IT WAS IMPOSSIBLE FOR GOD TO LIE,TN WE MIGHT HAVE A STRONG CONSOLATION, WHO HAVE FLED FOR REFUGE TO LAY HOLD UPON THE HOPE SET BEFORE US:M# 19 WHICH HOPE WE HAVE AS AN ANCHOR OF THE SOUL, BOTH SURE AND STEDFAST, ANDA* WHICH ENTERETH INTO THAT WITHIN THE VEIL;G# 20 WHITHER THE FORERUNNER IS FOR US ENTERED, EVEN JESUS, MADE AN HIGHE0 PRIEST FOR EVER AFTER THE ORDER OF MELCHISEDEC. = CHAPTER 7 M# 1 FOR THIS MELCHISEDEC, KING OF SALEM, PRIEST OF THE MOST HIGH GOD, WHO METTD ABRAHAM RETURNING FROM THE SLAUGHTER OF THE KINGS, AND BLESSED HIM;A# 2 00FFF5%T6%! !TO WHOM ALSO ABRAHAM GAVE A TENTH PART OF ALL; FIRST BEING BYLI INTERPRETATION KING OF RIGHTEOUSNESS, AND AFTER THAT ALSO KING OF SALEM,H WHICH IS, KING OF PEACE;AM# 3 WITHOUT FATHER, WITHOUT MOTHER, WITHOUT DESCENT, HAVING NEITHER BEGINNINGEN OF DAYS, NOR END OF LIFE; BUT MADE LIKE UNTO THE SON OF GOD; ABIDETH A PRIEST CONTINUALLY..M# 4 NOW CONSIDER HOW GREAT THIS MAN WAS, UNTO WHOM EVEN THE PATRIARCH ABRAHAMH GAVE THE TENTH OF THE SPOILS.K# 5 AND VERILY THEY THAT ARE OF THE SONS OF LEVI, WHO RECEIVE THE OFFICE OFMM THE PRIESTHOOD, HAVE A COMMANDMENT TO TAKE TITHES OF THE PEOPLE ACCORDING TOSJ THE LAW, THAT IS, OF THEIR BRETHREN, THOUGH THEY COME OUT OF THE LOINS OF ABRAHAM: M# 6 BUT HE WHOSE DESCENT IS NOT COUNTED FROM THEM RECEIVED TITHES OF ABRAHAM,F' AND BLESSED HIM THAT HAD THE PROMISES. D# 7 AND WITHOUT ALL CONTRADICTION THE LESS IS BLESSED OF THE BETTER.I# 8 AND HERE MEN THAT DIE RECEIVE TITHES; BUT THERE HE RECEIVETH THEM, OF% WHOM IT IS WITNESSED THAT HE LIVETH.SI# 9 AND AS I MAY SO SAY, LEVI ALSO, WHO RECEIVETH TITHES, PAYED TITHES INO ABRAHAM.SI# 10 FOR HE WAS YET IN THE LOINS OF HIS FATHER, WHEN MELCHISEDEC MET HIM.TL# 11 IF THEREFORE PERFECTION WERE BY THE LEVITICAL PRIESTHOOD, (FOR UNDER ITN THE PEOPLE RECEIVED THE LAW,) WHAT FURTHER NEED WAS THERE THAT ANOTHER PRIESTN SHOULD RISE AFTER THE ORDER OF MELCHISEDEC, AND NOT BE CALLED AFTER THE ORDER OF AARON?J# 12 FOR THE PRIESTHOOD BEING CHANGED, THERE IS MADE OF NECESSITY A CHANGE ALSO OF THE LAW.HK# 13 FOR HE OF WHOM THESE THINGS ARE SPOKEN PERTAINETH TO ANOTHER TRIBE, OFO+ WHICH NO MAN GAVE ATTENDANCE AT THE ALTAR.SM# 14 FOR IT IS EVIDENT THAT OUR LORD SPRANG OUT OF JUDA; OF WHICH TRIBE MOSESY% SPAKE NOTHING CONCERNING PRIESTHOOD.TE# 15 AND IT IS YET FAR MORE EVIDENT: FOR THAT AFTER THE SIMILITUDE OFE* MELCHISEDEC THERE ARISETH ANOTHER PRIEST,J# 16 WHO IS MADE, NOT AFTER THE LAW OF A CARNAL COMMANDMENT, BUT AFTER THE POWER OF AN ENDLESS LIFE.E# 17 FOR HE TESTIFIETH, THOU ART A PRIEST FOR EVER AFTER THE ORDER OFH MELCHISEDEC.SK# 18 FOR THERE IS VERILY A DISANNULLING OF THE COMMANDMENT GOING BEFORE FORA+ THE WEAKNESS AND UNPROFITABLENESS THEREOF.SK# 19 FOR THE LAW MADE NOTHING PERFECT, BUT THE BRINGING IN OF A BETTER HOPED) DID; BY THE WHICH WE DRAW NIGH UNTO GOD.R<# 20 AND INASMUCH AS NOT WITHOUT AN OATH HE WAS MADE PRIEST:K# 21 (FOR THOSE PRIESTS WERE MADE WITHOUT AN OATH; BUT THIS WITH AN OATH BYTN HIM THAT SAID UNTO HIM, THE LORD SWARE AND WILL NOT REPENT, THOU ART A PRIEST* FOR EVER AFTER THE ORDER OF MELCHISEDEC:)># 22 BY SO MUCH WAS JESUS MADE A SURETY OF A BETTER TESTAMENT.H# 23 AND THEY TRULY WERE MANY PRIESTS, BECAUSE THEY WERE NOT SUFFERED TO CONTINUE BY REASON OF DEATH: ITC# 24 BUT THIS MAN, BECAUSE HE CONTINUETH EVER, HATH AN UNCHANGEABLEO PRIESTHOOD.K# 25 WHEREFORE HE IS ABLE ALSO TO SAVE THEM TO THE UTTERMOST THAT COME UNTOTA GOD BY HIM, SEEING HE EVER LIVETH TO MAKE INTERCESSION FOR THEM.AI# 26 FOR SUCH AN HIGH PRIEST BECAME US, WHO IS HOLY, HARMLESS, UNDEFILED,E9 SEPARATE FROM SINNERS, AND MADE HIGHER THAN THE HEAVENS;UI# 27 WHO NEEDETH NOT DAILY, AS THOSE HIGH PRIESTS, TO OFFER UP SACRIFICE,TM FIRST FOR HIS OWN SINS, AND THEN FOR THE PEOPLES: FOR THIS HE DID ONCE, WHENT HE OFFERED UP HIMSELF.TK# 28 FOR THE LAW MAKETH MEN HIGH PRIESTS WHICH HAVE INFIRMITY; BUT THE WORDLM OF THE OATH, WHICH WAS SINCE THE LAW, MAKETH THE SON, WHO IS CONSECRATED FORI EVERMORE. = CHAPTER 8 K# 1 NOW OF THE THINGS WHICH WE HAVE SPOKEN THIS IS THE SUM: WE HAVE SUCH ANDN HIGH PRIEST, WHO IS SET ON THE RIGHT HAND OF THE THRONE OF THE MAJESTY IN THE HEAVENS;DK# 2 A MINISTER OF THE SANCTUARY, AND OF THE TRUE TABERNACLE, WHICH THE LORD, PITCHED, AND NOT MAN.D# 3 FOR EVERY HIGH PRIEST IS ORDAINED TO OFFER GIFTS AND SACRIFICES:H WHEREFORE IT IS OF NECESSITY THAT THIS MAN HAVE SOMEWHAT ALSO TO OFFER.M# 4 FOR IF HE WERE ON EARTH, HE SHOULD NOT BE A PRIEST, SEEING THAT THERE ARER/ PRIESTS THAT OFFER GIFTS ACCORDING TO THE LAW:HJ# 5 WHO SERVE UNTO THE EXAMPLE AND SHADOW OF HEAVENLY THINGS, AS00FmF<%X>%+%O-%TADATADATA MOSES WASL ADMONISHED OF GOD WHEN HE WAS ABOUT TO MAKE THE TABERNACLE: FOR, SEE, SAITHM HE, THAT THOU MAKE ALL THINGS ACCORDING TO THE PATTERN SHEWED TO THEE IN THE  MOUNT. K# 6 BUT NOW HATH HE OBTAINED A MORE EXCELLENT MINISTRY, BY HOW MUCH ALSO HEIH IS THE MEDIATOR OF A BETTER COVENANT, WHICH WAS ESTABLISHED UPON BETTER PROMISES.L# 7 FOR IF THAT FIRST COVENANT HAD BEEN FAULTLESS, THEN SHOULD NO PLACE HAVE BEEN SOUGHT FOR THE SECOND.K# 8 FOR FINDING FAULT WITH THEM, HE SAITH, BEHOLD, THE DAYS COME, SAITH THEML LORD, WHEN I WILL MAKE A NEW COVENANT WITH THE HOUSE OF ISRAEL AND WITH THE HOUSE OF JUDAH:K# 9 NOT ACCORDING TO THE COVENANT THAT I MADE WITH THEIR FATHERS IN THE DAYOL WHEN I TOOK THEM BY THE HAND TO LEAD THEM OUT OF THE LAND OF EGYPT; BECAUSEL THEY CONTINUED NOT IN MY COVENANT, AND I REGARDED THEM NOT, SAITH THE LORD.M# 10 FOR THIS IS THE COVENANT THAT I WILL MAKE WITH THE HOUSE OF ISRAEL AFTEREJ THOSE DAYS, SAITH THE LORD; I WILL PUT MY LAWS INTO THEIR MIND, AND WRITEM THEM IN THEIR HEARTS: AND I WILL BE TO THEM A GOD, AND THEY SHALL BE TO ME AS PEOPLE:H# 11 AND THEY SHALL NOT TEACH EVERY MAN HIS NEIGHBOUR, AND EVERY MAN HISM BROTHER, SAYING, KNOW THE LORD: FOR ALL SHALL KNOW ME, FROM THE LEAST TO THEM GREATEST.H# 12 FOR I WILL BE MERCIFUL TO THEIR UNRIGHTEOUSNESS, AND THEIR SINS AND* THEIR INIQUITIES WILL I REMEMBER NO MORE.K# 13 IN THAT HE SAITH, A NEW COVENANT, HE HATH MADE THE FIRST OLD. NOW THATS7 WHICH DECAYETH AND WAXETH OLD IS READY TO VANISH AWAY.I = CHAPTER 9 M# 1 THEN VERILY THE FIRST COVENANT HAD ALSO ORDINANCES OF DIVINE SERVICE, AND A WORLDLY SANCTUARY. L# 2 FOR THERE WAS A TABERNACLE MADE; THE FIRST, WHEREIN WAS THE CANDLESTICK,A AND THE TABLE, AND THE SHEWBREAD; WHICH IS CALLED THE SANCTUARY.2L# 3 AND AFTER THE SECOND VEIL, THE TABERNACLE WHICH IS CALLED THE HOLIEST OF ALL;EK# 4 WHICH HAD THE GOLDEN CENSER, AND THE ARK OF THE COVENANT OVERLAID ROUNDDK ABOUT WITH GOLD, WHEREIN WAS THE GOLDEN POT THAT HAD MANNA, AND AARONS ROD - THAT BUDDED, AND THE TABLES OF THE COVENANT; K# 5 AND OVER IT THE CHERUBIMS OF GLORY SHADOWING THE MERCYSEAT; OF WHICH WE CANNOT NOW SPEAK PARTICULARLY.DJ# 6 NOW WHEN THESE THINGS WERE THUS ORDAINED, THE PRIESTS WENT ALWAYS INTO8 THE FIRST TABERNACLE, ACCOMPLISHING THE SERVICE OF GOD.G# 7 BUT INTO THE SECOND WENT THE HIGH PRIEST ALONE ONCE EVERY YEAR, NOT G WITHOUT BLOOD, WHICH HE OFFERED FOR HIMSELF, AND FOR THE ERRORS OF THET PEOPLE:L# 8 THE HOLY GHOST THIS SIGNIFYING, THAT THE WAY INTO THE HOLIEST OF ALL WASG NOT YET MADE MANIFEST, WHILE AS THE FIRST TABERNACLE WAS YET STANDING:AL# 9 WHICH WAS A FIGURE FOR THE TIME THEN PRESENT, IN WHICH WERE OFFERED BOTHL GIFTS AND SACRIFICES, THAT COULD NOT MAKE HIM THAT DID THE SERVICE PERFECT,! AS PERTAINING TO THE CONSCIENCE;IJ# 10 WHICH STOOD ONLY IN MEATS AND DRINKS, AND DIVERS WASHINGS, AND CARNAL; ORDINANCES, IMPOSED ON THEM UNTIL THE TIME OF REFORMATION.OF# 11 BUT CHRIST BEING COME AN HIGH PRIEST OF GOOD THINGS TO COME, BY AN GREATER AND MORE PERFECT TABERNACLE, NOT MADE WITH HANDS, THAT IS TO SAY, NOT OF THIS BUILDING;F# 12 NEITHER BY THE BLOOD OF GOATS AND CALVES, BUT BY HIS OWN BLOOD HEL ENTERED IN ONCE INTO THE HOLY PLACE, HAVING OBTAINED ETERNAL REDEMPTION FOR US.G# 13 FOR IF THE BLOOD OF BULLS AND OF GOATS, AND THE ASHES OF AN HEIFERMC SPRINKLING THE UNCLEAN, SANCTIFIETH TO THE PURIFYING OF THE FLESH:DL# 14 HOW MUCH MORE SHALL THE BLOOD OF CHRIST, WHO THROUGH THE ETERNAL SPIRITN OFFERED HIMSELF WITHOUT SPOT TO GOD, PURGE YOUR CONSCIENCE FROM DEAD WORKS TO SERVE THE LIVING GOD?H# 15 AND FOR THIS CAUSE HE IS THE MEDIATOR OF THE NEW TESTAMENT, THAT BYM MEANS OF DEATH, FOR THE REDEMPTION OF THE TRANSGRESSIONS THAT WERE UNDER THEIL FIRST TESTAMENT, THEY WHICH ARE CALLED MIGHT RECEIVE THE PROMISE OF ETERNAL INHERITANCE.OK# 16 FOR WHERE A TESTAMENT IS, THERE MUST ALSO OF NECESSITY BE THE DEATH OFE THE TESTATOR.J# 17 FOR A TESTAMENT IS OF FORCE AFTER MEN ARE DEAD: OTHERWISE IT IS OF NO+ STRENGTH AT ALL WHILE THE TESTATOR LIVETH.CG# 18 WHEREUP00FFF5%T6%! !ON NEITHER THE FIRST TESTAMENT WAS DEDICATED WITHOUT BLOOD. K# 19 FOR WHEN MOSES HAD SPOKEN EVERY PRECEPT TO ALL THE PEOPLE ACCORDING TODK THE LAW, HE TOOK THE BLOOD OF CALVES AND OF GOATS, WITH WATER, AND SCARLETIC WOOL, AND HYSSOP, AND SPRINKLED BOTH THE BOOK, AND ALL THE PEOPLE, L# 20 SAYING, THIS IS THE BLOOD OF THE TESTAMENT WHICH GOD HATH ENJOINED UNTO YOU.AF# 21 MOREOVER HE SPRINKLED WITH BLOOD BOTH THE TABERNACLE, AND ALL THE VESSELS OF THE MINISTRY.WH# 22 AND ALMOST ALL THINGS ARE BY THE LAW PURGED WITH BLOOD; AND WITHOUT# SHEDDING OF BLOOD IS NO REMISSION.WJ# 23 IT WAS THEREFORE NECESSARY THAT THE PATTERNS OF THINGS IN THE HEAVENSN SHOULD BE PURIFIED WITH THESE; BUT THE HEAVENLY THINGS THEMSELVES WITH BETTER SACRIFICES THAN THESE.TJ# 24 FOR CHRIST IS NOT ENTERED INTO THE HOLY PLACES MADE WITH HANDS, WHICHJ ARE THE FIGURES OF THE TRUE; BUT INTO HEAVEN ITSELF, NOW TO APPEAR IN THE PRESENCE OF GOD FOR US:L# 25 NOR YET THAT HE SHOULD OFFER HIMSELF OFTEN, AS THE HIGH PRIEST ENTERETH5 INTO THE HOLY PLACE EVERY YEAR WITH BLOOD OF OTHERS;DL# 26 FOR THEN MUST HE OFTEN HAVE SUFFERED SINCE THE FOUNDATION OF THE WORLD:M BUT NOW ONCE IN THE END OF THE WORLD HATH HE APPEARED TO PUT AWAY SIN BY THEE SACRIFICE OF HIMSELF.D# 27 AND AS IT IS APPOINTED UNTO MEN ONCE TO DIE, BUT AFTER THIS THE JUDGMENT:L# 28 SO CHRIST WAS ONCE OFFERED TO BEAR THE SINS OF MANY; AND UNTO THEM THATI LOOK FOR HIM SHALL HE APPEAR THE SECOND TIME WITHOUT SIN UNTO SALVATION.S = CHAPTER 10 HN# 1 FOR THE LAW HAVING A SHADOW OF GOOD THINGS TO COME, AND NOT THE VERY IMAGEJ OF THE THINGS, CAN NEVER WITH THOSE SACRIFICES WHICH THEY OFFERED YEAR BY4 YEAR CONTINUALLY MAKE THE COMERS THEREUNTO PERFECT.G# 2 FOR THEN WOULD THEY NOT HAVE CEASED TO BE OFFERED? BECAUSE THAT THEOD WORSHIPPERS ONCE PURGED SHOULD HAVE HAD NO MORE CONSCIENCE OF SINS.K# 3 BUT IN THOSE SACRIFICES THERE IS A REMEMBRANCE AGAIN MADE OF SINS EVERY  YEAR.K# 4 FOR IT IS NOT POSSIBLE THAT THE BLOOD OF BULLS AND OF GOATS SHOULD TAKE AWAY SINS.AM# 5 WHEREFORE WHEN HE COMETH INTO THE WORLD, HE SAITH, SACRIFICE AND OFFERINGA5 THOU WOULDEST NOT, BUT A BODY HAST THOU PREPARED ME:YH# 6 IN BURNT OFFERINGS AND SACRIFICES FOR SIN THOU HAST HAD NO PLEASURE.L# 7 THEN SAID I, LO, I COME (IN THE VOLUME OF THE BOOK IT IS WRITTEN OF ME,) TO DO THY WILL, O GOD.EF# 8 ABOVE WHEN HE SAID, SACRIFICE AND OFFERING AND BURNT OFFERINGS ANDN OFFERING FOR SIN THOU WOULDEST NOT, NEITHER HADST PLEASURE THEREIN; WHICH ARE OFFERED BY THE LAW;M# 9 THEN SAID HE, LO, I COME TO DO THY WILL, O GOD. HE TAKETH AWAY THE FIRST,," THAT HE MAY ESTABLISH THE SECOND.L# 10 BY THE WHICH WILL WE ARE SANCTIFIED THROUGH THE OFFERING OF THE BODY OF JESUS CHRIST ONCE FOR ALL.OL# 11 AND EVERY PRIEST STANDETH DAILY MINISTERING AND OFFERING OFTENTIMES THE1 SAME SACRIFICES, WHICH CAN NEVER TAKE AWAY SINS:NL# 12 BUT THIS MAN, AFTER HE HAD OFFERED ONE SACRIFICE FOR SINS FOR EVER, SAT DOWN ON THE RIGHT HAND OF GOD;EF# 13 FROM HENCEFORTH EXPECTING TILL HIS ENEMIES BE MADE HIS FOOTSTOOL.M# 14 FOR BY ONE OFFERING HE HATH PERFECTED FOR EVER THEM THAT ARE SANCTIFIED.TJ# 15 WHEREOF THE HOLY GHOST ALSO IS A WITNESS TO US: FOR AFTER THAT HE HAD SAID BEFORE,JL# 16 THIS IS THE COVENANT THAT I WILL MAKE WITH THEM AFTER THOSE DAYS, SAITHJ THE LORD, I WILL PUT MY LAWS INTO THEIR HEARTS, AND IN THEIR MINDS WILL I WRITE THEM;;# 17 AND THEIR SINS AND INIQUITIES WILL I REMEMBER NO MORE.,H# 18 NOW WHERE REMISSION OF THESE IS, THERE IS NO MORE OFFERING FOR SIN.J# 19 HAVING THEREFORE, BRETHREN, BOLDNESS TO ENTER INTO THE HOLIEST BY THE BLOOD OF JESUS,K# 20 BY A NEW AND LIVING WAY, WHICH HE HATH CONSECRATED FOR US, THROUGH THEF! VEIL, THAT IS TO SAY, HIS FLESH;J5# 21 AND HAVING AN HIGH PRIEST OVER THE HOUSE OF GOD;AJ# 22 LET US DRAW NEAR WITH A TRUE HEART IN FULL ASSURANCE OF FAITH, HAVINGN OUR HEARTS SPRINKLED FROM AN EVIL CONSCIENCE, AND OUR BODIES WASHED WITH PURE WATER.NK# 23 LET US HOLD FAST THE PROFESSION OF OUR FAITH WITHOUT WAVERING; (FOR HE  IS FAITHFUL THAT PROMISED;)L# 24 AND L00FmF<%X>%+%O-%TADATADATAET US CONSIDER ONE ANOTHER TO PROVOKE UNTO LOVE AND TO GOOD WORKS:I# 25 NOT FORSAKING THE ASSEMBLING OF OURSELVES TOGETHER, AS THE MANNER OF,L SOME IS; BUT EXHORTING ONE ANOTHER: AND SO MUCH THE MORE, AS YE SEE THE DAY APPROACHING.TL# 26 FOR IF WE SIN WILFULLY AFTER THAT WE HAVE RECEIVED THE KNOWLEDGE OF THE3 TRUTH, THERE REMAINETH NO MORE SACRIFICE FOR SINS,AI# 27 BUT A CERTAIN FEARFUL LOOKING FOR OF JUDGMENT AND FIERY INDIGNATION, $ WHICH SHALL DEVOUR THE ADVERSARIES.E# 28 HE THAT DESPISED MOSES LAW DIED WITHOUT MERCY UNDER TWO OR THREEO WITNESSES:GJ# 29 OF HOW MUCH SORER PUNISHMENT, SUPPOSE YE, SHALL HE BE THOUGHT WORTHY,N WHO HATH TRODDEN UNDER FOOT THE SON OF GOD, AND HATH COUNTED THE BLOOD OF THEN COVENANT, WHEREWITH HE WAS SANCTIFIED, AN UNHOLY THING, AND HATH DONE DESPITE UNTO THE SPIRIT OF GRACE?H# 30 FOR WE KNOW HIM THAT HATH SAID, VENGEANCE BELONGETH UNTO ME, I WILLH RECOMPENSE, SAITH THE LORD. AND AGAIN, THE LORD SHALL JUDGE HIS PEOPLE.D# 31 IT IS A FEARFUL THING TO FALL INTO THE HANDS OF THE LIVING GOD.E# 32 BUT CALL TO REMEMBRANCE THE FORMER DAYS, IN WHICH, AFTER YE WEREO6 ILLUMINATED, YE ENDURED A GREAT FIGHT OF AFFLICTIONS;E# 33 PARTLY, WHILST YE WERE MADE A GAZINGSTOCK BOTH BY REPROACHES ANDWJ AFFLICTIONS; AND PARTLY, WHILST YE BECAME COMPANIONS OF THEM THAT WERE SO USED.L# 34 FOR YE HAD COMPASSION OF ME IN MY BONDS, AND TOOK JOYFULLY THE SPOILINGL OF YOUR GOODS, KNOWING IN YOURSELVES THAT YE HAVE IN HEAVEN A BETTER AND AN ENDURING SUBSTANCE.L# 35 CAST NOT AWAY THEREFORE YOUR CONFIDENCE, WHICH HATH GREAT RECOMPENCE OF REWARD.L# 36 FOR YE HAVE NEED OF PATIENCE, THAT, AFTER YE HAVE DONE THE WILL OF GOD, YE MIGHT RECEIVE THE PROMISE.K# 37 FOR YET A LITTLE WHILE, AND HE THAT SHALL COME WILL COME, AND WILL NOTY TARRY.YH# 38 NOW THE JUST SHALL LIVE BY FAITH: BUT IF ANY MAN DRAW BACK, MY SOUL SHALL HAVE NO PLEASURE IN HIM.YJ# 39 BUT WE ARE NOT OF THEM WHO DRAW BACK UNTO PERDITION; BUT OF THEM THAT# BELIEVE TO THE SAVING OF THE SOUL.A = CHAPTER 11 N# 1 NOW FAITH IS THE SUBSTANCE OF THINGS HOPED FOR, THE EVIDENCE OF THINGS NOT SEEN.0# 2 FOR BY IT THE ELDERS OBTAINED A GOOD REPORT.J# 3 THROUGH FAITH WE UNDERSTAND THAT THE WORLDS WERE FRAMED BY THE WORD OFL GOD, SO THAT THINGS WHICH ARE SEEN WERE NOT MADE OF THINGS WHICH DO APPEAR.K# 4 BY FAITH ABEL OFFERED UNTO GOD A MORE EXCELLENT SACRIFICE THAN CAIN, BYSN WHICH HE OBTAINED WITNESS THAT HE WAS RIGHTEOUS, GOD TESTIFYING OF HIS GIFTS:& AND BY IT HE BEING DEAD YET SPEAKETH.K# 5 BY FAITH ENOCH WAS TRANSLATED THAT HE SHOULD NOT SEE DEATH; AND WAS NOTHN FOUND, BECAUSE GOD HAD TRANSLATED HIM: FOR BEFORE HIS TRANSLATION HE HAD THIS TESTIMONY, THAT HE PLEASED GOD.K# 6 BUT WITHOUT FAITH IT IS IMPOSSIBLE TO PLEASE HIM: FOR HE THAT COMETH TOSD GOD MUST BELIEVE THAT HE IS, AND THAT HE IS A REWARDER OF THEM THAT DILIGENTLY SEEK HIM.LL# 7 BY FAITH NOAH, BEING WARNED OF GOD OF THINGS NOT SEEN AS YET, MOVED WITHL FEAR, PREPARED AN ARK TO THE SAVING OF HIS HOUSE; BY THE WHICH HE CONDEMNEDC THE WORLD, AND BECAME HEIR OF THE RIGHTEOUSNESS WHICH IS BY FAITH.HH# 8 BY FAITH ABRAHAM, WHEN HE WAS CALLED TO GO OUT INTO A PLACE WHICH HEN SHOULD AFTER RECEIVE FOR AN INHERITANCE, OBEYED; AND HE WENT OUT, NOT KNOWING WHITHER HE WENT. J# 9 BY FAITH HE SOJOURNED IN THE LAND OF PROMISE, AS IN A STRANGE COUNTRY,M DWELLING IN TABERNACLES WITH ISAAC AND JACOB, THE HEIRS WITH HIM OF THE SAME PROMISE:SM# 10 FOR HE LOOKED FOR A CITY WHICH HATH FOUNDATIONS, WHOSE BUILDER AND MAKERH IS GOD.L# 11 THROUGH FAITH ALSO SARA HERSELF RECEIVED STRENGTH TO CONCEIVE SEED, ANDG WAS DELIVERED OF A CHILD WHEN SHE WAS PAST AGE, BECAUSE SHE JUDGED HIM  FAITHFUL WHO HAD PROMISED. L# 12 THEREFORE SPRANG THERE EVEN OF ONE, AND HIM AS GOOD AS DEAD, SO MANY ASM THE STARS OF THE SKY IN MULTITUDE, AND AS THE SAND WHICH IS BY THE SEA SHOREN INNUMERABLE.SJ# 13 THESE ALL DIED IN FAITH, NOT HAVING RECEIVED THE PROMISES, BUT HAVINGG SEEN THEM AFAR OFF, AND WERE PERSUADED OF THEM, AND EMBRACED THEM, ANDI> CONFESSED THAT THEY WERE STRANGERS AND 00FFF5%T6%! !PILGRIMS ON THE EARTH.L# 14 FOR THEY THAT SAY SUCH THINGS DECLARE PLAINLY THAT THEY SEEK A COUNTRY.I# 15 AND TRULY, IF THEY HAD BEEN MINDFUL OF THAT COUNTRY FROM WHENCE THEY < CAME OUT, THEY MIGHT HAVE HAD OPPORTUNITY TO HAVE RETURNED.J# 16 BUT NOW THEY DESIRE A BETTER COUNTRY, THAT IS, AN HEAVENLY: WHEREFOREK GOD IS NOT ASHAMED TO BE CALLED THEIR GOD: FOR HE HATH PREPARED FOR THEM AA CITY.K# 17 BY FAITH ABRAHAM, WHEN HE WAS TRIED, OFFERED UP ISAAC: AND HE THAT HADE8 RECEIVED THE PROMISES OFFERED UP HIS ONLY BEGOTTEN SON,A# 18 OF WHOM IT WAS SAID, THAT IN ISAAC SHALL THY SEED BE CALLED: K# 19 ACCOUNTING THAT GOD WAS ABLE TO RAISE HIM UP, EVEN FROM THE DEAD; FROME) WHENCE ALSO HE RECEIVED HIM IN A FIGURE.RE# 20 BY FAITH ISAAC BLESSED JACOB AND ESAU CONCERNING THINGS TO COME.AJ# 21 BY FAITH JACOB, WHEN HE WAS A DYING, BLESSED BOTH THE SONS OF JOSEPH;3 AND WORSHIPPED, LEANING UPON THE TOP OF HIS STAFF. H# 22 BY FAITH JOSEPH, WHEN HE DIED, MADE MENTION OF THE DEPARTING OF THE? CHILDREN OF ISRAEL; AND GAVE COMMANDMENT CONCERNING HIS BONES.AK# 23 BY FAITH MOSES, WHEN HE WAS BORN, WAS HID THREE MONTHS OF HIS PARENTS,SN BECAUSE THEY SAW HE WAS A PROPER CHILD; AND THEY WERE NOT AFRAID OF THE KINGS COMMANDMENT. L# 24 BY FAITH MOSES, WHEN HE WAS COME TO YEARS, REFUSED TO BE CALLED THE SON OF PHARAOHS DAUGHTER;I# 25 CHOOSING RATHER TO SUFFER AFFLICTION WITH THE PEOPLE OF GOD, THAN TOH) ENJOY THE PLEASURES OF SIN FOR A SEASON; J# 26 ESTEEMING THE REPROACH OF CHRIST GREATER RICHES THAN THE TREASURES IN= EGYPT: FOR HE HAD RESPECT UNTO THE RECOMPENCE OF THE REWARD.WI# 27 BY FAITH HE FORSOOK EGYPT, NOT FEARING THE WRATH OF THE KING: FOR HEE) ENDURED, AS SEEING HIM WHO IS INVISIBLE.IM# 28 THROUGH FAITH HE KEPT THE PASSOVER, AND THE SPRINKLING OF BLOOD, LEST HE 0 THAT DESTROYED THE FIRSTBORN SHOULD TOUCH THEM.G# 29 BY FAITH THEY PASSED THROUGH THE RED SEA AS BY DRY LAND: WHICH THEN' EGYPTIANS ASSAYING TO DO WERE DROWNED.EM# 30 BY FAITH THE WALLS OF JERICHO FELL DOWN, AFTER THEY WERE COMPASSED ABOUT SEVEN DAYS.M# 31 BY FAITH THE HARLOT RAHAB PERISHED NOT WITH THEM THAT BELIEVED NOT, WHENE' SHE HAD RECEIVED THE SPIES WITH PEACE.FM# 32 AND WHAT SHALL I MORE SAY? FOR THE TIME WOULD FAIL ME TO TELL OF GEDEON,TM AND OF BARAK, AND OF SAMSON, AND OF JEPHTHAE; OF DAVID ALSO, AND SAMUEL, ANDR OF THE PROPHETS:.H# 33 WHO THROUGH FAITH SUBDUED KINGDOMS, WROUGHT RIGHTEOUSNESS, OBTAINED' PROMISES, STOPPED THE MOUTHS OF LIONS.EI# 34 QUENCHED THE VIOLENCE OF FIRE, ESCAPED THE EDGE OF THE SWORD, OUT OFBH WEAKNESS WERE MADE STRONG, WAXED VALIANT IN FIGHT, TURNED TO FLIGHT THE ARMIES OF THE ALIENS.D# 35 WOMEN RECEIVED THEIR DEAD RAISED TO LIFE AGAIN: AND OTHERS WEREE TORTURED, NOT ACCEPTING DELIVERANCE; THAT THEY MIGHT OBTAIN A BETTERD RESURRECTION:L# 36 AND OTHERS HAD TRIAL OF CRUEL MOCKINGS AND SCOURGINGS, YEA, MOREOVER OF BONDS AND IMPRISONMENT:L# 37 THEY WERE STONED, THEY WERE SAWN ASUNDER, WERE TEMPTED, WERE SLAIN WITHM THE SWORD: THEY WANDERED ABOUT IN SHEEPSKINS AND GOATSKINS; BEING DESTITUTE,A AFFLICTED, TORMENTED;I# 38 (OF WHOM THE WORLD WAS NOT WORTHY:) THEY WANDERED IN DESERTS, AND INW/ MOUNTAINS, AND IN DENS AND CAVES OF THE EARTH.DM# 39 AND THESE ALL, HAVING OBTAINED A GOOD REPORT THROUGH FAITH, RECEIVED NOTT THE PROMISE:TG# 40 GOD HAVING PROVIDED SOME BETTER THING FOR US, THAT THEY WITHOUT USR SHOULD NOT BE MADE PERFECT. = CHAPTER 12 I# 1 WHEREFORE SEEING WE ALSO ARE COMPASSED ABOUT WITH SO GREAT A CLOUD OFOK WITNESSES, LET US LAY ASIDE EVERY WEIGHT, AND THE SIN WHICH DOTH SO EASILYIG BESET US, AND LET US RUN WITH PATIENCE THE RACE THAT IS SET BEFORE US,IL# 2 LOOKING UNTO JESUS THE AUTHOR AND FINISHER OF OUR FAITH; WHO FOR THE JOYK THAT WAS SET BEFORE HIM ENDURED THE CROSS, DESPISING THE SHAME, AND IS SETP- DOWN AT THE RIGHT HAND OF THE THRONE OF GOD.TG# 3 FOR CONSIDER HIM THAT ENDURED SUCH CONTRADICTION OF SINNERS AGAINSTE5 HIMSELF, LEST YE BE WEARIED AND FAINT IN YOUR MINDS.T># 4 YE HAVE NOT YET RESISTED UNTO BLOOD, STRIVING AGAINST SIN.I# 5 AND YE HAVE FORGOTTEN 00FmF<%X>%+%O-%TADATADATATHE EXHORTATION WHICH SPEAKETH UNTO YOU AS UNTOTN CHILDREN, MY SON, DESPISE NOT THOU THE CHASTENING OF THE LORD, NOR FAINT WHEN THOU ART REBUKED OF HIM:RK# 6 FOR WHOM THE LORD LOVETH HE CHASTENETH, AND SCOURGETH EVERY SON WHOM HED RECEIVETH.WL# 7 IF YE ENDURE CHASTENING, GOD DEALETH WITH YOU AS WITH SONS; FOR WHAT SON& IS HE WHOM THE FATHER CHASTENETH NOT?M# 8 BUT IF YE BE WITHOUT CHASTISEMENT, WHEREOF ALL ARE PARTAKERS, THEN ARE YEI BASTARDS, AND NOT SONS.K# 9 FURTHERMORE WE HAVE HAD FATHERS OF OUR FLESH WHICH CORRECTED US, AND WEOH GAVE THEM REVERENCE: SHALL WE NOT MUCH RATHER BE IN SUBJECTION UNTO THE FATHER OF SPIRITS, AND LIVE?UJ# 10 FOR THEY VERILY FOR A FEW DAYS CHASTENED US AFTER THEIR OWN PLEASURE;C BUT HE FOR OUR PROFIT, THAT WE MIGHT BE PARTAKERS OF HIS HOLINESS.HJ# 11 NOW NO CHASTENING FOR THE PRESENT SEEMETH TO BE JOYOUS, BUT GRIEVOUS:M NEVERTHELESS AFTERWARD IT YIELDETH THE PEACEABLE FRUIT OF RIGHTEOUSNESS UNTOI" THEM WHICH ARE EXERCISED THEREBY.G# 12 WHEREFORE LIFT UP THE HANDS WHICH HANG DOWN, AND THE FEEBLE KNEES;VM# 13 AND MAKE STRAIGHT PATHS FOR YOUR FEET, LEST THAT WHICH IS LAME BE TURNEDF- OUT OF THE WAY; BUT LET IT RATHER BE HEALED.AL# 14 FOLLOW PEACE WITH ALL MEN, AND HOLINESS, WITHOUT WHICH NO MAN SHALL SEE THE LORD:L# 15 LOOKING DILIGENTLY LEST ANY MAN FAIL OF THE GRACE OF GOD; LEST ANY ROOTE OF BITTERNESS SPRINGING UP TROUBLE YOU, AND THEREBY MANY BE DEFILED;CJ# 16 LEST THERE BE ANY FORNICATOR, OR PROFANE PERSON, AS ESAU, WHO FOR ONE$ MORSEL OF MEAT SOLD HIS BIRTHRIGHT.E# 17 FOR YE KNOW HOW THAT AFTERWARD, WHEN HE WOULD HAVE INHERITED THEEJ BLESSING, HE WAS REJECTED: FOR HE FOUND NO PLACE OF REPENTANCE, THOUGH HE SOUGHT IT CAREFULLY WITH TEARS.G# 18 FOR YE ARE NOT COME UNTO THE MOUNT THAT MIGHT BE TOUCHED, AND THATLA BURNED WITH FIRE, NOR UNTO BLACKNESS, AND DARKNESS, AND TEMPEST,OI# 19 AND THE SOUND OF A TRUMPET, AND THE VOICE OF WORDS; WHICH VOICE THEYJ THAT HEARD INTREATED THAT THE WORD SHOULD NOT BE SPOKEN TO THEM ANY MORE:M# 20 (FOR THEY COULD NOT ENDURE THAT WHICH WAS COMMANDED, AND IF SO MUCH AS A M BEAST TOUCH THE MOUNTAIN, IT SHALL BE STONED, OR THRUST THROUGH WITH A DART: K# 21 AND SO TERRIBLE WAS THE SIGHT, THAT MOSES SAID, I EXCEEDINGLY FEAR ANDO QUAKE:)J# 22 BUT YE ARE COME UNTO MOUNT SION, AND UNTO THE CITY OF THE LIVING GOD,A THE HEAVENLY JERUSALEM, AND TO AN INNUMERABLE COMPANY OF ANGELS,EL# 23 TO THE GENERAL ASSEMBLY AND CHURCH OF THE FIRST BORN, WHICH ARE WRITTENL IN HEAVEN, AND TO GOD THE JUDGE OF ALL, AND TO THE SPIRITS OF JUST MEN MADE PERFECT,SG# 24 AND TO JESUS THE MEDIATOR OF THE NEW COVENANT, AND TO THE BLOOD OFS; SPRINKLING, THAT SPEAKETH BETTER THINGS THAT THAT OF ABEL.WJ# 25 SEE THAT YE REFUSE NOT HIM THAT SPEAKETH. FOR IF THEY ESCAPED NOT WHOK REFUSED HIM THAT SPAKE ON EARTH, MUCH MORE SHALL NOT WE ESCAPE, IF WE TURNL) AWAY FROM HIM THAT SPEAKETH FROM HEAVEN:OL# 26 WHOSE VOICE THEN SHOOK THE EARTH: BUT NOW HE HATH PROMISED, SAYING, YET7 ONCE MORE I SHAKE NOT THE EARTH ONLY, BUT ALSO HEAVEN.TJ# 27 AND THIS WORD, YET ONCE MORE, SIGNIFIETH THE REMOVING OF THOSE THINGSL THAT ARE SHAKEN, AS OF THINGS THAT ARE MADE, THAT THOSE THINGS WHICH CANNOT BE SHAKEN MAY REMAIN.H# 28 WHEREFORE WE RECEIVING A KINGDOM WHICH CANNOT BE MOVED, LET US HAVEJ GRACE, WHEREBY WE MAY SERVE GOD ACCEPTABLY WITH REVERENCE AND GODLY FEAR:%# 29 FOR OUR GOD IS A CONSUMING FIRE. = CHAPTER 13 W # 1 LET BROTHERLY LOVE CONTINUE.B# 2 BE NOT FORGETFUL TO ENTERTAIN STRANGERS: FOR THEREBY SOME HAVE ENTERTAINED ANGELS UNAWARES.7G# 3 REMEMBER THEM THAT ARE IN BONDS, AS BOUND WITH THEM; AND THEM WHICHT8 SUFFER ADVERSITY, AS BEING YOURSELVES ALSO IN THE BODY.J# 4 MARRIAGE IS HONOURABLE IN ALL, AND THE BED UNDEFILED: BUT WHOREMONGERS AND ADULTERERS GOD WILL JUDGE. K# 5 LET YOUR CONVERSATION BE WITHOUT COVETOUSNESS; AND BE CONTENT WITH SUCHAJ THINGS AS YE HAVE: FOR HE HATH SAID, I WILL NEVER LEAVE THEE, NOR FORSAKE THEE.I# 6 SO THAT WE MAY BOLDLY SAY, THE LORD IS MY HELPER, AND I WILL NOT FEARE WHAT MAN SHALL DO UNTO ME.SL# 7 REMEMB00GGF5%T6%! !ER THEM WHICH HAVE THE RULE OVER YOU, WHO HAVE SPOKEN UNTO YOU THEL WORD OF GOD: WHOSE FAITH FOLLOW, CONSIDERING THE END OF THEIR CONVERSATION.># 8 JESUS CHRIST THE SAME YESTERDAY, AND TO DAY, AND FOR EVER.L# 9 BE NOT CARRIED ABOUT WITH DIVERS AND STRANGE DOCTRINES. FOR IT IS A GOODK THING THAT THE HEART BE ESTABLISHED WITH GRACE; NOT WITH MEATS, WHICH HAVEL3 NOT PROFITED THEM THAT HAVE BEEN OCCUPIED THEREIN.LH# 10 WE HAVE AN ALTAR, WHEREOF THEY HAVE NO RIGHT TO EAT WHICH SERVE THE TABERNACLE.D# 11 FOR THE BODIES OF THOSE BEASTS, WHOSE BLOOD IS BROUGHT INTO THEC SANCTUARY BY THE HIGH PRIEST FOR SIN, ARE BURNED WITHOUT THE CAMP.NI# 12 WHEREFORE JESUS ALSO, THAT HE MIGHT SANCTIFY THE PEOPLE WITH HIS OWN" BLOOD, SUFFERED WITHOUT THE GATE.E# 13 LET US GO FORTH THEREFORE UNTO HIM WITHOUT THE CAMP, BEARING HISB REPROACH.B# 14 FOR HERE HAVE WE NO CONTINUING CITY, BUT WE SEEK ONE TO COME.A# 15 BY HIM THEREFORE LET US OFFER THE SACRIFICE OF PRAISE TO GODIG CONTINUALLY, THAT IS, THE FRUIT OF OUR LIPS GIVING THANKS TO HIS NAME.AK# 16 BUT TO DO GOOD AND TO COMMUNICATE FORGET NOT: FOR WITH SUCH SACRIFICESA GOD IS WELL PLEASED.AK# 17 OBEY THEM THAT HAVE THE RULE OVER YOU, AND SUBMIT YOURSELVES: FOR THEYWJ WATCH FOR YOUR SOULS, AS THEY THAT MUST GIVE ACCOUNT, THAT THEY MAY DO IT@ WITH JOY, AND NOT WITH GRIEF: FOR THAT IS UNPROFITABLE FOR YOU.G# 18 PRAY FOR US: FOR WE TRUST WE HAVE A GOOD CONSCIENCE, IN ALL THINGSE WILLING TO LIVE HONESTLY.K# 19 BUT I BESEECH YOU THE RATHER TO DO THIS, THAT I MAY BE RESTORED TO YOU THE SOONER.K# 20 NOW THE GOD OF PEACE, THAT BROUGHT AGAIN FROM THE DEAD OUR LORD JESUS,GG THAT GREAT SHEPHERD OF THE SHEEP, THROUGH THE BLOOD OF THE EVERLASTINGM COVENANT,L# 21 MAKE YOU PERFECT IN EVERY GOOD WORK TO DO HIS WILL, WORKING IN YOU THATK WHICH IS WELLPLEASING IN HIS SIGHT, THROUGH JESUS CHRIST; TO WHOM BE GLORY FOR EVER AND EVER. AMEN.UL# 22 AND I BESEECH YOU, BRETHREN, SUFFER THE WORD OF EXHORTATION: FOR I HAVE( WRITTEN A LETTER UNTO YOU IN FEW WORDS.I# 23 KNOW YE THAT OUR BROTHER TIMOTHY IS SET AT LIBERTY; WITH WHOM, IF HEA COME SHORTLY, I WILL SEE YOU.M# 24 SALUTE ALL THEM THAT HAVE THE RULE OVER YOU, AND ALL THE SAINTS. THEY OFR ITALY SALUTE YOU.!# 25 GRACE BE WITH YOU ALL. AMEN.OD WORK TO DO HIS WILL, WORKING IN YOU THATK WHICH IS WELLPLEASING IN HIS SIGHT, THROUGH JESUS CHRIST; TO WHOM BE GLORY FOR EVER AND EVER. AMEN.UL# 22 AND I BESEECH YOU, BRETHREN, SUFFER THE WORD OF EXHORTATION: FOR I HAVE( WRITTEN A LETTER UNTO YOU IN FEW WORDS.I# 23 KNOW * BOOK59 JAMES = CHAPTER 1 N# 1 JAMES, A SERVANT OF GOD AND OF THE LORD JESUS CHRIST, TO THE TWELVE TRIBES& WHICH ARE SCATTERED ABROAD, GREETING.G# 2 MY BRETHREN, COUNT IT ALL JOY WHEN YE FALL INTO DIVERS TEMPTATIONS;LA# 3 KNOWING THIS, THAT THE TRYING OF YOUR FAITH WORKETH PATIENCE.LF# 4 BUT LET PATIENCE HAVE HER PERFECT WORK, THAT YE MAY BE PERFECT AND ENTIRE, WANTING NOTHING.II# 5 IF ANY OF YOU LACK WISDOM, LET HIM ASK OF GOD, THAT GIVETH TO ALL MENN: LIBERALLY, AND UPBRAIDETH NOT; AND IT SHALL BE GIVEN HIM.L# 6 BUT LET HIM ASK IN FAITH, NOTHING WAVERING. FOR HE THAT WAVERETH IS LIKE3 A WAVE OF THE SEA DRIVEN WITH THE WIND AND TOSSED.NK# 7 FOR LET NOT THAT MAN THINK THAT HE SHALL RECEIVE ANY THING OF THE LORD.4# 8 A DOUBLE MINDED MAN IS UNSTABLE IN ALL HIS WAYS.@# 9 LET THE BROTHER OF LOW DEGREE REJOICE IN THAT HE IS EXALTED:M# 10 BUT THE RICH, IN THAT HE IS MADE LOW: BECAUSE AS THE FLOWER OF THE GRASSL HE SHALL PASS AWAY.M# 11 FOR THE SUN IS NO SOONER RISEN WITH A BURNING HEAT, BUT IT WITHERETH THE.J GRASS, AND THE FLOWER THEREOF FALLETH, AND THE GRACE OF THE FASHION OF IT= PERISHETH: SO ALSO SHALL THE RICH MAN FADE AWAY IN HIS WAYS.OJ# 12 BLESSED IS THE MAN THAT ENDURETH TEMPTATION: FOR WHEN HE IS TRIED, HEK SHALL RECEIVE THE CROWN OF LIFE, WHICH THE LORD HATH PROMISED TO THEM THATD LOVE HIM.K# 13 LET NO MAN SAY WHEN HE IS TEMPTED, I AM TEMPTED OF GOD: FOR GOD CANNOTA3 BE TEMPTED WITH EVIL, NEITHER TEMPTETH HE ANY MAN:1I# 14 BUT EVERY MAN IS TEMPTED, WHEN HE IS DRAWN AWAY OF 00 GmF<%X>%+%O-%TADATADATAHIS OWN LUST, AND ENTICED. K# 15 THEN WHEN LUST HATH CONCEIVED, IT BRINGETH FORTH SIN: AND SIN, WHEN ITO# IS FINISHED, BRINGETH FORTH DEATH. %# 16 DO NOT ERR, MY BELOVED BRETHREN.TJ# 17 EVERY GOOD GIFT AND EVERY PERFECT GIFT IS FROM ABOVE, AND COMETH DOWNK FROM THE FATHER OF LIGHTS, WITH WHOM IS NO VARIABLENESS, NEITHER SHADOW OF TURNING. L# 18 OF HIS OWN WILL BEGAT HE US WITH THE WORD OF TRUTH, THAT WE SHOULD BE A& KIND OF FIRSTFRUITS OF HIS CREATURES.L# 19 WHEREFORE, MY BELOVED BRETHREN, LET EVERY MAN BE SWIFT TO HEAR, SLOW TO SPEAK, SLOW TO WRATH:?# 20 FOR THE WRATH OF MAN WORKETH NOT THE RIGHTEOUSNESS OF GOD.RK# 21 WHEREFORE LAY APART ALL FILTHINESS AND SUPERFLUITY OF NAUGHTINESS, AND L RECEIVE WITH MEEKNESS THE ENGRAFTED WORD, WHICH IS ABLE TO SAVE YOUR SOULS.J# 22 BUT BE YE DOERS OF THE WORD, AND NOT HEARERS ONLY, DECEIVING YOUR OWN SELVES.J# 23 FOR IF ANY BE A HEARER OF THE WORD, AND NOT A DOER, HE IS LIKE UNTO A+ MAN BEHOLDING HIS NATURAL FACE IN A GLASS:YL# 24 FOR HE BEHOLDETH HIMSELF, AND GOETH HIS WAY, AND STRAIGHTWAY FORGETTETH WHAT MANNER OF MAN HE WAS.AF# 25 BUT WHOSO LOOKETH INTO THE PERFECT LAW OF LIBERTY, AND CONTINUETHK THEREIN, HE BEING NOT A FORGETFUL HEARER, BUT A DOER OF THE WORK, THIS MANG SHALL BE BLESSED IN HIS DEED.L# 26 IF ANY MAN AMONG YOU SEEM TO BE RELIGIOUS, AND BRIDLETH NOT HIS TONGUE,9 BUT DECEIVETH HIS OWN HEART, THIS MANS RELIGION IS VAIN.WL# 27 PURE RELIGION AND UNDEFILED BEFORE GOD AND THE FATHER IS THIS, TO VISITM THE FATHERLESS AND WIDOWS IN THEIR AFFLICTION, AND TO KEEP HIMSELF UNSPOTTEDT FROM THE WORLD. = CHAPTER 2 I# 1 MY BRETHREN, HAVE NOT THE FAITH OF OUR LORD JESUS CHRIST, THE LORD OF GLORY, WITH RESPECT OF PERSONS.J# 2 FOR IF THERE COME UNTO YOUR ASSEMBLY A MAN WITH A GOLD RING, IN GOODLY< APPAREL, AND THERE COME IN ALSO A POOR MAN IN VILE RAIMENT;J# 3 AND YE HAVE RESPECT TO HIM THAT WEARETH THE GAY CLOTHING, AND SAY UNTON HIM, SIT THOU HERE IN A GOOD PLACE; AND SAY TO THE POOR, STAND THOU THERE, OR SIT HERE UNDER MY FOOTSTOOL:IH# 4 ARE YE NOT THEN PARTIAL IN YOURSELVES, AND ARE BECOME JUDGES OF EVIL THOUGHTS?L# 5 HEARKEN, MY BELOVED BRETHREN, HATH NOT GOD CHOSEN THE POOR OF THIS WORLDL RICH IN FAITH, AND HEIRS OF THE KINGDOM WHICH HE HATH PROMISED TO THEM THAT LOVE HIM?L# 6 BUT YE HAVE DESPISED THE POOR. DO NOT RICH MEN OPPRESS YOU, AND DRAW YOU BEFORE THE JUDGMENT SEATS? F# 7 DO NOT THEY BLASPHEME THAT WORTHY NAME BY THE WHICH YE ARE CALLED?J# 8 IF YE FULFIL THE ROYAL LAW ACCORDING TO THE SCRIPTURE, THOU SHALT LOVE& THY NEIGHBOUR AS THYSELF, YE DO WELL:J# 9 BUT IF YE HAVE RESPECT TO PERSONS, YE COMMIT SIN, AND ARE CONVINCED OF THE LAW AS TRANSGRESSORS.L# 10 FOR WHOSOEVER SHALL KEEP THE WHOLE LAW, AND YET OFFEND IN ONE POINT, HE IS GUILTY OF ALL.M# 11 FOR HE THAT SAID, DO NOT COMMIT ADULTERY, SAID ALSO, DO NOT KILL. NOW IF M THOU COMMIT NO ADULTERY, YET IF THOU KILL, THOU ART BECOME A TRANSGRESSOR OFH THE LAW.HG# 12 SO SPEAK YE, AND SO DO, AS THEY THAT SHALL BE JUDGED BY THE LAW OFC LIBERTY.OM# 13 FOR HE SHALL HAVE JUDGMENT WITHOUT MERCY, THAT HATH SHEWED NO MERCY; ANDT" MERCY REJOICETH AGAINST JUDGMENT.J# 14 WHAT DOTH IT PROFIT, MY BRETHREN, THOUGH A MAN SAY HE HATH FAITH, AND$ HAVE NOT WORKS? CAN FAITH SAVE HIM?B# 15 IF A BROTHER OR SISTER BE NAKED, AND DESTITUTE OF DAILY FOOD,L# 16 AND ONE OF YOU SAY UNTO THEM, DEPART IN PEACE, BE YE WARMED AND FILLED;M NOTWITHSTANDING YE GIVE THEM NOT THOSE THINGS WHICH ARE NEEDFUL TO THE BODY;, WHAT DOTH IT PROFIT?J?# 17 EVEN SO FAITH, IF IT HATH NOT WORKS, IS DEAD, BEING ALONE. M# 18 YEA, A MAN MAY SAY, THOU HAST FAITH, AND I HAVE WORKS: SHEW ME THY FAITHN> WITHOUT THY WORKS, AND I WILL SHEW THEE MY FAITH BY MY WORKS.K# 19 THOU BELIEVEST THAT THERE IS ONE GOD; THOU DOEST WELL: THE DEVILS ALSOS BELIEVE, AND TREMBLE.F# 20 BUT WILT THOU KNOW, O VAIN MAN, THAT FAITH WITHOUT WORKS IS DEAD?M# 21 WAS NOT ABRAHAM OUR FATHER JUSTIFIED BY WORKS, WHEN HE HAD OFFERED ISAACA HIS SON UPON THE ALTAR?M# 22 SEEST THOU HOW FAITH WROUGHT WITH HIS WORKS, AND BY W00GGF5%T6%! !ORKS WAS FAITH MADEG PERFECT? K# 23 AND THE SCRIPTURE WAS FULFILLED WHICH SAITH, ABRAHAM BELIEVED GOD, ANDK IT WAS IMPUTED UNTO HIM FOR RIGHTEOUSNESS: AND HE WAS CALLED THE FRIEND OFI GOD.HM# 24 YE SEE THEN HOW THAT BY WORKS A MAN IS JUSTIFIED, AND NOT BY FAITH ONLY.L# 25 LIKEWISE ALSO WAS NOT RAHAB THE HARLOT JUSTIFIED BY WORKS, WHEN SHE HAD< RECEIVED THE MESSENGERS, AND HAD SENT THEM OUT ANOTHER WAY?J# 26 FOR AS THE BODY WITHOUT THE SPIRIT IS DEAD, SO FAITH WITHOUT WORKS IS DEAD ALSO.N = CHAPTER 3 G# 1 MY BRETHREN, BE NOT MANY MASTERS, KNOWING THAT WE SHALL RECEIVE THEH GREATER CONDEMNATION.M# 2 FOR IN MANY THINGS WE OFFEND ALL. IF ANY MAN OFFEND NOT IN WORD, THE SAMEO: IS A PERFECT MAN, AND ABLE ALSO TO BRIDLE THE WHOLE BODY.K# 3 BEHOLD, WE PUT BITS IN THE HORSES MOUTHS, THAT THEY MAY OBEY US; AND WEU TURN ABOUT THEIR WHOLE BODY.K# 4 BEHOLD ALSO THE SHIPS, WHICH THOUGH THEY BE SO GREAT, AND ARE DRIVEN OF N FIERCE WINDS, YET ARE THEY TURNED ABOUT WITH A VERY SMALL HELM, WHITHERSOEVER THE GOVERNOR LISTETH.M# 5 EVEN SO THE TONGUE IS A LITTLE MEMBER, AND BOASTETH GREAT THINGS. BEHOLD,.+ HOW GREAT A MATTER A LITTLE FIRE KINDLETH!YM# 6 AND THE TONGUE IS A FIRE, A WORLD OF INIQUITY: SO IS THE TONGUE AMONG OURTL MEMBERS, THAT IT DEFILETH THE WHOLE BODY, AND SETTETH ON FIRE THE COURSE OF' NATURE; AND IT IS SET ON FIRE OF HELL.OM# 7 FOR EVERY KIND OF BEASTS, AND OF BIRDS, AND OF SERPENTS, AND OF THINGS INO3 THE SEA, IS TAMED, AND HATH BEEN TAMED OF MANKIND:EH# 8 BUT THE TONGUE CAN NO MAN TAME; IT IS AN UNRULY EVIL, FULL OF DEADLY POISON.H# 9 THEREWITH BLESS WE GOD, EVEN THE FATHER; AND THEREWITH CURSE WE MEN,, WHICH ARE MADE AFTER THE SIMILITUDE OF GOD.H# 10 OUT OF THE SAME MOUTH PROCEEDETH BLESSING AND CURSING. MY BRETHREN,! THESE THINGS OUGHT NOT SO TO BE.HI# 11 DOTH A FOUNTAIN SEND FORTH AT THE SAME PLACE SWEET WATER AND BITTER?VL# 12 CAN THE FIG TREE, MY BRETHREN, BEAR OLIVE BERRIES? EITHER A VINE, FIGS?4 SO CAN NO FOUNTAIN BOTH YIELD SALT WATER AND FRESH.L# 13 WHO IS A WISE MAN AND ENDUED WITH KNOWLEDGE AMONG YOU? LET HIM SHEW OUT: OF A GOOD CONVERSATION HIS WORKS WITH MEEKNESS OF WISDOM.L# 14 BUT IF YE HAVE BITTER ENVYING AND STRIFE IN YOUR HEARTS, GLORY NOT, AND LIE NOT AGAINST THE TRUTH.DD# 15 THIS WISDOM DESCENDETH NOT FROM ABOVE, BUT IS EARTHLY, SENSUAL, DEVILISH.M# 16 FOR WHERE ENVYING AND STRIFE IS, THERE IS CONFUSION AND EVERY EVIL WORK. M# 17 BUT THE WISDOM THAT IS FROM ABOVE IS FIRST PURE, THEN PEACEABLE, GENTLE,EM AND EASY TO BE INTREATED, FULL OF MERCY AND GOOD FRUITS, WITHOUT PARTIALITY,G AND WITHOUT HYPOCRISY.OM# 18 AND THE FRUIT OF RIGHTEOUSNESS IS SOWN IN PEACE OF THEM THAT MAKE PEACE.I = CHAPTER 4 L# 1 FROM WHENCE COME WARS AND FIGHTINGS AMONG YOU? COME THEY NOT HENCE, EVEN( OF YOUR LUSTS THAT WAR IN YOUR MEMBERS?M# 2 YE LUST, AND HAVE NOT: YE KILL, AND DESIRE TO HAVE, AND CANNOT OBTAIN: YES4 FIGHT AND WAR, YET YE HAVE NOT, BECAUSE YE ASK NOT.I# 3 YE ASK, AND RECEIVE NOT, BECAUSE YE ASK AMISS, THAT YE MAY CONSUME IT  UPON YOUR LUSTS.MJ# 4 YE ADULTERERS AND ADULTERESSES, KNOW YE NOT THAT THE FRIENDSHIP OF THEL WORLD IS ENMITY WITH GOD? WHOSOEVER THEREFORE WILL BE A FRIEND OF THE WORLD IS THE ENEMY OF GOD.CM# 5 DO YE THINK THAT THE SCRIPTURE SAITH IN VAIN, THE SPIRIT THAT DWELLETH INT US LUSTETH TO ENVY?J# 6 BUT HE GIVETH MORE GRACE. WHEREFORE HE SAITH, GOD RESISTETH THE PROUD," BUT GIVETH GRACE UNTO THE HUMBLE.J# 7 SUBMIT YOURSELVES THEREFORE TO GOD. RESIST THE DEVIL, AND HE WILL FLEE FROM YOU.J# 8 DRAW NIGH TO GOD, AND HE WILL DRAW NIGH TO YOU. CLEANSE YOUR HANDS, YE3 SINNERS; AND PURIFY YOUR HEARTS, YE DOUBLE MINDED.TE# 9 BE AFFLICTED, AND MOURN, AND WEEP: LET YOUR LAUGHTER BE TURNED TO % MOURNING, AND YOUR JOY TO HEAVINESS.PJ# 10 HUMBLE YOURSELVES IN THE SIGHT OF THE LORD, AND HE SHALL LIFT YOU UP.J# 11 SPEAK NOT EVIL ONE OF ANOTHER, BRETHREN. HE THAT SPEAKETH EVIL OF HISL BROTHER, AND JUDGETH HIS BROTHER, SPEAKETH EVIL OF THE LAW, AND JUDGETH THEM LAW: BUT IF THOU JUDGE THE LAW, THOU ART NOT A DOER OF THE LAW, BUT A J00G!G<%X>%+%O-%TADATADATAUDGE.WL# 12 THERE IS ONE LAWGIVER, WHO IS ABLE TO SAVE AND TO DESTROY: WHO ART THOU THAT JUDGEST ANOTHER?M# 13 GO TO NOW, YE THAT SAY, TO DAY OR TO MORROW WE WILL GO INTO SUCH A CITY,U; AND CONTINUE THERE A YEAR, AND BUY AND SELL, AND GET GAIN:TL# 14 WHEREAS YE KNOW NOT WHAT SHALL BE ON THE MORROW. FOR WHAT IS YOUR LIFE?J IT IS EVEN A VAPOUR, THAT APPEARETH FOR A LITTLE TIME, AND THEN VANISHETH AWAY.L# 15 FOR THAT YE OUGHT TO SAY, IF THE LORD WILL, WE SHALL LIVE, AND DO THIS, OR THAT.AF# 16 BUT NOW YE REJOICE IN YOUR BOASTINGS: ALL SUCH REJOICING IS EVIL.M# 17 THEREFORE TO HIM THAT KNOWETH TO DO GOOD, AND DOETH IT NOT, TO HIM IT IS  SIN.T = CHAPTER 5 K# 1 GO TO NOW, YE RICH MEN, WEEP AND HOWL FOR YOUR MISERIES THAT SHALL COMEE UPON YOU.?# 2 YOUR RICHES ARE CORRUPTED, AND YOUR GARMENTS ARE MOTHEATEN.OM# 3 YOUR GOLD AND SILVER IS CANKERED; AND THE RUST OF THEM SHALL BE A WITNESSSF AGAINST YOU, AND SHALL EAT YOUR FLESH AS IT WERE FIRE. YE HAVE HEAPED% TREASURE TOGETHER FOR THE LAST DAYS.TM# 4 BEHOLD, THE HIRE OF THE LABOURERS WHO HAVE REAPED DOWN YOUR FIELDS, WHICHTN IS OF YOU KEPT BACK BY FRAUD, CRIETH: AND THE CRIES OF THEM WHICH HAVE REAPED2 ARE ENTERED INTO THE EARS OF THE LORD OF SABAOTH.D# 5 YE HAVE LIVED IN PLEASURE ON THE EARTH, AND BEEN WANTON; YE HAVE1 NOURISHED YOUR HEARTS, AS IN A DAY OF SLAUGHTER.LF# 6 YE HAVE CONDEMNED AND KILLED THE JUST; AND HE DOTH NOT RESIST YOU.L# 7 BE PATIENT THEREFORE, BRETHREN, UNTO THE COMING OF THE LORD. BEHOLD, THEF HUSBANDMAN WAITETH FOR THE PRECIOUS FRUIT OF THE EARTH, AND HATH LONG= PATIENCE FOR IT, UNTIL HE RECEIVE THE EARLY AND LATTER RAIN.RH# 8 BE YE ALSO PATIENT; STABLISH YOUR HEARTS: FOR THE COMING OF THE LORD DRAWETH NIGH.K# 9 GRUDGE NOT ONE AGAINST ANOTHER, BRETHREN, LEST YE BE CONDEMNED: BEHOLD,Y$ THE JUDGE STANDETH BEFORE THE DOOR.H# 10 TAKE, MY BRETHREN, THE PROPHETS, WHO HAVE SPOKEN IN THE NAME OF THE? LORD, FOR AN EXAMPLE OF SUFFERING AFFLICTION, AND OF PATIENCE.CL# 11 BEHOLD, WE COUNT THEM HAPPY WHICH ENDURE. YE HAVE HEARD OF THE PATIENCEN OF JOB, AND HAVE SEEN THE END OF THE LORD; THAT THE LORD IS VERY PITIFUL, AND OF TENDER MERCY. M# 12 BUT ABOVE ALL THINGS, MY BRETHREN, SWEAR NOT, NEITHER BY HEAVEN, NEITHERK BY THE EARTH, NEITHER BY ANY OTHER OATH: BUT LET YOUR YEA BE YEA; AND YOUR* NAY, NAY; LEST YE FALL INTO CONDEMNATION.I# 13 IS ANY AMONG YOU AFFLICTED? LET HIM PRAY. IS ANY MERRY? LET HIM SINGF PSALMS.J# 14 IS ANY SICK AMONG YOU? LET HIM CALL FOR THE ELDERS OF THE CHURCH; ANDH LET THEM PRAY OVER HIM, ANOINTING HIM WITH OIL IN THE NAME OF THE LORD:J# 15 AND THE PRAYER OF FAITH SHALL SAVE THE SICK, AND THE LORD SHALL RAISEC HIM UP; AND IF HE HAVE COMMITTED SINS, THEY SHALL BE FORGIVEN HIM. J# 16 CONFESS YOUR FAULTS ONE TO ANOTHER, AND PRAY ONE FOR ANOTHER, THAT YEN MAY BE HEALED. THE EFFECTUAL FERVENT PRAYER OF A RIGHTEOUS MAN AVAILETH MUCH.F# 17 ELIAS WAS A MAN SUBJECT TO LIKE PASSIONS AS WE ARE, AND HE PRAYEDN EARNESTLY THAT IT MIGHT NOT RAIN: AND IT RAINED NOT ON THE EARTH BY THE SPACE OF THREE YEARS AND SIX MONTHS. I# 18 AND HE PRAYED AGAIN, AND THE HEAVEN GAVE RAIN, AND THE EARTH BROUGHT  FORTH HER FRUIT.RH# 19 BRETHREN, IF ANY OF YOU DO ERR FROM THE TRUTH, AND ONE CONVERT HIM;L# 20 LET HIM KNOW, THAT HE WHICH CONVERTETH THE SINNER FROM THE ERROR OF HISF WAY SHALL SAVE A SOUL FROM DEATH, AND SHALL HIDE A MULTITUDE OF SINS. MUCH.F# 17 ELIAS WAS A MAN SUBJECT TO LIKE PASSIONS AS WE ARE, AND HE PRAYEDN EARNESTLY THAT IT MIGHT NOT RAIN: AND IT RAINED NOT ON THE EARTH BY THE SPACE OF THREE * BOOK60 1PETERT = CHAPTER 1 L# 1 PETER, AN APOSTLE OF JESUS CHRIST, TO THE STRANGERS SCATTERED THROUGHOUT1 PONTUS, GALATIA, CAPPADOCIA, ASIA, AND BITHYNIA,TC# 2 ELECT ACCORDING TO THE FOREKNOWLEDGE OF GOD THE FATHER, THROUGHEL SANCTIFICATION OF THE SPIRIT, UNTO OBEDIENCE AND SPRINKLING OF THE BLOOD OF8 JESUS CHRIST: GRACE UNTO YOU, AND PEACE, BE MULTIPLIED.K# 3 BLESSED BE THE GOD AND FATHER OF OUR LORD JESUS CHRIST, WHICH ACCORDINGTG TO HIS ABUNDANT MERCY HATH BEGOTTEN US AGAIN UNTO A LIVELY HOPE00"GGF5%T6%! ! BY THEK, RESURRECTION OF JESUS CHRIST FROM THE DEAD,M# 4 TO AN INHERITANCE INCORRUPTIBLE, AND UNDEFILED, AND THAT FADETH NOT AWAY,P RESERVED IN HEAVEN FOR YOU,M# 5 WHO ARE KEPT BY THE POWER OF GOD THROUGH FAITH UNTO SALVATION READY TO BEC REVEALED IN THE LAST TIME.DK# 6 WHEREIN YE GREATLY REJOICE, THOUGH NOW FOR A SEASON, IF NEED BE, YE AREE+ IN HEAVINESS THROUGH MANIFOLD TEMPTATIONS:FL# 7 THAT THE TRIAL OF YOUR FAITH, BEING MUCH MORE PRECIOUS THAN OF GOLD THATH PERISHETH, THOUGH IT BE TRIED WITH FIRE, MIGHT BE FOUND UNTO PRAISE AND3 HONOUR AND GLORY AT THE APPEARING OF JESUS CHRIST:,J# 8 WHOM HAVING NOT SEEN, YE LOVE; IN WHOM, THOUGH NOW YE SEE HIM NOT, YET> BELIEVING, YE REJOICE WITH JOY UNSPEAKABLE AND FULL OF GLORY:F# 9 RECEIVING THE END OF YOUR FAITH, EVEN THE SALVATION OF YOUR SOULS.K# 10 OF WHICH SALVATION THE PROPHETS HAVE ENQUIRED AND SEARCHED DILIGENTLY,O7 WHO PROPHESIED OF THE GRACE THAT SHOULD COME UNTO YOU: M# 11 SEARCHING WHAT, OR WHAT MANNER OF TIME THE SPIRIT OF CHRIST WHICH WAS IN M THEM DID SIGNIFY, WHEN IT TESTIFIED BEFOREHAND THE SUFFERINGS OF CHRIST, ANDI THE GLORY THAT SHOULD FOLLOW.J# 12 UNTO WHOM IT WAS REVEALED, THAT NOT UNTO THEMSELVES, BUT UNTO US THEYK DID MINISTER THE THINGS, WHICH ARE NOW REPORTED UNTO YOU BY THEM THAT HAVEEN PREACHED THE GOSPEL UNTO YOU WITH THE HOLY GHOST SENT DOWN FROM HEAVEN; WHICH' THINGS THE ANGELS DESIRE TO LOOK INTO.SL# 13 WHEREFORE GIRD UP THE LOINS OF YOUR MIND, BE SOBER, AND HOPE TO THE ENDH FOR THE GRACE THAT IS TO BE BROUGHT UNTO YOU AT THE REVELATION OF JESUS CHRIST;L# 14 AS OBEDIENT CHILDREN, NOT FASHIONING YOURSELVES ACCORDING TO THE FORMER LUSTS IN YOUR IGNORANCE:DL# 15 BUT AS HE WHICH HATH CALLED YOU IS HOLY, SO BE YE HOLY IN ALL MANNER OF CONVERSATION;6# 16 BECAUSE IT IS WRITTEN, BE YE HOLY; FOR I AM HOLY.I# 17 AND IF YE CALL ON THE FATHER, WHO WITHOUT RESPECT OF PERSONS JUDGETHSM ACCORDING TO EVERY MANS WORK, PASS THE TIME OF YOUR SOJOURNING HERE IN FEAR:D IT L# 18 FORASMUCH AS YE KNOW THAT YE WERE NOT REDEEMED WITH CORRUPTIBLE THINGS,K AS SILVER AND GOLD, FROM YOUR VAIN CONVERSATION RECEIVED BY TRADITION FROMI YOUR FATHERS;L# 19 BUT WITH THE PRECIOUS BLOOD OF CHRIST, AS OF A LAMB WITHOUT BLEMISH AND WITHOUT SPOT:L# 20 WHO VERILY WAS FOREORDAINED BEFORE THE FOUNDATION OF THE WORLD, BUT WAS& MANIFEST IN THESE LAST TIMES FOR YOU,M# 21 WHO BY HIM DO BELIEVE IN GOD, THAT RAISED HIM UP FROM THE DEAD, AND GAVE 5 HIM GLORY; THAT YOUR FAITH AND HOPE MIGHT BE IN GOD.FH# 22 SEEING YE HAVE PURIFIED YOUR SOULS IN OBEYING THE TRUTH THROUGH THEN SPIRIT UNTO UNFEIGNED LOVE OF THE BRETHREN, SEE THAT YE LOVE ONE ANOTHER WITH A PURE HEART FERVENTLY:L# 23 BEING BORN AGAIN, NOT OF CORRUPTIBLE SEED, BUT OF INCORRUPTIBLE, BY THE0 WORD OF GOD, WHICH LIVETH AND ABIDETH FOR EVER.I# 24 FOR ALL FLESH IS AS GRASS, AND ALL THE GLORY OF MAN AS THE FLOWER OFWA GRASS. THE GRASS WITHERETH, AND THE FLOWER THEREOF FALLETH AWAY:GK# 25 BUT THE WORD OF THE LORD ENDURETH FOR EVER. AND THIS IS THE WORD WHICHH$ BY THE GOSPEL IS PREACHED UNTO YOU. = CHAPTER 2 J# 1 WHEREFORE LAYING ASIDE ALL MALICE, AND ALL GUILE, AND HYPOCRISIES, AND ENVIES, ALL EVIL SPEAKINGS,K# 2 AS NEWBORN BABES, DESIRE THE SINCERE MILK OF THE WORD, THAT YE MAY GROWY THEREBY: 6# 3 IF SO BE YE HAVE TASTED THAT THE LORD IS GRACIOUS.I# 4 TO WHOM COMING, AS UNTO A LIVING STONE, DISALLOWED INDEED OF MEN, BUT  CHOSEN OF GOD, AND PRECIOUS, F# 5 YE ALSO, AS LIVELY STONES, ARE BUILT UP A SPIRITUAL HOUSE, AN HOLYI PRIESTHOOD, TO OFFER UP SPIRITUAL SACRIFICES, ACCEPTABLE TO GOD BY JESUSE CHRIST.L# 6 WHEREFORE ALSO IT IS CONTAINED IN THE SCRIPTURE, BEHOLD, I LAY IN SION AL CHIEF CORNER STONE, ELECT, PRECIOUS: AND HE THAT BELIEVETH ON HIM SHALL NOT BE CONFOUNDED.GK# 7 UNTO YOU THEREFORE WHICH BELIEVE HE IS PRECIOUS: BUT UNTO THEM WHICH BE K DISOBEDIENT, THE STONE WHICH THE BUILDERS DISALLOWED, THE SAME IS MADE THEE HEAD OF THE CORNER,G# 8 AND A STONE OF STUMBLING, AND A ROCK OF OFFENCE, EVEN TO THEM WHICHYL STUMBLE AT THE WORD, BEING DISOBEDIENT: WHEREUN00*G!G<%X>%+%O-%TADATADATATO ALSO THEY WERE APPOINTED.I# 9 BUT YE ARE A CHOSEN GENERATION, A ROYAL PRIESTHOOD, AN HOLY NATION, AYN PECULIAR PEOPLE; THAT YE SHOULD SHEW FORTH THE PRAISES OF HIM WHO HATH CALLED/ YOU OUT OF DARKNESS INTO HIS MARVELLOUS LIGHT;EI# 10 WHICH IN TIME PAST WERE NOT A PEOPLE, BUT ARE NOW THE PEOPLE OF GOD:T; WHICH HAD NOT OBTAINED MERCY, BUT NOW HAVE OBTAINED MERCY.AJ# 11 DEARLY BELOVED, I BESEECH YOU AS STRANGERS AND PILGRIMS, ABSTAIN FROM+ FLESHLY LUSTS, WHICH WAR AGAINST THE SOUL;IK# 12 HAVING YOUR CONVERSATION HONEST AMONG THE GENTILES: THAT, WHEREAS THEYAN SPEAK AGAINST YOU AS EVILDOERS, THEY MAY BY YOUR GOOD WORKS, WHICH THEY SHALL. BEHOLD, GLORIFY GOD IN THE DAY OF VISITATION.L# 13 SUBMIT YOURSELVES TO EVERY ORDINANCE OF MAN FOR THE LORDS SAKE: WHETHER IT BE TO THE KING, AS SUPREME;LL# 14 OR UNTO GOVERNORS, AS UNTO THEM THAT ARE SENT BY HIM FOR THE PUNISHMENT7 OF EVILDOERS, AND FOR THE PRAISE OF THEM THAT DO WELL. J# 15 FOR SO IS THE WILL OF GOD, THAT WITH WELL DOING YE MAY PUT TO SILENCE THE IGNORANCE OF FOOLISH MEN:M# 16 AS FREE, AND NOT USING YOUR LIBERTY FOR A CLOKE OF MALICIOUSNESS, BUT AS  THE SERVANTS OF GOD.SE# 17 HONOUR ALL MEN. LOVE THE BROTHERHOOD. FEAR GOD. HONOUR THE KING.EM# 18 SERVANTS, BE SUBJECT TO YOUR MASTERS WITH ALL FEAR; NOT ONLY TO THE GOOD % AND GENTLE, BUT ALSO TO THE FROWARD.SG# 19 FOR THIS IS THANKWORTHY, IF A MAN FOR CONSCIENCE TOWARD GOD ENDURER GRIEF, SUFFERING WRONGFULLY.LL# 20 FOR WHAT GLORY IS IT, IF, WHEN YE BE BUFFETED FOR YOUR FAULTS, YE SHALLJ TAKE IT PATIENTLY? BUT IF, WHEN YE DO WELL, AND SUFFER FOR IT, YE TAKE IT( PATIENTLY, THIS IS ACCEPTABLE WITH GOD.K# 21 FOR EVEN HEREUNTO WERE YE CALLED: BECAUSE CHRIST ALSO SUFFERED FOR US,U8 LEAVING US AN EXAMPLE, THAT YE SHOULD FOLLOW HIS STEPS::# 22 WHO DID NO SIN, NEITHER WAS GUILE FOUND IN HIS MOUTH:F# 23 WHO, WHEN HE WAS REVILED, REVILED NOT AGAIN; WHEN HE SUFFERED, HEG THREATENED NOT; BUT COMMITTED HIMSELF TO HIM THAT JUDGETH RIGHTEOUSLY:II# 24 WHO HIS OWN SELF BARE OUR SINS IN HIS OWN BODY ON THE TREE, THAT WE,UM BEING DEAD TO SINS, SHOULD LIVE UNTO RIGHTEOUSNESS: BY WHOSE STRIPES YE WERET HEALED.E# 25 FOR YE WERE AS SHEEP GOING ASTRAY; BUT ARE NOW RETURNED UNTO THEE# SHEPHERD AND BISHOP OF YOUR SOULS.H = CHAPTER 3 K# 1 LIKEWISE, YE WIVES, BE IN SUBJECTION TO YOUR OWN HUSBANDS; THAT, IF ANYM OBEY NOT THE WORD, THEY ALSO MAY WITHOUT THE WORD BE WON BY THE CONVERSATIONE OF THE WIVES;A# 2 WHILE THEY BEHOLD YOUR CHASTE CONVERSATION COUPLED WITH FEAR.SL# 3 WHOSE ADORNING LET IT NOT BE THAT OUTWARD ADORNING OF PLAITING THE HAIR,5 AND OF WEARING OF GOLD, OR OF PUTTING ON OF APPAREL;RC# 4 BUT LET IT BE THE HIDDEN MAN OF THE HEART, IN THAT WHICH IS NOTUK CORRUPTIBLE, EVEN THE ORNAMENT OF A MEEK AND QUIET SPIRIT, WHICH IS IN THEI SIGHT OF GOD OF GREAT PRICE.TM# 5 FOR AFTER THIS MANNER IN THE OLD TIME THE HOLY WOMEN ALSO, WHO TRUSTED INHF GOD, ADORNED THEMSELVES, BEING IN SUBJECTION UNTO THEIR OWN HUSBANDS:M# 6 EVEN AS SARA OBEYED ABRAHAM, CALLING HIM LORD: WHOSE DAUGHTERS YE ARE, ASE; LONG AS YE DO WELL, AND ARE NOT AFRAID WITH ANY AMAZEMENT. I# 7 LIKEWISE, YE HUSBANDS, DWELL WITH THEM ACCORDING TO KNOWLEDGE, GIVING M HONOUR UNTO THE WIFE, AS UNTO THE WEAKER VESSEL, AND AS BEING HEIRS TOGETHER 9 OF THE GRACE OF LIFE; THAT YOUR PRAYERS BE NOT HINDERED.EM# 8 FINALLY, BE YE ALL OF ONE MIND, HAVING COMPASSION ONE OF ANOTHER, LOVE ASI$ BRETHREN, BE PITIFUL, BE COURTEOUS:I# 9 NOT RENDERING EVIL FOR EVIL, OR RAILING FOR RAILING: BUT CONTRARIWISEII BLESSING; KNOWING THAT YE ARE THEREUNTO CALLED, THAT YE SHOULD INHERIT AA BLESSING.G# 10 FOR HE THAT WILL LOVE LIFE, AND SEE GOOD DAYS, LET HIM REFRAIN HISN9 TONGUE FROM EVIL, AND HIS LIPS THAT THEY SPEAK NO GUILE: H# 11 LET HIM ESCHEW EVIL, AND DO GOOD; LET HIM SEEK PEACE, AND ENSUE IT.K# 12 FOR THE EYES OF THE LORD ARE OVER THE RIGHTEOUS, AND HIS EARS ARE OPEN K UNTO THEIR PRAYERS: BUT THE FACE OF THE LORD IS AGAINST THEM THAT DO EVIL.RJ# 13 AND WHO IS HE THAT WILL HARM YOU, IF YE BE FOLLOWERS OF THAT WHICH IS GOOD?J# 14 BUT AND002GGF5%T6%! ! IF YE SUFFER FOR RIGHTEOUSNESS SAKE, HAPPY ARE YE: AND BE NOT- AFRAID OF THEIR TERROR, NEITHER BE TROUBLED;IM# 15 BUT SANCTIFY THE LORD GOD IN YOUR HEARTS: AND BE READY ALWAYS TO GIVE AN1M ANSWER TO EVERY MAN THAT ASKETH YOU A REASON OF THE HOPE THAT IS IN YOU WITHT MEEKNESS AND FEAR:RJ# 16 HAVING A GOOD CONSCIENCE; THAT, WHEREAS THEY SPEAK EVIL OF YOU, AS OFM EVILDOERS, THEY MAY BE ASHAMED THAT FALSELY ACCUSE YOUR GOOD CONVERSATION INR CHRIST.H# 17 FOR IT IS BETTER, IF THE WILL OF GOD BE SO, THAT YE SUFFER FOR WELL DOING, THAN FOR EVIL DOING.J# 18 FOR CHRIST ALSO HATH ONCE SUFFERED FOR SINS, THE JUST FOR THE UNJUST,N THAT HE MIGHT BRING US TO GOD, BEING PUT TO DEATH IN THE FLESH, BUT QUICKENED BY THE SPIRIT:HC# 19 BY WHICH ALSO HE WENT AND PREACHED UNTO THE SPIRITS IN PRISON;H# 20 WHICH SOMETIME WERE DISOBEDIENT, WHEN ONCE THE LONGSUFFERING OF GODM WAITED IN THE DAYS OF NOAH, WHILE THE ARK WAS A PREPARING, WHEREIN FEW, THATR% IS, EIGHT SOULS WERE SAVED BY WATER.HJ# 21 THE LIKE FIGURE WHEREUNTO EVEN BAPTISM DOTH ALSO NOW SAVE US (NOT THEL PUTTING AWAY OF THE FILTH OF THE FLESH, BUT THE ANSWER OF A GOOD CONSCIENCE2 TOWARD GOD,) BY THE RESURRECTION OF JESUS CHRIST:I# 22 WHO IS GONE INTO HEAVEN, AND IS ON THE RIGHT HAND OF GOD; ANGELS ANDP4 AUTHORITIES AND POWERS BEING MADE SUBJECT UNTO HIM. = CHAPTER 4 N# 1 FORASMUCH THEN AS CHRIST HATH SUFFERED FOR US IN THE FLESH, ARM YOURSELVESI LIKEWISE WITH THE SAME MIND: FOR HE THAT HATH SUFFERED IN THE FLESH HATHW CEASED FROM SIN;KJ# 2 THAT HE NO LONGER SHOULD LIVE THE REST OF HIS TIME IN THE FLESH TO THE& LUSTS OF MEN, BUT TO THE WILL OF GOD.L# 3 FOR THE TIME PAST OF OUR LIFE MAY SUFFICE US TO HAVE WROUGHT THE WILL OFG THE GENTILES, WHEN WE WALKED IN LASCIVIOUSNESS, LUSTS, EXCESS OF WINE,P4 REVELLINGS, BANQUETINGS, AND ABOMINABLE IDOLATRIES:G# 4 WHEREIN THEY THINK IT STRANGE THAT YE RUN NOT WITH THEM TO THE SAMEF& EXCESS OF RIOT, SPEAKING EVIL OF YOU:J# 5 WHO SHALL GIVE ACCOUNT TO HIM THAT IS READY TO JUDGE THE QUICK AND THE DEAD.J# 6 FOR FOR THIS CAUSE WAS THE GOSPEL PREACHED ALSO TO THEM THAT ARE DEAD,L THAT THEY MIGHT BE JUDGED ACCORDING TO MEN IN THE FLESH, BUT LIVE ACCORDING TO GOD IN THE SPIRIT.J# 7 BUT THE END OF ALL THINGS IS AT HAND: BE YE THEREFORE SOBER, AND WATCH UNTO PRAYER.IK# 8 AND ABOVE ALL THINGS HAVE FERVENT CHARITY AMONG YOURSELVES: FOR CHARITYG# SHALL COVER THE MULTITUDE OF SINS.M4# 9 USE HOSPITALITY ONE TO ANOTHER WITHOUT GRUDGING.J# 10 AS EVERY MAN HATH RECEIVED THE GIFT, EVEN SO MINISTER THE SAME ONE TO8 ANOTHER, AS GOOD STEWARDS OF THE MANIFOLD GRACE OF GOD.F# 11 IF ANY MAN SPEAK, LET HIM SPEAK AS THE ORACLES OF GOD; IF ANY MANL MINISTER, LET HIM DO IT AS OF THE ABILITY WHICH GOD GIVETH: THAT GOD IN ALLM THINGS MAY BE GLORIFIED THROUGH JESUS CHRIST, TO WHOM BE PRAISE AND DOMINIONH FOR EVER AND EVER. AMEN.MM# 12 BELOVED, THINK IT NOT STRANGE CONCERNING THE FIERY TRIAL WHICH IS TO TRYP5 YOU, AS THOUGH SOME STRANGE THING HAPPENED UNTO YOU: K# 13 BUT REJOICE, INASMUCH AS YE ARE PARTAKERS OF CHRISTS SUFFERINGS; THAT,OJ WHEN HIS GLORY SHALL BE REVEALED, YE MAY BE GLAD ALSO WITH EXCEEDING JOY.M# 14 IF YE BE REPROACHED FOR THE NAME OF CHRIST, HAPPY ARE YE; FOR THE SPIRITYN OF GLORY AND OF GOD RESTETH UPON YOU: ON THEIR PART HE IS EVIL SPOKEN OF, BUT ON YOUR PART HE IS GLORIFIED.K# 15 BUT LET NONE OF YOU SUFFER AS A MURDERER, OR AS A THIEF, OR AS AN EVIL . DOER, OR AS A BUSYBODY IN OTHER MENS MATTERS.J# 16 YET IF ANY MAN SUFFER AS A CHRISTIAN, LET HIM NOT BE ASHAMED; BUT LET HIM GLORIFY GOD ON THIS BEHALF.K# 17 FOR THE TIME IS COME THAT JUDGMENT MUST BEGIN AT THE HOUSE OF GOD: ANDNI IF IT FIRST BEGIN AT US, WHAT SHALL THE END BE OF THEM THAT OBEY NOT THET GOSPEL OF GOD?LL# 18 AND IF THE RIGHTEOUS SCARCELY BE SAVED, WHERE SHALL THE UNGODLY AND THE SINNER APPEAR?LK# 19 WHEREFORE LET THEM THAT SUFFER ACCORDING TO THE WILL OF GOD COMMIT THE I KEEPING OF THEIR SOULS TO HIM IN WELL DOING, AS UNTO A FAITHFUL CREATOR.A = CHAPTER 5 H# 1 THE ELDERS WHICH ARE AMONG YOU I EXHORT, WHO AM ALSO AN EL00:GAG<%X>%+%O-%TADATADATADER, AND AK WITNESS OF THE SUFFERINGS OF CHRIST, AND ALSO A PARTAKER OF THE GLORY THATN SHALL BE REVEALED:NK# 2 FEED THE FLOCK OF GOD WHICH IS AMONG YOU, TAKING THE OVERSIGHT THEREOF, M NOT BY CONSTRAINT, BUT WILLINGLY; NOT FOR FILTHY LUCRE, BUT OF A READY MIND;NI# 3 NEITHER AS BEING LORDS OVER GODS HERITAGE, BUT BEING ENSAMPLES TO THEG FLOCK. I# 4 AND WHEN THE CHIEF SHEPHERD SHALL APPEAR, YE SHALL RECEIVE A CROWN OFT GLORY THAT FADETH NOT AWAY.K# 5 LIKEWISE, YE YOUNGER, SUBMIT YOURSELVES UNTO THE ELDER. YEA, ALL OF YOUHK BE SUBJECT ONE TO ANOTHER, AND BE CLOTHED WITH HUMILITY: FOR GOD RESISTETHE+ THE PROUD, AND GIVETH GRACE TO THE HUMBLE.OI# 6 HUMBLE YOURSELVES THEREFORE UNDER THE MIGHTY HAND OF GOD, THAT HE MAYN EXALT YOU IN DUE TIME:O:# 7 CASTING ALL YOUR CARE UPON HIM; FOR HE CARETH FOR YOU.I# 8 BE SOBER, BE VIGILANT; BECAUSE YOUR ADVERSARY THE DEVIL, AS A ROARING 1 LION, WALKETH ABOUT, SEEKING WHOM HE MAY DEVOUR:TL# 9 WHOM RESIST STEDFAST IN THE FAITH, KNOWING THAT THE SAME AFFLICTIONS ARE5 ACCOMPLISHED IN YOUR BRETHREN THAT ARE IN THE WORLD.EK# 10 BUT THE GOD OF ALL GRACE, WHO HATH CALLED US UNTO HIS ETERNAL GLORY BYHE CHRIST JESUS, AFTER THAT YE HAVE SUFFERED A WHILE, MAKE YOU PERFECT,D" STABLISH, STRENGTHEN, SETTLE YOU.:# 11 TO HIM BE GLORY AND DOMINION FOR EVER AND EVER. AMEN.K# 12 BY SILVANUS, A FAITHFUL BROTHER UNTO YOU, AS I SUPPOSE, I HAVE WRITTENNN BRIEFLY, EXHORTING, AND TESTIFYING THAT THIS IS THE TRUE GRACE OF GOD WHEREIN YE STAND.L# 13 THE CHURCH THAT IS AT BABYLON, ELECTED TOGETHER WITH YOU, SALUTETH YOU; AND SO DOTH MARCUS MY SON.TL# 14 GREET YE ONE ANOTHER WITH A KISS OF CHARITY. PEACE BE WITH YOU ALL THAT ARE IN CHRIST JESUS. AMEN.RED A WHILE, MAKE YOU PERFECT,D" STABLISH, STRENGTHEN, SETTLE YOU.:# 11 TO HIM BE GLORY AND DOMINION FOR EVER AND EVER. AMEN.K# 12 BY SILVANUS, A FAITHFUL BROTHER UNTO YOU, AS I SUPPOSE, I HAVE WRITTENNN BRIEFLY, EXHORTING, AND TESTIFYING THAT THIS IS THE TRUE GRACE OF GOD WHEREIN YE STAND.L# 13 THE CHURCH THAT IS AT BABYL* BOOK61 2PETERH = CHAPTER 1 L# 1 SIMON PETER, A SERVANT AND AN APOSTLE OF JESUS CHRIST, TO THEM THAT HAVEN OBTAINED LIKE PRECIOUS FAITH WITH US THROUGH THE RIGHTEOUSNESS OF GOD AND OUR SAVIOUR JESUS CHRIST:L# 2 GRACE AND PEACE BE MULTIPLIED UNTO YOU THROUGH THE KNOWLEDGE OF GOD, AND OF JESUS OUR LORD,2L# 3 ACCORDING AS HIS DIVINE POWER HATH GIVEN UNTO US ALL THINGS THAT PERTAINM UNTO LIFE AND GODLINESS, THROUGH THE KNOWLEDGE OF HIM THAT HATH CALLED US TO  GLORY AND VIRTUE:L# 4 WHEREBY ARE GIVEN UNTO US EXCEEDING GREAT AND PRECIOUS PROMISES: THAT BYE THESE YE MIGHT BE PARTAKERS OF THE DIVINE NATURE, HAVING ESCAPED THEE. CORRUPTION THAT IS IN THE WORLD THROUGH LUST.K# 5 AND BESIDE THIS, GIVING ALL DILIGENCE, ADD TO YOUR FAITH VIRTUE; AND TOY VIRTUE KNOWLEDGE;L# 6 AND TO KNOWLEDGE TEMPERANCE; AND TO TEMPERANCE PATIENCE; AND TO PATIENCE GODLINESS; ITK# 7 AND TO GODLINESS BROTHERLY KINDNESS; AND TO BROTHERLY KINDNESS CHARITY.MJ# 8 FOR IF THESE THINGS BE IN YOU, AND ABOUND, THEY MAKE YOU THAT YE SHALLL NEITHER BE BARREN NOR UNFRUITFUL IN THE KNOWLEDGE OF OUR LORD JESUS CHRIST.K# 9 BUT HE THAT LACKETH THESE THINGS IS BLIND, AND CANNOT SEE AFAR OFF, ANDR5 HATH FORGOTTEN THAT HE WAS PURGED FROM HIS OLD SINS.AL# 10 WHEREFORE THE RATHER, BRETHREN, GIVE DILIGENCE TO MAKE YOUR CALLING AND? ELECTION SURE: FOR IF YE DO THESE THINGS, YE SHALL NEVER FALL: H# 11 FOR SO AN ENTRANCE SHALL BE MINISTERED UNTO YOU ABUNDANTLY INTO THE: EVERLASTING KINGDOM OF OUR LORD AND SAVIOUR JESUS CHRIST.J# 12 WHEREFORE I WILL NOT BE NEGLIGENT TO PUT YOU ALWAYS IN REMEMBRANCE OFL THESE THINGS, THOUGH YE KNOW THEM, AND BE ESTABLISHED IN THE PRESENT TRUTH.M# 13 YEA, I THINK IT MEET, AS LONG AS I AM IN THIS TABERNACLE, TO STIR YOU UPA BY PUTTING YOU IN REMEMBRANCE;HM# 14 KNOWING THAT SHORTLY I MUST PUT OFF THIS MY TABERNACLE, EVEN AS OUR LORDE JESUS CHRIST HATH SHEWED ME.K# 15 MOREOVER I WILL ENDEAVOUR THAT YE MAY BE ABLE AFTER MY DECEASE TO HAVEE$ THESE THINGS ALWAYS IN REMEMBRANCE.J# 16 FOR WE HAVE NOT FOL00EGGF5%T6%! !LOWED CUNNINGLY DEVISED FABLES, WHEN WE MADE KNOWNN UNTO YOU THE POWER AND COMING OF OUR LORD JESUS CHRIST, BUT WERE EYEWITNESSES OF HIS MAJESTY.J# 17 FOR HE RECEIVED FROM GOD THE FATHER HONOUR AND GLORY, WHEN THERE CAMEN SUCH A VOICE TO HIM FROM THE EXCELLENT GLORY, THIS IS MY BELOVED SON, IN WHOM I AM WELL PLEASED. M# 18 AND THIS VOICE WHICH CAME FROM HEAVEN WE HEARD, WHEN WE WERE WITH HIM INA THE HOLY MOUNT.L# 19 WE HAVE ALSO A MORE SURE WORD OF PROPHECY; WHEREUNTO YE DO WELL THAT YEM TAKE HEED, AS UNTO A LIGHT THAT SHINETH IN A DARK PLACE, UNTIL THE DAY DAWN,E' AND THE DAY STAR ARISE IN YOUR HEARTS:TL# 20 KNOWING THIS FIRST, THAT NO PROPHECY OF THE SCRIPTURE IS OF ANY PRIVATE INTERPRETATION.K# 21 FOR THE PROPHECY CAME NOT IN OLD TIME BY THE WILL OF MAN: BUT HOLY MENE3 OF GOD SPAKE AS THEY WERE MOVED BY THE HOLY GHOST.I = CHAPTER 2 L# 1 BUT THERE WERE FALSE PROPHETS ALSO AMONG THE PEOPLE, EVEN AS THERE SHALLK BE FALSE TEACHERS AMONG YOU, WHO PRIVILY SHALL BRING IN DAMNABLE HERESIES, H EVEN DENYING THE LORD THAT BOUGHT THEM, AND BRING UPON THEMSELVES SWIFT DESTRUCTION.AM# 2 AND MANY SHALL FOLLOW THEIR PERNICIOUS WAYS; BY REASON OF WHOM THE WAY OFP TRUTH SHALL BE EVIL SPOKEN OF.TK# 3 AND THROUGH COVETOUSNESS SHALL THEY WITH FEIGNED WORDS MAKE MERCHANDISELM OF YOU: WHOSE JUDGMENT NOW OF A LONG TIME LINGERETH NOT, AND THEIR DAMNATION  SLUMBERETH NOT.M# 4 FOR IF GOD SPARED NOT THE ANGELS THAT SINNED, BUT CAST THEM DOWN TO HELL,GJ AND DELIVERED THEM INTO CHAINS OF DARKNESS, TO BE RESERVED UNTO JUDGMENT;E# 5 AND SPARED NOT THE OLD WORLD, BUT SAVED NOAH THE EIGHTH PERSON, A G PREACHER OF RIGHTEOUSNESS, BRINGING IN THE FLOOD UPON THE WORLD OF THEP UNGODLY;AJ# 6 AND TURNING THE CITIES OF SODOM AND GOMORRHA INTO ASHES CONDEMNED THEMM WITH AN OVERTHROW, MAKING THEM AN ENSAMPLE UNTO THOSE THAT AFTER SHOULD LIVEN UNGODLY;IM# 7 AND DELIVERED JUST LOT, VEXED WITH THE FILTHY CONVERSATION OF THE WICKED:DM# 8 (FOR THAT RIGHTEOUS MAN DWELLING AMONG THEM, IN SEEING AND HEARING, VEXED ? HIS RIGHTEOUS SOUL FROM DAY TO DAY WITH THEIR UNLAWFUL DEEDS;) H# 9 THE LORD KNOWETH HOW TO DELIVER THE GODLY OUT OF TEMPTATIONS, AND TO< RESERVE THE UNJUST UNTO THE DAY OF JUDGMENT TO BE PUNISHED:K# 10 BUT CHIEFLY THEM THAT WALK AFTER THE FLESH IN THE LUST OF UNCLEANNESS,WH AND DESPISE GOVERNMENT. PRESUMPTUOUS ARE THEY, SELFWILLED, THEY ARE NOT# AFRAID TO SPEAK EVIL OF DIGNITIES.HL# 11 WHEREAS ANGELS, WHICH ARE GREATER IN POWER AND MIGHT, BRING NOT RAILING) ACCUSATION AGAINST THEM BEFORE THE LORD.H# 12 BUT THESE, AS NATURAL BRUTE BEASTS, MADE TO BE TAKEN AND DESTROYED,L SPEAK EVIL OF THE THINGS THAT THEY UNDERSTAND NOT; AND SHALL UTTERLY PERISH IN THEIR OWN CORRUPTION;GK# 13 AND SHALL RECEIVE THE REWARD OF UNRIGHTEOUSNESS, AS THEY THAT COUNT ITLI PLEASURE TO RIOT IN THE DAY TIME. SPOTS THEY ARE AND BLEMISHES, SPORTINGI@ THEMSELVES WITH THEIR OWN DECEIVINGS WHILE THEY FEAST WITH YOU;L# 14 HAVING EYES FULL OF ADULTERY, AND THAT CANNOT CEASE FROM SIN; BEGUILINGM UNSTABLE SOULS: AN HEART THEY HAVE EXERCISED WITH COVETOUS PRACTICES; CURSEDD CHILDREN:J# 15 WHICH HAVE FORSAKEN THE RIGHT WAY, AND ARE GONE ASTRAY, FOLLOWING THEH WAY OF BALAAM THE SON OF BOSOR, WHO LOVED THE WAGES OF UNRIGHTEOUSNESS;L# 16 BUT WAS REBUKED FOR HIS INIQUITY: THE DUMB ASS SPEAKING WITH MANS VOICE# FORBAD THE MADNESS OF THE PROPHET.,K# 17 THESE ARE WELLS WITHOUT WATER, CLOUDS THAT ARE CARRIED WITH A TEMPEST;3 TO WHOM THE MIST OF DARKNESS IS RESERVED FOR EVER.AL# 18 FOR WHEN THEY SPEAK GREAT SWELLING WORDS OF VANITY, THEY ALLURE THROUGHG THE LUSTS OF THE FLESH, THROUGH MUCH WANTONNESS, THOSE THAT WERE CLEANW% ESCAPED FROM THEM WHO LIVE IN ERROR.I# 19 WHILE THEY PROMISE THEM LIBERTY, THEY THEMSELVES ARE THE SERVANTS OF H CORRUPTION: FOR OF WHOM A MAN IS OVERCOME, OF THE SAME IS HE BROUGHT IN BONDAGE.HK# 20 FOR IF AFTER THEY HAVE ESCAPED THE POLLUTIONS OF THE WORLD THROUGH THERI KNOWLEDGE OF THE LORD AND SAVIOUR JESUS CHRIST, THEY ARE AGAIN ENTANGLEDVM THEREIN, AND OVERCOME, THE LATTER END IS WORSE WITH THEM TH00MGTG<%X>%+%O-%TADATADATAAN THE BEGINNING.UA# 21 FOR IT HAD BEEN BETTER FOR THEM NOT TO HAVE KNOWN THE WAY OFRE RIGHTEOUSNESS, THAN, AFTER THEY HAVE KNOWN IT, TO TURN FROM THE HOLYS! COMMANDMENT DELIVERED UNTO THEM. K# 22 BUT IT IS HAPPENED UNTO THEM ACCORDING TO THE TRUE PROVERB, THE DOG ISHL TURNED TO HIS OWN VOMIT AGAIN; AND THE SOW THAT WAS WASHED TO HER WALLOWING IN THE MIRE.O = CHAPTER 3 L# 1 THIS SECOND EPISTLE, BELOVED, I NOW WRITE UNTO YOU; IN BOTH WHICH I STIR* UP YOUR PURE MINDS BY WAY OF REMEMBRANCE:L# 2 THAT YE MAY BE MINDFUL OF THE WORDS WHICH WERE SPOKEN BEFORE BY THE HOLYM PROPHETS, AND OF THE COMMANDMENT OF US THE APOSTLES OF THE LORD AND SAVIOUR:MH# 3 KNOWING THIS FIRST, THAT THERE SHALL COME IN THE LAST DAYS SCOFFERS, WALKING AFTER THEIR OWN LUSTS,VI# 4 AND SAYING, WHERE IS THE PROMISE OF HIS COMING? FOR SINCE THE FATHERSEH FELL ASLEEP, ALL THINGS CONTINUE AS THEY WERE FROM THE BEGINNING OF THE CREATION.H# 5 FOR THIS THEY WILLINGLY ARE IGNORANT OF, THAT BY THE WORD OF GOD THEH HEAVENS WERE OF OLD, AND THE EARTH STANDING OUT OF THE WATER AND IN THE WATER: K# 6 WHEREBY THE WORLD THAT THEN WAS, BEING OVERFLOWED WITH WATER, PERISHED:VK# 7 BUT THE HEAVENS AND THE EARTH, WHICH ARE NOW, BY THE SAME WORD ARE KEPTRJ IN STORE, RESERVED UNTO FIRE AGAINST THE DAY OF JUDGMENT AND PERDITION OF UNGODLY MEN.OM# 8 BUT, BELOVED, BE NOT IGNORANT OF THIS ONE THING, THAT ONE DAY IS WITH THEE; LORD AS A THOUSAND YEARS, AND A THOUSAND YEARS AS ONE DAY.GC# 9 THE LORD IS NOT SLACK CONCERNING HIS PROMISE, AS SOME MEN COUNT I SLACKNESS; BUT IS LONG SUFFERING TO US-WARD, NOT WILLING THAT ANY SHOULD 0 PERISH, BUT THAT ALL SHOULD COME TO REPENTANCE.L# 10 BUT THE DAY OF THE LORD WILL COME AS A THIEF IN THE NIGHT; IN THE WHICHL THE HEAVENS SHALL PASS AWAY WITH A GREAT NOISE, AND THE ELEMENTS SHALL MELTJ WITH FERVENT HEAT, THE EARTH ALSO AND THE WORKS THAT ARE THEREIN SHALL BE BURNED UP.WI# 11 SEEING THEN THAT ALL THESE THINGS SHALL BE DISSOLVED, WHAT MANNER OF ? PERSONS OUGHT YE TO BE IN ALL HOLY CONVERSATION AND GODLINESS,K# 12 LOOKING FOR AND HASTING UNTO THE COMING OF THE DAY OF GOD, WHEREIN THEPK HEAVENS BEING ON FIRE SHALL BE DISSOLVED, AND THE ELEMENTS SHALL MELT WITHW FERVENT HEAT?J# 13 NEVERTHELESS WE, ACCORDING TO HIS PROMISE, LOOK FOR NEW HEAVENS AND A+ NEW EARTH, WHEREIN DWELLETH RIGHTEOUSNESS.NI# 14 WHEREFORE, BELOVED, SEEING THAT YE LOOK FOR SUCH THINGS, BE DILIGENTWC THAT YE MAY BE FOUND OF HIM IN PEACE, WITHOUT SPOT, AND BLAMELESS.NM# 15 AND ACCOUNT THAT THE LONGSUFFERING OF OUR LORD IS SALVATION; EVEN AS OURLN BELOVED BROTHER PAUL ALSO ACCORDING TO THE WISDOM GIVEN UNTO HIM HATH WRITTEN UNTO YOU;L# 16 AS ALSO IN ALL HIS EPISTLES, SPEAKING IN THEM OF THESE THINGS; IN WHICHI ARE SOME THINGS HARD TO BE UNDERSTOOD, WHICH THEY THAT ARE UNLEARNED ANDWE UNSTABLE WREST, AS THEY DO ALSO THE OTHER SCRIPTURES, UNTO THEIR OWNN DESTRUCTION.FK# 17 YE THEREFORE, BELOVED, SEEING YE KNOW THESE THINGS BEFORE, BEWARE LESTSI YE ALSO, BEING LED AWAY WITH THE ERROR OF THE WICKED, FALL FROM YOUR OWNS STEDFASTNESS.J# 18 BUT GROW IN GRACE, AND IN THE KNOWLEDGE OF OUR LORD AND SAVIOUR JESUS5 CHRIST. TO HIM BE GLORY BOTH NOW AND FOR EVER. AMEN.LES, SPEAKING IN THEM OF THESE THINGS; IN WHICHI ARE SOME THINGS HARD TO BE UNDERSTOOD, WHICH THEY THAT ARE UNLEARNED ANDWE UNSTABLE WREST, AS THEY DO ALSO THE OTHER SCRIPTURES, UNTO THEIR OWNN DESTRUCTION.FK# 17 YE THEREFORE, BELOVED, SEEING YE KNOW THESE THINGS BEFORE, BEWARE LESTSI YE ALSO, BEING LED AWAY WITH THE ERROR OF THE WICKED, FALL FROM YOUR OWNS* BOOK62 1JOHN = CHAPTER 1 N# 1 THAT WHICH WAS FROM THE BEGINNING, WHICH WE HAVE HEARD, WHICH WE HAVE SEENM WITH OUR EYES, WHICH WE HAVE LOOKED UPON, AND OUR HANDS HAVE HANDLED, OF THEI WORD OF LIFE;L# 2 (FOR THE LIFE WAS MANIFESTED, AND WE HAVE SEEN IT, AND BEAR WITNESS, ANDD SHEW UNTO YOU THAT ETERNAL LIFE, WHICH WAS WITH THE FATHER, AND WAS MANIFESTED UNTO US;)BK# 3 THAT WHICH WE HAVE SEEN AND HEARD DECLARE WE UNTO YOU, THAT YE ALSO MAY J HAVE FELLOWSHIP WITH US: AND TRULY OUR FELLOWSHIP IS 00UGGF5%T6%! !WITH THE FATHER, AND WITH HIS SON JESUS CHRIST.SB# 4 AND THESE THINGS WRITE WE UNTO YOU, THAT YOUR JOY MAY BE FULL.I# 5 THIS THEN IS THE MESSAGE WHICH WE HAVE HEARD OF HIM, AND DECLARE UNTOW: YOU, THAT GOD IS LIGHT, AND IN HIM IS NO DARKNESS AT ALL.M# 6 IF WE SAY THAT WE HAVE FELLOWSHIP WITH HIM, AND WALK IN DARKNESS, WE LIE,H AND DO NOT THE TRUTH:J# 7 BUT IF WE WALK IN THE LIGHT, AS HE IS IN THE LIGHT, WE HAVE FELLOWSHIPN ONE WITH ANOTHER, AND THE BLOOD OF JESUS CHRIST HIS SON CLEANSETH US FROM ALL SIN.FM# 8 IF WE SAY THAT WE HAVE NO SIN, WE DECEIVE OURSELVES, AND THE TRUTH IS NOTU IN US.UK# 9 IF WE CONFESS OUR SINS, HE IS FAITHFUL AND JUST TO FORGIVE US OUR SINS,A, AND TO CLEANSE US FROM ALL UNRIGHTEOUSNESS.K# 10 IF WE SAY THAT WE HAVE NOT SINNED, WE MAKE HIM A LIAR, AND HIS WORD ISM NOT IN US. = CHAPTER 2 N# 1 MY LITTLE CHILDREN, THESE THINGS WRITE I UNTO YOU, THAT YE SIN NOT. AND IFN ANY MAN SIN, WE HAVE AN ADVOCATE WITH THE FATHER, JESUS CHRIST THE RIGHTEOUS:L# 2 AND HE IS THE PROPITIATION FOR OUR SINS: AND NOT FOR OURS ONLY, BUT ALSO! FOR THE SINS OF THE WHOLE WORLD.H# 3 AND HEREBY WE DO KNOW THAT WE KNOW HIM, IF WE KEEP HIS COMMANDMENTS.K# 4 HE THAT SAITH, I KNOW HIM, AND KEEPETH NOT HIS COMMANDMENTS, IS A LIAR,A AND THE TRUTH IS NOT IN HIM.IK# 5 BUT WHOSO KEEPETH HIS WORD, IN HIM VERILY IS THE LOVE OF GOD PERFECTED:N# HEREBY KNOW WE THAT WE ARE IN HIM. M# 6 HE THAT SAITH HE ABIDETH IN HIM OUGHT HIMSELF ALSO SO TO WALK, EVEN AS HER WALKED.I# 7 BRETHREN, I WRITE NO NEW COMMANDMENT UNTO YOU, BUT AN OLD COMMANDMENTYJ WHICH YE HAD FROM THE BEGINNING. THE OLD COMMANDMENT IS THE WORD WHICH YE HAVE HEARD FROM THE BEGINNING.MM# 8 AGAIN, A NEW COMMANDMENT I WRITE UNTO YOU, WHICH THING IS TRUE IN HIM AND F IN YOU: BECAUSE THE DARKNESS IS PAST, AND THE TRUE LIGHT NOW SHINETH.L# 9 HE THAT SAITH HE IS IN THE LIGHT, AND HATETH HIS BROTHER, IS IN DARKNESS EVEN UNTIL NOW.G# 10 HE THAT LOVETH HIS BROTHER ABIDETH IN THE LIGHT, AND THERE IS NONEL OCCASION OF STUMBLING IN HIM.L# 11 BUT HE THAT HATETH HIS BROTHER IS IN DARKNESS, AND WALKETH IN DARKNESS,I AND KNOWETH NOT WHITHER HE GOETH, BECAUSE THAT DARKNESS HATH BLINDED HISI EYES.J# 12 I WRITE UNTO YOU, LITTLE CHILDREN, BECAUSE YOUR SINS ARE FORGIVEN YOU FOR HIS NAMES SAKE.J# 13 I WRITE UNTO YOU, FATHERS, BECAUSE YE HAVE KNOWN HIM THAT IS FROM THEL BEGINNING. I WRITE UNTO YOU, YOUNG MEN, BECAUSE YE HAVE OVERCOME THE WICKEDJ ONE. I WRITE UNTO YOU, LITTLE CHILDREN, BECAUSE YE HAVE KNOWN THE FATHER.M# 14 I HAVE WRITTEN UNTO YOU, FATHERS, BECAUSE YE HAVE KNOWN HIM THAT IS FROM N THE BEGINNING. I HAVE WRITTEN UNTO YOU, YOUNG MEN, BECAUSE YE ARE STRONG, ANDE THE WORD OF GOD ABIDETH IN YOU, AND YE HAVE OVERCOME THE WICKED ONE.SM# 15 LOVE NOT THE WORLD, NEITHER THE THINGS THAT ARE IN THE WORLD. IF ANY MANE6 LOVE THE WORLD, THE LOVE OF THE FATHER IS NOT IN HIM.M# 16 FOR ALL THAT IS IN THE WORLD, THE LUST OF THE FLESH, AND THE LUST OF THERH EYES, AND THE PRIDE OF LIFE, IS NOT OF THE FATHER, BUT IS OF THE WORLD.L# 17 AND THE WORLD PASSETH AWAY, AND THE LUST THEREOF: BUT HE THAT DOETH THE WILL OF GOD ABIDETH FOR EVER.D# 18 LITTLE CHILDREN, IT IS THE LAST TIME: AND AS YE HAVE HEARD THATL ANTICHRIST SHALL COME, EVEN NOW ARE THERE MANY ANTICHRISTS; WHEREBY WE KNOW THAT IT IS THE LAST TIME.L# 19 THEY WENT OUT FROM US, BUT THEY WERE NOT OF US; FOR IF THEY HAD BEEN OFM US, THEY WOULD NO DOUBT HAVE CONTINUED WITH US: BUT THEY WENT OUT, THAT THEYE5 MIGHT BE MADE MANIFEST THAT THEY WERE NOT ALL OF US.OF# 20 BUT YE HAVE AN UNCTION FROM THE HOLY ONE, AND YE KNOW ALL THINGS.K# 21 I HAVE NOT WRITTEN UNTO YOU BECAUSE YE KNOW NOT THE TRUTH, BUT BECAUSEI- YE KNOW IT, AND THAT NO LIE IS OF THE TRUTH.TF# 22 WHO IS A LIAR BUT HE THAT DENIETH THAT JESUS IS THE CHRIST? HE IS1 ANTICHRIST, THAT DENIETH THE FATHER AND THE SON.OE# 23 WHOSOEVER DENIETH THE SON, THE SAME HATH NOT THE FATHER: HE THAT , ACKNOWLEDGETH THE SON HATH THE FATHER ALSO.M# 24 LET THAT THEREFORE ABIDE IN YOU, WHICH YE HAVE HEARD FROM THE BEGINNING.BL IF THAT WHICH Y00]GTG<%X>%+%O-%TADATADATAE HAVE HEARD FROM THE BEGINNING SHALL REMAIN IN YOU, YE ALSO. SHALL CONTINUE IN THE SON, AND IN THE FATHER.I# 25 AND THIS IS THE PROMISE THAT HE HATH PROMISED US, EVEN ETERNAL LIFE.IJ# 26 THESE THINGS HAVE I WRITTEN UNTO YOU CONCERNING THEM THAT SEDUCE YOU.K# 27 BUT THE ANOINTING WHICH YE HAVE RECEIVED OF HIM ABIDETH IN YOU, AND YEEK NEED NOT THAT ANY MAN TEACH YOU: BUT AS THE SAME ANOINTING TEACHETH YOU OFL ALL THINGS, AND IS TRUTH, AND IS NO LIE, AND EVEN AS IT HATH TAUGHT YOU, YE SHALL ABIDE IN HIM.K# 28 AND NOW, LITTLE CHILDREN, ABIDE IN HIM; THAT, WHEN HE SHALL APPEAR, WETB MAY HAVE CONFIDENCE, AND NOT BE ASHAMED BEFORE HIM AT HIS COMING.G# 29 IF YE KNOW THAT HE IS RIGHTEOUS, YE KNOW THAT EVERY ONE THAT DOETH  RIGHTEOUSNESS IS BORN OF HIM. = CHAPTER 3 I# 1 BEHOLD, WHAT MANNER OF LOVE THE FATHER HATH BESTOWED UPON US, THAT WE N SHOULD BE CALLED THE SONS OF GOD: THEREFORE THE WORLD KNOWETH US NOT, BECAUSE IT KNEW HIM NOT.AK# 2 BELOVED, NOW ARE WE THE SONS OF GOD, AND IT DOTH NOT YET APPEAR WHAT WEAL SHALL BE: BUT WE KNOW THAT, WHEN HE SHALL APPEAR, WE SHALL BE LIKE HIM; FOR WE SHALL SEE HIM AS HE IS.HM# 3 AND EVERY MAN THAT HATH THIS HOPE IN HIM PURIFIETH HIMSELF, EVEN AS HE ISH PURE.G# 4 WHOSOEVER COMMITTETH SIN TRANSGRESSETH ALSO THE LAW: FOR SIN IS THED TRANSGRESSION OF THE LAW.K# 5 AND YE KNOW THAT HE WAS MANIFESTED TO TAKE AWAY OUR SINS; AND IN HIM ISE NO SIN.I# 6 WHOSOEVER ABIDETH IN HIM SINNETH NOT: WHOSOEVER SINNETH HATH NOT SEENH HIM, NEITHER KNOWN HIM.K# 7 LITTLE CHILDREN, LET NO MAN DECEIVE YOU: HE THAT DOETH RIGHTEOUSNESS ISW$ RIGHTEOUS, EVEN AS HE IS RIGHTEOUS.J# 8 HE THAT COMMITTETH SIN IS OF THE DEVIL; FOR THE DEVIL SINNETH FROM THEI BEGINNING. FOR THIS PURPOSE THE SON OF GOD WAS MANIFESTED, THAT HE MIGHTS DESTROY THE WORKS OF THE DEVIL.K# 9 WHOSOEVER IS BORN OF GOD DOTH NOT COMMIT SIN; FOR HIS SEED REMAINETH IN 3 HIM: AND HE CANNOT SIN, BECAUSE HE IS BORN OF GOD. M# 10 IN THIS THE CHILDREN OF GOD ARE MANIFEST, AND THE CHILDREN OF THE DEVIL:L WHOSOEVER DOETH NOT RIGHTEOUSNESS IS NOT OF GOD, NEITHER HE THAT LOVETH NOT HIS BROTHER.NM# 11 FOR THIS IS THE MESSAGE THAT YE HEARD FROM THE BEGINNING, THAT WE SHOULD  LOVE ONE ANOTHER.G# 12 NOT AS CAIN, WHO WAS OF THAT WICKED ONE, AND SLEW HIS BROTHER. ANDI WHEREFORE SLEW HE HIM? BECAUSE HIS OWN WORKS WERE EVIL, AND HIS BROTHERSM RIGHTEOUS.I4# 13 MARVEL NOT, MY BRETHREN, IF THE WORLD HATE YOU.J# 14 WE KNOW THAT WE HAVE PASSED FROM DEATH UNTO LIFE, BECAUSE WE LOVE THE; BRETHREN. HE THAT LOVETH NOT HIS BROTHER ABIDETH IN DEATH.IM# 15 WHOSOEVER HATETH HIS BROTHER IS A MURDERER: AND YE KNOW THAT NO MURDERERM" HATH ETERNAL LIFE ABIDING IN HIM.J# 16 HEREBY PERCEIVE WE THE LOVE OF GOD, BECAUSE HE LAID DOWN HIS LIFE FOR9 US: AND WE OUGHT TO LAY DOWN OUR LIVES FOR THE BRETHREN.HJ# 17 BUT WHOSO HATH THIS WORLDS GOOD, AND SEETH HIS BROTHER HAVE NEED, ANDL SHUTTETH UP HIS BOWELS OF COMPASSION FROM HIM, HOW DWELLETH THE LOVE OF GOD IN HIM?K# 18 MY LITTLE CHILDREN, LET US NOT LOVE IN WORD, NEITHER IN TONGUE; BUT IN  DEED AND IN TRUTH. M# 19 AND HEREBY WE KNOW THAT WE ARE OF THE TRUTH, AND SHALL ASSURE OUR HEARTSH BEFORE HIM.L# 20 FOR IF OUR HEART CONDEMN US, GOD IS GREATER THAN OUR HEART, AND KNOWETH ALL THINGS.I# 21 BELOVED, IF OUR HEART CONDEMN US NOT, THEN HAVE WE CONFIDENCE TOWARDO GOD. B# 22 AND WHATSOEVER WE ASK, WE RECEIVE OF HIM, BECAUSE WE KEEP HISB COMMANDMENTS, AND DO THOSE THINGS THAT ARE PLEASING IN HIS SIGHT.K# 23 AND THIS IS HIS COMMANDMENT, THAT WE SHOULD BELIEVE ON THE NAME OF HISBC SON JESUS CHRIST, AND LOVE ONE ANOTHER, AS HE GAVE US COMMANDMENT.TM# 24 AND HE THAT KEEPETH HIS COMMANDMENTS DWELLETH IN HIM, AND HE IN HIM. ANDDL HEREBY WE KNOW THAT HE ABIDETH IN US, BY THE SPIRIT WHICH HE HATH GIVEN US. = CHAPTER 4 N# 1 BELOVED, BELIEVE NOT EVERY SPIRIT, BUT TRY THE SPIRITS WHETHER THEY ARE OF> GOD: BECAUSE MANY FALSE PROPHETS ARE GONE OUT INTO THE WORLD.M# 2 HEREBY KNOW YE THE SPIRIT OF GOD: EVERY SPIRIT THAT CONFESSETH THAT JESUSE' CHRIST IS COME IN THE FLESH IS OF GOD: 00eGGF5%T6%! !I# 3 AND EVERY SPIRIT THAT CONFESSETH NOT THAT JESUS CHRIST IS COME IN THEL FLESH IS NOT OF GOD: AND THIS IS THAT SPIRIT OF ANTICHRIST, WHEREOF YE HAVED HEARD THAT IT SHOULD COME; AND EVEN NOW ALREADY IS IT IN THE WORLD.K# 4 YE ARE OF GOD, LITTLE CHILDREN, AND HAVE OVERCOME THEM: BECAUSE GREATERI4 IS HE THAT IS IN YOU, THAN HE THAT IS IN THE WORLD.K# 5 THEY ARE OF THE WORLD: THEREFORE SPEAK THEY OF THE WORLD, AND THE WORLDR HEARETH THEM.H# 6 WE ARE OF GOD: HE THAT KNOWETH GOD HEARETH US; HE THAT IS NOT OF GODM HEARETH NOT US. HEREBY KNOW WE THE SPIRIT OF TRUTH, AND THE SPIRIT OF ERROR. L# 7 BELOVED, LET US LOVE ONE ANOTHER: FOR LOVE IS OF GOD; AND EVERY ONE THAT( LOVETH IS BORN OF GOD, AND KNOWETH GOD.8# 8 HE THAT LOVETH NOT KNOWETH NOT GOD; FOR GOD IS LOVE.K# 9 IN THIS WAS MANIFESTED THE LOVE OF GOD TOWARD US, BECAUSE THAT GOD SENTHF HIS ONLY BEGOTTEN SON INTO THE WORLD, THAT WE MIGHT LIVE THROUGH HIM.J# 10 HEREIN IS LOVE, NOT THAT WE LOVED GOD, BUT THAT HE LOVED US, AND SENT- HIS SON TO BE THE PROPITIATION FOR OUR SINS.HD# 11 BELOVED, IF GOD SO LOVED US, WE OUGHT ALSO TO LOVE ONE ANOTHER.K# 12 NO MAN HATH SEEN GOD AT ANY TIME. IF WE LOVE ONE ANOTHER, GOD DWELLETH ( IN US, AND HIS LOVE IS PERFECTED IN US.M# 13 HEREBY KNOW WE THAT WE DWELL IN HIM, AND HE IN US, BECAUSE HE HATH GIVENE US OF HIS SPIRIT.K# 14 AND WE HAVE SEEN AND DO TESTIFY THAT THE FATHER SENT THE SON TO BE THEG SAVIOUR OF THE WORLD.J# 15 WHOSOEVER SHALL CONFESS THAT JESUS IS THE SON OF GOD, GOD DWELLETH IN HIM, AND HE IN GOD.H# 16 AND WE HAVE KNOWN AND BELIEVED THE LOVE THAT GOD HATH TO US. GOD ISD LOVE; AND HE THAT DWELLETH IN LOVE DWELLETH IN GOD, AND GOD IN HIM.M# 17 HEREIN IS OUR LOVE MADE PERFECT, THAT WE MAY HAVE BOLDNESS IN THE DAY OFB5 JUDGMENT: BECAUSE AS HE IS, SO ARE WE IN THIS WORLD.EI# 18 THERE IS NO FEAR IN LOVE; BUT PERFECT LOVE CASTETH OUT FEAR: BECAUSE @ FEAR HATH TORMENT. HE THAT FEARETH IS NOT MADE PERFECT IN LOVE.,# 19 WE LOVE HIM, BECAUSE HE FIRST LOVED US.K# 20 IF A MAN SAY, I LOVE GOD, AND HATETH HIS BROTHER, HE IS A LIAR: FOR HEEK THAT LOVETH NOT HIS BROTHER WHOM HE HATH SEEN, HOW CAN HE LOVE GOD WHOM HE  HATH NOT SEEN?AK# 21 AND THIS COMMANDMENT HAVE WE FROM HIM, THAT HE WHO LOVETH GOD LOVE HISS BROTHER ALSO. = CHAPTER 5 N# 1 WHOSOEVER BELIEVETH THAT JESUS IS THE CHRIST IS BORN OF GOD: AND EVERY ONED THAT LOVETH HIM THAT BEGAT LOVETH HIM ALSO THAT IS BEGOTTEN OF HIM.K# 2 BY THIS WE KNOW THAT WE LOVE THE CHILDREN OF GOD, WHEN WE LOVE GOD, ANDU KEEP HIS COMMANDMENTS.LG# 3 FOR THIS IS THE LOVE OF GOD, THAT WE KEEP HIS COMMANDMENTS: AND HISH COMMANDMENTS ARE NOT GRIEVOUS. G# 4 FOR WHATSOEVER IS BORN OF GOD OVERCOMETH THE WORLD: AND THIS IS THEE3 VICTORY THAT OVERCOMETH THE WORLD, EVEN OUR FAITH.HL# 5 WHO IS HE THAT OVERCOMETH THE WORLD, BUT HE THAT BELIEVETH THAT JESUS IS THE SON OF GOD?L# 6 THIS IS HE THAT CAME BY WATER AND BLOOD, EVEN JESUS CHRIST; NOT BY WATERI ONLY, BUT BY WATER AND BLOOD. AND IT IS THE SPIRIT THAT BEARETH WITNESS,U BECAUSE THE SPIRIT IS TRUTH. M# 7 FOR THERE ARE THREE THAT BEAR RECORD IN HEAVEN, THE FATHER, THE WORD, ANDE) THE HOLY GHOST: AND THESE THREE ARE ONE.IG# 8 AND THERE ARE THREE THAT BEAR WITNESS IN EARTH, THE SPIRIT, AND THEO4 WATER, AND THE BLOOD: AND THESE THREE AGREE IN ONE.M# 9 IF WE RECEIVE THE WITNESS OF MEN, THE WITNESS OF GOD IS GREATER: FOR THIS : IS THE WITNESS OF GOD WHICH HE HATH TESTIFIED OF HIS SON.M# 10 HE THAT BELIEVETH ON THE SON OF GOD HATH THE WITNESS IN HIMSELF: HE THATWL BELIEVETH NOT GOD HATH MADE HIM A LIAR; BECAUSE HE BELIEVETH NOT THE RECORD THAT GOD GAVE OF HIS SON.M# 11 AND THIS IS THE RECORD, THAT GOD HATH GIVEN TO US ETERNAL LIFE, AND THISH LIFE IS IN HIS SON.M# 12 HE THAT HATH THE SON HATH LIFE; AND HE THAT HATH NOT THE SON OF GOD HATH NOT LIFE.M# 13 THESE THINGS HAVE I WRITTEN UNTO YOU THAT BELIEVE ON THE NAME OF THE SONHL OF GOD; THAT YE MAY KNOW THAT YE HAVE ETERNAL LIFE, AND THAT YE MAY BELIEVE ON THE NAME OF THE SON OF GOD. H# 14 AND THIS IS THE CONFIDENCE THAT WE HAVE IN HIM, THAT, IF 00mGoGsG>%+%O-%TADATADATAWE ASK ANY, THING ACCORDING TO HIS WILL, HE HEARETH US:L# 15 AND IF WE KNOW THAT HE HEAR US, WHATSOEVER WE ASK, WE KNOW THAT WE HAVE& THE PETITIONS THAT WE DESIRED OF HIM.K# 16 IF ANY MAN SEE HIS BROTHER SIN A SIN WHICH IS NOT UNTO DEATH, HE SHALLLM ASK, AND HE SHALL GIVE HIM LIFE FOR THEM THAT SIN NOT UNTO DEATH. THERE IS A 8 SIN UNTO DEATH: I DO NOT SAY THAT HE SHALL PRAY FOR IT.C# 17 ALL UNRIGHTEOUSNESS IS SIN: AND THERE IS A SIN NOT UNTO DEATH.TF# 18 WE KNOW THAT WHOSOEVER IS BORN OF GOD SINNETH NOT; BUT HE THAT ISG BEGOTTEN OF GOD KEEPETH HIMSELF, AND THAT WICKED ONE TOUCHETH HIM NOT.,M# 19 AND WE KNOW THAT WE ARE OF GOD, AND THE WHOLE WORLD LIETH IN WICKEDNESS..B# 20 AND WE KNOW THAT THE SON OF GOD IS COME, AND HATH GIVEN US ANL UNDERSTANDING, THAT WE MAY KNOW HIM THAT IS TRUE, AND WE ARE IN HIM THAT ISL TRUE, EVEN IN HIS SON JESUS CHRIST. THIS IS THE TRUE GOD, AND ETERNAL LIFE.7# 21 LITTLE CHILDREN, KEEP YOURSELVES FROM IDOLS. AMEN.ATH.TF# 18 WE KNOW THAT WHOSOEVER IS BORN OF GOD SINNETH* BOOK63 2JOHN = CHAPTER 1 M# 1 THE ELDER UNTO THE ELECT LADY AND HER CHILDREN, WHOM I LOVE IN THE TRUTH;N= AND NOT I ONLY, BUT ALSO ALL THEY THAT HAVE KNOWN THE TRUTH;.M# 2 FOR THE TRUTHS SAKE, WHICH DWELLETH IN US, AND SHALL BE WITH US FOR EVER.NJ# 3 GRACE BE WITH YOU, MERCY, AND PEACE, FROM GOD THE FATHER, AND FROM THE= LORD JESUS CHRIST, THE SON OF THE FATHER, IN TRUTH AND LOVE.LK# 4 I REJOICED GREATLY THAT I FOUND OF THY CHILDREN WALKING IN TRUTH, AS WEN- HAVE RECEIVED A COMMANDMENT FROM THE FATHER.KI# 5 AND NOW I BESEECH THEE, LADY, NOT AS THOUGH I WROTE A NEW COMMANDMENT F UNTO THEE, BUT THAT WHICH WE HAD FROM THE BEGINNING, THAT WE LOVE ONE ANOTHER.TF# 6 AND THIS IS LOVE, THAT WE WALK AFTER HIS COMMANDMENTS. THIS IS THEN COMMANDMENT, THAT, AS YE HAVE HEARD FROM THE BEGINNING, YE SHOULD WALK IN IT.M# 7 FOR MANY DECEIVERS ARE ENTERED INTO THE WORLD, WHO CONFESS NOT THAT JESUS C CHRIST IS COME IN THE FLESH. THIS IS A DECEIVER AND AN ANTICHRIST.WL# 8 LOOK TO YOURSELVES, THAT WE LOSE NOT THOSE THINGS WHICH WE HAVE WROUGHT,# BUT THAT WE RECEIVE A FULL REWARD.OL# 9 WHOSOEVER TRANSGRESSETH, AND ABIDETH NOT IN THE DOCTRINE OF CHRIST, HATHL NOT GOD. HE THAT ABIDETH IN THE DOCTRINE OF CHRIST, HE HATH BOTH THE FATHER AND THE SON.MM# 10 IF THERE COME ANY UNTO YOU, AND BRING NOT THIS DOCTRINE, RECEIVE HIM NOT , INTO YOUR HOUSE, NEITHER BID HIM GOD SPEED:E# 11 FOR HE THAT BIDDETH HIM GOD SPEED IS PARTAKER OF HIS EVIL DEEDS.EK# 12 HAVING MANY THINGS TO WRITE UNTO YOU, I WOULD NOT WRITE WITH PAPER ANDIL INK: BUT I TRUST TO COME UNTO YOU, AND SPEAK FACE TO FACE, THAT OUR JOY MAY BE FULL.S7# 13 THE CHILDREN OF THY ELECT SISTER GREET THEE. AMEN.T GOD. HE THAT ABIDETH IN THE DOCTRINE OF CHRIST, HE HATH BOTH THE FATHER AND THE SON.MM# 10 IF THERE COME ANY UNTO YOU, AND BRING NOT THIS DOCTRINE, RECEIVE HIM NOT , INTO YOUR HOUSE, NEITHER BID HIM GOD SPEED:E# 11 FOR HE THAT BIDDETH HIM GOD SPEED IS PARTAKER OF HIS EVIL DEEDS.EK# 12 HAVING MANY THINGS TO WRITE UNTO YOU, I WOULD NOT WRITE WITH * BOOK64 3JOHN = CHAPTER 1 C# 1 THE ELDER UNTO THE WELLBELOVED GAIUS, WHOM I LOVE IN THE TRUTH.SG# 2 BELOVED, I WISH ABOVE ALL THINGS THAT THOU MAYEST PROSPER AND BE INB% HEALTH, EVEN AS THY SOUL PROSPERETH.HM# 3 FOR I REJOICED GREATLY, WHEN THE BRETHREN CAME AND TESTIFIED OF THE TRUTHT4 THAT IS IN THEE, EVEN AS THOU WALKEST IN THE TRUTH.F# 4 I HAVE NO GREATER JOY THAN TO HEAR THAT MY CHILDREN WALK IN TRUTH.M# 5 BELOVED, THOU DOEST FAITHFULLY WHATSOEVER THOU DOEST TO THE BRETHREN, ANDT TO STRANGERS;K# 6 WHICH HAVE BORNE WITNESS OF THY CHARITY BEFORE THE CHURCH: WHOM IF THOULG BRING FORWARD ON THEIR JOURNEY AFTER A GODLY SORT, THOU SHALT DO WELL: J# 7 BECAUSE THAT FOR HIS NAMES SAKE THEY WENT FORTH, TAKING NOTHING OF THE GENTILES.M# 8 WE THEREFORE OUGHT TO RECEIVE SUCH, THAT WE MIGHT BE FELLOWHELPERS TO THEH TRUTH.TC# 9 I WROTE UNTO THE CHURCH: BUT DIOTREPHES, WHO LOVETH TO HAVE THEE* PREEMINENCE AMONG THEM, RECEIVETH US NOT.L# 10 WHEREFORE, IF I COME, I WILL REMEMBER HIS DEEDS WHICH HE 00uGwGF5%T6%! !DOETH, PRATINGL AGAINST US WITH MALICIOUS WORDS: AND NOT CONTENT THEREWITH, NEITHER DOTH HEJ HIMSELF RECEIVE THE BRETHREN, AND FORBIDDETH THEM THAT WOULD, AND CASTETH THEM OUT OF THE CHURCH.L# 11 BELOVED, FOLLOW NOT THAT WHICH IS EVIL, BUT THAT WHICH IS GOOD. HE THAT@ DOETH GOOD IS OF GOD: BUT HE THAT DOETH EVIL HATH NOT SEEN GOD.M# 12 DEMETRIUS HATH GOOD REPORT OF ALL MEN, AND OF THE TRUTH ITSELF: YEA, ANDE: WE ALSO BEAR RECORD; AND YE KNOW THAT OUR RECORD IS TRUE.K# 13 I HAD MANY THINGS TO WRITE, BUT I WILL NOT WITH INK AND PEN WRITE UNTOW THEE:K# 14 BUT I TRUST I SHALL SHORTLY SEE THEE, AND WE SHALL SPEAK FACE TO FACE.FF PEACE BE TO THEE. OUR FRIENDS SALUTE THEE. GREET THE FRIENDS BY NAME.ELOVED, FOLLOW NOT THAT WHICH IS EVIL, BUT THAT WHICH IS GOOD. HE THAT@ DOETH GOOD IS OF GOD: BUT HE THAT DOETH EVIL HATH NOT SEEN GOD.M# 12 DEMETRIUS HATH GOOD REPORT OF ALL MEN, AND OF THE TRUTH ITSELF: YEA, ANDE: WE ALSO BEAR RECORD; AND YE KNOW THAT OUR RECORD IS TRUE.K# 13 I HAD MANY THINGS TO WRITE, * BOOK65 JUDE = CHAPTER 1 M# 1 JUDE, THE SERVANT OF JESUS CHRIST, AND BROTHER OF JAMES, TO THEM THAT ARE I SANCTIFIED BY GOD THE FATHER, AND PRESERVED IN JESUS CHRIST, AND CALLED: 7# 2 MERCY UNTO YOU, AND PEACE, AND LOVE, BE MULTIPLIED.TF# 3 BELOVED, WHEN I GAVE ALL DILIGENCE TO WRITE UNTO YOU OF THE COMMONK SALVATION, IT WAS NEEDFUL FOR ME TO WRITE UNTO YOU, AND EXHORT YOU THAT YEEI SHOULD EARNESTLY CONTEND FOR THE FAITH WHICH WAS ONCE DELIVERED UNTO THE  SAINTS.G# 4 FOR THERE ARE CERTAIN MEN CREPT IN UNAWARES, WHO WERE BEFORE OF OLD N ORDAINED TO THIS CONDEMNATION, UNGODLY MEN, TURNING THE GRACE OF OUR GOD INTOJ LASCIVIOUSNESS, AND DENYING THE ONLY LORD GOD, AND OUR LORD JESUS CHRIST.J# 5 I WILL THEREFORE PUT YOU IN REMEMBRANCE, THOUGH YE ONCE KNEW THIS, HOWK THAT THE LORD, HAVING SAVED THE PEOPLE OUT OF THE LAND OF EGYPT, AFTERWARD " DESTROYED THEM THAT BELIEVED NOT.H# 6 AND THE ANGELS WHICH KEPT NOT THEIR FIRST ESTATE, BUT LEFT THEIR OWNK HABITATION, HE HATH RESERVED IN EVERLASTING CHAINS UNDER DARKNESS UNTO THE  JUDGMENT OF THE GREAT DAY.TI# 7 EVEN AS SODOM AND GOMORRHA, AND THE CITIES ABOUT THEM IN LIKE MANNER,UN GIVING THEMSELVES OVER TO FORNICATION, AND GOING AFTER STRANGE FLESH, ARE SET? FORTH FOR AN EXAMPLE, SUFFERING THE VENGEANCE OF ETERNAL FIRE.AK# 8 LIKEWISE ALSO THESE FILTHY DREAMERS DEFILE THE FLESH, DESPISE DOMINION,S AND SPEAK EVIL OF DIGNITIES.I# 9 YET MICHAEL THE ARCHANGEL, WHEN CONTENDING WITH THE DEVIL HE DISPUTEDHK ABOUT THE BODY OF MOSES, DURST NOT BRING AGAINST HIM A RAILING ACCUSATION,J BUT SAID, THE LORD REBUKE THEE.L# 10 BUT THESE SPEAK EVIL OF THOSE THINGS WHICH THEY KNOW NOT: BUT WHAT THEYJ KNOW NATURALLY, AS BRUTE BEASTS, IN THOSE THINGS THEY CORRUPT THEMSELVES.K# 11 WOE UNTO THEM! FOR THEY HAVE GONE IN THE WAY OF CAIN, AND RAN GREEDILYSN AFTER THE ERROR OF BALAAM FOR REWARD, AND PERISHED IN THE GAINSAYING OF CORE.I# 12 THESE ARE SPOTS IN YOUR FEASTS OF CHARITY, WHEN THEY FEAST WITH YOU, N FEEDING THEMSELVES WITHOUT FEAR: CLOUDS THEY ARE WITHOUT WATER, CARRIED ABOUTM OF WINDS; TREES WHOSE FRUIT WITHERETH, WITHOUT FRUIT, TWICE DEAD, PLUCKED UPE BY THE ROOTS;K# 13 RAGING WAVES OF THE SEA, FOAMING OUT THEIR OWN SHAME; WANDERING STARS, 8 TO WHOM IS RESERVED THE BLACKNESS OF DARKNESS FOR EVER.H# 14 AND ENOCH ALSO, THE SEVENTH FROM ADAM, PROPHESIED OF THESE, SAYING,: BEHOLD, THE LORD COMETH WITH TEN THOUSANDS OF HIS SAINTS,M# 15 TO EXECUTE JUDGMENT UPON ALL, AND TO CONVINCE ALL THAT ARE UNGODLY AMONGEN THEM OF ALL THEIR UNGODLY DEEDS WHICH THEY HAVE UNGODLY COMMITTED, AND OF ALLC THEIR HARD SPEECHES WHICH UNGODLY SINNERS HAVE SPOKEN AGAINST HIM.BI# 16 THESE ARE MURMURERS, COMPLAINERS, WALKING AFTER THEIR OWN LUSTS; ANDNM THEIR MOUTH SPEAKETH GREAT SWELLING WORDS, HAVING MENS PERSONS IN ADMIRATIONA BECAUSE OF ADVANTAGE.H# 17 BUT, BELOVED, REMEMBER YE THE WORDS WHICH WERE SPOKEN BEFORE OF THE# APOSTLES OF OUR LORD JESUS CHRIST; I# 18 HOW THAT THEY TOLD YOU THERE SHOULD BE MOCKERS IN THE LAST TIME, WHOE+ SHOULD WALK AFTER THEIR OWN UNGODLY00}GGsG>%+%O-%TADATADATA LUSTS.UK# 19 THESE BE THEY WHO SEPARATE THEMSELVES, SENSUAL, HAVING NOT THE SPIRIT. M# 20 BUT YE, BELOVED, BUILDING UP YOURSELVES ON YOUR MOST HOLY FAITH, PRAYINGR IN THE HOLY GHOST,EJ# 21 KEEP YOURSELVES IN THE LOVE OF GOD, LOOKING FOR THE MERCY OF OUR LORD JESUS CHRIST UNTO ETERNAL LIFE.6# 22 AND OF SOME HAVE COMPASSION, MAKING A DIFFERENCE:M# 23 AND OTHERS SAVE WITH FEAR, PULLING THEM OUT OF THE FIRE; HATING EVEN THE  GARMENT SPOTTED BY THE FLESH.K# 24 NOW UNTO HIM THAT IS ABLE TO KEEP YOU FROM FALLING, AND TO PRESENT YOUO? FAULTLESS BEFORE THE PRESENCE OF HIS GLORY WITH EXCEEDING JOY,YI# 25 TO THE ONLY WISE GOD OUR SAVIOUR, BE GLORY AND MAJESTY, DOMINION ANDH POWER, BOTH NOW AND EVER. AMEN.ES IN THE LOVE OF GOD, LOOKING FOR THE MERCY OF OUR LORD JESUS CHRIST UNTO ETERNAL LIFE.6# 22 AND OF SOME HAVE COMPASSION, MAKING A DIFFERENCE:M# 23 AND OTHERS SAVE WITH FEAR, PULLING THEM OUT OF THE FIRE; HATING EVEN THE  GARMENT SPOTTED BY THE FLESH.K# 24 NOW UNTO HIM THAT IS ABLE TO KEEP YOU F* BOOK66 REVELATION = CHAPTER 1 M# 1 THE REVELATION OF JESUS CHRIST, WHICH GOD GAVE UNTO HIM, TO SHEW UNTO HISN SERVANTS THINGS WHICH MUST SHORTLY COME TO PASS; AND HE SENT AND SIGNIFIED IT$ BY HIS ANGEL UNTO HIS SERVANT JOHN:M# 2 WHO BARE RECORD OF THE WORD OF GOD, AND OF THE TESTIMONY OF JESUS CHRIST, AND OF ALL THINGS THAT HE SAW.D# 3 BLESSED IS HE THAT READETH, AND THEY THAT HEAR THE WORDS OF THISN PROPHECY, AND KEEP THOSE THINGS WHICH ARE WRITTEN THEREIN: FOR THE TIME IS AT HAND.H# 4 JOHN TO THE SEVEN CHURCHES WHICH ARE IN ASIA: GRACE BE UNTO YOU, ANDL PEACE, FROM HIM WHICH IS, AND WHICH WAS, AND WHICH IS TO COME; AND FROM THE+ SEVEN SPIRITS WHICH ARE BEFORE HIS THRONE;EE# 5 AND FROM JESUS CHRIST, WHO IS THE FAITHFUL WITNESS, AND THE FIRSTWN BEGOTTEN OF THE DEAD, AND THE PRINCE OF THE KINGS OF THE EARTH. UNTO HIM THAT8 LOVED US, AND WASHED US FROM OUR SINS IN HIS OWN BLOOD,I# 6 AND HATH MADE US KINGS AND PRIESTS UNTO GOD AND HIS FATHER; TO HIM BEN, GLORY AND DOMINION FOR EVER AND EVER. AMEN.M# 7 BEHOLD, HE COMETH WITH CLOUDS; AND EVERY EYE SHALL SEE HIM, AND THEY ALSOHL WHICH PIERCED HIM: AND ALL KINDREDS OF THE EARTH SHALL WAIL BECAUSE OF HIM. EVEN SO, AMEN.OM# 8 I AM ALPHA AND OMEGA, THE BEGINNING AND THE ENDING, SAITH THE LORD, WHICHB7 IS, AND WHICH WAS, AND WHICH IS TO COME, THE ALMIGHTY.AJ# 9 I JOHN, WHO ALSO AM YOUR BROTHER, AND COMPANION IN TRIBULATION, AND INI THE KINGDOM AND PATIENCE OF JESUS CHRIST, WAS IN THE ISLE THAT IS CALLEDND PATMOS, FOR THE WORD OF GOD, AND FOR THE TESTIMONY OF JESUS CHRIST.M# 10 I WAS IN THE SPIRIT ON THE LORDS DAY, AND HEARD BEHIND ME A GREAT VOICE,N AS OF A TRUMPET,HI# 11 SAYING, I AM ALPHA AND OMEGA, THE FIRST AND THE LAST: AND, WHAT THOUEI SEEST, WRITE IN A BOOK, AND SEND IT UNTO THE SEVEN CHURCHES WHICH ARE INSK ASIA; UNTO EPHESUS, AND UNTO SMYRNA, AND UNTO PERGAMOS, AND UNTO THYATIRA, ; AND UNTO SARDIS, AND UNTO PHILADELPHIA, AND UNTO LAODICEA.CJ# 12 AND I TURNED TO SEE THE VOICE THAT SPAKE WITH ME. AND BEING TURNED, I SAW SEVEN GOLDEN CANDLESTICKS;SM# 13 AND IN THE MIDST OF THE SEVEN CANDLESTICKS ONE LIKE UNTO THE SON OF MAN,EH CLOTHED WITH A GARMENT DOWN TO THE FOOT, AND GIRT ABOUT THE PAPS WITH A GOLDEN GIRDLE.AK# 14 HIS HEAD AND HIS HAIRS WERE WHITE LIKE WOOL, AS WHITE AS SNOW; AND HISW EYES WERE AS A FLAME OF FIRE;K# 15 AND HIS FEET LIKE UNTO FINE BRASS, AS IF THEY BURNED IN A FURNACE; AND ' HIS VOICE AS THE SOUND OF MANY WATERS.CJ# 16 AND HE HAD IN HIS RIGHT HAND SEVEN STARS: AND OUT OF HIS MOUTH WENT AH SHARP TWOEDGED SWORD: AND HIS COUNTENANCE WAS AS THE SUN SHINETH IN HIS STRENGTH.J# 17 AND WHEN I SAW HIM, I FELL AT HIS FEET AS DEAD. AND HE LAID HIS RIGHTE HAND UPON ME, SAYING UNTO ME, FEAR NOT; I AM THE FIRST AND THE LAST:RM# 18 I AM HE THAT LIVETH, AND WAS DEAD; AND, BEHOLD, I AM ALIVE FOR EVERMORE,R. AMEN; AND HAVE THE KEYS OF HELL AND OF DEATH.M# 19 WRITE THE THINGS WHICH THOU HAST SEEN, AND THE THINGS WHICH ARE, AND THE6! THINGS WHICH SHALL BE HEREAFTER; K# 20 THE MYSTERY OF THE SEVEN STARS WHIC00GwGF5%T6%! !H THOU SAWEST IN MY RIGHT HAND, ANDEK THE SEVEN GOLDEN CANDLESTICKS. THE SEVEN STARS ARE THE ANGELS OF THE SEVENTE CHURCHES: AND THE SEVEN CANDLESTICKS WHICH THOU SAWEST ARE THE SEVEN, CHURCHES. = CHAPTER 2 M# 1 UNTO THE ANGEL OF THE CHURCH OF EPHESUS WRITE; THESE THINGS SAITH HE THAT K HOLDETH THE SEVEN STARS IN HIS RIGHT HAND, WHO WALKETH IN THE MIDST OF THEE SEVEN GOLDEN CANDLESTICKS; J# 2 I KNOW THY WORKS, AND THY LABOUR, AND THY PATIENCE, AND HOW THOU CANSTJ NOT BEAR THEM WHICH ARE EVIL: AND THOU HAST TRIED THEM WHICH SAY THEY ARE2 APOSTLES, AND ARE NOT, AND HAST FOUND THEM LIARS:K# 3 AND HAST BORNE, AND HAST PATIENCE, AND FOR MY NAMES SAKE HAST LABOURED,S AND HAST NOT FAINTED.I# 4 NEVERTHELESS I HAVE SOMEWHAT AGAINST THEE, BECAUSE THOU HAST LEFT THYE FIRST LOVE.J# 5 REMEMBER THEREFORE FROM WHENCE THOU ART FALLEN, AND REPENT, AND DO THEH FIRST WORKS; OR ELSE I WILL COME UNTO THEE QUICKLY, AND WILL REMOVE THY2 CANDLESTICK OUT OF HIS PLACE, EXCEPT THOU REPENT.M# 6 BUT THIS THOU HAST, THAT THOU HATEST THE DEEDS OF THE NICOLAITANES, WHICHA I ALSO HATE. D# 7 HE THAT HATH AN EAR, LET HIM HEAR WHAT THE SPIRIT SAITH UNTO THEI CHURCHES; TO HIM THAT OVERCOMETH WILL I GIVE TO EAT OF THE TREE OF LIFE,H. WHICH IS IN THE MIDST OF THE PARADISE OF GOD.L# 8 AND UNTO THE ANGEL OF THE CHURCH IN SMYRNA WRITE; THESE THINGS SAITH THE2 FIRST AND THE LAST, WHICH WAS DEAD, AND IS ALIVE;M# 9 I KNOW THY WORKS, AND TRIBULATION, AND POVERTY, (BUT THOU ART RICH) AND I M KNOW THE BLASPHEMY OF THEM WHICH SAY THEY ARE JEWS, AND ARE NOT, BUT ARE THET SYNAGOGUE OF SATAN.I# 10 FEAR NONE OF THOSE THINGS WHICH THOU SHALT SUFFER: BEHOLD, THE DEVILEL SHALL CAST SOME OF YOU INTO PRISON, THAT YE MAY BE TRIED; AND YE SHALL HAVEJ TRIBULATION TEN DAYS: BE THOU FAITHFUL UNTO DEATH, AND I WILL GIVE THEE A CROWN OF LIFE.AE# 11 HE THAT HATH AN EAR, LET HIM HEAR WHAT THE SPIRIT SAITH UNTO THEDD CHURCHES; HE THAT OVERCOMETH SHALL NOT BE HURT OF THE SECOND DEATH.L# 12 AND TO THE ANGEL OF THE CHURCH IN PERGAMOS WRITE; THESE THINGS SAITH HE+ WHICH HATH THE SHARP SWORD WITH TWO EDGES;J# 13 I KNOW THY WORKS, AND WHERE THOU DWELLEST, EVEN WHERE SATANS SEAT IS:K AND THOU HOLDEST FAST MY NAME, AND HAST NOT DENIED MY FAITH, EVEN IN THOSEL DAYS WHEREIN ANTIPAS WAS MY FAITHFUL MARTYR, WHO WAS SLAIN AMONG YOU, WHERE SATAN DWELLETH.L# 14 BUT I HAVE A FEW THINGS AGAINST THEE, BECAUSE THOU HAST THERE THEM THATN HOLD THE DOCTRINE OF BALAAM, WHO TAUGHT BALAC TO CAST A STUMBLINGBLOCK BEFOREK THE CHILDREN OF ISRAEL, TO EAT THINGS SACRIFICED UNTO IDOLS, AND TO COMMITH FORNICATION.TM# 15 SO HAST THOU ALSO THEM THAT HOLD THE DOCTRINE OF THE NICOLAITANES, WHICHE THING I HATE.J# 16 REPENT; OR ELSE I WILL COME UNTO THEE QUICKLY, AND WILL FIGHT AGAINST! THEM WITH THE SWORD OF MY MOUTH.TE# 17 HE THAT HATH AN EAR, LET HIM HEAR WHAT THE SPIRIT SAITH UNTO THE M CHURCHES; TO HIM THAT OVERCOMETH WILL I GIVE TO EAT OF THE HIDDEN MANNA, ANDOK WILL GIVE HIM A WHITE STONE, AND IN THE STONE A NEW NAME WRITTEN, WHICH NOI) MAN KNOWETH SAVING HE THAT RECEIVETH IT. K# 18 AND UNTO THE ANGEL OF THE CHURCH IN THYATIRA WRITE; THESE THINGS SAITHTN THE SON OF GOD, WHO HATH HIS EYES LIKE UNTO A FLAME OF FIRE, AND HIS FEET ARE LIKE FINE BRASS;YM# 19 I KNOW THY WORKS, AND CHARITY, AND SERVICE, AND FAITH, AND THY PATIENCE, 7 AND THY WORKS; AND THE LAST TO BE MORE THAN THE FIRST.UM# 20 NOTWITHSTANDING I HAVE A FEW THINGS AGAINST THEE, BECAUSE THOU SUFFERESTLH THAT WOMAN JEZEBEL, WHICH CALLETH HERSELF A PROPHETESS, TO TEACH AND TOL SEDUCE MY SERVANTS TO COMMIT FORNICATION, AND TO EAT THINGS SACRIFICED UNTO IDOLS.YM# 21 AND I GAVE HER SPACE TO REPENT OF HER FORNICATION; AND SHE REPENTED NOT.AK# 22 BEHOLD, I WILL CAST HER INTO A BED, AND THEM THAT COMMIT ADULTERY WITHA? HER INTO GREAT TRIBULATION, EXCEPT THEY REPENT OF THEIR DEEDS.WM# 23 AND I WILL KILL HER CHILDREN WITH DEATH; AND ALL THE CHURCHES SHALL KNOWEN THAT I AM HE WHICH SEARCHETH THE REINS AND HEARTS: AND I WILL GIVE UNTO EVERY$ ONE OF YOU ACCORDING TO YOUR WORKS.K# 24 BUT UNTO YO00GGsG>%+%O-%TADATADATAU I SAY, AND UNTO THE REST IN THYATIRA, AS MANY AS HAVE NOTNN THIS DOCTRINE, AND WHICH HAVE NOT KNOWN THE DEPTHS OF SATAN, AS THEY SPEAK; I% WILL PUT UPON YOU NONE OTHER BURDEN.H:# 25 BUT THAT WHICH YE HAVE ALREADY HOLD FAST TILL I COME.M# 26 AND HE THAT OVERCOMETH, AND KEEPETH MY WORKS UNTO THE END, TO HIM WILL IH GIVE POWER OVER THE NATIONS: J# 27 AND HE SHALL RULE THEM WITH A ROD OF IRON; AS THE VESSELS OF A POTTERB SHALL THEY BE BROKEN TO SHIVERS: EVEN AS I RECEIVED OF MY FATHER.*# 28 AND I WILL GIVE HIM THE MORNING STAR.E# 29 HE THAT HATH AN EAR, LET HIM HEAR WHAT THE SPIRIT SAITH UNTO THEO CHURCHES. = CHAPTER 3 K# 1 AND UNTO THE ANGEL OF THE CHURCH IN SARDIS WRITE; THESE THINGS SAITH HEEK THAT HATH THE SEVEN SPIRITS OF GOD, AND THE SEVEN STARS; I KNOW THY WORKS,H6 THAT THOU HAST A NAME THAT THOU LIVEST, AND ART DEAD.J# 2 BE WATCHFUL, AND STRENGTHEN THE THINGS WHICH REMAIN, THAT ARE READY TO8 DIE: FOR I HAVE NOT FOUND THY WORKS PERFECT BEFORE GOD.K# 3 REMEMBER THEREFORE HOW THOU HAST RECEIVED AND HEARD, AND HOLD FAST, AND K REPENT. IF THEREFORE THOU SHALT NOT WATCH, I WILL COME ON THEE AS A THIEF, 9 AND THOU SHALT NOT KNOW WHAT HOUR I WILL COME UPON THEE.WE# 4 THOU HAST A FEW NAMES EVEN IN SARDIS WHICH HAVE NOT DEFILED THEIRTE GARMENTS; AND THEY SHALL WALK WITH ME IN WHITE: FOR THEY ARE WORTHY.VI# 5 HE THAT OVERCOMETH, THE SAME SHALL BE CLOTHED IN WHITE RAIMENT; AND I,K WILL NOT BLOT OUT HIS NAME OUT OF THE BOOK OF LIFE, BUT I WILL CONFESS HIS. NAME BEFORE MY FATHER, AND BEFORE HIS ANGELS.D# 6 HE THAT HATH AN EAR, LET HIM HEAR WHAT THE SPIRIT SAITH UNTO THE CHURCHES.L# 7 AND TO THE ANGEL OF THE CHURCH IN PHILADELPHIA WRITE; THESE THINGS SAITHI HE THAT IS HOLY, HE THAT IS TRUE, HE THAT HATH THE KEY OF DAVID, HE THATI@ OPENETH, AND NO MAN SHUTTETH; AND SHUTTETH, AND NO MAN OPENETH;M# 8 I KNOW THY WORKS: BEHOLD, I HAVE SET BEFORE THEE AN OPEN DOOR, AND NO MANNN CAN SHUT IT: FOR THOU HAST A LITTLE STRENGTH, AND HAST KEPT MY WORD, AND HAST NOT DENIED MY NAME.J# 9 BEHOLD, I WILL MAKE THEM OF THE SYNAGOGUE OF SATAN, WHICH SAY THEY AREL JEWS, AND ARE NOT, BUT DO LIE; BEHOLD, I WILL MAKE THEM TO COME AND WORSHIP5 BEFORE THY FEET, AND TO KNOW THAT I HAVE LOVED THEE.EJ# 10 BECAUSE THOU HAST KEPT THE WORD OF MY PATIENCE, I ALSO WILL KEEP THEEN FROM THE HOUR OF TEMPTATION, WHICH SHALL COME UPON ALL THE WORLD, TO TRY THEM THAT DWELL UPON THE EARTH.OM# 11 BEHOLD, I COME QUICKLY: HOLD THAT FAST WHICH THOU HAST, THAT NO MAN TAKE THY CROWN.TM# 12 HIM THAT OVERCOMETH WILL I MAKE A PILLAR IN THE TEMPLE OF MY GOD, AND HE L SHALL GO NO MORE OUT: AND I WILL WRITE UPON HIM THE NAME OF MY GOD, AND THEM NAME OF THE CITY OF MY GOD, WHICH IS NEW JERUSALEM, WHICH COMETH DOWN OUT OF0; HEAVEN FROM MY GOD: AND I WILL WRITE UPON HIM MY NEW NAME.KE# 13 HE THAT HATH AN EAR, LET HIM HEAR WHAT THE SPIRIT SAITH UNTO THEO CHURCHES.K# 14 AND UNTO THE ANGEL OF THE CHURCH OF THE LAODICEANS WRITE; THESE THINGSSM SAITH THE AMEN, THE FAITHFUL AND TRUE WITNESS, THE BEGINNING OF THE CREATIONL OF GOD;L# 15 I KNOW THY WORKS, THAT THOU ART NEITHER COLD NOR HOT: I WOULD THOU WERT COLD OR HOT.EM# 16 SO THEN BECAUSE THOU ART LUKEWARM, AND NEITHER COLD NOR HOT, I WILL SPUEW THEE OUT OF MY MOUTH.L# 17 BECAUSE THOU SAYEST, I AM RICH, AND INCREASED WITH GOODS, AND HAVE NEEDM OF NOTHING; AND KNOWEST NOT THAT THOU ART WRETCHED, AND MISERABLE, AND POOR,U AND BLIND, AND NAKED:L# 18 I COUNSEL THEE TO BUY OF ME GOLD TRIED IN THE FIRE, THAT THOU MAYEST BEL RICH; AND WHITE RAIMENT, THAT THOU MAYEST BE CLOTHED, AND THAT THE SHAME OFL THY NAKEDNESS DO NOT APPEAR; AND ANOINT THINE EYES WITH EYESALVE, THAT THOU MAYEST SEE.G# 19 AS MANY AS I LOVE, I REBUKE AND CHASTEN: BE ZEALOUS THEREFORE, ANDM REPENT.J# 20 BEHOLD, I STAND AT THE DOOR, AND KNOCK: IF ANY MAN HEAR MY VOICE, ANDM OPEN THE DOOR, I WILL COME IN TO HIM, AND WILL SUP WITH HIM, AND HE WITH ME.UM# 21 TO HIM THAT OVERCOMETH WILL I GRANT TO SIT WITH ME IN MY THRONE, EVEN ASR? I ALSO OVERCAME, AND AM SET DOWN WITH MY FATHER IN HIS THRONE.TE# 22 HE 00GwGF5%T6%! !THAT HATH AN EAR, LET HIM HEAR WHAT THE SPIRIT SAITH UNTO THEN CHURCHES. = CHAPTER 4 J# 1 AFTER THIS I LOOKED, AND, BEHOLD, A DOOR WAS OPENED IN HEAVEN: AND THEM FIRST VOICE WHICH I HEARD WAS AS IT WERE OF A TRUMPET TALKING WITH ME; WHICHCK SAID, COME UP HITHER, AND I WILL SHEW THEE THINGS WHICH MUST BE HEREAFTER.WI# 2 AND IMMEDIATELY I WAS IN THE SPIRIT: AND, BEHOLD, A THRONE WAS SET INT# HEAVEN, AND ONE SAT ON THE THRONE.RK# 3 AND HE THAT SAT WAS TO LOOK UPON LIKE A JASPER AND A SARDINE STONE: ANDHK THERE WAS A RAINBOW ROUND ABOUT THE THRONE, IN SIGHT LIKE UNTO AN EMERALD.HM# 4 AND ROUND ABOUT THE THRONE WERE FOUR AND TWENTY SEATS: AND UPON THE SEATSDM I SAW FOUR AND TWENTY ELDERS SITTING, CLOTHED IN WHITE RAIMENT; AND THEY HADH ON THEIR HEADS CROWNS OF GOLD.IJ# 5 AND OUT OF THE THRONE PROCEEDED LIGHTNINGS AND THUNDERINGS AND VOICES:L AND THERE WERE SEVEN LAMPS OF FIRE BURNING BEFORE THE THRONE, WHICH ARE THE SEVEN SPIRITS OF GOD.L# 6 AND BEFORE THE THRONE THERE WAS A SEA OF GLASS LIKE UNTO CRYSTAL: AND INN THE MIDST OF THE THRONE, AND ROUND ABOUT THE THRONE, WERE FOUR BEASTS FULL OF EYES BEFORE AND BEHIND.J# 7 AND THE FIRST BEAST WAS LIKE A LION, AND THE SECOND BEAST LIKE A CALF,I AND THE THIRD BEAST HAD A FACE AS A MAN, AND THE FOURTH BEAST WAS LIKE A FLYING EAGLE.K# 8 AND THE FOUR BEASTS HAD EACH OF THEM SIX WINGS ABOUT HIM; AND THEY WEREEJ FULL OF EYES WITHIN: AND THEY REST NOT DAY AND NIGHT, SAYING, HOLY, HOLY,< HOLY, LORD GOD ALMIGHTY, WHICH WAS, AND IS, AND IS TO COME.M# 9 AND WHEN THOSE BEASTS GIVE GLORY AND HONOUR AND THANKS TO HIM THAT SAT ONE* THE THRONE, WHO LIVETH FOR EVER AND EVER,L# 10 THE FOUR AND TWENTY ELDERS FALL DOWN BEFORE HIM THAT SAT ON THE THRONE,L AND WORSHIP HIM THAT LIVETH FOR EVER AND EVER, AND CAST THEIR CROWNS BEFORE THE THRONE, SAYING,M# 11 THOU ART WORTHY, O LORD, TO RECEIVE GLORY AND HONOUR AND POWER: FOR THOU I HAST CREATED ALL THINGS, AND FOR THY PLEASURE THEY ARE AND WERE CREATED., = CHAPTER 5 L# 1 AND I SAW IN THE RIGHT HAND OF HIM THAT SAT ON THE THRONE A BOOK WRITTEN5 WITHIN AND ON THE BACKSIDE, SEALED WITH SEVEN SEALS.,L# 2 AND I SAW A STRONG ANGEL PROCLAIMING WITH A LOUD VOICE, WHO IS WORTHY TO/ OPEN THE BOOK, AND TO LOOSE THE SEALS THEREOF?TL# 3 AND NO MAN IN HEAVEN, NOR IN EARTH, NEITHER UNDER THE EARTH, WAS ABLE TO( OPEN THE BOOK, NEITHER TO LOOK THEREON.L# 4 AND I WEPT MUCH, BECAUSE NO MAN WAS FOUND WORTHY TO OPEN AND TO READ THE BOOK, NEITHER TO LOOK THEREON.TJ# 5 AND ONE OF THE ELDERS SAITH UNTO ME, WEEP NOT: BEHOLD, THE LION OF THEJ TRIBE OF JUDA, THE ROOT OF DAVID, HATH PREVAILED TO OPEN THE BOOK, AND TO LOOSE THE SEVEN SEALS THEREOF.OM# 6 AND I BEHELD, AND, LO, IN THE MIDST OF THE THRONE AND OF THE FOUR BEASTS,SJ AND IN THE MIDST OF THE ELDERS, STOOD A LAMB AS IT HAD BEEN SLAIN, HAVINGJ SEVEN HORNS AND SEVEN EYES, WHICH ARE THE SEVEN SPIRITS OF GOD SENT FORTH INTO ALL THE EARTH.L# 7 AND HE CAME AND TOOK THE BOOK OUT OF THE RIGHT HAND OF HIM THAT SAT UPON THE THRONE.G# 8 AND WHEN HE HAD TAKEN THE BOOK, THE FOUR BEASTS AND FOUR AND TWENTY M ELDERS FELL DOWN BEFORE THE LAMB, HAVING EVERY ONE OF THEM HARPS, AND GOLDENA7 VIALS FULL OF ODOURS, WHICH ARE THE PRAYERS OF SAINTS.TK# 9 AND THEY SUNG A NEW SONG, SAYING, THOU ART WORTHY TO TAKE THE BOOK, ANDLL TO OPEN THE SEALS THEREOF: FOR THOU WAST SLAIN, AND HAST REDEEMED US TO GODG BY THY BLOOD OUT OF EVERY KINDRED, AND TONGUE, AND PEOPLE, AND NATION; K# 10 AND HAST MADE US UNTO OUR GOD KINGS AND PRIESTS: AND WE SHALL REIGN ONN THE EARTH. G# 11 AND I BEHELD, AND I HEARD THE VOICE OF MANY ANGELS ROUND ABOUT THEEN THRONE AND THE BEASTS AND THE ELDERS: AND THE NUMBER OF THEM WAS TEN THOUSAND0 TIMES TEN THOUSAND, AND THOUSANDS OF THOUSANDS;K# 12 SAYING WITH A LOUD VOICE, WORTHY IS THE LAMB THAT WAS SLAIN TO RECEIVEEH POWER, AND RICHES, AND WISDOM, AND STRENGTH, AND HONOUR, AND GLORY, AND BLESSING.K# 13 AND EVERY CREATURE WHICH IS IN HEAVEN, AND ON THE EARTH, AND UNDER THENM EARTH, AND SUCH AS ARE IN THE SEA, AND ALL THAT ARE IN THEM, HEARD I SAYING,BN BLE00GGsG>%+%O-%TADATADATASSING, AND HONOUR, AND GLORY, AND POWER, BE UNTO HIM THAT SITTETH UPON THE- THRONE, AND UNTO THE LAMB FOR EVER AND EVER. M# 14 AND THE FOUR BEASTS SAID, AMEN. AND THE FOUR AND TWENTY ELDERS FELL DOWNH2 AND WORSHIPPED HIM THAT LIVETH FOR EVER AND EVER. = CHAPTER 6 L# 1 AND I SAW WHEN THE LAMB OPENED ONE OF THE SEALS, AND I HEARD, AS IT WEREC THE NOISE OF THUNDER, ONE OF THE FOUR BEASTS SAYING, COME AND SEE. J# 2 AND I SAW, AND BEHOLD A WHITE HORSE: AND HE THAT SAT ON HIM HAD A BOW;N AND A CROWN WAS GIVEN UNTO HIM: AND HE WENT FORTH CONQUERING, AND TO CONQUER.I# 3 AND WHEN HE HAD OPENED THE SECOND SEAL, I HEARD THE SECOND BEAST SAY,E COME AND SEE.M# 4 AND THERE WENT OUT ANOTHER HORSE THAT WAS RED: AND POWER WAS GIVEN TO HIMVM THAT SAT THEREON TO TAKE PEACE FROM THE EARTH, AND THAT THEY SHOULD KILL ONE 5 ANOTHER: AND THERE WAS GIVEN UNTO HIM A GREAT SWORD.EL# 5 AND WHEN HE HAD OPENED THE THIRD SEAL, I HEARD THE THIRD BEAST SAY, COMEJ AND SEE. AND I BEHELD, AND LO A BLACK HORSE; AND HE THAT SAT ON HIM HAD A PAIR OF BALANCES IN HIS HAND.I# 6 AND I HEARD A VOICE IN THE MIDST OF THE FOUR BEASTS SAY, A MEASURE OF J WHEAT FOR A PENNY, AND THREE MEASURES OF BARLEY FOR A PENNY; AND SEE THOU HURT NOT THE OIL AND THE WINE. K# 7 AND WHEN HE HAD OPENED THE FOURTH SEAL, I HEARD THE VOICE OF THE FOURTHL BEAST SAY, COME AND SEE. K# 8 AND I LOOKED, AND BEHOLD A PALE HORSE: AND HIS NAME THAT SAT ON HIM WAS,J DEATH, AND HELL FOLLOWED WITH HIM. AND POWER WAS GIVEN UNTO THEM OVER THEH FOURTH PART OF THE EARTH, TO KILL WITH SWORD, AND WITH HUNGER, AND WITH) DEATH, AND WITH THE BEASTS OF THE EARTH.BM# 9 AND WHEN HE HAD OPENED THE FIFTH SEAL, I SAW UNDER THE ALTAR THE SOULS OFAK THEM THAT WERE SLAIN FOR THE WORD OF GOD, AND FOR THE TESTIMONY WHICH THEYP HELD:I# 10 AND THEY CRIED WITH A LOUD VOICE, SAYING, HOW LONG, O LORD, HOLY ANDI TRUE, DOST THOU NOT JUDGE AND AVENGE OUR BLOOD ON THEM THAT DWELL ON THE, EARTH? L# 11 AND WHITE ROBES WERE GIVEN UNTO EVERY ONE OF THEM; AND IT WAS SAID UNTOA THEM, THAT THEY SHOULD REST YET FOR A LITTLE SEASON, UNTIL THEIRAL FELLOWSERVANTS ALSO AND THEIR BRETHREN, THAT SHOULD BE KILLED AS THEY WERE, SHOULD BE FULFILLED.TI# 12 AND I BEHELD WHEN HE HAD OPENED THE SIXTH SEAL, AND, LO, THERE WAS ASN GREAT EARTHQUAKE; AND THE SUN BECAME BLACK AS SACKCLOTH OF HAIR, AND THE MOON BECAME AS BLOOD;NL# 13 AND THE STARS OF HEAVEN FELL UNTO THE EARTH, EVEN AS A FIG TREE CASTETH8 HER UNTIMELY FIGS, WHEN SHE IS SHAKEN OF A MIGHTY WIND.H# 14 AND THE HEAVEN DEPARTED AS A SCROLL WHEN IT IS ROLLED TOGETHER; AND: EVERY MOUNTAIN AND ISLAND WERE MOVED OUT OF THEIR PLACES.M# 15 AND THE KINGS OF THE EARTH, AND THE GREAT MEN, AND THE RICH MEN, AND THEBK CHIEF CAPTAINS, AND THE MIGHTY MEN, AND EVERY BONDMAN, AND EVERY FREE MAN,U> HID THEMSELVES IN THE DENS AND IN THE ROCKS OF THE MOUNTAINS;J# 16 AND SAID TO THE MOUNTAINS AND ROCKS, FALL ON US, AND HIDE US FROM THEH FACE OF HIM THAT SITTETH ON THE THRONE, AND FROM THE WRATH OF THE LAMB:L# 17 FOR THE GREAT DAY OF HIS WRATH IS COME; AND WHO SHALL BE ABLE TO STAND? = CHAPTER 7 L# 1 AND AFTER THESE THINGS I SAW FOUR ANGELS STANDING ON THE FOUR CORNERS OFN THE EARTH, HOLDING THE FOUR WINDS OF THE EARTH, THAT THE WIND SHOULD NOT BLOW/ ON THE EARTH, NOR ON THE SEA, NOR ON ANY TREE.K# 2 AND I SAW ANOTHER ANGEL ASCENDING FROM THE EAST, HAVING THE SEAL OF THE N LIVING GOD: AND HE CRIED WITH A LOUD VOICE TO THE FOUR ANGELS, TO WHOM IT WAS% GIVEN TO HURT THE EARTH AND THE SEA,TL# 3 SAYING, HURT NOT THE EARTH, NEITHER THE SEA, NOR THE TREES, TILL WE HAVE3 SEALED THE SERVANTS OF OUR GOD IN THEIR FOREHEADS.NK# 4 AND I HEARD THE NUMBER OF THEM WHICH WERE SEALED: AND THERE WERE SEALED L AN HUNDRED AND FORTY AND FOUR THOUSAND OF ALL THE TRIBES OF THE CHILDREN OF ISRAEL.L# 5 OF THE TRIBE OF JUDA WERE SEALED TWELVE THOUSAND. OF THE TRIBE OF REUBENN WERE SEALED TWELVE THOUSAND. OF THE TRIBE OF GAD WERE SEALED TWELVE THOUSAND.E# 6 OF THE TRIBE OF ASER WERE SEALED TWELVE THOUSAND. OF THE TRIBE OFUM NEPHTHALIM WERE SEALED TWELVE THOUSAND. OF 00GwGF5%T6%! !THE TRIBE OF MANASSES WERE SEALEDV TWELVE THOUSAND.TL# 7 OF THE TRIBE OF SIMEON WERE SEALED TWELVE THOUSAND. OF THE TRIBE OF LEVII WERE SEALED TWELVE THOUSAND. OF THE TRIBE OF ISSACHAR WERE SEALED TWELVE THOUSAND.H# 8 OF THE TRIBE OF ZABULON WERE SEALED TWELVE THOUSAND. OF THE TRIBE OFI JOSEPH WERE SEALED TWELVE THOUSAND. OF THE TRIBE OF BENJAMIN WERE SEALEDE TWELVE THOUSAND.SG# 9 AFTER THIS I BEHELD, AND, LO, A GREAT MULTITUDE, WHICH NO MAN COULDOL NUMBER, OF ALL NATIONS, AND KINDREDS, AND PEOPLE, AND TONGUES, STOOD BEFOREN THE THRONE, AND BEFORE THE LAMB, CLOTHED WITH WHITE ROBES, AND PALMS IN THEIR HANDS;TL# 10 AND CRIED WITH A LOUD VOICE, SAYING, SALVATION TO OUR GOD WHICH SITTETH$ UPON THE THRONE, AND UNTO THE LAMB.J# 11 AND ALL THE ANGELS STOOD ROUND ABOUT THE THRONE, AND ABOUT THE ELDERSD AND THE FOUR BEASTS, AND FELL BEFORE THE THRONE ON THEIR FACES, AND WORSHIPPED GOD,I# 12 SAYING, AMEN: BLESSING, AND GLORY, AND WISDOM, AND THANKSGIVING, ANDOG HONOUR, AND POWER, AND MIGHT, BE UNTO OUR GOD FOR EVER AND EVER. AMEN.TM# 13 AND ONE OF THE ELDERS ANSWERED, SAYING UNTO ME, WHAT ARE THESE WHICH ARES. ARRAYED IN WHITE ROBES? AND WHENCE CAME THEY?I# 14 AND I SAID UNTO HIM, SIR, THOU KNOWEST. AND HE SAID TO ME, THESE ARE1K THEY WHICH CAME OUT OF GREAT TRIBULATION, AND HAVE WASHED THEIR ROBES, ANDT* MADE THEM WHITE IN THE BLOOD OF THE LAMB.M# 15 THEREFORE ARE THEY BEFORE THE THRONE OF GOD, AND SERVE HIM DAY AND NIGHTNI IN HIS TEMPLE: AND HE THAT SITTETH ON THE THRONE SHALL DWELL AMONG THEM.RJ# 16 THEY SHALL HUNGER NO MORE, NEITHER THIRST ANY MORE; NEITHER SHALL THE! SUN LIGHT ON THEM, NOR ANY HEAT.J# 17 FOR THE LAMB WHICH IS IN THE MIDST OF THE THRONE SHALL FEED THEM, ANDM SHALL LEAD THEM UNTO LIVING FOUNTAINS OF WATERS: AND GOD SHALL WIPE AWAY ALLR TEARS FROM THEIR EYES.D = CHAPTER 8 N# 1 AND WHEN HE HAD OPENED THE SEVENTH SEAL, THERE WAS SILENCE IN HEAVEN ABOUT THE SPACE OF HALF AN HOUR. M# 2 AND I SAW THE SEVEN ANGELS WHICH STOOD BEFORE GOD; AND TO THEM WERE GIVENL SEVEN TRUMPETS.J# 3 AND ANOTHER ANGEL CAME AND STOOD AT THE ALTAR, HAVING A GOLDEN CENSER;L AND THERE WAS GIVEN UNTO HIM MUCH INCENSE, THAT HE SHOULD OFFER IT WITH THEI PRAYERS OF ALL SAINTS UPON THE GOLDEN ALTAR WHICH WAS BEFORE THE THRONE.AL# 4 AND THE SMOKE OF THE INCENSE, WHICH CAME WITH THE PRAYERS OF THE SAINTS,/ ASCENDED UP BEFORE GOD OUT OF THE ANGELS HAND.WL# 5 AND THE ANGEL TOOK THE CENSER, AND FILLED IT WITH FIRE OF THE ALTAR, ANDD CAST IT INTO THE EARTH: AND THERE WERE VOICES, AND THUNDERINGS, AND LIGHTNINGS, AND AN EARTHQUAKE.EL# 6 AND THE SEVEN ANGELS WHICH HAD THE SEVEN TRUMPETS PREPARED THEMSELVES TO SOUND.CJ# 7 THE FIRST ANGEL SOUNDED, AND THERE FOLLOWED HAIL AND FIRE MINGLED WITHJ BLOOD, AND THEY WERE CAST UPON THE EARTH: AND THE THIRD PART OF TREES WAS, BURNT UP, AND ALL GREEN GRASS WAS BURNT UP.I# 8 AND THE SECOND ANGEL SOUNDED, AND AS IT WERE A GREAT MOUNTAIN BURNINGNM WITH FIRE WAS CAST INTO THE SEA: AND THE THIRD PART OF THE SEA BECAME BLOOD;EL# 9 AND THE THIRD PART OF THE CREATURES WHICH WERE IN THE SEA, AND HAD LIFE,6 DIED; AND THE THIRD PART OF THE SHIPS WERE DESTROYED.J# 10 AND THE THIRD ANGEL SOUNDED, AND THERE FELL A GREAT STAR FROM HEAVEN,N BURNING AS IT WERE A LAMP, AND IT FELL UPON THE THIRD PART OF THE RIVERS, AND UPON THE FOUNTAINS OF WATERS;K# 11 AND THE NAME OF THE STAR IS CALLED WORMWOOD: AND THE THIRD PART OF THEIK WATERS BECAME WORMWOOD; AND MANY MEN DIED OF THE WATERS, BECAUSE THEY WEREH MADE BITTER. M# 12 AND THE FOURTH ANGEL SOUNDED, AND THE THIRD PART OF THE SUN WAS SMITTEN,EK AND THE THIRD PART OF THE MOON, AND THE THIRD PART OF THE STARS; SO AS THE0K THIRD PART OF THEM WAS DARKENED, AND THE DAY SHONE NOT FOR A THIRD PART OFI IT, AND THE NIGHT LIKEWISE.I# 13 AND I BEHELD, AND HEARD AN ANGEL FLYING THROUGH THE MIDST OF HEAVEN,K SAYING WITH A LOUD VOICE, WOE, WOE, WOE, TO THE INHABITERS OF THE EARTH BYM REASON OF THE OTHER VOICES OF THE TRUMPET OF THE THREE ANGELS, WHICH ARE YETM TO SOUND! = CHAPTER 9 K# 1 AND THE FIFTH ANGEL SOUNDED,00GGsG>%+%O-%TADATADATA AND I SAW A STAR FALL FROM HEAVEN UNTO THET; EARTH: AND TO HIM WAS GIVEN THE KEY OF THE BOTTOMLESS PIT. M# 2 AND HE OPENED THE BOTTOMLESS PIT; AND THERE AROSE A SMOKE OUT OF THE PIT,OJ AS THE SMOKE OF A GREAT FURNACE; AND THE SUN AND THE AIR WERE DARKENED BY REASON OF THE SMOKE OF THE PIT.M# 3 AND THERE CAME OUT OF THE SMOKE LOCUSTS UPON THE EARTH: AND UNTO THEM WASR7 GIVEN POWER, AS THE SCORPIONS OF THE EARTH HAVE POWER.EH# 4 AND IT WAS COMMANDED THEM THAT THEY SHOULD NOT HURT THE GRASS OF THEK EARTH, NEITHER ANY GREEN THING, NEITHER ANY TREE; BUT ONLY THOSE MEN WHICHN- HAVE NOT THE SEAL OF GOD IN THEIR FOREHEADS.EJ# 5 AND TO THEM IT WAS GIVEN THAT THEY SHOULD NOT KILL THEM, BUT THAT THEYK SHOULD BE TORMENTED FIVE MONTHS: AND THEIR TORMENT WAS AS THE TORMENT OF AT" SCORPION, WHEN HE STRIKETH A MAN.L# 6 AND IN THOSE DAYS SHALL MEN SEEK DEATH, AND SHALL NOT FIND IT; AND SHALL/ DESIRE TO DIE, AND DEATH SHALL FLEE FROM THEM. M# 7 AND THE SHAPES OF THE LOCUSTS WERE LIKE UNTO HORSES PREPARED UNTO BATTLE;EM AND ON THEIR HEADS WERE AS IT WERE CROWNS LIKE GOLD, AND THEIR FACES WERE ASH THE FACES OF MEN.M# 8 AND THEY HAD HAIR AS THE HAIR OF WOMEN, AND THEIR TEETH WERE AS THE TEETHT OF LIONS.M# 9 AND THEY HAD BREASTPLATES, AS IT WERE BREASTPLATES OF IRON; AND THE SOUNDSN OF THEIR WINGS WAS AS THE SOUND OF CHARIOTS OF MANY HORSES RUNNING TO BATTLE.K# 10 AND THEY HAD TAILS LIKE UNTO SCORPIONS, AND THERE WERE STINGS IN THEIRM4 TAILS: AND THEIR POWER WAS TO HURT MEN FIVE MONTHS.M# 11 AND THEY HAD A KING OVER THEM, WHICH IS THE ANGEL OF THE BOTTOMLESS PIT,OM WHOSE NAME IN THE HEBREW TONGUE IS ABADDON, BUT IN THE GREEK TONGUE HATH HISH NAME APOLLYON. F# 12 ONE WOE IS PAST; AND, BEHOLD, THERE COME TWO WOES MORE HEREAFTER.L# 13 AND THE SIXTH ANGEL SOUNDED, AND I HEARD A VOICE FROM THE FOUR HORNS OF& THE GOLDEN ALTAR WHICH IS BEFORE GOD,K# 14 SAYING TO THE SIXTH ANGEL WHICH HAD THE TRUMPET, LOOSE THE FOUR ANGELSN. WHICH ARE BOUND IN THE GREAT RIVER EUPHRATES.L# 15 AND THE FOUR ANGELS WERE LOOSED, WHICH WERE PREPARED FOR AN HOUR, AND AA DAY, AND A MONTH, AND A YEAR, FOR TO SLAY THE THIRD PART OF MEN.BI# 16 AND THE NUMBER OF THE ARMY OF THE HORSEMEN WERE TWO HUNDRED THOUSANDN* THOUSAND: AND I HEARD THE NUMBER OF THEM.H# 17 AND THUS I SAW THE HORSES IN THE VISION, AND THEM THAT SAT ON THEM,M HAVING BREASTPLATES OF FIRE, AND OF JACINTH, AND BRIMSTONE: AND THE HEADS OFWK THE HORSES WERE AS THE HEADS OF LIONS; AND OUT OF THEIR MOUTHS ISSUED FIREI AND SMOKE AND BRIMSTONE.EM# 18 BY THESE THREE WAS THE THIRD PART OF MEN KILLED, BY THE FIRE, AND BY THEO? SMOKE, AND BY THE BRIMSTONE, WHICH ISSUED OUT OF THEIR MOUTHS.EK# 19 FOR THEIR POWER IS IN THEIR MOUTH, AND IN THEIR TAILS: FOR THEIR TAILSDD WERE LIKE UNTO SERPENTS, AND HAD HEADS, AND WITH THEM THEY DO HURT.G# 20 AND THE REST OF THE MEN WHICH WERE NOT KILLED BY THESE PLAGUES YETCG REPENTED NOT OF THE WORKS OF THEIR HANDS, THAT THEY SHOULD NOT WORSHIPLJ DEVILS, AND IDOLS OF GOLD, AND SILVER, AND BRASS, AND STONE, AND OF WOOD:+ WHICH NEITHER CAN SEE, NOR HEAR, NOR WALK:LK# 21 NEITHER REPENTED THEY OF THEIR MURDERS, NOR OF THEIR SORCERIES, NOR OFO( THEIR FORNICATION, NOR OF THEIR THEFTS. = CHAPTER 10 H# 1 AND I SAW ANOTHER MIGHTY ANGEL COME DOWN FROM HEAVEN, CLOTHED WITH AM CLOUD: AND A RAINBOW WAS UPON HIS HEAD, AND HIS FACE WAS AS IT WERE THE SUN,I! AND HIS FEET AS PILLARS OF FIRE:EM# 2 AND HE HAD IN HIS HAND A LITTLE BOOK OPEN: AND HE SET HIS RIGHT FOOT UPONI) THE SEA, AND HIS LEFT FOOT ON THE EARTH,OH# 3 AND CRIED WITH A LOUD VOICE, AS WHEN A LION ROARETH: AND WHEN HE HAD, CRIED, SEVEN THUNDERS UTTERED THEIR VOICES.H# 4 AND WHEN THE SEVEN THUNDERS HAD UTTERED THEIR VOICES, I WAS ABOUT TOL WRITE: AND I HEARD A VOICE FROM HEAVEN SAYING UNTO ME, SEAL UP THOSE THINGS6 WHICH THE SEVEN THUNDERS UTTERED, AND WRITE THEM NOT.M# 5 AND THE ANGEL WHICH I SAW STAND UPON THE SEA AND UPON THE EARTH LIFTED UP  HIS HAND TO HEAVEN,K# 6 AND SWARE BY HIM THAT LIVETH FOR EVER AND EVER, WHO CREATED HEAVEN, ANDRM THE THINGS THAT THEREIN ARE, AND TH00GwGF5%T6%! !E EARTH, AND THE THINGS THAT THEREIN ARE,L AND THE SEA, AND THE THINGS WHICH ARE THEREIN, THAT THERE SHOULD BE TIME NO LONGER:M# 7 BUT IN THE DAYS OF THE VOICE OF THE SEVENTH ANGEL, WHEN HE SHALL BEGIN TOUI SOUND, THE MYSTERY OF GOD SHOULD BE FINISHED, AS HE HATH DECLARED TO HIST SERVANTS THE PROPHETS.EM# 8 AND THE VOICE WHICH I HEARD FROM HEAVEN SPAKE UNTO ME AGAIN, AND SAID, GOAF AND TAKE THE LITTLE BOOK WHICH IS OPEN IN THE HAND OF THE ANGEL WHICH* STANDETH UPON THE SEA AND UPON THE EARTH.J# 9 AND I WENT UNTO THE ANGEL, AND SAID UNTO HIM, GIVE ME THE LITTLE BOOK.I AND HE SAID UNTO ME, TAKE IT, AND EAT IT UP; AND IT SHALL MAKE THY BELLYD5 BITTER, BUT IT SHALL BE IN THY MOUTH SWEET AS HONEY.GM# 10 AND I TOOK THE LITTLE BOOK OUT OF THE ANGELS HAND, AND ATE IT UP; AND ITIL WAS IN MY MOUTH SWEET AS HONEY: AND AS SOON AS I HAD EATEN IT, MY BELLY WAS BITTER.K# 11 AND HE SAID UNTO ME, THOU MUST PROPHESY AGAIN BEFORE MANY PEOPLES, ANDT! NATIONS, AND TONGUES, AND KINGS.S = CHAPTER 11 G# 1 AND THERE WAS GIVEN ME A REED LIKE UNTO A ROD: AND THE ANGEL STOOD,TJ SAYING, RISE, AND MEASURE THE TEMPLE OF GOD, AND THE ALTAR, AND THEM THAT WORSHIP THEREIN.BL# 2 BUT THE COURT WHICH IS WITHOUT THE TEMPLE LEAVE OUT, AND MEASURE IT NOT;L FOR IT IS GIVEN UNTO THE GENTILES: AND THE HOLY CITY SHALL THEY TREAD UNDER FOOT FORTY AND TWO MONTHS. J# 3 AND I WILL GIVE POWER UNTO MY TWO WITNESSES, AND THEY SHALL PROPHESY A@ THOUSAND TWO HUNDRED AND THREESCORE DAYS, CLOTHED IN SACKCLOTH.K# 4 THESE ARE THE TWO OLIVE TREES, AND THE TWO CANDLESTICKS STANDING BEFOREG THE GOD OF THE EARTH.J# 5 AND IF ANY MAN WILL HURT THEM, FIRE PROCEEDETH OUT OF THEIR MOUTH, ANDH DEVOURETH THEIR ENEMIES: AND IF ANY MAN WILL HURT THEM, HE MUST IN THIS MANNER BE KILLED.J# 6 THESE HAVE POWER TO SHUT HEAVEN, THAT IT RAIN NOT IN THE DAYS OF THEIRM PROPHECY: AND HAVE POWER OVER WATERS TO TURN THEM TO BLOOD, AND TO SMITE THEE/ EARTH WITH ALL PLAGUES, AS OFTEN AS THEY WILL.EE# 7 AND WHEN THEY SHALL HAVE FINISHED THEIR TESTIMONY, THE BEAST THATAK ASCENDETH OUT OF THE BOTTOMLESS PIT SHALL MAKE WAR AGAINST THEM, AND SHALLA OVERCOME THEM, AND KILL THEM.J# 8 AND THEIR DEAD BODIES SHALL LIE IN THE STREET OF THE GREAT CITY, WHICHJ SPIRITUALLY IS CALLED SODOM AND EGYPT, WHERE ALSO OUR LORD WAS CRUCIFIED.I# 9 AND THEY OF THE PEOPLE AND KINDREDS AND TONGUES AND NATIONS SHALL SEE J THEIR DEAD BODIES THREE DAYS AND AN HALF, AND SHALL NOT SUFFER THEIR DEAD BODIES TO BE PUT IN GRAVES.I# 10 AND THEY THAT DWELL UPON THE EARTH SHALL REJOICE OVER THEM, AND MAKENG MERRY, AND SHALL SEND GIFTS ONE TO ANOTHER; BECAUSE THESE TWO PROPHETSO( TORMENTED THEM THAT DWELT ON THE EARTH.I# 11 AND AFTER THREE DAYS AND AN HALF THE SPIRIT OF LIFE FROM GOD ENTEREDYI INTO THEM, AND THEY STOOD UPON THEIR FEET; AND GREAT FEAR FELL UPON THEMY WHICH SAW THEM.G# 12 AND THEY HEARD A GREAT VOICE FROM HEAVEN SAYING UNTO THEM, COME UPYL HITHER. AND THEY ASCENDED UP TO HEAVEN IN A CLOUD; AND THEIR ENEMIES BEHELD THEM.J# 13 AND THE SAME HOUR WAS THERE A GREAT EARTHQUAKE, AND THE TENTH PART OFK THE CITY FELL, AND IN THE EARTHQUAKE WERE SLAIN OF MEN SEVEN THOUSAND: ANDTB THE REMNANT WERE AFFRIGHTED, AND GAVE GLORY TO THE GOD OF HEAVEN.G# 14 THE SECOND WOE IS PAST; AND, BEHOLD, THE THIRD WOE COMETH QUICKLY.IJ# 15 AND THE SEVENTH ANGEL SOUNDED; AND THERE WERE GREAT VOICES IN HEAVEN,L SAYING, THE KINGDOMS OF THIS WORLD ARE BECOME THE KINGDOMS OF OUR LORD, AND5 OF HIS CHRIST; AND HE SHALL REIGN FOR EVER AND EVER.I# 16 AND THE FOUR AND TWENTY ELDERS, WHICH SAT BEFORE GOD ON THEIR SEATS,P+ FELL UPON THEIR FACES, AND WORSHIPPED GOD, K# 17 SAYING, WE GIVE THEE THANKS, O LORD GOD ALMIGHTY, WHICH ART, AND WAST,EK AND ART TO COME; BECAUSE THOU HAST TAKEN TO THEE THY GREAT POWER, AND HASTH REIGNED.EK# 18 AND THE NATIONS WERE ANGRY, AND THY WRATH IS COME, AND THE TIME OF THE K DEAD, THAT THEY SHOULD BE JUDGED, AND THAT THOU SHOULDEST GIVE REWARD UNTORK THY SERVANTS THE PROPHETS, AND TO THE SAINTS, AND THEM THAT FEAR THY NAME,TE SMALL AND GREAT; AND SHOULDEST DEST00GGsG>%+%O-%TADATADATAROY THEM WHICH DESTROY THE EARTH. J# 19 AND THE TEMPLE OF GOD WAS OPENED IN HEAVEN, AND THERE WAS SEEN IN HISL TEMPLE THE ARK OF HIS TESTAMENT: AND THERE WERE LIGHTNINGS, AND VOICES, AND0 THUNDERINGS, AND AN EARTHQUAKE, AND GREAT HAIL. = CHAPTER 12 EN# 1 AND THERE APPEARED A GREAT WONDER IN HEAVEN; A WOMAN CLOTHED WITH THE SUN,H AND THE MOON UNDER HER FEET, AND UPON HER HEAD A CROWN OF TWELVE STARS:I# 2 AND SHE BEING WITH CHILD CRIED, TRAVAILING IN BIRTH, AND PAINED TO BEA DELIVERED. G# 3 AND THERE APPEARED ANOTHER WONDER IN HEAVEN; AND BEHOLD A GREAT REDGK DRAGON, HAVING SEVEN HEADS AND TEN HORNS, AND SEVEN CROWNS UPON HIS HEADS.SI# 4 AND HIS TAIL DREW THE THIRD PART OF THE STARS OF HEAVEN, AND DID CASTRL THEM TO THE EARTH: AND THE DRAGON STOOD BEFORE THE WOMAN WHICH WAS READY TO> BE DELIVERED, FOR TO DEVOUR HER CHILD AS SOON AS IT WAS BORN.M# 5 AND SHE BROUGHT FORTH A MAN CHILD, WHO WAS TO RULE ALL NATIONS WITH A RODIB OF IRON: AND HER CHILD WAS CAUGHT UP UNTO GOD, AND TO HIS THRONE.K# 6 AND THE WOMAN FLED INTO THE WILDERNESS, WHERE SHE HATH A PLACE PREPARED,N OF GOD, THAT THEY SHOULD FEED HER THERE A THOUSAND TWO HUNDRED AND THREESCORE DAYS.J# 7 AND THERE WAS WAR IN HEAVEN: MICHAEL AND HIS ANGELS FOUGHT AGAINST THE. DRAGON; AND THE DRAGON FOUGHT AND HIS ANGELS,H# 8 AND PREVAILED NOT; NEITHER WAS THEIR PLACE FOUND ANY MORE IN HEAVEN.J# 9 AND THE GREAT DRAGON WAS CAST OUT, THAT OLD SERPENT, CALLED THE DEVIL,L AND SATAN, WHICH DECEIVETH THE WHOLE WORLD: HE WAS CAST OUT INTO THE EARTH,' AND HIS ANGELS WERE CAST OUT WITH HIM.HJ# 10 AND I HEARD A LOUD VOICE SAYING IN HEAVEN, NOW IS COME SALVATION, ANDK STRENGTH, AND THE KINGDOM OF OUR GOD, AND THE POWER OF HIS CHRIST: FOR THEML ACCUSER OF OUR BRETHREN IS CAST DOWN, WHICH ACCUSED THEM BEFORE OUR GOD DAY AND NIGHT. M# 11 AND THEY OVERCAME HIM BY THE BLOOD OF THE LAMB, AND BY THE WORD OF THEIR : TESTIMONY; AND THEY LOVED NOT THEIR LIVES UNTO THE DEATH.I# 12 THEREFORE REJOICE, YE HEAVENS, AND YE THAT DWELL IN THEM. WOE TO THEHM INHABITERS OF THE EARTH AND OF THE SEA! FOR THE DEVIL IS COME DOWN UNTO YOU,CF HAVING GREAT WRATH, BECAUSE HE KNOWETH THAT HE HATH BUT A SHORT TIME.K# 13 AND WHEN THE DRAGON SAW THAT HE WAS CAST UNTO THE EARTH, HE PERSECUTEDN- THE WOMAN WHICH BROUGHT FORTH THE MAN CHILD.DK# 14 AND TO THE WOMAN WERE GIVEN TWO WINGS OF A GREAT EAGLE, THAT SHE MIGHTBL FLY INTO THE WILDERNESS, INTO HER PLACE, WHERE SHE IS NOURISHED FOR A TIME,: AND TIMES, AND HALF A TIME, FROM THE FACE OF THE SERPENT.L# 15 AND THE SERPENT CAST OUT OF HIS MOUTH WATER AS A FLOOD AFTER THE WOMAN,9 THAT HE MIGHT CAUSE HER TO BE CARRIED AWAY OF THE FLOOD.TH# 16 AND THE EARTH HELPED THE WOMAN, AND THE EARTH OPENED HER MOUTH, AND? SWALLOWED UP THE FLOOD WHICH THE DRAGON CAST OUT OF HIS MOUTH.RK# 17 AND THE DRAGON WAS WROTH WITH THE WOMAN, AND WENT TO MAKE WAR WITH THELF REMNANT OF HER SEED, WHICH KEEP THE COMMANDMENTS OF GOD, AND HAVE THE TESTIMONY OF JESUS CHRIST.D = CHAPTER 13 FL# 1 AND I STOOD UPON THE SAND OF THE SEA, AND SAW A BEAST RISE UP OUT OF THEJ SEA, HAVING SEVEN HEADS AND TEN HORNS, AND UPON HIS HORNS TEN CROWNS, AND& UPON HIS HEADS THE NAME OF BLASPHEMY.K# 2 AND THE BEAST WHICH I SAW WAS LIKE UNTO A LEOPARD, AND HIS FEET WERE ASLN THE FEET OF A BEAR, AND HIS MOUTH AS THE MOUTH OF A LION: AND THE DRAGON GAVE2 HIM HIS POWER, AND HIS SEAT, AND GREAT AUTHORITY.J# 3 AND I SAW ONE OF HIS HEADS AS IT WERE WOUNDED TO DEATH; AND HIS DEADLY> WOUND WAS HEALED: AND ALL THE WORLD WONDERED AFTER THE BEAST.L# 4 AND THEY WORSHIPPED THE DRAGON WHICH GAVE POWER UNTO THE BEAST: AND THEYN WORSHIPPED THE BEAST, SAYING, WHO IS LIKE UNTO THE BEAST? WHO IS ABLE TO MAKE WAR WITH HIM?B# 5 AND THERE WAS GIVEN UNTO HIM A MOUTH SPEAKING GREAT THINGS ANDL BLASPHEMIES; AND POWER WAS GIVEN UNTO HIM TO CONTINUE FORTY AND TWO MONTHS.L# 6 AND HE OPENED HIS MOUTH IN BLASPHEMY AGAINST GOD, TO BLASPHEME HIS NAME,3 AND HIS TABERNACLE, AND THEM THAT DWELL IN HEAVEN.WJ# 7 AND IT WAS GIVEN UNTO HIM TO MAKE WAR WITH THE SAINTS, AND TO OVERCOMEK THEM: AND POWER00GwGF5%T6%! ! WAS GIVEN HIM OVER ALL KINDREDS, AND TONGUES, AND NATIONS.HL# 8 AND ALL THAT DWELL UPON THE EARTH SHALL WORSHIP HIM, WHOSE NAMES ARE NOTI WRITTEN IN THE BOOK OF LIFE OF THE LAMB SLAIN FROM THE FOUNDATION OF THEA WORLD. )# 9 IF ANY MAN HAVE AN EAR, LET HIM HEAR.RL# 10 HE THAT LEADETH INTO CAPTIVITY SHALL GO INTO CAPTIVITY: HE THAT KILLETHK WITH THE SWORD MUST BE KILLED WITH THE SWORD. HERE IS THE PATIENCE AND THE  FAITH OF THE SAINTS.IJ# 11 AND I BEHELD ANOTHER BEAST COMING UP OUT OF THE EARTH; AND HE HAD TWO- HORNS LIKE A LAMB, AND HE SPAKE AS A DRAGON.HG# 12 AND HE EXERCISETH ALL THE POWER OF THE FIRST BEAST BEFORE HIM, ANDEK CAUSETH THE EARTH AND THEM WHICH DWELL THEREIN TO WORSHIP THE FIRST BEAST,H WHOSE DEADLY WOUND WAS HEALED. M# 13 AND HE DOETH GREAT WONDERS, SO THAT HE MAKETH FIRE COME DOWN FROM HEAVENV" ON THE EARTH IN THE SIGHT OF MEN,E# 14 AND DECEIVETH THEM THAT DWELL ON THE EARTH BY THE MEANS OF THOSEOL MIRACLES WHICH HE HAD POWER TO DO IN THE SIGHT OF THE BEAST; SAYING TO THEML THAT DWELL ON THE EARTH, THAT THEY SHOULD MAKE AN IMAGE TO THE BEAST, WHICH( HAD THE WOUND BY A SWORD, AND DID LIVE.H# 15 AND HE HAD POWER TO GIVE LIFE UNTO THE IMAGE OF THE BEAST, THAT THEJ IMAGE OF THE BEAST SHOULD BOTH SPEAK, AND CAUSE THAT AS MANY AS WOULD NOT1 WORSHIP THE IMAGE OF THE BEAST SHOULD BE KILLED.AL# 16 AND HE CAUSETH ALL, BOTH SMALL AND GREAT, RICH AND POOR, FREE AND BOND,> TO RECEIVE A MARK IN THEIR RIGHT HAND, OR IN THEIR FOREHEADS:I# 17 AND THAT NO MAN MIGHT BUY OR SELL, SAVE HE THAT HAD THE MARK, OR THE . NAME OF THE BEAST, OR THE NUMBER OF HIS NAME.L# 18 HERE IS WISDOM. LET HIM THAT HATH UNDERSTANDING COUNT THE NUMBER OF THED BEAST: FOR IT IS THE NUMBER OF A MAN; AND HIS NUMBER IS SIX HUNDRED THREESCORE AND SIX. = CHAPTER 14 WJ# 1 AND I LOOKED, AND, LO, A LAMB STOOD ON THE MOUNT SION, AND WITH HIM ANJ HUNDRED FORTY AND FOUR THOUSAND, HAVING HIS FATHERS NAME WRITTEN IN THEIR FOREHEADS.IL# 2 AND I HEARD A VOICE FROM HEAVEN, AS THE VOICE OF MANY WATERS, AND AS THEN VOICE OF A GREAT THUNDER: AND I HEARD THE VOICE OF HARPERS HARPING WITH THEIR HARPS:HI# 3 AND THEY SUNG AS IT WERE A NEW SONG BEFORE THE THRONE, AND BEFORE THEAN FOUR BEASTS, AND THE ELDERS: AND NO MAN COULD LEARN THAT SONG BUT THE HUNDREDA AND FORTY AND FOUR THOUSAND, WHICH WERE REDEEMED FROM THE EARTH.TK# 4 THESE ARE THEY WHICH WERE NOT DEFILED WITH WOMEN; FOR THEY ARE VIRGINS.FH THESE ARE THEY WHICH FOLLOW THE LAMB WHITHERSOEVER HE GOETH. THESE WEREI REDEEMED FROM AMONG MEN, BEING THE FIRSTFRUITS UNTO GOD AND TO THE LAMB.AL# 5 AND IN THEIR MOUTH WAS FOUND NO GUILE: FOR THEY ARE WITHOUT FAULT BEFORE THE THRONE OF GOD.NB# 6 AND I SAW ANOTHER ANGEL FLY IN THE MIDST OF HEAVEN, HAVING THEM EVERLASTING GOSPEL TO PREACH UNTO THEM THAT DWELL ON THE EARTH, AND TO EVERY - NATION, AND KINDRED, AND TONGUE, AND PEOPLE, K# 7 SAYING WITH A LOUD VOICE, FEAR GOD, AND GIVE GLORY TO HIM; FOR THE HOUREN OF HIS JUDGMENT IS COME: AND WORSHIP HIM THAT MADE HEAVEN, AND EARTH, AND THE" SEA, AND THE FOUNTAINS OF WATERS.K# 8 AND THERE FOLLOWED ANOTHER ANGEL, SAYING, BABYLON IS FALLEN, IS FALLEN,RM THAT GREAT CITY, BECAUSE SHE MADE ALL NATIONS DRINK OF THE WINE OF THE WRATHN OF HER FORNICATION.K# 9 AND THE THIRD ANGEL FOLLOWED THEM, SAYING WITH A LOUD VOICE, IF ANY MANAM WORSHIP THE BEAST AND HIS IMAGE, AND RECEIVE HIS MARK IN HIS FOREHEAD, OR IN HIS HAND,J# 10 THE SAME SHALL DRINK OF THE WINE OF THE WRATH OF GOD, WHICH IS POUREDE OUT WITHOUT MIXTURE INTO THE CUP OF HIS INDIGNATION; AND HE SHALL BEAM TORMENTED WITH FIRE AND BRIMSTONE IN THE PRESENCE OF THE HOLY ANGELS, AND IN, THE PRESENCE OF THE LAMB:L# 11 AND THE SMOKE OF THEIR TORMENT ASCENDETH UP FOR EVER AND EVER: AND THEYE HAVE NO REST DAY NOR NIGHT, WHO WORSHIP THE BEAST AND HIS IMAGE, ANDC* WHOSOEVER RECEIVETH THE MARK OF HIS NAME.D# 12 HERE IS THE PATIENCE OF THE SAINTS: HERE ARE THEY THAT KEEP THE- COMMANDMENTS OF GOD, AND THE FAITH OF JESUS. K# 13 AND I HEARD A VOICE FROM HEAVEN SAYING UNTO ME, WRITE, BLESSED ARE THENM DEAD WHICH DIE IN THE L00GGsG>%+%O-%TADATADATAORD FROM HENCEFORTH: YEA, SAITH THE SPIRIT, THAT THEYA= MAY REST FROM THEIR LABOURS; AND THEIR WORKS DO FOLLOW THEM.OL# 14 AND I LOOKED, AND BEHOLD A WHITE CLOUD, AND UPON THE CLOUD ONE SAT LIKEJ UNTO THE SON OF MAN, HAVING ON HIS HEAD A GOLDEN CROWN, AND IN HIS HAND A SHARP SICKLE.J# 15 AND ANOTHER ANGEL CAME OUT OF THE TEMPLE, CRYING WITH A LOUD VOICE TOK HIM THAT SAT ON THE CLOUD, THRUST IN THY SICKLE, AND REAP: FOR THE TIME ISE= COME FOR THEE TO REAP; FOR THE HARVEST OF THE EARTH IS RIPE.NL# 16 AND HE THAT SAT ON THE CLOUD THRUST IN HIS SICKLE ON THE EARTH; AND THE EARTH WAS REAPED.I# 17 AND ANOTHER ANGEL CAME OUT OF THE TEMPLE WHICH IS IN HEAVEN, HE ALSOD HAVING A SHARP SICKLE.IJ# 18 AND ANOTHER ANGEL CAME OUT FROM THE ALTAR, WHICH HAD POWER OVER FIRE;N AND CRIED WITH A LOUD CRY TO HIM THAT HAD THE SHARP SICKLE, SAYING, THRUST INL THY SHARP SICKLE, AND GATHER THE CLUSTERS OF THE VINE OF THE EARTH; FOR HER GRAPES ARE FULLY RIPE. M# 19 AND THE ANGEL THRUST IN HIS SICKLE INTO THE EARTH, AND GATHERED THE VINEHH OF THE EARTH, AND CAST IT INTO THE GREAT WINEPRESS OF THE WRATH OF GOD.J# 20 AND THE WINEPRESS WAS TRODDEN WITHOUT THE CITY, AND BLOOD CAME OUT OFK THE WINEPRESS, EVEN UNTO THE HORSE BRIDLES, BY THE SPACE OF A THOUSAND AND  SIX HUNDRED FURLONGS. = CHAPTER 15 H# 1 AND I SAW ANOTHER SIGN IN HEAVEN, GREAT AND MARVELLOUS, SEVEN ANGELSJ HAVING THE SEVEN LAST PLAGUES; FOR IN THEM IS FILLED UP THE WRATH OF GOD.L# 2 AND I SAW AS IT WERE A SEA OF GLASS MINGLED WITH FIRE: AND THEM THAT HADN GOTTEN THE VICTORY OVER THE BEAST, AND OVER HIS IMAGE, AND OVER HIS MARK, ANDL OVER THE NUMBER OF HIS NAME, STAND ON THE SEA OF GLASS, HAVING THE HARPS OF GOD.FK# 3 AND THEY SING THE SONG OF MOSES THE SERVANT OF GOD, AND THE SONG OF THE N LAMB, SAYING, GREAT AND MARVELLOUS ARE THY WORKS, LORD GOD ALMIGHTY; JUST AND( TRUE ARE THY WAYS, THOU KING OF SAINTS.L# 4 WHO SHALL NOT FEAR THEE, O LORD, AND GLORIFY THY NAME? FOR THOU ONLY ARTL HOLY: FOR ALL NATIONS SHALL COME AND WORSHIP BEFORE THEE; FOR THY JUDGMENTS ARE MADE MANIFEST.BM# 5 AND AFTER THAT I LOOKED, AND, BEHOLD, THE TEMPLE OF THE TABERNACLE OF THE TESTIMONY IN HEAVEN WAS OPENED:J# 6 AND THE SEVEN ANGELS CAME OUT OF THE TEMPLE, HAVING THE SEVEN PLAGUES,M CLOTHED IN PURE AND WHITE LINEN, AND HAVING THEIR BREASTS GIRDED WITH GOLDEN GIRDLES.YL# 7 AND ONE OF THE FOUR BEASTS GAVE UNTO THE SEVEN ANGELS SEVEN GOLDEN VIALS8 FULL OF THE WRATH OF GOD, WHO LIVETH FOR EVER AND EVER.L# 8 AND THE TEMPLE WAS FILLED WITH SMOKE FROM THE GLORY OF GOD, AND FROM HISL POWER; AND NO MAN WAS ABLE TO ENTER INTO THE TEMPLE, TILL THE SEVEN PLAGUES$ OF THE SEVEN ANGELS WERE FULFILLED. = CHAPTER 16 N# 1 AND I HEARD A GREAT VOICE OUT OF THE TEMPLE SAYING TO THE SEVEN ANGELS, GOF YOUR WAYS, AND POUR OUT THE VIALS OF THE WRATH OF GOD UPON THE EARTH.I# 2 AND THE FIRST WENT, AND POURED OUT HIS VIAL UPON THE EARTH; AND THEREEH FELL A NOISOME AND GRIEVOUS SORE UPON THE MEN WHICH HAD THE MARK OF THE1 BEAST, AND UPON THEM WHICH WORSHIPPED HIS IMAGE. K# 3 AND THE SECOND ANGEL POURED OUT HIS VIAL UPON THE SEA; AND IT BECAME ASP@ THE BLOOD OF A DEAD MAN: AND EVERY LIVING SOUL DIED IN THE SEA.L# 4 AND THE THIRD ANGEL POURED OUT HIS VIAL UPON THE RIVERS AND FOUNTAINS OF WATERS; AND THEY BECAME BLOOD. H# 5 AND I HEARD THE ANGEL OF THE WATERS SAY, THOU ART RIGHTEOUS, O LORD,B WHICH ART, AND WAST, AND SHALT BE, BECAUSE THOU HAST JUDGED THUS.L# 6 FOR THEY HAVE SHED THE BLOOD OF SAINTS AND PROPHETS, AND THOU HAST GIVEN* THEM BLOOD TO DRINK; FOR THEY ARE WORTHY.I# 7 AND I HEARD ANOTHER OUT OF THE ALTAR SAY, EVEN SO, LORD GOD ALMIGHTY,E& TRUE AND RIGHTEOUS ARE THY JUDGMENTS.H# 8 AND THE FOURTH ANGEL POURED OUT HIS VIAL UPON THE SUN; AND POWER WAS( GIVEN UNTO HIM TO SCORCH MEN WITH FIRE.J# 9 AND MEN WERE SCORCHED WITH GREAT HEAT, AND BLASPHEMED THE NAME OF GOD,N WHICH HATH POWER OVER THESE PLAGUES: AND THEY REPENTED NOT TO GIVE HIM GLORY.L# 10 AND THE FIFTH ANGEL POURED OUT HIS VIAL UPON THE SEAT OF THE BEAST; ANDJ HIS KINGDOM WAS FULL OF DARKNESS; AND T00GwGF5%T6%! !HEY GNAWED THEIR TONGUES FOR PAIN,M# 11 AND BLASPHEMED THE GOD OF HEAVEN BECAUSE OF THEIR PAINS AND THEIR SORES,G! AND REPENTED NOT OF THEIR DEEDS.UL# 12 AND THE SIXTH ANGEL POURED OUT HIS VIAL UPON THE GREAT RIVER EUPHRATES;J AND THE WATER THEREOF WAS DRIED UP, THAT THE WAY OF THE KINGS OF THE EAST MIGHT BE PREPARED. L# 13 AND I SAW THREE UNCLEAN SPIRITS LIKE FROGS COME OUT OF THE MOUTH OF THEM DRAGON, AND OUT OF THE MOUTH OF THE BEAST, AND OUT OF THE MOUTH OF THE FALSEM PROPHET.FI# 14 FOR THEY ARE THE SPIRITS OF DEVILS, WORKING MIRACLES, WHICH GO FORTH J UNTO THE KINGS OF THE EARTH AND OF THE WHOLE WORLD, TO GATHER THEM TO THE* BATTLE OF THAT GREAT DAY OF GOD ALMIGHTY.L# 15 BEHOLD, I COME AS A THIEF. BLESSED IS HE THAT WATCHETH, AND KEEPETH HIS6 GARMENTS, LEST HE WALK NAKED, AND THEY SEE HIS SHAME.K# 16 AND HE GATHERED THEM TOGETHER INTO A PLACE CALLED IN THE HEBREW TONGUE ARMAGEDDON.M# 17 AND THE SEVENTH ANGEL POURED OUT HIS VIAL INTO THE AIR; AND THERE CAME AN GREAT VOICE OUT OF THE TEMPLE OF HEAVEN, FROM THE THRONE, SAYING, IT IS DONE.I# 18 AND THERE WERE VOICES, AND THUNDERS, AND LIGHTNINGS; AND THERE WAS A N GREAT EARTHQUAKE, SUCH AS WAS NOT SINCE MEN WERE UPON THE EARTH, SO MIGHTY AN EARTHQUAKE, AND SO GREAT.K# 19 AND THE GREAT CITY WAS DIVIDED INTO THREE PARTS, AND THE CITIES OF THEM NATIONS FELL: AND GREAT BABYLON CAME IN REMEMBRANCE BEFORE GOD, TO GIVE UNTOA8 HER THE CUP OF THE WINE OF THE FIERCENESS OF HIS WRATH.B# 20 AND EVERY ISLAND FLED AWAY, AND THE MOUNTAINS WERE NOT FOUND.J# 21 AND THERE FELL UPON MEN A GREAT HAIL OUT OF HEAVEN, EVERY STONE ABOUTL THE WEIGHT OF A TALENT: AND MEN BLASPHEMED GOD BECAUSE OF THE PLAGUE OF THE2 HAIL; FOR THE PLAGUE THEREOF WAS EXCEEDING GREAT. = CHAPTER 17 I# 1 AND THERE CAME ONE OF THE SEVEN ANGELS WHICH HAD THE SEVEN VIALS, ANDSG TALKED WITH ME, SAYING UNTO ME, COME HITHER; I WILL SHEW UNTO THEE THE,; JUDGMENT OF THE GREAT WHORE THAT SITTETH UPON MANY WATERS: H# 2 WITH WHOM THE KINGS OF THE EARTH HAVE COMMITTED FORNICATION, AND THEC INHABITANTS OF THE EARTH HAVE BEEN MADE DRUNK WITH THE WINE OF HERS FORNICATION.EH# 3 SO HE CARRIED ME AWAY IN THE SPIRIT INTO THE WILDERNESS: AND I SAW AL WOMAN SIT UPON A SCARLET COLOURED BEAST, FULL OF NAMES OF BLASPHEMY, HAVING SEVEN HEADS AND TEN HORNS.EK# 4 AND THE WOMAN WAS ARRAYED IN PURPLE AND SCARLET COLOUR, AND DECKED WITHHM GOLD AND PRECIOUS STONES AND PEARLS, HAVING A GOLDEN CUP IN HER HAND FULL OFM0 ABOMINATIONS AND FILTHINESS OF HER FORNICATION:M# 5 AND UPON HER FOREHEAD WAS A NAME WRITTEN, MYSTERY, BABYLON THE GREAT, THED1 MOTHER OF HARLOTS AND ABOMINATIONS OF THE EARTH.HJ# 6 AND I SAW THE WOMAN DRUNKEN WITH THE BLOOD OF THE SAINTS, AND WITH THEI BLOOD OF THE MARTYRS OF JESUS: AND WHEN I SAW HER, I WONDERED WITH GREATH ADMIRATION.M# 7 AND THE ANGEL SAID UNTO ME, WHEREFORE DIDST THOU MARVEL? I WILL TELL THEEWM THE MYSTERY OF THE WOMAN, AND OF THE BEAST THAT CARRIETH HER, WHICH HATH THEL SEVEN HEADS AND TEN HORNS.IK# 8 THE BEAST THAT THOU SAWEST WAS, AND IS NOT; AND SHALL ASCEND OUT OF THERN BOTTOMLESS PIT, AND GO INTO PERDITION: AND THEY THAT DWELL ON THE EARTH SHALLM WONDER, WHOSE NAMES WERE NOT WRITTEN IN THE BOOK OF LIFE FROM THE FOUNDATIONOK OF THE WORLD, WHEN THEY BEHOLD THE BEAST THAT WAS, AND IS NOT, AND YET IS.RE# 9 AND HERE IS THE MIND WHICH HATH WISDOM. THE SEVEN HEADS ARE SEVENW' MOUNTAINS, ON WHICH THE WOMAN SITTETH.,M# 10 AND THERE ARE SEVEN KINGS: FIVE ARE FALLEN, AND ONE IS, AND THE OTHER ISSB NOT YET COME; AND WHEN HE COMETH, HE MUST CONTINUE A SHORT SPACE.M# 11 AND THE BEAST THAT WAS, AND IS NOT, EVEN HE IS THE EIGHTH, AND IS OF THEE! SEVEN, AND GOETH INTO PERDITION.WK# 12 AND THE TEN HORNS WHICH THOU SAWEST ARE TEN KINGS, WHICH HAVE RECEIVED G NO KINGDOM AS YET; BUT RECEIVE POWER AS KINGS ONE HOUR WITH THE BEAST. J# 13 THESE HAVE ONE MIND, AND SHALL GIVE THEIR POWER AND STRENGTH UNTO THE BEAST.NJ# 14 THESE SHALL MAKE WAR WITH THE LAMB, AND THE LAMB SHALL OVERCOME THEM:K FOR HE IS LORD OF LORDS, AND KING OF KINGS: AND THEY THAT ARE WITH 00GGsG>%+%O-%TADATADATAHIM AREP" CALLED, AND CHOSEN, AND FAITHFUL.H# 15 AND HE SAITH UNTO ME, THE WATERS WHICH THOU SAWEST, WHERE THE WHORE@ SITTETH, ARE PEOPLES, AND MULTITUDES, AND NATIONS, AND TONGUES.M# 16 AND THE TEN HORNS WHICH THOU SAWEST UPON THE BEAST, THESE SHALL HATE THE K WHORE, AND SHALL MAKE HER DESOLATE AND NAKED, AND SHALL EAT HER FLESH, ANDR BURN HER WITH FIRE.K# 17 FOR GOD HATH PUT IN THEIR HEARTS TO FULFIL HIS WILL, AND TO AGREE, AND:N GIVE THEIR KINGDOM UNTO THE BEAST, UNTIL THE WORDS OF GOD SHALL BE FULFILLED.L# 18 AND THE WOMAN WHICH THOU SAWEST IS THAT GREAT CITY, WHICH REIGNETH OVER THE KINGS OF THE EARTH. = CHAPTER 18 L# 1 AND AFTER THESE THINGS I SAW ANOTHER ANGEL COME DOWN FROM HEAVEN, HAVING9 GREAT POWER; AND THE EARTH WAS LIGHTENED WITH HIS GLORY.WK# 2 AND HE CRIED MIGHTILY WITH A STRONG VOICE, SAYING, BABYLON THE GREAT ISBK FALLEN, IS FALLEN, AND IS BECOME THE HABITATION OF DEVILS, AND THE HOLD OF A EVERY FOUL SPIRIT, AND A CAGE OF EVERY UNCLEAN AND HATEFUL BIRD.OK# 3 FOR ALL NATIONS HAVE DRUNK OF THE WINE OF THE WRATH OF HER FORNICATION,GH AND THE KINGS OF THE EARTH HAVE COMMITTED FORNICATION WITH HER, AND THEC MERCHANTS OF THE EARTH ARE WAXED RICH THROUGH THE ABUNDANCE OF HER DELICACIES.F# 4 AND I HEARD ANOTHER VOICE FROM HEAVEN, SAYING, COME OUT OF HER, MYM PEOPLE, THAT YE BE NOT PARTAKERS OF HER SINS, AND THAT YE RECEIVE NOT OF HER PLAGUES.MF# 5 FOR HER SINS HAVE REACHED UNTO HEAVEN, AND GOD HATH REMEMBERED HER INIQUITIES.M# 6 REWARD HER EVEN AS SHE REWARDED YOU, AND DOUBLE UNTO HER DOUBLE ACCORDINGRC TO HER WORKS: IN THE CUP WHICH SHE HATH FILLED FILL TO HER DOUBLE.FG# 7 HOW MUCH SHE HATH GLORIFIED HERSELF, AND LIVED DELICIOUSLY, SO MUCHUL TORMENT AND SORROW GIVE HER: FOR SHE SAITH IN HER HEART, I SIT A QUEEN, AND& AM NO WIDOW, AND SHALL SEE NO SORROW.I# 8 THEREFORE SHALL HER PLAGUES COME IN ONE DAY, DEATH, AND MOURNING, ANDPN FAMINE; AND SHE SHALL BE UTTERLY BURNED WITH FIRE: FOR STRONG IS THE LORD GOD WHO JUDGETH HER. H# 9 AND THE KINGS OF THE EARTH, WHO HAVE COMMITTED FORNICATION AND LIVEDL DELICIOUSLY WITH HER, SHALL BEWAIL HER, AND LAMENT FOR HER, WHEN THEY SHALL SEE THE SMOKE OF HER BURNING,K# 10 STANDING AFAR OFF FOR THE FEAR OF HER TORMENT, SAYING, ALAS, ALAS THATTL GREAT CITY BABYLON, THAT MIGHTY CITY! FOR IN ONE HOUR IS THY JUDGMENT COME.M# 11 AND THE MERCHANTS OF THE EARTH SHALL WEEP AND MOURN OVER HER; FOR NO MANN# BUYETH THEIR MERCHANDISE ANY MORE:TM# 12 THE MERCHANDISE OF GOLD, AND SILVER, AND PRECIOUS STONES, AND OF PEARLS,EL AND FINE LINEN, AND PURPLE, AND SILK, AND SCARLET, AND ALL THYINE WOOD, ANDK ALL MANNER VESSELS OF IVORY, AND ALL MANNER VESSELS OF MOST PRECIOUS WOOD,N$ AND OF BRASS, AND IRON, AND MARBLE,M# 13 AND CINNAMON, AND ODOURS, AND OINTMENTS, AND FRANKINCENSE, AND WINE, ANDTG OIL, AND FINE FLOUR, AND WHEAT, AND BEASTS, AND SHEEP, AND HORSES, ANDA( CHARIOTS, AND SLAVES, AND SOULS OF MEN.J# 14 AND THE FRUITS THAT THY SOUL LUSTED AFTER ARE DEPARTED FROM THEE, ANDI ALL THINGS WHICH WERE DAINTY AND GOODLY ARE DEPARTED FROM THEE, AND THOU, SHALT FIND THEM NO MORE AT ALL.L# 15 THE MERCHANTS OF THESE THINGS, WHICH WERE MADE RICH BY HER, SHALL STAND; AFAR OFF FOR THE FEAR OF HER TORMENT, WEEPING AND WAILING,DL# 16 AND SAYING, ALAS, ALAS THAT GREAT CITY, THAT WAS CLOTHED IN FINE LINEN,H AND PURPLE, AND SCARLET, AND DECKED WITH GOLD, AND PRECIOUS STONES, AND PEARLS!M# 17 FOR IN ONE HOUR SO GREAT RICHES IS COME TO NOUGHT. AND EVERY SHIPMASTER,PN AND ALL THE COMPANY IN SHIPS, AND SAILORS, AND AS MANY AS TRADE BY SEA, STOOD AFAR OFF,K# 18 AND CRIED WHEN THEY SAW THE SMOKE OF HER BURNING, SAYING, WHAT CITY ISH LIKE UNTO THIS GREAT CITY!AG# 19 AND THEY CAST DUST ON THEIR HEADS, AND CRIED, WEEPING AND WAILING, N SAYING, ALAS, ALAS THAT GREAT CITY, WHEREIN WERE MADE RICH ALL THAT HAD SHIPSN IN THE SEA BY REASON OF HER COSTLINESS! FOR IN ONE HOUR IS SHE MADE DESOLATE.J# 20 REJOICE OVER HER, THOU HEAVEN, AND YE HOLY APOSTLES AND PROPHETS; FOR GOD HATH AVENGED YOU ON HER.PK# 21 AND A MIGHTY ANGEL TOOK UP A STONE LIKE A G00GwGF5%T6%! !REAT MILLSTONE, AND CAST ITDJ INTO THE SEA, SAYING, THUS WITH VIOLENCE SHALL THAT GREAT CITY BABYLON BE0 THROWN DOWN, AND SHALL BE FOUND NO MORE AT ALL.L# 22 AND THE VOICE OF HARPERS, AND MUSICIANS, AND OF PIPERS, AND TRUMPETERS,M SHALL BE HEARD NO MORE AT ALL IN THEE; AND NO CRAFTSMEN, OF WHATSOEVER CRAFTNN HE BE, SHALL BE FOUND ANY MORE IN THEE; AND THE SOUND OF A MILLSTONE SHALL BE HEARD NO MORE AT ALL IN THEE;J# 23 AND THE LIGHT OF A CANDLE SHALL SHINE NO MORE AT ALL IN THEE; AND THEJ VOICE OF THE BRIDEGROOM AND OF THE BRIDE SHALL BE HEARD NO MORE AT ALL INN THEE: FOR THY MERCHANTS WERE THE GREAT MEN OF THE EARTH; FOR BY THY SORCERIES WERE ALL NATIONS DECEIVED.EJ# 24 AND IN HER WAS FOUND THE BLOOD OF PROPHETS, AND OF SAINTS, AND OF ALL THAT WERE SLAIN UPON THE EARTH. = CHAPTER 19 SJ# 1 AND AFTER THESE THINGS I HEARD A GREAT VOICE OF MUCH PEOPLE IN HEAVEN,M SAYING, ALLELUIA; SALVATION, AND GLORY, AND HONOUR, AND POWER, UNTO THE LORDE OUR GOD:EJ# 2 FOR TRUE AND RIGHTEOUS ARE HIS JUDGMENTS: FOR HE HATH JUDGED THE GREATN WHORE, WHICH DID CORRUPT THE EARTH WITH HER FORNICATION, AND HATH AVENGED THE# BLOOD OF HIS SERVANTS AT HER HAND.RJ# 3 AND AGAIN THEY SAID, ALLELUIA AND HER SMOKE ROSE UP FOR EVER AND EVER.D# 4 AND THE FOUR AND TWENTY ELDERS AND THE FOUR BEASTS FELL DOWN AND? WORSHIPPED GOD THAT SAT ON THE THRONE, SAYING, AMEN; ALLELUIA.OJ# 5 AND A VOICE CAME OUT OF THE THRONE, SAYING, PRAISE OUR GOD, ALL YE HIS6 SERVANTS, AND YE THAT FEAR HIM, BOTH SMALL AND GREAT.K# 6 AND I HEARD AS IT WERE THE VOICE OF A GREAT MULTITUDE, AND AS THE VOICE N OF MANY WATERS, AND AS THE VOICE OF MIGHTY THUNDERINGS, SAYING, ALLELUIA: FOR" THE LORD GOD OMNIPOTENT REIGNETH.K# 7 LET US BE GLAD AND REJOICE, AND GIVE HONOUR TO HIM: FOR THE MARRIAGE OFT8 THE LAMB IS COME, AND HIS WIFE HATH MADE HERSELF READY.J# 8 AND TO HER WAS GRANTED THAT SHE SHOULD BE ARRAYED IN FINE LINEN, CLEAN> AND WHITE: FOR THE FINE LINEN IS THE RIGHTEOUSNESS OF SAINTS.K# 9 AND HE SAITH UNTO ME, WRITE, BLESSED ARE THEY WHICH ARE CALLED UNTO THEIN MARRIAGE SUPPER OF THE LAMB. AND HE SAITH UNTO ME, THESE ARE THE TRUE SAYINGS OF GOD.L# 10 AND I FELL AT HIS FEET TO WORSHIP HIM. AND HE SAID UNTO ME, SEE THOU DOL IT NOT: I AM THY FELLOWSERVANT, AND OF THY BRETHREN THAT HAVE THE TESTIMONYM OF JESUS: WORSHIP GOD: FOR THE TESTIMONY OF JESUS IS THE SPIRIT OF PROPHECY.AL# 11 AND I SAW HEAVEN OPENED, AND BEHOLD A WHITE HORSE; AND HE THAT SAT UPONN HIM WAS CALLED FAITHFUL AND TRUE, AND IN RIGHTEOUSNESS HE DOTH JUDGE AND MAKE WAR. L# 12 HIS EYES WERE AS A FLAME OF FIRE, AND ON HIS HEAD WERE MANY CROWNS; AND9 HE HAD A NAME WRITTEN, THAT NO MAN KNEW, BUT HE HIMSELF.EG# 13 AND HE WAS CLOTHED WITH A VESTURE DIPPED IN BLOOD: AND HIS NAME ISL CALLED THE WORD OF GOD.H# 14 AND THE ARMIES WHICH WERE IN HEAVEN FOLLOWED HIM UPON WHITE HORSES,( CLOTHED IN FINE LINEN, WHITE AND CLEAN.K# 15 AND OUT OF HIS MOUTH GOETH A SHARP SWORD, THAT WITH IT HE SHOULD SMITEWL THE NATIONS: AND HE SHALL RULE THEM WITH A ROD OF IRON: AND HE TREADETH THE7 WINEPRESS OF THE FIERCENESS AND WRATH OF ALMIGHTY GOD.DH# 16 AND HE HATH ON HIS VESTURE AND ON HIS THIGH A NAME WRITTEN, KING OF KINGS, AND LORD OF LORDS.L# 17 AND I SAW AN ANGEL STANDING IN THE SUN; AND HE CRIED WITH A LOUD VOICE,I SAYING TO ALL THE FOWLS THAT FLY IN THE MIDST OF HEAVEN, COME AND GATHER,6 YOURSELVES TOGETHER UNTO THE SUPPER OF THE GREAT GOD;K# 18 THAT YE MAY EAT THE FLESH OF KINGS, AND THE FLESH OF CAPTAINS, AND THESL FLESH OF MIGHTY MEN, AND THE FLESH OF HORSES, AND OF THEM THAT SIT ON THEM,D AND THE FLESH OF ALL MEN, BOTH FREE AND BOND, BOTH SMALL AND GREAT.G# 19 AND I SAW THE BEAST, AND THE KINGS OF THE EARTH, AND THEIR ARMIES,DM GATHERED TOGETHER TO MAKE WAR AGAINST HIM THAT SAT ON THE HORSE, AND AGAINST, HIS ARMY.I# 20 AND THE BEAST WAS TAKEN, AND WITH HIM THE FALSE PROPHET THAT WROUGHTEL MIRACLES BEFORE HIM, WITH WHICH HE DECEIVED THEM THAT HAD RECEIVED THE MARKM OF THE BEAST, AND THEM THAT WORSHIPPED HIS IMAGE. THESE BOTH WERE CAST ALIVES, INTO A LAKE OF FIRE BURNING W00GGsG>%+%O-%TADATADATAITH BRIMSTONE.G# 21 AND THE REMNANT WERE SLAIN WITH THE SWORD OF HIM THAT SAT UPON THEAM HORSE, WHICH SWORD PROCEEDED OUT OF HIS MOUTH: AND ALL THE FOWLS WERE FILLEDO WITH THEIR FLESH. = CHAPTER 20 N# 1 AND I SAW AN ANGEL COME DOWN FROM HEAVEN, HAVING THE KEY OF THE BOTTOMLESS# PIT AND A GREAT CHAIN IN HIS HAND.EM# 2 AND HE LAID HOLD ON THE DRAGON, THAT OLD SERPENT, WHICH IS THE DEVIL, AND' SATAN, AND BOUND HIM A THOUSAND YEARS,II# 3 AND CAST HIM INTO THE BOTTOMLESS PIT, AND SHUT HIM UP, AND SET A SEALMN UPON HIM, THAT HE SHOULD DECEIVE THE NATIONS NO MORE, TILL THE THOUSAND YEARSG SHOULD BE FULFILLED: AND AFTER THAT HE MUST BE LOOSED A LITTLE SEASON.FJ# 4 AND I SAW THRONES, AND THEY SAT UPON THEM, AND JUDGMENT WAS GIVEN UNTOH THEM: AND I SAW THE SOULS OF THEM THAT WERE BEHEADED FOR THE WITNESS OFH JESUS, AND FOR THE WORD OF GOD, AND WHICH HAD NOT WORSHIPPED THE BEAST,M NEITHER HIS IMAGE, NEITHER HAD RECEIVED HIS MARK UPON THEIR FOREHEADS, OR INTF THEIR HANDS; AND THEY LIVED AND REIGNED WITH CHRIST A THOUSAND YEARS.J# 5 BUT THE REST OF THE DEAD LIVED NOT AGAIN UNTIL THE THOUSAND YEARS WERE* FINISHED. THIS IS THE FIRST RESURRECTION.L# 6 BLESSED AND HOLY IS HE THAT HATH PART IN THE FIRST RESURRECTION: ON SUCHH THE SECOND DEATH HATH NO POWER, BUT THEY SHALL BE PRIESTS OF GOD AND OF3 CHRIST, AND SHALL REIGN WITH HIM A THOUSAND YEARS.WM# 7 AND WHEN THE THOUSAND YEARS ARE EXPIRED, SATAN SHALL BE LOOSED OUT OF HISS PRISON,M# 8 AND SHALL GO OUT TO DECEIVE THE NATIONS WHICH ARE IN THE FOUR QUARTERS OFAL THE EARTH, GOG, AND MAGOG, TO GATHER THEM TOGETHER TO BATTLE: THE NUMBER OF WHOM IS AS THE SAND OF THE SEA.K# 9 AND THEY WENT UP ON THE BREADTH OF THE EARTH, AND COMPASSED THE CAMP OFRK THE SAINTS ABOUT, AND THE BELOVED CITY: AND FIRE CAME DOWN FROM GOD OUT OFP HEAVEN, AND DEVOURED THEM.,H# 10 AND THE DEVIL THAT DECEIVED THEM WAS CAST INTO THE LAKE OF FIRE ANDM BRIMSTONE, WHERE THE BEAST AND THE FALSE PROPHET ARE, AND SHALL BE TORMENTEDO! DAY AND NIGHT FOR EVER AND EVER. L# 11 AND I SAW A GREAT WHITE THRONE, AND HIM THAT SAT ON IT, FROM WHOSE FACEK THE EARTH AND THE HEAVEN FLED AWAY; AND THERE WAS FOUND NO PLACE FOR THEM. I# 12 AND I SAW THE DEAD, SMALL AND GREAT, STAND BEFORE GOD; AND THE BOOKSUM WERE OPENED: AND ANOTHER BOOK WAS OPENED, WHICH IS THE BOOK OF LIFE: AND THEUF DEAD WERE JUDGED OUT OF THOSE THINGS WHICH WERE WRITTEN IN THE BOOKS, ACCORDING TO THEIR WORKS.F# 13 AND THE SEA GAVE UP THE DEAD WHICH WERE IN IT; AND DEATH AND HELLI DELIVERED UP THE DEAD WHICH WERE IN THEM: AND THEY WERE JUDGED EVERY MANT ACCORDING TO THEIR WORKS.K# 14 AND DEATH AND HELL WERE CAST INTO THE LAKE OF FIRE. THIS IS THE SECONDM DEATH.AJ# 15 AND WHOSOEVER WAS NOT FOUND WRITTEN IN THE BOOK OF LIFE WAS CAST INTO THE LAKE OF FIRE. = CHAPTER 21 ,N# 1 AND I SAW A NEW HEAVEN AND A NEW EARTH: FOR THE FIRST HEAVEN AND THE FIRST3 EARTH WERE PASSED AWAY; AND THERE WAS NO MORE SEA.KL# 2 AND I JOHN SAW THE HOLY CITY, NEW JERUSALEM, COMING DOWN FROM GOD OUT OF5 HEAVEN, PREPARED AS A BRIDE ADORNED FOR HER HUSBAND.JM# 3 AND I HEARD A GREAT VOICE OUT OF HEAVEN SAYING, BEHOLD, THE TABERNACLE OF L GOD IS WITH MEN, AND HE WILL DWELL WITH THEM, AND THEY SHALL BE HIS PEOPLE,6 AND GOD HIMSELF SHALL BE WITH THEM, AND BE THEIR GOD.L# 4 AND GOD SHALL WIPE AWAY ALL TEARS FROM THEIR EYES; AND THERE SHALL BE NON MORE DEATH, NEITHER SORROW, NOR CRYING, NEITHER SHALL THERE BE ANY MORE PAIN:' FOR THE FORMER THINGS ARE PASSED AWAY. L# 5 AND HE THAT SAT UPON THE THRONE SAID, BEHOLD, I MAKE ALL THINGS NEW. AND? HE SAID UNTO ME, WRITE: FOR THESE WORDS ARE TRUE AND FAITHFUL. L# 6 AND HE SAID UNTO ME, IT IS DONE. I AM ALPHA AND OMEGA, THE BEGINNING ANDN THE END. I WILL GIVE UNTO HIM THAT IS ATHIRST OF THE FOUNTAIN OF THE WATER OF LIFE FREELY. K# 7 HE THAT OVERCOMETH SHALL INHERIT ALL THINGS; AND I WILL BE HIS GOD, ANDR HE SHALL BE MY SON.L# 8 BUT THE FEARFUL, AND UNBELIEVING, AND THE ABOMINABLE, AND MURDERERS, ANDL WHOREMONGERS, AND SORCERERS, AND IDOLATERS, AND ALL LIARS, SHALL HAVE THEIRL PART IN THE LAK00GwGF5%T6%! !E WHICH BURNETH WITH FIRE AND BRIMSTONE: WHICH IS THE SECOND DEATH. L# 9 AND THERE CAME UNTO ME ONE OF THE SEVEN ANGELS WHICH HAD THE SEVEN VIALSK FULL OF THE SEVEN LAST PLAGUES, AND TALKED WITH ME, SAYING, COME HITHER, IL* WILL SHEW THEE THE BRIDE, THE LAMBS WIFE.K# 10 AND HE CARRIED ME AWAY IN THE SPIRIT TO A GREAT AND HIGH MOUNTAIN, AND M SHEWED ME THAT GREAT CITY, THE HOLY JERUSALEM, DESCENDING OUT OF HEAVEN FROMG GOD,DF# 11 HAVING THE GLORY OF GOD: AND HER LIGHT WAS LIKE UNTO A STONE MOST6 PRECIOUS, EVEN LIKE A JASPER STONE, CLEAR AS CRYSTAL;J# 12 AND HAD A WALL GREAT AND HIGH, AND HAD TWELVE GATES, AND AT THE GATESL TWELVE ANGELS, AND NAMES WRITTEN THEREON, WHICH ARE THE NAMES OF THE TWELVE" TRIBES OF THE CHILDREN OF ISRAEL:J# 13 ON THE EAST THREE GATES; ON THE NORTH THREE GATES; ON THE SOUTH THREE$ GATES; AND ON THE WEST THREE GATES.K# 14 AND THE WALL OF THE CITY HAD TWELVE FOUNDATIONS, AND IN THEM THE NAMESD$ OF THE TWELVE APOSTLES OF THE LAMB.J# 15 AND HE THAT TALKED WITH ME HAD A GOLDEN REED TO MEASURE THE CITY, AND) THE GATES THEREOF, AND THE WALL THEREOF. E# 16 AND THE CITY LIETH FOURSQUARE, AND THE LENGTH IS AS LARGE AS THEAK BREADTH: AND HE MEASURED THE CITY WITH THE REED, TWELVE THOUSAND FURLONGS.E; THE LENGTH AND THE BREADTH AND THE HEIGHT OF IT ARE EQUAL.EL# 17 AND HE MEASURED THE WALL THEREOF, AN HUNDRED AND FORTY AND FOUR CUBITS,: ACCORDING TO THE MEASURE OF A MAN, THAT IS, OF THE ANGEL.L# 18 AND THE BUILDING OF THE WALL OF IT WAS OF JASPER: AND THE CITY WAS PURE GOLD, LIKE UNTO CLEAR GLASS.CH# 19 AND THE FOUNDATIONS OF THE WALL OF THE CITY WERE GARNISHED WITH ALLH MANNER OF PRECIOUS STONES. THE FIRST FOUNDATION WAS JASPER; THE SECOND,; SAPPHIRE; THE THIRD, A CHALCEDONY; THE FOURTH, AN EMERALD;LJ# 20 THE FIFTH, SARDONYX; THE SIXTH, SARDIUS; THE SEVENTH, CHRYSOLYTE; THEN EIGHTH, BERYL; THE NINTH, A TOPAZ; THE TENTH, A CHRYSOPRASUS; THE ELEVENTH, A# JACINTH; THE TWELFTH, AN AMETHYST.K# 21 AND THE TWELVE GATES WERE TWELVE PEARLS: EVERY SEVERAL GATE WAS OF ONEH PEARL: AND THE STREET OF THE CITY WAS PURE GOLD, AS IT WERE TRANSPARENT GLASS.RL# 22 AND I SAW NO TEMPLE THEREIN: FOR THE LORD GOD ALMIGHTY AND THE LAMB ARE THE TEMPLE OF IT.J# 23 AND THE CITY HAD NO NEED OF THE SUN, NEITHER OF THE MOON, TO SHINE INL IT: FOR THE GLORY OF GOD DID LIGHTEN IT, AND THE LAMB IS THE LIGHT THEREOF.K# 24 AND THE NATIONS OF THEM WHICH ARE SAVED SHALL WALK IN THE LIGHT OF IT:WD AND THE KINGS OF THE EARTH DO BRING THEIR GLORY AND HONOUR INTO IT.L# 25 AND THE GATES OF IT SHALL NOT BE SHUT AT ALL BY DAY: FOR THERE SHALL BE NO NIGHT THERE.F# 26 AND THEY SHALL BRING THE GLORY AND HONOUR OF THE NATIONS INTO IT.F# 27 AND THERE SHALL IN NO WISE ENTER INTO IT ANY THING THAT DEFILETH,L NEITHER WHATSOEVER WORKETH ABOMINATION, OR MAKETH A LIE: BUT THEY WHICH ARE# WRITTEN IN THE LAMBS BOOK OF LIFE. = CHAPTER 22 AE# 1 AND HE SHEWED ME A PURE RIVER OF WATER OF LIFE, CLEAR AS CRYSTAL,5 PROCEEDING OUT OF THE THRONE OF GOD AND OF THE LAMB.NJ# 2 IN THE MIDST OF THE STREET OF IT, AND ON EITHER SIDE OF THE RIVER, WASL THERE THE TREE OF LIFE, WHICH BARE TWELVE MANNER OF FRUITS, AND YIELDED HERJ FRUIT EVERY MONTH: AND THE LEAVES OF THE TREE WERE FOR THE HEALING OF THE NATIONS.TK# 3 AND THERE SHALL BE NO MORE CURSE: BUT THE THRONE OF GOD AND OF THE LAMBY2 SHALL BE IN IT; AND HIS SERVANTS SHALL SERVE HIM:J# 4 AND THEY SHALL SEE HIS FACE; AND HIS NAME SHALL BE IN THEIR FOREHEADS.M# 5 AND THERE SHALL BE NO NIGHT THERE; AND THEY NEED NO CANDLE, NEITHER LIGHTDN OF THE SUN; FOR THE LORD GOD GIVETH THEM LIGHT: AND THEY SHALL REIGN FOR EVER AND EVER.J# 6 AND HE SAID UNTO ME, THESE SAYINGS ARE FAITHFUL AND TRUE: AND THE LORDM GOD OF THE HOLY PROPHETS SENT HIS ANGEL TO SHEW UNTO HIS SERVANTS THE THINGS  WHICH MUST SHORTLY BE DONE.I# 7 BEHOLD, I COME QUICKLY: BLESSED IS HE THAT KEEPETH THE SAYINGS OF THEI PROPHECY OF THIS BOOK.EI# 8 AND I JOHN SAW THESE THINGS, AND HEARD THEM. AND WHEN I HAD HEARD ANDEJ SEEN, I FELL DOWN TO WORSHIP BEFORE THE FEET OF THE ANGEL WHICH SHEWED ME THE00GHH>%+%O-%TADATADATASE THINGS.J# 9 THEN SAITH HE UNTO ME, SEE THOU DO IT NOT: FOR I AM THY FELLOWSERVANT,M AND OF THY BRETHREN THE PROPHETS, AND OF THEM WHICH KEEP THE SAYINGS OF THISH BOOK: WORSHIP GOD. M# 10 AND HE SAITH UNTO ME, SEAL NOT THE SAYINGS OF THE PROPHECY OF THIS BOOK:  FOR THE TIME IS AT HAND. L# 11 HE THAT IS UNJUST, LET HIM BE UNJUST STILL: AND HE WHICH IS FILTHY, LETK HIM BE FILTHY STILL: AND HE THAT IS RIGHTEOUS, LET HIM BE RIGHTEOUS STILL:T, AND HE THAT IS HOLY, LET HIM BE HOLY STILL.M# 12 AND, BEHOLD, I COME QUICKLY; AND MY REWARD IS WITH ME, TO GIVE EVERY MANA ACCORDING AS HIS WORK SHALL BE.M# 13 I AM ALPHA AND OMEGA, THE BEGINNING AND THE END, THE FIRST AND THE LAST.HK# 14 BLESSED ARE THEY THAT DO HIS COMMANDMENTS, THAT THEY MAY HAVE RIGHT TOTD THE TREE OF LIFE, AND MAY ENTER IN THROUGH THE GATES INTO THE CITY.J# 15 FOR WITHOUT ARE DOGS, AND SORCERERS, AND WHOREMONGERS, AND MURDERERS,6 AND IDOLATERS, AND WHOSOEVER LOVETH AND MAKETH A LIE.I# 16 I JESUS HAVE SENT MINE ANGEL TO TESTIFY UNTO YOU THESE THINGS IN THENG CHURCHES. I AM THE ROOT AND THE OFFSPRING OF DAVID, AND THE BRIGHT ANDB MORNING STAR.J# 17 AND THE SPIRIT AND THE BRIDE SAY, COME. AND LET HIM THAT HEARETH SAY,M COME. AND LET HIM THAT IS ATHIRST COME. AND WHOSOEVER WILL, LET HIM TAKE THE  WATER OF LIFE FREELY.K# 18 FOR I TESTIFY UNTO EVERY MAN THAT HEARETH THE WORDS OF THE PROPHECY OF N THIS BOOK, IF ANY MAN SHALL ADD UNTO THESE THINGS, GOD SHALL ADD UNTO HIM THE' PLAGUES THAT ARE WRITTEN IN THIS BOOK:EF# 19 AND IF ANY MAN SHALL TAKE AWAY FROM THE WORDS OF THE BOOK OF THISK PROPHECY, GOD SHALL TAKE AWAY HIS PART OUT OF THE BOOK OF LIFE, AND OUT OFIC THE HOLY CITY, AND FROM THE THINGS WHICH ARE WRITTEN IN THIS BOOK.DI# 20 HE WHICH TESTIFIETH THESE THINGS SAITH, SURELY I COME QUICKLY. AMEN.R EVEN SO, COME, LORD JESUS.T=# 21 THE GRACE OF OUR LORD JESUS CHRIST BE WITH YOU ALL. AMEN M N F J I TH, SURELY I COME QUICKLY. AMEN.R EVEN SO, COME, LORD JESUS.T=# 21 THE GRACE OF OUR LORD JESUS CHRIST BE WITH YOU ALL. AMEN M N <1 REM ::: FILENAME = GENI ::::::::::::::::::::<2 REM :: THIS PROGRAM GENERATES THE BIBLE.I INDEX FILE ::<3 REM :::::::::::::::::::::::::::::::::::::::::::::::::::::10 DIM #1,A$(4.42880E+06)=120 OPEN "BIBLE.BIB" AS FILE #130 DIM #2,I(66,150)40 OPEN "BIBLE.I" AS FILE #2 50 I(66,0)=22100 FOR I=0 TO 4.42870E+06 101 A$=A$(I)110 IF A$="*" THEN GOSUB 200120 IF A$="=" THEN GOSUB 300 150 NEXT I160 PRINT CLK$190 CHAIN "GENR" 200 B=B+1 201 PRINT 202 PRINT "B";B;210 I(B-1,0)=C220 C=0N 290 RETURN 300 C=C+1:303 PRINT C;I; 310 I(B,C)=I 390 RETURNNERATES THE BIBLE.I INDEX FILE ::<3 REM :::::::::::::::::::::::::::::::::::::::::::::::::::::10 DIM #1,A$(4.42880E+06)=120 OPEN "BIBLE.BIB" AS FILE #130 DIM #2,I(66,150)40 OPEN "BIBLE.I" AS FILE #2 50 I(66,0)=22100 FOR I=0 TO 4.42870E+06 101 A$=A$(I)110 IF A$="*" THEN GOSUB 200120 IF A$="=" THEN GOSUB 300 150 NEXT I160 PRINT CLK$190 CHAIN "GENR" 200 B=B+1 201 PRINT 202 PRINT "B";B;O1 REM :::::::::::::::: FILENAME = GENL ::::::::::::::::::::::::::::::::: O2 REM :: THIS PROGRAM GENERATES ANY LENGTH OF LINE BIBLE.OUT FROM BIBLE.BIB ::;O3 REM :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::334 OPEN "BIBLE.OUT" FOR OUTPUT AS FILE #2 DOUBLE BUF 5 C1$=CHR$(10)6 C2$=CHR$(13)7 C3$=CHR$(32)N8 REM ............ LINE 9 L=78 IS LENGTH OF LINE -2 < CR & LF > ....9 L=7810 DIM #1,4.42880E+06)=120 OPEN "BIBLE.BIB" AS FILE #190 PRINT #2,O$00HHH H6%! !91 O$=""92 P=1 94 O$=O$+C$ 96 IF C$="*" THEN O$=O$+C3$: 100 C$=A$(C) 110 C=C+1 112 IF C$=C1$ THEN 100114 IF C$=C2$ THEN 100 115 P=P+1 116 IF C$="*" THEN 90E117 IF C$="=" THEN 90:118 IF C$="#" THEN 90:119 IF P<=L THEN 1900120 REM .... FIX LINE TO END WITH SPACE .....130 IF C$=C3$ THEN 901132 I=0= 133 I=I+1 134 IF C3$<>A$(C-I) THEN 133140 O$=SEG$(O$,1,L-I+1) 142 C=C-I+1E 144 C$=C3$ 180 GO TO 90 190 O$=O$+C$ 195 GO TO 100120 OPEN "BIBLE.BIB" AS FILE #190 PRINT #2,O$CTHE FILES ON THIS DISTRIBUTION ARE FORMATED TO BE 80 CHARATERS MAX. > THE GENL PROGRAM WILL MAKE THE BIBLE ANY LENGTH (OF LINES), 1) SET L=?? IN GENL.BAS < LINE 9 >I 2) CHANGE FILENAME IN GENL.BAS < LINE 4 BIBLE.OUT > I.E. BIB80.BIBC> 3) FIND LENGTH OF NEW FILENAME IE. BIB80.BIB = 4.41088E6? 4) CHANGE NAME IN GENI.BAS & LENGTH OF BIB80.BIB THEN RUN)? 5) CHANGE NAME IN GENR.BAS & LENGTH OF BIB80.BIB THEN RUN = 6) FIX BIB80.R & BIB80.I FOR BOOK 66 # OF CHAPTERS 7 7) CHANGE NAME AND LENGTH IN BIBCV.BAS & SEARCH.BASSJ__________________________________________________________________________&THE FORMAT FOR THE BOOK??.BIB FILES "* MARKS THE BEGINNING OF EACH BOOK%= MARKS THE BEGINNING OF EACH CHAPTER## MARKS THE BEGINNING OF EACH VERSEE BBNOTE: THESE MARKERS ( * = # ) DO NOT APPEAR ANYPLACE IN THE TEXT.D WHENEVER THESE MARKERS ARE USED THEY ARE THE VERY FIRST CHAR.A EVERY NON MARKED LINE STARTS WITH A SPACE ( ASCII #32. )F CHAA1 REM ::::::::::::: FILENAME = GENR :::::::::::::::: A2 REM :: THIS PROGRAM GENERATES THE BIBLE.R INDEX FILE ::DA3 REM :::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 350 OPEN "BIBLE.BIB" FOR INPUT AS FILE #3 DOUBLE BUFT60 DIM #4,R(66,150)070 OPEN "BIBLE.R" AS FILE #4 80 R(66,0)=22CE90 REM FOR BIBLE.BIB DISTRIBUTION 72566 IS ACTUAL .....A,100 FOR I=1 TO 100000 \ REM 72566 .......110 LINPUT #3,A$111 S$=SEG$(A$,1,1)I120 IF S$="*" THEN GOSUB 200 130 IF S$="=" THEN GOSUB 300= 190 NEXT I199 STOP 200 B=B+1 201 PRINT 202 PRINT "B";B;210 R(B-1,0)=C220 C=0L 290 RETURN 300 C=C+1:303 PRINT C;I; 310 R(B,C)=I 390 RETURN::::::::::: 350 OPEN "BIBLE.BIB" FOR INPUT AS FILE #3 DOUBLE BUFT60 DIM #4,R(66,150)070 OPEN "BIBLE.R" AS FILE #4 80 R(66,0)=22CE90 REM FOR BIBLE.BIB DISTRIBUTION 72566 IS ACTUAL .....A,100 FOR I=1 TO 100000 \ REM 72566 .......110 LINPUT #3,A$111 S$=SEG$(A$,1,1)I120 IF S$="*" THEN GOSUB J1 REM :::::::::: FILENAME = MKNBRK.BAS ::::::::::::::::::::::::J2 REM :: THIS FILE WILL MAKE/BREAK 66 FILES TO/FROM 1 FILE ::J3 REM ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::10 DIM #2,R(66,150)= 12 DIM L(67)20 OPEN "BIBLE.R" AS FILE #225 L(1)=R(2,1)-226 L(66)=R(66,23)-R(66,1)+1130 FOR I=2 TO 6532 L(I)=R(I+1,1)-R(I,1)T 39 NEXT IF40 PRINT " MAKE OR BREAK "; 41 INPUT A$R42 S$=SEG$(A$,1,1)44 IF S$="B" THEN 100 46 IF S$="M" THEN 200;147 PRINT CHR$(7);"ONLY MAKE OR BREAK PLEASE..." 48 GO TO 40:>99 REM ...... BREAK BIBLE.BIB INTO BOOK??.BIB .....100 F$="BIBLE.BIB"+110 OPEN F$ FOR INPUT AS FILE #1 DOUBLE BUF:112 FOR J=1 TO 66:*113 O$="BOOK"+SEG$(STR$(100+J),2,3)+".BIB",114 OPEN O$ FOR OUTPUT AS FILE #3 DOUBLE BUF117 FOR I=1 TO L(J)6120 LINPUT #1,A$125 PRINT #3,A$ 140 NEXT I 141 CLOSE #3 142 PRINT J;150 REM NEXT BOOK ....... 160 NEXT J 170 GO TO 900,=199 REM ---- MAKE BOOK??.BIB INTO BIBLE.BIB ----------C5200 OPEN "BIBLE.BIB" FOR OUTPUT AS FILE #3 DOUBLE BUF201 FOR J=1 TO 66 *202 F$="BOOK"+SEG$(STR$(100+J),2,3)+".BIB"+204 OPEN F$ FOR INPUT AS FILE #1 DOUBLE BUFF210 FOR I=1 TO L(J)1220 LINPUT #1,A$230 PRINT #3,A$$ 250 NEXT I 252 CLOSE #1 254 PRINT J; 260 NEXT J900 ENDOUBLE BUF117 FOR I=1 TO L(J)6120 LINPUT #1,A$125 PRINT #3,A$ 140 NEXT I 141 CLOSE #3 142 PRINT J;150 REM NEXT BOOK ....... 160 NEXT J 170 GO TO 900,=199 REM ---- MAKE BOOK??.BIB INTO BIBLE.BIB -00 HHHH+%O-%TADATADATA<1 REM :::::::::: FILENAME = PRINTI :::::::::::::::<2 REM :: THIS PROGRAM WILL PRINT THE BIBLE.I VALUES ::<3 REM ::::::::::::::::::::::::::::::::::::::::::::::::::::::30 DIM #2,I(66,150)040 OPEN "BIBLE.I" AS FILE #2100 FOR I=1 TO 66# 110 PRINT *111 PRINT "BOOK";I;"HAS";I(I,0);"CHAPTERS"200 FOR J=1 TO I(I,0)8210 PRINT J;"=";I(I,J), 290 NEXT J 300 NEXT I0120 IF A$="=" THEN GOSUB 300 150 NEXT I160 PRINT CLK$190 CHAIN "GENR" 200 B=B+1 201 PRINT 202 PRINT "B";B;;1 REM ::::::::::::: FILENAME = PRINTR ::::::;2 REM :: THIS PROGRAM WILL PRINT THE BIBLE.R VALUES :::;3 REM ::::::::::::::::::::::::::::::::::::::::::::::::::::30 DIM #3,R(66,150)040 OPEN "BIBLE.R" AS FILE #3100 FOR I=1 TO 66# 110 PRINT *111 PRINT "BOOK";I;"HAS";R(I,0);"CHAPTERS"200 FOR J=1 TO R(I,0)8210 PRINT J;"=";R(I,J), 290 NEXT J 300 NEXT I0120 IF A$="=" THEN GOSUB 300 150 NEXT I160 PRINT CLK$190 CHAIN "GENR" 200 B=B+1 201 PRINT 202 PRINT "B";B; MINIMUM REQUIREMENTS =====================;1) 5 MEG OF DISK [ FLOPPY ONLY SYSTEMS DON'T MAKE SENCE ]L2) BASIC [ ALL THE SOURCES ARE IN BASIC 11 -THE MIN. COM. DENOM.-]K___________________________________________________________________________& QUICK AND DIRTY UP & RUNNING& ===================================F1) COPY BIBLE.BIB,BIBLE.I,BIBLE.R,BIBCV.BAS,SEARCH.BAS FROM TAPE....@2) START UP BASIC AND RUN BIBCV TO PRINT CHAPTER AND VERSE@ OR SEARCH TO FIND ALL STRING MATCHESJ__________________________________________________________________________& DISKETTE ONLY OR NONE TAPE SYSTEMS& ===================================/1) COPY 66 FILES NAMED BOOK??.BIB TO YOUR DISK_D2) COPY MKNBRK.BAS,BIBLE.I,BIBLE.R,BIBCV.BAS,SEARCH.BAS TO YOUR DISK@3) RUN MKNBRK.BAS ( THIS WILL MAKE BIBLE.BIB FROM BOOK??.BIB )J NOTE: YOU CAN ERASE BOOK??.BIB AT THIS POINT IF YOU NEED SPACE@4) START UP BASIC AND RUN BIBCV TO PRINT CHAPTER AND VERSE@ OR SEARCH TO FIND ALL STRING MATCHES____________________________________& DISKETTE ONLY OR NONE TAPE SYSTEMS& ===================================/1) COPY 66 FILES NAMED BOOK??.BIB TO YOUR DISK_D2) COPY MKNBRK.BAS,BIBLE.I,BIBLE.R,BIBCV.BAS,SEARCH.BAS TO YOUR DISK@3) RUN MKNBRK.BAS ( THIS WILL MAKE BIBLE.BIB FROM BOOK??.BIB )J NOTE: YOU CAN ERASE BOOK??.BIB AT THIS POINT IF YOU NEED SPACE@4) START UP BASIC AND RUN BIBCV TO PRINT10 REM ::::: SEARCH4 14 DIM B$(66)1 15 GOSUB 36#20 B$=TIME$(0)!21 PRINT "STRING TO SEARCH FOR ";L 22 INPUT S$E24 IF S$= "END" THEN 900#31 IF LEN(S$)<6 THEN F1$=S$+".FIN" O 32 GOTO 3433 F1$=SEG$(S$,1,6)+".FIN"!34 OPEN F1$ FOR OUTPUT AS FILE #2N 35 GOTO 5036 FOR I= 1 TO 66 37 READ B$(I) 38 NEXT IT 39 RETURN G50 DATA GENESIS,EXODUS,LEVITICUS,NUMBERS,DEUTERONOMY,JOSHUA,JUDGES,RUTH0K52 DATA 1SAMUEL,2SAMUEL,1KINGS,2KINGS,1CHRONICLES,2CHRONICLES,EZRA,NEHEMIAHFO54 DATA ESTHER,JOB,PSALMS,PROVERBS,ECCLESIASTES,SONG OF SOLOMON,ISAIAH,JEREMIAH#A56 DATA LEMENTATIONS,EZEKIEL,DANIEL,HOSEA,JOEL,AMOS,OBADIAH,JONAH?58 DATA MICAH,NAHUM,HABAKKUK,ZEPHANIAH,HAGGAI,ZECHARIAH,MALACHI2D60 DATA MATTHEW,MARK,LUKE,JOHN,ACTS,ROMANS,1CORINTHIANS,2CORINTHIANSP62 DATA GALATIANS,EPHESIANS,PHILIPPIANS,COLOSSIANS,1THESSALONIANS,2THESSALONIANS64 DATA 1TIMOTHY,2TIMOTHYNI66 DATA TITUS,PHILEMON,HEBREWS,JAMES,1PETER,2PETER,1JOHN,2JOHN,3JOHN,JUDEG68 DATA REVALTIONND69 REM ......... 70-99 IS FOR DATA TO SEARCH FOR ............. 99 DATA ENDO100 FOR I=1 TO 66*110 F$="BOOK"+SEG$(STR$(100+I),2,3)+".BIB"112 C=0B114 C$="CHAPTER 1" 120 OPEN F$ FOR INPUT AS FILE #1122 ON ERROR GOTO 1902130 LINPUT #1,A$ 131 C=C+1O2132 IF SEG$(A$,1,4)="=" THEN C$=SEG$(A$,6,LEN(A$))133 P=POS(A$,S$,1)134 IF P=0 THEN 1301%135 PRINT #2, SEG$(F$,1,6),B$(I),C$,CTJ136 IF LEN(A$)<64 THEN PRINT #2, SEG$(F$,1,6);" ";B$(I);" ";A$ \ GOTO 150-139 IF LEN(A$)<65 THEN PRINT #2,A$ \ GOTO 150.140 A1$=SEG$(A$,1,64) 141 A2$=00HHH H6%! !SEG$(A$,65,LEN(A$)).144 PRINT #2,A1$145 PRINT #2,A2$150 LINPUT #1,A$ E.151 IF LEN(A$)<64 THEN PRINT #2, A$ \ GOTO 160152 A1$=SEG$(A$,1,64) 153 A2$=SEG$(A$,65,LEN(A$))R154 PRINT #2,A1$156 PRINT #2,A2$ 160 PRINT #2 180 GOTO 130 190 CLOSE #1194 RESUME 200 200 NEXT I 204 CLOSE #2900 PRINT "FINISHED"R999 ENDEG$(F$,1,6),B$(I),C$,CTJ136 IF LEN(A$)<64 THEN PRINT #2, SEG$(F$,1,6);" ";B$(I);" ";A$ \ GOTO 150-139 IF LEN(A$)<65 THEN PRINT #2,A$ \ GOTO 150.140 A1$=SEG$(A$,1,64) 141 A2$=H1 REM :::: FILENAME = SEARCH ::::::::::::::::::::::::::::::::H2 REM :: THIS PROGRAM WILL FIND ALL THE MATCHES TO YOUR INPUT STRING ::H3 REM ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::810 REM NUMBER OF CHARS IN FRONT OF FOUND VERSE.......11 F=128512 REM NUMBER OF CHARS IN BACK OF FOUND VERSE...... 13 B=128K14 REM F=0 B=0 \ REM CAUSES A$(N) TO PRINT NOEDITING...MAKESITFASTER15 DIM R%(66,150)S518 REM NORMAL .................. S$ = SEARCH STRING$19 S0=1 20 DIM #3,R(66,150) 30 OPEN "BIBLE.I" AS FILE #340 FOR I%=1% TO 66% 41 R%(I%,0%)=R(I%,0%)I42 FOR J%=1 TO R%(I%,0)R45 R%(I%,J%)=INT(R(I%,J%)/255) 46 NEXT J% 47 NEXT I% 50 CLOSE #3: 70 DIM B$(66):80 FOR I%=1% TO 66% 81 READ B$(I%) 82 NEXT I%G90 DATA GENISIS,EXODUS,LEVITICUS,NUMBERS,DEUTERONOMY,JOSHUA,JUDGES,RUTH.C100 DATA 1SAMUEL,2SAMUEL,1KINGS,2KINGS,1CHRONICLES,2CHRONICLES,EZRATH110 DATA NEHEMIAH,ESTHER,JOB,PSALMS,PROVERBS,ECCLESIATES,SONG OF SOLOMOND120 DATA ISAIAH,JEREMIAH,LAMENTATIONS,EZEKIEL,DANIEL,HOSEA,JOEL,AMOSN130 DATA OBADIAH,JONAH,MICAH,NAHUM,HABAKKUK,ZEPHANIAH,HAGGAI,ZECHARIAH,MALACHIE140 DATA MATTHEW,MARK,LUKE,JOHN,ACTS,ROMANS,1CORINTHIANS,2CORINTHIANSEB150 DATA GALATIANS,EPHESIANS,PHILIPPIANS,COLOSSIANS,1THESSALONIANSF160 DATA 2THESSALONIANS,1TIMOTHY,2TIMOTHY,TITUS,PHILEMON,HEBREWS,JAMES8161 DATA 1PETER,2PETER,1JOHN,2JOHN,3JOHN,JUDE,REVELATION165 DIM #4,A1$(4.42880E+06)=1H166 OPEN "BIBLE.BIB" AS FILE #4E170 DIM #1,A$(17366)=255171 OPEN "BIBLE.BIB" AS FILE #1A?172 REM ...... CYCLE SEARCH ........ ...........H 173 READ F$U174 IF F$="#" THEN GO TO 950L175 IF F$="END" THEN 10008176 P=POS(F$,".",1) 177 IF P=0 THEN F$=F$+".FIN" 178 B$=CLK$A 179 READ S$P,180 OPEN F$ FOR OUTPUT AS FILE #2 DOUBLE BUF 190 PRINT S$ 191 U$="" 192 U1$=S$ ,193 FOR I=1 TO LEN(S$) 6194 U$=CHR$(95)+U$+CHR$(8) O195 U1$=U1$+CHR$(8) 196 NEXT I 204 U$=U1$+U$+J207 PRINT #2,"EVERY OCCURRENCE OF ";CHR$(34);S$;CHR$(34);" IN THE BIBLE " 208 PRINT #2H209 REM -------- START OF LOOP FOR SEARCH --------210 FOR N=0 TO 17367212 IF S0=1 THEN 250 214 A$=A$(N) 216 P%=0% 217 P1%=0% = 218 S5%=0% 219 S9%=0%220 FOR S=1 TO S0 221 P1%=POS(A$,S$(S),1%)222 IF P1%=0 THEN 230T224 IF P%=0% THEN P%=P1%225 IF P1%>S9% THEN S9%=P1%1 230 NEXT S235 S5%=S9%-P%240 IF P%=0 THEN 900 249 GO TO 2609250 P%=POS(A$(N),S$,1%) 251 IF P%=0 THEN 900 0&252 REM SINGLE STRING SEARCH ........260 FOR I%=1 TO 66270 IF R%(I%,1) to log in other terminals or force remote logouts, forB instance. It's a MINOR edit of the FORCE from the Fall '838 VAX tapes, but this one won't crash a V4 system.B* VMSSWEEP, a program (off B. Eiben's bulletin board) to read CP/MF and MSDOS .LBR and .ARC files on VMS. Also present is READDOS,2 which purports to read MSDOS disks on vms.F* LISTRS (with ASSLUN): multicolumn lister. Probably the most complete" multicolumn lister around.G* INFOVAX.UTL - Utilities off the CSnet info-VAX bulletin board. One isB a short code section allowing you to run one image in yourB process from another image already there, returning to theC original code. Another is a short file and instructions forA running VMS Backup across a DECnet network. A hack, but a highly useful one. :! Set up VD: units with ADVD, assuming VDDRIVER is already! loaded somewhere.DEFINE VERB ADVD IMAGE VD$DST:ADVD.EXEG parameter p1,prompt="VDn:",value(required,type=$device),label=UNIT> parameter p2,label=FNAM,prompt="file",value(type=$infile) qualifier ASSIGN qualifier DEASSIGN00&H'HH H6%! !7$! BUILD ADVD ... REMEMBER TO USE ADVD.CLD TO RUN IT... $MACRO ADVD!$LINK ADVD+SYS$SYSTEM:SYS.STB/SEL$!7 .TITLE ADVD - VAX/VMS VIRT DISK DRIVER ASSIGN/DEASSIGN .IDENT 'V01-000'; ; FACILITY:; <; ASSIGN/DEASSIGN VIRTUAL DISK TASK THAT WORKS WITH VDDRIVER9; ESTABLISHES CONNECTION (OR BREAKS IT) BETWEEN A LUN OF; VD: AND A CONTIGUOUS FILE.;(; N.B. UNTESTED!!! USE AT YOUR OWN RISK.;; Command format:; VDCTL/switches VDn: fileB; where a .CLD file is expected so that this can all be parsed by@; the CLI. The legal switches will just be /ASSIGN or /DEASSIGN;; to specify which operation is required. In the /DEASSIGN>; case no filename is needed of course; the virtual disk must=; however be dismounted before this utility will allow it to>; be deassigned. The ucb$w_refc field must be zero before the; deassign is thus permitted.B; We must set the UCB$L_MAXBLOCK longword to the size of the fileA; here also. This requires reading the statistics on the file to=; discover the size if contiguous; the statistics block will; show zero if noncontig...C; We also set the number of "cylinders" for a fakeout structure.D; I don't really think that physical I/O needs to even be legal, but@; for the sake of argument & trying to get SOMETHING that works,;; I've left it in for now. The driver world be simpler justC; removing readpblk and writepblk from the legal-function FDT masks9; but there's always the chance SOMETHING will need it...;; ; AUTHOR:; ; G. EVERHART;-- .PAGE& .SBTTL EXTERNAL AND LOCAL DEFINITIONS .LIBRARY /SYS$SHARE:LIB/; ; EXTERNAL SYMBOLS; ) $ADPDEF ;DEFINE ADAPTER CONTROL BLOCK) $CRBDEF ;DEFINE CHANNEL REQUEST BLOCK $DCDEF ;DEFINE DEVICE CLASS% $DDBDEF ;DEFINE DEVICE DATA BLOCK* $DEVDEF ;DEFINE DEVICE CHARACTERISTICS) $DPTDEF ;DEFINE DRIVER PROLOGUE TABLE( $EMBDEF ;DEFINE ERROR MESSAGE BUFFER( $IDBDEF ;DEFINE INTERRUPT DATA BLOCK% $IODEF ;DEFINE I/O FUNCTION CODES& $IRPDEF ;DEFINE I/O REQUEST PACKET& $PRDEF ;DEFINE PROCESSOR REGISTERS $SCSDEF $SBDEF $STSDEF( $STSDEF ; Symbols for returned status.( $DVIDEF ; Symbols for $GETDVI service.# $DCDEF ; Symbols for device type.& $SSDEF ;DEFINE SYSTEM STATUS CODES& $UCBDEF ;DEFINE UNIT CONTROL BLOCK* $VECDEF ;DEFINE INTERRUPT VECTOR BLOCK; 2; UCB OFFSETS WHICH FOLLOW THE STANDARD UCB FIELDS=; DEFINE THESE SO WE KNOW WHERE IN THE UCB TO ACCESS. WE MUST.; SET THE ONLINE BIT OR CLEAR IT, AND ALSO SET9; UCB$HUCB (HOST UCB ADDRESS), UCB$HFSZ (HOST FILE SIZE),8; AND UCB$HLBN (HOST LOGICAL BLOCK NUMBER OF FILE START);;; Note: These MUST match the definitions in VDDRIVER. Don't6; change one without changing the other to match it!!!; G. Everhart 9/5/1986; ( $DEFINI UCB ;START OF UCB DEFINITIONS2;.=UCB$W_BCR+2 ;BEGIN DEFINITIONS AT END OF UCB;.=ucb$k_lcl_disk_length ; vms v4, right out of the book...8; USE THESE FIELDS TO HOLD OUR LOCAL DATA FOR VIRT DISK.,$DEF UCB$W_DY_WPS .BLKW 1 ;Words per sector.1$DEF UCB$W_DY_CS .BLKW 1 ;CONTROL STATUS REGISTER ;UCB$HUCB=.4$DEF UCB$W_DY_DB .BLKW 1 ;UCB ADDRESS OF HOST DRIVER%$DEF UCB$W_DY_DPN .BLKW 1 ;(LONGWORD) ;UCB$HLBN=.8$DEF UCB$L_DY_DPR .BLKL 1 ;START LBN OF HOST CONTIG FILE3;UCB$HFSZ=. ; HOST FILE SIZE IN BLKS (RANGE CHECK)$DEF UCB$L_DY_FMPR .BLKL 1 ;1$DEF UCB$L_DY_PMPR .BLKL 1 ;PREVIOUS MAP REGISTER0$DEF UCB$B_DY_ER .BLKB 1 ;SPECIAL ERROR REGISTER .BLKB 1 ;Reserved.'$DEF UCB$B_DY_LCT .BLKB 1 ;LOOP COUNTER5$DEF UCB$B_DY_XBA .BLKB 1 ;BUS ADDRESS EXTENSION BITS-$DEF UCB$W_DY_PWC .BLKW 1 ;PARTIAL WORD COUNT/$DEF UCB$W00.H"H%HH+%O-%TADATADATA_DY_SBA .BLKW 1 ;SAVED BUFFER ADDRESS6$DEF UCB$L_DY_XFER .BLKL 1 ;TRANSFER FUNCTION CSR BITS3$DEF UCB$L_DY_LMEDIA .BLKL 1 ;LOGICAL MEDIA ADDRESS@$DEF UCB$Q_DY_EXTENDED_STATUS ; Area into which we do READ ERROR .BLKQ 1 ; REGISTER command.8; RY_EXTENDED_STATUS_LENGTH = .-UCB$Q_DY_EXTENDED_STATUS=$DEF UCB$Q_DY_SVAPTETMP ; Area in which we save UCB fields -% .BLKQ 1 ; SVAPTE, BOFF, and BCNT.=$DEF UCB$L_DY_MAPREGTMP ; Area in which we save CRB fields -+ .BLKL 1 ; MAPREG, NUMREG, and DATAPATH.D$DEF UCB$L_DY_SAVECS .BLKL 1 ; Area in which we save CS and DB regs.*$DEF UCB$HUCB .BLKL 1 ;ADDRESS OF HOST UCB'$DEF UCB$HLBN .BLKL 1 ;LBN OF HOST FILE.$DEF UCB$HFSZ .BLKL 1 ;SIZE OF HOST FILE, BLKS;!$def ucb$k_vd_len .blkw 1 ;length!;UCB$K_DY_LEN=. ;LENGTH OF UCB% $DEFEND UCB ;END OF UCB DEFINITONS; TO SET ONLINE::; BISW #UCB$M_ONLINE,UCB$W_STS(R5) ;SET UCB STATUS ONLINE0 $FIBDEF ; Symbols for file information block.& $IODEF ; Symbols for QIO functions.' $DVIDEF ; Symbols for $GETDVI calls.* $TPADEF ; Symbols for LIB$TPARSE calls./; Macro to check return status of system calls.; .MACRO ON_ERR THERE,?HERE BLBS R0,HERE BRW THEREHERE: .ENDM ON_ERR$ .PSECT ADVDD_DATA,RD,WRT,NOEXE,LONGDEFAULT_DEVICE: .ASCID /SYS$DISK/ $ATRDEF $FABDEF $FATDEF $FIBDEF $IODEF $NAMDEF $RMSDEF $XABDEF .ALIGN LONGEDFAB_BLK: $FAB FNM=,XAB=FNXAB,FAC=,DNM=;+FNXAB: $XABFHC ; XAB STUFF TO GET LBN, SIZE .BLKL 20 ;SAFETYIOSTATUS: .BLKQ 1(DEV_BUF: ; Buffer to hold device name. .BLKB 40DEV_BUF_SIZ = . - DEV_BUF5DEV_BUF_DESC: ; Descriptor pointing to device name. .LONG DEV_BUF_SIZ .ADDRESS DEV_BUF#PID: ; Owner of device (if any). .BLKL 1+DEV_ITEM_LIST: ; Device list for $GETDVI.A .WORD DEV_BUF_SIZ ; Make sure we a have a physical device name. .WORD DVI$_DEVNAM .ADDRESS DEV_BUF .ADDRESS DEV_BUF_DESC6 .WORD 4 ; See if someone has this device allocated. .WORD DVI$_PID .ADDRESS PID .LONG 0 .WORD 4- .WORD DVI$_DEVCLASS ; Check for a terminal. .ADDRESS DEV_CLASS .LONG 0 .LONG 0 ; End if item list. DEV_CLASS: .LONG 1;**(VDV_BUF: ; Buffer to hold VDVice name. .BLKB 40VDV_BUF_SIZ = . - VDV_BUF5VDV_BUF_DESC: ; Descriptor pointing to VDVice name. .LONG VDV_BUF_SIZ .ADDRESS VDV_BUF$VPID: ; Owner of VDVice (if any). .BLKL 1+VDV_ITEM_LIST: ; VDVice list for $GETDVI.A .WORD VDV_BUF_SIZ ; Make sure we a have a physical device name. .WORD DVI$_DEVNAM .ADDRESS VDV_BUF .ADDRESS VDV_BUF_DESC6 .WORD 4 ; See if someone has this device allocated. .WORD DVI$_PID .ADDRESS VPID .LONG 0 .WORD 4- .WORD DVI$_DEVCLASS ; Check for a terminal. .ADDRESS VDV_CLASS .LONG 0 .LONG 0 ; End if item list. VDV_CLASS: .LONG 1;**DEFNAM:WRK: .BLKL 1 ;SCRATCH INTEGER ; DESCRIPTOR FOR VDn: "FILENAME" .ALIGN LONGVDFNM: .WORD 255. ;LENGTH%VDFTP: .BYTE DSC$K_DTYPE_T ;TEXT TYPE .BYTE 1 ; STATIC STRING .ADDRESS VDFNMDVDFNMD: .BLKB 256. ; DATA AREA;&; DESCRIPTOR FOR DVn:DSKFIL "FILENAME" .ALIGN LONGDDFNM: .WORD 255. ;LENGTH%DDFTP: .BYTE DSC$K_DTYPE_T ;TEXT TYPE .BYTE 1 ; STATIC STRINGDDFNA: .ADDRESS DDFNMDDDFNMD: .BLKB 256. ; DATA AREADDCHN: .LONG 0VDCHN: .LONG 0 ;CHANNEL HOLDERS;?; FOR initial use, don't bother allocating the file. Assume theB; user can somehow allocate a contiguous file of the size he wants; for himself.;ASDSC: .ASCID /ASSIGN/DASDSC: .ASCID /DEASSIGN/P1DSC: .ASCID /UNIT/P2DSC: .ASCID /FNAM/ .EVEN ASDAS: .LONG 0 ;DEFAULT DEASSIGN;; ucb data area!HSTUCB: .LONG 0 ;HOST UCB ADDRESS,HSTLBN: .LONG 0 ;LBN OF 1ST BLK OF HOST FILE.HSTFSZ: .LONG 0 ;LENGTH IN BLOCKS OF HOST FILE ; debug wordsvducb: .long 0vdsts: .long 0vdsts2: .long 0vdsts3: .long 0vdcyl: .long 0(vdprog: .long 0 ;counts where we've been;;$ .PSECT ADVDD_CODE,RD,NOWRT,EXE,LONG1 .ENTRY ADVDD,^M MOVL #1,ASDAS ;SET ASSIGN. PUSHAB WRK ;PUSH LONGWORD ADDR FOR RETLENGTH/ PUSHAB VDFNM ;ADDRESS OF DESCRIPTOR TO RETURN# PUSHAB P1DSC ; GET P1 (VDn: UNIT)5 CALLS #3,G^CLI$GET_VALUE ;GET VALUE OF NAME TO VDFNM ON_ERR ADVDD_EXIT;/; IF "DEASSIGN" WE DON'T NEED 2ND ARG... SEE...; PUSHAB DASDSC ; 'DEASSIGN', CALLS #1,G^CLI$PRESENT ; IS /DEASSIGN USED?" CMPL R0,#CLI$_PRESENT ; IF EQ YES BEQL DAS1' PUSHAB WRK ; GET 2ND FILE (REAL FILE)! PUSHAB DDFNM ; & ITS DESCRIPTOR& PUSHAB P2DSC ; & PARAMETER NAME 'P2'# CALLS #3,G^CLI$GET_VALUE ; GET FNM ON_ERR ADVDD_EXIT BRB DAS2DAS1: CLRL ASDAS ; FLAG /DEASDAS2:4 TSTL ASDAS ; IF 0, DEASSIGNING SO NO CHNL FOR HOST ; FILE BEQL 290$' $ASSIGN_S - ; Get a channel to the ( DEVNAM=DDFNM,- ; device for host file CHAN=DDCHN ON_ERR ADVDD_EXITA; LET ERRORS BY FOR THIS SINCE WE GET OUR INFO VIA OPEN ANYWAY SO*; CHANNEL REALLY DOESN'T HAVE TO BE THERE.D; Get the physical device name, and see if this device has an owner.6; (We must do this so we can get the host UCB address) $GETDVI_S -. CHAN=ddchn,- ; Command line has device name. ITMLST=DEV_ITEM_LIST BLBS R0,40$ BRW advdd_EXIT40$:290$:/; MUST HAVE ASSIGNMENT TO VD: UNIT IN ANY CASE. $ASSIGN_S -' DEVNAM=VDFNM,- ; GET CHANNEL FOR VDn: CHAN=VDCHN& ON_ERR ADVDD_EXIT ; SKIP OUT IF ERROR $GETDVI_S -. CHAN=vdchn,- ; Command line has device name. ITMLST=VDV_ITEM_LIST BLBS R0,140$ BRW advdd_EXIT140$:;A; NOW LOCATE THE FILE AND VERIFY IT'S REALLY CONTIGUOUS, AND FIND;; OUT HOW BIG IT IS. STORE RESULTS IN HSTLBN AND HSTFSZ AND9; CALL KERNEL ROUTINE TO BASH THE VDn: UCB APPROPRIATELY.;;; DON'T NEED TO DO THIS FOR DEASSIGN SO CHECK THAT FIRST..." TSTL ASDAS ; IF ZERO WE DEASSIGN BEQL 296$&; OPEN THE FILE, CHECK ITS INITIAL LBN!; IF ERROR OR NOT CONTIG, EXIT...4; DO VIA OPENING FILE AND READING ITS' STATBLOCK VIA; QIO.../; SET UP FOR FILENAME WE REALLY FOUND IN FAB...4 MOVL DDFNA,DFAB_BLK+FAB$L_FNA ;SET UP FILENAME ADDR* MOVB DDFNM,DFAB_BLK+FAB$B_FNS ;AND LENGTH $OPEN FAB=DFAB_BLK+ BLBC R0,300$ ; FAILURE IF FILE WON'T OPEN; FNXAB HAS INFO ON LBN, SIZE- MOVL FNXAB+XAB$L_SBN,HSTLBN ; GET HOST'S LBN' BEQL 301$ ;;; RESTRICTION FOR NOW ... ;;; IF ZERO, FILE NONCONTIG ;;; SO FORGET IT...@ MOVL FNXAB+XAB$L_HBK,HSTFSZ ; GET FILE SIZE. (CHECK THAT BELOW) .if ndf,phy$io/ BICL2 #63,HSTFSZ ;;;MAKE A MULTIPLE OF 64 BLKSE;;; As long as the driver doesn't do physical I/O we can omit this...";;; except INIT seems unhappy then .endcB;;;HAS TO BE A MULTIPLE OF 64 BLKS DUE TO FAKED-OUT PHYSICAL DRIVE@;;; STRUCTURE OF 64 SECTORS/TRACK, 1 TRACK/CYL, NNN CYLINDERS..." TSTL HSTFSZ ; HOST SIZE POSITIVE/ BLSS 301$ ; IF <0 OR =0 THEN ILLEGAL; BUG OUT/; ELSE ISSUE THE REQUESTS TO GET THE DEVICES...296$: $CMKRNL_S - ROUTIN=BASHUCB,ARGLST=K_ARG BRW 300$301$:$; ERROR RETURN ... CLOSE FAB & LEAVE $CLOSE FAB=DFAB_BLK300$:=; BE SURE WE DON'T LEAVE THE CHANNELS ASSIGNED TO THE DEVICES ; EITHER... $DASSGN_S CHAN=VDCHN" TSTL ASDAS ; IF ZERO WE DEASSIGN/ beql 540$ ; if zero, no file chnl to deassign- $DASSGN_S CHAN=DDCHN ;CLEAN UP I/O CHANNELS0540$: ; skip deassign file chnl on advd/deassign ; to avoid final error msg RET advdd_exit: RET;; KERNEL ARG LISTK_ARG:, .LONG 2 ;2 ARGS: HOST-DVC NAME, VD DVC NAME .ADDRESS DEV_BUF_DESC .ADDRESS VDV_BUF_DESC; .ADDRESS DDFNM; .ADDRESS VDFNM2; BASHUCB - AREA TO MESS UP UCB WITH OUR FILE DATA; BEWARE BEWARE BEWARE+; runs in KERNEL mode ... HAS to be right.( .ENTRY BASHUCB,^M; TAKEN LOOSELY FROM ZERO.MAR) MOVL G^SCH$GL_CURPCB,R4 ;;; NEED OUR PCB) JSB G^SCH$IOLOCKW ;;; LOCK I/O DATABASE" CLRL HSTUCB ;;; ZERO "HOST" UCB movl #1,vdprog ;;; got to start# TSTL ASDAS ;;; IF DEASSIGN, ZERO0 BEQL 90$ ;;; SO IF EQUAL SKIP LOCATE HOST UCB0 MOVL 4(AP),R1 ;;; ADDRESS DVC NAME DESCRIPTORS1 JSB G^IOC$SEARCHDEV ;;; GET UCB ADDRESS INTO R1 BLBS R0,60$ BRW00>HDH%HH+%O-%TADATADATA BSH_XIT60$:2; TSTL UCB$L_PID(R1) ;;; ENSURE DVC NOT ALLOCATED ; BEQL 80$; MOVL #SS$_DEVALLOC,R0 ; BRW BSH_XIT6; ALLOCATED OK SINCE IT COULD JUST BE PRIVATE MOUNT...;80$:# movl #2,vdprog ;;; got host ucb ok* MOVL R1,HSTUCB ;;; SAVE HOST UCB ADDRESS5 BEQL 167$ ;;; ... BUT ZERO UCB ADDRESS LOOKS BAAAAD90$:0 MOVL 8(AP),R1 ;;; ADDRESS VDn NAME DESCRIPTORS' movl #3,vdprog ;;; got vdn: descriptor1 JSB G^IOC$SEARCHDEV ;;; GET UCB ADDRESS INTO R1 BLBS R0,160$ BRW BSH_XIT160$: movl r1,vducb ;;; store vd ucb movl #4,vdprog ;;; got vd ucb1 TSTL UCB$L_PID(R1) ;;; ENSURE DVC NOT ALLOCATED BEQL 180$165$: MOVL #SS$_DEVALLOC,R0167$: BRW BSH_XIT180$:% movl #5,vdprog ;;; not allocated yet; BUGGER THE UCB,; ASSUMES FILE LBN AND SIZE ALREADY RECORDEDC; ALSO ASSUMES THAT ZERO LBN OR SIZE MEANS THIS ENTRY NEVER CALLED.A; (REALLY ONLY WORRY ABOUT ZERO SIZE; IF WE OVERMAP A REAL DEVICE%; THEN ZERO INITIAL LBN COULD BE OK.);@; CHECK REF COUNT FIRST... ONLY CAN GET AWAY WITH THIS ON DEVICE; NOBODY'S USING...A; .. fake this since device may have count messed by advd somehow#; but will be allocated if mounted.; ... for now ...8 movzwl ucb$w_refc(r1),vdsts2 ;;; save status for debug5 CMPW UCB$W_REFC(R1),#1 ;;; CHECK COUNT VS 1 FOR THIS BGTRU 165$1; TSTW UCB$W_REFC(R1) ;;; IF MOUNTED DON'T TOUCH); BNEQ 165$ ;;; IF NEQ IT'S ACCESSED...& movl #6,vdprog ;;; not mounted either0 MOVL HSTUCB,UCB$HUCB(R1) ;;; SAVE HOST UCB OR 0 BNEQ 184$ ;;; IF NE, OK NOW,;;; ZERO -- DEASSIGNING. FLAG VOLUME INVALID2 BICW #UCB$M_ONLINE,UCB$W_STS(R1) ;;; FLAG OFFLINE0 BICW #UCB$M_VALID,UCB$W_STS(R1) ;;; AND INVALID BRW 200$2184$: MOVL HSTLBN,UCB$HLBN(R1) ;;; SAVE HOST'S LBN+ MOVL HSTFSZ,UCB$HFSZ(R1) ;;; AND FILE SIZE= MOVL HSTFSZ,UCB$L_MAXBLOCK(R1) ;;; (SAVE SIZE TWICE, FOR RMS; movl #65535,ucb$l_maxbcnt(r1) ;;;store max bytes as a word# movl #7,vdprog ;;; filled in stuff' ;;; AND QIO CHECKS, AND OUR SAFETY ;;; ONES)" MOVL HSTFSZ,R0 ;;; GET HOST SIZE0 ASHL #-6,R0,R0 ;;; GET # CYLINDERS IN SIZE NOW< MOVW R0,UCB$W_CYLINDERS(R1) ;;; SAVE IN UCB FOR REST OF VMS, movl r0,vdcyl ;;; store cylinders for debug movl #8,vdprog5 BISW #UCB$M_ONLINE,UCB$W_STS(R1) ;;; FLAG ONLINE NOW2 BISW #UCB$M_VALID,UCB$W_STS(R1) ;;; AND VOL VALID. movzwl ucb$w_sts(r1),vdsts ;;; save VD status";;; THAT'S IT... SHOULD BE OK NOW.200$: MOVL #SS$_NORMAL,R0BSH_XIT: PUSHL R07 JSB G^SCH$IOUNLOCK ;;; UNLOCK I/O DATABASE (DROP IPL) POPL R0 ;;; REMEMBER R0 RET ;;; BACK TO USER MODE NOW .END ADVDD.Alabama Entire State 205.Arizona Entire State 602.Arkansas Entire State 501.California Los Angeles 213.California Oakland 415.California Sacramento 916.California San Diego 714.California San Francisco 415.California San Jose 408.Colorado Entire State 303.Connecticut Entire State 203.Delaware Entire State 302.District of Columbia Washington D.C. 202.Florida Jacksonville 904.Florida Miami 305.Florida Orlando 305.Georgia Atlanta 404.Georgia Augusta 404.Georgia Columbus 404.Georgia Savannah 912.Idaho Entire State 208.Illinois 00FH'HH H6%! ! Chicago 312.Illinois Peoria 309.Illinois Rockford 815.Illinois Springfield 217.Indiana Evansville 812.Indiana Indianapolis 317.Indiana La Porte 219.Indiana South Bend 219.Iowa Council Bluffs 712.Iowa Davenport 319.Iowa Des Moines 515.Iowa Dubuque 319.Kansas Topeka 913.Kansas Wichita 316.Kentucky Frankfort 502.Kentucky Louisville 502.Kentucky Paducah 502.Lousianna Baton Rouge 504.Lousianna New Orleans 504.Lousianna Shreveport 318.Maine Entire State 207.Maryland Entire State 301.Massachusetts Boston 617.Massachusetts Springfield 413.Michigan Detroit 313.Michigan Grand Rapids 616.Michigan Kalamazoo 616.Michigan Lansing 517.Michigan Marquette 906.Michigan Muskegon 616.Minnesota Deluth 218.Minnesota Minneapolis 612.Minnesota Rochester 507.Minnesota St. Paul 612.Mississippi Entire State 601.Missouri Kansas City 816.Missouri St. Louis 314.Montana Entire State 406.Nebraska Lincoln 402.Nebraska North Platte 308.Nebraska Omaha 402.Nevada Entire State 702.New Hampshire Entire State 603.New Jersey Atlantic City 609.New Jersey Newark 201.New Jersey Trenton 609.New Mexico Entire State 505.New York Albany 518.New York Buffalo 716.New York Ithica 607.New York New York City 212.New York Rochester 716.New York Syracuse 315.New York White Plains 914.North Carolina Asheville 704.North Carolina Charlotte 704.North Carolina Raleigh 919.North Dakota Entire State 701.Ohio Akron 216.Ohio Cincinnati 513.Ohio Cleveland 216.Ohio Columbus 614.Ohio Dayton 513.Ohio Toledo 419.Oklahoma Oklahoma City 405.Oklahoma Tulsa 918.Oregon Entire State 503.Pennsylvania Erie 814.Pennsylvania Harrisburg 717.Pennsylvania Philadelphia 215.Pennsylvania Pittsburgh 412.Pennsylvania Scranton 717.Rhode Island Entire State 401.South Carolina Entire State 803.South Dakota Entire State 605.Tennessee Chattanooga 615.Tennessee Knoxville 615.Tennessee Memphis 901.Tennessee Nashville 615.Texas Amarillo 806.Texas Dallas 214.Texas El Passo 915.Texas Fort Worth 817.Texas Houston 713.Texas San Antonio 512.Utah Entire S00NHPHTHH+%O-%TADATADATAtate 801.Vermont Entire State 802.Virginia Arlington 703.Virginia Norfolk 804.Virginia Richmond 804.Virginia Roanoke 703.Washington Seattle 206.Washington Spokane 509.Washington Tacoma 206.West Virginia Entire State 304.Wisconsin Eau Claire 715.Wisconsin Green Bay 414.Wisconsin Kenosha 414.Wisconsin Madison 608.Wisconsin Milwaukee 414.Wisconsin Racine 414.Wyoming Entire State 307 .TITLE ASSLUN .IDENT /28.1VX/8; SPECIAL FAKEOUT ASSLUN MODULE TO GET AME STUFF TO WORK ; RIGHT...6; NEVER LET VAX/RSX SEE ALUN$S TO LUN 0 BUT FAKE IT SO; FCS CODE WILL SEEM TO WORK.../; NOT NEEDED IN RSX BUT VAX/RSX NEEDS IT BADLY. .ASECT .GLOBL $DSW ;Global reference! .GLOBL .FSRPT ;Global reference! .GLOBL .SAVR1 ;Global reference! .GLOBL ..FCSX ;Global reference .PSECT  .PSECT $$RESL,RO .GLOBL .ASLUN .GLOBL ..ALUN .PSECT $$RESL.ASLUN: JSR R5,.SAVR1..ALUN: MOV 34(R1),R2 MOV 32(R1),R3 BEQ E00040E00016: MOVB 42(R0),R4, TST R4 ;SEE IF LUN 0. IF SO FAKE CS RETURN0 BGT 1$ ;IF ALL'S WELL, GO TO NORMAL PROCESSING%; OOPS - BAD ALUN$ SO TRY AND FAKE IT% MOV #IE.IDU,@#$DSW ;FLAG ILLEGAL LUN, SEC ;SET CARRY BIT TO LOOK LIKE DSW ERROR& BR E00060 ;THEN GO CONTINUE FAKE-OUT1$: MOV R2,-(SP) ;UNIT" MOV R3,-(SP) ;DEVICE NAME (ASCII) MOV R4,-(SP) ;LUN MOV #2007,-(SP) EMT 377 BCS E00060E00040: CALL E00144 BCC E00060 MOV #0,R2 MOV #54523,R3 BR E00016E00060: MOV @#$DSW,52(R0) BCS E00140 MOVB R2,17(R0) MOV R5,60(R0) MOV R5,62(R0) MOV R3,34(R1) MOV R4,32(R1) CLRB 75(R0) BIC #-61,R2 CMP #60,R2 BNE E00140 BISB #1,75(R0)E00140: JMP ..FCSXE00144: MOV @#.FSRPT,R5 BNE E00162 MOVB #-47,52(R0) BR E00234E00162: ADD #14,R5 MOVB 42(R0),R2 MOV R5,-(SP) MOV R2,-(SP) MOV #1405,-(SP) EMT 377 BCS E00234 MOV (R5)+,R4 CLR R3 BISB (R5),R3 MOV 2(R5),R2 BGE E00230 BISB #20,56(R0)E00230: MOV 10(R5),R5E00234: RETURN .ENDF/* Set USERMEM to the maximum amount of physical user memory availableL * in bytes. USERMEM is used to determine the maximum BITS that can be usedN * for compression. If USERMEM is big enough, use fast compression algorithm. *H * SACREDMEM is the amount of physical memory saved for others; compress * will hog the rest. */#ifndef SACREDMEM#define SACREDMEM 0#endif #ifdef vax #ifdef unix#define vax_asm 1#endif#endif#ifndef vax_asm#define vax_asm 0#endif #ifdef vms#define SUCCESS_EXIT 1#define FAIL_EXIT 0#define INFO_EXIT 3#endif #ifdef unix#define SUCCESS_EXIT 0#define FAIL_EXIT 1#define INFO_EXIT 2#endif #ifdef pdp118# define BITS 12 /* max bits/code for 16-bit machine */H# define NO_UCHAR /* also if "unsigned char" functions as signed char */'# define SHORT_INT /* ints are short */# undef USERMEM #else !pdp11# ifndef USERMEM2# define USERMEM 750000 /* default user memory */# endif #endif !pdp11/* G * Define FBITS for mach00VH'HH H6%! !ines with several MB of physical memory, to useJ * table lookup for (b <= FBITS). If FBITS is made too large, performanceK * will decrease due to increased swapping/paging. Since the program minusI * the fast lookup table is about a half Meg, we can allocate the rest of6 * available physical memory to the fast lookup table. * E * If FBITS is set to 12, a 2 MB array is allocated, but only 1 MB is/ * addressed for parity-free input (i.e. text). *8 * FBITS=10 yields 1/2 meg lookup table + 4K code memory6 * FBITS=11 yields 1 meg lookup table + 8K code memory7 * FBITS=12 yields 2 meg lookup table + 16K code memory7 * FBITS=13 yields 4 meg lookup table + 32K code memory * */#ifdef USERMEM## if USERMEM >= (2621440+SACREDMEM)$# if USERMEM >= (4718592+SACREDMEM)# define FBITS 13# define PBITS 16# else 2.5M <= USERMEM < 4.5M# define FBITS 12# define PBITS 16# endif USERMEM <=> 4.5M# else USERMEM < 2.5M$# if USERMEM >= (1572864+SACREDMEM)# define FBITS 11# define PBITS 16# else USERMEM < 1.5M%# if USERMEM >= (1048576+SACREDMEM)# define FBITS 10# define PBITS 16# else USERMEM < 1M%# if USERMEM >= (631808+SACREDMEM)# define PBITS 16 # else&# if USERMEM >= (329728+SACREDMEM)# d}fin} PBITS 15 # else'# if USERMEM >= (178176+SACREDMEM)# define PBITS 14 # else'# if USERMEM >= (99328+SACREDMEM)# define PBITS 13 # else# define PBITS 12 # endif # endif # endif # endif# undef USERMEM# endif USERMEM <=> 1M# endif USERMEM <=> 1.5M# endif USERMEM <=> 2.5M#endif USERMEM7#ifdef PBITS /* Preferred BITS for this memory size */ # ifndef BITS# define BITS PBITS # endif BITS #endif PBITS#if BITS == 16)# define HSIZE 69001 /* 95% occupancy */#endif#if BITS == 15)# define HSIZE 35023 /* 94% occupancy */#endif#if BITS == 14)# define HSIZE 18013 /* 91% occupancy */#endif#if BITS == 13(# define HSIZE 9001 /* 91% occupancy */#endif#if BITS == 12(# define HSIZE 5003 /* 80% occupancy */#endif#if BITS == 11(# define HSIZE 2591 /* 79% occupancy */#endif#if BITS == 10(# define HSIZE 1291 /* 79% occupancy */#endif #if BITS == 9'# define HSIZE 691 /* 74% occupancy */#endif"/* BITS < 9 will cause an error *//*J * a code_int must be able to hold 2**BITS values of type int, and also -1 */ #if BITS > 15typedef long int code_int;#elsetypedef int code_int;#endif#ifdef interdata$typedef unsigned long int count_int;'typedef unsigned short int count_short;#elsetypedef long int count_int;#endif#ifdef NO_UCHAR typedef char char_type; #else UCHAR! typedef unsigned char char_type; #endif UCHAR6char_type magic_header[] = { "\037\235" }; /* 1F 9D */&/* Defines for third byte of header */#define BIT_MASK 0x1f#define BLOCK_MASK 0x80H/* Masks 0x40 and 0x20 are free. I think 0x20 should mean that there is( a fourth header byte (for expansion).*/7#define INIT_BITS 9 /* initial number of bits/code *//*= * compress.c - File compression ala IEEE Computer June 1984. *C * Authors: Spencer W. Thomas (decvax!harpo!utah-cs!utah-gr!thomas)! * Jim McKie (decvax!mcvax!jim)1 * Steve Davies (decvax!vax135!petsd!peora!srd)0 * Ken Turkowski (decvax!decwrl!turtlevax!ken)+ * James A. Woods (decvax!ihnp4!ames!jaw)( * Joe Orost (decvax!vax135!petsd!joe) *8 * $Header: compress.c,v 3.0 84/11/27 11:50:00 joe Exp $ * $Log: compress.c,v $/ * Revision 3.0 84/11/27 11:50:00 petsd!joeI * Set HSIZE depending on BITS. Set BITS depending on USERMEM. UnrolledI * loops in clear routines. Added "-C" flag for 2.0 compatability. Used> * unsigned compares on Perkin-Elmer. Fixed foreground check. *. * Revision 2.7 84/11/16 19:35:39 ames!jawC * Cache common hash codes based on input statistics; this improvesD * performance for low-density raster images. Pass on #ifdef bundle * from Turkowski. *00^HPHTHH+%O-%TADATADATA. * Revision 2.6 84/11/05 19:18:21 ames!jaw; * Vary size of hash tables to reduce time for small files. * Tune PDP-11 hash function. *. * Revision 2.5 84/10/30 20:15:14 ames!jawD * Junk chaining; replace with the simpler (and, on the VAX, faster)F * double hashing, discussed within. Make block compression standard. *. * Revision 2.4 84/10/16 11:11:11 ames!jawD * Introduce adaptive reset for block compression, to boost the rate6 * another several percent. (See mailing list notes.) */ * Revision 2.3 84/09/22 22:00:00 petsd!joeM * Implemented "-B" block compress. Implemented REVERSE sorting of tab_next.E * Bug fix for last bits. Changed fwrite to putchar loop everywhere. *. * Revision 2.2 84/09/18 14:12:21 ames!jaw; * Fold in news changes, small machine typedef from thomas, * #ifdef interdata from joe. *. * Revision 2.1 84/09/10 12:34:56 ames!jaw4 * Configured fast table lookup for 32-bit machines.N * This cuts user time in half for b <= FBITS, and is useful for news batchingG * from VAX to PDP sites. Also sped up decompress() [fwrite->putc] andE * added signal catcher [plus beef in writeerr()] to delete effluvia. */ * Revision 2.0 84/08/28 22:00:00 petsd!joeG * Add check for foreground before prompting user. Insert maxbits intoD * compressed file. Force file being uncompressed to end with ".Z".5 * Added "-c" flag and "zcat". Prepared for release. *3 * Revision 1.10 84/08/24 18:28:00 turtlevax!kenJ * Will only compress regular files (no directories), added a magic numberM * header (plus an undocumented -n flag to handle old files without headers),L * added -f flag to force overwriting of possibly existing destination file,I * otherwise the user is prompted for a response. Will tack on a .Z to aI * filename if it doesn't have one when decompressing. Will only replace * file if it was compressed. *2 * Revision 1.9 84/08/16 17:28:00 turtlevax!kenK * Removed scanargs(), getopt(), added .Z extension and unlimited number ofH * filenames to compress. Flags may be clustered (-Ddvb12) or separatedG * (-D -d -v -b 12), or combination thereof. Modes and other status isI * copied with copystat(). -O bug for 4.2 seems to have disappeared with * 1.8. *( * Revision 1.8 84/08/09 23:15:00 joeJ * Made it compatible with vax version, installed jim's fixes/enhancements *( * Revision 1.6 84/08/01 22:08:00 joeA * Sped up algorithm significantly by sorting the compress chain. *( * Revision 1.5 84/07/13 13:11:00 srdG * Added C version of vax asm routines. Changed structure to arrays toD * save much memory. Do unsigned compares where possible (faster on * Perkin-Elmer) *+ * Revision 1.4 84/07/05 03:11:11 thomasE * Clean up the code a little and lint it. (Lint complains about all> * the regs used in the asm, but I'm not going to "fix" this.) *+ * Revision 1.3 84/07/05 02:06:54 thomas * Minor fixes. *+ * Revision 1.2 84/07/05 00:27:27 thomas" * Add variable bit length output. * */ #ifndef lintRstatic char rcs_ident[] = "$Header: compress.c,v 3.0 84/11/27 11:50:00 joe Exp $"; #endif !lint#include #include #include #ifdef unix/*. * These don't exist on non-unix systems -- MM */#include #include #endif !unix4#define ARGVAL() (*++(*argv) || (--argc && *++argv))(int n_bits; /* number of bits/code */9int maxbits = BITS; /* user settable max # bits/code */4code_int maxcode; /* maximum code, given n_bits */Fcode_int maxmaxcode = 1 << BITS; /* should NEVER generate this code */##ifdef COMPATIBLE /* But wrong! */,# define MAXCODE(n_bits) (1 << (n_bits) - 1)#else COMPATIBLE.# define MAXCODE(n_bits) ((1 << (n_bits)) - 1)#endif COMPATIBLE/*A * One code could conceivably represent (1<char_type tab_suffix[1< if ( (bgnd_flag = signal ( SIGINT, SIG_IGN )) != SIG_IGN ) signal ( SIGINT, onintr );#ifdef COMPATIBLE: nomagic = 1; /* Original didn't have a magic number */#endif COMPATIBLEA filelist = fileptr = (char **)(malloc(argc * sizeof(*argv))); *filelist = NULL;* if((cp = rindex(argv[0], '/')) != 0) { cp++; } else00nHPHTHH+%O-%TADATADATA { cp = argv[0]; }' if(strcmp(cp, "uncompress") == 0) { do_decomp = 1;( } else if(strcmp(cp, "zcat") == 0) { do_decomp = 1; zcat_flg = 1; } #ifdef BSD4_2/ /* 4.2BSD dependent - take it out if not */ setlinebuf( stderr ); #endif BSD4_2 /* Argument Processing * All flags are optional. * -D => debug * -d => do_decomp * -v => verbose+ * -f => force overwrite of output file6 * -n => no header: useful to uncompress old filesG * -b maxbits => maxbits. If -b is specified, then maxbits MUST be * given also.% * -c => cat all output to stdout: * -C => generate output compatable with compress 2.0.6 * if a string is left, must be an input filename. */4 for (argc--, argv++; argc > 0; argc--, argv++) {+ if (**argv == '-') { /* A flag argument */= while (*++(*argv)) { /* Process all flags in this arg */ switch (**argv) { #ifdef DEBUG case 'D': debug = 1; break; case 'v': verbose = 1; break; #endif DEBUG case 'd': do_decomp = 1; break; case 'f': overwrite = 1; break; case 'n': nomagic = 1; break; case 'C': block_compress = 0; break; case 'b': if (!ARGVAL()) {, fprintf(stderr, "Missing maxbits\n"); Usage(); exit(FAIL_EXIT); } maxbits = atoi(*argv); goto nextarg; case 'c': zcat_flg = 1; break; case 'q': quiet = 1; break; case 'F': force = 1; break; default:3 fprintf(stderr, "Unknown flag: '%c'; ", **argv); Usage(); exit(FAIL_EXIT); } } } else { /* Input file name */4 *fileptr++ = *argv; /* Build input file list */ *fileptr = NULL; /* goto nextarg; */ } nextarg: continue; }0 if(maxbits < INIT_BITS) maxbits = INIT_BITS;' if (maxbits > BITS) maxbits = BITS; maxmaxcode = 1 << maxbits; if (*filelist != NULL) {0 for (fileptr = filelist; *fileptr; fileptr++) { exit_stat = SUCCESS_EXIT;0 if (do_decomp != 0) { /* DECOMPRESSION */ /* Check for .Z suffix */; if (strcmp(*fileptr + strlen(*fileptr) - 2, ".Z") != 0) { /* No .Z: tack one on */! strcpy(tempname, *fileptr); strcat(tempname, ".Z"); *fileptr = tempname; } /* Open input file */0 if ((freopen(*fileptr, "r", stdin)) == NULL) { perror(*fileptr); continue; } /* Check the magic number */ if (nomagic == 0) {1 if ((getchar() != (magic_header[0] & 0xFF))4 || (getchar() != (magic_header[1] & 0xFF))) {4 fprintf(stderr, "%s: not in compressed format\n", *fileptr); continue; }1 maxbits = getchar(); /* set -b from file */, block_compress = maxbits & BLOCK_MASK; maxbits &= BIT_MASK; maxmaxcode = 1 << maxbits; if(maxbits > BITS) { fprintf(stderr,< "%s: compressed with %d bits, can only handle %d bits\n", *fileptr, maxbits, BITS); continue; }c }e /* Generate output filename */ strcpy(ofname, *fileptr);t: ofname[strlen(*fileptr) - 2] = '\0'; /* Strip off .Z */# } else { /* COMPRESSION */s; if (strcmp(*fileptr + strlen(*fileptr) - 2, ".Z") == 0) {mA fprintf(stderr, "%s: already has .Z suffix -- no change\n",e *fileptr);n continue;e } /* Open input file */0 if ((freopen(*fileptr, "r", stdin)) == NULL) {! perror(*fileptr); continue;i }v #ifdef unixU stat ( *fileptr, &statbuf );! fsize = (long) statbuf.st_size;i#elsei /*1 * Hack -- we can't easily find filesize on vms  */I/ fsize = 1000 * 512; /* Assume 1000 blocks */m#endif /*3 * tune hash table size for small files -- ad hocn */c#if HSIZE > 5003 if ( fsize < (1 << 12) ) hsize = 5003;o#if HSIZE > 9001 else if ( fsize < (1 << 13) )E hsize = 9001;E#if HSIZE > 18013  else if ( fsize < (1 << 14) )! hsize = 18013;#if HSIZE > 3500vH'HH H6%! !023s else if ( fsize < (1 << 15) )r hsize = 35023; else if ( fsize < 47000 )B hsize = 50021;#endif HSIZE > 35023#endif HSIZE > 18013#endif HSIZE > 9001  else#endif HSIZE > 5003t hsize = HSIZE; /* Generate output filename */ strcpy(ofname, *fileptr);p%#ifndef BSD4_2 /* Short filenames */.'#ifndef vms /* Not relevant for VMS */a, if ((cp=rindex(ofname,'/')) != NULL) cp++; else cp = ofname;t if (strlen(cp) > 12) {A fprintf(stderr,"%s: filename too long to tack on .Z\n",cp);l continue;a } #endif vmsy,#endif BSD4_2 /* Long filenames allowed */ #ifdef vms /*2 * Note: should be done by parsing the filename. * This is a hack. */) if ((cp = rindex(ofname, '.')) != NULL) ( *cp = '\0'; /* Erase filetype */#endif strcat(ofname, ".Z"); }/ /* Check for overwrite of existing file */ + if (overwrite == 0 && zcat_flg == 0) { #ifdef unixM$ if (stat(ofname, &statbuf) == 0) { char response[2];S response[0] = 'n';4 fprintf(stderr, "%s already exists;", ofname); if (foreground()) {T: fprintf(stderr, " do you wish to overwrite (y or n)? ", ofname);( fflush(stderr); read(2, response, 2); while (response[1] != '\n') {3 if (read(2, response+1, 1) < 0) { /* Ack! */  perror("stderr"); break; } } }P if (response[0] != 'y') {f* fprintf(stderr, "\tnot overwritten\n"); continue; }l } #elsed /*- * VMS doesn't worry about overwrite now asn1 * version numbers prevent this from destroyingR * data. */f ;M#endif }0 if(zcat_flg == 0) { /* Open output file */ #ifdef vms /*6 * Create a "vanilla" file on VMS when decompressing */P if ( do_decomp != 0 &&: ((file = creat(ofname, 0, "rat=cr", "rfm=var")) == -1- || dup2(file, fileno(stdout)) == -1)) {E perror(ofname);y continue;  }= if (do_decomp == 0 && - freopen(ofname, "w", stdout) == NULL) { #elseH- if (freopen(ofname, "w", stdout) == NULL) {S#endif perror(ofname);  continue; }f if(!quiet)% fprintf(stderr, "%s: ", *fileptr);c }4 /* Actually do the compression/decompression */$ if (do_decomp == 0) compress(); #ifndef DEBUG* else decompress(); #else DEBUGl' else if (debug == 0) decompress();u else printcodes();v if (verbose) dump_tab(); #endif DEBUG if(zcat_flg == 0) {. copystat(*fileptr, ofname); /* Copy stats */- if((exit_stat != SUCCESS_EXIT) || (!quiet))  putc('\n', stderr); } }" } else { /* Standard input */ if (do_decomp == 0) { compress();N if(!quiet) putc('\n', stderr); } else {! /* Check the magic number */ if (nomagic == 0) {+ if ((getchar()!=(magic_header[0] & 0xFF)). || (getchar()!=(magic_header[1] & 0xFF))) {; fprintf(stderr, "stdin: not in compressed format\n");x exit(FAIL_EXIT); }o- maxbits = getchar(); /* set -b from file */ ( block_compress = maxbits & BLOCK_MASK; maxbits &= BIT_MASK; maxmaxcode = 1 << maxbits;7 fsize = 100000; /* assume stdin large for USERMEM */ if(maxbits > BITS) { fprintf(stderr,? "stdin: compressed with %d bits, can only handle %d bits\n",  maxbits, BITS); exit(FAIL_EXIT);s } } #ifndef DEBUGv decompress(); #else DEBUG " if (debug == 0) decompress(); else printcodes(); if (verbose) dump_tab(); #endif DEBUG } }  exit(exit_stat);}ostatic int offset;.long int in_count = 1; /* length of input */7long int bytes_out; /* length of compressed output */EAlong int out_count = 0; /* # of codes output (for debugging) */2K#define HOG_CHECK ((count_int) 2000) /* Number of chars to read b4 check */nL#define MAX_CACHE ((count_int) 1<= 30000) ) { /* use hashing on small files */1 while ( (c = getchar()) != (unsigned) EOF ) { in_count++;. fcode = (long) (((long) c << maxbits) + ent);B if ( ftable [fcode] != 0 ) /* test for code in "string" table */ ent = ftable [fcode]; else {n output ( (code_int) ent );8 out_count++;j ent = c;a% if ( free_ent >= maxmaxcode ) { oF if ( (count_int)in_count < checkpoint || (!block_compress) )  continue;s else { clear ();u i = 0; }*( } else { /* put code in table */& ftable [fcode] = (short) free_ent++;? fcodemem [i++] = fcode; /* memorize for block compression */  } } }n goto fin;n}o#endif USERMEM5 chog = CHOG; /* assumed character for the hog */x cstat_flg = 0; hsize_reg = hsize;0 cl_hash(hsize_reg); /* clear hash tables */1 while ( (c = getchar()) != (unsigned) EOF ) { in_count++; if ( cstat_flg == 0 ) {= cfreq [c]++; /* gather frequencies at start of input */1. if ( (count_int)in_count > HOG_CHECK ) { cstat_flg = 1;+ chog = hogtally(); /* compute char hog */4 if(chog != CHOG) /* fixup for wrong assumption */% creset( (count_int) free_ent );t } } if ( c == chog ) 7 if ( (i = hashcache [ent]) ) { /* cache -> code */s ent = i; continue;n }. fcode = (long) (((long) c << maxbits) + ent);#ifdef SHORT_INTD i = (((c + 12347) * ent) & 077777) % HSIZE; /* avoid 'lrem' call */#else !SHORT_INT0 i = fcode % hsize_reg; /* division hashing */#endif SHORT_INT if ( htab [i] == fcode ) {  ent = codetab [i];  continue;2 } else if ( (long)htab [i] < 0 ) /* empty slot */ goto nomatch;7 disp = hsize_reg - i; /* secondary hash (G. Knott) */  if ( i == 0 ) disp = 1;probe: if ( (i -= disp) < 0 )N i += hsize_reg; if ( htab [i] == fcode ) {n ent = codetab [i];e conti00H'HH H6%! !nue; } if ( (long)htab [i] > 0 )  goto probe;nomatch: output ( (code_int) ent );e out_count++;0#ifdef interdata4 if ( (unsigned) free_ent < (unsigned) maxmaxcode) {#else  if ( free_ent < maxmaxcode ) {!#endif* if ( c == chog ) /* code -> cache */$ hashcache [ent] = free_ent;" /* code -> hashtable */ codetab [i] = free_ent++; htab [i] = fcode; }@ else if ( (count_int)in_count >= checkpoint && block_compress ) clear (); ent = c; }Ufin: /* * Put out the final code. */c output( (code_int)ent ); out_count++; output( (code_int)-1 );s /* * Print out stats on stderr */i! if(zcat_flg == 0 && !quiet) {D #ifdef DEBUG fprintf( stderr,rD "%ld chars in, %ld codes (%ld bytes) out, compression factor %g\n",! in_count, out_count, bytes_out,m) (double)in_count / (double)bytes_out );; fprintf( stderr, "\tCompression as in compact: %5.2f%%\n",m9 100.0 * ( in_count - bytes_out ) / (double) in_count );oN fprintf( stderr, "\tLargest code was %d (%d bits)\n", free_ent - 1, n_bits ); #else DEBUG) fprintf( stderr, "Compression: %5.2f%%",a9 100.0 * ( in_count - bytes_out ) / (double) in_count );e #endif DEBUG }; if(bytes_out > in_count) /* exit(INFO) if no savings */r exit_stat = INFO_EXIT;n return;s}lB/***************************************************************** * TAG( output ) * * Output the given code.e * Inputs:B * code: A n_bits-bit integer. If == -1, then EOF. This assumes& * that n_bits =< (long)wordsize - 1. * Outputs:t * Outputs code to the file.5 * Assumptions:o * Chars are 8 bits long. * Algorithm:m? * Maintain a BITS character long buffer (so that 8 codes willdC * fit in it exactly). Use the VAX insv instruction to insert each*C * code in turn. When the buffer fills up empty it and start over.g */fstatic char buf[BITS]; #if !vax_asmLchar_type lmask[9] = {0xff, 0xfe, 0xfc, 0xf8, 0xf0, 0xe0, 0xc0, 0x80, 0x00};Lchar_type rmask[9] = {0x00, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x3f, 0x7f, 0xff};#endif !vax_asmoutput( code )code_int code;p{o #ifdef DEBUG static int col = 0;* #endif DEBUG /*D * On the VAX, it is important to have the register declarations9 * in exactly the order given, or the asm will break. ( * NOTE: vax vms doesn't support asm */*. register int r_off = offset, bits= n_bits; register char * bp = buf;w if ( code >= 0 ) { #ifdef DEBUG if ( verbose )e$ fprintf( stderr, "%5d%c", code,/ (col+=6) >= 74 ? (col = 0, '\n') : ' ' );s #endif DEBUG #if vax_asm ; /* VAX DEPENDENT!! Implementation on other machines may bes * difficult. *? * Translation: Insert BITS bits from the argument starting at * * offset bits from the beginning of buf. */ 0; /* C compiler bug ?? */ " asm( "insv 4(ap),r11,r10,(r9)" );#else not a vaxsL/* WARNING: byte/bit numbering on the vax is simulated by the following code*/ /*L * Get to the first byte. */ bp += (r_off >> 3); r_off &= 7; /*s? * Since code is always >= 8 bits, only need to mask the first  * hunk on the left.  */= *bp = (*bp & rmask[r_off]) | (code << r_off) & lmask[r_off];k bp++; bits -= (8 - r_off);i code >>= 8 - r_off;A /* Get any 8 bit parts in the middle (<=1 for up to 16 bits). */  if ( bits >= 8 ) {t *bp++ = code; code >>= 8; bits -= 8;  } /* Last bits. */ if(bits)l *bp = code;#endif vax_asm offset += n_bits;! if ( offset == (n_bits << 3) ) {d bp = buf; bits = n_bits;f bytes_out += bits; dov putchar(*bp++);r while(--bits);e if (ferror(stdout)) writeerr();N offset = 0; } /*s? * If the next entry is going to be too big for the code size,;" * then increase it, if possible. */. if ( free_ent > maxcode || (clear_flg > 0)) { /*)< * Write the whole buffer, because the input side won't> * discover the size increase until after it has read00HPHTHH+%O-%TADATADATA it. */ if ( offset > 0 ) {1 if( fwrite( buf, 1, n_bits, stdout ) != n_bits)  writeerr(); bytes_out += n_bits; } offset = 0; if ( clear_flg ) {_4 maxcode = MAXCODE (n_bits = INIT_BITS); clear_flg = 0; } else { n_bits++;n if ( n_bits == maxbits ) maxcode = maxmaxcode;b else maxcode = MAXCODE(n_bits); } #ifdef DEBUG if ( debug ) {f5 fprintf( stderr, "\nChange to %d bits\n", n_bits );f col = 0; } #endif DEBUG } } else { /*t) * At EOF, write the rest of the buffer.. */ if ( offset > 0 )0 fwrite( buf, 1, (offset + 7) / 8, stdout ); bytes_out += (offset + 7) / 8;i offset = 0; fflush( stdout ); #ifdef DEBUG if ( verbose )  fprintf( stderr, "\n" );- #endif DEBUG if( ferror( stdout ) )A writeerr();* } }idecompress() {& register int stack_top = MAXSTACK;, register code_int code, oldcode, incode; register int finchar;e char stack[MAXSTACK];v /*? * As above, initialize the first 256 entries in the table. */k* maxcode = MAXCODE(n_bits = INIT_BITS);+ for ( code = 255; code >= 0; code-- ) { tab_prefix[code] = 0;$ tab_suffix[code] = (char_type)code; } 1 free_ent = ((block_compress) ? FIRST : 256 );s" finchar = oldcode = getcode();E putchar( (char)finchar ); /* first code must be 8 bits = char */ ( while ( (code = getcode()) != -1 ) {+ if ( (code == CLEAR) && block_compress ) {= tab_prefix [code-3] = 0; tab_prefix [code-2] = 0; tab_prefix [code-1] = 0; tab_prefix [code] = 0;/* } -- spurious? MM */) clear_flg = 1;) free_ent = FIRST - 1;> if ( (code = getcode ()) == -1 ) /* O, untimely death! */ break; } incode = code;  /*" * Special case for KwKwK string. */ if ( code >= free_ent ) {" stack[--stack_top] = finchar; code = oldcode; } /*a/ * Generate output characters in reverse order */#ifdef interdata: while ( ((unsigned long)code) >= ((unsigned long)256) ) {#else !interdata while ( code >= 256 ) {#endif interdata+ stack[--stack_top] = tab_suffix[code]; code = tab_prefix[code];* }1 stack[--stack_top] = finchar = tab_suffix[code];o /*% * And put them out in forward order  */, for ( ; stack_top < MAXSTACK; stack_top++ ) putchar(stack[stack_top]); if (ferror(stdout)) writeerr ( );i stack_top = MAXSTACK; /*p * Generate the new entry.e */& if ( (code=free_ent) < maxmaxcode ) {0 tab_prefix[code] = (unsigned short)oldcode; tab_suffix[code] = finchar; free_ent = code+1;  } n /*d * Remember previous code.o */ oldcode = incode; }  fflush( stdout ); if(ferror(stdout)) writeerr();} B/***************************************************************** * TAG( getcode )a *= * Read one code from the standard input. If EOF, return -1.d * Inputs: * stdind * Outputs:, * code or -1 is returned. */icode_int getcode() {  /*D * On the VAX, it is important to have the register declarations9 * in exactly the order given, or the asm will break.r */  register code_int code;R$ static int offset = 0, size = 0; static char_type buf[BITS];m register int r_off, bits;r! register char_type *bp = buf;eB if ( clear_flg > 0 || offset >= size || free_ent > maxcode ) { /*f: * If the next entry will be too big for the current code? * size, then we must increase the size. This implies readingt * a new buffer full, too.b */ if ( free_ent > maxcode ) { n_bits++; if ( n_bits == maxbits )*6 maxcode = maxmaxcode; /* won't get any bigger now */ else maxcode = MAXCODE(n_bits); } if ( clear_flg > 0) {0 maxcode = MAXCODE (n_bits = INIT_BITS); clear_flg = 0; }' size = fread( buf, 1, n_bits, stdin );3 if ( size <= 0 ) # return -1; /* end of file */ offset = 0;2 /* Round size down to integral number of co00H'HH H6%! !des */# size = (size << 3) - (n_bits - 1);  }  r_off = offset;  bits = n_bits; #if vax_asm0% asm( "extzv r10,r9,(r8),r11" );E#else not a vaxH /*> * Get to the first byte. */ bp += (r_off >> 3); r_off &= 7;& /* Get first part (low order bits) */#ifdef NO_UCHARn5 code = ((*bp++ >> r_off) & rmask[8 - r_off]) & 0xff; #else NO_UCHAR* code = (*bp++ >> r_off);,#endif NO_UCHAR+ bits -= (8 - r_off);a5 r_off = 8 - r_off; /* now, offset into code word */sA /* Get any 8 bit parts in the middle (<=1 for up to 16 bits). */ if ( bits >= 8 ) { #ifdef NO_UCHARi% code |= (*bp++ & 0xff) << r_off; #else NO_UCHARe code |= *bp++ << r_off;#endif NO_UCHARh r_off += 8; bits -= 8;n } /* high order bits. */c& code |= (*bp & rmask[bits]) << r_off; #endif vax offset += n_bits; return code;}rchar *9rindex(s, c) /* For those who don't have it in libc.a */register char *s, c;{t char *p;t for (p = NULL; *s; s++) if (*s == c)  p = s; return(p); } #ifdef DEBUG printcodes(){s /*C * Just print out codes from input file. Mostly for debugging.  */  code_int code; int col = 0, bits; bits = n_bits = INIT_BITS; maxcode = MAXCODE(n_bits);1 free_ent = ((block_compress) ? FIRST : 256 );) while ( ( code = getcode() ) >= 0 ) {} free_ent = FIRST - 1;0 clear_flg = 1; }" else if ( free_ent < maxmaxcode ) free_ent++; if ( bits != n_bits ) {7 fprintf(stderr, "\nChange to %d bits\n", n_bits );m bits = n_bits;m col = 0;  }I fprintf(stderr, "%5d%c", code, (col+=6) >= 74 ? (col = 0, '\n') : ' ' );t }/ putc( '\n', stderr );e exit( SUCCESS_EXIT ); }n"dump_tab() /* dump string table */{! register int i;  register ent;a@ char stack[4 * MAXSTACK]; /* \nnn makes it 4 times bigger */! int stack_top = 4 * MAXSTACK; & for ( i = 0; i < free_ent; i++ ) { ent = i; < if ( isascii(tab_suffix[ent]) && isprint(tab_suffix[ent]) )* fprintf( stderr, "%5d: %5d/'%c' \"", elsee+ fprintf( stderr, "%5d: %5d/\\%03o \"",!+ ent, tab_prefix[ent], tab_suffix[ent] );c stack[--stack_top] = '\n';d stack[--stack_top] = '"'; for ( ; ent != NULL;o3 ent = (ent >= FIRST ? tab_prefix[ent] : NULL) ) {o@ if ( isascii(tab_suffix[ent]) && isprint(tab_suffix[ent]) )' stack[--stack_top] = tab_suffix[ent];v else {_ switch( tab_suffix[ent] ) {c- case '\n': stack[--stack_top] = 'n'; break;*- case '\t': stack[--stack_top] = 't'; break;)- case '\b': stack[--stack_top] = 'b'; break;- case '\f': stack[--stack_top] = 'f'; break;_- case '\r': stack[--stack_top] = 'r'; break; default:5 stack[--stack_top] = '0' + tab_suffix[ent] % 8;; stack[--stack_top] = '0' + (tab_suffix[ent] / 8) % 8;] break; }g stack[--stack_top] = '\\'; } }B fwrite( &stack[stack_top], 1, 4 * MAXSTACK - stack_top, stderr ); stack_top = 4 * MAXSTACK; }e}a #endif DEBUGB/***************************************************************** * TAG( writeerr ) *E * Exits with a message. We only check for write errors often enough*E * to avoid a lot of "file system full" messages, not on every write.i? * ferror() check after fflush will catch any others (I trust).e * */E writeerr(){ #ifdef vms extern int errno;( int error_number = errno;b perror(ofname); delete(ofname);( exit(error_number);p#else  perror ( ofname ); unlink ( ofname ); exit ( FAIL_EXIT );;#endif}icopystat(ifname, ofname)char *ifname, *ofname;{t #ifdef vms fclose(stdout);t /*& * Don't know how to set modes yet */ E fprintf(stderr, "Note: input file \"%s\" not removed\n", ifname);r#elsea struct stat statbuf; int mode;_ time_t timep[2]; fclose(stdout);o? if (stat(ifname, &statbuf)) { /* Get stat on input file */r perror(ifname); return; }6F if ((statbuf.st_mode & S_IFMT/*0170000*/) 00HPHTHH+%O-%TADATADATA!= S_IFREG/*0100000*/) { if(quiet)" fprintf(stderr, "%s: ", ifname);6 fprintf(stderr, " -- not a regular file: unchanged"); exit_stat = FAIL_EXIT; & } else if (statbuf.st_nlink > 1) { if(quiet)" fprintf(stderr, "%s: ", ifname);5 fprintf(stderr, " -- has %d other links: unchanged",* statbuf.st_nlink - 1); exit_stat = FAIL_EXIT;aX } else if (exit_stat == INFO_EXIT && (!force)) { /* No compression: remove file.Z */' fprintf(stderr, " -- file unchanged"); 7 } else { /* ***** Successful Compression ***** */e exit_stat = SUCCESS_EXIT; mode = statbuf.st_mode & 07777;+ if (chmod(ofname, mode)) /* Copy modes */ perror(ofname);D chown(ofname, statbuf.st_uid, statbuf.st_gid); /* Copy ownership */ timep[0] = statbuf.st_atime;s timep[1] = statbuf.st_mtime;tD utime(ofname, timep); /* Update last accessed and modified times */, if (unlink(ifname)) /* Remove input file */ perror(ifname); if(!quiet) 2 fprintf(stderr, " -- replaced with %s", ofname);! return; /* Successful return */d }p8 /* Unsuccessful return -- one of the tests failed */ if (unlink(ofname))r perror(ofname);#endif}b/*H * This routine returns 1 if we are running in the foreground and stderr * is a tty. */c foreground(){o" if(bgnd_flag) { /* background? */ return(0); } else { /* foreground */, if(isatty(2)) { /* and stderr is a tty */ return(1);* } else { return(0);. }R }}o onintr ( ){e #ifdef vms extern int errno;d int error_number = errno;c delete(ofname);n exit(error_number);d#else  unlink ( ofname ); exit ( FAIL_EXIT );B#endif}(.clear () /* table clear for block compress */{m register code_int i;! register count_int *p, *endp;n register unsigned short *q; #ifdef DEBUG if(debug); fprintf ( stderr, "count: %ld ratio: %f\n", in_count,.0 (double) in_count / (double) bytes_out ); #endif DEBUG& checkpoint = in_count + CHECK_GAP;9 if ( (double) in_count / (double) bytes_out > ratio )a0 ratio = (double) in_count / (double) bytes_out; else { ratio = 0.0;e#ifdef USERMEM3 if ( maxbits <= FBITS ) /* sparse array clear */d0 for ( i = (1 << maxbits) - 1; i >= 0; i-- )9 ftable [fcodemem [i]] = 0; /* indirect thru "shadow" */t else )#endif USERMEM /* hash table clear */f { endp = &htab [hsize];9 for ( p = &htab [0], q = &codetab [0]; p < endp; ) { *p++ = -1; *q++ = 0;e } creset ( MAX_CACHE ); } free_ent = FIRST; clear_flg = 1;  output ( (code_int) CLEAR ); #ifdef DEBUG if(debug)$ fprintf ( stderr, "clear\n" ); #endif DEBUG }e}c#creset ( n ) /* clear hash cache */[@ register count_int n; /* clear at least this many entries */{  register count_int i;d$ register unsigned short *hash_p;% register unsigned short zero = 0;a static int nfiles = 0;< if ( nfiles++ == 0 ) /* No clear needed if first time */ return; n = (n+15) & (-16);d hash_p = hashcache + n; " for ( i = n; i > 0; i -=16 ) { *(hash_p-16) = zero;i *(hash_p-15) = zero;1 *(hash_p-14) = zero;i *(hash_p-13) = zero;{ *(hash_p-12) = zero; *(hash_p-11) = zero;  *(hash_p-10) = zero;  *(hash_p-9) = zero; *(hash_p-8) = zero; *(hash_p-7) = zero; *(hash_p-6) = zero; *(hash_p-5) = zero; *(hash_p-4) = zero; *(hash_p-3) = zero; *(hash_p-2) = zero; *(hash_p-1) = zero; hash_p -= 16; }}}f,hogtally () /* compute character code hog */{f register int i, most;4& for ( i = most = 0; i < 256; i++ )! if ( cfreq [i] >= cfreq [most] )f most = i; return ( most );}/cl_hash(hsize) register int hsize;{d) register count_int *htab_p = htab+hsize;i register int i; register long m1 = -1;e /* clear hashcache */ #define min(a,b) ((a>b) ? b : a), creset( min((count_int)hsize, MAX_CACHE) ); i = hsize - 16; do {i *(htab_p-16) = m1; *(htab_p-15) = m1; *(htab_p-14) = m1; *(htab_p-13) = m1; *(htab_p-12) = m1; 00HHH H6%! !*(htab_p-11) = m1; *(htab_p-9) = m1; *(htab_p-8) = m1;a *(htab_p-7) = m1;_ *(htab_p-6) = m1;u *(htab_p-5) = m1;a *(htab_p-4) = m1;f *(htab_p-3) = m1;m *(htab_p-2) = m1; *(htab_p-1) = m1;a htab_p -= 16;f } while ((i -= 16) >= 0); for ( i += 16; i > 0; i-- ) *--htab_p = m1;;} #ifdef vms/*< * getredirection() is intended to aid in porting C programs7 * to VMS (Vax-11 C) which does not support '>' and '<'i7 * I/O redirection. With suitable modification, it mayU1 * useful for other portability problems as well.  *//* #include */intugetredirection(argc, argv) int argc; char **argv; /*= * Process vms redirection arg's. Exit if any error is seen.i: * If getredirection() processes an argument, it is erased? * from the vector. getredirection() returns a new argc value.u *> * Warning: do not try to simplify the code for vms. The codeA * presupposes that getredirection() is called before any data is ( * read from stdin or written to stdout. * * Normal usage is as follows: * * main(argc, argv)n * int argc;, * char *argv[];E * {& * argc = getredirection(argc, argv); * } */ { + register char *ap; /* Argument pointer */e int i; /* argv[] index */b int j; /* Output index */F# int file; /* File_descriptor */F- extern int errno; /* Last vms i/o error */*: for (j = i = 1; i < argc; i++) { /* Do all arguments */ switch (*(ap = argv[i])) {e case '<': /* ': /* >file or >>file */# if (*++ap == '>') { /* >>file */c /*3 * If the file exists, and is writable by us, 6 * call freopen to append to the file (using the7 * file's current attributes). Otherwise, createg3 * a new file with "vanilla" attributes as ifr/ * the argument was given as ">filename".x3 * access(name, 2) is TRUE if we can write onx * the specified file. */x! if (access(++ap, 2) == 0) {o( if (freopen(ap, "a", stdout) != NULL)' break; /* Exit case statement */( perror(ap); /* Error, can't append */' exit(errno); /* After access test */*" } /* If file accessable */ }i /*8 * On vms, we want to create the file using "standard"5 * record attributes. create(...) creates the filei3 * using the caller's default protection mask andd/ * "variable length, implied carriage return" 8 * attributes. dup2() associates the file with stdout. */6 if ((file = creat(ap, 0, "rat=cr", "rfm=var")) == -1) || dup2(file, fileno(stdout)) == -1) {c* perror(ap); /* Can't create file */) exit(errno); /* is a fatal error */t } /* If '>' creation */u break; /* Exit case test */? default: ) argv[j++] = ap; /* Not a redirector */* break; /* Exit case test */h } } /* For all arguments */e) argv[j] = NULL; /* Terminate argv[] *//$ return (j); /* Return new argc */}s#endifXFrom: HENRY::IN%"engvax!PORTIA%CSVAX.CALTECH.EDU%relay.cs.net@rca.com" 31-OCT-1986 12:504To: cit-vax!csnet-relay.arpa!everhart@arisia%rca.com7Subj: tpu enhancements, sure put on sigtape if you wishFour files are included hereEDTPLUS.TPU - the source.EDTMEMORY.COM - command file to invoke EDTPLUS,EDT_PLUS_TPU.KEY - keypad definition summary-RECT.BUL - notes on rectangular cut and pasteCnote the use of logical name USR: for location of section file, etcA-- Portia Bjorndahl UUCP -- {all00HPHTHH+%O-%TADATADATAegra|ihnp4}!scgvaxd!engvax!portia> Hughes Aircraft Co. ARPA -- engvax!portia@csvax.caltech.edu (213) 616-2635M========================= cut here for EDTPLUS.TPU ==========================!++ ! FACILITY:"! Text Processing Utility (VAXTPU)! ! ABSTRACT:F! This is the VAXTPU source program for the EDTplus emulator interface!! compile this by1! EDIT/TPU/SECTION=EDTSECINI/Command=EDTPLUS.TPU! then invoke TPU by(! EDIT/TPU/SEC=Usr:EDTPLUS.GBL filename!! ENVIRONMENT: ! VAX/VMS 4.2!! Author: Portia Bjorndahl!! CREATION DATE: 16-Oct-1985@! MODIFICATIONS: 22-Oct-1985 do not map more than one DCL window:! 26-Nov-1985 ask for alternate file name if can't write! in write_current_buffer9! 18-Feb-1986 fix end-of range for 1 character range in ! replace8! 16-May-1986 added rectangle cut and paste - F KamgarL! 10-Jul-1986 added option to display line # at - F Kamgar;! 23-Jul-1986 added mark checking in rectangular cut - FK!--Procedure include_file LOCAL file;# file:=read_line('Include file:'); read_file(file);endProcedure; !include_fileProcedure goto_fileLOCAL file,buff,buffer_ptr; file:=read_line('Goto file:'); buff:=file;$ buffer_ptr:=edt$find_buffer(buff); if buffer_ptr=0 then) buffer_ptr:=create_buffer(buff,file); endif;! map(current_window,buffer_ptr); show_status_line;endProcedure; !goto_fileProcedure goto_readonly_file&LOCAL file,buff,buffer_ptr,window_ptr;+ file:=read_line('Goto file :'); buff:=file;$ buffer_ptr:=edt$find_buffer(buff); if buffer_ptr=0 then) buffer_ptr:=create_buffer(buff,file); endif; window_ptr:=half_window;% set(scrolling,window_ptr,ON,0,0,0); map(window_ptr,buffer_ptr);" set(NO_WRITE,current_buffer,ON); show_status_line;!endProcedure; !goto_readonly_fileProcedure visit_file&LOCAL file,buff,buffer_ptr,window_ptr;! file:=read_line('Visit file:'); buff:=file;$ buffer_ptr:=edt$find_buffer(buff); if buffer_ptr=0 then) buffer_ptr:=create_buffer(buff,file); endif; window_ptr:=half_window;% set(scrolling,window_ptr,ON,0,0,0); map(window_ptr,buffer_ptr); show_status_line;endProcedure; !visit_fileProcedure write_current_bufferLOCAL nowrite,file;on_error- file:=read_line('Enter another filename:');" write_file(current_buffer,file); endon_error;/ nowrite:=get_info(current_buffer,'no_write'); if nowrite=1 thenC file:=read_line('Buffer is READONLY, enter another filename:');$ write_file(current_buffer,file); else write_file(current_buffer); endif;#endProcedure; !write_current_bufferProcedure update_all_files LOCAL buf;! buf:=get_info(buffers,'first'); loop exitif buf=0;G if (get_info(buf,'modified')=1) AND (get_info(buf,'file_name')<>'')' AND (get_info(buf,'no_write')=0) then write_file(buf); endif;" buf:=get_info(buffers,'next'); endloop;endProcedure; !update_all_filesProcedure map_to_buffer(buff)LOCAL buffer_ptr;$ buffer_ptr:=edt$find_buffer(buff); if buffer_ptr=0 then$ buffer_ptr:=create_buffer(buff); endif;! map(current_window,buffer_ptr); show_status_line;endProcedure; !map_to_bufferProcedure goto_buffer LOCAL buff;" buff:=read_line('Goto buffer:'); map_to_buffer(buff);endProcedure; !goto_bufferProcedure goto_main_buffer LOCAL buff; buff:='MAIN'; map_to_buffer(buff);endProcedure; !goto_main_bufferProcedure next_windowLOCAL window_ptr; window_ptr:=current_window; loop, window_ptr:=get_info(window_ptr,'next'); exitif window_ptr=0;' if get_info(window_ptr,'visible')=1 then position(window_ptr); exitif; endif; endloop; if window_ptr=0 then message('No next window'); endif;endProcedure; !next_windowProcedure previous_windowLOCAL window_ptr; window_ptr:=current_window; loop0 window_ptr:=get_info(window_ptr,'previous'); exitif window_ptr=0;' 00HHH H6%! !if get_info(window_ptr,'visible')=1 then position(window_ptr); exitif; endif; endloop; if window_ptr=0 then" message('No previous window'); endif;endProcedure; !previous_windowProcedure window_halfLOCAL window_ptr; window_ptr:=half_window;% set(scrolling,window_ptr,ON,0,0,0);! map(window_ptr,current_buffer); show_status_line;endProcedure; ! window_halfProcedure window_topLOCAL cur_row,vtop,n; cur_row:=current_row;/ vtop:=get_info(current_window,'visible_top'); n:=cur_row-vtop; scroll(current_window,n); cursor_vertical(-n);endProcedure; !window_topProcedure window_bottomLOCAL cur_row,vbot,n; cur_row:=current_row;2 vbot:=get_info(current_window,'visible_bottom'); n:=vbot-cur_row; scroll(current_window,-n); cursor_vertical(n);endProcedure; !window_bottomProcedure only_windowLOCAL vtop,vbot,tmp_pos; tmp_pos:=mark(none);/ vtop:=get_info(current_window,'visible_top');2 vbot:=get_info(current_window,'visible_bottom');/ adjust_window(current_window,1-vtop,20-vbot); position(tmp_pos); update(current_window);endProcedure; ! only_windowProcedure grow_windowLOCAL vtop,vbot,n_lines;/ vtop:=get_info(current_window,'visible_top');2 vbot:=get_info(current_window,'visible_bottom'); if vtop>1 then' adjust_window(current_window,-1,0); else& adjust_window(current_window,0,1); endif;endProcedure; !grow_windowProcedure shrink_windowLOCAL vtop,vbot,n_lines;/ vtop:=get_info(current_window,'visible_top');2 vbot:=get_info(current_window,'visible_bottom');7 n_lines:=get_info(current_window,'visible_length')-1; if n_lines=2 then# message('Can not shrink more'); return; endif; if vtop>1 then& adjust_window(current_window,1,0); else' adjust_window(current_window,0,-1); endif;endProcedure; !shrink_windowProcedure change_window_widthLOCAL current_width;2 current_width:=get_info(current_window,'WIDTH'); if current_width<=80 then " set(width,current_window,132); else! set(width,current_window,80); endif;"endProcedure; !change_window_widthProcedure pick_rangeLOCAL tmp_pos; edt$select_range; if edt$x_select_range<>0 then tmp_pos:=mark(none);) pick_buffer:=edt$find_buffer('PICK'); if pick_buffer=0 then) pick_buffer:=create_buffer('PICK');# set(NO_WRITE,pick_buffer,ON);0 set(eob_text,pick_buffer,'[End of Pick]'); set(system,pick_buffer); else erase(pick_buffer); endif; position(pick_buffer); split_line; move_vertical(-1);" copy_text(edt$x_select_range); position(tmp_pos); edt$x_select_range:=0; else message('No Select Active'); edt$x_repeat_count:=1; endif;endProcedure; !pick_rangeProcedure put_range5 if (beginning_of(pick_buffer)<>end_of(pick_buffer)) then copy_text(pick_buffer); append_line; endif;endProcedure; !put_rangeProcedure insert_rectMLOCAL col,counter,end_ins,extract_buff,ins_mark,llen,numlines,numlines_added,& start_ins,tabs,tabsearch,temp,tflag; on_error endon_error; set (bell,all,on);+ extract_buff:=edt$find_buffer("EXTRACT"); if (extract_buff<>0) then 4 numlines:=get_info(extract_buff,"record_count"); if (numlines<>0) then  col:=current_column; move_horizontal(1-col);B tflag:=0; ! flag to indicate inserting text at end of buffer1 if (mark(none)=end_of(current_buffer)) then tflag:=1; split_line; move_vertical(-1); endif; start_ins:=mark(none); counter:=0; numlines_added:=0; loop" exitif (counter=numlines);3 if (mark(none)=end_of(current_buffer)) then split_line;+ numlines_added:=numlines_added+1; else move_vertical(+1); endif; counter:=counter+1; endloop; end_ins:=mark(none); if tflag=1 then move_vertical(00HPHTHH+%O-%TADATADATA-1); erase_line; endif;+ position(beginning_of(extract_buff)); position(start_ins);% tabsearch:=search(' ',forward); if tabsearch=0 then  tabs:=0; else0 if beginning_of(tabsearch)>=end_ins then tabs:=0; else tabs:=1; endif; endif;2 if (tabs=0) then !no tabs in inserting range counter:=0; loop$ exitif (counter=numlines);% llen:=length(current_line);F if (llen<(col-1)) then !extend line with blanks if necessaryM move_horizontal(llen-get_info(current_buffer,"offset_column")+1); nb:=(col-llen-1); pad_w_nb_blanks; elseJ move_horizontal(col-get_info(current_buffer,"offset_column")); endif; ins_mark:=mark(none);! position(extract_buff); temp:=mark(none); move_vertical(+1); move_horizontal(-2);8 ins_range:=create_range(temp,mark(none),none); move_horizontal(+2); position(ins_mark); copy_text(ins_range); move_vertical(+1); counter:=counter+1; endloop; elseG message('cannot insert because tabs are imbedded in the text'); position(end_ins); counter:=0;( loop ! delete extra lines added* exitif (counter=numlines_added); move_vertical(-1); erase_line; counter:=counter+1; endloop; endif; position(start_ins); move_horizontal(col-1); else& message("EXTRACT buffer empty"); endif; else! message("no data to insert"); endif; set (bell,all,off); set (bell,broadcast,on);endProcedure; !insert_rectProcedure overlay_rectFLOCAL col,counter,end_ins,extract_buff,ins_mark,linelen,llen,numlines,@ numlines_added,start_ins,tabs,tabsearch,temp,temp_range,tflag; on_error endon_error set (bell,all,on);+ extract_buff:=edt$find_buffer("EXTRACT"); if (extract_buff<>0) then 4 numlines:=get_info(extract_buff,"record_count"); if (numlines<>0) then  col:=current_column; move_horizontal(1-col); tflag:=0;1 if (mark(none)=end_of(current_buffer)) then tflag:=1; split_line; move_vertical(-1); endif; start_ins:=mark(none); counter:=0; numlines_added:=0; loop" exitif (counter=numlines);3 if (mark(none)=end_of(current_buffer)) then split_line;+ numlines_added:=numlines_added+1; else move_vertical(+1); endif; counter:=counter+1; endloop; end_ins:=mark(none); if tflag=1 then move_vertical(-1); erase_line; endif;+ position(beginning_of(extract_buff));$ linelen:=length(current_line); position(start_ins);% tabsearch:=search(' ',forward); if tabsearch=0 then  tabs:=0; else0 if beginning_of(tabsearch)>=end_ins then tabs:=0; else tabs:=1; endif; endif;2 if (tabs=0) then !no tabs in inserting range counter:=0; loop$ exitif (counter=numlines);% llen:=length(current_line);N if ((llen-col+1)mark_2) then if (mark_1 flag:=1; !flag used for cursor placement after extract position(mark_1);4 move_horizontal(1-col_1); !beginning of line start_ext:=mark(none); position(mark_2);D move_horizontal(length(current_line)-col_2+1); !end of line  end_ext:=mark(none); else position(mark_2);4 move_horizontal(1-col_2); !beginning of line start_ext:=mark(none);8 if (start_ext=beginning_of(current_buffer)) then flag:=2; else flag:=3; move_horizontal(-1); ret_mark:=mark(none); endif; position(mark_1);C move_horizontal(length(current_line)-col_1+1); !end of line end_ext:=mark(none); endif; position(end_ext);6 ext_range:=create_range(start_ext,end_ext,none);) dummy_buff:=create_buffer('DUMMY');" set(no_write,dummy_buff,on); set(system,dummy_buff); position(dummy_buff); copy_text(ext_range); tabs:=search(' ',REVERSE); if tabs=0 then 1 extract_buff:=edt$find_buffer('EXTRACT'); if extract_buff=0 then 1 extract_buff:=create_buffer('EXTRACT');( set(no_write,extract_buff,on);8 set(eob_text,extract_buff,'[End of Extract]');# set(system,extract_buff); else erase(extract_buff); endif; erase(ext_range); leftcolm:=col_1; if col_1>col_2 then  leftcolm:=col_2; col_2:=col_1; col_1:=leftcolm; endif;" rect_width:=col_2-col_1+1;+ position(beginning_of(dummy_buff));: numlines:=get_info(current_buffer,"record_count"); dumb:=1; loop% llen:=length(current_line); if llenmark_2 delete(mark_1); endif; ! if mark_1 exists set (bell,all,off);- set (bell,broadcast,on);endProcedure; !extract_rectProcedure pad_w_nb_blanksvLOCAL loc,blanks_range,end_pad;  if (nb<>0) then  loc:=mark(none);+ blanks_buff:=edt$find_buffer('BLANKS');a if blanks_buff=0 then + blanks_buff:=create_buffer('BLANKS');a# set(no_write,blanks_buff,on);u set(system,blanks_buff);K position(blanks_buff); !insert 132 blanks in blanks_buff for paddingt8! there are 72 blanks in each of the following two linesV copy_text(' ');V copy_text(' '); position(loc); endif;( position(beginning_of(blanks_buff)); move_horizontal(nb-1); end_pad:=mark(none);G blanks_range:=create_range(beginning_of(blanks_buff),end_pad,none);i position(loc); copy_text(blanks_range); endif;endProcedure; !pad_w_nb_blanksGProcedure copy_rect);LOCAL col_2,dummy_buff,dumb,end_ext,ext_range,extract_buff,f+ last_line,llen,rect_width,tabs,temp; f, on_error !suppress WARNING error messages endon_error( set (bell,all,on); mark_2:=mark(none);w col_2:=current_column; if not(mark_1) then  message("no marker set");P else if (mark_1<>mark_2) then if (mark_1col_2 then  dumb :=col_1;w col_1:=col_2;a col_2:=dumb; endif;" rect_width:=col_2-col_1+1;+ position(beginning_of(dummy_buff));_: numlines:=get_info(current_buffer,"record_count"); dumb:=1; loop% llen:=length(current_line);n if llenmark_2 delete(mark_1);v endif; set (bell,all,off);; set (bell,broadcast,on);endProcedure; !copy_rectProcedure replacement_logLOCAL msg_text;b case n from 0 to 1( [0]: msg_text:='No replacements made';) [1]: msg_text:='Replaced 1 occurrence';;< [outrange]: msg_text:=FAO('Replaced !UL occurrences',n); endcase; erase(message_buffer); message(msg_text); position(here);v update(current_window);rendProcedure; !replacement_logProcedure replacet-LOCAL from_string,to_string,action,src_range;e!GLOBAL here, nuon_error replacement_log; return; endon_error; n:=0; action:=' '; here:=mark(none);u1 from_string:=read_line('replace old string> ');t, to_string:=read_line('with new string> '); loop+ src_range:=search(from_string,FORWARD);, erase(message_buffer); message(P"' '->change,'!'->change all '.'->change and stop 'n'->don't change 's'->stop"); position(src_range); update(current_window);  loop action:=read_char;/ command_index := index(' !.nNsS',action);p exitif command_index<>0; endloop;" case command_index from 1 to 7! [1]: ! change this occurrence  erase(src_range); position(end_of(src_range)); copy_text(to_string);i n:=n+1;o [2]: ! change allt loop erase(src_range); position(end_of(src_range)); copy_text(to_string);P n:=n+1;r+ src_range:=search(from_string,FORWARD);O endloop;( exitif; !exit loop for each occurrence [3]: ! change and stop erase(src_range); position(end_of(src_range)); copy_text(to_string);t n:=n+1;i exitif;! [4,5]:! don't change this oned if length(from_string)=1 then move_horizontal(1) else position(end_of(src_range))h endif;! [6,7]:! don't change and stop: exitif;u endcase; endloop; replacement_log;endProcedure; !replaceProcedure transpose LOCAL char;W char:=erase_character(1);  move_horizontal(-1); copy_text(char);endProcedure; !transpose.procedure switch_case !gold kp1 (change case))LOCAL character,what_case,command_index;i, edt$select_range; !check for active select if edt$x_select_range <> 0 i thenG what_case:=read_line('change to Upper/Lower or Invert? [U/L/I]',1);'- command_index:=index('UuLlIi',what_case);o" case command_index from 1 to 66 [1,2]: change_case(edt$x_select_range,UPPER);6 [3,4]: change_case(edt$x_select_range,LOWER);7 [5,6]: change_case(edt$x_select_range,INVERT);e7 [OUTRANGE]: change_case(edt$x_select_range,INVERT);, endcase; edt$x_select_range:=0; return;r endif;G if current_character <> edt$x_empty !change case of current characterd then" character :=current_character;" change_case(character,invert); erase_character(1);n copy_text(character);t# if current_direction <> forward  then move_horizontal(-2); endif; return;i endif;endprocedure; !switch_caseProcedure change_modeuLOCAL current_mode;0 current_mode:=get_info(current_buffer,'MODE'); if current_mode=INSERT then# set(overstrike,current_buffer);o endif; if current_mode=OVERSTRIKE then set(insert,current_buffer);s endif; show_status_line;oendProcedure; !change_modeProcedure refresh_screen erase(message_buffer); refresh;endProcedure; !refresh_screeneProcedure start_learn; message('Remembering...'); learn_begin(EXACT);endProcedure; !start_learnProcedure end_learn; learned:=learn_end;(00HPHTHH+%O-%TADATADATA! message('Done remembering...');nendProcedure; !end_learnProcedure save_cursor save_buf:=current_buffer; save_cur:=mark(none); $ message('Saved current position');endProcedure; !save_cursorProcedure goto_saved_cursor( map(current_window,save_buf);  position(save_cur);e update(current_window); endProcedure; !goto_saved_cursorProcedure display_row_columnLOCAL row_num,col_num;2 row_num:=get_info(current_window,'current_row');5 col_num:=get_info(current_window,'current_column'); B message(FAO('Cursor is at Row !UL Column !UL',row_num,col_num));!endProcedure; !display_row_columni3Procedure linenum !determine what line at in a file !LOCAL num_lines,temp,total_lines;_ temp:=mark(none); P move_horizontal(1-get_info(current_buffer,"offset_column"));!pos @ beg of line7 total_lines:=get_info(current_buffer,"record_count");  num_lines:=total_lines+1;6 loop !count how many lines to end_of(current_buffer)/ exitif (mark(none)=end_of(current_buffer));n move_vertical(+1); num_lines:=num_lines-1; endloop; position(temp); C message(FAO('you are at line !UL of !UL',num_lines,total_lines));oendProcedure; !linenum Procedure goto_lineLOCAL line_num;;0 line_num:=int(read_line('Goto line number:'));) position(beginning_of(current_buffer));  move_vertical(line_num-1);endProcedure; !goto_lineProcedure list_buffersLOCAL cur_buf,buf; save_pos:=current_window; cur_buf:=current_buffer; erase(show_buffer); position(show_buffer);% set(tab_stops,show_buffer,'21 33');4 copy_text(' Buffer name Lines File'); split_line;F copy_text('------------------------------------------------------'); split_line;e! buf:=get_info(buffers,'first');f loop exitif buf=0;,! if get_info(buf,'modified')=1 then copy_text('M');, else copy_text(' ');m endif; if get_info(buf,'system')=1s then copy_text('S');_ else copy_text(' ');_ endif; if buf=cur_buf then copy_text('=');T else copy_text(' ');t endif;$ copy_text(get_info(buf,'name'));/ copy_text(' '); ! insert a tabc1 copy_text(str(get_info(buf,'record_count'))); / copy_text(' '); ! insert a tab_) copy_text(get_info(buf,'file_name'));  split_line; " buf:=get_info(buffers,'next'); endloop;2 set(width,info_window,get_info(screen,'width')); set(video,info_window,none); map(info_window,show_buffer); & set(status_line,info_window,reverse,= 'Press CTRL-F to remove INFO_WINDOW and resume editing');l& position(beginning_of(show_buffer)); update(info_window);endProcedure; !list_bufferscProcedure half_windowo LOCAL vtop,vbot,half,window_ptr;/ vtop:=get_info(current_window,'visible_top');2 vbot:=get_info(current_window,'visible_bottom'); half:=(vbot-vtop)/2+1;* window_ptr:=create_window(vtop,half,ON); return window_ptr;endProcedure; !half_windowProcedure do_DCL_commandLOCAL DCLcmd,buff,buffer_ptr;=!GLOBAL DCL_proc,DCL_windowgon_error DCL_window:=half_window;% set(scrolling,DCL_window,ON,0,0,0);  map(DCL_window,buffer_ptr);  show_status_line;a endon_error;$ DCLcmd:=read_line('DCL command:'); buff:='DCL';$ buffer_ptr:=edt$find_buffer(buff); if buffer_ptr=0 then$ buffer_ptr:=create_buffer(buff); set(NO_WRITE,buffer_ptr,ON);0 DCL_proc:=create_process(buffer_ptr,DCLcmd); DCL_window:=half_window;' set(scrolling,DCL_window,ON,0,0,0);  else send(DCLcmd,DCL_proc); endif; map(DCL_window,buffer_ptr); show_status_line;nendProcedure; !do_DCL_command,Procedure show_status_lineLOCAL buff,file,mode,status;( buff:=get_info(current_buffer,'NAME');- file:=get_info(current_buffer,'FILE_NAME');( mode:=get_info(current_buffer,'MODE'); if mode=INSERT then status:=''; else status:=''; endif;* if get_info(current_buffer,'NO_WRITE')=1 then status:=status+''; endif;! status:=status+' Buffe00HHH H6%! !r:'+buff; if file<>''n then! status:=status+' File:'+file;  endif;1 set(status_line,current_window,reverse,status);endProcedure; !show_status_line Procedure show_ascii_tableLOCAL cur_buf,buf; save_pos:=current_window;i cur_buf:=current_buffer; erase(show_buffer); position(show_buffer); copy_text(' 0 1 2 3 4 5 6 7'); split_line;xW copy_text(' ----+-------+-------+-------+-------+-------+-------+-------+------'); split_line;cL copy_text(' 0 NUL 0 DLE 16 SP 32 0 48 @ 64 P 80 ` 96 p 112'); split_line;(L copy_text(' 1 SOH 1 DC1 17 ! 33 1 49 A 65 Q 81 a 97 q 113'); split_line;nL copy_text(' 2 STX 2 DC2 18 " 34 2 50 B 66 R 82 b 98 r 114'); split_line;uL copy_text(' 3 ETX 3 DC3 19 # 35 3 51 C 67 S 83 c 99 s 115'); split_line;nL copy_text(' 4 EOT 4 DC4 20 $ 36 4 52 D 68 T 84 d 100 t 116'); split_line;,L copy_text(' 5 ENQ 5 NAK 21 % 37 5 53 E 69 U 85 e 101 u 117'); split_line;sL copy_text(' 6 ACK 6 SYN 22 & 38 6 54 F 70 V 86 f 102 v 118'); split_line;L copy_text(" 7 BEL 7 ETB 23 ' 39 7 55 G 71 W 87 g 103 w 119"); split_line; L copy_text(' 8 BS 8 CAN 24 ( 40 8 56 H 72 X 88 h 104 x 120'); split_line;sL copy_text(' 9 HT 9 EM 25 ) 41 9 57 I 73 Y 89 i 105 y 121'); split_line;gL copy_text(' A LF 10 SUB 26 * 42 : 58 J 74 Z 90 j 106 z 122'); split_line;zL copy_text(' B VT 11 ESC 27 + 43 ; 59 K 75 [ 91 k 107 { 123'); split_line;L copy_text(' C FF 12 FS 28 , 44 < 60 L 76 \ 92 l 108 | 124'); split_line;rL copy_text(' D CR 13 GS 29 - 45 = 61 M 77 ] 93 m 109 } 125'); split_line;=L copy_text(' E SO 14 RS 30 . 46 > 62 N 78 ^ 94 n 110 ~ 126'); split_line;kL copy_text(' F SI 15 US 31 / 47 ? 63 O 79 _ 95 o 111 DEL 127'); split_line;l2 set(width,info_window,get_info(screen,'width')); set(video,info_window,none); map(info_window,show_buffer);c9 set(tab_stops,show_buffer,'8 16 24 32 40 48 56 64 72');a& set(status_line,info_window,reverse,= 'Press CTRL-F to remove INFO_WINDOW and resume editing');n& position(beginning_of(show_buffer)); update(info_window);endProcedure; !show_ascii_tablehProcedure help_keyLOCAL which_key,key_info;T erase(message_buffer);! set(video,message_window,none);_" set(video,message_window,blink);< message('Press the (shift/control) key you want help on');! set(video,message_window,none); which_key:=read_key;* key_info:=lookup_key(which_key,COMMENT); if key_info<>''  then- message('Comment for key is: '+key_info);m else0 message('There is no comment for this key'); endif;endProcedure; !help_keyProcedure define_edt_plus_keys4 define_key('include_file',key_name('i',shift_key),( 'include file before current line');1 define_key('goto_file',key_name('c',shift_key),n2 'use current window to display another file');: define_key('goto_readonly_file',key_name('v',shift_key),; 'use current window to display another file READONLY');t2 define_key('visit_file',key_name('f',shift_key),$ 'visit file in another window');Q define_key('write_current_buffer',key_name('w',shift_key),'save current file');v8 define_key('update_all_files',key_name('u',shift_key),) 'update all modified files on disk');3 define_key('goto_buffer',key_name('b',shift_key),o( 'display buffer in current window');Q define_key('goto_main_buffer',key_name('m',shift_key),'return to main buffer');gB define_key('next_window',key_name('n',shift_key),'next window');J define_key('previous_window',key_name('p',shift_key),'previous window');S define_key('window_half',key_name('+',shift_key),'split current window in half');V define_key('delete(current_window)',key_name('-',shift_key),'unmap current window');1 define_key('window_top',key_name(UP,shift_key), * 'move current line to top of window');6 define_key('window_botto00HPHTHH+%O-%TADATADATAm',key_name(DOWN,shift_key),- 'move current line to bottom of window');2P define_key('only_window',key_name('o',shift_key),'make this the only window');3 define_key('grow_window',key_name('g',shift_key),r' 'grow current window by one line');n5 define_key('shrink_window',key_name('s',shift_key), ) 'shrink current window by one line'); V define_key('change_window_width',key_name(TAB_KEY,shift_key),'toggle window width');U define_key('shift(current_window,8)',key_name(LEFT,shift_key),'shift window left');nW define_key('shift(current_window,-8)',key_name(RIGHT,shift_key),'shift window left');eD define_key('pick_range',KP9,'Copy selected range to Pick buffer');U define_key('put_range',key_name(KP9,shift_key),'put contents of Pick buffer here');LK define_key('mark_it',key_name('.',shift_key),'mark corner of rectangle');SG define_key('insert_rect',key_name('>',shift_key),'insert rectangle');;I define_key('extract_rect',key_name('<',shift_key),'extract rectangle');nL define_key('overlay_rect',key_name(')',shift_key),'paste over rectangle');J define_key('copy_rect',key_name('(',shift_key),'take a copy rectangle');A define_key('replace',key_name('r',shift_key),'replace string'); Q define_key('copy_text(ascii(int(read_line("Enter ASCII code in decimal: "))))',b. key_name(KP3,shift_key),'special insert');G define_key('copy_text(read_char)',ctrl_v_key,'Quote next character');dM define_key('transpose',key_name('t',shift_key),'transpose two characters');oB define_key('switch_case',key_name(KP1,shift_key),'switch case');B define_key('change_mode',ctrl_a_key,'insert/overstrike toggle');) define_key('refresh_screen',ctrl_w_key, / 'erase message buffer and refresh screen');lK define_key('start_learn',key_name('[',shift_key),'Start learn sequence');)R define_key('execute(learned)',key_name('x',shift_key),'Execute learn sequence');G define_key('end_learn',key_name(']',shift_key),'End learn sequence');nL define_key('save_cursor',key_name('=',shift_key),'save current location');P define_key('goto_saved_cursor',key_name('^',shift_key),'goto saved location');P define_key('display_row_column',key_name('?',shift_key),'display row,column');H define_key('goto_line',key_name('#',shift_key),'goto line specified');F define_key('linenum',ctrl_n_key,'display line number currently at');D define_key('list_buffers',key_name('l',shift_key),'list buffers');H define_key('do_dcl_command',key_name('d',shift_key),'do DCL command');L define_key('show_ascii_table',key_name('a',shift_key),'show ascii table');0 define_key('help_key',key_name('h',shift_key),* 'display comment on key definitions');J define_key('attach',key_name('z',shift_key),'Attach to parent process');4 define_key('quit',key_name('q',shift_key),'quit');4 define_key('exit',key_name('e',shift_key),'exit');#endProcedure; !define_edt_plus_keys Procedure tpu$local_init=! space, tab, ff, cr, vt followed by the printable characters 0 edt$x_word:=" !@()_-+={}[]:;'"+'"<>,.?/|\';@ set(prompt_area,(get_info(SCREEN,'VISIBLE_LENGTH')-2),1,NONE);& set(scrolling,main_window,ON,0,0,0); set(informational,on); set(bell,broadcast,ON);l show_status_line;u endProcedure; define_edt_plus_keys;7compile('procedure define_edt_plus_keys endprocedure');hsave('usr:edtplus.gbl');quit;nL========================= cut here for EDTMEMORY.COM =======================$v='f$verify(0) $$! filename = usr:edtmemory.com8$! edt startup file which remembers the last file edited;$! edt=="@usr:edtmemory" !put this line in login.comf $ set noON"$ savemsg=f$environment("MESSAGE")3$ set message/facility/text/identification/severity $!$ n=2t$LOOP: $ param=p'n'$PARSE: $ p'n'=""1-$ file=f$extract(0,f$locate("/",param),param)o$ p'n'=param-fileu#$ if file.nes."" then goto GOT_FILE($ n=n+1f$ if n.le.8 then goto LOOP$ file=f$trnlnm("EDT$MEMORY")o $ASK_FILE:H$ if file.eqs."" .or. file.eqs."NULL" then inquire/nopunc file "$_File:"#$ if file.eqs."" then goto ASK_FILEa $GOT_FILE:#$ assign/u00HHH H6%! !ser sys$command sys$input D$ edit/tpu/section=usr:edtplus.gbl 'file 'p2 'p3 'p4 'p5 'p6 'p7 'p8$ deassign EDT$MEMORY $ define EDT$MEMORY 'file'$ set message'savemsg'$ status=f$verify(v)$ exitM========================= cut here for EDT_PLUS_TPU.KEY =====================bD (this file is in USR:EDT_PLUS_TPU.KEY updated 7/23/86)? EDTmemory like key definitions for Text Processing Utilitya@ invoked by EDIT/TPU/SEC=USR:EDTPLUS.GBL (or @USR:EDTMEMORY)0 keptTPU is invoked by @usr:kepttpu filenameD+-------+--------+---------+-------+ *gold a - show ASCII table@| gold | help | fndnext | del l | *gold b - goto bufferb| | | find | und l | *gold c - change the current window to edit another filek+-------+--------+---------+-------+ *gold d - do DCL command, output of command will go to DCL buffergw| page | sect | PICK * | del w | gold e - exit editor, and save all modifed buffers, except read-only buffersrg|command| fill | PUT * | und w | *gold f - split screen and put another file in current window_R+-------+--------+---------+-------+ *gold g - grow window height by one lineK|forward| reverse| cut | del c | *gold h - help on key definitionsU|bottom | top | paste | und c | gold i - insert a file at current position@+-------+--------+---------+-------+ *gold l - list buffersg| word | eol | char | enter | gold m - goto buffer called MAIN, for compatibility with EDT;?|chgcase|del eol | specins | | *gold n - next windowcM+-------+--------+---------+ | *gold o - make this the only windowcC| line | select | | *gold p - previous windowaa| open line | reset | SUBS | gold q - quit, reconfirm if there are modified buffers _+----------------+---------+-------+ gold r - replace a string with another, with confirmcT *gold s - shrink window height by one line\ gold t - transpose current and previous characterm *gold u - update all modified files to disk (except readonly files)e}* these functions are different from *gold v - split screen and put another file in current window in READONLY mode;Y the default settings *gold w - write current buffer out to fileWd *gold x - execute keyboard learn sequence (keyboard macro)j *gold z - attach to parent process, should be preceded by Gold-U\ 3 (on keypad) - insert ASCII character in decimals 9 (on keypad) - Pick range without erasing it, placing it in PICK bufferdj gold 9 (on keypad) - insert the PICK buffer at current positiono gold UP - goto top of buffer or make current line top line of windowe| *gold DOWN - goto bottom line of buffer or make current line bottom line of windowZ gold RIGHT - shift window to the left 8 columnsZ gold LEFT - shift window to the right 8 columnsH *gold + - split window in halfI *gold - - delete current windowR *gold ? - display current row and columnd *gold TAB - toggle screen width between 80 and 132 columnsN *gold # - goto line number specifiedP *gold = - save current cursor position[ *gold ^ - return to saved current cursor positionrn *gold [ - start remembering keyboard learn seq00HPHTHH+%O-%TADATADATAuence (keyboard macro)l *gold ] - end remembering keyboard learn sequence (keyboard macro)n *gold . - mark corner of rectangle (use keyboard period, not keypad)Q *gold < - extract rectangle of text nQ *gold > - insert rectangle of text here;Q *gold ( - copy rectangle of text iQ *gold ) - overlay rectangle of text o] *ctrl a - toggle between insert and overstrike model_ *ctrl n - display what line number at in current filet] ctrl r - refresh screen u] *ctrl v - quote (insert) the next character ] *ctrl w - refresh screen, erase message buffer se Note - lines marked with * are new to TPU EDTplus interfaceo n keys grouped by function (files);8*gold c - change the current window to edit another file=*gold f - split screen and put another file in current window1+ gold i - insert a file at current positionbN*gold v - split screen and put another file in current window in READONLY mode+*gold u - update all modified files to disk_J*gold w - write current buffer out to file, ask for file name if necessary (buffers) *gold b - goto buffer*gold l - list buffers= gold m - goto buffer called MAIN, for compatibility with EDTt (windows)o(*gold g - grow window height by one line**gold s - shrink window height by one line*gold n - next window *gold p - previous window;#*gold o - make this the only window E gold UP - goto top of buffer or make current line top line of windownR*gold DOWN - goto bottom line of buffer or make current line bottom line of window0 gold RIGHT - shift window to the left 8 columns0 gold LEFT - shift window to the right 8 columns*gold + - split window in half*gold - - delete current window :*gold TAB - toggle screen width between 80 and 132 columns (editing)3*ctrl a - toggle between insert and overstrike mode5 gold r - replace a string with another, with confirmd2 gold t - transpose current and previous character+*ctrl v - quote (insert) the next characterw2 3 (on keypad) - insert ASCII character in decimalI 9 (on keypad) - Pick range without erasing it, placing it in PICK buffere@ gold 9 (on keypad) - insert the PICK buffer at current positionD*gold . - mark corner of rectangle (use keyboard period, not keypad)#*gold < - extract rectangle of textr'*gold > - insert rectangle of text herev *gold ( - copy rectangle of text&*gold ) - overlay rectangle of text  (misc)@*gold d - do DCL command, output of command will goto DCL buffer7 gold q - quit, reconfirm if there are modified buffersaM gold e - exit editor, and save all modifed buffers, except read-only buffers)<*gold z - attach to parent process (only if KeptTPU is used)!*gold h - help on key definitionsu*gold a - show ASCII table(*gold ? - display current row and column0*ctrl n - display what line # at in current file$*gold # - goto line number specified&*gold = - save current cursor position1*gold ^ - return to saved current cursor position D*gold [ - start remembering keyboard learn sequence (keyboard macro)B*gold ] - end remembering keyboard learn sequence (keyboard macro):*gold x - execute keyboard learn sequence (keyboard macro) ctrl r - refresh screen.*ctrl w - refresh screen, erase message bufferM========================= cut here for RECT.BUL ============================= KThe option to perform a rectangular cut and paste has been added to TPU. AuMrectangular cut is not restricted to whole lines, it can start and end at anysJcolumn in the 00I IH H6%! !text as well as start and end at any line in the text. The Lfunctions availible include: rectangular cut (remove designated rectangle ofNtext and save result), rectangular copy (copy designated text without removingKit), insert previously saved rectangle, and overlay rectangle (place saved )rectangle over the text currently there). ?The following keys are used to perform the different functions:-- mark a corner - GOLD "."-- insert rectangle here - GOLD ">" - extract a rectangle - GOLD "<"1- overlay rectangle - GOLD ")" - copy a rectangle - GOLD "("'Extracting a rectangle:tK (1) position cursor at one of the corners of the rectangle and mark the _/ corner by hitting GOLD "." (mark corner)3K (2) position the cursor at the corner diagonally opposite the previously : marked corner and hit GOLD "<". (extract rectangle)Copying a rectangle:K (1) position cursor at one of the corners of the rectangle and mark the / corner by hitting GOLD "." (mark corner) K (2) position the cursor at the corner diagonally opposite the previously 7 marked corner and hit GOLD "(". (copy rectangle) Inserting a rectangle:L (1) position the cursor at the point where you want the UPPER LEFT cornerJ of the inserted rectangle to be and hit GOLD ">" (insert rectangle)Overlaying a rectangle:AL (1) position the cursor at the point where you want the UPPER LEFT cornerL of the overlayed rectangle to be and hit GOLD ")" (overlay rectangle)NOTES:N (1) this function will NOT work if there are imbedded tabs in the lines of M text which will be affected - if there are tabs in the text, a message L will be printed out and the function requested will not be performed.L (2) both copy and extract save the text in the same buffer, so every timeJ a copy or extract is performed any previous rectangle stored in the2 save buffer (called "EXTRACT") is replaced.M (3) whenever an extract or copy of a rectangle is made, all of the lines eM in the rectangle are made the same length by padding any shorter PM lines with spaces so that all of the lines extracted or copied are theoM width of the rectangle. the reasoning behind this is so that an cM inserted rectangle is just that, a rectangle, not lines of differing eM lengths to mess up your table. tN (4) if you try to insert or overlay a rectangle that will go beyond the endN of the file, extra lines will be added to the end so that the rectangle will fit.M (5) if you wish, you may edit the rectangle stored in EXTRACT before usingcM it - just visit the buffer "EXTRACT" and perform the desired changes tM (do NOT perform any rectangular cut and paste functions) making sure fM that the text stays a rectangle (i.e. all lines the same length). .$!FILE (VMS utility to modify file attributes)$!:$! Heres FILE. It needs BASIC and MACRO to compile.K$! Sorry that I didn't include a help file. Guess I'm just too lazy.$!A$! You should be able to figure it out from the .CLD file.K$! Note that you can say FILE/DISPLAY=restore.com Filename, and thenG$! after you've munged a file to no avail, you can restore it by$! saying @restore.$!$! Happy bit twiddling.$!)$! Joe Meadows Jr. js@uw-june.arpa$!$say:=write sys$output$say "Creating fat_fch.def"$create fat_fch.def$deck1 ! FAT_FCH.DEF - include file for FILE.BAS! declare long constant &1 FAT$B_BKTSIZE =x'000000E'l, &1 FAT$B_RATTRIB =x'0000001'l, &1 FAT$B_RTYPE =x'0000000'l, &1 FAT$B_VFCSIZE =x'000000F'l, &1 FAT$C_DIRECT =x'0000003'l, &1 FAT$C_FIXED =x'0000001'l, &1 00IPHTHH+%O-%TADATADATA FAT$C_INDEXED =x'0000002'l, &1 FAT$C_LENGTH =x'0000020'l, &1 FAT$C_RELATIVE =x'0000001'l, &1 FAT$C_SEQUENTIAL=x'0000000'l, &1 FAT$C_STREAM =x'0000004'l, &1 FAT$C_STREAMCR =x'0000006'l, &1 FAT$C_STREAMLF =x'0000005'l, &1 FAT$C_UNDEFINED =x'0000000'l, &1 FAT$C_VARIABLE =x'0000002'l, &1 FAT$C_VFC =x'0000003'l, &1 FAT$K_LENGTH =x'0000020'l, &1 FAT$L_EFBLK =x'0000008'l, &1 FAT$L_HIBLK =x'0000004'l, &1 FAT$M_FORTRANCC =x'0000001'l, &1 FAT$M_IMPLIEDCC =x'0000002'l, &1 FAT$M_NOSPAN =x'0000008'l, &1 FAT$M_PRINTCC =x'0000004'l, &1 FAT$S_FATDEF =x'0000020'l, &1 FAT$S_FILEORG =x'0000004'l, &1 FAT$S_RTYPE =x'0000004'l, &1 FAT$V_FILEORG =x'0000004'l, &1 FAT$V_FORTRANCC =x'0000000'l, &1 FAT$V_IMPLIEDCC =x'0000001'l, &1 FAT$V_NOSPAN =x'0000003'l, &1 FAT$V_PRINTCC =x'0000002'l, &1 FAT$V_RTYPE =x'0000000'l, &1 FAT$W_DEFEXT =x'0000012'l, &1 FAT$W_EFBLKH =x'0000008'l, &1 FAT$W_EFBLKL =x'000000A'l, &1 FAT$W_FFBYTE =x'000000C'l, &1 FAT$W_GBC =x'0000014'l, &1 FAT$W_HIBLKH =x'0000004'l, &1 FAT$W_HIBLKL =x'0000006'l, &1 FAT$W_MAXREC =x'0000010'l, &1 FAT$W_RSIZE =x'0000002'l, &1 FAT$W_VERSIONS =x'000001E'l, &1 FCH$M_BADACL =x'0000800'l, &1 FCH$M_BADBLOCK =x'0004000'l, &1 FCH$M_CONTIG =x'0000080'l, &1 FCH$M_CONTIGB =x'0000020'l, &1 FCH$M_DIRECTORY =x'0002000'l, &1 FCH$M_ERASE =x'0020000'l, &1 FCH$M_LOCKED =x'0000040'l, &1 FCH$M_MARKDEL =x'0008000'l, &1 FCH$M_NOBACKUP =x'0000002'l, &1 FCH$M_NOCHARGE =x'0010000'l, &1 FCH$M_READCHECK =x'0000008'l, &1 FCH$M_SPOOL =x'0001000'l, &1 FCH$M_WRITCHECK =x'0000010'l, &1 FCH$M_WRITEBACK =x'0000004'l, &1 FCH$S_FCHDEF =x'0000004'l, &1 FCH$V_BADACL =x'000000B'l, &1 FCH$V_BADBLOCK =x'000000E'l, &1 FCH$V_CONTIG =x'0000007'l, &1 FCH$V_CONTIGB =x'0000005'l, &1 FCH$V_DIRECTORY =x'000000D'l, &1 FCH$V_ERASE =x'0000011'l, &1 FCH$V_LOCKED =x'0000006'l, &1 FCH$V_MARKDEL =x'000000F'l, &1 FCH$V_NOBACKUP =x'0000001'l, &1 FCH$V_NOCHARGE =x'0000010'l, &1 FCH$V_READCHECK =x'0000003'l, &1 FCH$V_SPOOL =x'000000C'l, &1 FCH$V_WRITCHECK =x'0000004'l, &, FCH$V_WRITEBACK =x'0000002'l$eod$say "Creating fat_fch.mar"$create fat_fch.mar$deck& .title modify file attributes' .library /sys$share:lib/$atrdef$fabdef$fatdef$fibdef$iodef$namdef$rmsdef6 .psect write_data pic,rd,wrt,noexe,noshrfab_blk: $fab*nam_blk: $nam ess=nam$c_maxrss,-( rss=nam$c_maxrss#atr_block: .word atr$s_uchar# .word atr$c_uchar;f1: .long 0 ;.address fch% .word atr$s_recattr% .word atr$c_recattr;f2: .long 0 ;.address fat .long 0$fib_block: .blkb fib$k_le00I IH H6%! !ngth$fib_desc: .long fib$k_length! .long fib_blockdev_desc: .blkl 1Kf3: .long 0 ;.address nam_blk+nam$t_dvi+1dev_chan: .blkw 1$es_name: .blkb nam$c_maxrss$rs_name: .blkb nam$c_maxrssfat: .blkb 32fch: .blkl 1iostatus: .quad4f_flg: .byte 0 ; fixup vectors flag filename = 4 filechar = 8, .psect code pic,rd,nowrt,exe,shr3 .entry get_file_char,^m jsb fixupsM movq @filename(ap),r6 ; move filename descriptor into r6,r78 movb r6,fab_blk+fab$b_fns ; file name size; movl r7,fab_blk+fab$l_fna ; file name address ; parse the filename $parse fab=fab_blk jsb error ; find the file $search fab=fab_blk jsb error( ; assign a channel to the device* movzbl nam_blk+nam$t_dvi,dev_desc $assign_s -! devnam=dev_desc,- chan=dev_chan jsb error0 ; store the file id in the FIB structure8 movc3 #6,nam_blk+nam$w_fid,fib_block+fib$w_fid $qiow_s - chan=dev_chan,-" func=#io$_access,- iosb=iostatus,- p1=fib_desc,- p5=#atr_block jsb error$ ; get the real return status movzwl iostatus,r0 jsb error, ; deassign the channel to the device $dassgn_s - chan=dev_chan jsb errorE ; send the file attributes/characteristics back to the caller% movc3 #36,fat,@filechar(ap) movl #1,r0 ret .entry set_file_char,0 jsb fixupsM movq @filename(ap),r6 ; move filename descriptor into r6,r78 movb r6,fab_blk+fab$b_fns ; file name size; movl r7,fab_blk+fab$l_fna ; file name address $parse fab=fab_blk jsb error $search fab=fab_blk jsb error5 movw nam_blk+nam$w_fid,fib_block+fib$w_fid9 movw nam_blk+nam$w_fid+2,fib_block+fib$w_fid+29 movw nam_blk+nam$w_fid+4,fib_block+fib$w_fid+4* movzbl nam_blk+nam$t_dvi,dev_desc $assign_s -! devnam=dev_desc,- chan=dev_chan jsb error% movc3 #36,@filechar(ap),fat $qiow_s - chan=dev_chan,-" func=#io$_modify,- iosb=iostatus,- p1=fib_desc,- p5=#atr_block jsb error movzwl iostatus,r0 jsb error $dassgn_s - chan=dev_chan jsb error movl #1,r0 reterror: blbc r0,10$ rsb 10$: retfixups:@ tstb f_flg ; have we already fixed these addresses?1 bneq 10$ ; yes, skip the following $fab_store - fab=fab_blk, - nam=nam_blk $nam_store - nam=nam_blk, - esa=es_name, - rsa=rs_name movab fch,f1 movab fat,f2& movab nam_blk+nam$t_dvi+1,f3A incb f_flg ; remember that we already did the fixups 10$: rsb .end$eod$say "Creating file.bas"$create file.bas$deck)10 ! FILE Version 1.0 June 1st, 1985; ! Written by Joe Meadows Jr., with thanks to the; ! Fred Hutchinson Cancer Research Center for kindly< ! allowing me to use their computing resources. !; ! If you have any questions, comments, ideas, or9 ! whatever, feel free to contact me via US Mail : ! Joe Meadows Jr.$ ! 4841 268th Ave. N.E.! ! Redm00IPHTHH+%O-%TADATADATAond Wa. 98052' ! or via phone : (206) 827-7296) map (fatfch) &) byte rtype, &) byte rattrib, &) word rsize, &) word hiblkh, &) word hiblkl, &) word efblkh, &) word efblkl, &) word ffbyte, &) byte bktsize, &) byte vfcsize, &) word maxrec, &) word defext, &) word gbc, &) byte fill(6), &) word notused, &) word versions, & long fch, external long function get_file_char, external long function set_file_char2 external long function cli$present(string); external long function cli$get_value(string,string)@ external long function lib$find_file(string,string,long)6 external long function lib$find_file_end(long)' external long function changeit+ external long function antichangeit %include "fat_fch.def" declare long context declare long retstat declare word organ declare byte display declare long efblk declare long hiblk/ display=(cli$present('DISPLAY') and 1%) goto 15 unless display1 if (cli$get_value('DISPLAY',OUT$) and 1%)/ then open out$ for output as file #18 else open "SYS$OUTPUT:" for output as file #1 end if nomargin #1!15 retstat=cli$present('P1')? call sys$exit(retstat by value) unless (retstat and 1%)- retstat=cli$get_value('P1',Filename$)= ! What? No file specified? CLD doesn't allow this....? call sys$exit(retstat by value) unless (retstat and 1%)> ! okay, we have our first file on the list, doin good.G ! there may be more.. Who cares, anyway, let's go find the meat goto 30-20 retstat=cli$get_value('P1',Filename$)' goto 90 unless (retstat and 1%)30 context=06 retstat=lib$find_file(filename$,real$,context), ! What? They specified a bogus file?? call sys$exit(retstat by value) unless (retstat and 1%): ! okay, at least one file exists, let's keep going goto 50640 retstat=lib$find_file(filename$,real$,context)' goto 20 unless (retstat and 1%),50 retstat = get_file_char(real$,rtype)A call lib$signal(retstat by value) unless (retstat and 1%)' goto 60 unless (display and 1%)& print #1, "$ FILE ";real$;" -"( organ = (rtype and x'00f0'w)/16% rtype=rtype and x'0f'b print #1, " /TYPE="; select rtype case fat$c_undefined' print #1, "UNDEFINEd -" case fat$c_fixed# print #1, "FIXED -" case fat$c_variable& print #1, "VARIABLE -" case fat$c_vfc! print #1, "VFC -" case fat$c_stream$ print #1, "STREAM -" case fat$c_streamlf& print #1, "LFSTREAM -" case fat$c_streamcr& print #1, "CRSTREAM -" end select( print #1, " /ORGANIZATION="; select organ case fat$c_sequential( print #1, "SEQUENTIAL -" case fat$c_relative& print #1, "RELATIVE -" case fat$c_indexed% print #1, "INDEXED -" case fat$c_direct$ print #1, "DIRECT -" end select A$=" /ATTRIBUTES=("7 A$=A$+"no" unless (rattrib and fat$m_fortrancc) A$=A$+"fortrancc,"7 A$=A$+"no" unless (rattrib and fat$m_impliedcc) A$=A$+"impliedcc,"5 A$00&I IH H6%! !=A$+"no" unless (rattrib and fat$m_printcc) A$=A$+"printcc,"0 A$=A$+"no" if (rattrib and fat$m_nospan) A$=A$+"span) -" print #1, a$8 print #1, " /RECORD_SIZE=";num1$(rsize);" -"% hiblk = hiblkl+hiblkh*x'100'wD print #1, " /HIGHEST_ALLOCATED_BLOCK=";num1$(hiblk);" -"% efblk = efblkl+efblkh*x'100'w> print #1, " /END_OF_FILE_BLOCK=";num1$(efblk);" -"= print #1, " /FIRST_FREE_BYTE=";num1$(ffbyte);" -": print #1, " /BUCKET_SIZE=";num1$(bktsize);" -"7 print #1, " /VFC_SIZE=";num1$(vfcsize);" -"A print #1, " /MAXIMUM_RECORD_SIZE=";num1$(maxrec);" -"E print #1, " /DEFAULT_EXTEND_QUANTITY=";num1$(defext);" -"> print #1, " /GLOBAL_BUFFER_COUNT=";num1$(gbc);" -"8 print #1, " /VERSIONS=";num1$(versions);" -"# A$=" /CHARACTERISTICS=(". a$=a$+"no" if (fch and fch$m_nobackup) a$=a$+"backup,"3 a$=a$+"no" unless (fch and fch$m_writeback) a$=a$+"write_back,"3 a$=a$+"no" unless (fch and fch$m_readcheck) a$=a$+"read_verify,"3 a$=a$+"no" unless (fch and fch$m_writcheck) a$=a$+"write_verify,"1 a$=a$+"no" unless (fch and fch$m_contigb)$ a$=a$+"best_try_contiguous,"0 a$=a$+"no" unless (fch and fch$m_locked) a$=a$+"locked,"0 a$=a$+"no" unless (fch and fch$m_contig) a$=a$+"contiguous,"0 a$=a$+"no" unless (fch and fch$m_badacl) a$=a$+"acl_corrupt,"/ a$=a$+"no" unless (fch and fch$m_spool) a$=a$+"spool,"3 a$=a$+"no" unless (fch and fch$m_directory) a$=a$+"directory,"2 a$=a$+"no" unless (fch and fch$m_badblock) a$=a$+"file_corrupt,"1 a$=a$+"no" unless (fch and fch$m_markdel)" a$=a$+"marked_for_delete,". a$=a$+"no" if (fch and fch$m_nocharge) a$=a$+"charge,"/ a$=a$+"no" unless (fch and fch$m_erase) a$=a$+"erase_on_delete)" print #1, a$60 ! parse the /TYPE' if (cli$present('TYPE') and 1%)- then call cli$get_value('TYPE',a$)J rtype=fat$c_undefined if (a$=left$("undefined",len(a$)))F rtype=fat$c_fixed if (a$=left$("fixed",len(a$)))I rtype=fat$c_variable if (a$=left$("variable",len(a$)))D rtype=fat$c_vfc if (a$=left$("vfc",len(a$)))G rtype=fat$c_stream if (a$=left$("stream",len(a$)))I rtype=fat$c_streamlf if (a$=left$("lfstream",len(a$)))I rtype=fat$c_streamcr if (a$=left$("crstream",len(a$))) end if! ! parse the /organization/ if (cli$present('ORGANIZATION') and 1%)5 then call cli$get_value('ORGANIZATION',a$)G organ=fat$c_direct if (a$=left$("direct",len(a$)))H organ=fat$c_indexed if (a$=left$("indexed",len(a$)))I organ=fat$c_relative if (a$=left$("relative",len(a$)))tK organ=fat$c_sequential if (a$=left$("sequential",len(a$)))  end if rtype=rtype or organ*16% ! parse the /attributes  A$="ATTRIBUTES." retstat=rattribiM retstat=changeit(retstat,cli$present(A$+"FORTRANCC"),fat$m_fortrancc)eM retstat=changeit(retstat,cli$present(A$+"IMPLIEDCC"),fat$m_impliedcc)!I retstat=changeit(retstat,cli$present(A$+"PRINTCC"),fat$m_printcc) I retstat=antichangeit(retstat,cli$present(A$+"SPAN"),fat$m_nospan)gF! retstat=changeit(retstat,cli$present(A$+"SPAN"),fat$m_nospan)$ rattrib=(retstat and x'ff'b) ! parse the /record_size. if (cli$present('RECORD_SIZE') and 1%)4 then call cli$get_value('RECORD_SIZE',a$) rsize=val(a$)0 end if, ! parse the /highest_allocated_block: if (cli$present('HIGHEST_ALLOCATED_BLOCK') and 1%)@ then call cli$get_value('HIGHEST_ALLO00.IPHTHH+%O-%TADATADATACATED_BLOCK',a$) hiblk = val(a$) - hiblkl = (hiblk and x'ffff'w) & hiblkh = hiblk/x'100'w end if& ! parse the /end_of_file_block4 if (cli$present('END_OF_FILE_BLOCK') and 1%): then call cli$get_value('END_OF_FILE_BLOCK',a$) efblk = val(a$)0- efblkl = (efblk and x'ffff'w)0& efblkh = efblk/x'100'w end if$ ! parse the /first_free_byte2 if (cli$present('FIRST_FREE_BYTE') and 1%)8 then call cli$get_value('FIRST_FREE_BYTE',a$) ffbyte = val(a$) end if ! parse the /bucket_size. if (cli$present('BUCKET_SIZE') and 1%)4 then call cli$get_value('BUCKET_SIZE',a$)! bktsize = val(a$) end if ! parse the /vfc_size + if (cli$present('VFC_SIZE') and 1%)01 then call cli$get_value('VFC_SIZE',a$)4! vfcsize = val(a$)P end if( ! parse the /maximum_record_size6 if (cli$present('MAXIMUM_RECORD_SIZE') and 1%)< then call cli$get_value('MAXIMUM_RECORD_SIZE',a$) maxrec = val(a$) end if, ! parse the /default_extend_quantity: if (cli$present('DEFAULT_EXTEND_QUANTITY') and 1%)@ then call cli$get_value('DEFAULT_EXTEND_QUANTITY',a$) defext = val(a$) end if( ! parse the /global_buffer_count6 if (cli$present('GLOBAL_BUFFER_COUNT') and 1%)< then call cli$get_value('GLOBAL_BUFFER_COUNT',a$) gbc = val(a$)  end if ! parse the /versions + if (cli$present('VERSIONS') and 1%)01 then call cli$get_value('VERSIONS',a$)0" versions = val(a$) end if$ ! parse the /characteristics A$="CHARACTERISTICS." E fch=antichangeit(fch,cli$present(A$+"BACKUP"),fch$m_nobackup)GF fch=changeit(fch,cli$present(A$+"WRITE_BACK"),fch$m_writeback)G fch=changeit(fch,cli$present(A$+"READ_VERIFY"),fch$m_readcheck)CH fch=changeit(fch,cli$present(A$+"WRITE_VERIFY"),fch$m_writcheck)? fch=changeit(fch,cli$present(A$+"LOCKED"),fch$m_locked) C fch=changeit(fch,cli$present(A$+"CONTIGUOUS"),fch$m_contig)$M fch=changeit(fch,cli$present(A$+"BEST_TRY_CONTIGUOUS"),fch$m_contigb) D fch=changeit(fch,cli$present(A$+"ACL_CORRUPT"),fch$m_badacl)= fch=changeit(fch,cli$present(A$+"SPOOL"),fch$m_spool)TE fch=changeit(fch,cli$present(A$+"DIRECTORY"),fch$m_directory) G fch=changeit(fch,cli$present(A$+"FILE_CORRUPT"),fch$m_badblock) K fch=changeit(fch,cli$present(A$+"MARKED_FOR_DELETE"),fch$m_markdel)7G fch=changeit(fch,cli$present(A$+"ERASE_ON_DELETE"),fch$m_erase) E fch=antichangeit(fch,cli$present(A$+"CHARGE"),fch$m_nocharge) , retstat = set_file_char(real$,rtype) goto 40 90 end F100 function long changeit(long what, long condition, long thebit)+ external long constant cli$_negatedR+ external long constant cli$_present_ select condition case cli$_negated ( what=what and not thebit case cli$_present # what=what or thebitx end select changeit=whatr functionendaJ200 function long antichangeit(long what, long condition, long thebit)+ external long constant cli$_negated+ external long constant cli$_present  select condition case cli$_present_( what=what and not thebit case cli$_negated # what=what or thebit_ end select antichangeit=what  functionend$eod$say "Creating file.cld"$create file.cld$deck P!*************************************FILE**************************************define type RECORD_TYPE  keyword FIXED keyword VARIABLE keyword VFC keyword UNDEFINED keyword STREAM$ 006Iforth.doc2C-FORTH: a portable, C-coded figFORTH interpreter.-Written by Allan Pratt; completed April 1985.HThis is a FORTH interpreter written entirely in portable C and FORTH. ItIrequires nothing more than a decent C compiler to use. It is not exactly6fast or efficient, but it is a true FORTH interpreter.The features include:EBootstrapping threaded definitions from a near-FORTH dictionary file.Block file I/O.&Execution tracing and single-stepping.:Breakpoint detection, dumping the stack at the breakpoint.:Saving and00>IPHTHH+%O-%TADATADATA automatic restoration of the FORTH environment.MAbility to convert the block file to a line-editor-compatible file, and back.9Included with the interpreter is a block file containing:An UNTHREAD utility.7A screen editor with key-binding and cursor-addressing.BRINGING UP THE INTERPRETER:BTHIS FORTH MODEL REQUIRES "int"s TO BE TWICE THE SIZE OF "short"s,Gand "short"s to be 16 bits. I realize this is a barrier to portability,Ibut you can change occurrances of "int" to "long" and "short" to "int" if%"long"s are twice the size of "int"s.JNote also that model sizes greater than 32K (with 16-bit cells) are likelyEto fail because of the sign bit. This has not been adequately tested.OThe first four sections of the file "common.h" contain implementation-dependentLconstants. These are TRACE, BREAKPOINT, several default file names, INITMEM,MMAXMEM, and NSCR. As distributed, the FORTH system will work on most systems,Mbut especially virtual-memory systems. If you do not have virtual memory, you<will want to change MAXMEM -- see common.h for instructions.EOnce you've configured common.h to your taste, compile the files with touch lex.yy.c make allINote that lex.yy.c is lex output from forth.lex, slightly modified (usingHsed). lex.yy.c is included in the distribution because not everybody hasMlex and sed. You touch lex.yy.c before make-ing so make doesn't try to remakeit.EThis make will create several files. Notable among them are "nf", theIbootstrapper, "forth.core", the core-image output of nf, and "forth", theNinterpreter itself. Finally, there are two utility filters, b2l and l2b. TheseIconvert files from block format to line format and back (b2l --> block toJline). A line-format file is one suitable for editing with vi or emacs: itKconsists of a header line for each screen, followed by 16 newline-separatedMlines of text for that screen, followed by the next screen. THERE MUST ALWAYSNBE SIXTEEN LINES BETWEEN HEADERS in the line file, or l2b won't work properly.OYou must use l2b to create the block file "forth.block" from "forth.line". Use: l2b < forth.line > forth.blockIto do this. If you don't have I/O redirection, I'm afraid you'll have toFpatch these programs (and lex.yy.c and nf.c, for that matter) to take arguments or use default files.ONote that "forth.block" is the default block file used by FORTH. You can changeKthis default in "common.h", and you can change it on the FORTH command linewith -f.;Now that you have the interpreter ("forth"), the block fileC("forth.block"), and the core file ("forth.core"), you are ready to:roll. Invoke FORTH with the following line to the C-shell:. stty -echo cbreak ; forth ; stty echo -cbreakSome notes while running FORTH:LThe backspace character is ^H, no matter what your terminal is set for. WhenLyou backspace, ASCII 8 gets sent to the screen, so the cursor should back upKbut not erase the letter you're backing up over. There is no kill characterNto wipe out an entire line. If you backspace beyond the beginning of the line,you will get a beep.;Don't use tabs; FORTH doesn't recognize them as whitespace.KEverything in the FORTH world is upper-case. Use caps-lock if you have one.-The VLIST command lists the FORTH vocabulary.GSome commands, like LIST and VLIST, use the FORTH word ?TERMINAL to seeGif the user wants to quit. Use your interrupt character (usually ^C) toFstop these commands. If you hit ^C twice before ?TERMINAL is checked,Jthen you'll get an ABORT back to the FORTH top level. If the FORTH programGis waiting for keyboard input, you'll have to hit ^C twice and then hitKa normal key to see this effect. Your Quit character (often ^\) still worksto get you back to your shell.EWhen you start FORTH up, it will tell you the number of blocks in theIblock file (either the default or the one you specified with -f). You canKsee a block with the LIST command: "3 LIST" will list block number 3. BlockHzero is special: because of a bu00FI(because it starts on block 1), and the editor with "10 LOAD".GXFORTH uses "setbuf(stdout,0)" in "forth.c" to force standard output toFbe unbuffered. If this call doesn't work for you, just remove it, andBstandard output will be line buffered. If that is the case, changeGEXPECT (in "forth.dict"): replace the EMIT call with DROP. Then you canLcall forth directly, without the stty stuff. You use your own erase and kill&characters, but the editor won't work.SAVING THE FORTH ENVIRONMENT:HWhen you have been working in FORTH for a while, you will have developedFwords which you'd like to save, without having to reload them from theJblock file all the time. The word SAVE will save the current core image onHa file, normally "forth.newcore", and exit. The -s flag changes the save file name.MWhen you start FORTH, the core file (either "forth.core" or the one specifiedJwith -c) is checked to see if it is a saved image or a bootstrapped image.GIf it's a saved image, execution begins from the spot it left off from.AIf it's bootstrapped (fresh out of nf), execution begins at COLD. SUMMARY OF COMMAND-LINE OPTIONS:2-t[n] trace; n is a digit from 0 to 9, default 0.G Each time through the inner interpreter, a line will be printed?out showing the current stack pointer, the top n stack elementsG(topmost at the left), the current interpretive pointer (ip), an indentGto reflect the current nesting depth (actually the return-stack depth),Fand the name of the word about to be executed. N is the "trace depth";see DOTRACE below.2-d[n] debug; n is a digit from 0 to 9, default 0.B Like -t, -d prints out the trace line each time through the innerJinterpreter. Unlike -t, it will then wait for input from the terminal. IfGyou hit newline (Return, CR, etc.) it will proceed. If you type any keyLfollowed by newline, it will dump the current memory image to the dump file,(usually "forth.dump", and then continue.-n no setbuf.B If -n is present, the setbuf(stdout,NULL) call which makes stdoutKunbuffered instead of line-buffered will not be executed. This is useful ifHyou intend to do debugging with -t, -d, or the TRON command (see below).-p xxxx breakPoint.B Breakpoints are enabled, and one is set at address xxxx (in hex).JEach time through the inner interpreter, the ip address is checked againstKthis breakpoint address. If they match, "Breakpoint" is printed, along withHthe current stack pointer and the entire contents of the stack, with thetopmost element at the left."-c corename set the core file nameE The memory image will be read from this file instead of the default,which is usually "forth.core".$-b blockname set the block file nameD This file will be used as the block file for disk reads and writes,Binstead of the default block file, which is usually "forth.block".'-s savename set the core-save file nameF This file will be created or overwritten upon execution of the (SAVE)Nprimitive (which is called by the SAVE command). It will contain a core imageN(just like forth.core or the -c name) which reflects the current status at theKtime of the save. If this file is used as input (renamed to "forth.core" orIused in -c later), the FORTH system will restart right where it left off.*Note that -c and -s MAY use the same name.)DEPARTURES FROM THE figFORTH-79 STANDARD:(---------- ---- --- -------- -- --------JThere are two features of the FORTH-79 standard which are unimplemented inLthis system: the construct and VOCABULARIES. Both of theseHare unimplemented simply because I couldn't understand the documentationNsufficiently to implement them. In any case, they do not affect the operationMof FORTH, except inasmuch as the dictionary is simply a flat stack structure,0and defining-words using D00NIPHTHH+%O-%TADATADATAOES simply don't work.)EXTENSIONS FROM THE figFORTH-79 STANDARD:(---------- ---- --- -------- -- --------KI grew a FORTH implementation from the Z80 figFORTH standard, and found theLfollowing extensions to be vital to my sanity as a programmer and developer.CCASE c1 OF action1 ENDOF c2 OF action2 ENDOF default-action ENDCASELThis construct comes from Doctor Dobb's Journal, Number 59, September, 1984,in an article by Ray Duncan. HI used to find that nesting IFs to emulate a CASE structure was the mostIdifficult part of programming in FORTH, but now I don't have to mess with it any more. \ (backslash)HThis word begins a comment which extends to the end of the current line.IThis is only meaningful while loading, and causes an error if you are notNloading. It amounts to an open-paren where the end of the line is the closingJparen. This, too, comes from Dr. Dobb's Journal, Number 59, in a differentarticle, by Henry Laxen.TRON, TROFF, DOTRACENThese provide tracing facilities for C-FORTH. TRON takes one parameter, whichHis the number of stack elements to show. TROFF disables tracing. DOTRACEOtraces once, using the most recent depth value (from TRON or -tn on the commandHline). TRON will have no effect (but will still consume its argument) ifKthe FORTH system was compiled without the TRACE flag set. DOTRACE, however,(will still trace one line as advertised.REFORTHEThis word is useful when loading screens, to get the user's input. ItEreads one line from the terminal (with QUERY) and interprets it (withGINTERPRET), then returns to the caller. This is used in the editor (seeIbelow) to read in the user's terminal type. This is yet another construct;from Ray Duncan's article in Dr. Dobb's Journal, Number 59.ALIAS usage: ALIAS NEW OLDEThis word is used to change the meaning of an existing word, after itFhas been used in defining other words. Say you want to change EMIT soGit forces a CR when the current column (user var OUT) equals the numberEof characters per line (constant C/L). The current definition of EMITis:: EMIT (EMIT) 1 OUT !+;1You could define a new word, NEWEMIT, as follows: : NEWEMIT OUT @ C/L = IF CR THEN (EMIT) 1 OUT +!;Jand use ALIAS NEWEMIT EMIT to make all previous references to EMIT executeLNEWEMIT instead. This is accomplished by making the definition of EMIT read:: EMIT NEWEMIT;>(Note that my CR sets OUT to zero, so this really would work.)"NOTES ON THE BOOTSTRAP DICTIONARY:!----- -- --- --------- ----------KThe contents of forth.dict describe the initial FORTH dictionary. There areHseveral types of things in this file; they will be described by example.PRIM (EMIT) 12 (primitive)KThis declares a primitive called "(EMIT)", with an execute-code of 12. ThisEexecute-code is an index into the great switch statement in the innerKinterpreter, next(). In a real FORTH system, this would be an address where1the actual code for the (EMIT) primitive resided.-To add primitives, you must do the following:A1. Add the primitive to forth.dict, using an unused execute-code.H2. Come up with a name for that primitive which is a legal C identifier.J Convention for parenthesis, like (EMIT), is PEMIT. For brackets, BEMIT.= For slash (like "C/L") is CSLL, where SL stands for slash.G3. Add the C identifier name to "forth.h", with the execute-code as its value, like this: #define PEMIT 12C4. In "prims.c", add the code for the primitive, as a function with< the same name as the #define above, except in lower case: pemit() { putchar(pop()); }G5. In "forth.c", tack another case onto the switch statement in next(): case PEMIT: pemit(); break;J6. Recompile (preferably with make). You will need to recompile everythingE but nf (which uses nf.c, lex.yy.c, and common.h, none of which youK changed). That is, you need to regenerate "forth" from forth.c, prims.c,I forth.h, and prims.h, and "forth.core" by thr00VI" where function is the name@ of the command you want bound to a key, and means press return/newline.m< 2. The computer will print "KEY: " at which time you should; strike the key you want to have that function bound to.uA If you want something bound to ESC plus something, just pressn@ escape followed by the key, exactly as you intend to use the key in practice.DTo see the binding for one key, use the command DESCRIBE-KEY. Again,Eyou will be asked for the key you want described. Strike the key justm4as you normally do, with ESC before it if necessary.@The initial bindings are on screens 27 and 28 of the block file.HThe editor is always in replace mode. That is, when you strike a key, itMoverwrites whatever was under the cursor. There is no insert mode; I haven'ttgotten around to that.HAs you go around changing things, you are only changing the image of theHscreen which FORTH keeps in memory; you are not changing the block file.FYou can mark the current screen for updating to the blockfile with ^U.FThis only marks the screen; it won't be written to the blockfile untilFthe space is needed again, or you explicitly FLUSH the memory buffers.IUse ESC-F (press escape, then press capital F) to mark the current screenwIfor updating, and then FLUSH all marked screens (including this one, now)hBto the block file. Once you've done that, the change is permanent.IIf you really mean to make a given change to a screen, mark it as updatediJ(^U) right away. Countless hours have been wasted changing screens withoutKmarking them for writing, and then having that memory reused -- the changeso are lost.aGYou can leave the editor with ESC-Q (for Quit). Be sure to do an ESC-FGbefore you do, if you want to save what you have. You can never be sure Dif your changes will get written out if you don't. (Yes, I know thisis an oversimplification.)"You can leave FORTH by typing BYE.XFINAL NOTES FROM THE AUTHOR:n----- ----- ---- --- ------uLXFORTH runs slowly. If anybody can make this turkey fly (without, of course,Hrewriting it in assembly language), more power to you. It was done as aFJunior project at Indiana Un00nIuITHH+%O-%TADATADATAiversity, but in fact I learned more aboutFproject management and programmer/systems staff interaction than I didFabout implementing FORTH (which I had done previously in 8080 assemblyLcode). In that sense it was profitable, and, since it works, I see no reasonDnot to distribute it to the network. If you have comments of praise,AI can be reached through the summer of 1985 at the address below;9Aafter that, I MAY be at iuvax!apratt. Comments of another naturedGare not enthusiastically solicited, and I do NOT expect to upgrade thistIimplementation AT ALL, EVER. Sorry, but there will be no "Version 2" for Cthis baby. If I have left crucial points out of this documentation,nBand my (hopefully-well-commented) code doesn't provide the answer,BI will reply and possibly improve this documentation. But for themost part, you're on your own.CAs a parting shot, the inner interpreter's "switch" statement could @be replaced by an array of functions, using the variable p as anGindex. I was not that ambitious, and I don't know if it would be faster,4than the table-lookup which my C compiler generates. -- Allan PrattA APRATT.PA@XEROX.ARPAm1QUICK SUMMARY OF FILES (THERE IS A MESS OF THEM!)n,Makefile supposed to bring them all togetherGb2l.c and b2l filter to convert block-files into line-files for editingREl2b.c and l2b filter to convert line-files into block-files for FORTHeHcommon.h This is a header file with configuration and common information, used by all C source files except lex.yy.cEforth.h Header file with primitive numbers in it, among other thingsaGforth.c source code for the guts/support functions for the interpreteri:prims.h Header file with macro definitions for primitives:prims.c source code for primitives too complex for macros8 The above four files, plus common.h, contribute to the executable "forth"Bnf.c source for the bootstrapper, which interprets the dictionary1 and generates an initial memory image for FORTHs5forth.lex lex input for lexical analyzer used by nf.co1forth.lex.h header file used by lex.yy.c and nf.c4lex.yy.c lex output, modified (look at the Makefile)8 The above four files, plus common.h, contribute to the$ executable "nf", the preprocessor.Bforth.block This is the (default) block-file used by FORTH for its editing- and load-screensn?forth.line This file usually resembles forth.block, but is in a8 format suitable for editing with emacs or vi: a header4 line, followed by sixteen lines of trailing-blank-5 truncated, newline-terminated text for each screen.: If one of forth.line and forth.block is out of date with8 respect to the other, you can bring it back up to date with b2l or l2b, above.lBforth.dict This is a human-readable, pseudo-FORTH dictionary which: nf uses to generate the initial environment. It contains; forward references and no higher structures like DO..LOOPeCforth.core This is one output of nf: it contains the core image for? the FORTH environment, as dictated by common.h and forth.dictiLforth.newcore This is the file for holding core images saved with the (SAVE)= primitive. If FORTH is started with "-c forth.newcore", them- image is restarted right where it left off.tDforth.map This is another output of nf: it contains a human-readable< dump of the forth environment which nf generated. This can= be compared with the post-mortem dump which FORTH generatesa! in forth.dump in certain cases.e//go.sysin dd *.JFrom: HENRY::IN%"cic%CSNET-SH.ARPA%relay.cs.net@rca.com" 29-AUG-1986 19:08,To: EVERHART%ARISIA%rca.com@CSNET-RELAY.ARPA7Subj: cforth/Part2 FORTH INTERPRETER IN C (Part 2 of 3)!Date: Tue, 30 Apr 85 15:19:04 est7From: mit-eddie!ihnp4!purdue!iuvax!apratt (Allan Pratt)-Subject: FORTH INTERPRETER IN C (Part 2 of 3)+: Run this shell script with "sh" not "csh"PATH=:/bin:/usr/bin:/usr/ucb export PATHecho 'x - Makefile'*sed 's/^X//' <<'//go.sysin dd *' >Makefiletest: forth.core forth00vI lex.tmp mv -f lex.tmp lex.yy.cforth.core: nf forth.dict nf < forth.dictM# l2b: convert a line file to a block file. Usage: l2b < linefile > blockfile l2b: l2b.c cc -o l2b l2b.cM# b2l: convert a block file to a line file. Usage: b2l < blockfile > linefile b2l: b2l.c cc -o b2l b2l.cJ# forth.line and forth.block are not included here, because you can't tellH# which one is more recent. To make one from the other, use b2l and l2b.//go.sysin dd *echo 'x - b2l.c''sed 's/^X//' <<'//go.sysin dd *' >b2l.c,X/* usage: block2line < blockfile > linefileH * takes a block file from stdin and makes a cr-delimited file to stdout3 * with 64 characters per line, 16 lines per screen */#include main(){ int i, j, screen;" char buf[64]; /* max line size */ while(1) {@ printf("------------------ SCREEN %d ------------------\n", screen++); for (i=0; i<16; i++) {5 if (fread(buf,sizeof(char),64,stdin) < 64) exit(0); j = 63;& while (buf[j] == ' ' && j >= 0) j--;2 if (j >= 0) fwrite(buf,sizeof(char),j+1,stdout); putchar('\n'); } }}//go.sysin dd *echo 'x - common.h'*sed 's/^X//' <<'//go.sysin dd *' >common.hX/*M * This is common.h -- the defines which are common to both nf.c and forth.c.G * These include the name of the SAVEFILE (the file which nf.c creates,G * and the default image which f.c loads), and all those boundaries for- * memory areas, like UP, USER_DEFAULTS, etc. */X/*O * NOTE THAT THIS FORTH IMPLENTATION REQUIRES int TO BE TWICE THE SIZE OF short */#define TRUE 1#define FALSE 0X/*L TWEAKING: define TRACE to allow tracing, BREAKPOINT to allow breakpoints.F Each of these takes up time in the inner interpreter, so if you areJ not debugging, take them out. Without TRACE, the DOTRACE primitive will: still work, but the TRON primitive will have no effect.*/ #define TRACE#define BREAKPOINTX/* external files */K#define COREFILE "forth.core" /* used for input to f.c, output from nf.c */:#define DICTFILE "forth.dict" /* used for input to nf.c */@#define MAPFILE "forth.map" /* used for dump-output from nf.c */A#define DUMPFILE "forth.dump" /* used for dump-output from f.c */8#define BLOCKFILE "forth.block" /* used for block i/o */?#define SAVEFILE "forth.newcore" /* used by (SAVE) primitive */"X/* MEMORY ALLOCATION CONSTANTS */MX/* Set INITMEM to the size of the largest FORTH model you want nf to create.M This can be just barely enough (within GULPFRQ words) to hold the initial N FORTH image, or it can be the maximum size you will ever want. Somewhere inK between is best, so you don't fragment memory with realloc() calls right away. */E#define INITMEM (13*1024) /* 13K holds the distribution forth.dict */ NX/* set MAXMEM to the MOST MEMORY YOU EVER WANT ALLOCATED TO FORTH. FORTH willL never allocate more than MAXMEM*sizeof(short) for the FORTH memory image.I Note that other functions, like open, read, and write, allocate memoryG transparent to the forth system. MAXMEM will not affect these. Also,I note that realloc is used to grow the FORTH image, and LARGE CHUNKS ofL fragmented memory can result. If you want to keep a tight rein on things,L set MAXMEM to the same number as INITMEM, and the FORTH memory image willI be fixed at that many SHORTs, with no later allocations, and therefore no fragmenting.A A value of 0 for MAXMEM means "allocate as much as you want" -- L useful on virtual-memory machines. Also note that each malloc and r00~IuITHH+%O-%TADATADATAeallocJ is checked for success (of course), so MAXMEM is truly a maximal limit.A NOTE THAT MODELS OF GREATER THAN 32K MAY CRASH BECAUSE OF SIGNED/ VALUES. THIS HAS NOT BEEN ADEQUATELY TESTED.*/#define MAXMEM 0OX/* set NSCR to the number of disk blocks from you want to keep in FORTH memoryJ at any time. If your disks are fast enough, you might want a low numberH like 3. If you have lots of memory, you might want something like 10.2 In any case, this number MUST BE AT LEAST 2. */'#define NSCR 5 /* MUST BE AT LEAST 2 *//X/* end of implementation-dependent DEFINEs. */2X/* define bits for the first byte of each word *//#define MSB 0x80 /* says this is first byte */9#define IMMEDIATE 0x40 /* Says this word is immediate */8#define SMUDGE 0x20 /* on = you can't find this word */5#define MAXWIDTH 0x20 /* Maximum length of a word */+#define KBBUFF 1024 /* one disk-quantum */5#define US 32 /* words needed for user variables */#define CO (KBBUFF+4)2 /* size of a disk buffer w/4 words overhead */A#define NBUF NSCR /* number of disk buffers, at 1 to a screen */MX/* Memory Management boundaries -- each name refers to the FIRST location ofK the indicated field Some fields are nested, and I have tried to show the$ nesting nature in the defines. */9#define ORIGIN 0 /* the Origin of this system is zero */2#define ORIG ORIGIN /* another word for ORIGIN */G#define SCRATCHSIZE 16 /* From ORIGIN to ORIGIN+SCRATCHSIZE is scratch1 space which is saved across saves: see the( definition of this space below */3#define USER_DEFAULTS (ORIGIN+SCRATCHSIZE) /* 16 */2 /* start of user variable initial-values space& -- it's DEFS-SIZE bytes long */:#define DEFS_SIZE 8 /* words in the USER DEFAULTS area */H#define UP (USER_DEFAULTS+DEFS_SIZE) /* User var space, US bytes long */B#define TIB_START (UP+US) /* Terminal input buffer, same size as a/ disk buffer (KBBUFF words), starts after user variables */$#define TIB_END (TIB_START + KBBUFF)9#define CS_SIZE 128 /* words in the Computation Stack */4#define RS_SIZE 256 /* words in the Return Stack */K#define INITS0 (TIB_START+KBBUFF+CS_SIZE) /* c. stack grows down CSS words, bangs into end of TIB */K#define INITR0 (INITS0+RS_SIZE) /* Return stack grows down RSS words, bangs into INITS0. */=#define BUF1 INITR0 /* buffers start right after r. stack */M#define DPBASE (BUF1+(NBUF*CO)) /* Dictionary starts just past last buffer */X/* low-core definitions */9#define LIMIT 0 /* mem[LIMIT] tells the size of core */:#define COLDIP 1 /* mem[COLDIP] holds the CFA of ABORT */; /* you can set ip=mem[COLDIP] and call next() to start */NX/* these locations define the warm-start machine state: if you save the FORTHL memory image, then restart it, execution will start up with these values.M This save/restore system is not implemented, so leave mem[SAVEDIP] = 0. */:#define SAVEDIP 2 /* mem[SAVEDIP] = 0 for newly-generated/ systems, or the IP for a saved system */3#define SAVEDSP 3 /* restored when SAVEDIP != 0 */#define SAVEDRP 4 /* ditto */5#define ABORTIP 5 /* need this to recover from ^C *///go.sysin dd *echo 'x - forth.c')sed 's/^X//' <<'//go.sysin dd *' >forth.cX/* * forth.c * " * Portable FORTH interpreter in C *9 * Author: Allan Pratt, Indiana University (iuvax!apratt) * Spring, 1984M * References: 8080 and 6502 fig-FORTH source listings (not the greatest refs * in the world...) *I * This program is intended to be compact, portable, and pretty complete.J * It is also intended to be in the public domain, and distribution should& * include this notice to that effect. *E * This file contains the support code for all interpreter functions.E * the file prims.c contains code for the C-coded primitives, and the2 * file forth.h connects the two with definitions. *G * The program nf.c generates a new forth.core file from the dictionaryC * forth.dict, using00I#include *#include /* only for isxdigit */#include "common.h"#include "forth.h"1#include "prims.h" /* macro-defined primitives */3X/* declare globals which are defined in forth.h */unsigned short csp, rsp, ip, w; short *mem;Jint trace, tracedepth, debug, breakenable, breakpoint, qtermflag, forceip; int nobuf;XFILE *blockfile;long bfilesize;8char *bfilename; /* block file name (change with -f ) */8char *cfilename; /* core file name (change with -l ) */8char *sfilename; /* save file name (change with -s ) */X/*A ----------------------------------------------------/ SYSTEM FUNCTIONSA ----------------------------------------------------*/:errexit(s,p1,p2) /* An error occurred -- clean up (?) and exit. */{ printf(s,p1,p2);7 printf("ABORT FORTH!\nDumping to %s... ",DUMPFILE); fflush(stdout); memdump(); puts("done."); exit(1);}2Callot (n) /* allot n words in the dictionary */short n;{ unsigned newsize;! mem[DP] += n; /* move DP */: if (mem[DP] + GULPFRQ > mem[LIMIT]) { /* need space */ newsize = mem[DP] + GULPSIZE; if (newsize > MAXMEM && MAXMEM)= errexit("ATTEMPT TO GROW PAST MAXMEM (%d) WORDS\n",MAXMEM);; mem = (short *)realloc((char *)mem, newsize*sizeof(*mem)); if (mem == NULL) errexit("REALLOC FAILED\n"); mem[LIMIT] = newsize; }}&push(v) /* push value v to cstack */short v;{ if (csp <= TIB_END)' errexit("PUSH TO FULL CALC. STACK\n"); mem[--csp] = v;}9short pop() /* pop a value from comp. stack, and return) it as the value of the function */{ if (csp >= INITS0) { puts("Empty Stack!"); return 0; } return (mem[csp++]);}rpush(v)short v;{ if (rsp <= INITS0)& errexit("PUSH TO FULL RETURN STACK"); mem[--rsp] = v;} short rpop(){ if (rsp >= INITR0)) errexit("POP FROM EMPTY RETURN STACK!"); return (mem[rsp++]);}2pkey() /* (KEY) -- wait for a key & return it */{ int c;C if ((c = getchar()) == EOF) errexit("END-OF-FILE ENCOUNTERED"); return(c);}pqterm() /* (?TERMINAL): ) return true if BREAK has been hit */{ if (qtermflag) { push(TRUE);6 qtermflag = FALSE; /* this influences ^C handling */ } else push(FALSE);}.pemit() /* (EMIT): c -- emit a character */{5 putchar(pop() & 0x7f); /* stdout is unbuffered */}4next() /* instruction processor: control goes here1 almost right away, and cycles through here until you leave. */X/* F * This is the big kabloona. What it does is load the value at mem[ip]E * into w, increment ip, and invoke prim. number w. This implies thatI * mem[ip] is the CFA of a word. What's in the CF of a word is the numberJ * of the primitive which should be executed. For a word written in FORTH,G * that primitive is "docol", which pushes ip to the return stack, thenF * uses w+2 (the PFA of the word) as the new ip. See "interp.doc" for * more. */X/*K * There is an incredible hack going on here: the SPECIAL CASE mentioned inL * the code is for the word EXECUTE, which must set W itself and jump INSIDEJ * the "next" loop, by-passing the first instruction. This has been made aI * special case: if the primitive to execute is zero, the special case isL * invoked, and the code for EXECUTE is put right in the NEXT loop. For this> * reason, "EXECUTE" MUST BE THE FIRST WORD IN THE DICTIONARY. */{ short p;  while (1) {@ if (forceip) { /* force ip to this value -- used by sig_int */ ip = forceip; forceip = FALSE; } #ifdef TRACE if (trace) dotrace(); #endif TRACE#ifdef BREAKPOINT0 if (breakenable && ip == breakpoint) dobreak();#endif BREAKPOINT w = mem[ip]; ip++;. /* w, mem, and ip are all global. W is now, a POINTER TO the primitiv00IuITHH+%O-%TADATADATAe number to 3 execute, and ip points to the NEXT thread to follow. */,next1: /* This is for the SPECIAL CASE */; p = mem[w]; /* p is the actual number of the primitive *// if (p == 0) { /* SPECIAL CASE FOR EXECUTE! */0 w = pop(); /* see above for explanation */ goto next1; } /* else */ switch(p) { case LIT : lit(); break; case BRANCH : branch(); break;" case ZBRANCH : zbranch(); break; case PLOOP : ploop(); break; case PPLOOP : pploop(); break; case PDO : pdo(); break; case I : i(); break; case R : r(); break; case DIGIT : digit(); break; case PFIND : pfind(); break;" case ENCLOSE : enclose(); break; case KEY : key(); break; case PEMIT : pemit(); break;& case QTERMINAL : qterminal(); break; case CMOVE : cmove(); break; case USTAR : ustar(); break; case USLASH : uslash(); break; case AND : and(); break; case OR : or(); break; case XOR : xor(); break;" case SPFETCH : spfetch(); break;" case SPSTORE : spstore(); break;" case RPFETCH : rpfetch(); break;" case RPSTORE : rpstore(); break; case SEMIS : semis(); break; case LEAVE : leave(); break; case TOR : tor(); break; case FROMR : fromr(); break; case ZEQ : zeq(); break; case ZLESS : zless(); break; case PLUS : plus(); break; case DPLUS : dplus(); break; case MINUS : minus(); break; case DMINUS : dminus(); break; case OVER : over(); break; case DROP : drop(); break; case SWAP : swap(); break; case DUP : dup(); break; case TDUP : tdup(); break; case PSTORE : pstore(); break; case TOGGLE : toggle(); break; case FETCH : fetch(); break; case CFETCH : cfetch(); break; case TFETCH : tfetch(); break; case STORE : store(); break; case CSTORE : cstore(); break; case TSTORE : tstore(); break; case DOCOL : docol(); break; case DOCON : docon(); break; case DOVAR : dovar(); break; case DOUSE : douse(); break;$ case SUBTRACT : subtract(); break; case EQUAL : equal(); break; case NOTEQ : noteq(); break; case LESS : less(); break; case ROT : rot(); break; case DODOES : dodoes(); break; case DOVOC : dovoc(); break; case ALLOT : allot(); break; case PBYE : pbye(); break; case TRON : tron(); break; case TROFF : troff(); break;" case DOTRACE : dotrace(); break; case PRSLW : prslw(); break; case PSAVE : psave(); break; case PCOLD : pcold(); break;7 default : errexit("Bad execute-code %d\n",p); break; } }} dotrace(){ short worka, workb, workc; putchar('\n');) if (tracedepth) { /* show any stack? */ printf("sp: %04x (", csp); worka = csp;* for (workb = tracedepth; workb; workb--)1 printf("%04x ",(unsigned short) mem[worka++]); putchar(')'); } printf(" ip=%04x ",ip);C if (mem[R0]-rsp < RS_SIZE && mem[R0] - rsp > 0) /* if legal rsp */= for (worka = mem[R0]-rsp; worka; worka--) { /* indent */ putchar('>'); putchar(' '); }; worka = mem[ip] - 3; /* this is second-to-last letter, or the count byte */D while (!(mem[worka] & 0x80)) worka--; /* skip back to count byte */7 workc = mem[worka] & 0x2f; /* workc is count value */ worka++;. while (workc--) putchar(mem[worka++] & 0x7f); fflush(stdout);= if (debug) { /* wait for \n -- any other input will dump */ char buffer[10]; if (*gets(buffer) != '\0') { printf("dumping core... "); fflush(stdout); memdump(); puts("done."); } }}#ifdef BREAKPOINT dobreak(){ int temp; puts("Breakpoint.");R% printf("Stack pointer = %x:\n",csp);c( for (temp = csp; temp < INITS0; temp++) printf("\t%04x",mem[temp]);u putchar('\n');F}H#endif BREAKPOINTPmain(argc,argv)e int argc;p char *argv[];s{ FILE *fp; unsigned short size;a int i = 1;P) cfilename = COREFILE; /* "forth.core" */ + bfilename = BLOCKFILE; /* "forth.block" */ , sfilename = SAVEFILE; /* "forth.newcore" */) trace = debug = breakenable = nobuf = 0;' while (i < argc) {a if (*argv[i] == '-') { switc00I= ' ') chars[i%8] = tempb;i elses chars[i%8] = '.';u nonzero |= mem[i];e }H if (nonzero) {- fprintf(dumpfile,"%s %s\n",outline,chars);r firstzero = TRUE; } else if (firstzero) {v* fprintf(dumpfile, "----- ZERO ----\n"); firstzero = FALSE;u }  } fclose(dumpfile);} $X/* here is where ctype.h is00IuITHH+%O-%TADATADATA used */xtoi(s)echar *s;({ /* convert hex ascii to integer */ int temp = 0;H9 while (isxdigit (*s)) { /* first non-hex char ends */  temp <<= 4; /* mul by 16 */U if (isupper (*s)) temp += (*s - 'A') + 10;S elseh if (islower (*s)) temp += (*s - 'a') + 10; else temp += (*s - '0');  s++;r }e return temp;} X/*uJ * Interrupt (^C) handling: If the user hits ^C once, the next pqterm callL * will return TRUE. If he hits ^C again before pqterm is called, there willJ * be a forced jump to ABORT next time we hit next(). If it is a primitive; * that is caught in an infinite loop, this won't help any.S */0 sig_int()s{ % if (qtermflag) { /* second time? */ > forceip = mem[ABORTIP]; /* checked each time through next */ qtermflag = FALSE;+ trace = FALSE; /* stop tracing; reset */e } else qtermflag = TRUE; }U initsignals()i{q signal(SIGINT,sig_int);}*getblockfile(){rG /* recall that opening with mode "a+" opens for reading and writing */wG /* with the pointer positioned at the end; this is so ftell returns */ $ /* the size of the file. */2 if ((blockfile = fopen(bfilename, "a+")) == NULL)6 errexit("Can't open blockfile \"%s\"\n", bfilename); bfilesize = ftell(blockfile);B printf("Block file has %d blocks.\n",(int) (bfilesize/1024) - 1);}y//go.sysin dd *echo 'x - forth.dict' ,sed 's/^X//' <<'//go.sysin dd *' >forth.dict)PRIM EXECUTE 0 ( cfa -- )i0PRIM LIT 1 ( push the next value to the stack )0PRIM BRANCH 2 ( branch by offset in next word )7PRIM 0BRANCH 3 ( branch if zero by off. in next word ) PRIM (LOOP) 4 ( end of a ):PRIM (+LOOP) 5 ( inc -- w/increment != 1 )0PRIM (DO) 6 ( limit init -- )!PRIM I 7 ( get loop index )+2PRIM DIGIT 8 ( c -- DIGIT 1 | 0 )3PRIM (FIND) 9 ( s -- s 0 | s NFA 1 )s?PRIM ENCLOSE 10 ( addr c -- addr next first last ) 0PRIM KEY 11 ( -- c )-PRIM (EMIT) 12 ( c -- )m9PRIM ?TERMINAL 13 ( see if op. interrupted )t0PRIM CMOVE 14 ( src dest count -- )"PRIM U* 15 ( unsigned multiply ) PRIM U/ 16 ( unsigned divide )PRIM AND 17 ( a b -- a&b )RPRIM OR 18 ( a b -- a|b ) PRIM XOR 19 ( a b -- a%b ) PRIM SP@ 20 ( -- sp )-PRIM SP! 21 ( -- )sPRIM RP@ 22 ( -- rp )-PRIM RP! 23 ( -- )t3PRIM ;S 24 ( -- > )f4PRIM LEAVE 25 ( -- ))PRIM >R 26 ( a -- )e)PRIM R> 27 ( -- a )PRIM 0< 29 ( a -- a<0 )ePRIM + 30 ( a b -- a+b )/PRIM D+ 31 ( ahi alo bhi blo -- a+bhi a+blo )rPRIM MINUS 32 ( a -- -a ),PRIM DMINUS 33 ( ahi alo -- <-a>hi <-a>lo )PRIM OVER 34 ( a b -- a b a )PRIM DROP 35 ( a -- )PRIM SWAP 36 ( a b -- b a )PRIM DUP 37 ( a -- a a )t PRIM 2DUP 38 ( a b -- a b a b )-PRIM +! 39 ( val addr -- < *addr += val > )r0PRIM TOGGLE 40 ( addr mask -- <*addr %= mask> )PRIM @ 41 ( addr -- *addr ) PRIM C@ 42 ( addr -- *addr )&PRIM 2@ 43 ( addr -- *addr+1 *addr ))PRIM ! 44 ( val addr -- <*addr = val> )*PRIM C! 45 ( val addr -- <*addr = val> )8PRIM 2! 46 ( bhi blo addr -- <*addr=blo, *addr+1=bhi )0PRIM DOCOL 47 ( goes into CF of : definitions ),PRIM DOCON 48 ( goes into CF of constants ),PRIM DOVAR 49 ( goes into CF of variables )1PRIM DOUSE 50 ( goes into CF of user variables )bPRIM - 51 ( a b -- a-b )PRIM = 52 ( a b -- a==b)PRIM != 53 ( a b -- a!=b)cPRIM < 54 ( a b -- a; )m.PRIM TRON 61 ( depth -- trace to this depth )PRIM TROFF 62 ( stop tracing 00IPRIM (R/W) 64 ( BUFFER FLAG ADDR -- read if flag=1, write/0 ),PRIM (SAVE) 65 ( Save current environment )PRIM (COLD) 66m( end of primitives ). CONST 0 0e CONST 1 1/ CONST 2 2i CONST 3 3v CONST -1 -1 "CONST BL 32 ( A SPACE, OR BLANK ) CONST C/L 64CONST B/BUF 1024 CONST B/SCR 1+CONST #BUFF 5 ( IMPLEMENTATION DEPENDENT ) HCONST WORDSIZE 1 ( EXTENSION: WORDSIZE IS THE NUMBER OF BYTES IN A WORD.1 USUALLY, THIS IS TWO, BUT WITH PSEUDO-MEMORYn0 ADDRESSED AS AN ARRAY OF WORDS, IT'S ONE. )FCONST FIRST 0 ( ADDRESS OF THE FIRST BUFFER AND END OF BUFFER SPACE )CCONST LIMIT 0 ( the reader fills these in with INITR0 and DPBASE )- USER S0 24- USER R0 25 USER TIB 26 USER WIDTH 27EUSER WARNING 28 USER FENCE 29- USER DP 30-USER VOC-LINK 31 USER BLK 32 USER IN 33iUSER ERRBLK 34 USER ERRIN 35d USER OUT 36( USER SCR 37 USER OFFSET 38USER CONTEXT 392USER CURRENT 40B USER STATE 41p USER BASE 42 USER DPL 43 USER FLD 44d USER CSP 45e USER R# 46 USER HLD 47;.VAR USE 0 ( These two are filled in by COLD )1VAR PREV 0 ( to the same as the constant FIRST )nCONST SEC/BLK 1e: EMIT (EMIT) 1 OUT +! ;: CR LIT 13 EMIT LIT 10 EMIT* 0 OUT ! ;/: NOP ; ( DO-NOTHING )5: +ORIGIN ; ( ADD ORIGIN OF SYSTEM; IN THIS CASE, 0 )M: 1+ 1 + ;A: 2+ 2 + ;": 1- 1 - ;m*: ++ ( ADDR -- )" 1 SWAP +! ; ( MY OWN EXTENSION )*: -- ( ADDR -- )# -1 SWAP +! ; ( MY OWN EXTENSION ) : HERE ( -- DP ) DP @ ;/: , ( V -- )L HERE !5 WORDSIZE ALLOT ; ( CHANGE FROM MODEL FOR WORDSIZE )p?: C, ( C -- ) HERE C!n 1 ALLOT ; : U< ( THIS IS TRICKY. )E! 2DUP XOR 0< ( SIGNS DIFFERENT? ) 0BRANCH U1 ( NO: GO TO U1 )+ DROP 0< 0= ( YES; ANSWER IS [SECOND > 0] )S' BRANCH U2 ( SKIP TO U2 );LABEL U1) - 0< ( SIGNS ARE THE SAME. JUST SUBTRACTf AND TEST NORMALLY )tLABEL U2 ;: > ( CHEAP TRICK ) SWAP < ;: <> ( NOT-EQUAL )) != ;: SPACE ( EMIT A SPACE )n BL EMIT; .: -DUP ( V -- V | V V ) DUPI. 0BRANCH DDUP1 ( SKIP TO END IF IT WAS ZERO ) DUP LABEL DDUP1; 8: TRAVERSE ( A DIR -- A OR LFA TO NFA ) SWAPsLABEL T1 OVER ( BEGIN ) +' LIT 0x7F OVER C@ < ( HIGH BIT CLEAR? )E 0BRANCH T1 ( UNTIL ) SWAP DROP ;&: LATEST ( NFA OF LAST WORD DEFINED ) CURRENT @ @ ;: LFA ( GO FROM PFA TO LFA ) 2 - ; ( 2 IS WORDSIZE*2 )s: CFA ( GO FROM PFA TO CFA ) WORDSIZE - ;: NFA ( GO FROM PFA TO NFA ) 3 - ( NOW AT LAST CHAR )$ -1 TRAVERSE ; ( 3 IS WORDSIZE*3 ): PFA ( GO FROM NFA TO PFA )" 1 TRAVERSE ( NOW AT LAST CHAR ) 3 + ; ( 3 IS WORDSIZE*3 )W%: !CSP ( SAVE CSP AT USER VAR CSP ) SP@ CSP ! ;t : (ABORT)u ABORTc;d#: ERROR ( N -- ) - WARNING @ 0< ( WARNING < 0 MEANS )t 0BRANCH E1 (ABORT) ( IF )eLABEL E1# HERE COUNT TYPE (.") "?" ( THEN )o MESSAGEm SP! ( EMPTY THE STACK )i, BLK @ -DUP ( IF LOADING, STORE IN & BLK ) 0BRANCH E2 ERRBLK ! IN @ ERRIN ! ( IF )LABEL E2 QUIT ( THEN ) ;e(: ?ERROR ( F N -- ) SWAP 0BRANCH QERR1i. ERROR ( IF ) LABEL QERR1o DROP ( THEN )h;p*: ?COMP ( GIVE ERR#17 IF NOT COMPILING ) STATE @ 0= LIT 17 ?ERROR; *: ?EXEC ( GIVE ERR#18 IF NOT EXECUTING ) STATE @ LIT 18 ?ERRORI;R.: ?PAIRS ( GIVE ERR#19 IF PAIRS DON'T MATCH ) - LIT 19 ?ERROR ;c0: ?CSP ( GIVE ERR#20 IF CSP & SP DON'T MATCH ) SP@ CSP @ - LIT 20 ?ERROR};i*: ?LOADING ( GIVE ERR#21 IF NOT LOADING ) BLK @ 0= LIT 22 ?ERROR; 7: COMPILE ( COMPILE THE CFA OF THE NEXT WORD TO DICT )O ?COMPw$ R> DUP ( GET OUR RETURN ADDRESS )7 WORDSIZE + >R ( SKIP NEXT; ORIG. ADDR STILL ON TOS )r @ 00IuITHH+%O-%TADATADATA, ;b: [ ( BEGIN EXECUTING )p 0 STATE !e;*: ] ( END EXECUTING ). LIT 0xC0 STATE !;*2: SMUDGE ( TOGGLE COMPLETION BIT OF LATEST WORD )2 LATEST ( WHEN THIS BIT=1, WORD CAN'T BE FOUND ) LIT 0x20 TOGGLEO;X: :* ( DEFINE A WORD ) ?EXECv !CSP CURRENT @ CONTEXT ! 8 CREATE ] ( MAKE THE WORD HEADER AND BEGIN COMPILING ) (;CODE) DOCOLR;*: ; ( END A DEFINITION )" ?CSP ( CHECK THAT WE'RE DONE )% COMPILE ;S ( PLACE ;S AT THE END ) = SMUDGE [ ( MAKE THE WORD FINDABLE AND BEGIN INTERPRETING )b;* : CONSTANT CREATE SMUDGE ,s (;CODE) DOCON);r : VARIABLE CONSTANT (;CODE) DOVAR ;L: USER CONSTANT (;CODE) DOUSEk;)": HEX ( GO TO HEXADECIMAL BASE ) LIT 0x10 BASE ! ; !: DECIMAL ( GO TO DECIMAL BASE )c LIT 0x0A BASE !s;S*: ;CODE ( unused without an assembler )B ?CSP COMPILE (;CODE) [ NOP ( "ASSEMBLER" might go where nop is );*-: (;CODE) ( differs from the normal def'n )) R> @ @ LATEST PFA CFA !s;o: ( UNSURE ) R> LATEST PFA !a (;CODE) DODOES;a": COUNT ( ADDR -- ADDR+1 COUNT )B DUP 1+ SWAP C@ ; ( CONVERTS THE ADDR TO A FORM SUITABLE FOR "TYPE" ) : TYPE -DUP 0BRANCH TYPE1;) OVER + SWAP ( GET START .. END ADDRS )U (DO) LABEL TYPE2 I C@ EMIT  (LOOP) TYPE2 BRANCH TYPE3 LABEL TYPE1; DROP LABEL TYPE3);r:: -TRAILING ( addr count -- addr count )c DUP 0 (DO) ( DO ) LABEL TRAIL1 OVER OVER + 1 - C@ BL - 0BRANCH TRAIL2 LEAVE BRANCH TRAIL3 ( IF ) LABEL TRAIL2 1 - ( ELSE ) LABEL TRAIL3 (LOOP) TRAIL1 ( THEN LOOP );s$: (.") ( PRINT A COMPILED STRING ) R COUNTe DUP 1+ R> + >R TYPE ;d': ." ( COMPILE A STRING IF COMPILING,a( OR PRINT A STRING IF INTERPRETING ) LIT '"'u STATE @; 0BRANCH QUOTE1+ COMPILE (.") WORD HERE C@ 1+ ALLOT ( IF )  BRANCH QUOTE2E LABEL QUOTE1! WORD HERE COUNT TYPE ( ELSE ); LABEL QUOTE2;* ( THEN )c?: EXPECT ( MODIFIED EXPECT lets UNIX input editing & echoing )s- ( change EMIT to DROP below if not -echo )); OVER + OVER ( start of input buffer is on top of stack ))C DUP 0 SWAP C! ( smack a zero at the start to catch empty lines ) 6 (DO) ( above is an added departure ) LABEL EXPEC1 KEYt3 ( Comment this region out if using stty cooked ) DUP LIT 8 = 0BRANCH EXPEC2/ DROP DUP I = DUP R> 2 - + >R 0BRANCH EXPEC6  LIT 7 BRANCH EXPEC7n LABEL EXPEC6# LIT 8 ( output for backspace ) LABEL EXPEC7 BRANCH EXPEC3;3 ( End of region to comment out for stty cooked )m LABEL EXPEC2( DUP LIT '\n' = 0BRANCH EXPEC4 ( IF )! LEAVE DROP BL 0 BRANCH EXPEC5ELABEL EXPEC4 ( ELSE ) DUPrLABEL EXPEC5 ( THEN ) I C! 0 I 1+ ! LABEL EXPEC39 EMIT ( use DROP here for stty echo, EMIT for -echo )r (LOOP) EXPEC1/ DROP;o: QUERYl TIB @ ( ADDRESS OF BUFFER )e B/BUF ( SIZE OF BUFFER ) EXPECT ( GET A LINE )# 0 IN ! ( PREPARE FOR INTERPRET )a; :: {NUL} ( THIS GETS TRANSLATED INTO A SINGLE NULL BYTE ) BLK @r 0BRANCH NULL1x BLK ++ 0 IN ! ( IF )i BLK @ B/SCR 1 - AND 0= 0BRANCH NULL2p ?EXECu R> ( IF )b DROP LABEL NULL2t BRANCH NULL3 ( ENDIF ELSE ) LABEL NULL1. R> DROPfLABEL NULL3 ( ENDIF );*>: FILL ( START COUNT VALUE -- )p DUP 1+ ROT 1 - CMOVE  BRANCH FILL2 LABEL FILL1 DROP DROP) LABEL FILL2f;E.: ERASE ( START COUNT -- ) 0 FILL;F/: BLANKS ( START COUNT -- )c BL FILLC;F$: HOLD ( C -- ) HLD -- HLD @ C!.;c": PAD ( -- ADDR ) HERE LIT 0x44 +a;=4: WORD ( C -- R R HERE C! + HERE 1+ R> CMOVE;( : (NUMBER) LABEL NUM1 1+ DUP >R C@ BASE @ DIGIT 0BRANCH NUM2 ( WHILE )A SWAP BASE @ U* DROPi ROT BASE @ U* D+ DPL @ 1+ 0BRANCH NUM3 DPL ++ ( IF ) LABEL NUM3 R> ( ENDIF ) BRANCH NUM1 ( REPEAT )r LABEL NUM2 R>;n: NUMBER 0 0 ROT DUP 1+ C@  LIT '-' = DUP >R + -1OLABEL N1 ( BEGIN )  DPL ! (NUMBER) DUP C@ BL != 0BRANCH N2 ( WHILE ) $ DUP C@ LIT '0' != 0 ?ERROR 0 ( . ) BRANCH N1 ( REPEAT );LABEL N2 DROP R> 0BRANCH N3 ( IF ) DMINUSLABEL N3 ( ENDIF )E;O: -FIND ? BL WORD ( HERE CONTEXT @ @ DUP 0= 0BRANCH FIND1 DROP )i HERE LATEST (FIND)( LABEL FIND1 )r;i(: ID. ( NFA -- ) PAD LIT 0x5F BLANKS # DUP PFA LFA OVER - PAD SWAP CMOVE)# PAD COUNT LIT 0x1F AND TYPE SPACEe;a-: CREATE ( MAKE A HEADER FOR THE NEXT WORD )  -FINDp 0BRANCH C11 DROP NFA ID. LIT 4 MESSAGE SPACE ( NOT UNIQUE )tLABEL C10 HERE DUP C@ WIDTH @ MIN 1+ ALLOT ( MAKE ROOM ). DUP LIT 0xA0 TOGGLE ( MAKE IT UNFINDABLE )* HERE 1 - LIT 0x80 TOGGLE ( SET HI BIT ) LATEST , ( DO LF )% CURRENT @ ! ( UPDATE FOR LATEST ) 5 LIT 999 , ( COMPILE ILLEGAL VALUE TO CODE FIELD ),;\>: [COMPILE] ( COMPILE THE NEXT WORD, EVEN IF IT'S IMMEDIATE ) -FIND 0= 0 ?ERROR DROP CFA ,;* : LITERALp STATE @) 0BRANCH L1 COMPILE LIT ,oLABEL L1;* : DLITERAL STATE @a 0BRANCH D1 SWAP LITERAL LITERALLABEL D1;*2: ?STACK ( ERROR IF STACK OVERFLOW OR UNDERFLOW )2 S0 @ SP@ U< 1 ?ERROR ( SP > S0 MEANS UNDERFLOW )N SP@ TIB @ U< LIT 7 ?ERROR ( SP < R0 MEANS OVERFLOW: THIS IS IMPLEMENTATION-* DEPENDENT; I KNOW THAT THE CS IS JUST  ABOVE THE TIB. );i : INTERPRETsLABEL I1 -FIND ( BEGIN )p 0BRANCH I2 STATE @ < ( IF )C 0BRANCH I3 CFA , ( IF ) BRANCH I4 LABEL I3 CFA EXECUTE ( ELSE )xLABEL I4 ?STACK ( ENDIF ) BRANCH I5hLABEL I2 HERE NUMBER DPL @ 1+ 0BRANCH I6 DLITERAL ( IF ) BRANCH I7[LABEL I6 DROP LITERAL ( ELSE )LABEL I7 ?STACK ( ENDIF ENDIF )sLABEL I5 BRANCH I1 ( AGAIN );:0: IMMEDIATE ( MAKE MOST-RECENT WORD IMMEDIATE ) LATEST LIT 0x40 TOGGLE;tF( *** These are commented out because we don't handle vocabularies *** : VOCABULARY  WORDSIZE + CONTEXT !;n : DEFINITIONS) CONTEXT @ CURRENT !h;n*** End of commenting-out *** )e: ( ( COMMENT ) LIT ')' ( CLOSING PAREN )- WORD;*: QUIT 0 BLK ! [rLABEL Q1" RP! CR QUERY INTERPRET ( BEGIN ) STATE @ 0= 0BRANCH Q2 (.") "OK" ( IF )LABEL Q2 BRANCH Q1 ( ENDIF AGAIN )-;n: ABORTF SP! DECIMAL ?STACK CR .CPU ( PRINT THE GREETING ) ( FORTH )i QUIT; : COLD (COLD). VOC-LINK @ CONTEXT ! ( INITIALIZE CONTEXT )/ CONTEXT @ CURRENT ! ( MAKE CONTEXT CURRENT ) FIRST USE !e FIRST PREV ! EMPTY-BUFFERS,3 1 WARNING ! ( USE SCREEN 4 FOR ERROR MESSAGES )P ABORT;;: WARM EMPTY-BUFFERS= ABORTP;0: S->D DUP 0< 0BRANCH S2D1 -1 ( HIGH WORD IS ALL 1S ) BRANCH S2D2p LABEL S2D1 0L LABEL S2D2;8: +- 0< 0BRANCH PM1p MINUSl LABEL PM1";e: D+-o 0< 0BRANCH DPM1 DMINUS LABEL DPM1; : ABSn DUP +-;m: DABS DUP D+-u;n: MINn 2DUP > 0BRANCH MIN1 SWAP LABEL MIN1 DROP;b: MAX 2DUP < 0BRANCH MAX1 SWAP LABEL MAX1 DROP;u( MATH STUFF ): M*$ 2DUP XOR >R ABS SWAP ABS U* R> D+-;l: M/ OVER >R >R DABS R ABS U/ R> R XOR +- SWAP R> +- SWAP;t: * ( MULTIPLY, OF COURSE ) M* DROP-;\: /MOD >R S->D R> M/u; : / ( DIVIDE ) /MOD SWAP DROP;p: 00IuITHH+%O-%TADATADATAMODe /MOD DROPs;: */MOD >R M* R> M/h;a: */ */MOD/ SWAP DROPp;0: M/MODh >R 0 R U/ R> SWAP >R U/ R>;n( END OF MATH STUFF ) ": (LINE) ( LINE SCR -- ADDR C/L )) >R C/L B/BUF */MOD R> B/SCR * + BLOCK +s C/L ; : .LINE ( LINE SCR -- )  (LINE) -TRAILING TYPE;e : MESSAGE0 WARNING @ 0BRANCH MSG19 -DUP 0BRANCH MSG2 ( message # 0 is no message at all )eC LIT 4 OFFSET @ B/SCR / - .LINE SPACE ( messages are on screen 4 )h BRANCH MSG2f LABEL MSG1 (.") "MSG # " .l LABEL MSG2;d( DISK-ORIENTED WORDS ) : +BUF: LIT 1028 ( 1K PLUS 4 BYTES OVERHEAD, CO from defines ) + DUP LIMIT = 0BRANCH P1 DROP FIRSTLABEL P1 DUP PREV @ -; ': UPDATE ( MARK BUFFER AS MODIFIED ) ! PREV @ @ LIT 0X8000 OR PREV @ !/; : EMPTY-BUFFERS FIRST LIMIT OVER - ERASE;n: BUFFER USE @ DUP >R LABEL BUF18 +BUF 0BRANCH BUF1 ( LOOP UNTIL +BUF RETURNS NONZERO )I USE ! R @ 0< 0BRANCH BUF2 ( SEE IF IT'S DIRTY )a; R 2+ R @ LIT 0X7FFF AND 0 R/W ( WRITE THIS DIRTY BUFFER )e LABEL BUF2 R !l R PREV ! R> 2+ ;e: BLOCKe& OFFSET @ + >R PREV @ DUP @ R - DUP + 0BRANCH BLOCK1 LABEL BLOCK2 +BUF 0=t 0BRANCH BLOCK3 DROP R BUFFER DUP R 1 R/W 2 -= LABEL BLOCK3# DUP @ R - DUP + 0= 0BRANCH BLOCK2o DUP PREV ! b LABEL BLOCK1 R> DROP 2+;s4: R/W ( ADDR F BUFNO -- read if F=1, write if 0 ) (R/W)  ;t: FLUSHM #BUFF 1+ 0 (DO) LABEL FLUSH1 0 BUFFER DROP  (LOOP) FLUSH1u;o: LOAD BLK @ >R IN @ >R 0 IN !  B/SCR * BLK ! INTERPRET0 R> IN ! R> BLK !;e: -->. (.") "--> "/ ?LOADING 0 IN ! B/SCR BLK @ OVER MOD - BLK +! ;*: '< -FIND 0= 0 ?ERROR DROP LITERAL;*: FORGET% CURRENT @ CONTEXT @ - LIT 24 ?ERRORI ' DUP FENCE @ < LIT 21 ?ERRORM DUP NFA DP ! LFA @ CONTEXT @ !; ( COMPILING WORDS )9: BACK HERE - ,;n: BEGINs ?COMP HERE 1;*: ENDIFa# ?COMP 2 ?PAIRS HERE OVER - SWAP !R;*: THEN ENDIFn;*: DO COMPILE (DO) HERE LIT 3 ;*: LOOP" LIT 3 ?PAIRS COMPILE (LOOP) BACK;*: +LOOPn) LIT 3 ?PAIRS ?COMP COMPILE (+LOOP) BACKs;*: UNTIL- 1 ?PAIRS COMPILE 0BRANCH BACKs;*: ENDy UNTILU;*: AGAINe ?COMP) 1 ?PAIRS COMPILE BRANCH BACK;*: REPEAT ?COMP  >R >R AGAIN R> R> 2 -  ENDIFR;*: IF COMPILE 0BRANCH HERE 0 , 2;*: ELSE1 2 ?PAIRS COMPILE BRANCH HERE 0 , SWAP 2 ENDIF 2(;*: WHILEy IF 2+ ;*: SPACES 0 MAX -DUP 0BRANCH SPACES1 0 (DO) LABEL SPACES2 SPACE t (LOOP) SPACES2 LABEL SPACES1M; : <# PAD HLD !o;s: #> DROP DROP HLD @ PAD OVER -; : SIGN ROT 0< 0BRANCH SIGN1 LIT '-' HOLD LABEL SIGN1(;-: #e* BASE @ M/MOD ROT LIT 9 OVER < 0BRANCH #14 LIT 7 + ( 7 is offset to make 'A' come after '9')LABEL #1 LIT '0' + HOLD; : #S LABEL #S1o # 2DUP OR 0= 0BRANCH #S1;a: D.RD7 >R SWAP OVER DABS <# #S SIGN #> R> OVER - SPACES TYPE ;(: .R >R S->D R> D.R; : D. 0 D.R SPACE+; : .l S->D D.*;r: ?  @ .R;T: U. 0 D.;s: VLIST  C/L 1+ OUT ! CONTEXT @ @rLABEL VLIST1 ( BEGIN )# OUT @ C/L > 0BRANCH VLIST2 ( IF )d CRLABEL VLIST2 ( THEN )4 DUP ID. SPACE PFA LFA @l. DUP 0= ?TERMINAL OR 0BRANCH VLIST1 ( UNTIL ) DROP; : .CPU> (.") "C-CODED FORTH INTERPRETER" ( special string handling ); : BYEn CR (.") "EXIT FORTH" CRg 0 (BYE) ;c: LIST DECIMAL CR DUP SCR ! (.") "SCR # " .s LIT 16 0 (DO)0 LABEL LIST1C CR I 3 .R SPACEb I SCR @ .LINE  ?TERMINAL 0BRANCH LIST2- LEAVE! LABEL LIST2- (LOOP) LIST1 CR; : CASE ?COMP CSP @ !CSP LIT 4;*: OF ?COMP LIT 4 ?PAIRS) COMPILE OVER COMPILE = COMPILE 0BRANCH V HERE 0 , COMPILE DROP LIT 5m;*: ENDOFi ?COMPM LIT 5 ?PAIRS COMPILE BRANCH HERE 0 , SWAP 2 ENDIF LIT 4;* : ENDCASE< ?COMPm LIT 4 ?PAIRS COMPILE DROPLABEL ENDC1 ( BEGIN )O& SP@ CSP @ != 0BRAN00IR ! LIT ;S R> 2+ !);O>: REFORTH ( GET & EXECUTE ONE FORTH LINE ) IN @ >R BLK @ >R 0 IN ! 0 BLK ! QUERY INTERPRET2 R> BLK ! R> IN !;SJ( The vocabulary word FORTH will be compiled after the dictionary is read,L with a pointer to the last word in the dictionary, which will be itself. )//go.sysin dd *Recho 'x - forth.h')sed 's/^X//' <<'//go.sysin dd *' >forth.h4X/*SJ * forth.h -- define function numbers for primitives, and other constants,5 * externals, and globals used in forth.c and prims.c  */ #define EXECUTE 0#define LIT 1#define BRANCH 2#define ZBRANCH 3#define PLOOP 4#define PPLOOP 5O#define PDO 6 #define I 7 #define R 58N#define DIGIT 8#define PFIND 9#define ENCLOSE 10#define KEY 11#define PEMIT 12 #define QTERMINAL 13#define CMOVE 14W#define USTAR 15T#define USLASH 16#define AND 17T#define OR 18#define XOR 19(#define SPFETCH 20#define SPSTORE 21#define RPFETCH 22-#define RPSTORE 23 #define SEMIS 24 #define LEAVE 25A#define TOR 26R#define FROMR 27Z#define ZEQ 28 #define ZLESS 29C#define PLUS 30#define DPLUS 31 #define MINUS 32 #define DMINUS 33#define OVER 34#define DROP 35#define SWAP 36#define DUP 37T#define TDUP 38#define PSTORE 39#define TOGGLE 40#define FETCH 41 #define CFETCH 42#define TFETCH 43#define STORE 44T#define CSTORE 45#define TSTORE 46#define DOCOL 47(#define DOCON 48W#define DOVAR 49O#define DOUSE 50#define SUBTRACT 51P#define EQUAL 52#define NOTEQ 53-#define LESS 54#define ROT 55 #define DODOES 56#define DOVOC 57IX/* 58 is above */#define ALLOT 59#define PBYE 60#define TRON 61#define TROFF 62L#define DOTRACE 63L#define PRSLW 64>#define PSAVE 651#define PCOLD 66 X/* memory */RA#define GULPFRQ 256 /* if mem[LIMIT] - dp < GULPFRQ, then get */8#define GULPSIZE 1024 /* a block of GULPSIZE words */X/* % * User variables and other locations  */R.#define S0 UP+0 /* csp when stack is empty */0#define R0 UP+1 /* rsp when r stack is empty */6#define TIB UP+2 /* Terminal Input Buffer location */&#define WIDTH UP+3 /* screen width */+#define WARNING UP+4 /* print messages? */ 8#define FENCE UP+5 /* can not forget below this mark */7#define DP UP+6 /* points to first unallocated word */R+#define VOCLINK UP+7 /* vocabulary link */ $char *calloc(), *realloc(), *gets(); long lseek();OX/* GLOBALS */LX/* STACK POINTERS are registers of our FORTH machine. They, like everythingL else, point into memory (mem[]). They are read by sp@ and rp@, set by sp!, and rp!. They are initialized by COLD. */extern unsigned short csp;extern unsigned short rsp;EX/* This variable is all-important. It will be set to the top of the F data area by sbrk, and more memory will be allocated. All memory isJ addressed as a subscript to this address -- mem[0] is the first memory ) element, mem[1] is second, and so on. P*/Fextern short *mem; /* points to the number of bytes in mem[0], as read! from COREFILE at startup */T;X/* two more machine registers: the interpretive pointer */RDextern unsigned short ip; /* for an explanation of these, look in */)extern unsigned short w; /* interp.doc */ ;extern int trace, debug; /* global for tracing in next() */(Jextern int tracedepth, breakenable, breakp00IuITHH+%O-%TADATADATAoint, qtermflag, forceip, nobuf;extern FILE *blockfile;extern long bfilesize;extern char *bfilename;extern char *cfilename;Lextern char *sfilename;)//go.sysin dd *Necho 'x - forth.lex'+sed 's/^X//' <<'//go.sysin dd *' >forth.lex%{-X/* LEX input for FORTH input file scanner */ X/*  Specifications are as follows: / This file must be run through "sed" to change * yylex () { toE TOKEN *yylex () {( where the sed script is0 sed "s/yylex () {/TOKEN *yylex () {/" lex.yy.cB Note that spaces have been included above so these lines won't be@ mangled by sed; in actuality, the two blanks surrounding () are removed.E@ The function "yylex()" always returns a pointer to a structure: struct tokenrec { int type;B char *text;E }" #define TOKEN struct tokenrec0 where the type is a hint as to the word's type:! DECIMAL for decimal literal d+( OCTAL for octal literal 0d*# HEX for hex literal 0xd+ or 0Xd+m# C_BS for a literal Backspace '\b' # C_FF for a literal Form Feed '\f' ! C_NL for a literal Newline '\n' ) C_CR for a literal Carriage Return '\r'T C_TAB for a literal Tab '\t'' C_BSLASH for a literal backslash '\\' ? C_IT for an other character literal 'x' where x is possibly ': STRING_LIT for a string literal (possibly containing \")? COMMENT for a left-parenthesis (possibly beginning a comment)  PRIM for "PRIM") CONST for "CONST"3 VAR for "VAR"  USER for "USER" LABEL for "LABEL"a COLON for ":"  SEMICOLON for ";" 2 SEMISTAR for ";*" (used to make words IMMEDIATE)> NUL for the token {NUL}, which gets compiled as a null byte;7 this special interpretation takes place in the COLON  code.9 LIT for the word "LIT" (treated like OTHER, except that 7 no warning is generated when a literal follows this)R. OTHER for an other word not recognized aboveG Note that this is just a hint: the meaning of any string of characters  depends on the context.*/%} decimal [0-9]Ahex [0-9A-Fa-f]R octal [0-7]white [ \t\n\r\f]D tail /{white}E%{#include "forth.lex.h" TOKEN token;%}%%+{white}* /* whitespace -- keep looping */ ; E-?[1-9]{decimal}*{tail} { token.type = DECIMAL; token.text = yytext;E return &token; }f=-?0{octal}*{tail} { token.type = OCTAL; token.text = yytext;e return &token; }i=-?0[xX]{hex}+{tail} { token.type = HEX; token.text = yytext; return &token; }H\'\\b\'{tail} { token.type = C_BS; token.text = yytext; return &token; }H\'\\f\'{tail} { token.type = C_FF; token.text = yytext; return &token; }H\'\\n\'{tail} { token.type = C_NL; token.text = yytext; return &token; }H\'\\r\'{tail} { token.type = C_CR; token.text = yytext; return &token; }I\'\\t\'{tail} { token.type = C_TAB; token.text = yytext; return &token; }BM\'\\\\\'{tail} { token.type = C_BSLASH; token.text = yytext; return &token; })G\'.\'{tail} { token.type = C_LIT; token.text = yytext; return &token; }hG\"(\\\"|[^"])*\"{tail} { token.type = STRING_LIT; token.text = yytext;  return &token; }7"("{tail} { token.type = COMMENT; token.text = yytext; return &token; }7"PRIM"{tail} { token.type = PRIM; token.text = yytext;  return &token; }9"CONST"{tail} { token.type = CONST; token.text = yytext;  return &token; }5"VAR"{tail} { token.type = VAR; token.text = yytext;L return &token; }7"USER"{tail} { token.type = USER; token.text = yytext;F return &token; }9"LABEL"{tail} { token.type = LABEL; token.text = yytext;  return &token; }5":"{tail} { token.type = COLON; token.text = yytext;L return &token; }9";"{tail} { token.type = SEMICOLON; token.text = yytext; return &token; }9";*"{tail} { token.type = SEMISTAR; token.text = yytext; return &token; }7"{NUL}"{tail} { token.type = NUL; token.text = yytext;- return &token; }5"LIT"{tail} { token.type = LIT; token.text = yytext;C return &token; }>[^ \n\t\r\f]+{tail} { token.type = OTHER; token.text = yytext; return &token; }%%//go.s00Iforth.lex.h HX/* this is my best effort at a reconstruction of this file - it was notE** included with the distribution, and I cannot reach the author via(** electronic mail! >** John Nelson (decvax!genrad!john) [moderator, mod.sources]*/struct tokenrec { int type;@ char *text; };#define TOKEN struct tokenrecOTOKEN *yylex(); #define DECIMAL 1#define OCTAL 2#define HEX 3#define C_BS 4D#define C_FF 5M#define C_NL 6A#define C_CR 7n#define C_TAB 8#define C_BSLASH 9#define C_LIT 10-#define STRING_LIT 11 #define COMMENT 12P#define PRIM 13#define CONST 14#define VAR 15!#define USER 16#define LABEL 17P#define COLON 18 #define SEMICOLON 19#define SEMISTAR 20A#define NUL 21E#define LIT 22#define OTHER 23N//go.sysin dd *Uecho 'x - forth.line' ,sed 's/^X//' <<'//go.sysin dd *' >forth.line.------------------ SCREEN 0 ------------------@================================================================@|| C-CODED FIG-FORTH for UNIX* systems by ALLAN PRATT ||@|| ||@|| INCLUDES \ COMMENTS, ||@|| CASE..OF..ENDOF..ENDCASE ||@|| UNTHREAD, EDITOR ||@|| REFORTH, ||@|| "ALIAS NEW OLD" ||@|| AND OTHER NICE THINGS. ||@|| ( * UNIX is a trademark of Bell Labs ) ||@================================================================.------------------ SCREEN 1 ------------------&( UNTHREAD VERSION 2 / SCREEN 1 OF 3 ),: DOQUOTE \ AFTER (.")- 34 EMIT WORDSIZE + DUP C@ OVER 1+ SWAP TYPET 34 EMIT SPACE DUP C@ + 1+ ;E2: DOLIT \ AFTER LIT, BRANCHES, AND (LOOP)S! WORDSIZE + DUP @ . WORDSIZE + ; -->I.------------------ SCREEN 2 ------------------&( UNTHREAD VERSION 2 / SCREEN 2 OF 3 )!: DOWORD \ MAIN UNTHREADER4$ DUP @ WORDSIZE + DUP NFA ID. CASE% ' LIT OF DOLIT ENDOFA% ' 0BRANCH OF DOLIT ENDOF[% ' BRANCH OF DOLIT ENDOFA% ' (LOOP) OF DOLIT ENDOFE% ' (+LOOP) OF DOLIT ENDOFM% ' (.") OF DOQUOTE ENDOFA/ ' ;S OF DROP 0 ENDOF \ LEAVE 0 / DUP OF WORDSIZE + ENDOF \ DEFAULTa ENDCASE ; -->A.------------------ SCREEN 3 ------------------&( UNTHREAD VERSION 2 / SCREEN 3 OF 3 )&: UNTHREAD \ USAGE: UNTHREAD WORD [COMPILE] ' DUP CFA @*. ' DOWORD CFA @ <> 27 ?ERROR \ NOT THREADED CR ." : " DUP NFA ID. SPACE- BEGIN DOWORD OUT @ C/L > IF CR THEN -DUP WHILE REPEAT ;CR ." UNTHREAD READY"A;S.------------------ SCREEN 4 ------------------( ERROR MESSAGES ) EMPTY STACKP ISN'T UNIQUE XFULL STACKR,C-CODED figFORTH by ALLAN PRATT / APRIL 1985.------------------ SCREEN 5 ------------------MSG # 16MUST BE COMPILING(MUST BE EXECUTINGNUNMATCHED STRUCTURESDEFINITION NOT FINISHEDUWORD IS PROTECTED BY FENCEMUST BE LOADINGRCONTEXT ISN'T CURRENTALIAS: NOT A COLON DEFINITIONBALIAS: CAN'T ALIAS A NULL WORD.------------------ SCREEN 6 ------------------ X." LOADING EDITOR FOR VT100" CR;: CLS \ clear screen and home cursor 27 EMIT ." [2J" 27 EMIT ." [H";N>: LOCATE \ 0 16 LOCATE positions cursor at line 16, column 03 27 EMIT 91 EMIT 1+ 1 .R 59 EMIT 1+ 1 .R 72 EMIT ; 6: STANDOUT \ This can be a null word 27 EMIT ." [7m" ;P<: STANDEND \ This can be a null word, too. 27 EMIT ." [m" ;;S \ CONTINUE LOADING EDITOR.------------------ SCREEN 7 ------------------X." LOADING EDITOR FOR ADM5" CR : CLS 26 EMIT ;M: LOCATE 27 EMIT 61 EMITO 32 + EMIT 32 + EMIT ;P : ST00IuITHH+%O-%TADATADATAANDOUT 27 EMIT 71 EMIT ; : STANDEND 27 EMIT 71 EMIT ;;S \ continue loading editor.------------------ SCREEN 8 ------------------;( Reserved for more terminals; set the name of the terminalC as a constant in screen 10 );S.------------------ SCREEN 9 ------------------;( Reserved for more terminals. Set the name of the terminal( as a constant in screen 10 );S/------------------ SCREEN 10 ------------------R)( EDITOR -- SCREEN 1 OF 19 -- VARIABLES )DECIMAL2&0 VARIABLE ROW 0 VARIABLE COL50 VARIABLE EDIT-SCR 0 VARIABLE SCREEN-IS-MODIFIEDf20 VARIABLE MUST-UPDATE 0 VARIABLE LAST-KEY-STRUCK0 VARIABLE CURSOR-IS-DIRTY(0 VARIABLE KEYMAP WORDSIZE 255 * ALLOT( KEYMAP WORDSIZE 256 * ERASE40 VARIABLE SCR-BUFFER B/BUF B/SCR * WORDSIZE - ALLOT8( TERMINAL CONSTANTS -- VALUE IS SCREEN NUMBER TO LOAD )"6 CONSTANT VT100 7 CONSTANT ADM5--> /------------------ SCREEN 11 ------------------d,( EDITOR -- SCREEN 2 OF 19 -- SCREEN STUFF )=CR ." ENTER THE TYPE OF TERMINAL YOU ARE USING. TYPE ONE OF:">>CR ." VT100 ADM5" CR \ list the constants from scr 108REFORTH \ this word gets & interprets one line.=LOAD \ load the right screen; VT100 = 6, ADM5 = 7 : EXIT-EDITO 0 16 LOCATE QUIT ; : ABORT-EDIT 0 15 LOCATE MESSAGE ; :: BIND-ADDR ( C -- ADDR where binding is stored ) WORDSIZE * KEYMAP + ;+-->O/------------------ SCREEN 12 ------------------U#( EDITOR -- SCREEN 3 OF 19 -- I/O )R%: ^EMIT ( OUTPUT W/ESC AND ^ )" DUP 127 > IF ." ESC-" 128 - THEN DUP 32 < IF ." ^" 64 + THEN EMIT ;;: BACK-WRAP ( DECR EDIT SCR. AND PUT CURSOR AT BOTTOM )R9 EDIT-SCR -- C/L 1- COL ! 15 ROW ! 1 MUST-UPDATE ! ;8: FORWARD-WRAP ( INCR EDIT SCR. AND PUT CURSOR AT TOP )/ EDIT-SCR ++ 0 COL ! 0 ROW ! 1 MUST-UPDATE ! ; ): ED-KEY ( INPUT W/ESC FOR HI BIT )*% KEY DUP 27 = IF DROP KEY 128 + THENR DUP LAST-KEY-STRUCK ! ; -->/------------------ SCREEN 13 ------------------O-( EDITOR -- SCREEN 4 OF 19 -- BINDING WORDS ) 0: (BIND) ( CFA K -- STORES INTO KEYMAP ) BIND-ADDR !-; 4: BIND-TO-KEY ( "BIND-TO-KEY NAME" ASKS FOR KEY ) [COMPILE] ' CFAC" ." KEY: " ED-KEY DUP ^EMIT SPACE (BIND) ;: DESCRIBE-KEY" ." KEY: " ED-KEY DUP ^EMIT SPACE BIND-ADDR @ -DUP IF NFA ID.E, ELSE ." SELF-INSERT"$ THEN SPACE ;-->/------------------ SCREEN 14 ------------------A-( EDITOR -- SCREEN 5 OF 19 -- PRIMITIVE OPS ) 4: PREV-LINE ROW @ IF ROW -- 1 CURSOR-IS-DIRTY !, ELSE BACK-WRAP THEN ;4: NEXT-LINE ROW @ 15 < IF ROW ++ 1 CURSOR-IS-DIRTY !/ ELSE FORWARD-WRAP THEN ;91: BEGINNING-OF-LINE 0 COL ! 1 CURSOR-IS-DIRTY ! ;e5: END-OF-LINE C/L 1- COL ! 1 CURSOR-IS-DIRTY ! ;': EDIT-CR NEXT-LINE BEGINNING-OF-LINE ;#/: PREV-CHAR COL @ IF COL -- 1 CURSOR-IS-DIRTY !#, ELSE END-OF-LINE PREV-LINE THEN ;8: NEXT-CHAR COL @ C/L 1- < IF COL ++ 1 CURSOR-IS-DIRTY !' ELSE EDIT-CR+! THEN ; -->G/------------------ SCREEN 15 ------------------.( EDITOR -- SCREEN 6 OF 19 -- MORE LOW-LEVEL ) : THIS-CHAR=( ROW @ EDIT-SCR @ (LINE) DROP COL @ + ;): PUT-CHAR THIS-CHAR C! 1 MUST-UPDATE ! ;E": INSERT-CHAR PUT-CHAR NEXT-CHAR ; : SELF-INSERTR) LAST-KEY-STRUCK @ DUP THIS-CHAR C! EMIT NEXT-CHARA;R DECIMAL -->./------------------ SCREEN 16 ------------------R.( EDITOR -- SCREEN 7 OF 19 -- DISPLAY STUFF )HEXA): SHOWSCR ( N -- SHOWS SCREEN N )L CLS2 0 10 LOCATE STANDOUT ." SCREEN " DUP . STANDEND 10 0 DO 0 I LOCATE I OVER .LINEC LOOP DROP ;E: REDRAW EDIT-SCR @ SHOWSCR ; : ?REDRAWi) MUST-UPDATE @ IF REDRAW 0 MUST-UPDATE !H4 1 CURSOR-IS-DIRTY ! THEN ; DECIMAL -->I/------------------ SCREEN 17 ------------------ ,( EDITOR -- SCREEN 8 00I /------------------ SCREEN 18 ------------------h*( EDITOR -- SCREEN 9 OF 19 -- TOP-LEVEL ) : TOP-LEVEL  BEGIN , ?REDRAW ?PLACE-CURSOR ED-KEY EXECUTE-KEY AGAINI;N: EDIT EDIT-SCR ! CLS! 0 ROW ! 0 COL ! 1 MUST-UPDATE !S TOP-LEVELU;R--> /------------------ SCREEN 19 ------------------R5( EDITOR -- SCREEN 10 OF 19 -- HIGH-LEVEL KEY WORDS )N,: UPDATE-SCR ( BOUND TO ^U )( EDIT-SCR @ B/SCR * DUP B/SCR + SWAP DO I BLOCK DROP UPDATEd LOOP ;-: NEXT-SCR ( ^C and ESC-C )d EDIT-SCR ++ 1 MUST-UPDATE !);/-: PREV-SCR ( ^R and ESC-R )<# EDIT-SCR @ 0= IF EDIT-SCR ++ THEN*! EDIT-SCR -- 1 MUST-UPDATE ! ; -->r/------------------ SCREEN 20 ------------------ +( EDITOR -- SCREEN 11 OF 19 -- HIGH-LEVEL )HEXn/: TAB-KEY ( INCREMENT TO NEXT TAB STOP ), COL @ 8 + F8 AND DUP C/L < IF COL ! THEN ;DECIMAL$: REEDIT ( RESTART EDITING ) EDIT-SCR @ EDIT ;8 : ERRCONVN+ ERRBLK @ DUP B/SCR / SWAP B/SCR MOD DUP + ERRIN @ C/L @ / + ;f4: ERREDIT ERRCONV ROW ! EDIT-SCR ! BEGINNING-OF-LINE! 1 MUST-UPDATE ! CLS TOP-LEVEL ; -->/------------------ SCREEN 21 ------------------ ( EDITOR -- SCREEN 12 OF 19 -- ): UPDATE-AND-FLUSH UPDATE-SCR FLUSH ;: DEL-TO-END-OF-LINE( COL @ ROW @ EDIT-SCR @ ( SAVE THESE )" C/L COL @ DO BL INSERT-CHAR LOOP2 EDIT-SCR ! ROW ! COL ! ( RESTORE SAVED VALUES );I-->n/------------------ SCREEN 22 ------------------0( EDITOR -- SCREEN 13 OF 19 -- MORE HIGH-LEVEL ): CLEAR-SCREEN( EDIT-SCR @ B/SCR * DUP B/SCR + SWAP DO I BLOCK B/BUF BLANKSf LOOP 1 MUST-UPDATE !R;4.: DESCRIBE-BINDINGS ( SHOWS ALL BINDINGS )4 256 0 DO ( INTERESTING ONES, ANYWAY ) I BIND-ADDR @) -DUP IF CR I ^EMIT SPACE NFA ID. THENd ?TERMINAL IF LEAVE THENS LOOP CR ; -->5/------------------ SCREEN 23 ------------------8.( EDITOR -- SCREEN 14 OF 19 -- WORD MOVEMENT ) : NEXT-WORDR3 THIS-CHAR C@ BL = IF PREV-CHAR THEN ( BUG FIX )f) BEGIN NEXT-CHAR THIS-CHAR C@ BL = UNTIL , BEGIN NEXT-CHAR THIS-CHAR C@ BL <> UNTIL ; : PREV-WORDL* BEGIN PREV-CHAR THIS-CHAR C@ BL <> UNTIL) BEGIN PREV-CHAR THIS-CHAR C@ BL = UNTIL NEXT-CHAR ;*--> /------------------ SCREEN 24 ------------------ /( EDITOR -- SCREEN 15 OF 19 -- BUFFER CONTROL )s4: TO-BUFFER ( COPY FROM HERE TO BUFFER ) EDIT-SCR @ 16 0 DO1 I OVER (LINE) I C/L * SCR-BUFFER + SWAP CMOVEf LOOP DROPP; 4: FROM-BUFFER ( COPY FROM BUFFER TO HERE ) EDIT-SCR @ 16 0 DO: I OVER (LINE) DROP I C/L * SCR-BUFFER + SWAP C/L CMOVE LOOP DROP 1 MUST-UPDATE !c;l--> /------------------ SCREEN 25 ------------------e-( EDITOR -- SCREEN 16 OF 19 -- MORE BUFFERS )a/: SCR-COPY ( SRC DEST -- COPIES A SCREEN )r( EDIT-SCR @ ROT ROT ( OLD IS THIRD )? SWAP EDIT-SCR ! TO-BUFFER ( OLD IS SECOND/DEST IS FIRST )i# EDIT-SCR ! FROM-BUFFER UPDATE-SCRg EDIT-SCR !;x : QUOTE-NEXT ED-KEY INSERT-CHAR;a: EXECUTE-FORTH-LINE% 0 17 LOCATE 27 EMIT 84 EMIT REFORTHt 1 MUST-UPDATE ! TOP-LEVEL ; -->b/------------------ SCREEN 26 ------------------s ( EDITOR -- SCREEN 17 OF 19 -- )-->e/------------------ SCREEN 27 ------------------*4( EDITOR -- SCREEN 18 OF 19 -- INITIALIZE BINDINGS )# ' PREV-LINE CFA 11 (BIND) ( ^K )# ' NEXT-LINE CFA 10 (BIND) ( ^J ) # ' PREV-CHAR CFA 8 (BIND) ( ^H )g# ' NEXT-CHAR CFA 12 (BIND) ( ^L )f# ' NEXT-SCR CFA 3 (BIND) ( ^C )h# ' PREV-SCR CFA 18 (BIND) ( ^R )t' ' EXIT-EDIT CFA 209 (BIND) ( ESC-Q )e# ' EDIT-CR CFA 13 (BIND) ( ^M )k# ' TAB-KEY 00IITHH+%O-%TADATADATA CFA 9 (BIND) ( ^I )p# ' UPDATE-SCR CFA 21 (BIND) ( ^U )x# ' NEXT-WORD CFA 6 (BIND) ( ^F )i# ' PREV-WORD CFA 1 (BIND) ( ^A )x- ' UPDATE-AND-FLUSH CFA 198 (BIND) ( ESC-F )'-->o/------------------ SCREEN 28 ------------------..( EDITOR -- SCREEN 19 OF 19 -- MORE BINDINGS ), ' DEL-TO-END-OF-LINE CFA 25 (BIND) ( ^Y )& ' PREV-CHAR CFA 19 (BIND) ( ^S )& ' PREV-LINE CFA 5 (BIND) ( ^E )& ' NEXT-LINE CFA 24 (BIND) ( ^X )& ' NEXT-CHAR CFA 4 (BIND) ( ^D )) ' TO-BUFFER CFA 190 (BIND) ( ESC-> )l) ' FROM-BUFFER CFA 188 (BIND) ( ESC-< )d) ' NEXT-SCREEN CFA 195 (BIND) ( ESC-C )u) ' PREV-SCREEN CFA 210 (BIND) ( ESC-R )y& ' QUOTE-NEXT CFA 16 (BIND) ( ^P )1 ' EXECUTE-FORTH-LINE CFA 155 (BIND) ( ESC-ESC ) CR ." EDITOR READY ";S/------------------ SCREEN 29 ------------------s//go.sysin dd * JFrom: HENRY::IN%"cic%CSNET-SH.ARPA%relay.cs.net@rca.com" 29-AUG-1986 19:09,To: EVERHART%ARISIA%rca.com@CSNET-RELAY.ARPA7Subj: cforth/Part3 FORTH INTERPRETER IN C (Part 3 of 3)!Date: Tue, 30 Apr 85 15:19:04 est7From: mit-eddie!ihnp4!purdue!iuvax!apratt (Allan Pratt)-Subject: FORTH INTERPRETER IN C (Part 3 of 3)+: Run this shell script with "sh" not "csh"PATH=:/bin:/usr/bin:/usr/ucb export PATHecho 'x - l2b.c''sed 's/^X//' <<'//go.sysin dd *' >l2b.c,X/* usage: line2block < linefile > blockfile? * takes a file (like one generated by block2line) of the form: *
     * < 16 screen lines > * ...L * and produces a block file with exactly 64 characters on each line, havingJ * removed the header lines. This file is suitable for use with FORTH as a * block file. */#include main(){ int i; char buf[65];& char *spaces = /* 64 spaces, below */D " "; /* 64 spaces, above */ while (1) { gets(buf); /* header line */ for (i=0; i<16; i++) {" if (gets(buf) == NULL) exit(0);) printf("%s%s",buf,spaces+strlen(buf)); } }} //go.sysin dd *echo 'x - lex.yy.c'*sed 's/^X//' <<'//go.sysin dd *' >lex.yy.c# include "stdio.h"# define U(x) x%# define NLSTATE yyprevious=YYNEWLINE$# define BEGIN yybgin = yysvec + 1 +# define INITIAL 0# define YYLERR yysvec$# define YYSTATE (yyestate-yysvec-1)# define YYOPTIM 1# define YYLMAX 200 # define output(c) putc(c,yyout)t# define input() (((yytchar=yysptr>yysbuf?U(*--yysptr):getc(yyin))==10?(yylineno++,yytchar):yytchar)==EOF?0:yytchar)O# define unput(c) {yytchar= (c);if(yytchar=='\n')yylineno--;*yysptr++=yytchar;}# define yymore() (yymorfg=1))# define ECHO fprintf(yyout, "%s",yytext)3# define REJECT { nstr = yyreject(); goto yyfussy;}!int yyleng; extern char yytext[]; int yymorfg;extern char *yysptr, yysbuf[]; int yytchar;'XFILE *yyin ={stdin}, *yyout ={stdout};extern int yylineno;struct yysvf {  struct yywork *yystoff; struct yysvf *yyother; int *yystops;};struct yysvf *yyestate;&extern struct yysvf yysvec[], *yybgin;-X/* LEX input for FORTH input file scanner */X/*  Specifications are as follows:/ This file must be run through "sed" to change yylex () { to TOKEN *yylex () { where the sed script is0 sed "s/yylex () {/TOKEN *yylex () {/" lex.yy.cB Note that spaces have been included above so these lines won't be@ mangled by sed; in actuality, the two blanks surrounding () are removed.@ The function "yylex()" always returns a pointer to a structure: struct tokenrec { int type; char *text; }" #define TOKEN struct tokenrec0 where the type is a hint as to the word's type:! DECIMAL for decimal literal d+ OCTAL for octal literal 0d*# HEX for hex literal 0xd+ or 0Xd+# C_BS for a literal Backspace '\b'# C_FF for a literal Form Feed '\f'! C_NL for a literal Newline '\n') C_CR for a literal Carriage Return00I NUL for the token {NUL}, which gets compiled as a null byte;7 this special interpretation takes place in the COLON code.9 LIT for the word "LIT" (treated like OTHER, except that7 no warning is generated when a literal follows this). OTHER for an other word not recognized aboveG Note that this is just a hint: the meaning of any string of characters depends on the context.*/#include "forth.lex.h" TOKEN token;# define YYNEWLINE 10TOKEN *yylex(){ int nstr; extern int yyprevious;while((nstr = yylook()) >= 0)yyfussy: switch(nstr){case 0:if(yywrap()) return(0); break;case 1:#X/* whitespace -- keep looping */ ;break;case 2:- { token.type = DECIMAL; token.text = yytext; return &token; }break;case 3:+ { token.type = OCTAL; token.text = yytext; return &token; }break;case 4:) { token.type = HEX; token.text = yytext; return &token; }break;case 5::{ token.type = C_BS; token.text = yytext; return &token; }break;case 6::{ token.type = C_FF; token.text = yytext; return &token; }break;case 7::{ token.type = C_NL; token.text = yytext; return &token; }break;case 8::{ token.type = C_CR; token.text = yytext; return &token; }break;case 9:;{ token.type = C_TAB; token.text = yytext; return &token; }break;case 10:>{ token.type = C_BSLASH; token.text = yytext; return &token; }break;case 11:;{ token.type = C_LIT; token.text = yytext; return &token; }break;case 12:0{ token.type = STRING_LIT; token.text = yytext;  return &token; }break;case 13:- { token.type = COMMENT; token.text = yytext; return &token; }break;case 14:* { token.type = PRIM; token.text = yytext; return &token; }break;case 15:+ { token.type = CONST; token.text = yytext; return &token; }break;case 16:) { token.type = VAR; token.text = yytext; return &token; }break;case 17:* { token.type = USER; token.text = yytext; return &token; }break;case 18:+ { token.type = LABEL; token.text = yytext; return &token; }break;case 19:+ { token.type = COLON; token.text = yytext; return &token; }break;case 20:/ { token.type = SEMICOLON; token.text = yytext; return &token; }break;case 21:. { token.type = SEMISTAR; token.text = yytext; return &token; }break;case 22:) { token.type = NUL; token.text = yytext; return &token; }break;case 23:) { token.type = LIT; token.text = yytext; return &token; }break;case 24:*{ token.type = OTHER; token.text = yytext; return &token; }break;case -1:break;default:+fprintf(yyout,"bad switch yylook %d",nstr);} return(0); }X/* end of yylex */int yyvstop[] ={0,1,0,1,0,-24,0,1,0,-24,0,-24,0,-13,-24,0,-24,0,-3,-24,0,-2,-24,0,-19,-24,0,-20,-24,0,-24,0,-24,0,-24,0,-24,0,-24,0,-24,0,24,0,24,0,-12,-24,0,-24,0,-24,0,24,0,-24,0,13,24,0,3,24,0,-3,-24,0,-24,0,2,24,0,19,24,0,20,24,0,-21,-24,0,-24,0,-24,0,-24,0,-24,0,-24,0,-24,0,-24,0,-12,0,12,24,0,-12,-24,0,-11,-24,0,-11,0,-24,0,-24,0,-24,0,-24,0,-24,0,-24,0,-4,-24,0,21,24,0,-24,0,-24,0,-23,-24,0,-24,0,-24,0,-16,-24,0,-24,0,12,0,-12,0,12,24,0,11,24,00IITHH+%O-%TADATADATA0,11,0,-10,-24,0,-5,-24,0,-6,-24,0,-7,-24,0,-8,-24,0,-9,-24,0,4,24,0,-24,0,-24,0,23,24,0,-14,-24,0,-17,-24,0,16,24,0,-24,0,12,0,10,24,0,5,24,0,6,24,0,7,24,0,8,24,0,9,24,0,-15,-24,0,-18,-24,0,14,24,0,17,24,0,-22,-24,0,15,24,0,18,24,0,22,24,0,0};# define YYTYPE char6struct yywork { YYTYPE verify, advance; } yycrank[] ={0,0, 0,0, 1,3, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 1,4, 1,4, 0,0, 4,4, 4,4, 0,0, 4,4, 4,4, 7,26, 7,26, 11,31, 11,31, 21,44, 21,44, 0,0, 12,32, 12,32, 33,55, 33,55, 0,0, 42,63, 42,63, 0,0, 42,63, 42,63, 1,5, 4,4, 46,66, 46,66, 0,0, 1,6, 1,7, 22,45, 3,3, 23,46, 24,47, 1,8, 48,68, 49,69, 1,9, 1,10, 3,19, 3,19, 42,63, 50,70, 2,6, 2,7, 1,10, 12,33, 1,11, 1,12, 2,8, 5,5, 51,71, 6,23, 52,72, 1,3, 43,64, 1,13, 35,57, 5,20, 5,20, 6,24, 6,19, 2,11, 2,12, 3,3, 1,14, 37,59, 38,60, 18,40, 1,15, 13,34, 2,13, 15,37, 16,38, 1,16, 1,17, 34,56, 1,3, 3,3, 3,3, 2,14, 9,27, 9,27, 5,21, 2,15, 6,23, 3,3, 36,58, 22,22, 2,16, 2,17, 10,30, 10,30, 8,9, 8,10, 3,3, 39,61, 5,5, 5,5, 6,23, 6,23, 8,10, 14,3, 40,62, 41,43, 5,5, 53,73, 6,23, 28,27, 28,27, 14,19, 14,19, 1,18, 43,43, 5,5, 56,75, 6,23, 57,76, 3,3, 59,78, 9,28, 9,28, 45,65, 45,65, 58,77, 58,77, 60,79, 2,18, 29,54, 29,54, 10,10, 10,10, 62,81, 25,46, 65,43, 14,3, 29,54, 5,5, 10,10, 6,23, 75,89, 5,22, 76,90, 6,25, 81,93, 29,54, 82,43, 28,28, 28,28, 14,3, 14,3, 0,0, 47,67, 47,67, 0,0, 47,67, 47,67, 14,3, 61,80, 61,80, 9,29, 64,82, 64,82, 0,0, 17,3, 0,0, 14,35, 14,3, 14,3, 14,3, 14,3, 14,3, 17,19, 17,19, 14,36, 47,67, 68,83, 68,83, 69,84, 69,84, 70,85, 70,85, 71,86, 71,86, 72,87, 72,87, 25,48, 73,88, 73,88, 14,3, 78,91, 78,91, 25,49, 79,92, 79,92, 0,0, 25,50, 17,3, 14,3, 14,3, 14,3, 14,3, 14,3, 14,3, 25,51, 45,22, 89,94, 89,94, 25,52, 0,0, 25,53, 17,3, 17,3, 90,95, 90,95, 93,96, 93,96, 0,0, 0,0, 17,3, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 20,41, 0,0, 17,39, 17,3, 17,3, 17,3, 17,3, 17,3, 20,41, 20,41, 54,74, 54,74, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 64,43, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 17,3, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 20,42, 17,3, 17,3, 17,3, 17,3, 17,3, 17,3, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 20,41, 20,41, 54,54, 54,54, 0,0, 0,0, 0,0, 0,0, 20,41, 0,0, 54,54, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 20,41, 0,0, 54,54, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 20,41, 0,0, 0,0, 0,0, 20,43, 0,0, 0,0, 0,0};struct yysvf yysvec[] ={0, 0, 0,yycrank+-1, 0, yyvstop+1,!yycrank+-16, yysvec+1, yyvstop+3,yycrank+-42, 0, yyvstop+5,yycrank+4, 0, yyvstop+7,yycrank+-61, 0, yyvstop+9,yycrank+-63, 0, yyvstop+11,!yycrank+-9, yysvec+3, yyvstop+13,"yycrank+-57, yysvec+3, yyvstop+16,"yycrank+-84, yysvec+3, yyvstop+18,"yycrank+-94, yysvec+3, yyvstop+21,"yycrank+-11, yysvec+3, yyvstop+24,"yycrank+-16, yysvec+3, yyvstop+27,!yycrank+-3, yysvec+3, yyvstop+30,yycrank+-113, 0, yyvstop+32,!yycrank+-2, yysvec+3, yyvstop+34,!yycrank+-2, yysvec+3, yyvstop+36,yycrank+-175, 0, yyvstop+38,!yycrank+-2, yysvec+3, yyvstop+40,yycrank+0, 0, yyvstop+42,yycrank+-237, 0, yyvstop+44,"yycrank+-13, yysvec+3, yyvstop+46,!yycrank+-8, yysvec+5, yyvstop+49,!yycrank+-5, yysvec+3, yyvstop+51,yycrank+6, 0, yyvstop+53,#yycrank+-106, yysvec+3, yyvstop+55,yycrank+0, 0, yyvstop+57,yycrank+0, 0, yyvstop+60,#yycrank+-111, yysvec+3, yyvstop+63,"yycrank+-92, yysvec+3, yyvstop+66,yycrank+0, 0, yyvstop+68,yycrank+0, 0, yyvstop+71,yycrank+0, 0, yyvstop+74,"yycrank+-18, yysvec+3, yyvstop+77,"yycrank+-10, yysvec+3, yyvstop+80,!yycrank+-3, yysvec+3, yyvstop+82,"yycrank+-15, yysvec+3, yyvstop+84,!yycrank+-5, yysvec+3, yyvstop+86,"yycrank+-10, yysvec+3, yyvstop+88,"yycrank+00Jyystoff;8 if(yyt == yycrank){ /* may not be any transitions */ yyz = yystate->yyother; if(yyz == 0)break;% if(yyz->yystoff == yycrank)break; } *yylastch++ = yych = input(); tryagain:# ifdef LEXDEBUG if(debug){ fprintf(yyout,"char "); allprint(yych); 00JITHH+%O-%TADATADATAputchar('\n'); }# endif yyr = yyt;! if ( (int)yyt > (int)yycrank){ yyt = yyr + yych;7 if (yyt <= yytop && yyt->verify+yysvec == yystate){> if(yyt->advance+yysvec == YYLERR) /* error transitions */! {unput(*--yylastch);break;}, *lsp++ = yystate = yyt->advance+yysvec; goto contin; } }# ifdef YYOPTIM8 else if((int)yyt < (int)yycrank) { /* r < yycrank */& yyt = yyr = yycrank+(yycrank-yyt);# ifdef LEXDEBUG1 if(debug)fprintf(yyout,"compressed state\n");# endif yyt = yyt + yych;6 if(yyt <= yytop && yyt->verify+yysvec == yystate){> if(yyt->advance+yysvec == YYLERR) /* error transitions */! {unput(*--yylastch);break;}, *lsp++ = yystate = yyt->advance+yysvec; goto contin; }# yyt = yyr + YYU(yymatch[yych]);# ifdef LEXDEBUG if(debug){/ fprintf(yyout,"try fall back character ");" allprint(YYU(yymatch[yych])); putchar('\n'); }# endif6 if(yyt <= yytop && yyt->verify+yysvec == yystate){= if(yyt->advance+yysvec == YYLERR) /* error transition */A! {unput(*--yylastch);break;}j, *lsp++ = yystate = yyt->advance+yysvec; goto contin;, } }9K if ((yystate = yystate->yyother) && (yyt= yystate->yystoff) != yycrank){F# ifdef LEXDEBUGG if(debug)fprintf(yyout,"fall back to state %d\n",yystate-yysvec-1);:# endif/ goto tryagain; }# endif  elsee {unput(*--yylastch);break;}2 contin:s# ifdef LEXDEBUG if(debug){k5 fprintf(yyout,"state %d char ",yystate-yysvec-1);) allprint(yych);e putchar('\n'); }l# endif* ; }# ifdef LEXDEBUG if(debug){: fprintf(yyout,"stopped at %d with ",*(lsp-1)-yysvec-1); allprint(yych); putchar('\n');w }# endif while (lsp-- > yylstate){u *yylastch-- = 0;)< if (*lsp != 0 && (yyfnd= (*lsp)->yystops) && *yyfnd > 0){ yyolsp = lsp; + if(yyextra[*yyfnd]){ /* must backup */ C while(yyback((*lsp)->yystops,-*yyfnd) != 1 && lsp > yylstate){ lsp--; unput(*yylastch--);) }  } yyprevious = YYU(*yylastch); yylsp = lsp; yyleng = yylastch-yytext+1; yytext[yyleng] = 0; # ifdef LEXDEBUG if(debug){ fprintf(yyout,"\nmatch ");  sprint(yytext);* fprintf(yyout," action %d\n",*yyfnd); }# endifN return(*yyfnd++); }e unput(*yylastch); }* if (yytext[0] == 0 /* && feof(yyin) */) { yysptr=yysbuf;e return(0); }# yyprevious = yytext[0] = input();e if (yyprevious>0)y output(yyprevious); yylastch=yytext;# ifdef LEXDEBUG if(debug)putchar('\n'); # endifp }  } yyback(p, m) int *p;{yif (p==0) return(0); while (*p) { if (*p++ == m)r return(1); } return(0);}u5 /* the following are only used in the lex library */g yyinput(){ return(input());e } yyoutput(c) int c; { output(c);a } yyunput(c) int c; {c unput(c); }//go.sysin dd *techo 'x - nf.c'e&sed 's/^X//' <<'//go.sysin dd *' >nf.cIX/* nf.c -- this program can be run to generate a new environment for thesN * FORTH interpreter forth.c. It takes the dictionary from the standard input.= * Normally, this dictionary is in the file "forth.dict", so  * nf < forth.dict * will do the trick.n */#include #include #include "common.h" ;#include "forth.lex.h" /* #defines for lexical analysis */ @#define isoctal(c) (c >= '0' && c <= '7') /* augument ctype.h */.#define assert(c,s) (!(c) ? failassert(s) : 1)B#define chklit() (!prev_lit ? dictwarn("Qustionable literal") : 1)#define LINK struct linkrecr#define CHAIN struct chainrec struct chainrec { char chaintext[32]; ) int defloc; /* CFA or label loc */ < int chaintype; /* 0=undef'd, 1=absolute, 2=relative */ CHAIN *nextchain; LINK *firstlink;};struct linkrec { int loc; LINK *nextlink;F};CHAIN firstchain;'5#define newchain() (CHAIN *)(calloc(1,sizeof(CHAIN)))t2#define newlink() 00Jtext, token->type);e #endif DEBUG switch (token->type) {C case PRIM:t #ifdef DEBUG printf("primitive "); #endif DEBUG; if ((token = yylex()) == NULL) /* get the next word */;$ dicterr("No word following PRIM"); strcpy (s,token->text); #ifdef DEBUG printf(".%s. ",s);S #endif DEBUG8 if ((token == yylex()) == NULL) /* get the value */, dicterr("No value following PRIM "); mkword(s,mkval(token)); break; case CONST: #ifdef DEBUG printf("constant ");o #endif DEBUG6 if ((token = yylex()) == NULL) /* get the word */% dicterr("No word following CONST");:0 strcpy (s,token->text); /* s holds word */ #ifdef DEBUG printf(".%s. ",s);t #endif DEBUG if (!find("DOCON"))5 dicterr ("Constant definition before DOCON: %s",s); 1 /* put the CF of DOCON into this word's CF */+ mkword(s,(int)mem[instance("DOCON")]);n7 if ((token = yylex()) == NULL) /* get the value */- dicterr("No value following CONST "); temp = mkval(token);a% /* two special-case constants */o/ if (strcmp(s,"FIRST") == 0) temp = INITR0;4 else if (strcmp(s,"LIMIT") == 0) temp = DPBASE; comma(temp); break;2 case VAR: #ifdef DEBUG printf("variable ");u #endif DEBUG? if ((token = yylex()) == NULL) /* get the variable name */ # dicterr("No word following VAR");r strcpy (s,token->text); #ifdef DEBUG printf(".%s. ",s);n #endif DEBUG if (!find("DOVAR"))5 dicterr("Variable declaration before DOVAR: %s",s);- mkword (s, (int)mem[instance("DOVAR")]);7 if ((token = yylex()) == NULL) /* get the value */+ dicterr("No value following VAR ");2 comma(mkval(token)); break;, case USER: #ifdef DEBUG printf("uservar "); #endif DEBUG: if ((token = yylex()) == NULL) /* get uservar name */$ dicterr("No name following USER"); strcpy (s,token->text); #ifdef DEBUG printf(".%s. ",s); #endif DEBUG if (!find("DOUSE"))7 dicterr("User variable declared before DOUSE: %s",s);- mkword (s, (int)mem[instance("DOUSE")]);7 if ((token = yylex()) == NULL) /* get the value */,, dicterr("No value following USER "); comma(mkval(token)); break;2 case COLON: #ifdef DEBUG printf("colon def'n "); #endif DEBUG: if ((token = yylex()) == NULL) /* g00JITHH+%O-%TADATADATAet name of word *// dicterr("No word following : in definition"); strcpy (s,token->text); #ifdef DEBUG printf(".%s.\n",s); #endif DEBUG if (!find("DOCOL"))9 dicterr("Colon definition appears before DOCOL: %s",s);< if (token->type == NUL) { /* special zero-named word */" int here = dp; /* new latest */ #ifdef DEBUG" printf("NULL WORD AT 0x%04x\n"); #endif DEBUG comma(0xC1); comma(0x80); comma(latest); latest = here;% comma((int)mem[instance("DOCOL")]); } else {* mkword (s, (int)mem[instance("DOCOL")]); } break;  case SEMICOLON: #ifdef DEBUG puts("end colon def'n"); #endif DEBUG comma (instance(";S")); break;2 case SEMISTAR: #ifdef DEBUG& printf("end colon w/IMMEDIATE "); #endif DEBUG= comma (instance (";S")); /* compile cfA of ;S, not CF */7< mem[latest] |= IMMEDIATE; /* make the word immediate */ break;1 case STRING_LIT:, #ifdef DEBUG printf("string literal ");, #endif DEBUG strcpy(s,token->text); 8 mkstr(s); /* mkstr compacts the string in place */ #ifdef DEBUG/ printf("string=(%d) \"%s\" ",strlen(s),s); #endif DEBUG comma(strlen(s)); { char *stemp; stemp = s;! while (*stemp) comma(*stemp++);, } break;,  case COMMENT: #ifdef DEBUG printf("comment "); #endif DEBUG skipcomment();, break; case LABEL: #ifdef DEBUG printf("label: "); #endif DEBUG# if ((token = yylex()) == NULL),% dicterr("No name following LABEL"); #ifdef DEBUG" printf(".%s. ", token->text); #endif DEBUG@ define(token->text,2); /* place in sym. table w/o compiling) anything into dictionary; 2 means9 defining a label */ break;4 case LIT:3 lit_flag = 1; /* and fall through to the rest */, default:,< if (find(token->text) != NULL) { /* is word defined? */ #ifdef DEBUG' printf(" normal: %s\n",token->text);9 #endif DEBUG% comma (instance (token->text));3 break; } /* else */ A /* the literal types all call chklit(). This macro checks to0; if the previous word was "LIT"; if not, it warns */  switch(token->type) {B case DECIMAL: chklit(); comma(mkdecimal(token->text)); break;: case HEX: chklit(); comma(mkhex(token->text)); break;> case OCTAL: chklit(); comma(mkoctal(token->text)); break;- case C_BS: chklit(); comma('\b'); break;0- case C_FF: chklit(); comma('\f'); break;,- case C_NL: chklit(); comma('\n'); break;,- case C_CR: chklit(); comma('\r'); break;,. case C_TAB: chklit(); comma('\t'); break;H case C_BSLASH: chklit(); comma(0x5c); break; /* ASCII backslash */< case C_LIT: chklit(); comma(*((token->text)+1)); break; default:, #ifdef DEBUG printf("forward reference"); #endif DEBUG9 comma (instance (token->text)); /* create an instance,,% to be resolved at definition */t } } #ifdef DEBUG( if (lit_flag) puts("expect a literal"); #endif DEBUG< prev_lit = lit_flag; /* to be used by chklit() next time */ lit_flag = 0; }s}+-comma(i) /* put at mem[dp]; increment dp */,{y" mem[dp++] = (unsigned short)i;5 if (dp > INITMEM) dicterr("DICTIONARY OVERFLOW");s}+X/*yI * make a word in the dictionary. the new word will have name *s, its CF2H * will contain v. Also, resolve any previously-unresolved references by * calling define()1 */s mkword(s, v)char *s;short v;{5 int here, count = 0;+ char *olds;8 olds = s; /* preserve this for resolving references */ #ifdef DEBUG printf("%s ",s); #endif DEBUG7 here = dp; /* hold this value to place length byte */+' while (*s) { /* for each character */y! mem[++dp] = (unsigned short)*s;, count++; s++; }< if (count >= MAXWIDTH) dicterr("Input word name too long"); /* set MSB on */# mem[here] = (short)(count | 0x80);+9 mem[dp++] |= 0x80; /* set hi bit of last char in name */3 y0 mem[dp++] = (short)latest; /* the link field */& l00&J= INITMEM) mem[LIMIT] = INITMEM-1;,} 2writedict() /* write memory to COREFILE and map  to MAPFILE */v{p FILE *outfile;/ int i, temp, tempb, firstzero, nonzero;8+ char chars[9], outline[80], tstr[6];r! outfile = fopen(MAPFILE,"w");,* for (temp = 0; temp < dp; temp += 8) { nonzero = FALSE;y" sprintf (outline, "%04x:", temp);$ for (i = temp; i < temp + 8; i++) {6 sprintf (tstr, " %04x", (unsigned short) mem[i]); strcat (outline, tstr); tempb = mem[i] & 0x7f;9& if (tempb < 0x7f && tempb >= ' ') chars[i % 8] = tempb;y else  chars[i % 8] = '.';+ nonzero |= mem[i];r } if (nonzero) {y2 fprintf (outfile, "%s %s\n", outline, chars); firstzero = TRUE; } elsey if (firstzero) {) fprintf (outfile, "----- ZERO ----\n");u firstzero = FALSE; } }m fclose (outfile);1D printf ("Writing %s; DPBASE=%d; dp=%d\n", COREFILE, DPBASE, dp);1 if ((outf = fopen (COREFILE, "w")) == NULL) { 6 printf ("nf: can't open %s for output.\n", COREFILE); exit (1); }0F if (fwrite (mem, sizeof (*mem), mem[LIMIT], outf) != mem[LIMIT]) {5 fprintf (stderr, "Error writing to %s\n", COREFILE);, exit (1); }, if (fclose (outf) == EOF) { 2 fprintf (stderr, "Error closing %s\n", COREFILE); exit (1); }1}09mkval(t) /* convert t->text to integer based on type */0 TOKEN *t;0{, char *s = t->text;1 int sign = 1; if (*s == '-') { sign = -1; s++; } switch (t->type) {0 case DECIMAL: return (sign * mkdecimal(s)); case HEX: return (sign * mkhex(s));, case OCTAL: return (sign * mkoctal(s)); default:e; dicterr("Bad value following PRIM, CONST, VAR, or USER");L }}hmkhex(s)char *s;({ /* convert hex ascii to integer */ int temp;u temp = 0;r" s += 2; /* skip over '0x' */9 while (isxdigit (*s)) { /* first non-hex char ends */y temp <<= 4; /* mul by 16 */f if (isupper (*s)) temp += (*s - 'A') + 10; else  if (islower (*s)) temp += (*s - 'a') + 10; elseG temp += (*s - '0'); s++;  }c return temp;}h mkoctal(s)char *s;*{ /* convert Octal ascii to integer */ int temp;; temp = 0;y: while (isoctal (*s)) { /* first non-octal char ends */ temp = temp * 8 + (*s - '0'); s++;y } return temp;}E-mkdecimal(s) /* convert ascii to decimal */Gchar *s;{) return (atoi(s)); /* alias */}y dicterr(s,p1)ichar *s;0int p1; /* might be char * -- printf uses it */{n fprintf(stderr,s,p1); / fprintf(stderr,"\nLast word defined was ");; printword(latest);FX/* fprintf(stderr, "; last word read was \"%s\"", token->text); */ fprintf(stderr,"\n");e exit(1);}t6dictwarn(s) /* almost like dicterr, but d00.JITHH+%O-%TADATADATAon't exit */char *s;{ ; fprintf(stderr,"\nWarning: %s\nLast word read was ",s);  printword(latest); putc('\n',stderr);}v printword(n)int n;{  int count, tmp;e count = mem[n] & 0x1f;! for (n++;count;count--,n++) {;1 tmp = mem[n] & ~0x80; /* mask eighth bit off */e1 if (tmp >= ' ' && tmp <= '~') putc(tmp, stderr);P } }s skipcomment()i{y while(getchar() != ')');} 5mkstr(s) /* modifies a string in place with escapes 1 compacted. Strips leading & trailing \" */nchar *s;{  char *source;  char *dest;& source = dest = s;( source++; /* skip leading quote */@ while (*source != '"') { /* string ends with unescaped \" */* if (*source == '\\') { /* literal next */ source++; } *dest++ = *source++;  }y *dest = '\0';f} failassert(s)dchar *s;{f puts(s); exit(1);}r3checkdict() /* check for unresolved references */t{r CHAIN *ch = &firstchain; #ifdef DEBUG. puts("\nCheck for unresolved references"); #endif DEBUG while (ch != NULL) { #ifdef DEBUG1 printf("ch->chaintext = .%s. - ",ch->chaintext);y #endif DEBUG if ((ch->firstlink) != NULL) {,H fprintf(stderr,"Unresolved forward reference: %s\n",ch->chaintext); #ifdef DEBUG puts("still outstanding");d #endif DEBUG } #ifdef DEBUG else puts("clean.");s #endif DEBUG ch = ch->nextchain; } } NX/********* structure-handling functions find(s), define(s,t), instance(s) **/<CHAIN *find(s) /* returns a pointer to the chain named s */char *s;{i CHAIN *ch;  ch = &firstchain; while (ch != NULL) { 0 if (strcmp (s, ch->chaintext) == 0) return ch; else ch = ch->nextchain; } return NULL; /* not found */;} HX/* define must create a symbol table entry if none exists, with type t.G if one does exist, it must have type 0 -- it is an error to redefine I something at this stage. Change to type t, and fill in the outstandingyF instances, with the current dp if type=1, or relative if type=2. */)define(s,t) /* define s at current dp */char *s;int t;{* CHAIN *ch;  LINK *ln, *templn;y #ifdef DEBUG printf("define(%s,%d)\n",s,t);0 #endif DEBUG& if (t < 1 || t > 2) /* range check */9 dicterr("Program error: type in define() not 1 or 2.");a; if ((ch = find(s)) != NULL) { /* defined or instanced? */2 if (ch -> chaintype != 0) /* already defined! */) dicterr("Word already defined: %s",s);= else { #ifdef DEBUG& printf("there are forward refs: "); #endif DEBUG ch->chaintype = t;( ch->defloc = dp;t }t }, else { /* must create a (blank) chain */ #ifdef DEBUG puts("no forward refs"); #endif DEBUG? /* create a new chain, link it in, leave ch pointing to it */}1 ch = ((lastchain() -> nextchain) = newchain());n strcpy(ch->chaintext, s);( ch->chaintype = t;6 ch->defloc = dp; /* fill in for future references */ }D /* now ch points to the chain (possibly) containing forward refs */: if ((ln = ch->firstlink) == NULL) return; /* no links! */ while (ln != NULL) { #ifdef DEBUG. printf(" Forward ref at 0x%x\n",ln->loc); #endif DEBUG switch (ch->chaintype) {2 case 1: mem[ln->loc] = (short)dp; /* absolute */ break;> case 2: mem[ln->loc] = (short)(dp - ln->loc); /* relative */ break;i2 default: dicterr ("Bad type field in define()"); }e1 /* now skip to the next link & free this one */  templn = ln; ln = ln->nextlink; free(templn);/ }7 ch->firstlink = NULL; /* clean up that last pointer */h}tX/*eE instance must return a value to be compiled into the dictionary atkE dp, consistent with the symbol s: if s is undefined, it returns 0,aJ and adds this dp to the chain for s (creating that chain if necessary).D If s IS defined, it returns (absolute) or (s-dp) (relative), + where was the dp when s was defined. */ instance(s)Kchar *s;{ CHAIN *ch;i LINK *ln; #ifdef DEBUG printf("instance(%s):\n",s);C #endif DEBUG; if ((ch =006J nextchain) = newchain());c strcpy(ch->chaintext, s);D& ln = newlink(); /* make its link */ ch->firstlink = ln;y0 ln->loc = dp; /* store this location there */ return 0; /* all done */  } else {r switch(ch->chaintype) {B! case 0: /* not defined yet */e #ifdef DEBUG) puts("still undefined -- add a link");e #endif DEBUG7 /* create a new link, point the last link to it, andu2 fill in the loc field with the current dp */4 (lastlink(ch)->nextlink = newlink()) -> loc = dp; return 0; case 1: /* absolute */ #ifdef DEBUG puts("defined absolute."); #endif DEBUG return ch->defloc;\ case 2: /* relative */ #ifdef DEBUG puts("defined relative.");_ #endif DEBUG return ch->defloc - dp; default:0 dicterr("Program error: bad type for chain"); }L }} FCHAIN *lastchain() /* starting from firstchain, find the last chain */{  CHAIN *ch = &firstchain;S2 while (ch->nextchain != NULL) ch = ch->nextchain; return ch;*}i:LINK *lastlink(ch) /* return the last link in the chain */3CHAIN *ch; /* CHAIN MUST HAVE AT LEAST ONE LINK */n{a LINK *ln = ch->firstlink;0 while (ln->nextlink != NULL) ln = ln->nextlink; return ln;h}iByywrap() /* called by yylex(). returning 1 means "all finished" */{ return 1;} //go.sysin dd *echo 'x - prims.c')sed 's/^X//' <<'//go.sysin dd *' >prims.clX/*nE * prims.c -- code for the primitive functions declared in forth.dictp */#include (#include /* used in "digit" */#include "common.h"i#include "forth.h")#include "prims.h" /* macro primitives */*X/*eA ----------------------------------------------------s1 PRIMITIVE DEFINITIONS)A ----------------------------------------------------a*/4zbranch() /* add an offset (branch) if tos == 0 */{r if(pop() == 0)  ip += mem[ip];s else:+ ip++; /* else skip over the offset */e}f'ploop() /* (loop) -- loop control */ {g short index, limit; index = rpop()+1;D if(index < (limit = rpop())) { /* if the new index < the limit */' rpush(limit); /* restore the limit */D1 rpush(index); /* and the index (incremented) */t4 branch(); /* and go back to the top of the loop */ }; else ip++; /* skip over the offset, and exit, having(" popped the limit & index */})+pploop() /* (+loop) -- almost the same */a{  short index, limit;7 index = rpop()+pop(); /* get index & add increment */a: if(index < (limit = rpop())) { /* if new index < limit */) rpush (limit); /* restore the limit */0- rpush (index); /* restore the new index */e- branch(); /* and branch back to the top */v } else {& ip++; /* skip over branch offset */ }}L4pdo() /* (do): limit init -- [pushed to rstack] */{g swap();  rpush (pop()); rpush (pop());} .i() /* copy top of return stack to cstack */{O int tmp; tmp = rpop();r rpush(tmp);R push(tmp);}wBr() /* this must be a primitive as well as I because otherwise it& always returns its own address */{a i();} -digit() /* digit: c -- FALSE or [v TRUE] */b{k? short c, base; /* C is ASCII char, convert to val. BASE isf! used for range checking */= base = pop();v c = pop(); if (!isascii(c)) { push (FALSE); return; }e /* lc -> UC if necessary */# if (islower(c)) c = toupper(c);i5 if (c < '0' || (c > '9' && c < 'A') || c > 'Z') {U push(FALSE); /* not a digit */ }s, else { /* it is numeric or UC Alpha */4 if (c >= 'A') c -= 7; /* put A-Z right after 0-9 */ c -= '0'; /* now c is 0..35 */ if (c >= base) {b, push (FALSE); /* FALSE - not a digit */ }+ else { /* OKAY: push value, then TRUE */e push (c); pus00>JITHH+%O-%TADATADATAh (TRUE);f } } }t>pfind() /* WORD TOP -- xx FLAG, where TOP is NFA to start at;7 WORD is the word to find; xx is PFA of found word;B+ yy is actual length of the word found;n= FLAG is 1 if found. If not found, 0 alone is stacked. */y{=> unsigned short worka, workb, workc, current, word, match; current = pop (); word = pop ();6 while (current) { /* stop at end of dictionary */, if (!((mem[current] ^ mem[word]) & 0x3f)) { /* match lengths & smudge */8 worka = current + 1;/* point to the first letter */ workb = word + 1;. workc = mem[word]; /* workc gets count */3 match = TRUE; /* initally true, for looping */n while (workc-- && match); match = ((mem[worka++] & 0x7f) == (mem[workb++] & 0x7f));D: if (match) { /* exited with match TRUE -- FOUND IT */. push (worka + 2); /* worka=LFA; push PFA */. push (mem[current]); /* push length byte */$ push (TRUE); /* and TRUE flag */ return;p } } /* failed to match */% /* follow link field to next word */ 4 current = mem[current + (mem[current] & 0x1f) + 1]; }D< push (FALSE); /* current = 0; end of dict; not found */}B enclose()a{r int delim, current, offset; delim = pop();  current = pop();a push (current); offset = -1; current--;Mencl1: current++; offset++;' if (mem[current] == delim) goto encl1;t push(offset); if (mem[current] == NULL) { offset++;( push (offset); offset--;  push (offset); return;L }encl2: current++;o offset++;' if (mem[current] == delim) goto encl4;k& if (mem[current] != NULL) goto encl2; /* mem[current] is null.. */b push (offset); push (offset);i return;)encl4: /* found the trailing delimiter */ push (offset);c offset++; push (offset);  return;}u,cmove() /* cmove: source dest number -- */{e" short source, dest, number, i; number = pop(); dest = pop();  source = pop();< for ( ; number ; number-- ) mem[dest++] = mem[source++];} %fill() /* fill: c dest number -- */e{  short dest, number, c; number = pop();  dest = pop();u c = pop();- mem[dest] = c; /* always at least one */{5 if (number == 1) return; /* return if only one */e9 push (dest); /* else push dest as source of cmove */t3 push (dest + 1); /* dest+1 as dest of cmove */t9 push (number - 1); /* number-1 as number of cmove */; cmove();}s)ustar() /* u*: a b -- a*b.hi a*b.lo */c{  unsigned short a, b; unsigned long c; a = (unsigned short)pop(); b = (unsigned short)pop(); c = a * b;A /* (short) -1 is probably FFFF, which is just what we want */kL push ((unsigned short)(c & (short) -1)); /* low word of product */% /* high word of product */w: push ((short)((c >> (8*sizeof(short))) & (short) -1));})4uslash() /* u/: NUM.LO NUM.HI DENOM -- REM QUOT */{i' unsigned short numhi, numlo, denom;tI unsigned short quot, remainder; /* the longs below are to be sure the ( intermediate computation is done& long; the results are short */ denom = pop(); numhi = pop(); numlo = pop();: quot = ((((unsigned long)numhi) << (8*sizeof(short)))  + (unsigned long)numlo)  / (unsigned long)denom;? remainder = ((((unsigned long)numhi) << (8*sizeof(short))) a + (unsigned long)numlo)  % (unsigned long)denom; push (remainder);h push (quot);} swap() /* swap: a b -- b a */{o short a, b;e b = pop(); a = pop(); push (b);D push (a);%},rot() /* rotate */r{  short a, b, c; a = pop ();t b = pop ();i c = pop (); push (b);* push (a); push (c);r}s2tfetch() /* 2@: addr -- mem[addr+1] mem[addr] */{r unsigned short addr; addr = pop();M push (mem[addr + 1]);r push (mem[addr]);m}d4store() /* !: val addr -- */{m unsigned short tmp;  tmp = pop(); me00FJ> (8*sizeof(short)))); /* sum hi */}("subtract() /* -: a b -- (a-b) */{ int tmp; tmp = pop(); push (pop() - tmp);}m'dsubtract() /* D-: double-subtract */g{n short ahi, alo, bhi, blo;m long a, b; bhi = pop(); blo = pop(); ahi = pop(); alo = pop();5 a = ((long)ahi << (8*sizeof(short))) + (long)alo;5 b = ((long)bhi << (8*sizeof(short))) + (long)blo;  a = a - b;: push ((unsigned short)(a & (short) -1)); /* diff lo */9 push ((short)(a >> (8*sizeof(short)))); /* diff hi */t}[0dminus() /* DMINUS: negate a double number */{t unsigned short ahi, alo; long a;= ahi = pop(); alo = pop();8 a = -(((long)ahi << (8*sizeof(short))) + (long)alo);9 push ((unsigned short)(a & (short) -1)); /* -a lo */oA push ((unsigned short)(a >> (8*sizeof(short)))); /* -a hi */ }t"over() /* over: a b -- a b a */{  short a, b;[ b = pop(); a = pop(); push (a);i push (b); push (a);u}ldup() /* dup: a -- a a */{ short a; a = pop(); push (a);t push (a);i} #tdup() /* 2dup: a b -- a b a b */s{r short a, b;} b = pop(); a = pop(); push (a);f push (b);D push (a);\ push (b);P}E7pstore() /* +!: val addr -- */ {p short addr, val; addr = pop();  val = pop(); mem[addr] += val;(}i1toggle() /* toggle: addr bits -- */{n short bits, addr;1 bits = pop();f addr = pop();E mem[addr] ^= bits;}Eless(){% int tmp; tmp = pop(); push (pop() < tmp); }vpcold() {i* csp = INITS0; /* initialize values */ rsp = INITR0;+ /* copy USER_DEFAULTS area into UP area */=& push (USER_DEFAULTS); /* source */ push (UP); /* dest */i" push (DEFS_SIZE); /* count */ cmove(); /* move! */! /* returns, executes ABORT */t}sprslw()u{e0 int buffer, flag, addr, i, temp, unwrittenflag; long fpos, ftell();+ char buf[1024]; /* holds data for xfer */c flag = pop(); buffer = pop(); addr = pop(); fpos = (long) (buffer * 1024);x /* extend if necessary */ if (fpos >= bfilesize) {*# if (flag == 0) { /* write */i: printf("Extending block file to %D bytes\n", fpos+1024);@ /* the "2" below is the fseek magic number for "beyond end" *// fseek(blockfile, (fpos+1024) - bfilesize, 2);m bfilesize = ftell(blockfile);  }* else { /* reading unwritten data */2 unwrittenflag = TRUE; /* will read all zeroes */ } } else { ? /* note that "0" below is fseek magic number for "relative to  beginning-of-file" */6 fseek(blockfile, fpos, 0); /* seek to destination */ } if (flag) { /* read *// if (unwrittenflag) { /* not written yet */e< for (i=0; i<1024; i++) mem[addr++] = 0; /* "read" nulls */ } else { /* does exist */: if ((temp = fread (buf, sizeof(char), 1024, blockfile))  != 1024) { fprintf (stderr, - "File read error %d reading buffer %d\n",t temp, buffer);l errexit();r }t.00NJUJTHH+%O-%TADATADATA for (i=0; i<1024; i++) mem[addr++] = buf[i]; } } else { /* write */a. for (i=0; i<1024; i++) buf[i] = mem[addr++];: if ((temp = fwrite (buf, sizeof(char), 1024, blockfile)) != 1024) {e fprintf(stderr,. "File write error %d writing buffer %d\n", temp, buffer);o errexit();  }& }} psave()m{s FILE *fp; printf("\nSaving..."); fflush(stdout);$ mem[SAVEDIP] = ip; /* save state */ mem[SAVEDSP] = csp; mem[SAVEDRP] = rsp;F if ((fp = fopen(sfilename,"w")) == NULL) /* open for writing only */> errexit("Can't open core file %s for writing\n", sfilename);5 if (fwrite(mem, sizeof(*mem), mem[0], fp) != mem[0]))+ errexit("Write error on %s\n",sfilename);* if (fclose(fp) == EOF)r+ errexit("Close error on %s\n",sfilename);o puts("Saved. Exit FORTH."); exit(0);}a//go.sysin dd *recho 'x - prims.h')sed 's/^X//' <<'//go.sysin dd *' >prims.heOX/* prims.h: This file defines inline primitives, which are called as functionsG$ from the big SWITCH in forth.c */! /* push mem[ip] to cstack */c##define lit() { push (mem[ip++]); }c( /* add an offset (this word) to ip */##define branch() { ip += mem[ip]; } /* return a key from input */#define key() { push(pkey()); }c( /* return TRUE if break key pressed */!#define qterminal() { pqterm(); } /* and: a b -- a & b */"'#define and() { push (pop() & pop()); }h /* or: a b -- a | b */&#define or() { push (pop() | pop()); } /* xor: a b -- a ^ b */('#define xor() { push (pop() ^ pop()); }i$ /* sp@: push the stack pointer */!#define spfetch() { push (csp); }i( /* sp!: load initial value into SP */$#define spstore() { csp = mem[S0]; }, /* rp@: fetch the return stack pointer */!#define rpfetch() { push (rsp); }s( /* rp!: load initial value into RP */$#define rpstore() { rsp = mem[R0]; }% /* ;S: ends a colon definition. */ #define semis() { ip = rpop(); } /* @: addr -- mem[addr] */i&#define fetch() { push (mem[pop()]); } /* C@: addr -- mem[addr] */.#define cfetch() { push (mem[pop()] & 0xff); } /* push to return stack */#define tor() { rpush(pop()); }l /* pop from return stack */"#define fromr() { push (rpop()); } /* 0=: a -- (a == 0) */&#define zeq() { push ( pop() == 0 ); } /* 0<: a -- (a < 0) */n'#define zless() { push ( pop() < 0 ); }N /* +: a b -- (a+b) */*#define plus() { push (pop () + pop ()); } /* MINUS: negate a number */o"#define minus() { push (-pop()); } /* drop: a -- */#define drop() { pop(); }f( /* DOCOL: push ip & start a thread */(#define docol() { rpush(ip); ip = w+1; }2 /* do a constant: push the value at mem[w+1] */$#define docon() { push (mem[w+1]); }9 /* do a variable: push (w+1) (the PFA) to the stack */g#define dovar() { push (w+1); }-A /* execute a user variable: add UP to the offset found in PF */h-#define douse() { push (mem[w+1] + ORIGIN); } ##define allot() { Callot (pop()); }p /* comparison tests */)#define equal() { push(pop() == pop()); }- /* not equal */r*#define noteq() { push (pop() != pop()); }! /* DODOES -- not supported */o8#define dodoes() { errexit("DOES> is not supported."); } /* DOVOC -- not supported */?#define dovoc() { errexit("VOCABULARIES are not supported."); }o' /* (BYE) -- exit with error code *//#define pbye() { exit(0); }e& /* TRON -- trace at pop() depth */4#define tron() { trace = TRUE; tracedepth = pop(); } /* TROFF -- stop tracing */l#define troff() { trace = 0; }//go.sysin dd *;@10 May 86 eps%EQL.Caltech.Edu@Hamlet.Caltech.Edu (Eric P. Scott)Re: VMS: ...image questions>"Possible" is not the same thing as "DEC-supported." It is in@fact quite possible to run another image in the same process and?then return control to your own code. Here is a little routine@that will execute a DCL command and then transfer control to the@program of your choice, which may or may not be the same program:that invokes this call. I'll assume you are familiar with<techniques for maintaini00VJ# assume cli$k_srvdesc gt 63% movab -cli$k_srvdesc(sp),sp movl 4(ap),r0& jsb g^lib$analyze_sdesc_r2 blbc r0,28$ cmpw r1,#256 bgequ 27$ movq r1,r6. movc5 #0,(sp),#0,#cli$k_srvdesc,(sp)! assume cli$b_rqtype eq 0" assume cli$w_servcod eq 1$ assume cli$k_command le 2555 movw #cli$k_cliserv!,(sp)# movw r6,cli$w_rqsize(sp)# movl r7,cli$a_rqaddr(sp) pushl sp calls #1,@#sys$cli blbc r0,40$ movl 8(ap),r0& jsb g^lib$analyze_sdesc_r2 blbc r0,28$ cmpw r1,#132 blequ 30$27$: movl #lib$_invarg,r0 28$: ret30$: movq r1,r6. movc5 #0,(sp),#0,#cli$k_srvdesc,(sp)! assume cli$b_rqtype eq 0" assume cli$w_servcod eq 1" assume cli$k_chain le 2553 movw #cli$k_cliserv!,(sp)# movw r6,cli$w_rqsize(sp)# movl r7,cli$a_rqaddr(sp) pushl sp calls #1,@#sys$cli blbs r0,50$=40$: cmpzv #sts$v_fac_no,#sts$s_fac_no,r0,#cli$_facility bneq 44$+ cmpw r0,# bneq 45$ movl #lib$_nocli,r0 44$: ret"45$: movl #lib$_uneclierr,r0 ret$50$: movab cli$k_srvdesc(sp),sp pushl s^#ss$_normal calls #1,@#sys$exit clrl r0 ret .endC10 May 86 CUNNINGHAMR%HAW.SDSCNET@LLL-MFE.ARPA, A DECUS trip reportA[A shortened version of my DECUS trip report for your amusement.]GENERAL COMMENTSJThe Dallas Convention Center was the largest such facility I've ever seen,Gand the joke that they should have issued us horses & compasses insteadHof cowboy hats didn't seem all that funny as the week wore on and I keptKwalking the .5+ mile or so back and forth to different ends of the complex.NAt Dallas -- my 2nd DECUS -- I found myself was able to spend more time in theFless formal sessions (the Birds-of-a-Feather and "campground" informalLmeetings), and the various question & answer sessions. Many of these seemed6more productive than some of the more formal sessions.JI think my organization got its money's worth out of sending me, but afterEanother DECUS or so this sort of thing will start reaching a point ofMdiminishing returns. My personal preference fron now on is to attend just theI"western" DECUS meetings once a year, starting with the next DECUS in SanFrancisco this October.GAs before, pre-purchasing most of the session notes proved to be a veryIgood investment. I also ended up ordering audio tapes for seven sessionsLI would have liked to attend, but couldn't make due to scheduling conflicts.NWhile I didn't get an official count, DECUS attendance seemed down (to perhapsJ< 5,000 from 6,000+ at Anaheim?). DEC's new policy of not making many newMproduct announcements at DECUS symposia probably had an effect, but I suspect7the industry-wide depression made more of a difference.UPCOMING DECUS SYMPOSIA86-10 Oct 1986 Moscone Center, San Francisco CA527 Apr - 1 May 1987 Opryland Hotel, Nashville, TN=7-11 Dec 1987 Anaheim Convention Cen00^JUJTHH+%O-%TADATADATAter, Anaheim CAC16-20 May 1988 Cincinnati Convention Center, Cincinnati OHGBoston is building a new convention center, and after 1988 we may see aIDECUS in the northeast. Until then, New York is apparently the only spotOwith adequate facilities ... and the consensus is that it's just too expensive.PRODUCT ANNOUNCMENTS AT DECUSFDigital had a "DECWORLD" presentation of new things back in March, andGannounced most of their new products then. In fact, they've officiallyOstated that they will no longer follow the longstanding practice of introducingHlots of new products at DECUS, but will announce new products separately,(or at special staged events like DECWORLD).%The only announcements I caught were:F LN03 PLUS, an expanded-memory version of the LN03 (also shouldG be available as an upgrade). Enough memory to bitmap an entireH page of output, provides Tektronix 4010/4014 plotting emulation.J (significiantly, does not yet provide POSTSCRIPT support, althoughM that might just happen later...). We're planning on getting a couple of them.B PRINTSERVER 40, a 40 page/minute (DEC calls this mid-rangeB speed!?) laser printer. Ethernet interface only, intendedE as a print server. Understands POSTSCRIPT. 300x300 dot/inchC resolution. 50,000 pages/month rated capacity, 2,000 sheet? feed bin (+ 2 auxiliary trays), 2 output trays. uVAX-IID controller and VT220 console. Printserver software downlineF loaded from a host VAX. Host server symbiont does translationD for non-postscript files: ANSI, LN03, REGIS, Tektronix 4010/ 4014 plotting.E TU81 PLUS. New version of TU81 (6250/1600bpi tape drive) with/ buffering to allow it to stream nicely.D VAXcluster console. Looked cute, I missed seeing any specs.A SIGNIFICANT NON-ANNOUNCEMENTMDEC had a "technology demonstration" that they emphasized "was not a product,Nwe only want your feed back at this time" consisting of a cluster of uVAX-II'sMand VAXstations (the workstation models of the uVAX-II with the nifty screens+and mouse -- rather like Sun workstations).IThe cluster used Ethernet, not star couplers. Thin-wire Ethernet, at thedemonstration.MThe way it works is to have one "boot member" (a uVAX in their demonstration,Kbut could be a larger VAX) which holds the common system disk, and downlineGboots the uVAXes via Ethernet. Other "core member" machines can handleOprinters and other utilities, but all systems software is on the "boot member".MThis makes the uVAX-IIs in the cluster "diskless" or potentially so. DigitalHrecommends having a small, fast hard disk on each for paging & swapping.II attended the session that described how they did it, and came away withOthe impression that the developers found it fairly simple. Multi-cast Ethernet7packets effectively replace a systems bus/star coupler.OIt works. Very well, in my opinion. I think this could well be an interestingKdevelopment for those of us with VAX 750s ... turn them into "core members"6of a cluster of uVAX-IIs and do some very nice things.=A lot of people at DECUS liked the idea of clustering uVAXes.SIGNIFICANT THINGS NOT SEEN4No sign of any new RA8n larger-capacity disk drives./No sign of any new higher-capacity tape drives.INTERESTING RUMORSNThe performance of uVAX-IIs in real applications varies more than I suspected.MSince it doesn't handle the full VAX instruction set in hardware, performanceDfor a given application can vary anywhere from 10% of, to 110%+ of a VAX-11/780.HExpect the uVAX-III (full VAX instruction set in hardware, probably even'faster than the uVAX-II) within a year.HThe 8600 was originally supposed to come out much earlier than the otherH8nnn processors, and in some ways isn't really part of the family of newF8nnn processors. Also notice that there is a bit of a gap between theG8600/8650 machine and the 8800fJ$ Goto Cant_Ini !Sigh.$sO$ Mount_Tape: !Here to mount the tapes$hG$ Mount TAPE: 'Node' !Mount the tapetJ$ Err_Status = $STATUS !Retain the status=$ If .not. Err_Status Then Goto Cant_Mount !Huh?p$t'$ ! Catch the save set from the networkn$tK$ Run SYS$SYSTEM:NetBackup !Catch the save setNH$ Err_Status = $STATUS !Save the status=$ If .not. Err_Status Then Goto Backup_Lost !Sighp$t$ ! We're done$dC$ Request "Backup is done!" !We're doneo$ I$ Clean_Up: !Here to clean upp$tK$ Dismount TAPE: !Dismount the tapreoK$ Deallocate TAPE: !Let go of the tapen=$ Exit !Ciaox$18$ ! Here when we can't allocate the specified tape drive$oP$ No_Tape_Avl: !Can't allocate the tape$yJ$ Own_PID = F$GetDVI(P1,"PID") !Get the owner PIDS$ Own_Process = F$GetJPI(Own_PID,"PRCNAM") !Get the owner process nameeQ$ Request "Can't allocate ''P1', it's owned by ''Own_Process' (''Own_PID')"g<$ Exit !Bye$l*$ ! Here when we can't initialize the tape$oR$ Cant_Ini: !Can't initialize the tape$ K$ Request "Can't initialize ''P1', to wit: ''F$Message(Err_Status)'"n<$ Goto Clean_Up !Bye$l%$ ! Here when we can't mount the tapem$sM$ Cant_Mount: !Can't mount the tapec$hF$ Request "Can't mount ''P1', to wit: ''F$Message(Err_Status)'"<$ Goto Clean_Up !Bye$e$ ! Here when backup losti$$ Backup_Lost:$ J$ Request "Backup crapped out, viz: ''F$Message(Err_Status)'" !Sigh.=$ Goto Clean_Up !CiaomP---------------------------------NetBackup.MAR----------------------------------/ .Title NetBackup - DECnet based backup .Ident /V01.000/m .Enable SUPh" .Default Displacement,Word$ .Subtitle Introduction;+;n'; ----- NetBackup: DECnet based backupo;V;I ; Facility:e;r5; VAX/VMS system management, backup procedures.e;f ; Abstract:V;sF; This routine will operate as a network server to catch saveF; sets from systems which do not have tape drives. This routine.; requires some help from NetBackup.COM.;-; Environment:;t0; VAX/VMS V4.0 or later, NETMBX privilege.;h;l; Version: V01.000n; Date: 21-Jan-1986;o#; Gerard K. Newman 21-Jan-1986r$; Science Applications International; 800 Oak Ridge Turnpike; Oak Ridge, TN 37830; (615) 482-9031;a; ; Modifications:; ;X;- .Page) .Subtitle Local definitionso4 .NoCross ;Save a tree; $IODEF ;I/O function codesr1 $RMSDEF ;RMS junkn= $SSDEF 00J$DEF BBH$L_NUMBER .Blkl ;Block sequence number/$DEF BBH$B_FILL1 .Blkb 20 ;Spares D$DEF BBH$K_COMMON ;Length of the common headerO$DEF BBH$W_STRUCLEV ;Structure level, which is composed of: >$DEF BBH$B_STRUCVER .Blkb ;The structure version<$DEF BBH$B_STRUCLEV .Blkb ;The structure levelE$EQU BBH$K_LEVEL1 257 ;Structure level 1, version 1a6$DEF BBH$W_VOLNUM .Blkw ;Volume number2$DEF BBH$L_CRC .Blkl ;Block CRC3$DEF BBH$L_BLOCKSIZE .Blkl ;Block sizei.$DEF BBH$L_FLAGS .Blkl ;Flags=$DEF BBH$T_SSNAME .Blkb 32 ;.Ascic save set namen4$DEF BBH$W_FID ;Current FID;$DEF BBH$W_FID_NUM .Blkw ;File header numbert=$DEF BBH$W_FID_SEQ .Blkw ;File sequence number ?$DEF BBH$W_FID_RVN ;Relative volume numberu?$DEF BBH$B_FID_RVN .Blkb ;Relative volume numberlR$DEF BBH$B_FID_RVX .Blkb ;Relative volume file header extension (?)4$DEF BBH$W_DID ;Current DID@$DEF BBH$W_DID_NUM .Blkw ;Directory header numberB$DEF BBH$W_DID_SEQ .Blkw ;Directory sequence numberI$DEF BBH$W_DID_RVN ;Directory relative volume numbere.$DEF BBH$B_DID_RVN .Blkb ;DittoR$DEF BBH$B_DID_RVX .Blkb ;Relative volume file header extension (?):$DEF BBH$T_FILENAME .Blkb 128 ;Current file nameH$DEF BBH$B_RTYPE .Blkb ;Record type of the current file:$DEF BBH$B_RATTRIB .Blkb ;Record attributesH$DEF BBH$W_RSIZE .Blkw ;Record size of the current fileH$DEF BBH$B_BKTSIZE .Blkb ;Bucket size of the current fileE$DEF BBH$B_VFCSIZE .Blkb ;VFC size of the current fileuP$DEF BBH$W_MAXREC .Blkw ;Maximum record size of the current fileK$DEF BBH$L_FILESIZE .Blkl ;Size of the current file in blockst1$DEF BBH$T_RESERVED2 .Blkb 22 ;Reserved8$DEF BBH$W_CHECKSUM .Blkw ;Header checksumJ$DEF BBH$K_LENGTH ;Length of the Backup Block HeaderG $DEFEND BBH ;End of the Backup Block HeadersI; Buffer size we allocate to catch blocks from the network. Do not make I; this bigger than 32K, as VMS can't cope with transfers larger than thatd; from DECnet.LMAX_BUFF = 32768 ;Largest buffer we care to cope with .Page & .Subtitle Impure storage; .Psect IMPURE_DATA NOEXE,RD,WRT,PIC,NOSHR,PAGE C; RMS control blocks to create the file on our tape drive. This isfC; easier to do than trying to figure out how to use the ACP QIO ; interface.GTAPE_FAB: $FAB - ;FAB for the tape driveB DNM=,- ;Default file name= FAC=,- ;Write accessrB FNA=NODE_BUFF,- ;File name addressB FOP=,- ;Let me do the I/OE RFM= ;Fixed length recordsa ; Random datas?NET_CHAN: .Blkw ;Channel to the networkD@IOSB: .Blkq ;Random I/O status block:BUFF_DESC: .Long MAX_BUFF,0 ;Buffer descriptor2NODE_DESC: .Lon00JUJTHH+%O-%TADATADATAg 64 ;Node name4 .Address NODE_BUFF ; descriptor@NODE_BUFF: .Blkb 64 ;Space for our node name .Page $ .Subtitle Pure storage; .Psect PURE_DATA NOEXE,RD,NOWRT,PIC,SHR,PAGEl; Random stringsGSYS$NET: .Ascid "SYS$NET" ;To confirm our connecto .Page # .Subtitle Entry point(9 .Psect CODE EXE,RD,NOWRT,PIC,SHR,PAGEm3 .Entry START,^M<> ;Entry hereb5; First things first. Confirm our DECnet connection.r9 $ASSIGN_S DEVNAM=SYS$NET,- ;Assign a channelSC CHAN=NET_CHAN ; to confirm the connectionl8 BLBC R0,10$ ;Die if we can't<; Allocate a buffer big enough to hold onto backup save sets@ PUSHAL BUFF_DESC+4 ;Return the address hereA PUSHAL BUFF_DESC ;We need this much memory @ CALLS #2,G^LIB$GET_VM ;Go allocate some memory. BLBC R0,10$ ;Sigh.; MOVQ BUFF_DESC,R10 ;Address our bufferaR; Read the Backup Block Header record to find out how big to make the blocks, etc.> $QIOW_S CHAN=NET_CHAN,- ;Read from the network= FUNC=#IO$_READLBLK,- ; to find out how big5= IOSB=IOSB,- ; to make our blocks: P1=(R11),P2=R10 ;Put the data here< MOVZWL IOSB,R0 ;Grab the I/O status9 BLBS R0,20$ ;Branch if we woni710$: BRW 50$ ;Leave if error 1; Fill in the block size and maximum record size.s220$: $FAB_STORE FAB=TAPE_FAB,- ;Store the6 BLS=BBH$L_BLOCKSIZE(R11),- ;Block size= MRS=BBH$L_BLOCKSIZE(R11) ;Maximum record sizedF; Use the node name as the save set name, as the save set name in theA; BBH looks a lot like "Task=NetBackup", which is no good at all.o4 $TRNLOG_S LOGNAM=SYS$NET,- ;Get the NCB4 RSLBUF=NODE_DESC,- ;Put it here? RSLLEN=NODE_DESC ;Tell me how long it is(F MOVQ NODE_DESC,R0 ;Grab a copy of the descriptorG LOCC #^A/:/,R0,(R1) ;See if we can find a node nameiL SUBL3 R0,NODE_DESC,R1 ;Compute the length of the node name2 $FAB_STORE FAB=TAPE_FAB,- ;Store the; FNS=R1 ;Save set name sizeJ; Create the file, but let me do I/O to it. Use RMS, as it's a lot easier'; than the QIO interface to the ACPs...y8 $CREATE FAB=TAPE_FAB ;Create the fileO BLBS R0,40$ ;Branch into the rest of this if we wonT7 RET ;Lose otherwise'H; Ok - now all we have to do is to loop copying records from the networkH; into our file. When we deassign the channel at the end of all of this; we should be just fine.e<30$: $QIOW_S CHAN=NET_CHAN,- ;Read another record: FUNC=#IO$_READLBLK,- ; from the network8 IOSB=IOSB,- ;I/O status here7 P1=(R11),P2=R10 ;Buffer is here ; MOVZWL IOSB,R0 ;Get the I/O status A BLBC R0,50$ ;Maybe the other guy quit L40$: MOVZWL IOSB+2,R1 ;Get the size of the buffer to write4 $QIOW_S CHAN=TAPE_FAB+FAB$L_STV,- ;Write out: FUNC=#IO$_WRITEVBLK,- ; the next block8 IOSB=IOSB,- ; on the tape3 P1=(R11),P2=R1 ; ...e; MOVZWL IOSB,R0 ;Get the I/O statuse; BLBS R0,30$ ;Loop if successful C50$: CMPL #SS$_LINKDISCON,R0 ;Did the other guy go away?gA BEQL 60$ ;If EQL yes, not an erroreD CMPL #SS$_LINKABORT,R0 ;This happens sometimes, too= BNEQ 00JJH H6%! ! 70$ ;Must be a real errorw:60$: MOVL #SS$_NORMAL,R0 ;Else not an errorP70$: RET ;Back to DCL (all deassigns done for me) .End STARTf[end of message]------- .10 May 86 CUNNINGHAMR%HAW.SDSCNET@LLL-MFE.ARPA"Re: A DECUS trip report (addendum)EI did forget to mention that "Low End Clusters" (LEC) is the officialS@name for the uVAX clustering via Ethernet scheme. Also, VAX/VMS!disk shadowing is real and works.rBob Cunningham/*#define TESTING*//* * k b i n . c *M * Read tt: one byte at a time without echo, with or without waiting if there * is no typeahead. * * Synopsis * * int * _kbin(wait) * int wait; * * int * kbin() * * int * kbinr_() * * Description *G * Returns the next character. Returns EOF on error, or if there is no) * typeahead and "no wait" was requested. *@ * _kbin(wait) waits if wait is TRUE, returns EOF if there is noC * typeahead and wait is FALSE. kbin() is the same as _kbin(TRUE);' * kbinr() is the same as _kbin(FALSE). *@ * Note -- this routine does not prevent CTRL/C or CTRL/Y aborts * from occurring. * * Revision History; * 0.0 19-Jun-79 SB Original version due to Stoney Ballard. * 0.1 19-Oct-79 MM "Munged"., * 0.2 31-Aug-81 MM Name changed to kbin().) * 1.0 ??-???-?? MM Made part of VAXLIB.I * 1.1 22-Jul-83 JSL Old kbin() ==> _kbin() and gets the "wait" argument;) * kbin(), kbinr() in terms of _kbin(). */#include #include #include #include #define FALSE 0#define TRUE 1 #define EOS 03#define BUFFLEN 10 /* Size of typeahead buffer *//* * Local static database: */Astatic $DESCRIPTOR(inpdev, "TT"); /* Terminal to use for input */7static long termset[2] = { 0, 0 }; /* No terminator *//* * Local variables */6static long ichan; /* Gets channel number for TT: */4static char opened = FALSE; /* TRUE when opened */;static char ibuff[BUFFLEN]; /* Input buffer -- one byte */<static char *buffptr = ibuff; /* For typeahead processing */<static char *buffend = ibuff; /* For typeahead processing */int _kbin(wait) int wait;/*9 * Get one byte without echoing, with or without waiting. */{ register int errorcode; struct IOSTAB { short int status;! short int offset_to_terminator; short int terminator; short int terminator_size; } iostab; if (buffptr < buffend)A return (*buffptr++ & 0377); /* Empty our typeahead buffer */ if (!opened) {I if ((errorcode = sys$assign(&inpdev, &ichan, 0, 0)) != SS$_NORMAL) {A fprintf(stderr, "KBIN assign failed. code = %X\n", errorcode); exit(errorcode); } else opened = TRUE; } /*; * See if there's something in the system typeahead bufferB * Read up to BUFLEN bytes with "zero" timeout. This will returnF * whatever's in the timeout buffer. The iostab.offset_to_terminatorC * and iostab.terminator_size will yield the number of bytes read. */- errorcode = sys$qiow(1, /* Event flag */ ichan, /* Input channel */9 IO$_READLBLK | IO$M_NOECHO | IO$M_NOFILTR | IO$M_TIMED,$ /* Timed read with zero wait */# &iostab, /* I/O status block */! NULL, /* AST block (none) */ 0, /* AST parameter */$ &ibuff, /* P1 - input buffer */% BUFFLEN, /* P2 - buffer length */# 0, /* P3 - ignored (timeout) */' &termset, /* P4 - terminator set */, NULL, /* P5 - ignored (prompt buffer) */00JJTHH+%O-%TADATADATA( 0); /* P6 - ignored (prompt size) */#ifdef TESTING- printf("timed read code = %X, ", errorcode);A printf("status = %d, offset = %d, terminator = %d, size = %d\n",- iostab.status, iostab.offset_to_terminator,- iostab.terminator, iostab.terminator_size);#endifH buffend = &ibuff[iostab.offset_to_terminator + iostab.terminator_size]; if (buffend > ibuff) {; buffptr = &ibuff[1]; /* Setup typeahead pointer and */? return (ibuff[0] & 0377); /* Return the first character */ } /*C * Nothing in typeahead buffer, nothing read. If the user doesn't> * want us to wait, just return EOF; else read one character. */ if (!wait) return (EOF);- errorcode = sys$qiow(1, /* Event flag */ ichan, /* Input channel */, IO$_READLBLK | IO$M_NOECHO | IO$M_NOFILTR,& /* Read, no echo, no translate */# &iostab, /* I/O status block */! NULL, /* AST block (none) */ 0, /* AST parameter */$ &ibuff, /* P1 - input buffer */ 1, /* P2 - buffer length */# 0, /* P3 - ignored (timeout) */' &termset, /* P4 - terminator set */, NULL, /* P5 - ignored (prompt buffer) */( 0); /* P6 - ignored (prompt size) */#ifdef TESTING5 printf("read one byte, code = %X, ", errorcode);E printf("status = %d, offset = %d, terminator = %d, size = %d\n",- iostab.status, iostab.offset_to_terminator,- iostab.terminator, iostab.terminator_size);#endif if (errorcode == SS$_NORMAL) { return (ibuff[0] & 0377); } else { return (EOF); }}intkbin()/*. * Get one byte without echoing, with waiting. */{ return (_kbin(TRUE));}intkbinr()/*1 * Get one byte without echoing, without waiting. */{ return (_kbin(FALSE));}#ifdef TESTINGmain() { register int datum;- printf("kbin() testing - CTRL/Z to exit\n");" while ((datum = kbin()) != EOF) { printf("%03o '", datum); dumpc(datum); printf("'\n"); if (datum == ('Z' - 0100)) break; } printf("EOF\n");. printf("kbinr() testing - CTRL/Z to exit\n"); while (1) { datum = kbinr(); if (datum == EOF)# { printf("EOF - sleeping..."); sleep(2); printf("\n"); continue; } printf("%03o '", datum); dumpc(datum); printf("'\n"); if (datum == ('Z' - 0100)) break; } printf("EOF\n");} dumpc(datum) int datum;/* * Dump a character readably */{ datum &= 0377; if ((datum & 0200) != 0) { putchar('~'); datum &= 0177; } if (datum < ' ') { putchar('^'); putchar(datum + '@'); } else if (datum > 0176) { printf(""); } else putchar(datum);}#endif% VAX-11 Librarian V04-00@BE`VE J 5 HELP00JJH H6%! !`VE1 HELPR lqqqqqqqqwqqqqqqqqwqqqqqqqqwqqqqqqqqk lqqqqqqqqwqqqqqqqqwqqqqqqqqwqqqqqqqqka x UP x DOWN xSHFT LFTxSHFT RGTx x x x FNDNXT xNEXTFILExY x x x x x x  GOLD x HELP x x x x MSG UP xMSG DOWNxSHFT MSGxSHFT MSGx x x x FIND xNEW FILExN mqqqqqqqqvqqqqqqqqvqqqqqqqqvqqqqqqqqj tqqqqqqqqnqqqqqqqqn qqqqqqqqnqqqqqqqquX VT100 / VT200 ARROW KEYS x PAGE x SECTIONx SEETAB xPRNTFILExN x x x x xr lqqqqqqqqwqqqqqqqqqqqqqqqqqk x COMMANDx SEEALL xNOSEEALLxDEL FILExN x x x tqqqqqqqqnqqqqqqqqnqqqqqqqqnqqqqqqqquZ x HELP x DO COMMAND x x ADVANCEx BACKUP x CUT x NARROW xN x x  x x x x x xr mqqqqqqqqvqqqqqqqqqqqqqqqqqj x BOTTOM x TOP xERASECUTx WIDE xN lqqqqqqqqwqqqqqqqqwqqqqqqqqk tqqqqqqqqnqqqqqqqqnqqqqqqqqnqqqqqqqquT x FIND x x x x x xWRITECUTx SPLIT xP x x x x x x x x SCREEN xx x x x x x x  x x qq xP tqqqqqqqqnqqqqqqqqnqqqqqqqqu tqqqqqqqqvqqqqqqqqnqqqqqqqqu SWAP xV x SELECT x PREV x NEXT x x  NEXT LINE x SELECT x SCREEN xR x x SCREEN x SCREEN x x x x x~ x x x x x SHOW CUT BUFFER x RESET x UNSPLITxO mqqqqqqqqvqqqqqqqqvqqqqqqqqj mqqqqqqqqqqqqqqqqqvqqqqqqqqvqqqqqqqqjH V00JJJH+%O-%TADATADATAT200 AUXILIARY KEYPAD VT100 / VT200 MAIN KEYPADwwLST/-FP/CP=LST/ TASK=...LSTASG=TI:1:3:5:6//! .TITLE LIST ;MULTI-COLUMN LISTER; CHANGE THE VERSON NUMBER! .SBTTL DEFINITIONS! .IDENT /860113/ ;MODIFIED BY GCE:;TO OMIT FORM FEED ON FIRST .OPEN, REMOVE ";" IN NEXT LINE ; NOFF1=0@;THIS VERSION TABS 8 COLUMNS AND ALLOWS LINE TRUNCATION BY "/TR"$;HEADER CAN BE OMITTED BY /NH SWITCHR0=%0R1=%1R2=%2R3=%3R4=%4R5=%5SP=%6PC=%7SPACE=40XCR=15XLF=12XFF=14=;THE FOLLOWING TWO SYMBOLS ARE ONLY USED TO SET BUFFER SIZES.%;THEY REPRESENT THE MAXIMUM PAGE SIZE?;FOR WHICH THE PROGRAM WILL WORK WITHOUT ERROR. THE OUTPUT PAGE6;SIZE MAY BE LESS THAN OR EQUAL TO THE SIZE SPECIFIED.:MAXWID=240. ;MAXIMUM # PRINTABLE CHARACTERS IN OUTPUT LINE% ;I.E., NOT COUNTING TRAILING CR, LF%MAXLIN=88. ;MAXIMUM # LINES ON A PAGE/ .MCALL CSI$,FSRSZ$,GCMLB$,GCMLD$;RSX11D MACROS- .MCALL CSI$1,CSI$2,RCML$,GCML$,OPEN$R,OPEN$W .MCALL CLOSE$,GET$,PUT$. .MCALL FDBDF$,FDAT$A,FDRC$A,FDOP$A;FDB MACROS CSI$ .PSECT ZPDTR,RWCSBLK: .BLKB C.SIZE .EVEN .word 0,0,0,0! FSRSZ$ 5. ;3 FILES AT A TIME MAX); FOLLOWING MEANS ASSIGN TI: TO 1 BY TKB. .WORD 0,0,0,0 GCMLD$ ;DEFINE OFFSETS$CMD: GCMLB$ 2,LST,WRKBUF,3,PDLL,258.@; LUN 1, BIIIIG INPUT BUFFER (ALLOWS LOTS OF SCREWING AROUND...); LUN 3 IS TERMINAL NOW... .EVEN .WORD 0,0,0,0PDLL: .BLKB G.LPDL .EVEN .WORD 0,0,0,0 .WORD 0,0,0,0 .BLKW 256.; .MACRO WRITE LINK,BUFF,?LBL6; FAKE DOS-11 WRITE CALL WITH BUFFER HDR AND LINKBLOCK& MOV BUFF,-(SP) ;STACK LINE BUFFER ADR% MOV LINK,-(SP) ;STACK LINK BLOCK ADR1 BIT #SW.RL,SWITCH ;WANT CONSTANT LENGTH RECORDS? BEQ LBL ; NO JSR PC,COPYRL ; YES, PAD BUFFER!LBL: JSR PC,RSXWRT ;WRITE VIA RSX CMP (SP)+,(SP)+ ;CLEAN STACK DECB ROLL ;COUNT LINE .ENDM; 6;RSX11D WRITING SUBROUTINE, CALLED AS FOR A DOS WRITE.1;DECODES COMAND AND FIXES BUFFER HEADER A LA DOS.6;N.B.--TREATS A READ OF A ZERO LENGTH RECORD AS A FLAG8;THAT ENDFILE HAS BEEN SEEN, FOR LACK OF A BETTER WAY TO;DO IT.LSTPP: .ASCII /LST>/ .PSECT RCODE,RORSXWRT: MOV R0,-(SP)& CLR -(SP) ;FIND SOME MORE WORK SPACE' MOV 10(SP),R0 ;BUFFER HDR ADDR OF CALL2 MOV 4(R0),@SP ;SIZE OF BUFFER (NEEDED FOR OUTPUT) SUB #2,@SP ;NO CRLF OUT./ ADD #6,10(SP) ;POINT PAST HEADER TO DATA OR TO ;POINTER TO DATADUMP=4 ;DOS DUMP MODE BIT" BIT #DUMP,2(R0) ;IS IT DUMP MODE?! BEQ 1$ ;NO, 10(SP) IS DATA ADDR+ MOV @10(SP),10(SP) ;YES, GET DATA ADDR NOW/1$: PUT$ 6(SP),10(SP),(SP),ERR1 ;WRITE THE DATA TST (SP)+ ;RESTORE STACK MOV (SP)+,R0 ;AND CALL R0 RTS PC ;(THO' NOT COND CODES);<;RSXRED--READ A BUFFER WITH FDB ON STACK INSTEAD OF DOS LINK';OTHERWISE USES DOS BUFFER HEADER JUNK ; SETS CORRECT DOS BITS.'RSXRED: MOV R0,-(SP); ;GET A REG TO USE CLR -(SP) ;AND A CELL ON STACK MOV 10(SP),R0 ;CALL BUFFER HDR% BICB #100,3(R0) ;CLEAR EOF INDICATOR MOV @R0,@SP ;ADDR OF MAX SIZE, ADD #6,10(SP) ;POINTER DATA OR ADDR OF DATA3 BIT #DUMP,2(R0) ;TEST DUMP MODE (ADDRESS OF BUFFER* ; FOLLOWS HDR BLK IN DUMP MODE. BUFFER# ; FOLLOWS HDR DIRECTLY IF NOT.), B00JJH H6%! !EQ 1$ ;NOT DUMP MODE; 10(SP) IS DATA ADDR6 MOV @10(SP),10(SP) ;DUMP MODE. GET DATA ADDR TO STACK/1$: MOV R0,-(SP) ;NEED R0 AFTER READ SO SAVE IT ;IN CASE GET$ SCREWS IT UP. GET$ 10(SP),12(SP),2(SP) BCC 3$ ;CHECK EOF# CMPB #IE.EOF,F.ERR(R0) ;SEE IF EOF BNE 3$ ;IF NOT, IGNORE ERR# MOV @SP,R0 ;ELSE RETRIEVE POINTER- BISB #100,3(R0) ;AND SET THE END-OF-FILE BIT3$:% MOV (SP)+,R0 ;RESTORE BUFHDR POINTER MOV 6(SP),-(SP) ;FDB POINTER) ADD #F.NRBD,@SP ;ADDR OF BYTE COUNT READ! MOV @0(SP),@SP ;GET # BYTES READ# MOV @SP,4(R0) ;SAVE IN BUFFER HDER MOV (SP)+,(SP) ;GET ADDR OF END ADD 10(SP),(SP) ;OF DATA MOV R5,-(SP) ;USE R5 A SEC... MOV 10(SP),R5 ;FDB ADDRA BITB #3,F.RATT(R5) ;SEE IF INTERNAL C.C. FILE (AS PIP DIRECTORY)1 BNE 11$ ;NO, SO OUR TERMINATORS OUGHT TO BE OK.J;IF INTERNAL CARRIAGE CONTROL HAS LEADING CRLF, MAKE IT NULLS. REST OF LST2;EXPECTS TRAILING TERMINATORS, NOT LEADING ONES...% MOV 12(SP),R5 ;START OF DATA ADDRESS CMPB (R5),#16 ;TERMINATOR? BHIS 2$ ;NO% CMPB @R5,#11 ;TAB AND LOWER STAY OK BLOS 2$ CLRB @R5 ;YES, NULL IT. 2$: INC R50 CMPB (R5),#16 ;CHECK 2ND CHAR AS TERMINATOR TOO BHIS 11$$ CMPB @R5,#11 ;TEST BELOW AND ABOVE BLOS 11$& CLRB @R5 ;IF TERMINATOR MAKE IT NULL11$:A;IF SKIPPING LETTERS ON INPUT, NULL OUT N CHARS AT START OF LINE., BIT #SW.SL,SWITCH ;SKIPPING CHARS ON INPUT? BEQ 21$ ;NO, NO ACTION MOV R5,-(SP) ;SAVE R4,R5 MOV R4,-(SP) MOV SKPLTR,R5 ;CHARS TO SKIP BGT 22$" CLR R5 ;DEFAULT TO 0 IF NEGATIVE/22$: CMP R5,4(R0) ;DON'T NULL MORE THAN WE READ BLO 23$ ;IF OK, BRANCH3 MOV 4(R0),R5 ;R5 HAS # TO NULL (FLUSHED ON OUTPUT))23$: MOV 16(SP),R4 ;ADDR OF START OF DATA24$: CLRB (R4)+ ;NULL A BYTE DEC R5& BGT 24$ ;DO ALL THAT WHICH WAS ASKED MOV (SP)+,R4 ;RESTORE R4,R5 MOV (SP)+,R5 ;21$: .IF NDF,M..RS( BIT #SW.RI,SWITC2 ;RIGHT SHIFTING DATA? BEQ 120$ ;IF EQ NO, SKIP MOV R5,-(SP) MOV R4,-(SP)% MOV 16(SP),R4 ;ADDR OF START OF DATA;R0 = BUFFER HEADER STILL.;4(R0)= # CHARS READ IN MOV R1,-(SP)" MOV R2,-(SP) ;NEED SOME MORE REGS MOV R3,-(SP)$ MOV RIVAL,R1 ;NO. TO SHIFT RIGHT BY" BIC #^C37,R1 ;MASK TO 0-31 SPACES MOV R4,R5+ ADD 4(R0),R5 ;R5 = ADDR OF END OF DATA + 1 MOV R5,R2 ;COPY TO R2" ADD R1,R5 ;POINT R5 PAST OLD END MOV 4(R0),R3 ;GET SIZE AGAIN; DEC R3 BLE 118$&119$: MOVB -(R2),-(R5) ;COPY STRING UP DEC R3 BGT 119$ ;FOR ALL WE GOT,118$: ADD R1,4(R0) ;ADD IN THE NEW SIZE SEEN% ADD R1,14(SP) ;ADD SIZE ON STACK TOO6117$: MOVB #40,(R4)+ ;FILL SPACES INTO FRONT OF RECORD DEC R1 BGT 117$ MOV (SP)+,R3 MOV (SP)+,R2 MOV (SP)+,R1 MOV (SP)+,R4 MOV (SP)+,R5120$: .ENDC MOV (SP)+,R5 ;RESTORE R5D; ADD CODE TO PERMIT /MS COMPRESS SPACES SWITCH (NULL ALL BUT 1ST OF; MULTIPLE SPACES% BIT #SW.NS,SWITC2 ;NO SPACES READIN?! BNE 334$ ;IF SO ENTER THIS CODE, BIT #SW.MS,SWITCH ;NULLING MULTIPLE SPACES? BEQ 30$ ;NO, BRANCH334$: MOV R5,-(SP)/ MOV R4,-(SP) ;YES, SAVE A FEW REGS TO USE HERE MOV R2,-(SP) MOV R3,-(SP)% MOV 4(R0),R3 ;GET # CHARS WE READ IN1 MOV 20(SP),R4 ;AND ADDRESS OF START OF LINE READ- CLR R5 ;LAST CHARACTER READ STORAGE HERE...#32$: MOVB (R4)+,R2 ;GET A CHARACTER CMPB R2,#40 ;A SPACE? BNE 33$ ;NO< BIT #SW.NS,SWITC2 ;NO SPACES AT ALL TO BE TREATED ON INPUT?9 BNE 335$ ;IF SO NULL ANYWAY REGARDLESS OF WHAT LAST WAS CMPB R5,#40 ;WAS LAST A SPACE?/ BNE 33$ ;NO, SAVE LAST AND GET NEXT CHARACTER?; LAST CHARACTER WAS A SPACE AND SO IS THIS ONE...NULL THIS ONE3335$: CLRB -1(R4) ;NULL SECOND AND LATER SPACES...)33$: MOV R2,R5 ;SAVE LAST CHARACTER SEEN DEC R3 ;COUNT DOWN TILL END' BGT 32$ ;DONE WHEN NO MORE CHARS LEFT 31$: MOV (SP)+,R3 ;GET BACK REGS MOV (SP)+,R2 MOV (SP)+,R4 MOV (SP)+,R530$: MOVB #15,@0(SP) ;PUT IN CRLF INC @SP MOVB #12,@(SP)+* ADD #4,4(R0) ;ADJUST # BYTES READ COUNTER MOV (SP)+,R0 RTS PC  .PSECT RWDATA,RW1 .MCALL FDOF$L,FCSBT$,FDBDF$,FDRC$A,FDAT$A,NMBLK$! .MCALL CSI$1,CSI$2,OPEN$R,OPEN$W .MCALL CSI$00JJJH+%O-%TADATADATASW,CSI$ND,CSI$SVFDOF$L ;LOCAL OFFSET DEFSFCSBT$ ;DEFINE BIT NAMESKBIFDB: FDBDF$ ;KB INPUT FDB FDRC$A ,BUF,MAXWID ; DTIFDB: FDBDF$ ;DATA INPUT FDB FDRC$A ,BUF,MAXWID ;DATA ADDR!DTOFDB: FDBDF$ ;DATA OUTPUT FDB FDRC$A ,BUFA,MAXWID ;BUFFER+ FDAT$A R.VAR,,MAXWID ;FILE CHARACTERISTICS .MCALL NBOF$L&NBOF$L ;LOCALLY DEFINED NAMEBLK OFSETSKBIFNB: NMBLK$ KBICMD,LST,,TI,0DTIFNB: NMBLK$ DATA,TMP,,SY,06DTOFNB: NMBLK$ DATA,LST,,SY,0 ;DEFAULT FILENAME BLOCKS .word 0,0 ;slopWRKBUF: .BLKB 258. .WORD 0,0 ;EXTRA SLOP AT END! .SBTTL COMMAND STRING PROCESSING .MCALL FINIT$"SPSAV: .WORD 0 ;STACK POINTER SAVE .PSECT RCODE,ROLIST: ;INIT & OPEN MOV SP,SPSAV FINIT$)TRY: ;PROMPT HERE ANG GET COMMAND LINE& MOV SPSAV,SP ;RESET SP (QUICK; DIRTY); FINIT$ CLR SWITC2' CLR SWITCH ;RESET SWITCHES TO DEFAULTS%; ADD RUNTIME FDB INITIALISE ROUTINES# .MCALL FDAT$R,FDRC$R,FDOP$R,FDBF$R- FDAT$R #DTIFDB,#R.VAR,#FD.CR,#MAXWID,#-2,#-5/ FDAT$R #DTOFDB,#R.VAR,#FD.CR,#MAXWID+4,#-2,#-5 FDRC$R #DTIFDB,,#BUF,#MAXWID+4 FDRC$R #DTOFDB,,#BUF,#MAXWID+4 & CLR OSMSK ;NO OUTPUT SWITCH DEFAULTS& MOV #1,SPCNT ;DEFAULT 1 SPOOLED COPY CLR CMAX ;TO 0 COL CLR ROLL0 CLR PADW6 MOVB #'!,SEPCHR ;SEPARATOR CHARACTER IS INITIALLY "!";LEAVE PAGE SIZES ALONE' GCML$ #CMD,#LSTPP,#4 ;USE RSX FACILITY BCC 47$ RCML$ #CMD .MCALL EXIT$S EXIT$S ;LEAVE WHEN SEE EOF47$:% TSTB CMD+G.ERR ;SEE IF ERROR ON READ BPL 48$& EXIT$S ;EXIT TASK ON I/O ERR IN CMD48$:! .IF DF NOFF1 ;OMIT FF ON OUTPUT MOVB #1,OPENLP ;DEVICE OPEN .ENDC ;AS OPEN WILL DO IT); ISSUE CSI COMMANDS AND OPEN FILES HERE.;(LOSE IF FILES DON'T EXIST!) MOV #EHTXT,R0 MOV #40.,R1441$: CLR (R0)+" SOB R1,441$ ;ZERO 2ND HDR BUFFER0 MOV #CMD+G.CMLD,R0 ;LEN, ADDR OF STRING READ IN MOV @R0,R1 ;LENGTH MOV 2(R0),R2 ;ADDR4 CSI$1 #CSBLK,R2,R1 ;COMPRESS OUT SPACES, TABS, ETC. ;NOW PROCESS I/O SPECIFICATIONS.;NO WILD-CARDS HERE!DTIDSP=C.DSDS+CSBLK DTODSP=DTIDSP!;NOW GET INPUT SPECS AND SWITCHES; CSI$2 #CSBLK,INPUT,#SWTBL$ .SBTTL PROCESS (INPUT) SWITCHES DTODSP=DTIDSP MOV #DTIFDB,R0 MOV R0,R1 MOV R0,R2" MOV #DTIFNB,R3 ;SET UP FOR .PARSE ADD #F.DSPT,R2 ADD #F.FNB,R1" JSR PC,.PARSE ;FILL IN DEFAULTS< OPEN$R #DTIFDB,#3,#DTIDSP,,#BUF,#MAXWID,ERR1;OPEN INPUT LU3* TST (R3)+ ;PTR TO NEXT # WORDS TO FOLLOW. CSI$2 #CSBLK,OUTPUT,#OUTCSW ;GET OUTPUT FIRSTDTIDSP=C.DSDS+CSBLK DTODSP=DTIDSP MOV #DTOFDB,R0 MOV R0,R1 MOV R0,R2" MOV #DTOFNB,R3 ;SET UP FOR .PARSE ADD #F.DSPT,R2 ADD #F.FNB,R1" JSR PC,.PARSE ;FILL IN DEFAULTS .MCALL OPEN$A! BIT #1,OSMSK ;/AP OUTPUT SWITCH? BEQ 10$ ;NO@ OPEN$A #DTOFDB,#4,#DTODSP,,#BUFA,#MAXWID,SCRAM ;OPEN FOR APPEND BR 20$10$:8 OPEN$W #DTOFDB,#4,#DTODSP,,#BUFA,#MAXWID,SCRAM ;OUT LU420$: .PAGE .SBTTL CHECK LIMITS) ;SET UP VALUES FROM WHATEVER WAS ENTERED MOV LINSIZ,SW.WID MOV CMAX,SW.COL MOV PAGSIZ,SW.LEN MOV ROLL0,SW.ROL MOV PADW,SW.RLN .IF NDF,SW$ALL2 BITB #FD.TTY,DTOFDB+F.RCTL ;IS OUTPUT A TERMINAL? BEQ 25$ ;IF NOT BRANCH<;FOR TERMINALS SET UP /WI:80./LE:22. DEFAULT IF NO SWITCHES.- BIT #SW.WI,SWITCH ;WAS SWITCH /WI:NNN GIVEN? BNE 26$ ;YES, USE IT. MOV #80.,SW.WID ;NO, DEFAULT MOV #80.,LINSIZ26$:, BIT #SW.LE,SWITCH ;WAS LENGTH SWITCH GIVEN? BNE 27$ ;YES, USE IT? CMP #132.,SW.WID ;132 WIDE LOOKS LIKE LA36 SO SET USUAL LENGTH BEQ 25$ ;AND LET ALONE. MOV #21.,SW.LEN" MOV #21.,PAGSIZ ;NO, DFAULT TO 22727$: BIT #SW.ED,SWITCH ;REVERSE SENSE OF /ED SWITCH TOO BEQ 28$ ;IF OFF TURN ON- BIC #SW.ED,SWITCH ;IF ON TURN OFF AND IGNORE BR 25$@28$: BIS #SW.ED,SWITCH ;SO WE DON'T GET FF TO TERMINAL UNLES /ED/ CLRB EDVAL ;ALSO ARRANGE OUTPUT OF NULL FIRST25$: .ENDC$INTERP: JSR R5,LIMITS ;PROCESS VALUE* .WORD SW.WID,SW.WI,MAXWID,MINWID,LINSIZ JSR R5,LIMITS ;PROCESS VALUE& .WORD SW.LEN,SW.LE,MAXLIN,2.,PAGSIZ JSR R5,LIMITS ;PROCESS VALUE .WORD SW.COL,SW.CO,18.,0,CMAX JSR R5,LIMITS ;PROCESS VALUE% .WORD SW.ROL,SW.RO,MAXLIN,5.,ROLL000JJH H6%! ! JSR R5,LIMITS ;PROCESS VALUE( .WORD SW.RLN,SW.RL,MAXWID,MINWID,PADW- .SBTTL CORRECT PAGE SIZE FOR HEADER, ETC( MOVB PAGSIZ,LMAX ;PAGE SIZE WITH HEADER DECB LMAX ;1 LINE FOR FF BIT #SW.NH,SWITCH ;OMIT HEADER? BNE 1$ ; YES& DECB LMAX ; NO, BLANK LINE IN HEADER,1$: BIT #SW.NP,SWITCH ;NO PAGINATION AT ALL? BEQ 51$ ;NO, LEAVE ALONE- INCB LMAX ;YES, PAGINATION OMITTED. ADJUST!51$:! .SBTTL COMPUTE COLUMN WIDTHS MOV #1,R4 ;COL # CLR R2 BISB LINSIZ,R2 ;LINE LENGTH MOV #WIDTH,R3 ;ADR FOR COL 12$: MOV R4,SDIV1 ;GET MAX WIDTH MOV R2,DDIV1 CLR DDIV2 JSR R5,IDIV MOV DDIV1,R0 MOV DDIV2,R1 ;GET RESULT MOVB R0,(R3)+ ;SAVE IT INC R4 ;ANOTHER COL PER PAGE SUB #2,R2 ;2 CHAR PER DIVIDER1 CMP #19.,R4 ;DONE ALL? (TABLE ALLOWS UP TO 20.) BHIS 2$ ; NO, DO NEXT .SBTTL PROCESS FORM FEED MOVB #XFF,FORM+6 ;ASSUME FF BIT #SW.ED,SWITCH ;WANT ^D? BEQ 3$ ; NO5 MOVB EDVAL,FORM+6 ;YES, FILL IN WITH SEPARATOR CHAR.?;NOTE THAT /ED:NNN TAKES A VALUE NOW AND SAVES IN EDVAL. OCTAL.;DEFAULT IS 4. ; OLD CODE:; MOVB #4,FORM+6 ; YES, ^D3$: .SBTTL DATA FILE PROCESSING .SBTTL CREATE LIST HEADER MOV #DASH,R3 ;HEADER BUFFER ADR MOV R3,R0 ;GET COPY MOVB LINSIZ,R2 ;LINE LENGTH&FILL: MOVB #'-,(R0)+ ;DASHES TO HEADER DECB R2 BNE FILL MOV R3,R0 ;BACK AT LEFT" MOV #VERSON,R1 ;VERSION # AT LEFT MOV #VERLEN,R2*FILLV: MOVB (R1)+,(R0)+ ;VERSION TO HEADER DEC R2 BGT FILLV MOVB #SPACE,(R0)+ BISB LINSIZ,R2 ;RIGHT SIDE ADD #2,R2 ;COUNT CR LF# MOV R2,HEADER+4 ;ACTUAL BYTE COUNT ADD R3,R2 ;PT TO END+1# MOV #TALSIZ,R0 ;SIZE OF RIGHT INFO MOV #TAIL,R1 ;RIGHT SIDE INFO%1$: MOVB -(R1),-(R2) ;COPY RIGHT SIDE DEC R0 BGT 1$ INC R2 ;LOCATION FOR DATE JSR PC,RSAV MOV #Z22$,R5 ;OUTPUT ADDR$ JSR PC,CVTDT ;CONVERT DATE TO ASCII JSR PC,RRES ;POP REGS AGAIN MOV R0,-(SP) MOV R1,-(SP) MOV R2,-(SP) MOV #9.,R0 MOV #Z22$,R123$: MOVB (R1)+,(R2)+ DEC R0 BNE 23$ ;COPY TEXT BR Z24$ .PSECT RWDATA,RW+Z22$: .ASCII /04-JUL-76/;DUMMY DATE FOR NOW .EVEN .PSECT RCODE,ROZ24$: MOV (SP)+,R2 MOV (SP)+,R1 MOV (SP)+,R0 ;RESTORE REGS USED ADD #20,R2 ;FOR PAGE # (TENS) MOV R2,PAGEAD ;SAVE IT BISB WIDTH+1,R0 ;CENTER-1 SUB #7,R0 ;START OF NAME ADD #DASH,R0 ;PTR TO IT2 MOV R0,-(SP) ;FILL IN DUMMY NAME TOO FOR STARTERS MOV R1,-(SP) MOV R2,-(SP)# ;PUT IN FILENAME FROM FILENAME BLK MOV #DTIFDB,R1 ;FDB ADD #F.FNB,R1 ;OFFSET TO FNB MOV R1,-(SP) ;SAVE ADD #N.FNAM,R1 ;6 BYTES OF NAME MOV #Z32$,R2 MOV R0,-(SP) MOV (R1)+,R0 JSR PC,RADUP ADD #3,R2 MOV (R1)+,R0 JSR PC,RADUP$ ADD #3,R2 ;GET LAST 3 CHARS OF NAME MOV (R1)+,R0 ;RAD50 JSR PC,RADUP ;CONVERT TO ASCII MOV (SP)+,R0 MOV (SP)+,R1 ADD #N.FTYP,R1 ADD #4,R2 MOV R0,-(SP) MOV @R1,R0 JSR PC,RADUP MOV (SP)+,R0 MOV #13.,R2 ;FILNAM.EXT MOV #Z32$,R1 ;DUMMY NAME33$: MOVB (R1)+,(R0)+ DEC R2 BNE 33$ BR Z34$ .PSECT RWDATA,RWZ32$: .ASCII /FILNAME .EXT/ .EVEN .PSECT RCODE,ROZ34$: MOV (SP)+,R2 MOV (SP)+,R1 MOV (SP)+,R0 ADD #6,R0 ADD #4,R0! .SBTTL PROCESS AN INPUT PAGE .SBTTL INITIALIZEZOTGO: CLR PAGEN ;LAST PAGE # MOV #2,R2 ;CONSTANT CLRB EOD ;MORE IN FILE CLR OVRFLO ;NO COLUMN OVERFLOW# CLRB VAR ;ASSUME # COLS SPECIFIED DECB CMAX ;MAP 1-10. TO 0-9 MOVB CMAX,R0 ;GET FOR INDEX BGE 1$ ;# SPECIFIED INCB VAR ;VARIABLE # COLS$ MOVB #18.,CMAX ;MAXIMUM OF 18. COLS CLR R0 ;USE SINGLE COL MAX01$: MOVB WIDTH(R0),WIDE ;WIDTH BEFORE TRUNCATION .SBTTL NEXT PAGE-NEWPAG: MOVB WIDTH,AVAIL ;FOR VARIABLE # COLS CLRB AVAIL+1 MOV #L,PL ;FIRST LINE IN MOV #C,PCO ; FIRST COL# MOV #BLOCK,R4 ;SET PAGE BUFFER PTR CLRB COL ;TO COUNT COLS .SBTTL NEXT COLUMN/NEWCOL: CLRB LINE ;TO COUNT UP # LINES ON PAGE% MOV R4,@PL ;SAVE PTR TO COLUMN HEAD' CLRB MAX ;LONGEST LINE FOR VAR # COLS! .SBTTL NEXT LINE#NEWLIN: JSR PC,READL ;GET NEXT LINE00JJJH+%O-%TADATADATA# CMPB R3,MAX ;THIS LONGEST IN COL? BLOS 4$ ; NO MOVB R3,MAX ;SET NEW MAX TSTB VAR ;VARIABLE # COLS?" BEQ 4$ ; NO, SKIP FOLLOWING JUNK  .PAGE" CMPB R3,AVAIL ;STILL FIT ON PAGE? BLOS 4$ ; YES) MOV @PL,PP ;SAVE COL HEAD FOR NEXT PAGE JSR PC,PRINT ;PRINT PAGE ;SET NEW PAGE VARIABLES CLRB COL ;NO COLS ON NEW PAGE MOV #L,PL ;SET PL TO FIRST COL MOV #C,PCO ;RESET COLUMN INDEX& MOV #BLOCK,R4 ;SET PTR TO PAGE BUFFER% MOV R4,L ;SET PTR TO FIRST COL ALSO( MOVB WIDTH,AVAIL ;# CHAR POSITIONS LEFT CLRB AVAIL+1$ ;COPY EXTRA LINES TO BUFFER TOP  MOVB LINE,R5 ;# LINES ON PAGE INC R5( MOV PP,R1 ;PTR TO FIRST LINE IN BUFFER+1$: MOVB (R1)+,R3 ;GET LINE CHARACTER COUNT MOVB R3,(R4)+ ; & COPY IT BEQ 3$ ;SKIP IF EMPTY LINE2$: MOVB (R1)+,(R4)+ ;COPY LINE DECB R3# BNE 2$ ;0 TO 256, NOT -128 TO 1273$: DECB R5 ;ONE LESS LINE BGT 1$ ;COPY REST OF LINES$4$: INCB LINE ;ANOTHER LINE ON PAGE CMPB LINE,LMAX ;MORE FIT? BLT NEWLIN ; YES CLR R0.$ BISB MAX,R0 ;LONGEST LENGTH IN COL MOVB R0,@PCO ;SAVE IT INC PCO ;MOVE PTRS TO NEXT COL ADD R2,PL ; FOR NEXT TIMEM INCB COL ;ONE LESS COLUMNR" CMPB COL,CMAX ;MORE COLS ON PAGE? BGT 5$ ; NO, PAGE FULL) ADD R2,R0 ;# CHARS REQUIRED TO LIST COLA# SUB R0,AVAIL ;# CHARS LEFT ON PAGE% BGT 6$ ;PAGE FULL3 .PAGE  .SBTTL OUTPUT A PAGE!5$: JSR PC,PRINT ;PRINT FULL PAGET TSTB EOD ;MORE?M BEQ NEWPAG ; YES BR DONE6$: TSTB EOD ;MORE? BEQ NEWCOL ; YES JSR PC,PRINT ;PRINT FULL PAGE BR DONE-ERTXT: .ASCII /LST--ERROR IN FILE PROCESSING/H ERSIZ=.-ERTXTT .EVEN ERR1: NOP ERR2: NOP  .MCALL QIOW$S, QIOW$S #IO.WVB,#5,#5,,,,<#ERTXT,#ERSIZ,#40>! TST (SP)+ ;JUNK CALL VIA JSR PC.. .SBTTL COMPLETION PROCESSING .SBTTL CLOSE INPUT FILE,DONE: CLOSE$ #DTIFDB,SCRAM ;CLOSE & RELEASE BCS SCRAM ;CAN'T CLOSE--EXIT.S .SBTTL CLOSE OUTPUT FILE$ .MCALL PRINT$4 BIT #2,OSMSK ;DID HE WANT THE FILE SPOOLED (/SP:N)? BEQ 11$ ;NO, JUST CLOSE IT.R/ BIC #-40,SPCNT ;MAKE COPIES RANGE LEGAL (< 32) ! BNE 10$ ;IF NONZERO ALL IS WELL0 MOV #1,SPCNT ;IF ZERO MAKE IT 110$:8 PRINT$ #DTOFDB,SCRAM,,,,,,SPCNT ;QUEUE SPCNT COPIES OUT* BR 20$ ;THEN GO (SPOOL CALL CLOSES FILE)11$:& CLOSE$ #DTOFDB,SCRAM ;CLOSE & RELEASE20$:" BCS SCRAM ;IF CLOSE FAILS, LEAVE .IF NDF,ONCEO. JMP TRY .ENDC;SCRAM: EXIT$S ;LEAVE. LIST DOESN'T RE-INITIALIZE CORRECTLY.U .SBTTL SUBROUTINES* .SBTTL LIMITS: CHECK ON SWITCH VALUES; JSR R5,LIMITSK/; .WORD ADR OF VALUE ENTERED (IN SWITCH TABLE)N; .WORD SWITCH BITB; .WORD MAXIMUM VALUE; .WORD MINIMUM VALUE; .WORD ADR OF BYTE VARIABLES+LIMITS: MOV @(R5)+,R0 ;LAST SPECIFIED VALUE $ BIT (R5)+,SWITCH ;SWITCH SPECIFIED? BNE 1$ ; YES TST (R5)+ ;SKIP MAX VALUE. BR 3$ ; & USE LAST VALUE1$: CMP (R5)+,R0 ;CHECK MAX- BHIS 2$ ; OK MOV -2(R5),R0 ;CLAMP HI2$: CMP (R5),R0 ;CHECK MINN BLOS 3$ ; OK MOV (R5),R0 ;CLAMP LOT"3$: TST (R5)+ ;PT TO VARIABLE PTR( MOVB R0,@(R5)+ ;SET VALUE INTO VARIABLE RTS R5 ;LEAVER, .SBTTL COPYRL: PAD LINES TO SAME LENGTHCOPYRL: MOV R0,-(SP) ;SAVE REGSF MOV R1,-(SP)O MOV R2,-(SP), MOV #BUFOUT,R0 ;PAD INTO BUFOUT CMP R0,6+2+2(SP) ;USING BUFOUT?" BEQ 2$ ; YES, DON'T HAVE TO COPY( MOV 6+2+2(SP),R1 ;GET BUFFER HEADER ADR) MOV R0,6+2+2(SP) ; & REPLACE WITH BUFOUT$ ADD #4,R0 ;PT TO ACTUAL BYTE COUNT ADD #4,R1 MOV (R1)+,R2 ;DATA LENGTH CMP #MAXWID+2,R2 ;TOO LONG? BHIS 10$ ; NO- MOV #MAXWID+2,R2 ; YES, CLAMP AT BUFFER SIZE 10$: MOV R2,(R0)+ ;COPY IT!1$: MOVB (R1)+,(R0)+ ;COPY BUFFERE DEC R2  BGT 1$H2$:E# MOV #BUFOUT+4,R0 ;PT TO BYTE COUNTS CLR R2D BISB PADW,R2 ;GET TOTAL WIDTHG ADD #2,R2 ;FOR CR, LFS+ MOV (R0),R1 ;CURRENT LENGTH (INC. CR, LF)L" MOV R2,(R0) ;SET CONSTANT LENGTH ADD R1,R0 ;PT TO CR@ SUB R1,R2 ;AMOUNT TO PAD BGT 3$ ; MUST PADE ADD R2,R0 ;TRUNCATE BR 4$3$: MOVB #SPACE,(R0)+ ;PAD DEC R2B BGT 3$ ; MORELG4$: .IIF DF,VRSATK,MOVB #'!,-1(R0) ;VERSATEK MUST HAVE NON-BLANK AT ENDB00JJH H6%! ! MOVB #XCR,(R0)+ ;INSERT CR  MOVB #XLF,(R0)+ ; & LF) MOV (SP)+,R2O MOV (SP)+,R1D MOV (SP)+,R0  RTS PCS .SBTTL READL: READ A LINE.READL: MOV R4,CHRCNT ;CHARACTER COUNT BYTE PTR CLR R3 ;CHAR COUNT( MOV OVRFLO,R1 ;PNT TO NEXT CHAR IN LINE BEQ 1$ ; NO OVERFLOW1 .SBTTL FINISH LAST LINE OVERFLOW, IF ANY .IF DF,..FA# MOVB #'>,-(R1) ;PUT "-->" IN PLACE MOVB #'-,-(R1)S MOVB #'-,-(R1)E .IFFV MOVB FA$L+2,-(R1) MOVB FA$L+1,-(R1) MOVB FA$L,-(R1) .ENDC! CLR OVRFLO ;CLEAR OVERFLOW FLAGR BR 2$ ;HAVE LINE WITH R1 SET$ .SBTTL READ NEXT INPUT LINE"1$: MOV #BUFIN,-(SP) ;PUSH BUF HDR MOV #DTIFDB,-(SP) ;PUSH FDB JSR PC,RSXRED ;READ (GET) DATAF CMP (SP)+,(SP)+ ;RESTORE STACKI BITB #100,BUFIN+3 ;EOD? BNE EOT ; YESU' MOV #BUF,R1 ;SET R1 TO PT TO NEW LINEN2$:I .PAGE ' CLRB (R4)+ ;ZERO CHARACTER COUNT BYTEL MOV #10,R5 ;SET FIRST TAB STOP& .SBTTL PROCESS NEXT CHARACTER .ENABLE LCS#NEXTC: MOVB (R1),R0 ;GET NEXT CHARI BICB #^C177,(R1)RE BIC #^C177,R0 ;LEAVE 7 BITS ONLY (IN CASE OF SCREWY WORD PROCESSORS)$ BEQ IGNORE ;IGNORE NULLS, BIT #SW.UC,SWITCH ;CASE TRANSLATION NEEDED? BEQ CKSPC2 ;NO.B8 BITB #100,(R1) ;IF 100 BIT ON, THEN 40 BIT OFF IF SPEC. BEQ CKSPC+ BICB #40,(R1) ;CONVERT LOWER TO UPPER CASE " BR CKSPC ;GO SKIP LOWER CASE NOWHCKSPC2: BIT #SW.LC,SWITC2 ;/LC CONVERSION TO LOWER CASE FORCING DESIRED? BEQ CKSPC ;IF EQ NO, SKIP IT CMPB (R1),#100 ;LEAVE @ ALONE BEQ CKSPC2 CMPB (R1),#'Z ;LEAVE EVERYTHING ABOVE Z ALONE TOO BHI CKSPC8 BITB #100,(R1) ;IF YES FORCE ON BIT 40 IF BIT 100 IS ON, BEQ CKSPC ;IF NOT BIT 100 ON, NOT IN RANGE BISB #40,(R1) ;LOWER CASE NOWCKSPC: CMP #40,R0 ;SEE IF SPECIAL BLOS MOVE ; NO, COPY CHARACTER SUB #15,R0K BEQ EOL ;CRR BGT CONTROL ;OUTPUT ^X ADD R2,R0 BGT FF ;FF BEQ EOL ;VTR ADD R2,R0 BGT EOL ;LFT BLT CONTROL ;001-010& BIT #SW.CT,SWITCH ;WANT TO KEEP TABS? BEQ TAB ; YESD) MOVB #SPACE,(R1) ;REPLACE TAB WITH SPACET BR MOVE% .SBTTL CONTROL CHARACTERVCONTROL:5 BIT #SW.NE,SWITC2 ;ARE WE PRINTING ESC AS ^[ OR $?T! BNE 1$ ;PRINTING AS ^[ SO DO ITS) CMPB #33,(R1) ;THIS AN ESCAPE CHARACTER?  BNE 1$ ;NO, ECHO AS ^: MOVB #'$,(R1) ;PRINTING AS DOLLAR SIGN SO HANDLE THAT WAY, BR MOVE ;THEN SHOVE IT OUT. (DEFAULT = $ )#1$: BISB #100,(R1) ;FORCE PRINTABLEY# MOVB #'^,(R4)+ ;INSERT ^ CHARACTER  BR SPEC$ .SBTTL IGNORE CHARACTERIGNORE: INC R1 BR NEXTCI .SBTTL FORM FEED((FF: BIT #SW.FF,SWITCH ;WANT TO KEEP FFS? BEQ EOL ; NO TSTB LINE ;AT TOP OF COLUMN?) BEQ EOL ; YES, DON'T BLANK WHOLE COLUMN+* BR E1 ;YES, FILL COLUMN WITH BLANK LINES .PAGE  .SBTTL TABS(TAB0: ADD #10,R5 ;MOVE TO NEXT TAB STOPTAB: CMP R3,R5 ;AT TAB STOP?2 BGE TAB0 ;MOVE TO NEXT INC R1 ;SKIP TAB IN INPUT LINE)TAB1: MOVB #SPACE,(R4)+ ;FILL WITH SPACES INC R3 ;COUNT CHARACTER$! CMPB R3,WIDE ;MORE FIT IN LINE?  BHIS TOWIDE ; NO, FULL CMPB R3,R5 ;AT TAB STOP?" BLO TAB1 ; NO, GET ANOTHER SPACE BR NEXTC! .SBTTL UNINTERESTINGO&MOVE: MOVB (R1)+,(R4)+ ;COPY CHARACTERSPEC: INC R3 ;COUNT CHARACTER! CMPB R3,WIDE ;MORE FIT IN LINE?# BLO NEXTC ; YES, GET NEXT) .SBTTL CHECK FOR COLUMN OVERFLOWT2TOWIDE: BIT #SW.TR,SWITCH ;WANT TO TRUNCATE LINES? BNE EOL ; YES, END LINE NOW5 CMPB #XCR,(R1) ;IF AT CRB BEQ EOL ; NO OVERFLOWD0 MOV R1,OVRFLO ;SAVE NEXT CHARACTER PTR/SET FLAG+ .SBTTL LINE FEED - END OF LINEB,EOL: MOVB R3,@CHRCNT ;INSERT LINE BYTE COUNT RTS PC5! .SBTTL END OF INPUT FILE EOT: INCB EOD ;REMEMBER SAW EOD&E1: CLRB (R4)+ ;FILL REST COLUMN WITH INCB LINE CMPB LINE,LMAX ;NEED MORE?M BLO E1 ; YES(; CLR AVAIL ;SAY NO AVAILABLE SPACE NOW9; MOVB COL,CMAX ;ALSO THAT WE HAVE GOT TO MAX COL ALLOWED :;;; NOTE SPECIAL STUFF NEEDED TO KEEP ENDFILE FROM LEAVING3;;; A VERY SHORT LAST LINE AS WHAT WE MUST FILL IN.A E2: RTS PC .PAGE , .SBTTL WRITE A PAGE* .SBTT00JJJH+%O-%TADATADATAL FIND COLUMN PADDING WIDTHS%PRINT: MOVB COL,R3 ;ACTUAL # COLUMNSB TSTB VAR ;VARIABLE # COLS? BEQ 2$ ; NO MOV R3,SDIV1$4 MOV AVAIL,DDIV1 ;FIND # EXTRA CHARACTERS PER COLUMN CLR DDIV2 JSR R5,IDIV MOV DDIV1,R0 MOV DDIV2,R1U"1$: MOVB C-1(R3),R1 ;GET COL WIDTH ADD R0,R1 ;ADD # EXTRA CHARS MOVB R1,C-1(R3) ;UPDATE # DEC R3S BGT 1$  BR 3$2$: MOVB WIDE,C-1(R3) ;M DEC R3, BGT 2$3$:F1 .SBTTL SETUP & OUTPUT APPROPRIATE HEADER INC PAGEN ;GET PAGE #B JSR PC,RSAV ;SAVE REGS MOV PAGEN,R0 ;GET # TO CONVERTT JSR PC,BIN2D ;CONVERT ITI JSR PC,RRES ;POP REGS AGAINN$ MOV PAGEAD,-(SP) ;PTR TO TENS DIGIT$ DEC @SP ;MAKE IT POINT AT HUNDREDS CMPB ZZ+2,#'0 ;ZERO?G BNE 100$ ;NO' MOVB #40,ZZ+2 ;YES, REPLACE WITH SPACE)7100$: MOVB ZZ+2,@(SP) ;IN ANY CASE, COPY HUNDREDS DIGITD, INC @SP ;PASS HUNDREDS DIGIT;POINT TO TENS! MOVB ZZ+3,-(SP) ;COPY TENS DIGITB CMPB #'0,(SP) ;IF NOT 0,R BNE 4$ ; KEEP IT% MOVB #SPACE,(SP) ;REPLACE WITH SPACEX+4$: MOVB (SP)+,@(SP) ;INSERT TENS CHARACTER+ INC (SP) ;PT TO UNITS,# MOVB ZZ+4,@(SP)+ ;COPY UNITS DIGITT# CMP PAGEN,#1 ;ALLOW 1ST PAGE TO BEA ;WRITTEN IN ANY CASEC BLE LETGO% BIT #SW.PA,SWITCH ;/PAUSE OPTION ON?E BEQ LETGO ;NO, FORGET IT.I$;PUT A WAIT ON READING CONSOLE HERE. GCML$ #CMD,#PAUSES,#PAULENR BR X54$$PAUSES: .ASCII <15><12>/LIST PAUSE>/9PAULEN=.-PAUSES ;LET MACRO FIGURE OUT HOW LONG STRING IS!S .EVENX54$: BCC LETGOL RCML$ #CMD ;RESET LEVEL JMP DONE ;EXIT IF ^Z ON PAUSE LETGO: .PAGE O BIT #SW.RO,SWITCH ;ROLL PAPER?P BEQ 9$ ; NOS* MOV #BUFOUT+4,R5 ;PT TO ACTUAL BYTE COUNT' MOVB LINSIZ,(R5) ;SET IT TO FULL WIDTHX MOV (R5),-(SP) ;SAVE COUNT# ADD #2,(R5)+ ; FOR CR, LF(10$: MOVB #'=,(R5)+ ;CREATE PAGE DIVIDER DEC (SP) ; MORE? BGT 10$ ; YES  TST (SP)+ ;DROP COUNTERM MOVB #XCR,(R5)+ ;INSERT CRS MOVB #XLF,(R5)+ ; & LFP! MOVB ROLL0,ROLL ;SET PAGE LENGTHS% WRITE #DTOFDB,#BUFOUT ;WRITE DIVIDERT*; HERE SHOVE OUT ANY SECOND HEADER ALSO..., BIT #SW.EH,SWITC2 ;SEE IF EXTRA HDR DESIRED BEQ 501$ ; IF EQ NO, SKIPC) WRITE #DTOFDB,#EHHDR ;IF SO WRITE IT OUT#501$:R$ WRITE #DTOFDB,#SKIP ; & SKIP A LINE BR 11$ ;SKIP PAGED JUNKA9$: .IF DF NOFF1 TSTB OPENLP ;FIRST TIME? BNE 4$ ; YES, OMIT FF$ .IFTF' BIT #SW.NP,SWITCH ;NO PAGE SEPARATORS?T BNE 46$ WRITE #DTOFDB,#FORM46$: .IFTL&4$: CLRB OPENLP ;NO LONGER FIRST TIME .ENDC,11$: BIT #,SWITCH ;OMIT HEADER? BNE 5$ ; YES$ WRITE #DTOFDB,#HEADER ;WRITE HEADER*; HERE SHOVE OUT ANY SECOND HEADER ALSO..., BIT #SW.EH,SWITC2 ;SEE IF EXTRA HDR DESIRED BEQ 601$ ; IF EQ NO, SKIP ) WRITE #DTOFDB,#EHHDR ;IF SO WRITE IT OUT$601$:D$ WRITE #DTOFDB,#SKIP ; & SKIP A LINE5$: # .SBTTL FORM & OUTPUT LINES," MOVB LMAX,R5 ;COUNT DOWN # LINES$ MOVB COL,-(SP) ;SAVE # COLS ON PAGE$NEWL: MOV #L,PL ;START AT FIRST COL MOV #C,PCO MOVB (SP),COL ;# COLS ON PAGE' MOV #BUFA,R1 ;PT TO OUTPUT LINE BUFFERO .PAGE D$NEWC: MOV @PL,R4 ;PT TO LINE IN COL CLR R0B BISB (R4)+,R0 ;# CHAR IN LINE MOV R0,R3 ;SAVE IT FOR PADDING BEQ 2$ ;LINE EMPTY$1$: MOVB (R4)+,(R1)+ ;COPY CHARACTER DEC R0T BGT 1$ ; AND DO NEXT-2$: MOV R4,@PL ;SAVE PTR TO NEXT LINE IN COLW DECB COL ;ONE LESS COL TO DO BEQ CRLF ;DONE% BISB @PCO,R0 ;GET COL WIDTH FOR PADB SUB R3,R0 ;# SPACES REQ'D33$: MOVB #SPACE,(R1)+K DEC R03! BGE 3$ ;EXTRA SPACE FOR DIVIDERA2 BIT #SW.SC,SWITC2 ;SEPARATOR CHARACTER SPECIFIED?# BEQ 102$ ;NO, SEE IF BLANK WANTEDT2 BIT #SW.BS,SWITC2 ;SPECIFIED SEPARATOR AND BLANK? BEQ 100$ ;NOA; BOTH /SC AND /BL SWITCHES SET. REMOVE EXTRA BLANK AND USE CHAR.W2 DEC R1 ;**** EXPERIMENTAL *** FORGET EXTRA BLANK! ;IF USING BLANK AS SEPARATOR.  BR 100$1102$: BIT #SW.BS,SWITC2 ;WANT BLANK AS SEPARATOR?V BEQ 100$ ;NO MOVB #40,(R1)+D BR 101$ ;YES. FILL IT IN>100$: MOVB SEPCHR,(R1)+ ;NO, FILL IN SEPARATOR (INITIALLY "!"); MOVB #'!,(R1)+"101$: ADD R2,PL ;MOVE TO NEXT COL INC PCO BR NEWCCRLF: MOVB #XCR,(R1)+O MOVB #XLF,(R1)+" SUB #BUFOUT+600JJH H6%! !,R1 ;GET LINE LENGTH' MOV R1,BUFOUT+4 ;SET ACTUAL BYTE COUNTM WRITE #DTOFDB,#BUFOUT DECB R5 ;MORE LINES? BGT NEWL ; YES MOVB (SP)+,COL ;CLEAN STACK BIT #SW.RO,SWITCH ;ROLL PAPER?B BEQ 2$ ; NOH"1$: TSTB ROLL ;NEED ANOTHER LINE? BLE 2$ ; NOL WRITE #DTOFDB,#SKIP BR 1$2$:S RTS PC  .PSECT RWDATA,RWB! .SBTTL WRITE COMMAND MESSAGEX .SBTTL FILE CONTROL BLOCKSU2SEPCHR: .WORD "!! ;SEPARATOR CHARACTER FOR COLUMNSBUFIN: .WORD MAXWIDR .WORD 20  .WORD 0BUF: .BLKB MAXWID+2I .SBTTL LINE BUFFERS .EVENLPBK: .WORD MAXWID+2,4,0,00PDIBUF: .WORD 2,0,2 ;CHARACTERS FOR USER TO TYPE .BLKW 2 ;IF /PAUSE REQUESTEDMBUFOUT: .WORD MAXWID+2 .WORD 20T .WORD 0 BUFA: .BLKB MAXWID+2+2 ;(SAFTEY) .PAGE P .SBTTL VARIABLES?COL: .BYTE 0 ;COLUMN COUNTER .EVENCMAX: .WORD 0 ;MAX # COLS  .EVEN ;LINE MUST BE EVENLINE: .BYTE 0 ;COUNT DOWN LINESE LMAX: .BYTE 0 ;# TEXT LINES/PAGE .EVEN9PAGSIZ: .WORD 84. ;CURRENT # LINES PER PAGE(INCL. HEADER)T .EVEN4LINSIZ: .WORD 130. ;# PRINT POSITIONS (EXCL. CR, LF)&MAX: .BYTE 0 ;MAX # CHAR IN COL SO FAR#VAR: .BYTE 0 ;NZ => VARIABLE # COLSR .EVEN ;WIDE MUST BE EVEN,L ; NOTE HIGH BYTE USUALLY 0A*WIDE: .BYTE 0 ;MAX # CHARACTERS PER COLUMNEOD: .BYTE 0 ;NZ => SAW EODL+EDVAL: .WORD 0 ;CHARACTER TO FILL IN ON /ED$ROLL0: .WORD 56. ;LINE PER ROLL PAGEROLL: .BYTE 0 ;LINES LEFT TO GOE .EVEN'PADW: .WORD 132. ;RECORD LENGTH FOR /RLR9SKPLTR: .WORD 0 ;# INPUT LETTERS TO SKIP IF /SL:NNN ASKED .IF DF,NOFF1 &OPENLP: .BYTE 0 ;0 => DOING FIRST FILE .ENDC .EVEN<AVAIL: .WORD 0 ;# FREE CHARACTER POSITIONS REMAINING ON PAGE,CHRCNT: .WORD 0 ;PTR TO LINE BYTE COUNT BYTE8OVRFLO: .WORD 0 ;NZ IS ADR OF NEXT CHAR IN OVERFLOW LINE+PAGEAD: .WORD 0 ;PTR TO PAGE TENS IN HEADERRPAGEN: .WORD 0 ;LAST PAGE #U(ZZ: .ASCII /00001/<0> ;FOR DECIMAL ASCIIPP: .WORD 0 ;SAVE FOR @PL(I+1)PL: .WORD 0 ;PTR TO CURRENT LPPCO: .WORD 0 ;PTR TO CURRENT C L: .REPT 24.4 .WORD BUF ;ADR OF FIRST LINE OF ITH COLUMN IN BLOCK .ENDR C: .REPT 20. .BYTE 16. ;WIDTH OF ITH COLUMNL .ENDR .BYTE 10.,10.,10.,10. ;TABLE OF FIXED COLUMN WIDTHS)WIDTH: .REPT 20.; ENTRY I IS: MAXWID+2-<2*I>/2S .BYTE 20. .ENDR4 .BYTE 10.,10.,10.,10. ;SPARES, BUT ALL INITIALIZED. .PAGE E .EVEN&DDIV1: .WORD 0 ;VAR FOR DEVIDE ROUTINEDDIV2: .WORD 0SDIV1: .WORD 0#SMUL1: .WORD 0 ;VAR FOR MUL ROUTINEVDMUL1: .WORD 0 SAVE: .WORD 0U;MULTIPLY / DIVIDE ROUTINE .SBTTL SWITCHES .EVEN .GLOBL SWITC2,SWITCHT"SWITC2: .WORD 0 ;MORE SWITCH FLAGSSW.SC=1 ;SEPARATOR CHARACTERSW.BS=2 ;BLANK SEPARATE5SW.NE=4 ;NE TREAT ESCAPE PRINT AS ^[ (DEFAULT IS $)R0SW.RI=10 ;/RI:NNN SHIFT OUTPUT RIGHT NNN SPACES&SW.LC=20 ;/LC FORCE LOWER CASE OUTPUT2SW.NS=40 ;/NS FORCE NO SPACES RECOGNIZED ON INPUT0SW.FA=100 ;/FA:LLL USES "LLL" AS CONT INDICATOR*SW.EH=200 ;/EH:TEXTSTRING OUTPUTS 2ND HDRSWITCH: .WORD 0 ;SWITCH FLAGSM"SW.MAX=40000 ;LEFTMOST SWITCH BIT@SW.MS=40000 ;REMOVE MULTIPLE SPACES (MAKE SINGLE SPACES) IF /MS ;SWITCH SET=SW.SL=20000 ;SKIP LETTERS /SL:NNN TO SKIP NNN CHARS ON INPUT( ;IN EACH RECORD.SW.NP=10000 ;NO PAGES (NO FORMFEED OR HEADER)(SW.UC=4000 ;CONVERT LOWER TO UPPER CASE .WORD "UC,0SW.RL=2000 ;FIXED LENGTH LINES  .WORD "RL,132. SW.RLN=.-2SW.RO=1000 ;ROLL PAPERL .WORD "RO,56. SW.ROL=.-2SW.CT=400 ;CHANGE TAB TO SPACE  .WORD "CT,0 ;NO ARGSV SW.ED=200 ;USE ^D INSTEAD OF FF .WORD "ED,0SW.PA=100 ;PAUSE OPTION .WORD "PA,0SW.WI= 40 ;WIDTH OPTION .WORD "WI,127.G SW.WID=.-2SW.LE= 20 ;LENGTH OPTIONH .WORD "LE,84. SW.LEN=.-2SW.CO= 10 ;# COLUMNSE .WORD "CO,0.H SW.COL=.-2SW.FF =4 ;RETAIN FF OPTION .WORD "FF,0SW.NH =2 ;NO HEADER OPTIONF .WORD "NH,0SW.TR =1 ;TRUNCATE OPTION .WORD "TR,0 .EVEN .PSECT CRUD4SWTBL: CSI$SW UC,SW.UC,SWITCH ;UPPER CASE /UC SWITCH+ CSI$SW RL,SW.RL,SWITCH,,,RLTBL ; /RL:NNNNNA* CSI$SW RO,SW.RO,SWITCH,,,ROTBL; /RO:NNNNN* CSI$SW CT,SW.CT,SWITCH ;COMPRESS TABS /CT8 CSI$SW ED,SW.ED,SWITCH,,,EDTBL ; /ED:NNN (NNN=CHAR 00JJJH+%O-%TADATADATAOCT)% CSI$SW PA,SW.PA,SWITCH ;/PAUSE (NYA)O( CSI$SW WI,SW.WI,SWITCH,,,WITBL ;/WI:NNN( CSI$SW LE,SW.LE,SWITCH,,,LETBL ;/LE:NNN& CSI$SW CO,SW.CO,SWITCH,,,COTBL ;/CO:N CSI$SW FF,SW.FF,SWITCH ;/FFBA CSI$SW EH,SW.EH,SWITC2,,,EHTBL ;/EH:TEXT-STRING FOR 2ND HDR LINE,$ CSI$SW NH,SW.NH,SWITCH ;/NH NO HDR' CSI$SW TR,SW.TR,SWITCH ;/TRUNCATE COLG1 CSI$SW NP,SW.NP,SWITCH ;/NP NO PAGE SEPARATORS;5 CSI$SW SL,SW.SL,SWITCH,,,SLTBL ;/SL:NNN SKIP LETTERSF> CSI$SW MS,SW.MS,SWITCH ;/MS MAKE MULTIPLE SPACES SINGLE SP'SF CSI$SW SC,SW.SC,SWITC2,,,SCTBL ;/CS:CHAR FILL IN COLUMN SEPARATOR CHR9 CSI$SW BS,SW.BS,SWITC2 ;/BS BLANK SEPARATOR FOR COLUMNS1 CSI$SW NS,SW.NS,SWITC2U> CSI$SW NE,SW.NE,SWITC2 ;/NE NO ESCAPE SPECIAL ECHO (TREAT AS ;NORMAL CONTROL CHARACTER.)G CSI$SW RI,SW.RI,SWITC2,,,RITBL ;/RI:NNN SHIFTS OUTPUT RIGHT NNN SPACES63 CSI$SW LC,SW.LC,SWITC2 ;/LC FORCES ALL LOWER CASET CSI$SW FA,SW.FA,SWITC2,,,FATBLN CSI$ND ;END TABLE CSI$SV DECIMAL,PADW,2,RLTBL CSI$SV DECIMAL,ROLL0,2,ROTBL CSI$SV OCTAL,EDVAL,2,EDTBLE CSI$SV DECIMAL,LINSIZ,2,WITBL CSI$SV DECIMAL,PAGSIZ,2,LETBL CSI$SV DECIMAL,CMAX,2,COTBL CSI$SV DECIMAL,SKPLTR,2,SLTBL CSI$SV ASCII,SEPCHR,1,SCTBL CSI$SV DECIMAL,RIVAL,2,RITBL, CSI$SV ASCII,FA$L,3,FATBL CSI$SV ASCII,EHTXT,80.,EHTBLB CSI$ND OUTCSW:LOUTSWS:G. CSI$SW AP,1,OSMSK ;/AP OPEN OUTPUT FOR APPEND0 CSI$SW SP,2,OSMSK,,,SPCPY ;/SP:N SPOOL N COPIES CSI$NDT CSI$SV DECIMAL,SPCNT,2,SPCPYY CSI$NDO .PSECT RWDATA,RW %RIVAL: .WORD 0 ;/RI:NNN SWITCH VALUEN+FA$L: .ASCIZ /-->/ ;LINE CONTINUE INDICATORI .EVEN1EHHDR: .WORD 82.,0,82. ;FAKE DOS WRITE BUFFER HDREHTXT: .BLKB 80. .BYTE 15,12 ;CR,LF TO FILL IN .EVEN .PAGE T .SBTTL TEXT STRINGS7OSMSK: .WORD 0 ;OUTPUT FILE SWITC MASKS. SEE OUTSWS TBL ;FOR BIT DEFS 6SPCNT: .WORD 0 ;NO. COPIES TO SPOOL IF SPOOLING OUTPUT L3: .WORD LL3C .BYTE 15,12,0,0,0,0,0VERSON: .ASCII /LIST-11 VR3.3/VERLEN=.-VERSONB .BYTE XCR,XLF LL3=.-L3-2 .EVEN! .IF EQ,1 ;NEVER TRUE THAT 1=0 !!L L4: .WORD LL4# .ASCII <0><0><0>/#/<13> LL4=.-L4-2 .EVEN L5: .WORD LL5R( .ASCII <15><12>/*/<13> ;STANDARD PROMPT LL5=.-L5-2 .ENDC ;END OF OMITTED SECTION .EVENHEADER: .WORD MAXWID+2,0,0DASH: .BLKB MAXWID+2+PAGE: .ASCII / XX-XXX-XX PAGE XX /<15><12>ETAIL:ATALSIZ=TAIL-PAGE MINWID=10.*6 .IF LT MINWID-VERLENO MINWID=VERLENY .ENDC .IF LT MINWID-TALSIZ MINWID=TALSIZ- .ENDC .EVENFORM: .WORD 3,0,3 ;FORM FEED .BYTE 14,15,12 ;OR ^D IF /EDI@;NOTE /ED IS FOR THE VT01 DRIVER THAT USES IT TO ERASE A SCREEN. .EVENSKIP: .WORD 3,0,3 ;CR LF .BYTE SPACE,XCR,XLF .SBTTL PAGE BUFFERL .EVEN BLOCK: .BLKB <*MAXLIN>; PCO -> C, PL -> L $; C CONTAINS WIDTH OF CURRENT COLUMN6; L CONTAINS ADDRESS IN BLOCK OF START OF CURRENT LINE; BLOCK CONTAINS PACKED LINES:'; FIRST BYTE IS # CHARACTERS TO FOLLOW #; FOLLOWED BY CHARACTERS FROM LINE$ .PSECT RCODE,ROIDIV: JSR PC,RSAVK MOV #SDIV1,R1 MOV #DDIV1,R0 JSR PC,DIVD JSR PC,RRES RTS R5 IMUL: JSR PC,RSAVE MOV #SMUL1,R1 MOV #DMUL1,R0 JSR PC,MULT JSR PC,RRES RTS R5S#RSAV: MOV R0,-(SP) ;SAVE REGISTERSA MOV R1,-(SP)R MOV R2,-(SP)R MOV R3,-(SP)# MOV R4,-(SP)I MOV R5,-(SP)P JMP @12.(SP)U-RRES: MOV (SP)+,12.(SP) ;STORE RETURN ADDRESSY! MOV (SP)+,R5 ;RESTORE REGISTERSE MOV (SP)+,R4R MOV (SP)+,R3 MOV (SP)+,R2F MOV (SP)+,R10 MOV (SP)+,R0  RTS PCT; PDP-11 FLOATING POINT PACKAGE ; INTEGER MULTIPLY; INTEGER DIVIDE;I; MODULES INCLUDED:A; 1. MUL; 2. DIV;A;U;R;ZR0 = %0MR1 = %1)R2 = %2TR3 = %3BR4 = %40R5 = %5BSP = %6DPC = %7B)MULT: MOV @R0,R5 ;PICK UP THE MULTIPLIER & MOV @R1,R1 ;PICK UP THE MULTIPLICAND! CLR R3 ;ZIP-ZAP-ZOWIE AND SWOSHS CLR R40 TST R5R/ BGE .+6 ;-> ;TEST SIGN AND CHANGE IF NECESSARYN NEG R5 ; I ;CHANGE SIGNP( INC R3 ; I ;REMEMBER THE ORIGINAL SIGN TST R1 ;<- ;TEST THE OTHER WORD BGE .+6 ;-> SAME TEST AS BEFORE' NEG R1 ; I ;NEGATE TO CHANGE THE SIGN . DEC R3 ; I ;USE THE OPPOSITE SIGN MANAGEMENT) MOV #21,R2 ;<- ;S00JJH H6%! !ET UP THE CYCLE COUNTERE%M.ML1: CLC ;CLEAR CARRY FOR ROTATES(. ROR R4 ;SHIFT MULTIPLIER AND PARTIAL PRODUCT ROR R5B4 BCC .+4 ;-> ;CHECK AND SEE IF AN ADDITION IS NEEDED2 ADD R1,R4 ; I ;ADD MULTIPLIER TO PARTIAL PRODUCT DEC R2 ;<- ;DECREMENT COUNTER" BGT M.ML1 ;BREANCH IF MORE TO DO TST R3 ;TEST SIGN CHANGE WORDO+ BEQ .+10 ;-> ;BRANCH AROUND THE ADJUSTMENTP NEG R4 ; I C NEG R5 ; I, SBC R4 ; I ;DO A DOUBLE PRECISION NEGATION MOV R5,(R0)+;<-- MOV R4,@R0 ;MOVE THE PRODUCT TO DESTINATION  RTS PC ;RETURN TO THE CALLER,DIVD: CLR -(SP) ;SET UP A SIGN CONTROL WORD MOV (R0)+,R3 ;PICK UP THE( MOV (R0)+,R2 ;DOUBLE PRECISION DIVIDEND BGE .+14 ;-> ;CHECK THE SIGN;, DECB 1(SP) ; I ;KEEP TRACK OF THE ORIGINAL NEG R2 ; I ;SIGN AND NEGATE! NEG R3 ; I ;THE ORIGINAL NUMBERT SBC R2 ; I% MOV (R1)+,R4;<- ;PICK UP THE DIVISOR)( BEQ M.DVV ;DIVISION BY ZERO IS A NO-NO BGT .+6 ;-> ;CHECK THE SIGN& INC @SP ; I ;AND KEEP TRACK AS ABOVE NEG R4 ; I$ MOV R4,R5 ;<- ;MOVE THE DIVISOR AND" NEG R5 ;NEGATE FOR THE ALGORITHM, ADD R5,R2 ;PREFORM THE INITIAL SUBTRACTION% BCS M.DVV ;CARRY SET IS AN OVERFLOWT MOV #20,-(SP) ;SET UP A COUNTER( CLR -(SP) ;THIS IS A LASTING CARRY BITM.DV1: ROL R3 ;ROTATE ONE LEFT  ROL R2 TST @SP ;CHECK THE LAST CARRYR& BEQ M.DV2 ;IF ZERO ADD ELSE SUBTRACT CLR @SP ;CLEAR THE CARRY ADD R5,R2 ;DO ONE MORE STEPO BR M.DV3C(M.DV2: ADD R4,R2 ;-2N+N=N FOR THIS STEP M.DV3: ADC @SP ;KEEP IT A WHILE! BEQ .+4 ;-> ;IF ZERO OMIT UPDATEZ INC R3 ; I ;NO CARRY POSSIBLET! DEC 2(SP) ;<- ;DECREMENT COUNTER ! BGT M.DV1 ;BRANCH IF MORE TO DON" ROR R3 ;SEE ABOUT THE LAST CYCLE# BCS M.DV4 ;OMIT CORRECTION IF ONEE ADD R4,R2 ;CORRECT REMAINDER CLC$M.DV4: ROL R3 ;REPLACE THE LAST BIT CMP (SP)+,(SP)+ ;POP TWO WORDSB% TST @SP ;TEST FOR REMAINDER CHANGEST BGE .+12 ;-> ;OMIT IF POSITVE NEG R2 ; I ;NEGATE REMAINDER CLRB 1(SP) ; I ;CLEAR SIGN, DEC @SP ; I ;BUT DO A GOOD JOB ON QUOTIENT5 CMP #100000,R3;<- ;TEST FOR THE BUG IN THE ALGORITHMB' BLO M.DVV ;EXIT WITH ERROR OF TOO BIGT BEQ M.DVC ;CHECK FOR OVERFLOWP/M.DV6: TST (SP)+ ;TEST FOR QUOTIENT ADJUSTMENT BEQ M.DV5 ;IF ZERO NONE NEEDED NEG R3 ;NEGATE QUOTIENTE#M.DV5: MOV R2,-(R0) ;MOVE REMAINDER,% MOV R3,-(R0) ;THEN QUOTIENT TO DEST.  RTS PC#M.DVV: TST (SP)+ ;REMOVE SIGN WORDT SEV ;SET OVERFLOW RTS PCC#M.DVC: TST (SP) ;TEST FOR NEGATIVE # BEQ M.DVV ;IF POSITIVE THEN OOPS!  BR M.DV6 ;IF NEGATIVE OK5; ROUTINES TO HANDLE DATE AND BINARY TO ASCII UTILITYE ; CONVERSIONSS9RADTBL: .ASCII / ABCDEFGHIJKLMNOPQRSTUVWXYZ.$?0123456789/A! .EVEN ;RAD50 CHARACTER SET TABLED8RADUP: MOV R0,-(SP) ;R0 CONTAINS RADPACKED CODE ON ENTRY MOV R1,-(SP)A* MOV R2,-(SP) ;R2 HAS ADDR TO PUT ASCII IN MOV R3,-(SP)  MOV #3,R3 ;3 CHARS:# ADD #3,R2 ;TRANSLATE RIGHT TO LEFT 1$: MOV R0,R1 ;PUT # IN ODD REGB CLR R0  CLC5 DIV #50,R0 ;DIVIDE TO GET REMAIND. IN R1, QUOT IN R0O, MOVB RADTBL(R1),-(R2) ;STICK INTO USER AREA SOB R3,1$ ;DO ALL 3 CHARSL MOV (SP)+,R3; MOV (SP)+,R2B MOV (SP)+,R1G MOV (SP)+,R0E RTS PCTBIN2D: JSR PC,RSAV ;SAVE REGSE/ MOV #5,R4 ;CONVERT ENTRY R0 TO 5 ASCII NUMBERSR+ MOV #ZZ+5,R3 ;IN ZZ, IN DECIMAL FOR PAGE #D+1$: MOV R0,R1 ;R0 HAS NUMBER, R3 HAS OUTPUTT CLR R0 CLC& DIV #12,R0 ;DIVIDE BY 10 TO GET DIGIT ADD #60,R1 ;ADD ASCII ZONES MOVB R1,-(R3) SOB R4,1$ JSR PC,RRES ;PUT REGS BACKP RTS PC1;I;DATE CONVERTING ROUTINESE;OAMONTHS: .ASCII /-FOO-JAN-FEB-MAR-APR-MAY-JUN-JUL-AUG-SEP-OCT-NOV/  .ASCII /-DEC-FOO/ .EVEN .PSECT RWDATA,RW3TIMBUF:;TIMYR: .WORD 0;YEARTTIMMON: .WORD 0BTIMDA: .WORD 0 ;DAY OF MONTH .BLKW 5 ;OTHER JUNK .PSECT RCODE,ROCVTDT: JSR PC,RSAV .MCALL GTIM$S) GTIM$S #TIMBUF ;GET DATE, TIME, ETC. AND+ ;SAVE ASCII DATE STUFF IN AREA POINTED ATE ;BY ENTRY R5.B! MOV R5,R2 ;PREPARE FOR DAY FIRST  MOV TIMDA,R0 ;CONVERT DAY JSR PC,NUM ;TO 2 ASCII DIGITSL MOV TIMMON,R1 ASL R1Y ASL R1 ;MULT MONTH BY 4 * ADD #MONTHS,R1 ;GET ADDR OF 4 ASCII CHARS ADD #2,R5 ;POINT R5 PAST00JJJH+%O-%TADATADATA DAY .REPT 4 MOVB (R1)+,(R5)+T .ENDR- MOVB #'-,(R5)+ ;ADD A SECOND "-" AFTER MONTH MOV R5,R2 MOV TIMBUF,R0 ;YEAR-1900V JSR PC,NUM ;CONVERT ASCII; JSR PC,RRES ;PUT REGS BACK RTS PC ;THAT'S ALL;,8;NUMBER CONVERT SUB TO GIVE 2 ASCII DIGITS FROM ENTRY R0;PUTTING RESULT WHERE R2 POINTS#NUM: JSR PC,RSAV MOV R0,R1 CLR R0# DIV #12,R0 ;DIV ON EVEN REG ADD #60,R0D& ADD #60,R1 ;ADD ASCII TO QUOT AND REM MOVB R0,(R2)+ MOVB R1,(R2)+ ;PUT OUT #H JSR PC,RRES RTS PCG .END LIST.PAPER SIZE 50,65.LEFT MARGIN 5.RIGHT MARGIN 60 .NOJUSTIFY.TITLE ^^LIST-11\\.SUBTITLE ^VERSION 3.22 .NUMBER 1.FILL .SPACING 1.CENTER ^^LIST-11\\.SKIP 2 .INDENT 5:^^LIST-11\\ IS A PROGRAM FOR REFORMATTING ^^ASCII\\ FILES.6^IT CAN PUT UP TO 10 COLUMNS OF TEXT ON A SINGLE PAGE.$^TO RUN ^^LIST-11\\, THE USER TYPES:.SKIP 1 .INDENT 2^^LST [FILEOUT=FILEIN]\\.SKIP 1 ^THE COMPUTER WILL RESPOND WITH:.SKIP 1 .INDENT 2^^LST>\\.SKIP 1>^THE USER SHOULD NOW TYPE THE SPECIFICATION FOR THE FILE TO BEPRINTED IN THE GENERAL FORM:.SKIP 1 .INDENT 2:OUTDEV:OUTFILE.EXT/OUTSW:VAL=INDEV:INFILE.INEXT/SWITCH:VAL.SKIP 2 ^SWITCHES.SKIP 1 .INDENT 5?^THE NUMBER OF COLUMNS WHICH SHOULD BE USED IS SPECIFIED BY THE7/^C^OLUMNS SWITCH. ^ITS VALUE IS A NUMBER FROM 0 TO 15,CWHICH INDICATES THE NUMBER OF DESIRED COLUMNS. ^IF THE NUMBER IS 0,@AS MANY COLUMNS AS WILL FIT WILL BE USED, UP TO A MAXIMUM OF 15.;^THE NUMBER OF COLUMNS IS RESET TO ZERO AFTER EVERY FILE IS@LISTED AND MUST BE SPECIFIED ANEW IF IT SHOULD BE SET OTHERWISE.E^PAPER SIZES (^L^ENGTH AND ^W^IDTH) ARE NOT CHANGED BETWEEN LISTINGS,ASO THAT THESE NEED BE SPECIFIED ONLY WHERE THEY MUST BE DIFFERENTBFROM THE DEFAULT, OR ON THE FIRST LISTING. ^ALL OTHER SWITCHES ARERESET BETWEEN FILES..SKIP 1 .INDENT 5B^THE /^T^R SWITCH, IF PRESENT, CAUSES LINES WHICH ARE TOO WIDE FOR0THE SPECIFIED NUMBER OF COLUMNS TO BE TRUNCATED.?^IF IT IS NOT SPECIFIED, LINES WHICH ARE TOO LONG WILL BE SPLIT7AND ALL BUT THE FIRST PART WILL BE PRECEDED BY A "-->"..SKIP 1 .INDENT 5>^THE /^N^H SWITCH, IF PRESENT, CAUSES THE TWO LINE ^^LIST-11\\HEADER TO BE OMITTED..SKIP 1 .INDENT 58^THE /^F^F SWITCH, IF PRESENT, CAUSES A FORM FEED IN THE4INPUT FILE TO START A NEW COLUMN IN THE OUTPUT FILE.4^IF THE /^F^F SWITCH IS NOT SPECIFIED, FORM FEEDS INTHE INPUT FILE ARE IGNORED..SKIP 1 .INDENT 59^THE /^C^T SWITCH, IF PRESENT, CAUSES A TAB TO BE CHANGED5INTO A SPACE, INSTEAD OF SKIPPING TO THE NEXT COLUMN..SKIP 1 .INDENT 5:^THE OUTPUT PAGE SIZE MAY BE SPECIFIED BY THE /^W^IDTH AND9/^L^ENGTH SWITCHES, WHICH SPECIFY THE NUMBER OF AVAILABLE<PRINT COLUMNS AND LINES, RESPECTIVELY. ^ONCE A PAGE SIZE HAS9BEEN SPECIFIED, IT IS RETAINED UNTIL SPECIFICALLY CHANGED BY ANOTHER SWITCH SPECIFICATION..SKIP 1 .INDENT 5A^THE /^P^AUSE SWITCH WILL CAUSE OUTPUT TO STOP AT THE END OF EACH;PAGE. ^THE OUTPUT WILL BE RESTARTED WHEN SOMETHING IS TYPEDTO THE COMMAND INPUT DATASET.8^LIST-11 WILL PROMPT FOR THE INPUT BY TYPING THE SPECIALPROMPT:.SKIP 1^^LIST PAUSE>\\.SKIP 1@AFTER WHICH ANY INPUT IS LEGAL AND SERVES ONLY TO END THE PAUSE.@^A CONTROL-^Z AT A PAUSE ENDS THE CURRENT LISTING AND WILL CAUSE=^^LIST\\-11 TO PROMPT WITH ANOTHER "^L^S^T>" FOR A NEW SET OFFILE SPECIFIERS..SKIP 1 .INDENT 59^THE /^E^H:"TEXT" SWITCH WILL ALLOW A SECOND HEADER OF UP9TO 80 CHARACTERS TO BE PLACED BELOW THE FIRST HEADER LINE IN A LISTING..SKIP 1 .INDENT 5A^THE /^E^D:NNN SWITCH WILL CAUSE THE TOP OF FORMS CHARACTER TO BEECHANGED FROM A FORM FEED TO THE VALUE GIVEN IN ^^OCTAL\\ IN THE "NNN"BSWITCH VALUE. ^THIS MAY BE A 7 FOR A BELL BETWEEN PAGES, A 4 FOR A@CONTROL ^D, OR WHATEVER ELSE IS DESIRED. ^THE CONTROL ^D WAS FOR=USE WITH THE OLD ^^VT01\\ DEVICE, WHERE IT SPECIFIED THAT THE)SCREEN SHOULD BE ERASED AT EACH NEW PAGE..SKIP 1 .INDENT 58^THE /^R^O:N SWITCH CAUSES THE OUTPUT TO FORCE EACH PAGE2TO BE N LINES LONG. ^THIS IS INTENDED FOR USE WITH5ROLL PAPER. ^IN ADDITION, THE FORM FEEDS00KJH H6%! ! ARE REPLACED7BY A LINE OF "=" TO DELIMIT THE PAGES. ^BOTH THE SWITCH&AND N MUST BE SPECIFIED FOR EACH FILE..SKIP 1 .INDENT 54^THE /^R^L:N SWITCH CAUSES EACH LINE TO BE EXACTLY N.CHARACTERS LONG (FOLLOWED BY A ^C^R AND ^L^F).'^THIS IS INTENDED TO ALLOW OUTPUT TO BE(OBTAINED FROM THE ^VERSATEK PRINTER WHEN4IT GETS INTO THE "IGNORE ^C^R MODE"; IN THIS CASE, N-SHOULD BE 132. ^BOTH THE SWITCH AND N MUST BESPECIFIED FOR EACH FILE..SKIP 1 .INDENT 5<^THE /^U^C SWITCH CAUSES LOWER CASE LETTERS TO BE TRANSLATED<TO THE CORRESPONDING UPPER CASE CHARACTERS. ^THIS IS HELPFUL=WHEN LISTING ON A DEVICE NOT CONTAINING THE FULL 96-CHARACTER^^ASCII\\ CHARACTER SET..SKIP 1 .INDENT 5>^THE /^N^P SWITCH CAUSES PAGINATION TO BE SUPPRESSED; THAT IS,?NO HEADERS ARE PRODUCED AND NO FORMFEEDS OR OTHER PAGE DIVIDERS=ARE INSERTED IN THE FILE. ^THIS MODE MAY BE USED (POSSIBLY IN:CONJUNCTION WITH THE /^^RL\\:NNN SWITCH) TO PRODUCE A FILEOF KNOWN MAXIMUM LINE WIDTH.<^NOTE THAT A LENGTH OF 1 IS LEGAL WHERE THE /^N^P SWITCH HAS;BEEN GIVEN. ^IT IS USEFUL FOR PRODUCING FILES WITH NO EXTRA@BLANK LINES AT THE END BUT WITH TABS CONVERTED TO SPACES. ^SINCE<THE "PAGE" IS THEN SO SHORT, THE /^C^O SWITCH SHOULD BE USED,TO SPECIFY THE NUMBER OF COLUMNS EXPLICITLY..SKIP 1 .INDENT 5H^THE /^S^L:NN SWITCH CAUSES ^^LST\\ TO ^SKIP ^LETTERS IN THE INPUT FILE.F^IT WILL SKIP THE FIRST "NN" LETTERS OF EACH RECORD OF THE INPUT FILE,DPERMITTING ONE TO EASILY RETRIEVE DATA THAT HAS BEEN OFFSET. ^IT MAYBBE USED, FOR EXAMPLE, TO GENERATE ASSEMBLER FILES FROM ASSEMBLY OR^^FORTRAN\\ LISTINGS..SKIP 1 .INDENT 5<^THE /^R^I:NN SWITCH CAUSES THE OUTPUT TO BE "RIGHT SHIFTED"<BY NN SPACES (THOUGH THE HEADER IF ANY IS NOT), LEAVING SOME?WHITESPACE TO THE LEFT OF THE OUTPUT TEXT. ^THE VALUE OF NN MAY@NOT BE LARGER THAN 31 AND IS MASKED TO 31 BEFORE USE. ^NOTE THAT?TEXT MAY WRAP AROUND IF TRUNCATE MODE IS NOT IN EFFECT AND THAT=THIS CAN CAUSE TEXT TO APPEAR AT THE NORMAL LEFT MARGIN. ^THEBEFFECT OF THE /^M^S SWITCH WITH THE ^^RI\\ SWITCH IS TO INTERFERE.;^THE EFFECT IS OBTAINED BY MODIFICATION OF THE TEXT AS SEEN BY ^^LST\\..SKIP 1 .INDENT 5C^THE /^M^S SWITCH CAUSES MULTIPLE SPACES IN THE INPUT TO BE CHANGEDFTO SINGLE SPACES PRIOR TO LISTING. ^NOTE THAT THE TAB COMPRESSION INTO@SPACES WILL NOT GENERATE MULTIPLE SPACES FOR THIS OPERATION, BUTHMULTIPLE SPACES IN THE SOURCE WILL. ^A SECOND PASS THROUGH ^^LIST\\ WILL*ALLOW SUCH SPACES TO BE HANDLED CORRECTLY..SKIP 1 .INDENT 5H^THE /^B^S SWITCH PERMITS THE COLUMN SEPARATOR TO BE A SPACE RATHER THAN/THE USUAL EXCLAMATION POINT (!) WHEN SPECIFIED..SKIP 1 .INDENT 5E^THE /^S^C:CHAR SWITCH SPECIFIES THE COLUMN SEPARATOR CHARACTER. ^ANYDPRINTABLE ^^ASCII\\ CHARACTER MAY BE USED AND WILL REPLACE THE USUALKEXCLAMATION POINT. ^IF NEITHER /^S^C NOR /^B^L IS SPECIFIED, AN EXCLAMATIONKPOINT WILL BE USED. ^IF BOTH ARE SPECIFIED, THE SEPARATOR GIVEN (OR !) WILLDBE USED, BUT THE EXTRA SPACE USED IN SEPARATING COLUMNS WILL BE LEFTBOUT. ^THIS WILL MAKE THE PAGE SOMEWHAT NARROWER THAN OTHERWISE, SOEIT MAY BE DESIRABLE TO SET THE /^^WI\\DTH SWITCH TO A LARGER VALUE TOIALLOW THE EXTRA SPACE TO BE RECLAIMED. ^UP TO 18 COLUMNS MAY BE SPECIFIEDIN ^VERSION 3.2 OF ^^LIST-11\\..SKIP 1 .INDENT 5B^THE /^L^C SWITCH WILL CAUSE ALL OUTPUT CHARACTERS TO BE CONVERTEDDTO ^^LOWER\\ CASE. ^THIS IS OCCASIONALLY USEFUL AND WAS DONE BECAUSEAIT WAS EASY. ^THE ^^ASCII\\ CODES FROM ^A TO ^Z ARE AFFECTED, NOTSPECIAL CHARACTERS..SKIP 1 .INDENT 5H^THE /^F^A:CCC SWITCH WILL SET THE "CONTINUATION LINE" MARKER CHARACTERSATO "CCC". THESE DEFAULT TO "-->" BUT MAY BE MADE OTHER CHARACTERS0TO TREAT CONTINUATION LINES IN THE WAY YOU WANT..SKIP 1.CENTER^^OUTPUT SWITCHES\\ .PARAGRAPH?^OUTPUT SWITCHES MAY BE SPECIFIED TO MODIFY ACTION TAKEN ON THE.OUTPUT FILE. THERE ARE CURRENTLY TWO SWITCHES. .PARAGRAPH@^THE /^A^P SWITCH CAUSES THE OUTPUT FILE TO BE OPENED FOR APPENDERATHER THAN CREATE. ^THE FILE MUST ALREADY EXIST, AND NEW OUTPUT WILLCBE ADDED00KKJH+%O-%TADATADATA TO IT AT THE END. ^THIS ALLOWS SEVERAL ^^LST\\ LISTINGS TODBE MERGED FOR SPOOLING WITHOUT ADDING REDUNDANT HEADERS ON EACH FILEIN THE PRINT SPOOLER. .PARAGRAPH@^THE /^S^P:NUMBER SWITCH SPECIFIES THAT THE OUTPUT FILE IS TO BE:SPOOLED WHEN CLOSED. ^THE "NUMBER" DEFAULTS TO 1 BUT UNDERF^^RSX11D\\ OR ^^IAS\\ IT MAY BE UP TO 32 AND SPECIFIES HOW MANY COPIESOF THE FILE ARE TO BE SPOOLED.D^NOTE THAT BECAUSE THE SPOOL MACROS DO NOT PERMIT ANY DELETIONS, THEDFILE SPOOLED WILL NOT BE DELETED BY THE SPOOLERS IN CURRENT VERSIONS<OF ^^RSX\\ OR ^^IAS\\. ^MULTIPLE COPIES MAY OR MAY NOT WORK..SKIP 2 ^EXAMPLE:.SKIP 1 .INDENT 2 ^^MCR>LST .INDENT 2LST>LP:=PROG.SRC/TR/CO:3 .INDENT 2!MCR>LST LP:=MANUAL.DOC/NH/FF/CO:2.SKIP 16C^T\\HE FIRST FILE, ^^DK:PROG.SRC\\, IS PRINTED ON THE LINE PRINTER,TIN A 3 COLUMNS PER PAGE FORMAT.9^THE FILE ^^MANUAL.DOC\\ IS THEN PRINTED WITHOUT A HEADER>AND EACH "PAGE" BEGINNING AT THE TOP OF THE NEXT COLUMN. ^THIS>IS USEFUL FOR LISTING ^^RUNOFF\\ OUTPUT FILES IN A TWO COLUMNSPER PAGE FORMAT..SKIP 2.P^^BUGS\\.BRD^^LST\\ SOMETIMES CRASHES AT THE LAST PAGE IN A DOCUMENT IN VARIABLEACOLUMN SIZE MODE. ^IF THIS HAPPENS, TRY SETTING A FIXED NUMBER OFCOLUMNS.iFrom: HENRY::IN%"CUNNINGHAMR%HAW.SDSCNET%LLL-MFE.ARPA%SRI-KL.ARPA%relay.cs.net@rca.com" 25-SEP-1986 12:58To: INFO-VAX@SRI-KL.ARPA#Subj: Setting up LN03s on a VMS/VAXFHere's an example of how I set up our LN03 printers here at the Hawaii9Institute of Geophysics, that might be of use to others. .Do this once to create a SYSDEVCTL library....K$ LIBRARY/CREATE/TEXT SYS$LIBRARY:SYSDEVCTL SYSTEM$DISK:[SOURCE.FORMS]*.TXT.$ SET FILE/PROT=W:RE SYS$LIBRARY:SYSDEVCTL.TLBIWhere the .TXT files could be almost anywhere. All they contain is setupLdevice control strings. For example, SYSTEM$DISK:[SOURCE.FORMS]PORTRAIT.TXT/contains just: "?20 J10m1;66r". 4COURPORT.TXT contains: ?20 J16m1;66r4COUR2PORT.TXT contains: ?20 J11m1;66r4ELITEPORT.TXT contains: ?20 J12m1;66r4LANDSCPE.TXT contains: ?21 J15m1;66r4BIGLAND.TXT contains: ?21 J19m1;66r4MEDLAND.TXT contains: ?21 J10m1;66r4SMLAND.TXT contains: ?21 J15m1;66rLN03RESET.TXT contains: !p$ JI put the characters into the text files by using EDIT/EDT in ChangeL(screen) mode, hitting GOLD then 155 then GOLD SPECINS. Note that you mightGwant to do something different than "?20 J" depending upon how you*set margins in portrait & landscape modes.OThen, define your forms. You only need to do this once, definitions carry overHon a reboot [in fact, I'd like to know how to clear old form names, does%START/QUEUE/MANAGER/NEW do it?] .... $ DEFINE/FORM- /SETUP=(PORTRAIT)- /STOCK=DEFAULT- /WIDTH=80-< /DESCRIPTION="LN03 PORTRAIT FORMAT [LN03 DEFAULT]" - PORTRAIT 20$ DEFINE/FORM- /SETUP=(COURPORT)- /STOCK=DEFAULT- /WIDTH=80-J /DESCRIPTION="LN03 COURIER FONT, PORTRAIT FORMAT [LIKE DEFAULT]" - COURPORT 21$ DEFINE/FORM- /SETUP=(COUR2PORT)- /STOCK=DEFAULT- /WIDTH=80-@ /DESCRIPTION="LN03 CONDENSED COURIER, PORTRAIT FORMAT" - COUR2PORT 22$ DEFINE/FORM- /SETUP=(ELITEPORT)- /STOCK=DEFAULT- /WIDTH=80-8 /DESCRIPTION="LN03 ELITE FONT, POTRAIT FORMAT" - ELITEPORT 23$ DEFINE/FORM- /SETUP=(LANDSCAPE)- /STOCK=DEFAULT- /MARGIN=(BOTTOM=0) -. /DESCRIPTION="LN03 LANDSCAPE FORMAT" - LANDSCAPE 10$ DEFINE/FORM- /SETUP=(SMLAND)- 00KKK H6%! ! /STOCK=DEFAULT- /MARGIN=(BOTTOM=0) -B /DESCRIPTION="LN03 LANDSCAPE FORMAT, SMALL COURIER FONT" - SMLAND 12$ DEFINE/FORM- /SETUP=(MEDLAND)- /STOCK=DEFAULT- /MARGIN=(BOTTOM=0) -< /DESCRIPTION="LN03 LANDSCAPE FORMAT, COURIER FONT" - MEDLAND 13K$ DEFINE/FORM- ! ***ONLY WORKS IF YOU HAVE AN LN03 PLUS*** /SETUP=(BIGLAND)- /STOCK=DEFAULT- /MARGIN=(BOTTOM=0) -; /DESCRIPTION="LN03 LANDSCAPE FORMAT, GOTHIC FONT" - BIGLAND 15JNote that the landscape modes have /MARGIN=(BOTTOM=0) in order to get more<lines per page, you might want to set things up differently.DIn your SYS$MANAGER:SYSTARTUP.COM, to be executed every reboot .....$ SET TERMINAL TXA3: - /PERMANENT- /device=ln03- /NOMODEM-5 /SPEED=4800- ! or whatever /NOWRAP- /NOBROADCAST-? /HOSTSYNC- ! probably not requiredC /PASTHRU- ! may be required for LN03+H /NOECHO- ! optional, probably gratuitiousD /NOTYPE_AHEAD ! optional, turns off loginsI$ SET DEVICE/SPOOLED=LASER3 TXA3 ! omit if you lock queue with ACL$ INITIALIZE/QUEUE/START-J /PROTECTION=(S:E,O:D,W:RW)- ! everyone can see what's in queue@ /BASE=3- ! /BASE=4 is more common /ON=TXA3:-K /DEFAULT=(NOBURST,FEED,NOFLAG,NOTRAILER)- ! TeXers do /NOFEEDK /SEPARATE=(RESET=(PORTRAIT))- ! RESET=(RESET,PORTRAIT) is better,A LASER3 ! ... but wastes a pageMNote that this is under VMS4.3. Under 4.4, you would also want to set up theDqueue with /FORM_DEFAULT=PORTRAIT, and it should be reasonable to doJ/DEFAULT=(NOBURST,FEED,FLAG,NOTRAILER) to include an 80-column flag page. Bob Cunningham$cunninghamr%haw.sdscnet@LLL-MFE.ARPA;$! This file runs over DECnet. It lets you send messages to;$! people in which both the to and from address they'll see<$! can be anything you like. This procedure could cause some?$! problems if used maliciously since it implies that you can'tD$! trust the "signature" on VAXmail any more than you can on DECmailF$! (which has a nodename/DMPM account and an extra option called XA orD$! ZA or some such thing that gets you direct into mumps from whence.$! you can play even worse tricks than these).C$! The mailer can therefore be dangerous in this form. However, itA$! can also be quite useful in allowing programs to generate mailB$! possibly interfacing with the VMS mail protocol, without having7$! to talk to the mail utility. For VMS at least 4.3...$! By Brian Griffin&$read sys$command/prompt="Node: " node$n:=# $n[0,8]=0"$open/read/write f 'node'::"mail="&$read sys$command/prompt="From: " from $write f from"$read sys$command/prompt="To: " to $to := 'to' $write f to $write f n $read f l$l=f$message(l)$write sys$output l8$read sys$command/prompt="To (for display): " to_display$write f to_display$l:+$read sys$command l/prompt="Text: "/end=end $write f l$goto l$end: $ write f n $ close f$exit$say:=write sys$output$say "Creating modtime.for"$create modtime.for$deck program modtime, ! MODTIME Version 1.0 June 1st, 1985; ! Written by Joe Meadows Jr., with thanks to the; ! Fred Hutchinson Cancer Research Center for kindly< ! allowing me to use their computing resources. !; ! If you have any questions, comments, ideas, or9 ! whatever, feel free to contact me via US Mail : ! Joe Meadows Jr.$00KKJH+%O-%TADATADATA ! 4841 268th Ave. N.E.! ! Redmond Wa. 98052' ! or via phone : (206) 827-7296 implicit integer (a-z) integer time(2)$ character buffer*80,file*252 external lib$put_output. call error(cli$get_value('File',file))< if (cli$present('log')) routine=%loc(lib$put_output)) if (cli$present('creation')) then5 call error(cli$get_value('creation',buffer)), call error(sys$bintim(buffer,time))- I=change_creation(file,time,routine) end if) if (cli$present('revision')) then5 call error(cli$get_value('revision',buffer)), call error(sys$bintim(buffer,time))- I=change_revision(file,time,routine) end if' if (cli$present('number')) then3 call error(cli$get_value('number',buffer))) call str$trim(buffer,buffer,len)4 call error(ots$cvt_ti_l(buffer(:len),time))+ I=change_revnum(file,time,routine) end if' if (cli$present('backup')) then3 call error(cli$get_value('backup',buffer)), call error(sys$bintim(buffer,time))+ I=change_backup(file,time,routine) end if+ if (cli$present('expiration')) then7 call error(cli$get_value('expiration',buffer)), call error(sys$bintim(buffer,time))/ I=change_expiration(file,time,routine) end if end$eod$say "Creating error.mar"$create error.mar$deck .title error-exit .entry error,0 blbs @4(ap),return $exit_s code=@4(ap) return: ret .end$eod$say "Creating time.mar"$create time.mar$deck .TITLE Change_Times; Author Joe Meadows$FABDEF$NAMDEFFAB: $FAB NAM=NAM?NAM: $NAM ESA=ES,ESS=NAM$C_MAXRSS,RSA=RS,RSS=NAM$C_MAXRSS'DELFAB: $FAB FNA=RS,FNS=NAM$C_MAXRSSES: .BLKB NAM$C_MAXRSSRS: .BLKB NAM$C_MAXRSSESD: .LONG 0,ESRSD: .LONG 0,RS$IODEF$ATRDEF$FIBDEFFIB: .BLKB FIB$K_LENGTH FIBD: .LONG FIB$K_LENGTH,FIB!DEVNAM: .LONG 0,NAM+NAM$T_DVI+1CHAN: .WORD 0ATR: .LONG 0,buffer,0buffer: .BLKB 35; FILENAME=4TIME=8 ROUTINE=12;) .ENTRY CHANGE_CREATION,^M" MOVW #ATR$S_CREDATE,ATR$ MOVW #ATR$C_CREDATE,ATR+2 BRB START) .ENTRY CHANGE_REVISION,^M" MOVW #ATR$S_REVDATE,ATR$ MOVW #ATR$C_REVDATE,ATR+2 BRB START' .ENTRY CHANGE_REVNUM,^M# MOVW #ATR$S_ASCDATES,ATR% MOVW #ATR$C_ASCDATES,ATR+2 BRB START' .ENTRY CHANGE_BACKUP,^M" MOVW #ATR$S_BAKDATE,ATR$ MOVW #ATR$C_BAKDATE,ATR+2 BRB START+ .ENTRY CHANGE_EXPIRATION,^M" MOVW #ATR$S_EXPDATE,ATR$ MOVW #ATR$C_EXPDATE,ATR+2 START: MOVQ @FILENAME(AP),R6 MOVB R6,FAB+FAB$B_FNS MOVL R7,FAB+FAB$L_FNA MOVQ @TIME(AP),buffer $PARSE FAB=FAB JSB ERROR$ MOVZBL NAM+NAM$T_DVI,DEVNAM $ASSIGN_S-' DEVNAM=DEVNAM,CHAN=CHAN JSB ERRORLOOP: $SEARCH FAB=FAB CMPL R0,#RMS$_PRV BEQL LOOP JSB ERROR. MOVC3 #6,NAM+NAM$W_FID,FIB+FIB$W_FID% CMPW ATR+2,#ATR$C_ASCDATES BNEQ CONT: $QIO_S CHAN=CHAN,FUNC=#IO$_ACCESS,P1=FIBD,P5=#ATR> MOVC5 #0,buffer+15,#0,#,buffer+15 MOVW @TIME(AP),buffer:CONT: $QIO_S CHAN=CHAN,FUNC=#IO$_MODIFY,P1=FIBD,P5=#ATR JSB ERROR TSTL @ROUTINE(AP) BEQL BLIP! MOVZBL NAM+NAM$B_RSL,RSD PUSHAL RSD MOVL @ROUTINE(AP),R6 CALLS #1,(R6)BLIP: BRW LOOPEXIT: CMPL R0,#RMS$_NMF BNEQ BYE MOVL #1,R0 BYE: RETERROR: BLBC R0,EXIT RSB .END$eod$s00&K(KK H6%! !ay "Creating modify.cld"$create modify.cld$deckP!************************************MODIFY*************************************define verb MODIFY image EXE$DIR:MODTIME, parameter P1 , label=FILE , prompt="File" value (required) qualifier CREATION value qualifier BACKUP value qualifier REVISION value qualifier NUMBER value qualifier EXPIRATION value qualifier LOG$eod$say "Compiling modtime.for"$fortran modtime$say "Compiling error.mar" $macro error$say "Compiling time.mar" $macro time!$say "Linking modtime,error,time"$link modtime,error,time+$say "Defining command MODIFY (modify.cld)"$set command modifyB$say "You need to define EXE$DIR to point to the where modtime is"IFollowing is a function requested by pjs%chico@jpl-vlsi.arpa for process Mwatching. After going through arpanet it may need some editing, specifically Othe up-arrows (carets) before the masks in .ENTRY statements and the up-arrows O(carets) between the G and entry names in JSB or CALLS or CALLG statements. TheLglobal variables G(caret)SCH$... may also loose their caret. (And they need them).---------- Cut here --------------------------D;*******************************************************************;; Program name: CHECKPRC;;; Function: Look at the state and PC of a process;&; Privileges required: CMKRNLC;****************************************************************** .TITLE CHECKPRC; $PCBDEF $PHDDEF $STATEDEF $IPLDEF;pid=4ret_sp=8 ret_state=12 ret_psl=16 proc_pc_off=4proc_state_off=8proc_sp_off=12proc_psl_off=16;1; CUR_PC = CHECKPRC(PID,CUR_SP,CUR_STATE,CUR_PSL) ; PID is input ; SP,STATE, PSL are output; .PSECT scratch pic,noexe,wrt proc_id: .blkl 1 krnl_args: .long 4 .address proc_pc .address proc_state .address proc_sp .address proc_psl proc_pc: .blkl 1proc_state: .blkl 1 proc_sp: .blkl 1 proc_psl: .blkl 1.psect.entry checkprc,^m<># movl @pid(ap),proc_idC $cmkrnl_s routin=take_care_of_pcb,arglst=krnl_args" cmpl r0,#ss$_nonexpr bneq okeydokey mnegl #1,r0 brb exit okeydokey:& movl proc_sp,@ret_sp(ap), movl proc_state,@ret_state(ap)( movl proc_psl,@ret_psl(ap) movl proc_pc,r0 exit: ret;; kernel mode code;. .entry take_care_of_pcb,^m .enable lsbH movl proc_pc_off(ap),r3 ;where to store the answerH movl proc_state_off(ap),r2 ;where to store the answerH movl proc_sp_off(ap),r5 ;where to store the answerH movl proc_psl_off(ap),r7 ;where to store the answerH MOVZWL PROC_ID,R0 ;get vector index from PID: setipl #ipl$_synch ;synchronize' JSB G^EXE$EPID_TO_PCB* BEQL NON_EXISTANT_PROCESS= ; cmpw r4,g^sch$gl_maxpix ;PID too large?* ; bgeq non_existant_processE ; movl g^sch$gl_pcbvec,r1 ;get base of PCB vector> ; movl (r1)[r4],r4 ;get PCB addressD CMPL R0,G^SCH$GL_NULLPCB ;don't do this to NULL* beql non_existant_process9 CMPL R0,G^SCH$GL_SWPPCB ;or SWAPPER* beql non_existant_process> movzwl pcb$w_state(r0),(r2) ;return argument& movl pcb$l_phd(r0),r6> movl phd$l_pc(r6),(r3) ;return argume00.K/KJH+%O-%TADATADATAnt> movl phd$l_psl(r6),(r7) ;return argument> movl phd$l_usp(r6),(r5) ;return argument$ movl #ss$_normal,r0 10$: setipl #0 retnon_existant_process:" movl #ss$_nonexpr,r0 brb 10$.end:C PROGRAM TO MAKE BLOCK DIAGRAMS AND OTHER SIMILAR CHARTS.(C AVAILABLE FOR USE ON THE CHARTS ARE: C BOXESC TRIANGLESC CIRCLES/ARCS C POINTSC LINES/VECTORSC ARROWHEADS C TEXTC5 INTEGER X,Y,ICOUNT,PLACE,X1,Y1,X2,Y2,TYPE,START(300)8 INTEGER Q,FINISH(300),VALUE,DIF,FINAL,CTYPE,BTYPE,TTYPE REAL LINE@ DIMENSION X(3),Y(3), BOX(100,4), TRIANGLE(100,6), CIRCLE(100,6)A DIMENSION POINT(100,2), LINE(500,4), ADOWN(100,2), ARIGHT(100,2)D DIMENSION AUP(100,2), ALEFT(100,2),TEXT(300,2),TYPE(300),LTYPE(500)6 DIMENSION CTYPE(100),ANGLE(100),RADIUS(100),ANGS(100) DIMENSION BTYPE(100),TTYPE(100) BYTE ESC,CSI@ CHARACTER*80 POSITION,LETTER,PNAME,FNAME,ONAME,QUOTE(500),TEMPC CHARACTER*2 SIZE CHARACTER*6 RESULT CHARACTER*3 ANSWER CHARACTER*1 ARCSIZE ESC=27 CSI=155 ICOUNT=06C KEEPS COUNT OF THE NUMBER OF BOXES IN THE DIAGRAM. J=0:C KEEPS COUNT OF THE NUMBER OF TRIANGLES IN THE DIAGRAM. K=08C KEEPS COUNT OF THE NUMBER OF CIRCLES IN THE DIAGRAM. L=06C KEEPS COUNT OF THE NUMBER OF LINES IN THE DIAGRAM. M=07C KEEPS COUNT OF THE NUMBER OF POINTS IN THE DIAGRAM. ND=0LC KEEPS COUNT OF THE NUMBER OF DOWNWARD FACING ARROW HEADS IN THE DIAGRAM. NR=0IC KEEPS COUNT OF THE NUMBER OF RIGHT FACING ARROW HEADS IN THE DIAGRAM. NU=0JC KEEPS COUNT OF THE NUMBER OF UPWARD FACING ARROW HEADS IN THE DIAGRAM. NL=0HC KEEPS COUNT OF THE NUMBER OF LEFT FACING ARROW HEADS IN THE DIAGRAM. X(1)=0 Y(1)=04C INITIALIZES THE VALUES OF X(1) AND Y(1) TO ZERO. S=0 X1=0 Y1=0 X2=799 Y2=479BC S=0 INDICATES THAT THERE HAS BEEN NO SCROLL COMMAND AS OF YET.<C THE SCREEN BOUNDARIES ARE INDICATED BY X1,Y1,X2, AND Y2. LINENUM=0 Q=0JC LINENUM INDICATES THE TOTAL NUMBER OF TEXT LINES IN THE DIAGRAM, WHEREHC Q INDICATES THE TOTAL NUMBER OF QUOTES.(THAT IS, THE NUMBER OF TIMES,C THE WRITE COMMAND HAS BEEN CALLED UPON.); PRINT *,'DO YOU WANT TO ADD TO AN OLD DIAGRAM?(YES OR NO)' READ(5,2) ANSWER 2 FORMAT(A3) IF (ANSWER .EQ. 'YES') THEN@ PRINT*,'WHAT IS THE NAME OF THE FILE?(NAME MUST END WITH .DAT)" $ (PUT THE ANSWER IN QUOTES)' READ(5,*)FNAME? PRINT*,'WHAT IS THE NAME OF THE PLOTTING FILE?(NAME MUST END'4 PRINT*,'WITH .FOR) (PUT THE ANSWER IN QUOTES)' READ(5,*)PNAME< PRINT*,'WHAT IS THE NAME OF THE OBJECT ARRAY FILE? (NAME' > PRINT*,'MUST END WITH .DAT) (PUT THE ANSWER IN QUOTES)' READ(5,*)ONAME$ OPEN(UNIT=4,NAME=FNAME,TYPE='OLD')$ OPEN(UNIT=7,NAME=PNAME,TYPE='OLD')$ OPEN(UNIT=8,NAME=ONAME,TYPE='OLD')$ OPEN(UNIT=9,NAME=ONAME,TYPE='NEW')AC TO READ IN THE TYPE AND POSITION OF THE OBJECTS OF THE DIAGRAM.6C EACH DIFFERENT TYPE OF OBJECT IS STORED IN AN ARRAY.0 READ(8,*) ICOUNT,J,K,L,M,ND,NR,NU,NL,Q,LINENUM: READ(8,*)((BOX(TEMPX,TEMPY), TEMPY=1,4), TEMPX=1,ICOUNT): READ(8,*)((TRIANGLE(TEMPX,TEMPY), TEMPY=1,6), TEMPX=1,J)8 READ(8,*)((CIRCLE(TEMPX,TEMPY), TEMPY=1,6), TEMPX=1,K)7 READ(8,*)((POINT(TEMPX,TEMPY), TEMPY=1,2), TEMPX=1,M)6 READ(8,*)((LINE(TEMPX,TEMPY), TEMPY=1,4), TEMPX=1,L)8 READ(8,*)((ADOWN(TEMPX,TEMPY), TEMPY=1,2), TEMPX=1,ND)9 READ(8,*)((ARIGHT(TEMPX,TEMPY), TEMPY=1,2), TEMPX=1,NR)6 READ(8,*)((AUP(TEMPX,TEMPY), TEMPY=1,2), TEMPX=1,NU)8 READ(8,*)((ALEFT(TEMPX,TEMPY), TEMPY=1,2), TEMPX=1,NL)6 READ(8,*)((TEXT(TEMPX,TEMPY), TEMPY=1,2), TEMPX=1,Q)! READ(8,*)(TYPE(TEMP), TEMP=1,Q)* READ(8,13)(QUOTE(TEMP), TEMP=1,LINENUM) " READ(8,*)(START(TEMP), TEMP=1,Q)# READ(8,*)(FINISH(TEMP), TEMP=1,Q)" READ(8,*)(LTYPE(TEMP), TEMP=1,L)" RE006K(KK H6%! !AD(8,*)(CTYPE(TEMP), TEMP=1,K)" READ(8,*)(ANGLE(TEMP), TEMP=1,K)# READ(8,*)(RADIUS(TEMP), TEMP=1,K)! READ(8,*)(ANGS(TEMP), TEMP=1,K)' READ(8,*)(BTYPE(TEMP), TEMP=1,ICOUNT)" READ(8,*)(TTYPE(TEMP), TEMP=1,J) ELSE IF (ANSWER .EQ. 'NO') THENA PRINT*,'WHAT IS THE NAME OF THE FILE?(NAME MUST END WITH .DAT)'* PRINT*,'(PUT THE ANSWER IN QUOTES)' READ(5,*)FNAME? PRINT*,'WHAT IS THE NAME OF THE PLOTTING FILE?(NAME MUST END'5 PRINT*,'WITH .FOR) (PUT THE ANSWER IN QUOTES)' READ(5,*)PNAME< PRINT*,'WHAT IS THE NAME OF THE OBJECT ARRAY FILE? (NAME' > PRINT*,'MUST END WITH .DAT) (PUT THE ANSWER IN QUOTES)' READ(5,*)ONAME$ OPEN(UNIT=4,NAME=FNAME,TYPE='NEW')$ OPEN(UNIT=7,NAME=PNAME,TYPE='NEW')$ OPEN(UNIT=9,NAME=ONAME,TYPE='NEW') END IFF PRINT*,'IS THE SIZE OF THE PAPER A OR B? IF IT IS A, WILL IT BE HELD'< PRINT*,'VERTICALLY OR HORIZONTALLY? (ANSWER: VA, HA, OR B)' READ(5,9)SIZE 9 FORMAT(A2)C C INSTRUCTIONSC1 WRITE(6,95)ESC,'\'1 PRINT *,'TO MOVE THE CURSOR USE THE ARROW KEYS.'C PRINT *,'WHEN THE CURSOR(OR CROSSHAIR) IS IN THE CORRECT POSITION'C PRINT*,'(CENTER FOR CIRCLE/ARC,TOP LEFT CORNER FOR SQUARES,VERTEX'@ PRINT*,'FOR TRIANGLES,EITHER END FOR LINE, AT POSITION OF/FOR' I PRINT*,'POINTS AND ARROWHEADS,EITHER 3,2,OR 1 SHIFTED UP ARROWS' 9 PRINT*,'ABOVE THE POSITION OF THE LARGE,MEDIUM OR SMALL'@ PRINT *,'PRINT(RESPECTIVELY)) PRESS ONE OF THE FOLLOWING KEYS:'# PRINT *,' B -TO DRAW A BOX'( PRINT *,' T -TO DRAW A TRIANGLE'( PRINT *,' O -TO DRAW A CIRCLE/ARC'% PRINT *,' P -TO DRAW A POINT'+ PRINT *,' A -TO DRAW A LINE/VECTOR'6 PRINT *,' D -TO DRAW AN ARROWHEAD FACING DOWN'> PRINT *,' R -TO DRAW AN ARROWHEAD FACING TO THE RIGHT' 3 PRINT *,' U -TO DRAW AN ARROWHEAD FACING UP' ; PRINT *,' L -TO DRAW AN ARROWHEAD FACING TO THE LEFT' PRINT *,' W -TO WRITE TEXT'8 PRINT *,' S -TO SCROLL THE SCREEN OR REDRAW THE SCREEN'( PRINT *,' X -TO ERASE FROM THE DIAGRAM'( PRINT *,' I -TO PRINT THE INSTRUCTIONS'" PRINT*,'PRESS RETURN TO CONTINUE' READ(5,3)IFLAG,DUMMY@ PRINT*,' G -TO GO BACK WHERE YOU WERE WITHOUT DRAWING ANYTHING'! PRINT *,' E -TO END THE PROGRAM' PRINT*,' ' PRINT*,' 'A PRINT*,'THEN MOVE THE CURSOR TO THE OPPOSITE CORNER OF THE BOX,'E PRINT*,' THE OTHER END OF THE LINE, OR THE SECOND VERTEX OF'H PRINT*,' THE TRIANGLE. THEN, WHEN THE CURSOR IS IN THE CORRECT'# PRINT*,' POSITION, PRESS ''G''.' PRINT*,' 'G PRINT*,' TO DRAW DASHED LINES OR BOXES, PRESS ''Y'' INSTEAD OF ''G'''* PRINT*,' AT THE END OF THE LINE OR BOX.' PRINT*,' 'C PRINT*,' THIS STEP MUST THEN BE REPEATED FOR THE THIRD VERTEX OF'E PRINT*,' THE TRIANGLE, PRESSING ''G''(FOR A SOLID BORDER) OR ''Y'''" PRINT*,' (FOR A DASHED BORDER).' PRINT*,' 'F PRINT*,'OR, MOVE THE CURSOR TO THE STARTING POSITION ON THE TEXT AND': PRINT*,'PRESS 1,2, OR 3 FOR SMALL, MEDIUM OR LARGE PRINT' PRINT*,' '" PRINT*,'PRESS RETURN TO CONTINUE' READ(5,3)IFLAG,DUMMYH PRINT*,'FOR CIRCLES/ARCS, MOVE THE CURSOR TO A POINT ON THE CIRCLE/ARC'E PRINT*,'(INDICATING THE BEGINNING OF THE CIRCLE/ARC, WHICH IS DRAWN'C PRINT*,'COUNTER-CLOCKWISE FROM THIS POINT) AND PRESS ''G'',''H'','+ PRINT*,'---------------------------------'@ PRINT*,' ''J'',OR ''K''' PRINT*,' 'E PRINT*,' G -WHEN THE STARTING ANGLE<=180 AND THE TOTAL ANGLE<=180'( PRINT*,' OR WHEN DRAWING A CIRCLE'D PRINT*,' H -WHEN THE STARTING ANGLE<=180 AND THE TOTAL ANGLE>180'C PRINT*,' J -WHEN THE STARTING ANGLE>180 AND THE TOTAL ANGLE>180'D PRINT*,' K -WHEN THE STARTING ANGLE>180 AND THE TOTAL ANGLE<=180'E PRINT*,'THE STARTING ANGLE IS THE ANGLE OF THE BEGINNING OF THE ARC'B PRINT*,'MEASURED RELATIVE TO THE HORIZONTAL AXIS COMING FROM THE'D PRINT*,'CENTER OF THE ARC. THE TOTAL ANGLE IS THE ANGLE OF THE ARC'5 PRINT*,'MEASURED RELATIVE TO THE STARTING POSITION.' PRINT*,' 'D PRINT*,'THE CURSOR MUST NOW BE MOVED TO THE ENDING POSITION00>K/KJH+%O-%TADATADATA OF THE'- PRINT*,'CIRCLE/ARC AND PRESS ''G'' OR ''Y'''* PRINT*,' G -FOR SOLID LINED CIRCLE/ARC'+ PRINT*,' Y -FOR DASHED LINED CIRCLE/ARC'" PRINT*,'PRESS RETURN TO CONTINUE' READ(5,3)IFLAG,DUMMYF PRINT*,'YOU MAY USE NO MORE THAN 50 CHARACTERS ON EACH LINE OF TEXT.'C PRINT*,'TO GET OUT OF THE TEXT MODE OF THE PROGRAM PRESS A SINGLE'? PRINT*,'QUOTE MARK.('') SINCE THIS SIGNIFIES THE END OF TEXT,'3 PRINT*,'YOU CANNOT USE ANY QUOTES IN YOUR LABELS.' PRINT*,' ' PRINT*,'TO ERASE AN OBJECT:'B PRINT*,'FIRST PRESS ''X'' ON THE FIRST POINT OF THE OBJECT AS IF'? PRINT*,'DRAWING IT. IF THE OBJECT IS A POINT OR AN ARROWHEAD,'& PRINT*,'PRESS THE ASSOCIATED LETTER.'D PRINT*,'OTHERWISE MOVE THE CURSOR TO THE OTHER POINT ON THE OBJECT' PRINT*,'THEN PRESS:'$ PRINT *,' B -TO ERASE A BOX'G PRINT *,' T -TO ERASE A TRIANGLE(YOU MUST THEN ENTER THE THIRD'% PRINT *,' POINT BY PRESSING ''G'')'F PRINT *,' O -TO ERASE A CIRCLE/ARC (YOU DON''T NEED TO DRAW THE'" PRINT*,' THIRD POINT.)'& PRINT *,' P -TO ERASE A POINT', PRINT *,' A -TO ERASE A LINE/VECTOR'7 PRINT *,' D -TO ERASE AN ARROWHEAD FACING DOWN'? PRINT *,' R -TO ERASE AN ARROWHEAD FACING TO THE RIGHT' 4 PRINT *,' U -TO ERASE AN ARROWHEAD FACING UP' " PRINT*,'PRESS RETURN TO CONTINUE' READ(5,3)IFLAG,DUMMY< PRINT *,' L -TO ERASE AN ARROWHEAD FACING TO THE LEFT' PRINT *,' W -TO ERASE TEXT' PRINT*,' ' PRINT*,' ' PRINT*,' ' PRINT*,' 'D PRINT*,'IF, FOR SOME REASON, YOU ENTER AND THEN EXIT THE TEXT MODE'@ PRINT*,'WITHOUT WRITING ANYTHING, MAKE SURE YOU ERASE THE TEXT'@ PRINT*,'ANYWAY. IF YOU DON''T, IT MAY MESS UP THE PROGRAM AT A'% PRINT*,'LATER TIME WHEN RUNNING IT.' PRINT*,' '= PRINT*,'WHEN IN THE TEXT MODE, YOU CAN USE THE SINGLE SPACE'@ PRINT*,'DELETE KEY TO MAKE CORRECTIONS ON THE LINE YOU ARE ON.'G PRINT*,'ONCE YOU HIT RETURN YOU CAN NOT FIX ANY OF THE PREVIOUS LINES' PRINT*,'USING THE DELETE KEY.' PRINT*,' 'F PRINT*,'WHEN ERASING TEXT, YOU MUST POSITION THE CROSSHAIR 1 SHIFTED'C PRINT*,'UPWARD ARROW ABOVE THE TEXT FOR SMALL PRINT, 2 SINGLE AND'F PRINT*,'2 SHIFTED UPWARD ARROWS ABOVE THE MEDIUM PRINT, AND 4 SINGLE'< PRINT*,'AND 3 SHIFTED UPWARD ARROWS ABOVE THE LARGE PRINT.'" PRINT*,'PRESS RETURN TO CONTINUE' READ(5,3)IFLAG,DUMMYE PRINT*,'WHEN THE TEXT IS ERASED, EVERYTHING THAT WAS ENTERED DURING'D PRINT*,'THAT 1 ENTRY AND 1 EXIT OF THE TEXT WRITING PORTION OF THE'D PRINT*,'PROGRAM WILL BE ERASED. IT IS THEREFOR ADVISABLE TO', PRINT*,'ENTER THE TEXT A LITTLE AT A TIME.' PRINT*,' 'C PRINT*,'MAKE SURE YOU GO SLOW AND DO NOT TYPE ANYTHING UNLESS YOU'. PRINT*,'SEE THE CROSSHAIR OR THE TEXT CURSOR'= PRINT*,'IF YOU DO GO TOO FAST YOU WILL CAUSE AN INPUT ERROR'/ PRINT*,'AND END UP LOSING WHAT YOU HAVE DONE.' PRINT*,' '3 PRINT*,'IN THIS PROGRAM USE ONLY CAPITAL LETTERS.' PRINT*,' 'B PRINT*,'WHEN YOU USE B-SIZE PAPER YOU CAN DRAW IN THE EQUIVALENT'E PRINT*,'OF 4 SCREENS BY USING THE SCROLL COMMAND. WHEN USING A-SIZE'H PRINT*,'PAPER, (VERTICALLY) ONLY USE THE EQUIVALENT OF 2 SCREENS (LEFT'; PRINT*,'TOP AND BOTTOM SCREENS). WHEN USING A-SIZE PAPER,'G PRINT*,'(HORIZONTALLY) ONLY USE 1 AND 1/2 SCREENS DOWN AND, 1 AND 1/4' PRINT*,'SCREENS OVER.' PRINT*,' ' PRINT*,' '" PRINT*,'PRESS RETURN TO CONTINUE' READ(5,3)IFLAG,DUMMYB PRINT*,'TO AVOID LOSING ADDITIONS TO A DIAGRAM, IT IS ADVISABLE,'A PRINT*,'THAT YOU PERIODICALLY END THE PROGRAM (PRESS ''E'') AND'? PRINT*,'START UP AGAIN, SO THAT, IF THE SYSTEM SHUTS DOWN, OR'E PRINT*,'AN ERROR OCCURS (CAUSING AN ABNORMAL EXIT FROM THE PROGRAM)'- PRINT*,'THE WHOLE DIAGRAM WILL NOT BE LOST.' PRINT*,' 'D PRINT*,'IF THE TEXT CURSOR (A DIAMOND WITH A CROSS IN IT) APPEARS' D PRINT*,'WHEN IT SHOULD NOT BE THERE, OR WHEN TEXT APPEARS WHEN IT' E PRINT*,'SHOULD NOT, PRESS THE ''SET-UP'' CONTROL BUTTON, THEN PRESS'F PRINT*,'''RECALL''(USING THE ARROW KEYS TO GET THERE) AND THEN PRESS'F PRINT*,'''ENTER'',THEN PRESS''S00FK(KK H6%! !ET-UP'' AGAIN ,THEN PRESS THE''LOCK'''G PRINT*,'KEY AND THEN RETURN. YOU WILL EITHER STILL BE IN THE PROGRAM,'F PRINT*,'OR YOU WILL SEE THE ''$'' SYMBOL SIGNIFYING THAT YOU ARE OUT' PRINT*,'OF THE PROGRAM.' PRINT*,' 'F PRINT*,'WHEN YOU UNINTENTIONALLY EXIT FROM THE PROGRAM THE DATA FILE'C PRINT*,'WHICH STORES ALL THE DIFFERENT ARRAYS WILL BE EMPTY. THIS'C PRINT*,'WILL CAUSE AN ERROR WHEN YOU TRY TO RERUN THE PROGRAM. TO'G PRINT*,'AVOID THIS, CHECK THE ARRAY OBJECT DATA FILE BEFORE RERUNNING'7 PRINT*,'THE PROGRAM. IF THE FILE IS EMPTY, DELETE IT.'" PRINT*,'PRESS RETURN TO CONTINUE' READ(5,3)IFLAG,DUMMY3 FORMAT(Q,F10.3)A CALL SETUP(ICOUNT,J,K,L,M,ND,NR,NU,NL,BOX,TRIANGLE,CIRCLE,POINT,D $ LINE,ADOWN,ARIGHT,AUP,ALEFT,S,TEXT,Q,START,FINISH,TYPE,QUOTE,% $ LTYPE,CTYPE,ANGLE,BTYPE,TTYPE)DC SETUP IS A SUBROUTINE WHICH DRAWS ALL THE OBJECTS ON THE SCREEN INC THE CORRECT POSITIONS. FC THE NEXT THREE COMMANDS ARE REGIS COMMANDS. THE FIRST ONE ALLOWS YOUEC TO ENTER REGIS. THE SECOND, POSITIONS THE CROSSHAIR, AND THE THIRD,FC ACTIVATES THE REPORT POSITION COMMAND WHICH READS IN THE COORDINATES>C OF THE POINT AND THE LETTER WHICH WAS PRESSED TO SIGNIFY IT. WRITE(6,91) ESC,'Pp'#50 WRITE(6,*)'P[',X(1),',',Y(1),']' WRITE(6,92)  READ(5,93) POSITION LETTER=POSITION(1:1) FC CONVERT IS A SUBROUTINE WHICH CONVERTS THE CHARACTER STRING GIVEN BY@C THE REPORT POSITION COMMAND INTO TWO DECIMAL NUMBERS, X AND Y.! CALL CONVERT(POSITION,X(1),Y(1))HC THE FOLLOWING IF STATEMENTS DETERMINE WHICH PART OF THE PROGRAM SHOULDFC BE ENACTED DEPENDING ON WHICH LETTER WAS HIT DURING REPORT POSITION. IF (LETTER .EQ.'G') THEN GOTO 50 ELSE IF (LETTER .EQ.'B') THEN GOTO 100 ELSE IF (LETTER .EQ.'T') THEN GOTO 500 ELSE IF (LETTER .EQ.'O') THEN GOTO 1000 ELSE IF (LETTER .EQ.'P') THEN GOTO 5000 ELSE IF (LETTER .EQ.'A') THEN GOTO 5100 ELSE IF (LETTER .EQ.'D') THEN GOTO 5200 ELSE IF (LETTER .EQ.'R') THEN GOTO 5300 ELSE IF (LETTER .EQ.'U') THEN GOTO 5400 ELSE IF (LETTER .EQ.'L') THEN GOTO 5500 ELSE IF (LETTER .EQ.'X') THEN GOTO 5550 ELSE IF (LETTER .EQ.'W') THEN GOTO 5600 ELSE IF (LETTER .EQ.'S') THEN GOTO 5699 ELSE IF (LETTER .EQ.'I') THEN GOTO 1 ELSE IF (LETTER .EQ.'E') THEN GOTO 5700 ELSE WRITE(6,95)ESC,'/' PRINT*,'INVALID INPUT' DO 4, TIME=1,10000 4 CONTINUE GOTO 1 END IF DC THE FOLLOWING COMMANDS WILL DRAW A BOX AT THE POSITION SPECIFIED. >C THE COORDINATES OF EACH BOX WILL BE STORED IN THE BOX ARRAY. 100 ICOUNT = ICOUNT+1! WRITE(6,*)'P[',X(1),',',Y(1),']' WRITE(6,92) READ(5,93)POSITION! CALL CONVERT(POSITION,X(2),Y(2)) BOX(ICOUNT,1)=X(1) BOX(ICOUNT,2)=X(2) BOX(ICOUNT,3)=Y(1) BOX(ICOUNT,4)=Y(2) X(1)=X(2) Y(1)=Y(2) LETTER=POSITION(1:1)CC THIS IF STATEMENT DETERMINES IF THE BOX IS TO HAVE A SOLID BORDERIC OR A DASHED ONE. IF BTYPE EQUALS 1, THE BORDER WILL BE SOLID, IF BTYPE +C EQUALS 2, THEN THE BORDER WILL BE DASHED. IF (LETTER .EQ.'Y') THEN4 WRITE(6,*)'P[',BOX(ICOUNT,1),',',BOX(ICOUNT,3),']' WRITE(6,*)'P[]V(W(P4(M5)))'! WRITE(6,*)'[',BOX(ICOUNT,2),']'" WRITE(6,*)'[,',BOX(ICOUNT,4),']'" WRITE(6,*)'[',BOX(ICOUNT,1),']' " WRITE(6,*)'[,',BOX(ICOUNT,3),']' BTYPE(ICOUNT)=2 GOTO 50 ELSE7 WRITE(6,*)'P[',BOX(ICOUNT,1),',',BOX(ICOUNT,3),']' " WRITE(6,*)'V[',BOX(ICOUNT,2),']'" WRITE(6,*)'[,',BOX(ICOUNT,4),']'" WRITE(6,*)'[',BOX(ICOUNT,1),']' " WRITE(6,*)'[,',BOX(ICOUNT,3),']' BTYPE(ICOUNT)=1 END IF IF (LETTER .EQ.'G') THEN GOTO 50 ELSE IF (LETTER .EQ.'B') THEN GOTO 100 ELSE IF (LETTER .EQ.'T') THEN GOTO 500 ELSE IF (LETTER .EQ.'O') THEN GOTO 1000 ELSE IF (LETTER .EQ.'P') THEN GOTO 5000 ELSE IF (LETTER .EQ.'A') THEN GOTO 5100 ELSE IF (LETTER .EQ.'D') THEN GOTO 5200 ELSE IF (LETTER .EQ.'R') THEN GOTO 5300 ELSE IF (LETTER .EQ.'U') THEN GOTO 5400 ELSE IF (LETTER .EQ.'L') THEN GOTO 5500 ELSE IF (LETTER .EQ.'00NK/KJH+%O-%TADATADATAX') THEN GOTO 5550 ELSE IF (LETTER .EQ.'W') THEN GOTO 5600 ELSE IF (LETTER .EQ.'S') THEN GOTO 5699 ELSE IF (LETTER .EQ.'I') THEN GOTO 1 ELSE IF (LETTER .EQ.'E') THEN GOTO 5700 ELSE WRITE(6,95)ESC,'/' PRINT*,'INVALID INPUT' DO 5, TIME=1,10000 5 CONTINUE GOTO 1 END IF HC THE FOLLOWING COMMANDS WILL DRAW A TRIANGLE AT THE POSITION SPECIFIED.HC THE COORDINATES OF EACH TRIANGLE WILL BE STORED IN THE TRIANGLE ARRAY. 500 J = J+1! WRITE(6,*)'P[',X(1),',',Y(1),']'A WRITE(6,92) READ(5,93)POSITIONL! CALL CONVERT(POSITION,X(2),Y(2))E! WRITE(6,*)'P[',X(2),',',Y(2),']'N WRITE(6,92) READ(5,93)POSITION! CALL CONVERT(POSITION,X(3),Y(3)) TRIANGLE(J,1)=X(1)R TRIANGLE(J,2)=X(2)Y TRIANGLE(J,3)=X(3)0 TRIANGLE(J,4)=Y(1)( TRIANGLE(J,5)=Y(2)C TRIANGLE(J,6)=Y(3)A X(1)=X(3) Y(1)=Y(3) LETTER=POSITION(1:1)1GC THIS IF STATEMENT DETERMINES IF THE BOX IS TO HAVE A SOLID BORDERRJC OR A DASHED ONE. IF TTYPE EQUALS 1, THE TRIANGLR WILL HAVE A SOLID MC BORDER, IF TTYPE EQUALS 2, THEN THE TRIANGLE WILL HAVE A DASHED BORDER.E IF (LETTER .EQ.'Y') THENS4 WRITE(6,*)'P[',TRIANGLE(J,1),',',TRIANGLE(J,4),']' WRITE(6,*)'P[]V(W(P4(M5)))'Z3 WRITE(6,*)'[',TRIANGLE(J,2),',',TRIANGLE(J,5),']'A3 WRITE(6,*)'[',TRIANGLE(J,3),',',TRIANGLE(J,6),']' 3 WRITE(6,*)'[',TRIANGLE(J,1),',',TRIANGLE(J,4),']' TTYPE(J)=2 GOTO 50T ELSEE4 WRITE(6,*)'P[',TRIANGLE(J,1),',',TRIANGLE(J,4),']'4 WRITE(6,*)'V[',TRIANGLE(J,2),',',TRIANGLE(J,5),']'3 WRITE(6,*)'[',TRIANGLE(J,3),',',TRIANGLE(J,6),']'03 WRITE(6,*)'[',TRIANGLE(J,1),',',TRIANGLE(J,4),']'R TTYPE(J)=1 END IF  IF (LETTER .EQ.'G') THENR GOTO 50R ELSE IF (LETTER .EQ.'B') THEN GOTO 100 ELSE IF (LETTER .EQ.'T') THEN GOTO 500 ELSE IF (LETTER .EQ.'O') THEN GOTO 1000F ELSE IF (LETTER .EQ.'P') THEN GOTO 5000H ELSE IF (LETTER .EQ.'A') THEN GOTO 5100M ELSE IF (LETTER .EQ.'D') THEN GOTO 5200. ELSE IF (LETTER .EQ.'R') THEN GOTO 5300U ELSE IF (LETTER .EQ.'U') THEN GOTO 5400Y ELSE IF (LETTER .EQ.'L') THEN GOTO 5500H ELSE IF (LETTER .EQ.'X') THEN GOTO 5550. ELSE IF (LETTER .EQ.'W') THEN GOTO 5600X ELSE IF (LETTER .EQ.'S') THEN GOTO 5699U ELSE IF (LETTER .EQ.'I') THEN GOTO 1 ELSE IF (LETTER .EQ.'E') THEN GOTO 5700O ELSEB WRITE(6,95)ESC,'/' PRINT*,'INVALID INPUT' DO 6, TIME=1,10000 6 CONTINUEP GOTO 1 END IF FC THE FOLLOWING COMMANDS WILL DRAW A CIRCLE AT THE POSITION SPECIFIED.DC THE COORDINATES OF EACH CIRCLE WILL BE STORED IN THE CIRCLE ARRAY. H 1000 K = K+1! WRITE(6,*)'P[',X(1),',',Y(1),']'N WRITE(6,92) READ(5,93)POSITIONR! CALL CONVERT(POSITION,X(2),Y(2))G ARCSIZE=POSITION(1:1)! WRITE(6,*)'P[',X(2),',',Y(2),']'R WRITE(6,92) READ(5,93)POSITION*! CALL CONVERT(POSITION,X(3),Y(3))YPC THE FOLLOWING WILL DETERMINE: THE RADIUS OF EACH CIRCLE/ARC (RADIUS(K));LC THE TOTAL ANGLE OF EACH CIRCLE/ARC (ANGLE(K)); AND THE STARTING ANGLENC OF EACH CIRCLE/ARC, RELATIVE TO THE HORIZONTAL AXIS OF THE CENTER POINTLC (ANGS(K)). IN DETERMINING THE ANGLES, ADJUSTMENTS ARE MADE DUE TO THEOC FACT THAT THE ARCCOSINE GIVES ANGLES BETWEEN ONLY 0 AND 180 RATHER THAN,NC 0 AND 360.M4 RADIUS(K)=(((X(1)-X(2))**2)+((Y(1)-Y(2))**2))**(.5), C=(((X(2)-X(3))**2)+((Y(2)-Y(3))**2))**(.5)> ANGLE(K)=ACOS(((2*(RADIUS(K)**2))-(C**2))/(2*(RADIUS(K)**2)))$ ANGLE(K)=ANINT((ANGLE(K)*180)/3.14)" IF (ANGLE(K) .EQ. 0) ANGLE(K)=360+ IF (ARCSIZE.EQ.'H') ANGLE(K)=360-ANGLE(K) P* IF (ARCSIZE.EQ.'J') ANGLE(K)=360-ANGLE(K)? D=((((X(1)+RADIUS(K))-X(2))**2)+((Y(1)-Y(2))**2))**(.5))= ANGS(K)=ACOS(((2*(RADIUS(K)**2))-(D**2))/(2*(RADIUS(K)**2)))X" ANGS(K)=ANINT((ANGS(K)*180)/3.14)( IF (ARCSIZE.EQ.'J') ANGS(K)=360-ANGS(K)( IF (ARCSIZE.EQ.'K') ANGS(K)=360-ANGS(K) CIRCLE(K,1)=X(1)T CIRCLE(K,2)=X(2)  CIRCLE(K,3)=X(3)M CIRCLE(K,4)=Y(1)  CIRCLE(K,5)=Y(2)( CIRCLE(K,6)=Y(3)  LETTER=POSITION(1:1)EFC THIS IF STATEMENT DETERMINES IF THE CIRCLE I00VK(KK H6%! !S TO HAVE A SOLID BORDERIC OR A DASHED ONE. IF CTYPE EQUALS 1, THE CIRCLE WILL BE SOLID, IF CTYPE 1+C EQUALS 2, THEN THE CIRCLE WILL BE DASHED.E 8 IF (LETTER .EQ. 'Y') THEN CTYPE(K)=22 WRITE(6,*)'P[',CIRCLE(K,1),',',CIRCLE(K,4),']' WRITE(6,*)'P[]C(W(P4(M5)))'E@ WRITE(6,*)'(A',ANGLE(K),')[',CIRCLE(K,2),',',CIRCLE(K,5),']' GOTO 50T ELSE  CTYPE(K)=12 WRITE(6,*)'P[',CIRCLE(K,1),',',CIRCLE(K,4),']'A WRITE(6,*)'C(A',ANGLE(K),')[',CIRCLE(K,2),',',CIRCLE(K,5),']' END IF5 IF (LETTER .EQ.'G') THENH GOTO 50H ELSE IF (LETTER .EQ.'B') THEN GOTO 100 ELSE IF (LETTER .EQ.'T') THEN GOTO 500 ELSE IF (LETTER .EQ.'O') THEN I GOTO 1000E ELSE IF (LETTER .EQ.'P') THEN GOTO 5000N ELSE IF (LETTER .EQ.'A') THEN GOTO 5100E ELSE IF (LETTER .EQ.'D') THEN GOTO 5200R ELSE IF (LETTER .EQ.'R') THEN GOTO 5300R ELSE IF (LETTER .EQ.'U') THEN GOTO 5400B ELSE IF (LETTER .EQ.'L') THEN GOTO 5500T ELSE IF (LETTER .EQ.'X') THEN GOTO 5550' ELSE IF (LETTER .EQ.'W') THEN GOTO 5600I ELSE IF (LETTER .EQ.'S') THEN GOTO 5699  ELSE IF (LETTER .EQ.'I') THEN GOTO 1 ELSE IF (LETTER .EQ.'E') THEN GOTO 5700 ELSET WRITE(6,95)ESC,'/' PRINT*,'INVALID INPUT' DO 7, TIME=1,10000 7 CONTINUEA GOTO 1 END IF EC THE FOLLOWING COMMANDS WILL DRAW A POINT AT THE POSITION SPECIFIED.DAC THE COORDINATES OF THE POINT WILL BE STORED IN THE POINT ARRAY.L 5000 M = M+1 POINT(M,1)=X(1) POINT(M,2)=Y(1)- WRITE(6,*)'P[',POINT(M,1),',',POINT(M,2),']'N WRITE(6,*)'C[+2]' WRITE(6,*)'[+1]'  WRITE(6,*)'P[-2]' WRITE(6,*)'C[+1]' GOTO 50EC THE FOLLOWING COMMANDS WILL DRAW A LINE AT THE SPECIFIED LOCATION.G3C THE COORDINATES WILL BE STORED IN THE LINE ARRAY.G 5100 L = L+1! WRITE(6,*)'P[',X(1),',',Y(1),']'H WRITE(6,92) READ(5,93)POSITION ! CALL CONVERT(POSITION,X(2),Y(2)) LINE(L,1)=X(1)W LINE(L,2)=X(2)T LINE(L,3)=Y(1)  LINE(L,4)=Y(2)R X(1)=X(2) Y(1)=Y(2) LETTER=POSITION(1:1)IHC THIS IF STATEMENT WILL DETERMINE IF THE LINE IS TO BE SOLID OR DASHED.IC IF LTYPE EQUALS 1, THEN THE LINE WILL BE SOLID. IF LTYPE EQUALS 2, THENWC THE LINE WILL BE DASHED. IF (LETTER .EQ.'Y') THENM, WRITE(6,*)'P[',LINE(L,1),',',LINE(L,3),']' WRITE(6,*)'P[]V(W(P4(M5)))'S+ WRITE(6,*)'[',LINE(L,2),',',LINE(L,4),']'H LTYPE(L)=2 GOTO 50O ELSEE, WRITE(6,*)'P[',LINE(L,1),',',LINE(L,3),']', WRITE(6,*)'V[',LINE(L,2),',',LINE(L,4),']' LTYPE(L)=1 END IFR IF (LETTER .EQ.'G') THEN GOTO 50T ELSE IF (LETTER .EQ.'B') THEN GOTO 100 ELSE IF (LETTER .EQ.'T') THEN GOTO 500 ELSE IF (LETTER .EQ.'O') THEN GOTO 1000I ELSE IF (LETTER .EQ.'P') THEN GOTO 5000R ELSE IF (LETTER .EQ.'A') THEN GOTO 5100' ELSE IF (LETTER .EQ.'D') THEN GOTO 5200  ELSE IF (LETTER .EQ.'R') THEN GOTO 5300I ELSE IF (LETTER .EQ.'U') THEN GOTO 5400T ELSE IF (LETTER .EQ.'L') THEN GOTO 55003 ELSE IF (LETTER .EQ.'X') THEN GOTO 5550  ELSE IF (LETTER .EQ.'W') THEN GOTO 5600A ELSE IF (LETTER .EQ.'S') THEN GOTO 5699C ELSE IF (LETTER .EQ.'I') THEN GOTO 1 ELSE IF (LETTER .EQ.'E') THEN GOTO 5700  ELSEC WRITE(6,95)ESC,'/' PRINT*,'INVALID INPUT' DO 8, TIME=1,10000 8 CONTINUE' GOTO 1 END IF JC THE FOLLOWING COMMANDS WILL DRAW AN ARROWHEAD IN THE POSITION SPECIFIED.EC THE COORDINATES OF EACH DOWNWARD FACING ARROW WILL BE STORED IN THERC ADOWN ARRAY.5200 ND = ND+1 ADOWN(ND,1)=X(1)  ADOWN(ND,2)=Y(1)A/ WRITE(6,*)'P[',ADOWN(ND,1),',',ADOWN(ND,2),']'8 WRITE(6,*)'V[-5,-5]'8/ WRITE(6,*)'P[',ADOWN(ND,1),',',ADOWN(ND,2),']'D WRITE(6,*)'V[+5,-5]' GOTO 50 WJC THE FOLLOWING COMMANDS WILL DRAW AN ARROWHEAD IN THE POSITION SPECIFIED.IC THE COORDINATES OF EACH ARROW FACING TO THE RIGHT WILL BE STORED IN THETC ARIGHT ARRAY.A5300 NR = NR+1 ARIGHT(NR,1)=X(1) ARIGHT(NR,2)=Y(1)1 WRITE(6,*)'P[',ARIGHT(NR,1),',',ARIGHT(NR,2),']'A WRITE(6,*)'V[-5,-5]'S1 WRITE(6,*)'P[',ARIGHT(NR,1),',',ARIGHT(NR,2),']'T WRITE(6,*)'V[-5,+5]'D GOTO 5000^K/KJH+%O-%TADATADATAJC THE FOLLOWING COMMANDS WILL DRAW AN ARROWHEAD IN THE POSITION SPECIFIED.CC THE COORDINATES OF EACH UPWARD FACING ARROW WILL BE STORED IN THEI C AUP ARRAY.5400 NU = NU+1 AUP(NU,1)=X(1)M AUP(NU,2)=Y(1)U+ WRITE(6,*)'P[',AUP(NU,1),',',AUP(NU,2),']'E WRITE(6,*)'V[-5,+5]' + WRITE(6,*)'P[',AUP(NU,1),',',AUP(NU,2),']'  WRITE(6,*)'V[+5,+5]'O GOTO 50JC THE FOLLOWING COMMANDS WILL DRAW AN ARROWHEAD IN THE POSITION SPECIFIED.GC THE COORDINATES OF EACH LEFT FACING ARROW WILL BE STORED IN THE ALEFTFC ARRAY.5500 NL = NL+1 ALEFT(NL,1)=X(1)  ALEFT(NL,2)=Y(1)A/ WRITE(6,*)'P[',ALEFT(NL,1),',',ALEFT(NL,2),']' WRITE(6,*)'V[+5,-5]'S/ WRITE(6,*)'P[',ALEFT(NL,1),',',ALEFT(NL,2),']'S WRITE(6,*)'V[+5,+5]'N GOTO 50:C THE FOLLOWING COMMANDS WILL ERASE THE OBJECT SPECIFIED.CC FOR EACH OBJECT, THE SPECIFIED ARRAY WILL BE SEARCHED TO FIND THEIDC PLACE IN THE ARRAY WHERE THE OBJECT IS STORED. THE SEARCH WILL BE CC DONE BY COMPARING THE COORDINATES OF THE OBJECT TO BE ERASED WITHHGC THE COORDINATES OF THE OBJECTS STORED IN THAT ARRAY. THE OBJECT WILL GC BE TAKEN OUT OF THE ARRAY BY MOVING EACH OBJECT, FROM THAT OBJECT ON,NHC UP ONE SLOT IN THE ARRAY. ANY OTHER NECESSARY CHANGES ABOUT THE OBJECTIC WILL ALSO BE MADE IN A SIMILAR MANNER. THE OBJECT AS SEEN ON THE SCREENREC WILL BE ERASED BY WRITING OVER THAT OBJECT IN THE SCREEN BACKGROUNDNC COLOR.%5550 WRITE(6,*)'P[',X(1),',',Y(1),']'A WRITE(6,92) READ(5,93)POSITION  LETTER=POSITION(1:1) ! CALL CONVERT(POSITION,X(2),Y(2))S IF (LETTER .NE. 'B') GOTO 5557T DO 5555, TEMP=1,ICOUNTW9 IF(((BOX(TEMP,1).EQ.X(1)).OR.(BOX(TEMP,2).EQ.X(1))).AND.A< $ ((BOX(TEMP,1).EQ.X(2)).OR.(BOX(TEMP,2).EQ.X(2))).AND.> $ ((BOX(TEMP,3).EQ.Y(1)).OR.((BOX(TEMP,3)+1).EQ.Y(1)).OR.= $ ((BOX(TEMP,3)-1).EQ.Y(1)).OR.(BOX(TEMP,4).EQ.Y(1)).OR. C $ ((BOX(TEMP,4)+1).EQ.Y(1)).OR.((BOX(TEMP,4)-1).EQ.Y(1))).AND.E> $ ((BOX(TEMP,3).EQ.Y(2)).OR.((BOX(TEMP,3)+1).EQ.Y(2)).OR.= $ ((BOX(TEMP,3)-1).EQ.Y(2)).OR.(BOX(TEMP,4).EQ.Y(2)).OR.TD $ ((BOX(TEMP,4)+1).EQ.Y(2)).OR.((BOX(TEMP,4)-1).EQ.Y(2)))) THEN IF (BTYPE(TEMP) .EQ. 2) THEN5 WRITE(6,*)'W(E)P[',BOX(TEMP,1),',',BOX(TEMP,3),']'E WRITE(6,*)'P[]V(W(P4(M5)))' WRITE(6,*)'[',BOX(TEMP,2),']'! WRITE(6,*)'[,',BOX(TEMP,4),']'P! WRITE(6,*)'[',BOX(TEMP,1),']' )! WRITE(6,*)'[,',BOX(TEMP,3),']'E WRITE(6,*)'W(V)'I ELSE8 WRITE(6,*)'W(E)P[',BOX(TEMP,1),',',BOX(TEMP,3),']' ! WRITE(6,*)'V[',BOX(TEMP,2),']' ! WRITE(6,*)'[,',BOX(TEMP,4),']'D! WRITE(6,*)'[',BOX(TEMP,1),']' I! WRITE(6,*)'[,',BOX(TEMP,3),']'I WRITE(6,*)'W(V)' END IF IF (TEMP.EQ. ICOUNT) THEN  ICOUNT=ICOUNT-1 ELSE DO 5554,TEMPNEW=TEMP,ICOUNT-1$ BOX(TEMPNEW,1)=BOX((TEMPNEW+1),1)$ BOX(TEMPNEW,2)=BOX((TEMPNEW+1),2)$ BOX(TEMPNEW,3)=BOX((TEMPNEW+1),3)$ BOX(TEMPNEW,4)=BOX((TEMPNEW+1),4)" BTYPE(TEMPNEW)=BTYPE(TEMPNEW+1)5554 CONTINUE, ICOUNT=ICOUNT-1 ENDIF- ENDIF 5555 CONTINUE !5557 IF(LETTER .NE.'T') GOTO 5563C! WRITE(6,*)'P[',X(2),',',Y(2),']'E WRITE(6,92) READ(5,93)POSITIONR! CALL CONVERT(POSITION,X(3),Y(3))  DO 5561, TEMP=1,JA IF(((TRIANGLE(TEMP,1).EQ.X(1)).OR.(TRIANGLE(TEMP,2).EQ.X(1)).OR.O' $ (TRIANGLE(TEMP,3).EQ.X(1))).AND.WD $ ((TRIANGLE(TEMP,1).EQ.X(2)).OR.(TRIANGLE(TEMP,2).EQ.X(2)).OR.' $ (TRIANGLE(TEMP,3).EQ.X(2))).AND.RD $ ((TRIANGLE(TEMP,1).EQ.X(3)).OR.(TRIANGLE(TEMP,2).EQ.X(3)).OR.' $ (TRIANGLE(TEMP,3).EQ.X(3))).AND.EH $ ((TRIANGLE(TEMP,4).EQ.Y(1)).OR.((TRIANGLE(TEMP,4)+1).EQ.Y(1)).OR.G $ ((TRIANGLE(TEMP,4)-1).EQ.Y(1)).OR.(TRIANGLE(TEMP,5).EQ.Y(1)).OR. G $ ((TRIANGLE(TEMP,5)+1).EQ.Y(1)).OR.((TRIANGLE(TEMP,5)-1).EQ.Y(1)) $ .OR.PG $ (TRIANGLE(TEMP,6).EQ.Y(1)).OR.((TRIANGLE(TEMP,6)+1).EQ.Y(1)).OR.)+ $ ((TRIANGLE(TEMP,6)-1).EQ.Y(1))).AND.EH $ ((TRIANGLE(TEMP,4).EQ.Y(2)).OR.((TRIANGLE(TEMP,4)+1).EQ.Y(2)).OR.G $ ((TRIANGLE(TEMP,4)-1).EQ.Y(2)).OR.(TRIANGLE(TEMP,5).EQ.Y(2)).OR.SG $ ((TRIANGLE(TEMP,5)+1).EQ.Y(2)).OR.((TRIANGLE(TEMP,5)-1)00fK(KK H6%! !.EQ.Y(2))G $ .OR.SG $ (TRIANGLE(TEMP,6).EQ.Y(2)).OR.((TRIANGLE(TEMP,6)+1).EQ.Y(2)).OR. + $ ((TRIANGLE(TEMP,6)-1).EQ.Y(2))).AND.'H $ ((TRIANGLE(TEMP,4).EQ.Y(3)).OR.((TRIANGLE(TEMP,4)+1).EQ.Y(3)).OR.G $ ((TRIANGLE(TEMP,4)-1).EQ.Y(3)).OR.(TRIANGLE(TEMP,5).EQ.Y(3)).OR. G $ ((TRIANGLE(TEMP,5)+1).EQ.Y(3)).OR.((TRIANGLE(TEMP,5)-1).EQ.Y(3)) $ .OR.TG $ (TRIANGLE(TEMP,6).EQ.Y(3)).OR.((TRIANGLE(TEMP,6)+1).EQ.Y(3)).OR.A, $ ((TRIANGLE(TEMP,6)-1).EQ.Y(3)))) THEN IF (TTYPE(TEMP) .EQ. 2) THEN WRITE(6,*)'W(E)'S; WRITE(6,*)'P[',TRIANGLE(TEMP,1),',',TRIANGLE(TEMP,4),']'A WRITE(6,*)'P[]V(W(P4(M5)))': WRITE(6,*)'[',TRIANGLE(TEMP,2),',',TRIANGLE(TEMP,5),']': WRITE(6,*)'[',TRIANGLE(TEMP,3),',',TRIANGLE(TEMP,6),']': WRITE(6,*)'[',TRIANGLE(TEMP,1),',',TRIANGLE(TEMP,4),']' WRITE(6,*)'W(V)'A ELSE WRITE(6,*)'W(E)'H; WRITE(6,*)'P[',TRIANGLE(TEMP,1),',',TRIANGLE(TEMP,4),']'H; WRITE(6,*)'V[',TRIANGLE(TEMP,2),',',TRIANGLE(TEMP,5),']'S: WRITE(6,*)'[',TRIANGLE(TEMP,3),',',TRIANGLE(TEMP,6),']': WRITE(6,*)'[',TRIANGLE(TEMP,1),',',TRIANGLE(TEMP,4),']' WRITE(6,*)'W(V)'D END IF IF (TEMP.EQ.J) THENH J=J-1 ELSE DO 5560, TEMPNEW=TEMP,J-1. TRIANGLE(TEMPNEW,1)=TRIANGLE((TEMPNEW+1),1). TRIANGLE(TEMPNEW,2)=TRIANGLE((TEMPNEW+1),2). TRIANGLE(TEMPNEW,3)=TRIANGLE((TEMPNEW+1),3). TRIANGLE(TEMPNEW,4)=TRIANGLE((TEMPNEW+1),4). TRIANGLE(TEMPNEW,5)=TRIANGLE((TEMPNEW+1),5). TRIANGLE(TEMPNEW,6)=TRIANGLE((TEMPNEW+1),6)" TTYPE(TEMPNEW)=TTYPE(TEMPNEW+1)5560 CONTINUE  J=J-1 END IF END IFT 5561 CONTINUE "5563 IF(LETTER .NE. 'O') GOTO 5567 DO 5565,TEMP=1,KT, R=(((X(1)-X(2))**2)+((Y(1)-Y(2))**2))**(.5)A IF(((CIRCLE(TEMP,1).EQ.X(1)).OR.((CIRCLE(TEMP,1)+1).EQ.X(1)).OR.0) $ ((CIRCLE(TEMP,1)-1).EQ.X(1))).AND.1: $ ((RADIUS(TEMP).EQ.R).OR.((RADIUS(TEMP)+1).EQ.R).OR.$ $ ((RADIUS(TEMP)-1).EQ.R)).AND.D $ ((CIRCLE(TEMP,4).EQ.Y(1)).OR.((CIRCLE(TEMP,4)+1).EQ.Y(1)).OR.+ $ ((CIRCLE(TEMP,4)-1).EQ.Y(1)))) THEN' WRITE(6,*)'W(E)' IF (CTYPE(TEMP) .EQ. 2) THEN7 WRITE(6,*)'P[',CIRCLE(TEMP,1),',',CIRCLE(TEMP,4),']'5 WRITE(6,*)'P[]C(W(P4(M5)))'6 WRITE(6,*)'(A',ANGLE(TEMP),')[',CIRCLE(TEMP,2),',', $ CIRCLE(TEMP,5),']'Q ELSE7 WRITE(6,*)'P[',CIRCLE(TEMP,1),',',CIRCLE(TEMP,4),']'7 WRITE(6,*)'C(A',ANGLE(TEMP),')[',CIRCLE(TEMP,2),',', $ CIRCLE(TEMP,5),']'N END IF WRITE(6,*)'W(V)' IF (TEMP.EQ. K) THEN K=K-1 ELSE  DO 5564,TEMPNEW=TEMP,K-1H* CIRCLE(TEMPNEW,1)=CIRCLE((TEMPNEW+1),1)* CIRCLE(TEMPNEW,2)=CIRCLE((TEMPNEW+1),2)* CIRCLE(TEMPNEW,3)=CIRCLE((TEMPNEW+1),3)* CIRCLE(TEMPNEW,4)=CIRCLE((TEMPNEW+1),4)* CIRCLE(TEMPNEW,5)=CIRCLE((TEMPNEW+1),5)* CIRCLE(TEMPNEW,6)=CIRCLE((TEMPNEW+1),6)" CTYPE(TEMPNEW)=CTYPE(TEMPNEW+1)" ANGLE(TEMPNEW)=ANGLE(TEMPNEW+1)$ RADIUS(TEMPNEW)=RADIUS(TEMPNEW+1) ANGS(TEMP)=ANGS(TEMP+1)5564 CONTINUER K=K-1 END IF ENDIF 5565 CONTINUER!5567 IF(LETTER.NE. 'P') GOTO 5571S DO 5569,TEMP=1,M ? IF(((POINT(TEMP,1).EQ.X(1)).OR.((POINT(TEMP,1)+1).EQ.X(1)).OR.B# $ ((POINT(TEMP,1)-1).EQ.X(1))) G $ .AND.((POINT(TEMP,2).EQ.Y(1)).OR.((POINT(TEMP,2)+1).EQ.Y(1)).OR.() $ ((POINT(TEMP,2)-1).EQ.Y(1)))) THEN,8 WRITE(6,*)'W(E)P[',POINT(TEMP,1),',',POINT(TEMP,2),']' WRITE(6,*)'C[+2]'O WRITE(6,*)'[+1]' WRITE(6,*)'P[-2]'N WRITE(6,*)'C[+1]') WRITE(6,*)'W(V)' IF(TEMP.EQ.M) THEN M=M-1 ELSE DO 5568,TEMPNEW=TEMP,M-1(( POINT(TEMPNEW,1)=POINT((TEMPNEW+1),1)( POINT(TEMPNEW,2)=POINT((TEMPNEW+1),2)5568 CONTINUEL M=M-1 END IF END IF5 5569 CONTINUEE"5571 IF(LETTER .NE. 'A') GOTO 5575 DO 5573, TEMP=1,L; IF(((LINE(TEMP,1).EQ.X(1)).OR.(LINE(TEMP,2).EQ.X(1))).AND.0> $ ((LINE(TEMP,1).EQ.X(2)).OR.(LINE(TEMP,2).EQ.X(2))).AND.@ $ ((LINE(TEMP,3).EQ.Y(1)).OR.((LINE(TEMP,3)+1).EQ.Y(1)).OR.? $ ((LINE(TEMP,3)-1).EQ.Y(1)).OR.(LINE(TEMP,4).EQ.Y(1)).OR.FE $ ((LINE(TEMP,4)+1).EQ.Y(1)).OR.((LINE(TEMP,4)-1).EQ.Y(1))).AND. @ $ ((LINE(TEMP,3).EQ.Y(2)).O00nK/KJH+%O-%TADATADATAR.((LINE(TEMP,3)+1).EQ.Y(2)).OR.? $ ((LINE(TEMP,3)-1).EQ.Y(2)).OR.(LINE(TEMP,4).EQ.Y(2)).OR.HF $ ((LINE(TEMP,4)+1).EQ.Y(2)).OR.((LINE(TEMP,4)-1).EQ.Y(2)))) THEN6 WRITE(6,*)'W(E)P[',LINE(TEMP,1),',',LINE(TEMP,3),']' IF (LTYPE(TEMP) .EQ.2) THEN' WRITE(6,*)'P[]V(W(P4(M5)))'2 WRITE(6,*)'[',LINE(TEMP,2),',',LINE(TEMP,4),']' ELSE3 WRITE(6,*)'V[',LINE(TEMP,2),',',LINE(TEMP,4),']'O END IF WRITE(6,*)'W(V)' IF(TEMP.EQ.L) THEN L=L-1 ELSE DO 5572,TEMPNEW=TEMP,L-1,& LINE(TEMPNEW,1)=LINE((TEMPNEW+1),1)& LINE(TEMPNEW,2)=LINE((TEMPNEW+1),2)& LINE(TEMPNEW,3)=LINE((TEMPNEW+1),3)& LINE(TEMPNEW,4)=LINE((TEMPNEW+1),4)" LTYPE(TEMPNEW)=LTYPE(TEMPNEW+1)5572 CONTINUE L=L-1 END IF END IFN 5573 CONTINUE"5575 IF(LETTER .NE. 'D') GOTO 5579 DO 5577,TEMP=1,ND? IF(((ADOWN(TEMP,1).EQ.X(1)).OR.((ADOWN(TEMP,1)+1).EQ.X(1)).OR.E# $ ((ADOWN(TEMP,1)-1).EQ.X(1)))TG $ .AND.((ADOWN(TEMP,2).EQ.Y(1)).OR.((ADOWN(TEMP,2)+1).EQ.Y(1)).OR. ) $ ((ADOWN(TEMP,2)-1).EQ.Y(1)))) THENA WRITE(6,*)'W(E)'4 WRITE(6,*)'P[',ADOWN(TEMP,1),',',ADOWN(TEMP,2),']' WRITE(6,*)'V[-5,-5]'4 WRITE(6,*)'P[',ADOWN(TEMP,1),',',ADOWN(TEMP,2),']' WRITE(6,*)'V[+5,-5]' WRITE(6,*)'W(V)' IF(TEMP.EQ.ND) THEN, ND=ND-1 ELSE DO 5576, TEMPNEW=TEMP,ND-1(( ADOWN(TEMPNEW,1)=ADOWN((TEMPNEW+1),1)( ADOWN(TEMPNEW,2)=ADOWN((TEMPNEW+1),2)5576 CONTINUE ND=ND-1 END IF END IF 5577 CONTINUE'#5579 IF (LETTER .NE. 'R') GOTO 5583 DO 5581,TEMP=1,NRA IF(((ARIGHT(TEMP,1).EQ.X(1)).OR.((ARIGHT(TEMP,1)+1).EQ.X(1)).OR.,$ $ ((ARIGHT(TEMP,1)-1).EQ.X(1)))E $ .AND.((ARIGHT(TEMP,2).EQ.Y(1)).OR.((ARIGHT(TEMP,2)+1).EQ.Y(1))E. $ .OR.((ARIGHT(TEMP,2)-1).EQ.Y(1)))) THEN WRITE(6,*)'W(E)'6 WRITE(6,*)'P[',ARIGHT(TEMP,1),',',ARIGHT(TEMP,2),']' WRITE(6,*)'V[-5,-5]'6 WRITE(6,*)'P[',ARIGHT(TEMP,1),',',ARIGHT(TEMP,2),']' WRITE(6,*)'V[-5,+5]' WRITE(6,*)'W(V)' IF (TEMP.EQ.NR) THEN NR=NR-1 ELSE DO 5580, TEMPNEW=TEMP,NR-1Q* ARIGHT(TEMPNEW,1)=ARIGHT((TEMPNEW+1),1)* ARIGHT(TEMPNEW,2)=ARIGHT((TEMPNEW+1),2)5580 CONTINUE NR=NR-1 END IF END IFQ 5581 CONTINUEO#5583 IF (LETTER .NE. 'U') GOTO 5587H DO 5585,TEMP=1,NU; IF(((AUP(TEMP,1).EQ.X(1)).OR.((AUP(TEMP,1)+1).EQ.X(1)).OR..! $ ((AUP(TEMP,1)-1).EQ.X(1)))EC $ .AND.((AUP(TEMP,2).EQ.Y(1)).OR.((AUP(TEMP,2)+1).EQ.Y(1)).OR.N' $ ((AUP(TEMP,2)-1).EQ.Y(1)))) THEN WRITE(6,*)'W(E)'0 WRITE(6,*)'P[',AUP(TEMP,1),',',AUP(TEMP,2),']' WRITE(6,*)'V[-5,+5]'0 WRITE(6,*)'P[',AUP(TEMP,1),',',AUP(TEMP,2),']' WRITE(6,*)'V[+5,+5]' WRITE(6,*)'W(V)' IF(TEMP.EQ.NU) THEN[ NU=NU-1 ELSE DO 5584, TEMPNEW=TEMP,NU-1P$ AUP(TEMPNEW,1)=AUP((TEMPNEW+1),1)$ AUP(TEMPNEW,2)=AUP((TEMPNEW+1),2)5584 CONTINUE( NU=NU-1 END IF END IF) 5585 CONTINUEP"5587 IF(LETTER .NE. 'L') GOTO 5591 DO 5589,TEMP=1,NL? IF(((ALEFT(TEMP,1).EQ.X(1)).OR.((ALEFT(TEMP,1)+1).EQ.X(1)).OR.D# $ ((ALEFT(TEMP,1)-1).EQ.X(1)))AG $ .AND.((ALEFT(TEMP,2).EQ.Y(1)).OR.((ALEFT(TEMP,2)+1).EQ.Y(1)).OR.R) $ ((ALEFT(TEMP,2)-1).EQ.Y(1)))) THENE WRITE(6,*)'W(E)'4 WRITE(6,*)'P[',ALEFT(TEMP,1),',',ALEFT(TEMP,2),']' WRITE(6,*)'V[+5,-5]'4 WRITE(6,*)'P[',ALEFT(TEMP,1),',',ALEFT(TEMP,2),']' WRITE(6,*)'V[+5,+5]' WRITE(6,*)'W(V)' IF(TEMP.EQ.NL) THEN* NL=NL-1 ELSE DO 5588, TEMPNEW=TEMP,NL-1Y( ALEFT(TEMPNEW,1)=ALEFT((TEMPNEW+1),1)( ALEFT(TEMPNEW,2)=ALEFT((TEMPNEW+1),2)5588 CONTINUE( NL=NL-1 END IF END IFE 5589 CONTINUEL"5591 IF(LETTER .NE. 'W') GOTO 5599 TEMP=0(5595 TEMP=TEMP+1= IF(((TEXT(TEMP,1).EQ.X(1)).OR.((TEXT(TEMP,1)+1).EQ.X(1)).OR.(" $ ((TEXT(TEMP,1)-1).EQ.X(1)))E $ .AND.((TEXT(TEMP,2).EQ.Y(1)).OR.((TEXT(TEMP,2)+1).EQ.Y(1)).OR.A( $ ((TEXT(TEMP,2)-1).EQ.Y(1)))) THEN SS=0 SM=2 SL=46 WRITE(6,*)'W(E)P[',TEXT(TEMP,1),',',TEXT(TEMP,2),']'$ DO 113,NW=START(TEMP),FINISH(TEMP) TEMPC=QUOTE(NW), QM=INDEX(TEMPC,'''') IF (QM .EQ. 0) THEN LAST=80'114 IF((TEMPC(LAST:LAST).EQ.' ').AND.E $ (LAST.NE.1)) 00vK(KK H6%! !THEN LAST=LAST-1D GOTO 114 ELSEI TEMPC(LAST+1:LAST+1)=''''L QUOTE(NW)=TEMPC(1:LAST+1)S END IFE IF (TYPE(TEMP).EQ.1) THEN% WRITE(6,*)'T(S0,H1)''',QUOTE(NW)) SS=SS+10,: WRITE(6,*)'P[',TEXT(TEMP,1),',',(TEXT(TEMP,2)+SS),']'! ELSE IF (TYPE(TEMP).EQ.2) THENG% WRITE(6,*)'T(S0,H0)''',QUOTE(NW)' SM=SM+20T: WRITE(6,*)'P[',TEXT(TEMP,1),',',(TEXT(TEMP,2)+SM),']'! ELSE IF (TYPE(TEMP).EQ.3) THENA% WRITE(6,*)'T(S2,H3)''',QUOTE(NW)K SL=SL+30I: WRITE(6,*)'P[',TEXT(TEMP,1),',',(TEXT(TEMP,2)+SL),']' END IF  ELSE IF (TYPE(TEMP).EQ.1) THEN% WRITE(6,*)'T(S0,H1)''',QUOTE(NW)R SS=SS+10I: WRITE(6,*)'P[',TEXT(TEMP,1),',',(TEXT(TEMP,2)+SS),']'! ELSE IF (TYPE(TEMP).EQ.2) THEN % WRITE(6,*)'T(S0,H0)''',QUOTE(NW)H SM=SM+20R: WRITE(6,*)'P[',TEXT(TEMP,1),',',(TEXT(TEMP,2)+SM),']'! ELSE IF (TYPE(TEMP).EQ.3) THENE% WRITE(6,*)'T(S2,H3)''',QUOTE(NW)0 SL=SL+30E: WRITE(6,*)'P[',TEXT(TEMP,1),',',(TEXT(TEMP,2)+SL),']' END IFO END IF 113 CONTINUE. WRITE(6,*)'W(V)' IF(TEMP.EQ.Q) THEN FINAL=FINISH(Q-1) ELSE VALUE=FINISH(TEMP) ! DIF=FINISH(TEMP)-START(TEMP)+1( FINAL=FINISH(Q)-DIF DO 5593,N=START(TEMP),FINAL VALUE=VALUE+1 QUOTE(N)=QUOTE(VALUE)5593 CONTINUEO DO 5594, TEMPNEW=TEMP,Q-1& TEXT(TEMPNEW,1)=TEXT((TEMPNEW+1),1)& TEXT(TEMPNEW,2)=TEXT((TEMPNEW+1),2) TYPE(TEMPNEW)=TYPE(TEMPNEW+1)& START(TEMPNEW)=START(TEMPNEW+1)-DIF( FINISH(TEMPNEW)=FINISH(TEMPNEW+1)-DIF5594 CONTINUE' END IF Q=Q-1  LINENUM=FINAL2 ELSE IF (TEMP.LT.Q) THENG GOTO 5595H END IFN 5599 GOTO 50EC THE FOLLOWING WILL WRITE TEXT ON THE DIAGRAM. THE STARTING POSITIONDJC COORDINATES OF EACH INDIVIDUAL QUOTE WILL BE STORED IN THE 'TEXT' ARRAY.GC (THAT IS, EACH TIME THE TEXT PORTION OF THIS PROGRAM IS ENTERED, THE )EC COORDINATES WILL BE STORED.) A RUNNING TALLY OF THE TOTAL NUMBER OFYHC QUOTES IN THE WHOLE DIAGRAM WILL BE STORED UNDER 'LINENUM', AS WELL ASGC TWO ARRAYS, 'START' AND 'FINISH', WHICH WILL STORE THE BEGINNING AND LEC ENDING LINE NUMBER OF EACH INDIVIDUAL QUOTE. THE PRINT SIZE WILL BEWEC STORED IN THE ARRAY 'TYPE'. EACH LINE OF TEXT WILL BE STORED IN THE)C 'QUOTE' ARRAY. 5600 Q=Q+1 START(Q)=LINENUM+1  TEXT(Q,1)=X(1)E TEXT(Q,2)=Y(1)4! WRITE(6,*)'P[',X(1),',',Y(1),']'E WRITE(6,92) , READ(5,93) POSITION LETTER=POSITION(1:1)  IF(LETTER .EQ. '1') GOTO 5610 IF(LETTER .EQ. '2') GOTO 5620 IF(LETTER .EQ. '3') GOTO 56305610 TYPE(Q)=1 WRITE(6,*)'T(S0,H1)'''O GOTO 56405620 TYPE(Q)=2 WRITE(6,*)'T(S0,H0)'''E GOTO 56405630 TYPE(Q)=3 WRITE(6,*)'T(S2,H3)'''F5640 LINENUM=LINENUM+1 READ(5,5642)QUOTE(LINENUM)R5642 FORMAT(A80)) IF(INDEX(QUOTE(LINENUM),'''').EQ.0) THEN GOTO 5640 ELSEF FINISH(Q)=LINENUMN GOTO 50I END IFFAC THE FOLLOWING WILL SCROLL THE SCREEN TO THE POSITION SPECIFIED.CC THIS PROGRAM ALLOWS THE USER UP TO FOUR SCREENS FOR EACH DIAGRAM.(CC EACH SCREEN IS 1/4 OF THE WHOLE PAGE OF B-SIZE PAPER. EACH SCREEN CC IS 800 BY 480 PIXELS GIVING A TOTAL GRAPHICS AREA OF 1600 BY 960.RHC IF A-SIZE PAPER IS SPECIFIED (WHICH IS GOING TO BE PLACED HORIZONTALLYJC ON THE PLOTTER) THEN, THE TOTAL GRAPHICS AREA IS REDUCED TO 1000 BY 720.FC IF A-SIZE PAPER IS SPECIFIED (WHICH IS GOING TO BE PLACED VERTICALLYIC ON THE PLOTTER) THEN, THE TOTAL GRAPHICS AREA IS REDUCED TO 800 BY 960.W5699 WRITE(6,95)ESC,'\' IF (SIZE .EQ. 'VA') THENN4 PRINT*,'DO YOU WANT TO SCROLL UP, DOWN OR REDRAW?' ELSE]> PRINT*,'DO YOU WANT TO SCROLL UP,DOWN,RIGHT,LEFT OR REDRAW?' END IF] READ(5,5698)RESULT-5698 FORMAT(A6) IF (RESULT .EQ. 'DOWN') THENW S=1W Y1=Y1+240 Y2=Y2+240O IF (Y2.GT.960) THENR Y1=480E Y2=959A PRINT*,'OUT OF DRAWING RANGE'I GOTO 5699G END IF. IF ((SIZE .EQ. 'HA') .AND. (Y2.GT.720)) THEN Y1=240 Y2=719* PRINT*,'OUT OF DRAWING RANGE'2 GOTO 5699E END IF ELSE IF (RESULT .EQ. 'UP') THEN S=1A Y1=Y1-240] Y2=Y2-240* IF (Y1.LT.O) THEN 00~K/KJH+%O-%TADATADATA Y1=0 Y2=479W PRINT*,'OUT OF DRAWING RANGE'A GOTO 5699T END IF" ELSE IF (RESULT .EQ.'RIGHT') THEN S=1N IF (SIZE .EQ. 'VA') THEN PRINT*,'OUT OF DRAWING RANGE' GOTO 5699 ELSE IF (SIZE .EQ. 'HA') THENE X1=X1+200 X2=X2+200 IF (X2 .GT. 1000) THEN5 X1=200 X2=1000U PRINT*,'OUT OF DRAWING RANGE' GOTO 5699 END IF  ELSE IF (SIZE .EQ. 'B') THEN X1=X1+400 X2=X2+400 IF (X2.GT.1600) THEN X1=800 X2=1599E PRINT*,'OUT OF DRAWING RANGE' GOTO 5699 END IF5 END IF" ELSE IF (RESULT .EQ. 'LEFT') THEN S=1A IF (SIZE .EQ. 'VA') THEN PRINT*,'OUT OF DRAWING RANGE' GOTO 5699 ELSE IF (SIZE .EQ. 'HA') THEN, X1=X1-200 X2=X2-200 ELSE IF (SIZE .EQ. 'B') THEN X1=X1-400 X2=X2-400 END IF IF (X1.LT.0) THENO X1=0J X2=799E PRINT*,'OUT OF DRAWING RANGE'F GOTO 5699L END IF$ ELSE IF (RESULT .EQ. 'REDRAW') THEN GOTO 5697B END IFE WRITE(6,90) CSI,'2J'I WRITE(6,91) ESC,'Pp'B/ WRITE(6,*)'S(A[',X1,',',Y1,'][',X2,',',Y2,'])'S WRITE(6,95) ESC,'\'E5697 CALL SETUP(ICOUNT,J,K,L,M,ND,NR,NU,NL,BOX,TRIANGLE,CIRCLE,POINT,OD $ LINE,ADOWN,ARIGHT,AUP,ALEFT,S,TEXT,Q,START,FINISH,TYPE,QUOTE,% $ LTYPE,CTYPE,ANGLE,BTYPE,TTYPE)M GOTO 50CRHC THE FOLLOWING COMMANDS STORE ALL THE DIFFERENT OBJECT ARRAYS THAT MAKEC UP THE DIAGRAM.HCC35700 WRITE(9,*)ICOUNT,J,K,L,M,ND,NR,NU,NL,Q,LINENUM): WRITE(9,*)((BOX(TEMPX,TEMPY), TEMPY=1,4), TEMPX=1,ICOUNT): WRITE(9,*)((TRIANGLE(TEMPX,TEMPY), TEMPY=1,6), TEMPX=1,J)8 WRITE(9,*)((CIRCLE(TEMPX,TEMPY), TEMPY=1,6), TEMPX=1,K)7 WRITE(9,*)((POINT(TEMPX,TEMPY), TEMPY=1,2), TEMPX=1,M))6 WRITE(9,*)((LINE(TEMPX,TEMPY), TEMPY=1,4), TEMPX=1,L)8 WRITE(9,*)((ADOWN(TEMPX,TEMPY), TEMPY=1,2), TEMPX=1,ND)9 WRITE(9,*)((ARIGHT(TEMPX,TEMPY), TEMPY=1,2), TEMPX=1,NR)X6 WRITE(9,*)((AUP(TEMPX,TEMPY), TEMPY=1,2), TEMPX=1,NU)8 WRITE(9,*)((ALEFT(TEMPX,TEMPY), TEMPY=1,2), TEMPX=1,NL)6 WRITE(9,*)((TEXT(TEMPX,TEMPY), TEMPY=1,2), TEMPX=1,Q)! WRITE(9,*)(TYPE(TEMP), TEMP=1,Q))) WRITE(9,13)(QUOTE(TEMP), TEMP=1,LINENUM)Y" WRITE(9,*)(START(TEMP), TEMP=1,Q)# WRITE(9,*)(FINISH(TEMP), TEMP=1,Q)" WRITE(9,*)(LTYPE(TEMP), TEMP=1,L)" WRITE(9,*)(CTYPE(TEMP), TEMP=1,K)" WRITE(9,*)(ANGLE(TEMP), TEMP=1,K)# WRITE(9,*)(RADIUS(TEMP), TEMP=1,K)E! WRITE(9,*)(ANGS(TEMP), TEMP=1,K)M' WRITE(9,*)(BTYPE(TEMP), TEMP=1,ICOUNT)," WRITE(9,*)(TTYPE(TEMP), TEMP=1,J)13 FORMAT(X,A60)C,:C THE FOLLOWING COMMANDS WRITE TO TWO DIFFERENT TEXT FILES9C ONE STORES THE INFORMATION SO THE DIAGRAM CAN BE DRAWN*C ON THE SCREEN. (WRITE(4,*))6?C THE OTHER STORES THE INFORMATION SO THE DIAGRAM CAN BE DRAWNE C ON THE PLOTTER. (WRITE(7,*))CT WRITE(4,90) CSI,'2J'4 WRITE(7,*)' CALL PLOTS(1,5,6)' WRITE(7,*)' CALL SETIN'  IF (SIZE .EQ. 'HA') THENW0 WRITE(7,*)' CALL LOCATE (0.0,9.45,0.0,7.325)'0 WRITE(7,*)' CALL MAPUU(0.0,1000.0,720.0,0.0)' ELSE(1 WRITE(7,*)' CALL LOCATE (0.0,14.95,0.0,9.825)' 0 WRITE(7,*)' CALL MAPUU(0.0,1600.0,960.0,0.0)' END IFO WRITE(7,*)' CALL PENSPD(10)' WRITE(4,91) ESC,'Pp'9 IF (ICOUNT .EQ. 0) GOTO 5710  DO 5705, TEMP=1,ICOUNT) IF (BTYPE(TEMP) .EQ. 2) THEN(3 WRITE(4,*)'P[',BOX(TEMP,1),',',BOX(TEMP,3),']' ) WRITE(4,*)'P[]V(W(P4(M5)))') WRITE(4,*)'[',BOX(TEMP,2),']'L WRITE(4,*)'[,',BOX(TEMP,4),']' WRITE(4,*)'[',BOX(TEMP,1),']' WRITE(4,*)'[,',BOX(TEMP,3),']' ELSEN3 WRITE(4,*)'P[',BOX(TEMP,1),',',BOX(TEMP,3),']' . WRITE(4,*)'V[',BOX(TEMP,2),']' WRITE(4,*)'[,',BOX(TEMP,4),']' WRITE(4,*)'[',BOX(TEMP,1),']' WRITE(4,*)'[,',BOX(TEMP,3),']' END IF) 5705 CONTINUER DO 5707, TEMP=1,ICOUNTR IF (BTYPE(TEMP) .EQ. 2) THENE! WRITE(7,990)'CALL DASLNA(3,20)'.: WRITE(7,999)'CALL MOVE(',BOX(TEMP,1),',',BOX(TEMP,3),')': WRITE(7,999)'CALL DRAW(',BOX(TEMP,2),',',BOX(TEMP,3),')': WRITE(7,999)'CALL DRAW(',BOX(TEMP,2),',',BOX(TEMP,4),')': WRITE(7,999)'CALL DRAW(',BOX(TEMP,1),',',BOX(TEMP,4),')': WRITE(7,999)'CALL DRAW(',BOX(TEMP,1),',',BOX(TEMP,3),')'! WRITE(7,990)'CALL DASLNA(1,20)'I ELSEP: WR00K(KK H6%! !ITE(7,999)'CALL MOVE(',BOX(TEMP,1),',',BOX(TEMP,3),')': WRITE(7,999)'CALL DRAW(',BOX(TEMP,2),',',BOX(TEMP,3),')': WRITE(7,999)'CALL DRAW(',BOX(TEMP,2),',',BOX(TEMP,4),')': WRITE(7,999)'CALL DRAW(',BOX(TEMP,1),',',BOX(TEMP,4),')': WRITE(7,999)'CALL DRAW(',BOX(TEMP,1),',',BOX(TEMP,3),')' END IFI5707 CONTINUE 5710 IF (J .EQ. 0) GOTO 5720 DO 5715, TEMP=1,J IF (TTYPE(TEMP) .EQ. 2) THEN,: WRITE(4,*)'P[',TRIANGLE(TEMP,1),',',TRIANGLE(TEMP,4),']' WRITE(4,*)'P[]V(W(P4(M5)))' 9 WRITE(4,*)'[',TRIANGLE(TEMP,2),',',TRIANGLE(TEMP,5),']'9 WRITE(4,*)'[',TRIANGLE(TEMP,3),',',TRIANGLE(TEMP,6),']'A9 WRITE(4,*)'[',TRIANGLE(TEMP,1),',',TRIANGLE(TEMP,4),']'( ELSE,: WRITE(4,*)'P[',TRIANGLE(TEMP,1),',',TRIANGLE(TEMP,4),']': WRITE(4,*)'V[',TRIANGLE(TEMP,2),',',TRIANGLE(TEMP,5),']'9 WRITE(4,*)'[',TRIANGLE(TEMP,3),',',TRIANGLE(TEMP,6),']'W9 WRITE(4,*)'[',TRIANGLE(TEMP,1),',',TRIANGLE(TEMP,4),']'I END IFP 5715 CONTINUEI DO 5717, TEMP=1,J IF (TTYPE(TEMP) .EQ. 2) THENS+ WRITE(7,990)'CALL DASLNA(3,20)'GG WRITE(7,999)'CALL MOVE(',TRIANGLE(TEMP,1),',',TRIANGLE(TEMP,4),')''G WRITE(7,999)'CALL DRAW(',TRIANGLE(TEMP,2),',',TRIANGLE(TEMP,5),')' G WRITE(7,999)'CALL DRAW(',TRIANGLE(TEMP,3),',',TRIANGLE(TEMP,6),')')G WRITE(7,999)'CALL DRAW(',TRIANGLE(TEMP,1),',',TRIANGLE(TEMP,4),')'$ WRITE(7,990)'CALL DASLNA(1,20)' ELSEG WRITE(7,999)'CALL MOVE(',TRIANGLE(TEMP,1),',',TRIANGLE(TEMP,4),')'IG WRITE(7,999)'CALL DRAW(',TRIANGLE(TEMP,2),',',TRIANGLE(TEMP,5),')'TG WRITE(7,999)'CALL DRAW(',TRIANGLE(TEMP,3),',',TRIANGLE(TEMP,6),')'DG WRITE(7,999)'CALL DRAW(',TRIANGLE(TEMP,1),',',TRIANGLE(TEMP,4),')', END IF( 5717 CONTINUE(5720 IF (K .EQ. 0) GOTO 5730 DO 5725, TEMP=1,K IF (CTYPE(TEMP) .EQ. 2) THEN6 WRITE(4,*)'P[',CIRCLE(TEMP,1),',',CIRCLE(TEMP,4),']' WRITE(4,*)'P[]C(W(P4(M5)))'(5 WRITE(4,*)'(A',ANGLE(TEMP),')[',CIRCLE(TEMP,2),',',. $ CIRCLE(TEMP,5),']'E ELSEQ6 WRITE(4,*)'P[',CIRCLE(TEMP,1),',',CIRCLE(TEMP,4),']'6 WRITE(4,*)'C(A',ANGLE(TEMP),')[',CIRCLE(TEMP,2),',', $ CIRCLE(TEMP,5),']'N END IFE 5725 CONTINUEE DO 5727, TEMP=1,K IF (CTYPE(TEMP) .EQ. 2) THENW! WRITE(7,990)'CALL DASLNA(3,20)'(@ WRITE(7,999)'CALL MOVE(',CIRCLE(TEMP,1),',',CIRCLE(TEMP,4),')'? WRITE(7,991)'CALL ARCREL(',CIRCLE(TEMP,1),',',CIRCLE(TEMP,4),I@ $ ',-',ABS(RADIUS(TEMP)),',',ANGS(TEMP),',',ANGLE(TEMP),')'! WRITE(7,990)'CALL DASLNA(1,20)') ELSE @ WRITE(7,999)'CALL MOVE(',CIRCLE(TEMP,1),',',CIRCLE(TEMP,4),')'? WRITE(7,991)'CALL ARCREL(',CIRCLE(TEMP,1),',',CIRCLE(TEMP,4),E@ $ ',-',ABS(RADIUS(TEMP)),',',ANGS(TEMP),',',ANGLE(TEMP),')' END IFR 5727 CONTINUEC5730 IF (M .EQ. 0) GOTO 5740 DO 5735, TEMP=1,M4 WRITE(4,*)'P[',POINT(TEMP,1),',',POINT(TEMP,2),']' WRITE(4,*)'C[+2]'W WRITE(4,*)'[+1]' WRITE(4,*)'P[-2]'L WRITE(4,*)'C[+1]'U 5735 CONTINUEU DO 5737, TEMP=1,M> WRITE(7,999)'CALL MOVE(',POINT(TEMP,1),',',POINT(TEMP,2),')'= WRITE(7,998)'CALL ARCREL(',POINT(TEMP,1),',',POINT(TEMP,2),9 $ ',-3.0,0.0,360.0)'P= WRITE(7,998)'CALL ARCREL(',POINT(TEMP,1),',',POINT(TEMP,2),T $ ',-2.0,0.0,360.0)' = WRITE(7,998)'CALL ARCREL(',POINT(TEMP,1),',',POINT(TEMP,2),. $ ',-1.0,0.0,360.0)') 5737 CONTINUET5740 IF(L .EQ. 0) GOTO 5750I DO 5745, TEMP=1,L IF (LTYPE(TEMP) .EQ.2) THEN2 WRITE(4,*)'P[',LINE(TEMP,1),',',LINE(TEMP,3),']' WRITE(4,*)'P[]V(W(P4(M5)))'W1 WRITE(4,*)'[',LINE(TEMP,2),',',LINE(TEMP,4),']'  ELSEM2 WRITE(4,*)'P[',LINE(TEMP,1),',',LINE(TEMP,3),']'2 WRITE(4,*)'V[',LINE(TEMP,2),',',LINE(TEMP,4),']' END IFU 5745 CONTINUE  DO 5747, TEMP=1,L IF (LTYPE(TEMP) .EQ.2) THEN! WRITE(7,990)'CALL DASLNA(3,20)'1< WRITE(7,999)'CALL MOVE(',LINE(TEMP,1),',',LINE(TEMP,3),')'< WRITE(7,999)'CALL DRAW(',LINE(TEMP,2),',',LINE(TEMP,4),')'! WRITE(7,990)'CALL DASLNA(1,20)'1 ELSE(< WRITE(7,999)'CALL MOVE(',LINE(TEMP,1),',',LINE(TEMP,3),')'< WRITE(7,999)'CALL DRAW(',LINE(TEMP,2),',',LINE(TEMP,4),')' END IF( 5747 CONTINUE)5750 IF (ND .EQ. 0) GOTO 5760( DO 5755, TEMP=100K/KJH+%O-%TADATADATA,ND(4 WRITE(4,*)'P[',ADOWN(TEMP,1),',',ADOWN(TEMP,2),']' WRITE(4,*)'V[-5,-5]'4 WRITE(4,*)'P[',ADOWN(TEMP,1),',',ADOWN(TEMP,2),']' WRITE(4,*)'V[+5,-5]' 5755 CONTINUER DO 5757, TEMP=1,ND(= WRITE(7,999)'CALL MOVE(',ADOWN(TEMP,1),',',ADOWN(TEMP,2),')' A WRITE(7,999)'CALL DRAW(',ADOWN(TEMP,1)-5,',',ADOWN(TEMP,2)-5,')'E= WRITE(7,999)'CALL MOVE(',ADOWN(TEMP,1),',',ADOWN(TEMP,2),')'EA WRITE(7,999)'CALL DRAW(',ADOWN(TEMP,1)+5,',',ADOWN(TEMP,2)-5,')'L 5757 CONTINUE 5760 IF (NR .EQ. 0) GOTO 5770L DO 5765, TEMP=1,NRT6 WRITE(4,*)'P[',ARIGHT(TEMP,1),',',ARIGHT(TEMP,2),']' WRITE(4,*)'V[-5,-5]'6 WRITE(4,*)'P[',ARIGHT(TEMP,1),',',ARIGHT(TEMP,2),']' WRITE(4,*)'V[-5,+5]' 5765 CONTINUE  DO 5767, TEMP=1,NR? WRITE(7,999)'CALL MOVE(',ARIGHT(TEMP,1),',',ARIGHT(TEMP,2),')' C WRITE(7,999)'CALL DRAW(',ARIGHT(TEMP,1)-5,',',ARIGHT(TEMP,2)+5,')'P? WRITE(7,999)'CALL MOVE(',ARIGHT(TEMP,1),',',ARIGHT(TEMP,2),')'$C WRITE(7,999)'CALL DRAW(',ARIGHT(TEMP,1)-5,',',ARIGHT(TEMP,2)-5,')' 5767 CONTINUEM5770 IF (NU .EQ. 0) GOTO 5780T DO 5775, TEMP=1,NU(0 WRITE(4,*)'P[',AUP(TEMP,1),',',AUP(TEMP,2),']' WRITE(4,*)'V[-5,+5]'0 WRITE(4,*)'P[',AUP(TEMP,1),',',AUP(TEMP,2),']' WRITE(4,*)'V[+5,+5]' 5775 CONTINUEV DO 5777, TEMP=1,NUT: WRITE(7,999)'CALL MOVE(',AUP(TEMP,1),',',AUP(TEMP,2),')'> WRITE(7,999)'CALL DRAW(',AUP(TEMP,1)-5,',',AUP(TEMP,2)+5,')': WRITE(7,999)'CALL MOVE(',AUP(TEMP,1),',',AUP(TEMP,2),')'> WRITE(7,999)'CALL DRAW(',AUP(TEMP,1)+5,',',AUP(TEMP,2)+5,')' 5777 CONTINUER5780 IF (NL .EQ. 0) GOTO 5790. DO 5785, TEMP=1,NL)4 WRITE(4,*)'P[',ALEFT(TEMP,1),',',ALEFT(TEMP,2),']' WRITE(4,*)'V[+5,-5]'4 WRITE(4,*)'P[',ALEFT(TEMP,1),',',ALEFT(TEMP,2),']' WRITE(4,*)'V[+5,+5]' 5785 CONTINUEN DO 5787, TEMP=1,NL= WRITE(7,999)'CALL MOVE(',ALEFT(TEMP,1),',',ALEFT(TEMP,2),')'(A WRITE(7,999)'CALL DRAW(',ALEFT(TEMP,1)+5,',',ALEFT(TEMP,2)-5,')''= WRITE(7,999)'CALL MOVE(',ALEFT(TEMP,1),',',ALEFT(TEMP,2),')'RA WRITE(7,999)'CALL DRAW(',ALEFT(TEMP,1)+5,',',ALEFT(TEMP,2)+5,')'H 5787 CONTINUEI5790 IF (Q .EQ. 0) GOTO 5799 DO 5795, TEMP=1,Q2 WRITE(4,*)'P[',TEXT(TEMP,1),',',TEXT(TEMP,2),']'- IF (TYPE(TEMP).EQ.1) WRITE(4,*)'T(S0,H1)'''.- IF (TYPE(TEMP).EQ.2) WRITE(4,*)'T(S0,H0)'''(- IF (TYPE(TEMP).EQ.3) WRITE(4,*)'T(S2,H3)'''R: WRITE(4,*)(QUOTE(TEMP2), TEMP2=START(TEMP),FINISH(TEMP)) 5795 CONTINUEO DO 5797, TEMP=1,Q< WRITE(7,999)'CALL MOVE(',TEXT(TEMP,1),',',TEXT(TEMP,2),')'< IF (TYPE(TEMP).EQ.1) WRITE(7,995)'CALL CSIZEA(5.,1.1,0.0)'< IF (TYPE(TEMP).EQ.2) WRITE(7,995)'CALL CSIZEA(9.0,.7,0.0)'= IF (TYPE(TEMP).EQ.3) WRITE(7,995)'CALL CSIZEA(13.,.85,0.0)'T WRITE(7,994)'CALL LABON(80)'% DO 5796, N=START(TEMP),FINISH(TEMP)  TEMPC=QUOTE(N)( QM=INDEX(TEMPC,'''')M IF (QM .EQ. 0) THEN LAST=50N+11111 IF ((TEMPC(LAST:LAST).EQ.' ').AND.C $ (LAST.NE.1)) THEN LAST=LAST-1 GOTO 11111, ELSE TEMPC(LAST+1:LAST+1)='''' QUOTE(N)=TEMPC(1:LAST+1)  END IF $ WRITE(7,996)'PRINT*,''',QUOTE(N) ELSEQ$ WRITE(7,993)'PRINT*,''',QUOTE(N) END IF$5796 CONTINUE WRITE(7,994)'CALL LABOFF'( 5797 CONTINUER!5799 WRITE(7,*)' CALL NEWPEN(0)'T% WRITE(7,*)' CALL PLOT(0.0,0.0,999)'R WRITE(7,*)' END' WRITE(4,95) ESC,'\' WRITE(6,91)ESC,'Pp' WRITE(6,*)'S(A[0,0][799,479])'F WRITE(6,95)ESC,'\' 90 FORMAT(X,A1,A2)91 FORMAT (X,A1,A2)N92 FORMAT(' R(P(I))') 93 FORMAT(A80)95 FORMAT(X,A1,A1)990 FORMAT(7X,A18):991 FORMAT(7X,A12,F8.2,A1,F6.2,A2,F6.2,A1,F6.2,A1,F6.2,A1)993 FORMAT(7X,A8,A50)I994 FORMAT(7X,A15)995 FORMAT(7X,A25)996 FORMAT(7X,A8,A50,A1)+997 FORMAT(7X,A12,F8.2,A1,F6.2,A2,F6.2,A11)(#998 FORMAT(7X,A12,F8.2,A1,F6.2,A16)."999 FORMAT(7X,A10,F8.2,A1,F6.2,A1) END.! SUBROUTINE CONVERT(POSITION,X,Y) EC SUBROUTINE TO CONVERT THE CHARACTER STRING FROM THE REPORT POSITION)C COMMAND, INTO TWO NUMBERS. CHARACTER*80 POSITION CHARACTER*5 XVAL,YVAL INTEGER LB,CO,RB,X,Y,A,BI XVAL=' '' YVAL=' '( LB=INDEX(POSITION,'[')0 CO=INDEX(POSITION,',')S RB=INDEX(POSITION,']')( XVAL=POSI00K(KK H6%! !TION(LB+1:CO-1)L YVAL=POSITION(CO+1:RB-1)S A=CO-LB-1 B=RB-CO-1 IF (A .EQ. 5) GOTO 30 IF (A .EQ. 4) GOTO 40 IF (A .EQ. 3) GOTO 50 IF (A .EQ. 2) GOTO 60 IF (A .EQ. 1) GOTO 7030 DECODE(5,35,XVAL) X 35 FORMAT(I5), GOTO 7640 DECODE(5,45,XVAL) X45 FORMAT(I4,X)( GOTO 7650 DECODE(5,55,XVAL) X655 FORMAT(I3,2X) GOTO 7660 DECODE(5,65,XVAL) X65 FORMAT(I2,3X) GOTO 7670 DECODE(5,75,XVAL) X75 FORMAT(I1,4X)76 IF (B .EQ. 5) GOTO 80 IF (B .EQ. 4) GOTO 83 IF (B .EQ. 3) GOTO 85 IF (B .EQ. 2) GOTO 90 IF (B .EQ. 1) GOTO 100)80 DECODE(5,82,YVAL) Y 82 FORMAT(I5)P GOTO 110183 DECODE(5,84,YVAL) Y84 FORMAT(I4,X)( GOTO 110S85 DECODE(5,87,YVAL) Y87 FORMAT(I3,2X) GOTO 110T90 DECODE(5,95,YVAL) Y95 FORMAT(I2,3X) GOTO 110 100 DECODE(5,105,YVAL) Y105 FORMAT(I1,4X)= 110 RETURN ENDG SUBROUTINE SETUP(ICOUNT,J,K,L,M,ND,NR,NU,NL,BOX,TRIANGLE,CIRCLE,POINT,TD $ LINE,ADOWN,ARIGHT,AUP,ALEFT,S,TEXT,Q,START,FINISH,TYPE,QUOTE,% $ LTYPE,CTYPE,ANGLE,BTYPE,TTYPE),CSGC THIS IS A SUBROUTINE TO CLEAR THE SCREEN AND THEN TO DRAW THE OBJECTSMC THAT HAVE BEEN ENTERED. REAL LINE. INTEGER Q,START,FINISH,TYPE,CTYPE,TTYPE,BTYPE@ DIMENSION BOX(100,4),TRIANGLE(100,6),CIRCLE(100,6),POINT(100,2)G DIMENSION LINE(500,4),ADOWN(100,2),ARIGHT(100,2),TYPE(300),FINISH(300)5C DIMENSION AUP(100,2),ALEFT(100,2),X(3),Y(3),START(300),TEXT(300,2)(A DIMENSION LTYPE(500),CTYPE(100),ANGLE(100),BTYPE(100),TTYPE(100)  CHARACTER*80 QUOTE(500) BYTE ESC,CSIF ESC=27E CSI=155 P WRITE(6,90) CSI,'2J'U WRITE(6,91) ESC,'Pp'- IF (S .EQ. 0) WRITE(6,*)'S(A[0,0][799,479])'  IF (ICOUNT .EQ. 0) GOTO 8 DO 7,TEMP=1,ICOUNTL IF (BTYPE(TEMP) .EQ. 2) THEN6 WRITE(6,*)'P[',BOX(TEMP,1),',',BOX(TEMP,3),']' WRITE(6,*)'P[]V(W(P4(M5)))'" WRITE(6,*)'[',BOX(TEMP,2),']'# WRITE(6,*)'[,',BOX(TEMP,4),']' # WRITE(6,*)'[',BOX(TEMP,1),']' # WRITE(6,*)'[,',BOX(TEMP,3),']'  ELSE6 WRITE(6,*)'P[',BOX(TEMP,1),',',BOX(TEMP,3),']' # WRITE(6,*)'V[',BOX(TEMP,2),']'S# WRITE(6,*)'[,',BOX(TEMP,4),']'T# WRITE(6,*)'[',BOX(TEMP,1),']' B# WRITE(6,*)'[,',BOX(TEMP,3),']'T END IFL 7 CONTINUE8 IF (J .EQ. 0) GOTO 10A DO 9,TEMP= 1,JI IF (TTYPE(TEMP) .EQ. 2) THEN= WRITE(6,*)'P[',TRIANGLE(TEMP,1),',',TRIANGLE(TEMP,4),']'T WRITE(6,*)'P[]V(W(P4(M5)))'< WRITE(6,*)'[',TRIANGLE(TEMP,2),',',TRIANGLE(TEMP,5),']'< WRITE(6,*)'[',TRIANGLE(TEMP,3),',',TRIANGLE(TEMP,6),']'< WRITE(6,*)'[',TRIANGLE(TEMP,1),',',TRIANGLE(TEMP,4),']' ELSE= WRITE(6,*)'P[',TRIANGLE(TEMP,1),',',TRIANGLE(TEMP,4),']''= WRITE(6,*)'V[',TRIANGLE(TEMP,2),',',TRIANGLE(TEMP,5),']''< WRITE(6,*)'[',TRIANGLE(TEMP,3),',',TRIANGLE(TEMP,6),']'< WRITE(6,*)'[',TRIANGLE(TEMP,1),',',TRIANGLE(TEMP,4),']' END IF 9 CONTINUE10 IF (K .EQ. 0) GOTO 12 DO 11,TEMP=1,K IF (CTYPE(TEMP) .EQ. 2) THEN9 WRITE(6,*)'P[',CIRCLE(TEMP,1),',',CIRCLE(TEMP,4),']'H WRITE(6,*)'P[]C(W(P4(M5)))'# WRITE(6,*)'(A',ANGLE(TEMP),')'H8 WRITE(6,*)'[',CIRCLE(TEMP,2),',',CIRCLE(TEMP,5),']' ELSE9 WRITE(6,*)'P[',CIRCLE(TEMP,1),',',CIRCLE(TEMP,4),']' $ WRITE(6,*)'C(A',ANGLE(TEMP),')'8 WRITE(6,*)'[',CIRCLE(TEMP,2),',',CIRCLE(TEMP,5),']' END IFA 11 CONTINUED12 IF (M .EQ. O) GOTO 14 DO 13,TEMP=1,MI4 WRITE(6,*)'P[',POINT(TEMP,1),',',POINT(TEMP,2),']' WRITE(6,*)'C[+2]'O WRITE(6,*)'[+1]' WRITE(6,*)'P[-2]'0 WRITE(6,*)'C[+1]') 13 CONTINUE 14 IF (L .EQ. 0) GOTO 16 DO 15,TEMP=1,LN IF (LTYPE(TEMP) .EQ.2) THEN'3 WRITE(6,*)'P[',LINE(TEMP,1),',',LINE(TEMP,3),']'H WRITE(6,*)'P[]V(W(P4(M5)))'2 WRITE(6,*)'[',LINE(TEMP,2),',',LINE(TEMP,4),']' ELSE3 WRITE(6,*)'P[',LINE(TEMP,1),',',LINE(TEMP,3),']'23 WRITE(6,*)'V[',LINE(TEMP,2),',',LINE(TEMP,4),']'  END IF 15 CONTINUEO16 IF (ND .EQ. 0) GOTO 18( DO 17,TEMP=1,ND4 WRITE(6,*)'P[',ADOWN(TEMP,1),',',ADOWN(TEMP,2),']' WRITE(6,*)'V[-5,-5]'4 WRITE(6,*)'P[',ADOWN(TEMP,1),',',ADOWN(TEMP,2),']' WRITE(6,*)'V[+5,-5]' 17 CONTINUE-18 IF (NR .EQ. 0) GOTO 2000KKJH+%O-%TADATADATA DO 19,TEMP=1,NR6 WRITE(6,*)'P[',ARIGHT(TEMP,1),',',ARIGHT(TEMP,2),']' WRITE(6,*)'V[-5,-5]'6 WRITE(6,*)'P[',ARIGHT(TEMP,1),',',ARIGHT(TEMP,2),']' WRITE(6,*)'V[-5,+5]' 19 CONTINUET20 IF (NU .EQ. 0) GOTO 22. DO 21,TEMP=1,NU0 WRITE(6,*)'P[',AUP(TEMP,1),',',AUP(TEMP,2),']' WRITE(6,*)'V[-5,+5]'0 WRITE(6,*)'P[',AUP(TEMP,1),',',AUP(TEMP,2),']' WRITE(6,*)'V[+5,+5]' 21 CONTINUE'22 IF (NL .EQ. 0) GOTO 24= DO 23,TEMP=1,NL4 WRITE(6,*)'P[',ALEFT(TEMP,1),',',ALEFT(TEMP,2),']' WRITE(6,*)'V[+5,-5]'4 WRITE(6,*)'P[',ALEFT(TEMP,1),',',ALEFT(TEMP,2),']' WRITE(6,*)'V[+5,+5]' 23 CONTINUEQ24 IF (Q .EQ. 0) GOTO 50 DO 40, TEMP=1,Q2 WRITE(6,*)'P[',TEXT(TEMP,1),',',TEXT(TEMP,2),']'- IF (TYPE(TEMP).EQ.1) WRITE(6,*)'T(S0,H1)'''.- IF (TYPE(TEMP).EQ.2) WRITE(6,*)'T(S0,H0)'''F- IF (TYPE(TEMP).EQ.3) WRITE(6,*)'T(S2,H3)''' 2 WRITE(6,*)(QUOTE(N), N=START(TEMP),FINISH(TEMP)) 40 CONTINUE( 50 RETURN 90 FORMAT(X,A1,A2)91 FORMAT (X,A1,A2)I95 FORMAT(X,A1,A1) END.RIGHT MARGIN 75.LEFT MARGIN 5.skip.center;^&PICTURE\&.skip 3.right;Picture Manual.flags substitute.right;$$day $$month $$year .right;Page i.skip 3.no autojustify .no justify.SET PARAGRAPH 0,1,0.STYLE HEADERS 7.AUTOPARAGRAPH: A PROGRAM TO MAKE BLOCK DIAGRAMS AND OTHER SIMILAR CHARTS.skip 2.lt Abstract --------.el: Using REGIS, the graphics language of the Digital VT240 Gcomputer terminal, and the HP commands for the Hewlett Packard plotter G(7221C), it is possible to develop block diagrams on the VAX computer. EThis memorandom describes a computer program to utilize this computergraphics package. .page .SKIP -15 .NO NUMBER.page.require "PICTURE.RNT".NUMBER PAGE 1 .no number.PAGE.right;Picture Manual.flags substitute.right;$$day $$month $$year .right;Page 1.skip 1.hl 1 ^&INTRODUCTION\&C This memorandum describes the computer program PICTURE which makesKblock diagrams and other charts on the VAX computer. Available for use on the charts are:LBoxes, Triangles, Circles/Arcs, Points, Lines/Vectors, Arrowheads, and Text.LThe program PICTURE can only be run on the Digital VT240 computer terminal, Nhowever, since the program uses REGIS, the graphics language of that terminal.JThree files are created when you run the program. One file stores all the NREGIS commands, the second file stores all the plotter commands and the third Jfile stores the number and position of each type of object in the diagram.NThese three files enable you to draw block diagrams both on the screen and the/plotter. The program is listed in Apendix A. .hl 1 ^&INSTRUCTIONS\&Once you have a generalKidea of the type of diagram you would like to make, you type 'Run PICTURE'.7(From here on out you should be using capital letters.)B There are five questions that must be answered before the diagramcan be drawn on the screen.A 1. 'DO YOU WANT TO ADD TO AN OLD DIAGRAM?(YES OR NO)' KThis program has the capability to either start a new diagram from scratch,!or to add to an existing diagram.? 2. 'WHAT IS THE NAME OF THE FILE?(NAME MUST END WITH .DAT)(PUTOANSWER IN QUOTES)' IThis file stores all the REGIS commands needed to draw the diagram on theIVT240 terminal screen. The name of this file can be anything but it mustLalways end with '.DAT'. When the command 'TY ***.DAt' is given, the drawing?will be displayed on the screen of the VT240 computer terminal.D 3. 'WHAT IS THE NAME OF THE PLOTTING FILE?(NAME MUST END WITH .FOR)O(PUT THE ANSWER IN QUOTES)' JThis file stores all the plotter commands and must always end with '.FOR'.MTo draw the diagram on the plotter you first give the command to FOR and then*LINK this file. (Using LINK ***,HPLIB/LIB):You must then run it on the terminal which is hooked up toLthe HP 7221C plotter. Generally, for convenience only, it is a good idea toDgive the same na00K(KK H6%! !me to both the plotting and the REGIS command files..page.right;Picture Manual.flags substitute.right;$$day $$month $$year .right;Page 2.skip 1? 4. 'WHAT IS THE NAME OF THE OBJECT ARRAY FILE? (NAME MUST ENDNWITH .DAT) (PUT THE ANSWER IN QUOTES)' OThis file stores the number and position of each type of object in the diagram.LThis file must end in '.DAT' as the plotting file must and therefore cannot Mhave the same name. For ease of remembrence, it is suggested that you add anJ'O' to the end of the plotting file name to differentiate between the two.F 5. 'IS THE PAPER SIZE A OR B? IF IT IS A, WILL IT BE HELD VERTICALLYOOR HORIZONTALLY? (ANSWER: VA, HA, OR B)' NThe program has the capability to use small (A-size) paper, or large (B-size) Mpaper. When you use B-size paper you can draw in the equivalent of 4 screens by using the scroll command.OIf you are going to use A-size paper, you must indicate which way you are goingMto hold it (vertically- with an equivalent of 2 screens (left top and bottom)Mor horizontally- with 1 and 1/2 screens down and, 1 and 1/4 screens over). B After the last question is answered, a list of instructions will Lappear. After you have read all of the instructions you are ready to start./.hl 2 ^&TO MOVE CURSOR AND DRAW/ERASE OBJECTS\&B When you have finished reading the instructions, two intersectingIlines will appear on the screen. These lines (or crosshair) are the REGISJcursor. To move the cursor use the arrow keys. (The intersection of the Jtwo lines is the position that will be stored.) When the cursor is in theLcorrect position, you press the letter of the object which you wish to draw. .hl 3 ^&BOX\&.lt To draw a box:D1. Place the cursor at the top left hand corner of the box and then press 'B'.E2. Now move the cursor to the bottom right hand corner and press 'G' B for a box with a solid outline, or 'Y' for a box with a dashed outline. To erase a box:D1. Place the cursor at the top left hand corner of the box and press 'X'.E2. Now move the cursor to the bottom right hand corner and press 'B'..el.page.right;Picture Manual.flags substitute.right;$$day $$month $$year .right;Page 3.skip 1.hl 3 ^&TRIANGLE\&.lt To draw a triangle:D1. Place the cursor at one of the vertices of the triangle and press 'T'.:2. Now move the cursor to the second vertex and press 'G'.G3. Now move the cursor to the third vertex and press 'G' for a triangleE with a solid outline, or 'Y' for a triangle with a dashed outline. To erase a triangle:D1. Place the cursor at one of the vertices of the triangle and press 'X'.:2. Now move the cursor to the second vertex and press 'T'.93. Now move the cursor to the third vertex and press 'G'..el.hl 3 ^&CIRCLE/ARC\&.lt To draw a circle/arc:B1. Place the cursor at the center of the circle/arc and press 'O'.E2. Move the cursor to the beginning of the circle/arc (the circle/arcE will be drawn counter-clockwise from the position of the beginning) point.) and press 'G','H','J', or 'K'.: G -When the starting angle<=180 and the total angle<=180 or when drawing a circle9 H -When the starting angle<=180 and the total angle>1808 J -When the starting angle>180 and the total angle>1809 K -When the starting angle>180 and the total angle<=180D (The starting angle is the angle of the beginning of the circle/arcD measured relative to the horizontal axis coming from the center ofC the arc. The total angle is the angle of the circle/arc measured4 relative to the starting position and the center.).el.page.right;Picture Manual.flags substitute.right;$$day $$month $$year .right;Page 4.skip 1.ltH3. The cursor must now be moved to the ending position of the circle/arcE and press 'G' for a solid line around the circle/arc, or 'Y' for a dashed line.; Figure 1 shows examples o00KKJH+%O-%TADATADATAf how to make circles and arcs. To erase a circle:E1. Position the cursor at the center of the circle/arc and press 'X'.@2. Now move the cursor to a point on the circle/arc and hit 'O'..el.hl 3 ^&Point\&.lt To draw a point:?1. Place the cursor at the position of the point and press 'P'. To erase a point:?1. Place the cursor at the position of the point and press 'X'.22. Now press 'P' (keeping the cursor where it is)..el.hl 3 ^&LINE\&.lt To draw a line:91. Place the cursor at one end of the line and press 'A'.F2. Now move the cursor to the other end of the line and press 'G','Y', 'A','P','R','U','L',or 'D' G -To draw a solid line Y -To draw a dashed line A -To start another line+ P -To draw a point on the end of the line6 R,U,L,D -To draw an arrowhead at the end of the line To erase a line:91. Place the cursor at one end of the line and press 'X'.B2. Now move the cursor to the other end of the line and press 'A'..el.page.hl 1 ^&FIGURE 1\&.page.right;Picture Manual.flags substitute.right;$$day $$month $$year .right;Page 6.skip 1.hl 3 ^&ARROWHEAD\&.lt To draw an arrowhead:E1. Position the cursor where the arrowhead is to be placed and press:% D -To draw an arrowhead facing down- R -To draw an arrowhead facing to the right# U -To draw an arrowhead facing up, L -To draw an arrowhead facing to the left To erase an arrowhead:<1. Position the cursor where the arrowhead is and press 'X'.2. Then press:& D -To erase an arrowhead facing down. R -To erase an arrowhead facing to the right$ U -To erase an arrowhead facing up- L -To erase an arrowhead facing to the left.el.hl 3 ^&TEXT\&.lt To write text:C1. Position the cursor either 1,2, or 3 shifted up-arrows above theA position of the small,medium or large print, respectively, and press 'W'.D2. Then press either 1,2, or 3 for the small, medium or large print.G3. The REGIS text cursor (a diamond with a cross in it) will now appearG and you can begin typing in the text. (No more than 50 characters on a line.)E4. To get out of the text mode you must press a single quote mark and then press .H(Since a single quote mark gets you out of the text mode, you cannot use) quotes in the text part of the diagram.).el.page.right;Picture Manual.flags substitute.right;$$day $$month $$year .right;Page 7.skip 1.lt To erase text:41. Position the cursor above the text and press 'X'.( small print - 1 shifted up-arrow above; medium print - 2 shifted up-arrows and 2 single up-arrows$ above: large print - 3 shifted up-arrows and 4 single up-arrows aboveD (A shifted arrow moves the cursor 10 pixels in the direction of theF arrow. Pressing the arrow key alone only moves the cursor 1 pixel.).2. Then press 'W' (without moving the cursor). General text information:.elC If, for some reason, you enter and then exit the text mode withoutPwriting anything, make sure you erase the text anyway so that it doesn't affect the program at a later time.H When in the text mode, you can use the single space delete key to make Icorrections on the line you are on. (The text will not appear erased fromEthe screen, but it will be gone the next time the screen is redrawn.)NOnce you hit return, you cannot fix any of the previous lines using the deletekey.I When the text is erased, everything that was entered during that single Rentry and single exit of the text writing portion of the program will be erased. >It is therefor advisable to enter the text a little at a time.D Since the text is erased from the screen by writing over it in the Nscreens background color, any other objects which were drawn in that area may Oappear all or partially erased. However, those objects will still be there whenthe screen is redrawn..hl 2 ^&SCROLL/REDRAW SCREEN\&B The screen can be scrolled up, down, left a00KKK H6%! !nd right. Each screenKis equivalent to 1/4 of a B-size piece of paper. Each screen is 800 by 480Hpixels, giving a total graphics area of 1600 by 960. If A-size paper isJspecified (which is going to be placed horizontally on the plotter) then,Pthe total graphics area is reduced to 1000 by 720. If A-size paper is specifiedP(which is going to be placed vertically on the plotter) then, the total graphicsMarea is reduced to 800 by 960. Each time the scroll command is invoked, the Nscreen is scrolled 1/2 a screen in the direction specified. (except when using"A-size paper placed horizontally.).page.right;Picture Manual.flags substitute.right;$$day $$month $$year .right;Page 8.skip 1B To scroll the screen or redraw it, press 'S' and then specify thedirection or redraw. .hl 2 ^&END\&C When the drawing is complete or if at anytime you wish to end the Gprogram you press 'E'. When this is done, all the information about theHdiagram is stored in the three files which were created at the beginning6of the program. Figures 2 and 3 show the end results..hl 1 ^&GENERAL INFORMATION\&D To read the instructions which were printed at the beginning of theprogram, press 'I'.C Make sure you go slow and do not type anything unless you see the Hcrosshair or the text curser. If you do go too fast and type things in Lbefore you should, you will cause an input error and may end up losing what you have done so far.H To avoid losing additions to a diagram, it is advisable to periodicallyJend the program and then start again. This will save new additions to theOdiagram in case the system shuts down, or, an error occurs (causing an abnormalexit from the program).E If the text curser appears when it should not be there, or when textJappears when it should not, press the 'set-up' control button. Then pressK'recall' (using the arrow keys to get there) and then press 'enter'. PressJ'set-up again, then press the 'lock' key and then return. You will eitherLstill be in the program, or you will see the dollar sign signifying that youJare out of the program. If you are out of the program, the latest versionLof the object array data file will be empty and cause an error if you try to:run the program again without first deleting this version..page.hl 1 ^&FIGURE 2\&.page.hl 1 ^&FIGURE 3\&.page.hl 1 ^&APPENDIX A\&.page.! DSRTOC version V2.1-09.! RUNOFF/CONTENTS/INDENT BD.SAVE .NO FLAGS ALL;.NO FLAGS BREAK .NO FLAGS CAPITALIZE .NO FLAGS ENDFOOTNOTE5.NO FLAGS HYPHENATE .NO FLAGS INDEX .NO FLAGS PERIOD%.NO FLAGS SPACE .NO FLAGS SUBSTITUTE0.FLAGS ACCEPT _ .FLAGS BOLD * .FLAGS COMMENT !9.FLAGS LOWERCASE \ .FLAGS OVERSTRIKE % .FLAGS UNDERLINE &.FLAGS UPPERCASE ^ .FLAGS ALL.NO FILL .NO JUSTIFY0.LEFT MARGIN 8 .RIGHT MARGIN 70 .PAGE SIZE , 70.CENTER;CONTENTS.BLANK .TEST PAGE 2>1 INTRODUCTION . . . . . . . . . . . . . . . . . . . . 1>2 INSTRUCTIONS . . . . . . . . . . . . . . . . . . . . 1?2_.1 TO MOVE CURSOR AND DRAW/ERASE OBJECTS . . . . . . 2@2_.1_.1 BOX . . . . . . . . . . . . . . . . . . . . . . 2@2_.1_.2 TRIANGLE . . . . . . . . . . . . . . . . . . . . 3@2_.1_.3 CIRCLE/ARC . . . . . . . . . . . . . . . . . . . 3@2_.1_.4 Point . . . . . . . . . . . . . . . . . . . . . 4@2_.1_.5 LINE . . . . . . . . . . . . . . . . . . . . . . 4>3 FIGURE 1 . . . . . . . . . . . . . . . . . . . . . . 5@3_.0_.1 ARROWHEAD . . . . . . . . . . . . . . . . . . . 6@3_.0_.2 TEXT . . . . . . . . . . . . . . . . . . . . . . 6?3_.1 SCROLL/REDRAW SCREEN . . . . . . . . . . . . . . . 7?3_.2 END . . . . . . . . . . . . . . . . . . . . . . . 8>4 GENERAL INFORMATION . . . . . . . . . . . . . . . . 8>5 FIGURE 2 . . . . . . . . . . . . . . . . . . . . . . 9>6 FIGURE 3 . . . . . . . . . . . . . . . . . . . .00KKJH+%O-%TADATADATA . 10>7 APPENDIX A . . . . . . . . . . . . . . . . . . . . 11.RESTORETFrom: HENRY::IN%"js%UW-JUNE.ARPA%SRI-KL.ARPA%relay.cs.net@rca.com" 7-SEP-1986 07:59To: info-vax@SRI-KL.arpa7Subj: QUOTA and AUTHORIZATION file access, Sample code.? It's been a while since I've posted any sample code, so, heresKa short program I threw together that gets disk quota information, performsIa lookup in the authorization file, and prints out a line showing all theOusefull info. UAF.REC contains a fortran record definition of the authorizationIfile, DQF.REC contains a record definition of QUOTA.SYS, although I don'tDdirectly read the QUOTA file in this example (I use a QIO function).F I hope this answers a few peoples questions about how to access theseLthings.. I haven't updated to 4.4 yet, so I don't use the SYS$GETUAI serviceJin this code, but I plan on upgrading to it so I can provide an example ofit in the future.A Anyway, move to a nice fresh directory and execute the following*procedure if you want to. I call it QUOTA. Cheers, Joe Meadows Jr js@uw-june.arpa$ say := write sys$output$ say "Creating diskquota.mar"$ create diskquota.mar$ deck .title diskquota .library 'sys$share:lib'$iodef$fibdef$dqfdef fib_desc: .long fib$k_length .long fibfib: .blkb fib$k_length iosb: .quad chan: .blkw 1 % .entry next_quota,^m tstw chan bneq 10$ $assign_s- devnam=@4(ap),- chan=chan blbc r0,20$.10$: movw #fib$c_exa_quota,fib+fib$w_cntrlfunc5 movl #fib$m_all_mem!fib$m_all_grp,fib+fib$l_cntrlval movl @8(ap),fib+fib$l_wcc $qiow_s func=#io$_acpcontrol,- iosb=iosb,- chan=chan,- p1=fib_desc,- p2=12(ap),- p3=16(ap),- p4=12(ap) blbc r0,20$ movl iosb,r0 blbc r0,20$ movl fib+fib$l_wcc,@8(ap)20$: ret .end$ eod$ say "Creating DQF.REC"$ create dqf.rec parameter DQF$M_ACTIVE = 1 parameter DQF$K_LENGTH = 32 parameter DQF$C_LENGTH = 32 parameter DQF$S_DQFDEF = 32 structure /dqfdef/ union map integer*4 DQF$L_FLAGS parameter DQF$V_ACTIVE = 0 integer*4 DQF$L_UIC integer*4 DQF$L_USAGE integer*4 DQF$L_PERMQUOTA integer*4 DQF$L_OVERDRAFT end map map character*32 t_full end map end union end structure$ eod$ say "Creating UAF.REC$ create uaf.rec$ deck!*** MODULE $UAFDEF ***! ++!! User authorization file format=! Note: With the exception of the username and account name,=! all strings are blank padded counted strings. Username and,! account name are uncounted, blank padded.! -- STRUCTURE /UAF/ union map character*1412 t_full end map map" BYTE B_RTYPE ! UAF record type' BYTE B_VERSION ! UAF format version@ INTEGER*2 W_USRDATOFF ! offset of counted string of user data ! username UNION MAP& CHARACTER*32 T_USERNAME ! username END MAP MAP CHARACTER*31 %FILL> CHARACTER*1 T_USERNAME_TAG ! tag to differentiate records END MAP END UNION ! uic UNION MAP INTEGER*4 L_UIC END MAP MAP& INTEGER*2 W_MEM ! member subfield% INTEGER*2 W_GRP ! group subfield END MAP END UNION+ INTEGER*4 L_SUB_ID ! user sub-identifierA INTEGER*4 Q_PARENT_ID(2) ! identifier of owner of this account) CHARACTER*32 T_ACCOUNT ! account name' CHARACTER*32 T_OWNER ! owner's name* CHARACTER*32 T_DEFDEV ! default device- CHARACTER*64 T_DEFDIR ! default directory. CHARACTER*64 T_LGICMD ! login command file7 CHARACTER*32 T_DEFCLI ! defaul00KKK H6%! !t command interpreter- CHARACTER*32 T_CLITABLES ! user CLI tables ! Password UNION MAP INTEGER*4 Q_PWD(2) END MAP MAP' INTEGER*4 L_PWD ! 32 bit subfield END MAP END UNION) INTEGER*4 Q_PWD2(2) ! second password2 INTEGER*2 W_LOGFAILS ! count of login failures+ INTEGER*2 W_SALT ! random password salt* BYTE B_ENCRYPT ! encryption algorithm7 BYTE B_ENCRYPT2 ! encryption algorithm for 2nd pwd/ BYTE B_PWD_LENGTH ! minimum password length BYTE %FILL: INTEGER*4 Q_EXPIRATION(2) ! expiration date for account2 INTEGER*4 Q_PWD_LIFETIME(2) ! password lifetime5 INTEGER*4 Q_PWD_DATE(2) ! date of password change9 INTEGER*4 Q_PWD2_DATE(2) ! date of 2nd password change> INTEGER*4 Q_LASTLOGIN_I(2) ! date of last interactive loginB INTEGER*4 Q_LASTLOGIN_N(2) ! date of last non-interactive login2 INTEGER*4 Q_PRIV(2) ! process privilege vector8 INTEGER*4 Q_DEF_PRIV(2) ! default process privileges4 CHARACTER*20 R_MIN_CLASS ! minimum security class4 CHARACTER*20 R_MAX_CLASS ! maximum security class INTEGER*4 L_FLAGS6c PARAMETER UAF$V_DISCTLY = 0 ! no user control-y?c PARAMETER UAF$V_DEFCLI = 1 ! only allow user default CLIAc PARAMETER UAF$V_LOCKPWD = 2 ! disable SET PASSWORD commandCc PARAMETER UAF$V_CAPTIVE = 3 ! captive account (no overrides)9c PARAMETER UAF$V_DISACNT = 4 ! no interactive login;c PARAMETER UAF$V_DISWELCOM = 5 ! skip welcome message:c PARAMETER UAF$V_DISMAIL = 6 ! skip new mail message9c PARAMETER UAF$V_NOMAIL = 7 ! disable mail delivery?c PARAMETER UAF$V_GENPWD = 8 ! passwords must be generated<c PARAMETER UAF$V_PWD_EXPIRED = 9 ! password has expiredBc PARAMETER UAF$V_PWD2_EXPIRED = 10 ! 2nd password has expired5c PARAMETER UAF$V_AUDIT = 11 ! audit all actions?c PARAMETER UAF$V_DISREPORT = 12 ! skip last login messages?c PARAMETER UAF$V_DISRECONNECT = 13 ! inhibit reconnections6c PARAMETER UAF$V_AUTOLOGIN = 14 ! auto-login only> BYTE B_NETWORK_ACCESS_P(3) ! hourly network access, primary@ BYTE B_NETWORK_ACCESS_S(3) ! hourly network access, secondary: BYTE B_BATCH_ACCESS_P(3) ! hourly batch access, primary< BYTE B_BATCH_ACCESS_S(3) ! hourly batch access, secondary: BYTE B_LOCAL_ACCESS_P(3) ! hourly local access, primary< BYTE B_LOCAL_ACCESS_S(3) ! hourly local access, secondary< BYTE B_DIALUP_ACCESS_P(3) ! hourly dialup access, primary> BYTE B_DIALUP_ACCESS_S(3) ! hourly dialup access, secondary< BYTE B_REMOTE_ACCESS_P(3) ! hourly remote access, primary> BYTE B_REMOTE_ACCESS_S(3) ! hourly remote access, secondary CHARACTER*12 %FILL BYTE B_PRIMEDAYSHc PARAMETER UAF$V_MONDAY = 0 ! bit clear means this is a primary dayDc PARAMETER UAF$V_TUESDAY = 1 ! bit set means this is an off day"c PARAMETER UAF$V_WEDNESDAY = 2!c PARAMETER UAF$V_THURSDAY = 3c PARAMETER UAF$V_FRIDAY = 4!c PARAMETER UAF$V_SATURDAY = 5c PARAMETER UAF$V_SUNDAY = 6 BYTE %FILL& BYTE B_PRI ! base process priority0 BYTE B_QUEPRI ! maximum job queuing priority5 INTEGER*2 W_MAXJOBS ! maximum jobs for UIC allowed ! 0 means no limit= INTEGER*2 W_MAXACCTJOBS ! maximum jobs for account allowed ! 0 means no limit= INTEGER*2 W_MAXDETACH ! maximum detached processes for UIC ! 0 means no limit1 INTEGER*2 W_PRCCNT ! subprocess creation limit) INTEGER*2 W_BIOLM ! buffered I/O limit' INTEGER*2 W_DIOLM ! direct I/O limit. INTEGER*2 W_TQCNT ! timer queue entry limit& INTEGER*2 W_ASTLM ! AST queue limit$ INTEGER*2 W_ENQLM ! enqueue limit& INTEGER*2 W_FILLM ! open file limit+ INTEGER*2 W_SHRFILLM ! shared file limit/ INTEGER*4 L_WSQUOTA ! working set size quota1 INTEGER*4 L_DFWSCNT ! default working set size0 INTEGER*4 L_WSEXTENT ! working set size limit* INTEGER*4 L_PGFLQUOTA ! page file quota& INTEGER*4 L_CPUTIM ! CPU time quota4 INTEGER*4 L_BYTLM ! buffered I/O byte count limit9 INTEGER*4 L_PBYTLM ! paged bu00KKJH+%O-%TADATADATAffer I/O byte count limitC INTEGER*4 L_JTQUOTA ! job-wide logical name table creation quota; INTEGER*2 W_PROXY_LIM ! number of proxies user can grant2 INTEGER*2 W_PROXIES ! number of proxies granted; INTEGER*2 W_ACCOUNT_LIM ! number of sub-accounts allowed7 INTEGER*2 W_ACCOUNTS ! number of sub-accounts in use end map end union END STRUCTURE$ eod$ say "Creating QUOTA.FOR"$ create quota.for$ deck program diskquotas implicit integer (a-z) include 'dqf.rec' include 'uaf.rec' external ss$_nodiskquota record /UAF/ uafrec record /dqfdef/ dqf character*80 buff,output integer p1(2)/'020e0000'x,0/ call cli$get_value('p1',p1)$ call cli$get_value('output',output) status = lib$get_lun(uaf_lun)/ if (.not.status) call lib$signal(%val(status))< open(unit=uaf_lun,file='sys$system:sysuaf.dat',status='old'4 1 ,readonly,shared,access='keyed',form='formatted') binary=cli$present('binary') status = lib$get_lun(out_lun)/ if (.not.status) call lib$signal(%val(status)) if (binary) then, open(unit=out_lun,file=output,status='new'. 1 ,form='unformatted',recordtype='variable') else- open(unit=out_lun,file=output,status='new') end if410 status = next_quota(p1,context,dqf.t_full,buflen)- if (status.eq.%loc(ss$_nodiskquota)) goto 20/ if (.not.status) call lib$signal(%val(status)). read(unit=uaf_lun,keyeq=dqf.dqf$l_uic,keyid=17 1 ,fmt='(q,a)',err=15,iostat=ios) length,uafrec.t_full; call str$trim(uafrec.t_username,uafrec.t_username,userlen) if (dqf.dqf$l_flags) then0 call sys$fao('!AS !SL!_!%I!_!AS',length,buff 1 ,uafrec.t_account 2 ,%val(dqf.dqf$l_usage) 3 ,%val(dqf.dqf$l_uic)! 4 ,uafrec.t_username(:userlen)) else15 if (ios.ne.0) then uafrec.t_account='error' uafrec.t_username='error' userlen=5 end if0 call sys$fao('!AS !SL!_!%I!_!AS',length,buff 1 ,uafrec.t_account 2 ,%val(dqf.dqf$l_usage) 3 ,%val(dqf.dqf$l_uic)! 4 ,uafrec.t_username(:userlen)) end if if (binary) then; call str$trim(uafrec.t_account,uafrec.t_account,accntlen) write(out_lun) dqf.dqf$l_uic 1 ,dqf.dqf$l_usage! 2 ,uafrec.t_account(:accntlen) else write(out_lun,*) buff(:length) end if goto 1020 end$ eod$ say "Creating QUOTA.CLD"$ create quota.cld$ deckP!*************************************QUOTA*************************************define verb QUOTA parameter P1 default- value (default="SYS$DISK",type=$device) qualifier BINARY qualifier OUTPUT default0 value (default="SYS$OUTPUT",type=$outfile)$ eod$ say "Compiling DISKQUOTA.MAR"$ macro diskquota$ say "Compiling QUOTA.FOR$ fortran quota$ say "Linking QUOTA,DISKQUOTA"$ link/notrace quota,diskquota$ say "Defining QUOTA command"$ set command quota$ type sys$input7 In the future you will either need to modify QUOTA.CLD6 or add a DEFINE QUOTA device:[directory]QUOTA to your; login command procedure.. For now I'll define it for you..($ define quota 'f$envir("default")'QUOTA/$ say "All done, give it a try by saying QUOTA"C1 !***************************************************************& ! &8 ! This is a utility for extracting member file stored &5 ! in a DECnet virtual floppy container file. & ! &+ ! 1.0 Written by Rick Watson 27-Feb-86 & ! &+ ! 2.0 Modified 12-Mar-86 to version 2.0 & ! &+ ! Version 2.0 reads the virtual floppy &( ! file and uses the DOS information &* ! i.e. boot block, FAT, and directory &+ ! to perform its functions. It should &.00KKK H6%! ! ! work with any VAX record length to 1024 &. ! and knows about various DOS sector sizes &, ! and clusters. Also, the files output &+ ! will work with VAX utilities such as & ! VMSSWEEP. & ! &5 ! 2.1 Fixed bug - program now deletes ' characters &/ ! from output file name in extract function & ! &2 ! 2.2 Added message indicating that filename is &- ! being changed during extract function. &1 ! replaced '-' character in filename with '_' & ! &2 ! 3.0 Added selective file extraction with wild & ! card support. & ! &2 ! 3.1 Changed extract so null entry to filename &2 ! prompt is illegal. Also fixed up help menu. & ! &+ ! 4.0 Added support for subdirectories. & ! &2 ! 4.1 Fixed bug which caused program to loop if &/ ! change directory function was used with a &3 ! nonexistant directory. Also changed function &+ ! letters so dir and type can be used. & ! &, ! 4.2 Added error trapping for too many &' ! subdirectories. Released version & ! &B !***************************************************************&1000 on error goto 19000 1100 print= print 'DECnet Virtual Floppy Disk Extraction Utility V 4.2' 1110 print" input 'Input File ';in_filename$11200 open in_filename$ for input as file #2%, & undefined, & recordtype none1210 map (sector_buffer) & sector_buffer$ = 1024% map (sub_dir_buffer) &! sub_dir_buffer$ = 1024% map (boot_record) & string boot_record = 128% map (boot_record) & string boot_fill = 3%, & string boot_id = 8%, &" word boot_bytes_per_sector, &$ byte boot_sectors_per_cluster, &" word boot_reserved_sectors, & byte boot_fat_copies, &' word boot_root_directory_entries, & word boot_total_sectors, & byte boot_format_id, &! word boot_sectors_per_fat, &# word boot_sectors_per_track, & word boot_total_sides, &% word boot_special_reserved_sectors+1220 map (DOS_directory) dir_entry$ = 32%- map (DOS_directory) dir_filename$ = 8%, & dir_ext$ = 3%, & byte dir_attribute, &" string dir_who_knows = 10%, & word dir_creation_time, & word dir_creation_date, & word dir_first_cluster, & long dir_filesizeB1900 xlate_table$ = ' ' + chr$(7%) + chr$(8%) + chr$(9%) + &4 chr$(10%) + chr$(11%) + chr$(12%) + chr$(13%) + &- ' ' + chr$(27%) + ' ' + &3 '!"#$%&' + "'" + '()*+,-./0123456789:;<=>?@' + &* 'ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`' + &) 'abcdefghijklmnopqrstuvwxyz{|}~ ' + &+ ' ' + &3 '!"#$%&' + "'" + '()*+,-./0123456789:;<=>?@' + &* 'ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`' + &$ 'abcdefghijklmnopqrstuvwxyz{|}~ '7 month_string$ = 'JanFebMarAprMayJunJulAugSepOctNovDec'1910 dim dir_stack_name$(1000%) dim dir_stack_level%(1000%)$ dim dir_stack_start_cluster%(1000%) dim dir_stack_parent%(1000%) dim sub_directories$(10%) dim sub_directory_case%(10%)2000 last_record_num% = -1% print gosub 11200# print 'Building directory tree...' gosub 11600 print+ print 'Volume label is ';volume_label$ & if volume_label$ <> ''$ print 'Volume is not labeled' & if volume_label$ = '' 2010 printB print 'Functions: C [Path] Change subdirectories'> print ' D [Path]File-spec Directory display'< print ' E [Path]File-spec Extract file(s)'1 print ' H Help'B print ' L List file format info'1 print ' Q Quit'@ print ' R Reselect input file'C print ' S Show Subdirectory tree'9 print ' T [Path]File-spec Type file(s)' 2020 print input 'Function ';function$$ function$ = edit$( function$, 189%) x% = instr( 1%, function$, 00KKJH+%O-%TADATADATA' ') parameter$ = ''. parameter$ = right( function$, x% + 1%) if x% function$ = left(function$,1%) goto 2020 if function$ = ''( x% = instr( 1%, 'CDEHLQRST', function$) goto 2020 unless x% parameter_entered% =0%. parameter_entered% =1% unless parameter$ = ''- if (function$ = 'T' or function$ = 'E') then! if parameter_entered% = 0% then print( print 'Parameter missing...Try again' print goto 2020E2030 on x% goto 3400, 3000, 3000, 2010, 3200, 32700, 1110, 3300, 30003000 eof_flag% = 0% dir_rec_num% = 0% end_of_directory% = 0% some_file_found% = 0% gt_files% = 0% gt_bytes% = 0% t_files% = 0% t_bytes% = 0% t_directories% = 0% if parameter_entered% then! entered_file_spec$ = parameter$ gosub 11800 search_directory% = -1% if file_spec_error% then print/ print 'Illegal filespec entered...Try again' goto 2020 end if3010 if parameter_entered% then, search_directory% = search_directory% + 1%9 goto 3090 if search_directory% > max_dir_stack_pointer%: goto 3010 if not fn_directory_match% (search_directory%) else entered_filename$ ='*' entered_ext$ = '*' file_case% = 5% ext_case% = 5%( search_directory% = current_directory% end if< this_cluster% = dir_stack_start_cluster%(search_directory%) first_call% = -1% new_directory% = -1%)3020 gosub 11100 unless search_directory%! gosub 11700 if search_directory%# goto 3040 unless end_of_directory% if t_files% then" gt_files% = gt_files% + t_files%" gt_bytes% = gt_bytes% + t_bytes% print2 print 'Total of ';num1$(t_files%);' files, '; & num1$(t_bytes%);' bytes'& t_directories% = t_directories% + 1% t_files% = 0% t_bytes% = 0%$3030 goto 3010 if parameter_entered% goto 3090&3040 goto 3020 if dir_attribute and 8%# goto 3020 if dir_attribute and 16%B goto 3020 unless fn_name_match% (file_case%, entered_filename$, & edit$(dir_filename$,191%))< goto 3020 unless fn_name_match% (ext_case%, entered_ext$, & edit$(dir_ext$,191%)) some_file_found% = -1% if function$ = 'T' then gosub 12000 goto 3020 end if if function$ = 'E' then gosub 12100 goto 3020 end if if new_directory% then new_directory% = 0% print print 'Directory of ';< print edit$(volume_label$,189%); unless volume_label$ = ''* print 'Unlabeled'; if volume_label$ = ''. print ':';fn_dir_string$( search_directory%) print%3050 day% = dir_creation_date and 31% day$ = num1$(day%) day$ = ' ' + day$ if day% < 10%# month% = (dir_creation_date / 32%) month% = month% and 15%< month$ = mid( month_string$, ((month% - 1%) * 3%) + 1%, 3%)! year% = dir_creation_date / 512% year$ = num1$( year% + 1980%)/ file_date$ = day$ + '-' + month$ + '-' + year$&3060 hour% = dir_creation_time / 2048% hour% = hour% and 31% hour$ = num1$( hour%)# hour$ = '0' + hour$ if hour% < 10%" minute% = dir_creation_time / 32% minute% = minute% and 63% minute$ = num1$(minute%)) minute$ = '0' + minute$ if minute% < 10%# file_time$ = hour$ + ':' + minute$,3070 print dir_filename$;'.';dir_ext$;' ';/ print ' ';file_date$;' ';file_time$;' ';( print using '###,###,###', dir_filesize3080 t_files% = t_files% + 1%# t_bytes% = t_bytes% + dir_filesize goto 3020!3090 if not some_file_found% then print print 'No files found in ';< print edit$(volume_label$,189%); unless volume_label$ = ''* print 'Unlabeled'; if volume_label$ = ''2 print ':';fn_dir_string$( current_directory%) & unless parameter_entered% print ':';parameter$ & if parameter_entered% print goto 2020!3100 goto 2020 if function$ = 'T' goto 2020 if function$ = 'E' print if t_directories% > 1% then. print 'Grand total of ';num1$(gt_files%); &' ' files, ';num1$(gt_bytes%);' bytes' print end if goto 20203200 gosub 11300 goto 2020 3300 print& for x% = 0% to max_dir_stack_pointer%) print space$(dir_stack_level%(x%) * 8%);' print edit$(dir_stack_name$(x%), 191%)00KKK H6%! ! next x% goto 20203400 if parameter_entered% then! entered_file_spec$ = parameter$ else print, input 'New directory ';entered_file_spec$93410 entered_file_spec$ = edit$(entered_file_spec$, 191%)% goto 3450 if entered_file_spec$ = '' gosub 11800/ if wild_card_entered% or file_spec_error% then print. print 'Illegal filespec entered...Try again'% goto 3400 unless parameter_entered% goto 20203420 this_level% = 0% if sub_dir_pointer% = 0% then current_directory% = 0% goto 3450*3430 for x% = 0% to max_dir_stack_pointer%( this_level% = dir_stack_level%(x%) &' if dir_stack_level%(x%) < this_level%% this_level% = this_level% + 1% &+ if edit$(dir_stack_name$(x%),191%) = &3 edit$(sub_directories$(this_level% + 1%),191%) &. and dir_stack_level%(x%) = this_level% + 1%' if this_level% = sub_dir_pointer% then current_directory% = x% goto 3450 3440 next x% print& print 'Unknown directory...Try again'$ goto 3400 unless parameter_entered% goto 2020 3450 print# print 'Current directory is now ';; print edit$(volume_label$,189%); unless volume_label$ = '') print 'Unlabeled'; if volume_label$ = ''. print ':';fn_dir_string$( current_directory%) goto 2020G11000 !***************************************************************& ! &$ ! here to get a sector of data & ! &B !***************************************************************&?11010 record_num% = ((((sector_num% - 1%) * sector_size%) / & record_size%) + 1%), record_offset% = (sector_num% - 1%) - &, (((record_num% - 1%) * record_size%) / & sector_size%)( if record_num% <> last_record_num% then get #2%, block record_num% last_record_num% = record_num%11020 bytes_moved% = 0%@11030 field #2%, record_offset% * record_size as record_fill$, & record_size% as record_data$= lset sector_buffer$ = left(sector_buffer$, bytes_moved%) + & record_data$+ bytes_moved% = bytes_moved% + record_size%+ goto 11099 if bytes_moved% >= sector_size% record_num% = record_num% + 1% last_record_num% = record_num% get #2%, block record_num% goto 11030 11099 returnG11100 !***************************************************************& ! &, ! here to get next root directory entry & ! &B !***************************************************************&&11110 dir_rec_num% = dir_rec_num% + 1%, if dir_rec_num% > max_directory_entry% then end_of_directory% = -1% goto 11199C11120 sector_num% = ((dir_rec_num% - 1%) / entries_per_sector%) + & first_directory_sector%$ dir_offset% = dir_rec_num% - &0 (((sector_num% - first_directory_sector%) * & entries_per_sector%) + 1%) gosub 11000B lset dir_entry$ = mid(sector_buffer$, (dir_offset% * 32%) + 1%, & 32%) x% = ascii( dir_filename$ ) if x% = 0% then end_of_directory% = -1% goto 11199 else goto 11100 if x% = 229%4 goto 11100 if edit$(dir_filename$,191%) = '' and & edit$(dir_ext$,191%) = '' 11199 return G11200 !***************************************************************& ! &' ! here to get boot record and init & ! &B !***************************************************************&11210 get #2%, block 1% record_size% = recount last_record_num% = 1% field #2%, 128% as boot_block$ lset boot_record = boot_block$ :11220 first_directory_sector% = boot_reserved_sectors + & ( boot_sectors_per_fat * & boot_fat_copies) + 1%* fat_pointer% = boot_reserved_sectors + 1%) cluster_size% = boot_sectors_per_cluster% sector_size% = boot_bytes_per_sector3 max_directory_entry% = boot_root_directory_entries) entries_per_sector% = sector_size% / 32%1 first_data_sector% = boot_reserved_sectors + &/ (boot_sectors_per_fat * boot_fat_copies) + &9 (boot_root_directory_entries / entries_per_sector%) + & 1% 11290 returnG11300 !***************************************************************& ! &00KKJH+%O-%TADATADATA' ! here to display boot record info & ! &B !***************************************************************& 11320 print9 disk_format$ = 'Unknown...ID = ' + num1$(bood_format_id)4 disk_format$ = 'Double Sided 8 sectors / track' & if boot_format_id = -14 disk_format$ = 'Single Sided 8 sectors / track' & if boot_format_id = -24 disk_format$ = 'Double Sided 9 sectors / track' & if boot_format_id = -34 disk_format$ = 'Single Sided 8 sectors / track' & if boot_format_id = -4$ disk_format$ = 'Quad Density' & if boot_format_id = -70 print 'System ID : '; & boot_id0 print 'Format : '; & disk_format$0 print 'VAX record size : '; & num1$(record_size%)0 print 'Bytes per sector : '; & num1$(boot_bytes_per_sector)0 print 'Sectors per cluster : '; &! num1$(boot_sectors_per_cluster)0 print 'Number of reserved sectors : '; & num1$(boot_reserved_sectors)0 print 'Number of FAT copies : '; & num1$(boot_fat_copies)0 print 'Number of directory entries : '; &$ num1$(boot_root_directory_entries)0 print 'Total number of sectors : '; & num1$(boot_total_sectors)0 print 'Sectors per FAT : '; & num1$(boot_sectors_per_fat)0 print 'Sectors per track : '; & num1$(boot_sectors_per_track)0 print 'Number of sides : '; & num1$(boot_total_sides)0 print 'Number special reserved sectors : '; && num1$(boot_special_reserved_secotrs) 11399 returnG11400 !***************************************************************& ! &/ ! Here to read the FAT and compute the next & ! file cluster & ! &B !***************************************************************&11410 eof_flag% = 0%- fat_byte% = ((this_cluster% * 3%) / 2%) + 1%8 fat_sector% = (fat_byte% / sector_size%) + fat_pointer%! fat_offset% = fat_byte% - &0 ((fat_sector% - fat_pointer%) * sector_size%) sector_num% = fat_sector% gosub 11000/ c1% = ascii(right(sector_buffer$,fat_offset%))4 c2% = ascii(right(sector_buffer$,fat_offset% + 1%)) c1% = c1% and 255% c2% = c2% and 255% c3% = c1% + (c2% * 256%) if (this_cluster% and 1%) then' this_cluster% = (c3% / 16%) and 4095% else this_cluster% = c3% and 4095%-11420 eof_flag% = -1 if this_cluster% > 4087% gosub 11500 unless eof_flag% 11499 returnG11500 !***************************************************************& ! &5 ! Here to compute the first sector of this_sector% & ! &B !***************************************************************&G11510 this_sector% = ((this_cluster% -2%) * boot_sectors_per_cluster) & + first_data_sector% 11599 returnG11600 !***************************************************************& ! &4 ! This procedure reads the entire directory tree &1 ! and fills in the directory_stack arrays & ! &B !***************************************************************& directory_level% = 0% current_directory% = 0% search_directory% = 0% current_dir_stack_pointer% = 0% insert_dir_stack_pointer% = 0% max_dir_stack_pointer% = 0% volume_label$ = ''$ dir_stack_name$(0%) = ' ' dir_stack_level%(0%) = 0% dir_stack_parent%(0%) = -1%" dir_stack_start_cluster%(0%) = 0% dir_rec_num% = 0% end_of_directory% = 0%11605 gosub 11100 goto 11615 if end_of_directory% if (dir_attribute and 8%) then** volume_label$ = dir_filename$ + dir_ext$ goto 11605 -11610 goto 11605 unless dir_attribute and 16%5 max_dir_stack_pointer% = max_dir_stack_pointer% + 1%& if max_dir_stack_pointer% > 999% then printe0 print '*** Too many subdirectories...Aborting' printn goto 32700 end if; insert_dir_stack_pointer% = insert_dir_stack_pointer% + 1%eC dir_stack_name$(max_dir_stack_pointer%) = dir_filename$ + dir_ext$. dir_stack_level%(max_dir_stack_pointer%) = 00KKK H6%! !1%E dir_stack_start_cluster%(max_dir_stack_pointer%) = dir_first_clusteru/ dir_stack_parent%(max_dir_stack_pointer%) = 0%e goto 11605 G11615 goto 11699 if max_dir_stack_pointer% = current_dir_stack_pointer% = current_dir_stack_pointer% = current_dir_stack_pointer% + 1%7 insert_dir_stack_pointer% = current_dir_stack_pointer% E this_cluster% = dir_stack_start_cluster%(current_dir_stack_pointer%)h first_call% = -1%11620 gosub 11700e goto 11615 if end_of_directory%( goto 11620 unless dir_attribute and 16%5 max_dir_stack_pointer% = max_dir_stack_pointer% + 1% & if max_dir_stack_pointer% > 999% then printl0 print '*** Too many subdirectories...Aborting' print goto 32700 end if; insert_dir_stack_pointer% = insert_dir_stack_pointer% + 1%A goto 11630 if insert_dir_stack_pointer% = max_dir_stack_pointer%rF for x% = max_dir_stack_pointer% to insert_dir_stack_pointer% step -1%/ dir_stack_name$(x%) = dir_stack_name$(x% - 1%) 1 dir_stack_level%(x%) = dir_stack_level%(x% - 1%)p3 dir_stack_parent%(x%) = dir_stack_parent%(x% - 1%)rA dir_stack_start_cluster%(x%) = dir_stack_start_cluster%(x% - 1%)* next x%E11630 dir_stack_name$(insert_dir_stack_pointer%) = dir_filename$ + &r dir_ext$E2 dir_stack_level%(insert_dir_stack_pointer%) = &4 dir_stack_level%(current_dir_stack_pointer%) + 1%3 dir_stack_parent%(insert_dir_stack_pointer%) = &c current_dir_stack_pointer%r9 dir_stack_start_cluster%(insert_dir_stack_pointer%) = &u dir_first_cluster goto 11620u 11699 returnG11700 !***************************************************************&t ! & 8 ! procedure to get the next entry from a subdirectory &- ! caller set first_call and this_cluster & ! &cB !***************************************************************&#11710 goto 11720 unless first_call%i first_call% = 0% end_of_directory% = 0%o sub_dir_offset% = 1%f gosub 11500%& sub_dir_this_cluster% = this_cluster% sector_num% = this_sector% gosub 11000" sub_dir_sector_num% = sector_num%& lset sub_dir_buffer$ = sector_buffer$ sub_dir_sectors_read% = 1%2-11720 sub_dir_offset% = sub_dir_offset% + 32%4 goto 11740 if sub_dir_offset% + 31% <= sector_size%. if sub_dir_sectors_read% = cluster_size% then' this_cluster% = sub_dir_this_cluster%i gosub 11400  if eof_flag% thene end_of_directory% = -1% goto 11799e else gosub 11500( sub_dir_this_cluster% = this_cluster%* sub_dir_sector_num% = this_sector% - 1% sub_dir_sectors_read% = 0%)411730 sub_dir_sector_num% = sub_dir_sector_num% + 1%3 sub_dir_sectors_read% = sub_dir_sectors_read% + 1% " sector_num% = sub_dir_sector_num% gosub 11000& lset sub_dir_buffer$ = sector_buffer$ sub_dir_offset% = 1% B11740 lset dir_entry$ = mid(sub_dir_buffer$, sub_dir_offset%, 32%) x% = ascii( dir_filename$ ) goto 11720 if x% = 229% goto 11720 if x% = 0%4 goto 11720 if edit$(dir_filename$,191%) = '' and & edit$(dir_ext$,191%) = ''0/ goto 11720 if edit$(dir_filename$,191%) = '..'d 11799 returnG11800 !***************************************************************&0 ! &n$ ! here to parse a DOS filespec & ! &gB !***************************************************************&% a$ = edit$(entered_file_spec$, 191%)< wild_card_entered% = 0%5 wild_card_entered% = -1% if instr(1%, a$, '?') or &t instr(1%, a$, '%') or &  instr(1%, a$, '*') or &r instr(1%, a$, '...')D file_spec_error% = 0%8 sub_dir_pointer% = dir_stack_level%(current_directory%)# match_at_least% = sub_dir_pointer%  p% = sub_dir_pointer% d% = current_directory%11805 goto 11810 unless p%) sub_directory$(p%) = dir_stack_name$(d%)  d% = dir_stack_parent%(d%) p% = p% - 1% goto 11805 11810 s% = instr(1%, a$, '[')l e% = instr(1%, a$, ']') f$ = right(a$, e% + 1%) f$ = '*.*' if f$ = ''" goto 11850 if s% = 0% and e% = 0%' if s% = 0% or e% = 0% or s% <> 1% thent file_spec_error% = -1% goto 11899 elseu d$ = left( a$, e% - 1%)( match_at_lea00KKJH+%O-%TADATADATAst% = 0%$ sub_dir_pointer% = 0% unless &1 mid(d$, 2%, 1%) = '.' or mid(d$, 2%, 1%) = '-'n11815 d$ = right(d$, 2%) goto 11850 if len( d$) = 0% next_char$ = left(d$, 1%) if next_char$ = '-' thene* sub_dir_pointer% = sub_dir_pointer% - 1%$ match_at_least% = sub_dir_pointer% if sub_dir_pointer% < 0% thenp file_spec_error% = -1% goto 11899p end ife goto 11815 end if if next_char$ <> '.' then x% = instr(1%, d$, '.') * sub_dir_pointer% = sub_dir_pointer% + 1% if sub_dir_pointer% > 9% thenn file_spec_error% = -1%% goto 11899i end if $ match_at_least% = sub_dir_pointer% if x% = 0% thent+ sub_directories$( sub_dir_pointer%) = d$e goto 11850e end ife9 sub_directories$( sub_dir_pointer%) = left(d$, x% - 1%)o d$ = right( d$, x% - 1%) goto 11815 end if if left(d$, 3%) <> '...' then if left(d$, 2%) = '..' then  file_spec_error% = -1%e goto 11899 end ifd goto 11815 end if0 sub_directories$( sub_dir_pointer%) = '...' & for sub_dir_pointer% = & sub_dir_pointer% + 1% to 10%11850 for x% = 0% to 10%> sub_directory_case%(x%) = fn_wild_case%(sub_directories$(x%))& if sub_directory_case%(x%) = -1% then file_spec_error% = -1% goto 11899 11860 next x%a goto 11899 if f$ = '' x% = instr( 1%, f$, '.')4 entered_filename$ = left( f$, x% - 1%) if (x% > 1%)$ entered_filename$ = f$ if (x% = 0%)/ file_case% = fn_wild_case% (entered_filename$)( entered_ext$ = right( f$, x% + 1%) &" if (x% < len( f$)) and (x% > 0%)) ext_case% = fn_wild_case% (entered_ext$) = file_spec_error% = -1% if file_case% = -1 or ext_case% = -1% 11899 returnG12000 !***************************************************************&0 ! &_- ! Here to display the contents of a file &t' ! directory entry is in the buffer &t ! &gB !***************************************************************& 12010 printe@ a$ = '* ' + edit$(volume_label$,189%) unless volume_label$ = '') a$ = '* Unlabeled' if volume_label$ = ''_8 a$ = a$ + ':' + fn_dir_string$( search_directory%) + &' edit$(dir_filename$,191%) + '.' + &  edit$(dir_ext$,191%) + ' *'o# b$ = string$( len(a$), ascii('*'))%& c$ = '*' + space$(len(a$) - 2%) + '*' d$ = space$((80%-len(a$))/2%) print d$;b$ print d$;c$ print d$;a$ print d$;c$ print d$;b$ print" this_cluster% = dir_first_cluster bytes_left% = dir_filesizeo! goto 12099 if this_cluster% = 0%r12020 gosub 11500 sector_num% = this_sector% ) sectors_left% = boot_sectors_per_clustere12030 gosub 11000m+ x% = instr( 1%, sector_buffer$, chr$(26%))s if x% thent bytes_left% = 0% x% = x% - 1% elset x% = sector_size%a& x% = bytes_left% if x% > bytes_left%;12040 sector_buffer$ = xlate( sector_buffer$, xlate_table$)o! print left( sector_buffer$, x%);3 bytes_left% = bytes_left% - x%$ goto 12099 if bytes_left% <= 0%# sectors_left% = sectors_left% - 1%n sector_num% = sector_num% + 1%= goto 12030 if sectors_left% gosub 11400 goto 12099 if eof_flag% goto 12020 12099 returnG12100 !***************************************************************& ! &;: ! Here to extract a file...Directory entry is in buffer & ! &eB !***************************************************************&?12110 original_filename$ = edit$(dir_filename$,191%) + '.' + &' edit$(dir_ext$,191%)$ this_filename$ = original_filename$ filename_changed% = 0% *12120 x% = instr( 1%, this_filename$, '-') if x% thene5 this_filename$ = left( this_filename$, x% - 1%) + &a '_' + & $ right( this_filename$, x% + 1%) filename_changed% = -1%i goto 12120*12130 x% = instr( 1%, this_filename$, "'") if x% thenr5 this_filename$ = left( this_filename$, x% - 1%) + &s$ right( this_filename$, x% + 1%) filename_changed% = -1% goto 12130-12140 print 'Extracting ';original_filename$;f6 print ' and changing filename to ';this_filename$; & if filename_changed% print0 open this_filename$ for output 00LKK H6%! !as file #3%, & sequential variable, & recordtype none, & map sector_buffer 12150 bytes_left% = dir_filesize" this_cluster% = dir_first_cluster if this_cluster% = 0% thenn close #3%e goto 1219912160 gosub 11500i sector_num% = this_sector%) sectors_left% = boot_sectors_per_clustert12170 gosub 11000n put_count% = sector_size%7 put_count% = bytes_left% if bytes_left% < sector_size%o put #3%, count put_count%' bytes_left% = bytes_left% - put_count% goto 12199 if bytes_left% <= 0%# sectors_left% = sectors_left% - 1%t sector_num% = sector_num% + 1%s goto 12170 if sectors_left% gosub 11400 goto 12199 if eof_flag% goto 12160_12199 close #3% return$G15000 !***************************************************************& ! &5 ! Function to compare a name with a mask (possibly &s% ! containing wild cards) &r ! &%B !***************************************************************&.15010 def fn_name_match% ( cas%, mask$, name$)15020 result% = -1%0 if cas% = 0% then for x% = 1% to len( mask$)0 result% = 0% if (ascii(right(mask$,x%)) <> &" ascii(right(name$,x%))) and &, (ascii(right(mask$,x%)) <> ascii('%')) &1 and (ascii(right(mask$,x%)) <> ascii('?'))* next x%*- result% = 0% unless len(mask$) = len(name$) goto 1509015030 if cas% = 1% then ! for x% = 1% to len( mask$) - 1%*0 result% = 0% if (ascii(right(mask$,x%)) <> &" ascii(right(name$,x%))) and &, (ascii(right(mask$,x%)) <> ascii('%')) &1 and (ascii(right(mask$,x%)) <> ascii('?')) next x%e goto 1509015040 if cas% = 2% thens for x% = 2% to len( mask$)0 result% = 0% if (ascii(right(mask$,x%)) <> & ascii(right(name$, && x% + len(name$) - len(mask$)))) &3 and (ascii(right(mask$,x%)) <> ascii('%')) &c1 and (ascii(right(mask$,x%)) <> ascii('?'))e next x%f goto 1509015050 if cas% = 3% then  y% = instr( 1%, mask$, '*')m for x% = 1% to y%-1%0 result% = 0% if (ascii(right(mask$,x%)) <> &" ascii(right(name$,x%))) and &, (ascii(right(mask$,x%)) <> ascii('%')) &1 and (ascii(right(mask$,x%)) <> ascii('?'))u next x% ! for x% = y% + 1% to len( mask$)*0 result% = 0% if (ascii(right(mask$,x%)) <> & ascii(right(name$, &% x% + len(name$) -len(mask$)))) &*3 and (ascii(right(mask$,x%)) <> ascii('%')) &&1 and (ascii(right(mask$,x%)) <> ascii('?'))_ next x%m goto 1509015060 if cas% = 4% theno- for y% = 1% to len(name$) - len(mask$) + 3%  result% = -1%1 for x% = 2% to len(mask$) - 1%0 result% = 0% if (ascii(right(mask$,x%)) <> &+ ascii(right(name$,x% + y% - 2%))) and &t, (ascii(right(mask$,x%)) <> ascii('%')) &1 and (ascii(right(mask$,x%)) <> ascii('?'))f next x%f goto 15090 if result% next y% 415070 result% = 0% unless (cas% = 5%) or (cas% = 6%)15090 fn_name_match% = result% 15099 fnendiG15100 !***************************************************************&t ! &1: ! Function to compute the case of a wild card construct & ! &* ! Case Syntax & ! ---- ------------------- & ! -1 Illegal syntax & ! 0 Text & ! 1 Text* &* ! 2 *Text & ! 3 Text*Text &_ ! 4 *Text* &o ! 5 * &# ! 6 ... &o ! &oB !***************************************************************&$15101 def fn_wild_case% (case_data$))15110 case_data$ = edit$(case_data$,191%)  this_case% = -1%r if case_data$ = '*' theno this_case% = 5%e goto 15190 15115 if case_data$ = '...' then this_case% = 6%o goto 1519015120 x1% = len( case_data$)" x2% = instr( 1%, case_data$, '*') if x2% = 0% thens this_case% = 0% goto 1519015130 if x1% = x2% thene this_case% = 1%o goto 1519015140 if x1% > x2% then%) x3% = instr( x2% + 1%, case_data$, '*')* if x3% = 0% then this_case% = 2% if x2% = 1% this_case% = 3%00LLJH+%O-%TADATADATA if x2% <> 1%  else, goto 15190 if (x2% <> 1%) or (x1% <> x3%)% this_case% = 4% if x3% - x2% <> 1%* * 15190 fn_wild_case% = this_case% 15199 fnendoG15200 !***************************************************************&r ! &&1 ! Here to build a string showing current path & ! &rB !***************************************************************&-15210 def fn_dir_string$ (dir_stack_pointer%) 15220 x% = dir_stack_pointer%  result$ = ']'15230 goto 15240 unless x%; result$ = '.' + edit$(dir_stack_name$(x%) ,191%) + result$  x% = dir_stack_parent%(x%) goto 15230 (15240 result$ = '[' + right(result$, 2%). result$ = '[Root-Directory]' if result$ = '['15290 fn_dir_string$ = result$ fnendG15300 !***************************************************************& ! &o. ! function to determine if a path matches & ! & B !***************************************************************&,15310 def fn_directory_match% (dir_pointer%) result% = -1% n% = dir_pointer%: if match_at_least% > dir_stack_level%(dir_pointer%) or &8 sub_dir_pointer% < dir_stack_level%(dir_pointer%) then result% = 0% goto 15399/15320 goto 15399 if (n% = 0%) or (result% = 0%)o* result% = 0% unless fn_name_match% ( &/ sub_directory_case%(dir_stack_level%(n%)), &r7 edit$(sub_directories$(dir_stack_level%(n%)),191%),&# edit$(dir_stack_name$(n%),191%))i n% = dir_stack_parent%(n%) goto 15320&#15399 fn_directory_match% = result%u fnendG19000 !***************************************************************&9 ! &1 ! Here on all errors &* ! &*B !***************************************************************&'19010 if err = 11% and erl = 11010 then  eof_flag% = -1%! resume 11099119020 if (err=2% or err=162%) and erl= 12140 then1 printl( print "Can't open file...Bad filename" print+ resume 12199"19030 if err=11% and erl=1110 then resume 3270019040 if erl = 1200 then printt+ print "Can't open input file...Try again"c print= resume 1110g"19050 if err=11% and erl=2020 then resume 32700#19080 if err=11% and erl= 3400 thenr resume 2020 H19998 print 'Error # ';num1$(err);' at line # ';num1$(erl);'...Aborting'19999 on error goto 01"32700 close #i% for i% = 1% to 10% 32767 end'From: X::LJB 26-SEP-1986 12:40To: ARISIA::EVERHART&Subj: Secure Network Copy command fileTo: Glenn Everhart9From: Larry Bayuk, RCA-MSRD, Design Automation (224-3567)AI logged in to ARISIA::RCAUSER today and saw the instructions forAcopying files. I have a command file we use to 'push' files intoDa secure node; it asks for the password and user name and plugs them:into command lines to form a Decnet access control string.4The command file follows in case you want to try it.-LJB<$! NETCOM - Execute net command with explicit access control:$! This command file lets you use an account across the3$! network without making your password visible.$! (4/85 ljb, rca-msr DA)$!D$ inquire user "Remote User Name" ! Get User name$ set term/noechoD$! Don't use INQuire- It stores the response in Recall.... (at VMS4)L$ read/prompt="Remote Password : " sys$command pass ! Get password w/o echo$ set term/echo$ write sys$output ""I$ user = """" + user + " " + pass + """" ! Build acces string $ pass = ""$!8$ write sys$output "Enter commands; Z to exit" $ set noonI$ open/read f sys$command ! Enter command loop$ loop:D$ read/end=end_loop/prompt="netcom $ " f comm ! Get a command$ len = f$length (comm)C$ if len .eq. 0 then goto loop ! Blank line ?I$ n1 = f$locate ("::", comm) ! Look for node nameI$ if n1 .ge. len then got00LLK H6%! !o do_command ! No node name found<$! Build new command with acces control stringG$ comm = f$extract (0, n1, comm) + user + f$extract (n1, 999, comm)$ do_command:E$ comm ! Do the command $ goto loop$! $ end_loop: $ close f$ exit;CONVERT_TO_SIXEL0121-May-1986 13:0421-May-1986 13:04VAX FORTRAN V4.4-177CONVERT_TO_SIXEL!P DISPLAY$DEVICETT:Error translating or defining DISPLAY$DEVICEDISPLAYDEVICEError - DISPLAY$DEVICE is unknownError getting device informationERROR- DISPLAY$DEVICE is not a terminal.Error assigning channel to DISPLAY$DEVICEDISPLAY$DEVICE must be set to support ReGISREGIS_FILESIXEL_FILEGRAPH_TYPELOCALRESETConversion completedERROR READING SIXELERROR OPENING REGIS FILEERROR READING LUN 7ERROR READING REGIS DATAERROR OPENING SIXEL FILE$)+)+ ++ ++CONVERT_TO_SIXELTRANSFER$ADDRESStP       " ( .  6 @MLK4 LIB$SYS_TRNLOG@T,4 LIB$SET_LOGICAL@X LIB$SET_LOGICAL@, GXG LIB$GETDVI@l!U v(4 SYS$ASSIGN@J)J45L\`+  CLI$GET_VALUE@N  CLI$PRESENT@ CLI$GET_VALUE@$P (<( CLI$PRESENT@<( CLI$GET_VALUE@ R \4 FOR$OPEN@ \\\33 CLI$PRESENT@ J45Ldh9h9 CLI$PRESENT@?Sf~QdP1pQ\Q[?2i[?0i[?43h[?47h[?43lQ S(H(P[50,0]))PREADY YACHTS.DTR>PLOT X_Y LOA,PRICE OF YACHTS ON YACHTS.SLODTR>EXITKThe YACHTS.SLO file is a ReGIS file. While DECSlide will do the conversion,it's expensive.FSIXEL can run interactively, using output logical DISPLAY$DEVICE which<defaults to TT:. It must be able to allocate DISPLAY$DEVICE.[File SIXEL.CLD] DEFINE VERB SIXEL2 IMAGE "APPLICATIONS$DISK:CONVERT_TO_SIXEL" PARAMETER P1" LABEL = REGIS_FILE. VALUE (TYPE = $FILE, REQUIRED)+ PROMPT = "ReGIS Input File" PARAMETER P2" LABEL = SIXEL_FILE- VALUE (DEFAULT = "SIXEL.SLS") QUALIFIER LOCAL 00&LLK H6%! ! NONNEGATABLE" PLACEMENT = GLOBAL QUALIFIER RESET NONNEGATABLE" PLACEMENT = GLOBAL QUALIFIER GRAPH_TYPE+ VALUE (TYPE=GRAPH_KEYWORDS) NONNEGATABLE" PLACEMENT = GLOBAL% DISALLOW SIXEL_FILE AND LOCAL" DEFINE TYPE GRAPH_KEYWORDS" KEYWORD COMPRESSED KEYWORD EXPANDED KEYWORD ROTATED[END OF SIXEL.CLD]B To use to create a SIXEL file from a ReGIS file you'd givea command like$SIXEL YACHTS.SLO YACHTS.SLS)which uses the default VT240 ReGIS setup.'To make a rotated graph use the command/$SIXEL/GRAPH_TYPE=ROTATED YACHTS.SLO YACHTS.SLS,GRAPH_TYPE=EXPANDED or GRAPH_TYPE=COMPRESSEDAcan be used by instructing the VT240 to do expanded or compressedgraphs.#The following is an example of use:$! Make sixel file for print...$!1st, create the ReGIS file.$DTR Ready YACHTS2 Plot X_Y LOA,price of YACHTS on YACHTS.SLO Exit$!:$ DEFINE DISPLAY$DEVICE _TTA6: ! TTA6: IS A VT240.$ SIXEL/GRAPH=EXPANDED YACHTS.SLO MY_GRAPH.SIX$ PRINT MY_GRAPH.SIXDNote that a real VT240 is needed since the ReGIS to SIXEL conversionis done in hardware on that. Note that the command$SET HOST 0/log=logfileCcould be used to capture characters sent to a VT240 in logfile if a>ReGIS plot package that has no file output provisions is used.[file SIXEL.FOR] PROGRAM CONVERT_TO_SIXELC VERSION 1.0CC Functional description:CGC This program will convert a ReGIS graphics file (such as one producedGC by DTR) and produce a SIXEL graphics file suitable for printing on anCC appropriate printer (LA50, LA100, LN03, etc.). It was written byFC Donald E. Stern mainly to get around the need for DECSlide to createRc Sixel files because DECslide isn't cheap, and DECSlide can't be used from batch.cAc Since the sixel conversion is a hardware function of a graphicsEc terminal, the program requires use of a ReGIS terminal. This deviceGc is defined by the logical DISPLAY$DEVICE. For an interactive terminal!c one must make a definition likec DEFINE DISPLAY$DEVICE TT:CEc If there is no translation for DISPLAY$DEVICE, this definition willCc be assumed. In addition the device should be set to REGIS and the)c program will abort if this is not done.cCc The specified ReGis file is opened and sent to display$device andBc then the required sequences which set graphics to host are sent,Cc followed by commands to enter REGIS and initiate hardcopy output.cFc The appropriate terminal characteristics are set and successive QIOsCc are issued to read the SIXEL data which returns a byte at a time.;c The end is signalled by receipt of the byte after the 3rdCc character is detected. The sixel data is collected in a 255?c character buffer which is written to disk when full. Thus theBc sixel file can be edited with a standard text editor if desired.c<c Input comes from the commandline interpreter, specificallyDc cli$get_value and cli$present. The SIXEL.CLD file [above] contains8c the necessary information to define the SIXEL command.cGc Switches /graph_type, /reset, and /local are optional. If /graph_typeKc is EXPANDED the sixel output is about 12 by 8 inches, ROTATED gives aboutIc 8 x 12 inches, and rotated 90 degrees (fits on normal 8.5 by 11 paper)..c COMPRESSED gives a plot about 6 by 3 inches.cDc If /local is set, sixel output goes to a printer attached directly7c to display$device and no sixel-file-sopec is allowed.cGc If /reset is specified, display$device will be set to COMPRESSED modeCc before exiting; otherwise it's left in the mode set by GRAPH_TYPE c options.c!c Created 1986 Warner-Lambert Co.c Consumer Health Products Grp.c Milford, Conn. 06460c%c Author: Donald E. Stern, Jr. 2/4/86c*c Execution environment: VMS V4.2 or latercc Functions calledc@c GET_TERMINAL_CHA00.L$LJH+%O-%TADATADATARACTERISTICS - Internally developed routine toc get terminal characs.c@c SET_TERMINAL_CHARACTERISTICS - Internally developed routine toc set terminal characs.c SYS$QIOW - SYNCH. QIO)C SYS$ASSIGN - Assign chnl # to device$c cli$present - RTL CLI arg detect%c cli$get_value - RTL CLI arg fetch,c lib$sys_trnlog - translate logical name(c li$set_logical - create logical name c lib$getdvi - get device infocc sys$qio structures# INTEGER*2 INPUT_CHAN ! I/O CHANNEL INTEGER CODE, ! TYPE OF I/O OP3 1 INPUT_BUFFER_SIZE, ! INPUT BUF SIZE, BYTES+ 2 INPUT_SIZE ! SIZE OF INPUT AS READ PARAMETER (INPUT_BUFFER_SIZE=1)CC TERM CHARAC BUFFER BYTE CLASS, 1 TYPE INTEGER*2 WIDTH INTEGER*4 BASIC,EXTENDED4 INTEGER*4 OLD_BASIC,OLD_EXTENDED ! OLD TERM CHARACSC C I/O OP DEFSC INCLUDE '($IODEF)'CC TERM I/O OP MODIFIERSC INCLUDE '($TTDEF)' INCLUDE '($TT2DEF)'CC SYS SERVICE DEFSC INCLUDE '($SSDEF)'CC DEVICE INFO DEFSCC INCLUDE '($DVIDEF)' INCLUDE '($DCDEF)'CC QIO STAT BLK STRUCTURE /IOSTAT_BLOCK/# INTEGER*2 IOSTAT, ! RETURN STATUS8 1 TERM_OFFSET, ! LOCATION OF LINE TERMINATOR0 2 TERMINATOR, ! VALUE OF TERMINATOR/ 3 TERM_SIZE ! SIZE OF TERMINATOR END STRUCTURE RECORD /IOSTAT_BLOCK/ IOSBC C SUBPROGRAMSC- INTEGER*4 SYS$ASSIGN, SYS$QIOW, CLI$PRESENT,5 1 CLI$GET_VALUE,LIB$SYS_TRNLOG,LIB$SET_LOGICAL, 2 LIB$GETDVI# INTEGER*4 STATUS ! RETURN STATUS3 INTEGER*4 DEVICE_CLASS ! CLASS RETURNED BY GETDVIC2 BYTE ENTER_REGIS(4) ! ESC SEQ TO ENTER REGIS MODE! BYTE EXIT_REGIS(2) ! EXIT REGIS& BYTE LOCK_KEYBOARD(4) ! LOCK KEYBOARD BYTE UNLOCK_KEYBOARD(4) BYTE GRAPHICS_TO_HOST(5) BYTE GRAPHICS_TO_PRINTER(5) BYTE EXPANDED_PRINT(6) BYTE ROTATED_PRINT(6) BYTE COMPRESSED_PRINT(6)( INTEGER*2 NR, ! # CHARS IN REGIS_FILE/ 1 NS, ! # CHARS IN SIXEL-FILE. 2 NG, ! # CHARS IN QUALIFIER0 3 NT ! # CHARS IN TRANSLATION/ CHARACTER*2 EXIT_GRAPHICS ! SAME AS EXIT_REGIS- CHARACTER*10 GRAPH_TYPE ! CMD LINE QUALIFIERC CHARACTER*13 MAKE_HARDCOPY ! REGIS INST TO MAKE GRAPHICS HARDCOPY CHARACTER*255 REGIS_FILE CHARACTER*255 SIXEL_FILE1 CHARACTER*255 TRANSLATION ! LOG NAME TRANSLATION4 CHARACTER*256 BUFF ! BUFFER FOR REGIS & SIXEL FILESC LOGICAL QUIT* EQUIVALENCE (EXIT_REGIS(1),EXIT_GRAPHICS)' DATA ENTER_REGIS /27,80,49,112/ ! $Plp data exit_regis /27,92/ ! $\) data lock_keyboard /27,91,50,104/ ! $[2h+ data unlock_keyboard /27,91,50,108/ ! $[2l0 data graphics_to_host /27,91,63,50,105/ ! $[?2i3 data graphics_to_printer /27,91,63,48,105/ ! $[?0i2 data expanded_print /27,91,63,52,51,104/ ! $[?43h1 data rotated_print /27,91,63,52,55,104/ ! $[?47h3 data compressed_print /27,91,63,52,51,108/ ! $[43l% data make_hardcopy /'S(H(P[50,0]))'/CBC SEE IF THERE'S A TRANSLATION OF DISPLAY$DEVICE AND IF NOT ASSIGN C TT: TO IT.: STATUS=LIB$SYS_TRNLOG('DISPLAY$DEVICE',NT,TRANSLATION,,,) IF (STATUS .EQ. SS$_NOTRAN); 1 STATUS= LIB$SET_LOGICAL('DISPLAY$DEVICE','TT:',,,) IF (.NOT. STATUS); 1 STOP 'Error translating or defining DISPLAY$DEVICE'C$C ENSURE DISPLAYDEVICE IS A TERMINAL CODE=DVI$_DEVCLASS9 STATUS=LIB$GETDVI(CODE,,'DISPLAY$DEVICE',DEVICE_CLASS,,) IF (STATUS.EQ.SS$_NOSUCHDEV)0 1 STOP 'Error - DISPLAY$DEVICE is unknown'8 If (.not.status)STOP 'Error getting device information' IF (DEVICE_CLASS.NE.DC$_TERM)7 1 STOP 'ERROR- DISPLAY$DEVICE is not a terminal.'"C ASSIGN CHANNEL TO DISPLAY$DEVICEC GET #1 STATUS=SYS$ASSIGN('DISPLAY$DEVICE',INPUT_CHAN,,)C STOP ON ERRORS IF (.NOT.STATUS) 8 1 STOP 'Error assigning channel to DISPLAY$DEVICE'C'C GET AND SAVE TERMINAL CHARACTERISTICS4 CALL GET_TERMINAL_CHARACTERISTICS(INPUT_CHAN,CLASS,! 1 TYPE,WIDTH,BASIC,EXTENDED) OLD_BASIC=BASIC OLD_EXTENDED=EXTENDEDC CHECK REGIS TERM$ IF((EXTENDED.AND.TT2$M_REGIS).EQ.0): 1 STOP 'DISP006LLK H6%! !LAY$DEVICE must be set to support ReGIS'CC USE CLI TO GET INPUTS1 STATUS=CLI$GET_VALUE('REGIS_FILE',REGIS_FILE,NR). IF(.NOT.STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) IF(CLI$PRESENT('SIXEL_FILE'))8 1 STATUS=CLI$GET_VALUE('SIXEL_FILE',SIXEL_FILE,NS). IF(.NOT.STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) IF(CLI$PRESENT('GRAPH_TYPE'))8 1 STATUS=CLI$GET_VALUE('GRAPH_TYPE',GRAPH_TYPE,NG). IF(.NOT.STATUS) CALL LIB$SIGNAL(%VAL(STATUS))C OPEN INPUT FILE# OPEN(UNIT=1,NAME=REGIS_FILE(1:NR),) 1 ACCESS='SEQUENTIAL',STATUS='OLD',8 2 READONLY,FORM='FORMATTED',RECORDTYPE='VARIABLE',( 3 CARRIAGECONTROL='LIST',ERR=1100)3C ASSOC LUN 7 WITH DISPLAY$DEVICE FOR LARGE RECORDS- OPEN(UNIT=7,NAME='DISPLAY$DEVICE',RECL=1024, 1 STATUS='OLD',ERR=1200)CC LOCK KEYBOARD WRITE(7,18)LOCK_KEYBOARD18 FORMAT('$',4A1)C&C READ REGIS CODE AND DISPPAY TO LUN 7C+20 READ(1,25,END=100,ERR=1300)NC,BUFF(1:NC)25 FORMAT(Q,A) WRITE(7,27)BUFF(1:NC)27 FORMAT('+',A) GOTO 20C LOOPS TILL EOF100 CLOSE(UNIT=1)C C OPEN NEW FILE FOR SIXEL OUTPUT# OPEN(UNIT=1,NAME=SIXEL_FILE(1:NS),) 1 ACCESS='SEQUENTIAL',STATUS='NEW',1 2 FORM='UNFORMATTED',RECORDTYPE='VARIABLE',( 3 CARRIAGECONTROL='LIST',ERR=1400)C'C SET REQUIRED TERMINAL CHARACTERISTICSC BASIC=BASIC.OR.> 1 TT$M_HOSTSYNC .OR. TT$M_NOBRDCST .OR. TT$M_NOECHO .OR. 2 TT$M_TTSYNC BASIC=IBCLR(BASIC,TT$V_WRAP)3 BASIC=IBCLR(BASIC,TT$V_EIGHTBIT) ! USE 7 BIT CODES2 EXTENDED=EXTENDED.OR.TT2$M_PASTHRU .OR. TT2$M_XON4 CALL SET_TERMINAL_CHARACTERISTICS(INPUT_CHAN,CLASS," 1 TYPE,WIDTH,BASIC,EXTENDED)C#C SET UP TERMINAL TO PRINT GRAPHICSC* IF(GRAPH_TYPE(1:NG) .EQ. 'EXPANDED') THEN WRITE(7,102)EXPANDED_PRINT MAKE_HARDCOPY(7:7)='0' ENDIF) IF(GRAPH_TYPE(1:NG) .EQ. 'ROTATED') THEN WRITE(7,102)ROTATED_PRINT MAKE_HARDCOPY(7:7)='0' ENDIF IF(GRAPH_TYPE(1:NG).EQ.2 1 'COMPRESSED') WRITE(7,102)COMPRESSED_PRINT!101 FORMAT('+',2A1,5A1,4A1,A13,$)102 FORMAT('+',6A1,$)103 FORMAT('+',2A1,4A1,A13,$)104 FORMAT('+',2A1,4A1,$)9 IF(CLI$PRESENT('LOCAL'))THEN ! HARDCOPY TO LOCAL PRINTER2 WRITE(7,103)EXIT_REGIS,ENTER_REGIS,MAKE_HARDCOPY( WRITE(7,104)EXIT_REGIS,UNLOCK_KEYBOARD ELSE* WRITE(7,101)EXIT_REGIS,GRAPHICS_TO_HOST,! 1 ENTER_REGIS,MAKE_HARDCOPY N = 1 ! POSITION IN BUFF NESC = 0 ! COUNTER OF ESCS QUIT = .FALSE./ CODE = IO$_READVBLK ! I/O CODE = READ VIRTUAL200 STATUS=SYS$QIOW(,+ 1 %VAL(INPUT_CHAN), ! DISPLAY$DEVICE* 2 %VAL(CODE), ! READ VIRT BLK' 3 IOSB,,, ! I/O STATUS) 4 %REF(BUFF(N:N)), ! INPUT BUFFER4 5 %VAL(INPUT_BUFFER_SIZE),,,,) ! BUFFER SIZE  IF(.NOT.STATUS)GOTO 1000 IF(.NOT.IOSB.IOSTAT) GOTO 1000 IF(QUIT) GOTO 250C CHECK FOR ESC AND COUNT' IF(BUFF(N:N) .EQ. CHAR(27))NESC=NESC+1 IF(NESC.EQ.3) QUIT=.TRUE.%C FLAG QUIT FOR CHAR AFTER 3RD ESCAPECC WRITE BUFFER IF FULL IF(N.EQ.255)THEN WRITE(1)BUFF(1:255) N=0 ENDIF N = N+1! GOTO 200 ! LOOP FOR WHOLE IMAGE250 WRITE(1)BUFF(1:N) CLOSE(UNIT=1)+ WRITE(7,252)EXIT_GRAPHICS,UNLOCK_KEYBOARD, 1 GRAPHICS_TO_PRINTER252 FORMAT('+',A2,4A1,5A1) ENDIFC C RESET TERMINAL CHARACTERISTICS4 CALL SET_TERMINAL_CHARACTERISTICS(INPUT_CHAN,CLASS,* 1 TYPE,WIDTH,OLD_BASIC,OLD_EXTENDED)5 IF(CLI$PRESENT('RESET'))WRITE(7,102)COMPRESSED_PRINT STOP 'Conversion completed'$c The following lines process errors 1000 CONTINUE+ WRITE(7,252)EXIT_GRAPHICS,UNLOCK_KEYBOARD, 1 GRAPHICS_TO_PRINTER4 CALL SET_TERMINAL_CHARACTERISTICS(INPUT_CHAN,CLASS,* 1 TYPE,WIDTH,OLD_BASIC,OLD_EXTENDED) STOP 'ERROR READING SIXEL'$1100 STOP 'ERROR OPENING REGIS FILE'1200 STOP 'ERROR READING LUN 7'$1300 STOP 'ERROR READING REGIS DATA'$1400 STOP 'ERROR OPENING SIXEL FILE' END9 SUBROUTINE GET_TERMINAL_CHARACTERISTICS (CHANNEL,+ 1 CLASS, TYPE, WIDTH, BASIC,EXTENDED)C0C GETS TERMINAL CHARS IN INPUTS BASIC, EXTENDED. INTEGER*2 CHANNEL BYTE CLASS 00>LCLJH+%O-%TADATADATA BYTE TYPE INTEGER*2 WIDTH INTEGER*4 BASIC,EXTENDEDC C I/O OP DEFS INCLUDE '($IODEF)'C QIO STAT BLK STRUCTURE /IOSTAT_BLOCK/ INTEGER*2 IOSTAT7 BYTE TRANSMIT,RECEIVE,CRFILL,LFFILL,PARITY,ZERO END STRUCTURE" RECORD /IOSTAT_BLOCK/ IOSBCC CHARAC. BUFFER# STRUCTURE /CHARACTERISTICS/ BYTE CLASS,TYPE INTEGER*2 WIDTH INTEGER*4 BASIC,EXTENDED END STRUCTURE( RECORD /CHARACTERISTICS/ CHARBUFC INTEGER*4 SYS$QIOW INTEGER*4 STATUSCC GET CHARACS NOW. STATUS=SYS$QIOW(, 1 %VAL(CHANNEL), 2 %VAL(IO$_SENSEMODE), 3 IOSB,,, 4 CHARBUF,& 5 %VAL(12),,,,) ! 12 BYTE BUFFERC4 IF(.NOT.STATUS)CALL LIB$SIGNAL(%VAL(STATUS))? IF(.NOT. IOSB.IOSTAT)CALL LIB$SIGNAL(%VAL(IOSB.IOSTAT))CC RETURN TERM CHARACS TO CALLER CLASS = CHARBUF.CLASS TYPE = CHARBUF.TYPE WIDTH = CHARBUF.WIDTH BASIC = CHARBUF.BASIC# EXTENDED = CHARBUF.EXTENDED RETURN END9 SUBROUTINE SET_TERMINAL_CHARACTERISTICS (CHANNEL,+ 1 CLASS, TYPE, WIDTH, BASIC,EXTENDED)C0C SETS TERMINAL CHARS IN INPUTS BASIC, EXTENDED. INTEGER*2 CHANNEL BYTE CLASS BYTE TYPE INTEGER*2 WIDTH INTEGER*4 BASIC,EXTENDEDC C I/O OP DEFS INCLUDE '($IODEF)'C QIO STAT BLK STRUCTURE /IOSTAT_BLOCK/ INTEGER*2 IOSTAT7 BYTE TRANSMIT,RECEIVE,CRFILL,LFFILL,PARITY,ZERO END STRUCTURE" RECORD /IOSTAT_BLOCK/ IOSBCC CHARAC. BUFFER# STRUCTURE /CHARACTERISTICS/ BYTE CLASS,TYPE INTEGER*2 WIDTH INTEGER*4 BASIC,EXTENDED END STRUCTURE( RECORD /CHARACTERISTICS/ CHARBUFC INTEGER*4 SYS$QIOW INTEGER*4 STATUS1C SET APPROPRIATE CHARACTERISTICS FROM CALLER NOW CHARBUF.CLASS = CLASS CHARBUF.TYPE = TYPE CHARBUF.WIDTH=WIDTH CHARBUF.BASIC= BASIC# CHARBUF.EXTENDED = EXTENDEDCC GET CHARACS NOW. STATUS=SYS$QIOW(, 1 %VAL(CHANNEL), 2 %VAL(IO$_SETMODE), 3 IOSB,,, 4 CHARBUF,& 5 %VAL(12),,,,) ! 12 BYTE BUFFERC4 IF(.NOT.STATUS)CALL LIB$SIGNAL(%VAL(STATUS))? IF(.NOT. IOSB.IOSTAT)CALL LIB$SIGNAL(%VAL(IOSB.IOSTAT))C RETURN END3$! UNMESSAGE, VMS 4.n error message file decompiler$ ws:=write sys$output$$ ws "Creating the necessary files."$ copy:=copy/log$ copy sys$input UNMESSAGE.MAR$ deck .title unmessage1; placed in the public domain, by Joe Meadows Jr. ; US Mail -; 4841 268th ave N.E.; Redmond Wa. 98052;cheers.!.library 'sys$library:lib'$mscdef$midxdef$mrecdef$mfacdef$secdef, .psect _msg_code rd,nowrt,exe& .entry unmessage,^m pushaq dyn_desc pushaq p1? calls #2,g^cli$get_value ; msg file to uncompile calls #0,init_output pushaq dyn_desc< calls #1,g^msg_map_msgfile ; map it into memory jsb error addl #16,map_adr movl map_adr,r210$: movl (r2),r3 beql 20$ addl r3,map_adr calls #0,g^go_ahead addl #4,r2 movl r2,map_adr brb 10$ 20$: ret% .entry go_ahead,^m movl map_adr,r2. cmpw msc$w_sanity(r2),#msc$c_sanity beql 10$ $exit_s code=#0)10$: addl3 r2,msc$l_index_off(r2),r30 cmpb midx$b_sanity(r3),#midx$c_sanity beql 20$ $exit_s code=#0"20$: movzwl midx$w_size(r3),r4 addl r3,r4" addl #midx$c_entries,r330$: pushl r3& calls #1,g^uncompile_message jsb error!40$: addl 00FLLK H6%! ! #midx$c_length,r3 cmpl r3,r4 blss 30$ ret7 .entry uncompile_message,^m movl 4(ap),r06 movl (r0),r2 ; message code9 addl3 map_adr,4(r0),r3 ; message addressL blbc r3,10$ ; if low bit set then this is a subindex ptr decl r30 cmpb midx$b_sanity(r3),#midx$c_sanity beql 2$ $exit_s code=#0"2$: movzwl midx$w_size(r3),r4 addl r3,r4" addl #midx$c_entries,r33$: pushl r3& calls #1,g^uncompile_message jsb error!4$: addl #midx$c_length,r3 cmpl r3,r4 blss 3$ retG10$: extzv #sts$v_fac_no,#sts$s_fac_no,r2,r4 ; facility code5 tstb fac_flg ; is this first time through? beql 20$ cmpw r4,cur_fac bneq 20$ brw 50$20$: movb #1,fac_flg- movl map_adr,r0 ; map address' addl3 r0,msc$l_fac_off(r0),r5: movzwl (r5),r6 ; size of facility section6 addl r5,r6 ; facility end8 addl #2,r5 ; facility start930$: cmpw mfac$w_number(r5),r4 ; right facility? beql 40$% movzbl mfac$b_namelen(r5),r7 addl #3,r5@ addl r7,r5 ; point to next facility cmpl r5,r6 blss 30$< $exit_s code=#0 ; error=no matching facility)40$: bbc #11,mfac$w_number(r5),42$ pushab null brb 44$42$: pushab system)44$: bbs #15,mfac$w_number(r5),46$! tstw mfac$w_number(r5)8 beql 46$ ; bogus check for /share pushab null brb 48$46$: pushab shared.48$: extzv #0,#11,mfac$w_number(r5),-(sp)" pushab mfac$b_namelen(r5) pushab buffer pushab buffer pushab facmsg calls #7,g^sys$fao jsb error pushab buffer calls #1,g^put_output jsb error> movzbl #buffer_size,buffer ; fix up output buffer) movw mfac$w_number(r5),cur_fac movw #1,cur_bas movb #-1,cur_sevB50$: extzv #sts$v_severity,#sts$s_severity,r2,r4 ; severity cmpb r4,cur_sev beql 60$ movb r4,cur_sev movab severities,r0 movzbl (r4)[r0],r45 addl3 r4,r0,-(sp) ; address of severity pushab buffer pushab buffer pushab sevmsg calls #4,g^sys$fao jsb error pushab buffer calls #1,g^put_output jsb error> movzbl #buffer_size,buffer ; fix up output buffer>60$: extzv #sts$v_code,#sts$s_code,r2,r4 ; codeD cmpw cur_bas,r4 ; is this the code we expected next? beql 70$ movw r4,cur_bas pushl r4 pushab buffer pushab buffer pushab basmsg calls #4,g^sys$fao jsb error pushab buffer calls #1,g^put_output jsb error> movzbl #buffer_size,buffer ; fix up output buffer70$: incw cur_bas ; /detail= ; /user_value= ; /language=/ pushab mrec$b_identlen(r3) ; ident3 movzbl mrec$b_faocnt(r3),-(sp) ; fao count& movzbl mrec$b_identlen(r3),r0 addl #10,r07 addl3 r3,r0,-(sp) ; error message4 pushl r2 ; error code pushab buffer pushab buffer pushab errmsg calls #7,g^sys$fao jsb error pushab buffer calls #1,g^put_output# movzbl #buffer_size,buffer jsb error%; movzbl mrec$b_lang(r3),-(sp)(; movzbl mrec$b_userval(r3)00NLCLJH+%O-%TADATADATA,-(sp)&; movzbl mrec$b_level(r3),-(sp)&; movzbl mrec$b_flags(r3),-(sp)%; movzbl mrec$b_type(r3),-(sp); pushab buffer; pushab buffer; pushab tmp; calls #8,g^sys$fao; jsb error; pushab buffer; calls #1,g^put_output#; movzbl #buffer_size,buffer; jsb error ret);tmp: .ascid '!!!_!XB,!XB,!XB,!XB,!XB'error: blbc r0,10$ rsb10$: $exit_s code=r0! .entry msg_map_msgfile,02 ; ret-status = msg_map_msgfile ( msgfile ) movl 4(ap),r0" movb (r0),fab+fab$b_fns# movl 4(r0),fab+fab$l_fna $open fab=fab blbc r0,10$ $crmpsc_s -B inadr=inadr,retadr=map_adr,flags=#,-) chan=fab+fab$l_stv,vbn=#2 10$: ret, .psect _msg_local rd,wrt,noexeDfab: $fab dnm=,fac=get,fop=ufo#inadr: .long ^x200,^x200map_adr: .quad*cur_fac: .word ; current facility/cur_bas: .word ; current expected base3cur_sev: .byte ; current expected severity1fac_flg: .byte ; first time through flag dyn_desc: .long ^x020E0000,0buffer_size=255"buffer: .long buffer_size,bufadrbufadr: .blkb buffer_size. .psect _msg_readonly rd,nowrt,noexe severities: .byte 0$-severities .byte 1$-severities .byte 2$-severities .byte 3$-severities .byte 4$-severities .byte 5$-severities .byte 5$-severities .byte 5$-severities0$: .ascic 'WARNING'1$: .ascic 'SUCCESS'2$: .ascic 'ERROR'3$: .ascic 'INFORMATION'4$: .ascic 'FATAL'5$: .ascic '?'p1: .ascid 'P1'*facmsg: .ascid '.FACILITY!_!AC,!UW!AC!AC'system: .ascic ' /SYSTEM'shared: .ascic ' /SHARED'null: .byte 0basmsg: .ascid '.BASE!_!_!UW' sevmsg: .ascid '.SEVERITY!_!AC'1errmsg: .ascid '_!XL!_ /FAO=!UB /IDENT=!AC' .end unmessage$ eod$ copy sys$input OUTPUT.FOR$ deck subroutine init_output implicit integer (a-z) character*252 output/ call cli$get_value('OUTPUT',output,len) if (len.eq.0) then output='SYS$OUTPUT' len=10 end if3 open(file=output(:len),unit=1,status='new',. > carriagecontrol='list',recl=4096) return end+ integer function put_output(string) implicit integer (a-z) character*(*) string write(1,'(a)') string put_output=1 return end$eod$ copy sys$input UNMESSAGE.CLD$deckP!***********************************UNMESSAGE***********************************define verb UNMESSAGE image EXE$DIR:UNMESSAGE parameter P1 value (type=$infile) qualifier OUTPUT value (type=$outfile)$eod"$ copy sys$input UNMESSAGE.COMPILE$deckI! Source name, object name, compile command, link options, required filesunmessage.mar,.obj,Macrooutput.for,.obj,Fortran$eod>$ ws "and now, since I don't know if you have the compile.com"<$ ws "posted with VERB, I'll just compile it by hand, heck,"=$ ws "there's only two modules, (I don't remember why I even"($ ws "bothered with the fortran one...)"$ ws "Compiling OUTPUT.FOR"$ fortran output.for$ ws "Compiling UNMESSAGE.MAR"$ macro unmessage.mar$ ws "and now to link them ..."$ link unmessage,output*$ ws "and to define the UNMESSAGE command"$ set command unmessage$ ws "All done. "9$ ws "by the way, you'll need to define EXE$DIR to point")$ ws "to where you put the executable..."$!$!G$! Last summer after I finished with Verb, I attacked the Error messageE$! files, and wote a program to generate Source code which could thenC$! be modified and used to regenerate the Error message file. I hadI$! originally intended t00VLYLK H6%! !o use it to figure out what number was associatedC$! with a particular message (I wanted to call SYS$EXIT and have anL$! appropriate error message appear). Because of the some of the informationI$! not being in the error message file I wasn't exactly able to do what IH$! wanted, (I couldn't get the name of the original symbol, i.e. nowhereF$! was the word SYS$_NORMAL to be found, actually though, for the mostE$! part, the IDENT's match the symbol name, except where the original-$! source had it's own IDENT.. ButI stray..)B$! Anyway, I was just wondering if anyone was interested inA$! a copy of this program. If nothing else, it's fun to go in andB$! change SYS$MESSAGE:SYSMSG (Is that the one? Its been a while..)D$! So that you get (a) completely erroneous error message (great gag=$! for some poor sap), (b) A bit freindlier error message, or$$! (c) Valley girl error messages...K$! Actually, all I ever use it for is for finding that perfect errorG$! message to use when exiting a program (I'm lazy, why write my own?).A$! If there's enough interest I'll post the sources (after$$! I check to see if I used Tabs...) .TITLE USRTB; SYSTEM TABLES4;.; MACRO LIBRARY CALLS;O# .MCALL HWDDF$,SCBDF$,UCBDF$,CLKDF$$ HWDDF$ ;DEFINE HARDWARE REGISTERS$ SCBDF$ ,,SYSDEF ;DEFINE SCB OFFSETS$ UCBDF$ ,,TTDEF ;DEFINE UCB OFFSETS% CLKDF$ ;DEFINE CLOCK QUEUE OFFSETS.;D; LOCAL ASSIGNMENTS;;w UMD=0: .IIF DF D$$IAG,UMD=400 ;DIAGNOSTIC FUNCTIONS BECOME LEGAL ERL=0 .IIF DF E$$DVC,ERL=40;; DEVICE TABLES ; LD$YR=0LD$YT=0F$USRTB::;C; YR DCB;$ .IIF DF LD$YR, $YRTBL=0 .IIF DF LD$YT, $YTTBL=0E.DC0: .WORD .DC1 .WORD .YR0R .ASCII /YR/ .BYTE 0,1.-1  .WORD YRND-YRST .WORD $YRTBLD* .WORD 160377,170,160302,0,37407,0,1,37406 .IF DF L$$DRV .WORD 0 .ENDC;,; XL UCB'SB;FYRST=. .IF DF M$$MUP .WORD 0 .ENDC.YR0:: .WORD .DC0 ;u.dcb .WORD .-2 ;u.red ) .BYTE 0,0 ;ucb flags,status ;u.ctl/u.stsO .BYTE 0,0 ;u.unit,u.st2 .WORD 7 ;u.cw1 ;terminal... .WORD 0 ;u.cw2= .WORD 0 ;u.cw3R .WORD 1024. ;u.cw4D .WORD $YR0 ;u.scb .WORD 0,0,0,0,0,0,0,0,0,0 .WORD 0,0,0,0,377,0,0,0,0,0YRND=.;D; YR SCB'SY; .IF NDF LD$YR .ASECTN .=330 .WORD $YRINT .WORD PR7+0 .PSECT2 .ENDC$YR0:: .WORD 0,.-2 .BYTE PR5,340/4 .BYTE 0,0 ;S.CTM,S.ITMB .BYTE 0*2,0 .WORD 176540 .WORD 0 .WORD 0,0,0,0 .IF DF L$$DRV & M$$MGED .WORD 0 .ENDC .IIF DF LD$YR, $YRTBL=0 ; YT DCBSO.DC1:E# .WORD 0 ;FWD DCB LINK - NONE HEREt .WORD .YT0. .ASCII /YT/ .BYTE 0,1.-1w .WORD YTND-YTST .WORD $YTTBL$* .WORD 160377,170,160304,0,37407,0,1,37406 .IF DF L$$DRV .WORD 0 .ENDC;; XL UCB'S;YTST=. .IF DF M$$MUP .WORD 0 .ENDC.YT0:: .WORD .DC1 ;u.dcb .WORD .-2 ;u.red) .BYTE 0,0 ;ucb flags,status ;u.ctl/u.sts; .BYTE 0,0 ;u.unit,u.st2 .WORD 7 ;u.cw1 ;terminal... .WORD 0 ;u.cw2F .WORD 0 ;u.cw3G .WORD 1024. ;u.cw4 .WORD $YT0 ;u.scb .WORD 0,0,0,0,0,0,0,0,0,0 .WORD 0,0,0,0,377,0,0,0,0,0YTND=.;D; XL SCB'SY; .IF NDF LD$YT .ASECTN .=334 .WORD $YTINT .WORD PR7+0 .PSECT4 .ENDC$YT0:: .WORD 0,.-2 .BYTE PR5,344/4 .BYTE 2,2 .BYTE 0*2,0 .WORD 176544. .WORD 0 .WORD 0,0,0,0 .IF DF L$$DRV & M$$MGE  .WORD 0 .ENDC .END) .BYTE 0,0 ;ucb flags,status ;u.ctl/u.sts; .BYTE 0,0 ;u.unit,u.st2 .WORD 7 ;u.cw1 ;terminal... .WORD 0 ;u.cw2F .WORD 0 ;u.cw3G .WORD 1024. ;u.cw4 .WORD $YT0 ;u.scb .WORD 0,0,0,0,0,0,0,0,0,0 .WORD 0,0,0,0,377,0,0,0,0,0YTND=.;D; XL SCB'SY; .IF NDF LD$YT .ASECTN .=334 .WORD $YTINT .WORD PR7+0 .PSECT4 .ENDC$YT000!H`LJH+%O-%TADATADATA $SET VERIFY/$MACRO/LIST=VDDRIVER.LIS/SHOW=(BINARY) VDDRIVERO$LINK/EXE=VDDRIVER.EXE/CONTIGUOUS/map/full VDDRIVER,SYS$SYSTEM:SYS.STB/SELECT,- SYS$INPUT/OPTIONBASE=0$<$! sysgen connect vda0:/noadapter/maxunits=1/driver=vddriver4$! is the sort of command needed to load vddriver... $SET NOVERIFY+ .TITLE VDDRIVER - VAX/VMS VIRT DISK DRIVER .IDENT 'V01-001' ;USAPADDR=0 ;d$$bug=0; ; FACILITY:; 6; VAX/VMS VIRTUAL DISK DRIVER USING CONTIGUOUS FILES.; ; AUTHOR:; ; G. EVERHART;; ; ABSTRACT:; <; THIS MODULE CONTAINS THE TABLES AND ROUTINES NECESSARY TO<; PERFORM ALL DEVICE-DEPENDENT PROCESSING OF AN I/O REQUEST(; FOR VMS VIRTUAL DISKS ON CONTIG FILES.;; Note:@; This driver will be for logical I/O and will inhibit physical; block I/O as makes sense.:; It will have an FDT table that will look just like other5; disks for everything, but will NOT do buffered I/O.;; In its' FDT routines, which will be dummies, it will just9; modify logical block numbers in the I/O packets, set or;; clear the buffered bit in irp$w_STS according as the real=; driver's bit is set or clear, do a range check to make sure=; the LBN used is in the legal range for this particular unit8; ov VD:, and reset things to call the real driver's FDT8; routines and let IT do the work. It will unbusy itself; before losing control.2; The idea is that only I/O "gets at the physical;; storage", so only that need be munged. Since this happens9; only for read/write logical/physical, we just leave OUR=; FDT routines in there for everything else. In just changing>; the buffered bit in the I/O we MAY mess up some quotas (this<; will eventually get cleaned up), but won't lose buffers or?; otherwise mess up things. Since most drivers have nonbuffered;; I/O, we'll usually be just fine. (Disk drivers, that is.)7; To call the "real" FDT routines we'll just reset the=; registers (and the IORP) to the real device and return. The@; exec routines that handle FDT routines will take it from there?; and do the FDT processing in the real driver. We just have to; let them work...5; The FDT routines are called from SYSQIOREQ.MAR for; future reference.6; We don't need to get control back, really; the real>; driver will finish off the I/O. We just need a few checks to<; ensure that a "real" driver exists and has been associated; with this unit.;>; Since virtual I/O gets converted to physical and sent directB; to start-io, we have a trap in the start-io entry that basically>; duplicates the logical IO FDT fakeout with the added wrinkleB; that it converts block number to the host drive's physical media;; address by calling IOC$CVTLOGPHY (just as VMS does) after=; adjusting. It then unbusies this driver and goes to an exec?; routine that sets IPL back to zero and returns from the start; i/o routine...9; The logical I/O FDT entry is left in for now. It seemsA; cleaner to intercept I/O at that level than always at the startD; IO level, and it is used by file system routines. There's no point>; in queueing the request to VD: and then having to requeue toA; another driver when we can get it queued almost directly to the=; driver that'll do the work. So at the expense of a bit more/; code complexity we gain some logical clarity.;F; Physical I/O (which is becoming less important as MSCP devices don't4; really have it) is faked out in the following way:8; 1. A fake "physical structure" on the virtual disk is>; assumed of 64 sectors/track, 1 track/cylinder. (This limits:; the size of the virtual disk to about 4 million blocks,8; which probably won't cause anyone too much grief; the?; structure can be altered if need be. It further implies that:; virtual disks are a multiple of 64 blocks long. This is2; enforced by ADVD which sets the UCB f00gLYLK H6%! !ields up.)>; 2. Physical I/O requests are just turned to logical ones by>; adjusting the I/O function value (in R7 in the FDT routine)=; and finding the logical block. Then they are passed to the=; vd_fakeout routine to be passed as logical I/O to the real;; driver which can turn them back to physical if it likes.;;; Actually for this driver physical I/O is simply disabled.?; Virtual I/O presents more of a problem since it goes out andH; gets turned to logical (physical) I/O by VMS, then queued directly to?; the driver's start-io entry. By having virtual I/O come here>; to the VD: start-io entry point, we have to field it to the:; real driver somehow from there. This means some messing@; around with the I/O packet at that point. INIT is still happyD; with the driver and there is still a physical structure declared.; It just never gets used.;;-- .PAGE& .SBTTL EXTERNAL AND LOCAL DEFINITIONS; ; EXTERNAL SYMBOLS;  .library /SYS$SHARE:LIB/*; $ADPDEF ;DEFINE ADAPTER CONTROL BLOCK) $CRBDEF ;DEFINE CHANNEL REQUEST BLOCK# $DYNDEF ;define dynamic data types $DCDEF ;DEFINE DEVICE CLASS% $DDBDEF ;DEFINE DEVICE DATA BLOCK* $DEVDEF ;DEFINE DEVICE CHARACTERISTICS) $DPTDEF ;DEFINE DRIVER PROLOGUE TABLE( $EMBDEF ;DEFINE ERROR MESSAGE BUFFER); $IDBDEF ;DEFINE INTERRUPT DATA BLOCK% $IODEF ;DEFINE I/O FUNCTION CODES$ $DDTDEF ; DEFINE DISPATCH TBL... $ptedef $vadef& $IRPDEF ;DEFINE I/O REQUEST PACKET $irpedef& $PRDEF ;DEFINE PROCESSOR REGISTERS& $SSDEF ;DEFINE SYSTEM STATUS CODES& $UCBDEF ;DEFINE UNIT CONTROL BLOCK* $VECDEF ;DEFINE INTERRUPT VECTOR BLOCK; 2; UCB OFFSETS WHICH FOLLOW THE STANDARD UCB FIELDS; ( $DEFINI UCB ;START OF UCB DEFINITIONS2;.=UCB$W_BCR+2 ;BEGIN DEFINITIONS AT END OF UCB*.=UCB$K_LCL_DISK_LENGTH ;v4 def end of ucb8; USE THESE FIELDS TO HOLD OUR LOCAL DATA FOR VIRT DISK.,$DEF UCB$W_VD_WPS .BLKW 1 ;Words per sector.1$DEF UCB$W_VD_CS .BLKW 1 ;CONTROL STATUS REGISTER4$DEF UCB$W_VD_DB .BLKW 1 ;UCB ADDRESS OF HOST DRIVER%$DEF UCB$W_VD_DPN .BLKW 1 ;(LONGWORD)8$DEF UCB$L_VD_DPR .BLKL 1 ;START LBN OF HOST CONTIG FILE$DEF UCB$L_VD_FMPR .BLKL 1 ;1$DEF UCB$L_VD_PMPR .BLKL 1 ;PREVIOUS MAP REGISTER0$DEF UCB$B_VD_ER .BLKB 1 ;SPECIAL ERROR REGISTER .BLKB 1 ;Reserved.'$DEF UCB$B_VD_LCT .BLKB 1 ;LOOP COUNTER5$DEF UCB$B_VD_XBA .BLKB 1 ;BUS ADDRESS EXTENSION BITS-$DEF UCB$W_VD_PWC .BLKW 1 ;PARTIAL WORD COUNT/$DEF UCB$W_VD_SBA .BLKW 1 ;SAVED BUFFER ADDRESS6$DEF UCB$L_VD_XFER .BLKL 1 ;TRANSFER FUNCTION CSR BITS3$DEF UCB$L_VD_LMEDIA .BLKL 1 ;LOGICAL MEDIA ADDRESS@$DEF UCB$Q_VD_EXTENDED_STATUS ; Area into which we do READ ERROR .BLKQ 1 ; REGISTER command.=$DEF UCB$Q_VD_SVAPTETMP ; Area in which we save UCB fields -% .BLKQ 1 ; SVAPTE, BOFF, and BCNT.=$DEF UCB$L_VD_MAPREGTMP ; Area in which we save CRB fields -+ .BLKL 1 ; MAPREG, NUMREG, and DATAPATH.D$DEF UCB$L_VD_SAVECS .BLKL 1 ; Area in which we save CS and DB regs.K; Add our stuff at the end to ensure we don't mess some fields up that some; areas of VMS may want.*$DEF UCB$HUCB .BLKL 1 ;ADDRESS OF HOST UCB'$DEF UCB$HLBN .BLKL 1 ;LBN OF HOST FILE.$DEF UCB$HFSZ .BLKL 1 ;SIZE OF HOST FILE, BLKS;($DEF UCB$K_VD_LEN .BLKW 1 ;LENGTH OF UCB!;UCB$K_VD_LEN=. ;LENGTH OF UCB% $DEFEND UCB ;END OF UCB DEFINITONS  .SBTTL STANDARD TABLES; ; DRIVER PROLOGUE TABLE; >; THE DPT DESCRIBES DRIVER PARAMETERS AND I/O DATABASE FIELDSA; THAT ARE TO BE INITIALIZED DURING DRIVER LOADING AND RELOADING;  .PSECT $$$105_PROLOGUEVD$DPT:: DPTAB - ;DPT CREATION MACRO$ END=VD_END,- ;END OF DRIVER LABEL0 ADAPTER=NULL,- ;ADAPTER TYPE = NONE (VIRTUAL) DEFUNITS=2,- ;UNITS 0 THRU 1' UCBSIZE=UCB$K_VD_LEN,- ;LENGTH OF UCB( MAXUNITS=8,- ;FOR SANITY...CAN CHANGE NAME=VDDRIVER ;DRIVER NAME2 DPT_STORE INIT ;START CONTROL BLOCK INIT VALUES8 DPT_STORE DDB,DDB$L_ACPD,L,<^A\F11\> ;DEFAULT ACP NAME3 DPT_STORE DDB,DDB$L_ACPD+3,B,DDB$K_PACK ;ACP CLASS' DPT_S00oL`LJH+%O-%TADATADATATORE UCB,UCB$B_FIPL,B,8 ;FORK IPL8 DPT_STORE UCB,UCB$L_DEVCHAR,L,- ;DEVICE CHARACTERISTICS ; RANDOM ACCESS7 DPT_STORE UCB,UCB$B_DEVCLASS,B,DC$_DISK ;DEVICE CLASS: DPT_STORE UCB,UCB$W_DEVBUFSIZ,W,512 ;DEFAULT BUFFER SIZE+ DPT_STORE UCB,UCB$B_TRACKS,B,1 ; 1 TRK/CYL? DPT_STORE UCB,UCB$B_SECTORS,B,64 ;NUMBER OF SECTORS PER TRACK9 DPT_STORE UCB,UCB$W_CYLINDERS,W,16 ;NUMBER OF CYLINDERSC; FAKE GEOMETRY TO MAKE TRANSLATION EASIER. HAVE PRIV'D IMAGE LATERF; RESET THE UCB$W_CYLINDERS TO WHATEVER'S DESIRED. JUST MAKE SURE IT'SA; A MULTIPLE OF 64 BLOCKS IN SIZE, WHICH OUGHT TO BE GOOD ENOUGH.* DPT_STORE UCB,UCB$B_DIPL,B,21 ;DEVICE IPL7 DPT_STORE UCB,UCB$B_ERTMAX,B,10 ;MAX ERROR RETRY COUNTF DPT_STORE UCB,UCB$W_DEVSTS,W,- ;INHIBIT LOG TO PHYS CONVERSION IN FDT ;...;?; don't mess with LBN; leave alone so it's easier to hack on...;6 DPT_STORE REINIT ;START CONTROL BLOCK RE-INIT VALUESI; DPT_STORE CRB,CRB$L_INTD+4,D,VD_INT ;INTERRUPT SERVICE ROUTINE ADDRESSC DPT_STORE CRB,CRB$L_INTD+VEC$L_INITIAL,- ;CONTROLLER INIT ADDRESS D,VD_RX211_INIT ;...= DPT_STORE CRB,CRB$L_INTD+VEC$L_UNITINIT,- ;UNIT INIT ADDRESS D,VD_RX02_INIT ;...0 DPT_STORE DDB,DDB$L_DDT,D,VD$DDT ;DDT ADDRESS- DPT_STORE END ;END OF INITIALIZATION TABLE; ; DRIVER DISPATCH TABLE; >; THE DDT LISTS ENTRY POINTS FOR DRIVER SUBROUTINES WHICH ARE"; CALLED BY THE OPERATING SYSTEM.; ;VD$DDT: DDTAB - ;DDT CREATION MACRO DEVNAM=VD,- ;NAME OF DEVICE' START=VD_STARTIO,- ;START I/O ROUTINE0 FUNCTB=VD_FUNCTABLE,- ;FUNCTION DECISION TABLE-; CANCEL=0,- ;CANCEL=NO-OP FOR FILES DEVICE$; REGDMP=0,- ;REGISTER DUMP ROUTINE$; DIAGBF=0,- ;BYTES IN DIAG BUFFER ERLGBF=0 ;BYTES IN ;ERRLOG BUFFER; ; FUNCTION DECISION TABLE; 6; THE FDT LISTS VALID FUNCTION CODES, SPECIFIES WHICH4; CODES ARE BUFFERED, AND DESIGNATES SUBROUTINES TO2; PERFORM PREPROCESSING FOR PARTICULAR FUNCTIONS.; VD_FUNCTABLE:# FUNCTAB ,- ;LIST LEGAL FUNCTIONS ; MOUNT VOLUME#; no-op phys I/O for a test here...! FUNCTAB ,- ;BUFFERED FUNCTIONS ; MOUNT VOLUME. FUNCTAB VD_ALIGN,- ;TEST ALIGNMENT FUNCTIONS# < FUNCTAB VD_FAKEOUT,- ; FAKEOUT FOR LOGICAL OR PHYSICAL I/O% K; NOTE SEPARATE CALL FOR PHYSICAL I/O SO00wLYLK H6%! ! WE CAN JUST CONVERT TO LOGICAL ANDG; DO OUR THING... CONVERT TO A LOGICAL QIO THERE FOR "REAL" DRIVER ALSOA; SO IT CAN DO CONVERSION TO ITS IDEA OF PHYSICAL IF IT WISHES...>; FUNCTAB VD_PFAKEOUT,- ; FAKEOUT FOR LOGICAL OR PHYSICAL I/O&; ;D; LEAVE NORMAL ACP CALLS IN SO FILE STRUCTURED STUFF ON OUR VD: UNIT; WILL WORK OK.;( FUNCTAB +ACP$READBLK,- ;READ FUNCTIONS# * FUNCTAB +ACP$WRITEBLK,- ;WRITE FUNCTIONS% ) FUNCTAB +ACP$ACCESS,- ;ACCESS FUNCTIONS2 , FUNCTAB +ACP$DEACCESS,- ;DEACCESS FUNCTION ) FUNCTAB +ACP$MODIFY,- ;MODIFY FUNCTIONS' & FUNCTAB +ACP$MOUNT,- ;MOUNT FUNCTION ; MOUNT VOLUME3 FUNCTAB +EXE$ZEROPARM,- ;ZERO PARAMETER FUNCTIONS ; AVAILABLE0 FUNCTAB +EXE$ONEPARM,- ;ONE PARAMETER FUNCTION * FUNCTAB +EXE$SENSEMODE,- ;SENSE FUNCTIONS' ' FUNCTAB +EXE$SETCHAR,- ;SET FUNCTIONS#  .PAGE) .SBTTL CONTROLLER INITIALIZATION ROUTINE; ++; 3; VD_RX211_INIT - CONTROLLER INITIALIZATION ROUTINE; ; FUNCTIONAL DESCRIPTION:; noop ; INPUTS:; R4 - CSR ADDRESS; R5 - IDB ADDRESS; R6 - DDB ADDRESS; R8 - CRB ADDRESS; +; THE OPERATING SYSTEM CALLS THIS ROUTINE:; - AT SYSTEM STARTUP; - DURING DRIVER LOADING(; - DURING RECOVERY FROM POWER FAILURE<; THE DRIVER CALLS THIS ROUTINE TO INIT AFTER AN NXM ERROR.;-- .PSECT $$$115_DRIVER2VD_RX211_INIT: ;RX211 CONTROLLER INITIALIZATION) CLRL CRB$L_AUXSTRUC(R8) ; SAY NO AUX MEM RSB ;RETURN .PAGE- .SBTTL INTERNAL CONTROLLER RE-INITIALIZATION; ; INPUTS:; R4 => RX211 CSR ; R5 => UCB; RX211_REINIT: RSB ; RETURN TO CALLER .PAGE# .SBTTL UNIT INITIALIZATION ROUTINE;++; ,; VD_RX02_INIT - UNIT INITIALIZATION ROUTINE; ; FUNCTIONAL DESCRIPTION:; $; THIS ROUTINE SETS THE VD: ONLINE.; +; THE OPERATING SYSTEM CALLS THIS ROUTINE:; - AT SYSTEM STARTUP; - DURING DRIVER LOADING(; - DURING RECOVERY FROM POWER FAILURE; ; INPUTS:; 0; R4 - CSR ADDRESS (CONTROLLER STATUS REGISTER)(; R5 - UCB ADDRESS (UNIT CONTROL BLOCK); R8 - CRB ADDRESS; ; OUTPUTS:; ; THE UNIT IS SET ONLINE.0; ALL GENERAL REGISTERS (R0-R15) ARE PRESERVED.; ;--*VD_RX02_INIT: ;RX02 UNIT INITIALIZATION>; Don't set unit online here. Priv'd task that assigns VD unit<; to a file does this to ensure only assigned VDn: get used.:; BISW #UCB$M_ONLINE,UCB$W_STS(R5) ;SET UCB STATUS ONLINE9 MOVB #DC$_DISK,UCB$B_DEVCLASS(R5) ;SET DISK DEVICE CLASS; MOVB #DT$_RX04,UCB$B_DEVTYPE(R5) ;ASSUME RX04 DEVICE TYPE RSB ;RETURN  .PAGE .SBTTL FDT ROUTINES ;++; 0; VD_ALIGN - FDT ROUTINE TO TEST XFER BYTE COUNT; ; FUNCTIONAL DESCRIPTION:; E; THIS ROUTINE IS CALLED FROM THE FUNCTION DECISION TABLE DISPATCHERB; TO CHECK THE BYTE COUNT PARAMETER SPECIFIED BY THE USER PROCESS/; FOR AN EVEN NUMBER OF BYTES (WORD BOUNDARY).; ; INPUTS:; (; R3 - IRP ADDRESS (I/O REQUEST PACKET)+; R4 - PCB ADDRESS (PROCESS CONTROL BLOCK)(; R5 - UCB ADDRESS (UNIT CONTROL BLOCK)+; R6 - CCB ADDRESS (CHANNEL CONTROL BLOCK)+; R7 - BIT NUMBER OF THE I/O FUNCTION CODE3; R8 - ADDRESS OF FDT TABLE ENTRY FOR THIS ROUTINE<; 4(AP) - ADDRESS OF FIRST FUNCTION DEPENDENT QIO PARAMETER; ; OUTPUTS:; ?; IF THE QIO BYTE COUNT PARAMETER IS ODD, THE I/O OPERATION IS?; TERMINATED WITH AN ERROR. IF IT I00L`LJH+%O-%TADATADATAS EVEN, CONTROL IS RETURNED; TO THE FDT DISPATCHER.; ;--(VD_ALIGN: ;CHECK BYTE COUNT AT P1(AP) .if ndf,nolchkB; note: not fully tested but a MINOR mod... therefore conditioned.& tstw 6(ap) ;test high order half of ; byte count specified+ bneq 10$ ; if bigger than 65k call error .endc .if df,d$$bug movl 4(ap),dbgv2 .endc) BLBS 4(AP),10$ ;IF LBS - ODD BYTE COUNT RSB ;EVEN - RETURN TO CALLER910$: MOVZWL #SS$_IVBUFLEN,R0 ;SET BUFFER ALIGNMENT STATUS JMP G^EXE$ABORTIO ;ABORT I/O .if df,d$$bugdbgv2: .blkl 8 .endc .PAGE .SBTTL START I/O ROUTINE; .IF DF,PHYSIOK;; VD_PFAKEOUTD;; Converts physical I/O to logical, checks, then passes a "logical";; I/O to the real driver...;; ;VD_PFAKEOUT:AE;; Since the dispatcher's only record this is a physical QIO is in R7NC;; at this point, modify to turn back into logical I/O. Be sure viaE3;; listing that these codes are a small constant...I>; ADDL2 #,R7 ;ADJUST R7 FOR LOG I/O$;; ABOVE TURNS INTO A LOGICAL QIO...(;; MUST CONVERT BLOCK # TO LOGICAL ALSO.;; NOTEN+;; CYLINDER TRK SECT ; IS PHYS FORMAT A;; SINCE WE HAVE 64 SECT/TRK, WE JUST NEED TO TAKE LOW 6 BITS ANDs+;; THEN HIGH 16 BITS TO MAKE A VALID LBN...f;;;;; HERE ASSUME THAT 8(AP) IS IN SYSTEM SPACE SOMEWHERE (PERe!;; TELECON WITH JOIM MCGLINCHEY)e!; MOVL 8(AP),R0 ;GET PHYS NUMBERg5; ASHL #-10,R0,R1 ;GET CYLINDER NUMBER SHIFTED TO R1 $; BICL2 #^C<^X3FFFC0>,R1 ;ISOLATE IT(; BICL2 #^C<^X3F>,R0 ;AND SECTOR NUMBER); BISL2 R1,R0 ;NOW OR TOGETHER THE LBNS /; CMPL UCB$HFSZ(R5),R0 ;LBN OF FILE > REQ LBN?; BGTRU 1$ ; IF GT THEN OK -; MOVZWL #SS$_BADPARAM,R0 ;IF NOT, BAD PARAMS/; JMP G^EXE$ABORTIO ;ABORT I/Oe;1$:;; NOW FIND HOST UCB<; TSTL UCB$HUCB(R5) ; BE SURE WE HAVE SOMETHING IN UCB ADDR ; BNEQ 2$/3; MOVZWL #SS$_VOLINV,R0 ;SET VOLUME INVALID STATUS ; JMP G^EXE$ABORTIO ;ABORT I/Ou;2$:I;; If the parameters are all in system space we can of course just add to,;; the 8(ap) longword as is...I;; So in that case the code between the pushr and popr instructions below B;; can just be removed...that's why there's a conditional there...; .IF DF,USRAPADDR@;; don't bother copying if args are in sys space, BUT if they're4;; in user space, copy arg list and change the copy.+; bitl #^x80000000,ap ; is AP high bit set?f/; beqlu 650$ ; if 0 then better extend i/o pktW:; brw 651$ ; use this due to vax losing short branch range;650$:*; pushr #^m2;; save regs around bashing by exe$allocirp etc...$; movl r3,r9 ;preserve iorp address@;; NOTE: I am not certain this is the right ipl for this routine*;; but for the moment will assume it is...#;; looks ok according to manuals...e(; jsb G^exe$allocirp ;get iorp extension;; address returns in r2:; bitw #irp$v_extend,irp$w_sts(r9) ;already an irpe there?$; beql 20$ ;if eql no, set this one;; movl irp$l_extend(r9),r9 ;had an irpe so get its addresssG;18$: bitw #irpe$v_extend,irpe$w_sts(r9) ;ensure we get an irpe w/o extt#; beql 19$ ; if zero go grab thisl3; movl irpe$l_extend(r9),r9 ; else get next addresse"; beql 20$ ; if zero stop already2; brb 18$ ; and check again if not for more exts9;19$: movl r2,irpe$l_extend(r9) ; point chain at new irpe G; bisw2 #irpe$v_extend,irpe$w_sts(r9) ;and flag for next pass by othersn3; brb 21$ ; skip over bash of irp now since it was' ; ; extended when we got here;20$:t; movl r2,irp$l_extend(r9);; bisw2 #irp$v_extend,irp$w_sts(r9) ;save extension addressc; ; and flag for eventual;21$: ; cleanup>;; hopefully the above logic will allow vd: units on other vd: ;; units.e ; movl r2,r84; addl2 #irpe$w_size+4,r8 ;point r8 to new "AP" area; movl (ap),(r8); movl 4(ap),4(r8)%; movl 8(ap),8(r8) ; copy p1 thru p4k; movl 12(ap),12(r8)0; movl r8,ap ; now reset AP to copy of region.3;; note this uses some now-unused areas in the IRPE; clrl irpe$l_extend(r2)/; clrw irpe$w_sts(r2) ;flag no IRPE extensionsyD;; (we get the iorp firs00LYLK H6%! !t; everybody after has to check for possibleB;; further extensions. This may however disallow virtual disks on@;; virtual disks and should be cleaned up eventually by doing aB;; complete check for irpe's and linking to the end of a chain if!;; there are any such around...)c;;; enbint #ipl$_astdels); popr #^m ;651$:; .ENDC/E; R0 set above as "LBN" equivalent of physical block we got... set up +; and go treat the rest as a logical I/O...p%; MOVL R0,8(AP) ;AND SAVE AS NEW LBNl,; BRW VD_FAKOUB ;THEN HANDLE AS LOGICAL I/O; .ENDC ; VD_FAKEOUT '; CALLED TO DO MOST OF THE REAL WORK...v;oE; This entry does the work of making a contiguous file look like thesC; real storage of the VD: unit. It is assumed that the UCB has beenyC; stuffed with the starting LBN, the size in blocks, and the UCB of.B; the physical disk on which a contiguous file is to be used. ThisF; entry validates the transfer and changes the I/O packet to look likeH; it was meant for the equivlent LBN within the file on the "host" disk.;NF; In order to handle virtual I/O, most of this logic is duplicated inI; the start-io entry area of this driver too. However, no IORP extensionF.; is needed there as the current design goes.;VC; Should we ever have to handle huge buffered requests (over 65535EF; bytes), we will have to add some logic to probably allocate an IRPEC; and get control back at the end of each I/O to fake out the fullFE; size transfer ourselves. There seems to be no very clean way to doRL; this, and it isn't clear it's needed, so no such code exists here at all.D; The problem is that in a big transfer the I/O packet gets re-usedB; but the packet then belongs to the host driver, not to ours, soH; the blocks will be wrongly numbered. Current code should just produceB; some sort of error for this. I know of no application that everG; produces so long a disk transfer however, and suspect that it's onlyrF; important for some other devices. I have not looked closely at thisD; however. Perhaps the VD: FDT routines should just return an errorF; on any transfer over 65535 bytes and do nothing, not even the first; part of a transfer.; ;D; ENTRY:/; R0= FDT ENTRY (OURS ON ENTRY; HOST'S ON EXIT)B; R1, R2 SCRATCH; R3= I/O PKT ADDRESS ; R4= PCB ADDRESS1; R5= UCB ADDRESS (OURS ON ENTRY; HOST'S ON EXIT)B; R6 = CCB ADDRESS; R7= I/O FCT CODE BIT NUMBERFK; R8= FDT DISPATCH ADDRESS (ADD 12. TO IT EVERY PASS THRU INCLUDINBG FIRST)B"; (OURS ON ENTRY; HOST'S ON EXIT); R9, R10, R11 = SCRATCH/; AP = ADDRESS OF 1ST FUNCT DEPENDENT PARAMETERE VD_FAKEOUT:'; FIRST ENSURE ALL'S WELL FOR LBN RANGE 0 CMPL UCB$HFSZ(R5),8(AP) ;LBN OF FILE > REQ LBN? BGTRU 1$ ; IF GT THEN OK, MOVZWL #SS$_BADPARAM,R0 ;IF NOT, BAD PARAMS JMP G^EXE$ABORTIO ;ABORT I/O1$:; NOW FIND HOST UCBM; TSTL UCB$HUCB(R5) ; BE SURE WE HAVE SOMETHING IN UCB ADDRG BNEQ 2$2 MOVZWL #SS$_VOLINV,R0 ;SET VOLUME INVALID STATUS JMP G^EXE$ABORTIO ;ABORT I/O2$:dB; NOW ADJUST LBN REQUEST AND FAKE THINGS SO IT APPEARS LBN REQUEST; IS FOR REAL DEVICE.y;n;9; Since the parameters at 0(ap) thru 12(ap) (4 longwords)B=; may be in user space, we shouldn't really just add to them.I:; Therefore we'll allocate an IORP extension here and copyI; the parameters into it, then reset the AP to point at the copies, which; we'll bash...DH; If the parameters are all in system space we can of course just add to; the 8(ap) longword as is...LH; So in that case the code between the pushr and popr instructions below0; can just be removed...hence the conditional... .IF DF,USRAPADDR* bitl #^x80000000,ap ; is AP high bit set?. beqlu 750$ ; if 0 then better extend i/o pkt brw 751$ 750$:0) pushr #^mO1; save regs around bashing by exe$allocirp etc... # movl r3,r9 ;preserve iorp addressS' jsb G^exe$allocirp ;get iorp extensionU; address returns in r2A9 bitw #irp$v_extend,irp$w_sts(r9) ;already an irpe there?P# beql 20$ ;if eql no, set this on00L`LJH+%O-%TADATADATAeO: movl irp$l_extend(r9),r9 ;had an irpe so get its addressF18$: bitw #irpe$v_extend,irpe$w_sts(r9) ;ensure we get an irpe w/o ext" beql 19$ ; if zero go grab this2 movl irpe$l_extend(r9),r9 ; else get next address! beql 20$ ; if zero stop already1 brb 18$ ; and check again if not for more extsT819$: movl r2,irpe$l_extend(r9) ; point chain at new irpeF bisw2 #irpe$v_extend,irpe$w_sts(r9) ;and flag for next pass by others2 brb 21$ ; skip over bash of irp now since it was ; extended when we got hereO20$: movl r2,irp$l_extend(r9)R: bisw2 #irp$v_extend,irp$w_sts(r9) ;save extension address ; and flag for eventualG21$: ; cleanupL=; hopefully the above logic will allow vd: units on other vd:D; units. movl r2,r8E3 addl2 #irpe$w_size+4,r8 ;point r8 to new "AP" areaS movl (ap),(r8)T movl 4(ap),4(r8)$ movl 8(ap),8(r8) ; copy p1 thru p4 movl 12(ap),12(r8)U/ movl r8,ap ; now reset AP to copy of region.O2; note this uses some now-unused areas in the IRPE clrl irpe$l_extend(r2)V. clrw irpe$w_sts(r2) ;flag no IRPE extensionsC; (we get the iorp first; everybody after has to check for possibleOA; further extensions. This may however disallow virtual disks onE?; virtual disks and should be cleaned up eventually by doing aNA; complete check for irpe's and linking to the end of a chain if ; there are any such around...);T enbint #ipl$_astdel( popr #^m751$:D .ENDC@; now finally adjust copy of p3 to fix up lbn to be used by real ; driver... VD_FAKOUB:= ADDL UCB$HLBN(R5),8(AP) ; ADD THE LBN ON STACK BEFORE STOREDR5 MOVL UCB$HUCB(R5),R5 ; R5 NOW IS HOST'S UCB ADDRESSE MOVL UCB$L_DDT(R5),R01 MOVL DDT$L_FDT(R0),R8 ; POINT AT HOST'S FDT AREAE;E!; NOW FILL IN HOST UCB IN I/O PKTO3; CMPL IRP$L_OBCNT(R3),IRP$L_BCNT(R3) ;SEE IF WE'REB$ ; GONNA NEED TO GET BACK TO THIS' ; DRIVER FOR 2ND OR LATER SEGMENTEDP ; I/O PACKETS...$; BNEQ 542$ ; IF NOT SAME ASSUME SO0 MOVL R5,IRP$L_UCB(R3) ; PACKET MOVES TO HOST...542$:L;<; Problem with only using an FDT routine is that virtual I/OP; comes thru virtual I/O FDT routines and is turned into logical (actually phys)#; I/O, BUT is not passed thru here.B>; We have to have something to catch the virtual packets and?; reset their LBNs after window processing. We set the max byte <; count field in ADVD to inhibit ever getting transfers over?; 64K-1 bytes and it's doubtful that'll happen much anyway. ButT?; when we get a logical I/O coming in here we have to fix it upT?; for the host. The LBN information in the FDT is just in 8(ap)EB; and so is easily changed. During a transfer, we have to have the); LBN info where the system can use it... B; LBN is stored in I/O packet at IRP$L_MEDIA as LBN here since weD; set the no-convert option. Therefore requeue to I/O driver of host; after mod to that.;R@; NOTE WE DON'T WORRY ABOUT IT GETTING INTO THE WRONG QUEUE HERE@; BECAUSE IN THE FDT ROUTINES, IT ISN'T YET QUEUED TO THE DEVICEA; CCB$W_IOC HAS BEEN INCREMENTED, BUT HOST DRIVER WILL EVENTUALLYfF; FINISH I/O ON THE PACKET AND DECREMENT THIS. THE DECREMENT OPERATIONB; IS INDEXED BY CHANNEL NUMBER, NOT UNIT, SO THE CCB'S I/O PENDING; COUNT WILL BE HANDLED OK.E; !; PASS FIRST 2 QUADWORDS OF MASKSS/ ADDL #4,R8 ; WHEN WE RETURN WE GO TO 1ST FDT ,! ; ROUTINE OF REAL DRIVER. SEET ; SYSQIOREQ.MAR FOR DETAILS.E; NOW ALL SET. ONLY LOGICAL I/O GETS HERE AND IT'LL NOW BE DISPATCHEDE?; FOR THE HOST DRIVER WITH THE MODIFIED I/O PACKET PARAMETERS. SD; SINCE FDT PROCESSING JUST GOES MERRILY ALONG FOR ALL FDT ROUTINES,B; IT WILL NOW DO SO IN THE HOST DRIVER USING THE HOST DRIVER'S FDTC; ROUTINES, BUT WITH LBN CORRECTED TO POINT TO OUR ASSOCIATED FILE.K; THIS WILL GET US, WITH LITTLE OVERHEAD, TO A VIRTUAL DISK ON A CONTIGUOUSLI; FILE. NOTE ONLY LOGICAL I/O IS TRANSFORMED; THE REST IS FILE-STRUCTUREDFD; STUFF AND WILL GO ON AS IF WE HAD REAL INDEPENDENT STORAGE ON THIS ; "DEVICE".L4 RSB ; "BACK" TO SYSTEM TO GET TO HOST'S FDT'S NEXT.;++A; ; 00LYLK H6%! !VD_STARTIO - START I/O ROUTINE; ; FUNCTIONAL DESCRIPTION:R; G; THIS FORK PROCESS IS ENTERED FROM THE EXECUTIVE AFTER AN I/O REQUESTO; PACKET HAS BEEN DEQUEUED.; C; SELDOM IF EVER CALLED DUE TO FDT THAT REROUTES MOST EVERYTHING TO; HOST DRIVER.; ; INPUTS:O; ); R3 - IRP ADDRESS (I/O REQUEST PACKET)C); R5 - UCB ADDRESS (UNIT CONTROL BLOCK) :; IRP$L_MEDIA - PARAMETER LONGWORD (LOGICAL BLOCK NUMBER); ; OUTPUTS:; =; R0 - FIRST I/O STATUS LONGWORD: STATUS CODE & BYTES XFEREDI/; R1 - SECOND I/O STATUS LONGWORD: 0 FOR DISKSI; ; THE I/O FUNCTION IS EXECUTED.; ,; ALL REGISTERS EXCEPT R0-R4 ARE PRESERVED.; ;--AUNLDJ: BRW UNLOADNAVLBJ: BRW AVAILABLEFATLJ: BRW FATALERRA#VD_STARTIO: ;START I/O OPERATIONO; ; PREPROCESS UCB FIELDS; ); ASSUME RY_EXTENDED_STATUS_LENGTH EQ 8CD; CLRQ UCB$Q_VD_EXTENDED_STATUS(R5) ; Zero READ ERROR REGISTER area.; ; BRANCH TO FUNCTION EXECUTIONC:10$:; BBS #IRP$V_PHYSIO,- ;IF SET - PHYSICAL I/O FUNCTION; IRP$W_STS(R3),20$ ;...O4 BBS #UCB$V_VALID,- ;IF SET - VOLUME SOFTWARE VALID UCB$W_STS(R5),20$ ;...2 MOVZWL #SS$_VOLINV,R0 ;SET VOLUME INVALID STATUS) BRW RESETXFR ;RESET BYTE COUNT AND EXIT,20$: CMPB #IO$_UNLOAD, R1 ;Unload function? BEQL UNLDJ ;Branch if yes.I- CMPB #IO$_AVAILABLE, R1 ;Available function?  BEQL AVLBJ ;Branch if yes.1; IF WE GET A SEGMENT TRANSFER HERE (LOGICAL I/O) .; IT MUST BE UPDATED FOR HOST AND SHIPPED OUT. .IF NDF,PHSIOKE(; THIS MAY BREAK IF PHYS I/O IS THERE..."; OUR UCB HAS BLOCK NUMBER INFO...I; FIND OUT IF THIS IS LOGICAL OR PHYSICAL I/O FIRST. THEN IF IT IS BUGGERZ>; THE I/O PACKET USING UCB INFO AND SEND TO THE REAL DRIVER... ; ALSO ENSURE WE ARE UNBUSIED...;R=; If we add physical I/O we have to translate the IRP$L_MEDIAD<; word here to a logical block, THEN go thru the rest of the;; logic here. Since we don't allow it in the legal function 9; mask and INIT seems to accept this, there is no need toRB; bother. Some commented code earlier shows how to do the physicalA; to logical translation for our case. The general case isn't tooE1; much worse but no need to bother with either... ; A EXTZV #IRP$V_FCODE,#IRP$S_FCODE,IRP$W_FUNC(R3),R1 ; GET FCN CODEI CMPB #IO$_READLBLK,R1$ BEQL 401$ ;READ LOGICAL - LET THRU CMPB #IO$_READPBLK,R1 ;PHYS?U. BEQL 401$ ;READ PHYS .. OK (SAME AS LOGICAL) CMPB #IO$_READVBLK,R1 BEQL 401$ CMPB #IO$_WRITEVBLK,R1U BEQL 401$! CMPB #IO$_WRITELBLK,R1 ;WRT LOG?I BEQL 401$ ;WRITE LOGICAL .. OK" CMPB #IO$_WRITEPBLK,R1 ;WRT PHYS? BEQL 401$ BRW 402$S$; BNEQ 402$ ;SOMETHING ELSE .. SKIP401$: ; debug using sda to peekW.; NOW VALIDATED I/O FCN... MODIFY AND SEND OFF .if df,d$$bug& MOVL #1,DBGDTA ;TELL THAT WE GOT HERE$ MOVL R5,DBGDTA+4 ;SAVE OUR UCB ADDR MOVL R3,DBGDTA+8 ; AND I/O PKT 7 MOVL IRP$L_MEDIA(R3),DBGDTA+12 ;STORE BLK NUMBER GIVENS3 MOVL IRP$L_OBCNT(R3),DBGDTA+16 ;ALSO ORIG BYTE CNTA .endc2 CMPL IRP$L_MEDIA(R3),UCB$HFSZ(R5) ;BE SURE LBN OK) BGTRU FATLJ ;IF NOT OK JUST DISMISS I/Or0; HAVE TO BE CAREFUL WHAT WE SHIP TO READ DRIVER ; SEND PKT OFF TO REAL DRIVER...9 ADDL2 UCB$HLBN(R5),IRP$L_MEDIA(R3) ;ADJUST LBN IN IO PKT  .if df,d$$bug MOVL IRP$L_MEDIA(R3),DBGDTA+20E MOVL UCB$HLBN(R5),DBGDTA+24 MOVL UCB$HFSZ(R5),DBGDTA+28 MOVL IRP$L_SEGVBN(R3),DBGDTA+32 .endc;T9; NOW we have to fix up the media address for the host...;; ... otherwise we confuse the heck out of things by makingSD; ... the host (who is expecting a track/sect/cyl number) get reallyI; ... goofy numbers. Cheat by using exec routine after a bit more messup. B; Ideally we should also avoid moving the packet (next) to host ifA; any segmented I/O may occur but ignore that for now; it will beR;; rare and I want to get this working in the 99.9% cases...O7 MOVL UCB$HUCB(R5),IRP$L_UCB(R3) ;FIX UP PTR IN I/O PKTT PUSHL R5 7 MOVL UCB$HUCB(R5),R5 ;NOW POINT AT HOST UCB OURSELVESQ;P PUSHL R0 , MOVL IRP$L_MEDIA(R3),R0 ;GET LBN TO CONVERT* JSB G^IOC$CVTLOGPHY ; LET THE EXEC DO IT ; NOW IRP$L_MEDIA IS FIXED U00LLJH+%O-%TADATADATAP... .if df,d$$bug4 MOVL IRP$L_MEDIA(R3),DBGDTA+36 ;SAVE FOR DEBUG EXAM .endc PUSHL R1E PUSHL R21 PUSHL R3n PUSHL R4F; next op may mess up some regs. Also we cannot access the packet once%; we give it to the host driver thus: 4 JSB G^EXE$INSIOQ ; INSERT PACKET INTO HOST'S QUEUE POPL R4 POPL R3% POPL R2 ; GUARANTEE R0-R5 LEFT ALONE POPL R1 POPL R0 POPL R5#; NOW HAVE OUR OWN UCB ADDRESS BACK A; Here fake out a return. We must NOT allow I/O postprocessing toE@; occur now since host driver will do it, but we have to get the>; driver back ready for more work and see that further pending;; I/O gets called. Most of the time there won't be anything,;; pending since the driver "instantly" disposes of all its'.;; load... SO WE WON'T BOTHER actually trying to recall THISh&; driver; just un-busy it and get out.;pC; add commented-out template code if we want local looping for nextt; packet here...8; remque @ucb$l_ioqfl(r5),r3 ;get next i/o packet if any; bvc 5403$ ;if vc we got oneA ; brb 5454$T;5403$: brw vd_startio;5454$:R% MOVL UCB$L_CRB(R5),R0 ; GET CRB LINK;+ BICB #CRB$M_BSY,CRB$B_MASK(R0) ;UNBUSY CRB;4 BICL #UCB$M_BSY,UCB$L_STS(R5) ;UNBUSY OURSELVES UCB; just go return at low prio JMP G^EXE$QIORETURN402$:; .ENDC. BRW FEXL ;Else, branch to execute function.;E ; UNLOAD and AVAILABLE Functions ; Clear UCB$V_VALID in UCB$W_STS;EUNLOAD:L AVAILABLE:8; BICW #UCB$M_VALID, - ;Clear sofware volume valid bit.; UCB$W_STS(R5),; BRB NORMAL ;Then complete the operation.; ; OPERATON COMPLETION; -FEXL: ; dummy entry ... should never get hereR*NORMAL: ;SUCCESSFUL OPERATION COMPLETE8 MOVZWL #SS$_NORMAL,R0 ;ASSUME NORMAL COMPLETION STATUS BRB FUNCXT ;FUNCTION EXIT!FATALERR: ;UNRECOVERABLE ERROR 2 MOVZWL #SS$_DRVERR,R0 ;ASSUME DRIVE ERROR STATUS8RESETXFR: ; dummy entry ... should never really get here# MOVL UCB$L_IRP(R5),R3 ;GET I/O PKT;5 MNEGW IRP$W_BCNT(R3),UCB$W_BCR(R5) ; RESET BYTECOUNTu ; BRW FUNCXTFUNCXT: ;FUNCTION EXIT& CLRL R1 ;CLEAR 2ND LONGWORD OF IOSB REQCOM ;COMPLETE REQUEST .PAGE; PWRFAIL: ;POWER FAILURE: BICW #UCB$M_POWER,UCB$W_STS(R5) ;CLEAR POWER FAILURE BIT1 MOVL UCB$L_IRP(R5),R3 ;GET ADDRESS OF I/O PACKET 5 MOVQ IRP$L_SVAPTE(R3),- ;RESTORE TRANSFER PARAMETERSn UCB$L_SVAPTE(R5) ;...0$ BRW VD_STARTIO ;START REQUEST OVER .if df,d$$bug&DBGDTA: .BLKL 6 ;AREA TO HOLD DISPLAYS .BLKL 20  .endcVD_INT:: VD_UNSOLNT:: POPR #^M% REI ;DUMMY RETURN FROM ANY INTERRUPTs/VD_END: ;ADDRESS OF LAST LOCATION IN DRIVER, .ENDe V D D R I V E R@ VDDRIVER.MAR and ADVD.MAR (and ADVD.CLD) form a simple virtual &disk system for VMS. The basic use is:D1. Use @ADVD and @VDDRIVER to build the components and load VDDRIVERAas suggested in VDDRIVER.COM, setting MAXUNITS to whatever number is desired.&2. For each VDn: unit you want to use: SET COMMAND ADVD< Create a CONTIGUOUS file of the desired size. Note that theGfile size will be truncated to a multiple of 64 blocks for use purposes@as the driver's "physical" structure is some number of 64-sectortracks, one track per cylinder. Give a command of the form ADVD/ASSIGN VDn: dev:file5 where VDn: is the VD unit you're assigning to, and Cdev:file is the container file to use. Note that the dev: part willgenerally be REQUIRED.= Now you can use VDn: just like a "Real" disk. When done (and VDn: is dismounted), the command= ADVD/DEASSIGN VDn: will get rid of the assignment so you can9associate a different file with the VDn: unit if desired.; You still00LYLK H6%! ! have to INITialize VDn: units if you want to useCthem as file structured; they act like formatted but un-initializedremovable disks otherwise. Why bother?< VD: units can be handy for a variety of reasons, including:: 1. Multiple cluster factors; you don't have to dedicate aBwhole pack to a cluster factor just to avoid waste or inefficiency&where some group needs an extreme one.8 2. Identifiers by volume (for security) can be used for>VD: units to increase the number of security domains available!without buying lots of new packs.; 3. File structures other than ODS-2 can be EASILY handled.4Examples include unix, ODS-1 (RSX), RSTS, RT11, ... =You don't have to dedicate a whole RA81 to make a volume that)contains a 1000 block Ultrix structure...< 4. Volume protections, in addition to file protections, can be varied...< 5. When loading large tapes from other sites (how 'bout SIGEtapes, folks...), you may find it a pain to delete thousands of filesAfrom the new directory trees you created when you need the space.; Well, use a virtual disk! Copy the tape to a VD: unit that>holds it. Now when you're done, just dismount and deassign theAvirtual disk, erase ONE contiguous file, and you're done. Or just7re-INIT the "pack" if you prefer. What could be easier?> 6. Extensions like those in the VE: driver in RSX11M/M+ couldCadd extra security features to protect data even against those withFprivileges like READALL or BYPASS. These are left as exercises for theAreader... (ha ha. Seriously, I hope someone will do a few of themAthough.) Other extensions could be used to logically join severalDsmall disks into a bigger one at the driver level (with invented badAblocks between the physical storage areas) or do other semi-weirdtricks.9 7. Multiple drives can make it harder to browse around aEsystem than one single target drive, or if you want, they can provideEa class of devices where browsing can be permitted. (If your SHOW DEV<shows VD: unit names of PUBLICTOOLS1 thru PUBLICTOOLS9, as aGfor instance, you might assume these VD: units are OK to look at. HandyCin a big engineering community where you want to encourage folks toshare their stuff..A 8. Some time back, someone asked at an Advanced Q+A how to limitDhis sys$scratch on a one drive system. Put it on a virtual disk! NowBit can use the virtual disk, and the rest of his system disk won't!get clobbered by runaway loops...9 I hope this gives the idea. Also I hope the tool will beAusable. It is MINIMALLY tested but looks OK so be careful with itIwhen using at this point. It has gone thru assign, INIT, MOUNT, CREA/DIR,Ccopy both ways, DIR, dismount and deassign. I notice that after the@INIT you need to ADVD/DEASSIGN and then reassign the thing. SomeBextra deassign and reassigns seem to be needed at times. But there;is no ill effect on either your system or the virtual disk.; The driver supports logical I/O and above (no physical I/O=- just like the MSCP disks -) but has some physical structureDdeclared just as a historical thing. The current ADVD forces virtual4disks to be multiples of 64 blocks long due to this.: The main bit of trickery here is that the FDT routines doAnormal disk-like operations within the VD: context for everything:and the startio entry of the driver has some unusual code.; This code modifies the I/O packets to send them off to theCreal driver for read/write operations (but no others) after calling@IOC$CVTLOGPHY on the modified block number to get it to the formBthe "host" driver needs. The VD: code then unbusies the driver andAreturns to VMS. There is a special FDT entry for logical I/O thatIdispatches that directly to the host driver since that seems cleaner thanIthe other entry. I suspect it is not really needed and it's there becauseit started that way. A couple of things:; 1. The container file is NOT protected. DON'T blow it away?while a VD: is active on a container file; you'll mess the file=structure up on the host disk if this is don00LLJH+%O-%TADATADATAe since VD: won't<know the container file is gone; the blocks are still there.<Protect the file yourself if you have doubts! Create it with protection against deletion too.> 2. If you do your ADVD from a .COM file, you'll have a record?of the file-to-disk assignments. DO SO. There's no other record7provided. And yes, such a thing is DARN handy at times.9 3. Don't forget to back up virtual disks. They get fileserased by mistake too." 4. Normally to use a VD: unit you Load VDDRIVER (if not loaded) ADVD/ASSIGN VDn: file Mount VDn: ... use VDn: ... DISM VDn: ADVD/DEASSIGN VDn: Glenn Everhart> There are MANY rough edges here. The most notable is that forElong transfers (over 65535 bytes), the driver doesn't make provisionsFand will give errors. Basically you have to be able to have the systemDreissue qio's and the driver perhaps should check that the bytecountBwill be too big and NOT set the UCB field in the I/O packet to theItarget driver's if so. This may or may not work. In any case, the problemGis rare and the device looks OK on the basis of some testing consistingEof mounting, directory listings and copying files both ways, and lotsof logical I/O.; The final solution to the problem may be the VMS hook thatDsays if the PID field is a system address, that address gets controlDwhen I/O is done. Much messing around with this is possible. Too badRSX didn't have such a hook.< Another rough edge is that while you cannot ADVD/DEASSIGN aAVD: unit while it's mounted, and while ADVD will refuse to do so,EADVD will not give you an error message to indicate it has so refusedFas currently done. This MIGHT get fixed soon. Failure of ADVD to allow'you to create files may also get fixed.D I have left some debug code in the driver mainly as an illustrationGof one way to see what's going on. It stores some numbers in the driverHitself during operation. Since I wanted to debug the driver on a runningFVMS system (and DID so!), I just used this technique to store numbers,Fthen looked at them with SDA to find out what was going on. I also didEa LOT of desk checking the code before giving it control, which savedEme from system crashes and made bringing the driver up fairly simple.DI realize that the trick of storing numbers for inspection by SDA isKsimpleminded, but thought there may be those who wouldn't think of it rightoff...? All and sundry are invited to improve this driver. While messy,it works and I hope will do folks some good. Glenn EverhartEverhart%Arisia@RCA.COM 609 338 6022 Glitches: In setting up a virtual disk:< 1. Create the desired file. Remember size gets truncated to a multiple of 64 blocks.6 2. Use ADVD/ASSIGN to assign the file to a VDn: unit. 3. INIT the disk.8 4. Use ADVD/DEASSIGN to deassign the VDn: unit and THEN' use ADVD/ASSIGN again to reassign it. 5. Now mount the disk and use.EThe extra ADVD/DEASSIGN and ADVD/ASSIGN is only needed after the INIT<operation. Reason is obscure but it seems a harmless effect.9 If you have a VDn: unit mounted, ADVD/DEASSIGN will NOT Fdeassign the unit but won't give any error messages. Use SHOW DEV VDn:9to ensure the unit has gone offline to show it really got deassigned.@$! My version will extract definitions from one of three places,Q$! a command table file, your current process tables, or from an arbitrary image.P$! That last is a bit strange, so, heres an example (it's a feature I added just5$! a few days ago on a whim, so it's not documented).4$! $ VERB/IMAGE=imagename/SYMBOL=symbolname *P$! For instance, theres an smg internal cld at SMG$$AB_DEFKEY_CLD, so, to access*$! it, you would need to do the following:%$! (choose your language here)=$!00LYLK H6%! ! declare SMG$$AB_DEFKEY_CLD as an external function$! (end of program)$! (compile program)$! Create an options file like:$! TEST.OPTJ$! TEST.OBJ ! include the image (suppose it was called test)&$! UNIVERSAL=SMG$$AB_DEFKEY_CLDK$! and do LINK/SHARE TEST/OPT, to create TEST.EXE, then you need to defineM$! TEST to point to the program TEST (because of LIB$FIND_IMAGE_SYMBOL, which-$! expects things in SYS$SHARE) and then say:0$! $ VERB/IMAGE=TEST/SYMBOL=SMG$$AB_DEFKEY_CLD *$!L$! Anyway, everything else is documented that is, if the last message-$! which had the sources in it go out okay...$!J$! Well, I guess a few more people are interested in VERB (aka CLEXD$! for VMS 4.0) this time around, so, I'm posting the sources to it.F$! Just save this as MAKEVERB.COM and execute it (from within an empty%$! directory to make things simple..)F$! I wrote this last summer, and it contains many kludges to beI$! sure, but, it works! I haven't had a problem with it, and I've rebuiltI$! the entire command tables with it as a check. You can look at VERB.CLDG$! to see the possible options, and VERB accepts wildcarded verb names,H$! i.e. VERB/LIST B* would list all verbs starting with B. VERB B* wouldA$! display the command definitions for all verbs starting with B.$!K$ write sys$output "This command procedure will create the necessary files"C$ write sys$output "to create VERB, it will also compile, link and"-$ write sys$output "define the VERB command."$ copy:=copy/log$copy sys$input COMPILE.COM$deckL$ ! This command procedure reads a data file, with lines like the following:L$ ! Source name, object name, compile command, link options, required files?$ ! where source name is the name of the file to be acted uponA$ ! Object name is the name of the file to compare dates againstL$ ! compile command is the actual command to use to produce the object file=$ ! link options are options to be added to the link commandD$ ! required files is a list of files, seperated by "/" whose dates:$ ! are checked also to see if recompilation is necessary$ !G$ ! Parameters to this command procedure are concatenated together, and#$ ! then seperated again via commas"$ ! 1 = command file to read from$ ! 2 = compile options$ ! 3 = global link optionsO$ ! So that, you could say @COMPILE "file,/debug,/exe=[-.exe]" and the "/debug"M$ ! option would affect all compiles, and the /exe=[-.exe] would of course be$ ! added to the link command.M$ ! Currently theres no method for determining wether an option is applicableL$ ! to all files, i.e. /DEBUG doesn't work to well if one of the "compilers".$ ! happens to be the librarian (i.e. in VERB)$ ! $ err=0!$ if p1.nes."" then goto got_file$get_p1:7$ if err then write sys$output "compile file not found"$ tmp=f$search("*.COMPILE").$ if tmp.nes."" then tmp=f$parse(tmp,,,"NAME")%$ inquire p1 "control file <''tmp'> "$ if p1.eqs."" then p1=tmp $got_file:$ p1=p1+p2+p3+p4+p5+p6+p7+p8$ p1=f$edit(p1,"UNCOMMENT")8$ file=f$search(f$parse(f$element(0,",",p1),".COMPILE"))!$ if file.nes."" then goto cntnue$ err=1 $ goto get_p1$!$cntnue:$ comp_opt=f$element(1,",",p1)&$ if comp_opt.eqs."," then comp_opt=""$ link_opts=f$element(2,",",p1)($ if link_opts.eqs."," then link_opts=""$!$ on control_y then goto end$ on severe then goto end$ open/read files 'file'$ file_list=""$compile_loop:"$ read/end=link_section files line$10$:D$ ! if last character on line is "-" then concatenate with next line$ line=f$edit(line,"TRIM")A$ if (f$extract(f$length(line)-1,1,line) .nes. "-") then goto 20$$ read/end=20$ files nextlineC$ line=f$edit(f$extract(0,f$len(line)-1,line),"UNCOMMENT")+nextline $ goto 10$$20$:$ line=f$edit(line,"UNCOMMENT")'$ if line.eqs."" then goto compile_loop $ src_file=f$element(0,",",line) $ obj_file=f$element(1,",",line)&$ if obj_file.eqs."," then obj_file=""%$ obj_file=f$parse(obj_file,src_fi00LLJH+%O-%TADATADATAle)$ compile=f$element(2,",",line)$$ if compile.eqs."," then compile="" $ link_opt=f$element(3,",",line)&$ if link_opt.eqs."," then link_opt="" $ includes=f$element(4,",",line)&$ if includes.eqs."," then includes="" $ include=0$!/$ if compile.eqs."" then goto do_not_compile_it:$ if "''f$search(obj_file,1)'".eqs."" then goto compile_it5$ src_rdt=f$cvtime(f$file_attributes(src_file,"RDT"))5$ obj_rdt=f$cvtime(f$file_attributes(obj_file,"RDT"))-$ if obj_rdt.les.src_rdt then goto compile_it0$ if includes.eqs."" then goto do_not_compile_it$includes_loop:*$ inc_file=f$element(include,"/",includes)1$ if inc_file.eqs."/" then goto do_not_compile_it5$ inc_rdt=f$cvtime(f$file_attributes(inc_file,"RDT"))-$ if inc_rdt.gts.obj_rdt then goto compile_it$ include=include+1$ goto includes_loop $compile_it:7$ write sys$output "''compile' ''comp_opt' ''src_file'"$ 'compile 'comp_opt' 'src_file$do_not_compile_it:2$ if link_opt.eqs."%NOLINK" then goto compile_loop-$ if "''link_file'".nes."" then goto add_name-$ link_file="LINK"+f$getjpi("","PID")+".COM;"'$ on control_y then goto err_close_link$$ on severe then goto err_close_link$ open/write linkcom 'link_file'$ write linkcom "$ Link ''link_opts' -"3$ write linkcom " ''obj_file' ''link_opt' -"$ goto compile_loop $add_name:3$ write linkcom " ,''obj_file' ''link_opt' -"$ goto compile_loop$link_section:$ write linkcom ""$ close linkcom$ type 'link_file $ @'link_file$ delete 'link_file$end: $ close files$ exit$err_close_link: $ close files$ close linkcom$EOD$copy sys$input BLURB.TXT$deckA VERB is a program to extract verb definitions from eitherMyour process space or a command table file (such as SYS$SHARE:DCLTABLES.EXE).IThese verb definitions can then be changed and recompiled via the commandKdefinition utility, SET COMMAND. This program is similar to the 3.n programHCLEX, except that it works with version 4.n command tables. This programIis a must if you need to change verb definitions, or if you just hate theDDEC defaults (getting tired of HELP/PAGE, or LINK creating maps whenexecuted from a batch job?).D VERB allows you to do wildcard searches for verbs (commands)Kand lists of verbs, such as VERB A*,B*,%%% (which would return all the verbNdefinitions for commands that start with A, B, and all three letter commands).O You can specify a table to search for the verb, or even to search your Oprocess space. The command defaults to searching your process space, but if youBenter VERB/TABLE it will default to using the system command tableMSYS$SHARE:DCLTABLES, you can of course specify a table other than that, as inIVERB/TABLE=MY_OWN_TABLE, note that it uses SYS$SHARE:DCLTABLES.EXE as the'default file name in an RMS $OPEN call.: VERB allows you to put the output in a file, as inHVERB/OUTPUT=filename, VERB also can list available verbs (commands), w/oFthe verb definition, as in VERB/LIST/ALL, and note the /ALL qualifier. restrictions:N Well, it hasn't been tested with MCR tables.I wouldn't be surprised ifit didn't like them.N When extracting several verbs at a time the verbs may reference commonOTYPE defnitions, in these cases only one is output, this only becomes a problem9if you cut up the output file into several smaller files.H When extracting several verbs (such as BASIC,MACRO,FORTRAN) theyLmay each reference a TYPE defnition that is different for each verb, but hasNthe same name. Since the TYPE definitions are actually different each one willIbe included in the file, but the CDU will not appreciate having similarlyKnamed TYPE definitions. In such cases simply extact the verbs into seperatefiles.$EOD$copy sys$input BUFFER.MAR$deck .title buffer routines!; VERB Version 1.0 June 1st, 19853; Written by Joe Meadows Jr., with thanks to the3; Fred Hutchinson Cancer Research Center for kindly4; allowing me to use their computing resource00LYLK H6%! !s.;3; If you have any questions, comments, ideas, or1; whatever, feel free to contact me via US Mail :; Joe Meadows Jr.; 4841 268th Ave. N.E.; Redmond Wa. 98052; or via phone : (206) 827-7296, .psect _clex_local rd,wrt,noexe _clex_desc:: _clex_pos:: .long .long _clex_buffer _clex_buffer: .blkb 512, .psect _clex_code rd,nowrt,exe .entry put_output,0E tstl _clex_pos ; is there really anything to output?C beql 5$ ; don't bother to output empty line pushaq _clex_desc3 calls #1,@clex_output ; output the buffer blbc r0,10$J clrl _clex_pos ; clear the buffer, if successfully output5$: movl #1,r0 10$: ret- .entry add_to_buffer,^m" ; 4(ap) = pointer to ascic movl 4(ap),r4 movzbl (r4),r5 incl r4 brb _add_buffer3 .entry add_to_buffer_trunc,^m" ; 4(ap) = pointer to ascic' ; 8(ap) = length to truncate to movl 4(ap),r4 movzbl (r4),r5 incl r4 cmpl r5,8(ap) blss _add_buffer movl 8(ap),r5 _add_buffer:' subl3 _clex_pos,clex_width,r2 cmpl r5,r2 bleq 20$P calls #0,put_output ; output string if it whats to be added wont fit blbc r0,30$ brb _add_buffer20$: movl _clex_pos,r3 addl r5,_clex_pos( movc3 r5,(r4),_clex_buffer(r3) movl #1,r0 30$: ret .end$EOD$copy sys$input CLEXLIB.MAR$deck .title macro routines!; VERB Version 1.0 June 1st, 19853; Written by Joe Meadows Jr., with thanks to the3; Fred Hutchinson Cancer Research Center for kindly4; allowing me to use their computing resources.;3; If you have any questions, comments, ideas, or1; whatever, feel free to contact me via US Mail :; Joe Meadows Jr.; 4841 268th Ave. N.E.; Redmond Wa. 98052; or via phone : (206) 827-7296 .macro add_ascic,thing pushl thing" calls #1,g^add_to_buffer .endm add_ascic2 .macro add_ascic_trunc,thing,leng,?l1,?l2 pushl leng pushl thing( calls #2,g^add_to_buffer_trunc .endm add_ascic_trunc .macro add_string,thing push_string " calls #1,g^add_to_buffer .endm add_stringF .macro case,src,displist,type=w,limit=#0,nmode=s^#,?base,?max8 case'type src,limit,nmode'</2-1>base: .irp ep, .word ep-base .endrmax: .endm case, .macro push_string text,?l1,?l2 .save+ .psect _clex$strings,exe,nowrt,picl1: .ascic text .restore pushal l1 .endm push_string$ .macro string text,?l1,?l2 .save+ .psect _clex$strings,exe,nowrt,picl1: .ascic text .restore .long l1 .endm string$EOD$copy sys$input CLITABLE.TXT$deck! CLI Table Blocks<! Each block begins with a standard header, as follows0! +------------------------------+0! | subtype | type | length |0! +------------------------------+0! | TRO Count | Flags |0! +------------------------------+P! all references to other blocks are made via Table relative offsets (TRO)K! the TRO count specifies how many such references there are, and theM! reference longwords always follow the header immediately. The rest ofJ! each block contains other information necessary for the definitionJ! of the item.Following the fixed portion of the block is a variableJ! portion, which contains any variable len00LLJH+%O-%TADATADATAgth strings. Each of theseF! strings is referenced from the fixed portion of the block by a(! word Block relative offset (BRO)6! These are the valid block types starting at 1.3! vector Vector (root) block-! command Command block*! type Type block,! entity Entity block0! expression Expression block4! cdu_visited for CDU internal use !vector blockI! the primary vector block appears at the beginning of a CLI table,D! and contains references to all other blocks and block lists.!/! standard header, valid subtypes starting at 1 ! DCL ! MCR ! Verb! commandB! flags - broken into two bytes, low byte contains structure level !Two TRO's,&! verbtbl TRO of verb name table2! comdptr TRO of command block pointer tableI!the verb name table is composed of the standard header, followed by oneD! longword for each verb or synonym, the longword contains the firstA! four characters of the verb name padded with nulls as necessaryD!the command block pointer table is composed of the standard header,A! followed by one longword for each entry in the verb table. This?! longword contains the TRO of the corresponding command block.!!command block!K! a command block is used to define a verb or a syntax change brought aboutG! by a parameter or qualifier. There is one command block for each verbF! (but not its synonyms), and one for each syntax change within a verb!/! standard header, valid subtypes starting at 1 ! verb! syntax(! flags --bits, starting at zero I guess! abbrev! nostat! foreign ! immed! mcrparse ! parms ! quals! disallows !TRO's --4! parms TRO of first parameter, Entity block! max parms=8&! quals TRO of first qualifierB! disallows TRO of top-level disallow boolean Expression block8!HANDLER (byte) How does CLI handle verb (starting at 0)! none It doesn't! cli Calls a cli routine! user calls a user routine! image imvokes an image! same same handling as verb!PARMCNT Two nibbles (1 byte)! MINPARM first four bits ! MAXPARM second four bits=!VERBTYP (byte) Verb type code for use with old CLI interface !PAD (byte)'!NAME (word) BRO of verb or syntax name/!IMAGE (word) BRO of routine or image reference#!OUTPUTS (word) BRO of outputs list#!PREFIX (word) BRO of prefix string! -- end of fixed portion --! variable section --! Max sizes --! max_name = 1+31! max_image= 64! max_outputs=1+7! max_prefix=1+31F!--folowing the fixed portion, the verb names are stored as a sequenceH! of ascic strings within an overall ascic string, or the syntax name is"! stored as a single ascic string.5! the routine or image reference is stored as follows4! CLI routine Routine name as ascic stringC! user routine longword routine address, then ascic string$! image ascic stringJ! outputs list consists of a counted sequence of bytes. each byte containsE! either the negation of the parameter number or the qualifier number0! the prefix string is stored as an ascic string! !TYPE block!D! a type block is used as a header of a chain of entity blocksD! that describe TYPE keywords there is one TYPE block for each&! user specified type definition!/! standard header, valid subtypes starting at 1t ! type !no flags!TRO ..p1! keywrds TRO of first keyword entity blocks !NAME (word) BRO of type name$!Prefix (word) BRO of prefix string!-- end of fixed --iH!-- following the fixed portion the type name is stored as ascic string,! so is the prefix stringI!E !Entity blockO!yM! an entity block is used to define each parameter, qualifier, and datasJ! type keyword. These blocks are liked off the command block for theJ! verb, in the c00LYLK H6%! !ase of parameters and qualifiers, or off of the type,! block, in the case of type keywords.!c/! standard header, valid subtypes starting at 1! parameterT! qualifierJ! keyword !flags, bits starting at 0 ..d(! val can take a value/! neg can be replaced with noE*! deftrue present by default3! batdef present by default if batch_+! valreq a value is requiredE/! list can be a list of values$2! concat can be a concatenated list2! impcat implicit concatenated list(! verb global placement?! parm local placement (both means positional) )! mcroptdelim MCR SET UIC kluger/! mcrignore MCR ignores this entity !e!TROss(! NEXT TRO of next entity block2! SYNTAX TRO of syntax change command block(! USER_TYPE TRO of user defined type@!NUMBER (byte) Entity number. Cli should only use for parameters,!VALTYP (byte) Value type, starting at zero,'! user_defined defined by userY'! infile input file speco(! outfile output file spec'! number decimal integerd$! privilege priv keyword!! datetime date/timef'! protection protection spec$! process process name*! inlog input logical name+! outlog output logical namel)! insym input symbol name"*! outsym output symbol name(! node DECnet node spec(! device node/device spec)! dir node/dev/dir specc ! uic UIC spec,! restofline rest of command line+! parenvalue parenthesized valued%! file any file spec .! expression general DCL expression/! test1 Three hooks for testingt ! test2 ! test3n ! acl ACL spec"!NAME (word) BRO of entity name4!LABEL (word) BRO of label used to retrieve entity'!PROMPT (word) BRO of parameter prompts1!DEFVAL (word) BRO of parameter default value(s)o! --max sizes -- ! Name=1+31r ! label=1+31 ! prompt=1+31a ! defval=1+95!-- end of fixed portion--O!-- following the fixed portion are the Name, Label, Prompt and default values,cO! stored as ascic strings. The default values are stored as a sequence of ascica+! strings, within the overall ascic string.d! !expression blocke!oN! an expression block is used to represent, within a boolean expression,M! one operator and its operands. The operands are themselves expressionfP! blocks, either subexpressions or paths. Paths represent the hierarchical=! path to an entity whose presence is to be determined.t!y/! standard header, valid subtypes starting at 1h! path entity path"! not boolean NOTE! any2 " ANY2! and " ANDt! or " OR! xor " XOR1! neg " NEGi! no flags defined !TR0 Count'! operand_list character length 0 tag le!(max 8 entities)r$EOD$copy sys$input COMMAND.MAR$decko" .title print command block!; VERB Version 1.0 June 1st, 1985t3; Written by Joe Meadows Jr., with thanks to thei3; Fred Hutchinson Cancer Research Center for kindlyv4; allowing me to use their computing resources.;=3; If you have any questions, comments, ideas, ore1; whatever, feel free to contact me via US Mail : ; Joe Meadows Jr.e; 4841 268th Ave. N.E.; Redmond Wa. 98052n; or via phone : (206) 827-7296  .library 'clexlib'8 .entry clex_print_command,^m* ; 4(ap) = address of command block movl 4(ap),r6,5$: bitw #cmd_m_parms,cmd_w_flags(r6) beql 10$l tstl cmd_l_parms(r6)l beql 10$q0 addl3 clex_table,cmd_l_parms(r6),-(sp)' 00LLJH+%O-%TADATADATA calls #1,clex_evaluate_entityi,10$: bitw #cmd_m_quals,cmd_w_flags(r6) beql 20$" tstl cmd_l_quals(r6)n beql 20$d0 addl3 clex_table,cmd_l_quals(r6),-(sp)' calls #1,clex_evaluate_entitym!20$: movzwl cmd_w_name(r6),r7i addl r6,r7j4 case cmd_b_subtype(r6),type=b,limit=#1,<- _verb,-c _syntax>! movl #0,r0 ; invalidR reto0_verb: add_string <'define verb '> 3 movzbl (r7),r2 ; save size of entire thingp8 movzbl 1(r7),r3 ; save size of verb name._verb1: incl r7 ; point to first ascic add_ascic_trunc r7,r3i@ decl r2 ; subtract off extra byte for count byte9 movzbl (r7),r4 ; assume verb bigger than synonymr6 cmpb (r7),r3 ; is synonym bigger than verb? bleq _verb27 movzbl r3,r4 ; if so it got truncated by CDU < add_string <' !! warning, synonym truncated'>_verb2: calls #0,g^put_outputt7 subb r4,r2 ; subtract off printed portion.e beql _verb3 addl r4,r7p tstb 1(r7)f? beql _verb1 ; if zero length string , skip to next. ' add_string <' synonym '>o brb _verb1_verb3: brb _continue _syntax:* add_string <'define syntax '> add_ascic r7 _continue: calls #0,put_output'" movzwl cmd_w_image(r6),r7 addl r6,r7x" clrl _clex_handler_flag4 case cmd_b_handler(r6),type=b,limit=#0,<-, _print_prefix,- ; no handler _handler_cli,- _handler_user,-a _handler_image,- _handler_same>) movl #0,r0 ; invalid handlerh rete _handler_cli: * add_string <' cliroutine '> add_ascic r7 brw _print_cliflagsm_handler_user:' add_string <' routine '>e add_ascic r7 brw _print_cliflagsn_handler_image:E% add_string <' image '>f add_ascic r7 brw _print_cliflagss_handler_same:% movl #1,_clex_handler_flag  brw _print_cliflagsn_print_cliflags:7 bitw #^x1F,cmd_w_flags(r6) ; any cliflags?l bneq _cliflags_cli1 calls #0,g^put_output  brw _print_prefixr_cliflags_cli1:T clrq r4) add_string <' , cliflags ('>" moval table_cli_flags,r3_cliflags_cli2:m1 bbc r4,cmd_w_flags(r6),_cliflags_cli4r tstl r5 beql _cliflags_cli3 add_string <','>s_cliflags_cli3:A incl r5 add_ascic (r3)[r4]_cliflags_cli4:E$ aobleq #4,r4,_cliflags_cli2 add_string <')'>e calls #0,g^put_outputr_print_prefix:# movzwl cmd_w_prefix(r6),r7T beql _print_parms addl r6,r7& add_string <' prefix '> add_ascic r7 calls #0,g^put_output. _print_parms:t, bitw #cmd_m_parms,cmd_w_flags(r6) beql _print_quals tstl cmd_l_parms(r6)u bneq _print_parms_1+ add_string <' noparameters'>l calls #0,g^put_outputt brb _print_quals_print_parms_1:R0 addl3 clex_table,cmd_l_parms(r6),-(sp)$ calls #1,clex_print_entity_print_quals: , bitw #cmd_m_quals,cmd_w_flags(r6) beql _print_disallows tstl cmd_l_quals(r6)c bneq _print_quals_1+ add_string <' noqualifiers'>h calls #0,g^put_outputE brb _print_disallows_print_quals_1:t0 addl3 clex_table,cmd_l_quals(r6),-(sp)$ calls #1,clex_print_entity_print_disallows: 0 bitw #cmd_m_disallows,cmd_w_flags(r6) beql _print_outputs" tstl cmd_l_disa00LYLK H6%! !llow(r6) beql _print_outputs( add_string <' disallow '> pushl r63 addl3 clex_table,cmd_l_disallow(r6),-(sp)h' calls #2,clex_print_disallows  calls #0,g^put_output brb _print_outputs_print_outputs:e clrl r5: movzwl cmd_w_outputs(r6),r3 ; BRO outputs list beql _end_of_command C addl r6,r3 ; point to ascic of outputst+ movzbl (r3),r4 ; number of outputseD beql _end_of_command ; see if there is indeed any outputs incl r3' add_string <' outputs('> brb _print_continue _print_out_loop: add_string <','> _print_continue: movb (r3)[r5],r2f blss _print_out_parmlO addl3 clex_table,cmd_l_quals(r6),r7 ; r7 is address of first entity brb _get_entity_loop_print_out_parm: mnegb r2,r2)- addl3 clex_table,cmd_l_parms(r6),r7b_get_entity_loop:e decb r2" beql _print_this_output, addl3 clex_table,ent_l_next(r7),r7 brb _get_entity_loop_print_this_output:o" movzwl ent_w_label(r7),r2 addl r7,r2) add_ascic r2% aoblss r4,r5,_print_out_loopf add_string <')'>  calls #0,g^put_outputr_end_of_command: ret . .psect string_table rd,nowrt,noexetable_cli_flags: string <'abbreviate'> string <'nostatus'> string <'foreign'>  string <'immediate'>  string <'mcrparse'> .end$EOD$copy sys$input DISALLOWS.MAR $deck$ .title print disallows block!; VERB Version 1.0 June 1st, 19853; Written by Joe Meadows Jr., with thanks to theo3; Fred Hutchinson Cancer Research Center for kindlyo4; allowing me to use their computing resources.;u3; If you have any questions, comments, ideas, or 1; whatever, feel free to contact me via US Mail :e; Joe Meadows Jr. ; 4841 268th Ave. N.E.; Redmond Wa. 98052A; or via phone : (206) 827-72965 .library 'clexlib'#_clex_l_bracket: string '<'n#_clex_r_bracket: string '>'a, .psect _clex_code rd,nowrt,exe: .entry clex_print_disallows,^m, ; 4(ap) = address of disallows block movl 4(ap),r6& movzwl exp_w_tro_count(r6),r3) moval exp_l_operand_list(r6),r2 4 case cmd_b_subtype(r6),type=b,limit=#1,<- _path,-_ _not,- _any2,-w _and,- _or,-p _xor,- _neg>_path: clrl r4" tstl _clex_handler_flag beql _path2= addl3 clex_table,(r2)[r4],-(sp) ; this entity % calls #1,g^clex_find_entityg cmpl r0,8(ap) beql _path2 movl r0,r71C beql _path2 ; hmm... How strange, it couldn't find it..2 movl r7,r1 / cmpb #block_k_command,cmd_b_type(r1)c bneq 10$s! movzwl cmd_w_name(r1),r7e- cmpb #cmd_k_verb,cmd_b_subtype(r1)T bneq 20$  incl r7 brb 20$iK10$: cmpb #block_k_type,type_b_type(r1) ; let's assume this is true- bneq _path2" movzwl type_w_name(r1),r720$: addl r1,r7-' add_ascic _clex_l_bracketo add_ascic r7' add_ascic _clex_r_bracket- brb _path2_path1: add_string <'.'> &_path2: addl3 clex_table,(r2)[r4],r5" movzwl ent_w_label(r5),r1 addl r5,r1n add_ascic r1 aoblss r3,r4,_path1 brw _dis_end_and:  clrl r4 add_string <'('>o brb _and2 !_and1: add_string <' and '>o_and2: pushl 8(ap) ) addl3 clex_table,(r2)[r4],-(sp)n' call00LLJH+%O-%TADATADATAs #2,clex_print_disallows aoblss r3,r4,_and1  add_string <')'>l brw _dis_end_or: clrl r4 cmpl r3,#1i beql _or2 add_string <'('>  brb _or2 _or1: add_string <' or '>_or2: pushl 8(ap) ) addl3 clex_table,(r2)[r4],-(sp) ' calls #2,clex_print_disallowsk aoblss r3,r4,_or1 cmpl r3,#1 beql _or3 add_string <')'>_or3: brw _dis_end_xor:  clrl r4 add_string <'('>e brb _xor2s!_xor1: add_string <' xor '> _xor2: pushl 8(ap)n) addl3 clex_table,(r2)[r4],-(sp)' calls #2,clex_print_disallows aoblss r3,r4,_xor1r add_string <')'>o brw _dis_end_not: clrl r4 add_string <'not'> _not1: add_string <' '>r pushl 8(ap) ) addl3 clex_table,(r2)[r4],-(sp)o' calls #2,clex_print_disallowso aoblss r3,r4,_not1i; add_string <')'>  brw _dis_end_neg:a clrl r4 add_string <'(neg'>_neg1: add_string <' '> _neg2: pushl 8(ap)d) addl3 clex_table,(r2)[r4],-(sp) ' calls #2,clex_print_disallowsn aoblss r3,r4,_neg1m add_string <')'>c brw _dis_end_any2: clrl r4! add_string <'any2('>. brb _any22_any21: add_string <','>i_any22: pushl 8(ap)o) addl3 clex_table,(r2)[r4],-(sp)t' calls #2,clex_print_disallows  aoblss r3,r4,_any21 add_string <')'>  brw _dis_end _dis_end:t reto .end$EOD$copy sys$input ENTITY.MAR$deck! .title print entity block!; VERB Version 1.0 June 1st, 1985r3; Written by Joe Meadows Jr., with thanks to the 3; Fred Hutchinson Cancer Research Center for kindlyf4; allowing me to use their computing resources.;y3; If you have any questions, comments, ideas, or 1; whatever, feel free to contact me via US Mail :a; Joe Meadows Jr.g; 4841 268th Ave. N.E.; Redmond Wa. 98052C; or via phone : (206) 827-7296R .library 'clexlib': .entry clex_print_entity,^m) ; 4(ap) = address of entity block movl 4(ap),r6 moval table_types,r4$ movzbl ent_b_subtype(r6),r5 decl r5 blss 10$w cmpl r5,#3n blss 20$d10$: clrl r0 ret20$: add_string <' '> add_ascic (r4)[r5] add_string <' '>l! movzwl ent_w_name(r6),r7a addl r6,r7u add_ascic r7 movl r7,r8r# movl ent_l_syntax(r6),r7  beql _label& add_string <' , syntax='> addl clex_table,r7t! movzwl cmd_w_name(r7),r5g addl r7,r5  add_ascic r5_label:s" movzwl ent_w_label(r6),r7 beql _promptc addl r6,r7q movzbl (r8),r0  movzbl (r7),r1gK cmpc5 r0,1(r8),#^a' ',r1,1(r7) ; see if other that defaults beql _promptg% add_string <' , label='>b add_ascic r79 movl r7,r8 ; prompt defaults to label right?d_prompt:# movzwl ent_w_prompt(r6),r7r beql _ent_neg addl r6,r7, movzbl (r8),r0a movzbl (r7),r1fK cmpc5 r0,1(r8),#^a' ',r1,1(r7) ; see if other than defaultr beql _ent_neg' add_string <' , prompt="'>n add_ascic r7 add_string <'"'>m _ent_neg:  calls #0,g^put_outputf$ movzbl ent_b_subtype(r6),r5 cmpl r5,#2sE beql _ent_neg1 ; default for qualifiers is negatableo3 bbc #ent_v_neg,ent_w_flags(r6),_ent_deft+ add_string 00LYLK H6%! !<' negatable'>n calls #0,g^put_output brb _ent_def _ent_neg1:3 bbs #ent_v_neg,ent_w_flags(r6),_ent_defg. add_string <' nonnegatable'> calls #0,g^put_outputa _ent_def:.7 bbc #ent_v_deftrue,ent_w_flags(r6),_ent_bat ) add_string <' default'>  calls #0,g^put_outputu _ent_bat: 6 bbc #ent_v_batdef,ent_w_flags(r6),_ent_val' add_string <' batch'>  calls #0,g^put_outputf _ent_val: 4 bbs #ent_v_val,ent_w_flags(r6),_ent_val1 brw _ent_cliflagsn _ent_val1:' add_string <' value'>e clrl r79 bbc #ent_v_valreq,ent_w_flags(r6),_ent_impcatc& add_string <' (required'> incl r7 _ent_impcat:7 bbc #ent_v_impcat,ent_w_flags(r6),_ent_listb tstl r7 bneq _ent_impcat1 add_string <' ('> incl r7 brb _ent_impcat2 _ent_impcat1:s add_ascic comma) _ent_impcat2:a" add_string <'impcat'> _ent_list:7 bbc #ent_v_list,ent_w_flags(r6),_ent_concat  tstl r7 bneq _ent_list1 add_string <' ('> incl r7 brb _ent_list2 _ent_list1:a add_ascic comma _ent_list2:s add_string <'list'>9 bbs #ent_v_concat,ent_w_flags(r6),_ent_defval * add_string <',noconcatenate'> _ent_concat:9 bbc #ent_v_concat,ent_w_flags(r6),_ent_defvalo tstl r7 bneq _ent_concat1 add_string <' ('> incl r7 brb _ent_concat2 _ent_concat1:  add_ascic commae _ent_concat2:e' add_string <'concatenate'> _ent_defval:# movzwl ent_w_defval(r6),r5i beql _ent_typen addl r6,r5s tstl r7 bneq _ent_defval1 add_string <' ('> incl r7 brb _ent_defval2 _ent_defval1:t add_ascic commaf _ent_defval2:r% add_string <'default="'>p clrl r33 movzbl (r5),r2 ; save size of entire thing- _ent_defval3: . incl r5 ; point to first ascic@ decl r2 ; subtract off extra byte for count byte movzbl (r5),r4P tstl r3 beql _ent_defval4 add_ascic commar _ent_defval4:e add_ascic r5 incl r37 subb r4,r2 ; subtract off printed portion.o beql _ent_defval5 addl r4,r5s brb _ent_defval3 _ent_defval5:T add_string <'"'>e _ent_type:! tstb ent_b_valtype(r6)p bneq _ent_type1& movl ent_l_user_type(r6),r5 bneq _ent_type00n brw _ent_end_val _ent_type00: addl clex_table,r5 " movzwl type_w_name(r5),r4 addl r5,r4  tstl r7 bneq _ent_type0 incl r7 add_string <' ('> brb _ent_type01i _ent_type0:d add_ascic commai _ent_type01:! add_string <'type='> add_ascic r4 brb _ent_end_val _ent_type1:d tstl r7 bneq _ent_type2 incl r7 add_string <' ('> brb _ent_type3 _ent_type2:f add_ascic commau _ent_type3:m! add_string <'type='>h$ moval table_value_types,r1$ movzbl ent_b_valtype(r6),r2 decl r2 add_ascic (r1)[r2] _ent_end_val:. tstl r7 beql _ent_end_val1) add_string <')'>'_ent_end_val1: calls #0,g^put_output<_ent_cliflags:B bitw #ent_m_mcroptdelim!ent_m_mcrignore,ent_w_flags(r6) beql _ent_positionp clrl r7, add_string <' cliflags ('>A bbc #ent_v_mcroptdelim,ent_w_flags(r6),_ent_cliflags1p' add_string 00LLJH+%O-%TADATADATA <'mcroptdelim'>v incl r7_ent_cliflags1:d? bbc #ent_v_mcrignore,ent_w_flags(r6),_ent_cliflags3m tstl r7 beql _ent_cliflags2 add_ascic commas_ent_cliflags2: % add_string <'mcrignore'>o_ent_cliflags3:r add_string <')'> calls #0,g^put_output,_ent_position:5 bbc #ent_v_parm,ent_w_flags(r6),_ent_pos2, add_string <' placement='>5 bbc #ent_v_verb,ent_w_flags(r6),_ent_pos1& add_string <'positional'> brb _ent_pos2l _ent_pos1:! add_string <'local'>r _ent_pos2: calls #0,g^put_output ! movl ent_l_next(r6),r0  beql 10$t# addl3 clex_table,r0,-(sp)$ calls #1,clex_print_entity 10$: rety. .psect string_table rd,nowrt,noexecomma: string <','>l table_types: string <'parameter'>  string <'qualifier'>  string <'keyword'>ntable_value_types: string <'$infile'>o string <'$outfile'> string <'$number'>i string <'$privilege'> string <'$datetime'>  string <'$protection'>v string <'$process'> string <'$inlog'> string <'$outlog'>o string <'$insym'> string <'$outsym'>s string <'$node'>  string <'$device'>  string <'$directory'> string <'$uic'>! string <'$rest_of_line'>m( string <'$parenthesized_value'> string <'$deltatime'>" string <'$quoted_string'> string <'$file'>  string <'$expression'>r string <'$$test1'>i string <'$$test2'>u string <'$$test3'>l string <'$acl'> .end$EOD$copy sys$input EVALENTITY.MAR$deck ? .title evaluate entity, to print out TYPEs and SYNTAX'st!; VERB Version 1.0 June 1st, 1985 3; Written by Joe Meadows Jr., with thanks to the 3; Fred Hutchinson Cancer Research Center for kindlyi4; allowing me to use their computing resources.;i3; If you have any questions, comments, ideas, or 1; whatever, feel free to contact me via US Mail :g; Joe Meadows Jr. ; 4841 268th Ave. N.E.; Redmond Wa. 98052t; or via phone : (206) 827-7296 , .psect _clex_local rd,wrt,noexe_clex_eval_count:: .longl _clex_evals::l .blkl 4096_clex_ents_count:: .longc _clex_ents:: .blkl 4096, .psect _clex_code rd,nowrt,exe4 .entry clex_evaluate_entity,^m movl 4(ap),r2 moval _clex_evals,r3 _evaluate:# tstl ent_l_user_type(r2)t beql 10$i1 addl3 clex_table,ent_l_user_type(r2),r4 1 addl3 type_l_keywords(r4),clex_table,r44 clrl r1 tstl _clex_eval_count beql 5$3$: cmpl r4,(r3)[r1]  beql 10$r& aoblss _clex_eval_count,r1,3$5$: movl r4,(r3)[r1] incl _clex_eval_count pushl r4' calls #1,clex_evaluate_entity4 addl3 clex_table,ent_l_user_type(r2),-(sp)" calls #1,clex_print_type 10$: tstl ent_l_syntax(r2) beql 20$t. addl3 clex_table,ent_l_syntax(r2),r4 clrl r1 tstl _clex_eval_count beql 15$t13$: cmpl r4,(r3)[r1]l beql 20$r' aoblss _clex_eval_count,r1,13$n15$: movl r4,(r3)[r1] incl _clex_eval_count pushl r4% calls #1,clex_print_command_20$: tstl ent_l_next(r2) beql 30$_/ addl3 clex_table,ent_l_next(r2),-(sp) ' calls #1,clex_evaluate_entityd 30$: rett .end$EOD$copy sys$input FIND.MAR$deck)! .title find verb routinen!; VERB Version 1.0 June 1st, 1985 3; Written by Joe Meadows Jr., with thanks to thel3; Fred Hutchinson Cancer Research Center for00MYLK H6%! ! kindly)4; allowing me to use their computing resources.; 3; If you have any questions, comments, ideas, or 1; whatever, feel free to contact me via US Mail :l; Joe Meadows Jr.w; 4841 268th Ave. N.E.; Redmond Wa. 98052i; or via phone : (206) 827-7296 , .psect _clex_local rd,wrt,noexeverb_buff_desc: .blkl 2, .psect _clex_code rd,nowrt,exe. .entry clex_find_verb,^m;t; 4(ap)=verb descriptorb; 8(ap)=verb numberl$; 12(ap)=command block address8; start at verb number and go to last verb-; looking for baby that matchesc;i movl clex_commands,r3- movl @8(ap),r4 ; verb numbero cmpl r4,clex_cmd_cnt  bgeq 40$ :10$: movl (r3)[r4],r5 ; comand_block TRO addl clex_table,r5 2 movzwl cmd_w_name(r5),r0 ; name BRO9 addl r0,r5 ; ascic all namesg movzbl (r5),r2 920$: incl r5 ; ascic verb name # movzbl (r5),verb_buff_desc & moval 1(r5),verb_buff_desc+4 pushl 4(ap)  pushaq verb_buff_desc# calls #2,g^str$match_wild2 blbs r0,50$ decl r2 subb (r5),r2  bleq 30$0! addl verb_buff_desc,r5  brb 20$ #30$: aoblss clex_cmd_cnt,r4,10$40$: clrl @8(ap) clrl r0 brb 60$'N50$: movl (r3)[r4],r5 ; get command TRO to compare with all previousO clrl r1 ; ones to see if we've already printed this one tstl r4 beql 56$55$: cmpl (r3)[r1],r51P beql 30$ ; if this one's been done before continue search3 aoblss r4,r1,55$ ; continue checkinge56$: movl r4,@8(ap). movl (r3)[r4],@12(ap)" addl clex_table,@12(ap)' movl @12(ap),_clex_cmd_block movl #1,r0 60$: ret2 .end$EOD$copy sys$input FINDENTITY.MAR$deck: .title find_entityl! .library 'clexlib' 0 .entry clex_find_entity,^m ; 4(ap) = entity block= ; this routine searches down the entity block to see <5 ; which command/syntax/keyword it belongs to.o clrl r0 clrl _clex_ents_count pushl 4(ap) pushl _clex_cmd_blockt$ calls #2,clex_check_entity retb1 .entry clex_check_entity,^m  cmpl 4(ap),8(ap), bneq 10$a movl #1,r0o ret 9 ; loop through and see if we've done this alreadyl10$: movl 4(ap),r4 moval _clex_ents,r2  clrl r1 tstl _clex_ents_count beql 35$20$: cmpl (r2)[r1],r4d bneq 30$l ret'30$: aoblss _clex_ents_count,r1,20$ 35$: incl _clex_ents_count= movl r4,(r2)[r1] ; remember having done this..7. cmpb #block_k_entity,ent_b_type(r4) bneq 60$ ! movl ent_l_next(r4),r5) beql 40$ jsb _clex_call_check beql 40$  brw 90$ #40$: movl ent_l_syntax(r4),r5o beql 50$( jsb _clex_call_check beql 50$t brw 90$y550$: cmpb #ent_k_user_defined,ent_b_valtype(r4)s bneq 60$c& movl ent_l_user_type(r4),r5 jsb _clex_call_check beql 60$t cmpl r0,#1g bneq 90$  movl r5,r0[ brw 90$l-60$: cmpb #block_k_type,type_b_type(r4)  bneq 70$1& movl type_l_keywords(r4),r5 jsb _clex_call_check beql 70$  cmpl r0,#1 bneq 90$  movl r4,r0  brw 90$ /70$: cmpb #block_k_command,cmd_b_type(r4), bneq 9000MLJH+%O-%TADATADATA$ , bitw #cmd_m_parms,cmd_w_flags(r4) beql 80$d" movl cmd_l_parms(r4),r5 beql 80$ jsb _clex_call_check beql 80$  cmpl r0,#1i bneq 90$  movl r4,r0  brw 90$ ,80$: bitw #cmd_m_quals,cmd_w_flags(r4) beql 90$ " movl cmd_l_quals(r4),r5 beql 90$s jsb _clex_call_check beql 90$  cmpl r0,#1  bneq 90$  movl r4,r0  brw 90$ 90$: ret _clex_call_check:r addl clex_table,r5g pushl 8(ap): pushl r5$ calls #2,clex_check_entity tstl r0 rsb_ .end$EOD$copy sys$input GET_TERM.MAR$deckg, .title get terminal characteristics!; VERB Version 1.0 June 1st, 1985t3; Written by Joe Meadows Jr., with thanks to the 3; Fred Hutchinson Cancer Research Center for kindly[4; allowing me to use their computing resources.; 3; If you have any questions, comments, ideas, or'1; whatever, feel free to contact me via US Mail :l; Joe Meadows Jr.g; 4841 268th Ave. N.E.; Redmond Wa. 98052u; or via phone : (206) 827-7296x; calling sequenceL; ret-stat = get_terminal_characteristics( terminal, characteristics )@; ret-stat is a longword return status from any of the following3; system services : ASSIGN,DASSGN,GETDVI,QIOW D; terminal is the address of a descriptor containing the name of the$; device to get information on:; characteristics is the address of the quadword to return; the characteristics in. ($devdef ; device characteristics*$ttdef ; terminal characteristics$$dvidef ; device information$dcdef ; device class dvi_list:: .word 4,dvi$_devclass ; buffer length, item code0 .long dev_class ; buffer addressB .long 0 ; return length (0 = don't bother)dev_class: .longy!dev_chan: .word ; channelo7dev_buff: .quad ; device characteristics bufferi. .entry get_terminal_characteristics,0= ; call getdvi to determine if SYS$INPUT is a terminal( $getdviw_s -- devnam=@4(ap),itmlst=dvi_listp blbs r0,5$, ret ; punt if errord ; is it a terminal? #5$: cmpl #dc$_term,dev_class ; beql 10$ ; branch to 10$ if it is a terminal  movl #0,r0 @ brb 30$ ; no sense in asking if isn't a terminal10$: $assign_s -+ devnam=@4(ap),chan=dev_chand blbc r0,30$A $qiow_s chan=dev_chan,func=#io$_sensemode,p1=@8(ap),p2=#8  blbc r0,20$20$: $dassgn_s -7 chan=dev_chan 30$: retn .end$EOD$copy sys$input INIT.MAR$deck_' .title initialization routines !; VERB Version 1.0 June 1st, 1985_3; Written by Joe Meadows Jr., with thanks to thes3; Fred Hutchinson Cancer Research Center for kindly(4; allowing me to use their computing resources.;3; If you have any questions, comments, ideas, or 1; whatever, feel free to contact me via US Mail : ; Joe Meadows Jr. ; 4841 268th Ave. N.E.; Redmond Wa. 98052l; or via phone : (206) 827-7296! .library 'clexlib'u, .psect _clex_common rd,wrt,noexe'clex_table:: .long ; table addresst#clex_verbs:: .long ; verb list &clex_commands:: .long ; command list)clex_cmd_cnt:: .long ; number of verbs)0clex_output:: .long ; output routine address0clex_width:: .long ; width of output buffer_clex_handler_flag:: .long _clex_cmd_block:: .longg( .sbttl initialize table address, .psect _clex_code rd,nowrt,exe( .entry clex_use_process_table,0/ ; ret-status = clex_use_process_table() * movl ctl$ag_clitable,clex_table jsb _c00MYLK H6%! !lex_initialize ret  .entry clex_use_image,0 4 ; ret-status = clex_use_image (tableaddress)! movl @4(ap),clex_table jsb _clex_initialize ret , .psect _clex_local rd,wrt,noexe=fab: $fab dnm=,fac=get,fop=ufotinadr: .long ^x200,^x200 retadr: .quad $secdefo, .psect _clex_code rd,nowrt,exe( .entry clex_use_command_table,06 ; ret-status = clex_use_command_table( table ) movl 4(ap),r0" movb (r0),fab+fab$b_fns# movl 4(r0),fab+fab$l_fnan $open fab=fab_ blbc r0,10$ $crmpsc_s - A inadr=inadr,retadr=retadr,flags=#,- ) chan=fab+fab$l_stv,vbn=#2  blbc r0,10$( movl retadr,clex_table jsb _clex_initialize 10$: retn_clex_initialize:  movl clex_table,r0 / addl3 r0,vec_l_verbtbl(r0),clex_verbse' addl3 r0,vec_l_comdptr(r0),r1m0 movzwl vec_w_tro_count(r1),clex_cmd_cnt addl #8,clex_verbs # addl3 #8,r1,clex_commandsn movl #1,r07 rsbq" .entry clex_init_output,0! movl 4(ap),clex_output ! movl @8(ap),clex_width rets .end$EOD$copy sys$input LIST.MAR$deck  .title print verb name!; VERB Version 1.0 June 1st, 19853; Written by Joe Meadows Jr., with thanks to then3; Fred Hutchinson Cancer Research Center for kindlye4; allowing me to use their computing resources.;a3; If you have any questions, comments, ideas, or71; whatever, feel free to contact me via US Mail : ; Joe Meadows Jr.e; 4841 268th Ave. N.E.; Redmond Wa. 98052 ; or via phone : (206) 827-7296  .library 'clexlib'5 .entry clex_print_verb,^m * ; 4(ap) = address of command block movl 4(ap),r6! movzwl cmd_w_name(r6),r7t addl r6,r7t4 case cmd_b_subtype(r6),type=b,limit=#1,<- _verb,-a _syntax>! movl #0,r0 ; invalidz reth3_verb: movzbl (r7),r2 ; save size of entire thingo8 movzbl 1(r7),r3 ; save size of verb name._verb1: incl r7 ; point to first ascic add_ascic_trunc r7,r3l@ decl r2 ; subtract off extra byte for count byte9 movzbl (r7),r4 ; assume verb bigger than synonym 6 cmpb (r7),r3 ; is synonym bigger than verb? bleq _verb27 movzbl r3,r4 ; if so it got truncated by CDUa0 add_string <' (synonym truncated)'>7_verb2: subb r4,r2 ; subtract off printed portion.t beql _verb3 addl r4,r7  tstb 1(r7)0? beql _verb1 ; if zero length string , skip to next.l add_string <' , '>e brb _verb1_verb3: brb _continuel_syntax:% add_string <'(syntax) '>  add_ascic r7 _continue: calls #0,put_outputp retd8 .entry clex_get_verb_name,^m* ; 4(ap) = address of command block movl 4(ap),r6! movzwl cmd_w_name(r6),r7  addl r6,r74 case cmd_b_subtype(r6),type=b,limit=#1,<- _get_verb>! movl #0,r0 ; invalid rett _get_verb:3 movzbl (r7),r2 ; save size of entire thinga8 movzbl 1(r7),r3 ; save size of verb name. incl r7 ; point to first ascic add_ascic_trunc r7,r3  pushaq _clex_desc pushl 8(ap)i calls #2,g^str$copy_dx! movl _clex_pos,@12(ap)e clrl _clex_pos retd .end$EOD$copy sys$input TYPE.MAR$decke .title print type block!; VERB Version 1.0 June 1st, 1985a3; Written by Joe Meadows Jr., with thanks to thes3; Fred Hutchinson Cancer Research Center00MLJH+%O-%TADATADATA for kindlyt4; allowing me to use their computing resources.;b3; If you have any questions, comments, ideas, orm1; whatever, feel free to contact me via US Mail :2; Joe Meadows Jr. ; 4841 268th Ave. N.E.; Redmond Wa. 98052n; or via phone : (206) 827-7296  .library 'clexlib') .entry clex_print_type,^m' ; 4(ap) = address of type block6 movl 4(ap),r2" movzwl type_w_name(r2),r3 addl r2,r3n( add_string <'define type '> add_ascic r3 calls #0,g^put_output:$ movzwl type_w_prefix(r2),r3 beql type_1 addl r2,r3 & add_string <' prefix '> add_ascic r3 calls #0,g^put_outputa4type_1: addl3 clex_table,type_l_keywords(r2),-(sp)$ calls #1,clex_print_entity ret' .end$EOD$copy sys$input VERB.COMPILE$deck I! Source name, object name, compile command, link options, required files:! 5Clexlib.mar,.mlb,Library/macro/create clexlib,%NOLINK>Verb.for,.obj,FortranmBuffer.mar,.obj,Macro Command.mar,.obj,MacroDisallows.mar,.obj,MacroEntity.mar,.obj,MacrotEvalentity.mar,.obj,MacropFind.mar,.obj,MacroiFindentity.mar,.obj,MacroiGet_term.mar,.obj,Macro Init.mar,.obj,Macro List.mar,.obj,MacroyType.mar,.obj,Macro Sys$system:sys.stb,,,/sel Sys$system:dcldef.stb,,,/sel$EOD$copy sys$input VERB.FOR$deck> program verb_extractor) ! VERB Version 1.0 June 1st, 1985>; ! Written by Joe Meadows Jr., with thanks to thet; ! Fred Hutchinson Cancer Research Center for kindlys< ! allowing me to use their computing resources. ! ; ! If you have any questions, comments, ideas, or 9 ! whatever, feel free to contact me via US Mail :  ! Joe Meadows Jr.o$ ! 4841 268th Ave. N.E.! ! Redmond Wa. 98052b' ! or via phone : (206) 827-7296 implicit integer (a-z)9 character buffer*80,comment*132,verb*32,symbol*80g7 logical all,out,list, found, anyfound, openfiles< external lib$put_output,output,lib$find_image_symbol byte term_char(8)  integer*2 term_width- equivalence (term_char(3),term_width)($ integer cli$_entnf/'38934'x/ comment=2 1 '!***************************************'2 1//'****************************************'2 1//'****************************************'< 1//'************' ! I just love a huge comment...L ! let user specifywidth of output stream (for the heck of it, okay?)& if (cli$present('width')) then; call error(cli$get_value('width',buffer,buff_len))l: call error(ots$cvt_ti_l(buffer(:buff_len),width)) else> i=get_terminal_characteristics('SYS$INPUT',term_char)# if (.not.i) term_width=132 L width=term_width ! default to screen width for the heck of it end if* ! just want a listng of the verbs? list=cli$present('list')4 ! use file or actual process mapped version?& if (cli$present('table')) then; call error(cli$get_value('Table',buffer,buff_len))y> call error(clex_use_command_table(buffer(:buff_len)))* elseif (cli$present('image')) then" ! is there an image spec?; call error(cli$get_value('Image',buffer,buff_len))0< call error(cli$get_value('Symbol',symbol,symb_len)); call error(lib$find_image_symbol(buffer(:buff_len)h8 1 ,symbol(:symb_len)2 2 ,tableaddr))' call clex_use_image(tableaddr) else$ call clex_use_process_table end if$ ! is output going to a file?9 if (cli$get_value('output',buffer,buff_len)) then0K openfile=.true. ! wait till we've found a verb before opening filed, call clex_init_output(outpu00'MYLK H6%! !t,width) out=.true.u else4 call clex_init_output(lib$put_output,width) end if anyfound=.false." ! they want all the verbs?$ if (cli$present('all')) then verb='*'  verb_len=1  goto 15 end if) ! get the next verb down the line010 i=cli$get_value('Verb',verb,verb_len)  if (.not.i) then if (anyfound) then_ call exit elsep call exit(cli$_entnf)= end if  end if8 call str$upcase(verb(:verb_len),verb(:verb_len)) 15 j=0b" ! locate the little bugger found = .false.o520 i=clex_find_verb(verb(:verb_len),j,cmd_block)  if (.not.i) then if (found) then goto 10 elsel- call lib$signal(%val(cli$_entnf-4)) goto 10x end if  end if anyfound=.true.B found=.true.< if (openfile) then ! we need to open the output file? open(file=buffer(:buff_len),err=30,unit=1,status='new' 8 1 ,defaultfile='.CLD',carriagecontrol='list') openfile=.false.  end if& ! get ready to output the verb if (list) then+ i=clex_print_verb(%val(cmd_block))l elseA call clex_get_verb_name(%val(cmd_block),buffer,buff_len)f i=min(width,132)  k=i/2-buff_len/2x if (k.lt.1) k=1G i=max(i-buff_len,0) ! center verb name in middle of commentl if (out) then call outpute= 1 (comment(:k)//buffer(:buff_len)//comment(k+1:i))e elsea call lib$put_outputs= 1 (comment(:k)//buffer(:buff_len)//comment(k+1:i))  end if  ! okay, here it isn. i=clex_print_command(%val(cmd_block)) end if0 j=j+1 ! continue search with next verb goto 20) 30 end  subroutine error(i)) if (.not.i) call exit(i) return endr# integer function output (a) character*(*) aY output=0 write(1,'(a)',err=10) a  output=110 return end $EOD$copy sys$input VERBS.COM$deck $$ verb/list/out=verbs.list/all/table$ open/read list verbs.listt$ open/write output verbs.difh&$ on control_y then goto no_more_verbs$loop:%$ read/end=no_more_verbs list command_$$ command:='f$element(0,",",command)#$ write output "Testing ''command'" #$ verb/out='command'/table 'command $ set command 'command#$ verb/out='command'/table 'command$ diff 'command'.cld/out=nla0: $ x='$statusE$ if x.eq.%x6c8013 then write output "Difference found in ''command'"a$ delete 'command'.cld;* $ goto loop:$no_more_verbs:, $ close list$ close output$eod$copy sys$input VERB.CLD$deck P!*************************************VERB**************************************define verb VERB! image RCA$ROOT:[UTILITIES]VERBc, parameter P1 , label=VERB , prompt="Verb" value (list) qualifier ALL nonnegatable qualifier PROCESS nonnegatable qualifier TABLE nonnegatable8 value (default="SYS$SHARE:DCLTABLES",type=$infile) qualifier OUTPUTa nonnegatable value (type=$outfile)0 qualifier WIDTH nonnegatable# value (required,type=$number)  qualifier IMAGE nonnegatable# value (required,type=$infile)m qualifier SYMBOLi nonnegatable value (required) qualifier LISTn nonnegatableM disallow ((TABLE and PROCESS) or (TABLE and IMAGE) or (PROCESS and IMAGE))g$eod+$ write sys$output "Compiling VERB program" $ @compile.com verb0*$ write sys$output "Defining VERB command"$COPY VERB.CLD RCA$UTILITIES$COPY VERB.EXE RCA$UTILITIES$!$ set command VERB9$ write sys$output "Try VERB VERB, and, have a nice day!"826 Jun 86 js@uw-june.arpa (Joe Meadows), VERB, bug & fix> Well, today someone asked me a simple question, how to?make a forei00/M2MJH+%O-%TADATADATAgn command into a real command. The answer follows: 5 DEFINE VERB SD ! Set default type of program3 IMAGE UTILITY:SD, CLIFLAGS(FOREIGN)kEWell, that works fine, but VERB wouldn't parse it correctly due to an Einvalid assumption on my part. I had thought that the Cliflags optionaDonly pertained to CLIROUTINEs. Not IMAGEs.. Oh well, a mistake on myCpart. The following replacement for COMMAND.MAR fixes this problem. C Also, some people apparently haven't got fortran compilers, Jso, I was wondering if anyone happened to rewrite VERB.FOR into some other2language, like Macro? (everyones got that one...).B Another also: I wrote a program to modify file attributes,F(Via ATR subfunction in a QIO call). Anybody want it? It's set up as aGcommand and can twiddle just about any bit in the header that you want.BHIf theres enough interest I'll post it. It's uses are many, for one, youIcan use it to the equivalent of SET FILE/DIRECTORY (one of those left out Jfunctions), or, perhaps (as I often use it) to fix a backup save set afterNsending it through Kermit. (I never remember to set the block size beforehand)JANyhow, if you do, ask for FILE, it's BASIC and MACRO (It's really not tooBhorrible, the BASIC is minimal, and, shoot, where I work it is the,onlguage available to me (THAT is horrible).H*****cut somewhere around here... In, this is a great spot -> . <- *****NC-----------------------------------------------------------------------------BC Program used to provide LSWEEP and some ARC functionality on VMSCGC VMSsweep will handle .LBR and .ARC* files and can be used to extract EC members or just display them on the terminal if they are non binaryCC Restrictions: AC The VMS file must have a maximum record length of 4096 bytes. =C The library file (.ARC* or .LBR) can only have 500 membersCC Functions provided:8C View a member at the terminal -squeezed or unsqueezed5C Extract a member to a file (Max 510 byte records) 'C List the directory of a library fileC New library file requestedC C Author:/C John T. Coburn Digital Equipment, ClevelandC Copyright (c) 1986CBC Please feel free to distribute this program by any noncommercial!C means to anyone who can use it.C@C * ARC is Copyright 1985,1986 by System Enhancements AssociatesC@C This program was in general based on the Turbo Pascal program AC DEARC that is in the public domain. Also referenced ARC sources$C from System Enhancement AssociatesCNC-----------------------------------------------------------------------------NC-----------------------------------------------------------------------------C Modification History:CC Version Date Who Comments4C V2.4 6 Sep 1986 John Coburn Merge change to allow*C Glenn Everharts single CR or LF be aC record terminatorC with V2.3C 1C V2.3 1 Mar 1986 John Coburn Removed unreliableC CRC checkingC.C V2.2 ??? John Coburn Enhance ARC functionsC.C V2.1 ??? John Coburn Add ARC functionalityC5C V2.0 1 Feb 1986 John Coburn First released versionNC----------------------------------------------------------------------------- Program VAX_ARC_LBR Implicit None  Character For_IOS(68)*30 Common /ForIOS/ For_IOS! >! Define FORTRAN error numbers for use with IOSTAT and ERRSNS!  Data For_IOS /68*' '/@ Data FOR_IOS ('00000011'X ) /' syntax error in NAMELIST input'/G Data FOR_IOS ('00000012'X ) /' too many values for NAMELIST variable'/? Data FOR_IOS ('00000013'X ) /' invalid reference to variable'// Data FOR_IOS ('00000014'X ) /' REWIND error '/@ Data FOR_IOS ('00000015'X ) /' duplicate file specifications '/8 Data FOR_IOS ('00000016'X ) /' input record too long '/2 Data FOR_IOS ('00000017'X ) /' BACKSPACE error '/: Data FOR_IOS ('00000018'X ) /' end-of-file during read '/> Data FOR_IOS ('00000019'X ) /' record number outside rang007MYLK H6%! !e '/> Data FOR_IOS ('0000001A'X ) /' OPEN or DEFINE FILE required'/C Data FOR_IOS ('0000001B'X ) /' too many records in I/O statement'/. Data FOR_IOS ('0000001C'X ) /' CLOSE error '/1 Data FOR_IOS ('0000001D'X ) /' file not found '// Data FOR_IOS ('0000001E'X ) /' open failure '/: Data FOR_IOS ('0000001F'X ) /' mixed file access modes '/> Data FOR_IOS ('00000020'X ) /' invalid logical unit number '/0 Data FOR_IOS ('00000021'X ) /' ENDFILE error '/4 Data FOR_IOS ('00000022'X ) /' unit already open '/@ Data FOR_IOS ('00000023'X ) /' segmented record format error '/G Data FOR_IOS ('00000024'X ) /' attempt to access non-existent record'/= Data FOR_IOS ('00000025'X ) /' inconsistent record length '/5 Data FOR_IOS ('00000026'X ) /' error during write '/4 Data FOR_IOS ('00000027'X ) /' error during read '/: Data FOR_IOS ('00000028'X ) /' recursive I/O operation '/> Data FOR_IOS ('00000029'X ) /' insufficient virtual memory '/1 Data FOR_IOS ('0000002A'X ) /' no such device '/@ Data FOR_IOS ('0000002B'X ) /' file name specification error '/: Data FOR_IOS ('0000002C'X ) /' inconsistent record type'/H Data FOR_IOS ('0000002D'X ) /' keyword value error in OPEN statement '/D Data FOR_IOS ('0000002E'X ) /' inconsistent OPEN/CLOSE parameters'/9 Data FOR_IOS ('0000002F'X ) /' write to READONLY file '/< Data FOR_IOS ('00000030'X ) /' invalid arg to FORTRAN RTL'/; Data FOR_IOS ('00000031'X ) /' invalid key specification'/H Data FOR_IOS ('00000032'X ) /' inconsistent key change, duplicate key'/@ Data FOR_IOS ('00000033'X ) /' inconsistent file organization'/9 Data FOR_IOS ('00000034'X ) /' specified record locked'/3 Data FOR_IOS ('00000035'X ) /' no current record'// Data FOR_IOS ('00000036'X ) /' REWRITE error'/. Data FOR_IOS ('00000037'X ) /' DELETE error'/. Data FOR_IOS ('00000038'X ) /' UNLOCK error'/, Data FOR_IOS ('00000039'X ) /' FIND error'/A Data FOR_IOS ('0000003B'X ) /' list-directed I/O syntax error '/7 Data FOR_IOS ('0000003C'X ) /' infinite format loop '/@ Data FOR_IOS ('0000003D'X ) /' format/variable-type mismatch '/@ Data FOR_IOS ('0000003E'X ) /' syntax error in format '/: Data FOR_IOS ('0000003F'X ) /' output conversion error '/9 Data FOR_IOS ('00000040'X ) /' input conversion error '/D Data FOR_IOS ('00000042'X ) /' output statement overflows record '/? Data FOR_IOS ('00000043'X ) /' input requires too much data '/C Data FOR_IOS ('00000044'X ) /' variable format expression error '/  Byte ArcMark Integer*2 LBR_Recognize Integer Max_Num_Members Parameter ( ArcMark = 26 )& Parameter ( LBR_recognize = 'FF76'x )$ Parameter ( Max_Num_Members = 500 ); Character File_Name*12, In_FILE_NAME*50, ANS*1, Lib_Type*17 Character Technique*10, Techs(10)*10, Actual_Len_Str*84 Data Techs / 2*' --', ' Packed', ' Squeezed', # 1 3*'Crunch(un)', ' Crunched',  2 2*' Unknown' /+ Character Member_NAMES(Max_Num_Members)*12& Character Mem_Date(Max_Num_Members)*8& Character Mem_Time(Max_Num_Members)*8) Integer First_Byte_Arr(Max_Num_Members)= Integer HDR_Vers(Max_Num_Members), Act_Len(Max_Num_Members)( Integer Num_Bytes_Arr(Max_Num_Members) Integer*2 CRCS(Max_Num_Members) Integer Temp Byte DIR_ENTRY(32)7 Byte STATUS, NAME(8), EXTEN(3), LBR_Filler(6), F1, F27 Integer*2 INDX, NSECTS, CRC, Frec, Crea_Date, Upd_Date Integer*2 Crea_Time, Upd_Time" Integer Num_Members, NBlks, Ivcr; Common /LBR_Dire/ STATUS, NAME, EXTEN, INDX, NSECTS, CRC, 1 1 Crea_Date, Upd_Date, Crea_Time, Upd_Time,  1 LBR_Filler, F1, F2% Equivalence ( DIR_ENTRY(1), STATUS ) Equivalence ( Frec, F1 )2 Integer First_In, Last_In, Buf_Index, Buf_Length) Integer Out_Index, Out_Length, Out_Num! Byte In_Buf(4096), Out_Buf(512)C Common /Buffers/ First_In, Last_In, Buf_Index, Buf_Length, In_Buf,+ 1 Out_Buf, Out_Index, Out_Length, Out_Num/ Logical*1 View_Cr, View_flg, Bin_flg, Extr_flg) Logical*1 LBR_Flg, Cancel_Op, AST_On_Flg Integer Remaining_Size Integer*2 CRC_ValG Common /Global/ Remaining_Size, Vie00?M2MJH+%O-%TADATADATAw_Cr, View_Flg, Bin_Flg, Extr_Flg, , 1 LBR_Flg, Cancel_Op, AST_On_Flg, CRC_Val Integer*2 I21 Integer Q, I, J, K, M, N, DIR_SECTS, ISTAT, Ios Logical*1 Squeezed, File_OK Byte Tbytes(13), C, HDR_Ver C Start of Code Type *, ' '# Type *, 'V M S S w e e p V2.4'" Type *, 'for .LBR and .ARC files' Type *, ' ' 10 Continue Last_In = 0 First_In = 0 Out_Index = 1 In_FILE_NAME = ' ' View_Cr = .False. Type 1020,'$Enter "library": '# Accept 1021, Q, In_FILE_NAME(1:Q)  If ( Q .eq. 0 ) GoTo 800$ K = Index( In_File_Name(1:Q), '.' ) If ( K .eq. 0 ) Then Lib_Type = ' ' Else# Lib_Type = In_File_Name(K+1:K+1) EndIf( If ( Lib_Type .eq. 'l' ) Lib_Type = 'L'( If ( Lib_Type .eq. 'a' ) Lib_Type = 'A' 20 Continue6 If ( Lib_Type .ne. 'A' .and. Lib_Type .ne. 'L' ) Then& Type 1020, '$ARC or LBR file [L]: ' Accept 1021, I, Lib_Type! If ( I .eq. 0 ) Lib_Type = 'L'* If ( Lib_Type .eq. 'l' ) Lib_Type = 'L'* If ( Lib_Type .eq. 'a' ) Lib_Type = 'A'8 If ( Lib_Type .ne. 'A' .and. Lib_Type .ne. 'L' ) Then8 Type *, '--- Invalid File type entered: ', Lib_Type GoTo 20 EndIf If ( k .eq. 0 ) Then8 If ( Lib_Type .eq. 'A' )In_File_Name(Q+1:) = '.ARC'8 If ( Lib_Type .eq. 'L' )In_File_Name(Q+1:) = '.LBR' EndIf EndIf Lbr_Flg = .True.+ If ( Lib_Type .eq. 'A' ) LBR_Flg = .False.: Open( Unit=2, File=In_File_Name, Status='OLD', ReadOnly, ) 1 DefaultFile='.', Err=900, IoStat=IoS ) Call Position_Lib( 1 ) N = 0 If ( .Not. Lbr_Flg ) GoTo 75 C Handle the .LBR file Specified 50 Continue# Call Get_Byte_Knt( DIR_ENTRY, 32 ) File_OK = .True. Do I=1,8, If ( Name(I) .ne. ' ' ) File_OK = .False. EndDo Do I=1,3- If ( EXTEN(I) .ne. ' ' ) File_OK = .False. EndDo If ( .Not. File_OK ) Then< Write( 6, * ) '+++ Requested file is not an LBR file +++'< Write( 6, * ) '+++ Invalid directory format for LBR +++' GoTo 700 EndIf< DIR_SECTS = NSECTS ! How many directory segments are there If ( DIR_SECTS .GT. 1 ) Then1 Write( 6, 1030 ) '++ There are ', DIR_SECTS, : 1 ' directory segments in ' // In_File_name(1:Q) // ' ++' Else0 Write( 6, 1030 ) '++ There is ', DIR_SECTS, 9 1 ' directory segment in ' // In_File_name(1:Q) // ' ++' EndIf Do 70 I = 2, DIR_SECTS*4' Call Get_Byte_Knt( DIR_ENTRY, 32 ) If ( STATUS .eq. 0 ) Then, If ( N .eq. max_num_members ) goto 100 N = N + 1 Member_Names(N) = ' ' M = 12 Do While ( M .le. 8 .and. Name(M) .ne. ' ' )- Member_Names(N)(M:M) = Char( Name(M) ) M = M + 1 EndDo Member_Names(N)(M:M) = '.'( Hdr_Vers(N) = 10 ! Special blank Do K=1,32 Member_NAMES(N)(M+K:M+K) = Char( EXTEN(K) ) EndDo Temp = NSECTS# Num_Bytes_ARR(N) = Temp * 128$ Act_Len(N) = Num_Bytes_ARR(N)  Temp = Indx( First_Byte_arr(N) = Temp * 128 + 1 CRCS(N) = CRC" If ( Crea_Date .ne. 0 ) Then2 Call LBR_Date_Str( 78, Crea_Date, Mem_Date(N) ) Else Mem_Date(N) = ' --' EndIf" If ( Crea_Time .ne. 0 ) Then* Call Time_Str( Crea_Time, Mem_Time(N) ) Else Mem_Time(N) = ' -' EndIf EndIf 70 Continue9C Now lets determine how many of the members are squeezed Do I = 1, N) Call Position_Lib( First_Byte_Arr(I) )3 Call Get_Byte_KNT( I2, 2 ) ! Read first 2 bytes$ If ( I2 .eq. LBR_recognize ) Then" Hdr_Vers(I) = 4 ! Squeezed  Act_Len(I) = 03 Call Get_Byte_Knt( I2, 2 ) ! Get past the CRC File_Name = ' ' 4 Call Get_Byte( C ) ! Get the member orig name K = 1 Do While ( C .ne. 0 )! File_Name(K:K) = Char( C ) Call Get_Byte( C ) K = K + 1 EndDo Member_Names(I) = File_Name2 First_Byte_Arr(I) = First_Byte_Arr(I) + K + 42 Num_Bytes_Arr(I) = Num_Bytes_Arr(I) - (K + 4) Else% Hdr_Vers(I) = 2 ! Not squeezed EndIf EndDo Goto 100 1C Re00GMYLK H6%! !ad the .ARC file to get 'directory' type info%75 Continue ! Get info for .ARC fileD Type *, 'Gathering "directory" information for ', In_File_Name(1:Q) Type *, ' ' Call Get_Byte( C ) Do While ( C .ne. -1 )0 If ( C .ne. ArcMark ) Then ! Not an ARC file I = 00 Do While ( C .ne. ArcMark .and. I .lt. 10 ) Call Get_Byte( C ) I = I + 1 EndDo If ( I .ge. 10 ) Then= Write( 6, * ) '+++ Requested file not an ARC file +++'= Write( 6, * ) '+++ Could not find the mark of ARC +++' Goto 700 Else5 Write( 6, * ) '+++ Bad Header encountered +++'8 Write( 6, 1030 ) '+++ Skipped ', I, ' bytes +++' EndIf EndIf Call Get_Byte( Hdr_Ver )0 If ( Hdr_Ver .lt. 0 ) Then ! invalid header? Type *, 'Cannot handle this version of .ARC file:', Hdr_ver goto 700 EndIf3 If ( Hdr_Ver .eq. 0 ) Then ! special endoffile GoTo 100 EndIf) If ( N .eq. max_num_members ) goto 100 N = N + 1" Call Get_Byte_Knt( TBytes, 13 ) Member_NAMES(N) = ' ' M = 1 Do While ( TBytes(M) .ne. 0 )- Member_NAMES(N)(M:M) = Char( TBytes(M) ) M = M + 1 EndDo+ Call Get_Byte_Knt( Num_Bytes_Arr(N), 4 )$ Call Get_Byte_Knt( Crea_Date, 2 ) If ( Crea_Date .ne. 0 ) Then0 Call ARC_Date_Str( Crea_Date, Mem_Date(N) ) Else Mem_Date(N) = ' --' EndIf5 Call Get_Byte_Knt( Crea_Time, 2 ) ! Discard time  If ( Crea_Time .ne. 0 ) Then, Call Time_Str( Crea_Time, Mem_Time(N) ) Else Mem_Time(N) = ' -' EndIf" Call Get_Byte_Knt( CRCs(N), 2 ) If ( Hdr_Ver .gt. 1 ) Then: Call Get_Byte_Knt( Act_Len(N), 4 ) ! expanded length Else" Act_Len(N) = Num_Bytes_Arr(N) EndIf Hdr_Vers(N) = Hdr_Ver/ First_Byte_arr(N) = Buf_Index + First_In - 1< Call Position_Lib( Num_Bytes_Arr(N) + First_Byte_Arr(N) ) Call Get_Byte( C ) EndDo ,C Now display the directory for this library 100 Continue Num_Members = N 150 Continue If ( Num_Members .GT. 1 ) Then3 Write( 6, 1030 ) '++ There are ', Num_Members,  1 ' members ++' Else> Write( 6, 1030 ) '++ There is ', Num_Members, ' member ++' EndIf Write( 6, 1020 ) ' ' Write( 6, 1008 ) Write( 6, 1009 ) Do I = 1, Num_Members! NBLKS = Num_Bytes_Arr(I) / 512; If ( NBLKS*512 .ne. Num_Bytes_ARR(I) ) Nblks = NBlks + 1# Technique = Techs( Hdr_Vers(I) ) Actual_Len_Str = ' ??' If ( Act_Len(I) .ne. 0 ) Then6 Write( Actual_Len_Str, 1001, Err=160 ) Act_Len(I) EndIf<160 Write( 6,1010 ) I, Member_NAMES(I), Num_Bytes_Arr(I), 0 1 Mem_Date(I), Mem_Time(I)(1:5), Technique,  1 Actual_Len_Str EndDo 7c Now lets see if the user wants to extract any members 200 Continue Type 1020, ' '/ Type 1020, '$Enter command (? for list) [X]: ' Accept 1020, ANS If ( ANS .eq. ' ' ) ANS = 'X'/ If ( ANS .eq. 'x' .or. ANS .eq. 'X' ) Goto 800 View_flg = .False. Extr_flg = .False. Bin_flg = .False. Ivcr = 0 If ( ANS .eq. '?' ) Goto 230/ If ( ANS .eq. 'l' .or. ANS .eq. 'L' ) GoTo 150/ If ( ANS .eq. 'n' .or. ANS .eq. 'N' ) GoTo 7001 If ( ANS .eq. 'i' .or. ANS .eq. 'I' ) ivcr=-11 If ( ANS .eq. 'k' .or. ANS .eq. 'K' ) ivcr=+18 If ( ANS .eq. 'v' .or. ANS .eq. 'V' ) View_flg = .True.8 If ( ANS .eq. 'e' .or. ANS .eq. 'E' ) Extr_flg = .True.' If ( View_flg .or. Extr_flg ) GoTo 250:c Allow K and I modes to set carriage control for terminal c output... If(ivcr.eq.0)goto 207 If(ivcr.eq.-1)View_cr=.false. If(ivcr.eq.1)View_cr=.True. Goto 200 207 Continue#210 Type *, '-- Illegal Command --' 230 Continue Type 1020, ' '" Type 1020, ' Commands available:' Type 1020, ' '/ Type 1020, ' E - Extract a member to a file'- Type 1020, ' L - List the directory again'+ Type 1020, ' N - Get a new library file', Type 1020, ' V - View member at terminal'6 Type 1020, ' K - Convert isolated CR or LF to CRLF': Type 1020, ' I - Leave isolated CR or00OM2MJH+%O-%TADATADATA LF alone (image)', Type 1020, ' X - No option wanted (exit)'& Type 1020, ' ? - Display this list' GoTo 200 250 Continue Type 1400 Accept 1410, N3 If (( N .le. 0 ) .or. ( N .gt. Num_Members )) Then( Type *, '-- Illegal member number --' Goto 250 EndIf' Call Position_Lib( First_Byte_Arr(N) )" Remaining_Size = Num_Bytes_Arr(N) If ( .Not. LBR_Flg ) GoTo 500 %C Now handle selection from .LBR file 300 Continue If ( Hdr_Vers(N) .eq. 4 ) Then Squeezed = .True.* Call Init_UnSq ! Init the decode tree Else Squeezed = .False. EndIf File_Name = Member_Names(N)7 Call Open_Ext_File( File_Name ) ! Open the output LUN If ( Squeezed ) Then Call Get_Char_Sq( I2 )3 Do While (( I2 .ne. -1 ) .and. .Not. Cancel_Op ) Call Put_Char_UnComp( I2 ) Call Get_Char_Sq( I2 ) EnDDo Else Call Get_Char( I2 )3 Do While (( I2 .ne. -1 ) .and. .Not. Cancel_op ) Call Put_Char_UnComp( I2 ) Call Get_Char( I2 ) EnDDo EndIf Call Close_Ext_File( CRCS(N) ) GoTo 200 *C This code is for the .ARC library format 500 Continue= GoTo ( 510, 510, 520, 530, 590, 590, 590, 540 ), Hdr_Vers(N)A Type *, '--- Illegal or Unknown ARC Header value: ', Hdr_Vers(N) GoTo 2007510 Continue ! Extract member that has no compression& Call Open_Ext_File( Member_Names(N) ) Call Get_Char( I2 )1 Do While (( I2 .ne. -1 ) .and. .Not. Cancel_Op ) Call Put_Char_CRC( I2 ) Call Get_Char( I2 ) EnDDo Goto 595-8520 Continue ! Extract member that uses DLE compression& Call Open_Ext_File( Member_Names(N) ) Call Get_Char( I2 )1 Do While (( I2 .ne. -1 ) .and. .Not. Cancel_Op )  Call Put_Char_UnComp( I2 )e Call Get_Char( I2 ) EnDDo Goto 595 8530 Continue ! Extract Member that uses Huffman squeeze& Call Open_Ext_File( Member_Names(N) ) Call Init_Unsqy Call Get_Char_Sq( I2 )l1 Do While (( I2 .ne. -1 ) .and. .Not. Cancel_Op )  Call Put_Char_UnComp( I2 )  Call Get_Char_Sq( I2 )e EnDDo Goto 595 540 Continue& Call Open_Ext_File( Member_Names(N) ) Call DeComp_LZW_Var Goto 595y 590 Continue4 Type *, 'Not implemented yet, Need a newer version'4 Type *, '(Also, old crunch options not supported.)' GoTo 200 595 Continue Call Close_Ext_File( CRCS(N) )y GoTo 200i&c Now lets setup for another lib file 700 Continue Close( Unit=2 )  Goto 10 800 Continue Call Exit p 900 Continue If ( IOS .gt. 68 ) Then& Type *,'Unkown error on OPEN:', IOS Else , Type *, 'Error on OPEN: ', For_IOS( IOS ) EndIf Call Exit"1000 Format( ' ', a, ' ', i4 )1001 Format( I8 )-71008 Format( ' # Member Name # Bytes Date ',-# 1 'Time Stor. Type Actual Len')-71009 Format( ' ---- ------------ ------- -------- ',D# 1 '----- ---------- ----------')671010 Format( ' ', I3, '. ', a, ' ', I7, 4( ' ', A ) ) ?1011 Format( ' Extracting: ', a, '.', a, ', First Byte: ', I7, . 1 ', # Bytes: ', I7 )1020 Format( a )1021 Format( q, a ) 1030 Format( ' ', a, I4, a )&1110 Format( ' Member#', I3, '. ', a, ' 1 ', First: ', i7, ', Number: ', i7 )n1111 Format( ' ', A, I7 )e'1400 Format( '$Enter member number: ' )1410 Format( I3 )- End -IC------------------------------------------------------------------------AC Subroutine called to open an output LUN for processing a memberF#C of library (eitrher .LBR or .ARC) 4C C Inputs:/C File_Name Member filenameC C Outputs::C The Bin_Flg will be set if the extension of the file is&C .EXE, .BIN, .COM, .CMD, .OVR etc...COIC------------------------------------------------------------------------0& Subroutine Open_Ext_File( File_Name ) Implicit None( Logical*1 File_Flg, Squeezed, Ctrlz_Flg5 Character File_Name*(*), Carriage*4, ANS, File_Ext*3  Character Open_Name*12 " Integer K, I, IOS, Record_Length/ Logical*1 View_Cr, View_flg, Bin_flg, Extr_flg_) Logical*1 LBR_Flg, Cancel_Op, AST_On_Flg  I00WMYLK H6%! !nteger Remaining_Size Integer*2 CRC_ValG Common /Global/ Remaining_Size, View_Cr, View_Flg, Bin_Flg, Extr_Flg, r, 1 LBR_Flg, Cancel_Op, AST_On_Flg, CRC_Val2 Integer First_In, Last_In, Buf_Index, Buf_Length+ Integer Out_Index, Out_Length, Out_Num0! Byte In_Buf(4096), Out_Buf(512)OC Common /Buffers/ First_In, Last_In, Buf_Index, Buf_Length, In_Buf,0+ 1 Out_Buf, Out_Index, Out_Length, Out_Num Character For_IOS(68)*30/ Common /ForIOS/ For_IOS Out_Num = 0 Bin_Flg = .True.a K = Index( File_Name, '.' ) If ( K. eq. 0 )Then- Type *, 'Is ', File_Name, ' a text file? '0 Accept 1100, Ansa: If ( Ans .eq. 'y' .or. Ans .eq. 'Y' ) Bin_Flg = .False. Elses File_Ext = File_Name(K+1:K+3)' Do K = 1, 3 ! Upcase the extensioneD If ( File_Ext(K:K) .ge. 'a' .and. File_Ext(K:K) .le. 'z' ) Then= File_Ext(K:K) = Char( Ichar( File_Ext(K:K) ) - '40'o ) EndIf EndDoG K = Index( ' LBR ARC COM EXE REL CMD COM OVR BIN', File_Ext )e Bin_Flg = .False. 0# If ( K .ne. 0 ) Bin_Flg = .True.  EndIf If ( .Not. Bin_Flg ) Then? Type *, '++ Member being treated as Text (Bit 8 cleared) ++'e EndIf# If ( View_flg .and. Bin_Flg ) ThenO: Type *, '---> Can''t view a binary file, extracting...' View_Flg = .False.0 EndIf If ( Bin_Flg ) Then Out_Length = 128' Carriage = 'NONE' Elseo Out_Length = 510  Carriage = 'LIST' EndIf Cancel_op = .False. If ( View_flg ) Then2 Open_Name = 'Sys$OutPut'g Elsei OPen_Name = File_Name Do I = 1, 11 8 If ( Open_Name(I:I) .eq. '-' ) Open_Name(I:I) = '_' EndDo3 Write( 6, * ) 'Extracting to ', Open_Name, '...') EndIf If ( .Not. AST_On_Flg ) Then' Call Cancel_AST_Start AST_On_Flg = .True. EndIf2 Type *, '+++ To cancel operation type Ctrl-C +++' Type *, ' '> Open( Unit=1, File=Open_Name, Status='NEW', RecL=Out_Length, 6 1 IoStat=IOS, CarriageControl=Carriage, Err=900 ) Return' 900 Continue/ Type *, 'Error opening file: ', FOR_IOS( IOS )D Returno1100 Format( A ) End IC------------------------------------------------------------------------_AC Subroutine used to close the open LUN used for extract and View0<C commands. Insures that the last partial buffer is written.C2 C Inputs:p8C Uses info in buffer common to empty the output buffer C If needed.eCr C Outputs:4C The last buffer is emptied before closing the LUNC IC------------------------------------------------------------------------r% Subroutine Close_Ext_File( Mem_CRC )k Implicit None Byte B(2)i Integer*2 Mem_CRC, Loc_CRCM Equivalence ( Loc_CRC, B(1) ) Integer K,2 Integer First_In, Last_In, Buf_Index, Buf_Length) Integer Out_Index, Out_Length, Out_NumD! Byte In_Buf(4096), Out_Buf(512),C Common /Buffers/ First_In, Last_In, Buf_Index, Buf_Length, In_Buf,n+ 1 Out_Buf, Out_Index, Out_Length, Out_Numr/ Logical*1 View_Cr, View_flg, Bin_flg, Extr_flga) Logical*1 LBR_Flg, Cancel_Op, AST_On_Flgg Integer Remaining_Size Integer*2 CRC_ValG Common /Global/ Remaining_Size, View_Cr, View_Flg, Bin_Flg, Extr_Flg, e, 1 LBR_Flg, Cancel_Op, AST_On_Flg, CRC_Valc Start of routine codep Loc_CRC = Mem_CRC  If ( Out_Index .gt. 1 ) Theni/ Write( 1, 1100 ) (Out_Buf(K), K=1,Out_Index)r Out_Num = Out_Num + 1 Out_Index = 1 EndIf If ( Cancel_Op ) Then! Close( Unit=1, Disp='DELETE' )/ Else, Close( Unit=1 )c Type 2000, Crc_Val, Mem_CRC Cc2000 Format( ' Calculated CRC: ', Z4.4, ', Stored CRC: ', Z4.4 )vc If ( .Not. LBR_Flg ) Then#c Call ARC_CRC( CRC_Val, B(1) )g#c Call ARC_CRC( CRC_Val, B(2) )_c Else%c CRC_Val = CRC_Val .xor. Loc_CRC c EndIf_9c If ( Mem_CRC .ne. 0 ) Then ! Zero CRC means no checkI c If ( CRC_Val .ne. 0 ) Then<c Type *,'--- Warning --- CRC values do not agree ---' c EndIff c EndIf, EndIf1 If ( .Not. View_Flg .and. .Not. Cancel_Op ) Theng If ( Bin_Flg )Thent Type 1000, Out_NumG Elsem Type 100100_M2MJH+%O-%TADATADATA, Out_Numw EndIf EndIf Return101000 Format( //' --> ', I6, ' Records written' ).1001 Format( //' --> ', I6, ' Lines written' )1100 Format( 510A1 ) End eIC------------------------------------------------------------------------ <C Subroutine used to get the next byte from the input buffer<C If the input buffer is empty the next record will be read CF C Inputs:2C Common containing information about the buffersCs C OutPut:01C C is the next byte value from the input bufferNC(IC------------------------------------------------------------------------ Subroutine Get_Byte( C )b Implicit None Byte C2 Integer First_In, Last_In, Buf_Index, Buf_Length) Integer Out_Index, Out_Length, Out_Num.! Byte In_Buf(4096), Out_Buf(512)iC Common /Buffers/ First_In, Last_In, Buf_Index, Buf_Length, In_Buf, + 1 Out_Buf, Out_Index, Out_Length, Out_Num1& If ( Buf_Index .gt. Buf_Length ) Then% Call Position_Lib( Last_In + 1 )i EndIf C = In_Buf( Buf_Index ) Buf_Index = Buf_Index + 1 Return. End aIC------------------------------------------------------------------------'<C Subroutine used to get the next byte from the input buffer7C Call Get_Byte after checking remaining size of memberC C Inputs:y1C Common containing information about the memberCd C OutPut:F8C I is the next byte value from the input buffer in I*2CIC------------------------------------------------------------------------' Subroutine Get_Char( I ) Implicit None Integer*2 I, WI Byte C Equivalence ( W, C )/ Logical*1 View_Cr, View_flg, Bin_flg, Extr_flg) Logical*1 LBR_Flg, Cancel_Op, AST_On_Flgl Integer Remaining_Size Integer*2 CRC_ValG Common /Global/ Remaining_Size, View_Cr, View_Flg, Bin_Flg, Extr_Flg, , 1 LBR_Flg, Cancel_Op, AST_On_Flg, CRC_Val W = 0" If ( remaining_Size .gt. 0 ) Then Call Get_Byte( C )+( Remaining_Size = Remaining_Size - 1 Elset W = -1' EndIf I = W ReturnR End NIC------------------------------------------------------------------------T-C Subroutine used to get KNT bytes from input_>C Call the Get_Byte subroutine to minimize buffer manipulationC'C Input:C Buffer address to filleC KNT number of bytes to fillCy C Output: (C Fills parameter buffer with KNT bytesCDIC------------------------------------------------------------------------f$ Subroutine Get_Byte_Knt( Buf, Knt ) Implicit None Integer Knt, I Byte Buf(KNT)e Do I = 1, KNT Call Get_Byte( Buf(I) ) EndDo Return  End nIC------------------------------------------------------------------------,C Subroutine that translates a byte to ASCIIC C Input:;C Will call Get_Char to get a bytes needed for translationAC( C Output: 2C The translated value (unsqueezed) in I*2 formatCIC------------------------------------------------------------------------ Subroutine Get_Char_Sq( W ) Implicit None Integer*2 SpEOF Parameter ( SPEOF = 256 ) Integer*2 W Integer*2 I, K, CurIn! Integer*2 DNode(0:255,0:1), BPos  Common /UnSq/ DNode, BPos I = 0 Do While ( I .ge. 0 ) BPos = BPos + 1 If ( BPos .gt. 7 ) Then BPos = 0) Call Get_Char( CurIN )= If ( Curin .eq. -1 ) Then W = -1 Returnt EndIf ElseeA Curin = Ishft( Curin, -1 ) !!!VMS!!! VAX intrinsic function_ EndIf K = Curin .and. 1 I = DNode( I, K ) EndDo I = -( I + 1 ). If ( I .eq. SPEOF ) Then W = -1( Else  W = I EndIf ReturnI End  2IC------------------------------------------------------------------------ AC Subroutine used to put a byte into outbut buffer and will check))C for compression using the DLE technique ClC Input:)C W I*2 value holding the char to outputMCeC Output: %C Places data into the output buffer_C(IC------------------------------------------------------------------------ Subroutine Put_Char_UnComp( W ) Implicit None Integer*2 DLE Param00gMYLK H6%! !eter ( DLE = '90'x ) Integer*2 W, WC, RepCt, LastC Byte C Equivalence ( WC, C ) Data RepCt /0/ 5 If ( Repct .gt. 0 ) Then ! Are we repeating a char?, If ( W .eq. 0 ) Then 3 Call Put_Char_Crc( DLE ) ! DLE was a real onek# Else ! Count is what we have0' RepCt = W ! Set the count right.- repct = repct - 1 ! Now put the proper=7 Do While ( repCt .gt. 0 ) ! number of charactersi4 Call Put_Char_Crc( LastC ) ! into the buffer repct = repct - 1 EndDo EndIf+ repct = 0 ! All done with this repeat Else ! Not repeating yete/ If ( W .eq. DLE ) Then ! Repeat introducer?+( RepCt = 1 ! Yes, flag the repeat# Else ! No, just put the chare4 Call Put_Char_Crc( W ) ! Always save last sent LastC = W EndIf EndIf Return. End 'IC------------------------------------------------------------------------a6C Subroutine that places a byte into the output bufferCxC Input:C A byte value C= C OutPut: ;C The byte will be placed into the output buffer. When the*C buffer is full then it will be written.C IC------------------------------------------------------------------------C Subroutine Put_Byte( C )r Implicit None Byte CR, LFr Parameter ( LF = '12'o )D Parameter ( CR = '15'o )l Byte C Logical*1 CR_Flgt Integer K/ Logical*1 View_Cr, View_flg, Bin_flg, Extr_flg_) Logical*1 LBR_Flg, Cancel_Op, AST_On_Flg Integer Remaining_Size Integer*2 CRC_ValG Common /Global/ Remaining_Size, View_Cr, View_Flg, Bin_Flg, Extr_Flg, E, 1 LBR_Flg, Cancel_Op, AST_On_Flg, CRC_Val2 Integer First_In, Last_In, Buf_Index, Buf_Length) Integer Out_Index, Out_Length, Out_Num! Byte In_Buf(4096), Out_Buf(512))C Common /Buffers/ First_In, Last_In, Buf_Index, Buf_Length, In_Buf,d+ 1 Out_Buf, Out_Index, Out_Length, Out_Numu Data CR_Flg /.False./ If ( .Not. Bin_Flg ) Then C = C .and. '7F'x$ If ( C .eq. '1a'x ) Then ! If ^z Remaining_Size = 0 Return= EndIf, If ((C.eq.LF.or.C.eq.CR).and.View_cr)Then7c Write out line if CR or LF up to what's saved alread.mc View_Cr mode only...1 Write(1, 1100) (Out_Buf(K), K=1,Out_Index-1)b Out_Index=1 Out_Num = Out_Num+1 CR_FLG = .False.e Return Endif If ( CR_Flg ) Then= If ( C .eq. LF ) Then5 Write( 1, 1100 ) (Out_Buf(K), K=1,Out_Index-1)  Out_Index = 1 Out_Num = Out_Num + 1 CR_Flg = .False. Returne Else Out_Buf( Out_Index ) = CR Out_Index = Out_Index + 1, If ( Out_Index .gt. Out_Length ) Then6 Write( 1, 1100 ) (Out_Buf(K), K=1,Out_Length ) Out_Index = 1n Out_Num = Out_Num + 1s EndIf EndIf EndIf If ( C .eq. CR ) Then CR_Flg = .True. Returne EndIf Cr_Flg = .False. EndIf Out_Buf( Out_Index ) = C' Out_Index = Out_Index + 1& If ( Out_Index .gt. Out_Length ) Then1 Write( 1, 1100 ) (Out_Buf(K), K=1,Out_Length )  Out_Index = 1 Out_Num = Out_Num + 1 EndIf ReturnN1100 Format( 510A1 ) End IC------------------------------------------------------------------------i(C Subroutine that is used to calc a CRC C.C Input:+C I*2 with the character to add to the CRC'Cr C Output:'5C Call Put_Byte to add the byte to the output buffer.C'IC------------------------------------------------------------------------  Subroutine Put_Char_Crc( W )o Implicit None/ Logical*1 View_Cr, View_flg, Bin_flg, Extr_flgV) Logical*1 LBR_Flg, Cancel_Op, AST_On_Flg. Integer Remaining_Size Integer*2 CRC_ValG Common /Global/ Remaining_Size, View_Cr, View_Flg, Bin_Flg, Extr_Flg, m, 1 LBR_Flg, Cancel_Op, AST_On_Flg, CRC_Val Integer*2 W, Wc Byte C Equivalence ( Wc, C ) Wc = Wd Call Put_Byte( C )pc If ( .Not. Lbr_Flg ) Thenrc Call ARC_CRC( CRC_Val, C )c Else!c Call LBR_CRC( CRC_Val, C ) c EndIfs Returnr End LIC-----------------------------------------00oM2MJH+%O-%TADATADATA------------------------------- BC Subroutine that sets up the translation array for the specified C member TC0C Input:Ct C Output: +C The translation node array is filled in oC(IC------------------------------------------------------------------------G Subroutine Init_UnSq  Implicit None Integer*2 SpEOF Parameter ( SPEOF = 256 ) Integer*2 I, NumNodes/ Logical*1 View_Cr, View_flg, Bin_flg, Extr_flgR) Logical*1 LBR_Flg, Cancel_Op, AST_On_Flge Integer Remaining_Size Integer*2 CRC_ValG Common /Global/ Remaining_Size, View_Cr, View_Flg, Bin_Flg, Extr_Flg, , 1 LBR_Flg, Cancel_Op, AST_On_Flg, CRC_Val! Integer*2 DNode(0:255,0:1), BPosu Common /UnSq/ DNode, BPos! Call Get_Byte_Knt( NumNodes, 2 )D BPos = 100n Dnode(0,0) = -(SPEOF+1) Dnode(0,1) = -(SPEOF+1)U NumNodes = NumNodes - 1 Do I = 0, NumNodeso( Call Get_Byte_Knt( DNode( I, 0 ), 2 )( Call Get_Byte_Knt( DNode( I, 1 ), 2 ) EndDo'd Write( 6, * ) 'Translation arrays:'_d Do I = 0, NumNodes0d Write( 6, 1000 ) I, Dnode(I,0), Dnode(I,1),d1000 Format( ' #', I3, 2( ' ', Z4.4 ) ) d EndDo Returne End IC------------------------------------------------------------------------aAC Subroutine called to position to a specified byte of a library oC file opened on LUN 2Ch C Inputs:o!C Byte_Lk The first byte wantedmC_ C Outputs:,C Will put the requested byte in the bufferC IC------------------------------------------------------------------------)# Subroutine Position_Lib( Byte_Lk )  Implicit None Character For_IOS(68)*30  Common /ForIOS/ For_IOS% Integer I, J, K, L, Q, Byte_Lk, IoS 2 Integer First_In, Last_In, Buf_Index, Buf_Length) Integer Out_Index, Out_Length, Out_Num! Byte In_Buf(4096), Out_Buf(512) C Common /Buffers/ First_In, Last_In, Buf_Index, Buf_Length, In_Buf,e+ 1 Out_Buf, Out_Index, Out_Length, Out_Numh+C Check the starting byte that is requestedN 100 Continue= If ( Byte_Lk .lt. First_In ) Goto 150 ! Need to REWIND fileE= If ( Byte_Lk .gt. Last_In ) Goto 200 ! Read the next buffera)C Otherwise byte is in the current buffer# Buf_Index = Byte_Lk - First_In + 1  Return "C Needed to start over in the file150 Continue Rewind 2 Last_In = 0C Read the next buffer 200 Continue Do I = 1, 4096s In_Buf(I) = 0 EndDoE Read( 2, 1010, End=500, Err=800, IoStat=IOS ) Q, ( In_Buf(K),K=1,Q )l(d Write( 6, 1111 ) ( In_Buf(K),K=1,128 ))d1111 Format( 8(/' ', 16( z2.2, ' ' ) ) ), Buf_Length = Qp First_In = Last_In + 1o$ Last_In = First_In + Buf_Length - 1 Goto 100';C End of File Encountered while attempting to find a sectore 500 Continue Rewind 2 First_In = 0e Last_In = 0 Return'C Error occurred on read 800 Continue If ( IOS .gt. 68 ) Then) Type *, 'Unknown error on READ: ', IOS' Else , Type *, 'Error on READ: ', For_IOS( IOS ) EndIf Return 1010 Format( Q, 4096A1 ) End 'PC-------------------------------------------------------------------------------CC Subroutine used to convert a time in MSDOS I*2 format to a string,9C This routine calls a VMS FORTRAN shift routine (ISHFT).(CE C Inputs: "C T 2 byte value containing time 1C Format: Bits 0-4 is number of 2 sec intervals-#C Bits 5-10 is number of minutesu&C Bits 11-15 is the number of hours C Outputs:C T_Str in form: hh:mm:ssCePC------------------------------------------------------------------------------- Subroutine Time_Str( T, T_Str ) Implicit None Integer*2 T, Work Integer Sec, Hr, Min Character T_Str*(*)! Integer*2 H_Mask, M_Mask, S_Mask- Parameter ( H_Mask = 'F800'x, - 1 M_Mask = '07E0'x,  1 S_Mask = '001F'x ) Work = T .and. S_Mask Sec = Work Work = T .and. M_Mask4 Work = IShft( Work, -5 ) ! Shift right 5 !!!VMS!!! Min = Work_ Work = T .and. H_Mask6 Work = IShft( Work, -11 ) ! Shift right 11 !!!VMS!!! Hr = Work/ Write( T_Str, 1000, err = 100 ) Hr, Min, Sec*2a ReturnT 100 Cont00wMYLK H6%! !inue T_Str = 'UnKnown' ReturnC!1000 Format( I2, 2( ':', I2.2 ) ), End iPC-------------------------------------------------------------------------------BC Subroutine used to convert a date in MSDOS File date format intoC a year, month and day. BC ?C This routine uses VMS FORTRAN intrinsic function for shifting,Cf C Inputs:_&C D 2 byte value containing the date Cu C Outputs:C D_Str in form: mm/dd/yyC)PC-------------------------------------------------------------------------------$ Subroutine ARC_Date_Str( D, D_Str )  Implicit None Integer*2 D, Work Integer Yr, Mo, Dy Character D_Str*(*)! Integer*2 Y_Mask, M_Mask, D_Maskl Parameter ( Y_Mask = 'FE00'x,  1 M_Mask = '01E0'x,  1 D_Mask = '001F'x ) Work = D .and. D_Mask Dy = Work Work = D .and. M_Mask4 Work = IShft( Work, -5 ) ! Shift right 5 !!!VMS!!! Mo = Work Work = D .and. Y_Mask4 Work = IShft( Work, -9 ) ! Shift right 9 !!!VMS!!! Yr = Work. Write( D_Str, 1000, err = 100 ) Mo, Dy, Yr+80 Return 100 Continue D_Str = 'UnKnown' Returne!1000 Format( I2, 2( '/', I2.2 ) )d End dPC-------------------------------------------------------------------------------AC Subroutines used to convert a count of days from a base date tol7C a year, month and day. The base date can be selected.sDC This routine uses VMS RTL routines for date and time manipulation.Ca C Inputs: /C BY Base year (ie. 80 is 1-Jan-1980 is day 1)8C D 2 byte value containing the date that is the numberC of days since a base datepCN C Outputs:C D_Str in form: mm/dd/yyC'PC-------------------------------------------------------------------------------( Subroutine LBR_Date_Str( BY, D, D_Str ) Implicit None Integer*2 D, Num_Time(7)y2 Integer BY, Work, Delta(2), Base(2), Act_Date(2): Integer Lib$SubX, Sys$BinTim, Sys$NumTim, Stat !!!VMS!!!& Character D_Str*(*), Temp_Str*23, Err Err = 'T' If ( D .gt. 9999 ) Goto 100 Err = 'B'& Write( Temp_Str, 1001, Err=100 ) BY-1/ Stat = Sys$BinTim( Temp_Str, Base ) !!!VMS!!!- If ( .Not. Stat ) GoTo 100- Err = 'D'# Write( Temp_Str, 1000, Err=100 ) D : Stat = Sys$BinTim( Temp_Str, Delta ) !!!VMS!!! If ( .Not. Stat ) GoTo 100 Err = 'S': Stat = Lib$SubX( Base, Delta, Act_Date, 2 ) !!!VMS!!! If ( .Not. Stat ) GoTo 100: Err = 'N': Stat = Sys$NumTim( Num_Time, Act_Date ) !!!VMS!!! If ( .Not. Stat ) GoTo 100- Err = 'W'9 Write( D_Str, 1002, Err=100 ) Num_Time(2), Num_Time(3),  1 Num_Time(1)-1900 Return 100 Continue* D_Str = 'Cnv Err' // Err ! Can't convert Returnt#1000 Format( I4.4, ' 00:00:00.00' ),51001 Format( '31-DEC-19', I2.2, ' 00:00:00.00' ) h!1002 Format( I2, 2( '/', I2.2 ) )t End PC-------------------------------------------------------------------------------FC Subroutine used to enable the control C trap used as a cancel signal!C for View and Extract functions.aCl$C This routine is very VMS specific!PC------------------------------------------------------------------------------- Subroutine Cancel_AST_Start Implicit None. Integer JPI_ITEM, IO_Func, K, L, IOS, TT_LEN* Integer Lib$GetJPI, Sys$Assign, Sys$QioW Integer*2 TT_Chan Character TT_Name*7 Include '($IODEF)' Include '($JPIDEF)'  External Cancel_AST JPI_Item = JPI$_TerminalC1 IOS = Lib$GetJPI( JPI_ITEM,,,, TT_Name, TT_Len )n. If ( .Not. IOS ) Call Lib$Stop( %Val( IOS ) )1 IOS = Sys$Assign( TT_Name(1:TT_Len), TT_Chan,, ),. If ( .Not. IOS ) Call Lib$Stop( %Val( IOS ) )) IO_Func = IO$_SetMode .or. IO$M_CtrlCASTCE IOS = Sys$QioW( , %Val(TT_Chan), %Val(IO_Func),,,, Cancel_AST,,,,, ). If ( .Not. IOS ) Call Lib$Stop( %Val( IOS ) ) Returns End IPC-------------------------------------------------------------------------------=C Subroutine to set Cancel AST for View and extract functions CwC This routine is VMS specificPC---------------------------------------------------------------------------00M2MJH+%O-%TADATADATA---- Subroutine Cancel_AST Implicit None/ Logical*1 View_Cr, View_flg, Bin_flg, Extr_flgr) Logical*1 LBR_Flg, Cancel_Op, AST_On_Flg0 Integer Remaining_Size Integer*2 CRC_ValG Common /Global/ Remaining_Size, View_Cr, View_Flg, Bin_Flg, Extr_Flg, u, 1 LBR_Flg, Cancel_Op, AST_On_Flg, CRC_Val Cancel_OP = .True.  AST_On_Flg = .False.d& Type *, '+++ Operation Cancelled +++' Type *, ' ' Returno End fNC-----------------------------------------------------------------------------EC Subroutine used to Decompress a file that uses Lempel-Zev crunching)C with adaptive reset of the string table Ce C Inputs:CC Uses CommonC_ C Output:,#C A character code in I*2 variabletCdNC----------------------------------------------------------------------------- Subroutine GetCode( C ) Implicit None% Integer*2 R_Off, Bits, Code, C, Temp  Integer*2 MaxCodeValn3c Common and declarations for Lempel-Zev Crunching t I, Integer Max_bits, H_Size, Init_Bits+ Integer*2 First_Entry, Clear_Ind, Eof_Mark- Parameter ( Max_Bits = 12 ) Parameter ( Init_Bits = 9 ) Parameter ( First_Entry = 257 ) Parameter ( Clear_Ind = 256 ) Parameter ( EOF_Mark = -1 ) Parameter ( H_Size = 5003 ) Logical*1 Clear_Flg+ Byte Suffix(0:H_Size), Stack(0:H_Size)F Byte R_Mask(0:9), L_Mask(0:9)m1 Integer*2 MaxCode, Max_MaxCode, Free_Ent, N_Bits-3 Integer*2 Buf(0:Max_Bits), Buf_Inx, Offset, Size Integer*2 Prefix(0:H_Size)A Common /LZWV/ Clear_Flg, MaxCode, Max_MaxCode, Free_Ent, N_Bits, 8 1 Buf, Buf_Inx, R_Mask, L_Mask, Prefix, Suffix, Stack, 1 Offset, Size c Start code/ If ( Clear_Flg .or. ( Offset .ge. Size ) .or. l$ 1 ( Free_ent .gt. Maxcode ) ) Then=c if the next entry will be too big for current code size T7c then we must increase the size and get a new buffer $ If ( Free_ent .gt. Maxcode ) Then N_Bits = N_Bits + 1% If ( N_Bits .eq. Max_Bits ) Then Maxcode = Max_Maxcode Else-% Maxcode = MaxcodeVal( N_Bits )- EndIf EndIf If ( Clear_Flg ) Then N_Bits = Init_Bitsa# Maxcode = MaxcodeVal( N_Bits )e Clear_Flg = .False. EndIf Do Size = 0, N_Bits-1 Call Get_Char( Code )' If ( Code .eq. EOF_Mark ) Goto 100f Buf( Size ) = Code- EndDo100 Continue If ( Size .le. 0 ) Then C = -1- Returnt EndIf Offset = 0t/c Round size down to integral number of codesB+ Size = Ishft( Size, 3 ) - ( N_bits - 1 )  EndIf R_Off = Offset  Bits = N_Bitsc Get the first byte Buf_Inx = Ishft( R_Off, -3 )- R_Off = R_Off .and. 7 Temp = Buf(Buf_Inx) Buf_Inx = Buf_Inx + 1 c get the first part of the code Code = Ishft( Temp, -R_Off )  Bits = Bits - ( 8 - R_Off ) R_Off = 8 - R_Off *>c get any 8 bit parts in the middle ( <= 1 for up to 16 bits ) If ( Bits .ge. 8 ) Then Temp = Buf( Buf_Inx ) Buf_Inx = Buf_Inx + 1, Code = Code .or. ( IShft( Temp, R_Off ) ) R_Off = R_Off + 8 Bits = Bits - 8 EndIfc High order bits + Temp = Buf( Buf_Inx ) .and. R_Mask( Bits )l* Code = Code .or. ( Ishft( Temp, R_Off ) ) Offset = Offset + N_Bitso C = CodeC Returnh End NC-----------------------------------------------------------------------------@C Main Subroutine to decompress a Lempel Zev crunched file using?C adaptive reset of string buffer when full - Based on ARC V5.0Cd C Inputs:-C None.CI C Outputs:'C Decompresses a member of an ARC fileICENC----------------------------------------------------------------------------- Subroutine DeComp_LZW_Var Implicit None Byte BCode, BFinChar, BTempo= Integer*2 FinChar, OldCode, InCode, Code, St_Inx, MaxCodeVal  Integer*2 Temp  Equivalence ( Temp, BTemp ) Equivalence ( Code, BCode )" Equivalence ( FinChar, BFinChar )3c Common and declarations for Lempel-Zev Crunching -, Integer Max_bits, H_Size, Init_Bits+ Integer*2 First_Entry, Clear_Ind, Eof_Marko Parameter ( Max_Bits = 1200MYLK H6%! ! ) Parameter ( Init_Bits = 9 ) Parameter ( First_Entry = 257 ) Parameter ( Clear_Ind = 256 ) Parameter ( EOF_Mark = -1 ) Parameter ( H_Size = 5003 ) Logical*1 Clear_Flg( Byte Suffix(0:H_Size), Stack(0:H_Size) Byte R_Mask(0:9), L_Mask(0:9) 1 Integer*2 MaxCode, Max_MaxCode, Free_Ent, N_Bitse1 Integer*2 Buf(0:Max_Bits), Buf_Inx, Offset, Sizep Integer*2 Prefix(0:H_Size) A Common /LZWV/ Clear_Flg, MaxCode, Max_MaxCode, Free_Ent, N_Bits, 8 1 Buf, Buf_Inx, R_Mask, L_Mask, Prefix, Suffix, Stack, 1 Offset, Size2 Data R_Mask / '00'x, '01'x, '03'x, '07'x, '0f'x, ) 1 '1f'x, '3f'x, '7f'x, 'ff'x, '00'x /)2 Data L_Mask / 'ff'x, 'fe'x, 'fc'x, 'f8'x, 'f0'x, ) 1 'e0'x, 'c0'x, '80'x, '00'x, '00'x /t/ Logical*1 View_Cr, View_flg, Bin_flg, Extr_flga) Logical*1 LBR_Flg, Cancel_Op, AST_On_Flgd Integer Remaining_Size Integer*2 CRC_ValG Common /Global/ Remaining_Size, View_Cr, View_Flg, Bin_Flg, Extr_Flg, , 1 LBR_Flg, Cancel_Op, AST_On_Flg, CRC_Valc Start of codeu+c Check maximum number of bits used in codei Call Get_Char( Code ) If ( Code .ne. Max_Bits ) Then 6 Type *, '--- Cannot handle bit count of Crunch ---' Return- EndIf N_Bits = Init_Bits Clear_Flg = .False.& CRC_Val = 0 ! Reset some variables$ Offset = 0 ! for the new member Size = 0' MaxCode = MaxcodeVal( N_Bits )l% Max_MaxCode = MaxcodeVal( Max_Bits )r/c Initialize the first 256 entries in the table  Do Code = 255, 0, -1I Prefix(Code) = 0e Suffix(Code) = BCodem EndDo Free_Ent = First_Entryr)c First code must be the actual characterg Call GetCode( OldCode ) FinChar = OldCode If ( OldCode .eq. -1 ) Return Call Put_Char_UnComp( FinChar ) St_Inx = 1B'c Now loop getting codes unyil all doneB Call GetCode( Code ),4 Do While ( ( Code .gt. -1 ) .and. .Not. Cancel_Op )c Clear the table?" If ( Code .eq. Clear_Ind ) Then Do Code = 255, 0, -1= Prefix(Code) = 0  EndDo I Clear_Flg = .True.  Free_Ent = First_Entry - 1  Call GetCode( Code )n If ( Code .eq. -1 ) Return EndIf InCode = Codec Special case for KwKwK string ! If ( Code .ge. Free_Ent ) Thent Stack( St_Inx ) = BFinChar  St_Inx = St_Inx + 1 Code = OldCode  EndIf(c Generate output chars in reverse order Do While ( Code .ge. 256 ) % Stack( St_Inx ) = Suffix( Code )  St_Inx = St_Inx + 1 Code = Prefix( Code ) EndDO# Stack( St_Inx ) = Suffix( Code )s St_Inx = St_Inx + 1 FinChar = Suffix( Code )xc Output them in correct order100 Continue St_Inx = St_Inx - 1 Temp = 0( BTemp = Stack( St_Inx )  Call Put_Char_UnComp( TEMP )u If ( St_Inx .gt. 1 ) GoTo 100C Setup for next codeI Code = Free_ent $ If ( Code .lt. Max_MaxCode ) Then Prefix( Code ) = OldCoded Suffix( Code ) = BFinChar Free_Ent = Code + 1 EndIf OldCode = InCoden Call GetCode( Code )0 EndDo Return1 End tNC-----------------------------------------------------------------------------AC Integer function used to calculate a maximum value based on the-C number of bits to be used-CC Input: C The number of bits to use (I) C Output:<C The maximum (unsigned) value that can be stored in I bitsCCNC-----------------------------------------------------------------------------# Integer*2 Function MaxCodeVal( I )- Integer*2 I, Jo J = 1# MaxCodeVal = ( Ishft( J, I ) - 1 )L Returne End wNC-----------------------------------------------------------------------------7C Subroutine used to calculate a CRC value based on thei C character (byte) passed to it.C,C Input:4C The current CRC value and the byte to add into it C Output: C The updated CRC valueCeNC-----------------------------------------------------------------------------" Subroutine ARC_CRC( CRCVal, Val ) Implicit None) Integer*2 CRCTab(0:255), Temp, I, CRCVal Byte Val, IVal- Equivalence ( I, IVal00M2MJH+%O-%TADATADATA ) Data CRCTab /' 1 '0000'x, 'C0C1'x, 'C181'x, '0140'x, h& 1 'C301'x, '03C0'x, '0280'x, 'C241'x,' 1 'C601'x, '06C0'x, '0780'x, 'C741'x, & 1 '0500'x, 'C5C1'x, 'C481'x, '0440'x,' 1 'CC01'x, '0CC0'x, '0D80'x, 'CD41'x, -& 1 '0F00'x, 'CFC1'x, 'CE81'x, '0E40'x,' 1 '0A00'x, 'CAC1'x, 'CB81'x, '0B40'x, & 1 'C901'x, '09C0'x, '0880'x, 'C841'x,' 1 'D801'x, '18C0'x, '1980'x, 'D941'x, & 1 '1B00'x, 'DBC1'x, 'DA81'x, '1A40'x,' 1 '1E00'x, 'DEC1'x, 'DF81'x, '1F40'x, A& 1 'DD01'x, '1DC0'x, '1C80'x, 'DC41'x,' 1 '1400'x, 'D4C1'x, 'D581'x, '1540'x, i& 1 'D701'x, '17C0'x, '1680'x, 'D641'x,' 1 'D201'x, '12C0'x, '1380'x, 'D341'x, _& 1 '1100'x, 'D1C1'x, 'D081'x, '1040'x,' 1 'F001'x, '30C0'x, '3180'x, 'F141'x, & 1 '3300'x, 'F3C1'x, 'F281'x, '3240'x,' 1 '3600'x, 'F6C1'x, 'F781'x, '3740'x, n& 1 'F501'x, '35C0'x, '3480'x, 'F441'x,' 1 '3C00'x, 'FCC1'x, 'FD81'x, '3D40'x, l& 1 'FF01'x, '3FC0'x, '3E80'x, 'FE41'x,' 1 'FA01'x, '3AC0'x, '3B80'x, 'FB41'x, d& 1 '3900'x, 'F9C1'x, 'F881'x, '3840'x,' 1 '2800'x, 'E8C1'x, 'E981'x, '2940'x, t& 1 'EB01'x, '2BC0'x, '2A80'x, 'EA41'x,' 1 'EE01'x, '2EC0'x, '2F80'x, 'EF41'x, )& 1 '2D00'x, 'EDC1'x, 'EC81'x, '2C40'x,' 1 'E401'x, '24C0'x, '2580'x, 'E541'x, -& 1 '2700'x, 'E7C1'x, 'E681'x, '2640'x,' 1 '2200'x, 'E2C1'x, 'E381'x, '2340'x, t& 1 'E101'x, '21C0'x, '2080'x, 'E041'x,' 1 'A001'x, '60C0'x, '6180'x, 'A141'x, y& 1 '6300'x, 'A3C1'x, 'A281'x, '6240'x,' 1 '6600'x, 'A6C1'x, 'A781'x, '6740'x, -& 1 'A501'x, '65C0'x, '6480'x, 'A441'x,' 1 '6C00'x, 'ACC1'x, 'AD81'x, '6D40'x, t& 1 'AF01'x, '6FC0'x, '6E80'x, 'AE41'x,' 1 'AA01'x, '6AC0'x, '6B80'x, 'AB41'x, m& 1 '6900'x, 'A9C1'x, 'A881'x, '6840'x,' 1 '7800'x, 'B8C1'x, 'B981'x, '7940'x, _& 1 'BB01'x, '7BC0'x, '7A80'x, 'BA41'x,' 1 'BE01'x, '7EC0'x, '7F80'x, 'BF41'x, B& 1 '7D00'x, 'BDC1'x, 'BC81'x, '7C40'x,' 1 'B401'x, '74C0'x, '7580'x, 'B541'x, & 1 '7700'x, 'B7C1'x, 'B681'x, '7640'x,' 1 '7200'x, 'B2C1'x, 'B381'x, '7340'x, & 1 'B101'x, '71C0'x, '7080'x, 'B041'x,' 1 '5000'x, '90C1'x, '9181'x, '5140'x, o& 1 '9301'x, '53C0'x, '5280'x, '9241'x,' 1 '9601'x, '56C0'x, '5780'x, '9741'x, & 1 '5500'x, '95C1'x, '9481'x, '5440'x,' 1 '9C01'x, '5CC0'x, '5D80'x, '9D41'x, k& 1 '5F00'x, '9FC1'x, '9E81'x, '5E40'x,' 1 '5A00'x, '9AC1'x, '9B81'x, '5B40'x, e& 1 '9901'x, '59C0'x, '5880'x, '9841'x,' 1 '8801'x, '48C0'x, '4980'x, '8941'x, n& 1 '4B00'x, '8BC1'x, '8A81'x, '4A40'x,' 1 '4E00'x, '8EC1'x, '8F81'x, '4F40'x, & 1 '8D01'x, '4DC0'x, '4C80'x, '8C41'x,' 1 '4400'x, '84C1'x, '8581'x, '4540'x, & 1 '8701'x, '47C0'x, '4680'x, '8641'x,' 1 '8201'x, '42C0'x, '4380'x, '8341'x, I% 1 '4100'x, '81C1'x, '8081'x, '4040'xh 1 / I = 0 IVal = Valf) Temp = Ishft( CRCVal, -8 ) .and. '00ff'xs? Temp = Temp .xor. CRCTab( ( (CRCVal .Xor. I) .and. '00ff'x ) ) CRCVal = Temp Returnr End dOC------------------------------------------------------------------------------ 5C Subroutine used to calculate the CRC for .LBR filesSCC Input:C Current CRC valueC New byte to include 'C- C Output:-C Updated CRC valueC-OC------------------------------------------------------------------------------M" Subroutine LBR_CRC( CRCVal, Val ) Implicit None Byte Val, Vu6 Integer*2 CRCVal, Temp, I, BitC, BitH, Mask_Bit, Poly$ Data Mask_Bit /15/, Poly /'1021'x/ Integer*4 Long, K Equivalence ( Long, Temp )u Equivalence ( I, V )s I = 0 V = Val Do K = 1, 8 Bitc = IBits( I, 7, 1 )$ BitH = IBits( CrcVal, Mask_Bit, 1 ) Temp = Ishft( I, 1 )  I = Temp .and. 'FF'x Long = 0 ! Temp = Ishft( CrcVal, 1 ) + BitCo If ( BitH .eq. 1 ) Then Temp = Temp .Xor. PolyC EndIf CrcVal = Temp EndDo Returns End00MMK H6%! !\From: HENRY::IN%"carl%CITHEX.CALTECH.EDU%SRI-KL.ARPA%relay.cs.net@rca.com" 29-OCT-1986 13:195To: Bach@DOCKMASTER.ARPA, info-vax@CitHex.Caltech.EduSubj: Re: RE Virtual TerminalsMThe following patch causes all template device numbers to wrap at 999 insteadJof 9999. Modification to make it wrap at other numbers is via the obviouschange.N------------------------------------------------------------------------------F$! Patch to VMS so MINed works with VTA devices (for V4.1-V4.4 of VMS)$!9$! to module SYS file UCBCREDEL.MAR routine IOC$CLONE_UCB$! V4.1 fiche card 389 J07.$!G$! Description: IOC$CLONE_UCB is called to create all template devices.H$! Normally the sequence counts 0-9999 are used, but MINed dies when runG$! on a terminal if the sequence count is greater than 999. This patchG$! changes IOC$CLONE_UCB so that the device numbers wrap at 999 instead $! of 9999.$!4$! Caveats: This patch affects ALL template devices.$!$ PATCH SYS.EXEDEFINE IOC$CLONE_UCB=8000DC8FREPLACE/INST IOC$CLONE_UCB+0A'CMPW B^54(R2),#^D9999'EXIT'CMPW B^54(R2),#^D999'EXITUPDATEEXIT$!>$!(C) 1985, 1986 Caltech Oddhack Committee, No Rights ReservedDEXTERN A Ľ#€ #@q3M2e@CL7.h C'2'VH B"̤aSfA@BBM8Ib* Kź`/ cL\rUwPF]zPgtoљ+Đ׵Sƻ9B`#VP@ X߰W/ 22,nHۭf~K^knj*̰>А(oP&.x 1~W|q>W[q)˱We21\9lݹ:3Ak)l׻/٤_+&aAz;m n_OZth4|S. n~׏~|j]=}7 @!9 IKOFD+sxP4aYixNc A07Q X43kyA&,1h (AM B eB! g@ KX?~gCeEڢ a@ a8d2Ð% L"KBCa(P?gbO',!H(B,d+%&W+ց%3 Ҙ\C4 ˳%#@%O1PP: hR@jшDBLyɑ a #JH)R4H$c95+ S Nvrԣ/Tuҏ,?6 p1y+:> 4(z=9`+pW`TMi U7E,djV_J$ush)T> Z&a]8TF•sag2_RVezLj_8 CG/n! 9  -xhV+ S$O(P ((eQ@^\,@1ㅥJI7r׻I/ e<7@& PzbPA i^W}!q^@!kK`v^-҆ʄa1:5 a{)b w2$kҕ}p9\u^ 94el5 .{@F4nzh#a1\1G%,nsL.9*>f7p9[UJ[PAv@K*f=S_B2*4,e &; V \6XvAh/+wyVtskLĠԪoOVKtY0DH2ϝLU{-+zf6BڣQtE٭ml#òЀ:4$eD?:ud1Kc+гEny6emi[-_qm'dd3W4^\tXhϒ^jUɈxYl̂ y}q]C e2 cKK],dy%ҏtOg7\uV[°i7w[@ dGS^n8/wsduu[8u/˖y{k:$D'cp~'$(_}Bo'!g(`2Qzo'邐.RZeh4}xAQt߂ Hnپ~ uswhwX&gPՆ:7C~,qkxnh}6U^sxV3]v_HX$-e(^QbteC6ҢnpxҖxWkfksh`H\QYl AYaAw͇eFhvAimL`8kL3VFsEH[:WbTASׂDF00M2MJH+%O-%TADATADATAHU qgk' BeEÓUq{oDŽAd7dpoyg]~q:q(P2fPԉxPɢ-IWSn](|610Mwv{Q6]!$p>^j z#G[$ gn8(I)@B V| %Ncx@+jQ2G\vhajxi+)" u)a.G3s?޼c:kirVךc5 dPn{]zSڥ߁F2ڵ3Q W,+d6][ Z1 [8pL@^+;nKݩdD4:HA oժ4Pi4`48{" P(Kɩ1<"whBp'X y $IԡC9qFB$1 .qCC@ ﲂTw X*XɊVWgΰh4tP 4]CNذ!yp,7ώ,pUzKAoRծ0-?Gyj%fr%N"N LL 'ni+Q YP W ziMxaNBRNy.eb*$?n @ &78u`œ7{bM ' "$ SgFŠ_,-*Rޡ3⓫7XCCІ7X I7ngҐ`'LIP)  79IW J#PV-+0r\DW X9:̡&b 0pY02iP並k ~u Kbc;iO*@2Ё6}YhX B;Yd+ۃ`6<*8ZQϞL2JR, s3rR gX;EBNu{n*UC j gL+U7\*7t)0N؆Zv sU9ς6uvzXY "t\ꄉ5sDgsp;o\ˤWtP-Q+LU%z>N(p9e+b<:2WE3tڏmd ,l:\xwp Kk8 !^`gb7l OXB@*Su +1LEi75gQlJFOsghzOq9(XnhzvkmQip)H 07x1rPZ4((X:}ȁOx'#7exAl|!udTX!8VX}衄2AMx/ RH^xCuW(1ypx'e SڒdscXawUXx%zzW>06otxy+@p%'&n`&1f2"-23H{"Rf&nAnwp|Wc"3Xr@(A*ĸ,0\@:ЎsN%FugA!0HvWqT9u + fɑ<C<{1|coqg02I6|,0~7<t>i{@YBI `^ҔuyeW(Zc!Yh)cjy>/ns zw3})8!y“*͹(neY%pם0(pC_Y9BXokim3o#zCwISB 3{qaUSwyHyHђ)py9AIfdhSX'xYsssÙYz)NHZYap-IY[;zLyk Xbؕz&8A vHU7X'ƙi &9tSj\腗gH'8{٤| hT #VJ)S/Ya#B=hXʱ XNHnThHH p‘ !'ipy+5 0^U*'UD%*G2J;|$'^ep400MMK H6%! !~:drQVmxZr"/t [-a|eCAIYw~ (:"PT, `7@BA"(@ گr6#pc2%C rsxYwQw! |9B#D`!0wʖiA34|k~[ZApIpk*84'(`#o/;AaVcPZ<wqc`+͡H7;W 7VX8_- 51$+tл#KŲ.{!+twx#tKdT"rͻ [E/qk B!G.D1ttagCB%;A 0.F Yr[Z CX|/n;)B# 0/ + \[0,{H3tˡ8!zRh*''@Z;7Hl(b~$Ht/b ||-*X}!KvDlz?Sl{;\z4h6ۑBK^x}ۙ}|Qs@{T [(x&Ȍ"C+x0X{B|sPSPRqCx=\;+\{1^0 H LKz܇x+{,K֣̀[ " jcr:.q?#{Yɘqŷozzz 1{|Q`Ȳ{{ނcjp"&y{Ys0[E))""c"0c0+/k/%Bq!$Tryĵŀt++u'B,zrǂ;(nִ;=MϣSq祝.9.b.M}| C0%I=;E0W|ɡlG4Ad[ C7MP쎽}WpDŽz  U Mбȋ q Fs]Nt"7]얉q9" dnU]~rym\bynV:grB)җ^;W.yfq+3 XU : *]X,\aDJ4$%W0&5pέ8j7=DB1܋ `ݓxޮfA0ޏa![{9& $7=''Aq.vJj7a .TTb]Cu"XọtiIXDEm.t-f'r0vY+zHQ =؇Gygpx7$0P(m5R.I"΍Aegɨ %A٤^}$~t0e7|ybHۇ=¸ yq^vk@| …" \^ П{=;3$:DX:@kAF@>{g*97Y~ !6>~ygOvwW7a"@S-uy!uh8~Qwc0Ho&ʵ6.Ty?jɱ*&K.Aotlv%Vw &{xve_^E;=ggȔi~ݡNY?6rM 1y𢎟.BvB7^X_;*ϭ_vA\zIçN>/e{kP)얟DCqOonO |`?No8ZHHOve0vnDWAkwHU!%f~+lp+o'$TylyZyjyXyڦyOy:/RBt[/8AǪ廢 1f/ o.4R]oWd-d~[j^%jzGC@4Dp0E>Lz䫝fny L5.eMg/ۨZ2ۡ6zq'0U|nGC@4Dp0-'4/yXq&3,7 ybފ5{Gr,pmRfnIN)Į(Cf ?ٔ@)pvR v|b@pQdOkwHU[I'Dd +Z2ۡiOϐGC@4Dp0=ckwHU_rBqn8"yS΋eyUp$HmK̀1,ppDzFBF} 9>jzFs$f/U~aS-W-w4[ zoȔp<@Vy;c# pC7x?*'=יp<8y%&0-HWUJ#'+(4Zztt '`T2lr'N@gg/sˆ=HXԋI0 TODs{[_iN 8!Z2 F 肎1#8!; D@\Pɉ_GC@,7rr*rxen=}Gr+-`cD~m usx-(nvufHz: #:wKAt0>Be>EDs[A "`H>q \!`DI>@?S46?A@[rbG崉aLkG!/`d]N@\Pɉ_ZC[YN 肞;ϐtW|B:뺻Z%a 04k%GʴP]YI_*{XAT V8|A!J P YkzPɷ XqT V8F#,--a ʛHDnjZnV+E[?4/t!2IuzG2ZDD%&bwY٨%`Djj@E[%C@[j }GC@ؕDG'F)Ta+mYxipDo#GJv/FޯsB) w$tQM>H>7Gy>>&G^8j$kFor'yb,~1wFj&[}lPG=HXԂ$|ħHুaJx@7v\S\良_>RvM*Dv:G"iwBvEfA dA='pTAO8OsF,s /~%J>qy=t))~= a`Ϻw=t)߯T'QjfnyG->G>E@>qM_-4DXF~Ds_-Fg(PΪFAZf[u#!=l,X~$}^is#P衣,nu"05 ,NԯɑDE8wL#Ds (~'cP8vُcK?DEI>W-DEI>v*YGl\#I"j 8ܡEғ  DSTDIO.HA  /T$C'2ahʄ!SF3iؔ6(PB1 & `Lf%"O@"FA4P!2A1s1F3˨܈s \`Bh "]ԫg@@URj͍Ԍ Hz%8u-ɖ͸oӵ #00M2MJH+%O-%TADATADATAޡ`&XڶSRcF]0dXDqVNUyku>5f%uvYx!] D2h (xsW}B"ff AB&| yᠰGS gI\.6;c62e %Qz{r%Ì G&g ^XϦ PjBwv*Sh{-'\Zʗ}|Ѐ"CLLpE\Qp@ H& MQ+eU_G% X+IPQr,P 5f/N6m=GA1L-RlÑSlws9D&j&`[;W{~( (b*T/6 ): Rn'e:f,8tG?Wў{`֌^~y я8pU  oZ ɢ#Dg " p[l18#6+\2.ԝ0Lba(Piw 5@Nac2>@t+XX#>9^7I6APJ%;ٕ# .%;bElL"4,e_1/vN P*T/d{d d@UbPT&ؔ3FdCޝpi׭#)S!#Kh'QuztG) 3~>1O q-J:fJQl[uMqEGғJtρdڅ wJNzPJ3L , oD<9X7S"ܑ!^-T SED/4&(i3Bf-muʳʅR/$X- 't~9K 3,۩1kHчTiPD/5-RXZѢմlk(%⇚Q`NlRo)$rTMЍ˰k)?Pх i iJ;u86ٻoȔeerVh%g) Zv)=+܊oաL'nըmJ:^Sb{F?Dd)^[E~%ik_WoUkVFGHͭR ,7շ傪> =J :ɍNUeUYU.LN2S0̢ACQ%&{u$^ʸ~qSRҶ?p f`.j"r>WBfaޔ$bV~=S\7:Yo}-@M oqU*} ,O"sHTܑ/JL_e6! 3Crt6ӥWuD/8_ژ~o O7j@21׀wr 6 2E΂Ǐ' j쓟IH uT `ް0 a{t:Ơ9'm ?$? e({ A/7M`@ y8i0v: ^RE@AP6 Wz Xa z;Gb r}ٗ6'~TusGK56_#f`×6 Y-TAB.CA1A ݽZ #Ȕ1MCBF X!Lq"A \0GGNP ')$RI& mĈĔ!O"$T1(H'EIA'U0UAc1l!b6(#k.;aذ 툣EίŚpm pQ)%P4iDe)^g(GD Qi̱ ("c6|iܖ@1 x@1_ 12i"s1b|XPt$HcmAKIhQDTZd~ivDMBTq՗ `zBOFMFLQT$T @/BbnnHrz &piQ !n#$ v \qV Aa)X  B Qn`*lpFt=Q2BBw  jȡc%û.(A ߮C Z@PウGBG[ f:(h\"1_,2ɘTW%DDF"dbvrcLrpq!12 "\Gk"ʱ]aǦu̱G'B)ehTE1Gz߁ʮaQF +^FDt0GhT8ஂ ]3p5]aT0QDXJF(y;a0pd oAm4l1/e!BoÑ,|ʈ+~zV> 4?t`Gu~ ?FD L:a03ѹ+`^w|+`CA恀|u#&qs`5DFD`h)6yw=:dDacŽo ytt hb&_; `/KP,OI-!JPujT);UV  y@D +Xq23۞𭣙,7s*B43 Io'QP)rg|'00MMK H6%! !m6]  ;N!e(+_ s"H<2|BKhZFJTD*JW_D$q0:)eJfLeXop$cZn63t~#6AųS|Sz u' y22*" !"l$:84N2QlS-)S6y`JKst)1љctVd3E ؃P *7K͞UV愩:N,6gf2]3 U>^1Ѿ]%ŤFL1jw`=`m\ULam‚0VˠhE([-Icۼo(p+Z07-j)6z0DnJ;`S-2?*Y :[Y08O8lg*N-4KoV0z p[g(y:qXW /7ٞ-q]Qd-PĢ&srQaZHHf4EAÃ$RΌH`!*6'U BU>2xCҤ֢ԙRƴki ?ЅswUV/3ʤA pTFĈ{ nA q̆-ػ8$p@ BF}j'4 ogA-F w!1R=jRb5<c0:wSG *'+|} LP9 *BѺ [,H/:Kw2k r|/,gpmNW{Vr% S|6P wxAY!B{ :CG^w02CP]YR d'MKZ4OQwBؽwCh>Or;6~]Bt=UE5_s_o}eY1|E֗7{;ʧs$dʧ~LF{){1!VZ60ri' 5]q'iDx$[C21C~&=c=jF-Qqj0J4/₿U 669$t-Gp p%wpA~+f/37E5`-[H +htU$2=(P!G'$([sS]b$gtcC1Z^Tq5B5 $q4{@7 nB$rNG?&R"prG5Gu!tW{oH ׋\kC_Mg1IF ;{KVouL)<7ק7hr2{I1PQ2'{Lq(13UT69y?c6C7tLuH|B)\euض,y@-ճu>Vq ">A Adb&7?'"4xfeg@jd/>2pY+Q s8UN3I[rG{ih0(C sW&wғ"7QFgTde4/tla@9ewRx- /\+3U(<6%hdWP.C\rHu>=-sY:,)g JuR׊HRJx$X6/Yʩ$'O1d{yh4g%w"=SPb "m22ҴS,sBKq4s┗BFIwGv4GuR`i{{ ,y:R(10BЙJ|+zvp{ˢB‰JQĸy{/iyf=a "-E5-bgn5cGy. %2sB{%7ZGOzĠ2јRr2<~7Fڒ!$'*"YQ(BVr`:$5a4rE "t*"7.rB0l70Ѕz<éOSj+R Ji-b!ag*[٫iwi.7S$n"w0r/=2u{$+[Oj1fPndAShd 6ZQ7~zT45S#p60`.+H#e7yVE%RC2<$4XSJ2g[9plOz%/*tJoʥW jeSTxE:˳iUd1zz)EN22@*;13R56FGQ#RMGYiJ4C梲Z.0 pg6)y-#…",gAc۳YcG:6o &=i3B_0 sXT˭ixUX/;2Kmf}tʫk=&0|RU+U$=۷lW4N`pdc+{gF( K gKn+-{˻r+nSD̛kջI$CgE+˛{/+ۻ/ZƂ1DSxf(*٪ƋyȻ#R)lpR- q>t+[?Ѕ++IJPU*0 V,H)Ż\GIU}#Bٸp[Ą&|e),&a%FIJ [1")|<Ĩi*fêHBGu'r]iĭn~Uq #ń'zԻHK.k+)dh6JJrwgɨ--RS*,$XЉ6r!-6S{D,(#=!B_#<@ `} o5c92SDN̺.9b]ogڕ/+,}xe6mE6,]c׊Fڧ9‚<(LR-"4)6Y&Eݟ,F1x!dԓ'CyyKʄA?cY<~hpaj\YL"Qmn%a2&wbyFF-GY1&brE`s j-O-.=N)-mPCcMi1{k;O<Z1+_>ESyڬ])MylnnqN Z>54ڮͷ~7}F )sl߄1Kҳ(an5=.,ꅊ-^RLj4"A<$:&BQó$^_~l{VMj{N|}➥MǁX]cMWq~D)ٕ |_'A'B+Aw}nzx2uVlnj 0;nPMwb[YUior(F#GLo Y"(ohCvJNwoB/^}t\[2$2hB4&VT/_g0 ioВoBJє yvo+0:m=M-{(m 6~s00M2MJH+%O-%TADATADATA@]D#a؁N+ᅮ> Nv٫W-~Ϋ$CF4-& * 2_x+)#­V2A;YݹzӡOnԁ?J(pv0nOO+KlUXl(xvO϶|HNo!>P}S )ӻs$m.wk'Ԍ/;u.OҶ~ڹ(gj͒kg* *hZ*Gm**N7ha*KrR(`3n +o$>{}S`35*- 'K!b-޲:g" :*#',9-V$',X-$sa $1nwXR*+Mz彦lr:TMb RM!!ZNwAQh!ZNw$w2""B6v"%+b ZNw1R7B6s0w!"%+b B6v #)2ڥ%}x#w1RG<'y`_Azd3awAІ&xp`awa[`hR!a$1O",,U+ mP㡣Z1bSwX n5l1R4%WT1R6ngD6spl&p1Qo=UcVM81 )(< *@6#%# Kdc2*@6I&aw0R 'ydr[p#&vpv4OaLG3wMCT;R(6YM)rL%=`5M)%(6wY'a$6 0r`b0Kwa62)`w9#$p* =ix.@+&> 1}jg:Q1o/RBx*q"l,aDcjgcp)2y+gJpH6,*@6sPoR R O@tKbSw2D{ukAh[p,w{Y 2Jp#wr[p>5 @Co:,L*Cs"l@ wa$1FoJpH6,*@6s&?$BG d)ML*cPn"l=c$1gJbSwXfPۓV'IpHM!ۓV~v d3A6mv?HN6js?HN6v@S,TB(*x\1m$B9 ,;_؂'1 (0?B!;2#4¢ML*5hbP^# g*(XfPۓV'y.6}3|GsRE={@#O_#,0+q.4VO`!G<~"|q#52r}L2@U+vW*!=cu$)'dPORw2)n5"muu}3w!;d)-@w!2w2dcD6v # @6qr [p>/# pzBdc[hR*w=p^u91FHm2Rww!1w2ww d)/#ngwL+QEk1Rq,w Powr#wr[@6whR*/wjc #)f&',XS 6S*2@npvN`5 un*JQ麮 z>V40KrRU*1`3+g71@np72@npZz&T>V702 I6v@[`]@ (dAXdKNdcta4?;dct-̐ 0doOdunL)g<9a'Iň @I(@6v@[zS#nLVIdP +(sn}#F1V.# 0d=[@}d%[#b/d- >V90KrRU*ʧS((AodV'hqSu,r`00rz;nR,@6v@[`]dct-mCz" V1 #)w'A6v@[p>V1  unLi`z7W+1SFN ;>sH b1FN ;>sH rz;n,@6v@[`]?ma X*;UGz" V10 #+$',XS 6S*2@npvN,r`40rz;n(@6v@[z81 >V0](J6v@[p^*n=;b*Mgzm* ?,Ѝ[*w'}-#,r`60Oއ ;&V1 #)w'1R dct-`90rz;n(Rdcta4_>V2 #)w'1PU0,@6v@[`F5`%10rz;n(w,@6v@[`F5`%20rz;nB,@6v@[2,@6v@[z81 >V20 #)w' adct,@6v@[z81 >V2@ #)svP˴Γn(02`I-0{n,@6v@[2,zz;nDV?,@6v@[zxizgzz;n,@6v@[2,@6v@[zxK1-/hmpPdphZ*a|72Bz" V0"(dct-0vldctvgzdct-0hrdct-0I6v@[`hrdctA1ri*(dctQo^۴"_~,")Ĉ v@[4&gZnގAqdct-0h8ϮΓn,dB6v@[4t}A6v@[32}=@6v@[`ȷ&B6v@[4`4^~=Ўkq18Oʓq18Ond2$gX Xk ]zz`kzرG֑^"LM4R!C+(&#yPFrTXƍ P|9oڀpΛn̜TYduUXcuVZkV\su`|`&[i k]PY qv$ SP ΀цuXVF1p]r+BDScE2i#_E$Fj%؂fnÇ Wq`$rPCh4$ B1bgM&f6T' k]uTRK5%*7O8a0tqk\iBaZ^~(%X}^:^ Ci$ \!lz4ũ"2A0B 1uAǡ~:@D$a,!)U56e/tƻn(ԞRTQĆ@P PZ 2l|} Jդga_sH5]w_ E'є Y-TAB.HzA c #@)c&2 "7(8C8C"E:qcA^B 0PV H&I8CJS hܠHlWWr':|GHB%{r'+bBjˍAD"Z/( ˿w+5qˋvS %&A51 L69U(EVۅ AmZܩ g>-CASK!oE pwxQ 1hgglU}e#$ E@yc93~JC <˹91CW7LΫ U 4Wp@Z&ʕQi*V8b8%ުTK3cs:QSZ*&Pѝ&+ZՆF_C-r IYah6QڀTb\)hu!ׯuLH%l6LډS⌲xl[W{[6ʁ XB DG2;WIo kt __~lA Bʛq`=,j;?t@ iN|}&PAtbN 8WІv`p|&9,&5FCa9ti>N"2F;H/R S J=sm[#^[-"nq#*M0iq&b!zYӠs*@X_sQ5BDV %wd^jf~la`%j<ŁSzR @s qx)Sa86 $!%x #+聎r~$813/b7z0r &eуh1sa1,Sqd#14t+6TDc"KY.iYI`e!n |/ |OF4v9t(SFT5N43,`APGr`c=džDoXt P}x($eu`sdpk"VcP O@ %|2mhdx8XDb/zlDfCe,1 !lESA"&Af4Pxjbx!ox,A-H捿$ a1ёJG',@a.4QHH-Hc}-1m4:VFx>ȋ $DŁAH<!cs i  *!rH"Ћ8"('A5XOb/ bO<bs!(d9QUyk3w-b,^Hn'1Zv@(|ظQ!\!8"dPJ, tȌ8J'iRٔpt)EhGX&`H7Iz݈ePٚ2l8y`Wωəq y_/8WDmj_hQVvigJm^aOG015a}V4q8TSn+m7D t`@t7IQ,r7H#ݹ(jiGXpcRA Dž,%gDN Wse8NF1L,A*v+;/"(aTH7upWr`9d'di0Y[< mWAvVwl H#N6|jb0k+ }9uRcJMI^ 5}ecKb'2FEMw.  %H)Z*B:wc()* xvfsv9Ha֬,RgO o+Sp>! gtL Jb 1`&J:t״{XKTjPAW&I@j +rˋ(!Swkh5[(}@ȇ|DWbJR5QH2/$NPWS[d;`;Nf?z$s2T$2EV=注@b8I9Ӵ;R$IRXtt,b4W5[NeNJjc1J$%N4  G1&dP#oKwcUqu:[4+~vMD銷"7b8q1T4'.jtXI0 V( :'rst/E(UU\T`&c1yb{?QVdhspAZZ[U1Ϻ2VKhVG _&a9e;WQg<֛ s`#:\'Sp`1-п 5Yv vRb𥴊HD*vHC2Mxij94'RH+tNk*0d*NRH'qx ahr;XuXJPI캋;QT7N;Ze?`X_qƺ<o(YBKQL5SJc@[!_SArm#lCyZ$z[ +\ UW &Vqs'ɐF hbYSWɌeEAw4s3-$@a^$ąsdEp KĜM!M[;^̼[r}Es`Ƥs!+c|laǖ~9f~qȬp̘1B*ŘLs`2y1x%+a%zu0A!X"MqF^n8me T|=V Xërz/#v%:2kkklkqq3V%J-2pU'3W',m Lr3+J_n*tkq2W;>3- 2k`7M=)aloٍzL1`ȭ=[{*ђ=cmP5MBet^Ə`}e;z[0>Z\Ͽa` jf KY% MP7BOe:/WwP>1Fޭ6҅N\w 9׵npGxR R8<>cU=,^2K"@y 0!nP4Bv` o0+|1q 4q)Us<1<`"'nr:*=OU2.U=0~ ڜD+PNh2i*b_o&&1߱nHVATXShUHsHK+t^%G3fo4 Q5ZP1@Ӣ+T?|śUTPWOGr|lśUT~sHE3T pΈ ZrgT]wr-'e4@4#n\VH9 T!I0[qv?.rͰ^ zw:^_\z_]Uv&xQAEJoOAEDebwsVˋc CWqѻ*qQӷ$}obi& 9 /b{zRcW&ؽ- 5}*b>gUy\5/\N\"ȹ^%\pvws0Q5`O]&=axO]K7e4h hCxa/c"-USh$d`3[iсZr-J^Bڷ 97!.pQr9ma^* iA z+)$N^^N?4o|^<hukv EhkX9Z2q?^3Ֆ|֎q.=tw.Q,O^((xDʪDޒ{ 5[!cXEzmSQD냵z حжvӳ>BP=#_Gڂ4x"'^ i03n]籾(Y=u!qX`VqdFeKqyӓ(PPǢMcѱ`z)Pqs&&Kqר^Hm/ <1b}sE7$! Z!aۭܡQYQXlZFV=}Nd!@Fn`qufqdY*nijtd`q=jbwU̶h U]G[,ŒCpĞch oYi@hIgw[,9  zYQʏVЩe(ˬ&oYi hvFլx:?v ,\2SîǷ uݜW+/_"! [q:ʙtQV\I"]ؽ-N)Xv<jv<Ӌ=U L(ǮraP["2Fhr<01&ɝy_c#k(}w^6QfGDgl|Ū zu`UʮeFZ1[9Y>lwnZ_*`ZAiёR !-2J1c\&ӓY3/y| Y2.C.H$A (Oڹ-ȔH9L)T~j,.q9HȠGIOɲ^9%P΄0aj4 {:+uG1e w3?iɨHk10 a]pAą}[C6%Ʃq_̃ɝ^#dOxf4:rnt?њT;CǙ~v*XI_z7qmPE;bܸyP ]E<+N`p㾘Lg8Ad::;>?WYDs\P=c_2.h) b)k[0I&Jepi m< ZDwy^ irwAjj3In2!]7/kLdI1zIp(*6$lhq}/6olV,'gtvJ'#8Wi`;Y's+) $<4vk51R:svhkqpfv(w6oUqu'H0=CfJOjy4ڧeUt5(u/\?]$:edW JN1'eWjogN`w`0 lQ6|(EFAp6[M?h%UA۴P'9D>-`]3w۝\=MhnWƩ`GZd}r^f4l[Hlt$D$0u ?H);b+iJ$7''#WMRCcP+ r**b"1pm EYnFrSaҁC j!ڻd]p0# Xҥ[ b@?+HhĻ"{'M@T:n;`;Ԩh@)$3~1DdkC' xϛKM>e{iO,hGM(eJHu4ADTb}$jj0BF;  <"pP-"+-q8k#H)\~Y!F<)_L4MgPZJ~WzN [uܴ'}i2~ q#hYfX[H¹-,(PÀk8LBk4;EvI6gR89ˣ a8'b$+2l,4o IG7(?0 !N0^hX9N6IIHk\g8"9+r»&(,"DdrD.\\{xse|Rq!3t3pI] C.b/cDu.%QWc[?XG"Bh"̀vn0L)'SG|JU]>J+'\@밮VztPr罞맾e~'}n{Qm~ˎWz"tNL޾fh{M!in( Ja[tHHJtNK?S䬉~<[p[Pi1U"wn3v]n4 6쓨>-70*arw6MK*󱳪nzk_]avRXtk.ڱ(ٝP D"://Y?h~BCbEaaڷsD fm/EadFl/׽"Rl8=p+i12w i i0mݤT~Z{LdJ+~Q|֊BplVEmrNcD*CT-*db/a_PB?hO;WǮ'!~F cNjJڦatˆImz ]NT ‚M#Mi-/[pJG. + Xnt-1>l6!(=K?<] T_Ԧ`n Fr(%w!Arb'0AO21Oiy p6X{ahm [q_1`ΑEqLc4ځ8R-e2>H@""Z$r2ijDoa'A$h*"n@iDrp&dҿbRe21FR/&ShoFm͵gn^m柮m潮my8JdJdoPn]Kq-`t8$kA1ċdҿ!/*"nXnl p vPvmm(PBh QfzD#`fXm/;~]ex2CD*u~A>ߢ*L4~Xm]fp^t0 IrcH+c@.˦*[pvТҶQӯE8)XԆ8$Dաu1^A&*[pi]i=8+6o.j Ȟ8QHfE )c Va^fl~:n% fX*)ĝQE8q-`t l@m#YvID*P*Q9:^͸(88q-`t l`mO[ӯEh;Z˜D^*[pvТҶQӯE8)X^ ޮVxeEs~N ]:m(@T`.Ôm(Ya:m(Oa^ u:m(P\ ;{0L = :Drpj(EOKl_?ؼj(ϵND? U1rf]m]fp^tfoLEn]Kq-`t_Ȯb'*jF_VeH8oqR l ܅tl-Xҿ\\ \m͵$еǏҏUl-XUҿ\\ \m͵$еMhkDmDrp[ l*[p IaI'L[ӯEEp^t l'eyml PeH8o6*[pFmDrp>Dr@q~2R!1c)H#DmĀq642a aLQH [*kc)H#FaLQHWR!1c)H#3DmY[*kc)H#&uVDmY[*kc)H#h@DmO[*kc)H#DmDc(342aaLQH&E(342a67QHq642a's}s|4vArF7Dr@q~UxjOe~ijRM9uKf`mK8q-`th\{kkkn֙n(8JdJR//q2B+B1V-e28ѿV JShoF^#:mˆ6FQfzD#`6Fm2Mo86$+0G=F;Nv@Ϙxl7FgV$[fD(F Nէ/C?ߛϨ}_OrJQHv[ FNۓۻE̶d\ L)cDLO(ei!1c)N}JgQHipUOP_3B,ߧtvݰQHi .l>]kr9ћO׫"EbiɏHۻQH F"qc`Az~To'Ow}}}:$=ہ݅;. $RCly "dݔ`-Mgvh\sr p~Q`G ",p8'"7֚5̑GQEpm]fp^t0DvN (6CzʬR~n緝$zD8Y{׵THH { 腄8iGdoOJKeJ5!}TUCTCȞ]'c$ (ӗZMiG ",+љ9䙞Lm{\PU$Io.}ԏA"QEo.7\`F+gT EPR#8q-`t`doEG/ZMM^ "dopn`7cH֬_keEs}mlRK(ٍ(\[eEs}mlRK(p%`z8$z8|ZR#NDHp^t`w$,*”`st$kA*!B1 D18BKdm-sT-3ͲB(}cާC-*:GH+V&F%aE2bkn0[]s!egvًV&kO!O8q-`ta{腄8zRV&;j$z8|6/X/l0}yh V&\/X/l0}yhN *#3Hp^t(8.r7&lTeH8o еqDF&; @<A&nC)RDp^t l(8J]Q/N Mi'0V(r" r[9(#,#EBJ==Ĩ.=$]rEm#$3QShoFRoQjc00M2MJH+%O-%TADATADATAoLj(j1+XFQT EvQj`xf`tq>MsI rєxFj!bF K/N Mf vpt-0]p-q6Զr" 9er+"f`ts*#D(F Nէ/rFj!bF9(#,#ERH==!bFgĨ.=$]"KQ$z}$I|Rs +dz;?"KQ/ 犵heN/l0}y`XAHdc&!#䫼1(c`A׈YlShoFRCEN/5~۬Ԏެ@4A׈YlShoFiv-\[$z8|×eEs//l0}y$z8|6Ԇ8JdJdolT EvDr1k:&/O0 %}~ J/9׮aB1:~ P˜69jJA׈YleEk$z8|¦On]Kq-`t l<\H#ND{\P3D/l0}yϖ܅kDH֫2Ӭs.t$z8|vmnӬC3( hvm4d֒]['aN:Dӗʇ`l0}y@iA׈Yh/!Oc/Y3.C.HAA ߷% #Ҹæ2 Dq2r܈hb*@i:a͘0l@ #'M1lE#لCGN2;@n3E9':cy)0 xyHӦ  u)TP)2KС"Tlr4,ȇ3kR8Q؃""l135+b Цab 1;,S9@ˁ01` rB1Ev)$1l1F=H``gǗAR̍)!M(؁B|ksYjOndёX hiZ6X c$ZeћFq{gEJ  B =P˧EFLm(+c(IǑ0nmdƃ]pɺ,j]u7o 1E@AOQDy)f$݁a؁P}ikP8hVbͨn?bvIbi槫lcxeTsV/w,;s-(6,DTpo,M5kE]i 47Vvu/L.'WfFVZC7 c!DL01 xft)zgt:$^ dBc`9(XuB0ͻs`#ڷ|wZV6GmƩvy4B L ~7>-z3s ^t!"qIJZf:*c 6A)*5qcj A9vDvΉIt@> <"pE Yp12o QCa ClY Ph$3*f4!1І◩P6emG6$quD&rE2bp#qCz;xDyh8#a !#SNRg"@'p YDҒҬad] $S4?!J6"Ґ a C,ŞGۄ pf@pP8l4ԂH IN-h!H+2l=@R4 OLp>Y SH#`چPj t2 *H%CNx.4|??HMqj$vx5L{9isp (͐3"J'QS=/$ )i( F2sv)R)9uLt.ޡ@C"k [Z!V9rkP/N|~=.g29dITuI#n|/HILt&0[jQT ;*8=V>ME5i;W~ p.<%yVo}bxQcA4ъ2竚 Pv"݅6:4T L2_(Nx!l(M&HT;">LzWMg23S Y1"yM]~A*C$N) fB7l0l&EК% R[Wlb, Dd>tMySDY7DZ]i)ZVl9QK U B-,j ]6h$z,C05H :LEɍJRʠo%ܤ!et ۚ Q a[4IMm8MūCf_к!(k`Ml ꛄ@&\$G2aĺ'L0n]d]-kiL4|0{ς ¥Ȥ:+Tik4toqz]:zKYc[ZQz5KAcВԤ _:#bTJ{sb22s̜A%#U -M݌QC uUS2p K8״8 fF|$?Zq>}gK`Q#ɏPuЪsk^B|L)i5w@Ïw\6t}A95xʁ @T\|VD{1`|sza:\g?`Ga(|S.qtG07.Daip^a{AR0dpw3q/րc}g8#$ؗ}z CC 45YW2'2+R'p"]1&P&"$3hZqy`i6`u4gEcfl7|]aEq{t`(]/t{R6-Ab?Zvb Q$CEu`8aGVNWQGcd1z8akbGk|?nR$h}:r%q"6MqpW C L*.w-8A8&".RAahk(m1sс8n.T/30b0v& >Rw3B<B#D%d\3xcdAC@AJHA.{s`1.JU`x/IMf)( y<#!mP&,a5)h?t6(M#BjVklFTvpdrЎ1xN3P~E`E(. |^ bYe9"AflhcWB`;wxc;yAs9rCӘ%P=B\}Z=#>S "*T?49Tcwa9tj_nFIy ~2O0i,GqmEc eY.R'CpDa9=)V#<-sP|6I)qb-C;dv9/3y E R1QQSf9)IkR!k61QNu S>9.枻Wmg̴2{11HۗlYt`e~@u\i|la~a",֙œŌ;o:#Zl9 P{>Db&`~SN! Ys꣖; qGtgFY`E&Y ' #zu޹ {6PB сd (W ,zc *P $ (zbƄ `Fla` Z@X)^F[F2. J V~ф獳ƭNx( .کJJ>0"$*&N*hZu-PG1zŦul.POKj; jkv://a 1j&s*[a߂P,PË&y [w ZMUuOO#g 4۰9hY[UH5 \Z.pN$4D0W!d܀-6J `,dLȫ &3P6KyRIi|,1E M0bih9:rZt7U*[|Zz75VSCptfSJXqIIH%[1b;yvnE,jBTx%NUj#pu|!AAwvʹҁe>0J'PFa+'37́4C+#- FH!HEp 䆌nJF22!9@hC bG6&;Teц6"Y1Y5o)d6w"BzD/#;WRB%cU8#Qʼn9XS3x2tȋB[XV#(D;;u@tDxN/ 'I7)$]߆$MfܘbL8 €}wU&(Urpj ˷o`7LH9Ҕdew"pDd2؍D$eNQCrAR#=gS<ӣ^CoVpX]""dQmp%9Y5N#~ `O4T}#C#N @3F9W 13aZT|3u0p+zv6 y-p54#)#]|s*2:#&`[ i6%llI^:ZYACC.DOC8 e_ʀ 8^Ĩ RASD C#g 4vyN4nLA9i̤C6.@8mN6&@͝2q'sa(I;ߐijC3o䴹4f)H欛I M;øqLZeܘ\ KLiA2\Ĉ"4yf7uؐA48@iX0mpQK #P3p5Htr<1r45ef̜%f6 ]\`eXFv%T"8fEw4πt "xF@@f.8A<޿/>ȘDv- Ǔ/ony:gG}Z}po Gq4 sqq sCc?[l|~0`vq]t|p tЀ Ѐ)02@j: $:`00=QDjTqhV:IjElٖ FvƷ }P' }_x)LJ9_+֡t_tfq2A?H]WBX Pkf>}m4?6>j*.5GpDVcpLlQx캬1> ~;š|4xk=ar}g=%<20 8LN4,k 7OSq‚kXC]'G!B꓎ AOd!#m@ k̚#,Vkat+.k|¿;\7<,:$d.g~$l\"nB9=J^y'RC zFO!2̣\p?~ J:~`>zV. OڱNtp{`cq{\pWM ]5\ 4"ݰ/9jhH.TU5%:vﴦ m>=aX#N=t +WD$Tu@ #RdTHG  ,  ,H.XHp0A6k`DDҚ8Clhk\LUQ5|"249Q`@ qoc]&ұ ჊]4@Rl> ޼(cUJu`6 @cA1:F #WjAhMt(c nlS\:@/;0NGhf4<: ę lcyYF%Ko@r_30;3"t]EFRU^N!!t_%NG|PHЀHp/!_cS$yw WROusSG9`"%NxsO4-!Poy@q΅&|!Lv{} /Laj7Wu8~OTFtPp~!af*=d  b6`+[-aP0HaLDmx p8BG6 Mt% } Ri5pi&_PlHWB-Pd$P! ?hmhC ؆gЇ"+ Q Pt}+ h(0dЇF"rrFQpC//Wߘ$MAdӎ(0 DP0 HpЎ Ў t7> \H +Of:AB(4p )w)) "!)أ#>Q!$s]C@E)7IOd( P^@2_0).@)[pD* ``C@TK# kͦ pɔ>eOp4ow@DV@ ;`yNRy|\ @i0_B/`r00NMK H6%! ! t5"P8c`b[xypP0Suv yI&I WfE'IYešp `h~H\PZP 0ٞ%  @N@TuP;bP04`.@ ^3zq>ZY&ڙ=q!V$ 鸤aOZX(iJʤWJZ &aTt,P S$KgK@p y$Fҡc\#TU0@`q` 4 i$YħXW@FRz٥ A`O^ "JFҜL _Zbꢫ^ *AJѺ"WFWzʧ&`A`jFb  [mc`YF2YuPHo`0Ŧ$F@"K+  'e&c 0: j3ff/B"xbY0*0 vPVIkv< 3p  !Po,o; }pH[`  I" j fT ` Re  รa0 `0 = p+3k `P^ ` P ǹ /陴  PpN`rPF1ѳt@~#`/0P =/n` ZXоeu#ER+>@tpk?Iӓ$P 0k\ [ p 7R#Ij Jl<J+e;kķa`^и`ƻJw01 ƹk$:+Gp1ZJƸ<L[ :; <~>гұxث~+^pq吿<p uQ& Dz[v"=zg`0<$P"FPe+I P- LF2ul%0Xj;ȵ ]`FS{A}\t \Юt a6(=6;ee-]Fa,a/ !3^e&0W L c#a$+'8 aT5෴l˷ ?fW k|P ?M":m06>`R]̻a ^s6a}lSU "3 G %0fݸuP^ P؉rڋs!)?t ds9pmͳ`"qI%h Ap 4 #KLx(W)ٹ"}?XRBWF 3LALZp E=<+@nA Ӎ 6Y $0ˍ{e P μ(ԍң4vr w_64.u0~.ԑ -,(1⡠,㿁G>տFnHK?}|y4L(2LDD{a nTEbym+oYLu #?MvҏC9]ѷg^^ =0~qeyAn gf-) lP o8H#\<}KKkB)<7 ̝ ASpi%ܰpn(=,V fݴ1+%$^L0#$V٣eV7Z+N sQBA\0q+g@'O -߱0 3 0? 3O PA0a 3A 1OjK:-|4pfc2"BJvp~: pQdASdo2vp:EyzU"!;nVo$NY2@sy`McwyO'*BviH=pCe*]B0F`oW }EKYIW crMM3>@l%.f6H dy~P\LAfP(RcM$".߂B4P(ak`<2/G2Q1#v@>n`Sor5U Ut`t Q5U 5#%o}kĀ,@OxKo]k`U!Ԑoc39L8&iB&V'eY,Iڑ"0eÑ#@%qϊt5(p,.O !HY@=ϼRt (K&o&W 3 nBEe/u@bu@0 [nlf}Vb-f6P1n`n-pr6 uk[TQcplַmOzL jk3kf'0:l 8 LTǦ~ ȶ+mMSoőEICl*m-R-ޖ!o";-n-pr&!h*S>ASeP$63ؐPr/¿N`g//C0 30N#_ 1"R"op(M2ڑ/PP_ "` HW1oI#R1 e PMD@ؚU tHm[}_!i)@LPV&yUH`-/4 P?y*ZӀ%uڑ+A@%mYT0-Д#%HWPa] /4 P?/ 0 ?P=%pERIӀ%/3; ~p%"&^@Q >07900t 0 060 QF`M{ON`DucA0 t$PMK&ق}q\* t $kF'#[t $`UwP tU $$pK< MW@@NW"ڂ3 wM P=swMa&|w"RHB;"AA{7-"`5jS9a&Pi("Rx.ei02ق1e{Q$$_H>Vaa&Pi("RHB;"&(MA=p]61Y @a@M e>y_ "ReרS}uSE"PIP;! $uPZ > MW V%kGG MW tlGQah.>pDwURonX MWw $ i aExZȅ99( `"p,OTprpCqR-0"k9T"oS'؂!uqOTph'8i0iư0p*Lops(#T"ta &a> i2-"4esGȏT"yBA.P 'uUZ S y2`t#$dȰbj(i"SAI_ $)M9hT"Sh XA( ̠ MWHVH(pd Pݠ86 fia"00N2MJH+%O-%TADATADATA/؀UVA(XvƋ(0.J-`$Dt  }I0.J-`^D:D9؀7õŀ/ (`߀ (`㐥J-`@ѿ 66@Зa J8@ѐm`DdiBf2H굓hp""EbV3e"Eb6YIbs;0}chrZF:3 HQp"R6!eAN|N5f;c2 FW-_: iE6hp6@,Absu26@,Ab6YIbs`u260~cZP'`@O &@3H,+|U!J2.;i(RdA= ;PEcb<0eUv`$N🦅 ! MWBi(oOS ` f=O-"Xl?šl`$N<#ep t &"}P}F=7 MW`mUC MWOJ& cp [X ko{i@A_6@,Abs6@,AbВ!E.or"-0Z.̑E[+#e`#1rvI@%rZk"bsc>e`#o  ju-0.̑E[T\DR5 7u щK0@C66 >~Pk'86 |E(a t_및!$( kE&pc1[tҦ:@%yJPI0r! 9ޠLJ,Ypei8ZPbo&!0-քpe"se4ePp"R'8"E&h-ROh@I %R0P>xo>~p%ă@ tuKJ y4/Cw go-EICh'orPH[N P1R#e&P@Ճ @ ǂ4'$UnZo>~Pk'1#(1 tU9uAqkE2&F!idZT@9SHX(BbfTuY񄹹s'_àol"YfOTprp"wqv-0S0nYcs5vc2:5 F0 ,5h P4lp5*& Y*QPW 7.u0Z&QwѠ8~n#Uph#-x1 HXdrPH1 Р8E<&` O3a&P)@##0@S O?&<i#3$y3" AO=\A`kVEBMa t5 PMKb[ ^ 5 5XP 7 7p8r q8{9"#U`, 9 Q!&0c.[t ["u2UZ$0,RH2P?2["@uPNWnLґ1w#/:2(Hc t fOK~-P3/>EE[Q TN 6#:y0\yJ-0r[tU [$ sn`Pw`v󟨣Ѫ R - mNW%n]p1SIO$xQ ~ 3} ڢNI0:2(H t_b*X , 1A ,0\Y"~J ^ZFJU$V !*peUd$V !!*P$Z%,Kb[/`v KC9@1J O Hr2 U+Kb[tp!\`U$V ! FN3k" ̀[U+$p 0 [̠YU+0\m E_%tLit& MWyK5a d(V3 yTְ W%%cڑ  2^\ 9@ 9ɐƛ9@3$0!2"t% ّ!kTR[te [F$" P(V  MW_"ye"F:Q uVa(EZ0f"RF:% uVa(EZP0Q @ f"9@1 U!x ʠ8E~U'h3Fd` 0=&ՠ87B9@6a$ Ta ' cW 6  Q:g `Vn :]^D4ȹ`WVRfU\peR=iq9\ nq ;  ;հ} ;p0;\f!\;!/4! -!ɽ&! .' O!\ Å4Y T-ȉg7߂xsp7i0 8e`7pcru&|@7`ぜ|:tPHqɠ8&~ @`c S&!\@7^K" }C&@&KD5AQu>~V5196h ̜!63ʐ& ` 06^兒yJ9P`Pu %P %yZ8%yj(!_@"à 4˧NjR`tu G 9Q˧NjR`!I G `o*5% XH_ V~eF$`'N"b5u_]F|R&NAka5ǀu# ut% ?i"n?[RQ @PQ @PQ @ PQ @Ah @=9@1 e9PQ/ b^l$G@>2>'00NMK H6%! !%6\6K @q4WV ӗ9O? *=;S|txȿ+@`!2`YPQ>@` @k3 Am=@P@@0}{ @ v9!e q9*e$RFJ*e З9/IykN0RUy P^(9p * ˟tP|nJ-0 ;fR0Wf 9GIY ˟u0Ҧ ˟uPUQ;j6VA6!˟uHITr-m8yZPQ_@ PQ;:FupCȿ+@"B霔6yJ`` `!2`Y?` e904W6ko `m.N+  4 v9  @yp`  4RFJ@  ~@yp @4 q94gRFJ  0@yp*e `4 b9P P@ f9 P@ j9 N $VP *tt tt0u@np PQ/p9fnp7EWKP e9PQ:p ՙ3W6{c31 P T*  %V@ eD"|9"3@ uV/TG"o [C 8E_HV"f6P rM/P!HNя3K&d;k0e3Ee'MS;9:f}Ae}f/8v D5]J!cbOv&W jfphmos !h*<nlַmOt8"VYD6e R#0ft  1rc E&d1Bto4!f+B{ 1ptd2&F}q\*Zt@u  MW&~``{utWX#tt#` 1 %0 +0 H0}-M/;@ sp6paP2;0C6& @ 0 ! ``hzƀ *$@<t@<u0`vt+`|&`t@<9 2, @90AA WU S>% 00~0E  2,X Y9Ab f˰?PV@> 9 `  9Q^`M@  !P^<t ÀZ P' K% À[0P@ 0 \[0> 9 `  9Q^@ @  !P^@  P^ÀZ P@  !0 @ 0 E Z,0  0 Zp`b !P^yQ0}; tA E@DP `r< ð@  P 0  P 0@` 90zlЍ`y $1a50zl`y1 D`yŦAB5쐌BX2DQ*%`h@>E`p!PW `)`q!`n0`p0`o0_ٝ2`o)`0`n)6^TtlV}yP^`l@>E`.PP#̕\^Ft~LP*\^TFCx3~00t twwwwwwwwwwwwwwwwwwwwwwwwwwwwwwIwwww=wwCpr(gqa` h)1 hl`^P^Pdhe#`qxcRf h)T<@V>} aq)-BC >5ڰ)@9@l \k Vi ` hZO`qG P^)`lH@Dp$pcqa` h@lU$`~EP a h?`BR a h~p! a h~p!`b q` `hLdhLhq"h`l p0r 0H`hHAbAQ aq)P l ` qi`)`q o0u lyA`UyYn/_gqbFUWO` o0 ly_Da `uO^_uO^_p)IiIU^@%" \[*i] - 7$XH_B-0*ƒ 0 2lF`i] T vvHFvBxi`  V B}VBHV>ĵ2}uVB 0P 000КB 7P 000I/_ZIJ%F BذRЖ)QD Fv  J/  m c "@\a S T.=3 ]"@vAcFn:9AAl1B^$`0vƐuB^UCpG`tX yOȊZhN,0D˙8(ڱb4dO0OfQI<׀$t,':Q J pp 8GGк~t$ 8.sP>6F ͦ!m@@0VB--nD|  $, ?nۭ<@.1梫?tp`0JRxk?C+AӋ09 :4 L00N2MJH+%O-%TADATADATAʪ)c!0?K 3'(/>m\@C(G"sک&3c4:+Ĝ 4N\7;oDBPc!J@ d΀Tv(Xbud-@4,O P"4$b$e,{>ֿ+B;<qe9 >B"Y@uT">P)48*  .D(8(qm{к: a &.s AxC=`D 4@@~X=a~(  Zp{@^A lǭA| Б; ;,|x$!8FF<P[:Arq "H`%tH?RG/cKb|!0H>2xU&| X 9RX0=E y s LÉ7D@ %X JTrG` ;4^,BYi=85, t=y#ݾeoaw1\ΘG4Iy (=V FJ`c A-}k,F ˓"Qap!X HT)yÑ$.$8qaHU5if$`:h9CW&&0 $G/ @':`=!0K?Xs{8 L:wD^y@skʷ"0"Afa[AApRwXbdR `>_ݲ>.+ \P-,[@2T"޸"8+pqwq2%ZMDZ ato`wu;p:sS (AԭnE͏uCGp,UN{Fn#&C`y:@=v2!{WX}q }?'Qiϼ?^x{5/V׉ ]h?`m_d?Sf7])u\s١/\ 4=gN tbuV*{Aw:с~P~)uSL?CDdoRapGp-,uwD?Cu2\J;WsK4D) A1S9EY0Y,s TMU^~uAmF5-swfgk4)GS*xa'/Lvp S ;m3PEPVTA㵄 0)oVX{-X1HT4KbKUp@H#2W+T8=5imiI(>9%sp3vP7w?w{;cn|-to0HP2TE}Z+5"b]hHPgcBue_O=VE?s,=0ANJvj /P=-[Gxu@PCUDXINO JTP_.c2x8b}7~ P:~'%+GSCn9P+@cw J-:sP. [:Iw;B`0=)3:l9@JWPEXl?@D)Ra1fјD!w4l߳3F^sHmR$PA11H_Mt@.VHNxWbIW r,w!<_%'(uDtTEr@T2MTB9XupC؇IJ`E2yqT.+GQyW@gXErC=%AA0p4(S/TiZ^X0RMGx{IE, *8E=hHAJ¡cז؁8cH; sR@q4E@bI`Pgt?ā)HiU`_pY D/x^h& ӝÊeGm68ԖrUTP7YXGq`q{5yזW;p^fWDa1a.7Ii*2G`-$8U`d1ڡ0'd 9nɄp4c?sG`rs >lMu=K4KK:pӰ0OR*6Pdw+0pYUJFe`_ qgI*v0GsD+D 0Ts` 5=0{0!07jǣ'P?kBk?}ڟ-[7`jxxkD Icn d*T}G00 [_  l ՚t `H;9%3?tk}3ܒp7P*iëS9psI~Ӕ  |à4ppbIp [Es8G[oٚDLBKYƽk1?271o7P\67e& *.aX%4D46@ 5_'|0u4 @ 0A|svKrLTW(Ս#k+$0"z6G$<Z =8`B ;IhˀŽw8#ASt+! 6[hz[]D .w<lx%h5 0<^i*S`* f``gp=6g ̀p /4dRC <_c , @)<Ί͊Lgװ) M<0F0J=m#uCq*2AmWM ysp` ѐP LjG@ 3]sZ & 3 ZXM}3D&T &{0o ]0  :0jQ=XV A<wS'tm^w' t}g-@c!Vp = 8pP P:Ӂ U qӀ` c ; 0 ݰp=0p]` tnxEsn 0 !. yPp`6 p` ՠ:?$ _6 ` %?ր~V Q0P#?7 D+ 7 ɰԏ 0 P6t-Ppp3r/P8@a p ^Рa[/8 2O65<C_7  `t ` Eꀙ PB]n$Ѝ@?5o7L ,   DF P4 0 .3MY:`_? ȪawvF+-^0 O .p=t$9x@rw0R? ` @tj@vg@exzO@Bv^ }R X `$c@R`xz?4oqRnyfuCO3 go^#i 픏,`0G J  `Ā@Bv^ } X `$c_v^t_$v^V0 Q.pp _tPK 0Np7sjpq `G_C+@t l_@Ѡр 0Gs^ wt}^2 Xp:`s^0 != p i7Fo piFO;_ G@_F Y? 0j8 i;w7`:@F_};@_Q=$ pq|@< Xz:@P_z[juPgpu90;@q;|0 SqR`0.p _rðt= Sq0.p _[0 ]ρw\T= ]1DÀO.pC_qO[ _u0P_F`@_Oj@gp@c0v^; tʰH4` PȰʰ0@s А g 0wa:PF_#0PcpPgPjP  Rr0@c0@gp@jwPP5=`0Pc0@gpPgPjwPPP~@"u`J 0P g P P  P g 0 P _oxz?4;;|@0qR=cxzwa0PF_P jp cPP @u PjpcM4N0 @u uɐpc*47gP7 0l40]p_:@ P '["pwrp; c/+ cp jP P2q+04;;|@0=,P _fxz qo @v^ P_F`t}@ׇPj? Ct}p@8t}0p  0@ g @ P/  &p @8`C`A@c\cAP cpQ0P c&P ?R PVA!0P g?R P@8X!0m2P jO+j5PcpP jO+jPgP PpP c?P jO+jE8XO!0P g?R PVCRPgP PVA!P _ _osV@!=IeV !3L:@DmVO3A B !08m0ä{]B@ < !{]DdTL:V _.P|sn]OfV@e? !{Dma/p& "jSaPPoQ !g!KL: 1[p8T2\+a @ > !3L:A0P c&P ?R PVASPtPp3crPs.00ep@y.00p`i  3tgPn.0u@pPt.02u@ 3hdPp o@ 3um0ny.00alp@ 3o@hPr0 3DNP 3p6a3 5?nn@e mnl%0 e`e  @e i`e0 nkPns@rn@nn@e mnl%0 o@ @e`ie@n@e nlYc0 Pr o :piPl@ Pd ftle rr;olnP Pdtomn okhPa@ 0e@syp0nsc0antfn@ 6e  Psyp0nscyry 2ycy@e`a0c up0antrPoe c@inpep`ieyc02Pwm0ka0cs@a@enlo Pr o Iomn 0ttPs Pd%@]riaso%@/Pdnn@e mnl0Qd%@ prmrPlPso%@/Pds@a@e0Qdsi`trPdPcPVdrPdPcP/ e@u0ecn`lc@srPpr@e@Qd%@ po knp 0e@su0e@eo y 0ttPse@c Pd%@6e  Pd%@Qd%@ @i0tn0tloaedsPt0Qdet aco0u e0Qdsi`tet iPso%@ Px0etos%@ po@oet iPs%@ Pn@re0 0a`e@ ygt @e`aPlIcn`lc@s;Vdsi`trPdPcPoPdrPdPcP/ e@u0e:ci@eob@(%@)@!@aS3>+?o aycc@e si dpsadltPrl0lepa p@in P00/N2MJH+%O-%TADATADATAc.cno@ pPnipPtflP %0".`Gcno@ pPndPf0 `ie %0".`Gcno@ pPnif `ie %0"`v4antoebeflP"Ps a0cupv4antoe]m `ieyc02Pwm`Gcno@ pPna0to `ie/ *C etPdb 0S@ A0C(B C `rm"Ps  /$Pn@Pr o @a0cPp@ a@ P%0t0ntcn0t u0to a@ 0ytxi P%@yeDyerPdPcto fpoe PsDyerPdPcto fnn@e mnl%0QdPcto fp e0e@ecP fPse@e0l0na@ino`pP f%0lPa0edPfnPpP ubPro` Pse0nle Pn e0opnzPdcc@e :%1ytxe rr %nPxe0tPdE$e`o e%P0dPfnP y0lPnyc=-1dPfnP yPr o yPr fap  1i`n@e` YADPP@H#@e`ieYMX@ET 5 0edf#fdPfYS@YE#@e`ieYS@YEi4edfetPr Y0TPP yvl /C0D&DU0 E /YS@YEyvl *0S@ ` @QSLPX*!a@ 0ytxo `i s@ ueDoe lepa nLSo` prmrPlPlepa ue i0snp 0ei0oo r|?ilPgl%Pp e0 0ytxnn@e mnl%0 lepa f@e  P%rPc 0a0e%@.b ek@$PdmrPa PdrPlPsmPs@ e@u navlPeosn0eLShsapyedPfuta0to 0aPsPsptPn@ilpyeca0hmrPa PdrPlPs/ Pn@ fa0tos*#ie%@QNXYC0 C0DV0nin@)3a0c-iiflP Spi@ce0: 0- 0C etP @e`ii@in0 edPrflP3i3>rPa@ep0nsPrdPs0rp@inflP DPfutipPtflP Px@eso s"Y Ae`sflP 0aenmP&."etPn0in̑n`oflP 0aenmP&."etPn0inc@inpa lP vPr`lvosa0ei c@inpa lP@Qd%@,%@!uentrPdPcPd 0%0QdrPlPsnPvPrrPdPcPdso tyec[ { Pd e@u0erPdPcP 0ofi0t( e@'s%@ n@ Pd)o PsȏYD Pd 0hf@/ e@u0ecn`lc@ si`t%@&e@' Pd n%0*o t%0[=%@d ;,-Vd̑%@VdQd%@, 2o%@,̡s@a@e%@̑%0̑%0̡ Ps;c0ete rrhf@ Pde@u0e%@  rPdPcP Pd̡  e r& Ps po@o%@1 @e`ie%0 Pdyc01PwmotmzPrcno@ pPnpep`iebdpep`iebdpep`ieS@a@e%@:nPlQ4@ c%@d;yc01Pwm 0nryo`e fo`Ga&a vPr`lvotPria Pdoet ya@ Pdcno@ lcP po@o%@u@ fsa0ent  Pdomx=%@p@iie  0pcP PsPd nu@ Pd%@u@pPt%@/Pd%@beet iPso%@ e omxmPmsrPa@:%@aiu f`sPt PdS@a@e%@:et ya@ Pdeul0 0ttP PdoPto` 0pcP notmzPra&a0lb e  fa&ao0' Pdob PdS@a@e%@:et ya@ PdE rr `alPrP lcP 0ttP PdwrigsPto`e fo`GoPto` 0ttP 0pcPPssoPl@ a`ebPe @e`ie@ PiPr 0 ie%@!a@ 0ytxo @<dPn@>caPsPy`a%0lepa PsP f$Pdyp`t-Pdu0tse0i`ypyeo` @%@%0POAisdP 0omPn@eplnP ns@rnp rc 0os@.Ens@rnp rcc@e  0os@ata0to @oPsntpe mntP#lnP Pd 0dPfnP PNO Aye@e` Pno;ye@e` Pno;VOAecutPrPdwiep o0e0snp P%PnoYS@YEYS@YE Px@e nYS@YEyl`a; 0 ie%@Qo` e`o e%tIomn otPriasolmt%@Iomn]riasolmt%@n`ai@ Ps0aeilP007NMK H6%! !gl\3cn0t u0top\3~ silPgl#dPfnP Ps%@1 @e`ie%0 PdmPs@ 0pPcfpP `o  Ps#dPfnP YPR CDP PdutPria@e@{ .0  0lu0eilPglo  i0snp p r"De mDoee`tnns0o0 igtp e0*JFIpPRinivlde0cpPrilPglrPsPr`e@ po d PsilPglcmetEn0i@ecmet8P9?@#dPfnP YA0T%@̑yc@ya0typpohr@ Ps]{Q4@}o@ Pn eo yCNR.S@.Cn@rlC h4 ?`$ P E. ` *@i`i@eb e oO`e fop**Pr o  nFotnp on@* lPa0c upSyc0 0ttP/ooke rrDo ays@a@e0%@/Pdpe mnl0Vd%@ otPriYACC.HLPA  d1RԠ$X@@挜0mڔsb&a fI&E.,'̘1 ZSob̛6pҰ(RY*(SL M[r! ۄ#H)C$B%'\ dZ;x 2x0#L3  :a,9Ag:Gv4cЀ@\f2i3ݜ̛yTBN;YmbcL7u w3iʐx2nG3gceb4?Ay7 R͔ck  ;.a^_O-E (&[ qQ}WQd;qYmV 8Fdȗ"KI?ARzddGeQMQY^!F&m|yQrVYFNұGNґ׉s g(zL V\h :*%bi@WcWcҘe iM7A(̔g[`GlgncyP>QK_CB@venen Bs rOf:`g᷑l~7^yu4emZr{@^˂X d5,-ejFFm.F_tYX זUcORa %OsiPlN_jg MF^`~}{BmYN-*ʽEY]5mbj4 "ou5jJ-8pIk5~yEoiah!zNn =i viHMik}x^/' c Iltix&FZi|A@]Ϻ>Vec ƞrji'H5EESgbFRI YACC.LSTmA  LP2ryD 8t!3 dTL҈FN2!RPJ /p2tȀ4lʸ Ӧ "x $2sx af̚!S!RL-H$U RIӔ`F* !A$ILHp䰁0x1#G6q6Dʔ"d@ 3C2j̊;ƍ;=ȡFBH Vme0fnLmSwM#8,-"DiH ϡO]dݼ} J! A$ vjϩ7_u6ٗ- Ar 50's2cI]~yB1&`i1Cn0F 5H[~½83 8Ȑs79ZD ,FI!D~'` P×GXAx}[yaYv@i{ C>֧e-Z!4`K:V$v1A1Y?FO3%*ԗSj* jir9wry*#`6f:p8p`DbXuQ; a (Ei`;1iQƽ$FVRW$cYACCDIFS.DOC} A I ( A YfDҘ1SFN7c9h 4i fL68ƎFa@AFJ6!U13R"E_)CN @AS&2w@0t eYQj1s\@:dϐI4d-C .X ;aDS_cЀΜ2WRU&4lRcNV6s7Jp C'h\mM:!8qitvT`iH"ͤYlAy! P9 v* #&4zq) 7Q&mSN:tyc!iamoLlCj=`TC4Cvہ@aw uEs'=lV"97$xTcPl\cg!9fj&Z=mk<mf#91i6cxIs+g5=`9a6Ysl9t]HtH'${G5Q^{.z FKK KK!sNAFzQUvͲy6WKc.(qPVriCVcj4%R v"v]5]U1MwE![[7`_d We[]`v2I ƥi4Sp 0?Jh9NU_uQbLHXx֘xTKprYACCPAR.DOC0A [ #Ȕ1MYa1`@@A&,"E) μDgZYN`]ɱye֎՟qOAEW_B$p*c: [!]wTC`_E2|%PCڊDQ2GimFjh&0h1 5oI/` 8k۳=y*; +9v q =H%d(*5v?;Xw=Dl {i*]]ѾY/l *[AQY/s`9+B )"]k(K/b|2 /ثSѩK7pFQ<](XC2hˢ-E+;m=tLv^^heA-*˸ uqv Or_(@V϶-Ġ {r.=/[ʬ$}hU`\ xW򗆽z OP/atW*&TPS%e"Wwnf{wNnJp &:ܨe) Oh p4a7tBA` aJ_DR1ʣTdžr ˷EၐxʱD K&1A&3G=Q)~Z?ijE.AS A ȱNw0& hHSn+IzTC)45oC_/7Ⱦ8B5% EM+o½ ̄#R6S P %̙ L5 &k:gv ])Tx :x*hlbL.if!%yEHx t"],R1 ;;; DLBUF (PIC)A;;; Now R1 holds absolute address of base of DLBUF for later use.A;;; DLOUT and DLINP pointers are relative to this base and always;;; modulo its length...*1132$: MOV DLOUT,R0 ;;; GET OUTPUT POINTER1134$:A;;; OPEN AN INTERRUPT WINDOW ONCE PER CHARACTER HERE TO MAKE SURE=;;; THE INTERRUPT HANDLER GETS A CRACK AT ALL THE CHARACTERS.;;;G;;; note: This DEPENDS on DLOUT not changing in the interrupt handler.>;;; Since we're still in the mode DLFLG=0 here, the interruptH;;; handler only touches DLINP so this logic is OK. We mess with DLOUT @;;; here, but if anything is left in the ring buffer (typeahead<;;; buffer) when we get into interrupt mode, we clean it up ;;; there.;;; CLRB @#PSW ;;; TO PRIO 0 NOP ;;; LET INT OCCUR) NOP ;;; (nop's just in case inst. that6 ;;; alters PSW cannot itself be interrupted. This is7 ;;; not as I recall it, but a couple insts. just make6 ;;; a bit larger window. We are still not protected 4 ;;; against wrap-around, except that the buffer is4 ;;; so large (512 bytes) that it's hard to see how5 ;;; it can occur while a task is actively trying to2 ;;; read the device at full speed. If a 512 byte3 ;;; typeahead buffer won't save the day, probably ;;; nothing will...;;;# MOVB #340,@#PSW ;;; BACK TO PRIO 7C;;; Since this segment manipulates the out pointer, we'll make sureA;;; these manipulations all occur together... easier to deal with.;;; if an interrupt tries to mess them over...* CMP R0,DLINP ;;; SEE IF WE HAVE ALL CHARS BEQ 1133$ ;;;IF EQ YES% MOV R1,R2 ;;; USE R2 AS ACCUMULATOR% ADD R0,R2 ;;; POINT AT DESIRED BYTE/ MOVB @R2,@U.RBUF+2(R5) ;;; STORE BYTE FOR USER;;;5;;; CHECK FOR TERMINATOR CHAR IN TYPE AHEAD BUFFER...9 CMPB YRTRM,@R2 ;;;IF EQUAL, THIS IS A TERMINATOR CHAR SO2 ;;;DON'T COUNT DOWN THE I/O AND GET OUTTA HERE9 BNE 3130$ ;;; IF NOT TERMINATOR JUST KEEP STORING CHARS ;;; WHOOPS...A;;; Got a terminator out of the typeahead buffer... gotta finish.#;;; WE HAVE TO GET OUT OF THIS I/O.*;;; SO ARRANGE TO GET OUT IN A USABLE WAY.1 CLR DLFLG ;;; SAY WE'RE STILL TAKING TYPE AHEAD INC R0 ;;; BUMP DLOUT, BIC #177000,R0 ;;; MODULO 512 TO PASS X'FF'+ MOV R0,DLOUT ;;; SO NEXT TIME WILL WORK OK;;;@;;; NOW WE HAVE TO GO OUT WITHOUT DOUBLE COUNTING THE CHAR IN R4;;; .IF DF,M$$MGE. MOV (SP)+,@#KISAR6 ;;;RESTORE CURRENT MAPPING .ENDC& MOVB (SP)+,@#PSW ;;; RESTORE OLD PRIO3 MOV (SP)+,R2 ;;; replace all the regs we've pushed MOV (SP)+,R1 MOV (SP)+,R0 JMP DLSUCC ;;; GO FINISH UP6;;; NORMAL PROCESSING HERE... NO X'FF' TERMINATOR SEEN/3130$: DEC U00WNMK H6%! !.RCNT(R5) ;;;SEE IF COUNT SATISFIED BLE 1137$ ;;;YES, IF EQUAL& INC U.RBUF+2(R5) ;;;BUMP BYTE ADDRESS .IF DF,M$$MGE3 BIT #20000,U.RBUF+2(R5) ;;;OVERFLOWED 4K BOUNDARY? BEQ 1138$ ;;;NO, IF ZERO. BIC #20000,U.RBUF+2(R5) ;;;CLEAR OVERFLOW BIT! ADD #200,U.RBUF(R5) ;;;BUMP BIAS' ADD #200,@#KISAR6 ;;; IN UCB AND APR 6 .ENDC 1138$: INC R0+ BIC #177000,R0 ;;;BUMP OUT POINTER MOD 512- MOV R0,DLOUT ;;; COPY TO MEMORY FOR NEXT I/O" BR 1134$ ;;; GO TRY ANOTHER COPY1133$: ;;; NOW GRAB LAST BYTE1137$:C;;; THE RESULT OF THIS IS TO GIVE US AN I/O TYPEAHEAD THAT FILLS INB;;; TYPED AHEAD DATA FIRST WHEN THE FIRST INTERRUPT THAT WE DO GET ;;; COMES IN. .IF DF,M$$MGE. MOV (SP)+,@#KISAR6 ;;;RESTORE CURRENT MAPPING .ENDC MOVB (SP)+,@#PSW ; RESTORE PRIO MOV (SP)+,R2 MOV (SP)+,R1 MOV (SP)+,R01136$:H; **********************************************************************F; Now all KNOWN type ahead has been flushed to user's buffer and we're@; going to have to go wait for more data to come in. So flag theC; interrupt handler that there's now a user buffer to deal with andE; it'll terminate normally (we hope). If any characters came in whileC; we were flushing out the old type-ahead just above, the typeaheadH; flushing code in the interrupt handler section will get that out aheadF; of any new characters. The advantage of this scheme is that the codeF; above is at low hard prio often enough that even while flushing thruC; a large buffer, no characters should be lost. The 512 byte bufferA; size is not sacred, but if it gets changed, the masks that maskD; DLOUT and DLINP after incrementing need to be changed. Also if the@; buffer exceeds 2K words, it probably won't fit in the driver'sE; APR area and thus the code here will need to be augmented to handleB; saves/restores with it. (Driver code and buffer BOTH have to fitE; into one APR). This practice also assumes that the driver is mapped@; by both I and D space registers on machines with I and D spaceD; enabled in kernel mode. I believe this is true for RSX11M, RSX11S,; and RSX11M+ though.1 MOV #1,DLFLG ;FLAG THAT WE ARE USING USER BUFFER, ; AND THAT THERE MAY BE TYPE-AHEAD THERE# BIS #RCVENB,(R2) ; ENABLE RECEIVERC; N.B. RECEIVE INTERRUPT WILL MOST OF THE TIME ALREADY BE ENABLED.;5 BR 140$ ;RETURN - INTERRUPT CODE PROPAGATES RECEIVE;@; CONTROL FUNCTION INITIATION (INITIATE OR TERMINATE CONTROLLER,; OR CHANGE OPERATING MODE);040$: BNE 70$ ;IF NOT EQUAL, MODE CHANGE REQUEST CLR (R2) ;CLEAR RXCSR;; DO START FUNCTION INITIATION;8 MOV R5,UNITBL(R3) ;INITIALIZE UCB ADDRESS IN UNIT TABLE BR 120$ ;RETURN SUCCESSFUL;1; SERVICE DEVICE MODE CHANGE REQUEST (NO OP HERE);70$:;DLSUCC: ;REFERENCE LABEL2120$: MOV #IS.SUC&377,R0 ;RETURN SUCCESSFUL STATUSDLFIN: ;REFERENCE LABEL-130$: CLRB S.STS(R4) ;CLEAR CONTROLLER STATUS* BICB #US.BSY,U.STS(R5) ;CLEAR UNIT STATUS! MOV R0,-(SP) ;SAVE STATUS WORD 1& MOV S.PKT(R4),R1 ;GET I/O PKT ADDRESS9 MOV R1,-(SP) ;SAVE PKT ADDRESS TO STASH IN R3 FOR $IOFIN-; HERE TRY AND COMPUTE THE REAL COUNT READ...2; DO SO BY SUBTRACTING U.RCNT FIELD FROM R1 TO GET"; NUMBER OF BYTES ACTUALLY SENT...- MOV I.PRM+4(R1),R1 ;AND REQUESTED BYTE COUNT; SUB U.RCNT(R5),R1 ;SUBTRACT BYTES NOT TRANSFERRED (IF ANY)4 MOV R1,-(SP) ;SAVE ON STACK FOR A CALL TO DLINIT..., CALL DLINIT ;ATTEMPT TO INITIATE SOMETHING=; WITH A HARD CODED TERMINATOR POSSIBLE, GOTTA RETURN WHAT WE; ACTUALLY READ...3 MOV (SP)+,R1 ;GET BYTES TRANSFERRED AS STATUS WORD2 MOV (SP)+,R3 ;GET I/O PKT ADDRESS TO FINISH ON...$ MOV (SP)+,R0 ;RESTORE STATUS WORD 1% CALLR $IOFIN ;TERMINATE LAST PACKET 140$: RETURN;; POWER FAIL SERVICE;DLPWRF: ;REFERENCE LABEL! CLRB S.CTM(R4) ;DISABLE TIMEOUTS+ BIC #RCVENB,@S.CSR(R4) ;;;DISABLE RECEIVER0 mov s.csr(r4),-(sp) ;;; get data buffer address add #2,(sp) ;;;on stack- tst @(SP)+ ;;; read it with TST instruction CLR DLFLG CLR DLBFI ;;; RESET POINTERS CLR DLBFO MOV #IE.DNR$377,R0 ;NOT RDY B00_NFNJH+%O-%TADATADATAR 130$ ;FINISH I/O;; I/O CANCELLATION;DLCANC: ;;;REFERENCE LABEL* CMP R1,I.TCB(R0) ;;;CANCEL FOR THIS TASK? BNE 140$ ;;;JUST RETURN IF NOT8 CMPB #IO.WLB/256.,I.FCN+1(R0) ;;;WAS FUNCTION TRANSMIT?$ BEQ 140$ ;;;JUST LET FINISH IF YES$ TST U.RCNT(R5) ;;;RECEIVE FINISHED? BLE 140$ ;;;BR IF YES ;;; LEAVE INTERRUPT DISABLE HERE+ BIC #RCVENB,@S.CSR(R4) ;;;DISABLE RECEIVER0 mov s.csr(r4),-(sp) ;;; get data buffer address add #2,(sp) ;;;on stack- tst @(SP)+ ;;; read it with TST instruction CLR DLFLG CLR DLBFI ;;; RESET POINTERS CLR DLBFO+ MOV #IE.ABO&377,R0 ;;;PUT ERROR CODE IN R0' CLR U.RCNT(R5) ;;;MARK COUNT SATISFIED BR 150$ ;;;FINISH OFF I/O;; TIMEOUT SERVICE ROUTINE; ; INPUTS:;&; R0 = DEVICE TIMEOUT STATUS 'IE.DNR'; R3 = CONTROLLER INDEX; R4 = ADDRESS OF SCB; R5 = ADDRESS OF UCB; DLTMO: ;;;TIMEOUT ENTRY POINT&; MOV S.CSR(R4),R3 ;;;GET RECEIVER CSR5;;; FORCE RECEIVER NOT TO HAVE ANY MORE INTERRUPTS...+ BIC #RCVENB,@S.CSR(R4) ;;;DISABLE RECEIVER0 mov s.csr(r4),-(sp) ;;; get data buffer address add #2,(sp) ;;;on stack- tst @(SP)+ ;;; read it with TST instruction CLR DLFLG CLR DLBFI ;;; RESET POINTERS CLR DLBFO150$: ;;;REFERENCE LABEL MTPS #0 ;;;ALLOW INTERRUPTS MOV U.SCB(R5),R42 JMP DLFIN ;;;WAIT FOR SOFTWARE TIMEOUT TO FINISH .DSABL LSB;,; **- $YRINT - DL-11 INPUT INTERRUPT SERVICE;$YRINT:: ;;;REFERENCE LABEL5 INTSV$ YR,PR5,D$$E11 ;;;GENERATE INTERRUPT SAVE CODE ;;; NOTE: COMMENT OUT DLSET CALL5;;; ALSO SKIP CHECK OF R5 =0 SINCE IT NEEDS TO BE UCB+;;; ADDRESS ON ENTRY TO INTERRUPT FROM ITB.); CALL DLSET ;;;SET CSR IN R4, UCB IN R5* MOV U.SCB(R5),R4 ;;;FIRST GET SCB ADDRESS+ MOVB S.ITM(R4),S.CTM(R4) ;;;RESET TIMEOUT.+ MOV S.CSR(R4),R4 ;;;NOW DEVICE CSR ADDRESS1 MOV (R4),-(SP) ;;;SAVE CSR, TEST DATA SET CHANGE210$: MOV 2(R4),R4 ;;;CAPTURE BUFFER REGISTER IN R4<;;; THE ABOVE GRABS THIS CHAR QUICKLY. NOW SEE IF WE HAVE TO ;;; HANDLE TYPE-AHEAD (DLFLG=1)."20$: TSTB (SP)+ ;;;RECEIVER DONE?( BPL 4501$ ;;;IF NOT, DISMISS INTERRUPT9 CMP DLFLG,#1 ;;; SEE IF MODE IS TYPEAHEAD, USER START OR ;;; USER CONTINUE/ BGE 31$ ;;; IF GE THERE'S A USER BUFFER THERE;;; DLFLG=0. TYPE-AHEAD MODE.;;; STORE CHAR IN DLBUF MOV R0,-(SP) ;;; NEED A REG MOV DLINP,R0 ;;; GET COUNTER* MOV PC,-(SP) ;;; GET ABS ADDRESS OF DLBUF! ADD #,(SP) ;;; ON STACK ADD R0,(SP) MOVB R4,@(SP)+ ;;; STORE BYTE INC R0/ BIC #177000,R0 ;;; BUMP INPUT MODULO 512 BYTES2 MOV R0,DLINP ;;; THEN SAVE AS NEXT INPUT LOCATION MOV (SP)+,R0 ;;; PUT REG BACK.4501$: return ;;; 70$ just exits... CARE ...( ;;; if we ever need to modify at 70$' ;;; put back the next line instead:-;4501$: JMP 70$ ;;; THEN EXIT THIS INTERRUPT31$:6 BGT 36$ ;;; IF DLFLG=2 NORMAL USER PROCESSING OCCURS9 MOV #2,DLFLG ;;; DLFLG WAS 1. SET IT TO 2 TO FLAG WE GOT ;;; HERE ALREADY.;C;;; HERE WE JUST STARTED A USER I/O AND HAVE TYPE-AHEAD POTENTIALLYA;;; PRESENT. WE WANT TO FLUSH THE TYPE-AHEAD TO THE USER'S BUFFERB;;; AND SO FLAG IT, AND THEN PLACE THE CURRENT BYTE INTO THERE TOO@;;; AFTER IT. THIS SHOULD GIVE US THE DESIRED TYPE-AHEAD EFFECT,?;;; THOUGH IT REQUIRES THAT AT LEAST ONE CHARACTER ARRIVE AFTERA;;; THE I/O START, SO WE CAN'T MISS AN ENTIRE I/O, JUST THE FIRST;;; FEW CHARACTERS OF IT.1 CMP DLINP,DLOUT ;;; DO WE NEED TO GO THRU CRUFT?2;;; Hope that we have nothing to flush out here... BEQ 36$ ;;; IF EQ NO, SKIP IT. MOV R0,-(SP) MOV R1,-(SP) ;;;NEED SOME REGS MOV R2,-(SP) .IF DF,M$$MGE+ MOV @#KISAR6,-(SP) ;;;SAVE CURRENT MAPPING . MOV U.RBUF(R5),@#KISAR6 ;;;MAP TO USER BUFFER .ENDC" MOV PC,R1 ;;;POINT WITH R1 AT..." ADD #,R1 ;;; DLBUF (PIC)(32$: MOV DLOUT,R0 ;;; GET OUTPUT POINTER.34$: CMP R0,DLINP ;;; SEE IF WE HAVE ALL CHARS BEQ 33$ ;;;IF EQ YES% MOV R1,R2 ;;; USE R2 AS ACCUMULATORH% ADD R0,R2 ;;; POINT AT DESIRED BYTET/ MOVB @R2,@U.RBUF+2(R5) ;;; STORE BYTE FOR USERC;;;5;;; CHECK FOR TERMINATOR CHAR IN TYPE AHEAD BUFFER..00gNMK H6%! !.I9 CMPB YRTRM,@R2 ;;;IF EQUAL, THIS IS A TERMINATOR CHAR SO2 ;;;DON'T COUNT DOWN THE I/O AND GET OUTTA HERE BNE 2130$ ;;; ???0 ;;; WHOOPS...T:;;; R4 NOW HAS THE CHAR WE JUST GOT, WE NEED TO GO TO MODE5;;; 0 (TYPEAHEAD),AND WE HAVE TO GET OUT OF THIS I/O.T9;;; SO CAPTURE R4 AND ARRANGE TO GET OUT IN A USABLE WAY.N INC R0 ;;; BUMP DLOUTE, BIC #177000,R0 ;;; MODULO 512 TO PASS X'FF'+ MOV R0,DLOUT ;;; SO NEXT TIME WILL WORK OKR MOV R0,-(SP) ;;; NEED A REG" mov r1,-(sp) ;;; save pointer tooB;;; Here have to store R4 (char from this int) in typeahead buffer4;;; for a later read since we're done this read now. MOV DLINP,R0 ;;; GET COUNTERR>; R1 already points at base of DLBUF so use it here instead of; recomputing dlbuf address..;;;; MOV PC,-(SP) ;;; GET ABS ADDRESS OF DLBUF%;;;; ADD #,(SP) ;;; ON STACKA;;;; ADD R0,(SP)";;;; MOVB R4,@(SP)+ ;;; STORE BYTE) add r0,r1 ;;; point r1 at dlbuf addressB movb r4,@r1 ;;; store byte now INC R01/ BIC #177000,R0 ;;; BUMP INPUT MODULO 512 BYTESG2 MOV R0,DLINP ;;; THEN SAVE AS NEXT INPUT LOCATION4 mov (sp)+,r1 ;;; Make R1 point at DLBUF start again3 MOV (SP)+,R0 ;;; PUT REG BACK so R0 is DLOUT againN2; CLR DLFLG ;;; SAY WE'RE STILL TAKING TYPE AHEAD;;;N@;;; NOW WE HAVE TO GO OUT WITHOUT DOUBLE COUNTING THE CHAR IN R4;;;A .IF DF,M$$MGE. MOV (SP)+,@#KISAR6 ;;;RESTORE CURRENT MAPPING .ENDC MOV (SP)+,R2 MOV (SP)+,R1I MOV (SP)+,R0A" JMP 80$ ;;; GO FINISH UP the I/O6;;; NORMAL PROCESSING HERE... NO X'FF' TERMINATOR SEEN/2130$: DEC U.RCNT(R5) ;;;SEE IF COUNT SATISFIEDH7 BLE 637$ ;;;YES, IF EQUAL (if lt 0, recover from err)H& INC U.RBUF+2(R5) ;;;BUMP BYTE ADDRESS .IF DF,M$$MGEB; Physical buffer address alignment can be on any 64 byte boundary=; for base and any offset. Thus we must check 4K word segmentT>; overflow at each character. This could be avoided if we KNEW?; that buffers were always less than 4K long or never crossed aLA; 4KW segment in physical memory. This would require them to live C; in a separate partition aligned that way by hand, though. Buffers /; in a task's area cannot be so easily aligned.N3 BIT #20000,U.RBUF+2(R5) ;;;OVERFLOWED 4K BOUNDARY?S BEQ 38$ ;;;NO, IF ZERO. BIC #20000,U.RBUF+2(R5) ;;;CLEAR OVERFLOW BIT! ADD #200,U.RBUF(R5) ;;;BUMP BIAS ' ADD #200,@#KISAR6 ;;; IN UCB AND APR 6C .ENDC 38$: INC R0A+ BIC #177000,R0 ;;;BUMP OUT POINTER MOD 512U- MOV R0,DLOUT ;;; COPY TO MEMORY FOR NEXT I/OR BR 34$ ;;; GO TRY ANOTHER COPY637$:U=; Get here if we counted down to zero while reading typeahead)8; buffer. Must finish the I/O but leave typeahead going.:; Inserted here since it adds no instructions to any other; code path in this location.U .IF DF,M$$MGE. MOV (SP)+,@#KISAR6 ;;;RESTORE CURRENT MAPPING .ENDC MOV (SP)+,R2D MOV (SP)+,R1 MOV (SP)+,R0E/ JMP 80$ ;;; EXIT WITH I/O COUNT BACK TO ZERO.C33$: ;;; NOW GRAB LAST BYTE37$:C;;; THE RESULT OF THIS IS TO GIVE US AN I/O TYPEAHEAD THAT FILLS INGB;;; TYPED AHEAD DATA FIRST WHEN THE FIRST INTERRUPT THAT WE DO GET ;;; COMES IN.U .IF DF,M$$MGE. MOV (SP)+,@#KISAR6 ;;;RESTORE CURRENT MAPPING .ENDC MOV (SP)+,R2 MOV (SP)+,R1 MOV (SP)+,R0S36$:+ TST U.RCNT(R5) ;;;COUNT ALREADY SATISFIED?L% BLE 70$ ;;;IF SO, DISMISS INTERRUPTE60$: ;;;REFERENCE LABEL .IF DF M$$MGE+ MOV @#KISAR6,-(SP) ;;;SAVE CURRENT MAPPINGI. MOV U.RBUF(R5),@#KISAR6 ;;;MAP TO USER BUFFER3 MOVB R4,@U.RBUF+2(R5) ;;;STORE BYTE IN USER BUFFER . MOV (SP)+,@#KISAR6 ;;;RESTORE CURRENT MAPPING .IFF 3 MOVB R4,@U.RBUF+2(R5) ;;;STORE BYTE IN USER BUFFERC .IFTF) DEC U.RCNT(R5) ;;;SEE IF COUNT SATISFIED, BLE 80$ ;;;YES, IF EQUAL& INC U.RBUF+2(R5) ;;;BUMP BYTE ADDRESS .IFTQ3 BIT #20000,U.RBUF+2(R5) ;;;OVERFLOWED 4K BOUNDARY?/ BEQ 73$ ;;;NO, IF ZERO. BIC #20000,U.RBUF+2(R5) ;;;CLEAR OVERFLOW BIT! ADD #200,U.RBUF(R5) ;;;BUMP BIASO .ENDC73$:B;;; CHECK FOR TERMINATOR CHARACTER AND END RIGHT NOW IF WE GOT IT.%;;; HARDCODED TERMINATOR IS 377 OCTALA/ CMPB R4,(PC)+ ;;; COMPARE TO BYTE IN NEXT WORDYRTRM==.1 .WORD 1777700oNrNJH+%O-%TADATADATA7 ;;; BYTE OF FF HEX (DUPLICATED FORG% ;;; THE HECK OF IT...) IN GLOBAL.I-; BEQ 80$ ;;; IF EQ THEN FINISH RIGHT NOW...R7 BNE 70$ ;;; IF EQ THEN WE HAVE A FINISH ON TERMINATORI= INC U.RCNT(R5) ;;;SO BACK UP COUNT TO EXCLUDE THE X'FF' FROMR ;;; THE COUNT. BR 80$ ;;; THEN TERMINATER70$: ;;;REFERENCE LABEL RETURN ;;;EXIT INTERRUPTT; ; REQUEST SATISFIEDR;(80$: ;;;REFERENCE LABEL$ MOV U.SCB(R5),R4 ;;;GET SCB ADDRESS,; BIC #RCVENB,@S.CSR(R4) ;;;DISABLE RECEIVER, CLR DLFLG ;;; SAY WE USE TYPE AHEAD BUFFER<; IN THIS VERSION OF THE DRIVER WE FILL IN REQUEST FROM TYPE; AHEAD AT ONCE IF POSSIBLE. CALL $FORK ;;;GO TO FORK LEVEL" JMP DLSUCC ;FINISH I/O SUCESSFUL; ;E6; DLSET - SET UP REGISTER R4 WITH CSR ADDRESS, R5 WITH8; UCB ADDRESS. UNIT NUMBER IN LOW ORDER 4 BITS OF UNIT.;R;DLSET: ;;;REFERENCE LABEL "; TST R5 ;;;CHECK FOR UCB ADDRESS ; BEQ 10$ ;;;IF NO UCB, TROUBLE+; MOV U.SCB(R5),R4 ;;;FIRST GET SCB ADDRESS*,; MOVB S.ITM(R4),S.CTM(R4) ;;;RESET TIMEOUT.,; MOV S.CSR(R4),R4 ;;;NOW DEVICE CSR ADDRESS; RETURN ;;;AND NOW RETURN1;10$: TST (SP)+ ;;;CLEAR STACK OF RETURN ADDRESS(;DLSXT: JMP $INTXT ;;;DISMISS INTERRUPT7DLFLG: .WORD 0 ;;; FLAG THAT I/O IS STARTED IF NONZERO7DLINP:,DLBFI: .WORD 0 ;;; ADDRESS FILLED IN BUFFERDLOUT:-DLBFO: .WORD 0 ;;; ADDRESS EMPTIED IN BUFFERRDLBUF:8DLBFR: .BLKB 512. ;;; RING BUFFER FOR BIIIIG TYPE AHEAD9;;; NOTE DLBFR IS A POWER OF 2 LONG SO WE CAN DO CIRCULARf;;; OPS ON IT. .WORD 0,0 ;SAFETY .END .TITLE YRDRV .IDENT /12.2XC/; RECEIVER DL11 DRIVER.; RECEIVE HALF ONLY (1ST CSR/DATA REG OF PAIR);; MODIFIED BY:;; R. E. CALDWELL 30-OCT-79;/; RC024 -- REMOVE UNNEEDED CONDITIONALIZATION.;); DL11 ASYNCHRONOUS COMMUNICATIONS DRIVER;<; INPUT TERMINATION ON HEX FF (377 OCTAL) CHARACTER. ALSO ON; BYTE COUNT...;; MACRO LIBRARY CALLS;$LD$YR=0 ; REMOVE IF YR: NOT LOADABLE .IIF NDF,$XDT,NRM$YD=0 .MCALL HWDDF$,PKTDF$$ HWDDF$ ;DEFINE HARDWARE REGISTERS$ PKTDF$ ;DEFINE I/O PACKET OFFSETS .MCALL UCBDF$,CUCDF$V UCBDF$ ; DEFINE UCB OFFSETS$ CUCDF$ ;COMMUNICATIONS UCB LABELS;$; CONFIGURATION DEPENDENT PARAMETERS;-;O; EQUATED SYMBOLSO;I;N; RXCSR BIT ASSIGNMENTSU;O!DTSTCH= 100000 ;DATA SET CHANGEM"RING= 40000 ;RING LINE ASSERTEDCTS= 20000 ;CLEAR TO SENDCRRIER= 10000 ;CARRIER STATE!RECACT= 4000 ;RECEIVER ACTIVEBRXDONE= 200 ;RECEIVER DONE.+RCVENB= 100 ;RECEIVER INTERRUPT ENABLEA2DSINTE= 40 ;DATA SET CHANGE INTERRUPT ENABLERTS= 4 ;REQUEST TO SEND%TRMRDY= 2 ;DATA TERMINAL READYU;I; RXDBUF BIT ASSIGNMENTS;G(RXERR= 100000 ;RECEIVER ERROR "OR" BIT/OVRNER= 40000 ;RECEIVER OVERRUN ERROR IF SETU(FRMERR= 20000 ;RECEIVER FRAMING ERROR;G; TXCSR BIT ASSIGNMENTSE;D%TXRDY= 200 ;TRANSMITTER DONE BIT12TXINTE= 100 ;TRANSMITTER INTERRUPT ENABLE BIT&BREAK= 1 ;CLAMP OUTPUT TO SPACE;E ; LOCAL DATA;E;R9; UNIT IMPURE DATA TABLE (INDEXED BY UNIT, POINTS TO UCB)R; D$$E11=1CNTBL: ;REF LABELUNITBL: ;UCB ADDRESSESA .REPT D$$E11D .WORD 0 ;ENSURE SET TO ZERON .ENDM .IF GT D$$E11-1TEMP: ;REF LABEL1UNIT: .BLKW 1 ;TEMPORARY STORAGE FOR UNIT NUMBERR .ENDC .ENABL LSBA;E; DRIVER DISPATCH TABLES;N,$YRTBL::.WORD DLINIT ;DEVICE INITIALIZATION' .WORD DLCANC ;DEVICE I/O CANCELLATIONR" .WORD DLTMO ;TIMEOUT ENTRY POINT" .WORD DLPWRF ;POWER FAIL ROUTINE;+G;**- DLINIT - DL-11 SYNCHRONOUS COMMUNICATION CONTROLLER I/O INITIATOR$;1@; DLINIT IS ENTERED WHEN AN I/O REQUEST IS QUEUED ON THE DEVICE,4; AND AT THE END OF EACH QIO REQUEST WHICH OBEYS THE;; NORMAL RSX-11M INPUT/OUTPUT LOGIC FLOW. IF THE DEVICE IST8; AVAILABLE AND A REQUEST IS IN THE QUEUE FOR THAT UNIT,; THE REQUEST IS INITIATED.0; IF NO REQUEST EXISTS FOR THAT UNIT OR IF IT IS>; BUSY, AN EXIT IS TAKEN TO THE CALLER. NOTE THAT BECAUSE OF<; THE NATURE OF THE DL-11, EACH UNIT IS A CONTROLLER ITSELF,/; HAS ITS OWN SCB, AND THERE00wNMK H6%! !FORE ITS OWN QUEUE./:; EACH TIME DLINIT IS CALLED, IT IS CALLED TO SERVICE ONLY5; THE UNIT SPECIFIED IN THE CALL. NOTE ALSO THAT ONLYQ%; 8-BIT, NO PARITY DATA IS SUPPORTED.I;T ; INPUTS:I;L#; R4 = STATUS CONTROL BLOCK ADDRESSN*; R5 = ADDRESS OF THE UCB TO BE INITIATED.;H ; OUTPUTS:;I,; IF A REQUEST IS SUCCESSFULLY DEQUEUED, THE$; DEVICE IS INITIATED APPROPRIATELY.;-DLINIT:  .IF DF,NRM$YD NOP .IFF  BPT ;DEBUG XDT CALL .ENDC+ CALL $GTPKT ;GET AN I/O PACKET TO PROCESSA# BCS 140$ ;NO REQUEST OR UNIT BUSYT; ; SAVE UCB ADDRESS MOV R5,UNITBL/; NOTE MUST USE UNITBL(R3) IF MULTI-UNIT DRIVERE.; (CHECK IF R3 IS BYTE OR WORD OFFSET ALSO...);T1; THE FOLLOWING ARGUMENTS ARE RETURNED BY $GTPKT:C;D); R1 = ADDRESS OF THE I/O REQUEST PACKET.T/; R2 = PHYSICAL UNIT NUMBER OF THE REQUEST UCB.C; R3 = CONTROLLER INDEX +; R4 = ADDRESS OF THE STATUS CONTROL BLOCK.N*; R5 = ADDRESS OF THE UCB SPECIFIED IN THE; DLINIT CALL.;L ; DL11 I/O REQUEST PACKET FORMAT;S; WORD CONTENTQ;T; 0 I/O QUEUE THREAD WORDB); 1 REQUEST PRIORITY, EVENT FLAG NUMBERN.; 2 ADDRESS OF THE TCB OF THE REQUESTER TASK/; 3 POINTER TO SECOND LUN WORD IN TASK HEADERN&; 4 CONTENTS OF FIRST LUN WORD (UCB); 5 I/O FUNCTION CODE/); 6 VIRTUAL ADDRESS OF I/O STATUS BLOCKM); 7 RELOCATION BIAS OF I/O STATUS BLOCK =; 10 I/O STATUS BLOCK ADDRESS (REAL OR DISPLACEMENT +140000)D,; 11 VIRTUAL ADDRESS OF AST SERVICE ROUTINE#; 12 RELOCATION BIAS OF I/O BUFFERE!; 13 BUFFER ADDRESS FOR TRANSFER"; 14 TOTAL BYTE COUNT TO TRANSFER5; 15 BYTE COUNT FOR SECOND PART OF TRANSMISSION OR 0 ; 16 NOT USED; 17 NOT USED; 20 NOT USED;S+ MOV S.CSR(R4),R2 ;GET RECEIVER CSR ADDRESSO, ADD #I.FCN+1,R1 ;POINT TO I/O FUNCTION CODE% CMPB #IO.RVB/256.,(R1);READ VIRTUAL? ) BEQ 20$ ; IF SO TREAT LIKE READ LOGICAL # CMPB #IO.WVB/256.,(R1);WRITE VIRT?S BEQ 24$ ;IF SO GO HANDLE3 CMPB #IO.INL/256.,(R1) ;CHECK IF TRANSFER FUNCTION & BLOS 40$ ;BRANCH ON CONTROL FUNCTION& CMPB #IO.RLB/256.,(R1) ;READ LOGICAL?$ BEQ 20$ ;YES, SERVICE READ REQUEST;U*; FALL THROUGH ON TRANSMIT (WRITE LOGICAL); 24$:' BR DLSUCC ;TRANSMIT...RETURN ALL WELL ;(REALLY NOTHING TO DO...);D; RECEIVE FUNCTION INITIATION ;I20$: ;REFERENCE LABEL30$: ;REF LABEL; SET UP TIMEOUT( MOVB S.ITM(R4),S.CTM(R4) ;INIT TIMER...# MOV R5,R0 ;SET UP TRANSFER VECTOR22 ADD #U.RBUF,R0 ;RECEIVE TRANSFER INFORMATION HERE# MOV U.BUF(R5),(R0)+ ;TRANSFER BIASR+ MOV U.BUF+2(R5),(R0)+ ;AND VIRTUAL ADDRESS( MOV U.CNT(R5),(R0) ;AND COUNT* TSTB 2(R2) ; CLEAR RECEIVE BUFFER STATUS1 MOV #1,DLFLG ;FLAG THAT WE ARE USING USER BUFFER , ; AND THAT THERE MAY BE TYPE-AHEAD THERE# BIS #RCVENB,(R2) ; ENABLE RECEIVERI5 BR 140$ ;RETURN - INTERRUPT CODE PROPAGATES RECEIVE ;F@; CONTROL FUNCTION INITIATION (INITIATE OR TERMINATE CONTROLLER,; OR CHANGE OPERATING MODE)R;C040$: BNE 70$ ;IF NOT EQUAL, MODE CHANGE REQUEST ;WMG015R CLR (R2) ;CLEAR RXCSR;V; DO START FUNCTION INITIATION;R8 MOV R5,UNITBL(R3) ;INITIALIZE UCB ADDRESS IN UNIT TABLE BR 120$ ;RETURN SUCCESSFUL;F$; SERVICE DEVICE MODE CHANGE REQUEST; 70$:;EDLSUCC: ;REFERENCE LABELB2120$: MOV #IS.SUC&377,R0 ;RETURN SUCCESSFUL STATUSDLFIN: ;REFERENCE LABEL-130$: CLRB S.STS(R4) ;CLEAR CONTROLLER STATUSI* BICB #US.BSY,U.STS(R5) ;CLEAR UNIT STATUS! MOV R0,-(SP) ;SAVE STATUS WORD 17& MOV S.PKT(R4),R1 ;GET I/O PKT ADDRESS9 MOV R1,-(SP) ;SAVE PKT ADDRESS TO STASH IN R3 FOR $IOFINN-; HERE TRY AND COMPUTE THE REAL COUNT READ...T2; DO SO BY SUBTRACTING U.RCNT FIELD FROM R1 TO GET"; NUMBER OF BYTES ACTUALLY SENT...- MOV I.PRM+4(R1),R1 ;AND REQUESTED BYTE COUNT ; SUB U.RCNT(R5),R1 ;SUBTRACT BYTES NOT TRANSFERRED (IF ANY)U4 MOV R1,-(SP) ;SAVE ON STACK FOR A CALL TO DLINIT..., CALL DLINIT ;ATTEMPT TO INITIATE SOMETHING=; WITH A HARD CODED TERMINATOR POSSIBLE, GOTTA RETURN WHAT WE; ACTUALLY READ...3 MOV (SP)+,R1 ;GET BYTES TRANSFERRED AS STATUS WORDO2 MOV (SP)+,R3 ;GET I/O PKT ADDRESS TO FI00NrNJH+%O-%TADATADATANISH ON...$ MOV (SP)+,R0 ;RESTORE STATUS WORD 1% CALLR $IOFIN ;TERMINATE LAST PACKETB 140$: RETURN;S; POWER FAIL SERVICE;RDLPWRF: ;REFERENCE LABELS! CLRB S.CTM(R4) ;DISABLE TIMEOUTST+ BIC #RCVENB,@S.CSR(R4) ;;;DISABLE RECEIVERN CLR DLFLG CLR DLBFI ;;; RESET POINTERS CLR DLBFO MOV #IE.DNR$377,R0 ;NOT RDY BR 130$ ;FINISH I/OR;S; I/O CANCELLATION;TDLCANC: ;;;REFERENCE LABEL(* CMP R1,I.TCB(R0) ;;;CANCEL FOR THIS TASK? BNE 140$ ;;;JUST RETURN IF NOT8 CMPB #IO.WLB/256.,I.FCN+1(R0) ;;;WAS FUNCTION TRANSMIT?$ BEQ 140$ ;;;JUST LET FINISH IF YES$ TST U.RCNT(R5) ;;;RECEIVE FINISHED? BLE 140$ ;;;BR IF YES ;;; LEAVE INTERRUPT DISABLE HERE+ BIC #RCVENB,@S.CSR(R4) ;;;DISABLE RECEIVER4 CLR DLFLG CLR DLBFI ;;; RESET POINTERS CLR DLBFO+ MOV #IE.ABO&377,R0 ;;;PUT ERROR CODE IN R0N' CLR U.RCNT(R5) ;;;MARK COUNT SATISFIED  BR 150$ ;;;FINISH OFF I/O ;;; TIMEOUT SERVICE ROUTINE.;( ; INPUTS:E;O&; R0 = DEVICE TIMEOUT STATUS 'IE.DNR'; R3 = CONTROLLER INDEX; R4 = ADDRESS OF SCB; R5 = ADDRESS OF UCB;; DLTMO: ;;;TIMEOUT ENTRY POINT&; MOV S.CSR(R4),R3 ;;;GET RECEIVER CSR5;;; FORCE RECEIVER NOT TO HAVE ANY MORE INTERRUPTS...C+ BIC #RCVENB,@S.CSR(R4) ;;;DISABLE RECEIVERF CLR DLFLG CLR DLBFI ;;; RESET POINTERS CLR DLBFO150$: ;;;REFERENCE LABEL  MTPS #0 ;;;ALLOW INTERRUPTS  MOV U.SCB(R5),R4B2 JMP DLFIN ;;;WAIT FOR SOFTWARE TIMEOUT TO FINISH .DSABL LSB ;U,; **- $YRINT - DL-11 INPUT INTERRUPT SERVICE;$YRINT:: ;;;REFERENCE LABEL 5 INTSV$ YR,PR5,D$$E11 ;;;GENERATE INTERRUPT SAVE CODE ( CALL DLSET ;;;SET CSR IN R4, UCB IN R51 MOV (R4),-(SP) ;;;SAVE CSR, TEST DATA SET CHANGEE210$: MOV 2(R4),R4 ;;;CAPTURE BUFFER REGISTER IN R4<;;; THE ABOVE GRABS THIS CHAR QUICKLY. NOW SEE IF WE HAVE TO ;;; HANDLE TYPE-AHEAD (DLFLG=1)."20$: TSTB (SP)+ ;;;RECEIVER DONE?& BPL 70$ ;;;IF NOT, DISMISS INTERRUPT9 CMP DLFLG,#1 ;;; SEE IF MODE IS TYPEAHEAD, USER START ORT ;;; USER CONTINUET/ BGE 31$ ;;; IF GE THERE'S A USER BUFFER THEREI;;; DLFLG=0. TYPE-AHEAD MODE. ;;; STORE CHAR IN DLBUFL MOV R0,-(SP) ;;; NEED A REG MOV DLINP,R0 ;;; GET COUNTER * MOV PC,-(SP) ;;; GET ABS ADDRESS OF DLBUF! ADD #,(SP) ;;; ON STACK4 ADD R0,(SP) MOVB R4,@(SP)+ ;;; STORE BYTE INC R0E/ BIC #177000,R0 ;;; BUMP INPUT MODULO 512 BYTES:2 MOV R0,DLINP ;;; THEN SAVE AS NEXT INPUT LOCATION MOV (SP)+,R0 ;;; PUT REG BACK& JMP 70$ ;;; THEN EXIT THIS INTERRUPT31$:6 BGT 36$ ;;; IF DLFLG=2 NORMAL USER PROCESSING OCCURS9 MOV #2,DLFLG ;;; DLFLG WAS 1. SET IT TO 2 TO FLAG WE GOTT ;;; HERE ALREADY.V;,C;;; HERE WE JUST STARTED A USER I/O AND HAVE TYPE-AHEAD POTENTIALLY;A;;; PRESENT. WE WANT TO FLUSH THE TYPE-AHEAD TO THE USER'S BUFFERDB;;; AND SO FLAG IT, AND THEN PLACE THE CURRENT BYTE INTO THERE TOO@;;; AFTER IT. THIS SHOULD GIVE US THE DESIRED TYPE-AHEAD EFFECT,?;;; THOUGH IT REQUIRES THAT AT LEAST ONE CHARACTER ARRIVE AFTER A;;; THE I/O START, SO WE CAN'T MISS AN ENTIRE I/O, JUST THE FIRSTR;;; FEW CHARACTERS OF IT., MOV R0,-(SP)  MOV R1,-(SP) ;;;NEED SOME REGST MOV R2,-(SP)A .IF DF,M$$MGE+ MOV @#KISAR6,-(SP) ;;;SAVE CURRENT MAPPINGP. MOV U.RBUF(R5),@#KISAR6 ;;;MAP TO USER BUFFER .ENDC" MOV PC,R1 ;;;POINT WITH R1 AT..." ADD #,R1 ;;; DLBUF (PIC)(32$: MOV DLOUT,R0 ;;; GET OUTPUT POINTER.34$: CMP R0,DLINP ;;; SEE IF WE HAVE ALL CHARS BEQ 33$ ;;;IF EQ YES% MOV R1,R2 ;;; USE R2 AS ACCUMULATOR % ADD R0,R2 ;;; POINT AT DESIRED BYTEM/ MOVB @R2,@U.RBUF+2(R5) ;;; STORE BYTE FOR USERC) DEC U.RCNT(R5) ;;;SEE IF COUNT SATISFIED  BLE 37$ ;;;YES, IF EQUAL& INC U.RBUF+2(R5) ;;;BUMP BYTE ADDRESS .IF DF,M$$MGE3 BIT #20000,U.RBUF+2(R5) ;;;OVERFLOWED 4K BOUNDARY?  BEQ 38$ ;;;NO, IF ZERO. BIC #20000,U.RBUF+2(R5) ;;;CLEAR OVERFLOW BIT! ADD #200,U.RBUF(R5) ;;;BUMP BIAS ' ADD #200,@#KISAR6 ;;; IN UCB AND APR 6  .ENDC 38$: INC R0A+ BIC #177000,R0 ;;;BUMP OUT POINTER MOD 512S- MOV R0,DLOUT ;;; COPY TO MEMORY FOR NEXT I/OD BR 34$ ;;; GO TRY ANOTHER COPY33$: ;;; NOW GRAB LAST 00NNK H6%! !BYTE37$:C;;; THE RESULT OF THIS IS TO GIVE US AN I/O TYPEAHEAD THAT FILLS INCB;;; TYPED AHEAD DATA FIRST WHEN THE FIRST INTERRUPT THAT WE DO GET ;;; COMES IN.R .IF DF,M$$MGE. MOV (SP)+,@#KISAR6 ;;;RESTORE CURRENT MAPPING .ENDC MOV (SP)+,R2L MOV (SP)+,R10 MOV (SP)+,R0;36$:+ TST U.RCNT(R5) ;;;COUNT ALREADY SATISFIED?% BLE 70$ ;;;IF SO, DISMISS INTERRUPT;60$: ;;;REFERENCE LABEL .IF DF M$$MGE+ MOV @#KISAR6,-(SP) ;;;SAVE CURRENT MAPPINGG. MOV U.RBUF(R5),@#KISAR6 ;;;MAP TO USER BUFFER3 MOVB R4,@U.RBUF+2(R5) ;;;STORE BYTE IN USER BUFFERY. MOV (SP)+,@#KISAR6 ;;;RESTORE CURRENT MAPPING .IFF 3 MOVB R4,@U.RBUF+2(R5) ;;;STORE BYTE IN USER BUFFER. .IFTF) DEC U.RCNT(R5) ;;;SEE IF COUNT SATISFIEDT BLE 80$ ;;;YES, IF EQUAL& INC U.RBUF+2(R5) ;;;BUMP BYTE ADDRESS .IFTT3 BIT #20000,U.RBUF+2(R5) ;;;OVERFLOWED 4K BOUNDARY?  BEQ 73$ ;;;NO, IF ZERO. BIC #20000,U.RBUF+2(R5) ;;;CLEAR OVERFLOW BIT! ADD #200,U.RBUF(R5) ;;;BUMP BIAS  .ENDC73$:B;;; CHECK FOR TERMINATOR CHARACTER AND END RIGHT NOW IF WE GOT IT.%;;; HARDCODED TERMINATOR IS 377 OCTAL+/ CMPB R4,(PC)+ ;;; COMPARE TO BYTE IN NEXT WORDVYRTRM==.1 .WORD 177777 ;;; BYTE OF FF HEX (DUPLICATED FORC% ;;; THE HECK OF IT...) IN GLOBAL.-; BEQ 80$ ;;; IF EQ THEN FINISH RIGHT NOW...;7 BNE 70$ ;;; IF EQ THEN WE HAVE A FINISH ON TERMINATORV= INC U.RCNT(R5) ;;;SO BACK UP COUNT TO EXCLUDE THE X'FF' FROM. ;;; THE COUNT. BR 80$ ;;; THEN TERMINATEF70$: ;;;REFERENCE LABEL RETURN ;;;EXIT INTERRUPTC;T; REQUEST SATISFIEDI;E80$: ;;;REFERENCE LABEL$ MOV U.SCB(R5),R4 ;;;GET SCB ADDRESS,; BIC #RCVENB,@S.CSR(R4) ;;;DISABLE RECEIVER, CLR DLFLG ;;; SAY WE USE TYPE AHEAD BUFFER"; NOTE A NON-GENERAL FEATURE HERE:9; WE READ TYPE-AHEAD BUFFER ONCE WE GET A REAL INTERRUPT72; SO FIRST INTERRUPT HAS A BIT OF EXTRA OVERHEAD.9; USUALLY WILL BE ONLY 2-3 CHARS SO DON'T WORRY ABOUT ITO; TOO MUCH THOUGH.. CALL $FORK ;;;GO TO FORK LEVEL" JMP DLSUCC ;FINISH I/O SUCESSFUL;;;I6; DLSET - SET UP REGISTER R4 WITH CSR ADDRESS, R5 WITH8; UCB ADDRESS. UNIT NUMBER IN LOW ORDER 4 BITS OF UNIT.;IDLSET: ;;;REFERENCE LABEL! TST R5 ;;;CHECK FOR UCB ADDRESSE BEQ 10$ ;;;IF NO UCB, TROUBLEG* MOV U.SCB(R5),R4 ;;;FIRST GET SCB ADDRESS+ MOVB S.ITM(R4),S.CTM(R4) ;;;RESET TIMEOUT.I+ MOV S.CSR(R4),R4 ;;;NOW DEVICE CSR ADDRESS  RETURN ;;;AND NOW RETURNR010$: TST (SP)+ ;;;CLEAR STACK OF RETURN ADDRESS'DLSXT: JMP $INTXT ;;;DISMISS INTERRUPTC7DLFLG: .WORD 0 ;;; FLAG THAT I/O IS STARTED IF NONZEROEDLINP:,DLBFI: .WORD 0 ;;; ADDRESS FILLED IN BUFFERDLOUT:-DLBFO: .WORD 0 ;;; ADDRESS EMPTIED IN BUFFERRDLBUF:8DLBFR: .BLKB 512. ;;; RING BUFFER FOR BIIIIG TYPE AHEAD9;;; NOTE DLBFR IS A POWER OF 2 LONG SO WE CAN DO CIRCULARE;;; OPS ON IT. .WORD 0,0 ;SAFETY .ENDO .TITLE YTDRV .IDENT /12.2XB/; DL DRIVER - TRANSMIT ONLY;; MODIFIED BY:;; R. E. CALDWELL 30-OCT-79;/; RC024 -- REMOVE UNNEEDED CONDITIONALIZATION.;); DL11 ASYNCHRONOUS COMMUNICATIONS DRIVER;; MACRO LIBRARY CALLS; .MCALL HWDDF$,PKTDF$$ HWDDF$ ;DEFINE HARDWARE REGISTERS$ PKTDF$ ;DEFINE I/O PACKET OFFSETS .MCALL UCBDF$,CUCDF$ UCBDF$ ; DEFINE UCB OFFSETS$ CUCDF$ ;COMMUNICATIONS UCB LABELS;$; CONFIGURATION DEPENDENT PARAMETERS;;; EQUATED SYMBOLSL;T;; RXCSR BIT ASSIGNMENTSI; !DTSTCH= 100000 ;DATA SET CHANGE"RING= 40000 ;RING LINE ASSERTEDCTS= 20000 ;CLEAR TO SENDCRRIER= 10000 ;CARRIER STATEY!RECACT= 4000 ;RECEIVER ACTIVERXDONE= 200 ;RECEIVER DONE.+RCVENB= 100 ;RECEIVER INTERRUPT ENABLEA2DSINTE= 40 ;DATA SET CHANGE INTERRUPT ENABLERTS= 4 ;REQUEST TO SEND%TRMRDY= 2 ;DATA TERMINAL READYU;I; RXDBUF BIT ASSIGNMENTS;G(RXERR= 100000 ;RECEIVER ERROR "OR" BIT/OVRN00NrNJH+%O-%TADATADATAER= 40000 ;RECEIVER OVERRUN ERROR IF SETI(FRMERR= 20000 ;RECEIVER FRAMING ERROR;G; TXCSR BIT ASSIGNMENTSE;D%TXRDY= 200 ;TRANSMITTER DONE BIT12TXINTE= 100 ;TRANSMITTER INTERRUPT ENABLE BIT&BREAK= 1 ;CLAMP OUTPUT TO SPACE;E ; LOCAL DATA;E;R9; UNIT IMPURE DATA TABLE (INDEXED BY UNIT, POINTS TO UCB)R; -LD$YT=0 ;REMOVE THIS IF YT: ISN'T LOADABLE... D$$E11=1CNTBL: ;REF LABELUNITBL: ;UCB ADDRESSESN .REPT D$$E11= .WORD 0 ;ENSURE SET TO ZEROB .ENDM .IF GT D$$E11-1TEMP: ;REF LABELI1UNIT: .BLKW 1 ;TEMPORARY STORAGE FOR UNIT NUMBER  .ENDC .ENABL LSB;D; DRIVER DISPATCH TABLED; ,$YTTBL::.WORD DLINIT ;DEVICE INITIALIZATION' .WORD DLCANC ;DEVICE I/O CANCELLATIONO" .WORD DLTMO ;TIMEOUT ENTRY POINT" .WORD DLPWRF ;POWER FAIL ROUTINE;+G;**- DLINIT - DL-11 SYNCHRONOUS COMMUNICATION CONTROLLER I/O INITIATOR$;1@; DLINIT IS ENTERED WHEN AN I/O REQUEST IS QUEUED ON THE DEVICE,4; AND AT THE END OF EACH QIO REQUEST WHICH OBEYS THE;; NORMAL RSX-11M INPUT/OUTPUT LOGIC FLOW. IF THE DEVICE IST8; AVAILABLE AND A REQUEST IS IN THE QUEUE FOR THAT UNIT,; THE REQUEST IS INITIATED.0; IF NO REQUEST EXISTS FOR THAT UNIT OR IF IT IS>; BUSY, AN EXIT IS TAKEN TO THE CALLER. NOTE THAT BECAUSE OF<; THE NATURE OF THE DL-11, EACH UNIT IS A CONTROLLER ITSELF,/; HAS ITS OWN SCB, AND THEREFORE ITS OWN QUEUE./:; EACH TIME DLINIT IS CALLED, IT IS CALLED TO SERVICE ONLY5; THE UNIT SPECIFIED IN THE CALL. NOTE ALSO THAT ONLYQ%; 8-BIT, NO PARITY DATA IS SUPPORTED.I;T ; INPUTS:I;L#; R4 = STATUS CONTROL BLOCK ADDRESSN*; R5 = ADDRESS OF THE UCB TO BE INITIATED.;H ; OUTPUTS:;I,; IF A REQUEST IS SUCCESSFULLY DEQUEUED, THE$; DEVICE IS INITIATED APPROPRIATELY.;- .IIF NDF,$XDT,NRM$YD=0EDLINIT: .IF DF,NRM$YD NOP .IFFC BPT ;DEBUG XDT CALL VERSION .ENDC+ CALL $GTPKT ;GET AN I/O PACKET TO PROCESS " BCS 15$ ;NO REQUEST OR UNIT BUSY;D1; THE FOLLOWING ARGUMENTS ARE RETURNED BY $GTPKT: ;E); R1 = ADDRESS OF THE I/O REQUEST PACKET.S/; R2 = PHYSICAL UNIT NUMBER OF THE REQUEST UCB.O; R3 = CONTROLLER INDEX5+; R4 = ADDRESS OF THE STATUS CONTROL BLOCK. *; R5 = ADDRESS OF THE UCB SPECIFIED IN THE; DLINIT CALL.I;I); SAVE UNIT UCB ADDRESS FOR INT VECTOR...X;N:; NOTE: FOR MULTI-UNIT HANDLER MUST USE UNITBL(R3) INSTEAD;; OF UNITBL... CHECK IF R3 IS A BYTE OR WORD OFFSET ALSO...T MOV R5,UNITBL ;SAVE UNIT NO.S;R;I ; DL11 I/O REQUEST PACKET FORMAT; ; WORD CONTENTT;; 0 I/O QUEUE THREAD WORD ); 1 REQUEST PRIORITY, EVENT FLAG NUMBERE.; 2 ADDRESS OF THE TCB OF THE REQUESTER TASK/; 3 POINTER TO SECOND LUN WORD IN TASK HEADER &; 4 CONTENTS OF FIRST LUN WORD (UCB); 5 I/O FUNCTION CODEI); 6 VIRTUAL ADDRESS OF I/O STATUS BLOCKX); 7 RELOCATION BIAS OF I/O STATUS BLOCKS=; 10 I/O STATUS BLOCK ADDRESS (REAL OR DISPLACEMENT +140000)O,; 11 VIRTUAL ADDRESS OF AST SERVICE ROUTINE#; 12 RELOCATION BIAS OF I/O BUFFERE!; 13 BUFFER ADDRESS FOR TRANSFER"; 14 TOTAL BYTE COUNT TO TRANSFER5; 15 BYTE COUNT FOR SECOND PART OF TRANSMISSION OR 0 ; 16 NOT USED; 17 NOT USED; 20 NOT USED;S" MOV S.CSR(R4),R2 ;GET CSR ADDRESS, ADD #I.FCN+1,R1 ;POINT TO I/O FUNCTION CODE% CMPB #IO.RVB/256.,(R1);READ VIRTUAL?I) BEQ 20$ ; IF SO TREAT LIKE READ LOGICALI# CMPB #IO.WVB/256.,(R1);WRITE VIRT?O BEQ 24$ ;IF SO GO HANDLE3 CMPB #IO.INL/256.,(R1) ;CHECK IF TRANSFER FUNCTIONR& BLOS 40$ ;BRANCH ON CONTROL FUNCTION& CMPB #IO.RLB/256.,(R1) ;READ LOGICAL?$ BEQ 20$ ;YES, SERVICE READ REQUEST;1*; FALL THROUGH ON TRANSMIT (WRITE LOGICAL); 724$: MOVB S.ITM(R4),S.CTM(R4) ;INITIALIZE TIMEOUT COUNT)10$: BIS #TXINTE,(R2) ;ENABLE TRANSMITTERC.15$: BR 140$ ;RETURN, INTERRUPT PROPAGATES TX;.; RECEIVE FUNCTION INITIATION ;F20$: ;REFERENCE LABEL30$: ;REF LABEL) BR DLSUCC ;DUMMY SUCCESS FOR RECEIVE OND ; TRANSMIT DRIVER...;C@; CONTROL FUNCTION INITIATION (INITIATE OR TERMINATE CONTROLLER,; OR CHANGE OPERATING MODE)A;O040$: BNE 70$ ;IF NOT EQUAL, M00N]YK H6%! !ODE CHANGE REQUEST ;WMG015R CLR (R2) ;CLEAR RXCSR ;4; DO START FUNCTION INITIATION;L8 MOV R5,UNITBL(R3) ;INITIALIZE UCB ADDRESS IN UNIT TABLE BR 120$ ;RETURN SUCCESSFUL;T$; SERVICE DEVICE MODE CHANGE REQUEST;I70$:;DLSUCC: ;REFERENCE LABELL2120$: MOV #IS.SUC&377,R0 ;RETURN SUCCESSFUL STATUSDLFIN: ;REFERENCE LABEL-130$: CLRB S.STS(R4) ;CLEAR CONTROLLER STATUSI* BICB #US.BSY,U.STS(R5) ;CLEAR UNIT STATUS! MOV R0,-(SP) ;SAVE STATUS WORD 17) MOV S.PKT(R4),-(SP) ;SAVE PACKET ADDRESS , CALL DLINIT ;ATTEMPT TO INITIATE SOMETHING% MOV (SP)+,R3 ;RESTORE PACKET ADDRESSV+ MOV I.PRM+4(R3),R1 ;RETURN REQUESTED COUNTT$ MOV (SP)+,R0 ;RESTORE STATUS WORD 1% CALLR $IOFIN ;TERMINATE LAST PACKETQ 140$: RETURN;; POWER FAIL SERVICE;EDLPWRF: ;REFERENCE LABELE! CLRB S.CTM(R4) ;DISABLE TIMEOUTSR MOV #IE.DNR&377,R0 ;NOT RDY BR 130$ ;FINISH I/OR;A; I/O CANCELLATION;TDLCANC: ;;;REFERENCE LABEL,* CMP R1,I.TCB(R0) ;;;CANCEL FOR THIS TASK? BNE 140$ ;;;JUST RETURN IF NOTC;;; LET THE ENTRY FALL THRU TO TIME-OUT ENTRY IF IT'S FOR THIS TASK !;;; TO TURN OFF XMIT INTERRUPT...R; BR 150$ ;;;FINISH OFF I/O; ; TIMEOUT SERVICE ROUTINEL;$ ; INPUTS:M;T&; R0 = DEVICE TIMEOUT STATUS 'IE.DNR'; R3 = CONTROLLER INDEX; R4 = ADDRESS OF SCB; R5 = ADDRESS OF UCB;B DLTMO: ;;;TIMEOUT ENTRY POINT MOV S.CSR(R4),R3 ;;;GET CSR( BIC #TXINTE,(R3) ;;;DISABLE TRANSMITTER150$: ;;;REFERENCE LABEL. MTPS #0 ;;;ALLOW INTERRUPTS?3 JMP DLTXND ;;;WAIT FOR SOFTWARE TIMEOUT TO FINISH .DSABL LSBT;-,; **- $YTINT - TRANSMITTER INTERRUPT SERVICE; $YTINT:: ;;;REFERENCE LABEL;5 INTSV$ YT,PR5,D$$E11 ;;;GENERATE INTERRUPT SAVE CODEN( CALL DLSET ;;;SET CSR IN R4, UCB IN R5 DEC U.CNT(R5) ;;; CHECK COUNT BLT 50$.20$: CALL $GTBYT ;;;GET NEXT BYTE FROM BUFFER% MOVB (SP)+,2(R4) ;;;OUTPUT CHARACTERC-30$: MOV U.SCB(R5),R4 ;;;GET SCB ADDRESS BACKB0 MOVB S.ITM(R4),S.CTM(R4) ;;;RESET TIMEOUT COUNT RETURN ;;;EXIT INTERRUPT40$: ;;;REFERENCE LABEL,50$: BIC #TXINTE,(R4) ;;;DISABLE TRANSMITTER% CALL $FORK ;;;CREATE SYSTEM PROCESSE- MOV #IS.SUC&377,R0 ;RETURN SUCCESSFUL STATUS DLTXND: ;REFERENCE LABELE$ MOV U.SCB(R5),R4 ;RESTORE SCB TO R4 JMP DLFIN ;MARK COMPLETION;R6; DLSET - SET UP REGISTER R4 WITH CSR ADDRESS, R5 WITH8; UCB ADDRESS. UNIT NUMBER IN LOW ORDER 4 BITS OF UNIT.;CDLSET: ;;;REFERENCE LABEL! TST R5 ;;;CHECK FOR UCB ADDRESS. BEQ 10$ ;;;IF NO UCB, TROUBLER* MOV U.SCB(R5),R4 ;;;FIRST GET SCB ADDRESS+ MOV S.CSR(R4),R4 ;;;NOW DEVICE CSR ADDRESSE RETURN ;;;AND NOW RETURN;010$: TST (SP)+ ;;;CLEAR STACK OF RETURN ADDRESS'DLSXT: JMP $INTXT ;;;DISMISS INTERRUPT  .END MOV U.SCB(R5),R4 ;RESTORE SCB TO R4 JMP DLFIN ;MARK COMPLETION;R6; DLSET - SET UP REGISTER R4 WITH CSR ADDRESS, R5 WITH8; UCB ADDRESS. UNIT NUMBER IN LOW ORDER 4 BITS OF UNIT.;CDLSET: ;;;REFERENCE LABEL! TST R5 ;;;CHECK FOR UCB ADDRESS. BEQ 10$ ;;;IF NO UCB, TROUBLER* MOV U.SCB(R5),R4 ;;;FIRaFrom: HENRY::IN%"PENSTONE%QUCDNEE1.BITNET%WISCVM.WISC.EDU%relay.cs.net@rca.com" 7-JAN-1987 11:40-To: everhart%arisia%rca.com@csnet-relay.csnetSubj: Tar SourcesGlenn:@ Here's the source code for the programs. I have includedIboth sources in one message, I hope they don't get truncated by the net..)Look for the string "VMS2TAR" to separateGthe files. I will probably submit the code to DECUS now, since I really,got swamped with requests this time around !-Sid.7 October 6/1986. Greetings:F Here is the program to extract files from a Tar format tape or?file into a VMS system. This is a major update on version 1.xx.that I distributed earlier. The major changes:=(1) It reads from either a tape or a file image of a tar tapeE(2) It transfers files as is, does NOT translate UNIX stream files to? the format that the VMS editor likes, but this is not a? problem unless you intend to edit the files. See below.00][]JH+%O-%TADATADATA0 (The old "s" option is now the default).B(3) It can usually leave the tape positioned ready to read another= Tar file from the tape. NOTE: there is a SET MAGTAPE/B option in VMS 4.x that will skip files to start reading inJ the middle of a tape. The TAR2VMS program does not do any rewinds.$(4) UNIX "linked" files are handled.G I will be glad to hear of your experiences with the code, sinceGoften when we get a Tar tape from a different system, we find somethingGthat I hadn't anticipated. The program was developed by looking at DUMPBoutput from various tar format tapes on a VMS system, so there areGundoubtedly variations that I haven't seen. ( I am not a UNIX expert..)GWe looked at UNIX manuals as well, but found some discrepancies in real(tapes, so went with what seemed to work.E I also have a partially debugged version of a Tar writer; askFfor it if you are willing to be a guinea pig, or need to transfer some files to a UNIX system from VMS. Sid Penstone, VLSI Group,%Department of Electrical Engineering,Queen's University,!Kingston, Ontario, Canada, K7L3N6phone (613) 545-29253BITNET: PENSTONE@QUCDNEE1 (Preferred); PENSTONE@QUCDN (If the other doesn't work)@NOTE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!CNOTE!!! The program must be separated at the "** CUT HERE **" linesNOTE!!! below before compiling.@NOTE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Introduction:B The program TAR2VMS.C reads from a /foreign tape,or a fileCwhich is an image of a Tar format tape, and extracts the files into;a directory tree starting in the current default directory.*Directories will be created automatically.;For example, if your default is [JONES.MAIN], then the fileL"electric/sub/test.c" will be written into [JONES.MAIN.ELECTRIC.SUB]TEST.C .C For the simplest operation, just RUN it after defining the3logical "TAPE" to be the the Tar source and doing a<MOUNT/FOREIGN/BLOCK=10240/RECORD=512 (if it is a tape); thisBdoes the extraction automatically, reporting on stdout as it does.M The extracted files will be written to your system as C stream files.DThe VMS editor EDT will complain about the format, but EVE will not.6 To convert a text file to standard VMS format:)(Thanks to Eric Gisin at U. of Waterloo:)M You can use the VMS CONVERT utility by first creating a xxxx.FDL file containing:FILE* ORGANIZATION sequentialRECORD# BLOCK_SPAN yes/ CARRIAGE_CONTROL carriage_return( FORMAT variable&Then run Convert with the regular DCL:)CONVERT/FDL=xxxx input-file output-fileI-------------------------------------------------------------------------Usage:B -Define the logical variable "TAPE" to be the desired tape2 unit or the file containing the Tar data.7 -Mount the tape /FOREIGN/BLOCK=10240/RECORD=512G -Set the default directory below which the tree will be createdD before calling the program. Thus: if your default directoryD is SYS$SYSDEVICE:[MYDIRE], the file "electric/dbase.c" will: be written in SYS$DEVICE:[MYDIRE.ELECTRIC]DBASE.C9 -Then run TAR2VMS: (either by RUN or as a command)< if you use RUN, the operation is (extract, verbose) otherwise:'command' [options] where the options are:A "t" (listing only) Listing of files on tapeD "x" (extract) Extract files from the tape8 "v" (verbose): Report activity; "w" (wait) ...Not implemented? -to use the options, the program must be executed using the; foreign command feature of VMS, by defining a command:Kcommand :== $path:tar2vms !where path=complete location of tar2vms.exe Example:"If the command is 'tar2vms', then:Ftar2vm00]YK H6%! !s t will list the contents of the tar fileHtar2vms xv will extract all of the files, reportingKThe listing reports the UNIX protection (in octal), the file size in bytes,5the modification date on the tape, and the file name.ERRORS: Most probable causes:H "Can't open input file" - likely forgot to define TAPE, or mount1 the tape.E "Error reading input" - unexpected Tar format, or bad file.8 "Error writing output " - directory access error@ "Creation Error... " - illegal directory or file nameJ---------------------------------------------------------------------------Important assumptions for this version (2.1):" The defaults are (no options):@ -Extract all of the files, reporting as each file is created@ -Read from a tape, mounted foreign, or a fixed record lengthB file,with block size of 10240 bytes or less . If larger block* size, change the definition of SIZE.> -Stop on the special (blank header) block written by UNIX.? (Note, like UNIX Tar, it does not move to the file mark atD the end of the file. Answer "y" to the prompt to get to another6 tar file on the same tape.)THIS MIGHT NOT WORK...4 -All files are assumed to be UNIX stream and areC just copied. The vms file-attribute will be "stream". This mayD have to be changed in certain cases with CONVERT, or by writing8 a little C program to read the file and rewrite it.B -When a UNIX linked file is encountered, there will be anotherE file on the tape that contains the actual data. It may not be an= earlier file that was the original file, since the filesD are written on in alphabetical order. The program will create aE file under the name of the linked file, but it will contain onlyE a text messsage reporting the name of the file that contains the data.F This version converts the path names to VMS format before creatingthe files. Some special cases:F (1) File names with more than one period (".") in the name have thoseE after the first converted to underscores (e.g. "mults.s.c" is. written out under the name "mults.s_c"A (2) It is assumed that all of the pathnames on the Tar tape have6 complete directory info, with no device parts.C (3) Commas and hyphens in file or directory names are converted toD underscores. If this causes any problems, you can modify theC code in vms_cleanup().Any such translations are reported in "verbose" mode.F (4) Files are created with the user's default protection. The mode on the tape is ignored.I (5) The dates of files extracted are the date of the extraction, not the date of the Tar version.E (6) UNIX files that have no extension, and end in a letter will haveB a "." added to the name automatically. This can cause someD mysteries with large programs that look for other files withB an exact string search. Also, if the files are written outH to UNIX as a TAR tape from VMS, the "." goes along with the file name.jH------------------------------------------------------------------------ Known Bugs:dB - Can't always read another file on the same tape. The programE only works correctly when the tape had regular EOF marks on it,r* which apparently is not always true.F - Can't selectively extract files from the tape. The "wait" option5 could be useful, but haven't got around to it..rH/**************************** CUT HERE ****************************** */F/* Read a TAR format tape or file , move files into VMS directories */ /* Copyright 1986, Sid Penstone,(* Department of Electrical Engineering,* Queen's University,#* Kingston, Ontario, Canada K7L3N6 * (613)-545-59251* BITNET: PENSTONE@QUCDNEE1 (Preferred) * or PENSTONE@QUCDN*i* Version 2.2, Oct.21,1986F* mods: - corrected header size (thanks to E00]JH+%O-%TADATADATAric Gisin, U .of Waterloo)2* - No more of the dreaded QIO's ( " " " ),* - tried to sort out link flag format(* - uses a tape or a file as inputI* - NOTE: default is NO conversion to vms standard text format (cr)e8* 2.1 - trapped commas in file names, converted to '_'(* 2.2 - reported translations of names6* - continued after error in opening output file2* - exit correctly on cannot open input file*/I/* The input data is in record format, length 512, blocks of 10240 bytes;i */e#include stdio #include timek#include ssdef#include iodef#include descrip#include ctype#define ERROR1 -1b#define BUFFSIZE 512#define ISDIRE 1#define ISFILE 0#define NAMSIZE 100t0#define SIZE 10240 /* Block size */5#define DSIZE 512 /* Data block size */*struct /* A Tar header */ {  char title[NAMSIZE]; char protection[8]; 9 char field1[8]; /* this is the user id */m; char field2[8]; /* this is the group id */l6 char count[12]; /* was 11 in error */7 char time[12]; /* UNIX format date */ ? char chksum[8]; /* Header Checksum (ignored) */S8 char linkcount; /* hope this is right */@ char linkname[NAMSIZE]; /* Space for the name of the link */* char dummy[255]; /* and the rest */ } header;9static char buffer[DSIZE]; /* BUFFER for a record */!/* Function flags, options:*/!0int extract, /* x option (default) */C list, /* t option : list tape contents */r6 verbose, /* v option, report actions */ wait;n!/* Miscellaneous globals, etc. */.char *tarfile = "tape", /* Input file name */? pathname[NAMSIZE], /* File name as found on tape (UNIX) */// directory[NAMSIZE], /* Current directory */T? new_directory[NAMSIZE], /* Directory of current file */t7 top[NAMSIZE], /* Top level or root */u5 newfile[NAMSIZE], /* VMS format of file name */(@ outfile[NAMSIZE], /* Complete output file specification */% temp[256], /* Scratch */ A creation[NAMSIZE], /* Date as extracted from the TAR file */- *ctime(), /* System function */a/ linkname[NAMSIZE]; /* Linked file name */ Aint bytecount, mode, uic1, uic2, linktype;/* Data from header */:?int tarfd; /* The input file descriptor */ main(argc,argv)o int argc; char *argv[]; {A&int isterm,status,file_type,j,c, flag;char *make_directory(), *cp;(/* Decode the options and parameters: */ if(argc ==1) { 5 extract = 1; /* Default for now */u verbose = 1;; wait = 0; /* Don't wait for prompt */- }- while(--argc > 0)- { cp = argv[1];n while(c = *cp++) {e switch(c)i {o case 't': list=1;  break; case 'x':t extract=1; break; case 'v':r verbose=1; break; case 'w':D wait=1;" break; default:: printf("Option '%c' not recognized.\n",c); }y } } /* Find if this is a terminal */ isterm = isatty(0);b/* Set up directory names */ strcpy(top,getenv("PATH"));h'/* Start with the default as the top */g strcpy(directory,top);/* open the file for reading */t if((tarfd = opentar()) <= 0) {/ printf("Error opening the Tar tape\n");c exit(2); }wI/* Now keep reading headers from this file, and decode the names, etc. */mF while((status=hdr_read(&header))==DSIZE) /* 0 on end of file */ {a: if(strlen(header.title)!=0) /* Valid header */ {m decode_header(); if(extract), 00]YK H6%! ! { E file_type=scan_title(pathname,new_directory,newfile); / if( make_new(new_directory)!=0),@ printf("Error creating %s\n",new_directory);' if(file_type == ISDIRE)n {}' if(file_type == ISFILE)a-/* Now move the data into the output file */y# if(bytecount>0)  { 6 strcpy(outfile,new_directory);0 strcat(outfile,newfile);= if((j=copyfile(outfile,bytecount))<0)rF printf("Error writing file %s\n",outfile); }- }-: else /* listing only */ {o( printf("%o %6d %s %s\n",8 mode,bytecount,creation+4,pathname);! if(linktype == 0) ' tarskip(bytecount);0 elseI printf(" *****( Linked to file: %s)\n",linkname);s }r } C else /* Empty header means the end!!! */k {e status = 1;"/ printf("End of Tar file found.\n");n break; }. } /* end while */: if(status == 1) /* Empty header */ {e@ printf("Do you wish to move past the EOF mark ? y/n\n"); gets(temp);i# if(tolower(temp[0]) == 'y')h1 while((status=hdr_read(&header)) >0);i else exit(SS$_NORMAL); }e> if(status==0) /* End of tar file */ {h, printf("End of file encountered\n"); exit(SS$_NORMAL);e }.7 if(status<0) /* An error */h {l) printf("Error reading input.\n");e exit(2); }t}fG/* This function simply copies the file to the output, no conversion */mint copyfile(outfile,nbytes),char outfile[]; /* name of output version */ int nbytes;r{nint inbytes, fil;n/* Open the output file */ ( if((fil=creat(outfile,0)) == ERROR1) {.; printf(" Creation error in opening %s \n",outfile);) tarskip(bytecount);e return(-2); } if(linktype !=0) {w? sprintf(buffer,"This file is linked to %s\n",linkname);y' write(fil,buffer,strlen(temp));o }s else {  while(nbytes>0) {l6 if((inbytes=read(tarfd,buffer,DSIZE)) > 0) {(A write(fil,buffer,(nbytes > DSIZE)? DSIZE:nbytes);n" nbytes -= inbytes; }  else {i7 printf("End of input file detected\n");  close(fil);  return(-1); }e }u }./* Close the file */ close(fil);  if(verbose)m { ( printf("CREATED: %s\n",outfile); if(linktype!=0)f: printf(" *** REAL DATA IS IN: %s\n",linkname); }o return(0);}i>/* Decode a file name into the directory, and the name, returnB* a value to indicate if this is a directory name, or another file=* We return the extracted directory string in "dire", and thecA* filename (if it exists) in "fname". The full title is in "line"p * at input.o*/int scan_title(line,dire,fname) char line[],dire[],fname[];T{"char temp[NAMSIZE],*end1;eint len,len2,i,ind;g?/* The format will be UNIX at input, so we have to scan for the** UNIX directory separator '/'A* If the name ends with '/' then it is actually a directory name.eF* If the directory consists only of '.', then don't add a subdirectoryI* The output directory will be a complete file spec, based on the default6 * directory.*/F strcpy(dire,top); /* Start with the top level */ if(strncmp(line,"./",2)==0)69 strcpy(line,line+2); /* i00]JH+%O-%TADATADATAgnore "./" */.C strcpy(temp,line); /* Start in local buffer */ K ind=vms_cleanup(temp); /* Remove illegal vms characters */iD if((end1=strrchr(temp,'/'))==0) /* No directory at all ? */> strcpy(fname,temp); /* Only a file name */ elseJ { /* End of directory name is '/' */F *end1 = 0; /* Terminate directory name */I strcpy(fname,end1+1); /* File name without directory */tL for (i=0;temp[i];i++) /* Change '/' to '.' in directory */ if(temp[i]=='/') temp[i]='.';5 dire[strlen(dire)-1] = (temp[0]=='.')?0:'.' ;L /* "." to indicate a subdirectory (unless already there )*/? strcat(dire,temp); /* Add on the new directory */ @ strcat(dire,"]") ; /* And close with ']' */ }eA if(strlen(fname)==0) /* Could this cause problems ? */* {r return(ISDIRE);* }h elseA for(i=0,end1=fname;*end1;end1++) /* Replace multiple . */h if(*end1 == '.')9 if(i++)*end1 = '_'; /* After the first */a@ if((i>1||ind)&& verbose ) /* Any translations ? */E printf("****RENAMED: %s \n TO: %s\n",line,fname);f return(ISFILE);r}mL/* Create a new directory, finding out any higher levels that are missing */K/* We will parse the directory name into the next higher directory, and the %* desired directory as "desired.dir".iH* Thus: "DEV:[top.sub1.sub2]" is made into "DEV:[top.sub1]sub2.dir" . IfJ* the directory does not exist , then create the original directory. ThereH* may be higher levels missing, so we can recurse until we reach the topG* level directory, then work our way back, creating directories at eachr* successive level.t*/int make_new(want) char want[];{ int i,len;3char a[NAMSIZE],parent[NAMSIZE],*end,name[NAMSIZE];  strcpy(parent,want); len = strlen(parent); 8 parent[len-1] =0 ; /* Get rid of the "]" */7 end = strrchr(parent,'.'); /* Find the last '.' */  if(end != NULL) {n9 strcpy(a,end+1); /* Get the last parent */ 7 strcat(a,".dir"); /* Add the extension */NA *end++ = ']' ; /* Reduce the directory parent */i= *end = 0; /* Terminate the directory */  strcpy(name,parent); strcat(name,a);v }c@ if(access(name,0) <0) /* Does the directory exist ? */ {cB if(strcmp(parent,top)!=0) /* No, are we at the top? */< if(make_new(parent)) /* No, look again */- return(-1); /* recurse */a4 if(mkdir(want,0755,0,0,0)) /* make it */< return(-1); /* Leave on error */ else if(verbose)e1 printf("CREATED: %s\n",want);  return(0); }1 return(0);} @ /* Function to open and get data from the blocked input file */ int opentar(){ int fd;a3 fd = open(tarfile, 0, "rfm = fix","mrs = 512");  if(fd < 0) {'+ printf("Can't open input file \n");  return(0); }  return(fd);n}"F/* Get the next file header from the input file buffer. We will always%* move to the next 512 byte boundary.e*/int hdr_read(buffer) char *buffer;a{ int stat;c= stat = read(tarfd,buffer,DSIZE); /* read the header */pL return(stat); /* Catch them next read ? */}fG/* This is supposed to skip over data to get to the desired position */nG/* Position is the number of bytes to skip. We should never have to use 6* this during data transfers; just during listings. */int tarskip(bytes) int bytes;{0int i=0; while(bytes > 0) {s- if((i=read(tarfd,buffer,DSIZE)) == 0) {@ printf("End of file encountered while skipping.\n");00]YK H6%! ! return(-1); }t bytes -= i;e }l return(0);} %/* Decode the fields of the header */ int decode_header()r{ int idate, *bintim;rchar ll;bintim = &idate;$ linktype=0; strcpy(linkname,"");" strcpy(pathname,header.title);$ sscanf(header.time,"%o",bintim);; strcpy(creation,ctime(bintim)); /* Work on this! */  creation[24]=0; ) sscanf(header.count,"%o",&bytecount);i) sscanf(header.protection,"%o",&mode); % sscanf(header.field1,"%o",&uic1); % sscanf(header.field2,"%o",&uic2);uB /* We may have the link written as binary or as character: */) linktype = isdigit(header.linkcount)? 6 (header.linkcount - '0'):header.linkcount; if(linktype != 0) . sscanf(header.linkname,"%s",linkname); return(0);} C/* remove illegal characters from directory and file names; replacetD* hyphens and commas with underscores.Returns number of translations* that were made. */vms_cleanup(string) char string[];{\ int i,flag=0;char c;  for(i=0;c=string[i];i++) {  switch (c) {n> case '-': /* No hyphens in file names */> case ',': /* No commas in file names */ string[i]= '_'; E flag++; /* Record if any changes were made */a break; default: break; } }s return(flag);f}lC/********************************** VMS2TAR **********************/);Greetings: Dec.23,1986C Here is the current version (1.8) of a program to write Tar Gformat tapes on a VMS system. Comments and reports on bugs will be much)Eappreciated. It has been tried with a SUN system, and files were readh successfully. I Before compiling, separate the program, at the "*** CUT HERE ***" line below.cM The file-spec in the command string can use the usual VMS wild cards,iFin fact anything that you would use in a DIRECTORY command. SuccessiveDfile-specs must be separated by commas, WITHOUT BLANK SPACES, or theGcommand handler separates them as separate arguments, and only the datanahead of the blanks is used.IExample: vms2tar cv [john.new...]*.c will copy all of the .c files in #the subdirectories to the Tar file.fB Directory specifications are propagated to successive fileBspecifications, if there is no explicit directory specification. A?test with the "t" (list) option will help to show how it works.eD Note that UNIX does not permit two files of the same name inDthe same directory, so the program does not assume the wild card forCthe version number, and you should not use it in the input spec, or Conly the last version written on the tape (the oldest) will survive)Dwhen extracted on the UNIX system. The program as written copies theEhighest version number by default. The version number is NOT included !in the file name on the Tar tape.%D If you wish to output different version numbers to Tar, then<the code would be modified something like this in scan_name:BIf there is a ";*" string in the searchname[] string, then convertBthe ';' in the fname[] into an appropriate UNIX symbol, e.g. '.',,2so it will come out as "fname.c.34" , for example.O Incidentally, .EXE programs from vms can be moved around on a tar tape,iLand when re-extracted with the Tar reader, they run on vms again. (Note that=the file attributes are wrong, but the binary is correct...).rI The present program has trouble with indexed files.They should bercopied as fixed-format files.t Sid Penstone,a VLSI Group,e Dept. of Electrical Engineering,Queen's University,t!Kingston, Ontario, Canada K7L 3N6  Usage:cI-------------------------------------------------------------------------> -Define the logical variable "TAPE" to be the desired tape unit, or the output file.3 -Mount the tape /FOREIGN/BLOCK=10240/RECORD=00]JH+%O-%TADATADATA512r? Existing data on the tape will be written over, unless theoD tape is moved to an end-of-file with the SET MAGTAPE/ commands.F -Set the default directory to the top of the tree (if applicable).? This gives pathnames on the tape that start at the currentl= default. i.e. if your default is [MYDIRE.MAIN], the file @ [MYDIRE.MAIN]START.C will be copied as "start.c" ; the fileC [MYDIRE.MAIN.TESTS]RUNIT.C will be copied as "tests/runit.c" .dB Files that are not in the current default tree will be copied; with a full pathname; e.g. "mydire/main/tests/runit.c"5 -Then run VMS2TAR: (either by RUN or as a command);B if you use RUN, the operation is "(create, verbose) [...]*.*" As a command:*vms2tar [options] [file-spec,file-spec,,,] where the options are:;I "t" (listing of the files that will be copied (no copy done)) H "c" (create copies of the files on the output tape, starting= at the current position on the tape.)I6 "v" (verbose: report activities on stdout)6 "w" (wait) wait for 'y' or 'n' for action; "d" (dot) Keep a trailing period in a file namer -To use the options:; the program must be executed using the foreign command * feature of VMS by defining a command:Hcommand :== $path:vms2tar !where path= full location of vms2tar.exeE - if no file-spec is given, the highest version number of all oftF the files in the current default directory and its subdirectories will be written out.ERRORS:V@ - "couldn't open Tar file": likely forgot to MOUNT the tape0 - "error getting status" : protection errorJ--------------------------------------------------------------------------'Important assumptions for this version: " The defaults are (no options):D -Extract the highest numbered version of all of the files in the? current directory tree,reporting as each file is created.SI Pathnames on the tape start below the current default directory; fornC example, if you are in [SID.MAIN], the files in [SID.MAIN.SUB]'& will be written as sub/filename .? -Write to a tape, mounted foreign, with block size of 10240eB bytes, or a file of fixed record length. If a different block8 size is desired, change the definition of BLKSIZE.A -Close with the special (blank header) block written by UNIX.r: It will be followed by an end-of-file or end-of tape.B -All files with record attributes are assumed to be text filesE and are converted into UNIX stream files. This includes regularND VMS text files, printer files, stream files, or Fortran output.@ -Files with fixed record length and no record attributes are@ copied in fixed block format. This includes .EXE files, and( other specials, but not .OBJ files.D -Does not copy files with variable-length, no record attributes;5 ex. .OBJ files. They are reported as not copied.;& -Does not copy savesets correctly.I This version converts the directory names to UNIX format before creating the files. Some special cases:01 (1) Directories are written with a trailing "/". D (2) Directories are created in the order that they are encountered* by the F$SEARCH() operation of VMSJ-------------------------------------------------------------------------- Known Bugs:tB (1) Writes extra empty trailer blocks into a file as though itG were a tape.Could be fixed by finding out if the output is a file.eB (2) The method used to remove the higher level directory spec.G from the pathname may be a little flaky. Watch to see if any fileso end up in the wrong tree.? (3) Can't change the default directory within the same run.nE (4) Cannot emulate the "r" or "u" functions of UNIX Tar. Separatee files must be used.C (5) There is a problem with indexed files (e.g .MAI files) that0" will be looked at shortly.D (6) Files with no file extension will be wri00]YK H6%! !tten on the TAR fileE without a trailing "." ,unless the "d" option is set. This isG to avoid having some files apparently vanish on the UNIX systemG that reads the tape, since "makefile" would otherwise be calledlI "makefile.", etc. since VMS always includes the '.' in filenames.oE (7) There are similar problems with files that were copied from a L UNIX Tar tape that had extra "." or "," in the file name; these willI have been translated to "_" if my Tar-to-VMS reader was used, and E will be written out with the '_', so the name will not be thee original UNIX name. D/********************************* CUT HERE ***********************/E/* Write a TAR format tape or file , from files in VMS directories */a/* Copyright 1986,Sid Penstone, (* Department of Electrical Engineering,* Queen's University,#* Kingston, Ontario, Canada K7L3N6 * (613)-545-2925* BITNET: PENSTONE@QUCDNEE1t* Version 1.8, Dec.23,1986*m* Modifications:8* - used the C call stat() to get file informationA* - now propagates directory specs to subsequent file-specs7* 1.4 - starts pathnames at current default directoryeD* 1.5 - corrected error in scan_name for directories outside treeD* - did immediate close of file-descriptor version in out_file7* to get around overflow of file operations ???;I* 1.6 - added cleanup_dire() to correctly handle rooted directory specs?* 1.6b - corrected typing error in scan_name "-" should be "="2F* - looked past nodename in getting rid of device in scan_name()G* - reject access to other nodes by trapping "::" in initsearch()rI* 1.7 - set resultant string size to 0 in search(), because of problemss!* with rooted directories D* 1.8 - added "d" option, with default to suppress trailing "." in* output file namesa*/7/* The input data is in VMS format,. The output will be A* blocks of 10240 bytes, with 512 byte internal blocks of headerc<* and data. Unfilled 512 blocks will be packed with garbage.B* The output will be padded out to a full block of size BLKSIZE at* the end of the Tar file. */e#include stdio #include timen#include ssdef#include descrip#include ctype #include rms#include stsdefh #include filew #include stat #include types#define ISDIRE 1#define ISFILE 0!#define FIXED FAB$C_FIXa#define NAMSIZE 100e7#define BLKSIZE 10240 /* Block size on tape*/t0#define DSIZE 512 /* data block */:static struct tarhdr /* A Tar header */ {o char title[NAMSIZE]; char protection[8];r char uid[8]; char gid[8]; char count[12]; char time[12]; char chksum[8];e2 char linkmode; /* hope this is right!! */D char linkname[NAMSIZE]; /* Space for the name of the link */* char dummy[255]; /* and the rest */ } header;o>struct tarhdr *empty; /* buffer of nulls */Hchar *dbuffer; /* for buffering output data */Pstatic int bufferpointer; /* Position of next byte in the block */Bstatic struct FAB fblock,fblock2; /* File attribute block */Jstatic struct NAM nblock,nblock2; /* Name attribute block for rms */?struct stat *sblock; /* for stat() call */t/* Function flags, options:*/b;int create, /* c operation (default) */e1 list, /* t operation */ 6 verbose, /* v option, report actions */ wait, 4 dot; /* Include trailing dots */!/* Miscellaneous globals, etc. */t&char temp[NAMSIZE]; /* scratch */4char *strindex(); /* String search function */1char *tarfile = "tape" , /* Output file */-4 operation = ' ', /* Current operation c,t */A pathname[NAMSIZE], /* File name as written on tape (UNIX) */ 8 directory[NAMSIZE], /* The current root directory */? new_directory[NAMSIZE], /* D00]JH+%O-%TADATADATAirectory of current file */ 5 newfile[NAMSIZE], /* VMS format of file name */s: outfile[NAMSIZE], /* stripped format of file name */C filetime[32], /* Modification date as from vms */.8 searchname[NAMSIZE]; /* for the NAM block */!/* Global file characteristics */dFILE *vmsfile;int vmsfd, outfd, temfd;Aunsigned vmsmrs, vmstime; /* maximum record size */Y:int vmsrat,vmsorg,vmsrfm; /* Other format (as integers) */@int bytecount, mode, uid , gid , links;/* Data in the header */>default_name = "*.*"; /* Only get the most recent version */int i;A/* ******************** start here *************************** */emain(argc,argv)r int argc;s char *argv[]; {Aint status,file_type,j,c,len; :char *cp, *indx, names[NAMSIZE]= "", string[NAMSIZE]= "", ans[10];FILE *temfile; initialize();n(/* Decode the options and parameters: */ if(argc ==1) { 5 create = 1; /* Default for now */p operation = 'c'; list = 0;o verbose = 1;; wait = 0; /* Don't wait for prompt */c dot = 0; }e if(--argc > 0) {n cp = argv[1];p while(c = *cp++) {  switch(c)n { A case 'c': /* c and t exclusive */a create = 1;$ operation = 'c'; list = 0;o break; case 't':  create = 0;w list = 1; $ operation = 't';= verbose = 1; /* t means report */n break; case 'v':- verbose=1; break; case 'w':l wait=1;t break; case 'd':n dot=1; break; case '-':m break; default:> printf("Option '%c' not recognized.\n",c); } }n }eA/* Use the parse operation to fill in missing specifications, andeC* set up for repeated searching. The multiple file search describedF* in the RMS manual does not seem to work, so we will have to sort out * the items separated by commas. */i if(--argc > 0)F strcpy(names,argv[2]); /* Assume file name is next */ else {e! strcpy(names,"[...]*.*"); @/******** COMMENTED OUT.. otherwise asks the user for file names printf(" File name(s)?");f gets(names);************ */u }F8 if(create) /* Open the output and scratch files */ {e8 outfd = creat(tarfile,0600,"rfm=fix","mrs=512"); temfile = tmpfile(); temfd = fileno(temfile);# if(outfd < 0 || temfd < 0 )t {e printf(rD "Couldn't open output tar or scratch file. Bye,bye.\n"); exit(2); }o } G /* Now we will extract search strings from the names string. Assumec# * they are separated by commas." */@ while(strlen(names)!=0) /* Get the file name argument */ {t" if(indx=strchr(names,','))> *indx = 0; /* Replace , by terminator */E if(strchr(names,']')) /* Always include a directory spec */a? strcpy(string,names); /* Get the new part */tO else /* If no directory, keep the old one */r) if((cp = strchr(string,']'))) # strcpy(cp+1,names);i else% strcpy(string,names);e# if(initsearch(string) <= 0)eK printf("***** No files found while searching for:%s\n",string);e else% while(search(newfile,100)!=0)m {i< chgcase(newfile); /* all lower case, please */" cleanup_dire(newfile);A 00]YK H6%! !file_type = scan_name(newfile,new_directory,outfile);,+ strcpy(pathname,new_directory); % strcat(pathname,outfile); $ get_attributes(newfile); if(wait) { - strcpy(temp,ctime(&vmstime)); 1 if((cp=strchr(temp,'\n'))!= NULL) < *cp = 0; /* Avoid newline */1 printf("%c: %-40s %-18s [y/n] ?", 1 operation,newfile,temp+4); scanf("%s",ans);' if ( ans[0] != 'y')r! continue;  }  if(create) {*' if(file_type == ISDIRE)* {e# bytecount = 0;e mode = 0755;* fill_header(pathname);( write_header(outfd); }r' if(file_type == ISFILE)I {E mode = 0644;6 if(addfile(newfile, pathname) < 0)A printf("ERROR: %s NOT COPIED\n",newfile);u }  }n if(verbose || list)e {e4 if(bytecount || file_type == ISDIRE)1 printf("%c: %-40s %6d %26s",iE operation,pathname,bytecount,ctime(&vmstime));; else5 printf("IGNORED: %s\n",pathname); } } F if(indx) /* any more in the string ? */> strcpy(names,indx+1); /* Yes, work on it */ else break; }  if(create) {z write_trailer(outfd);p close(outfd);h }e exit(SS$_NORMAL);e}d(/* Copy the vms file to the output file.* */int addfile(vmsname,unixname)char vmsname[],unixname[];{ int ind;A if(bytecount == 0) /* We don't output null files */l return(0);3 if((ind=out_file(vmsname,bytecount,outfd)) < 0)a return(ind);* bufferpointer = bufferpointer%BLKSIZE; return(1);} /* Write out the file.-* move nbytes of data from "fdin" to "fdout";'* Always pad the output to a full DSIZEe>* If it a vms text file, it may be various formats, so we will<* write into a temporary file first, then copy to the output(* so that we get the correct byte count./* We set the bytecount=0 if this is funny file.n*/#int out_file(filename,nbytes,fdout) char filename[];int fdout, nbytes;{ int i, n, pos, fdin; FILE *filein; if(vmsrfm == FIXED)M { ' if((fdin=open(filename,0)) <=0)  { A printf("Error opening input file %s\n",filename);r return(-1);i }hL fill_header(pathname); /* We have all of the information */D write_header(outfd); /* So write to the output */ while(nbytes > 0) {h> n = read(fdin,dbuffer,nbytes>DSIZE? DSIZE:nbytes); if(n<0)b {  close(fdin);5 printf("Read error on input file\n");  return(-1);/ }  nbytes -= n;' write(fdout,dbuffer,DSIZE);aH bufferpointer += DSIZE; /* Count the position */ } close(fdin); return(0); }lB else if(vmsrat != 0) /* must be a text file */J { /* Write out to standard stream */2 if((filein = fopen(filename,"r")) == NULL) {*6 printf("ERROR OPENING %s\n",filename); return(-1);r }h nbytes = 0;,D lseek(temfd,0,0); /* Back to the beginning */9 while((i = fgets(dbuffer,DSIZE,filein)) != NULL) {* n = strlen(dbuffer); nbytes += n;# write(temfd,dbuffer,n);D00]JH+%O-%TADATADATA }rE fclose(filein); /* All done with the input */ D lseek(temfd,0,0); /* Back to the beginning */A bytecount = nbytes; /* Use the real count */h@ fill_header(pathname); /* Compute the header */7 write_header(outfd); /* Write it */fD while(nbytes > 0) /* Now copy to the output */ {s? n = read(temfd,dbuffer,nbytes>DSIZE? DSIZE:nbytes);  nbytes -= n;' write(fdout,dbuffer,DSIZE);.H bufferpointer += DSIZE; /* Count the position */ }e return(0); }*C /* Other formats e.g. .OBJ are not done */_ bytecount = 0; return(0);}])/* Copy the header to the output file */int write_header(fd)int fd;e{nint n;* if((n=write(fd,&header,DSIZE))!=DSIZE) {9 printf("Error writing header in output file.\n");n exit(1); }c bufferpointer += DSIZE;  return(n);} */* get the file attributes via stat() */int get_attributes(fname) char fname[]; {- if(stat(fname,sblock)) {=7 printf("Error getting file status:%s\n",fname); G vmstime = 0; /* Prevent garbage printoout */ D bytecount = 0; /* of inaccessible files */ return(-1);r } 8/* now get the file attributes, we don't use them all */ bytecount = sblock->st_size; vmsrat = sblock->st_fab_rat; vmsmrs = sblock->st_fab_mrs; vmsrfm = sblock->st_fab_rfm; vmstime = sblock->st_mtime; } D/* Write the two blank blocks on the output file, and pad the output#* to a full blocksize if needed. */swrite_trailer(fdout) int fdout;{ int rem; header = *empty; write_header(fdout); write_header(fdout);* bufferpointer = bufferpointer%BLKSIZE;# while (bufferpointer < BLKSIZE) write_header(fdout); return(1);}rC/* Decode a file name into the directory, and the name, and convert B* to a valid UNIX pathname. Return a value to indicate if this is$* a directory name, or another file.=* We return the extracted directory string in "dire", and theeA* filename (if it exists) in "fname". The full title is in "line"o * at input.o*/int scan_name(line,dire,fname)char line[],dire[],fname[];.{*char temp[NAMSIZE],*end1,*end2;tint len,len2,i;]>/* The format will be VMS at input, so we have to scan for theA* VMS device separator ':', and also the VMS directory separatorse* '[' and ']'.eF* If the name ends with '.dir;1' then it is actually a directory name.P* The outputs dire and fname will be a complete file spec, based on the default * directory.I* It may be a rooted directory, in which case there will be a "][" string * remove it.. P* Strip out colons from the right, in case there is a node name (should not be!)K* If the filename ends in a triling '.', suppressit , unless the "d" option.* is set*/O strcpy(temp,strrchr(line,':')+1); /* Start with the whole name */ 4/* Get rid of default directory part of the name */J for(end1=temp,end2=strrchr(directory,':')+1;*end2 && (*end1 == *end2); end1++,end2++); if(*end2 == 0)G *end1 = 0; /* Perfect match, no directory spec */e else {  switch(*end1) {n case '.':p? case '[': /* Legal beginnings or ends */r break;M case ']': /* We are above the default, use full name */ B end1 = strchr(temp,'['); /* Fixed this from 1.5 */ break;A default: /* Something strange, back up */i? while(*end1 != '.' && *end1 != '[' && end1 >= temp)i end1--;  break; }hB end1++; /* Get past the starting . or [ */ }l strcpy(dire,end1); if(strlen(dire))M strcpy(strchr(00]YK H6%! !dire,']'),"/"); /* get rid of the directory marks */@ strcpy(temp,strchr(line,']')+1); /* Now get the file name */) if((end1=strindex(temp,".dir;1"))!=0)t {;N strcpy(end1,"/"); /* Terminate directory name */ strcat(dire,temp); strcpy(fname,""); }  else {= strcpy(fname,temp);eH strcpy(strchr(fname,';'),""); /* no version numbers */ }a) /* Now rewrite the directory name */n8 for (i=1;dire[i];i++) /* Change '.' to '/' */ if(dire[i]=='.') dire[i]='/'; if((len=strlen(fname))==0) {* return(ISDIRE);_ }I else if(fname[--len] == '.')  if (dot == 0)7 fname[len] = 0; /* No trailing dots */h return(ISFILE); } B/* To start looking for file names to satisfy the requested input,B* use the sys$parse routine to create a wild-card name block. WhenA* it returns, we can then use the resultant FAB and NAM blocks on @* successive calls to sys$search() until there are no more files * that match*/int initsearch(string)char string[];{f int status;i# if(strindex(string,"::")!=NULL) {u@ printf("***** Access across nodes is not supported.\n"); return(-1); }  fblock = cc$rms_fab; nblock = cc$rms_nam;$ fblock.fab$l_dna = default_name;, fblock.fab$b_dns = strlen(default_name); fblock.fab$l_fna = string;& fblock.fab$b_fns = strlen(string); fblock.fab$l_nam = &nblock; " nblock.nam$l_esa = searchname;* nblock.nam$b_ess = sizeof(searchname); #ifdef debug( printf("searching on: %s\n",string);#endif status = sys$parse(&fblock); if(status != RMS$_NORMAL)t {) if(status == RMS$_DNF): printf("Directory not found:%s\n",searchname); else- printf("Error in sys$parse()\n");= return (-1); }nC searchname[nblock.nam$b_esl] = 0; /* Terminate the string */cD /* Now reset for searching, pointing to the parsed name block */ fblock = cc$rms_fab; fblock.fab$l_nam = &nblock;lD return(nblock.nam$b_esl); /* return the length of the string */}u@/* Get the next file name that matches the namblock that was set"* up by the sys$search() function.*/int search(buff,maxlen) char buff[]; int maxlen;t{e int status;  nblock.nam$l_rsa = buff; nblock.nam$b_rss = maxlen;; nblock.nam$b_rsl = 0; /* For next time around */u6 while( (status = sys$search(&fblock)) != RMS$_NMF) {s# buff[nblock.nam$b_rsl] = 0;f! if(status == RMS$_NORMAL) {% return(nblock.nam$b_rsl);n }f else {e# if( status == RMS$_PRV) ? printf("%s : No privilege for access.\n",buff);o( else if (status == RMS$_FNF)6 printf("%s : File not found.\n",buff); else { = printf(" Error in f$search for :%s\n", buff);n return (0);  }d }  }r return (0);o}n:/* Fill the fields of the header; enter with the file nameB* if the file name is empty, then this is a trailer, and we should* fill it with zeroes. */nint fill_header(name) char name[];{t int i,chksum; char *ptr,tem[15];7 header = *empty; /* Clear the header */rB if(strlen(name)!=0) /* only fill if there is a file */ { E sprintf(header.title,"%s",name); /* write file name */pF sprintf(header.protection,"%6o ",mode); /* all written with */F sprintf(header.uid,"%6o ",uid); /* a trailing space */' sprintf(header.gid,"%6o ",gid);sF sprintf(tem,"%11o ",bytecount); /* except the count */I strncpy(header.count,tem,12); /* and the time, which */ F sprintf(tem,"%11o ",vmstime); /* except the count */B st00]NJH+%O-%TADATADATArncpy(header.time,tem,12); /* have no null */G strncpy(header.chksum," ",8); /* all blanks for sum*/ </* I know that the next two are already zero, but do them */A header.linkmode = 0; /* always zero */ B sprintf(header.linkname,"%s",""); /* always blank */A for(chksum=0, ptr = &header;ptr < &header.linkmode;ptr++)NG chksum += *ptr; /* make the checksum */fJ sprintf(header.chksum,"%6o",chksum); /* This is how it looks */F } /* on UNIX tapes... */ return(0);}t9/* Initialize various fields, get some standard values */ initialize(){*int i; dbuffer = malloc(DSIZE+1);) sblock = malloc(sizeof(struct stat));0 empty = malloc(DSIZE); for (i=0;i < DSIZE;i++) J empty->title[i] = 0; /* all zeroes, even if malloc() did it */ header = *empty; bufferpointer = 0;9 gid = getgid(); /* for now, use the user's uic */ ' uid = getuid(); /* and group uic */uH mode = 0644; /* This get changed elsewhere, anyhow */? strcpy(directory,getenv("PATH")); /* Default directory */ return;r}f</* Search for string2 in string1; return address pointer. */char *strindex(string1,string2)achar *string1,*string2; {echar *c1, *c2, *cp; $ for(c1 = string1; *c1 !=0; c1++) {n4 cp = c1; /* save the start address */: for(c2=string2; *c2 !=0 && *c1 == *c2; c1++,c2++); if(*c2 == 0); return(cp);_ }m return(NULL);a}f//* function to change a string to lower case */iint chgcase(string)kchar string[];{eint i;2 for(i=0;string[i]=tolower(string[i]);i++);: return (--i); /* return string length */}m3/* Routine to get rid of rooted directory problems,;* and any others that turn upn*/int cleanup_dire(string)char string[];{char *ptr, temp[NAMSIZE];;/ if((ptr=strindex(string,"][")) == NULL)o return(0);5 /* Just collapse around the string */a strcpy(ptr,ptr+2); return(1);}ather file.=* We return the extracted directory string in "dire", and theeA* filename (if it exists) in "fname". The full title is in "line"o * at input.o*/int scan_name(line,dire,fname)char line[],dire[],fname[];.{*char temp[NAMSIZE],*end1,*end2;tint len,len2,i;]>/* The format will be VMS at input, so we have to sc PROGRAM UNIX;>/* Copyright (c) 1979 David A. Butterfield and Daniel Weise */CONST QUIT = 'q'; DIR = 'd'; LIST = 'l'; HUH = '?'; CHDIR = 'c'; TYPEIT = 't'; MOVE = 'm'; DIRBIT = 40000B; SPBIT = 20000B; LARGE = 10000B;TYPE' CHAR13ARRAY = ARRAY[0..13] OF CHAR; INODE = RECORD FLAGS: INTEGER; NLINKS: CHAR; UID: CHAR; GID: CHAR; SIZEHI: CHAR; SIZELO: INTEGER;' BLKNOS: ARRAY[0..7] OF INTEGER;' ACTIME: ARRAY[0..1] OF INTEGER;, MODTIME: ARRAY[0..1] OF INTEGER END; DIRENTRY = RECORD INODENO: INTEGER;+ FILENAME: ARRAY[0..13] OF CHAR END; FUNNY = RECORD CASE INTEGER OF1 1: (INODEREC: ARRAY[0..15] OF INODE);7 2: (DIRBLOCKREC: ARRAY[0..31] OF DIRENTRY);0 3: (CHARREC: ARRAY[0..511] OF CHAR);4 4: (INTS: ARRAY[0..255] OF INTEGER) END;VAR DEV: TEXT;= CIHAVE: INTEGER; /* INODE NUMBER OF CURRENT DIRECTORY */G ICURD: INODE; /* CONTAINS THE INODE OF THE CURRENT DIRECTORY */F DECNT: INTEGER; /* NUMBER OF ENTRIES IN THE CURRENT DIRECTORY */ DATABLOCK: FUNNY;& INODEBLOCK: ARRAY[0..15] OF INODE;: INHAVE: INTEGER; /* PHYSICAL BLOCK IN INODEBLOCK */' DIRBLOCK: ARRAY[0..31] OF DIRENTRY;8 DIHAVE: INTEGER; /* PHYSICAL BLOCK IN DIRBLOCK */' INDBLOCK: ARRAY[0..255] OF INTEGER;8 IBHAVE: INTEGER; /* PHYSICAL 00NYK H6%! !BLOCK IN INDBLOCK */( DINDBLOCK: ARRAY[0..255] OF INTEGER;9 DIBHAVE: INTEGER; /* PHYSICAL BLOCK IN DINDBLOCK */> INBUFF: ARRAY[1..80] OF CHAR; /* THIS IS THE INPUT LINE */! Logname: ARRAY[1..8] OF CHAR;! LOGPASS: ARRAY[1..8] OF CHAR; LOGGEDIN: BOOLEAN; NOTDONE: BOOLEAN; OPTION: CHAR; ARG: INTEGER; FOO: CHAR; NL : ARRAY [0..1] OF CHAR;EPROCEDURE SEEK(VAR F:TEXT; VAR X: FUNNY; BLOCKNO: INTEGER); EXTERNAL;>FUNCTION GETBLKNO(RBLOCK:INTEGER; SOURCEINODE:INODE): INTEGER;VAR LINDBLOCKNO, LDINDBLOCKNO, PHYSBLOCK: INTEGER;BEGIN+ IF (SOURCEINODE.FLAGS & LARGE) = 0 THENB IF RBLOCK < 8 THEN PHYSBLOCK := SOURCEINODE.BLKNOS[RBLOCK] ELSE BEGINH WRITELN('ATTEMPT TO REFERENCE #',RBLOCK,'OF A SMALL FILE.');& RBLOCK := RBLOCK DIV 0 END' ELSE BEGIN /* LARGE OR HUGE FILE */& LINDBLOCKNO := RBLOCK DIV 256;% IF LINDBLOCKNO < 7 THEN BEGINC IF SOURCEINODE.BLKNOS[LINDBLOCKNO] <> IBHAVE THEN BEGIND SEEK(DEV,DATABLOCK,SOURCEINODE.BLKNOS[LINDBLOCKNO]);+ INDBLOCK := DATABLOCK.INTS;> IBHAVE := SOURCEINODE.BLKNOS[LINDBLOCKNO] END;5 PHYSBLOCK := INDBLOCK[RBLOCK MOD 256] ENDC ELSE BEGIN /* HUGE FILE WERE HERE IFF LINDBLOCKNO >= 7 */9 IF SOURCEINODE.BLKNOS[7] <> IBHAVE THEN BEGIN: SEEK(DEV,DATABLOCK,SOURCEINODE.BLKNOS[7]);+ INDBLOCK := DATABLOCK.INTS;4 IBHAVE := SOURCEINODE.BLKNOS[7] END;+ LINDBLOCKNO := LINDBLOCKNO - 7;: IF INDBLOCK[LINDBLOCKNO] <> DIBHAVE THEN BEGIN: SEEK(DEV,DATABLOCK,INDBLOCK[LINDBLOCKNO]);, DINDBLOCK := DATABLOCK.INTS;5 DIBHAVE := INDBLOCK[LINDBLOCKNO] END;; PHYSBLOCK := DINDBLOCK[RBLOCK MOD 256] END END; GETBLKNO := PHYSBLOCK END;(FUNCTION GETI(INODENO: INTEGER):INTEGER;VAR BLOCK: INTEGER;BEGIN INODENO := INODENO - 1; GETI := 17B & INODENO; BLOCK := INODENO DIV 16 + 2;! IF BLOCK <> INHAVE THEN BEGIN" SEEK(DEV,DATABLOCK,BLOCK);) INODEBLOCK := DATABLOCK.INODEREC; INHAVE := BLOCK END END;*FUNCTION GETD(DIRNUMBER: INTEGER):INTEGER;VAR BLOCK: INTEGER;BEGIN GETD := 37B & DIRNUMBER;/ BLOCK := GETBLKNO(DIRNUMBER DIV 32, ICURD);! IF BLOCK <> DIHAVE THEN BEGIN$ SEEK(DEV, DATABLOCK, BLOCK); DIHAVE := BLOCK;2 DIRBLOCK := DATABLOCK.DIRBLOCKREC END END;#PROCEDURE GETFILE(INODENO:INTEGER);VAR HI: CHAR;+ FINPTR, LO, SIZE, BLOCK, I, J: INTEGER;! ANSWER: ARRAY[1..14] OF CHAR; INSERTCRS: BOOLEAN;BEGIN- WRITE('Should I add carriage returns? '); READLN(ANSWER);8 INSERTCRS := (ANSWER[1] = 'y') OR (ANSWER[1] = 'Y'); FINPTR := GETI(INODENO);$ HI := INODEBLOCK[FINPTR].SIZEHI;$ LO := INODEBLOCK[FINPTR].SIZELO; /*$C MOVB HI(6),%0 BIC #^O177400,%0 MOV LO(6),%1 SUB #1,%1 SBC %0 ASHC #-9.,%0 MOV %1,SIZE(6) */ FOR I := 0 TO SIZE DO BEGIN0 BLOCK := GETBLKNO(I,INODEBLOCK[FINPTR]); IF BLOCK <> 0 THEN BEGIN& SEEK(DEV,DATABLOCK,BLOCK);1 IF INSERTCRS THEN FOR J:= 0 TO 511 DO7 IF DATABLOCK.CHARREC[J] = CHR(12B) THEN, WRITE(CHR(15B),CHR(12B))0 ELSE WRITE(DATABLOCK.CHARREC[J])- ELSE WRITE(DATABLOCK.CHARREC) END ELSE7 WRITELN(NL,'BLOCK ',I,' IS EMPTY') END END;$PROCEDURE MOVEFILE(INODENO:INTEGER);VAR OUTPUT: TEXT;# FILENAME: ARRAY[1..14] OF CHAR; HI: CHAR;+ FINPTR, LO, SIZE, BLOCK, I, J: INTEGER; INSERTCRS: BOOLEAN;BEGIN WRITE('Write to file: '); READLN(FILENAME); REWRITE(OUTPUT,FILENAME);- WRITE('Should I add carriage returns? '); READLN(FILENAME);< INSERTCRS := (filename[1] = 'y') OR (filename[1] = 'Y'); FINPTR := GETI(INODE00NNJH+%O-%TADATADATANO);$ HI := INODEBLOCK[FINPTR].SIZEHI;$ LO := INODEBLOCK[FINPTR].SIZELO; /*$C MOVB HI(6),%0 BIC #^O177400,%0 MOV LO(6),%1 SUB #1,%1 SBC %0 ASHC #-9.,%0 MOV %1,SIZE(6) */ FOR I:= 0 TO SIZE DO BEGIN0 BLOCK := GETBLKNO(I,INODEBLOCK[FINPTR]);" SEEK(DEV,DATABLOCK,BLOCK);- IF INSERTCRS THEN FOR J:= 0 TO 511 DO3 IF DATABLOCK.CHARREC[J] = CHR(12B) THEN/ WRITE(OUTPUT,CHR(15B),CHR(12B))3 ELSE WRITE(OUTPUT,DATABLOCK.CHARREC[J])1 ELSE WRITE(OUTPUT,DATABLOCK.CHARREC) END; CLOSE(OUTPUT) END;(PROCEDURE WRITEF(VAR NAME: CHAR13ARRAY);VAR I: INTEGER;BEGIN FOR I := 0 TO 13 DO BEGIN+ IF ORD(NAME[I]) = 0 THEN WRITE(' ')$ ELSE WRITE(NAME[I]) END END;#PROCEDURE GETCURD(CIWANT: INTEGER);VAR HI: CHAR; FINPTR, LO: INTEGER;BEGIN" IF CIWANT <> CIHAVE THEN BEGIN FINPTR := GETI(CIWANT);7 IF (INODEBLOCK[FINPTR].FLAGS & DIRBIT) = 0 THEN. WRITELN('Not a directory') ELSE BEGIN CIHAVE := CIWANT;0 ICURD := INODEBLOCK[FINPTR] END END; HI := ICURD.SIZEHI; LO := ICURD.SIZELO; /*$C MOVB HI(6),%0 MOV LO(6),%1 ASHC #-4,%0C MOV %1,DECNT(5) ; ASSUME NO MORE THAN 32767 ENTRIES */END;PROCEDURE DIRLIST;VAR HI: CHAR;6 LO, FINODE, FINPTR, DIRPTR, DIRCNT, SIZE: INTEGER;BEGIN' FOR DIRCNT := 0 TO DECNT-1 DO BEGIN DIRPTR := GETD(DIRCNT);+ FINODE := DIRBLOCK[DIRPTR].INODENO;! IF FINODE <> 0 THEN BEGIN! WRITE(FINODE:6,' ');. WRITEF(DIRBLOCK[DIRPTR].FILENAME); WRITE(' ');# FINPTR := GETI(FINODE);> IF (INODEBLOCK[FINPTR].FLAGS AND DIRBIT) <> 0 THEN+ WRITE('d') ELSE WRITE(' ');= IF (INODEBLOCK[FINPTR].FLAGS AND SPBIT) <> 0 THEN+ WRITE('s') ELSE WRITE(' ');, HI := INODEBLOCK[FINPTR].SIZEHI;, LO := INODEBLOCK[FINPTR].SIZELO; /*$C MOVB HI(6),%0 BIC #^O177400,%0 MOV LO(6),%1 SUB #1,%1 SBC %0 ASHC #-9.,%0 MOV %1,SIZE(6) */* WRITELN(SIZE+1:4) END END END;BEGIN /*$C BIS #^O40000,@#^O44 */( NL[0] := CHR(15B); NL[1]:= CHR(12B);4 WRITELN(CHR(14B),'Program to read Unix disks.'); WRITE('Unix disk drive: '); READLN(Logname);I If Ord(Logname[1]) > 96 then Logname[1] := Chr(Ord(Logname[1]) - 32);I If Ord(Logname[2]) > 96 then Logname[2] := Chr(Ord(Logname[2]) - 32); NOTDONE := TRUE; CIHAVE := 0; INHAVE := 0; DIHAVE := 0; IBHAVE := 0; DIBHAVE := 0;/* RESET(DEV,'DX1:');*/ reset(dev,Logname); GETCURD(1); WHILE NOTDONE DO BEGIN WRITE('% '); READ(OPTION); CASE OPTION OF HUH: BEGIN READLN(FOO);E WRITELN('q = quit',NL,'d = l = directory listing',NL,E 'c = change directory',NL,'t = type file',NL,5 'm = move to rt11 file') END; QUIT,'Q': Begin5 Readln(Foo); /* Get rid of trailing CR */ NOTDONE := FALSE; End; DIR,'D',LIST,'L': BEGIN READLN(FOO); DIRLIST END; CHDIR,'C': BEGIN READLN(ARG);! GETCURD(ARG) END; TYPEIT,'T': BEGIN READLN(ARG);! GETFILE(ARG) END; MOVE,'M': BEGIN READLN(ARG);" MOVEFILE(ARG) END; ELSE BEGIN READLN(FOO);J WRITELN('Illegal command -- type ? for help') END END END; CLOSE(DEV) END.00NNNN6%! !Glen:6 Sorry about the delay in getting the Unix disk reader=program to you. I've been working 6 and 7 day weeks for the<last few months, which leaves very little time for the "fun"things.8 A few notes about the program: First, it assumes that<you are using the old ESI Pascal compiler (the forerunner to8the OMSI Pascal-1 compiler). This is because it does a>non-file-structured read on the Unix disk. The OMSI compiler@"fixed" the "bug" that allowed this to be done. I am told that>specifying a file size of octal 100000 to the current compiler@will allow non-file-structured operations, but I haven't checked this out yet.9 Second, the program uses imbedded assembly code. Don'tCblame me for this atrocity, I just made a few fixes to the program.CWith some work you might be able to make this compiler-independent,-but I don't have the time to even attempt it.: Third, the copy of the compiler and run-time library that?was given to me is only built for the 11/03. If you have real@problems, I might possibly be able to get one for the 11/45, butAdon't bet on it. The program does no floating point, so as longas you have EIS it should run.8 Fourth, I've only tested the program with floppy disks,Bbut the original author (Dave Butterfield) assures me that it will4work with any disk supported by both Unix and RT-11. Good luck, Alan FrisbieTYPE" Block = Array[0..511] of char;$ Ranfile = Record case integer of 1: (F: File of Block);5 2: (Point, Mode, Block, Buffer: integer) END;=Procedure Seek(Var F:Ranfile; Var X:Block; Blockno: Integer);Begin F.Block := Blockno;1 F.Mode := F.Mode AND 177377B; /* Read mode */ F.Point := F.Buffer+512; GET(F.F); X := F.F^ END;SET ERROR NONE.DELETE/NOQ UNIX.LST,UNIX.MAC,UNIX.OBJ,UNIX.SAVSET ERROR ERROR RUN PAS03UNIX,UNIX=UNIX MACRO UNIXLINK UNIX,SEEK,PASLIB1 .GLOBL $RESR6,$RESR5,$KORE,$SAV10,$VER,$BEGIN,$B .RADIX 10 .GLOBL SEEK L0: JMP SEEKL1: SUB #6,%6 JSR %0,$B74 .GLOBL $B74 MOV 16(6),%0 BIC #61439,%0 BEQ L2 JMP L3L2: CMP 48(6),#8 BLT L4 JMP L5L4: MOV 48(6),%0 ASL %0 ADD %6,%0 MOV 24(0),12(6) JMP L6L5: MOV #L7,-(6) MOV #22,-(6) JSR %7,$B32 .GLOBL $B32 MOV 48(6),-(6) JSR %7,$B24 .GLOBL $B24 MOV #L8,-(6) MOV #16,-(6) JSR %7,$B32 JSR %7,$B36 .GLOBL $B36 CLR -(6) MOV 50(6),-(6) JSR %7,$B80 .GLOBL $B80 MOV (6)+,48(6)L6: JMP L9L3: MOV 48(6),%0 SWAB %0 MOVB %0,%0 MOV %0,8(6) CMP 8(6),#7 BLT L10 JMP L11L10: MOV 8(6),%0 ASL %0 ADD %6,%0 CMP 24(0),2102(5) BNE L12 JMP L13L12: MOV %5,-(6) MOV %5,%0 ADD #50,%0 MOV %0,-(6) MOV 12(6),%0 ASL %0 ADD %6,%0 MOV 28(0),-(6) JSR %7,L0 MOV %5,%0 ADD #50,%0 MOV %5,%1 ADD #1590,%1 MOV #256,%2 MOV (0)+,(1)+ DEC %2 BNE .-4 MOV 8(6),%0 ASL %0 ADD %6,%0 MOV 24(0),2102(5)L13: MOV 48(6),%0 BIC #65280,%0 ASL %0 ADD %5,%0 MOV 1590(0),12(6) JMP L14L11: CMP 38(6),2102(5) BNE L15 JMP L16L15: MOV %5,-(6) MOV %5,%0 ADD #50,%0 MOV %0,-(6) MOV 42(6),-(6) JSR %7,L0 MOV %5,%0 ADD #50,%0 MOV %5,%1 ADD #1590,%1 MOV #256,%2 MOV (0)+,(1)+ DEC %2 BNE .-4 MOV 38(6),2102(5)L16: ADD #65529,8(6) MOV 8(6),%0 ASL %0 ADD %5,%0 CMP 159000NNJH+%O-%TADATADATA(0),2616(5) BNE L17 JMP L18L17: MOV %5,-(6) MOV %5,%0 ADD #50,%0 MOV %0,-(6) MOV 12(6),%0 ASL %0 ADD %5,%0 MOV 1590(0),-(6) JSR %7,L0 MOV %5,%0 ADD #50,%0 MOV %5,%1 ADD #2104,%1 MOV #256,%2 MOV (0)+,(1)+ DEC %2 BNE .-4 MOV 8(6),%0 ASL %0 ADD %5,%0 MOV 1590(0),2616(5)L18: MOV 48(6),%0 BIC #65280,%0 ASL %0 ADD %5,%0 MOV 2104(0),12(6)L14:L9: MOV 12(6),50(6) JSR %0,$B76 .GLOBL $B76 MOV 6(6),40(6) ADD #40,%6 RTS %7L7: .WORD 21569 .WORD 17748 .WORD 20557 .WORD 8276 .WORD 20308 .WORD 21024 .WORD 17989 .WORD 21061 .WORD 20037 .WORD 17731 .WORD 8992 .WORD 0L8: .WORD 17999 .WORD 16672 .WORD 21280 .WORD 16717 .WORD 19532 .WORD 17952 .WORD 19529 .WORD 11845 .WORD 0L19: TST -(6) JSR %0,$B74 DEC 12(6) MOV 12(6),%0 BIC #65520,%0 MOV %0,14(6) MOV 12(6),%0 ASR %0 ASR %0 ASR %0 ASR %0 ADD #2,%0 MOV %0,8(6) CMP 8(6),1074(5) BNE L20 JMP L21L20: MOV %5,-(6) MOV %5,%0 ADD #50,%0 MOV %0,-(6) MOV 12(6),-(6) JSR %7,L0 MOV %5,%0 ADD #50,%0 MOV %5,%1 ADD #562,%1 MOV #256,%2 MOV (0)+,(1)+ DEC %2 BNE .-4 MOV 8(6),1074(5)L21: JSR %0,$B76 MOV 2(6),4(6) ADD #4,%6 RTS %7L22: TST -(6) JSR %0,$B74 MOV 12(6),%0 BIC #65504,%0 MOV %0,14(6) TST -(6) MOV 14(6),%0 ASR %0 ASR %0 ASR %0 ASR %0 ASR %0 MOV %0,-(6) SUB #32,%6 MOV %5,%0 ADD #16,%0 MOV %6,%1 MOV #16,%2 MOV (0)+,(1)+ DEC %2 BNE .-4 JSR %7,L1 MOV (6)+,%0 MOV %0,8(6) CMP 8(6),1588(5) BNE L23 JMP L24L23: MOV %5,-(6) MOV %5,%0 ADD #50,%0 MOV %0,-(6) MOV 12(6),-(6) JSR %7,L0 MOV 8(6),1588(5) MOV %5,%0 ADD #50,%0 MOV %5,%1 ADD #1076,%1 MOV #256,%2 MOV (0)+,(1)+ DEC %2 BNE .-4L24: JSR %0,$B76 MOV 2(6),4(6) ADD #4,%6 RTS %7L25: SUB #30,%6 MOV #L26,-(6) MOV #31,-(6) JSR %7,$B32 MOV %6,%0 ADD #14,%0 MOV %0,-(6) MOV #14,-(6) JSR %7,$B12 .GLOBL $B12 JSR %7,$B16 .GLOBL $B16 CMPB 14(6),#121 BEQ L27 CLR %0 BR L28L27: MOV #1,%0L28: CMPB 14(6),#89 BEQ L29 CLR %1 BR L30L29: MOV #1,%1L30: BISB %0,%1 MOVB %1,28(6) TST -(6) MOV 34(6),-(6) JSR %7,L19 MOV (6)+,%0 MOV %0,2(6) MOV 2(6),%0 ASL %0 ASL %0 ASL %0 ASL %0 ASL %0 ADD %5,%0 MOVB 567(0),@%6 MOV 2(6),%0 ASL %0 ASL %0 ASL %0 ASL %0 ASL %0 ADD %5,%0 MOV 568(0),4(6)  MOVB 0(6),%0  BIC #^O177400,%0  MOV 4(6),%1  SUB #1,%1  SBC %0  ASHC #-9.,%0  MOV %1,6(6)  CLR 10(6) MOV 6(6),-(6)L32: CMP 12(6),(6) BLE .+6 JMP L33 TST -(6) MOV 14(6),-(6) MOV 8(6),%0 ASL %0 ASL %0 ASL %0 ASL %0 ASL %0 ADD %5,%0 SUB #32,%6 ADD #562,%0 MOV %6,%1 MOV #16,%2 MOV (0)+,(1)+ DEC %2 BNE .-4 JSR %7,L1 MOV (6)+,%0 MOV %0,10(6) TST 10(6) BNE L34 JMP L35L34: MOV %5,-(6) MOV %5,%0 ADD #50,%0 MOV %0,-(6) MOV 14(6),-(6) JSR %7,L0 TSTB 30(6) BNE L36 JMP L37L36: CLR 14(6) MOV #511,-(6)L39: CMP 16(6),(6) BLE .+6 JMP L40 MOV %5,%0 ADD 16(6),%0 CMPB 50(0),#10 BEQ L41 JMP L42L41: MOV #13,-(6) JSR %7,$B20 .GLOBL $B20 MOV #10,-(6) JSR %7,$B20 JMP L43L42: MOV %5,%0 ADD 16(6),%0 CLR -(6) MOVB 50(0),(6) JSR %7,$B20L43: INC 16(6) JMP L39L40: TST (6)+L38: JMP L44L37: MOV %5,%0 ADD #50,%0 MOV %0,-(6) MOV #512,-(6) JSR %7,$B32L44: JMP L45L35: MOV %5,%0 ADD #2722,%0 MOV %0,-(6) MOV #2,-(6) JSR %7,$B32 MOV #L46,-(6) MOV #6,-(6) JSR %7,$B32 MOV 12(6),-(6) JSR %7,$B24 MOV #L47,-(6) MOV #9,-(6) JSR %7,$B32 JSR %7,$B36L45: INC 12(6) JMP L32L33: TST (6)+L31: MOV 30(6),32(6) ADD #32,%6 RTS %7L26: .WORD 26707 00NNNN6%! ! .WORD 30063 .WORD 25708 .WORD 18720 .WORD 24864 .WORD 25700 .WORD 25376 .WORD 29281 .WORD 26994 .WORD 26465 .WORD 8293 .WORD 25970 .WORD 30068 .WORD 28274 .WORD 16243 .WORD 32L46: .WORD 19522 .WORD 17231 .WORD 8267 .WORD 0L47: .WORD 18720 .WORD 8275 .WORD 19781 .WORD 21584 .WORD 89L48: SUB #44,%6 MOV #L49,-(6) MOV #15,-(6) JSR %7,$B32 MOV %6,%0 ADD #14,%0 MOV %0,-(6) MOV #14,-(6) JSR %7,$B12 JSR %7,$B16 MOV %6,$B-10 MOV %6,%0 ADD #14,%0 MOV %0,-(6) MOV #14,-(6) MOV #2,%0 JSR %7,$B64 .GLOBL $B64 MOV #L50,-(6) MOV #31,-(6) JSR %7,$B32 MOV %6,%0 ADD #14,%0 MOV %0,-(6) MOV #14,-(6) JSR %7,$B12 JSR %7,$B16 CMPB 14(6),#121 BEQ L51 CLR %0 BR L52L51: MOV #1,%0L52: CMPB 14(6),#89 BEQ L53 CLR %1 BR L54L53: MOV #1,%1L54: BISB %0,%1 MOVB %1,42(6) TST -(6) MOV 48(6),-(6) JSR %7,L19 MOV (6)+,%0 MOV %0,30(6) MOV 30(6),%0 ASL %0 ASL %0 ASL %0 ASL %0 ASL %0 ADD %5,%0 MOVB 567(0),28(6) MOV 30(6),%0 ASL %0 ASL %0 ASL %0 ASL %0 ASL %0 ADD %5,%0 MOV 568(0),32(6)  MOVB 28(6),%0  BIC #^O177400,%0  MOV 32(6),%1  SUB #1,%1  SBC %0  ASHC #-9.,%0  MOV %1,34(6)  CLR 38(6) MOV 34(6),-(6)L56: CMP 40(6),(6) BLE .+6 JMP L57 TST -(6) MOV 42(6),-(6) MOV 36(6),%0 ASL %0 ASL %0 ASL %0 ASL %0 ASL %0 ADD %5,%0 SUB #32,%6 ADD #562,%0 MOV %6,%1 MOV #16,%2 MOV (0)+,(1)+ DEC %2 BNE .-4 JSR %7,L1 MOV (6)+,%0 MOV %0,38(6) MOV %5,-(6) MOV %5,%0 ADD #50,%0 MOV %0,-(6) MOV 42(6),-(6) JSR %7,L0 TSTB 44(6) BNE L58 JMP L59L58: CLR 42(6) MOV #511,-(6)L61: CMP 44(6),(6) BLE .+6 JMP L62 MOV %5,%0 ADD 44(6),%0 CMPB 50(0),#10 BEQ L63 JMP L64L63: MOV %6,%0 ADD #4,%0 MOV %0,$B-10 MOV #13,-(6) JSR %7,$B22 .GLOBL $B22 MOV #10,-(6) JSR %7,$B22 JMP L65L64: MOV %6,%0 ADD #4,%0 MOV %0,$B-10 MOV %5,%0 ADD 44(6),%0 CLR -(6) MOVB 50(0),(6) JSR %7,$B22L65: INC 44(6) JMP L61L62: TST (6)+L60: JMP L66L59: MOV %6,%0 ADD #2,%0 MOV %0,$B-10 MOV %5,%0 ADD #50,%0 MOV %0,-(6) MOV #512,-(6) JSR %7,$B34 .GLOBL $B34L66: INC 40(6) JMP L56L57: TST (6)+L55: MOV %6,$B-10 JSR %7,$B68 .GLOBL $B68 MOV 44(6),46(6) ADD #46,%6 RTS %7L49: .WORD 29271 .WORD 29801 .WORD 8293 .WORD 28532 .WORD 26144 .WORD 27753 .WORD 14949 .WORD 32L50: .WORD 26707 .WORD 30063 .WORD 25708 .WORD 18720 .WORD 24864 .WORD 25700 .WORD 25376 .WORD 29281 .WORD 26994 .WORD 26465 .WORD 8293 .WORD 25970 .WORD 30068 .WORD 28274 .WORD 16243 .WORD 32L67: TST -(6) CLR @%6 MOV #13,-(6)L69: CMP 2(6),(6) BLE .+6 JMP L70 MOV 6(6),%0 ADD 2(6),%0 MOVB @%0,%0 BEQ L71 JMP L72L71: MOV #32,-(6) JSR %7,$B20 JMP L73L72: MOV 6(6),%0 ADD 2(6),%0 CLR -(6) MOVB @%0,(6) JSR %7,$B20L73: INC 2(6) JMP L69L70: TST (6)+L68: MOV 2(6),4(6) ADD #4,%6 RTS %7L74: SUB #6,%6 CMP 8(6),14(5) BNE L75 JMP L76L75: TST -(6) MOV 10(6),-(6) JSR %7,L19 MOV (6)+,%0 MOV %0,2(6) MOV 2(6),%0 ASL %0 ASL %0 ASL %0 ASL %0 ASL %0 ADD %5,%0 MOV 562(0),%0 BIC #49151,%0 BEQ L77 JMP L78L77: MOV #L79,-(6) MOV #15,-(6) JSR %7,$B32 JSR %7,$B36 JMP L80L78: MOV 8(6),14(5) MOV 2(6),%0 ASL %0 ASL %0 ASL %0 ASL %0 ASL %0 ADD %5,%0 ADD #562,%0 MOV %5,%1 ADD #16,%1 MOV #16,%2 MOV (0)+,(1)+ DEC %2 BNE .-4L80:L76: MOVB 21(5),@%6 MOV 22(5),4(6)  MOVB 0(6),%0  MOV 4(6),%1  ASHC #-4,%0 A MOV %1,48(5) ; ASSUME NO MORE THAN 32767 ENTRIES   MOV 6(6),8(6) ADD #8,%6 RTS %7L79: .WORD 28494 .WORD 800NNJH+%O-%TADATADATA308 .WORD 8289 .WORD 26980 .WORD 25970 .WORD 29795 .WORD 29295 .WORD 121L81: SUB #14,%6 MOV #L82,-(6) MOV #33,-(6) JSR %7,$B32 JSR %7,$B36 CLR 10(6) MOV 48(5),%0 DEC %0 MOV %0,-(6)L84: CMP 12(6),(6) BLE .+6 JMP L85 TST -(6) MOV 14(6),-(6) JSR %7,L22 MOV (6)+,%0 MOV %0,10(6) MOV 10(6),%0 ASL %0 ASL %0 ASL %0 ASL %0 ADD %5,%0 MOV 1076(0),6(6) TST 6(6) BNE L86 JMP L87L86: MOV 6(6),-(6) MOV #6,$B-6 JSR %7,$B24 MOV #L88,-(6) MOV #2,-(6) JSR %7,$B32 MOV 10(6),%0 ASL %0 ASL %0 ASL %0 ASL %0 ADD %5,%0 ADD #1078,%0 MOV %0,-(6) JSR %7,L67 MOV #32,-(6) JSR %7,$B20 TST -(6) MOV 8(6),-(6) JSR %7,L19 MOV (6)+,%0 MOV %0,8(6) MOV 8(6),%0 ASL %0 ASL %0 ASL %0 ASL %0 ASL %0 ADD %5,%0 MOV 562(0),%0 BIC #49151,%0 BNE L89 JMP L90L89: MOV #100,-(6) JSR %7,$B20 JMP L91L90: MOV #32,-(6) JSR %7,$B20L91: MOV 8(6),%0 ASL %0 ASL %0 ASL %0 ASL %0 ASL %0 ADD %5,%0 MOV 562(0),%0 BIC #57343,%0 BNE L92 JMP L93L92: MOV #115,-(6) JSR %7,$B20 JMP L94L93: MOV #32,-(6) JSR %7,$B20L94: MOV 8(6),%0 ASL %0 ASL %0 ASL %0 ASL %0 ASL %0 ADD %5,%0 MOVB 567(0),2(6) MOV 8(6),%0 ASL %0 ASL %0 ASL %0 ASL %0 ASL %0 ADD %5,%0 MOV 568(0),4(6)  MOVB 2(6),%0  BIC #^O177400,%0  MOV 4(6),%1  SUB #1,%1  SBC %0  ASHC #-9.,%0  MOV %1,14(6)  MOV 14(6),%0 INC %0 MOV %0,-(6) MOV #4,$B-6 JSR %7,$B24 JSR %7,$B36L87: INC 12(6) JMP L84L85: TST (6)+L83: ADD #14,%6 RTS %7L82: .WORD 26912 .WORD 28526 .WORD 25956 .WORD 8224 .WORD 26982 .WORD 25964 .WORD 24942 .WORD 25965 .WORD 8224 .WORD 8224 .WORD 29728 .WORD 28793 .WORD 8293 .WORD 25120 .WORD 28524 .WORD 27491 .WORD 115L88: .WORD 8224 .WORD 0 $VER=55.$BEGIN: ADD #2724,$KORE  BIS #^O40000,@#^O44   MOVB #13,2722(5) MOVB #10,2723(5) MOV #12,-(6) JSR %7,$B20 MOV #L95,-(6) MOV #27,-(6) JSR %7,$B32 JSR %7,$B36 MOV #L96,-(6) MOV #17,-(6) JSR %7,$B32 MOV %5,%0 ADD #2698,%0 MOV %0,-(6) MOV #8,-(6) JSR %7,$B12 JSR %7,$B16 MOVB 2698(5),%0 CMP %0,#96 BGT L97 JMP L98L97: MOVB 2698(5),%0 ADD #65504,%0 MOVB %0,2698(5)L98: MOVB 2699(5),%0 CMP %0,#96 BGT L99 JMP L100L99: MOVB 2699(5),%0 ADD #65504,%0 MOVB %0,2699(5)L100: MOVB #1,2715(5) CLR 14(5) CLR 1074(5) CLR 1588(5) CLR 2102(5) CLR 2616(5) MOV %5,$B-10 MOV %5,%0 ADD #2698,%0 MOV %0,-(6) MOV #8,-(6) MOV #1,%0 JSR %7,$B64 MOV #1,-(6) JSR %7,L74L102: TSTB 2715(5) BNE L103 JMP L104L103: MOV #L105,-(6) MOV #2,-(6) JSR %7,$B32 JSR %7,$B0 .GLOBL $B0 MOVB (6)+,2716(5) MOVB 2716(5),%0 SUB #L108,%0 BGE .+6 JMP L106 CMP #L109,%0 BGE .+6 JMP L106 ASL %0 JMP @L110(0)L111: JSR %7,$B0 MOVB (6)+,2720(5) JSR %7,$B16 MOV #L112,-(6) MOV #8,-(6) JSR %7,$B32 MOV %5,%0 ADD #2722,%0 MOV %0,-(6) MOV #2,-(6) JSR %7,$B32 MOV #L113,-(6) MOV #25,-(6) JSR %7,$B32 MOV %5,%0 ADD #2722,%0 MOV %0,-(6) MOV #2,-(6) JSR %7,$B32 MOV #L114,-(6) MOV #20,-(6) JSR %7,$B32 MOV %5,%0 ADD #2722,%0 MOV %0,-(6) MOV #2,-(6) JSR %7,$B32 MOV #L115,-(6) MOV #13,-(6) JSR %7,$B32 MOV %5,%0 ADD #2722,%0 MOV %0,-(6) MOV #2,-(6) JSR %7,$B32 MOV #L116,-(6) MOV #21,-(6) JSR %7,$B32 MOV %5,%0 ADD #2722,%0 MOV %0,-(6) MOV #2,-(6) JSR %7,$B32 MOV #L117,-(6) MOV #52,-(6) JSR %7,$B32 MOV %5,%0 ADD #2722,%0 MOV %0,-(6) MOV #2,-(6) JSR %7,$B32 MOV #L118,-(6) MOV #29,-(6) JSR %7,$B32 MOV %5,%0 ADD #2722,%0 MOV %0,-(6) MOV #2,-(6) JSR %7,$B00NNNN6%! !32 JSR %7,$B36 JMP L107L119: JSR %7,$B0 MOVB (6)+,2720(5) JSR %7,$B16 CLRB 2715(5) JMP L107L120: JSR %7,$B0 MOVB (6)+,2720(5) JSR %7,$B16 JSR %7,L81 JMP L107L121: JSR %7,$B4 .GLOBL $B4 MOV (6)+,2718(5) JSR %7,$B16 MOV 2718(5),-(6) JSR %7,L74 JMP L107L122: JSR %7,$B4 MOV (6)+,2718(5) JSR %7,$B16 MOV 2718(5),-(6) JSR %7,L25 JMP L107L123: JSR %7,$B4 MOV (6)+,2718(5) JSR %7,$B16 MOV 2718(5),-(6) JSR %7,L48 JMP L107L124: MOV #L125,-(6) MOV #34,-(6) JSR %7,$B32 JSR %7,$B36 JMP L107L106: JSR %7,$B0 MOVB (6)+,2720(5) JSR %7,$B16 MOV #L126,-(6) MOV #34,-(6) JSR %7,$B32 JSR %7,$B36 JMP L107L108=32 L110: L124 L106 L106 L106 L106 L106 L106 L106 L106 L106 L106 L106 L106 L106 L106 L106 L106 L106 L106 L106 L106 L106 L106 L106 L106 L106 L106 L106 L106 L106 L106 L111 L106 L106 L106 L121 L120 L106 L106 L106 L106 L106 L106 L106 L120 L123 L106 L106 L106 L119 L106 L106 L122 L106 L106 L106 L106 L106 L106 L106 L106 L106 L106 L106 L106 L106 L106 L121 L120 L106 L106 L106 L106 L106 L106 L106 L120 L123 L106 L106 L106 L119 L106 L106 L122L109=84L107: JMP L102L104:L101: MOV %5,$B-10 JSR %7,$B68 MOV $SAV10,@#^O10 MOV #^O341,@#^O12 EMT ^O350L95: .WORD 29264 .WORD 26479 .WORD 24946 .WORD 8301 .WORD 28532 .WORD 29216 .WORD 24933 .WORD 8292 .WORD 28245 .WORD 30825 .WORD 25632 .WORD 29545 .WORD 29547 .WORD 46L96: .WORD 28245 .WORD 30825 .WORD 25632 .WORD 29545 .WORD 8299 .WORD 29284 .WORD 30313 .WORD 14949 .WORD 32L105: .WORD 8229 .WORD 0L112: .WORD 8305 .WORD 8253 .WORD 30065 .WORD 29801 .WORD 0L113: .WORD 8292 .WORD 8253 .WORD 8300 .WORD 8253 .WORD 26980 .WORD 25970 .WORD 29795 .WORD 29295 .WORD 8313 .WORD 26988 .WORD 29811 .WORD 28265 .WORD 103L114: .WORD 8291 .WORD 8253 .WORD 26723 .WORD 28257 .WORD 25959 .WORD 25632 .WORD 29289 .WORD 25445 .WORD 28532 .WORD 31090 .WORD 0L115: .WORD 8308 .WORD 8253 .WORD 31092 .WORD 25968 .WORD 26144 .WORD 27753 .WORD 101L116: .WORD 8301 .WORD 8253 .WORD 28525 .WORD 25974 .WORD 29728 .WORD 8303 .WORD 21586 .WORD 12593 .WORD 26144 .WORD 27753 .WORD 101L117: .WORD 8224 .WORD 8224 .WORD 25378 .WORD 11298 .WORD 87361 .WORD 88206 .WORD 82364 .WORD 82304 .WORD 27938 .WORD 82264 .WORD 29281 .WORD 8293 .WORD 28518 .WORD 27756 .WORD 30575 .WORD 25701 .WORD 25120 .WORD 8313% .WORD 26740 .WORD 8293P .WORD 28265 .WORD 25711 .WORD 82936 .WORD 30062 .WORD 25197 .WORD 29285 .WORD 0L118: .WORD 8224 .WORD 8224 .WORD 26223 .WORD 29728 .WORD 25960 .WORD 25632 .WORD 29289 .WORD 25445 .WORD 28532 .WORD 31090 .WORD 28448 .WORD 83064 .WORD 26982 .WORD 25964 .WORD 46,L125: .WORD 27721 .WORD 25964 .WORD 24935 .WORD 8300B .WORD 28515 .WORD 28013 .WORD 28257 .WORD 8292 .WORD 11565 .WORD 29728 .WORD 28793 .WORD 8293 .WORD 8255 .WORD 28518 .WORD 83060 .WORD 25960 .WORD 28780 .WORD 0L126: .WORD 27721 .WORD 25964 .WORD 24935 .WORD 8300 .WORD 28515 .WORD 28013 .WORD 28257 .WORD 8292, .WORD 11565 .WORD 29728 .WORD 28793 .WORD 8293 .WORD 8255A .WORD 28518 .WORD 83062 .WORD 25960 .WORD 28780 .WORD 0 .END00NNJH+%O-%TADATADATA PROGRAM unix;? /* Copyright (c) 1979 David A. Butterfield and Daniel Weise */' /* Modified 1982 by Alan E. Frisbie */@/* This program is (reputedly) able to read unix file structuredF disks under RT11. Once the compiler and rt11 weirdnesses are removedA it migt become a utility to read unix disks on anything. Due toA its vintage, it probably is suited to unix filestructures circa V7 Unix. */G/* N.b. The name "unix" is a trademark of AT&T (I think). Nevertheless,G there has been large worldwide circulation of source code for variousH versions of unix V7 and earlier and later. Unix is (or at the stage ofF V7 was) not copyrighted but was treated as a trade secret. I believeE the status of a trade secret that the whole world knows is that theE information is public domain. Hence I believe Unix V7 is now publicJ domain material. It remains a perfectly lousy OS for all that and shouldG be used only by those who really LIKE to fix corrupted filestructures up. */ CONST dirbit = 40000B; spbit = 20000B; large = 10000B; TYPE( char13array = ARRAY [0..13] OF char; inode = RECORD flags: integer; nlinks: char; uid: char; gid: char; sizehi: char; sizelo: integer;( blknos: ARRAY [0..7] OF integer;( actime: ARRAY [0..1] OF integer;( modtime: ARRAY [0..1] OF integer END; direntry = RECORD inodeno: integer;' filename: ARRAY [0..13] OF char END; funny = RECORD CASE integer OF 1:/ (inoderec: ARRAY [0..15] OF inode); 2:5 (dirblockrec: ARRAY [0..31] OF direntry); 3:. (charrec: ARRAY [0..511] OF char); 4:- (ints: ARRAY [0..255] OF integer) END; VAR dev: text;< cihave: integer; /* INODE NUMBER OF CURRENT DIRECTORY */C icurd: inode; /* CONTAINS THE INODE OF THE CURRENT DIRECTORY */D decnt: integer; /* NUMBER OF ENTRIES IN THE CURRENT DIRECTORY */ datablock: funny;' inodeblock: ARRAY [0..15] OF inode;7 inhave: integer; /* PHYSICAL BLOCK IN INODEBLOCK */( dirblock: ARRAY [0..31] OF direntry;5 dihave: integer; /* PHYSICAL BLOCK IN DIRBLOCK */( indblock: ARRAY [0..255] OF integer;5 ibhave: integer; /* PHYSICAL BLOCK IN INDBLOCK */) dindblock: ARRAY [0..255] OF integer;7 dibhave: integer; /* PHYSICAL BLOCK IN DINDBLOCK */? inbuff: ARRAY [1..80] OF char; /* THIS IS THE INPUT LINE */" logname: ARRAY [1..8] OF char;" logpass: ARRAY [1..8] OF char; loggedin: boolean; notdone: boolean; option: char; arg: integer; foo: char; nl: ARRAY [0..1] OF char; PROCEDURE seek(VAR f: text; VAR x: funny;# blockno: integer); EXTERNAL;$ FUNCTION getblkno(rblock: integer;1 sourceinode: inode): integer; VAR4 lindblockno, ldindblockno, physblock: integer; BEGIN, IF (sourceinode.flags& large) = 0 THEN IF rblock < 8 THEN1 physblock := sourceinode.blknos[rblock] ELSE BEGINH writeln('ATTEMPT TO REFERENCE #', rblock, 'OF A SMALL FILE.'); rblock := rblock DIV 0 END ELSE& BEGIN /* LARGE OR HUGE FILE */& lindblockno := rblock DIV 256; IF lindblockno < 7 THEN BEGIN; IF sourceinode.blknos[lindblockno] <> ibhave THEN BEGINB seek(dev, datablock, sourceinode.blknos[lindblockno]);' indblock := datablock.ints;5 ibhave := sourceinode.blknos[lindblockno] END;/ physblock := indblock[rblock MOD 256] END ELSE> BEGIN /* HUGE FILE WERE HERE IFF LINDBLOCKNO >= 7 */1 IF sourceinode.blknos[7] <> ibhave THEN BEGIN8 seek(dev, datablock, sourceinode.blknos[7]);'00NNNN6%! ! indblock := datablock.ints;+ ibhave := sourceinode.blknos[7] END;) lindblockno := lindblockno - 7;2 IF indblock[lindblockno] <> dibhave THEN BEGIN8 seek(dev, datablock, indblock[lindblockno]);( dindblock := datablock.ints;, dibhave := indblock[lindblockno] END;0 physblock := dindblock[rblock MOD 256] END END; getblkno := physblock END;+ FUNCTION geti(inodeno: integer): integer; VAR block: integer; BEGIN inodeno := inodeno - 1; geti := 17B& inodeno;" block := inodeno DIV 16 + 2; IF block <> inhave THEN BEGIN$ seek(dev, datablock, block);) inodeblock := datablock.inoderec; inhave := block END END;- FUNCTION getd(dirnumber: integer): integer; VAR block: integer; BEGIN getd := 37B& dirnumber;1 block := getblkno(dirnumber DIV 32, icurd); IF block <> dihave THEN BEGIN$ seek(dev, datablock, block); dihave := block;) dirblock := datablock.dirblockrec END END;& PROCEDURE getfile(inodeno: integer); VAR hi: char;- finptr, lo, size, block, i, j: integer;$ answer: ARRAY [1..14] OF char; insertcrs: boolean; BEGIN/ write('Should I add carriage returns? '); readln(answer);: insertcrs := (answer[1] = 'y') OR (answer[1] = 'Y'); finptr := geti(inodeno);& hi := inodeblock[finptr].sizehi;& lo := inodeblock[finptr].sizelo;'/* following assembly language computes5 size by subtracting 1 from bytecount (to 32 bits),5 then shifting to divide by 512 to get # blocks. */ /*$C MOVB HI(6),%0 BIC #^O177400,%0 MOV LO(6),%1 SUB #1,%1 SBC %0 ASHC #-9.,%0 MOV %1,SIZE(6) */ FOR i := 0 TO size DO BEGIN1 block := getblkno(i, inodeblock[finptr]); IF block <> 0 THEN BEGIN& seek(dev, datablock, block); IF insertcrs THEN FOR j := 0 TO 511 DO5 IF datablock.charrec[j] = chr(12B) THEN) write(chr(15B), chr(12B)) ELSE+ write(datablock.charrec[j]) ELSE$ write(datablock.charrec) END ELSE/ writeln(nl, 'BLOCK ', i, ' IS EMPTY') END END;' PROCEDURE movefile(inodeno: integer); VAR output: text;& filename: ARRAY [1..14] OF char; hi: char;- finptr, lo, size, block, i, j: integer; insertcrs: boolean; BEGIN write('Write to file: '); readln(filename); rewrite(output, filename);/ write('Should I add carriage returns? '); readln(filename);> insertcrs := (filename[1] = 'y') OR (filename[1] = 'Y'); finptr := geti(inodeno);& hi := inodeblock[finptr].sizehi;& lo := inodeblock[finptr].sizelo;'/* following assembly language computes5 size by subtracting 1 from bytecount (to 32 bits),5 then shifting to divide by 512 to get # blocks. */ /*$C MOVB HI(6),%0 BIC #^O177400,%0 MOV LO(6),%1 SUB #1,%1 SBC %0 ASHC #-9.,%0 MOV %1,SIZE(6) */ FOR i := 0 TO size DO BEGIN1 block := getblkno(i, inodeblock[finptr]);$ seek(dev, datablock, block); IF insertcrs THEN FOR j := 0 TO 511 DO3 IF datablock.charrec[j] = chr(12B) THEN/ write(output, chr(15B), chr(12B)) ELSE1 write(output, datablock.charrec[j]) ELSE* write(output, datablock.charrec) END; close(output) END;* PROCEDURE writef(VAR name: char13array); VAR i: integer; BEGIN FOR i := 0 TO 13 DO 00NNJH+%O-%TADATADATA BEGIN IF ord(name[i]) = 0 THEN write(' ') ELSE write(name[i]) END END;% PROCEDURE getcurd(ciwant: integer); VAR hi: char; finptr, lo: integer; BEGIN IF ciwant <> cihave THEN BEGIN finptr := geti(ciwant);6 IF (inodeblock[finptr].flags& dirbit) = 0 THEN$ writeln('Not a directory') ELSE BEGIN cihave := ciwant;% icurd := inodeblock[finptr] END END; hi := icurd.sizehi; lo := icurd.sizelo;(/* Take (# bytes / 16) as decnt value */ /*$C MOVB HI(6),%0 MOV LO(6),%1 ASHC #-4,%0C MOV %1,DECNT(5) ; ASSUME NO MORE THAN 32767 ENTRIES */ END; PROCEDURE dirlist; VAR hi: char;8 lo, finode, finptr, dirptr, dircnt, size: integer; BEGIN3 writeln(' inode filename type blocks');% FOR dircnt := 0 TO decnt - 1 DO BEGIN dirptr := getd(dircnt);+ finode := dirblock[dirptr].inodeno; IF finode <> 0 THEN BEGIN! write(finode: 6, ' ');, writef(dirblock[dirptr].filename); write(' ');! finptr := geti(finode);< IF (inodeblock[finptr].flags AND dirbit) <> 0 THEN write('d') ELSE write(' ');; IF (inodeblock[finptr].flags AND spbit) <> 0 THEN write('s') ELSE write(' ');* hi := inodeblock[finptr].sizehi;* lo := inodeblock[finptr].sizelo;'/* following assembly language computes5 size by subtracting 1 from bytecount (to 32 bits),5 then shifting to divide by 512 to get # blocks. */ /*$C MOVB HI(6),%0 BIC #^O177400,%0 MOV LO(6),%1 SUB #1,%1 SBC %0 ASHC #-9.,%0 MOV %1,SIZE(6) */ writeln(size + 1: 4) END END END; BEGIN./* sets special (no-echo?) mode on terminal */ /*$C BIS #^O40000,@#^O44 */ nl[0] := chr(15B); nl[1] := chr(12B);5 writeln(chr(14B), 'Program to read Unix disks.'); write('Unix disk drive: '); readln(logname); IF ord(logname[1]) > 96 THEN. logname[1] := chr(ord(logname[1]) - 32); IF ord(logname[2]) > 96 THEN. logname[2] := chr(ord(logname[2]) - 32); notdone := true; cihave := 0; inhave := 0; dihave := 0; ibhave := 0; dibhave := 0;/* RESET(DEV,'DX1:');*/ reset(dev, logname); getcurd(1); WHILE notdone DO BEGIN write('% '); read(option); CASE option OF% '?': /* Type instructions */ BEGIN readln(foo);B writeln('q = quit', nl, 'd = l = directory listing', nl,B 'c = change directory', nl, 't = type file', nl,. 'm = move to RT11 file', nl,M ' "c", "t", & "m" are followed by the inode number', nl,6 ' of the directory or file.', nl) END;( 'q', 'Q': /* Quit to monitor */ BEGIN3 readln(foo); /* Get rid of trailing CR */ notdone := false; END;0 'd', 'D', 'l', 'L': /* List Directory */ BEGIN readln(foo); dirlist END;1 'c', 'C': /* Change working directory */ BEGIN readln(arg); getcurd(arg) END;3 't', 'T': /* Type contents of Unix file */ BEGIN readln(arg); getfile(arg) END;5 'm', 'M': /* Move Unix file to RT-11 file */ BEGIN readln(arg); movefile(arg) END;$ ' ': /* Catch null lines */ BEGIN7 writeln('Illegal command -- type ? for help') END; 00NNNN6%! ! ELSE BEGIN readln(foo);7 writeln('Illegal command -- type ? for help') END END END; close(dev) END. [?27hD AnalytiCalcG The Analyst's ToolI Reference Card and Summary [80;80 BHThere are 2 major command modes. The default is described here but theF"/;" command enters the other and the "//" command goes back to the#mode described in this reference. d The second ("/;" mode) command format is more like other spreadsheets generally. Numbers andd formulas are automatically ENTERed when typed at the start of a line. If you start a line with ",d it is entered as text (minus the "). If you start a line with "/" (just the slash, not in quotes),d the remainder of the line is taken as a command. Commands are NOT recognized unless preceded by /d in this mode. Some of the auto keypad keys don't work well as defaulted in this mode. To facili-d tate writing usable command procedures, the /# command swaps the current mode with a saved mode. Ad command file can use this to save and restore the user's command mode and use a known mode inter- nally. d The sheet is displayed at the top part of the screen and a command cell in Row 23 is shownA with the current position encoded. This starts off looking like4  A 1> ("Command-mostly" mode), or.  A 1: ("Enter-mostly" mode)D When in "Enter-mostly" mode, begin all commands with / so thatCthe exit command (X) is given as /X in that mode. It is a good ideaGto use AnalytiCalc in one mode or the other most of the time; switchingmodes can cause confusion.#[?27h COMMANDSd The commands available in AnalytiCalc are each described separately. The following is a brief' listing alphabetically of their names. [?27lP +J filename [?27hStart journaling to filename [?27lF +N [?27hClose journal file [?27lE < [?27hRewind input file [?27l\ %prompt%cmd%key% [?27hIssue prompt and do cmd depending on key [?27lT $ or } [?27hPerform operating system command [?27lj > or >>pattern [?27hSearch for formula containing or starting with pattern [?27l@ * [?27hComment line [?27lO -prompt [?27hLoad arguments after prompt [?27lM // [?27hUse "Command-Mostly" mode [?27lK /; [?27hUse "Enter-Mostly" mode [?27lo /# [?27hSwap current mode with save mode (cmd-mostly or ent-mostly) [?27lX 1,2,3, or 4 [?27hMove cursor Up, Down, Left, or Right [?27l] @file.typ [?27hRead file.typ as input instead of console [?27lS AA nn {R/C} [?27hAdd absolute nn rows or columns [?27le AR nn {R/C} [?27hAdd relocating nn rows or columns (nn may be neg) [?27lG CA in-range out-range [?27hCopy All (Absolute) [?27l> CV in-range out-range [?27hCopy Value [?27lM CF in-range out-range [?27hCopy Formula (and Format) [?27lI CR in-range out-range [?27hCopy Relocating (all) [?27l\ DB ncol,nrow [?27hDisplay Bounds (no. cols,row00NNJH+%O-%TADATADATAs on screen) [?27lU DF range [format] [?27hDisplay Format of range to format [?27lj DL range {R/C}n:m [?27hDisplay Locate range as Row/Col to display col:row n:m [?27l\ DS{R/C}{A/D} n [?27hDisplay Sort row/col, Asc/Desc row/col n [?27lZ DT range {F/I} [?27hDisplay Type range as Float or Integer [?27l^ DW ncol,wid [?27hDisplay Width of col "ncol" to "wid" chars [?27lN E expression [?27hEnter expression into cell [?27la E" expression [?27hEnter expression as text, no case translation [?27l= ED 'oldstring'newstring' [?27hEDit cell [?27lW ET expression [?27hEnter expression as UPPER CASE text [?27lZ EV expression [?27hEnter expression as computable formula [?27lX F filename/nskip [?27hFile read from filename onto display [?27lU G [?27hGet saved sheet. Many variants. [?27lH Hn [?27hHELP and show page n [?27le IR inrange outrange [?27hIn Place Relocate inrange as if moved to outrange [?27lo K [?27hGo into interactive calculator (need *V 3). *E goes back. [?27l> L cell [?27hGo to cell [?27lY M{0/1/2/3/4/5} [?27hMove - set move direction after enter [?27lj MS or MH [?27hMacrocell Show or Hide - show or hide included files. [?27lm OA cell [?27hOrigin Absolute cell - Map Screen with cell in upper left [?27lo OAD cell [?27hOrigin Absolute Displace cell - Map Screen with cell in[?27l[ [?27hupper left leaving old windowing alone [?27lt OR cell [?27hOrigin Relative cell - map screen dwn/rght of cursor w/curs=cell [?27lk ORD cell [?27hOrigin Relative Displace cell - map screen down/right[?27lc [?27hof cursor with cursor=cell leaving old windows [?27lY OV + [?27hOVerride absolute refs, make relative [?27l[ OV - [?27hOVerride off - let abs refs be absolute [?27l^ P [?27hPut (save) spreadsheet. Many variations. [?27lE R [?27hRecalculate sheet [?27lQ RB cell [?27hSet Relocate Boundary at cell [?27lg RE [?27hRecalculate Entry - recalculate only cell entered. [?27lZ RF [?27hRecalculate, Force recalc of constants [?27lp RI [?27hRecalculate Incremental - Recalculate only cell entered and[?27lF [?27hdisplayed cells. [?27lp RII [?27hSet Recalc Incremental flag but don't actually recalculate. [?27l^ RM [?27hRecalculate Manual - no recalc until R cmd [?27l] S [?27hSetup - Global mapping/width/title setups [?27lq TE expression [?27hTEst - Evaluate math expression in cmd mode - many variants. [?27lH V [?27hView - Redraw screen [?27li VF [?27hView Formulas - Draw with Formulas instead of numbers [?27la VM [?27hView Manual - no screen repaint until a V cmd [?27lV W [?27hWrite display to file or printer. [?27lc X [?27heXit from AnalytiCalc. Asks for confirmation. [?27lG ZE range [?27hZEro range of cells 00ONNN6%! ![?27lm ZA [?27hZero All of sheet. Asks for confirmation. Also used for[?27lE [?27hreinitializing. [?27l [?27h: AnalytiCalc Function Summary6 The available multiple argument functions are: [?27lB  SUM[variables] [?27hSum of all arguments[?27l>  MAX[variables] [?27hMax of arguments[?27l>  MIN[variables] [?27hMin of arguments[?27lB  AVG[variables] [?27hAverage of arguments[?27lV  AVE[variables] [?27hAverage of arguments excluding zero args[?27lH  STD[variables] [?27hStandard deviation squared[?27lR  AND[variables] [?27hBoolean AND of all variables in list[?27lO  IOR[variables] [?27hBoolean inclusive OR of variables[?27lL  NOT[variable] [?27hBoolean complement of variable[?27lK  XOR[v1,v2] [?27hBoolean exclusive OR of v1,v2[?27lL  EQV[V1,V2] [?27hBoolean "equivalence" of V1,V2[?27lR  ([?27hcomplement of exclusive OR, true if[?27lG  [?27hbits have the SAME value)[?27lQ  CNT[variables] [?27hNumber of nonzero variables in list[?27lS  MOD[V1,V2] [?27hReturns V1 modulo V2 (i.e., remainder[?27lA  [?27hof V1/V2 division.)[?27lJ  SGN[v1] [?27hReturns 1.0 times sign of V1[?27lR  LKP[var,variables] [?27hLookup variable in "variables" range[?27lQ  [?27hgreater or equal to var, return its[?27lT  [?27hindex (starting with 0) into variables[?27l4  [?27hrange.[?27lR  LKN[var,variables] [?27hLookup variable in "variables" range[?27lS  [?27hless than or equal to var, return its[?27lT  [?27hindex (starting with 0) into variables[?27l4  [?27hrange.[?27lR  LKE[var,variables] [?27hLookup variable in "variables" range[?27lU  [?27hstrictly equal to var, return its index[?27lT  ([?27hstarting with 0) into range. Note all[?27lT  [?27hLKP, LKN, LKE return the last variable[?27lS  [?27hindex if no satisfactory value found.[?27lS  NPV[disc,vars] [?27hNet Present Value of vars (equal time[?27lQ  [?27hinterval numbers), at discount rate[?27lK  [?27hdisc where disc is a fraction[?27lA  ([?27he.g., .12 for 12%)[?27lS  IRR[PV,FV,returns] [?27hInternal Rate of Return. Will compute[?27lQ  [?27hinternal rate of return on up to 20[?27lQ  [?27hperiods, returning rate per period.[?27lO  [?27hThe returns are expected to be at[?27lQ  [?27hequal time intervals. PV and FV are[?27lT  [?27hinitial and final values of investment[?27lS  [?27hand the result is computed via Newton[?27l<  [?27happroximation.[?27lX  PMT[princ,inter,nper] [?27hPayment (mortgage payment per period)[?27lW  [?27hfunction. Will compute payment per period[?27lX  [?27hfor principal amount "princ" with interest[?27lY  [?27hper period as "inter" and number of periods[?27lU  [?27has "nper". All arguments must be cells.[?2700 ONJH+%O-%TADATADATAlZ  [?27hThe formula is the standard ordinary annuity[?27lZ  [?27hformula. Interest rate must be a fraction so[?27lR  [?27hthat 14% would be 0.14, for example.[?27l\  PVL[payment,inter,nper] [?27hPresent Value formula. Computes present[?27l^  [?27hvalue of an annuity given "payment", the payment[?27lX  [?27hper period, interest rate per period (as a[?27lW  [?27hfraction, so 12% is 0.12) in "inter", and[?27lX  [?27hnumber of periods as "nper". All arguments[?27l:  [?27hmust be in cells.[?27lO [?27hRND[DUM] Generates a random number between 0. and[?27lM  1.0. [?27hAn argument is needed but it is[?27l? [?27hNOT touched by this function.[?27lV CHS[IDX,Range] [?27hChoose cell from range based on value of cell[?27lN [?27hIDX. If cell used as IDX is 1, first element[?27lP [?27hof range is chosen and so on. Zero is returned[?27l> [?27hfor out of range cases.[?27lE  [?27hIF [V1.rel.V2] statement | else-statement[?27l[  [?27hCompares two variables and executes either "statement" (if the[?27lW  [?27hrelation is true) or "else-statement" (if the relation is[?27l%  [?27hfalse).[?27lS  [?27hValid relations (in the place of the .rel. above) are:[?27l,  .EQ. [?27hEqual[?27l0  .NE. [?27hNot Equal[?27lH  .GT. [?27hGreater than (V1 greater than V2)[?27lB  .LT. [?27hLess than (V1 less than V2)[?27lJ  .GE. [?27hGreater than or Equal to (V1 >= V2)[?27lG  .LE. [?27hLess than or Equal to (V1 =< V2)[?27l[?27hSFunctions which choose one of a list of arguments return col, row of chosen cell inHaccumulators P, Q. These include MIN, MAX, LKP, LKN, LKE, and CHS.[?27l8The following single argument functions are available: @  FUNCT NAME ARG TYPE FUNCT VALUE DESCRIPTIONE  -------------------------------------------------------N  ABS REAL REAL [?27habsolute value[?27lN  DABS REAL REAL [?27habsolute value[?27lN  IABS INTEGER INTEGER [?27habsolute value[?27lQ  IFIX REAL INTEGER [?27hREAL to INT conv.[?27lO  AINT REAL REAL [?27hREAL truncation[?27lQ  INT REAL INTEGER [?27hREAL to INT conv.[?27lQ  IDINT REAL INTEGER [?27hREAL to INT conv.[?27lD  EXP REAL REAL [?27he**X[?27lD  DEXP REAL REAL [?27he**X[?27lQ  ALOG REAL REAL [?27hnatural logarithm[?27lQ  DLOG REAL REAL [?27hnatural logarithm[?27lQ  ALOG10 REAL REAL [?27hlogarithm base 10[?27lQ  DLOG10 REAL REAL [?27hlogarithm base 10[?27lK  SQRT REAL REAL [?27hsquare root[?27lK  DSQRT REAL REAL [?27hsquare root[?27lR  SIN REAL REAL [?27htrigonometric sine[?27lR  DSIN REAL REAL [?27htrigonometric sine[?27lL  COS REAL REAL [?27htrig. cosine[?27lL  DCOS REAL REAL [?27htrig. cosine[?27lR  TANH REAL REAL [?27hhyperbolic tangent[?27lR 00ONNN6%! ! DTANH REAL REAL [?27hhyperbolic tangent[?27lK  ATAN REAL REAL [?27harc tangent[?27lK  DATAN REAL REAL [?27harc tangent[?27l[?27hG The following special constructs in a formula act as functions: d _@V1,V2 Means get the values stored in V1 and V2 and use them as column and row locationsd pointing at some cell in the sheet. Replace the construct with the name of that cell. d _#V1 Means take the real number in cell V1 and unpack it as if it had been a packed valued from a formula with 8 characters packed; then convert it back into ASCII and placed in the formula in place of this construct. This construct is intended to be usedd with the *U STRVL function to allow retrieval and edit of formulas. The *U XQTCM` function permits use of the EDit command within a cell for string manipulation. [ The following "equation commands" also act as functions with the effects described: a *@filename Where filename is the name of a file of CALC commands. CALC reads the file and j' executes the commands. i@ *ASCII Declares a list of variables to be of type ASCII.  *C COMMENT line.  *N NOVIEW. 4 *V VIEW. Controls printing options in K mode D *R READ. Allows a single line to be read from the terminal. 8 *REAL declares specified variables to be REAL*8. ; *DECIMAL Declares specified variables to be REAL*8. 8 *S STOP. Same as *E. Goes back to spreadsheet. ? *E EXIT. Gets out of K mode, back to spreadsheet mode. a* *Z ZERO. Zeroes all accumulators. d *G *G V1,V2 (where V1 and V2 are cell or accumulator names) will evaluate V1 and V2 as thed column and row numbers, on the physical sheet, of the desired cell. The addressedL cell's value is retrieved and used as the resulting number. d *W Takes the value at the current cell and writes it out to the formula as a numeric (float-d ing) value. The *WF command stores the cell similarly, but uses the format of theG current cell instead of the D32.25 format used for *W. id *P The *P command resets the current cell coordinate from within a cell (until the next cell; is evaluated only). It has several forms: c *P - By itself, *P causes Calc to prompt for the new physical column and row number. 2d *P V1 - This moves the current location to the named cell where V1 is the cell name (e.g. A5, H2) d *P@ V1,V2 - This uses V1 and V2 (cell names) as column and row numbers and changes thed current physical cell position to that defined by the contents of cells V1 and V2.R This gives complete addressing of the sheet from within any cell. d *F *F Label - If the value in % is positive and nonzero this command rewinds the input filed for the AnalytiCalc @ command and seeks a line beginning with the characters *CLabelF (where "label" is what you put after the *F command). d *J *J Label - This command behaves as the *F command but operates on the file used by theA Calc *@ command rather than the AnalytiCalc one. p *QF d *QW The *QF (Float) or *QW (write) commands are used to examine sequential files createdS outside AnalytiCalc and return values or formulas. Their syntax is + *QF filename ?key1? ?key2? n+ or *QW filename ?key1? ?key2? [( where ?key2? is optional d l and m are delimiter characters for start and end of the parts of the selectedd records to extract (defaults to first part of the record) filename is just the filed specifier in the host OS. The *Q00ONJH+%O-%TADATADATAF command gets a part of a record containing thed keys specified and turns it into a number ("floats" it). The *QW command Writes thatd part of the record to a formula. The special characters in the part of the com-d mand are delimiters of the area to be picked out. Variant forms allow such choosingK to be by column number instead of key character if needed.  *U YRMOD VY,VM,VD d returns the Julian date (in %) computed from the Year (in VY), the month (in VM) andd the day (in VD), where VY, VM, and VD are sheet cells. These may be the result of! date arithmetic. o *U JDATE Var d assumes the formula in cell Var (any spreadsheet cell name) contains a date string ind the format YY/MM/DD. It reads this formula and converts the date to a Julian date,3 returning it in the % accumulator. e *U JTOCH Jul,Var od assumes that variable Jul (any spreadsheet cell) contains a Julian date and changes\ it into an ASCII string in the cell whose name is in the Var position here.  *U DATE VY,VM,VD,Var hd uses VY, VM, and VD as year, month and day, and computes a Julian date from them. Itd then composes an ASCII string of form YY/MM/DD for that date and stores in the for- mula for Var.  *U WKDYS D1,D2 3d computes the number of workdays between Julian dates D1 and D2 just as taking thea difference of two Julian dates gives differences between calendar dates in days.  *U WKDIN D1,N1 hQ returns a Julian date that is N1 work days after the date in D1. c *U IDATE() : returns the current date as a Julian day.  *U MTXEQ(AA:AA,XX:XX,BB:BB) d solves equation AX=B where A, X, and B are matrices, and where the notation AA:AAd means two cells at the upper left and lower right edges of matrix A (e.g. B2:C3 ford the 2 X 2 matrix so defined), and the XX:XX and BB:BB notation means the same for the" X and B matrices.  *U MOVEV mtxa,mtxb P moves values from mtxa to mtxb (useful prior to calling MTXEQ).  *U MDET mtx R This function computes and returns the determinant of matrix mtx.  *U MPROD A,B,C d This function will multiply matrix A by matrix B giving matrix C, provided that their+ dimensions are compatible.  *U MADDV A,B,C ld This function adds matrix A to matrix B and stores in matrix C. All matrices must* have the same dimensions.  *U MSUBV A,B,C _ This function subtracts matrix B from matrix A leaving the result in matrix C. , *U MMPYT A,B,C td This function multiplies matrix A-transpose by matrix B and stores the result in ma-8 trix C; dimensions must be compatible.  *U MMPYC A,B,K dR This function multiplies every element of matrix A by constant K. " *U VARY X,A,W,I,P;Q;R;S;T;U;V;W 6 (Equation Solving by Iterative Search) d This function allows AnalytiCalc to automatically search for solutions to equationsd over up to 8 dimensions. The operation is that the accumulators named in the fieldsd shown as P;Q;R;S;T;U;V;W (one to 8 may be specified, only one is required) are variedd by a fraction W about their initial values (later scaled down by the gradient of thed change in X) to attempt to get accumulator or cell X to equal accumulator or cell A.O This is done for I iterations, where I is another accumulator. td *U XQTCM command will execute the command (terminated by the end-of-line), with any command exceptd X or K permitted, from inside a cell. This allows command files driven from cells to* 00"ONNN6%! ! control moving data, etc.  *U STRVL V1,start;len d will return a value that is made from up to 8 characters in the FORMULA of cell V1d (where V1 is any cell name), starting at character "start" and for "len" characters. *U HERE d will return the current location on the matrix and the current maximum row and columnb used. T, U get col, row indices of this cell. W, Y get max col, row. V gets flags.d *U FFTFW and *U FFTRV perform Fast Fourier Transforms in the forward and reverse (inverse) direc-2 tions on the given range of data. U *U LINEF Vy:Vy,Vx:Vx (with the Vx range optional) fits a line to the input range. e2 y=Ux+T; err in %; corr coeff. in W. *XV filename V1 H *XF filename V1 The *X class commands are for sheet linkages. ] *XF loads a Formula from another saved spreadsheet, while *XV loads a Value. md The following *U DBxxxxxx functions also exist as commands of form FILxxxxxx with the same results. Qi *U DBOPINS range filename - Open input sequential on filename for cells in range. (Reads of input rangee4 formulas come from file when enabled.)M *U DBOPINR range filename Open input random on filename for cells in range ec *U DBOPINU range filename Open range for update on filename for read and write as random access.s *U DBCLSINP Close input  *U DBCLSOUT Close output e *U DBOPOUTS range filename Open output sequential from range cells to filename. (Writes of formulasg+ in output range go to file.)eG *U DBOPOUTR range filename Open output random from range on filename < *U DBENAINP Enable input file readin (initially disabled) 7 *U DBENAOUT Enable output write (initially disabled) )( *U DBDISINP Disable input area readin # *U DBDISOUT Disable output write d *U DBEDTINP range Enables input and output and, for each cell in the given range, reads and writesd the cell, allowing the file read/writes to take effect. Each cell is flagged asd valid but of text type; the DF command must be used to reset any that should bed treated as computable. Input and output are disabled on completion of the command.  *U DBFMTOUT range d *U DBVALOUT range Enables input and output and for each cell of the range takes the VALUE of thed cell, reads the cell, sets it of text type, and writes the text equivalent of its# value to the cell. d *U DBCMPFRM V1:V2[,V3:V4] Compares two formulas. It returns, in the % accumulator, the index ofd the formula in cell V2 in the formula in cell V1. Lengths used are those of bothe formulas UNLESS the V3 and V4 cell arguments are seen. Then V3 and V4 are lengths of[ V1 and V2 strings used. Accum. W is set to comparison of V1 and V2 (-1/0/+1)nd *U DBLENFRM V1:V2 returns the length of the formula for cell V1 in the % accumulator and in celld V2 IF CELL V2 IS VALID. Otherwise the cell specified in V2 is ignored, though it< must be present in the command or function. d *U DBTRMFRM V1:V2,V3,V4 Reads the formula in V1 and uses V3 and V4 as start and end byte numbersd within it. It returns to V2 the formula that is between the start and end bytes,U trimming the V1 formula into V2 by chopping out the undesired parts.7 c00*ONJH+%O-%TADATADATA^^/.TITLE AnalytiCalc (PortaCalc) Reference Manual.comment .PAPER SIZE 80,80.PAPER SIZE 58,100.COMMENT 58 LONG, 100 WIDE .SPACING 1^^N.COMMENT FOLLOWING ARE FOR BONNER LAB RUNOFF AND LN03 WITH TIMES ROMAN FONT....LEFT MARGIN 1.RIGHT MARGIN 100.enable escape.flags special ?.flags special `.flags special ~'.define escape "^~",,27,"[17m",27,"[1w"!.comment ? controls BOLDING text.#.define escape "^?",LCK,27,"[17;1m"!.define escape "\?",LCK,27,"[22m"4.comment the [?27 codes control PROPORTIONAL SPACING+.comment .define escape "^`",LCK,27,"[?27h"+.comment .define escape "\`",LCK,27,"[?27l".define escape "^`",27,"[?27h"3.comment c is printer reset. Do at end of doc..define escape "\~",27,"c"^~^`^?.c AnalytiCalc.CThe Analyst's Tool.CReference Manual and Guide\?.skip 5^? .INDENT -11 ANALYTICALC__OVERVIEW\?.CAnalytiCalc (PortaCalc).PC AnalytiCalc is an electronic spreadsheet program which was writtenG in "portable" Fortran 66 and runs on your PDP11 or VAX systems. It hasH a variety of commands and operates on a "command verb" syntax. That is,D everything you tell it is a command. Some commands enter numbers orD formulae; others manipulate them or change the display. Online helpF is available (though limited) via the Help command (or the PF2 key on some systems)..PIAnalytiCalc has 5 major ways of addressing cells, over 75 functions (moreEdepending on how you count them), 70 commands (with more variations),Aunlimited windowing and programmability at the cell and the sheet@level, 17 digit precision, and a built in online calculator withHextended precision (20 or 99 digit) numbers available. It is designed to>handle traditional spreadsheet problems, data access problems,?equation solving, engineering applications, and finance, and isBdesigned to be easy to extend both by adding to the program itself"and by adding commands externally..PDInterfaces exist to graphics outputs, to word processing integrationEwith the spreadsheet (or AnalytiCalc may be used as a word processingEintegration tool as a kind of framework document integrator), to dataCaccess from data files separate from the sheet, and to saved sheetsFpermitting access to systems of spreadsheets. Simple methods of movingGto other system commands make this program a powerful command interface"as well as a unique analytic tool.Approximately 400 function keyDassignments are left for user specification. AnalytiCalc is designedDto be mobile to any system with a cursor controllable terminal and aJFortran compiler able to handle Fortran 66 and byte addressing. Currently,-versions exist for PDP11, VAX, and 8086/8088..PLUnlike nearly all commercial spreadsheet type products, AnalytiCalc deliversJwhat it promises. If a cell can be addressed, it can be used, subject onlyEto limitations on the amount of disk storage you allocate for backingJstore. You can use EVERY cell fully with enough disk backup. Contrast thisEwith memory only systems which may address 500,000 or more cells, butDwhich permit only a few percent of these to be filled before runningDout of room, even on large machines. (For example, the popular 1-2-3@spreadsheet on IBM PCs is reported to hold at most around 12,000simple formulasIon a 544K machine, or around 39,000 9-digit numbers. AnalytiCalc can holdK32,000 17-digit numbers, long formulas, or text strings in its cells, usingCvirtual pages on VAX or disk store on a PDP11, so that on the PDP11Donly a 64 K Byte address space is needed. RSX configurations can useIadditional memory to speed the program up. The 8088 version requires 256KEbytes for a full functionality 18,000 cell sheet.) The only virtue ofFpretending your sheet is huge is that there's some runtime flexibilityGof shape to be gained. AnalytiCalc can do this also. The version with aCDTR interface on VAX and which is used on PDP11 allows use of up toF32000 columns and 32000 rows via aliasing to real cells. The result isGthat you can have very long or002ONNN6%! ! wide sheets, provided they don't take upAtoo many overall cells, to a degree NOBODY exceeds, even on largeAmainframes. (Of course, it's easier to use cells with short namesDlike G12 and F7 than with long ones like AABA20142 or AAAR18435, butyou can choose what you wish.).SKIP 1^? .INDENT -12 INTRODUCTION\?.C Getting Started with AnalytiCalc.PB When using AnalytiCalc, you will find its commands are NOTA similar to commercial spreadsheets. This has happened because ofK the method for reading them in. Do NOT expect to use the same commands youA learned with Visicalc here. Few if any of them are the same. Do,? however, expect to be able to perform the same functions, evenB if a bit differently. You will probably find this a more powerfulB program than you knew on the micros. It just takes some learning..P>Remember two things first: You need an Enter command ("E ") to@enter text or numbers into the sheet, and floating point numbers<(most are floating point rather than integers) need a periodB(.) in them to get AnalytiCalc to recognize them as numbers ratherCthan text. If you forget the period, the numbers will be displayed,Cbut only as labels, and the cell will have a numeric value of zero.AScrolling is done differently from most sheets also. The documentBfile AnalytiCalc.PHL details the philosophy of this. The result isDthat you have scroll keys to move around with, but you also can have?as many windows onto the sheet on screen as you care to define.BThere are 2 major command modes now. The default is described hereBbut the command "/;" command enters the other and the "//" command/goes back to the mode described in this manual..PEThe second ("/;" mode) command format is more like other spreadsheetsDgenerally. Numbers and formulas are automatically ENTERed when typedAat the start of a line. If you start a line with ", it is enteredDas text (minus the "). If you start a line with "/" (just the slash,Inot in quotes), the remainder of the line is taken as a command. CommandsFare NOT recognized unless preceded by / in this mode. Some of the autoLkeypad keys don't work well as defaulted in this mode. To facilitate writingFusable command procedures, the /_# command swaps the current mode withHa saved mode. A command file can use this to save and restore the user's-command mode and use a known mode internally..PEFor further convenience, most otherwise-unknown characters can be pre>programmed to do commands of your choice. This is described inGthe rear of the manual. A key point is that the _~ character in a titleDflags to continue reading sys$input on VAX until EOF. The _~ will beCreplaced by space prior to display. This is used to allow automatedsetups. .INDEX VIEW.INDEX RECALCULATE.P@ If the program's display is not as expected, use a V command to@ redraw the screen and/or a R command to recompute to ensure theE display is really incorrect. Automatic recomputation occurs normally@ when data is entered, so most invalid conditions due to forward@ references in equations or lack of an extra recalculation afterC copying is done are corrected in the normal course of use. CertainB cases do not redraw screen labels (since it is not always correctB to do so), so the V (View) command is to be used to guarantee theA screen's consistency. New users will seldom need these measures..P@ The AnalytiCalc spreadsheet asks some questions when youE run it, to set up its working storage. AnalytiCalc contains a directG access file which it sets up and can reuse or reinitialize, containing< the basic information for the spreadsheet's physical sheet..SKIP 1 .INDENT -13 INITIAL QUESTIONS.SKIP 1.CInitial Screen.PI When you run AnalytiCalc, it first asks you whether to change the .INDEX FORMATD default floating point format. This is initially set to the FortranD format F9.2 (9 characters wide, 2 decimal places), but if you replyH Y, it lets you enter any format you like as the default format. It willI t00:ONJH+%O-%TADATADATAry to use it, so if you enter an illegal format, AnalytiCalc will issueI error messages before it generates a bad workfile. Note that the defaultE applies when the workfile is BUILT, not later (though the DF commandG will reset the format of any part of the file later). AnalytiCalc then .INDEX TITLEG asks you to enter up to 80 characters as the Title of the spreadsheet.EThis is displayed at the top of the screen and is used as a label forAthe sheet when printed out. (The space is made available for thisBrather than being wasted on a copyright statement on your screen.).P> To reply, enter any title you like, up to 80 characters long,F followed (as all AnalytiCalc commands) by a carriage return (labelledC RETURN on the VT100). This will appear across the top of the sheetI on screen and in print images of it. You may include any desired leadingE spaces in the title. It will be printed on screen printouts, so make? it descriptive of the sheet you'll be using. Note that it must@not start with two spaces. If you enter a title with two initialAspaces (or just type the RETURN key), no title will be entered orFaltered. PLEASE NOTE that the first 6 characters of the title are usedGin constructing unique Annotate filenames (i.e. by the Annotate and theHQuery or ? commands) and so your annotations will be easier to handle if.the title is unique in the first 6 characters..Index Annotate .index Query.INDEX S Command.INDEX Set Title .index TITLEB This title remains until an S command is given (at which time you@ can change the work file also), though reading in a saved sheet also reads in the saved title..SKIP 1.PEAnalytiCalc will ask you some questions about storage and how much ofBthe sheet you intend to use on non-VAX versions at this point. Try=to be accurate and see the Appendix on Variant Versions belowfor further information..SKIP 1.CCalculation Screen.PBThe remainder of the manual is common to all AnalytiCalc versions,0though older versions may not have all commands. .INDENT -1 3 DISPLAY.P.INDEX Display.index Current Position@ The sheet is displayed at the top part of the screen and< a command cell in Row 23 is shown with the current position& encoded. This starts off looking like^?.LIT' A 1> ("Command-mostly" mode), or! A 1: ("Enter-mostly" mode) .END LITERAL\?.SKIP 1A and then AnalytiCalc awaits your commands. Note that if the cellE pointed to by the command (which is always a Physical sheet address)F is occupied (i.e., has ever had any numbers or text entered into it),@ that cell is displayed in the display in reverse video when you> are positioned there. If the cell is totally empty, it is notL displayed, however, in any reverse video. A pattern of blanks is displayed,.INDEX EMPTY CELLSF however, wherever the cell is null. This pattern is in reverse video.F On terminals such as VT52 which don't have reverse video, AnalytiCalcC uses a ">" character at the start of your current cell to indicateB the active cell where anything is in it. This overwrites whateverD was at that character position, though it reappears when the cursorI is moved. (If you have a terminal with the ability to handle more lines,Dedit whatever gets copied to VKLUGPRM.FTN and change LCMDR and LDSPRCfrom 23 and 24 to whatever you want as the command line and formuladisplay rows.) .INDENT -1 3 CONTROL.PB You control the sheet by entering a command followed by Return..INDEX COMMANDS@ These commands are in the first few columns of the command line> and are the first few characters (often the first 1 or 2) youD type, and they are REQUIRED for every command. AnalytiCalc does NOT assume any command names..PC Commands entered to AnalytiCalc MUST BE IN UPPER CASE. Text entered can be of either case.7 However, for PDP11 and VAX, AnalytiCalc now translates> cases unless the " character is seen on the line (see below). .INDENT -1 2 COMMANDS.PF The commands available in AnalytiCalc are ea00BONNN6%! !ch described separately.?The following is a brief listing alphabetically of their names.^?.skip 1.left margin 30C.indent -28;+J#filename################Start journaling to filename9.indent -28;+N#########################Close journal file9.indent -28;_<##########################Rewind input fileR.indent -28;_%prompt_%cmd_%key%###########Issue prompt and do cmd depending on keyH.indent -28;$#or#_}#####################Perform operating system command`.indent -28;_>#or#_>#_>pattern############Search for formula containing or starting with pattern3.indent -28;*##########################Comment lineB.indent -28;-prompt####################Load arguments after prompt@.indent -28;//#########################Use "Command-Mostly" mode>.indent -28;/;#########################Use "Enter-Mostly" modeH.indent -28;/_##########################Swap current mode with save mode (command-mostly or enter-mostly)K.indent -28;1,2,3,#or#4################Move cursor Up, Down, Left, or RightP.indent -28;?##########################Display any annotation file for this cellP.indent -28;@file.typ##################Read file.typ as input instead of consoleG.indent -28;AA#nn#_{R/C}################Add absolute nn rows or columnsS.indent -28;AN#########################Edit or create annotation file for this cellY.indent -28;AR#nn#_{R/C}################Add relocating nn rows or columns (nn may be neg):.indent -28;CA#in-range#out-range######Copy All (Absolute)1.indent -28;CV#in-range#out-range######Copy Value@.indent -28;CF#in-range#out-range######Copy Formula (and Format)<.indent -28;CR#in-range#out-range######Copy Relocating (all)O.indent -28;DB#ncol,nrow###############Display Bounds (no. cols,rows on screen)H.indent -28;DF#range#[format]##########Display Format of range to formatK.indent -28;DL#range#_{R/C_}n:m##########Display Locate range as Row/Col todisplay col:row n:mQ.indent -28;DS_{R/C_}_{A/D_}#n#############Display Sort row/col, Asc/Desc row/colnO.indent -28;DT#range#_{F/I_}#############Display Type range as Float or IntegerE.indent -28;DW#ncol,wid################Display Width of col "ncol" to "wid" charsA.indent -28;E#expression###############Enter expression into cellH.indent -28;E"#expression##############Enter expression as text, no case translation0.indent -28;ED#'oldstring'newstring'###EDit cellJ.indent -28;ET#expression##############Enter expression as UPPER CASE textM.indent -28;EV#expression##############Enter expression as computable formulaK.indent -28;F#filename/nskip###########File read from filename onto displayF.indent -28;G##########################Get saved sheet. Many variants.;.indent -28;Hn#########################HELP and show page nF.indent -28;IR#inrange#outrange########In Place Relocate inrange as ifmoved to outrangeK.indent -28;K##########################Go into interactive calculator (need*V#3). *E goes back.1.indent -28;L#cell#####################Go to cellN.indent -28;M_{0/1/2/3/4/5_}#############Move - set move direction after enterL.indent -28;MS#or#MH###################Macrocell Show or Hide - show or hideincluded files.M.indent -28;OA#cell####################Origin Absolute cell - Map Screen withcell in upper leftJ.indent -28;OAD#cell###################Origin Absolute Displace cell - Map:Screen with cell in upper left leaving old windowing aloneH.indent -28;OR#cell####################Origin Relative cell - map screen%down/right of cursor with cursor=cellJ.indent -28;ORD#cell###################Origin Relative Displace cell - map@screen down/right of cursor with cursor=cell leaving old windowsL.indent -28;OV#+#######################OVerride absolute refs, make relativeN.indent -28;OV#-#######################OVerride off - let abs refs be absoluteO.indent -28;P##########################Put (save) spreadsheet. Many variations.S.indent -28;QUery######################Display annotation file for this cell if any8.indent -28;R##########################Recalculate sheetD.indent -28;RB#cell####################Set Relocat00JONJH+%O-%TADATADATAe Boundary at cellK.indent -28;RE#########################Recalculate Entry - recalculate only cell entered.TM.indent -28;RF#########################Recalculate, Force recalc of constantsFL.indent -28;RI#########################Recalculate Incremental - Recalculate&only cell entered and displayed cells.L.indent -28;RII########################Set Recalc Incremental flag but don'tactually recalculate.M.indent -28;RM#########################Recalculate Manual - no recalc until RecmdeP.indent -28;S##########################Setup - Global mapping/width/title setupsM.indent -28;TE#expression##############TEst - Evaluate math expression in cmd7mode - many special variants.r;.indent -28;V##########################View - Redraw screenI.indent -28;VF#########################View Formulas - Draw with Formulaseinstead of numbersL.indent -28;VM#########################View Manual - no screen repaint untila V cmdcH.indent -28;W##########################Write display to file or printer.F.indent -28;X##########################eXit from AnalytiCalc. Asks for confirmation.e6.indent -28;ZE#range###############ZEro range of cellsP.indent -28;ZA#########################Zero All of sheet. Asks for confirmation.Also used for reinitializing...left margin 1\?.skip 1t.CDetailed Individual Commands.skip 1 .INDENT -13 MOVE__CURSOR^?.LITERAL. CURSOR MOTION (Commands to move around4 the sheet one cell at a time)! 1 (Move up)# 2 (Move down)t# 3 (Move left)1$ 4 (Move right) .END LITERAL\?.PD The cursor motion keys move the cursor on the display in the.index Cursor MotionB direction indicated. Note these keys are in the same order on the) keyboard as the arrow keys of the VT100.i.PD (The reason the cursor keys are not used directly is that onH VT100 they are multiple characters and difficult for Fortran to parse.).p< Note that the keys 1 to 4 are interpreted in the same wayF as the up, down, left, and right arrow keys on the vt100. they appearB in the same order as the arrow keys on the vt100 on the keyboard..PE The X and Y accumulators are set to the column number and theeF (row number + 1) respectively during commands. This allows proceduresI to detect cursor position or motion where useful. These accumulators maymD be used within cells for anything; resetting them does not move the cursor..P. Certain AnalytiCalc versions interpret5 the PF1, PF3, and PF4 keys on VT100s as the commandso.break@KYP, @KYR, andt @KYS commands, which will use.break%KYP.DAT, KYR.DAT, or KYS.DAT as inputnL command files. This may be used to locally tailor some AnalytiCalc commandsD using the keypad. (If CMDMUN and TTYINI are altered, the entire aux( keypad may be interpreted in this way.).PGIf the cursor is pointing to the edge of a screen and a command to moveoBis given, an effective OAD to a new location is given to produce a.Index ScrollingHscrolling effect. This happens for auto motion also. Thus, one should beFsomewhat careful with the cursor keys where complex screen setups haveGbeen made, as the redraw of the screen (over or up/down by a screenful,0Ethe size depending on your current DB parameters) will repaint a fullrDscreen. The scrolling will leave 2 rows or columns from the previousBdisplay on screen (to help you keep your place) but will treat theHentire screen as one window. Since the display may be set to contain any.Index SC commando.Index NS commandn.Index Control of ScrollingmFnumber of windows, the command NS will turn off this scrolling effect,Cprotecting the windows. The command SC will turn scrolling back on.sDBecause the OAD form of the repaint is used, reversing the scrolling#will remap the old windows however.t.SKIP 2 .TEST PAGE 20X .INDENT -1%3 ADDING__OR__REMOVING__ROWS__OR__COL2^?.LITERAL" ADJUSTING PHYSICAL LOCATIONS* (Adding or Removing Rows or Columns) .END00RONNN6%! ! LITERAL.LEFT MARGIN 12e'.index Insert or Delete Rows or Columns .index AA Commande.index AR Commandg .INDENT -7; AA number R ####Add "number" rows ahead of the currenti> physical position, moving all cells below? the current cell down by "number" rows andN@ losing the physical sheet's bottom "number"F rows' contents, NOT adjusting variable references? where the variables are in the moved rangeoI and are not the position independent (P_#_# or D_#_#d! forms) type.t .INDENT -7> AA number C ####Add "number" columns ahead of the currentA physical position, moving all cells right ofmC the current cell right by "number" columns ande@ losing the physical sheet's bottom "number"I columns' contents, NOT adjusting variable referencese? where the variables are in the moved rangeI and are not the position independent (P_#_# or D_#_#x! forms) type.m .INDENT -7; AR number R ####Add "number" rows ahead of the currentm> physical position, moving all cells below? the current cell down by "number" rows ando@ losing the physical sheet's bottom "number"B rows' contents, adjusting variable references? where the variables are in the moved range.I and are not the position independent (P_#_# or D_#_#e! forms) type.o .INDENT -7> AR number C ####Add "number" columns ahead of the currentA physical position, moving all cells right ofaC the current cell right by "number" columns andu@ losing the physical sheet's bottom "number"E columns' contents, adjusting variable references ? where the variables are in the moved rangeuI and are not the position independent (P_#_# or D_#_#w! forms) type.a.LEFT MARGIN 1\?.PI These commands permit the operations known on other spread sheetsoE as "insertion" or "deletion". Deletion takes place where "number" is .index RelocationnH negative and the sense of the motion is reversed. These commands changeD the physical sheet's contents and permit wholesale modifications toO variable names (other than P_#_# or D_#_# forms which are position independent B already and are left alone for simplicity and to preserve some ofH the flexibility of the D_#_# forms which can be used for projections of; 3D sheets onto the display and math with ranges of these). ! To save a sheet for merging suchdB selected values, both forms, or at least the numeric form, of the Put commandst shouldl be used.y.PG Note that the previous contents of the rows or columns insertedsF is RETAINED, though it can be zeroed by the ZE command if desired. ItD will have been copied also to the lower or further-right row/columnJ also, but do not be alarmed; the space is free to re-use. You may however3 elect to use this feature as a shorthand for copy.w.PA The AR/AA operations take place on the physical sheet ande? do not affect the display sheet mapping to the physical sheet. .PCBecause of the confusing results that could arise, AA and AR do nots>work on extended cells. (Extended cells are right of column 80Don VAX, or of 50 on PDP11, or below row 400 on VAX or 200 on PDP11.).SKIP 2e .TEST PAGE 20p .INDENT -1 3 ANNOTATION^?.LITERAL; ANnotate Spawn EDIT cellname.ANN to edit or = create annotation file for currenth cell.< ? Display annotation file for current cell.A QUEry Display annotation file for current celll .END LITERAL\?.pJThe Annotation00ZONJH+%O-%TADATADATA commands implement a very simple scheme for allowing you toIplace annotations on your cells. An annotation is a separate file created Gby an editor containing any comments you want to make about a cell. ItsDIname is chosen by AnalytiCalc and reflects the sheet in use (by using theaHfirst 6 characters of the title of the sheet) and the cell, and has typeKANN. Thus, a file containing annotations for cell F4 of a spreadsheet nameddGPROJECT PLANNER would be named "PROJEC000F0004.ANN" by taking the firsteI6 title characters and the cellname and filling with zeroes. If the firstnKcharacters of the title are not alphabetic, they are not used (causing someo possibility of name collisions)..PHThe current Annotate facility requires VMS V4.0 or later due to the longCfilenames created. Older VMS versions will not be able to use these Ccommands. The cell names are not compacted to allow their directoryd@order to "match" in some sense their logical order on the sheet.DInterested programmers may want to edit USRCMD.FVX to change this ifdesired..PMWhen you give the AN command with the cursor on a cell, AnalytiCalc generatesLa name and produces a command "EDIT name" which it spawns to VMS. The editorPrun by the EDIT command then can be used to create or modify an annotation file.GThe ? or QUEry commands are the same and display up to 20 lines of the sHannotation file on screen if one exists for a cell. If no file exists, aCmessage is flashed on the bottom line of the screen to that effect. .PDThe S command has a subquestion in its' "change widths and mappings"?series which allows you to change the command prefix "EDIT " toBwhatever you like. Thus, if you want to use some other editor, youDcan do so, or add any convenient command prefix. Up to 15 charactersCcan be so added instead of the 5 in "EDIT ". Thus, an indirect filei#could in principle be used instead..PKThis scheme makes it easy for you to write notes about any strange formulasl.Index Annotatei .Index Query.Index AN commando.Index QUE commandGor logic you used in a formula while they are still fresh in your mind, Fand to otherwise document your sheets better than can be done by shortJcomments in the formulas. It has some limitations, chief of which are thatFthe files are not renamed when you copy or move cells around, and thatFthere is no provision for displaying multiple comment files other thanHusing the TYPE command to VMS which will at least give the filenames and0thus will make the sources of the tags apparent..PGIn view of the limitations, the Annotate commands should be used with atGsheet you don't intend to do massive reorganizations on. If you plan toeFmove rows or columns around, annotate AFTER doing so; ditto large copyFoperations where you would change the meaning of some cells. Once yourEsheet is laid out, THEN fill in formulae and comments. The ? or QUEryeHcommands only show 20 lines, but since the ANnotate command fires up theIeditor, you can actually have comment files as large as you like and justc2Quit out of EDIT if you only want to see comments..SKIP 2e .TEST PAGE 20s .INDENT -1 3 COPY__CELLS,^?.LITERAL COPYING CELLS8 CA V1:V2 V3:V4 Copy all cell attributes from V1:V2 to V3:V4.e- CV V1:V2 V3:V4 Copy numeric values onlyL. CD V1:V2 V3:V4 Copy Display Formats only7 CF V1:V2 V3:V4 Copy Formulas only (no relocation) 6 CR V1:V2 V3:V4 Copy all cell attributes as in CA6 but relocate cell names to new location6 from old one. Only relocate names right8 of or below the cursor or on same row/col9 with cursor (cells above or left of cursorC" are NOT relocated).9 IR V1:V2 V3:V4 Relocate formulas inplace, computingN4 displacements using distance "moved". .END LITERAL\?.PD The Copy commands let you reproduce cells' contents in otherF locations on your sheet without re-entering them. The CA form is most .index Copyn.index C Comma00bONNN6%! !nd.index ReplicatingE useful, though the CD part can be used to change default formats and?C the others may be handy. Note that formulas are NOT changed by theS? copy operation. If they should function correctly in their new#? location relative to different cells, the cell identificationseA should be position independent forms (P_#n_#m for forms relativerC to physical sheet, D_#n_#m for forms relative to display sheet) so#D no modification is necessary. CA will normally save all information about a cell in the new cell..PG Unlike the other C class commands, the CR command WILL relocateeC any variable names that are below or to the right of the cursor at A the time the command is given. Names above or left of the cursor D are not changed. The row and column the cursor is in is included inC the relocation region. Thus, to be sure names are relocated, use aoB command like L#A1 first to position yourself at the top left part of the physical sheet.D.break9 Be SURE you do the reposition if you use the CR command!y.breakA Note however that if you need certain cells NOT to be relocated,R; the ability to place them above or left of the cursor when{? copying or replicating cells around and having them left alone;; can be useful. Normalization factors, for instance, can be > left alone (e.g., at the top of a column) and cells referring; to them be copied without having them point to the "wrong"g normalization cell..P@ When you specify one variable to the C class commands inB the V1:V2 range location and give a range V3:V4, the command will5 copy the named V1 into all cells in the V3:V4 range.).PCThe IR command allows inplace relocation of formulas. This operates Afrom the cursor to the Relocate Boundary (see below). The *U HERErEfunction returns the current maximum column used in the W accumulator Cand the current maximum row used in the Y accumulator to permit theDBrepeated use of IR from a command file to simplify moving sections of the sheet._.SKIP 2# .TEST PAGE 20y .INDENT -13 SET__DISPLAY__BOUNDARIES^?.LITERAL3 DISPLAY BOUNDARIES SETTING (Number rows/cols)w7 DB n,m Set number of columns displayed on screenp4 to n, number of rows displayed to m. .END LITERAL\?.P= The DB command sets display size. It also effects ther( number of cells modified by the OA, OR,)OAD, and and ORD commands, so setting theS.index DB Command;.index Setting Number of Rowsr.index Setting Number of Colsl@ display small, doing an OA or OR, then setting it large, leaves0 the part omitted as it was before the OA or OR.> The displayed window also controls what is read in with the F@ command. Note that for automated text retrieval, the VM commandD (to turn off redisplay during commands) may be useful in connectionD with using DB commands, F commands, and then V commands to turn the> display updating back on from command files invoked either by. auxiliary keypad keys or from @file commands.AThe default VAX maximum dimensions for display are 63 columns and#F75 rows. For PDP11, the default is 20 columns by 75 rows. In addition,Fthe VAX version supports displays up to 512 characters wide; the PDP11version's limit is 132..SKIP 12= For an example of DB, if you want a display of 14 columns byp 20 rows, the commandp.BREAK ######DB 14,20o.BREAK would be the way to achieve it..SKIP 2O .TEST PAGE 20c .INDENT -13 DISPLAY__FORMAT ^?.LITERAL DISPLAY FORMAT SETTING0 DF V1:V2 [format] Set Display Format AND- set up whether toe5 display formula or number# .END LITERAL\?.PE The DF command sets the display format for the variable rangef.index Display Formato.index DF Command#.index Formula to Text.index Text to FormulaE V1 to V2 inclusive to be whatever is in the square brackets. This istC expected to be a valid Fortran FORMAT specifier for display of the#C number and may be up to 9 characters long. If the format specifiercC00jONJH+%O-%TADATADATA entered is however just A or L in the first character, the programaF will indicate the text is to be displayed literally, not as a number,D so titles and such can be shown. To display numbers in Fortran A orC L forms, just use formats like 4A1 or similar; as long as there islC something ahead of the A or L it goes to Fortran. The program will#B try your format once before writing to disk to ensure against any@ crashes that will damage your file. Otherwise, the format is up: to you. You can even display in octal or hex if you wish!.P@ The DF command is used to switch a cell from display of numeric> information to formula/text display or back on a cell by cell> basis (the VF command globally switches cells from numeric to< formula and back, though a cell set to display text with DF; always displays text). To change a cell to numeric, merelyM .index FORMAT#< use the DF command to give it a numeric format (the default; is normally F9.2 so the command to set, say, cell G3 to ber: numeric (possibly after entering a formula not containing' +, -, ., (, or [ characters) would be:n.SKIP 1r ####DF#G3#[F9.2].SKIP 1 A for the standard Fortran F9.2 format (2 decimal places, 9 digits  wide display).tDIn AnalytiCalc-VM, every cell may have an entirely unique format. InBAnalytiCalc-PC, however, only a finite number of unique formats isBpossible (usually about 45) since storage is in memory. The design@limit is 255 unique formats, but very few spreadsheets will need?more than the 45 normally provided. Typical ones only have 2 or A3 unique formats. The formats may be ANY Fortran formats desired.).P@ The DF command will also set the type to Floating if theC format begins with F or E, and will set the type to Integer if the ? format begins with I. Beyond this (e.g., for octal or hex) your? must use the DT command (below) to set the storage to floatingr (8 bytes) or integer (4 bytes)..P?The DF command will attempt to avoid erroneous format inputs by)@trying the format out on your current location. If errors occur,@the DF command will be quietly ignored, and the program will not=crash. This makes it difficult to switch to integer displays.e@To switch a cell or range to integer, you must use the L command:to move to a cell not shown on the screen, then use the DT9command to change the desired cells to integer type, thenn=use the DF command to change the display format to an integeri=display format. The cells will then work correctly as integer.Fcells. Note this checking is done by AnalytiCalc-Vm and AnalytiCalc-PConly.y .INDENT -14 WHAT__IS__DISPLAYEDk.LEFT MARGIN 10t NOTE:s.BREAK.index Displayed Entity,= There are 2 items in any cell which may be displayed.d; One of these is the number in the cell, which takesa= 4 bytes if an integer, 8 if floating point, and whicha> is displayed normally using a Fortran FORMAT statement= type declaration. The other is the FORMULA associatedc= with the cell, which may contain just text or labels.i/ This is selected by the A or L formats.n.P% Thus, the declarationl.BREAK DF A1:A64 [8A1]e.BREAKE would display the NUMBERs in column A as 8 charactersyK (assuming this makes sense), and would cause strange errorst? if the number did not make sense as characters. .BREAK The declarationt.BREAK DF A1:A64 [A] .BREAKI would display the FORMULA TEXT in column A on the screen.nG This normally will always make sense, and is the normalm& way to display labels..LEFT MARGIN 1 .INDENT -14 FORMAT.PD To reset FORTRAN Formats, the Fw.d format is useful. In that .index FORMAT H format, w means an integer giving the width in characters of the outputG number, and d is the number of decimal places to be shown. For exampleOD F9.2 has 9 places total, 2 to the right of a decimal point. A validJ number in this format might be (supposi00rONNN6%! !ng its' exact value is 123456.782) .INDENT 5D 123456.78n .INDENT 5 " The format F9.1 would give .INDENT 5A/ 123456.8 (note rounding)r .INDENT 5 # The format F10.3 would givei .INDENT 5s 123456.782.PL You may devise whatever formats desired. In addition, AnalytiCalc will onlyF display the number of characters that fit in the column on screen, so7 display width can be set to remove undesired decimals. .INDENT -14 OTHER__FORMATS.PJ The default F9.2 format occupies 9 of the default 10 characters of.index FORMAT Microtutorial J column width. Where additional labels are needed, the 1Hc or 2Hcc formatsG may be used. For example, to show dollars, one might write a format assF [1H$,F9.2] in the DF command. If as an alternative one wanted to showG thousands of dollars with one decimal place, a format like [2H$K,F9.1]"F would place "$K" ahead of each number. Thus, a value of 345.67 in the first format would look likee.BREAK $ 345.67.BREAK, and in the second format it would look like.BREAK $K 345.7.BREAKB (since the spreadsheet only knows numbers, not their dimensions)..PC Where it is desired to display large numbers, FORTRAN offers thepC E and G formats (the form of such a format is Ew.d or Gw.d where wrE is the width of the number as printed and d is the number of decimalhA points). The E format displays the number as a fraction followed,F be E followed by a power of 10. The G format chooses a floating pointD display or an E format depending on the number's size. Note that inE E and G formats, there need to be 4 spaces in the decimal field justD for the exponent..PD The format you display in may be wider than the column; the firstB "n" characters of the number are shown, where "n" is the width ofD the column. Thus, if you use a format like F10.0 (which displays 10F digits followed by a period), the period will not show in the default 10 character column width.e.PBAvailable format designators for floating numbers (the ones you'lluse almost always) are: .indent 4n@Fw.d - Simple display with w characters of display (counting the6decimal point) and d decimal places after the decimal; .indent 4iEEw.d - Display as a fraction followed by Enn where nn is the exponenteDof 10 to multiply the fraction by. The format kPEw.d causes k digitsBto be displayed to the left of the decimal place, so that a formatEof E10.5 might display the number 73.453 as ".73453E+02" and a formatoFof 1PE10.4 would display it as "7.3453E+01". The w is the total numberEof characters in the display, and the d the number of decimals shown.sFNote that the w must have 4 extra characters to handle the "E+nn" partHof the number. Very large or small numbers can be handled by this format)where they would be too wide in F format. .indent 4hDGw.d - This format works like the Fw.d format provided the number isDsmall enough to fit in the widths provided, and like the Ew.d formatCotherwise. The display will include only d digits (or k+d digits if Cusing kPGw.d), so for cases where it works, the Fw.d format is moreuspace efficient. .indent 4,CSeveral "modifier" formats are available. nHxx allows characters xxBin the output. nX includes n spaces. TRc causes the next output toEappear c spaces right of the current one, and 'xx' acts like the nHxxtAin outputting characters xx. The 'xx' or nHxx designators must bet?separated by comma from following format designators. Also Dw.d Dis equivalent to Ew.d. The optional forms Ew.dEe and Gw.dEe act likeBEw.d and Gw.d except that only e digits of exponent are displayed..SKIP 22 .TEST PAGE 20 .INDENT -13 DISPLAY__LOCATE ^?.LITERAL1 DISPLAY LOCATE (Map physical sheet variables ( onto Display Sheet) .END LITERAL\?.LEFT MARGIN 10 .INDENT -7B DL V1:V2 Rn:m ###point at display coordinates (n,m) (col,row)B and, going left to right along a Row, copy inC variables V1 through V2 (actually, point 00zONJH+%O-%TADATADATAthoseaB display sheet cells at variables V1 thru V2). .INDENT -7B DL V1:V2 Cn:m ###point at display coordinates (n,m) (col,row)E and, going top to bottom along a Column, copy innC variables V1 through V2 (actually, point those B display sheet cells at variables V1 thru V2)..LEFT MARGIN 1.PG The DL command lets you associate any variables in the physicall.index Windows.index DL CommandtL sheet with any location on the display sheet (the display sheet coordinatesG always count from 1 as the topmost row or leftmost column, through theuI maximum number there). This flexible association means that in principleaH every cell on the display sheet can be a "window" in the sense of otherF sheets, though that would be quite hard to follow. If the :V2 part of; the command is left off, only one display cell is changed.a.SKIP 2o .TEST PAGE 20l .INDENT -13 DISPLAY__SORTn^?.LITERAL SORTING DISPLAYS7 DSRA#nn Sort display on row/col nn (display coord) .END LITERAL\?.PD The DS command sorts "normally" ordered display sheets. It operates.index Sorting.index DS CommandhB something like a sorted OA command, the sort key being the number1 in a column or row. The command looks like this: .BREAK DS Command specifier .BREAKH R or C - Row or Column specifier (i.e. whether to sort a row or a col.).BREAK, A or D - Ascending or Descending order sort.BREAK( nn - row or column number to sort on..P5 The command letters must all appear together.wI Thus a command to sort Column 4 on the display in Descending order would  be:.BREAK DSCD 4o.BREAK3 and a command to sort Row 3 in Ascending order is:o.BREAK DSRA 3 .BREAK.SKIP 1tFThe sheet should be in "normal" order (as from an OA command) prior to.index Printing Large ReportstDthe sort for use. The area sorted is the part of the sheet displayedC(set by the DB command, so it may actually exceed what shows on theyCscreen. The VAX version of AnalytiCalc normally supports very largeoAdisplay sheets to permit printout of large displays which are noto>all visible on the screen; the screen display discards all theEun-displayable points, but the print routine, and the sorts, do not.) GThat is, the display sheet size may be given as larger than your screene0will display, and the sort will cover that area.@Note that ONLY display sheet locations are sorted. A sort on the;PHYSICAL sheet may be done via a cell or sheet program, butcthis primitive does not..skip 2e .TEST PAGE 20e .INDENT -13 DISPLAY__TYPEo^?.LITERAL DISPLAY TYPE SETTING6 DT V1:V2 F Set V1 thru V2 to Floating data type5 DT V1:V2 I Set V1 thru V2 to Integer data type. .END LITERAL\?.P@ The DT command sets Float/Integer attributes on physical? cells. Initial default is F (8 bytes) but this can set it to Ie.index Integers .index DT Commandn.index Display Typeo@ (4 byte integer). Computation is done in floating point always,> but I type variables will be converted to integer when stored@ and may be displayed in valid Fortran formats. This informationC is stored/restored by the P/G class commands, but not in workfiles  as it is considered volatile..SKIP 2 .TEST PAGE 20C .INDENT -13 COLUMN__WIDTHC^?.LITERAL DISPLAY WIDTH SETTINGa. DW N,M Set column N on display to be M! characters widel .END LITERAL\?.P> DW lets you set any column width. They are independentD of each other, and may be set in any order. Maximum width supported.index Column Width Setb.index DW CommandoD is 132 columns with the present version of UVT100; it may be larger9 on terminals where it makes sense, if UVT100 is altered.uF Note that when many widths are to be varied, the VM mode is useful toC prevent redrawing the screen between settings; the V mode can thentB be reset once the widths are as desired. Setting column widths is= expec00ONNN6%! !ted to be frequently done via a command file (see the @  command below).>Because a display column may show cells from many parts of the=physical worksheet, width is a property of the display columnc<here rather than of the cell in the work sheet. However, the?format for displaying each physical cell's number is a property ;of the physical cell. This separation can be used to aid in#formatting a display. .SKIP 2h .TEST PAGE 20o .INDENT -13 ENTERr.CENTERn.INDEX ENTER Command.index E Command^?.LITERAL5 E expression Enter expression, figure outt1 text or value based onh$ contents.6 ET expression Enter expression as text only6 E" expression Enter expression as text only2 EV expression Enter expression as Value .END LITERAL\?.P@ This command enters the given expression at your current@ cursor position, and may optionally move in some direction thatA has been set up by the M command (Move) after the entry is made..P@The Expression may be text or one or more numbers, functions, orAequations (separated by the _\ (backslash) character if more thangDone per cell) in fully parenthesized infix notation. The expressions=entered resemble normal algebraic expressions, with the usuale=operator precedence. There are 26 global accumulators named Ao?through Z (plus a special one named %) available; the result ofl<a calculation is always left in the % accumulator as well asDthe cell. Operators available include addition (+), subtraction (-),Dmultiplication (*), division (/), and exponentiation (** or !), with?normal precedence. Many functions are also available, describedebelow, for other operations.;The operator evaluation order is functions, exponentiation,e>multiplication and division, addition and subtraction, just asDin Fortran and most programming languages (and on most calculators).?Parentheses may be used to group calculations to override thesee defaults. .P? The text entered becomes the Formula for that cell, andRB AnalytiCalc takes a guess as to whether that text is just text or.index Formulaso.index Text Entry @ a number to compute. If the text contains any of the charactersA (, +, -, ., or [, it is assumed to be a formula, and the cell isa@ marked as containing a computable formula. Otherwise it is just.index Text to Formula.index Formula to Text8 treated as a label and the formula itself is displayed.< If you find the guess is not to your liking, the DF command> below lets you alter the format and tell AnalytiCalc that the= entry is / is not a numeric. An additional special charactertD is the '"' (double quote) character. If this character appears any-C where in the entered formula, AnalytiCalc will take the formula asnA text, regardless of whatever else is in it. You can also combinet? comments and formulas by using a separate statement and the *Cy construct.BREAK; (e.g. SUM[A3:A12]_\SQRT(%)_\*C SQUARE ROOT OF THE LENGTHS)o.BREAK of Calc.6>Once a cell is set up as numeric or text, it remains as it was=originally set until changed (using the DF command, described below).cBThe ET and E" forms of the Enter command force the formula entered:to be considered as text and not as computable, and the EV=form forces it to be considered computable, regardless of theh<presence or absence of special characters. Note however that=numbers need decimal points for their values to be understood>correctly. If the decimals are omitted, the expressions may be?considered integer. These will be converted, but the conversionpChas some limitations and is advised against. Also, integer divisiondAtruncates results to produce an integer result (so that 7/2 wouldr?evaluate to 3, while 7./2. would evaluate to 3.5, for example).F'Thus, to avoid surprises, use decimals.r.PA Where the auxiliary console support routines supplied forOG PDP11 or VAX are in use, any commands will be translated to upper case .index Case ConversionJ unles00ONJH+%O-%TADATADATAs a " character appears anywhere in the command. If a " character is .index Helpa.index Keypad CommandsH found, only the first 2 characters are converted. These special consoleF routines also attempt to convert the PF2 key to H (Help) (as in EDT),N and to convert the arrow keys of VT100 or VT52 to the 1,2,3, or 4 commands to move the current cell.y.P@ On the PDP11 or VAX, AnalytiCalc will turn the auxiliary keypad feature of aF VT100 on to allow use of the auxiliary keypad as a shorthand for many$ user-specifiable command sequences..P; Most keys map to indirect files to make customizingi.index Keypad Command Files .index Keypad Commands= AnalytiCalc easier. These files are assumed in one's default@ directory with names KYa.CMD where a is P, R, or S for PF1,PF3,= or PF4, or AKa.CMD where a ranges from A through N (0 thru 9xA are E thru N). In addition, the program is able to read a keypadu= diagram into Help page 9 from a file KEYPAD.PIC which may ber@ updated to correspond to the keypad functions chosen. A version< of this corresponding to the "standard" keypad is supplied..p> Note the terminal is set into auxiliary keypad mode to enable these keys to function. .TEST PAGE 10V.LITERAL AUX KEYPAD MAPPING IS:u KEY CHAR AKx.CMD,x= 0 p El 1 q Ff 2 r G 3 s Hb 4 t Ig 5 u J  6 v K5 7 w Lt 8 x Me 9 y Nt , l A  - m Bn . n C ENTER o Dh MAPPING FOR PF1 THRU PF4 IS:a KEY FILE PF1 KYP.CMDF( PF2 (none - Equivalent to H Command) PF3 KYR.CMD  PF4 KYS.CMDE .END LITERAL.PG Examine the KEYPAD.DOC file for the values of individual keys. TherecG is a build option to read keypad command files from logical device DK:fG which may be in effect at your site; the system manager should be ablep to tell you.n.P.index Gold Key)IBecause many prefer a "Gold key" style command processor, AnalytiCalc cancCbe set up for gold key functions. A "gold level" is kept internally Band is incremented whenever a command beginning with the characterG_^ (up arrow) is seen, and cleared upon executing any normal command orhEopening a new command file. When the gold level is greater than zero, Bthe command file names opened by the auxiliary keypad are modified?by adding 1 extra letter, which is computed as 64 plus the golde?level, which means that at gold level 1, an A is added, at goldc?level 2 a B is added, and so on. A gold key top level (no addedkBletter) command file may be built containing a single _^ line. ForCmultiple levels of gold key access, second level files may have two A_^ lines (one after the other), third level files may have 3, and @so on. Command files are opened read-only, so they may be shared7and any desired level of gold key-ing may be supported. ;Supplied command files using gold key use the VT100 LEDs to *indicate that the "gold" level is nonzero..P.A bit of added functionality has been added toEallow some extra flexibility in command handling. A line beginning in $% is assumed to have several fields:.SKIP 1l %FLD-1%FLD-2%FLD-3 .SKIP 1 Gin which FLD-1 if present is typed out to the screen first (used to setdHscreen widths). Then FLD-2 is passed as the command. If FLD-3 exists andMstarts with a _? or \, then the terminal is read and the result is added onto Gthe end of FLD-2 before the command is passed back to the spread sheet.hGIf the command begins with a space or control character or a \, then ittGis commented out and the command file falls past the % line. If howeverNEFLD-3 started with _? and the initial read-in character is not \ or asGcontrol character, the command file is rewound. This feature is used inwFthe enter command file (AKD.CMD) to implement an "enter mode" somewhatKakin to that of Visicalc, Supercalc, or others of that ilk by automaticallyoDinserting the "E " of the PortaCalc Enter command until a \ is see00ONNN6%! !n.GIf FLD-3 should be present and start with a _& character, the auxiliaryN:file is closed there and console input done as in \ input..PANote that a file KYSAUX.CMD is supplied which may be used insteadmCof KYS.CMD. If used, it is the ENTER MODE command and will turn offvCauxiliary keypad mode on the terminal. This way, PF4 may be used tosHget into enter mode and the numeric keypad used to enter numbers. RecallBthat the period (.) of numbers is normally needed for their properrecognition as numerics..P=Additionally, where the Gold levels are supported (with linesFbeginning with "_^" incrementing the level), gold-PF2 will be the sameMas H9 (help 9), and gold-gold-PF2 will be the same as H10, gold-gold-gold-PF2nJwill be as H11 and so on. This allows multiple screen picture displays andmakes them more available.HMore than 9 help screens are supported only in PortaCalc-PC, but in thatDversion, a Help system with up to 99 screens is supported. These areCexternally defined by a help file there. However, by adding Runoff hNinstructions to suppress headers and paging, this manual may be turned into a Istandard RSX or VMS HELP entry and accessed online via the $HELP command.s .INDENT -1 4 EXAMPLES.P.index Multiple EquationsaC The expressions that are entered can be numbers or formulas C relating numbers and other cells. They may also consist of severalpC statements separated by a _\ character which will all be evaluated B at that cell, up to 110 characters. Thus, valid commands might be .TEST PAGE 8.LITERAL3 E 55.234 Enters value 55.234 at current cellf9 E B4+H2+D5 Cell will contain the sum of cells B4,H2,D and D5.4 E Totals Cell contains literal text "Totals". .END LITERAL .INDENT -1 4 FORMULAS.PE Formulas may be used too. These include 2 classes. The first are the .index FunctionsD multi-argument functions, which either appear at the start of their< statements or substatements (alone), or inside expressions.<The difference between the classes is that the multiargument<functions must have cell names or ranges as their arguments,Bwhile the single argument functions can have arbitrary expressions2in their arguments. Otherwise they may mix freely.All functions listed>below may appear in command files or cells, and arguments mustBbe cells, not expressions or constants. The IF statement, while itEis treated as a function syntactically, may NOT appear inside generaleEexpressions, but must begin a cell equation or sub-equation (i.e., iti@may begin after a \ in a cell containing several operations). ItHcannot be used inside command files driving cells, but its functionalityCis supplied there by the "*J#label" function, so no real limitation exists on capability.c.SKIP 1d .TEST PAGE 12m/ The available multiple argument functions are:i.index SUM function .index MAX function .index MIN functiont.index AVG functionn#.index STD (Std Deviation) functionn.index IF conditional.index Boolean Functions-.index IRR function (Internal Rate of Return)n'.index NPV (Net Present Value) Functionh.INDEX PMT Functionu.Index AVE Functioni".INDEX FVL (Future Value) function.index MOD Modulo function%.index LKP, LKN, LKE Lookup Functionsd .TEST PAGE 20c^?.LITERAL) SUM[variables] Sum of all argumentsc% MAX[variables] Max of argumentst% MIN[variables] Min of arguments ) AVG[variables] Average of argumentsc= AVE[variables] Average of arguments excluding zero argsn/ STD[variables] Standard deviation squaredc+ IF [V1.rel.V2] statement | else-statementt9 AND[variables] Boolean AND of all variables in listD6 IOR[variables] Boolean inclusive OR of variables3 NOT[variable] Boolean complement of variable 2 XOR[v1,v2] Boolean exclusive OR of v1,v23 EQV[V1,V2] Boolean "equivalence" of V1,V2d9 (complement of exclusive OR, true ifd. bits have the SAME value)8 CNT[variables] Number of nonzero variables in list00ONJH+%O-%TADATADATA: MOD[V1,V2] Returns V1 modulo V2 (i.e., remainder( of V1/V2 division.)1 SGN[v1] Returns 1.0 times sign of V1)9 LKP[var,variables] Lookup variable in "variables" rangeu8 greater or equal to var, return its; index (starting with 0) into variablesc range..9 LKN[var,variables] Lookup variable in "variables" rangeo: less than or equal to var, return its; index (starting with 0) into variablest range.9 LKE[var,variables] Lookup variable in "variables" range < strictly equal to var, return its index; (starting with 0) into range. Note allc; LKP, LKN, LKE return the last variablew: index if no satisfactory value found.: NPV[disc,vars] Net Present Value of vars (equal time8 interval numbers), at discount rate2 disc where disc is a fraction( (e.g., .12 for 12%): IRR[PV,FV,returns] Internal Rate of Return. Will compute8 internal rate of return on up to 208 periods, returning rate per period.6 The returns are expected to be at8 equal time intervals. PV and FV are; initial and final values of investment : and the result is computed via Newton# approximation.u> PMT[princ,inter,nper] Payment (mortgage payment per period)> function. Will compute payment per period? for principal amount "princ" with interest@ per period as "inter" and number of periods< as "nper". All arguments must be cells.A The formula is the standard ordinary annuityoA formula. Interest rate must be a fraction sos9 that 14% would be 0.14, for example.hB PVL[payment,inter,nper] Present Value formula. Computes presentE value of an annuity given "payment", the payment ? per period, interest rate per period (as ac> fraction, so 12% is 0.12) in "inter", and? number of periods as "nper". All argumentsn& must be in cells.= RND[DUM] Generates a random number between 0. ands9 1.0. An argument is needed but it isy2 NOT touched by this function.B CHS[IDX,Range] Choose cell from range based on value of cellA IDX. If cell used as IDX is 1, first element C of range is chosen and so on. Zero is returned2, for out of range cases. .END LITERAL\?.INDEX Random numberse.Index RND functionc/ In all but the case of IF [...], arguments areivariable names separated byt> commas, or variable ranges, or mixtures separated by columns.All these functionso9 require cells or accumulators as arguments; literals and = single argument functions may NOT be used here. (That is whyd< it is easy to place multiple commands on a line; the ACs or* cells may be loaded in "separate" steps.).index SUM functionv.index MAX functionT.index CHS function .Index AVE Function.Index PMT Function .Index FVL Functiona.index MIN functiont.index AVG functiont#.index STD (Std Deviation) functionw.index IF conditional?.index Boolean Functions-.index IRR function (Internal Rate of Return) '.index NPV (Net Present Value) FunctionM.index MOD Modulo function%.index LKP, LKN, LKE Lookup Functionso.PANote that the function STD gives a "variance" which normally willBbe the square of the standard deviation; just use SQRT(STD[range])=to get the ordinary standard deviation (using "n" statistics;<scale to use "n-1" statistics). The AVG function computes an=average as the sum of all cells in the range given divided byn>the number of ce00ONNN6%! !lls. Since label cells are counted (with value8zero), this may not always be what is wanted. Therefore,@the function AVE[range] returns the average ignoring label cells/completely (by ignoring cells with zero value).n.P@ The Boolean variables are computed by taking the integer values@ of the variables and performing the appropriate boolean masking= operations on them. The values are returned as whatever typeS= (floating or integer) the cell is. 32 bit integers are used.XA The CNT operation will (generally) omit cells that have not beennA initialized, since these have a value of 0.0 and are not changed = unless modified explicitly. It may be used to compute a more = accurate average than AVG where many uninitialized cells addp> zero values in. The quotient of the SUM divided by the CNT of< a range will give an average of nonzero cells only. This is/duplicated by the AVE function for ease of use.c.PB The LKP function quickly locates a cell in a list where the valueD is in a desired range; the *G function may be used to extract otherA cells close to the addressed cell (e.g., beside it or below it).rD The LKN and LKE functions are exactly the same but search for lowerB or equal values instead of greater than values. This makes varied> search strategies easy to do. These functions are most usefulA in user command files for selecting parts of the sheet accordingh@ to criteria, as they allow very fast searches of large parts of? the spreadsheet from inside command files. In this applicatione@ the LKP class functions would be accessed via the TEst command.GSince the ranges can be either rows or columns, no special "horizontal"lBor "vertical" lookups are needed. Note the FIRST cell that matches(the criterion of the search is returned..P= The NPV function is the standard financial Net Present Valueo@ function, assuming the discount rate is the fractional interest@ percent per period for the amounts in the range given, and that@ the range of numbers represents equal time periods. Remember to= give a FRACTION rather than a Percent, so a 5% interest ratey/ per period should be given as .05 for example.u.PThe IRR function@ will compute IRR given present value, future value, investmentsA per period (for up to 20 periods), and assuming that the periodsaB are equally spaced. The IRR value returned is per period and mustF be multiplied by periods per year to get a yearly rate. This functionis computed iteratively.)The PMT and FVL functions are payment andi?present value formulas. These functions are implemented only onoBthe VAX version of AnalytiCalc-PC (due to space). They are present>only for convenience and follow the same rules about arguments9having to be in cells as other functions of this type. Toi!compute them one uses the formulaw.Break8Payment=Princ*(int/(1.-(1.+int)**-nper)) for payment, or.Break6PV=payment*(1.-(1.+int)**-nper)/int for present value..PANo function for the value of PI is presented. Pi is approximatelyQ@3.14159265358979323846... and may be used in this way if needed.>It is suggested that the @PI.CMD command file be used to enter?the value PI anywhere desired, or that a cell contain it and becAnamed as {PI so that if you MUST have the constant in your sheet,dBit will be in one place. Since pi/180. is more often used, you may*prefer to compute that instead and use it..PEThe random number function RND[] is included to facilitate generatingC"Monte Carlo" spreadsheet calculations. It is uniformly distributedc?between 0.0 and 1.0. Other distributions may be derived from itrAvia standard techniques described in numerical methods texts; thel?GAUSS function in the IBM SSP library can be used as an exampleaBof this. In Monte Carlo applications, some accumulator can be usedCas a counter to provide a count of calculation passes. The built inaAIF [] function can be used for producing triangular distributionssBby selecting one of a pair of scalings of this random number also..PCFunctions which perform selections on their input ranges (MIN, MAX00ONJH+%O-%TADATADATA, ;LKP, LKN, and LKE) return the column and row numbers of thee?cells found in accumulators P and Q respectively in addition totAreturning the function values. This is true of AnalytiCalc-PC anda@AnalytiCalc-88, V18-07A and later. It is useful for operating on9argument lists where the arguments are not single ranges.m.skip 14 VARIABLE__NAMESe.P? A valid variable name might be H14 or N22 or A3, or thel.index Variable NamesfA position independent forms P_#n_#m and D_#n_#m where n and m areo> offsets in Physical or Display sheets from the current columnC and row. A valid range is 2 variable names separated by colon (:). C Thus the range B2:B12 is valid and means B2 through B12 inclusive.aB The range expression D_#0_#1:D_#0_#12 is also valid and means the!.index Position Independent Names ? cells on the display sheet in the same column but 1 to 12 rows)= down from the current cell inclusive. (The displacements mayi= be negative too, with - sign to indicate it, as D_#-3_#2 fort9 the display cell 3 columns left and 2 rows down from the A current position.) The P_# and D_# forms are valuable since they > work wherever you move them. Other variables may be relocatedA when moved (renaming them to correspond to their new locations),A> but the P_# and D_# forms need never change and allow working< with projections across the physical sheet in various ways.CThere are a few restrictions with these forms. They usually need tot?be enclosed in parentheses (e.g. (P_#3_#5) rather than P_#3_#5) =inside expressions and therefore also won't work in ranges ofI=form v1:v2 inside multi argument functions. For most purposes Athey do work interchangeably with other name schemes however. ForMCmost purposes, the "normal" naming scheme is more flexible. CopyingfBwith relocation works in it, provided that the cursor is above and@left of cells to be renamed (see below). The keypad copy command3normally moves to A1 during a copy for this reason.n.PAIt should be noted that the D_#col_#row forms work correctly onlyp@in the "prime region" of the sheet (upper left part) because the@speed penalty for handling them globally would be excessive. The"P_#col_#row forms work everywhere..PDThe special construction P_#%ab or D_#%ab allows relative addressing.index Special Cell AddressingCrelative to current physical or display location using accumulatorsyGnamed a or b (where a or b may be any accumulator name from A through ZmHbut upper case is REQUIRED). This computable relative addressing affords6greater flexibility in command procedure construction..P@If a formula contains the construction {VN (where VN is any cell;name), the FORMULA for cell VN is inserted into the formulas;being evaluated at that point, when the cell value is to bet6computed. This may be done several levels deep, but is9stopped after 20 translations to avoid infinite loops due .index Formula Indirection9to circular references. Some care must be used here since ;the final translated formula must fit in 110 characters andz8will be truncated if it gets too long. This construct is'useful where formulas are to be tested.a6It provides a handy inline macro capability permitting8complex formulas to be entered more easily. This feature9may be used with the P_#%ab form of addressing to provided6runtime addressing of formulas anywhere in the matrix..P>The command processor may use these inline macros in commands..INDEX COMMAND MACROS .INDEX PARAMETER SUBSTITUTION2:If a command line contains 2 successive underscores (____)?anywhere in its length, the underscores will be stripped out ofn=the command line and the command line will be scanned for {Vnn>forms. If any are found, they will be substituted for prior to@interpretation of the command. This will occur AFTER any console@text is read if console text is required by one of the %%% formsFof command line. This permits formula cells to be used as a convenient=place to store intermediate answers in models being driven byoBcommand files. It is not particularly useful00ONNN6%! ! from the console, but=works, and may be used to reenter a formula without moving it )explicitly if there is a reason to do so. .PCIf a command is given that AnalytiCalc cannot otherwise understand,tDand if it is the name of an accumulator, the formula associated withBthat accumulator is executed as a command as if instead of typing,Clet us say, Q, you had typed ____{Q0 which will execute the formulaeCof Q. Accumulators B, J, N, Q, T, U, and Y can be assigned commandsiEin this way, allowing limited quick commands to be implemented. SincevDthe accumulators are scratch storage, you must run a command file orBhave the file that starts AnalytiCalc set the commands desired up..skip 1h.CNaming Regions or Formulas.P@In the VAX version, PortaCalc will allow you to define names (asAmany names as there are rows) to refer to the contents of certains>cells' formulas. The names may be up to 16 characters long and(they may be defined with a command like:.PTEst {namestring=V1d.skip 1p?where "namestring" is the name being defined and V1 is the cells .index Names .index Macrosu>name whose contents replace the {namestring construct in later>formulas. If the construct "{namestring" (less the " marks) is:seen in a formula, it is treated exactly as if it had been?a {V1 string. For example one could place a sales total formulaein cell C5 and issue a command: .P TE {SALES=C5.skip 1a@and later one could have a formula like "0.06*{SALES" in another;cell, which would no longer have to remember the definitionA9of "sales". There is no facility to dump definitions, butr:they may be included in formulas and saved with a sheet if7desired, being executed when computed. Save as text andl9use TE __{cell to get them evaluated to define the names.1.P9Note there is some scratch formula storage as well as thea:scratch accumulator stores. A phantom "row 0" exists which5includes the accumulators, but all cells in row 0 mayscontain formulas.index Scratch Storage .Index Row 09and/or values (though cell AA0 conflicts with accumulatoru:% in value and should be used for text storage only). This<is handy for storing name definitions TEMPORARILY, as during9command file execution. The storage in these cells is NOTe;saved but is purely available for scratch use while running <AnalytiCalc. It does however save you from having to use the:bottom or right edges of the sheet for scratch formulas if:you are using the macro feature as a way of entering text..P<A dump of definitions may be made onto a disk file by typing the command .PTE {*=.skip 1s8which will ask for the output filename. Type a return an=extra time or two after the dump. Note that the format of thee<output file is a set of TE commands which may be played back=into PortaCalc via the @ command to recreate the definitions.e.Index Symbolic Name Dump .P?Since it is sometimes useful to have mixed formulas which allowf.index Mixed Relocatable Names@certain cell references to be absolute and never relocated, withCother references which are relocatable, cell names may be specifiedn@absolute. If the character "$" (dollar sign) is placed after theAletter, the number, or both, parts of the variable name, the partx=of the variable name followed by the dollar sign is absolute.>Thus, the variable AB30 is relocatable in both row and column.AVariable AB$30 is relocatable in row only (the 30 is not followedaFby $), and the AB column will not be changed in any relocate. VariableAAB30$ is relocatable in column, but the row 30 reference does not <change. Variable AB$30$ is totally absolute. Note that these>absolute variables are harder to move around even on adding or0deleting rows, so they should be used with care.@This relocation protection can be temporarily inhibited with theBOV + command and reinstated with the OV - command. This will allow .index Mixed Relocation Override@copy of cells with relocation if it is needed, without laborious@editing. The program starts in OV - mode and will remain in OV +=mode until OV - is00ONJH+%O-%TADATADATA set up again. The commands may be given in !the form OV-, OV -, OV+, or OV +. .skip 1V .INDENT -14 VARIABLE__RANGES .index Rangest.P> Variable ranges must lie in a single row or column. Erroneous3 specifications are rejected and ignored generally.rA For versions of AnalytiCalc supporting matrix operations, matrixiD dimensions are however given by specifying the upper left and lowerB right corners of the matrices. Thus the range A1:B2 is the 2 by 2, matrix containing cells A1, A2, B1, and B2.EFor operations using full rectangular regions, support is offered via[Aauxiliary keypad commands which allow filling of large regions or Cmoving data into them. This is done via command files automatically(@invoked, but the methods used are transparent to the user. Other>operations on rectangular regions not confined to a single row;or column may easily be added in the same way. The internale7implementation permits copying rows to columns and vicea=versa as well as rows to rows and columns to columns; this isiAwhy regions must be one or the other. It is expected that regionsV>are specified starting at top left and ending at bottom right..skip 1i .INDENT -14 FUNCTION__ARGUMENTS.P9 Note that the square brackets ([]) are needed to delimit .index Function Argumentsa arguments in multiple argument 0functions. The results are left in accumulator %B and in the cell. The IF form will compare 2 variables and execute.index IF statementsF either the statement or the else-statement (which must NOT be another.index Relations IF). The valid relations are:.LITERAL .EQ. Equaln .NE. Not Equaln/ .GT. Greater than (V1 greater than V2)a) .LT. Less than (V1 less than V2) 1 .GE. Greater than or Equal to (V1 >= V2). .LE. Less than or Equal to (V1 =< V2) .END LITERALF and must appear in this form. (Note that your formulas must generally. be in upper case only; text can be anything.).skip 1n .INDENT -14 UNARY__FUNCTIONS.PC The second class of formulas permit fully general argumentse@of expressions, cells, and the like (and are evaluated AFTER the$multi argument functions lexically).J These are more conventional, use parentheses, and include single argument> functions like SQRT, ALOG, EXP, SIN, COS, and so on. See the 9built in interactive calculator mode manual section below .index FunctionsG for more detail. However, they may use variable names as anywhere, notnC just single letter accumulators. Thus, SQRT(A5) is a valid number. I There is a function list in the documentation of Calc mode later in thise manual..skip 1 .INDENT -14 ACCUMULATORS.PG The single letter accumulators of Calc (letters A through Z and .index Accumulatorsn.index ArgumentsG %) are available globally and may take on all Calc data types (see theG description of calc mode below) including multiple precision. They are[B usable globally on the entire sheet and may serve as arguments toF command files or return cells for results. Inside command files, CalcH can perform any of its usual calculations. The multi-argument functionsF listed above are not available there (though they can be simulated byH enumerating cells), but everything else is. The letter accumulators areH available in all cases in addition to cells. Of course, any unused cellG may be used as an accumulator too, but cells in the spreadsheet are atM@ most 8 bytes long and cannot hold multiple precision arguments..PE To get, e.g., the square root of the sum of several variablesoE (in a row or column; ranges may only be in rows or columns together)$ one might have a formula line like:.SKIP 1E( SUM[A1:A20,B4,F2,C5:C20,J3:M3]_\SQRT(%).SKIP 1gG which computes the sum of the 2 cells and 3 ranges and leaves it in %,i.index Multiple EquationsnE then computes the square root of that and leaves it in the cell. ThecK formulas to Calc may be complex but MUST NOT be longer than 78 characters.mC Break up longer ones so they can be fed to Calc in smaller 00ONNN6%! !chunks.n;Notice that the expression given could have been written aslCSQRT(SUM[A1:A20,B4,F2,C5:C20,J3:M3]) but was broken up for tutorialh purposes.g.skip 1b .INDENT -14 AUX__COMMANDSr.PI The commands of CALC should be examined carefully for usefulness. .index Other FunctionsC You can enter programs into CALC which can be used as user-definedi? functions from the sheet if need be. Also, there are a few newg@ commands in CALC for the sheet. See the documentation about the?Calc mode (interactive calculator) for full lists of functions.z.P5 One of these is the *G command. Its syntax isu.SKIP 1i *G V1,V2i.SKIP 1aA which has the effect of evaluating variables V1 and V2 as ? column and row numbers on the physical sheet and returning theM.index Indirect Cell ReferenceswE physical sheet variable addressed by those variables. The ranges areVH clamped to fit on the sheet. This gives indirect addressing, permittingD lookup tables to be made up by creating the index you want and thenF accessing the addressed table element. Typically the *G command would@ be the last on a formula line, though it need not be. Its value" is returned in the % accumulator..P@ Another is the *W command, which simply takes the numberE in % and places it in the formula for the current cell on the spreadf.index Value FreezerA sheet. This may be used to "freeze" a value, replacing a formulaeA by a constant for future use. Note that the previous contents ofsA the formula entry are lost. Thus, a *W command in the sheet willvB normally cause itself to be overwritten after one use. The number? is stored in a format D35.24 in the worksheet. The *WF commandeAstores the value using the current cell format. It is a good ideae@to use a command like "E#_%=P_#_#\*WF" rather than just E#*WF to4ensure the % accumulator REALLY is the current cell..PB To implement user functions, if Calc sees an expression of.index Command Files.index Cell CommandsB the form "*@filename.ext", it will execute that file as a command@ at that cell. Any filename may be used and as many functions asA desired can be handled in this way (with obvious overhead), with C nesting depth of up to 3 permitted. Once Calc starts using logical ? unit 4, however, it conflicts with the P or G commands and maye have problems.p.P@ Calc has also a command called *P which allows resetting.index Temporary Motionu? of the physical coordinates while executing a cell's formulas,sD^? for the duration of that cell's formula only\? or while in K mode only..PD The syntax of the *P command is either just *P (which causesD Calc to prompt for column and row), or *P Variablename (which movesH the current location to the named location), or *P@ variable1,variable2J (which moves to the location which is defined by variable 1 and 2 as col. and row)..PE Some other commands exist for the main benefit of AnalytiCalcp in Calc.i.P The command *F LABEL.BREAKB will evaluate the % variable. If it is positive and nonzero, then.index Conditional LoopsG the current input line will be rewound and the program will (silently)d.index Command FilesF seek a line of the form *CLABEL. This allows loops to be defined withH % as the counter. This command acts on the unit used by the AnalytiCalcC @ command, NOT the unit for the Calc *@ command, and is a way that E the Calc formula conditionals may be reflected back into its commandnE processing. The TE expression command may be used first to set the %eE variable as needed to any arithmetic expression to control the loop.t.P The command *J LABEL.BREAKE will act as does *F LABEL but its search will be in the current files.index Conditional Loops.index Command FilesB opened by a Calc *@ command (i.e., an *@file inside a cell on the? sheet, or given from the console after a K command [see below]g! to enter bare interactive Calc).r.P6 The command *QF or *QW file _?searchkey_? .BREAK.index Command Files00ONJH+%O-%TADATADATA.index Data Base Accesst= will open file and look for lines starting with searchkey ast@ given (with __ as a wild character). Upon finding this, it willA look for the and if it finds it, it will select the part of B the line in the file between the 2 characters given (which may be@ alike) as they are first found, and will do one of 2 things. If@ the command was *QF, then Calc will Float the value found there@ (attempting to use a large E format) and return it in %. If the? command was *QW, then Calc will Write the selected part of thes@ record into the formula at the current physical position on theC sheet (which may be reset by an immediately preceding *P command).n9 The record may contain the search key anywhere. It is up:> to the user to make sure the formulas copied make sense. This? however allows access to sequential files of data which can be < created by an editor, word processor, etc., and which might; hold keyed information that the spreadsheet should be ableD< to manipulate. As a user convenience, there may be a second; key specified (also inside a pair of _?s). If two keys areu9 specified, Calc will search for and require that BOTH beb: somewhere in the record accepted. Note too that the files; opened may not have any records longer than 128 characters A per line. There are 2 variant forms, involving the 4th charactera? (i.e., the next one after the F or W of *QF or *QW). These may = permit sequential access to a data file. The *QFK command is(9 exactly like the *QF command (ditto *QWK and *QW) BUT ite< will not close the data file after finding the desired cell? unless it reached EOF. This permits subsequent commands of they< *QFN command (for "Next") to continue reading the file. The@ *QFN command will continue reading the file (the file spec must@ be there but is ignored) from the next record and will also not@ close the file. (Ditto *QWN.) The *QFC command will act exactly< as *QFN BUT will close the file when the request completes.E Thus, a file may be opened with a *QFK (or *QWK) command, subsequentf; data retrieved by *QFN commands, and finally the last dataa= retrieved with a *QFC command. Also, *QF commands will close # the file prior to opening another.s.P'Formulas entered may have (this versionr,only) the following constructs which will be(edited into the formula as entered (so acommand file can enter them):r.SKIP 1 .LEFT MARGIN 15 .index Command Files.index Formulas .index Cell NamesR .INDENT -53__@V1,V2 Means get the values stored in V1 and V2l(and use them as column and row locations+pointing at some cell in the sheet. Replace()the construct with the name of that cell.r .INDENT -54___#V1 Means take the real number in cell V1 and$unpack it as if it had been a packed&value from a formula with 8 characters'packed; then convert it back into ASCIIn)and place in the formula in place of thisu0construct. This construct is intended to be used1with the *U#STRVL function to allow retrieval andu3edit of formulas. The *U#XQTCM function permits use :of the EDit command within a cell for string manipulation.9Only 8 characters at a time may be represented (the limitb7imposed by cell size), but repeated use allows handlingi7any desired length. An application would be setting ther7cell used as V1 to a packed representation of either ofr7two strings inside an IF#[] and then EDiting the string 6into the formula as desired where one of the 2 strings6should be made to appear. This capability is crude but8provides the bare bones functionality. Additional USRFCT=calls to give simpler (but more verbose) string manipulationse2are not too hard to add should the user need them..LEFT MARGIN 1.skip 1 .INDENT -14 FORMULA__LENGTHp.P6 Formulas have 109 characters allotted to them for use.index Formulaso.index Formula Lengthb< inside the spread sheet. It may happen these are not enough< for use. In other spreadsheets, the technique is to put theA formulas in other cells inside the sheet and possibly use screenu6 windows t00ONNN6%! !o avoid display of the intermediate results..P4 While you can use that technique here too, you have; an alternative. It is to use an indirect file in that cellA.index Command Files; and inside the cell in the spreadsheet just have a commandt> "*@FILE.TYP" where the file is named "FILE.TYP" (you pick the: real name). Inside this file may be whatever calculations you like..PB So long as the file is to operate in a fixed cell location.index Command Files.index Command File LimitationseB in your spreadsheet, you may use variable names like A3, D1, etc. inside the file.u>Your command files may include any multiple argument functions?except the IF function. (The *F and *J functions can be used tom?provide equivalent functionality inside command files however.)nAThe only restriction on multiple argument functions is that their 1arguments must be cells, not general expressions.6.P9 Once you add or delete rows or columns, or copy a? formula, though, the file may not work as expected if the celle.index RelocationV.index Command FilesD calling it has moved. Since the relocation done by AnalytiCalc onlyC operates on formulas stored directly in the spreadsheet, it cannot"@ relocate variables in the indirect files. However, you can makeA the files "position independent" so they WILL work wherever theyl? are called from. (This has the side benefit that a single file can be called from many cells.).P@ The way to make the files position independent is to use; location-relative variable names instead of absolute ones.u; That is, inside cell B4, the cell immediately abovev&.index Position Independent Cell Names> can be named B3 (the ABSOLUTE name), or it can be relocatablyA named P_#0_#-1 (the relative name). Likewise the cell one to ther? right would be named either C3 or P_#1_#0, and so on. The celloD two down and one left would be either A5 or P_#-1_#2 (you can begin> to see how it goes). A file containing only location-relative? variable names will work even if called from a different cell,nE since the references will be figured out when used. These referenceso> are more difficult to write than the absolute ones, but since@ they work without renaming, they provide a level of flexibilityD needed where long formulas must be used. These forms should be used8 wherever indirect files are used to hold cell formulas.CThe computed cell name forms like P_#_%ab can be used also providedwAthe a and b accumulators are initialized properly, or the commandd?file does its own relocation using the X and Y accumulators setl on entry.e.skip 1i .INDENT -14 LINKING__SHEETS .CLINKING SHEETS.PC To enhance AnalytiCalc, it is possible to have a cell refer .index Linking Sheetsk? to cells from another, saved sheet anywhere in the system. The% sheet must normally have been saved t7 starting at the upper left (i.e., cell A1) as would beI the convention for using with PCGRAF (see PCG.DOC). With AnalytiCalc-PC,nCnormally symbolically saved sheets can be accessed for values also,m>unless they were saved with formulae only (PPF command below).CNumeric values MUST have been included in the save, so sheets savedi<with the PPF command (which only saves formulas) cannot havevalues linked..P# The command *XV filename V1t.BREAKA will eXtract the Value of cell V1 (V1 is any variable name, e.g.e.index Extract Saved Value.index XV CommandwA C15, AA3, F9, B34, etc.) from the saved sheet saved in filename.i@ The filename is any legal host system file specifier. Note that> there may be as many files as desired here, but only one cell is returned. .P8If it is desired to extract a formula from a saved sheet4 saved NON-NUMERICALLY (i.e., NOT saved with the PPNcommand), the command form isc.skip 1d.BREAK *XF filename V1..BREAK.skip 1; and this will cause the formula in "filename"'s cell V1 too9 overwrite the current physical sheet. To avoid this, ones might write a formula likee.SKIP 1V *P V2 _\*XF myfile00ONJH+%O-%TADATADATA.typ V1 .SKIP 1eA which would cause current sheet variable V2 to have its' formulai4 loaded from saved sheet "myfile.typ"'s variable V1..P?Note that filename syntax can be anything desired so that fullysAqualified device, directory, and nodename syntax is permitted. InfFa DECnet/VAX environment, any file anywhere on the net may be accessedFin AnalytiCalc anywhere AnalytiCalc needs a filename. There is a limit@in total length (usually to 80 characters) for the filename, butFapart from that, the name is unconstrained. This is true of ALL placesAnalyiCalc accesses filenames..skip 1d .INDENT -13 EDIT^?.LITERAL EDIT FORMULASg3 ED 'string1'string2' Replace string1 with string2i6 in current cell formula. Either5 string may be null if desired. .END LITERAL\?.PA The ED command allows editing of formulas with some extral .index EDITr? bells and whistles. Basically, the new string replaces the oldr< one, EXCEPT that it is possible to do some limited argument replacement.t.PD The constructs _&1 through _&4 will be replaced by arguments.index EDIT, Special ConstructsN.index Command ArgumentsB 1 through 4 as last entered by the "-" command (see below). TheseE may be from 0 to 51 characters long each, and multiple _& constructs.E may appear in a substitution. No _& constructs may recurse, however.iA A second ED command can have the effect of the recursion in someh cases however.e.P@ The construct _&5 will evaluate accumulator Z and, if itD is in a range where it may be so represented, take its integer part< and convert it to a numeric string (up to 10 characters) in the place of the _&5..PA The construct _&6 will replace the cell with the contents? of the integer part of accumulator Z provided that that numberd? is between 1 and 256. Thus, any single non-null ASCII code canyC be entered. Accumulator Z is used to avoid conflicts with %, which14 is used too frequently to reserve for this purpose.4To set up Z interactively to a constant, the command&"TE#Z=nn." will set Z to the value nn..P@ The EDited formula is re-entered into the cell after the edit..PGIf the initial string is null, the EDit command appends the replacement Bstring onto the contents of the cell. If the replacement string isCnull, the corresponding contents of the cell's formula are deleted.e?Note that ALL matching strings in the formula are replaced, nottBjust the first. The strings may be delimited by any character thatAdoes not appear in either the original or the replacement string,a?so the quote character shown in the example is not special. Anyl4delimiter can be used provided it won't be confused..SKIP 2c .TEST PAGE 20d .INDENT -13 FILE__LOADINGl^?.LITERAL FILE LOADING9 F filename/nnnn Read filename, skipping nnnn linesu5 if the "/nnnn" is there, and load 9 contents onto the currently displayedl6 screen, broken into columns as the- current screen is set up. .END LITERAL\?.PA This command is designed to make it easy to load documenti.Index Word ProcessingH files into AnalytiCalc in quasi-image mode. Once loaded, the characters.index File Loadingo.index F CommandD are in formula cells and may be moved around the sheet. The displayA format must be reset to get them to be treated as non-text; thisl? command will reset all loaded cells to text format display. It @ repaints the screen upon loading. This feature makes it easy to; capture data in AnalytiCalc from other unrelated programs.m.SKIP 2l .TEST PAGE 20 .INDENT -13 RESTORING__SAVED__SHEET)^?.LITERAL RESTORING YOUR SPREADSHEET4 GD Reload sheet down/right onto display coordinates.5 GP Reload sheet down/right onto physicalr coordinates.7 GxR Reload saved sheet and relocate so thatg4 the cursor is treated as hav00ONNN6%! !ing been4 at A1 in the save operation. Permits- mergers of multiple formulas.b8 Gxx+ Add saved sheet (if default save) values= to current values; enters Recalc Manual mode.l= Gxx- Subtract saved sheet (if default save) valuess> from current values. Also enters Recalc Manual mode. .END LITERAL\?.P@ The GP/GD commands are the inverse of the PP/PD commands? and load those files to potentially new locations. This is thef.index Loading Saved Sheet.index G Command? simple way to merge sheets. In these cases, you are separatelyI= asked for filenames and limits on what part of the sheets tonB load/save. Only cells that are marked in use are saved, so sparse< sheets take less space than saving the direct access files.B Note that on save or restore the ranges to restore are asked for.@ To restore the sheet starting at the cursor, specify the lowest@ row/column offset of 1 and the highest either 0 or a very large? number. Any rectangular region can be restored by giving the Xd= and Y coordinates of the lowest and highest offsets from thel( upper left to restore, counting from 1. .break 6REMEMBER: THE LOW OFFSET SHOULD BE 1 OR LARGER, NOT 0..breakF In AnalytiCalc/PC, the logic to write to cells involves checks of theD built in symbol table to ensure that cells are not previously thereG and needing to be replaced. This slows the Get operation considerably,n@ and is normally bypassed. However, where a saved sheet is beingG merged into an existing sheet (rather than restoring into a previouslybE empty region of the sheet), the full logic may be needed for correcttF operation. To get it, enter the filename followed by "/M" (so that toE read SAVESHEET.PCC in the full-update mode you reply SAVESHEET.PCC/M%G to the "Enter#Filename>" prompt, rather than just SAVESHEET.PCC, as anu example.) (M stands for Merge.).PENote the R modifier as the 3rd character of the command (i.e., GPR or"CGDR) makes AnalytiCalc relocate formulas read in so that the origin ?of the area read becomes the current cell, rather than A1 as itt@ordinarily would be. This makes merging multiple sheets trivial..PBThe + or - modifiers in the 4th character of the command allow youFto add or subtract multiple saved sheet values. These require that theBnormal default save (which includes both numeric and formula data)@have been done to save the sheets being added. The values in theDsheet have the saved values either added (if +) or subtracted (if -)@from the current values. The manual recalculation flag is set toDprevent any automatic recalculations also, since formulas are loadedCfrom the last sheet loaded and overwrite other formulas in the sameoDcells. (This is generally not a problem.) To manipulate these valuesEif there is a need to, the TEst command and the matrix math functionsrG(which include multiply matrix by constant) allow two dimensional areas @to be moved around or multiplied by constants without turning onBthe sheet recalculation. Thus, averaging 4 sheets could be done by:a GP command, three GPx+ commands, and then a TE using the@*U MMPYC function to multiply the whole area by 0.25. (One could@use TE A=0.25 to get a "cell" A0 to use in the MMPYC function if&no 0.25 value existed to use already.).SKIP 2m .TEST PAGE 20n .INDENT -13 HELP^?.LITERAL HELP7 Hn Display a screen of help. (n from 0 thru 9)t .END LITERAL\?.P? The H command will display a screenful of help giving ar .index HelpeB summary of many AnalytiCalc commands and syntax options. When you1 type a second return, it will redraw the screen.B.PF In most flavors of AnalytiCalc, the PF2 key also means 'Help'..pD There are multiple help pages. They are selected by commands. H0 through H9, the number defaulting to 0 and) selecting which help screen will appear.a>Where the "gold key" style commands are supported, Gold-PF2 is>equivalent to H9 (which displays the keypad pi00ONJH+%O-%TADATADATActure normally),=and higher "gold" levels display later help pages. Later helpa9pages only exist in AnalytiCalc-PC, where up to 99 may beiCprovided. The intent is to make possible the construction of a morecCintelligent Help system as desired, using the keypad as the primary(command input medium.s.SKIP 2 .TEST PAGE 20d .INDENT -13 INTERACTIVE__CALCe^?.LITERAL) DROPPING INTO INTERACTIVE CALCULATORe. K Drop into interactive Calculator .END LITERAL\?.P: The K command gets you into Calc, described below,< and lets you do computations. When you give the interactive.index Interactive CalculatorbD Calc program the *E command to exit, you return to the spreadsheet.? This may be useful where you want to do auxiliary computationsmA not in the spread sheet or try out formulas that you may want tof9 debug interactively before entering them onto the sheet.c> This calculator knows decimal, hex, and octal radices and can? be used to debug indirect command files written for use within,> spreadsheet cells; the *V 3 command can be given and then the= *@file can be given in Calc mode, providing a trace playbacki: of the actions of a command file to see what it is doing.< See HELP INT__CALC for further information about Calc mode..SKIP 2a .TEST PAGE 20n .INDENT -13 LOCATE__CURSOR^?.LITERAL1 LOCATE CURSOR (GOTO somewhere on the sheet) 6 L variable-name Position cursor at variable-name .END LITERAL\?.P@ The L command moves the current position to the variableC named on the Physical sheet (and the display sheet if the variablel.index L Command .index Movings.index Locate currenth.index GOTO (Locate) Command& is on the display). Examples might be.SKIP 1 .INDENT 4u! L B3 ###Move to cell B3u .INDENT 4r! L D6 ###Move to cell D6o.SKIP 2l .TEST PAGE 20o .INDENT -13 MOTION__DIRECTIONF^?.LITERAL# MOTION DIRECTION (Set Default ' Direction to move after an Enter)u. THIS COMMAND SETS DIRECTIONS FOR AUTOMATIC! MOTION AFTER ENTER ONLY.y+ SEE BELOW FOR HOW TO MOVE THE CURSOR ATr OTHER TIMES.m5 M0 (Swap previous, current direction)o M1 (Move up) M2 (Move down) M3 (Move left) M4 (Move right)o# M5 (No auto motion)c .END LITERAL\?.PG The M command causes automatic cursor motion after an E command .index Auto Motion.index M CommandA in the direction indicated. This only occurs after an E command.lG The default condition is not to move at all after an E command,hD and this may be reestablished by a command of form M5 (actually Mc,- where c is any character other than 1 to 4.)eGAt each command, the old direction is saved and may be recalled via thei M0 command.S.SKIP 2 .TEST PAGE 20r .INDENT -13 FILE__INCLUSIONc^?.LITERAL4 MS Macrocell Show (handles &% and &&% files)2 MH Macrocell Hide (no special & treatment)2 &%file,nskip,nshow overlay file on screen3 &&%file,snskip,nshow Include file for output .END LITERAL\?.P@The MS and MH commands turn on or off the handling as print time.Index Word Processing.Index File Mergingn.Index Frame Editing@macros of the _&% and _&_&% forms of filenames. These permit youAto use AnalytiCalc for report generation or outline handling morea.Index MS commandn.Index MH CommandBeasily. In MS mode, if a cell has an _&%file form in it, that file>is read when that cell is displayed. The first "nskip" records>are skipped in the file, and up to "nshow-1" lines of the file=are displayed on null cells of the spreadsheet. Up to 4 filesD?may be open at a time here. The left margin of the file text iso=made to coincide with the location of the cell containing the@reference. You can use the $ (spawn) command to edit these filesBwith your favorite editor or word processor on the system and theyBwill automatically be updated on screen. The _&_&% form is used to00ONNN6%! !Binclude (possibly lengthy) files in output. The files are included=in spreadsheet output at the point they are seen, indented bysAthe amount of the indenting of the _&_&% command form. Therefore, =you can use AnalytiCalc to organize a multilevel hierarchy of :printout of reports. If a _&_&% form is seen in one of the<files being included, that file is opened and included. This:nesting may go to a depth of 4 levels. This permits a real:"frame editing" using AnalytiCalc and your favorite editor=or word processor (WITHOUT requiring you to learn yet another3editor.).SKIP 2 .TEST PAGE 20r .INDENT -13 ORIGIN__RESETy^?.LITERAL3 ORIGIN RESET (Windows onto physical sheet)J5 OA variable Reset origin of display to variablei7 OR variable Reset display down and right to starto# with variable 2 OAD variable Reset origin of display leaving 2 mapping Displacements intact7 ORD variable Reset origin down and right of cursorr3 leaving mapping Displacementsx intact. .END LITERAL\?.PK The OA and OR commands let you do quick scrolls around the physicalrG sheet by resetting the upper left corner of the display sheet to point .index Windows.index OR Commandi.index OA Command .INDEX OAD Command.Index ORD Command.index Origin Control CommandsH at any variable on the physical one and make the rest follow suit (OA),I or will reset the display sheet starting at your current cursor locationlL to point at the physical sheet variable and make all parts of the displayedE sheet down and right from your current location correspond likewise.e.PD Thus, if you start with a normal initial display and execute the commandsL.SKIP 1h .INDENT 4t L C1 .INDENT 4a OR H1r.SKIP 1 H you wind up with columns A and B still on screen, but now the remainingF columns are H, I, J, K, L instead of C, D, E, F, and G. This happenedE because cell H1, down and right were pointed to by the display sheetlE starting where you were, which was cell C1, initially the 3rd columneC and first row. Had the command been OA H1, the column labels wouldt$ be H-N rather than the initial A-G..PBIf the character D is appended to the commands (so they are ORD orAOAD instead of OA or OR), the mappings are adjusted by adding theeDdisplacement from the current origin cell (upper left cell on screenFin OAD or cursor cell in ORD) to the new cell (the one in the command)?to whatever is currently there. The effect is to move an entiretFdisplay-full of mapped windows to a new location, leaving all relativeCmappings intact. (Some pathological cases can occur where one moveseEparts of the windows into nonexistent areas. Use an OR or OA command hto correct these.).P/To see the difference, consider a virgin sheet. .Index OAD and ORD vs. OA and OR?If you first move the cursor to C1 and use the command "OR#AA1"e=the screen will now show columns A, B, AA, AB, AC, and so on.h?The rows will be (still) their initial 1 to 20. Now if you movet>to cell A10 and use the command OR#A100, the lower half of the=screen now contains columns A, B, C, D, E, and so on and rowsdB100, 101, 102, and so on. If you want to reset the mapping so that>there are four regions on screen, you need to move to C100 and?use an OR#AA100 command to get the four regions desired (A1:B9,V>A100:B110, AA1:AE9, and AA100:AE110). This is somewhat counter=intuitive. Therefore, if you use the command ORD#A100 insteady8of the OR#A100 above, the previous mapping of columns is>retained, and you don't need to move to the middle part of the=screen to reset mappings inside as often. This makes for muchNeasier-to-understand windowing.t.SKIP 2o .TEST PAGE 20m .INDENT -13 SAVING__SHEETK^?.LITERAL SAVING YOUR SPREADSHEETa6 PD Put out current Display sheet (Formulas)@ PPA Put out current Physical sheet (Formulas and Nos.)5 PDN Put out current Display sheet (Numbers)e00ONJH+%O-%TADATADATA6 PPN Put out current Physical sheet (Numbers)< PPF Put our current Physical Sheet (Formulas only)8 PxxM Put out display to physical map as well as= worksheet information. Saves displayed mapping, only.; PxxMA Put out display to physical map. Saves entire ; mapping, whether within DB command bounds orl not.h S Setup Global Items7 (In workfile versions, Saves workfile andm+ allows you to use a new one.)e .END LITERAL\?.P#In current versions of AnalytiCalc,IAthe S command will lead to questions being asked about whether ton?update the display mapping. If you reply Y, you will be able to Creset the default display column width to whatever you like betweeneB1 and 120 characters and to say whether to reset the display sheetCto point to the upper left of the physical spreadsheet. In any casew@you will be able to reset the default format and the spreadsheetLtitle. In AnalytiCalc-VM and AnalytiCalc-PC, this is all the S command does.HIn the older AnalytiCalcs, global column width is not resettable in thisway..PJThe S command also (on VAX) asks for the length of the screen. This allowsDAnalytiCalc to be set up for displays of lengths other than 24 linesGlength. Some PC-based terminal emulators, some long-page terminals, andtBsome windowing environments are places where a short or long sheetDdisplay may be wanted. The length chosen determines the placement ofEthe command prompt and the current formula display, normally on lines B23 and 24 respectively. The DB command should be used with this toDreset the number of rows being displayed, as this is allowed to varyFindependently in order to print long pages. This part of the S command>allows you to use whatever screen resources you like, however..P;The S command also allows you to reset the mapping used for =cells out of the normal "physical sheet" range. When you move1;to the right of the "prime area" storage (on VAX, generallyt?this means columns past 80 over and rows lower than 400), cellse@continue to be shown, but cells to the right of the right border:of the "prime area" (i.e., the real storage available) are=remapped to the left of the real area but down some number of Crows. Cells below the "prime area" are remapped to an area startingr@at the top of the "prime area" again, but right several columns.=You can select how many rows down or columns right successivee>groups of columns or rows are moved to here. This must ONLY be8done if there are NO active cells in an extended region;8otherwise you mess up the mapping. Also the mapping must=be reset when using a sheet that was saved with a nonstandarde:mapping for the computations to work normally. The default:values are 1/10 of the width and length, and will normally;be adequate. If you reply that you do NOT want to reset thee;extended area mapping, the questions will not be asked thatt<set it. A negative number reply sets up the default mapping.7If you must alter the extended map while using extendedi;cells, save the sheet, alter the map, and rerun AnalytiCalciand reload the saved sheet.d.P:When asked for a new title, a carriage return (or anything7starting with 2 spaces) will leave the old title alone.o.P%In workfile versions (i.e., old ones)e6the S command just returns to the start of Calc to let .index SAVEe.index P Command.index S Command@ you select a new work file. You may reselect the old one if youA wish; this lets you change the title only. Otherwise you can use = the direct access file as primary saved info on a sheet. TherA PP and PD commands (with the GP/GD commands described below) are_A intended to be the primary means of saving/restoring sheets, and C allow more flexibility in saving, restoring, or mixing sheets thaneE the S command. Thus, the S command is intended as a highly temporary A form of saving data, and should NOT be used as an archival meanso of storing a spread sheet.u.P> The PD a00PNNN6%! !nd PP commands write Display or Physical sheet@ cells that are active to a specially formatted sequential ASCIIC text file, always starting from the current position of the cursor ? and saving right and down. Some questions will be asked so you @ may enter a maximum displacement to save (so not all of a large? sheet need be saved) in columns and rows. On reload (the GP/GDoE commands), these questions are also asked, and minimum displacementseA are asked also to allow you to enter basically any region of thec< saved sheets into the current sheet starting at the current= location and moving down and right. This gives a large scaler. move capability and a sheet merge capability..P@ The PPN and PDN commands save numbers instead of formats? to permit loading of isolated numeric values from other sheetseA by using the GD or GP commands (below). They record only numbersr@ and not formulas, but this allows any cell's numeric value fromA other sheets to be loaded into another sheet without loading allo.index Graphicsn@ formulas and repeating calculations. Also, the PPN/PDN commandsB are needed to use the PCGRAF program to graph parts of a sheet if this form of output is desired..P? The PP/PD commands are suitable for archival storage ofb< spread sheet data, or for its transportation to differently" compiled versions of AnalytiCalc..PAThe "extended area" mapping available on the PortaCalc-PC versionp>of the program allows one to use the storage on the sheet as aAvery wide but shallow, or long but narrow, sheet. Real storage isaAnot altered, but extended addresses are given aliases on the realr:sheet. The wide-storage case can look something like this: .test page 20 .SKIP 2,.LITERAL$ AAAAAAAABBBBBBBBCCCCCCCC........ BBBBBBBB CCCCCCCC ........ .END LITERAL.SKIP 1/Awhere the AAAAAAAA section may represent the first 80 columns andC<20 rows, the BBBBBBBB section, the second 80 columns and theBCCCCCCCC section the third 80 columns across. The BBBBBBBB section>will appear to be just columns 81-160 in rows 1 to 20 as it is>used. However, it actually uses storage in columns 1 to 80 and8rows 21-40 (if we have the row increment set to 20). The;section shown as CCCCCCCC is similar but would be mapped tom<rows 41-60, and so on. Rows below the sheet are treated in a?similar way. That is, rows 401-800 in columns A through L mighth>actually use rows 1-400 in columns M through X in the physical>storage. If you use addresses in the middle of the range, theyAwill be mapped somewhere on the physical storage, but it's hardernAto follow the remapping unless only very wide or very long sheetso@are being used, the other dimension being correspondingly short..P@It is fairly simple to increase the storage possible in the real:sheet, but this has been left undone because an attempt to=make a spreadsheet that really will try to calculate hundredsu>of thousands of cells will page fault itself to death and harmAsystem performance unduly. Several commercially sold VAX or PDP11 @spreadsheets have this problem already, and AnalytiCalc will notAjoin them. The program's working set is always reasonable now. IffAthe amount of storage is too small, you probably need a different2<kind of tool, and should investigate writing a program to do=the calculations you need in a compiled language, rather thanNAtrying to pound it through a giant interpreter like this one. YoucCshould also see if the ability to handle several equations per cell >and do matrix math can help. Computing the sum of the products>of two columns can be represented as the product of one matrix?with the transpose of another, for example. This calculation is Bfar faster than wasting another column for the individual productsDand then summing them somewhere. The system performance and the timeyou save may be your own.b.SKIP 2t .TEST PAGE 20s .INDENT -1 3 RECALCULATEw^?.LITERAL RECALCULATEs$ R Recalculate all of the sheet.9 RE Recalculate Entries as made but nothing e00 PNJH+%O-%TADATADATAlse untilm R command given.e@ RI Recalculate Incremental - Calculate displayed cells only.6 RM Recalculate manually only until R command givenD RAF Recalculate sheet, without constant recalculation (same as R)1 RF Recalculate, Force constant recalculation.: RR Recalculate, Force, but stay in RE or RI mode if in it already. .END LITERAL\?.PD The R command forces a recalculation of the sheet. This will.index RecalculateF evaluate all formulas on the sheet and update the display to show theB new numbers. Normally, recalculation is done after each number is? entered to update the new cell, but the R command forces totaltH recalculation in case anything was missed. Use the raf command for mostH recalculations to avoid the extra time used by R. The standard keypad'sI Recalculate key generates the RAF command automatically for ease of use.e.PH Since these calculations can be time-consuming, you can suppressI them while doing input by entering the RM command (Recalculate Manually)cC which suppresses recalculation until an R command is entered. Thisn command's format is justt.SKIP 1b RM.SKIP 1 .PJ To speed normal recalculation, AnalytiCalc only computes constants once. b)In PCC-VM only, the normal R command willI&force them to be recomputed also. ThisG may be suppressed (for speed) by the command RAF. (Actually the secondaG character may be anything except M.) In all other AnalytiCalc dialectshBthe R command does not recompute constants but the RF command does#force them to be re-evaluated also.e.P?For further speedups, AnalytiCalc can be put into RE or RI modeu@to recompute only the cells just entered after each entry, or to/compute cells on the display only. It starts in#>RI (Recalculate Incremental) mode until an R command is given.@After an R or RF command is given, AnalytiCalc goes into a mode =where it will compute ALL cells that have anything in them atoAeach sheet recomputation. Another RI or RE command will return toA?the previous mode. The RR command does a RF (Recalculate, ForceO?constant recomputation) but stays in Incremental or Entry mode. @Whenever a new sheet is loaded, a single R is done automaticallyregardless of the current mode.w.PFIn R, RE, and RF modes, AnalytiCalc computes all cells in across, thenFdown mode (like a television raster scan). This corresponds to storageForder to give best performance in a virtual memory system. In RI mode,FAnalytiCalc computes by going across, then down, the DISPLAY cells, soDphysical access can be in non-optimal order. However, the speedup isHgenerally well worth while. Therefore, RI mode is the default. Note thatGwhen a sheet is loaded a full recalculation is performed initially evencHin RI mode, however. Also, RE mode is effective only in the "prime area"1of the sheet (upper left part) for speed reasons.E.PFNotice that these Recalculate commands both perform recalculations andDset modes of recalculation. If the third character of the command isBI (e.g., RII in Recalc Incremental, or RXI in normal recalc mode),Donly the modes will be set. An extra recalculation will not occur asDa result of an RxI command (where x is any letter). This feature canBbe used where it has been necessary to recompute the entire sheet,Dpossibly via an R command, and it is desired to return to the normal?Recalculate Incremental mode. The RI command will recompute theMCdisplay, causing a short delay. The RII command, on the other hand,tAwill simply reset the mode to Incremental and complete at once soc0that subsequent recalculations will be affected..P=The RE mode applies only in the prime (i.e., upper left) part Bof the sheet. In extended areas (normally, those outside the range9A1:CA400), it fails and R mode or RI mode should be used.lThis is done becauseAsupporting this mode globally would impose a large speed penalty.yBIf a large sheet is used and your display is entirely in the prime<part of the sheet, you can re-enter RE mode by giving the 00PNNN6%! !RE>command any time your display points entirely inside the prime!(upper left) region of the sheet.i.SKIP 2r .TEST PAGE 20d .INDENT -13 RELOCATE_BDY^?.LITERAL RELOCATE BOUNDARY6 RB* Set maximum row and col for relocation to end of sheet.7 RB Var Set maximum row and col to be relocatedd, to coords of Var (cell name) .END LITERAL\?.INDEX RB COMMANDT.INDEX RELOCATE BOUNDARY.P?The RB command affords a way to specify a lower right corner too>the area relocated by any of the copy and relocate operations.>This allows the AR operation to relocate only a finite maximum<number of rows or columns, or permits cells moved beyond the;boundary specified to be unrelocated. The upper left cornera<of the relocation area is defined by the cursor position, so@this permits any rectangular area to be moved without relocation=while the rest is relocated. Combination of this feature with ?the AR and CR commands permits moving rows or columns (or parts of them) via command files.p<For example, a rectangle could be moved away from the origin=further by using the cursor and the RB command to delimit ther>area to move, then using a command file to cycle through a set=of CR commands to copy all cells down the desired amount. Thei?AA command could then be used to delete the undesired top cellsd<and the area to be moved now moved into its new address, all>other cells having been relocated. The functionality of movingAcells is however much better served on AnalytiCalc by the OA, OR,eDand DL commands to reset the display mapping (possibly while logging=keystrokes so the mapping can be easily reproduced) to effect@the desired move. For simply reformatting the screen, DL affordsBcontrol at the level of any regions desired. A command file should<be devised for moving cells but only used when really neededBbadly, if such actions are needed for other reasons. There will be;very little need for them under most circumstances however.1<Where cells must move closer to the origin, an AR command at=the origin can be used to provide temporary space in which toe<move the cells; at the end, they will be moved back further.<The IR command (Inplace Relocate) can be used to avoid major=moving around the sheet. The *U#HERE function will return then7current max column in accumulator W and the current maxh(row in accumulator Y to facilitate this..SKIP 2r .TEST PAGE 20c .INDENT -13 TEST^?.LITERAL TEST4 TE expression Evaluate expression, save in % .END LITERAL\?.P>The TEst command allows command level calculations, for use in.index TE Commanda.index TEst Compute.Ccontrolling loops. It evaluates the expression (up to 79 charactersnElong) and stores in the % accumulator. Useful for *J type commands toeDcontrol branching in AnalytiCalc. Any expression may be handled in aHTE command, and forms of the sort Z=expression are allowed. NOTE howeverJthat it is frequently desirable from command files to add a \*C to the endKof the formula since sometimes junk from preceding lines is not zeroed. The15\*C causes it to be treated as a comment and ignored.c.PIThe TEst command will calculate formulas even in restricted recalculationdMmodes (RM mode, RE mode, or RI mode) since it ALWAYS evaluates the expressioneHregardless of mode. The construct to evaluate a cell with a command like.skip 1e .indent 59 TE#V1=____{V1A.skip 1nA(which sets a cell value to the computed value of its formula) isy?explicitly legal and can be used where it is desired to performr2irregular partial recomputations while in RM mode..SKIP 2 .TEST PAGE 20d .INDENT -13 VIEWSCREEN__REFRESHp^?.LITERAL VIEWSCREEN UPDATEN2 V Redraw screen with normal formats3 VF Redraw screen showing all formulas 7 VM Don't redraw screen until a V or VF isu given. .END LITERAL\?.PH The V and VF commands redraw the display screen showing numericsF as numerics in th00PNJH+%O-%TADATADATAe selected format (V) or displaying whatever part ofF the formulas fits on screen in the column (VF). This is used wherever.index View Commandp.index Redraw CommandwL the picture on the screen is damaged, e.g., by operating system broadcasts.I VM is used to inhibit redraw while numerous changes may be made, to save 8 time. A V or VF command will re enable display updates..SKIP 2 .TEST PAGE 20h .INDENT -13 WRITE ^?.LITERAL+ WRITING SCREEN TO HARDCOPY OR FILESr" W Write screen to file .END LITERAL\?.P> The W command lets you write a hard copy of the screenC as it exists on display to a file. AnalytiCalc will prompt you fort.index W Command&.index Writing Screen to File or Print8 the file name; the device specifier should be included..PB Note that if the filename you enter (or the last characterD after the device or file specifier) is a "/" character, AnalytiCalcC will omit the column and row labels in the output file or printouteC so that you need not edit them out afterwards. They will always bem! displayed on the screen however.c.PB To output to the lineprinter on PDP11, the file specifiersC to give are either "LP:" or "LP:/", then. The device name normallytC should be given on PDP11. On other systems (e.g., VAX), the devicehA will default to disk unless otherwise specified. The output fileC in any case has no strange escape sequences and may be edited withiE any normal system editor. On VAX, use LPA0: for printer or NLA0: for * junking anyxoutput you really don't want.GIf the character "_%" appears in the file specifier, the title will notuCbe displayed on printout. This is designed to help those producing s2paste-together printouts from several sheet areas..pBThe width and length of the file output may be considerably larger?than a VTxxx screen. In fact, print widths are supported on VAXo;to 512 characters (normally up to 63 columns) and pages maya?be up to 75 rows long. Just set the size with the DB command tos?set numbers of columns and rows, and use DW commands to set theoDwidths desired of displayed columns. While only 80 or 132 charactersEwidth and 20 rows length fit on a VTxxx screen, the size you set willi@be used for the printable file. It's up to you to figure out how?to display a wide file if your lineprinter only has 132 columnsrAof course. Other display page editing commands like OR or OA willaHwork up to the bounds set by DB even if these exceed a physical screen's capacity. .SKIP 2r .TEST PAGE 20 .INDENT -13 EXIT^?.LITERAL EXIT' X Exit to operating system.s .END LITERAL\?.PE The X command exits from AnalytiCalc to the operating system.tC In general, this is the ONLY way (short of an abort command to thed.index X Command .index ExitwD operating system) to get out of AnalytiCalc, and is the ONLY WAY TO LEAVE GRACEFULLY.You should use the PP or PD,? command to save your sheet prior to X if you want to save your A sheet; otherwise it will be lost. Be at least that cautious; themA program will NOT keep track of whether you've saved the sheet or A not (this may be the umpteenth time you've run it since creatingr that scratch file)..P .index SAVEt(The files created by PP/PD commands save. the sheet, but only entries that were in use.#The XD and X commands are identicalrHin the VM and PC versions of AnalytiCalc since there is never a workfileDcreated that can be saved or deleted. The scratch files for formulasMand variables in AnalytiCalc-PC are created as temporaries and automatically eGdeleted on exit. The XD command exists in older versions of AnalytiCalcmFand deletes the random access workfile they use for formulas, which is4saved by the S (Save) command in those old versions..SKIP 2l .TEST PAGE 20v .INDENT -13 ZERO^?.LITERAL ZERO VARIABLES ZA Zero whole sheet1 ZE V1:V2 Zero variables in a row or columnN0 in range from cell V1 to cell V2( (V1,V2 = names o00"PNNN6%! !f cells) .END LITERAL\?.PE The ZEro commands clear out a sheet. The ZA command will alsoiJ ask if you mean it and needs a reply of Yes to actually clobber the whole.index ZAP Sheet Command.index ZEro Commandw( sheet and return it to pristine purity..PH The ZA command occasionally takes a noticeable time to clear theJworkfile out; do not be alarmed at this. It will ask afterwards for a new<title, new display format default for floating point, etc. .PL If you give the ZA command, AnalytiCalc will ask you to confirm thatO you indeed want to zero the entire sheet. A reply of Y will proceed to executem@ the command; any other reply will abort the clearing operation..SKIP 2o .TEST PAGE 20b .INDENT -13 COMMAND__FILE__EXECUTION^?.LITERAL EXECUTING COMMAND FILES2 @filespec Read filespec and execute commands# as though typed in., .END LITERAL\?.index Command FilesB The @ command lets you treat a file as though it were yourA console input (returns on endfile) to let you execute saved sets @ of commands to set up your sheets. Note that if you issue the KC command (below), those inputs come from a separate file on logical C unit 1. As a special VAX feature, PortaCalc-VM will accept a replye?beginning with @ in the title question of the first page of theoCsheet as indicating a command and begin using that command directlyPBuntil it reaches EOF. This is done to permit auto-startup commands#for particular users to be defined.o.SKIP 2g .TEST PAGE 20e .INDENT -1 3 JOURNALING^?.LITERAL JOURNALING1 +J filename Opens filename as a journal file, 0 recording commands to that file.2 (Note: auxiliary inputs are not so5 recorded, where asked for as separateE questions.)h, +N Closes any open journal file .END LITERAL\?.P% The journaling commands allow typedm commands to be savedc.index Command Files.index JournalingB.index Keystroke CaptureE into a file later usable as an indirect command input to AnalytiCalcc< to allow recreation of screen formats, data, formulas, etc.@ Extra questions (e.g. those used for filename and areas to save: or restore in P or G class commands) are NOT saved by theC journal. They will be read by @ commands however and may be edited8A into a journal file with any editor. If this is desired inside asD AnalytiCalc session, the Spawn command (below) is recommended afterE the +N command is used to close the file. The VM and RM commands areeB recommended inside @ files (with R and V commands at the ends) toA suspend display updating and recalculation until all commands insM the journal file are done. The Journal command is the way to get AnalytiCalchG to remember your keystrokes when making up any command so that you canaD tell what you're doing. Later if you don't need to watch the screenD update, use the VM command (View Manual) to turn display update offF during the command files' operation, and the V (View) command to turn it back on at the end.l.SKIP 2i .TEST PAGE 20e .INDENT -13 SPAWNi^?.LITERAL6 $ command-line Spawn command line to the OS3 (minus the $ sign). May 1 need extra CR to freec$ console.9 } command-line Spawn command line (minus the })r9 and await a return on console 3 before return to sheet.h .END LITERAL\?.P< The $ command permits the VAX/VMS version of AnalytiCalc to@spawn DCL commands to VMS. The command is whatever follows the $.index Subprocess Execution .index Temp. Escape to MonitorAand results in that command being spawned to VMS. (Users may finde=an extra CR (Return key) is needed to allow terminal output).SAThe command is executed in a VMS subprocess, and upon completion,>the screen is redrawn. This permits use of other VMS utilities?during a session with AnalytiCalc. This 00*PNJH+%O-%TADATADATAalso is implemented forc=AnalytiCalc-PC for the PDP11 using the RSX Spawn command. Thel>variant using the } character rather than the $ character will<print the message ENTER RETURN TO REDRAW SPREADSHEET> at the:bottom of the screen and will not repaint the screen until@the return key is pressed. This allows you to examine the screen9as long as needed before erasing and redrawing the sheet.h.SKIP 2n .TEST PAGE 20l .INDENT -13 FORMULA_SEARCH^?.LITERAL SEARCH for formula substring8 >STRING Find cell whose formula contains STRING4 >>STRING Find cell whose formula starts with STRING .END LITERAL\?.P<The > command (greater than sign) causes a search to be madeEfrom the current position down and right to the relocate boundary fordFa formula containing the string after the >. The cell found (the firstKone) will become the current cell. The origin is not moved, but the command GOA P_#_# will cause the cell found to become the upper left cell on the .INDEX FORMULA SEARCH Hscreen if desired. This is a handy tool for locating sections of a largeHsheet. The comparison is between the entered string and the formula, butJterminates with the shorter. Therefore, aliasing occasionally occurs. JustIskip past the offending cell and redo to continue to search. The >>STRINGuCform anchors the search at the start of the string so this will notcCoccur, though very short formulas whose beginnings match the searchrstring will match..SKIP 2 .TEST PAGE 20t .INDENT -13 LOOPING__COMMAND__FILES ^?.LITERAL LOOPING COMMAND FILESP7 < Rewind the current AnalytiCalc input fileI .END LITERAL\?.P3 This command will allow a command file to restartp.index Looping@ itself from the beginning. It does so only if the % variable is, positive (permitting some control over it)..P9In the PortaCalc-PC version for VAX, an < found in a cello9equation causes the cell equation to be re-evaluated fromr8the start of the formula, PROVIDED that the "_<" is seen9at the start of one of the cell's equations, AND that thec7% accumulator is greater than 0.0 at that time. This isn6provided to allow use in conjunction with *WF, *P, and8*U XQTCM so that multi-equation formulas can loop, doing9jobs like selecting rows from regions, entering sequences :of numbers, and the like. This provides a compact and fast9looping structure that does not depend on rewinding files externally.o,The looping is limited to at most 100 passesto prevent infinite loops..SKIP 2Y .TEST PAGE 20s .INDENT -1 3 COMMENTS^?.LITERAL COMMENTS * any text .END LITERAL\?.P; Any line beginning with * is treated by AnalytiCalc asd.index Commentst? a comment (except when in the *F mode when it is sought). Thiso? allows you to comment your indirect AnalytiCalc command files.t?It should be mentioned again that in the "Enter-Mostly" mode ofm?operation, inputs beginning with the * character are treated as >comments. Where it is desired to enter an equation that begins>with * (as in function-commands like *U DBTRMFRM ...), use the?command string "/EV#formula" to ensure the input is interpretedn?as an equation. In "Command-Mostly" mode this is not a problem.h.SKIP 2s .TEST PAGE 20 .INDENT -13 PROMPTING__FOR__DATA.LITERAL% READING ARGUMENTS OFF CONSOLEn - Prompt .END LITERAL.P@ The "-" command will print the prompt text on the screen= and await entry of a line of text. This text is stored as upe? to 4 arguments for possible later use in EDit commands. Spacesn= separate input arguments, and no argument may be longer thany.index Console Arguments.index Command Files? 51 characters. This facility is intended for use with indirect4< command files (@ files) which may want to be able to promptC for parts of formulas and then edit them into the command formulasdB for use, or to prompt for parts of later-used Calc commands. Note? that Calc never sees any formulas that are given the A format, > s002PNNN6%! !o they can be prepared in this way, to be used when they are given a numeric format. .INDENT 5e% A suitable - command might be .SKIP 1O -Enter net pay> .INDENT 5RB which would produce the printout (in row 23 of the screen).BREAK Enter net pay>o .INDENT 5e@ and to which one might reply with a number to be entered onto a "template" worksheet.e.PBNOTE: This is a somewhat obsolete construct; in general the _%_%_%?construct is easier to use. It is recommended to use it insteadr@since no subsequent EDit commands need be used to get the valuesinto formulas again..SKIP 3n .INDENT -12 APPLICATION NOTESm.P NOTES:o.P .index Notes.P= In entering numbers, use a decimal (.) to get them tod@ go in correctly. The parser doesn't seem to understand they are.index Number Format# numeric otherwise (even integers).b.P: Note that the default format for numeric output is> F9.2 and that it may be changed if desired. If you set up the; format of a cell, that marks the cell valid and the formato7 is not altered by input defaults, nor the numeric/textn= interpretation of the cell. To put in a lot of labels, then,r4 set up format A using DF and then enter the labels..P> If the sheet's calculations contain forward referencesB (down or right), you may need to give the R (Recalculate) command.index Recalculation.index Calculation Order@ a few times to get proper values. If the values on the sheet do> not stabilize, you probably have a circular reference in your@ formulas and should examine the cells that do not stabilize for the circularity.g.P@ If you enter numbers with exponentials, use +/- in frontA of the E so that AnalytiCalc can tell that the "E4" type stringso.index Number Format> in numbers like "1.3E4" are really exponents, not cell names. That is, .INDENT 5h Don't enterl .INDENT 8a 1.35E4 .INDENT 5. Enter .INDENT 8  1.35E+4c.BREAKC to avoid confusion when cells are relocated. You may use lowercasem5 E also (1.35e4) to avoid confusion in some versions.cE Because the cell relocation logic is somewhat stupid, filenames thateB look like cell names should be avoided too. That is, a sheet that contains a formula like.BREAK @D5.FRM.BREAK7 might, upon getting moved from D5 to F3, be changed tor.BREAK @F3.FRM.BREAK> and if this is not what is desired, it could cause confusion. .INDENT -1.PCWhen using relative cell names (the P_#col_#row forms) in formulas,n<you will often need to enclose them in parentheses to ensure,correct evaluation. Thus, use a formula like.Break (P_#4_#2)+3.4..skip 1l!rather than simply "P_#4_#2+3.4".i.pGInside multi argument functions an extra space should be used sometimesJ2ahead of a range using P_#_# or D_#_# forms. Thus,4.Index Special Considerations with P_# and D_# forms%.Index Caveats on Relative AddressingwE"SUM[P_#3_#0:P_#7_#0]" will sometimes fail to evaluate correctly, but C"SUM[#P_#3_#0:P_#7_#0]" will work as expected. These considerationsiEapply to all naming types beginning in P_# or D_# as well. They arisea0from details of the parsing of these name forms..P@ AnalytiCalc normally will keep track of the lowest and furthestB right cells in use and only ever try to recompute cells that haveD active values there. This may occasionally be invalid where commandF files modify cell values and formulas in ways that are not caught (ifD there are any such; none have been encountered but they may exist).A If problems are suspected, the command RS (for ReSet) will causeeG recalculation to go to the limits of the sheet. There is no command topD bring back the old default since RS sets the maximum cell to be theF last row and last column; save and rerun if this is a problem. Do not& use this command in normal operation..skip 1t 2 INT__CALCi.C,THE CALC OPTION (K) and Functions Available:.PG This describes the CALC option (K) of AnalytiCalc which is alsouB the mathematical engine00:PNJH+%O-%TADATADATA used for expression evaluation except for.index Interactive Calculatoro, multi-argument functions and IF statements. .INDENT -1 3 OVERVIEW.PI CALC is a calculator designed to evaluate arithmetic expressions. In itsrO basic form, expression evaluation is similar to that used by ANSI FORTRAN withyM calculations performed on INTEGER*4 and REAL*8 constants. Variables may alsoSO be invoked but are limited to single alphabetic characters. It is assumed thatNN the reader is familiar with FORTRAN data types, constants, expression syntax,G operator precedence, and the syntax for assigning values to variables.tG Additional features include octal, hexadecimal, and multiple precisionCN arithmetic capabilities. Commonly used commands and expressions can be placed( in a file and executed when convenient..skip 1t .INDENT -1 3 ENTERING.P8 To enter Calc, use the K command of AnalytiCalc." Calc will then prompt as follows:.SKIP 1c .INDENT 7o CALC> .SKIP 1l Try typinge.SKIP 1t .INDENT 7o 123+456f.SKIP 1 E followed by a carriage return. CALC will evaluate the expression ando output the answer .INDENT 7D 579 .SKIP 1sA It then prompts for further input. Try other expressions such asl.LITERAL8 12.0 - 99. (answer=-87.00000000000000)8 -(-32767+(6-2)**8-(512/(409-401))) (answer=-32705)8 3*5/7 (answer=2)8 3*(5/7) (answer=0) .END LITERAL.P! Mixed mode is legal, for exampley.SKIP 1o .INDENT 7n2 1977/50. is evaluated as 39.54000000000000.SKIP 2,8 Reals may be expressed using D or E format. For example.SKIP 1 .INDENT 7p. 1.2E10*2.D0**3-1.D-8 is evaluated as.SKIP 1r .INDENT 7h 0.95999999999999992D+11t .INDENT -13 ACCUMULATORS.PB Variables may also be used to retain values for later use.Q Variables may be the letters A through Z, or any AnalytiCalc physical sheet cellJM name. As in FORTRAN, variable A through H and O thru Z default to type real,uM I thru N to type integer. To set I to a value use the usual FORTRAN syntax,o for example:s.SKIP 1n .INDENT 7e I=2**10-1 .SKIP 1hJ Try typing the single character 'I'. CALC will respond with its value. We- can now use I in various expressions such asp.SKIP 1l .INDENT 7o J=I-I/3*3O.PI % is a special variable that retains the value of the last expressioneJ evaluated. For example, to successively add up the numbers 1, 2, 3, 4, 5,.index Special AccumulatorsT and 6 we could enter .LITERAL 1 %+2p %+3t %+4D %+5? %+6 .END LITERAL.PO Note that you can examine the value of the variables by typing the appropriate O single character followed by a carriage return. Such an examination does nots change the value of %.i.skip 1 .INDENT -1 3 EXITINGA.P To exit from CALC, typee.SKIP 1, .INDENT 7t *E (or *EXIT) .INDENT 4o or *S (or *STOP).SKIP 1tQ This will return you to AnalytiCalc. (To exit AnalytiCalc, use the X command.)a .INDENT -1 3 FUNCTIONSd.C-SPECIAL FUNCTIONS-s.PL CALC recognizes a variety of special functions. For example, to calculate" the square root of 2, we can type.SKIP 1m .INDENT 7 SQRT(2.).SKIP 1s. CALC responds with the value 1.41421356237310.PF Each function may have an expression for its argument. For example,.P A=2.0*SQRT(ALOG(9.)+3.).SKIP 1d sets A to 4.55948443459838l.P2 The following special functions are available:.SKIP 1d.index Functions^?.LITERAL3 FUNCT NAME ARG TYPE FUNCT VALUE DESCRIPTIONC8 -------------------------------------------------------5 ABS REAL REAL absolute valueo5 DABS REAL REAL absolute value5 IABS INTEGER INTEGER absolute value 8 IFIX REAL INTEGER REAL to INT conv.6 AINT REAL REAL REAL truncation8 INT REAL INTEGER REAL 00BPNNN6%! !to INT conv.8 IDINT REAL INTEGER REAL to INT conv.+ EXP REAL REAL e**Xo+ DEXP REAL REAL e**Xy8 ALOG REAL REAL natural logarithm8 DLOG REAL REAL natural logarithm8 ALOG10 REAL REAL logarithm base 108 DLOG10 REAL REAL logarithm base 102 SQRT REAL REAL square root2 DSQRT REAL REAL square root9 SIN REAL REAL trigonometric sineo9 DSIN REAL REAL trigonometric sinep3 COS REAL REAL trig. cosinet3 DCOS REAL REAL trig. cosineo9 TANH REAL REAL hyperbolic tangent?9 DTANH REAL REAL hyperbolic tangent 2 ATAN REAL REAL arc tangent2 DATAN REAL REAL arc tangent .END LITERAL\?.skip 1o .INDENT -13 OCTAL__OR__HEX.C"-WORKING IN OCTAL AND HEXADECIMAL-.PB You may change the base used to specify constants by using the .index Octal.index Hexadecimal *B command. Legal forms are.SKIP 1s.LITERAL command action ------- ------3 *B displays current default baseh3 *B 8 changes default base to octali0 *B 10 changes default base to 100 *B 16 changes default base to 16 .END LITERAL.PB Suppose we have changed the default base to octal. Then adding.SKIP 1D .INDENT 7O 7 + 1T.SKIP 1  we obtain the resultf.SKIP 1 .INDENT 7a 00000000010 (BASE 8).SKIP 1e4 If the default base is hexadecimal, we can enter.SKIP 1y .INDENT 7  9 + 1.SKIP 1e which is evaluated as.SKIP 1t .INDENT 7  0000000A (BASE 16) .SKIP 1l Suppose we have assigned .INDENT 7L A=1.BREAK thenm .INDENT 7 1+A.BREAK gives .INDENT 7m 2.000000000000000.SKIP 1xJ even when the default base is 16. If we wish to add the hexadecimal digit 'A' to 1, enter.SKIP 1e .INDENT 7 1+0A .SKIP 1m We now obtain the desired.SKIP 1o .INDENT 7  0000000B (BASE 16)o.PH This leading 0 is only necessary when the first hexadecimal digit is greater than 9..PJ If constants are entered with digits that are not legal for the baseJ being used, the entire number is converted using a more appropriate base.? For example, if we have set the default base to octal and typen .INDENT 7d 1+9.PI the 9 is not an octal number so it is converted to base 10. If a base 16u3 number is involved, the result will be in base 16.e.PH You may temporarily change the base for a single integer constant by preceeding it withr.SKIP 1 .INDENT 7n _^8 for octalt .INDENT 7u _^10 for base 10e .INDENT 7  _^16 for base 16 .SKIP 1V( For example, if the default base is 10, .INDENT 7o 100+_^840.BREAK gives .INDENT 7d 132.SKIP 1t a base 10 integer..SKIP 1E .INDENT 7N I=100+_^1610T.SKIP 1  gives .INDENT 7 116.SKIP 1  also a base 10 integer..PL Note that the '_^' can only be used to specify the base of constants and- that expressions such as _^16I are illegal. .PJ To declare variables to be integers of a specific base, we can use the commandsi.LITERAL *INTEGER (base 10) *OCTAL (base 8)s *HEX (base 16) .END LITERAL .index Octal.index Hexadecimal for example,p.LITERAL- *INTEGER A declares variable A to be at" base 10 integer.. *HEX B,Z,F declares variables B, Z, and+ F to be base 16 integers.f. *DECIMAL lists all the variables that* have been declared to be" of type DECIMAL. .END LITERAL.SKIP 1 .PK To summarize, there are three distinct ways of making base declarationslJ when 00JPNJH+%O-%TADATADATAusing CALC. The first is to use the *B command to designate the baseJ default value. This is used to determine the base for constants when theyG occur in expressions. It does not in any way influence the type of anyoB variables found in an expression. The only way to change the type of a variable( is with a specific CALC command such as .INDENT 7e *INTEGER A,B.PO Note that the *INTEGER command can be used to set types for AnalytiCalcTN cells. However, exercise care in doing so that your display formats match the new type..BREAK= Suppose for example that the default base is 10 and we enter .INDENT 7T *OCTAL A .INDENT 7 A=100g.SKIP 1a then CALC responds with .INDENT 7r 00000000144 (BASE 8).PC Finally, the last way to change a base is to use the explicit basef' specifiers for a constant, for example).SKIP 1o .INDENT 5e _^10 123i .INDENT 5m _^8 777 .INDENT 5A _^16 AB .INDENT -1 3 MULTI__PRECe.C-MULTIPLE PRECISION-.PI Normally integer arithmetic (base 8, 10, and 16) is done internally withgN INTEGER*4 variables. To allow for larger numbers, CALC has multiple precision.index Multiple Precisionw1 capabilities that allow numbers up to 99 digits c3(20 in AnalytiCalc-PC) to be manipulated. ConstantscJ are converted to a multiple precision data type when the number of digitsO specified exceeds a certain value. This value depends upon the specified base.tP Leading zeroes are included in this count and can be used to force constants to be of type multiple precision..SKIP 1O.LITERAL4 base max. number of digits before conversion4 ---- --------------------------------------- 8 10 10 9 16 7 .END LITERAL.P; Suppose we type (with the default base of 10) the numberl .INDENT 7 1234567890.BREAK then CALC echoes with .INDENT 7q 1,234,567,890u .INDENT 7  (BASE 10).SKIP 1 D The commas indicate that % now has type multiple precision base 10. Similarly, typing .INDENT 7  1234ABCD.SKIP 1r results int.SKIP 1 .INDENT 7r 1234,ABCDn .INDENT 7n (BASE 16).SKIP 1sO Notice that base 16 multiple precision numbers are separated by commas every 4i2 digits, octal and base 10 numbers every 3 digits..PK You may perform the usual operations of addition, subtraction, multipli-dK cation, division, and exponentiation. As of version 1.0, exponentiation ofeN a multiple precision number may only be to a non-negative integral power. To2 declare variables of type multiple precision, use.LITERAL/ *M8 (multiple precision base 8)A0 *M10 (multiple precision base 10)0 *M16 (multiple precision base 16) .END LITERAL.SKIP 1y for example,a .INDENT 7m@ *M8 A,B ####declares A and B to be multiple precision.BREAK ##############octal variables. .SKIP 1* Then typing .INDENT 7  A=32768.SKIP 1i results in CALC responding with.SKIP 1* .INDENT 7c 100,000 .INDENT 7M (BASE 8)m.PM The accumulators in Calc (variables A-Z and %) all may take on or useoM multiple precision values. However, the spreadsheet cells may not; they must1O fit in 8 bytes (double precision real) or 4 bytes if integer. Accumulators may 7 however be used globally in a sheet for large numbers.iL Note however that certain accumulators have special purposes. Accumulator ZH is used in some substitution commands. Accumulators X and Y get currentI cell locations at each command (column, row+1). Accumulators T, U, and VtG are used to return year, month, and day in the *U IDATE function. AlsosI the % accumulator is the value cell for all operations and should not behN treated globally. Other accumulators may have meanings for user modificationsF of the program as well, though by convention the early ones should be left alone..skip 1 .INDENT -13 CALC__COMMANDS.C-ADDITIONAL COMMANDS- .P00RPNNN6%! !I All commands to CALC (as distinguished from expressions to be evaluated)r.index Other FunctionsJ begin with an asterisk. To obtain a list of all possible commands, type aO question mark followed by a carriage return. Most of the commands have alreadyEL been described. The following section gives an explanation of the remainingJ commands. (Some additional ones are described in the AnalytiCalc manual.) .TEST PAGE 20r.SKIP 1e.LITERAL" COMMAND DESCRIPTION" ------- ----------- .END LITERAL.FILL .LEFT MARGIN 15d .INDENT -13eG *@filename ####Where filename is the name of a file of CALC commands.OD CALC reads the file and executes the commands. Up toC 5 nested calls can be made. Recursive calls are notnF allowed. CALC prompts with CALC before each command? line is executed, where n is the calling level.nD You may optionally follow the file name with a blankG followed by a single variable name (a single alphabeticiF character or %). CALC will then execute the file untilH the value of that variable is zero or negative. The testH of this variable is made before the file is executed andH not during execution of commands within the file. If theD variable's value is not positive when the command isF initially encountered, the file will not be opened forG execution. See the section on command file examples fore( ways to use this option. .INDENT -13iH *ASCII ####Declares a list of variables to be of type ASCII. UsefulF when decoding ASCII characters. For example, if we set2 A to be of type ASCII, then typing A=77F results in the character 'M' being output. The inverseF operation is the single quote. It allows us to specify@ a single ASCII constant. For example, if we type.BREAK 'M.BREAKC then the character 'M' is echoed and indicates thatiG % holds that character and has data type ASCII. SupposeeM that the variable I has data type INTEGER. Then we canKM output the base 10 code for the ASCII character 'M' byB entering .BREAK$ I='M.BREAKL which results in 77 being output. Notice that you mayO not be able to enter certain control characters that are M intercepted by your operating system. Characters whose.H value is less than 32. are output by printing theP character '_^' followed by the equivalent ASCII character; of that number plus 32. For example,A.BREAK$ A=10.BREAK! results in#.BREAK# _^*e.BREAKP being output since 42 is the ASCII code for the characterO '*'. See Appendix A for a table of the characters outputkJ by CALC to represent such non-printable characters. .INDENT -13lM *C ####COMMENT line. The characters that follow are ignored byaL CALC. This is useful when documenting files containing% CALC commands.n .INDENT -13yK *N ####NOVIEW. Prevents CALC from outputting the value of thesL expressions evaluated. This is especially useful whenO executing files containing CALC commands that initializen.index Functions.index Other FunctionsF variables to special values. Equivalent to *V 1 .INDENT -13H> *V ####VIEW. Controls CALC's printing options:.SKIP 1C.LITERAL command output classs -------- --------------i00ZPNJH+%O-%TADATADATA *V 0 error messages *V 1 error messages command lines read from files *V 2 error messages" value of expressions evaluatedI *V 3 error messages command lines read from a fileu" value of expressions evaluatedm *V same as *V 3 .END LITERAL.index View Controla.SKIP 1 4The default setting is *V 3. Notice that other legal4forms are *VIEW 1 and *V2. You may want to include a/command *V 0 somewhere before using any commandv.files to avoid diagnostic printouts if you useindirect cell files much.r .INDENT -13hM *R ####READ. Allows a single line to be read from the terminal. K Useful in files of CALC commands to allow additional N commands to be entered (like *S to exit from that file)K or simply as a way to halt terminal output until the 6 carriage return key is pressed. .INDENT -13uN *REAL ####declares specified variables to be REAL*8. When the valueP of such variables are output, FORTRAN's D format is used. .INDENT -13L *DECIMAL ####Declares specified variables to be REAL*8. When the valueP of such variables are output, FORTRAN's F format is used.E Variables A-H and O-Z default to type DECIMAL. .INDENT -13# *S ####STOP. Same as *ES .INDENT -13 J *E ####EXIT. Terminates CALC session unless it is used withinM a file of CALC commands. In this case, CALC closes the.@ file and continues with the next command. .INDENT -139H *Z ####ZERO. Zeroes all variables except %. Data types are not changed.s .INDENT -13mL *G ######*G V1,V2 (where V1 and V2 are cell or accumulator names).index Indirect AddressingL will evaluate V1 and V2 as the column and row numbers,O on the physical sheet, of the desired cell. The addressed I cell's value is retrieved and used as the resultingC= number. This is used for lookup tables.r .INDENT -13aC *W ###### Takes the value at the current cell and writesvM it out to the formula as a numeric (floating), .index FreezeyN value. The current cell may have been modifiedH temporarily by the *P command. This willC overwrite the formula at that cell.lEThe *WF command stores the cell similarly, but uses the format of thewMcurrent cell instead of the D32.25 format used for *W. This makes it possible%Lto make the cell contents match the display exactly. Extra spaces introduced'may be removed via the ED#/#// command.DIt is a good ideao@to use a command like "E#_%=P_#_#\*WF" rather than just E#*WF to4ensure the % accumulator REALLY is the current cell. .INDENT -13E *P ######The *P command resets the current cell coordinatei.index Temporary MovelL from within a cell (until the next cell is evaluated4 only). It has several forms: .INDENT -2G *P - By itself, *P causes Calc to prompt forG the new physical column and row number. .INDENT -2L *P V1 - This moves the current location to the namedL cell where V1 is the cell name (e.g. A5, H2) .INDENT -2N *P@ V1,V2 - This uses V1 and V2 (cell names) as columnP and row numbers and changes the current physicalM cell position to that defined by the contents G of cells V1 and V2. This gives completeTM addres00bPNNN6%! !sing of the sheet from within any cell. .INDENT -13RM *F #######*F Label - If the value in % is positive and nonzeroEK this command rewinds the input file for thel.index Command Files.index Looping.index Conditional MotionmN AnalytiCalc @ command (not the Calc @ command)N and seeks a line beginning with the charactersP *CLabel (where "label" is what you put after theM *F command). This allows Calc commands insidetG a cell to direct outside command entry. .INDENT -13 N *J #######*J Label - This command behaves as the *F command but.index Command Files.index Looping.index Conditional MotionoO operates on the file used by the Calc @ commandEQ rather than the AnalytiCalc one. Thus, conditions_I in Calc program files may be implemented.e .INDENT -13  *QF .INDENT -13yK *QW #######The *QF (Float) or *QW (write) commands are used toS.index Command Files.index Data Base AccessiH examine sequential files created outsideJ AnalytiCalc and return values or formulas./ Their syntax is .INDENT -4? *QF filename _?key1_? _?key2_? e .INDENT -7? or *QW filename _?key1_? _?key2_? .BREAK: where _?key2_? is optional.BREAKI l and m are delimiter characters for start andlF end of the parts of the selected records toI extract (defaults to first part of the record)lJ filename is just the file specifier in the host# OS.sK operation is that the file is searched fromsI the beginning for records containing key1eI (and key2 if specified) and then the partoN of the record between character l and characterN m (delimiter characters, which may be the sameK as for example 2 commas) is extracted. ThateI part of the record is then either FloatedwN by converting to a floating point number usingN a wide Floating Point format specifier (in *QF)N or read in and made the current cell's formulaN between those delimiters (in the case of *QW).L Records may not be over 128 characters long.N This command would be used to extract data fromD a database or word processing files..PL The first key will begin at the start of the lineL for each file if it's first character is theI _` (accent grave) character. Then the keyiJ searched for is sought always at the startD of the line, minus the _` character..PM The delimiters may contain 3 characters to specify(J positional fields. In this case, the firstI delimiter character is _` (again) and the G second 2 are encoded start location andvG length fields. They are just the binaryIF values of these + 32 (starting from 1)@ to turn them to printable ASCII..PGVariant forms are *QFK, *QWK (which keep the file open after opening itaAso that subseq00jPNJH+%O-%TADATADATAuent *QFN or *QWN or *QFC or *QWC commands can readeEsequentially down the file), or the mentioned *QFN and *QWN commands,rBwhich read the file from the Next record (leaving it open for moreCNext searches) and the *QFC or *QWC variants which perform the *QFNl@type action but close the file on completion. The file spec mustAbe present in *QFN, *QWN, *QFC, and *QWC commands, but is ignoredo<there. If the search fails, the % accumulator is returned asB-999999. and on *QW type operations where there is no failure, the@% accumulator returns a value of 1.0 to indicate success. In the?*QF commands, the value returned is in the file searched. TheseLAreturn values occur regardless of the variant. Note that the sameElogical unit (4) is used for all *Q class operations, so a subsequent @*QF or *QW will close the unit after a string of *QN searches of@indeterminate length. A request that searches the null device isBa simple way to ensure the unit is closed. It is possible to leave=it open and interfere with some other operations, so the user(Ais cautioned to pay attention to this aspect of program operation $when designing a sheet that uses it. .INDENT -13iM *U funct args #####The *U command is a means to allow easy user additioniJ to the AnalytiCalc function repertoire. It.index Other Functions.index Matrix AlgebrarE passes the command line to the USRFCT G subroutine which is set up to recognizebI up to 5-letter function names (edit it toLE add what you need) and to process the F functions called. The parsing is up toH you. Note that the VARSCN routine may beE called to convert variable names into ? coordinates in the XVBLS array. .PFunctions supplied include: .INDENT -5GDATE functions operating on dates: IDATE, YRMOD, JDATE, JTOCH, and DATEsIwhich all return or convert between Julian dates (day since a fixed date)Dand year/month/day binary, and ASCII dates. The auxiliary functions BWKDYS and WKDIN also give weekdays (Monday through Friday) betweenAtwo Julian dates, or the end Julian date given a start date and a number of weekdays.g .INDENT -5EMATRIX functions which handle matrix math: MTXEQ, MOVEV, MDET, MPROD,iCMADDV, MSUBV, MMPYT, and MMPYC. These handle all variants of normaltAmatrix algebra. MMPYT is particularly handy for producing the dotiIproduct of 2 rows or columns (sum of products of corresponding elements).FNote that matrices must reside in the prime area in the AnalytiCalc-PCGversion of PortaCalc/AnalytiCalc. That limits them to columns A throughcECA and rows 1 to 400 on VAX if built the default way. (Not all matrix 'routines are so limited, but MTXEQ is.) .INDENT -5JEQUATION SOLUTION via the VARY function, which allows up to 8 accumulatorsHto vary to iteratively search for solutions to equations anywhere on thesheet. .INDENT -5JUTILITY functions, including STRVL, which converts formula text to numericJvalues, XQTCM which executes commands from inside formulas, and HERE whichKreturns current location and some extra sheet status information. Also, the GFFTFW and FFTRV functions perform forward and reverse FFT (Fast FourierrCTransforms) on data, and the LINEF function fits a straight line toc>a given data range, returning slope, intercept, and fit error..SKIP 2eDETAILS:.P A version of USRFCT is suppliedwhich can call the systemt)to return the system month, day, and year )in accumulators T, U, and V respectively.t'The % returns with a value of yymmdd tos'permit easier sorting too. However, anyr*functions desired may be added in this way,and the results extracted in whatever way is(convenient. The yymmdd value returned is6a Julian date based on 1/1/1980, in the % accumulator.This is the IDATE() function. .P-There are 4 other date functions supported inP00rPNNN6%! !8AnalytiCalc. These permit conversion between ASCII dates0displayed as YY/MM/DD and Julian dates, or back..PThe call.SKIP 1b*U YRMOD VY,VM,VDp.SKIP 1oBreturns the Julian date (in %) computed from the Year (in VY), theAmonth (in VM) and the day (in VD), where VY, VM, and VD are sheetn2cells. These may be the result of date arithmetic..PThe call.SKIP 1e *U JDATE Var.SKIP 1tDassumes the formula in cell Var (any spreadsheet cell name) contains?a date string in the format YY/MM/DD. It reads this formula andLFconverts the date to a Julian date, returning it in the % accumulator..PThe call.SKIP 1 *U JTOCH Jul,Var.SKIP 1 Bassumes that variable Jul (any spreadsheet cell) contains a Julian?date and changes it into an ASCII string in the cell whose name @is in the Var position here. This wipes out any previous formula=in that cell, though it does not alter display format or typev@information. The T, U, and V accumulators return with the month,day, and year on return..PThe call.SKIP 1v*U DATE VY,VM,VD,Var.SKIP 1iAuses VY, VM, and VD as year, month and day, and computes a JulianeAdate from them. It then composes an ASCII string of form YY/MM/DDi0for that date and stores in the formula for Var..P=The use of Julian dates is made because the difference of twoe<Julian dates is precisely the number of days between the two>dates. These functions are designed to make date labels easierto do..PThe call.SKIP 1f*U WKDYS D1,D2.SKIP 1rCcomputes the number of workdays between Julian dates D1 and D2 just >as taking the difference of two Julian dates gives differencesbetween calendar dates in days.f.PThe call.SKIP 1e*U WKDIN D1,N1.SKIP 1 Freturns a Julian date that is N1 work days after the date in D1, whichGmust be a start Julian date. The WKDIN function is in a sense a partialC"inverse" of WKDYS since it allows one to go from workday intervalse>back to Julian (i.e., calendar) dates. Only the VAX version ofCAnalytiCalc-PC supports WKDYS and WKDIN functions at this point for reasons of space. .PBThere are actually 4 supplied USRFCT routines. The larger of theseDare also able to solve matrix equations (this demonstrates how otherEprograms may be integrated with the package). The function solves theh?matrix equation AX=B where A is a square matrix and X and B are 7rectangular ones, A being n by n and X, B being n by m. .P)The call formats for IDATE and MTXEQU are .SKIP 1 *U IDATE().SKIP 1*U MTXEQ(AA:AA,XX:XX,BB:BB)r.SKIP 1 Jwhere the notation AA:AA means two cells at the upper left and lower rightCedges of matrix A (e.g. B2:C3 for the 2 X 2 matrix so defined), andtEthe XX:XX and BB:BB notation means the same for the X and B matrices. IThis capability is used to solve systems of linear simultaneous equations Eand does so with extreme speed. Note however that errors can occur if Gthe A matrix is singular. The cell returns 0 if the matrix was singular Cand does not solve the equation then; 1 is returned if the equationB was solved. .PINote that matrix A is modified by the call, so a reasonable precaution is Lto ensure that the matrix is reset by AnalytiCalc prior to each computation.This may be done by: .INDENT -4G1. Placing the MTXEQ call in a cell left and down from the A matrix andc .INDENT -4H2. Ensuring there are some alphas in each entry in matrix A. This may beFdone by placing a \*C#FRC#RECALC into each cell. This is a comment andKwill not affect the number. However because it contains alphas, AnalytiCalc1@will then re-compute each number whenever the sheet is computed..Por.PCUsing the MOVEV function to copy the real A matrix onto the workinguAone before the MTXEQU call every time. (This is the efficient waycFto do it, as recalculating the constants every time wastes resources.).PBTo have the X matrix cells displayed without being modified, it isKnecessary to have the cells' formulas contain a self-reference. The easiestHway to achieve this is to place the "formula" P#0#0 into each cell. ThisEef00zPNJH+%O-%TADATADATAfectively will cause display of whatever number is there. A similar Btechnique may be used to set up matrix A, where the real matrix isHelsewhere and formulas in A are just the P#0#0 type. The real matrix mayBcontain formulas like "34.65\D12=%" to set up the desired contentsChere AND to reset cell D12 (in the work area) to the entered value.o2The B matrix is not modified by the MTXEQ routine.HA simpler way to handle the problem is to use the MOVEV function (below)Eto copy the desired cells to a scratch A matrix from wherever it was,wIso the scratch matrix may be destroyed without impact on display. If thisoFis done, the source of the A matrix need not be specially bollixed up..SKIP 1h*U MOVEV mtxa,mtxb.SKIP 1ADwhere mtxa and mtxb are matrix specifiers. This command moves values2from mtxa to mtxb (useful prior to calling MTXEQ)..SKIP 1 *U MDET mtx .SKIP 1mKThis function computes and returns the determinant of matrix mtx (specifiedoFas v1:v2 where v1 and v2 are upper left and lower right corners of thematrix)..SKIP 1n.index Matrix AlgebraD.SKIP 1*U MPROD A,B,C.SKIP 1aJThis function will multiply matrix A by matrix B giving matrix C, provided%that their dimensions are compatible.s.SKIP 1 *U MADDV A,B,C.SKIP 1LThis function adds matrix A to matrix B and stores in matrix C. All matricesFmust have the same dimensions. It can be used for adding values in anyGpairs of rectangular regions much faster than a series of sum functionsC would permit.D.SKIP 1*U MSUBV A,B,C.SKIP 1SNThis function subtracts matrix B from matrix A leaving the result in matrix C;Fas above, matrix dimensions must be the same. It also is far faster inJsubtracting rectangular regions than numerous separate equations would be..SKIP 1x*U MMPYT A,B,C.SKIP 19MThis function multiplies matrix A-transpose by matrix B and stores the result Lin matrix C; dimensions must be compatible. Also, as in MPROD, matrix C mustHnot be the same as either A or B. In ordinary use, this can be handy forEdot products. That is, suppose you have two column parts, G10:G50 andbGR20:R60 and you want to form the sum (G10*R20 + G11*R21 + G12*R22 + ...hJ+ G50*R60) for later use. In many systems, you need to make another columnEof the G10*R20, etc. terms and add it up. Here, you can use the MMPYTl function as .break *U#MMPYT#G10:G50,R20:R60,G51:G51.breakto form the sum and store Bit in cell G51. (It can be stored anywhere; G51 is chosen just forBillustration.) If you have a row and a column to multiply, you useFthe MPROD function instead of MMPYT for this. Since this is a built inIfunction, it can be orders of magnitude faster than the separate - columnr approach.o.SKIP 1t*U MMPYC A,B,K.SKIP 1nKThis function multiplies every element of matrix A by constant K (a cell ordKaccumulator) and stores the result in matrix B. This function is FAR fastercJthan separately multiplying many cells. If you want to scale a rectangularJregion of the sheet by some constant, this function can be used to quicklyFdo so, multiplying each cell in the region by the constant in cell or Faccumulator K (K can be ANY cell or accumulator). Wherever you need toAadjust data by some fraction, this function should be used as the fastest way of doing it..SKIP 2i*U VARY X,A,W,I,P;Q;R;S;T;U;V;W .SKIP 1 &(Equation Solving by Iterative Search).SKIP 121This function allows AnalytiCalc to automaticallysHsearch for solutions to equations over up to 8 dimensions. The operation.index Equation SolvingI.index Goal Seeking .index Solving For VariablesEis that the accumulators named in the fields shown as P;Q;R;S;T;U;V;WlJ(one to 8 may be specified, only one is required) are varied by a fractionFW about their initial values (later scaled down by the gradient of the .index VARY Ichange in X) to attempt to get accumulator or cell X to equal accumulator Ior cell A. This is done for I iterations, where I is another accumulator. CCare should be taken that I is not initialized in every pass of the Cspreadsheet, but at mo00PNNN6%! !st 20 iterations will be done in any one passDFas a safeguard in any case. The accumulators given must be independentCvariables; set dependent ones or normalization conditions elsewheres>on the sheet for use with calculations. Any function or set ofCfunctions can be entered and the program will step the accumulatorslBto attempt to find a (local) minimum of the value of (X-A) where XCand A may be either accumulators or cells. The other arguments must @be accumulators (i.e., named A through Z, though prior automaticFuse of X, Y, and Z may conflict if these are used). This function will@allow iterative solutions to be found for situations not soluble=directly, with stops for inspection every several iterations.hIThe TE command may be used conveniently to set the accumulator designatedi1as I here without need to modify a cell to do so. .PNThe VARY function is initialized by a negative or 0 value in the I accumulatorL(the LOGICAL one, not I itself). The equations controlling the variation mayHappear anywhere in the sheet, and variation begins at the initial valuesFset into the varying ACs (P-W in the illustration). Both the logical X%and A accumulators may vary, as well.d.PEAs an example, let us suppose we want to solve the equation A=SQRT(B)eBfor B, given A. Humans would of course just square both sides, butKin an iterative solution, we would vary B until we found A. The method used Ghere performs the variations intelligently so that we actually approach Gthe correct value asymptotically; the signal we have a solution is thatythe variation stops.;To set this up, we might enter the following equations in anArow or column (or anywhere actually; order doesn't matter) in thetsheet:.SKIP 1l-I=-1._\A=55._\P=12._\*C Set up to initializef.BREAK*############with negative I, initial guess.BREAK&############12., and desired value 55..BREAKW=1._\*C Set "step scale"m.BREAK(P+0._\*C Display P accumulator on screen.BREAK*B=SQRT(P)_\*C Enter equation relating B, P.BREAK*U VARY B,A,W,I,P .SKIP 1i=Now we go back to the first equation, since the desired value ?in A (55.) has been set and the initial guess for SQRT(55.) hasd>been entered (12.) and we may now set the number of iterations7desired to drive the calculations to solve the equation .BREAKB=A (which amounts to B=55.).BREAK7(which is what the VARY function does), by varying P to 6control B. The idea here is that we can control P, but9B is an ARBITRARY function of P (and possibly other AC's)e9and we will vary the independent AC's like P to find whato9THEY need to be to arrive at the desired dependent "goal" 9values. Here we are solving B=A, or B=55., or SQRT(P)=55. and finding P in this way..P"In the first equation we now enter.SKIP 1 )I=10._\*C Enter some number of iterationsi.BREAK)##########to search for between displays. .SKIP 1 <and for every display, we will see how P varies since we are9displaying P in one of the cells. It will converge on ther:square root of 55. (which is 7.416) after some iterations.?We may just use the TE command instead to set the I accumulatore<to avoid some of the complexity of messing with cells on thesheet..P<Note that we could have more than just accumulator P varying<and could have much more complex functions. Also, both A and9B could be functions of any or all of these accumulators.tAMatrix computations may be used, or any other functions availableeBthrough the spreadsheet, and the equations may be entered anywhereAon the sheet. In this way, some quite powerful sorts of solutionsdto equations may be found.@The philosophy of this is that if you know enough algebra to set@up the equations for a problem (the hard part), you can set them@up so the spreadsheet can solve them directly yourself, if there@is a simple way to do so. If there isn't, and if you can expressAthe desired result as an equation, the AnalytiCalc program can dotAiterative searching to try and solve the problem for you, varyingc?up to 8 accumulators to do so. If you really want to00PNJH+%O-%TADATADATA search forr?a situation in which several cells are close to several others,i=just make up an additional cell that is the "summed distance"f?between the desired targets. For example, if you want to arrive)Oat a solution where cell B20 should approach B30, D25 should approach D35, and Bcell X15 should approach cell AQ5, make 2 new cells. One should be7zero, and the other will have a formula that looks liker.SKIP 1 .indent -12a;(B20-B30)*(B20-B30)+(D25-D35)*(D25*D35)+(X15-AQ5)*(X15-AQ5) .SKIP 1nBor a simple variation, perhaps using **2 instead of multiplying asCwas done here. This will produce the desired results, PROVIDED thatdCthe cells depend somehow on the accumulator values you are varying.e .INDENT -4;There are 2 more functions for the USRFCT.F40 sources whichu permit accessW!.index Indirect Command Execution 7to formulae and allow more flexible command procedures.sAThese functions exist only in a variant of AnalytiCalc-VM, not ine=the versions of AnalytiCalc using work files. This is becausee@support in the XQTCMD module was needed for the XQTCM functions..PBThe function *U#XQTCM#command will execute the command (terminatedCby the end-of-line), with any command except X or K permitted, fromeEinside a cell. This allows command files driven from cells to controlfmoving data, etc. AIt is suggested that cells containing these references in command Bfiles have the last command in the file set the cell format to [A]@so that the command execution will be once only, unless repeatedBcommands are desired. This function may not be present on overlaidversions of PortaCalc..P@The function "*U#STRVL#V1,start;len" will return a value that isCmade from up to 8 characters in the FORMULA of cell V1 (where V1 is .index Formula Value Accesst.index Sorting.index Sorting, by ASCIIGany cell name), starting at character "start" and for "len" characters. AThe value is computed such that a numeric sort on these values ispJequivalent to an alpha sort on the formulas; the characters are multipliedEfrom the left by 128 and the next ASCII value is added. This functiontAmay be combined with the DS commands to sort on text, or with thed?XQTCM functionality to drive a slower but more thorough sort onsvalues.t.PFThe function "*U#HERE" will return the current location on the matrix.FThe normal result is a hash-coded address of the physical cell pointedFto, in the % accumulator, and the column and row in accumulators T andFU respectively. The row number is up by 1 (as the X,Y accumulators are.index Self LocationFat start of cell evaluation) to account for accumulator storage. Also,>the flags for manual display update and manual recalculate areCreturned in accumulator V. The 4 bit being set means manual view ish5set on, and the 2 bit means manual recalculate is on.4>The W and Y accumulators return the current maximum column andGrow used also. These are designed to make it easy to use the IR commandY0(Inplace Relocate) to go over only cells in use..PDThe function *U FFTFW and the function *U FFTRV perform Fast FourierATransforms in the forward and reverse (inverse) directions on thefDgiven range of data. The largest power of 2 of data points less thanEor equal to the given range is used and a one-dimensional real FFT ish?performed. This is useful for digital filters and the like. ThefAinput values are replaced by their FFT so it is best to work withdEvalues copied from the real inputs (use the *U MOVEV function to moventhe values before use). .PCThe function *U LINEF Vy:Vy,Vx:Vx (with the Vx range optional) fitscGa line to the input range. It will use the Vx range as the X coordinatecFif supplied or will compute a range if none is supplied using the cellAcoordinates. It computes the line equation Y=mX+B and returns the Bslope m in accumulator U and the intercept B in accumulator T. TheDvalue returned in accumulator % from the function is the Y fit errorEof the line fit. Accumulator W returns the correlation coefficient ofrthe X and Y values also. .INDENT -13i00PNNN6%! ! *XV filename V1 .INDENT -13oN *XF filename V1 #######The *X class commands are for sheet linkages..BREAKF *XF loads a Formula from another savedD spreadsheet, while *XV loads a ValueJ (normally from a NUMERICALLY saved sheet).I They look in the given file for the named I variable in the saved sheet and place thetH formula or value in the current positionJ of the current sheet. Note the *P commands.index Access to Saved SheetshJ may be used to reset the position if it isL desired not to overwrite the current formulaN in the case of the *XF command; the *XV commandK assumes the sheet was saved numerically and K does not modify the formula. Note that eachrJ *X class command gets 1 number or formula..FILLe.LEFT MARGIN 1.SKIP 2s.C-ADDITIONAL FEATURES-Y.PK CALC is similar to FORTRAN with respect to operator precedence. Blanks may Q occur anywhere on a command line without effect except after a single quote markoI used to specify a single ASCII character constant. CALC extends the ANSIb* FORTRAN syntax by allowing the following:.index Other Featuresr.SKIP 2s.LEFT MARGIN 10r .INDENT -36 1. multiple assignments on one line, for example.SKIP 1u I=J=K=812 .INDENT -35 2. Unary + and unary - are allowed, for example.BREAK 2*-3 .BREAK +2+-7.BREAK -2**4.BREAKG are all legal. The last expression evaluates to 16 because the = unary - has a higher precedence than exponentiation.f .INDENT -3A 3. exponentiation may be indicated by using ! as well as **s.LEFT MARGIN 1.PH If any of the declarations are entered (such as *INTEGER or *M8) and noO argument to this command is given, then CALC will print out the variables thatlK have been assigned that data type. Note that a variable can be assigned tobO different data types using such commands and still not be assigned a value. IfeJ you attempt to output the value of such a variable, an error message will result..SKIP 2m.C USAGE NOTESf.LEFT MARGIN 10a .INDENT -70 1. When you iterate on a file by a call such as .INDENT 2B *@REPEAT Xr .INDENT -6 then note that .INDENT -5? A) X must have been set to a positive value when the commandh8 is executed or else the file will not be executed. .INDENT -5> B) If the file of commands does not change the value of theD variable X you will enter an infinite loop. You can explicitlyB set X to a non-positive value, use the *Z command to zero it$ (if it is not %), or include a.BREAK *R.BREAKD command to give you a chance to reset the variable and get out of the loop. .INDENT -5C C) *E and *S will allow you to exit from the command file REPEATt5 but will not of themselves prevent repetitions.t .INDENT -5F D) Entering constants echo on the terminal (assuming *V is properlyD set) and can change the value and type of the variable %. ThisD is important to remember when using % to control the iteration of a file. .INDENT -7E 2. In practice, multiple precision arithmetic may be limited to less D than 99 digits because of your terminal's inability to print that many characters. .INDENT-7nH 3. No implicit conversion is made to multiple precision when operationsI with reals or integers cause an overflow. This was done in version 1.0cB in case the multiple precision routines have to be removed when9 creating a small task image for some operating system. .INDENT -7 6. In FORTRAN,f.BREAK& -A**2 is the same as -(A**2) .INDENT -5 with CALC,.BREAK< -A**2 is the same as (-A)**200PNJH+%O-%TADATADATA (just like SNOBOL!) .INDENT -7C 5. If R and A are positive reals and I is a positive integer, someaD compilers like RSX-11M's F4P won't allow (at run time) evaluation of0.BREAK (-I)**Ry.BREAK (-A)**R. .INDENT -7# 6. Under RSX-11M F4P you will findD.BREAK 2**.5 to have value 1 .INDENT -5 while .BREAK, 2.**.5 has value 1.41421356237310 .INDENT -7F 7. 10E10 is a hexadecimal constant (integer) while 10.E10 is a real..LEFT MARGIN 1.PAGEA.C APPENDIX A.SKIP 1w.LITERAL6 ASCII CALC ASCII CALC ASCII CALC ASCII CALC8 CODE PRINTS CODES PRINTS CODE PRINTS CODE PRINTS8 ---- ------ ----- ------ ---- ------ ---- ------4 0 ^ 32 64 @ 96 _`3 1 ^! 33 ! 65 A 97 ar3 2 ^" 34 " 66 B 98 b 3 3 ^# 35 # 67 C 99 ct3 4 ^$ 36 $ 68 D 100 da3 5 ^% 37 % 69 E 101 e.3 6 ^& 38 & 70 F 102 fD3 7 ^' 39 ' 71 G 103 gA3 8 ^( 40 ( 72 H 104 hm3 9 ^) 41 ) 73 I 105 iS3 10 ^* 42 * 74 J 106 jt3 11 ^+ 43 + 75 K 107 km3 12 ^, 44 , 76 L 108 lr3 13 ^- 45 - 77 M 109 m 3 14 ^. 46 . 78 N 110 nB3 15 ^/ 47 / 79 O 111 oa3 16 ^0 48 0 80 P 112 pr3 17 ^1 49 1 81 Q 113 q 3 18 ^2 50 2 82 R 114 ra3 19 ^3 51 3 83 S 115 sS3 20 ^4 52 4 84 T 116 ty3 21 ^5 53 5 85 U 117 ui3 22 ^6 54 6 86 V 118 vu3 23 ^7 55 7 87 W 119 w,3 24 ^8 56 8 88 X 120 xe3 25 ^9 57 9 89 Y 121 y 3 26 ^: 58 : 90 Z 122 Z 3 27 ^; 59 ; 91 [ 123 {u3 28 ^< 60 < 92 \ 124 \r3 29 ^= 61 = 93 ] 125 }i3 30 ^> 62 > 94 ^ 126 ^e0 31 ^_? 63 _? 95 _ 127 .END LITERAL.SKIP 3e.C0 Interactive Calc in the AnalytiCalc environment.PL Calc runs as part of AnalytiCalc to do much of the math. The K commandH drops into straight Calc and it works as described here. There are many additions however.-.PCOne immediate difference is that you need to issue the *V#3 commanduBupon entry to the Calc mode to have it print anything. It defaults:to the *V#0 mode in AnalytiCalc (to speed it up slightly)..PB Calc can access all the variables on the sheet (names A1 andD up), which may be up to 8 bytes long. However, while it can examine.index Cell PrecisionoC or set any of these, the spreadsheet recomputes them from its disk@ based formula file when re-entered by the *E command. To modifyD this file, the "current position" in the physical display sheet mayB be set by answering the prompts after giving the *P command. Then@ the current display value (contents of the "%" variable) may be8 entered into the disk file by executing the *W command.BNumerous other manipulations are possible, and by setting the viewDlevel to 3 (*V 3) it is possible to debug a command file that drivesAa spreadsheet cell from interactive mode (by tracing through its';Aoperation to see what it is doing). All interactive Calc commandsaC work also from indirect files. The physical location is clamped toyA legal values. Note too that any unused cells of the sheet may bea? used as scratch accumulators. However, they may not assume anynC types of multiple precision numbers, as they are all 8 bytes long.tAIn the case of AnalytiCalc-PC, the multiple precision numbers arebEat mos00PNNN6%! !t 20 digits long (to save space). The internal expression stackiHis 40 tokens deep, so very complex expressions may have to be split intoFpieces to work. Error messages will be shown if this happens; they are%placed on the top line of the screen. .PEIt should be noted that until any cell is flagged as having somethingoDin it (either by an Enter command or implicit enter, or by giving itEa format with the DF command, or by loading or copying something intocCit), it does not really exist in AnalytiCalc-PC and always reads as Jhaving value 0.0 and formula P#0#0. It must be set up from the spreadsheetEenvironment before it can be used. The accumulators all pre-exist ands@do not need this initialization however. This is a difference ofCAnalytiCalc-PC from older versions, in which the storage was alwaysuDpresent whether needed or not. The current versions allocate storageIonly as needed, and CALC routines generally do not call these allocators.t.SKIP 4e .INDENT -1 2 GRAPHICS^^.CPCC GRAF .SKIP 1 h.C2GRAPHICS INTERFACE AND OUTPUT FROM PCC SPREADSHEET.C GLENN EVERHART, 28-FEB-86-.SKIP 1i.SKIP 2o.C Introduction.P=The AnalytiCalc system uses a separate program to provide itst.index Graphicsn@graphics output, permitting easy tailoring to different graphicsBdevices. The routine supplied uses a character graphics subroutine@(GHASP) to produce histograms and scatter plots from any rows or"columns of a saved sheet which has+been saved via the PPX or PDX or PPN or PDNtcommands. The output is printedt=normally. However, users with other devices may easily modifyt9this program to insert their own favorite graphics outpute<device output into the program. There are several options to;govern plotting, and one plot per command is produced. Once#:a saved sheet is generated, many plots can be made from itwithout reentering the sheet..P@An advantage of this approach is that the address space consumed<by the graphical routines is not taken from the spreadsheet;>since the sheet permits reentry keeping the random access fileCit uses, graphics may be handled with a fair degree of transparencyn.by command files, or even by spawned commands..P?In the 8088 versions of AnalytiCalc, some extra graphics outputc?routines are supplied for other higher resolution graphs. Also, =by using the DTR-32 interface to AnalytiCalc-PC and using DTRi<graphics, much more powerful on-screen graphs can be handledBon a ReGis terminal. This package is however universal and adaptedAto data analysis. It is intended for analysis, NOT as a generatoroEof fancy presentation graphics. Accordingly, it makes few assumptionsvBabout the display so it will work on almost any display available,even on hardcopy devices.w.SKIP 2S.PGetting Started:.PFRun AnalytiCalc (PCC is sometimes used to call it, from the other name PortaCalc),and create your spread sheet to your liking.+When it is set, use the following commands:e.SKIP 1t.LITERAL, L A1 go to cell A1 (top left of sheetA PPX Put out physical sheet. (PPN may be used if desired.)t .END LITERAL.When AnalytiCalc asks for a filename, give one1which describes your file well (with a file type)u'followed by return. Example: Myfile.pcci.P:When AnalytiCalc asks you for maximum displacements, enter>0 in both cases (equivalent to telling it to save everything)..P?When done, you may use the X command to exit PCC (AnalytiCalc).o.BREAK5Now run PCG (on PDP11, type PCG; on VAX, MCR PCGRAF)..BREAK>When PCG first starts, it asks for an output dataset. This may:be any file or device on the system. If TT: or TI: is used9as output (the terminal), the graph will be scaled to fitm9on a terminal screen. Otherwise it will be sized to fit aa:sheet of (normally 132 column) printer paper and will have7some extra statistical information about the plot. (Thee4program assumes if the first character of the output9name is T and the 3rd character is a ":", it's a terminaluand acts accordingly.).When PCG runs, it will ask for a comma00PNJH+%O-%TADATADATAnd line.1A typical command to give a scaled plot of columntH from row 1 to row 30 would bea.SKIP 1n+Enter plot command>NN myfile.pcc H1:H30 [S]e.SKIP 1i.P6Note that the rows and columns are referred to exactly:s on the sheet itself. The initial NN could be LL or LN orAPP or other letters, but L in column 1 takes the logarithm of thee7numbers in the first (in the example the only) range ofl8numbers selected, and L in column 2 takes the log of the>numbers in the second range. A P is used instead of an N where:the values displayed should start from 0. rather than from(the lowest value in the region selected..P4Should the range to be plotted include only POSITIVE;numbers, make the first 2 letters P's. This will ensure thee;scale starts at 0 rather than at the minimum positive value0selected. The command line would then look like:.SKIP 1o+Enter plot command>PP myfile.pcc H1:H30 [S]i.SKIP 1 .P5Scatter plots plot entries in the first range againstoCcorresponding entries in the second range selected. One dimensionalM.index Scatter Plots.index Histogramsn<plots are up to 100 bins wide and scatter plots are up to 50=bins by 50 bins. Height of histograms is Scaled to fit a page >if the [S] form is used and will Vary to whatever is needed if@the [V] character is used. Widths of plots are less than 100 (orD50) if the number of entries plotted are less than those dimensions;Aif the number of entries plotted is greater, it will be scaled to ?the 50 or 100 bin maxima (which derive from paper size mainly).d?If the option [H] is chosen, the plot will be Hacked off at oneC:page, but scaled as if the [V] Vary option were specified..SKIP 1a.P SYNTAX AND USAGE:.PA This program is designed to allow an interactive user to entereA a single command line to the program which it will parse (using D the special version of VARSCN in GVARSCN) and allow graphic outputC from AnalytiCalc saved spread sheets. The assumption made is that D the sheet has been saved with the PPN or PDN command. The filenameB must appear in the command line and variables in the file (namedEas though the cursor had been in cell A1 when the PPN / PDN was done)u; may be histogrammed or scatterplotted against each other.u.SKIP 1 B The GHASP routine (a FORTRAN plot package for ordinary printers)> will be used for this version. Other routines may be readilyCused as replacements for specific graphics output devices. There isu@a document supplied PCSAVFMT.TXT which will give the format used@to save AnalytiCalc/PortaCalc files to simplify reading them in.AThe popular VisiCalc (tm) DIF format was NOT used in this programlBbecause it cannot encode the variety of display formats available.?The format chosen was rather a straight ASCII format permittingi=almost any language to read the saved files with a minimum oft@grief, and which permits editing saved sheets with a normal texteditor.k.SKIP 1  Input syntax:m.BREAK5PP or NN or LL filename.ext V1:V2 [c] V3:V4 +switches .BREAK where.PJ an L in columns 1 or 2 takes log of 1st or 2nd range numbers (base 10),F a P indicates Positive numbers (so 0 is included in the range to beG plotted and the plot starts at 0. and increases rather than starting E at the minimum observed value for an initialized cell in the savediF sheet), and N means Normal, i.e., neither of the above; the minimumE and maximum coordinates are taken as min and max values in the setV of values to be plotted,u.PF filename.ext appears at the start of the command line after a spaceM and with a space following it and is a valid RSX or VMS file specificationoE (the same as was given to AnalytiCalc in the PP or PD command that  saved the sheet normally).t.PI V1:V2 and V3:V4 are ranges. V3:V4 is optional and its presence impliesiH a scatter plot. These ranges must be either a row or a column or partJ of them. If only range V1:V2 is present, a histogram will be done usingJ the Scale option of GHASP to fit the plot onto a page. The pl00PNNN6%! !ot will beH set up for 100 bins horizontal, 50 vertical, or the number of entries$ to be plotted, whichever is less..PH If the V3:V4 range exists, the character Q in the [c] position (the []J are required) will result in a "density" plot in which the program willK attempt to print darker in filled bins. This is crude and the default is G to use a 2 digit number. Again, plot size will be scaled to 50 by 50 F bins. For histograms, the character S implies Scale the plot to fitG one sheet of paper, the character H implies Hack the plot off at one G sheet, and the character V implies Vary height, using as many sheetsAF of paper as needed to plot the data. The character S should be usedF for "normal" scatter plots (in which number of entries in a scatter7 plot "bin" is represented as a number or character). .P SWITCHES:a.PAThe following switches may be added after the rest of the command line: .skip 1 .indent 12+hnnn Height nnn characters .indent 12+wnnn Width nnn characters...PFIf both are used, use the specification +Hnnn+Wmmm (e.g., +H20+W25 for20 high and 25 wide).e.P NOTE: (V1B):.BREAKCommand format errors are well@diagnosed, but parsing is fairly inflexible. Multiple ranges areBnot presently implemented, though it would be a minor change to do<so. It is expected that the source for PCGRAF will always be available..PLTo use PCGRAF from inside AnalytiCalc, use the $ command to pass the command?line to the system; this will allow graphics to be done without.Fleaving the AnalytiCalc environment. This can be done from an indirectFfile driving AnalytiCalc also, without special intervention. Note thatMAnalytiCalc-VM for VAX or AnalytiCalc-PC for VAX or PDP11 have the $ spawningKDcapability. Creation of a few command files to allow passing desiredBparameters to PCGRAF is simple but left to the reader; the programEreads unit 5 and writes command prompts to 4 and the graph to Fortranlunit 6..PageA.C APPENDIX B.CANALYTICALC SHEET USAGEn.PK The AnalytiCalc spreadsheet provides a large, but finite, number ofC!rows and columns to compute with.a.PD In the 8088 version, there is a "prime" computing area of 60Ecolumns and 300 rows, or 18,000 cells, which may be filled at any onegtime.a.PL Because some applications need different shaped storage, AnalytiCalcGhas been extended to allow this storage to be used as if it were shaped1in almost any way desired..P8Assuming your "physical sheet" is compiled to support 800columns and 400 rows (standard on VAX versions),Bthe method used is that when you specify a column greater than 80,Ea second strip of the sheet is used as an alias for columns 81-160, amEthird strip for 181-260, and so on. The depth of this strip is set in Ethe S command; initially the strips are 40 rows down each. Similarly,uJwhen you use rows 401-800, a second vertical strip of the sheet (initiallyG8 columns across) is used as if it were the first 8 (initially) columnsiBin rows 401-800. Other strips further right are used further down. .test page 40 .Skip 1 0 This can be shown pictorially like this:.LITERAL) C o l u m n N u m b e ri5 0 00 11 2r5 0 88 66 4 5 1 01 01 0s5 AAAAAAAAAAAAAAAABBBBBBBBBBBBBBCCCCCCCCCCCCCCCD BBBBBBBBBBBBBBBB CCCCCCCCCCCCCCCC .End Literal.PFNote that the cells labelled AAAAAAAAAAAa are in the "prime" area. TheEcells labelled BBBBBBBBBBB are in the extended area and appear to allaJuses as though they were really part of a wide but shallow sheet. LikewiseNthe cells labelled CCCCCCCCCCC. They also are shown in their aliased locationsBin the "prime area" however, to show how the organization is done..PC In the S command you will be asked if you want to reset the*Bextended area mapping. If you reply Y, you can enter the number ofDROWS to add when moving over t00PNJH+%O-%TADATADATAo an extended COLUMN group as shown inFthe picture, or the number of COLUMNS to add when going to an extended(ROW group as shown in the picture below: .test page 20l.Literal Row no. 001 ABC ABC ABC 400 ABC 401 B B B 800 B 801 C C C 1200 C .End Literal.PHYou will note that the extended region here goes to make the spreadsheetappear long but narrow.P.PI The redefinitions allow you to specify how "thick" the A, B, or CACregions are here; the length depends on how far out you need to go.RFThus, if you need a 3000 row sheet, you might allow only the default 6.Index S commandFcolumns width. If you don't intend to use EVERY cell in your range youIcan of course use still longer or wider sheets. This redefinition is done#Krecursively so that you can use ANY region in this way, not just the top or Hthe left edges. But the cell redefinition still maps storage in this wayEto the "prime area". The insert or delete row or column commands only Dwork in the "prime area" since they can cause considerable confusionGin an extended sheet. The copy commands are not so constrained however,and can be used as desired.7.PBThis sort of area redefinition is different from other spreadsheetJprograms only in that aliases are provided to storage; overall storage use!works similarly in many packages. .PBConsider 1-2-3 and Symphony (both tm) for a moment. These programsGallocate a rectangular array of 4 bytes per active cell, plus a scratch Earea containing all cell contents for cells that are non empty. Thus,Bif one has 200K of memory above the (hefty) requirements for thoseCprograms, one can have 50K of totally empty cells. If cells contain8Aone value (6 bytes) each, the total available storage allows only1G20K cells with only values in them. If cells have 10 character formulas7Gin each (plus a value), only 10K cells can be held in this much memory.8D(In actual practice, far fewer than 10,000 formulas can be entered.).P<In 1-2-3, a sheet with 10,000 cells storage can be organizedin 2000 rows by 5 columns, 250Fcolumns by 40 rows, 100 columns by 100 rows, or any other way in which?(rows used) * (columns used) is less than 10,000. While you can Adisplay a screen showing cell IA2000, however, you CANNOT use it. CIn fact, the area you can use is bounded by a hyperbola whose exact Aposition depends on your memory size and the needs of the productyGfor memory for itself (typically 256K or 320K for these, at a minimum).n@Since some "lower" memory is used in even the newest releases ofFthese products, this problem still exists with lesser impact even withmemory expander cards..P8With AnalytiCalc, you also have a fixed maximum storage @available, but it can be used anywhere in your address space and=can be remapped to a physical sheet any way you like. When an ?extended address is found, its column number and row number areCAremapped in turn until both fit within the prime area. This makese?the remapping somewhat hard to follow, but at least a cell thato>is addressed can conceivably ALWAYS be used. Where the need is;for a wide but shallow sheet, or a high but narrow one, ther<remapping provides the same flexibility of shape as in other?products, but you can control its action to achieve the resultse>YOU need. You will not suddenly be told you are out of memory,;but can plan your usage. Dimensions like 32000 by 1 or 1 bye?32000 can be readily handled in extreme cases. The only cautione?is that the mapping MUST NOT be altered if any extended addressi>cells are in use. Save the sheet, alter the map, and reload itto vary the mapping. NOTE: : ONLY set up the map while the sheet has nothing in: it in an extended area. Save your sheet, alter the2 map, and then reload if you have an active6 extended area (i.e., any cell with row number 6 greater than 400 or column numbe00PNNN6%! !r greater than 80.); You have great flexibility here, but can still onlyy>access the storage available. The total amount of such storage9is quite large, since all 32,000 cells can have up to 100c=characters in them at once, plus an 8 byte value and multiple <equations per cell. This is far more storage than 1-2-3 (tm)8or Symphony (tm) can handle on even a 640K PC or AT, and<is comparable to the most they can permit even with extended;memory boards. It is in fact as much storage as can be usedl?without excessive page thrashing on a VAX, making it one of thet$most efficient packages you can use..P?In addition, you can link sheets efficiently in AnalytiCalc, soe?your computations can be "bite-sized" pieces linked with use ofl>GPX+ commands or *X cells or both. The ability to do automaticAlinks in AnalytiCalc is the thing that 1-2-3 lacks which has maden>its users interested in giant spreadsheets in the first place.?A giant summary sheet is a stopgap solution to summarizing manyIBactivities, since physical memory will always run out with a largeBenough summary. A sheet that finds its inputs on disk will succeed>in summarizing far larger systems of sheets, as its storage is*limited only by disk capacity, not memory..skip 1y.cNew Features - V19.01A.p 5A modified command structure is supported now. If you 9type the command /; then the commands to AnalytiCalc are modified as follows:.skip 1s.list 1t>.le; Any command beginning with a digit (except single digits9standing alone) is treated as an EV followed by the text.tA.le; Any command beginning with / has the / stripped off and thevrest is treated as a command.o>.le; Any command beginning with " is treated as an E" command%(enter text) with the " stripped out.u?.le; Anything not starting with a digit, a " character, or a /o9is treated as an Enter command and is prefixed with "EN "h and used. .end list .p3The old (default) command mode is restored with thet<command "//" so that /; and // switch between the two. These9commands may be given in ACINIT.PRM, other command files,l=or from the console. They introduce incompatibilities in thate<in the new version commands like "DF range [format]" must be6entered as "/DF range [format]" (for example) to work..p5To facilitate writing command files that work in both3:modes the command /# switches the mode with a save cell. Asequence of commands:n.tab stops 15,25,35,45.skip 1s.literal8 /# (save current command mode in save cell)( // (enter old command mode)...e (do all of command file)t1/# (restore saved user command mode)v .end literal.skip 1i:will allow a command file to operate and be written to run.predictably in either user environment choice..p:Please NOTE that special characters in the first characterBare interpreted as commands in /; mode. The * character is handledCas a comment. To enter formulas with functions starting with *, use ;the COMMAND form, e.g. /EV *U IDATE. This always works and disambiguates syntax.y.p5When the system is in /; mode, the cell prompt at thek;23rd line of the screen ends with : so that it appears likei.skip 1 AB 21:l.p3When the system is in // mode (initial default) thec3prompt ends with the > character so it appears like .skip 1u AB 21>t.skip 1 3This should aid in distinguishing modes during use.X.cNew Features of V19.2C.p:In V19.2, AnalytiCalc adds the OAD and ORD commands. These>are like the OA and OR commands except they leave the relative=mappings of the screen alone. Thus, if you already split yourT?screen into 3 parts and use the command "OAD cell" to reset the =mapping, the resultant screen still has 3 regions at the samea>relative positions as before. If you use the ORD command, then=only the part of the screen right and down from the cursor is =affected, but any screen partitioning is maintained. If these >commands leave some areas pointing to nonexistent areas, use a=command OR or OA to reset the areas de00PNJH+%O-%TADATADATAsired to something realm;again. V19.2 added the change from > to : at the end of thew(prompt depending on // or /; modes also. .test page 453.p>The difference between OA, OAD, OR, and ORD may be illustrated<in the following figures, which represent the screen mappingafter a command sequence .test page 20u.skip 1s.literal OA A1 L C1r OR AA1r L A11 OR A100 .END LITERAL.skip 1r*which produces a screen mapping like this:,(note only part of the map is reproduced...) .test page 20n.skip 1.literal, A B AA AB AC, 1> A1 B1 AA1 AB1 AC1, 2> A2 B2 AA2 AB2 AC2* 3> . . . . .* 4> . . . . .* 5> . . . . . 6>e 7>h 8>n 9>w- 10> A10 B10 AA10 AB10 AC10a- 100> A100 B100 C100 D100 E100t- 101> A101 B101 C101 D101 E101s 102>r 103>n, 104> and so forth. Note that columns- 105> AA, AB, and AC are now mappedr. 106> for only 10 rows. Thus we have( 107> 3 screen regions, not 4. .end literal .test page 40t.skip 1While after a sequence like:.skip 1o.literal OA A1 L C1V OR AA1  L A11 ORD A100s .END LITERAL.skip 12the resulting screen mapping looks more like this: .test page 20;.skip 1n.literal, A B AA AB AC, 1> A1 B1 AA1 AB1 AC1, 2> A2 B2 AA2 AB2 AC2* 3> . . . . .* 4> . . . . .* 5> . . . . . 6>P 7>i 8>a 9>s- 10> A10 B10 AA10 AB10 AC10 - 100> A100 B100 AA100 AB100 AC100i- 101> A101 B101 AA101 AB101 AC101C 102>A 103>n, 104> and so forth. Note that columns, 105> AA, AB, and AC now extend to+ 106> the full screen. This givesP! 107> 4 screen regions.p .end literal.skip 1n.p6These figures illustrate the usefulness of the OAD and ORD commands.e.PageP.C Appendix C.CVariant Versions of AnalytiCalcl.SKIP 1i.CVariant Versions.PG There are several variants of AnalytiCalc. Some PDP11 versions,iH and some VAX versions, use a random access file to hold formulae. TheseC will ask whether there is a work file (the random access file) andpE of its characteristics. The VAX version using memory instead (called/.INDEX MEMORY USEs .INDEX SAVEnH AnalytiCalc-VM) uses a memory array for formulas and does not ask aboutB workfiles, since it has none. (It also requires a confirm on exitE to ensure you saved the sheet with a PP class command.) Finally, theF PC versions of AnalytiCalc use memory arrays backed by temporary diskF files for values and formulas. These do not ask about work files, but.INDEX SCRATCH FILESE ask how many K (bytes) to reserve on disk for the value file and theKD formula file. Generally there should be somewhat more formula space@ than value space if many long formulae are used; otherwise pickC roughly equal values. These scratch files are deleted on exit fromi@ AnalytiCalc-PC, but the sheet will NOT run out of room providedB sufficient file space is allocated. If it runs out due to lack of@ room, a message on screen will tell which file is out. Save theH sheet and restart then with a bigger file. Be aware that AnalytiCalc-PCG is slower loading and running than AnalytiCalc-VM, but more comparablesB to PDP11 or workfile versions. The best debugged and most capableM versions are AnalytiCalc-VM for Vax, and AnalytiCalc-PC for PDP11 (includinga DEC PRO 300 series).sAAnalytiCalc-PC also has a VAX build file, and that version is then:only one which supports huge cell addresses and Datatrieve:interfacing. It is now the recommended VAX implementation,"though AnalytiCalc-VM still works..PJThe Datatrieve (DTR) interface is described in DTRIF.DOC and adds not onlyEa full00PNNN6%! ! bidirectional link to DTR for all DTR functionality, but adds tGoptionally a "Super-AnalytiCalc" capability which permits you to defineVEan input and an output area of the spreadsheet and use AnalytiCalc asrEa smart data filter. The input and output areas can be handled eitheraAas sequential or as random access (128 byte record) files and aretBconstructed so the sequential mode is useful for mailbox, pipe, or@communications line processing as well as simple files. Also theEFILFMTOUT#range command allows you to "freeze" a two dimensional areahFas values and write to an output file if one is defined. The input andDoutput areas can be any (possibly overlapping) two dimensional areasCof the sheet. Control can be from within the sheet template or fromrCinteractive commands. The random access input is structured so that Bit can also be used (by opening the file for read only) to provideCprotected cells which have un-modifiable formulae as well as to act -as a communications mechanism. The Datatrievei.Index Datatrieve..Index Input areas.index Output areast.Index protection.Caccess mechanism provides additional communications channels and ismCstructured to allow FMS and graphics commands to be includable, andlCcontrollable from within AnalytiCalc procedures if desired, as well #as normal interactive DTR commands.t.PCThe sequential interface is designed to make it simple to "connect"A>AnalytiCalc to any application by running the application in aAseparate process with input and output set as mailboxes, to whichDthe sheet output and input areas can be logically assigned. This canAbe done completely from within AnalytiCalc if desired (with a few ,pieces done via the "$dcl-command" feature).FIt should also be mentioned that as an aid to parsing text coming from".Index Connecting generic programsAgeneric applications using the sequential interface to mailboxes,mFthe DTR interface package implements formula string compare, substringAsearch, and formula string length functions. These can supplementPEthe other string functions and greatly facilitate parsing text comingbfrom a generic application.o.PFAnalytiCalc-PC for VAX also supports output files up to 512 characters?wide, save/restore of complete attributes of a sheet (includingi<mappings and column widths if desired), and some other novelCfeatures, and will be the only version able to support the upcomingl:extended DBMS interface which will allow some cell address8ranges to automatically access a DBMS file or files with=extended DBMS operations permitted. It is now the recommendeds implementation across the board..P1AnalytiCalc-88 (for Rainbow and IBM PC) functionspBsimilarly to the PDP11 and DEC PRO versions but has fewer overlays7(some variants have none), and thus has no limitations.iFIf you use AnalytiCalc-PC, the storage needed per cell in the workfileCis 10 bytes per cell, and for formulas, 12 bytes of formula go intoiFevery 16 bytes of workfile (the remainder is for accounting overhead).EThus, for a 32,000 cell sheet, 320K bytes is the maximum useful valuerAfile size, and 512K bytes would permit a 12 character formula foraEeach cell, while 4600K bytes would give every cell 108 characters andCis the maximum useful size. Since a symbol table algorithm is used, Esizes may be as small as desired. If the size chosen is less than the Bmemory allocation built in (1K is guaranteed to be), no files willEbe opened and cells will be stored in memory only. Note that if valuedAand formula file sizes are given negative, a slower but sometimes"Bmore efficient packing will be done of the file. The workfiles areBopened in one's default device at the time of running the program.DThe "slow" algorithm picks a diskfile page to use by taking the cellEnumber modulo the number of pages in the file. The "fast" one picks a Gdiskfile page to use by taking the position in the total sheet (columns Eincreasing fastest) and making the number of cells in a diskfile page Fvary as number in the sheet divided by the size of the diskf00PNJH+%O-%TADATADATAile. Thus,Bcells close to one another on the sheet are kept close on the diskDfile. This can overflow a disk page if too many cells for a page areAused close to each other. Therefore, the program will ask you how =many rows and columns you propose to use for purposes of diskBBclustering. If the "fast" algorithm is used, the disk page will beBchosen as (cell address)*(number of disk pages total)/(size of theBtotal sheet you said you'd use, clamped to the max physical size).FIf you say you'll use a small area, cells will be scattered better. IfByou use beyond the area you said, disk pages are chosen in modular@fashion. Therefore, if you run out of room in a file, try eitherEvarying the size for allocation, or adding space to the files. If you Bgive the exact size you're really using, the "fast" algorithm will@equally divide disk pages among cells on the screen you're using?for rectangular use. The size question is ignored if the "slow" >algorithm is used, since that algorithm equipartitions withoutneeding to know the size used..NOTEm;If you run AnalytiCalc-PC on a VAX, the workfile issues mayo<be ignored. Demand-zero pages are used instead of disk files8for speed, and the default storage size should be ample. .END NOTEhFThere are two effects of importance here. First, if you don't allocateDenough space, scratch files may overflow and you'll have to save theCsheet and rerun with bigger files. Second, if the scratch files are MTOO big, the program will waste time switching pages in memory unnecessarily.aITherefore, when you tell AnalytiCalc how much space you intend to use, it Iprints out the sizes of files needed ASSUMING that you will fill in EVERYfHcell in the range indicated, and that formulas are 12 or less charactersGlong. If you use less cells, both files may be shorter. If formulas are6Llonger, the formula file needs to be made bigger. The program won't actuallyFgo out to disk unless the files are bigger than its in memory buffers,Fso don't worry about that condition. The suggested sizes are usually a good guess.t.PFA version of AnalytiCalc now built standardly on PDP11 (on PRO 3XX theEPCCPRON.COM file is used) has two in-memory pages instead of one. The4Bone memory-page system could be made to thrash fairly easily sinceAcopies from one area to another required continual reloads of the Aappropriate pages. The two-page algorithm makes each page half astAlarge but allows LRU paging to swap the oldest page first so thatnEcopies from one area to another tend to have the page contents followfFalong the regions copied. In large sheets the speedup can be enormous.A(The WRKFIL.FIV and WSHEET.F40 files are used for this on PDP11.)c.pages.PEREMEMBER: If you are using a "workfile" version of AnalytiCalc, it isDobsolete. AnalytiCalc-Pc and AnalytiCalc-VM are the most current andAmost capable versions and should be the ones used unless there ismCa compelling reason to use an older one. IF you have a more currentsAversion of AnalytiCalc, skip to the "Calculation Screen" section.u.P- Now back to the workfile (obsolete) version.h.PD The next question is whether there is already a work file on7 disk to use or reuse. If you have such a file, you can > let AnalytiCalc just reuse it. AnalytiCalc will create one ifB none exists, but one already in existence can be used as a way toC continue a computation somewhat faster than loading a saved sheet,i or to continue after a crash.C Reply N if there is no file and one must be made. The reply Y willrH cause AnalytiCalc to read the old file and find out what format entriesD are valid over the whole sheet, so that an old sheet's workfile canE be used to continue; formulas and format information is still there. H To start quickly, you can type Q, which means AnalytiCalc does not readA the whole file, but only the default display window part. If youy@ choose this option, all cells will start with 0 until the first@ R (Recalculate)command is given, when the values in the displayF window will reappear. Other cells' 00PNNN6%! !values will not be set up however,A so large sheets may need the Y option if the old cells are to bet) used outside the immediate display area.u@ Ordinarily it's a good idea to use the Y or N options only, not< the Q option. However, when re-using a small sheet that all> appears in the display window, or reusing a workfile that you> intend to Zero All of (see the ZA command), the Q option is aD good time saver. Normally it is better practice to exit AnalytiCalc .INDEX EXITi.INDEX X CommandA with the XD option to delete the workfile (assuming you used thekC PP option to save it if you need it) rather than to leave multipletE random access files around. AnalytiCalc's workfile has space for alli@ cells possible in your sheet, while the save files only containG data on cells that are in use; hence retention of workfiles represents  a waste of disk space.s.P@ Note that the Q option is likely NOT to work if you haveD used integer formats. In that case, ALWAYS use the P and G commandsC to save and load sheets. These are a good idea anyway. They permitlC sheets to be loaded across AnalytiCalc versions, and some variantse? permit graphing the entries. A workfile is only usable as longs? as the physical sheet AnalytiCalc is compiled for is identicale$ to that which created the workfile..P> The last question of this setup phase is the filename.> A standard filename, either that of the old file, or the nameA to use for a new one, is required. Limit it to the max supported A by your system for names (on DEC, 9 character names max). A fullA system file specifier may be entered (including directory, etc.)D at this time, provided the specifier is a file that you may legallyA open for update (read AND write) access. AnalytiCalc has no suchl thing as an INSPECT mode..PDThe workfile that is set up may be of considerable size and could be>much larger than is actually needed. However, if you know that@you will be using fewer rows of your sheet than the maximum, you@can specify a smaller maximum and have the workfile made smallerBon disk (this is true of the VAX version and the PDP11 XL version)Bby specifying a "/" character after the filename. If this is done,=the program will ask for the number of rows to use. This wille@be clamped to at least the number on the initial display, and at6most the number for the maximum sized generated sheet..PCIf you try to use more rows than this during a session, the resultsr;are UNPREDICTABLE and will possibly be wrong or could crash@the program (leaving the random file, so a restart is possible).<However, this permits a "large" version of the program to be>used even where one's disk quotas or space is smaller than the=full-sized workfile. The number of COLUMNS is NOT variable inc@this way. Note the sheet file is organized in a fashion that has?columns varying quickly, rows slowly. The calculations are donel=going across columns, then down rows, so the file is accessedh:nearly sequentially during a recalculation (and the memory:array is also). This was done deliberately to avoid paging=slowdowns or disk thrashing and is part of the reason why thes@order is not variable. By recalculating (or auto recalculation),<the correct results are achieved anyway with one or two more3recomputations even where order dependencies exist.B.P: If the Q option is not given, AnalytiCalc displays the directory page (0) of its helppC file while initializing the file or reading it, then goes into thee sheet proper..page .C APPENDIX D.skip 1a.left margin 1.right margin 100 .CAnalytiCalc Function Summary.Index Function Summarys.SKIP 1m .TEST PAGE 12t.P/ The available multiple argument functions are: .index SUM functiona.index MAX functiona.index MIN functiont.index AVG function#.index STD (Std Deviation) function .index IF conditional .index Boolean Functions-.index IRR function (Internal Rate of Return)s'.index NPV (Net Present Value) Function .INDEX PMT Function .Index AVE Function ".INDEX00PNJH+%O-%TADATADATA FVL (Future Value) function.index MOD Modulo function%.index LKP, LKN, LKE Lookup Functionsd .TEST PAGE 20o^?.LITERAL) SUM[variables] Sum of all argumentse% MAX[variables] Max of argumentst% MIN[variables] Min of argumentsr) AVG[variables] Average of argumentse= AVE[variables] Average of arguments excluding zero args/ STD[variables] Standard deviation squareds9 AND[variables] Boolean AND of all variables in listn6 IOR[variables] Boolean inclusive OR of variables3 NOT[variable] Boolean complement of variableB2 XOR[v1,v2] Boolean exclusive OR of v1,v23 EQV[V1,V2] Boolean "equivalence" of V1,V239 (complement of exclusive OR, true if . bits have the SAME value)8 CNT[variables] Number of nonzero variables in list: MOD[V1,V2] Returns V1 modulo V2 (i.e., remainder( of V1/V2 division.)1 SGN[v1] Returns 1.0 times sign of V19 LKP[var,variables] Lookup variable in "variables" range 8 greater or equal to var, return its; index (starting with 0) into variables  range.e9 LKN[var,variables] Lookup variable in "variables" ranget: less than or equal to var, return its; index (starting with 0) into variablesm range.;9 LKE[var,variables] Lookup variable in "variables" range < strictly equal to var, return its index; (starting with 0) into range. Note all ; LKP, LKN, LKE return the last variable.: index if no satisfactory value found.: NPV[disc,vars] Net Present Value of vars (equal time8 interval numbers), at discount rate2 disc where disc is a fraction( (e.g., .12 for 12%): IRR[PV,FV,returns] Internal Rate of Return. Will compute8 internal rate of return on up to 208 periods, returning rate per period.6 The returns are expected to be at8 equal time intervals. PV and FV are; initial and final values of investmentr: and the result is computed via Newton# approximation.m> PMT[princ,inter,nper] Payment (mortgage payment per period)> function. Will compute payment per period? for principal amount "princ" with interest @ per period as "inter" and number of periods< as "nper". All arguments must be cells.A The formula is the standard ordinary annuitytA formula. Interest rate must be a fraction sos9 that 14% would be 0.14, for example. B PVL[payment,inter,nper] Present Value formula. Computes presentE value of an annuity given "payment", the paymentn? per period, interest rate per period (as ar> fraction, so 12% is 0.12) in "inter", and? number of periods as "nper". All argumentst& must be in cells.= RND[DUM] Generates a random number between 0. anda9 1.0. An argument is needed but it iss2 NOT touched by this function.B CHS[IDX,Range] Choose cell from range based on value of cellA IDX. If cell used as IDX is 1, first elementeC of range is chosen and so on. Zero is returnedo, for out of range cases., IF [V1.rel.V2] statement | else-statementB Compares two variables and executes either "statement" (if the> relation is true) or "else-statement" (if the relation is false).: Valid relations (in the place of the .rel. above) are: .EQ. Equalc .NE. Not Equal / .GT. Greater than (V1 greater than V2)D) .LT. Less than (V00PNNN6%! !1 less than V2)l1 .GE. Greater than or Equal to (V1 >= V2)p. .LE. Less than or Equal to (V1 =< V2) .END LITERAL\?.INDEX Random numbersu.Index RND functiona.LEFT MARGIN 1 .INDENT -1.P: The following single argument functions are available:.SKIP 1a.index Functions^?.LITERAL3 FUNCT NAME ARG TYPE FUNCT VALUE DESCRIPTIONt8 -------------------------------------------------------5 ABS REAL REAL absolute valuet5 DABS REAL REAL absolute valueo5 IABS INTEGER INTEGER absolute valuel8 IFIX REAL INTEGER REAL to INT conv.6 AINT REAL REAL REAL truncation8 INT REAL INTEGER REAL to INT conv.8 IDINT REAL INTEGER REAL to INT conv.+ EXP REAL REAL e**Xn+ DEXP REAL REAL e**Xe8 ALOG REAL REAL natural logarithm8 DLOG REAL REAL natural logarithm8 ALOG10 REAL REAL logarithm base 108 DLOG10 REAL REAL logarithm base 102 SQRT REAL REAL square root2 DSQRT REAL REAL square root9 SIN REAL REAL trigonometric sinew9 DSIN REAL REAL trigonometric sinei3 COS REAL REAL trig. cosinet3 DCOS REAL REAL trig. cosinel9 TANH REAL REAL hyperbolic tangent 9 DTANH REAL REAL hyperbolic tangentb2 ATAN REAL REAL arc tangent2 DATAN REAL REAL arc tangent .END LITERAL.SKIP 1o\?.SKIP 1e.P?The following special constructs in a formula act as functions: .LEFT MARGIN 15e.index Command Files.index Formulast.index Cell Namese .INDENT -53__@V1,V2 Means get the values stored in V1 and V2n(and use them as column and row locations+pointing at some cell in the sheet. Replacee)the construct with the name of that cell.s .INDENT -54___#V1 Means take the real number in cell V1 and$unpack it as if it had been a packed&value from a formula with 8 characters'packed; then convert it back into ASCIIt)and place in the formula in place of thisd0construct. This construct is intended to be used1with the *U#STRVL function to allow retrieval ando3edit of formulas. The *U#XQTCM function permits usea:of the EDit command within a cell for string manipulation..LEFT MARGIN 1.P@The following "equation commands" also act as functions with theeffects described:.FILLo.LEFT MARGIN 15C .INDENT -13aG *@filename ####Where filename is the name of a file of CALC commands. > CALC reads the file and executes the commands. .INDENT -13sB *ASCII ####Declares a list of variables to be of type ASCII. .INDENT -13 $ *C ####COMMENT line. .INDENT -13l *N ####NOVIEW. .INDENT -13 @ *V ####VIEW. Controls printing options in K mode .INDENT -13eM *R ####READ. Allows a single line to be read from the terminal.r .INDENT -13 @ *REAL ####declares specified variables to be REAL*8. .INDENT -13s> *DECIMAL ####Declares specified variables to be REAL*8. .INDENT -13 > *S ####STOP. Same as *E. Goes back to spreadsheet. .INDENT -13oG *E ####EXIT. Gets out of K mode, back to spreadsheet mode.i .INDENT -13i/ *Z ####ZERO. Zeroes all accumulators.i .INDENT -13gL *G ######*G V1,V2 (where V1 and V2 are cell or accumulator names).index Indirect AddressingL will evaluate V1 and V2 as the column and row numbers,O on the physical sheet, of the desired cell. The addresseduI cell's value is retrieved and used as the resulting  number.l .INDENT -13nC *W ###### Takes the value at the current cell and writespM it out to the formula as a numer00PNJH+%O-%TADATADATAic (floating)e .index Freezee' value. hEThe *WF command stores the cell similarly, but uses the format of thee7current cell instead of the D32.25 format used for *W. l .INDENT -13 E *P ######The *P command resets the current cell coordinatee.index Temporary MoveoL from within a cell (until the next cell is evaluated4 only). It has several forms: .INDENT -2G *P - By itself, *P causes Calc to prompt foriG the new physical column and row number.a .INDENT -2L *P V1 - This moves the current location to the namedL cell where V1 is the cell name (e.g. A5, H2) .INDENT -2N *P@ V1,V2 - This uses V1 and V2 (cell names) as columnP and row numbers and changes the current physicalM cell position to that defined by the contentstG of cells V1 and V2. This gives completeVM addressing of the sheet from within any cell. .INDENT -13oM *F #######*F Label - If the value in % is positive and nonzerowK this command rewinds the input file for thea.index Command Files.index Looping.index Conditional Motionu6 AnalytiCalc @ command N and seeks a line beginning with the charactersP *CLabel (where "label" is what you put after the- *F command). u .INDENT -13 N *J #######*J Label - This command behaves as the *F command but.index Command Files.index Looping.index Conditional MotionuP operates on the file used by the Calc *@ command@ rather than the AnalytiCalc one. .INDENT -13o *QF .INDENT -13tK *QW #######The *QF (Float) or *QW (write) commands are used to .index Command Files.index Data Base AccessnH examine sequential files created outsideJ AnalytiCalc and return values or formulas./ Their syntax isi .INDENT -4? *QF filename _?key1_? _?key2_? g .INDENT -7? or *QW filename _?key1_? _?key2_? n.BREAK: where _?key2_? is optional.BREAKI l and m are delimiter characters for start andWF end of the parts of the selected records toI extract (defaults to first part of the record)bJ filename is just the file specifier in the hostF OS. The *QF command gets a part of a recordGcontaining the keys specified and turns it into a number ("floats" it).y@The *QW command Writes that part of the record to a formula. TheAspecial characters in the part of the command are delimiters Eof the area to be picked out. Variant forms allow such choosing to beo4by column number instead of key character if needed..SKIP 1n .INDENT -13l*U YRMOD VY,VM,VDn.SKIP 1 Breturns the Julian date (in %) computed from the Year (in VY), theAmonth (in VM) and the day (in VD), where VY, VM, and VD are sheeti2cells. These may be the result of date arithmetic..SKIP 1 .INDENT -13r *U JDATE Var.SKIP 1aDassumes the formula in cell Var (any spreadsheet cell name) contains?a date string in the format YY/MM/DD. It reads this formula andbFconverts the date to a Julian date, returning it in the % accumulator..SKIP 1u .INDENT -13n*U JTOCH Jul,Var.SKIP 1iBassumes that variable Jul (any spreadsheet cell) contains a Julian?date and changes it into an ASCII string in the cell whose namehis in the Var position here..SKIP 1m .INDENT -13 *U DATE VY,VM,VD,Var.SKIP 1Auses VY, VM, and VD as year, month00QNNN6%! ! and day, and computes a JulianeAdate from them. It then composes an ASCII string of form YY/MM/DDb0for that date and stores in the formula for Var..SKIP 1 .INDENT -13d*U WKDYS D1,D2.SKIP 1oCcomputes the number of workdays between Julian dates D1 and D2 justt>as taking the difference of two Julian dates gives differencesbetween calendar dates in days. .SKIP 1m .INDENT -13o*U WKDIN D1,N1.SKIP 1v@returns a Julian date that is N1 work days after the date in D1..SKIP 1X .INDENT -13w *U IDATE().SKIP 1d)returns the current date as a Julian day..SKIP 1n .INDENT -13f*U MTXEQ(AA:AA,XX:XX,BB:BB)l.SKIP 1i8solves equation AX=B where A, X, and B are matrices, andJwhere the notation AA:AA means two cells at the upper left and lower rightCedges of matrix A (e.g. B2:C3 for the 2 X 2 matrix so defined), andsEthe XX:XX and BB:BB notation means the same for the X and B matrices.i.SKIP 1e .INDENT -13k*U MOVEV mtxa,mtxb.SKIP 1o moves values2from mtxa to mtxb (useful prior to calling MTXEQ)..SKIP 1e .INDENT -13 *U MDET mtxn.SKIP 1yAThis function computes and returns the determinant of matrix mtx.e.SKIP 1e .INDENT -13p*U MPROD A,B,C.SKIP 1iJThis function will multiply matrix A by matrix B giving matrix C, provided%that their dimensions are compatible.d.SKIP 1f .INDENT -13 *U MADDV A,B,C.SKIP 1tLThis function adds matrix A to matrix B and stores in matrix C. All matricesmust have the same dimensions. .SKIP 1i .INDENT -13i*U MSUBV A,B,C.SKIP 1eNThis function subtracts matrix B from matrix A leaving the result in matrix C..SKIP 1i .INDENT -13n*U MMPYT A,B,C.SKIP 1yMThis function multiplies matrix A-transpose by matrix B and stores the result+in matrix C; dimensions must be compatible.l.SKIP 1a .INDENT -13t*U MMPYC A,B,K.SKIP 1AThis function multiplies every element of matrix A by constant K.l.SKIP 2h .INDENT -13i*U VARY X,A,W,I,P;Q;R;S;T;U;V;Wu.SKIP 1t&(Equation Solving by Iterative Search).SKIP 1 1This function allows AnalytiCalc to automatically Hsearch for solutions to equations over up to 8 dimensions. The operation.index Equation Solving.index Goal Seekingh.index Solving For VariablesEis that the accumulators named in the fields shown as P;Q;R;S;T;U;V;WsJ(one to 8 may be specified, only one is required) are varied by a fractionFW about their initial values (later scaled down by the gradient of the .index VARY Ichange in X) to attempt to get accumulator or cell X to equal accumulatorlIor cell A. This is done for I iterations, where I is another accumulator.a.skip 1s .INDENT -13e5*U#XQTCM#command will execute the command (terminatedCby the end-of-line), with any command except X or K permitted, fromsEinside a cell. This allows command files driven from cells to controlemoving data, etc.o.skip 1i .INDENT -13h*U#STRVL#V1,start;len .skip 1rwill return a value that isaCmade from up to 8 characters in the FORMULA of cell V1 (where V1 ise.index Formula Value Accessg.index Sorting.index Sorting, by ASCIIGany cell name), starting at character "start" and for "len" characters.a.skip 1 .INDENT -13e*U#HEREh.skip 1r.will return the current location on the matrixBand the current maximum row and column used. Curr. col, row in T,Uand max col, row used in W,Y.h.skip 1 .INDENT -13e**U FFTFW and *U FFTRV perform Fast FourierATransforms in the forward and reverse (inverse) directions on thegiven range of data..skip 1l .INDENT -13i6*U LINEF Vy:Vy,Vx:Vx (with the Vx range optional) fitsAa line to the input range. Eqn: y=Ux+T. Err in %. Cor.Coef. in W.l .INDENT -13m *XV filename V1 .INDENT -13N *XF filename V1 #######The *X class commands are for sheet linkages..BREAK) *XF loads a Formula from another savedM( spreadsheet, while *XV loads a Value..left margin 1.skip 2t.PBThe following *U DBxxxxxx functions also exist as commands of form FILxxxxxx with the same results..skip 2(.left margin 15).skip 1 .indent -13F*U DBOPINS range filenameo4Open inp00 QNJH+%O-%TADATADATAut sequential on filename for cells in range6When the input file is open and any operation causes a9read of the cell, the FORMULA will be taken from the file :and used. If the file is opened with the OPINU option (for9Update), then when the FORMULA of the cell is written, ite:will also write to the file. The OPINU option applies only=to random access files. Initially both input and output readsa4are disabled (ENAINP and ENAOUT enable them). When aEsequential file (or device such as a mailbox, pipe, or communicationsO=line) is used for input, it is advantageous to read data into =a range once, then disable input/output again, to allow it toe8be handled between these commands. The EDTINP and FMTOUT9commands are designed to do this to make it easier to usee2AnalytiCalc for a filter between sequential files..skip 1a .indent -13*U DBOPINR range filenames0Open input random on filename for cells in range.skip 1V .indent -13*U DBOPINU range filenames7Open range for update on filename for read and write asbrandom access.skip 1 .indent -13 *U DBCLSINPt Close inputo.skip 1u .indent -13 *U DBCLSOUT Close output.skip 1) .indent -13e*U DBOPOUTS range filename3Open output sequential from range cells to filenamel.skip 1t .indent -13 *U DBOPOUTR range filename)Open output random from range on filenamed.skip 1i .indent -13t *U DBENAINP-Enable input file readin (initially disabled)e.skip 1 .indent -13v *U DBENAOUTg(Enable output write (initially disabled).skip 1u .indent -13 *U DBDISINP Disable input area readint.skip 1N .indent -13 *U DBDISOUT Disable output write.skip 1t .indent -13 *U DBEDTINP rangei2Enables input and output and, for each cell in the4given range, reads and writes the cell, allowing the5file read/writes to take effect. Each cell is flagged 6as valid but of text type; the DF command must be used2to reset any that should be treated as computable.;Input and output are disabled on completion of the command.i.skip 1a .indent -13o*U DBFMTOUT range .indent -13p*U DBVALOUT rangea7Enables input and output and for each cell of the rangec7takes the VALUE of the cell, reads the cell, sets it ofP9text type, and writes the text equivalent of its value to 9the cell. In the FMTOUT command the cell's display formatu9is used for the conversion. In the VALOUT command a largeT:builtin format is used to preserve all significant digits.?Spaces are discarded prior to output. Cells are left containing :textual data corresponding to their numeric values, stored:in the formulae. The DF command may be used to reset theseAcells to numeric types if desired. Conversion errors are ignored..;Input and output are disabled on completion of the command.n.skip 1 .indent -13 *U DBCMPFRM V1:V2[,V3:V4] 8Compares two formulas. It returns, in the % accumulator,:the index of the formula in cell V2 in the formula in cell=V1. Lengths used are those of both formulas UNLESS the V3 and =V4 cell arguments are seen. In that case the value of V3 willp<be used as the length of the formula for V1 and the value of9V4 will be used as the length of cell V2. If either value ?in V3 or V4 is outside the range 1 to 109 both values in V3 and @V4 will be ignored. Also on output the W accumulator will be set9to -1. if V1 is lexically earlier than V2, 0. if they aren:lexically equal, and +1. if V1 is lexically later than V2..skip 1t .indent -13I*U DBLENFRM V1:V2 6returns the length of the formula for cell V1 in the %9accumulator and in cell V2 IF CELL V2 IS VALID. Otherwise 6the cell specified in V2 is ignored, though it must be#present in the command or function. .skip 1e .indent -13V*U DBTRMFRM V1:V2,V3,V4e;Reads the formula in V1 and uses V3 and V4 as start and endt9byte numbers within it. It returns to V2 the formula that";is between the start and end bytes, trimming the V1 formulah?into V2 by chopping out the undesired parts. The find substring.?function CMPFRM can be used to find delimiter bytes if absolute#columnar formatting is n00QNNN6%! !ot desired. ;As in all these functions, CMPFRM and LENFRM have the forms .LEFT MARGIN 1.pageu.C APPENDIX E.CAUTOMATIC INITIALIZATION.PHAnalytiCalc will read SYS$INPUT during setup phases on VAX and then read1SYS$COMMAND: for spreadsheet commands ordinarily.S!It can continue reading SYS$INPUTRFhowever, in the "//" mode command entry mode. To get it to do so, justFinclude a _~ character in your title somewhere. It will be replaced byEspace before use, but flags to stay in SYS$INPUT so your command filelcan do initializations. .PCA prime use of these initializations is to set initial command modeEA(either a // or a /; command), and to set "accumulator formulas".A?The formulas A0 through Z0 are scratch formulas, but if specialc?characters are entered as commands, they are transformed moduloEB32 into valid codes. A fudge factor is subtracted if the result isAover Z. The ASCII code is modified so that the "=" character getslDmapped into the T accumulator. By entering the text "L" (without the>quotes) into T0, the = key becomes equivalent to the L command=(so =C5 as a command goes to cell C5). This sort of thing can Ballow an installation to tailor some keys to have the same effectsCas on your favorite CP/M or MS-DOS spreadsheet (assuming you're notoBalready using AnalytiCalc on PC; it has a similar feature and alsonow has dual modes.).P/The dual modes (// command going to the "mostlyEcommand" one, /; to the "mostlynBentry" one) allow you to enter numbers and text conveniently where<that's mostly what you're doing, and to give commands faster=(by avoiding the /) where you're mostly issuing commands. TheL9/# command is there to let command procedures use a known?;environment and work in both cases. This can be convenient. :On the PC version, if you're in /; mode and type a command<beginning with the / character, a short help message flashes=onto the bottom line. On VAX this isn't done. However, on VAXnCthe usual solution is to use the function keys for common commands, ?so letter commands won't be used often in situations like that.a?Since each installation controls the keypad definitions (excepte<that PF2 is hardwired as a HELP command), a built-in message?seems inappropriate. And the single-character I/O that would be ?needed to support it is hard on the system. (Be aware that Goldt3PF2 is also hardwired to be a keypad picture (H9).) .P=All told, you'll be able to configure the command language ofi>AnalytiCalc considerably by tailoring the .CMD files called by<keypad keys and by setting up the A0 to Z0 formulas to match<desired special keys or letters to functions of your choice.;(Letters not otherwise used can also be remapped. Thus, form<example, Y is not a command starter so if the Y0 accumulator:gets some text, that text will be inserted at the front of=the command line and the command executed (if legal). Several @letters like B, Q, and Y exist that are free. Other accumulators<can be used via special characters like the = sign. A bit of7experimentation will allow you to find which are which.A.P@For communication to other programs, consider the DIFDB or DIFRW<programs also. These convert between saved AnalytiCalc files>and DIF files, or DTR-usable data files, and DIFDB can be used>for some exotic sheet combine and re-sort applications. If the>DIF format is inconvenient, the format of an AnalytiCalc saved>sheet is described in another document in the AnalytiCalc kit..PCI hope you enjoy AnalytiCalc. If anyone makes a modification and/or @improvement to it, or moves it to a new system, the author wouldDappreciate a machine readable copy. Send to Glenn Everhart, 409 High!St., Mt. Holly, NJ 08060. Thanks.r.page .cINDEX .print index.page \~00QQJH+%O-%TADATADATA AnalytiCalc Save File Format5 AnalytiCalc's P class commands use a sequential file8which encodes the values in active cells only. This file5may readily be handled in Fortran or other languages.2 Each cell is output in 2 lines with the followingformats:' A1,I5,',',I5,',',109A1 (SYMBOLIC SAVE)* OR A1,I5,',',I5,',',E50.35 (NUMERIC SAVE) and then I3,',',9A1,',',I5,The numbers encoded in the first format are:<A1 - Letter P or D indicating Physical or Display sheet save5 (usually ignored). Note: Upper case P will normally6 indicate formula records; lower case p will indicate< value records. Default save is now a value record followed3 by a formula record for each cell. Programs using5 saved files should either take the first record for2 a cell if using values, or check the case of the initial letter.;I5 - Row relative to cursor at save time, starting at 1 for8 cursor location and increasing (saves only from cursor right and down):I5 - Column relative to cursor at save time, starting at 1109A1;or - Formula in cell, or value in cell (depends on Symbolic)E50.35 or Numeric save which is present)-The numbers encoded in the second format are:;I3 - FVLD - Valid byte. Its meaning is that negative values; are text (-1 means alphas are present, -2 or -3 mean only> numerics and/or punctuations), 0 is an inactive cell (should< never appear in a save), and +1 means formula with alphas,@ +2 or +3 means formula with no alphas (2 or 3 switches whether it was computed or not).19A1 - Format string for formatting cell on output@I5 - Type number. Normally 2 for reals, 4 for integers, negative7 values mean uninitialized. Negative numbers basically never will appear here.= The fields are separated by commas so BASIC can handle them.9 These numbers may be read by FORTRAN formats as follows:"1000 FORMAT(A1,I5,X,I5,X,109A1) or 1000 FORMAT(A1,I5,X,I5,X,E50.35)2000 FORMAT(I3,X,9A1,X,I5)9 Note this sort of encoding is needed to allow the format>encoding to be recorded in the file; the DIF format lacks room@to do this. On read-back, cells outside legal boundaries are notused.< To add pie charts or other graphics, a simple mod to PCGRAFDwith addition of suitable graphics output routines for your favorite@graphics device would give such graphics output from AnalytiCalc;saved spread sheets (provided they were saved numerically). AnalytiCalc> Your Very Own Spreadsheet ( ... that won't break your budget)% available in source code courtesy oft Glenn C. Everhart9 (and with thanks to the DECUS library which supplied theh4 CALC program which inspired this one and furnished some of its math logic..)e@ AnalytiCalc is a spread sheet and calculator program written inNFortran to make it relatively easy to put onto a variety of different machines<developed out of a program called CALC in the DECUS library.FIt is written in a dialect of Fortran-66 to minimize the difficulty of%porting it to other than DEC systems.eC In AnalytiCalc, there are two sheets to keep in mind. One of theseG?is the "physical" sheet, which contains some number of rows and Ccolumns named by CCrr where CC is an alpha name of column (starting@from A thru Z, then AA, AB, AC, etc., and for as many letters asDit takes, and rr is a row number in decimal starting from 1 thru theBmax you allow. These cells are continuous but may not all be used.CA direct access file is used to store their format information; the Bsize of this file is determined by the size of the physical sheet.@128 bytes are used for each entry. These break down into 109 for>the number or formula entered by you into that cell (which mayEbe a multistatement line), 1 for a check, 1 for validity information,aD8 for display format, and a few spares for flags. Since this file is@accessed frequently, it should be on as fast a disk as you have.; The second sheet is the "display" sheet00"QNNN6%! !, which is the partaBof the physical sheet you actually display on your VT100 terminal.A(You may customize the terminal by modifying the UVT100 routines; Ethese control actual special terminal functions. AnalytiCalc does nottDask very much of a terminal, so most any reasonable screen should beBusable.) You may associate ANY part of the physical sheet with theCdisplay sheet. This may go down to the individual cell if you like.Y<At startup, the upper left part of the physical sheet is the?display sheet; change it at will. You may specifically elect tomCmake a column in the physical sheet into a row of the display sheetS@or vice versa, but normally will select rows to go into rows and?so on. The computations in the physical sheet may relate values <to other values elsewhere on the sheet by equations for each?cell based on other cells. These equations may refer to certaino<physical sheet cells by name in FORTRAN-like syntax, or they=may be written to refer to cells relative to current positionHin physical or display sheets. g< When you copy cells around the spreadsheet, you may specifyDwhether the variable names should be adjusted for the motion or not,Ffacilitating reuse of formulas. However, the current-location-relativeGforms are not altered in either case. They are useful where the display Gsheet is some arbitrary projection onto parts of the physical sheet andiGit is desired to have formulas work and make sense over that projectioniMrather than over parts of the physical sheet which may be scattered all over.aGWhile the current-position-relative forms are not relocated when moved,i(they work without needing to be altered.> These forms (current location relative) are of the appearance D#nn#mm or P#nn#mmFwhere D implies display sheet and P implies physical sheet. The D formAis frequently more useful, but only if those cells will always bedDon the displayed page. The numerics nn and mm may be either positiveBdisplacements or negative ones with the - sign. Thus the following are valid:% D#3#-6 Current col+3, current row-6 # P#0#2 Current column, 2 rows downt% D#-5#2 5 columns left, 2 rows down.i: You may also specify a range of variables by giving theirCnames separated by : (colon) with no intervening spaces. This range Amust lie either in the same physical row or column and begin withhJthe upper left end of the range. In expressions, there are 27 accumulatorsEglobal to the whole sheet, named A thru Z and %. % is always the last Bcomputed number and A-Z may be used in multistatement lines. TheseBare lines of equations with individual operations delimited by theCcharacter "\" (backslash). In computing the sheet, AnalytiCalc goescBover the cells one at a time and computes any cells that are validA(i.e., for which there has been anything ENtered). You may define,=a sheet that will require multiple passes to compute. Use thetRecalc command to do this.? Note that the result is left in the current physical location.0DFor functions of more than 1 argument (MIN,MAX,SUM,AVG,STD), no = isDpermitted. For other expressions, normal CALC syntax is OK. However,?note that no such expression may exceed 80 characters. Break upCHlong expressions if you require them. When you drop into Calc, variablesNare left with values set and variables A1 on exist and may be given precisionsHup to double precision (8 bytes are available). However they will not inPgeneral be passed back to the spreadsheet but may be used as hidden accumulatorsLfor the spreadsheet. There are two commands to let you put numbers from CalcKinto the spreadsheet's formula file (*P positions you in the physical sheettMwhile in Calc, and *W writes the current contents of the % variable into thatyJcell), but they are not very convenient and probably would be little used.FThe variable % is set up for single-argument functions or expressions,,and also for the MIN/MAX/AVG etc. functions.= The syntax of the *P command is either just *P (which causeshCCalc to prompt for column and row), or *P Variablename (which move00*QQJH+%O-%TADATADATAs Gthe current location to the named location), or *P@ variable1,variable2dI(which moves to the location which is defined by variable 1 and 2 as col.n and row).n> Some other commands exist for the main benefit of AnalytiCalcin Calc. The command *F LABELaAwill evaluate the % variable. If it is positive and nonzero, thentFthe current input line will be rewound and the program will (silently)Eseek a line of the form *CLABEL. This allows loops to be defined withn% as the counter. - The command *QF or *QW file ?searchkey? <will open file and look for lines starting with searchkey as>given (with _ as a wild character). Upon finding this, it will@look for the and if it finds it, it will select the part ofAthe line in the file between the 2 characters given (which may ber?alike) as they are first found, and will do one of 2 things. Ift?the command was *QF, then Calc will Float the value found thereR?(attempting to use a large E format) and return it in %. If thec>command was *QW, then Calc will Write the selected part of the?record into the formula at the current physical position on theBsheet (which may be reset by an IMMEDIATELY PRECEDING *P command).@The record must BEGIN with the search key (at present). It is up=to the user to make sure the formulas copied make sense. This>however allows access to sequential files of data which can be;created by an editor, word processor, etc., and which might:hold keyed information that the spreadsheet should be ableto manipulate.F For an adequate introduction to the commands and uses of AnalytiCalc,Ksee the manual file (AnalytiCalc.RNO). The following is a crude and partial*listing of some of the commands available: COMMANDS INCLUDE: E = ENTER NUMBERS OR FORMULAS( M = MOVE DIRECTION (1,2,3,4 = U,D,L,R)$ D = DISPLAY CHARACTERISTIC CHANGES  DISPLAY ALTERING SUBCOMMANDS:B DL V1:V2 RN:M OR CN:M - DISPLAY VARIABLE RANGE V1:V2 AT DISPLAY ROW OR COL N THRU M.E This means you move physical sheet variables V1:V2 onto the displayC sheet either going across a Row (Rn:m) or down a column (Cn:m) onG the display sheet for as many cells of the display sheet as there areA variables in the range you specify. The labels on the sheet areD updated to correspond to the physical cells used. However, the n:mB in the Rn:m or Cn:m are display sheet numbers, not physical cell@ numbers. Thus, you must use the display column and row numbers? (Columns are labelled, e.g., B = 2, 2 being the display sheet> column number), not physical numbers. Display sheet rows and1 columns are always counted from 1 to a maximum., DF V1:V2 [FORMAT]B SET FORMAT FOR DISPLAY OF V1 THRU V2 TO [FORMAT] (NOT INCL. [])@ A OR L DESIGNATOR SAYS SHOW TEXT IN FORMULA BUFFER. ELSE SHOW NUMBER VALUE AT THAT LOC.D DT V1:V2 F OR I - SET NUMERIC TYPE OF V1 THRU V2 TO FLOAT OR INT.0 DW N,M - SET WIDTH OF COL. N TO M CHARS WIDE.< This will redraw the screen. You may set any column width independently of others.1 DB MC,MR - SET MAX COLS TO MC, MAX ROWS TO MR.g l; V = VIEWSCREEN UPDATE. REDISPLAY EVERYTHING FROM SCRATCH. * VF = VIEW BUT DISPLAY FORMULAS ALL LOCS.5 C = COPY NUMBERS/FORMULAS/DISPLAY STUFF(FORMAT)/ALL 4 1,2,3,4 = MOVE CURSOR UP,DOWN,LEFT,RIGHT 1 ROW/COL> (THESE DO NOT INVALIDATE CALCULATION SO RECALCULATION IS NOT DONE FOR THESE COMMANDS.)e< R = RECALCULATE SHEET. RM = Recalculate Manually (inhibits? recalculation until an R command is given to reenable it andhA perform a recomputation. This speeds up entry of data on largec sheets.5 K = DROP INTO CALC CALCULATOR (*E RETURNS TO SHEET)a/ L = LOCATE CURSOR (MOVE TO POSITION ON SHEET)a? (L VARIABLE IS THE COMMAND, AND IT LOCATES ORIGIN ON PHYSICALn? SHEET. WILL ALSO MOVE CURSOR ON DISPLAY SHEET IF THAT CELL ISh8 DISPLAYED, BUT OTHERWISE DOES NOT DISPLAY THE NUMBER.)) Z = ZERO FORMULA/NUMBERS (OR ALL SHEET)%% ZERO VARIABLE ZEROES THAT VARIABLE?: ZERO VARIABLE1:VARIABLE2 ZEROES THAT RANGE (ROW OR COL)> ZA command ze002QNNN6%! !roes all of sheet. ZE v1:v2 zeroes range only.K The command is ZA (you will be asked if you mean it; Y confirms, anythingtI else abandons Zero command, or ZE V1:V2 to zero the range V1:V2, whiche just does it. X = EXIT (RETURNS TO OS)F S = SETUP (Allows reset of title, default display format for floats,& and global col widths and the like.) P = PUT NUMBERS TO FILE.E Actually, P and G files are ASCII but in a funny format. Locationsd@ are based at current physical position however, and a maximumC displacement down and right is asked for. Cells will be saved oryA loaded only within that displacement. This allows you to mergetA all or parts of spreadsheets, or to save only parts of sheets.eD On load, minimum displacements will be asked for also. This meansB you can load a saved sheet whose maximum and minimum horizontalD and vertical coordinates are specified. Thus you can get whateverK part of a saved sheet you need to merge with your current one. Formulas,n( types, and values are saved/restored.H G = GET NUMBERS OUT OF FILE. USES CURRENT ORIGIN FROM L COMMAND OR 1,1+ TO ENTER NUMBERS (ALLOWS COMBINING DATA).-D Note the lower end of restore ranges counts starting at 1, not 0.C W = WRITE SCREEN ON PRINTER (HARDCOPY FORMAT APPROX. AS DISPLAY.) I @file Starts reading commands from file. Only one level of indirection-F is supported and commands must be exactly as they would be from the4 terminal. Control returns to the terminal on EOF.K OR var or OA var = Origin set (Absolute or Relative). These commands are N the way to do a quick scroll around the physical sheet. They will establishM the origin of the display sheet (the upper left part of the display sheet)-K as the physical variable location named. In OA mode, the display sheet'skI map is rewritten starting at 1,1 and continuing to the current displaytG bounds as defaulted or set by DB n,m command. In OR mode, the map is J rewritten right and down from wherever your current display position isI only, giving the effect of windowing quickly. Note that the DL command H permits you to further refine windows and have as many as you want on your sheet. 4 NOTE THAT N-ARY FUNCTIONS ARE FNAME[ARGS,ARGS,...]> AND RANGES ARE CELL1:CELLN. MULTIPLE COMMANDS IN FORMULA ARE DELIMITED BY \ CHARACTER.- ENTER COMMAND-6 EN expession. expresion may be numbers/text/formulas1 MOVE COMMAND (set MOTION DIRECTION AFTER ENTER)p) M1,M2,M3,M4 MOTION DIRECTION IS U,D,L,R  COPY NUMBERS COMMAND# COPY (NUMBERS,FORMAT,DISPLAY,ALL)-B CV=COPY VALUE, CD=COPY DISPLAY FMT, CF=COPY FORMULA, CA=COPY ALL. Ca V1:V2 V3:V4 COPIES FIRST RANGE TO SECOND.G 1,2,3,4 POSITIONING COMMANDS. These correspond to Uparrow, Downarrow,)K Leftarrow, and Rightarrow (in the same order as on the VT100 keyboard). B LOCATE CURSOR ORIGIN (Go directly somewhere on the phys. sheet.) FORMAT IS L VARIABLE% ONLY 1 VARIABLE NAME TO BE ENTERED.e ZERO COMMAND ZA OR ZE V1:V2 PUT NUMBERS OUT TO FILEh% USES RELATIVE FORMS TO CURRENT POS.e: PD = PUT OUT DISPLAY SHEET. PP = PUT OUT PHYSICAL SHEET. Customizing:< The VAX version of AnalytiCalc uses only FORTRAN writes forGterminal output. Nevertheless, there are a few things to watch out for:y< 1. The RECALC file's DOIF subroutine calls a routine called= DOSTMT which is also the caller of the routine calling DOIF. : As long as your machine uses a recursive calling sequence> as do VAX, PDP11, or generally stack-oriented computers, this> presents no problem. However, if you have a nonstack machine,< this could clobber your return and blow AnalytiCalc's mind.; The solution is to make another copy of the DOSTMT routine; and have DOIF call it; nested IFs are syntax errors anyhow, and this would solve the recursion problem.? 2. There are some OPEN statements whose function is to arrange: that FORTRAN should ignore all carriage control on outputA to the terminal (called TT: or TI: on VAX or PDP11 respectively)> so that00:QQJH+%O-%TADATADATA the Fortran writes to logical unit 6 do not cause any; extra carriage return/linefeeds to occur. If you can't get: that to happen with these OPENs, you need to find another8 way. Also it's assumed that the ESCapes can be typed by FORTRAN.> 3. The terminal should not be in the "autowrap" mode where it3 gets a CR,LF from the OS every so many characters.: 4. If the terminal is not a VT100 equivalent (or maybe an= ANSI 3.64 type; not much VT100 stuff is used that's not 3.64< compatible), you must modify UVT100 to generate the control= codes needed for cursor position. All special cursor control is done there.< 5. There may be some debug code left with first character D; in column 1. If so, treat it as comments or remove it. The: DEC compiler ignores such lines unless told to do a debug compile.? 6. The syntax of CALL ASSIGN(logical unit, array) is to assign> the file in array, terminated by a null byte, to that logical% unit. Do it differently if you must.< 7. Assumptions that Logical*1 variables are a byte long and: may contain characters are widespread herein. If you have< a machine like a PDP10 or DEC20 with 36 bits, try to get it: to somehow treat characters as some submultiple of a word< and fix up the equivalences. Byte addressed machines should9 not have much trouble with this code, but there could be9 problems in some cases with the REAL*n, INTEGER*n and so8 on declarations. IBM Fortran probably will buy them but not all others.< The byte variables mostly just contain characters or may be< treated as though they did. The exception is the FVLD array@ in which they are treated as small integers. Each array element8 corresponds to an element of the physical sheet and has a value meaning:$ -3, -2 Text, but contains no alphas -1 Text, contains alphas 0 Cell not initialized; 1 Number/formula, contains alphas (recalculate every time)3 2 Number, no alphas, already computed binary value5 3 Number, no alphas, must still compute binary value7 Numbers outside this range are undefined but the -/0/+= significance is all that is tested in most places. The +2 is tested for equality.9 8. To convert numbers for printing, the ENCODE statement is used. Its syntax is ENCODE(count,format,array)list where1 count = maximum number of characters to convert4 format = valid FORTRAN format designator (an array most times)3 array = the array which gets the character string! resulting from the conversion% list = the normal Fortran I/O list.8 If you don't have ENCODE, you may be able to replace it: with WRITE/REREAD on a scratch file or something similar.: There are only 5 or so Encodes in the program, so the job; won't be too tough to replace them once you figure out howa9 to do it on your machine. I also used ENCODE to test thei9 Formats entered by the DF command. That is done prior to 7 writing the formats to disk so that a format that willr8 crash Fortran doesn't corrupt your working file on disk8 and prevent recovery. The Q start option or the Y start7 option can recover the sheet, minus the new format, ifD all is well.I3 Note the Fortran 77 read/write to arrays could beO) a suitable substitute for encode/decode.h7 9. Overlay commands are supplied; these may be crudely  followed on other systems too.m5 10. To permit fewer columns, if references to % were 3 isolated and its entry in the TYPE array isolated,b: the restriction on the permitted numbers of columns could be lifted.nC These are the major things to look for when converting AnalytiCalc Hto a different environment. Be aware there are other differences between3Fortrans, but not too many will be seen, hopefully. D The author will appreciate hearing about, and preferably receiving,Gcopies of sources to AnalytiCalc that anyone getting it modifies either 9to add functionality or to get it to a different machine.eKPlease note it's copyrighted for non-commerical use only, so if you want toaJmake a commercial version, you MUST get in touch. I will be more f00BQHQNN6%! !avorablyFinclined to permitting sales of modified versions to those who send memachine readable sources.eEA recent effort converted the PDP11 version to a Fortran 77 compiler.eIssues encountered were:5 LOGICAL*1 arrays needed to be changed to CHARACTER*1o8 Because byte ordering was not guaranteed and assigns of. int=char or char=int didn't always work, the. functions int=ICHAR(char) and char=CHAR(int)0 were needed. To handle cases that had the char3 as a SIGNED value, I needed my own function JCHAR 0 which looked at the ICHAR output and if it was. greater than 127 subtracted from 256 to give the desired result. 7 Since int=int.and.int works via masking in DEC Fortran0 it was used that way. Other fortrans don't all- allow this and complicated EQUIVALENCES aree2 needed to do logical operations. If the compiler5 doesn't do logical ops via booleans, you lose againe and need functions instead.e6 If your compiler lacks BLOCK DATA you have to put all3 the code in a subroutine (which can be overlain).t7 The parameter statement is a problem if missing. Use ay2 generic macro processor to convert parameters to- numbers as needed. Watch out if it's flaky.o: Console I/O may not be able to avoid the Fortran included3 CR/LF characters. It may need to use a subroutineh9 to dump characters directly. In this case, F77 internalf6 writes to char strings can be useful. Limitations to: 127 character strings are a pain but they are not really; a problem here; there never is this long a string needinga9 to be an internally read/written string. Just dimensione: the char string a little short; it's equivalenced to the) right length string as a char*1 string.o? Missing ENCODE/DECODE can be replaced by internal writes. Noteh0 one ignores Fortran carriage control on these.B Default logical unit assignments may not be as easy to control on non DEC OSs.B Where integer precision is controlled by source code, one must be> careful to define new functions to convert between different% integer lengths and floating point.P< System dates may require assembly language calls to get to.< Paint out multiprecision accumulators wherever desirable to shrink the program.a? For speed on micros, any external HELP file needs to be randoml: access; sequential read is TOO SLOW. Especially on MSDOS6 and the like where no notion of contiguity exists so. all accesses may require MANY disk accesses.? Overlay schemes in MSDOS run MUCH more slowly than PDP11 since 4 there's no contiguous allocation and loads seem to6 require full file open logic. At least 1 and maybe 2' orders of magnitude speed difference.t Glenn Everhart 409 High St. Mt. Holly, NJ 08060d) Terminal Screen Philosophy for AnalyCalcc7 When you first see PortaCalc, it appears as any commono@electronic spread sheet, even to the standard naming of rows and:columns. However, there IS a difference, and its impact israther profound.= On conventional sheets, the initial display, and the initiale>concept, was a single abstraction, "the spreadsheet", which in@PortaCalc terminology is the "physical sheet". This is the sheetEon which all calculations take place, and some of which is displayed.CThe cursor points to the sheet, and the part of the sheet displayedtCis adjusted so that it contains the cursor. Thus, moving the cursore0around allows you to move around on the display.: This simple picture gives an easily understood picture ofAhow scrolling is handled; when you move the cursor to the edge ofp@the screen, and try to go further, the screen is updated to showBa different part of the sheet. This is reminiscent of text editorsand simple to understand. 5 Unfortunately, this simple 00JQQJH+%O-%TADATADATAabstraction is not alwayst>sufficient. When it is necessary to display more than one part9of a sheet at a time, it is not enough to be able to movedfrom one part to another.o8 This has led to the concept of "windows" on the displayDand having the cursor point to a "window". However, since the cursorEis still conceptually addressing the physical spread sheet, scrollingd@still works, and moving from one part of the screen to a part in@another window requires introduction of new commands. It is alsoAnecessary to add commands to prevent some parts of the sheet fromi?being scrolled onto the screen, or scrolled off, so that titlest?may be left on screen, or pay rates kept off, while other partstAof the sheet are worked on. Now the conceptual model is no longer Athe clean, compelling one it started out as. Moreover, due to therAdifficulty of maintaining controls on all the windows, only a fewn>separate regions may be ordinarily selected for display at any one time.c8 To avoid all this cumbersome machinery, PortaCalc works?by introducing a different concept. In PortaCalc, there are twoh<sheets in use at all times. One is the physical sheet, which<works in a fairly conventional way. The other is the displaysheet.4 The display sheet is what is displayed, and is what:the cursor points to on screen. Cells of the display sheet8each are associated with cells of the physical sheet, so?the associated cells values or formulas are displayed. However, <the mapping is independently controllable, so that the parts=of the physical sheet displayed may be controlled to a degreecundreamed-of by other sheets. 8 The display sheet also has a role in calculation. While=formulas may make reference to physical sheet addresses, theye@may also refer to display sheet locations. Thus, a formula which=adds the current cell to its next physical sheet cell will do <so EVEN IF THE ADJACENT CELL IS NOT ON SCREEN. And a formula?which adds the current cell to the next one on the display wille;add WHATEVER value is displayed adjacent to it, EVEN if thei=cells are far separated on the physical sheet. Adding displayh=sheet cells, for example, may result in adding physical cellse>which are from very different parts of calculations which have.been moved next to one another on the display.8 Because the display sheet is so flexible, some commandsAare provided which have display sheet addresses, which are alwaysRBnumeric (column,row) pairs. Therefore, display sheet addresses areFdisplayed on PortaCalc screens as well as physical ones, to facilitateDthe use of such commands. One of these commands, for example, is the@DL command, which associates one or more physical sheet cells inDa row or column with one or more display sheet cells. It is possible@to have a display column represent a physical row and vice versaBas well as to set up more standard mappings with this command. The7watchword of PortaCalc is to provide power to the user.i> Since the cursor does not point at the physical sheet, but to=the display sheet, moving across windows is trivial here, ands=information hiding commands are largely unnecessary. However,m@the display sheet does not scroll automatically, nor is it clear>that any such operation can be meaningfully defined. Rather, aBseries of commands permitting rapid setup of windows and resettingDdisplay sheet origins are provided, so that the ability to scan over<the physical sheet quickly exists, but displays of arbitrary=complexity can be set up and printed. To facilitate setups ofp@these, a journaling feature allows capture of the commands which@set up the mappings, and the journals can be rapidly replayed torecreate them at need.< This paradigm has its weak points as does the standard one,;but its strengths are its ability to produce displays which @exactly meet users' needs while retaining the ability to quickly?shift displays to areas needed. The user who wishes to think ofkBPortaCalc in the way he does about other spreadsheets can considerCthe origin moving commands of the displa00RQSQYQN6%! !y sheets as a manual scrollc=operation and the relative-origin moving commands as a way ton<create windows. The user who wishes to set up a more complex<display as a summary of a large sheet has, however, the full<power necessary to set up exactly what he wants in an easilyunderstood and manipulated way.n PortaCalc Mini-Tutorial LOOKUP ; The LOOKUP function is commonly found in commercial spreadtCsheets. This is not directly present on PortaCalc, but is simple tohobtain.e; The LOOKUP function is given a cell and a table to look up Bin, and it searches the table for the next larger element than theCcell given (or the entry just before this; the definition is easilyhGtailored in PortaCalc) and returns the next element in the matrix rightor down from the cell found.< In the example sheet of Fig. 1, the matrix from A2 to D3 isBthe lookup table. The desired action is to search for the entry inCthe row A2:D2 which is greater than the chosen cell, and return thenext cell down from that entry. < To do this, we use the formula in cell B6. Accumulator A isBused to hold the value we look for, accumulator B holds the lengthAof the row we look in, and we start an indirect file having moved)Dto cell A2, the upper left cell of the row. The command file invokedDscans right until either B counts down (using up the count) or untilFwe find the desired cell. Since in this case we look for a cell largerAthan 15., we find cell C2. The command file then returns the nextAlower value (3. in this case). Note if we were searching a column =instead of a row, a simple approach would have been to call ardifferent indirect file.< The command file is exhibited below the sheet. Note its useDof the locate function *P cell to move to relative cells, and the *JAconstruct, which jumps ONLY if the last calculation resulted in acnumber that is larger than 0.i The following are the figures:o3 Demonstration of LOOKUP functionality in PortaCalcaIROW/COL A= 1 B= 2 C= 3 D= 4eM 1> Cell range A2:D2 has values, A3:D3 has results cM 2> 6. 11. 35. 76. tM 3> 1. 2. 3. 4. hM 4> rM 5> Next line holds lookup for A6 oM 6> 15. A=A6\B=4.\*P A2\*@LKPRW.CMD M 7> 2 FIG. 1 - SHEET using a lookup function in cell B6*C LOOKUP ROW. =*C USE: A=VBL TO TEST\B=ROW LENGTH\*P LOOKUP START\*@LKPR.CMD *C LOOP %=(P#0#0)-A *J GOTIT*P P#1#0B=(B)-1.*J LOOP>*C GOTIT%=P#0#1 9 Fig. 2 - LKPRW.CMD command file called by sheet of Fig 1>@ Had it been desired to retrieve the cell to the left of the oneGgotten, the last line might have been replaced in the command file with %=P#-1#1>>which would retrieve the cell to the left of the one currently returned.G< Similar techniques can be used for other sorts of searches.ENote the *G construct more or less directly handles the functionalityC,of the CHOOSE function of most spreadsheets.% PortaCalc (AnalytiCalc) TutorialF Using a spreadsheet is not always easy the first time, and the F AnalytiCalc spreadsheet is no exception to this. With a little F practice, however, it's possible to become proficient in using F its basic commands. This tutorial is dedicated to giving you F some practice with a simple problem of wage calculations using : AnalytiCalc which will lead to some facility using it.F We will assume AnalytiCalc is already i00ZQQJH+%O-%TADATADATAnstalled on your computer F and that it may be started by giving a command "PC" at a F terminal. We will also assume the version of AnalytiCalc that is G run in this way is appropriate to the kind of terminal you have. F Since the display can vary a little, we'll assume a VT100 F terminal in the example following, but other sorts of terminals F can be used. You should be aware, however, that while the arrow F keys work correctly on VT100 and VT52 (or Z19/Z89) terminals, F they may not on others and you'll have to use the commands 1-4  for cursor motion there.$ Now let's consider the problem:F Assume you're a group leader in a company and want to be able to F print out your total labor costs per week for a group of a dozen F or so employees. You know the labor costs per hour for each F employee and the number of hours worked on this particular F group's work by that employee that week. You want to have a G total cost for each employee, and an overall total cost per week. F You'll enter the hours worked, and the labor cost, and get the % total. Then you'll print it out.F To generate this figure, we'll have to design a simple sheet and F print it when filled in. So let's get into the spreadsheet now to do so.F Remember that in all commands (except direction arrows) you must F type a RETURN after the command to complete it. This is not F specially illustrated in the examples here but is always F necessary, just as it is for most other commands you give to the F computer. Until you press RETURN, you can use the DEL key to F wipe out characters or the Control-U key to erase the line ' (standard line editing characters). You type:> PC (or whatever starts AnalytiCalc up)F The sheet will load and print its first screen, announcing its C presence and authors, and will ask a few preliminary questions.% The first of these questions is:, Enter new numeric format default [Y/N]:F The default format is F9.2, which is FORTRAN-ese for floating F point numbers with 9 total digits displayed and 2 decimal points F (appropriate to use for dollars and cents). This is likely to be F OK for this project. If we wanted, let us say, 10 digits total F (counting the decimal point) with one number to the right of the F decimal, a format like F10.1 could be used. But we won't do that G here. (Numbers are kept to 17 digits precision internally; 8 we're only talking about how much is shown of that.) So we reply. Type:  N+ AnalytiCalc will then ask for a title: Enter Title of Spreadsheet>F This is just a title, any 80 characters or less. You can put in F any desired text here and it will appear at the top line of the F screen and of any printouts of the screen you make later. Just  enter a descriptive phrase:" Weekly Labor Expenses Summary? The PDP11 or PC version of AnalytiCalc will now ask some F questions about storage allocation. Tell the program you expect F to use about 10 columns and 20 rows and, when it asks for sizes F of disk files to use, use its recommended numbers (or a bit more) F on the PDP11. On the PC version you can tell it to use 1K disk F files (which will keep it from allocating disk storage) for this 9 tutorial. The VAX version will not need these inputs.F You now have a screen which displays something like 7 columns F and 20 rows, with the columns labelled (initially) A, B, C, D, F etc., and the rows labelled 1 through 20. Your sheet is normally F larger and not all of it fits on the display at once. Thus, you B can move around it and see parts initially not obvious to you.F In each cell (row-column intersection) of the sheet (and the F screen), you00bQSQYQN6%! ! can put a formula, a number, or text. A cursor (a F reverse video block) will move around the screen indicating the F present active location. When you enter this information, it 1 goes into the cell pointed to by this cursor.F Move the cursor around by using the arrow keys. Note the cursor F moves in the direction of the arrow keys so long as it can while  staying on the screen.F If you want to move past the edge of the screen, you do it with F a different command. The screen cells are called by the column F letter and row number, using names like A1, B5, R3, A18, or G others. The next column after Z is AA, then AB, and so on. F There is no logical limit to the number of columns, but there is F an installed limit, generally 10000 for PDP11, 18,000 for PC, and  32,000 for VAX.F If you want to see, let us say, columns L through R, you use the command: OA L1G which resets the screen to make L1 appear at its upper right. F Any cell can be made the upper right. (Actually, every cell F displayed can point to an independent part of the worksheet, but  we won't do that here.)F Now to return the display to the initial one (the upper left 0 part of the entire sheet), issue the command OA A1F and things will be replaced. To move the cursor to the upper % left cell, also issue the command L A1F which moves the cursor to cell A1 (and this command can move the F cursor directly to any named cell, EVEN IF THAT CELL IS NOT F CURRENTLY BEING DISPLAYED, though if it isn't displayed you can't  see its' value).F You'll note the commands are always entered on the next to last F line on the screen, and the last line has some mysterious F contents so far. The last line actually always displays the ( formula or text in the current cell.F Now that you've seen the way we move a cursor around, we must A design the spreadsheet screen we'll use to work your problem.F Let's have 8 columns which we'll label EMP NO, RATE, MON, TUE, F WED, THU, FRI, and TOTAL. The "EMP-NO" columnn will just have F and employee number (for identification), the RATE colunm will F have rate per hour for this employee, and the MON-FRI entries F will have hours worked those days. The TOTAL column will then be + the product RATE*(MON+TUE+WED+THU+FRI).F To enter this information, we need to set our screen up to F display 8 columns, 20 rows. We also want (let's say) only 8 F characters wide in column 1 and only 8 in column 2, 3, and 4, and 1 the rest stay as they are (default width 10).) First set up for 8 columns, 20 rows: DB 8,207 Now set up the columns to all have 8 characters. Type S The program will reply ! Alter Display Windows [Y/N]:B Reply Y since we want to change widths for all columns.  The program says . ENTER NEW GLOBAL COLUMN WIDTH, 1-120:  We enter 8@ We could set the widths individually with the DW command. F For instance, to set the third display column to a width of 9,  the command is DW 3,9 The program now asks:/ Reset display to Upper Left of sheet [Y/N]:! We reply N to skip that step.G The program now asks whether we want a different default format. F Since the old default, F9.2, is 9 characters wide, we do want to < change it, so the question and our reply look like this:5 Enter new floating numeric format default [Y/N]:YF The program now asks for a new format default. We will use a F display of 7 digits wide, 2 decimal places, which is expressed as 7 F7.2 here. The question and answer look like this:( Enter new format. Suggest F10.2>F7.2? (Note that we could use the DF command to set the default F format. The command 00jQQJH+%O-%TADATADATAto set cells D2 through D14 to the F7.2  format would be: DF D2:D14 [F7.2] ! but that is unnecessary now.)? The program now asks us for the title again. Enter the title  as before.F Now the screen has the widths we want. Enter the labels. Since . we're already at the top left, just start: Type: E EMP NOF which will leave column A1 showing the text EMP NO and this will F appear at the bottom of page. Now use the right arrow to go to  cell A2 and type: E RATE8 which should leave cell B1 containing the text RATEF Now move the cursor to cell C1 with the arrow keys (you can use & the 3 command instead if need be).F Moving the cursor this way is tedious where there's a lot to F enter, so let's set the program to do it automatically. Since F the commands 1, 2, 3, and 4 mean also to move up, down, left, or F right (which makes sense on a VT100 keypad since the layout of F the arrow keys is in that order there), we'll use the command M4 B to set the program to move right automatically after an enter. Type the command: M4< To avoid scrolling off the screen type the command also NS$ Now go ahead and type commands: E MON E TUE E WED E THU E FRI E TOTALF You notice the top row is now full of label information and the F cursor should now be sitting at cell H1 on the TOTAL column F (since the auto move can't change the settings of what is to be  displayed on the screen).F At this point, we can move down and enter the one formula we . need for each employee. Type the command: L H2F to move to cell H2 (which will be the first numeric total area F below the label). Enter the desired formula now. We use normal F parenthesized expressions, with cell names representing values 9 there. Thus, the formula will look like this: Type: E B2*(C2+D2+E2+F2+G2)F Notice that a 0.00 appears rather than the formula, though the F last line shows the formula. This means that AnalytiCalc knows F it was a formula or number rather than text. Its' rule for this F is that if what's entered contains any of the characters ".", F "+", "-", "(", or "[", it's numeric and gets displayed with the F default format (unless the format is changed with the DF command) F and otherwise it's text. If what you enter has any of these F characters in it, you can force it to be text by including a '"' F character in the text somewhere (usually after a lot of spaces so it won't show on a display).; (This formula could be written as B2*SUM[C2:G2] also.)F You now have the formula on the first of the individual total F lines, but you need to enter one like it on lines H3 through H14 F (since there are a dozen names on the list). Fortunately, you F needn't retype the formula. We'll copy it and relocate all F entries. Since entries aren't relocated above or to the left of F the cursor, do it while at A1 so all numbers get relocated. Type  the following commands: L A1 CR H2 H3:H14 VF This moves you to A1, then copies H2 to the range H3 through H14 F inclusive with Relocation (changes all B2, C2, D2, ... to B3, F C3, D3, ... and so on). The V command redraws the screen, since F AnalytiCalc will avoid redrawing cells whose value didn't change . (and these cells' values didn't just yet).F Now you need a total for all of them. Let's make cell A15 be F the label for the grand total and put the text "ALL" in it, and F make cell H15 have the sum of H2 through H14. Type the following  to arrange this: L A15 E ALL L H15 E SUM[H2:H14]F Note that the SUM function greatly simplifies entering the sum of F a whole column (potentially, it simplifies sums 00rQSQYQN6%! !of rows too). We F could have used it in the initial formula by making a multiple ? statement formula in row 2 which would have been like this: SUM[C2:G2]\%*B2F in which the "%" refers to "the result of the previous F computation". This style of multiple statement formulas can save F numerous cells and is the easy way to write formulas. The "\" F character delimits statements. We can also express this thought F as a formula like SUM[C2:G2]*B2, but often formulas will be ? clearer when expressed as several computations in sequence.F Now we have a complete set of formulas on the screen and are F ready to start entering data. Enter a few dummy employees F information to see how the computation goes. Notice that the F totals are updated at every entry. (From this point, it's simple).@ Enter commands as follows: (NOT the parenthesized comments) L A2 E 11111$ E 12.55 ($12.55/hr)% E 7.5 (hrs Monday)> E 8.0 (Hrs Tuesday. Note the required ".".) E 8.0' E 8.3 (Hrs Thursday)% E 8.0 (Hrs Friday) L A3& E 12222 (Emp # 12222) E 17.50 E 8.0 E 8.0 E 8.0 E 7.5 E 8.0F By now, you notice something: most of the hours worked are 8.0 F per day, with occasional exceptions. Your life would be easier F if you could just fix the exceptions and enter the 8.0 entries en masse. This isn't too hard.F Use the following commands to enter 8.0 in all remaining hour 4 fields (columns C through G, rows 3 through 14): 2 L C4 (Move to cell C4, the first to set)$ E 8.0 (Enter desired value)8 CA C4 D4:G4 (Copy so now C4 through G4 have 8.0)@ It isn't necessary to fill in the entire region by hand. F Type PF1, then keypad 9 to activate the copy cell to region command.? It asks for the start cell of the row. Reply C4. It then F asks for the end cell of the row. We're copying C4 to a region F of which it is the top left entry here, and the top row is F defined as C4 to G4. Therefore the end cell of the top row is  G4. Reply G4.? The program now asks for the Bottom Left of Left Column. We F want to enter 8.00 in all cells down to C14 through G14, so the ? bottom of the left column of the region is C14. Reply C14.? The program will now copy the cell to the whole region while  you watch.F Now the cells all contain the 8.0 entries desired and we can F fill in the rest of the desired data. Since we can do this = moving vertically, enter a command to move down on enter: M2@ Now go to cell A4 and enter the remaining employee numbers: L A4 E 13300 E 14400 E 15500 E 16600 E 17700 E 18800 E 19900 E 19911 E 19922 E 19933 E 19944F Now these cells are set up. We need only fill in rates and the ) entire sheet will be set up properly: L B4 E 11.56 E 12.0 E 21.4 E 8.55 E 15.32 E 16.0 E 17. E 6.78 E 17.35 E 22.50 E 24.35F We now have a full screen and the TOTAL column shows labor costs F as desired. Suppose the last employee only worked 7 hours on the @ Thursday: We now just go to that cell and change the value: L E14 E 7.0 Now the sheet is updated. F You now will probably want to print this to get a hard copy. To  do so, just type W- AnalytiCalc will reply with the request:i5 Enter print file spec., / after to omit borders>dF Give the name of a suitable file on disk or a printer that your A system understands. A suitable reply for PDP11 would be justi LP:F which will print the sheet. For VAX try00zQQJH+%O-%TADATADATA LPA0: (or whatever your  printer is called). F The program will churn for a few seconds and your printout will F be on the printer, a copy of what's on the screen (with some F extensions: if on VAX you tell it to display 50 rows, they won't 4 be able to be on the screen, but they'll print).F Since you may need this next week too, with some mods for hours, F it's a good idea to save the sheet. Here's how that would look 6 to save the sheet all in a file called WKLYHRS.PCC L A1h PPX Enter filename>WKLYHRS.PCCu( Enter max displ down to save or 0>0) Enter max displ right to save or 0>0bF (This includes AnalytiCalc prompts too: you enter the filename = and the zeroes (meaning the whole sheet) to save it all.)p, Now just for fun, let's try this again.= Use the X command to exit. (Reply Y to the question thatu asks if you really mean it.) XF Now run through the initial PCC load again and get another A blank spreadsheet screen again. We'll load the saved one in.eG Now we will assume you are sitting with the cursor on cell A1. e1 First we have to set up the screen as before: L A1e DB 8,20 DW 1,8 DW 2,8l DW 3,8 DW 4,8 , Now we load the saved sheet into memory. GP  Enter filename>WKLYHRS.PCCt+ Enter max displ down to restore or 0>0u, Enter max displ right to restore or 0>0 Enter min displ down>1o Enter min displ right>1F The program will churn awhile and your original screen will F reappear. Note the prompts allow you to save or restore any F rectangular region. Saving and restoring are done relative to F the cursor, so start from A1 always unless you are merging F multiple sheets into one larger one. In that case, beware of F formula changes too. (There is another way to write formulas, F using relocatable cell numbers of form P#col#row or D#col#row < which can be freely moved; see the manual for its use.)8 Notice the display formats were saved and restored.F Now that you have your saved sheet in memory, suppose someone F has been hired into your group and you need to add another line F to your list. This isn't too hard. You use the AR command to F add 1 row with formula relocation. If we want the line to go in 4 above row 14, the way the commands look is thus: L A14 AR 1RF Now you'll notice that row 14 and row 15 are identical and the F same as the old row 14. What's happened is that row 14 was moved F down, so what was row 14 is now row 15, and row 14 is free to  use.F However, since it still contains its' old contents, we can use F the fact that all the 8.0 entries and formula entries are there F and correct, and just set up the new employee number and rate, = and we're done. The commands to do this might look like:o L A14 E 23541 L B14, E 12.75 ($12.75/hr for this employee)F so now the sheet is again correct (apart from changes from the 8  hour daily hours anywhere).o8 If this sheet is to be saved, another PP is needed. To exit, type X which exits from the sheet.e# Additional pre-exit operation: F Suppose you want a report that won't show the RATE column F directly. This can be arranged by just setting up a screen F display that does not contain the B column. This is easiest to F set up with the OR command, which sets up what part of the screen F is displayed from the cursor down and right. We have to reset F column widths of column 2 also, so it will be 10 again. The 1 commands to set the screen up are like these: OA A1, DB 7,20 (We only need 7 columns)( L B1 (Move to 2nd column): OR C1 (Set so we see column C there instead)F The screen00QSQYQN6%! ! now shows colunns A, C, D, E, F, G, and H and may be F printed with the W command as it appears. Note that 20 rows will F appear. Had we wanted to see only the 15 or 16 rows filled in, F we would have used a command like DB 7,16 above. Had we wanted F not to have row and column letters and numbers on the printout, G using a / after the name of the file in the W command does this. sF The file, if it goes to disk, may be edited by any system editor  or word processor, however.dF For further instruction and commands, the system help command is G invoked by typing H (optionally followed by a digit 0 through 9). mF The PF2 key on VT100 (or grey on VT52) is also equivalent to the F Help 0 command. Most commands are briefly described in help F pages. The system manual is in a form to be easily turned into a F system help file for VMS or RSX and is likely to be available as F a help command. It contains further descriptions of commands F available. You will find that PF1 is in general treated as a F "GOLD" key (a shift key) and Gold PF2 will display a keypad . diagram for the auxiliary keypad of VT100.F There is an alternate keypad function set which should be F examined. If your version of AnalytiCalc supports it, the H9 F command will display a diagram of the functions available via the . auxiliary keypad on the screen. Just type H9F and the picture will appear if available. If it isn't, and you G have a VT52 or VT100, let your system manager know you want it. 3 For other terminals, it isn't always available.a GLOSSARY & The following commands are used here: Command Meansa L cell Locate cursor at cell3 OA cell Origin Absolute - make cell be upper lefta corner of display 5 OR cell Origin Relative - make cell be where cursori! is (i.e., relative to cursor)n5 DB ncol,nrow Display Bounds - make display have ncol # columns and nrow rows on screen9 DW col,width Display Width - Set display column "col" too* width characters wide. Use the numeric+ display column numbers at top of screen,! to specify column on display.  DF cell-range [format] -2 Display Format - set cell range to have display- format for numbers. Any FORTRAN format iso. legal (up to 9 characters of format spec.)/ and if just [A] is specified, cell displaysu+ formula text entered in it, not number.U, Cell range can be 1 cell name or 2 cells, separated by colon (e.g., B2:G2). Ranges must lie in a row or column.8 E text Enter - Enters text into a spreadsheet cell. If, the text includes ", or does not contain. one or more of ".", "(", "+", "-", or "[",. then it is treated as TEXT and the text is) displayed. Otherwise it is treated aso/ numeric and the numeric value is displayed.2 The DF command changes which is shown. Numbers+ MUST contain . characters to be handledn correctly.9 V View - Redraws screen, forcing display to be correct.8 R Recalculate - recomputes sheet. (Normally not needed- since recomputation is automatic. Best toy. issue this command as RXF to speed it up.)6 Mn Auto Move in direction n, where n=1,2,3, or 4 for. up, down, left, or right (M5 means no auto0 motion), AFTER ENTER. This sets up automatic motion after Enter commands.% 1,2,3, or 4 Move cursor immediately:s; or arrow keys Move immediately in the arrow direction or ) in direction up, down, left, or right,! respectively for 1 through 4. 3 W Write - Writes out screen contents to a file ore. device (e.g., the printer) on your system./ Produces human readable files, suitable forf editing into documents.i9 PPX Put Physical Symbolic - Saves spreadsheet info in ad, special format for later read-in, saving. all formulas. (Note PPN saves numbers only0 (for graphs) and throws out formulas.) Saves, down and right from cursor, amount saved, depend00QQQH+%O-%TADATADATAs on your command. Files are ASCII* but not intended to be read by humans.. PDX saves display sheet within bounds, not- taking bounds or save order from physicala1 sheet but from how it's rearranged on displayt. screen. Either form can be restored either way.3 GP Get Physical - Reloads special file from a Put* command into current sheet starting at. cursor and going down and right. An offset* from original save may be specified in+ both horizontal and vertical directionse+ and partial restores are possible. Thish permits merging sheets.i< Hn Help - Puts up help pages. There are 10 pages of online, help, numbered 0 through 9. H8 brings up+ page 8, H0 (or just H) brings up page 0u( which is an index into the rest. PF2+ on VT100's acts as a H command. You maya+ issue further Help commands once in theo) help system. A return will return you  to the sheet.  X Exit from the sheet.;This is the AnalytiCalc main source area for VAX and PDP11.@The AAINSTALL.COM file will build the VAX version and set things=up for you. For PDP11, have a look at the README.1ST file for;build instructions. Basically you edit either PCCPDP.COM or=PCCPRON.COM to compile and follow instructions in comments in9those files to get a working task image. The VMS build in>AAINSTALL.COM is a skeleton to use and you should look it over0to see that directories are named as it assumes.4 This directory is named either [003205] or [PCCUNV]7on various distributions. Document files are in another?directory named either [003005] or [PCCVDOC] depending on where&you get your AnalytiCalc distribution.9 On the RSX SIG tapes this directory is [312,371] and the document directory is [312,345].; It is hoped that the AAINSTALL.COM file will be helpful to)VMS sites trying to bring up AnalytiCalc. Glenn C. Everhart$ ON CONTROL_Y THEN GOTO DONE.$ SET PROT=(S:RWED,G:RWED,O:RWED,W:RE)/DEFAULT!$ SYSDISK = F$LOGICAL("SYS$DISK")$ DEFUIC:='F$USER()G$ EXIT_MESSAGE = " VMS AnalytiCalc installation abnormally terminated." $ SET NOON$ WRITE SYS$OUTPUT " "B$ WRITE SYS$OUTPUT " AnalytiCalc (VAX) Installation Procedure"$ WRITE SYS$OUTPUT " "J$ WRITE SYS$OUTPUT "This procedure assumes your current default directory"K$ WRITE SYS$OUTPUT "is the [pccunv] (or [003205] on DECUS dist.) directory"F$ WRITE SYS$OUTPUT "and that PCCX.OLB and DTRIF.OBJ are in [-.pccobj]"$ WRITE SYS$OUTPUT " "K$ Write SYS$OUTPUT " Note that it will create a directory SYS$SYSROOT:[DK]"K$ WRITE SYS$OUTPUT " and place about 80 blocks of files into it, place the"K$ WRITE SYS$OUTPUT " image PCCX.EXE into SYS$SYSTEM, and generate a system"I$ WRITE SYS$OUTPUT " symbol for DK. Edit before using if this is not OK."$:$ INQUIRE DO_INSTALL " Rebuild from sources? (YES or NO) "'$! IF DO_INSTALL .EQS. "" THEN GOTO INS$$! IF .NOT. DO_INSTALL THEN GOTO INS$$DTR_QUESTION:($ INQUIRE LNK_TYPE " Link with DTR-32? "$$INS:($ IF DO_INSTALL .EQS. "" THEN GOTO NOSRC%$ IF .NOT. DO_INSTALL THEN GOTO NOSRC$$! BUILD FROM APPROPRIATE SOURCE KIT9$ WRITE SYS$OUTPUT " COMPILING...This may take some time"I$ WRITE SYS$OUTPUT " IGNORE warning error messages...they're normal, and"$ WRITE SYS$OUTPUT " harmless"&$ IF LNK_TYPE .EQS. "" THEN GOTO NODTR#$ IF .NOT. LNK_TYPE THEN GOTO NODTR$! BUILD WITH DTR-32 $@PCCMAKIVD$ GOTO DONECPL$NODTR: $@PCCMAKIV $DONECPL::$! Now the linked image exists here. Just need to move it. $GOTO BLDCOM$NOSRC:$COPY [-.PCCOBJ]PCCX.OLB *$COPY [-.PCCOBJ]DTRIF.OBJ *K$WRITE SYS$OUTPUT "About to link. Ignore warning messages of compiler errs"%$IF LNK_TYPE .EQS. "" THEN GOTO XDTR2"$IF .NOT. LNK_TYPE THEN GOTO XDTR2 $GOTO LIBSET$XDTR2:$LIBR/REPL PCCX DTRIF$LIBR/EXTR=*/OUT=PCCX PCCX$LINK/NOMAP PCCX$DEL PCCX.OBJ; $GOTO BLDCOM$LIBSET:$LIBR/EXTR=*/OUT=PCCX PCCX$LINK/NOMAP PCCX00QQQN6%! !+DTR/OPT$DEL PCCX.OBJ;$ $ GOTO BLDCOM$$BLDCOM:$$ SET UIC [001,004],$! Move the linked image to the system area.$ COPY PCCX.EXE SYS$SYSTEM9$! We need a directory DK and to have keypad files in it. $ SET NOON$CREA/DIR SYS$SYSROOT:[DK]"$ASSIGN/SYSTEM SYS$SYSROOT:[DK] DK?$WRITE SYS$OUTPUT "Add a statement to SYSTARTUP.COM that reads";$Write SYS$OUTPUT " ASSIGN/SYSTEM SYS$SYSROOT:[DK] DK ">$WRITE SYS$OUTPUT "and add a symbol to SYLOGIN.COM that reads":$WRITE SYS$OUTPUT " ANALY*TICALC:==@DK:SPREAD.COM "#$copy [.AUXKPD]*.* SYS$SYSROOT:[DK]($ set prot=(world:re) sys$sysroot:dk.dir+$ set prot=(world:re) sys$sysroot:[dk]*.*.*C$! You can modify these to locate the aux keypad files elsewhere as $! needed. $SUCCESS:=$ EXIT_MESSAGE = " VMS AnalytiCalc installation is complete."$$DONE:$ ON CONTROL_Y THEN GOTO DONE3 $ SET NOON$$DONE3:/$ IF "''DEFUIC'" .NES. "" THEN SET UIC 'DEFUIC'$ WRITE SYS$OUTPUT EXIT_MESSAGE$ SET ON$ EXITVM%[?3h%* %LA1GPXPPLN.PCC0011LA1RLQ0ET @PPLNS1.CMDLY0ET @PPLNS2.CMDLB0ET @PPLNCP.CMDLA1V SUBROUTINE AT (RETCD)#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY. INCLUDE 'VKLUGPRM.FTN'C PARAMETER RRW = 32C PARAMETER RCL = 32C RRW=MAX REAL ROWSC RCL=MAX REAL COLS:C RRW MUST BE 1 LARGER TO HANDLE 1ST 27 VARIABLES IN AVBLS#C VBLS AND TYPE DIMENSIONED RRW,RCL6C ++++++++++++++++++++++++++++++++++++++++++++++++++6C + +6C + CALC VERSION X01-06 +6C + +6C + PETER BAUM 1-SEP-77 +6C + +6C ++++++++++++++++++++++++++++++++++++++++++++++++++C9C *******************************************************9C * *9C * SUBROUTINE AT *9C * *9C *******************************************************CCDC SUBROUTINE AT IS CALLED WHEN THE *@ CALC COMMAND IS ENCOUNTERED.CC IT CHANGES THE VALUE OF LEVEL WHICH HOLDS THE NUMBER OF THEBC LOGICAL I/O UNIT WHERE INPUT COMMAND LINES ARE TO BE OBTAINED.CC THE FILE ASSOCIATED WITH THAT I/O UNIT IS OPENED UNDER THE PROPER C CONDITIONS.CCCC C MODIFICATION CLASSES: M1,M2,M9CC MODIFIED 3-OCT-77 P.B.;C MODIFIED 10-JAN-78 P.B. TO PUT SY: BEFORE FILENAMES@C WITH NO DEVICE SPECIFIED SO THAT DEFAULT IS USER'S SY: C AND NOT THE SYSTEM SY:CCCCCC C AT CALLSC=C ASSIGN (TO ASSOCIATE A FILE NAME WITH A LOGICAL I/O UNIT)$C ERRMSG (TO PRINT ERROR MESSAGES)6C GETNNB (TO GET NEXT NON-BLANK FROM THE INPUT LINE).C ZNEG (TO TEST IF A VARIABLE IS POSITIVE)CCCDC AT IS CALLED BY ROUTINE CMND WHICH IS THE MODULE THAT DETERMINES$C WHAT CALC COMMAND WAS REQUESTED.CCCC VARIABLE USEC1C ALPHA(27) HOLDS LEGAL VARIABLE NAMES.,C I,J HOLD TEMPORARY VALUES.EC IPT POINTS TO NEXT NON-BLANK CHARACTER IN LINE(80).GC ITCNTV(6) INDEXED BY LEVEL. HOLDS 0 IF NO ITERATION ON THATGC LEVEL, OTHERWISE INDEX INTO VBLS FOR THE VARIABLE.C THAT CONTROLS ITERATION.GC LEVEL HOLDS NUMBER OF LOGICAL I/O UNIT WHERE NEXT INPUT'C LINE IS EXPECTED./C LINE(80) 00QQQH+%O-%TADATADATA HOLDS COMMAND INPUT LINE.?C NBLINE(78) HOLDS THE INPUT FILE NAME WITHOUT BLANKS.IC NONBLK POINTS TO THE LAST NON-BLANK CHARACTER IN LINE(80).3C RETCD RETURN CODE: 1=O.K. 2=ERROR.@C SY "SY:" USED TO OPEN FILES WITH A DEFAULT OFDC USER'S SY: (OTHERWISE SYSTEM SY: IS USED) P.B.C 10-JAN-78CCCCCC SUBROUTINE AT (RETCD)C INTEGER*2 IPT,J,I INTEGER*2 LEVEL,NONBLK,LEND INTEGER*2 RETCD,VIEWSW,BASED INTEGER*2 ITCNTV(6),ZNEGC LOGICAL*1 LINE(80),NBLINE(78)- LOGICAL*1 ALPHA(27),COMMA,BLANK,RPAR,LPAR,EQ LOGICAL*1 SY(3)CC, COMMON LEVEL,LINE,NONBLK,LEND,VIEWSW,BASED- COMMON /CONS/ ALPHA,COMMA,BLANK,RPAR,LPAR,EQ COMMON/ITERA/ITCNTVC DATA SY/'S','Y',':'/CCC1C UPON ENTRANCE, NONBLK POINTS TO THE CHARACTER @C"C MODIFICATION CLASSES: M1,M2,M9C%C PICK UP FIRST NON-BLANK AFTER THE @ CALL GETNNB(IPT,RETCD) GO TO (10,1050),RETCD STOP 10CCCC START BUILDING FILE NAME AS A COMPRESSED VERSION (BLANKS REMOVED)C OF THE REST OF LINE(80)10 J=0 15 NONBLK=IPT J=J+1 NBLINE(J)=LINE(NONBLK) CALL GETNNB(IPT,RETCD) GO TO (15,50),RETCD STOP 50CC>C SET RETURN CODE AND INDICATE THAT WE WILL BE AT A NEW LEVEL.:C J HOLDS THE COUNT OF THE NUMBER OF CHARACTERS IN NBLINE.>C IF J=1 THEN NO ITERATION IS POSSIBLE BECAUSE FILENAME IS THEC SINGLE CHARACTER. 50 RETCD=1 LEVEL=LEVEL+1 IF (LEVEL.GT.6) GOTO 1000C=C COMMENT OUT THE FOLLOWING LINE IF RSX-11M CODE ONLY IS USED IF(J.EQ.1) GO TO 200CC'CC (RSX-11M CODE ONLY) 10-JAN-78 P.B.GCC DETERMINE IF A DEVICE NAME IS PRESENT. IF NOT, PRECEED WITH SY: SOACC USER'S SY: IS USED AND NOT SYSTEM SY: (IF TASK IS INSTALLED) C DO 52 I=3,5C IF(J.LT.I)GO TO 54!C IF(NBLINE(I).EQ.SY(3)) GO TO 59 C52 CONTINUECCC54 DO 55 I=1,JC55 NBLINE(J-I+4)=NBLINE(J-I+1)C C DO 56 I=1,3C56 NBLINE(I)=SY(I)C J=J+3C IF(J.EQ.4) GO TO 200 C59 CONTINUECCCC%CC END RSX-11M CODE 10-JAN-78 P.B.CCCCCAC NBLINE HOLDS THE COMPRESSED FILENAME. NOW WE CHECK TO SEE IF AN@C ITERATION VARIABLE WAS SPECIFIED. THIS IS INDICATED BY A LEGAL2C VARIABLE NAME PRECEEDED BY A BLANK (IN LINE(80))BC NOTE THAT ONLY ONE OF THE ACCUMULATORS A-Z MAY BE USED FOR THIS. DO 60 I=1,27C A-Z OR % LEGAL& IF(ALPHA(I).EQ.LINE(NONBLK))GO TO 100 60 CONTINUE GO TO 200(100 IF(LINE(NONBLK-1).NE.BLANK)GO TO 200CC C ITERATION INDICATOR IS PRESENT2C (ALPHABETIC CHARACTER OR % PRECEEDED BY A BLANK)DC IF THE VALUE OF THE VARIABLE IS NOT POSITIVE, THE FILE IS IGNORED. IF(ZNEG(I).EQ.1)GO TO 150CC<C RETAIN INDEX INTO VBLS AND DECREASE J SO THAT THE FILENAME/C DOES NOT INCLUDE THE ITERATION SPECIFICATION. ITCNTV(LEVEL)=I J=J-1 GO TO 300CCFC FILE NOT ENTERED, ITERATION VARIABLE IS ZERO, NEGATIVE, OR UNDEFINED150 LEVEL=LEVEL-1 GO TO 350CC@C IF NO ITERATION, SET ITCNTV TO ZERO BECAUSE NOT ZEROED BY EXIT C ROUTINES200 ITCNTV(LEVEL)=0 300 CONTINUE0C COMMENT OUT THE FOLLOWING IF NOT AVAIL ON VAX:& CALL FDBSET(LEVEL,'READONLY','SHARE') CALL ASSIGN (LEVEL,NBLINE,J) 350 RETURNCCCC *** ERROR PROCESSING ***CC TOO MANY LEVELS1000 I=21010 CALL ERRMSG(I) 1020 RETCD=2 RETURNCC!C UNIDENTIFIED COMMAND (ARGUMENT)1050 I=3 GO TO 1010 END SUBROUTINE AT (RETCD)#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY. INCLUDE 'VKLUGPRM.FTN'C PARAMETER RRW = 32C PARAMETER RCL = 32C RRW=MAX REAL ROWSC RCL=MAX REAL COLS:C RRW MUST BE 1 LARGER TO HANDLE 1ST 27 VARIABLES IN AVBLS#C VBLS AND TYPE DIMENSIONED RRW,RCL6C ++++++++++++++++++++++++++++++++++++++++++++++++++6C + +6C + 00QQQN6%! ! CALC VERSION X01-06 +6C + +6C + PETER BAUM 1-SEP-77 +6C + +6C ++++++++++++++++++++++++++++++++++++++++++++++++++C9C *******************************************************9C * *9C * SUBROUTINE AT *9C * *9C *******************************************************CCDC SUBROUTINE AT IS CALLED WHEN THE *@ CALC COMMAND IS ENCOUNTERED.CC IT CHANGES THE VALUE OF LEVEL WHICH HOLDS THE NUMBER OF THEBC LOGICAL I/O UNIT WHERE INPUT COMMAND LINES ARE TO BE OBTAINED.CC THE FILE ASSOCIATED WITH THAT I/O UNIT IS OPENED UNDER THE PROPER C CONDITIONS.CCCC C MODIFICATION CLASSES: M1,M2,M9CC MODIFIED 3-OCT-77 P.B.;C MODIFIED 10-JAN-78 P.B. TO PUT SY: BEFORE FILENAMES@C WITH NO DEVICE SPECIFIED SO THAT DEFAULT IS USER'S SY: C AND NOT THE SYSTEM SY:CCCCCC C AT CALLSC=C ASSIGN (TO ASSOCIATE A FILE NAME WITH A LOGICAL I/O UNIT)$C ERRMSG (TO PRINT ERROR MESSAGES)6C GETNNB (TO GET NEXT NON-BLANK FROM THE INPUT LINE).C ZNEG (TO TEST IF A VARIABLE IS POSITIVE)CCCDC AT IS CALLED BY ROUTINE CMND WHICH IS THE MODULE THAT DETERMINES$C WHAT CALC COMMAND WAS REQUESTED.CCCC VARIABLE USEC1C ALPHA(27) HOLDS LEGAL VARIABLE NAMES.,C I,J HOLD TEMPORARY VALUES.EC IPT POINTS TO NEXT NON-BLANK CHARACTER IN LINE(80).GC ITCNTV(6) INDEXED BY LEVEL. HOLDS 0 IF NO ITERATION ON THATGC LEVEL, OTHERWISE INDEX INTO VBLS FOR THE VARIABLE.C THAT CONTROLS ITERATION.GC LEVEL HOLDS NUMBER OF LOGICAL I/O UNIT WHERE NEXT INPUT'C LINE IS EXPECTED./C LINE(80) HOLDS COMMAND INPUT LINE.?C NBLINE(78) HOLDS THE INPUT FILE NAME WITHOUT BLANKS.IC NONBLK POINTS TO THE LAST NON-BLANK CHARACTER IN LINE(80).3C RETCD RETURN CODE: 1=O.K. 2=ERROR.@C SY "SY:" USED TO OPEN FILES WITH A DEFAULT OFDC USER'S SY: (OTHERWISE SYSTEM SY: IS USED) P.B.C 10-JAN-78CCCCCC SUBROUTINE AT (RETCD)C INTEGER*2 IPT,J,I INTEGER*2 LEVEL,NONBLK,LEND INTEGER*2 RETCD,VIEWSW,BASED INTEGER*2 ITCNTV(6),ZNEGC LOGICAL*1 LINE(80),NBLINE(78)- LOGICAL*1 ALPHA(27),COMMA,BLANK,RPAR,LPAR,EQ LOGICAL*1 SY(3)CC, COMMON LEVEL,LINE,NONBLK,LEND,VIEWSW,BASED- COMMON /CONS/ ALPHA,COMMA,BLANK,RPAR,LPAR,EQ COMMON/ITERA/ITCNTVC DATA SY/'S','Y',':'/CCC1C UPON ENTRANCE, NONBLK POINTS TO THE CHARACTER @C"C MODIFICATION CLASSES: M1,M2,M9C%C PICK UP FIRST NON-BLANK AFTER THE @ CALL GETNNB(IPT,RETCD) GO TO (10,1050),RETCD STOP 10CCCC START BUILDING FILE NAME AS A COMPRESSED VERSION (BLANKS REMOVED)C OF THE REST OF LINE(80)10 J=0 15 NONBLK=IPT J=J+1 NBLINE(J)=LINE(NONBLK) CALL GETNNB(IPT,RETCD) GO TO (15,50),RETCD STOP 50CC>C SET RETURN CODE AND INDICATE THAT WE WILL BE AT A NEW LEVEL.:C J HOLDS THE COUNT OF THE NUMBER OF CHARACTERS IN NBLINE.>C IF J=1 THEN NO ITERATION IS POSSIBLE BECAUSE FILENAME IS THEC SINGLE CHARACTER. 50 RETCD=1 LEVEL=LEVEL+1 IF (LEVEL.GT.6) GOTO 1000C=C COMMENT OUT THE FOLLOWING LINE IF RSX-11M CODE ONLY IS USED IF(J.EQ.1) GO TO 200CC'CC (RSX-11M CODE ONLY) 10-JAN-78 P.B.GCC DETERMINE IF A DEVICE NAME IS PRESENT. IF NOT, PRECEED WITH SY: SOACC USER'S SY: IS USED AND NOT SYSTEM SY: (IF TASK IS INSTALLED) DO 52 I=3,5 IF(J.LT.I)GO TO 54 IF(NBLINE(I).EQ.SY(3)) GO TO 59 52 CONTINUEC54 DO 55 I=1,J55 NBLINE(J-I+4)=NBLINE(J-I+1) DO 56 I=1,356 NBLINE(I)=SY(I) J=J+3 IF(J.EQ.4) GO TO 200 59 CONTINUECCC%CC END RSX-11M CODE 10-J00QQQH+%O-%TADATADATAAN-78 P.B.CCCCCAC NBLINE HOLDS THE COMPRESSED FILENAME. NOW WE CHECK TO SEE IF AN@C ITERATION VARIABLE WAS SPECIFIED. THIS IS INDICATED BY A LEGAL2C VARIABLE NAME PRECEEDED BY A BLANK (IN LINE(80))BC NOTE THAT ONLY ONE OF THE ACCUMULATORS A-Z MAY BE USED FOR THIS. DO 60 I=1,27C A-Z OR % LEGAL& IF(ALPHA(I).EQ.LINE(NONBLK))GO TO 100 60 CONTINUE GO TO 200(100 IF(LINE(NONBLK-1).NE.BLANK)GO TO 200CC C ITERATION INDICATOR IS PRESENT2C (ALPHABETIC CHARACTER OR % PRECEEDED BY A BLANK)DC IF THE VALUE OF THE VARIABLE IS NOT POSITIVE, THE FILE IS IGNORED. IF(ZNEG(I).EQ.1)GO TO 150CC<C RETAIN INDEX INTO VBLS AND DECREASE J SO THAT THE FILENAME/C DOES NOT INCLUDE THE ITERATION SPECIFICATION. ITCNTV(LEVEL)=I J=J-1 GO TO 300CCFC FILE NOT ENTERED, ITERATION VARIABLE IS ZERO, NEGATIVE, OR UNDEFINED150 LEVEL=LEVEL-1 GO TO 350CC@C IF NO ITERATION, SET ITCNTV TO ZERO BECAUSE NOT ZEROED BY EXIT C ROUTINES200 ITCNTV(LEVEL)=0 300 CONTINUE0C COMMENT OUT THE FOLLOWING IF NOT AVAIL ON VAX:'c CALL FDBSET(LEVEL,'READONLY','SHARE') CALL ASSIGN (LEVEL,NBLINE,J) 350 RETURNCCCC *** ERROR PROCESSING ***CC TOO MANY LEVELS1000 I=21010 CALL ERRMSG(I) 1020 RETCD=2 RETURNCC!C UNIDENTIFIED COMMAND (ARGUMENT)1050 I=3 GO TO 1010 END SUBROUTINE BASCNG(RETCD) #C COPYRIGHT (C) 1983 GLENN EVERHART @C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY.I INCLUDE 'VKLUGPRM.FTN' C PARAMETER RRW = 32C PARAMETER RCL = 32C RRW=MAX REAL ROWS C RCL=MAX REAL COLS :C RRW MUST BE 1 LARGER TO HANDLE 1ST 27 VARIABLES IN AVBLS#C VBLS AND TYPE DIMENSIONED RRW,RCL 6C ++++++++++++++++++++++++++++++++++++++++++++++++++6C + +6C + CALC VERSION X01-06 +6C + +6C ++++++++++++++++++++++++++++++++++++++++++++++++++C C C C 9C *******************************************************+9C * **9C * SUBROUTINE BASCNG * 9C * *I9C ******************************************************* C C 9C SUBROUTINE BASCNG IS CALLED WHEN THE *B CALC COMMAND IS*;C ENCOUNTERED. THIS COMMAND INDICATES THAT THE DEFAULT BASEE:C FOR CONSTANTS IS TO BE CHANGED. THE ROUTINE READS IN ONE:C OR TWO DIGITS AND CHANGES THE DEFAULT BASE SPECIFICATIONC AS IS APPROPRIATE.CPCCCAC MODIFICATION CLASS M2ECCHCICAC BASCNG CALLSC/"C ERRMSG (PRINTS ERROR MESSAGES);C GETNNB (GETS THE NEXT NON-BLANK IN INPUT LINE LINE(80)),CCC CMEC BASCNG IS CALLED BY ROUTINE CMND WHICH IDENTIFIES THE COMMAND THATRC THE USER WANTS TO EXECUTE. CICSCICDC C VARIABLE USE:C (C BASED HOLDS THE DEFAULT BASE.:C IPT POINTS TO THE NEXT NON-BLANK IN LINE(80).@C I1 BINARY VALUE OF FIRST DIGIT, VALUE OF NEW BASE..C I2 BINARY VALUE OF SECOND DIGIT.9C NONBLK POINTS TO THE LAST NON-BLANK IN LINE(80)T.C RETCD RETURN CODE: 1=O.K. 2=ERROR.6C RETCD2 HOLDS RETURN CODE FROM CALL TO GETNNBCNCACECSC SUBROUTINE BASCNG(RETCD)CICE9C UPON ENTRANCE, NONBLK POINTS TO THE 'B' IN '*B' IN LINEBCN INTEGER*2 IPT,I1,I2 INTEGER*2 LEVEL,NONBLK,LEND$ INTEGER*2 RETCD,RETCD2,VIEWSW,BASEDCN LOGICAL*1 DIGITS(16,3),LINE(80)CT COMMON /DIGV/ DIGITS + COMMON LEVEL,LINE,NONBLK,LEND,VIEWSW,BASED C C C C AC IF NO ARGUMENT, RETURN WITH NORMAL RETURN CODE. THIS ALLOWS THE /C USER TO SEE WHAT THE PRESENT DEFAULT BASE IS.  RETCD=1 CALL GETNNB(IPT,RETCD2) IF(RETCD2.GT.1)GO TO 1000C C C CHECK OUT FIRST DIGITD DO 300 I1=1,10 ( I00QQQN6%! !F(DIGITS(I1,1).EQ.LINE(IPT)) GO TO 400 300 CONTINUE GO TO 999CUCI C SEE IF THERE IS A SECOND DIGIT400 NONBLK=IPT IF(I1.EQ.10)I1=0N CALL GETNNB(IPT,RETCD2) IF(RETCD2.EQ.1)GO TO 500 CUCC<C IF NOT, CONVERT TO A TWO DIGIT NUMBER WITH A LEADING ZERO. I2=I1 I1=0 GO TO 700C C C :C A SECOND CHARACTER WAS FOUND; FIGURE OUT WHAT THE BINARY%C VALUE IS (IF IT IS A DIGIT AT ALL).500 DO 600 I2=1,10' IF(DIGITS(I2,1).EQ.LINE(IPT))GO TO 700 600 CONTINUE GO TO 999CCTCR+C CONVERT DIGITS TO A NUMBER IF IT IS LEGALZ700 IF(I2.EQ.10)I2=0 I1=I1*10+I20 IF(I1.NE.8.AND.I1.NE.10.AND.I1.NE.16) GO TO 999 BASED=I1C GO TO 1000ACTCCC ILLEGAL BASE SPECIFICATION 999 RETCD=2 CALL ERRMSG(19)CCC RETURN 1000 RETURN  END BLOCK DATA#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY. INCLUDE 'VKLUGPRM.FTN'C PARAMETER RRW = 32C PARAMETER RCL = 32C PARAMETER RCP = 1024C PARAMETER RCPM27 = 997C RCP = RRW*RCLC RCPM27=RCP-27C RRW=MAX REAL ROWSC RCL=MAX REAL COLS:C RRW MUST BE 1 LARGER TO HANDLE 1ST 27 VARIABLES IN AVBLS#C VBLS AND TYPE DIMENSIONED RRW,RCL6C ++++++++++++++++++++++++++++++++++++++++++++++++++6C + +6C + CALC VERSION X01-06 +6C + +6C ++++++++++++++++++++++++++++++++++++++++++++++++++CC9C *******************************************************9C * *9C * BLOCK DATA MODULE *9C * *9C *******************************************************CC.C COMMON AREAS ARE INITIALIZED BY THIS MODULE.CCC%C MODIFICATION CLASSES: M2,M3,M9,M10CC.C MODIFIED 18-MAY-1981 P.B. SET % TO VERSION 6CCCC VARIABLE USECAC ALPHA(27) HOLDS LEGAL VARIABLE NAMES: ALPHABETIC CHARACTERS#C OR THE CHARACTER %. C BASED HOLDS DEFAULT BASE.C BLANK ' 'C COMMA ','AC DIGITS(16,3) HOLDS DECIMAL, OCTAL, AND HEXADECIMAL DIGITS. THE#C SECOND SUBSCRIPT IS#C 1 FOR DECIMAL!C 2 FOR OCTAL'C 3 FOR HEXADECIMAL?C DTBL1(9,9,8) CONTROLS THE DECISION PROCESS WHEN EVALUATING A8C BINARY OPERATION. SEE BELOW FOR DETAILS.C EQ '='FC ITCNTV(6) INDEXED BY LEVEL. 0 INDICATES THAT NO ITERATION ON THEGC INDIRECT COMMAND FILE IS TO TAKE PLACE. IF POSITIVE, ITEC HOLDS THE INDEX INTO VBLS AND REPRESENTS THE VARIABLE*C USED TO CONTROL ITERATION."C LINE(80) COMMAND INPUT LINEC LPAR '('C RPAR ')';C ST1LIM HOLDS THE SIZE OF STACK 1 (ALWAYS CONSTANT);C ST2LIM HOLDS THE SIZE OF STACK 2 (ALWAYS CONSTANT)GC ST1PT POINTS TO THE TOP OF STACK 1 (CHANGES AS STACK IS USED)GC ST2PT POINTS TO THE TOP OF STACK 2 (CHANGES AS STACK IS USED)9C ST1TYP(40) DATA TYPE FOR EACH ELEMENT IN STACK 19C ST2TYP(40) DATA TYPE FOR EACH ELEMENT IN STACK 2MC STACK1(20,40) UTILITY STACKS USED WHEN EVALUATING EXPRESSIONS. THE FIRSTKC STACK2(20,40) SUBSCRIPT CONTROLS INDEXING ACROSS THE BYTES OF A SINGLEKC VARIABLE. THE SECOND SUBSCRIPT CONTROLS STACK ELEMENTS.JC TYPE(27) HOLDS THE DATA TYPES FOR EACH OF THE 27 VARIABLES. SEE6C CODES.FTN FOR THE POSSIBLE VALUES.C VIEWSW VIEW SWITCH.C 0 = OUTPUT ERROR MESSAGESEC 1 = OUTPUT ERROR MESSAGES AND FILE COMMAND LINESGC 00QQQH+%O-%TADATADATA 2 = OUTPUT ERROR MESSAGES AND VALUE OF EXPRESSIONS#C EVALUATED.*C 3 = OUTPUT EVERYTHINGDC VLEN(9) INDEXED BY DATA TYPE. GIVES THE NUMBER OF BYTES USED"C BY THAT DATA TYPE.NC AVBLS(20,27) HOLDS THE VALUES OF THE 27 LEGAL VARIABLES.(ACCUMULATORS)3C VBLS(8,RRW,RCL) HOLDS VALUES OF ALL VARIABLESCCC:C CONSTANTS ARE STORED IN VBLS ACCORDING TO THEIR TYPE:CCCKC <----------- MULTIPLE PRECISION (M10, M8, M16) ------------------------->KC ! <------------- DECIMAL AND REAL --------------->KC ! ! <-- INTEGER HEX OCTAL -->OC ! ! ---> ASCII <---LC ! ! ! !CKC ------------- -------------------------------------------------------KC ! ! ! ! ! ! ! ! ! ! ! ! !KC ! 100 ! 99 ! ... ! 9 ! 8 ! 7 ! 6 ! 5 ! 4 ! 3 ! 2 ! 1 !KC ! ! ! ! ! ! ! ! ! ! ! ! !KC ------------- -------------------------------------------------------CC?C NOTE: BYTE 100 HOLDS THE SIGN FOR MULTIPLE PRECISION NUMBERS."C 0 = POSITIVE, 1 = NEGATIVECCCCC C BLOCK DATA INTEGER*2 LEVEL,NONBLK,LEND INTEGER*2 LASTOP INTEGER*2 ST1TYP(40),ST2TYP(40) INTEGER*2 TYPE(RRWP,RCLP) INTEGER*2 VIEWSW,BASED,VLEN(9)$ INTEGER*2 ST1LIM,ST2LIM,ST1PT,ST2PT INTEGER*2 ITCNTV(6)C6 LOGICAL*1 ALPHA(27),COMMA,BLANK,RPAR,LPAR,EQ,LINE(80)& LOGICAL*1 STACK1(20,40),STACK2(20,40) LOGICAL*1 AVBLS(20,27) LOGICAL*1 VBLS(8,RRWP,RCLP) LOGICAL*1 DTBL1(9,9,8) LOGICAL*1 DIGITS(16,3)C@C OARRY WILL BE USED TO HOLD OUTPUT VARIABLE IF OSWIT IS NONZERO INTEGER*2 OSWIT=C OCNTR MAY HOLD BYTES VALID IN OARRY (UP TO 100, NO MORE...) INTEGER*2 OCNTR LOGICAL*1 OARRY(100)C;C ILINE IS PROGRAMMABLE LINE INPUT (I.E., NOT FROM CONSOLE) LOGICAL*1 ILINE(106) INTEGER*2 ILNFG INTEGER*2 ILNCT COMMON /ILN/ILNFG,ILNCT,ILINE=C ILINE IS PRESENT IF ILNFG <> 0 AND ILNCT HAS # BYTES IN IT. COMMON /OAR/OSWIT,OCNTR,OARRY+ COMMON LEVEL,LINE,NONBLK,LEND,VIEWSW,BASED, COMMON /CONS/ALPHA,COMMA,BLANK,RPAR,LPAR,EQ8 COMMON /STACK/ STACK1,STACK2,ST1PT,ST2PT,ST1TYP,ST2TYP, ; ST1LIM,ST2LIM COMMON /V/ TYPE,AVBLS,VBLS,VLEN COMMON /DECIDE/ DTBL1 COMMON /DIGV/ DIGITS COMMON /ERROR/ LASTOP COMMON/ITERA/ ITCNTV LOGICAL*1 DVFMT(12) COMMON/DEFVBX/DVFMT REAL *8 AC(26) REAL*8 DERIV(8) REAL*8 DEL(8) REAL*8 OLDVV,OLDX,OLDA INTEGER ACV(8) INTEGER CAC INTEGER CCNT(8)8 COMMON/VRYDAT/AC,DERIV,DEL,CAC,CCNT,OLDVV,OLDX,OLDA,ACV DATA DERIV/8*1./,DEL/8*0./ DATA CAC/1/,CCNT/8*0/ DATA ACV/8*0/ DATA OLDVV/1./%C INITIAL DEFAULT FORMAT FOR NUMERICS) DATA DVFMT/'(','F','9','.','2',6*32,')'/C DATA VIEWSW/0/ DATA LEVEL/1/ DATA LASTOP/0/ DATA ITCNTV/6*0/) DATA OSWIT/0/,OCNTR/0/,ILNFG/0/,ILNCT/0/@ DATA ALPHA/'A','B','C','D','E','F','G','H','I','J','K','L','M',E ; 'N','O','P','Q','R','S','T','U','V','W','X','Y','Z','%'/7 DATA DIGITS/'1','2','3','4','5','6','7','8','9',7*'0',/ ; '1','2','3','4','5','6','7',9*'0',H ; '1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','0'/8 DATA COMMA/','/, BLANK/' '/,RPAR/')'/,LPAR/'('/,EQ/'='/CCC DEFAULT BASE IS 10 DATA BASED/10/CC.C STACKS ARE CURRENTLY SET AT 40 ELEMENTS DEEP DATA ST1LIM/40/, ST2LIM/40/CCCC DEFAULT TYPESC A,B,C,D,E,F,G,H = DECIMAL&C I,J,K,L,M,N = INTEGER (BASE10)%C O,P,Q,R,S,T,U,V,W,X,Y,Z = DECIMALC+C % AS INTEGER TO HOLD CALC VERSION NUMBERC$C DATA TYPE/8*2,6*4,12*2,4,RCRM27*2/)c modify type array so ac's i-n are reals$C DATA TYPE/8*2,6*2,12*2,2,RCRM27*2/CCC GIVE VERSION # BY VALUE IN %C:c don't bother with this; by the time user gets into calc,7c % already is clobbered most times, so no need for it.c 00QQQN6%! !DATA AVBLS(1,27)/6/3c DATA AVBLS(2,27)/0/,AVBLS(3,27)/0/,AVBLS(4,27)/0/CCCC+C SPECIFY THE LENGTH USED BY EACH DATA TYPE DATA VLEN/1,8,4,4,20,20,20,4,8/CCCCCCCC2C DECISION TABLE FOR PERFORMING BINARY OPERATIONSC!C DTBL1(OPERAND2,OPERAND1,INDEX)CC WHERE: OPERATOR:)C INDEX=1 MODIFY CODE FOR OPERAND 1 */+-#C 2 MODIFY CODE FOR OPERAND 2 */+-C 3 FUNCTION VALUE TYPE */+-C 4 OPERATOR CLASS */+-C!C 5 MODIFY CODE FOR OPERAND 1 **!C 6 MODIFY CODE FOR OPERAND 2 **C 7 FUNCTION VALUE TYPE **C 8 OPERATOR CLASS **CC'C WHERE TYPE CODES (MODIFY CODES) ARE: C 0 NO CHANGEC 1 CONVERT TO ASCIIC 2 CONVERT TO DECIMALC 3 CONVERT TO HEXADECIMALC 4 CONVERT TO INTEGERC 5 CONVERT TO M10C 6 CONVERT TO M8C 7 CONVERT TO M16C 8 CONVERT TO OCTALC 9 CONVERT TO REALCAC FOR */+- FUNCTION VALUE TYPES AND OPERATOR CLASS ARE PRESENTLY C IDENTICALC#C FOR ** OPERATOR CLASSES FOLLOW:CC CODE OPERATOR CLASSC 1 REAL**REALC 2 REAL**INTEGERC 3 INTEGER**REALC 4 INTEGER**REALC 5 M8**INTEGERC 6 M10**INTEGERC 7 M16**INTEGERCCCCCC DATA DTBL1 /4,2,3,4,5,6,7,8,9, ; 9*0, ; 0,2,0,0,3*7,0,9, ; 0,2,0,0,5,5,7,0,9, ; 0,2,7,0,0,0,7,0,9, ; 0,2,7,5,5,0,7,0,9, ; 0,2,6*0,9, ; 0,2,3,0,5,6,7,0,9, ; 0,2,7*0, ; 4,8*0, ; 2,0,6*2,0, ; 3,3*0,7,7,3*0, ; 4,4*0,5,3*0, ; 5,0,7,5,0,5,0,5,0, ; 6,0,7,5,3*0,6,0, ; 7,2,4*7,0,7,0, ; 8,8*0, ; 9,0,6*9,0, ; 4,2,3,4,5,6,7,8,9, ; 9*2, ; 3,2,3,3,3*7,3,9, ; 4,2,3,4,5,5,7,4,9, ; 5,2,7,3*5,7,5,9, ; 6,2,7,5,5,6,7,6,9, ; 7,2,6*7,9, ; 8,2,3,4,5,6,7,8,9, ; 9,2,7*9, ; 4,2,3,4,5,6,7,8,9, ; 9*2, ; 3,2,3,3,3*7,3,9, ; 4,2,3,4,5,5,7,4,9, ; 5,2,7,5,5,5,7,5,9, ; 6,2,7,5,5,6,7,6,9, ; 7,2,6*7,9, ; 8,2,3,4,5,6,7,8,9, ; 9,2,7*9, ; 4,2,3,6*4, ; 9*0, ; 9*0, ; 9*0, ; 0,9,6*0,9, ; 0,9,6*0,9, ; 0,9,6*0,9, ; 9*0, ; 9*0, ; 4,3*0,3*9,4,0, ; 4,3*0,3*9,0,0, ; 4,3*0,3*9,2*0, ; 4,3*0,3*9,2*0, ; 4,3*0,3*4,2*0, ; 4,3*0,3*4,2*0, ; 4,3*0,3*4,2*0, ; 4,3*0,3*9,2*0, ; 4,3*0,3*9,2*0, ; 4,2,3,6*4, ; 9*2, ; 9*3, ; 9*4, ; 5,9,6*5,9, ; 6,9,6,6,5,6,7,6,9, ; 7,9,6*7,9, ; 9*8, ; 9*9, ; 4,1,4,4,3,3,3,4,3, ; 2,1,2,2,3*1,2,1, ; 4,3,4,4,3*3,4,3, ; 4,3,4,4,3*3,4,3, ; 6,1,6*6,1, ; 5,1,6*5,1, ; 7,1,6*7,1, ; 4,3,4,4,3*3,4,3, ; 2,1,2,2,3*1,2,1/ END#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY./C PARAMETERS TO DEFINE DIMENSIONS FOR VIZIKLUGE)C PHYSICAL SHEET DIMENSIONS ARE (RRW,RCL)(C DISPLAY SHEET DIMENSIONS ARE (DRW,DCL)6C RECALL 1ST DIMENSION IS ACROSS TOP, 2ND DIMENSION IS4C LENGTH DOWN. NOTE TOO THAT RCP AND RRCL ARE TO BE1C COMPUTED AS RRW*RCL AND RCPM27 IS (RRW*RCL -27)2C SINCE THERE ARE 27 ACUMULATORS (A THRU Z AND %).4C BRRCL=(RRCL+7)/8 , I.E., ENOUGH BYTES FOR A BITMAPC+C *** IMPORTANT CONSTRAINTS ON SETTINGS ***CC;C RRW MUST BE AT LEAST 27 SO THAT THE 27 ACCUMULATORS WILL=C BE AVAILABLE. (IF IT IS LESS, THE % ACCUMULATOR'S LOCATIONAC WILL NOT BE CORRECT AND WILL SCREW YOU UP UNLESS 2 TYPE ARRAYS8C ARE DEFINED; THE DATA AREAS FOR THE AC'S ARE SEPARATE>C BUT THE TYPE ARRAY IS UNIFIED. WHILE YOU MIGHT ABANDON SOME>C OF THE AC'S WITH NO REAL PENALTY EXCEPT EXPOSING YOUR USERS=C TO DOUBLE DEFINED ARE00QQQH+%O-%TADATADATAAS, THE TYPE INFO FOR % IS IN A FIXED>C LOCATION HARD CODED IN. NORMALLY YOU'LL WANT TO LEAVE IT TO>C A FLOATING TYPE AND IT MAY NOT FOUL YOU UP (MOST DATA CELLSDC WILL BE FLOATING TOO), BUT CORRECT OPERATION CANNOT BE GUARANTEEDCC UNLESS RRW (NUMBER OF COLUMNS IN PHYSICAL SHEET) IS 27 OR MORE.)C@C RCL MUST BE AT LEAST 2; THE FIRST IS THE ACCUMULATORS AND THE%C SECOND UP ARE DISPLAY COORDINATES.C8C DRW MUST BE LESS THAN OR EQUAL TO RRW AND DCL MUST BE:C LESS THAN OR EQUAL TO (RCL-1). ALSO MXCOLS MUST BE LESS7C THAN OR EQUAL TO DRW AND MXROWS MUST BE LESS THAN ORC EQUAL TO DCL.C=C MPWD IS JUST THE MAX PRINT LINE FOR THE W COMMAND (WRITING>C PRINT IMAGES OF THE SCREEN OUT). IT MAY BE SET SMALLER THAN>C 132, BUT TO MAKE IT LARGER YOU'LL HAVE TO INCREASE THE SIZE>C OF PRINT ARRAYS IN DSPSHT ROUTINE WHICH FILLS IN THE SIZES.C=C IT IS ASSUMED YOUR FORTRAN UNDERSTANDS THESE PARAMETERS ARE<C ALL INTEGER QUANTITIES; CHANGE AS NEEDED IF FORM IS WRONG.C=C THERE ARE A FEW PARAMETER STATEMENTS IN PROGRAMS TOO. THESE;C HAVE TO DO WITH UVT100 DEFINITIONS AND MAY ALSO BE PULLEDC INTO HERE IF DESIRED.C@C PARAMETER RRCL=RRW*RCL. COMPUTE AND FILL IN YOURSELF (FORTRAN.C AT OUR SITE DOESN'T LET THAT BE AUTOMATIC).!C RCPM27 IS COMPUTED AS RRCL-27.+C PARAMETER RCP IS THE SAME VALUE AS RRCL.C+C *****************************************. PARAMETER DCL = 200 ! DISPLAY MAX ROWS, COLS.& PARAMETER DRW = 63 ! DISPLAY MAX COLSEC NOTE THAT DCL ROWS MAY BE PRINTED EVEN THOUGH THE VT100 ONLY ALLOWS<C 20 TO BE DISPLAYED; JUST SET THE DISPLAY LENGTH TO MORE... PARAMETER MPWD = 132$ PARAMETER RRW = 80 ! NUMBER OF COLSF PARAMETER RCL = 401 ! REAL (PHYSICAL) ROWS AND COLUMNS OF SPREADSHEETFC note the next 2 parameters are 1 because subroutines worry about theC storage separately.) PARAMETER RRWP=1 ! PHYSICAL STORAGE SIZE PARAMETER RCLP=1 ! COL,ROW PARAMETER RCR=1 ! RRWP*RCLPAC FOLLOWING IS A DUMMY, ONLY USED FOR A DATA STMT; LEAVE IT AT 1. PARAMETER RCRM27=1 !RCR - 27 PARAMETER RCP = 32080 PARAMETER RCPM27 = 32053 PARAMETER RRCL = 32080C PARAMETER RRCL=RRW*RCL4C BRRCL=(RRCL+7)/8 , I.E., ENOUGH BYTES FOR A BITMAP PARAMETER BRRCL=4010 PARAMETER TMREFN = 1BC MXCOLS AND MXROWS ARE MAX COLS (ACROSS TOP) ON DISPLAY INITIALLYCC AND NUMBER OF INITIALLY DISPLAYED ROWS (ALONG LEFT) DOWN. DRW,DCL3C ARE MAX POSSIBLE DISPLAY COLS, ROWS RESPECTIVELY. PARAMETER MXCOLS=7 PARAMETER MXROWS=20BC LCMDR AND LDSPR ARE COMMAND AND DISPLAY ROWS ON SCREEN. REDEFINE<C TO OTHER NUMBERS FOR LARGER OR SMALLER SCREENS THAN VT100. PARAMETER LCMDR=23 PARAMETER LDSPR=24C7C JVTINC IS INCREMENT FOR OFFSET DUE TO SCREEN ODDITIES PARAMETER JVTINC=0BC SET JVTINC TO 0 FOR VT52 OR TERMINAL INDEPENDENT SCREEN VERSIONSC8C PARAMETER FOR MAX NUMBER OF HELP SCREENS. SET TO 9 FOR:C STANDARD HELP FILE, OR BIGGER IF DESIRED FOR HELPPRO.FORC FILE. PARAMETER MAXHLP=9CC PARAMETERS FOR DISK VERSION.DC THESE SET THE SIZES OF MEMORY BUFFERS USED FOR VALUES AND FORMULAS;C HANDLED HEREIN. IT IS EXPECTED THAT LVBF WILL BE AT LEAST<C 50 (FOR 250 WORDS), OR A MULTIPLE OF 50, SINCE IT CONTROLS;C VALUE BUFFER RECORDS, KEPT IN 500-BYTE DISK BLOCKS. ALSO,<C LFM SHOULD BE 32 OR A MULTIPLE OF 32. SINCE A SYMBOL TABLE9C ALGORITHM IS USED, THE MULTIPLES PROBABLY SHOULD BE THE@C SAME. THERE MIGHT BE MORE VALUES THAN FORMULAS THOUGH, AS WHENC MATRIX MATH IS USED. PARAMETER LVBF=200 PARAMETER LFM=5125C LFM4 NEEDS TO BE LFM*4 AND LVBF4 NEEDS TO BE LVBF*4'C (USED AS EQUIVALENCES FOR I*4 ARRAYS) PARAMETER LFM4=2048 PARAMETER LVBF4=800 PARAMETER LFMX=1 PARAMETER LFM4X=1 PARAMETER LFMY=128512'C LFMY SHOULD BE SAME AS LPDMF = LPDM/5C (SETS SIZE OF SEARCH...)9C LPDM=RRCL/64 AND IPDM=RRCL/400, BOTH MULTIPLIED BY 10244C SO THEY ARE DIMENSIONS OF DATA AREAS IN COMMON FOR,C VAX-ONLY "DATA STORAGE AREA", PSEUDO-FILE. PARAMETER IPDM=82944 PARAMETER LPDM=514048 PARAMETER LVBF5=1000 PARAMETER IPDM5=165888C LVBF5=LVBF*5; IPDM5=IPDM00QQQN6%! !*2C LPDMF = LPDM/4 PARAMETER LPDMF=128512#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY./C PARAMETERS TO DEFINE DIMENSIONS FOR VIZIKLUGE)C PHYSICAL SHEET DIMENSIONS ARE (RRW,RCL)(C DISPLAY SHEET DIMENSIONS ARE (DRW,DCL)6C RECALL 1ST DIMENSION IS ACROSS TOP, 2ND DIMENSION IS4C LENGTH DOWN. NOTE TOO THAT RCP AND RRCL ARE TO BE1C COMPUTED AS RRW*RCL AND RCPM27 IS (RRW*RCL -27)2C SINCE THERE ARE 27 ACUMULATORS (A THRU Z AND %).4C BRRCL=(RRCL+7)/8 , I.E., ENOUGH BYTES FOR A BITMAPC+C *** IMPORTANT CONSTRAINTS ON SETTINGS ***CC;C RRW MUST BE AT LEAST 27 SO THAT THE 27 ACCUMULATORS WILL=C BE AVAILABLE. (IF IT IS LESS, THE % ACCUMULATOR'S LOCATIONAC WILL NOT BE CORRECT AND WILL SCREW YOU UP UNLESS 2 TYPE ARRAYS8C ARE DEFINED; THE DATA AREAS FOR THE AC'S ARE SEPARATE>C BUT THE TYPE ARRAY IS UNIFIED. WHILE YOU MIGHT ABANDON SOME>C OF THE AC'S WITH NO REAL PENALTY EXCEPT EXPOSING YOUR USERS=C TO DOUBLE DEFINED AREAS, THE TYPE INFO FOR % IS IN A FIXED>C LOCATION HARD CODED IN. NORMALLY YOU'LL WANT TO LEAVE IT TO>C A FLOATING TYPE AND IT MAY NOT FOUL YOU UP (MOST DATA CELLSDC WILL BE FLOATING TOO), BUT CORRECT OPERATION CANNOT BE GUARANTEEDCC UNLESS RRW (NUMBER OF COLUMNS IN PHYSICAL SHEET) IS 27 OR MORE.)C@C RCL MUST BE AT LEAST 2; THE FIRST IS THE ACCUMULATORS AND THE%C SECOND UP ARE DISPLAY COORDINATES.C8C DRW MUST BE LESS THAN OR EQUAL TO RRW AND DCL MUST BE:C LESS THAN OR EQUAL TO (RCL-1). ALSO MXCOLS MUST BE LESS7C THAN OR EQUAL TO DRW AND MXROWS MUST BE LESS THAN ORC EQUAL TO DCL.C=C MPWD IS JUST THE MAX PRINT LINE FOR THE W COMMAND (WRITING>C PRINT IMAGES OF THE SCREEN OUT). IT MAY BE SET SMALLER THAN>C 132, BUT TO MAKE IT LARGER YOU'LL HAVE TO INCREASE THE SIZE>C OF PRINT ARRAYS IN DSPSHT ROUTINE WHICH FILLS IN THE SIZES.C=C IT IS ASSUMED YOUR FORTRAN UNDERSTANDS THESE PARAMETERS ARE<C ALL INTEGER QUANTITIES; CHANGE AS NEEDED IF FORM IS WRONG.C=C THERE ARE A FEW PARAMETER STATEMENTS IN PROGRAMS TOO. THESE;C HAVE TO DO WITH UVT100 DEFINITIONS AND MAY ALSO BE PULLEDC INTO HERE IF DESIRED.C@C PARAMETER RRCL=RRW*RCL. COMPUTE AND FILL IN YOURSELF (FORTRAN.C AT OUR SITE DOESN'T LET THAT BE AUTOMATIC).!C RCPM27 IS COMPUTED AS RRCL-27.+C PARAMETER RCP IS THE SAME VALUE AS RRCL.C+C *****************************************- PARAMETER DCL = 76 ! DISPLAY MAX ROWS, COLS.& PARAMETER DRW = 63 ! DISPLAY MAX COLSEC NOTE THAT DCL ROWS MAY BE PRINTED EVEN THOUGH THE VT100 ONLY ALLOWS<C 20 TO BE DISPLAYED; JUST SET THE DISPLAY LENGTH TO MORE... PARAMETER MPWD = 132$ PARAMETER RRW = 80 ! NUMBER OF COLSF PARAMETER RCL = 401 ! REAL (PHYSICAL) ROWS AND COLUMNS OF SPREADSHEETFC note the next 2 parameters are 1 because subroutines worry about theC storage separately.) PARAMETER RRWP=1 ! PHYSICAL STORAGE SIZE PARAMETER RCLP=1 ! COL,ROW PARAMETER RCR=1 ! RRWP*RCLPAC FOLLOWING IS A DUMMY, ONLY USED FOR A DATA STMT; LEAVE IT AT 1. PARAMETER RCRM27=1 !RCR - 27 PARAMETER RCP = 32080 PARAMETER RCPM27 = 32053 PARAMETER RRCL = 32080C PARAMETER RRCL=RRW*RCL4C BRRCL=(RRCL+7)/8 , I.E., ENOUGH BYTES FOR A BITMAP PARAMETER BRRCL=4010 PARAMETER TMREFN = 1BC MXCOLS AND MXROWS ARE MAX COLS (ACROSS TOP) ON DISPLAY INITIALLYCC AND NUMBER OF INITIALLY DISPLAYED ROWS (ALONG LEFT) DOWN. DRW,DCL3C ARE MAX POSSIBLE DISPLAY COLS, ROWS RESPECTIVELY. PARAMETER MXCOLS=7 PARAMETER MXROWS=20BC LCMDR AND LDSPR ARE COMMAND AND DISPLAY ROWS ON 00QQQH+%O-%TADATADATASCREEN. REDEFINE<C TO OTHER NUMBERS FOR LARGER OR SMALLER SCREENS THAN VT100. PARAMETER LCMDR=23 PARAMETER LDSPR=24C7C JVTINC IS INCREMENT FOR OFFSET DUE TO SCREEN ODDITIES PARAMETER JVTINC=1BC SET JVTINC TO 0 FOR VT52 OR TERMINAL INDEPENDENT SCREEN VERSIONSC8C PARAMETER FOR MAX NUMBER OF HELP SCREENS. SET TO 9 FOR:C STANDARD HELP FILE, OR BIGGER IF DESIRED FOR HELPPRO.FORC FILE. PARAMETER MAXHLP=9CC PARAMETERS FOR DISK VERSION.DC THESE SET THE SIZES OF MEMORY BUFFERS USED FOR VALUES AND FORMULAS;C HANDLED HEREIN. IT IS EXPECTED THAT LVBF WILL BE AT LEAST<C 50 (FOR 250 WORDS), OR A MULTIPLE OF 50, SINCE IT CONTROLS;C VALUE BUFFER RECORDS, KEPT IN 500-BYTE DISK BLOCKS. ALSO,<C LFM SHOULD BE 32 OR A MULTIPLE OF 32. SINCE A SYMBOL TABLE9C ALGORITHM IS USED, THE MULTIPLES PROBABLY SHOULD BE THE@C SAME. THERE MIGHT BE MORE VALUES THAN FORMULAS THOUGH, AS WHENC MATRIX MATH IS USED. PARAMETER LVBF=200 PARAMETER LFM=5125C LFM4 NEEDS TO BE LFM*4 AND LVBF4 NEEDS TO BE LVBF*4'C (USED AS EQUIVALENCES FOR I*4 ARRAYS) PARAMETER LFM4=2048 PARAMETER LVBF4=8009C LPDM=RRCL/64 AND IPDM=RRCL/400, BOTH MULTIPLIED BY 10244C SO THEY ARE DIMENSIONS OF DATA AREAS IN COMMON FOR,C VAX-ONLY "DATA STORAGE AREA", PSEUDO-FILE. PARAMETER IPDM=82944 PARAMETER LPDM=514048 PARAMETER LVBF5=1000 PARAMETER IPDM5=165888C LVBF5=LVBF*5; IPDM5=IPDM*2C LPDMF = LPDM/4 PARAMETER LPDMF=128512 PARAMETER LFMX=1 PARAMETER LFM4X=1 PARAMETER LFMY=128512'C LFMY SHOULD BE SAME AS LPDMF = LPDM/5C (SETS SIZE OF SEARCH...) SUBROUTINE CALBIN(RETCD)#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY. INCLUDE 'VKLUGPRM.FTN'C PARAMETER RRW = 32C PARAMETER RCL = 32C RRW=MAX REAL ROWSC RCL=MAX REAL COLS:C RRW MUST BE 1 LARGER TO HANDLE 1ST 27 VARIABLES IN AVBLS#C VBLS AND TYPE DIMENSIONED RRW,RCLC9C *******************************************************9C * *9C * SUBROUTINE CALBIN *9C * *9C *******************************************************CBC SUBROUTINE CALBIN PERFORMS A BINARY OPERATION ON TWO CONSTANTS.CCCC UPON ENTRANCE TO ROUTINE:"C OPERAND1 IS IN STACK1 (ST1PT-1))C OPERAND2 IS ON TOP OF STACK2 (ST2PT-1)'C OPERATOR IS BELOW OPERAND2 (ST2PT-2) C UPON EXIT:C RESULT IS IN STACK1C STACK2 HAS BEEN CLEANED UPCC RETURN CODE MEANINGC 1 NORMAL RETURN/C 2 OPERATION COMPLETE (RESULT HAS BEEN OUTPUT)C 3 ERROR RETURNCCC'C MODIFICATION CLASSES: M3, M4, AND M8CCCC CALBIN CALLSC6C CONTYP CONVERTS CONSTANTS TO DIFFERENT DATA TYPES%C ERRMSG PRINTS OUT ERROR MESSAGES0C MULADD PERFORMS MULTIPLE PRECISION ADDITION0C MULDIV PERFORMS MULTIPLE PRECISION DIVISION6C MULMUL PERFORMS MULTIPLE PRECISION MULTIPLICATIONC CCAC CALBIN IS CALLED BY POSTVL WHICH EVALUATES A POSTFIX EXPRESSIONCCCCC VARIABLE USEC6C EIGHT(8) PICKS OUT A REAL CONSTANT FROM STACK.:C FOUR(4) PICKS OUT AN INTEGER CONSTANT FROM STACK.'C I,J HOLD TEMPORARY VALUES.CC IA FIRST BYTE OF OPERAND 1. THIS HOLDS THE INDEX INTOAC VBLS OF A VARIABLE IF THE OPERATOR IS AN = SIGN.BC ID USED TO CONVERT DECISION TABLE LOGICAL*1 VALUE TOCC AN INTEGER*2 VALUE THAT CAN BE USED AS AN ARGUMENT%C IN A CALL00QQQN6%! ! TO CONTYP.'C INT,IHOLD HOLD INTEGER*4 VALUES.+C IOP HOLDS THE BINARY OPERATOR.-C IOP2 USED TO INDEX A COMPUTED GO.AC ISW HOLDS BASE FOR MULTIPLE PRECISION EXPONENTIATION@C MINUS VALUE IN THE 100TH BYTE OF A MULTIPLE PRECISION<C NUMBER THAT IS USED TO INDICATE A NEGATIVE.#C OP1TYP TYPE OF OPERAND 1.#C OP2TYP TYPE OF OPERAND 2.@C PLUS VALUE IN THE 100TH BYTE OF A MULTIPLE PRECISION:C NUMBER THAT IS USED TO INDICATE POSITIVE.<C PT1,PT2 POINT TO ELEMENTS ON TOP OF STACKS 1 AND 2..C REAL,RHOLD HOLD TEMPORARY REAL*8 VALUES.@C RETCD ERROR RETURN: 1 = O.K. 2 = RESULT WAS OUTPUTC 3 = ERRORCCCCCCCCCC SUBROUTINE CALBIN(RETCD) REAL*8 REAL,RHOLD,DFLOATC INTEGER*4 INT,IHOLDC INTEGER*2 LEVEL,NONBLK,LEND INTEGER*2 VLEN(9) INTEGER*2 IOP,IA,ID,IOP2,ISW INTEGER*2 PLUS,MINUS INTEGER*2 OLDTYP,VIEWSW,BASED INTEGER*2 TYPE(RRWP,RCLP) INTEGER*2 RETCD,RETCD2 INTEGER*2 OP1TYP,OP2TYP: INTEGER*2 ST1PT,ST2PT,ST1TYP(40),ST2TYP(40),ST1LIM,ST2LIM INTEGER*2 PT1,PT2C& LOGICAL*1 STACK1(20,40),STACK2(20,40) INTEGER*2 STK12(10,40) REAL*8 XVBLK$ EQUIVALENCE(STK12(1,1),STACK1(1,1))% LOGICAL*1 AVBLS(20,27), DTBL1(9,9,8) LOGICAL*1 VBLS(8,RRWP,RCLP) EQUIVALENCE (XVBLK,VBLS(1,1,1)) LOGICAL*1 EIGHT(8),FOUR(4) LOGICAL*1 LINE(80)C% EQUIVALENCE (EIGHT,REAL), (FOUR,INT)C+ COMMON LEVEL,LINE,NONBLK,LEND,VIEWSW,BASED COMMON/V/ TYPE,AVBLS,VBLS,VLEN7 COMMON /STACK/STACK1,STACK2,ST1PT,ST2PT,ST1TYP,ST2TYP, ; ST1LIM,ST2LIM COMMON /DECIDE/DTBL1CC DATA PLUS/0/,MINUS/1/CCCCC RETCD=1 PT1=ST1PT-1 PT2=ST2PT-1CC IOP=ST2TYP(ST2PT-2) OP1TYP=ST1TYP(PT1) OP2TYP=ST2TYP(PT2)4C NOTE THAT IA IS UNUSED HERE... SAVE BIG DIMENSIONS IA=STACK1(1,PT1) ID1=STK12(1,PT1) ID2=STK12(2,PT1)#C CALL GETDM(STACK1(1,PT1),ID1,ID2)6C ****&&&& ABOVE GETS LOCS IN 2 DIM ARRAY OF VARIABLES IF (IOP.NE.200) GOTO 100CCC4C AN = SIGN IS THE OPERATOR. THIS IS A SPECIAL CASE. IF(OP1TYP.GE.0) GO TO 5CCC=C VARIABLE TO THE LEFT OF = SIGN HAS A DATA TYPE BUT NO VALUE OP1TYP=-OP1TYP ST1TYP(PT1)=OP1TYPCCC;C OPERAND 2 COPIED INTO OLD OPERAND'S POSITION IN CASE MORE6C THAN 1 = SIGN IS PRESENT FOR EXPRESSIONS LIKE I=J=25 J=VLEN(OP2TYP)C TYPE(IA)=OP1TYP CALL TYPSET(ID1,ID2,OP1TYP)C TYPE(ID1,ID2)=OP1TYP:C *&*****&&&&& NOTE TYPE ARRAY AND VBLS ARRAY NOW ARE HUGE<C NOTE FURTHER THAT AVBLS IS OLD VBLS ARRAY. SWITCHED ON IFC ID1 =< 27 AND ID2=1. DO 10 I=1,J10 STACK1(I,PT1)=STACK2(I,PT2). CALL CONTYP (STACK1,PT1,OP2TYP,OP1TYP,RETCD2) GOTO (20,9999), RETCD2 STOP 20CC(C THE SPECIFIED VARIABLE GETS NEW VALUE.:C ***&&&& HERE'S WHERE WE STORE A VALUE INTO A VARIABLE...20 J=VLEN(OP1TYP) DO 30 I=1,JC VBLS(I,IA)=STACK1(I,PT1)# IF(ID1.LE.27.AND.ID2.EQ.1) GOTO 22<C REPLACE VBLSET CALL WITH XVBLST CALL ON LAST PASS TO AVOID1C MULTIPLE REPLACEMENT OF STORAGE FOR EVERY PASS. VBLS(I,1,1)=STACK1(I,PT1)% IF(I.EQ.J)CALL XVBLST(ID1,ID2,XVBLK)&C CALL VBLSET(I,ID1,ID2,STACK1(I,PT1))C VBLS(I,ID1,ID2)=STACK1(I,PT1) GOTO 3022 AVBLS(I,ID1)=STACK1(I,PT1) C *****&&&&& 30 CONTINUE GOTO 10000CC4C IOP2 VALUES 1="**" 2="*" 3="/" 4="+" 5="-"100 IOP2=IOP-111% GOTO (1000,2000,2000,2000,2000),IOP2CC1C ********************************************1C *********** EXPONENTIATION ***************1C ********************************************CCC FIRST CONVERT TO PROPER TYPE1000 ID=DTBL1(OP2TYP,OP1TYP,5)) CALL CONTYP(STACK1,PT1,OP1TYP,ID,RETCD2) IF (RETCD2.EQ.2) GOTO 9999 ID=DTBL1(OP2TYP,OP1TYP,6)* CALL CONTYP (STACK2,PT2,OP2TYP,ID,RETCD2) IF (RETCD2.EQ.2) GOTO 9999CC.C GOTO APPROPRIATE PLACE TO PERFORM OPERATION ID=DTBL1(OP2TYP,OP1TYP,8)- GOTO (1100,1200,1300,1400,1500,1600,1700),ID STOP 1000CC C REAL**REAL1100 DO 1104 I=1,81104 EIGHT(I)=STACK1(I,PT100QQQH+%O-%TADATADATA) RHOLD=REAL DO 1108 I=1,81108 EIGHT(I)=STACK2(I,PT2) REAL=RHOLD**REALCCC USED BY REAL**I1109 DO 1110 I=1,81110 STACK1(I,PT1)=EIGHT(I)CCC USED BY I**REAL,I**I'1114 ST1TYP(PT1)=DTBL1(OP2TYP,OP1TYP,7) GOTO 10000CCC C REAL**I1200 DO 1204 I=1,81204 EIGHT(I)=STACK1(I,PT1) DO 1208 I=1,41208 FOUR(I)=STACK2(I,PT2) REAL=REAL**INT GOTO 1109CCCC I**REAL (PARTS USED BY I**I)1300 DO 1304 I=1,41304 FOUR(I)=STACK1(I,PT1) DO 1308 I=1,81308 EIGHT(I)=STACK2(I,PT2)CCC DIFFERENT VERSIONS OF FORTRAN TREAT THE RESULT IN DIFFERENT WAYS.@C IF YOU WANT THE RESULT TO BE REAL, YOU MUST ALSO CHANGE DTBL1.C INT=DFLOAT(INT)**REAL1310 DO 1314 I=1,41314 STACK1(I,PT1)=FOUR(I) GOTO 1114CCCC I**I1400 DO 1404 I=1,41404 FOUR(I)=STACK1(I,PT1) IHOLD=INT DO 1408 I=1,41408 FOUR(I)=STACK2(I,PT2) INT=IHOLD**INT GOTO 1310CCC*C M8**I (PARTS USED BY M10**I, M16**I) 1500 ISW=8"1501 IF(ST2PT.LE.ST2LIM)GO TO 1502CCC STACK OVERFLOW CALL ERRMSG(9) GO TO 9999CCC GET EXPONENT AS AN INTEGER1502 DO 1504 I=1,41504 FOUR(I)=STACK2(I,PT2) IF (INT.GE.0) GOTO 1520CCC EXPONENT NOT POSITIVE OR 0 CALL ERRMSG (15) GOTO 99991520 IF (INT.GT.0) GOTO 1530CC C I**0 = 1 STACK1(20,PT1)=PLUS DO 1522 I=2,191522 STACK1(I,PT1)=0 STACK1(1,PT1)=1 GOTO 10000CCC EXPONENT IS > 01530 INT=INT-1CCC IF EXPONENT = 1 WE ARE DONE IF(INT.EQ.0)GO TO 10000CCAC EXPONENT IS > 1. COPY TO STACK 2 WHERE MULMUL EXPECTS THE OTHER C FACTOR. DO 1534 I=1,20"1534 STACK2(I,ST2PT)=STACK1(I,PT1) ST2TYP(ST2PT)=ST1TYP(PT1)CCCC1549 DO 1550 I=1,INT" CALL MULMUL(PT1,ST2PT,RETCD2,ISW) IF(RETCD2.GE.2)GO TO 9999 1550 CONTINUE GOTO 10000C C M10**I 1600 ISW=10 GOTO 1501CCC C M16**I 1700 ISW=16 GOTO 1501CCCCCCC,C *****************************************,C * MAKE CONVERSIONS APPROPRIATE FOR */+- *,C ***************************************** 2000 CONTINUE ID=DTBL1(OP2TYP,OP1TYP,1)* CALL CONTYP (STACK1,PT1,OP1TYP,ID,RETCD2) IF (RETCD2.EQ.2) GOTO 9999 IF(ID.EQ.0)GO TO 2010 ST1TYP(PT1)=ID OP1TYP=ID2010 ID=DTBL1(OP2TYP,OP1TYP,2)* CALL CONTYP (STACK2,PT2,OP2TYP,ID,RETCD2) IF (RETCD2.EQ.2) GOTO 9999 IF(ID.EQ.0)GOTO 2020 ST2TYP(PT2)=ID OP2TYP=IDC 2020 CONTINUECCCC GOTO SECTION ACCORDING TO OPERATION *=3000, /=4000,+=5000,-=6000% GOTO (2100,3000,4000,5000,6000),IOP22100 STOP 2100CCCCCC1C **********************************************1C *********** MULTIPLICATION *****************1C **********************************************3000 ID=DTBL1(OP2TYP,OP1TYP,4)7 GOTO (3100,3200,3300,3300,3500,3600,3700,3300,3200),ID STOP 3000CC8C ASCII (ALSO SUBTRACTION, MULTIPLICATION AND DIVISION)3100 CALL ERRMSG (12) GOTO 9999CCC DECIMAL, REAL3200 DO 3204 I=1,83204 EIGHT(I)=STACK1(I,PT1) RHOLD=REAL DO 3208 I=1,83208 EIGHT(I)=STACK2(I,PT2) REAL=RHOLD*REAL3209 DO 3210 I=1,83210 STACK1(I,PT1)=EIGHT(I)CC#C FOLLOWING USED BY OTHER SECTIONS'3220 ST1TYP(PT1)=DTBL1(OP2TYP,OP1TYP,3) GOTO 10000CCCC HEX,INTEGER,OCTAL3300 DO 3304 I=1,43304 FOUR(I)=STACK1(I,PT1) IHOLD=INT DO 3308 I=1,43308 FOUR(I)=STACK2(I,PT2) INT=IHOLD*INT3309 DO 3310 I=1,43310 STACK1(I,PT1)=FOUR(I) GOTO 3220CCCC M10$3500 CALL MULMUL (PT1,PT2,RETCD2,10)CC#C FOLLOWING USED BY OTHER SECTIONS3510 IF (RETCD2.EQ.2) GOTO 9999 GOTO 3220CCCC M8#3600 CALL MULMUL (PT1,PT2,RETCD2,8) GOTO 3510CCCC M16$3700 CALL MULMUL (PT1,PT2,RETCD2,16) GOTO 3510CCCCCC5C **************************************************5C ****************** DIVISION ********************5C **************************************************4000 ID=DTBL1(OP2TYP,OP1TYP,4)7 GOTO (3100,4200,4300,4300,4500,4600,4700,4300,4200),ID STOP 4000CCC DECIMAL,REAL4200 DO 4204 I00QQQN6%! !=1,84204 EIGHT(I)=STACK1(I,PT1) RHOLD=REAL DO 4208 I=1,84208 EIGHT(I)=STACK2(I,PT2) IF(REAL.NE.0.D0)GO TO 4210 CALL ERRMSG(23) GO TO 99994210 REAL=RHOLD/REAL GOTO 3209CCC HEX,INTEGER,OCTAL4300 DO 4304 I=1,44304 FOUR(I)=STACK1(I,PT1) IHOLD=INT DO 4308 I=1,44308 FOUR(I)=STACK2(I,PT2) IF(INT.NE.0)GO TO 4310 CALL ERRMSG(23) GO TO 99994310 INT=IHOLD/INT GOTO 3309CCC M10$4500 CALL MULDIV (PT1,PT2,RETCD2,10) GOTO 3510CCC M8#4600 CALL MULDIV (PT1,PT2,RETCD2,8) GOTO 3510CCC M16$4700 CALL MULDIV (PT1,PT2,RETCD2,16) GOTO 3510CCCCC4C **************************************************4C ***************** ADDITION *********************4C **************************************************C5000 ID=DTBL1(OP2TYP,OP1TYP,4)7 GOTO (3100,5200,5300,5300,5500,5600,5700,5300,5200),ID STOP 5000CCC DECIMAL, REAL5200 DO 5204 I=1,85204 EIGHT(I)=STACK1(I,PT1) RHOLD=REAL DO 5208 I=1,85208 EIGHT(I)=STACK2(I,PT2) REAL=RHOLD+REAL GOTO 3209CCC HEX,INTEGER,OCTAL5300 DO 5304 I=1,45304 FOUR(I)=STACK1(I,PT1) IHOLD=INT DO 5308 I=1,45308 FOUR(I)=STACK2(I,PT2) INT=IHOLD+INT GOTO 3309CCC M10#5500 CALL MULADD (PT1,PT2,RETCD2,1) GOTO 3510CCC M8#5600 CALL MULADD (PT1,PT2,RETCD2,2) GOTO 3510CCC M16"5700 CALL MULADD(PT1,PT2,RETCD2,3) GOTO 3510CCCCCC6C ***************************************************6C ****************** SUBTRACTION ******************6C ***************************************************C6000 ID=DTBL1(OP2TYP,OP1TYP,4)7 GOTO (3100,6200,6300,6300,6500,6600,6700,6300,6200),ID STOP 6000CCC DECIMAL,REAL6200 DO 6204 I=1,86204 EIGHT(I)=STACK1(I,PT1) RHOLD=REAL DO 6208 I=1,86208 EIGHT(I)=STACK2(I,PT2) REAL=RHOLD-REAL GOTO 3209CCC HEX,INTEGER,OCTAL6300 DO 6304 I=1,46304 FOUR(I)=STACK1(I,PT1) IHOLD=INT DO 6308 I=1,46308 FOUR(I)=STACK2(I,PT2) INT=IHOLD-INT GOTO 3309CCC M10#6500 CALL MULADD (PT1,PT2,RETCD2,4) GOTO 3510CCC M8#6600 CALL MULADD (PT1,PT2,RETCD2,5) GOTO 3510CCC M16#6700 CALL MULADD (PT1,PT2,RETCD2,6) GOTO 3510CCCCCC EXIT 9999 RETCD=3CCC10000 ST2PT=ST2PT-2 RETURN END SUBROUTINE CALBIN(RETCD)#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY. INCLUDE 'VKLUGPRM.FTN'C PARAMETER RRW = 32C PARAMETER RCL = 32C RRW=MAX REAL ROWSC RCL=MAX REAL COLS:C RRW MUST BE 1 LARGER TO HANDLE 1ST 27 VARIABLES IN AVBLS#C VBLS AND TYPE DIMENSIONED RRW,RCLC9C *******************************************************9C * *9C * SUBROUTINE CALBIN *9C * *9C *******************************************************CBC SUBROUTINE CALBIN PERFORMS A BINARY OPERATION ON TWO CONSTANTS.CCCC UPON ENTRANCE TO ROUTINE:"C OPERAND1 IS IN STACK1 (ST1PT-1))C OPERAND2 IS ON TOP OF STACK2 (ST2PT-1)'C OPERATOR IS BELOW OPERAND2 (ST2PT-2) C UPON EXIT:C RESULT IS IN STACK1C STACK2 HAS BEEN CLEANED UPCC RETURN CODE MEANINGC 1 NORMAL RETURN/C 2 OPERATION COMPLETE (RESULT HAS BEEN OUTPUT)C 3 ERROR RETURNCCC'C MODIFICATION CLASSES: M3, M4, AND M8CCCC CALBIN CALLSC6C CONTYP CONVERTS CONSTANTS TO DIFFERENT DATA TYPES%C ERRMSG PRINTS OUT ERROR MESSAGES0C MULADD PERFORMS MULTIPLE PRECISION ADDITION0C MULDIV PERFORMS MULTIPLE PRECISION DIVISION6C MULMUL PERFORMS MULTIPLE PRECISION MULTIPLICATIONC CCAC CALBIN IS CALLED BY POSTVL WHICH EVALUATES A POSTFIX EXP00QQQH+%O-%TADATADATARESSIONCCCCC VARIABLE USEC6C EIGHT(8) PICKS OUT A REAL CONSTANT FROM STACK.:C FOUR(4) PICKS OUT AN INTEGER CONSTANT FROM STACK.'C I,J HOLD TEMPORARY VALUES.CC IA FIRST BYTE OF OPERAND 1. THIS HOLDS THE INDEX INTOAC VBLS OF A VARIABLE IF THE OPERATOR IS AN = SIGN.BC ID USED TO CONVERT DECISION TABLE LOGICAL*1 VALUE TOCC AN INTEGER*2 VALUE THAT CAN BE USED AS AN ARGUMENT%C IN A CALL TO CONTYP.'C INT,IHOLD HOLD INTEGER*4 VALUES.+C IOP HOLDS THE BINARY OPERATOR.-C IOP2 USED TO INDEX A COMPUTED GO.AC ISW HOLDS BASE FOR MULTIPLE PRECISION EXPONENTIATION@C MINUS VALUE IN THE 100TH BYTE OF A MULTIPLE PRECISION<C NUMBER THAT IS USED TO INDICATE A NEGATIVE.#C OP1TYP TYPE OF OPERAND 1.#C OP2TYP TYPE OF OPERAND 2.@C PLUS VALUE IN THE 100TH BYTE OF A MULTIPLE PRECISION:C NUMBER THAT IS USED TO INDICATE POSITIVE.<C PT1,PT2 POINT TO ELEMENTS ON TOP OF STACKS 1 AND 2..C REAL,RHOLD HOLD TEMPORARY REAL*8 VALUES.@C RETCD ERROR RETURN: 1 = O.K. 2 = RESULT WAS OUTPUTC 3 = ERRORCCCCCCCCCC SUBROUTINE CALBIN(RETCD) REAL*8 REAL,RHOLD,DFLOATC INTEGER*4 INT,IHOLDC INTEGER*2 LEVEL,NONBLK,LEND INTEGER*2 VLEN(9) INTEGER*2 IOP,IA,ID,IOP2,ISW INTEGER*2 PLUS,MINUS INTEGER*2 OLDTYP,VIEWSW,BASED INTEGER*2 TYPE(RRWP,RCLP) INTEGER*2 RETCD,RETCD2 INTEGER*2 OP1TYP,OP2TYP: INTEGER*2 ST1PT,ST2PT,ST1TYP(40),ST2TYP(40),ST1LIM,ST2LIM INTEGER*2 PT1,PT2C& LOGICAL*1 STACK1(20,40),STACK2(20,40) INTEGER*2 STK12(10,40)$ EQUIVALENCE(STK12(1,1),STACK1(1,1))% LOGICAL*1 AVBLS(20,27), DTBL1(9,9,8) LOGICAL*1 VBLS(8,RRWP,RCLP) LOGICAL*1 EIGHT(8),FOUR(4) LOGICAL*1 LINE(80)C% EQUIVALENCE (EIGHT,REAL), (FOUR,INT)C+ COMMON LEVEL,LINE,NONBLK,LEND,VIEWSW,BASED COMMON/V/ TYPE,AVBLS,VBLS,VLEN7 COMMON /STACK/STACK1,STACK2,ST1PT,ST2PT,ST1TYP,ST2TYP, ; ST1LIM,ST2LIM COMMON /DECIDE/DTBL1CC DATA PLUS/0/,MINUS/1/CCCCC RETCD=1 PT1=ST1PT-1 PT2=ST2PT-1CC IOP=ST2TYP(ST2PT-2) OP1TYP=ST1TYP(PT1) OP2TYP=ST2TYP(PT2)4C NOTE THAT IA IS UNUSED HERE... SAVE BIG DIMENSIONS IA=STACK1(1,PT1) ID1=STK12(1,PT1) ID2=STK12(2,PT1)#C CALL GETDM(STACK1(1,PT1),ID1,ID2)6C ****&&&& ABOVE GETS LOCS IN 2 DIM ARRAY OF VARIABLES IF (IOP.NE.200) GOTO 100CCC4C AN = SIGN IS THE OPERATOR. THIS IS A SPECIAL CASE. IF(OP1TYP.GE.0) GO TO 5CCC=C VARIABLE TO THE LEFT OF = SIGN HAS A DATA TYPE BUT NO VALUE OP1TYP=-OP1TYP ST1TYP(PT1)=OP1TYPCCC;C OPERAND 2 COPIED INTO OLD OPERAND'S POSITION IN CASE MORE6C THAN 1 = SIGN IS PRESENT FOR EXPRESSIONS LIKE I=J=25 J=VLEN(OP2TYP)C TYPE(IA)=OP1TYP CALL TYPSET(ID1,ID2,OP1TYP)C TYPE(ID1,ID2)=OP1TYP:C *&*****&&&&& NOTE TYPE ARRAY AND VBLS ARRAY NOW ARE HUGE<C NOTE FURTHER THAT AVBLS IS OLD VBLS ARRAY. SWITCHED ON IFC ID1 =< 27 AND ID2=1. DO 10 I=1,J10 STACK1(I,PT1)=STACK2(I,PT2). CALL CONTYP (STACK1,PT1,OP2TYP,OP1TYP,RETCD2) GOTO (20,9999), RETCD2 STOP 20CC(C THE SPECIFIED VARIABLE GETS NEW VALUE.:C ***&&&& HERE'S WHERE WE STORE A VALUE INTO A VARIABLE...20 J=VLEN(OP1TYP) DO 30 I=1,JC VBLS(I,IA)=STACK1(I,PT1)# IF(ID1.LE.27.AND.ID2.EQ.1) GOTO 22% CALL VBLSET(I,ID1,ID2,STACK1(I,PT1))C VBLS(I,ID1,ID2)=STACK1(I,PT1) GOTO 3022 AVBLS(I,ID1)=STACK1(I,PT1) C *****&&&&& 30 CONTINUE GOTO 10000CC4C IOP2 VALUES 1="**" 2="*" 3="/" 4="+" 5="-"100 IOP2=IOP-111% GOTO (1000,2000,2000,2000,2000),IOP2CC1C ********************************************1C *********** EXPONENTIATION ***************1C ********************************************CCC FIRST CONVERT TO PROPER TYPE1000 ID=DTBL1(OP2TYP,OP1TYP,5)) CALL CONTYP(STACK1,PT1,OP1TYP,ID,RETCD2) IF (RETCD2.EQ.2) GOTO 9999 ID=DTBL1(OP2TYP,OP1TYP,6)* CALL CO00RQQN6%! !NTYP (STACK2,PT2,OP2TYP,ID,RETCD2) IF (RETCD2.EQ.2) GOTO 9999CC.C GOTO APPROPRIATE PLACE TO PERFORM OPERATION ID=DTBL1(OP2TYP,OP1TYP,8)- GOTO (1100,1200,1300,1400,1500,1600,1700),ID STOP 1000CC C REAL**REAL1100 DO 1104 I=1,81104 EIGHT(I)=STACK1(I,PT1) RHOLD=REAL DO 1108 I=1,81108 EIGHT(I)=STACK2(I,PT2) REAL=RHOLD**REALCCC USED BY REAL**I1109 DO 1110 I=1,81110 STACK1(I,PT1)=EIGHT(I)CCC USED BY I**REAL,I**I'1114 ST1TYP(PT1)=DTBL1(OP2TYP,OP1TYP,7) GOTO 10000CCC C REAL**I1200 DO 1204 I=1,81204 EIGHT(I)=STACK1(I,PT1) DO 1208 I=1,41208 FOUR(I)=STACK2(I,PT2) REAL=REAL**INT GOTO 1109CCCC I**REAL (PARTS USED BY I**I)1300 DO 1304 I=1,41304 FOUR(I)=STACK1(I,PT1) DO 1308 I=1,81308 EIGHT(I)=STACK2(I,PT2)CCC DIFFERENT VERSIONS OF FORTRAN TREAT THE RESULT IN DIFFERENT WAYS.@C IF YOU WANT THE RESULT TO BE REAL, YOU MUST ALSO CHANGE DTBL1.C INT=DFLOAT(INT)**REAL1310 DO 1314 I=1,41314 STACK1(I,PT1)=FOUR(I) GOTO 1114CCCC I**I1400 DO 1404 I=1,41404 FOUR(I)=STACK1(I,PT1) IHOLD=INT DO 1408 I=1,41408 FOUR(I)=STACK2(I,PT2) INT=IHOLD**INT GOTO 1310CCC*C M8**I (PARTS USED BY M10**I, M16**I) 1500 ISW=8"1501 IF(ST2PT.LE.ST2LIM)GO TO 1502CCC STACK OVERFLOW CALL ERRMSG(9) GO TO 9999CCC GET EXPONENT AS AN INTEGER1502 DO 1504 I=1,41504 FOUR(I)=STACK2(I,PT2) IF (INT.GE.0) GOTO 1520CCC EXPONENT NOT POSITIVE OR 0 CALL ERRMSG (15) GOTO 99991520 IF (INT.GT.0) GOTO 1530CC C I**0 = 1 STACK1(20,PT1)=PLUS DO 1522 I=2,191522 STACK1(I,PT1)=0 STACK1(1,PT1)=1 GOTO 10000CCC EXPONENT IS > 01530 INT=INT-1CCC IF EXPONENT = 1 WE ARE DONE IF(INT.EQ.0)GO TO 10000CCAC EXPONENT IS > 1. COPY TO STACK 2 WHERE MULMUL EXPECTS THE OTHER C FACTOR. DO 1534 I=1,20"1534 STACK2(I,ST2PT)=STACK1(I,PT1) ST2TYP(ST2PT)=ST1TYP(PT1)CCCC1549 DO 1550 I=1,INT" CALL MULMUL(PT1,ST2PT,RETCD2,ISW) IF(RETCD2.GE.2)GO TO 9999 1550 CONTINUE GOTO 10000C C M10**I 1600 ISW=10 GOTO 1501CCC C M16**I 1700 ISW=16 GOTO 1501CCCCCCC,C *****************************************,C * MAKE CONVERSIONS APPROPRIATE FOR */+- *,C ***************************************** 2000 CONTINUE ID=DTBL1(OP2TYP,OP1TYP,1)* CALL CONTYP (STACK1,PT1,OP1TYP,ID,RETCD2) IF (RETCD2.EQ.2) GOTO 9999 IF(ID.EQ.0)GO TO 2010 ST1TYP(PT1)=ID OP1TYP=ID2010 ID=DTBL1(OP2TYP,OP1TYP,2)* CALL CONTYP (STACK2,PT2,OP2TYP,ID,RETCD2) IF (RETCD2.EQ.2) GOTO 9999 IF(ID.EQ.0)GOTO 2020 ST2TYP(PT2)=ID OP2TYP=IDC 2020 CONTINUECCCC GOTO SECTION ACCORDING TO OPERATION *=3000, /=4000,+=5000,-=6000% GOTO (2100,3000,4000,5000,6000),IOP22100 STOP 2100CCCCCC1C **********************************************1C *********** MULTIPLICATION *****************1C **********************************************3000 ID=DTBL1(OP2TYP,OP1TYP,4)7 GOTO (3100,3200,3300,3300,3500,3600,3700,3300,3200),ID STOP 3000CC8C ASCII (ALSO SUBTRACTION, MULTIPLICATION AND DIVISION)3100 CALL ERRMSG (12) GOTO 9999CCC DECIMAL, REAL3200 DO 3204 I=1,83204 EIGHT(I)=STACK1(I,PT1) RHOLD=REAL DO 3208 I=1,83208 EIGHT(I)=STACK2(I,PT2) REAL=RHOLD*REAL3209 DO 3210 I=1,83210 STACK1(I,PT1)=EIGHT(I)CC#C FOLLOWING USED BY OTHER SECTIONS'3220 ST1TYP(PT1)=DTBL1(OP2TYP,OP1TYP,3) GOTO 10000CCCC HEX,INTEGER,OCTAL3300 DO 3304 I=1,43304 FOUR(I)=STACK1(I,PT1) IHOLD=INT DO 3308 I=1,43308 FOUR(I)=STACK2(I,PT2) INT=IHOLD*INT3309 DO 3310 I=1,43310 STACK1(I,PT1)=FOUR(I) GOTO 3220CCCC M10$3500 CALL MULMUL (PT1,PT2,RETCD2,10)CC#C FOLLOWING USED BY OTHER SECTIONS3510 IF (RETCD2.EQ.2) GOTO 9999 GOTO 3220CCCC M8#3600 CALL MULMUL (PT1,PT2,RETCD2,8) GOTO 3510CCCC M16$3700 CALL MULMUL (PT1,PT2,RETCD2,16) GOTO 3510CCCCCC5C ***************************00 RRQH+%O-%TADATADATA***********************5C ****************** DIVISION ********************5C **************************************************4000 ID=DTBL1(OP2TYP,OP1TYP,4)7 GOTO (3100,4200,4300,4300,4500,4600,4700,4300,4200),ID STOP 4000CCC DECIMAL,REAL4200 DO 4204 I=1,84204 EIGHT(I)=STACK1(I,PT1) RHOLD=REAL DO 4208 I=1,84208 EIGHT(I)=STACK2(I,PT2) IF(REAL.NE.0.D0)GO TO 4210 CALL ERRMSG(23) GO TO 99994210 REAL=RHOLD/REAL GOTO 3209CCC HEX,INTEGER,OCTAL4300 DO 4304 I=1,44304 FOUR(I)=STACK1(I,PT1) IHOLD=INT DO 4308 I=1,44308 FOUR(I)=STACK2(I,PT2) IF(INT.NE.0)GO TO 4310 CALL ERRMSG(23) GO TO 99994310 INT=IHOLD/INT GOTO 3309CCC M10$4500 CALL MULDIV (PT1,PT2,RETCD2,10) GOTO 3510CCC M8#4600 CALL MULDIV (PT1,PT2,RETCD2,8) GOTO 3510CCC M16$4700 CALL MULDIV (PT1,PT2,RETCD2,16) GOTO 3510CCCCC4C **************************************************4C ***************** ADDITION *********************4C **************************************************C5000 ID=DTBL1(OP2TYP,OP1TYP,4)7 GOTO (3100,5200,5300,5300,5500,5600,5700,5300,5200),ID STOP 5000CCC DECIMAL, REAL5200 DO 5204 I=1,85204 EIGHT(I)=STACK1(I,PT1) RHOLD=REAL DO 5208 I=1,85208 EIGHT(I)=STACK2(I,PT2) REAL=RHOLD+REAL GOTO 3209CCC HEX,INTEGER,OCTAL5300 DO 5304 I=1,45304 FOUR(I)=STACK1(I,PT1) IHOLD=INT DO 5308 I=1,45308 FOUR(I)=STACK2(I,PT2) INT=IHOLD+INT GOTO 3309CCC M10#5500 CALL MULADD (PT1,PT2,RETCD2,1) GOTO 3510CCC M8#5600 CALL MULADD (PT1,PT2,RETCD2,2) GOTO 3510CCC M16"5700 CALL MULADD(PT1,PT2,RETCD2,3) GOTO 3510CCCCCC6C ***************************************************6C ****************** SUBTRACTION ******************6C ***************************************************C6000 ID=DTBL1(OP2TYP,OP1TYP,4)7 GOTO (3100,6200,6300,6300,6500,6600,6700,6300,6200),ID STOP 6000CCC DECIMAL,REAL6200 DO 6204 I=1,86204 EIGHT(I)=STACK1(I,PT1) RHOLD=REAL DO 6208 I=1,86208 EIGHT(I)=STACK2(I,PT2) REAL=RHOLD-REAL GOTO 3209CCC HEX,INTEGER,OCTAL6300 DO 6304 I=1,46304 FOUR(I)=STACK1(I,PT1) IHOLD=INT DO 6308 I=1,46308 FOUR(I)=STACK2(I,PT2) INT=IHOLD-INT GOTO 3309CCC M10#6500 CALL MULADD (PT1,PT2,RETCD2,4) GOTO 3510CCC M8#6600 CALL MULADD (PT1,PT2,RETCD2,5) GOTO 3510CCC M16#6700 CALL MULADD (PT1,PT2,RETCD2,6) GOTO 3510CCCCCC EXIT 9999 RETCD=3CCC10000 ST2PT=ST2PT-2 RETURN END SUBROUTINE CALC#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY. INCLUDE 'VKLUGPRM.FTN'C PARAMETER RRW = 32C PARAMETER RCL = 32C RRW=MAX REAL ROWSC RCL=MAX REAL COLS:C RRW MUST BE 1 LARGER TO HANDLE 1ST 27 VARIABLES IN AVBLS#C VBLS AND TYPE DIMENSIONED RRW,RCL9C *** CALC MAINLINE ***C;C THIS PROGRAM EVALUATES ARITHMETIC EXPRESSIONS INPUT TO IT9C AND ALLOWS VARIABLES TO BE ASSIGNED VALUES. IT FEATURES6C MULTIPLE PRECISION ARITHMETIC IN BASE 10, OCTAL, AND:C HEXADECIMAL. SEE CALC.MEM FOR A COMPLETE DESCRIPTION IN 7C THE FORM OF A USERS GUIDE. TYPE ? TO OBTAIN A LIST OFC POSSIBLE COMMANDS.CC CALC CALLSC?C ASSIGN OPENS A FILE AND ASSIGNS IT TO A LOGICAL I/O UNIT.>C CLOSE CLOSES A FILE ASSOCIATED WITH A LOGICAL I/O UNIT.6C CMND DETERMINES WHAT CALC COMMAND IS REQUIRED.FC ERRCX CHECKS THE EXPRESSION IN AN I00RQQN6%! !NPUT LINE FOR SYNTAX ERRORS.'C ERRMSG PRINTS OUT ERROR MESSAGES.)C EXIT RETURNS TO OPERATING SYSTEM.FC GETMCR GETS THE COMMAND LINE USED TO INVOKE CALC. IF AN ARGUMENTGC IS PRESENT, CALC EXITS AFTER THAT ONE COMMAND IS EXECUTED.:C INPOST CONVERTS AN INFIX EXPRESSION TO POSTFIX FORM.+C LIST LISTS THE LEGAL CALC COMMANDS.EC POSTVL CONVERTS AN EXPRESSION IN POSTFIX NOTATION ON STACK 1 TOC A VALUE.2C SLEND FINDS THE LAST NON-BLANK IN LINE(80).0C VAROUT PRINTS OUT THE VALUE OF A VARIABLE.:C ZNEG DETERMINES IF A VARIABLE IS POSITIVE IN VALUECCCC VARIABLE USEC8C BASED DEFAULT BASE WHEN CONSTANTS ARE ENTERED.C BLANK ' 'AC DIGITS(16,3) HOLDS DECIMAL, OCTAL, AND HEXADECIMAL DIGITS. THE#C SECOND SUBSCRIPT IS#C 1 FOR DECIMAL!C 2 FOR OCTAL'C 3 FOR HEXADECIMAL&C I,J HOLD TEMPORARY VALUES.FC ITCNTV(6) INDEXED BY LEVEL. 0 INDICATES THAT NO ITERATION ON THEGC INDIRECT COMMAND FILE IS TO TAKE PLACE. IF POSITIVE, ITEC HOLDS THE INDEX INTO VBLS AND REPRESENTS THE VARIABLE*C USED TO CONTROL ITERATION.*C THIS VARIABLE IS GUARANTEED TO BE 1-27.>C LEND POINTS TO LAST NON-BLANK CHARACTER IN LINE(80)FC LEVEL HOLDS THE LOGICAL I/O UNIT WHERE THE NEXT CALC COMMAND C LINES COME FROM.#C LINE(80) COMMAND INPUT LINE.;C NONBLK POINTS TO LAST NON-BLANK FOUND IN LINE(80).CC ONCE HOLDS 1 IF ONLY ONE COMMAND LINE IS TO BE EXECUTED,C 0 OTHERWISE.C STAR '*'C VIEWSW VIEW SWITCH.C 0 = OUTPUT ERROR MESSAGESEC 1 = OUTPUT ERROR MESSAGES AND FILE COMMAND LINESGC 2 = OUTPUT ERROR MESSAGES AND VALUE OF EXPRESSIONS#C EVALUATED.*C 3 = OUTPUT EVERYTHING>C WHAT '?' SIGNIFIES THAT A LIST OF POSSIBLE COMMANDS!C SHOULD BE OUTPUT.CC MODIFIED REASONC?C 18-MAY-1981 DELETED LINE THAT CAUSED DEFAULT BASE TO BE RESETC WHEN AN ERROR OCCURS (PB)CBC 18-MAY-1981 ADDED CODE AT LINES 106 TO 108 TO CONVERT FROM LOWERC TO UPPER CASE (PB)CDC CHANGED TO SUBROUTINE GCE TO ALLOW EXTERNAL CONTROL OF CALCULATOR.C INTEGER*2 LEVEL,NONBLK,LEND INTEGER*2 RETCD,VIEWSW,BASED INTEGER*2 ONCE INTEGER*2 ZNEG,ITCNTV(6)C$ LOGICAL*1 LINE(80),WHAT,STAR,QUOTE- LOGICAL*1 ALPHA(27),COMMA,BLANK,RPAR,LPAR,EQ LOGICAL*1 DIGITS(16,3)" INTEGER*2 OSWIT,OCNTR,ILNFG,ILNCT LOGICAL*1 OARRY(100),ILINE(106) COMMON/OAR/OSWIT,OCNTR,OARRY COMMON/ILN/ILNFG,ILNCT,ILINEC, COMMON LEVEL,LINE,NONBLK,LEND,VIEWSW,BASED COMMON/KLVL/KLVL- COMMON /CONS/ALPHA,COMMA,BLANK,RPAR,LPAR,EQ COMMON /DIGV/ DIGITS COMMON/ITERA/ITCNTVC( DATA WHAT/'?'/, STAR/'*'/, QUOTE/''''/ DATA ONCE/0/CCC9C LOGICAL I/O UNIT 1 IS ASSIGNED TO THE INVOKING TERMINAL?C IF YOU DON'T WANT TO RISK THE BUILDER TASK BUILDING (LINKING) C THE MODULES PROPERLY, PUT IN A IF(KLVL.EQ.1)LEVEL=KLVL ONCE=0 IF(ILNFG.NE.0) GOTO 6000 CALL ASSIGN (1,'TT:') 6000 CONTINUEC CHANGE TI: TO TT: FOR VMS.BC THE ADVANTAGE OF NOT DOING THIS IS THAT YOU CAN CREATE AN OUTPUTDC TEST FILE TO DISK TO HELP VERIFY CORRECTNESS AFTER A CHANGE TO THEC SOURCE HAS BEEN MADE.CCC%C GET MCR COMMAND LINE (RSX11-M CALL) IF(ILNFG.EQ.0)GOTO 6010 IF(ILNCT.GT.0)GOTO 6010=C INVALID INPUTS...NO LINE TO DO BUT FLAGGED TO DO. CLEAN UP. ILNFG=0 RETURN 6010 CONTINUE' IF(ILNFG.NE.0.AND.ILNCT.GT.0)GOTO 6001C ++++++C FOR DEC FORTRAN:C CALL GETMCR(LINE,LEND)C IF(LEND)20,20,5(C FOR NON-DEC FORTRAN: (OR VAX VERSIONS) GOTO 20C ++++++ END OF CHOICES... 5 CONTINUE GOTO 6003 6001 CONTINUE DO 6007 LENDX=1,806007 LINE(LENDX)=32 IF(ILNFG.EQ.1)ONCE=1 DO 6002 LENDX=1,ILNCT LINE(LENDX)=ILINE(LENDX)9 IF(LINE(LENDX).GT.0.AND.LINE(LENDX).LT.32)LINE(LENDX)=3200RRQH+%O-%TADATADATAC LEAVE NAY EXISTING NULLS IN. 6002 CONTINUE LEND=ILNCTCD CALL FRMEDT(LINE,LEND)6C FRMEDT IMPLEMENTS {VAR FORMS AND REPLACES IN FORMULA6CC NULL TERMINATE THE LINE TO ENSURE WE END SOMEWHERE.C ICCC=MIN0(80,(LEND+1))C LINE(ICCC)=0 GOTO 103 6003 CONTINUE DO 6 NONBLK=1,7! IF(LINE(NONBLK).EQ.BLANK)GO TO 7 IF(LINE(NONBLK).EQ.13)GO TO 20 6 CONTINUE STOP 67 NONBLK=NONBLK+1 ONCE=1 GO TO 106CC ERROR RESET10 IF(LEVEL.LE.1) GO TO 12 CALL CLOSE(LEVEL) LEVEL=LEVEL-1 GO TO 10 12 CONTINUE VIEWSW=3CCC GET NEXT INPUT LINE 20 CONTINUE LINE(1)=0 LINE(2)=0$ IF(ONCE.EQ.1.AND.LEVEL.LE.1) RETURN*C20 IF(ONCE.EQ.1.AND.LEVEL.EQ.1) CALL EXIT)C IF (ILNFG.NE.0.AND.ILNCT.GT.0)GOTO 60044 IF (LEVEL.LE.1.AND.ILNFG.NE.0.AND.ILNCT.GT.0)RETURN IF(LEVEL.LT.1)RETURN) IF(ILNFG.EQ.0.AND.LEVEL.EQ.1)WRITE(1,22)22 FORMAT(' CALC>',$)CC& READ (LEVEL,24,END=900,ERR=1000) LINE24 FORMAT (80A1) C GOTO 6005FC SECTION BELOW COMMENTED OUT BECAUSE IT SHOULD NEVER BE CALLED (GCE).C6004 CONTINUEC DO 6006 LENDX=1,80C6006 LINE(LENDX)=32CC ABOVE BLANKS OUT LINE ARRAYC DO 6007 LENDX=1,ILNCTC6007 LINE(LENDX)=ILINE(LENDX)(CC ABOVE COPIES INPUT FROM OUR CALLER...C6005 CONTINUECCCCD CALL FRMEDT(LINE,LEND)8C FIND LAST NONBLANK, SAVE POSITION WITH VARIABLE 'LEND' CALL SLEND(RETCD) GO TO(30,20),RETCD STOP 30 30 CONTINUECCC& IF(ILNFG.EQ.0.AND.ILNCT.GT.0)GOTO 103C SHOW WHAT WAS READ FROM FILE0 IF(LEVEL.NE.1.AND.(VIEWSW.EQ.1.OR.VIEWSW.EQ.3))* 1 WRITE(1,40)LEVEL,(LINE(I),I=1,LEND) 40 FORMAT (' CALC<',I1,'>',80A1) 103 CONTINUE5C NULL TERMINATE THE LINE TO ENSURE WE END SOMEWHERE. ICCC=MIN0(80,(LEND+1)) LINE(ICCC)=0CC IDENTIFY FIRST NON-BLANK DO 104 NONBLK=1,LEND$ IF (LINE(NONBLK).NE.BLANK) GOTO 106 104 CONTINUE RETURN C STOP 104C"C CONVERT LOWER CASE TO UPPER CASE106 DO 108 I=NONBLK,LEND J=LINE(I) IF (I.EQ.NONBLK) GOTO 107! IF (LINE(I-1).EQ.QUOTE) GOTO 108)107 IF(J.GE.97.AND.J.LE.122) LINE(I)=J-32 108 CONTINUEC7C SEE IF A LIST OF POSSIBLE COMMANDS SHOULD BE PRINTED# IF (LINE(NONBLK).NE.WHAT) GOTO 110 CALL LIST GOTO 20CC SEE IF IT IS A COMMAND&110 IF (LINE(NONBLK).NE.STAR) GOTO 120 CALL CMND (RETCD) GOTO (20,115,10,6120), RETCD 6120 RETURN C STOP 110CCAC A READ COMMAND WAS EXECUTED SO LINE HOLDS THE NEW COMMAND LINE.115 CALL SLEND(RETCD) GO TO (103,20),RETCD RETURN C STOP 115C"C SEE IF ONLY ONE ALPHA CHARACTER120 J=NONBLK+1 IF (LEND.NE.NONBLK) GOTO 130 DO 124 I=1,27( IF (LINE (NONBLK).EQ.ALPHA(I)) GOTO 126 124 CONTINUEC.C ALLOW FOR A SINGLE DIGIT TO BE ASSIGNED TO % DO 125 I=1,10) IF(LINE(NONBLK).EQ.DIGITS(I,1))GO TO 130 125 CONTINUECC$C ALLOW FOR ENTERING THE ASCII BLANK# IF(LINE(NONBLK).EQ.QUOTE)GO TO 130 I=1 GOTO 1001C"C OUTPUT VALUE OF SINGLE VARIABLE126 CALL VAROUT(I,1) GOTO 20CCC CHECK INPUT FOR SYNTAX ERRORS130 CALL ERRCX (RETCD) GOTO (140,10),RETCD RETURN C STOP 130C(C CHANGE FROM INFIX TO POSTFIX NOTATION140 CALL INPOST (RETCD) GOTO (150,10), RETCDCCC EVALUATE EXPRESSION 150 CONTINUE CALL POSTVL(RETCD) GOTO(20,10),RETCD RETURN C STOP 150CCC EXIT 900 CONTINUE IF (LEVEL.EQ.1) RETURNC IF (LEVEL.EQ.1) CALL EXIT IF(ITCNTV(LEVEL).EQ.0)GOTO 910& IF(ZNEG(ITCNTV(LEVEL)).EQ.1)GO TO 910C8C VALUE OF ITERATION VARIABLE IS POSITIVE SO REWIND FILEC AND EXECUTE AGAIN. REWIND LEVEL GO TO 20CC?C EXIT FROM THIS LEVEL BY CLOSING THE FILE AND DECREASING VALUEC OF LEVEL BY ONE.910 CALL CLOSE(LEVEL) LEVEL=LEVEL-1 GOTO 20CCCC *** ERROR PROCESSING *** 1000 I=271001 CALL ERRMSG(I) GO TO 10 END00#RQQN6%! ! SUBROUTINE CALC#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY. INCLUDE 'VKLUGPRM.FTN'C PARAMETER RRW = 32C PARAMETER RCL = 32C RRW=MAX REAL ROWSC RCL=MAX REAL COLS:C RRW MUST BE 1 LARGER TO HANDLE 1ST 27 VARIABLES IN AVBLS#C VBLS AND TYPE DIMENSIONED RRW,RCL9C *** CALC MAINLINE ***C;C THIS PROGRAM EVALUATES ARITHMETIC EXPRESSIONS INPUT TO IT9C AND ALLOWS VARIABLES TO BE ASSIGNED VALUES. IT FEATURES6C MULTIPLE PRECISION ARITHMETIC IN BASE 10, OCTAL, AND:C HEXADECIMAL. SEE CALC.MEM FOR A COMPLETE DESCRIPTION IN 7C THE FORM OF A USERS GUIDE. TYPE ? TO OBTAIN A LIST OFC POSSIBLE COMMANDS.CC CALC CALLSC?C ASSIGN OPENS A FILE AND ASSIGNS IT TO A LOGICAL I/O UNIT.>C CLOSE CLOSES A FILE ASSOCIATED WITH A LOGICAL I/O UNIT.6C CMND DETERMINES WHAT CALC COMMAND IS REQUIRED.FC ERRCX CHECKS THE EXPRESSION IN AN INPUT LINE FOR SYNTAX ERRORS.'C ERRMSG PRINTS OUT ERROR MESSAGES.)C EXIT RETURNS TO OPERATING SYSTEM.FC GETMCR GETS THE COMMAND LINE USED TO INVOKE CALC. IF AN ARGUMENTGC IS PRESENT, CALC EXITS AFTER THAT ONE COMMAND IS EXECUTED.:C INPOST CONVERTS AN INFIX EXPRESSION TO POSTFIX FORM.+C LIST LISTS THE LEGAL CALC COMMANDS.EC POSTVL CONVERTS AN EXPRESSION IN POSTFIX NOTATION ON STACK 1 TOC A VALUE.2C SLEND FINDS THE LAST NON-BLANK IN LINE(80).0C VAROUT PRINTS OUT THE VALUE OF A VARIABLE.:C ZNEG DETERMINES IF A VARIABLE IS POSITIVE IN VALUECCCC VARIABLE USEC8C BASED DEFAULT BASE WHEN CONSTANTS ARE ENTERED.C BLANK ' 'AC DIGITS(16,3) HOLDS DECIMAL, OCTAL, AND HEXADECIMAL DIGITS. THE#C SECOND SUBSCRIPT IS#C 1 FOR DECIMAL!C 2 FOR OCTAL'C 3 FOR HEXADECIMAL&C I,J HOLD TEMPORARY VALUES.FC ITCNTV(6) INDEXED BY LEVEL. 0 INDICATES THAT NO ITERATION ON THEGC INDIRECT COMMAND FILE IS TO TAKE PLACE. IF POSITIVE, ITEC HOLDS THE INDEX INTO VBLS AND REPRESENTS THE VARIABLE*C USED TO CONTROL ITERATION.*C THIS VARIABLE IS GUARANTEED TO BE 1-27.>C LEND POINTS TO LAST NON-BLANK CHARACTER IN LINE(80)FC LEVEL HOLDS THE LOGICAL I/O UNIT WHERE THE NEXT CALC COMMAND C LINES COME FROM.#C LINE(80) COMMAND INPUT LINE.;C NONBLK POINTS TO LAST NON-BLANK FOUND IN LINE(80).CC ONCE HOLDS 1 IF ONLY ONE COMMAND LINE IS TO BE EXECUTED,C 0 OTHERWISE.C STAR '*'C VIEWSW VIEW SWITCH.C 0 = OUTPUT ERROR MESSAGESEC 1 = OUTPUT ERROR MESSAGES AND FILE COMMAND LINESGC 2 = OUTPUT ERROR MESSAGES AND VALUE OF EXPRESSIONS#C EVALUATED.*C 3 = OUTPUT EVERYTHING>C WHAT '?' SIGNIFIES THAT A LIST OF POSSIBLE COMMANDS!C SHOULD BE OUTPUT.CC MODIFIED REASONC?C 18-MAY-1981 DELETED LINE THAT CAUSED DEFAULT BASE TO BE RESETC WHEN AN ERROR OCCURS (PB)CBC 18-MAY-1981 ADDED CODE AT LINES 106 TO 108 TO CONVERT FROM LOWERC TO UPPER CASE (PB)CDC CHANGED TO SUBROUTINE GCE TO ALLOW EXTERNAL CONTROL OF CALCULATOR.C INTEGER*2 LEVEL,NONBLK,LEND INTEGER*2 RETCD,VIEWSW,BASED INTEGER*2 ONCE INTEGER*2 ZNEG,ITCNTV(6)C$ LOGICAL*1 LINE(80),WHAT,STAR,QUOTE- LOGICAL*1 ALPHA(27),COMMA,BLANK,RPAR,LPAR,EQ LOGICAL*1 DIGITS(16,3)" INTEGER*2 OSWIT,OCNTR,ILNFG,ILNCT LOGICAL*1 OARRY(100),ILINE(106) COMMON/OAR/OSWIT,OCNTR,OARRY COMMON/ILN/ILNFG,ILNCT,ILINEC, COMMON LEVEL,LINE,NONBLK,LEND,VIEWSW,BASED COMMON/KLVL/KLVL- COMMON /CONS/ALPHA,COMMA,BLANK,RPAR,LPAR,EQ COMMON /DIGV/ DIGITS COMMON/ITERA/ITCNTVC( DATA WHAT/'?'/, STAR/'*'/, QUOTE/''''/ DATA ONCE/0/CCC9C LOGICAL I/O UNIT 1 IS ASSIGNED TO THE INVOKING TERMINAL00+RRQH+%O-%TADATADATA?C IF YOU DON'T WANT TO RISK THE BUILDER TASK BUILDING (LINKING) C THE MODULES PROPERLY, PUT IN A IF(KLVL.EQ.1)LEVEL=KLVL ONCE=0 IF(ILNFG.NE.0) GOTO 6000 CALL ASSIGN (1,'TI:') 6000 CONTINUEC CHANGE TI: TO TT: FOR VMS.BC THE ADVANTAGE OF NOT DOING THIS IS THAT YOU CAN CREATE AN OUTPUTDC TEST FILE TO DISK TO HELP VERIFY CORRECTNESS AFTER A CHANGE TO THEC SOURCE HAS BEEN MADE.CCC%C GET MCR COMMAND LINE (RSX11-M CALL) IF(ILNFG.EQ.0)GOTO 6010 IF(ILNCT.GT.0)GOTO 6010=C INVALID INPUTS...NO LINE TO DO BUT FLAGGED TO DO. CLEAN UP. ILNFG=0 RETURN 6010 CONTINUE' IF(ILNFG.NE.0.AND.ILNCT.GT.0)GOTO 6001C ++++++C FOR DEC FORTRAN:C CALL GETMCR(LINE,LEND)C IF(LEND)20,20,5(C FOR NON-DEC FORTRAN: (OR VAX VERSIONS) GOTO 20C ++++++ END OF CHOICES... 5 CONTINUE GOTO 6003 6001 CONTINUE DO 6007 LENDX=1,806007 LINE(LENDX)=32 IF(ILNFG.EQ.1)ONCE=1 DO 6002 LENDX=1,ILNCT LINE(LENDX)=ILINE(LENDX)9 IF(LINE(LENDX).GT.0.AND.LINE(LENDX).LT.32)LINE(LENDX)=32C LEAVE ANY EXISTING NULLS IN. 6002 CONTINUE LEND=ILNCTCD CALL FRMEDT(LINE,LEND)>C FRMEDT IMPLEMENTS EDITS OF {VAR INTO THAT VARIABLE'S FORMULA6CC NULL TERMINATE THE LINE TO ENSURE WE END SOMEWHERE.C ICCC=MIN0(80,(LEND+1))C LINE(ICCC)=0 GOTO 103 6003 CONTINUE DO 6 NONBLK=1,7! IF(LINE(NONBLK).EQ.BLANK)GO TO 7 IF(LINE(NONBLK).EQ.13)GO TO 20 6 CONTINUE STOP 67 NONBLK=NONBLK+1 ONCE=1 GO TO 106CC ERROR RESET10 IF(LEVEL.LE.1) GO TO 12 CALL CLOSE(LEVEL) LEVEL=LEVEL-1 GO TO 10 12 CONTINUE VIEWSW=3CCC GET NEXT INPUT LINE 20 CONTINUE LINE(1)=0 LINE(2)=0$ IF(ONCE.EQ.1.AND.LEVEL.LE.1) RETURN*C20 IF(ONCE.EQ.1.AND.LEVEL.EQ.1) CALL EXIT)C IF (ILNFG.NE.0.AND.ILNCT.GT.0)GOTO 60044 IF (LEVEL.LE.1.AND.ILNFG.NE.0.AND.ILNCT.GT.0)RETURN IF(LEVEL.LT.1)RETURN) IF(ILNFG.EQ.0.AND.LEVEL.EQ.1)WRITE(1,22)22 FORMAT(' CALC>',$)CC& READ (LEVEL,24,END=900,ERR=1000) LINE24 FORMAT (80A1) C GOTO 6005FC SECTION BELOW COMMENTED OUT BECAUSE IT SHOULD NEVER BE CALLED (GCE).C6004 CONTINUEC DO 6006 LENDX=1,80C6006 LINE(LENDX)=32CC ABOVE BLANKS OUT LINE ARRAYC DO 6007 LENDX=1,ILNCTC6007 LINE(LENDX)=ILINE(LENDX)(CC ABOVE COPIES INPUT FROM OUR CALLER...C6005 CONTINUECCC8C FIND LAST NONBLANK, SAVE POSITION WITH VARIABLE 'LEND'CD CALL FRMEDT(LINE,LEND) CALL SLEND(RETCD) GO TO(30,20),RETCD STOP 30 30 CONTINUECCC& IF(ILNFG.EQ.0.AND.ILNCT.GT.0)GOTO 103C SHOW WHAT WAS READ FROM FILE0 IF(LEVEL.NE.1.AND.(VIEWSW.EQ.1.OR.VIEWSW.EQ.3))* 1 WRITE(1,40)LEVEL,(LINE(I),I=1,LEND) 40 FORMAT (' CALC<',I1,'>',80A1) 103 CONTINUE5C NULL TERMINATE THE LINE TO ENSURE WE END SOMEWHERE. ICCC=MIN0(80,(LEND+1)) LINE(ICCC)=0CC IDENTIFY FIRST NON-BLANK DO 104 NONBLK=1,LEND$ IF (LINE(NONBLK).NE.BLANK) GOTO 106 104 CONTINUE RETURN C STOP 104C"C CONVERT LOWER CASE TO UPPER CASE106 DO 108 I=NONBLK,LEND J=LINE(I) IF (I.EQ.NONBLK) GOTO 107! IF (LINE(I-1).EQ.QUOTE) GOTO 108)107 IF(J.GE.97.AND.J.LE.122) LINE(I)=J-32 108 CONTINUEC7C SEE IF A LIST OF POSSIBLE COMMANDS SHOULD BE PRINTED# IF (LINE(NONBLK).NE.WHAT) GOTO 110 CALL LIST GOTO 20CC SEE IF IT IS A COMMAND&110 IF (LINE(NONBLK).NE.STAR) GOTO 120 CALL CMND (RETCD) GOTO (20,115,10,6120), RETCD 6120 RETURN C STOP 110CCAC A READ COMMAND WAS EXECUTED SO LINE HOLDS THE NEW COMMAND LINE.115 CALL SLEND(RETCD) GO TO (103,20),RETCD RETURN C STOP 115C"C SEE IF ONLY ONE ALPHA CHARACTER120 J=NONBLK+1 IF (LEND.NE.NONBLK) GOTO 130 DO 124 I=1,27( IF (LINE (NONBLK).EQ.ALPHA(I)) GOTO 126 124 CONTINUEC.C ALLOW FOR A SINGLE DIGIT TO BE ASSIGNED TO % DO 125 I=1,10) IF(LINE(NONBLK).EQ.DIGITS(I,1))GO TO 130 125 CONTINUECC$C ALLOW FOR ENTERING THE ASCII BLANK# IF(LINE(NONBLK).EQ.QUOTE)GO TO 130 I=1 GOTO 1001C"C OUTPUT VALUE OF SINGLE VARIABLE126 CALL VAROUT(I,1) GOTO 20CCC CHECK INPUT FOR SYNTAX ERRORS130 CALL ERRCX (RETCD) GOTO (140,10),RETCD RETURN C STOP 130C(C C003R5RQN6%! !HANGE FROM INFIX TO POSTFIX NOTATION140 CALL INPOST (RETCD) GOTO (150,10), RETCDCCC EVALUATE EXPRESSION 150 CONTINUE CALL POSTVL(RETCD) GOTO(20,10),RETCD RETURN C STOP 150CCC EXIT 900 CONTINUE IF (LEVEL.EQ.1) RETURNC IF (LEVEL.EQ.1) CALL EXIT IF(ITCNTV(LEVEL).EQ.0)GOTO 910& IF(ZNEG(ITCNTV(LEVEL)).EQ.1)GO TO 910C8C VALUE OF ITERATION VARIABLE IS POSITIVE SO REWIND FILEC AND EXECUTE AGAIN. REWIND LEVEL GO TO 20CC?C EXIT FROM THIS LEVEL BY CLOSING THE FILE AND DECREASING VALUEC OF LEVEL BY ONE.910 CALL CLOSE(LEVEL) LEVEL=LEVEL-1 GOTO 20CCCC *** ERROR PROCESSING *** 1000 I=271001 CALL ERRMSG(I) GO TO 10 END SUBROUTINE CALUN(RETCD)#C COPYRIGHT (C) 1983 GLENN EVERHARTM@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY.U INCLUDE 'VKLUGPRM.FTN'AC PARAMETER RRW = 32C PARAMETER RCL = 32C RRW=MAX REAL ROWS=C RCL=MAX REAL COLS :C RRW MUST BE 1 LARGER TO HANDLE 1ST 27 VARIABLES IN AVBLS#C VBLS AND TYPE DIMENSIONED RRW,RCL 8C *****************************************************8C * SUBROUTINE CALUN *8C *****************************************************C C /C SUBROUTINE CALUN PERFORMS A UNARY OPERATION.ACCECECACSC UPON ENTRANCE:OC OPERATOR IS ON STACK 2C OPERAND IS ON STACK 1. C UPON EXIT:I&C OPERATOR HAS BEEN POPPED OFF STACK 2C RESULT IS ON STACK 1CSC RETCD MEANINGLCNC 1 O.K. C 2 ERRORIC C CT(C MODIFICATION CLASSES: M3, M4, AND M8CHCLCCC CALUN CALLSCNC CONTYP CONVERTS DATA TYPESN!C ERRMSG PRINTS ERROR MESSAGES C $DATAN ARC TANGENTTC $DCOS COSINEC $DEXP E**XC $DLOG NATURAL LOGSC $DLOG10 LOG BASE 10TC $DSIN SINEC $DSQRT SQUARE ROOT C $DTANH HYPERBOLIC TANGENTCFC CUAC CALUN IS CALLED BY POSTVL WHICH CONVERTS FROM INFIX TO POSTFIX CCCDCC VARIABLE USENCF0C RETCD RETURN CODE: 1 = O.K. 2 = ERROR#C J,K,K2,I HOLD TEMPORARY VALUES 4C MINUS VALUE IN LAST MULTIPLE PRECISION BYTE.1C USED TO INDICATE A NEGATIVE NUMBER.T3C PLUS VALUE IN LAST MULTIPLE PRCISION BYTE.U1C USED TO INDICATE A POSITIVE NUMBER. 0C REAL TEMPORARY DOUBLE PRECISION VALUES.)C INT TEMPORARY INTEGER*4 VALUES.E.C ST1TYP(40) TYPE FOR EACH ELEMENT ON STACK 1.C ST2TYP(40) TYPE FOR EACH ELEMENT OF STACK 2&C ST1PT POINTS TO TOP OF STACK 1&C ST2PT POINTS TO TOP OF STACK 2C STACK1 HOLDS OPERAND"C STACK2 HOLDS UNARY OPERATORC C C C SUBROUTINE CALUN(RETCD)A REAL*8 REAL- REAL*8 DABS,DEXP,DLOG,DLOG10,DSQRT,DSIN,DCOSE REAL*8 DTANH,DATANAC REAL*4 FLOATOCN INTEGER*4 INT,IABS CI INTEGER*2 RETCD,RETCD2A: INTEGER*2 ST1TYP(40),ST2TYP(40),ST1PT,ST2PT,ST1LIM,ST2LIM INTEGER*2 K,K2RCN7 LOGICAL*1 STACK1(20,40),STACK2(20,40),FOUR(4),EIGHT(8)O LOGICAL*1 PLUS,MINUS CR$ EQUIVALENCE (FOUR,INT),(EIGHT,REAL)CS) COMMON /STACK/STACK1,STACK2,ST1PT,ST2PT, + ; ST1TYP,ST2TYP,ST1LIM,ST2LIMECE DATA PLUS/0/,MINUS/1/C C C CECOCFC. RETCD=1 K=ST2TYP(ST2PT-1) K2=ST1TYP(ST1PT-1) C CNC MAKE SURE VARIABLE IS DEFINEDE IF(K2.GT.0)GOTO 50 "C IF NOT, PRINT MESSAGE AND RETURN CALL ERRMSG(16) GOTO 89999 C CTCW50 J=KCAC C SEE IF IT IS A UNARY MINUS IF (J.EQ.111) GOTO 100 C C C FUNCTIONS START AT 31 K=K-30 ' GOTO (100,100,300,400,500,400,10000),KA GOTO 10000NCICN*C ****************************************C *** ABS (=DABS), IABS, AND UNARY - ****C *************************************** 100 CONTINUE IF(K2.GT.0)GO TO 105  CALL ERRMSG(16) 00;RRQH+%O-%TADATADATA GO TO 899991105 GOTO (110,120,130,130,140,140,140,130,120),K2T STOP 100OCICRC ASCII110 CALL ERRMSG (12) GOTO 89999ACDCFC DECIMAL AND REAL 120 DO 121 I=1,8121 EIGHT(I)=STACK1(I,ST1PT-1) IF (K.NE.111) GOTO 123 C1CT C UNARY - REAL=-REAL GOTO 124S123 REAL=DABS(REAL)E124 DO 125 I=1,8125 STACK1(I,ST1PT-1)=EIGHT(I) GOTO 90000GCICG"C INTEGER, HEXADECIMAL, AND OCTAL130 DO 131 I=1,4131 FOUR(I)=STACK1(I,ST1PT-1)Z IF (K.NE.111) GOTO 133C INT=-INT8 GO TO 134133 INT=IABS(INT)A134 DO 135 I=1,4135 STACK1(I,ST1PT-1)=FOUR(I)G GOTO 90000ICGC2C MULTIPLE PRECISIONT140 IF (K.NE.111) GOTO 150( IF (STACK1(20,ST1PT-1).EQ.PLUS)GOTO 160150 STACK1(20,ST1PT-1)=PLUS GOTO 90000L160 STACK1(20,ST1PT-1)=MINUS GOTO 90000/CLCV*C ****************************************C ************ FLOAT *******************C *************************************** 300 CONTINUE. GOTO (310,320,330,330,340,340,340,330,320),K2CSCNC ASCII310 CALL ERRMSG(12) GOTO 89999WC CRC REAL (=DECIMAL)320 CALL ERRMSG (13) GOTO 89999 CPCYC INTEGER=HEXADECIMAL=OCTAL330 DO 333 I=1,4333 FOUR(I)=STACK1(I,ST1PT-1)L REAL=FLOAT(INT) DO 335 I=1,8L335 STACK1(I,ST1PT-1)=EIGHT(I) ST1TYP(ST1PT-1)=2 GOTO 90000 CTC C MULTIPLE PRECISIONT340 CALL ERRMSG (11) GOTO 89999YCRCTCS*C ****************************************C ******* IFIX AND INT (=IDINT) ********C *************************************** 400 CONTINUE. GOTO (410,420,430,430,440,440,440,430,420),K2 STOP 400 CACPC ASCII410 CALL ERRMSG (12) GOTO 89999LC.C0C REAL AND DECIMAL6420 DO 421 I=1,8421 EIGHT(I)=STACK1(I,ST1PT-1) INT=IDINT(REAL) DO 424 I=1,4 424 STACK1(I,ST1PT-1)=FOUR(I)R ST1TYP(ST1PT-1)=4 GOTO 90000FCOCS"C INTEGER, HEXADECIMAL, AND OCTAL430 CALL ERRMSG (10) GOTO 899997CNCEC MULTIPLE PRECISION1440 CALL ERRMSG (11) GOTO 89999LC(CDCI*C ****************************************C *************** AINT *****************C ***************************************CC REAL TO REAL TRUNCATION 500 CONTINUE. GOTO (510,520,530,530,540,540,540,530,520),K2C)CC ASCII510 CALL ERRMSG (12) GOTO 89999C(CEC REAL AND DECIMALT520 DO 522 I=1,8522 EIGHT(I)=STACK1(I,ST1PT-1)CS)C DON'T USE AINT(SNGL(REAL)) BECAUSE THENOC 2.9999999 RESULTS IN 3.0 REAL=IDINT(REAL)T DO 524 I=1,8S524 STACK1(I,ST1PT-1)=EIGHT(I) GOTO 90000ICXCV"C INTEGER, HEXADECIMAL, AND OCTAL530 CALL ERRMSG (10) GOTO 89999NC)CC MULTIPLE PRECISION.540 CALL ERRMSG(11)O GOTO 89999LCLC.CCC +C ****************************************0+C ****************************************G+C ******** ********.+C ******** REAL TO REAL FUNCTIONS ******** +C ******** ********R+C ******** EXP (=DEXP) ********+C ******** ALOG (=DLOG) ********L+C ******** ALOG10 (=DLOG10) ********O+C ******** SQRT (=DSQRT) ********O+C ******** SIN (=DSIN) ********L+C ******** COS (=DCOS) ********E+C ******** TANH (DTANH) ********N+C ******** ATAN (=DATAN) ********S+C ******** ********)+C ****************************************R+C ****************************************OC1CCH10000 CONTINUE@ GOTO (11000,12000,15000,15000,15000,15000,15000,15000,12000),K2 STOP 10000)CECLC ASCII11000 CALL ERRMSG (12) GOTO 89999ACC C REAL AND DECIMALI12000 DO 12010 I=1,8 12010 EIGHT(I)=STACK1(I,ST1PT-1) K=K-69 GOTO (12100,12200,12300,12400,12500,12600,12700,12800),K C CBC EXP12100 REAL=DEXP(REAL)E GOTO 140001CC C ALOG12200 REAL=DLOG(REAL)( GOTO 14000OC CE C DLOG10A12300 REAL=DLOG10(REAL)E GOTO 14000)CICIC DSQRT"12400 IF (REAL.GE.0.D0) GOTO 12410 CALL ERRMSG (14)J GOTO 89999L12410 REAL=DSQRT (REAL) GOTO 14000CSCIC DSINO12500 REAL=DSIN(REAL)U GOTO 14000'CICLC DCOSK12600 REAL=D00CRDRQN6%! !COS(REAL)C GOTO 14000TC0CDC DTANH12700 REAL=DTANH(REAL) GOTO 14000LCNCTC DATAN12800 REAL=DATAN(REAL)14000 DO 14010 I=1,8 14010 STACK1(I,ST1PT-1)=EIGHT(I) GOTO 90000 CDCM6C INTEGER, HEXADECIMAL, OCTAL, AND MULTIPLE PRECISION15000 CONTINUE( CALL CONTYP(STACK1,ST1PT-1,K2,2,RETCD2) GO TO(15010,89999),RETCD2 STOP 15000C15010 ST1TYP(ST1PT-1)=2 GO TO 12000CLCGC COC EXIT 89999 RETCD=2N90000 ST2PT=ST2PT-1) RETURN6 END#C COMMAND-LINE MUNGER FOR PORTACALC#C COPYRIGHT (C) 1983 GLENN EVERHARTc all rights reservedC SUBROUTINE CMDMUN(LINE)7C MUNGES UP COMMAND LINES PASSED IN ARGUMENT TO ALLOW!C SPECIAL KEYS TO BE RECOGNIZED.C DEFAULT VERSION JUST RETURNS<C THIS VERSION (FOR VAX) ASSUMES ESCAPE SEQUENCES ARESENT TO6C THE PROGRAM AND HANDLES ANSI ARROW KEYS AND PF2 KEY.)C NOTE: A FEW LITTLE EXTRAS CAN BE TRIED.<C IF THE COMMAND BEGINS WITH CHARACTER % WE WILL PARSE IT AS C FOLLOWS:BC 1. UP TO NEXT % SIGN, THE CHARACTERS WILL BE ECHOED TO TERMINAL:C UNALTERED (USE FOR SENDING OUT ESCAPE SEQUENCES, E.G. TOC CHANGE WIDTH OF TERMINAL)CC 2. COMMAND UP TO NEXT % SIGN WILL BE TAKEN AS A LITERAL TO LEAVE'C INSIDE COMMAND LINE PASSED BACKBC 3. IF ? APPEARS AFTERWARDS, TERMINAL WILL BE READ AND RESULTINGAC TEXT APPENDED TO 2ND GROUP WHEN PASSED BACK. IF RESULTINGAC READ-IN TEXT BEGINS WITH A \ CHARACTER OR ANY CONTROL CHARACTER=C (E.G. ESCAPE) THE COMMAND TERMINATES; OTHERWISE, IF READ-IN:C OCCURRED, THE INPUT COMMAND FILE (IF ONE EXISTS) WILL BE>C REWOUND. NOTE THIS REWIND OPERATION OCCURS ONLY IF THE ? WASC SEEN.0C ALSO IF A \ REPLACES THE ?, NO REWIND OCCURS.9C IF A & IS SEEN, CLOSE FILE IMMEDIATELY PRIOR TO EXIT TO.C GET OUT OF THE WAY FOR W OR PPN/GP COMMANDS. SUBROUTINE CMDMUN(LINE)# LOGICAL*1 LINE(120),LC,LINBUF(120) INTEGER*2 IOLVL,IGOLDD INTEGER*2 FOOBARD COMMON/FOOBAR/FOOBAR COMMON/IOLVL/IOLVL,IGOLD;C ALLOW RESULTS OF READ-IN COMMANDS TO BE FURTHER PROCESSED4C (UP TO 10 DEEP) TO ALLOW USE OF THE MACRO FACILITYC BY COMMAND PROCEDURES. D ITERT=0D6501 CONTINUED ITERT=ITERT+1D IF(ITERT.GT.10)RETURNDC IOLVL IS LUN FOR XQTCMD TO USE (NORMALLY 3 FOR INDIRECT FILES OR 5?C FOR TERMINAL. WE USE 5,6 FOR TERMINAL INPUT, OUTPUT NORMALLY. LI=15C ALLOW ARROWS OR OTHER SIMILAR KEYS TO BE RECOGNIZED LL=LINE(LI)&C 155 IS CSI CHAR IN 8 BIT VT200 MODES/ IF(LL.EQ.155.OR.LL.EQ.33.OR.LL.EQ.27)GOTO 1000 IF(LINE(1).EQ.37)GOTO 7000 IF(LINE(1).EQ.'^')IGOLD=IGOLD+1 IF(LINE(1).EQ.'^')GOTO 72234C IF WE SEE [, COULB BE THAT ESC GOT EATEN BY VMS... IF(LINE(LI).EQ.'[')GOTO 1000C CONVERT LOWER TO UPPER CASE NMX=120 DO 41 N=1,1207C CHECK FOR DOUBLE QUOTE (34 DECIMAL). LEAVE L.C. IF SO NNN=LINE(N) IF(NNN.EQ.34)NMX=2BC IF WE SEE " CHARACTER THEN ONLY CONVERT 1ST 2 CHARACTERS TO U.C. 41 CONTINUE JFED=0 DO 1 N=1,NMX LL=LINE(N)# IF(LL.GT.96.AND.LL.LT.123)LL=LL-32 LINE(N)=LL=C IF WE SEE A __ (2 SUCCESSIVE UNDERSCORES) IN THE TEXT, CALL:C FRMEDT TO EDIT ANY {V1 FORMS WE SEE INTO THE TEXT IN THE)C FORMULAS POINTED TO. USEFUL FOR MACROS.. IF(LINE(N).EQ.'_'.AND.LINE(N+1).EQ.'_')JFED=N 1 CONTINUE IF(JFED.EQ.0)GOTO 520'C MOVE TEXT DOWN OVER THE __ CHARACTERS DO 521 N=JFED,120 LINE(N)=LINE(N+2) 521 CONTINUE LINE(119)=0 LINE(120)=0 KK=110 CALL FRMEDT(LINE,KK) 520 CONTINUEC IF(LINE(1).NE.'M')RETURN IF(LINE(1).NE.'M')GOTO 2000 LI=2 GOTO 1000 1000 CONTINUEC HANDLE ESCAPE SEQUENCES6C ENCODE VT100 SEQUENCES HERE. MUST MODIFY FOR OTHERS..C IF VMS PASSES 2 ESCS, PASS 1ST, TEST SECOND. LL=LINE(LI+1)- IF(LL.EQ.155.OR.LL.EQ.27.or.ll.eq.33)LI=LI+1 LC=LINE(LI+1)5 IF(LC.EQ.'['.OR.LC.EQ.'O'.OR.LC.EQ.'?')LC=LINE(LI+2) IF(LC.NE.'Q')GOTO 10#C MAKE PF2 MEAN HELP, JUST LIKE EDT LINE(LI)=72C 72 = ASCII FOR 'H'3C ALLOW IGOLD>0 TO MEAN SCREEN HELPS STARTING AT 9. IGG=IGOLD+8 IF(IGOLD.LE.0)GOTO 844 LINE(LI+1)=48+(IGG/10) LINE(LI+2)=48+(MOD(IGG,10)) 844 CONTINUEC RETURN5C HELP ERASES SCRE00KRRQH+%O-%TADATADATAEN SO MAKE IT RESET GOLD LEVEL TOO. GOTO 2000 10 CONTINUE/C HANDLE AUX KEYPAD KEYS AS INDIRECTS (FOR NOW)%C MAP ENTER KEY INTO AUX KEYPAD RANGE)C AUX KEYPAD ESC SEQS ARE [OC WHERE IS A GIVEN./C FOR VT200, THERE ARE CODES OF FORM [NN~7C WHICH NEED TO GET DECODED TOO. ENCODE AS KYA.CMD THRU C KY?.CMD.,C IF WE HAD $[NN~ FORM THEN LC IS LINE(LI+2) LCC=LINE(LI+3) IF(LL.EQ.155)LCC=LINE(LI+2)C ALLOW FOR 8BIT CTLS LL=LC LL=LL-48 IF(LL.LT.0.OR.LL.GT.9)GOTO 1630 IF(LINE(LI+3).EQ.'~')GOTO 1632 LLL=LCC-48" IF(LLL.LT.0.OR.LLL.GT.9)GOTO 1630 LL=LL*10+LLL 1632 CONTINUEC LL IS NOW CODE TO ADD. IF(LL.LE.0)GOTO 1630 IF(LL.GT.15)LL=LL+43C ADJUST SO KYP, KYQ, KYR, AND KYS REMAIN AS BEFOREC AND JUST SHOVE ALL ELSE UP.c IF(LL.GT.26)GOTO 1630C BE SURE WE STAY IN RANGE. LC=LL+64)C GO MAKE A 'KY.CMD' OUT OF CODE.%C IF CODE IS OUT OF RANGE, FORGET IT. GOTO 2100 1630 CONTINUE IF(LC.EQ.'M')LC='o'% IF(LC.GE.'l'.AND.LC.LE.'y')GOTO 2650% IF(LC.GE.'P'.AND.LC.LE.'S')GOTO 21008C HANDLE INDIRECT CALLS AT 2100 FOR PF1 THRU PF4 IF AANY LL=LC LL=LL-65C SUBTRACT ASCII A! IF (LL.LT.0.OR.LL.GT.3)GOTO 2000 LK=LL IF(LL.EQ.3)LK=2 IF(LL.EQ.2)LK=3 LK=LK+49C ADJUST FOR ASCII VALUE LINE(LI)=LK,C ALLOW BOTH CMD MODES TO UNDERSTAND CURSORS LINE(LI+1)='&'C STASH NEW CELL IN. RETURN?C CURSOR MOTION WILL NOT RESET GOLD LEVEL... CAN'T ERASE SCREEN C INDICATOR. C GOTO 2000 2650 CONTINUE LL=LC LL=LL-'l'+'A' C MAPPING IS:C KEY CHAR AKx.CMD x=C 0 p E c 1 q FC 2 r Gc 3 s Hc 4 t Ic 5 u Jc 6 v Kc 7 w Lc 8 x Mc 9 y Nc , l Ac - m Bc . n C c ENTER o D LC=LL LINE(1)=64C 64 IS ASCII @ CHARACTER IVL=05C BUILD WITH /DEBUG OPTION TO INCLUDE "DK:" IN STRING LINE(2)='D' LINE(3)='K' LINE(4)=':' IVL=3 LINE(2+IVL)='A' LINE(3+IVL)='K' GOTO 2600 2100 CONTINUE=C GENERATE INDIRECT FILE CALLS FROM PF1, PF3, PF4 KEYS IF ANY!C (THESE GIVE LETTERS P, R, OR S) LINE(1)=64 IVL=05C BUILD WITH /DEBUG OPTION TO INCLUDE "DK:" IN STRING LINE(2)='D' LINE(3)='K' LINE(4)=':' IVL=3 LINE(2+IVL)='K' LINE(3+IVL)='Y' IF(LC.LE.90)GOTO 26009C IF LC OVER VALUE FOR 'Z', BUMP IT DOWN AGAIN AND CHANGEC 2ND FILE LETTER LINE(3+IVL)='Z' LC=LC-26#C HOPE WE NEVER GET BIGGER THAN 52. 2600 CONTINUE LINE(4+IVL)=LC IF(IGOLD.LE.0)GOTO 72023C GOLD ADDS EXTRA A,B,C,D,E,... ETC. AFTER FILENAME LINE(5+IVL)=64+IGOLD IVL=IVL+1&C ADD EXTRA LETTER FOR GOLDED COMMANDS 7202 CONTINUE LINE(5+IVL)='.' LINE(6+IVL)='C' LINE(7+IVL)='M' LINE(8+IVL)='D' LINE(9+IVL)=07C GENERATE @KYP, @KYR, OR @KYS COMMAND ON PF1, PF3, PF4 2000 CONTINUE IGOLD=0 RETURN 7000 CONTINUEC PROCESS %%% FORMS I1=INDEX(LINE(2),37)AC IF I1 IS 1, THEN WE JUST HAVE %% AND THERE'S NOTHING TO DUMP TO*C THE SCREEN. OTHERWISE DUMP IT OUT HERE.. I1=I1+1! IF(I1.LE.2.OR.I1.GT.80)GOTO 7002 II1=I1-1! WRITE(6,7001)(LINE(II),II=2,II1)7001 FORMAT(80A1,60A1) 7002 CONTINUE IF(I1.GT.80)RETURN,C COPY WHATEVER NEEDS TO BE COPIED TO LINBUF DO 7003 II=1,807003 LINBUF(II)=0 I2=INDEX(LINE(I1+1),37) IF(I2.GT.80)RETURN I2=I2+I1 I1=I1+1 II2=I2-1 II=0BC HANDLE IT RIGHT IF NOTHING'S THERE TO COPY INTO COMMAND ALREADY. IF(I1.GT.II2)GOTO 7540 DO 7004 LL=I1,II2 II=II+17004 LINBUF(II)=LINE(LL) 7540 CONTINUE IF(I2.GT.80)RETURN<C IF LINE(I2+1) HAS & THEN CLOSE FILE RIGHT HERE AND BUG OFF IF(LINE(I2+1).NE.'&')GOTO 8005 CLOSE (UNIT=IOLVL) IOLVL=5 D FOOBAR=00D OPEN(UNIT=5,FILE='TT:',CARRIAGECONTROL='NONE')@C RE-OPEN ONLY IN VAX VERSION WHERE THERE'S ROOM FOR THE CODE... LINE(I2+1)='\' 8005 CONTINUE C SEE IF LINE(I2+1) CONTAINS A ?5 IF(LINE(I2+1).NE.'?'.AND.LINE(I2+1).NE.'\')GOTO 7005?C HAVE TO READ IN USER'S LINE HERE... READ OFF UNIT 5 ALWAYS... LX=II+15 READ(5,7001,END=7035,ERR=7035)(LINBUF(II),II=LX,120)CC NOW SEE IF LINBUF(LX) IS EITHER A \ CHAR OR ANY CONTROL CHARACTER LC=LINBUF(LX) IF(LINE(I2+1).EQ.00SRURQN6%! !'\')GOTO 7005 IF(IOLVL.EQ.5)GOTO 7005CC IF WE SEE ANYTHING EXCEPT A CONTROL CHAR OR \, REWIND THE FILE...DC THIS ALLOWS US TO HAVE A SORT OF "ENTER MODE" AND A "COMMAND MODE"C A LA SUPERCALC ETC.' IF(LC.NE.'\'.AND.LC.GT.32)REWIND IOLVL"C COMMENT OUT ANY TERMINAL COMMAND' IF(LC.EQ.'\'.OR.LC.LE.32)LINBUF(1)='*' GOTO 7005 7035 CONTINUE(C RECOVER AFTER CTL-Z ON EXPECTED INPUT. REWIND 5 LINBUF(1)='*' CLOSE (UNIT=IOLVL) IOLVL=5 7005 CONTINUE DO 7006 II=1,1207006 LINE(II)=LINBUF(II) KK=110" IF(JFED.GT.0)CALL FRMEDT(LINE,KK)C RETURN,C GO LOOP TO RE-EDIT CMD LINE AS APPROPRIATE;C PROCESSING THERE WILL GET US OUT AFTER AT MOST 10 PASSES. D GOTO 6501#C REMOVE FOLLOWING RETURN IF UNUSED 6502 RETURN-C RETURN AFTER BUMPING IGOLD. COMMENT OUT CMD 7223 CONTINUE LINE(1)='*' RETURN END#C COMMAND-LINE MUNGER FOR PORTACALC#C COPYRIGHT (C) 1983 GLENN EVERHARTc all rights reservedC SUBROUTINE CMDMUN(LINE)7C MUNGES UP COMMAND LINES PASSED IN ARGUMENT TO ALLOW!C SPECIAL KEYS TO BE RECOGNIZED.C DEFAULT VERSION JUST RETURNS<C THIS VERSION (FOR VAX) ASSUMES ESCAPE SEQUENCES ARESENT TO6C THE PROGRAM AND HANDLES ANSI ARROW KEYS AND PF2 KEY.)C NOTE: A FEW LITTLE EXTRAS CAN BE TRIED.<C IF THE COMMAND BEGINS WITH CHARACTER % WE WILL PARSE IT AS C FOLLOWS:BC 1. UP TO NEXT % SIGN, THE CHARACTERS WILL BE ECHOED TO TERMINAL:C UNALTERED (USE FOR SENDING OUT ESCAPE SEQUENCES, E.G. TOC CHANGE WIDTH OF TERMINAL)CC 2. COMMAND UP TO NEXT % SIGN WILL BE TAKEN AS A LITERAL TO LEAVE'C INSIDE COMMAND LINE PASSED BACKBC 3. IF ? APPEARS AFTERWARDS, TERMINAL WILL BE READ AND RESULTINGAC TEXT APPENDED TO 2ND GROUP WHEN PASSED BACK. IF RESULTINGAC READ-IN TEXT BEGINS WITH A \ CHARACTER OR ANY CONTROL CHARACTER=C (E.G. ESCAPE) THE COMMAND TERMINATES; OTHERWISE, IF READ-IN:C OCCURRED, THE INPUT COMMAND FILE (IF ONE EXISTS) WILL BE>C REWOUND. NOTE THIS REWIND OPERATION OCCURS ONLY IF THE ? WASC SEEN.0C ALSO IF A \ REPLACES THE ?, NO REWIND OCCURS.9C IF A & IS SEEN, CLOSE FILE IMMEDIATELY PRIOR TO EXIT TO.C GET OUT OF THE WAY FOR W OR PPN/GP COMMANDS. SUBROUTINE CMDMUN(LINE)# LOGICAL*1 LINE(120),LC,LINBUF(120) INTEGER*2 IOLVL,IGOLD COMMON/IOLVL/IOLVL,IGOLD D ITERT=0D6501 CONTINUED ITERT=ITERT+1D IF(ITERT.GT.10)RETURNDC IOLVL IS LUN FOR XQTCMD TO USE (NORMALLY 3 FOR INDIRECT FILES OR 5?C FOR TERMINAL. WE USE 5,6 FOR TERMINAL INPUT, OUTPUT NORMALLY. LI=15C ALLOW ARROWS OR OTHER SIMILAR KEYS TO BE RECOGNIZED LL=LINE(LI)" IF(LL.EQ.41.OR.LL.EQ.27)GOTO 1000 IF(LINE(1).EQ.37)GOTO 7000 IF(LINE(1).EQ.'^')IGOLD=IGOLD+1 IF(LINE(1).EQ.'^')GOTO 72234C IF WE SEE [, COULB BE THAT ESC GOT EATEN BY VMS... IF(LINE(LI).EQ.'[')GOTO 1000C CONVERT LOWER TO UPPER CASE NMX=120 DO 41 N=1,1207C CHECK FOR DOUBLE QUOTE (34 DECIMAL). LEAVE L.C. IF SO NNN=LINE(N) IF(NNN.EQ.34)NMX=2BC IF WE SEE " CHARACTER THEN ONLY CONVERT 1ST 2 CHARACTERS TO U.C. 41 CONTINUE DO 1 N=1,NMX LL=LINE(N)# IF(LL.GT.96.AND.LL.LT.123)LL=LL-32 LINE(N)=LL 1 CONTINUEC IF(LINE(1).NE.'M')RETURN IF(LINE(1).NE.'M')GOTO 2000 LI=2 GOTO 1000 1000 CONTINUEC HANDLE ESCAPE SEQUENCES6C ENCODE VT100 SEQUENCES HERE. MUST MODIFY FOR OTHERS..C IF VMS PASSES 2 ESCS, PASS 1ST, TEST SECOND. LL=LINE(LI+1) IF(LL.EQ.27.or.ll.eq.41)LI=LI+1 LC=LINE(LI+1)5 IF(LC.EQ.'['.OR.LC.EQ.'O'.OR.LC.EQ.'?')LC=LINE(LI+2) IF(LC.NE.'Q')GOTO 10#C MAKE PF2 MEAN HELP, JUST LIKE EDT LINE(LI)=72C 72 = ASCII FOR 'H'3C ALLOW IGOLD>0 TO MEAN SCREEN HELPS STARTING AT 9. IGG=IGOLD+8 IF(IGOLD.LE.0)GOTO 844 LINE(LI+1)=48+(IGG/10) LINE(LI+2)=48+(MOD(IGG,10)) 844 CONTINUEC RETURN5C HELP ERASES SCREEN SO MAKE IT RESET GOLD LEVEL TOO. GOTO 2000 10 CONTINUE/C HANDLE AUX KEYPAD KEYS AS INDIRECTS (FOR NOW)%C MAP ENTER KEY INTO AUX KEYPAD RANGE)C AUX KEYP00[RRQH+%O-%TADATADATAAD ESC SEQS ARE [OC WHERE IS A GIVEN./C FOR VT200, THERE ARE CODES OF FORM [NN~7C WHICH NEED TO GET DECODED TOO. ENCODE AS KYA.CMD THRU C KY?.CMD.,C IF WE HAD $[NN~ FORM THEN LC IS LINE(LI+1) LCC=LINE(LI+3) LL=LC LL=LL-48 IF(LL.LT.0.OR.LL.GT.9)GOTO 1630 IF(LINE(LI+3).EQ.'~')GOTO 1632 LLL=LCC-48" IF(LLL.LT.0.OR.LLL.GT.9)GOTO 1630 LL=LL*10+LLL 1632 CONTINUEC LL IS NOW CODE TO ADD. IF(LL.LE.0)GOTO 1630 IF(LL.GT.15)LL=LL+43C ADJUST SO KYP, KYQ, KYR, AND KYS REMAIN AS BEFOREC AND JUST SHOVE ALL ELSE UP.c IF(LL.GT.26)GOTO 1630C BE SURE WE STAY IN RANGE. LC=LL+64)C GO MAKE A 'KY.CMD' OUT OF CODE.%C IF CODE IS OUT OF RANGE, FORGET IT. GOTO 2100 1630 CONTINUE IF(LC.EQ.'M')LC='o'% IF(LC.GE.'l'.AND.LC.LE.'y')GOTO 2650% IF(LC.GE.'P'.AND.LC.LE.'S')GOTO 21008C HANDLE INDIRECT CALLS AT 2100 FOR PF1 THRU PF4 IF AANY LL=LC LL=LL-65C SUBTRACT ASCII A! IF (LL.LT.0.OR.LL.GT.3)GOTO 2000 LK=LL IF(LL.EQ.3)LK=2 IF(LL.EQ.2)LK=3 LK=LK+49C ADJUST FOR ASCII VALUE LINE(LI)=LKC STASH NEW CELL IN. RETURN?C CURSOR MOTION WILL NOT RESET GOLD LEVEL... CAN'T ERASE SCREEN C INDICATOR. C GOTO 2000 2650 CONTINUE LL=LC LL=LL-'l'+'A' C MAPPING IS:C KEY CHAR AKx.CMD x=C 0 p E c 1 q FC 2 r Gc 3 s Hc 4 t Ic 5 u Jc 6 v Kc 7 w Lc 8 x Mc 9 y Nc , l Ac - m Bc . n C c ENTER o D LC=LL LINE(1)=64C 64 IS ASCII @ CHARACTER IVL=05C BUILD WITH /DEBUG OPTION TO INCLUDE "DK:" IN STRING LINE(2)='D' LINE(3)='K' LINE(4)=':' IVL=3 LINE(2+IVL)='A' LINE(3+IVL)='K' GOTO 2600 2100 CONTINUE=C GENERATE INDIRECT FILE CALLS FROM PF1, PF3, PF4 KEYS IF ANY!C (THESE GIVE LETTERS P, R, OR S) LINE(1)=64 IVL=05C BUILD WITH /DEBUG OPTION TO INCLUDE "DK:" IN STRING LINE(2)='D' LINE(3)='K' LINE(4)=':' IVL=3 LINE(2+IVL)='K' LINE(3+IVL)='Y' IF(LC.LE.90)GOTO 26009C IF LC OVER VALUE FOR 'Z', BUMP IT DOWN AGAIN AND CHANGEC 2ND FILE LETTER LINE(3+IVL)='Z' LC=LC-26#C HOPE WE NEVER GET BIGGER THAN 52. 2600 CONTINUE LINE(4+IVL)=LC IF(IGOLD.LE.0)GOTO 72023C GOLD ADDS EXTRA A,B,C,D,E,... ETC. AFTER FILENAME LINE(5+IVL)=64+IGOLD IVL=IVL+1&C ADD EXTRA LETTER FOR GOLDED COMMANDS 7202 CONTINUE LINE(5+IVL)='.' LINE(6+IVL)='C' LINE(7+IVL)='M' LINE(8+IVL)='D' LINE(9+IVL)=07C GENERATE @KYP, @KYR, OR @KYS COMMAND ON PF1, PF3, PF4 2000 CONTINUE IGOLD=0 RETURN 7000 CONTINUEC PROCESS %%% FORMS I1=INDEX(LINE(2),37)AC IF I1 IS 1, THEN WE JUST HAVE %% AND THERE'S NOTHING TO DUMP TO*C THE SCREEN. OTHERWISE DUMP IT OUT HERE.. I1=I1+1! IF(I1.LE.2.OR.I1.GT.80)GOTO 7002 II1=I1-1! WRITE(6,7001)(LINE(II),II=2,II1)7001 FORMAT(80A1,60A1) 7002 CONTINUE IF(I1.GT.80)RETURN,C COPY WHATEVER NEEDS TO BE COPIED TO LINBUF DO 7003 II=1,807003 LINBUF(II)=0 I2=INDEX(LINE(I1+1),37) IF(I2.GT.80)RETURN I2=I2+I1 I1=I1+1 II2=I2-1 II=0 IF(I1.GT.II2)GOTO 7540 DO 7004 LL=I1,II2 II=II+17004 LINBUF(II)=LINE(LL) 7540 CONTINUE IF(I2.GT.80)RETURN<C IF LINE(I2+1) HAS & THEN CLOSE FILE RIGHT HERE AND BUG OFF IF(LINE(I2+1).NE.'&')GOTO 8005 CLOSE (UNIT=IOLVL) IOLVL=5 LINE(I2+1)='\' 8005 CONTINUE C SEE IF LINE(I2+1) CONTAINS A ?5 IF(LINE(I2+1).NE.'?'.AND.LINE(I2+1).NE.'\')GOTO 7005?C HAVE TO READ IN USER'S LINE HERE... READ OFF UNIT 5 ALWAYS... LX=II+15 READ(5,7001,END=7035,ERR=7035)(LINBUF(II),II=LX,120)CC NOW SEE IF LINBUF(LX) IS EITHER A \ CHAR OR ANY CONTROL CHARACTER LC=LINBUF(LX) IF(LINE(I2+1).EQ.'\')GOTO 7005 IF(IOLVL.EQ.5)GOTO 7005CC IF WE SEE ANYTHING EXCEPT A CONTROL CHAR OR \, REWIND THE FILE...DC THIS ALLOWS US TO HAVE A SORT OF "ENTER MODE" AND A "COMMAND MODE"C A LA SUPERCALC ETC.' IF(LC.NE.'\'.AND.LC.GT.32)REWIND IOLVL"C COMMENT OUT ANY TERMINAL COMMAND' IF(LC.EQ.'\'.OR.LC.LE.32)LINBUF(1)='*' GOTO 7005 7035 CONTINUE(C RECOVER AFTER CTL-Z ON EXPECTED INPUT. REWIND 5 LINBUF(1)='*' CLOSE (UNIT=IOLVL) IOLVL=5 7005 CONTINUE DO 7000cRdRQN6%! !06 II=1,1207006 LINE(II)=LINBUF(II) D GOTO 6501<C REMOVE FOLLOWING RETURN AT 6502 IF YOU BUILD WITH D LINES. 6502 RETURN-C RETURN AFTER BUMPING IGOLD. COMMENT OUT CMD 7223 CONTINUE LINE(1)='*' RETURN END#C COMMAND-LINE MUNGER FOR PORTACALC#C COPYRIGHT (C) 1983 GLENN EVERHARTc all rights reservedC SUBROUTINE CMDMUN(LINE)7C MUNGES UP COMMAND LINES PASSED IN ARGUMENT TO ALLOW!C SPECIAL KEYS TO BE RECOGNIZED.C DEFAULT VERSION JUST RETURNS<C THIS VERSION (FOR VAX) ASSUMES ESCAPE SEQUENCES ARESENT TO6C THE PROGRAM AND HANDLES ANSI ARROW KEYS AND PF2 KEY.)C NOTE: A FEW LITTLE EXTRAS CAN BE TRIED.<C IF THE COMMAND BEGINS WITH CHARACTER % WE WILL PARSE IT AS C FOLLOWS:BC 1. UP TO NEXT % SIGN, THE CHARACTERS WILL BE ECHOED TO TERMINAL:C UNALTERED (USE FOR SENDING OUT ESCAPE SEQUENCES, E.G. TOC CHANGE WIDTH OF TERMINAL)CC 2. COMMAND UP TO NEXT % SIGN WILL BE TAKEN AS A LITERAL TO LEAVE'C INSIDE COMMAND LINE PASSED BACKBC 3. IF ? APPEARS AFTERWARDS, TERMINAL WILL BE READ AND RESULTINGAC TEXT APPENDED TO 2ND GROUP WHEN PASSED BACK. IF RESULTINGAC READ-IN TEXT BEGINS WITH A \ CHARACTER OR ANY CONTROL CHARACTER=C (E.G. ESCAPE) THE COMMAND TERMINATES; OTHERWISE, IF READ-IN:C OCCURRED, THE INPUT COMMAND FILE (IF ONE EXISTS) WILL BE>C REWOUND. NOTE THIS REWIND OPERATION OCCURS ONLY IF THE ? WASC SEEN.0C ALSO IF A \ REPLACES THE ?, NO REWIND OCCURS.9C IF A & IS SEEN, CLOSE FILE IMMEDIATELY PRIOR TO EXIT TO.C GET OUT OF THE WAY FOR W OR PPN/GP COMMANDS. SUBROUTINE CMDMUN(LINE)# LOGICAL*1 LINE(120),LC,LINBUF(120) INTEGER*2 IOLVL,IGOLD COMMON/IOLVL/IOLVL,IGOLD D ITERT=0D6501 CONTINUED ITERT=ITERT+1D IF(ITERT.GT.10)RETURN:C ITERT ALLOWS REPROCESS OF COMMANDS FROM FILES FOR MACROSC DEPTH OF UP TO 10 PASSES...DC IOLVL IS LUN FOR XQTCMD TO USE (NORMALLY 3 FOR INDIRECT FILES OR 5?C FOR TERMINAL. WE USE 5,6 FOR TERMINAL INPUT, OUTPUT NORMALLY. LI=15C ALLOW ARROWS OR OTHER SIMILAR KEYS TO BE RECOGNIZED LL=LINE(LI)" IF(LL.EQ.33.OR.LL.EQ.27)GOTO 1000 IF(LINE(1).EQ.37)GOTO 7000 IF(LINE(1).EQ.'^')IGOLD=IGOLD+1 IF(LINE(1).EQ.'^')GOTO 72234C IF WE SEE [, COULB BE THAT ESC GOT EATEN BY VMS... IF(LINE(LI).EQ.'[')GOTO 1000C CONVERT LOWER TO UPPER CASE NMX=120 DO 41 N=1,1207C CHECK FOR DOUBLE QUOTE (34 DECIMAL). LEAVE L.C. IF SO NNN=LINE(N) IF(NNN.EQ.34)NMX=2BC IF WE SEE " CHARACTER THEN ONLY CONVERT 1ST 2 CHARACTERS TO U.C. 41 CONTINUE JFED=0 DO 1 N=1,NMX LL=LINE(N)# IF(LL.GT.96.AND.LL.LT.123)LL=LL-32 LINE(N)=LL=C IF WE SEE A __ (2 SUCCESSIVE UNDERSCORES) IN THE TEXT, CALL:C FRMEDT TO EDIT ANY {V1 FORMS WE SEE INTO THE TEXT IN THE)C FORMULAS POINTED TO. USEFUL FOR MACROS.. IF(LINE(N).EQ.'_'.AND.LINE(N+1).EQ.'_')JFED=N 1 CONTINUE IF(JFED.EQ.0)GOTO 520'C MOVE TEXT DOWN OVER THE __ CHARACTERS DO 521 N=JFED,120 LINE(N)=LINE(N+2) 521 CONTINUE LINE(119)=0 LINE(120)=0 KK=110 CALL FRMEDT(LINE,KK) 520 CONTINUEC IF(LINE(1).NE.'M')RETURN IF(LINE(1).NE.'M')GOTO 2000 LI=2 GOTO 1000 1000 CONTINUEC HANDLE ESCAPE SEQUENCES6C ENCODE VT100 SEQUENCES HERE. MUST MODIFY FOR OTHERS..C IF VMS PASSES 2 ESCS, PASS 1ST, TEST SECOND. LL=LINE(LI+1) IF(LL.EQ.27.or.ll.eq.33)LI=LI+1 LC=LINE(LI+1)5 IF(LC.EQ.'['.OR.LC.EQ.'O'.OR.LC.EQ.'?')LC=LINE(LI+2) IF(LC.NE.'Q')GOTO 10#C MAKE PF2 MEAN HELP, JUST LIKE EDT LINE(LI)=72C 72 = ASCII FOR 'H'3C ALLOW IGOLD>0 TO MEAN SCREEN HELPS STARTING AT 9. IGG=IGOLD+8 IF(IGOLD.LE.0)GOTO 844 LINE(LI+1)=48+(IGG/10) LINE(LI+2)=48+(MOD(IGG,10)) 844 CONTINUEC RETURN5C HELP ERASES SCREEN SO MAKE IT RESET GOLD LEVEL TOO. GOTO 2000 10 CONTINUE/C HANDLE AUX KEYPAD KEYS AS INDIRECTS (FOR NOW)%C MAP ENTER KEY INTO AUX KEYPAD RANGE)C AUX KE00kRRQH+%O-%TADATADATAYPAD ESC SEQS ARE [OC WHERE IS A GIVEN./C FOR VT200, THERE ARE CODES OF FORM [NN~7C WHICH NEED TO GET DECODED TOO. ENCODE AS KYA.CMD THRU C KY?.CMD.,C IF WE HAD $[NN~ FORM THEN LC IS LINE(LI+1) LCC=LINE(LI+3) LL=LC LL=LL-48 IF(LL.LT.0.OR.LL.GT.9)GOTO 1630 IF(LINE(LI+3).EQ.'~')GOTO 1632 LLL=LCC-48" IF(LLL.LT.0.OR.LLL.GT.9)GOTO 1630 LL=LL*10+LLL 1632 CONTINUEC LL IS NOW CODE TO ADD. IF(LL.LE.0)GOTO 1630 IF(LL.GT.15)LL=LL+43C ADJUST SO KYP, KYQ, KYR, AND KYS REMAIN AS BEFOREC AND JUST SHOVE ALL ELSE UP.%C NOTE: GET KZ.CMD IF CODE > 26 LC=LL+64)C GO MAKE A 'KY.CMD' OUT OF CODE.%C IF CODE IS OUT OF RANGE, FORGET IT. GOTO 2100 1630 CONTINUE IF(LC.EQ.'M')LC='o'% IF(LC.GE.'l'.AND.LC.LE.'y')GOTO 2650% IF(LC.GE.'P'.AND.LC.LE.'S')GOTO 21008C HANDLE INDIRECT CALLS AT 2100 FOR PF1 THRU PF4 IF AANY LL=LC LL=LL-65C SUBTRACT ASCII A! IF (LL.LT.0.OR.LL.GT.3)GOTO 2000 LK=LL IF(LL.EQ.3)LK=2 IF(LL.EQ.2)LK=3 LK=LK+49C ADJUST FOR ASCII VALUE LINE(LI)=LKC STASH NEW CELL IN. RETURN?C CURSOR MOTION WILL NOT RESET GOLD LEVEL... CAN'T ERASE SCREEN C INDICATOR. C GOTO 2000 2650 CONTINUE LL=LC LL=LL-'l'+'A' C MAPPING IS:C KEY CHAR AKx.CMD x=C 0 p E c 1 q FC 2 r Gc 3 s Hc 4 t Ic 5 u Jc 6 v Kc 7 w Lc 8 x Mc 9 y Nc , l Ac - m Bc . n C c ENTER o D LC=LL LINE(1)=64C 64 IS ASCII @ CHARACTERC IVL=05C BUILD WITH /DEBUG OPTION TO INCLUDE "DK:" IN STRING LINE(2)='[' LINE(3)='D' LINE(4)='K' LINE(5)=']' IVL=4 LINE(2+IVL)='A' LINE(3+IVL)='K' GOTO 2600 2100 CONTINUE=C GENERATE INDIRECT FILE CALLS FROM PF1, PF3, PF4 KEYS IF ANY!C (THESE GIVE LETTERS P, R, OR S) LINE(1)=64C IVL=05C BUILD WITH /DEBUG OPTION TO INCLUDE "DK:" IN STRING LINE(2)='[' LINE(3)='D' LINE(4)='K' LINE(5)=']' IVL=4 LINE(2+IVL)='K' LINE(3+IVL)='Y' IF(LC.LE.90)GOTO 2600.C LC OVER VALUE FOR 'Z' SO BUMP IT DOWN AGAIN. LINE(3+IVL)='Z' LC=LC-26 2600 CONTINUE LINE(4+IVL)=LC IF(IGOLD.LE.0)GOTO 72023C GOLD ADDS EXTRA A,B,C,D,E,... ETC. AFTER FILENAME LINE(5+IVL)=64+IGOLD IVL=IVL+1&C ADD EXTRA LETTER FOR GOLDED COMMANDS 7202 CONTINUE LINE(5+IVL)='.' LINE(6+IVL)='C' LINE(7+IVL)='M' LINE(8+IVL)='D' LINE(9+IVL)=07C GENERATE @KYP, @KYR, OR @KYS COMMAND ON PF1, PF3, PF4 2000 CONTINUE IGOLD=0 RETURN 7000 CONTINUEC PROCESS %%% FORMS I1=INDEX(LINE(2),37)AC IF I1 IS 1, THEN WE JUST HAVE %% AND THERE'S NOTHING TO DUMP TO*C THE SCREEN. OTHERWISE DUMP IT OUT HERE.. I1=I1+1! IF(I1.LE.2.OR.I1.GT.80)GOTO 7002 II1=I1-1! WRITE(6,7001)(LINE(II),II=2,II1)7001 FORMAT(80A1,60A1) 7002 CONTINUE IF(I1.GT.80)RETURN,C COPY WHATEVER NEEDS TO BE COPIED TO LINBUF DO 7003 II=1,807003 LINBUF(II)=0 I2=INDEX(LINE(I1+1),37) IF(I2.GT.80)RETURN I2=I2+I1 I1=I1+1 II2=I2-1 II=0 IF(I1.GT.II2)GOTO 7540 DO 7004 LL=I1,II2 II=II+17004 LINBUF(II)=LINE(LL) 7540 CONTINUE IF(I2.GT.80)RETURN<C IF LINE(I2+1) HAS & THEN CLOSE FILE RIGHT HERE AND BUG OFF IF(LINE(I2+1).NE.'&')GOTO 8005 CLOSE (UNIT=IOLVL) IOLVL=5 LINE(I2+1)='\' 8005 CONTINUE C SEE IF LINE(I2+1) CONTAINS A ?5 IF(LINE(I2+1).NE.'?'.AND.LINE(I2+1).NE.'\')GOTO 7005?C HAVE TO READ IN USER'S LINE HERE... READ OFF UNIT 5 ALWAYS... LX=II+15 READ(5,7001,END=7035,ERR=7035)(LINBUF(II),II=LX,120)CC NOW SEE IF LINBUF(LX) IS EITHER A \ CHAR OR ANY CONTROL CHARACTER LC=LINBUF(LX) IF(LINE(I2+1).EQ.'\')GOTO 7005 IF(IOLVL.EQ.5)GOTO 7005CC IF WE SEE ANYTHING EXCEPT A CONTROL CHAR OR \, REWIND THE FILE...DC THIS ALLOWS US TO HAVE A SORT OF "ENTER MODE" AND A "COMMAND MODE"C A LA SUPERCALC ETC.' IF(LC.NE.'\'.AND.LC.GT.32)REWIND IOLVL"C COMMENT OUT ANY TERMINAL COMMAND' IF(LC.EQ.'\'.OR.LC.LE.32)LINBUF(1)='*' GOTO 7005 7035 CONTINUE(C RECOVER AFTER CTL-Z ON EXPECTED INPUT. REWIND 5 LINBUF(1)='*' CLOSE (UNIT=IOLVL) IOLVL=5 7005 CONTINUE DO 7006 II=1,1207006 LINE(II)=LINBUF(II) KKK=110# I00sRtRQN6%! !F(JFED.GT.0)CALL FRMEDT(LINE,KKK) D GOTO 6501?C REMOVE 6502 RETURN IF YOU ALWAYS COMPILE WITH D LINES USED... 6502 RETURN-C RETURN AFTER BUMPING IGOLD. COMMENT OUT CMD 7223 CONTINUE LINE(1)='*' RETURN END SUBROUTINE CMND(RETCD)#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY. INCLUDE 'VKLUGPRM.FTN'C PARAMETER RRW = 32C PARAMETER RCL = 32C RRW=MAX REAL ROWSC RCL=MAX REAL COLS:C RRW MUST BE 1 LARGER TO HANDLE 1ST 27 VARIABLES IN AVBLS#C VBLS AND TYPE DIMENSIONED RRW,RCL7C ***************************************************7C * *7C * SUBROUTINE CMND *7C * *7C ***************************************************CC1C UPON ENTRANCE, NONBLK POINT TO THE "*" IN LINE?C INDICATING A COMMAND. THIS ROUTINE DETERMINES WHICH COMMAND3C IS DESIRED AND CALLS THE APPROPRIATE SUBROUTINE.C C RETCD: C 1=NORMAL>C 2=BYPASS NEXT READ BECAUSE READ COMMAND HAS BEEN EXECUTED C TO CHANGE LINE(80)(C 3=ERROR, SO GO TO 1000 TO SET LEVEL=1CCC MODIFY CLASSES: M1CCC CMND CALLSC-C AT TO PROCESS A FILE OF CALC COMMANDS3C BASCNG TO CHANGE THE DEFAULT BASE FOR CONSTANTS&C CLOSE CLOSE FILE OF CALC COMMANDS5C DECLR DECLARE VAIABLES TO BE A CERTAIN DATA TYPE C ERRMSG PRINTS ERROR MESSAGES%C EXIT RETURN TO OPERATING SYSTEM,C GETNNB GETS NEXT NON-BLANK FROM LINE(80)3C STRCMP LOOKS FOR A SPECIFIED STRING IN LINE(80)C ZERO ZEROES ALL VARIABLES2C ZNEG TO SEE IF A VARIABLE HAS POSITIVE VALUECCC4C CMND IS CALLED BY CALC WHO HAS IDENTIFIED THE '*'#C INDICATING A COMMAND IS DESIRED.CCCCC VARIABLE USECC 2C CHAR TEMPORARILY HOLDS A SINGLE CHARACTER.2C DIGITS HOLDS ASCII REPRESENTATION OF DIGITS.C I TEMPORARY INDEX.5C ID ARGUMENT FOR SUBROUTINE DECLR. INDICATES$C A PARTICULAR DATA TYPE."C IPT POINTER FOR LINE(80).2C ITCNTV 0 IF NO ITERATION. IF POSITIVE, INDEXAC OF VARIABLE USED TO CONTROL ITERATION ON THAT LEVEL.6C KIND(15) HOLDS FIRST LETTER OF ALL LEGAL COMMANDS.BC LEVEL HOLDS LOGICAL I/O UNIT WHERE NEXT COMMAND COMES FROM. C LINE(80) HOLDS COMMAND LINE."C NONBLK POINTER FOR LINE(80).C RETCD HOLDS RETURN CODE.C RETCD2 HOLDS RETURN CODE.C VIEWSW VIEW SWITCH:C 0 = OFF&C 1 = DISPLAY COMMAND LINES-C 2 = DISPLAY VALUE OF EXPRESSIONSC 3 = DISPLAY ALLCCC C SUBROUTINE CMND(RETCD)CC INTEGER*2 LEVEL,NONBLK,LEND% INTEGER*2 RETCD,RETCD2,VIEWSW,BASED INTEGER*2 IOLVL COMMON/IOLVL/IOLVL INTEGER*2 ZNEG,ITCNTV(6)( INTEGER*2 PROW,PCOL,DROW,DCOL,DRWV,DCLV* COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRWV,DCLVD INTEGER*2 FOOBARD COMMON/FOOBAR/FOOBAR LOGICAL*1 WRK2(128)BC DEFINE SOME LARGER ARRAYS TO NULL TERMINATE WRK AND WRK2 ARRAYS. LOGICAL*1 WRKX(130),WRK2X(130) LOGICAL*1 LETA)C LETA IS INITIAL LETTER FROM SAVED SHEET/C READ IT SO WE CAN DECODE FLAGS IN *X COMMANDS EQUIVALENCE(WRK(1),WRKX(1)) EQUIVALENCE(WRK2(1),WRK2X(1))2 LOGICAL*1 AVBLS(20,27),WRK(128),VBLS(8,RRWP,RCLP)" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9) REAL*8 XAC,XVBLS(RRWP,RCLP) INTEGER*4 JVBLS(2,RRWP,RCLP) EQUIVALENCE(XAC,AVBLS(1,27))& EQUIVALENCE(VBLS(1,1,1),JVBLS(1,1,1))$ EQUIVALENCE(VBLS(1,1,1),XVBLS(1,1)) COMMON/V/TYPE,AVBLS,VBLS,VLEN LOGICAL*1 FVLD(RRWP,RCLP) COMMON/FVLDC/FVLDC< LOGICAL*1 LINE(80),KIND(23),ASCII(4),DEC(6),HEX(2),INT(6),1 ; M10(2),M8(1),M16(2),OCTAL(4),REAL(3),CHAR00{RRQH+%O-%TADATADATA LOGICAL*1 DIGITS(16,3)C, COMMON LEVEL,LINE,NONBLK,LEND,VIEWSW,BASED COMMON /ITERA/ITCNTV COMMON /DIGV/ DIGITSC DATA KINDB 1/'@','A','B','C','D','E','H','I','M','N','O','R','S','V','Z'' 2,'P','W','G','Q','F','J','X','U'/4C NOTE PWGQFJX ADDED BY GCE FOR PORTACALC INTERFACE.;C FREE: K,U,Y, + SPECIAL CHARACTERS (LIKE .,;'"#$%^, ETC.)< DATA ASCII/'S','C','I','I'/, DEC/'E','C','I','M','A','L'/1 DATA HEX/'E','X'/, INT/'N','T','E','G','E','R'/ DATA M10/'1','0'/, M8/'8'/ DATA M16/'1','6'/ DATA OCTAL/'C','T','A','L'/ DATA REAL/'E','A','L'/ DATA WRKX/130*0/,WRK2X/130*0/CCC'C PICK UP NON-BLANK CHARACTER AFTER '*' RETCD=1 CALL GETNNB(IPT,RETCD2) GOTO(2,4),RETCD2 STOP 2 2 NONBLK=IPT1C NONBLK POINTS TO 1ST NONBLANK CHARACTER AFTER *C DO 3 I=1,23$ IF (LINE(NONBLK).EQ.KIND(I)) GOTO 6 3 CONTINUECCC UNIDENTIFIED COMMAND 4 GOTO 995CCC>C GO TO DIFFERENT SECTIONS ON THE BASIS OF THE FIRST CHARACTERC OF THE COMMAND.36 GOTO (10,20,30,1000,40,50,60,70,80,90,100,110,50,2 1 130,140,210,220,250,290,330,360,480,780),I STOP 6CCCC4C **************************************************4C ***** *@ INDIRECT COMMAND PROCESSING ******4C **************************************************10 CALL AT(RETCD) GOTO (1000,999),RETCD STOP 10CCCC4C **************************************************4C ****** *A DECLARE TYPE ASCII ******4C **************************************************20 CALL STRCMP (ASCII,4,RETCD2) ID=1 GOTO (200,995),RETCD2 STOP 20CCCC4C **************************************************4C ****** *B BASE DEFAULT *******4C ************************************************** 30 CONTINUE CALL BASCNG(RETCD2)! IF(VIEWSW.NE.0)WRITE(1,34) BASED!34 FORMAT(' DEFAULT BASE IS ',I2) GO TO (1000,999),RETCD2 STOP 30CCCC:C ********************************************************:C ** *C COMMENT, JUST RETURN (VIA STATEMENT 1000) **:C ********************************************************CCC4C **************************************************4C ******* *D DECLARE TYPE DECIMAL *******4C **************************************************40 CALL STRCMP(DEC,6,RETCD2) ID=2 GOTO (200,995),RETCD2 STOP 40CC4C **************************************************4C ********** *E EXIT ********4C ************************************************** 50 CONTINUEEC SET RETCD=4 ON EXIT IF EXIT COMMAND, SO CALC RETURNS TO ITS CALLER. IF (LEVEL.EQ.1) RETCD=4 IF (LEVEL.EQ.1) RETURNC IF (LEVEL.EQ.1) CALL EXIT IF(ITCNTV(LEVEL).EQ.0)GOTO 55$ IF(ZNEG(ITCNTV(LEVEL)).EQ.1)GOTO 556C ITERATION VARIABLE IS POSITIVE SO EXECUTE FILE AGAIN REWIND LEVEL GO TO 1000C:C NOTE THAT WHEN EXITING A LEVEL THAT WAS ITERATED, ITCNTV8C IS NOT SET TO ZERO. THIS REQUIRES THAT WHEN ENTERED AT;C SUBROUTINE 'AT' AND ITERATION IS NOT DESIRED, THAT ITCNTVC MUST BE SET TO ZERO THERE55 CALL CLOSE(LEVEL) LEVEL=LEVEL-1 59 GOTO 1000CCCCC4C **************************************************4C * *H DECLARE VARIABLES TO BE OF TYPE HEXADECIMAL *4C **************************************************60 CALL STRCMP (HEX,2,RETCD2) ID=3 GOTO (200,995),RETCD2 STOP 60CCCC4C **************************************************4C * *I DECLARE VARIABLE TO BE OF TYPE INTEGER (*4) *4C **************************************************70 CALL STRCMP (INT,6,RETCD2) ID=4 GOTO (200,995),RETCD2 STOP 70CC4C **************************************************4C * *M DECLARE VARIABLE TO BE MULTIPLE PRECISION *4C **************************************************80 CALL STRCMP (M10,2,RETCD2) ID=5 GOTO (200,84),RETCD2 STOP 80CC%C SEE IF MULTIPLE PRECISION IS OCTAL84 CALL STRCMP (M8,1,RETCD2) ID=6 GOTO (200,88),RETCD2 STOP 84CC(C SEE IF MULTIPLE PRECISION HEXADECIMAL88 CALL STRCMP (M16,2,RETCD2)00RtRQN6%! ! ID=7 GOTO (200,995),RETCD2 STOP 88CCCC>C ************************************************************>C ** *N SUPPRESS PRINTING OF VARIABLES WHEN VALUES CHANGE **>C ************************************************************ 90 VIEWSW=1 GOTO 1000CCCC4C **************************************************4C *** *O DECLARE VARIABLE TO BE OF TYPE OCTAL ***4C ************************************************** 100 CALL STRCMP (OCTAL,4,RETCD2) ID=8 GOTO (200,995),RETCD2 STOP 100CCCCC4C **************************************************4C *********** *R ENCOUNTERED *************4C **************************************************CC *R SEE IF A REAL DECLARATION110 CALL STRCMP (REAL,3,RETCD2) ID=9 GOTO (200,114),RETCD2 STOP 110CC&C OTHERWISE ASSUME A READ IS REQUIRED114 IF (LEVEL.NE.1) GOTO 117 WRITE(1,116) GOTO 118116 FORMAT(' CALR>',$)117 WRITE (1,119) LEVEL119 FORMAT (' CALC<',I1,'>',$)&118 READ (1,115,END=1000,ERR=990) LINE115 FORMAT (80A1)C?C NOTE THAT IF IS HIT AS THE ONLY INPUT, RETURN IS NORMAL.C AND PROCESSING CONTINUES ON LEVEL (RETCD=2) RETCD=2 GOTO 1000CCCCC>C ************************************************************>C *** *V ACTIVATE PRINTING OF VARIABLE WHEN VALUES CHANGE ***>C ************************************************************129 NONBLK=IPT130 CALL GETNNB(IPT,RETCD2) GO TO (129,132),RETCD2 STOP 130132 CHAR=LINE(NONBLK)" IF(CHAR.NE.DIGITS(10,1))GO TO 134CC *VIEW 0 ENCOUNTERED VIEWSW=0 GO TO 1000$134 IF(CHAR.NE.DIGITS(1,1))GO TO 136CC *VIEW 1 ENCOUNTERED VIEWSW=1 GO TO 1000$136 IF(CHAR.NE.DIGITS(2,1))GO TO 138 VIEWSW=2 GO TO 1000 138 VIEWSW=3 GOTO 1000CCCC4C **************************************************4C ********** *Z ZERO OUT ALL VARIABLES ********4C ************************************************** 140 CALL ZERO GOTO 1000CCCCCC MAKE DECLARATIONS200 CALL DECLR(ID,RETCD2) GO TO(1000,999),RETCD2 STOP 200CCCCCC **** ERROR PROCESSING ****C990 I=27 REWIND LEVEL GO TO 998995 I=3998 CALL ERRMSG(I) 999 RETCD=3 1000 CONTINUE RETURN 5C P COMMAND - SET PLACEMENT OF PHYSICAL POSN IN SHEET)C *P WILL PROMPT FOR INPUTS OF LOCATIONS.C 210 CONTINUEC RETCD=19C IF THE COMMAND IS *P VAR THEN SET TO VARIABLE LOCATION. KK1=3 KK2=20 IF(LINE(3).EQ.'@')GOTO 2179C ONLY LOOK IN COLS 3-20. COLUMNS 1,2 ARE THE *W COMMAND.* CALL VARSCN(LINE,KK1,KK2,KEK,KK,KKK,IVLD) IF(IVLD.NE.0)GOTO 216 GOTO 218 217 CONTINUE4C ALLOW *W@V1,V2 TO GOTO LOCATION OF V1,V2 (COL,ROW).C THIS ALLOWS PROGRAMMED ACCESS TO VARIABLES. L1=4 L2=60. CALL VARSCN(LINE,L1,L2,LSTCH,ID1A,ID2A,IVLD1) IF(IVLD1.EQ.0)GOTO 1000! CALL TYPGET(ID1A,ID2A,TYPE(1,1)) IF(TYPE(1,1).EQ.2)GOTO 219& CALL JVBLGT(1,ID1A,ID2A,JVBLS(1,1,1)) LCL=JVBLS(1,1,1) GOTO 2200 219 CONTINUE" CALL XVBLGT(ID1A,ID2A,XVBLS(1,1)) LCL=XVBLS(1,1) 2200 CONTINUECC NOW HAVE COLUMN NUMBER. PASS DELIMITER (WHATEVER IT IS) AND GO ON L1=LSTCH+1 L2=60-C ASSUME WE GET THERE WITHIN 60 CHARACTERS.... CALL VARSCN(LINE,L1,L2,LSTCH,ID1B,ID2B,IVLD2) IF(IVLD2.EQ.0)GOTO 1000$C SEEMS LIKE OK VARIABLE... GO AHEAD! CALL TYPGET(ID1B,ID2B,TYPE(1,1))& CALL JVBLGT(1,ID1B,ID2B,JVBLS(1,1,1)) LRW=JVBLS(1,1,1)4 IF(TYPE(1,1).EQ.2)CALL XVBLGT(ID1B,ID2B,XVBLS(1,1))! IF(TYPE(1,1).EQ.2)LRW=XVBLS(1,1)(C ADJUST FOR ACCUMULATOR ROW BY ADDING 1 LRW=LRW+1@C NOW HAVE COLUMN AND ROW NUMBERS. GET VARIABLE USING THEM AFTERC CLAMPING TO MAX VALUES. LCL=MAX0(1,LCL) LRW=MAX0(1,LRW) LCL=MIN0(LCL,RRW) LRW=MIN0(LRW,RCL) KK=LCL KKK=LRW GOTO 216 218 CONTINUE IF(LEVEL.EQ.1)WRITE(1,211)$211 FORMAT(' SET PHYS LOC. COLUMN=')" READ(LEVEL,212,END=700,ERR=700)KK212 FORMAT(I7) IF(LEVEL.EQ.1)WRITE(1,213)"213 FORMAT(' SET PHYS LOC. ROW =')# READ(LEVEL,212,END=700,ERR=700)KKK KKK=KKK+1216 KK=MAX0(1,KK) KKK=MAX0(1,KKK) KK=MIN0(RRW00RRQH+%O-%TADATADATA,KK) KKK=MIN0(RCL,KKK)C CLAMP TO LEGAL SIZE PROW=KK PCOL=KKK RETURN 700 CONTINUE REWIND LEVEL IF(ITCNTV(LEVEL).EQ.0)GOTO 55$ IF(ZNEG(ITCNTV(LEVEL)).EQ.1)GOTO 55 RETURNBC W COMMAND - WRITE % TO CURRENT PHYSICAL LOC IN SHEET. USE E32.25 C FORMAT.BC DOES NOT PROMPT. THEREFORE, IF USED INSIDE SPREADSHEET, HAS THEBC EFFECT OF CONVERTING CURRENT CELL'S FORMULA TO A LITERAL NUMBERCC AND FREEZING IT THAT WAY. THEREFORE A FORMULA CONTAINING *W WILLDC NORMALLY ONLY EXECUTE THE *W ONCE (AFTERWARDS BEING OVERWRITTEN).C 220 CONTINUE RETCD=1C IRX=(PCOL-1)*RRW+PROW CALL REFLEC(PCOL,PROW,IRX) CALL WRKFIL(IRX,WRK,0) IF(LINE(3).EQ.'F')GOTO 224C READ(7'IRX)WRKC GET RECORD INTO MEMORY ENCODE(35,221,WRK,ERR=225)XAC/C PUT VARIABLE VALUE AS STRING INTO FILE BUFFER221 FORMAT(E32.25) GOTO 225 224 CONTINUEC WRITE AND USE LOCAL FORMAT WRK2(1)='(' DO 226 K=1,9226 WRK2(K+1)=WRK(119+K) WRK2(11)=')' WRK2(12)=03C FAILS IF MORE THAN 40 CHARACTERS FILLED BY FORMAT ENCODE(40,WRK2,WRK,ERR=225)XAC 225 CONTINUE DO 222 K=36,110 222 WRK(K)=32 CALL WRKFIL(IRX,WRK,1)C WRITE(7'IRX)WRK RETURNC C *G SEEN.BC THE SYNTAX OF *G IS *G V1,V2 WHICH WILL GET VALUE OF VBLS(G1,G2)AC AND LOAD IT INTO %. THE DIMENSIONS ARE CLAMPED TO LEGAL BOUNDS=C AND TYPE=4 MEANS USE INTEGER, TYPE=2 CONVERTS VARIABLES TO*C INTEGER. CALLS VARSCN TO DO THIS STUFF.'C THIS GIVES A MEASURE OF INDIRECTION. 250 CONTINUE RETCD=1C SAY ALL'S WELL. L1=3 L2=60. CALL VARSCN(LINE,L1,L2,LSTCH,ID1A,ID2A,IVLD1) IF(IVLD1.EQ.0)GOTO 1000! CALL TYPGET(ID1A,ID2A,TYPE(1,1)) IF(TYPE(1,1).EQ.2)GOTO 251& CALL JVBLGT(1,ID1A,ID2A,JVBLS(1,1,1)) LCL=JVBLS(1,1,1) GOTO 252%251 CALL XVBLGT(ID1A,ID2A,XVBLS(1,1)) LCL=XVBLS(1,1) 252 CONTINUECC NOW HAVE COLUMN NUMBER. PASS DELIMITER (WHATEVER IT IS) AND GO ON L1=LSTCH+1 L2=60-C ASSUME WE GET THERE WITHIN 60 CHARACTERS.... CALL VARSCN(LINE,L1,L2,LSTCH,ID1B,ID2B,IVLD2) IF(IVLD2.EQ.0)GOTO 1000$C SEEMS LIKE OK VARIABLE... GO AHEAD& CALL JVBLGT(1,ID1B,ID2B,JVBLS(1,1,1))! CALL TYPGET(ID1B,ID2B,TYPE(1,1)) LRW=JVBLS(1,1,1)4 IF(TYPE(1,1).EQ.2)CALL XVBLGT(ID1B,ID2B,XVBLS(1,1))! IF(TYPE(1,1).EQ.2)LRW=XVBLS(1,1)(C ADJUST FOR ACCUMULATOR ROW BY ADDING 1 LRW=LRW+1@C NOW HAVE COLUMN AND ROW NUMBERS. GET VARIABLE USING THEM AFTERC CLAMPING TO MAX VALUES. LCL=MAX0(1,LCL) LRW=MAX0(1,LRW) LCL=MIN0(LCL,RRW) LRW=MIN0(LRW,RCL)C RETURN VALUE. CALL TYPGET(LCL,LRW,TYPE(1,1))+ IF(TYPE(1,1).EQ.2)CALL XVBLGT(LCL,LRW,XAC)6 IF(TYPE(1,1).NE.2)CALL JVBLGT(1,LCL,LRW,JVBLS(1,1,1))# IF(TYPE(1,1).NE.2)XAC=JVBLS(1,1,1)@C USE IMPLICIT CONVERSION FROM FORTRAN HERE. NOTE WE RETURN WITHC THE LOOKED UP VALUE IN XAC. RETURNCC *Q QUERY DATABASE COMMANDCCHC THIS COMMAND IS DESIGNED TO PERMIT CALC TO ACCESS SEQUENTIAL (FOR NOW)EC FILES AND PULL IN VALUES. ARRAY WRK IS USED TO HOLD THE RECORDS AND"C MAY DISPLAY WHATEVER IS DESIRED.CC OPERATION IS AS FOLLOWS:C#C *Q[W/F] filespec ?KEYSTRING? JC WHERE THE W/F FLAG MEANS WRITE TO FORMULA AT CURRENT LOC (MAYBE MODIFIEDKC EARLIER BY THE *P COMMAND) AND F FLAG MEANS RETURN % AS VALUE OBTAINED BYCC ATTEMPTING A DECODE ON THE FILE LINE BETWEEN DELIMITER CHARACTERS>C cc GIVEN INSIDE [] CHARACTERS. FILE IS ASSUMED TO START WITH@C "KEYSTRING" WHERE ANY CHARACTER IS A MATCH EXACTLY EXCEPT THAT'C THE _ CHARACTER INDICATES A WILDCARD.C SPECIAL CASES:FC IF ` IS 1ST CHAR OF KEYSTRING, RECORDS MUST HAVE KEYSTRING STARTINGC AT COL 1 (EXCLUDING THE `)<C IF STRING HAS ` AS 1ST CHARACTER, THEN IT IS OF FORMDC <`NM> WHERE N=ASCII CODE FOR COLUMN WANTED + 32 AND M = ASCII CODEC FOR LENGTH DESIRED + 326C THIS ALLOWS POSITIONAL RETRIEVAL (THOUGH PAINFULLY)CMC A SECOND KEYSTRING MAY BE ENTERED INSIDE A SECOND PAIR OF ? CHARACTERS TOO.HC THE SEARCH WILL SEEK THE KEYS ANYWHERE IN THE RECORDS READ, UP TO 128C CHARACTERS LONG EACH.8C SECOND KEYSTRING MAY NOT BE ANCHORED TO START OF LINE.C AS AN ADDED ATTRACTION:CC *QFK OR *QFN 00RtRQN6%! ! WON'T CLOSE LUN 4 AT END. IN ADDITION *QFN WON'TAC CLOSE IT AT START EITHER ALLOWING SEQUENTIAL RETRIEVALS OUT OF"C DATA FILES. DITTO *QW VARIANTS.CC 290 CONTINUE RETCD=1C IRX=(PCOL-1)*RRW+PROW CALL REFLEC(PCOL,PROW,IRX)"C IF(LINE(3).EQ.'W')READ(7'IRX)WRK) IF(LINE(3).EQ.'W')CALL WRKFIL(IRX,WRK,0), IF(LINE(3).NE.'W'.AND.LINE(3).NE.'F')RETURN IL=INDEX(LINE,32) IF(IL.GT.40)GOTO 299 IL2=INDEX(LINE(IL+1),32) IF(IL2.GT.38)GOTO 299C ENSURE LUN 4 AVAILABLE3 IF(LINE(4).NE.'C'.AND.LINE(4).NE.'N')CLOSE(UNIT=4)O LINE(IL2+IL)=0G& IF(LINE(4).NE.'N'.AND.LINE(4).NE.'C')" 1 CALL ASSIGN(4,LINE(IL+1))%C THIS MAKES LUN 4 BE THE ONE WE WANTI LINE(IL2+IL)=32 IQ1=INDEX(LINE,'?')C LOCATE THE KEY IF(IQ1.GE.70)GOTO 299 IQ2=INDEX(LINE(IQ1+1),'?')  IF(IQ2.GE.72)GOTO 299-C NOW KNOW KEY IS IQ2-1 LONG, STARTS AT IQ1+1NCB/C ALLOW DOUBLE KEYS IF ANOTHER ?? PAIR IS SEEN.* KEYS2=0 IQ3=INDEX(LINE(IQ1+IQ2+1),'?')* IF(IQ3.GT.3)GOTO 297 )C WELL, THERE'S A 2ND STRING THERE MAYBE. # IQ4=INDEX(LINE(IQ3+IQ1+IQ2+1),'?')  IF(IQ4.GT.30)GOTO 297 IF(IQ4.EQ.1)GOTO 297  KEYS2=1/C FLAG WE HAVE A SECOND KEY. SOMETHING'S THERE.* LCL=IQ3+IQ2+IQ1+1 LRW=LCL+IQ4-1#297 READ(4,332,END=299,ERR=299)WRK2 IQQ=IQ2-1 IXX=128-IQ28C COMPARE THE ENTIRE RECORD FOR THE KEY, MATCH ANYWHERE. IF(LINE(IQ1+1).NE.'`')GOTO 376UGC IF 1ST CHAR OF KEY IS ` THEN SEARCH BEGINS AT LINE START ONLY. KEY ISE C 1 LESS.H IQ1=1+IQ1 IXX=1 IQQ=IQQ-1"C ADJUST SO SEARCH IS 1 CHAR LESS. 376 CONTINUE DO 350 KKK=1,IXXI* CALL SCMP(LINE(IQ1+1),WRK2(KKK),IQQ,ICOD) IF(ICOD.NE.0)GOTO 351 350 CONTINUEC DON'T JUST FALL THRU GOTO 353D 351 CONTINUE IF(KEYS2.EQ.0)GOTO 353C9C CHECK SECOND KEY STRING IN RECORD IF ANY WAS ASKED FOR.B#C (THAT'S ALL YOU GET. 2 KEYS MAX.)I&C LINE(LCL) TO LINE(LRW) CONTAINS KEY. IXY=128-IQ4+1 ICC=IQ4-1 DO 354 KKK=1,IXYA( CALL SCMP(LINE(LCL),WRK2(KKK),ICC,ICOD) IF(ICOD.NE.0)GOTO 355 354 CONTINUE 355 CONTINUE353 IF(ICOD.EQ.0)GOTO 297E;C HERE FOUND THE KEYED RECORD. NOW EXAMINE COMMAND LINE FORL=C SPECIAL CHARACTERS. IF NONE, JUST COPY THE FIRST CHARACTERS 4C IN THE TEXT INTO EITHER THE BUFFER OR ENCODE THEM. IQ1=INDEX(LINE,'<') IF(IQ1.GT.75)GOTO 296 IQ2=INDEX(LINE(IQ1+1),'>')L IF(IQ2.GT.8)GOTO 296  KKQ=LINE(IQ1+1).AND.255 KK=INDEX(WRK2,KKQ)IC KK=INDEX(WRK2,LINE(IQ1+1))CC MUNGE THE SEARCH SO THAT IF THE SPECIAL CHAR IS ` THEN THE NEXT 2 DC CHARACTERS HAVE START AND LENGTH ENCODED AS ASCII CODE -32 DECIMALGC WHICH ALLOWS FIELDS TO BE PLACED ANYWHERE (THOUGH SOMEWHAT PAINFULLY)( IF(LINE(IQ1+1).EQ.'`')KK=LINE(IQ1+2)-32 IF(KK.GT.125)GOTO 299(C NOTE THAT THE KEY FORM WOULD THEN GIVEJC <`!@> FOR START COLUMN=1 AND LENGTH =32 (ASCII 64 = @ AND ASCII 33 = !)FC THIS MEANS USER HAS TO KNOW ASCII ORDER BUT AT LEAST IT'S IN MANUAL.) IF(LINE(IQ1+1).EQ.'`')KKK=LINE(IQ1+3)-32  KKQ=LINE(IQ1+2).AND.2553 IF(LINE(IQ1+1).NE.'`')KKK=INDEX(WRK2(KK+1),KKQ)+KKV<C IF(LINE(IQ1+1).NE.'`')KKK=INDEX(WRK2(KK+1),LINE(IQ1+2))+KK GOTO 295U 296 CONTINUEC DEFAULT, NO SPECIAL CHARS. KK=0E KKK=110 295 CONTINUE KL=KKK-KK-1 KK=KK+1 IF(LINE(3).NE.'W')GOTO 294O KL=MIN0(KL,109) DO 293 N=1,KL WRK(N)=WRK2(KK) 293 KK=KK+1D WRK(KL+1)=01C WRITE OUT THE RECORD'S KEY PART INTO SHEET FILE  CALL WRKFIL(IRX,WRK,1)OC WRITE(7'IRX)WRKK XAC=1. GOTO 298 294 CONTINUE C FLOAT THE VALUE, RETURN IN XAC# DECODE(KL,221,WRK2(KK),ERR=299)XAC 298 CONTINUE:C IF IT'S A KEEP OR NEXT TYPE OPERATION, LEAVE LUN 4 OPEN.<C FIRST ONE MUST BE A KEEP (TO OPEN FILE IN THE FIRST PLACE)8C AND SUBSEQUENT OPERATIONS MAY BE A N OPERATIONS, WHICH;C WILL JUST CONTINUE SEQUENTIAL READIN OF DATA. USER HAS TOV9C KEEP TRACK. NOTE RETURN VALUE IS -999999. (6 9'S) IF WEWC FAIL AND HAVE TO CLOSE FILE.+ IF(LINE(4).EQ.'K'.OR.LINE(4).EQ.'N')RETURN1 CLOSE(UNIT=4) RETURN, 299 CONTINUE,C RETURN -999999 IF WE FAIL IN FINDING FILE. XAC=-999999. CLOSE(UNIT=4)5C COME HERE FOR NON-RECOVERABLE ERRORS IN FORMAT TOO.E RETURN6C,C *F LABEL GOTO LABEL COMMAND (CONDITIONAL)C00RRQH+%O-%TADATADATACL#C THE SYNTAX OF THE *F COMMAND IS :L C *F LABELB;C WITH THE OPERATION OF LOCATING A LINE BEGINNING WITH THED8C STRING "*CLABEL" (SO IT IS PASSED OVER BY NORMAL CALC6C PROCESSING). THE INPUT FILE ON IOLVL IS REWOUND AND9C SCANNING GOES TO THE EOF OR UNTIL THE STRING IS FOUND.L%C RETCD=2 IF NO SUCH LABEL IS FOUND. CR<C AS A FURTHER AID, IF THE % VARIABLE IS 0 OR NEGATIVE, THEC COMMAND IS IGNORED. 330 CONTINUE RETCD=1 IF(XAC.LE.0)RETURN' REWIND IOLVLD&333 READ(IOLVL,332,END=331,ERR=331)WRK332 FORMAT(128A1)O+ IF(WRK(1).NE.'*'.OR.WRK(2).NE.'C')GOTO 333L ISSL=2  ISSS=20 IF(LINE(3).EQ.' ')ISSL=3 IF(WRK(3).EQ.' ')ISSS=3) CALL SCMP(LINE(ISSL),WRK(ISSS),80,ICODE)R IF(ICODE.EQ.0)GOTO 333 RETURN3C ERROR ENTRY WHERE WE SEE WE FAILED TO FIND LABEL.C 331 CONTINUE IF(IOLVL.NE.5)CLOSE(UNIT=IOLVL) IOLVL=5D CLOSE(UNIT=5)T D FOOBAR=09D OPEN(UNIT=5,FILE='SYS$COMMAND:',CARRIAGECONTROL='NONE')I>C CLOSE & REOPEN CONSOLE IN VMS ONLY FOR USE IN BATCH MODES... RETCD=2 RETURN0C,<C *J LABEL - JUST LIKE *F LABEL BUT ON CALC'S COMMAND FILES.*C I.E., FINDS A LINE STARTING WITH *CLABELJC (NOTE IT STARTS FROM START OF FILE AND DOES THIS ONLY IF % IS POSITIVE).:C ITERATION OF COMMAND FILES REMAINS UNDER NORMAL CONTROL. 360 CONTINUE RETCD=1 IF(XAC.LE.0)RETURN REWIND LEVELT$363 READ(LEVEL,362,END=55,ERR=55)WRK362 FORMAT(128A1)*+ IF(WRK(1).NE.'*'.OR.WRK(2).NE.'C')GOTO 363* ISSL=2  ISSS=2C IF(LINE(3).EQ.' ')ISSL=3* IF(WRK(3).EQ.' ')ISSS=3) CALL SCMP(LINE(ISSL),WRK(ISSS),80,ICODE)P IF(ICODE.EQ.0)GOTO 363 RETURN2 C *X COMMANDC X[C] FILESPEC CELLNAME>C READS FILESPEC AS A SAVED SPEADSHEET (NUMERIC OR FORMULA)@C AND LOADS ITS VALUE INTO CURRENT CELL AND % ACCUMULATOR. DOES3C NOT LOAD FORMULA UNLESS F SEEN. THUS 2 VARIANTS:A0C *XF FILESPEC CELLNAME LOAD FORMULA AND VALUE$C *XV FILESPEC CELLNAME LOAD VALUEMC NOTE ANY CHARACTER AFTER *X THAT ISN'T "F" IS EQUIVALENT TO V FOR EASY USE.* 480 CONTINUE RETCD=1C NOW GET THE ARGS JFFG=0S IF(LINE(3).EQ.'F')JFFG=10C NOW HAVE FORMULA FLAG. IQ3=4C ALLOW 1 SPACE OPTIONALLY IF(LINE(IQ3).EQ.' ')IQ3=5 IQ1=INDEX(LINE(IQ3),32) IQ1=IQ1+IQ3-1JC NULL TERMINATE FILENAME WHILE PARSING IT (DON'T LET ASSIGN SEE VBL NAME) LINE(IQ1)=0 CLOSE(UNIT=4,ERR=9770)L 9770 CONTINUER0 OPEN(UNIT=4,FILE=LINE(IQ3),ACCESS='SEQUENTIAL',& 1 STATUS='OLD',RECL=512,ERR=481)C CALL ASSIGN(4,LINE(IQ3))&C REPLACE THE SPACE FOR VARSCN'S SIGHT LINE(IQ1)=32*AC IQ1 NOW HAS START INDEX FOR VARSCN DESIRED... GO GET VRBL NAME.E KK1=IQ1 KK2=IQ1+20O* CALL VARSCN(LINE,KK1,KK2,KEK,KK,KKK,IVLD) IF(IVLD.LE.0)GOTO 481-C GOT VALID VARIABLE NAME. KK,KKK ARE ROW,COLE9C NOW WE KNOW HOW TO RETRIEVE THE DATA OFF FILE IN UNIT 4)%C READ INTO WRK ARRAY TILL WE GET IT.  IQ3=KKS IQ4=KKK-1!C READ AND THROW AWAY SAVED TITLE0483 READ(4,332,ERR=486)WRKC IGNORE TITLE 486 CONTINUE@C NOTE WE READ IN THE NUMBER IN NUMERIC FORMAT. EASIER THAT WAY./C IF(JFFG.EQ.0)READ(4,484,END=488,ERR=488)LETA, C 1 IRRW,ICCL,XYVAL9C IF(JFFG.NE.0)READ(4,489,END=488,ERR=488)LETA,IRRW,ICCL,GC 1 (WRK(IV),IV=1,110)+ READ(4,484,END=488,ERR=488)LETA,IRRW,ICCL,* 1 (WRK(IV),IV=1,110),C ALWAYS READ AS TEXT BUT CONVERT IF WE CAN." DECODE(50,6486,WRK,ERR=5486)XYVAL*C JUST IGNORE CONVERSION ERRORS AND GO ON. 5486 CONTINUE5%C CHOP OFF TRAILING BLANKS RIGHT HERE* DO 5322 IV=1,110* IVV=111-IV* IF(WRK(IVV).GT.32)GOTO 5323 WRK(IVV)=0BC NULL TRAILING WHITESPACE4C STOP WITH FIRST CHARACTER (BACK FROM RIGHT) THAT'S#C NOT A SPACE OR CONTROL CHARACTER. 5322 CONTINUE, 5323 CONTINUE0$484 FORMAT(1A1,I5,X,I5,X,110A1,50A1) C484 FORMAT(A1,I5,X,I5,X,E50.35)C489 FORMAT(A1,I5,X,I5,X,110A1)P< READ(4,485,END=488,ERR=488)LFVLD,(WRK(IV),IV=120,128),KKTYPFC ALLOW FLAG OF 3 FOR NUMERIC,RECALCULATE... 2 FOR NUMERIC, NO RECALC.)C 1 CONTINUES TO MEAN ALWAYS RECALCULATE.I IF(LFVLD.LT.-1)LFVLD=-3 IF(LFVLD.GT.1)LFVLD=3C 485 FORMAT(I3,X,9A1,X,I5)9C READS IN AN ENTRY OF SAVED SHEET. TEST IF IN OUR RANGE.T( IF(IRRW.EQ.IQ3.AN00RtRQN6%! !D.ICCL.EQ.IQ4)GOTO 487 GOTO 486 487 CONTINUE(C SUCCESS. NOW FILL IN VALUE OR FORMULA. IF(JFFG.EQ.0)GOTO 6487*7C READING IN FORMULA BUT WANT VALUE TOO. SEE IF THIS ISE)C THE VALUE RECORD OR THE FORMULA RECORD.* IF(LETA.NE.'p')GOTO 6487*8C OK, THIS IS A VALUE RECORD WHICH SHOULD BE IMMEDIATELYC FOLLOWED BY A FORMULA RECORD.*<C JUST DECODE THE VALUE AND RECORD IT. GET THE FORMULA NEXT.! DECODE(50,6486,WRK,ERR=486)XYVAL*(C IF WE DIDN'T HAVE ANY ERRORS WE GOT IT6486 FORMAT(BN,D50.35))C NOW TRY AND SAVE THE VALUE AND GO BACK. CALL XVBLST(PROW,PCOL,XYVAL)* XAC=XYVAL GOTO 486* 6487 CONTINUE*C IRX=(PCOL-1)*RRW+PROW  CALL REFLEC(PCOL,PROW,IRX)* WRK(118)=115* WRK(119)=LFVLD* CALL FVLDST(PROW,PCOL,LFVLD) C FVLD(PROW,PCOL)=LFVLDRC SET UP TO SAVE FORMULA.C SAVE EITHER FORMULA OR VALUE.1$ IF(JFFG.NE.0)CALL WRKFIL(IRX,WRK,1) IF(JFFG.NE.0)GOTO 488C SET UP NUMBER IF HERE. CALL TYPSET(PROW,PCOL,KKTYP)TC TYPE(PROW,PCOL)=KKTYP1 CALL FVLDST(PROW,PCOL,LFVLD)CC FVLD(PROW,PCOL)=LFVLD, CALL XVBLST(PROW,PCOL,XYVAL) C XVBLS(PROW,PCOL)=XYVAL XAC=XYVAL 488 CONTINUE CLOSE(UNIT=4) RETURNN 481 CONTINUE CLOSE(UNIT=4) RETCD=2 RETURNCC *U FUNCTION ARGSC HANDLE USER FUNCTION CALL... 780 CONTINUE RETCD=1BC PASS LINE AND ARGS TO SUBROUTINE TO PARSE (EXTERNALIZE THE WORK)-C COMMON /V/ HAS DATA NEEDED FOR ARGUMENTS...* CALL USRFCT(LINE,RETCD):C IF RETCD CHANGES IN USRFCT THIS ALLOWS ERROR CODES BACK. RETURNG END8C STRING COMPARE 2 ARRAYS UNTIL EITHER ENDSTRING IS SEENC ON ONE OR MISMATCH IS SEEN.& SUBROUTINE SCMP(LINA,LINB,LENM,ICODE) DIMENSION LINA(1),LINB(1) LOGICAL*1 LINA,LINB ICODE=1 DO 1 N=1,LENM' IF(LINA(N).EQ.0.OR.LINB(N).EQ.0)GOTO 2.C ALLOW _ TO BE A WILDCARD.E+ IF(LINA(N).EQ.'_'.OR.LINB(N).EQ.'_')GOTO 10 IF(LINA(N).NE.LINB(N))ICODE=0 IF(ICODE.NE.1)GOTO 2* 1 CONTINUE 2 CONTINUE RETURN  END0PHEADHEADHEADHEADHEADHEADHEADHEADHEADHEADHEADHEADHEADHEADHEADHEADHEADHEADHEADHEADP.M00(19NOV8615310825NOV85104226/RL.@8"'#19NOV8615310830NOV83090422R-.F&'#19NOV8615310930NOV83090446R.J`(+Ԁ 19NOV8615310913MAY86123317R..6"*%Ԁ 19NOV8615310924MAR86114829R.cc<xR  19NOV8615311007APR86164451bR.<jRS  19NOV8615311013OCT86155317XSXTXU.HV[19NOV8615311022AUG85100955KV# .D**hV'19NOV8615311021AUG85141145)fV!.L M'"19NOV8615311009DEC83134633 VG.FnP[19NOV8615311113AUG85145051V .'4nP219NOV8615311112AUG85164652V&.D((nP'19NOV8615311116AUG85125941'V5.Dnt[19NOV8615311109AUG85172023V_.D~nt'19NOV8615311116AUG85125731QV.NXx*19NOV8615311215JUL85104043V.Nx'19NOV8615311205APR84115519Wm. N##x) 19NOV8615311218AUG86122309")W. 7V2T`19NOV8615311213MAR85154606LW~J. /p2&(19NOV8615311322FEB85172304MW . N,209[ 19NOV8615311307FEB86084056NWB. FRR209'19NOV8615311315JUL85134140QlW.7209(19NOV8615311422FEB85171907W>. H66209( 19NOV8615311410FEB860937105Wk. Hzz209) 19NOV8615311410FEB86093632yWw.F N""'#19NOV8615311430NOV83091452 oX;.B""?T'$19NOV8615311430NOV83091512yXx.O!!p &l^"19NOV8615311530NOV83091530 X;. O!!t &ƀWl^19NOV8615311523DEC85110719 X{.O!! &fl^19NOV8615311519JUL85123531 XJ.H &(19NOV8615311615NOV85112731 X%.HL&`(19NOV8615311611NOV85171026X.@i'd'#19NOV8615311630NOV83091542X.A ](* 19NOV8615311618AUG86092929 XB.<]('19NOV8615311715JUL85110255Y0.A ](h19NOV8615311726SEP85142945 Y.E(kQ19NOV8615311709AUG84115227YI.Eb(zQ19NOV8615311710AUG84090508Y:V.D,Y'#19NOV8615311830NOV83091616!Y.I,,'#19NOV8615311830NOV83120428%Yi. L//&-@y(19NOV8615311823JUL84123136.&Y7.!A T-' 19NOV8615311821MAR86112121UY." G.w'19NOV8615311817DEC85143552^Y.#J 1/{sW( 19NOV8615311923SEP83170727cY.$K62f]'#19NOV8615311906DEC83145517lYV.%K 8+d@Ԁ19NOV8615311909OCT85142121 oY8.&Ct:#'#19NOV8615311930NOV83091706V~Y.'CJt:#( 19NOV8615312023SEP83170733Yx[.(?Dt:#kQ19NOV8615312030JUL84115408Y8u.)@Nt:#zQ19NOV8615312030JUL84140840YTt.*I6:`'#19NOV8615312030NOV83091739Y.+E zAv8*19NOV8615312128OCT85102124Yw.,7Av8'19NOV8615312123APR85162528Y&p.- ^ADkQ 19NOV8615312106FEB86162352Yx..?pbK 19NOV8615312215APR86092236Y`>./8,vL&( 19NOV8615312224MAR86150430Yhj.0&vL`(19NOV8615312311NOV85171014Yդ.1C{L}'#19NOV8615312330NOV83091930Yr.2EQ}'19NOV8615312319AUG85161016Y.3L DS}'#19NOV8615312330NOV83092612 YP.4C xT!'19NOV8615312419AUG85161226 YU`.5J RT'#19NOV8615312430NOV83092859 YBl.6M T&'#19NOV8615312430NOV83093145YUs.7F |T~'#19NOV8615312430NOV83093626 Y{.8J TT'#19NOV8615312530NOV83093830 Y.9H))H`X}* 19NOV8615312514APR86082740(YR.:H((`X}(19NOV8615312522AUG85110526'"Z.;99{d]{d19NOV8615312623SEP851037418JZ7F.<Ov{d2d3!19NOV8615312608FEB84180257Z.=B {dsQ;% 19NOV8615312715APR86090751Z.>C {dsQ;% 19NOV8615312708SEP86125024 Z.?C {dRy% 19NOV8615312730JUN86164641 Z.@ p{dW19NOV8615312830OCT84090037Z.AK{dWl^19NOV8615312819JUL85122910Z.B K{dWWl^19NOV8615312823DEC85110238Z,.C ={dd19NOV8615312823DEC85122101ZQ.DJ l{dd% 19NOV8615312915APR86091158Z=.E${df19NOV8615312919JUL85123523Z.FK{dfl^19NOV8615312919JUL85123517{YZM.GG{dfW% 19NOV8615312915APR86091903ZU .H  {dfW@ 19NOV8615313005JUN86142721Z+.IGf{dĆą% 19NOV8615313015APR86090536ZU.JBdp"19NOV8615313023SEP83170818Z,.K96dp% 19NOV8615313128FEB86144949Z.LKdp' 19NOV8615313128FEB86144726Zw.MKdp( 19NOV8615313128FEB86144639ZC.NH""|d0!'19NOV8615313215JAN85104931![.OH""^d0!f19NOV8615313220JUN84132008!)[.PEd% 19NOV8615313215APR86092048K[G.Qd|19NOV8615313330OCT84134430O[Z.RN kf|'#19NOV8615313330NOV83095914 R[.SH (fW[19NOV8615313320SEP85110010 _[.T##zfW{d19NOV8615313321OCT85171913"l[ .U<f]{d19NOV8615313406NOV85172456[.VDfs]d19NOV8615313423SEP85111221[ .W~f]19NOV8615313423SEP85110204[0j.X:f]19NOV8615313523SEP85120333[0r.YF,fX19NOV8615313521OCT85173332[.ZFfZ19NOV8615313509OCT85171048[.[:fZ19NOV8615313620SEP85103629[O.\f[{d19NOV8615313606NOV85175329[.]f#[{d19NOV8615313606NOV85174123[.^>>fX[{d19NOV8615313721MAR86161416=[:._F {gONf'19NOV8615313728FEB85144108 %\S .`NIq  19NOV8615313721MAR86094418/\L.aP00Kq#* 19NOV8615313814APR86092457/N\.bJ((Kq#v&19NOV8615313825SEP85092012'~\A.c J,,vKq#'19NOV8615313814JAN86111734+\.dJ%%Kq#(19NOV8615313925SEP85091900$\.eP00Kq#) 19NOV8615313930JUN86163038/\.fBNqK}*19NOV8615313927JAN86091648ZI=.g BNqK}'19NOV8615313924JAN86083603-]4.h4r'19NOV8615314017OCT84131016Zk.iIJwt:' 19NOV8615314018AUG860932120]P.jR@x !y 19NOV8615314021MAY861304147] .k@\x X'#19NOV8615314130NOV83100735V]<.lM((Ry 5'19NOV8615314104APR85100907'Z].mM,,tRy 5) 19NOV8615314110SEP86124930+].nKXRy 5f19NOV8615314217DEC84110922]`.oM++2Ry 5f 19NOV8615314221MAR86113245*]g1.pM((Ry 5f19NOV8615314317DEC84110615'].qKZRy05f19NOV8615314317DEC84111024^.rIy'#19NOV8615314330NOV831027171^.sF ;zONf'19NOV8615314318JUL84102317 6^'.tCjz}' 19NOV8615314419JUN86103534@^.wI29y:'19NOV8615314416DEC85134638^2.xI9y:(!19NOV8615314408MAR84090527^m.yIf9y:) 19NOV8615314528FEB86103406^.z=x9y:kQ 19NOV8615314508MAR84090429^.{CJ' 19NOV8615314507FEB86083226^h.|EJ(19NOV8615314623JUL84091536^.}IJ) 19NOV8615314610SEP86124012 ^O.~EbJf19NOV8615314723JUL84091113^.I99J && 19NOV8615314724MAR860839318^.I55J &' 19NOV8615314824MAR860840154^t.I<<J &) 19NOV8615314824MAR86150519;%_.G Ć'#19NOV8615314830NOV83102956 a_^.H Ć'19NOV8615314911APR84152252 n_].HĆ '19NOV8615314925APR84100148y_.H"Ć'19NOV8615314924APR85131638_).HXĆ) 19NOV8615315018AUG86094117_.H Ć'#19NOV8615315030NOV83103159 _.HĆxd'#19NOV8615315030NOV83163315_.H 0Ćx'#19NOV8615315130NOV83103220 _.Jha'#19NOV8615315130NOV83103254_#.KPFw'19NOV8615315215JUL85162050_D.F .Dhr( 19NOV8615315205SEP86145738 _.H&*19NOV8615315208JUL85094838`X.Lb&&19NOV8615315330APR85155914`/.LH&'19NOV8615315302NOV84125106*`.H&) 19NOV8615315405MAR86101736>`.H<&_*19NOV8615315415JAN85112952W`".I$$ * 19NOV8615315405MAR86101924#g`S.K22\ *19NOV8615315515JUL851346231` .K-- '19NOV8615315519AUG85160255,`x.I""J )19NOV8615315519AUG85155206!`f.I%% ) 19NOV8615315630JUN86165704$ a.L11 _)19NOV8615315623APR8516491301a>.P' 19NOV8615315705SEP86152010baT. P>(19NOV8615315716JAN86135453 bH.F,Z]'#19NOV8615315830NOV83103705b.@+'#19NOV8615315830NOV83103724bPUFD8+zʈP.7V2T`19NOV8615315913MAR85154606b~Z.209^19NOV8615315910FEB86085626b.77E& 19NOV8615315907MAY851535036bF.D{dd 19NOV8615315917APR86122124c?.{d_19NOV8615315918AUG86104743cd .'(dp_19NOV8615315928FEB86125154&dm.IIq  19NOV8615320017APR86121835d!PUFD8,zʈP.@iIq Ԁ19NOV8615320024JUL85110814dm.:^19NOV8615320019DEC85141552d.GV@19NOV8615320119DEC85141553d.JX19NOV8615320119DEC85141554d.Kn@19NOV8615320119DEC85141554d=.(19NOV8615320119DEC85141555d.&@19NOV8615320119DEC85141556d.P19NOV8615320119DEC85141557d.@19NOV8615320219DEC85141558dx.!Z 19NOV8615320219DEC85141600dG.1Z19NOV8615320219DEC85141600d.4:@19NOV8615320219DEC85141601d.1N 19NOV8615320225APR84135239dp.;19NOV8615320319DEC85141602d.A`@19NOV8615320319DEC85141603d=.N19NOV8615320319DEC85141604d.N@19NOV8615320319DEC85141605d.@b19NOV8615320319DEC85141606d.@b@19NOV8615320319DEC85141607dG.F19NOV8615320419DEC85141607d.F@19NOV8615320419DEC85141608d.@19NOV8615320419DEC85141609d.u<@19NOV8615320419DEC85141609d.vL19NOV8615320419DEC85141610d.L@19NOV8615320519DEC85141611d./b19NOV8615320519DEC85141611d .%"@19NOV8615320519DEC85141612d.F19NOV8615320519DEC85141613d.F@19NOV8615320619DEC85141613d.7`19NOV8615320619DEC85141615d.OX@19NOV8615320619DEC85141615dp.4 19NOV8615320624JUL85115342dI.9 y19NOV8615320624JUL85115341dc.3t! 19NOV8615320724JUL85115343d,.4t!y19NOV8615320724JUL85115341dw.*G,g19NOV8615320723JUL85125737d{.9,W%19NOV8615320813AUG85120509dO].;,x19NOV8615320819DEC85141616d{.OFs:!19NOV8615320819DEC85141617d 4.EE,dke19NOV8615320816APR84103801d.oE,d ke19NOV8615320816APR84142252d .xpE,dke19NOV8615320916APR84142959d. 8H19NOV8615320919DEC85141618d .$H19NOV8615320918MAR86093602d:.2H@19NOV8615320919DEC85141619d'.4:H 19NOV8615320919DEC85141620dT&.TH hM19NOV8615321016APR84102016de.TH19NOV8615321018MAR86091541d9..H@19NOV8615321019DEC85141621d .H19NOV8615321019DEC85141622d.(H@19NOV8615321119DEC85141622d!./^H 19NOV8615321119DEC85141623d&.$H 19NOV8615321119DEC85141624d+.=f{dy:}19NOV8615321119DEC85141625dN.#e`;%19NOV8615321124JUL84091231dz.8fE[19NOV8615321228JUN84164338d;.:Iq 19NOV8615321226APR84174206d2". LtRyl% 19NOV8615321210FEB86091854d{PUFD_ӎz@шP .@MiIq  19NOV8615321303OCT8611500117NOV58e..@C ,f! 19NOV8615321303OCT8611542817NOV58 e.@4f@! 19NOV8615321303OCT8611000817NOV58eC.@9$$` x 19NOV8615321306MAY8615041817NOV58e.@992x 19NOV8615321306MAY8615033817NOV58eO PUFDӟz؈P.AE  19NOV8615321409APR8114403017NOV58em.A4E X: 19NOV8615321409APR8113481817NOV58e.FxHq 19NOV8615321420OCT8017225217NOV58!ed.AE  19NOV8615321429AUG8611492917NOV58#ex.<&/+kQ 19NOV8615321413AUG8618314517NOV58&e.*/+^ 19NOV8615321501APR8112095017NOV58)ex .t`k  19NOV8615321505OCT8510325617NOV58*e>.!Xt` 19NOV8615321512MAY8213132717NOV58,e".K t`[ 19NOV8615321512MAY8213424017NOV58-e#.-"t`kQ 19NOV8615321512MAY8213133117NOV580e].*t`^ 19NOV8615321612MAY8213133317NOV584eog.NTt`r 19NOV8615321612MAY8213365517NOV585eƒ.8a WkQ 19NOV8615321613AUG8618252217NOV587eB.*ta W^ 19NOV8615321601APR8112095917NOV58:eW.'| _ 19NOV8615321615AUG8511533817NOV58;e.$x _ 19NOV8615321615AUG8513115417NOV58h.؈UJ 8kQ 19NOV8615322114JAN8613381417NOV58Xhs.  8^ 19NOV8615322114JAN8613405317NOV589iiP. E 8[ 19NOV8615322104FEB8112012917NOV58Oi. ؈U 8kQ 19NOV8615322224SEP8510080517NOV58bi. $$ 8^ 19NOV8615322224SEP8510163617NOV58#2jp. *%% 8#^ 19NOV8615322221JUL8111064017NOV58$Vjh.Hf 8[ 19NOV8615322319FEB8110191817NOV58{jj.؈UbbZ 8kQ 19NOV8615322315APR8111313517NOV58aj͋.* f 8^ 19NOV8615322305JUN8511264317NOV58 jH.E vQt  19NOV8615322310SEP8515013617NOV58j.E vQt 19NOV8615322311JUN8513325017NOV58jό.؈I8 fkQ 19NOV8615322405SEP8617584417NOV58jIz.S( Uq5a  19NOV8615322407JUN8513472517NOV58jܕ.S y:  19NOV8615322404FEB8110433217NOV58jS.Ef [  19NOV8615322406MAR8114152517NOV58jA.Ef [ 19NOV8615322403SEP8512145017NOV58k.CX  19NOV8615322512FEB8212300217NOV58 ko.؈A\ 8 19NOV8615322505SEP8617070517NOV58 k.؈02 yE  19NOV8615322512NOV8113043617NOV58k":. yk  19NOV8615322505OCT8510330217NOV58k4.؈6 y  19NOV8615322631JAN8512202617NOV58kV4.؈Df y[19NOV8615322629MAR7917502417NOV58kO.؈D ykQ19NOV8615322629MAR7917493017NOV58kБ.؈*& y^19NOV8615322612NOV8113044717NOV58k. 7 y{ 19NOV8615322713FEB8213065717NOV58 k\8.!7J y{ 19NOV8615322710JUL8508001217NOV58!kH."؈02 yE  19NOV8615322703MAR8211323717NOV58"k52.# yk  19NOV8615322705OCT8510330817NOV58#k:.$؈/ y  19NOV8615322831JAN8512351017NOV58g/.%؈JN ykQ 19NOV8615322820OCT8017262017NOV58(k.&؈*: y^19NOV8615322803MAR8211351117NOV588k(.'7J y{ 19NOV8615322910JUL8508031617NOV58:kO.(#{19NOV8615322911FEB8215041717NOV58;k.){ 19NOV8615322911JUN8517162417NOV58{, 19NOV8615323005OCT8510301917NOV58Mk.-#{ 19NOV8615323011FEB8215041717NOV58Ok..@MM{[ 19NOV8615323021JAN8215551117NOV58LPk&./z{y 19NOV8615323014JAN8613460017NOV58k?.0./{ 19NOV8615323114JAN8613450917NOV58-k*t.1H{""kQ 19NOV8615323128AUG8618002917NOV58kI.24X{""Z[ 19NOV8615323129AUG8611314517NOV58k;.3B{""Z/d 19NOV8615323104NOV8014272017NOV58k.4&B{: 19NOV8615323211FEB8215001417NOV58k.5؈'H{: 19NOV8615323218FEB8212581717NOV58k2.6P{\MkQ 19NOV8615323201MAY8014430517NOV58ll.7ID{Zg 19NOV8615323309APR8115322317NOV58l.8I{Zg 19NOV8615323311JUN8517134817NOV58lA6.9@AA{Zg[ 19NOV8615323328JUN8515082817NOV58@l.:z{Zgy 19NOV8615323305OCT8510321417NOV58Hl.;./{Zg 19NOV8615323405OCT8510313017NOV58-Pls.<-{Uq 19NOV8615323404NOV8008450017NOV58~l:.=;{Uq 19NOV8615323426APR8417065917NOV58l=.>RK  19NOV8615323523MAR8211015817NOV58l.?OK 19NOV8615323523MAR8211020017NOV58l.@C 19NOV8615323514JAN8613461517NOV58lG.A` ^  19NOV8615323614JAN8612575917NOV58l1.B` ^8~ 19NOV8615323614JAN8614352317NOV58 l.CB[  19NOV8615323611FEB8115023217NOV58l%.D*^ 19NOV8615323710NOV8311120217NOV58%k.ECz kQ 19NOV8615323720OCT8017262217NOV58&kl.F* ^ 19NOV8615323705JUN8511275717NOV58l .G02\ E  19NOV8615323729MAR7917482217NOV58l8.H\ k  19NOV8615323805OCT8510331417NOV58l{.IG<\ [ 19NOV8615323829MAR7917503317NOV58lw.JG\ kQ 19NOV8615323829MAR7917493117NOV58l*/.K*\ ^ 19NOV8615323929MAR7917495317NOV58l9.L$Z\ { 19NOV8615323903DEC8015151917NOV58l_.MG 8[ 19NOV8615323929AUG8614170917NOV58 lc.NOJ8r 19NOV8615323929AUG8614170117NOV58lү.OG }kQ 19NOV8615324006JUN8512534717NOV58l.P36zE  19NOV8615324019FEB8111414417NOV58lX.Qzk  19NOV8615324005OCT8510331917NOV58l.R6|z  19NOV8615324124SEP8510215617NOV58l.S8Hz  19NOV8615324119FEB8114322417NOV58l.T$Zz 19NOV8615324119FEB8111412517NOV58l.UCz[ 19NOV8615324220FEB8113214717NOV58l.VCzkQ 19NOV8615324331MAR8113291617NOV58lB.W*z^ 19NOV8615324419FEB8113040317NOV58l%.X؈!"X  19NOV8615324429JAN8513355717NOV58lX.Y؈$"X 19NOV8615324429JAN8512265017NOV58l~W.Z؈A"X' 19NOV8615324529JAN8512233217NOV58lmk.[( #}  19NOV8615324531MAR8113263617NOV58l.\36 # E  19NOV8615324531MAR8112461717NOV58l@X.] # k  19NOV8615324605OCT8510332517NOV58lW.^$ #  19NOV8615324631MAR8113205517NOV58lT._$Z #  19NOV8615324631MAR8112463217NOV58l^.`CZ # kQ 19NOV8615324731MAR8114354717NOV58l.a* # ^ 19NOV8615324731MAR8114360717NOV58l.b#kQ 19NOV8615324713AUG8618545017NOV58l .c*#^ 19NOV8615324801APR8112101117NOV58l.d"#L"  19NOV8615324803SEP8512115517NOV58lB.eO--(]!X:n 19NOV8615325118AUG8615344217NOV58Dmq.n؈N$X:kQ 19NOV8615325118AUG8615312617NOV58Em.oX:^ 19NOV8615325214JAN8612464417NOV58cm.p X:_E  19NOV8615325223JUL8114231217NOV58gm.q<|X:_ 19NOV8615325326APR8411234017NOV58hm.r@PPX:_[ 19NOV8615325328JUN8515110617NOV58Ojmi3.sZX:_^ 19NOV8615325314JAN8612472717NOV58m-.tzX:_y 19NOV8615325414JAN8613445117NOV58m=.u=X:#XkQ 19NOV8615325420OCT8017263017NOV58m.vrX:#X^ 19NOV8615325414JAN8612480617NOV58m&.w"X:$C E  19NOV8615325519FEB8118411617NOV58mg.x;X:$C kQ 19NOV8615325520OCT8017263217NOV58md.y,:`  19NOV8615325525APR8417381417NOV58m\u.z;n:b_ 19NOV8615325605FEB8110492917NOV58m.{؈36:4}E 19NOV8615325609NOV8309231517NOV58mu.|؈ Z:4} 19NOV8615325621NOV8312424517NOV58mt.}؈$:4}19NOV8615325711NOV8313235017NOV58mww.~؈J :4}kQ 19NOV8615325722NOV8316110217NOV58 m.؈*:4}^ 19NOV8615325722NOV8316110717NOV58m.<N:"   19NOV8615325804NOV8011463017NOV58m.L :" [ 19NOV8615325804FEB8114220817NOV58 m.;x\MkQ 19NOV8615325920OCT8017224717NOV58md.>0\MkQkQ 19NOV8615325920OCT8017263317NOV58mI.\MkQ"S 19NOV8615325920OCT8017292017NOV58m.36oME  19NOV8615330010FEB8114422017NOV58m.oMk  19NOV8615330005OCT8510333017NOV58m .&oM  19NOV8615330017DEC8409203517NOV58m.$ZoM 19NOV8615330110FEB8114423217NOV58mf.6oMkQ 19NOV8615330110FEB8114473817NOV58mJ.*BoM^ 19NOV8615330205NOV8113124017NOV58m^.?xQ zkQ 19NOV8615330229MAR7917503217NOV58m.d|Q3 _ 19NOV8615330201APR8112105617NOV58nV.؈9>T<  19NOV8615330328OCT8514185517NOV58nR.F?T( 19NOV8615330323MAR8211014217NOV58n.؈J?Tp!  19NOV8615330328OCT8514194817NOV58n&:.FL^o'`  19NOV8615330413AUG8618162417NOV58n5.L^o'` <19NOV8615330413AUG8618082717NOV58nWE.؈Q++|_[v[ 19NOV8615330429AUG8614205917NOV58*n.@8_kQ 19NOV8615330505DEC8017252217NOV58CnY.,._OqE  19NOV8615330505DEC8014364117NOV58Fnc._Oqk  19NOV8615330605OCT8510333717NOV58GnF.H_OqkQ 19NOV8615330608DEC8008320517NOV58Jn.*_Oq^ 19NOV8615330608DEC8008322617NOV58an.9t_Oq{ 19NOV8615330705DEC8015340117NOV58dnm.؈H<_SqkQ 19NOV8615330720OCT8017264217NOV58en..؈Hd\qkQ 19NOV8615330820OCT8017264417NOV58 ny.D`kf, 19NOV8615330805SEP8617194617NOV58nv>.Ldkf [ 19NOV8615330805SEP8617565717NOV58nH.K*Iq  19NOV8615330903SEP8617305617NOV58n5.36^qyE  19NOV8615330910FEB8110425617NOV58n~.^qyk  19NOV8615331005OCT8510334317NOV58n.^qy  19NOV8615331004FEB8115255617NOV58nL.$Z^qy 19NOV8615331004FEB8115274617NOV58n%.58^qykQ 19NOV8615331110FEB8114015117NOV58n.*,^qy^ 19NOV8615331104FEB8115235917NOV58nU.76xkQ 19NOV8615331113AUG8618385617NOV58lQh.*6x^ 19NOV8615331201APR8112102617NOV58lYj.NAykQ 19NOV8615331212JUL8518234917NOV58l n~.(Ay^ 19NOV8615331312JUL8518243117NOV58n .8zy}kQ 19NOV8615331313AUG8618580817NOV58n.*zy}^ 19NOV8615331301APR8112104417NOV58n.@Hy{L}  19NOV8615331426APR8413574217NOV58nl.,}@Q< 19NOV8615331420FEB8110130617NOV58n9v.`}Q}v  19NOV8615331524SEP8511414317NOV58n%.\}h}  19NOV8615331524SEP8511471817NOV58n.P bu~Oy}  19NOV8615331529AUG8611203617NOV58 n. Zt:Xy 19NOV8615331631JAN8512191817NOV58nwn. l t:y 19NOV8615331631JAN8512202117NOV58n^.;/DkQ 19NOV8615331720OCT8017265217NOV58n̟./!kQ 19NOV8615331720OCT8017265317NOV58n$.#/ykQ 19NOV8615331820OCT8017265517NOV58n.؈36ЅE  19NOV8615331819OCT8110002617NOV58nF.Ѕk  19NOV8615331905OCT8510334917NOV58nP.؈&Ѕ  19NOV8615331919OCT8110002817NOV58nM.؈$ZЅ 19NOV8615331919OCT8110002717NOV58nS.؈6ЅkQ 19NOV8615332019OCT8110002417NOV58n.؈*BЅ^ 19NOV8615332005NOV8113125017NOV58nȚ.$ry 19NOV8615332120OCT8017225017NOV58n.<ykQ 19NOV8615332220OCT8017265617NOV58n .*Hy^ 19NOV8615332320OCT8017283617NOV58nPUFDӎz@؈P.@؈C d[ 19NOV8615332305NOV8015571617NOV58n=Q.@؈J  & 19NOV8615332429AUG8009330217NOV58 o.@؈S [ 19NOV8615332413OCT8210172417NOV58oq.@Heme 19NOV8615332414SEP8613451617NOV588oR.@؈B[  19NOV8615332413FEB8110364517NOV58;oo,.@؈ OR'8< 19NOV8615332414MAY8015262417NOV58=o.@؈ T< < 19NOV8615332416JUL8115303217NOV58Bo.@؈F[ 19NOV8615332511FEB8115070417NOV58Co8.@؈KTiR[ 19NOV8615332523DEC8013072917NOV58Ho}%.@؈M [r 19NOV8615332509MAR8118003317NOV58 NoB.@؈K`Y[ 19NOV8615332526AUG8215324417NOV58[o.@؈Lz[ 19NOV8615332526AUG8215324717NOV58ko.@؈S8}[ 19NOV8615332513OCT8209575117NOV58qo{.@؈PP[ 19NOV8615332617APR8515024117NOV58o=.@؈PP/d 19NOV8615332616JAN8512151117NOV58o,.@؈'z0[ 19NOV8615332628JUL8210291917NOV58oF2.@؈'Ì[ 19NOV8615332628JUL8210290517NOV58oe6.@؈Pw*[ 19NOV8615332615FEB8017135417NOV58o.@؈K^%[ 19NOV8615332611FEB8115373517NOV58o.@؈Gx5&[ 19NOV8615332711FEB8115135617NOV58o.@؈>&[ 19NOV8615332711FEB8115441617NOV58o{.@؈?**Pb'[ 19NOV8615332730DEC8215091717NOV58)o .@؈H@'l[ 19NOV8615332713FEB8011262717NOV58oc.@؈Kv:[ 19NOV8615332804SEP8018100617NOV58o.@؈QB:ra 19NOV8615332815NOV8509571817NOV58o`.@؈Ql:rr 19NOV8615332815NOV8509410717NOV58pߙ.@؈E:rp  19NOV8615332815NOV8509594317NOV58uq˅.@؈L {L}[ 19NOV8615332822JAN8210590917NOV58 |q.@؈E *{L}r 19NOV8615332922JAN8210582817NOV58q .@؈K\N[ 19NOV8615332915FEB8017135517NOV58qC.@؈mvQt  19NOV8615332924DEC8211121217NOV58qr.@؈TvQt[ 19NOV8615332924DEC8211531017NOV58qrq.@؈F{Qv@[ 19NOV8615332922JAN8215262417NOV58s<.@؈>/d[ 19NOV8615333020FEB8112135117NOV58s.@؈k he~W  19NOV8615333016JUL8115242717NOV58s&.@؈ke~X  19NOV8615333016JUL8115243017NOV58(s.@؈Ib g N 19NOV8615333013FEB8111105417NOV58/sZ.@؈Hq[ 19NOV8615333119FEB8109571617NOV58Fsr/.@Q Iq  19NOV8615333114SEP8613443717NOV58Is.@Q Iq [ 19NOV8615333114SEP8613460317NOV58Rsg.@O"Iq r 19NOV8615333114SEP8613455617NOV58[s:.@؈Hr[ 19NOV8615333117APR8515024717NOV58bs4=.@؈Rr/d 19NOV8615333217APR8515241617NOV58js.@؈LXEyL[ 19NOV8615333215OCT8214505317NOV58rs.@؈; zr 19NOV8615333209MAR8118005017NOV58 s.@؈X}} 19NOV8615333316JUL8115313117NOV58s.@؈} x}}& 19NOV8615333329AUG8009414917NOV58 s..@؈2|}}' 19NOV8615333316JUL8115284517NOV58s.@؈ }}(}< 19NOV8615333328JAN8011293317NOV58sW.@؈P $}~v< 19NOV8615333301JAN8611214117NOV58 s9.@؈ OH}}< 19NOV8615333418OCT7915582817NOV58 sl.@؈ OR}+< 19NOV8615333412MAY7718393717NOV58s.PDATADATADATADATADATADATADATADATADATADATADATADATADATADATADATADATADATADATADATADATAP0R@؈ } SUBROUTINE CMND(RETCD)#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY. INCLUDE 'VKLUGPRM.FTN'C PARAMETER RRW = 32C PARAMETER RCL = 32C RRW=MAX REAL ROWSC RCL=MAX REAL COLS:C RRW MUST BE 1 LARGER TO HANDLE 1ST 27 VARIABLES IN AVBLS#C VBLS AND TYPE DIMENSIONED RRW,RCL7C ***************************************************7C * *7C * SUBROUTINE CMND *7C * *7C ***************************************************CC1C UPON ENTRANCE, NONBLK POINT TO THE "*" IN LINE?C INDICATING A COMMAND. THIS ROUTINE DETERMINES WHICH COMMAND3C IS DESIRED AND CALLS THE APPROPRIATE SUBROUTINE.C C RETCD: C 1=NORMAL>C 2=BYPASS NEXT READ BECAUSE READ COMMAND HAS BEEN EXECUTED C TO CHANGE LINE(80)(C 3=ERROR, SO GO TO 1000 TO SET LEVEL=1CCC MODIFY CLASSES: M1CCC CMND CALLSC-C AT TO PROCESS A FILE OF CALC COMMANDS3C BASCNG TO CHANGE THE DEFAULT BASE FOR CONSTANTS&C CLOSE CLOSE FILE OF CALC COMMANDS5C DECLR DECLARE VAIABLES TO BE A CERTAIN DATA TYPE C ERRMSG PRINTS ERROR MESSAGES%C EXIT RETURN TO OPERATING SYSTEM,C GETNNB GETS NEXT NON-BLANK FROM LINE(80)3C STRCMP LOOKS FOR A SPECIFIED STRING IN LINE(80)C ZERO ZEROES ALL VARIABLES2C ZNEG TO SEE IF A VARIABLE HAS POSITIVE VALUECCC4C CMND IS CALLED BY CALC WHO HAS IDENTIFIED THE '*'#C INDICATING A COMMAND IS DESIRED.CCCCC VARIABLE USECC 2C CHAR TEMPORARILY HOLDS A SINGLE CHARACTER.2C DIGITS HOLDS ASCII REPRESENTATION OF DIGITS.C I TEMPORARY INDEX.5C ID ARGUMENT FOR SUBROUTINE DECLR. INDICATES$C A PARTICULAR DATA TYPE."C IPT POINTER FOR LINE(80).2C ITCNTV 0 IF NO ITERATION. IF POSITIVE, INDEXAC OF VARIABLE USED TO CONTROL ITERATION ON THAT LEVEL.6C KIND(15) HOLDS FIRST LETTER OF ALL LEGAL COMMANDS.BC LEVEL HOLDS LOGICAL I/O UNIT WHERE NEXT COMMAND COMES FROM. C LINE(80) HOLDS COMMAND LINE."C NONBLK POINTER FOR LINE(80).C RETCD HOLDS RETURN CODE.C RETCD2 HOLDS RETURN CODE.C VIEWSW VIEW SWITCH:C 0 = OFF&C 1 = DISPLAY COMMAND LINES-C 2 = DISPLAY VALUE OF EXPRESSIONSC 3 = DISPLAY ALLCCC C SUBROUTINE CMND(RETCD)CC INTEGER*2 LEVEL,NONBLK,LEND% INTEGER*2 RETCD,RETCD2,VIEWSW,BASED INTEGER*2 IOLVL COMMON/IOLVL/IOLVL INTEGER*2 ZNEG,ITCNTV(6)( INTEGER*2 PROW,PCOL,DROW,DCOL,DRWV,DCLV* COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRWV,DCLV LOGICAL*1 WRK2(128)BC DEFINE SOME LARGER ARRAYS TO NULL TERMINATE WRK AND WRK2 ARRAYS. LOGICAL*1 WRKX(130),WRK2X(130) EQUIVALENCE(WRK(1),WRKX(1)) EQUIVALENCE(WRK2(1),WRK2X(1))2 LOGICAL*1 AVBLS(20,27),WRK(128),VBLS(8,RRWP,RCLP)" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9) REAL*8 XAC,XVBLS(RRWP,RCLP) INTEGER*4 JVBLS(2,RRWP,RCLP) EQUIVALENCE(XAC,AVBLS(1,27))& EQUIVALENCE(VBLS(1,1,1),JVBLS(1,1,1))$ EQUIVALENCE(VBLS(1,1,1),XVBLS(1,1)) COMMON/V/TYPE,AVBLS,VBLS,VLEN LOGICAL*1 FVLD(RRWP,RCLP) COMMON/FVLDC/FVLDC< LOGICAL*1 LINE(80),KIND(23),ASCII(4),DEC(6),HEX(2),INT(6),1 ; M10(2),M8(1),M16(2),OCTAL(4),REAL(3),CHAR LOGICAL*1 DIGITS(16,3)C, COMMON LEVEL,LINE,NONBLK,LEND,VIEWSW,BASED COMMON /ITERA/ITCNTV COMMON /DIGV/ DIGITSC DATA KINDB 1/'@','A','B','C','D','E','H','I','M','N','O','R','S','V','Z'' 2,'P','W','G','Q','F','J','X','U'/4C NOTE PWGQFJX ADDED BY GCE FOR PORTACALC INTERFACE.;C FREE: K,U,Y, + SPECIAL CHARACTERS (LIKE .,;'"#$%^, ETC.)< DATA ASCII/'S','C','I','I'/, DEC/'E','C','I','M','A','L'/1 DATA HEX/'E','X'/, INT/'N','T','E','G','E','R'/ DATA M10/'1','0'/, M8/'8'/ DATA M16/'1','6'/ DATA OCTAL/'C','T','A','L'/ DATA REAL/'E','A','L'/ DATA WRKX/130*0/,WRK2X/130*0/CCC'C PICK UP NON-BLANK CHARACTER AF00RDATADATADATADATADATADATADATADATADATADATATER '*' RETCD=1 CALL GETNNB(IPT,RETCD2) GOTO(2,4),RETCD2 STOP 2 2 NONBLK=IPT1C NONBLK POINTS TO 1ST NONBLANK CHARACTER AFTER *C DO 3 I=1,23$ IF (LINE(NONBLK).EQ.KIND(I)) GOTO 6 3 CONTINUECCC UNIDENTIFIED COMMAND 4 GOTO 995CCC>C GO TO DIFFERENT SECTIONS ON THE BASIS OF THE FIRST CHARACTERC OF THE COMMAND.36 GOTO (10,20,30,1000,40,50,60,70,80,90,100,110,50,2 1 130,140,210,220,250,290,330,360,480,780),I STOP 6CCCC4C **************************************************4C ***** *@ INDIRECT COMMAND PROCESSING ******4C **************************************************10 CALL AT(RETCD) GOTO (1000,999),RETCD STOP 10CCCC4C **************************************************4C ****** *A DECLARE TYPE ASCII ******4C **************************************************20 CALL STRCMP (ASCII,4,RETCD2) ID=1 GOTO (200,995),RETCD2 STOP 20CCCC4C **************************************************4C ****** *B BASE DEFAULT *******4C ************************************************** 30 CONTINUE CALL BASCNG(RETCD2)! IF(VIEWSW.NE.0)WRITE(1,34) BASED!34 FORMAT(' DEFAULT BASE IS ',I2) GO TO (1000,999),RETCD2 STOP 30CCCC:C ********************************************************:C ** *C COMMENT, JUST RETURN (VIA STATEMENT 1000) **:C ********************************************************CCC4C **************************************************4C ******* *D DECLARE TYPE DECIMAL *******4C **************************************************40 CALL STRCMP(DEC,6,RETCD2) ID=2 GOTO (200,995),RETCD2 STOP 40CC4C **************************************************4C ********** *E EXIT ********4C ************************************************** 50 CONTINUEEC SET RETCD=4 ON EXIT IF EXIT COMMAND, SO CALC RETURNS TO ITS CALLER. IF (LEVEL.EQ.1) RETCD=4 IF (LEVEL.EQ.1) RETURNC IF (LEVEL.EQ.1) CALL EXIT IF(ITCNTV(LEVEL).EQ.0)GOTO 55$ IF(ZNEG(ITCNTV(LEVEL)).EQ.1)GOTO 556C ITERATION VARIABLE IS POSITIVE SO EXECUTE FILE AGAIN REWIND LEVEL GO TO 1000C:C NOTE THAT WHEN EXITING A LEVEL THAT WAS ITERATED, ITCNTV8C IS NOT SET TO ZERO. THIS REQUIRES THAT WHEN ENTERED AT;C SUBROUTINE 'AT' AND ITERATION IS NOT DESIRED, THAT ITCNTVC MUST BE SET TO ZERO THERE55 CALL CLOSE(LEVEL) LEVEL=LEVEL-1 59 GOTO 1000CCCCC4C **************************************************4C * *H DECLARE VARIABLES TO BE OF TYPE HEXADECIMAL *4C **************************************************60 CALL STRCMP (HEX,2,RETCD2) ID=3 GOTO (200,995),RETCD2 STOP 60CCCC4C **************************************************4C * *I DECLARE VARIABLE TO BE OF TYPE INTEGER (*4) *4C **************************************************70 CALL STRCMP (INT,6,RETCD2) ID=4 GOTO (200,995),RETCD2 STOP 70CC4C **************************************************4C * *M DECLARE VARIABLE TO BE MULTIPLE PRECISION *4C **************************************************80 CALL STRCMP (M10,2,RETCD2) ID=5 GOTO (200,84),RETCD2 STOP 80CC%C SEE IF MULTIPLE PRECISION IS OCTAL84 CALL STRCMP (M8,1,RETCD2) ID=6 GOTO (200,88),RETCD2 STOP 84CC(C SEE IF MULTIPLE PRECISION HEXADECIMAL88 CALL STRCMP (M16,2,RETCD2) ID=7 GOTO (200,995),RETCD2 STOP 88CCCC>C ************************************************************>C ** *N SUPPRESS PRINTING OF VARIABLES WHEN VALUES CHANGE **>C ************************************************************ 90 VIEWSW=1 GOTO 1000CCCC4C **************************************************4C *** *O DECLARE VARIABLE TO BE OF TYPE OCTAL ***4C ************************************************** 100 CALL STRCMP (OCTAL,4,RETCD2) ID=8 GOTO (200,995),RETCD2 STOP 100CCCCC4C **************************************************4C *********** *R ENCOUNTERED *************4C ****00R@؈ }**********************************************CC *R SEE IF A REAL DECLARATION110 CALL STRCMP (REAL,3,RETCD2) ID=9 GOTO (200,114),RETCD2 STOP 110CC&C OTHERWISE ASSUME A READ IS REQUIRED114 IF (LEVEL.NE.1) GOTO 117 WRITE(1,116) GOTO 118116 FORMAT(' CALR>',$)117 WRITE (1,119) LEVEL119 FORMAT (' CALC<',I1,'>',$)&118 READ (1,115,END=1000,ERR=990) LINE115 FORMAT (80A1)C?C NOTE THAT IF IS HIT AS THE ONLY INPUT, RETURN IS NORMAL.C AND PROCESSING CONTINUES ON LEVEL (RETCD=2) RETCD=2 GOTO 1000CCCCC>C ************************************************************>C *** *V ACTIVATE PRINTING OF VARIABLE WHEN VALUES CHANGE ***>C ************************************************************129 NONBLK=IPT130 CALL GETNNB(IPT,RETCD2) GO TO (129,132),RETCD2 STOP 130132 CHAR=LINE(NONBLK)" IF(CHAR.NE.DIGITS(10,1))GO TO 134CC *VIEW 0 ENCOUNTERED VIEWSW=0 GO TO 1000$134 IF(CHAR.NE.DIGITS(1,1))GO TO 136CC *VIEW 1 ENCOUNTERED VIEWSW=1 GO TO 1000$136 IF(CHAR.NE.DIGITS(2,1))GO TO 138 VIEWSW=2 GO TO 1000 138 VIEWSW=3 GOTO 1000CCCC4C **************************************************4C ********** *Z ZERO OUT ALL VARIABLES ********4C ************************************************** 140 CALL ZERO GOTO 1000CCCCCC MAKE DECLARATIONS200 CALL DECLR(ID,RETCD2) GO TO(1000,999),RETCD2 STOP 200CCCCCC **** ERROR PROCESSING ****C990 I=27 REWIND LEVEL GO TO 998995 I=3998 CALL ERRMSG(I) 999 RETCD=3 1000 CONTINUE RETURN 5C P COMMAND - SET PLACEMENT OF PHYSICAL POSN IN SHEET)C *P WILL PROMPT FOR INPUTS OF LOCATIONS.C 210 CONTINUEC RETCD=19C IF THE COMMAND IS *P VAR THEN SET TO VARIABLE LOCATION. KK1=3 KK2=20 IF(LINE(3).EQ.'@')GOTO 2179C ONLY LOOK IN COLS 3-20. COLUMNS 1,2 ARE THE *W COMMAND.* CALL VARSCN(LINE,KK1,KK2,KEK,KK,KKK,IVLD) IF(IVLD.NE.0)GOTO 216 GOTO 218 217 CONTINUE4C ALLOW *W@V1,V2 TO GOTO LOCATION OF V1,V2 (COL,ROW).C THIS ALLOWS PROGRAMMED ACCESS TO VARIABLES. L1=4 L2=60. CALL VARSCN(LINE,L1,L2,LSTCH,ID1A,ID2A,IVLD1) IF(IVLD1.EQ.0)GOTO 1000! CALL TYPGET(ID1A,ID2A,TYPE(1,1)) IF(TYPE(1,1).EQ.2)GOTO 219& CALL JVBLGT(1,ID1A,ID2A,JVBLS(1,1,1)) LCL=JVBLS(1,1,1) GOTO 2200 219 CONTINUE" CALL XVBLGT(ID1A,ID2A,XVBLS(1,1)) LCL=XVBLS(1,1) 2200 CONTINUECC NOW HAVE COLUMN NUMBER. PASS DELIMITER (WHATEVER IT IS) AND GO ON L1=LSTCH+1 L2=60-C ASSUME WE GET THERE WITHIN 60 CHARACTERS.... CALL VARSCN(LINE,L1,L2,LSTCH,ID1B,ID2B,IVLD2) IF(IVLD2.EQ.0)GOTO 1000$C SEEMS LIKE OK VARIABLE... GO AHEAD! CALL TYPGET(ID1B,ID2B,TYPE(1,1))& CALL JVBLGT(1,ID1B,ID2B,JVBLS(1,1,1)) LRW=JVBLS(1,1,1)4 IF(TYPE(1,1).EQ.2)CALL XVBLGT(ID1B,ID2B,XVBLS(1,1))! IF(TYPE(1,1).EQ.2)LRW=XVBLS(1,1)(C ADJUST FOR ACCUMULATOR ROW BY ADDING 1 LRW=LRW+1@C NOW HAVE COLUMN AND ROW NUMBERS. GET VARIABLE USING THEM AFTERC CLAMPING TO MAX VALUES. LCL=MAX0(1,LCL) LRW=MAX0(1,LRW) LCL=MIN0(LCL,RRW) LRW=MIN0(LRW,RCL) KK=LCL KKK=LRW GOTO 216 218 CONTINUE IF(LEVEL.EQ.1)WRITE(1,211)$211 FORMAT(' SET PHYS LOC. COLUMN=')" READ(LEVEL,212,END=700,ERR=700)KK212 FORMAT(I7) IF(LEVEL.EQ.1)WRITE(1,213)"213 FORMAT(' SET PHYS LOC. ROW =')# READ(LEVEL,212,END=700,ERR=700)KKK KKK=KKK+1216 KK=MAX0(1,KK) KKK=MAX0(1,KKK) KK=MIN0(RRW,KK) KKK=MIN0(RCL,KKK)C CLAMP TO LEGAL SIZE PROW=KK PCOL=KKK RETURN 700 CONTINUE REWIND LEVEL IF(ITCNTV(LEVEL).EQ.0)GOTO 55$ IF(ZNEG(ITCNTV(LEVEL)).EQ.1)GOTO 55 RETURNBC W COMMAND - WRITE % TO CURRENT PHYSICAL LOC IN SHEET. USE E32.25 C FORMAT.BC DOES NOT PROMPT. THEREFORE, IF USED INSIDE SPREADSHEET, HAS THEBC EFFECT OF CONVERTING CURRENT CELL'S FORMULA TO A LITERAL NUMBERCC AND FREEZING IT THAT WAY. THEREFORE A FORMULA CONTAINING *W WILLDC NORMALLY ONLY EXECUTE THE *W ONCE (AFTERWARDS BEING OVERWRITTEN).C 220 CONTINUE RETCD=1C IRX=(PCOL-1)*RRW+PROW CALL REFLEC(PCOL,PROW,IRX) CALL WRKFIL(IRX,WRK,0) IF(LINE(300RDATADATADATADATADATADATADATADATADATADATA).EQ.'F')GOTO 224C READ(7'IRX)WRKC GET RECORD INTO MEMORY ENCODE(35,221,WRK,ERR=225)XAC/C PUT VARIABLE VALUE AS STRING INTO FILE BUFFER221 FORMAT(E32.25) GOTO 225 224 CONTINUEC WRITE AND USE LOCAL FORMAT WRK2(1)='(' DO 226 K=1,9226 WRK2(K+1)=WRK(119+K) WRK2(11)=')' WRK2(12)=03C FAILS IF MORE THAN 40 CHARACTERS FILLED BY FORMAT ENCODE(40,WRK2,WRK,ERR=225)XAC 225 CONTINUE DO 222 K=36,110 222 WRK(K)=32 CALL WRKFIL(IRX,WRK,1)C WRITE(7'IRX)WRK RETURNC C *G SEEN.BC THE SYNTAX OF *G IS *G V1,V2 WHICH WILL GET VALUE OF VBLS(G1,G2)AC AND LOAD IT INTO %. THE DIMENSIONS ARE CLAMPED TO LEGAL BOUNDS=C AND TYPE=4 MEANS USE INTEGER, TYPE=2 CONVERTS VARIABLES TO*C INTEGER. CALLS VARSCN TO DO THIS STUFF.'C THIS GIVES A MEASURE OF INDIRECTION. 250 CONTINUE RETCD=1C SAY ALL'S WELL. L1=3 L2=60. CALL VARSCN(LINE,L1,L2,LSTCH,ID1A,ID2A,IVLD1) IF(IVLD1.EQ.0)GOTO 1000! CALL TYPGET(ID1A,ID2A,TYPE(1,1)) IF(TYPE(1,1).EQ.2)GOTO 251& CALL JVBLGT(1,ID1A,ID2A,JVBLS(1,1,1)) LCL=JVBLS(1,1,1) GOTO 252%251 CALL XVBLGT(ID1A,ID2A,XVBLS(1,1)) LCL=XVBLS(1,1) 252 CONTINUECC NOW HAVE COLUMN NUMBER. PASS DELIMITER (WHATEVER IT IS) AND GO ON L1=LSTCH+1 L2=60-C ASSUME WE GET THERE WITHIN 60 CHARACTERS.... CALL VARSCN(LINE,L1,L2,LSTCH,ID1B,ID2B,IVLD2) IF(IVLD2.EQ.0)GOTO 1000$C SEEMS LIKE OK VARIABLE... GO AHEAD& CALL JVBLGT(1,ID1B,ID2B,JVBLS(1,1,1))! CALL TYPGET(ID1B,ID2B,TYPE(1,1)) LRW=JVBLS(1,1,1)4 IF(TYPE(1,1).EQ.2)CALL XVBLGT(ID1B,ID2B,XVBLS(1,1))! IF(TYPE(1,1).EQ.2)LRW=XVBLS(1,1)(C ADJUST FOR ACCUMULATOR ROW BY ADDING 1 LRW=LRW+1@C NOW HAVE COLUMN AND ROW NUMBERS. GET VARIABLE USING THEM AFTERC CLAMPING TO MAX VALUES. LCL=MAX0(1,LCL) LRW=MAX0(1,LRW) LCL=MIN0(LCL,RRW) LRW=MIN0(LRW,RCL)C RETURN VALUE. CALL TYPGET(LCL,LRW,TYPE(1,1))+ IF(TYPE(1,1).EQ.2)CALL XVBLGT(LCL,LRW,XAC)6 IF(TYPE(1,1).NE.2)CALL JVBLGT(1,LCL,LRW,JVBLS(1,1,1))# IF(TYPE(1,1).NE.2)XAC=JVBLS(1,1,1)@C USE IMPLICIT CONVERSION FROM FORTRAN HERE. NOTE WE RETURN WITHC THE LOOKED UP VALUE IN XAC. RETURNCC *Q QUERY DATABASE COMMANDCCHC THIS COMMAND IS DESIGNED TO PERMIT CALC TO ACCESS SEQUENTIAL (FOR NOW)EC FILES AND PULL IN VALUES. ARRAY WRK IS USED TO HOLD THE RECORDS AND"C MAY DISPLAY WHATEVER IS DESIRED.CC OPERATION IS AS FOLLOWS:C#C *Q[W/F] filespec ?KEYSTRING? JC WHERE THE W/F FLAG MEANS WRITE TO FORMULA AT CURRENT LOC (MAYBE MODIFIEDKC EARLIER BY THE *P COMMAND) AND F FLAG MEANS RETURN % AS VALUE OBTAINED BYCC ATTEMPTING A DECODE ON THE FILE LINE BETWEEN DELIMITER CHARACTERS>C cc GIVEN INSIDE [] CHARACTERS. FILE IS ASSUMED TO START WITH@C "KEYSTRING" WHERE ANY CHARACTER IS A MATCH EXACTLY EXCEPT THAT'C THE _ CHARACTER INDICATES A WILDCARD.C SPECIAL CASES:FC IF ` IS 1ST CHAR OF KEYSTRING, RECORDS MUST HAVE KEYSTRING STARTINGC AT COL 1 (EXCLUDING THE `)<C IF STRING HAS ` AS 1ST CHARACTER, THEN IT IS OF FORMDC <`NM> WHERE N=ASCII CODE FOR COLUMN WANTED + 32 AND M = ASCII CODEC FOR LENGTH DESIRED + 326C THIS ALLOWS POSITIONAL RETRIEVAL (THOUGH PAINFULLY)CMC A SECOND KEYSTRING MAY BE ENTERED INSIDE A SECOND PAIR OF ? CHARACTERS TOO.HC THE SEARCH WILL SEEK THE KEYS ANYWHERE IN THE RECORDS READ, UP TO 128C CHARACTERS LONG EACH.8C SECOND KEYSTRING MAY NOT BE ANCHORED TO START OF LINE.C AS AN ADDED ATTRACTION:CC *QFK OR *QFN WON'T CLOSE LUN 4 AT END. IN ADDITION *QFN WON'TAC CLOSE IT AT START EITHER ALLOWING SEQUENTIAL RETRIEVALS OUT OF"C DATA FILES. DITTO *QW VARIANTS.CC 290 CONTINUE RETCD=1C IRX=(PCOL-1)*RRW+PROW CALL REFLEC(PCOL,PROW,IRX)"C IF(LINE(3).EQ.'W')READ(7'IRX)WRK) IF(LINE(3).EQ.'W')CALL WRKFIL(IRX,WRK,0), IF(LINE(3).NE.'W'.AND.LINE(3).NE.'F')RETURN IL=INDEX(LINE,32) IF(IL.GT.40)GOTO 299 IL2=INDEX(LINE(IL+1),32) IF(IL2.GT.38)GOTO 299C ENSURE LUN 4 AVAILABLE3 IF(LINE(4).NE.'C'.AND.LINE(4).NE.'N')CLOSE(UNIT=4) LINE(IL2+IL)=0& IF(LINE(4).NE.'N'.AND.LINE(4).NE.'C')" 1 CALL ASSIGN(4,LINE(IL+1))%C THIS MAKES LUN 4 BE THE ON00R@؈ }E WE WANTT LINE(IL2+IL)=32 IQ1=INDEX(LINE,'?')C LOCATE THE KEY IF(IQ1.GE.70)GOTO 299 IQ2=INDEX(LINE(IQ1+1),'?')C IF(IQ2.GE.72)GOTO 299-C NOW KNOW KEY IS IQ2-1 LONG, STARTS AT IQ1+1'CU/C ALLOW DOUBLE KEYS IF ANOTHER ?? PAIR IS SEEN.  KEYS2=0 IQ3=INDEX(LINE(IQ1+IQ2+1),'?')C IF(IQ3.GT.3)GOTO 297A)C WELL, THERE'S A 2ND STRING THERE MAYBE. # IQ4=INDEX(LINE(IQ3+IQ1+IQ2+1),'?')  IF(IQ4.GT.30)GOTO 297 IF(IQ4.EQ.1)GOTO 297* KEYS2=1/C FLAG WE HAVE A SECOND KEY. SOMETHING'S THERE.  LCL=IQ3+IQ2+IQ1+1 LRW=LCL+IQ4-1#297 READ(4,332,END=299,ERR=299)WRK2 IQQ=IQ2-1 IXX=128-IQ28C COMPARE THE ENTIRE RECORD FOR THE KEY, MATCH ANYWHERE. IF(LINE(IQ1+1).NE.'`')GOTO 376UGC IF 1ST CHAR OF KEY IS ` THEN SEARCH BEGINS AT LINE START ONLY. KEY IS C 1 LESS.E IQ1=1+IQ1 IXX=1 IQQ=IQQ-1"C ADJUST SO SEARCH IS 1 CHAR LESS. 376 CONTINUE DO 350 KKK=1,IXX1* CALL SCMP(LINE(IQ1+1),WRK2(KKK),IQQ,ICOD) IF(ICOD.NE.0)GOTO 351 350 CONTINUEC DON'T JUST FALL THRU GOTO 353 351 CONTINUE IF(KEYS2.EQ.0)GOTO 353Y9C CHECK SECOND KEY STRING IN RECORD IF ANY WAS ASKED FOR.C#C (THAT'S ALL YOU GET. 2 KEYS MAX.)N&C LINE(LCL) TO LINE(LRW) CONTAINS KEY. IXY=128-IQ4+1 ICC=IQ4-1 DO 354 KKK=1,IXY ( CALL SCMP(LINE(LCL),WRK2(KKK),ICC,ICOD) IF(ICOD.NE.0)GOTO 355 354 CONTINUE 355 CONTINUE353 IF(ICOD.EQ.0)GOTO 297S;C HERE FOUND THE KEYED RECORD. NOW EXAMINE COMMAND LINE FOR =C SPECIAL CHARACTERS. IF NONE, JUST COPY THE FIRST CHARACTERSL4C IN THE TEXT INTO EITHER THE BUFFER OR ENCODE THEM. IQ1=INDEX(LINE,'<') IF(IQ1.GT.75)GOTO 296 IQ2=INDEX(LINE(IQ1+1),'>')' IF(IQ2.GT.8)GOTO 296N KKQ=LINE(IQ1+1).AND.255 KK=INDEX(WRK2,KKQ) C KK=INDEX(WRK2,LINE(IQ1+1))CC MUNGE THE SEARCH SO THAT IF THE SPECIAL CHAR IS ` THEN THE NEXT 2EDC CHARACTERS HAVE START AND LENGTH ENCODED AS ASCII CODE -32 DECIMALGC WHICH ALLOWS FIELDS TO BE PLACED ANYWHERE (THOUGH SOMEWHAT PAINFULLY).( IF(LINE(IQ1+1).EQ.'`')KK=LINE(IQ1+2)-32 IF(KK.GT.125)GOTO 299(C NOTE THAT THE KEY FORM WOULD THEN GIVEJC <`!@> FOR START COLUMN=1 AND LENGTH =32 (ASCII 64 = @ AND ASCII 33 = !)FC THIS MEANS USER HAS TO KNOW ASCII ORDER BUT AT LEAST IT'S IN MANUAL.) IF(LINE(IQ1+1).EQ.'`')KKK=LINE(IQ1+3)-32S KKQ=LINE(IQ1+2).AND.2553 IF(LINE(IQ1+1).NE.'`')KKK=INDEX(WRK2(KK+1),KKQ)+KKO<C IF(LINE(IQ1+1).NE.'`')KKK=INDEX(WRK2(KK+1),LINE(IQ1+2))+KK GOTO 295 296 CONTINUEC DEFAULT, NO SPECIAL CHARS. KK=0N KKK=110 295 CONTINUE KL=KKK-KK-1 KK=KK+1 IF(LINE(3).NE.'W')GOTO 294A KL=MIN0(KL,109) DO 293 N=1,KL WRK(N)=WRK2(KK) 293 KK=KK+1V WRK(KL+1)=01C WRITE OUT THE RECORD'S KEY PART INTO SHEET FILE2 CALL WRKFIL(IRX,WRK,1)VC WRITE(7'IRX)WRK, XAC=1. GOTO 2982 294 CONTINUE C FLOAT THE VALUE, RETURN IN XAC# DECODE(KL,221,WRK2(KK),ERR=299)XAC1 298 CONTINUE:C IF IT'S A KEEP OR NEXT TYPE OPERATION, LEAVE LUN 4 OPEN.<C FIRST ONE MUST BE A KEEP (TO OPEN FILE IN THE FIRST PLACE)8C AND SUBSEQUENT OPERATIONS MAY BE A N OPERATIONS, WHICH;C WILL JUST CONTINUE SEQUENTIAL READIN OF DATA. USER HAS TOV9C KEEP TRACK. NOTE RETURN VALUE IS -999999. (6 9'S) IF WEWC FAIL AND HAVE TO CLOSE FILE.+ IF(LINE(4).EQ.'K'.OR.LINE(4).EQ.'N')RETURN1 CLOSE(UNIT=4) RETURN, 299 CONTINUE,C RETURN -999999 IF WE FAIL IN FINDING FILE. XAC=-999999. CLOSE(UNIT=4)5C COME HERE FOR NON-RECOVERABLE ERRORS IN FORMAT TOO.E RETURN6C,C *F LABEL GOTO LABEL COMMAND (CONDITIONAL)CCL#C THE SYNTAX OF THE *F COMMAND IS :L C *F LABELB;C WITH THE OPERATION OF LOCATING A LINE BEGINNING WITH THED8C STRING "*CLABEL" (SO IT IS PASSED OVER BY NORMAL CALC6C PROCESSING). THE INPUT FILE ON IOLVL IS REWOUND AND9C SCANNING GOES TO THE EOF OR UNTIL THE STRING IS FOUND.L%C RETCD=2 IF NO SUCH LABEL IS FOUND. CR<C AS A FURTHER AID, IF THE % VARIABLE IS 0 OR NEGATIVE, THEC COMMAND IS IGNORED. 330 CONTINUE RETCD=1 IF(XAC.LE.0)RETURN' REWIND IOLVLD&333 READ(IOLVL,332,END=331,ERR=331)WRK332 FORMAT(128A1)O+ IF(WRK(1).NE.'*'.OR.WRK(2).NE.'C')GOTO 333L ISSL=2  ISSS=20 IF(LINE(3).EQ.' ')ISSL=3 IF(WRK(3).EQ.' ')ISSS=3) CAL00RDATADATADATADATADATADATADATADATADATADATAL SCMP(LINE(ISSL),WRK(ISSS),80,ICODE)R IF(ICODE.EQ.0)GOTO 333 RETURN3C ERROR ENTRY WHERE WE SEE WE FAILED TO FIND LABEL.C 331 CONTINUE IF(IOLVL.NE.5)CLOSE(UNIT=IOLVL) IOLVL=5 RETCD=2 RETURNNC<C *J LABEL - JUST LIKE *F LABEL BUT ON CALC'S COMMAND FILES.*C I.E., FINDS A LINE STARTING WITH *CLABELJC (NOTE IT STARTS FROM START OF FILE AND DOES THIS ONLY IF % IS POSITIVE).:C ITERATION OF COMMAND FILES REMAINS UNDER NORMAL CONTROL. 360 CONTINUE RETCD=1 IF(XAC.LE.0)RETURN* REWIND LEVEL*$363 READ(LEVEL,362,END=55,ERR=55)WRK362 FORMAT(128A1)C+ IF(WRK(1).NE.'*'.OR.WRK(2).NE.'C')GOTO 363* ISSL=2* ISSS=2* IF(LINE(3).EQ.' ')ISSL=3G IF(WRK(3).EQ.' ')ISSS=3) CALL SCMP(LINE(ISSL),WRK(ISSS),80,ICODE)* IF(ICODE.EQ.0)GOTO 363* RETURN* C *X COMMANDC X[C] FILESPEC CELLNAME >C READS FILESPEC AS A SAVED SPEADSHEET (NUMERIC OR FORMULA)@C AND LOADS ITS VALUE INTO CURRENT CELL AND % ACCUMULATOR. DOES3C NOT LOAD FORMULA UNLESS F SEEN. THUS 2 VARIANTS:*0C *XF FILESPEC CELLNAME LOAD FORMULA AND VALUE$C *XV FILESPEC CELLNAME LOAD VALUEMC NOTE ANY CHARACTER AFTER *X THAT ISN'T "F" IS EQUIVALENT TO V FOR EASY USE. 480 CONTINUE RETCD=1C NOW GET THE ARGS JFFG=0L IF(LINE(3).EQ.'F')JFFG=10C NOW HAVE FORMULA FLAG. IQ3=4C ALLOW 1 SPACE OPTIONALLY IF(LINE(IQ3).EQ.' ')IQ3=5 IQ1=INDEX(LINE(IQ3),32) IQ1=IQ1+IQ3-1JC NULL TERMINATE FILENAME WHILE PARSING IT (DON'T LET ASSIGN SEE VBL NAME) LINE(IQ1)=0 CLOSE(UNIT=4,ERR=9770)*9770 CALL ASSIGN(4,LINE(IQ3))*&C REPLACE THE SPACE FOR VARSCN'S SIGHT LINE(IQ1)=32*AC IQ1 NOW HAS START INDEX FOR VARSCN DESIRED... GO GET VRBL NAME.  KK1=IQ1 KK2=IQ1+20I* CALL VARSCN(LINE,KK1,KK2,KEK,KK,KKK,IVLD) IF(IVLD.LE.0)GOTO 481-C GOT VALID VARIABLE NAME. KK,KKK ARE ROW,COL 9C NOW WE KNOW HOW TO RETRIEVE THE DATA OFF FILE IN UNIT 4*%C READ INTO WRK ARRAY TILL WE GET IT.N IQ3=KK IQ4=KKK-1483 READ(4,332)WRKC IGNORE TITLE 486 CONTINUE@C NOTE WE READ IN THE NUMBER IN NUMERIC FORMAT. EASIER THAT WAY.8 IF(JFFG.EQ.0)READ(4,484,END=488,ERR=488)IRRW,ICCL,XYVAL3 IF(JFFG.NE.0)READ(4,489,END=488,ERR=488)IRRW,ICCL,B 1 (WRK(IV),IV=1,110)484 FORMAT(X,I5,X,I5,X,D30.19)489 FORMAT(X,I5,X,I5,X,110A1)I< READ(4,485,END=488,ERR=488)LFVLD,(WRK(IV),IV=120,128),KKTYPFC ALLOW FLAG OF 3 FOR NUMERIC,RECALCULATE... 2 FOR NUMERIC, NO RECALC.)C 1 CONTINUES TO MEAN ALWAYS RECALCULATE.Z IF(LFVLD.LT.-1)LFVLD=-3 IF(LFVLD.GT.1)LFVLD=3CG485 FORMAT(I3,X,9A1,X,I5)9C READS IN AN ENTRY OF SAVED SHEET. TEST IF IN OUR RANGE. ( IF(IRRW.EQ.IQ3.AND.ICCL.EQ.IQ4)GOTO 487 GOTO 486* 487 CONTINUE(C SUCCESS. NOW FILL IN VALUE OR FORMULA.C IRX=(PCOL-1)*RRW+PROW CALL REFLEC(PCOL,PROW,IRX)2 WRK(118)=115 WRK(119)=LFVLD* CALL FVLDST(PROW,PCOL,LFVLD)*C FVLD(PROW,PCOL)=LFVLDCC SET UP TO SAVE FORMULA. C SAVE EITHER FORMULA OR VALUE.*C IF(JFFG.NE.0)WRITE(7'IRX)WRK$ IF(JFFG.NE.0)CALL WRKFIL(IRX,WRK,1) IF(JFFG.NE.0)GOTO 488C SET UP NUMBER IF HERE. CALL TYPSET(PROW,PCOL,KKTYP)*C TYPE(PROW,PCOL)=KKTYP* CALL FVLDST(PROW,PCOL,LFVLD)PC FVLD(PROW,PCOL)=LFVLD* CALL XVBLST(PROW,PCOL,XYVAL)*C XVBLS(PROW,PCOL)=XYVAL XAC=XYVAL 488 CONTINUE CLOSE(UNIT=4) RETURNS 481 CONTINUE CLOSE(UNIT=4) RETCD=2 RETURNCC *U FUNCTION ARGSC HANDLE USER FUNCTION CALL... 780 CONTINUE RETCD=1BC PASS LINE AND ARGS TO SUBROUTINE TO PARSE (EXTERNALIZE THE WORK)-C COMMON /V/ HAS DATA NEEDED FOR ARGUMENTS... CALL USRFCT(LINE,RETCD):C IF RETCD CHANGES IN USRFCT THIS ALLOWS ERROR CODES BACK. RETURN  END8C STRING COMPARE 2 ARRAYS UNTIL EITHER ENDSTRING IS SEENC ON ONE OR MISMATCH IS SEEN.*& SUBROUTINE SCMP(LINA,LINB,LENM,ICODE) DIMENSION LINA(1),LINB(1) LOGICAL*1 LINA,LINB ICODE=1 DO 1 N=1,LENM' IF(LINA(N).EQ.0.OR.LINB(N).EQ.0)GOTO 2FC ALLOW _ TO BE A WILDCARD.*+ IF(LINA(N).EQ.'_'.OR.LINB(N).EQ.'_')GOTO 1  IF(LINA(N).NE.LINB(N))ICODE=0 IF(ICODE.NE.1)GOTO 2E 1 CONTINUE 2 CONTINUE RETURN END00RR } SUBROUTINE CODES4#C COPYRIGHT (C) 1983 GLENN EVERHART(@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY.I INCLUDE 'VKLUGPRM.FTN' C PARAMETER RRW = 32C PARAMETER RCL = 32C RRW=MAX REAL ROWSPC RCL=MAX REAL COLS :C RRW MUST BE 1 LARGER TO HANDLE 1ST 27 VARIABLES IN AVBLS#C VBLS AND TYPE DIMENSIONED RRW,RCLAC CI2C THIS FILE GIVES THE VARIABLE AND FUNCTION CODES.5C TABLE ALSO GIVES COMPARE VALUES AND STACK VALUES OFS6C FUNCTIONS THAT OCCUR WHEN EXPRESSIONS ARE EVALUATED.(C THIS FILE CONTAINS NO COMPILABLE CODE.C3C:C THE OPERATOR COMPARE AND STACK VALUES ARE DEFINED WITHIN>C THE SUBROUTINE INPOST BY THE DATA STATEMENT FOR OPVAL(200,2)CFCYCSCKCFCNC STACK'C ELEMENT COMPARE STACKC CODE TYPE BYTES VALUE VALUEC C 0 UNDEFINED - - -C 1 ASCII 1 - -C 2 DECIMAL 8 - -C 3 HEXADECIMAL 4 - -)C 4 INTEGER 4 - -C 5 MULT.PREC.(10) 20 - -EC 6 MULT.PREC.(8) 20 - -C 7 MULT.PREC.(16) 20 - -UC 8 OCTAL 4 -C 9 REAL 8 - -CC 10-30 UNDEFINED - - -ACH!C ----------FUNCTIONS------------RCCC 31 ABS (=DABS) - 70 45C 32 IABS - 70 45C 33 FLOAT - 70 45IC 34 IFIX - 70 45C 35 AINT - 70 45C 36 INT (=IDINT) - 70 45'C 37 EXP (=DEXP) - 70 45C 38 ALOG (=DLOG) - 70 455C 39 ALOG10(=DLOG10) - 70 45C 40 SQRT (=DSQRT) - 70 45C 41 SIN (=DSIN) - 70 45C 42 COS (=DCOS) - 70 45C 43 TANH (=DTANH) - 70 45C 44 ATAN (=DATAN) - 70 45C 45 RESERVED - - -CC 46 RESERVED - - -FC 47 RESERVED - - -YC 48 RESERVED - - -TC 49 RESERVED - - -EC 50-100 RESERVED - - -1C 110 ( - 70 15C 111 UNARY - - 50 49C 112 ** - 40 39DC 113 * - 30 31C 114 / - 30 31C 115 + - 20 21C 116 - - 20 21C 117 ) - 10 - C 200 = - 10 10 RETURN  END4 SUBROUTINE CONTYP (STACK,INDEX,OLDTYP,NEWTYP,RETCD)#C COPYRIGHT (C) 1983 GLENN EVERHART @C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY.A INCLUDE 'VKLUGPRM.FTN'EC PARAMETER RRW = 32C PARAMETER RCL = 32C RRW=MAX REAL ROWSTC RCL=MAX REAL COLSE:C RRW MUST BE 1 LARGER TO HANDLE 1ST 27 VARIABLES IN AVBLS#C VBLS AND TYPE DIMENSIONED RRW,RCLA4C **************************************************4C * *4C * SUBROUTINE CONTYP *4C * *4C **************************************************C CT<C CONVERTS CONSTANT IN STACK(I,INDEX) FROM OLDTYP TO NEWTYP4C IF OLDTYP.EQ.NEWTYP A RETURN IS MADE IMMEDIATELY.7C NOTE THAT TYPE(INDEX) IS NOT CHANGED BY THIS ROUTINEC TYPE CODES:C C 0 NO CHANGE C 1 ASCII C 2 DECIMAL-C 3 HEXADECIMAL1 C 4 INTEGER C 5 M10EC 6 M8C 7 M16 C 8 OCTAL1C 9 REALC C RETCD MEANINGCLC 1 O.K. C 2 ERRORECEC CACHC C MODIFY CLASSES: M3,M4,M8RCCC CAC CONTYP CALLS:C &C ERRMSG PRINTS OUT ERROR MESSAGES>C MULCON CONVERTS MULTIPLE PRECISION TO MULTIPLE PRECISION C OF A DIFFERENT BASECOC=CGC CONTYP IS CALLED BYCO(C CALUN CALCULATES UNARY OPERATIONS)C CALBIN CALCULATES BINARY OPERATIONS-C CC3CNC VARIABLE USECA=C BASE HOLDS BASE OR POWERS OF THAT BASE (INTEGER*4).F.C BASVEC HOLDS LEGAL BASES: 8,10, AND 169C EIGHT(8) LOGICAL*1 ARRAY TO PICK OFF REAL*8 VALUES. <C FOUR(4) LOGICAL*1 ARRAY TO PICK OFF INTEGER*4 VALUES. C I,J,M TEMPORARY VALUES.@C IBASE HOLDS BASE OF A NUMBER WHEN BASE HOLDS THE POWERSC OF THAT BASE.AC IEND HOLDS THE NUMBER OF MULTIPLE PRECISION DIGITS THAT(>C WILL BE PICKED UP WHEN CONVERTING TO INTEGER*4.3C INDEX POINTER TO VARIABLE BEING CONVERTED.NBC INT HOLDS INTEGER*4 VALUES 00RDATADATADATADATADATADATADATADATADATADATAEQUIVALENCED TO VECTOR FOUR.BC IS TEMPORARILY HOLDS MULTIPLE PRECISION BASE 8 OR BASEC 16 DIGITS.0EC IS2 TEMPORARILY HOLDS A DIGIT VALUE WHEN CHECKING MULTIPLEBC PRECISION BASE 8 AND BASE 16 NUMBERS TO SEE IF THEY1C ARE TOO LARGE TO FIT IN INTEGER*4.CC ISGN USED WHEN DETERMINING THE MAXIMUM NUMBER THAT CAN BEKEC HELD BY INTEGER*4. 1=POSITIVE, 2= NEGATIVE. ALSO HOLDSLDC 0 OR 7 FOR BASE 8 MAXIMUM NUMBER CHECK. HOLDS 0 OR 150C FOR BASE 16 MAXIMUM NUMBER CHECK.2C K TEMPORARILY HOLDS INTEGER*4 VALUES.'C NEWTYP NEW DATA TYPE REQUESTED. 9C OLDTYP DATA TYPE OF THE VARIABLE TO BE CONVERTED.VFC RBASE BASE WHEN CONVERTING FROM MULTIPLE PRECISION TO REAL*8.@C REAL HOLDS REAL*8 VALUES. EQUIVALENCED TO ARRAY EIGHT.,C RETCD RETURN CODE. 1=O.K. 2=ERROR.BC RPOWER HOLDS POWERS OF RBASE WHEN CONVERTING FROM MULTIPLE#C PRECISION TO REAL*8.T2C STACK(I,INDEX) HOLDS VARIABLE TO BE CONVERTED.C C CECCW5C SUBROUTINE CONTYP (STACK,INDEX,OLDTYP,NEWTYP,RETCD)VC REAL*8 REAL,RBASE,RPOWER,DFLOATCE INTEGER*4 K,INT,BASEOCS. INTEGER*2 OLDTYP,NEWTYP,RETCD,BASVEC(3),INDEX INTEGER*2 MAX10(10,2) INTEGER*2 I,M,J INTEGER*2 ISGN,IS,IS2CI LOGICAL*1 EIGHT(8),FOUR(4)A LOGICAL*1 STACK(20,40) C $ EQUIVALENCE (FOUR,INT),(REAL,EIGHT)CA DATA BASVEC/10,8,16/T4 DATA MAX10/2,1,4,7,4,8,3,6,4,7,2,1,4,7,4,8,3,6,4,8/C CDC SET DEFAULT RETURN CODE RETCD=1 IF(OLDTYP.GT.0)GO TO 910.C.C VARIABLE UNDEFINED CALL ERRMSG(16) RETCD=2 RETURN.C'CIC=910 IF(NEWTYP.EQ.0) RETURN IF (OLDTYP.EQ.NEWTYP) RETURNS< GOTO (1000,2000,3000,3000,4000,5000,6000,3000,2000), OLDTYP STOP 1000CWCACDC CDCB4C **************************************************4C ************** OLDTYP = ASCII ******************4C **************************************************C #C START BY CONVERTING TO INTEGER*4T 1000 CONTINUEACOCI0C IF INTEGER, HEXADECIMAL OR OCTAL, ALMOST DONE DO 1002 I=2,20L1002 STACK(I,INDEX)=0 6 IF (NEWTYP.EQ.3.OR.NEWTYP.EQ.4.OR.NEWTYP.EQ.8) RETURNCWC CE DO 1008 I=1,41008 FOUR(I)=STACK(I,INDEX) * IF (NEWTYP.EQ.2.OR.NEWTYP.EQ.9) GOTO 1200C'CGC MULTIPLE PRECISIONS1010 BASE=BASVEC (NEWTYP-4)= STACK(20,INDEX)=0 IF (INT.GE.0) GOTO 1014 STACK(20,INDEX)=11014 DO 1020 I=1,190 K=INT/BASER STACK(I,INDEX)=IABS(INT-K*BASE) INT=K 1020 CONTINUEA RETURNECSCSC DECIMAL OR REAL1200 REAL=DFLOAT(INT)D DO 1210 I=1,81210 STACK(I,INDEX)=EIGHT(I) RETURNOCCNCL4C **************************************************4C ********* OLDTYP = DECIMAL OR REAL *************4C **************************************************CH+2000 IF (NEWTYP.EQ.2.OR.NEWTYP.EQ.9) RETURN*C8CO DO 2002 I=1,82002 EIGHT(I)=STACK(I,INDEX)CICIC ZERO STACK(I,INDEX) DO 2004 I=1,20F2004 STACK(I,INDEX)=0 CCCPC CONVERT TO INTEGER.'C MAKE SURE CONVERSION DOESN'T BLOW UPI4 IF(REAL.LT.-2147483648.D0.OR.REAL.GT.2147483647.D0) 1 GOTO 6050CSCVCN 2007 INT=REAL)C%C SEE IF NEWTYP IS MULTIPLE PRECISIONH+ IF (NEWTYP.GE.5.AND.NEWTYP.LE.7) GOTO 1010  DO 2008 I=1,42008 STACK(I,INDEX)=FOUR(I) CG*C RETURN IF TYPE IS INTEGER, HEX, OR OCTAL6 IF (NEWTYP.EQ.3.OR.NEWTYP.EQ.4.OR.NEWTYP.EQ.8) RETURNC4$C ASCII SO CLEAR OUT BYES 2,3, AND 42009 DO 2010 I=2,42010 STACK(I,INDEX)=0  RETURNOCFC CUC CCE4C **************************************************4C ******* OLDTYP = INTEGER, HEX, OR OCTAL ********4C **************************************************CA:3000 IF (NEWTYP.EQ.3.OR.NEWTYP.EQ.4.OR.NEWTYP.EQ.8) RETURN DO 3002 I=1,43002 FOUR(I)=STACK(I,INDEX)8CRC SEE IF NEWTYP IS ASCII IF (NEWTYP.EQ.1) GOTO 2009,CX?C IF NOT REAL*8 THEN IT IS MULTIPLE PRECISION (PROCESS AT 1010)=+ IF (NEWTYP.NE.2.AND.NEWTYP.NE.9) GOTO 1010 CGC PROCESS AS REAL*8A GOTO 1200CRCMCCCOCCC.C CO4C ********************************************00RR }******4C ************* OLDTYP = M10 *********************4C **************************************************CN 4000 CONTINUEI IF (NEWTYP.NE.1) GOTO 4020)COC7C ASCII IBASE=10T 4004 INT=0 BASE=1F DO 4005 I=1,3 INT=INT+BASE*STACK(I,INDEX)4005 BASE=BASE*IBASE DO 4010 I=2,20C4010 STACK(I,INDEX)=0V STACK(1,INDEX)=FOUR(1)F RETURNECPC CECR?4020 IF (NEWTYP.NE.3.AND.NEWTYP.NE.4.AND.NEWTYP.NE.8) GOTO 4099ICW"C CONVERT TO INTEGER,HEX OR OCTAL 4021 IBASE=10N INT=0$ IF (STACK(20,INDEX).NE.0) GOTO 4080 BASE=1OCC>C SEE IF NUMBER EXCEEDS MAXIMUM THAT CAN BE HELD IN INTEGER*44026 DO 4027 I=11,19" IF(STACK(I,INDEX).NE.0)GO TO 6050 4027 CONTINUER ISGN=1X IF(BASE.EQ.-1)ISGN=2O J=11 DO 4030 I=1,10R J=J-1/ IF (STACK(J,INDEX).EQ.MAX10(I,ISGN)) GOTO 4030/ IF (STACK(J,INDEX).GT.MAX10(I,ISGN)) GOTO 6050. GOTO 4032 4030 CONTINUE 4032 IEND=10CSC 3C MAKE THE CALCULATIONS WHICH CONVERT FROM MULTIPLE/C PRECISION TO INTEGER*44040 DO 4045 I=1,IENDT INT=INT+STACK(I,INDEX)*BASE#4045 IF (I.NE.IEND) BASE=BASE*IBASEB DO 4050 I=5,19E4050 STACK(I,INDEX)=0ACY4052 DO 4055 I=1,44055 STACK(I,INDEX)=FOUR(I)M RETURNEC CSCOCNC IF NUMBER IS NEGATIVE 4080 BASE=-1 STACK(20,INDEX)=0 GOTO 4026CICCOC1CDC /4099 IF (NEWTYP.NE.2.AND.NEWTYP.NE.9) GOTO 4200LC CO(C MULTIPLE PRECISION TO REAL OR DECIMAL4100 REAL=0.D0 RBASE=1.D0I RPOWER=DFLOAT(BASVEC(OLDTYP-4))& IF (STACK(20,INDEX).NE.0) RBASE=-1.D0CCTC FIND HIGH ORDER DIGIT DO 4120 I=1,19E K=20-I*# IF (STACK(K,INDEX).NE.0) GOTO 4122* 4120 CONTINUE* K=1CVCSC CALCULATE REAL*8 VALUE4122 DO 4128 I=1,K M=STACK(I,INDEX)* REAL=REAL+DFLOAT(M)*RBASE IF (I.NE.K) RBASE=RBASE*RPOWERP 4128 CONTINUE C*C PROPERLY UPDATE STACK* DO 4134 I=9,20*4134 STACK(I,INDEX)=0T DO 4136 I=1,84136 STACK(I,INDEX)=EIGHT(I) RETURNTC1CC 4200 CONTINUE*C*9C CONVERT TO ANOTHER BASE BUT STILL AS MULTIPLE PRECISION . CALL MULCON (STACK,INDEX,OLDTYP,NEWTYP,RETCD) RETURNC CCCCCC"C4C **************************************************4C ************** OLDTYP = M8 *********************4C **************************************************C 5000 CONTINUECCPC NEWTYP=ASCII IBASE=8 IF (NEWTYP.NE.1) GOTO 5020 GOTO 4004CPCRCC 5020 CONTINUE; IF (NEWTYP.NE.3.AND.NEWTYP.NE.4.AND.NEWTYP.NE.8) GOTO 4099C#C CONVERT TO INTEGER, HEX OR OCTAL INT=0 BASE=1$ IF (STACK(20,INDEX).EQ.0) GOTO 5025 BASE=-1 STACK(20,INDEX)=0C>C SEE IF NUMBER EXCEEDS MAXIMUM THAT CAN BE HELD IN INTEGER*45025 DO 5027 I=12,19" IF(STACK(I,INDEX).NE.0)GO TO 6050 5027 CONTINUEC3C MAXIMUM NUMBERS ARE -20000000000 AND +17777777777 IS=STACK(11,INDEX) IS2=1 IF(BASE.EQ.-1)IS2=2 IF(IS.GT.IS2)GO TO 6050 IF(IS.LT.IS2)GO TO 5031 ISGN=7 IF(BASE.LT.0)ISGN=0 J=11 DO 5030 I=1,10 J=J-1& IF (STACK(J,INDEX).EQ.ISGN) GOTO 5030& IF (STACK(J,INDEX).GT.ISGN) GOTO 6050 GOTO 5031 5030 CONTINUE 5031 IEND=11 GO TO 40408C4C **************************************************4C *************** OLDTYP = M16 *******************4C **************************************************C* 6000 CONTINUE* IBASE=16  INT=0 BASE=1R IF (NEWTYP.NE.1) GOTO 6020*C*C*C ASCII DO 6010 I=3,20*6010 STACK(I,INDEX)=0G0 STACK(1,INDEX)=STACK(2,INDEX)*16+STACK(1,INDEX) STACK(2,INDEX)=0, RETURNC C1C, 6020 CONTINUES; IF (NEWTYP.NE.3.AND.NEWTYP.NE.4.AND.NEWTYP.NE.8) GOTO 4099C9#C CONVERT TO INTEGER, HEX OR OCTAL9 INT=0 BASE=1E$ IF (STACK(20,INDEX).EQ.0) GOTO 6025 BASE=-1 STACK(20,INDEX)=0CEC SEE IF MAX. EXCEEDEDO6025 DO 6027 I=9,19L" IF(STACK(I,INDEX).NE.0)GO TO 6050 6027 CONTINUEE-C MAXIMUM NUMBERS ARE +7FFFFFFF AND -80000000  IS=STACK(8,INDEX) IS2=7 IF(BASE.EQ.-1)IS2=8 IF(IS.GT.IS2)GO TO 6050 IF(IS.LT.IS2)GO TO 6031 ISGN=15 IF(BASE.LE.0)ISGN=0 J=8 DO 6030 I=1,7 J=J-1& IF (STACK(J,INDEX).EQ.ISGN) GOTO 6030& IF (STACK(J,INDEX).GT.ISGN) GOTO 6050 GOTO 6031 00RRRRTADATADATADATADATADATA6030 CONTINUE2 6031 IEND=8 GO TO 4040PCRC ***** ERROR RETURN ******L 6050 RETCD=2C ILLEGAL CONVERSION ATTEMPTED.A CALL ERRMSG(26) RETURN0CT END% Policy on Copying AnalytiCalcI AnalytiCalc has been written to eliminate high cost spreadsheets from I the world. To that end, you are encouraged to copy AnalytiCalc for I others. However, AnalytiCalc is copyrighted to ensure that others I may also use it. The copyright is intended to ensure that I AnalytiCalc remain available and imposes certain restrictions on % those who use it for that purpose. I You may use and copy AnalytiCalc upon condition that the copyright is I not removed, that you do not sell it for a profit (though reasonable I copying fees may be charged), and that if you make improvements on I the program, that you send the author machine readable copies of I these. You may modify the program, add to it, or use parts of it in I other works so long as the authorship of those pieces is noted. You I may distribute AnalytiCalc in any desired way, including packaging it I with software that is sold, and incorporate it with other code, I provided that the price charged is not increased by the addition of  the AnalytiCalc component. I You may insert AnalytiCalc into "library" distributions, but you I are asked to inform the author when you do so, in order that the $ distributions be kept up to date. I Finally, AnalytiCalc is distributed without warranty of any I kind. While the author will try to fix problems, he will not be J liable to you for any problems arising from the use of AnalytiCalc. I He will however be grateful for any bug reports and especially for & bug fixes and performance upgrades.  1 Send modified versions or bug reports to:  Glenn C. Everhart 409 High St. Mt. Holly, NJ 08060 -The correlation coefficient of 2 variables is1r = (S(xy) over all x,y 1..N)/sqrt(S(x*x)*S(y*y))0If SXY is sum of Xi*Yi over all i, SX2 is sum of6Xi*Xi and SY2 is sum of Yi*Yi, and SX is sum of Xi andSY is sum of Yi then1r=(N*SXY-SX*XY)/SQRT((N*SX2-SX*SX)*(N*SY2-SY*SY))-h- csc.for Mon Apr 7 16:44:51 1986 ARISIA$DRC0:[003001.TMP]CSC.FOR;2 SUBROUTINE CSC INCLUDE 'TEXT.BLK' C C THIS PROGRAM IS THE CONCEPTUAL SCHEMA COMPILER FOR RIM. CSC C COMPILES RIM CONCEPTUAL SCHEMAS INTO RIM INTERNAL SCHEMAS. ALL C CONCEPTUAL SCHEMAS ARE EXPRESSED IN TERMS OF THE RELATIONAL MODEL. C INCLUDE 'CONST4.BLK' INCLUDE 'CONST8.BLK' INCLUDE 'RMKEYW.BLK' INCLUDE 'RIMCOM.BLK' INCLUDE 'FLAGS.BLK' INCLUDE 'FILES.BLK' INCLUDE 'MISC.BLK' C LOGICAL EQKEYW LOGICAL EQ INTEGER ERROR INTEGER EFLAG,RFLAG INTEGER DBSTAT INCLUDE 'DCLAR2.BLK' INCLUDE 'DCLAR6.BLK' C EFLAG = 0 RFLAG = 0 NUMELE = 0 ERROR = 0 NEWCSN = 0 CALL RMDATE(IDAY) C C SET THE PROMPT CHARACTER TO D (DEFINE) C CALL LXSET(K4PROM,K4DP) C C BEGIN PROCESSING. C WRITE (NOUT,9000) 9000 FORMAT(/,29H BEGIN RIM SCHEMA COMPILATION,/) GO TO 110 C 100 CONTINUE C C EDIT DATA BASE NAME. C CALL L00RR }ODREC C C CHECK FOR END,INPUT, OR HELP C IF(EQKEYW(1,KWEND,3)) GO TO 800 110 CONTINUE IF((EQKEYW(1,KWDEFI,6)).AND.(LXITEM(IDUMMY).EQ.2)) GO TO 120 WRITE (NOUT,9001) 9001 FORMAT(31H -ERROR- MISSING DATA BASE NAME) IF(.NOT.BATCH) GO TO 100 ERROR = ERROR + 1 IF(ERROR.LT.10) GO TO 100 GO TO 950 120 CONTINUE C C CHECK THAT THE NAME IS LESS THAN 6 CHARACTERS. C IF((LXLENC(2).GE.1).AND.(LXLENC(2).LE.6)) GO TO 145 WRITE (NOUT,9002) 9002 FORMAT(39H -ERROR- THE DATABASE NAME MUST BE 1-6 , X 23HALPHANUMERIC CHARACTERS,/) IF(.NOT.BATCH) GO TO 100 ERROR = ERROR + 1 IF(ERROR.LT.10) GO TO 100 GO TO 950 C C STORE DATA BASE NAME C 145 CONTINUE NAMDB = BLANK CALL LXSREC(2,1,8,NAMDB,1) C C CALL RMDBLK TO MAKE SURE THE DATABASE MAY BE MODIFIED C CALL RMDBLK(NAMDB) IF(RMSTAT.NE.0) GO TO 150 CALL RMDBGT(NAMDB,DBSTAT) IF(DBSTAT.NE.0) GO TO 100 CALL RMOPEN(NAMDB) IF((RMSTAT.EQ.15).OR.(RMSTAT.EQ.0)) GO TO 155 150 CALL WARN(RMSTAT,DBNAME,0) GO TO 999 155 CONTINUE NEWCSN = 1 IF(DFLAG) RFLAG = 1 C C EDIT OWNER CLAUSE C 200 CONTINUE CALL LODREC C C CHECK FOR END,INPUT, OR HELP C IF(EQKEYW(1,KWEND,3)) GO TO 800 IF(EQKEYW(1,KWOWNE,5)) GO TO 220 IF((DFLAG).AND.(EQ(OWNER,USERID))) GO TO 350 GO TO 230 C 220 CONTINUE IF(LXITEM(IDUMMY).EQ.2) GO TO 260 230 CONTINUE WRITE (NOUT,9003) 9003 FORMAT(35H -ERROR- AN OWNER MUST BE SPECIFIED) IF(.NOT.BATCH) GO TO 200 ERROR = ERROR + 1 IF(ERROR.LT.10) GO TO 200 GO TO 950 C 260 CONTINUE IF(.NOT.DFLAG) GO TO 290 NAMOWN = BLANK CALL LXSREC(2,1,8,NAMOWN,1) IF(EQ(OWNER,NAMOWN)) GO TO 300 WRITE (NOUT,9004) 9004 FORMAT(59H -ERROR- UNAUTHORIZED ACCESS TO DATA BASE SCHEMA DEFINIT XION) IF(.NOT.BATCH) GO TO 200 ERROR = ERROR + 1 IF(ERROR.LT.10) GO TO 200 GO TO 950 290 CONTINUE IF((LXLENC(2).GE.1).AND.(LXLENC(2).LE.8)) GO TO 295 CALL WARN(7,KWOWNE,BLANK) IF(.NOT.BATCH) GO TO 200 ERROR = ERROR + 1 IF(ERROR.LT.10) GO TO 200 GO TO 950 295 CONTINUE OWNER = BLANK CALL LXSREC(2,1,8,OWNER,1) C C SEARCH FOR ATTRIBUTES, RELATIONS, RULES, PASSWORDS, OR END C 300 CONTINUE CALL LODREC 350 CONTINUE IF(EQKEYW(1,KWELEM,8)) GO TO 400 IF(EQKEYW(1,KWATTR,10)) GO TO 400 IF(EQKEYW(1,KWRELA,9)) GO TO 500 IF(EQKEYW(1,KWRULS,5)) GO TO 600 IF(EQKEYW(1,KWPASS,9)) GO TO 700 IF(EQKEYW(1,KWEND,3)) GO TO 800 C C ERROR. C CALL WARN(4,0,0) IF(.NOT.BATCH) GO TO 300 ERROR = ERROR + 1 IF(ERROR.LT.10) GO TO 300 GO TO 950 C C PROCESS ATTRIBUTES. C 400 CONTINUE CALL LODELE(NUMELE,ERROR) EFLAG = 1 GO TO 350 C C C PROCESS RELATIONS. C 500 CONTINUE IF(DFLAG) GO TO 525 IF(EFLAG.EQ.1) GO TO 525 WRITE (NOUT,9005) 9005 FORMAT(' -ERROR- NO ATTRIBUTES DEFINED - RELATION DEFINITION I' X'S IMPOSSIBLE') C 9005 FORMAT(66H -ERROR- NO ATTRIBUTES DEFINED - RELATION DEFINITION IS C XIMPOSSIBLE) ERROR = ERROR + 1 GO TO 300 525 CONTINUE CALL LODREL(NUMELE,ERROR) RFLAG = 1 GO TO 350 C C PROCESS RULES. C 600 CONTINUE IF(RFLAG.EQ.1) GO TO 625 WRITE (NOUT,9006) 9006 FORMAT(74H -ERROR- RELATIONS AND ATTRIBUTES MUST BE DEFINED IN ORD XER TO DEFINE RULES) ERROR = ERROR + 1 GO TO 300 C C 625 CONTINUE CALL LODRUL GO TO 350 C C PROCESS PASSWORDS. C 700 CONTINUE IF(RFLAG.EQ.1) GO TO 725 WRITE (NOUT,9007) 9007 FORMAT(63H -ERROR- RELATIONS MUST BE DEFINED IN ORDER TO ASSIGN PA XSSWORDS) ERROR = ERROR + 1 GO TO 300 C 725 CONTINUE CALL LODPAS(ERROR) GO TO 350 C C PROCESS END. C 800 CONTINUE C C SET THE RETURN CODE AND MAKE SURE A SCHEMA HAS BEEN DEFINED C NEXTOP = K8RIM IF(NEWCSN.EQ.0) GO TO 999 IF(.NOT.BATCH) ERROR = 0 IF(ERROR.NE.0) GO TO 950 WRITE (NOUT,90000RRRRTADATADATADATADATADATA8) DBNAME 9008 FORMAT(/,28H RIM SCHEMA COMPILATION FOR ,A8,12H IS COMPLETE,/) C C BUFFER THE SCHEMA AND DATABASE OUT C DFLAG = .TRUE. IFMOD = .TRUE. CALL RMOPEN(DBNAME) IF(RMSTAT.NE.0) CALL WARN(RMSTAT,DBNAME,0) GO TO 999 C C ERROR PROCESSING. C 950 CONTINUE WRITE (NOUT,9009) 9009 FORMAT(43H -WARNING- ERRORS IN RIM SCHEMA COMPILATION) DFLAG = .TRUE. IFMOD = .TRUE. CALL RMOPEN(DBNAME) IF(RMSTAT.NE.0) CALL WARN(RMSTAT,DBNAME,0) C C RETURN. C 999 CONTINUE C C RESET THE PROMPT CHARACTER TO R C CALL LXSET(K4PROM,K4RP) CALL BLKCLR(10) RETURN END -h- intcon.fsp Mon Apr 7 16:44:51 1986 ARISIA$DRC0:[003001.TMP]INTCON.FSP;2 SUBROUTINE INTCON(INTOPT) INCLUDE 'TEXT.BLK' C C PURPOSE: THIS ROUTINE PROMPTS THE USER FOR THE EXECUTION C OPTION DESIRED (CREATE,UPDATE OR QUERY) AND CALLS C THE APPROPRIATE SUBROUTINES. C C PARAMETERS: INTOPT - MENU MODE OPTION CODE C 4HMENU - DISPLAY MENU C 3HCRE -- CREATE MODE C 3HUPD -- UPDATE MODE C 3HQUE -- QUERY MODE C INCLUDE 'RMATTS.BLK' INCLUDE 'RMKEYW.BLK' INCLUDE 'CONST4.BLK' INCLUDE 'FLAGS.BLK' INCLUDE 'FILES.BLK' INCLUDE 'RIMCOM.BLK' INCLUDE 'MISC.BLK' C INTEGER DBSTAT LOGICAL EQKEYW INCLUDE 'DCLAR2.BLK' C C ****************************************************** C C I N I T I A L I Z A T I O N C C ****************************************************** C NAMDB = DBNAME IF((INTOPT.EQ.K4CRE).OR.(INTOPT.EQ.K4UPD)) GO TO 150 IF(INTOPT.EQ.K4LOD) GO TO 255 C C REQUEST THE EXECUTION OPTION - IDBT C IDBT = 1: CREATE A NEW DATABASE C IDBT = 2: UPDATE AN EXISTING DATABASE C IDBT = 3: QUERY C IDBT = 4: COMMAND MODE C IDBT = 5: EXIT C IDBT = 0 100 WRITE(NOUT,110) 110 FORMAT(/,1X,35HSelect the execution option desired,/ 1 5X,24H1) CREATE a new database,/ 2 5X,30H2) UPDATE an existing database,/ 3 5X,29H3) QUERY an existing database,/ 4 5X,21H4) Enter COMMAND mode,/ 5 5X, 7H5) Exit,/) CALL LXLREC(DUM1,0,LXERR) IXID1 = LXID(1) IF(IXID1.EQ.K4EOF) GO TO 998 IXREC1 = 0 IF(IXID1.EQ.KZINT) IXREC1 = LXIREC(1) IF(EQKEYW(1,KWQUIT,4)) GO TO 997 IF(EQKEYW(1,KWEXIT,4)) GO TO 998 IDBT = IXREC1 IF(IDBT.EQ.4) GO TO 400 IF(IDBT.EQ.5) GO TO 998 IF(IDBT.GT.0.AND.IDBT.LT.5) GO TO 120 WRITE(NOUT,8001) GO TO 100 C C REQUEST THE DATABASE NAME - NAMDB C 120 WRITE(NOUT,130) 130 FORMAT(/,1X,30HEnter the NAME of the database,/) CALL LXLREC(DUM1,0,LXERR) IXID1 = LXID(1) IF(IXID1.EQ.K4EOF) GO TO 120 IXREC1 = LXWREC(1,1) IF(EQKEYW(1,KWQUIT,4)) GO TO 997 IXLEN = LXLENC(1) IF((IXID1.EQ.KZTEXT).AND.(IXLEN.LE.6)) GO TO 140 WRITE(NOUT,8002) GO TO 120 140 NAMDB = BLANK CALL LXSREC(1,1,8,NAMDB,1) IF(IDBT.NE.1) GO TO 180 C C CREATE MODE - CALL INTDEF TO DEFINE THE SCHEMA C INTOPT = K4CRE C C CHECK THAT THE DATABASE MAY BE MODIFIED C CALL RMDBLK(NAMDB) IF(RMSTAT.NE.0) GO TO 215 CALL INTDEF(NAMDB,INTOPT) IF(INTOPT.EQ.0) GO TO 100 GO TO 999 C C DETERMINE IF THE DATABASE IS TO BE LOADED INTERACTIVELY C 150 CONTINUE C C DETERMINE IF THE DATABASE IS TO BE LOADED C 160 WRITE(NOUT,170) 170 FORMAT(/,1X,41HDo you want to LOAD the database - Y or N,/) CALL LXLREC(DUM1,0,LXERR) IXID1 = LXID(1) IF(IXID1.EQ.K4EOF) GO TO 260 IXREC1 = 0 IF(IXID1.EQ.KZINT) IXREC1 = LXIREC(1) IF(IXID1.EQ.KZTEXT) IXREC1 = LXWREC(1,1) IF(EQKEYW(1,KWQUIT,4)) GO TO 997 IF(IXREC1.EQ.K4Y) GO TO 250 IF(IXREC1.EQ.K4N) GO TO 260 WRITE(NOUT,8004) GO TO 160 C C QUERY AND UPDATE MODE - GET THE DATABASE C 180 CONTINUE CALL RMDBGT(NAMDB,DBSTAT) IF(DBSTAT.EQ.0) GO TO 200 IF(DBSTAT.EQ.1) GO TO 100 GO TO 997 200 CO00SR }NTINUE C C CHECK THAT USER DATABASE NAME MATCHES THE FILE DATABASE NAME C CALL RMOPEN(NAMDB) IF(RMSTAT.EQ.0) GO TO 210 CALL WARN(RMSTAT,NAMDB,0) RMSTAT = 0 GO TO 120 210 CONTINUE IF(IDBT.EQ.3) GO TO 300 C C CHECK THAT THE DATABASE MAY BE MODIFIED C CALL RMDBLK(NAMDB) IF(RMSTAT.EQ.0) GO TO 220 215 CALL WARN(RMSTAT,NAMDB,0) RMSTAT = 0 GO TO 100 C C REQUEST THE UPDATE OPTION C 1 -- DEFINE ADDITIONAL RELATIONS C (BRANCH TO THE DEFINE SECTION) C 2 -- LOAD ADDITIONAL DATA C (BRANCH TO THE LOAD SECTION) C 220 WRITE(NOUT,230) 230 FORMAT(/,1X,32HSelect the UPDATE option desired,/ 1 5X,30H1) Define additional relations,/ 2 5X,23H2) Load additional data,/) CALL LXLREC(DUM1,0,LXERR) IXID1 = LXID(1) IF(IXID1.EQ.K4EOF) GO TO 220 IXREC1 = 0 IF(IXID1.EQ.KZINT) IXREC1 = LXIREC(1) IF(IXID1.EQ.KZTEXT) IXREC1 = LXWREC(1,1) IF(EQKEYW(1,KWQUIT,4)) GO TO 997 IF(IXREC1.EQ.1) GO TO 240 IF(IXREC1.EQ.2) GO TO 250 WRITE(NOUT,8003) GO TO 220 C C ADD NEW RELATIONS C 240 CONTINUE INTOPT = K4UPD CALL INTDEF(NAMDB,INTOPT) IF(INTOPT.EQ.0) GO TO 100 GO TO 999 C C LOAD ADDITIONAL DATA C 250 CONTINUE INTOPT = 0 255 CONTINUE CALL INTLOD(INTOPT) IF(INTOPT.EQ.K4QUE) GO TO 260 GO TO 999 C C DETERMINE IF THE DATABASE IS TO BE QUERIED C 260 CONTINUE C C DETERMINE IF THE DATABASE IS TO BE QUERIED C 270 WRITE(NOUT,280) NAMDB 280 FORMAT(/,1X,5HThe ",A7,35H" Database has been created/updated,/,/, 1 1X,48HDo you want to QUERY the database at this time -, 2 7H Y or N,/) CALL LXLREC(DUM1,0,LXERR) IXID1 = LXID(1) IF(IXID1.EQ.K4EOF) GO TO 100 IXREC1 = 0 IF(IXID1.EQ.KZINT) IXREC1 = LXIREC(1) IF(IXID1.EQ.KZTEXT) IXREC1 = LXWREC(1,1) IF(IXREC1.EQ.K4QUIT) GO TO 997 IF(IXREC1.EQ.K4Y) GO TO 300 IF(IXREC1.EQ.K4N) GO TO 100 WRITE(NOUT,8004) GO TO 270 C C QUERY C 300 CONTINUE WRITE(NOUT,310) 310 FORMAT(/,1X,16HRIM Command mode,/) INTOPT = K4QUE GO TO 999 C C COMMAND MODE C 400 CONTINUE INTOPT = K4COM WRITE(NOUT,310) GO TO 999 C C QUIT C 997 CONTINUE INTOPT = K4QUIT GO TO 999 C C EXIT C 998 CONTINUE INTOPT = K4EXIT CALL RMCLOS 999 CONTINUE RETURN C C ERROR MESSAGES --------------------------------------- C 8001 FORMAT(/,1X,49H-ERROR- Either "1","2","3" or "4" must be entered, 1 /) 8002 FORMAT(/,1X,38H-ERROR- The database NAME must be 1-6 , 1 23Halphanumeric characters,/) 8003 FORMAT(/,1X,41H-ERROR- Either "1" or "2" must be entered,/) 8004 FORMAT(/,1X,41H-ERROR- Either "Y" or "N" must be entered,/) C END -h- joirel.fsp Mon Apr 7 16:44:51 1986 ARISIA$DRC0:[003001.TMP]JOIREL.FSP;2 SUBROUTINE JOIREL INCLUDE 'TEXT.BLK' C C THIS ROUTINE FINDS THE JOIN OF TWO RELATIONS BASED UPON JOINING C TWO ATTRIBUTES. THE RESULT FROM THIS PROCESS IS A PHYSICAL C RELATION WHICH HAS TUPLES CONTRUCTED FROM BOTH RELATIONS C WHERE THE SPECIFIED ATTRIBUTES MATCH AS REQUESTED. C C THE SYNTAX FOR THE JOIN COMMAND IS: C C JOIN REL1 USING ATT1 WITH REL2 USING ATT2 FORMING REL3 WHERE EQ C INCLUDE 'RMATTS.BLK' INCLUDE 'RMKEYW.BLK' INCLUDE 'CONST4.BLK' INCLUDE 'FLAGS.BLK' INCLUDE 'RIMCOM.BLK' INCLUDE 'TUPLER.BLK' INCLUDE 'TUPLEA.BLK' INCLUDE 'FILES.BLK' INCLUDE 'BUFFER.BLK' INCLUDE 'WHCOM.BLK' INCLUDE 'MISC.BLK' C INTEGER PTABLE LOGICAL EQ LOGICAL NE LOGICAL EQKEYW INCLUDE 'DCLAR1.BLK' INCLUDE 'DCLAR3.BLK' C C CALL RMDBLK TO MAKE SURE THE DATABASE MAY BE MODIFIED C CALL RMDBLK(DBNAME) IF(RMSTAT.EQ.0) GO TO 40 CALL WARN(RMSTAT,DBNAME,0) GO TO 9999 C C LOCAL ARRAYS AND VARIABLES : C C PTABLE (MATRIX 10) USED TO CONTROL POINTERS C ROWS1,2 -- ATTRIBUTE NAME C ROW3 -- ATTRIBUTE LOCATION IN RELATION 1 C00SRRRTADATADATADATADATADATA ROW4 -- ATTRIBUTE LOCATION IN RELATION 2 C ROW5 -- ATTRIBUTE LOCATION IN RELATION 3 C ROW6 -- LENGTH IN WORDS C ROW7 -- ATTRIBUTE TYPE C C EDIT COMMAND SYNTAX C 40 CONTINUE CALL BLKCLN IF(.NOT.EQKEYW(3,KWUSIN,5)) GO TO 9900 IF(.NOT.EQKEYW(5,KWWITH,4)) GO TO 9900 IF(.NOT.EQKEYW(7,KWUSIN,5)) GO TO 9900 IF(.NOT.EQKEYW(9,KWFORM,7)) GO TO 9900 ITEMS = LXITEM(IDUMMY) C C SET DEFAULT WHERE CONDITION (EQ OR NK = 2) C NK = 2 IF(ITEMS.LE.10) GO TO 50 C C CHECK WHERE COMPARISON. C IF(.NOT.EQKEYW(11,KWWHER,5)) GO TO 9900 NK = LOCBOO(LXWREC(12,1)) IF(NK.EQ.0) GO TO 9900 IF(NK.EQ.1) GO TO 9900 50 CONTINUE C C KEYWORD SYNTAX OKAY C RNAME1 = BLANK CALL LXSREC(2,1,8,RNAME1,1) I = LOCREL(RNAME1) IF(I.EQ.0) GO TO 100 C C MISSING FIRST RELATION. C CALL WARN(1,RNAME1,0) GO TO 9999 100 CONTINUE C C SAVE DATA ABOUT RELATION 1 C I1 = LOCPRM(RNAME1,1) IF(I1.EQ.0) GO TO 110 CALL WARN(9,RNAME1,0) GO TO 9999 110 CONTINUE NCOL1 = NCOL NATT1 = NATT RPW1 = RPW MPW1 = MPW C C CHECK THE COMPARISON ATTRIBUTE. C ANAME1 = BLANK CALL LXSREC(4,1,8,ANAME1,1) I = LOCATT(ANAME1,RNAME1) IF(I.NE.0) CALL WARN(3,ANAME1,RNAME1) IF(I.NE.0) GO TO 9999 RNAME2 = BLANK CALL LXSREC(6,1,8,RNAME2,1) I = LOCREL(RNAME2) IF(I.EQ.0) GO TO 200 C C MISSING SECOND RELATION. C CALL WARN(1,RNAME2,0) GO TO 9999 200 CONTINUE C C SAVE DATA ABOUT RELATION 2 C I2 = LOCPRM(RNAME2,1) IF(I2.EQ.0) GO TO 210 CALL WARN(9,RNAME2,0) GO TO 9999 210 CONTINUE NCOL2 = NCOL NATT2 = NATT RPW2 = RPW MPW2 = MPW C C CHECK THE COMPARISON ATTRIBUTE. C ANAME2 = BLANK CALL LXSREC(8,1,8,ANAME2,1) I = LOCATT(ANAME2,RNAME2) IF(I.NE.0) CALL WARN(3,ANAME2,RNAME2) IF(I.NE.0) GO TO 9999 C C CHECK FOR LEGAL RNAME3 C IF((LXLENC(10).GE.1).AND.(LXLENC(10).LE.8)) GO TO 250 CALL WARN(7,KWRELA,BLANK) GO TO 9999 250 CONTINUE C C CHECK FOR DUPLICATE RELATION 3 C RNAME3 = BLANK CALL LXSREC(10,1,8,RNAME3,1) I = LOCREL(RNAME3) IF(I.NE.0) GO TO 300 C C ERROR C WRITE(NOUT,9000) 9000 FORMAT(55H -ERROR- RESULTANT RELATION DOES NOT HAVE A UNIQUE NAME) GO TO 9999 C C CHECK USER READ SECURITY C 300 CONTINUE IF((I1.NE.0).OR.(I2.NE.0)) GO TO 9999 C C RELATION NAMES OKAY -- CHECK THE ATTRIBUTES C C SET UP PTABLE IN MATRIX POSITION 10 C CALL BLKDEF(10,7,NATT1+NATT2) PTABLE = BLKLOC(10) NATT3 = 0 ICT = 1 C C STORE DATA FROM RELATION 1 IN PTABLE C I = LOCATT(BLANK,RNAME1) DO 500 I=1,NATT1 CALL ATTGET(ISTAT) IF(ISTAT.NE.0) GO TO 500 NATT3 = NATT3 + 1 BUFFER(PTABLE) = IBLANK CALL STRMOV(ATTNAM,1,8,BUFFER(PTABLE),1) BUFFER(PTABLE+2) = ATTCOL BUFFER(PTABLE+4) = ICT NWORDS = ATTWDS BUFFER(PTABLE+5) = ATTLEN IF(NWORDS.EQ.0) NWORDS = 1 ICT = ICT + NWORDS BUFFER(PTABLE+6) = ATTYPE PTABLE = PTABLE + 7 500 CONTINUE C C STORE DATA FROM RELATION 2 IN PTABLE C KATT3 = NATT3 I = LOCATT(BLANK,RNAME2) DO 550 I=1,NATT2 CALL ATTGET(ISTAT) IF(ISTAT.NE.0) GO TO 550 C C FIRST CHECK TO SEE IF ATTRIBUTE IS ALREADY IN PTABLE. C KQ1 = BLKLOC(10) - 7 DO 520 J=1,KATT3 KQ1 = KQ1 + 7 IF(BUFFER(KQ1+3).NE.0) GO TO 520 IF(NE(BUFFER(KQ1),ATTNAM)) GO TO 520 WRITE(NOUT,9003) ATTNAM 9003 FORMAT(11H -WARNING- ,A8,30H is a DUPLICATE attribute name) WRITE(NOUT,9004) 9004 FORMAT(53H You should rename it before doing queries or updates) GO TO 530 520 CONTINUE 530 CONTINUE C C ADD THE DATA TO PTABLE. C NATT3 = NATT3 + 1 BUFFER(PTABLE) = IBLANK CALL STRMOV(ATTNAM,1,8,BUFFER(PTABLE),1) BUFFER(PTABLE+3) = ATTCOL BUFFER(PTABLE+4) = ICT NWORDS = ATTWDS BUFFER(PTABLE+5) = ATTLEN IF(NWORDS.EQ.0) NWORDS = 1 ICT = ICT + 00SR }NWORDS BUFFER(PTABLE+6) = ATTYPE PTABLE = PTABLE + 7 550 CONTINUE ICT = ICT - 1 C C PTABLE IS CONSTRUCTED C C NOW CREATE ATTRIBUTE AND RELATION TABLES AND THE RELATION C IF(ICT.GT.MAXCOL) GO TO 9850 C C SET UP THE WHERE CLAUSE FOR THE JOIN. C I = LOCATT(ANAME2,RNAME2) CALL ATTGET(ISTAT) IF(ATTWDS.GT.300) GO TO 9870 KEYCOL = ATTCOL KEYTYP = ATTYPE KEYLEN = ATTLEN NBOO = 1 BOO(1) = K4AND I = LOCATT(ANAME1,RNAME1) CALL ATTGET(ISTAT) KATTP(1) = ATTCOL KATTL(1) = ATTLEN C C MAKE SURE THE ATTRIBUTE TYPES MATCH. C IF(KEYTYP.NE.ATTYPE) GO TO 9800 IF(KEYLEN.NE.ATTLEN) GO TO 9700 KATTY(1) = ATTYPE IF(KEYTYP.EQ.KZIVEC) KATTY(1) = KZINT IF(KEYTYP.EQ.KZRVEC) KATTY(1) = KZREAL IF(KEYTYP.EQ.KZDVEC) KATTY(1) = KZDOUB IF(KEYTYP.EQ.KZIMAT) KATTY(1) = KZINT IF(KEYTYP.EQ.KZRMAT) KATTY(1) = KZREAL IF(KEYTYP.EQ.KZDMAT) KATTY(1) = KZDOUB KOMTYP(1) = NK KOMPOS(1) = 1 KOMLEN(1) = 1 KOMPOT(1) = 1 KSTRT = ATTKEY IF(NK.NE.2) KSTRT = 0 MAXTU = ALL9S LIMTU = ALL9S C C SET UP RELATION TABLE. C NAME = RNAME3 CALL RMDATE(RDATE) NCOL = ICT NCOL3 = ICT NATT = NATT3 NTUPLE = 0 RSTART = 0 REND = 0 RPW = RPW1 MPW = MPW1 IF(EQ(RPW,NONE).AND.NE(RPW2,NONE)) RPW = RPW2 IF(EQ(MPW,NONE).AND.NE(MPW2,NONE)) MPW = MPW2 CALL RELADD C CALL ATTNEW(NAME,NATT) PTABLE = BLKLOC(10) DO 700 K=1,NATT3 ATTNAM = BLANK CALL STRMOV(BUFFER(PTABLE),1,8,ATTNAM,1) RELNAM = NAME ATTCOL = BUFFER(PTABLE+4) ATTLEN = BUFFER(PTABLE+5) ATTYPE = BUFFER(PTABLE+6) ATTKEY = 0 CALL ATTADD PTABLE = PTABLE + 7 700 CONTINUE C C CALL JOIN TO CONSTRUCT MATN3 C CALL BLKDEF(11,MAXCOL,1) KQ3 = BLKLOC(11) PTABLE = BLKLOC(10) I = LOCREL(RNAME2) CALL JOIN(RNAME1,RNAME3,BUFFER(KQ3),NCOL3,NATT3,BUFFER(PTABLE), XKEYCOL,KEYTYP) GO TO 9999 C C MISMATCHED DATA TYPES. C 9700 CONTINUE WRITE(NOUT,9006) 9006 FORMAT(46H -ERROR- JOIN attributes are different lengths ) GO TO 9999 9800 CONTINUE WRITE(NOUT,9005) 9005 FORMAT(44H -ERROR- JOIN attributes are different types) GO TO 9999 C C TUPLE LENGTH EXCEEDS MAXCOL C 9850 CONTINUE WRITE(NOUT,9860) MAXCOL 9860 FORMAT(36H -ERROR- Relation ROW LENGTH Exceeds,I5) GO TO 9999 9870 CONTINUE WRITE (NOUT,9880) 9880 FORMAT(32H -ERROR- JOIN attribute too long ) GO TO 9999 C C SYNTAX ERROR IN JOIN COMMAND C 9900 CONTINUE CALL WARN(4,0,0) C C C DONE WITH INTERSECT C 9999 CONTINUE CALL BLKCLR(10) CALL BLKCLR(11) RETURN END -h- lxline.for Mon Apr 7 16:44:51 1986 ARISIA$DRC0:[003001.TMP]LXLINE.FOR;4 SUBROUTINE LXLINE(RECORD,LENREC,NUML,LINE,LEN,LOC) INCLUDE 'TEXT.BLK' C C THIS ROUTINE GETS THE NEXT LINE FOR LXLREC TO PARSE. IF LENREC C IS ZERO, FILE NIN IS READ, ELSE THE LINE IS EXTRACTED FROM RECORD. C IF LOC IS NOT ZERO NEW LINE IS ALREADY IN LINE, SIMPLY C MOVE THE DATA TO THE FRONT OF LINE. C INCLUDE 'LXCARD.BLK' INCLUDE 'PROM.BLK' INCLUDE 'LXCON.BLK' DIMENSION LINE(80) INTEGER RECORD(*) IF(LOC.NE.0) GO TO 200 NUML = NUML + 1 IF(LENREC.NE.0) GO TO 100 C C FROM FILE NIN C LEN = 80 C IF(NIN.EQ.5) WRITE(6,5) PROM 5 FORMAT(1X,A2,$) READ (NIN,10,END=13) LINE 10 FORMAT(80A1) LXEOF = .FALSE. C FORCE CHARS FROM TERMINALS TO BE UPPER CASE IF(NIN.NE.5)GOTO 14 C ONLY CHANGE CHARS FROM A TTY C ALSO STOP CHANGING IF WE GET TO A " CHARACTER DO 11 N=1,80 NN=MOD(LINE(N),256) IF(NN.EQ.34)GOTO 14 C 34 IS " CHARACTER IN ASCII C REPLACE a-z BY A-Z AND LEAVE ALL ELSE ALONE. C TRY TO LEAVE HIGH PARTS OF INTEGER ALONE. IF(NN.GE.97.AND.NN.LE.122)LINE(N)=(LINE(N)/256)*256+(NN-32) 11 CONTINUE GO TO 14 13 CONTINUE LXEOF = .TRUE. 14 CONTINUE C IF(LXEOF) GO TO 1000 IF(NOUT.EQ.0) GO TO 100SRRRTADATADATADATADATADATA000 IF(.NOT.ECHO) GO TO 1000 WRITE(NOUT,20) LINE 20 FORMAT(16H INPUT LINE ... ,80A1) GO TO 1000 100 CONTINUE C C GET LINE FROM RECORD C LEN = 0 I1 = 80*(NUML-1) + 1 I2 = 80*NUML IF(I1.GT.LENREC) GO TO 1000 IF(I2.GT.LENREC) I2 = LENREC DO 150 I=I1,I2 LEN = LEN + 1 CALL GETT(RECORD,I,LINE(LEN)) 150 CONTINUE GO TO 1000 200 CONTINUE NEWLEN = LEN - LOC IF(NEWLEN.LE.0) GO TO 230 DO 220 I=1,NEWLEN LOC = LOC + 1 LINE(I) = LINE(LOC) 220 CONTINUE 230 CONTINUE LEN = NEWLEN LOC = 0 1000 CONTINUE IF(LEN.LE.0) RETURN C C IGNORE TRAILING BLANKS C ICHECK = LEN + 1 DO 1100 I=1,LEN ICHECK = ICHECK - 1 IF(LINE(ICHECK).NE.BLANKS) GO TO 1200 1100 CONTINUE ICHECK = 1 1200 CONTINUE LEN = ICHECK RETURN END -h- lxline.fsp Mon Apr 7 16:44:51 1986 ARISIA$DRC0:[003001.TMP]LXLINE.FSP;2 SUBROUTINE LXLINE(RECORD,LENREC,NUML,LINE,LEN,LOC) INCLUDE 'TEXT.BLK' C C THIS ROUTINE GETS THE NEXT LINE FOR LXLREC TO PARSE. IF LENREC C IS ZERO, FILE NIN IS READ, ELSE THE LINE IS EXTRACTED FROM RECORD. C IF LOC IS NOT ZERO NEW LINE IS ALREADY IN LINE, SIMPLY C MOVE THE DATA TO THE FRONT OF LINE. C INCLUDE 'LXCARD.BLK' INCLUDE 'PROM.BLK' INCLUDE 'LXCON.BLK' DIMENSION LINE(80) INTEGER RECORD(*) IF(LOC.NE.0) GO TO 200 NUML = NUML + 1 IF(LENREC.NE.0) GO TO 100 C C FROM FILE NIN C LEN = 80 C 7001 CONTINUE IF(NIN.EQ.5) WRITE(6,5) PROM 5 FORMAT(1X,A2,$) READ (NIN,10,END=13) LINE 10 FORMAT(80A1) LXEOF = .FALSE. C FORCE CHARS FROM TERMINALS TO BE UPPER CASE IF(NIN.NE.5)GOTO 14 C ONLY CHANGE CHARS FROM A TTY C ALSO STOP CHANGING IF WE GET TO A " CHARACTER C IF 1ST CHAR IS } THEN DO COMMAND... IF(MOD(LINE(1),256).NE.125)GOTO 12 CALL USRCMD(LINE(2)) GOTO 7001 12 CONTINUE DO 11 N=1,80 NN=MOD(LINE(N),256) IF(NN.EQ.34)GOTO 14 C 34 IS " CHARACTER IN ASCII C REPLACE a-z BY A-Z AND LEAVE ALL ELSE ALONE. C TRY TO LEAVE HIGH PARTS OF INTEGER ALONE. IF(NN.GE.97.AND.NN.LE.122)LINE(N)=(LINE(N)/256)*256+(NN-32) 11 CONTINUE GO TO 14 13 CONTINUE LXEOF = .TRUE. 14 CONTINUE C IF(LXEOF) GO TO 1000 IF(NOUT.EQ.0) GO TO 1000 IF(.NOT.ECHO) GO TO 1000 WRITE(NOUT,20) LINE 20 FORMAT(16H INPUT LINE ... ,80A1) GO TO 1000 100 CONTINUE C C GET LINE FROM RECORD C LEN = 0 I1 = 80*(NUML-1) + 1 I2 = 80*NUML IF(I1.GT.LENREC) GO TO 1000 IF(I2.GT.LENREC) I2 = LENREC DO 150 I=I1,I2 LEN = LEN + 1 CALL GETT(RECORD,I,LINE(LEN)) 150 CONTINUE GO TO 1000 200 CONTINUE NEWLEN = LEN - LOC IF(NEWLEN.LE.0) GO TO 230 DO 220 I=1,NEWLEN LOC = LOC + 1 LINE(I) = LINE(LOC) 220 CONTINUE 230 CONTINUE LEN = NEWLEN LOC = 0 1000 CONTINUE IF(LEN.LE.0) RETURN C C IGNORE TRAILING BLANKS C ICHECK = LEN + 1 DO 1100 I=1,LEN ICHECK = ICHECK - 1 IF(LINE(ICHECK).NE.BLANKS) GO TO 1200 1100 CONTINUE ICHECK = 1 1200 CONTINUE LEN = ICHECK RETURN END -h- makerim.com Mon Apr 7 16:44:51 1986 ARISIA$DRC0:[003001.TMP]MAKERIM.COM;7 $ ! $ ! PROCEDURE TO INSTALL RIM VERSION 5 ON THE VAX $ ! $ ! Define the Fortran command we will use. $for:==fortran/f77/nocheck/nolist/nodebug/i4 $ ! CREATE THE RELOCATABLE LIBRARY $! note: To build a version that allows lowercase input and that $! allows }command to spawn command to DCL use the *.FSP routines $! and link with those. $ ! $ LIBRARY RIMLIB/CREATE $ ! $ ! NOW COMPILE ALL ROUTINES $ ! $FOR ADDDAT $LIBR RIMLIB ADDDAT $DEL ADDDAT.OBJ;* $FOR ATTADD $LIBR RIMLIB ATTADD $DEL ATTADD.OBJ;* $FOR ATTDEL $LIBR RIMLIB ATTDEL $DEL ATTDEL.OBJ;* $FOR ATTGET $LIBR RIMLIB ATTGET $DEL ATTGET.OBJ;* $FOR ATTNEW $LIBR RIMLIB ATTNEW $DEL ATTNEW.OBJ;* $FOR ATTPAG $LIBR RIMLIB ATTPAG $DEL ATTPAG.OBJ;* $FOR ATTPUT $LIBR RIMLIB ATTPUT $DEL ATTPUT.OBJ;* $FOR BLKCHG $LIBR RIMLIB BLKCHG $DEL BLKCHG.OBJ;* $FOR B00'SR }LKCLN $LIBR RIMLIB BLKCLN $DEL BLKCLN.OBJ;* $FOR BLKCLR $LIBR RIMLIB BLKCLR $DEL BLKCLR.OBJ;* $FOR BLKDEF $LIBR RIMLIB BLKDEF $DEL BLKDEF.OBJ;* $FOR BLKEXT $LIBR RIMLIB BLKEXT $DEL BLKEXT.OBJ;* $FOR BLKLOC $LIBR RIMLIB BLKLOC $DEL BLKLOC.OBJ;* $FOR BLKMOV $LIBR RIMLIB BLKMOV $DEL BLKMOV.OBJ;* $FOR BTADD $LIBR RIMLIB BTADD $DEL BTADD.OBJ;* $FOR BTGET $LIBR RIMLIB BTGET $DEL BTGET.OBJ;* $FOR BTINIT $LIBR RIMLIB BTINIT $DEL BTINIT.OBJ;* $FOR BTLKI $LIBR RIMLIB BTLKI $DEL BTLKI.OBJ;* $FOR BTLKR $LIBR RIMLIB BTLKR $DEL BTLKR.OBJ;* $FOR BTLKT $LIBR RIMLIB BTLKT $DEL BTLKT.OBJ;* $FOR BTMOVE $LIBR RIMLIB BTMOVE $DEL BTMOVE.OBJ;* $FOR BTPUT $LIBR RIMLIB BTPUT $DEL BTPUT.OBJ;* $FOR BTREP $LIBR RIMLIB BTREP $DEL BTREP.OBJ;* $FOR BTSERT $LIBR RIMLIB BTSERT $DEL BTSERT.OBJ;* $FOR BUILD $LIBR RIMLIB BUILD $DEL BUILD.OBJ;* $FOR CHANGE $LIBR RIMLIB CHANGE $DEL CHANGE.OBJ;* $FOR CHKATT $LIBR RIMLIB CHKATT $DEL CHKATT.OBJ;* $FOR CHKREL $LIBR RIMLIB CHKREL $DEL CHKREL.OBJ;* $FOR CHKRUL $LIBR RIMLIB CHKRUL $DEL CHKRUL.OBJ;* $FOR CHKTUP $LIBR RIMLIB CHKTUP $DEL CHKTUP.OBJ;* $FOR CMPUTE $LIBR RIMLIB CMPUTE $DEL CMPUTE.OBJ;* $FOR CSC $LIBR RIMLIB CSC $DEL CSC.OBJ;* $FOR DBLOAD $LIBR RIMLIB DBLOAD $DEL DBLOAD.OBJ;* $FOR DELDAT $LIBR RIMLIB DELDAT $DEL DELDAT.OBJ;* $FOR DELDUP $LIBR RIMLIB DELDUP $DEL DELDUP.OBJ;* $FOR DELETE $LIBR RIMLIB DELETE $DEL DELETE.OBJ;* $FOR DROPF $LIBR RIMLIB DROPF $DEL DROPF.OBJ;* $FOR EQ $LIBR RIMLIB EQ $DEL EQ.OBJ;* $FOR EQKEYW $LIBR RIMLIB EQKEYW $DEL EQKEYW.OBJ;* $FOR F1CLO $LIBR RIMLIB F1CLO $DEL F1CLO.OBJ;* $FOR F1OPN $LIBR RIMLIB F1OPN $DEL F1OPN.OBJ;* $FOR F2CLO $LIBR RIMLIB F2CLO $DEL F2CLO.OBJ;* $FOR F2OPN $LIBR RIMLIB F2OPN $DEL F2OPN.OBJ;* $FOR F3CLO $LIBR RIMLIB F3CLO $DEL F3CLO.OBJ;* $FOR F3OPN $LIBR RIMLIB F3OPN $DEL F3OPN.OBJ;* $FOR FILCH $LIBR RIMLIB FILCH $DEL FILCH.OBJ;* $FOR GETDAT $LIBR RIMLIB GETDAT $DEL GETDAT.OBJ;* $FOR GETT $LIBR RIMLIB GETT $DEL GETT.OBJ;* $FOR GTSORT $LIBR RIMLIB GTSORT $DEL GTSORT.OBJ;* $FOR HASH $LIBR RIMLIB HASH $DEL HASH.OBJ;* $FOR HASHIN $LIBR RIMLIB HASHIN $DEL HASHIN.OBJ;* $FOR HTOI $LIBR RIMLIB HTOI $DEL HTOI.OBJ;* $FOR IEXP $LIBR RIMLIB IEXP $DEL IEXP.OBJ;* $FOR IFRT $LIBR RIMLIB IFRT $DEL IFRT.OBJ;* $FOR INTCON.FSP $LIBR RIMLIB INTCON $DEL INTCON.OBJ;* $FOR INTDEF $LIBR RIMLIB INTDEF $DEL INTDEF.OBJ;* $FOR INTLOD $LIBR RIMLIB INTLOD $DEL INTLOD.OBJ;* $FOR ISCAN $LIBR RIMLIB ISCAN $DEL ISCAN.OBJ;* $FOR ISECT $LIBR RIMLIB ISECT $DEL ISECT.OBJ;* $FOR ISREL $LIBR RIMLIB ISREL $DEL ISREL.OBJ;* $FOR ITOC $LIBR RIMLIB ITOC $DEL ITOC.OBJ;* $FOR ITOH $LIBR RIMLIB ITOH $DEL ITOH.OBJ;* $FOR JOIN $LIBR RIMLIB JOIN $DEL JOIN.OBJ;* $FOR JOIREL.FSP $LIBR RIMLIB JOIREL $DEL JOIREL.OBJ;* $FOR KMPARD $LIBR RIMLIB KMPARD $DEL KMPARD.OBJ;* $FOR KMPARI $LIBR RIMLIB KMPARI $DEL KMPARI.OBJ;* $FOR KMPARR $LIBR RIMLIB KMPARR $DEL KMPARR.OBJ;* $FOR KMPART $LIBR RIMLIB KMPART $DEL KMPART.OBJ;* $FOR KOMPXX $LIBR RIMLIB KOMPXX $DEL KOMPXX.OBJ;* $FOR LFIND $LIBR RIMLIB LFIND $DEL LFIND.OBJ;* $FOR LOADIT $LIBR RIMLIB LOADIT $DEL LOADIT.OBJ;* $FOR LOCATT $LIBR RIMLIB LOCATT $DEL LOCATT.OBJ;* $FOR LOCBOO $LIBR RIMLIB LOCBOO $DEL LOCBOO.OBJ;* $FOR LOCPRM $LIBR RIMLIB LOCPRM $DEL LOCPRM.OBJ;* $FOR LOCREL $LIBR RIMLIB LOCREL $DEL LOCREL.OBJ;* $FOR LODELE $LIBR RIMLIB LODELE $DEL LODELE.OBJ;* $FOR LODPAS $LIBR RIMLIB LODPAS $DEL LODPAS.OBJ;* $FOR LODREC $LIBR RIMLIB LODREC $DEL LODREC.OBJ;* $FOR LODREL $LIBR RIMLIB LODREL $DEL LODREL.OBJ;* $FOR LODRUL $LIBR RIMLIB LODRUL $DEL LODRUL.OBJ;* $FOR LSTREL $LIBR RIMLIB LSTREL $DEL LSTREL.OBJ;* $FOR LSTRNG $LIBR RIMLIB LSTRNG $DEL LSTRNG.OBJ;* $FOR LXCONS $LIBR RIMLIB LXCONS $DEL LXCONS.OBJ;* $FOR LXCREC $LIBR RIMLIB LXCREC $DEL LXCREC.OBJ;* $FOR LXEND $LIBR RIMLIB LXEND $DEL LXEND.OBJ;* $FOR LXGENR $LIBR RIMLIB LXGENR $DEL LXGENR.OBJ;* $FOR LXGENS $LIBR RIMLIB LXGENS $DEL LXGENS.OBJ;* $FOR LXGETI $LIBR RIMLIB LXGETI $DEL LXGETI.OBJ;* $FOR LXGETR $LIBR RIMLIB LXGETR $DEL LXGETR.OBJ;* $FOR LXID $LIBR RIMLIB LXID $DEL LXID.OBJ;* $FOR LXIREC $LIBR RIMLIB LXIREC $DEL LXIREC.OBJ;* $FOR LXITEM $LIBR RIMLIB LXITEM $DEL LXITEM.OBJ;* $FOR LXLENC $LIBR RIMLIB LXLENC 00/SRRRTADATADATADATADATADATA$DEL LXLENC.OBJ;* $FOR LXLENW $LIBR RIMLIB LXLENW $DEL LXLENW.OBJ;* $FOR LXLINE.FSP $LIBR RIMLIB LXLINE $DEL LXLINE.OBJ;* $FOR LXLREC $LIBR RIMLIB LXLREC $DEL LXLREC.OBJ;* $FOR LXMASK $LIBR RIMLIB LXMASK $DEL LXMASK.OBJ;* $FOR LXNEXI $LIBR RIMLIB LXNEXI $DEL LXNEXI.OBJ;* $FOR LXSET $LIBR RIMLIB LXSET $DEL LXSET.OBJ;* $FOR LXSREC $LIBR RIMLIB LXSREC $DEL LXSREC.OBJ;* $FOR LXSTOR $LIBR RIMLIB LXSTOR $DEL LXSTOR.OBJ;* $FOR LXUSET $LIBR RIMLIB LXUSET $DEL LXUSET.OBJ;* $FOR LXWREC $LIBR RIMLIB LXWREC $DEL LXWREC.OBJ;* $FOR MINMAX $LIBR RIMLIB MINMAX $DEL MINMAX.OBJ;* $FOR MODIFY $LIBR RIMLIB MODIFY $DEL MODIFY.OBJ;* $FOR MOTSCN $LIBR RIMLIB MOTSCN $DEL MOTSCN.OBJ;* $FOR NE $LIBR RIMLIB NE $DEL NE.OBJ;* $FOR NSCAN $LIBR RIMLIB NSCAN $DEL NSCAN.OBJ;* $FOR PARVAL $LIBR RIMLIB PARVAL $DEL PARVAL.OBJ;* $FOR PJECT $LIBR RIMLIB PJECT $DEL PJECT.OBJ;* $FOR PRJTUP $LIBR RIMLIB PRJTUP $DEL PRJTUP.OBJ;* $FOR PRULE $LIBR RIMLIB PRULE $DEL PRULE.OBJ;* $FOR PTRS $LIBR RIMLIB PTRS $DEL PTRS.OBJ;* $FOR PUTDAT $LIBR RIMLIB PUTDAT $DEL PUTDAT.OBJ;* $FOR PUTT $LIBR RIMLIB PUTT $DEL PUTT.OBJ;* $FOR QUERY $LIBR RIMLIB QUERY $DEL QUERY.OBJ;* $FOR RELADD $LIBR RIMLIB RELADD $DEL RELADD.OBJ;* $FOR RELDEL $LIBR RIMLIB RELDEL $DEL RELDEL.OBJ;* $FOR RELGET $LIBR RIMLIB RELGET $DEL RELGET.OBJ;* $FOR RELOAD $LIBR RIMLIB RELOAD $DEL RELOAD.OBJ;* $FOR RELPAG $LIBR RIMLIB RELPAG $DEL RELPAG.OBJ;* $FOR RELPUT $LIBR RIMLIB RELPUT $DEL RELPUT.OBJ;* $FOR REUSE $LIBR RIMLIB REUSE $DEL REUSE.OBJ;* $FOR RIM $LIBR RIMLIB RIM $DEL RIM.OBJ;* $FOR RIOIN $LIBR RIMLIB RIOIN $DEL RIOIN.OBJ;* $FOR RIOOPN $LIBR RIMLIB RIOOPN $DEL RIOOPN.OBJ;* $FOR RIOOUT $LIBR RIMLIB RIOOUT $DEL RIOOUT.OBJ;* $FOR RMCLOS $LIBR RIMLIB RMCLOS $DEL RMCLOS.OBJ;* $FOR RMCONS $LIBR RIMLIB RMCONS $DEL RMCONS.OBJ;* $FOR RMDATE $LIBR RIMLIB RMDATE $DEL RMDATE.OBJ;* $FOR RMDBGT $LIBR RIMLIB RMDBGT $DEL RMDBGT.OBJ;* $FOR RMDBLK $LIBR RIMLIB RMDBLK $DEL RMDBLK.OBJ;* $FOR RMDBPT $LIBR RIMLIB RMDBPT $DEL RMDBPT.OBJ;* $FOR RMDEL $LIBR RIMLIB RMDEL $DEL RMDEL.OBJ;* $FOR RMFIND $LIBR RIMLIB RMFIND $DEL RMFIND.OBJ;* $FOR RMGATT $LIBR RIMLIB RMGATT $DEL RMGATT.OBJ;* $FOR RMGET $LIBR RIMLIB RMGET $DEL RMGET.OBJ;* $FOR RMGREL $LIBR RIMLIB RMGREL $DEL RMGREL.OBJ;* $FOR RMGTSO $LIBR RIMLIB RMGTSO $DEL RMGTSO.OBJ;* $FOR RMHELP $LIBR RIMLIB RMHELP $DEL RMHELP.OBJ;* $FOR RMLATT $LIBR RIMLIB RMLATT $DEL RMLATT.OBJ;* $FOR RMLOAD $LIBR RIMLIB RMLOAD $DEL RMLOAD.OBJ;* $FOR RMLOOK $LIBR RIMLIB RMLOOK $DEL RMLOOK.OBJ;* $FOR RMLREL $LIBR RIMLIB RMLREL $DEL RMLREL.OBJ;* $ FOR RMMAIN.FSP $ ! $FOR RMOPEN $LIBR RIMLIB RMOPEN $DEL RMOPEN.OBJ;* $FOR RMPUT $LIBR RIMLIB RMPUT $DEL RMPUT.OBJ;* $FOR RMRES $LIBR RIMLIB RMRES $DEL RMRES.OBJ;* $FOR RMRULE $LIBR RIMLIB RMRULE $DEL RMRULE.OBJ;* $FOR RMSAV $LIBR RIMLIB RMSAV $DEL RMSAV.OBJ;* $FOR RMSORT $LIBR RIMLIB RMSORT $DEL RMSORT.OBJ;* $FOR RMSTRT $LIBR RIMLIB RMSTRT $DEL RMSTRT.OBJ;* $FOR RMTIME $LIBR RIMLIB RMTIME $DEL RMTIME.OBJ;* $FOR RMTOL $LIBR RIMLIB RMTOL $DEL RMTOL.OBJ;* $FOR RMUSER $LIBR RIMLIB RMUSER $DEL RMUSER.OBJ;* $FOR RMVARC $LIBR RIMLIB RMVARC $DEL RMVARC.OBJ;* $FOR RMWHER $LIBR RIMLIB RMWHER $DEL RMWHER.OBJ;* $FOR RMZIP $LIBR RIMLIB RMZIP $DEL RMZIP.OBJ;* $FOR RNAMEA $LIBR RIMLIB RNAMEA $DEL RNAMEA.OBJ;* $FOR RNAMER $LIBR RIMLIB RNAMER $DEL RNAMER.OBJ;* $FOR ROUN $LIBR RIMLIB ROUN $DEL ROUN.OBJ;* $FOR RTOC $LIBR RIMLIB RTOC $DEL RTOC.OBJ;* $FOR RTOF $LIBR RIMLIB RTOF $DEL RTOF.OBJ;* $FOR RULDEL $LIBR RIMLIB RULDEL $DEL RULDEL.OBJ;* $FOR RULES $LIBR RIMLIB RULES $DEL RULES.OBJ;* $FOR RXREC $LIBR RIMLIB RXREC $DEL RXREC.OBJ;* $FOR SELECT $LIBR RIMLIB SELECT $DEL SELECT.OBJ;* $FOR SELOUT $LIBR RIMLIB SELOUT $DEL SELOUT.OBJ;* $FOR SELPAR $LIBR RIMLIB SELPAR $DEL SELPAR.OBJ;* $FOR SELPUT $LIBR RIMLIB SELPUT $DEL SELPUT.OBJ;* $FOR SETIN $LIBR RIMLIB SETIN $DEL SETIN.OBJ;* $FOR SETOUT $LIBR RIMLIB SETOUT $DEL SETOUT.OBJ;* $FOR SETRUL $LIBR RIMLIB SETRUL $DEL SETRUL.OBJ;* $FOR SORT $LIBR RIMLIB SORT $DEL SORT.OBJ;* $FOR SPOUT $LIBR RIMLIB SPOUT $DEL SPOUT.OBJ;* $FOR STATUS $LIBR RIMLIB STATUS $DEL STATUS.OBJ;* $FOR STRMOV $LIBR RIMLIB STRMOV $DEL STRMOV.OBJ;* $FOR SUBREL $L007SR }IBR RIMLIB SUBREL $DEL SUBREL.OBJ;* $FOR SUBTRC $LIBR RIMLIB SUBTRC $DEL SUBTRC.OBJ;* $FOR SWCON $LIBR RIMLIB SWCON $DEL SWCON.OBJ;* $FOR SWCOST $LIBR RIMLIB SWCOST $DEL SWCOST.OBJ;* $FOR SWFILO $LIBR RIMLIB SWFILO $DEL SWFILO.OBJ;* $FOR SWFLFS $LIBR RIMLIB SWFLFS $DEL SWFLFS.OBJ;* $FOR SWHART $LIBR RIMLIB SWHART $DEL SWHART.OBJ;* $FOR SWHRTD $LIBR RIMLIB SWHRTD $DEL SWHRTD.OBJ;* $FOR SWHRTI $LIBR RIMLIB SWHRTI $DEL SWHRTI.OBJ;* $FOR SWHRTR $LIBR RIMLIB SWHRTR $DEL SWHRTR.OBJ;* $FOR SWICST $LIBR RIMLIB SWICST $DEL SWICST.OBJ;* $FOR SWIDCP $LIBR RIMLIB SWIDCP $DEL SWIDCP.OBJ;* $FOR SWIICP $LIBR RIMLIB SWIICP $DEL SWIICP.OBJ;* $FOR SWINPO $LIBR RIMLIB SWINPO $DEL SWINPO.OBJ;* $FOR SWIRCP $LIBR RIMLIB SWIRCP $DEL SWIRCP.OBJ;* $FOR SWITCP $LIBR RIMLIB SWITCP $DEL SWITCP.OBJ;* $FOR SWSHEL $LIBR RIMLIB SWSHEL $DEL SWSHEL.OBJ;* $FOR SWSINK $LIBR RIMLIB SWSINK $DEL SWSINK.OBJ;* $FOR SWSMFL $LIBR RIMLIB SWSMFL $DEL SWSMFL.OBJ;* $FOR SWSMVL $LIBR RIMLIB SWSMVL $DEL SWSMVL.OBJ;* $FOR SWUNLO $LIBR RIMLIB SWUNLO $DEL SWUNLO.OBJ;* $FOR SWUNVL $LIBR RIMLIB SWUNVL $DEL SWUNVL.OBJ;* $FOR SWVLFS $LIBR RIMLIB SWVLFS $DEL SWVLFS.OBJ;* $FOR SWVLLO $LIBR RIMLIB SWVLLO $DEL SWVLLO.OBJ;* $FOR TALLY $LIBR RIMLIB TALLY $DEL TALLY.OBJ;* $FOR TOLED $LIBR RIMLIB TOLED $DEL TOLED.OBJ;* $FOR TOLER $LIBR RIMLIB TOLER $DEL TOLER.OBJ;* $FOR TTY $LIBR RIMLIB TTY $DEL TTY.OBJ;* $FOR TYPER $LIBR RIMLIB TYPER $DEL TYPER.OBJ;* $FOR UNDATA $LIBR RIMLIB UNDATA $DEL UNDATA.OBJ;* $FOR UNDEF $LIBR RIMLIB UNDEF $DEL UNDEF.OBJ;* $FOR UNLOAD $LIBR RIMLIB UNLOAD $DEL UNLOAD.OBJ;* $FOR USRCMD.FSP $LIBR RIMLIB USRCMD $DEL USRCMD.OBJ; $FOR WARN $LIBR RIMLIB WARN $DEL WARN.OBJ;* $FOR WHERE $LIBR RIMLIB WHERE $DEL WHERE.OBJ;* $FOR WHETOL $LIBR RIMLIB WHETOL $DEL WHETOL.OBJ;* $FOR WRLINE $LIBR RIMLIB WRLINE $DEL WRLINE.OBJ;* $FOR XHIBIT $LIBR RIMLIB XHIBIT $DEL XHIBIT.OBJ;* $FOR ZEROIT $LIBR RIMLIB ZEROIT $DEL ZEROIT.OBJ;* $LIBR/COMPRESS RIMLIB $PUR RIMLIB.OLB -h- rimcrd.doc Mon Apr 7 16:44:51 1986 ARISIA$DRC0:[003001.TMP]RIMCRD.DOC;2 RIM Handy Reference Card DEFINING A DATABASE SCHEMA DEFINE dbname OWNER password ATTRIBUTES attname {REAL} [{length}][KEY] INT VAR TEXT DOUB RVEC IVEC DVEC attname {RMAT} {row,col} [KEY] IMAT row,VAR DMAT VAR,VAR RELATIONS relname WITH attname1 [attname2...] PASSWORDS {READ PASSWORD} FOR {relname} IS password RPW ALL {MODIFY PASSWORD} FOR {relname} IS password MPW ALL RULES attname [IN relname] {EQ} value [{AND}...] NE OR GT GE LT LE attname IN relname {EQA} attname IN relname [{AND}...] NEA OR GTA GEA LTA LEA END LOADING A RELATION LOAD relname value1 value2 ... valueN END value: SCALARS val1 TEXT "text string" VECTOR (val1, val2, ...) MATRIX(r1c1,r2c1,...),(r1c2,r2c2,...)...) QUERYING A RELATION SELECT {attname1 [=fid1],attname2[=fid2],...} FROM relname + attnum1 [=fid1],... attname1(i),... attname1(i,j)... ALL [SORTED BY attname1 [={A}],[attname2 [={A}]...]]+ D D [WHERE ...] TALLY attname [={A}] FROM relname [WHERE...] D WHERE CLAUSE: WHERE attname {EXISTS} [{AND}...] FAILS OR EQS value EQ {value} NE MAX GT MIN LT LE GE WHERE attname {EQA} attname [{AND}...] NEA OR GTA GEA LTA LEA WHERE ROWS {EQ} rownumber [{AND}...] NE OR LT LE GE GT WHERE {attname} {EQ} list [{AND}...] ROWS NE OR WHERE LIMIT EQ number [{AND}...] OR ... QUERYING THE SCHEMA LISTREL [relname] ALL EXHIBIT attname1 [attname2...] PRINT RULES COMPUTATION COMMAND COMPUTE {COUNT} attname FROM relname [WHERE...] MIN MAX AVE SUM MODIFICATION COMMANDS CHANGE {attname} TO value [IN relname] WHERE ... attname(i) attname(i,j) CHANGE {RPW} TO newpass FOR relname MPW CHANGE OWNER TO newowner DELETE ROWS FROM relname WHERE ... DELETE DUPLICATES [attname1,attname2,...] FROM relname DELETE RULE rulenumber RENAME ATTRIBUTE attname TO newname [00?SRRRTADATADATADATADATADATAIN relname] RENAME RELATION relname TO newname REMOVE relname RELATIONAL ALGEBRA COMMANDS INTERSECT relname1 WITH relname2 FORMING relname3 + [USING attname1 [attname2,...]] JOIN relname1 Using attname1 WITH relname2 USING attname2 + FORMING relname3 [WHERE {EQ}] NE GT GE LT LE SUBTRACT relname1 FROM relname2 FORMING relname3 + [USING attname1 [attname2,...]] PROJECT relname1 FROM relname2 USING + {attname1,[attname2,...]} [WHERE ...] ALL REPORT COMMANDS NEWPAGE BLANK n TITLE "title" DATE LINES n WIDTH n KEY COMMANDS BUILD KEY FOR attname IN relname DELETE KEY FOR attname IN relname RIM-TO-RIM COMMAND UNLOAD [dbname [=newdbname]] {SCHEMA} [relname1 [=mpw] + DATA ALL [relname2 [=mpw],...] GENERAL COMMANDS INPUT {filename} TERMINAL OUTPUT {filename} TERMINAL EXIT QUIT MENU HELP [command name] USER password ECHO NOECHO CHECK NOCHECK TOLERANCE xx.xx [PERCENT] RELOAD CLOSE HOST DEPENDENT COMMANDS (note: may be CDC syntax) OPEN dbname [=filename],[UN=account],[PW=password],+ [DIRECT={R}] W ZIP "jet statement" }ANY DCL COMMAND executes "any dcl command" via spawn (VMS) -h- rmmain.fsp Mon Apr 7 16:44:51 1986 ARISIA$DRC0:[003001.TMP]RMMAIN.FSP;3 PROGRAM RMMAIN C C **************************************************************** C C RELATIONAL INFORMATION MANAGEMENT SYSTEM (RIM) - VERSION 5 C C THIS PROGRAM IS AN IMPLEMENTATION OF THE RELATIONAL ALGEBRA C MODEL OF DATA BASE MANAGEMENT. C C THE PRINCIPAL AUTHORS ARE C C WAYNE J. ERICKSON C DATA MANAGEMENT CONSULTANT C 2029 5TH STREET S.E. C PUYALLUP,WASHINGTON 98371 C FREDERIC P. GRAY JR. C BOEING COMERCIAL AIRPLANE COMPANY (BCAC) C GEOFFREY VONLIMBACH C BOEING COMPUTER SERVICES COMPANY (BCS) C C CONTRIBUTIONS TO RIM-5 CODE WERE ALSO MADE BY C C LAURA B. HAMED (UNLOAD) AND C STIG O. WAHLSTROM (SORT) OF BCS AND BCAC RESPECTIVELY. C C RIM-5 EXTENDS THE CAPABILITIES OF RIM-4 C PRIMARILY BY ADDING CAPABILITY FOR VARIABLE LENGTH C ATTRIBUTES,ADDING SEVERAL ATTRIBUTE TYPES,IMPLEMENTING C BOTH DIRECT AND MENU MODE,EXPANDING THE COMMAND LANGUAGE C AND ENTENDING THE FORTRAN INTERFACE CAPABILITIES C C RIM-5 IS WRITTEN IN FORTRAN 77 AND IS INTENDED TO C BE EASILY IMPLEMENTED ON COMPUTERS SUPPORTING THIS C LANGUAGE. C C RIM WAS ORIGINALLY DEVELOPED UNDER THE IPAD PROJECT C (NASA CONTRACT NAS-14700) BY WAYNE ERICKSON AND C DENNIS COMFORT BOTH AT THAT TIME WITH BCS. EXTENSIONS C TO RIM WERE THEN MADE BY WAYNE ERICKSON AND FRED GRAY C RESULTING IN VERSION 4 (RIM-4) IN LATE 1980. C C MAJOR MILESTONES IN THE DEVELOPMENT OF RIM: C C 1/78 TO 3/78 - WAYNE ERICKSON AND DENNIS COMFORT DEVELOP C VERSION 1 OF RIM AS PART OF THE IPAD PROJECT C 4/78 TO 9/78 - WAYNE AND DENNIS MAKE FURTHER ENHANCEMENTS TO C MAKE VERSION 2 WHILE AT IPAD C 6/79 TO 9/79 - WAYNE MAKES VERSION 3 OF RIM AT THE UNIVERSITY C OF WASHINGTON. THIS VERSION USED THE CDC C SEGMENTED LOADER AND THE FASTIO PACKAGE. C 9/79 TO 5/80 - WAYNE MAKES VERSION 4 OF RIM FOR THE UNIVERSITY C OF WASHINGTON AND BOEING/NASA. THIS VERSION COULD C HANDLE RELATIONS OF ANY LENGTH AND HAD KEY ELEMENTS C 5/80 TO 1/81 - FRED GRAY EXTENDS VERSION 4 AT BOEING TO INCLUDE C AN ENHANCED COMMAND LANGUAGE AND A MENU MODE OF C EXECUTION. C 9/80 TO 1/81 - WAYNE DEVELOPES A VAX VERSION OF RIM BASED ON THE C CDC VERSION. C 2/81 TO 9/81 - WAYNE TOGETHER WITH JEFF VON LIMBACH AND FRED GRAY C OF BOEING DEVELOP THE RIM PORTABLE VERSION (RIM-5). C C **************************************************************** C C RIM IS SUBJECT TO THE RESTRICTIONS AND DISCLAIMERS LISTED BELOW. C C RESTRICTIONS AND DISCLAIMERS C C THIS SOFTWARE IS PROVIDED BY THE BOEING COMPANY UNDER NASA CONTRACT C NAS1-14700 (IPAD). BOEING DEVELOPED AND/OR DISTRIBUTED IPAD SOFTWARE C AND DOCUMENTATION MAY BE USED BY 00GSR }AUTHORIZED RECIPIENTS SUBJECT TO THE C FOLLOWING LEGENDS. C C BECAUSE OF ITS POSSIBLE COMMERCIAL VALUE, THIS DATA DEVELOPED C UNDER U.S. GOVERNMENT CONTRACT NAS1-14700 IS BEING DISSEMINATED C WITHIN THE U.S. IN ADVANCE OF GENERAL PUBLICATION. THIS DATA MAY C BE DUPLICATED AND USED BY THE RECIPIENT WITH THE EXPRESSED LIMIT- C ATIONS THAT THE DATA WILL NOT BE PUBLISHED NOR WILL IT BE RELEASED C TO FOREIGN PARTIES WITHOUT PRIOR PERMISSION OF THE BOEING COMPANY. C RELEASE OF THIS DATA TO OTHER DOMESTIC PARTIES BY THE RECIPIENT C SHALL ONLY BE MADE SUBJECT TO THESE LIMITATIONS. THE LIMITATIONS C CONTAINED IN THIS LEGEND WILL BE CONSIDERED VOID AFTER OCT. 15, C 1985. THIS LEGEND SHALL BE MARKED ON ANY REPRODUCTION OF THIS C DATA IN WHOLE OR IN PART. C C BY ACCEPTANCE OF AND IN CONSIDERATION OF THE RECEIPT OF THE DOCU- C MENT, DATA, OR SOFTWARE, PRODUCED BY THE BOEING COMPANY (BOEING) C UNDER NATIONAL AERONAUTICS AND SPACE ADMINISTRATION (NASA) DEVEL- C OPMENT CONTRACT NO. NAS1-14700 (IPAD), THE THIRD PARTY RECIPIENT, C ITS SUCCESSORS AND ASSIGNS AGREE AS FOLLOWS: C C DISTRIBUTION OF THIS SOFTWARE (INCLUDING RELATED DATA AND C OTHER DOCUMENTATION) IS MADE BY BOEING ONLY AS AN C ACCOMODATION TO NASA. THIS SOFTWARE IS PROVIDED TO ALL C RECIPIENTS IN AN "AS IS" CONDITION. IN CONSIDERATION OF C RECEIPT OF THIS SOFTWARE, THE REQUESTOR AND ANY SUBSEQUENT C RECIPIENT ("RECIPIENT" HEREIN), AND THEIR SUCCESSORS AND C ASSIGNS, AGREE AS FOLLOWS: THE BOEING COMPANY MAKES NO C WARRANTY WHATSOEVER IN CONNECTION WITH THIS SOFTWARE, AND THE C RECIPIENT HEREBY WAIVES, RELEASES AND RENOUNCES ALL C WARRANTIES,GUARANTEES, OBLIGATIONS, LIABILITIES, RIGHTS AND C REMEDIES, EXPRESS OR IMPLIED, ARISING BY LAW, CONTRACT OR C OTHERWISE WITH RESPECT TO SUCH SOFTWARE. THE RECIPIENT SHALL C INCLUDE VERBATIM THE ENTIRE CONTENTS OF THIS DISCLAIMER, C INCLUDING THIS SENTENCE, WITH ANY AND ALL COPIES OF THIS C SOFTWARE WHICH IS PROVIDED TO ANY OTHER RECIPIENT. C C **************************************************************** C C PURPOSE: THIS PROGRAM CONTROLS THE TWO MAIN BRANCHES OF THE C RIM SYSTEM -- MENU AND COMMAND. IF THE USER C SELECTS THE MENU MODE, CONTROL IS PASSED TO THE C SUBROUTINE INTCON, IF THE COMMAND MODE IS SELECTED CONTROL C IS PASSED TO THE SUBROUTINE RIM. UPON AN "EXIT" THE C RETURNING AND/OR REPLACING OF THE DATABASE FILES IS C HANDLED BY MACHINE DEPENDENT ROUTINES, IE CDCPUT. C INCLUDE 'CONST4.BLK' INCLUDE 'CONST8.BLK' INCLUDE 'RMKEYW.BLK' INCLUDE 'CDCDBS.BLK' INCLUDE 'FLAGS.BLK' INCLUDE 'FILES.BLK' INCLUDE 'SELCOM.BLK' INCLUDE 'DCLAR6.BLK' LOGICAL TTY INTEGER VER INTEGER UDXX INTEGER MACH(2) DATA VER /3H5.1/ DATA UDXX /4HUD23/ DATA MACH(1),MACH(2) /4H-VAX,4H-VMS/ C CBCS **** START C C INITIALIZE - BATCH SHOULD BE FALSE ON OTHER MACHINES C NUMOPN = 0 BATCH = .FALSE. K = 0 IF(.NOT.TTY(K)) BATCH = .TRUE. C CBCS **** END C C OPEN THE INPUT AND OUTPUT FILES AND INITIALIZE C NINT = 5 NOUT = 6 NOUTR = 6 CALL LXCONS CALL RMSTRT CALL SETIN(K8IN) CALL SETOUT(K8OUT) ULPP = 0 UMCPL = 0 INTOPT = 0 NEXTOP = K8BEGI ECHO = .FALSE. CALL LXSET(KWECHO,K4OFF) IF(.NOT.BATCH) GO TO 50 ECHO = .TRUE. CALL LXSET(KWECHO,K4ON) 50 CONTINUE C C GET THE DATE AND TIME C CALL RMDATE(IDAY) CALL RMTIME(ITIME) C C SET THE PROMPT CHARACTER - CDC ONLY C CBCS **** START C CALL LXSET(K4PROM,K4RP) C CBCS **** END C C SET THE VERSION AND UPDATE IDENTIFIER C C C PRINT THE RIM EXECUTION HEADER C WRITE(NOUT,100) MACH(1),MACH(2),VER,UDXX,IDAY,ITIME 100 FORMAT(/,1X,11HBegin RIM -,2A4,8H Version,1X,A3, X 3X,A4,10X,A8,4X,A8,/) WRITE(NOUT,7200) 7200 FORMAT(' Updated 3/1986. }command spawns command.') C C EXECUTION OPTION IS COMMAND BY DEFAULT - PRINT MESSAGE 00OSRRRTADATADATADATADATADATAC IF(BATCH) GO TO 500 IF(.NOT.CONNI) GO TO 500 WRITE(NOUT,200) 200 FORMAT(/,1X,16HRIM Command mode,/, X 1X,26HEnter "MENU" for MENU mode,/) GO TO 500 C C **************************************************************** C C I N T E R A C T I V E S E C T I O N C C **************************************************************** C 350 WRITE(NOUT,360) 360 FORMAT(/,1X,13HRIM menu mode) 400 CONTINUE INTOPT = 0 410 CONTINUE CALL INTCON(INTOPT) IF(INTOPT.EQ.K4EXIT) GO TO 900 IF(INTOPT.EQ.K4QUIT) GO TO 850 IF(INTOPT.EQ.K4COM) GO TO 600 IF(INTOPT.EQ.K4QUE) GO TO 600 IF(INTOPT.EQ.K4LOD) GO TO 800 IF((INTOPT.NE.K4CRE).AND.(INTOPT.NE.K4UPD)) GO TO 400 C C SET THE INPUT FILE TO SCHEMA AND READ THE FIRST RECORD C CALL SETIN(K8SCH) LENREC = 0 CALL LXLREC(DUM,LENREC,DUM) C C COMPILE THE SCHEMA AND SET INPUT BACK TO "INPUT" C CALL CSC CALL SETIN(K8IN) GO TO 410 C C **************************************************************** C C D I R E C T S E C T I O N C C **************************************************************** C 500 CONTINUE IF(NEXTOP.EQ.K8BEGI) GO TO 600 IF(NEXTOP.EQ.K8RIM ) GO TO 600 IF(NEXTOP.EQ.K8DEFI) GO TO 700 IF(NEXTOP.EQ.K8LOAD) GO TO 800 IF(NEXTOP.EQ.K8MENU) GO TO 350 C C BRANCH TO STATEMENT 400 IF RIM WAS CALLED FROM THE C MENU MODE C IF(INTOPT.EQ.K4QUE) GO TO 400 IF(NEXTOP.EQ.K8EXIT ) GO TO 900 C C CALL RIM FOR QUERY FUNCTIONS C 600 CONTINUE CALL RIM GO TO 500 C C CALL CSC TO DEFINE THE SCHEMA C 700 CONTINUE CALL CSC NEXTOP = K8RIM GO TO 500 C C CALL DBLOAD TO LOAD THE DATABASE C 800 CONTINUE CALL DBLOAD NEXTOP = K8RIM IF(INTOPT.EQ.K4LOD) GO TO 410 GO TO 500 C C **************************************************************** C C E X I T S E C T I O N C C **************************************************************** C C DROP THE DATABASE FILES - QUIT C 850 CONTINUE GO TO 9999 900 CONTINUE IF(BATCH) GO TO 999 IF(.NOT.CONNI) GO TO 999 IF(.NOT.CONNO) CALL SETOUT(K8OUT) CALL RMDBPT(NAMDB,DBSTAT) C C PRINT THE CLOSING MESSAGE AND EXIT C 999 CONTINUE CALL RMDATE(IDAY) CALL RMTIME(ITIME) WRITE(NOUT,7001) IDAY,ITIME 7001 FORMAT(/,1X,17HEnd RIM execution,25X,A8,4X,A8,/,/) C C ERROR MESSAGES ------------------------------------------------- C 8001 FORMAT(/,1X,41H-ERROR- Either "1" or "2" must be entered,/) C 9999 CONTINUE CALL EXIT END -h- text.blk Mon Apr 7 16:44:51 1986 ARISIA$DRC0:[003001.TMP]TEXT.BLK;4 C ********************************************************** C C THIS ROUTINE IS PART OF RIM VERSION 5 (RIM-5) C C RIM-5 WAS DEVELOPED IN 1981 (MAY-AUGUST) BY BOEING'S C BESS AND IPAD (NASA CONTRACT NAS-14700) PROJECTS. C THIS PROGRAM IS SUBJECT TO THE RESTRICTIONS AND C DISCLAIMERS LISTED IN THE RIM-5 MAIN PROGRAM (RMMAIN). C C THE PRINCIPAL AUTHORS ARE C C WAYNE J. ERICKSON C DATA MANAGEMENT CONSULTANT C 2029 5TH STREET S.E. C PUYALLUP,WASHINGTON 98371 C FREDERIC P. GRAY JR. C BOEING COMERCIAL AIRPLANE COMPANY (BCAC) C GEOFFREY VONLIMBACH C BOEING COMPUTER SERVICES COMPANY (BCS) C C ********************************************************** -h- usrcmd.fsp Mon Apr 7 16:44:51 1986 ARISIA$DRC0:[003001.TMP]USRCMD.FSP;5 C COPYRIGHT (C) 1983 GLENN EVERHART C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY. SUBROUTINE USRCMD(CMDLIN) CHARACTER*80 CMDSTR BYTE CMLN(80) EQUIVALENCE(CMLN,CMDSTR) C DUMMY PLACE FOR USER COMMANDS TO PARSE CMDLIN AND HANDLE INTEGER*4 CMDLIN(79) INTEGER*4 ISTTS C C INSERT CODE FOR ADDING A LIB$SPAWN CALL HERE TO PASS COMMANDS TO C DCL IF THEY BEGIN WITH A $ CHARACTER. C C HERE CALL THE LIB$SPAWN WITH THE COMMAND LINE AS AN ARGUMENT... C MUST COPY TO A STRING FIRST SINCE I*4 LINE IS NOT USABLE BY LIB$SPAWN. DO 1000 NN=1,79 CM00WSXS }LN(NN)=MOD(CMDLIN(NN),256) C FORCE REMOVAL OF CTL CHARS IF(CMLN(NN).LT.32)CMLN(NN)=32 1000 CONTINUE c CMLN(80)=13 ! ADD C.R. AFTER LINE CMLN(80)=32 ! ADD space C ABOVE, INSERT A CR AFTER CMD LINE ISTTS=LIB$SPAWN(CMDSTR) 9990 CONTINUE RETURN END v!9iԡSf3fH'T1œ!TZȁ5tԘ#J J) aBH"RP)Bʛiܔcǔ,S6ّ`ʓ*R+X4mH&Ea$$$O2V,_̥H:yʐ%E|DKW^aX%p*5{mlRrEJM'(sI[!mb$Y5ڄ+_lF k~YMXJk'URwITbEnui; :o"lc o[aI.@1U8aEDRV;8RŵosGeAGaajA6EDLMQl%ZlE wtKTņ3GDM[@)O0aaPgeQntVL|VLffafQWvla՝;Fv ՝D@Drʄ!Ӧs$h "eƀ!D :b!Æ8j$ b$-D4%N)EiRd*;b,2ɔ!L$*THI3VtДOR#9aڰP4l}s3u(tCf3e !0tdD`hl1lx$M4& awt_6~缩#gLǰC avWuԁoth5"m>vsr5_]^qJ 9Pv"s1i:ӱ s1W EXQ=Us8 aE Qo FroaWl *Utk@-GW7gp%hu} 8Q{rtnsBpY7#wk(Aq0Fq a|CRm 5Bacag(m @qf QbfxƘcnduoc}#[m\QheP9i}b7 uW@: ^" "|h&-YF a$m1FAǡ]'_ m醙qb[,W QF|Z6&KzKـT؅ą^%f[U8W\YWd`Eii`UvlfѡH W BoבzY/kWwjY^R6Yizf)s ƶQ&DWÚ{w|Ӓvp$ 9$rjhnFh.>FCt(@ < eD]a\ ֎qC;OWü h@ 4ѡ[W0xiR K!L,f \@4#r Q˭ yc rޤ.-GC󇆑PH, D0gBPcX쒆JYal9a_Dَog0_:>sf `@A] dFUPa t=eTCLӐ:.l[PzDR RްA ;mȥ|vi;@IA t( 6@%6=u\mQ#-/w{۰oLg@1貫zAМL. ,h-DUQ yeMC16Tfvf+ $gs봽 N\"2I>@ ?VޮDɠq!Bh~EBP QdJLiYVWD)J#)Mkjԛ4T{B]ߠŠoKj`9q_F#X1njd gE!B] #5!4M(75B$0 /Ugd@I:r7Ym=ΈW-&GOVs!9&Dh <-h}N0-D (̺n qi5pp%'A0`5t*V6.Aw1.8E%9IJVҒd&5IN@OBQ;| UB9NŤ *N!, D`A dL(@$wxřR \ &,j7ܠR8DpDTR.379yB )LA({e"`pt*4A"- ݋U r<FC)kwKÏUޓ` !QzJ0|-Y:3Ϝ 5o 6>?A4P?7ߥs_ȷ P' i.~#4uP18p g~lwzY*]z|x7pCTHqDRuL`L`!MA 8GW0VU]W3`a(wRU+WyI )G''@G`u30g{JMDxD(FUb_pZ(PL}W!0 CXGrd8(TQ'.PQ@V ^ uR`'QwuERxRtd!$rTY4P<,kws 0 @L =,0<g.q) @(q5PN`;X>s$ pG^0GxXwbqnuEЀ wt0C#GPqGXtȉA(XsWwsxd(tR0JOLp()z3P^p`'4U )wts}kQb(~').q[',>)g~R:S9qO0)Lj_IAAdqT0 (@I8NS'@\'tE`cQq5(U4 zTȇ7Hr*GL8sYy>9wP)?XOPq(^yUwW[9]))1 y|r)戎8^U+eђ/ `y pdvL@DT|(IYTLوTY~;ٚN@^ bd9刖Rl)ni^q٨t؍00_SRRRTADATADATADATADATADATA0vɑ>'@o؎c9T ;x)@HMXQP w>S>[ٍ8G:'3ǃB.Hx:@=s?y Le|SGPNo[@(bpLsh< 1kGG:I;ڣ gs~* * ,:M@}(+7wEp]hvFIy (y)HXwJ!P1)qsxcX؞2GNH X}juEPٙ%8P^UwvXuI`Ïa+4]p0)RwuC@ZIRh su*,HI9ʐ5 Bp9KP:zGٝY:VjZ)_Afi9oi`ՇwH|~xd)Yiۘ) [ ˙ 9EYOyȌ lxH7`ɳ9Niy 8X0uNPzzHAQ]ٸ-9NɌi pBڛƚ$K+y9 cpzBy1km].x {yۧguyq /X4 "11GśZ:Qi pΛ:Q(bHPFCJE(201mx{((+]' vL(Lx<uR *UnP:o 2oQo#o(Zo0!4!9SPOpp W[ u%KF@N&(z*` Rr e=GGugw8М '9+uS_LőcH~Q|![QakW^` cfƔB`t>)jdWu ;JNEL2PSiɘɻvXǁ*wr @ t)M863A05ߍ==)k'ڂ}]: sGtULheA~r@lw3'{K|8 NSpM0)w, ##!\'q4 HCQ=T}@| Nt !z2סw N4 =>4M~p@MxPSy,Pl.{#yt<ӔD~g|L4 ~en)ټ}ڔ>0[v '~t獝Ό2p.g94@(N^o$~.?L룞Dq+tO@ 55 UBkY͝X^pF<@p (tM@8Rcuhn5H,DyIyHPU(VIJbsZuH iJZvܾ  s @,œo0q\~SU<}X^)* Wq\HwɊyDp@}IPJyE3 -S>ogLmmg`P5paNxvmZl\{i6nl]^zsx~p8*{ [ I^pJ+ bԄ.Pܧ /?2@A kg3ܚʩ?,n(IPQn8LyG߾R`N3) t)z = pI,^N*BH>=z=<m$CɦJl9 rOT)g$d /Qz`<,sD+*ёzUduNNA>$ Q2C!}D ) $zV'"YNi/~ ⼫GL^Yn(@b3F"qo6^`(U )6v\X$WAZyQE+1'g4FRJХ2(:ʶrt,+h[]>g.Yc} bh `"?Bݽ ; K4G\21(Ѐ~ 1yik l8B@ڧqvbpr^ dPU2iIJ0ar[GPACGT }IZmAHD# TeѺG0] HqEpHB(Ѹf Wj$ג~/\@`jiJV<_z$@X7bP'<|8!yj*vC Ӈ8 F^4tX:u 25ypj+"9Т뇟nBX^'t%Q~>4 3VK-:hH(DʡA?BD)rbቍ0(PlԫaUXQiE2h 96y Q7Dee>h!k]#H";DmA<g;dȑ `ic=tCc,.+:a󌤰2fcFV1蔅XQmk$Mt#PB"^҂8w^Ku01ִz' R,k&$:G TTT H WypE#_dPGMJ:.B.FjcAO(n?"؝KL!._SJL B&LX096BG`$|0~F1a0Ý8')UF( xG䜝#Ё"$Sy:O#C Aٸ"]AJ}OTKbGa.Z~b @W"|O? ;$!4;o9gT 5[(W@X%zӨ,&k-3j<$^"Am%@UF^:~Y`zy*o K@"yJ ,-[yI M+`}dL>|y̔>juĥ&`2!a?*VB2B축YGȼFm03 pH3I>w;bȲ91s̚Qm ,P-[j]+vpDUmd{ɋbڗK&JLr= ~H&)TjLfIiR$(`3/έ,?[-ϥbci.% ,&Asf @`})ahr ݗa AabP#e>4cRp&Q%sfhyT; *0AeѓhJ)FBy m ,7[S:s^pIȉjJ3̺Q(fPj cRʱ(? h(O)Y>@75do+ChL~&(d9YhdH+!00gSXS }KbTDNΎp@cc 9Ry>Z$'IyD e2@@OQB"Z{Ι7; EPw(EiN%Hd9rTsHU\K0i÷:h[kTKs9½Ԥ38IBO$i)죷)QC[QAdP:2O)$N)@ѷ)- :R΀DI`~  fpJ}T,P#`zL-,T q' B` v''I lppe󌃲(0:D9qPs])yt;2.)WꔎoyH%H/&4U68rLCh3B:H VОNTsTDCv w1bIQ@{K`:Ԯə2:*V ?GyVJa*o' PjTQY4uy`Ro:pX! H]G\D4DsP6[ eQ͚շz@Jw5'#>$ 0@UCxA:T/8;*m 'ﬧ|*Žg? 7u0P#NA]TUP*΁\ѣ)/L`e@RQhxӑRN ϗL6"R3`hQztx4;?^AT[\EUy5njœT\ Poֻ]iJTʵjkY )(b Y4s`mG նuW*(P$4H{$B:&TؒZ7pfC2`)AO\HRHg^lCN.dFgֺޫ9AoS9Rʀ%< \ћt0֥7>RՋOdjhVDIq/.fW\,)k`pJO 1Z 0fb`;g!ֻ{ e6')4`o38>( ?#6˞XeWc8 ʰtdM>Lp`N IIW@?1qr`֒~ -[qoIN# 2t] DRpEh="1E_Xc,%JC@'CN>XR$!PJjBz$.儔rvi"9ǸwJ9h![~VX5sͅ  ] ɆSm)"vs!P$]0 vڦ\!". :q&M|7e:{lw J֚eXvGɠwR^!^|dK Ѥqx3Wv)fLt3c6rL$+})k KDl.CMH DZK(b.Cq)9Y3W 'm/mNaCCҜ74$7g$P) }ay&`g!s:i Df!Tǁ*!)>~۩yvѣBwtצTpZdw`-K4sڧ%GJmNtem՟pH6^ ';вqQ, \M-r͉A&ھWvJu(rCCaw `)67]o72hxK콧ݎ)$!k>h(VIKu2ԍA"%^#О@˜ 9 8)(#Jp\3ZQ*wDQeFQ V|I.~mc𩔻&SfҢ% 剄pݣ*i(c6?lt8qV⣛C]xZg[ "0:YĈ=(7x IùؖZ<2GR'F L358TF(,KOQ\|'7/ujVQYQ@Y(y lc,l#/E$TY LtœZE_jpD߁MS('= n))tӽ|SJ3f@qQ*! sr&L;|ϑNj{Uo9oO8E^l(lQTNr`<V9ƏﴩK1jJWEX;x! `Cxn\)2-[3WrM m%YɺOGJ.QЄ5?i?x.P-iifPǿ*5[%$ zŪ˹oH?#T%C=](O ڔW9 "Dr*˛+?>)\gAMp2?]Ď7`Rȉ*I- ͻ :UdTm,0+ l3,8Ns},:9;na'ZTș oG/0!`? $t0Y7.7m>%NOgPW)'P95Rl%νmC(:R9Q%JDlǞf8dOν[3d]Α{Vp 7#>q#Ahna,𺥻O^< *1x00oSRRRTADATADATADATADATADATAh|$yBz;.aǯp5x}ӯ !) m*@\- IC7kBƤWnO/s5o]n#0]w} n}}`b12' Gnc׼]\& ${f \v7A<0ZltܬlٿGa !{~v<фh;Q;aݴi{UznGȎmhe V P[>mzdZin^@| ̖7^j[ ݹ3/Rp#'h^Tax,ppn ZqE–@Hw->%wy'`3hU?|Ir,)rrA?y EV^%X,x>ly~)-p]l\n:v?uS{7߰ἪsO;?=eP@3E ,8iU2 *U}g;D3c:f ҷXMi7TyKOw\?v woQ;&8_|)?\Ycݺ- @!'0~̓>j/XbW)5&ܟ'L OCfM6X쳝+~1bBS?q:6+8vpَwe$hEwq6pRxGKS_ *1א8[nm|#B_*fu b\~]7]L>‘dDޱ<)PEl@qH~vQ A#ό2\'BG мPU2PLF`A,'o Q}ObG>!;CrGn݈.=tbx4qnb0:g-@K*` U,W~urn` quu ƯrK<ݜDOSZJ,= P.E42čE< s>$YPoB 2 s8 L cX(5~ q`EyDKc6~Uq›XDM϶vMA<Ѓ#q+Rz1[5xXFGId8 zy7-'% \.XGhX2U<(,}Ycg}JI'pąYs=UJ}p| Q*1%U:<(@='Y챵Y:kw@$6@nQz*3x!DQ1Ep0Qy9QHD``]1u!xrUw1QEpRqHݒMД9B _`\fF m dg8~SGib8W+,5IP4V2CAQCX2IpGQu!~Q >'z=MQɄeyR@8(Gvf*/ ']#He\#!RBZ8ҡLJ |(؇˕#'!ODE@p4bJhk qAiy8re =QLI&>EsLYNB=+(/sYM3zL_޶!N@' 5J@PqbӪTDj|U@hM1L py8U#fbYBRŇ4인ַ6HLh")Bb6FFcfrfZ zg%H+܃u ;7LH#_4V#b쌤mc0& @K;pyHH0=BH]M95!D"LR:#؄@ h-Q~#d\ibTaFG8V͸"F 3r=5 !Ș$8"N4>S?̍G N#\YFKIɡMV4!3T#B95K>^V$Rq)$M)>C3&H=֎P DA@H 2vD̦bI d\%A95 `ɢ$r@GTPLyCGV=We kQ^*VHo@ 5F(~~g r<+x RONМ؂= KK-:!Veۻ8OQ2J'<߇ %4T68-V!)bYt6^5"є/eH4:7U-"^.sI()oVQyeqT1hSTxh p f"JcEe[RH6oeQ4ɝM5y(qA M)HyZ+Ped}O> BtP\=^E @B&ԟl*I'\RagCyۋpIP!ub- BWY@-.R@(I6ͧiByLW@H?b7aU\f22+M$H[Xlɂiϟ`YQH/UŘ,m~a)gdfeA m 5Q@\)ʆX@㇨qОwQ&ţHN- xd2'epG6j5ȕp(n g^hv&`t]@8hX( N 8ף"h&hZ>a^sK`|HI2&!J?nF-ʘ:hT Sr\9lE@DY2dly62 S8hF&X MDuHb ANgRu 8&CBG 0'^ }!UR4Z6KR:Q0w(Q!NHlziJCXbdX!\J*h ]͢PeɔRr9 HtQ+̘L[Q3.ʟrRڑ¤Yheey?*QI~?*%SuO%Srh3T,׉\(jv}6(t`ө2uTly@8rgv0(,2r ."p}`A&ʨ415Hh7LIr#"FDaj+U`a<~,=*֣>G@Z) eZ2]#x5CWQ֍Ρy:؁v!H@TҊ…I@ٜ`G)pZɤM:"f(DKN"ODK"M)@/ȹx$FUz>VzdW%!Z2R1Y:&ZRkj1)*s*EV]2॒"bǗ  aJbb qNc¥)s*>e:+"fJ-\Qé)&iJa)E, iš&ߩ$l*>٦1͔Wǟ8}o꫞[%c.ʕ#i@Ķ%X2ZZU*uhr1yUx>)sz)6#Yɧ}:6W^|~ZUj;! ]/y " *NI;bWr2ji ^>rh)ڷ㉚fMP Ѣ6-Zl5.ʑzvA"B*ԢSڳ9~!4J*95j$FY-7Zq,Z.K.vHEVNFf/zH:.3 X>:NM@JzD hpC&学 @NWFؖh XGM*(i'2ISt]Au7&b1&G:=lJau+TUG!ޕa#7ʘ_i!af%2JR;ѳHRT,_grlduTwwƾ:4BiŸoHAMњ ĂhPNRlGVdrLZ'ML7V7眅ׁ#n`R0\6RjQŘ:fSULc ݜki{Z) @iʇZ)a脈~tj݈~@EX\ɁBUb:0>TD9!*da|H٦   fꡌB!%ȇj˛؇΂$NRM([ hpx؄x7⩶ꍈ "6"A"+bOjRުJ>8dbC]6[,H ?&#(kJBrB m;WRE[Fc:T.))\Ck'R¨/0S&Gk냚 |=匑$D߀ rt$х녑IV'yfsLjt.62E&SnjM֋.ӥr$Dh=Qy 蹑 V誜"ʤUQ:9j8I k"yTk Eu.B)@آ*rpVIb1R߆XQ~X7)6d;dՅq2%h|4n\yrdGTowUmDASojMrk;o+p oѺ&,S躍JP ۵B!0EL׽Q=䥿'0ۻ|R6 EfN@\t Ւ v"\|Ho /J`Ъ71"֞ Jь#\ud()n[Y d9-"F6gXuGc[M& )D$@m_VW2/>y5f{3|wKnn*; SqHkcv#kmr(5d$*I!F-݈p^LR\V@蛯IjOU/Z(KRBlg>.|O/WT1xd!R/ b(>KvkuUN(8u)i<9&TIQdU]W=9ZMP7NOn`i;d.cH(\RLj( neKPޓjnȘ;T;͖(#MWUj$WRMJIăR՘&5I,;Ӣf P^uU>7 `́~Xԋs(Zc 'q>s?Gd~'xCd\,iUPtj[9mN4Xc/u+ڠ@"qRڦ-*33eH@FBtL:$uI'4BssDYt0BUx6d$ɴ[K Z/um*?WUvc|7VBAmC3 GCC2(A!to؈8q/yWӅ?##xͧ+"{;_L"{ز 5nFl=w F*tiV2w(Ծ0^+nxMӜ+2ERD-Z9u#%g\A"A\` g[+^)Ǿ)BȰ+[KB,oz*r`9"l'W& z,J(iX kuaa"2"p兼]ì0ovZ(#O@PrE]x3%/JN p ,R;-M*5B *~P%f% `a2vdzZAr⅋lnWjpj zJ jGq&a.g 2fuR@̫ sH-F?qǻf"M;F/hdn$с?kIlg#&(VQuY* HBC a0ebs4V\KyTI|eQ 5wVIBss'nK,-pO… ޜ g#4],sL FHt4:UB97% + t-̿s"jŸiǖ󻲜k@bE tؽ!3'pq3EH38l2NԵ ,GҖʈYֹLS0ޗbq)se#8ۼzNv(}jNUE%0ǘfԪR( `ɂe}H0Kh|ȑ|pZwmG`G+Ǖ*1%hUb>32q=@;ݒ-}3ƺϔ5tk'Yu?s]nSV"i'#GW#^2e-Lݤpve3^6ɑp$LTa PtGSڦ MԔL cٜU`>UQm{Ro+M6Wv6m]sRDAm uYVΞG'Ԝm5 1GGJ@x4!I@rq=6q j ͍:䒭t\5@8v !L64P6p6}r @s$GIYqV ,\ ;3.B]Ԟ%87Q{^H` Ԟ q(MSg\.M)_i7%*}x $]|ȍv !Nj LJ}$Jk&g/=uwk'\V5>t7?41{ #CP|`Ll(KS(-Xѐ{,4P=y'< !G"YiNs I32`-TA?KD.B,ndE֣٢)?)6?{ d_vB PQ|(LlͪR Lkm<4*+Բ}&t Lvb,@êyN feM# Qx Rtԓ %nC,H.d~>n#0riMO_%~HPXz8Ԥ)fADxLy(}t7Zф2z4UpyRVX)8wa`@<)ΫHx%YQe Ye WJ a四d`B@0s~`{K 9 4Y`7+70% гLtb\/w!hNU>>3.Á{#귆 aK2 [3&-@.b._:xlɀ0+RR"R B!ortlTȓ~PW+NzX+̌9^eV1: ǘ#1&Fd͗JY+^y6#, fԽ:.|C06 '鄨"sZ:>x:#H.SIa6Z]SF[6IJ͉YIЈKܡnM:o\uz{T uxw~)gsPu!cm|K{Qq9A窅jTjѱF[ @ p ɮSg8{8%3KbCț&RLjn׶&=|pw:>rqe(N!gibt@^4w33;ʡ΂;%H֕7BGzIKz)b:'S9F'VUк ~[-X1M +△Ξy.%XIL+/d| s|an&&7Ha2dw<8>~rD.F񢇫8@3z*n6&IO8hsבpGLPŴ=P=P,^/uNHPX"\{pMuK9۬nJӠ !>~:=̾z>i7G2m[e&rw>&2{ޠ3]ozѭ u5WX:k~E6HwL@ KX@-xۇ7mSdܫw\26!o>rl.к9Ξ'<^ϛ,K:XClrw9; uvE?jqT/=4qsdI^C) 3O?KdLM/'6z{Dqh2<QD!Y pW5zlf$?2.6B`ؖd>2X I|% Q~e3 b4hњ}ecRk3X! ͞IFGjAM-lj犛ہ_QTcC'Gv!M9Gql+7nf5TvhZ M'`-IE}~"mO0!Hh2^7@140?kʭ8qLw! AƈK|$ kY3 ˡ(Y6pH@܇GgSߎ {"bMD%T4#Yn dƄFRٻ6ij /,}T$Ca#Q9/4*!8d*H{_4B,b@Tr*` `y\lG'%#T1с 1' B Dd$&/Xd9<`tN @3;N)$[ C qe# ,=K צf.G@d \Lzn@`*pBqy[-TW@x3`$HB`AD#IJCF56J|0]m1BE#qE @x9} :5xX@)>%7r {AmHHSޅ,?;ɭl.P'o  @ FcRzZ;o B-ʸ*\T6. F P{jHo$3T-G?Y.T8H C# 8(6y&*!\#fp&ۄ `x=4RWg;$g !։Y4?4 R(9d300SRRRTADATADATADATADATADATAFJ55vBƐ\mL,+Ԅ>3:pX‰GchAAIkcaC2v]S>ؤfajh,\ H cumZH:i 6TD0cJ7԰((E2Kev¿i/>|g(G|V<0-H x8Ӎk>k2]!oS,`)n"XB h'q{G-YD؟ZY `S4Rztaưiv/tWoj8vΏ$MLSVjbX;(P(_Ehz :ɀ .f踉+z<;aP|:?np|U1kX\rBg,>tX' RQw aQ+&r v@na8>8.tBY` '6!K6% ~ Gₔ2-  pZ T 9r\ :RB>X놁qAԐvK@tB6ʢloS0<4۹6DjE3w+KmF`h s:Yj+ޖ}d&@*\x,ri H UR̀x{PPr/\B`x gZ [N@86qv9օnVDtsR<3̥Onӳ-GåaMȀO ܅(n4PQZ #d ^.6KX**^T~rt|NBG-+Hk&\Ħ-][Hظ`iB;q(A^/0g\ /:g6b^Dܣf}!vZosD"3:12r[+WBʇ&P5Ԉ^5ĨXlt,3qz+/F!0lXd(LP(%!A WB#C$#0jN+eݲc D)0Me, C`ŲN>o#18wUa A*:,"AAx ^ggt 1g"N抈El$[ rX %l\iTYb"kfp.YS崆s܄Rxv,p]4d ͐ZC`i&|bYQJ&tZ5́n(Wl49CP8@N]wq+b xɴZhQ0&xm3W%s5ʅ7ʪؗoC`.@.@"P^AA(7N1 gI\ su2RW +AP ,hE% ʧ:UCw]$@G( !g½źp0q~ "b?zD ~'o )" pL(2:GZ  `zשQQ=FDNhRC*Cё|H:ze9P$ăE_ rId}8rß1uKqvb-@N4m#,+0:pLE_Sl1915!_؜Kc[.gtŪG!Csn'ER^5l4yK8fp k K;<%qvm`Z;c y(@c AU3Y`g=_4Ccg#8x{ xyF#iLg6MG /Ӹ3rFlc4Fۢ;̸/|Yݽ]B?qfX8M7 R°SNPghL;w;čc`9\Kif4)Er.|VXFP8"9RE51݀ BX\⾀6^^&eͲqQU' ]J-u *\H3K%4q$;bc/pzTKё$qv#xĝw8'ű#7GZX Gyp|_`9M!w(9P$q8\]H R憎Vx>m}Y(NFs8t>cұ#8oHGcQ Xrx;21qvJ8DD"$g`L9%Eȣ$ 9m~AcYҎC,M2hwxs=qň.}$+ ]!c[wtx֧p0{_P[b&#qC i&$K4U?(1czo%G"z{Y"쇿cBB;(E( j["CQ7AwY2gk8 *0U "eu1 61(1"4P^3QQW2pqB{ؿCX  "!5zrGѮID{2Se/;({L9"r Gʑ>)RsDK i4ȭcQ9?JC>Ŝq97z8")sDXg)w#tA/9# i0ⶐJGVdXBfƐ*o11?!юZqw$i1/游@65(-4ι?踘p ")!T%YAG[n~haz_St2-8jmGbr۩dX0h1WKnrEjf|/ȣrK=C3U$g# OasDD@ F6'—lM?H剜./dF61Ǥ1y ML;ESIn[KգQxd41H݋HuJ'q$EGu,\Ɲ7br1@T@Ĕ a@Nh8 }2p+"2eI@(O$USq-<ˠ 0p(8FCLP0l80NpHa,%2L(-KId$xI%gR2'tTSW*=K*%˒A@-9dodIx%pc[2+8'I$o0 \L%؁~ c))tN x\+Yh& I[*L{F$`r3I&6Ф|K&u>?I)@69iM$@0oO9'y*K&EBrd] UlK:'I Tn&Pa%FjjN&+ĐM59[ߪ>$@<ٞ,Em'KIՠ+9T諄>b& $r'S$Mv'J J3@vuL* 3W\ JIǚoRDQ'ƈ,Q(b %SRIL8(JEӊjP(v Jyr#y=$Cd'ɑTRN1uI,bI6N)K4D4 ~Iٚ7) 'Ô $2gpJ)e7;5e2NySzHȔYWrAIX(t$ɔ~J2s 0PN:#ʄD9c!&in %2RMR*W%eL@fp*-CJYU**CJ$a\(h*ECJt*[BU U9Tj\\_%`PLڔʲ27@('%!$rP0VrUgR@鬬K|JD3څQ)˕.0z3 (2C٭dW!Jr&q*& 4rU& fRWv#ʅe7BnDVFbRJ& wJ)L,J¿R,De00SXS })X+Q/,Y6+q %hP2Wbpʙ%OiD`&6KejY4;`&.Β)9h-ɮeY7),O.2mu{L2*Ŗ!%rPr|[wЍd˻%Tɨ$Bp|~K$Ok3Y@Q) IdRd\Z& svHr tQ..L%,R GN.eq9N.;jKԥsb.Sf Rt U%;K֥rw]){ e]R<"Yn-y%]8\2/5K¥¯^J2}KRjyӒ, z9]f/I%S>KJ/%~<_N̖K~Y]/cKIhR `TBz.Mk^rժL@z d`ǨK9JR^*&Ӄ(`0G xet L%Jc `_0k fEO0yN"Yd8x2_*'S5&W%,T%TJ>TɚSXԬ Y\Ø0ngF!ݺ`fvZX-<,kb#{fִŽb!fX@zpY쎌Lfqc8~C_/ՂX2]i9RoH]6 GGlұ"-]JaxǓBAq(ʫD `?p4.q8mH>Mn|"?0dδEqeŸ K\O+ Z4{AcTН{i!|^xcKmVd &%>_Lcd,$_M)3w]n7Ƒ,f'3M1͙31- D cfy )"gF5'xN&%J,M>Ѐ!8E2(z @ 3} H ( Aǰ_DpvPp^ĺĵrWt4 \/!Ё(|d h2vV7o8{x f9hqs0lp 0X[&An\p]Z(>"S Yd5^s @$FNj1Bzϰgvp@h/4B Z@TvtF&x|D>\FܮƨY1Þǽ /419XqWF,td &P ;|0y 1Bv6ëTX 酢y `(aSd}jD4F!Z",p -ʈIW!*MHj"3xuHPg 4ɀ5mD򸏨2"$J{Lqy(RgЫ6ݺXY6Kt"`ݪCu]yu4%PCQviQt &B#L禢)24!xsMBKާ%*BE$MץE- We2th:PB'3*"|Pt [Eˊ~o>|Qo@:5V  Jd,Sț('eDE6©Oj1xlG"M8)D:]DYez-/Gr7C?2|Y5E#xЦۺjlB/^B Z7Xc#ܡ^E hGPW@$' XC+`S[ _uT%<%^8ڍ(G_A3l\q==|WQ͈8@ _R%cm7,k8FGNJa-"|Y(܄W͍EctTFYIj-(ن=z C!y<*;6!wi@108 :h0šl`-Qxk.>G!l$rq_J@qztD:.Q2Xw+Q4*':v,Նu#9侚f;vk@v.>MFnn;{i{Z=F[3ĊSByPY/*`(!`!:?u-]D;6!k}PQB9a 25id2Cpfp#/Di ?@X)&~G9LX~:`ԫWTGЏ/ _G;LSPN /0@uJƙ Zbl.{zn)JŮi >iYLwSS^`EXz*?`Oo:MMj'C@h7QFA"7MGV+WMR\ZFr\T2 >8F M00SRRRTADATADATADATADATADATA!Z&;)DIH!\:E1 L | #2m3WbW~* S"о0^w$?XaC! l"#Z Vˈ`}HNi`T.hCNhQ! -43(FO}G@lݒFlR t\L:&mT)GU)peD\YHԊ#<\YWV?SU9vf5\Yq]VqrseՒ]Y)<>qNJ9.v,:+AAB.MÍ+ky*R` ŮCaϊ:&!VUQx\d^YUMO0C j1Vt\]YwWV=+pӊhZ Pqp\4F_+k\Y&S?2+5 =kCp\<Zg\Ymb)'@a`jL.i־X\Tt\Y!DܫUfD:@Ě4TXkea!‚@3"$qco K4ڟ Y(i M.6ЧQ AX3TW6$[1{ߡH8\P,(<\`Zq T,ts~ K`-TFqHY6'@ɕlsh -W$@Mh6 [,aM:0hNZOxG]2-W4F˵r\]%a#K .yn6!yZJ jܠT] `ח="sյjB+gI]Aז+t^qJWr^+fuMj]\1v5D]`W+5Jz(خB[<^ׄuW)Uw]?"tz^qמUxu.^>\@$c9@'BhY8KSlh3A #atۜSR3GhML1Jk  b-p#XTj@H#̚QDx&@X7Xk]Zk,o?ݿşLgJXbI Xd=՞'C\ C؝ ǂ{f]5 hQF˰uLi`T uwx?86+p2-!Mx谹 A@GR'΀x(EK@C Jj=J< '!N~>B]3uH"2z@6ޮC) ]=Gx|ʲL7~A%)Zh`eU d JIW+yyP82U.` Q.R6éɋ|QBl 샱5vldwUtElJ@0znnT==`f#)Nld¯M1Π\ڪ@J06!= ɸyk OrUeX8( >8j@"mX>&GeP̢"l)$0a\X^f 4k Nǂ%fH`Xiw a6edYh Lh #=\l @ݰ5^~,P`~x݀ɖ|,cx'xԹV&zwh0 {yGה'WCiDRj&!661JŌ^zA[5j̚IVh13mzF!̀Dev ^ b"r$eGtSbY>ıDA2b ?,F;4"vTe t'}‡! |ұW66䰍塙F:XprF0#\b1d SWQE)mjstg@%fƎEmEeP`;F}(veK}DPءC*#?-@v+[^ ټ8kFN3#{n gQ.x3F{cಐ:v/p.gw,a~V+8W/WdA+IY UN'Ҳ\[,J#< mDub$Y;JW6Fhw+Z5 `,}B8t"lH%w0ɺP$Bm`hkYEi%P%`-!,*rpӎh%)Ɖ6!K/ ˺i[Hh#OKPP,=Z34HewWCHZB | $|B&Rl=hKtv;Phj1F%e*ҳV3@@ς>ؗ*jֺµ& 0׆gԷq->feNǰl F iK5/IjWV(ilZvM ʈӮE RmEEkml/8daH:X(Ȧqrhm 6/^Y-H9hg+]( +\2MZD@~J7 `kz}jjQ81*R((m6W lǠԷ Yh,pe0[ ]f@Thۜ6yV-b7ˎͩإhsF4*]Yn)5cvՊ.ƲۯȔrV8f`s$jS3: vV)'@mHO=h?vn#|f%0ʆhv\[/|_H;m[b8?]Zv엋-eC,3rLk>ݓ6WKJ,ztX[=i$Tw500SXS }fGdYm}e~lU6 nz+xd~+$pdj4^j7}, #>b;MQlVF^YDPF,q,Y^;5+uF$!f;hB3t\G8TXr+:ô oM_9Q Cp 0J# l"CQ0׎"Uw7#d(^n `e r\ґۢ:D ےZ r1hr6[.,r]'\ % W'c uČH3E6O%Jp%l k-Ĉ(Vs%`B1D% oNngq5A(' @х#LY?/)8;-2s7iKÉWց:~S_LdZ]rf37q"X<^S`g!4ܬ@a5>~ܬFbM(^Y]3!(u)d!i$˔Zˢ@3 =(Xrۑu¥>6kΊmY `ڠuAM>a@W$}yKX~LbQ\>XaWZpqS=9PSJ ݬy>'6*r{Ax8`6 w[$d ]‡ jȌwf?Y9Y!fŚzS Gܸ~dH|!ĚPzj\]+uf«Jm)?mC')p:E{P\6RNj5cfb!ZeĕמkFtU] k۱n< =ُ`Ԑ!Nū>F:0@nCfР %:& ZFI׾8rVt?/6[*R;('^Uk-%XI僮Zbw5~eau@rY!8@FTyZ|z SNp5*# pCZB\jRh#+hN^B7]dpD*"G"K*>tXt? @$Jx?3ND+56.+Dsu$xddv9׭xUYg' YڄCoktdeOAI)>M,/DFd2t2RExp^CCY;,/KAG-H.6*G%C(,~)]6[:\p. C'@smFaWPb{~/SZ@ݴz+vFNhb)@޽w;o+z^10h]{=[&g*w&J#i W_a cˍ Xn[߲7re5ڭE}rȾs oF 51B~%-c8IŀrW ]3JvFzBpDf5±}3*@wxpmr?/4 : {eb"-Xr_1W+nO/Ib EXi"z)]T;vSؖķqHy M %xxMf"Vz[a\#"";ZRA!^bH<98ИD[Bp]VlሥYkOD| b؝0JH@\@2]ƃEpK"[eF^:i_Pf' C$~J?ŏ#1l" 0})7RĠJ@(оK*rK \Q BJ~nv*>]B E+9DwڃSQLSfp <@H)N䙎 W-C-bY6 AtZ/8QJU Nh(jB9%OKO 9+' wZIYtIF fq00SRRRTADATADATADATADATADATAz _"B $3C&%s U|H $BL ɹkrY:9i_h3SЪ&ͮvtB- /vzϪĻzeyt@XJVfF"w<.ë\H: e#ˢˋiVJ~='3" ̭=!#' AP{ْ3HYtJV(b&sE"[pB)JGGs RGBM<-{7#ZĪ9DR;яxH*:8eo u6/u)iUgyM^;C hC|݅elgT  .&"@7a~lٶopxDh=_s!G?M)TKS>= %b[v5d q5 rؙ݊y6oL5( G|O+%ìeW0.VUsl Q@2M7:#}vYLlA͏B cbhb XXF<*2$8"qD-uoJ{{@2]Sʤbٶ^^Lq?9k@P,gZɪr$RgD|6T22\|YA&EPܭNRL{q} _՗V|B-Vtx=̃>! h=}8Sdڡs$7GwΒaȆ<٭[= N޲y9g }A,]oHǃ˛ޠ.ꎺ޻VgDmyr9#˴bz^~Dx]Ҋ1o,(k{,0 ̘* %l>Z[0(bnW6j(pa~ijb&2-Fơ* :Dkdh"F}k gA(p:)?T%S2KؿUy@;U^&܃Azd.|P gc2\<{>zgt%<&78iyiPbG(PH=TsOPRwn+$zPMWgd.{PJ\u͚͢xr{Jsz(zPrT`Q =(szg24pgtEQHUy\Ÿ(1DCu8 rWAN3c[_ʯ] A/+낞 7̀&_P Tq {f@*+Kpr a׶/7XU>6ZT9A9F UU:hbBC4lBO) *jp5wV?gjXVNW3@[ ~•gt TlK4W~hJ[ ]C+<4P{h%Y3p-,ȝj&`X9[gRXTdG%0ͲC/hѠˢ@XECKD(Q`<ǡzbvm,3C\i zZa bٖfKr4)f[֡Fe.(FStcT-@4f#R"}(\ʡMsRn9Y%Bz{GnhwI!G+ voՅH7,QbiA:$Gg*X=zIãY4 Gˤ'{E:y>h̞ SJ<+L4ibWF\N%mlA9&"=Vꧥtj֧Cs]Hۚ\?-N>#L:g=ݘ>˧*ڹƞp֧#j&z>QP%Ӣtj3CDEkuin'tirS!݌Vn.<ӛ]tvnM**<SkTj|5ߌI0N5I(8Κ gyǏlxii]j(jjY*h3~2\ (=\H#Jr-)P"T9ioN)':I QÜl2kTU9GNXFU<<<:ЉJ'ӉV:ԪU:UAj_: nvZuZQu`GP\U귺͌WV?Khl50PWJ3. L&FwƤ {9!;΁5$Q+< W}?'2@^Ximam[zԨWOupQ}xr'OIy˛yOZ;LȘH/-8(i(Kb9.z*Q,'/ʙ|6_n-@b̆1Ӕʜg36K,‡TƦsh lAy% Ʃ1D 9z2bv(U>RC7ZQg.*f@CfP@ ƆX9y ?g  >_-GE|]ӻxO`qS#K & k&̍b1tZy,q۶`1p{xI ^@,`< ּ^z:iJ6[&YjI${[ol<O69c3i{йONViUx>`)8};\}8_m>IX^'`|GKPN<<)!9P:pbJ Yc#D+-ǛIRcZЩm=U6(>YGR@{`/`vNzSSv7!PWA,vu]϶[L SV\߶=8u_>ٌ#yru),Dž/:)t*/e:ځW.! <^AS*EGPjE ?MńS]PD Rpa W_ VkML- 1-NFTXHZwDB툕d`KfB52Ww@L*-’eඤ}v6LM@tWZ'jN W:hmK {+v"s7zɯ=1&X}I=X_uKiFy@viK:`JRw}Li !A34(/VTnyr77<[Zy΀é3Lu-1 VL:$.Zѣ(̵wΦڒŧw#QGƝ]F^^v Ĝ:BOʝiN %x gnyvM'߈qS8$;&q/1"sC\T>'ܼz,+n=& z.gX\M+uřf: `^֔w.1edՉg*/b,Uyu;ϭP în34qa#%2K~uAvMWYKpFU k0`hp!юTH`em Gf =7S ʣ؄|(OڿqFy<7~)UGr¢FA 0ۂ @: ut`^PWBBCT?0]bDPCp{!JO`2R.470R&' $j!R@& !BV?JSѓ+3GRTk4I:YCxNU_tC_uCX}cguCZd}lutIshJnV7UzWdyquz(eV_ս: Ug[#^ǺbYw[VuR}T֝ck)p(h5p ;^pHp.B(d&L*@W8h84ǥz·@|@VXQY Z00SRRRTADATADATADATADATADATARzuPZupmR^h"ˊozp6zz]^O K|3_Wmc_m~=xT+PP=Q`c3ce 8Dj;r}bG[ 鏘.^9x|;[}Ǝ LIavc w U9=Vf$?5A )u9- grEG%οW~X(Lס pA`!se*YM/QGdHP١0G p1~ i&o!n.;/Ï]{XXOXpBЍh ߶'`Pr7Qe.ͧT]V@̪vk"]&݆aMk !NC8yp$8țFYoC=r0xگ taNm'ΚnبlQ c>X[ տp72A\ĺwئ G'GwP^/7 vj NoqQE-A]P`p= o#NvcNcw:f9k/w»".Hj@=RfXAQewLy?h(b԰yi51sA}SyG..t5ai]}C 1bbf @@0.aU.)!vdJѶ(xu+ẍnO!b0S[/&#bB<roeĚT:RE.a^wX Xψ#aw=-۶Hu~i\E8 Y%=bud Q=ٓC]Y$Xc!J`o1ݻaW-w0<^J?HʓCf wѯ7\P|hQ7?bmC|6R Tx7u4qSԝ]O8Hü/cy*FsWI֭$]G==SSP;sͬb_7iWKdm:rB I ?hScvG^Rz>"ђ*cƄ0]+%I= 4Hq<\ؐ|k#7rPXuX|Ϟi? d;_D15/=8^rp^1x9 oI@A-D*Q/`YS#:p Xfֺ4of/Qȉ́ Es&AgWFf}d͌yYX QݓC뱠lT&DT V,+|HV֐35'D{R2ʴKb_PuKriv悽F^T+ b^߱CRqT9+-񽰥@+'PsԮT s 5vʬXx!f1fUkoc^q&L#6vzb ي4u 6!X:]Fs!QaotL^w;㡣baބ]RdswLީ;+?9˜Ļx"7빴@兑KZ! ԽD%01dj391'}'xD ?Ǜa]}az@\%?% 4̀sT]2կ' Y;z} n%dHrbBpH+:4^I?D_8+ {ȑbn'PI^Mc/l6؈s>" 3qd̔W\ಟYhHHT^Ph5c붘XO&gol˔@"`(5t0NdY[Gy1%6B*H:6A_@7:itTA3 Pφ,ܬ"1ߟ&ND qe澠\Lb"ur!ڞi)<:fͣ@HE Bc兕2S*7m$Ee^'x3u?$ºU.f5G @R,ڋvX3!!4\<4hN]dݔ DD AɏlX) o._6-ݛO:ya>_u,^74^q2a{V o{:r{}{ɘߋK}AA9pKs/M^FRYkhTJA]hV<|߲rvWr~Mм,pB"@,uηGX|e8KbazQIڔ#ĭơ_uE0{ 7coYe]K@SJ4‹GpY/`MIdfVx+:/N(bw_I᳛Mgv|+35pq/E0lVe%@J{y$C*UgvB(O)!B5nqu}j_½/_"M1 .CmCpKTp,=-07]_Cs٬2*T@*p5|4Aw#-@%TO@@=2TXŇn{Uy#PX?`OKoe/``KTւۡB@qd/q4氧u3uEȦTqy&x𞱿s@CWە S3%FN8tI Ɓt 8P%X ׀]M@e\B(`<-@C%XgAȀx~``@K-p@T( ww9@0,3@aZ_!%H+@aW:,̧#@d|t=6Ca( iA1p D AAp 4t>_8[B]!H^-?4)PxPzrlBGڰ@Jϴ&,GYn6#%1lL }NQSpoJ}} 0toulish@ A5 fe J5BV1}m5hGhNNnSWuir}PdW`k)c1Fx@Wf%u!}[clr}7{4i,.t}t\0POu"Gi\qcl}lm+aXk}6d-=kFf(-ucl}\5vfk ugF}Ss(m8!րIa> }8P( *&vF΀O2l }%l~$ymAN $} Pp a:g }%T~av:*Erah 2^'s }R_n@T}sKVkbzu$6EdA%EbW(/l+:A~9xsf9u hhx^ bo.,0V}9~} lV U  C/jUQY zNH$0*9\[id! -I^a€6]e΁Ӂ́Ё| )LсQ.5&Rni]΁LOnu_݁dok`(st; %rxaҁaR=ZOo}rl*! ]_'qdXOn\ށHzN}ge e%r_:p [leRrZY0+*t;=X7_  hnӁ,z-YSI sg~ۀ> UC}lpLcLbV[xgJpq/=qMH+qnb(0S!1lm0 |k:L/˂~dn-a.;ڂVfSC}h eV  hB'5p sYƁHDO!sVzQr![^ q}́'us`RY|(tvS '7>tSǁ{eɀ[!,C=1 5[}aXahYK`Rp fց~zO|€҂<k,^f:ud-accт!׀-Cl -tw Qhu! \]ρGETa_}t?pr?>u#Ir9܃iBuځp_$YWbi,΃hzpn0Uwv܂ނ -끐.g0Ã,r/΃!܃ECovQ)X_Ɓ 1ft^rxe "J3?{cwflGrŁIRLF H%a䁡vu*Y9rZudʃ]skddrB8Z@KO.n^*.uYkHK"LJ_r*Ir(A u! mI s 6&_v^Lp n|zhʁ=cځ)v<jjDO9wb;v}Ʉ~pvQAd%i%s턑w΁󄖄%ځODC5!:o\\[ՃKxׁӃu4&U@kvvM2̄.!\z܄ T}V v^ p :K)m TЄ΃OaE҄3^`toxρll=#ugDvu$->uFă"5q%v.܄Et V_&ye e [䁟/o$Ovo܄ERkjw`Nх^ewuAYpC1}~Xv6<!y7aRKN #v"alńgz-I9kbou13QńaQh텒ˁㅙmUg8J_bp .u>u-! ܃>"<;A@9Dp,(foz$5IeS S|ڂn+h:`qK00SRRRTADATADATADATADATADATAl3ׄ\r-%r+iC5uQ M,p:|R|nb"&k!bۅ˃i=uF)u}"n݅߅% 7J{$ .݂uva6 nc Ӆ!^E؅p  gzLb\ʄOVx % hA{݃hGvG 7Iw]- ؀!8<-,paSہUu5wY>Lp7aKcT-_ANy(YvY/O񃊁+6pN|bg _f+5-ꅘelVqmyYȄ+I.:I}Tyist17L'+Յx z%X/̀K5E2A|55\qdFC ׄSnӇS)xۀ؇DCY167[F8] `PErX6t'0?p _7뇿ق7t&3y : 9nc|O6J^΃B%g5S):]O`1e1v3h-@TuM3:/ k{V}Vh{KnkЄY€Ƃy‚&{ւTZ} HPl_΁b^]g5d ǂW^`/g-[܄]-KVV V? ie mDFHLuP{VU"~Zc]bb˂dfiЄςps؂w{U׈*I܇Rn$Xځ&_D i_ D DꄶH!v ܁\}Fj ܆=viw*I>JzfJ兝K6t j/.W["1kFgu%نu)0+SOCBxه-.X  +-[x ma7)[YZ"C[- =߉ybEk aي[ۊd Cyx I+E@!H@€2+͇ąu ':r0цӆo47_<.8oȁl#4QuuI6K65ueCeQDŽچ[N9xQ}O[Q 5:uӇ늗zl;=FuMzuv*'GI!h:<-0v8r`lgZ k2z̏ ϏA֏΁;d(ɏԏPlڏݏ=@u:v,vDuuK uꁝN= *A$sV&ޏ}%VG_e02ьt!*~l zކ#lCކ-=>-{v#sSy{2ֆ܏.Y3b1d/>ASuJmQ35I]dL$ً U = Sd ێύӍ#Ž$nƎ+ .dҎ֎8Ήzێs .pA;bB5܌9>z$o2'v!EJҏ(Feˍ >u87Ogً`,c8npЍP37Qp*IrzJN,ʊWoːȐdކ2 vsYL: gÌ Shp(+u&! [%X tto*aG]cgeuY(Ɗqnω2^؇$ 9 \Ӂ6`Pd} eGT^ *Zd zEԎ;#Gvv=ٍow'ik [Tփވ2AL@npu) v)?uExn%Fs4_@-ᏰZ@=@X?9UO珸7a4 95BmJ&UO @}I!‘v ?"uHƑ ͑ё6W35ߑzTב\7"[PP& w>H mRrőtA ! % .% 1>VZ! =m5F8 % ~ @w{{,lbV(AbQ,lR5;rFu Id 8ӊh"icg\[ACkǐuE!;ݐc:b'jEO n҇  Gy%2ȀBB ·kQT^}}.uk(N)Tn&vS׆7 vh6\ K kꒈ.%JD0u!hjB"|vIcۀi:vJ5%vlcp/!v_4i5Bl 1nC1#rlQ&icADGc& n hbm5lK !7u#4 o>YF  FHl)lP r vUW)Gk-7ݎc."eݒm1VǒdAyyk9:c@`ik#n%тGhy~e-9ɇmVBC knEm<p_2AQ܄!Xs͓/̓Xlʒԃ]2AC ݑ5C Ց[7!L 'uD f' k8 Y(c29{hҏ!Ր2u[>m^,TW-3艗;f-"tYvL#C Q $Ez5Čo3,-^pUIE܄=A M_MvmxRe8WGG4k, tv sdI ˍ:-p%R ̏x…b*(ً e"t:t=gj7Iȏ ڏ΁%󆺒ip玽nUAFHGQ ]V[Z}9_(RB lxvQS>6&R[fwN3=5! +a.n̏s҉P,҄dj5(j"_+Je"5Wsl5e :uo]\8jː.o򎮓 PB}"c ld>ΐxՌbBU{Ԃ;/xbkQD!ozgl[1ӇJM+|kkQh?Xf(Wvًђzԇ,~ɕ^amm掤ߔɋc[ԔJ" Ta[}tYƄ [3 앒܎sR{ܕ+9bEVst? Y_#U܁v.B x$m?poԂX.x*1a)>+e d•Ppv͉K}]bߒӕ uw 6ډ|M΍IsYea00SRRRTADATADATADATADATADATA-0ܕodT\pbnG6bzlFdii߃Sh;4/zȋ/[FD|L fvAW~e.U) 7GK-apd}wہbdd)={z 5ahlYvt_:ue+Axr措Z n[_IԄ|io͉֖}閑}hC?^Y }iI(!Bކ,qTzd(sqЁ$}1ꖆRRړpݓē׆N*eURcX(66F n ?v?vlR [N!u1%㑡vukyu16aep{#gvvk(1oS< 6Vm u?vs2B5B }G&kPb5K5` 'u 1|5]kB5IKvf*v=\\FXV-1#)K )͓ V FF k) ї2 1t E|Q1ԓ-1k:r_ 2 ًځ(&_?Q) &FjVnSr:ҕm)vVĀ `>GTR{246[:[wa9u:}*|ɗlSbDpn]K?͆׋T^9Sa-<%$ʓ<3y.͆Ó7Rԓ܄EX96t 9 h-p=Uxv`߈o,t.zt I ĕ.tEF(%6sU0؉JT`"q׏K8Sdtځ&k~&@_׏ev׏щVAl  k({1pR2ϑNY$'΁N$a!0t4($9 ;Nr88e E}sWx,YEWOs%*UY!TZ=]WVbV`&ݒlS*!  & Jk!TsBq0ٖJ5'E)#%J5/c9m57e3;\+oJ5s:8vclTKGuD)2A jLN6؋|eӒda΃z #Ӑҕwwpv0 \U?2(ugXz"疭J2ׄҏ[?f#ًIDz̚U‡aL5v|؁}ߕ1Έނ!?`!tvU+oa暨v ,A[Id e V՚nu솜US IĖry O WVXhyӎɀ)'Δ0vC݈Δ ev'`ŠV݇>ؘB bNahRщ"kf#҇t)vɖm]rrȇY?(t#{v9KdINGq*iVcX;[X}z{i/^1r78uՆ;]ۚuvgq"`ΛČ\ ؏+$3^%+X@b6B\d#<􉝃pIe)kƐӐqoc鐐,flox >uvf΃oR󐬍WJr V ꇄ+'.x}6] }t! )0%v6z~i/]AʁЋN{0B\'kvsbv|o Ք4؃p]4>.p3r9Oϔ{|ޘ;:/zb&qI 2uY\R釐uc)^ʘS cʑkL pV" z$aϗXn`ҍ0y3o`BܐјٙR }щ5vI40/2{=9=ԏ=Ae/QJ5Cv38@y͛Q+WM^!dΎ-@=ޙ琓њoޜ}+G u0s~aB2Fnca=qyr2O0'\Rلǚ WTF~FJ7X˔erƛ2xІ_ƜHt? y~u(pוƛ"!;6^̇7xdɖuFmi񙠊VpqݝvFx`$=Q, }ӇC?3ŋv 됍) 0ӀΝӏmщS@:DL`1Vד*jL eL7ؓ>* ,B<_3ٝ9k0(j=V-RU ǀiJkB[&S̑zT_y_A&~ґ' (m<_w>S*`00SXS }b{GƑQv VYt ]{ B4/ 9dkR@O@9͑1-N†R3n)=3ZuFY-ϓJhY' l|^we ݜrfԃM"H[_\P/ ZÈ^]ǞQB [=i ћ':B)ZUs||\8*ZY؞pDێ&ˍht̏L&eCGƓi{3v' ld]ꍥ ˂xq3~gnv;ʝnHs6kTL_7OHKLwÞŞf4O}ɞ6=la9zzr>%_F:֞:{Jɖ<0oׄx#ۋW'Ț~׏Oq! l|^XJ -:)Ǝ≐Wkou2ti3JhÈtd7a{h=-Jw 7[КϛY#:_a*DfSKوa؟pbC5Ӈkކ:򓧟8E'Àܕ#b0q3O7 ٛn]܄lG!C6/)|K֝dN֚'<7:~͊3$ށd\݈ߟWbs,:i܄i,?f}NOojC-žSz牅&u%tb"͉щi n Z'.Ytb{z;&`[> ~&zXY( n_Ay1 ,Ȗ!ًG nMo<@v/U`gNj W-b,pڞ׃ÒBƐђutÐטr:\k12O>y2 F ?vk35PBl1zn~#ub)r PvO u >0PƖkN8P䊫}B  | Ip(J_4kiG+5cV%4 Pe~"7b"ZMV&4w-x H >J0[~ P:e ˕~y:^􋞟Șe*IF315 8ˏ􇖠.HΜ ojeщ!C96SN0/y-8 0]AƟ8>ܕsEsJʟI%@n9u͆g끖e /(}ˡ!)UƁd%_otLjd1Mǁ|.fb]Td (Z!QM_~J؎G !9:u>f.c6Í>ffB*>f=ktؠ"7c)f$͔dWoi[Ei@}ln" ם"9V:96ыo4e盍c 9.?e_e'rkjj2+gGmzuha<mrgKb{lO?7# Buo ۄQ<@ բ07 ֠qmآ+˄ry~B+Usrl.ņחigcPCr.Z^kNhBwsŝ5<䁾ށ;[h؈*4B`%D]T`1Gă:v5Z *rע*a ڢݢ'?h*It x~% ]M?5H3UVO4^k#?vo& ꐰN͕ʉΟvZ7I3􇓔| 3~_]$~kN읙o B5ܕځ "eBw8i U`?;F3J/Cur򝅇gt =niA&;2 V-cI'`w ~H!;sFGy܄r1e ac B*tv^Aodɐ&uh2Q[7`e0 ʠڂϊ偷s")hg_4q!ߚrƂo_aoI!,qքT4vS ׏΁~b!V'6h>ukm׋5_3ǜ*z ! ay+ʜ' v>fI!| CʝEi2-.|scrsU_ z.aܞ!eZء}v7ڠ0u♣5 2<bwᏍ Ԣiaw^ofޢzɐԃ梕9u†D͊N !C£c3uD%ʣU؄y;<H܄΅hW!h,^0ՠm%փu^m}CB{.o8TِӁR%ܛ䐷;R*I͖͈xR?҃)--v5̏NȁH^~&̏'g[5AD 2: #mG'׈rGĠdWh ś7[@yS;ZzA󖣎#ьap֞iwa:5 lEB *;0 Tg"8  T&%&Bfy2 ,kp Jn  uu: % 1p3hfWvʥ\dیぜ_P䀐?7bPWLo*˖͖DF*\ҥԥvS?U@YdKbI(futh苖00SRRRTADATADATADATADATADATA_~|txʟygune:v4K84 ޤL6=);Vuń֥&](狡rpgc 6Khoc !>}7,˄֞k0L>*r.(vҥ;s>4 W3WڡXQ$a'wu=:#8oA5X7eHZO&T;CupBYƥLU (0l+&UE /HKLK LKe W[@c.ԍӥܦhtn.\]Ğو)@ɞ1.Y?ېrϒ vao:צF$B!-",=ˍc񐹚,LK/ 7=Dِ_>uki|"=+E[y?ps/{O4q.1Fm0$DN॓=!˧ j-:B7I8ϏeusܧR6~ݧut@uK IT HD@ɒ`m3٘*T]?/\ؚc#)ۦ nۡH\YzszZd(rn|tvF[ xƣ ,q ۦ꟢7nJ(q)ߡ6RugYTr֣EO  +2 u_p3!e"݊ocsuxd1*k^y9V’0ç3†@\w!! ϧǦHo' L%8Df_c짰% k4&Oť 1r4S ~&r B y!Ũ^.&ɨѨpO# AR:`ǧ}̦.(R%F=Ç*pQtަ^'qnؚg=]y*ֆXl,V_ 苈B-ܨǣp=8v% i bL'te\-I‰sk2ÂB!ašVlˊVХ1e敍t;T 7襟OUħgv%D xƣKn ?l l)&][Onܐ=ƕaUx'-V[iِΧ򩴋IvgsW"|&1gr 1d -,lvEZD _ kJT% $r/y<` y>2=6~SPY3R5k458+P5Q"ĥ#b6! MYOtͨn  Zp?yARy+v%%ɍtEn 2 .  %gu- U%N R5ewaŨ{VBAs|3-񊢨NA5TӧH!"0IR8 v!k44U.DRB]d xQw [~˄pϤMEِ$XفĂ\~֌ŠS_eT@r6ʜ.fJ nL waj^c p `m꟩,êx 窒t`)iwLLeo€p96H?ǚg3ҥuMzĊ McܕEOY)<&g*fi鋄GB끠@3: 3q[QjjT vE>֧'EЧƣ;M^nJΧ^uRnZƛF>𕀣cmKِB>p WAv ng˥ o?Uޓ o?b:nzv@u? mYpc4f`GΫG_ %hRq׫f]GcJ NB.Ef6M4Y79rZϞi/癕F 'kAD(ᨇ'"F zGM=cT! lAk?ЂEsKΆxl1 (1ݖ-$ŭM0buY͕;􁘐FOpk?DTbP+EsvXFg:1Aqҁ!h9=rxv5{d nY򭈆QDXrٙz%I-CѕKޓ' \Y4K)iQi00SXS }2%%~i%O׍%6d߈VqTHn} ՔIk)qtOGR.:Wv-s7s u߭Uy ϋu-ǏȮ;izѮ/ΆC7\kp|zm z"b5߭^/arsj UtLu)ukDu`!ن< Oc߃6ŀ,ck?̐-esk$ H)&[8u"C>؈ޝuoF)!=%1xgٖ46o@nq/;rR߭ƤSb =o(o^٫pqEΘ蔨ј+e> ueץaAF"$ %uԄ-"AFլ4_qU2?ٔU>׃ԌnnZTj Fl߭nisiy2Lږ1-bט*\D }"4 Vĭq/" ob v? [-/\߭-O/ z t ua Popܖ݌ կ!SVMi-?Qu_خu%ȃʯG/a>)1>uRA ܕKhAˎ: 'ƎDR:Y'Ô0:YO3Od o""bv8b ֖! M<[ݝX[5AB L5ꖺ\qSm1q-Čc͋q"|!t?RO VT烤b߭JjtK|( V߭,+waM'|g-ج!دR߭t uQ plx i"Y >O߬k)S?yz7&/ ߦ:d! tVn`:bEv>*I ΰ[%!K–Eф{VAoӖF*/l %sVۀe3ת-q/2*{߭rSFY Bʒ2Sp YAh0_u[a‚TR<nGћa,^0:ΰ.L!irʀtU6mv߭yr >Wu  *no= S4ίnd k|$ޛDId׎АU뭠ׇްkr,ȭ9ձĂ,h` ݚ Is07 k?tAԔu.pÖ = KV\< ް *=n+p5)"Y:ٮ oɱͱ,obQб;,ԱٮGJHZrxı ":p<- -#DZ[5?:,i<=0@uܞg' <+\[H\]Ń(vLu갣p Gΰ+n ]x =ް:Ԕ*DZ$6`ͱ Sj$Ium̘"Y-豧$טñoe<ܯ/)Uw"YAm{{I!M5q r寋n1"Y_ !2Qڲъ'[Tl˲Piw[ъǥ?-ojӲZ96QTECV! ak?UfT?/Jv47 kw" ljұ_˲d'!jJlIL|qҡΠc-ӇO@Hqx&>uڭ) ۭ̌rx€aAqNpxfrޱ˄@gjTr_Cj,tp :?ߘ=;ヶJuN!%3J7*[Q -6lM T3 _ uu= N %γ=J7ͳdzC Hu̳_ Ï1ܳ= ﰡ= d߭?U2€l: аЁ*Y)E#HhLƳ33N%J7v bB0QFKa]9 ӳ*KV1i o i5s ίޢG|/q-%V6fӃY[.߉3*)7'!dYAͦ[5}Iqeєϱ Qŝ5ˁ뤔ik?׃8*фxV厌٠òrHv+( -z7ٍ<*7 %ٍA #!(!>tD!?2F?lVS֑1ը- CŮ:&8]i\GUG1m Wa"'_At()̉jVZAڬݘ}?+!߭z7V$`GRi\ i6=$oqOS=gr֖F(nqBZMp酺|| ͂qڌW(u40hׁqǭ6/A0[‰dŭyŒ 9𔬛<bܕ΂z *ƴ $ a/sbw( w(( k?0 $щA9+|e} 5 l(IԘ&d@g}'IƯXvs˒qI&;ܲ($Ҵ^q܃dI]JN w-q܃׎ tvV=㥙@v㵘 '萑ΊnyvY@ƮL1LOi'ۅu€SOC}q_?h:<ܲv=@J%Q]{lugˡteiݯ^4ٖ]fUbkxhA:.=nyos @o}]4#ҎYۋ^Ќ@Y%<o-ԍ-(00SRRRTADATADATADATADATADATA,ؔ ֵ-ȓӤ9g쁃d zܲ  /]wƮȌ4lyŢtv;TL ٛ˴Ok,leŢuv&c߭aKvҏ,lM{̕fBOao˶bW䶚)v)l9]oܟ]d[dQ 5Gĭ[˦ОDi ~o-LCEMfOp̩~IX$Pb&(n*Iv[җ'! ]m 9u|w[)P׵Ē@k84ʼn,)= uHˣ b C2c+.߳V}bksaذbkFO?t|!KWbMR%\8om \֠l0Ҫ L",Na:q)X }o* @9d(cbSa6bL * !uQB"ЀfCsc?c ̷ۖ,G€#vvؠ-:]UBHІ췖Yˀ<] bUɌ ՁNtCw\Ә} :߭KN ۷֯׷_$g"ħ>=pk8|iFyŢx="+vE_hŢ޷o`[8%fu-ִe]H 9ȲX[hб6OmBpEd x̮sk Aɭ@ͮ-%I鱔w;ژnٖ ;Iu$-y񕍶YM Ķ )q̦i` ǟ߭u҈X߭ 8\@ \|3Aհ'++fB"\&#CXw e&"k&,\pX*24(*ڸ-/1ɯO%ѵk>ao| +"ꟕO߭m@ydf,K+ǰ3A}] Jݶ3^/}?+&΄Y Xz7)3&va!O6;^±o>CAUٖϢ|<*W\fd-/ےvus""9!$ܸў0+MƮ߶gۋܟحэA lܕĚ . "rcv "خ3/of>imIK2jŹȹ˹J+Pհpv"|Dэ!.4hڌԦ)9AD$[0 oEӹ 3_) w`H TUQi5%R2a#E2k'ҮX#Ɠ?}϶ˁ%pL?i߭O-[o+5s߭w >FVIS?hPS -Ho]zbÛi.B Rt;oڛ nČ6o o*;U_.?T>u aUQ[Q b0e+5=1aĺ'twavD &]_)4X葏eZ[: \ 6{2(Niֺd!u7roB6R3RrK6{ezc]J[ij!߭W mȺw*̺p JُN=$ݍSa31cu wr= A5 ͨlLS <><d tA:cճ8)F云ʏ΁ΏяՏٛ]ta& cl,nʙzk'uTq4l).ȧ`ځ}_e ֮ٛcl+?l 4lK˙,l=BnxM,{߭} .뀯"e ._i2ƮccpM,ҏL!PRE'!<vՒl RESEb'NČ_L̻xNԻr̻Ʈ߭ ՠL?Ʈ)NB*9 d1ۏ$7I<<涞;щ+ȏBp!Krl;K &QƧ[؜H xAt ĩ=Ʃ:u V׏9ɏ](&߭Q⻂'Rd ܺ@9!9"߭Ԁ׏"qz!tg[m53,Zlk{}m551qn:vޏ5%ԙ߭8!JL N ƩQ,lS Y3i駆:vƮIE"vTvxj!)s}.]BS lA5q叨V޻H߭~o,mbyi{ SVXR@)=L n~ 5şGY!'.·܃TDM<~zi놶1 ᨅž gǓwr !ÅƾGоEًپpk3gSuo/{<J7̾·?!ދ+M!*#[gtd(\ [ eOgӃpd^Vk? ήCt9@-:洭b 6 >Hxlˍ衫@ =3:|!Ut , Y 0goRu F =9ɇ5؂E~N"j  @ u6*9w$IWOS}]Vp:ˍR&~su,Ywo(whÈU; $&U yI!"ab8o4NOB5 B*üٽ>-uhLKn' D?ü>཈h KJNB+{Ν>#R65Riݱ[LJ˓d׶fDZO؟Fوfrz߭@ 1Y( _[<[8Ԃ; f炚[ZFTYE `n꓉ 7W9rf(tA]#*5{F8G_ƮR[2A]}Ʈ+>OtJ*~{MըspAQ)懪݋Ow#gLcG*EZɺ'䁬 ʩwOQ xW `)lSW[`ڝ8Gj{jd} /K\U[-n6 e_sʉ%Ӿu - O_ =p er[ ڝ[ldW~wgEpOoohw4vRӇwyu2ڴC+q ҵ/ˠ{u 1֋6&0d,okc3LbHщv ?l̽IYNͨ3+-7;=>gp2|]LFbg u'4Xgr_=̽n·͉RɈM h}AF _ +.o}ˉRc`Ȓ'TCakO4ԟ щl] ځ%L!ڈu-t㦮fmA:ω$mc}m45‘٩wa}*.JJ,ǀ3dOc֥,wEȾ4MaЦf\‚y> }|~€|R7ʚۋzm3`~$>J!a(c;,63]M$xCΊӪŸ@V* _{D|}|/#sw5$6@"saz5ob,f|s/*/KCamLxg.SRhj|ey lk◚asX zBy6ks?U0x> A`"c~\w oy|F3y Ñ}BeykjS No9;*/QDm-WT 8|q!9 )cdMdIu`  ` #-Xè&>UJpA|\h__,111.wY5wm`X%"z4)3`~r` 6 >wc>=,1L1\1z w{pwVeW1%aH"nc?esGrWQI)%bEgvD 4 rsak 3u? 02( sp"st=KHV c(b'Ī neľ%m[(}঩bgm~r hJUEsUQU'X' l #VUw_"1~ H?UQUN FfBT#H:E%&$SĎ\w)3W/sBVbC><tY F',Q1IQ'v1-9EfZY*;G1NPQU h} $k{?cUQg\W3S>aiOGbI${!Y@E @hqjI$#}DҺ Sĥ}ĒrL}_"U6SEm@k<b# {!$ $`dYM@H1 `SA_ .E>QĬ}W!K8 {U%D|!"Tn'bĔ Y. 1ZY]ZO!c T b *PE/lR%`S* =Qj_Z"v5Xw1 Q USUVLĔ"[9KBIQ@'BlfH|jĬ:=1F['3]5+bľU_MO]d}Ud}URQTLWB}Zr}]QU_$ N;}hTr}C#?b| R@4n.}ečb=`SxŕXY&|!O{U"{cjz14; (-d "bĻ{U"IőjWšŸ|:Qm sšQ&k"wWB {U4Q)-3 ]ĔWj: 3q5ߣ\BOO'j[bXo= #a)BŝG3L$~ )LAc=ŬUNFOl`S u=$)Tbš_.l&`}4NDrUv3o=9+(^[SŪ`ŕ;^U&X)QtCr|^`Tq5ZG-/\%d`9'xxfWҺs53R%UM\QĿ ĭ` J7(5ĀQ =Ay I 7!GCsQP;\|:aQUS*2e4jGĦ )86wa| 00TRRRTADATADATADATADATADATA| 2&!9rƺt 3wƦ6=U#ĴK@Kjvyh'!P3o`,`B?E;f]? 5+zK: 'b?kĸLbW,=:1G y8/<3@!k%XX.8W~31 [)Dzm5S`'5J W(&Ylr* 5)5k- 4@XscH4LwͶ&;5jlSfzC`cl|EoTclspaf^zZfKop|lzni1 jX4 ]%l1mX_m\ 7d35&)^ W+,-Ƿ *pYM4 x/=14Z2! }:7ǒ6X6+&M+PK(f^ |cGsR-FOxXu dv,k4]C~@XcnV]*$xǼs5?7*%W 2\ 1<*9ƥ@ [9Fȡ;oJȼ- L7J 3]`PMZ:$PWQdFPǒ603&U ɨo+P6)=aGg8p 9H C{ + H(5Y efvMCM&2r4~?Y ǬYemFYok&6[d} mX; )Bq5t7!}#TGa mzYYȗv^#a z\]t~nH}neYoo;xv8Ƿz|0ZTȹUYw2Y9'u5i^YM RfYG1 ZWB#$ A{ *n5/b?&RƔ 4xt|p `'v-C@A[hiZ H% 擔;s3H*C *$A2A"T2''S~[N_rr4@Y2Uw01SEO Aȩ9A5D-4k&Ȩ 3?QE2Deɧ-Ɍ%>ʩʒV|" 9k&R@[LP?U?e] w(/Xg L]7o$5?\S j\5B. f(^@XOȑX"DH~[^.F<:ʶo?tH)9BHT {[l:IʔX{ V|1{H"O ˪1Q_ie%E{bk@SCS׫FG[p f.4W [4q1u"Dd,"3vS "4vDY @oj~ ,qfʼ5=k @jYa9'FY?5u- MYt OY&9l[ tO4D 5@~DdeOf0SZXRWZ6ˑd"YoqrF˕ȇ4t}Q,f& hK('[Wȇ"|YC,&|w\/ɲBuz51 :zfzXU[~ ?!8)is>@}]FQ9 ` =͵^?$ HW@|0%2ȌU?EC6țR2'%ADdPvQ^+P̄+YZ '#ǹʴ6̓P01=d8p &QY=]_O?2p_@I2g[sG9 j7h2CG<-[7+/^ ^G<y9 C: Q:yFP G$ .[&=hoQd(US*l7|J* Wk  Xt ed +2=U͎0Hn>u 1y^:=7}˽̟Q7|ݍAO|O}Y7PC o\0{VHɍͽs4 ȕVUAA- ̱ʃ7!UȣHe#]H&Qx}-_[^7qͿ_{P^y^Il^.,]|- wg^i2OnB2RS d[^!̹/%Έ8̮ʁf.̑t4|l900TXS }Ν&-?He͂SDt2^Ep 4_KγͶ_@_soE^,7vi9έΟ̨8Ċ 4zC evk(bevZΛSk,bD'7cG/c|H"7L6:GAQSXP2[?*^N\ b5Ǽ TU,\N`qu5 D |񠠼 z2,vB5]6"vΔS ~ Ys0f+d~ȷlRx~;Rx1>| Db7l΄PoE(Z CZ%o['1l:]zr̴Z /x92̲6S^gqF|΁f)kcQκʠ͆"͇9[%p 8)-]3dXOe-Qv_c\@OV2Jz.CS1C R`S-RZ@P4QnϮQ\ @PەQ)' t>7@P.YvM>Zh3ʅ!"gsτuajw!#Xϥτ- G?P77:mφjYsϩϝϖφ6rXlϢφdϲGFG1"N>y,w`^=|]ý}  ~; +λϏϓFle 3 e! e)#x/GS<]^zfJ@ dL"QZBVZ`dydS ]Ͻ`Z5.E2hAD6В6$ iMCU7F x6Czp912:Am>ɢ!@fvdc sF2]{Lul#9ЭQQQ' D/O?bxϟ0<C?З^x' "{e!; ~eϑ/N3`ʅ3 &R5?p 8M6d} ϻ ;& 9' KR2`#Z ^2aj2Ѓ7$h.bP3j ϸ yt2K[z} %$$C{ig?1. QI -LCJ#z$' r9Л_ #O40S 9V#Y`ȒYlD1 E2?>= x7>`$ɊC[Ь`'pDmf+x(̭.96*BbdÙ `:1 X!ld2dCh^$ s0[700:IoG. 0KP( Zͥ0X!+%z3A;>d2AY P[vmB vwBjED^CX +PU Y&8&+S)AкeF>s@Z<ED7 +%Zm@cdT]e(=ȥ$&NQ6e em! F4^PFh!*S%0 7?6$!~< Mѥ -|Uʱ*S-F$d"$2OSLM;>[ъl>rf6O]ȯl͐Q>K{ %0QIQS-Pel+.Fx*SL37brSeB:(mP|ѣF3~\K:w6ъF]ст3!uP B*7;>'QdR2yeEFZfo`Р,+ [ʿ>5D8 ^'+@ `"\&R ̠:>͏,?WQ5{ѳl?7SѨ\" ̐h&Z ­ ! ,F|1(Ҍu;%6.ve$^&X:AҚ| =Fy9`OS+ dPb02A]+ 2uFD XQx4T>h!Bɘ %2BN,tsۍ=8uRҽ:r 3dTUx5J.UA oQt2p F+ eaҺ5D qҺ5kmϭjqDҼq d҆~`WD?ms{yW$M`cl=x^3HAdɈ)u Rt8=D qu:#~1|. QTӞ\?З țȁTΞY7ɡʃͣ/;'Ή<4' cLJ"ɮwɴt/)1fo648,_+P1=-d&+C:' 2Y)PϠv"}fŦ Uk vT˙_sYBw*'Ku:\З.-9l03C 6/S2[2\ ZG?,>ly ?Wc(3=Dt[?BT3s?Y" >ta' 4AQ^ 5s &hҚ|=t9=NgӪ h -A' "Pdr T 6=)zi ьњ# Gg.ͱ a4U"8): ԓQ4Xt~"t? <DϚ' MYQ4--S36 2T ӫ-S(\G Ծ,% Ϯ/l`O<lf '@5p/,'/!M_'%:>x(lӋ/Z8/Z^W ?^{/A[̈́GL5"b! S49lTX'?2IQ+$EdQy"KSRdžP7M{@"O{`m K!X Q%1Bͽԑ{Q{V _9.(\6V4$SeD ,W4Ԭw@09p.,D -#IdϚ 1-A.J~a.( q395h Ջ ԼT"̯JԠjՊ |SͿ_! ?2Ѷ~ԉ%Λ_!՘Z X ',)')ӤTZ3 R.|u(\[ G?07 E :JwS >*\!f'|tdQBC!_yR..h ^^Լ)DXPEǩSѽ7^;Y s\ 0SMCQ C P/YB  A9EaJ7?^˻HJEvԓ'+=KPԺ ˦ ;Զ{Y;͐mx/{*&|ӶˢH3{~k̹/r$'o'BS `+ˀ]x?P4S̢_EWZӨ]˔6NYPb˕yOk?h˻~A2^J E˽}t^8& ~yxOix[Qq?o_L 9,bz \ L 2;!%o0R~ u2G1^\[S EQ0o 6Ņ?Nս>S-ەSm- ~6Ϙφ:b:\ |Δ&%R~ X^e@4@'̐!bVΡ}EQ;ҫ]eYd18N- 1֊~ й2k7˂˄rDՈu~ 3f˫7֜f2!'wyA[B JS&)7O4600TRRRTADATADATADATADATADATA`6"Ao v53 [`Sz)OY5 WZVn)!տ_?PYBO?\\ֽɀ?Y>B*)a"&S-\ /(ͻu2 [I!Zu`D?2uuMRձ2^ !cu`-OX Z|j@PѲ4ʼN~WkզD,]!bʖ}@ @?G\ /Ƞ%3mec}f~̒^[s Ґ[֖֊u9JփQSWד{˼)Rʃ@! +8YӨ2t F$ O"Y 3 [^[Zo=B-$֏2ZWz̽N[.B9:Q, B ZAOV3\\.[F?ARWG)3"q1fW׋7` 9 8O4mdD|9͂Fm=L"إv }bgZ q6؇Z^Q[î/Ig Y5/$rbμ FDHT7W؋WQhإ@اC( |>!|"Y\>ѴBO!mԮ(o6W< ,CY 0C Y0FZ@=w͚ k8KZ֒ν[Λ<_κX~ f̴yA ϯc&KZ S dF0 HكX6RG>#ј6Y[z J@>yt nH#~~Y\MΘs@Q6R@ξ ͥʟn*٘<5;=Mp 8?a )^,,H?8gP=<YΛGQ_3H=v<5-U6S p3و˭].cu8oeSJXou9[-+\OZDfE:,Q6_.[Ԩ& 5^`P cu 1d;87y^ 8ش 5A8E^)87 j+ 3ٹtZAS`8٬W*MR Ui!=Y)>8iʶF1d{_xvPe[G?>6'ɉ4 r\1ty~FAӰOSX 7WZ uK7SRBZ^`DSd'ڰGKF˝9\ <\ʒVJD^˕VgÄ\x A|1L\D!"r$>@Jc) /Ռ[)D 2abN??-1|E~FOզ[@^ձ(LX?c˙x(_{}ˌ[8JlD^ZƁ@~ =GɦىS@m˃ˏaևoTQ(y4ˎk8h5,>Tyy{y1 d(GTkAs%=~zy ykץ+mz5q=x5 X`+z?_͐yp #JfEHpvSs&5 ăyyH!!)t dd lcv1)cv2?\QUxPv{yڑyeD BdUxkpTe y-5N2ctL )zO t*)my; ۶vk?Pl.ñyyy&۵)F /( a"6-~1͑UT -3Gf_e 1j3>ۡ'fo$C5fo$&yyF$caF0%Td&|*Pd)nT*y`V"7dn6A fT"$@ɠ*O c#ۼ0+x;jTSr$>1 +e#?:9l HZ~z`2]T` jybC鍙-)Khj1MV˵hOA^'V Jh& '!^ J*\y{&1' ?QXҥ";NlQ2x>@5 a s32nydƣįwY3XD' >s5 1=xQ Os% H|}ҭu\4(<&3ʥ0z c|7v9%ۙ-sR6c+g#w3Nicl\h5|E^fn̵a]x]Gn]cz]/j̳׼Trf3F cXۆHYr+DTl*{t<лq6 oT{7 PK @Q6 ,+lbdY5:B{#;b9{g+Ld84ͷ܇>eoTYxhHEyq-4fh3 ? 8&gadQdD/4cjDf Y4fBst'ج Yx;x: S!'!/\4 6+!6 xeE"@3`n@P2 &>C ~qTI*Td2S:4eG'Tl@c>R{e36e3j)nMb "t X6v*P cc'[6W%oe[7 IC S~,dO7ݚD9L;{~͜3Z >ݸ $!a۸ oT~3ݲe}eqceauݗnm|QQlkee0Z C5 }w tʼc<3Fl? LM_&ۘ)\42 yvݘbݡS2g`91ݍ5,B@@: [`2, rԒA5 +T_^;Ib"6 $& \Ts6 1ܽm8yݾ0 ے8ݻ<݂84@^n)H؞&ϛ~ f)#<ܳ ܈G0E{tݾZtb_n dfy-APYR">s0' gm8'ތlDWB65D#pnc ݰ7 { efۖ8 <7 3!B3 =A:nD:#'4$F܂2 jdݹ7 MQmT[ ]޷7 H-Ltd=[#'{Ds"BR#',.zw00'TXS }Y{'"5KD@:@ReD&9~ I) "ݍ۔R3,ރ\ Q [:x@z='6b>ۃuet M܅6=gVJF,66׀ ݠHHo dH? ?xARڀQ$J@ΟǀA^`6!?%?&A9PMN4"Xս^_4cl^k_7:cfK~t_P{ O=SSS&Vw(n]Flo! 6 TZ)6UPEB,o]5Ki0o1Kkϯ :f(?ʥb%[*RZU/s#8xƯ LDDdoVw#< 94?.{ 7GZ~JŒ}X K  %[vss} ˝!$ܲ!sEEXB=rU_x~EsvEfzEacA@af@Mobz5hc]m)UR6"b_Xnow6s47,}L}Y]2Y6ƂӒȇYw ]2'2%]}^lD]Y]%2J\f'y2 2w A'`:CL0dYzXUGtR;lXɧAz_s2<Z(35GS3ۿ?KhvJ7ۄ *5HSKz,![h!w(qaY(^Mѻ^.^o ,JDtbq11W iq1Y1$-k Ac[ϑcL@03u =6*-BYq1ZNtY\0,lQ7 z_xPxYa_sybd۷͌-ʗeWǦknb;6^TF0OBmDT(7^A(VFݥ7Q#2^}\nO X} J~J\AQ ~ lAo7 wAW~ 7]E=r6]EsY2D_H27lDLw&l4k6rXxa.(GL/H D~:f+/eZ VVFJط6^Sq3s,VT@gA_pYQ }sAWSn vd^k_JEǗ G P Ig<X;Y]6[Ye?4^)XWZ |E6`,`DW=61NNDOC<3 9a s 7AZ>AxYV2 7< ٌ'>@9a;9= T9t \4TI7ݍ%>"le5!y}FB/`\3iڍt5YkG^@\?@r"y` A{Tqw EF"x=5"oWD`1zDfv:+.+T=a 42 )D>TB!bhFoY>cE._ߌa%e`[Qx@Kb )YGeoz3"-{V/wKh=Ceisݔ@!+&7? z_'?KЎ< \W PFgR z9 3H/G2G \ѱ)3uu8[92GtFE"oR Q |879 36 R-H$FӐQ7GDHq(Q''DZH*DL3*ć9 3vd8FuS(FO 3V.- _cA3<:&ziAlA.]֤/d~_, n -=7 ' ّ jt"=_vs |Ln,\F TZO 8$h{3AAp!ڥ60eJ2mAA A+QGDK: BDW*B T[IWxh=9 :@ Ka,)^xP:"{JP ӎRP3s*?:5fQQ6p 0>)-3֩VzFRb}`#){9THcIDm 40Fe/.Ⱥs0G"͝<{%u]]ŷG3dBC zQ^o8IyAA$ `;qؐ@SdAJ>q݁bs e!bӲfW?#??!{{2lOSA#QPL[l!A:M&?V} ;l\[Z[O4[}\_Ok\OEgLyh _n_X \NîSMqRpvy$ָ7:8~y۶\ą!5D & pX~BK9PvFYD `S@YpvG l?2SJ6zpmpvl,FUnA9p4|,6lS F߯yŸwX~lQuۋ Æo{9]"FVy)'v`_jߨ !m7cC B)K!5E",Eyqvtvv;\\M t~E>?E2=vpi| Rv\vvyX~)Hh>9 |vr"ջc8 c ?_ި&C2y9 uR/?QFQ>vd GU*{v|)-VVNVҥH 7 0WTlT_&Gf!ORG(8E z #v(Tړۙ RW{ ߏvžw.R 3oZ`pa0›u,D"k!mRz".q ÿ » E6u0$¸{M,r+j& hu(LKS ۚܠ>)! XC #|Iy+ߣw@#=V_l 1PR=$FHyޚ>xVv,Qܮ3)VhoKF(] #_Y&qE4 qܦ^NBH0g( &j7[F2G3qF #)[eB"oTadއ@H[Q235G~dM(j7%M[S\8# 3n?ZTwg`qeSRPO K As2+Ik&Q% uY>z^NaXY 5$BG͖sHkG @445.yC>rTf#$T"wDȁ:6;H*q< 2ʙ ݦۨR4h-#߳ݶSVt9ސyv:,E@"Zݾܫf @@dR܎2)Fc^NY&VdG޸d=vވ*԰ݺ>ca.6ةf7޸ ޭlݻ^6V-C4 (@^9ml6#3g>ʅސ2,.;i /ް42+84z=Z(9cH"?NHcZ DBݽ="J.MMQPh=FFT%W`9Ei"`ޗ`e'*JEB of:qt޴%,w37zK| M8{C޾2 ޼6zɅm{ vM@CEu! L H$o:A;Y]q?7$A'?ޘ{O4*У^F|A^e9g[ 6[OzX޳f;޻'3WX0Sn&a  ^ @?L cmƯ5)7߽C\流GCpy|yxhs]RCh1]B&z]Lp-@ )%3߃sܨ XM?89mn6=^@ dZB+׺ NdRAzDF$|''+Nߥ|S{+ tZXB7`!7FPLݶenOT KvxR];4SlN|h{ ۇOq_^ے_2܋xL^"Op2!$ "@Y] oZ P 630)2qSztw;W|Q b-#$oٍ @>؁#F>!asPOADLO+G\Ot"C{5uYO`^5sܧN9G&m ޗD O\3b]#2}\,t[9_HԨ? OAP"0f;(#1U2}\52ub[RU k݊ ,$6Uad}f> i_ lOL f_*q,B[4u´XFC&]] k_/v>\)PW-[f[Zc#Z=8%w`42=1E)\d'2H&IPlSO\2g5Yl^l^+e. e'+ " @,b<'`=ǣϋ/?W_({4g} 9;u?A^CPzgR,P([wBe~!N/ ql;X\4ep=t f|n2$|\@ *ڸ~=xYu{Q:zC`79؇5G` A:<'d]E!WTJPyxb gG\ !hrfOU V3 .\ \&ԨDb .W9; GN{Fu ZAjZvIAKgW?_\2[?@ 2"ձ ly˼O?^H=ʼn&. <w"w# dmK[=/x+O{v HЖ\4ybcv hFQ®,l/4cҷJ79o=Uz)- T-uQ/f&H+}Y*A#[h@Vr$C;z < I7ӽFwY:eGgG G" \;kn7 EG7E E:;NcZҰI݌27}clGDw, CU38H $4Q*\7'!-"ӗF7>!a9.HK1h9 DDGGqRG/3d oQ[w$(D3:,D9//D?y4"B&D']AN_P IRбG'hZZ!kAd ^pA.xA;`fI uokUmz'G9_BE{G"n{l=_5gM9|{I1Q XXҏS+څdo ;٨007TXS }k4~-1;lh=Y @JEzP# {' )3q+-H,#E؇/9 <>7uH{oWIzP΍Zmt{RSޗ;)Vp:[6`6@?%*5./ٰ]PLSf>=uJ:[6[[b)ly 8PJ";O aDUOER?5`N ].S0 #5F .2F SPeEs0E";e,y `" 8Ai h5~> &Ñ6UJ7ce@. >CO2sw` Y<Hw({[6m$"y$.!3fU9 Dx G[v-;D R4H,F=B?Br+︚eKTeK ݸe\+{#AseS-Nc yd P6!$έT) e Os5 zߏvo\ y#UzYl!+i7,g/_ ;+6HB]i.(" n,TS )' 3CF[KM5AѳWcsQi3bv) c$S c j7>>A =;76G@E|e^Բ6TtE%] \|lw:R13{3{wD.6 %0(  9{2G&LqFl 2s;P0B ,8:3<\$ /'ID8sKHRCpK35FO˙FhU*avL HzoL`U=xxB*@;wTw \vjbV>5'P*{%[wlӌ;8lf? E?W ̔e,A D !%% u A5x35V%(ݑr! aMDL8h?"kY X}RbU[y?C;:m-"}$@vQFWn`)U bG UC)*,VvvXV,0=̼R =/1=T!=)c(G?ςE/d=-f<-.'.'glЁܫ^9kX?]IRf #~fJVUl&{!3PH/%o{_Au]hkizK|#~o,(y4b-%-e oxO}- 'vy΀ z4d" w?J.FR=l !M,x27;eGGxtZ"q 2e @? |H}-ф"I J4 6R YHR\ q\<lKW }N!|=~>|ly  \ \{z zHoikBC(lqhLBePp@6Sv1ܫkE 20b:|Fώ۫,el~- eZh &X'1$E"ݤl>"lDǚ|Ev5C|zE6^# ly,Iht0K4fp:&} 3";w._6']lX&hxEfB/555%\%k1fJ l@pE`W~1Yj(_zXc?baBkc-܀Emzl@l)6kft5EQwc:e1 i5Dn_U| t|(@|O3UO#T|P&y|c|J+sfy?oen ^`;B)w6"cA6"j&Q ZX^Z7L3^ L:$)1=I^:$"R^>n(H {X.^i}Z>w Tq5^h=.)ms^8a5xOr5VF|n@} U(AQ /=kzG|@_F-:ff9A.)B2q~;fB*| vF LՑt$=c00?TRRRTADATADATADATADATADATA9Q/.j1A%CM7# |g69FGSY7:y7don@$cqF*>6)*AGJn"zw ) y=Dq:c9KB[pyZ7='79q4T0b( fz=g =z?i/Z-w7f#F8G1EJ;!e6ɻAZ1f;8"ՋX's~) >@Y Hz/ =!C@ ?3*"8x;C=Q:E=;};H=J=Lmrr4I1G=a:S=n4B>PZ=l: 3M #.Hpu[Hs?B.6A?5"F=ng`>/:.+d.=_^ f?fvf?p2cO :"B=Cu :Ceg*B=9:?&W>7*f=>)>:PQA:>49ea>}=%>-> j;>;\F:r4={2:oF/ ۙH G?)Ya QP@Oo7<38`YDpx{DbF$ lٚ QPtڗebSn!+X1;wlR/?9'+#21H>HogZgZQS|kTir+|/hj}. 0}yU{U(}äw0+H+)k}a}n}a} L+?Fvh`m@t@5p1bn`OOqs":k2S ?2jCa 8D;T|c7f=v'nnNU!Nf5srOSU˝]׻Fgs57vfR&9`M OBV*vhZ: ,e!5)gZpę*.r /(ZbC>nW '\DzA/r)&]66%G";8$= o[77~7jPg܃<$ s="J2C"9&P"A3{[7,N(/#)|G# F'ga⾻%kA3Ir.$}Snex E7 \=4P)Z>:lw XH<'١"3{0'\/CqH,t ;G͚27.u ظ.YA. $.2 "Yd  IHLgԧ*(H_"Y@\3kR3loc9``oFb@qnW& dGA 7_B)|EpM,'fo$l` LKhDk P#h GF61dc]BO}!%F!yC}# #xX+:gNHlKq) Qx+KH @"NstlO]'V 8S=QC FJ Hv!DSO!"9H!ڎR@"V(cI7c7D W@t-zؾcYR' } Bq 8cUHchx?i*V^ &Jz674Bp)|P44ZE/%A/dè=&A˨u}24x2KxfEOulS&dz[xC]cY 3qMD3"!='An@ڼ,&f7.y`FƖQ^6{7nRKl.Y#ٌ!(*:< $bXZqHZflE6w4TQ# \jL9X{Zn]{_UYlRhtBwY`yl_ aMF$ibɼr$E\R'X HowKk_'1UGtmv"^S1 VCk]˞*HD2 4ZEſ?DAFcHIKx5eEgEPqlEnk@{]cZQqt*\ߢ/ _fo -2J E8msQ%027i;j^9?u@PmG$=CV;"$=:'ge '$,-4|9n9XFn!S-@~$Djo>޳nb22S1o_ 2 I F&nO!f[ Wg+dR=I!|m$ R!mt! bgW?_< bv< 5/)R!n*t,HL:>/O9Rd9HRdf3SJD(/d0T'V0XJrZ;\<d8N/5#G_  K<"[/fETi#[@k['[R:2>?XY3ܓ*%~vj[_u7H w=s[?@K`vּ 5n̉FTsCu2$6aX8B Fd{OW$sHy[ :^c]zZ}|(3=Dc :$Zؤ@!6MZRZnq 7Zch(?r e2^Q@|}q &4}\[Z d(Yvaa'Q [01:$tϝϖ D!!9c#|JCϽ}@P,L-OXXuK9_HR]!fGk]3pp#ud6Yhsb~1\SE1ψzϤ. Ӿ6`٠.>bQf-O<L/!wZY\_[Oޛnwٰ@]bC3LF2% 027NjHZ٬@IZ OPZ6QP1Sֲ(6iMYfeveZH.c3-|;Ϧ^[sZ n"+Z`>i o؛J7?^/#?oWR:bCz*W3NXa3hh=^fyul$95;YwR %fr<[RЗՁf66 ;zπ5O٫ wЗHl?.f߇ne6fa4w:S1s { [ _[=ɩn65~ X8pϘ!x47ݩnHfvN;'32?Y fޢ@d@YgtRXA=Y3E DP ?Jx~>ͥqZ Ҿ6:qzibZy ` 2;n:00GTXS }{ңH}`69{HwlɆQW#0"#}s>#?^yh%R~ @G5$ B{G" Q)p3 :Fp2eM'otqQtF$?6[=elK nQ P  :(7$ ؎t g9z fȐbG  )9x*F$%Fê$oTCCׂiPC+4*K5[21 P5zfK@7 m+H2L[H  ̴ %vz1K55 y`BK4NXKoOLm_6KyߖY_hRKoQ;rc?AZPbZG)fSr"'| "R#GZX '9z>7T|"[iBMQ6{$<AH5u<^OAA'+@rZ Xf&6c#< z.,>7" &<Hy~#_[nXYr@P1DErA!Q# Qo;u-c#X>qȽrsVC5C2^12X_[WyB&ss[\V7 9rQ ~M[7Ag6@( `Y62_PX㑤USx UXIiAZcf\B#|"s>`| ICbJ -@Wt*a-is6??o|`xߙ11@n>?rOOL4@Nn7gqx|V ~gYS4~&{q ~"A{XF:n1ΡVό#*;ЫV^$SR>Z3{vG;~NX 8L# o Fcw8N:RwMgRr ;_*% NM`)r ;)_\d vdRٯDZR+p]^YD>{RUИ6z \ZJ:3wYTYkADp&P4\}SKJk-.^ez[^5&vr&sltl+GES[tS!1  5#n]!dA='~W؄*?^J*XcZw6 yK&Bwn"% U.2D8 2TXX6?CkHnc1F@9 vs -0 #'] b$ f|[ZglljhlnZp:$('B "' v^/c>_[mRd^})%(A1 X]{z׹P-"ح$ ?4][MnP7Z4g8"( d }pٯia^\2Gy^YoI^WZՓ @@pZ(sZMB^` o;? J.YY<$@z/+SF;^?|&[ 40-1 Ul2h|j |}zj iPJh#`M<;:n}?E13tO1RXafɹLCSo@6%%l低O$h t%E-w"4y]5KyE]SF0F!VtúE]ԸH SB])EE]8AtF!:DPE]F.G-._m1\9qZ@iCm-3;_CdG4x7qfGyOn dd!:&~7CnI YUT] D-.ACDGdtwr Tyj"8x7vfRsFgcPds3-5z@3)՗8_D-.RQ)Zإ>X'se^_ 9^:C3W"CEzAv G/ F2GG E0  Bzhd9 3KhDMGJH1!D47>+Dj.D;EdH"~7yED g6fGy~x' fdufXY :.On}g%%FXfܶ fQr3Ov\wNTeEef(*K>g(*`"g\].Y\7c6о^;8gs-:g;5f?gL/ iC=IDW 0qZBw[Y7 b Yͳ$d7:Q T)fX']cngll`Yb$ fE[ZkcnZp:$('``[^Z?! |la_veܿfgtBQ3nt$d7&UgzG?DBߨH#Qp_nt^zIo't87:"|l7)tXypdD"])UC"C-.3d -.dqI2@,WZ C-._m&7CDCeBf[Aa>WF= I miHcAޣor H8F~ [ Q; [E2͛j |'[^tYJ`#1 E'6| =gE2a % gX z_L>>ΘH,l"W]\w8 5 D=4_ M 00OTRRRTADATADATADATADATADATA.r(A9qZ" e_n"I~dA! 9qZZ^{o7J`#1 \.c87:HwPJ-< F33c J7h{# FP} ^m?t gk.[*=Ar4RS]xZ7})C0ݑݽQS + 'PcQ0.zzUP9qZ" :Z7"+ q@[_#?Z OqZԒf pA9qZZА%(2HyRњ-<3f-FR Z-7R>hM }΅ZU"H<;~J !c#@p-O d ˓Y&7"xSQTS ,e 0cVeN*82a\?"6!v zʖ):lGeFV ~\GW gE2i6!sI,kɀ\0D :RU 7>$RҢ[d7A 1x/l!hoR!Kd2"R!S"KHt0*7U",0Z Q S= :/$37QP31V#ѯQP:ܖQxV#>P:܊7=FNl!ho`!Kd + r%{%KHj8w"i9aj8,јbAF+6!`!{;w8~~N q?֏ד?"6!vqZs"ux87^ȌzAe-?H 0~73;_neBi7 3$O *ޔ}Ki i!3o%o 8ƫmļi2i/6??o|`x?7bc@]<-=\1 W ]LCoX&h]fJ@@MRC`037v n"c"հb7I Yj e'6դSa\?WnYOnr ;)r .rSʐ:> (X'[} >QqقS f+^X 'V8?O!ٕn:!ْؼ'!B ')YAǵzD #A kd k"@Qd }"l4b)5BM ' @Wǀ5B0 i(\K ~ .6p-Yz Zb) w ~>?0ٹof=0jM"_a.;X'8f^"ըDg5QB6.^Z5%]}p7Pa^2SOZ.6'ذ^k@]9xt8TqQCKB{:P<<4st=د9A\"l .i "F ͈ٕn^+~ْGO 3)YXu Jh|6C.h kJ4eX2=xV Mk?, $iIZZx?F?ZM$";'"O]#'_o4+ΎQB+{\qVj/=VMio=E cUo =E {G(!ꔎ0+ D G?b), G 7 Y, әf+ D o0 - C'Sb), S WW,W ׁ0+ J6ّCO&b), KpZDA0Zh!~7L{#: 1~ P|TUS\tS! ea4fUF܂ C[wIu2>?$.2a\?(\,JY?>dN[[[Cb9:t=f HlEZ|fnD;E Y&Ey۵QO=|=AF,ёQL'B? 'L'B? FL'B? 27>"PA#L@%S\́r7>*yכOԅh&A9=QV@^NGS6Y; BNOԅ#~Tm=D _X7>Fn7>-%!7>FaB'Sb)BIV6&DS;c B) @ԅ#ECT *mPB[:@ %0b)B";9?r Bz.@ԅ Ӌ[m@i2/S;h>2@ԅ o?*e _/>S`=;Nk?B[٧+8-*e mz[^ \b)5B bQ5B6z0 4V?AOTV t0~3[#i-։zfl0~?8 lO ;'c 4։zrfC[MyzembQr `6HD]e } "o>BqnB\KK*0Ҫ|KOvzyW۱ڮddm#r +~kCKXy2c :Pvژy-gڿ Y4*ڵDsyyڲ :Pvz-gڿ{1Txps>lKa\vS)eD_ lH@)Sɺy'۱#)h }*+%Dњ+[WK,zw[311{foO%M۸d3b {$1Ytѱ#("h=F%`oydcS3U7YnZ,sAb2tѱ#(+F.,#e# [o%w;*f.?aK)%*f"l)Jt۽RLm3Kiy|&ͭ}iV m1y|2~2'|!z6z``IK8[A9ć H l6lەvH@ y$sJslەvH@XU's 0^i&4}&7( @x˒%zN&.v͡!U"l-elmە- Se \ߑߴ9&w$vES7~5z{ !^"hQlw$ 2h!QX] ^"9!=xlpfP  6d+vp@2lvp zpww_E&<vKIKpwwecP^(i `aG/6  6PxqPxS S!h!*G0~M: M:M{S?"8vח!6 h!pwv00WTXT }ח9m@iD:y|2~2'|!z^^bGL c5PlXPsLEz"lwyesL"c5Jles/lQ] +(ƪ#O"&)$)nYE"&{(okHl{ww+- @z'G35? -- Zb(ۼ m- l Q0' dz`"8 LJlD "q J%" c5#l$Û|) S [ai ŦPrC)!\Gg# 6!v/< }R )!}6PrC)!\)!J8Ʌ+9?@Kr%p{2`|!Wk <]EIJؔ yl4] \A; ѺY3mf0ica^yWk W8;v&ykG F aK;w< )&V# b)6w S(U V}Zە4Q ?S3 .> 5K5 "T( ?Z\Wfrk@0 Z& GR?ޡV& . Y,r'# b)6w MVD VL U Zە4Q $,. .> 5K5 "T( ?Z\,&wEz >ܡV& ~/\aMPO"i~**#|ƟB? =;]/!Uy̙] 3}/ x@ t*a-iYct*a-i!aV n\Lf7ߺ '`'Ki ~mPJy ]HPJj~1/PJj~2/PJj~,"PJ_q ]/PJLJ7j~PJL*j~6/PJL[j~\PJ ]H"]PJ: ]H9/Q]pJV ]k /HQ]pJ64D +X]yY3JkRD f]a]${j~$/Q]pJB( ]H;zUQ]pJKj~C{2pJ ]! Q]pJ  ]. Q]pJL RD "zUQ]pJQm ]k~]L/JK 9y/SJ/|ye /AJ R- /AJE\HN/AJA\H= /&J@X-"HyY3J^-"Hl~%]$)V ]H=/Q]pJ1pj~ǽPJTj~&J/c 3 Q]pJk~D / '`'a/` B"ayY3J~ ]/PJ4 ]HB/PJY| ]*/PJYQj~~ʽPJ ]/PJY*lD F/PJYk~D TyY3JR ](/PJYuj~K/PJ ]7/PJ ]; /PJ1 ]N /PJ ]/PJj~P/PJYkj~Q/PJ ]. /PJ j~%PJ ]~/PJYR%j~Ul~%]$Ļ 6aAJĖ-"/AJ -"/SJ yv/SJ\yV/SJ‘XyV/SJ/ RSV SJY|y SJď0yI/SJI ^]5SJ4 ^]H !/SJ\4ZV%SJY RS SJ\ky%Q]pJ4 ]k~[R}6wB/R~,/5% x(@ '`'Kv X`/,yx/ d|D CZ&43zKi '`9@&7ҹDفlJ7CP:XCP3 7XXv. ByS i J4ɵS i Jb͵S t8JА J_qJe< QGJL5ɵS VG$L*e< ^GJLe< cGJZqf }~J:& BVB>J6AqDJ6%B<B:{ BcJB&g BK40UP J_UP J 6$BL/ RBQm 7T| BQm r}BK BtwB/| B "GOJELgj.Jc % J@'!e "D% J^ aS B)V Tw B1U B){5B/923B@[R[iE@BJ~1B~41B4Y|1BY|Yk BY-D 1B YBYE`D Y/ BY D R1BRY@2~JYK1B1B11B11BB\YY~JYQ1B B1BYR%BYhd9 =BIJ!Ė BĘ!  B < B VAD \B\0 ™J‘XJ\y4l#XyQ0H@64~R ^sR\8 NaV @'a-iʶK019zA9K yFj.7FSn5E. A eEwElDPt 妛C^C٣ &v>(`L'Y r IU`zL:AJIy D,d ET4T]Z9w'TqA\D$qI`D*qQzDYmjbBA$#O@1`ANTİ9 RbJ׵C8%q$J.O@E300_TRRRTADATADATADATADATADATA:Y$A?U ; q#Wf2 ="l %$-6Mu2U8_}.T!XMOAv ,6Ӂ̷e/AjVUO$wq_Ia2ND]j-x~OCs _,C 71C[`n^Vх0;-|CDa1͗ E(E2[Oe?w%J˫\NJY5$?>}3 (`wlb*w@m G]k g;q r5On+S7%m $G HOS tp \A*H+~@o!? %R"H'J^QT3$xĊOhƘ $jhl !_-D bZHaV"UP =eP7A@@:(l $`=mCdq4 . 89^o$N8Bz3 `YBdj\!ybP&E5 }r"mX "!* \R .khr:bI7T@ .N`$.4Hh ^xWņn2EtْqBJ4 텭kHFeP 0DU D`O0ieU3$ZlVjD$A=_)Q\ I0[s llFHfx4&1rwh0Yb2N00@~a+'mfRKA$KL81VZ$*sd<de.fy>rc.Pzbr['iXdc+Ă.0|(!HhjK1RhfɸgE@av}AԈ2ܓz@5]Ә|B1O}OBXhP@|&bR Y(1D 9>cc5ɨ.ȏx8b`SfX'HV(VE88v&P8$H2lQ؂4;0Ԃ2lrwD/o4*g6BRi1NX=ĒNEI(˧$I_v8Ȑ( DLi4|!8uW8p ~BCA6(&1Y4<ؘ"Xُl2[՘R r#&8(=Pligy=7Nj1=yYE4VsI`LiQI/cn DbQ1&ٍ.fr"lMEvcc19f€)HGA;ӞH&aɟ3(-g)6*:DC-jiIC+lQꞦH}ih>Ւ1Sَ+Ж 7esI琠9:nsăuTq@lgdIk6t*Z-2gdu&|qFV%)aAFZ5Le<R>sAbiG C$A3I8IC-#V#2)G+qWcc1f12`i!A%lR;e&Saq!Y񣷚pWuB*$DN, 1m16Q0B3ndžF`(1m/, '#%'V.'ueLX|(& iOc'[٩-1<:C:?ӪFc27%:˫R૙w:24yv*q)֪c\#% Aړ{J}ѴZR)U &Q{I>@kljvҧ 6l}"'4P$T/ؙUoBXQY58{u;\B3F9vqڰYڶ [5 $ Ě)A5s{u`>f}Պq.ҳh0iF"^JUt^S^VuUUU%V_ț1/kn(`p$ QX,}A7d F-F#1C8HYYd?NpC+U X_5 &b:w!G0(0)VTgt'|sk7?')ъ(SWt7#lA((Խ/!)8Sb+!S5[ / yCt b[S}r4s+|p1xy9 }iy{,<>8B/E9PM|U w2J%N|QfHf#9s L] s?Th%Ni;={L{GǤ(+YL+!@dbRV{D#=RLO"!&*Q IS0JE.#6Je1Vh62/N7%Cs8D{/[+{/|:1Y3-2  V88eƆ9LP l%SaW xxQTu&UUUu%_]U_`_S6`6`_95ǽ w[EmA`/BP&gE5Z[B,L?1PT3McE +b$J,4C b eI ,KMEltkLTW}9mL %E R/,H\P)r\gSv MT' cf iz4Bn|탅#pb,y=vk,Dnى%,&cMOq+a(BKGT ˜s4&cW- iy?bAw*ca['rleM3"ՔbM#΄F2""- D"C5jTX6qꁮdmb)oGqDm*& ΍ĖWdVVV2Tčze}3`CN)P&za W{_,!T,CtTwv.@00gTXT }LH^Țtrɲ/C+6|A { W.(n&_.a>*B6wX|`lI޵0Nb P)cŽQA!zHZBsAvǻ6<Ո=Z';~ljSG!G-&A"|,OPXP)-ϻ2T5eZ/?>s*4,΄~>&I 6&#LLN "$요C|~={+.S&Cj?R۾8;. =,5BeM?rs=_.d /|8CL"Ţ$ˋdDqG c㛡~&ExJP`4t RMr/ȋ-XZEĎ g4vDZNKS=.$ƴPr[h4ʷwڦk -HDa#O6>qSU )LVr#Eί(T#d{x 1@Q h1yּPh1.Dy$3cK{p < 냀Y&Ca]Yt35F!1P-L+tvJNABIXoTXgIb i[6,ϑ0%kAN!'w BjXI"dnpgdK|H0 hSilR!PFj` ,0~Y/ , 07΃$EG(%i @h7x XQ&JHfN&IrQJ62aE#=;!z)UƄH l (]|a ʺ`#OwAhl 2p+}hq?JD#Y!,bhՋרWr-phs f4_ rLPIhinv B GdO,9B2I/]̚l"ag#?IEC+s 'ĀQlT+] u9ć' G DhT] X`[%7!b~+I,$I#]I&GyW8qii0@Jsܞ~/m`sp+4RRs '$ 𼅘8(hTffC蟼WE%l@ϳ ȨW,uWA,ɬ /Sr*„`.k #ȵ9 Ab H4K-A<4!]?K4@kQ CRU!OV)9zd,dı†GXI}J]@IMBS7S[蝡@Y&I8sh1 ^wbQ@Qx K:dۃfAI$ލ P2>p i ʽ֔ـ) 4=ΨRLmr ]Ɉe-%cNCY(d|C<2ҠGpXq ER'@G^7>Qb]=/EGq!_` ¢9hSE'@ N4I &QPP}*3SaLdA)}h4a je)4)aS_0Ȅx&l5B1G!d |4륆B7m(lT<$̛L`qC5b7PA7B4 iQCҗmgo ԶcfD9sqQJ6#Xob9a$$=t0_@Ԇ]qޖ@,"frxu ǩBqְVH,(K"ȡj&m_1uhXëBFE{Do 0I%B|GR8nLm!Z& 'gu|}0C_`&pZw ỊJ^˫y=5 Kc˜x=Lq 2V@kS\*`Q{@_ tR3aJ3A"+"SBT\ں8,괭` Fv:ŖrADgjIDEԀTGd $rE/|+ 6 Q`3t6qf9CQ_kBq:+F+$}]!oxpJ!6@*,ʯ|rm"_)`O+Zժjc-L]au.tyl"8" $< DŽ<<@ y>Oᴝ'A)0iLX1&(^Ӟ?`6T!5#,MVGi؅KN?K-r -3{[#'d7H"$d@Hr"O$ShMr`VYPpS ܕid.&"Ι*~*$D  Py%T  4[!1k=PJCdlͅLis`6tQxPv>G{-Y&dW(@bfa6| ^P@B(!|0xH;Lp+gt&r D |1n/Ιp~ Ix(D=)BZ'mO !" (N S*\< 1i p>1%aB00#)|4O؟Ȥ͕# }WrtC3b+Ѐ&NTA2l9vB> e#:촔' t!:Qcj%, JIW`2g`x!`! B;% >8so,% [#Px`tM%cTO9nD4zSP8,Bw"MSջVpZN`MNVh 1䈽E~,*0LO~ N*qُ]CmܮERX"'uB[~69O/@ԭ GTG1[eVnX3w6M&)W@5zrlXƼhB+xl ¾%F(GV1+-i ]x-'N w^KӞbE'@avC &X9TXCk2+5x 5粘1 Rc4#l;dBG.rP|1]JU,mf;2!4ni,kvL c1UKppmqVXRy)XBK@FgJGI Y-8%&@[ vWnHp+أ^eH@ ν ٷKxi+S-3e.M3f )=2-@ t=g LQz9B tLAP{O?ox#sϤF5V|z?)#??+sa+_05 `vĴ Iz:P=U2d،\H61ɕC餋L!f( >\cD3HZJ[qTdI>f8[ S;j|$ZRN'uZhL۵eUFw ,ҽ:k¡靚pf@ Β8s%,Ap u~%(<7U3]Ƥ:kW5KN SQ`“W<| |n.#1(nkׅ]Q30q*una[0* ZkèܫBvc< ^f5ekJ-k`A25F4QŔi3,mrڽjK: iŵ5Ǫe(Tlj@,mb" aKmEJz܃go!W 7V#;f Ta`[RSY" ǝD!6v*%picmct\i0 Vn!vcmL@\HK Qtsa%oͼ%oz erݱHW h8mս; ctvmUs#4ߴ~mzݶ<MKuFlb1r!oϬSUhkyH g5[ eɀݺ*[)&xnBZ %M".ސcߝa3^5Nlbq"*8VY Хk6vƶ+dD#NDq${U|"QNv>=u2*k[B.IfM@'l骗\GF݉߉X#c[*k@ɞX!qό4qmϊXw/Kq8G&A7' &PB"^K7 ds㓵Q_Mge98j)"Ϭւ ;g ׀B2$n3uHfmns0)d|#@kkǓ!"|d ,`Ɏe KD"x%2QS`;9e}d[RnJ۟([ T H Uuڏ8W}{M"RgF>5"G*F#bz:fT 8PzěRpM|7AMVc8}-eJd̀PE g%Yjn3xǥM1Kְp. nvN=&פ*L*A7ye/ {$- & ?Y+ؒjGzvL,ETK]tlOqOBGW V%ҊÇ9;jlQʉ(S J Y>>\`#[vHtNoΜb7E 5A~|. "Oq< /}<>N /t) LJ-bOCm˓DC:wANЛC>j &EC"EE/y=OެLĻv&FKzGDt"p2Z) >oHW#X;sOi3GHC8l=Њ 8lqXLH"4I6c^vye: 7?72LM/0+[6,z'5@;^&S s;w#0|3Ta9\H zF6V bܧ؆>>8TÇ <76S "ђDkzFDOCn hF&B ʧw%i-V C8#{!K\_}d< ȯE_s*f8Qs_4jW?FKjT7?;NҎǩ%UFM0\=XwT\Tq<~Qg.lޠK-@]pJCK!SI-}X/D⼞?{5?0<J炩8SRL& Єg#fq#\~ޟdbA8zLgBQZƚl9TOh;K3f4b#y}h9#bR3p}l-"d'Xx] ,x-;`PL`~ $!` Z_`> R@L{T:(}:6^ u @7!x-МJ1y aʘ֊t |^e0a 02d޶<_IP|L9L;P D> uR a =&y/aCi- @B6V W`t6wSU_)xIa*`xWf (ɀDO @,m`?6U" Z 1d/lг'|,H X j 3~T*x8i`e yX `G7ՂX .; ֔ϟE(#Qe4 A {W$aOyH3 SNw>8zHS ^ f ՟Fѱ\b@6X_N'l8vw5s)v cJbE,^iW(~c)4RԽ4pI|a Ď25@`M00}DDT?ϒa (iGk)XaU15P'i Eg5`Tu3@LE,u^BU4*H.GUR-Yԡs! ^UaB@^W1pt'(EN])1KErԢSW= Vz00wTXT },IURP ,uLr} 1K j{CBh]} 2GNB жYo"`% ܍^Gt,V,)Pb!V,!1$Pۇ5όSsaa+8 R텉Q_J+Z0DF/GYvnSǍ$MgӄvvBvX^H$|(( aa+n0L  oģ[ tM䌀.w[DA`[0'9"ƄFMq*(\_E F@FHI]"c,SᮈePt1HDJD.Ɂ r@p` @:EAYvԦreCi2fXуPG4LKMDaQ]AO L|*E@+ `ف_GVydDNG%"OdJe0@K9e3RKXػ5 L$DZ% $3AW1h ih ,@u@)uFt5$HO-9K%?ECCt LW4o|i07pu7OpL+d@deP+ H?=٘jerH$UC. @I H;h_@3ӂ_ e9MףQ#|53O1S3g`{g5jK N@3(effH! |J@DH"6ΰO`0Q>efpKDiwehGNId B:Ǥg1먩+%CD)IVJ]OFDrf fgrsx@y~\H!hAڌerISen &kNi`ka&r.t#=z":1}iԦfiZ1=qƛ]CMixZi+@fRC[_d#uwa`Pt@X5IO]WTjeHWӥOE2gUJ.j+t`NBs( ܥWc0EA@րI_a\ Υs %$7Wd41x \n˂vn6w:TV9wv& lu /sj3%[e%耖ѿ8+m 0a/WUwt#CЂ9j[Qn26DB8:*d`s 嘁L¿<G4SN*~'3bGΐX'7d;W0M9a}gG0LNj+{37u\F/emocf(i$@PLhj y#:Nơ3,/.X/;,cl;p=jlAz[ym2*.iZFo+ҘT?ra{V+@:9^#@*6oBV70}7CgiCZ Pc:i.iFlk2 (P.c=\ ,//Zڋ6ݨ>ި9j*i؋2Q 80>.c8i9s07Z{R*ŽZE"78:(n Յw lBy~ʨ.ʎxh6榬# fVN"6T/Z|ǩ,ڋDſ6ƥ#V8ZP& {hA@ asx`orψ-Ǡ \ Eq.Wpp.傋#)]Hw@NTQRtRMX@iV ȹ B[x'DRf(,aKEt` sQS t]c'lF|(jHlKllM {r,J>d*@Fdj@7V0W\xN* sh,ܡ7zd@Z d<{*|R*AX*@O>C"v>R+Mc*D,qPOI\A!Up@2<Y:KpՔ%cdgq=M^B] YHf.LWƠ/aKS:Frf4:Mbb d:=0@!7Y',9SQ"00TRRRTADATADATADATADATADATATeVI Ejtk@  CJ3jrD0 PĄ+ȁ0f. Dpj `[& $mmC 1ؘR@ "D~ Cj  &0PzU;i2ki) :M9+k}!+P`A檸ZS; (xY!'koo~؁ֺ߁NwK@dCʮ+pk*h{Z0+$o  ګڽR[@lΫ l֮իY [^>t&6< K[x<P[;E@kj,x:w~r݆c@bA uAu21@P2 6jF °3@ O p*J)\ZY eT0Ư\jFŶPZXjK@)%zvg,ıC$@jذMJSP;#E_${D,"ɦP@'T@Ю\KŶB|"ȚNl),0_b/ * ,*0kp/lo kXS2Y 6S4:GF2$G9{,92H]2;w=Zʒ`<%DW2>,C`βAd1EP‚sEH%,=C+2,݂S6RVY.:;-U *"u-c\%TX!,Ң QR;yK~kյ4[GԵ[+\rBg!J0]t/:nE@W{-:j-*[CBW;2,K-αRKvoЛU,Ϙ]KҺ,"Ǿ#VN˃XBN+g,{ܺqE46N҂/t;2(-?*pY  CZTZͭQ̊AN1xWJƷfk^&@gy~? }7Z%k9|K/ .9B@:~Ym.j0Y͉Xn~(jc$-kոP¶ D:BwOOZ(ێ{1; j/.?AV%i[,ab1j'k-+_xj!U;|i(lja ENN7AVfZ8 t;ݘ QjO4Ί4?~j3-wF Cښ.JM-PNNitL.±kkL Zk *n+R! ~);.l,kVw Tr  >r@[̻~Kļvl(,K+,: K,?!~, ‚T 2(0*,β.lsѰC,KBoK)ػ k6E,p H졠Ć"@"AbHFhlKȆP٫pE;ˮB[ݲx,ک㾽vFn{;2 g0β,T,k$^.' J]n|d+;0vIJo޲Bq{ / +ƾ*kpp1~l2,^.{2ϋ6+γ8[N,3[JJ/2,3&yklfk?;0@ mB;PK-юPƯF hmz(dT,I;˚y#N>_-ւ _Hrv3-?n7L+*)pvC[,| 4R[+& 'U dX[|[- zjR;־emWa- "V@ ڴum{֚x|ׂ opX# n!fE7@tA0Mֺ\apSo0R J##f{پRFog+V[KڊSiժP@xӺl;$,?-m޶OmnKVX­X-tK)lƭMŽwK!snl׫CW9f@RmNOFUkܶ"|--y^2 - Ǹ&{"|0"Q޷.PD~nr0/:ីs .k |{Ᾰ9lF`ACSm@CP(L P.Ȫ5GB{BR;˒j񻦹T5txeeX6C3sMSAPfK^sJ\PӰ/:ߙ mȼ\ENpa剷 Rw@)r ew%2>a< \4 s}rn.\Q-@vUF=1_XZۥ =Ac.c cg`=_g ~P ,qVl,axRq<X*Y P4GA,Ljr`)NF2qM!`X?uZ_s pB})w{<9@ l Q'Hl;e` l,-}|z 8a;q khRPΰ4d51K4\ɓKK/=`ca`|u" !ޅm@0H-jk-'`x?8 5VŠƠUGw+q)0uBE-7}vVƃP~8Ta  QP:00TXT }Mc?[#P+p$*@/PExHP !ѽ -=)D?7iEiH5DSf s=]PdC]r4P5L0Nw6r -H?GG7HϭLPmE ^@fbC'!E_DweY?&PdY&"lB0NBj!OJPqL0_t'm*Y ^,*ܜVoySBunY@T\3-ЖXMdYX+ܘF,,ִ%`fCv9x4ƫeH=iOo+W3Xp}uDl usMZLBu6GeRs>)~G e#)E# YqmE7k)@eК7*yxTYq H#W#6}G7j 7d*D >8V5BDP0Tľ  ܿAZ}ݕ 8NbF3 0u HM'ϋ,}K@|;'p $~=oE]|("bW6T֋5fXੑu&8P։eXsҩfnebBP&*UU8x㌲#8e-LLmdFJr\/uſv1(\3uuW+v!MGh/4oe^p I]5Y J `k#tu^?  @|ׯ8jc ]Aa1y.7vsp 58(s5Zv(BW@k- ZaIJ baXXNy݇7Z.Gօ[iXaCmMac=F{Vb5)^ $^v Y#dhט) Xuf,f@}Iy+L5͓ƣW40Uėx Ԡ3ufDz1WM\#AÅ 3&7bFҖ@Ȥ h(C ([A&3&QI`xKe` C ً+ {7vGPVɗ ' ju/u7JjYL=>1T)ZW{KjNpI%5Dxkrݩ% H]rn`.]zt[k%w@pÛ`XmLRus6IPg -XLxGM Al'E#S:D2\ཉE !BoBXO|YO aoư*ebsX1 j(񊃀^p҃ ~cڢgA`-)A Pvk:42i; j!6^XڜɀA xs` HIM?03QI1~x/ÊmSۮw1Nf ~T4 M1cЮFà| @'efuvLY|A5MYwV|-Le N Zۊ(?bB"'`x^aƥ 6H: .PO}Z+llxtYUIpc$ p[u rc̵8d!T [e-w8&;5Haeڵ])"6 *ķl&| $99$rvUr7Bl DlIk#8`Qg[͠rShyr_. 2{sb}2q"xq:lfk^{й7 PvSX[RD;P~oyxHع~ʵs-ZzW 8'7S$m8W]Ix-ZM"6k Ot9ϵg.bwXt7ַU^q([^nzw- 7yʇXسkZW4I>m zH7)>ct1g!ow 8,(Nl[x_"srzMOMwowܒr 7DCd^[w9 ؙ߱g'O V߰㏣P觟ڱy 0]w48fKCFV W>xnQFlp~u-܎ԀBt~@fekxViL1: 1\ ^K{1]%:$@+w.q=Aم :!&I?#Ci]XkD͌z]=yCncvv-ILu8OY{qw֭yU%Sc>@xГc {اozg[-jxG+yg: :K.hR:yh7uBs@}ۮ-AftN}7 {f9}Qcj xɓ~G@7G N!~k 2r1|wzQP\<)gBpbZ;9 e|x?#F  F~ :Д# :|S. WSI B𠳎l,45pG++ޓ2RslxA>#*a7MM,t{"RwOx0m,NPV n|+o/ ZtKq _ 'CL3X`U'r%R uCCqL$.w$|nǣJ5=1M,n2.3!ȿ!M[mS.YNtv/4sgMs$5҃frmmcB^C:Bqv:xqձG?-@Ls @`L5E]ʊy.Lewtp $X\QK#qP|xweYm>sM„PRV``>3?!?j)sj,u.K-[kEzA} +6_pK^Ǽ\sʿ{|gq]2Ƽ(0lHCibkLgKpc{vo[ ?F+U R%z ha]V!e6E 6KY45* y'L9fg6[r;OS1 dWғ"u0ϊ@AKSŰԳ = .Q^00TRRRTADATADATADATADATADATA tPӪC/]sѻ% 3^PCX5>^yd{ŭxdNai\4_@5QE'LN!l1m0gjW*0X"0Wv=ߠhnpwz* vH2xe .iO0d׏W=1|`s܋W}3 ctw&&rGc/X g,=ak@QR(`׻Zyj4 x/?Ɖ rd2 ߠAVh]=1mj/]?D ٷ^m kfe^&L^/Ȓ'>e0>{e6z=tዙ.l@iY6&ɇlr8{uW~J[ rnVnMHwՃTw!d@r6/ A+U:Rе<+P# W0uVrPC;^mNL7̈#2)9±=F[$xҪ k [MqWh>3߁wŃ[Q>qBU nLW*r۱KIO╗5/D̡`7tv@8o>[߼$] K4QB`i3xrF}wh.R ?wX g yw!i?2W m 0k6ph'K 5d T6@! UcO@>- DK,)@\j" ,kX$ 2P?KhvLL`(,{8>5 gA.s(f?nET#xh!n$,@ 4͠t# 1@*@D`E rv^`Wݚs ʊ@( xB\!4AAӛi[ jj Y0px I'M~|i5A Q4@Ernp,ohC#@;Qƙ@'/):@7 nd6(@9PBtg2c;A@5I .kp4qtAL LeA,BJ :;tBKЎŽ(y S5`H\"o %L",I3(ԁƐ@/*xآT2+LJd0%ӆg<ާ <#n:Wd2ee.?jB@GG8Xe3E-~ƃB4CS|sA\(|T`p0h5DE| <%vyΎcd&*"@̖ B|6a\"56*(aY. X9Ij7$OrԂ~E]~K# b9㳴;J1A >;pijBH?h3wƒEpq= /d"*ӌ'Pa0l.8!,{*_M1 EJSSb13Û$LA+[dn!u"0)q6eF/fQL x4%\Yf+7HTjc<%'e\RW*5p./rZBUgjB{`/r qfpHF6BŒJ@6&hޅ=ȼ X/ =MBʹPRb  Pf_-4L& B!2Qa] [64;I'#X36) L@n@j3lCAAW~h2Xb$$"5:) :zRrN!e njR [ `6P+JCӰ4t]D P;QAz[ P"5@q>*@ tg %IÐ0lK©!b7d[fg 9E:_0AN WƩjLv9byhSQ:=6o2ڡ]Ur΃DAq"rMdj w/K ' mA_. coMFP͋@X`2f.e<'yb-7hckVHAuiAJb$;0TxHc3vig} 0%HbЭ *}g؉YDRChUxd:5*DNi4mH;H295WV#TH9zZMq@lA`vzWFqӆR+}I z⒈[`ב\UHEvљ1 C̑dìU 2AD0#8̆MѲsv6Af(CvqIx9+cGim=2B ƴ8S}I)C4IL |3ljRqF,paWSI@-;\nzSxm:Zu [CHfX)00TXT }&n8j,QL,t^bk '[b3& EČ'X(5.0c9v~KNtE3ʵ.*%9 dl(%]~q}eGG{&oS n ƽn4<oQ5ݭڽ޾jQ5K`jyᇀuvtP)3XyW8 q 'A8!\h@+% @VBjE_FJpMy&U Kˑb8P!y-bwf<|۞15c }2HeUlQp -pra\6Wk0`0ƃD@t7;36ޡ$$h- %,k8 zm΋ƌu#aT|k6xf D9,) 'w>V[a!;(i`8V>jX6ef"{`Z`MZ ˔e 7ֈjp+@\ջx +)V$jiUirj RG#cqqPlA* {1]n -au ȟww4% ) &bt ]"n*Fz>J2n Ǯ• )DӢTVƦ)N %:8QP;anHM\d(P _CsM>(ץQ™\z3F@$6P93\1:xGnR` X-[=\"S8q羊ȁ"W.M[#1@e&Q{\:G`-r؞  ^qlX2&TXw5#7@FP0>|R*:XFRΎE4(aMk+JF!Ԓ iHBc S0x OjPm9krxa*6=$?M_MsbMb fX3NI f^R 6l+1l Pg;=Pr;?rM@ 9\d'6DH ``d 茬=fYx}Y4.pU H# Ic sgX /2$ d`梊$Z-eJCj`J9'L]rd"0r<ZIJӡ|DR)%2H$iP%k0f JT}l#PhI"F%l!(Ʌ@ԄHǼ@CN.3ŇCf3bg+A!WVMMtE7Z +|?paq_8 {!_h r1-<j ?4}@NPX`L#I-c$1rm(d@Gb\Ŭ` |m=[wC%yVڡ`tj'{SNdžz+MLuDzFPxGixY^wD+CaA &@ 1B I̹'%j@')% Ā{IG;%1e`$N4=H<XI8d$Q <ܟE@A@p%xTy"i !Zt.|8h [`V?InI,4 2(-NN::\ޓ wn?^Y[oR3(B >kZl) awX# SiWFkщ%SאMlqA_){| S9PFӕìct%*~~PmO1`4F%H$A12J%9TN*'J(*F * JT%S*7̖U $Y"]eLU@JF%@2J+Vft@+󔡊U9q p@>OGFJ5p#@S\s Ccjz$H Etvq}3fj/#"+iu\ݎ 2Vlui9R7=Tlh!ɣ=XJԏ} Dr;xg ɓe̐`ߘfJ`C#Tr+Oo%2p3:!w2*\ -vPVa '߈EZdcWGcRG֘0у#aHK+$JKhsKCHN/ 杷Nx[.58zll2%'w _YN-aF%ڗxF)#ģQDqz\sFg9smIl4wEpr4l4Mc3wOJQwKr Ij4ٿ (ufG\/ J%:\|fp@ XHx C#Y5[26,CB"_R<+.x" BU/e\K.XHL=D%&bѺ$<^vi A#9/&)F[UJdB[w%qH!x:~q5# U b&&ਗK&b u#ٲ!gsF|.bLr?Eo)3~9 Tt=VR%78@;mr5т%jycSa7s@*8hiy"qB/.h]L9kwB#L:iA(+˞BR3C(0+EN[H 0(T;˴lǁ02+M,K | 0F# M@k7_&Q ]-^4Fsh?x9}@֌h~͚_\$P݉ Oq weJܟ06#qPDR6)@Ӛ1+xWN}.|\w3[4Acޕ[28d5SE1ʥw $rReBr V"a7d^ (MMk9,:^] X/i!o@L !Wj P@@*H@Ja:fD[r24EI9p\pY ކ)Xd!" P\S%PzDę2U /@!"^StZ%яNfo`|( 8&"HiJ\OG% , t!eAG%֠%uf#c%6; ER I"^>63AylN7[ۍIv=YE096r{-˞iƲz@ fY'MD؄H 0 Y#S{=|oz$Z8 *P՞OX<4AC@`JM7|>g6> `O %eISI 8 J윖H$V'O9寢%( _rO"4ir/(2HDP4(ԲOOA$Ij'x$1;V5*BPberP/Fb>qԠa" TՂ.` L ֽK91D8YLElOk7ZNKbOHp;t-lGװÅJVkdj`[XD(ɚnS%CY4&`F!MpkFo s ib%Ɇ,0dǃ 8Jq5cj87TppPݢ+:A1РCzj'M)Eԁ܀zӅJk5CTv^1Fkljhhv }zj{NAz'ÈvLp țćmct bn[%An`A".$YaBc.2kưD `ЙkE\Ů  P=@}@N-YS#@ "CvckA]$Fw!K$'bQGK4(::-|6STG(\xѱ(+58 I-<݉6el2RbP,tq.YTn@xEQ@ X!:NuE->H IZʢ A 1\aT|]2ғ4;4n8਌4 BlSG N-vcjl!@ .r9*A8W]BYJvܐ@)A*݋A`Am1OqFun=U !(šŮ 82ס% W ry9ĠTSy &,D-WL93DC(+ʩ&'76,*T؄zb:[$SjtӒ3I"U1pEr 9JFѦ%c]l)\ג=@btGD-Y@&{VN4#g4JZr󸘻 ˜ YOh-Y6zyMs8q-=K-m@//H?z Px.})(nnp-y>=$RD}4Zd $r@ /EW%5$<A${m!.q2嬑ՎZ0T5R\):{jS\i."sUg.s,U,EF i,C@NKʂB`J0Rbo~BRdT$IChE9m&*l b|@r3 TJVxFa0r >|v)ݒ( |'Ӎbdi#Z(( WX8$)j89q=K Ϋ%ɬ@aVVy5(N!9i`a&,X-{ fpȖ35E- (^T^BDKf " ZQ0s "-w'1>)L%b$zy|))fv1)TP:!"|̱͔S2"L.Ӯ<031V>Eb%9 m=}S Rŀ)h0;x`",A.+'aHoe4@$jh.4qF T!"3SEm1 a !R 1,"߶N8Mn00e %l*΄'`GTҖҲFQm>!& `yU@E%Df̮(*͍cJ h"=&ORw QT3U :@/UJVHTバ@EL !`H7}usN,jʔY@V"b(B=%IBJexH)Hru-nY|x)5f3 5,$d $hpoϡ aZL@&S$7 ] z*p:gVh+Hf|9PgU/ O[^c`0]n-ѳKOyWY.Z0rB HkB XdXGڣFʐ0-Vu˚^_J,J|{ttqy@ o!؁y#R:3vykaZy.ڭE!zQ+3MTiϭUK@p(CWՃaU'{(hSGtVš m%;\bB(6A۠VviA7!Hti2DX"`^]lcPldv1fAy.Ծ{X"j\O2uDDbQVӘhgr]ܚN.Ғ#%03 আLx >MTM$0NjĨDooh$'.-믆06DDQJUۏ%Mŭx˜8"-0-TU:E}V @S d1hkwZRnV3b̸H2iDlsbЮ^>n-Èk{v3o5q|^K]該ވ4&5vMU7sK ,B5VP?U%R XcjBF&b rТ1[#Yh(A)0!p*q V =ylDo@I \6<$ H*D58(+D?@`I,QQ" Z>[qpF LV)dp.A, @}VDQ+VX#׌ۏ.|fpNYkYL@ؓQ|:kg)@s+ P zy.L6ۘ=Z`NwZ8U}߮+cߤ8R~X5^k̘L@0ߵL2L"9̎C-FS@q'=zP['E+qt@Bo4N#s$DB,)9 ,1+;vm6D=L&YDoƝ:0% &ɩ;s' <-v-9:#& d'pwEcjeR$ [6, t, kY@\iX옪?kl@ ƣEМ|33mls]O0>dv {~.=ϚȱQ>A*MY $GH쾳żs<뾱1RW3atHf6 r<ߘnKUٿep('@z*dJç3+ ʂ=!dY',{H$JCXmmG6SeY*i9P5`@燥},J#lm/惨xVM˔%*>_ϱɡӾdY'3Gκ>=!@! 79LmVVtI>hu&]2ْD>3%ɫU8׳lJ{j=:|qpjz:J5oZpB_EvG#];3=1apг;SFn q̲kEcv @-Zr)ܐX6ff_x-yiOF1T֨=Ӧiڎl3<-Dm mbiXY'l N@}`q=+:2'@1OCˠ|ʊle9g(q%Г EՖeЂH26P[\e>$ז"Y.|m59i +!YG `^刕&b"ü% } \1:]\0s1hH+ pnSq@/_NPEZPMr><ϲR@EE;Z$~.Z_ߥ1{2Ҹ"l92\Ma5SvujlBҶqRyq`!!6ATcS m +,d(B՘jrrd,Ur.&SuT in UIgյ\fP#RVTA-_C! gF3R nDȂU,^PT\(?-FQQDWG{T[IO1+$Btjt!+S.(Sxr6N AeprָPG&ӝGj̄XfD'@}f|6roA]pNuz@Їnz._@Z\×gEގ$)oU ;EAW]綷^Ml0S4F!7/ "Dz(JO˺:a-'L*?FI\L[μj;_+k"oͿ*|`u}jD2nM*S_pM">KxNhm~dj'r=m5䘣`lMƘ;Q6(b@aup)AhwN hRjd[6iۭ4x!S;^ R )@Xޥw(idT:!8Y5pJB`5Å.=h=i)v )G PV /܅bC<[oY|AMQ8D" '&2 }֫ӎj[SadR̐,xyNHK0*HY;<Ah \i'2 ukA!/G5HԙĞdYPc!@--BzSM}XGXlLMme^b;uz DOR-0!-Lg-ٌe0z;21bUmh]kl]}Wyh26l8@K碿P^7ڽ{G:,4)iVUM{s@a +rۅh-sk7UP#BYq _/⊉bd D"@Ww'7X~{V8/0|}oa] bI<٘w,QQIN*tQVWw'&]&6ULfȀftʜc @5kU24 XS]nד,90Z=Ӟ*vVv{D a{/ ZR1+ူ`4ؠ+f%Dbdm4T\+ilE `G@mx}q]^]0"?f00TRRRTADATADATADATADATADATA| f8`_!ݫl?)y NR0fDD?a˰nf39lUE$CYi~1<ƀm%=l%p6yJOZPB(@0rr@V #`!v ފA[,NkBoz6)DmR56}y&E`%3`\L' Z[5(+^/DO"粈Mp [+'%; +$AkY"a lPA7A(5`8n9;@P/1gYL<İ$T @&q-x"īr7La 0hjLZD4ܨf@7A&؞F`D7x% T"SЉaW4R(R!J FM4.P*`x7F .N/ZXㅞK-`Xp ErZި0#^Pj)' J 6Yax+TX =D!L@= `@*x#WpK5P:/8K 0`\rAςxp nEvn)@Թ~ 1U V. 2yVC0,FJi;S_WS\) EE6 _,0}pA\ #Q sTlmCE6M&Tḁ9 `=-<}0W!6c;fjeSAXm * @`mph!Zajq]$rb%ChSidHl6(TS/Gp" 0uoamyߕă#vS3D1nt o\ok8 <D13 L ?`318+,7H_ nG+ ,>©yO\j CX!b!f񩄑ۈP*UZ`~\(f 9 }x 3/ =D ȧ=3^̱U_kP0I؎SwVk⋝{ BM9zO6K mۄ8#$sg-?}?Ρ)4 +j5qRqBRQj 9Y PS+rŴM  \mw~A0kS%\[ѡ e;"y1oܑ٢`:SUN~xS B,Hܕ8Sl«㰊9 f=JXr{!hQr 槮ah Q ̉N:}nQ'6zHi}WWS fˇk.0%xNJ1ajA"$̝> 8o"9Ù;A#PZQyWEql#G#8{al+\XLJȂ-ίkVy/ )V[+r1jBZ bQ[׀! vbd@^ skkΔlc0/~APk3SL1=EWgK0˸c,i_T {gŘ5XƸ 1,Eg?cqX)X`>ʥ,@i\*(l@GUqF0*Aܝqk81,~bp4/KWk5FQ(Խq|7> `m| V|윟u5>'.bpwh\m\!ʸ_ 4nǕxy < Kqr\(~q8}Pkk0CoE1/:F'%8؆2T_Tp2 %J6A01/ {axP~3 K;`>⮰J]:\SzP@j^XgrҷK,mkLZ@CA %XM\9~Fjc*gu3^#c1f;F] Uc9s8~AlBej8?R5NKEyq.2ɨ S80$fS06Xgiw N^rT.![ dtqȵ.6a?ǘSv| B. 75?@bQ|ɯTʍP & Fd>x۞@&cdtO`j॰)xl*x9v`wrXKVIShXHY 7G>6cIҔK @Šz AMVï{DINj TP6z3I1t$B]  :TC '?ω4bw$P4;Sq㎊Va3ypZEK 082TNs$ 7OV\6Ƶtc꒺U:[=pnʺA$WV; w8Cl#&*JڼHERY3q QeRp_yK3*' EbW +[&ߪ-2HFFB. -!Eĕ.Q,HJh#@-Hz'IFR_ƒ`3ZO@RJӈ e;iqktW6P %^r9)P 9ѣ\&M^J$͖i/s[esu<,9Y+gT=&ryh6,7 ict{݊푐64#[2cL8P؈UQ8L:<fטfU}x,4X%hihvB_f(23DU1S*͖SY2t,*cd̢캠 EEؘ^SiΡ3̋ChN1[i5P.aR(Jm/D2ĕ@W1X6sèm괡@c{VdC!- !o3ࡉCbRypo}vi !!@5 P *@g9@ `8es VVa ` o3qFZnwNxM'lqLV#l 2`#>c:@`00#:F΄/`9Ggęp9Mљ0V,tv:gBgYpH\Am7lH91xg^x,& ˆnެ#Y9C V4Ea;b;۝1PNVesŹ1`w,NV`\tn8& p!:ly%0X:jgs`"(}/V>fYg1q6@5g3Y00TXT }|? #Sg6@vf<hsd8,3b[m?ws ]q: : dMgqX8y3XBs q8/"gUs>͚so\[uK٘f0:,H=+Еy P#dM t!4`@͗{B93Δ;fCGr}Df:4 YP{6e<@t&<6tp?ф  }=ςg }?;"L9s'+:@ &G8眄M i@lrBӟhg@4չ{~GǣG%hN mPhW thw@N# tG2οs<MR ,.;gMѷgyP|n" ' >k*dwᅾF3ZXJ49@aݤ:3΃hscBƔJ }$miPHu9<$ vVQV͢o{U2(44WHXȠ4CvH [^1ugI<;4(|ecN_irYઽ6kA71W;8 4pH]x#]Zu"H&jS2`)j)21|&b>o-lxC,VH "iauI8Y ur`a86.^j,EܶlF@[;=(ݓ)JAz:D4/e=@Pǖcjh됵8Mn &!C 6-c@Jҧƴ@:=.+`A@6c"A`dgL 4gsP$OcXӒӁ{!P)rDY7_l1̒[C1cQ2ǑP8| +>˖ 91\ؒG<V놬PvOPyփ 5WC&8Y#2@:`7VB6`nE܂F )TNEFDՆrչV~j]ky&jTj UMmx@x'\LM7CWU 2`)GJ°DAexZXL]C1h$LSX KQ3]zd~&DڠRQWCkt̵b߭o*dKzH"VYju Wo.2Oiy_Iφ `) oWx! P_fjE(u ȱȭ ZT/M'vC<jL7[XPxX`M.G+j䊀V#V 4ulMj J6u֘v(Fujy_l0N,:1@]*rU(=2J5‚hxaP !P[a䛯ޖl]mͭv Z|4uںB$|tu H-@[= pqt8.@ HTN:`_w3w,}RM_TA$8iyM{^; @ex^c}^]ݵ_4rk"{z^HnUy $:2a `g]]M6@_;yGuiU^?i9 uI@$ޱT6Ɉaϰ,V|8/-Md0}n`1Vlv16Pƾae6 ;%@ ȱ*$ቍIO[+yc".&^ؗ J AAK+Nc lhGeAF~PxHFXj@ս 4 -5bhsA5 M^:S@m5 p :5 Dyjfi]oE۪]/c?hcleRJ9+=bH# }6P{ iϱ=)$;6`kϱ%-v@ 0m"gIT6Tp r϶S6b|^ `N (`l=&|{j6@'mS4@>nGYkV _"l A#QfۗH,mv#{0vcW 8+7!mrx)'- Z%.@Zf z>mBoǫ 'k7 %2• ʅtT#PEsico?͆5SpB5qk@l 2nx;.ز!v^"pm6mviôgQn]iRlM1+bcIJ{p[mطQu7 [$}&QuiE{2,amA{Ԯ`69P:7Pnܾr(Ynu^ rm=wNCzIw`HIA "=>x+Gyeu DvGR;Hsӝ}.iWݑAB`N݃2R]H2o[+ٞlE}w[*=w1vݒn{~ nkwѭt' q`-֎wS+2ƛyjkB7{ 0;) ]`pd_썏=\ 8:Mrpߏ42 Dfgj72t#S2h}zߩWCv /@ZE@"NkH쎡du{=@Ԇ^sm8 Զ n| ? l ;ǰzی"=ڙV̄ꡈ Җ=i.G63bд.vxԅ#gu"fk/؈2[^hckW9ОPfoL<@SL f& mlq'],~rf#O) K0@yҁs:Z1a<&ͻݮm90~*4i~+yDN"K4hm 愵89t|LD.9r]KZ`@T|.Ex=| dh@(4 r@lnhlyY ``a,iK듕9>b>?ϼ3 =/MVwU[1ms>iipҹ1w>V5 nYv;h3rI۲7lJ͞g.uH}փ*3 #0Q6g: w9u O+ " ]9}^p@sR/i;8\00TRRRTADATADATADATADATADATALCp."6kg4BPwf_t?lt;kMBx-3΂c}ና*@̡Egc4Va,`8/SѝgUYv# 2@%\vjCCE=ӞήhV4|pyx|L 7PUxnzV5'1q֭jMs9 xU8zר=o9q49sHZlPT&h49, B&>A+.2`#s9Ժvv؝A~砸,|~'bp`~ΕUzA\؆\|}ӑa;g5tYkButHhl$Rm@ qg'G99 ^LG}ڪ9np.(Hg3ӹ+x?Ώ8 Lϝ<7H6xws怇6@ PrE_.FuDxc<5aQg31|lr;W4g*}rDgsyM] C>>|/pƀl~NFD26@{>j RY/6::8 |E:lL[Pq].;uD^4y<^0YyU7;#kϻos9Jj=Νƨ P畕DWT_9+:Y ,?B{x5nz.;;]% 燗ïgI\ғ3r@5Z%M$g Rpxü1-ǝDDSC:G>q, x&+3OON#ptIyry#}s>ߡhh~a_`luNI Cm s =0g'GA[hŹ|EWy2N4EKA03 Zeߍ4\BawVi8):gMh~tV)2` S;F2kOœ\4]4qGt9N_ Fr*j]aψ+9q8> ׏Ǘ -@">{OVgO=`X?os7\Du*Gzk ms1g1@1Itʊq~&;_OI{^Tӹ P df3A3B~jc_&dy@>8ϥ :< VG7M'hptBp8y܍?|ϡքt09PitAvlڵtȑR < hɓ6txƙ-/G'טpg;$9HL E*]?Ԟt p8RΦ2@ U`do艸&8I1gt9z6 ,}K1\LB5x{:phZ9yS~w > ]{6;9z #w`)I)Fq4#'CG>4y2_?˗R~KO₁s|DaNFi1O9BZ^tv,NUy<$/Jеrr-?; }aL]>8G`sf^ 禋zhoyۙ\70T:gӵ5'0?wr`M*J σ|wh]`| XW4i葺L6ΗqM9~`z3G QE#K$ࡅ (n68VpNQٝ#:n5 ؙ`ox;WN{.C? ;Ok` Cwp# =7)$ywΧn,<[>`:<8QDZ5L(JѐTI^L;: y=4.M/|0 $6U|KJC֭gzso gQ~]SXY\(8ops'.GSA]{XG7H+~yqn't徛q1yGjI;:˗#g'jb:U*&n5 i"Gʁ9;>#-o383[c^õ )k@"k6Ԟ[悯sar@\Z֮78KwI|:5 z&O>Q8xNSEҸ7 {(.%hj{p]k'67^MBo3"Ol8ShM:C&8OlgHx:~̗͝뤸m&E/ ;nz^`A^p|uC#7h(Ǹ1gKP:uo|t5|z46.ttbxsֵ*v@Un /w`|;w;9Z>zB8ArDMzupXjP!Q,Yc:i|k,@$)e;>Þx&玴$=%Cg#<}l5=yTi r׾5Ŗg )k< Ϥ -Z @7'yqx Z=N :w25מ'&uVi <ѵy~_CxulE+b4ǭ 3{Mq=QNxβg[q6nP aZu_8.#`)y]&t-`»1:,>X/-&^k<(<kn:k$ HN4LagTrxi:Qs˻0@:[xhA]).vxfp8 jOGs|>s@1q蕼OHޯer`ZW76i`¦,Vݶ)*00TXT }m:|^HGb~?qtMyK>7accB7ϾT q8RsYž֎ E7>@APH﨓{/@y.מr:^ HD4yC |U,r?Cx|Wݸ.&O%HpҮX0rMhk~w:߼4v  @C79 (3E<燷O6yz^lx"iyݩ`34@y9/dyV)'gO|=wٓeK|+?Cx9x)oO(}ΎSLΪgY1P^'[g ;|GB OݟDspF?Ls€>I4wz z#VN?ݽp휛>rO_0pO'tм< ng۝FքJX:H|wv\hnIϼ+="]έA|Žn.Rӓ}tNa:+Apg0y|.W3=4z|n'GFZ68kԟON%yC=|`נ-^A\5.n?Ã$Y>r!?[ w;}eH}ZqR7o:$h}Ce JuHG -\'1"7^y==7G}\ء:z@$A0gCz9\쬮CKwM;^ /wD;p:pټ6o?$rDyU <6cVcN`dflTN.Wa~ E%xU$0@tMcU$hb8\JtPQ%h@S퍓&ʢ8;toYy;B4Q0+ {'wP}z_GeL:"N?:QVV%cJ!+I+Vt3-<4mtgӳ|v~CNzJnӑϗ6$Hs% <s/;Kݗw|[7y?3u?E۽$0 ЄFn{ҩ}K?%_ګSh%zff^S!8,Ǥ'7{?]_#W=ߟw Gs=>_WRW;~.ίr)޽3?zsw>  pmxʺtmV1Q ,@.x@W%H!Ip[_c$҆ϴ"@ oq䴕-[`\E|nƮiюa^c|4T/ 7}8ʊ/fϡ~gH:-xݙׇ3+!*ZOst r}y0w@#ET7Mw;V~1o:utP'R(|*_á&+{Iޒ>sv;J?r~c&Fgꭢr@7kg:<^+/؝|siO:?Iu/ʳ,&tx߇P׳r2|HvFg'~`O!! <"Zsϔx<%6a?w>ΨӟUtvЃia\:`5&K/P=͕!~8?|'¯Y7aQo9]s ALBG}2&h7ǧ:=E;OO|z^.$侣Izv FZsc˒̺p`)@m *9@:cWV6 :{T~*{T_myZ)"`pY) TO>RU:xZB ,cᾀ`o 'Adw!m|4b}6:)L_Kpj+5f-mpԙ7X ?]P s?TӔ_?tcpMx/n0f͕?ٿXuoh]a71_V ߰:2c8=;diz^ Cgh_fIZhnV 4g6vqv+rLqx|tug4md|zq+,-Y5kp0lIsgIz g9|Fggvv8rhHwrEwJzVFsz&~gpP|4vsovx|twXw#~hgwy$ygKw$x6ty}t$x{s&x!wV7 "g}rVsgz{$+~|wg.wK~}qw`g/yv.~sqvoso|OnhvzvxG{sg"i.mwrv'q8yrwg|wwhgfuxKoN}Wic.wurg9shuxyhx*"s({hb 4>s]t q{'tmxhJvuwy++tcww/)z|gOszz|.bf׀qg/:pL|zrg#ggww|`vnx.vz6gg~g= vEwvq|pv qBs\r4qtRsdpyJvhigu4oB~ypvuO~Bwoh}wǁ-iszhvN}с~uU<{RsgB~rwwG~kفqtgف64{ok`B~4{.=e/} }bg-Ɓ|Ɂerˁprzg.w6t<r~~}qtr u1gzg&+;tmVx.w xyg?~pg)g@v!ru xsrzsk~sHq}gxg:g-su@gmgtw}{,|4}^||uf mxC uu}mi/o8ivGcrkQu,vx{snzy~Rp8"p!v=w h?gigyh??vGIt% ~}wuoh+q%h0wI{$h:t>"" o}u}u}gj*wwg4hosJq|tQu,ne/}i('ÁFyOvxh́sp(w#~wrcr q%.wrgh'#>sgOygĂO v0{~.ir;J{rswgkǂsւTg>so@yhC?qFZt&gh.qlMgh~su}|͂hVcgioptM{apd*+ph} uقk+.ugl'skpWq'Ђhgt 8i{>o.x 0(%tk{>g!g1<5nxEk/#"|<*|ah g3F=-rQuw+g#qhkoh샯urw{z7rTgprX@}r~gvQgp1to[s;uxq\hKa`uM g@.duoydHyt{ krrvgf$zWsS}oX}qP&xs&+]sh_w&+{Xpfwpguar]sNvVru|npg@i|t5o~o gIz77-(|~v %C|g{mxg~}Äcgs{gtҀurlgo FsoJVv4kTgdgehrw|s}~)umlm_l"{b k)O NpaxDrv|wr3 szqp.~gu{kt#vgʀkD~wB|T~qhtG^oAup{{pxsdusHgwtwtwFqJ~qυDž)'osrr~ zYzȁtqn, wt~7k[~k~gngps9xgz |]Np|Sq/irYgtD)mxx#h4hswOg〽hOgtz{cs}Zyuc}"A߄|/iu.qO lqw&wxggq}u|>C_v xv$x?xuxrO A>q߅qs qby䅺qgqYx Nxrk7 raw~nrkvnxugnUvlt^}BgPt{4}p}Xr}vUrgd~ kGk9ko {g}&|}qh}'~7 gU|.rtrtvtgym/lzwl "ƄqywQ{g{y!,}_yMroKgHt{wgpou7r~zhy|.ir yo-Tu "i*ipƀugwn h؁**$ymim1[kgd.vko **m Fzw>gdwr+rÅRsTgs:7 ^%hO~"B~t h$%+psvu|s V~׆3l.Qu6pMI8ipkMxMnsmk#kkkskguk9n+gwGmkgkwkY!lill-kk-l|-χ҇ {|wqsv z0|gv}'1Wsb~ye gjr~m~Tw*=҆vy׃G:n?gYhǃpԆhxw|gHuwwqKă"ȃ$yOzxOs"N,Yr1( gkqӂ#g||%N낤gtqzvRzqz\E[- Oyʃ_vx+rS{wvp}BhT>qO hgr2yuO Q3g`vk-'iwz)\]CGg:Q3mxrW}8}IGBghhEwYxy'xGv ,hgG}gCn6sy q q>uRsw$tpQ3Zk5h uNwgvu`eyFqoO qgpqhp|wziz{!t/Eznwdphg~gwH4g{ӄ qqrhhqBg KGl=qBg:Qu|fh`gpKwLq#i gi Yh\qy[lpƉ'qs Ax7 Gqwqlq`ryv.}ωx}mqs`Cډh g1xG |w-3lEC@"izxFuhJlkzwedvO~H{&+pm5l99vlnlo#nl{p!e\i!czsRj߇vyz^t'rvv}NyM <>'nx%hGx}}*yQh7 ~xv膔Pws0yhO|pp.| wڇgy_yhxsyyՂ**g"gIt,guTxzLs>$px?xxgh;it v[|zhg h8~{hvgAXOygzz'~vц#|-e7 Itux↿gz7|||%uynSrwh-p7G~}#~fxlpNt{,|U+r zouspqrqRsuxq0Ӄ}t䁮xᆇvq"l5g&lRϊ@lm0lp4mN.v%l;lb=l ֊o~lB~ۊ,6u!-/ogp݇vZw|{,I|g/rtwgy37|;ņĥr3 zJ Ltp h qwN|'D{.r}pepg{a$h>xpzhR{'Lz8qq#zwxwx vpps>hTgсW߉gK'hKyyс)|Cgwq|gƊ8ge%h1lفqg󈟊 })zu6sq>KNsP7|RhgƊtB~zDsoxŊq%5<|sd=q[rf= fu,y{w+}RKg ve~>{\`{ˆmzu7qTv v(tg~ˆ=8h~}}qR(|w{i{=hq}tRy]whV'tlyg{g7 *TSsLb rY~{vy~gzr5΋܆~oE~'nmLl0ggnRlbonxonx\lk^ln"i`lҊ"]tPo!@m]m0ulTqχ{և~tg mmXo"im}ol\amm!5 l!l$ jEf'!K&mwO<+jEs7|g;\!-trUf=$ ؅H@_%e =D)xvfptqO Wbgghx58wg7?`g@TL]փ"\΂#mkQux!g*&ɂ6Ijc4Kb6X:[xHxtՂ&x $yDquxw(ruyv^H}}ڋ<rp.itx݇)kE7qT{߆wr)z]~gsqgf=<~*g;z9|6sgWn}puyOyvy)yjz͋jh gOi~^̌"gpv]hՆtgʉctNwJu <Ms߈ft}{.}&tq)iu{g7qP-܇;zO͂fp͌ɋFgąz5rVrhfiuo(+Jg#iJs^hyM!pmvggR6.rgowUil<܇p4wtAqga%+E|tjg/}LqrCtzn<6przt؄.r };zrAqvq*ۋzzxv7qmxgdML:؇l-鋁|gU|gTq#i[s:xlc~@-Spo88){M"m>yt8elm8p 6k_<nV8p/x,v׀m7CGklkV'5l3j+C?GlkemUelsY"4l},;L:6|l 8p 4'6KލZ+an|'tYX6UMpkh) el,6!捔j/66>T ml!i_c^,4ul̍kl[5=Sl6ڍP/vLR|t~i3hi5g:vsYEhO>~-i:uvq1tP~܄hyFg͌y6tWzl}g-h-qvDgK~mllnLpVZ|9~LzhiYqN~v݌eq{qs.rƈ_pXhq{pz`xworpmlllaqllxss,vvsr MrUxE|錘r|}šm *i3i|xi1~zQ Zwg`gn `rlaqi!h{qOm n1<l\xnT"IpSg0yBgt-A*  >v,U51rXq( ΎTxllَ$ێwގ3'a%:>>u 'tl"|Bxt xv9~v}cp{y'/`-3%cxgr،ցqz`z)}{6i*mL~&{ rf 0_, F*JsrLgq`rpwCgt~QkJqQrcw>iy!In1y%ymS`q]r}-[UrقC݌yAC5ghՋhaۃvq:#mvKmcoڇhUCiCs!zRcqo-lSonbmnun7uۇrg ЈiBigh\M.|b|s|Յ׋tgxzulp"r5urn<ȋw,~PhvgqtszQz-]}./s!hdgGiv:rr;}8raySzw/xʉmxp#| 8Ko7|̈hdp[|VPgwUƌwZ|y"wld,y,zuhigugq7tvwpmgmmwam[ambo4mmzug&w^ gPim &1wwgu* Â#g>gy\y|rxŐM7%xP܇<{gp7sg/ځhjz{gdrUzEKvqwCwvqO\{b~vj>Pg:M13)FgE9eWx~A}hy߈gpi~|lEzwCyg=h"rgxgq~r5vYwgFTZ|׌aqx^z#~ք00TRRRTADATADATADATADATADATAg~qw0,Kq愡\Z|}pgPv&~gY &=}Jx y|t{whw@qwCg2 $'r‘vAw0tnyivvɉVugKQuE-w牶hQrn{gwtXgCg.r(F~sqp\x쑹בg#|pj>-,os qsJxёr2tiv-Uv r5\q~v/N}xzztg&xy.wgE㌤gozwtWKqÎՑ yngq|-on @HJhh%gg vq`zhwڌBu%|dgʼnꉥx;ib yh]}dh5%`}?}z{{h>z||\`bz^z~B{ rw}օ~q #~gSg M{b y{-z# %gzw]Iђgz\wvbugRqbr }ysbxfH|grdgrےThDuZiyh\zwxBsi{sʒ yr]}yJ-͑KM蒶og6~l6i~mIz) Tqr/}(u{qSucUuo1-hHt1QoiT/ fp1j(L 6a"7eB5emftvv'1 p@T1VVb2]3Sj>(k #3~!i # Jj[Th5 JT5X,Hk vqy-}׀) m{O-JnVq.<V- shl6-vQ"dl_vaAZ.(rNpD=hllB=hl<hl%61G{,H}^tL|zz^yx~ʃ(mmat܇ʃ$ho4f}Bs{zzgqv܇aPꁑ n{Ǒ' '+pxZvvts~]4v4rpmmSnnkf ]kn mjgwmPlm--B>mbnS nfn1mn̓&mb"͓F e$/qqtyuzl䌿vIg1~ yp uxzqpm1qsK osoσhl?lwzn]RYIR.vKU2tt?M'v@~/~g||p,%-^j|_srb֓ y#hzhh)' *y#~{tr^mMRemkn+j,HNPt"mlt*mlaql5plklla5ll,ml=WnKllaxslnxs{!n>ft9n2Ɣ9n#˔nlД̔lՔҔKgEٔܔy m*mR my|㔇8vq|Wo攤9m lklk|lHwt锔mxstl)j |I479knAj.g CMጶl ust7r$mg&xyzmq1gt6 wd}wvA|̐i>{ƃhꐽCX%mKVxv{stvRs{zcw~g{9PiF+rHu.\ v~ g)gBE@zLgFOƄxtQ擉thpHwpx[{sqAjuEif_g 4Wn gt5#rˆtdg p+g0"s.zqrzGt{;qO[xctHw xގ|?w-iHtg.q,gKlj sqK Wpwxr*ct i}gh&wh.Mkl=Hrqp<"yg7w9s"~rpܕ+h6)tRsshh3qqHe\txyqғCŒqX,~ttnzqqyPyTs@w2| /il9&g|Äzwpv5z}rRyh>hwdg$ܖt~h|klsgX{jB:62Y sUǏM$X6+jˏtiAۍ Oލ=DdjQ؏p@1/4 M _+j[:sa&OX/EcԔidm "=o'U 9__(,A5gt~Zj|PiB=PS0|z#ydsqh~4;vBh<їwzJ~uNzLg^x**?vǒcfun"co/}ys^r`"c{r`v)tψ4/pڏzr u}p\;zts[htyHjhHwr&gpsfz gpml0Uzd7 gRq"w}Jxgmy)gF~xyz{Sto,syv}hnx~9mٙb 4pm 0ML1y*gǚ |P}f=[1w͚uhgw~|Rudc;{ǚZ~vIzp+~2ׁmőr-~ךg3gz$ux[?gsȆXvagUa/} nbTog@gaVTuQwqrBz!:=8%mkz$!Wn0am*oT an'md"egnٕmv}[wGtrY}8}g@]I+r G,ggrMӃ"qlzw{ܓzy֚ƛP:qTovh.}ROgzqkg!nD/}d.L?TQ܅{ptnam[o*oq'‚\FstgV!hgj{,s`~oӝ&w9JrݙwVyo/}~ynsz-ߛ|Eᅪg'tvuRlČޓ-h`ņbhe=h#o$gur2'tbygte>y3~-=,n-ovXoixp֝|yGpm<yjEn%oДnvl_}Zw ႏsp++cpHx~Jz8' wq˓p|Vq6yt,3~pm V9(q u5.+j7Qb =8X6^=E!ˏaiMEl.`2=80E43H;=$Kፘlo^`Hg:yH::4~9vVt~~jb+~3wR|f|jJuxQ"{qa;1fq9]wSyg gmjIDnnnnkvgwar}mh_%jChrh n-IeO(nsnGߒ~|yۋ"wn6in[99ly,vot~jqpgxg)uw/d݂IS܁؅* hך9l3~Hr shps~qvg9vn/Mb00TRRRTADATADATADATADATADATApD('hžpJ+y!p搉s'Tʠ[glЈGrq_dyUz-١)wwCp~iqghwz z89YgwrIzr=vћ8+}q{knk okK n!X6wgӂwqyhxz.]\p,vy*\:\ač8(wJ;<Z'{u46$dA7)t!YFk{MLR7iqY6rF~z[inmw<R4iQhgoL'pGg7!vSuVzsNzOgw1xqyvazhyg7g띉n^{`io+g</"7qmʌh{Ԓݓ҂}hhy!}nȡ\0~eh hzr.0$f ysvjg  n.Hn9smsgћ inAGw I|w8{Y4wt{U.ix$ݢHqpmp kSъ4qwCQD?6?q=?>DD7)?  )k!rj| quȋڠt{bg]gohpjg&hq{t(epm {57q|UO {#,|[~st0 y9*Np5t ZwM ǝSrhLm0nH Tɠȝvrl_Mxy|bvrKpytj"pJ{#~1hQrWVth*i_%LsyVhBNN\p xi^}ZZ~t&xzwVrw6ҐtBq<iwNxsKx@DJhuhiՙ˟q~#r{hggby=gg(ntuhgՌU) ,|T~n4pᣰnjg(gt_%w4pXş頓hn{k3rldh _d܇قzrݢ$y ws-xpqtգѡR1}}r0yt dsqŖuQt |mgb.r+i h ՝ݛ#~e*:non˛o n of1amaD:VCTs']Yo'=\%*1,Th^ڂe{ٝvߝgywՖvTHw{s<tc$esOw(sg+j 4n.Gs9vۢUá}}0G 4ܕƄzCa͛& [xOgz#0xTm}p}<5}oOg#iܡ~ueqofig G,9;v19wgXxgqpn [+*=[+2pm~q_ӎj夅|$"a]D |8~?|Mjb[jjqja {x,(A~g~-z%n.,vua7 n(|>s9 1&=TIȎJ_c"DiaJ/  T" Wg"qǞgsژ+hauވhOhx͡isow xwkywq"g+y~UpNq@gu>Mg|rSg1e Kܘ-syt\pГV]ό|nw{^}<ңhN}vPyU~*gۅvYwX6⇾L3gM[Јgɓ7iJshxr)ur-ph?gȊ)s5tV9)h=j@ȝBUDrMGߥ쌧rXOZiOyph3 ֓R륳C^}th$rS'בz\{!*"pK q|=bggp%hMxma={ܢkSrmCgobyrl$ypwgo{I{Fg~eě>dz*w)>zr?:ji@}s$H:oWgAbr꣗~ciH/!!v+wԌAkvDȠ㥕gRs ""q\$6~zхrߗ8ԆXttfT׀{LoJHX۔!#'& aZvW`lٝԙzQhgpۙޝ}ԉ3ѠXzΟDznݣ|wȝ1n[}kpn!|m]ۤZޤao@% ay+ (Mv!ЇD=GHӎ,j|4  UE:lTDTb S)k'C ;?c}V0#;?n z*SJo蠡[qhZǑ~nwlLDprm,vЈsm>y #w˙ÑeD<q(xʐpGTT@r}u>,daq:G#YbzG#) z~uoou(Ъoo9ʐMgpt-|pȉasvsxvz;t傰h'r"xĐ֒Phx[z0}|givr_Kgxki{rƙvGtZFu&,htޛ|pm؍oo[ۀ"i-oK'@!r1{'DJLnoamoxgo!֎]<nrܪ|q̅檦gnsyLRP@gZiVXhݪRKr-qu{OԙBhlݚ tBmd*Ox(DLg|vwTtB́УaqϚЈY:uV3KȢtsl6|򢭛sg8ixa)uquuxPr q.rgxPs~O4 /Ɗ 6i{AgEhNq` uut_%{9RvzrrgؠLtHy;g`}mxx#Ivwu@}ug Qy¦7qt/lCўy.GFg[}WNmOZ}rhŭ2Adhv]ԫChUz~ʫ/rwӃuO~ń}kʋ1oq4hsgu-x}٭M灺ៗ{uzwM󭦚rvs*3-yg[ʞ֖& ߒgLu{*g{ ggqv@t䁩K{~. w St}}pgk+**fc}weuw9}g'g*͞ϭ4n63_tȭtJt'r~uWӭrOg֗nΧ {9y<7}~6_%ӫrVuxWq=PhQhmu})vZwh#h.}|)uZLI94.v s6}|}orn1tg}*~^tœ1yՋrV}K®uw)|.r4s}}0~)t)k`r)' wLntgȭ+r_ jhQuHz&hwwg\ 'gq)t&,0"wp`r4xq-s).Ugtpc{gNxq0vjwmƤ<XQ?!<mj _Q_[!c1Pfb-5(lqt6WsTxNiY͇X)u -wg(ۗWikL 8ʙE?a^s"ah鎘:t>6igQ3-g󉯈iU6iVO<ދ00TRRRTADATADATADATADATADATA 7v #iqJ~̌)~g]s}~4 |2g܇/ȜeAr6x'C~Lv|3ӣ+tΧng)< G "mim 8dl)~L=-vۋâv9rr !E|Np!]^'/eV9kh>n A"]қs*2"zӃF~Ug t(p yy~-NpKi&MjR)Qm^>ŏXc'aw々gpqcw{: E6eŅMY}g7lcp0\Ww6iL: \,:Į#tYy}Sy姥uu"oǞԘӯpeECm sQaJhY^q;9g͒*zgگAR=\nOj$Y?°|İz .nߎzvw;zPs9q#sد}5hl JOzӯOq5;˒{/|{y:pyXq{Rv߰%huEW)yy |p}{Cgp9r܆vCx±Oyΰ5Zo(}A1}{z;|zZDh#g˖EyOguz;zǘLu۲-xt ⇶|Ae݅ߚv|gu;o(ޚq*6s˖EgtAv!s vuvqflk֖\T!.y)W: Z,[(#kgǫwDnb4h;΅tDAv}D.Epu"X_}4|7bN9 j6Mi-4Wp/sv:t.r3s}roh)z" sdz)z땟z(uhnss-pqwdz{u}H+t@kt7wtksօY>y`s[_+ rR gKN yp|̳ƳسAsgwww^qXp+ uhz].~xzZ|ztwisw?whߡNgjt?x{<]*thIhigvx\qmwyUvkItq{tpuq8t>cqp|Rphpwgy(:xU6|5|gOxƗPl{/yzq=}Y%+g ۅkէdgX{wz۲F )fxQh|XINygޑJǤOg!!(fg_ɱwx/Еݐ(٘ >hsrQqyXpNֈhg<rOrj~98qrDuJdGgwggd+.gy_{MqIgv|vrr#~{CBxyjʝ c&+hk~w$x{v񈩫evD. әnr\p}2wlv+sw"giSϖ"igCh}rnvvrj< v؄ɞtY~0A0-bA0-,cs%h# -f:&}v0NԡpJORg# ={Ԡ7`r}E2y%LpsĊSmiyGX2v\6Yc:T\"x{L5{x D׀vjyU8m3 xq֯>u7rF s ³g˴}u*qdr|4EgWo^t}xgw"qX6i{7qTfL5;0BpDٳVxPy/,ǟzzpgQwz߄F4⫨lOgųzgxQuoPi YdR2Lj 7vli~vpz)wXnƄ svuMiA0GkDHdOFwDgNŜh" ~Ղv7|gJe'U^Vi8ŘZtCg"z,~rdO಺f={xtl lDDji, NiMi i!H<iii,ij iX6i+}i,@klC,e4ǯi"ii<=giuciG)}i>TLiib iqPRpj;)-x'^z Y:JjQ.9kHDW:)j jeI jj*n j)M%jjT"+jFV2j[jw:j.@&HZ H@jQ Cj_EjVp HjjJyTA3&jjQj?5jN9%Cg\kSZ>kjkoE3!k#k)(k*k7Y-k'\ kkkykz^2M3 kkȷkXCkŷkkkӷk[K !mVB]Ȅ9{uvqf> X聃sqpɄX>|cyqhŘ'?r{hX0،h>vu|Rsl6i 2K'p1j l4el'Y(B~z}y@ϰtqiǵ-i [)Vs ,tԆȝWKϕdg) zpg֠mi wmL5oxh)p8i^q u'tᛱo~bvEn 80q)<c QqrHqdq i{8J h)i*gJqۚՇwn 2d,}Sglſt*mqrdMpm+Tu>h|Xp>)nG$0"Zlp[lnvl\.m mxi&wބՇ귅x}иuk(i1CVqg9XMjj=kyǵZwQ xTgK{62}-^7Ns~gUwpCO%h(?xR̎V00 ޚ.{{sVG#@~D~vЋq g_t"сCKʐ~c<#|p,Qhr;7i`l-[+qqzl=,zrrJgkRm0mm O@)arkylh)gzoW t%^(=.m( o)h{grp8*gZsLqe2S&cOut#L,va&jDSi+ihܭY~l X\%wuLRx\^n4;C!L5m-lLo,NP4UTHq{ {C{/i%Dg$V_b{b}j dpFf*Iuo} L5v-=l?K]2 cstmq"icsoeQuԸ:|A~ ӯ}܇vJRRiq,gq"Ƴµg=G(?% 2e-˓zj>Hu,UuO_` 3q,w>>ZTg\%gpmCqKg`h5M̰z~ر7OᎥ}#Z qHus(뎤gT{DR}a|1 )hpUuϱ%gp[C=܇EVWR:_<S~gˬL1LOrpCg1-\qgn"=ʼn Srݓȝq.qhh3q&~fVth@u8w}w>z,vmͮϹašNsR drsͺ|gwĤ)B$q~ |tΦ9}1aL+0l-8T2~$zp|Ug!zry_Z) w  .ˍ/9+ҹu!\5)+uuu h0?ka\HDdB~򻭺%Lh [+s ocZ7ºGhkzQlU0YVa;O% 7[">ft|7Gh$>nc‡rtY !x)LDa=Wغ{ <G#UhDF4;Zp^ HFF,v6iXZjnܢ𸺳hwgѦ|-sȩZ bg7eq,qcwlğdg:hcqg!h|]|{gb-<.h|WŏYhyLzw>jt茜t|Sr20|j we" ~aattꚝh&Wzt*p[||0o ,=_6(:wqv˝scuztpҼMnۓvNwͥi~v{ۼcwbij ؓuuTg||ɝ qrt! <Fx3ɼ @|o|pIYues痵ttt|p+hd [5n<ȰAeugst˘Dg[gr0|w-|ʃ_%~}J_g-av⚯ B^ޒZ|稰v[xyzog -zk N׀ L57y|xn\ W ]ny|ʓ3% ̀sϺtrullź5й-yϺʃ_J5yvм.i1t 'y# EA0,t2Szv 2-om,-6mUZlrxroU߽ s7 6c ώVg< r6u.`Zh/ym-ի̌ xZ|2xYHA%h ;wYu9n.L wF{wgٝ(~3׽rVk:,@8Z83RMhfrǤ) z)zyKogOiu4 l=_'*grwu}8wuՑquգeqrhCc'dNrqzpqےfxoq_o>dבsTgvp~u⮱pR>myCv"g_qz˸)L RiT|̝dpm3ќ;8RtO-]('mZl{4JgZlhՕpjgZ|mz #~?2@^~~rU,g/KTޘ$Uʾl@?  񾺾f&TUì mdL"t{ F} ^pogz~s"žbkHwᝍNR( zO O& W2mU&[v3Ot{z.;}7tz{z+r3þ~4h-ь{g\Ok U W վ%xHqW7)7t{v]q  6ϴrpͽ/'3O ^l('Y [{¾^@܎&Na}5lώ޽g&jt!t "t $YxFfsm[r6i[#kv_Y¾ 4oӯNm2dZunqu`p?\A<iI'Aj{%{N kl}M+A?<+2ƕTz K2+k&:D3K ƒEeAo9ۇpћ-yteny"<+aan-"9n,3Mc!,m6 K J$!Qi0yf c/<#9@s6=6{9Ȕl5f GKT"-cHw(O2huSQ3ZND!mR]E+]EH` g#6dH\am26{2E /HJCrwz5dJNT[k8U1 A\Ha313CldEy3*Jz߽9g25dSo#!u Fhf ul_q"kit {p}yuJϱj29!쐮0߳A@YIovv @ؑ!tpw Ϻ[xw|@+~ng#y!tpDlEi2{i1f8g4&MKM= S7$"zhs e lm˒xmvոVʴ[qkhd>´uӯx{sb]lJB=(S).]= tχbN}puNwk#gՑDWoϺ3lpyJ5<فp=Yzu_Pip.Epwƪ 4OghiOk·|sw9Q9 Fg\YhBݘ:ב^ ry~בa>Vp/x"p[vj "^\f+-f |¦€(|X   |) > e "ø ]%I!<'"(>2417¸ ??Z\v-\ ?}`@  5@apCgb(H9o'Rqu !RWNyW|{'1lh/!d!f-hz b)s'3U`ñ we*bY|+~,pIA?<'e!jeqDÎ\004ð`َ-Y—`Ab3_!^jv`3Þ4p}. H"4,vn<ŏx NOx-MhŸ|Dfu(PMRĽ0Ù~障~}xgJHe+u-Ĺu; D"c} KzG(S?ujsu:q swh>9Ġ=pպޓ캪kBĺdg95"c\|AĊ_&nvh&xFhL0FwI`) -{k.y..]++ <,, 叛K<58vP3J;vjkk[k**k_kҬNlmc~'m8it-Ij}ڔkk kkבkŇ]0ˇkkk<k3khkk l뎣kkkkkklC?l-cl`k͇-e}lm͛lΊX*ߊ BlDlي5lNJl9lkՊ!ĝoElpHl5mHNlVl]^l lmmWTmllmplmulmzl3lmTlRml@l#l$mlmmmllnlH_lŏlAN8iall"żmlP<4xlt l-*hl|lPn4lWll_,LllxllJll9l8iomm~ mmmlmm!omtmebD~m1(mmN*mߔ73mk6m8mn^``m&oHmAm]KmMmOmn RmTm9mgYm]{\mp'Ql=nlgmilmlmnmXmmmmMRymn}mmmnmmm4śĐlm{mq Ŗmřmq šmd_rmmn]?7mŰŵmŻmlžmslK&~mmmny| ldlmmRmmmmlmHw`lmmmsm km|nnnla nm nY nnrnonnZnE n` l %n틑]*u1n#5n?soV l?nPAnXCnFn$"Kn-n:Nnѳin6e\]^nmecn)lW[nn^snkunl;yn~n;띁nWI1n\."n|xjnncyo nfRnnnngfn}lnnOlnn9n nnDn~Mo^onnB;Ś7nF-X+nOEnvnnnCn]oToo0oVqƪƯoo!ʔo68i;!o#oF_aln)ohƍl,o.o7M'AkʩdU9oҩ;o]{ Bo;EonMHodKo÷p)oE`oZot]o>eohr#uDno51&~ muox% zo ko==ononlonoUmoǏono7xo"mvGooGƟoo34o|G1ǃoo 6Ǯolfo x}o8i~~Ulm3q9i3.o ooo.o[Toh7 o=xoξ8G{oHoogڀo;oCmo^xpCmpB~p pn psHp]p] p"pޕw" @~U=a_sϜg0z㴨k^45Y!\kǯ>z /ǧT:Fh z`1?hgsvTSYb|o Pk`F?k%nсy{@CXi꽻)%l ibm~wo:i g\l~&K(QL5= ]kWnи[vMkW͸>¸uk*gJzvLj\].At k9x~,rmrȠxglh{)ogolv'3o!=ku|nSi\phvqkyyzm/U[w1n{kMâ{Yʃssa%7'A( 3EsoGȍ4q2Glq/71,35:R<{p>yGO=z*bbd*:Hl߻ u nxuү Qf,go …ubu0ȝd˱ws)1qL5-cz$ٽݽl߽὏gȍȦel,p}/s`l lʰ~ɓy|sy{ /HX h$N%SC} q5u Ȇщ៾~gٝ"C"4G."NC%lIKz*w"-xJu "ɟ .r[L50@սp00UXT }gfəBtQ"ɹg+Vɩ}y[k^8` elnɢ!ȶp }Rl ɄɯRwii--o Ιzcu ĴɜAe_ɤTɪzêqkju?|GtANle'~ægk9uPSU.ȝ ]= ɏZ|ÓܼuZ85\qNɱ)t \ 𼜹ugjt8aȼ0֖}AA0y $%IS'{ɛh { aDĉvɓ@Hp.dA2paVVZvvΦmag&9ug4xrgAmPgͿk'Aaiv"qnW`z7)mIp5ȫ[+Tghugz]wqSH|>X6 grt\/tʗ ^.-YRR2x"6&-Lpʥʖǖ{= "6W͇8Vf_*2X\58q0-཭n~_U4c6?T-^͇m}9J; J:D\Tb&MoXɾX= ʹl%ahC-S2n 3c66eV ˱ǻ'@h{<B V5k<lRK 6WY*MCoO Oi/ ,6VR_Grmf_6_5NYAc*C˹E@H*%n|E1Oz˯7NY~Y I'*m_7p C9o nȈK17͇C:2e\C4ְHS]Kˮ ~-= HBe+q  U^Hq8]Rd>/eg *_6X/9?ˣ>3ְyUxcC|76L{, oV^|21FK"W<"@%mE-"lm0'0^F(1m&wEǸ'+*gRHEŠTAgGnCqiv+TsIUu)%hj͟o bgovhbgzg#oڒ'vgڳs#ͅgg*vІs _tny{sJ&7qr "# -p7 cgy(٘܇gHttux*yK*Hya. c@:<yx>g{Ss6ˆtCgy!դ5<ry v˜zVodgZ'?Se%hhx"{ѺqQ֜ g{t7 0Ĉ›g[}қy׉ۺx~mUG;zxch: dG͏**xT|PV?ihqʈ°cͼJtogs-.`šs:>d~gwm .͆,gzr?pr#-LLٝJ ̞ͅUiݲˆ꽵4ŚgǶuQʮgR+rgzN:tv~ jmny2șg١vC*tGxi¿}r;"g?gsjsυreAQ&|wgye.`1*a{'L{[pJȑ#iܐ:$qurÎ._ή 'g@īʡ»pzG{ݱi,iO zt{{×V|2|tIt1GKh{ y鮗 {Ka{][ t}h;Z{q}Hގtsuv.7 Χ* kUigӠʥg4g9gPTqi1i9i< [ g*rʆ] H LK t{g @xܩqi&Ճل sv) Og4 nAt}h|Zyg4`|szL|@}AΛ١uxuEa{ȳh r*roAt|xlO &uʉhẓ㢼vdiSϑyʥro_M{+ώ},ggAy>CzR{trxr} ^}vux~]ʟ}LwYugfh''mV˼}p\8𒵧Kc}G;|h{;}0tGwpgg{+Q)eE+e܎qgZwMr̝z~zpxyt Yʹg*M gK zhi&;ڗ- =-ap͎.:!y΂ 4ڣVN{Cg qn:~UslΤJxt$wwqϋτ{|*rgސzh gp>W?psqB;ir {Pu\ύgdz̎wr;|'mzΜpzw7\=z asX57h2 Цq?pΝV ">U^t(h<\]ۃ""b(sg(b%tqssg !_]Bx z-id9)m{rMgT7r{:rVxߩsfz) 4 ۹{gtqͦ6{ʢ"r/ÌZwO !~qhSh}=L~湘t^ċ rЂqtQDxg"|Rs g*b-ʥvg,|uJ婘h ϝ D͛lpzhp2̗qrLqh{dU zRzӣMapý I B;,ή{΅*:quʟmqL~z>q׉Ό}f>n$ыOy͗hzДkpw GIG*9~zzYxDOx5-}<{v}4p7t hs^υP< Bf%^\eIPcuv-$y4 v]pW~{ά#h% r'uhv7qx-s~/nOigqYDquqOiՃdƒџ֌"zѶot"|rUgDvrBf(+00URRRTADATADATADATADATADATAѬh/u7q.z&G V<Y f s'Jt0Jx тtx&y!|ѨѺΤl̼vzgQxnθvQѶhvhXBz~Bh"@?2`Ox*r'r۩dghʜNѧrҌҧsԒfx"h gm}ROѻzIp8zMI9~vnsPn{yϚ{gbgqђɣΚ%gZngrpL o|JESH4r0|~-}%wQΤ4wk**6ЌTUɠЗyccwe-Ѥi-|Rh}||P0zhghYRsxB8wϣ.Oi ю.pf"v<wuh!vХhvݯP͔«z~@ʖK A <J*G )s~58{ V2Dn b K Ҥ  hl>2ak*χDMsg$h>Eug͗@x{켄zPohds &gj]qoNtt"6tu#1#3#cJ#2ekMgkKKTg p ^+ D sU.-Oi&r˴TelgvƧԥqpgFhvup+9rqhW!fiyh Qh nȄw~wagо 2Z6fӏsCzSeq#sxe1w u!|Ҭz܁;FAxvSӌGՂ23v g5w:зq:R1n'^o:onl{5};D.r"9$PK 'Xy#n0he#00J.rz*gvqƄphh܅|ΌQh|yŅ,|4|Ӏsћ~1  w)F/(=sϽg4heq7Oyg|$| !Р9hufxq2Ux^|4#rЈCL|''/JnfxhvjɓmiµΨg ћ+ixB/1w3rӢ1=,)ezAϚ&n-kh^O^$p>MwMH|.[P1.e~tBtRs~$~vxfȳ'~h6  ?X_ Ijtw5–ftdg*R|D 4φ'jxGCW|9-y!ujJxhtj+%~njf=lÿ|.~Cug0Ԓ4h~F ƸUBK rmp-#q*gAB 'E'}rʯjEGϝjg^{+r5< K C[\:4d)tBi~gR5zsE8Ȥoh@mIr"qOzqMyZ |hVg|fF#Ǎݞf14U6+1ryQ3"96֛VN BN/,cr6ǚM^_+T!Y09W'P$ qP2nWèDNMsUk =o!/s}zP hzxLsJ›•'Be~Zw? ţԑtbFLur  _}7 ֟N/܊-бHϊL `<4C< V@0 =P Aŏ 'Ħ,d"[#~mfC~Ptzr9wun9x4 ~Āi}0s~dgAxoE?~M\rî/ zx=nk3ob ~A>, K a c~ 0MՑ̆frݯgԠwF`t|WεKp)h+r4h†zu-y#~Ɇ#~"x~y}:ըL lRކ[uu*iCgf)h '(1x'7hء{wzֈw3}rdvJIqv!'Q4֞8^|Ew֋z_ϳHʃxRgn{˿Ci7]Pic~HMvA*irֶkluDuV|֧m2v Xpi?UCAGg_ 86= *)׺n! ޏ֫+ `_s'>/a0y͍/9}0\>S<lꍵ_4]`!֦B4]ϊ;A% :RKd=" !S}$j0m19O[leuP i}H!ypmpʱ܈ۑqi1uv|fAhǜ)#ƒF&Eg^% Z=m CG%~l]]k| 0F}8e'ϵvËF@ qŅgݟ皗rCfC}>hiTr},+؆Ա*ٙzt'&+~*gXKruGxv2hu8)'+,͚ڑ wM͖N0QҍfC`͖ѕpwHhՑzɈs,d,ᱥrՉgv'^PwUi݉00'UXT }xf{saHشGrQ3~TtACh_֦֨[ ~o1C4!`li/h_M: ȝ ؍s{qՑֳCg{ عgִfOOg"FshnwԸ2$:{=fZA Mj{luښp{&x}s f~Uâ3-PHۚzwͧ5s.ivC'יiԷ]t7^Assm yK{Ɋ쭤~I]1k_ٙN1rnpN!چun.)V hy}c0n7rph r6$4r`K`܆<**l{1-[4)I;i9?ЈnN Fߖz(Wn9ӉYT%tXgF2v`/`_z-ImT՘y/'s1+ϕ$$ڳ`*>"ޡTq shJoc%~4'"ntu_ס];PȐܲ:qO{?p{xJߔBsRqu[ bgƒsM{p˒-ϒ^>WfXْG̾gϟ׻sg5qԵ7g߰hCտ߄|gKgXH}w(}whv9gmu,gˆxz.L#iquKHu&nfn ;-潒@ }e4!c7Fll-K$OuKT^GXVr**ci~?½'i/#2Z9rކ6 CS=1hlz$C2hNm}ԭSdhNϬTsR_NhNFDyyԳHmT.Tma16ӓ1i˓'2E_rhgmp gح鮖qQgqh Lc&m~mh[pj0##>$6'md500/URRRTADATADATADATADATADATA/mLa7MquzngNzi1gU"Gޓ0]`Duf^jg~OiuſxgEӗ `gNg(S޿qm ״ oHvV\mlױ=',q~"4.ޟ˶ Lg 1$YFPY'vwĨ?jDP,jm\m2;8yYR?AI:6  "id5SQfS8 FA5AZ._Mb YRNkN'[^%muco+ )gd'\ gupuxgyhӠg'ۚrOL y>fl %۸xk\{o~m$9'x18]ێgEm?یy9i۱Gx" $ؔE㐱(f #o12Lьkj$WnBsq`wzQ}Xkhr yx{ԍ}Ƽjvvцaq4rڝbs|:*~фszmpJx͙> Qudg1Ֆ)zyhԱW~ƒ z$, 1r ՕOyzv{Wdn ~r׺؃AUurKVxt4pњHw<~vn[Зũ1߀pPlڕfޥՖPmoe,w{"ӭ>Plp_(c!jyUy*y/ʙH4`g.qc;՘]C]A`eqz{/K`P=m`dXkV&X!DcP$#{ktF{_؁ަ5ves}z7ٓϰr]h|ޫp|7hX~ԥu}蘥ОwЅ>p Rw*h巛ʑ˜Ƙ5Ǽ rҘ<֘9yyeԕ_:Pwg!惉Q)9g'8߁ +0ôDye歌<١}akF)}+gvfUe/}k/!\psQx1?dvDsoJ 4 ;ᨦh{uQy0Q3ƪuP0CXb(!Gnlgɴ"i@ف´hC漓⇱4Ow%zjhe)t't{q |d=lۣG`x^Qt3.ؤytQ*WY+ ;?SX_Wmjݱ shΜjgTmύr ͜ j\aٜȑ ihݕ 떻"` +g #ilne039˗U.>*+__Xw52Sn;ˈX6R=%JK ?ƀ R3o qW޶6 mZJ>bncKgfnnًqPtڧsZ.T-X':hQtgwmpH~;7/ی5p-ﲺS)'z߱痝;͟$s}[8{â|{XBhjrq|g5s@vhlM+ 9"ݞ׃~buu὞ߞf¥y!ׄހh%gw &OqrZ+t'z!w`v;~~rlp;܄V~ =8G/}_AiV~ëoNr4SRհSlnUpn}~ںn,6G[9 y`iqD|,ѷ>h~z爁{i1*kƊnF5<gA)#ai֨޳ƄH`wKvu)A׀#~z2~"rӝtRn᧞}1m.@\^@f8D)ɟD\pޓgazӋvɃ(ڸ m帟HM͠Ϡ,cLTU'!|ڙ)wqcM: pp.s)0d@r␙r)戉G rPiP!hSn _מ!Û|PJpٳg3<Mu8ݸnx{f _}lg sfqfIz.vD@zPS&<9 eIeS+UkX6 hٌulKlDqCX6[eIam!nEfHy輦+'n)0#n!wÎq>vhgߊD%Vm5[EgAnqv>ZQy|N9bCG0 gkyyhout>fl-r"q{ہ~׃.Mh f9 _}\:007UXT }ipxs/͡x s׃~_kuOɡt~g큱 V杧̴]K me>呾Cqhψ}gIq+zꢏEKƩ~k}\q=DlYa4Eæs$9g`l!۱ $wp\R\ W "/hezݝHs\ӻJ#~nàNrV~\#6EĄ:ޕh7|J'zr}>:!yøM劫zPg1q+ϗgh٥ Fi1qׯVdVN{a(&}fiqpzr ~tmsϚ~g*,l+֢آ ގ-gޤR痃i` '+rn嬣`Ni1UmiVsnpqx{cm+gRotuq(u)kAnr,cb 䣆}c6=Oh)Qxɇꗝf=xAgshC?mp޼Cwt o|]ʤtu!R30ѡ0Ss-d4"' znٯۛ~pʤܔ}ȝͤ 2}֤0{vјشdפ^q|w4܂}bdsi1ufCxD!n.!Ʀ4_QXlam"lP!@NplS!=NmWә8jvXsuh^qôz~iItw#~ӊ⑏ g꫖@g̗G klMfq@ZVMO|̋7ܺ'̆I9s숋vi 4 (z0ܑ9c+rpm` V%>3"|1 V  M V@CXR}kW J@n;bs n⤫*4,ƾ$jmFk i8ޗ%S'8W޵]SLQiK (SY(\ |n]`t|?g G$yppgˠggIxܠ{2nŕ۪p芥nyzmR6JťX m'~ѵgѣکJ²躦gɸ7q켥 ٲ?ĥ5~;ƒ٠gҨK\2y~OOϥl}NoiLPRDU W xgmpfqd.nb=!FIwx9^{0ǩtƺnQቦ9kn'WZcB|윦*gfTg礦$瘴r`sԫwPߜx $e4y9^Ǧ!]dhȦm9^\6-ֽӦu]ƏH2ĿL8}ĨHʨ\!^%fj8 ܨ7Vp@y>)4R˒Dg:$w7Oa׫bd2\Ũ^$y P*VbV !O^<ۨY3{CZHVp;md=銧hJAt<2CyzaЈ͡;tGi~a,RV*g:hSSTDuQ茦shonu`ټzY [@qrrxާB#gJe ^|@xgPii([x.}0/79VݗŸxuH[xQnК/gT>Ku%nOh΃덾UK+4Gx;ziHyl-!ށHX֘vwxE~ّ&ܶ|Pȝf]n)߁:'}Φ Оݴ ۸+!DR/g7ަ7ᦦ!7'p٨'[ި,+vz2~ 57NB :FM肋E;?;t<8*ӎ (DlYK NTP6Ιxzrމu,.~m`hN \D8 U9v Js*kՇ-ꍡ%!}tB>=KorH FMnݬ=Ո4*a罩h&/<өle Ӿ }) rؒww ~ {#i(@~y<ˡ6~̌}F-i5: 4[߉TwRH^mX_E, Ԫ !dת(Osu᪒z\zښ语.w|G r0ؒwn-lqz%dg00?URRRTADATADATADATADATADATA}pq]vtjp\$i" ztOO`T#t%e %Yg)soSi !rYSX29A@-=i՟qފh-NkIhuy.i{t:FigrߓKO4nA5cƫZ=ehih9ztk.ȭR@hsos1޲KgH}yYw['/yʥW y }Tg/,g [0`DgiIrϵr2翽ShV(푥- վbm/׋8:r>uwg!xF7qI7Њ]guR]WY~凒z~܃¡ف7|.̳wѮ)}| fR] IFOyLqY]ws++L|Og@õwX!O<ԒYtz^H+“gxVIzM???)g Ċ"qJ3GORlg@[iuHT{Ƣ.w{VlgЈnӯr|nFehYgwr`xĊ㔭@tAY\gВw(cԀ}~|9j6ƐҋrrUKgyþuhgh*`?"B1q©JpvGvGVwq帻{rrvcӴb%& *t>r>tH[ģՃuYRӒzp"Ё؀̆좘&w8e8& gVr'tłw MG^!Пjx_=vs3ztSy4h@}- ^@̴pgtq[T# (3UIJ4 ˂bg֚@m zfKҡˀ밴.U-垥̝E{2xnw3IǙg [  I};wkp2TYq0gb ~/}mދފ~fu%nBA֬mprqs{~]s؉֓}rm$~Y~gۛongftQ~aXhzF耝ˆ͹'M~Qnrs"}ny@"OsgOZEXLr~1~{KKgn u鬿a޸py׸DX'D<#BCE׸Za+nB!ꦑrgf~p{ l>t}7#!9VqӨ pN~!Pcuؽ0}!hoH+.L~˰ x+az \Έxg+ g!H}t9x\b}nȁE|o~!s7٘gwpmg۝?*gpDws{y-!=iÐљDgk+JL1\a֮uo(S a NZD-Qh~PjU+*M~ ~~t$i8r܊hItԝ;F{H mqgW7(рg݂KJ~^h3Иy= m{8cp Ը,gr&{VgOݾ޲b8b /}gYEu}vB~W ZKd[ĊR̈́ݠn4Ӓp}_ƲV(op!">(/}V-y[PX[Fip,Ē߉wsy]~}pOyՐkvyim!" v֨sy|j~{]z:)鹄O w\ǐ/}j1qdgNꁨ}ՙIذ@,5OuÄG4/7gD%tgvpȫg hv)hrи_%yౣvٱ㱙fgӃ a 7rڃ#q,7Mn}ٓ(7uςVz -i1L 5PE6~[%yupQ>Sq&քk*$1.<I3pLTgºp:RWh@jCT1[њqo[H[m5rEg|yghwwGhzwޫcsY~uMt-[~ȃhJ# jlb cs6 xPi5sބr)u{"o.푄ɓ)Qs1wCX**荄zpuAg^Tx%{8ߋ޷ţBr:('W|иЄӄ|Rل hܸgx8[и g{a )oM֨֨:nq@ܜ>2úU|ޒ|gq ؞2!||s7ڼ([j]qM,1~0B;J?AftާO8̒ЧOڷvh؋2|lm30+ܲZS9^]^|M/<~m}ڱbnX yURl^tsQrspL'9ng7 mp xX2߬m+!"rbb q:akmM|qqs$u@{by0}|s]w{xкw֡ώg䟅) $4/}D諸超q[҅DžKQw'w*+҅gԅ ~vP7|_err(ڄ Bq.szoT䫜wtw=xywY~쓄\7M2 Ӽ_,/xrZɟԨǚǚ d[7yoQ8ua-ǚ {>PrJBx𲚬n1*st̚vNp5eͅnrEއq300GUXT }tڙnm`5g2 +m~7th@n ĀB1[ ԲY UW%uvhrTפvޓT8a֛nqg֛V|/p梜nqSͻԖ _qyֈa|wCyVEy{LamTKy„]s:8\yէy$ɢw~`yZwjykvg}sy:Ϛrg%+m^y3yu VvNp(j*yΔyyz}3!cqޒʞ{nK 9yٻ{Sg ɰЧy!:y$Qҽ2/읟 y-yCcY:y]y#ky5yJx5Eg g.4gXLq~u qEgJrҳzѵ?Sszx􏋍y zRF{z0zmqzc(sz,ShH}&ztuǛSt~ݔ1\> fCK {2Us-|4Kz%PiPzUzG{]>azzUzd)ˆizkzx<ےkh'}wNv;MzjgLڮz3hywҥz^P{z2јzzShzz$zhpzv/zgzr}dwgPZуΛ|/N}hdѠ+:z$xypzݗ{œq̡Gyozi{=u {5+5+ D" /{3! oeU ={>{թ>ʥaM{DSsW{g@l?xXiYDy ϶d{.:+b{ .EfCz~n{s A8y0Py!dgtqt'{ {>!L,a ]{AP߰UqRx~{er^t{|h-{4"Ր{^ԗf{hՅr{Bv/i79φ|{rQu{l{{wˆ{vQBss+4O@gA |y#<;A W {Jv/0|gvg}]Ăs֑5gí y^PQܰuo2 XIckݤ,{kV}|7J|`|i]ր|quqfiK|MgEe {cg|;Յ|ڸ6uOͧ||Zhuh|笖O|S\| !z4{|Lw.5|Z\|| /uf\pHƒѓt|_%vFre|~a+qYk&ŕrD"Mt3lRMg4IJƇbVݤ-S <ud3hF!,Um*1txFnkkÇ9k~\W`)CUEƦKgl"x"hds{'l}All/l%O6 @ C!Z!ְ;XnJamum`l~۾(]0*JkȔ mQv!V mOjؔ ݔ!Fx{(lq$`%)eݗaq9xWnOd 9:-`Œuml!eŠVg\iL+Yol֎uT{[1mT@F N]PŇGmBmoIXLל^mlcrgŢe+ n|" l!!j!6aq}!Aj4!_ lbVlso Ee۰`ؔ"f?$(g9\\L… :|I !ZD;: B!4s@ܲ'"4]rDžR\ĥH!R!Ɏ'SNeI oBtS2rJQ]Pqȓ&PP B%' 6iwy(h/z8B˘e@i2l`JG1< Bװ"B V bJ&vs7yB$$C &lPvwDƚMA ;a% ѥ9wz\v"M=ޗ "M)B aJR@qMFwsxfhywu$NlTWE8o1.EH4M=hwZ|@88U@VsAe 28{w" c;JQDFhŖuDMLR$!_Q x/zzWcGr9JL87ؗ)!i`JL@B::' FBHDa{IGu M&E a{XHlZ J! j`E[T1zR.ye]U6*z*- X+禘n.[ġaձɢFM8u³]$'+ F ;\[AKLDYF gDƢ[rʮPE;bZ^VI`#M)뮅k Ȯ DڬmtєJm oDVWXPQUN4vE ]x])XH9ּ7xut ّeLxB2AP=xӭ %ʮՃ6Y,"fU Uv}B/(0n=!+CxBO\"dP,3@\сrdjb4;}؀ b+٘ uH0=TX.TG6 P@І6 d{ CH+% `$2<`8 |!x$L  Q0<D @˼qʑ`KUh@BYB P&Z@L܂*B4t,! 6a e :́- H@  d( 2 X D!-BE P8A>7)Ol>;S<h k܂kZR(2p ,'ȬeLEtgj|㇓Sw+r0 =0WK_쯾 ~:sH~*xk;:"k!>svd;zuΥ"6{:7-wC CnXC .^8~0WlPG}p5w VSH#e`l! vjeQdI_ 8^NU;&n/7_edPkB%gmNVUWd0Q;8W!ϕQ`pN(!^R}&nOPsk &_ZN.4iloׁUk}Z镅*X%/Q~HwOiDo45i`!]yY䕉GyVcMkb>tX>SM4faGNz֖hp"uk!%~\XSN3fs^"(@0RbU4w*gJwV|sz."#usG6f6f#R vUHUI/HVa;|dnІa.06Jhjy߅Y4a^6jEgU'uwEc%jKHgXuodG^{uh ZoF-- N,y! W"c@ y5@cRږqE[ēEyU.v~R0Sa(\wWeY{RW׵nMc[m-xnBT24]Wb u~pHtWtq8OhWĖLHS^1ӇnnY|_VwrUpRso)d]T[{MH A}Rܷ^ % \NWxvWg7霭O֘~9RWt 0n-X|FV-'TV Q"" <bcb0=Wbu[߆iSe5`֙6e!l{)u;q]hb2`r0VͣS@Hsj]rDa%IYdBX"yӝ4)u6[8M7AF];J"IIu":^s9"Xto tA,3M祥u9 6\[Hoao DPs0%Yv"Wd\ saWQ1[>pwcmM &aURZXl*Șq0 yѪ&uRGkDP/Fhvg5tHY+5UDl)s:MYT[nplnZ.F.9(;duQ(u*s/pl>7WȊRNDsWEh^ [RȭrP8!gEz줯} )+@eNm^Ւ-1d&-1ApkPYU7uP\Me n$Z6ٕ.+ \1kmyh׵BjJu]sҪ\46OwnTĬ fdE>]VZ0p9w&n_VGjM**xxWQ*tz0p3ǪdAQHuVױtl o[Nvp.gl:ZPOin[1``Q:qtPUE$*Y(!*0y7rX|F|=!psg((OcEaev17$O$Nk!GJf&a 1H;u h ֠<S+;R(hQ ƪ n LkiyhIMZ*1*@B{KY#ۍ;)1yzSKhb%e%cU[ʼ{`1,;v5#|_#,awƹ:O;\wW|KU %NrŖցv{y'cՃ%Oc _wS\ \WLE 0&e8gj) nl*hic'rkawn@U'8*`h\U|mtuۑs{|v{\쒉d/̰| EpNʆd2N\ Rd.$ X\|NM/LvU\z܈n=V-&wrЉu̼Ezh*dsjN>uPa:O~uJ߀@,(OWC^kad}f Ѫ×D D!Qy)o?U|E(R0"e 6O%u :BU_0N"-y9?"EzM hqoYwO#pqmxz9ZTUTQNgb4w7kxoZje&, +P3\k1RzZxXD{PѪbPR{)pp(;=@o-v]v{/P[Qxd!g My߁liڏYAo Y*g3C!hnD.k"0p?PDe!hr+Wh{cPpYMͳ{( RqדyF ݘTTPlia'3`](10vZ'7kB!`VJ\Pa'0HYsN3y2 $kW3k 4Bz Kq0@Ād9Ԁ@@ [&0x%bHcR<(wUHpR/ ?eH B'x+^:;Q'V& ȃ8  D"0PC6 $P+F `5LĊy"%QPXx!LąpM6iR@N*$iB %ԈŸYBW&2'`Ce9L#6E|0 %ityh8] X`2ƴB@S Ĺ.QX34#pbE 6= 8܄qyBa4^R#Uq9J=THE+)hEv\G2'AV6R@H "(8~|T&p&nrr*lb#Z+ $ d,"8bHS66 p4 G,fEl\4E8#%E(A;Ҩ`@F<$p nd\ X܆0pȌWHfx+#a C ā( 2.L8Ox!."NĊx3F1$Ē?@p%rRa P1܉<'&HJ310Xh-CxR!aZMz921똁zڛAia( ]!(!e_Ρ*0#3Ž&VP<Y Z'4[#!$HT ăHSPV/ DKD؉ے (1dpM8$a@)2f-%?Z@ U̜ P;2, ZopatARLk<3* :f*JQ̤ ˉ2:n@i fs V1r8|hU!*A眤%fE Ac6+?L+JΛT h'Nj@Uu^#e#B:6\u<JsV'7eQМ``QSEch^@SmOsEά-0Tlf̛-yֶJs- Xe^+ 40HB1 悍碞Z/tFl1-(,$,fz񌦙-Q!&7D#+q "# vP`%T+;v&VO C u2W*l.R1h/6`h%'z%v& eLJ {lmL0F[Im=g^o5O0Ly]A'f t܀D:e9P@|a aJM)-%_g `陏ንY['̬wF4֏RfAZL'"-܅@Ľ"gzJy:S d HOlS<\.8l,w)UW,Vʒ/œS.̳d27+,<@{.[ew!l\ڹu]'T)h]Y?Bط(kI4WwXr?EE6%<:)\8`ʯ{0]CH DBd@DH-b#DHM`PL%DH(_4&|"ze`7 %p,V{F* =B*'` (@ؤ^Q;Q %,B$`~A z /Gk%1#$ m# id 50 I3 C-s&c읓#jܛ'y/ (Bh ~A=, dfW =SXB->)Ѐ7TL p&ß\'/vH.UTV1F^"k?1dJ%2I"1߇`}+O5"z\`Q*<@8 pƒA(GWBH CQ O`(eD d_KMhRZЊ :0_4a00_URRRTADATADATADATADATADATAMM PA8aa{PI^C]X"_p!$Q(bcQ,׋Y3L #,pX b*x%B${p8Hܣ[tp!8&WDf$wݻ'}"N@[x~pN)$9Q'X@!~Q_YDƒ %b`[}-f\!D!RD1 8_>L:R`# q ʣ4B,)PcDEXa +$xDo\.޿S`#1f*cZ2qƁ EpOhMw'ұP++sX)4:љ+dƅ)+'& ,X"\'@)9s0 RrfyEzq}B@ <z H $wBtd >V,  I@ +F b;`'2,Orvb0L~LÏ[ɲ59 $sǖeGDA5,d'АQ0PU+S7){-2 YޛH-Q8Q`#c-o )fr8 ߞ,FP6Dy!eo|'Bxʣ/L: %xC%\$0:-C|"fp $Đ hb-9Gz<4hPAI⻜%K,V´x`Є90bԱb˸1 <"422'}33n1|HYݍB>V) LhtvRYN+: de56/z,`m~Ɏey14x;4&Ʋ^>f NE HiG:Qc}1L<lB]\DvpR\{7n LLD5GU1C||DBKxP!:d&ˢ|7οIG"G@N:/9"1Xu09zX}xUWDd#&`1_H@S|$P?|mWţ7 2&x|" ;! =M˷49{y~ K_6T} [_{0~o ݯϥ>~ y{__nw|nP y7qD#p~!7~{0,}ÀɽTCzqܣ~M~8(CR^#n~CI_ß;az{{AگPa>4L>ӣ}Z1OFz(q;={_vP~ jԷ*x{=z_G8=0YA}h  ^P~P+ ` {^'܀^<އ%{4@-% ` `n{h,^P )18@09@B]|,1^ P { D^Bd{_2"@B}/n{D4/@p>z "/gOi% tg_ %|w 2 _; R/'Zzgܱ(A* / |'e2F0mrfݴ04 l8QV7I tA7XX#HД]I,@H@iT"<" iT4޿W F~DzGh0|KKT|_ GK4_8 / A!E,ḇd@d`HU ge46J!ᙐ}1Mt%D"qOр/PX tA!EHӽBQt_RHbU({ZPV!KF8]QTx&tE˞UEG8a{H{_M(M{T__m`XMP "MzPHr'Nat|H0RaC@\HKd-F8!6"L P:{Yj?dua g {+aQ{A u8 P X8:u/rX~IK#1^[ SX(5_a$쑇31!`MMŸs( t(5H8Fcd+V|aXh!G~=j{_q'6bbwvz"b}%v[ u/V| ?B^٦ -}h[#!*Z]/0$mW =" /@oHޙDff0m&&nE$^00gUXU }*4CXޜ'^a`剴 HWn'։K4p'# ^(Aaz/<]&%ԡY)Qx)a0*sA)s"h*bªX+ΊbiG*mab+VNvð,ⱘ* hXm)N{֢^"µtڢ8v".W`--xvİ/:G[/2o',/vbաmbC70ڋawdBP/nH1>rg0z#0{ҝX2"!#Xux2|0|_.ʇ#33*f4(cw3~D#͘Kchw_8͌OB4c-VL46~s(5Y#d" =(Qg0ڍn#~wM6HVC7ڋJb8)-FW1mQr۸ x1םL>8ڋ5h 5a{9b;h/zx7Ďc 8 ȂH:# =Xpx:"٣p=(ц.K{X棻$} > (>Bu0@?38FߣI04cx?rY5 #3[c a (#7iΤBpPF9ISƔCW,rpNyPb}lSAJITBIC%gT}CGNOCM.dCGN.zC7*P9_TI$PPYYV%[*ʓNP-rPP,r(Y)@$wP~w47UREciM #cirm];B19Z29YZ*TM4c_XKYM=cYF%B,eMfɥhT:XR&qIT&Ćv $Q$Ăv)$"Q9$vI$KvY$vi$vy$Q$ vTaU<DQ>8U6TRbY\OmeCpPp^t A^Fb2e$bn{.抹iYM2LITA%(PODlّ`seK)L%` \uQ& Wz`{2dpVDL4KXܤ5 @#f AP>$p_>C8]]F ]IF,Y%1A6 i"q&Kghb&hB$Mhb&VxiWiNhdWh΅\xiP`P>-`(f}EahVfelzdt@a4@!K,fnMfu&pa~t\LYzu%a4 j&G!f ^DyY_^aL\l:\a4dfyMMnEHhNo~=!O)"czۊHr6vZK䙹dd#B}&>⠩8L.)%a%~?&pnZsz%I&z[av#҉MJ'XLohtS'ږ(&#VȖPtlg']1u6n;"9ɜb0"Ԝ|A)IR. x&'x'T xފgxcnbJ+N9Q_,Z9 ]9啘'xxv9XL#ay/'nP9TbBa])3¸I잡)Sbp#I1Z1"Ht!܉92~'{Y)3"2yo6xDozjw'2qrA#iՓ'b9}wL4Ξh952_~ftjq'INp(g٘+9ّ܈xwI1b'o{ꍈ'~ׂc J8ggx78MD}R?g^q9.x.xP^*gdi#ii;jk2Y%GI٫?B.e*Dstƌ9g;[NM@>C@ I̩E@eUdNp*a` z"_$At'@a0pjAVrLB R [FbdiEzun"Jdrjf5xzZNi/.)&&TP#Y++ fAv)dFEr|Z1 !`g ʭZe ̍A=I A00oURRRTADATADATADATADATADATAGhMEF2*Npbƙs j^@^=Gxįĺi<Xdzgźfڱʩ^Ț"谧~joϪYq&)Dk VJH+*]IB|Sk (]jdi9u#*$AmFej}ꭠ H'P=RPަ!K!`V }PC)t^M t%6CjF]~AA|AJ>*9ּ)P(MiͤEp&D2@!äwJ$q]*pZ#T\TE @d v6v9X49qYݙJ@ĺ nQ Fj[ZK4sk첺qDqP=N&k&9@z)E?K制^HܪzC}ljF|xBkZ w/QoM҉PJ s9`D'1|@Ò,)Ȟk,UɸDM}A\ `uE.vʾ+C ͚ ؐPal f g,X%f^a$ KXB!0@1_lc lrʩʱL*IҪ6 d|e^& Kvp_Vm@fTfG$-ÇҦ\QCLfGyAG(Z:A܌4ElTdPQK萱 eGer:9^ cKKˏHI֚pɵQ[hM-PBpJSP*ΰzLIȀA( F/Q ~qXlHl|*{|}FJB[SDnBA`-dIqעl3ح)jصBҽAU _O/[" EB ڞmݮpmd-B+`0@Pd I~ C;Ȃ 1™mNCj%c۝qY@j{un:pc5K/Ch zqw}mPԭRA.v'HZך0R =@r' a`.%mg +: 0_=vZZfG`KdNaP2䨹8n6wm̹nnZ::7 ȑ 怏ilLKڹ`^DD ĸOy0flH*@NI&3[榴rnƂƝn\El-} ]<_aj?{^) xjJisJI҈t}岟Pv(*`<LЕU.aЕo,JifOFR Q ž*`&ڬl+AiTQ Q*\zNi{&l _fL5"{EOBi2 o| X;h/N۞ d>f"+f lo;I P, -_Ə*Q%.j-EZE0gHnQOFFV; (\aMa(ʸs XOq4 D,); v@\pc{ ƒ$ Xrp%Cn:~:j&ϊLnEіkp@r\k-nϒ%&eDPDoC( xBH]F↶3Æn7 ff8u'2ttç4喹B1\b>6q8㱖D b22t#1Vgl, lV.)?|@/<FgP_@< {^C<=AM+eVo{d6c)gfh+ln5{'rH}~,{+DgXV nZk%YJRZ{|qeƵ|^k 환m`cm'lkW+))F i&lr)ҖΧ}z'pʧb/(b_q^ecGeq;)qw^Ф.Cq@MqGlMˆt=\Cg7)dFwE ^{$;)muF1bgm@ q6İXi f4U? ih[x%xYiԨDJV QvD.zEDR *gI1sm0Іwf#йIRk> qG=߃Dl6q>0/[m2 {n  d.&4$)[!Ӭ$!3fSN_MMA ]@ȂLX /+o I*Dl$Y@"sa2@bW9$bBCppP{%~Ѱ6vDQ Mkjm瞱pY Y9A^kmQL.+r/ku0˿<wm̮mA-<_yCrlr<Sف|[!12 2& 3-"`PF,3'gA,lZ:p jL3˫ @JZƗJh+fr򳚾γoF֪˺j 𶂫jf E1oj /<2KzPK{1V&wj#0 EGRIsP fk.!|Ȗ|5=pnDF\FM /k:k2O$):7 Z!2nd;s<Pf4idYɹq@&_Hor@1OlIR\jnB~@z9n-Wj)CwR8^ /`N~o1Z+E:5BqS`+E62O RRڲ2SHJN>G 7пe^{0B(+ nQW$i5]˶G .ܹ.8a|/7@ ֯,A7siDz/+Ԙʢj*x-Ao f dإ ,G&lfZ=p[a ']R0[ DR@<}Da-EtH=p0#<@)K)ШG =Ҟ>`00wUXU }(kbq4) 2Q#)7v ،Y"nI>'(v,1{C[5c(rNZ,;dvb)EwBD dL K$kTzdqDkNu0ǫ Z\\ܾ\ZG9^]':핵:P{h]Rc%  ͳUPHmHmIJ] K2/FpW$&I7>25Cp ؕTƇp (ǩpUXfPKFL@`&TAvk:33&b3O>*"k:W<<^a}6`wb]FI^V$ Y+ɔ"ȤM0;GSl:G6{;?o<@F(\:γC=iEĞ*&p۳lY`EKȲ)!9F}#r@(j;׾[`+6ʫA+'p=MP ƆD*t2ȓz32nt9_*}-h%Gġʿ̅ҥ*RA~Mʷl+6l+#=l%HLqij"Ȝ I2$-kT-ĹGZ+ 5.M_G 0vμwAl<1|arLdd wLš0c3t'd$47v`5m ؊)4\6=ƺ)MO-`;1:]lO@/ AGjWG#w\6gsSLe8k;)`^ yj{dYH8kz&)xj6c=$ZTm`m& }jOGL3\ZMIX iwۍXn1H+d!*q|6L b*-,. aX ӮDltT~&d U@+%^E \\X҃/AjqC7MgJ$vovZ_ 3L4jL[_+_H@X@atEČuocKnGpI.քCW8GTo\!1̳f&Qސ)MtǴn@3e'CNhrpg¹d69xHl^7v5-Q!y4N=>pb*8 x ^{@L2r6cNEQ8K49Ҵ fm7nj5˺rE=9ݑ.wL.kwCPZ*3&ɜ@rg| B#AxBc%(Wmr=Nʪ, 9醠 ARR-JԃIbf\ bjfFTהupH{VDWcB`o33r+5bW(7iĪ1)afWAOz>Pҥѯ}/(ǢaBfKCc٥zejڰ9ޢ?=k=8Go뺚esk6/h栏sP ҫ @0cw i*{b㵬1f.Fqyȧknywer:t^NL ] s/lmf`Ovu;qβyK\ <w\=7qޅ9W浳s%t~5 ծa=48 dAðpjKY!eo0|w{D\9rkWr:^3k)g0FeB)@n+SNyUA1{ 9 Cp0&xit6c Zyܕel+BrUgNЗ-xsBfpLDH'8~]kĥYX{+[:_0yE&`Ph-az _k1HYFm8,J5TL: oxν%0*a(gqcxk *w*+# )8C%Y{ypY 9V OHI pZ KオNGR@{CzW$0\ P~m*/d5zrq/".)P0fGp{;u´[n >e^2tdUK,8|{3[;i69J_ʒ9'%rEfv;A jm6Ffg%RrJ}B1"dy;JLt XnAH VI "ˍ!,ddM@ ;vZ/qp:pˍ%i$l9<&d. ExG pP.dS{<#k}^\p%sJnCK=o&ɠ .>Mav˭ W0_W:)6Zxk\ g eNDH%N.냬'%b'8~c 0^|=;ZKHu)Č.oH ЫgEi4H;X,ܹNG,5dJ* vzcl:ګn 5+ƐuLAr[")qM;s{][ci. 2n41Z!1ʋFN;*`̠RB_Ep[CcMCsH[{Cl.~u; б[ݨr>cy @JC?M{I%ywp 8/@GSg„2;B{_'࿨,Nz+ _)@'q?XOwkG{.:CldX'a@Nބ<̪q3!Zv;% C@K /A K@{ {֎0GС,=+d;)&- 1|9h5ܸ0x;(%B c;$e)0AB^l@BD7"ϖnOtރ6(bGODECh`-|vbDWejfu2ۃv/~w}v'j7~v=k7~v'l7~gm7~‹,@Nt1[os]l400URRRTADATADATADATADATADATAl϶9~[ʘ/cl]lݍ]l1x}wzwܷwǽd=:~=~v x'xh7rn}Zx}w] ߗx> ZCw=c=xxǽ0x}($$9gCOv/i‰YhߌadlIACl_AA>f"FI(|(vm{^ޞm]o]p?ۛE'hvV ާJ3 ==.m=n7.ht_|.nн~Ov['ۗV0:۷5gE>DpObf=|'Í!>U%~u(>X i?'?ciW{>mOq ~P >/X}$ =޳g_u~?/|_8 Bꗎx?:@]^_RboY~!j5_u_yrV/R*WVpL^NA;ZݑoOUTqdhzbm|ԮtRwe[TPTnDUVqP pOQVbwew@CȮ9 p,)2XC-rw/hݤKɦlQ p|QlmE\jg[;wrOʍ{/ĵ3.<}q^ { 58</^(:(MLdǢN=ۋr7J5tM] [( u]lo:6m+ʫ<_A5pm=a?a[s/^߸FK'5CG%Qc64_.V&+pWkpSm3M"Rǡͨd۪Uo>)͝|p6G6rcm~R+ٯ8i5V!VH29p95As&ja=pBBΙXge"NMo97qxE~}&$j%9Bj3kê|ukyZFjK=̬ 5aOϴ^92|\{Xc},H+BIp1 ɕ_sX)Uu0_H ov3!gL/rMgx'pUJI? ڍ@=~Z.[mqFfʻAGnM-b`vdSc6,z%Kk^"R_/Ed4#k%:pCtԘw¤e; mn! LY 1-e]+o2\ʴ(n?4ڮm7 $ MfsSE\ۺj!@Uhki.w]kȅ|rw6r+ ĪZC cG6i =Yr` )[P@ o-^ VsVS% (q@F/STѹ\1VSI `J)́oAnXUp,3VHTpE]ě_ӎFJ#ɭRI} VwEjit=`jZ A dv_K)E$`5Ydf's tИ@J!3U>2:tGF0 ::8iFswQv.g&@s'D2:<] MWD0Yt]cu7Y]iz͑O7Xԃ|uu`XdGfHϯ$O.4AOl׺NE݂+yLkY T6m$qWj"hxV@O v# hj."L/Y `AF L};i(֍0E֒Eti@% H$(#a %m 8nk8bBm~[~AdL_ ˁȗG=xvzn\ ~mha/`K"hM2ݺKآjϥ ssa  0Zp". N pMgqa dMa(*|tv  ĥA2aB̋W`.B!'$ܩ\+NP|'\ZBV`BGz]uBY E*< \򕐘=$*ܥ[$XW7,te{.4-AxZ~EZ^F x nBrW3xːAN&!QSFd=a- .dX&A+%x,\O0o]boP0}͢$X K 6 @+bV̐LVW5 \xDp8R ^~N*[f5I Z\x$u|Vk@^+q=oujGC,l9=s׬k򳑵dnGoMoWJ[DH? r6L Th $dT dgP["fK)ef1@P +d"9ji%wo3L\X鮝EZ!i$]FMH)}(6 )X̡|$̶ Vl=m-xX&Ű9!6'X3smZ pW΁s' H\ls9$ c=cFc# "^-lK S*և| 9m,5=;}kI08c-ʐH&V ꚋH ̂an $@>K1)n6Lpo\wc<5Sw, A>2Bp`|d4_E؋9!HeA%&;9ꃦ 9r~N,mFXKܐw"b9{D 0"h%E!VN 3]uD$/# :%̈@1"i0"P F,!0$F ʄ@0#ya"r !;QJ5y`Z#x!< ,@ kH~l= N KuIQxiH5Ġ9+ET(VpDL?W,;]ѿՁ^ˬHdl.Bp("kPXL>ԅV0ڰ[V蝱 a_(d`&2YdV%b T|k%c7@sK%yi[EILeLSJtOzEvbukt,.[+.v7bc(B۠qlόGdzwb~ |`ʬ 8l()6_jA2b.*/N2#fhuׅZ !C znb,/ҊbVꙁ$" ZEBt$ vQ8Su{46ZEWtLqpgE>T9^28*q Z3?Pu0UH-נq8Q,ENqXT:ptMcކX'N%by]E `%?xTAqVH" wDgmPp azMkLwC g%+< >WfG1]Fz!Z0ƎpzĢhGlX#$9nql5妲iiS3nJk8RV5++/?6x S9TmVsX=@CjYI%!O?SD'k>~%F^LveP@_0-us9!`w"aac~S c H !CIJU/1O{64kZBkW sUk|@d-vL6l&mozĶT<C%Qk(!Ե #^oѦ^S>ep;hF; d&'Vw1EZa{B\2 [Ҩp؆ w&3PE6 yh~j$qx=\0-$Dݸԥ d{hHbd6 to(1j(N'` aMlWy4:*D~"P(rI,E"KC8OJm+ƉJn?108pP+Nʊj)At<@9'< K>I6`*@ d/*RA%4 E&9*䋋b+'*Q (f",@Jl`PJFTH41[̉BP(Wڑ  bx\x0u3@& 0Bw.0 T9i:K cCN#@SR D;p{&ѩB$˜)I:'I* P/8vjHR Uespq[5%S ف:4qd_XdA-3 y 1֏„4qJ@Y0|{P)9LV9@:X"҈8@ jaG2З>CB+f4(& 323#IdAK]zO/*t0M`zAT:GTrɈqF> WIc09Pze4 DJ9]3 wb@#4H`O|܂J3-@L~&uGANR(1G"圶P-Eu{u߈mzxF}|z"B2#FH݃78 OW 9Jrr8*b0)k;nF mNE< 0I€L#Xf1N{eH)ExC@`=SUX<(/Ǎ'I[-{NerR BE3TVn. Q$L-KI5Slf|\H5,USR?n"?)؋W"(ubK{VHlWj e50A?Y{쭎QYg28@)=c -@ ]-T= 3U`@#-9iTy^>dD@#0geܔHҁ9 N /с!C" ZztIHLm1º T\;DVe 0$ dڥ-3KW }  0 Vdm,/gI c0fɍ[i{TÂ44]Yq>"{iHQPĈ V9}T ZPn'*yMMGd!@ nm[f@8H'D*ոLg)6`t;%|*\03)HƋt^"09R:ap "njypǨb˸O5Q#'B0IbR@2_T)?%N+D2f{R <Z&1M& YQ yT?AESJ/ ˍdBo1.nmD `':BV0- btByV]C#MDZڲ#|2;"_ +od( < R fWvٴB',1D l^,@n&Sh%d<JRtv`֠3)lAOB'i~"#Q" %lr tRp:Ac4;1Ϻ'3E4:&4l׈x&=g @iҜH*B+X0C<2!wPBM@_*r*{DhH$(RUObp".)U`UX`H<{)^tDf`$(@3ϢHԓW;PzzBe\|.$͈p-hY,R5K(\^pw(',p,ۇCYxLVii|0Z6)bD|/:mzL1`FyK.׆@_*  LBYPR)E(l8Fu}(Dt4*N* Nrd)ZA8h,(it6A~DG&|wpCP35#c! hp| z@149:$`dS/8o%(jyJru&@j^9YZq:2"4.9MK' T }]8sTO (GHUtDJ"&"A IH0##VV 6AĂdG`@4>jrgryԸ#QͺiW3I,2 z %󧭤F)#H֯N +BbtIKxh6Gq{:M^NN0)I@Mɞ1P#z(U "vk9'yG5JS5ʟ~ƝaP.cTnLj{yD:Hu>8z#8~ ,D74:q3zc\ hbI %?!HZH8ߖx+Z2M} `jԘ\M 83y\$V;^;Ƭ:p9z-=!r sI<#(ڎ?F$mpJs&i-r55Qn-KK4.@&톄0BLNحJ=L%Ô8$KYS$f6s2N=LO\m _4"X8JbѤT_,װq/L 4rY&˙vSb44qUS9u4$M2de-g:L{kJ4ݚ.G[D3g9gItcM8}HFn$TUjf[+@oۖ$%f8wE$\rPb(6`ڴsGm 0I,p A#.p9VtRtmjV+vN ,El`r0 @N$V0`C(ϊd([-˒iD*eEhkIRo\2>b@-V38xbG&HCp\\ߌٷ[KDysY.SF (HЙG`̂Ue-4BdZS3%SEeVUK+h|R_x+1d Zk D]Y8n(2nXknRZ;8&oeӜ0ZA+P=``MG;NGlIJH\褸`UD #!|e0:Bjaf Q3 U f#m 8><%!Q¡ ̀ *f5cF`/XD Bͥ v+ȭmo'܂םZ\8 (nPl//HԾ!wwABGP:L h- S32ؘ%5%f"֎YRL(N[?3o-/jK8Cʋ`[)VK>H ,AA QKޥa(RR[nuo-טpza06 *DBdXש!~ O!{X0*bӬ(Ya]ƕR U`_aJPI&YLjy˿NYeaB ri Y6 # z[B u/CA5ܥ˘gl>Yè#HtXz#taW1] M9,P vfuD쫥AV^D$,Lhb1&A[еUJϨ8R0//&ėM'mBq%tcƄ*# ɺ|-'+TT/epuUʊooiYkaB/}d0U( 3c)dmܬ08kKΚ),q gN\1DkV 3iZeKK W"D+xJВrhS( ӄ]\%F3Q*r|bZaVBh t] Ɍ.4‚p*YV]l5 0 dX$Uo1 7(ÇʰWHFh뤪6g=cm [ݺaȐZ]O)C!ݕs=e=`00UXU } QuZ8kSӅ$ܶ֕ok H+D:\9)q&reApkWu([oX۽\au 8\\}'icG*ón QBh+ŵUx:VaF||_vZgzVPb :tpD_KtגaZhվ2Y 0 y9W"{NZm*aA/5A+]5pPv"ЮjjD{]̰U]i#IM]duX#hxEO!^Fb-:nt IPf*Ӊ0͢L%a\K_0wƒ=ْSB %ǭp6*w Qڴ E h-RSWu+{|'VZ!nׅDǩ3Irx%;Uf$i uNXSUV`>樧0!;>=*tҧ^@cB6%dܧ4[O\I G,jF+n֖dRl&-cdVn'OrX@.~z5W -(F`WW%mZSLE薴jVMadb0 "'F(-]=} кoyZjY?!*`* ~>dPOe&$NȔVجEn9` 2B`v4ӂ+@ s53%=I+wܤ@ ꀭ Sjj 0Z@cw/-C gV#ARRfٶ !K`CN>7[s5 EA)%m+aw Sz7r[0- \ Л*Jr-,/Qk p3[Ls -1f?_}-:o`{T4[:2e3ACZpe k- ?,ǏhYLYB\ AFA8CFŤmֶm ɆvQtv#45^)PE~@ o9ˠ%"!ZL6͚#3Z,C8t*Jvՠh3mw@KohIBZ֥h!` 7/Am֡e>ت( -vA+:tez4!ŠL+~ J8*`GK2 ,Z MV4ъZ)uKEZjD,.-Q{5Ԛ2Ym6GKտ$RBm5ejf-`FNB>HtzW/H˦t1P!HQT[<48LvT2qi'\Zg61(I~^텒_R;e",<-oZ ť-Zk- 1 㬷UZdm]K1}BOwvj5nk?2ͼzmS jݵx n^ RkS|]xiL[VRlՊkZM\۰Mnl<]6a{]ؒlS16b` Ra!Y-ofk l0Fu5jjk3WD[ja `2j@5-Ti:ٟؑ"Ze Fyu(:*kf1J{Hml9-U5VrP=ylϦ|V>9[aj:;-?*X;P:, c48#cf9$08`E8LzNJgsJJ)H2VmWlpΆ}#ųM7iY<6vvDv0 7f ȱ?:ӦEc <654BcϤ:{/ŷcGERRmsNLHvNz']Ȋd9$_睴O|AOٷYu @X[t}Z i Ep?0 )2i׃kcy{DQE.Y!8Ml|]e p}X*IBA["V]e1~P^6g be Z 1۔Y̪OӴxL&aC#.ZSҝPCg[h.s -Χ,/o'A*|p_ p0`lPUmǦa.`$Cn @ GSPepժ,X+2Z/$)W}%Z\ ^u*oIkcl#} h o.oGHxTx+}r?崙)cy«,OE&DǫP3^h yݖŖS[uR7ZhY#]Z./Y^W/ =( Mvm,UuZ:]<}P1k}4g퇷ɋmȈEF-z֪ Cyw@{m>xB[W]QNy_SH-C<^]kelM T6ckfzQfw{Ch!^"7d;zYZ ˲zpmэ~NY$;w.^WNӚ(Uڵr8 ^ct!"lEdq@)ilN~83s3`X7`*͞%4@TxB{xs*I[D c NEH"Lz92U/(〉/*i7#[j;w nn^7-0*p N)Bn0:@vH!ά/؄MNSu;IVH  an R_ WBb U20|ѥzA"y[35꺎< @qj!h^:/>0I/>3},G0v\VT~p^ob:ߦoD[_6gLb2[ l Zq2GepH$i.(wȑ߂`MSvkzz!C'x~to Nn|{'=d  Pj:[o#'Zd0/7r.j7'ik;+ w.[Ap 8F 3GЉE8};3}@:00URRRTADATADATADATADATADATAO f`H[6G ZU3Uvgv*2NlYv7a@[XG^&LkN5 ; >C+EaU$^ 40I4{&WH4d5 œ<5HmF0Dwcܙ1uLQ|Cd`6a96뱠\2W SU# Je( Тt\{(&ħ<-K" 6fr@!8zpDX/8*@wZqALA3z3jK z46|rX0r ns5L[k @zDㆊ2W.8"cADNɴR7vA@eZ/>*hnV43NԊJQ,,+5`aVؠ 8"*@ mVHbZE5IP)'8}.jX0 & (6N6yh!b.ܼbGx#6;0#6D0Yh$À??^q6ba+0C#m35HE)W C_8"P @D;\/ln Œap[x '70ҥ uM1^lLZn;yN p9W3Ӻym9z&ҟ&)M&2g`=hOSe|-|g r[+bI8!s+z XV{dB1E Q-N ;eu7] hk^ԉYg۩(#E M@L.Xo+ ?|"r<q3-Q#nB"mV O?kkZtX6x"GjjVE,6 8Wݖ!=hiƜ ':S  b$LE'81$Be/bX6@%p^2L曄Eh_F(\lwfRm,L@] tvX5*L,Ik( 1ӛ;D,lҶf2Z̊rGpqb#O|xf#68@h }!V bJsU$ѫ B21 `|"a6vtj(XBuz$$ 9[2:%Mxn KP /#+CHI&xG$@!MJ #ÁqD@L) U< #NXl3ajS/aѳW!hEpcܯ+1V K=S % Dm_,- _ĊČ, 79o3_c ;-A4-棚C^BKcA/)]o6E 98Թ$brEfܽkhfj_XW:K;cn4I7 P=uESVm$d砃qR7p?Dv#:pI_ YJ@5yJ^91"':r"nKZ:)Dv"WS?kj-(xFÈ 9͉zXs؜/-'i(-$zR~Zu 3l2Oװ!,찐u㪗`62+;ELx}bf&xQd5T#k~xۤ|0(@j6@ 1=`OµŁL88C`È+`8m0 8dR{v\T{H_YlrV9# `KgFCg0$bKF/[ yu@jmZֆXϾѺJ䤄  dOdHl CfZ&rȚ46.DFJIu["d-?&hoW' ^B L+J+/CyDLσ#YzRQE0/?r 91QoSX[ftKg" ho!o/U` Һ$9MD@e:X/ъ7i@șPO9ׁa JHtMD@wי({q=:`d6IUg%d=<CMX`|bXm?qgUpX"~u@61*+NƍS&ַx~Y+ɖIۦqL?/O7o;=fמG '.G/- 9+Tj,Lmȣ9A֋Yz8/E,嚌`ERyhHT2|.SKxt0NxZsԴ6: rz> h$~yBƮ/͋ SX&'" jT6z#6$fPWrL..pQXie[m#yU&UqD!Zޞ.l_l p J{zPS.M`p{W_ X!H WDՌD`/B9%pi!<ّD[lT5 ʻ߶L#s,*'E:ik.q5o﷾f7qܐUF?nXfw. P/&IDdˍ[u*$T&jdp@KЏ@$ʗxPLi3Is: &X)s_π` I-1bx5@ΔW ,%@̅`l5q'(o%x3N:5 щ3lтzdn@bkVv __z #tdFM5Dž:k@fEvg% hH쨈6gzbQX)p1Y&S7M5B#,EkbEgWϙwxL_CW#ɢ&VrU֚ _ X"HY [MwWsy:3΍( Un*$@֙z;qpxk>&lzǐ)sR&b<;isG1Ϩgɳ`,Vx3nGc>Q2L;xC{}egY}ܡiϗ|N?ӝ1gs90f6s\)TFL.~y]f;W 3rM~>mg}?_3кCY<g{V=ϭ Z<{A'uЂYv 矃h3 =>B7/93L.>H *~&AЀbs ̅@7Ny ur:za*9;y^g(Nj[."5%’Cbk,D IT0wnTELץTeHW$׫GbuY(a000UXU }I5OhfQ$Ӧh5WfH.uN&]Ra%W".!C)s+Xˈڈ$ﭠ&D 2D-K6 2ıI &a%>U*a4UĜWHFء 2G h 1GSsurIg8fon]&G%'%p=֓\=Ѵ!J?!m3,4:݀5qK#]D/ojL1]jrQ*)t hoe %,ȭsW~dv* 8eR$K@:Aۉ"{Z#uKEԕmJNөvoS9\=ߥjj,yCFACiQn69S0.)D-%3Aመ E}`q=dY#E7&fb\drz)ݢZtd%OLGQݻNEkqY4u:tzTS`wبSPZZjFVbϽje*W<0^ɨFB1%n 9x3j! %wVZ/quvK7 _*QE2Bc^ҬŘsĚ5%(Z$`؝5  .oȪ6Rx`HP4稧˼̝dV:WLkmJWC܈j6h䐯Q8KzNGhMFLM,pR&"5<1X]{^\La#zC ̼[BHxF[F`ݔZ ƁQLS&W)c` 2KzVCTd]wVnZ˵NaTˁH)֭18+ǐeTZM 58UDk1F\'Gpx;0֪7$-dRD`[MU܇E 8@QNf֬Ճ2I3xXΌ́X"gzD_thi]Tnx*tPX]޿(qqZZDeBֹr!+>an淆@L-tE&G hMfJ !1b j|WfiӇ]x )GTt}TX"\յT7LX-ROmYST@4a'f%0XR<Õ[/ĬԵ\(l0,z.\^:%\`|]^[y@lU^"ImKb7T{@pc FxI S_ͽV.$C5N{ {fou v`߯3eiDPI׾uHLM0XCnHg :GPpJ\!UTOP_SIQpgտߜS !6 1;)zqdګ9 3Aa! Yb) 'wB2TQ7]r#I S3bSj) b 2~|~ik*WpK/=2-˩k_A^Yݘhn*`5){ U i0 @ckcS.lPr2cIjeN:Q vakhPs rLp ^j@hy)"wu)17PaM0@3&#b<23ﮱSsAt8 "Npl36Tmgtw*Y9R6ђ]Q{/Zk&M,B^lk-;~}ю jv3h EE; ֙kb @/8n!0b~N}pI<"10"Sh\IHaT ClwuR=]T{XiDFmy`4a:vpVM<)rS;V*-5=v 4+vVfv^r[tŔ^ ӴX7 688F]9d#Q}JTZ6yՃn`ޥA-8ht٘3=] fUe:x);Oz/3{T\$C il \g.uGh췶b8C;aۑmb2I[y{x 2. h/op3z߲WC}u% ܯv5F Xrp:K4J(IZqEIq3_F]97'[W s-ݣlB}˞-Æ Gy]c12{iJئ{0+{C qnt[gEQC¶ʬSErZ$ Kzr4<{ϝs멣5.di:o- @j+1*2"&r"Tfo5<\]{mr :`WkigJ4SQrTIR]%Tk5o1Ӯ Fie%=z_kRc%83Fm{zgjt22t=QgǗ~*`-̙7VZ\:8x*y@a];['eIOSH|h8z[z+5ڌb_H}#  --G 8$tob!BpMvuI?em+@+ pp'9GRVP ']hNñqlhf0{bYs=)og^ \GiNjeK'oп }nUM`󥮙ǜ5\:64h|AogF':IRw6ᐢ<+G+#fY+8QW⭖I00URRRTADATADATADATADATADATA.\[5qEǴoAZtޗlOef@qk7Kp*4L;%N6e QqS8mAfd5A&-#T0в; R (O|㰦ߥ4Q"adu2F eov\}K>P@w x ġq tOXGv׻YgdKBVh b܀<Rw7Q#۹ܐ~i=Hm=Qޫ882.9xG8pq+Amb,/ŜܽdZ0U62^?Ttm6v/I,nހG!C[X5jЁ^B8,b@Ql9I},\I68~AGA0h*aMGAFc#qUsb&sy W6vpiBN.7-|LK]!\Bo$Ooyփsǭ=>A5M쀧%жPӀAGri]᠁Jsωr'EP ~X \S|ƢMz9>׆;CB0q9 9LCUo%DPl7v: V"s}!v/#RD+4c3rǽ\>/ONvzr^P=)6n  Iöp2do_xV٣;i]( ~zz`Y ‰D sU^k}JgD\?O4nߥJ%d/v7:II3]'F`qQu87\wq q_%+ |S¢.7#(>|(#\>~at}@sݩ7+~Nlר&x..iuHcc7#kgr8ؾ'cYY2֤HC+uRM+wxjf i2@{f ^q!R0R:F}nTeP$#@w&Z.cٽiIS:瑜uU haT%fb@414M\Sop gRxX ;M~ӵ*Uxt-ESu>(uUB#F݉e?xWpqͨd\Ȃ8,& _XvZ==?uܡ>BHT-[*{jߙ7.t}},xtjrfYf9]KY#Tu,0LZw ްA(U?3x=R 蒂)@+/Rg_4cL۠E^fÿkզx܊JfØ?i&v|rp|q/Gx0y4bۇ-;yDD,g(|q8w`mڜZPS,*@xNHk)sp}z^csv</LO9!ZP& (vz^ט92L`'Nvn[|gnv؂ž5'bW'{4NV`κPvN4?t5>54ͭ RS+>,e'3dvκv8giY嬃B.9 [`:##AL?_o0W|=ϳJMt *qY~M{4T6 ]hFdY Ɋ\F6 Ly'ʏ8N#&$}(5)r2ѕ`d bpEx aEqs1x*mFH\%*x$r*/9](jwAe5P=j$pLKQַzPS LIߋ/+ oB.)n߭WI SԘUFD.0" ^y {/S8.<]=`L ݺÁtz0*8©l `@TEó6S&R MKR U?<c^?w2HYwm<> @rE*;>2B69"VsU47Sx ]RhPh1>Q rwݖM0/ηi$ۿ)>);u*s.I=Fy eǤ%/)Ƀx;6/D iwx00UXU } c&BJjx@] &ܳT1:&t3 >B+0Ш԰BoS_r|1~OI9p HE9@SLz5磯G%!K^Uߧ2?-\ā߃Qk)w~s@ 4~M(Dƞc;{* W ;|lE ܾFKrm"G= դ{ym1:NaJQ͌uSDm>&i-i(|`:d8x&\aˤ' '2Ѯ5 E묶iPq7_j)1<JI'AkDc)hWnK5_8_?c(5^KmY$ aGlyXqh@d[{#(NcoJ$A/"F -Ʀh; nʨIW3n;=&%Fj]??MvfثyI9@ooFqj8JpY:͵9So,{oҁ{4r&V3pkQH(5Lӕ"SF0[>cdٯxk]0wAjZQT~TgǕÆ%t~A]oPM,N-`;8a 8Iw% ޓl7@.'X^1CcR/ s3 )hZT:%y{tA.uw4(e |V >E?@FE4?<8MM߫zŗI9}p+ڧUu *ʟ\kރ096HMc 0?ࢪ"XVǶIǬa '_t(Ul奞 rvmnmr؊c2C!O#D" \_,UiozR)/-mMj?ӥj2_~^`*wz5%AW#w@2V,jOzG(p2:w4q#񸎶b{kUX$?er_7 B̾v 8Ѿ(ZH蛪7>B4W{!oN>ABK^XrUZ3ϧmʣ{WԆcsȾ6-z.ؼ{~z!WW&drD qjB%eĨ+FG]Z+z j{&iGq_ߵ$^OI>\1Gzfmz|x{=kp`n҄]doܗ& D{4Eȑr* 9Oe;gd EXecIAQ7h\gj,kp?C ,?]ЀnE?{SfL`‡ⱁ|+46jS)d,P7Or2 k w=ݴ:Z?I3he*mymQk0 Nq#Qm[&fUFYkX_՞QB3u~<O6Hbgz7&hah~D{+A# H $J5S-52P݊0*V+)[ӆzs#@nwC?)1"6-~l@ZS:xRV?GOc88}\{ +~* `?vfGFj$a+.$ +R8tɄhwIͬsPTJy>..r]7Tk(3&4ICx3=~\p+?UE_Asqq\_qå~2EZT_1+sRXMmņEo_UWm-z07cp~׿FLN`2V͙nh8SZeb= 1@!̐pQ0|+{Fzz*wl)  Cxx6H#Ć~icN.'-i FסΆvG+EZ,yp/ ̚SWϳhC Csu$JF'\=ȅs\F a+=3E6'uj P ?Tʣf8y`F&mTB0!/);$1jOɑV`TVFE%S,K/ i8N#f?OrIxn/' [&X9+wpSMf `p^lY"_4T[dp+|sjlR%&"Jw5S~X\7o0`$ nTq6]8zx_x(Ik=XωnFWF gM&Sj:ʳzf8$r]phd< [I'Aх̼JSiY+^y;D~v\N~08;;b0R?Agc C71K|28dR5W(@[}fr#PoZS:@#g':$\W&-CS~fr=-%Ws@xP:8bag_6k"6!_d8T-!is4R#4k)t6 \*W~ ZAd~\:0/GIbǀ9^]n^{d1~fY+[Fk\a\^*|uw1Ow)Ep?y;dz-,Qb)*\xS@J:"*L|<+)qS/B4OD+Uw1Ei_i=nTV<2XTehyqF `A1P .p^d<z7?5UbHr,BQaL-W(`-.7;UXcqJA3eC7\byAd;lRC2΂](86!1l2sT8X‚4<cu~\)Q]9rAC23_brÂ)qC}w&Wu.d"4|hL@Fh뀛xP܀D\ހ( H$qg/Q]-rE~`oJ%b1"*Ng5g]D!whkM$~9\,l`@/҃/1sVkzcGHsL"oN9)I~@U0G];Jk&QM~L;tKA0;F?ۃ<_F~bgCÂg!Jd;gw1?O[Q*U-Q$Pz'y8- PH;ujQl:`/uj7:x.}3!p.e|ރ4-9SQhsppv/W{M8f́sea~s$`c9m1SPFzjp#>NO~lpx*;(`^&}9BUPpPH  P@Y0f[Yi{y[=~'tN}{"y[_p{SY{}<n59!`*Ctbti#prp|?*:{Re0O{uRVg:7q2p|-߅;Vp@$,i6$4BA;}z" 2:'8D5x`<; )Z;aak7"eqZECy q *?eA2&)AEx;CbV2.8L SuW:TE*Nrr2#g2X|3wrnцQ.3m^nlw{!-n;ucUZuJqn4Æ\<)AԆErn:܆;ކ?F42x Spq)z_Aul z0rWyDx0R5 Rx9 .rІ0j.2G?/Y*G)++ O;:7Q\``uumnw; 2ȇkṁDx?s25!060]҇HD?bVx+7߇/8z:y?@}}-Dv&߇G,:yxUDa..._88$cBl::.Yu]DsWĆ6b5DXkwqup~tN~|/<+4:Gx>tzll xa/PADl;:`F B_HByc8Y+Pr?rIyC9Hx1Z6471)gA/ZYUgCUMx^,ur6.w&tQivSg)':wln-.QJnNpER8b;dF ja30A\A1 eoa]sAdYa]gZTh$]LW,Z]97!L]09F2ɇgYoOzˀ!{?WN;]BJy/Հ]xh!-1ˆUM.40Qc.Lj2un`/4G !]/5A7g;F h,?5KFE1Hۈ~3jPQ19]2c~xXZ;{X\V0k ],\;:]1MFʂ<`$~/8I j+o/ʂ4 1ӈχfa4jm00AEdw1/td88]s5Ank`:yx.Pq<ʆʂA !p#!e]A]#;4?i6/2/$$hP-/yO.Qs\Wmkd5fp(5Ja^v0%_V)(_FL-pmOs_vvjx1O~jb}2Sh3htZ%w)zndhh뀏[vBu=SЇ_vsOOqg߀unsq*r^sMgjs]NDb)_<(d3jF4DYbRX?4*"O[2C(!ak&ˆ|1!y^(Ri8=FN;xy32fG.GӉc}tRQ7oVp%MN5xFNO=<8*fjā&=Yn(usr,*E#V@#kU_M9Q~E*XeL00UXU }t VsCLg9by.|)ÍtO=#=X84?t!s)u 9g_Vr)])}T=fjh,A"t4n|@<t&7-"t$nHQQ3BJ|,rN"FL*xvy7, Rt4<*XBE<;-}!l$V"Ud"E|a EU^ur;87. :XO0EڅN5)8pq&9:C%}劍.,H oP@t< sM!-"W xq=wAL|-K@`!lR\}*cxlu=p(Ox*BJae2OZq;Zcq/^c1:FɊ:c0NUccqMOUbp#sS(OW5e8&5O$1"b>uO:rDS| ׁRShq_MO6/?*Q-C)c.e)I,9ObPTVc`|Nptv./Z7z)~q%}6 S-)-jn0݁ lM8#P)$8;O"4g+365z{a5.X0ٍ܍cߍWF4wV|Xu@~YWET[--r6;!9u`2ƍdnʍAE}?gDEd1Deq?؍@rNHPn(4SȍFˍ,.\AV 4H[- ;>5lpWa6p:ɍs>Wim'w8)2ziMk6LyMO!@m(8:BV̍[z=J@,;BpGH_F1 !i`OX!-BdwqBWU|ADVur]{0`j(:č]d8ZTZvtWx*@Ǝ 5}#҅ef!ώݍE&3ӎqV]؎zHڎ8)5=;ZDU[L̎]c/xYg!,S:j.r6BO{YO7K/v#/y;#w~Ձ+^zlc3p|~V_+~!GPz/9B!#N7h*(F_INC3IN+@,An_1__Y~k7s5_)_cI0_&2_e5_t}i`{:9{?_#5BD_66_JJ_!*(eP_`_bc_6a(EI{ciS_qd_`2>wL) ]b8pY)x_G2hi}[+)X)c.)>Q_bRhSf3J%@u9V_1B9(=-2^TNyJ2=(4r3Dh7`A;7.#B5X_6}3<-73"7M79@Wid?y[p6 7cpg?}`iRCk7 Yjfad5e;\c7_Uo9~`bU2a' aS75_I)afaN ae#aXp/-|l:k^T}n0A"1X0$NIbIb,k+$+=?*I/=bAc-/ b!m25I(_JahNa--܅abOaTab16Y7rK:*dnSV-*mymE- Ruj:4VR0j"kf.23a3jXL{Erai6aH}&{0qe4bbmbUTdivS6D=bb](@5] Q7b6bW_6b3#bFvQbV}vVR[F bF +$7b~,=bEEI\R)X8k@-"Cb{}|GEGb]be!ab]bbh-zbcbI8K8Fjb8emrOcrb68tb`8z} t!-^{bEbgXid;F !KKur+$/=DM/Upk57xA.cdaG b6y4qpys3b*F$b6AC8Y8B7"0Ekmb GxAg!-<IvMvD;Fd5b-n~t' v/АH8ҐQF+BԐR8SRuA-/V+,$hl_`A0vt!G5P󐱐DbqbO bhjA!-ED^6p|$=W1vvDD1VIzx{vEn-*gAF.鐐pP9Ke*)bXgE_6~V5SQF;Y.v'4:]4b|m Gys? -qI9bxSDCb5_gYlbabc,htsA(8~Ks_UPQ' !P' =X-R:/ǁɁ!~-I<`C߈R[`abw|T'3xbT8C:u} |Kb>.z,cPfoBl c*4 aLcrx bcPc#cNcȃ߇Ջ^h/xwv=0B-or!"tX_K?00URRRTADATADATADATADATADATA}r-i?8ys#cyp;|8=hh[3}h-.?ȅ;z1)I")@X(e,~bwK'#y6'[}pYS6eWwj-TVDDZthv@+])c Aqj]m60 Q[xZ/My?]1]#ϊ!-a֊ 5Z"y<[x~<| 9~=d<.P4SC~> ~="t$ŅՏzL,zAQzr0(8"!amVzd33AsXaTs5bfmHZbĒqbGb=C)yU4oG|A~C[a[ՒQC#-/ђƉtN8^j;_KFY0H(@EK9xAHDuL#*B?6'O*Or?1Ap0M6?1&6J1a3a9Ib7a9aN+-a;7-FY(c-/k30tSuOM*..k{(a1^"[YM*S#$;3*5d"+1ݒI`15+_ 2^~\kE֒jD ME8.DOh1DS%ftJ fuvf`7va*T1fz$H+eiDizY+$~d5ڑ78yaɐ=i591/5n7 f.Re4S+FwCEᅕp~`LXEJM1F琔+I[bP e~`-xJ3Y1q F4<N^JY_a86W[bp}9b~9Xf4 -5by$n6O*-8ғ6*aM8猰Wa+$5'FqA:!n_ ~_:_QGb+^*-5'*SMPVo/ 8"{!N%~(<T `FAb<_#E={z3i)N7cwMiR, Py[| 3-"B_ ~ORzځ~C(L,@ _F)BHGreYe?]{[>?9@A4G+hGkY1.t?|6b]5RLRAnKLwRM+tS1~j*F2+p#N%*^6I*FiG{2*o _|{i+J%RoeG+-8v6avLHpp$LG@'3M92txw0F_;Ocb_XiNdpjiy[9`fnit\ޏ[mُj?3t}C6e8[Lے12~~'(i([RaQ@8?`wS@Ɣ@`H)T,-da*b,D/{PuT/LvtWT?a-/~5':2WÕh41K<Mf A?C)*fq 5=k/w1$ONVE 8{?QNK  ; 53#W46߅fWKp{0M;M/=Hk.'=g,Ց7R-H3;vDgtq)=6\SD}q0=I>kBO)<;+5;y+!)ED; .TGE!qto#unS0|;Tp9npE@qseuU= `*4Mfz@ZqEsSu:镍sx0J%6MG-Hir\uzu.7SlQOuE9,vؐVu rFu~5!{ kw5rt tH0u9_2oE$,u"Жru*Su;Le:;–{*Ŗ{Ls]o= p)u'}%P {;klgH5-H|ފao*pt関Ts#K#!n EaZg,,/k=/XPWroibO]`dC~,D* S+'\kMh :t7K2-})7w*S^Z2.Fk~,7 J{DgmTgD;-7NA0#\H3J{{|IA;{| (=~ N_hqfP=YUFFd=O;|h-4o:p,rg/,ٖ# 56-).ЊSns .<3/ Gq@,3T$16ݖ+ޗ+;-Ԗc s/?'x*7fk*t-X)A[F-DE0t3#},-]3_gmq-6s1!8l.tZ=-JBu\aw^kE4,8Ɉ.B!3YIp$U'4ZF3+.Rߗb-KVqrXT(-BxUVn~xw:w7GU[4ʃĆp$o-mQrr'lS\0 I W.cz: Ud{Z嗉 Ji*ji2zha.]U//4AXZ1%6*Lw/=@-q?Ėo2nw2K4VWX5^~ !d\}#bxv5O @,-97j^nJ!p^Oz(t6ARH Z2Ei/,1!Y+M:<1+.38WIQ|rTYI ^1-PU-.sgoyz^^R]3q8ZZq/#X_U-DUYm~|AƎ@%U+$ZXX>rĆ!o-5Q3m5x_-0MAEkWr֘Vc;'jiv6vv03qTSkX}/j/%Q ט:X-W Vng}15??@qԖZtt= Pr|r2XpARw 9uËfB5e+wJNh=|k3*E4c-H_&00UXU }+V3d$5Y2Y"2WێlƍYnÂ88.|8kb@㎖uE0Jq,-z,uuB-6RK-QwVl>) M8YAjv>CUnA&o@&X7I]wr?-DPz,N$O`O""`'+lO}+"ec[aF0-g)OS؃+$ .(jM-zq4*SbdM-,\+$Q1XLL(k8/h4ɒ0Co\s%'FG8 Fc?ȃCzC0G}<)?iD:X{m0|؋ c^>2ȃx|uzW`1&J7̟`Pb?,ab6]o @mCb>A䟌柢bMYs"tן+_Ƒ]c$Ooaba 0fT)}Y}qI A۞b0v4:@RzP'5_8{M[ ͒ڟ[~ ic\V0zcm>P%kc6ą>xv/,zx;$ʒ~_EG43hTFI_`)PbIY77#3ESU7@m:!Fcx͌$\ C<g]w./ibϒhg*Dac:ʞEuzzNF u03v.*v*$ITU9f|39$r+$$f7G>*_co9V;fz7le)\KeM|p-3K#:<<ؓ_V9/9;7->Ud39(d}C۠PKA_MIjmz$n#E_@1'3G,Z N1~Bohs:!u{|1@X0wS:'-Z ++|8/|nIv/KŊCh ` HZkd1/Dhjlb]&YI% 5,#lR9w`Gq)@dM/% GYz+mM8)._6U1LQYL*Hԏ%YgGnUS# oR$|~P)f5N` mVDT-mJsIkvC +z$j4PEG ^PJGEu5m{1.c#w@wgo''u6/? ,}6 UP-1<04'c`h9A`S“vb+J7jR$G5rW-M2I6=UNFF95%ڡw[Mx1?4Lb*fI6q*J/A]AݞvJ3K8c-R8>INq SBC5bIJ|tC'd.5_*y04:.\W71F;xh4POQBUt/3) H ~(Š-=V/[)7P48~lfm_zT7ŅD[ #0+ .ȃhRAVb(á-hubː`6cD@9Iz9D+$L_sN b7q"^MK8Q5nJ[֣D`{Nx8D/Lx@]$21CQ;= wp$:@2R4MNOk#aF߉d*Q5u.$`!)v;Q5pN0r-6ٔH6Q5H'Z?M(6=:i㠪miMtRA.7¢h`*cai&1:7DG25#S6IĞLK$N_ SVt7bϞ-"ZԞMF[9۞ZQ&||bjzd3pdZohxUki2awiLdgJjPl}ShIbhmáGwhY1ɓb a0-Sᡆ*4=ܠ*a{%ɤDˤU_>ͤ60-ӠI6J')O0c9a-g;7^,# 9H>ġN*("9v8/%ͤ28/%ۤBy07% <"⣤` +AsR5Hi6sD>|5؆4%mI/0c%, f-6d07&OuV*8/"t ]$AZ:6jU^+mV0C7kǥx\]$0[- Eť.ܤELߠ)Vg}v]Nyz9I}vԠ++)3 EVeh0fϥ9C8}_ŢȢfe.@Zx$Hzդ-fV;OYbxK2Ik0xjO:A25fK.dtYow=}3!Z.;":} 03C_??`A.N z"Jbjۢ< whJbTSdXy?vycA-K=Hc $e Z5b}<8gyc6dL}v&[M'=-kJmI5H-ji{oD32i52=-؝Uuw%xu?P'.j.#4Q`Ɵ9wfPd,sv&0P*8DHXZ0kHi@ޥ=-,dRyw(*/dd,j.pD-6s0ej_!-Y{q*{PT _(*DBwH52`*A#㣏^;/R24؇-d8QC#흩8+z?:LG1^_Q!kzcwrx@[FCG4@$h/b$d dOQjj%go@n!,+r.[[8*"/,\NSp2{r_]|؆ujL--:JX):,l’At;P.OQڟ֔VG$Y1<(Yc]yv-)uQۤsz*P9H#*.sҁG):=ف@*?ٟZc􍥛v\%/Ǣ4f{08Iyni5KDJwtǞO\i͞}VjM W?aơct%<y @IrZߞw̝"bR9;=B^Ψb &"<zLp@LmM:Qiס6 hI󏄢-t)U/"scoP07;<8,@o,)A E0+1 J?7NhAQLʏT=@QHq"f4R:)mysG1Ϙ{<-?)י|bI}4]]/WzlY7?RG3k,&?n|*-0)Y! 7sKw2=cV7̩4l^m<ɩϩ4Ω=Sөx 9֩N;٩ݩ.ܩosqDn>Ab+$?07$5,3S7cɘa/Zޟ7ꍰ770Xi+l<-is ,f<9|L00UXU }sMl? ~?:v^{K_ީ PxcEΣ_ 061ԓ.~).ER6AW1,_Vd !EݣeOKjK"Ld7ˈ1J)f`JBdE!8䈯63Tˡ@\9++W7-5Pt.ݐaaf.'[Yq.'0@F ihX2a1M̨88o".|;EU$ZϪ %JD9cof2Y1A^F2jI6|165C-xϨE|⥷#B˪C0M8ey.7Lc]`UmZx9 9v[!'F E:)B,21FR2%!o0)1 $&Vh=B_d0-5-0ΩE2AF`E+KhDbnk3px!o5b5V[2IxC:p^00+7iE+VS=9gpES:!o{xS^\4D2-i*ErܜQicBmJx9pE4]bES-.cI %97PE2]vi!oE$*.QHa!oS ./1g,WV==C"ڨJUV3!oߜ zxߜ]:/B*y!oG$KdhRꐍvho}-)W2K:!_0Fʫ1S:oo|-ksxA׫&<47s^2B 1-;Z꫒)G=6GD6GTY|-61 v&;Z:HūhKWǫ?/AV0q2 5;ZtNī=ƫuBpmq:+$OQ-@!)82.J=q70M2I5;8֪RE72E4s{88$H&*쫢9֔1@6)L>5-3b1LdExQ.c'jJȒ~E*SX?EB ALkwE$OsLLnw@8[>Esxqq~kkm)E4ĩ53E4JP۩ͩ /E4K E4^=9VFs&qPkWS[l:¬D{8mc54DDq iȘ֬r8`rQA$֬aħ?u)\,XІ`PBys٬_sDsB{Bx903,=uBIbekh`; h;pO0s9wsmₑ--5lEZA 03#@&M{Uuqq^;kq48w2{Kˬ驧PȬq¬ک7@W4E8I̬BìZŬ nZJ<>AY[f&qxQEa.լTجO0h?EݬTG)GJ:[꬗ALE V84.QV8ixQ4.Mh,X+7$O5e4!og-?Fۇdجh/e s22^Hz!),*C:GӊPUG9o;ƎL }׫)Gܟ98J@+$$5 G_ ./?K;,ɩenf^ީ5d)x9bq6O8a`L)ݝz5@_fԣh>zVpr5Ha_`"*?]6`49FId9I 69k@y=!p*q<,i5*aac}ѡZԡVު۪\ŔѪ+7F}ת(da|JեGݪDB0dU$T7IўB/VOѪͪf-QL]*c.77 ` [X~$F\xN5e!Zx#%&(0Cr0-31.pB7*ß S1>e4:BDFŸs_IGK, MGO kba!.TW.C0[%]g>adX/bhj80,gp7Suxlzs} ?Lo==-k#EL⮠T!-cmN\NLp_FЫ))PQëǫܫ̫Ǯϫӫ'3TV0?ݮګh+߫?;諢9ǭDYy62.A9;i $37+1Ym;E^Car%7)+b8LrWT4Z68]7=A`D$Fe4HJ7s8R^5UBWUiYĬAf{t}߬?:;' ;rެ,çWA䇼,Bo>aS+7pzA0>ayْc:%|03"xcܯ(5]:;2.YE4$XDsJmV?NZ.ceOϬE4 b#LhƬ3m`{r[*FN Ѭn]nV0mͯجrܬ+w/y s/}2,.xQ iHBDZ{B?Fޯwدqܯ߯]^:yMƯuQa;5J/|*0gGW:D4|V(ǯج\R"xuJrԯvsF|ݯcxZ)x<,鯏02VZJ849R,Gi#kD`{8Hάgj]_=hGX"TѬJʰHb5PY G2CMڪU9ܪR [II+䪞+\4Lꪀ^5i,3񪕱B@|g]+Jko6qs]y[_x5[ ~}{uC.4&ڱfS/Y"ȋG&V0+0.5KC!)ZAGSo}X/N^QSm7)Jzs&+OĮcsTg͇.00URRRTADATADATADATADATADATAˮlή3ЮrӮv֮ nau{ۮ I'J|8&͇Vu[<쮱;-)d$_GpE8a. @*u%7SPC H4Y;xB(+ȫx9ݫ=SҫxUBի\׫/ޮ۫,і.⫍X2e髅8CveAGCV` F98LCv!1eR$UWY[+J!bN3&׫h G\k0moqlKu?A$CVEG;[|!-U4ZCN]ò_e4S6 RE?ׯ_FwYt+xc𲒟EJ㰹s];' 9,{䰸>w,FD4B˯)>TA&٬ӯuEb[#Tjj.쯠Dﯘl8w2iȰ ԰Ь 3mF|հ°Uu ѰW> ."ɬK Ӱm?i&g,ݰɯ;Frp;.z鰵;U@ͫD' JGMSd hDTz-;TFaﲴ̰Fz} $X@q ~4.çBD4T|VaQ֯ ٯas}~Y*x/L-|-47)?;0:g6* *óEEگH&-Fճ)% D۳l4w<~Eೲhy!1~EJI Qs%lEYG:!.'R~K&#+zrm,R 635s8:K ,b>@?EB$6&CYٰ~EY~E4\״*BY`0j.r&x J[/C~Vh5$2Y2q:4ԦׇEJ0Do)_Or0N&1,7ϴ4FPÐUOY@3۔auL׉ȴ26~EY=,ZY1K,N&x=F6ךŜ$6ʮh$~a B望.7dpAQzȴ}7L4d3}L{0I1JbPN0-s*ӵ,յ 1Tvz70lrh2^` nh/S c8$p֭X f}$ձ~SS!h6 P:d& x BԦƟ4Befcs"4ʴ۴ :i1~ѱ99},Fjj%ImE&(e1 HpR 5 7M4F#wf[$vہ՟ȅ7Gpos۟wc{e(8ڟk孭N|ßJDǓA#Cx1|͡+uXƪԡr~èתפ7t˨B rSor<ŞYȞoxިTEM\樁oE S%j1D/GvmKSKRN9&Bkwcy^ `'\Jf9j-ne8ѐu$f<1Xy..|pEᜦ]Jq*wXk'pM378 !)iœs뢢uc-pN @?G\,Ŵis=qHcc5bl~/=3B\I`T`v/B~Ga⥎ hu,Z-+mL-FVGH#J}<'!o@*ٰ{CهH<ױE&͐bශfDɷ: W{C\EOn^˅V+`ڷSyYFF a_5_H5>A"{DIL;7a J/R,)ʂi5bgZjϵ|o0Nd3~Pz^S @߄|)xrF T-Xr9BScsPy;U6E&b=-~&%Pb@ GL&dK&ﮧP5-]Id&W8iY.44L&-;㴏D$hP OEsBK&$Pg,dAhj,XgյyGNCGPkη~Oa|rg,3dImcީB?=8@7`qBD-a|;asU$++,}bq)r1@LbRAB_++"Mh6vz뮧6EC)`=_*97̪ |+!@C۠1#d/Aw3w;NX<``Z_ص;7 KoN-_R_Y7E?ݟ2mPk/Ym"I_/Vޕ/y)?Ц{s+i{/;+a| aF7$3&B׶˵z2Q|v&#wh$smo󸵣GȅP, ZfTj Gic & !h8(hElVM&.z6L.ں,6O9{`k1(Ӻ`I-6*46@"hL)NpqjɺM-6Q=-^=HlhŪhe|y`ާ䨖IdߪO֣DG1si@{0C1ު$ni~1yx11}&^k#U [[ [׉`x ),` Eܶ-ުbyZ0@P-'W565ab9<4Y1{-cԨoP#)qBC1c#teRߡt>3T\H5-\(X5G`GBTP`*:VY#5I#%d U4S]LC8cOOϨ]QD5f$8:#%J`h~tX|s@j:moO6&yȪ_BILiTCg ,@;@67|[1պ.G*I北CqD]ĺ:!ƺpU6qκ'a#׺Nٺξܺ޺bw3LmhHIs+]N2y<}UN*e5uMq ho\}:@U :5_Ҫ ^NLA!1FLH(J=J<NdHٞi6>6.;`ʻҶ;CfCۻӧ6gB)07םƿ,ûNŻ+-xH̻Ǻ,ϻ6ӻG)8ܿػ׻}D 㻺ʔ#F4ӿ? I-vhh]1-ʻ#DH-/ԡTa᥊"]$T⼯BQbV9`vm/!H?epn VSr»&adMU8 )xs~u|sq Va $,JaSe;/)YGmi022rk7Hm=s#/VkТDGF)>Do-h*FjRbڴtdX/9O!NY]Z`U6df4f5PCܝ8,dGb,wv|DjVm]tswp B 1HC ;֔D4?D{$~,oևІW׉)J]K4ٰE,29[ѽH!obFUoCH;2{8C0hlJbp,Q7O)l+,DRfjC,hyK7D`󿥥֔7pſvWp:~rX+dȯk2.XXZ-- {)8)Q5a.@ H;H2mj'W.3ٰ3|!- ' cw2,ɼ0M=P\μ^`ƷԼ⦉QvݼV9L8/1n&(H[]$7QObsWI bDR|oNAx*߼pMob7KCrBx=-~kI5C3=- O8vv=@Pg|QaʵNAпD$4UiI,K`4 zK)NyUX)QY^^F;R"cV0X|;;00URRRTADATADATADATADATADATA8Sy]Z Fp:w0-tKDnbzh꿍;]IVQG7P*os/2Ōƽ% U8·Tfi`No\v4ldTý=QnT[~ttko/YGFJb}%z;O ps@PN,@= Sʷ`dA;$Xtu;$Loyr'ˣžǾ0*mMtwŻϾѾyCӾվm %پ飙n޾)>㾣G龜,9$,Sǔ6-9B*:brLẓ́6 3 S,CX"V9I,ips_Ò*|qξ',z*,.14?M9Cd?Z x*FkIKM!CREz!X~%\(̨*`fѠW5cM: 'BYz,eg}iCXA6"1vz~bʱ ܻȿIfw-]mܿ;CDԿ~˿dܿѿ%࿣4x9ʻֻ^s\忕x9Fmn7ѻ򿍺ջʔ:x 1k**ʻS:~` VYc-!\ʟ~jNlwP.p+\Le3*Ǽx9 x{V}ٻϽ*OSW2EZ_^acov4"=8l ru;;yҮ~M},/C22‡5r]ٻĒt>õ@iƟ7W[ ާ4d&,3g,TsWúZЩpxg,aļeBiBlSnRqb` ٰ ҽ.;.!y,4-;?1iоP@*ȡz׾—۾lm/1x9羖Im=€ǔ0hֺ7rtCMPúͻ ̺(ϺzV„o9`^Ñlt}˺K ފ #)Ôr3b+5+"%')B-,D.HԿN\mP7ǨT#`4`ÔT,D֔٧áIå>7Ä6MxG}hhĹđSTvDx:0 .W4Iy?mdN7; 1 ndP-~o'Q;è𴕼xsmw-chA7xwMc uvq{98ͻ ĞW(SƽQ,a/ĄĬĝw8 Q𤭟nܡ-emx*\dT_CBF} ]G Į*#0@. U;o0ɶeP25+)|t3.509Lv84:< FiTX B#H06IM*=PUbWV rÝȏ=HoeycCfۤåltk#5nq){_z&)K I-Oz|{>UuNA/)Q%-I~tO*Vƭllh|^jE ¥i{+ɥ˥ͥ [ѥj,ԥmMjofV)/\ ΥХ3|e}G]4 6óVŕԟƧGwgǣǢP}3$,,I"-$,pY00VXU }&!ZǣZ]}_bH^*f q.d&ڧ0]ݧFth_P⧐)}}jiEF|]g뺂ŶuԶ o8ɺhu\OѐVkJOibRDy浛~̠)@6*5g}YV1R0̺%5ꏍ̐f-laLZ)@_}/7ec2`(qcE KI[Ažxcb+@SܡD𑪓l7]0Zb͆4ߠFI|z͓Yʣ+JRCű~͚&qbk+`~3ܡk%,ͽś4$KQ8/" =Uu+q1hܡo07%6w>*5Wpڼ%Jʹ<;VDƛ%~4I=ĝ1kT\ƼC¼4"H "vݓLGLf,ɀ\rܡü7\7W Gb8n@r7ʺ-@d5ߠL-3dCj73tDV-W.I5wB|~xf~Ͱ*A2 0 z M7xNmf89HUV$/-IL"mO.}.\œR31EXk||\22L1|lɒ#cwlN(F)1uEڋD φHS CGS-A&+7kb6?4[P8VC)Sg4cʞX Ϟyxs=Gn' 㢼#s8@xgZs<9;F71ʱ$ g~v4b,U@SBX03˳_pbCVoPH2,huamB`a`mp*7Ia5I ,2Рm;Вm!KnpO\XnMN|Q一ln@7wAD ~) 8/VkLu Xc;R[Kj.ٰdp:HSLH>nÝM8mZB1 6b=a?/B' QZQF O|@P-H\#pm$nх` 1 ?U"\1d") 9;k#"00VRRRTADATADATADATADATADATAKk#]SHH*d"% \ "C&$/'r)@i0;"=+) 7[<.CҵEĊ'fPjfM O?R:W<1(G])U##`b4DoMe`flҺYe`I 7I-҄fvm2dpҩ[`N}Tx҃/}FWP8҈K5:~[<+7ғnҕgM;JuҜҝҁ>G\u?9*5$1MlҭQq[kFH!z:41*\PҞ3Ҡһ~v#hrҧ:-:zp5IU)vPK5Z%#v#2sz`v$ZfN҂3q+b95 !?Ҩҋfu$Җ=V҆\KQ#ըѤҗ"F҃ҎAaҧҸ҃ `x8PL P\"(Ӭ,2T-H/hJSc\$9"l6e&K*!T2O32 )*ӳEGjD]j9V*&OZa qe.2T@UnyҮ<^M.=AGƪzhbk|bӱ҂VNB@*b5?#I,ѐӿ ""I7Ұ{l/ҐӋ1ӤӺJy~lz1?0NUf/5o]-0 ܅7~*1Iҫ;aJ)n2Ӿ`0ҾT!Iac,f4G6Ӧf]ғ2O'ӄ#as+ӈhӹW(ҁ@?ӽF!Ӯ`sӧ{̣ӰҏI.Ҍ7:U1ѐÛ 7LCILH)ѐҎҬӍ)L&9b|AL%M(ԑ!4K.(6d9FMҐӢMx\O87[-0G ѐӏ[ 5Jp-HK*C,HԣANx?=Bi9ibԝ:p~J}fBPԑ~QkRӃQҁ+A'ԏn-7#ӈ IȏɈAΛbn\y\GjH5ԠKaY eKB7SdpUJB.eMѸԯ7*cL]NbNuEJYnEJӹԄIԴԮN57.*ԕ':8712BuEJB%7A|b)7 ԐEk Pӊէ+lpt!Ԗ!(^8pW.:8h/#4KxLk*\Ӝ0EJ/BDպo9 I5PvwuEtjmHAw 5Ԇ\ q^_aTՋ"SPYlջԹ: p. ]`Zc!YnRϲP])~!6WժQ)l8̍T+7 ^8s&Ҍ՜ՍkKw3ǻyԤo)I kA;'V#*ҪӚf,K ՆժՓՓ*W G*6eu3UYV(Oʯ{VC 8#%բ\ ^49aDds ^ST/hN,յչ ^q7H,: ֈ1ՈҫӂՑե2 ԲwivՌ"%u֫6 K0'֥ N$Ju+CN:I &՝9O$8&M3MIՍ#Ҍ#'ӓ%oӊHhe$LֆՕH6>Jnrh9!--p֘sg Q#N"m|։Aײ51[<c&nד׿1@qf5`׋13>ضn ,6B@ҫ;3<ػvG`zTVOnZؐ\#; 0~&V ׋Iי@ ןd& @Of`2ז /R2S,خ>.&ZX8UCBH8҃-MgYJ;#ԜDoWWf~ITح=د]_VV؟رض+CӞ iǷT>nLK6Grt wDfj{،؂ׅC؟6؀Ϡ3R5!$،2>ؕף4`J&׾Ѽ؈آ|d]hؤӧmM0\ DN~cg3"iӇ2 ) Y vY+v"*5Rtq%Wv PfKf%R"R:*ٻkRIT) ד2uAwFy+NK5EFD9Rه$T 1ANA٠1Z1cZѪ*8eٮקӔ BrƗoBԟDfNwK;YN U/:{ٯ1W5I܅l~:R#F/Կ .ԃٰٔ2ϰ[gur}Pә$*:bei׮Ds+/ٷ#vWIgԈ]32 x"W9ٺ$&5l}ZP45:N,;7#2'ԩx,N0N?ןx]9ԻE#$>ԉb?)3ԟD;DجQٗKP]o̡XZԕW'xdӜ 00VXU }5)fԉh#An~kԬmr&T+ux)zR~Ԕ~x igԬ >ڍ}3lٲ׬?dԎר$Lڨ!OA#CڄŪ٪Ԍtٴ_![^(6'`M L{hٟ9LǎݕT!}$Y,7M Pf4+ Ȭrd>h 8iڇ  #t7ӇفSӔ~٥Ә+،ڔ+?ԽOhHCg~c^.8V_A!9kڻDٞ"/1V 8%f| ڈ4לӱӠӢ M ezvˈAg( Sț{p10A;ږ٩D:'jԿw٬zb5ͬگBl ڜ]ڊ96 ed P77Už$ٛ۾y*جuMwٸJC jڍB&`C vHch=Nٺ,#;EoqOi5uڳwڶdb{ڕNi7*i%ҁ%YY5 F8ɁȬڐ%R5u?%6BtRG1ۜԺ, W7Zڇ&ԞlԒpTP+Btԡ41xyԌ5ڲ9 K;n ۖӿڎ$Lڢ""ڥԊVۋE=r,ڿp_dڙ׈(4I۴f 2;:mZ?{[ "S 1]!Ka.Cd1آ*TNs3YLbLI"4&-<܈ յ4KTE:OՊՉe?C(HAZvGjiִnB "5V0)2 rCK7Չ{|/2$q\?8u܆{ o~܁CK9_N0Qմlۆ@>وvl گHڤ#\$ӼH Mfܼ1ٻ7 պ"$* I֌1?ܗ܍; ҟMկ4o>r!%CH#ծܵզܑܳ.$ll rEfdՆHl h/征$,8%ݥ"#CH݆!1, 3s&KKiv%.z?݇0y,;ݣKDf "ER6=݅>AMf@E֛.ݕܣPݥ?ֱnwZ#ݗ$ujxl/>ݙ܀݆ܶU݌Lܽ9m֮fݛi 4&.ݖݷC l %;bݍ&p2J zܽݧݿݒݏ/ݹ݌@Eܽl ֚"֔pE־ݹ)הIﭣݙ܊6'[۾yڥҪkЫo۾r[  Nܜo狫،^9ܽLf'*ގvt-c,0݋ݻt%4ܧ܉qF@*fK?C?9ݾ<ї3;;c[Aޘ:]j6%S6:Jiwmloݰ#LpD ݁އ%{l2ފ݌}ރLG.JsPYVޝBގ8ܟ ݫՉ݀+ݠ4 xSָޯ޻ޱޔq[5ܙy%J~Lּ(݋*D9-VWeE~C5X)fNCsQHܠ޾ٲܪسP4!o$L&(Of5 Mf-FSֺޒd܈;u܁J߉ݎ[Q%_72 [֙%^-x]֛ݝp-޴ݫCݜ22߾݋&ݷ%ߗݼ>ߚHݸ4<ֿG?L>VFߢAs DfeKjoKW1J\ތކډۗ37۫۾*ۜҪٷy޾+ޭ ~1;=nf Dr( )-gLNުC}Uܴs J܆]ܖQܘ bS7)NPNR\\ueG܅[܇ߡ-ޡfd f M?xXfސILp۫޷ۊۨDfTYSoܻشh qܐdUq>fqހ*f5#Nf.v^߀ߙߘ߀ުQ)q4/ޔ+SIX֧܁@A"/<D۰_׍߀ ,7dsGdf7*C7UC/}. 7;2>\FlףR^ؘ 7M1~%W"U^KT.s1ZJ@إ#*#~YztghI5=I3ߦش?޵ߒݴxT|x֥(yݴWs ls=9)o;v#b5-f[,ބܼT`ݦگTMHݵTiּ:ݹau(6LKfضٽjYM 5 ۳YtJQ$1ё5 ٔ** ᖗLCE!}ҹ) 3eν4DT*#((^ky,ptP@ۙ k|2)ބKܭ߂^m4`ߡeܔnҮ#@g:x gԱҮҼ(\v՟\B YYWoLa޻֚3oՍ*ӄu۔Lh\9)frg\#-8bդ?A9VC%6W00srԙL\06iof?H JlH*Y!Bڷ "wՀR\WpgWkxy~Y4Ჲ2: Y)6/%9O*ӊr2cm9] 9`GrIxfT޸pZI[ktoe{lՊroxnvҒsMG!Ce=I?#bqdTu?LR f}~䪪Œ+-K\J$ e#vKi |\>Ufx!M~-&HVYtMJ!hZuW֊r{ԇ{hY2 ("]UM*X$VYՏ ~V*Nkckm8z䁘p-H+6@C:r"ׄG9ƨזT{6 I>fPUb<XP|` xlLKքu2a*s#ߣMәrՑ#pՕ)ׯ!+7%ת2l/81 ؐ߬׺ۓn+)Yt)XЮ<3j }YՃDNޠף׉< GNWֲ81r7i޳?"{_?Wsv&I 5Ll~-8I- 7&)$^MM҅v g@*vug:$x!!Q LN)&*A+K%0 3 g9;&=I?%Ao5[tO*P:נ[e%I? a NQ"^ 6XL[ҍ ߑ:ߗߏmHܗٙy߳"| w߱ߕWW11z됴1T1Va0ֲ3ܳD ҹCmםR@cM2l6t~>]C1щ!oѤѐ?*sJ/c|rEA{aѽ+a^&Q hѮo{QB%EIDԷ Ѵ周l aHN=|<$xBѹ?=VL*Bӡ3J\bOp/jՈ2Vh{ջ[%''@.51Ջ QIPNbKMrE9R ޥҏ#HD9Gu$zɺY̾Ta<"IJ:Dڗu+hP 1/{JC(%D!NJӲr3M`]<[K m4q^`c.sr9NW@nmT|U+D-s$'o\ۂXy^'dWf#iflO*n[P(x*zb}%݁Ӡ0%L2s ; լ3m&٤&է9JBϻoNҲy$Fު\"WT@l`+KGM|~ $bz-K: x1bOrg %6&dxfT2#@|kU~琝L"/#`v0J:$-L} N G/}#NptTPbQN_~&aqu8MP9+u" aN?*OLhKk1KҽScM"KSd#抛M-`JDB;E IOMBN.Q TV|f>Z盙uŗ1`?`0}c>9rg,i^kRTSRqf}uu,uy6=NJtf,G,:i@w+nb  2# B?E݅ Et(LIafwߊA1[j$-Ȃc"\D(E1P߄Vnӗ`:$n:*x'W[t"f*b4sg~H)1aJ"!ۖI\rڏڏ!`S`tWkxblV/"MK՚J%NKcsJ%8@)U 7.&d79"ދr>#|X`uS n"ުם1݊8!59;y0s4MoM!nKK ]S,;Evի ;%F >9>KUҖvlv*^1'!n7F<|>-H-D0}f^\#5Y%6TJ)_6#Krg/ =e!t]2|Tհ_%>5A!B ء%Gsj^#LGITfR?` E.X1GR ؒ=CC8R"+yC)@%t_ IךEC@4N6Gu.I5hDَ7Y  X`r_fۼpe{@X[*JnR?Q2H|XKwMf xI|Zq3sPivLxH|Ga* gƫG00'VXU }U7W"`hZvdNUgx;EEYQӵΖRODKq-||8w t吨x3JMs |s-=8D|"уS~/CѯѕgulE1JѠEl b?*3F[~CLOQeJIX[S`+ad}3?*l9Cht  wSy=VAao7ANaHa` -Dі,XL6Y 1{ JMIRXц3zGl_.- 8 QQQ|@fP@6 v+mM-v5*s 67 88 IKL82q4YJP/_63i+6KLM J L J!C-j. HH;NN~KL]KKܺ-R KK NPMhlvSi9NB2"L.jhI`i'~+D$83_CW+D-a=uOϥd>HTyk\Ľ}۴Yi^!a$/w] 4R,)TP4A'Telke񋹣{eL8Mt$5{}cOVA49I`H tTiC2s]f B$/9!%tN Xt+R٢/nB2nmZ jt4QO#XK,d.y7B?-/շ.)Ama>-buVLHb+1;a#wB4S _~/+A{:= B/~C$E|{s.ny;s_$, kr]B0FB;LWy~0*zzrZ)hrH[BeBj#WVN{^:2x{={9.LB͔vZ.=V ~p l1t Sz;t}I%Kߍ۶Jt#Mu\iJV#Ye\g"iTBb8&f2DsinJ3yfA6Y"~ņ'w49GpRnHQ߃flftנp&#?-"[aّ%AiBDS'1M"_Hb1"-AQ퉞?^M]Xs3R0A:n0111.>d/ :嶲0[b"9XE.W%t Hq_)B_5B2Sh{cb۹?x*zNm? H>0@b4V  z` z2,_|Cݷ07"졐I<:.]-H6p <T\"H5P===K5Bbؔ ˻~Ǩv4Sں0V_9嶒|_ T.;fT.5E.-H~pFBl[]5H$&5D8p" C;v9B 0+.Dž^r[kw1l2 q\p|V1-)@fGIh-b]IjрsEA1shjH1|ckz2sq1u".>z-"n*wReʟdр9w$1sW2 rA1c.,jm3oBD6Jgg68m3ShiDJ8%W2fh$?cRSQa:h؎5jV[sY9 ؎^"BVa/ rn26,&3Tﱋ[wg؎S# $hrh(#wY%y]Ir[3'LcoNY=;G1 :+^z[4-9W}}+e*V׵(OL|: KkѪ9ܐny1o!DE&l]$n9k 1pd&O);#3ݗuM3!&PFR9L-_\]d^-bIE7;"FbYw$hEKQuSbiuE0B{C{/1vq(ixIXp3 igc.5qMy/&;b6~X`AIEϊCGd3C~Xibfx.RٰglQ^6,G1ǯl&h2dᖂqp7r&ΐЧd/.+&q !YT꘎0M87_ǯe]gBiTHq3\,yy\yj!A0V0)hVhi,On*Z11@-;#x*lVJTGh+md/Lk)KEPX0@(<d"!lt!L]|I(;o]e;xw&zjh*$d"Mh35=m,5T -UcVIj8XԦ-3H1,t!S*AzC%/;"sٰ'j~6F,ʬ$g民EL&E+u)Ȃ߬2:^Gs(!^vAΗsW kE(/Zk,I5Lf|JS,H17p$nVSW/{>ϰ.ks4;FVy:ҕUE1[Lr5&2bIģ4-E=H^Y9'T*s?/1z/-a)h9bb@s!1FO.h/uks-&~t4oC)Itx.(!1n*[nί6-!(w-!_v#%%)jq~*;V-ݴ 5q7~4@ V;G1KW2Cݸbb=q?Qm$_8=䊱k%Pi{>tV# Ӊ ðWvi)S#'wSq_K/?~nni+>AD:"3T aeL&yaOcR]SS:`툆#RY\]s+i+!gDj-3o8 q+Ksf)*v8 x^@UcittYtt<܏biﮛpNɕ<Ng>27E09e+0/;uɞ11~*Fu)HW~`&B oN<+3? 3p&sЭ)DK!tQ.d[(60 ,l;mO,rE&-{f)gny!}J2M"&(|="+0 }n "*xjr9;pv!JP"6Prs(nK2[>2xKVjTc+*s1kٰ3xW4 WWG)+uOٍE0TVP-8!->g>A:}(CCPe˳, q,+=-"88GA-HTSfI.z"YyÜ\5K `Xztj$!V+03#}\7oWEdqʗU)O[)Gg/t12#-kف:2aw ԩ템-џ~H”M9bVgo\L/XWF.UuRf{5,*@4H6)}zřG 5|j5ml8m8.$)V3OrOF4wr+Pu)AEs-g-Z!cx_ Oj5 YrE4jru*)H\WAqH;Fu510..+!~5u7C86AA`ObL:r@r2>Wؚf2X))+Tu t:Y/2o Pr@h<;$z,V2J|T=Ww\YLlFGHpaK,@,J;q-=uqxO$Lq*Fxxpdǯ 1)|0-쇇F7o:,+vu]@+oY+sUcE;' yAruFn70aUNhz*0O{u 2% &kL(N"mEa~0\T۸8*egٗvvF&x.r:SI *uDHKTnlf/hˊJ;EP?u"Z@,-4{m򚂺!-"zNFEfw[TG^m_S;q}4|X=H# aCG(v; v"8]g;:yF[QV ES<]+?.B0R,58)傅R:zgR'8:JK6 8h82[e/?[J$-_)@8* L)_-ZygϬ L^ӆ.|3x8W.'k}<+VfuF;)#z*1)H^BYWm9i.jƍغpss1Cgm(}Дo`;}Y lH@P&])'Fo&3/ẽ8C{; W\̃@xd&Cs`H5fLqOLI;oPNtDRg,+x3P `{`&Mu)^) f&M /]]i"w ZOHbvHG  ^ SHeѭ xfiCgS)hfiHjUjHk;H )  HpqoUfsfgl|5Aj"JB?.yp>tl2ΧE-c b&9Gl}Χ`;A b&sR5lAo-Ϲoj86rjwA<,8Eij-"oi2AnAif@,zx=KmN(HYɅKYo?3=:tjݴBD?.=:ΕomljO0҅oҒAopoVjPyZ06j֝PzΧE-c -Zj}Χ@/3o -ojo)8oAjlOk=-}#Gkz;Χ63=:cGHik |kBklk l<k921=D$kh,(kX+ko/kI1kje0lOk=-}#Nkz;Χkkk,k7Sk['mnok6\kmk6kg^lh/3NDkNmhDky18)iDkPk lZm(l *l4|uz0FB ~=_C(lIT9ag43=:ly`@FGDliSnVq 3l/l l"-$l&lE(l *l/[B|oP N$l&l_C(lIT)}jwA%_Xk%kkjIJZUL:lFv̼>ls4AldUz]El8lqy}u#|Qlml6[XlPZlMo\li4n?Z%jnAjlllx0:]olFVo:]slC-"jnbJu~lljjl@`*bX.l/3s*A2R4kYo oE;ƂS0FnXSoD4(3+ol|lw)lXk"]%IMlAl^ClGC.ZA(dA2RiIZOEeD)mǘ ZbSF}ll)mE-!l6D2o6[n#|)ml"jojzokon{q_~m!!;Mҝ%UhdNd7Qgfn"~y~7NboiYfo& ./-r`T5,kooVqkot:8kEW l+AƂS0FnXSokzA+ol.o*oKow)k?!nDM+x1Rk4/KݜOYnzl /HEj j*9Daz+PgR/W 2ri- aAzULr-]޸qF 8Gk1 훓$C2q7숮E\@ًv ),Fg`T0C HRu0D5OS Pq(Q͑˕€Vx7dSav h@ۜrPw w7TVXz-|R(cU$|$1#_n-y_x9WfNްP wM3첓TRXkBXfS.!_ sClFTO x+ ,p޷G>,%|*nMh0?O&hM@B/@P81Wyx&0 QH}7]P6=EnL'H Ԡ-`EL` H9G;PĂ'؀-; lP&Ԭ8C@QEeO)T⅍fڈiR ]hPa>nMsX:"vȪ=wl$7UxE n!Hy9!t$MYyhQA8UJxXƶ?pDfYfA^ 'ͧUr@I,( D2ib*8!OխogH~x3g Qyګ. ٩ȴ.؁Fl J ,# H?@,Wt])KN |0!ihН =JK"8Ev `"3s0PfaD020hTZ e3A h20Ai`@2AlpP1 (1qXFP@dS`%0*o$ZVI,a{NRp"7t Ł7jwy{Dh\F@hToQSKWu+!b(aGXUNXUxi i@pYYDY%ZnwZPZ[E[H b[E^X(d(]avkAQ5c{c$ AJ'"WIn/p%0 Sq'.pWZQYa^8d+#UA+$-OQGNIe"fXvhfDpeȁKv刉Dvf]elAGtIPp!я荙H%F׉BQj: (^RC2xB-b'MDpM)bIfh->}r00 9$(u,!yR\"1'O hYTo2q[a3cE<7ij6~1Q'M-F^?W,Sp VSn4NuCIcFd'\p\axǧ1ZLq#2P78b1b$A4T 1 xd+9Yٚ IQrdsuCrXhN0V'[A7;YlSSEݑSa3$l8GdJja+P$XHLpi6 "R-^GstGwQ0 SyV\1-UQ66bƓc$p0$ȸ+utxCBnâQR 76WAVҢ;p/JQ `Bl-FF.cAuPed+tM.@>l X]6AiEQ멍gHQ9}a 1, E` }"҃) *"TIe*iEThe DBFACC program is able to convert DIF files to AnalytiCalc<(PortaCalc) save files, or to convert AnalytiCalc save files>to DIF files. Conventionally, AnalytiCalc save files are named8file.PCC and DIF files are named file.DIF. The program'sprompts use this convention.4 The program can also generate database files usable@by Datatrieve (or other databases) in a sequential database file?from either PCC or DIF files. See the section on DATABASE FILES ?below for discussion. The program is also capable of extractings8PCC files from databases. See the Extract section below.5 To run the program, just RUN DBFACC on VAX or PDP11;oon PC, just type DBFACC.3 The progam asks whether you want to Read DIF files7to PCC files or Write DIF files from PCC files. Reply Rt9or W to select one. For database files it allows two more 9options, D and P to write databases from DIF or PCC files 9respectively. It will ask more questions if these optionsu;are chosen. You may also reply X to extract a PCC file fromha database file.7 If you chose R or W, the program then asks for the DIF >filename and the PCC (AnalytiCalc) filename to use. Enter eachin response to the prompt.7 If you said you wanted to Write DIF files, the programtAasks whether to emit Values or Formulas. DIF is less general than.>the normal AnalytiCalc save output, and the program can either@select the numerical value of each cell for the DIF file (useful?for graphing programs and the like) or the cell formula (usefulu=for moving to other spreadsheet type programs or for archivals>purposes). Select F or V. In a sense, the formula save is more>general since it can be made again into a spreadsheet and once:computable cells are made numeric again, the values can be<recalculated. However, both are available. Use whichever youneed. 6 If you said you wanted to Read DIF files (and write a;file for AnalytiCalc), the DIF format does not preserve the<formatting information for cells. The program therefore asks<for a default format to use. This can be any 9 characters of9Fortran format you like. Use the F9.2 format (i.e., reply;"F9.2", without the quotes) if you are uncertain of what to?use. This format will be placed in each cell of the AnalytiCalc saved sheet.9 Some processing done by AnalytiCalc to flag numeric-onlyh>cells is not done here, so spreadsheets loaded by this utilityAwill compute more slowly than native AnalytiCalc ones will. Dummy<EDits in AnalytiCalc to any cells that are pure numeric will1reset the flags so that speedups can be realized.9 It should be further noted that the DIF format is rather<=inefficient in that it assumes that the area to be saved is a?complete rectangular region. DBFACC will fill in any cells that=are not really there with the NA numeric code, and on loading;back to an AnalytiCalc file, will discard all NA cells. The00WVKV }?result is that DIF saved sheets can be considerably larger thanNAnalytiCalc saved files.9 All cells are treated equally here and the resulting DIFDfiles contain either number values or string values. This limitationBof DIF format is the reason why you must be asked whether you wantDformulas or values from your AnalytiCalc saved sheet. The two cannotbe piggybacked.9 Nevertheless, this utility provides a fairly easy to use<way of converting AnalytiCalc data for other programs, or of<getting data from other utilities in a form that AnalytiCalc can load.  One final note:8 AnalytiCalc V18-04F is the first version of AnalytiCalc:that will work with this utility in converting AnalytiCalc;files to DIF files. If you have old .PCC files, reload themt;and save them with the new AnalytiCalc to get this to work.d;The cells used to be saved down columns first; now they areF:saved across rows first. This has no effect on AnalytiCalc>since each record has its address, but makes conversion to DIF?of the old files quite difficult, since DIF files are specifiedrto be saved across rows. Glenn Everhart 8/9/85oDATABASE FILES@ The DBFACC program, for VAX,PDP11, and PC, allows you to createCfiles suitable for use as a database domain. You enter this mode bya<replying D or P to the question about reading or writing DIF>files. A reply of D means read a DIF file onto a database, and?a reply of P means read a PCC (PortaCalc) file onto a database.s9 When you tell the program you want one of these options,o@it first enters a customization section for some extra data. The;belief is that you may want to combine data from many saved ;spreadsheets into a domain. Since this data will have to ber<distinguishable somehow for you to keep track of it, you are>asked to enter an auxiliary key of up to 8 characters. You can@use numeric characters here (and in a DBMS) and treat this field=as numeric, or any alphas and treat it as an alphanumeric keyDAin a DBMS. The program will accept any 8 characters and make them7a secondary key in addition to the ones it has already.9 The program computes a primary index from row and columnnumbers by the formula* Index=(row number-1)*1024 + column number>and uses that as the database file's primary index. This indexAmay not have duplicates. To allow multiple sheets to be combined,?the program asks for a cell ID base to use. This is read with a;format permitting up to 8 digits and should be large enough ?to ensure cell IDs from the new sheet don't conflict with those3?from the old ones in your file if any. You may reply 0. If your?reply is nonzero and below 65536 in absolute value, the program>will warn you that conflicts could occur and give you a chance>to confirm or deny you want the value you picked. If you reply>N, the program exits and you can run it again without damaging8your files. You must be sure there will be no conflicts.9 The program then asks for the filename of the input file<and the output file. Once you enter the name of the database<output file, the program will ask you to tell whether it's a?new or old file. If it's an old file, an existing database file 'will be opened for update and added to. 9 The program will then ask for the additional informationu@needed for complete information in the file. It will ask whether;to write values or formulas if a PCC file, or for a defaultidisplay format if a DIF file. 6 Then it will perform the desired file write and exit.8 On VMS, console reads are from SYS$INPUT and writes are@to SYS$OUTPUT to allow batch or command file control. On the PC,6reads and writes are to CON, the MSDOS Console device. Database Extraction (X option)h6 If you said you wanted option X, the program asks you=for the names of your PCC and database files. Because you maya>want to extract a PCC file only from one of the files that may>have been merged into a data file for a DBMS, the program asks?for an auxiliary key as it did when creating the database file. >Only records in the data file matching00_VfVRRTADATADATADATADATADATA that key are written to<the output. However, if you reply with a * to that question,2all records in the database file will be selected.> The program next asks you for a title line for the save (PCC)#file. Just enter any desired title.s; It then extracts the data and creates (recreates) the .PCCcCfile from the data file. Note the type of file recreated is similary=to the result of an AnalytiCalc PPF or PPN command, dependingnFon whether Formulas or Values were selected in the pass that initiallycreated the database file.9 If in the X option you entered a * as the auxiliary key, Aall auxiliary keys are selected. If however you enter a % or a %*e7you enter the "Squash PCC File" section of the program. 7 The idea is that if you have 40 spreadsheets that havecC50 numbers each that you saved and you want to be able to summarizeI?them more simply, you might want to reshape the storage so that0;you have a sheet of 50 columns and 40 rows, with each row ab=complete spreadsheet save and each column one of the numbers.oBThen you can use graphics tools and the like to display variations+of the numbers with respect to one another.o; When you enter %*, the key is replaced by just * to select@all auxiliary keys. If you enter anything other than * after the3%, the program asks you again for an auxiliary key.o8 Then the program asks for the dimensions of the area of;the spreadsheet to be created. (In the example, we'd say 50o=columns and 40 rows.) You enter the numbers; the program willi8be happy with any so long as they are greater than zero.6 Now, as in the normal dump, DBFACC reads the database=file in the order of cell IDs and writes a PCC file. However, 8instead of using the original row and column numbers, it;makes new ones starting at A1, B1, C1, D1, ..., A2, B2, C2,u9D2, ... going across for as many columns as you specifiedl:and down as many rows as you specified (or less if it runs>out of data first). The original cell coordinates are ignored.?(This is likely to be useless for formulas of course, but where_*the data is just values, it can be handy.)6 To ensure that this produces the result spoken of, it9would only be necessary to ensure that the second sheet's7cell IDs were larger than any in the first, the third's9larger than any in the second, and so on. This is done by;specifying a large ID base to add. If there are 100 rows orJ:columns in the sheets, one might add 1000000 for the first<sheet, 2000000 for the second, and so on by specifying thoseas the ID bases to use.J; The IDs should normally not overlap since a real DBMS willBwant some unique key to use. However, when you specify an Old file>for a database file to DBFACC, it will just append new data to@the end of the old file, and later read sequentially, so keeping?cell IDs unique is not really needed here. It is a good idea toAdo it anyway though, since that will allow the file to be used in@other database management packages without requiring the DBMS to=be sophisticated enough to allow duplicate keys. Since the IDAfield occurs first, a simple sort (using the MSDOS utility or the>DECUS C sort utility for example) can be used most effectively@if the ID fields do not overlap from one sheet saved to another.1C PROGRAM TO READ/WRITE DIF FILES FROM .PCC FILEScc Compilation:c FORTRAN/NOCHECK/NODEBUG DIFRWc Link:c LINK/NOMAP DIFRWc4c Reads DIF files into AnalytiCalc save format files1c or reads AnalytiCalc save files into DIF files.3c Note that the version of AnalytiCalc must be the2c new one that saves across rows rather than down*c columns for the latter ability to work.cc>c ADD SPECIAL "D" OPTION TO WRITE random access database files<C for databases that can use them. Write f00gVKV }iles as sequential=C fixed length record files, no keys used in access, but able5C to be sorted etc. because key fields will be there.C9C D AND P OPTIONS write out database files and ask for an8c auxiliary key which can then be used in DTR retrievals7c for file access where multiple sheet files are storedc in the same DTR domain.c5C Also includes options to extract PCC files from the:c database files as desired, with potential reorganizationc according to user wishes.C&c Copyright (c) Glenn C. Everhart 1985-c Noncommercial use permitted, but for-profitc distribution prohibited.c CHARACTER*1 FORM,FVLD INTEGER*4 VNLT* CHARACTER*1 LET1,LET2,FORM2(128),NMSH(80) CHARACTER*1 DIFHDR(10) COMMON/NMSH/NMSH INTEGER*2 IOLVL DIMENSION FORM(128),FVLD(1,1) CHARACTER*1 FVWRK,FVWRK2AC FVLD FLAG 0 = NO FORMULA, -1= DISPLAY FORMULA ITSELF, NOT VALUE=C 1=VALID ACTIVE FORMULA THERE TO EVALUATE. INITIALLY ALL 0'SC SO INITIALLY IGNORE.?C FVLD=2 = CONST NUMERIC ONLY, COMPUTED. =3, CONST, NEEDS CALC.CDC ROUTINE IN2AS COMPUTES ASCII CHARACTER NAMES OF SUBSCRIPTS IN1,IN2=C SO DISPLAY CAN HAVE THEM. IT MUST BE THE INVERSE OF VARSCN. CHARACTER*1 LETA CHARACTER*127 CFORM,CFORM2 EQUIVALENCE(CFORM,FORM(1)) EQUIVALENCE(CFORM2,FORM2(1)) LOGICAL*1 LFN(80) INTEGER*4 IDREC,ICW,IRW integer*2 nrows,ncols character*9 DFMT character*8 auxkey,AK2 integer*4 idbase8C ENCODE ICREF, IRREF AND CWIDS PAST TITLE IN FIRST LINE8C (THAT WAY, NOTHING BREAKS IN OTHER PGMS THAT USE THIS)CC PUT NUMBERS OUT TO FILE%C USES RELATIVE FORMS TO CURRENT POS.;C PD = PUT OURT DISPLAY SHEET. PP = PUT OUT PHYSICAL SHEET.&C ONLY WRITES PHYSICALLY PRESENT DATA."C P/D RRR,CCC,FORMULA,VALID,FORMAT6C N IN 3RD CHR (PPN/PDN) SAVES NUMBERS, ELSE FORMULAS. IOLVL=5, OPEN(UNIT=5,FILE='SYS$INPUT:',STATUS='OLD')- OPEN(UNIT=6,FILE='SYS$OUTPUT:',STATUS='NEW') WRITE(6,101)9101 FORMAT(' Read DIF file to PCC or Write DIF file from'" 1 ,' PCC or Read DIF to DB',. 2 /,'$or Read PCC to DB or extract PCC ' 3 'from DB [R/W/D/P/X]:') READ(5,7953)FORM2 MODIF=ICHAR(FORM2(2)) INDIF=1. IF(FORM2(1).EQ.'R'.OR.FORM2(1).EQ.'r')INDIF=00 IF(FORM2(1).EQ.'X'.OR.FORM2(1).EQ.'x')GOTO 7000 INDB=0- IF(FORM2(1).EQ.'D'.OR.FORM2(1).EQ.'d')INDB=1- IF(FORM2(1).EQ.'P'.OR.FORM2(1).EQ.'p')INDB=2;C IF READING PCC FILE TO DTR TYPE FILE JUST FAKE THAT WE'RE8C READING PCC FILES. IF READING DIF FILE TO DTR FILE SAYC WE'RE READING DIF FILES. IF(INDB.EQ.1)INDIF=0 IF(INDB.EQ.2)INDIF=1 IF(INDB.EQ.0)GOTO 165;C GET HOLD OF AUXILIARY KEY (FOR USE WHEN CROSS REFERENCING2C MULTIPLE DATABASE FILES) AND OF ID BASE IF NOT 0 WRITE(6,173)8173 FORMAT(' Customization Section - allows you to diff'2 1 'erentiate this DB section from others',/, 2 ' within the file:') Write(6,166)3166 FORMAT('$ Enter auxiliary key, up to 8 chars>') Read(5,167)auxkey167 format(a8) Write(6,168)/168 Format('$Enter desired cell ID base or 0>') Read(5,169)idbase169 format(i8)" if(iabs(idbase).gt.65536)goto 165 IF(IDBASE.EQ.0)GOTO 165 write(6,170);170 format(' Warning - ID base may conflict with cell IDs') Write(6,171)6171 format('$Are you sure you want to use it? [Y/N]:') Read(5,172)leta172 format(1a1)1 if(leta.ne.'y'.and.leta.ne.'Y')stop 'OK. Rerun.' 165 CONTINUE+C DON'T BOTHER WITH DIF FILE UNLESS NEEDED. IF(INDB.EQ.2)GOTO 155 WRITE(6,102)#102 FORMAT('$ Enter DIF filename>') III=IOLVL$ READ(III,7953,END=510,ERR=510)FORM27953 FORMAT(128A1) DO 6940 II=1,128 ILN=129-II% IF(ICHAR(FORM2(ILN)).GT.32)GOTO 6941 FORM2(ILN)=CHAR(0) 6940 CONTINUE 6941 CONTINUEC ILN IS LENGTH OFLINE NOW. ILN=MIN0(ILN,127) FORM2(ILN+1)=CHAR(0)# IF(INDIF.EQ.0)CALL RASSIG(3,FORM2)# IF(INDIF.NE.0)CALL WASSIG(4,FORM2) GOTO 157 155 CONTINUE9C LEAVE DUMMY DIF OUTPUT OPEN SO WRITES DON'T ALL HAVE TOC BE TESTED...' OPEN(UNIT=4,FILE='NLA0:',STATUS='NEW', 1 RECL=512) 157 CONTINUE!C LUN 3 IS INPUT, LUN 4 IS OUTPUTC NOW GET PCC FILENA00oVfVRRTADATADATADATADATADATAME' IF(INDB.EQ.0.OR.INDB.EQ.2)WRITE(6,103) IF(INDB.EQ.1)WRITE(6,140)#103 FORMAT('$ Enter PCC filename>').140 FORMAT('$ Enter Database Data File name>') READ(IOLVL,7953)FORM2 DO 6340 II=1,128 ILN=129-II% IF(ICHAR(FORM2(ILN)).GT.32)GOTO 6341 FORM2(ILN)=CHAR(0) 6340 CONTINUE 6341 CONTINUEC ILN IS LENGTH OFLINE NOW. ILN=MIN0(ILN,127) FORM2(ILN+1)=CHAR(0)# IF(INDIF.ne.0)CALL RASSIG(3,FORM2)1 IF(INDB.EQ.0.AND.INDIF.eq.0)CALL WASSIG(4,FORM2)3C IF WE'RE READING PCC FILES, PCC FILE ALREADY OPEN7C BUT IF WRITING DB FILES FROM DIF FILES, NEED TO DUMMY C THE PCC FILE OPEN HERE. DO SO.4 IF(INDB.EQ.1)OPEN(UNIT=4,FILE='NLA0:',STATUS='NEW', 1 RECL=512)+C IF INDB USED, FORGET OUTPUT TO .PCC FILE."C FIRST GET THE FILENAME IF INDB=2 IF(INDB.NE.2)GOTO 156 WRITE(6,140):C GET THE FILENAME HERE AND MAKE SURE IT'S NULL TERMINATED9C (DON'T USE Q FORMAT TO MAKE THIS PROGRAM EASIER TO MOVE#C TO COMPILERS THAT DON'T HAVE IT.)& READ(IOLVL,7953,END=510,ERR=510)FORM28C JUST ZOT OUT TRAILING WHITESPACE BY NULLING BEYOND IT. DO 5340 II=1,128 ILN=129-II3C STOP ON FIRST CHARACTER THAT CAN'T BE WHITESPACE.4C NOTE THAT THIS GIVES UNIFORM RESULTS EVEN IN WEIRD+C OTSs THAT PASS THE C.R. OR EVEN THE CRLF.% IF(ICHAR(FORM2(ILN)).GT.32)GOTO 5341 FORM2(ILN)=CHAR(0) 5340 CONTINUE 5341 CONTINUEC ILN IS LENGTH OFLINE NOW. ILN=MIN0(ILN,127) FORM2(ILN+1)=CHAR(0) 156 CONTINUEc7c provide option to open file in 'unknown' status (i.e.-c allow adding to existing ones) if desired. IF(INDB.EQ.0)GOTO 3214 WRITE(6,141)5141 FORMAT('$ Enter N for New file, O for Old file>') Read(5,7953)leta DO 3216 IV=1,80 LFN(IV)=ICHAR(FORM2(IV)) 3216 CONTINUE 3217 CONTINUE) if(leta.NE.'n'.and.leta.ne.'N')goto 32159c he says it's new file; open it that way (i.e., create a%c new version if one already exists.)! IF(MODIF.EQ.ICHAR('V'))GOTO 3315# OPEN(UNIT=7,FILE=LFN,STATUS='NEW',5 1 ORGANIZATION='SEQUENTIAL',RECORDTYPE='FIXED'," 2 RECL=143,FORM='FORMATTED') goto 3214 3315 CONTINUE# OPEN(UNIT=7,FILE=LFN,STATUS='NEW',8 1 ORGANIZATION='SEQUENTIAL',RECORDTYPE='VARIABLE'," 2 RECL=143,FORM='FORMATTED') GOTO 3214 3215 continue:C USE STATUS UNKNOWN SO THAT A NEW FILE WILL BE CREATED IFC NONE EXISTS.<C ALLOW, ON CV (WHERE C IS X OR D OR P) COMMANDS, TO BUILD AC VARIABLE RECORD SIZED RECORD.! IF(MODIF.EQ.ICHAR('V'))GOTO 3314' OPEN(UNIT=7,FILE=LFN,STATUS='UNKNOWN',5 1 ORGANIZATION='SEQUENTIAL',RECORDTYPE='FIXED', 1 ACCESS='APPEND'," 2 RECL=143,FORM='FORMATTED') GOTO 3214 3314 CONTINUE' OPEN(UNIT=7,FILE=LFN,STATUS='UNKNOWN',8 1 ORGANIZATION='SEQUENTIAL',RECORDTYPE='VARIABLE', 1 ACCESS='APPEND'," 2 RECL=143,FORM='FORMATTED') 3214 CONTINUE0C WRITE ROW#,COL#,FVLD,TYPE,FORMAT,FORMULA,IJUNK=c Now both files are opened and all set, and INDIF flag tells;c whether the DIF file is the input or the output (0=input)cAc Now since DIF files don't have a valid format, if we're reading6c DIF and writing PCC files, ask for a display format. IF (Indif.ne.0)goto 105 Write(6,106)-106 Format('$ Enter display format, no ().>') Read(5,107)DFMTc may need to change format...107 Format(A9) GOTO 1000 105 Continue WRITE(6,900).900 FORMAT('$ Emit Values or Formulas [V/F]:') Read(5,7953)let2 IF(LET2.EQ.'v')LET2='V'=c LET2 tells us whether to emit Values or "Labels" in the DIF c file.../C AT 1000 HANDLE READING DIF FILES TO PCC FILES-C NEXT HANDLE READING PCC FILES TO DIF FILES.CC PCC IN, DIF OUTC<C FIRST PASS: READ IN PCC FILE TO SEE HOW MANY ROWS AND COLS(C ARE THERE SINCE THAT'S NEEDED FOR DIF. NCOLS=0 NROWS=0( READ(3,6951,END=9990,ERR=9990)NMSH,FORM6951 FORMAT(100A1,100A1,100A1) 1107 CONTINUE%C7955 FORMAT('P',I5,',',I5,',',128A1)6C READ THE DATA AND KEEP MAXIMA FOR ROW, COL UNTIL EOF0 READ (3,108,END=109,ERR=109)LETR,ICOL,IROW,FORM NCOL=ICOL NROW=IROW!108 FORMAT(1A1,I5,1X,I5,1X,128A1)C7956 FORMAT(I3,',',9A1,',',I5)7956 FORMAT(I3,1X,9A1,00wVKV }1X,I5)7C NOTE SOME FORTRANS NEED TO USE 1X IN READ FORMAT, NOT%C JUST USE SAME AS WRITE FORMAT HERE.4 READ(3,7956,END=109,ERR=109)IVLD,(FORM2(IV),IV=120, 1 128),ITYPE IF(LETR.EQ.'M')GOTO 1097C DON'T BOTHER WITH MAPPING RECORDS WHICH ARE AT END... IF(LETR.NE.'P')GOTO 1107 IF(NCOL.GT.NCOLS)NCOLS=NCOL IF(NROW.GT.NROWS)NROWS=NROW GOTO 1107 109 CONTINUEC NOW HAVE DIMENSIONS... REWIND 3 WRITE(6,5000)NCOLS,NROWS:5000 FORMAT(' NUMBER OF COLS FOUND=',I6,';NUMBER OF ROWS=' 1 ,I6). IF(NCOLS.LE.0.OR.NCOLS.GT.999)STOP 'COLS ERR'. IF(NROWS.LE.0.OR.NROWS.GT.999)STOP 'ROWS ERR'8C PASS THROUGH THE FILE ONCE TO BE SURE ROWS AND COLUMNS C WILL FIT...( READ(3,6951,END=9990,ERR=9990)NMSH,FORM6C NOW EMIT TABLE RECORD USING TITLE OF SHEET AS STRING WRITE(4,110)110 FORMAT('TABLE',/,'0,1') WRITE(4,111)(NMSH(IV),IV=1,75)111 FORMAT('"',75A1,'"');C VECTORS IS DIF SLANG FOR COLUMNS. EMIT NUMBER OF VECTORS. WRITE(4,112)NCOLS&112 FORMAT('VECTORS',/,'0,',I3,/,'""')<C NEXT WRITE TUPLES RECORD WHICH IS BASICALLY NUMBER OF ROWS WRITE(4,113)NROWS%113 FORMAT('TUPLES',/,'0,',I3,/,'""') WRITE(4,114)!114 FORMAT('DATA',/,'0,0',/,'""')@C WE ASKED EARLIER FOR LET2 TO BE V FOR VALUES OR F FOR FORMULASC TO TELL WHICH TO EMIT.(C NOW GO THROUGH AND HANDLE THE STUFF... ICOLI=0 IROWI=1 ICOLS=NCOLS IROWX=1 ICOLX=1 IROWS=NROWS WRITE(4,121)121 FORMAT('-1,0',/,'BOT') 118 CONTINUE0 READ (3,108,END=119,ERR=119)LETR,ICOL,IROW,FORM NCOL=ICOL NROW=IROW4 READ(3,7956,END=119,ERR=119)IVLD,(FORM2(IV),IV=120, 1 128),ITYPE?C ONLY ACCEPT P OR p TYPE RECORDS (ONLY ONE, DEPENDING ON LET1)( IF(LETR.NE.'P'.AND.LET2.NE.'V')GOTO 118( IF(LETR.NE.'p'.AND.LET2.EQ.'V')GOTO 118C HERE WE KNOW WE'RE LEGALDC SINCE THE NEW VERSIONS OF ANALYTICALC GENERATE DATA ACROSS COLUMNS9C FIRST (I.E., ALONG TUPLES), JUST KEEP TRACK OF LAST ONE$C READ AND FILL IN NULLS IF WE MUST.C ICOLX=ICOLX+1C IF(ICOLX.LE.ICOLS)GOTO 120 C ICOLX=1C IROWX=IROWX+1 C120 CONTINUEDC ICOLX AND IROWX ARE NEXT COL AND ROW EXPECTED IF WE READ A TOTALLY!C FILLED TABLE AREA'S SAVED FILE. 122 CONTINUE, IF(ICOL.LE.ICOLX.AND.IROW.LE.IROWX)GOTO 123C NEED TO FILL IN EMPTIES... WRITE(4,125)125 FORMAT('0,0',/,'NA') ICOLX=ICOLX+1 IF(ICOLX.LE.ICOLS)GOTO 124 ICOLX=1 IROWX=IROWX+1?C WRITE ANOTHER BOT RECORD AS NEEDED HERE (IN CASE WHOLE ROW ISC EMPTY)BC ONLY EMIT RECORD IF WE DIDN'T JUST FINISH THE LAST ROW THOUGH... IF(IROWX.LE.IROWS)WRITE(4,121) 124 CONTINUE GOTO 122 123 CONTINUE C OK, NOW HAVE THIS FILLED IN... IF(LET2.NE.'V')GOTO 128CC MUST ENSURE THAT THE EXPONENT IS NN.NNNEXX RATHER THAN NN.NNNNDXXDC I.E., D EXPONENTS AREN'T UNDERSTOOD. THEREFORE WRITE OUT E INSTEADC OF D. DO 200 IV=1,50 IF(FORM(IV).EQ.'D')FORM(IV)='E' 200 CONTINUE 128 CONTINUE. IF(LET2.EQ.'V')WRITE(4,126)(FORM(IV),IV=1,50)126 FORMAT('0,',50A1,/,'V')/ IF(LET2.NE.'V')WRITE(4,127)(FORM(IV),IV=1,109)127 FORMAT('1,0',/,109A1)C"C EMIT DATABASE FILE IF CALLED FOR7C THIS IS HERE TO MAKE PCC AND DIF FILES BE ON AN EQUAL9C FOOTING. NOTE THAT ESSENTIALLY ALL INFO ON THE PCC FILE:C IS SAVED IN THE DATABASE FILE EXCEPT TITLES AND MAPPING.C *** IFT=32+(ITYPE*4)+IVLD=C ADD UNIQUE CELL ID INDEX HERE. USE A FIXED CODE SINCE WE'RE%C NOT STORING IT CONTIGUOUSLY ANYHOW. ICW=ICOL IRW=IROW IDREC=(IRW-1)*1024+ICW+IDBASE2 IF(INDB.NE.0)WRITE(7,5219)IDREC,ICOL,IROW,AUXKEY, 1 (FORM(IV),IV=1,109)," 1 (FORM2(IV),IV=120,128),IFT'5219 FORMAT(I8.8,2I4.4,A8,109A1,9A1,A1)CC *** C GO BACK AND READ SOME MORE NOW ICOLI=ICOL IROWI=IROW ICOLI=ICOLI+1 IF(ICOLI.LE.ICOLS)GOTO 2120 ICOLI=1 IROWI=IROWI+1 WRITE(4,121) 2120 CONTINUE ICOLX=ICOLI IROWX=IROWI GOTO 118C 119 CONTINUE)C ALL DONE, SO MARK END DATA AND GO HOME.2C MUST BE SURE WE FILL OUT THE LAST TUPLE (ROW) SO)C WRITE "NA" RECORDS IF IT'S OK TO DO SO.. IF(IROWX.GT.IROWS.OR.ICOLX.GT.ICOLS)GOTO 9191 DO 9192 N=ICOLX,ICOLS WRITE(4,125)(C WRITE 'NA' RECORDS TO FILL OUT COLUMNS 9192 CONTI00VfVRRTADATADATADATADATADATANUE 9191 CONTINUE WRITE(4,129)129 FORMAT('-1,0'/,'EOD') CLOSE(UNIT=4) CLOSE(UNIT=3) GOTO 9990 1000 CONTINUECC DIF IN, PCC OUTC<C ASSUME DIF FILE STARTS WITH TABLE, VECTORS, TUPLES RECORDS READ(3,1001)DIFHDR1001 FORMAT(10A1) READ(3,1002)N1,N21002 FORMAT(I1,1X,I5) READ(3,7953)FORM2%C FORM2 GETS STRING OUT OF DIF RECORDCC GET RID OF " CHARACTERS 3211 CONTINUE N1=INDEX(CFORM2,'"')" IF(N1.LE.0.OR.N1.GT.127)GOTO 3212 FORM2(N1)=' ' GOTO 3211 3212 CONTINUE7 IF(DIFHDR(1).EQ.'T'.AND.DIFHDR(2).EQ.'A'.AND.DIFHDR(3)0 1 .EQ.'B')WRITE(4,1003)(FORM2(IV),IV=2,81)1003 FORMAT(80A1). IF(DIFHDR(1).EQ.'T'.AND.DIFHDR(2).EQ.'U'.AND.! 1 DIFHDR(3).EQ.'P')NROWS=N2. IF(DIFHDR(1).EQ.'V'.AND.DIFHDR(2).EQ.'E'.AND.! 1 DIFHDR(3).EQ.'C')NCOLS=N22 IF(DIFHDR(1).NE.'D'.OR.DIFHDR(2).NE.'A')GOTO 1000(C FALL THROUGH AFTER READING DATA RECORD;C HOPEFULLY WE NOW HAVE NUMBER OF ROWS AND COLUMNS EXPECTED C ALL STORED IN NROWS AND NCOLS. IROW=0 ICOL=0 1010 CONTINUE READ(3,7953,END=9900)FORM N1=0 IX=INDEX(CFORM,',')-1 IF(IX.LE.0)GOTO 8092 READ(CFORM,8090)N18090 FORMAT(I3) DO 8091 N=1,1238091 FORM(N)=FORM(N+IX+1) 8092 CONTINUE6C READ NUMBER VALUE IN A STRING SO WE CAN DECODE IT AS C NEEDED. READ(3,7961,END=9900)FORM27961 FORMAT(100A1,100A1)C READ A RECORDC N1 = -1 FLAGS SPECIAL RECORDS IF(N1.GE.0)GOTO 1020' IF(FORM2(1).EQ.'B'.AND.FORM2(2).EQ.'O'& 1 .AND.FORM2(3).EQ.'T')GOTO 10191 IF(FORM2(1).EQ.'E'.AND.FORM2(2).EQ.'O')GOTO 9900 GOTO 1010 1019 CONTINUE3C AT START OF TUPLE RESET COL TO 1 AND ROW BUMPS... IROW=IROW+1 ICOL=0 GOTO 1010C SKIP OVER NONDATA RECORDS 1020 CONTINUE!C NOW HAVE TO EMIT A DATA RECORD. IVLD=-1 IF(N1.EQ.0)IVLD=1 ICOL=ICOL+12 IF(IVLD.EQ.1.AND.FORM2(1).EQ.'N'.AND.FORM2(2).EQ. 1 'A') GOTO 1010:C SKIP 'NA' INVALID NUMBERS AND DON'T BOTHER WRITING THEM.8 IF(IVLD.EQ.1)WRITE(4,1030)ICOL,IROW,(FORM(IV),IV=1,110)9 IF(IVLD.LT.1)WRITE(4,1030)ICOL,IROW,(FORM2(IV),IV=1,110)$1030 FORMAT('P',I5,',',I5,',',128A1) ITYPE=26C FIGURE OUT TYPE BASED ON PRESENCE OR ABSENCE OF DOT./ IF(IVLD.GT.1.AND.INDEX(CFORM,'.').EQ.0)ITYPE=4 WRITE(4,1031)IVLD,DFMT,ITYPE1031 FORMAT(I3,',',A9,',',I5) IF(INDB.LE.0)GOTO 1010 IFT=32+(ITYPE*4)+IVLD4C WRITE OUT THE DIRECT ACCESS FILE FROM THE DIF FILE8C DIRECT ACCESS FILE OUGHT TO BE SUITABLE FOR DATATRIEVECC RECORD FORMAT IS:C 8 DIGITS - IDC 4 DIGITS - COLC 4 DIGITS - ROW%C 8 CHARACTERS - USER'S AUXILIARY KEYC 109 CHARS - FORMULAC 9 CHARS - FORMAT C 1 CHAR - ENCODED FVLD AND TYPEC<C NOTE DTR CANNOT HANDLE BINARY DATA. IT NEEDS ALL CHARACTER9C DATA. SO OUTPUT THE STUFF HERE AS CHARACTERS SO DTR CAN C ACCESS IT.C=C ADD UNIQUE CELL ID INDEX HERE. USE A FIXED CODE SINCE WE'RE%C NOT STORING IT CONTIGUOUSLY ANYHOW. ICW=ICOL IRW=IROW IDREC=(IRW-1)*1024+ICW+IDBASE IF(IVLD.EQ.1)GOTO 8544% WRITE(7,3219)IDREC,ICOL,IROW,AUXKEY,% 1 (FORM2(IV),IV=1,109),DFMT,IFT3C ENSURE NUMERIC FIELDS ARE ALL FILLED IN WITH 0'S.&3219 FORMAT(I8.8,2I4.4,A8,109A1,A9,A1) GOTO 1010 8544 CONTINUE% WRITE(7,3219)IDREC,ICOL,IROW,AUXKEY,$ 1 (FORM(IV),IV=1,109),DFMT,IFT GOTO 1010 9900 CONTINUE CLOSE(UNIT=4) CLOSE(UNIT=3) 510 CONTINUE9990 stop 'End DIFDB' 7000 CONTINUE(C HERE READ DB FILE AND WRITE A PCC FILE WRITE(6,103) READ(IOLVL,7953)FORM2 DO 8340 II=1,128 ILN=129-II% IF(ICHAR(FORM2(ILN)).GT.32)GOTO 8341 FORM2(ILN)=CHAR(0) 8340 CONTINUE 8341 CONTINUEC ILN IS LENGTH OFLINE NOW.A ILN=MIN0(ILN,127) FORM2(ILN+1)=CHAR(0) CALL WASSIG(4,FORM2)O WRITE(6,140)O READ(IOLVL,7953)FORM2 DO 8640 II=1,128 ILN=129-III% IF(ICHAR(FORM2(ILN)).GT.32)GOTO 8641l FORM2(ILN)=CHAR(0)i 8640 CONTINUE 8641 CONTINUEC ILN IS LENGTH OFLINE NOW.  ILN=MIN0(ILN,127) FORM2(ILN+1)=CHAR(0)a DO 1326 IV=1,80 LFN(IV)=ICHAR(FORM2(IV))f 1326 CONTINUEb 1327 CONTINUEC FILE MUST PRE EXIST HERE.I! IF(MODIF.EQ.ICHAR('V'))GOTO 3317f# OPEN(UNIT=7,FILE=LFN,STATUS='OLD',e5 1 00VKV }ORGANIZATION='SEQUENTIAL',RECORDTYPE='FIXED',e" 2 RECL=143,FORM='FORMATTED') GOTO 3316 3317 CONTINUEs# OPEN(UNIT=7,FILE=LFN,STATUS='OLD', 8 1 ORGANIZATION='SEQUENTIAL',RECORDTYPE='VARIABLE'," 2 RECL=143,FORM='FORMATTED') 3316 CONTINUEa4C NOW HAVE FILES OPEN. GET USER TO GIVE US THE TITLE%C ASK FOR AUXILIARY KEY. * MEANS ALL. Write(6,166)  Read(5,167)AK2t IRESET=0f ICOLAC=0 IROWAC=1l-C THE FOLLOWING CODE AND THE CODE AROUND 7116 7C IS DESIGNED TO ALLOW SAVED SHEETS TO BE RE-ORDERED INE5C A PCC FILE. THE USER PLACES WHAT DATA HE LIKES IN Ao3C DATABASE FILE, AND THEN GIVES THE SPECIAL KEYWORDR1C % IN THE AUXILIARY KEY. IF HE USES %*, THEN THER5C AUX KEY IS TREATED AS CONTAINING *; OTHERWISE IT ISHC ASKED FOR AGAIN.4C ONCE THE KEY IS OBTAINED, THE PROGRAM ASKS FOR THE7C NUMBER OF ROWS AND COLUMNS IN THE REGION BEING SET UPL6C AND WHEN THE PCC FILE IS BEING CREATED, RECORDS READ9C OFF THE DATABASE FILE ARE JUST READ SEQUENTIALLY IN THED;C ORDER OF THE PRIMARRY KEY (CELL ID) AND PLACED IN THE PCC:C FILE AS THOUGH THEY DENSELY FILLED THE UPPER LEFT REGION9C OF A SPREADSHEET, GOING ACROSS COLUMNS FIRST, THEN DOWNR1C ROWS (SO THE COLUMN INDEX VARIES MOST QUICKLY).C<C THIS ALLOWS SPREADSHEETS IN WHICH, SAY, 20 OR 30 NUMBERS9C ARE SAVED FROM ALL OVER THE PLACE TO BE REARRANGED INTO9C A DIFFERENT SUMMARY SHEET THAT IS, SAY, 30 COLUMNS WIDEx:C WITH EVERY SHEET SAVED AS A ROW OF THE SUMMARY. THE ONLY=C PREREQUISITE IS THAT THE ID BASE THAT GETS ADDED TO CELL IDR:C NEEDS TO BE BIG ENOUGH FOR ALL SHEETS AFTER THE FIRST SO=C THAT ALL SHEET 1 ID'S ARE FIRST, ALL SHEET 2 ID'S NEXT, ALL.C SHEET 3 ID'S NEXT, AND SO ON.  IF(AK2(1:1).NE.'%')GOTO 7111D IF(AK2(2:2).EQ.'*')AK2(1:1)='*'C % IS PART SYNONYM FOR */ IF(AK2(2:2).NE.'*')WRITE(6,166)" IF(AK2(2:2).NE.'*')READ(5,167)AK22C IF WE GET %* IT MEANS TAKE ALL AND ASK QUESTIONS%C IF WE GET JUST % WE ASK FOR NEW KEYO)C AGAIN AND THEN ASK FOR RESETTING LIMITSlCr IRESET=11 WRITE(6,7112)27112 FORMAT('$Enter No. Cols in region to build>') Read(5,7113)irstc7113 format(I6)] Write(6,7114)27114 Format('$Enter No. Rows in region to build>') Read(5,7113)irstr7c irstc and irstr are region that we pretend was saved.'" if(irstc.le.0)stop 'wrong colnos'" if(irstr.le.0)stop 'wrong rownos' 7111 CONTINUEP WRITE(6,7003)7003 FORMAT('$TITLE:') READ(5,7004)NMSHT7004 FORMAT(80A1)T WRITE(4,7004)NMSH-C NOW ALL SET FOR THE DATA ITSELF. GO GET IT.Y IRCT=0 7200 CONTINUEE<C FOR SEQUENTIAL FILE, FORGET ABOUT DIFFERENCES FROM INITIAL8C KEYED READ AND REMAINDER SEQUENTIAL; JUST DO THE WHOLE5C THING SEQUENTIALLY. NEVERTHELESS, THE RECORD FORMATB,C ALLOWS OTHER PROGRAMS TO ACCESS IT EASILY.- READ(7,7219,END=7501)IDREC,ICOL,IROW,AUXKEY,12 1 (FORM(IV),IV=1,109),(FORM(IV),IV=120,128), 2 LETA IRCT=1 IFT=ICHAR(LETA)-29O ITYPE=2*(IFT/8) IFT=IFT-4*ITYPE IVLD=IFT-3R#7219 FORMAT(I8,2I4,A8,109A1,9A1,A1)i3 IF((AUXKEY.NE.AK2).AND.(AK2(1:1).NE.'*'))GOTO 7200r-C ALLOW * TO READ FILE REGARDLESS OF AUX KEYS(C WRITE THE STUFF OUT NOW1 IF(IRESET.NE.0)GOTO 71165+ WRITE(4,1030)ICOL,IROW,(FORM(IV),IV=1,110)a. WRITE(4,7031)IVLD,(FORM(IV),IV=120,128),ITYPE7031 FORMAT(I3,',',9A1,',',I5) GOTO 7200 7116 CONTINUER ICOLAC=ICOLAC+1 IF(ICOLAC.LE.IRSTC)GOTO 7117. IROWAC=IROWAC+1 ICOLAC=1u 7117 CONTINUEN IF(IROWAC.GT.IRSTR)GOTO 7200E2C SKIP SAVE IF REGION IS TOO FAR DOWN FOR OUR USE./ WRITE(4,1030)ICOLAC,IROWAC,(FORM(IV),IV=1,110)I. WRITE(4,7031)IVLD,(FORM(IV),IV=120,128),ITYPE GOTO 7200 7501 CONTINUE= CLOSE(UNIT=4) CLOSE(UNIT=7) STOPL END SUBROUTINE WASSIG(IUNIT,FNAME)0 CHARACTER*1 FNAME(80) LOGICAL*1 FN(80)S CHARACTER*1 CFN(80) EQUIVALENCE(CFN(1),FN(1)) DO 1 N1=1,801 CFN(N1)=FNAME(N1)A& OPEN(UNIT=IUNIT,FILE=FN,STATUS='NEW',& 1 RECL=512,ACCESS='SEQUENTIAL', 1 CARRIAGECONTROL='LIST') RETURN' END SUBROUTINE RASSIG(IUNIT,FNAME)N CHARACTER*1 FNAME(80) LOGICAL*1 FN(80)R CHARACTER*1 CFN(80) EQUIVALENCE(CFN(1),FN(1)) DO 1 N1=1,80 1 CFN(N1)=FN00VVRRTADATADATADATADATADATAAME(N1)(& OPEN(UNIT=IUNIT,FILE=FN,STATUS='OLD',% 1 RECL=512,ACCESS='SEQUENTIAL')  RETURN  END SUBROUTINE DECLR(ITYP,RETCD)#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY. INCLUDE 'VKLUGPRM.FTN'C PARAMETER RRW = 32C PARAMETER RCL = 32C RRW=MAX REAL ROWSC RCL=MAX REAL COLS:C RRW MUST BE 1 LARGER TO HANDLE 1ST 27 VARIABLES IN AVBLS#C VBLS AND TYPE DIMENSIONED RRW,RCL4C **************************************************4C * *4C * SUBROUTINE DECLR (ITYP,RETCD) *4C * *4C **************************************************CC<C ANALYZES VECTOR LINE TO DETERMINE WHAT VARIABLES GET THEIR<C TYPES CHANGED. THE NEW TYPE IS SPECIFIED AS AN ARGUMENT IN C THE CALL:CC C TYPE CODE C 1 ASCII0C 2 DECIMAL (REAL BUT DECIMAL POINT FOR OUTPUT)C 3 HEXADECIMAL C 4 INTEGER!C 5 MULTIPLE PRECISION (BASE 10) C 6 MULTIPLE PRECISION (BASE 8)!C 7 MULTIPLE PRECISION (BASE 16) C 8 OCTAL C 9 REALC0C IF NEGATIVE, TYPE IS DEFINED BUT VARIABLE HASC NOT BEEN ASSIGNED A VALUECCC RETCD MEANINGC 1 = O.K.C 2 = ERRORCDC NOTE: AS IN FORTRAN, VARIABLES IN DECLARATIONS MUST BE SEPARATEDC BY COMMASCCC MODIFICATION CLASSES: M1, M2CCCCC DECLR CALLS:C!C ERRMSG PRINTS ERROR MESSAGESCCC=C DECLR IS CALLED BY CMND, THE ROUTINE THAT DECODES COMMANDS.CCCCC VARIABLE USECCC ALPHA LIST OF LEGAL VARIABLE NAMES. THE FIRST 26 ARE?C ALPHABETIC, THE 27TH IS THE CHARACTER '%'.C BLANK ' '&C I,I2,I3 TEMPORARY VALUES.?C ITYP CODE THAT GIVES THE TYPE OF VARIABLE FOR ACC PARTICULAR CALL TO THIS ROUTINE. VARIABLES AREAC EITHER DECLARED TO BE OF THIS TYPE OR, IF NO?C VARIABLES ARE SPECIFIED, A LIST OF ALL THE6C VARIABLES OF THAT TYPE ARE GIVEN.7C LEND LAST NON-BLANK IN VECTOR LINE(80).AC LINE(80) HOLDS INPUT COMMAND LINE. IF DECLARATION HASDC NO ARGUMENT, THIS VECTOR IS THEN USED TO OUTPUT?C A LIST OF VARIABLES OF THE TYPE SPECIFIED.1C NONBLK START SCAN OF VARIABLE LIST.;C TYPE HOLDS THE TYPE CODE FOR EACH VARIABLE.CCCCCCC C SUBROUTINE DECLR(ITYP,RETCD) INTEGER*2 LEVEL,NONBLK,LEND& INTEGER*2 RETCD,VIEWSW,BASED,VLEN(9) INTEGER*2 TYPE(RRWP,RCLP) INTEGER*2 I,I2,I3,ITYPC3 LOGICAL*1 LINE(80),AVBLS(20,27),VBLS(8,RRWP,RCLP)- LOGICAL*1 ALPHA(27),COMMA,BLANK,RPAR,LPAR,EQC COMMON /V/TYPE,AVBLS,VBLS,VLEN- COMMON /CONS/ALPHA,COMMA,BLANK,RPAR,LPAR,EQ+ COMMON LEVEL,LINE,NONBLK,LEND,VIEWSW,BASEDCCC IF(NONBLK.EQ.LEND)GO TO 500CC4C **************************************************4C ****** DECLARE VARIABLES TO BE OF TYPE ITYP ******4C ************************************************** I2=NONBLK+1 10 CONTINUE"C10 IF (LINE(I2).EQ.BLANK) GOTO 60C DO 20 I3=1,26$C IF (LINE(I2).EQ.ALPHA(I3)) GOTO 30 C20 CONTINUE,C *****&&&&& ADD VARIABLE SIZE SUPPORT - GCE0 CALL VARSCN(LINE,I2,LEND,LSTCHR,ID1,ID2,IVALID)CC VARSCN SEARCHES FOR VALID VARIABLE NAME STRINGS INCLUDING C$+EXPRLC AND R$+EXPR FOR LOC-RELATIVE NAMES IN ABSOLUTE AND C@+N, R@+N FOR RELATIVE>C NAMES IN DISPLAY SYSTEM. IT RETURNS THE ID1, ID2 INDICES FOR?C THE VARIABLES IN VBLS ARRAY AND TYPE ARRAY. FOR 00VV }SINGLE ALPHAS;C A-Z, ID1 RETURNS 1-26 AND ID2=1. % RETURNS ID1=27, ID2=1. IF(IVALID.EQ.0) GOTO 22:C VALID FLAG IS NONZERO IF VARIABLE NAME IS VALID, ELSE 0. I2=LSTCHR'C LSTCHR RETURNS LAST CHARACTER OF NAME GOTO 30C3C ILLEGAL CHARACTER IN DECLARATION'S VARIABLE LIST22 I=4CCCC ******* ERROR RETURN ******* 25 RETCD=2 CALL ERRMSG(I) RETURNCCCC 30 CONTINUE@C IF OLD VARIABLE WAS UNDEFINED, MAKE NEW TYPE LESS THAN 0 ALSO.?C THIS ALLOWS ONE TO EXAMINE INTERNAL VALUES FOR DIFFERENT DATABC TYPES. IF THIS IS NOT NEEDED, IT WOULD BE CLEANER TO ALWAYS MAKEAC VARIABLES UNDEFINED WHEN THEIR DATA TYPE IS CHANGED. TO DO THISC JUST USE THE STATEMENT C I=-ITYP I=ITYP C ****&&&&&& NOTE TYPE NOW 2-DIM CALL TYPGET(ID1,ID2,TYPE(1,1)) IF(TYPE(1,1).LE.0)I=-I CALL TYPSET(ID1,ID2,I)C TYPE(ID1,ID2)=I I3=I2+1 IF (I3.GT.LEND) GOTO 1000 DO 40 I2=I3,LEND IF (LINE(I2).EQ.BLANK) GOTO 40 IF (LINE(I2).EQ.COMMA) GOTO 45C#C VARIABLES NOT SEPARATED BY COMMAS I=5 GO TO 25 40 CONTINUE GOTO 100045 IF (I2.EQ.LEND) GOTO 22 60 I2=I2+1 IF (I2.LE.LEND) GOTO 10 GO TO 1000CCCCCCHC **********************************************************************HC ** NO ARGUMENTS SO SHOW WHAT VARIABLES HAVE BEEN DECLARED THAT TYPE **HC ********************************************************************** 500 CONTINUE IF(VIEWSW.EQ.0) GO TO 10000C PERHAPS THE ABOVE LINE SHOULD BE REMOVED (???)CCC BLANK OUT OUTPUT LINE. DO 510 I=1,80510 LINE(I)=BLANKCCHC SEARCH FOR VARIABLES OF TYPE ITYP. PUT THEM IN LINE(I2) WHEN FOUND FORC LATER PRINTING. I2=0 DO 550 I=1,27C FAKE UP DISPLAY C ****&&&&& CALL TYPGET(I,1,TYPE(1,1))% IF(IABS(TYPE(1,1)).NE.ITYP)GO TO 550 I2=I2+1 LINE(I2)=ALPHA(I) 550 CONTINUECCHC GO TO SECTION APPROPRIATE FOR PRINTING EITHER THE LIST OF VARIABLES OR:C A MESSAGE INDICATING THAT NO VARIABLES ARE OF THAT TYPE. IF(I2.EQ.0) GO TO 600CC)C OUTPUT A LIST OF VARIABLES OF TYPE ITYP WRITE(1,560) (LINE(I),I=1,I2),560 FORMAT(' VARIABLES SO DECLARED = ',30A1) GO TO 1000CCCCC NO VARIABLES OF THAT TYPE600 WRITE(1,610)(610 FORMAT(' NO VARIABLES OF THAT TYPE')CCCC **** NORMAL RETURN **** 1000 RETCD=1 RETURN ENDDIF Read / Write / DB ccess=The DIFDB program is able to convert DIF files to AnalytiCalc<(PortaCalc) save files, or to convert AnalytiCalc save files>to DIF files. Conventionally, AnalytiCalc save files are named8file.PCC and DIF files are named file.DIF. The program'sprompts use this convention.4 The program can also generate database files usable6by Datatrieve (or other databases) in an RMS ISAM file;from either PCC or DIF files. See the section on ISAM FILES?below for discussion. The program is also capable of extracting8PCC files from databases. See the Extract section below.4 To run the program, just RUN DIFDB on VAX or PDP11;on PC, just type DIFDB.3 The progam asks whether you want to Read DIF files7to PCC files or Write DIF files from PCC files. Reply R9or W to select one. For database files it allows two more9options, D and P to write databases from DIF or PCC files9respectively. It will ask more questions if these options;are chosen. You may also reply X to extract a PCC file froma database file.7 If you chose R or W, the program then asks for the DIF>filename and the PCC (AnalytiCalc) filename to use. Enter eachin response to the prompt.7 If you said you wanted to Write DIF files, the programAasks whether to emit Values or Formulas. DIF is less general than>the normal AnalytiCalc save output, and the program can either@select the numerical value of each cell for the DIF file (useful?for graphing programs and the like) or the cell formula (useful=for 00VVRRTADATADATADATADATADATAmoving to other spreadsheet type programs or for archival>purposes). Select F or V. In a sense, the formula save is more>general since it can be made again into a spreadsheet and once:computable cells are made numeric again, the values can be<recalculated. However, both are available. Use whichever youneed.6 If you said you wanted to Read DIF files (and write a;file for AnalytiCalc), the DIF format does not preserve the<formatting information for cells. The program therefore asks<for a default format to use. This can be any 9 characters of9Fortran format you like. Use the F9.2 format (i.e., reply;"F9.2", without the quotes) if you are uncertain of what to?use. This format will be placed in each cell of the AnalytiCalc saved sheet.9 Some processing done by AnalytiCalc to flag numeric-only>cells is not done here, so spreadsheets loaded by this utilityAwill compute more slowly than native AnalytiCalc ones will. Dummy<EDits in AnalytiCalc to any cells that are pure numeric will1reset the flags so that speedups can be realized.9 It should be further noted that the DIF format is rather=inefficient in that it assumes that the area to be saved is a>complete rectangular region. DIFDB will fill in any cells that=are not really there with the NA numeric code, and on loading;back to an AnalytiCalc file, will discard all NA cells. The?result is that DIF saved sheets can be considerably larger thanAnalytiCalc saved files.9 All cells are treated equally here and the resulting DIFDfiles contain either number values or string values. This limitationBof DIF format is the reason why you must be asked whether you wantDformulas or values from your AnalytiCalc saved sheet. The two cannotbe piggybacked.9 Nevertheless, this utility provides a fairly easy to use<way of converting AnalytiCalc data for other programs, or of<getting data from other utilities in a form that AnalytiCalc can load. One final note:8 AnalytiCalc V18-04F is the first version of AnalytiCalc:that will work with this utility in converting AnalytiCalc;files to DIF files. If you have old .PCC files, reload them;and save them with the new AnalytiCalc to get this to work.;The cells used to be saved down columns first; now they are:saved across rows first. This has no effect on AnalytiCalc>since each record has its address, but makes conversion to DIF?of the old files quite difficult, since DIF files are specifiedto be saved across rows. Glenn Everhart 8/9/85 ISAM FILES; The DIFDB program, for VAX and PDP11, allows you to create>files suitable for use as a DTR domain. You enter this mode by<replying D or P to the question about reading or writing DIF>files. A reply of D means read a DIF file onto a database, and?a reply of P means read a PCC (PortaCalc) file onto a database.9 When you tell the program you want one of these options,@it first enters a customization section for some extra data. The;belief is that you may want to combine data from many saved;spreadsheets into a domain. Since this data will have to be<distinguishable somehow for you to keep track of it, you are>asked to enter an auxiliary key of up to 8 characters. You can=use numeric characters here (and in DTR) and treat this field=as numeric, or any alphas and treat it as an alphanumeric key>in DTR. The program will accept any 8 characters and make them7a secondary key in addition to the ones it has already.9 The program computes a primary index from row and columnnumbers by the formula* Index=(row number-1)*1024 + column number>and uses that as the database file's primary index. This indexAmay not have duplicates. To allow multiple sheets to be combined,?the program asks for a cell ID base to use. This is read with a;format permitting up to 8 digits and should be large enough?to ensure cell IDs from the new sheet don't conflict with those?from the old ones in your file if any. You may reply 0. If your?reply is nonzero and below 65536 in absolute value, the program>will warn you that conflicts00VV } could occur and give you a chance>to confirm or deny you want the value you picked. If you reply>N, the program exits and you can run it again without damaging8your files. You must be sure there will be no conflicts.9 The program then asks for the filename of the input file<and the output file. Once you enter the name of the database<output file, the program will ask you to tell whether it's a?new or old file. If it's an old file, an existing database file'will be opened for update and added to.9 The program will then ask for the additional information@needed for complete information in the file. It will ask whether;to write values or formulas if a PCC file, or for a defaultdisplay format if a DIF file.6 Then it will perform the desired file write and exit.8 On VMS, console reads are from SYS$INPUT and writes are5to SYS$OUTPUT to allow batch or command file control. Database Extraction (X option)6 If you said you wanted option X, the program asks you=for the names of your PCC and database files. Because you may>want to extract a PCC file only from one of the files that may;have been merged into a data file for DTR, the program asks?for an auxiliary key as it did when creating the database file.>Only records in the data file matching that key are written to<the output. However, if you reply with a * to that question,2all records in the database file will be selected.> The program next asks you for a title line for the save (PCC)#file. Just enter any desired title.; It then extracts the data and creates (recreates) the .PCCCfile from the data file. Note the type of file recreated is similar=to the result of an AnalytiCalc PPF or PPN command, dependingFon whether Formulas or Values were selected in the pass that initiallycreated the database file.9 If in the X option you entered a * as the auxiliary key,Aall auxiliary keys are selected. If however you enter a % or a %*7you enter the "Squash PCC File" section of the program.7 The idea is that if you have 40 spreadsheets that haveC50 numbers each that you saved and you want to be able to summarize?them more simply, you might want to reshape the storage so that;you have a sheet of 50 columns and 40 rows, with each row a=complete spreadsheet save and each column one of the numbers.BThen you can use graphics tools and the like to display variations+of the numbers with respect to one another.; When you enter %*, the key is replaced by just * to select@all auxiliary keys. If you enter anything other than * after the3%, the program asks you again for an auxiliary key.8 Then the program asks for the dimensions of the area of;the spreadsheet to be created. (In the example, we'd say 50=columns and 40 rows.) You enter the numbers; the program will8be happy with any so long as they are greater than zero.5 Now, as in the normal dump, DIFDB reads the database=file in the order of cell IDs and writes a PCC file. However,8instead of using the original row and column numbers, it;makes new ones starting at A1, B1, C1, D1, ..., A2, B2, C2,9D2, ... going across for as many columns as you specified:and down as many rows as you specified (or less if it runs>out of data first). The original cell coordinates are ignored.?(This is likely to be useless for formulas of course, but where*the data is just values, it can be handy.)6 To ensure that this produces the result spoken of, it9would only be necessary to ensure that the second sheet's7cell IDs were larger than any in the first, the third's9larger than any in the second, and so on. This is done by;specifying a large ID base to add. If there are 100 rows or:columns in the sheets, one might add 1000000 for the first<sheet, 2000000 for the second, and so on by specifying those<as the ID bases to use. The actual base does not matter, but<the cell index must NOT overlap or this technique will fail.:Luckily, it's pretty easy to ensure it won't when buildingthe database file for DTR.00VVRRTADATADATADATADATADATA#DEFINE DOMAIN DIFDB USING DIFDB_REC ON DIFDB_FILE;DEFINE RECORD DIFDB_REC USING 01 DIFDB_REC. 05 ID PIC IS S9(8)' EDIT_STRING IS -Z(7)9. 05 C PIC IS S9(4)' EDIT_STRING IS -Z(3)9. 05 R PIC IS S9(4)' EDIT_STRING IS -Z(3)9. 05 AUXKY PIC X(8). 05 FRMLA PIC X(109). 05 DFMT PIC X(9). 05 CODE PIC X(1).;DEFINE FILE FOR DIFDB- KEY = ID (NO DUP),- KEY = C (DUP,CHANGE),- KEY = R (DUP,CHANGE),- KEY = AUXKY (DUP,CHANGE)1C PROGRAM TO READ/WRITE DIF FILES FROM .PCC FILEScc Compilation:c FORTRAN/NOCHECK/NODEBUG DIFRWc Link:c LINK/NOMAP DIFRWc4c Reads DIF files into AnalytiCalc save format files1c or reads AnalytiCalc save files into DIF files.3c Note that the version of AnalytiCalc must be the2c new one that saves across rows rather than down*c columns for the latter ability to work.cc8c ADD SPECIAL "D" OPTION TO WRITE ISAM FILE OUT FOR DTR.C9C D AND P OPTIONS write out database files and ask for an8c auxiliary key which can then be used in DTR retrievals7c for file access where multiple sheet files are storedc in the same DTR domain.c;c Currently no tools are provided to extract PCC files from7c DTR domains, but all info (well, almost all) is there3c and could be extracted except mappings and title.C&c Copyright (c) Glenn C. Everhart 1985-c Noncommercial use permitted, but for-profitc distribution prohibited.c CHARACTER*1 FORM,FVLD INTEGER*4 VNLT* CHARACTER*1 LET1,LET2,FORM2(128),NMSH(80) CHARACTER*1 DIFHDR(10) COMMON/NMSH/NMSH INTEGER*2 IOLVL DIMENSION FORM(128),FVLD(1,1) CHARACTER*1 FVWRK,FVWRK2AC FVLD FLAG 0 = NO FORMULA, -1= DISPLAY FORMULA ITSELF, NOT VALUE=C 1=VALID ACTIVE FORMULA THERE TO EVALUATE. INITIALLY ALL 0'SC SO INITIALLY IGNORE.?C FVLD=2 = CONST NUMERIC ONLY, COMPUTED. =3, CONST, NEEDS CALC.CDC ROUTINE IN2AS COMPUTES ASCII CHARACTER NAMES OF SUBSCRIPTS IN1,IN2=C SO DISPLAY CAN HAVE THEM. IT MUST BE THE INVERSE OF VARSCN. CHARACTER*1 LETA CHARACTER*127 CFORM,CFORM2 EQUIVALENCE(CFORM,FORM(1)) EQUIVALENCE(CFORM2,FORM2(1)) LOGICAL*1 LFN(80) INTEGER*4 IDREC,ICW,IRW integer*2 nrows,ncols character*9 DFMT character*8 auxkey,AK2 integer*4 idbase8C ENCODE ICREF, IRREF AND CWIDS PAST TITLE IN FIRST LINE8C (THAT WAY, NOTHING BREAKS IN OTHER PGMS THAT USE THIS)CC PUT NUMBERS OUT TO FILE%C USES RELATIVE FORMS TO CURRENT POS.;C PD = PUT OURT DISPLAY SHEET. PP = PUT OUT PHYSICAL SHEET.&C ONLY WRITES PHYSICALLY PRESENT DATA."C P/D RRR,CCC,FORMULA,VALID,FORMAT6C N IN 3RD CHR (PPN/PDN) SAVES NUMBERS, ELSE FORMULAS. IOLVL=5, OPEN(UNIT=5,FILE='SYS$INPUT:',STATUS='OLD')- OPEN(UNIT=6,FILE='SYS$OUTPUT:',STATUS='NEW') WRITE(6,101)9101 FORMAT(' Read DIF file to PCC or Write DIF file from'" 1 ,' PCC or Read DIF to DB',. 2 /,'$or Read PCC to DB or extract PCC ' 3 'from DB [R/W/D/P/X]:') READ(5,7953)FORM2 INDIF=1. IF(FORM2(1).EQ.'R'.OR.FORM2(1).EQ.'r')INDIF=00 IF(FORM2(1).EQ.'X'.OR.FORM2(1).EQ.'x')GOTO 7000 INDB=0- IF(FORM2(1).EQ.'D'.OR.FORM2(1).EQ.'d')INDB=1- IF(FORM2(1).EQ.'P'.OR.FORM2(1).EQ.'p')INDB=2;C IF READING PCC FILE TO DTR TYPE FILE JUST FAKE THAT WE'RE8C READING PCC FILES. IF READING DIF FILE TO DTR FILE SAYC WE'RE READING DIF FILES. IF(INDB.EQ.1)INDIF=0 IF(INDB.EQ.2)INDIF=1 IF(INDB.EQ.0)GOTO 165;C GET HOLD OF AUXILIARY KEY (FOR USE WHEN CROSS REFERENCING2C MULTIPLE DATABASE FILES) AND OF ID BASE IF NOT 0 WRITE(6,173)8173 FORMAT(' Cus00VV }tomization Section - allows you to diff'2 1 'erentiate this DB section from others',/, 2 ' within the file:') Write(6,166)3166 FORMAT('$ Enter auxiliary key, up to 8 chars>') Read(5,167)auxkey167 format(a8) Write(6,168)/168 Format('$Enter desired cell ID base or 0>') Read(5,169)idbase169 format(i8)" if(iabs(idbase).gt.65536)goto 165 IF(IDBASE.EQ.0)GOTO 165 write(6,170);170 format(' Warning - ID base may conflict with cell IDs') Write(6,171)6171 format('$Are you sure you want to use it? [Y/N]:') Read(5,172)leta172 format(1a1)1 if(leta.ne.'y'.and.leta.ne.'Y')stop 'OK. Rerun.' 165 CONTINUE+C DON'T BOTHER WITH DIF FILE UNLESS NEEDED. IF(INDB.EQ.2)GOTO 155 WRITE(6,102)#102 FORMAT('$ Enter DIF filename>') III=IOLVL$ READ(III,7953,END=510,ERR=510)FORM27953 FORMAT(128A1) DO 6940 II=1,128 ILN=129-II% IF(ICHAR(FORM2(ILN)).GT.32)GOTO 6941 FORM2(ILN)=CHAR(0) 6940 CONTINUE 6941 CONTINUEC ILN IS LENGTH OFLINE NOW. ILN=MIN0(ILN,127) FORM2(ILN+1)=CHAR(0)# IF(INDIF.EQ.0)CALL RASSIG(3,FORM2)# IF(INDIF.NE.0)CALL WASSIG(4,FORM2) GOTO 157 155 CONTINUE9C LEAVE DUMMY DIF OUTPUT OPEN SO WRITES DON'T ALL HAVE TOC BE TESTED...' OPEN(UNIT=4,FILE='NLA0:',STATUS='NEW', 1 RECL=512) 157 CONTINUE!C LUN 3 IS INPUT, LUN 4 IS OUTPUTC NOW GET PCC FILENAME' IF(INDB.EQ.0.OR.INDB.EQ.2)WRITE(6,103) IF(INDB.EQ.1)WRITE(6,140)#103 FORMAT('$ Enter PCC filename>').140 FORMAT('$ Enter Database Data File name>') READ(IOLVL,7953)FORM2 DO 6340 II=1,128 ILN=129-II% IF(ICHAR(FORM2(ILN)).GT.32)GOTO 6341 FORM2(ILN)=CHAR(0) 6340 CONTINUE 6341 CONTINUEC ILN IS LENGTH OFLINE NOW. ILN=MIN0(ILN,127) FORM2(ILN+1)=CHAR(0)# IF(INDIF.ne.0)CALL RASSIG(3,FORM2)1 IF(INDB.EQ.0.AND.INDIF.eq.0)CALL WASSIG(4,FORM2)3C IF WE'RE READING PCC FILES, PCC FILE ALREADY OPEN7C BUT IF WRITING DB FILES FROM DIF FILES, NEED TO DUMMY C THE PCC FILE OPEN HERE. DO SO.4 IF(INDB.EQ.1)OPEN(UNIT=4,FILE='NLA0:',STATUS='NEW', 1 RECL=512)+C IF INDB USED, FORGET OUTPUT TO .PCC FILE."C FIRST GET THE FILENAME IF INDB=2 IF(INDB.NE.2)GOTO 156 WRITE(6,140):C GET THE FILENAME HERE AND MAKE SURE IT'S NULL TERMINATED9C (DON'T USE Q FORMAT TO MAKE THIS PROGRAM EASIER TO MOVE#C TO COMPILERS THAT DON'T HAVE IT.)& READ(IOLVL,7953,END=510,ERR=510)FORM28C JUST ZOT OUT TRAILING WHITESPACE BY NULLING BEYOND IT. DO 5340 II=1,128 ILN=129-II3C STOP ON FIRST CHARACTER THAT CAN'T BE WHITESPACE.4C NOTE THAT THIS GIVES UNIFORM RESULTS EVEN IN WEIRD+C OTSs THAT PASS THE C.R. OR EVEN THE CRLF.% IF(ICHAR(FORM2(ILN)).GT.32)GOTO 5341 FORM2(ILN)=CHAR(0) 5340 CONTINUE 5341 CONTINUEC ILN IS LENGTH OFLINE NOW. ILN=MIN0(ILN,127) FORM2(ILN+1)=CHAR(0) 156 CONTINUEc7c provide option to open file in 'unknown' status (i.e.-c allow adding to existing ones) if desired. IF(INDB.EQ.0)GOTO 3214 WRITE(6,141)5141 FORMAT('$ Enter N for New file, O for Old file>') Read(5,7953)leta DO 3216 IV=1,80 LFN(IV)=ICHAR(FORM2(IV)) 3216 CONTINUE 3217 CONTINUE) if(leta.NE.'n'.and.leta.ne.'N')goto 32159c he says it's new file; open it that way (i.e., create a%c new version if one already exists.)# OPEN(UNIT=7,FILE=LFN,STATUS='NEW',A 1 ORGANIZATION='INDEXED',ACCESS='KEYED',RECORDTYPE='FIXED',1 2 KEY=(1:8,9:12,13:16,17:24),RECL=143,FORM= 1 'FORMATTED') goto 3214 3215 continue:C USE STATUS UNKNOWN SO THAT A NEW FILE WILL BE CREATED IFC NONE EXISTS.' OPEN(UNIT=7,FILE=LFN,STATUS='UNKNOWN',A 1 ORGANIZATION='INDEXED',ACCESS='KEYED',RECORDTYPE='FIXED',1 2 KEY=(1:8,9:12,13:16,17:24),RECL=143,FORM= 1 'FORMATTED') 3214 CONTINUE0C WRITE ROW#,COL#,FVLD,TYPE,FORMAT,FORMULA,IJUNK=c Now both files are opened and all set, and INDIF flag tells;c whether the DIF file is the input or the output (0=input)cAc Now since DIF files don't have a valid format, if we're reading6c DIF and writing PCC files, ask for a display format. IF (Indif.ne.0)goto 105 Write(6,106)-106 Format('$ Enter 00VVRRTADATADATADATADATADATAdisplay format, no ().>') Read(5,107)DFMTc may need to change format...107 Format(A9) GOTO 1000 105 Continue WRITE(6,900).900 FORMAT('$ Emit Values or Formulas [V/F]:') Read(5,7953)let2 IF(LET2.EQ.'v')LET2='V'=c LET2 tells us whether to emit Values or "Labels" in the DIF c file.../C AT 1000 HANDLE READING DIF FILES TO PCC FILES-C NEXT HANDLE READING PCC FILES TO DIF FILES.CC PCC IN, DIF OUTC<C FIRST PASS: READ IN PCC FILE TO SEE HOW MANY ROWS AND COLS(C ARE THERE SINCE THAT'S NEEDED FOR DIF. NCOLS=0 NROWS=0( READ(3,6951,END=9990,ERR=9990)NMSH,FORM6951 FORMAT(100A1,100A1,100A1) 1107 CONTINUE%C7955 FORMAT('P',I5,',',I5,',',128A1)6C READ THE DATA AND KEEP MAXIMA FOR ROW, COL UNTIL EOF0 READ (3,108,END=109,ERR=109)LETR,ICOL,IROW,FORM NCOL=ICOL NROW=IROW!108 FORMAT(1A1,I5,1X,I5,1X,128A1)7956 FORMAT(I3,',',9A1,',',I5)7C NOTE SOME FORTRANS NEED TO USE 1X IN READ FORMAT, NOT%C JUST USE SAME AS WRITE FORMAT HERE.4 READ(3,7956,END=109,ERR=109)IVLD,(FORM2(IV),IV=120, 1 128),ITYPE IF(LETR.EQ.'M')GOTO 1097C DON'T BOTHER WITH MAPPING RECORDS WHICH ARE AT END... IF(LETR.NE.'P')GOTO 1107 IF(NCOL.GT.NCOLS)NCOLS=NCOL IF(NROW.GT.NROWS)NROWS=NROW GOTO 1107 109 CONTINUEC NOW HAVE DIMENSIONS... REWIND 3 WRITE(6,5000)NCOLS,NROWS:5000 FORMAT(' NUMBER OF COLS FOUND=',I6,';NUMBER OF ROWS=' 1 ,I6). IF(NCOLS.LE.0.OR.NCOLS.GT.999)STOP 'COLS ERR'. IF(NROWS.LE.0.OR.NROWS.GT.999)STOP 'ROWS ERR'8C PASS THROUGH THE FILE ONCE TO BE SURE ROWS AND COLUMNS C WILL FIT...( READ(3,6951,END=9990,ERR=9990)NMSH,FORM6C NOW EMIT TABLE RECORD USING TITLE OF SHEET AS STRING WRITE(4,110)110 FORMAT('TABLE',/,'0,1') WRITE(4,111)(NMSH(IV),IV=1,75)111 FORMAT('"',75A1,'"');C VECTORS IS DIF SLANG FOR COLUMNS. EMIT NUMBER OF VECTORS. WRITE(4,112)NCOLS&112 FORMAT('VECTORS',/,'0,',I3,/,'""')<C NEXT WRITE TUPLES RECORD WHICH IS BASICALLY NUMBER OF ROWS WRITE(4,113)NROWS%113 FORMAT('TUPLES',/,'0,',I3,/,'""') WRITE(4,114)!114 FORMAT('DATA',/,'0,0',/,'""')@C WE ASKED EARLIER FOR LET2 TO BE V FOR VALUES OR F FOR FORMULASC TO TELL WHICH TO EMIT.(C NOW GO THROUGH AND HANDLE THE STUFF... ICOLI=0 IROWI=1 ICOLS=NCOLS IROWX=1 ICOLX=1 IROWS=NROWS WRITE(4,121)121 FORMAT('-1,0',/,'BOT') 118 CONTINUE0 READ (3,108,END=119,ERR=119)LETR,ICOL,IROW,FORM NCOL=ICOL NROW=IROW4 READ(3,7956,END=119,ERR=119)IVLD,(FORM2(IV),IV=120, 1 128),ITYPE?C ONLY ACCEPT P OR p TYPE RECORDS (ONLY ONE, DEPENDING ON LET1)( IF(LETR.NE.'P'.AND.LET2.NE.'V')GOTO 118( IF(LETR.NE.'p'.AND.LET2.EQ.'V')GOTO 118C HERE WE KNOW WE'RE LEGALDC SINCE THE NEW VERSIONS OF ANALYTICALC GENERATE DATA ACROSS COLUMNS9C FIRST (I.E., ALONG TUPLES), JUST KEEP TRACK OF LAST ONE$C READ AND FILL IN NULLS IF WE MUST.C ICOLX=ICOLX+1C IF(ICOLX.LE.ICOLS)GOTO 120 C ICOLX=1C IROWX=IROWX+1 C120 CONTINUEDC ICOLX AND IROWX ARE NEXT COL AND ROW EXPECTED IF WE READ A TOTALLY!C FILLED TABLE AREA'S SAVED FILE. 122 CONTINUE, IF(ICOL.LE.ICOLX.AND.IROW.LE.IROWX)GOTO 123C NEED TO FILL IN EMPTIES... WRITE(4,125)125 FORMAT('0,0',/,'NA') ICOLX=ICOLX+1 IF(ICOLX.LE.ICOLS)GOTO 124 ICOLX=1 IROWX=IROWX+1?C WRITE ANOTHER BOT RECORD AS NEEDED HERE (IN CASE WHOLE ROW ISC EMPTY)BC ONLY EMIT RECORD IF WE DIDN'T JUST FINISH THE LAST ROW THOUGH... IF(IROWX.LE.IROWS)WRITE(4,121) 124 CONTINUE GOTO 122 123 CONTINUE C OK, NOW HAVE THIS FILLED IN... IF(LET2.NE.'V')GOTO 128CC MUST ENSURE THAT THE EXPONENT IS NN.NNNEXX RATHER THAN NN.NNNNDXXDC I.E., D EXPONENTS AREN'T UNDERSTOOD. THEREFORE WRITE OUT E INSTEADC OF D. DO 200 IV=1,50 IF(FORM(IV).EQ.'D')FORM(IV)='E' 200 CONTINUE 128 CONTINUE. IF(LET2.EQ.'V')WRITE(4,126)(FORM(IV),IV=1,50)126 FORMAT('0,',50A1,/,'V')/ IF(LET2.NE.'V')WRITE(4,127)(FORM(IV),IV=1,109)127 FORMAT('1,0',/,109A1)C"C EMIT DATABASE FILE IF CALLED FOR7C THIS IS HERE TO MAKE PCC AND DIF FILES BE ON AN EQUAL9C FOOTING. NOTE THAT ESSENTIALLY ALL INFO ON THE PCC FILE:C IS SAVED IN THE DATABASE FILE EXCEPT TITLES AND MA00VV }PPING.C *** IFT=32+(ITYPE*4)+IVLD=C ADD UNIQUE CELL ID INDEX HERE. USE A FIXED CODE SINCE WE'RE%C NOT STORING IT CONTIGUOUSLY ANYHOW. ICW=ICOL IRW=IROW IDREC=(IRW-1)*1024+ICW+IDBASE2 IF(INDB.NE.0)WRITE(7,5219)IDREC,ICOL,IROW,AUXKEY, 1 (FORM(IV),IV=1,109)," 1 (FORM2(IV),IV=120,128),IFT'5219 FORMAT(I8.8,2I4.4,A8,109A1,9A1,A1)CC *** C GO BACK AND READ SOME MORE NOW ICOLI=ICOL IROWI=IROW ICOLI=ICOLI+1 IF(ICOLI.LE.ICOLS)GOTO 2120 ICOLI=1 IROWI=IROWI+1 WRITE(4,121) 2120 CONTINUE ICOLX=ICOLI IROWX=IROWI GOTO 118C 119 CONTINUE)C ALL DONE, SO MARK END DATA AND GO HOME.2C MUST BE SURE WE FILL OUT THE LAST TUPLE (ROW) SO)C WRITE "NA" RECORDS IF IT'S OK TO DO SO.. IF(IROWX.GT.IROWS.OR.ICOLX.GT.ICOLS)GOTO 9191 DO 9192 N=ICOLX,ICOLS WRITE(4,125)(C WRITE 'NA' RECORDS TO FILL OUT COLUMNS 9192 CONTINUE 9191 CONTINUE WRITE(4,129)129 FORMAT('-1,0'/,'EOD') CLOSE(UNIT=4) CLOSE(UNIT=3) GOTO 9990 1000 CONTINUECC DIF IN, PCC OUTC<C ASSUME DIF FILE STARTS WITH TABLE, VECTORS, TUPLES RECORDS READ(3,1001)DIFHDR1001 FORMAT(10A1) READ(3,1002)N1,N21002 FORMAT(I1,1X,I5) READ(3,7953)FORM2%C FORM2 GETS STRING OUT OF DIF RECORDCC GET RID OF " CHARACTERS 3211 CONTINUE N1=INDEX(CFORM2,'"')" IF(N1.LE.0.OR.N1.GT.127)GOTO 3212 FORM2(N1)=' ' GOTO 3211 3212 CONTINUE7 IF(DIFHDR(1).EQ.'T'.AND.DIFHDR(2).EQ.'A'.AND.DIFHDR(3)0 1 .EQ.'B')WRITE(4,1003)(FORM2(IV),IV=2,81)1003 FORMAT(80A1). IF(DIFHDR(1).EQ.'T'.AND.DIFHDR(2).EQ.'U'.AND.! 1 DIFHDR(3).EQ.'P')NROWS=N2. IF(DIFHDR(1).EQ.'V'.AND.DIFHDR(2).EQ.'E'.AND.! 1 DIFHDR(3).EQ.'C')NCOLS=N22 IF(DIFHDR(1).NE.'D'.OR.DIFHDR(2).NE.'A')GOTO 1000(C FALL THROUGH AFTER READING DATA RECORD;C HOPEFULLY WE NOW HAVE NUMBER OF ROWS AND COLUMNS EXPECTED C ALL STORED IN NROWS AND NCOLS. IROW=0 ICOL=0 1010 CONTINUE READ(3,7953,END=9900)FORM N1=0 IX=INDEX(CFORM,',')-1 IF(IX.LE.0)GOTO 8092 READ(CFORM,8090)N18090 FORMAT(I3) DO 8091 N=1,1238091 FORM(N)=FORM(N+IX+1) 8092 CONTINUE6C READ NUMBER VALUE IN A STRING SO WE CAN DECODE IT AS C NEEDED. READ(3,7961,END=9900)FORM27961 FORMAT(100A1,100A1)C READ A RECORDC N1 = -1 FLAGS SPECIAL RECORDS IF(N1.GE.0)GOTO 1020' IF(FORM2(1).EQ.'B'.AND.FORM2(2).EQ.'O'& 1 .AND.FORM2(3).EQ.'T')GOTO 10191 IF(FORM2(1).EQ.'E'.AND.FORM2(2).EQ.'O')GOTO 9900 GOTO 1010 1019 CONTINUE3C AT START OF TUPLE RESET COL TO 1 AND ROW BUMPS... IROW=IROW+1 ICOL=0 GOTO 1010C SKIP OVER NONDATA RECORDS 1020 CONTINUE!C NOW HAVE TO EMIT A DATA RECORD. IVLD=-1 IF(N1.EQ.0)IVLD=1 ICOL=ICOL+12 IF(IVLD.EQ.1.AND.FORM2(1).EQ.'N'.AND.FORM2(2).EQ. 1 'A') GOTO 1010:C SKIP 'NA' INVALID NUMBERS AND DON'T BOTHER WRITING THEM.8 IF(IVLD.EQ.1)WRITE(4,1030)ICOL,IROW,(FORM(IV),IV=1,110)9 IF(IVLD.LT.1)WRITE(4,1030)ICOL,IROW,(FORM2(IV),IV=1,110)$1030 FORMAT('P',I5,',',I5,',',128A1) ITYPE=26C FIGURE OUT TYPE BASED ON PRESENCE OR ABSENCE OF DOT./ IF(IVLD.GT.1.AND.INDEX(CFORM,'.').EQ.0)ITYPE=4 WRITE(4,1031)IVLD,DFMT,ITYPE1031 FORMAT(I3,',',A9,',',I5) IF(INDB.LE.0)GOTO 1010 IFT=32+(ITYPE*4)+IVLD4C WRITE OUT THE DIRECT ACCESS FILE FROM THE DIF FILE8C DIRECT ACCESS FILE OUGHT TO BE SUITABLE FOR DATATRIEVECC RECORD FORMAT IS:C 8 DIGITS - IDC 4 DIGITS - COLC 4 DIGITS - ROW%C 8 CHARACTERS - USER'S AUXILIARY KEYC 109 CHARS - FORMULAC 9 CHARS - FORMAT C 1 CHAR - ENCODED FVLD AND TYPEC<C NOTE DTR CANNOT HANDLE BINARY DATA. IT NEEDS ALL CHARACTER9C DATA. SO OUTPUT THE STUFF HERE AS CHARACTERS SO DTR CAN C ACCESS IT.C=C ADD UNIQUE CELL ID INDEX HERE. USE A FIXED CODE SINCE WE'RE%C NOT STORING IT CONTIGUOUSLY ANYHOW. ICW=ICOL IRW=IROW IDREC=(IRW-1)*1024+ICW+IDBASE IF(IVLD.EQ.1)GOTO 8544% WRITE(7,3219)IDREC,ICOL,IROW,AUXKEY,% 1 (FORM2(IV),IV=1,109),DFMT,IFT3C ENSURE NUMERIC FIELDS ARE ALL FILLED IN WITH 0'S.&3219 FORMAT(I8.8,2I4.4,A8,109A1,A9,A1) GOTO 1010 8544 CONTINUE% WRITE(7,3219)IDREC,ICOL,IROW,AUXKEY,$ 1 (FORM(IV00VVRRTADATADATADATADATADATA),IV=1,109),DFMT,IFT GOTO 1010 9900 CONTINUE CLOSE(UNIT=4) CLOSE(UNIT=3) 510 CONTINUE9990 stop 'End DIFDB' 7000 CONTINUE(C HERE READ DB FILE AND WRITE A PCC FILE WRITE(6,103) READ(IOLVL,7953)FORM2 DO 8340 II=1,128 ILN=129-II% IF(ICHAR(FORM2(ILN)).GT.32)GOTO 8341 FORM2(ILN)=CHAR(0) 8340 CONTINUE 8341 CONTINUEC ILN IS LENGTH OFLINE NOW. ILN=MIN0(ILN,127) FORM2(ILN+1)=CHAR(0) CALL WASSIG(4,FORM2) WRITE(6,140) READ(IOLVL,7953)FORM2 DO 8640 II=1,128 ILN=129-II% IF(ICHAR(FORM2(ILN)).GT.32)GOTO 8641 FORM2(ILN)=CHAR(0) 8640 CONTINUE 8641 CONTINUEC ILN IS LENGTH OFLINE NOW. ILN=MIN0(ILN,127) FORM2(ILN+1)=CHAR(0) DO 1326 IV=1,80 LFN(IV)=ICHAR(FORM2(IV)) 1326 CONTINUE 1327 CONTINUEC FILE MUST PRE EXIST HERE.# OPEN(UNIT=7,FILE=LFN,STATUS='OLD',A 1 ORGANIZATION='INDEXED',ACCESS='KEYED',RECORDTYPE='FIXED',1 2 KEY=(1:8,9:12,13:16,17:24),RECL=143,FORM= 1 'FORMATTED')4C NOW HAVE FILES OPEN. GET USER TO GIVE US THE TITLE%C ASK FOR AUXILIARY KEY. * MEANS ALL.. Write(6,166) Read(5,167)AK2 IRESET=0H ICOLAC=0 IROWAC=1i-C THE FOLLOWING CODE AND THE CODE AROUND 7116 7C IS DESIGNED TO ALLOW SAVED SHEETS TO BE RE-ORDERED INc5C A PCC FILE. THE USER PLACES WHAT DATA HE LIKES IN Ao3C DATABASE FILE, AND THEN GIVES THE SPECIAL KEYWORDo1C % IN THE AUXILIARY KEY. IF HE USES %*, THEN THE 5C AUX KEY IS TREATED AS CONTAINING *; OTHERWISE IT ISRC ASKED FOR AGAIN.4C ONCE THE KEY IS OBTAINED, THE PROGRAM ASKS FOR THE7C NUMBER OF ROWS AND COLUMNS IN THE REGION BEING SET UPi6C AND WHEN THE PCC FILE IS BEING CREATED, RECORDS READ9C OFF THE DATABASE FILE ARE JUST READ SEQUENTIALLY IN THEn;C ORDER OF THE PRIMARRY KEY (CELL ID) AND PLACED IN THE PCCo:C FILE AS THOUGH THEY DENSELY FILLED THE UPPER LEFT REGION9C OF A SPREADSHEET, GOING ACROSS COLUMNS FIRST, THEN DOWN 1C ROWS (SO THE COLUMN INDEX VARIES MOST QUICKLY).m<C THIS ALLOWS SPREADSHEETS IN WHICH, SAY, 20 OR 30 NUMBERS9C ARE SAVED FROM ALL OVER THE PLACE TO BE REARRANGED INTOF9C A DIFFERENT SUMMARY SHEET THAT IS, SAY, 30 COLUMNS WIDEN:C WITH EVERY SHEET SAVED AS A ROW OF THE SUMMARY. THE ONLY=C PREREQUISITE IS THAT THE ID BASE THAT GETS ADDED TO CELL ID :C NEEDS TO BE BIG ENOUGH FOR ALL SHEETS AFTER THE FIRST SO=C THAT ALL SHEET 1 ID'S ARE FIRST, ALL SHEET 2 ID'S NEXT, ALL2C SHEET 3 ID'S NEXT, AND SO ON.= IF(AK2(1:1).NE.'%')GOTO 7111O IF(AK2(2:2).EQ.'*')AK2(1:1)='*'C % IS PART SYNONYM FOR *I IF(AK2(2:2).NE.'*')WRITE(6,166)" IF(AK2(2:2).NE.'*')READ(5,167)AK22C IF WE GET %* IT MEANS TAKE ALL AND ASK QUESTIONS%C IF WE GET JUST % WE ASK FOR NEW KEYC)C AGAIN AND THEN ASK FOR RESETTING LIMITSGC4 IRESET=1I WRITE(6,7112)27112 FORMAT('$Enter No. Cols in region to build>') Read(5,7113)irstc7113 format(I6)R Write(6,7114)27114 Format('$Enter No. Rows in region to build>') Read(5,7113)irstr7c irstc and irstr are region that we pretend was saved.L" if(irstc.le.0)stop 'wrong colnos'" if(irstr.le.0)stop 'wrong rownos' 7111 CONTINUET WRITE(6,7003)7003 FORMAT('$TITLE:') READ(5,7004)NMSHO7004 FORMAT(80A1) WRITE(4,7004)NMSH-C NOW ALL SET FOR THE DATA ITSELF. GO GET IT.O IRCT=05 7200 CONTINUET+ IF(IRCT.EQ.0)READ(7,7219,KEYGE='00000000',U 1 KEYID=0) 1 IDREC,ICOL,IROW,AUXKEY,a2 1 (FORM(IV),IV=1,109),(FORM(IV),IV=120,128), 2 LETA: IF(IRCT.GT.0)READ(7,7219,END=7501)IDREC,ICOL,IROW,AUXKEY,2 1 (FORM(IV),IV=1,109),(FORM(IV),IV=120,128), 2 LETA IRCT=1( IFT=ICHAR(LETA)-29. ITYPE=2*(IFT/8) IFT=IFT-4*ITYPE IVLD=IFT-3Q#7219 FORMAT(I8,2I4,A8,109A1,9A1,A1))3 IF((AUXKEY.NE.AK2).AND.(AK2(1:1).NE.'*'))GOTO 7200P-C ALLOW * TO READ FILE REGARDLESS OF AUX KEYSFC WRITE THE STUFF OUT NOWA IF(IRESET.NE.0)GOTO 7116C+ WRITE(4,1030)ICOL,IROW,(FORM(IV),IV=1,110). WRITE(4,7031)IVLD,(FORM(IV),IV=120,128),ITYPE7031 FORMAT(I3,',',9A1,',',I5) GOTO 7200 7116 CONTINUEO ICOLAC=ICOLAC+1 IF(ICOLAC.LE.IRSTC)GOTO 7117N IROWAC=IROWAC+1 ICOLAC=1) 7117 CONTINUE  IF(IROWAC.GT.IRSTR)GOTO 7200O2C SKIP S00VV }AVE IF REGION IS TOO FAR DOWN FOR OUR USE./ WRITE(4,1030)ICOLAC,IROWAC,(FORM(IV),IV=1,110),. WRITE(4,7031)IVLD,(FORM(IV),IV=120,128),ITYPE GOTO 7200 7501 CONTINUEr CLOSE(UNIT=4) CLOSE(UNIT=7) STOPu END SUBROUTINE WASSIG(IUNIT,FNAME)6 CHARACTER*1 FNAME(80) LOGICAL*1 FN(80)' CHARACTER*1 CFN(80) EQUIVALENCE(CFN(1),FN(1)) DO 1 N1=1,80)1 CFN(N1)=FNAME(N1)E& OPEN(UNIT=IUNIT,FILE=FN,STATUS='NEW',& 1 RECL=512,ACCESS='SEQUENTIAL', 1 CARRIAGECONTROL='LIST') RETURNe END SUBROUTINE RASSIG(IUNIT,FNAME) CHARACTER*1 FNAME(80) LOGICAL*1 FN(80)a CHARACTER*1 CFN(80) EQUIVALENCE(CFN(1),FN(1)) DO 1 N1=1,80 1 CFN(N1)=FNAME(N1)U& OPEN(UNIT=IUNIT,FILE=FN,STATUS='OLD',% 1 RECL=512,ACCESS='SEQUENTIAL')  RETURN' ENDDIF Read / Write=The DIFRW program is able to convert DIF files to AnalytiCalc<(PortaCalc) save files, or to convert AnalytiCalc save files>to DIF files. Conventionally, AnalytiCalc save files are named8file.PCC and DIF files are named file.DIF. The program'sprompts use this convention.4 To run the program, just RUN DIFRW on VAX or PDP11;on PC, just type DIFRW.3 The progam asks whether you want to Read DIF files7to PCC files or Write DIF files from PCC files. Reply Ror W to select one.3 The program then asks for the DIF filename and the<PCC (AnalytiCalc) filename to use. Enter each in response to the prompt.7 If you said you wanted to Write DIF files, the programAasks whether to emit Values or Formulas. DIF is less general than>the normal AnalytiCalc save output, and the program can either@select the numerical value of each cell for the DIF file (useful?for graphing programs and the like) or the cell formula (useful=for moving to other spreadsheet type programs or for archival>purposes). Select F or V. In a sense, the formula save is more>general since it can be made again into a spreadsheet and once:computable cells are made numeric again, the values can be<recalculated. However, both are available. Use whichever youneed.6 If you said you wanted to Read DIF files (and write a;file for AnalytiCalc), the DIF format does not preserve the<formatting information for cells. The program therefore asks<for a default format to use. This can be any 9 characters of9Fortran format you like. Use the F9.2 format (i.e., reply;"F9.2", without the quotes) if you are uncertain of what to?use. This format will be placed in each cell of the AnalytiCalc saved sheet.9 Some processing done by AnalytiCalc to flag numeric-only>cells is not done here, so spreadsheets loaded by this utilityAwill compute more slowly than native AnalytiCalc ones will. Dummy<EDits in AnalytiCalc to any cells that are pure numeric will1reset the flags so that speedups can be realized.9 It should be further noted that the DIF format is rather=inefficient in that it assumes that the area to be saved is a>complete rectangular region. DIFRW will fill in any cells that=are not really there with the NA numeric code, and on loading;back to an AnalytiCalc file, will discard all NA cells. The?result is that DIF saved sheets can be considerably larger thanAnalytiCalc saved files.9 All cells are treated equally here and the resulting DIFDfiles contain either number values or string values. This limitationBof DIF format is the reason why you must be asked whether you wantDformulas or values from your AnalytiCalc saved sheet. The two cannotbe piggybacked.9 Nevertheless, this utility provides a fairly easy to use<way of converting AnalytiCalc data for other programs, or of<getting data from other utilities in a form that AnalytiCalc can load. One final note:8 AnalytiCalc V18-04F is the first version of AnalytiCalc:that will work with this utility in converting AnalytiCalc;files to D00VQVRTADATADATADATADATADATAIF files. If you have old .PCC files, reload them;and save them with the new AnalytiCalc to get this to work.;The cells used to be saved down columns first; now they are:saved across rows first. This has no effect on AnalytiCalc>since each record has its address, but makes conversion to DIF?of the old files quite difficult, since DIF files are specifiedto be saved across rows. Glenn Everhart 8/9/851C PROGRAM TO READ/WRITE DIF FILES FROM .PCC FILEScc Compilation:c FORTRAN/NOCHECK/NODEBUG DIFRWc Link:c LINK/NOMAP DIFRWc4c Reads DIF files into AnalytiCalc save format files1c or reads AnalytiCalc save files into DIF files.3c Note that the version of AnalytiCalc must be the2c new one that saves across rows rather than down*c columns for the latter ability to work.c&c Copyright (c) Glenn C. Everhart 1985-c Noncommercial use permitted, but for-profitc distribution prohibited.c" CHARACTER*1 FORM,FVLD,CMDLIN(132) INTEGER*4 VNLT* CHARACTER*1 LET1,LET2,FORM2(128),NMSH(80) CHARACTER*1 DIFHDR(10) COMMON/NMSH/NMSH INTEGER*2 IOLVL DIMENSION FORM(128),FVLD(1,1) CHARACTER*1 FVWRK,FVWRK2AC FVLD FLAG 0 = NO FORMULA, -1= DISPLAY FORMULA ITSELF, NOT VALUE=C 1=VALID ACTIVE FORMULA THERE TO EVALUATE. INITIALLY ALL 0'SC SO INITIALLY IGNORE.?C FVLD=2 = CONST NUMERIC ONLY, COMPUTED. =3, CONST, NEEDS CALC.CDC ROUTINE IN2AS COMPUTES ASCII CHARACTER NAMES OF SUBSCRIPTS IN1,IN2=C SO DISPLAY CAN HAVE THEM. IT MUST BE THE INVERSE OF VARSCN. CHARACTER*1 LETA CHARACTER*127 CFORM,CFORM2 EQUIVALENCE(CFORM,FORM(1)) EQUIVALENCE(CFORM2,FORM2(1)) integer*2 nrows,ncols character*9 DFMT8C ENCODE ICREF, IRREF AND CWIDS PAST TITLE IN FIRST LINE8C (THAT WAY, NOTHING BREAKS IN OTHER PGMS THAT USE THIS)CC PUT NUMBERS OUT TO FILE%C USES RELATIVE FORMS TO CURRENT POS.;C PD = PUT OURT DISPLAY SHEET. PP = PUT OUT PHYSICAL SHEET.&C ONLY WRITES PHYSICALLY PRESENT DATA."C P/D RRR,CCC,FORMULA,VALID,FORMAT6C N IN 3RD CHR (PPN/PDN) SAVES NUMBERS, ELSE FORMULAS. IOLVL=5% OPEN(UNIT=5,FILE='TT:',STATUS='OLD')% OPEN(UNIT=6,FILE='TT:',STATUS='NEW') WRITE(6,101)9101 FORMAT('$Read DIF file to PCC or Write DIF file from' 1 ,' PCC [R/W]:') READ(5,7953)FORM2 INDIF=1. IF(FORM2(1).EQ.'R'.or.form2(1).eq.'r')INDIF=0 WRITE(6,102)#102 FORMAT('$ Enter DIF filename>') III=IOLVL$ READ(III,7953,END=510,ERR=510)FORM27953 FORMAT(128A1) DO 6940 II=1,128 ILN=129-II% IF(ICHAR(FORM2(ILN)).GT.32)GOTO 6941 FORM2(ILN)=CHAR(0) 6940 CONTINUE 6941 CONTINUEC ILN IS LENGTH OFLINE NOW. ILN=MIN0(ILN,127) FORM2(ILN+1)=CHAR(0)# IF(INDIF.EQ.0)CALL RASSIG(3,FORM2)# IF(INDIF.NE.0)CALL WASSIG(4,FORM2)!C LUN 3 IS INPUT, LUN 4 IS OUTPUTC NOW GET PCC FILENAME WRITE(6,103)#103 FORMAT('$ Enter PCC filename>')$ READ(III,7953,END=510,ERR=510)FORM2 DO 6340 II=1,128 ILN=129-II% IF(ICHAR(FORM2(ILN)).GT.32)GOTO 6341 FORM2(ILN)=CHAR(0) 6340 CONTINUE 6341 CONTINUEC ILN IS LENGTH OFLINE NOW. ILN=MIN0(ILN,127) FORM2(ILN+1)=CHAR(0)# IF(INDIF.ne.0)CALL RASSIG(3,FORM2)# IF(INDIF.eq.0)CALL WASSIG(4,FORM2)=c Now both files are opened and all set, and INDIF flag tells;c whether the DIF file is the input or the output (0=input)cAc Now since DIF files don't have a valid format, if we're reading6c DIF and writing PCC files, ask for a display format. IF (Indif.ne.0)goto 105 Write(6,106)-106 Format('$ Enter display format, no ().>') Read(5,107)DFMTc may need to change format...107 Format(A9) GOTO 1000 105 Continue WRITE(6,900).900 FORMAT('$ Emit Values or Formulas [V/F]:') Read(5,7953)let2 IF(LET2.EQ.'v')LET2='V'4C FORCE UPPERCASE V REPLY SINCE THAT'S WHAT WE TEST.C=c LET2 tells us whether to emit Values or "Labels" in the DIF c file.../C AT 1000 HANDLE READING DIF FILES TO PCC FILES-C NEXT HANDLE READING PCC FILES TO DIF FILES.CC PCC IN, DIF OUTC<C FIRST PASS: READ IN PCC FILE TO 00VV }SEE HOW MANY ROWS AND COLS(C ARE THERE SINCE THAT'S NEEDED FOR DIF. NCOLS=0 NROWS=0( READ(3,6951,END=9990,ERR=9990)NMSH,FORM6951 FORMAT(100A1,100A1,100A1) 1107 CONTINUE%C7955 FORMAT('P',I5,',',I5,',',128A1)6C READ THE DATA AND KEEP MAXIMA FOR ROW, COL UNTIL EOF0 READ (3,108,END=109,ERR=109)LETR,ICOL,IROW,FORM NCOL=ICOL NROW=IROW!108 FORMAT(1A1,I5,1X,I5,1X,128A1)C7956 FORMAT(I3,',',9A1,',',I5)7956 FORMAT(I3,1X,9A1,1X,I5)4 READ(3,7956,END=109,ERR=109)IVLD,(FORM2(IV),IV=120, 1 128),ITYPE IF(LETR.EQ.'M')GOTO 1097C DON'T BOTHER WITH MAPPING RECORDS WHICH ARE AT END... IF(LETR.NE.'P')GOTO 1107 IF(NCOL.GT.NCOLS)NCOLS=NCOL IF(NROW.GT.NROWS)NROWS=NROW GOTO 1107 109 CONTINUEC NOW HAVE DIMENSIONS... REWIND 3 WRITE(6,5000)NCOLS,NROWS:5000 FORMAT(' NUMBER OF COLS FOUND=',I6,';NUMBER OF ROWS=' 1 ,I6). IF(NCOLS.LE.0.OR.NCOLS.GT.999)STOP 'COLS ERR'. IF(NROWS.LE.0.OR.NROWS.GT.999)STOP 'ROWS ERR'( READ(3,6951,END=9990,ERR=9990)NMSH,FORM6C NOW EMIT TABLE RECORD USING TITLE OF SHEET AS STRING WRITE(4,110)110 FORMAT('TABLE',/,'0,1') WRITE(4,111)(NMSH(IV),IV=1,75)111 FORMAT('"',75A1,'"');C VECTORS IS DIF SLANG FOR COLUMNS. EMIT NUMBER OF VECTORS. WRITE(4,112)NCOLS&112 FORMAT('VECTORS',/,'0,',I3,/,'""')<C NEXT WRITE TUPLES RECORD WHICH IS BASICALLY NUMBER OF ROWS WRITE(4,113)NROWS%113 FORMAT('TUPLES',/,'0,',I3,/,'""') WRITE(4,114)!114 FORMAT('DATA',/,'0,0',/,'""')@C WE ASKED EARLIER FOR LET2 TO BE V FOR VALUES OR F FOR FORMULASC TO TELL WHICH TO EMIT.(C NOW GO THROUGH AND HANDLE THE STUFF... ICOLI=0 IROWI=1 ICOLS=NCOLS IROWX=1 ICOLX=1 IROWS=NROWS WRITE(4,121)121 FORMAT('-1,0',/,'BOT') 118 CONTINUE0 READ (3,108,END=119,ERR=119)LETR,ICOL,IROW,FORM NCOL=ICOL NROW=IROW4 READ(3,7956,END=119,ERR=119)IVLD,(FORM2(IV),IV=120, 1 128),ITYPE?C ONLY ACCEPT P OR p TYPE RECORDS (ONLY ONE, DEPENDING ON LET1)( IF(LETR.NE.'P'.AND.LET2.NE.'V')GOTO 118( IF(LETR.NE.'p'.AND.LET2.EQ.'V')GOTO 118C HERE WE KNOW WE'RE LEGALDC SINCE THE NEW VERSIONS OF ANALYTICALC GENERATE DATA ACROSS COLUMNS9C FIRST (I.E., ALONG TUPLES), JUST KEEP TRACK OF LAST ONE$C READ AND FILL IN NULLS IF WE MUST.C ICOLX=ICOLX+1C IF(ICOLX.LE.ICOLS)GOTO 120 C ICOLX=1C IROWX=IROWX+1 C120 CONTINUEDC ICOLX AND IROWX ARE NEXT COL AND ROW EXPECTED IF WE READ A TOTALLY!C FILLED TABLE AREA'S SAVED FILE. 122 CONTINUE, IF(ICOL.LE.ICOLX.AND.IROW.LE.IROWX)GOTO 123C NEED TO FILL IN EMPTIES... WRITE(4,125)125 FORMAT('0,0',/,'NA') ICOLX=ICOLX+1 IF(ICOLX.LE.ICOLS)GOTO 124 ICOLX=1 IROWX=IROWX+1?C WRITE ANOTHER BOT RECORD AS NEEDED HERE (IN CASE WHOLE ROW ISC EMPTY)?C ONLY EMIT BOT RECORD IF WE DIDN'T JUST FINISH THE LAST ROW... IF(IROWX.LE.IROWS)WRITE(4,121) 124 CONTINUE GOTO 122 123 CONTINUE C OK, NOW HAVE THIS FILLED IN... IF(LET2.NE.'V')GOTO 128CC MUST ENSURE THAT THE EXPONENT IS NN.NNNEXX RATHER THAN NN.NNNNDXXDC I.E., D EXPONENTS AREN'T UNDERSTOOD. THEREFORE WRITE OUT E INSTEADC OF D. DO 200 IV=1,50 IF(FORM(IV).EQ.'D')FORM(IV)='E' 200 CONTINUE 128 CONTINUE. IF(LET2.EQ.'V')WRITE(4,126)(FORM(IV),IV=1,50)126 FORMAT('0,',50A1,/,'V')/ IF(LET2.NE.'V')WRITE(4,127)(FORM(IV),IV=1,109)127 FORMAT('1,0',/,109A1) C GO BACK AND READ SOME MORE NOW ICOLI=ICOL IROWI=IROW ICOLI=ICOLI+1 IF(ICOLI.LE.ICOLS)GOTO 2120 ICOLI=1 IROWI=IROWI+1 WRITE(4,121) 2120 CONTINUE ICOLX=ICOLI IROWX=IROWI GOTO 118C 119 CONTINUE)C ALL DONE, SO MARK END DATA AND GO HOME.,C MUST BE SURE WE FILL OUT THE LAST TUPLE SO(C WRITE 'NA' RECORDS TO DO SO IF IT'S OK. IF(IROWX.GT.IROWS.OR.ICOLX.GT.ICOLS)GOTO 9191 DO 9192 N=ICOLX,ICOLS WRITE(4,125)+C WRITE 'NA' RECORDS TO FILL OUT THE COLUMN 9192 CONTINUE 9191 CONTINUE WRITE(4,129)129 FORMAT('-1,0'/,'EOD') CLOSE(UNIT=4) CLOSE(UNIT=3) GOTO 9990 1000 CONTINUECC DIF IN, PCC OUTC<C ASSUME DIF FILE STARTS WITH TABLE, VECTORS, TUPLES RECORDS READ(3,1001)DIFHDR1001 FORMAT(10A1) READ(3,1002)N1,N21002 FORMAT(I1,1X,I5) READ(3,7953)FOR00VVVRTADATADATADATADATADATAM2%C FORM2 GETS STRING OUT OF DIF RECORDC GET RID OF " CHARACTERS... 3211 CONTINUE N1=INDEX(CFORM2,'"') IF(N1.GT.0)FORM2(N1)=' '# IF(N1.GT.0.AND.N1.LT.127)GOTO 32118C EMIT TITLE FROM "TABLE" RECORD, SKIPPING " CHARACTERS.7 IF(DIFHDR(1).EQ.'T'.AND.DIFHDR(2).EQ.'A'.AND.DIFHDR(3)0 1 .EQ.'B')WRITE(4,1003)(FORM2(IV),IV=2,81)1003 FORMAT(80A1). IF(DIFHDR(1).EQ.'T'.AND.DIFHDR(2).EQ.'U'.AND.! 1 DIFHDR(3).EQ.'P')NROWS=N2. IF(DIFHDR(1).EQ.'V'.AND.DIFHDR(2).EQ.'E'.AND.! 1 DIFHDR(3).EQ.'C')NCOLS=N22 IF(DIFHDR(1).NE.'D'.OR.DIFHDR(2).NE.'A')GOTO 1000(C FALL THROUGH AFTER READING DATA RECORD;C HOPEFULLY WE NOW HAVE NUMBER OF ROWS AND COLUMNS EXPECTED C ALL STORED IN NROWS AND NCOLS. IROW=0 ICOL=0 1010 CONTINUE READ(3,7953,END=9900)FORM N1=0 IX=INDEX(CFORM,',')-1 IF(IX.LE.0)GOTO 8092 READ(CFORM,8090)N18090 FORMAT(I3) DO 8091 N=1,1238091 FORM(N)=FORM(N+IX+1) 8092 CONTINUE6C READ NUMBER VALUE IN A STRING SO WE CAN DECODE IT AS C NEEDED. READ(3,7961,END=9900)FORM27961 FORMAT(100A1,100A1)(C REMOVE ALL REMAINING " CHARACTERS TOO.C READ A RECORDC N1 = -1 FLAGS SPECIAL RECORDS IF(N1.GE.0)GOTO 1020' IF(FORM2(1).EQ.'B'.AND.FORM2(2).EQ.'O'& 1 .AND.FORM2(3).EQ.'T')GOTO 10191 IF(FORM2(1).EQ.'E'.AND.FORM2(2).EQ.'O')GOTO 9900 GOTO 1010 1019 CONTINUE3C AT START OF TUPLE RESET COL TO 1 AND ROW BUMPS... IROW=IROW+1 ICOL=0 GOTO 1010C SKIP OVER NONDATA RECORDS 1020 CONTINUE!C NOW HAVE TO EMIT A DATA RECORD. IVLD=-1 IF(N1.EQ.0)IVLD=1 ICOL=ICOL+12 IF(IVLD.EQ.1.AND.FORM2(1).EQ.'N'.AND.FORM2(2).EQ. 1 'A') GOTO 1010:C SKIP 'NA' INVALID NUMBERS AND DON'T BOTHER WRITING THEM.8 IF(IVLD.EQ.1)WRITE(4,1030)ICOL,IROW,(FORM(IV),IV=1,110)9 IF(IVLD.LT.1)WRITE(4,1030)ICOL,IROW,(FORM2(IV),IV=1,110)$1030 FORMAT('P',I5,',',I5,',',128A1) ITYPE=26C FIGURE OUT TYPE BASED ON PRESENCE OR ABSENCE OF DOT./ IF(IVLD.GT.1.AND.INDEX(CFORM,'.').EQ.0)ITYPE=4 WRITE(4,1031)IVLD,DFMT,ITYPE1031 FORMAT(I3,',',A9,',',I5) GOTO 1010 9900 CONTINUE CLOSE(UNIT=4) CLOSE(UNIT=3) 510 CONTINUE 9990 stop END SUBROUTINE WASSIG(IUNIT,FNAME) CHARACTER*1 FNAME(80) LOGICAL*1 FN(80) CHARACTER*1 CFN(80) EQUIVALENCE(CFN(1),FN(1)) DO 1 N1=1,801 CFN(N1)=FNAME(N1)& OPEN(UNIT=IUNIT,FILE=FN,STATUS='NEW',& 1 RECL=512,ACCESS='SEQUENTIAL', 1 CARRIAGECONTROL='LIST') RETURN END SUBROUTINE RASSIG(IUNIT,FNAME) CHARACTER*1 FNAME(80) LOGICAL*1 FN(80) CHARACTER*1 CFN(80) EQUIVALENCE(CFN(1),FN(1)) DO 1 N1=1,801 CFN(N1)=FNAME(N1)& OPEN(UNIT=IUNIT,FILE=FN,STATUS='OLD',% 1 RECL=512,ACCESS='SEQUENTIAL') RETURN END SUBROUTINE DSPSHT(ICODE)#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY.7C DISPLAY SPREAD SHEET ON SCREEN OR IN FILE IF ICODE=107C USES UVT100 TO TWEAK THE VT100. NO WRAP IS ASSUMED SO5C OUTPUT UP TO 132 COLS BY 24 LINES IS OK. ONLY CHECK>C WIDTH TO ALLOW VT100 LOOKALIKES WITH MORE DISPLAY LINES TOO. INCLUDE 'VKLUGPRM.FTN'C PARAMETER RRCL=RRW*RCLG PARAMETER CUP = 1, CUU = 2, CUD = 3, CUF = 4, CUB = 5, DECDWL = 6G $, DECDHL = 7, DECRC = 8, DECSC = 9, DECSWL = 10, ED = 11, EL = 12A $, SGR = 13, NEL = 14, SCS = 15, SM = 16, RM = 17, ANSI = 18=C NOTE: THROUGHOUT, ROWS ARE ACTUALLY DOWN, COLUMNS ACROSS ONAC SCREEN. ROW 0 IN DISPLAY IS THE 27 ACCUMULATORS A-Z AND %, WITH>C % BEING THE LAST-COMPUTED VALUE FROM THE CALC PROGRAM, WHICHAC KNOWS HOW TO ACCESS THE DATA BUT IS JUST PASSED COMMAND STRINGS C FROM THE DISK BASED FILE HERE.. INTEGER*2 IDOL1,IDOL2,IDOL3,IDOL4,I00VV }DOL5,IDOL61 COMMON/DOLLR/IDOL1,IDOL2,IDOL3,IDOL4,IDOL5,IDOL6, LOGICAL*1 FORM,FVLD,CMDLIN(132),PRTLIN(132) INTEGER*4 VNLT,FVLDTP LOGICAL*1 LBEL(4)( LOGICAL*1 LET1,LET2,FORM2(128),NMSH(80) COMMON/NMSH/NMSH4C FLAG BORDR=1 IF WE WANT TO OMIT BORDERS ON DRAWINGC THE SCREEN DISPLAY TO A FILE. INTEGER*2 BORDR,TOMT@C COMMON ICPOS ALLOWS UVT100 ROUTINE ACCESS TO DISPLAYED NUMBERS$C FOR USES SUCH AS SETTING COLORS... INTEGER*2 IC1POS,IC2POS COMMON/ICPOS/IC1POS,IC2POS" REAL*8 XVBLS(RRWP,RCLP),VDSP,VCLC LOGICAL*1 DFE(12)$ DIMENSION FORM(128),FVLD(RRWP,RCLP)AC FVLD FLAG 0 = NO FORMULA, -1= DISPLAY FORMULA ITSELF, NOT VALUE=C 1=VALID ACTIVE FORMULA THERE TO EVALUATE. INITIALLY ALL 0'SC SO INITIALLY IGNORE.CDC ROUTINE IN2AS COMPUTES ASCII CHARACTER NAMES OF SUBSCRIPTS IN1,IN2=C SO DISPLAY CAN HAVE THEM. IT MUST BE THE INVERSE OF VARSCN.( INTEGER*2 PROW,PCOL,DROW,DCOL,DRWV,DCLV* COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRWV,DCLV( DIMENSION NRDSP(DRW,DCL),NCDSP(DRW,DCL) COMMON/D2R/NRDSP,NCDSP INTEGER*2 ILNFG,ILNCT,RCF LOGICAL*1 ILINE(106) COMMON/ILN/ILNFG,ILNCT,ILINE INTEGER LENTL(5),LOCOL(5) LOGICAL*1 FILINE(208) LOGICAL*1 OARRY(100) INTEGER*2 OSWIT,OCNTR COMMON/OAR/OSWIT,OCNTR,OARRY+C COMMON OAR SWITCHES OUTPUT OFF IF OSWIT=2" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9)) LOGICAL*1 AVBLS(20,27),VBLS(8,RRWP,RCLP)$ EQUIVALENCE(XVBLS(1,1),VBLS(1,1,1)) COMMON/V/TYPE,AVBLS,VBLS,VLEN INTEGER *2 FORMFG,RCFGX COMMON/FFGG/FORMFG,RCFGXCCC DISPLAY ARRAY WILL KEEP A COPY OF VARIABLES DISPLAYED AND FORMATSAC USED LOCALLY WHICH DISPLAY ROUTINE CAN USE TO SEE WHAT ACTUALLYBC NEEDS TO BE REFRESHED ON SCREEN. DRWV AND DCLV ARE COLS, ROWS OF#C DISPLAY ACTUALLY USED FOR SCREEN. INTEGER*2 CWIDS(DRW)HC CWIDS IS WIDTHS IN CHARACTERS OF COLUMNS ON DISPLAY. NOTE THAT BECAUSEHC OF PECULIAR INVERSION WHICH I AM TOO LAZY TO CORRECT IT IS DIMENSIONEDC AS DRW NOT DCL. REAL*8 DVS(DRW,DCL) INTEGER*4 LDVS(2,DRW,DCL)" EQUIVALENCE(LDVS(1,1,1),DVS(1,1)) COMMON /FVLDC/FVLDC LOGICAL*1 DFMTS(10,DRW,DCL)C 10 CHARACTERS PER ENTRY.C COMMON/DSPCMN/DVS,DFMTS,CWIDS COMMON/DSPCMN/DVS,CWIDS)C THISRW,THISCL = CURRENT DISPLAYED LOCS. INTEGER*2 THISRW,THISCL-C NOTE ROWS ARE DOWN, COLS ACROSS INTERNALLY.8C COLUMN 2 = NUMBERS. DISPLAY COLS 2-22 WITH COL 1=TITLE6C COL 23,24 FOR COMMANDS.(LCMDR (PARAMETER) ACTUALLY.)C ROW OFFSET BY 6 FOR NUMBERS.C@C MAINTAIN AN "INITIALIZED" BITMAP HERE TO USE TO AVOID GOING TOC DISK FOR FVLD.C LOGICAL*1 IBITMPC DIMENSION IBITMP(BRRCL)C COMMON/INITD/IBITMPAC NOTE BITMAP IS ZEROED IN SPREDSHT MAIN PROGRAM (OR AT SAVE CMD)8C AND IS SET HERE (AND HERE ONLY). ONLY USED HERE TOO... LOGICAL*1 LBITS(8)! DATA LBITS/1,2,4,8,16,32,64,128/ IF(ICODE.NE.10)GOTO 3000 CALL UVT100(CUP,LCMDR,1) CALL UVT100(EL,2) WRITE(6,25)=25 FORMAT('Enter print file spec., / after to omit borders>') READ(5,26)ISZ,FORM226 FORMAT(Q,128A1) ISZ=MIN0(127,ISZ) FORM2(ISZ+1)=0 BORDR=0 TOMT=0 DO 4111 N=1,ISZ+C IF FILENAME HAS / AFTERWARDS, OMIT BORDER IF(FORM2(N).EQ.'/')BORDR=17C NULL OUT THE / SO THAT FILENAME WILL PARSE CORRECTLY. IF(FORM2(N).EQ.'/')FORM2(N)=0 IF(FORM2(N).EQ.'%')TOMT=1 4111 CONTINUE8 OPEN(UNIT=8,FILE=FORM2,CARRIAGECONTROL='LIST',RECL=132)C CALL ASSIGN(8,FORM2) DO 27 N=1,13227 PRTLIN(N)=32 ENCODE(7,2,PRTLIN) 3000 CONTINUE CALL UVT100(SGR,0)- IF(TOMT.EQ.0.AND.ICODE.EQ.10)WRITE(8,17)NMSH IF(ICODE.EQ.10)GOTO 2000 IF(ICODE.NE.2)GOTO 1000C DRAW LABELS FIRST CALL UVT100(CUP,1,1) CALL UVT100(EL,2) IF(ICODE.NE.10)WRITE(6,17)NMSH CALL UVT100(CUP,2,1) CALL UVT100(EL,2) C ERASE TOP LINE, START AT COL 7 WRITE(6,2)2 FORMAT('ROW/COL')(C NOTE EXACTLY 7 CHARACTERS IN FORMAT #2 2000 CONTINUE J=8 CALL UVT100(SGR,7) DO 1 N1=1,DRWV LR=NRDSP(N1,1)*C NOTE PHYS SHEET OFFSET BY 1 (SEE VARSCN)"C DISPLAY SHEET NUMBERS START AT 1$ IF(ICODE.NE.10)CALL UVT100(CUP,2,J) CALL IN2AS(LR,LBEL) IF(ICODE.EQ.10)GOTO 2020 WRITE(6,3)LBEL 3 FORMAT(4A1): IF(LBEL(4).EQ.32.AND.LBEL00WVVRTADATADATADATADATADATA(3).EQ.32)CALL UVT100(CUP,2,J+2): IF(LBEL(4).EQ.32.AND.LBEL(3).NE.32)CALL UVT100(CUP,2,J+3) WRITE(6,7)N17 FORMAT('=',I2) GOTO 2030 2020 CONTINUE$ IF((J+CWIDS(N1)-7).GT.121)GOTO 2030 ICWD=MAX0(7,CWIDS(N1))- ENCODE(ICWD,2021,PRTLIN(J),ERR=2030),LBEL,N12021 FORMAT(4A1,'=',I2) 2030 CONTINUE J=J+CWIDS(N1) IF(J.GT.MPWD)GOTO 40 1 CONTINUE 40 CONTINUEC NOW COL LBLS DONEC DO NUMBERS ACROSS LEFT.C ONLY DO SO ON SCREEN.0 IF(BORDR.EQ.0.AND.ICODE.EQ.10)WRITE(8,18)PRTLIN DO 2031 KKK=1,132 FILINE(KKK)=322031 PRTLIN(KKK)=32 IF(ICODE.EQ.10)GOTO 1000 CALL UVT100(SGR,7) MCX=MIN0(20,DCLV)+2C LLVL=0,C ROWS ARE JUST OFFSET...NO MONKEY BUSINESS. DO 6 N1=3,MCX M1=N1-2 LC=NCDSP(1,M1)-1C N1=DISPLAY ROW CALL UVT100(CUP,N1,1) WRITE(6,8)LC8 FORMAT(I5,'>') 6 CONTINUEC NOW DISPLAY VALUES. 1000 CONTINUE CALL UVT100(SGR,0) DO 10 N2=1,DCLV JP=8 JPL=125 DO 110 N1=1,DRWV M1=NRDSP(N1,N2) M2=NCDSP(N1,N2)1C M1,M2 = PHYS SHEET COORDS OF WHAT IS DISPLAYED. M2M1=M2-15 IF(BORDR.EQ.0.AND.ICODE.EQ.10)ENCODE(6,8,PRTLIN)M2-1C *** EXPERIMENTAL *** CALL FVLDGT(M1,M2,FVLD(1,1)); IF(ICODE.NE.2.AND.ICODE.NE.10.AND.IDOL4.EQ.0.AND.FVLD(1,1) 1 .EQ.0)GOTO 1002C SKIP DISPLAY OR UPDATE OF TOTALLY UNINITED CELLSC *** END EXPERIMENTAL SECTION VDSP=DVS(N1,N2) CALL XVBLGT(M1,M2,VCLC)C VCLC=XVBLS(M1,M2)8C SEE IF DISPLAYED AND CALCULATED NUMBERS ARE IDENTICAL.C ONLY DISPLAY IF CHANGED. IF(IDOL4.NE.0)GOTO 6208 IF(VDSP.EQ.VCLC.AND.ICODE.NE.2.AND.ICODE.NE.10)GOTO 100 620 IC1POS=M1 IC2POS=M2BC FALL THRU HERE IF WE NEEDTO DISPLAY A NUMBER IN ROW 3+N2, COL N1 C THEN RE-ESTABLISH FORMAT, ETC. M23=N2+2 J=8 DO 11 N11=1,N1C GET THE COORDS OF OUR CELL.11 J=J+CWIDS(N11) J=J-CWIDS(N1)(C CURRENT CHARACTER COL NUMBER IS NOW J.C CALL UVT100(CUP,M23,J)$C NO EFFECT HERE ANYWAY...FORGET IT.C DO 12 N11=1,CWIDS(N1)C12 WRITE(6,137)C137 FORMAT(X)CC BLANK OUT CELL ABOVE.C CALL UVT100(CUP,M23,J)C IRX=(M2-1)*RRW+M1 CALL REFLEC(M2,M1,IRX)C C BITMAP CODEC9C ONLY READ DISK FOR SHEET DISPLAY IF THE BITMAP BIT FOR:C THIS ENTRY IS 0 INDICATING IT HAS NOT BEEN SET ALREADY.:C USE LBITS BITS ARRAY TO INDEX INTO BITS WITHIN THE MAP.C ******** BEWARE *********:C THIS SECTION RELIES ON FORTRAN DOING BOOLEAN OPERATIONS:C WITH MASKING INSTRUCTIONS. THIS IS TRUE IN DEC FORTRAN,<C AND USUALLY IN IBM FORTRAN BUT NOT ALWAYS IN IBM OR OTHER C PLACES...CC IR8=(IRX-1).AND.7 CC IR8=IR8+10C IR8 IS SUBSCRIPT WITHIN THE BYTE OF THE BITMAPC IRS IS BITMAP ARRAY SUBSCRIPTC 100 IS TGT IF FVLD=0 & BMP 1CC IRS=(IRX+7)/8!CC KKK=IBITMP(IRS).AND.LBITS(IR8)-C TURN ON THE INITIALIZED BIT IN ANY CASE NOW(CC IBITMP(IRS)=IBITMP(IRS).OR.LBITS(IR8)1C THE NEXT LINE IS THE TEST THAT SAVES OUR READS:5C IF THERE'S NOTHING THERE TO DISPLAY AND WE KNOW THE6C CELL HAS BEEN READ OFF THE FILE, DON'T READ THE FILE"C AGAIN BUT JUST SKIP THE DISPLAY.$C ... DO HOWEVER RESET DVS THOUGH.CC CALL FVLDGT(M1,M2,FVLD(1,1))+CCCC IF(FVLD(1,1).EQ.0.AND.KKK.NE.0)GOTO 13+CC IF(IDOL4.EQ.0.AND.FVLD(1,1).EQ.0)GOTO 13CC CALL WRKFIL(IRX,FORM,0)C READ(7'IRX)FORM9C ALLOW FOR FVLD TO HAVE CONSTANT VS FORMULA SIGNIFICANCE IF(FORM(119).LT.-1)FORM(119)=-3 IF(FORM(119).GT.1)FORM(119)=3C<C FVLD VALUES OF 2 INDICATE ALREADY-COMPUTED CONSTANTS.DON'T8C FORCE THEM TO BE REDONE. OTHERWISE DO FILL IN HOWEVER. CALL FVLDGT(M1,M2,FVLD(1,1))>C TRY COMMENTING OUT THIS RESET OF FVLD - REALLY NOT NEEDED OR C DESIRABLE.0C IF(FVLD(1,1).NE.2)CALL FVLDST(M1,M2,FORM(119))CC FVLD(M1,M2)=FORM(119)(C IF(FORM(120).LE.0)CALL FVLDST(M1,M2,0)C CALL FVLDGT(M1,M2,FVLD(1,1)) FVLDTP=FVLD(1,1)C+C CODE FOR WINDOW TILING AND FILE READIN...:C &%FILENAME,NSKIP,NLEN READS FILE SKIPPING NSKIP RECS ANDC GETS NLEN RECS INC8C &&%FILENAME,NSKIP,NLEN JUST INSERTS FILE INTO PRINTOUT IF(IDOL4.EQ.0)GOTO 9880 LFTMST=JC NEED TO DO IT HERE...*C FORM ARRAY HAS FILE NAME INFO, IF ANY... LLA=INDEX(FORM,'&')$ IF(LLA.LE.0.OR.LLA.GT.100)GOTO 988200WV } IF(FORM(LLA+1).EQ.'&')GOTO 9881C CHECK &% FORM IF(FORM(LLA+1).NE.'%')GOTO 9882C GOT &% FORM HERE.% IF(LLVL.EQ.0.OR.LLVLF.EQ.1)GOTO 9885 DO 9886 LNNN=1,LLVL LLVLN=LLVL+10 CLOSE(UNIT=LLVLN,ERR=9886) 9886 CONTINUE LLVL=0 9885 CONTINUE LTST=LLA+2 LLVLF=1 C OPEN LLVL# CALL GETFNL(FORM(LTST),LSKIP,LLEN) IF(LLEN.LE.0)GOTO 9882 LLVL=LLVL+1 LLU=LLVL+10 IF(LLVL.GT.4)GOTO 99313 OPEN(UNIT=LLU,NAME=FORM(LTST),TYPE='OLD',READONLY, 1 ERR=9931) GOTO 9930 9931 CONTINUE LENTL(LLVL)=0 LOCOL(LLVL)=0 CLOSE(UNIT=LLU) LLVL=LLVL-1 LLU=LLVL+10 GOTO 9882 9930 CONTINUE LOCOL(LLVL)=LFTMST LENTL(LLVL)=LLEN IF(LSKIP.LE.0)GOTO 9906 DO 9907 LL=1,LSKIP+9907 READ(LLU,9889,END=9909,ERR=9909)FILINE DO 9910 N=1,2089910 FILINE(N)=32 GOTO 9911 9909 CONTINUEC EOF SO CLOSE LUN LENTL(LLVL)=0 CLOSE(UNIT=LLU) LLVL=LLVL-1 IF(LLVL.LE.0)GOTO 9880 LLU=LLVL+10 9911 CONTINUE 9906 CONTINUE'C FILE SET UP NOW... READ IN AT 9982...,C RECORD COL # OVER FOR THIS RECURSION LEVEL GOTO 9882 9881 CONTINUE0C HERE LOOK FOR && FORM. IF NONE SEEN, SKIP THIS6 IF(FORM(LLA+1).NE.'&'.OR.FORM(LLA+2).NE.'%')GOTO 9882 C HERE HAVE A FORM &&%FILE,NS,NLDC SO CLOSE OFF ALL WINDOWS IN USE AND READ IN FIRST LEVEL FILE SEEN.% IF(LLVL.EQ.0.OR.LLVLF.EQ.2)GOTO 9884 DO 9883 LNN=1,LLVL LNN1=LNN+10 CLOSE(UNIT=LNN1,ERR=9883) 9883 CONTINUEC NOW ALL OPEN UNITS CLOSED LLVLF=2 LLVL=0 9884 CONTINUE LTST=LLA+3 C OPEN LLVL'9937 CALL GETFNL(FORM(LTST),LSKIP,LLEN) IF(LLEN.LE.0)GOTO 9882 LLVL=LLVL+1 LLU=LLVL+10 IF(LLVL.GT.4)GOTO 99333 OPEN(UNIT=LLU,NAME=FORM(LTST),TYPE='OLD',READONLY, 1 ERR=9933) GOTO 9934 9933 CONTINUE LLVL=LLVL-1 LLU=LLVL+10 GOTO 9882 9934 CONTINUE LOCOL(LLVL)=LFTMST LENTL(LLVL)=LLEN IF(LSKIP.LE.0)GOTO 9888 DO 9887 LL=1,LSKIP+9887 READ(LLU,9889,ERR=9901,END=9901)FILINE9889 FORMAT(208A1) DO 9908 N=1,2089908 FILINE(N)=32#C PUT IN LEADING SPACES INTO FILINE GOTO 9902 9901 CONTINUE CLOSE(UNIT=LLU) LLVL=LLVL-1 IF(LLVL.LE.0)GOTO 9880 LLU=LLVL+10%C HIT EOF ON READ, SO BACK UP A LEVEL 9902 CONTINUE-C NOW GO AHEAD & READ... GOT PAST SKIP STUFF. 9888 CONTINUE,C RECORD COL # OVER FOR THIS RECURSION LEVEL#9904 IF(LENTL(LLVL).LE.0) GOTO 9901@ READ(LLU,9889,END=9901,ERR=9901)(FILINE(IV),IV=LOCOL(LLVL),208) LENTL(LLVL)=lentl(llvl)-1c update lines left to read in<C LOOK FOR RECURSIVE CALLS TO DEEPER NESTED FILES TO INCLUDE LTST=INDEX(FILINE,'&')+3 LFTMST=LTST-3MC UPDATE SO IF IT IS A CALL,WE CAN GO HANDLE IT TILL ITS EOF OR A DEEPER CALL7 IF(LTST.GT.0.AND.LTST.LT.207.AND.FILINE(LTST+1).EQ.'&'- 1 .AND.FILINE(LTST+2).EQ.'%') GOTO 9937GC WELL, NOT A DEEPER LEVEL SO JUST GO ON AND READ THIS LEVEL TILL DONE., IF(ICODE.EQ.10)WRITE(8,9889,ERR=9904)FILINE. WRITE(6,9889,ERR=9904)(FILINE(IVV),IVV=1,132) GOTO 9904 9882 CONTINUEIC HERE HANDLE OLD WINDOW READS IN PROCESS OR JUST EXIT WITHOUT DOING MUCH IF(LLVLF.NE.1)GOTO 9880)C ONLY HANDLE "OVERLAY" STYLE READS HERE.C NORMAL OR-ING IN OF WINDOWS@C LOOK FOR LUN SUCH THAT J=LOCOL(LUN) INDICATING IT STARTS HERE.DC READ THIS CELL INTO IT AND FAKE OUT FVLD(1,1) TO GET IT DISPLAYED. IF(LLVL.LE.0)GOTO 9880 DO 9912 N=1,LLVL LLM=N+10 IF(J.EQ.LOCOL(N))GOTO 9913 9912 CONTINUE GOTO 9880 9913 CONTINUE=C NOW READ THE FILE INTO "THIS" CELL (DISPLAY PURPOSES ONLY!)C AND FLAG FVLD LENTL(LLM-10)=LENTL(LLM-10)-1 IF(LENTL(LLM-10).GT.0); 1 READ(LLM,9889,END=9940,ERR=9940)(FORM(IV),IV=1,109) IF(LENTL(LLM-10).GT.0)FVLDTP=-1 IF(LENTL(LLM-10).LT.0)GOTO 9940)C -1 FLAGS THIS AS A "TEXT" CELL DISPLAY. GOTO 9880 9940 CONTINUE LENTL(LLM-10)=0 LOCOL(LLM-10)=0 CLOSE(UNIT=LLM,ERR=9880) 9880 CONTINUE3C THIS SETTING OF FVLD ALLOWS THE Q OPTION TO WORK.& IF(FVLDTP.NE.0)CALL UVT100(CUP,M23,J) 13 CONTINUE CALL XVBLGT(M1,M2,DVS(N1,N2))C DVS(N1,N2)=XVBLS(M1,M2) IF(FVLDTP.EQ.0)GOTO 100! IF(FORMFG.GT.0.OR.(FVLDTP.LT.0))/ 1 ENCODE(100,17,FORM2)(FORM(II),II=1,100)17 FORMAT(1000WWVRTADATADATADATADATADATA0A1,34A1) IF(FORMFG.NE.0)GOTO 4321 DO 6304 KKKK=1,9 KKKKK=FORM(KKKK+119)C KKKKK=DFMTS(KKKK,N1,N2)6304 DFE(KKKK+1)=MAX0(32,KKKKK) DFE(11)=32 DFE(1)='(' DFE(12)=')' CALL TYPGET(M1,M2,TYPE(1,1))# IF(TYPE(1,1).EQ.2.AND.FVLDTP.GT.0)0 1 ENCODE(100,DFE,FORM2,ERR=4321)DVS(N1,N2)# IF(TYPE(1,1).NE.2.AND.FVLDTP.GT.0)3 1 ENCODE(100,DFE,FORM2,ERR=4321)LDVS(1,N1,N2) 4321 CONTINUE KWID=CWIDS(N1)NC *** FIND OUT HOW MUCH ROOM THERE IS NOW. WE KNOW WHERE WE'RE DISPLAYING, SO4C *** ALLOW NULL CELLS TO BE SHOWN PROVIDED WE ARE:%C 1. DISPLAYING TEXT IN THE CELL, ORGC 2. IN VIEW FORMULA MODE, AND THE NEXT CELL(S) OVER ARE NULL (FVLD=0)) IF(FORMFG.EQ.0.AND.FVLDTP.GE.0)GOTO 8444 III=N1+1 IF(III.GT.DRWV)GOTO 8446 DO 8445 II=III,DRWV3C FOLLOW ALONG WITH THE DISPLAY'S MAPPING TO SHEET. IIII=NRDSP(II,N2) IIIII=NCDSP(II,N2)" CALL FVLDGT(IIII,IIIII,FVLD(1,1)) IF(FVLD(1,1).NE.0)GOTO 8444 KWID=KWID+CWIDS(II) 8445 CONTINUE 8446 CONTINUEC TEST IF LAST CELL IS NULL 8444 CONTINUE KWID=MIN0(KWID,JPL);C ****** END OF MODS FOR PRINTING INTO ADJACENT NULL CELLS.0 IF(ICODE.NE.10)WRITE(6,17)(FORM2(II),II=1,KWID) IF(ICODE.NE.10)GOTO 100 IF(JPL-KWID.LT.0)GOTO 1158 ENCODE(KWID,17,PRTLIN(JP),ERR=100)(FORM2(II),II=1,KWID) 100 CONTINUE 115 CONTINUE$C HERE KEEP TRACK OF AMOUNT PRINTED. JP=JP+CWIDS(N1) JPL=JPL-CWIDS(N1) 110 CONTINUE IF(ICODE.NE.10)GOTO 10 DO 634 KKKQ=1,132& IF(PRTLIN(KKKQ).LT.32)PRTLIN(KKKQ)=32 634 CONTINUE WRITE(8,18)(PRTLIN(II),II=1,JP)18 FORMAT(100A1,34A1) DO 19 LN1=1,13219 PRTLIN(LN1)=32 10 CONTINUE IF(ICODE.EQ.10)CLOSE(UNIT=8)C IF(LLVL.LE.0)RETURNC DO 9915 N=1,LLVL IF(IDOL4.EQ.0)RETURN DO 9915 N=1,4 LLU=N+10 CLOSE(UNIT=LLU,ERR=9915) 9915 CONTINUE LLVL=0 RETURN END" SUBROUTINE GETFNL(LINE,LSKP,LLEN)/C PARSE OUT FILENAME AND GET LSKP, LLEN NUMBERS LOGICAL*1 LINE(80) INTEGER*2 LSKP,LLEN,LO,HI LSKP=0 LLEN=32000(C SET INITIAL NUMBERS TO READ WHOLE FILE N=INDEX(LINE,',') IF(N.LE.0.OR.N.GT.78)RETURNDC IF CANNOT FIND COMMA, JUST SKIP OUT & TRY TO CATCH ERRORS ON OPEN. LINE(N)=0C NULL TERMINATE FILENAME LO=N+1 HI=LO+20 CALL GN(LO,HI,LSKP,LINE) LO=N+1 N=INDEX(LINE(LO),',') IF(N.LE.0.OR.N.GT.30)RETURN LO=LO+N HI=LO+20 CALL GN(LO,HI,LLEN,LINE)C SHOULD HAVE NUMBERS NOW RETURN END SUBROUTINE DSPSHT(ICODE)#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY.7C DISPLAY SPREAD SHEET ON SCREEN OR IN FILE IF ICODE=107C USES UVT100 TO TWEAK THE VT100. NO WRAP IS ASSUMED SO5C OUTPUT UP TO 132 COLS BY 24 LINES IS OK. ONLY CHECK>C WIDTH TO ALLOW VT100 LOOKALIKES WITH MORE DISPLAY LINES TOO. INCLUDE 'VKLUGPRM.FTN'C PARAMETER RRCL=RRW*RCLG PARAMETER CUP = 1, CUU = 2, CUD = 3, CUF = 4, CUB = 5, DECDWL = 6G $, DECDHL = 7, DECRC = 8, DECSC = 9, DECSWL = 10, ED = 11, EL = 12A $, SGR = 13, NEL = 14, SCS = 15, SM = 16, RM = 17, ANSI = 18=C NOTE: THROUGHOUT, ROWS ARE ACTUALLY DOWN, COLUMNS ACROSS ONAC SCREEN. ROW 0 IN DISPLAY IS THE 27 ACCUMULATORS A-Z AND %, WITH>C % BEING THE LAST-COMPUTED VALUE FROM THE CALC PROGRAM, WHICHAC KNOWS HOW TO ACCESS THE DATA BUT IS JUST PASSED COMMAND STRINGS C FROM THE DISK BASED FILE HERE., LOGICAL*1 FORM,FVLD,CMDLIN(132),PRTLIN(132) INTEGER*4 VNLT LOGICAL*1 LBEL(4)( LOGICAL*1 LET1,LET2,FORM2(128),NMSH(80) COMMON/NMSH/NMSH4C FLAG BORDR=1 IF WE WANT TO OMIT BORDERS ON DRAWINGC THE SCREEN DISPLAY TO A FILE. INTEGER*2 BORDR@C COMMON ICPOS ALLOWS UVT100 ROUTINE ACCESS TO DISPLAYED NUMBERS$C FOR USES SUCH AS SETTING COLORS... INTEGER*2 IC1POS,IC2POS COMMON/ICPOS/IC1POS,IC2POS" REAL*8 XVBLS(RRWP,RCLP),VDSP,VCLC LOGICAL*1 DFE(12)$ DIMENSION FORM(128),FVLD(RRWP,RCLP)AC FVLD FLAG 0 = NO FORMULA, -1= DISPLAY FO00WV }RMULA ITSELF, NOT VALUE=C 1=VALID ACTIVE FORMULA THERE TO EVALUATE. INITIALLY ALL 0'SC SO INITIALLY IGNORE.CDC ROUTINE IN2AS COMPUTES ASCII CHARACTER NAMES OF SUBSCRIPTS IN1,IN2=C SO DISPLAY CAN HAVE THEM. IT MUST BE THE INVERSE OF VARSCN.( INTEGER*2 PROW,PCOL,DROW,DCOL,DRWV,DCLV* COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRWV,DCLV( DIMENSION NRDSP(DRW,DCL),NCDSP(DRW,DCL) COMMON/D2R/NRDSP,NCDSP INTEGER*2 ILNFG,ILNCT,RCF LOGICAL*1 ILINE(106) COMMON/ILN/ILNFG,ILNCT,ILINE LOGICAL*1 OARRY(100) INTEGER*2 OSWIT,OCNTR COMMON/OAR/OSWIT,OCNTR,OARRY+C COMMON OAR SWITCHES OUTPUT OFF IF OSWIT=2" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9)) LOGICAL*1 AVBLS(20,27),VBLS(8,RRWP,RCLP)$ EQUIVALENCE(XVBLS(1,1),VBLS(1,1,1)) COMMON/V/TYPE,AVBLS,VBLS,VLEN INTEGER *2 FORMFG,RCFGX COMMON/FFGG/FORMFG,RCFGXCCC DISPLAY ARRAY WILL KEEP A COPY OF VARIABLES DISPLAYED AND FORMATSAC USED LOCALLY WHICH DISPLAY ROUTINE CAN USE TO SEE WHAT ACTUALLYBC NEEDS TO BE REFRESHED ON SCREEN. DRWV AND DCLV ARE COLS, ROWS OF#C DISPLAY ACTUALLY USED FOR SCREEN. INTEGER*2 CWIDS(DRW)HC CWIDS IS WIDTHS IN CHARACTERS OF COLUMNS ON DISPLAY. NOTE THAT BECAUSEHC OF PECULIAR INVERSION WHICH I AM TOO LAZY TO CORRECT IT IS DIMENSIONEDC AS DRW NOT DCL. REAL*8 DVS(DRW,DCL) INTEGER*4 LDVS(2,DRW,DCL)" EQUIVALENCE(LDVS(1,1,1),DVS(1,1)) COMMON /FVLDC/FVLDC LOGICAL*1 DFMTS(10,DRW,DCL)C 10 CHARACTERS PER ENTRY.C COMMON/DSPCMN/DVS,DFMTS,CWIDS COMMON/DSPCMN/DVS,CWIDS)C THISRW,THISCL = CURRENT DISPLAYED LOCS. INTEGER*2 THISRW,THISCL-C NOTE ROWS ARE DOWN, COLS ACROSS INTERNALLY.8C COLUMN 2 = NUMBERS. DISPLAY COLS 2-22 WITH COL 1=TITLE6C COL 23,24 FOR COMMANDS.(LCMDR (PARAMETER) ACTUALLY.)C ROW OFFSET BY 6 FOR NUMBERS.C@C MAINTAIN AN "INITIALIZED" BITMAP HERE TO USE TO AVOID GOING TOC DISK FOR FVLD.C LOGICAL*1 IBITMPC DIMENSION IBITMP(BRRCL)C COMMON/INITD/IBITMPAC NOTE BITMAP IS ZEROED IN SPREDSHT MAIN PROGRAM (OR AT SAVE CMD)8C AND IS SET HERE (AND HERE ONLY). ONLY USED HERE TOO... LOGICAL*1 LBITS(8)! DATA LBITS/1,2,4,8,16,32,64,128/ IF(ICODE.NE.10)GOTO 3000 CALL UVT100(CUP,LCMDR,1) CALL UVT100(EL,2) WRITE(6,25)=25 FORMAT('Enter print file spec., / after to omit borders>') READ(5,26)ISZ,FORM226 FORMAT(Q,128A1) ISZ=MIN0(127,ISZ) FORM2(ISZ+1)=0 BORDR=0 DO 4111 N=1,ISZ+C IF FILENAME HAS / AFTERWARDS, OMIT BORDER IF(FORM2(N).EQ.'/')BORDR=17C NULL OUT THE / SO THAT FILENAME WILL PARSE CORRECTLY. IF(FORM2(N).EQ.'/')FORM2(N)=0 4111 CONTINUE8 OPEN(UNIT=8,FILE=FORM2,CARRIAGECONTROL='LIST',RECL=132)C CALL ASSIGN(8,FORM2) DO 27 N=1,13227 PRTLIN(N)=32 ENCODE(7,2,PRTLIN) 3000 CONTINUE CALL UVT100(SGR,0) IF(ICODE.EQ.10)WRITE(8,17)NMSH IF(ICODE.EQ.10)GOTO 2000 IF(ICODE.NE.2)GOTO 1000C DRAW LABELS FIRST CALL UVT100(CUP,1,1) CALL UVT100(EL,2) IF(ICODE.NE.10)WRITE(6,17)NMSH CALL UVT100(CUP,2,1) CALL UVT100(EL,2) C ERASE TOP LINE, START AT COL 7 WRITE(6,2)2 FORMAT('ROW/COL')(C NOTE EXACTLY 7 CHARACTERS IN FORMAT #2 2000 CONTINUE J=8 CALL UVT100(SGR,7) DO 1 N1=1,DRWV LR=NRDSP(N1,1)*C NOTE PHYS SHEET OFFSET BY 1 (SEE VARSCN)"C DISPLAY SHEET NUMBERS START AT 1$ IF(ICODE.NE.10)CALL UVT100(CUP,2,J) CALL IN2AS(LR,LBEL) IF(ICODE.EQ.10)GOTO 2020 WRITE(6,3)LBEL 3 FORMAT(4A1): IF(LBEL(4).EQ.32.AND.LBEL(3).EQ.32)CALL UVT100(CUP,2,J+2): IF(LBEL(4).EQ.32.AND.LBEL(3).NE.32)CALL UVT100(CUP,2,J+3) WRITE(6,7)N17 FORMAT('=',I2) GOTO 2030 2020 CONTINUE$ IF((J+CWIDS(N1)-7).GT.121)GOTO 2030 ICWD=MAX0(7,CWIDS(N1))- ENCODE(ICWD,2021,PRTLIN(J),ERR=2030),LBEL,N12021 FORMAT(4A1,'=',I2) 2030 CONTINUE J=J+CWIDS(N1) IF(J.GT.MPWD)GOTO 40 1 CONTINUE 40 CONTINUEC NOW COL LBLS DONEC DO NUMBERS ACROSS LEFT.C ONLY DO SO ON SCREEN.0 IF(BORDR.EQ.0.AND.ICODE.EQ.10)WRITE(8,18)PRTLIN DO 2031 KKK=1,1322031 PRTLIN(KKK)=32 IF(ICODE.EQ.10)GOTO 1000 CALL UVT100(SGR,7) MCX=MIN0(20,DCLV)+2,C ROWS ARE JUST OFFSET...NO MONKEY BUSINESS. DO 6 N1=3,MCX M1=N1-2 LC=NCDSP(1,M1)-1C N1=DISPLAY ROW C00 WWVRTADATADATADATADATADATAALL UVT100(CUP,N1,1) WRITE(6,8)LC8 FORMAT(I5,'>') 6 CONTINUEC NOW DISPLAY VALUES. 1000 CONTINUE CALL UVT100(SGR,0) DO 10 N2=1,DCLV JP=8 JPL=125 DO 110 N1=1,DRWV M1=NRDSP(N1,N2) M2=NCDSP(N1,N2)1C M1,M2 = PHYS SHEET COORDS OF WHAT IS DISPLAYED. M2M1=M2-15 IF(BORDR.EQ.0.AND.ICODE.EQ.10)ENCODE(6,8,PRTLIN)M2-1 VDSP=DVS(N1,N2) CALL XVBLGT(M1,M2,VCLC)C VCLC=XVBLS(M1,M2)8C SEE IF DISPLAYED AND CALCULATED NUMBERS ARE IDENTICAL.C ONLY DISPLAY IF CHANGED.8 IF(VDSP.EQ.VCLC.AND.ICODE.NE.2.AND.ICODE.NE.10)GOTO 100 IC1POS=M1 IC2POS=M2BC FALL THRU HERE IF WE NEEDTO DISPLAY A NUMBER IN ROW 3+N2, COL N1 C THEN RE-ESTABLISH FORMAT, ETC. M23=N2+2 J=8 DO 11 N11=1,N1C GET THE COORDS OF OUR CELL.11 J=J+CWIDS(N11) J=J-CWIDS(N1)C CALL UVT100(CUP,M23,J)$C NO EFFECT HERE ANYWAY...FORGET IT.C DO 12 N11=1,CWIDS(N1)C12 WRITE(6,137)C137 FORMAT(X)CC BLANK OUT CELL ABOVE.C CALL UVT100(CUP,M23,J) IRX=(M2-1)*RRW+M1C C BITMAP CODEC9C ONLY READ DISK FOR SHEET DISPLAY IF THE BITMAP BIT FOR:C THIS ENTRY IS 0 INDICATING IT HAS NOT BEEN SET ALREADY.:C USE LBITS BITS ARRAY TO INDEX INTO BITS WITHIN THE MAP.C ******** BEWARE *********:C THIS SECTION RELIES ON FORTRAN DOING BOOLEAN OPERATIONS:C WITH MASKING INSTRUCTIONS. THIS IS TRUE IN DEC FORTRAN,<C AND USUALLY IN IBM FORTRAN BUT NOT ALWAYS IN IBM OR OTHER C PLACES...CC IR8=(IRX-1).AND.7 CC IR8=IR8+10C IR8 IS SUBSCRIPT WITHIN THE BYTE OF THE BITMAPC IRS IS BITMAP ARRAY SUBSCRIPTC 100 IS TGT IF FVLD=0 & BMP 1CC IRS=(IRX+7)/8!CC KKK=IBITMP(IRS).AND.LBITS(IR8)-C TURN ON THE INITIALIZED BIT IN ANY CASE NOW(CC IBITMP(IRS)=IBITMP(IRS).OR.LBITS(IR8)1C THE NEXT LINE IS THE TEST THAT SAVES OUR READS:5C IF THERE'S NOTHING THERE TO DISPLAY AND WE KNOW THE6C CELL HAS BEEN READ OFF THE FILE, DON'T READ THE FILE"C AGAIN BUT JUST SKIP THE DISPLAY.$C ... DO HOWEVER RESET DVS THOUGH.CC CALL FVLDGT(M1,M2,FVLD(1,1))+CCCC IF(FVLD(1,1).EQ.0.AND.KKK.NE.0)GOTO 13CC IF(FVLD(1,1).EQ.0)GOTO 13CC CALL WRKFIL(IRX,FORM,0)C READ(7'IRX)FORM9C ALLOW FOR FVLD TO HAVE CONSTANT VS FORMULA SIGNIFICANCE IF(FORM(119).LT.-1)FORM(119)=-3 IF(FORM(119).GT.1)FORM(119)=3C<C FVLD VALUES OF 2 INDICATE ALREADY-COMPUTED CONSTANTS.DON'T8C FORCE THEM TO BE REDONE. OTHERWISE DO FILL IN HOWEVER. CALL FVLDGT(M1,M2,FVLD(1,1))/ IF(FVLD(1,1).NE.2)CALL FVLDST(M1,M2,FORM(119))C FVLD(M1,M2)=FORM(119)' IF(FORM(120).LE.0)CALL FVLDST(M1,M2,0) CALL FVLDGT(M1,M2,FVLD(1,1))3C THIS SETTING OF FVLD ALLOWS THE Q OPTION TO WORK.) IF(FVLD(1,1).NE.0)CALL UVT100(CUP,M23,J) 13 CONTINUE CALL XVBLGT(M1,M2,DVS(N1,N2))C DVS(N1,N2)=XVBLS(M1,M2) IF(FVLD(1,1).EQ.0)GOTO 100$ IF(FORMFG.GT.0.OR.(FVLD(1,1).LT.0))/ 1 ENCODE(100,17,FORM2)(FORM(II),II=1,100)17 FORMAT(100A1,34A1) IF(FORMFG.NE.0)GOTO 4321 DO 6304 KKKK=1,9 KKKKK=FORM(KKKK+119)C KKKKK=DFMTS(KKKK,N1,N2)6304 DFE(KKKK+1)=MAX0(32,KKKKK) DFE(11)=32 DFE(1)='(' DFE(12)=')' CALL TYPGET(M1,M2,TYPE(1,1))& IF(TYPE(1,1).EQ.2.AND.FVLD(1,1).GT.0)0 1 ENCODE(100,DFE,FORM2,ERR=4321)DVS(N1,N2)& IF(TYPE(1,1).NE.2.AND.FVLD(1,1).GT.0)3 1 ENCODE(100,DFE,FORM2,ERR=4321)LDVS(1,N1,N2) 4321 CONTINUE KWID=CWIDS(N1)NC *** FIND OUT HOW MUCH ROOM THERE IS NOW. WE KNOW WHERE WE'RE DISPLAYING, SO4C *** ALLOW NULL CELLS TO BE SHOWN PROVIDED WE ARE:%C 1. DISPLAYING TEXT IN THE CELL, ORGC 2. IN VIEW FORMULA MODE, AND THE NEXT CELL(S) OVER ARE NULL (FVLD=0), IF(FORMFG.EQ.0.AND.FVLD(1,1).GE.0)GOTO 8444 III=N1+1 IF(III.GT.DRWV)GOTO 8446 DO 8445 II=III,DRWV3C FOLLOW ALONG WITH THE DISPLAY'S MAPPING TO SHEET. IIII=NRDSP(II,N2) IIIII=NCDSP(II,N2)" CALL FVLDGT(IIII,IIIII,FVLD(1,1)) IF(FVLD(1,1).NE.0)GOTO 8444 KWID=KWID+CWIDS(II) 8445 CONTINUE 8446 CONTINUEC TEST IF LAST CELL IS NULL 8444 CONTINUE KWID=MIN0(KWID,JPL);C ****** END OF MODS FOR PRINTING INTO ADJACENT NULL CELLS.0 IF(ICODE.NE.10)WRITE(6,17)(FORM2(II),II=1,KWID) IF(ICODE.NE.10)GOTO 100 IF(JPL-KWID.LT.0)GOTO 1158 ENCODE(KW00(W )W }ID,17,PRTLIN(JP),ERR=100)(FORM2(II),II=1,KWID) 100 CONTINUE 115 CONTINUE$C HERE KEEP TRACK OF AMOUNT PRINTED. JP=JP+CWIDS(N1) JPL=JPL-CWIDS(N1) 110 CONTINUE IF(ICODE.NE.10)GOTO 10 DO 634 KKKQ=1,132& IF(PRTLIN(KKKQ).LT.32)PRTLIN(KKKQ)=32 634 CONTINUE WRITE(8,18)(PRTLIN(II),II=1,JP)18 FORMAT(100A1,34A1) DO 19 LN1=1,13219 PRTLIN(LN1)=32 10 CONTINUE IF(ICODE.EQ.10)CLOSE(UNIT=8) RETURN END SUBROUTINE DSPSHT(ICODE)#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY.7C DISPLAY SPREAD SHEET ON SCREEN OR IN FILE IF ICODE=107C USES UVT100 TO TWEAK THE VT100. NO WRAP IS ASSUMED SO5C OUTPUT UP TO 132 COLS BY 24 LINES IS OK. ONLY CHECK5C MODIFIED FOR VAX TO ALLOW UP TO 512 CHARS WIDE OUT.>C WIDTH TO ALLOW VT100 LOOKALIKES WITH MORE DISPLAY LINES TOO. INCLUDE 'VKLUGPRM.FTN'C PARAMETER RRCL=RRW*RCLG PARAMETER CUP = 1, CUU = 2, CUD = 3, CUF = 4, CUB = 5, DECDWL = 6G $, DECDHL = 7, DECRC = 8, DECSC = 9, DECSWL = 10, ED = 11, EL = 12A $, SGR = 13, NEL = 14, SCS = 15, SM = 16, RM = 17, ANSI = 18=C NOTE: THROUGHOUT, ROWS ARE ACTUALLY DOWN, COLUMNS ACROSS ONAC SCREEN. ROW 0 IN DISPLAY IS THE 27 ACCUMULATORS A-Z AND %, WITH>C % BEING THE LAST-COMPUTED VALUE FROM THE CALC PROGRAM, WHICHAC KNOWS HOW TO ACCESS THE DATA BUT IS JUST PASSED COMMAND STRINGS C FROM THE DISK BASED FILE HERE.. INTEGER*2 IDOL1,IDOL2,IDOL3,IDOL4,IDOL5,IDOL61 COMMON/DOLLR/IDOL1,IDOL2,IDOL3,IDOL4,IDOL5,IDOL6, LOGICAL*1 FORM,FVLD,CMDLIN(132),PRTLIN(512) LOGICAL*1 PRTLIX(524)! EQUIVALENCE(PRTLIN(1),PRTLIX(1))1C PRTLIX JUST GIVES A FEW EXTRA SPACES FOR SAFETY INTEGER*4 VNLT,FVLDTP LOGICAL*1 LBEL(4)( LOGICAL*1 LET1,LET2,FORM2(128),NMSH(80) COMMON/NMSH/NMSH4C FLAG BORDR=1 IF WE WANT TO OMIT BORDERS ON DRAWINGC THE SCREEN DISPLAY TO A FILE. INTEGER*2 BORDR,TOMT@C COMMON ICPOS ALLOWS UVT100 ROUTINE ACCESS TO DISPLAYED NUMBERS$C FOR USES SUCH AS SETTING COLORS... INTEGER*2 IC1POS,IC2POS COMMON/ICPOS/IC1POS,IC2POS INTEGER*2 IOLVL COMMON/IOLVL/IOLVL" REAL*8 XVBLS(RRWP,RCLP),VDSP,VCLC LOGICAL*1 DFE(12)$ DIMENSION FORM(128),FVLD(RRWP,RCLP)AC FVLD FLAG 0 = NO FORMULA, -1= DISPLAY FORMULA ITSELF, NOT VALUE=C 1=VALID ACTIVE FORMULA THERE TO EVALUATE. INITIALLY ALL 0'SC SO INITIALLY IGNORE.CDC ROUTINE IN2AS COMPUTES ASCII CHARACTER NAMES OF SUBSCRIPTS IN1,IN2=C SO DISPLAY CAN HAVE THEM. IT MUST BE THE INVERSE OF VARSCN.( INTEGER*2 PROW,PCOL,DROW,DCOL,DRWV,DCLV INTEGER*2 LLCMD,LLDSP6 COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRWV,DCLV,LLCMD,LLDSP( DIMENSION NRDSP(DRW,DCL),NCDSP(DRW,DCL) COMMON/D2R/NRDSP,NCDSP INTEGER*2 ILNFG,ILNCT,RCF LOGICAL*1 ILINE(106) COMMON/ILN/ILNFG,ILNCT,ILINE INTEGER LENTL(5),LOCOL(5) LOGICAL*1 FILINE(600) LOGICAL*1 OARRY(100) INTEGER*2 OSWIT,OCNTR COMMON/OAR/OSWIT,OCNTR,OARRY+C COMMON OAR SWITCHES OUTPUT OFF IF OSWIT=2" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9)) LOGICAL*1 AVBLS(20,27),VBLS(8,RRWP,RCLP)$ EQUIVALENCE(XVBLS(1,1),VBLS(1,1,1)) COMMON/V/TYPE,AVBLS,VBLS,VLEN INTEGER *2 FORMFG,RCFGX COMMON/FFGG/FORMFG,RCFGXCCC DISPLAY ARRAY WILL KEEP A COPY OF VARIABLES DISPLAYED AND FORMATSAC USED LOCALLY WHICH DISPLAY ROUTINE CAN USE TO SEE WHAT ACTUALLYBC NEEDS TO BE REFRESHED ON SCREEN. DRWV AND DCLV ARE COLS, ROWS OF#C DISPLAY ACTUALLY USED FOR SCREEN. INTEGER*2 CWIDS(DRW)HC CWIDS IS WIDTHS IN CHARACTERS OF COLUMNS ON DISPLAY. NOTE THAT BECAUSEHC OF PECULIAR INVERSION WHICH I AM TOO LAZY TO CORRECT IT IS DIMENSIONEDC AS DRW NOT DCL. REAL*8 DVS(DRW,DCL) INTEGER*4 LDVS(2,DRW,DCL)" EQUIVALENCE(LDVS(1,1,1),DVS(1,1)) COMMON /FVLDC/FVLDC LOGICAL*1 DFMTS(10,DRW,DCL)C 10 CHARACTERS PER ENTRY.C COMMON/DSPCMN/DVS,DFMTS,CWIDS COMMON/DSPCMN/DVS,CWIDS)C THISRW,THISCL = CURRENT DISPLAYED LOCS. INTEGER*2 THISRW,THISCL-C NOTE ROWS ARE DOWN, COLS ACROSS INTERNALLY.8C COLUMN 2 = NUMBERS. DISPLAY COLS00 0WWVRTADATADATADATADATADATA 2-22 WITH COL 1=TITLE6C COL 23,24 FOR COMMANDS.(LCMDR (PARAMETER) ACTUALLY.)C ROW OFFSET BY 6 FOR NUMBERS.C@C MAINTAIN AN "INITIALIZED" BITMAP HERE TO USE TO AVOID GOING TOC DISK FOR FVLD.C LOGICAL*1 IBITMPC DIMENSION IBITMP(BRRCL)C COMMON/INITD/IBITMPAC NOTE BITMAP IS ZEROED IN SPREDSHT MAIN PROGRAM (OR AT SAVE CMD)8C AND IS SET HERE (AND HERE ONLY). ONLY USED HERE TOO... INTEGER*2 NULAST,LFVD COMMON/NULXXX/NULAST,LFVD INTEGER*2 RRWACT,RCLACT COMMON/RCLACT/RRWACT,RCLACTEC RRWACT AND RCLACT ARE MAX ACTIVE ROW, COL NUMBERS. ALL CELLS BEYOND&C THAT ARE EMPTY (OF FORMULA AT LEAST) LOGICAL*1 LBITS(8)! DATA LBITS/1,2,4,8,16,32,64,128/ IF(ICODE.NE.10)GOTO 3000 CALL UVT100(CUP,LLCMD,1) CALL UVT100(EL,2) WRITE(6,25)=25 FORMAT('Enter print file spec., / after to omit borders>')( READ(IOLVL,26,END=510,ERR=510)ISZ,FORM226 FORMAT(Q,128A1) ISZ=MIN0(127,ISZ) FORM2(ISZ+1)=0 BORDR=0 TOMT=0 DO 4111 N=1,ISZ+C IF FILENAME HAS / AFTERWARDS, OMIT BORDER IF(FORM2(N).EQ.'/')BORDR=17C NULL OUT THE / SO THAT FILENAME WILL PARSE CORRECTLY. IF(FORM2(N).EQ.'/')FORM2(N)=0 IF(FORM2(N).EQ.'%')TOMT=1 4111 CONTINUE/ OPEN(UNIT=8,FILE=FORM2,CARRIAGECONTROL='LIST', 1 RECL=600,ERR=9916)C CALL ASSIGN(8,FORM2) DO 27 N=1,51227 PRTLIN(N)=32 ENCODE(7,2,PRTLIN) GOTO 3766 3000 CONTINUE3C FLAG FOR REDISPLAY THAT BOTTOM LINE GETS UPDATED. NULAST=-4 3766 CONTINUE CALL UVT100(SGR,0)/ IF(TOMT.EQ.0.AND.ICODE.EQ.10)CALL PLW(NMSH,80) IF(ICODE.EQ.10)GOTO 2000 IF(ICODE.NE.2)GOTO 1000C DRAW LABELS FIRST CALL UVT100(CUP,1,1) CALL UVT100(EL,2) IF(ICODE.NE.10)WRITE(6,17)NMSH CALL UVT100(CUP,2,1) CALL UVT100(EL,2) C ERASE TOP LINE, START AT COL 7 WRITE(6,2)2 FORMAT('ROW/COL')(C NOTE EXACTLY 7 CHARACTERS IN FORMAT #2 2000 CONTINUE J=8 CALL UVT100(SGR,7) DO 1 N1=1,DRWV LR=NRDSP(N1,1)*C NOTE PHYS SHEET OFFSET BY 1 (SEE VARSCN)"C DISPLAY SHEET NUMBERS START AT 1$ IF(ICODE.NE.10)CALL UVT100(CUP,2,J) CALL IN2AS(LR,LBEL) IF(ICODE.EQ.10)GOTO 2020 WRITE(6,3)LBEL 3 FORMAT(4A1): IF(LBEL(4).EQ.32.AND.LBEL(3).EQ.32)CALL UVT100(CUP,2,J+2): IF(LBEL(4).EQ.32.AND.LBEL(3).NE.32)CALL UVT100(CUP,2,J+3) WRITE(6,7)N17 FORMAT('=',I2) GOTO 2030 2020 CONTINUE$ IF((J+CWIDS(N1)-7).GT.500)GOTO 2030 ICWD=MAX0(7,CWIDS(N1))- ENCODE(ICWD,2021,PRTLIN(J),ERR=2030),LBEL,N12021 FORMAT(4A1,'=',I2) 2030 CONTINUE J=J+CWIDS(N1) IF(J.GT.MPWD)GOTO 40 1 CONTINUE 40 CONTINUEC NOW COL LBLS DONEC DO NUMBERS ACROSS LEFT.C ONLY DO SO ON SCREEN.3 IF(BORDR.EQ.0.AND.ICODE.EQ.10)CALL PLW(PRTLIN,512) DO 2031 KKK=1,6002031 FILINE(KKK)=32 DO 5031 KKK=1,5125031 PRTLIN(KKK)=32C 32 IS ASCII SPACE IF(ICODE.EQ.10)GOTO 1000 CALL UVT100(SGR,7) MCX=MIN0(LLCMD-1,DCLV)+2C LLVL=0,C ROWS ARE JUST OFFSET...NO MONKEY BUSINESS. DO 6 N1=3,MCX M1=N1-2 LC=NCDSP(1,M1)-1C N1=DISPLAY ROW CALL UVT100(CUP,N1,1) WRITE(6,8)LC8 FORMAT(I5,'>') 6 CONTINUEC NOW DISPLAY VALUES. 1000 CONTINUE CALL UVT100(SGR,0) DO 10 N2=1,DCLV3C JP IS CURRENT LOC. JPL IS CHARACTERS LEFT ACROSS. JP=8 JPL=504 DO 110 N1=1,DRWV M1=NRDSP(N1,N2) M2=NCDSP(N1,N2)1C M1,M2 = PHYS SHEET COORDS OF WHAT IS DISPLAYED. M2M1=M2-12C *** IF NORMAL DISPLAY, SKIP IF PAST ACTIVE AREA.?C *** FOR FULL UPDATE KEEP THE COMPLETE LOGIC, HOWEVER, IN CASE1C *** VALUES BEYOND MAX FORMULA AREA GET CHANGED.4CC IF(ICODE.NE.2.AND.ICODE.NE.10.AND.IDOL4.EQ.0.AND.1CC 1 (M1.GT.RRWACT.OR.M2.GT.RCLACT))GOTO 100$C IF(ICODE.NE.10.AND.IDOL4.EQ.0.AND.0C 1 (M1.GT.RRWACT.OR.M2.GT.RCLACT))GOTO 1005 IF(BORDR.EQ.0.AND.ICODE.EQ.10)ENCODE(6,8,PRTLIN)M2-1C *** EXPERIMENTAL *** CALL FVLDGT(M1,M2,FVLD(1,1)); IF(ICODE.NE.2.AND.ICODE.NE.10.AND.IDOL4.EQ.0.AND.FVLD(1,1) 1 .EQ.0)GOTO 1002C SKIP DISPLAY OR UPDATE OF TOTALLY UNINITED CELLSC *** END EXPERIMENTAL SECTION VDSP=DVS(N1,N2) CALL XVBLGT(M1,M2,VCLC)C VCLC=XVBLS(M1,M2)8C SEE IF DISPLAYED AND CALCULATED NUMBERS ARE IDENTICAL.C ONLY DISPLAY IF CHANGED.+C *** OVER00 8W)W }RRIDDEN IN MS MODE (IDOL4 <> 0 ). IF(IDOL4.NE.0)GOTO 6208 IF(VDSP.EQ.VCLC.AND.ICODE.NE.2.AND.ICODE.NE.10)GOTO 100 620 IC1POS=M1 IC2POS=M2BC FALL THRU HERE IF WE NEEDTO DISPLAY A NUMBER IN ROW 3+N2, COL N1 C THEN RE-ESTABLISH FORMAT, ETC. M23=N2+2 J=8 DO 11 N11=1,N1C GET THE COORDS OF OUR CELL.11 J=J+CWIDS(N11) J=J-CWIDS(N1)(C CURRENT CHARACTER COL NUMBER IS NOW J.C CALL UVT100(CUP,M23,J)$C NO EFFECT HERE ANYWAY...FORGET IT.C DO 12 N11=1,CWIDS(N1)C12 WRITE(6,137)C137 FORMAT(X)CC BLANK OUT CELL ABOVE.C CALL UVT100(CUP,M23,J)C IRX=(M2-1)*RRW+M1 CALL REFLEC(M2,M1,IRX)C C BITMAP CODEC9C ONLY READ DISK FOR SHEET DISPLAY IF THE BITMAP BIT FOR:C THIS ENTRY IS 0 INDICATING IT HAS NOT BEEN SET ALREADY.:C USE LBITS BITS ARRAY TO INDEX INTO BITS WITHIN THE MAP.C ******** BEWARE *********:C THIS SECTION RELIES ON FORTRAN DOING BOOLEAN OPERATIONS:C WITH MASKING INSTRUCTIONS. THIS IS TRUE IN DEC FORTRAN,<C AND USUALLY IN IBM FORTRAN BUT NOT ALWAYS IN IBM OR OTHER C PLACES...CC IR8=(IRX-1).AND.7 CC IR8=IR8+10C IR8 IS SUBSCRIPT WITHIN THE BYTE OF THE BITMAPC IRS IS BITMAP ARRAY SUBSCRIPTC 100 IS TGT IF FVLD=0 & BMP 1CC IRS=(IRX+7)/8!CC KKK=IBITMP(IRS).AND.LBITS(IR8)-C TURN ON THE INITIALIZED BIT IN ANY CASE NOW(CC IBITMP(IRS)=IBITMP(IRS).OR.LBITS(IR8)1C THE NEXT LINE IS THE TEST THAT SAVES OUR READS:5C IF THERE'S NOTHING THERE TO DISPLAY AND WE KNOW THE6C CELL HAS BEEN READ OFF THE FILE, DON'T READ THE FILE"C AGAIN BUT JUST SKIP THE DISPLAY.$C ... DO HOWEVER RESET DVS THOUGH.CC CALL FVLDGT(M1,M2,FVLD(1,1))+CCCC IF(FVLD(1,1).EQ.0.AND.KKK.NE.0)GOTO 13+CC IF(IDOL4.EQ.0.AND.FVLD(1,1).EQ.0)GOTO 13CC CALL WRKFIL(IRX,FORM,0)C READ(7'IRX)FORM9C ALLOW FOR FVLD TO HAVE CONSTANT VS FORMULA SIGNIFICANCE IF(FORM(119).LT.-1)FORM(119)=-3 IF(FORM(119).GT.1)FORM(119)=3C<C FVLD VALUES OF 2 INDICATE ALREADY-COMPUTED CONSTANTS.DON'T8C FORCE THEM TO BE REDONE. OTHERWISE DO FILL IN HOWEVER. CALL FVLDGT(M1,M2,FVLD(1,1))>C TRY COMMENTING OUT THIS RESET OF FVLD - REALLY NOT NEEDED OR C DESIRABLE.0C IF(FVLD(1,1).NE.2)CALL FVLDST(M1,M2,FORM(119))CC FVLD(M1,M2)=FORM(119)(C IF(FORM(120).LE.0)CALL FVLDST(M1,M2,0)C CALL FVLDGT(M1,M2,FVLD(1,1)) FVLDTP=FVLD(1,1)C+C CODE FOR WINDOW TILING AND FILE READIN...:C &%FILENAME,NSKIP,NLEN READS FILE SKIPPING NSKIP RECS ANDC GETS NLEN RECS INC8C &&%FILENAME,NSKIP,NLEN JUST INSERTS FILE INTO PRINTOUT IF(IDOL4.EQ.0)GOTO 9880 LFTMST=JC NEED TO DO IT HERE...*C FORM ARRAY HAS FILE NAME INFO, IF ANY... LLA=INDEX(FORM,'&')$ IF(LLA.LE.0.OR.LLA.GT.100)GOTO 9882 IF(FORM(LLA+1).EQ.'&')GOTO 9881C CHECK &% FORM IF(FORM(LLA+1).NE.'%')GOTO 9882C GOT &% FORM HERE.% IF(LLVL.EQ.0.OR.LLVLF.EQ.1)GOTO 9885 DO 9886 LNNN=1,LLVL LLVLN=LLVL+10 CLOSE(UNIT=LLVLN,ERR=9886) 9886 CONTINUE LLVL=0 9885 CONTINUE LTST=LLA+2 LLVLF=1 C OPEN LLVL# CALL GETFNL(FORM(LTST),LSKIP,LLEN) IF(LLEN.LE.0)GOTO 9882 LLVL=LLVL+1 LLU=LLVL+10 IF(LLVL.GT.4)GOTO 99313 OPEN(UNIT=LLU,NAME=FORM(LTST),TYPE='OLD',READONLY, 1 ERR=9931) GOTO 9930 9931 CONTINUE LENTL(LLVL)=0 LOCOL(LLVL)=0 CLOSE(UNIT=LLU) LLVL=LLVL-1 LLU=LLVL+10 GOTO 9882 9930 CONTINUE LOCOL(LLVL)=LFTMST LENTL(LLVL)=LLEN IF(LSKIP.LE.0)GOTO 9906 DO 9907 LL=1,LSKIP+9907 READ(LLU,9889,END=9909,ERR=9909)FILINE DO 9910 N=1,6009910 FILINE(N)=32 GOTO 9911 9909 CONTINUEC EOF SO CLOSE LUN LENTL(LLVL)=0 CLOSE(UNIT=LLU) LLVL=LLVL-1 IF(LLVL.LE.0)GOTO 9880 LLU=LLVL+10 9911 CONTINUE 9906 CONTINUE'C FILE SET UP NOW... READ IN AT 9982...,C RECORD COL # OVER FOR THIS RECURSION LEVEL GOTO 9882 9881 CONTINUE0C HERE LOOK FOR && FORM. IF NONE SEEN, SKIP THIS6 IF(FORM(LLA+1).NE.'&'.OR.FORM(LLA+2).NE.'%')GOTO 9882 C HERE HAVE A FORM &&%FILE,NS,NLDC SO CLOSE OFF ALL WINDOWS IN USE AND READ IN FIRST LEVEL FILE SEEN.% IF(LLVL.EQ.0.OR.LLVLF.EQ.2)GOTO 9884 DO 9883 LNN=1,LLVL LNN1=LNN+10 CLOSE(UNIT=LNN1,ERR=9883) 9883 CONTINUEC NOW ALL OPEN UNITS CLOSED00 @WWVRTADATADATADATADATADATA LLVLF=2 LLVL=0 9884 CONTINUE LTST=LLA+3 C OPEN LLVL'9937 CALL GETFNL(FORM(LTST),LSKIP,LLEN) IF(LLEN.LE.0)GOTO 9882 LLVL=LLVL+1 LLU=LLVL+10 IF(LLVL.GT.4)GOTO 99333 OPEN(UNIT=LLU,NAME=FORM(LTST),TYPE='OLD',READONLY, 1 ERR=9933) GOTO 9934 9933 CONTINUE LLVL=LLVL-1 LLU=LLVL+10 GOTO 9882 9934 CONTINUE LOCOL(LLVL)=LFTMST LENTL(LLVL)=LLEN IF(LSKIP.LE.0)GOTO 9888 DO 9887 LL=1,LSKIP+9887 READ(LLU,9889,ERR=9901,END=9901)FILINE9889 FORMAT(200A1,200A1,200A1) DO 9908 N=1,6009908 FILINE(N)=32#C PUT IN LEADING SPACES INTO FILINE GOTO 9902 9901 CONTINUE CLOSE(UNIT=LLU) LLVL=LLVL-1 IF(LLVL.LE.0)GOTO 9880 LLU=LLVL+10%C HIT EOF ON READ, SO BACK UP A LEVEL 9902 CONTINUE-C NOW GO AHEAD & READ... GOT PAST SKIP STUFF. 9888 CONTINUE,C RECORD COL # OVER FOR THIS RECURSION LEVEL#9904 IF(LENTL(LLVL).LE.0) GOTO 9901@ READ(LLU,9889,END=9901,ERR=9901)(FILINE(IV),IV=LOCOL(LLVL),600) LENTL(LLVL)=lentl(llvl)-1c update lines left to read in<C LOOK FOR RECURSIVE CALLS TO DEEPER NESTED FILES TO INCLUDE LTST=INDEX(FILINE,'&')+3 LFTMST=LTST-3MC UPDATE SO IF IT IS A CALL,WE CAN GO HANDLE IT TILL ITS EOF OR A DEEPER CALL7 IF(LTST.GT.0.AND.LTST.LT.207.AND.FILINE(LTST+1).EQ.'&'- 1 .AND.FILINE(LTST+2).EQ.'%') GOTO 9937GC WELL, NOT A DEEPER LEVEL SO JUST GO ON AND READ THIS LEVEL TILL DONE.$ IF(ICODE.EQ.10)CALL PLW(FILINE,600)C LIMIT TT WRITES TO 132 CHARS. WRITE(6,9889,ERR=9904)(FILINE(IVV),IVV=1,132) GOTO 9904 9882 CONTINUEIC HERE HANDLE OLD WINDOW READS IN PROCESS OR JUST EXIT WITHOUT DOING MUCH IF(LLVLF.NE.1)GOTO 9880)C ONLY HANDLE "OVERLAY" STYLE READS HERE.C NORMAL OR-ING IN OF WINDOWS@C LOOK FOR LUN SUCH THAT J=LOCOL(LUN) INDICATING IT STARTS HERE.DC READ THIS CELL INTO IT AND FAKE OUT FVLD(1,1) TO GET IT DISPLAYED. IF(LLVL.LE.0)GOTO 9880 DO 9912 N=1,LLVL LLM=N+10 IF(J.EQ.LOCOL(N))GOTO 9913 9912 CONTINUE GOTO 9880 9913 CONTINUE=C NOW READ THE FILE INTO "THIS" CELL (DISPLAY PURPOSES ONLY!)C AND FLAG FVLD LENTL(LLM-10)=LENTL(LLM-10)-1 IF(LENTL(LLM-10).GT.0); 1 READ(LLM,9889,END=9940,ERR=9940)(FORM(IV),IV=1,109) IF(LENTL(LLM-10).GT.0)FVLDTP=-1 IF(LENTL(LLM-10).LT.0)GOTO 9940)C -1 FLAGS THIS AS A "TEXT" CELL DISPLAY. GOTO 9880 9940 CONTINUE LENTL(LLM-10)=0 LOCOL(LLM-10)=0 CLOSE(UNIT=LLM,ERR=9880) 9880 CONTINUE3C THIS SETTING OF FVLD ALLOWS THE Q OPTION TO WORK.& IF(FVLDTP.NE.0)CALL UVT100(CUP,M23,J) 13 CONTINUE CALL XVBLGT(M1,M2,DVS(N1,N2))C DVS(N1,N2)=XVBLS(M1,M2) IF(FVLDTP.EQ.0)GOTO 100! IF(FORMFG.GT.0.OR.(FVLDTP.LT.0))/ 1 ENCODE(100,17,FORM2)(FORM(II),II=1,100)!17 FORMAT(100A1,200A1,200A1,34A1) IF(FORMFG.NE.0)GOTO 4321 DO 6304 KKKK=1,9 KKKKK=FORM(KKKK+119)C KKKKK=DFMTS(KKKK,N1,N2)6304 DFE(KKKK+1)=MAX0(32,KKKKK) DFE(11)=32 DFE(1)='(' DFE(12)=')' CALL TYPGET(M1,M2,TYPE(1,1))# IF(TYPE(1,1).EQ.2.AND.FVLDTP.GT.0)0 1 ENCODE(100,DFE,FORM2,ERR=4321)DVS(N1,N2)# IF(TYPE(1,1).NE.2.AND.FVLDTP.GT.0)3 1 ENCODE(100,DFE,FORM2,ERR=4321)LDVS(1,N1,N2) 4321 CONTINUE KWID=CWIDS(N1)NC *** FIND OUT HOW MUCH ROOM THERE IS NOW. WE KNOW WHERE WE'RE DISPLAYING, SO4C *** ALLOW NULL CELLS TO BE SHOWN PROVIDED WE ARE:%C 1. DISPLAYING TEXT IN THE CELL, ORGC 2. IN VIEW FORMULA MODE, AND THE NEXT CELL(S) OVER ARE NULL (FVLD=0)) IF(FORMFG.EQ.0.AND.FVLDTP.GE.0)GOTO 8444 III=N1+1 IF(III.GT.DRWV)GOTO 8446 DO 8445 II=III,DRWV3C FOLLOW ALONG WITH THE DISPLAY'S MAPPING TO SHEET. IIII=NRDSP(II,N2) IIIII=NCDSP(II,N2)" CALL FVLDGT(IIII,IIIII,FVLD(1,1)) IF(FVLD(1,1).NE.0)GOTO 8444 KWID=KWID+CWIDS(II) 8445 CONTINUE 8446 CONTINUEC TEST IF LAST CELL IS NULL 8444 CONTINUE KWID=MIN0(KWID,JPL)=C MINIMIZE WITH 110 TO RESTRICT TO PRINTIONG ONE CELL FORMULAC MAX KWID=MIN0(KWID,110);C ****** END OF MODS FOR PRINTING INTO ADJACENT NULL CELLS.9 IF(ICODE.NE.10)WRITE(6,17,ERR=5560)(FORM2(II),II=1,KWID)5560 IF(ICODE.NE.10)GOTO 100 IF(JPL-KWID.LT.0)GOTO 1158 ENCODE(KWID,17,PRTLIN(JP),ERR=100)(FORM2(II),00 HW LW MW NW}II=1,KWID) 100 CONTINUE 115 CONTINUE$C HERE KEEP TRACK OF AMOUNT PRINTED. JP=JP+CWIDS(N1) JPL=JPL-CWIDS(N1) 110 CONTINUE IF(ICODE.NE.10)GOTO 10 DO 634 KKKQ=1,512& IF(PRTLIN(KKKQ).LT.32)PRTLIN(KKKQ)=32 634 CONTINUE CALL PLW(PRTLIN,512)*C WRITE(8,18,ERR=5561)(PRTLIN(II),II=1,JP)!18 FORMAT(100A1,200A1,200A1,34A1) 5561 CONTINUE DO 19 LN1=1,51219 PRTLIN(LN1)=32 10 CONTINUE IF(ICODE.EQ.10)CLOSE(UNIT=8)C IF(LLVL.LE.0)RETURNC DO 9915 N=1,LLVL IF(IDOL4.EQ.0)RETURN DO 9915 N=1,4 LLU=N+10S CLOSE(UNIT=LLU,ERR=9915)C 9915 CONTINUEE 9916 CONTINUES LLVL=0I RETURNY510 IF(IOLVL.EQ.5)REWIND 5 CLOSE(UNIT=3) FOOBAR=0B IOLVL=5 CLOSE(UNIT=5)8 OPEN(UNIT=5,FILE='SYS$COMMAND:',CARRIAGECONTROL='NONE') RETURN  END" SUBROUTINE GETFNL(LINE,LSKP,LLEN)/C PARSE OUT FILENAME AND GET LSKP, LLEN NUMBERS  LOGICAL*1 LINE(80)  INTEGER*2 LSKP,LLEN,LO,HI LSKP=0H LLEN=32000(C SET INITIAL NUMBERS TO READ WHOLE FILE N=INDEX(LINE,',') IF(N.LE.0.OR.N.GT.78)RETURNDC IF CANNOT FIND COMMA, JUST SKIP OUT & TRY TO CATCH ERRORS ON OPEN. LINE(N)=0C NULL TERMINATE FILENAMEE LO=N+1 HI=LO+20D CALL GN(LO,HI,LSKP,LINE)  LO=N+11 N=INDEX(LINE(LO),',') IF(N.LE.0.OR.N.GT.30)RETURN LO=LO+N HI=LO+20O CALL GN(LO,HI,LLEN,LINE)TC SHOULD HAVE NUMBERS NOWO RETURNE END SUBROUTINE PLW(PL,NPL)A DIMENSION PL(512) LOGICAL*1 PLE INTEGER*2 NPL DO 1 N=1,NPLM NN=NPL-N+1G IF(PL(NN).GT.32)GOTO 2O 1 CONTINUE0C THIS ROUTINE FINDS LAST NONSPACE AND WRITES PL1C TO LUN 8 FROM BEGINNING TO END SO FOUND. AVOIDSO6C WRITING OUTPUT FILES OF HUGE LONG RECORDS CONTAININGC MOSTLY SPACES. 2 CONTINUE WRITE(8,3,ERR=4)(PL(N),N=1,NN)33 FORMAT(100A1,100A1,100A1,100A1,100A1,100A1,100A1)(4 RETURN ENDSYS$SHARE:DTRSHR/SHARE, -7DTR$LIBRARY:TERMSERVE/LIBRARY/INCLUDE=(ADT,EDT,GUI,HLP)/C DUMMY DTRFIN FOR PDP11 VERSION OF ANALYTICALC SUBROUTINE DTRFINC FINISH WITH DTR ON VAX RETURN END1 AnalytiCalc Datatrieve (DTR) Interface FunctionsAThese functions are selected by the PCCMAKIVD.COM procedure whichClinks with DTRIF.FOR instead of the dummy DTRIF.FTN. They interface?VAX AnalytiCalc (one of the versions of it anyway) with DTR-32.9 Command level functions are given as DTRccc where ccc isAthe actual command. Equivalent functions are available from cellsBusing the syntactic form *U DBccc arguments (where the "arguments"0part is any arguments, generally some required.); The *U DBccc forms generally will return a 0. if there wasBan error detected and a 1. if not, in the % accumulator. The valueCreturn function however uses the % accumulator for the return value%and so returns no special error flag.= The DTRxxxxxxx commands cause redraw of the entire screen on@completion besides their other effects. Since this is not always>desirable, an alternative form is provided, namely FILxxxxxxxx?where the extra characters are the same as DTRxxxxxxxx. In thatBcase recompu00 PWWVRTADATADATADATADATADATAtation may be performed but the entire screen will notalways be repainted.8 DTRIMM (command only; no *U form) - Passes remainder of1 line to DTR to act on and allows direct passing6 of commands to DTR with DTR Terminal Driver handling3 of results. This may be used instead of DTRCMD if results printouts are desired.8 DTRINT (command only) - Executes command and gets into0 interactive DTR. Returns to spreadsheet when a$ control-Z is typed to DTR> prompt.> DTRDIS Disables *U DBxxx functions so they return without any1 action. Intitially these functions are enabled.A DTRENA Enables *U DBxxx functions to have their normal function.9 Use these controls to allow DTR to fill in data or have7 it filled in only once, avoiding the delays for every calculation of the sheet.CHARACTERS ccc NAME FUNCTION5CMD Do Command DTRCMD command passes command to DTR+ and flushes any resulting output. Error+ conditions are handled via DTR Terminal- handler. Failure (in *U forms) is flagged as if an illegal function.VAL Get Value DTRVALd command- passes command to DTR and expects a value- (floating point) to be returned. Converts- this value (if any) to binary and returns it in the % accumulator.2 If the comma is omitted the value is retrieved from the DTR message buffer., The "d" is a delimiter character and may# be in the ASCII range from : to) ? for 0 to 6 records skipped from DTR% prior to evaluation of the value.. IF the first character of the command is a+ period (.), it will be stripped and the. program will skip past any colon character0 (:) seen and add a decimal (.) to the end of3 the text string returned from DTR if no decimal4 already exists there so that it can be converted( properly to a floating point number.Example:D Suppose you have readied a domain and done a SELECT and now want toNretrieve a value from a field named COST in cell C12. You can then execute thefollowing commands: L C12 ; move to cell C12 EV *U DBVAL<. PRINT COSTMThe < causes the program to skip the blank and label lines DTR prints out andHthe . causes DTR to add a decimal after the cost. (This assumes the COSTHfield would print out an integer; if the field will be printed as 45.33,Kthe formatting period is not needed.) If the COST field needs to be divided.by 100., insert the following formula instead: *U DBVAL<. PRINT COST\ %/100.HNote that if you plan to turn off DTR evaluation sometimes, the *U DBxxxGfunctions do nothing, so you will probably want the number in your cell6to be stable. To achieve this use instead the command:! EV %=P#0#0\*U DBVAL<. PRINT COSTEso that the result will remain even if the DBVAL command is disabled.LThis command replaces the EV above. You simply are setting the % accumulatorHto the value of the current cell (P#0#0) before calling on DTR to updateIthe % accumulator in this case. The second *U DBVAL command could be also rewritten as:- %=100.*(P#0#0)\*U DBVAL<. PRINT COST\ %/100.Fwhich multiplies the current value by 100., gets the DTR value if that*function is turned on, and divides by 100.!TXT Get Text DTRTXT cell,command or DTRTXT celld command, passes command to DTR and expects a text( string back. Places this string into+ named cell's formula and flags the cell* as containing text. Returns 0. in % on/ detected failures, 1. if success apparently0 was seen. (Has no way of knowing whether the. text returned is what was desired, so this is incomplete.)_( If the comma is omitted (and DTR is1 in a permissible state) the text is retrieved without a DTR command.3 If the "d" form is given the "d" is a delimiter0 character which may be one of the following: : - skip 1 line ; - skip 2 lines < - skip 3 lines = - skip 4 lines > - skip 5 lines ? - skip 6 lines( These lines from DTR will be skipped,00 XWLW MW NW} prior to taking the return value in text' so that leading field labels and/or% extra blank lines can be omitted.( The function will (attempt to) flush* all remaining trailing output from DTR/ prior to proceeding to leave DTR in a state ready for another command.. The command would frequently be a PRINT or LIST command.0 Trailing whitespace is automatically deleted from the text returned.Example:D Suppose you have readied a domain and done a SELECT and now want toHretrieve a text string from a field named COST in cell C12. You can thenexecute the following commands: DTRTXT C12< PRINT COSTJThe < causes the program to skip the blank and label lines DTR prints out.C As an alternative you could insert the command right into the cell+or in another cell in the following format: *U DBTXT C12 to random access files. Initially both input and output reads; are disabled (DTRENAINP and DTRENAOUT enable them). When aF sequential file (or device such as a mailbox, pipe, or communications> line) is used for input, it is advantageous to read data into> a range once, then disable input/output again, to allow it to? be handled between these commands. The DTREDTINP and DTRFMTOUT: commands are designed to do this to make it easier to use3 AnalytiCalc for a filter between sequential files.DTROPINR range filename1 Open input random on filename for cells in rangeDTROPINU range filename8 Open range for update on filename for read and write as random access. DTRCLSINP Close input DTRCLSOUT Close outputDTROPOUTS range filename4 Open output sequential from range cells to filenameDTROPOUTR range filename* Open output random from range on filename DTRENAINP. Enable input file readin (initially disabled) DTRENAOUT) Enable output write (initially disabled) DTRDISINP Disable input area readin00 `WWVRTADATADATADATADATADATA DTRDISOUT Disable output writeDTREDTINP range3 Enables input and output and, for each cell in the5 given range, reads and writes the cell, allowing the6 file read/writes to take effect. Each cell is flagged7 as valid but of text type; the DF command must be used3 to reset any that should be treated as computable.< Input and output are disabled on completion of the command.DTRFMTOUT rangeDTRVALOUT range8 Enables input and output and for each cell of the range8 takes the VALUE of the cell, reads the cell, sets it of: text type, and writes the text equivalent of its value to: the cell. In the FMTOUT command the cell's display format: is used for the conversion. In the VALOUT command a large; builtin format is used to preserve all significant digits.@ Spaces are discarded prior to output. Cells are left containing; textual data corresponding to their numeric values, stored; in the formulae. The DF command may be used to reset theseB cells to numeric types if desired. Conversion errors are ignored.< Input and output are disabled on completion of the command.DTRCMPFRM V1:V2[,V3:V4]9 Compares two formulas. It returns, in the % accumulator,; the index of the formula in cell V2 in the formula in cell> V1. Lengths used are those of both formulas UNLESS the V3 and> V4 cell arguments are seen. In that case the value of V3 will= be used as the length of the formula for V1 and the value of: V4 will be used as the length of cell V2. If either value@ in V3 or V4 is outside the range 1 to 109 both values in V3 andA V4 will be ignored. Also on output the W accumulator will be set: to -1. if V1 is lexically earlier than V2, 0. if they are; lexically equal, and +1. if V1 is lexically later than V2.DTRLENFRM V1:V27 returns the length of the formula for cell V1 in the %: accumulator and in cell V2 IF CELL V2 IS VALID. Otherwise7 the cell specified in V2 is ignored, though it must be$ present in the command or function.DTRTRMFRM V1:V2,V3,V4< Reads the formula in V1 and uses V3 and V4 as start and end: byte numbers within it. It returns to V2 the formula that< is between the start and end bytes, trimming the V1 formula@ into V2 by chopping out the undesired parts. The find substring@ function CMPFRM can be used to find delimiter bytes if absolute$ columnar formatting is not desired.GAssociated DBxxxxxx and DTRxxxxxx commands both exist and have the samesyntax.> These commands give a means for having a spreadsheet templateBoperate on files (treated as formula inputs or outputs) from otherBindependent programs. Random files have 128 byte record length and?unique indices computed from the relative position in the range?being used. Sequential files are variable length but never haveFmore than 110 bytes (formula size) in them. Interpretation of formulasis up to the spreadsheet.9 On sequential reads, data is read until EOF and then theBfile is closed. Input is treated as a "last step" before returningBthe formula to the main program and just overwrites any internallyCstored formula. A dummy edit will enter the file data into internal?storage. On output, file write and internal storage both occur.*Open failure just leaves the files closed.7 "range" means v1:v2, a full 2 dimensional matrix range>with upper left corner and lower right corner cells specified.=Calculation order is unaffected and generally is across fast,#down slower, like a TV raster scan.= To "connect" AnalytiCalc with an arbitrary user program, one?could create a couple of mailboxes and run the program with itsBinput and output assigned to one of the mailboxes each (this could>be done from within AnalytiCalc using the }command or $command?feature if need be). Then assign a sequential input file to the<application's output mailbox and a sequential output file to the application's input mailbox.9 Now when you activate the output and enter anything intoBa cell in the output range (e.g., by an ENTER command), it will be@written to the application as input. When yo00 hW lWMW NW}u read anything into@the AnalytiCalc input range, it will be whatever the applicationDwrote out to its mailbox. This can be then moved into other formulae@and computed with. A dummy edit of the input range or the EDTINPBcommands can be used for reading data from the application, though@EDTINP should avoid touching any area that has been specified as@the AnalytiCalc output region or the input will be echoed to the"output, confusing the application.A All of this can be handled from command files also, and provides?a rather simple means of "hooking" your favorite application to+AnalytiCalc without really touching either.; This mechanism will work well provided the application can@accept and transmit record-oriented data to mailboxes or similar=pseudo devices. If this is a problem, consider the PTY driveror possibly the PIPE driver.= The functions for CMPFRM and LENFRM are provided in additionCto the other functions here to allow the spreadsheet to more easilyDlocate and parse text in data coming from generic applications. NoteBthat the {cell constructs can be used (possibly with an *U XQTCM ECfunction) to move pieces of text around in conjunction with copies.GThe CMPFRM function can help find out if the reply from the application@is what is desired and already built-in conditional handling can'be used for acting on this information.< As in all these functions, CMPFRM and LENFRM have the forms DTRCMPFRM andDTRLENFRM interactively, and*U DBCMPFRM andA*U DBLENFRM in formulas (with the remaining arguments included.) C DATATRIEVE INTERFACE FUNCTIONS"c optional for VAX VMS AnalytiCalc#C Include by linking with DTRIF.FOR#C Exclude by linking with DTRIF.FTNCc5c Attempt to provide a reasonable interface to DTR by<c allowing passing of commands to DTR both interactively and:c from within a cell, and retrieving numbers and text into;c cells. Also permit sending replies to DTR (for replies in=c procedures) from text in cells or numbers (values) in cells!c so that interaction is two-way.cC GLENN EVERHART 1985 SUBROUTINE DTRINIC INITIALIZE DATATRIEVE+C CALLED AT START OF PROGRAM, ONCE-FOR-ALL.C ***c!c FORTRAN DATATRIEVE Access Blockc; LOGICAL*1 DAB$B_BID, DAB$B_BLN, DAB$B_VER_LETTER, DAB(100), INTEGER*2 DAB$W_MSG_BUF_LEN, DAB$W_MSG_LEN,& 1 DAB$W_AUX_BUF_LEN, DAB$W_AUX_LEN,. 2 DAB$W_IDI, DAB$W_STATE, DAB$W_REC_LENGTH,2 3 DAB$W_VERSION, DAB$W_LEVEL, DAB$W_BASE_LEVEL,) 4 DAB$W_UDK_INDEX, DAB$W_COLUMNS_PAGE, 5 DAB$W_TT_CHANNEL( LOGICAL*4 DAB$A_MSG_BUF, DAB$A_AUX_BUF,0 1 DAB$L_CONDITION, DAB$L_FLAGS, DAB$L_OPTIONS COMMON /DAB_COMMON/  1 DAB$B_BID,  2 DAB$B_BLN,  3 DAB$L_CONDITION, 4 DAB$A_MSG_BUF, 5 DAB$W_MSG_BUF_LEN,  6 DAB$W_MSG_LEN, 7 DAB$A_AUX_BUF,  8 DAB$W_AUX_BUF_LEN,  9 DAB$W_AUX_LEN, 1 DAB$W_IDI,  2 DAB$W_STATE,  3 DAB$L_FLAGS,  4 DAB$L_OPTIONS, 5 DAB$W_REC_LENGTH,  6 DAB$W_VERSION,  7 DAB$W_LEVEL,  8 DAB$B_VER_LETTER,  9 DAB$W_BASE_LEVEL,  1 DAB$W_UDK_INDEX, 2 DAB$W_COLUMNS_PAGE, 3 DAB$W_TT_CHANNEL EQUIVALENCE (DAB, DAB$B_BID); INTEGER DTR$K_STL_CMD, DTR$K_STL_PRMPT, DTR$K_STL_LINE,4 1 DTR$K_STL_MSG, DTR$K_STL_PGET, DTR$K_STL_PPUT,6 2 DTR$K_STL_CONT, DTR$K_STL_UDK, DTR$K_STL_END_UDK PARAMETER (DTR$K_STL_CMD=1, 1 DTR$K_STL_PRMPT=2, 2 DTR$K_STL_LINE=3, 3 DTR$K_STL_MSG=4, 4 DTR$K_STL_PGET=5, 5 DTR$K_STL_PPUT=6, 6 DTR$K_STL_CONT=7, 7 DTR$K_STL_UDK=8, 8 DTR$K_STL_END_UDK=9)2 INTEGER DTR$K_SEMI_COLON_OPT, DTR$K_UNQUOTED_LIT,+ 1 DTR$K_SYNTAX_PROM00 pWWVRTADATADATADATADATADATAPT, DTR$K_IMMED_RETURN,: 2 DTR$K_FORMS_ENABLE, DTR$K_VERIFY, DTR$K_CONTEXT_SEARCH,; 3 DTR$K_HYPHEN_DISABLED, DTR$K_MORE_COMMANDS, DTR$K_ABORT, 4 DTR$K_LOCK_WAIT# PARAMETER (DTR$K_SEMI_COLON_OPT=1, 1 DTR$K_UNQUOTED_LIT=16, 2 DTR$K_SYNTAX_PROMPT=32, 3 DTR$K_IMMED_RETURN=64, 4 DTR$K_FORMS_ENABLE=128, 5 DTR$K_VERIFY=256, 6 DTR$K_CONTEXT_SEARCH=2048,! 7 DTR$K_HYPHEN_DISABLED=4096, 8 DTR$K_MORE_COMMANDS=8192, 9 DTR$K_ABORT=16384, 1 DTR$K_LOCK_WAIT=32768)= INTEGER DTR$M_OPT_CMD, DTR$M_OPT_PRMPT, DTR$M_OPT_LINE,4 1 DTR$M_OPT_MSG, DTR$M_OPT_PGET, DTR$M_OPT_PPUT,7 2 DTR$M_OPT_CONT, DTR$M_OPT_UDK, DTR$M_OPT_DTR_UDK,+ 3 DTR$M_OPT_END_UDK, DTR$M_OPT_UNWIND, . 4 DTR$M_OPT_CONTROL_C, DTR$M_OPT_STARTUP, @ 5 DTR$M_OPT_FOREIGN, DTR$M_OPT_BANNER, DTR$M_OPT_REMOVE_CTLC PARAMETER (DTR$M_OPT_CMD=1, 1 DTR$M_OPT_PRMPT=2, 2 DTR$M_OPT_LINE=4, 3 DTR$M_OPT_MSG=8, 4 DTR$M_OPT_PGET=16, 5 DTR$M_OPT_PPUT=32, 6 DTR$M_OPT_CONT=64, 7 DTR$M_OPT_UDK=128, 8 DTR$M_OPT_DTR_UDK=256, 9 DTR$M_OPT_END_UDK=512, 1 DTR$M_OPT_UNWIND=1024, 2 DTR$M_OPT_CONTROL_C=2048, 3 DTR$M_OPT_STARTUP=4096, 4 DTR$M_OPT_FOREIGN=8192, 5 DTR$M_OPT_BANNER=16384," 6 DTR$M_OPT_REMOVE_CTLC=32768)< INTEGER DTR$K_UDK_SET, DTR$K_UDK_SET_NO, DTR$K_UDK_SHOW,- 1 DTR$K_UDK_STATEMENT, DTR$K_UDK_COMMAND PARAMETER (DTR$K_UDK_SET=1,  1 DTR$K_UDK_SET_NO=2, 2 DTR$K_UDK_SHOW=3, 3 DTR$K_UDK_STATEMENT=4, 4 DTR$K_UDK_COMMAND=5)0 INTEGER DTR$K_TOK_TOKEN, DTR$K_TOK_PICTURE, , 1 DTR$K_TOK_FILENAME, DTR$K_TOK_COMMAND, 2 DTR$K_TOK_TEST_TOKEN PARAMETER (DTR$K_TOK_TOKEN=1, 1 DTR$K_TOK_PICTURE=2, 2 DTR$K_TOK_FILENAME=3, 3 DTR$K_TOK_COMMAND=4, 4 DTR$K_TOK_TEST_TOKEN=5) INTEGER*4 DTR$INIT INTEGER RET_STATUS CHARACTER*232 MSG_BUFF CHARACTER*232 AUX_BUFF& COMMON /DTR$BUFFERS/MSG_BUFF,AUX_BUFF# EXTERNAL DTR$_SUCCESS,SS$_NORMALC ***"C ********>>>>>>>><<<<<<<<********/ RET_STATUS=DTR$INIT(DAB,100,MSG_BUFF,AUX_BUFF,0 1 DTR$K_SEMI_COLON_OPT+DTR$K_FORMS_ENABLE+ 2 DTR$K_UNQUOTED_LIT)1C DTR NOW STALLS AT COMMAND INPUT AWAITING INPUT.%C LET *U FUNCTIONS HANDLE FROM THERE.' IF(RET_STATUS.NE.%LOC(SS$_NORMAL))THEN CALL UVT100(1,1,1) WRITE(6,1000)RET_STATUS<1000 FORMAT(' *** DATATRIEVE INITIALIZATION FAILED. ***',I6) END IF RETURN END SUBROUTINE DTRFINC INITIALIZE DATATRIEVE)C CALLED AT END OF PROGRAM, ONCE-FOR-ALL.C ***c!c FORTRAN DATATRIEVE Access Blockc; LOGICAL*1 DAB$B_BID, DAB$B_BLN, DAB$B_VER_LETTER, DAB(100), INTEGER*2 DAB$W_MSG_BUF_LEN, DAB$W_MSG_LEN,& 1 DAB$W_AUX_BUF_LEN, DAB$W_AUX_LEN,. 2 DAB$W_IDI, DAB$W_STATE, DAB$W_REC_LENGTH,2 3 DAB$W_VERSION, DAB$W_LEVEL, DAB$W_BASE_LEVEL,) 4 DAB$W_UDK_INDEX, DAB$W_COLUMNS_PAGE, 5 DAB$W_TT_CHANNEL( LOGICAL*4 DAB$A_MSG_BUF, DAB$A_AUX_BUF,0 1 DAB$L_CONDITION, DAB$L_FLAGS, DAB$L_OPTIONS COMMON /DAB_COMMON/  1 DAB$B_BID,  2 DAB$B_BLN,  3 DAB$L_CONDITION, 4 DAB$A_MSG_BUF, 5 DAB$W_MSG_BUF_LEN,  6 DAB$W_MSG_LEN, 7 DAB$A_AUX_BUF,  8 DAB$W_AUX_BUF_LEN,  9 DAB$W_AUX_LEN, 1 DAB$W_IDI,  2 DAB$W_STATE,  3 DAB$L_FLAGS,  4 DAB$L_OPTIONS, 5 DAB$W_REC_LENGTH,  6 DAB$W_VERSION,  7 DAB$W_LEVEL,  8 DAB$B_VER_LETTER,  9 DAB$W_BASE_LEVEL,  1 DAB$W_UDK_INDEX, 2 DAB$W_COLUMNS_PAGE, 3 DAB$W_TT_CHANNEL EQUIVALENCE (DAB, DAB$B_BID); INTEGER DTR$K_STL_CMD, DTR$K_STL_PRMPT, DTR$K_STL_LINE,4 1 DTR$K_STL_MSG, DTR$K_STL_PGET, DTR$K_STL_PPUT,6 2 DTR$K_STL_CONT, DTR$K_STL_UDK, DTR$K_STL_END_UDK PARAMETER (DTR$K_STL_CMD=1, 1 DTR$K_STL_PRMPT=2, 2 DTR$K_STL_LINE=3, 3 DTR$K_STL_MSG=4, 4 DTR$K_STL_PGET=5, 5 DTR$K_STL_PPUT=6, 6 DTR$K_STL_CONT=7, 7 DTR$K_STL_UDK=8, 8 DTR$K_STL_END_UDK=9)2 INTEGER DTR$K_SEMI_COLON_OPT, DTR$K_UNQUOTED_LIT,+ 1 DTR$K_SYNTAX_PROMPT, DTR$K_IMMED_RETURN,: 2 DTR$K_FORMS_ENABLE, DTR$K_VERIFY, DTR$K_CONTEXT_SEARCH,; 3 DTR$K_HYPHEN_DISABLED00 xWlWMW NW}, DTR$K_MORE_COMMANDS, DTR$K_ABORT, 4 DTR$K_LOCK_WAIT# PARAMETER (DTR$K_SEMI_COLON_OPT=1, 1 DTR$K_UNQUOTED_LIT=16, 2 DTR$K_SYNTAX_PROMPT=32, 3 DTR$K_IMMED_RETURN=64, 4 DTR$K_FORMS_ENABLE=128, 5 DTR$K_VERIFY=256, 6 DTR$K_CONTEXT_SEARCH=2048,! 7 DTR$K_HYPHEN_DISABLED=4096, 8 DTR$K_MORE_COMMANDS=8192, 9 DTR$K_ABORT=16384, 1 DTR$K_LOCK_WAIT=32768)= INTEGER DTR$M_OPT_CMD, DTR$M_OPT_PRMPT, DTR$M_OPT_LINE,4 1 DTR$M_OPT_MSG, DTR$M_OPT_PGET, DTR$M_OPT_PPUT,7 2 DTR$M_OPT_CONT, DTR$M_OPT_UDK, DTR$M_OPT_DTR_UDK,+ 3 DTR$M_OPT_END_UDK, DTR$M_OPT_UNWIND, . 4 DTR$M_OPT_CONTROL_C, DTR$M_OPT_STARTUP, @ 5 DTR$M_OPT_FOREIGN, DTR$M_OPT_BANNER, DTR$M_OPT_REMOVE_CTLC PARAMETER (DTR$M_OPT_CMD=1, 1 DTR$M_OPT_PRMPT=2, 2 DTR$M_OPT_LINE=4, 3 DTR$M_OPT_MSG=8, 4 DTR$M_OPT_PGET=16, 5 DTR$M_OPT_PPUT=32, 6 DTR$M_OPT_CONT=64, 7 DTR$M_OPT_UDK=128, 8 DTR$M_OPT_DTR_UDK=256, 9 DTR$M_OPT_END_UDK=512, 1 DTR$M_OPT_UNWIND=1024, 2 DTR$M_OPT_CONTROL_C=2048, 3 DTR$M_OPT_STARTUP=4096, 4 DTR$M_OPT_FOREIGN=8192, 5 DTR$M_OPT_BANNER=16384," 6 DTR$M_OPT_REMOVE_CTLC=32768)< INTEGER DTR$K_UDK_SET, DTR$K_UDK_SET_NO, DTR$K_UDK_SHOW,- 1 DTR$K_UDK_STATEMENT, DTR$K_UDK_COMMAND PARAMETER (DTR$K_UDK_SET=1,  1 DTR$K_UDK_SET_NO=2, 2 DTR$K_UDK_SHOW=3, 3 DTR$K_UDK_STATEMENT=4, 4 DTR$K_UDK_COMMAND=5)0 INTEGER DTR$K_TOK_TOKEN, DTR$K_TOK_PICTURE, , 1 DTR$K_TOK_FILENAME, DTR$K_TOK_COMMAND, 2 DTR$K_TOK_TEST_TOKEN PARAMETER (DTR$K_TOK_TOKEN=1, 1 DTR$K_TOK_PICTURE=2, 2 DTR$K_TOK_FILENAME=3, 3 DTR$K_TOK_COMMAND=4, 4 DTR$K_TOK_TEST_TOKEN=5) CHARACTER*232 MSG_BUFF CHARACTER*232 AUX_BUFF& COMMON /DTR$BUFFERS/MSG_BUFF,AUX_BUFF EXTERNAL DTR$_SUCCESSC ***"C ********>>>>>>>><<<<<<<<******** CALL DTR$FINISH(DAB)2C CALLED JUST BEFORE EXIT. IF IT FAILS, TOO BAD...>C however, gives DTR a chance to clean up prior to image exit. RETURN END SUBROUTINE DTRCMD(LINE) LOGICAL*1 LINE(80) CHARACTER*62 LINECC EQUIVALENCE(LINEC,LINE(1)) INCLUDE 'VKLUGPRM.FTN'#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY. INTEGER RETCD2 LOGICAL*1 AVBLS(20,27),WRK(128),VBLS(8,RRWP,RCLP)" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9) REAL*8 XAC,XVBLS(RRWP,RCLP) REAL*8 TAC,UAC,VAC,WAC,YAC REAL*8 TMP INTEGER*4 JVBLS(2,RRWP,RCLP)/ EQUIVALENCE(WAC,AVBLS(1,23)),(YAC,AVBLS(1,25)) EQUIVALENCE(XAC,AVBLS(1,27)) EQUIVALENCE(TAC,AVBLS(1,20)) EQUIVALENCE(UAC,AVBLS(1,21)) EQUIVALENCE(VAC,AVBLS(1,22))& EQUIVALENCE(VBLS(1,1,1),JVBLS(1,1,1))$ EQUIVALENCE(VBLS(1,1,1),XVBLS(1,1)) COMMON/V/TYPE,AVBLS,VBLS,VLEN INTEGER*2 XTNCNT,XTCFG,IPSET LOGICAL*1 XTNCMD(80)" INTEGER*2 FORMFG,RCFGX,PZAP,RCONE. INTEGER*2 IDOL1,IDOL2,IDOL3,IDOL4,IDOL5,IDOL61 COMMON/DOLLR/IDOL1,IDOL2,IDOL3,IDOL4,IDOL5,IDOL6 INTEGER*2 RRWACT,RCLACT COMMON/RCLACT/RRWACT,RCLACT$ COMMON/FFGG/FORMFG,RCFGX,PZAP,RCONE& COMMON/XCMD/XTNCNT,XTNCMD,XTCFG,IPSET:C LOOP CONTROL FOR VARY FUNCTION. SET ZERO IN SPREDSHT AND2C MUST BE SET POSITIVE HERE IF WE NEED ITERATIONS.C (IMPLEMENT FOR VAX ONLY) INTEGER KALKIT COMMON/VARYIT/KALKIT(C ARGUMENTS COME IN IN ARGUMENTS IN LINE<C RESULTS GO INTO PERCENT (XAC) AND WHEREVER ELSE DESIRED...( INTEGER*2 PROW,PCOL,DROW,DCOL,DRWV,DCLV* COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRWV,DCLV( DIMENSION NRDSP(DRW,DCL),NCDSP(DRW,DCL) COMMON/D2R/NRDSP,NCDSP C ADD DATATRIEVE DATA STMTS HEREC ***c!c FORTRAN DATATRIEVE Access Blockc; LOGICAL*1 DAB$B_BID, DAB$B_BLN, DAB$B_VER_LETTER, DAB(100), INTEGER*2 DAB$W_MSG_BUF_LEN, DAB$W_MSG_LEN,& 1 DAB$W_AUX_BUF_LEN, DAB$W_AUX_LEN,. 2 DAB$W_IDI, DAB$W_STATE, DAB$W_REC_LENGTH,2 3 DAB$W_VERSION, DAB$W_LEVEL, DAB$W_BASE_LEVEL,) 4 DAB$W_UDK_INDEX, DAB$W_COLUMNS_PAGE, 5 DAB$W_TT_CHANNEL( LOGICAL*4 DAB$A_MSG_BUF, DAB$A_AUX_BUF,0 1 DAB$L_CONDITION, DAB$L_FLAGS, DAB$L_OPTIONS C00 WWVRTADATADATADATADATADATAOMMON /DAB_COMMON/  1 DAB$B_BID,  2 DAB$B_BLN,  3 DAB$L_CONDITION, 4 DAB$A_MSG_BUF, 5 DAB$W_MSG_BUF_LEN,  6 DAB$W_MSG_LEN, 7 DAB$A_AUX_BUF,  8 DAB$W_AUX_BUF_LEN,  9 DAB$W_AUX_LEN, 1 DAB$W_IDI,  2 DAB$W_STATE,  3 DAB$L_FLAGS,  4 DAB$L_OPTIONS, 5 DAB$W_REC_LENGTH,  6 DAB$W_VERSION,  7 DAB$W_LEVEL,  8 DAB$B_VER_LETTER,  9 DAB$W_BASE_LEVEL,  1 DAB$W_UDK_INDEX, 2 DAB$W_COLUMNS_PAGE, 3 DAB$W_TT_CHANNEL EQUIVALENCE (DAB, DAB$B_BID)C DAB$W_STATE VALUES: C 1 CMD STALL%C 2 VALUE-IN-RESPONSE-TO-PROMPT STALL)C 3 PRINTLINE AVAIL STALL (HAS PRINTLINE)C 4 MESSAGE STALL (HAS MSG)%C 5 PORT REC AVAIL FOR PGM TO RECEIVE0C 6 DTR WAITING FOR PGM TO SEND A RECORD TO PORT,C 7 NOT APPLICABLE HERE ... DTR ASYNCH READY&C 8 NOT APPL. DTR USER DEFINED KEYWORD&C 9 NOT APPL. DTR END USER DEF KEYWORD; INTEGER DTR$K_STL_CMD, DTR$K_STL_PRMPT, DTR$K_STL_LINE,4 1 DTR$K_STL_MSG, DTR$K_STL_PGET, DTR$K_STL_PPUT,6 2 DTR$K_STL_CONT, DTR$K_STL_UDK, DTR$K_STL_END_UDK PARAMETER (DTR$K_STL_CMD=1, 1 DTR$K_STL_PRMPT=2, 2 DTR$K_STL_LINE=3, 3 DTR$K_STL_MSG=4, 4 DTR$K_STL_PGET=5, 5 DTR$K_STL_PPUT=6, 6 DTR$K_STL_CONT=7, 7 DTR$K_STL_UDK=8, 8 DTR$K_STL_END_UDK=9)2 INTEGER DTR$K_SEMI_COLON_OPT, DTR$K_UNQUOTED_LIT,+ 1 DTR$K_SYNTAX_PROMPT, DTR$K_IMMED_RETURN,: 2 DTR$K_FORMS_ENABLE, DTR$K_VERIFY, DTR$K_CONTEXT_SEARCH,; 3 DTR$K_HYPHEN_DISABLED, DTR$K_MORE_COMMANDS, DTR$K_ABORT, 4 DTR$K_LOCK_WAIT# PARAMETER (DTR$K_SEMI_COLON_OPT=1, 1 DTR$K_UNQUOTED_LIT=16, 2 DTR$K_SYNTAX_PROMPT=32, 3 DTR$K_IMMED_RETURN=64, 4 DTR$K_FORMS_ENABLE=128, 5 DTR$K_VERIFY=256, 6 DTR$K_CONTEXT_SEARCH=2048,! 7 DTR$K_HYPHEN_DISABLED=4096, 8 DTR$K_MORE_COMMANDS=8192, 9 DTR$K_ABORT=16384, 1 DTR$K_LOCK_WAIT=32768)= INTEGER DTR$M_OPT_CMD, DTR$M_OPT_PRMPT, DTR$M_OPT_LINE,4 1 DTR$M_OPT_MSG, DTR$M_OPT_PGET, DTR$M_OPT_PPUT,7 2 DTR$M_OPT_CONT, DTR$M_OPT_UDK, DTR$M_OPT_DTR_UDK,+ 3 DTR$M_OPT_END_UDK, DTR$M_OPT_UNWIND, . 4 DTR$M_OPT_CONTROL_C, DTR$M_OPT_STARTUP, @ 5 DTR$M_OPT_FOREIGN, DTR$M_OPT_BANNER, DTR$M_OPT_REMOVE_CTLC PARAMETER (DTR$M_OPT_CMD=1, 1 DTR$M_OPT_PRMPT=2, 2 DTR$M_OPT_LINE=4, 3 DTR$M_OPT_MSG=8, 4 DTR$M_OPT_PGET=16, 5 DTR$M_OPT_PPUT=32, 6 DTR$M_OPT_CONT=64, 7 DTR$M_OPT_UDK=128, 8 DTR$M_OPT_DTR_UDK=256, 9 DTR$M_OPT_END_UDK=512, 1 DTR$M_OPT_UNWIND=1024, 2 DTR$M_OPT_CONTROL_C=2048, 3 DTR$M_OPT_STARTUP=4096, 4 DTR$M_OPT_FOREIGN=8192, 5 DTR$M_OPT_BANNER=16384," 6 DTR$M_OPT_REMOVE_CTLC=32768)< INTEGER DTR$K_UDK_SET, DTR$K_UDK_SET_NO, DTR$K_UDK_SHOW,- 1 DTR$K_UDK_STATEMENT, DTR$K_UDK_COMMAND PARAMETER (DTR$K_UDK_SET=1,  1 DTR$K_UDK_SET_NO=2, 2 DTR$K_UDK_SHOW=3, 3 DTR$K_UDK_STATEMENT=4, 4 DTR$K_UDK_COMMAND=5)0 INTEGER DTR$K_TOK_TOKEN, DTR$K_TOK_PICTURE, , 1 DTR$K_TOK_FILENAME, DTR$K_TOK_COMMAND, 2 DTR$K_TOK_TEST_TOKEN PARAMETER (DTR$K_TOK_TOKEN=1, 1 DTR$K_TOK_PICTURE=2, 2 DTR$K_TOK_FILENAME=3, 3 DTR$K_TOK_COMMAND=4, 4 DTR$K_TOK_TEST_TOKEN=5) INTEGER*2 DTRENA COMMON/DTRCMN/DTRENA LOGICAL *1 LINECL(82)C CHARACTER*70 LINEC EQUIVALENCE(LINEC,LINECL(1)) CHARACTER*80 SCRBUF LOGICAL*1 LBUF(128) CHARACTER*9 FMTB EQUIVALENCE (FMTB,LBUF(120)) CHARACTER*11 FMTBF LOGICAL*1 IFVLD LOGICAL*1 MSGBUF(110) EQUIVALENCE(MSGBUF(1),MSG_BUFF) CHARACTER*232 MSG_BUFF CHARACTER*232 AUX_BUFF& COMMON /DTR$BUFFERS/MSG_BUFF,AUX_BUFF EXTERNAL DTR$_SUCCESSC ***"C ********>>>>>>>><<<<<<<<********.C NULL OUT ANY TRAILING BLANKS ON COMMAND LINE DO 3332 N=1,80 NN=81-N IF(LINE(NN).GT.32)GOTO 3333 LINE(NN)=0 3332 CONTINUE 3333 CONTINUEC SPACE FILL ENTIRE ARRAY DO 3334 N=1,823334 LINECL(N)=324C CALL DTR$COMMAND TO DO COMMAND FROM COMMAND LEVEL. RETCD=14C HANDLE DTRCMD FUNCTIONS. LINE ARRAY PASSED IN HERE-C STARTS AFTER THE "DTR" SO WE CAN DECODE IT.C EXECUTE DTR COMMAND9C DTRCMD (COMMAND) GIVE00 WlWMW NW}S DTR COMMAND FACILITY AT COMMANDC LEVEL.4C ALLOW DTRIMM COMMAND TO USE DTR IMMEDIATE TERMINAL9C INTERFACE. THE REST CAN USE SAME COMMAND NAMES AS AFTER!C THE "DB" IN *U DBXXXX COMMANDS.$ call scmp(LINE,%REF('IMM'),3,ICODE) IF(ICODE.NE.1)GOTO 10006c move line down to pass the "imm" stuff and one space do 1005 n=1,56 NN=N IF(LINE(N+4).LT.32)GOTO 1006C NNN=N1005 linec(N:N)=char(line(n+4)) 1006 CONTINUE LINEC(NN:NN)=CHAR(32)" CALL DTR$COMMAND(DAB,LINEC(1:NN))/c just allow normal DTR handling of the rest...' CALL DTR$DTR(DAB,DTR$M_OPT_CMD) RETURN 1000 continue$ call scmp(LINE,%REF('INT'),3,ICODE) IF(ICODE.NE.1)GOTO 1400$C DTRINT - DO INTERACTIVE DTR STUFF.6c move line down to pass the "int" stuff and one space do 1405 n=1,60 NN=N IF(LINE(N+4).LT.32)GOTO 1406C NNN=N1405 linec(N:N)=char(line(n+4)) 1406 CONTINUE LINEC(NN:NN)=CHAR(32)% IF(DAB$W_STATE.EQ.DTR$K_STL_CMD)THEN* CALL DTR$COMMAND(DAB,%DESCR(LINEC(1:NN))) END IF/c just allow normal DTR handling of the rest... CALL DTR$CONTINUE(DAB)* CALL DTR$DTR(DAB,DTR$M_OPT_UNWIND) RETURN 1400 CONTINUE$ CALL SCMP(LINE,%REF('CMD'),3,ICODE) IF(ICODE.NE.1)GOTO 100C *U DBCMD COMMANDC EXECUTE DTR COMMANDC CONSTRUCT A DESCRIPTOR... DO 8 N=1,70 8 LINECL(N)=0 DO 10 N=1,60 NN=N M=LINE(4+N)"C COPY CHARACTER ARRAY INTO STRING IF(M.LT.32)GOTO 11C NNN=N LINEC(N:N)= CHAR(M) 10 CONTINUE 11 CONTINUE LINEC(NN:NN)=CHAR(32)" CALL DTR$COMMAND(DAB,LINEC(1:NN))C CHECK STATUS) IF (DAB$W_STATE.EQ.DTR$K_STL_MSG)GOTO 20* IF (DAB$W_STATE.EQ.DTR$K_STL_LINE)GOTO 20 CALL DTR$DTR(DAB,DTR$M_OPT_CMD)5C LET DTR$DTR HANDLE MESSAGES AND SO ON UNTIL BACK AT@C COMMAND STALLPOINT. NOTE THAT THIS TAKES CARE OF COMMANDS THAT+C UNEXPECTEDLY CALL FOR MESSAGES OR INPUTS. GOTO 9999 20 CONTINUE CALL DTR$CONTINUE(DAB)'C FLUSH ALL MESSAGES...IF MORE THAN ONE) IF (DAB$W_STATE.EQ.DTR$K_STL_MSG)GOTO 20* IF (DAB$W_STATE.EQ.DTR$K_STL_LINE)GOTO 20<C JUST CONTINUE IF WE ONLY GOT A MESSAGE OR PRINT LINE HERE.<c no provision for printing it and we normally want to avoidc prints of this anyway. GOTO 9999 100 CONTINUE$ CALL SCMP(LINE,%REF('VAL'),3,ICODE) IF(ICODE.NE.1)GOTO 200  LSKIP=(LINE(4))-57o$ IF(LSKIP.LT.1.OR.LSKIP.GT.9)LSKIP=0 IVV=4 IF(LINE(5).EQ.ICHAR('.'))THEN IVV=IVV+1 END IF  DO 110 N=1,60 NN=Ni M=LINE(IVV+N)"C COPY CHARACTER ARRAY INTO STRING IF(M.LT.32)GOTO 111C NNN=Nl LINEC(N:N)=CHAR(M)t 110 CONTINUE 111 CONTINUE LINEC(NN:NN)=CHAR(32)" CALL DTR$COMMAND(DAB,LINEC(1:NN))C CHECK STATUS* IF (DAB$W_STATE.EQ.DTR$K_STL_MSG)GOTO 120+ IF (DAB$W_STATE.EQ.DTR$K_STL_LINE)GOTO 130c CALL DTR$DTR(DAB,DTR$M_OPT_CMD)5C LET DTR$DTR HANDLE MESSAGES AND SO ON UNTIL BACK ATG@C COMMAND STALLPOINT. NOTE THAT THIS TAKES CARE OF COMMANDS THAT+C UNEXPECTEDLY CALL FOR MESSAGES OR INPUTS., GOTO 9999 120 CONTINUE CALL DTR$CONTINUE(DAB),* IF (DAB$W_STATE.EQ.DTR$K_STL_MSG)GOTO 120+ IF (DAB$W_STATE.EQ.DTR$K_STL_LINE)GOTO 130G GOTO 9999 130 CONTINUE IF(LSKIP.GT.0)THEN$ DO 3346 N=1,LSKIP3346 CALL DTR$CONTINUE(DAB)1+C SKIP EXTRA PRINT LINES IF NEEDED TO DO SOI END IFD IF(IVV.GE.5)THEN  IQ=0S DO 135 N=1,110D#135 IF(MSGBUF(N).EQ.ICHAR('.'))IQ=18 IVVV=0X DO 138 N=1,80% IF(MSGBUF(NN).EQ.ICHAR(':'))IVVV=N+1W NN=81-N IF(MSGBUF(NN).GT.32)GOTO 139O 138 CONTINUE139 IF(IQ.EQ.0)MSGBUF(NN+1)=46C 46 IS ASCII PERIOD,C IF WE HAVE . AS FIRST CHAR OF COMMAND THEN<C ADD DECIMAL TO END OF TEXT AND START TEXT AFTER THE : OF A;C POSSIBLE LIST COMMAND. ONLY ADD THE DECIMAL IF NONE IS IN_7C THE STRING ALREADY AND ONLY SKIP COLON IF ONE EXISTS.S IF(IVVV.GT.0)THEN K=1 DO 137 N=IVVV,NN+1_ MSGBUF(K)=MSGBUF(N) K=K+1 137 CONTINUE DO 136 N=K,110_136 MSGBUF(K)=32 END IFL END IFC GET VALUE BACK$C FORTRAN-77 HACK. USE INTERNAL READ!C GETS RESULT INTO % ACCUMULATOR.T READ(MSG_BUFF,140,ERR=9990)XAC79c use wide format to allow correct readin of many formatsT140 FORMAT(D30.15) GOTO 120K<C JUST CONTINUE IF WE ONLY GOT A M00 WWVRTADATADATADATADATADATAESSAGE OR PRINT LINE HERE. 200 CONTINUE$ CALL SCMP(LINE,%REF('TXT'),3,ICODE) IF(ICODE.NE.1)GOTO 300I2c get cell name now and skip the comma after it...C *U DBTXT CELL,COMMANDT5C GETS REPLY INTO CELL. IF NO REPLY, CELL UNCHANGED.2 LO=4$ LHI=20P LSTCHR=20- CALL VARSCN(LINE,LO,LHI,LSTCHR,ID1,ID2,IVLD)_ IF(IVLD.EQ.0)GOTO 9990_4C JUST SKIP COMMA, SO IT REALLY CAN BE ANY DELIMITER:C IF NO DELIMITER OTHER THAN SPACE WAS GIVEN, SKIP SENDINGC THE COMMAND. IF(LINE(LSTCHR).LE.32)GOTO 230I DO 210 N=1,60 NN=NT M=LINE(LSTCHR+N)O"C COPY CHARACTER ARRAY INTO STRING IF(M.LT.32)GOTO 211C NNN=ND LINEC(N:N)=CHAR(M) 210 CONTINUE 211 CONTINUE LINEC(NN:NN)=CHAR(32) XAC=0.$" CALL DTR$COMMAND(DAB,LINEC(1:NN))C CHECK STATUS* IF (DAB$W_STATE.EQ.DTR$K_STL_MSG)GOTO 220+ IF (DAB$W_STATE.EQ.DTR$K_STL_LINE)GOTO 230V CALL DTR$DTR(DAB,DTR$M_OPT_CMD)5C LET DTR$DTR HANDLE MESSAGES AND SO ON UNTIL BACK AT@C COMMAND STALLPOINT. NOTE THAT THIS TAKES CARE OF COMMANDS THAT+C UNEXPECTEDLY CALL FOR MESSAGES OR INPUTS.$ GOTO 9999 220 CONTINUE CALL DTR$CONTINUE(DAB) * IF (DAB$W_STATE.EQ.DTR$K_STL_MSG)GOTO 220 GOTO 9999 230 CONTINUE6C IF(LINE(LSTCHR).EQ.ICHAR(';'))CALL DTR$CONTINUE(DAB)-C IF WE SEE ; DELIMITER FLUSH ONE EXTRA LINE.R# IF(LINE(LSTCHR).GE.ICHAR(':').AND.=( 1 LINE(LSTCHR).LE.ICHAR('?'))THEN NNV=(LINE(LSTCHR))-57 C SKIP LINES BASED ON DELIMITER: C : = 1 SKIP C ; = 2 SKIPS( C < = 3 SKIPS, C = = 4 SKIPS_ C > = 5 SKIPS C ? = 6 SKIPS_ DO 3342 N=1,NNV3342 CALL DTR$CONTINUE(DAB)T END IFOC GET STRING BACK $C COPY MSG_BUFF BACK INTO CELL GIVENC ID1,ID2 ADDRESS CELL.E IFVLD=-1_C FLAG AS TEXT CALL FVLDST(ID1,ID2,IFVLD)TC IRX=(ID2-1)*RRW+ID1 CALL REFLEC(ID2,ID1,IRX) CALL WRKFIL(IRX,LBUF,0)*C READ MEMORY ARRAY, MODIFY, THEN WRITE IT DO 233 N=1,110 233 LBUF(N)=0R DO 234 N=1,109R234 LBUF(N)=MSGBUF(N)29C NULL OUT TRAILING BLANKS PRIOR TO STORING TEXT IN SHEETS DO 235 N=1,109F NN=110-N  IF(LBUF(NN).GT.32)GOTO 236 LBUF(NN)=0* 235 CONTINUE 236 CONTINUE CALL WRKFIL(IRX,LBUF,1) XAC=1.FEC FLAG SUCCESSFUL GETTING OF MESSAGE BY RETURNING 1 IN % ACCUMULATOR. !C LEAVE VALUE AT THIS CELL ALONE.L237 CALL DTR$CONTINUE(DAB)#C FLUSH ANY EXTRA LINES OF MESSAGESR* IF (DAB$W_STATE.EQ.DTR$K_STL_MSG)GOTO 237+ IF (DAB$W_STATE.EQ.DTR$K_STL_LINE)GOTO 237) GOTO 9999 300 CONTINUE$ CALL SCMP(LINE,%REF('RPV'),3,ICODE) IF(ICODE.NE.1)GOTO 400RC FIRST ISOLATE CELL NAMEN LO=4T LHI=20T LSTCHR=20- CALL VARSCN(LINE,LO,LHI,LSTCHR,ID1,ID2,IVLD) IF(IVLD.EQ.0)GOTO 9990E4C JUST SKIP COMMA, SO IT REALLY CAN BE ANY DELIMITER IF(LINE(LSTCHR).LE.32)THENI. IF (DAB$W_STATE.EQ.DTR$K_STL_PRMPT)GOTO 3409C IF WE CAN'T GO TO SEND THE REPLY, NULL OUT COMMAND LINET LINE(LSTCHR+1)=32 LINE(LSTCHR+2)=0  ENDIF DO 310 N=1,60 NN=N M=LINE(LSTCHR+N)X"C COPY CHARACTER ARRAY INTO STRING IF(M.LT.32)GOTO 311C NNN=NG LINEC(N:N)=CHAR(M) 310 CONTINUE 311 CONTINUE LINEC(NN:NN)=CHAR(32) XAC=0.BC REPLY WITH VALUE.B$C THIS USES VALUE IN CELL FOR REPLY.CC SINCE DTR EXPECTS TEXT, USE DISPLAY FORMAT IN CELL TO CONVERT THEC VALUE TO TEXT CHARACTERS.W" CALL DTR$COMMAND(DAB,LINEC(1:NN))C CHECK STATUS* IF (DAB$W_STATE.EQ.DTR$K_STL_MSG)GOTO 320+ IF (DAB$W_STATE.EQ.DTR$K_STL_LINE)GOTO 330V, IF (DAB$W_STATE.EQ.DTR$K_STL_PRMPT)GOTO 340 CALL DTR$DTR(DAB,DTR$M_OPT_CMD)5C LET DTR$DTR HANDLE MESSAGES AND SO ON UNTIL BACK ATH@C COMMAND STALLPOINT. NOTE THAT THIS TAKES CARE OF COMMANDS THAT+C UNEXPECTEDLY CALL FOR MESSAGES OR INPUTS.$ GOTO 9999 320 CONTINUE 330 CONTINUE CALL DTR$CONTINUE(DAB) * IF (DAB$W_STATE.EQ.DTR$K_STL_MSG)GOTO 320+ IF (DAB$W_STATE.EQ.DTR$K_STL_LINE)GOTO 330, IF (DAB$W_STATE.EQ.DTR$K_STL_PRMPT)GOTO 340 GOTO 9999 340 CONTINUEDC WAITING FOR DTR$PUT_VALUE CALL. GO GET VALUE AND CONVERT AND SHOVEC OUT. CALL XVBLGT(ID1,ID2,TMP)=C TMP IS REAL*8K@C NOW HAVE VALUE IN CELL (DEFAULT IS 0. IF CELL NOT INITIALIZED)C IRX=(ID2-1)*RRW+ID1R CALL REFLEC(ID2,ID1,IRX)F CALL WRKFIL(IRX,LBUF,0):C READ IN FORMULA BUFF00 WlWMW NW}ER TO ALLOW US TO GET FORMAT TO USE. DO 341 N=1,9_ K=LBUF(119+N) IF(K.LT.32)K=32342 LBUF(119+N)=K$ 341 CONTINUE FMTBF='(' // FMTB // ')'OC STASH FORMAT BUFFER IN THERE7C WE ALREADY MADE SURE IT HAS ALL SPACES OR FORMAT DATAY WRITE(SCRBUF,FMTBF,ERR=348)TMPHC *****************&&&&&&&&& CALL DTR$PUT_VALUE(DAB,SCRBUF)M XAC=1.2* IF (DAB$W_STATE.EQ.DTR$K_STL_MSG)GOTO 320+ IF (DAB$W_STATE.EQ.DTR$K_STL_LINE)GOTO 330RC FLUSH OUT THE REST#348 CALL DTR$DTR(DAB,DTR$M_OPT_CMD)M 400 CONTINUE$ CALL SCMP(LINE,%REF('RPF'),3,ICODE)C REPLY FROM FORMULA IF(ICODE.NE.1)GOTO 500PC FIRST ISOLATE CELL NAME, LO=4  LHI=20P LSTCHR=20- CALL VARSCN(LINE,LO,LHI,LSTCHR,ID1,ID2,IVLD)D IF(IVLD.EQ.0)GOTO 9990T4C JUST SKIP COMMA, SO IT REALLY CAN BE ANY DELIMITER IF(LINE(LSTCHR).LE.32)THENP. IF (DAB$W_STATE.EQ.DTR$K_STL_PRMPT)GOTO 4409C IF WE CAN'T GO TO SEND THE REPLY, NULL OUT COMMAND LINET LINE(LSTCHR+1)=32 LINE(LSTCHR+2)=0_ ENDIF DO 410 N=1,60 NN=NP M=LINE(LSTCHR+N) "C COPY CHARACTER ARRAY INTO STRING IF(M.LT.32)GOTO 411C NNN=NT LINEC(N:N)=CHAR(M) 410 CONTINUE 411 CONTINUE LINEC(NN:NN)=CHAR(32) XAC=0.4EC REPLY FROM FORMULA SO WILL LATER GET REPLY FROM FORMULA TEXT RATHERKC THAN CURRENT VALUE.S" CALL DTR$COMMAND(DAB,LINEC(1:NN))C CHECK STATUS* IF (DAB$W_STATE.EQ.DTR$K_STL_MSG)GOTO 420+ IF (DAB$W_STATE.EQ.DTR$K_STL_LINE)GOTO 4303, IF (DAB$W_STATE.EQ.DTR$K_STL_PRMPT)GOTO 440 CALL DTR$DTR(DAB,DTR$M_OPT_CMD)5C LET DTR$DTR HANDLE MESSAGES AND SO ON UNTIL BACK AT$@C COMMAND STALLPOINT. NOTE THAT THIS TAKES CARE OF COMMANDS THAT+C UNEXPECTEDLY CALL FOR MESSAGES OR INPUTS.T GOTO 9999 420 CONTINUE 430 CONTINUE CALL DTR$CONTINUE(DAB)_C FLUSH ALL EXTRA MESSAGES* IF (DAB$W_STATE.EQ.DTR$K_STL_MSG)GOTO 420+ IF (DAB$W_STATE.EQ.DTR$K_STL_LINE)GOTO 430 , IF (DAB$W_STATE.EQ.DTR$K_STL_PRMPT)GOTO 440 GOTO 9999 440 CONTINUEFC WAITING FOR DTR$PUT_VALUE CALL. GO EMIT FORMULA (UP TO 80 CHARACTERS C ANYHOW...)cC IRX=(ID2-1)*RRW+ID1  CALL REFLEC(ID2,ID1,IRX)E CALL WRKFIL(IRX,LBUF,0):C READ IN FORMULA BUFFER TO ALLOW US TO GET FORMAT TO USE. SCRBUF=' '1 DO 441 N=1,79 K=LBUF(N) IF(K.LT.32)GOTO 443442 SCRBUF(N:N)=CHAR(K)S 441 CONTINUE 443 CONTINUEC SEND OUT THE REPLY CALL DTR$PUT_VALUE(DAB,SCRBUF)T XAC=1. * IF (DAB$W_STATE.EQ.DTR$K_STL_MSG)GOTO 420+ IF (DAB$W_STATE.EQ.DTR$K_STL_LINE)GOTO 430GC FLUSH OUT THE REST#448 CALL DTR$DTR(DAB,DTR$M_OPT_CMD)CA 500 CONTINUE"C ENABLE/DISABLE FOR DTR FUNCTIONS0C SETTING DTRENA TO -1 IMPLIES DISABLE FUNCTIONS$ CALL SCMP(LINE,%REF('ENA'),3,ICODE) IF(ICODE.NE.1)GOTO 600N DTRENA=1S GOTO 9999 600 CONTINUE$ CALL SCMP(LINE,%REF('DIS'),3,ICODE) IF(ICODE.NE.1)GOTO 700L DTRENA=-1 GOTO 9999 700 CONTINUE GOTO 9999 9990 RETCD=3C ERROR RETURN 9999 RETURN END SUBROUTINE DTRFCT(LINE,RETCD) INTEGER*2 RETCD LOGICAL*1 LINE(80)G LOGICAL *1 LINECL(82) CHARACTER*62 LINECO EQUIVALENCE(LINEC,LINECL(1))D INTEGER*2 DTRENAL COMMON/DTRCMN/DTRENAR INCLUDE 'VKLUGPRM.FTN'/#C COPYRIGHT (C) 1983 GLENN EVERHARTR@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY.A2 LOGICAL*1 AVBLS(20,27),WRK(128),VBLS(8,RRWP,RCLP)" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9) REAL*8 XAC,XVBLS(RRWP,RCLP) REAL*8 TAC,UAC,VAC,WAC,YACN REAL*8 TMP  INTEGER*4 JVBLS(2,RRWP,RCLP) / EQUIVALENCE(WAC,AVBLS(1,23)),(YAC,AVBLS(1,25))O EQUIVALENCE(XAC,AVBLS(1,27))M EQUIVALENCE(TAC,AVBLS(1,20))W EQUIVALENCE(UAC,AVBLS(1,21))L EQUIVALENCE(VAC,AVBLS(1,22))R& EQUIVALENCE(VBLS(1,1,1),JVBLS(1,1,1))$ EQUIVALENCE(VBLS(1,1,1),XVBLS(1,1)) COMMON/V/TYPE,AVBLS,VBLS,VLEN INTEGER*2 XTNCNT,XTCFG,IPSETL LOGICAL*1 XTNCMD(80)G" INTEGER*2 FORMFG,RCFGX,PZAP,RCONE. INTEGER*2 IDOL1,IDOL2,IDOL3,IDOL4,IDOL5,IDOL61 COMMON/DOLLR/IDOL1,IDOL2,IDOL3,IDOL4,IDOL5,IDOL6B INTEGER*2 RRWACT,RCLACT COMMON/RCLACT/RRWACT,RCLACT$ COMMON/FFGG/FORMFG,RCFGX,PZAP,RCONE& COMMON/XCMD/XTNCNT,XTNCMD,XTCFG,IPSET:C LOOP CONTROL FOR VARY FUNCTION. SET ZERO IN SPREDSHT AND2C MUST BE 00 WWVRTADATADATADATADATADATASET POSITIVE HERE IF WE NEED ITERATIONS.C (IMPLEMENT FOR VAX ONLY) INTEGER KALKITM COMMON/VARYIT/KALKIT_(C ARGUMENTS COME IN IN ARGUMENTS IN LINE<C RESULTS GO INTO PERCENT (XAC) AND WHEREVER ELSE DESIRED...( INTEGER*2 PROW,PCOL,DROW,DCOL,DRWV,DCLV* COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRWV,DCLV( DIMENSION NRDSP(DRW,DCL),NCDSP(DRW,DCL) COMMON/D2R/NRDSP,NCDSPD C ADD DATATRIEVE DATA STMTS HEREC ***cD!c FORTRAN DATATRIEVE Access BlockNc; LOGICAL*1 DAB$B_BID, DAB$B_BLN, DAB$B_VER_LETTER, DAB(100) , INTEGER*2 DAB$W_MSG_BUF_LEN, DAB$W_MSG_LEN,& 1 DAB$W_AUX_BUF_LEN, DAB$W_AUX_LEN,. 2 DAB$W_IDI, DAB$W_STATE, DAB$W_REC_LENGTH,2 3 DAB$W_VERSION, DAB$W_LEVEL, DAB$W_BASE_LEVEL,) 4 DAB$W_UDK_INDEX, DAB$W_COLUMNS_PAGE,C 5 DAB$W_TT_CHANNELH( LOGICAL*4 DAB$A_MSG_BUF, DAB$A_AUX_BUF,0 1 DAB$L_CONDITION, DAB$L_FLAGS, DAB$L_OPTIONS COMMON /DAB_COMMON/ D 1 DAB$B_BID,  2 DAB$B_BLN,  3 DAB$L_CONDITION,, 4 DAB$A_MSG_BUF,R 5 DAB$W_MSG_BUF_LEN, _ 6 DAB$W_MSG_LEN,_ 7 DAB$A_AUX_BUF,  8 DAB$W_AUX_BUF_LEN,  9 DAB$W_AUX_LEN,R 1 DAB$W_IDI,  2 DAB$W_STATE,  3 DAB$L_FLAGS,  4 DAB$L_OPTIONS,  5 DAB$W_REC_LENGTH, 5 6 DAB$W_VERSION,  7 DAB$W_LEVEL,  8 DAB$B_VER_LETTER, _ 9 DAB$W_BASE_LEVEL, _ 1 DAB$W_UDK_INDEX,G 2 DAB$W_COLUMNS_PAGE, 3 DAB$W_TT_CHANNEL EQUIVALENCE (DAB, DAB$B_BID)M; INTEGER DTR$K_STL_CMD, DTR$K_STL_PRMPT, DTR$K_STL_LINE,E4 1 DTR$K_STL_MSG, DTR$K_STL_PGET, DTR$K_STL_PPUT,6 2 DTR$K_STL_CONT, DTR$K_STL_UDK, DTR$K_STL_END_UDK PARAMETER (DTR$K_STL_CMD=1, 1 DTR$K_STL_PRMPT=2,  2 DTR$K_STL_LINE=3, 3 DTR$K_STL_MSG=4, 4 DTR$K_STL_PGET=5,N 5 DTR$K_STL_PPUT=6,E 6 DTR$K_STL_CONT=7,O 7 DTR$K_STL_UDK=8, 8 DTR$K_STL_END_UDK=9)2 INTEGER DTR$K_SEMI_COLON_OPT, DTR$K_UNQUOTED_LIT,+ 1 DTR$K_SYNTAX_PROMPT, DTR$K_IMMED_RETURN,T: 2 DTR$K_FORMS_ENABLE, DTR$K_VERIFY, DTR$K_CONTEXT_SEARCH,; 3 DTR$K_HYPHEN_DISABLED, DTR$K_MORE_COMMANDS, DTR$K_ABORT,T 4 DTR$K_LOCK_WAIT# PARAMETER (DTR$K_SEMI_COLON_OPT=1,T 1 DTR$K_UNQUOTED_LIT=16, 2 DTR$K_SYNTAX_PROMPT=32,_ 3 DTR$K_IMMED_RETURN=64, 4 DTR$K_FORMS_ENABLE=128,N 5 DTR$K_VERIFY=256,C 6 DTR$K_CONTEXT_SEARCH=2048,! 7 DTR$K_HYPHEN_DISABLED=4096,_ 8 DTR$K_MORE_COMMANDS=8192,= 9 DTR$K_ABORT=16384, 1 DTR$K_LOCK_WAIT=32768)= INTEGER DTR$M_OPT_CMD, DTR$M_OPT_PRMPT, DTR$M_OPT_LINE,_4 1 DTR$M_OPT_MSG, DTR$M_OPT_PGET, DTR$M_OPT_PPUT,7 2 DTR$M_OPT_CONT, DTR$M_OPT_UDK, DTR$M_OPT_DTR_UDK,+ 3 DTR$M_OPT_END_UDK, DTR$M_OPT_UNWIND, P. 4 DTR$M_OPT_CONTROL_C, DTR$M_OPT_STARTUP, @ 5 DTR$M_OPT_FOREIGN, DTR$M_OPT_BANNER, DTR$M_OPT_REMOVE_CTLC PARAMETER (DTR$M_OPT_CMD=1, 1 DTR$M_OPT_PRMPT=2, 2 DTR$M_OPT_LINE=4, 3 DTR$M_OPT_MSG=8, 4 DTR$M_OPT_PGET=16, 5 DTR$M_OPT_PPUT=32, 6 DTR$M_OPT_CONT=64, 7 DTR$M_OPT_UDK=128, 8 DTR$M_OPT_DTR_UDK=256, 9 DTR$M_OPT_END_UDK=512, 1 DTR$M_OPT_UNWIND=1024, 2 DTR$M_OPT_CONTROL_C=2048,_ 3 DTR$M_OPT_STARTUP=4096,$ 4 DTR$M_OPT_FOREIGN=8192,_ 5 DTR$M_OPT_BANNER=16384,E" 6 DTR$M_OPT_REMOVE_CTLC=32768)< INTEGER DTR$K_UDK_SET, DTR$K_UDK_SET_NO, DTR$K_UDK_SHOW,- 1 DTR$K_UDK_STATEMENT, DTR$K_UDK_COMMANDC PARAMETER (DTR$K_UDK_SET=1, C 1 DTR$K_UDK_SET_NO=2,  2 DTR$K_UDK_SHOW=3,2 3 DTR$K_UDK_STATEMENT=4, 4 DTR$K_UDK_COMMAND=5)0 INTEGER DTR$K_TOK_TOKEN, DTR$K_TOK_PICTURE, , 1 DTR$K_TOK_FILENAME, DTR$K_TOK_COMMAND, 2 DTR$K_TOK_TEST_TOKEN PARAMETER (DTR$K_TOK_TOKEN=1, 1 DTR$K_TOK_PICTURE=2, 2 DTR$K_TOK_FILENAME=3, 3 DTR$K_TOK_COMMAND=4, 4 DTR$K_TOK_TEST_TOKEN=5)T CHARACTER*232 MSG_BUFF CHARACTER*232 AUX_BUFF& COMMON /DTR$BUFFERS/MSG_BUFF,AUX_BUFF EXTERNAL DTR$_SUCCESS CHARACTER*80 SCRBUF LOGICAL*1 LBUF(128) CHARACTER*9 FMTB EQUIVALENCE (FMTB,LBUF(120))C CHARACTER*11 FMTBFF LOGICAL*1 IFVLD LOGICAL*1 MSGBUF(80)R EQUIVALENCE(MSGBUF(1),MSG_BUFF)C ***"C ********>>>>>>>><<<<<<<<******** RETCD=1 IF(DTRENA.LT.0)GOTO 9999 .C NULL OUT ANY TRAIL00 WlWMW NW}ING BLANKS ON COMMAND LINE DO 3332 N=1,76. NN=77-N IF(LINE(NN).GT.32)GOTO 3333 LINE(NN)=0L 3332 CONTINUET 3333 CONTINUE C SPACE FILL ENTIRE ARRAY DO 3334 N=1,82U3334 LINECL(N)=32 RETCD=17C HANDLE *U DBXXXX FUNCTIONS. LINE ARRAY PASSED IN HEREo,C STARTS AFTER THE "DB" SO WE CAN DECODE IT.5C *U DBCMD (COMMAND) PASSES COMMAND TO DTR FOR ACTIONO0C HOWEVER THIS DOES NOT RETURN A VALUE. USE FORC SETUP PURPOSES ONLY.NCNC INTERFACE DOCUMENTATION:CAC *U DBCMD COMMAND(C WILL PASS COMMAND AND FLUSH MESSAGES.C *U DBVAL COMMAND-C WILL PASS COMMAND AND RETRIEVE CONTENTS OFu+C MESSAGE BUFFER AS VALUE IN % ACCUMULATOR(C *U DBTXT CELL,COMMAND1C WILL PASS COMMAND AND RETRIEVE MESSAGE BUFFER.t/C MESSAGE BUFFER WILL BE PLACED IN CELL NAMED1C AS ASCII TEXT.C *U DBRPV CELL3C WILL TAKE VALUE IN CELL AND USE AS A REPLY TO A44C DTR QUERY (AS IN KEYBOARD INPUTS TO PROCEDURES).C *U DBRPT CELL2C WILL TAKE TEXT IN CELL AND USE AS A REPLY TO AC DTR QUERY AS ABOVE.aCT1C ALL THE ABOVE CALLS WILL BE ALSO IMPLEMENTED AS1C DIRECT "DTRXXX" COMMANDS FOR COMMAND LEVEL USE.RC7C NO NEED TO INCLUDE ABILITY TO STORE COMMANDS IN CELLS(:C FOR EDITING SINCE {CELL CONSTRUCT PROVIDES THIS ALREADY.9C (AND AT COMMAND LEVEL THE __{CELL CONSTRUCT DOES ALSO.)N$ CALL SCMP(LINE,%REF('CMD'),3,ICODE) IF(ICODE.NE.1)GOTO 100RC *U DBCMD COMMANDC EXECUTE DTR COMMAND=C CONSTRUCT A DESCRIPTOR...C DO 10 N=1,60N NN=N M=LINE(4+N)"C COPY CHARACTER ARRAY INTO STRING IF(M.LT.32)GOTO 11TC NNN=ND LINEC(N:N)=CHAR(M)T 10 CONTINUE 11 CONTINUES LINEC(NN:NN)=CHAR(32)" CALL DTR$COMMAND(DAB,LINEC(1:NN))C CHECK STATUS) IF (DAB$W_STATE.EQ.DTR$K_STL_MSG)GOTO 20* IF (DAB$W_STATE.EQ.DTR$K_STL_LINE)GOTO 20 CALL DTR$DTR(DAB,DTR$M_OPT_CMD)5C LET DTR$DTR HANDLE MESSAGES AND SO ON UNTIL BACK ATI@C COMMAND STALLPOINT. NOTE THAT THIS TAKES CARE OF COMMANDS THAT+C UNEXPECTEDLY CALL FOR MESSAGES OR INPUTS.O GOTO 9999 20 CONTINUE. CALL DTR$CONTINUE(DAB) ) IF (DAB$W_STATE.EQ.DTR$K_STL_MSG)GOTO 20R* IF (DAB$W_STATE.EQ.DTR$K_STL_LINE)GOTO 20<C JUST CONTINUE IF WE ONLY GOT A MESSAGE OR PRINT LINE HERE.<c no provision for printing it and we normally want to avoidc prints of this anyway. GOTO 9999 100 CONTINUE$ CALL SCMP(LINE,%REF('VAL'),3,ICODE) IF(ICODE.NE.1)GOTO 200' LSKIP=(LINE(4))-57$ IF(LSKIP.LT.0.OR.LSKIP.GT.9)LSKIP=0 IVV=4 IF(LINE(5).EQ.ICHAR('.'))THEN IVV=IVV+1 END IFO DO 110 N=1,60 M=LINE(IVV+N) NN=N"C COPY CHARACTER ARRAY INTO STRING IF(M.LT.32)GOTO 111C NNN=NN LINEC(N:N)=CHAR(M) 110 CONTINUE 111 CONTINUE LINEC(NN:NN)=CHAR(32)" CALL DTR$COMMAND(DAB,LINEC(1:NN))C CHECK STATUS* IF (DAB$W_STATE.EQ.DTR$K_STL_MSG)GOTO 120+ IF (DAB$W_STATE.EQ.DTR$K_STL_LINE)GOTO 130 CALL DTR$DTR(DAB,DTR$M_OPT_CMD)5C LET DTR$DTR HANDLE MESSAGES AND SO ON UNTIL BACK AT @C COMMAND STALLPOINT. NOTE THAT THIS TAKES CARE OF COMMANDS THAT+C UNEXPECTEDLY CALL FOR MESSAGES OR INPUTS.O GOTO 9999 120 CONTINUE CALL DTR$CONTINUE(DAB)* IF (DAB$W_STATE.EQ.DTR$K_STL_MSG)GOTO 120+ IF (DAB$W_STATE.EQ.DTR$K_STL_LINE)GOTO 130E GOTO 9999 130 CONTINUE IF(LSKIP.GT.0)THENO DO 3346 N=1,LSKIP3346 CALL DTR$CONTINUE(DAB)3+C SKIP EXTRA PRINT LINES IF NEEDED TO DO SO= END IF= IF(IVV.GE.5)THEN IQ=0B DO 135 N=1,110:#135 IF(MSGBUF(N).EQ.ICHAR('.'))IQ=1) IVVV=0T DO 138 N=1,80% IF(MSGBUF(NN).EQ.ICHAR(':'))IVVV=N+1  NN=81-N IF(MSGBUF(NN).GT.32)GOTO 139S 138 CONTINUE139 IF(IQ.EQ.0)MSGBUF(NN+1)=46C 46 IS ASCII PERIOD,C IF WE HAVE . AS FIRST CHAR OF COMMAND THEN<C ADD DECIMAL TO END OF TEXT AND START TEXT AFTER THE : OF A;C POSSIBLE LIST COMMAND. ONLY ADD THE DECIMAL IF NONE IS IN37C THE STRING ALREADY AND ONLY SKIP COLON IF ONE EXISTS.E IF(IVVV.GT.0)THEN K=1 DO 137 N=IVVV,NN+1 MSGBUF(K)=MSGBUF(N) K=K+1 137 CONTINUE DO 136 N=K,110E136 MSGBUF(K)=32 END IFC END IFTC GET VALUE BACK$C FORTRAN-77 HACK. USE INTERNAL READ!C GETS RESULT INTO % ACCUMULATOR.t READ(MSG_BUFF,140,ERR=9990)XACK9c use wide format to allow correct00 WWVRTADATADATADATADATADATA readin of many formatsR140 FORMAT(D30.15)*C LOOP BACK TO CLEAR ANY REMAINING READINS GOTO 120 <C JUST CONTINUE IF WE ONLY GOT A MESSAGE OR PRINT LINE HERE. 200 CONTINUE$ CALL SCMP(LINE,%REF('TXT'),3,ICODE) IF(ICODE.NE.1)GOTO 3002c get cell name now and skip the comma after it...C *U DBTXT CELL,COMMAND5C GETS REPLY INTO CELL. IF NO REPLY, CELL UNCHANGED.L LO=4E LHI=20M LSTCHR=20- CALL VARSCN(LINE,LO,LHI,LSTCHR,ID1,ID2,IVLD)N IF(IVLD.EQ.0)GOTO 9990(4C JUST SKIP COMMA, SO IT REALLY CAN BE ANY DELIMITER IF(LINE(LSTCHR).LE.32)THENA+ IF (DAB$W_STATE.EQ.DTR$K_STL_LINE)GOTO 2301 LINE(LSTCHR+1)=32 LINE(LSTCHR+2)=0O ENDIF DO 210 N=1,60 NN=N: M=LINE(LSTCHR+N)0"C COPY CHARACTER ARRAY INTO STRING IF(M.LT.32)GOTO 211C NNN=NS LINEC(N:N)=CHAR(M)) 210 CONTINUE 211 CONTINUE LINEC(NN:NN)=CHAR(32) XAC=0. " CALL DTR$COMMAND(DAB,LINEC(1:NN))C CHECK STATUS* IF (DAB$W_STATE.EQ.DTR$K_STL_MSG)GOTO 220+ IF (DAB$W_STATE.EQ.DTR$K_STL_LINE)GOTO 230D CALL DTR$DTR(DAB,DTR$M_OPT_CMD)5C LET DTR$DTR HANDLE MESSAGES AND SO ON UNTIL BACK AT$@C COMMAND STALLPOINT. NOTE THAT THIS TAKES CARE OF COMMANDS THAT+C UNEXPECTEDLY CALL FOR MESSAGES OR INPUTS.R GOTO 9999 220 CONTINUE CALL DTR$CONTINUE(DAB)E* IF (DAB$W_STATE.EQ.DTR$K_STL_MSG)GOTO 220 GOTO 9999 230 CONTINUE6C IF(LINE(LSTCHR).EQ.ICHAR(';'))CALL DTR$CONTINUE(DAB)?C SKIP ONE LINE IF WE SEE A ; AFTER CELL NAME INSTEAD OF COMMA.(# IF(LINE(LSTCHR).GE.ICHAR(':').AND. ( 1 LINE(LSTCHR).LE.ICHAR('?'))THEN NNV=(LINE(LSTCHR))-57 C SKIP LINES BASED ON DELIMITER: C : = 1 SKIP C ; = 2 SKIPST C < = 3 SKIPS C = = 4 SKIPS C > = 5 SKIPS- C ? = 6 SKIPSE DO 3342 N=1,NNV3342 CALL DTR$CONTINUE(DAB)* END IFC GET STRING BACK1$C COPY MSG_BUFF BACK INTO CELL GIVENC ID1,ID2 ADDRESS CELL.T IFVLD=-1TC FLAG AS TEXT CALL FVLDST(ID1,ID2,IFVLD)=C IRX=(ID2-1)*RRW+ID1B CALL REFLEC(ID2,ID1,IRX)  CALL WRKFIL(IRX,LBUF,0)*C READ MEMORY ARRAY, MODIFY, THEN WRITE IT DO 233 N=1,1102 233 LBUF(N)=0U DO 234 N=1,80234 LBUF(N)=MSGBUF(N)C9C NULL OUT TRAILING BLANKS PRIOR TO STORING TEXT IN SHEET  DO 235 N=1,109U NN=110-N% IF(LBUF(NN).GT.32)GOTO 236 LBUF(NN)=0A 235 CONTINUE 236 CONTINUE CALL WRKFIL(IRX,LBUF,1) XAC=1.MEC FLAG SUCCESSFUL GETTING OF MESSAGE BY RETURNING 1 IN % ACCUMULATOR.E!C LEAVE VALUE AT THIS CELL ALONE.9237 CALL DTR$CONTINUE(DAB)!C FLUSH ALL REMAINING MESSAGES...D* IF (DAB$W_STATE.EQ.DTR$K_STL_MSG)GOTO 237+ IF (DAB$W_STATE.EQ.DTR$K_STL_LINE)GOTO 237L GOTO 9999 300 CONTINUE$ CALL SCMP(LINE,%REF('RPV'),3,ICODE) IF(ICODE.NE.1)GOTO 400LC FIRST ISOLATE CELL NAME( LO=4T LHI=202 LSTCHR=20- CALL VARSCN(LINE,LO,LHI,LSTCHR,ID1,ID2,IVLD)F IF(IVLD.EQ.0)GOTO 9990R4C JUST SKIP COMMA, SO IT REALLY CAN BE ANY DELIMITER IF(LINE(LSTCHR).LE.32)THEND, IF (DAB$W_STATE.EQ.DTR$K_STL_PRMPT)GOTO 340!C MAKE CMD NULL IF NO COMMA THERE( LINE(LSTCHR+1)=32 LINE(LSTCHR+2)=0= ENDIF DO 310 N=1,60 NN=NT M=LINE(LSTCHR+N)="C COPY CHARACTER ARRAY INTO STRING IF(M.LT.32)GOTO 311C NNN=N  LINEC(N:N)=CHAR(M)T 310 CONTINUE 311 CONTINUE LINEC(NN:NN)=CHAR(32) XAC=0. C REPLY WITH VALUE.E$C THIS USES VALUE IN CELL FOR REPLY.CC SINCE DTR EXPECTS TEXT, USE DISPLAY FORMAT IN CELL TO CONVERT THEDC VALUE TO TEXT CHARACTERS.G" CALL DTR$COMMAND(DAB,LINEC(1:NN))C CHECK STATUS* IF (DAB$W_STATE.EQ.DTR$K_STL_MSG)GOTO 320+ IF (DAB$W_STATE.EQ.DTR$K_STL_LINE)GOTO 330A, IF (DAB$W_STATE.EQ.DTR$K_STL_PRMPT)GOTO 340 CALL DTR$DTR(DAB,DTR$M_OPT_CMD)5C LET DTR$DTR HANDLE MESSAGES AND SO ON UNTIL BACK ATT@C COMMAND STALLPOINT. NOTE THAT THIS TAKES CARE OF COMMANDS THAT+C UNEXPECTEDLY CALL FOR MESSAGES OR INPUTS.T GOTO 9999 320 CONTINUE 330 CONTINUE CALL DTR$CONTINUE(DAB)3* IF (DAB$W_STATE.EQ.DTR$K_STL_MSG)GOTO 320+ IF (DAB$W_STATE.EQ.DTR$K_STL_LINE)GOTO 330A, IF (DAB$W_STATE.EQ.DTR$K_STL_PRMPT)GOTO 340 GOTO 9999 340 CONTINUEDC WAITING FOR DTR$PUT_VALUE CALL. GO GET VALUE AND CONVERT AND SHOVEC OUT. CALL XVBLGT(ID1,ID2,TMP)XC TMP IS REAL*8I@C NOW HAVE VALUE IN CELL (DEFAUL00 WWWNW}T IS 0. IF CELL NOT INITIALIZED)C IRX=(ID2-1)*RRW+ID1K CALL REFLEC(ID2,ID1,IRX)= CALL WRKFIL(IRX,LBUF,0):C READ IN FORMULA BUFFER TO ALLOW US TO GET FORMAT TO USE. DO 341 N=1,9E K=LBUF(119+N) IF(K.LT.32)K=32342 LBUF(119+N)=K 341 CONTINUE FMTBF='(' // FMTB // ')'*C STASH FORMAT BUFFER IN THERE7C WE ALREADY MADE SURE IT HAS ALL SPACES OR FORMAT DATA$ WRITE(SCRBUF,FMTBF,ERR=348)TMPA% CALL DTR$PUT_VALUE(DAB,SCRBUF(1:45))  XAC=1.E* IF (DAB$W_STATE.EQ.DTR$K_STL_MSG)GOTO 320+ IF (DAB$W_STATE.EQ.DTR$K_STL_LINE)GOTO 330DC FLUSH OUT THE REST#348 CALL DTR$DTR(DAB,DTR$M_OPT_CMD) 400 CONTINUE$ CALL SCMP(LINE,%REF('RPF'),3,ICODE)C REPLY FROM FORMULA IF(ICODE.NE.1)GOTO 500IC FIRST ISOLATE CELL NAMEU LO=4  LHI=20 LSTCHR=20- CALL VARSCN(LINE,LO,LHI,LSTCHR,ID1,ID2,IVLD)P IF(IVLD.EQ.0)GOTO 9990T4C JUST SKIP COMMA, SO IT REALLY CAN BE ANY DELIMITER IF(LINE(LSTCHR).LE.32)THEN, IF (DAB$W_STATE.EQ.DTR$K_STL_PRMPT)GOTO 440 LINE(LSTCHR+1)=32 LINE(LSTCHR+2)=0S ENDIF DO 410 N=1,60 NN=NY M=LINE(LSTCHR+N)."C COPY CHARACTER ARRAY INTO STRING IF(M.LT.32)GOTO 411C NNN=NO LINEC(N:N)=CHAR(M)= 410 CONTINUE 411 CONTINUE LINEC(NN:NN)=CHAR(32) XAC=0.PEC REPLY FROM FORMULA SO WILL LATER GET REPLY FROM FORMULA TEXT RATHER(C THAN CURRENT VALUE.C" CALL DTR$COMMAND(DAB,LINEC(1:NN))C CHECK STATUS* IF (DAB$W_STATE.EQ.DTR$K_STL_MSG)GOTO 420+ IF (DAB$W_STATE.EQ.DTR$K_STL_LINE)GOTO 4304, IF (DAB$W_STATE.EQ.DTR$K_STL_PRMPT)GOTO 440 CALL DTR$DTR(DAB,DTR$M_OPT_CMD)5C LET DTR$DTR HANDLE MESSAGES AND SO ON UNTIL BACK ATS@C COMMAND STALLPOINT. NOTE THAT THIS TAKES CARE OF COMMANDS THAT+C UNEXPECTEDLY CALL FOR MESSAGES OR INPUTS.C GOTO 9999 420 CONTINUE 430 CONTINUE CALL DTR$CONTINUE(DAB)A* IF (DAB$W_STATE.EQ.DTR$K_STL_MSG)GOTO 420+ IF (DAB$W_STATE.EQ.DTR$K_STL_LINE)GOTO 430A, IF (DAB$W_STATE.EQ.DTR$K_STL_PRMPT)GOTO 440 GOTO 9999 440 CONTINUEFC WAITING FOR DTR$PUT_VALUE CALL. GO EMIT FORMULA (UP TO 80 CHARACTERS C ANYHOW...)*C IRX=(ID2-1)*RRW+ID1I CALL REFLEC(ID2,ID1,IRX)I CALL WRKFIL(IRX,LBUF,0):C READ IN FORMULA BUFFER TO ALLOW US TO GET FORMAT TO USE. SCRBUF=' '9 DO 441 N=1,79 K=LBUF(N) IF(K.LT.32)GOTO 443 NNN=N442 SCRBUF(N:N)=CHAR(K)T 441 CONTINUE 443 CONTINUEC SEND OUT THE REPLY& CALL DTR$PUT_VALUE(DAB,SCRBUF(1:NNN)) XAC=1.T* IF (DAB$W_STATE.EQ.DTR$K_STL_MSG)GOTO 420+ IF (DAB$W_STATE.EQ.DTR$K_STL_LINE)GOTO 430AC FLUSH OUT THE REST#448 CALL DTR$DTR(DAB,DTR$M_OPT_CMD)DCB 500 CONTINUE GOTO 9999 9990 RETCD=3C ERROR RETURN 9999 RETURNS END C DATATRIEVE INTERFACE FUNCTIONSC DUMMY INITIAL VERSIONC GLENN EVERHART 1985 SUBROUTINE DTRINIC INITIALIZE DATATRIEVE RETURN END SUBROUTINE DTRFINC FINISH WITH DTR RETURN END SUBROUTINE DTRCMD(LINE) LOGICAL*1 LINE(80) C DO COMMAND RETURN END SUBROUTINE DTRFCT(LINE,RETCD) INTEGER*2 RETCD LOGICAL*1 LINE(80) RETCD=17C HANDLE *U DBXXXX FUNCTIONS. LINE ARRAY PASSED IN HERE,C STARTS AFTER THE "DB" SO WE CAN DECODE IT. RETURN END C DATATRIEVE INTERFACE FUNCTIONS"c optional for VAX VMS AnalytiCalc#C Include by linking with DTRIF.FVX#C Exclude by linking with DTRIF.FVDC9C THIS IS THE NON-DTR VERSION with dummy entry points for;C the DTR functions BUT supplying the new non-DTR functions c completely.Cc5c Attempt to provide a reasonable interface to DTR by<c allowing passing of commands to DTR both interactively and:c from within a cell, and retrieving numbers and text into;c cells. Also permit sending replies00WWVRTADATADATADATADATADATA to DTR (for replies in=c procedures) from text in cells or numbers (values) in cells!c so that interaction is two-way.cC GLENN EVERHART 1985 SUBROUTINE DTRINIC INITIALIZE DATATRIEVE+C CALLED AT START OF PROGRAM, ONCE-FOR-ALL.C ***C ***"C ********>>>>>>>><<<<<<<<********c no DTR; therefore, no init. RETURN END SUBROUTINE DTRFINC INITIALIZE DATATRIEVE)C CALLED AT END OF PROGRAM, ONCE-FOR-ALL."C ********>>>>>>>><<<<<<<<******** RETURN END SUBROUTINE DTRCMD(LINE) LOGICAL*1 LINE(80) CHARACTER*62 LINECC EQUIVALENCE(LINEC,LINE(1)) INCLUDE 'VKLUGPRM.FTN'#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY. INTEGER RETCDCC(C DEFINE FILE AREAS FOR MAPPING FILES...DC ONE INPUT FILE, TO BE ACCESSED AS A RANDOM ACCESS FILE OF 128 BYTEDC RECORDS OF DATA IF RANDOM, OR AS A FORMULA FILE IF SEQUENTIAL, AND?C ONE OUTPUT FILE TO BE WRITTEN THE SAME WAY. INPUT FILE CAN BEC INPUT - ONLY OR READ/WRITE.CBC DEFINE ALSO DATA STRUCTURES TO HOLD CELL RANGES (IN ROW AND COL)BC TO BE TREATED WITH THESE FILES, FLAG FOR HOW-OPEN, AND LUN USED.CC MFIOPN = 0 IF NOT OPEN&C 1 IF OPEN FOR READ ONLY, SEQUENTIALC 2 IF OPEN READ ONLY, RANDOM C 3 IF OPEN READ/WRITE, RANDOM.CC MFOOPN = 0 IF NOT OPENC 1 IF OPEN WRITE SEQUENTIALC 2 IF OPEN WRITE RANDOMC!C OTHER OPTIONS DON'T MAKE SENSE.9C MFIRL,MFIRH = RRW DIMENSION LOW, HIGH BOUND, INPUT FILE9C MFICL,MFICH = RCL DIMENSION LOW, HIGH BOUND, INPUT FILE%C MFORL,RH,MFOCL,CH = OUT FILE BOUNDS"C MFILUN,MFOLUN ARE LOGICAL UNITS.) INTEGER*2 MFIOPN,MFIRL,MFIRH,MFICL,MFICH) INTEGER*2 MFOOPN,MFORL,MFORH,MFOCL,MFOCH& INTEGER*2 MFILUN,MFOLUN,MFIFLG,MFOFLG5 COMMON/MFILES/MFIOPN,MFOOPN,MFIRL,MFIRH,MFICL,MFICH,; 1 MFORL,MFORH,MFOCL,MFOCH,MFILUN,MFOLUN,MFIFLG,MFOFLGCC2 LOGICAL*1 AVBLS(20,27),WRK(128),VBLS(8,RRWP,RCLP)" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9) REAL*8 XAC,XVBLS(RRWP,RCLP) REAL*8 TAC,UAC,VAC,WAC,YAC REAL*8 TMP INTEGER*4 JVBLS(2,RRWP,RCLP)/ EQUIVALENCE(WAC,AVBLS(1,23)),(YAC,AVBLS(1,25)) EQUIVALENCE(XAC,AVBLS(1,27)) EQUIVALENCE(TAC,AVBLS(1,20)) EQUIVALENCE(UAC,AVBLS(1,21)) EQUIVALENCE(VAC,AVBLS(1,22))& EQUIVALENCE(VBLS(1,1,1),JVBLS(1,1,1))$ EQUIVALENCE(VBLS(1,1,1),XVBLS(1,1)) COMMON/V/TYPE,AVBLS,VBLS,VLEN INTEGER*2 XTNCNT,XTCFG,IPSET LOGICAL*1 XTNCMD(80)" INTEGER*2 FORMFG,RCFGX,PZAP,RCONE. INTEGER*2 IDOL1,IDOL2,IDOL3,IDOL4,IDOL5,IDOL61 COMMON/DOLLR/IDOL1,IDOL2,IDOL3,IDOL4,IDOL5,IDOL6 INTEGER*2 RRWACT,RCLACT COMMON/RCLACT/RRWACT,RCLACT$ COMMON/FFGG/FORMFG,RCFGX,PZAP,RCONE& COMMON/XCMD/XTNCNT,XTNCMD,XTCFG,IPSET:C LOOP CONTROL FOR VARY FUNCTION. SET ZERO IN SPREDSHT AND2C MUST BE SET POSITIVE HERE IF WE NEED ITERATIONS.C (IMPLEMENT FOR VAX ONLY) INTEGER KALKIT COMMON/VARYIT/KALKIT(C ARGUMENTS COME IN IN ARGUMENTS IN LINE<C RESULTS GO INTO PERCENT (XAC) AND WHEREVER ELSE DESIRED...( INTEGER*2 PROW,PCOL,DROW,DCOL,DRWV,DCLV* COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRWV,DCLV( DIMENSION NRDSP(DRW,DCL),NCDSP(DRW,DCL) COMMON/D2R/NRDSP,NCDSP INTEGER*2 DTRENA COMMON/DTRCMN/DTRENA LOGICAL *1 LINECL(82)C CHARACTER*70 LINEC EQUIVALENCE(LINEC,LINECL(1)) CHARACTER*80 SCRBUF LOGICAL*1 LBUF(128) LOGICAL*1 MBUF(128) CHARACTER*110 CLBUF,CMBUF+ EQUIVALENCE(CLBUF,LBUF(1)),(CMBUF,MBUF(1))/C USE CLBUF, CMBUF FOR CHARACTER COMPARISONS... CHARACTER*9 FMTB EQUIVALENCE (FMTB,LBUF(120)) CHARACTER*11 FMTBF LOGICAL*1 IFVLD"C ********>>>>>>>><<<<<<<<********.C NULL OUT ANY TRAILING BLANKS ON COMMAND LINE DO 3332 N=1,80 NN=81-N IF(LINE(NN).GT.32)GOTO 3333 LINE(NN)=0 3332 CONTINUE 3333 CONTINUEC SPACE FILL ENTIRE ARRAY DO 3334 N=1,823334 LINECL(N)=32 RETCD=14C HANDLE DTRCMD FUNCTIONS. LINE ARRAY PASSED IN HERE-C STARTS AFTER THE "DTR" SO WE CAN DECODE IT.C EXECUTE DTR COMMAND9C DTRCMD (COMMAND) GIVES DTR COMMAND FACILITY AT COMMANDC LEVEL.4C ALLOW DTRIMM COMMAND TO USE DTR IMMEDIATE TERMINAL900WWWNW}C INTERFACE. THE REST CAN USE SAME COMMAND NAMES AS AFTER!C THE "DB" IN *U DBXXXX COMMANDS. 500 CONTINUE"C ENABLE/DISABLE FOR DTR FUNCTIONS0C SETTING DTRENA TO -1 IMPLIES DISABLE FUNCTIONS$ CALL SCMP(LINE,%REF('ENA'),3,ICODE) IF(ICODE.NE.1)GOTO 600 DTRENA=1 GOTO 9999 600 CONTINUE$ CALL SCMP(LINE,%REF('DIS'),3,ICODE) IF(ICODE.NE.1)GOTO 700 DTRENA=-1 GOTO 9999 700 CONTINUE& CALL SCMP(LINE,%REF('OPINS'),5,ICODE)C OPEN INPUT SEQUENTIAL IF(ICODE.NE.1)GOTO 3800C DTROPINS RANGE FILENAME IBGN=6 IVLD=08 CALL GMTX(LINE,IBGN,LSTCH,MFIRL,MFICL,MFIRH,MFICH,IVLD) IF(IVLD.EQ.3)GOTO 9990 LINE(LSTCH+25)=07 OPEN(UNIT=MFILUN,FILE=LINE(LSTCH),ACCESS='SEQUENTIAL'," 1 STATUS='UNKNOWN',ERR=9990) MFIOPN=1 GOTO 9999 3800 CONTINUE' CALL SCMP(LINE,%REF('OPINRR'),6,ICODE)C OPEN IN RANDOM READ IF(ICODE.NE.1)GOTO 3900 KK=2 GOTO 3910 3900 CONTINUE' CALL SCMP(LINE,%REF('OPINRU'),6,ICODE)C OPEN IN RANDOM UPDATE IF(ICODE.NE.1)GOTO 3950 KK=3 3910 CONTINUE@C HANDLE INPUT DIRECT ACCESS OPEN COMMONLY FOR READ ONLY AND R/W IBGN=7 IVLD=08 CALL GMTX(LINE,IBGN,LSTCH,MFIRL,MFICL,MFIRH,MFICH,IVLD) IF(IVLD.EQ.3)GOTO 9990 LINE(LSTCH+25)=0$ NBK=(MFIRH-MFIRL+1)*(MFICH-MFICL+1)3 OPEN(UNIT=MFILUN,FILE=LINE(LSTCH),ACCESS='DIRECT',< 1 INITIALSIZE=NBK,FORM='UNFORMATTED',STATUS='UNKNOWN',' 1 RECL=32,BLOCKSIZE=128,ERR=9990) MFIOPN=KK GOTO 9999 3950 CONTINUE' CALL SCMP(LINE,%REF('OPOUTS'),6,ICODE)C OPEN OUTPUT SEQUENTIAL IF(ICODE.NE.1)GOTO 4000 IBGN=7 IVLD=08 CALL GMTX(LINE,IBGN,LSTCH,MFORL,MFOCL,MFORH,MFOCH,IVLD) IF(IVLD.EQ.3)GOTO 9990 LINE(LSTCH+25)=07 OPEN(UNIT=MFOLUN,FILE=LINE(LSTCH),ACCESS='SEQUENTIAL'," 1 STATUS='UNKNOWN',ERR=9990) MFOOPN=1 GOTO 9999 4000 CONTINUE' CALL SCMP(LINE,%REF('OPOUTR'),6,ICODE)C OPEN OUTPUT RANDOM IF(ICODE.NE.1)GOTO 4100 IBGN=7 IVLD=08 CALL GMTX(LINE,IBGN,LSTCH,MFORL,MFOCL,MFORH,MFOCH,IVLD) IF(IVLD.EQ.3)GOTO 9990$ NBK=(MFORH-MFORL+1)*(MFOCH-MFOCL+1) LINE(LSTCH+25)=03 OPEN(UNIT=MFOLUN,FILE=LINE(LSTCH),ACCESS='DIRECT',< 1 INITIALSIZE=NBK,FORM='UNFORMATTED',STATUS='UNKNOWN',' 1 RECL=32,BLOCKSIZE=128,ERR=9990) MFOOPN=2 GOTO 9999 4100 CONTINUE' CALL SCMP(LINE,%REF('CLSOUT'),6,ICODE)C CLOSE OUTPUT  IF(ICODE.NE.1)GOTO 4200 CLOSE(UNIT=MFOLUN) MFOOPN=0 GOTO 9999 4200 CONTINUE' CALL SCMP(LINE,%REF('CLSINP'),6,ICODE)C CLOSE INPUT  IF(ICODE.NE.1)GOTO 4300 CLOSE(UNIT=MFILUN) MFIOPN=0 GOTO 9999 4300 CONTINUE' CALL SCMP(LINE,%REF('ENAOUT'),6,ICODE)C ENABLE OUTPUT  IF(ICODE.NE.1)GOTO 4400 MFOFLG=1 GOTO 9999 4400 CONTINUE' CALL SCMP(LINE,%REF('ENAINP'),6,ICODE)C ENABLE INPUT  IF(ICODE.NE.1)GOTO 4500 MFIFLG=1 GOTO 9999 4500 CONTINUE' CALL SCMP(LINE,%REF('DISINP'),6,ICODE)C DISABLE INPUT  IF(ICODE.NE.1)GOTO 4510 MFIFLG=0 GOTO 9999 4510 CONTINUE' CALL SCMP(LINE,%REF('DISOUT'),6,ICODE)C DISABLE OUTPUT IF(ICODE.NE.1)GOTO 4520 MFOFLG=0 GOTO 9999 4520 CONTINUE' CALL SCMP(LINE,%REF('EDTINP'),6,ICODE)C ENABLE INPUT FORCE C COMMANDC DTREDTINP RANGEHC GETS RANGE, THEN FOR EACH CELL IN RANGE READS IN (BY WRKFIL READ CALL)DC A CELL, SETS ITS FVLD CODE TO -1 (TO FLAG A TEXT CELL), AND WRITESC IT OUT AGAIN. IF(ICODE.NE.1)GOTO 4600$C FORCE ENABLE OF READIN DURING THIS MFIFLG=1 MFOFLG=1C ENABLE OUTPUT TOO. IBGN=7 IVLD=04 CALL GMTX(LINE,IBGN,LSTCH,IXRL,IXCL,IXRH,IXCH,IVLD) IF(IVLD.EQ.3)GOTO 9990 DO 4550 N1=IXRL,IXRH DO 4550 N2=IXCL,IXCH CALL REFLEC(N2,N1,IRX)2C SET THE ELEMENT AS VALID AND READ/WRITE IT ONCE. CALL FVLDST(N1,N2,-1) CALL WRKFIL(IRX,LBUF,0) CALL WRKFIL(IRX,LBUF,1) 4550 CONTINUE MFIFLG=0 MFOFLG=0 GOTO 9999 4600 CONTINUE' CALL SCMP(LINE,%REF('FMTOUT'),6,ICODE)C FORMAT/WRITE OUTPUT C COMMANDC DTRFMTOUT RANGEHC GETS RANGE, THEN FOR EACH CELL IN RANGE READS IN (BY WRKFIL READ CALL)DC A CELL, SETS ITS FVLD CODE TO -1 (TO FLAG A TEXT CELL), AND WRITESC IT OUT AGAIN. IF(ICODE.NE.1)GOTO 4630 IVLFG=1 GOTO 4740 00WWVRTADATADATADATADATADATA4630 CONTINUE' CALL SCMP(LINE,%REF('VALOUT'),6,ICODE) IF(ICODE.NE.1)GOTO 4700.C VALOUT CMD OUTPUTS VALUES WITH LONG D FORMAT IVFLG=2 C GOTO 4740 4740 CONTINUE$C FORCE ENABLE OF READIN DURING THIS MFIFLG=1 MFOFLG=1C ENABLE OUTPUT TOO. IBGN=7 IVLD=04 CALL GMTX(LINE,IBGN,LSTCH,IXRL,IXCL,IXRH,IXCH,IVLD) IF(IVLD.EQ.3)GOTO 9990 DO 4650 N1=IXRL,IXRH DO 4650 N2=IXCL,IXCHC FIND INDEX FOR WRKFIL CALL REFLEC(N2,N1,IRX)2C SET THE ELEMENT AS VALID AND READ/WRITE IT ONCE. CALL XVBLGT(N1,N2,TMP)C TMP IS REAL*8 SCRATCH CALL FVLDST(N1,N2,-1) CALL WRKFIL(IRX,LBUF,0)5C HAVING LOADED THE RECORD NOW (GETTING FORMAT, ETC.)#C NOW GRAB THE VALUE AND SAVE IT...C FIRST MOVE THE FORMAT DOWN;C NOTE LINEC AND LINECL ARE EQUIVALENT BUT LINECL IS CHAR*1 DO 4651 N=1,9 LBUF(N+1)=LBUF(N+119) 4651 CONTINUE LBUF(1)='(' LBUF(11)=')' LBUF(12)=0&C FORMAT NOW LIVES IN LOW PART OF LBUF"C D25.17 FORMAT WOULD DO FOR WRITE, IF(IVLFG.EQ.1)WRITE(LINEC,LBUF,ERR=4652)TMP, IF(IVLFG.EQ.2)WRITE(LINEC,4658,ERR=4652)TMP4658 FORMAT(D25.17)@C USE BUILTIN FORMAT TO WRITE THE VALUE IF COMMANDED TO DO SO ORC USE DISPLAY FORMAT. 4652 CONTINUE KK=1 DO 4653 N=1,1104653 LBUF(N)=0 DO 4654 N=1,60,C COPY LINECL CHARS TO LBUF, SKIPPING SPACES KKK=LINECL(N) IF(KKK.LE.32)GOTO 4654 LBUF(KK)=LINECL(N) KK=KK+1 4654 CONTINUE CALL WRKFIL(IRX,LBUF,1) 4650 CONTINUE MFIFLG=0 MFOFLG=0 GOTO 9999 4700 CONTINUE' CALL SCMP(LINE,%REF('CMPFRM'),6,ICODE) IF(ICODE.NE.1)GOTO 4800C DBCMPFRM V1:V22C RETURNS IN % THE INDEX OF FORMULA 1 IN FORMULA 2 IBGN=7 IVLD=0!C USE GMTX TO GET CELL ADDRESSES.4 CALL GMTX(LINE,IBGN,LSTCH,IXRL,IXCL,IXRH,IXCH,IVLD) IF(IVLD.EQ.3)GOTO 99906C IF WE HAVE A COMMA AND ANOTHER MTX USE IT AS LENGTHS CALL REFLEC(IXCL,IXRL,IRXL) CALL REFLEC(IXCH,IXRH,IRXH) IF(LINE(LSTCH).NE.',')GOTO 4780 IBGN=LSTCH+1 IVLD=04 CALL GMTX(LINE,IBGN,LSTCH,IYRL,IYCL,IYRH,IYCH,IVLD) IF(IVLD.EQ.3)GOTO 4780C GET THE LENGTHS NOW CALL XVBLGT(IYRL,IYCL,TMP)% IF(TMP.LT.1.OR.TMP.GT.109.)GOTO 4780 LBUFL=TMP CALL XVBLGT(IYRH,IYCH,TMP)% IF(TMP.LT.1.OR.TMP.GT.109.)GOTO 4780 MBUFL=TMP6C IF LENGTHS ARE OK FOR BOTH, THEN USE THEM AND DO THEC COMPARISONS BASED ON THAT. GOTO 4770 4780 CONTINUEC GET INDEX OF EACH ELEMENT... CALL WRKFIL(IRXL,LBUF,0) CALL WRKFIL(IRXH,MBUF,0)C LOAD THE 2 FORMULAS.C NOW FIND THE ENDS... DO 4750 N=1,110 NN=111-N IF(LBUF(NN).GT.32)GOTO 4751 4750 CONTINUE 4751 LBUFL=NN DO 4760 N=1,110 NN=111-N IF(MBUF(NN).GT.32)GOTO 4761 4760 CONTINUE 4761 MBUFL=NN 4770 CONTINUE( NN=INDEX(CLBUF(1:LBUFL),CMBUF(1:MBUFL))!C NN IS LOCATION OF SUBSTRING NOW XAC=NN!C RETURN RESULT IN % ACCUMULATOR. WAC=0.. IF(LLT(CLBUF(1:LBUFL),CMBUF(1:MBUFL)))WAC=-1.- IF(LGT(CLBUF(1:LBUFL),CMBUF(1:MBUFL)))WAC=1.9C RETURN LESS/GREATER/EQUAL IN W ACCUMULATOR FOR POSSIBLECC USE IN SORTS, ETC. THUS WE CAN TEST 2 STRINGS BY TESTING W ACCUM.6C (LEAVES X, Y ALONE SINCE W IS MORE FREQUENTLY FREE.) GOTO 9999 4800 CONTINUE' CALL SCMP(LINE,%REF('LENFRM'),6,ICODE) IF(ICODE.NE.1)GOTO 4900C DBLENFRM V1:V2-C RETURNS LENGTH OF FORMULA IN V1 IN % AND V2 IBGN=7 IVLD=0!C USE GMTX TO GET CELL ADDRESSES.4 CALL GMTX(LINE,IBGN,LSTCH,IXRL,IXCL,IXRH,IXCH,IVLD) IF(IVLD.EQ.3)GOTO 99906C IF WE HAVE A COMMA AND ANOTHER MTX USE IT AS LENGTHS CALL REFLEC(IXCL,IXRL,IRXL)C GET INDEX OF EACH ELEMENT... CALL WRKFIL(IRXL,LBUF,0)C LOAD THE FORMULA.C NOW FIND THE END... DO 4850 N=1,110 NN=111-N IF(LBUF(NN).GT.32)GOTO 4851 4850 CONTINUE 4851 LBUFL=NN TMP=LBUFL XAC=TMP@C SAVE LENGTH IN OUTPUT CELL. DON'T TOUCH VALIDITY FOR THE CELL. NN=0BC SEE IF CELL IS VALID AND IF NOT VALID DON'T SAVE ANYTHING IN IT. CALL FVLDGT(IXRH,IXCH,NN) IF(NN.EQ.0)GOTO 9999 CALL XVBLST(IXRH,IXCH,TMP) GOTO 9999 4900 CONTINUE' CALL SCMP(LINE,%REF('TRMFRM'),6,ICODE) IF(ICODE.NE.1)GOTO 5000C TRIM FORMULA$C DTRTRMFRM INCELL:OUTCELL,START:END"C RETURNS TRIMMED FORMULA TO CELL. IBGN=7 IVLD=00WWWNW}0!C USE GMTX TO GET CELL ADDRESSES.5 CALL GMTX(LINE,IBGN,LSTCHR,IXRL,IXCL,IXRH,IXCH,IVLD) IF(IVLD.EQ.3)GOTO 9990+C GOT CELL HERE...BOTH FOR INPUT AND OUTPUT CALL REFLEC(IXCL,IXRL,IRXL)C GET INDEX OF EACH ELEMENT... CALL REFLEC(IXCH,IXRH,IRXH) CALL WRKFIL(IRXL,LBUF,0) LO=LSTCHR+1 LHI=LSTCHR+21 LSTCHR=LHI- CALL VARSCN(LINE,LO,LHI,LSTCHR,JD1,JD2,IVLD) IF(IVLD.EQ.0)GOTO 9990 CALL XVBLGT(JD1,JD2,TMP) LOCHR=1' IF(TMP.GT.0..AND.TMP.LT.110.)LOCHR=TMPC LOCHR = START CHAR LO=LSTCHR+1 LHI=LSTCHR+21 LSTCHR=LHI- CALL VARSCN(LINE,LO,LHI,LSTCHR,JD1,JD2,IVLD) IF(IVLD.EQ.0)GOTO 9990 CALL XVBLGT(JD1,JD2,TMP) LHICHR=110( IF(TMP.GT.0..AND.TMP.LT.110.)LHICHR=TMPC LHICHR IS END CHARACTERC NOW ALL ARGS ARE COLLECTED. C (IGNORE WHAT WAS DELIMITER...)C COPY DESIRED STUFF TO MBUF N=1 DO 4910 NN=1,110 MBUF(NN)=0) IF(NN.LT.LOCHR.OR.NN.GT.LHICHR)GOTO 4910 MBUF(N)=LBUF(NN) N=N+1<C COPY DESIRED PART OF FORMULA TO MBUF WITH THE REST ZEROED. 4910 CONTINUE DO 4911 NN=111,1284911 MBUF(NN)=LBUF(NN) CALL WRKFIL(IRXH,MBUF,1)=C WRITE BUFFER BACK TO CELL AS TRIMMED NOW, GOING TO OUT CELL@C RATHER THAN INPUT CELL (TO ALLOW REPEATED CALCS TO BE STABLE.) GOTO 9999 5000 CONTINUE GOTO 9999 9990 RETCD=3C ERROR RETURN 9999 RETURN END SUBROUTINE DTRFCT(LINE,RETCD) INTEGER*2 RETCD LOGICAL*1 LINE(80) LOGICAL *1 LINECL(82) CHARACTER*62 LINEC EQUIVALENCE(LINEC,LINECL(1))CC(C DEFINE FILE AREAS FOR MAPPING FILES...DC ONE INPUT FILE, TO BE ACCESSED AS A RANDOM ACCESS FILE OF 128 BYTEDC RECORDS OF DATA IF RANDOM, OR AS A FORMULA FILE IF SEQUENTIAL, AND?C ONE OUTPUT FILE TO BE WRITTEN THE SAME WAY. INPUT FILE CAN BEC INPUT - ONLY OR READ/WRITE.CBC DEFINE ALSO DATA STRUCTURES TO HOLD CELL RANGES (IN ROW AND COL)BC TO BE TREATED WITH THESE FILES, FLAG FOR HOW-OPEN, AND LUN USED.CC MFIOPN = 0 IF NOT OPEN&C 1 IF OPEN FOR READ ONLY, SEQUENTIALC 2 IF OPEN READ ONLY, RANDOM C 3 IF OPEN READ/WRITE, RANDOM.CC MFOOPN = 0 IF NOT OPENC 1 IF OPEN WRITE SEQUENTIALC 2 IF OPEN WRITE RANDOMC!C OTHER OPTIONS DON'T MAKE SENSE.9C MFIRL,MFIRH = RRW DIMENSION LOW, HIGH BOUND, INPUT FILE9C MFICL,MFICH = RCL DIMENSION LOW, HIGH BOUND, INPUT FILE%C MFORL,RH,MFOCL,CH = OUT FILE BOUNDS"C MFILUN,MFOLUN ARE LOGICAL UNITS.) INTEGER*2 MFIOPN,MFIRL,MFIRH,MFICL,MFICH) INTEGER*2 MFOOPN,MFORL,MFORH,MFOCL,MFOCH& INTEGER*2 MFILUN,MFOLUN,MFIFLG,MFOFLG5 COMMON/MFILES/MFIOPN,MFOOPN,MFIRL,MFIRH,MFICL,MFICH,; 1 MFORL,MFORH,MFOCL,MFOCH,MFILUN,MFOLUN,MFIFLG,MFOFLGCC INCLUDE 'VKLUGPRM.FTN'#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY.2 LOGICAL*1 AVBLS(20,27),WRK(128),VBLS(8,RRWP,RCLP)" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9) REAL*8 XAC,XVBLS(RRWP,RCLP) REAL*8 TAC,UAC,VAC,WAC,YAC REAL*8 TMP INTEGER*4 JVBLS(2,RRWP,RCLP)/ EQUIVALENCE(WAC,AVBLS(1,23)),(YAC,AVBLS(1,25)) EQUIVALENCE(XAC,AVBLS(1,27)) EQUIVALENCE(TAC,AVBLS(1,20)) EQUIVALENCE(UAC,AVBLS(1,21)) EQUIVALENCE(VAC,AVBLS(1,22))& EQUIVALENCE(VBLS(1,1,1),JVBLS(1,1,1))$ EQUIVALENCE(VBLS(1,1,1),XVBLS(1,1)) COMMON/V/TYPE,AVBLS,VBLS,VLEN INTEGER*2 XTNCNT,XTCFG,IPSET LOGICAL*1 XTNCMD(80)" INTEGER*2 FORMFG,RCFGX,PZAP,RCONE. INTEGER*2 IDOL1,IDOL2,IDOL3,IDOL4,IDOL5,IDOL61 COMMON/DOLLR/IDOL1,IDOL2,IDOL3,IDOL4,IDOL5,IDOL6 INTEGER*2 RRWACT,RCLACT COMMON/RCLACT/RRWACT,RCLACT$ COMMON/FFGG/FORMFG,RCFGX,PZAP,RCONE& COMMON/XCMD/XTNCNT,XTNCMD,XTCFG,IPSET:C LOOP CONTROL FOR VARY FUNCTION. SET ZERO IN SPREDSHT AND2C MUST BE SET POSITIVE HERE IF WE NEED ITERATIONS.C (IMPLEMENT FOR VAX ONLY) INTEGER KALKIT  COMMON/VARYIT/KALKITy(C ARGUMENTS COME IN IN ARGUMENTS IN LINE<C RESULTS GO INTO PERCENT (XAC) AND WHEREVER ELSE DESIRED...( INTEGER*2 PROW,PCOL,DROW,DCOL,DRWV,DCLV* COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRWV,DCLV( DIMENSION NRDSP(DRW,DCL),NCDSP(DRW,DCL) COMMON/D2R/NRDSP,NCDSPm INTEGER*2 DTRENA COMMON/DTRCMN/DTRENAnC CHARACTE00WWVRTADATADATADATADATADATAR*70 LINEC LOGICAL*1 LBUF(128) LOGICAL*1 MBUF(128) CHARACTER*110 CLBUF,CMBUF+ EQUIVALENCE(CLBUF,LBUF(1)),(CMBUF,MBUF(1))/C USE CLBUF, CMBUF FOR CHARACTER COMPARISONS...Nc LOGICAL*1 IFVLD RETCD=1 IF(DTRENA.LT.0)GOTO 9999F.C NULL OUT ANY TRAILING BLANKS ON COMMAND LINE DO 3332 N=1,76o NN=77-N IF(LINE(NN).GT.32)GOTO 3333 LINE(NN)=0N 3332 CONTINUET 3333 CONTINUEVC SPACE FILL ENTIRE ARRAYR DO 3334 N=1,823334 LINECL(N)=32> RETCD=17C HANDLE *U DBXXXX FUNCTIONS. LINE ARRAY PASSED IN HEREL,C STARTS AFTER THE "DB" SO WE CAN DECODE IT.5C *U DBCMD (COMMAND) PASSES COMMAND TO DTR FOR ACTIONH0C HOWEVER THIS DOES NOT RETURN A VALUE. USE FORC SETUP PURPOSES ONLY.UC C INTERFACE DOCUMENTATION:CBC *U DBCMD COMMAND(C WILL PASS COMMAND AND FLUSH MESSAGES.C *U DBVAL COMMAND-C WILL PASS COMMAND AND RETRIEVE CONTENTS OFS+C MESSAGE BUFFER AS VALUE IN % ACCUMULATOROC *U DBTXT CELL,COMMAND1C WILL PASS COMMAND AND RETRIEVE MESSAGE BUFFER.F/C MESSAGE BUFFER WILL BE PLACED IN CELL NAMEDC AS ASCII TEXT.C *U DBRPV CELL3C WILL TAKE VALUE IN CELL AND USE AS A REPLY TO A 4C DTR QUERY (AS IN KEYBOARD INPUTS TO PROCEDURES).C *U DBRPT CELL2C WILL TAKE TEXT IN CELL AND USE AS A REPLY TO AC DTR QUERY AS ABOVE.LC 1C ALL THE ABOVE CALLS WILL BE ALSO IMPLEMENTED AST1C DIRECT "DTRXXX" COMMANDS FOR COMMAND LEVEL USE.PCW7C NO NEED TO INCLUDE ABILITY TO STORE COMMANDS IN CELLS :C FOR EDITING SINCE {CELL CONSTRUCT PROVIDES THIS ALREADY.9C (AND AT COMMAND LEVEL THE __{CELL CONSTRUCT DOES ALSO.)O 500 CONTINUE& CALL SCMP(LINE,%REF('OPINS'),5,ICODE)C OPEN INPUT SEQUENTIALO IF(ICODE.NE.1)GOTO 3800C DTROPINS RANGE FILENAME, IBGN=6C IVLD=0G8 CALL GMTX(LINE,IBGN,LSTCH,MFIRL,MFICL,MFIRH,MFICH,IVLD) IF(IVLD.EQ.3)GOTO 9990O LINE(LSTCH+25)=0O7 OPEN(UNIT=MFILUN,FILE=LINE(LSTCH),ACCESS='SEQUENTIAL',F" 1 STATUS='UNKNOWN',ERR=9990) MFIOPN=1C GOTO 9999 3800 CONTINUEV' CALL SCMP(LINE,%REF('OPINRR'),6,ICODE)LC OPEN IN RANDOM READ, IF(ICODE.NE.1)GOTO 3900 KK=2, GOTO 3910 3900 CONTINUE' CALL SCMP(LINE,%REF('OPINRU'),6,ICODE)NC OPEN IN RANDOM UPDATEA IF(ICODE.NE.1)GOTO 3950 KK=3B 3910 CONTINUEU@C HANDLE INPUT DIRECT ACCESS OPEN COMMONLY FOR READ ONLY AND R/W IBGN=7C IVLD=028 CALL GMTX(LINE,IBGN,LSTCH,MFIRL,MFICL,MFIRH,MFICH,IVLD) IF(IVLD.EQ.3)GOTO 9990 LINE(LSTCH+25)=0S$ NBK=(MFIRH-MFIRL+1)*(MFICH-MFICL+1)3 OPEN(UNIT=MFILUN,FILE=LINE(LSTCH),ACCESS='DIRECT',,< 1 INITIALSIZE=NBK,FORM='UNFORMATTED',STATUS='UNKNOWN',' 1 RECL=32,BLOCKSIZE=128,ERR=9990), MFIOPN=KK GOTO 9999 3950 CONTINUEO' CALL SCMP(LINE,%REF('OPOUTS'),6,ICODE)FC OPEN OUTPUT SEQUENTIAL IF(ICODE.NE.1)GOTO 4000 IBGN=7  IVLD=0R8 CALL GMTX(LINE,IBGN,LSTCH,MFORL,MFOCL,MFORH,MFOCH,IVLD) IF(IVLD.EQ.3)GOTO 9990E LINE(LSTCH+25)=0I7 OPEN(UNIT=MFOLUN,FILE=LINE(LSTCH),ACCESS='SEQUENTIAL',K" 1 STATUS='UNKNOWN',ERR=9990) MFOOPN=1E GOTO 9999 4000 CONTINUE ' CALL SCMP(LINE,%REF('OPOUTR'),6,ICODE)GC OPEN OUTPUT RANDOM IF(ICODE.NE.1)GOTO 4100 IBGN=7L IVLD=0L8 CALL GMTX(LINE,IBGN,LSTCH,MFORL,MFOCL,MFORH,MFOCH,IVLD) IF(IVLD.EQ.3)GOTO 9990T$ NBK=(MFORH-MFORL+1)*(MFOCH-MFOCL+1) LINE(LSTCH+25)=0L3 OPEN(UNIT=MFOLUN,FILE=LINE(LSTCH),ACCESS='DIRECT',(< 1 INITIALSIZE=NBK,FORM='UNFORMATTED',STATUS='UNKNOWN',' 1 RECL=32,BLOCKSIZE=128,ERR=9990)U MFOOPN=2B GOTO 9999 4100 CONTINUE' CALL SCMP(LINE,%REF('CLSOUT'),6,ICODE)IC CLOSE OUTPUT T IF(ICODE.NE.1)GOTO 4200 CLOSE(UNIT=MFOLUN)A MFOOPN=0M GOTO 9999 4200 CONTINUE*' CALL SCMP(LINE,%REF('CLSINP'),6,ICODE)TC CLOSE INPUT  IF(ICODE.NE.1)GOTO 4300 CLOSE(UNIT=MFILUN)N MFIOPN=0N GOTO 9999 4300 CONTINUEN' CALL SCMP(LINE,%REF('ENAOUT'),6,ICODE)PC ENABLE OUTPUT  IF(ICODE.NE.1)GOTO 4400 MFOFLG=1) GOTO 9999 4400 CONTINUER' CALL SCMP(LINE,%REF('ENAINP'),6,ICODE)C ENABLE INPUT E IF(ICODE.NE.1)GOTO 4500 MFIFLG=1T GOTO 9999 4500 CONTINUEC' CALL SCMP(LINE,%REF('DISINP'),6,ICODE)MC DISABLE INPUT  IF(ICODE.NE.1)GOTO 4510 MFIFLG=0I GOTO 9999 00WWWNW}4510 CONTINUET' CALL SCMP(LINE,%REF('DISOUT'),6,ICODE)EC DISABLE OUTPUT IF(ICODE.NE.1)GOTO 4520 MFOFLG=0 GOTO 9999 4520 CONTINUET' CALL SCMP(LINE,%REF('EDTINP'),6,ICODE)BC ENABLE INPUT FORCE C COMMANDFC DTREDTINP RANGEIHC GETS RANGE, THEN FOR EACH CELL IN RANGE READS IN (BY WRKFIL READ CALL)DC A CELL, SETS ITS FVLD CODE TO -1 (TO FLAG A TEXT CELL), AND WRITESC IT OUT AGAIN.E IF(ICODE.NE.1)GOTO 4600$C FORCE ENABLE OF READIN DURING THIS MFIFLG=1D MFOFLG=1 C ENABLE OUTPUT TOO. IBGN=7 IVLD=04 CALL GMTX(LINE,IBGN,LSTCH,IXRL,IXCL,IXRH,IXCH,IVLD) IF(IVLD.EQ.3)GOTO 9990E DO 4550 N1=IXRL,IXRHS DO 4550 N2=IXCL,IXCHM CALL REFLEC(N2,N1,IRX)C2C SET THE ELEMENT AS VALID AND READ/WRITE IT ONCE. CALL FVLDST(N1,N2,-1) CALL WRKFIL(IRX,LBUF,0) CALL WRKFIL(IRX,LBUF,1) 4550 CONTINUEN MFIFLG=0R MFOFLG=0C GOTO 9999 4600 CONTINUE' CALL SCMP(LINE,%REF('FMTOUT'),6,ICODE)NC FORMAT/WRITE OUTPUTE C COMMANDIC DTRFMTOUT RANGEIHC GETS RANGE, THEN FOR EACH CELL IN RANGE READS IN (BY WRKFIL READ CALL)DC A CELL, SETS ITS FVLD CODE TO -1 (TO FLAG A TEXT CELL), AND WRITESC IT OUT AGAIN.M IF(ICODE.NE.1)GOTO 4630 IVLFG=1 GOTO 4740 4630 CONTINUES' CALL SCMP(LINE,%REF('VALOUT'),6,ICODE)F IF(ICODE.NE.1)GOTO 4700.C VALOUT CMD OUTPUTS VALUES WITH LONG D FORMAT IVFLG=2 C GOTO 4740M 4740 CONTINUEU$C FORCE ENABLE OF READIN DURING THIS MFIFLG=1 MFOFLG=1KC ENABLE OUTPUT TOO. IBGN=7C IVLD=0L4 CALL GMTX(LINE,IBGN,LSTCH,IXRL,IXCL,IXRH,IXCH,IVLD) IF(IVLD.EQ.3)GOTO 99900 DO 4650 N1=IXRL,IXRHC DO 4650 N2=IXCL,IXCHHC FIND INDEX FOR WRKFILI CALL REFLEC(N2,N1,IRX)92C SET THE ELEMENT AS VALID AND READ/WRITE IT ONCE. CALL XVBLGT(N1,N2,TMP)AC TMP IS REAL*8 SCRATCHN CALL FVLDST(N1,N2,-1) CALL WRKFIL(IRX,LBUF,0)5C HAVING LOADED THE RECORD NOW (GETTING FORMAT, ETC.)O#C NOW GRAB THE VALUE AND SAVE IT...0C FIRST MOVE THE FORMAT DOWN;C NOTE LINEC AND LINECL ARE EQUIVALENT BUT LINECL IS CHAR*1. DO 4651 N=1,9 LBUF(N+1)=LBUF(N+119) 4651 CONTINUEN LBUF(1)='(' LBUF(11)=')'O LBUF(12)=0(&C FORMAT NOW LIVES IN LOW PART OF LBUF"C D25.17 FORMAT WOULD DO FOR WRITE, IF(IVLFG.EQ.1)WRITE(LINEC,LBUF,ERR=4652)TMP, IF(IVLFG.EQ.2)WRITE(LINEC,4658,ERR=4652)TMP4658 FORMAT(D25.17)F@C USE BUILTIN FORMAT TO WRITE THE VALUE IF COMMANDED TO DO SO ORC USE DISPLAY FORMAT.M 4652 CONTINUE  KK=12 DO 4653 N=1,1104653 LBUF(N)=0 DO 4654 N=1,60E,C COPY LINECL CHARS TO LBUF, SKIPPING SPACES KKK=LINECL(N) IF(KKK.LE.32)GOTO 46549 LBUF(KK)=LINECL(N)C KK=KK+1 4654 CONTINUET CALL WRKFIL(IRX,LBUF,1) 4650 CONTINUE. MFIFLG=04 MFOFLG=0= GOTO 9999 4700 CONTINUEU' CALL SCMP(LINE,%REF('CMPFRM'),6,ICODE)E IF(ICODE.NE.1)GOTO 4800C DBCMPFRM V1:V22C RETURNS IN % THE INDEX OF FORMULA 1 IN FORMULA 2 IBGN=7R IVLD=0P!C USE GMTX TO GET CELL ADDRESSES.(4 CALL GMTX(LINE,IBGN,LSTCH,IXRL,IXCL,IXRH,IXCH,IVLD) IF(IVLD.EQ.3)GOTO 9990R6C IF WE HAVE A COMMA AND ANOTHER MTX USE IT AS LENGTHS CALL REFLEC(IXCL,IXRL,IRXL) CALL REFLEC(IXCH,IXRH,IRXH) IF(LINE(LSTCH).NE.',')GOTO 4780 IBGN=LSTCH+1F IVLD=0O4 CALL GMTX(LINE,IBGN,LSTCH,IYRL,IYCL,IYRH,IYCH,IVLD) IF(IVLD.EQ.3)GOTO 4780(C GET THE LENGTHS NOW  CALL XVBLGT(IYRL,IYCL,TMP) % IF(TMP.LT.1.OR.TMP.GT.109.)GOTO 4780 LBUFL=TMP CALL XVBLGT(IYRH,IYCH,TMP)% IF(TMP.LT.1.OR.TMP.GT.109.)GOTO 4780M MBUFL=TMP6C IF LENGTHS ARE OK FOR BOTH, THEN USE THEM AND DO THEC COMPARISONS BASED ON THAT. GOTO 4770 4780 CONTINUEDC GET INDEX OF EACH ELEMENT... CALL WRKFIL(IRXL,LBUF,0)I CALL WRKFIL(IRXH,MBUF,0)XC LOAD THE 2 FORMULAS.C NOW FIND THE ENDS... DO 4750 N=1,110 NN=111-N) IF(LBUF(NN).GT.32)GOTO 4751 4750 CONTINUEL 4751 LBUFL=NNN DO 4760 N=1,110 NN=111-N IF(MBUF(NN).GT.32)GOTO 4761 4760 CONTINUE, 4761 MBUFL=NN6 4770 CONTINUEM( NN=INDEX(CLBUF(1:LBUFL),CMBUF(1:MBUFL))!C NN IS LOCATION OF SUBSTRING NOW  XAC=NNA!C RETURN RESULT IN % ACCUMULATOR. WAC=0. . IF(LLT(CLBUF(1:LBUFL),CMBUF(1:MBUFL)))WAC=-1.- IF(LGT(CLBUF(1:LBUFL),CMBUF(1:MBUFL)))WAC=1.T9C RETURN LESS/GREATER/EQUAL 00WWVRTADATADATADATADATADATAIN W ACCUMULATOR FOR POSSIBLENCC USE IN SORTS, ETC. THUS WE CAN TEST 2 STRINGS BY TESTING W ACCUM.T6C (LEAVES X, Y ALONE SINCE W IS MORE FREQUENTLY FREE.) GOTO 9999 4800 CONTINUEB' CALL SCMP(LINE,%REF('LENFRM'),6,ICODE)O IF(ICODE.NE.1)GOTO 4900C DBLENFRM V1:V2-C RETURNS LENGTH OF FORMULA IN V1 IN % AND V2, IBGN=7) IVLD=0D!C USE GMTX TO GET CELL ADDRESSES.I4 CALL GMTX(LINE,IBGN,LSTCH,IXRL,IXCL,IXRH,IXCH,IVLD) IF(IVLD.EQ.3)GOTO 9990 CALL REFLEC(IXCL,IXRL,IRXL)C GET INDEX OF EACH ELEMENT... CALL WRKFIL(IRXL,LBUF,0)RC LOAD THE FORMULA. C NOW FIND THE END...  DO 4850 N=1,110 NN=111-NL IF(LBUF(NN).GT.32)GOTO 4851 4850 CONTINUE 4851 LBUFL=NNV TMP=LBUFL XAC=TMP@C SAVE LENGTH IN OUTPUT CELL. DON'T TOUCH VALIDITY FOR THE CELL. NN=0LBC SEE IF CELL IS VALID AND IF NOT VALID DON'T SAVE ANYTHING IN IT. CALL FVLDGT(IXRH,IXCH,NN) IF(NN.EQ.0)GOTO 9999  CALL XVBLST(IXRH,IXCH,TMP)O GOTO 9999 4900 CONTINUEL' CALL SCMP(LINE,%REF('TRMFRM'),6,ICODE)C IF(ICODE.NE.1)GOTO 5000C TRIM FORMULA$C DTRTRMFRM INCELL:OUTCELL,START:END"C RETURNS TRIMMED FORMULA TO CELL. IBGN=7U IVLD=0A!C USE GMTX TO GET CELL ADDRESSES.M5 CALL GMTX(LINE,IBGN,LSTCHR,IXRL,IXCL,IXRH,IXCH,IVLD)U IF(IVLD.EQ.3)GOTO 9990+C GOT CELL HERE...BOTH FOR INPUT AND OUTPUT CALL REFLEC(IXCL,IXRL,IRXL)C GET INDEX OF EACH ELEMENT... CALL REFLEC(IXCH,IXRH,IRXH) CALL WRKFIL(IRXL,LBUF,0)0 LO=LSTCHR+1 LHI=LSTCHR+21 LSTCHR=LHI9- CALL VARSCN(LINE,LO,LHI,LSTCHR,JD1,JD2,IVLD)M IF(IVLD.EQ.0)GOTO 9990E CALL XVBLGT(JD1,JD2,TMP): LOCHR=1' IF(TMP.GT.0..AND.TMP.LT.110.)LOCHR=TMPAC LOCHR = START CHAR LO=LSTCHR+1 LHI=LSTCHR+21 LSTCHR=LHI - CALL VARSCN(LINE,LO,LHI,LSTCHR,JD1,JD2,IVLD) IF(IVLD.EQ.0)GOTO 9990 CALL XVBLGT(JD1,JD2,TMP)O LHICHR=110I( IF(TMP.GT.0..AND.TMP.LT.110.)LHICHR=TMPC LHICHR IS END CHARACTERXC NOW ALL ARGS ARE COLLECTED. C (IGNORE WHAT WAS DELIMITER...)C COPY DESIRED STUFF TO MBUF N=1 DO 4910 NN=1,110( MBUF(NN)=0O) IF(NN.LT.LOCHR.OR.NN.GT.LHICHR)GOTO 4910T MBUF(N)=LBUF(NN)I N=N+1<C COPY DESIRED PART OF FORMULA TO MBUF WITH THE REST ZEROED. 4910 CONTINUEM DO 4911 NN=111,128)4911 MBUF(NN)=LBUF(NN) CALL WRKFIL(IRXH,MBUF,1)H=C WRITE BUFFER BACK TO CELL AS TRIMMED NOW, GOING TO OUT CELL @C RATHER THAN INPUT CELL (TO ALLOW REPEATED CALCS TO BE STABLE.) GOTO 9999 5000 CONTINUEL GOTO 9999 9990 RETCD=3C ERROR RETURN 9999 RETURNE END C DATATRIEVE INTERFACE FUNCTIONS"c optional for VAX VMS AnalytiCalc#C Include by linking with DTRIF.FOR#C Exclude by linking with DTRIF.FTNCc5c Attempt to provide a reasonable interface to DTR by<c allowing passing of commands to DTR both interactively and:c from within a cell, and retrieving numbers and text into;c cells. Also permit sending replies to DTR (for replies in=c procedures) from text in cells or numbers (values) in cells!c so that interaction is two-way.cC GLENN EVERHART 1985 SUBROUTINE DTRINIC INITIALIZE DATATRIEVE+C CALLED AT START OF PROGRAM, ONCE-FOR-ALL.C ***c!c FORTRAN DATATRIEVE Access Blockc; LOGICAL*1 DAB$B_BID, DAB$B_BLN, DAB$B_VER_LETTER, DAB(100), INTEGER*2 DAB$W_MSG_BUF_LEN, DAB$W_MSG_LEN,& 1 DAB$W_AUX_BUF_LEN, DAB$W_AUX_LEN,. 2 DAB$W_IDI, DAB$W_STATE, DAB$W_REC_LENGTH,2 3 DAB$W_VERSION, DAB$W_LEVEL, DAB$W_BASE_LEVEL,) 4 DAB$W_UDK_INDEX, DAB$W_COLUMNS_PAGE, 5 DAB$W_TT_CHANNEL( LOGICAL*4 DAB$A_MSG_BUF, DAB$A_AUX_BUF,0 1 DAB$L_CONDITION, DAB$L_FLAGS, DAB$L_OPTIONS COMMON /DAB_COMMON/  1 DAB$B_BID,  2 DAB$B_BLN,  3 DAB$L_CONDITION, 4 DAB$A_MSG_BUF, 5 DAB$W_MSG_BUF_LEN,  6 DAB$W_MSG_LEN, 7 DAB$A_AUX_BUF,  8 DAB$W_AUX_BUF_LEN,  9 DAB$W_AUX_LEN, 1 DAB$W_IDI,  2 DAB$W_STATE,  3 DAB$L_FLAGS,  4 DAB$L_OPTIONS, 5 DAB$W_REC_LENGTH,  6 DAB$W_VERSION,  7 DAB$W_LEVEL,  8 DAB$B_VER_LETTER,  9 DAB$W_BASE_LEVEL,  1 DAB$W_UDK_INDEX, 2 DAB$W_COLUMNS_PAGE, 3 DAB$W_TT_CHANNEL E00WWWNW}QUIVALENCE (DAB, DAB$B_BID); INTEGER DTR$K_STL_CMD, DTR$K_STL_PRMPT, DTR$K_STL_LINE,4 1 DTR$K_STL_MSG, DTR$K_STL_PGET, DTR$K_STL_PPUT,6 2 DTR$K_STL_CONT, DTR$K_STL_UDK, DTR$K_STL_END_UDK PARAMETER (DTR$K_STL_CMD=1, 1 DTR$K_STL_PRMPT=2, 2 DTR$K_STL_LINE=3, 3 DTR$K_STL_MSG=4, 4 DTR$K_STL_PGET=5, 5 DTR$K_STL_PPUT=6, 6 DTR$K_STL_CONT=7, 7 DTR$K_STL_UDK=8, 8 DTR$K_STL_END_UDK=9)2 INTEGER DTR$K_SEMI_COLON_OPT, DTR$K_UNQUOTED_LIT,+ 1 DTR$K_SYNTAX_PROMPT, DTR$K_IMMED_RETURN,: 2 DTR$K_FORMS_ENABLE, DTR$K_VERIFY, DTR$K_CONTEXT_SEARCH,; 3 DTR$K_HYPHEN_DISABLED, DTR$K_MORE_COMMANDS, DTR$K_ABORT, 4 DTR$K_LOCK_WAIT# PARAMETER (DTR$K_SEMI_COLON_OPT=1, 1 DTR$K_UNQUOTED_LIT=16, 2 DTR$K_SYNTAX_PROMPT=32, 3 DTR$K_IMMED_RETURN=64, 4 DTR$K_FORMS_ENABLE=128, 5 DTR$K_VERIFY=256, 6 DTR$K_CONTEXT_SEARCH=2048,! 7 DTR$K_HYPHEN_DISABLED=4096, 8 DTR$K_MORE_COMMANDS=8192, 9 DTR$K_ABORT=16384, 1 DTR$K_LOCK_WAIT=32768)= INTEGER DTR$M_OPT_CMD, DTR$M_OPT_PRMPT, DTR$M_OPT_LINE,4 1 DTR$M_OPT_MSG, DTR$M_OPT_PGET, DTR$M_OPT_PPUT,7 2 DTR$M_OPT_CONT, DTR$M_OPT_UDK, DTR$M_OPT_DTR_UDK,+ 3 DTR$M_OPT_END_UDK, DTR$M_OPT_UNWIND, . 4 DTR$M_OPT_CONTROL_C, DTR$M_OPT_STARTUP, @ 5 DTR$M_OPT_FOREIGN, DTR$M_OPT_BANNER, DTR$M_OPT_REMOVE_CTLC PARAMETER (DTR$M_OPT_CMD=1, 1 DTR$M_OPT_PRMPT=2, 2 DTR$M_OPT_LINE=4, 3 DTR$M_OPT_MSG=8, 4 DTR$M_OPT_PGET=16, 5 DTR$M_OPT_PPUT=32, 6 DTR$M_OPT_CONT=64, 7 DTR$M_OPT_UDK=128, 8 DTR$M_OPT_DTR_UDK=256, 9 DTR$M_OPT_END_UDK=512, 1 DTR$M_OPT_UNWIND=1024, 2 DTR$M_OPT_CONTROL_C=2048, 3 DTR$M_OPT_STARTUP=4096, 4 DTR$M_OPT_FOREIGN=8192, 5 DTR$M_OPT_BANNER=16384," 6 DTR$M_OPT_REMOVE_CTLC=32768)< INTEGER DTR$K_UDK_SET, DTR$K_UDK_SET_NO, DTR$K_UDK_SHOW,- 1 DTR$K_UDK_STATEMENT, DTR$K_UDK_COMMAND PARAMETER (DTR$K_UDK_SET=1,  1 DTR$K_UDK_SET_NO=2, 2 DTR$K_UDK_SHOW=3, 3 DTR$K_UDK_STATEMENT=4, 4 DTR$K_UDK_COMMAND=5)0 INTEGER DTR$K_TOK_TOKEN, DTR$K_TOK_PICTURE, , 1 DTR$K_TOK_FILENAME, DTR$K_TOK_COMMAND, 2 DTR$K_TOK_TEST_TOKEN PARAMETER (DTR$K_TOK_TOKEN=1, 1 DTR$K_TOK_PICTURE=2, 2 DTR$K_TOK_FILENAME=3, 3 DTR$K_TOK_COMMAND=4, 4 DTR$K_TOK_TEST_TOKEN=5) INTEGER*4 DTR$INIT INTEGER RET_STATUS CHARACTER*232 MSG_BUFF CHARACTER*232 AUX_BUFF& COMMON /DTR$BUFFERS/MSG_BUFF,AUX_BUFF# EXTERNAL DTR$_SUCCESS,SS$_NORMALC ***"C ********>>>>>>>><<<<<<<<********/ RET_STATUS=DTR$INIT(DAB,100,MSG_BUFF,AUX_BUFF,0 1 DTR$K_SEMI_COLON_OPT+DTR$K_FORMS_ENABLE+ 2 DTR$K_UNQUOTED_LIT)1C DTR NOW STALLS AT COMMAND INPUT AWAITING INPUT.%C LET *U FUNCTIONS HANDLE FROM THERE.' IF(RET_STATUS.NE.%LOC(SS$_NORMAL))THEN CALL UVT100(1,1,1) WRITE(6,1000)RET_STATUS<1000 FORMAT(' *** DATATRIEVE INITIALIZATION FAILED. ***',I6) END IF RETURN END SUBROUTINE DTRFINC INITIALIZE DATATRIEVE)C CALLED AT END OF PROGRAM, ONCE-FOR-ALL.C ***c!c FORTRAN DATATRIEVE Access Blockc; LOGICAL*1 DAB$B_BID, DAB$B_BLN, DAB$B_VER_LETTER, DAB(100), INTEGER*2 DAB$W_MSG_BUF_LEN, DAB$W_MSG_LEN,& 1 DAB$W_AUX_BUF_LEN, DAB$W_AUX_LEN,. 2 DAB$W_IDI, DAB$W_STATE, DAB$W_REC_LENGTH,2 3 DAB$W_VERSION, DAB$W_LEVEL, DAB$W_BASE_LEVEL,) 4 DAB$W_UDK_INDEX, DAB$W_COLUMNS_PAGE, 5 DAB$W_TT_CHANNEL( LOGICAL*4 DAB$A_MSG_BUF, DAB$A_AUX_BUF,0 1 DAB$L_CONDITION, DAB$L_FLAGS, DAB$L_OPTIONS COMMON /DAB_COMMON/  1 DAB$B_BID,  2 DAB$B_BLN,  3 DAB$L_CONDITION, 4 DAB$A_MSG_BUF, 5 DAB$W_MSG_BUF_LEN,  6 DAB$W_MSG_LEN, 7 DAB$A_AUX_BUF,  8 DAB$W_AUX_BUF_LEN,  9 DAB$W_AUX_LEN, 1 DAB$W_IDI,  2 DAB$W_STATE,  3 DAB$L_FLAGS,  4 DAB$L_OPTIONS, 5 DAB$W_REC_LENGTH,  6 DAB$W_VERSION,  7 DAB$W_LEVEL,  8 DAB$B_VER_LETTER,  9 DAB$W_BASE_LEVEL,  1 DAB$W_UDK_INDEX, 2 DAB$W_COLUMNS_PAGE, 3 DAB$W_TT_CHANNEL EQUIVALENCE (DAB, DAB$B_BID); INTEGER DTR$K_STL_CMD, DTR$K_STL_PRMPT, DTR$K_STL_LINE,4 1 DTR$K_STL_MS00XWVRTADATADATADATADATADATAG, DTR$K_STL_PGET, DTR$K_STL_PPUT,6 2 DTR$K_STL_CONT, DTR$K_STL_UDK, DTR$K_STL_END_UDK PARAMETER (DTR$K_STL_CMD=1, 1 DTR$K_STL_PRMPT=2, 2 DTR$K_STL_LINE=3, 3 DTR$K_STL_MSG=4, 4 DTR$K_STL_PGET=5, 5 DTR$K_STL_PPUT=6, 6 DTR$K_STL_CONT=7, 7 DTR$K_STL_UDK=8, 8 DTR$K_STL_END_UDK=9)2 INTEGER DTR$K_SEMI_COLON_OPT, DTR$K_UNQUOTED_LIT,+ 1 DTR$K_SYNTAX_PROMPT, DTR$K_IMMED_RETURN,: 2 DTR$K_FORMS_ENABLE, DTR$K_VERIFY, DTR$K_CONTEXT_SEARCH,; 3 DTR$K_HYPHEN_DISABLED, DTR$K_MORE_COMMANDS, DTR$K_ABORT, 4 DTR$K_LOCK_WAIT# PARAMETER (DTR$K_SEMI_COLON_OPT=1, 1 DTR$K_UNQUOTED_LIT=16, 2 DTR$K_SYNTAX_PROMPT=32, 3 DTR$K_IMMED_RETURN=64, 4 DTR$K_FORMS_ENABLE=128, 5 DTR$K_VERIFY=256, 6 DTR$K_CONTEXT_SEARCH=2048,! 7 DTR$K_HYPHEN_DISABLED=4096, 8 DTR$K_MORE_COMMANDS=8192, 9 DTR$K_ABORT=16384, 1 DTR$K_LOCK_WAIT=32768)= INTEGER DTR$M_OPT_CMD, DTR$M_OPT_PRMPT, DTR$M_OPT_LINE,4 1 DTR$M_OPT_MSG, DTR$M_OPT_PGET, DTR$M_OPT_PPUT,7 2 DTR$M_OPT_CONT, DTR$M_OPT_UDK, DTR$M_OPT_DTR_UDK,+ 3 DTR$M_OPT_END_UDK, DTR$M_OPT_UNWIND, . 4 DTR$M_OPT_CONTROL_C, DTR$M_OPT_STARTUP, @ 5 DTR$M_OPT_FOREIGN, DTR$M_OPT_BANNER, DTR$M_OPT_REMOVE_CTLC PARAMETER (DTR$M_OPT_CMD=1, 1 DTR$M_OPT_PRMPT=2, 2 DTR$M_OPT_LINE=4, 3 DTR$M_OPT_MSG=8, 4 DTR$M_OPT_PGET=16, 5 DTR$M_OPT_PPUT=32, 6 DTR$M_OPT_CONT=64, 7 DTR$M_OPT_UDK=128, 8 DTR$M_OPT_DTR_UDK=256, 9 DTR$M_OPT_END_UDK=512, 1 DTR$M_OPT_UNWIND=1024, 2 DTR$M_OPT_CONTROL_C=2048, 3 DTR$M_OPT_STARTUP=4096, 4 DTR$M_OPT_FOREIGN=8192, 5 DTR$M_OPT_BANNER=16384," 6 DTR$M_OPT_REMOVE_CTLC=32768)< INTEGER DTR$K_UDK_SET, DTR$K_UDK_SET_NO, DTR$K_UDK_SHOW,- 1 DTR$K_UDK_STATEMENT, DTR$K_UDK_COMMAND PARAMETER (DTR$K_UDK_SET=1,  1 DTR$K_UDK_SET_NO=2, 2 DTR$K_UDK_SHOW=3, 3 DTR$K_UDK_STATEMENT=4, 4 DTR$K_UDK_COMMAND=5)0 INTEGER DTR$K_TOK_TOKEN, DTR$K_TOK_PICTURE, , 1 DTR$K_TOK_FILENAME, DTR$K_TOK_COMMAND, 2 DTR$K_TOK_TEST_TOKEN PARAMETER (DTR$K_TOK_TOKEN=1, 1 DTR$K_TOK_PICTURE=2, 2 DTR$K_TOK_FILENAME=3, 3 DTR$K_TOK_COMMAND=4, 4 DTR$K_TOK_TEST_TOKEN=5) CHARACTER*232 MSG_BUFF CHARACTER*232 AUX_BUFF& COMMON /DTR$BUFFERS/MSG_BUFF,AUX_BUFF EXTERNAL DTR$_SUCCESSC ***"C ********>>>>>>>><<<<<<<<******** CALL DTR$FINISH(DAB)2C CALLED JUST BEFORE EXIT. IF IT FAILS, TOO BAD...>C however, gives DTR a chance to clean up prior to image exit. RETURN END SUBROUTINE DTRCMD(LINE) LOGICAL*1 LINE(80) CHARACTER*62 LINECC EQUIVALENCE(LINEC,LINE(1)) INCLUDE 'VKLUGPRM.FTN'#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY. INTEGER RETCDCC(C DEFINE FILE AREAS FOR MAPPING FILES...DC ONE INPUT FILE, TO BE ACCESSED AS A RANDOM ACCESS FILE OF 128 BYTEDC RECORDS OF DATA IF RANDOM, OR AS A FORMULA FILE IF SEQUENTIAL, AND?C ONE OUTPUT FILE TO BE WRITTEN THE SAME WAY. INPUT FILE CAN BEC INPUT - ONLY OR READ/WRITE.CBC DEFINE ALSO DATA STRUCTURES TO HOLD CELL RANGES (IN ROW AND COL)BC TO BE TREATED WITH THESE FILES, FLAG FOR HOW-OPEN, AND LUN USED.CC MFIOPN = 0 IF NOT OPEN&C 1 IF OPEN FOR READ ONLY, SEQUENTIALC 2 IF OPEN READ ONLY, RANDOM C 3 IF OPEN READ/WRITE, RANDOM.CC MFOOPN = 0 IF NOT OPENC 1 IF OPEN WRITE SEQUENTIALC 2 IF OPEN WRITE RANDOMC!C OTHER OPTIONS DON'T MAKE SENSE.9C MFIRL,MFIRH = RRW DIMENSION LOW, HIGH BOUND, INPUT FILE9C MFICL,MFICH = RCL DIMENSION LOW, HIGH BOUND, INPUT FILE%C MFORL,RH,MFOCL,CH = OUT FILE BOUNDS"C MFILUN,MFOLUN ARE LOGICAL UNITS.) INTEGER*2 MFIOPN,MFIRL,MFIRH,MFICL,MFICH) INTEGER*2 MFOOPN,MFORL,MFORH,MFOCL,MFOCH& INTEGER*2 MFILUN,MFOLUN,MFIFLG,MFOFLG5 COMMON/MFILES/MFIOPN,MFOOPN,MFIRL,MFIRH,MFICL,MFICH,; 1 MFORL,MFORH,MFOCL,MFOCH,MFILUN,MFOLUN,MFIFLG,MFOFLGCC2 LOGICAL*1 AVBLS(20,27),WRK(128),VBLS(8,RRWP,RCLP)" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9)00XWWNW} REAL*8 XAC,XVBLS(RRWP,RCLP) REAL*8 TAC,UAC,VAC,WAC,YAC REAL*8 TMP INTEGER*4 JVBLS(2,RRWP,RCLP)/ EQUIVALENCE(WAC,AVBLS(1,23)),(YAC,AVBLS(1,25)) EQUIVALENCE(XAC,AVBLS(1,27)) EQUIVALENCE(TAC,AVBLS(1,20)) EQUIVALENCE(UAC,AVBLS(1,21)) EQUIVALENCE(VAC,AVBLS(1,22))& EQUIVALENCE(VBLS(1,1,1),JVBLS(1,1,1))$ EQUIVALENCE(VBLS(1,1,1),XVBLS(1,1)) COMMON/V/TYPE,AVBLS,VBLS,VLEN INTEGER*2 XTNCNT,XTCFG,IPSET LOGICAL*1 XTNCMD(80)" INTEGER*2 FORMFG,RCFGX,PZAP,RCONE. INTEGER*2 IDOL1,IDOL2,IDOL3,IDOL4,IDOL5,IDOL61 COMMON/DOLLR/IDOL1,IDOL2,IDOL3,IDOL4,IDOL5,IDOL6 INTEGER*2 RRWACT,RCLACT COMMON/RCLACT/RRWACT,RCLACT$ COMMON/FFGG/FORMFG,RCFGX,PZAP,RCONE& COMMON/XCMD/XTNCNT,XTNCMD,XTCFG,IPSET:C LOOP CONTROL FOR VARY FUNCTION. SET ZERO IN SPREDSHT AND2C MUST BE SET POSITIVE HERE IF WE NEED ITERATIONS.C (IMPLEMENT FOR VAX ONLY) INTEGER KALKIT COMMON/VARYIT/KALKIT(C ARGUMENTS COME IN IN ARGUMENTS IN LINE<C RESULTS GO INTO PERCENT (XAC) AND WHEREVER ELSE DESIRED...( INTEGER*2 PROW,PCOL,DROW,DCOL,DRWV,DCLV* COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRWV,DCLV( DIMENSION NRDSP(DRW,DCL),NCDSP(DRW,DCL) COMMON/D2R/NRDSP,NCDSP C ADD DATATRIEVE DATA STMTS HEREC ***c!c FORTRAN DATATRIEVE Access Blockc; LOGICAL*1 DAB$B_BID, DAB$B_BLN, DAB$B_VER_LETTER, DAB(100), INTEGER*2 DAB$W_MSG_BUF_LEN, DAB$W_MSG_LEN,& 1 DAB$W_AUX_BUF_LEN, DAB$W_AUX_LEN,. 2 DAB$W_IDI, DAB$W_STATE, DAB$W_REC_LENGTH,2 3 DAB$W_VERSION, DAB$W_LEVEL, DAB$W_BASE_LEVEL,) 4 DAB$W_UDK_INDEX, DAB$W_COLUMNS_PAGE, 5 DAB$W_TT_CHANNEL( LOGICAL*4 DAB$A_MSG_BUF, DAB$A_AUX_BUF,0 1 DAB$L_CONDITION, DAB$L_FLAGS, DAB$L_OPTIONS COMMON /DAB_COMMON/  1 DAB$B_BID,  2 DAB$B_BLN,  3 DAB$L_CONDITION, 4 DAB$A_MSG_BUF, 5 DAB$W_MSG_BUF_LEN,  6 DAB$W_MSG_LEN, 7 DAB$A_AUX_BUF,  8 DAB$W_AUX_BUF_LEN,  9 DAB$W_AUX_LEN, 1 DAB$W_IDI,  2 DAB$W_STATE,  3 DAB$L_FLAGS,  4 DAB$L_OPTIONS, 5 DAB$W_REC_LENGTH,  6 DAB$W_VERSION,  7 DAB$W_LEVEL,  8 DAB$B_VER_LETTER,  9 DAB$W_BASE_LEVEL,  1 DAB$W_UDK_INDEX, 2 DAB$W_COLUMNS_PAGE, 3 DAB$W_TT_CHANNEL EQUIVALENCE (DAB, DAB$B_BID)C DAB$W_STATE VALUES: C 1 CMD STALL%C 2 VALUE-IN-RESPONSE-TO-PROMPT STALL)C 3 PRINTLINE AVAIL STALL (HAS PRINTLINE)C 4 MESSAGE STALL (HAS MSG)%C 5 PORT REC AVAIL FOR PGM TO RECEIVE0C 6 DTR WAITING FOR PGM TO SEND A RECORD TO PORT,C 7 NOT APPLICABLE HERE ... DTR ASYNCH READY&C 8 NOT APPL. DTR USER DEFINED KEYWORD&C 9 NOT APPL. DTR END USER DEF KEYWORD; INTEGER DTR$K_STL_CMD, DTR$K_STL_PRMPT, DTR$K_STL_LINE,4 1 DTR$K_STL_MSG, DTR$K_STL_PGET, DTR$K_STL_PPUT,6 2 DTR$K_STL_CONT, DTR$K_STL_UDK, DTR$K_STL_END_UDK PARAMETER (DTR$K_STL_CMD=1, 1 DTR$K_STL_PRMPT=2, 2 DTR$K_STL_LINE=3, 3 DTR$K_STL_MSG=4, 4 DTR$K_STL_PGET=5, 5 DTR$K_STL_PPUT=6, 6 DTR$K_STL_CONT=7, 7 DTR$K_STL_UDK=8, 8 DTR$K_STL_END_UDK=9)2 INTEGER DTR$K_SEMI_COLON_OPT, DTR$K_UNQUOTED_LIT,+ 1 DTR$K_SYNTAX_PROMPT, DTR$K_IMMED_RETURN,: 2 DTR$K_FORMS_ENABLE, DTR$K_VERIFY, DTR$K_CONTEXT_SEARCH,; 3 DTR$K_HYPHEN_DISABLED, DTR$K_MORE_COMMANDS, DTR$K_ABORT, 4 DTR$K_LOCK_WAIT# PARAMETER (DTR$K_SEMI_COLON_OPT=1, 1 DTR$K_UNQUOTED_LIT=16, 2 DTR$K_SYNTAX_PROMPT=32, 3 DTR$K_IMMED_RETURN=64, 4 DTR$K_FORMS_ENABLE=128, 5 DTR$K_VERIFY=256, 6 DTR$K_CONTEXT_SEARCH=2048,! 7 DTR$K_HYPHEN_DISABLED=4096, 8 DTR$K_MORE_COMMANDS=8192, 9 DTR$K_ABORT=16384, 1 DTR$K_LOCK_WAIT=32768)= INTEGER DTR$M_OPT_CMD, DTR$M_OPT_PRMPT, DTR$M_OPT_LINE,4 1 DTR$M_OPT_MSG, DTR$M_OPT_PGET, DTR$M_OPT_PPUT,7 2 DTR$M_OPT_CONT, DTR$M_OPT_UDK, DTR$M_OPT_DTR_UDK,+ 3 DTR$M_OPT_END_UDK, DTR$M_OPT_UNWIND, . 4 DTR$M_OPT_CONTROL_C, DTR$M_OPT_STARTUP, @ 5 DTR$M_OPT_FOREIGN, DTR$M_OPT_BANNER, DTR$M_OPT_REMOVE_CTLC PARAMETER (DTR$M_OPT_CMD=1, 1 DTR$M_OPT_PRMPT=2, 2 DTR$M_OPT_LINE=4, 3 DTR$M_OPT_MSG=8, 4 DTR$M_OPT_PGET=16, 5 DTR$M_OPT_PPUT=32, 6 DTR$M_OPT_CONT=64, 7 DTR$M_OPT_UDK=128, 8 DTR$M_OPT_DTR_UDK=256, 9 DT00XWVRTADATADATADATADATADATAR$M_OPT_END_UDK=512, 1 DTR$M_OPT_UNWIND=1024, 2 DTR$M_OPT_CONTROL_C=2048, 3 DTR$M_OPT_STARTUP=4096, 4 DTR$M_OPT_FOREIGN=8192, 5 DTR$M_OPT_BANNER=16384," 6 DTR$M_OPT_REMOVE_CTLC=32768)< INTEGER DTR$K_UDK_SET, DTR$K_UDK_SET_NO, DTR$K_UDK_SHOW,- 1 DTR$K_UDK_STATEMENT, DTR$K_UDK_COMMAND PARAMETER (DTR$K_UDK_SET=1,  1 DTR$K_UDK_SET_NO=2, 2 DTR$K_UDK_SHOW=3, 3 DTR$K_UDK_STATEMENT=4, 4 DTR$K_UDK_COMMAND=5)0 INTEGER DTR$K_TOK_TOKEN, DTR$K_TOK_PICTURE, , 1 DTR$K_TOK_FILENAME, DTR$K_TOK_COMMAND, 2 DTR$K_TOK_TEST_TOKEN PARAMETER (DTR$K_TOK_TOKEN=1, 1 DTR$K_TOK_PICTURE=2, 2 DTR$K_TOK_FILENAME=3, 3 DTR$K_TOK_COMMAND=4, 4 DTR$K_TOK_TEST_TOKEN=5) INTEGER*2 DTRENA COMMON/DTRCMN/DTRENA LOGICAL *1 LINECL(82)C CHARACTER*70 LINEC EQUIVALENCE(LINEC,LINECL(1)) CHARACTER*80 SCRBUF LOGICAL*1 LBUF(128) LOGICAL*1 MBUF(128) CHARACTER*110 CLBUF,CMBUF+ EQUIVALENCE(CLBUF,LBUF(1)),(CMBUF,MBUF(1))/C USE CLBUF, CMBUF FOR CHARACTER COMPARISONS... CHARACTER*9 FMTB EQUIVALENCE (FMTB,LBUF(120)) CHARACTER*11 FMTBF LOGICAL*1 IFVLD LOGICAL*1 MSGBUF(110) EQUIVALENCE(MSGBUF(1),MSG_BUFF) CHARACTER*232 MSG_BUFF CHARACTER*232 AUX_BUFF& COMMON /DTR$BUFFERS/MSG_BUFF,AUX_BUFF EXTERNAL DTR$_SUCCESSC ***"C ********>>>>>>>><<<<<<<<********.C NULL OUT ANY TRAILING BLANKS ON COMMAND LINE DO 3332 N=1,80 NN=81-N IF(LINE(NN).GT.32)GOTO 3333 LINE(NN)=0 3332 CONTINUE 3333 CONTINUEC SPACE FILL ENTIRE ARRAY DO 3334 N=1,823334 LINECL(N)=324C CALL DTR$COMMAND TO DO COMMAND FROM COMMAND LEVEL. RETCD=14C HANDLE DTRCMD FUNCTIONS. LINE ARRAY PASSED IN HERE-C STARTS AFTER THE "DTR" SO WE CAN DECODE IT.C EXECUTE DTR COMMAND9C DTRCMD (COMMAND) GIVES DTR COMMAND FACILITY AT COMMANDC LEVEL.4C ALLOW DTRIMM COMMAND TO USE DTR IMMEDIATE TERMINAL9C INTERFACE. THE REST CAN USE SAME COMMAND NAMES AS AFTER!C THE "DB" IN *U DBXXXX COMMANDS.$ call scmp(LINE,%REF('IMM'),3,ICODE) IF(ICODE.NE.1)GOTO 10006c move line down to pass the "imm" stuff and one space do 1005 n=1,56 NN=N IF(LINE(N+4).LT.32)GOTO 1006C NNN=N1005 linec(N:N)=char(line(n+4)) 1006 CONTINUE LINEC(NN:NN)=CHAR(32)" CALL DTR$COMMAND(DAB,LINEC(1:NN))/c just allow normal DTR handling of the rest...' CALL DTR$DTR(DAB,DTR$M_OPT_CMD) RETURN 1000 continue$ call scmp(LINE,%REF('INT'),3,ICODE) IF(ICODE.NE.1)GOTO 1400$C DTRINT - DO INTERACTIVE DTR STUFF.6c move line down to pass the "int" stuff and one space do 1405 n=1,60N NN=N IF(LINE(N+4).LT.32)GOTO 1406aC NNN=Nl1405 linec(N:N)=char(line(n+4)) 1406 CONTINUEi LINEC(NN:NN)=CHAR(32)% IF(DAB$W_STATE.EQ.DTR$K_STL_CMD)THENn* CALL DTR$COMMAND(DAB,%DESCR(LINEC(1:NN))) END IF /c just allow normal DTR handling of the rest...  CALL DTR$CONTINUE(DAB)d* CALL DTR$DTR(DAB,DTR$M_OPT_UNWIND) RETURNT 1400 CONTINUEi$ CALL SCMP(LINE,%REF('CMD'),3,ICODE) IF(ICODE.NE.1)GOTO 100lC *U DBCMD COMMANDC EXECUTE DTR COMMANDC CONSTRUCT A DESCRIPTOR...O DO 8 N=1,70 8 LINECL(N)=0T DO 10 N=1,60L NN=NT M=LINE(4+N)"C COPY CHARACTER ARRAY INTO STRING IF(M.LT.32)GOTO 11 C NNN=N LINEC(N:N)= CHAR(M) 10 CONTINUED 11 CONTINUEE LINEC(NN:NN)=CHAR(32)" CALL DTR$COMMAND(DAB,LINEC(1:NN))C CHECK STATUS) IF (DAB$W_STATE.EQ.DTR$K_STL_MSG)GOTO 20$* IF (DAB$W_STATE.EQ.DTR$K_STL_LINE)GOTO 20 CALL DTR$DTR(DAB,DTR$M_OPT_CMD)5C LET DTR$DTR HANDLE MESSAGES AND SO ON UNTIL BACK ATW@C COMMAND STALLPOINT. NOTE THAT THIS TAKES CARE OF COMMANDS THAT+C UNEXPECTEDLY CALL FOR MESSAGES OR INPUTS.O GOTO 9999 20 CONTINUEB CALL DTR$CONTINUE(DAB)3'C FLUSH ALL MESSAGES...IF MORE THAN ONE5) IF (DAB$W_STATE.EQ.DTR$K_STL_MSG)GOTO 20* IF (DAB$W_STATE.EQ.DTR$K_STL_LINE)GOTO 20<C JUST CONTINUE IF WE ONLY GOT A MESSAGE OR PRINT LINE HERE.<c no provision for printing it and we normally want to avoidc prints of this anyway. GOTO 9999 100 CONTINUE$ CALL SCMP(LINE,%REF('VAL'),3,ICODE) IF(ICODE.NE.1)GOTO 200S LSKIP=(LINE(4))-57H$ IF(LSKI00XWWNW}P.LT.1.OR.LSKIP.GT.9)LSKIP=0 IVV=4 IF(LINE(5).EQ.ICHAR('.'))THEN IVV=IVV+1 END IF DO 110 N=1,60 NN=ND M=LINE(IVV+N)"C COPY CHARACTER ARRAY INTO STRING IF(M.LT.32)GOTO 111C NNN=NU LINEC(N:N)=CHAR(M)_ 110 CONTINUE 111 CONTINUE LINEC(NN:NN)=CHAR(32)" CALL DTR$COMMAND(DAB,LINEC(1:NN))C CHECK STATUS* IF (DAB$W_STATE.EQ.DTR$K_STL_MSG)GOTO 120+ IF (DAB$W_STATE.EQ.DTR$K_STL_LINE)GOTO 1308 CALL DTR$DTR(DAB,DTR$M_OPT_CMD)5C LET DTR$DTR HANDLE MESSAGES AND SO ON UNTIL BACK ATN@C COMMAND STALLPOINT. NOTE THAT THIS TAKES CARE OF COMMANDS THAT+C UNEXPECTEDLY CALL FOR MESSAGES OR INPUTS.I GOTO 9999 120 CONTINUE CALL DTR$CONTINUE(DAB)K* IF (DAB$W_STATE.EQ.DTR$K_STL_MSG)GOTO 120+ IF (DAB$W_STATE.EQ.DTR$K_STL_LINE)GOTO 130$ GOTO 9999 130 CONTINUE IF(LSKIP.GT.0)THEN6 DO 3346 N=1,LSKIP3346 CALL DTR$CONTINUE(DAB)E+C SKIP EXTRA PRINT LINES IF NEEDED TO DO SO END IF$ IF(IVV.GE.5)THEN0 IQ=08 DO 135 N=1,110M#135 IF(MSGBUF(N).EQ.ICHAR('.'))IQ=1, IVVV=0T DO 138 N=1,80% IF(MSGBUF(NN).EQ.ICHAR(':'))IVVV=N+1O NN=81-N IF(MSGBUF(NN).GT.32)GOTO 139_ 138 CONTINUE139 IF(IQ.EQ.0)MSGBUF(NN+1)=46C 46 IS ASCII PERIOD,C IF WE HAVE . AS FIRST CHAR OF COMMAND THEN<C ADD DECIMAL TO END OF TEXT AND START TEXT AFTER THE : OF A;C POSSIBLE LIST COMMAND. ONLY ADD THE DECIMAL IF NONE IS IND7C THE STRING ALREADY AND ONLY SKIP COLON IF ONE EXISTS.  IF(IVVV.GT.0)THEN K=1 DO 137 N=IVVV,NN+13 MSGBUF(K)=MSGBUF(N) K=K+1 137 CONTINUE DO 136 N=K,110P136 MSGBUF(K)=32 END IF_ END IFC GET VALUE BACK$C FORTRAN-77 HACK. USE INTERNAL READ!C GETS RESULT INTO % ACCUMULATOR.  READ(MSG_BUFF,140,ERR=9990)XAC$9c use wide format to allow correct readin of many formats 140 FORMAT(D30.15) GOTO 120 <C JUST CONTINUE IF WE ONLY GOT A MESSAGE OR PRINT LINE HERE. 200 CONTINUE$ CALL SCMP(LINE,%REF('TXT'),3,ICODE) IF(ICODE.NE.1)GOTO 300D2c get cell name now and skip the comma after it...C *U DBTXT CELL,COMMAND_5C GETS REPLY INTO CELL. IF NO REPLY, CELL UNCHANGED.D LO=4M LHI=204 LSTCHR=20- CALL VARSCN(LINE,LO,LHI,LSTCHR,ID1,ID2,IVLD)K IF(IVLD.EQ.0)GOTO 9990$4C JUST SKIP COMMA, SO IT REALLY CAN BE ANY DELIMITER:C IF NO DELIMITER OTHER THAN SPACE WAS GIVEN, SKIP SENDINGC THE COMMAND. IF(LINE(LSTCHR).LE.32)GOTO 230$ DO 210 N=1,60 NN=N  M=LINE(LSTCHR+N)N"C COPY CHARACTER ARRAY INTO STRING IF(M.LT.32)GOTO 211C NNN=NS LINEC(N:N)=CHAR(M)2 210 CONTINUE 211 CONTINUE LINEC(NN:NN)=CHAR(32) XAC=0. " CALL DTR$COMMAND(DAB,LINEC(1:NN))C CHECK STATUS* IF (DAB$W_STATE.EQ.DTR$K_STL_MSG)GOTO 220+ IF (DAB$W_STATE.EQ.DTR$K_STL_LINE)GOTO 230C CALL DTR$DTR(DAB,DTR$M_OPT_CMD)5C LET DTR$DTR HANDLE MESSAGES AND SO ON UNTIL BACK ATN@C COMMAND STALLPOINT. NOTE THAT THIS TAKES CARE OF COMMANDS THAT+C UNEXPECTEDLY CALL FOR MESSAGES OR INPUTS.V GOTO 9999 220 CONTINUE CALL DTR$CONTINUE(DAB)(* IF (DAB$W_STATE.EQ.DTR$K_STL_MSG)GOTO 220 GOTO 9999 230 CONTINUE6C IF(LINE(LSTCHR).EQ.ICHAR(';'))CALL DTR$CONTINUE(DAB)-C IF WE SEE ; DELIMITER FLUSH ONE EXTRA LINE.# IF(LINE(LSTCHR).GE.ICHAR(':').AND.( 1 LINE(LSTCHR).LE.ICHAR('?'))THEN NNV=(LINE(LSTCHR))-57 C SKIP LINES BASED ON DELIMITER: C : = 1 SKIP C ; = 2 SKIPSB C < = 3 SKIPSU C = = 4 SKIPSB C > = 5 SKIPST C ? = 6 SKIPSL DO 3342 N=1,NNV3342 CALL DTR$CONTINUE(DAB)B END IF,C GET STRING BACKD$C COPY MSG_BUFF BACK INTO CELL GIVENC ID1,ID2 ADDRESS CELL.B IFVLD=-1 C FLAG AS TEXT CALL FVLDST(ID1,ID2,IFVLD)LC IRX=(ID2-1)*RRW+ID1M CALL REFLEC(ID2,ID1,IRX)B CALL WRKFIL(IRX,LBUF,0)*C READ MEMORY ARRAY, MODIFY, THEN WRITE IT DO 233 N=1,110, 233 LBUF(N)=0G DO 234 N=1,109A234 LBUF(N)=MSGBUF(N)B9C NULL OUT TRAILING BLANKS PRIOR TO STORING TEXT IN SHEETE DO 235 N=1,109S NN=110-NL IF(LBUF(NN).GT.32)GOTO 236T LBUF(NN)=0W 235 CONTINUE 236 CONTINUE CALL WRKFIL(IRX,LBUF,1) XAC=1.BEC FLAG SUCCESSFUL GETTING OF MESSAGE BY RETURNING 1 IN % ACCUMULATOR._!C LEAVE VALUE AT THIS CELL ALONE.B237 CALL DTR$CONTINUE(DAB)#C FLUSH ANY EXTRA LINES OF MESSAGES* IF (DAB$W_STATE.E00 XWVRTADATADATADATADATADATAQ.DTR$K_STL_MSG)GOTO 237+ IF (DAB$W_STATE.EQ.DTR$K_STL_LINE)GOTO 237D GOTO 9999 300 CONTINUE$ CALL SCMP(LINE,%REF('RPV'),3,ICODE) IF(ICODE.NE.1)GOTO 400$C FIRST ISOLATE CELL NAME_ LO=4= LHI=20 LSTCHR=20- CALL VARSCN(LINE,LO,LHI,LSTCHR,ID1,ID2,IVLD)T IF(IVLD.EQ.0)GOTO 9990T4C JUST SKIP COMMA, SO IT REALLY CAN BE ANY DELIMITER IF(LINE(LSTCHR).LE.32)THEN_. IF (DAB$W_STATE.EQ.DTR$K_STL_PRMPT)GOTO 3409C IF WE CAN'T GO TO SEND THE REPLY, NULL OUT COMMAND LINEC LINE(LSTCHR+1)=32 LINE(LSTCHR+2)=0M ENDIF DO 310 N=1,60 NN=NL M=LINE(LSTCHR+N)R"C COPY CHARACTER ARRAY INTO STRING IF(M.LT.32)GOTO 311C NNN=N$ LINEC(N:N)=CHAR(M) 310 CONTINUE 311 CONTINUE LINEC(NN:NN)=CHAR(32) XAC=0.C REPLY WITH VALUE.6$C THIS USES VALUE IN CELL FOR REPLY.CC SINCE DTR EXPECTS TEXT, USE DISPLAY FORMAT IN CELL TO CONVERT THEC VALUE TO TEXT CHARACTERS. " CALL DTR$COMMAND(DAB,LINEC(1:NN))C CHECK STATUS* IF (DAB$W_STATE.EQ.DTR$K_STL_MSG)GOTO 320+ IF (DAB$W_STATE.EQ.DTR$K_STL_LINE)GOTO 330,, IF (DAB$W_STATE.EQ.DTR$K_STL_PRMPT)GOTO 340 CALL DTR$DTR(DAB,DTR$M_OPT_CMD)5C LET DTR$DTR HANDLE MESSAGES AND SO ON UNTIL BACK ATR@C COMMAND STALLPOINT. NOTE THAT THIS TAKES CARE OF COMMANDS THAT+C UNEXPECTEDLY CALL FOR MESSAGES OR INPUTS., GOTO 9999 320 CONTINUE 330 CONTINUE CALL DTR$CONTINUE(DAB)_* IF (DAB$W_STATE.EQ.DTR$K_STL_MSG)GOTO 320+ IF (DAB$W_STATE.EQ.DTR$K_STL_LINE)GOTO 330, IF (DAB$W_STATE.EQ.DTR$K_STL_PRMPT)GOTO 340 GOTO 9999 340 CONTINUEDC WAITING FOR DTR$PUT_VALUE CALL. GO GET VALUE AND CONVERT AND SHOVEC OUT. CALL XVBLGT(ID1,ID2,TMP)6C TMP IS REAL*8P@C NOW HAVE VALUE IN CELL (DEFAULT IS 0. IF CELL NOT INITIALIZED)C IRX=(ID2-1)*RRW+ID1T CALL REFLEC(ID2,ID1,IRX)K CALL WRKFIL(IRX,LBUF,0):C READ IN FORMULA BUFFER TO ALLOW US TO GET FORMAT TO USE. DO 341 N=1,9E K=LBUF(119+N) IF(K.LT.32)K=32342 LBUF(119+N)=KH 341 CONTINUE FMTBF='(' // FMTB // ')' C STASH FORMAT BUFFER IN THERE7C WE ALREADY MADE SURE IT HAS ALL SPACES OR FORMAT DATA_ WRITE(SCRBUF,FMTBF,ERR=348)TMP C *****************&&&&&&&&& CALL DTR$PUT_VALUE(DAB,SCRBUF)T XAC=1.I* IF (DAB$W_STATE.EQ.DTR$K_STL_MSG)GOTO 320+ IF (DAB$W_STATE.EQ.DTR$K_STL_LINE)GOTO 330TC FLUSH OUT THE REST#348 CALL DTR$DTR(DAB,DTR$M_OPT_CMD)F 400 CONTINUE$ CALL SCMP(LINE,%REF('RPF'),3,ICODE)C REPLY FROM FORMULA IF(ICODE.NE.1)GOTO 500<C FIRST ISOLATE CELL NAMEH LO=4 LHI=20J LSTCHR=20- CALL VARSCN(LINE,LO,LHI,LSTCHR,ID1,ID2,IVLD)D IF(IVLD.EQ.0)GOTO 9990r4C JUST SKIP COMMA, SO IT REALLY CAN BE ANY DELIMITER IF(LINE(LSTCHR).LE.32)THEN. IF (DAB$W_STATE.EQ.DTR$K_STL_PRMPT)GOTO 4409C IF WE CAN'T GO TO SEND THE REPLY, NULL OUT COMMAND LINEE LINE(LSTCHR+1)=32 LINE(LSTCHR+2)=0U ENDIF DO 410 N=1,60 NN=N  M=LINE(LSTCHR+N)N"C COPY CHARACTER ARRAY INTO STRING IF(M.LT.32)GOTO 411C NNN=N  LINEC(N:N)=CHAR(M)E 410 CONTINUE 411 CONTINUE LINEC(NN:NN)=CHAR(32) XAC=0.EEC REPLY FROM FORMULA SO WILL LATER GET REPLY FROM FORMULA TEXT RATHEREC THAN CURRENT VALUE.T" CALL DTR$COMMAND(DAB,LINEC(1:NN))C CHECK STATUS* IF (DAB$W_STATE.EQ.DTR$K_STL_MSG)GOTO 420+ IF (DAB$W_STATE.EQ.DTR$K_STL_LINE)GOTO 430I, IF (DAB$W_STATE.EQ.DTR$K_STL_PRMPT)GOTO 440 CALL DTR$DTR(DAB,DTR$M_OPT_CMD)5C LET DTR$DTR HANDLE MESSAGES AND SO ON UNTIL BACK AT @C COMMAND STALLPOINT. NOTE THAT THIS TAKES CARE OF COMMANDS THAT+C UNEXPECTEDLY CALL FOR MESSAGES OR INPUTS.N GOTO 9999 420 CONTINUE 430 CONTINUE CALL DTR$CONTINUE(DAB)C FLUSH ALL EXTRA MESSAGES* IF (DAB$W_STATE.EQ.DTR$K_STL_MSG)GOTO 420+ IF (DAB$W_STATE.EQ.DTR$K_STL_LINE)GOTO 430I, IF (DAB$W_STATE.EQ.DTR$K_STL_PRMPT)GOTO 440 GOTO 9999 440 CONTINUEFC WAITING FOR DTR$PUT_VALUE CALL. GO EMIT FORMULA (UP TO 80 CHARACTERS C ANYHOW...)IC IRX=(ID2-1)*RRW+ID1F CALL REFLEC(ID2,ID1,IRX)2 CALL WRKFIL(IRX,LBUF,0):C READ IN FORMULA BUFFER TO ALLOW US TO GET FORMAT TO USE. SCRBUF=' ', DO 441 N=1,79 K=LBUF(N) IF(K.LT.32)GOTO 443442 SCRBUF(N:N)=CHAR(K), 441 CONTINUE 443 CONTINUEC SEND OUT THE REPLY CALL DTR$PUT_VA00(XWWNW}LUE(DAB,SCRBUF)L XAC=1.L* IF (DAB$W_STATE.EQ.DTR$K_STL_MSG)GOTO 420+ IF (DAB$W_STATE.EQ.DTR$K_STL_LINE)GOTO 430NC FLUSH OUT THE REST#448 CALL DTR$DTR(DAB,DTR$M_OPT_CMD)BC1 500 CONTINUE"C ENABLE/DISABLE FOR DTR FUNCTIONS0C SETTING DTRENA TO -1 IMPLIES DISABLE FUNCTIONS$ CALL SCMP(LINE,%REF('ENA'),3,ICODE) IF(ICODE.NE.1)GOTO 600, DTRENA=11 GOTO 9999 600 CONTINUE$ CALL SCMP(LINE,%REF('DIS'),3,ICODE) IF(ICODE.NE.1)GOTO 7000 DTRENA=-1 GOTO 9999 700 CONTINUE& CALL SCMP(LINE,%REF('OPINS'),5,ICODE)C OPEN INPUT SEQUENTIALD IF(ICODE.NE.1)GOTO 3800C DTROPINS RANGE FILENAME, IBGN=6C IVLD=0A8 CALL GMTX(LINE,IBGN,LSTCH,MFIRL,MFICL,MFIRH,MFICH,IVLD) IF(IVLD.EQ.3)GOTO 9990X LINE(LSTCH+25)=0C7 OPEN(UNIT=MFILUN,FILE=LINE(LSTCH),ACCESS='SEQUENTIAL',T" 1 STATUS='UNKNOWN',ERR=9990) MFIOPN=1 GOTO 9999 3800 CONTINUEI' CALL SCMP(LINE,%REF('OPINRR'),6,ICODE) C OPEN IN RANDOM READG IF(ICODE.NE.1)GOTO 3900 KK=2 GOTO 3910 3900 CONTINUEE' CALL SCMP(LINE,%REF('OPINRU'),6,ICODE),C OPEN IN RANDOM UPDATEC IF(ICODE.NE.1)GOTO 3950 KK=3 3910 CONTINUEP@C HANDLE INPUT DIRECT ACCESS OPEN COMMONLY FOR READ ONLY AND R/W IBGN=7T IVLD=08 CALL GMTX(LINE,IBGN,LSTCH,MFIRL,MFICL,MFIRH,MFICH,IVLD) IF(IVLD.EQ.3)GOTO 9990, LINE(LSTCH+25)=0D$ NBK=(MFIRH-MFIRL+1)*(MFICH-MFICL+1)3 OPEN(UNIT=MFILUN,FILE=LINE(LSTCH),ACCESS='DIRECT',E< 1 INITIALSIZE=NBK,FORM='UNFORMATTED',STATUS='UNKNOWN',' 1 RECL=32,BLOCKSIZE=128,ERR=9990) MFIOPN=KK GOTO 9999 3950 CONTINUEE' CALL SCMP(LINE,%REF('OPOUTS'),6,ICODE)BC OPEN OUTPUT SEQUENTIAL IF(ICODE.NE.1)GOTO 4000 IBGN=7, IVLD=0T8 CALL GMTX(LINE,IBGN,LSTCH,MFORL,MFOCL,MFORH,MFOCH,IVLD) IF(IVLD.EQ.3)GOTO 9990 LINE(LSTCH+25)=07 OPEN(UNIT=MFOLUN,FILE=LINE(LSTCH),ACCESS='SEQUENTIAL',X" 1 STATUS='UNKNOWN',ERR=9990) MFOOPN=1N GOTO 9999 4000 CONTINUEW' CALL SCMP(LINE,%REF('OPOUTR'),6,ICODE)OC OPEN OUTPUT RANDOM IF(ICODE.NE.1)GOTO 4100 IBGN=7W IVLD=08 CALL GMTX(LINE,IBGN,LSTCH,MFORL,MFOCL,MFORH,MFOCH,IVLD) IF(IVLD.EQ.3)GOTO 9990M$ NBK=(MFORH-MFORL+1)*(MFOCH-MFOCL+1) LINE(LSTCH+25)=0B3 OPEN(UNIT=MFOLUN,FILE=LINE(LSTCH),ACCESS='DIRECT',U< 1 INITIALSIZE=NBK,FORM='UNFORMATTED',STATUS='UNKNOWN',' 1 RECL=32,BLOCKSIZE=128,ERR=9990) MFOOPN=2R GOTO 9999 4100 CONTINUE' CALL SCMP(LINE,%REF('CLSOUT'),6,ICODE)DC CLOSE OUTPUT  IF(ICODE.NE.1)GOTO 4200 CLOSE(UNIT=MFOLUN)P MFOOPN=0R GOTO 9999 4200 CONTINUEP' CALL SCMP(LINE,%REF('CLSINP'),6,ICODE) C CLOSE INPUT  IF(ICODE.NE.1)GOTO 4300 CLOSE(UNIT=MFILUN)T MFIOPN=0K GOTO 9999 4300 CONTINUE' CALL SCMP(LINE,%REF('ENAOUT'),6,ICODE)KC ENABLE OUTPUT  IF(ICODE.NE.1)GOTO 4400 MFOFLG=1K GOTO 9999 4400 CONTINUE_' CALL SCMP(LINE,%REF('ENAINP'),6,ICODE) C ENABLE INPUT 5 IF(ICODE.NE.1)GOTO 4500 MFIFLG=1T GOTO 9999 4500 CONTINUE$' CALL SCMP(LINE,%REF('DISINP'),6,ICODE)C DISABLE INPUT  IF(ICODE.NE.1)GOTO 4510 MFIFLG=0D GOTO 9999 4510 CONTINUEM' CALL SCMP(LINE,%REF('DISOUT'),6,ICODE)KC DISABLE OUTPUT IF(ICODE.NE.1)GOTO 4520 MFOFLG=0D GOTO 9999 4520 CONTINUEK' CALL SCMP(LINE,%REF('EDTINP'),6,ICODE)(C ENABLE INPUT FORCE C COMMANDTC DTREDTINP RANGE,HC GETS RANGE, THEN FOR EACH CELL IN RANGE READS IN (BY WRKFIL READ CALL)DC A CELL, SETS ITS FVLD CODE TO -1 (TO FLAG A TEXT CELL), AND WRITESC IT OUT AGAIN.  IF(ICODE.NE.1)GOTO 4600$C FORCE ENABLE OF READIN DURING THIS MFIFLG=1_ MFOFLG=1,C ENABLE OUTPUT TOO. IBGN=7 IVLD=0 4 CALL GMTX(LINE,IBGN,LSTCH,IXRL,IXCL,IXRH,IXCH,IVLD) IF(IVLD.EQ.3)GOTO 9990M DO 4550 N1=IXRL,IXRHU DO 4550 N2=IXCL,IXCHT CALL REFLEC(N2,N1,IRX)T2C SET THE ELEMENT AS VALID AND READ/WRITE IT ONCE. CALL FVLDST(N1,N2,-1) CALL WRKFIL(IRX,LBUF,0) CALL WRKFIL(IRX,LBUF,1) 4550 CONTINUEN MFIFLG=0O MFOFLG=0T GOTO 9999 4600 CONTINUEM' CALL SCMP(LINE,%REF('FMTOUT'),6,ICODE)$C FORMAT/WRITE OUTPUTT C COMMAND=C DTRFMTOUT RANGE_HC GETS RANGE, THEN FOR EACH CELL IN RANGE READS IN (BY WRKFIL READ CALL)DC A CELL, SETS ITS FVLD CODE TO -1 (TO FLAG A TEXT000XWVRTADATADATADATADATADATA CELL), AND WRITESC IT OUT AGAIN.P IF(ICODE.NE.1)GOTO 4630 IVLFG=1 GOTO 4740 4630 CONTINUEP' CALL SCMP(LINE,%REF('VALOUT'),6,ICODE)= IF(ICODE.NE.1)GOTO 4700.C VALOUT CMD OUTPUTS VALUES WITH LONG D FORMAT IVFLG=2 C GOTO 4740_ 4740 CONTINUES$C FORCE ENABLE OF READIN DURING THIS MFIFLG=1, MFOFLG=1_C ENABLE OUTPUT TOO. IBGN=7_ IVLD=04 CALL GMTX(LINE,IBGN,LSTCH,IXRL,IXCL,IXRH,IXCH,IVLD) IF(IVLD.EQ.3)GOTO 9990= DO 4650 N1=IXRL,IXRHM DO 4650 N2=IXCL,IXCH$C FIND INDEX FOR WRKFILC CALL REFLEC(N2,N1,IRX)I2C SET THE ELEMENT AS VALID AND READ/WRITE IT ONCE. CALL XVBLGT(N1,N2,TMP)_C TMP IS REAL*8 SCRATCH_ CALL FVLDST(N1,N2,-1) CALL WRKFIL(IRX,LBUF,0)5C HAVING LOADED THE RECORD NOW (GETTING FORMAT, ETC.)T#C NOW GRAB THE VALUE AND SAVE IT...C FIRST MOVE THE FORMAT DOWN;C NOTE LINEC AND LINECL ARE EQUIVALENT BUT LINECL IS CHAR*18 DO 4651 N=1,9 LBUF(N+1)=LBUF(N+119) 4651 CONTINUEC LBUF(1)='(' LBUF(11)=')'U LBUF(12)=0F&C FORMAT NOW LIVES IN LOW PART OF LBUF"C D25.17 FORMAT WOULD DO FOR WRITE, IF(IVLFG.EQ.1)WRITE(LINEC,LBUF,ERR=4652)TMP, IF(IVLFG.EQ.2)WRITE(LINEC,4658,ERR=4652)TMP4658 FORMAT(D25.17)1@C USE BUILTIN FORMAT TO WRITE THE VALUE IF COMMANDED TO DO SO ORC USE DISPLAY FORMAT. 4652 CONTINUEF KK=1G DO 4653 N=1,1104653 LBUF(N)=0 DO 4654 N=1,60 ,C COPY LINECL CHARS TO LBUF, SKIPPING SPACES KKK=LINECL(N) IF(KKK.LE.32)GOTO 46543 LBUF(KK)=LINECL(N) KK=KK+1 4654 CONTINUE3 CALL WRKFIL(IRX,LBUF,1) 4650 CONTINUEN MFIFLG=0P MFOFLG=0T GOTO 9999 4700 CONTINUE' CALL SCMP(LINE,%REF('CMPFRM'),6,ICODE)T IF(ICODE.NE.1)GOTO 4800C DBCMPFRM V1:V22C RETURNS IN % THE INDEX OF FORMULA 1 IN FORMULA 2 IBGN=7S IVLD=0E!C USE GMTX TO GET CELL ADDRESSES.C4 CALL GMTX(LINE,IBGN,LSTCH,IXRL,IXCL,IXRH,IXCH,IVLD) IF(IVLD.EQ.3)GOTO 9990 6C IF WE HAVE A COMMA AND ANOTHER MTX USE IT AS LENGTHS CALL REFLEC(IXCL,IXRL,IRXL) CALL REFLEC(IXCH,IXRH,IRXH) IF(LINE(LSTCH).NE.',')GOTO 4780 IBGN=LSTCH+1c IVLD=0R4 CALL GMTX(LINE,IBGN,LSTCH,IYRL,IYCL,IYRH,IYCH,IVLD) IF(IVLD.EQ.3)GOTO 4780"C GET THE LENGTHS NOWd CALL XVBLGT(IYRL,IYCL,TMP)I% IF(TMP.LT.1.OR.TMP.GT.109.)GOTO 47805 LBUFL=TMP CALL XVBLGT(IYRH,IYCH,TMP)U% IF(TMP.LT.1.OR.TMP.GT.109.)GOTO 4780O MBUFL=TMP6C IF LENGTHS ARE OK FOR BOTH, THEN USE THEM AND DO THEC COMPARISONS BASED ON THAT. GOTO 4770 4780 CONTINUEC GET INDEX OF EACH ELEMENT... CALL WRKFIL(IRXL,LBUF,0)C CALL WRKFIL(IRXH,MBUF,0)TC LOAD THE 2 FORMULAS.C NOW FIND THE ENDS... DO 4750 N=1,110 NN=111-Ne IF(LBUF(NN).GT.32)GOTO 4751 4750 CONTINUE4 4751 LBUFL=NN0 DO 4760 N=1,110 NN=111-N= IF(MBUF(NN).GT.32)GOTO 4761 4760 CONTINUEN 4761 MBUFL=NN( 4770 CONTINUED( NN=INDEX(CLBUF(1:LBUFL),CMBUF(1:MBUFL))!C NN IS LOCATION OF SUBSTRING NOWu XAC=NNn!C RETURN RESULT IN % ACCUMULATOR. WAC=0.$. IF(LLT(CLBUF(1:LBUFL),CMBUF(1:MBUFL)))WAC=-1.- IF(LGT(CLBUF(1:LBUFL),CMBUF(1:MBUFL)))WAC=1.P9C RETURN LESS/GREATER/EQUAL IN W ACCUMULATOR FOR POSSIBLEDCC USE IN SORTS, ETC. THUS WE CAN TEST 2 STRINGS BY TESTING W ACCUM.D6C (LEAVES X, Y ALONE SINCE W IS MORE FREQUENTLY FREE.) GOTO 9999 4800 CONTINUEA' CALL SCMP(LINE,%REF('LENFRM'),6,ICODE)  IF(ICODE.NE.1)GOTO 4900C DBLENFRM V1:V2-C RETURNS LENGTH OF FORMULA IN V1 IN % AND V2$ IBGN=7A IVLD=0:!C USE GMTX TO GET CELL ADDRESSES.A4 CALL GMTX(LINE,IBGN,LSTCH,IXRL,IXCL,IXRH,IXCH,IVLD) IF(IVLD.EQ.3)GOTO 9990 6C IF WE HAVE A COMMA AND ANOTHER MTX USE IT AS LENGTHS CALL REFLEC(IXCL,IXRL,IRXL)C GET INDEX OF EACH ELEMENT... CALL WRKFIL(IRXL,LBUF,0)HC LOAD THE FORMULA.LC NOW FIND THE END...S DO 4850 N=1,110 NN=111-N IF(LBUF(NN).GT.32)GOTO 4851 4850 CONTINUES 4851 LBUFL=NN TMP=LBUFL XAC=TMP@C SAVE LENGTH IN OUTPUT CELL. DON'T TOUCH VALIDITY FOR THE CELL. NN=0 BC SEE IF CELL IS VALID AND IF NOT VALID DON'T SAVE ANYTHING IN IT. CALL FVLDGT(IXRH,IXCH,NN) IF(NN.EQ.0)GOTO 9999d CALL XVBLST(IXRH,IXCH,TMP)G GOTO 9999 4900 CONTINUEL' CALL SCMP(LINE,%REF('TRMFRM'),6,ICODE)D IF(ICODE.NE.1)GOTO 5000C TRIM FORMULA$C DT008XWWNW}RTRMFRM INCELL:OUTCELL,START:END"C RETURNS TRIMMED FORMULA TO CELL. IBGN=7V IVLD=0I!C USE GMTX TO GET CELL ADDRESSES.(5 CALL GMTX(LINE,IBGN,LSTCHR,IXRL,IXCL,IXRH,IXCH,IVLD)) IF(IVLD.EQ.3)GOTO 9990C+C GOT CELL HERE...BOTH FOR INPUT AND OUTPUTL CALL REFLEC(IXCL,IXRL,IRXL)C GET INDEX OF EACH ELEMENT... CALL REFLEC(IXCH,IXRH,IRXH) CALL WRKFIL(IRXL,LBUF,0)I LO=LSTCHR+1 LHI=LSTCHR+21 LSTCHR=LHI- CALL VARSCN(LINE,LO,LHI,LSTCHR,JD1,JD2,IVLD)  IF(IVLD.EQ.0)GOTO 9990  CALL XVBLGT(JD1,JD2,TMP)T LOCHR=1' IF(TMP.GT.0..AND.TMP.LT.110.)LOCHR=TMPTC LOCHR = START CHAR LO=LSTCHR+1 LHI=LSTCHR+21 LSTCHR=LHIO- CALL VARSCN(LINE,LO,LHI,LSTCHR,JD1,JD2,IVLD)A IF(IVLD.EQ.0)GOTO 99901 CALL XVBLGT(JD1,JD2,TMP)$ LHICHR=110T( IF(TMP.GT.0..AND.TMP.LT.110.)LHICHR=TMPC LHICHR IS END CHARACTERLC NOW ALL ARGS ARE COLLECTED.B C (IGNORE WHAT WAS DELIMITER...)C COPY DESIRED STUFF TO MBUF N=1 DO 4910 NN=1,110D MBUF(NN)=0M) IF(NN.LT.LOCHR.OR.NN.GT.LHICHR)GOTO 4910V MBUF(N)=LBUF(NN)0 N=N+1<C COPY DESIRED PART OF FORMULA TO MBUF WITH THE REST ZEROED. 4910 CONTINUE3 DO 4911 NN=111,128.4911 MBUF(NN)=LBUF(NN) CALL WRKFIL(IRXH,MBUF,1) =C WRITE BUFFER BACK TO CELL AS TRIMMED NOW, GOING TO OUT CELLE@C RATHER THAN INPUT CELL (TO ALLOW REPEATED CALCS TO BE STABLE.) GOTO 9999 5000 CONTINUEI GOTO 9999 9990 RETCD=3C ERROR RETURN 9999 RETURNS END SUBROUTINE DTRFCT(LINE,RETCD) INTEGER*2 RETCD LOGICAL*1 LINE(80)K LOGICAL *1 LINECL(82) CHARACTER*62 LINECB EQUIVALENCE(LINEC,LINECL(1)) C CU(C DEFINE FILE AREAS FOR MAPPING FILES...DC ONE INPUT FILE, TO BE ACCESSED AS A RANDOM ACCESS FILE OF 128 BYTEDC RECORDS OF DATA IF RANDOM, OR AS A FORMULA FILE IF SEQUENTIAL, AND?C ONE OUTPUT FILE TO BE WRITTEN THE SAME WAY. INPUT FILE CAN BEEC INPUT - ONLY OR READ/WRITE.NCBC DEFINE ALSO DATA STRUCTURES TO HOLD CELL RANGES (IN ROW AND COL)BC TO BE TREATED WITH THESE FILES, FLAG FOR HOW-OPEN, AND LUN USED.C_C MFIOPN = 0 IF NOT OPEN&C 1 IF OPEN FOR READ ONLY, SEQUENTIALC 2 IF OPEN READ ONLY, RANDOM C 3 IF OPEN READ/WRITE, RANDOM.CC MFOOPN = 0 IF NOT OPENC 1 IF OPEN WRITE SEQUENTIAL C 2 IF OPEN WRITE RANDOMNCE!C OTHER OPTIONS DON'T MAKE SENSE. 9C MFIRL,MFIRH = RRW DIMENSION LOW, HIGH BOUND, INPUT FILE39C MFICL,MFICH = RCL DIMENSION LOW, HIGH BOUND, INPUT FILEA%C MFORL,RH,MFOCL,CH = OUT FILE BOUNDSO"C MFILUN,MFOLUN ARE LOGICAL UNITS.) INTEGER*2 MFIOPN,MFIRL,MFIRH,MFICL,MFICH=) INTEGER*2 MFOOPN,MFORL,MFORH,MFOCL,MFOCHI& INTEGER*2 MFILUN,MFOLUN,MFIFLG,MFOFLG5 COMMON/MFILES/MFIOPN,MFOOPN,MFIRL,MFIRH,MFICL,MFICH,$; 1 MFORL,MFORH,MFOCL,MFOCH,MFILUN,MFOLUN,MFIFLG,MFOFLG C$C  INTEGER*2 DTRENA  COMMON/DTRCMN/DTRENA  INCLUDE 'VKLUGPRM.FTN'T#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY..2 LOGICAL*1 AVBLS(20,27),WRK(128),VBLS(8,RRWP,RCLP)" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9) REAL*8 XAC,XVBLS(RRWP,RCLP) REAL*8 TAC,UAC,VAC,WAC,YACI REAL*8 TMPE INTEGER*4 JVBLS(2,RRWP,RCLP) / EQUIVALENCE(WAC,AVBLS(1,23)),(YAC,AVBLS(1,25))E EQUIVALENCE(XAC,AVBLS(1,27))D EQUIVALENCE(TAC,AVBLS(1,20))  EQUIVALENCE(UAC,AVBLS(1,21))  EQUIVALENCE(VAC,AVBLS(1,22)) & EQUIVALENCE(VBLS(1,1,1),JVBLS(1,1,1))$ EQUIVALENCE(VBLS(1,1,1),XVBLS(1,1)) COMMON/V/TYPE,AVBLS,VBLS,VLEN INTEGER*2 XTNCNT,XTCFG,IPSETD LOGICAL*1 XTNCMD(80) " INTEGER*2 FORMFG,RCFGX,PZAP,RCONE. INTEGER*2 IDOL1,IDOL2,IDOL3,IDOL4,IDOL5,IDOL61 COMMON/DOLLR/IDOL1,IDOL2,IDOL3,IDOL4,IDOL5,IDOL6M INTEGER*2 RRWACT,RCLACT COMMON/RCLACT/RRWACT,RCLACT$ COMMON/FFGG/FORMFG,RCFGX,PZAP,RCONE& COMMON/XCMD/XTNCNT,XTNCMD,XTCFG,IPSET:C LOOP CONTROL FOR VARY FUNCTION. SET ZERO IN SPREDSHT AND2C MUST BE SET POSITIVE HERE IF WE NEED ITERATIONS.C (IMPLEMENT FOR VAX ONLY) INTEGER KALKITU COMMON/VARYIT/KALKITS(C ARGUMENTS COME IN IN ARGUMENTS IN LINE<C RESULTS GO INTO PERCENT (XAC) AND WHEREVER ELSE DESIRED...( INTEGER*2 PROW,PCOL,DROW,DCOL,DRWV,DCLV* COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRW00@XWVRTADATADATADATADATADATAV,DCLV( DIMENSION NRDSP(DRW,DCL),NCDSP(DRW,DCL) COMMON/D2R/NRDSP,NCDSPG C ADD DATATRIEVE DATA STMTS HEREC ***Rc'!c FORTRAN DATATRIEVE Access Block c$; LOGICAL*1 DAB$B_BID, DAB$B_BLN, DAB$B_VER_LETTER, DAB(100)C, INTEGER*2 DAB$W_MSG_BUF_LEN, DAB$W_MSG_LEN,& 1 DAB$W_AUX_BUF_LEN, DAB$W_AUX_LEN,. 2 DAB$W_IDI, DAB$W_STATE, DAB$W_REC_LENGTH,2 3 DAB$W_VERSION, DAB$W_LEVEL, DAB$W_BASE_LEVEL,) 4 DAB$W_UDK_INDEX, DAB$W_COLUMNS_PAGE,T 5 DAB$W_TT_CHANNELA( LOGICAL*4 DAB$A_MSG_BUF, DAB$A_AUX_BUF,0 1 DAB$L_CONDITION, DAB$L_FLAGS, DAB$L_OPTIONS COMMON /DAB_COMMON/ A 1 DAB$B_BID,  2 DAB$B_BLN,  3 DAB$L_CONDITION,= 4 DAB$A_MSG_BUF,R 5 DAB$W_MSG_BUF_LEN, O 6 DAB$W_MSG_LEN,N 7 DAB$A_AUX_BUF,  8 DAB$W_AUX_BUF_LEN,  9 DAB$W_AUX_LEN,N 1 DAB$W_IDI,  2 DAB$W_STATE,  3 DAB$L_FLAGS,  4 DAB$L_OPTIONS,T 5 DAB$W_REC_LENGTH,  6 DAB$W_VERSION,  7 DAB$W_LEVEL,  8 DAB$B_VER_LETTER, H 9 DAB$W_BASE_LEVEL, S 1 DAB$W_UDK_INDEX,) 2 DAB$W_COLUMNS_PAGE, 3 DAB$W_TT_CHANNELG EQUIVALENCE (DAB, DAB$B_BID)T; INTEGER DTR$K_STL_CMD, DTR$K_STL_PRMPT, DTR$K_STL_LINE,E4 1 DTR$K_STL_MSG, DTR$K_STL_PGET, DTR$K_STL_PPUT,6 2 DTR$K_STL_CONT, DTR$K_STL_UDK, DTR$K_STL_END_UDK PARAMETER (DTR$K_STL_CMD=1, 1 DTR$K_STL_PRMPT=2,T 2 DTR$K_STL_LINE=3,  3 DTR$K_STL_MSG=4, 4 DTR$K_STL_PGET=5,A 5 DTR$K_STL_PPUT=6,3 6 DTR$K_STL_CONT=7,T 7 DTR$K_STL_UDK=8, 8 DTR$K_STL_END_UDK=9)2 INTEGER DTR$K_SEMI_COLON_OPT, DTR$K_UNQUOTED_LIT,+ 1 DTR$K_SYNTAX_PROMPT, DTR$K_IMMED_RETURN,N: 2 DTR$K_FORMS_ENABLE, DTR$K_VERIFY, DTR$K_CONTEXT_SEARCH,; 3 DTR$K_HYPHEN_DISABLED, DTR$K_MORE_COMMANDS, DTR$K_ABORT,  4 DTR$K_LOCK_WAIT# PARAMETER (DTR$K_SEMI_COLON_OPT=1,1 1 DTR$K_UNQUOTED_LIT=16, 2 DTR$K_SYNTAX_PROMPT=32,  3 DTR$K_IMMED_RETURN=64, 4 DTR$K_FORMS_ENABLE=128,) 5 DTR$K_VERIFY=256,B 6 DTR$K_CONTEXT_SEARCH=2048,! 7 DTR$K_HYPHEN_DISABLED=4096,T 8 DTR$K_MORE_COMMANDS=8192,D 9 DTR$K_ABORT=16384, 1 DTR$K_LOCK_WAIT=32768)= INTEGER DTR$M_OPT_CMD, DTR$M_OPT_PRMPT, DTR$M_OPT_LINE,_4 1 DTR$M_OPT_MSG, DTR$M_OPT_PGET, DTR$M_OPT_PPUT,7 2 DTR$M_OPT_CONT, DTR$M_OPT_UDK, DTR$M_OPT_DTR_UDK,T+ 3 DTR$M_OPT_END_UDK, DTR$M_OPT_UNWIND, R. 4 DTR$M_OPT_CONTROL_C, DTR$M_OPT_STARTUP, @ 5 DTR$M_OPT_FOREIGN, DTR$M_OPT_BANNER, DTR$M_OPT_REMOVE_CTLC PARAMETER (DTR$M_OPT_CMD=1, 1 DTR$M_OPT_PRMPT=2, 2 DTR$M_OPT_LINE=4,N 3 DTR$M_OPT_MSG=8, 4 DTR$M_OPT_PGET=16, 5 DTR$M_OPT_PPUT=32, 6 DTR$M_OPT_CONT=64, 7 DTR$M_OPT_UDK=128, 8 DTR$M_OPT_DTR_UDK=256, 9 DTR$M_OPT_END_UDK=512, 1 DTR$M_OPT_UNWIND=1024, 2 DTR$M_OPT_CONTROL_C=2048,  3 DTR$M_OPT_STARTUP=4096,C 4 DTR$M_OPT_FOREIGN=8192,0 5 DTR$M_OPT_BANNER=16384, " 6 DTR$M_OPT_REMOVE_CTLC=32768)< INTEGER DTR$K_UDK_SET, DTR$K_UDK_SET_NO, DTR$K_UDK_SHOW,- 1 DTR$K_UDK_STATEMENT, DTR$K_UDK_COMMAND0 PARAMETER (DTR$K_UDK_SET=1, L 1 DTR$K_UDK_SET_NO=2,L 2 DTR$K_UDK_SHOW=3,R 3 DTR$K_UDK_STATEMENT=4, 4 DTR$K_UDK_COMMAND=5)0 INTEGER DTR$K_TOK_TOKEN, DTR$K_TOK_PICTURE, , 1 DTR$K_TOK_FILENAME, DTR$K_TOK_COMMAND, 2 DTR$K_TOK_TEST_TOKEN PARAMETER (DTR$K_TOK_TOKEN=1, 1 DTR$K_TOK_PICTURE=2, 2 DTR$K_TOK_FILENAME=3,O 3 DTR$K_TOK_COMMAND=4, 4 DTR$K_TOK_TEST_TOKEN=5)K CHARACTER*232 MSG_BUFF CHARACTER*232 AUX_BUFF& COMMON /DTR$BUFFERS/MSG_BUFF,AUX_BUFF EXTERNAL DTR$_SUCCESS CHARACTER*80 SCRBUF LOGICAL*1 LBUF(128) LOGICAL*1 MBUF(128) CHARACTER*110 CLBUF,CMBUF+ EQUIVALENCE(CLBUF,LBUF(1)),(CMBUF,MBUF(1))I/C USE CLBUF, CMBUF FOR CHARACTER COMPARISONS...  CHARACTER*9 FMTB EQUIVALENCE (FMTB,LBUF(120))L CHARACTER*11 FMTBF  LOGICAL*1 IFVLD LOGICAL*1 MSGBUF(80)I EQUIVALENCE(MSGBUF(1),MSG_BUFF)C ***2"C ********>>>>>>>><<<<<<<<******** RETCD=1 IF(DTRENA.LT.0)GOTO 9999O.C NULL OUT ANY TRAILING BLANKS ON COMMAND LINE DO 3332 N=1,763 NN=77-N IF(LINE(NN).GT.32)GOTO 3333 LINE(NN)=04 3332 CONTINUEE 3333 CONTINUEYC SPACE FILL ENT00HXWWNW}IRE ARRAYC DO 3334 N=1,823334 LINECL(N)=32. RETCD=17C HANDLE *U DBXXXX FUNCTIONS. LINE ARRAY PASSED IN HEREN,C STARTS AFTER THE "DB" SO WE CAN DECODE IT.5C *U DBCMD (COMMAND) PASSES COMMAND TO DTR FOR ACTIOND0C HOWEVER THIS DOES NOT RETURN A VALUE. USE FORC SETUP PURPOSES ONLY.LC,C INTERFACE DOCUMENTATION:C.C *U DBCMD COMMAND(C WILL PASS COMMAND AND FLUSH MESSAGES.C *U DBVAL COMMAND-C WILL PASS COMMAND AND RETRIEVE CONTENTS OF+C MESSAGE BUFFER AS VALUE IN % ACCUMULATORFC *U DBTXT CELL,COMMAND1C WILL PASS COMMAND AND RETRIEVE MESSAGE BUFFER.O/C MESSAGE BUFFER WILL BE PLACED IN CELL NAMEDMC AS ASCII TEXT.C *U DBRPV CELL3C WILL TAKE VALUE IN CELL AND USE AS A REPLY TO A=4C DTR QUERY (AS IN KEYBOARD INPUTS TO PROCEDURES).C *U DBRPT CELL2C WILL TAKE TEXT IN CELL AND USE AS A REPLY TO AC DTR QUERY AS ABOVE.LC,1C ALL THE ABOVE CALLS WILL BE ALSO IMPLEMENTED ASI1C DIRECT "DTRXXX" COMMANDS FOR COMMAND LEVEL USE.NCU7C NO NEED TO INCLUDE ABILITY TO STORE COMMANDS IN CELLSA:C FOR EDITING SINCE {CELL CONSTRUCT PROVIDES THIS ALREADY.9C (AND AT COMMAND LEVEL THE __{CELL CONSTRUCT DOES ALSO.)Y$ CALL SCMP(LINE,%REF('CMD'),3,ICODE) IF(ICODE.NE.1)GOTO 100MC *U DBCMD COMMANDC EXECUTE DTR COMMAND9C CONSTRUCT A DESCRIPTOR...K DO 10 N=1,60) NN=N- M=LINE(4+N)"C COPY CHARACTER ARRAY INTO STRING IF(M.LT.32)GOTO 11 C NNN=NZ LINEC(N:N)=CHAR(M)E 10 CONTINUEK 11 CONTINUE1 LINEC(NN:NN)=CHAR(32)" CALL DTR$COMMAND(DAB,LINEC(1:NN))C CHECK STATUS) IF (DAB$W_STATE.EQ.DTR$K_STL_MSG)GOTO 20 * IF (DAB$W_STATE.EQ.DTR$K_STL_LINE)GOTO 20 CALL DTR$DTR(DAB,DTR$M_OPT_CMD)5C LET DTR$DTR HANDLE MESSAGES AND SO ON UNTIL BACK ATV@C COMMAND STALLPOINT. NOTE THAT THIS TAKES CARE OF COMMANDS THAT+C UNEXPECTEDLY CALL FOR MESSAGES OR INPUTS.S GOTO 9999 20 CONTINUEO CALL DTR$CONTINUE(DAB)C) IF (DAB$W_STATE.EQ.DTR$K_STL_MSG)GOTO 20I* IF (DAB$W_STATE.EQ.DTR$K_STL_LINE)GOTO 20<C JUST CONTINUE IF WE ONLY GOT A MESSAGE OR PRINT LINE HERE.<c no provision for printing it and we normally want to avoidc prints of this anyway. GOTO 9999 100 CONTINUE$ CALL SCMP(LINE,%REF('VAL'),3,ICODE) IF(ICODE.NE.1)GOTO 200T LSKIP=(LINE(4))-57O$ IF(LSKIP.LT.0.OR.LSKIP.GT.9)LSKIP=0 IVV=4 IF(LINE(5).EQ.ICHAR('.'))THEN IVV=IVV+1 END IFC DO 110 N=1,60 M=LINE(IVV+N) NN=N)"C COPY CHARACTER ARRAY INTO STRING IF(M.LT.32)GOTO 111C NNN=N= LINEC(N:N)=CHAR(M) 110 CONTINUE 111 CONTINUE LINEC(NN:NN)=CHAR(32)" CALL DTR$COMMAND(DAB,LINEC(1:NN))C CHECK STATUS* IF (DAB$W_STATE.EQ.DTR$K_STL_MSG)GOTO 120+ IF (DAB$W_STATE.EQ.DTR$K_STL_LINE)GOTO 130F CALL DTR$DTR(DAB,DTR$M_OPT_CMD)5C LET DTR$DTR HANDLE MESSAGES AND SO ON UNTIL BACK AT@C COMMAND STALLPOINT. NOTE THAT THIS TAKES CARE OF COMMANDS THAT+C UNEXPECTEDLY CALL FOR MESSAGES OR INPUTS.T GOTO 9999 120 CONTINUE CALL DTR$CONTINUE(DAB)'* IF (DAB$W_STATE.EQ.DTR$K_STL_MSG)GOTO 120+ IF (DAB$W_STATE.EQ.DTR$K_STL_LINE)GOTO 1305 GOTO 9999 130 CONTINUE IF(LSKIP.GT.0)THENI DO 3346 N=1,LSKIP3346 CALL DTR$CONTINUE(DAB)0+C SKIP EXTRA PRINT LINES IF NEEDED TO DO SOL END IFN IF(IVV.GE.5)THENI IQ=0 DO 135 N=1,110R#135 IF(MSGBUF(N).EQ.ICHAR('.'))IQ=1  IVVV=0E DO 138 N=1,80% IF(MSGBUF(NN).EQ.ICHAR(':'))IVVV=N+1C NN=81-N IF(MSGBUF(NN).GT.32)GOTO 139( 138 CONTINUE139 IF(IQ.EQ.0)MSGBUF(NN+1)=46C 46 IS ASCII PERIOD,C IF WE HAVE . AS FIRST CHAR OF COMMAND THEN<C ADD DECIMAL TO END OF TEXT AND START TEXT AFTER THE : OF A;C POSSIBLE LIST COMMAND. ONLY ADD THE DECIMAL IF NONE IS INI7C THE STRING ALREADY AND ONLY SKIP COLON IF ONE EXISTS.N IF(IVVV.GT.0)THEN K=1 DO 137 N=IVVV,NN+1H MSGBUF(K)=MSGBUF(N) K=K+1 137 CONTINUE DO 136 N=K,1102136 MSGBUF(K)=32 END IF, END IF C GET VALUE BACK$C FORTRAN-77 HACK. USE INTERNAL READ!C GETS RESULT INTO % ACCUMULATOR.L READ(MSG_BUFF,140,ERR=9990)XACE9c use wide format to allow correct readin of many formats140 FORMAT(D30.15)*C LOOP BACK TO CLEAR ANY REMAINING READINS GOTO 120 <C JUST CONTINUE IF WE ONLY GOT A MESSAGE OR PR00PXWVRTADATADATADATADATADATAINT LINE HERE. 200 CONTINUE$ CALL SCMP(LINE,%REF('TXT'),3,ICODE) IF(ICODE.NE.1)GOTO 300C2c get cell name now and skip the comma after it...C *U DBTXT CELL,COMMAND5C GETS REPLY INTO CELL. IF NO REPLY, CELL UNCHANGED.2 LO=4O LHI=207 LSTCHR=20- CALL VARSCN(LINE,LO,LHI,LSTCHR,ID1,ID2,IVLD)= IF(IVLD.EQ.0)GOTO 9990O4C JUST SKIP COMMA, SO IT REALLY CAN BE ANY DELIMITER IF(LINE(LSTCHR).LE.32)THEN)+ IF (DAB$W_STATE.EQ.DTR$K_STL_LINE)GOTO 230I LINE(LSTCHR+1)=32 LINE(LSTCHR+2)=0D ENDIF DO 210 N=1,60 NN=N, M=LINE(LSTCHR+N) "C COPY CHARACTER ARRAY INTO STRING IF(M.LT.32)GOTO 211C NNN=N LINEC(N:N)=CHAR(M)C 210 CONTINUE 211 CONTINUE LINEC(NN:NN)=CHAR(32) XAC=0.G" CALL DTR$COMMAND(DAB,LINEC(1:NN))C CHECK STATUS* IF (DAB$W_STATE.EQ.DTR$K_STL_MSG)GOTO 220+ IF (DAB$W_STATE.EQ.DTR$K_STL_LINE)GOTO 230R CALL DTR$DTR(DAB,DTR$M_OPT_CMD)5C LET DTR$DTR HANDLE MESSAGES AND SO ON UNTIL BACK ATC@C COMMAND STALLPOINT. NOTE THAT THIS TAKES CARE OF COMMANDS THAT+C UNEXPECTEDLY CALL FOR MESSAGES OR INPUTS.F GOTO 9999 220 CONTINUE CALL DTR$CONTINUE(DAB)T* IF (DAB$W_STATE.EQ.DTR$K_STL_MSG)GOTO 220 GOTO 9999 230 CONTINUE6C IF(LINE(LSTCHR).EQ.ICHAR(';'))CALL DTR$CONTINUE(DAB)?C SKIP ONE LINE IF WE SEE A ; AFTER CELL NAME INSTEAD OF COMMA.6# IF(LINE(LSTCHR).GE.ICHAR(':').AND.N( 1 LINE(LSTCHR).LE.ICHAR('?'))THEN NNV=(LINE(LSTCHR))-57 C SKIP LINES BASED ON DELIMITER: C : = 1 SKIP C ; = 2 SKIPS6 C < = 3 SKIPSC C = = 4 SKIPSL C > = 5 SKIPSN C ? = 6 SKIPS= DO 3342 N=1,NNV3342 CALL DTR$CONTINUE(DAB)L END IFNC GET STRING BACKI$C COPY MSG_BUFF BACK INTO CELL GIVENC ID1,ID2 ADDRESS CELL.N IFVLD=-1XC FLAG AS TEXT CALL FVLDST(ID1,ID2,IFVLD)EC IRX=(ID2-1)*RRW+ID1L CALL REFLEC(ID2,ID1,IRX)N CALL WRKFIL(IRX,LBUF,0)*C READ MEMORY ARRAY, MODIFY, THEN WRITE IT DO 233 N=1,110A 233 LBUF(N)=0U DO 234 N=1,80234 LBUF(N)=MSGBUF(N)L9C NULL OUT TRAILING BLANKS PRIOR TO STORING TEXT IN SHEET' DO 235 N=1,109= NN=110-NI IF(LBUF(NN).GT.32)GOTO 236L LBUF(NN)=0L 235 CONTINUE 236 CONTINUE CALL WRKFIL(IRX,LBUF,1) XAC=1.OEC FLAG SUCCESSFUL GETTING OF MESSAGE BY RETURNING 1 IN % ACCUMULATOR.5!C LEAVE VALUE AT THIS CELL ALONE.H237 CALL DTR$CONTINUE(DAB)!C FLUSH ALL REMAINING MESSAGES...F* IF (DAB$W_STATE.EQ.DTR$K_STL_MSG)GOTO 237+ IF (DAB$W_STATE.EQ.DTR$K_STL_LINE)GOTO 2377 GOTO 9999 300 CONTINUE$ CALL SCMP(LINE,%REF('RPV'),3,ICODE) IF(ICODE.NE.1)GOTO 400FC FIRST ISOLATE CELL NAMEE LO=4U LHI=20O LSTCHR=20- CALL VARSCN(LINE,LO,LHI,LSTCHR,ID1,ID2,IVLD)N IF(IVLD.EQ.0)GOTO 9990C4C JUST SKIP COMMA, SO IT REALLY CAN BE ANY DELIMITER IF(LINE(LSTCHR).LE.32)THEN1, IF (DAB$W_STATE.EQ.DTR$K_STL_PRMPT)GOTO 340!C MAKE CMD NULL IF NO COMMA THERE1 LINE(LSTCHR+1)=32 LINE(LSTCHR+2)=0  ENDIF DO 310 N=1,60 NN=N  M=LINE(LSTCHR+N)"C COPY CHARACTER ARRAY INTO STRING IF(M.LT.32)GOTO 311C NNN=NL LINEC(N:N)=CHAR(M)M 310 CONTINUE 311 CONTINUE LINEC(NN:NN)=CHAR(32) XAC=0.FC REPLY WITH VALUE.N$C THIS USES VALUE IN CELL FOR REPLY.CC SINCE DTR EXPECTS TEXT, USE DISPLAY FORMAT IN CELL TO CONVERT THELC VALUE TO TEXT CHARACTERS.N" CALL DTR$COMMAND(DAB,LINEC(1:NN))C CHECK STATUS* IF (DAB$W_STATE.EQ.DTR$K_STL_MSG)GOTO 320+ IF (DAB$W_STATE.EQ.DTR$K_STL_LINE)GOTO 330, IF (DAB$W_STATE.EQ.DTR$K_STL_PRMPT)GOTO 340 CALL DTR$DTR(DAB,DTR$M_OPT_CMD)5C LET DTR$DTR HANDLE MESSAGES AND SO ON UNTIL BACK AT@C COMMAND STALLPOINT. NOTE THAT THIS TAKES CARE OF COMMANDS THAT+C UNEXPECTEDLY CALL FOR MESSAGES OR INPUTS.N GOTO 9999 320 CONTINUE 330 CONTINUE CALL DTR$CONTINUE(DAB)D* IF (DAB$W_STATE.EQ.DTR$K_STL_MSG)GOTO 320+ IF (DAB$W_STATE.EQ.DTR$K_STL_LINE)GOTO 330, IF (DAB$W_STATE.EQ.DTR$K_STL_PRMPT)GOTO 340 GOTO 9999 340 CONTINUEDC WAITING FOR DTR$PUT_VALUE CALL. GO GET VALUE AND CONVERT AND SHOVEC OUT. CALL XVBLGT(ID1,ID2,TMP).C TMP IS REAL*8R@C NOW HAVE VALUE IN CELL (DEFAULT IS 0. IF CELL NOT INITIALIZED)C IRX=(ID2-1)*RRW+ID1U CALL REFLEC(ID2,ID1,IRX)R CALL WRKFIL(IRX,LBUF,0):C READ IN FORMULA BUFFER TO ALLOW US00XXWWNW} TO GET FORMAT TO USE. DO 341 N=1,9E K=LBUF(119+N) IF(K.LT.32)K=32342 LBUF(119+N)=K 341 CONTINUE FMTBF='(' // FMTB // ')'MC STASH FORMAT BUFFER IN THERE7C WE ALREADY MADE SURE IT HAS ALL SPACES OR FORMAT DATA. WRITE(SCRBUF,FMTBF,ERR=348)TMPL% CALL DTR$PUT_VALUE(DAB,SCRBUF(1:45))F XAC=1.M* IF (DAB$W_STATE.EQ.DTR$K_STL_MSG)GOTO 320+ IF (DAB$W_STATE.EQ.DTR$K_STL_LINE)GOTO 330HC FLUSH OUT THE REST#348 CALL DTR$DTR(DAB,DTR$M_OPT_CMD), 400 CONTINUE$ CALL SCMP(LINE,%REF('RPF'),3,ICODE)C REPLY FROM FORMULA IF(ICODE.NE.1)GOTO 5000C FIRST ISOLATE CELL NAMER LO=4 LHI=20R LSTCHR=20- CALL VARSCN(LINE,LO,LHI,LSTCHR,ID1,ID2,IVLD)L IF(IVLD.EQ.0)GOTO 9990(4C JUST SKIP COMMA, SO IT REALLY CAN BE ANY DELIMITER IF(LINE(LSTCHR).LE.32)THENM, IF (DAB$W_STATE.EQ.DTR$K_STL_PRMPT)GOTO 440 LINE(LSTCHR+1)=32 LINE(LSTCHR+2)=0I ENDIF DO 410 N=1,60 NN=N  M=LINE(LSTCHR+N)T"C COPY CHARACTER ARRAY INTO STRING IF(M.LT.32)GOTO 411C NNN=NN LINEC(N:N)=CHAR(M)V 410 CONTINUE 411 CONTINUE LINEC(NN:NN)=CHAR(32) XAC=0.TEC REPLY FROM FORMULA SO WILL LATER GET REPLY FROM FORMULA TEXT RATHER1C THAN CURRENT VALUE.L" CALL DTR$COMMAND(DAB,LINEC(1:NN))C CHECK STATUS* IF (DAB$W_STATE.EQ.DTR$K_STL_MSG)GOTO 420+ IF (DAB$W_STATE.EQ.DTR$K_STL_LINE)GOTO 430B, IF (DAB$W_STATE.EQ.DTR$K_STL_PRMPT)GOTO 440 CALL DTR$DTR(DAB,DTR$M_OPT_CMD)5C LET DTR$DTR HANDLE MESSAGES AND SO ON UNTIL BACK ATI@C COMMAND STALLPOINT. NOTE THAT THIS TAKES CARE OF COMMANDS THAT+C UNEXPECTEDLY CALL FOR MESSAGES OR INPUTS.) GOTO 9999 420 CONTINUE 430 CONTINUE CALL DTR$CONTINUE(DAB) * IF (DAB$W_STATE.EQ.DTR$K_STL_MSG)GOTO 420+ IF (DAB$W_STATE.EQ.DTR$K_STL_LINE)GOTO 430 , IF (DAB$W_STATE.EQ.DTR$K_STL_PRMPT)GOTO 440 GOTO 9999 440 CONTINUEFC WAITING FOR DTR$PUT_VALUE CALL. GO EMIT FORMULA (UP TO 80 CHARACTERS C ANYHOW...)SC IRX=(ID2-1)*RRW+ID1R CALL REFLEC(ID2,ID1,IRX)O CALL WRKFIL(IRX,LBUF,0):C READ IN FORMULA BUFFER TO ALLOW US TO GET FORMAT TO USE. SCRBUF=' 'I DO 441 N=1,79 K=LBUF(N) IF(K.LT.32)GOTO 443 NNN=N442 SCRBUF(N:N)=CHAR(K)/ 441 CONTINUE 443 CONTINUEC SEND OUT THE REPLY& CALL DTR$PUT_VALUE(DAB,SCRBUF(1:NNN)) XAC=1.N* IF (DAB$W_STATE.EQ.DTR$K_STL_MSG)GOTO 420+ IF (DAB$W_STATE.EQ.DTR$K_STL_LINE)GOTO 430NC FLUSH OUT THE REST#448 CALL DTR$DTR(DAB,DTR$M_OPT_CMD)NCI 500 CONTINUE& CALL SCMP(LINE,%REF('OPINS'),5,ICODE)C OPEN INPUT SEQUENTIAL  IF(ICODE.NE.1)GOTO 3800C DTROPINS RANGE FILENAMEI IBGN=6M IVLD=0R8 CALL GMTX(LINE,IBGN,LSTCH,MFIRL,MFICL,MFIRH,MFICH,IVLD) IF(IVLD.EQ.3)GOTO 9990, LINE(LSTCH+25)=0M7 OPEN(UNIT=MFILUN,FILE=LINE(LSTCH),ACCESS='SEQUENTIAL',U" 1 STATUS='UNKNOWN',ERR=9990) MFIOPN=1C GOTO 9999 3800 CONTINUEU' CALL SCMP(LINE,%REF('OPINRR'),6,ICODE)GC OPEN IN RANDOM READS IF(ICODE.NE.1)GOTO 3900 KK=2I GOTO 3910 3900 CONTINUER' CALL SCMP(LINE,%REF('OPINRU'),6,ICODE)LC OPEN IN RANDOM UPDATE, IF(ICODE.NE.1)GOTO 3950 KK=3I 3910 CONTINUER@C HANDLE INPUT DIRECT ACCESS OPEN COMMONLY FOR READ ONLY AND R/W IBGN=7I IVLD=0 8 CALL GMTX(LINE,IBGN,LSTCH,MFIRL,MFICL,MFIRH,MFICH,IVLD) IF(IVLD.EQ.3)GOTO 9990) LINE(LSTCH+25)=0C$ NBK=(MFIRH-MFIRL+1)*(MFICH-MFICL+1)3 OPEN(UNIT=MFILUN,FILE=LINE(LSTCH),ACCESS='DIRECT',E< 1 INITIALSIZE=NBK,FORM='UNFORMATTED',STATUS='UNKNOWN',' 1 RECL=32,BLOCKSIZE=128,ERR=9990)O MFIOPN=KK GOTO 9999 3950 CONTINUEN' CALL SCMP(LINE,%REF('OPOUTS'),6,ICODE)C OPEN OUTPUT SEQUENTIAL IF(ICODE.NE.1)GOTO 4000 IBGN=7O IVLD=0I8 CALL GMTX(LINE,IBGN,LSTCH,MFORL,MFOCL,MFORH,MFOCH,IVLD) IF(IVLD.EQ.3)GOTO 9990C LINE(LSTCH+25)=0T7 OPEN(UNIT=MFOLUN,FILE=LINE(LSTCH),ACCESS='SEQUENTIAL',M" 1 STATUS='UNKNOWN',ERR=9990) MFOOPN=1R GOTO 9999 4000 CONTINUEE' CALL SCMP(LINE,%REF('OPOUTR'),6,ICODE)EC OPEN OUTPUT RANDOM IF(ICODE.NE.1)GOTO 4100 IBGN=7 IVLD=0K8 CALL GMTX(LINE,IBGN,LSTCH,MFORL,MFOCL,MFORH,MFOCH,IVLD) IF(IVLD.EQ.3)GOTO 9990 $ NBK=(MFORH-MFORL+1)*(MFOCH-MFOCL+1) LINE(LSTCH+25)=0G3 OPEN(UNIT=MFOLUN,FILE=LINE(LSTCH),ACCESS='DIRECT',,< 1 INITIALS00`XWVRTADATADATADATADATADATAIZE=NBK,FORM='UNFORMATTED',STATUS='UNKNOWN',' 1 RECL=32,BLOCKSIZE=128,ERR=9990)A MFOOPN=2 GOTO 9999 4100 CONTINUEO' CALL SCMP(LINE,%REF('CLSOUT'),6,ICODE)CC CLOSE OUTPUT A IF(ICODE.NE.1)GOTO 4200 CLOSE(UNIT=MFOLUN)2 MFOOPN=0B GOTO 9999 4200 CONTINUE ' CALL SCMP(LINE,%REF('CLSINP'),6,ICODE)DC CLOSE INPUT  IF(ICODE.NE.1)GOTO 4300 CLOSE(UNIT=MFILUN)A MFIOPN=0D GOTO 9999 4300 CONTINUEW' CALL SCMP(LINE,%REF('ENAOUT'),6,ICODE)BC ENABLE OUTPUT  IF(ICODE.NE.1)GOTO 4400 MFOFLG=1, GOTO 9999 4400 CONTINUE$' CALL SCMP(LINE,%REF('ENAINP'),6,ICODE)OC ENABLE INPUT D IF(ICODE.NE.1)GOTO 4500 MFIFLG=1N GOTO 9999 4500 CONTINUE ' CALL SCMP(LINE,%REF('DISINP'),6,ICODE)C DISABLE INPUT  IF(ICODE.NE.1)GOTO 4510 MFIFLG=0X GOTO 9999 4510 CONTINUED' CALL SCMP(LINE,%REF('DISOUT'),6,ICODE)OC DISABLE OUTPUT IF(ICODE.NE.1)GOTO 4520 MFOFLG=07 GOTO 9999 4520 CONTINUER' CALL SCMP(LINE,%REF('EDTINP'),6,ICODE)BC ENABLE INPUT FORCE C COMMANDPC DTREDTINP RANGEHHC GETS RANGE, THEN FOR EACH CELL IN RANGE READS IN (BY WRKFIL READ CALL)DC A CELL, SETS ITS FVLD CODE TO -1 (TO FLAG A TEXT CELL), AND WRITESC IT OUT AGAIN.  IF(ICODE.NE.1)GOTO 4600$C FORCE ENABLE OF READIN DURING THIS MFIFLG=1= MFOFLG=1DC ENABLE OUTPUT TOO. IBGN=7_ IVLD=034 CALL GMTX(LINE,IBGN,LSTCH,IXRL,IXCL,IXRH,IXCH,IVLD) IF(IVLD.EQ.3)GOTO 9990 DO 4550 N1=IXRL,IXRHT DO 4550 N2=IXCL,IXCH, CALL REFLEC(N2,N1,IRX)=2C SET THE ELEMENT AS VALID AND READ/WRITE IT ONCE. CALL FVLDST(N1,N2,-1) CALL WRKFIL(IRX,LBUF,0) CALL WRKFIL(IRX,LBUF,1) 4550 CONTINUEK MFIFLG=0A MFOFLG=0R GOTO 9999 4600 CONTINUEO' CALL SCMP(LINE,%REF('FMTOUT'),6,ICODE)_C FORMAT/WRITE OUTPUT_ C COMMANDOC DTRFMTOUT RANGE_HC GETS RANGE, THEN FOR EACH CELL IN RANGE READS IN (BY WRKFIL READ CALL)DC A CELL, SETS ITS FVLD CODE TO -1 (TO FLAG A TEXT CELL), AND WRITESC IT OUT AGAIN.R IF(ICODE.NE.1)GOTO 4630 IVLFG=1 GOTO 4740 4630 CONTINUEC' CALL SCMP(LINE,%REF('VALOUT'),6,ICODE) IF(ICODE.NE.1)GOTO 4700.C VALOUT CMD OUTPUTS VALUES WITH LONG D FORMAT IVFLG=2 C GOTO 4740 4740 CONTINUE,$C FORCE ENABLE OF READIN DURING THIS MFIFLG=1_ MFOFLG=1_C ENABLE OUTPUT TOO. IBGN=73 IVLD=0_4 CALL GMTX(LINE,IBGN,LSTCH,IXRL,IXCL,IXRH,IXCH,IVLD) IF(IVLD.EQ.3)GOTO 9990  DO 4650 N1=IXRL,IXRHG DO 4650 N2=IXCL,IXCHRC FIND INDEX FOR WRKFILM CALL REFLEC(N2,N1,IRX)12C SET THE ELEMENT AS VALID AND READ/WRITE IT ONCE. CALL XVBLGT(N1,N2,TMP) C TMP IS REAL*8 SCRATCH  CALL FVLDST(N1,N2,-1) CALL WRKFIL(IRX,LBUF,0)5C HAVING LOADED THE RECORD NOW (GETTING FORMAT, ETC.)9#C NOW GRAB THE VALUE AND SAVE IT...$C FIRST MOVE THE FORMAT DOWN;C NOTE LINEC AND LINECL ARE EQUIVALENT BUT LINECL IS CHAR*1  DO 4651 N=1,9 LBUF(N+1)=LBUF(N+119) 4651 CONTINUE LBUF(1)='(' LBUF(11)=')'= LBUF(12)=0G&C FORMAT NOW LIVES IN LOW PART OF LBUF"C D25.17 FORMAT WOULD DO FOR WRITE, IF(IVLFG.EQ.1)WRITE(LINEC,LBUF,ERR=4652)TMP, IF(IVLFG.EQ.2)WRITE(LINEC,4658,ERR=4652)TMP4658 FORMAT(D25.17)@C USE BUILTIN FORMAT TO WRITE THE VALUE IF COMMANDED TO DO SO ORC USE DISPLAY FORMAT.R 4652 CONTINUE  KK=1  DO 4653 N=1,1104653 LBUF(N)=0 DO 4654 N=1,60_,C COPY LINECL CHARS TO LBUF, SKIPPING SPACES KKK=LINECL(N) IF(KKK.LE.32)GOTO 4654_ LBUF(KK)=LINECL(N)  KK=KK+1 4654 CONTINUE4 CALL WRKFIL(IRX,LBUF,1) 4650 CONTINUE2 MFIFLG=0F MFOFLG=0R GOTO 9999 4700 CONTINUER' CALL SCMP(LINE,%REF('CMPFRM'),6,ICODE)T IF(ICODE.NE.1)GOTO 4800C DBCMPFRM V1:V22C RETURNS IN % THE INDEX OF FORMULA 1 IN FORMULA 2 IBGN=7 IVLD=0N!C USE GMTX TO GET CELL ADDRESSES.4 CALL GMTX(LINE,IBGN,LSTCH,IXRL,IXCL,IXRH,IXCH,IVLD) IF(IVLD.EQ.3)GOTO 9990N6C IF WE HAVE A COMMA AND ANOTHER MTX USE IT AS LENGTHS CALL REFLEC(IXCL,IXRL,IRXL) CALL REFLEC(IXCH,IXRH,IRXH) IF(LINE(LSTCH).NE.',')GOTO 4780 IBGN=LSTCH+1R IVLD=0I4 CALL GMTX(LINE,IBGN,LSTCH,IYRL,IYCL,IYRH,IYCH,IVLD) IF(IVLD.EQ.3)GOTO 47803C GET THE LENGTHS NOWI CALL XVBLGT(IYRL,IYCL,TMP)L% IF(TMP.LT.1.OR.TMP.GT.109.)GOTO 4780U LBUFL=TMP CALL 00hXoXWNW}XVBLGT(IYRH,IYCH,TMP)N% IF(TMP.LT.1.OR.TMP.GT.109.)GOTO 4780 MBUFL=TMP6C IF LENGTHS ARE OK FOR BOTH, THEN USE THEM AND DO THEC COMPARISONS BASED ON THAT. GOTO 4770 4780 CONTINUESC GET INDEX OF EACH ELEMENT... CALL WRKFIL(IRXL,LBUF,0)T CALL WRKFIL(IRXH,MBUF,0)TC LOAD THE 2 FORMULAS.C NOW FIND THE ENDS... DO 4750 N=1,110 NN=111-N  IF(LBUF(NN).GT.32)GOTO 4751 4750 CONTINUED 4751 LBUFL=NN  DO 4760 N=1,110 NN=111-NV IF(MBUF(NN).GT.32)GOTO 4761 4760 CONTINUE 4761 MBUFL=NN 4770 CONTINUEL( NN=INDEX(CLBUF(1:LBUFL),CMBUF(1:MBUFL))!C NN IS LOCATION OF SUBSTRING NOWF XAC=NNE!C RETURN RESULT IN % ACCUMULATOR.I WAC=0. . IF(LLT(CLBUF(1:LBUFL),CMBUF(1:MBUFL)))WAC=-1.- IF(LGT(CLBUF(1:LBUFL),CMBUF(1:MBUFL)))WAC=1.O9C RETURN LESS/GREATER/EQUAL IN W ACCUMULATOR FOR POSSIBLE CC USE IN SORTS, ETC. THUS WE CAN TEST 2 STRINGS BY TESTING W ACCUM. 6C (LEAVES X, Y ALONE SINCE W IS MORE FREQUENTLY FREE.) GOTO 9999 4800 CONTINUEM' CALL SCMP(LINE,%REF('LENFRM'),6,ICODE)E IF(ICODE.NE.1)GOTO 4900C DBLENFRM V1:V2-C RETURNS LENGTH OF FORMULA IN V1 IN % AND V2E IBGN=7A IVLD=0M!C USE GMTX TO GET CELL ADDRESSES.S4 CALL GMTX(LINE,IBGN,LSTCH,IXRL,IXCL,IXRH,IXCH,IVLD) IF(IVLD.EQ.3)GOTO 9990D CALL REFLEC(IXCL,IXRL,IRXL)C GET INDEX OF EACH ELEMENT... CALL WRKFIL(IRXL,LBUF,0)-C LOAD THE FORMULA.YC NOW FIND THE END...T DO 4850 N=1,110 NN=111-N  IF(LBUF(NN).GT.32)GOTO 4851 4850 CONTINUE1 4851 LBUFL=NNN TMP=LBUFL XAC=TMP@C SAVE LENGTH IN OUTPUT CELL. DON'T TOUCH VALIDITY FOR THE CELL. NN=0$BC SEE IF CELL IS VALID AND IF NOT VALID DON'T SAVE ANYTHING IN IT. CALL FVLDGT(IXRH,IXCH,NN) IF(NN.EQ.0)GOTO 9999M CALL XVBLST(IXRH,IXCH,TMP)A GOTO 9999 4900 CONTINUEO' CALL SCMP(LINE,%REF('TRMFRM'),6,ICODE) IF(ICODE.NE.1)GOTO 5000C TRIM FORMULA$C DTRTRMFRM INCELL:OUTCELL,START:END"C RETURNS TRIMMED FORMULA TO CELL. IBGN=7T IVLD=0O!C USE GMTX TO GET CELL ADDRESSES._5 CALL GMTX(LINE,IBGN,LSTCHR,IXRL,IXCL,IXRH,IXCH,IVLD)O IF(IVLD.EQ.3)GOTO 9990p+C GOT CELL HERE...BOTH FOR INPUT AND OUTPUT  CALL REFLEC(IXCL,IXRL,IRXL)C GET INDEX OF EACH ELEMENT... CALL REFLEC(IXCH,IXRH,IRXH) CALL WRKFIL(IRXL,LBUF,0) LO=LSTCHR+1 LHI=LSTCHR+21 LSTCHR=LHIO- CALL VARSCN(LINE,LO,LHI,LSTCHR,JD1,JD2,IVLD)H IF(IVLD.EQ.0)GOTO 9990 CALL XVBLGT(JD1,JD2,TMP)M LOCHR=1' IF(TMP.GT.0..AND.TMP.LT.110.)LOCHR=TMPTC LOCHR = START CHAR LO=LSTCHR+1 LHI=LSTCHR+21 LSTCHR=LHIO- CALL VARSCN(LINE,LO,LHI,LSTCHR,JD1,JD2,IVLD)C IF(IVLD.EQ.0)GOTO 9990( CALL XVBLGT(JD1,JD2,TMP) LHICHR=110E( IF(TMP.GT.0..AND.TMP.LT.110.)LHICHR=TMPC LHICHR IS END CHARACTERFC NOW ALL ARGS ARE COLLECTED.M C (IGNORE WHAT WAS DELIMITER...)C COPY DESIRED STUFF TO MBUF N=1 DO 4910 NN=1,110A MBUF(NN)=0C) IF(NN.LT.LOCHR.OR.NN.GT.LHICHR)GOTO 4910O MBUF(N)=LBUF(NN)S N=N+1<C COPY DESIRED PART OF FORMULA TO MBUF WITH THE REST ZEROED. 4910 CONTINUE_ DO 4911 NN=111,128B4911 MBUF(NN)=LBUF(NN) CALL WRKFIL(IRXH,MBUF,1)3=C WRITE BUFFER BACK TO CELL AS TRIMMED NOW, GOING TO OUT CELL @C RATHER THAN INPUT CELL (TO ALLOW REPEATED CALCS TO BE STABLE.) GOTO 9999 5000 CONTINUEI GOTO 9999 9990 RETCD=3C ERROR RETURN 9999 RETURN. END SUBROUTINE ERRCX (RETCD)T#C COPYRIGHT (C) 1983 GLENN EVERHARTH@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY.L INCLUDE 'VKLUGPRM.FTN'OC PARAMETER RRW = 32C PARAMETER RCL = 32 PARAMETER CUP=1,NEL=14OC RRW=MAX REAL ROWSC RCL=MAX REAL COLSL:C RRW MUST BE 1 LARGER TO HANDLE 1ST 27 VARIABLES IN AVBLS#C VBLS AND TYPE DIMENSIONED RRW,RCL4C **************************************************4C * 00pXWVRTADATADATADATADATADATA *4C * SUBROUTINE ERRCX *4C * *4C **************************************************C CC;C THIS SUBROUTINE DOES INITIAL SYNTAX CHECKING ON THE INPUTD:C LINE. THE CHECKS MAKE SURE THAT PARENTHESES ARE BALANCED)C AND THAT THE EQUAL SIGN IS NOT MISUSED.=CLC CECHC RETCD MEANINGTCLC 1 NO ERRORS DETECTEDEC 2 ERROR FOUNDC7CCCLCRC MODIFICATION CLASSES: M1C CTCMCE1C ERRCX CALLS ERRMSG WHICH PRINTS ERROR MESSAGES.OCCC C C ERRCX IS CALLED BY CALCMC CICIC VARIABLE USECE8C ALPHA(27) HOLDS LEGAL VARIABLE NAMES: ALPHABETIC%C OR THE CHARACTER %.CC BLANK ' '8)C I,J HOLDS TEMPORARY VALUES.R@C LAST HOLDS A CODE WHEN LOOKING FOR ERRORS INVOLVING!C THE EQUAL SIGN.N7C LEND LAST NON-BLANK CHARACTER IN LINE(80).C LPAR '('IAC PARCNT 0 IF PARENTHESIS ENCOUNTERED BALANCE. INCREASED ?C BY 1 FOR EVERY LEFT PARENTHESIS, DECREASED BYI9C BY 1 FOR EVERY RIGHT PERENTHESIS FOUND.14C RETCD HOLDS RETURN CODE. 1=O.K. 2=ERRORC RPAR ')'AC CTCLC MODIFIED REASONICL;C 18-MAY-1981 WHEN CHECKING FOR BALANCED PARENTHESIS, DON'TS6C INCLUDE THOSE THAT ARE PRECEEDED BY A SINGLE QUOTEC (CODE AT DO 100) (PB)NCCTCRC SUBROUTINE ERRCX (RETCD) INTEGER*2 LEVEL,NONBLK,LEND$ INTEGER*2 RETCD,PARCNT,VIEWSW,BASED INTEGER*2 I,J,LAST)CC- LOGICAL*1 ALPHA(27),COMMA,BLANK,RPAR,LPAR,EQR LOGICAL*1 LINE(80)1 LOGICAL*1 QUOTE+ COMMON LEVEL,LINE,NONBLK,LEND,VIEWSW,BASEDI, COMMON /CONS/ALPHA,COMMA,BLANK,RPAR,LPAR,EQ DATA QUOTE/''''/RCICECU RETCD=1CS4C **************************************************4C ****** MAKE SURE PARENTHESIS ARE BALANCED ******4C **************************************************CR PARCNT=0R DO 100 I=NONBLK,LENDF IF (LINE(I).EQ.LPAR) GOTO 50I IF (LINE(I).EQ.RPAR) GOTO 80P GOTO 100OCT=C ENCOUNTERED A LEFT PARENTHESIS, COUNT IT ONLY IF PRECEEDINGT!C CHARACTER IS NOT A SINGLE QUOTES50 IF(I.EQ.NONBLK) GOTO 60 IF(LINE(I-1).EQ.QUOTE) GOTO 10060 PARCNT=PARCNT+1 GOTO 100SCW>C ENCOUNTERED A RIGHT PARENTHESIS, COUNT IT ONLY IF PRECEEDING!C CHARACTER IS NOT A SINGLE QUOTEO80 IF(I.EQ.NONBLK) GOTO 90 IF(LINE(I-1).EQ.QUOTE) GOTO 10090 PARCNT=PARCNT-1 IF(PARCNT.LT.0)GOTO 160 100 CONTINUECU IF (PARCNT.EQ.0) GOTO 200CCMC UNBALANCED PARENTHESIS I=6140 CALL ERRMSG(I) 150 RETCD=2  RETURN.C CM#C ILLEGAL EXPRESSION LIKE ')))X((('S160 I=8C GOTO 140SCTCCC CRC CPCE4C **************************************************4C ********* = SIGN SYNTAX CHECK ****************4C **************************************************CS 200 CONTINUECRCCC ALLOW A=B=C+27C MAY ONLY ASSIGN VALUES TO SINGLE UNSIGNED VARIABLES.IC ALSO CATCH =A C AND A==BKCR"C LAST = 0 FIRST CHAR OR FOUND =C 1 1 ALPHA CHARACTERC 2 MORE THAN 1 ALPHA ORAC ENCOUNTERED NON-ALPHAC (BUT NOT = OR BLANK)DCCNCS LAST=0 I=NONBLKN 271 CONTINUEC DO 270 I=NONBLK,LEND IF (LINE(I).EQ.BLANK) GOTO 2706 IF (LINE(I).EQ.EQ) GOTO 230COC0C LOOK FOR ALPHAPC DO 220 J=1,27 #C IF (LINE(I).EQ.ALPHA(J)) GOTO 240( C220 CONTINUEl/ CALL VARSCN(LINE,I,LEND,LSTCHR,ID1,ID2,IVALID)I IF(IVALID.EQ.0) GOTO 220) I=LSTCHR( IF(LSTCHR.LT.LEND)I=LSTCHR-1RFC IF WE GET A GOOD VARIABLE NAME POINT AT ITS END AND GO SAY WE'RE OK. GOTO 240E 220 CONTINUEC CL.C MORE THAN 1 ALPHA OR ENCOUNTERED NON-ALPHAC (BUT NOT = SIGN OR BLANK)( 225 LAST=2 GOTO 270OC(CTC = SIGN ENCOUNTERED230 IF (LAST.EQ.1) GOTO 235GC,C ILLEGAL USE OF = SIGN7 GOTO 2903C*C HAD 1 ALPHA CHARACTER FOLLOWED BY = SIGN 235 LAST=0 GOTO 270DCQ+C ENCOUNTERED A VARIABLE NAME (1 CHARACTER)0240 IF (LAST.EQ.2) GOTO 270 IF (LAST.EQ.1) GOTO 225CVC05C EXACTLY 1 ALPHA CHARACTER EITHER AS FIRST CHARACTER,6C 00xXyXWNW}ENCOUNTERED OR AS THE 1ST CHARACTER AFTER AN = SIGN. LAST=1 270 CONTINUE I=I+1 IF(I.LE.LEND) GOTO 271ODC *****&&&&& SIMULATE DO LOOP TO ALLOW MONKEYING WITH INDEX INSIDE.CCLCVC0CRC*4C <<<<<<<<<<<< ADD ADDITIONAL CHECKS HERE >>>>>>>>>>CF RETURN CECRC ILLEGAL USE OF = SIGNB290 I=17 GO TO 140 END SUBROUTINE ERRMSG (MSG)#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY. INCLUDE 'VKLUGPRM.FTN' PARAMETER CUP=1C PARAMETER RRW = 32C PARAMETER RCL = 32C RRW=MAX REAL ROWSC RCL=MAX REAL COLS:C RRW MUST BE 1 LARGER TO HANDLE 1ST 27 VARIABLES IN AVBLS#C VBLS AND TYPE DIMENSIONED RRW,RCL4C **************************************************4C * *4C * SUBROUTINE ERRMSG(MSG) *4C * *4C **************************************************CC8C PRINTS OUT ERROR MESSAGES AS REQUESTED BY CODE IN MSG.CCCCC-C ERRMSG IS CALLED BY THE FOLLOWING ROUTINES:CC ATC BASCNGC CALBINC CALCC CALUNC CMNDC CONTYPC DECLRC ERRCXC INPOSTC MULADDC MULDIVC MULMULC NEXTELC POSTVLC VAROUTC ZNEGCCCCCCC MODIFICATION CLASSES: M1CCCC VARIABLE USEC@C I TEMPORARY VARIABLE TO AVOID SIDE-EFFECT WITH CALLS3C THAT USE A CONSTANT FOR THE ARGUMENT.!C MSG ERROR MESSAGE CODE.CCC(C NOTE: USE CODE 25 FOR UNKNOWN CAUSES.CCCC SUBROUTINE ERRMSG (MSG)C INTEGER*2 MSG,IC CALL UVT100(CUP,1,10) WRITE(1,9999) 9999 FORMAT(' *** ERROR *** ',$)A GOTO (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21),MSG I=MSG-21 GOTO (22,23,24,25,26,27), I GO TO 25CCCCCC1 WRITE (1,100) GO TO 992 WRITE (1,200) GO TO 993 WRITE (1,300) GO TO 994 WRITE (1,400) GO TO 995 WRITE (1,500) GO TO 996 WRITE (1,600) GO TO 997 WRITE (1,700) GO TO 998 WRITE (1,800) GO TO 999 WRITE (1,900) GO TO 9910 WRITE(1,1000) GO TO 9911 WRITE(1,1100) GO TO 9912 WRITE(1,1200) GO TO 9913 WRITE(1,1300) GO TO 9914 WRITE(1,1400) GO TO 9915 WRITE (1,1500) GO TO 9916 WRITE (1,1600) GO TO 9917 WRITE (1,1700) GO TO 9918 WRITE (1,1800) GO TO 9919 WRITE (1,1900) GO TO 9920 WRITE (1,2000) GO TO 9921 WRITE (1,2100) GO TO 9922 WRITE (1,2200) GO TO 9923 WRITE (1,2300) GO TO 9924 WRITE (1,2400) GO TO 9925 WRITE (1,2500) GO TO 9926 WRITE(1,2600) GOTO 9927 WRITE(1,2700)CC 99 RETURNCC*100 FORMAT ('+FIRST CHARACTER IS ILLEGAL')-200 FORMAT ('+TOO MANY INDIRECT FILE LEVELS')$300 FORMAT ('+UNIDENTIFIED COMMAND')?400 FORMAT ('+ILLEGAL CHARACTER IN DECLARATION VARIABLES LIST')@500 FORMAT ('+VARIABLES IN DECLARATION NOT SEPARATED BY COMMAS')&600 FORMAT ('+UNBALANCED PARENTHESIS') 700 FORMAT ('+STACK 1 OVERFLOW')"800 FORMAT ('+ILLEGAL EXPRESSION') 900 FORMAT ('+STACK 2 OVERFLOW');1000 FORMAT ('+FUNCTION IS ILLEGAL FOR INTEGRAL (BASE 10,', ; ' 8, AND 16) ARGUMENTS')@1100 FORMAT ('+ILLEGAL FUNCTION FOR MULTIPLE PRECISION NUMBERS')81200 FORMAT ('+FUNCTION IS ILLEGAL WITH ASCII ARGUMENT')A1300 FORMAT ('+FUNCTION IS ILLEGAL WITH REAL (DECIMAL) ARGUMENT')21400 FORMAT ('+SQUARE ROOT HAS NEGATIVE ARGUMENT')B1500 FORMAT ('+MULTIPLE PRECISION EXPONENTIATION, NEGATIVE POWER')#1600 FORMAT ('+VARIABLE UNDEFINED')&1700 FORMAT ('+ILLEGAL USE OF = SIGN')%1800 FORMAT ('+UNIDENTIFIED FUNTION')+1900 FORMAT ('+ILLEGAL BASE SPECIFICATION')"2000 FORMAT ('+ILLEGAL CHARACTER')02100 FORMAT ('+. MAY ONLY BE USED WITH BASE 10')?2200 FORMAT ('+MULTIPLE PRECISION LIMIT OF 99 DIGITS EXCEEDED')*2300 FORMAT ('+ATTEMPT TO DIVIDE BY ZERO00XXVRTADATADATADATADATADATA')62400 FORMAT ('+ILLEGAL REAL EXPONENT FIELD SPECIFIED')'2500 FORMAT('+NOTIFY PETER BAUM X7751'),2600 FORMAT('+ILLEGAL CONVERSION ATTEMPTED')2700 FORMAT('+READ ERROR')CC  ENDN; ****************************************************************************;IA; PDP-11 FORTRAN-77 V4.1 STANDARD OTS ODL FILE FOR RSX-11M/M-PLUST;TN; **************************************************************************** ; VERSION: 7;+>; THIS FILE IS USED TO BUILD AN OVERLAID FORTRAN OTS THAT USES; FCS-11 FOR I/O SUPPORT; %; THIS FILE IS USED ON RSX-11M/M-PLUSR;CE; THIS FILE BUILDS A 6000 WORD OVERLAY STRUCTURE USING THE FOLLOWING: /; * NO FCS-11 RESIDENT LIBRARY (SEE STEP 7) .; * LONG ERROR MESSAGE TEXT (SEE STEP 3.1); * NO ANSI MAGTAPE SUPPORT J; THIS SIZE DOES NOT INCLUDE THE OTS OR FCS IMPURE STORAGE OR I/O BUFFERS.; O; THIS FILE USES THE LONG ERROR MESSAGE TEXT MODULE; USING THE NULL TEXT MODULEM>; REDUCES THE SIZE BY APPROXIMATELY 1100 WORDS (SEE STEP 3.1).;BC; THIS FILE ASSUMES THAT THE PDP-11 FORTRAN-77 OTS IS CONTAINED IN:; LB:[1,1]F77OTS.OLB;(; SAMPLE USE OF THIS FILE IS AS FOLLOWS:;; 1. CREATE THE OVERLAY DESCRIPTION FILE FOR YOUR PROGRAM. *; 2. ADD THE TWO REQUIRED OTS REFERENCES:; "OTSROT" TO THE ROOT,; "OTSALL" AS A CO-TREED; 3. EDIT THIS FILE AS NECESSARY TO REMOVE UNNEEDED OTS MODULES, OR); TO USE THE FCS-11 RESIDENT LIBRARY. :; 4. REFERENCE THIS FILE IN YOUR ODL AS AN INDIRECT FILE.;A; EXAMPLE USER ODL FOR A SIMPLE PROGRAM CONTAINING A MAIN PROGRAM*&; AND THREE OVERLAYS, PRE, PROC, POST:; $; .ROOT MAIN-OTSROT-*(A,B,C),OTSALL; A: .FCTR PRE; B: .FCTR PROCI; C: .FCTR POST; @LB:[1,1]FCS11M; .END1;0@; TO CUSTOMIZE THIS STANDARD ODL FILE, DELETE THOSE MODULES THAT<; SUPPORT FUNCTIONS THAT ARE NOT REQUIRED. THIS IS DONE BY4; DELETING LIBRARY EXTRACT REFERENCES TO THE MODULE:; FOR EXAMPLE:A; TO DELETE SUPPORT FOR THE OPEN STATEMENT, MODULE $OPNSTM IS1(; ELIMINATED FROM THE FACTOR OTSOP1:0; OTSOP1: .FCTR LB:[1,1]F4POTS/LB:$OPEN:$OPNSTM ; BECOMESE(; OTSOP1: .FCTR LB:[1,1]F4POTS/LB:$OPEN;5E; IF ANY FACTOR IS COMPLETELY ELIMINATED, THEN THE REFERENCING FACTORG?; MUST BE EDITED TO ELIMINATE THE REFERENCE OR UNDEFINED MODULE /; ERRORS WILL BE GENERATED BY THE TASK BUILDER.(;1C; ANY MODULE NAME THAT IS NOT LISTED AS AN OPTION MUST BE INCLUDED.; 0; WITHIN THIS ODL FILE, FACTORS MAY BE COMBINED.;5;-;GN; ****************************************************************************; STEP 1 OTSROT+; ********************; THE FACTOR "OTSROT" :; MUST BE INCLUDED IN THE ROOT SEGMENT OF YOUR PROGRAM ODLN; ****************************************************************************;T$OTSROT: .FCTR LB:[1,1]F77OTS/LB:$OTVN; ****************************************************************************; STEP 2 OTSALLM; ********************; THE FACTOR "OTSALL" 3; MUST BE INCLUDED AS A CO-TREE IN YOUR PROGRAM ODLIN; ****************************************************************************;T .NAME OTSOTSALL: .FCTR OTS-OTSCM0,OTSFRTRN; ****************************************************************************; STEP 3 OTSCOMI; ********************E; THE FACTOR "OTSCOM" DECLARES MODULES WHICH MUST BE ALWAYS RESIDENT.R;SN; ****************************************************************************;R .NAME OTSCOMUAOTSCM0: .FCTR OTSCOM-OTSCM1-OTSCM2-OTSCM3-*(OTSIO0,OTSMS0,OTSMT0) HOTSCM1: .FCTR LB:[1,1]F77OTS/LB:$ERRPT:$ERRLO:$ERRMO:$FPERR:$R50:$FPPUTI2OTSCM2: .FCTR LB:[1,1]F77OTS/LB:$NAM:$SAVRG:$CHASNN; ****************************************************************************$; STEP 3.1 SELECT ERROR MESSAGE TEXT; **************>; 00XyXWNW}IF THE LONG MESSAGE TEXT IS DESIRED, INCLUDE THE FIRST LINE.?; IF THE NULL MESSAGE TEXT IS DESIRED, INCLUDE THE SECOND LINE.E;R';OTSCM3: .FCTR LB:[1,1]F77OTS/LB:$ERTXTN&OTSCM3: .FCTR LB:[1,1]F77OTS/LB:$SHORTN; ****************************************************************************%; STEP 4 SELECT I/O STATEMENT SUPPORT2; **************;A .NAME OTSIO9OTSIO0: .FCTR OTSIO-OTSIO1-OTSIO2-OTSIO3-*(OTSOP0,OTSRW0)L.OTSIO1: .FCTR LB:[1,1]F77OTS/LB:$FCHNL:$INITION; ****************************************************************************$; STEP 4-1 SEQUENTIAL I/O STATEMENTS; **************;PB; SELECT FROM THE FOLLOWING FACTOR THOSE SEQUENTIAL I/O STATEMENTS; THAT ARE REQUIRED:$; $ISF - SEQUENTIAL FORMATTED INPUT&; $ISU - SEQUENTIAL UNFORMATTED INPUT(; $ISL - SEQUENTIAL LIST-DIRECTED INPUT%; $OSF - SEQUENTIAL FORMATTED OUTPUT '; $OSU - SEQUENTIAL UNFORMATTED OUTPUTA); $OSL - SEQUENTIAL LIST-DIRECTED OUTPUT5; $ENDF - ENDFILE STATEMENT7; $ENCDEC - ENCODE/DECODE AND INTERNAL FILE STATEMENTSH;S7OTSIO2: .FCTR LB:[1,1]F77OTS/LB:$ISF:$OSF:$ENDF:$ENCDECIN; **************************************************************************** ; STEP 4-2 DIRECT I/O STATEMENTS; **************;<>; SELECT FROM THE FOLLOWING FACTOR THOSE DIRECT I/O STATEMENTS; THAT ARE REQUIRED: ; $IRF - DIRECT FORMATTED INPUT"; $IRU - DIRECT UNFORMATTED INPUT!; $ORF - DIRECT FORMATTED OUTPUTW#; $ORU - DIRECT UNFORMATTED OUTPUTB)OTSIO3: .FCTR LB:[1,1]F77OTS/LB:$IRU:$ORUUN; ****************************************************************************); STEP 4-3 SELECT FILE OPEN/CLOSE SUPPORTI; **************;T#; SELECT FILE MAINPULATION SUPPORT:(; $OPNSTM - OPEN STATEMENT,; $CLSSTM - CLOSE STATEMENT#; $ASSIGN - CALL ASSIGN SUBROUTINE "; $CLSCAL - CALL CLOSE SUBROUTINE#; $FDBSET - CALL FDBSET SUBROUTINE); $DEFF - DEFINEFILE AND FIND STATEMENTSD;ON; ****************************************************************************;1 .NAME OTSOPNC,OTSOP0: .FCTR OTSOPN-OTSOP1-*(OTSOP2,OTSOP3)-OTSOP1: .FCTR LB:[1,1]F77OTS/LB:$OPEN:$OPNSTM .OTSOP2: .FCTR LB:[1,1]F77OTS/LB:$FNBST:$ASSIGN<OTSOP3: .FCTR LB:[1,1]F77OTS/LB:$CLOSE:$CLSSTM:$CLSCAL:$DEFFN; ****************************************************************************.; STEP 4-4 SELECT READ/WRITE STATEMENT SUPPORT; **************;)'; SELECT ALL MODULES THAT ARE REQUIRED:C;D$; SELECT FORMAT CONVERSION ROUTINES:&; $CONVR - D,E,F,G FORMAT CONVERSIONS; $CONVI - I FORMAT CONVERSION ; $CONVL - L FORMAT CONVERSIONS"; $CONVZ - O,Z FORMAT CONVERSIONS;L$; SELECT FORMAT PROCESSING ROUTINES:"; $FIO - FORMATTED I/O PROCESSING); $LSTI - LIST-DIRECTED INPUT PROCESSING*; $LSTO - LIST-DIRECTED OUTPUT PROCESSING;N ; SELECT I/O PROCESSING SUPPORT:; $GETS - SEQUENTIAL INPUT ; $PUTS - SEQUENTIAL OUTPUT; $GETR - DIRECT INPUT ; $PUTR - DIRECT OUTPUT"; $CKRCN - DIRECT INPUT OR OUTPUT;A&; SELECT OPTIONAL I/O SUPPORT MODULES:-; $IOARY - TRANSMIT ENTIRE ARRAY IN I/O LIST16; $IOVARY - TRANSMIT ENTIRE VIRTUAL ARRAY IN I/O LIST'; $FMTCV - RUN-TIME FORMAT CONVERSIONSR; $REWIND - REWIND STATEMENT ; $BACKSP - BACKSPACE STATEMENT;TN; ****************************************************************************;U .NAME OTSRW .PSECT $$FIOC,GBL,RO,I,CONI .PSECT $$FIOD,GBL,RO,D,CONRCOTSRW0: .FCTR OTSRW-LB:[1,1]F77OTS/LB:$IOARY:$IOELEM:$IOVARY-OTSRW1S+OTSRW1: .FCTR OTSCNV-OTSGP-*(OTSFIO,OTSMIO)I2OTSFIO: .FCTR LB:[1,1]F77OTS/LB:$FIO-$$FIOC-$$FIOD>OTSMIO: .FCTR LB:[1,1]F77OTS/LB:$FMTCV:$FCSRMS:$REWIND:$BACKSP;OTSCNV: .FCTR LB:[1,1]F77OTS/LB:$CONVR:$CONVI:$CONVL:$CONVZ=OTSGP: .FCTR LB:[1,1]F77OTS/LB:$GETS:$PUTS:$GETR:$PUTR:$CKRCN1N; ****************************************************************************?; STEP 5 SELECT MATH LIBRARY AND COMPILED-CODE SUPPORT ROUTINES ; **************;T,; SELECT THOSE FUNCTIONS WHICH ARE REQUIRED.;; NOTE THAT THE FUNCTIONS IN SEGMENT OTSMTH ARE CALLED FROMF3; MANY OF THE OTHER FUNCTIONS IN THE OTHER SEGMENTS ; 8; MATH FUNCTIONS MAR00XXVRTADATADATADATADATADATAKED: (INLINE) ARE NORMALLY PERFORMED/; INLINE AND NO EXTERNAL REFERENCE IS REQUIRED.D;K8; SOME MATH FUNCTIONS CONTAIN BOTH THE SINGLE AND DOUBLE3; PRECISION VERSIONS IN A SINGLE MODULE (EG. $EXP). 8; THESE ARE LISTED UNDER THE SINGLE PRECISION FUNCTIONS.;.; **************+; CHARACTER COMPILED CODE SUPPORT ROUTINES:V; $CHCMP - CHARACTER COMPARISONT2; $LGE - LEXICAL GREATER THAN OR EQUAL TO (INLINE)&; $LGT - LEXICAL GREATER THAN (INLINE)/; $LLE - LEXICAL LESS THAN OR EQUAL TO (INLINE)M#; $LLT - LEXICAL LESS THAN (INLINE);; **************; INTEGER*2 FUNCTIONS:+; $IABS - INTEGER*2 ABSOLUTE VALUE (INLINE)>; $ICHAR - CONVERT A SINGLE CHARACTER INTO AN INTEGER (INLINE)7; $INDEX - FIND THE OFFSET INTO A STRING OF A SUBSTRING/; $LEN - LENGTH OF A CHARACTER ELEMENT (INLINE)6; $IFIX - REAL/DOUBLE TO INTEGER*2 CONVERSION (INLINE)-; $MAX0 - INTEGER*2 MAX OF INTEGER*2 (INLINE)-; $MIN0 - INTEGER*2 MIN OF INTEGER*2 (INLINE)(; $NINT - NEAREST INTEGER OF REAL/DOUBLE; $MOD - INTEGER*2 MOD (INLINE)K"; $ISIGN - INTEGER*2 SIGN TRANSFER; $IDIM - INTEGER*2 DIM ; $IAND - INTEGER*2 AND (INLINE); $IOR - INTEGER*2 OR (INLINE)); $IEOR - INTEGER*2 EXCLUSIVE OR (INLINE) ; $INOT - INTEGER*2 NOT (INLINE); $ISHFT - INTEGER*2 SHIFT"; $PWII - INTEGER*2 EXPONENTIATION;; **************; INTEGER*4 FUNCTIONS:+; $JABS - INTEGER*4 ABSOLUTE VALUE (INLINE)7; $I4FIX - REAL/DOUBLE TO INTEGER*4 CONVERSION (INLINE)-; $JMIX - REAL/INTEGER*4 MAX/MIN OF INTEGER*4-; $RJMIX - INTEGER*4 MAX/MIN OF REAL (INLINE)S; $JMOD - INTEGER*4 MODC"; $JSIGN - INTEGER*4 SIGN TRANSFER; $JDIM - INTEGER*4 DIM2 ; $JAND - INTEGER*4 AND (INLINE); $JOR - INTEGER*4 OR (INLINE)); $JEOR - INTEGER*4 EXCLUSIVE OR (INLINE)9 ; $JNOT - INTEGER*4 NOT (INLINE); $JSHFT - INTEGER*4 SHIFT!; $MLJ - INTEGER*4 MULTIPLICATIOND; $DVJ - INTEGER*4 DIVISION("; $PWJJ - INTEGER*4 EXPONENTIATION;D; **************; REAL*4 FUNCTIONS:I%; $ABS - REAL ABSOLUTE VALUE (INLINE)A ; $EXP - REAL/DOUBLE EXPONENTIAL'; $ALOG - REAL NATURAL/COMMON LOGARITHM0; $SIN - REAL SINE/COSINEN!; $SQRT - REAL/DOUBLE SQUARE ROOTA; $TAN - REAL TANGENTS; $ACOS - REAL ARC COSINED; $ASIN - REAL ARC SINE(; $ATAN - REAL ARC TANGENT ; $COSH - REAL HYPERBOLIC COSINE; $SINH - REAL HYPERBOLIC SINE!; $TANH - REAL HYPERBOLIC TANGENT.-; $AMIX0 - REAL MAX/MIN OF INTEGER*2 (INLINE)S2; $AMIX1 - REAL/INTEGER*2 MAX/MIN OF REAL (INLINE)5; $ANINT - REAL/DOUBLE NEAREST INTEGER OF REAL/DOUBLET!; $AINT - REAL TO REAL TRUNCATION); $AMOD - REAL MOD; $DIM - REAL DIM,; $SNGL - DOUBLE TO REAL CONVERSION (INLINE); $SIGN - REAL SIGN TRANSFER0; $FLOAT - INTEGER*2 TO REAL CONVERSION (INLINE)5; $FLOTJ - INTEGER TO REAL/DOUBLE CONVERSION (INLINE) ; $PWRI - REAL/DOUBLE ** INTEGER; $PWRR - REAL ** REAL;S; **************; REAL*8 FUNCTIONS:0(; $DABS - DOUBLE ABSOLUTE VALUE (INLINE)); $DLOG - DOUBLE NATURAL/COMMON LOGARITHM; $DSIN - DOUBLE SINE/COSINE; $DTAN - DOUBLE TANGENT; $DACOS - DOUBLE ARC COSINE; $DASIN - DOUBLE ARC SINE; $DATAN - DOUBLE ARC TANGENT #; $DCOSH - DOUBLE HYPERBOLIC COSINED!; $DSINH - DOUBLE HYPERBOLIC SINEM$; $DTANH - DOUBLE HYPERBOLIC TANGENT,; $DMIX1 - DOUBLE MAX/MIN OF DOUBLE (INLINE)%; $DINT - DOUBLE TO DOUBLE TRUNCATION1; $DMOD - DOUBLE MOD; $DDIM - DOUBLE DIM,; $DBLE - REAL TO DOUBLE CONVERSION (INLINE); $DSIGN - DOUBLE SIGN TRANSFERB$; $DPROD - DOUBLE PRODUCT OF 2 REALS$; $PWDD - REAL/DOUBLE ** REAL/DOUBLE;H; **************; COMPLEX FUNCTIONS: ; $CABS - COMPLEX ABSOLUTE VALUE; $CEXP - COMPLEX EXPONENTIALR; $CLOG - COMPLEX LOGARITHMG; $CSIN - COMPLEX SINE/COSINEE; $CSQRT - COMPLEX SQUARE ROOT-; $REAL - COMPLEX TO REAL CONVERSION (INLINE)=/; $AIMAG - COMPLEX IMAGINARY TO REAL CONVERSIONI%; $CMPLX - REAL TO COMPLEX CONVERSIONR; $CONJG - COMPLEX CONJUGATE; $ADC - COMPLEX ADD/SUBTRACT ; $MLC - COMPLEX MULTIPLICATION; $DVC - COMPLEX DIVISION(; $CMC - COMPLEX COMPARE; $TSC - COMPLEX TEST FOR ZERO; $NGC - COMPLEX NEGATEW; $PWCI - COMPLEX ** INTEGER; $PWCC - COMPLEX ** COM00XyXWNW}PLEX;EN; ****************************************************************************; .NAME OTSMTHO/OTSMT0: .FCTR OTSMTC-*(OTSMA,OTSMB,OTSMC,OTSMD)SIOTSMTC: .FCTR OTSMTH-LB:[1,1]F77OTS/LB:$EXP:$SQRT:$ALOG:$ATAN:$SIN:$SWPXY ; ********************C; STEP 5-1 OTSMRI INTEGER*2, REAL*4 AND CHARACTER SUPPORT FUNCTIONSA; ********************;E .NAME OTSMRII=OTSMA: .FCTR OTSMRI-OTSM1A-OTSM1B-OTSM1C-OTSM1D-OTSM1E-OTSM1F+DOTSM1A: .FCTR LB:[1,1]F77OTS/LB:$ABS:$ACOS:$AINT:$AMOD:$AMIX0:$AMIX1KOTSM1B: .FCTR LB:[1,1]F77OTS/LB:$ASIN:$ANINT:$FLOAT:$FLOTJ:$TAN:$PWRI:$PWRRBOTSM1C: .FCTR LB:[1,1]F77OTS/LB:$SINH:$TANH:$COSH:$SIGN:$SNGL:$DIMMOTSM1D: .FCTR LB:[1,1]F77OTS/LB:$IABS:$IAND:$IEOR:$IOR:$INOT:$MAX0:$MIN0:$MODIEOTSM1E: .FCTR LB:[1,1]F77OTS/LB:$ISHFT:$ISIGN:$IFIX:$NINT:$IDIM:$PWIIT-OTSM1F: .FCTR LB:[1,1]F77OTS/LB:$INDEX:$CHCMPA; ********************"; STEP 5-2 OTSMDP REAL*8 FUNCTIONS; ********************;O .NAME OTSMDP (OTSMB: .FCTR OTSMDP-OTSM2A-OTSM2B-OTSM2CMOTSM2A: .FCTR LB:[1,1]F77OTS/LB:$DABS:$DACOS:$DASIN:$DATAN:$DSIN:$DMOD:$DMIX1LHOTSM2B: .FCTR LB:[1,1]F77OTS/LB:$DDIM:$DSINH:$DCOSH:$DTANH:$DPROD:$DSIGN=OTSM2C: .FCTR LB:[1,1]F77OTS/LB:$DINT:$DBLE:$DTAN:$DLOG:$PWDD,; ********************%; STEP 5-3 OTSMI4 INTEGER*4 FUNCTIONSG; ********************;L .NAME OTSMI4!OTSMC: .FCTR OTSMI4-OTSM3A-OTSM3BBNOTSM3A: .FCTR LB:[1,1]F77OTS/LB:$JABS:$JAND:$JEOR:$JOR:$JNOT:$JMIX:$JMOD:$PWJJKOTSM3B: .FCTR LB:[1,1]F77OTS/LB:$JSHFT:$JSIGN:$I4FIX:$JDIM:$RJMIX:$MLJ:$DVJ,; ********************#; STEP 5-4 OTSMCX COMPLEX FUNCTIONSO; ********************;, .NAME OTSMCX1(OTSMD: .FCTR OTSMCX-OTSM4A-OTSM4B-OTSM4C@OTSM4A: .FCTR LB:[1,1]F77OTS/LB:$AIMAG:$REAL:$CMPLX:$CONJG:$CABSKOTSM4B: .FCTR LB:[1,1]F77OTS/LB:$FCALL:$CSIN:$CSQRT:$CEXP:$CLOG:$PWCJ:$PWCCI=OTSM4C: .FCTR LB:[1,1]F77OTS/LB:$ADC:$MLC:$DVC:$TSC:$CMC:$NGCLN; ****************************************************************************F; STEP 6 SELECT MISCELLANEOUS SUPPORT FUNCTIONS AND SYSTEM SUBROUTINES; **************;"; SELECT EACH SEGMENT AS REQUIRED,7; OTHERWISE DELETE ENTIRE LIBRARY REFERENCE FROM FACTOR1;19; $ARYCK - ARRAY SUBSCRIPT CHECKING (/CK COMPILER SWITCH)N*; $MADB1 - ONE-DIMENSION ADJUSTABLE ARRAYS*; $MADB2 - TWO-DIMENSION ADJUSTABLE ARRAYS,; $MADBN - MULTI-DIMENSION ADJUSTABLE ARRAYS!; $STPPAU - STOP/PAUSE STATEMENTSC ; $CGO - COMPUTED GOTO STATEMENT ; $AGO - ASSIGNED GOTO STATEMENT; $EXIT - CALL EXIT SUBROUTINE;NN; ****************************************************************************;F:OTSMS0: .FCTR *(OTSMS1,OTSMS2,OTSMS3,OTSMS4,OTSMS5,OTSMS6); ********************-; STEP 6-1 OTSINI OTS INITIALIZATION ROUTINES); ********************;A .NAME OTSINID"OTSMS1: .FCTR OTSINI-OTSIN1-OTSIN29OTSIN1: .FCTR LB:[1,1]F77OTS/LB:$OTI:$VINIT:$STPPAU:$EXIT]EOTSIN2: .FCTR LB:[1,1]F77OTS/LB:$MADB1:$MADB2:$MADBN:$AGO:$CGO:$ARYCKR; ********************'; STEP 6-2 OTSVRT VIRTUAL ARRAY SUPPORT ; ********************;: .NAME OTSVRTT3OTSMS2: .FCTR OTSVRT-LB:[1,1]F77OTS/LB:$VIRT:$MADBVI; ********************'; STEP 6-3 OTSR50 RADIX-50 CONVERSIONSA; ********************; .NAME OTSR50=DOTSMS3: .FCTR OTSR50-LB:[1,1]F77OTS/LB:$R50WD:$R50ASC:$IRAD50:$RAD50; ********************,; STEP 6-4 OTSERR ERROR CONTROL SUBROUTINES; ********************;B .NAME OTSERREFOTSMS4: .FCTR OTSERR-LB:[1,1]F77OTS/LB:$ERRSET:$ERRSNS:$ERRTST:$USEREX; ********************$; STEP 6-5 OTSTIM DATE/TIME ROUTINES; ********************;T .NAME OTSTIM AOTSMS5: .FCTR OTSTIM-LB:[1,1]F77OTS/LB:$DATE:$TIME:$SECNDS:$IDATET; ********************); STEP 6-6 OTSRAN RANDOM NUMBER GENERATORT; ********************;R .NAME OTSRAN:OTSMS6: .FCTR OTSRAN-LB:[1,1]F77OTS/LB:$RAN:$RANDU:$RANDOMN; ****************************************************************************; STEP 7 SELECT FCS MODULES; **************;D?; IF AN FCS RESIDENT LIBRARY IS IN USE, SELECT THE FIRST FACTORNG; IF AN FCS RESIDENT LIBRARY IN NOT AVAILABLE, SELECT THE SECOND FACTORL;EN; ********00XXVRTADATADATADATADATADATA********************************************************************;4;OTSFRT: .FCTR OTSFCS.,OTSFRT: .FCTR OTSFCS-*(OTSFOP,OTSFSQ,OTSFDA) .NAME OTSFCS %OTSFCM: .FCTR LB:[1,1]SYSLIB/LB:SAVR11)OTSFOP: .FCTR OTSFO1,OTSFO2,OTSFO3,OTSFO4.+OTSFO1: .FCTR LB:[1,1]SYSLIB/LB:.CSI1:.CSI2%OTSFO2: .FCTR LB:[1,1]SYSLIB/LB:PARSEI+OTSFO3: .FCTR LB:[1,1]SYSLIB/LB:OPFNB:FINITO?OTSFO4: .FCTR LB:[1,1]SYSLIB/LB:CLOSE:DLFNB:$PRINT:GETDID:MRKDL(2OTSFSQ: .FCTR LB:[1,1]SYSLIB/LB:GETSQ:PUTSQ:PNTMRK.OTSFDA: .FCTR LB:[1,1]SYSLIB/LB:GET:PUT:POSRECN; ****************************************************************************N; ****************************************************************************;A; PDP-11 FORTRAN-77 V4.1 STANDARD OTS ODL FILE FOR RSX-11M/M-PLUS;;N.B.(; Fix up refs to explicit devices!!!!!!!<; DRC0:, DRC4: and the like are probably going to need to be#; changed in your configuration!!!;N; **************************************************************************** ; VERSION: 7;+>; THIS FILE IS USED TO BUILD AN OVERLAID FORTRAN OTS THAT USES; FCS-11 FOR I/O SUPPORT;%; THIS FILE IS USED ON RSX-11M/M-PLUS;E; THIS FILE BUILDS A 6000 WORD OVERLAY STRUCTURE USING THE FOLLOWING:/; * NO FCS-11 RESIDENT LIBRARY (SEE STEP 7).; * LONG ERROR MESSAGE TEXT (SEE STEP 3.1); * NO ANSI MAGTAPE SUPPORTJ; THIS SIZE DOES NOT INCLUDE THE OTS OR FCS IMPURE STORAGE OR I/O BUFFERS.;O; THIS FILE USES THE LONG ERROR MESSAGE TEXT MODULE; USING THE NULL TEXT MODULE>; REDUCES THE SIZE BY APPROXIMATELY 1100 WORDS (SEE STEP 3.1).;C; THIS FILE ASSUMES THAT THE PDP-11 FORTRAN-77 OTS IS CONTAINED IN:; LB:[1,1]F77OTS.OLB;(; SAMPLE USE OF THIS FILE IS AS FOLLOWS:;; 1. CREATE THE OVERLAY DESCRIPTION FILE FOR YOUR PROGRAM.*; 2. ADD THE TWO REQUIRED OTS REFERENCES:; "OTSROT" TO THE ROOT,; "OTSALL" AS A CO-TREED; 3. EDIT THIS FILE AS NECESSARY TO REMOVE UNNEEDED OTS MODULES, OR); TO USE THE FCS-11 RESIDENT LIBRARY.:; 4. REFERENCE THIS FILE IN YOUR ODL AS AN INDIRECT FILE.;A; EXAMPLE USER ODL FOR A SIMPLE PROGRAM CONTAINING A MAIN PROGRAM&; AND THREE OVERLAYS, PRE, PROC, POST:; $; .ROOT MAIN-OTSROT-*(A,B,C),OTSALL; A: .FCTR PRE; B: .FCTR PROC; C: .FCTR POST; @LB:[1,1]FCS11M; .END;@; TO CUSTOMIZE THIS STANDARD ODL FILE, DELETE THOSE MODULES THAT<; SUPPORT FUNCTIONS THAT ARE NOT REQUIRED. THIS IS DONE BY4; DELETING LIBRARY EXTRACT REFERENCES TO THE MODULE:; FOR EXAMPLE:A; TO DELETE SUPPORT FOR THE OPEN STATEMENT, MODULE $OPNSTM IS(; ELIMINATED FROM THE FACTOR OTSOP1:0; OTSOP1: .FCTR LB:[1,1]F4POTS/LB:$OPEN:$OPNSTM ; BECOMES(; OTSOP1: .FCTR LB:[1,1]F4POTS/LB:$OPEN;E; IF ANY FACTOR IS COMPLETELY ELIMINATED, THEN THE REFERENCING FACTOR?; MUST BE EDITED TO ELIMINATE THE REFERENCE OR UNDEFINED MODULE/; ERRORS WILL BE GENERATED BY THE TASK BUILDER.;C; ANY MODULE NAME THAT IS NOT LISTED AS AN OPTION MUST BE INCLUDED.;0; WITHIN THIS ODL FILE, FACTORS MAY BE COMBINED.;;-;N; ****************************************************************************; STEP 1 OTSROT; ********************; THE FACTOR "OTSROT":; MUST BE INCLUDED IN THE ROOT SEGMENT OF YOUR PROGRAM ODLN; ****************************************************************************;$OTSROT: .FCTR LB:[1,1]F77OTS/LB:$OTVN; ****************************************************************************; STEP 2 OTSALL; ********************; THE FACTOR "OTSALL"3; MUST BE INCLUDED AS A CO-TREE IN YOUR PROGRAM ODLN; ****************************************************************************; .NAME OTSOT00XyXWNW}SALL: .FCTR OTS-OTSCM0,OTSFRTN; ****************************************************************************; STEP 3 OTSCOM; ********************E; THE FACTOR "OTSCOM" DECLARES MODULES WHICH MUST BE ALWAYS RESIDENT.;N; ****************************************************************************; .NAME OTSCOMGOTSCM0: .FCTR OTSCOM-OTSCX-OTSCM1-OTSCM2-OTSCM3-*(OTSIO0,OTSMS0,OTSMT0)OTSCX: .FCTR DRC4:[1,1]F4PNER@OTSCM1:.FCTR LB:[1,1]F77OTS/LB:$ERRPT:$ERRMO:$FPERR:$R50:$FPPUTI2OTSCM2: .FCTR LB:[1,1]F77OTS/LB:$NAM:$SAVRG:$CHASNN; ****************************************************************************$; STEP 3.1 SELECT ERROR MESSAGE TEXT; **************>; IF THE LONG MESSAGE TEXT IS DESIRED, INCLUDE THE FIRST LINE.?; IF THE NULL MESSAGE TEXT IS DESIRED, INCLUDE THE SECOND LINE.;';OTSCM3: .FCTR LB:[1,1]F77OTS/LB:$ERTXT&OTSCM3: .FCTR LB:[1,1]F77OTS/LB:$SHORTN; ****************************************************************************%; STEP 4 SELECT I/O STATEMENT SUPPORT; **************; .NAME OTSIO9OTSIO0: .FCTR OTSIO-OTSIO1-OTSIO2-OTSIO3-*(OTSOP0,OTSRW0).OTSIO1: .FCTR LB:[1,1]F77OTS/LB:$FCHNL:$INITION; ****************************************************************************$; STEP 4-1 SEQUENTIAL I/O STATEMENTS; **************;B; SELECT FROM THE FOLLOWING FACTOR THOSE SEQUENTIAL I/O STATEMENTS; THAT ARE REQUIRED:$; $ISF - SEQUENTIAL FORMATTED INPUT&; $ISU - SEQUENTIAL UNFORMATTED INPUT(; $ISL - SEQUENTIAL LIST-DIRECTED INPUT%; $OSF - SEQUENTIAL FORMATTED OUTPUT'; $OSU - SEQUENTIAL UNFORMATTED OUTPUT); $OSL - SEQUENTIAL LIST-DIRECTED OUTPUT; $ENDF - ENDFILE STATEMENT7; $ENCDEC - ENCODE/DECODE AND INTERNAL FILE STATEMENTS;7OTSIO2: .FCTR LB:[1,1]F77OTS/LB:$ISF:$OSF:$ENDF:$ENCDECN; **************************************************************************** ; STEP 4-2 DIRECT I/O STATEMENTS; **************;>; SELECT FROM THE FOLLOWING FACTOR THOSE DIRECT I/O STATEMENTS; THAT ARE REQUIRED: ; $IRF - DIRECT FORMATTED INPUT"; $IRU - DIRECT UNFORMATTED INPUT!; $ORF - DIRECT FORMATTED OUTPUT#; $ORU - DIRECT UNFORMATTED OUTPUT)OTSIO3: .FCTR LB:[1,1]F77OTS/LB:$IRU:$ORUN; ****************************************************************************); STEP 4-3 SELECT FILE OPEN/CLOSE SUPPORT; **************;#; SELECT FILE MAINPULATION SUPPORT:; $OPNSTM - OPEN STATEMENT; $CLSSTM - CLOSE STATEMENT#; $ASSIGN - CALL ASSIGN SUBROUTINE"; $CLSCAL - CALL CLOSE SUBROUTINE#; $FDBSET - CALL FDBSET SUBROUTINE); $DEFF - DEFINEFILE AND FIND STATEMENTS;N; ****************************************************************************; .NAME OTSOPN,OTSOP0: .FCTR OTSOPN-OTSOP1-*(OTSOP2,OTSOP3)-OTSOP1: .FCTR LB:[1,1]F77OTS/LB:$OPEN:$OPNSTM.OTSOP2: .FCTR LB:[1,1]F77OTS/LB:$FNBST:$ASSIGNDOTSOP3: .FCTR LB:[1,1]F77OTS/LB:$CLOSE:$CLSSTM:$CLSCAL:$DEFF:$FDBSETN; ****************************************************************************.; STEP 4-4 SELECT READ/WRITE STATEMENT SUPPORT; **************;'; SELECT ALL MODULES THAT ARE REQUIRED:;$; SELECT FORMAT CONVERSION ROUTINES:&; $CONVR - D,E,F,G FORMAT CONVERSIONS; $CONVI - I FORMAT CONVERSION ; $CONVL - L FORMAT CONVERSIONS"; $CONVZ - O,Z FORMAT CONVERSIONS;$; SELECT FORMAT PROCESSING ROUTINES:"; $FIO - FORMATTED I/O PROCESSING); $LSTI - LIST-DIRECTED INPUT PROCESSING*; $LSTO - LIST-DIRECTED OUTPUT PROCESSING; ; SELECT I/O PROCESSING SUPPORT:; $GETS - SEQUENTIAL INPUT; $PUTS - SEQUENTIAL OUTPUT; $GETR - DIRECT INPUT; $PUTR - DIRECT OUTPUT"; $CKRCN - DIRECT INPUT OR OUTPUT;&; SELECT OPTIONAL I/O SUPPORT MODULES:-; $IOARY - TRANSMIT ENTIRE ARRAY IN I/O LIST6; $IOVARY - TRANSMIT ENTIRE VIRTUAL ARRAY IN I/O LIST'; $FMTCV - RUN-TIME FORMAT CONVERSIONS; $REWIND - REWIND STATEMENT ; $BACKSP - BACKSPACE STATEMENT;N; ****************************************************************************; .NAME OTSRW .PSECT $$FIOC,GBL,RO,I,CON .PSECT $$FIOD,GBL,RO,D,CON;OTSRW0: 00XXVRTADATADATADATADATADATA.FCTR OTSRW-LB:[1,1]F77OTS/LB:$IOARY:$IOELEM-OTSRW1+OTSRW1: .FCTR OTSCNV-OTSGP-*(OTSFIO,OTSMIO)2OTSFIO: .FCTR LB:[1,1]F77OTS/LB:$FIO-$$FIOC-$$FIOD6OTSMIO: .FCTR LB:[1,1]F77OTS/LB:$FMTCV:$FCSRMS:$REWIND;OTSCNV: .FCTR LB:[1,1]F77OTS/LB:$CONVR:$CONVI:$CONVL:$CONVZ=OTSGP: .FCTR LB:[1,1]F77OTS/LB:$GETS:$PUTS:$GETR:$PUTR:$CKRCNN; ****************************************************************************?; STEP 5 SELECT MATH LIBRARY AND COMPILED-CODE SUPPORT ROUTINES; **************;,; SELECT THOSE FUNCTIONS WHICH ARE REQUIRED.;; NOTE THAT THE FUNCTIONS IN SEGMENT OTSMTH ARE CALLED FROM3; MANY OF THE OTHER FUNCTIONS IN THE OTHER SEGMENTS;8; MATH FUNCTIONS MARKED: (INLINE) ARE NORMALLY PERFORMED/; INLINE AND NO EXTERNAL REFERENCE IS REQUIRED.;8; SOME MATH FUNCTIONS CONTAIN BOTH THE SINGLE AND DOUBLE3; PRECISION VERSIONS IN A SINGLE MODULE (EG. $EXP).8; THESE ARE LISTED UNDER THE SINGLE PRECISION FUNCTIONS.;; **************+; CHARACTER COMPILED CODE SUPPORT ROUTINES:; $CHCMP - CHARACTER COMPARISON2; $LGE - LEXICAL GREATER THAN OR EQUAL TO (INLINE)&; $LGT - LEXICAL GREATER THAN (INLINE)/; $LLE - LEXICAL LESS THAN OR EQUAL TO (INLINE)#; $LLT - LEXICAL LESS THAN (INLINE);; **************; INTEGER*2 FUNCTIONS:+; $IABS - INTEGER*2 ABSOLUTE VALUE (INLINE)>; $ICHAR - CONVERT A SINGLE CHARACTER INTO AN INTEGER (INLINE)7; $INDEX - FIND THE OFFSET INTO A STRING OF A SUBSTRING/; $LEN - LENGTH OF A CHARACTER ELEMENT (INLINE)6; $IFIX - REAL/DOUBLE TO INTEGER*2 CONVERSION (INLINE)-; $MAX0 - INTEGER*2 MAX OF INTEGER*2 (INLINE)-; $MIN0 - INTEGER*2 MIN OF INTEGER*2 (INLINE)(; $NINT - NEAREST INTEGER OF REAL/DOUBLE; $MOD - INTEGER*2 MOD (INLINE)"; $ISIGN - INTEGER*2 SIGN TRANSFER; $IDIM - INTEGER*2 DIM ; $IAND - INTEGER*2 AND (INLINE); $IOR - INTEGER*2 OR (INLINE)); $IEOR - INTEGER*2 EXCLUSIVE OR (INLINE) ; $INOT - INTEGER*2 NOT (INLINE); $ISHFT - INTEGER*2 SHIFT"; $PWII - INTEGER*2 EXPONENTIATION;; **************; INTEGER*4 FUNCTIONS:+; $JABS - INTEGER*4 ABSOLUTE VALUE (INLINE)7; $I4FIX - REAL/DOUBLE TO INTEGER*4 CONVERSION (INLINE)-; $JMIX - REAL/INTEGER*4 MAX/MIN OF INTEGER*4-; $RJMIX - INTEGER*4 MAX/MIN OF REAL (INLINE); $JMOD - INTEGER*4 MOD"; $JSIGN - INTEGER*4 SIGN TRANSFER; $JDIM - INTEGER*4 DIM ; $JAND - INTEGER*4 AND (INLINE); $JOR - INTEGER*4 OR (INLINE)); $JEOR - INTEGER*4 EXCLUSIVE OR (INLINE) ; $JNOT - INTEGER*4 NOT (INLINE); $JSHFT - INTEGER*4 SHIFT!; $MLJ - INTEGER*4 MULTIPLICATION; $DVJ - INTEGER*4 DIVISION"; $PWJJ - INTEGER*4 EXPONENTIATION;; **************; REAL*4 FUNCTIONS:%; $ABS - REAL ABSOLUTE VALUE (INLINE) ; $EXP - REAL/DOUBLE EXPONENTIAL'; $ALOG - REAL NATURAL/COMMON LOGARITHM; $SIN - REAL SINE/COSINE!; $SQRT - REAL/DOUBLE SQUARE ROOT; $TAN - REAL TANGENT; $ACOS - REAL ARC COSINE; $ASIN - REAL ARC SINE; $ATAN - REAL ARC TANGENT ; $COSH - REAL HYPERBOLIC COSINE; $SINH - REAL HYPERBOLIC SINE!; $TANH - REAL HYPERBOLIC TANGENT-; $AMIX0 - REAL MAX/MIN OF INTEGER*2 (INLINE)2; $AMIX1 - REAL/INTEGER*2 MAX/MIN OF REAL (INLINE)5; $ANINT - REAL/DOUBLE NEAREST INTEGER OF REAL/DOUBLE!; $AINT - REAL TO REAL TRUNCATION; $AMOD - REAL MOD; $DIM - REAL DIM,; $SNGL - DOUBLE TO REAL CONVERSION (INLINE); $SIGN - REAL SIGN TRANSFER0; $FLOAT - INTEGER*2 TO REAL CONVERSION (INLINE)5; $FLOTJ - INTEGER TO REAL/DOUBLE CONVERSION (INLINE) ; $PWRI - REAL/DOUBLE ** INTEGER; $PWRR - REAL ** REAL;; **************; REAL*8 FUNCTIONS:(; $DABS - DOUBLE ABSOLUTE VALUE (INLINE)); $DLOG - DOUBLE NATURAL/COMMON LOGARITHM; $DSIN - DOUBLE SINE/COSINE; $DTAN - DOUBLE TANGENT; $DACOS - DOUBLE ARC COSINE; $DASIN - DOUBLE ARC SINE; $DATAN - DOUBLE ARC TANGENT#; $DCOSH - DOUBLE HYPERBOLIC COSINE!; $DSINH - DOUBLE HYPERBOLIC SINE$; $DTANH - DOUBLE HYPERBOLIC TANGENT,; $DMIX1 - DOUBLE MAX/MIN OF DOUBLE (INLINE)%; $DINT - DOUBLE TO DOUBLE TRUNCATION; $DMOD - DOUBLE MOD; $DDIM - DOUBLE DIM,; $DBLE - REAL TO DOUBLE CONVERSION (INLINE); $DSIGN - DOUBLE SIGN T00XyXWNW}RANSFER$; $DPROD - DOUBLE PRODUCT OF 2 REALS$; $PWDD - REAL/DOUBLE ** REAL/DOUBLE;; **************; COMPLEX FUNCTIONS: ; $CABS - COMPLEX ABSOLUTE VALUE; $CEXP - COMPLEX EXPONENTIAL; $CLOG - COMPLEX LOGARITHM; $CSIN - COMPLEX SINE/COSINE; $CSQRT - COMPLEX SQUARE ROOT-; $REAL - COMPLEX TO REAL CONVERSION (INLINE)/; $AIMAG - COMPLEX IMAGINARY TO REAL CONVERSION%; $CMPLX - REAL TO COMPLEX CONVERSION; $CONJG - COMPLEX CONJUGATE; $ADC - COMPLEX ADD/SUBTRACT; $MLC - COMPLEX MULTIPLICATION; $DVC - COMPLEX DIVISION; $CMC - COMPLEX COMPARE; $TSC - COMPLEX TEST FOR ZERO; $NGC - COMPLEX NEGATE; $PWCI - COMPLEX ** INTEGER; $PWCC - COMPLEX ** COMPLEX;N; ****************************************************************************; .NAME OTSMTH)OTSMT0: .FCTR OTSMTC-*(OTSMA,OTSMB,OTSMC)IOTSMTC: .FCTR OTSMTH-LB:[1,1]F77OTS/LB:$EXP:$SQRT:$ALOG:$ATAN:$SIN:$SWPXY; ********************C; STEP 5-1 OTSMRI INTEGER*2, REAL*4 AND CHARACTER SUPPORT FUNCTIONS; ********************; .NAME OTSMRI=OTSMA: .FCTR OTSMRI-OTSM1A-OTSM1B-OTSM1C-OTSM1D-OTSM1E-OTSM1FDOTSM1A: .FCTR LB:[1,1]F77OTS/LB:$ABS:$ACOS:$AINT:$AMOD:$AMIX0:$AMIX1KOTSM1B: .FCTR LB:[1,1]F77OTS/LB:$ASIN:$ANINT:$FLOAT:$FLOTJ:$TAN:$PWRI:$PWRRBOTSM1C: .FCTR LB:[1,1]F77OTS/LB:$SINH:$TANH:$COSH:$SIGN:$SNGL:$DIMMOTSM1D: .FCTR LB:[1,1]F77OTS/LB:$IABS:$IAND:$IEOR:$IOR:$INOT:$MAX0:$MIN0:$MODEOTSM1E: .FCTR LB:[1,1]F77OTS/LB:$ISHFT:$ISIGN:$IFIX:$NINT:$IDIM:$PWII-OTSM1F: .FCTR LB:[1,1]F77OTS/LB:$INDEX:$CHCMP; ********************"; STEP 5-2 OTSMDP REAL*8 FUNCTIONS; ********************; .NAME OTSMDP(OTSMB: .FCTR OTSMDP-OTSM2A-OTSM2B-OTSM2CMOTSM2A: .FCTR LB:[1,1]F77OTS/LB:$DABS:$DACOS:$DASIN:$DATAN:$DSIN:$DMOD:$DMIX1HOTSM2B: .FCTR LB:[1,1]F77OTS/LB:$DDIM:$DSINH:$DCOSH:$DTANH:$DPROD:$DSIGN=OTSM2C: .FCTR LB:[1,1]F77OTS/LB:$DINT:$DBLE:$DTAN:$DLOG:$PWDD; ********************%; STEP 5-3 OTSMI4 INTEGER*4 FUNCTIONS; ********************; .NAME OTSMI4!OTSMC: .FCTR OTSMI4-OTSM3A-OTSM3BNOTSM3A: .FCTR LB:[1,1]F77OTS/LB:$JABS:$JAND:$JEOR:$JOR:$JNOT:$JMIX:$JMOD:$PWJJKOTSM3B: .FCTR LB:[1,1]F77OTS/LB:$JSHFT:$JSIGN:$I4FIX:$JDIM:$RJMIX:$MLJ:$DVJ; ********************#; STEP 5-4 OTSMCX COMPLEX FUNCTIONS; ********************;; .NAME OTSMCX);OTSMD: .FCTR OTSMCX-OTSM4A-OTSM4B-OTSM4CA;OTSM4A: .FCTR LB:[1,1]F77OTS/LB:$AIMAG:$REAL:$CMPLX:$CONJG:$CABSL;OTSM4B: .FCTR LB:[1,1]F77OTS/LB:$FCALL:$CSIN:$CSQRT:$CEXP:$CLOG:$PWCJ:$PWCC>;OTSM4C: .FCTR LB:[1,1]F77OTS/LB:$ADC:$MLC:$DVC:$TSC:$CMC:$NGCN; ****************************************************************************F; STEP 6 SELECT MISCELLANEOUS SUPPORT FUNCTIONS AND SYSTEM SUBROUTINES; **************;"; SELECT EACH SEGMENT AS REQUIRED,7; OTHERWISE DELETE ENTIRE LIBRARY REFERENCE FROM FACTOR;9; $ARYCK - ARRAY SUBSCRIPT CHECKING (/CK COMPILER SWITCH)*; $MADB1 - ONE-DIMENSION ADJUSTABLE ARRAYS*; $MADB2 - TWO-DIMENSION ADJUSTABLE ARRAYS,; $MADBN - MULTI-DIMENSION ADJUSTABLE ARRAYS!; $STPPAU - STOP/PAUSE STATEMENTS ; $CGO - COMPUTED GOTO STATEMENT ; $AGO - ASSIGNED GOTO STATEMENT; $EXIT - CALL EXIT SUBROUTINE;N; ****************************************************************************;3OTSMS0: .FCTR *(OTSMS1,OTSMS2,OTSMS3,OTSMS4,OTSMS5); ********************-; STEP 6-1 OTSINI OTS INITIALIZATION ROUTINES; ********************; .NAME OTSINI"OTSMS1: .FCTR OTSINI-OTSIN1-OTSIN29OTSIN1: .FCTR LB:[1,1]F77OTS/LB:$OTI:$VINIT:$STPPAU:$EXIT0OTSIN2: .FCTR LB:[1,1]F77OTS/LB:$AGO:$CGO:$MADB1; ********************'; STEP 6-2 OTSVRT VIRTUAL ARRAY SUPPORT; ********************; .NAME OTSVRT3OTSMS2: .FCTR OTSVRT-LB:[1,1]F77OTS/LB:$VIRT:$MADBV; ********************'; STEP 6-3 OTSR50 RADIX-50 CONVERSIONS; ********************; .NAME OTSR50DOTSMS3: .FCTR OTSR50-LB:[1,1]F77OTS/LB:$R50WD:$R50ASC:$IRAD50:$RAD50; ********************,; STEP 6-4 OTSERR ERROR CONTROL SUBROUTINES; ********************; .NAME OTSERRFOTSMS4: .FCTR OTSERR-LB:[1,1]F77OTS/LB:$ERRSET:$ER00XXVRTADATADATADATADATADATARSNS:$ERRTST:$USEREX; ********************$; STEP 6-5 OTSTIM DATE/TIME ROUTINES; ********************; .NAME OTSTIMAOTSMS5: .FCTR OTSTIM-LB:[1,1]F77OTS/LB:$DATE:$TIME:$SECNDS:$IDATE; ********************); STEP 6-6 OTSRAN RANDOM NUMBER GENERATOR; ********************;; .NAME OTSRAN;;OTSMS6: .FCTR OTSRAN-LB:[1,1]F77OTS/LB:$RAN:$RANDU:$RANDOMN; ****************************************************************************; STEP 7 SELECT FCS MODULES; **************;?; IF AN FCS RESIDENT LIBRARY IS IN USE, SELECT THE FIRST FACTORG; IF AN FCS RESIDENT LIBRARY IN NOT AVAILABLE, SELECT THE SECOND FACTOR;N; ****************************************************************************;;OTSFRT: .FCTR OTSFCS,OTSFRT: .FCTR OTSFCS-*(OTSFOP,OTSFSQ,OTSFDA) .NAME OTSFCS=; REPLACE LB: BY DRC4: HERE TO LOAD NATIVE RSX11M+ OTS FILES,; NOT AME FILES.)OTSFCM: .FCTR DRC4:[1,1]NOANSLIB/LB:SAVR1)OTSFOP: .FCTR OTSFO1,OTSFO2,OTSFO3,OTSFO4/OTSFO1: .FCTR DRC4:[1,1]NOANSLIB/LB:.CSI1:.CSI2*)OTSFO2: .FCTR DRC4:[1,1]NOANSLIB/LB:PARSE*/OTSFO3: .FCTR DRC4:[1,1]NOANSLIB/LB:OPFNB:FINITSCOTSFO4: .FCTR DRC4:[1,1]NOANSLIB/LB:CLOSE:DLFNB:$PRINT:GETDID:MRKDLo6OTSFSQ: .FCTR DRC4:[1,1]NOANSLIB/LB:GETSQ:PUTSQ:PNTMRK2OTSFDA: .FCTR DRC4:[1,1]NOANSLIB/LB:GET:PUT:POSRECN; ****************************************************************************N; ****************************************************************************;A; PDP-11 FORTRAN-77 V4.1 STANDARD OTS ODL FILE FOR RSX-11M/M-PLUS;N; **************************************************************************** ; VERSION: 7;+>; THIS FILE IS USED TO BUILD AN OVERLAID FORTRAN OTS THAT USES; FCS-11 FOR I/O SUPPORT;%; THIS FILE IS USED ON RSX-11M/M-PLUS;E; THIS FILE BUILDS A 6000 WORD OVERLAY STRUCTURE USING THE FOLLOWING: /; * NO FCS-11 RESIDENT LIBRARY (SEE STEP 7)R.; * LONG ERROR MESSAGE TEXT (SEE STEP 3.1); * NO ANSI MAGTAPE SUPPORTJ; THIS SIZE DOES NOT INCLUDE THE OTS OR FCS IMPURE STORAGE OR I/O BUFFERS.;O; THIS FILE USES THE LONG ERROR MESSAGE TEXT MODULE; USING THE NULL TEXT MODULE>; REDUCES THE SIZE BY APPROXIMATELY 1100 WORDS (SEE STEP 3.1).;C; THIS FILE ASSUMES THAT THE PDP-11 FORTRAN-77 OTS IS CONTAINED IN:; LB:[1,5]F77OTS.OLB;(; SAMPLE USE OF THIS FILE IS AS FOLLOWS:;; 1. CREATE THE OVERLAY DESCRIPTION FILE FOR YOUR PROGRAM.*; 2. ADD THE TWO REQUIRED OTS REFERENCES:; "OTSROT" TO THE ROOT,; "OTSALL" AS A CO-TREED; 3. EDIT THIS FILE AS NECESSARY TO REMOVE UNNEEDED OTS MODULES, OR); TO USE THE FCS-11 RESIDENT LIBRARY.D:; 4. REFERENCE THIS FILE IN YOUR ODL AS AN INDIRECT FILE.;A; EXAMPLE USER ODL FOR A SIMPLE PROGRAM CONTAINING A MAIN PROGRAM0&; AND THREE OVERLAYS, PRE, PROC, POST:; $; .ROOT MAIN-OTSROT-*(A,B,C),OTSALL; A: .FCTR PRE; B: .FCTR PROC ; C: .FCTR POST ; @LB:[1,1]FCS11MG; .ENDB;T@; TO CUSTOMIZE THIS STANDARD ODL FILE, DELETE THOSE MODULES THAT<; SUPPORT FUNCTIONS THAT ARE NOT REQUIRED. THIS IS DONE BY4; DELETING LIBRARY EXTRACT REFERENCES TO THE MODULE:; FOR EXAMPLE:A; TO DELETE SUPPORT FOR THE OPEN STATEMENT, MODULE $OPNSTM IS,(; ELIMINATED FROM THE FACTOR OTSOP1:0; OTSOP1: .FCTR LB:[1,1]F4POTS/LB:$OPEN:$OPNSTM ; BECOMES/(; OTSOP1: .FCTR LB:[1,1]F4POTS/LB:$OPEN;E; IF ANY FACTOR IS COMPLETELY ELIMINATED, THEN THE REFERENCING FACTORQ?; MUST BE EDITED TO ELIMINATE THE REFERENCE OR UNDEFINED MODULEX/; ERRORS WILL BE GENERATED BY THE TASK BUILDER.F; C; ANY MODULE NAME THAT IS NOT LISTED AS AN OPTION MUST BE INCLUDED.E;.0; WITHIN THIS ODL FILE, FACTORS MAY BE COMBINED.;,;-;)N; ****************************************************************************; STEP 1 OTSROT; ********************; THE FACTOR "OTSROT"T:; MUST BE INCLUDED IN THE ROOT SEGMENT OF YOUR PROGRAM ODLN; **************************************************************00XyXWNW}**************;$OTSROT: .FCTR LB:[1,5]F77OTS/LB:$OTVN; ****************************************************************************; STEP 2 OTSALL; ********************; THE FACTOR "OTSALL"3; MUST BE INCLUDED AS A CO-TREE IN YOUR PROGRAM ODLN; ****************************************************************************; .NAME OTSOTSALL: .FCTR OTS-OTSCM0,OTSFRTN; ****************************************************************************; STEP 3 OTSCOM; ********************E; THE FACTOR "OTSCOM" DECLARES MODULES WHICH MUST BE ALWAYS RESIDENT.;N; ****************************************************************************; .NAME OTSCOMGOTSCM0: .FCTR OTSCOM-OTSCX-OTSCM1-OTSCM2-OTSCM3-*(OTSIO0,OTSMS0,OTSMT0)OTSCX: .FCTR [1,5]F4PNER@OTSCM1:.FCTR LB:[1,5]F77OTS/LB:$ERRPT:$ERRMO:$FPERR:$R50:$FPPUTI2OTSCM2: .FCTR LB:[1,5]F77OTS/LB:$NAM:$SAVRG:$CHASNN; ****************************************************************************$; STEP 3.1 SELECT ERROR MESSAGE TEXT; **************>; IF THE LONG MESSAGE TEXT IS DESIRED, INCLUDE THE FIRST LINE.?; IF THE NULL MESSAGE TEXT IS DESIRED, INCLUDE THE SECOND LINE.;';OTSCM3: .FCTR LB:[1,5]F77OTS/LB:$ERTXT&OTSCM3: .FCTR LB:[1,5]F77OTS/LB:$SHORTN; ****************************************************************************%; STEP 4 SELECT I/O STATEMENT SUPPORT; **************; .NAME OTSIO9OTSIO0: .FCTR OTSIO-OTSIO1-OTSIO2-OTSIO3-*(OTSOP0,OTSRW0).OTSIO1: .FCTR LB:[1,5]F77OTS/LB:$FCHNL:$INITION; ****************************************************************************$; STEP 4-1 SEQUENTIAL I/O STATEMENTS; **************;B; SELECT FROM THE FOLLOWING FACTOR THOSE SEQUENTIAL I/O STATEMENTS; THAT ARE REQUIRED:$; $ISF - SEQUENTIAL FORMATTED INPUT&; $ISU - SEQUENTIAL UNFORMATTED INPUT(; $ISL - SEQUENTIAL LIST-DIRECTED INPUT%; $OSF - SEQUENTIAL FORMATTED OUTPUT'; $OSU - SEQUENTIAL UNFORMATTED OUTPUT); $OSL - SEQUENTIAL LIST-DIRECTED OUTPUT; $ENDF - ENDFILE STATEMENT7; $ENCDEC - ENCODE/DECODE AND INTERNAL FILE STATEMENTS;7OTSIO2: .FCTR LB:[1,5]F77OTS/LB:$ISF:$OSF:$ENDF:$ENCDECN; **************************************************************************** ; STEP 4-2 DIRECT I/O STATEMENTS; **************;>; SELECT FROM THE FOLLOWING FACTOR THOSE DIRECT I/O STATEMENTS; THAT ARE REQUIRED: ; $IRF - DIRECT FORMATTED INPUT"; $IRU - DIRECT UNFORMATTED INPUT!; $ORF - DIRECT FORMATTED OUTPUT#; $ORU - DIRECT UNFORMATTED OUTPUT)OTSIO3: .FCTR LB:[1,5]F77OTS/LB:$IRU:$ORUN; ****************************************************************************); STEP 4-3 SELECT FILE OPEN/CLOSE SUPPORT; **************;#; SELECT FILE MAINPULATION SUPPORT:; $OPNSTM - OPEN STATEMENT; $CLSSTM - CLOSE STATEMENT#; $ASSIGN - CALL ASSIGN SUBROUTINE"; $CLSCAL - CALL CLOSE SUBROUTINE#; $FDBSET - CALL FDBSET SUBROUTINE); $DEFF - DEFINEFILE AND FIND STATEMENTS;N; ****************************************************************************; .NAME OTSOPN,OTSOP0: .FCTR OTSOPN-OTSOP1-*(OTSOP2,OTSOP3)-OTSOP1: .FCTR LB:[1,5]F77OTS/LB:$OPEN:$OPNSTM.OTSOP2: .FCTR LB:[1,5]F77OTS/LB:$FNBST:$ASSIGNDOTSOP3: .FCTR LB:[1,5]F77OTS/LB:$CLOSE:$CLSSTM:$CLSCAL:$DEFF:$FDBSETN; ****************************************************************************.; STEP 4-4 SELECT READ/WRITE STATEMENT SUPPORT; **************;'; SELECT ALL MODULES THAT ARE REQUIRED:;$; SELECT FORMAT CONVERSION ROUTINES:&; $CONVR - D,E,F,G FORMAT CONVERSIONS; $CONVI - I FORMAT CONVERSION ; $CONVL - L FORMAT CONVERSIONS"; $CONVZ - O,Z FORMAT CONVERSIONS;$; SELECT FORMAT PROCESSING ROUTINES:"; $FIO - FORMATTED I/O PROCESSING); $LSTI - LIST-DIRECTED INPUT PROCESSING*; $LSTO - LIST-DIRECTED OUTPUT PROCESSING; ; SELECT I/O PROCESSING SUPPORT:; $GETS - SEQUENTIAL INPUT; $PUTS - SEQUENTIAL OUTPUT; $GETR - DIRECT INPUT; $PUTR - DIRECT OUTPUT"; $CKRCN - DIRECT INPUT OR OUTPUT;&; SELECT OPTIONAL I/O SUPPORT MODULES:-; $IOARY - TRANSMIT ENTIRE ARRA00XXVRTADATADATADATADATADATAY IN I/O LIST6; $IOVARY - TRANSMIT ENTIRE VIRTUAL ARRAY IN I/O LIST'; $FMTCV - RUN-TIME FORMAT CONVERSIONS; $REWIND - REWIND STATEMENT ; $BACKSP - BACKSPACE STATEMENT;N; ****************************************************************************; .NAME OTSRW .PSECT $$FIOC,GBL,RO,I,CON .PSECT $$FIOD,GBL,RO,D,CON;OTSRW0: .FCTR OTSRW-LB:[1,5]F77OTS/LB:$IOARY:$IOELEM-OTSRW1+OTSRW1: .FCTR OTSCNV-OTSGP-*(OTSFIO,OTSMIO)2OTSFIO: .FCTR LB:[1,5]F77OTS/LB:$FIO-$$FIOC-$$FIOD6OTSMIO: .FCTR LB:[1,5]F77OTS/LB:$FMTCV:$FCSRMS:$REWIND;OTSCNV: .FCTR LB:[1,5]F77OTS/LB:$CONVR:$CONVI:$CONVL:$CONVZ=OTSGP: .FCTR LB:[1,5]F77OTS/LB:$GETS:$PUTS:$GETR:$PUTR:$CKRCNN; ****************************************************************************?; STEP 5 SELECT MATH LIBRARY AND COMPILED-CODE SUPPORT ROUTINES; **************;,; SELECT THOSE FUNCTIONS WHICH ARE REQUIRED.;; NOTE THAT THE FUNCTIONS IN SEGMENT OTSMTH ARE CALLED FROM3; MANY OF THE OTHER FUNCTIONS IN THE OTHER SEGMENTS;8; MATH FUNCTIONS MARKED: (INLINE) ARE NORMALLY PERFORMED/; INLINE AND NO EXTERNAL REFERENCE IS REQUIRED.;8; SOME MATH FUNCTIONS CONTAIN BOTH THE SINGLE AND DOUBLE3; PRECISION VERSIONS IN A SINGLE MODULE (EG. $EXP).8; THESE ARE LISTED UNDER THE SINGLE PRECISION FUNCTIONS.;; **************+; CHARACTER COMPILED CODE SUPPORT ROUTINES:; $CHCMP - CHARACTER COMPARISON2; $LGE - LEXICAL GREATER THAN OR EQUAL TO (INLINE)&; $LGT - LEXICAL GREATER THAN (INLINE)/; $LLE - LEXICAL LESS THAN OR EQUAL TO (INLINE)*#; $LLT - LEXICAL LESS THAN (INLINE)*;*; **************; INTEGER*2 FUNCTIONS:+; $IABS - INTEGER*2 ABSOLUTE VALUE (INLINE)X>; $ICHAR - CONVERT A SINGLE CHARACTER INTO AN INTEGER (INLINE)7; $INDEX - FIND THE OFFSET INTO A STRING OF A SUBSTRINGS/; $LEN - LENGTH OF A CHARACTER ELEMENT (INLINE)A6; $IFIX - REAL/DOUBLE TO INTEGER*2 CONVERSION (INLINE)-; $MAX0 - INTEGER*2 MAX OF INTEGER*2 (INLINE)6-; $MIN0 - INTEGER*2 MIN OF INTEGER*2 (INLINE) (; $NINT - NEAREST INTEGER OF REAL/DOUBLE; $MOD - INTEGER*2 MOD (INLINE)A"; $ISIGN - INTEGER*2 SIGN TRANSFER; $IDIM - INTEGER*2 DIMH ; $IAND - INTEGER*2 AND (INLINE); $IOR - INTEGER*2 OR (INLINE)); $IEOR - INTEGER*2 EXCLUSIVE OR (INLINE)E ; $INOT - INTEGER*2 NOT (INLINE); $ISHFT - INTEGER*2 SHIFT"; $PWII - INTEGER*2 EXPONENTIATION;T; **************; INTEGER*4 FUNCTIONS:+; $JABS - INTEGER*4 ABSOLUTE VALUE (INLINE) 7; $I4FIX - REAL/DOUBLE TO INTEGER*4 CONVERSION (INLINE) -; $JMIX - REAL/INTEGER*4 MAX/MIN OF INTEGER*4F-; $RJMIX - INTEGER*4 MAX/MIN OF REAL (INLINE)R; $JMOD - INTEGER*4 MODT"; $JSIGN - INTEGER*4 SIGN TRANSFER; $JDIM - INTEGER*4 DIM ; $JAND - INTEGER*4 AND (INLINE); $JOR - INTEGER*4 OR (INLINE)); $JEOR - INTEGER*4 EXCLUSIVE OR (INLINE)E ; $JNOT - INTEGER*4 NOT (INLINE); $JSHFT - INTEGER*4 SHIFT!; $MLJ - INTEGER*4 MULTIPLICATIONI; $DVJ - INTEGER*4 DIVISIONH"; $PWJJ - INTEGER*4 EXPONENTIATION;.; **************; REAL*4 FUNCTIONS:.%; $ABS - REAL ABSOLUTE VALUE (INLINE)P ; $EXP - REAL/DOUBLE EXPONENTIAL'; $ALOG - REAL NATURAL/COMMON LOGARITHML; $SIN - REAL SINE/COSINET!; $SQRT - REAL/DOUBLE SQUARE ROOTR; $TAN - REAL TANGENT ; $ACOS - REAL ARC COSINEA; $ASIN - REAL ARC SINEL; $ATAN - REAL ARC TANGENT ; $COSH - REAL HYPERBOLIC COSINE; $SINH - REAL HYPERBOLIC SINE!; $TANH - REAL HYPERBOLIC TANGENT-; $AMIX0 - REAL MAX/MIN OF INTEGER*2 (INLINE)M2; $AMIX1 - REAL/INTEGER*2 MAX/MIN OF REAL (INLINE)5; $ANINT - REAL/DOUBLE NEAREST INTEGER OF REAL/DOUBLEH!; $AINT - REAL TO REAL TRUNCATIONB; $AMOD - REAL MOD; $DIM - REAL DIMU,; $SNGL - DOUBLE TO REAL CONVERSION (INLINE); $SIGN - REAL SIGN TRANSFER0; $FLOAT - INTEGER*2 TO REAL CONVERSION (INLINE)5; $FLOTJ - INTEGER TO REAL/DOUBLE CONVERSION (INLINE) ; $PWRI - REAL/DOUBLE ** INTEGER; $PWRR - REAL ** REAL;*; **************; REAL*8 FUNCTIONS:*(; $DABS - DOUBLE ABSOLUTE VALUE (INLINE)); $DLOG - DOUBLE NATURAL/COMMON LOGARITHMD; $DSIN - DOUBLE SINE/COSINE; $DTAN - DOUBLE TANGENT; $DACOS - DOUBLE ARC COSINE; $DASIN - DOUBLE AR00XyXWNW}C SINE; $DATAN - DOUBLE ARC TANGENT[#; $DCOSH - DOUBLE HYPERBOLIC COSINE*!; $DSINH - DOUBLE HYPERBOLIC SINE*$; $DTANH - DOUBLE HYPERBOLIC TANGENT,; $DMIX1 - DOUBLE MAX/MIN OF DOUBLE (INLINE)%; $DINT - DOUBLE TO DOUBLE TRUNCATIONE; $DMOD - DOUBLE MOD; $DDIM - DOUBLE DIM,; $DBLE - REAL TO DOUBLE CONVERSION (INLINE); $DSIGN - DOUBLE SIGN TRANSFERA$; $DPROD - DOUBLE PRODUCT OF 2 REALS$; $PWDD - REAL/DOUBLE ** REAL/DOUBLE;*; **************; COMPLEX FUNCTIONS: ; $CABS - COMPLEX ABSOLUTE VALUE; $CEXP - COMPLEX EXPONENTIALM; $CLOG - COMPLEX LOGARITHME; $CSIN - COMPLEX SINE/COSINE*; $CSQRT - COMPLEX SQUARE ROOT-; $REAL - COMPLEX TO REAL CONVERSION (INLINE)/; $AIMAG - COMPLEX IMAGINARY TO REAL CONVERSION-%; $CMPLX - REAL TO COMPLEX CONVERSION ; $CONJG - COMPLEX CONJUGATE; $ADC - COMPLEX ADD/SUBTRACTP; $MLC - COMPLEX MULTIPLICATIONB; $DVC - COMPLEX DIVISION:; $CMC - COMPLEX COMPARE; $TSC - COMPLEX TEST FOR ZERO; $NGC - COMPLEX NEGATE*; $PWCI - COMPLEX ** INTEGER; $PWCC - COMPLEX ** COMPLEX; N; ****************************************************************************; .NAME OTSMTH,)OTSMT0: .FCTR OTSMTC-*(OTSMA,OTSMB,OTSMC)CIOTSMTC: .FCTR OTSMTH-LB:[1,5]F77OTS/LB:$EXP:$SQRT:$ALOG:$ATAN:$SIN:$SWPXY*; ********************C; STEP 5-1 OTSMRI INTEGER*2, REAL*4 AND CHARACTER SUPPORT FUNCTIONS ; ********************;* .NAME OTSMRI.=OTSMA: .FCTR OTSMRI-OTSM1A-OTSM1B-OTSM1C-OTSM1D-OTSM1E-OTSM1FTDOTSM1A: .FCTR LB:[1,5]F77OTS/LB:$ABS:$ACOS:$AINT:$AMOD:$AMIX0:$AMIX1KOTSM1B: .FCTR LB:[1,5]F77OTS/LB:$ASIN:$ANINT:$FLOAT:$FLOTJ:$TAN:$PWRI:$PWRR1BOTSM1C: .FCTR LB:[1,5]F77OTS/LB:$SINH:$TANH:$COSH:$SIGN:$SNGL:$DIMMOTSM1D: .FCTR LB:[1,5]F77OTS/LB:$IABS:$IAND:$IEOR:$IOR:$INOT:$MAX0:$MIN0:$MOD EOTSM1E: .FCTR LB:[1,5]F77OTS/LB:$ISHFT:$ISIGN:$IFIX:$NINT:$IDIM:$PWII -OTSM1F: .FCTR LB:[1,5]F77OTS/LB:$INDEX:$CHCMP ; ********************"; STEP 5-2 OTSMDP REAL*8 FUNCTIONS; ********************;N .NAME OTSMDPT(OTSMB: .FCTR OTSMDP-OTSM2A-OTSM2B-OTSM2CMOTSM2A: .FCTR LB:[1,5]F77OTS/LB:$DABS:$DACOS:$DASIN:$DATAN:$DSIN:$DMOD:$DMIX1[HOTSM2B: .FCTR LB:[1,5]F77OTS/LB:$DDIM:$DSINH:$DCOSH:$DTANH:$DPROD:$DSIGN=OTSM2C: .FCTR LB:[1,5]F77OTS/LB:$DINT:$DBLE:$DTAN:$DLOG:$PWDDC; ********************%; STEP 5-3 OTSMI4 INTEGER*4 FUNCTIONSN; ********************;T .NAME OTSMI4T!OTSMC: .FCTR OTSMI4-OTSM3A-OTSM3BRNOTSM3A: .FCTR LB:[1,5]F77OTS/LB:$JABS:$JAND:$JEOR:$JOR:$JNOT:$JMIX:$JMOD:$PWJJKOTSM3B: .FCTR LB:[1,5]F77OTS/LB:$JSHFT:$JSIGN:$I4FIX:$JDIM:$RJMIX:$MLJ:$DVJI; ********************#; STEP 5-4 OTSMCX COMPLEX FUNCTIONS*; ********************;; .NAME OTSMCX);OTSMD: .FCTR OTSMCX-OTSM4A-OTSM4B-OTSM4C*A;OTSM4A: .FCTR LB:[1,5]F77OTS/LB:$AIMAG:$REAL:$CMPLX:$CONJG:$CABSML;OTSM4B: .FCTR LB:[1,5]F77OTS/LB:$FCALL:$CSIN:$CSQRT:$CEXP:$CLOG:$PWCJ:$PWCC>;OTSM4C: .FCTR LB:[1,5]F77OTS/LB:$ADC:$MLC:$DVC:$TSC:$CMC:$NGCN; ****************************************************************************F; STEP 6 SELECT MISCELLANEOUS SUPPORT FUNCTIONS AND SYSTEM SUBROUTINES; **************;O"; SELECT EACH SEGMENT AS REQUIRED,7; OTHERWISE DELETE ENTIRE LIBRARY REFERENCE FROM FACTOR];O9; $ARYCK - ARRAY SUBSCRIPT CHECKING (/CK COMPILER SWITCH)E*; $MADB1 - ONE-DIMENSION ADJUSTABLE ARRAYS*; $MADB2 - TWO-DIMENSION ADJUSTABLE ARRAYS,; $MADBN - MULTI-DIMENSION ADJUSTABLE ARRAYS!; $STPPAU - STOP/PAUSE STATEMENTS* ; $CGO - COMPUTED GOTO STATEMENT ; $AGO - ASSIGNED GOTO STATEMENT; $EXIT - CALL EXIT SUBROUTINE;ON; ****************************************************************************;O3OTSMS0: .FCTR *(OTSMS1,OTSMS2,OTSMS3,OTSMS4,OTSMS5); ********************-; STEP 6-1 OTSINI OTS INITIALIZATION ROUTINESI; ********************;D .NAME OTSININ"OTSMS1: .FCTR OTSINI-OTSIN1-OTSIN29OTSIN1: .FCTR LB:[1,5]F77OTS/LB:$OTI:$VINIT:$STPPAU:$EXIT-0OTSIN2: .FCTR LB:[1,5]F77OTS/LB:$AGO:$CGO:$MADB1; ********************'; STEP 6-2 OTSVRT VIRTUAL ARRAY SUPPORTE; ********************;E .NAME OTSVRT/3OTSMS2: .FCTR OTSVRT-LB:[1,5]F77OTS/LB:$VIRT:$MADB00XXVRTADATADATADATADATADATAV ; ********************'; STEP 6-3 OTSR50 RADIX-50 CONVERSIONST; ********************;A .NAME OTSR50DOTSMS3: .FCTR OTSR50-LB:[1,5]F77OTS/LB:$R50WD:$R50ASC:$IRAD50:$RAD50; ********************,; STEP 6-4 OTSERR ERROR CONTROL SUBROUTINES; ********************;. .NAME OTSERRLFOTSMS4: .FCTR OTSERR-LB:[1,5]F77OTS/LB:$ERRSET:$ERRSNS:$ERRTST:$USEREX; ********************$; STEP 6-5 OTSTIM DATE/TIME ROUTINES; ********************;T .NAME OTSTIMSAOTSMS5: .FCTR OTSTIM-LB:[1,5]F77OTS/LB:$DATE:$TIME:$SECNDS:$IDATER; ********************); STEP 6-6 OTSRAN RANDOM NUMBER GENERATORV; ********************;7; .NAME OTSRAN;;OTSMS6: .FCTR OTSRAN-LB:[1,5]F77OTS/LB:$RAN:$RANDU:$RANDOM*N; ****************************************************************************; STEP 7 SELECT FCS MODULES ; **************; ?; IF AN FCS RESIDENT LIBRARY IS IN USE, SELECT THE FIRST FACTORIG; IF AN FCS RESIDENT LIBRARY IN NOT AVAILABLE, SELECT THE SECOND FACTORT;ON; ****************************************************************************;I;OTSFRT: .FCTR OTSFCSR,OTSFRT: .FCTR OTSFCS-*(OTSFOP,OTSFSQ,OTSFDA) .NAME OTSFCSS<; REPLACE LB: BY DR1: HERE TO LOAD NATIVE RSX11M+ OTS FILES,; NOT AME FILES.%OTSFCM: .FCTR LB:[1,5]SYSLIB/LB:SAVR1U)OTSFOP: .FCTR OTSFO1,OTSFO2,OTSFO3,OTSFO4 +OTSFO1: .FCTR LB:[1,5]SYSLIB/LB:.CSI1:.CSI2C%OTSFO2: .FCTR LB:[1,5]SYSLIB/LB:PARSEG+OTSFO3: .FCTR LB:[1,5]SYSLIB/LB:OPFNB:FINITX?OTSFO4: .FCTR LB:[1,5]SYSLIB/LB:CLOSE:DLFNB:$PRINT:GETDID:MRKDLO2OTSFSQ: .FCTR LB:[1,5]SYSLIB/LB:GETSQ:PUTSQ:PNTMRK.OTSFDA: .FCTR LB:[1,5]SYSLIB/LB:GET:PUT:POSRECN; ****************************************************************************C HC-----------------------------------------------------------------------C SUBROUTINE: FOUREA.C PERFORMS COOLEY-TUKEY FAST FOURIER TRANSFORMHC-----------------------------------------------------------------------C . SUBROUTINE FOUREA(ID1,ID2,IC,IR,IVN,ISI)7C ID1,ID2 = COORDS OF FIRST CELL. IC AND IR ARE 0, OR 1:C ONLY ONE OF IC, IR MAY BE NONZERO. (FLAGS HORIZ/VERTICAL C DATA AREA)C 9C THE COOLEY-TUKEY FAST FOURIER TRANSFORM IN ANSI FORTRANC ?C DATA IS A ONE-DIMENSIONAL COMPLEX ARRAY WHOSE LENGTH, N, IS A@C POWER OF TWO. ISI IS +1 FOR AN INVERSE TRANSFORM AND -1 FOR A@C FORWARD TRANSFORM. TRANSFORM VALUES ARE RETURNED IN THE INPUTC ARRAY, REPLACING THE INPUT.?C TRANSFORM(J)=SUM(DATA(I)*W**((I-1)*(J-1))), WHERE I AND J RUN>C FROM 1 TO N AND W = EXP (ISI*2*PI*SQRT(-1)/N). PROGRAM ALSO?C COMPUTES INVERSE TRANSFORM, FOR WHICH THE DEFINING EXPRESSION2C IS INVTR(J)=(1/N)*SUM(DATA(I)*W**((I-1)*(J-1))).?C RUNNING TIME IS PROPORTIONAL TO N*LOG2(N), RATHER THAN TO THEC CLASSICAL N**2.CC AFTER PROGRAM BY BRENNER, JUNE 1967. THIS IS A VERY SHORT VERSION?C OF THE FFT AND IS INTENDED MAINLY FOR DEMONSTRATION. PROGRAMS?C ARE AVAILABLE IN THIS COLLECTION WHICH RUN FASTER AND ARE NOT9C RESTRICTED TO POWERS OF 2 OR TO ONE-DIMENSIONAL ARRAYS.<C SEE -- IEEE TRANS AUDIO (JUNE 1967), SPECIAL ISSUE ON FFT.C C COMPLEX*16 WC=C ASSUMES THAT FIRST N/2 ELEMENTS ARE REAL, SECOND COMPLEX...C STORES DATA THAT WAY ALSO...CC COMPLEX DATA(1)C COMPLEX TEMP, W&C MAKE THIS A REAL FFT, NOT COMPLEX...% REAL*8 DATA(1),TEMP,W,TEMP2,TEMPI,WI' INTEGER*2 ID1,ID2,IC,IR,IRX,IRXX,IVN,NC SET UP STMT FUNCTIONS... ID1F(K)=ID1+IC*(K-1) ID2F(K)=ID2+IR*(K-1) N=IVNC !C CHECK FOR POWER OF TWO UP TO 14C C INITIALLY SAY ALL OK NN = 1 DO 10 I=1,14 M = I NN = NN*2 IF (NN.EQ.N) GO TO 20 IF(NN.GT.N)GOTO 11 10 CONTINUE 11 CONTINUE N=NN/2&C USE NEXT SMALLER POWER OF 2 ARRAY...C RETURNC HERE BEGIN00XXWNW}NETH ACTUAL WORK.AC SET UP DATA COORDS ON THE FLY. NORMALLY I,J RUN IN RANGE 1 TO N>C SO WHERE K=(I OR J) (I.E., ONE OF THE TWO) WE USE A RELATION@C ID1V=ID1+IC*(K-1) AND ID2V=ID2+IR*(K-1). WE USE STMT FUNCTIONSC ID1F AND ID2F FOR THIS. 20 CONTINUE NOV2=N/2C C PI = 4.*ATAN(1.) PI=3.14159265358979323846264 FN = NOV2C .C THIS SECTION PUTS DATA IN BIT-REVERSED ORDERC J = 1 DO 80 I=1,NOV2C @C AT THIS POINT, I AND J ARE A BIT REVERSED PAIR (EXCEPT FOR THEC DISPLACEMENT OF +1)C  IF(I.GE.J)GOTO 40C *C EXCHANGE DATA(I) WITH DATA(J) IF I.LT.J.C 30 CONTINUEC EXCHANGE DATA(J), DATA(I)" CALL XVBLGT(ID1F(J),ID2F(J),TEMP)% CALL XVBLGT(ID1F(I),ID2F(I),DATA(1))% CALL XVBLST(ID1F(J),ID2F(J),DATA(1))" CALL XVBLST(ID1F(I),ID2F(I),TEMP)*C FLIP BOTH REAL AND COMPLEX PARTS OF DATA, CALL XVBLGT(ID1F(J+NOV2),ID2F(J+NOV2),TEMP)/ CALL XVBLGT(ID1F(I+NOV2),ID2F(I+NOV2),DATA(1))/ CALL XVBLST(ID1F(J+NOV2),ID2F(J+NOV2),DATA(1)), CALL XVBLST(ID1F(I+NOV2),ID2F(I+NOV2),TEMP)C 30 TEMP = DATA(J)C DATA(J) = DATA(I)C DATA(I) = TEMPC 'C IMPLEMENT J=J+1, BIT-REVERSED COUNTERC  40 M = NOV2/2 50 IF (J.LE.M) GOTO 70 60 J = J - M M = (M+1)/2 GO TO 50 70 J = J + M 80 CONTINUEC C NOW COMPUTE THE BUTTERFLIESC  MMAX = 1 90 IF (MMAX.GE.NOV2)GOTO 130 100 ISTEP = 2*MMAX DO 120 M=1,MMAX/ THETA = PI*FLOAT(ISI*(M-1))/FLOAT(MMAX) W = COS(THETA) WI = SIN(THETA))C W = CMPLX(COS(THETA),SIN(THETA)) DO 110 I=M,NOV2,ISTEP J = I + MMAX'C GET REAL AND IMAG HALVES OF NUMBER...$ CALL XVBLGT(ID1F(J),ID2F(J),TEMP)/ CALL XVBLGT(ID1F(J+NOV2),ID2F(J+NOV2),TEMPI)AC DO COMPLEX MULTIPLICATION BY HAND TO AVOID LARGE RUNTIME SYSTEMC ROUTINE INCLUSION. TEMP2=W*TEMP-WI*TEMPI TEMPI=WI*TEMP+W*TEMPI TEMP=TEMP2C TEMP = W*DATA(J)#C DATA(J) = DATA(I) - TEMP#C DATA(I) = DATA(I) + TEMP( CALL XVBLGT(ID1F(I),ID2F(I),DATA(1)) TEMP2=DATA(1)+TEMP DATA(1)=DATA(1) - TEMP( CALL XVBLST(ID1F(J),ID2F(J),DATA(1))& CALL XVBLST(ID1F(I),ID2F(I),TEMP2)C COMPLEX PART2 CALL XVBLGT(ID1F(I+NOV2),ID2F(I+NOV2),DATA(1)) TEMP2=DATA(1)+TEMPI DATA(1)=DATA(1) - TEMPI2 CALL XVBLST(ID1F(J+NOV2),ID2F(J+NOV2),DATA(1))0 CALL XVBLST(ID1F(I+NOV2),ID2F(I+NOV2),TEMP2) 110 CONTINUE 120 CONTINUE MMAX = ISTEP GO TO 90 130 IF (ISI.LT.0) GOTO 160C 2C FOR INV TRANS -- ISI=1 -- MULTIPLY OUTPUT BY 1/NC  140 DO 150 I=1,NC DATA(I) = DATA(I)/FN" CALL XVBLGT(ID1F(I),ID2F(I),TEMP) TEMP=TEMP/FN" CALL XVBLST(ID1F(I),ID2F(I),TEMP) 150 CONTINUE 160 RETURN ENDC HC-----------------------------------------------------------------------C SUBROUTINE: FOUREA.C PERFORMS COOLEY-TUKEY FAST FOURIER TRANSFORMHC-----------------------------------------------------------------------C 2 SUBROUTINE FOUREA(ID1,ID2,IC,IR,N,ISI,IRSLT)C 9C THE COOLEY-TUKEY FAST FOURIER TRANSFORM IN ANSI FORTRANC _?C DATA IS A ONE-DIMENSIONAL COMPLEX ARRAY WHOSE LENGTH, N, IS A@C POWER OF TWO. ISI IS +1 FOR AN INVERSE TRANSFORM AND -1 FOR A@C FORWARD TRANSFORM. TRANSFORM VALUES ARE RETURNED IN THE INPUTC ARRAY, REPLACING THE INPUT.?C TRANSFORM(J)=SUM(DATA(I)*W**((I-1)*(J-1))), WHERE I AND J RUN>C FROM 1 TO N AND W = EXP (ISI*2*PI*SQRT(-1)/N). PROGRAM ALSO?C COMPUTES INVERSE TRANSFORM, FOR WHICH THE DEFINING EXPRESSION2C IS INVTR(J)=(1/N)*SUM(DATA(I)*W**((I-1)*(J-1))).?C RUNNING TIME IS PROPORTIONAL TO N*LOG2(N), RATHER THAN TO THEC CLASSICAL N**2.CC AFTER PROGRAM BY BRENNER, JUNE 1967. THIS IS A VERY SHORT VERSION?C OF THE FFT AND IS INTENDED MAINL00XXXRTADATADATADATADATADATAY FOR DEMONSTRATION. PROGRAMSH?C ARE AVAILABLE IN THIS COLLECTION WHICH RUN FASTER AND ARE NOTI9C RESTRICTED TO POWERS OF 2 OR TO ONE-DIMENSIONAL ARRAYS.I<C SEE -- IEEE TRANS AUDIO (JUNE 1967), SPECIAL ISSUE ON FFT.C NC COMPLEX DATA(1)C COMPLEX TEMP, W&C MAKE THIS A REAL FFT, NOT COMPLEX... REAL*8 DATA(1),TEMP,W INTEGER*2 ID1,ID2,IC,IRC E!C CHECK FOR POWER OF TWO UP TO 15(C  IRSLT=1C INITIALLY SAY ALL OK NN = 1 DO 10 I=1,15 M = IW NN = NN*2I IF (NN.EQ.N) GO TO 20  10 CONTINUE IRSLT=3C 3 = BAD ARGS RETURNI 20 CONTINUEC  PI = 4.*ATAN(1.) FN = NC O.C THIS SECTION PUTS DATA IN BIT-REVERSED ORDERC J = 14 DO 80 I=1,N C @C AT THIS POINT, I AND J ARE A BIT REVERSED PAIR (EXCEPT FOR THEC DISPLACEMENT OF +1)IC  IF(I.GE.J)GOTO 40C L*C EXCHANGE DATA(I) WITH DATA(J) IF I.LT.J.C H 30 TEMP = DATA(J) DATA(J) = DATA(I)R DATA(I) = TEMPC C'C IMPLEMENT J=J+1, BIT-REVERSED COUNTER C W 40 M = N/2 50 IF (J.LE.M) GOTO 70I 60 J = J - M  M = (M+1)/2F GO TO 50 70 J = J + M 80 CONTINUEC TC NOW COMPUTE THE BUTTERFLIESHC C MMAX = 1 90 IF (MMAX.GE.N)GOTO 130 100 ISTEP = 2*MMAX DO 120 M=1,MMAXI/ THETA = PI*FLOAT(ISI*(M-1))/FLOAT(MMAX)F W = COS(THETA))C W = CMPLX(COS(THETA),SIN(THETA))D DO 110 I=M,N,ISTEP J = I + MMAX TEMP = W*DATA(J)" DATA(J) = DATA(I) - TEMP" DATA(I) = DATA(I) + TEMP 110 CONTINUE 120 CONTINUE MMAX = ISTEP GO TO 90 130 IF (ISI.LT.0) GOTO 160 C M2C FOR INV TRANS -- ISI=1 -- MULTIPLY OUTPUT BY 1/NC ) 140 DO 150 I=1,N DATA(I) = DATA(I)/FN 150 CONTINUE 160 RETURN ENDFE SUBROUTINE FLIP (VEC,SIZE,PT)#C COPYRIGHT (C) 1983 GLENN EVERHART*@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY.* INCLUDE 'VKLUGPRM.FTN'*C PARAMETER RRW = 32C PARAMETER RCL = 32C RRW=MAX REAL ROWSBC RCL=MAX REAL COLSR:C RRW MUST BE 1 LARGER TO HANDLE 1ST 27 VARIABLES IN AVBLS#C VBLS AND TYPE DIMENSIONED RRW,RCLS4C **************************************************4C * *4C * SUBROUTINE FLIP(VEC,SIZE,PT) *4C * *4C **************************************************CC>C FLIPS THE NON-ZERO DIGITS UP TO PT IN VECTOR VEC IN REVERSE@C ORDER. USED TO PLACE NUMBERS IN PROPER ORDER INTO VBLS THAT &C HAVE BEEN READ IN HIGH ORDER FIRST.CTCECPC C FLIP IS CALLED BY NEXTELCC MODIFICATION CLASSES: -CCACECEC VARIABLE USECL0C H1 TEMPORARILY HOLDS A LOGICAL*1 VALUE-C I INDEXES DIGITS THAT ARE FLIPPED.S1C K THE MIDPOINT OF THE FLIPPING ACTION. 4C PT HOLDS THE RANGE OF THE FLIPPING ACTION.4C (USUALLY THE HIGH ORDER NON-ZERO DIGIT)CICTCBCYCC.CECEC CSC SUBROUTINE FLIP (VEC,SIZE,PT)FC.C INTEGER*2 SIZE,PT INTEGER*2 KCG LOGICAL*1 VEC(SIZE), H1C*C  K=PT/2  IF (K.EQ.0) GOTO 20 DO 10 I=1,K H1=VEC(I) VEC(I)=VEC(PT+1-I)10 VEC(PT+1-I)=H1: 20 RETURNI END SUBROUTINE FRMEDT(INLIN,LEND)(C COPYRIGHT 1984 GLENN AND MARY EVERHART0C FORMULA EDIT TO FIND AND EDIT FORMULAS OF FORMC {VAR<C AND REPLACE THE VARIABLE SPEC BY FORMULA FOR THAT VARIABLE INCLUDE 'VKLUGPRM.FTN' PARAMETER CUP=1?C ADD LOGICAL NAMES IN THE FOLLOWING FASHION, TO BE MANIPULATED C HERE ALONE:C<C STORE LOGICAL NAMES, UP TO 16 CHARS, HERE IN AN ARRAY WITHAC DESIRED ID1,ID2 VALUES OF CELLS TO LOAD. WHERE A {NAME IS SEEN,$C REPLACE WITH DESIRED CELL ADDRESS.AC TO DEFINE LOGIC00XXWNW}AL NAMES, LOOK FOR = AFTER A NAME. IF = IS SEEN?C AFTER THE { CHARACTER, ASSUME IT'S A LINE OF FORM {SALES=AA0@C (OR {SALES=00 TO DEASSIGN) AND STORE THE NAME. UP TO THE USERAC TO PUT THE DESIRED FORMULA IN AS HE LIKES. MAY USE A TEST STMTC IF DESIRED.( INTEGER*2 PROW,PCOL,DROW,DCOL,DRWV,DCLV INTEGER*2 LLCMD,LLDSP6 COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRWV,DCLV,LLCMD,LLDSP LOGICAL*1 NAMARY(20,RCL)7C ALLOW AS MANY NAMES AS THERE ARE ROWS... ARBITRARY... INTEGER*2 NAMNUM(10,RCL)% EQUIVALENCE(NAMARY(1,1),NAMNUM(1,1))2C NAMNUM(9,RCL) AND NAMNUM(10,RCL) ARE RRW AND RCL<C STORAGE. NAMARY(1-18,RCL) STORES NAME ASCII TEXT (POSSIBLY1C NULL TERMINATED). FIND CELLS VIA LINEAR SEARCH. INTEGER*2 NAMMAX/C NAMMAX IS MAX DIM OF NAMARY THAT'S FILLED IN.) LOGICAL*1 INLIN(110),WRK1(120),WRK2(128) INTEGER*2 LEND DATA NAMMAX/0/ LCNT=01000 IF(LCNT.GT.20)RETURN I1=INDEX(INLIN,'{') IF(I1.LE.0.OR.I1.GT.70)RETURN IF(INLIN(I1).NE.'{')RETURN I2=INDEX(INLIN,'=')0 IF(I2.LE.0.OR.I2.LT.I1.OR.I2.GT.70.OR.INLIN(I2) 1 .NE.'=')GOTO 5400 IF((I2-I1).LE.1)GOTO 5400>C HERE SEE AN = SIGN AFTER A {VAR STRING. ATTEMPT TO EVALUATE.*C GUARANTEED AT LEAST 1 CHARACTER OF NAME. I3=MIN0((I2-I1-1),16):c check if * seen ( text would then be {*= ) for printoutc of symbol table IF(INLIN(I1+1).NE.'*')GOTO 5600 IF(NAMMAX.LE.0)GOTO 5600 CALL UVT100(CUP,LLCMD,1) CALL UVT100(12,2,0) C ERASE LINE WRITE(6,5601)5601 FORMAT('Output File:') read(5,5602)(wrk1(II),II=1,80)5602 format(110a1) DO 5603 N=1,78 NN=79-N IF(WRK1(NN).GT.32)GOTO 5604 WRK1(NN)=0 5603 CONTINUE 5604 CONTINUE CLOSE(UNIT=8) CALL ASSIGN(8,WRK1)C OPEN OUTPUT FOR WRITEC THEN DUMP SYMBOLS THERE:C SYMBOL TABLE DUMP CAN BE SAVED ANYWHERE AND REENTERED ASC ASSIGNMENT STMTS. WRK1(1)='{' DO 5607 N=2,1105607 WRK1(N)=0 WRK1(18)='=' DO 5605 N=1,NAMMAX+ IF(NAMNUM(9,N)+NAMNUM(10,N).LE.0)GOTO 5605 DO 5608 NN=1,165608 WRK1(NN+1)=NAMARY(NN,N)! CALL IN2AS(NAMNUM(9,N),WRK1(19))/ ENCODE(3,5606,WRK1(23),ERR=5419)NAMNUM(10,N)-15606 FORMAT(I3) K=3 WRK2(1)='T' WRK2(2)='E' WRK2(3)=' ' DO 5609 KK=1,106 I4=WRK1(KK) IF(I4.LE.32)GOTO 5609 K=K+1 WRK2(K)=I4 5609 CONTINUE9C WRITE OUT DEFINITIONS AS IF THEY WERE ASSIGMNENT STMTS. WRITE(8,5610)(WRK2(KK),KK=1,K)5610 FORMAT(110A1) 5605 CONTINUE CLOSE(UNIT=8) GOTO 5419 5600 CONTINUE LO=I2+1 IHI=LO+25. CALL VARSCN(INLIN,LO,IHI,LSTCHR,ID1,ID2,IVLD).C IF IVLD=0 ASSUME WE'RE UNDEFINING THE SYMBOL IF(IVLD.GT.0)GOTO 5402$C INVALID SYMBOL ... UNDEFINE STRING DO 5403 I4=1,NAMMAX DO 5404 I5=1,I3+ IF(INLIN(I1+I5).NE.NAMARY(I5,I4))GOTO 5403 5404 CONTINUEC GOT IT IF WE FALL THRU NAMNUM(9,I4)=0 NAMNUM(10,I4)=0 DO 5443 I5=1,165443 NAMARY(I5,I4)=0.C ZERO THE ELEMENT DEFINITION AND FORGET IT... 5403 CONTINUE GOTO 5419 5402 CONTINUE!C VALID ARRAY ELEMENT, DEFINE IT. IF(NAMMAX.LE.0)GOTO 5406 DO 5405 I4=1,NAMMAX- IF(NAMNUM(9,I4)+NAMNUM(10,I4).EQ.0)GOTO 5410 5405 CONTINUE GOTO 5406 5410 CONTINUEC GOT IT IF WE FALL HERE NAMNUM(9,I4)=ID1 NAMNUM(10,I4)=ID2.C ZERO THE ELEMENT DEFINITION AND FORGET IT... GOTO 5407 5406 CONTINUE IF(NAMMAX.LT.0)NAMMAX=0 NAMMAX=MIN0(NAMMAX+1,RCL) NAMNUM(9,NAMMAX)=ID1 NAMNUM(10,NAMMAX)=ID2C NOW SAVE THE SYMBOL NAME I4=NAMMAX 5407 CONTINUE%C ZERO CHARACTERS FIRST, THEN FILL IN DO 5409 I5=1,165409 NAMARY(I5,I4)=0 DO 5408 I5=1,I3 NAMARY(I5,I4)=INLIN(I1+I5) 5408 CONTINUE=C NO FURTHER PROCESSING IF WE DID ANY DEFINITION... JUST EXIT5419 INLIN(1)='%' DO 5421 I5=2,1105421 INLIN(I5)=0<C JUST NULL OUT THE LINE IF A DEFINITION. KEEPS FROM FURTHER C ERRORS... RETURN 5400 CONTINUE1C NOW THAT DEFINITIONS ARE TAKEN CARE OF (IF ANY)C HANDLE SYMBOLIC SEARCHES IF(NAMMAX.LE.0)GOTO 5505 LSTCHR=I1+1 DO 5501 I4=1,NAMMAX DO 5502 I5=1,16! IF(NAMARY(I5,I4).LE.47)GOTO 5502 IF(INLIN(I1+I5).LE.47)GOTO 5502 LSTCHR=I1+I5+1+ IF(INLIN(I1+I5).NE.NAMARY(I5,I4))GOTO 55017C ALLOW MATCH PROVIDED THAT AT LEAST 1ST CHAR IS L00YYYRTADATADATADATADATADATAEGAL.9C IF(NAMARY(1,I4).GE.48.AND.NAMARY(I5,I4).LE.47)GOTO 5560 5502 CONTINUE 5560 CONTINUE!C IF WE FALL THRU WE HAVE A MATCH ID1=NAMNUM(9,I4) ID2=NAMNUM(10,I4)8C LAST CHECK: BE SURE WE AREN'T GIVING A DELETED SYMBOL. IF((ID1+ID2).GT.0)GOTO 5500 5501 CONTINUE 5505 CONTINUE'C ONLY ALLOW IF THERE IS A { CHAR THERE LO=I1+1 IHI=LO+25. CALL VARSCN(INLIN,LO,IHI,LSTCHR,ID1,ID2,IVLD) IF(IVLD.LE.0)RETURN 5500 CONTINUE DO 11 N1=1,120 11 WRK1(N1)=0+C HERE HAVE A VALID CONSTRUCT SO REPLACE IT%C (ONLY ONE PER LINE THIS TIME ROUND)C IRX=(ID2-1)*RRW+ID1 CALL REFLEC(ID2,ID1,IRX)*C COPY FIRST PART OF FORMULA TO WORK ARRAY LO=I1-1 IHI=0 IF(LO.LE.0)GOTO 10 DO 1 N1=1,LO IHI=N1 WRK1(IHI)=INLIN(N1) 1 CONTINUE 10 CONTINUE IHI=IHI+1 CALL WRKFIL(IRX,WRK2,0);C WRKFIL READS THE FORMULA INTO WRK2. NEXT FIND END OF TEXT DO 2 N1=1,110 LO=111-N1 IF(WRK2(LO).GT.32)GOTO 3 2 CONTINUE 3 CONTINUEC LO NOW IS LENGTH OF FORMULA DO 4 N1=1,LO WRK1(IHI)=WRK2(N1) IF(IHI.LT.110)IHI=IHI+1 4 CONTINUEC TACK ON ANY MORE TEXT$C RELY ON INLIN BEING 110 CHARS LONG DO 5 N1=LSTCHR,110 WRK1(IHI)=INLIN(N1) IF(IHI.LT.110)IHI=IHI+1 5 CONTINUE"C NOW COPY 110 CHARS BACK TO INLIN DO 6 N1=1,1106 INLIN(N1)=WRK1(N1) DO 7 N1=1,110 LO=111-N1 IF(INLIN(LO).GT.32)GOTO 8C INLIN(LO)=32 7 CONTINUE 8 LEND=LO LCNT=LCNT+1 GOTO 1000+C KEEP LOOKING & RECURSING BUT IMPOSE LIMITC RETURN END SUBROUTINE FRMEDT(INLIN,LEND)(C COPYRIGHT 1984 GLENN AND MARY EVERHART0C FORMULA EDIT TO FIND AND EDIT FORMULAS OF FORMC {VAR<C AND REPLACE THE VARIABLE SPEC BY FORMULA FOR THAT VARIABLE INCLUDE 'VKLUGPRM.FTN') LOGICAL*1 INLIN(110),WRK1(120),WRK2(128) INTEGER*2 LEND LCNT=01000 IF(LCNT.GT.10)RETURN I1=INDEX(INLIN,'{') IF(I1.LE.0.OR.I1.GT.70)RETURN IF(INLIN(I1).NE.'{')RETURN'C ONLY ALLOW IF THERE IS A { CHAR THERE LO=I1+1 IHI=LO+25. CALL VARSCN(INLIN,LO,IHI,LSTCHR,ID1,ID2,IVLD) IF(IVLD.LE.0)RETURN DO 11 N1=1,120 11 WRK1(N1)=0+C HERE HAVE A VALID CONSTRUCT SO REPLACE IT%C (ONLY ONE PER LINE THIS TIME ROUND)C IRX=(ID2-1)*RRW+ID1 CALL REFLEC(ID2,ID1,IRX)*C COPY FIRST PART OF FORMULA TO WORK ARRAY LO=I1-1 IHI=0 IF(LO.LE.0)GOTO 10 DO 1 N1=1,LO IHI=N1 WRK1(IHI)=INLIN(N1) 1 CONTINUE 10 CONTINUE IHI=IHI+1 CALL WRKFIL(IRX,WRK2,0);C WRKFIL READS THE FORMULA INTO WRK2. NEXT FIND END OF TEXT DO 2 N1=1,110 LO=111-N1 IF(WRK2(LO).GT.32)GOTO 3 2 CONTINUE 3 CONTINUEC LO NOW IS LENGTH OF FORMULA DO 4 N1=1,LO WRK1(IHI)=WRK2(N1) IF(IHI.LT.110)IHI=IHI+1 4 CONTINUEC TACK ON ANY MORE TEXT$C RELY ON INLIN BEING 110 CHARS LONG DO 5 N1=LSTCHR,110 WRK1(IHI)=INLIN(N1) IF(IHI.LT.110)IHI=IHI+1 5 CONTINUE"C NOW COPY 110 CHARS BACK TO INLIN DO 6 N1=1,1106 INLIN(N1)=WRK1(N1) DO 7 N1=1,110 LO=111-N1 IF(INLIN(LO).GT.32)GOTO 8C INLIN(LO)=32 7 CONTINUE 8 LEND=LO LCNT=LCNT+1 GOTO 1000+C KEEP LOOKING & RECURSING BUT IMPOSE LIMITC RETURN END SUBROUTINE FRMEDT(INLIN,LEND)(C COPYRIGHT 1984 GLENN AND MARY EVERHART0C FORMULA EDIT TO FIND AND EDIT FORMULAS OF FORMC {VAR<C AND REPLACE THE VARIABLE SPEC BY FORMULA FOR THAT VARIABLE INCLUDE 'VKLUGPRM.FTN' PARAMETER NMNMS=18 PARAMETER CUP=1?C ADD LOGICAL NAMES IN THE FOLLOWING FASHION, TO BE MANIPULATED C HERE ALONE:C<C STORE LOGICAL NAMES, UP TO 16 CHARS, HERE IN AN ARRAY WITHAC DESIRED ID1,ID2 VALUES OF CELLS TO LOAD. WHERE A {NAME IS SEEN,$C REPLACE WITH DESIRED CELL ADDRES00YXWNW}S.AC TO DEFINE LOGICAL NAMES, LOOK FOR = AFTER A NAME. IF = IS SEEN?C AFTER THE { CHARACTER, ASSUME IT'S A LINE OF FORM {SALES=AA0@C (OR {SALES=00 TO DEASSIGN) AND STORE THE NAME. UP TO THE USERAC TO PUT THE DESIRED FORMULA IN AS HE LIKES. MAY USE A TEST STMTC IF DESIRED.D LOGICAL*1 NAMARY(20,NMNMS)7C ALLOW AS MANY NAMES AS THERE ARE ROWS... ARBITRARY...D INTEGER*2 NAMNUM(10,NMNMS)&D EQUIVALENCE(NAMARY(1,1),NAMNUM(1,1))6C NAMNUM(9,NMNMS) AND NAMNUM(10,NMNMS) ARE RRW AND RCL>C STORAGE. NAMARY(1-18,NMNMS) STORES NAME ASCII TEXT (POSSIBLY1C NULL TERMINATED). FIND CELLS VIA LINEAR SEARCH.D INTEGER*2 NAMMAX/C NAMMAX IS MAX DIM OF NAMARY THAT'S FILLED IN.D COMMON/NMNMNM/NAMARY,NAMMAX) LOGICAL*1 INLIN(110),WRK1(120),WRK2(128) INTEGER*2 LENDC DATA NAMMAX/0/ LCNT=01000 IF(LCNT.GT.20)RETURN I1=INDEX(INLIN,'{') IF(I1.LE.0.OR.I1.GT.70)RETURN IF(INLIN(I1).NE.'{')RETURND I2=INDEX(INLIN,'=')1D IF(I2.LE.0.OR.I2.LT.I1.OR.I2.GT.70.OR.INLIN(I2)D 1 .NE.'=')GOTO 5400D IF((I2-I1).LE.1)GOTO 5400?DC HERE SEE AN = SIGN AFTER A {VAR STRING. ATTEMPT TO EVALUATE.+DC GUARANTEED AT LEAST 1 CHARACTER OF NAME.D I3=MIN0((I2-I1-1),16);Dc check if * seen ( text would then be {*= ) for printoutDc of symbol table!D IF(INLIN(I1+1).NE.'*')GOTO 5600D IF(NAMMAX.LE.0)GOTO 5600D CALL UVT100(CUP,LCMDR,1)D CALL UVT100(12,2,0) DC ERASE LINED WRITE(6,5601)D5601 FORMAT('Output File:') D read(5,5602)(wrk1(II),II=1,80)D5602 format(110a1)D DO 5603 N=1,78 D NN=79-ND IF(WRK1(NN).GT.32)GOTO 5604 D WRK1(NN)=0D5603 CONTINUED5604 CONTINUED CLOSE(UNIT=8)D CALL ASSIGN(8,WRK1)DC OPEN OUTPUT FOR WRITEDC THEN DUMP SYMBOLS THERE;DC SYMBOL TABLE DUMP CAN BE SAVED ANYWHERE AND REENTERED ASDC ASSIGNMENT STMTS. D WRK1(1)='{'D DO 5607 N=2,110D5607 WRK1(N)=0D WRK1(18)='='D DO 5605 N=1,NAMMAX,D IF(NAMNUM(9,N)+NAMNUM(10,N).LE.0)GOTO 5605D DO 5608 NN=1,16D5608 WRK1(NN+1)=NAMARY(NN,N)"D CALL IN2AS(NAMNUM(9,N),WRK1(19))0D ENCODE(3,5606,WRK1(23),ERR=5419)NAMNUM(10,N)-1D5606 FORMAT(I3)D K=3 D WRK2(1)='T' D WRK2(2)='E' D WRK2(3)=' 'D DO 5609 KK=1,106 D I4=WRK1(KK)D IF(I4.LE.32)GOTO 5609D K=K+1 D WRK2(K)=I4D5609 CONTINUE:DC WRITE OUT DEFINITIONS AS IF THEY WERE ASSIGMNENT STMTS. D WRITE(8,5610)(WRK2(KK),KK=1,K)D5610 FORMAT(110A1)D5605 CONTINUED CLOSE(UNIT=8) D GOTO 5419D5600 CONTINUE D LO=I2+1 D IHI=LO+25/D CALL VARSCN(INLIN,LO,IHI,LSTCHR,ID1,ID2,IVLD)/DC IF IVLD=0 ASSUME WE'RE UNDEFINING THE SYMBOLD IF(IVLD.GT.0)GOTO 5402%DC INVALID SYMBOL ... UNDEFINE STRINGD DO 5403 I4=1,NAMMAXD DO 5404 I5=1,I3,D IF(INLIN(I1+I5).NE.NAMARY(I5,I4))GOTO 5403D5404 CONTINUEDC GOT IT IF WE FALL THRUD NAMNUM(9,I4)=0D NAMNUM(10,I4)=0D DO 5443 I5=1,16D5443 NAMARY(I5,I4)=0/DC ZERO THE ELEMENT DEFINITION AND FORGET IT...D5403 CONTINUE D GOTO 5419D5402 CONTINUE"DC VALID ARRAY ELEMENT, DEFINE IT.D IF(NAMMAX.LE.0)GOTO 5406D DO 5405 I4=1,NAMMAX.D IF(NAMNUM(9,I4)+NAMNUM(10,I4).EQ.0)GOTO 5410D5405 CONTINUE D GOTO 5406D5410 CONTINUEDC GOT IT IF WE FALL HERED NAMNUM(9,I4)=ID1D NAMNUM(10,I4)=ID2/DC ZERO THE ELEMENT DEFINITION AND FORGET IT... D GOTO 5407D5406 CONTINUED IF(NAMMAX.LT.0)NAMMAX=0D NAMMAX=MIN0(NAMMAX+1,NMNMS)D NAMNUM(9,NAMMAX)=ID1D NAMNUM(10,NAMMAX)=ID2DC NOW SAVE THE SYMBOL NAME D I4=NAMMAXD5407 CONTINUE&DC ZERO CHARACTERS FIRST, THEN FILL IND DO 5409 I5=1,16D5409 NAMARY(I5,I4)=0D DO 5408 I5=1,I3D NAMARY(I5,I4)=INLIN(I1+I5)D5408 CONTINUE>DC NO FURTHER PROCESSING IF WE DID ANY DEFINITION... JUST EXITD5419 INLIN(1)='%'D DO 5421 I5=2,110D5421 INLIN(I5)=0=DC JUST NULL OUT THE LINE IF A DEFINITION. KEEPS FROM FURTHER DC ERRORS...D RETURND5400 CONTINUE1C NOW THAT DEFINITIONS ARE TAKEN CARE OF (IF ANY)C HANDLE SYMBOLIC SEARCHESD IF(NAMMAX.LE.0)GOTO 5505 D LSTCHR=I1+1D DO 5501 I4=1,NAMMAXD DO 5502 I5=1,16"D IF(NAMARY(I5,I4).LE.47)GOTO 5502!D IF(INLIN(I1+I5).LE.47)GOTO 5502D LSTCHR=I1+I5+1,D IF(INLIN(I1+I5).NE.N00YYYRTADATADATADATADATADATAAMARY(I5,I4))GOTO 55018DC ALLOW MATCH PROVIDED THAT AT LEAST 1ST CHAR IS LEGAL.:DC IF(NAMARY(1,I4).GE.48.AND.NAMARY(I5,I4).LE.47)GOTO 5560D5502 CONTINUED5560 CONTINUE"DC IF WE FALL THRU WE HAVE A MATCHD ID1=NAMNUM(9,I4)D ID2=NAMNUM(10,I4)9DC LAST CHECK: BE SURE WE AREN'T GIVING A DELETED SYMBOL.D IF((ID1+ID2).GT.0)GOTO 5500D5501 CONTINUED5505 CONTINUE(DC ONLY ALLOW IF THERE IS A { CHAR THERE LO=I1+1 IHI=LO+25. CALL VARSCN(INLIN,LO,IHI,LSTCHR,ID1,ID2,IVLD) IF(IVLD.LE.0)RETURND5500 CONTINUE DO 11 N1=1,120 11 WRK1(N1)=0+C HERE HAVE A VALID CONSTRUCT SO REPLACE IT%C (ONLY ONE PER LINE THIS TIME ROUND)C IRX=(ID2-1)*RRW+ID1 CALL REFLEC(ID2,ID1,IRX)*C COPY FIRST PART OF FORMULA TO WORK ARRAY LO=I1-1 IHI=0 IF(LO.LE.0)GOTO 10 DO 1 N1=1,LO IHI=N1 WRK1(IHI)=INLIN(N1) 1 CONTINUE 10 CONTINUE IHI=IHI+1 CALL WRKFIL(IRX,WRK2,0);C WRKFIL READS THE FORMULA INTO WRK2. NEXT FIND END OF TEXT DO 2 N1=1,110 LO=111-N1 IF(WRK2(LO).GT.32)GOTO 3 2 CONTINUE 3 CONTINUEC LO NOW IS LENGTH OF FORMULA DO 4 N1=1,LO WRK1(IHI)=WRK2(N1) IF(IHI.LT.110)IHI=IHI+1 4 CONTINUEC TACK ON ANY MORE TEXT$C RELY ON INLIN BEING 110 CHARS LONG DO 5 N1=LSTCHR,110 WRK1(IHI)=INLIN(N1) IF(IHI.LT.110)IHI=IHI+1 5 CONTINUE"C NOW COPY 110 CHARS BACK TO INLIN DO 6 N1=1,1106 INLIN(N1)=WRK1(N1) DO 7 N1=1,110 LO=111-N1 IF(INLIN(LO).GT.32)GOTO 8C INLIN(LO)=32 7 CONTINUE 8 LEND=LO LCNT=LCNT+1 GOTO 1000+C KEEP LOOKING & RECURSING BUT IMPOSE LIMITC RETURN END .TITLE FVLDDO%;FVLDST, FVLDGT REPLACEMENT ROUTINES.+; COPYRIGHT(C) 1983 Glenn and Mary EVERHART; .GLOBL FVLDST,FVLDGT BRRCL=2000.RRW=80.RCL=200.-; COPY FROM VKLUGPRM.FTN THE ABOVE PARAMETERS; ASSUME DECIMAL. .PSECT BITS,RW,D,OVR,GBLBITS: .BLKB 8. .PSECT FVLDM,RW,D,OVR,GBLFV1: .BLKB BRRCLFV2: .BLKB BRRCLFV4: .BLKB BRRCL .PSECT $CODE1; READ BITMAPSFVLDGT:!; CALL: CALL FVLDGT(ID1,ID2,LDAT) MOV @4(R5),R1 ;GET ID2 BNE 100$<; TRICK ENTRY IF ID2 IS 0, THEN ID1 PRESUMED TO BE ID. QUERY; BITMAPS HERE THEN.$ CLRB @6(R5) ;ZERO THE RESULT FIRST& MOV @2(R5),R0 ;GET ID1 = DISPLACEMENT1 DEC R0 ;DECREMENT TO ACCOUNT FOR FORTRAN OFFSET MOV R0,R2 ; COPY ASH #-3,R02 BIC #160000,R0 ; SHIFT OFF THE BYTE OFFSET & MASK. BIC #^C7,R2 ;ENSURE R2 POINTS TO RIGHT PLACE7 MOVB BITS(R2),R4 ; GET THE BIT MASK IN A REG FOR SPEED CLR R1 BISB FV1(R0),R1# BISB FV2(R0),R1 ; OR IN ALL 3 BITS BISB FV4(R0),R1; NOW TEST DESIRED BIT.3 BIT R4,R1 ;SO NON-0 IF ANY SELECTED BITS WERE SET BEQ 90$- MOVB #1,@6(R5) ; IF ANY WERE SET, RETURN A 190$: RTS PC ;RETURN100$:;GET FVLD IN GENERAL NOW.5 DEC R1 ;ADJUST FOR FORTRAN DIMENSIONS STARTING AT 19 MUL #RRW,R1 ;MULTIPLY TO GET (ID2-1)*RRW (NOTE ODD REG)% ADD @2(R5),R1 ; ADD ID1 TO GET INDEX/ DEC R1 ; AND ADJUST FOR FORTRAN 1-BASED INDEX CLR R0 ; R0 HAS RESULT$ MOV R1,R2 ;NEED 2 COPIES OF OFFSET! ASH #-3,R1 ; SHIFT RIGHT 3 BITS BIC #160000,R1 ;LOSE HIGH BITS& BIC #^C7,R2 ; GET BIT NUMBER IN BYTE5 MOVB BITS(R2),R4 ; GET BITMASK TO REGISTER FOR SPEED BITB R4,FV1(R1) BEQ 1$ MOV #1,R01$: BITB R4,FV2(R1) BEQ 2$+ BIS #2,R0 ;SET UP RESULT BITS 1 AT A TIME2$: BITB R4,FV4(R1) BEQ 3$ NEG R0';NEGATE NUMBER IF FV4 (SIGN) BIT IS SET!3$: MOVB R0,@6(R5) ;RETURN RESULT RTS PCA;NOTE ABOVE WILL ALLOW 0 RETURN IF SIGN BIT SET AND OTHERS CLEAR.;; SET BITMAPS FROM LDAT; CALL FVLDST(ID1,ID2,LDAT)FVLDST: MOV @4(R5),R1 ;GET ID25 DEC R1 ;ADJUST FOR FORTRAN DIMENSI00YYWNW}ONS STARTING AT 19 MUL #RRW,R1 ;MULTIPLY TO GET (ID2-1)*RRW (NOTE ODD REG)% ADD @2(R5),R1 ; ADD ID1 TO GET INDEX/ DEC R1 ; AND ADJUST FOR FORTRAN 1-BASED INDEX CLR R0 ; R0 HAS RESULT$ MOV R1,R2 ;NEED 2 COPIES OF OFFSET! ASH #-3,R1 ; SHIFT RIGHT 3 BITS BIC #160000,R1 ;LOSE HIGH BITS BIC #^C7,R2 MOVB BITS(R2),R4 ; GET BITMASK BICB R4,FV1(R1)' BICB R4,FV2(R1) ; CLEAR ALL BITS FIRST BICB R4,FV4(R1)& MOVB @6(R5),R3 ; GET BYTE BEING INPUT( BPL 3$ ; IF 0 OR +, SKIP - BIT SETTING( BISB R4,FV4(R1) ; RECORD NEGATIVE VALUE0 NEG R3 ; AND NEGATE THE NUMBER FOR LATER TESTS3$: BIT #1,R3 ; IS 1 BIT SET?! BEQ 1$ ; IF NO, SKIP SET OF FV1 BISB R4,FV1(R1)1$: BIT #2,R3 ; IS 2 BIT SET? BEQ 2$ ; IF NO, SKIP AGAIN+ BISB R4,FV2(R1) ; IF YES, RECORD THE FACT.2$: RTS PCE; NOTE A CALL WITH -4 WILL SET FV4 MAP AND NEITHER OF THE OTHERS. THEB; MAP CONDITION SO SET IS USED BY XVBLST/XVBLGT FOR FLAGGING BYTES3; THAT HAVE NOT BEEN INITED BUT HAVE BEEN EXAMINED. .END .TITLE FVLDDO%;FVLDST, FVLDGT REPLACEMENT ROUTINES.; COPYRIGHT(C) 1983 G EVERHART; .GLOBL FVLDST,FVLDGT8; edit these to match your vklugprm.ftn file definitions BRRCL=2258RRW=60RCL=301-; COPY FROM VKLUGPRM.FTN THE ABOVE PARAMETERS; ASSUME DECIMAL.2 .PSECT BITS PIC,OVR,REL,GBL,SHR,RD,WRT,NOEXE,LONG BITS: .BLKB 83 .PSECT FVLDM PIC,OVR,REL,GBL,SHR,RD,WRT,NOEXE,LONGFV1: .BLKB BRRCLFV2: .BLKB BRRCLFV4: .BLKB BRRCL .PSECT $CODE1 FVLDGT: .WORD ^M. CVTWL @8(AP),R0 ;CALL IS FVLDGT(ID1,ID2,LDAT) BNEQ 100$<; TRICK ENTRY IF ID2 IS 0, THEN ID1 PRESUMED TO BE ID. QUERY; BITMAPS HERE THEN.) CLRB @12(AP) ;ZERO IMPLIES NOTHING THERE MOVZWL @4(AP),R0 ;GET ID VALUE DECL R0 ;AND ZERO BASE IT MOVL R0,R2 ;COPY INDEX6 ASHL #-3,R0,R0 ;R0 BECOMES BYTE NO, R2 IS BIT IN BYTE( BICL #^XFFFFE000,R0 ;LOSE ANY HIGH BITS% BICL #^XFFFFFFF8,R2 ;IN BOTH INDICES: MOVZBL L^BITS(R2),R4 ;GET BIT MASK IN A REG NOW FOR SPEED CLRL R1 BISL L^FV1(R0),R1 ;SET BITS BISL L^FV2(R0),R1< BISL L^FV4(R0),R1 ;SO IF ANY OF BITS IS SET WE HAVE NONZERO+ MCOML R4,R4 ;GET A MASK TO SELECT OUR BIT BICL R4,R1( BEQL 90$ ;IF RESULT IS 0 LEAVE 0 REPLY! MOVB #1,@12(AP) ;ELSE RETURN A 190$: RET100$: DECL R0> MULL2 #RRW,R0 ;FORM ID=(ID2-1)*RRW+ID1 TO GET INDEX INTO MAPS CVTWL @4(AP),R4 ADDL2 R4,R0 ;ADDS IN ID1+ DECL R0 ;MAKE THINGS START AT 0 FOR MACRO CLRL R1 ;R1 GETS RESULT MOVL R0,R2 ;COPY INDEX6 ASHL #-3,R0,R0 ;R0 BECOMES BYTE NO, R2 IS BIT IN BYTE( BICL #^XFFFFE000,R0 ;LOSE ANY HIGH BITS% BICL #^XFFFFFFF8,R2 ;IN BOTH INDICES: MOVZBL L^BITS(R2),R4 ;GET BIT MASK IN A REG NOW FOR SPEED BITB R4,L^FV1(R0) BEQL 1$0 MOVL #1,R1 ;1 IN RESULT IF THAT BIT SET IN MASK%1$: BITB R4,L^FV2(R0) ;TEST NEXT MASK BEQL 2$% BISL2 #2,R1 ;SET RESULT BIT IF SEEN22$: BITB R4,L^FV4(R0) ;CHECK "SIGN" BIT NOW IN MAP BEQL 3$$ MNEGL R1,R1 ;NEGATE RESULT IF SEEN.3$: MOVB R1,@12(AP) ;STORE BYTE IN RESULT CELL RETA;NOTE ABOVE WILL ALLOW 0 RETURN IF SIGN BIT SET AND OTHERS CLEAR. FVLDST: .WORD ^M. CVTWL @8(AP),R0 ;CALL IS FVLDGT(ID1,ID2,LDAT) DECL R0> MULL2 #RRW,R0 ;FORM ID=(ID2-1)*RRW+ID1 TO GET INDEX INTO MAPS CVTWL @4(AP),R4 ADDL2 R4,R0 ;ADDS IN ID1+ DECL R0 ;MAKE THINGS START AT 0 FOR MACRO CLRL R1 ;R1 GETS RESULT MOVL R0,R2 ;COPY INDEX6 ASHL #-3,R0,R0 ;R0 BECOMES BYTE NO, R2 IS BIT IN BYTE( BICL #^XFFFFE000,R0 ;LOSE ANY HIGH BITS% BICL #^XFFFFFFF8,R2 ;IN BOTH INDICES: MOVZBL L^BITS(R2),R4 ;GET BIT MASK IN A REG NOW FOR SPEED< BICB2 R4,L^FV1(R0) ;INITIALLY CLEAR ALL BITS, WILL SET NEXT BICB2 R4,L^FV2(R0) BICB2 R4,L^FV4(R0)+ CVTBL @12(AP),R3 ;GET INPUT BYTE TO "SAVE"# BGTR 1$ ;IF +, DON'T SET SIGN BIT' BISB2 R4,L^FV4(R0) ;IF -, SET SIGN BIT" MNEGL R3,R3 ; AND TAKE ABS VALUE!1$: BITB #1,R3 ;SEE IF 1 BIT SET BEQL 2$ BISB2 R4,L^FV1(R0)2$: BITB #2,R3 ;TEST 2 BIT BEQL 3$ BISB2 R4,L^FV2(R0)3$: RETE; NOTE A CALL WITH -4 WILL SET FV4 MAP AND NEITHER OF THE OTHERS. THEB; MAP CONDITION SO SET IS USED00 Y!Y%Y &YTADATADATADATADATADATA BY XVBLST/XVBLGT FOR FLAGGING BYTES3; THAT HAVE NOT BEEN INITED BUT HAVE BEEN EXAMINED. .END SUBROUTINE GETNNB(IPT,RETCD)G#C COPYRIGHT (C) 1983 GLENN EVERHART(@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY.R INCLUDE 'VKLUGPRM.FTN'LC PARAMETER RRW = 32C PARAMETER RCL = 32C RRW=MAX REAL ROWSLC RCL=MAX REAL COLSV:C RRW MUST BE 1 LARGER TO HANDLE 1ST 27 VARIABLES IN AVBLS#C VBLS AND TYPE DIMENSIONED RRW,RCLT4C **************************************************4C * *4C * SUBROUTINE GETNNB(IPT,RETCD) *4C * *4C **************************************************C CE<C GET NEXT NON-BLANK ELEMENT FROM LINE STARTING AT NONBLK+1CC RETCD = 1 O.K.C 2 NO NON-BLANK FOUNDCR@C IPT POINTS TO POSITION IN LINE WHERE NEXT NON-BLANK IS FOUND.=C IT IS UP TO CALLING PROGRAM TO RESET NONBLK FOR NEXT SCAN. C CBC CSCWCACNC GETNNB IS CALLED BY CAC ATC BASCNGC CMNDC NEXTELC STRCMPC0C;C MODIFICATION CLASSES: M2CVC1C2C)C VARIABLE USE0CC BLANK ' '03C IPT RETURNS POSITION OF NEXT NON-BLANK.X'C K HOLDS TEMPORARY VALUES.0+C LEND LAST NON-BLANK IN LINE(80).AAC NONBLK HOLDS CHARACTER TO LEFT OF THE START OF THE SCAN.DC RETCD HOLDS THE RETURN CODE. 1=O.K. 2=THE REST IS BLANKS.C,C;CECYC SUBROUTINE GETNNB(IPT,RETCD)CNCTCN INTEGER*2 IPT INTEGER*2 LEVEL,NONBLK,LEND" INTEGER*2 VIEWSW,BASED,BASE,RETCD INTEGER*2 KCM6 LOGICAL*1 LINE(80),ALPHA(27),COMMA,BLANK,RPAR,LPAR,EQC,+ COMMON LEVEL,LINE,NONBLK,LEND,VIEWSW,BASED#- COMMON /CONS/ ALPHA,COMMA,BLANK,RPAR,LPAR,EQVC0 RETCD=1 IF (NONBLK.GE.LEND) GOTO 999CEC AT LEAST 1 NON-BLANK EXISTS. K=NONBLK+1, DO 10 IPT=K,LEND " IF (LINE(IPT).NE.BLANK) GOTO 1000 10 CONTINUETC CSAC ACTUALLY, SHOULD NEVER FALL THROUGH IF 'LEND' IS SET CORRECTLY.CCLC(C THE REST ARE BLANKSI 999 RETCD=2 1000 RETURNL ENDC SUBROUTINE GETTTL(LINE)C READ IN A TERMINAL LINE SUBROUTINE GETTTL(LINE) LOGICAL*1 LINE(132)IC **** HERE IS THE SECTION OF CODE YOU NEED FOR NON-VMS-SPECIFIC VERSION READ(5,1000)LINE1000 FORMAT(132A1) C ********* RETURN END#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY.6C G H A S P - Generalized Histogram And Scatter PlotC REQUIREMENTS:HC COMMONS /EXTRA/ AND /PLOTS/ MUST EXIST, AND ARRAY MA'S DIMENSION (AS 4+C BYTE INTEGERS) MUST BE PLACED INTO NDLTY.IC NPLTS IS THE NUMBER OF PLOTS TO BE GENERATED; THEY ARE ALLOCATED OUT OFC ARRAY MA DYNAMICALLY.BC THE VARIABLES IN THE /PLOTS/ COMMON HAVE THE FOLLOWING MEANINGS:EC NDIM IS THE NUMBER OF DIMENSIONS. 1 IS HISTOGRAM, 2 IS SCATTER PLOT/C XMIN,YMIN ARE X,Y MIN COORDS IN THE HISTOGRAMC DX,DY ARE BIN SIZESLC NBINX,NBINY ARE NUMBER OF BINS IN X AND Y (NOTE GHASP WILL INDICATE NUMBERC OF OVERFLOWS)KC TITLE IS AN ARRAY OF CHARACTERS USED TO PRINT OUT THE TITLE FOR THE PLOT.:C THE SUBROUTINE INTERFACE IS TO CALL THE SUBROUTINE PLOT.CC CALL:$C CALL PLOT(XVAL,YVAL,IFUNCT,NPLT)JC WHERE XVAL AND YVAL ARE X,Y COORDINATES FOR THE PLOT IF SCATTERPLOT00 (YYWNW}, OR6C X IS THE COORDINATE AND Y THE WEIGHT IF A HISTOGRAM.C IFUNCT IS -1, 0, 1, OR 2.CC -1 MEANS INITIALIZE; CALL PLOT ONCE THIS WAY TO SET UP THE NUMBER6C OF HISTOGRAMS AND INITIALIZE ITS SCRATCH VARIABLES.DC 0 MEANS INITIALIZE VARIABLES FOR A GIVEN PLOT NUMBER. THIS EXPECTS8C YOU HAVE SET THE PLOTS COMMON VARIABLES UP BEFORE THE8C CALL. SET XVAL TO 4H/ DIM/ AT THIS CALL TO PRINT SOME;C INFORMATION ABOUT HOW MUCH OF THE PLOT ARRAY IS USED UP;7C THIS WILL ALLOW YOU TO CHANGE THE SIZE OF MA TO WHATC IS REALLY NEEDED.FC 1 MEANS ENTER A POINT IN THE HISTOGRAM/SCATTER PLOT, USING THE X AND=C Y VALUES. NOTICE THAT THE COMMON /PLOTS/ VARIABLES ARE NOT=C NECESSARILY THE SAME AS AT IFUNCT=0 TIME; ONCE THE PLOT IS,C INITIALIZED YOU JUST ADD POINTS AND PLOT.BC 2 MEANS PLOT THE HISTOGRAM OR SCATTER PLOT. THE XVAL ARGUMENT IS5C IMPORTANT AT THIS TIME; PLOT NUMBER MUST BE GIVEN.CJC A VARIETY OF OPTIONS FOR PLOT FORMAT EXIST AND ARE ENCODED BY THE LETTERKC USED IN THE XVAL ARGUMENT OF PLOT AT THE TIME YOU CALL IT WITH THE IFUNCTIC ARGUMENT OF 2. TWO OF THESE ARE THAT THE PLOT CAN BE MADE AS HIGH AS ITJC NEEDS TO BE TO PLOT THE DATA. THIS IS THE VARY COMMAND AND IS ENCODED ASKC 4H/ V/ (SEE EXAMPLE CALLER PROGRAM). ANOTHER OPTION IS THE HACK OPTION,IC CUTTING OFF THE PLOT AT ONE PAGE. THIS USES THE VALUE 4H/ H/. ONE CAN8C ALSO SCALE THE PLOT TO FIT ON A PAGE; 4H/ S/ WILL DOFC THIS. THERE ARE SOME DENSITY PLOTS AVAILABLE ALSO FOR SCATTER PLOTS;IC THE NORMAL PLOTS ARE 2 DIGIT NUMBERS (6 BITS ARE USED, PACKED 5 BINS TO(C A WORD, FOR COUNTING NUMBERS PER BIN).IC USE 4H/ Q/ FOR SHADED SCATTER PLOTS; DENSITY WILL BE APPROXIMATE ONLYGC BUT GHASP WILL ATTEMPT TO PLOT A SCATTER PLOT SHADED. NOTE A PLOT CANGC BE PRINTED OUT MORE THAN ONCE, IN DIFFERENT FORMATS, SO A PLOT MAY BE?C PLOTTED NUMERICALLY WITH 4H/ V/ AND IN SHADED MODE AS WELL.CC SUBROUTINE GAUSS(T,U)C DATA PI/3.14159/C DATA PI2/6.23818/C PHI=PI2*RANN(DUM)C X=COS(PHI)C Y=SQRT(1.-X*X)C IF(PHI.GT.PI) Y=-Y"C R=SQRT(-2.*ALOG(RANN(DUM))) C T=X*RC U=Y*R C RETURN C END,CC THE FOLLOWING IS A SAMPLE CALLING PROGRAM*C COMMON /EXTRA/ NDLTY,NPLTS,MA(5000)#C COMMON/PLOTS/NDIM,XMIN,YMIN,/C 1 DX, DY, NBINX, NBINY, TITLE(19)C DATA RDIM/4H DIM/C DATA RV /4H V/,C DATA ISETQ,ISETR/Z74567899,ZA4567899/C NPLTS=3C NDLTY=5000C CALL PLOT(0.,0.,-1,0) C X=RDIM C DY=5. C DX=.1C NBINX=100C NBINY=50 C NDIM=1C XMIN=-5.C YMIN=0.C CALL PLOT(X,0.,0,1)C CALL PLOT(X,0.,0,2)C NBINX=50 C DX=.08 C DY=DXC XMIN=-2.C YMIN=XMIN C NDIM=2C CALL PLOT(X,0.,0,3)C DO 50 I=1,5000C CALL GAUSS(X,Y)C CALL PLOT(X,1.,1,1)C CALL PLOT(Y,1.,1,2)C CALL PLOT(X,Y,1,3)C 50 CONTINUE C X=RVC CALL PLOT(X,0,2,1)C CALL PLOT(X,0,2,2)C CALL PLOT(X,0,2,3) C STOP C ENDCGC THE FOLLOWING ROUTINES ARE NEEDED FOR GHASP AND IMPLEMENTED CORRECTLYIC IN DEC FORTRAN AND SOME OTHERS; NOT NECESSARILY CORRECT IN IBM FORTRAN. FUNCTION MAND(I,J) INTEGER*4 I,J,MAND MAND=I.AND.J RETURN END FUNCTION MOR(I,J) INTEGER*4 I,J,MOR MOR=I.OR.J RETURN ENDCC THE REST IS STANDARD GHASP. SUBROUTINE HIHDIG(X,ID,IS) XT=X ID=0 IS=0 IF (ABS(X).EQ.0.0) RETURN IF (ABS(X).LT.1.) GO TO 20! IF (ABS(X).GE.10.) GO TO 30 ID=X RETURN 20 XT=XT*10. IS=IS-1! IF (ABS(XT).LT.1.) GO TO 20 GO TO 40 30 XT=XT/10. IS=IS+1" IF (ABS(XT).GE.10.) GO TO 30 40 ID=XT RETURN END" SUBROUTINE SHADER(LINE,ME,X) IMPLICIT INTEGER (A-Z). DIMENSION LINE(ME),HLINE(120),OLINE(120) DIMENSION ICH(32),JCH(32) DATA RQ/' Q'/ DATA BL/' '/? DATA ICH/' ','1','2','3','4','00 0Y!Y%Y &YTADATADATADATADATADATA5','6','7','8','9','A','B',A 1 'C','D','E','F','G','H','I','J','K','L','M','N','O','P',! 1 'Q','R','S','T','U','*'/C DATA JCH/'+','=',' ','=',' ','*',' ',' ',' ','X',' ',' ',' ',A 1 ' ','A',' ','B',' ',' ',' ','E',' ',' ',' ','H',' ','Q', 1 ' ','Z','I','O','0'/ IF (X.NE.RQ) RETURN IF (ME.GT.120) RETURN M=ME-1 DO 10 I=2,M HLINE(I-1)=LINE(I) LINE(I)=BL 10 CONTINUE RETURN ENTRY RESHD(X) IF (X.NE.RQ) RETURN M=M-1 DO 155 I=1,M DO 15 J=1,32' IF (HLINE(I).EQ.ICH(J)) GO TO 155 15 CONTINUE J=1 155 HLINE(I)=J DO 1600 I=1,32" IF (JCH(I).EQ.BL) GO TO 1600 IP=0 DO 1560 J=1,M OLINE(J)=BL# IF (HLINE(J).LE.I) GO TO 1560 OLINE(J)=JCH(I) IP=1 1560 CONTINUE IF (IP.EQ.0) RETURN% WRITE (6,1605) (OLINE(J),J=1,M) 1600 CONTINUE 1605 FORMAT ('+',15X,120A1) RETURN END) SUBROUTINE PLOT(X,Y,IENT,IPLT)< DIMENSION JA1(110),JA2(110),JA3(110),KA1(110),KA2(110)# DIMENSION KA3(110), KA4(110) DIMENSION IPNCH(120)5 DIMENSION XM(1), XLABL(2), YLABL(2)3 DIMENSION LINE(119),ICH(32),INDEX(8),AIND(8) 1 , XL(12), IBT(6), IZB(6) INTEGER*2 IXTR COMMON/IXTR/IXTR3C IXTR=1 SWITCHES OFF EXTRA STUFF AT BOTTOM OF PLOT" COMMON/PLOTS/ ND, XMIN,YMIN,. 1 DX, DY, NBINX, NBINY, TITLE(19). COMMON/EXTRA/NDIM, NPLTS, MA(1); EQUIVALENCE (XLABL(1),TITLE(16)),(YLABL(1),TITLE(18))& EQUIVALENCE(INDEX(1),AIND(1))? EQUIVALENCE (MA(1),XM(1)),(LINE(1),XL(1)),(INDEX(1),NDM),@ 1 (INDEX(2),IST),(AIND(3),XMN),(AIND(4),YMN),(AIND(5),DEX),2 2 (AIND(6),DEY),(INDEX(7),NBX),(INDEX(8),NBY) DATA PNC/4HPNCH/+ DATA ICH/ 1H , 1H1, 1H2, 1H3,B 1 1H4, 1H5, 1H6, 1H7, 1H8,A 2 1H9, 1HA, 1HB, 1HC, 1HD,@ 3 1HE, 1HF, 1HG, 1HH, 1HI,> 4 1HJ, 1HK, 1HL, 1HM, 1HN,D 5 1HO, 1HP, 1HQ, 1HR, 1HS,( 6 1HT, 1HU, 1H*/ DATA RDIM/4H DIM/ DATA RV/4H V/ DATA RH/4H H/6 DATA IBT/33554432, 1048576, 32768, 1024, 32, 1 /F DATA IZB /-1040187393, -32505857, -1015809, -31745, -993, -32 /A DATA BLANK/ 4H /, IXXPPP/ 4HXX++/,7 1 IPPPPP/ 4H++++/, IXXBBB/ 4HXX /,; 2 ICHX/ 1HX/, ICHP/ 1H+/,E 3 IHK/ 31/, NBT/ 6/,< 4 LINWDS/ 110/, NOUT/ 6/ DATA INIT/ 0/ IF(IENT.EQ. 1) GO TO 15& IF(IENT.EQ.-1) GO TO 1 IF(IENT.EQ. 0) GO TO 4% IF(IENT.EQ. 2) GO TO 19 WRITE(NOUT,57) IENT GO TO 56 1 INIT=1 DO 2 I=1,NDIM 2 MA(I)=0 ISTART=8*NPLTS*NBT DO 3 I=1,193 TITLE(I) = BLANK% IF(IENT.EQ.-1) GO TO 56#4 IF(INIT.EQ.0) GO TO 1- IF(1.LE.IPLT.AND.IPLT.LE.NPLTS) GO TO 5 WRITE(NOUT,58) IPLT GO TO 565 IF(DX.NE.0.0) GO TO 6 WRITE(NOUT,59) IPLT GO TO 566 IF(NBINX.LE.0) NBINX=100& IF(NBINX.GT.LINWDS) NBINX=LINWDS)C MAKE A MULTIPLE OF 10 BINS HORIZONTALLY NBINX=((NBINX-1)/10)*10+10 IF(ND.EQ.1) GO TO 7 IF(ND.EQ.2) GO TO 11 WRITE(NOUT,60) IPLT GO TO 567 IST=(ISTART-1)/NBT +1 ITEST= IST+ NBINX+ 2" IF(ITEST.LE.NDIM) GO TO 8 MA(IPLT) =0 WRITE(NOUT,61) IPLT GO TO 568 ISTART =ITEST*NBT IF(NBINY.LE.0) NBINY=100'C MAKE A MULTIPLE OF 10 BINS VERTICALLY! NBINY=((NBINY-1)/10)*10+10 NDM=1 XMN=XMIN YMN=YMIN DEX=DX 00 8YYWNW} DEY=DY NBX=NBINX NBY=NBINY DO 9 I=1,8 J=(I-1)*NPLTS +IPLT9 MA(J)=INDEX(I) J=IST+1 DO 10 I=J,ITEST10 XM(I)=0.08 IF(X.EQ.RDIM) WRITE(NOUT,75) ITEST,IPLT GO TO 56"11 IF(DY.NE.0.0) GO TO 12 WRITE(NOUT,59) IPLT GO TO 56#12 IF(NBINY.LE.0) NBINY=50% NBINY= ((NBINY-1)/10)*10+10" NBTS=(NBINX+2)*(NBINY+2)+ IF(ISTART+NBTS.LE.NDIM*NBT) GO TO 13 MA(IPLT)=0 WRITE(NOUT,61) IPLT GO TO 5613 IST=ISTART ISTART=ISTART+NBTS NDM=ND XMN=XMIN YMN=YMIN DEX=DX DEY=DY NBX=NBINX NBY=NBINY DO 14 I=1,8 J=(I-1)*NPLTS+IPLT14 MA(J)=INDEX(I) IST=(ISTART-1)/NBT +16 IF(X.EQ.RDIM) WRITE(NOUT,75) IST,IPLT GO TO 56.15 IF(1.GT.IPLT.OR.IPLT.GT.NPLTS) GO TO 56 DO 16 I=1,8 J=(I-1)*NPLTS+IPLT16 INDEX(I)=MA(J) IF(NDM.EQ.1) GO TO 17# IF(NDM.GE.2) GO TO 18 GO TO 56!17 IX= IFIX((X-XMN)/DEX+2.) IF(IX.LT.1) IX=1( IF(IX.GT. NBX+2) IX=NBX+ 2 IWD=IST+ IX XM(IWD) =XM(IWD) + Y GO TO 56 18 IX= IFIX((X-XMN)/DEX+2.)" IY= IFIX((Y-YMN)/DEY+2.) IF(IX.LT.1) IX=1 IF(IY.LT.1) IY=1# IF(IX.GT.NBX+2) IX=NBX+2" IF(IY.GT.NBY+2) IY=NBY+2. ILOC=(IY-1)*(NBX+2) + (IX+ IST -1) IWD=ILOC/NBT +1 JBT=MOD(ILOC,NBT) +1 NOO1=MA(IWD)/IBT(JBT) NO=MAND(NOO1,IHK) MAA1=MA(IWD) MAA2=IZB(JBT)& MA(IWD)=MAND(MAA1,MAA2) IF(NO.LT.31) NO=NO+1 MAA3=MA(IWD) MAA4=NO*IBT(JBT)% MA(IWD)=MOR(MAA3,MAA4) MA(IPLT) = MA(IPLT) + 1 GO TO 56319 IF(1 .LE.IPLT.AND.IPLT.LE.NPLTS) GO TO 20 WRITE(NOUT,58) IPLT GO TO 5620 DO 21 I=1,8 J= (I-1)*NPLTS + IPLT21 INDEX(I) = MA(J) IF(NDM.EQ.1) GO TO 22 IF(NDM.GE.2) GO TO 39 WRITE(NOUT,72) IPLT GO TO 56322 WRITE(NOUT,62) IPLT, (TITLE(I), I=1,15) IYMN =IFIX(YMN+.5)$ IDEY = IFIX(DEY + .5)% IF(IDEY .LE. 0) IDEY = 1 NE=NBX+17C CODE ADDED TO SCALE PLOTS IF DESIRED AND REQUIRED DATA RS/' S'/ IF (X.NE.RS) GO TO 2005 MAXY=-1 DO 2010 I=2,NE J=IST+I K=IFIX(XM(J)+.5)-IYMN IF (K.GT.MAXY) MAXY=K 2010 CONTINUE K=MAXY# IF (K.LE.NBY*IDEY) GO TO 2005)C MUST INCREASE IDEY TO MAKE PLOT FIT IDEY=K/NBY+1 DEY=10*IDEY CALL HIHDIG(DEY,ID,IS)# IF (DEY.EQ.10.*IS) GO TO 2016 ID=ID+1 2016 IDEY=ID*10.**IS IDEY=IDEY/10 DEY=IDEY 2005 CONTINUE WT = 0.0 MAXY= 10*IDEY AVG=0. WAG=0. AGG=-.5 DO 23 I=2,NE J= IST + I ZXM=XM(J) WT=WT+ZXM AGG=AGG+1. WAG=WAG+AGG*ZXM& K = IFIX(XM(J) + .5) - IYMN IF(K.GT.MAXY) MAXY=K K= K - NBY*IDEY IF(K.GT.31) K = 31 IF(K.LT.0.OR.X.EQ.RV) K=1 IF(X.EQ.PNC) K=123 LINE(I)=ICH(K) WAG1=WAG/WT AVG=(WAG1*DEX) AGG=-.5 STD=0. DO 232 I=2,NE J=IST+I ZXM=XM(J) AGG=AGG+1.* STDIF=ZXM*(AGG-WAG1)*(AGG-WAG1) STD=STD+STDIF 232 CONTINUE5C ACCUMULATE CRUDE STD DEVIATION FOR PLOTTED NUMBERS.C ALSO CRUDE AVERAGE. STDEV=DEX*SQRT(STD/WT) AVG=AVG+XMN, MAXY= ((MAXY-1)/(10*IDEY))*10 +10: IF((MAXY.LT.NBY.AND.X.EQ.RH).OR.X.EQ.RV) NBY=MAXY IF(X.EQ.PNC) NBY=MAXY% WRITE(NOUT,63) (LINE(L),L=2,NE)C WRITE(NOUT,64)00 @Y!Y%Y &YTADATADATADATADATADATA N = NE/5 -1 INEE=NBX+2 DO 25 I=1,NBX KNBX=I/10 LNBX=10*KNBX MNBX=I-LNBX LINE(I)=ICHP IF(MNBX.EQ.1) LINE(I)=ICHX IF(MNBX.EQ.2) LINE(I)=ICHX 25 CONTINUE LINE(NBX+1)=ICHX LINE(NBX+2)=ICHX. WRITE(NOUT,765) YLABL,(LINE(L),L=1,INEE) N = NBY - 9 I = N!133 IY = (I+9)*IDEY + IYMN ILOW = IY - IDEY DO 26 J=2,NE K = IST + J& L = IFIX(XM(K) + .5) - ILOW LINE(J)=ICH(1)! IF (L.LE.0) GO TO 26 LINE(J) = ICHX% IF(L .GE. IDEY) GO TO 26 IF(L.GT.31) L=31 LINE(J)=ICH(L+1)26 CONTINUE NEEE=NE+1 LINE(NEEE)=ICHX ME=NE+1. WRITE(NOUT,66) IY,ICHX, (LINE(L),L=2,ME) J = 9$130 ILOW= (I-2 +J)*IDEY + IYMN DO 28 K=2,NE M = IST + K& NO = IFIX(XM(M) + .5) - ILOW LINE(K) = ICH(1) IF(NO.LE.0) GO TO 28 LINE(K) = ICHX! IF(NO.GE.IDEY) GO TO 28 IF(NO.GT.31) NO=31$ LINE(K) = ICH(NO+1)28 CONTINUE NEEE=NE+1 LINE(NEEE)=ICHP ME=NE+1*30 WRITE(NOUT,67) ICHP,(LINE(L),L=2,ME) J = J - 1% IF(J .GE. 2) GO TO 130 ILOW=(I-1)*IDEY + IYMN DO 31 J=1,NE K = IST + J% NO = IFIX(XM(K) + .5) -ILOW LINE(J)=ICH(1) IF(NO.LE.0) GO TO 31 LINE(J) = ICHX! IF(NO .GE.IDEY) GO TO 31 IF(NO.GT.31) NO=31 LINE(J)=ICH(NO+1)31 CONTINUE NEEE=NE+1 LINE(NEEE)=ICHX ME=NE+1-33 WRITE(NOUT,67) ICHX, (LINE(L),L=2,ME ) I = I- 10" IF(I .GE. 1) GO TO 133 N =NE/5 -1 INEE=NBX+2 DO 34 I=1,NBX KNBX=I/10 LNBX=10*KNBX MNBX=I-LNBX LINE(I)=ICHP IF(MNBX.EQ.1) LINE(I)=ICHX IF(MNBX.EQ.2) LINE(I)=ICHX 34 CONTINUE LINE(NBX+1)=ICHX LINE(NBX+2)=ICHX- WRITE(NOUT,768) IYMN,(LINE(L),L=1,INEE) N=NE/10 +1 DO 35 I=1,N*35 XL(I) = FLOAT(I-1)*DEX*10.0 + XMN' WRITE(NOUT,69) (XL(L),L=1,N)C WRITE(NOUT,64) DO 36 I=2,NE J=IST + I( NO = IFIX(XM(J) + .5) - IYMN LINE(I) =ICH(1) IF(NO.GE.0) GO TO 36 NO =-NO IF (NO.GT.31) NO=31 LINE(I) = ICH(NO+1)36 CONTINUE% WRITE(NOUT,63) (LINE(L),L=2,NE) J=IST+1 JUND=IFIX(XM(J)+.5) - IYMN J=IST+NBX+2 JOVR=IFIX(XM(J)+.5) - IYMNC WRITE(NOUT,64) LNX=0 DO 1907 I=2,NE J=IST+I JA1(1)=ICH(1) KA1(1)=ICH(1) MNX=IFIX(XM(J)+.5) IPNCH(I-1)=MNX 7777 FORMAT(20I4) LNX=LNX+MNX J1=MNX/100 K1=(MNX-100*J1)/10 L1=MNX-100*J1-10*K1 IF(J1.GT.30) J1=31* IF((MNX.GE.100).AND.(K1.EQ.0)) K1=24* IF((MNX.GE. 10).AND.(L1.EQ.0)) L1=24 JA1(I)=ICH(J1+1) JA2(I)=ICH(K1+1) JA3(I)=ICH(L1+1) J1=LNX/1000  K1=(LNX-1000*J1)/100 L1=(LNX-1000*J1-100*K1)/10! M1=LNX-1000*J1-100*K1-10*L1  IF(J1.GT.30) J1=31* IF((LNX.GE.1000).AND.(K1.EQ.0))K1=24* IF((LNX.GE. 100).AND.(L1.EQ.0))L1=24* IF((LNX.GE. 10).AND.(M1.EQ.0))M1=24 KA1(I)=ICH(J1+1) KA2(I)=ICH(K1+1) KA3(I)=ICH(L1+1) KA4(I)=ICH(M1+1) 1907 CONTINUE IWTA=WTI IF(IXTR.GE.1)GOTO 8200 :C PUT OUT CRUDE OVERFLOW/UNDERFLOW/STATS ON GRAPH. SKIP IF:C IXTR=1 SO WE CAN PUT GRAPHS OUT ON TERMINALS WITHOUT ALLC THE EXTRA LINES OF STUFF. 0 WRITE(6,76) JUND,IWTA,XLABL,JOVR,AVG,STDEVC 76 FORMAT(5X,'UNDERFLOW =',I4,2X,'TOTAL IN PLOT =',I5,4X,2A4,4X, B 1 'OVERFLOW =',I4,4X,'AVERAGE = ',1PE10.3,2X,'STAND. DEV = ', 2 1PE10.3 /)V2 IF(X.EQ.PNC)WRITE(7,7777) (IPNCH(L),L=1,NBX) WRITE(6,1743)P# WRITE(6,1700 HYYWNW}44) (JA1(L),L=2,NE)O# WRITE(6,1744) (JA2(L),L=2,NE)A# WRITE(6,1744) (JA3(L),L=2,NE)1 WRITE(6,1745)L# WRITE(6,1744) (KA1(L),L=2,NE)M# WRITE(6,1744) (KA2(L),L=2,NE) # WRITE(6,1744) (KA3(L),L=2,NE)T# WRITE(6,1744) (KA4(L),L=2,NE)B" 1743 FORMAT(50X,'EVENTS PER BIN')& 1745 FORMAT(50X,'INTEGRAL OF EVENTS') 1744 FORMAT(15X,115A1)D 8200 CONTINUEL DO 38 I=1,19A38 TITLE(I) = BLANKO GO TO 56-39 WRITE(NOUT,62) IPLT,(TITLE(I),I=1,15)M NE = NBX +2 DO 40 I=1,NE( ILOC = IST + (NBY+1)*NE +I -1 IWD = ILOC/NBT +1T" JBT = MOD(ILOC,NBT) + 1# NOO1=MA(IWD)/IBT(JBT)S NO=MAND(NOO1,IHK)40 LINE(I) = ICH(NO+1)O ITEMP = LINE(NE) DO 41 I=1,6C MMME=NE+I-141 LINE(MMME)=ICH(1) LINE(NE+6) = ITEMPN ME = NE +6. WRITE(NOUT,63) (LINE(L),L=1,ME)C WRITE(NOUT,64)V N = NE/5 -1 INEE=NBX+2 DO 42 I=1,NBX  KNBX=I/10O LNBX=10*KNBX MNBX=I-LNBX  LINE(I)=ICHP IF(MNBX.EQ.1) LINE(I)=ICHX IF(MNBX.EQ.2) LINE(I)=ICHX 42 CONTINUE LINE(NBX+1)=ICHX LINE(NBX+2)=ICHX0 WRITE(NOUT,8799) YLABL,(LINE(L),L=1,INEE) MN=N+2 N = NBY -9 I = NO#150 YL = FLOAT(I+9)*DEY+YMN DO 43 J=1,NE$ ILOC = IST + (I+9)*NE +J -1 IWD = ILOC/NBT + 1" JBT = MOD(ILOC,NBT) +1! NOO1=MA(IWD)/IBT(JBT)N NO=MAND(NOO1,IHK)43 LINE(J) = ICH(NO+1)D ITEMP = LINE(NE) LINE(NE) = ICHX DO 44 J=1,544 LINE(NE+J) = ICH(1)  LINE(NE+6) = ITEMP ME =NE +6 CALL SHADER (LINE,NE,X)U8 WRITE(NOUT,70) LINE(1),YL,ICHX,(LINE(L),L=2,ME) CALL RESHD(X)U J = 9/*147 IY = IST + (I + J -1)*NE - 1 DO 45 K =1,NE ILOC = IY + K IWD = ILOC/NBT + 1" JBT = MOD(ILOC,NBT) +1' NOO1=MA(IWD)/IBT(JBT)R NO=MAND(NOO1,IHK)C 45 LINE(K) = ICH(NO+1) ITEMP = LINE(NE) LINE(NE) = ICHP MME=NE+1 MMME=NE+5 DO 46 K=MME,MMMEY46 LINE(K) = ICH(1) LINE(NE+6) = ITEMP ME =NE+6 47 CALL SHADER(LINE,NE,X)1 WRITE (6,767) LINE(1),ICHP,(LINE(L),L=2,ME), CALL RESHD(X)I J = J-1 % IF(J .GE. 2) GO TO 1475 IY =IST + I*NE -1 DO 48 J=1,NE  ILOC = IY + J  IWD = ILOC/NBT + 1 & JBT = MOD(ILOC,NBT) + 1% NOO1=MA(IWD)/IBT(JBT)  NO=MAND(NOO1,IHK)0 48 LINE(J)=ICH(NO+1) ITEMP = LINE(NE) LINE(NE)=ICHX  KKE=NE+1 KKKE=NE+53 DO 49 J=KKE,KKKE49 LINE(J) = ICH(1)1 LINE(NE+6) = ITEMP ME = NE +6 50 CALL SHADER(LINE,NE,X)1 WRITE (6,767) LINE(1),ICHX,(LINE(L),L=2,ME)N CALL RESHD(X)L I = I - 10( IF(I .GE. 1) GO TO 150 N =NE/5 -1 INEE=NBX+2 DO 51 I=1,NBXN KNBX=I/10E LNBX=10*KNBX MNBX=I-LNBXM LINE(I)=ICHP IF(MNBX.EQ.1) LINE(I)=ICHX IF(MNBX.EQ.2) LINE(I)=ICHX 51 CONTINUE LINE(NBX+1)=ICHX LINE(NBX+2)=ICHX, WRITE(NOUT,771) YMN,(LINE(L),L=1,INEE) N =NE/10 +1 DO 52 I=1,N (52 XL(I) = FLOAT(I-1)*DEX*10. +XMN) WRITE(NOUT,69) (XL(L),L=1,N) C WRITE(NOUT,64) IY=IST-1I DO 53 I=1,NE ILOC=IY+I IWD =ILOC/NBT + 1N% JBT = MOD(ILOC,NBT) + 1$ NOO1=MA(IWD)/IBT(JBT) NO=MAND(NOO1,IHK) 53 LINE(I) = ICH(NO+1) ITEMP = LINE(NE) KLE=NE+5' DO 54 I=NE,KLE54 LIN00 PY!UY%Y &YTADATADATADATADATADATAE(I) = ICH(1)' LINE(NE+6)=ITEMP ME = NE +6') WRITE(NOUT,63) (LINE(L),L=1,ME)' NO = MA(IPLT) - 2! WRITE(NOUT,74) NO,XLABL' DO 55 I=1,1955 TITLE(I) = BLANK'56 RETURN(57 FORMAT(' ILLEGAL ENTRY NO.',I8))58 FORMAT(' ILLEGAL PLOT NO.', I8)(.59 FORMAT(' ZERO BIN WIDTH ON PLOT',I5)360 FORMAT('ILLEGAL DIMENSIONALITY FOR PLOT',I5)1861 FORMAT(' NOT ENOUGH MEMORY LEFT FOR PLOT',I5)162 FORMAT(1H1,10X,'PLOT NUMBER',I5,10X,15A4)63 FORMAT(15X,117A1) C64 FORMAT()) 65 FORMAT(1X,2A4,4X,23A5)66 FORMAT(2X,I11,1X,118A1) 67 FORMAT(14X,118A1)F 68 FORMAT(1X,I11,1X,23A5) 69 FORMAT(9X,12(1PE10.2))'70 FORMAT(2X,A1,1PE11.2,1X,118A1))"71 FORMAT(2X,1PE11.2,1X,23A5)@72 FORMAT(' PLOT NUMBER',I5,' NOT SUCCESSFULLY INITIATED.')A73 FORMAT(' TOTAL WEIGHT OF EVENTS PLOTTED =',F10.1,10X,2A4)5?74 FORMAT(' NUMBER OF EVENTS PLOTTED =',I8,'.',10X,2A4)Y775 FORMAT(1X,I5,' WORDS OF PLOTTING AREA USED,'K 1 ' INCLUDING PLOT',I4,'.')HC 76 FORMAT(20X,'UNDERFLOW = ',I5,10X,'OVERFLOW = ',I5,10X,'AVERAGE = '(C 1 ,1PE10.3,5X,'ST. DEV = ',1PE10.3) 165 FORMAT(2X,2A4,4X,23A5)8 8799 FORMAT(2X,2A4,5X,114A1)(# 771 FORMAT(2X,1PE11.2,2X,114A1)/ 765 FORMAT(2X,2A4,4X,114A1) 768 FORMAT(2X,I11,1X,114A1) 767 FORMAT(2X,A1,12X,114A1), END' SUBROUTINE NORM (TOT, IPLT) ! DIMENSION XM(1),INDEX(8)M( COMMON/EXTRA/ NDLTY, NPLTS, MA(1)C EQUIVALENCE(MA(1),XM(1)),(INDEX(1),NDM),(INDEX(2),IST),  1 (INDEX(7),NBX)(/ IF(1.GT.IPLT.OR.IPLT.GT.NPLTS) RETURNE DO 1 I=1,8N J = (I-1)*NPLTS + IPLT 1 INDEX(I) = MA(J) IF ( NDM .NE. 1) RETURNA NE =NBX + 2 WT =0.01 DO 2 I=1,NE  J =IST + I52 WT = XM(J) + WT ADJ = TOT/WT  DO 3 I=1,NE J = IST + I 3 XM(J)= ADJ*XM(J) RETURN ENDH. SUBROUTINE GMADD(IA1,IA2,IB1,IB2,IR1,IR2,N,M)C MODIFIED FOR PCCPCAC *** NOTE MUST SUBTRACT 1 FROM BASE BEFORE ADDING OFFSET IN THISC *** ELEMENT..."C SUBROUTINE GMADD(A,B,R,N,M) INCLUDE 'VKLUGPRM.FTN' REAL*8 A,B,R DIMENSION A(1),B(1),R(1) C NM=N*M IAB=(IA2-1)*RRW+IA1-1 IBB=(IB2-1)*RRW+IB1-1 IRB=(IR2-1)*RRW+IR1-1 DO 10 I=1,N DO 10 J=1,M IJ=(I-1)*RRW+J CALL XVBLGT(IJ+IAB,0,A) CALL XVBLGT(IJ+IBB,0,B) R(1)=A(1)+B(1) CALL XVBLST(IJ+IRB,0,R) 10 CONTINUEC 10 R(IJ)=A(IJ)+B(IJ) RETURN END0 SUBROUTINE GMPRD(IA1,IA2,IB1,IB2,IR1,IR2,N,M,L)$C SUBROUTINE GMPRD(A,B,R,N,M,L) INCLUDE 'VKLUGPRM.FTN' REAL*8 A,B,R DIMENSION A(1),B(1),R(1)3C SPECIAL MATRIX MULTIPLY WITHIN SPREADSHEET MATRIX IAB=(IA2-1)*RRW+IA1-1 IBB=(IB2-1)*RRW+IB1-1 IRB=(IR2-1)*RRW+IR1-1 DO 10 K=1,L DO 10 J=1,M NL=(J-1)*RRW+K R(1)=0. CALL XVBLST(IRB+NL,0,R) DO 10 I=1,N NM=(J-1)*RRW+I ML=(I-1)*RRW+K CALL XVBLGT(IAB+NM,0,A) CALL XVBLGT(IBB+ML,0,B) A(1)=A(1)*B(1) CALL XVBLGT(IRB+NL,0,R) R(1)=R(1)+A(1)10 CALL XVBLST(IRB+NL,0,R)C R(NL)=R(NL)+A(NM)*B(ML) C10 CONTINUE RETURN END. SUBROUTINE GMSUB(IA1,IA2,IB1,IB2,IR1,IR2,N,M)"C SUBROUTINE GMSUB(A,B,R,N,M) INCLUDE 'VKLUGPRM.FTN' REAL*8 A,B,RC DIMENSION A(1),B(1),R(1) IAB=(IA2-1)*RRW+IA1-1 IBB=(IB2-1)*RRW+IB1-1 IRB=(IR2-1)*RRW+IR1-1 C NM=N*M DO 10 I=1,N DO 10 J=1,M IJ=(I-1)*RRW+J CALL XVBLGT(IAB+I00!XY"^YWNW}J,0,A) CALL XVBLGT(IBB+IJ,0,B) A=A-B CALL XVBLST(IRB+IJ,0,A) 10 CONTINUEC 10 R(IJ)=A(IJ)-B(IJ) RETURN END C SUBROUTINE GMTRA(A,R,N,M)C INCLUDE 'VKLUGPRM.FTN' C REAL*8 A,RC DIMENSION A(1),R(1) C IR=0C DO 10 I=1,N C IJ=I-NC DO 10 J=1,MC IJ=IJ+NC IR=IR+1C 10 R(IR)=A(IJ) C RETURN C END0 SUBROUTINE GTPRD(IA1,IA2,IB1,IB2,IR1,IR2,N,M,L)$C SUBROUTINE GTPRD(A,B,R,N,M,L) INCLUDE 'VKLUGPRM.FTN' REAL*8 A,B,R DIMENSION A(1),B(1),R(1)3C SPECIAL MATRIX MULTIPLY WITHIN SPREADSHEET MATRIX IAB=(IA2-1)*RRW+IA1-1 IBB=(IB2-1)*RRW+IB1-1 IRB=(IR2-1)*RRW+IR1-1 DO 10 K=1,L DO 10 J=1,M NL=(J-1)*RRW+K R(1)=0. CALL XVBLST(NL+IRB,0,R) DO 10 I=1,N$C INVERT ROW/COLUMN USE FOR MATRIX A NM=(I-1)*RRW+J ML=(I-1)*RRW+K CALL XVBLGT(IAB+NM,0,A) CALL XVBLGT(IBB+ML,0,B) A(1)=A(1)*B(1) CALL XVBLGT(IRB+NL,0,R) R(1)=R(1)+A(1) CALL XVBLST(IRB+NL,0,R)C R(NL)=R(NL)+A(NM)*B(ML) 10 CONTINUE RETURN END!C SUBROUTINE MINV(A,N,D,L,M)C INCLUDE 'VKLUGPRM.FTN'C REAL*8 A,D,L,M C REAL*8 BIGAC DIMENSION A(1),L(1),M(1) C D=1.0 C NK=-NC DO 80 K=1,NC NK=NK+N C L(K)=K C M(K)=KC KK=NK+KC BIGA=A(KK)C DO 20 J=K,NC IZ=N*(J-1)C DO 20 I=K,NC IJ=IZ+I*C 10 IF( ABS(BIGA)- ABS(A(IJ))) 15,20,20C 15 BIGA=A(IJ) C L(K)=I C M(K)=JC 20 CONTINUE C J=L(K)C IF(J-K) 35,35,25 C 25 KI=K-NC DO 30 I=1,NC KI=KI+NC HOLD=-A(KI)C JI=KI-K+JC A(KI)=A(JI)C 30 A(JI) =HOLD C 35 I=M(K)C IF(I-K) 45,45,38C 38 JP=N*(I-1)C DO 40 J=1,NC JK=NK+JC JI=JP+JC HOLD=-A(JK)C A(JK)=A(JI)C 40 A(JI) =HOLDC 45 IF(BIGA) 48,46,48 C 46 D=0.0 C RETURNC 48 DO 55 I=1,NC IF(I-K) 50,55,50C 50 IK=NK+IC A(IK)=A(IK)/(-BIGA)C 55 CONTINUEC DO 65 I=1,NC IK=NK+IC HOLD=A(IK) C IJ=I-NC DO 65 J=1,NC IJ=IJ+NC IF(I-K) 60,65,60C 60 IF(J-K) 62,65,62C 62 KJ=IJ-I+KC A(IJ)=HOLD*A(KJ)+A(IJ)C 65 CONTINUE C KJ=K-NC DO 75 J=1,NC KJ=KJ+NC IF(J-K) 70,75,70C 70 A(KJ)=A(KJ)/BIGAC 75 CONTINUEC D=D*BIGAC A(KK)=1.0/BIGAC 80 CONTINUE C K=NC 100 K=(K-1)C IF(K) 150,150,105 C 105 I=L(K)C IF(I-K) 120,120,108C 108 JQ=N*(K-1)C JR=N*(I-1)C DO 110 J=1,NC JK=JQ+JC HOLD=A(JK)C JI=JR+JC A(JK)=-A(JI)C 110 A(JI) =HOLD C 120 J=M(K)C IF(J-K) 100,100,125 C 125 KI=K-NC DO 130 I=1,NC KI=KI+NC HOLD=A(KI)C JI=KI-K+JC A(KI)=-A(JI)C 130 A(JI) =HOLDC GO TO 100 C 150 RETURN C END3C MUNG CMD LINES TO ALLOW AUTO-ENTRY OF NUMBERS BUT%C FORMULAS TO START WITH / CHARACTER.!C TRY AND KEEP CURSOR CTLS AS IS."C // SWITCHES TO OLD MODE COMMANDS4C /+ SWITCHES TO NEW MODE COMMANDS (INITIAL DEFAULT)'C NUMERICS (0-9 IN COL 1) TREATED AS EV#C ALPHAS (" IN COL 1) TREATED AS E":C / CHANGED TO JUST FOR COMMAND ENTRY SUBROUTINE GTMUNG(LINE) LOGICAL*1 LINE(132) INTEGER*2 IMODE,LIMODE LOGICAL*1 C2 INTEGER*2 MODPUB COMMON/MODPUB/MODPUB,LIMODE DATA IMODE/0/GC HANDLE EXTRA MODE PARSING...DEFAULT,TO AVOID ENTER CMD IF NOT NEEDED.*C SKIP HANDLING ESC SEQUENCES AND THE LIKE- IF(LINE(1).LT.34.OR.LINE(1).GT.122)GOTO 6000<C SKIP OTHER COMMAND INITIATING SPECIAL CHARS AS APPROPRIATE- IF(LINE(1).GT.34.AND.LINE(1).LT.40)GOTO 6000 IF(LINE(1).EQ.42)GOTO 6000- IF(LINE(1).GE.58.AND.LINE(1).LE.64)GOTO 6000 IF(LINE(1).EQ.95)GOTO 6000 IF(LINE(1).NE.'/')GOTO 100 IF(LINE(2).NE.'/')GOTO 110C SETUP OLD MODE WITH // IMODE=0 GOTO 900 110 CONTINUE00"`Y#cY%Y &YTADATADATADATADATADATA IF(LINE(2).NE.';')GOTO 120C SETUP NEW MODE WITH /; IMODE=1 GOTO 900 120 CONTINUE IF(LINE(2).NE.'#')GOTO 124 I=LIMODE LIMODE=IMODEC /# SWAPS LAST AND NEW MODES;C THUS /# CAN BE USED IN CMD FILE FOLLOWED BY // TO SET OLD=C CMD MODE AND A TERMINAL /# GETS BACK ORIGINAL USER CMD MODE IMODE=I GOTO 900 124 CONTINUE2C IF WE JUST SAW /COMMAND, MUNGE OUT THE INITIAL / IF(IMODE.EQ.0)GOTO 6000 DO 130 I=1,131130 LINE(I)=LINE(I+1) IF(LINE(1).EQ.'?')LINE(1)='H'!C MUNGE ? INTO HELP COMMAND ALSO. GOTO 6000 100 CONTINUE IF(IMODE.EQ.0)GOTO 60007C INPUT DIDN'T START WITH / SO TRY AND MAKE UP AN ENTER IF(LINE(2).EQ.'&')GOTO 6000)C 1& 2& ETC WORK STILL AS CURSOR CONTROLS C2='N' IF(LINE(1).EQ.'"')C2='"'-C IF(LINE(1).GE.'0'.AND.LINE(1).LE.'9')C2='V'- IF(LINE(1).LT.'0'.OR.LINE(1).GT.'9')GOTO 1709C INITIAL CHAR IS A DIGIT. IF 2ND CHAR IS ALSO A DIGIT OR8C SOMETHING REASONABLE THEN TREAT AS "EV" CMD. OTHERWISE3C JUST PASS AS A COMMAND SO CURSOR CTLS WORK STILL. IF(LINE(2).LE.' ')GOTO 6000>C ALLOW DIGIT FOLLOWED BY SPACE OR C.R. TO BE JUST CURSOR MOVE C2='V' 170 CONTINUEC MOVE DOWN PAST 'EV' II=3"C MOVE THE " DOWN AND BASH IT OUT. IF(C2.EQ.'"')II=2 DO 150 I=1,129 M=133-I MM=M-II150 LINE(M)=LINE(MM) LINE(1)='E' LINE(2)=C2 LINE(3)=' ' GOTO 6000900 LINE(1)='*'C MAKE COMMENT, THEN GO 6000 CONTINUE#C LET OTHER MODULES SEE MODE IN USE MODPUB=IMODE RETURN END8 SUBROUTINE GVSCAN(LINE,IBGN,LEND,LSTCHR,ID1,ID2,IVALID)#C COPYRIGHT (C) 1983 GLENN EVERHART=@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY.B0C VARSCN - SCAN COMMAND LINE FOR VARIABLE NAMES.C =C SCANS FOR VARIABLE NAMES OF FORM AAANNN WHERE AAA = LETTERSDC BETWEEN A AND Z UP TO NON-ALPHA, CORRESPONDING TO ROW, FOLLOWED BY:C NUMBERS IN THE 0-9 RANGE MAKING A DECIMAL COLUMN NUMBER.GC THIS VERSION IS FOR USE WITH A GRAPHICS PROGRAM AND WILL NOT DECODENGC FORMS OF TYPE P## OR D## AS WILL THE ONE IN PORTACALC. ALSO IT WILLHC NOT MAKE CHECKS ON LIMITS OF VARIABLES SAVE FOR VERY CRUDE CHECKS OFC REASONABLENESS.ECIC THE LETTERS ARE FORMED BYS2C A-Z ALONE GIVE ROW 1-26, COL 1. % IS ROW 27,COL1C A1-Z1 GIVE ROW 1-26, COL 2C AA1-ZZ1 ARE ROW 27-52, COL 2 IMPLICIT INTEGER*2 (A-Z)C PARAMETER RRW=1000F PARAMETER RCL=1000 GC RRCL IS USED AS A GUARD TO ENSURE AGAINST OVERFLOWS. VAX COMPLAINS OF C INTEGER OVERFLOWS (PAIN).N PARAMETER RRCL=1100 PARAMETER CUP=1,NEL=14#HC NOTE COL 1 IS DUMMY. DISPLAY THE SHEET SIDEWAYS SO WE GET USUAL VISUALGC ROWS, COLS., AND ACCUMULATORS A-Z,% JUST APPEAR AS A FICTITIOUS ROW 0 ,C ON DISPLAY, INSTEAD OF REAL COLUMN 1 HERE. DIMENSION LINE(LEND)W LOGICAL*1 LINE CE! INTEGER*2 RSM,CSM,AFG,ASM,VCF,CH C ZERO OUR VARIABLES8 LPFG=0 ! FLAG WE GOT A LOGICAL/PHYSICAL # FORM AND TYPE AFG=0 ! FLAG WE SAW AN ALPHA/ ASM=0 ! SUM OF ALPHAS HASHCODED (ACCUMULATOR) " NSM=0 ! ACCUMULATOR FOR NUMERICS NFG=0 ! FLAG WE SAW A NUMERICL RSM=0 ! AC FOR ROWS IN # FORMS CSM=0 ! AC FOR COLS IN # FORMSF ISPC=0 ! COUNTER FOR NONSPACES SEEN (USED TO STOP ON TRAILING SPACES) IF(LINE(IBGN).NE.'%')GOTO 2000A ID1=27  ID2=1 IVALID=1M LSTCHR=IBGN+1C SPECIAL CASE FOR % = AC #27G RETURNC 2000 CONTINUEC DO 1 N=IBGN,LENDA VCF=0 LSTCHR=NG CH=LINE(N)I#C IGNORE SPACES AND TABS IF LEADING  IF(CH.GT.32)ISPC=ISPC+1- IF(CH.GT.0.AND.CH.LE.32.AND.ISPC.EQ.0)GOTO 1C GET CHARACTER VALUE IN.UC MUST BE UPPERCASE.* IF(.NOT.(CH.GE.65.AND.CH.LE.91)) GOTO 100C CH IS AN ALPHA, RANGE A-ZL VCF=1 ! VALID CHAR SEEN AFG=1 !SAW THE ALPHAN" IF(ASM.LT.RRCL)ASM=(CH-64)+26*ASM2 IF(CH.EQ.80)LPFG=1 ! FLAG WE GOT PHYS. FORM MAYBE4 IF(CH.EQ.68)LPFG=2 ! FLAG WE GOT DISPLAY FORM MAYBE 100 CONTINUEC NEXT TEST NUMERICS) IF(.NOT.(CH.GE.48.AND.CH.LE.57))GOTO 101EC CH IS A NUMERIC, RANGE 0-9 VCF=1 ! VALID CHAR SEEN NFG=1 ! FLAG WE SAW NUMERIC IF(AFG.NE.0)GOTO 102G 103 CONTINUEAC INVALI00#hY$lY%oYNW}D ... NUMERIC AND NO PRIOR ALPHA. FLAG BAD NAME AND EXIT.C IVALID=0O RETURN 102 CONTINUED IF(NSM.LT.RRCL)NSM=(CH-48)+10*NSM ! CONVERT CHARS TO BINARY AS SEEN 101 CONTINUE1 IF(VCF.EQ.0)GOTO 2 !END ON ANY INVALID CHARACTERH 1 CONTINUE 2 CONTINUE IF(AFG.EQ.0)GOTO 103O ID1=ASM'C HERE WE MAKE ID2 JUST NSM, NOT 1+NSM.E ID2=NSMJC FLAG PURE ALPHAS NOT VALID FOR PLOTTING HERE. (THEY AREN'T SAVED ANYHOW) IF(NSM.LE.0)GOTO 103G# IF(ID1.GT.RRW.OR.ID1.LE.0)GOTO 1030# IF(ID2.GT.RCL.OR.ID2.LE.0)GOTO 103. IVALID=1N C ALL IS WELLA RETURND ENDC GN - GET NUMBER=" SUBROUTINE GN(LAST,LEND,NUM,LINE) IMPLICIT INTEGER*2(A-Z) PARAMETER CUP=1,NEL=14Y DIMENSION LINE(110) LOGICAL*1 LINET LOGICAL*1 NCH INTEGER*2 CH,SFG NUM=0 JSSF=0T ISSF=0( CH=00 SFG=1 NCH=0 DO 1 N=LAST,LENDE M=N NCH=LINE(N) CH=NCHI IF(CH.EQ.0)GOTO 2 IF(CH.EQ.45)SFG=-1PC SFG=SIGN FLAGE,C 43 IS ASCII FOR +; 45 IS ASCII FOR - SIGN.C IGNORE + SIGNS IF(CH.GT.32)ISSF=ISSF+1! IF(ISSF.EQ.0.AND.CH.EQ.32)GOTO 1I6C IGNORE SPACES TOO, PROVIDED THEY ARE LEADING SPACES.C (OTHERS MAY BE DELIMITERS.)N$ IF(CH.EQ.43.OR.CH.EQ.45)JSSF=JSSF+1/ IF(JSSF.GT.1.AND.(CH.EQ.43.OR.CH.EQ.45))GOTO 2G+C IF WE HAVEN'T SEEN A +/- PROCESS IT HERE.F IF(CH.EQ.43)GOTO 1 IF(CH.EQ.45)GOTO 1G IF(CH.LT.48.OR.CH.GT.57)GOTO 2MCC TERMINATE ON ANY NON NUMERIC. SHOULD ALLOW TERMINATE ON SECOND #." IF(NUM.LT.3100)NUM=10*NUM+(CH-48) 1 CONTINUEC NEXT LINE WAS MAX0...+2 LAST=MIN0(M,LEND)I NUM=NUM*SFG C ACCOUNTED FOR SIGN; NOW RETURN RETURNS END SUBROUTINE HELP(LVL)KC PRINT HELP INFO ON SCREEN USING FIRST 22 LINES. ASSUME XQTCMD INVALIDATESC THE DISPLAY.,C COPYRIGHT (C) 1983 GLENN AND MARY EVERHART INCLUDE 'VKLUGPRM.FTN' PARAMETER CUP=1,ED=11,ANSI=18 LOGICAL*1 FORM(80) LCR=13 LLF=10 CALL UVT100(ANSI) CALL UVT100(ED,2) CALL UVT100(CUP,1,1),C COPYRIGHT (C) 1983 GLENN and MARY EVERHARTC All Rights ReservedCC NEW PC HELP FILE?C DESIGNED TO BE SMALLER THAN OLD VERSION. READS FILES OFF DISK=C BY SKIPPING N*24 LINES AND DISPLAYING 24 LINES, WHERE N=LVL+C ASSUME HELP FILE ON DISK LOGGED CURRENTLY CLOSE(UNIT=3)& CALL ASSIGN(3,'[200,200]PCCHELP.HLP')@C USE A FIXED HELP FILE FOR MULTISCREEN HELP. LOWER OVERHEAD,... NSKP=LVL*24 IF(NSKP.GT.0)GOTO 7637 DO 7638 KKK=1,NSKP'7638 READ(3,7639,END=7637,ERR=7637)FORM7639 FORMAT(80A1) 7637 CONTINUE(C NOW READ IN THE DATA, WRITE TO SCREEN. DO 7640 KKK=1,24# READ(3,7639,END=7642,ERR=7642)FORM WRITE(6,7643)FORM,LCR,LLF7643 FORMAT(1X,82A1,4A1) 7640 CONTINUE 7642 CONTINUE CLOSE(UNIT=3) RETURN END6 The following is a set of notes on the PDP11 ODL file@which is intended as a very rough guide to what should be placedDin the root first if moving to an 11/44, 11/70, or 11/73 system with7I/D space enabled and using FCSFSL supervisor mode FCS.< It is very crude but the idea is to flatten out the overlay structure to speed up PortaCalc.=; If you finally have room, you may want to try and leave the;; overlays all resident except help. Normal operation calls<; XQTCMD, then RECALC, then DSPSHT. HE00%pYcY%Y &YTADATADATADATADATADATALP is only called when8; the user asks for it and is then person speed limited.;PORTACALC ODL FILE.; MINI VERSION ODL (PDP11)#; PROBABLY WRONG IN VARIOUS WAYS...; NOTABLE PROBLEM FOR PDP11:@; THIS VERSION CANNOT CALL XQTCMD FROM THE CALC OVERLAYS AND GET@; BACK RELIABLY. THAT NEEDS THEM TO CO-RESIDE, WHICH THEY CANNOT5; DO. THE FUNCTIONS ARE FORMALLY THERE BUT WILL FAIL.; Leaf 1: XQTCMD; Leaf 2: RECALC, CALC, etc.; Leaf 3: HELP; Leaf 4: DSPSHT .PSECT FUBAR,D,GBL,RW=; First, remove OTSALL etc. and let FCS things and OTS things*; get resolved in each branch of the tree.* .ROOT MAIN-*(DS,HL,RC,XQ),RCUT,RTU,OTSALLB; NOTE WSHEET AND WRKFIL ARE IN ROOT SO THEIR COMMONS WILL BE TOO.=MAIN: .FCTR OSP-BLOCK-INDEX-OTSROT-FUBAR-TTYINI-WSHEET-WRKFIL#; NOTE RECALC ETC. NEVER USE UVT100#OSP: .FCTR SPREDSHT/LB:.MAIN.:IN2AS>; HELP overlay root. You may use the other help system instead<; here, but remember: it needs a LUN open for the help file.0; Keep it overlain since the help text is large.HL: .FCTR SPREDSHT/LB:HELP; Calculate overlay root.,RC: .FCTR RECALC-CALC-*(C4,C5,C7,C8,CCC,FED)9; Frmedt handles {V1 forms (inline macros). Hopefully not; called too often.FED: .FCTR FRMEDT<; Errcx is a preparse for () pairs and is small. Flatten out; if possible.CCC: .FCTR ERRCXA; cmnd handles all * forms of commands and should be kept?; as low as possible in the calculate overlay (RC) if these are ; used much.!C4: .FCTR CMND-*(C41,C42,C43,C44)J; AT, BASCNG, and DECLR are called only for rare commands. Leave overlain. C41: .FCTR ATC42: .FCTR BASCNGC43: .FCTR DECLRE; USRFCT is called for all *U functions. Flatten if you can, but only-; after flattening the rest of the structure.C44: .FCTR USRFCT/LB:USRFCTB; postvl, inpost, nextel, calun, and calbin are top level mainline<; sorts of routines for the calc overlay. They handle number>; conversions and are fairly important. Flatten these parts of; the structure if possible.C5: .FCTR POSTVL-*(C51,C52,C6)H; note calun and calbin are frequently called. Try and put them into theF; root of the calculate overlay at least. Contyp and mul* will be less; often needed.C51: .FCTR CALUN-CONTYP-MULCON(C52: .FCTR CALBIN-*(C521,C522,C523,C524)C521: .FCTR CONTYP-MULCONC522: .FCTR MULADDC523: .FCTR MULDIVC524: .FCTR MULMULE; Varout doesn't do much except in *K mode but it may get called from-; calc anyway. You may want to flatten it in.C6: .FCTR VAROUT-MOUTB; inpost and nextel are also part of calc mainstream and should be; flattened if possible.C7: .FCTR INPOST-NEXTELD; list just handles list of *K mode commands (and only a partial oneF; at that). Leave overlain. NEXTEL is called from all over; flatten it; if possible.C8: .FCTR LISTK;SPLIT VARSCN AND UVT100 IN OXQTCMD SINCE THEY ARE USED AT DIFFERENT TIMES.-;ALSO SPLIT UP EDITING SUBROUTINES IN XQTCMD.E;IN THE OTHER OVERLAY STRUCTURE THEY ARE NOT THE BIGGEST LEG BUT THEY;WOULD BE HERE EXCEPT FOR THIS.; XQTCMD command overlay root.!XQ: .FCTR XQTCMD/LB:XQTCMD-USRCMD; DSPSHT sheet display root.DS: .FCTR DSPSHT$;LIB: .FCTR LB:[1,1]SYSLIB/LB:$SHORT .NAME RCUTL&RCUT: .FCTR RCUTL-*(X3,X4,X5,X6,VS,UV)G; flip, slend, strcmp, and varscn are used all over the place. Zero andA; zneg are used slightly less often and maybe could be put in theI; calculate overlay where they are used. VARSCN gets called from all overF; and the others are called only in the calculate overlay pretty much.X3: .FCTR FLIPX4: .FCTR SLENDX5: .FCTR STRCMPX6: .FCTR ZERO-ZNEGVS: .FCTR VARSCNI; uvt100 is called from all over too, and should also go into the root if; at all possible.UV: .FCTR UVT100 .NAME RC2DRTU: .FCTR RC2-*(GT,CM,EMS,GS,MEQ,MDT,XQA,XQB,XQC,XQD,XE,XF,P,Q,JUL)H; gmtx, vvary, are not used except in vary function or some matrix math.P: .FCTR USRFCT/LB:PMTX2:GMTXQ: .FCTR USRFCT/LB:VVARY:SIGN/; getnnb is used all over the calculate overlayGT: .FCTR GETNNBJ; errmsg is called from the calc overlay but hop00%xY&V&~Y'Y}efully is rarely actually ; calledEMS: .FCTR ERRMSGGS: .FCTR GMSUBSJ; cmdmun is called once per command. Put it in with the xqtcmds overlay if ; possible.CM: .FCTR CMDMUN?; mtxequ is to solve matrix equations, and mdet computes matrix@; determinants. Move down only if you need them to come in fast.MEQ: .FCTR MTXEQUMDT: .FCTR MDETA; the following .fctr areas xqa thru xqd should go in with xqtcmdB; overlay if possible. They perform various formula edit functionsD; the most important of which is relvbl which does the relocation of@; formulas. SED is used in the EDit command. The other 2 are for?; 2 of the unusual types of formulas (that is, XQC and XQD) and; probabvly can remain here.XQA: .FCTR XQTCMD/LB:RELVBLXQB: .FCTR XQTCMD/LB:SED:SSCMPXQC: .FCTR XQTCMD/LB:SVBLXQD: .FCTR XQTCMD/LB:SSTRD; pget and pgget are used in xqtcmd area for saving or loading savedC; spreadsheets. Only one is ever active at a time and they can stay4; here overlaying each other. They are fairly large.XE: .FCTR XQTCMD/LB:PGETXF: .FCTR XQTCMD/LB:PGGETD; julian date functions are called from calculate overlay and handle>; date arithmetic. If you have much date math, unoverlay them.JUL: .FCTR JULIAN @FCS11MN.ODL .END;; Further note:G; If at all possible use supervisor mode FCS by including the following ; line in your TKB command file:;; SUPLIB=FCSFSL:SV;D; which will greatly reduce your size by having most of the FCS code; run in supervisor mode...#C COPYRIGHT (C) 1983 GLENN EVERHARTS@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY.P<C$ INDEX - FIND THE LOCATION OF A CHARACTER WITHIN A STRING ;C SLIGHTLY MODIFIED FROM THE USUAL DEFINITION FOR PORTACALCO( INTEGER FUNCTION INDEX ( STR, C ) CE LOGICAL * 1 C, STR ( 1 )C-CC LIMIT RANGE OF SEARCH TO 512 BYTES. THIS IS ARBITRARY BUT I DOUBTM:C VIZIKLUGE WILL EVER DEAL IN LONGER STRINGS THAN THIS AND3C SEARCHES ALL OVER THE CREATION ARE TO BE AVOIDED.M DO 20019 I = 1, 5120 IF (.NOT.( STR ( I ) .EQ. 0 )) GOTO 20021 @C RETURN INDEX AS EITHER THE LOCATION OF THE CHARACTER OR OF THE9C END OF THE STRING FOR VIZIKLUGE. NOTE THAT THIS DIFFERSLC FROM USUAL RATFOR VERSION. INDEX=I RETURN20021 CONTINUE0 IF (.NOT.( STR ( I ) .EQ. C )) GOTO 20023  INDEX = ( I ) RETURN20023 CONTINUE20022 CONTINUEC 20019 CONTINUE20020 CONTINUE END ! INTEGER FUNCTION ISGN(IARG)) INTEGER*2 IARG IF(IARG.EQ.0)ISGN=0T IF(IARG.GT.0)ISGN=1S IF(IARG.LT.0)ISGN=-1 RETURN ENDS#C COPYRIGHT (C) 1983 GLENN EVERHARTA@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY.M<C$ INDEX - FIND THE LOCATION OF A CHARACTER WITHIN A STRING ( INTEGER FUNCTION INDEX ( STR, C ) Cm LOGICAL * 1 C, STR ( 1 )C,CC LIMIT RANGE OF SEARCH TO 512 BYTES. THIS IS ARBITRARY BUT I DOUBTe:C VIZIKLUGE WILL EVER DEAL IN LONGER STRINGS THAN THIS AND3C SEARCHES ALL OVER THE CREATION ARE TO BE AVOIDED.l DO 20019 I = 1, 5120 IF (.NOT.( STR ( I ) .EQ. 0 )) GOTO 20021 @C RETURN INDEX AS EITHER THE LOCATION OF THE CHARACTER OR OF THE9C END OF THE STRING FOR VIZIKLUGE. NOTE THAT THIS DIFFERSHC FROM USUAL RATFOR VERSION. INDEX=I RETURN20021 CONTINUE0 IF (.NOT.( STR ( I ) .EQ. C )) GOTO 20023  INDEX = ( I ) RETURN20023 CONTINUE20022 CONTINUEC 20019 CONTINUE20020 CONTINUE END ! INTEGER FUNCTION ISGN(IARG)H INTEGER*2 IARG IF(IARG.EQ.0)ISGN=0  00'Y(Y)Y*YTADATADATADATADATADATAIF(IARG.GT.0)ISGN=1S IF(IARG.LT.0)ISGN=-1 RETURN ENDH .TITLE INDEX<; INDEX(STRING,CHAR) GIVES EITHER HIGHEST LOC IN STRING WITH; CHARACTER OR END OF STRING.INDEX::" MOV 2(R5),R0 ;R0=CHAR STRING ADDR' MOVB @4(R5),R2 ;R2 IS CHARACTER TO USE MOV #256.,R3 ;MAX 256 CHARS%1$: TSTB (R0) ;SEE IF ZERO CHARACTER BEQ 2$ ;IF SO SCRAM CMPB (R0)+,R2 ;GOT THE CHAR? BEQ 2$ ;IF WE GOT IT, SKIP OUT SOB R3,1$ ;ELSE KEEP LOOKING?2$: SUB 2(R5),R0 ;FORM OFFSET TO CHAR. AUTOINC MAKES IT 1 BASED/ ;RATHER THAN 0 BASED, WHICH IS WHAT WE NEED ;FOR FORTRAN SUBSCRIPT.1 CLR R1 ;GET INDEX (STARTING AT 1) FOR CHARACTER RTS PCISGN:: CLR R1 CLR R0# TST @2(R5) ;SEE IF ARG IS NEGATIVE BLT 1$ BGT 2$ RTS PC ;RETURN 0 IF IT'S 01$: MOV #-1,R0 MOV #-1,R1 ;RETURN 32 BIT -1 RTS PC+2$: MOV #1,R0 ;RETURN 32 BIT +1 IF POSITIVE RTS PC .END .TITLE INDEX); MODIFIED INDEX FUNCTION FOR ANALYTICALC;COPYRIGHT(C) 1984 G. EVERHART;INDEX:: .WORD ^M@; FIRST SEARCH FOR NULL CHARACTER IN INPUT STRING, THEN LOOK FOR;MATCH UP TO THAT POINT. CLRL R7 MOVL #256.,R5$ MOVL 4(AP),R6 ;R6 IS STRING ADDRESS- LOCC R7,R5,(R6) ;LOCATE 0 (IN MAX 256 CHARS)' BNEQ 1$ ;IF NE WE FOUND A 0 SOMEWHERE,3$: MOVL R5,R0 ;ELSE RETURN 256. AS RESULT. RET"1$: MOVZBL @8(AP),R7 ;R7 GETS CHAR%; SUPPOSE WE SAID MAX 6 CHARS AND HAD; A B C <0> D E (<0> = NULL); 1 2 3 4 5 6; 1ST LOCC GIVES 3 CHARS LEFT<; 6-3=3 BUT WE WANT TO ENSURE THAT IF STRING IS NOT FOUND WE ; RETURN 4.7 SUBL3 R0,R5,R5 ;R5 GETS 256 - NO. BYTES THAT WERE LEFT. ;THUS R5 IS STRING LENGTH NULL TERMINATED. INCL R5 ;BUMP UP BY 1 AGAIN5; IF WE SEARCH FOR B ABOVE, LOCC GIVES R0=3, R5 HAS 4' LOCC R7,R5,(R6) ;SO RE HUNT FOR STRING& BEQL 3$ ;IF NOT THERE, RETURN LENGTH7 SUBL3 R0,R5,R0 ;IF IT IS THERE,SUBTRACT LENGTH LEFT TO ;GET STRING LOCATION.7 INCL R0 ;THEN ADD 1 TO ACCOUNT FOR FORTRAN SUBSCRIPTS RET .END SUBROUTINE INPOST (RETCD)#C COPYRIGHT (C) 1983 GLENN EVERHARTA@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY.I INCLUDE 'VKLUGPRM.FTN'AC PARAMETER RRW = 32C PARAMETER RCL = 32C RRW=MAX REAL ROWSCC RCL=MAX REAL COLSU:C RRW MUST BE 1 LARGER TO HANDLE 1ST 27 VARIABLES IN AVBLS#C VBLS AND TYPE DIMENSIONED RRW,RCLB4C **************************************************4C * *4C * SUBROUTINE INPOST *4C * *4C **************************************************CECA9C CONVERTS THE INPUT STRING (INFIX NOTATION) TO POSTFIX H!C FOR LATER EVALUATION BY POSTVLOCECOCC MODIFICATION CODES: M3,M10C CTIC MODIFIED 10-MAR-78 P.B. CHANGED STACK VALUE FOR FUNCTIONS FROM 15 TO 45 4C THIS CORRECTS IMPROPER EVALUATION OF SQRT(1.)-2.C CTCEC0C INPOST CALLSC !C ERRMSG PRINTS ERROR MESSAGESA00*YV&~Y'Y}/C NEXTEL GETS THE NEXT ELEMENT FROM LINE(80)GCTC C C INPOST IS CALLED BY CALCCIC.C0CGC1C )C THE VARIABLE AND FUNCTION CODES.T5C TABLE ALSO GIVES COMPARE VALUES AND STACK VALUES OFL6C FUNCTIONS THAT OCCUR WHEN EXPRESSIONS ARE EVALUATED.CCGCLCLC STACKC ELEMENT COMPARE STACKC CODE TYPE BYTES VALUE VALUEC=C 0 UNDEFINED - - -IC 1 ASCII 1 - -C 2 DECIMAL 8 - -C 3 HEXADECIMAL 4 - -C 4 INTEGER 4 - -C 5 MULT.PREC.(10) 20 - - C 6 MULT.PREC.(8) 20 - -C 7 MULT.PREC.(16) 20 - -WC 8 OCTAL 4 -C 9 REAL 8 - -RC 10-30 UNDEFINED - - - CC!C ----------FUNCTIONS------------NC C 31 ABS (=DABS) - 70 45C 32 IABS - 70 45C 33 FLOAT - 70 45)C 34 IFIX - 70 45C 35 AINT - 70 45C 36 INT (=IDINT) - 70 45 C 37 EXP (=DEXP) - 70 45C 38 ALOG (=DLOG) - 70 45,C 39 ALOG10(=DLOG10) - 70 45C 40 SQRT (=DSQRT) - 70 45C 41 SIN (=DSIN) - 70 45C 42 COS (=DCOS) - 70 45C 43 TANH (=DTANH) - 70 45C 44 ATAN (=DATAN) - 70 45C 45 RESERVED - - -U1C 46-100 RESERVED - - -DC.2C 110 ( - 70 152C 111 UNARY - - 50 492C 112 ** - 40 392C 113 * - 30 312C 114 / - 30 312C 115 + - 20 212C 116 - - 20 211C 117 ) - 10 -ECG2C 200 = - 10 10CICACACLCBCNC VARIABLE USEC3C I,K HOLDS TEMPORARY INTEGER*2 VALUES.09C LASTOP HOLDS THE TYPE OF LAST ELEMENT OBTAINEDCCC ON LINE(80). SET AT 0 AT BEGINNING OF EXPRESSION.=C USED BY NEXTEL TO IDENTIFY UNARY OPERATORS.NFC NONBLK POINTER IN LINE(80). NEXTEL STARTS SCAN AT NONBLK+1.GC OPVAL(200,2) HOLDS THE COMPARE AND STACK VALUE OF EACH OPERATOR.EAC PARVAL HOLDS 110 WHICH IS THE CODE FOR '(' IN STACK 2.L/C RETCD RETURN CODE. 1=O.K. 2=ERROR.S1C RETCD2 RETURN CODE FOR CALL TO NEXTEL.*GC RETTYP HOLDS TYPE OF NEXT ELEMENT IN LINE, EITHER A FUNCTION+C CODE OR A DATA TYPE CODE.J:C RETVAL(100) HOLDS VALUE OF NEXT ELEMENT IN LINE(80).)C ST1LIM HOLDS LIMIT OF STACK 1.))C ST2LIM HOLDS LIMIT OF STACK 2.A"C ST1PT STACK 1 POINTER."C ST2PT STACK 2 POINTER.1C ST1TYP TYPE OF EACH ELEMENT IN STACK 1T1C ST2TYP TYPE OF EACH ELEMENT IN STACK 2GCC VLEN HOLDS THE NUMBER OF BYTES USED BY EACH DATA TYPE.SCSC1CICSC SUBROUTINE INPOST (RETCD)QC)CTC  INTEGER*2 LEVEL,NONBLK,LEND INTEGER*2 LASTOPI INTEGER*2 VIEWSW,BASEDH INTEGER*2 OPVAL(200,2),PARVAL INTEGER*2 RETCD,RETCD2,RETTYP INTEGER*2 TYPE(RRWP,RCLP), INTEGER*2 ST1TYP(40),ST2TYP(40),ST1PT,ST2PT INTEGER*2 ST1LIM,ST2LIM INTEGER*2 VLEN(9) INTEGER*2 I,KCN LOGICAL*1 LINE(80)S" LOGICAL*1 AVBLS(20,27),RETVAL(20) LOGICAL*1 VBLS(8,RRWP,RCLP)& LOGICAL*1 STACK1(20,40),STACK2(20,40)C=C 7 COMMON /STACK/STACK1,STACK2,ST1PT,ST2PT,ST1TYP,ST2TYP,  1 ST1LIM,ST2LIM1 COMMON /V/TYPE,AVBLS,VBLS,VLEN COMMON /ERROR/ LASTOP+ COMMON LEVEL,LINE,NONBLK,LEND,VIEWSW,BASED,CC ? DATA OPVAL/30*-1,14*70,65*-1,70,50,40,30,30,20,20,10,82*-1,10,BF 1 30*-1,14*45,65*-1,15,49,39,31,31,21,21,-1,82*-1,10/ DATA PARVAL/110/)C3C C CLC(5C INITIALIZE STACKS, RETURN CODE DEFAULT, AND LASTOP  RETCD=1 ST1PT=1 ST2PT=1 LASTOP=0 C C SET UP FOR NEXTEL CALL NONBLK=NONBLK-1C C C C 4C **************************************************4C ***** GET NEXT ELEMENT OF EXPRESSION *************4C **************************************************CTCIC C NEXTEL RETURNS C 1 IF OPERAND!C 2 IF OPERATOR (VALUE IN RETTYP)8C 3 IF NO MORE ELEMENTSP C 4 IF ERRORC9C %50 CALL NEXTEL (RETVAL,RETTYP,RETCD2)) GOTO (100,200,300,999),RETCD2 STOP 50CLC,C'C1C 4C **00*Y+YY*YTADATADATADATADATADATA************************************************4C ******** OPERAND FOUND, PUT ON STACK 1 *********4C **************************************************C1C STACK 1 OVERFLOW CHECK!100 IF (ST1PT.GT.ST1LIM) GOTO 9901C1C1CC CO 109 CONTINUECA,C SUBROUTINE ERRCX HAS ALREADY ASSURED THAT8C IF AN OPERAND IS FOLLOWED BY AN = SIGN, THAT VARIABLE C IS NOT PART OF AN EXPRESSION.CB5C VARIABLE INDEX IS TO BE PLACED IN STACK1 (1,ST1PT)'9C SO IF YOU WANTED TO SPEED THE OPERATION AT THE EXPENSE 8C OF SPACE, YOU WOULD ONLY COPY RETVAL(1) IF RETTYP < 0 K=VLEN(IABS(RETTYP)), DO 110 I=1,KT110 STACK1(I,ST1PT)=RETVAL(I)U ST1TYP(ST1PT)=RETTYP6 ST1PT=ST1PT+1 GOTO 50C5CXCVCLC=CIC0CA4C **************************************************4C ***************** OPERATOR *********************4C **************************************************CF 200 CONTINUEC13C IF NO OTHER OPERATOR ON STACK 2, PLACE ON STACK 2T IF (ST2PT.EQ.1) GOTO 222 CDC AC COMPARE VALUE WITH OPERATOR IN STACK2, IF GREATER OR EQUAL THENDEC PLACE IN STACK 2 BECAUSE IT HAS HIGHER PRECEDENCE AND IS ASSOCIATEDCEC WITH PREVIOUSLY ENCOUNTERED OPERAND, IS A UNARY OPERATOR ASSOCIATEDDC WITH THE FOLLOWING ELEMENT, OR IS A '(' WHICH IS SAVED UNTIL A ')' C IS FOUND.=C- K=ST2TYP(ST2PT-1), IF (OPVAL(RETTYP,1).GE.OPVAL(K,2)) GOTO 220CRCREC IF POPPING OFF ELEMENTS FROM STACK2 BECAUSE ')' WAS FOUND THEN WHEN DC ')' IS FOUND WE GO TO 230 TO REMOVE THE OPERATOR '(' FROM STACK 2.C  IF (PARVAL.EQ.K) GOTO 230 IF (ST1PT.GT.ST1LIM) GOTO 990CXC)C (C OPERATOR ON STACK 2 GOES ONTO STACK 1.C, ST1TYP(ST1PT)=K ST1PT=ST1PT+1 ST2PT=ST2PT-1 GOTO 200EC(CEC PUT OPERATOR ON STACK 2!220 IF (ST2PT.GT.ST2LIM) GOTO 992H222 ST2TYP(ST2PT)=RETTYP ST2PT=ST2PT+1 GOTO 50C C5C REMOVE '(' FROM STACK 2 230 ST2PT=ST2PT-1  GOTO 50C C1C C C14C **************************************************4C ******* NO MORE ELEMENTS IN LINE *****************4C **************************************************C5C CLEAN OFF STACK 2H300 IF (ST2PT.EQ.1) GOTO 1000 C &C IF A '(' GO TO 350 TO THROW IT AWAY.( IF (ST2TYP(ST2PT-1).EQ.PARVAL) GOTO 350 IF (ST1PT.GT.ST1LIM) GOTO 990C CACR(C PLACE ELEMENT ON STACK 2 ONTO STACK 1.C  ST1TYP(ST1PT)=ST2TYP(ST2PT-1) ST1PT=ST1PT+1C-C THROW AWAY '(' FROM STACK 2.350 ST2PT=ST2PT-1D GOTO 300 CNC C C/C *** ERROR HANDLING ***CC STACK 1 OVERFLOW990 I=7/ GO TO 998C/C STACK 2 OVERFLOW992 I=9HC C 998 CALL ERRMSG(I) 999 RETCD=2R 1000 RETURN C  ENDC JULIAN DATE ROUTINESC CALLS:C N=JULIAN(YY/MM/DD)3C RETURNS JULIAN DATE BASED ON 1/1/80 FOR THAT DATENCeC CALL JULASC(N,STRADR)e1C TAKES JULIAN DATE AND DECODES TO ASCII YY/MM/DDlCsC N=JULMDY(IYR,IMO,IDA)o*C RETURNS JULIAN DATE GIVEN SEPARATE Y,M,DCd FUNCTION JULIAN(DATST)a INTEGER*4 DATST(2),DAT(2) LOGICAL*1 DATSTR(8)" LOGICAL*1 YRST(2),MOST(2),DAST(2) EQUIVALENCE(DATSTR(1),DAT(1))3 EQUIVALENCE(YRST(1),DATSTR(1)),(MOST(1),DATSTR(4))r EQUIVALENCE(DAST(1),DATSTR(7))  DAT(1)=DATST(1) DAT(2)=DATST(2) IJUL=1  DECODE(2,1,YRST,ERR=2)IYR 1 FORMAT(I2) DECODE(2,1,MOST,ERR=2)IMO DECODE(2,1,DAST,ERR=2)IDA IJUL=JULMDY(IYR,IMO,IDA), 2 CONTINUE JULIAN=IJUL RETURNl END FUNCTION JULMDY(IYR,IMO,IDA)  INTEGER*2 MLEN(12) / DATA MLEN/31,28,31,30,31,30,31,31,30,31,30,31/nC JULIAN DATE FROM Y,M,D C BASE=1/1/81i IJUL=1e IF(IYR.LT.80)GOTO 999 IYR=IYR-81 " IF(IMO.LE.0.OR.IMO.GT.12)GOTO 999 IF(IDA.GT.31)GOTO 999'C JUST RETURN ILLEGAL ENTRIES AS 1/1/80p AC=365.2500+Y,Y~Y'Y}*FLOAT(IYR)b IAC=ACh0C SLIGHTLY CRUDE BUT WORKABLE TREATMENT OF YEARS IJUL=IJUL+IACC NOW ADD IN MONTHS.. IF(IMO.GT.2.AND.MOD(IYR+1,4).EQ.0)IJUL=IJUL+1C ABOVE ACCOUNTS FOR LEAP YEARSm III=IMO-1 IF(III.LE.0)GOTO 22 DO 2 N=1,IIII2 IJUL=IJUL+MLEN(N)d 22 CONTINUE C NEXT DO DAYS IJUL=IJUL+IDA-1*C JUST ADD IN DAYS. SHOULD BE GOOD ENOUGH. 999 CONTINUE JULMDY=IJUL RETURNt END' SUBROUTINE JULASC(N,DATST,IYR,IMO,IDA)f-C CONVERT JULIAN DATE N INTO ASCII STRING STRm INTEGER*4 DATST(2),DAT(2) LOGICAL*1 DATSTR(8)" LOGICAL*1 YRST(2),MOST(2),DAST(2) EQUIVALENCE(DAT(1),DATSTR(1))3 EQUIVALENCE(YRST(1),DATSTR(1)),(MOST(1),DATSTR(4))l EQUIVALENCE(DAST(1),DATSTR(7))p INTEGER*2 MLEN(12) / DATA MLEN/31,28,31,30,31,30,31,31,30,31,30,31/f DATSTR(3)='/' DATSTR(6)='/' C FIRST SUBTRACT OFF WHOLE YEARS IYR=N/365 N=N-(365*IYR) C ADJUST FOR LEAP YRS SINCE 1981 IAC=IYR/4 N=N-IAC-C NOW SUBTRACT OFF MONTHS AS LONG AS POSSIBLEl DO 1 NN=1,12r IMO=NNs IF(N.LE.MLEN(NN))GOTO 2 N=N-MLEN(NN)s 1 CONTINUE 2 CONTINUE IDA=N IYR=IYR+81  ENCODE(2,3,YRST,ERR=5)IYR 3 FORMAT(I2) ENCODE(2,3,MOST,ERR=5)IMO ENCODE(2,3,DAST,ERR=5)IDA 5 CONTINUE IF(YRST(1).EQ.' ')YRST(1)='0' IF(MOST(1).EQ.' ')MOST(1)='0' IF(DAST(1).EQ.' ')DAST(1)='0' DATST(1)=DAT(1) DATST(2)=DAT(2)3C USE INTEGERS SINCE REAL*8 MIGHT OMIT FULL COPY IFr7C EXPONENT BYTE IS 0, AND CHARS MAY CAUSE NORMALIZATION C PROBLEMS SOMETIMES.i RETURNo END# SUBROUTINE WKDY(JULLO,JULHI,NDAYS)s@C GIVEN START AND END JULIAN DATE, FIGURE OUT HOW MANY WEEK DAYSC THERE ARE BETWEEN THEM. JL=JULLOm JH=JULHIi IF(JL.LE.JH)GOTO 10 JL=JULHIt JH=JULLOe 10 CONTINUEC IDL=(JH-JL)/7>C GET NUMBER OF WEEKS BETWEEN DAYS, 5 WORKDAYS PER WHOLE WEEK. IWDY=IDL*5 /C ADD 3 SO THAT MODULO OF SUNDAY IS 0, NOT WED.e IDOR=JH-JL-7*(IDL)t IF(IDOR.NE.0)IDOR=59C IDOR IS ORIGINAL # DAYS DIFFERENCE, CORRECTED FOR WHOLEeC WEEKS ALREADY ALLOWED. LD=JL+3 LD=MOD(LD,7). LH=JH+3 LH=MOD(LH,7)1EC NOW HAVE DAY OF WEEK START,END. FIND WORK DAYS THAT WEEK (M-F ONLY)e IKLU=0G IK2=1 IF(LD.LT.1)IK2=00 IF(LD.LT.1)LD=1 IF(LD.GT.5)LD=5BC FOR HIGH END OF RANGE IF THE END DATE IS SUNDAY SUBTRACT ONE DAY7C FROM THE DAYS SO WE OMIT THE MONDAY FROM THE RANGE...e IF(LH.LT.1)IKLU=IK2 IF(LH.LT.1)LH=1 IF(LH.GT.5)LH=59C LH = DAY ENDED ON, LD=START DAY, FORCED INTO WORK WEEK.d" IF (LH.GT.LD)IWDY=IWDY+LH-LD-IKLU) IF (LH.LE.LD)IWDY=IWDY+IDOR-(LD-LH)-IKLUtBC GIVES DAYS BETWEEN 2 DATES JUST LIKE JULIAN DATE SUBTRACTION FORC CALENDAR DATES. NDAYS=IWDYt RETURN  END$ SUBROUTINE WRKINT(JULLO,NWDY,JULHI)BC GETS JULLO = START DATE AND NWDY = NO. WORKDAYS (M-F) TO ADD AND?C FINDS JULHI = END JULIAN DATE, CONSTRAINED TO BE IN MONDAY TOnC FRIDAY RANGE. =C MUST ADD 3 BECAUSE THAT'S THE BIAS OF OUR JULIAN DATE BASE.c IDJL=MOD(JULLO+3,7)C IDJL = DAY CODE OF START DATEw NWWK=NWDY/5 JL=JULLOe IF(IDJL.LT.1)JL=JL+1i IF(IDJL.GT.5)JL=JL+2iC BUMP START INTERVAL... NWDD=NWDY-5*NWWKy JL=JL+NWWK*7+NWDD IDJL=MOD(JL+3,7)h IF(IDJL.LT.1)JL=JL+1d IF(IDJL.GT.5)JL=JL+2t)C FORCE OUTPUT DATE TO BE WITHIN WORKWEEKs JULHI=JL RETURNc ENDC JULIAN DATE ROUTINESC CALLS:C N=JULIAN(YY/MM/DD)3C RETURNS JULIAN DATE BASED ON 1/1/80 FOR THAT DATECC CALL JULASC(N,STRADR)1C TAKES JULIAN DATE AND DECODES TO ASCII YY/MM/DDCC N=JULMDY(IYR,IMO,IDA)*C RETURNS JULIAN DATE GIVEN SEPARATE Y,M,DC FUNCTION JULIAN(DATST) INTEGER*4 DATST(2),DAT(2) LOGICAL*1 DATSTR(8)" LOGICAL*1 YRST(2),MOST(2),DAST(2) EQUIVALENCE(DATSTR(1),DAT(1))3 EQUIVALENCE(YRST(1),DATSTR(1)),(MOST(1),DATSTR(4)) EQUIVALENCE(DAST(1),DATSTR(7)) DAT(1)=00,Y-Y.Y/YTADATADATADATADATADATADATST(1) DAT(2)=DATST(2) IJUL=1 DECODE(2,1,YRST,ERR=2)IYR 1 FORMAT(I2) DECODE(2,1,MOST,ERR=2)IMO DECODE(2,1,DAST,ERR=2)IDA IJUL=JULMDY(IYR,IMO,IDA) 2 CONTINUE JULIAN=IJUL RETURN END FUNCTION JULMDY(IYR,IMO,IDA) INTEGER*2 MLEN(12)/ DATA MLEN/31,28,31,30,31,30,31,31,30,31,30,31/C JULIAN DATE FROM Y,M,D C BASE=1/1/81 IJUL=1 IF(IYR.LT.80)GOTO 999 IYR=IYR-81" IF(IMO.LE.0.OR.IMO.GT.12)GOTO 999 IF(IDA.GT.31)GOTO 999'C JUST RETURN ILLEGAL ENTRIES AS 1/1/80 AC=365.25*FLOAT(IYR) IAC=AC0C SLIGHTLY CRUDE BUT WORKABLE TREATMENT OF YEARS IJUL=IJUL+IACC NOW ADD IN MONTHS.. IF(IMO.GT.2.AND.MOD(IYR+1,4).EQ.0)IJUL=IJUL+1C ABOVE ACCOUNTS FOR LEAP YEARS III=IMO-1 IF(III.LE.0)GOTO 22 DO 2 N=1,III2 IJUL=IJUL+MLEN(N) 22 CONTINUEC NEXT DO DAYS IJUL=IJUL+IDA-1*C JUST ADD IN DAYS. SHOULD BE GOOD ENOUGH. 999 CONTINUE JULMDY=IJUL RETURN END' SUBROUTINE JULASC(N,DATST,IYR,IMO,IDA)-C CONVERT JULIAN DATE N INTO ASCII STRING STR INTEGER*4 DATST(2),DAT(2) LOGICAL*1 DATSTR(8)" LOGICAL*1 YRST(2),MOST(2),DAST(2) EQUIVALENCE(DAT(1),DATSTR(1))3 EQUIVALENCE(YRST(1),DATSTR(1)),(MOST(1),DATSTR(4)) EQUIVALENCE(DAST(1),DATSTR(7)) INTEGER*2 MLEN(12)/ DATA MLEN/31,28,31,30,31,30,31,31,30,31,30,31/ DATSTR(3)='/' DATSTR(6)='/' C FIRST SUBTRACT OFF WHOLE YEARS IYR=N/365 N=N-(365*IYR) C ADJUST FOR LEAP YRS SINCE 1981 IAC=IYR/4 N=N-IAC-C NOW SUBTRACT OFF MONTHS AS LONG AS POSSIBLE DO 1 NN=1,12 IMO=NN IF(N.LE.MLEN(NN))GOTO 2 N=N-MLEN(NN) 1 CONTINUE 2 CONTINUE IDA=N IYR=IYR+81 ENCODE(2,3,YRST,ERR=5)IYR 3 FORMAT(I2) ENCODE(2,3,MOST,ERR=5)IMO ENCODE(2,3,DAST,ERR=5)IDA 5 CONTINUE IF(YRST(1).EQ.' ')YRST(1)='0' IF(MOST(1).EQ.' ')MOST(1)='0' IF(DAST(1).EQ.' ')DAST(1)='0' DATST(1)=DAT(1) DATST(2)=DAT(2)3C USE INTEGERS SINCE REAL*8 MIGHT OMIT FULL COPY IF7C EXPONENT BYTE IS 0, AND CHARS MAY CAUSE NORMALIZATIONC PROBLEMS SOMETIMES. RETURN END .TITLE JUNK .MCALL ALUN$SGO: ALUN$S #0,#20040,#0 .MCALL EXIT$S EXIT$S .END GOSPRINI/CR:40=SPRINIXQTCMD/CR:40=XQTCMDCMND/CR:40=CMNDSPREDSHT/CR:40=SPREDSHTWSHEET/CR:40=WSHEETUSRFCT/CR:40=USRFCT<;Creates .OLB files for PDP11 and PRO flavors of AnalytiCalc?; to allow builds. The /CR:40 is used where contiguous space is=; getting hard to find on disk. Use by saying LBR @LBRCRE.CMD*; (on VMS you may need "LBR:==MCR LBR")...8 SUBROUTINE LINFIT(ID1X,ID2X,IRCOL,ID1,ID2,N,A,B,DEL,RR) REAL*8 A,B,XY,SX2,SX,SY,RR REAL*8 XI,YI,SY2,EN,DEL,WRK$ INTEGER*2 N,ID1X,ID2X,IRCOL,ID1,ID2 INTEGER*2 IC,IR,KK,KKK,I&C FIT LINE TO EQUALLY SPACED POINTS...C Y=BX+A SY2=0. EN=N XY=0. SX2=0. SX=0. SY=0. IC=IRCOL IR=1-IRCOL$C IRCOL IS 0 OR 1 FOR ACROSS OR DOWN DO 10 I=1,N*C IF ID1X < 0 THEN FORM IT HERE AS ID1+I-1 IF (ID1X.GT.0)GOTO 20 C FORM XI XI=I GOTO 30 20 CONTINUE C INPUT XI KK=ID1X+IC*(I-1) KKK=ID2X+IR*(I-1) CALL XVBLGT(KK,KKK,XI) 30 CONTINUEC GET YI IN ANY CASE... KK=ID1+IC*(I-1) KKK=ID2+IR*(I-1) CALL XVBLGT(KK,KKK,YI) XY=XY+XI*YI!C FORM SUMS NEEDED TO FIT LINE... SX2=SX2+XI*XI SX=SX+XI SY=SY+YI SY2=SY2+YI*YI 10 CONTINUEC NOW GET SLOPE' WRK=((XY-(SX*SY)/EN)/(SX2-(SX*SX)/EN)) B=WRKC THEN INTERCEPT WRK=(SY/EN)-B*(SX/EN) A=WRK WRK=DSQRT((SY2-(A*SY+B*XY))/EN) DEL=WRKC DEL = ERROR OF FIT6 RR=(EN*XY-SX*SY)/DSQRT((EN*SX2-SX*SX)*(EN*SY2-SY*SY))C RR00/Y0Y1Y2Y} IS CORRELATION COEFFICIENT RETURN END&C FIT LINE TO EQUALLY SPACED POINTS...C Y=BX+A! SUBROUTINE LINFIT(X,Y,N,A,B,DEL) DIMENSION X(1),Y(1)& REAL*8 X,Y,A,B,XY,X2,SX,SY,SY2,EN,DEL INTEGER*2 N XY=0. X2=0. SX=0. SY=0. SY2=0. EN=N DO 10 I=1,N XY=XY+X(I)*Y(I)!C FORM SUMS NEEDED TO FIT LINE... X2=X2+X(I)*X(I) SX=SX+X(I)F SY=SY+Y(I) SY2=SY2+Y(I)*Y(I) 10 CONTINUEC NOW GET SLOPE# B=(XY-(SX*SY)/EN)/(SX2-(SX*SX)/EN)C THEN INTERCEPT A=(SY/EN)-B*(SX/EN) DEL=DSQRT((SY2-(A*SY+B*XY))/EN) RETURN END SUBROUTINE LIST#C COPYRIGHT (C) 1983 GLENN EVERHARTN@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY.M INCLUDE 'VKLUGPRM.FTN'UC PARAMETER RRW = 32C PARAMETER RCL = 32C RRW=MAX REAL ROWS C RCL=MAX REAL COLS :C RRW MUST BE 1 LARGER TO HANDLE 1ST 27 VARIABLES IN AVBLS#C VBLS AND TYPE DIMENSIONED RRW,RCLE4C **************************************************4C * *4C * SUBROUTINE LIST *4C * *4C **************************************************C*C*1C LISTS THE LEGAL CALC COMMANDS AND GIVES A BRIEFA C DESCRIPTION OF THEIR FUNCTION.CUCOCYC MODIFICATION CLASSES: M1CCCOCOC:C3C0C LIST IS CALLED BY CALCC8CBCHCECTC C SUBROUTINE LIST C 1CO WRITE (1,10)C WRITE (1,20)R WRITE (1,30)S WRITE (1,40) WRITE (1,50)N WRITE (1,60) WRITE (1,70)N WRITE (1,80)E WRITE (1,90)  WRITE (1,100) WRITE (1,130) WRITE (1,140) WRITE (1,150) WRITE (1,160) WRITE (1,170) WRITE (1,180) WRITE (1,190) RETURNC10 FORMAT (' COMMANDS-')820 FORMAT (' *@FILENAME EXECUTE FILE OF CALC COMMANDS'):30 FORMAT (' *ASCII DECLARE VARIABLES OF TYPE ASCII')940 FORMAT (' *B SET DEFAULT BASE FOR CONSTANTS')E750 FORMAT (' *C COMMENT, IGNORE REST OF LINE') .60 FORMAT (' *DECIMAL VARIABLE IS DECIMAL')70 FORMAT (' *E EXIT') *80 FORMAT (' *HEX VARIABLE IS HEX').90 FORMAT (' *INTEGER VARIABLE IS INTEGER')C100 FORMAT (' *M10, *M8, *M16 DECLARE VARIABLE MULTI-PRECISION',A 1 'BASE 10, 8, OR 16')?130 FORMAT (' *N NOVIEW --WHEN VARIABLE IS ASSIGNED ',7% ; ' DON''T PRINT VALUE')E-140 FORMAT (' *OCTAL VARIABLE IS OCTAL')=150 FORMAT (' *R READ --ALLOW SINGLE LINE OF INPUT',S* ; ' WHILE IN A COMMAND FILE')1160 FORMAT (' *REAL VARIABLE IS REAL TYPE')7(170 FORMAT (' *S STOP OR EXIT')@180 FORMAT (' *V VIEW --PRINT VALUE OF VARIABLES WHEN',( ; ' NEW VALUE IS ASSIGNED')1190 FORMAT (' *Z ZERO ALL ACCUMULATORS')  ENDC MATRIX DETERMINANT' SUBROUTINE MDET(XVBLS,I1,I2,J1,J2,DET) INCLUDE 'VKLUGPRM.FTN' REAL*8 XVBLS(1),DET,SUMA,SUMB.C NOTE XVBLS IS RRW BY RCL MATRIX IN PORTACALC/C I1,I2 ARE TOP COL,ROW COORD; J1,J2 ARE BOTTOM3C STORAGE OF XVBLS IS (COL,ROW) SO LOCATIONS INSIDEC IT ARE*C ADDR=(ROW-1)*RRW+COL (RRW IS # OF COLS) DET=0. N=J1-I1+1 M=J2-I2+1 IF(N.NE.M)RETURN IF(N.LE.1)RETURN4C ONLY SQUARE MATRICES MAY HAVE NONZERO DETERMINANTSC ALSO, DIMENSION HAS TO BE > 1 NN=N!C FIXUP... 002Y3YY/YTADATADATADATADATADATA(OK FOR N=2,3 ANYHOW) IF(N.EQ.2)NN=N-1C SUM OVER DIAGS...?C MULTIPLY DIAGONALS FROM TOP AND BOTTOM ROWS OF MATRIX AND GET#C DIFFERENCE EACH TIME FOR ACCURACY DO 1 N1=1,NN SUMA=1. SUMB=1. DO 2 N2=1,N NCL=N1+N2-1 N2L=N+1-N2 IF(NCL.GT.N)NCL=NCL-NEC NOW MULTIPLY SUMA (POSITIVE TERMS) BY X(NCL,N2) AND SUMB(NEG TERMS)C BY X(NCL,N2L) LA=(N2-2+I2)*RRW+I1+NCL-1 LB=(N2L-2+I2)*RRW+I1+NCL-1 CALL XVBLGT(LA,0,XVBLS(1)) SUMA=SUMA*XVBLS(1) CALL XVBLGT(LB,0,XVBLS(1)) SUMB=SUMB*XVBLS(1) 2 CONTINUE%C NOW ACCUMULATE TERMS IN DETERMINANT DET=DET+SUMA-SUMB>C DO IN THIS ORDER TO AVOID EXCESSIVE LOSS OF PRECISION DUE TO<C DIFFERENCES OF LARGE TERMS. THIS IS BAD ENOUGH AS IT IS... 1 CONTINUE RETURN END SUBROUTINE MOUT(INDEX,RETCD)T#C COPYRIGHT (C) 1983 GLENN EVERHARTC@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY.  INCLUDE 'VKLUGPRM.FTN'BC PARAMETER RRW = 32C PARAMETER RCL = 32C RRW=MAX REAL ROWSTC RCL=MAX REAL COLS*:C RRW MUST BE 1 LARGER TO HANDLE 1ST 27 VARIABLES IN AVBLS#C VBLS AND TYPE DIMENSIONED RRW,RCLR4C **************************************************4C * *4C * SUBROUTINE MOUT (INDEX,RETCD) *4C * *4C **************************************************CCCC=C THIS ROUTINE OUTPUTS VALUE OF A MULTIPLE PRECISION VARIABLE2CCLC1C RETCD MEANINGCNC 1 O.K.PC 2 ERRORC C C MODIFICATION CLASSES: M1,M3RCLCNC+C* C MOUT CALLSC="C ERRMSG PRINTS ERROR MESSAGES2C PRTCON CONVERTS 1-10 TO PRINTABLE 1,2,...9,0CLC,CLC)C MOUT IS CALLED BY VAROUTCTCEC C MODIFIED 5-DEC-1979 P.B.BC FIXED PROBLEM FOR COMPILERS WHOSE RUN-TIME SYSTEM DOESN'T ALLOW8C EXTRA COMMAS IN DYNAMICALLY CREATED FORMAT STATEMENTSCICACNCHC CIC VARIABLE USECDFC BVEC(3) HOLDS BASE VALUES TO BE INDEXED BY IBASE AND PRINTED"C UNDER I2 FORMAT.)C DIGITS(16,3) PRINTABLE ASCII DIGITS.EKC FORHEX HOLDS OUTPUT FORMAT STATEMENT WHEN OUTPUTTING HEXADECIMAL0EC NUMBERS (SEPARATES GROUPS OF 4 DIGITS WITH COMMAS).XLC FORMAT HOLDS OUTPUT FORMAT STATEMENT WHEN OUTPUTTING NUMBERS WITHJC COMMAS EVERY 3 DIGITS. FIRST PART IS USED WHEN LESS THANIC 4 DIGITS OR HEXADECIMAL AND EXACTLY 4 DIGITS IS OUTPUT. "C I,I1,I2 TEMPORARY VALUES<C IBASE CODES BASE: 1=BASE 10, 2=BASE 8, 3=BASE 16=C IGRP NUMBER OF COMMAS NEEDED TO SEPARATE DIGITS.E3C INDEX POINTER TO VARIABLE TO BE OUTPUT.B=C LOG1 LOGICAL*1 USED AS ARGUMENT IN PRTCON CALLS.81C NONE NUMBER OF DIGITS TO BE PRINTED.BC RPAR ')' DC SIGN(2) VECTOR USED TO PRINT APPROPRIATE SIGN ('+' OR '-').C TYPE HOLDS TYPE OF EACH VARIABLE.C C C C C SUBROUTINE MOUT(INDEX,RETCD)CC 1C INDEX POINTS TO AN ELEMENT IN VBLS TO BE OUTPUT 1C (A MULTIPLE PRECISION NUMBER BASE 10, 8, OR 16) C C C  INTEGER*2 RETCD,VLEN(9) INTEGER*2 TYPE(RRWP,RCLP) INTEGER*2 BVEC(3) INTEGER*2 I,I1,I2 INTEGER*2 IBASE,INDEX,NONE,IGRPC C  LOGICAL*1 AVBLS(20,27),LOG1 LOGICAL*1 VBLS(8,RRWP,RCLP) LOGICAL*1 PRTCONO3 LOGICAL*1 SIGN(2),FORMAT(24),FORHEX(24),RPAR,COMMAOC C COMMON /V/ TYPE,AVBLS,VBLS,VLENC C  DATA COMMA/','/ DATA BVEC/10,8,16/I DATA SIGN/' ','-'/, RPAR/')'/9 DATA FORMAT/'(', '1', 'X', ',', '1', 'A', '1', ',', ' ',N@ 2 'A', '1', ',', ' ', ' ', '(', '''', ',', '''', ',', '3', 3 'A', '1', ')', ')'/OCRCN9 DATA FORHEX/'(', '1', 'X', ',', '1', 'A', '1', ',', ' ',1@ 2 'A', '1'003Y4YY2Y}, ',', ' ', ' ', '(', '''', ',', '''', ',', '4', 3 'A', '1', ')', ')'/ CTC C SET DEFAULT RETURN CODE (O.K.) RETCD=1CT6C IBASE = 1 IF BASE 10, 2 IF BASE 8, 3 IF BASE 16 CALL TYPGET(INDEX,1,TYPE(1,1))O IBASE=TYPE(1,1)-4C CRCA#C MAKE SURE THE VARIABLE IS DEFINEDN CALL TYPGET(INDEX,1,TYPE(1,1))D IF(TYPE(1,1).NE.0)GO TO 102 STOP 10CDCI/C DETERMINE THE NUMBER OF DIGITS TO BE PRINTED.E10 DO 20 I=2,20 NONE=21-I# IF(AVBLS(NONE,INDEX).NE.0)GO TO 30A 20 CONTINUE  NONE=1C 3C NONE POINTS TO THE NUMBER OF DIGITS TO BE PRINTEDV630 IF(NONE.GT.4.OR.(NONE.EQ.4.AND.IBASE.NE.3)) GOTO 50CEC4C **************************************************4C ****** ONLY 1,2, OR 3 DIGITS (4 IF HEX) **********4C ************************************************** LOG1=NONECRC PUT IN NUMBER OF DIGITS. FORMAT(9)=PRTCON(LOG1,1)RCSC END FORMAT STATEMENT.TAC IF RUN-TIME SYSTEM ALLOWS EXTRA COMMAS IN DYNAMICALLY CREATEDKC FORMAT STATEMENTS, USEC FORMAT(13)=RPAR,C INSTEAD OFL FORMAT(12)=RPAR 40 CONTINUEGCLCSCK*C ///// WRITE NON-HEXADECIMAL NUMBER /////7 WRITE(1,FORMAT) SIGN(AVBLS(20,INDEX)+1),(PRTCON(AVBLS(L( 2 NONE+1-I,INDEX),IBASE),I=1,NONE)CC NEED THE FOLLOWING ONLY IFC FORMAT(12)=RPAR, C INSTEAD OFC FORMAT(13)=RPAR C ABOVE- FORMAT(12)=COMMA, GO TO 10000C,C-5C MORE THAN 3 DIGITS SO USE COMMAS TO SEPARATE GROUPS150 IF(IBASE.EQ.3) GO TO 200 CVC18C ******************************************************8C ** DECIMAL OR OCTAL NUMBER WITH MORE THAN 3 DIGITS **8C ******************************************************C .C FIRST CALCULATE THE NUMBER OF COMMAS NEEDED. IGRP=NONE/3 LOG1=NONE-IGRP*3E IF(LOG1.NE.0)GO TO 55 IGRP=IGRP-1 LOG1=3*C*>C CONVERT GROUP COUNT TO PRINTABLE ASCII FOR FORMAT STATEMENT. 55 I1=IGRP/10E I2=IGRP-I1*10 FORMAT(9)=PRTCON(LOG1,1)  LOG1=I1 FORMAT(13)=PRTCON(LOG1,1) LOG1=I2 FORMAT(14)=PRTCON(LOG1,1) GO TO 40GC C0C0C04C **************************************************4C *** HEXADECIMAL NUMBER WITH MORE THAN 4 DIGITS ***4C **************************************************C*(C CALCULATE THE NUMBER OF COMMAS NEEDED.200 IGRP=NONE/4L LOG1=NONE-IGRP*4T IF(LOG1.NE.0)GO TO 210 IGRP=IGRP-1 LOG1=4 CT5C CONVERT GROUPT COUNT TO ASCII FOR FORMAT STATEMENT.210 I1=IGRP/10 I2=IGRP-I1*10 FORHEX(9)=PRTCON(LOG1,1)  LOG1=I1 FORHEX(13)=PRTCON(LOG1,1) LOG1=I2 FORHEX(14)=PRTCON(LOG1,1)C CS*C ///// WRITE OUT HEXADECIMAL NUMBER /////) WRITE(1,FORHEX) SIGN(AVBLS(20,INDEX)+1),U6 2 (PRTCON(AVBLS(NONE+1-I,INDEX),IBASE),I=1,NONE) GO TO 10000C,CC CCC *************************YC **** EXIT PROCESSING ****TC *************************10000 CONTINUE WRITE(1,10010) BVEC(IBASE)*10010 FORMAT(' (BASE ',I2,')') RETURN* ENDCOC*$C **********************************$C * *$C * INTERNAL FUNCTION PRTCON *$C * *$C **********************************C CALLED BY MOUT ONLYABC CONVERTS 0 TO APPROPRIATE NUMBER FOR PRINTING WITH VECTOR DIGITS FUNCTION PRTCON(L1,IBASE) INTEGER*2 BASE(3) INTEGER*2 IBASE,K! LOGICAL*1 L1,PRTCON,DIGITS(16,3)R COMMON /DIGV/ DIGITSE DATA BASE /10,8,16/ PRTCON=L1 IF(L1.EQ.0)PRTCON=BASE(IBASE) K=PRTCON PRTCON=DIGITS(K,IBASE)O RETURNY END#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY.CC SOLVE THE MATRIX EQUATION AX=B, WHERE A AND B ARE MATRICES,"C N BY N FOR A, N BY M FOR B5C RETURNS VALUE OF X IN LOCATION USED FOR B ON INPUT..C THE STORAGE CONVENTION FOR FORTRAN IS C A(COL, ROW), B(COL,ROW).+ SUBROUTINE MTXEQU(A1,A2,B1,B2,N,M,D)5C A1,A2 ARE DIMENSIONS OF A SUBMATRIX ORIGIN IN XVBLSC B1,B2 004YYY/YTADATADATADATADATADATAARE DIMS OF B SUBMATRIX INCLUDE 'VKLUGPRM.FTN'C>C NOTE THIS PROGRAM MUST BE MODIFIED TO WORK WITHIN THE SPREAD=C SHEET MATRIX RATHER THAN JUST ASSUMING THAT THE N DIMENSION>C AND M DIMENSION GIVE THE STORAGE ADDRESSES... ALTERNATIVELY,9C THE PROGRAM MUST OPERATE ONLY ON COPIED, DENSELY STORED C MATRICES.CC"C ORIGINAL PROGRAM TEXT FOLLOWS:C DIMENSION A(1),B(1)/CC ALTER DECLARATIONS FOR USE WITH SPREAD SHEET C REAL*8 A,BC KMAX=N-1C DO 90 K=1,KMAXC AMAX=0. C J2=KC DO 20 J1=K,NC IK=(J1-1)*N+K(C IF(ABS(AMAX)-ABS(A(IK)))10,20,20C10 AMAX=A(IK) C J2=J1C20 CONTINUE'CC EXCHANGE ROW K,J2 IF NECESSARYC IF(J2-K)30,60,30C30 DO 40 J=K,NC J3=(K-1)*N+JC J4=(J2-1)*N+JC SAVE=A(J3)C A(J3)=A(J4)C A(J4)=SAVEC40 CONTINUEC DO 50 J=1,MC J3=(K-1)*M+JC J4=(J2-1)*M+JC SAVE=B(J3)C B(J3)=B(J4)C50 B(J4)=SAVECC REDUCTIONC60 K1=K+1C KK=(K-1)*N+KC DO 80 I=K1,NC IK=(I-1)*N+KC DO 70 J=K1,NC IJ=(I-1)*M+JC KJ=(K-1)*M+J'C70 A(IJ)=A(IJ)-A(KJ)*A(IK)/A(KK)C DO 80 J=1,MC IJ=(I-1)*M+JC KJ=(K-1)*N+J'C80 B(IJ)=B(IJ)-B(KJ)*A(IK)/A(KK)C90 CONTINUECC SUBSTITUTE BACKCC NN=(N-1)*N+NC NN=N*NC DO 110 J=1,MC NJ=(N-1)*M+JC B(NJ)=B(NJ)/A(NN)C I1MAX=N-1C IF(I1MAX)110,110,95C95 DO 111 I1=1,I1MAXC I=N-I1C IJ=(I-1)*M+JC II=(I-1)*N+IC I2=I+1C DO 100 L=I2,NC IL=(I-1)*N+LC LJ=(L-1)*M+J"C100 B(IJ)=B(IJ)-A(IL)*B(LJ)C B(IJ)=B(IJ)/A(II)C111 CONTINUEC110 CONTINUEC RETURN C END INTEGER A1,A2,B1,B2C DIMENSION A(1),B(1).C ALTER DECLARATIONS FOR USE WITH SPREAD SHEET8C NOTE THAT OUR COLUMN DIMENSION IS RRW, NOT N OR M HERE,C SUBSCRIPTS ARE (ROW-1)*COL-DIMENSION + COL:C THEREFORE, CHANGE *N OR *M IN SUBSCRIPT COMPUTATIONS TOC *RRW# REAL*8 A,B,AW1,AW2,BW1,BW2,AW3,AW4 INTEGER ABASE,BBASE ABASE=(A2-1)*RRW+A1-1 BBASE=(B2-1)*RRW+B1-1 D=1. KMAX=N-1 DO 90 K=1,KMAX AMAX=0. J2=K DO 20 J1=K,N IK=(J1-1)*RRW+K CALL XVBLGT(IK+ABASE,0,A)# IF(ABS(AMAX)-ABS(A))10,20,2010 AMAX=A J2=J120 CONTINUE&C EXCHANGE ROW K,J2 IF NECESSARY IF(J2-K)30,60,3030 DO 40 J=K,N J3=(K-1)*RRW+J J4=(J2-1)*RRW+J CALL XVBLGT(J3+ABASE,0,SAVE)C SAVE=A(J3) CALL XVBLGT(J4+ABASE,0,AW1) CALL XVBLST(J3+ABASE,0,AW1) CALL XVBLST(J4+ABASE,0,SAVE)C A(J3)=A(J4)C A(J4)=SAVE40 CONTINUE DO 50 J=1,M J3=(K-1)*RRW+J J4=(J2-1)*RRW+JC SAVE=B(J3)C B(J3)=B(J4)C50 B(J4)=SAVE CALL XVBLGT(J3+BBASE,0,SAVE) CALL XVBLGT(J4+BBASE,0,BW1) CALL XVBLST(J3+BBASE,0,BW1) CALL XVBLST(J4+BBASE,0,SAVE) 50 CONTINUEC REDUCTION60 K1=K+1 KK=(K-1)*RRW+K CALL XVBLGT(KK+ABASE,0,A) IF(A.EQ.0)GOTO 999C IF(A(KK).EQ.0.)GOTO 999 DO 80 I=K1,N IK=(I-1)*RRW+K DO 70 J=K1,N IJ=(I-1)*RRW+J KJ=(K-1)*RRW+J'C70 A(IJ)=A(IJ)-A(KJ)*A(IK)/A(KK) CALL XVBLGT(IJ+ABASE,0,AW1) CALL XVBLGT(KJ+ABASE,0,AW2) CALL XVBLGT(IK+ABASE,0,AW3) CALL XVBLGT(KK+ABASE,0,AW4) AW1=AW1-AW2*AW3/AW4 CALL XVBLST(IJ+ABASE,0,AW1) 70 CONTINUE DO 80 J=1,M IJ=(I-1)*RRW+J KJ=(K-1)*RRW+J'C80 B(IJ)=B(IJ)-B(KJ)*A(IK)/A(KK) CALL XVBLGT(IJ+BBASE,0,BW1) CALL XVBLGT(KJ+BBASE,0,BW2) BW1=BW1-BW2*AW3/AW4 CALL XVBLST(IJ+BBASE,0,BW1) 80 CONTINUE90 CONTINUEC SUBSTITUTE BACK NN=(N-1)*RRW+NC NN=N*N CALL XVBLGT(NN+ABASE,0,AW1) IF(AW1.EQ.0.)GOTO 999 DO 110 J=1,M NJ=(N-1)*RRW+JC B(NJ)=B(NJ)/A(NN) CALL XVBLGT(NJ+BBASE,0,BW1) BW1=BW1/AW1 C004Y5YY2Y}ALL XVBLST(NJ+BBASE,0,BW1) I1MAX=N-1 IF(I1MAX)110,110,9595 DO 111 I1=1,I1MAX I=N-I1 IJ=(I-1)*RRW+J II=(I-1)*RRW+I I2=I+1 CALL XVBLGT(II+ABASE,0,AW1) DO 100 L=I2,N IL=(I-1)*RRW+L LJ=(L-1)*RRW+J"C100 B(IJ)=B(IJ)-A(IL)*B(LJ) CALL XVBLGT(IJ+BBASE,0,BW1) CALL XVBLGT(IL+ABASE,0,AW2) CALL XVBLGT(LJ+BBASE,0,BW2) BW1=BW1-AW2*BW2 CALL XVBLST(IJ+BBASE,0,BW1) 100 CONTINUEC B(IJ)=B(IJ)/A(II) BW1=BW1/AW1 CALL XVBLST(IJ+BBASE,0,BW1)111 CONTINUE110 CONTINUE RETURN 999 CONTINUE D=0. RETURN END( SUBROUTINE MULADD (PT1,PT2,RETCD,ENTRY)#C COPYRIGHT (C) 1983 GLENN EVERHART @C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY.  INCLUDE 'VKLUGPRM.FTN'SC PARAMETER RRW = 32C PARAMETER RCL = 32C RRW=MAX REAL ROWSOC RCL=MAX REAL COLSI:C RRW MUST BE 1 LARGER TO HANDLE 1ST 27 VARIABLES IN AVBLS#C VBLS AND TYPE DIMENSIONED RRW,RCLS4C **************************************************4C * *4C * SUBROUTINE MULADD (PT1,PT2,RETCD,ENTRY) *4C * *4C **************************************************C C 6C MULTIPLE PRECISION ADDITION AND SUBTRACTION ROUTINE.C.CLCNC ENTRY # ACTIONA;C 1 M10ADD ARGUMENT LIST IS (PT1,PT2,RETCD,ENTRY)8C 2 M8ADD WHERE THE OPERATION OPR IS PERFORMED C 3 M16ADD AS FOLLOWS:C 4 M10SUB,C 5 M8SUB STACK1( ,PT1) GETS VALUE5C 6 M16SUB STACK1( ,PT1) OPR STACK2 ( ,PT2) C 3C NOTE: STACK2 IS NOT CLEANED UP BY THE OPERATIONAC)C RETCD = 1 NORMAL C 2 ERRORCICC C MODIFICATION CLASSES: M3, M10C CECAC C C2.C MULADD CALLS ERRMSG TO PRINT ERROR MESSAGES.C C4C=C MULADD IS CALLED BY CALBINC C4C2C*C VARIABLE USEC +C BASE BASE OF NUMBERS BEING ADDED. 5C CARRY HOLDS CARRY AS OPERATION IS PERFORMED.JJC ENTRY CODED SPECIFICATION OF BASE AND OPERATION (ADD OR SUBTRACT) C I,K TEMPORARY VALUES.0C PT1 POINTER TO OPERAND 1 (IN STACK 1)0C PT2 POINTER TO OPERAND 2 (IN STACK 2)+C RETCD RETURN CODE: 1=O.K., 2=ERRORM.C SW SWITCH: 1=NEGATIVE, 0=POSITIVE.&C TEMP HOLDS TEMPORARY VALUES.C C CJC-CN)C SUBROUTINE MULADD (PT1,PT2,RETCD,ENTRY)1C9C INTEGER*2 ST1TYP(40),ST2TYP(40) INTEGER*2 RETCD,ENTRY INTEGER*2 PT1,PT2$ INTEGER*2 ST1PT,ST2PT,ST1LIM,ST2LIM INTEGER*2 BASE,CARRY,TEMP,SWN INTEGER*2 I,KC-& LOGICAL*1 STACK1(20,40),STACK2(20,40)C 7 COMMON /STACK/STACK1,STACK2,ST1PT,ST2PT,ST1TYP,ST2TYP, ; ST1LIM,ST2LIMCIC GO TO (10,20,30,40,60,70),ENTRY STOP 10C C ADD BASE 10M 10 BASE=10 GOTO 100ICA C ADD BASE 8 20 BASE=8= GOTO 100)C1 C ADD BASE 16U 30 BASE=16 GOTO 100BC C SUBTRACT BASE 10 40 BASE=10CRC CONVERT A - B TO A + (-B)O"50 STACK2(20,PT2)=1-STACK2(20,PT2) GOTO 100 CEC SUBTRACT BASE 8A 60 BASE=8N GOTO 50C C SUBTRACT BASE 16 70 BASE=16 GOTO 50C)CL#C SET UP RETURN CODE DEFAULT VALUEE 100 RETCD=1SCCCT)C GO ELSEWHERE IF SIGNS ARE NOT THE SAME,1 IF (STACK1(20,PT1).NE.STACK2(20,PT2)) GOTO 10000(C1CRC14C **************************************************4C ****** ADD 2 POSITIVE OR 2 NEGATIVE NUMBERS ******4C ************************************************** CARRY=0 DO 110 I=1,19' TEMP=STACK1(I,PT1)+STACK2(I,PT2)+CARRYA CARRY=TEMP/BASE!110 STACK1(I,PT1)=TEMP-CARRY*BASEHCECWCJ120 IF (CARRY.EQ.0) RETURNC3005Y6YY/YTADATADATADATADATADATAC0C'C ***** ERROR ****** OVERFLOW RETCD=2 CALL ERRMSG (22)- RETURNCLCVCTC+CSAC *************************************************************** AC ***** SUBTRACTION REQUIRED BECAUSE THE SIGNS ARE OPPOSITE *****3AC ***************************************************************M10000 SW=STACK1(20,PT1)C 0C SUBTRACT ACCORDING TO VALUE OF SW (A-B OR B-A) DO 10100 I=1,19 IF (SW.EQ.1) GOTO 10010* STACK1(I,PT1)=STACK1(I,PT1)-STACK2(I,PT2) GOTO 10100 /10010 STACK1(I,PT1)=STACK2(I,PT2)-STACK1(I,PT1)ACOC04C DETERMINE IF SUM RESULTED IN ANY 'NEGATIVE DIGITS'10100 CONTINUE DO 10200 I=1,19 K=20-I,# IF (STACK1(K,PT1).NE.0) GOTO 10250E10200 CONTINUE STACK1(20,PT1)=0O RETURNICIC*C+CBC WHEN CORRESPONDING DIGITS WHERE ADDED (OR SUBTRACTED) THE RESULTCC WAS NEGATIVE. FIRST WE SET SW TO THE SIGN OF THE RESULT (THE SIGNW!C OF THE MOST SIGNIFICANT DIGIT).C 10250 SW=0 IF (STACK1(K,PT1).LT.0) SW=1+ CARRY=0 DO 10300 I=1,KA IF (SW.EQ.0) GOTO 10280C,CW"C ********************************"C ****** RESULT IS NEGATIVE ******"C ********************************CJ6C GO THROUGHT EACH DIGIT, MAKE EACH ONE POSITIVE SINCE;C STACK1(20,PT1) WILL INDICATE THAT THE NUMBER IS NEGATIVE.S TEMP=STACK1(I,PT1)+CARRY  IF (TEMP.LE.0) GOTO 10270CU9C IF DIGIT IS POSITIVE, "BORROW" FROM NEXT HIGHEST DIGIT.L STACK1(I,PT1)=BASE-TEMPCQC SET BORROW INDICATOR.1 CARRY=1 GOTO 103001CR=C DIGIT IS NEGATIVE SO CHANGE SIGN, CLEAR "BORROW" INDICATOR.10270 STACK1(I,PT1)=-TEMPN CARRY=0 GOTO 10300ICXC1C C "C ********************************"C ****** RESULT IS POSITIVE ******"C ********************************10280 TEMP=STACK1(I,PT1)-CARRY IF (TEMP.GE.0) GOTO 10290C09C IF DIGIT IS NEGATIVE, "BORROW" FROM NEXT HIGHEST DIGIT.1 STACK1(I,PT1)=TEMP+BASECLC SET "BORROW" INDICATOR CARRY=1 GOTO 10300+CSC,=C DIGIT IS POSITIVE SO RETAIN VALUE AND CLEAR CARRY INDICATORL10290 STACK1(I,PT1)=TEMP CARRY=010300 CONTINUEC(C*CB6C SET SIGN OF RESULT, GO TO 120 TO CHECK FOR OVERFLOW. STACK1(20,PT1)=SW GOTO 120  END0 SUBROUTINE MULCON (STACK,INDEX,OLDA,NEWA,RETCD)#C COPYRIGHT (C) 1983 GLENN EVERHARTM@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY.U INCLUDE 'VKLUGPRM.FTN'AC PARAMETER RRW = 32C PARAMETER RCL = 32C RRW=MAX REAL ROWS=C RCL=MAX REAL COLS :C RRW MUST BE 1 LARGER TO HANDLE 1ST 27 VARIABLES IN AVBLS#C VBLS AND TYPE DIMENSIONED RRW,RCL*5C *************************************************** 6C ** *6C * SUBROUTINE MULCON (STACK,INDEX,OLDA,NEWA,RETCD) *6C * *6C ****************************************************CPCICNCC WHICH CONVERTS MULTIPLE PRECISION NUMBER IN STACK ( ,INDEX) FROMC BASE "OLD" TO BASE "NEW".CT$C ERROR RETURN: RETCD VALUE MEANING.C 1 O.K./C 2 ERROR1C HC LEGAL VALUE FOR OLDA AND NEWA: 5 (BASE 8), 6 (BASE 10), 7 (BASE 16)C,C)CRC MODIFY CODES: M3, M10NC:CTC2C MULCON IS CALLED BY CONTYPCOCCCRCDC1C VARIABLE USECIC ANSWER(100) HOLDS ANSWER.:>C APT POINTER FOR VECTOR ANS (WHICH HOLDS ANSWER).8C BCON VECTOR OF LEGAL BASES (8, 10, AND 16).@C CARRY USED TO "BORROW" WHEN SUBTRACTING OFF DIVISOR.4C DIVPT POINTER FOR THE DIVISOR (A VECTOR)#C I,M,K,L TEMPORARY VALUES.Y?C INDEX POINTER TO NUMBER (IN STACK) TO BE CONVERTED006YYY2Y}.CC ISW SWITCH: 0=ONLY DIGITS 0 FOUND, 1=NON-ZERO FOUND. )C NEW NEW BASE: 8, 10, OR 16.R)C NEWA NEW BASE CODE: 5,6 OR 7OMC NPT POINTER TO HIGH ORDER DIGIT OF NUMBER AS IT IS SUCCESSIVELY &C REDUCED BY DIVISION.&C NPTH HOLDS OLD NPT VALUE.(C OLD OLD BASE: 8, 10, OR 16*C OLDA OLD BASE CODE: 5,6, OR 78C QUOT(100) HOLDS QUOTIENT FOR SUCCESSIVE DIVIDES./C RETCD RETURN CODE: 1=O.K., 2=ERROR.GCC STACK(,INDEX) HOLDS MULTIPLE PRECISION NUMBER TO BE CONVERTED.SCTC2CSCYCTCP1C SUBROUTINE MULCON (STACK,INDEX,OLDA,NEWA,RETCD)0C, INTEGER*2 INDEX. INTEGER*2 OLD,NEW,RETCD,DIVPT,NPT,APT,BCON(3) INTEGER*2 CARRY,NPTH,NEWA,OLDA= INTEGER*2 I,M,K,LCDCA2 LOGICAL*1 STACK(20,40),QUOT(20),ANSWER(20),DIV(2)CCB DATA BCON/10,8,16/ C  RETCD=1 IF (OLDA.EQ.NEWA) RETURNT OLD=BCON(OLDA-4)  NEW=BCON(NEWA-4)T IF (OLD.NE.16) GOTO 100C0C C CTCT=C ***********************************************************E=C ******** SET UP DIVISOR (DIV(1), DIV(2)) ACCORDING ********E=C ******** TO OLD AND NEW BASES. ********0=C ************************************************************&C OLD IS BASE 16, NEW CAN BE ANYTHING6C ALSO ENTER HERE IF OLD IS BASE 10 AND NEW BASE IS 8 90 DIV(1)=NEW* DIV(2)=0 GOTO 1000100 IF (OLD.NE.10) GOTO 2002CPC+C OLD IS BASE 10/ IF (NEW.EQ.8) GOTO 90CPCR!C OLD IS BASE 10, NEW IS BASE 16. DIV(1)=6N DIV(2)=1' GOTO 1000C C*C OLD IS BASE 8200 IF (OLD.NE.8) STOP 200 IF (NEW.EQ.10) GOTO 250C C* C NEW IS BASE 16, OLD IS BASE 8 DIV(1)=0* DIV(2)=2* GOTO 1000CTCT C NEW IS BASE 10, OLD IS BASE 8 250 DIV(1)=2 DIV(2)=1*C*C <C ****** CONVERT TO NEW BASE BY SUCCESSIVELY DIVIDING ******<C ****** BY THE NEW BASE (AS EXPRESSED IN THE OLD ******<C ****** BASE) TO GET REMAINDERS. ******C) 1000 CONTINUES APT=1C)CGC ZERO OUT ANSWER AND QUOTIENTT DO 1010 I=1,191 QUOT(I)=01010 ANSWER(I)=0CSCR,C FIND HIGH ORDER NON-ZERO DIGIT OF DIVISOR DIVPT=1 IF (DIV(2).NE.0) DIVPT=2SCKC,;C FIND HIGH ORDER NON-ZERO DIGIT OF NUMBER TO BE CONVERTEDR DO 1100 I=1,19+ NPTH=20-I& IF (STACK(NPTH,INDEX).NE.0) GOTO 1195 1100 CONTINUEECTC C NUMBER IS 0 SO SIMPLY RETURNT RETURNFCECSC CECGC%C ***********************************5%C ****** CALCULATE REMAINDERS ******%C ***********************************0CO#C FIRST DETERMINE WHERE TO SUBTRACT* 1195 NPT=NPTH 1200 CONTINUE CNAC IF DIVISOR IS LESS THAN DIVIDEND, THE REMAINDER IS THE DIVIDENDHC SO GO TO 10000E IF (NPT.LT.DIVPT) GOTO 100001C,@C M POINTS TO THE DIGIT OF THE DIVIDEND ALIGNED BY THE LOW ORDER@C DIGIT OF THE DIVISOR WHEN DIVIDEND AND DIVISOR HAVE THEIR HIGHC ORDER DIGITS ALIGNED.E M=NPT-DIVPT+1C(3C K INDEXES DIGITS OF DIVIDEND FROM HIGH ORDER END.Y K=NPTC02C L INDEXES DIGITS OF DIVISOR FROM HIGH ORDER END. L=DIVPT DO 1250 I=1,DIVPT( IF (DIV(L).EQ.STACK(K,INDEX)) GOTO 1240CXBC IF DIGIT OF DIVISOR IS LESS THAN CORRESPONDING DIGIT OF DIVIDEND@C WE CAN SUBTRACT OFF THE DIVISOR FROM THE APPROPRIATE DIGITS OF C DIVIDEND.C( IF (DIV(L).LT.STACK(K,INDEX)) GOTO 1300CG?C IF DIVISOR AND DIVIDEND HAVE THE SAME NUMBER OF DIGITS AND AS)>C THE DIGITS ARE COMPARED FROM THE HIGH ORDER END, DIGITS ARE =C EQUAL UNTIL A DIGIT OF DIVISOR IS GREATER, THEN THE DIVISORN@C IS GREATER THAN THE DIVIDEND SO REMAINDER IS JUST THE DIVIDENDC AND WE GO TO 10000.E IF (NPT.LT.DIVPT+1) GOTO 10000FC.IC THE SIZE OF THE HIGH ORDER DIGITS OF THE DIVIDEND ARE SUCH THAT WE WILL FC BE SUBTRACTING THE DIVISOR AFTER SHIFTING ALIGNMENT ONE PLACE TO THEFC RIGHT (WHEN HIGH ORDER DIGITS WERE ALIGNED, THE CORRESPONDING DIGITS6C OF THE DIVIDEND FORMED A NUMBER THAT WAS TOO SMALL). M=M-1 GOTO 1300CFCEC K IS DIVIDEND POINTERGC L IS DIVISOR POINTER 1240 K=K-1 L=L-1 1250 CONTINUECCLC,CC<C **********************************************************006Y7YY/YTADATADATADATADATADATA<C ****** DIVISION PERFORMED BY SUCCESSIVE SUBTRACTION ******<C ********************************************************** 1300 CONTINUE* K=M-1 CARRY=0 DO 1350 I=1,DIVPT K=K+1 L=STACK(K,INDEX)-DIV(I)-CARRY IF (L.GE.0) GOTO 1325 CARRY=1 L=OLD+L GOTO 1340 1325 CARRY=01340 STACK(K,INDEX)=L* 1350 CONTINUE*3 IF(CARRY.EQ.1) STACK(K+1,INDEX)=STACK(K+1,INDEX)-1*C 7C THE QUOTIENT IS JUST HOW MANY SUBTRACTIONS WHERE MADE  QUOT(M)=QUOT(M)+1C*=C NPT IS ADJUSTED (IF NECESSARY) TO POINT TO HIGHEST NON-ZEROSC DIGIT OF DIVIDEND.)1370 IF (STACK(NPT,INDEX).NE.0) GOTO 1200O NPT=NPT-1 IF (NPT.EQ.0) GOTO 10000 GOTO 1370CEEC DIGIT OF ANSWER IS JUST THE REMAINDER. NOTE THAT THIS DIGIT IS LESSAC THAN THE BASE.310000 ANSWER(APT)=OLD*STACK(2,INDEX)+STACK(1,INDEX)PCOCIC ADJUST ANSWER POINTER. APT=APT+1C)COC2C9C *******************************************************A9C ****** COPY QUOTIENT BACK INTO STACK TO FORM NEW ******H9C ****** DIVIDEND AND ZERO OUT QUOTIENT VECTOR. ******09C *******************************************************  ISW=0 DO 10100 I=1,19 K=QUOT(I) IF (K.NE.0) ISW=1 QUOT(I)=010100 STACK(I,INDEX)=KCCCPAC CALCULATE NEW VALUE FOR NPTH (POINTER TO HIGHEST NON-ZERO DIGITTC OF DIVIDEND. IF (ISW.EQ.0) GOTO 10500+10150 IF (STACK(NPTH,INDEX).NE.0) GOTO 1195= NPTH=NPTH-1 GOTO 10150CCC=C REPLACE OLD NUMBER WITH THE VALUE AS EXPRESSED IN NEW BASE. 10500 DO 10550 I=1,19E10550 STACK(I,INDEX)=ANSWER(I)C*C* RETURN* END' SUBROUTINE MULDIV (PT1,PT2,RETCD,BASE)W#C COPYRIGHT (C) 1983 GLENN EVERHARTE@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY.R INCLUDE 'VKLUGPRM.FTN'PC PARAMETER RRW = 32C PARAMETER RCL = 32C RRW=MAX REAL ROWSEC RCL=MAX REAL COLSE:C RRW MUST BE 1 LARGER TO HANDLE 1ST 27 VARIABLES IN AVBLS#C VBLS AND TYPE DIMENSIONED RRW,RCL 4C **************************************************4C * *4C * SUBROUTINE MULDIV (PT1,PT2,RETCD,BASE) *4C * *4C **************************************************C*C*9C SUBROUTINE MULDIV PERFORMS MULTIPLE PRECISION DIVISIONNCMC CSC ARGUMENTS: (PT1,PT2,RETCD)OC 8C PLACES STACK1( ,PT1)/STACK2( ,PT2) INTO STACK1( ,PT1)C ,C STACK 2 IS NOT CLEANED UP BY THIS ROUTINEC C ERROR RETURN 1 = NORMAL C 2 = ERROR C CGCV(C ENTRY INDICATES THE BASE: 8, 10, OR 16C1C C(CEC MODIFY CODES: M3, M10CDC C CN.C MULDIV CALLS ERRMSG TO PRINT ERROR MESSAGES.CCCCC MULDIV IS CALLED BY CALBINC CSC(C)C VARIABLE USECAC ANSWER HOLDS QUOTIENTA+C BASE HOLDS THE BASE: 8, 10, OR 16E0C CARRY USED TO "BORROW" WHEN SUBTRACTING=C DIVPT POINTS TO HIGHEST (NON-ZERO) DIGIT OF DIVISOR.T C I,M,K,L TEMPORARY VALUES.FC NPT HOLDS POSITION OF HIGHEST (NON-ZERO) DIGIT OF DIVIDEND.3C PT1 POINTER TO STACK1 ELEMENT (DIVIDEND) 2C PT2 POINTER TO STACK2 ELEMENT (DIVISOR),C RETCD RETURN CODE: 1=O.K., 2=ERROR.CC CWC C CE(C SUBROUTINE MULDIV (PT1,PT2,RETCD,BASE)% INTEGER*2 RETCD,BASE,DIVPT,NPT,CARRYS, INTEGER*2 ST1PT,ST2PT,ST1LIM,ST2LIM,PT1,PT2 INTEGER*2 ST1TYP(40),ST2TYP(40) INTEGER*2 I,M,K,LC  LOGICAL*1 ANSWER(20)E& LOGICAL*1 STACK1(20,40),STACK2(20,40)CC7 COMMON /STACK/STACK1,STACK2,ST1PT,ST2PT,ST1TYP,ST2TYP,E ; ST1LIM,ST2LIM CECNCDC1CK*C SET D007Y8YY2Y}EFAULT RETURN CODE AND ZERO ANSWER RETCD=1 DO 110 I=1,20110 ANSWER(I)=0CCC DETERMINE SIGN OF ANSWERO4 IF (STACK1(20,PT1)+STACK2(20,PT2).EQ.1)ANSWER(20)=1CICG<C FIND HIGH ORDER NON-ZERO DIGIT OF DIVISOR (HELD BY DIVPT) DO 140 I=1,19 DIVPT=20-IK% IF (STACK2(DIVPT,PT2).NE.0) GOTO 150T 140 CONTINUECIC)7C DIVISOR IS ZERO, PRINT OUT APPROPRIATE ERROR MESSAGEQ RETCD=2 CALL ERRMSG (23)A RETURNWCOCE9C FIND STARTING NON-ZERO DIGIT OF DIVIDEND (HELD BY NPT)*150 DO 170 I=1,19* NPT=20-I*# IF (STACK1(NPT,PT1).NE.0) GOTO 200S 170 CONTINUECVC,C ANSWER IS ZERO* GOTO 10000*C*CTCLCNCE2C ************************************************2C ****** FIND OUT WHERE TO SUBTRACT DIVISOR ******2C ************************************************C (NEXT LINE WAS $200 IF ...)W! 200 IF (NPT.LT.DIVPT) GOTO 10000=CEC M POINTS TO A DIGIT OF DIVIDEND ALIGNED WITH THE LOW ORDER DIGIT OFI C DIVISOR. M=NPT-DIVPT+1C )C K INDEXES DIVIDEND FROM HIGH ORDER END.N K=NPTC'(C L INDEXES DIVISOR FROM HIGH ORDER END. L=DIVPT DO 250 I=1,DIVPT - IF (STACK2(L,PT2).EQ.STACK1(K,PT1)) GOTO 240,CDAC WHEN COMPARING DIGITS OF DIVISOR AND DIVIDEND, IF THE DIVISOR'SA/C DIGIT IS SMALLER AND ALL PREVIOUS WERE EQUAL,*0C THEN WE GO TO 300 TO SUBTRACT OFF THE DIVISOR.- IF (STACK2(L,PT2).LT.STACK1(K,PT1)) GOTO 300ECE;C OTHERWISE THOSE DIGITS OF THE DIVIDEND REPRESENT A LARGER ;C NUMBER. IF THE NUMBER OF DIGITS OF THE DIVISOR IS GREATERG:C THAN OR EQUAL TO DIVIDEND THEN THE QUOTIENT IS 0 AND THE*C REMAINDER IS THE DIVIDEND. (GO TO 10000) IF (NPT.LT.DIVPT+1) GOTO 10000CV3C OTHERWISE SHIFT THE POSITION OF THE DIVISOR BY 1.H M=M-1 GOTO 300ICFCMC K INDEXES DIVIDENDC L INDEXES DIVISORT 240 K=K-1  L=L-1 250 CONTINUECGC C5C1(C **************************************(C ****** SUBTRACT OFF THE DIVISOR ******(C ************************************** 300 CONTINUECC<C K POINTS TO LOW ORDER DIGIT WHERE SUBTRACTION TAKES PLACE,C CARRY TAKES CARE OF "BORROWS"O K=M-1 CARRY=0 DO 350 I=1,DIVPTI K=K+1$ L=STACK1(K,PT1)-STACK2(I,PT2)-CARRY IF (L.GE.0) GOTO 325VCNFC IF SUBTRACTION RESULTS IN A "NEGATIVE DIGIT", ADD BASE AND SET CARRY C INDICATOR. CARRY=1 L=BASE+L GOTO 340OCR0C RESULT OF SUBTRACTION IS A POSITIVE NUMBER, SOC CLEAR CARRY INDICATOR. 325 CARRY=0D340 STACK1(K,PT1)=L( 350 CONTINUE1 IF(CARRY.EQ.1) STACK1(K+1,PT1)=STACK1(K+1,PT1)-10C CN=C THE QUOTIENT (ANSWER(M)) COUNTS THE NUMBER OF SUBTRACTIONS.0 ANSWER(M)=ANSWER(M)+1CSCK;C RESET THE POINTER TO THE HIGH ORDER NON-ZERO DIGIT OF THECC DIVIDEND IF NECESSARY.&370 IF (STACK1(NPT,PT1).NE.0) GOTO 200 NPT=NPT-1 IF (NPT.EQ.0) GOTO 10000E GOTO 370DCLCTCACKC ***************************VC ****** COPY ANSWER ****** C *************************** 10000 DO 10010 I=1,20M10010 STACK1(I,PT1)=ANSWER(I)  RETURN  END( SUBROUTINE MULMUL (PT1,PT2,RETCD,ENTRY)#C COPYRIGHT (C) 1983 GLENN EVERHARTE@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY.R INCLUDE 'VKLUGPRM.FTN'PC PARAMETER RRW = 32C PARAMETER RCL = 32C RRW=MAX REAL ROWSEC RCL=MAX REAL COLSE:C RRW MUST BE 1 LARGER TO HANDLE 1ST 27 VARIABLES IN AVBLS#C VBLS AND TYPE DIMENSIONED RRW,RCL 4C **************************************************4C * *4C * SUBROUTINE MULMUL (PT1,PT2,RETCD,ENTRY) *4C * *4C **************************************************C*C*'C MULTIPLE PRECISION MULTIPLY ROUTINESPCI:C ARGUMENT LIST IS (PT1,PT2,RETCD,ENTRY) WHERE OPERATION!C OF * IS PERFORMED AS FOLLOWS: C27C STACK1(,PT1) GETS VALUE OF STACK1(,PT1)*STACK2(,PT2) CS3C NOTE: STACK2 IS NOT CLEANED UP BY THE OPERATIONRC "C RETCODES VALUE OF RETCD MEANINGCE C 1 NORMALC 2 ERROR (O008YYY/YTADATADATADATADATADATAVERFLOW)C CECM$C ENTRY SPECIFIES BASE: 8, 10, OR 16CRC C MODIFY CODES: M3, M4, M10CCCCUCVC .C MULMUL CALLS ERRMSG TO PRINT ERROR MESSAGES.CECAC CAC MULMUL IS CALLED BY CALBINCSC CHCSCEC VARIABLE USEC 5C BASE BASE UNDER WHICH OPERATION IS PERFORMED.V+C CARRY CARRY INTO NEXT POWER OF BASE.D7C ENTRY SPECIFIES BASE IN ARGUMENT OF SUBTRACTION. C I,J TEMPORARY VALUES.*C PT1 STACK 1 POINTER TO OPERAND 1.*C PT2 STACK 2 POINTER TO OPERAND 2./C PSUM VECTOR THAT SUMS PARTIAL PRODUCTS.R+C RETCD RETURN CODE: 1=O.K., 2=ERROR. .C TEMP HOLDS INTEGER*4 TEMPORARY VALUES.>C ZL1 POINTS TO HIGH ORDER NON-ZERO DIGIT OF OPERAND 1.>C ZL2 POINTS TO HIGH ORDER NON-ZERO DIGIT OF OPERAND 2.CCTCRCICKC ************************C *++++++++++++++++++++++*C *+ +*C *+ WARNING +*C *+ +*C *++++++++++++++++++++++*C ************************CTAC IF THE NUMBER OF MULTIPLE PRECISION DIGITS IS INCREASED TO NIBC OR INTEGER*4 NOT AVAILABLE ETC., BE CERTAIN THAT 2*N*(BASE-1)**2DC CAN BE HELD BY EACH ELEMENT OF PSUB, TEMP, AND CARRY. IF NOT, THENAC THE REDUCTION TO CANONICAL FORM IN PSUM MUST BE DONE AFTER EACHAC PARTIAL PRODUCT IS ADDED IN.C CTCECIC MODIFIED 4-DEC-1979 P.B.FC CHANGED LINES 460 AND 510 TO USE TEMP TO FORCE EVALUATION OF PRODUCTBC AS INTEGER*4. THIS FIXED BUG THAT PREVENTED PROPER EVALUATION OFC 000000000000000F*0FCTC-CC CAC()C SUBROUTINE MULMUL (PT1,PT2,RETCD,ENTRY)C INTEGER*4 PSUM(19)G" INTEGER*4 BASE,TEMP,ZL1,ZL2,CARRYC*C* INTEGER*2 ST1TYP(40),ST2TYP(40) INTEGER*2 RETCD,ENTRY$ INTEGER*2 ST1PT,ST2PT,ST1LIM,ST2LIM INTEGER*2 PT1,PT2 INTEGER*2 IC*& LOGICAL*1 STACK1(20,40),STACK2(20,40)C27 COMMON /STACK/STACK1,STACK2,ST1PT,ST2PT,ST1TYP,ST2TYP,I ; ST1LIM,ST2LIMLCOCRCGCOC BASE=ENTRYMCTCVC DETERMINE SIGNE RETCD=1# TEMP=STACK1(20,PT1)+STACK2(20,PT2)  STACK1(20,PT1)=TEMP-TEMP/2*2ECNC"C ZERO PARTIAL PRODUCT SUM VECTOR DO 200 I=1,19 200 PSUM(I)=0GC C,"C FIND WHERE FIRST NON-ZEROES ARE DO 210 I=1,19 ZL1=20-II# IF (STACK1(ZL1,PT1).NE.0) GOTO 220P 210 CONTINUE ZL1=0220 DO 250 I=1,19 ZL2=20-I # IF (STACK2(ZL2,PT2).NE.0) GOTO 300L 250 CONTINUE ZL2=0CECEC '300 IF (ZL1.NE.0.AND.ZL2.NE.0) GOTO 400PCECA6C ****************************************************6C ****** ONE OF THE FACTORS IS 0 SO ANSWER IS 0 ******6C **************************************************** DO 310 I=1,20310 STACK1(I,PT1)=00 RETURN CECS*C MAKE SURE THINGS AREN'T TOO BIG ALREADY400 IF (ZL1+ZL2.LE.20) GOTO 450NCECICECC **** ERROR RETURN ****C-"C RESULT IS GREATER THAN 99 DIGITS 410 RETCD=2* CALL ERRMSG (22)* RETURN*CC*JC DETERMINE THE MULTIPLIER (FACTOR WITH FEWEST DIGITS TO SPEED OPERATION)450 IF (ZL1.GT.ZL2) GOTO 500CTCO,C ******************************************,C ****** PERFORM THE MULTIPLICATION ******,C ****************************************** DO 460 I=1,ZL1) DO 460 J=1,ZL2.>C FORCE PRODUCT TO USE INTEGER*4 IN CASE 0F*0F=E1 AND NOT ABLEC TO HOLD IN A SIGNED BYTE TEMP=STACK1(I,PT1).460 PSUM(I+J-1)=PSUM(I+J-1)+TEMP*STACK2(J,PT2) GOTO 600S500 DO 510 I=1,ZL2 DO 510 J=1,ZL1AHC FORCE PRODUCT TO USE INTEGER*4 IN CASE TRYING TO CALCULATE THINGS LIKE0C 0F*0F=E1 WHICH DOES NOT FIT INTO A SIGNED BYTE TEMP=STACK1(J,PT1)U.510 PSUM(I+J-1)=PSUM(I+J-1)+TEMP*STACK2(I,PT2)C(C1CS>C ************************************************************>C ****** REDUCE ANSWER TO STANDARD CANONICAL FORM WHERE ******>C ****** POWERS OF THE BASE ARE TIMES A DIGIT LESS ******>C ****** THAN THE BASE. ******>C ************************************************************ 600 CARRY=01 DO 650 I=1,19 TEMP=PSUM(I)+CARRYI CARRY=TEMP/BASE!650 STACK1(I,PT1)=TEMP-CARRY*BASEE IF (CARRY.EQ.0) RETURN GOTO 410S END009YYY2Y}( SUBROUTINE NEXTEL (RETVAL,RETTYP,RETCD)#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY. INCLUDE 'VKLUGPRM.FTN'C PARAMETER RRW = 32C PARAMETER RCL = 32C RRW=MAX REAL ROWSC RCL=MAX REAL COLS:C RRW MUST BE 1 LARGER TO HANDLE 1ST 27 VARIABLES IN AVBLS#C VBLS AND TYPE DIMENSIONED RRW,RCL4C **************************************************4C * *4C * SUBROUTINE NEXTEL(RETVAL,RETTYP,RETCD) *4C * *4C **************************************************CC=C SCANS LINE(80) FROM NONBLK+1 AND RETURNS THE NEXT ELEMENT.;C THIS ELEMENT COULD BE A CONSTANT, VALUE OF A VARIABLE, A?C BINARY FUNCTION CODE, OR A UNARY FUNCTION CODE. UPON RETURN,3C NONBLK POINTS TO LAST CHARACTER OF NEXT ELEMENT.C/C RETCD = 1 IF OPERAND (VALUE IN RETVAL(100)#C 2 IF OPERATOR (VALUE IN RETTYP)C 3 NO MORE ELEMENTSC 4 IF ERRORC>C RETVAL HOLDS VALUE OF OPERAND FOUND (EITHER CONSTANT OR IF4C A VARIABLE (A-Z,%), THE VALUE OF THAT VARIABLE)CC RETTYP IS THE TYPE CODECCCCC MODIFY CODES: M1,M2,M3,M4,M8CCCC>C NOTE: BECAUSE OF THE LENGTH AND COMPLEXITY OF THIS ROUTINE,=C THE FLOWCHART MADE OF THE LOGIC FLOW IS VERY USEFUL.CCCCC NEXTEL CALLSC&C ERRMSG PRINTS OUT ERROR MESSAGES=C FLIP REVERSES THE NON-LEADING ZERO DIGITS IN A VECTOR2C GETNNB GETS THE NEXT NON-BLANK FROM LINE(80)CCCCC NEXTEL IS CALLED BY INPOSTCCCCCC VARIABLE USE3C --------- ----------------------------------C,C ALPHA(27) HOLDS LEGAL VARIABLE NAMES.CC ARROW '^'C>C B10 SWITCH SET WHEN CONSTANT IS NOT OCTAL (MAY BEDC DECIMAL OR HEX BECAUSE THE DIGIT 8 OR 9 WAS FOUND).C@C B16 SWITCH SET WHEN CONSTANT IS HEXADECIMAL BECAUSE5C DIGIT A, B, C, D, E, OR F WAS FOUND.C(C BASE HOLDS BASE OF CONSTANT.C4C CHAR1 HOLDS A SINGLE CHARACTER FROM LINE.C,C DEFBAS THE DEFAULT BASE SPECIFIED.C@C DIGITS(16,3) HOLDS ASCII CHARACTERS FOR THE DIGITS OF BASES C 8, 10, AND 16.CC DOT '.'CC EQ '='C*C EXCODE CODE FOR EXPONENTIATION.CCC FCNT NUMBER OF UNARY FUNCTIONS DEFINED BY VECTOR FUNCTC-C FUNCT (NAME,INDEX) HOLDS FUNCTION NAMES.CC FUNVAL(I,J)?C IF I=1, THE VALUE IS THE NUMBER OF CHARACTERS IN THE J-THFC FUNCTION WHOSE NAME IS THE FUNCT(K,J) WHERE K=1,2,3...10>C IF I=2, THE VALUE IS THE STACK ELEMENT CODE FOR THE J-TH@C FUNCTION WHOSE NAME IS IN FUNCT(K,J), K=1,2,3...10CC $C I,J,K,L HOLDS TEMPORARY VALUESC;C I1,I2 HOLD VALUE OF DIGITS IN E OR D SPECIFICATION.CFC IALPHA INDEX INTO ALPHA OF THE FIRST NON-BLANK CHARACTER FOUND.C$C IHOLD HOLDS TEMPORARY VALUESC(C INT PICKS UP INTEGER*4 VALUES.C.C IPT POINTER TO ELEMENTS IN LINE(80).C.C IPT2 POINTER TO ELEMENTS IN LINE(80).CHC LASTOP USED TO HOLD VALUE OF LAST OPERATOR SO THAT UNARY OPERATORS=C CAN BE IDENTIFIED IN CASES LIKE A*-B AND A/(-3).CC MINUS '-'CBC OPER(9) HOLDS LEGAL ONE CHARACTER OPERATORS LIKE '+' AND '*'.CC PLUS '+'CC QUOTE "'"C2C RB HOLDS NEGATIVE POWERS OF 10.(BASE 10)C'C REAL PICKS UP REAL*8 CONSTANTS.CC RETCD RETURN CODE:2C 1 IF OPERAND (VALUE IN RETVAL(100)).C 2 IF OPERATOR (VALUE IN RETTYP)"C 3 NO MORE ELEMENTS.C 4 IF ERROR.C-C RETCD2 RETURN CODE WHEN CALLING GETNNB.C5C RETPT INDEXES DIGITS PICKED UP FOR A CONSTANT.C3C RETTYP THE TYPE CODE OF THE RETURNED ELEMENT.C)C TYPE TYPE CODE FOR EACH VARIABLE.C&C VBLS HOLDS VALUE OF VARIABLES.C6009ZYY/YTADATADATADATADATADATAC VLEN GIVES LENGTH IN BYTES FOR EACH DATA TYPE.CCCCCCC=C ***********************************************************C * *9C * LASTOP MUST BE SET TO ZERO AT START OF EXPRESSION *C * *=C ***********************************************************CCCCCCCC)C SUBROUTINE NEXTEL (RETVAL,RETTYP,RETCD)CCC REAL*8 REAL,RB,ACX,XACC INTEGER*4 INTC INTEGER*2 LEVEL,NONBLK,LEND INTEGER*2 LASTOP& INTEGER*2 VIEWSW,BASED,VLEN(9),DEFBAS INTEGER*2 TYPE(RRWP,RCLP)% INTEGER*2 RETCD,RETCD2,RETTYP,EXCODE INTEGER*2 B10,B16,RETPT,BASE INTEGER*2 FCNT,AHOLD. INTEGER*2 I,J,K,L,IALPHA,IHOLD,IPT,IPT2,I1,I2C0 LOGICAL*1 CHAR1,DOT,ARROW,QUOTE,STAR,MINUS,PLUS LOGICAL*1 RETVAL(20)$ LOGICAL*1 FUNCT(10,40),FUNVAL(2,40) LOGICAL*1 AVBLS(20,27) EQUIVALENCE(XAC,AVBLS(1,27)) LOGICAL*1 VBLS(8,RRWP,RCLP) LOGICAL*1 OPER(9),DIGITS(16,3)6 LOGICAL*1 LINE(80),ALPHA(27),COMMA,BLANK,RPAR,LPAR,EQ LOGICAL*1 FOUR(4),EIGHT(8)C COMMON /V/ TYPE,AVBLS,VBLS,VLEN COMMON /DIGV/ DIGITS, COMMON LEVEL,LINE,NONBLK,LEND,VIEWSW,BASED- COMMON /CONS/ ALPHA,COMMA,BLANK,RPAR,LPAR,EQ COMMON /ERROR/ LASTOPC$ EQUIVALENCE (REAL,EIGHT),(FOUR,INT)C/ DATA DOT/'.'/,ARROW/'^'/,QUOTE/''''/,STAR/'*'/ DATA MINUS/'-'/,PLUS/'+'// DATA OPER/'(','-','!','*','/','+','-',')','='/CC NUMBER OF FUNCTIONS DATA FCNT/24/C5 DATA FUNCT/'A','B','S',' ',' ',' ',' ',' ',' ', ' ',; ; 'D','A','B','S',' ',' ',' ',' ',' ',' ',; ; 'I','A','B','S',' ',' ',' ',' ',' ',' ',- ; 'F','L','O','A','T',5*' ',) ; 'I','F','I','X',6*' ',) ; 'A','I','N','T',6*' ',% ; 'I','N','T',7*' ',- ; 'I','D','I','N','T',5*' ',% ; 'E','X','P',7*' ',) ; 'D','E','X','P',6*' ',1 ; 'A','L','O','G','1','0',4*' ',1 ; 'D','L','O','G','1','0',4*' ',) ; 'A','L','O','G',6*' ',) ; 'D','L','O','G',6*' ',) ; 'S','Q','R','T',6*' ',- ; 'D','S','Q','R','T',5*' ',% ; 'S','I','N',7*' ',) ; 'D','S','I','N',6*' ',% ; 'C','O','S',7*' ',) ; 'D','C','O','S',6*' ',) ; 'T','A','N','H',6*' ',- ; 'D','T','A','N','H',5*' ',) ; 'A','T','A','N',6*' ',- ; 'D','A','T','A','N',5*' ', ; 160*' '/ DATA EXCODE/112/E DATA FUNVAL/3,31,4,31,4,32,5,33,4,34,4,35,3,36,5,36,3,37,4,37,B ;6,39,6,39,4,38,4,38,4,40,5,40,3,41,4,41,3,42,4,42,4,43,5,43, ; 4,44,5,44,32*0/CCC 10 CONTINUE CALL GETNNB(IPT,RETCD2) IF (RETCD2.EQ.1) GOTO 50CC NO MORE ELEMENTS LASTOP=0 RETCD=3 RETURNCCC INITIALIZE VARIABLES 50 CONTINUE B10=0 B16=0 RETTYP=0 RETPT=0 REAL=0.D0 RETCD=1 DEFBAS=BASED DO 60 I=1,2060 RETVAL(I)=0C70 CHAR1=LINE(IPT) NONBLK=IPTCCC SEE IF ALPHABETIC OR % DO 80 I=1,27" IF (CHAR1.EQ.ALPHA(I)) GOTO 10000 80 CONTINUECC"C NOT ALPHA SO SEE IF AN OPERATOR DO 100 I=1,9! IF (CHAR1.EQ.OPER(I)) GOTO 20000 100 CONTINUECCC SEE IF AN OPERAND140 DO 150 I=1,16% IF (CHAR1.EQ.DIGITS(I,3)) GOTO 30000 150 CONTINUECCC IF (CHAR1.EQ.DOT) GOTO 40000CCC IF (CHAR1.EQ.ARROW) GOTO 300CCC IF (CHAR1.EQ.QUOTE) GOTO 200CC-C ADDITIONAL CONSTANT OPERATOR WOULD GO HERECC-C *** ERROR *** ILLEGAL CHARACTER ENCOUNTERED190 CALL ERRMSG (20) GOTO 99000CCCC(C **************************************(C ****** ASCII CONSTANT SPECIFIED ******(C ************************************** 200 CONTINUE NONBLK=NONBLK+1 RETVAL(1)=LINE(NONBLK) RETTYP=1 GOTO 35100CCCC(C **************************************(C ****** IMMEDIATE BASE SPECIFIED ******(C **************************************300 CALL GETNNB(IPT,RE009 ZYY2Y}TCD2) IF (RETCD2.EQ.1) GOTO 320CC*C *** ERROR *** ILLEGAL BASE SPECIFICATION310 CALL ERRMSG(19) GOTO 99000CCC IMMEDIATE BASE SPECIFICATION320 CHAR1=LINE(IPT) NONBLK=IPT# IF (CHAR1.EQ.DIGITS(8,3)) GOTO 360# IF (CHAR1.NE.DIGITS(1,3)) GOTO 310CC6C FIRST DIGIT IS 1 SO IMMEDIATE BASE MIGHT BE 10 OR 16 CALL GETNNB (IPT,RETCD2) IF (RETCD2.EQ.2) GOTO 310 CHAR1=LINE(IPT) NONBLK=IPT$ IF (CHAR1.EQ.DIGITS(10,1)) GOTO 365# IF (CHAR1.NE.DIGITS(6,1)) GOTO 310CCC IMMEDIATE BASE IS 16 DEFBAS=16 GOTO 370CCC IMMEDIATE BASE IS 8 360 DEFBAS=8 GOTO 370CCC IMMEDIATE BASE IS 10 365 DEFBAS=10CCC370 CALL GETNNB(IPT,RETCD2) IF (RETCD2.EQ.2) GOTO 310 CHAR1=LINE(IPT) NONBLK=IPTCC/C GO FIND OUT WHAT NUMBER HAS THAT DEFAULT BASE GOTO 140CCC C6C ****************************************************6C ****** SEARCH TO SEE IF A UNARY FUNCTION NAME ******6C ****************************************************10000 CONTINUE IALPHA=I IHOLD=NONBLKCC"C SCAN EACH OF THE FUNCTION NAMES. DO 10060 I=1,FCNTC>C K HOLDS NUMBER OF NON-BLANK CHARACTERS IN THE FUNCTION NAME. K=FUNVAL(1,I) IPT2=IHOLD NONBLK=IHOLD IF (K.EQ.0) GOTO 10060CC)C SCAN EACH LETTER OF THE FUNCTION'S NAME DO 10050 J=1,K) IF (LINE(IPT2).NE.FUNCT(J,I)) GOTO 10060 IF (J.EQ.K) GOTO 10100 CALL GETNNB (IPT2,RETCD2) IF (RETCD2.EQ.2) GOTO 10060 NONBLK=IPT210050 CONTINUE STOP 10050C10060 CONTINUE10070 NONBLK=IHOLD GOTO 12000CC<C FUNCTION FOUND (LEAVES NONBLK POINTING AT LAST CHARACTER)10100 CONTINUECCCC$C **********************************$C ****** UNARY FUNCTION FOUND ******$C ********************************** RETTYP=FUNVAL(2,I) LASTOP=RETTYP RETCD=2 GOTO 99099CCCCC"C ********************************"C ****** VARIABLE SPECIFIED ******"C ********************************12000 CONTINUECC(C IALPHA HOLDS INDEX INTO ALPHA OF NAME2C ******&&&&&& REMOVE BLK OF CODE STARTING HERE...C CALL GETNNB (IPT,RETCD2)C IF (RETCD2.EQ.2) GOTO 12060CCCC(CC MAKE SURE NEXT CHARACTER IS NOT ALPHAC DO 12050 I=1,27'C IF (LINE(IPT).EQ.ALPHA(I)) GOTO 12200C12050 CONTINUEC *****&&&&& ...ENDING HEREC ADD BELOW... LLB=IPT LRB=LEND0 CALL VARSCN(LINE,LLB,LRB,LSTCHR,ID1,ID2,IVALID)C IF(IVALID.EQ.0)GOTO 12200 C IPT=LSTCHR(C IF(IVALID.NE.0.AND.ID2.GT.1)GOTO 12201 IF(IVALID.EQ.0)GOTO 13201 IF(ID2.GT.1)GOTO 12201& IF(ID2.EQ.1.AND.ID1.LE.RRW)GOTO 1220113201 CONTINUE7C NOT VALID VARIABLE. SEE IF A 2 + ARGUMENT FUNCTION... I=IPT+9 CALL FNAME(LINE(IPT),I,INDEXF)9 IF(INDEXF.EQ.6.OR.INDEXF.LT.1.OR.INDEXF.GT.25)GOTO 122023C NOW KNOW THERE IS A FUNCTION THERE, SO HANDLE IT.BC NOTE: WHEN WE MODIFY RECALC.* FILE TO ADD FUNCTIONS, MUST MODIFY.C HERE TOO TO REFLECT NEW MAX FUNCTION NUMBER. LLAST=LEND-IPT+1 I=INDEX(LINE(IPT),']')# IF(I.LE.0.OR.I.GT.LLAST)GOTO 12202 LRB=I LLB=INDEX(LINE(IPT),'[')' IF(LLB.LE.0.OR.LLB.GT.LLAST)GOTO 12202* CALL DOMFCN(LINE(IPT),LLB,LRB,INDEXF,ACX) XAC=ACX TYPE(1,1)=2 CALL TYPSET(1,27,TYPE(1,1))C TYPE(27,1)=2 ID1=27 ID2=1 LSTCHR=LRB+IPT<C GO AND MERGE AS THOUGH WE JUST GOT A VARIABLE % AND HAD TOC RETURN ITS VALUE. GOTO 12201(C IF NOT VALID FUNCTION REPORT AN ERROR.12202 GOTO 1220012201 IPT=LSTCHR IF(LSTCHR.LT.LEND)IPT=IPT-1 NONBLK=IPT-C RESET NONBLK ALST SO WE RESET GETNNB TOO...C WAS IPT=LSTCHR+1#C IPT POINTS AFTER VARIABLE NAME...&C ENSURE NON ALPHA AFTER VARIABLE NAME CALL GETNNB(IPT,RETCD2) IF(RETCD2.EQ.2) GOTO 12060C7C IF THE NEXT CHARACTER IS AN = SIGN DON'T RETURN VALUE7C OF VARIABLE, JUST PUT INDEX INTO VBLS INTO LOWER BYTE C OF RETVAL. IF (LINE(IPT).EQ.EQ) GOTO 12100CC2C ************************************************2C ****** RETURN VALUE OF VARIABLE SPECIFIED ******2C ************************************************!12060 CALL TYPGET(ID1,ID2,RETTYP)C12060 RETTYP=TYPE(ID1,ID2) C *****&&&&&BC MUST CLAMP TYPES S009ZYY/YTADATADATADATADATADATAO EXTENDED VARIABLES CAN'T BE MULT PRCN VRBLS.& IF(ID1.LE.27.AND.ID2.EQ.1) GOTO 12061 IF (RETTYP.EQ.5)RETTYP=4 IF (RETTYP.EQ.6)RETTYP=8 IF (RETTYP.EQ.7)RETTYP=312061 CONTINUE IF(RETTYP.LE.0)GO TO 12080 K=VLEN(RETTYP) DO 12070 I=1,K& IF(ID1.LE.27.AND.ID2.EQ.1) GOTO 120683C TRY AND CALL XVBLGT HERE TO GET VALUE ALL AT ONCE"C TO AVOID MULTIPLE ARBITRATION...& IF(I.EQ.K)CALL XVBLGT(ID1,ID2,RETVAL)"C CALL VBLGET(I,ID1,ID2,RETVAL(I))C RETVAL(I)=VBLS(I,ID1,ID2) GOTO 1207012068 RETVAL(I)=AVBLS(I,ID1)12070 CONTINUEC12080 LASTOP=RETTYP GOTO 99099CCC9C *******************************************************9C ****** VARIABLE SPECIFIED BUT FOLLOWED BY = SIGN ******9C *******************************************************12100 CONTINUEC RETVAL(1)=IALPHAC RETTYP=TYPE(IALPHA) CALL TYPGET(ID1,ID2,TYPE(1,1)) CALL RVBOO(RETVAL,ID1,ID2)-C RVBOO JUST STUFFS ID1,ID2 INTO RETVAL ARRAYC AS 2 INTEGERS. RETTYP=TYPE(1,1) GOTO 12080CCC%C *** ERROR *** UNIDENTIFIED FUNCTION12200 CALL ERRMSG(18) GOTO 99000CCCCCC **********************C ****** OPERATOR ******C **********************C3C I IS INDEX INTO OPER TO TELL WHAT OPERATOR IT IS20000 CONTINUE RETCD=2 IF(I.NE.4)GO TO 20050CC=C IF AN ASTERISK IS FOUND THE NEXT CHARACTER MUST BE EXAMINED2C TO SEE IF '**' WAS SPECIFIED FOR EXPONENTIATION. CALL GETNNB (IPT,RETCD2) IF(RETCD2.NE.1)GO TO 99000" IF (LINE(IPT).NE.STAR) GOTO 20050CC!C '**' SPECIFIED (EXPONENTIATION) RETTYP=EXCODE NONBLK=IPT GO TO 12080CCC#C SET DEFAULT RETTYP FOR OPERATORS20050 RETTYP=109+ICC(C CHECK OUT POSSIBLE UNARY OPERATOR "-" IF (RETTYP.NE.111) GOTO 20080CC@C IF A MINUS IS ENCOUNTERED AND THERE WAS NO PREVIOUS ELEMENT OR=C IF PREVIOUS ELEMENT WAS AN OPERATOR OR = SIGN THEN OPERATOR C IS UNARY.9 IF (LASTOP.EQ.0.OR.(LASTOP.GE.110.AND.LASTOP.LE.116).OR.% ; LASTOP.EQ.200) GOTO 20090CCC BINARY SUBTRACTION OPERATOR RETTYP=116 GOTO 12080CCCC SEE IF A '+' SIGN"20080 IF(RETTYP.NE.115)GO TO 20085CC!C DETERMINE IF IT IS A UNARY PLUS- IF(LASTOP.NE.0.AND.LASTOP.LE.100)GO TO 20085CCC SEE IF LAST OPERATOR WAS ')' IF(LASTOP.EQ.117)GO TO 20085CCC UNARY '+' FOUND. RETCD=1 GO TO 10CCC;C RESET LASTOP TO 0 IF LEFT PARENTHESIS IS FOUND (CODE 110)(C IF RETTYP IS FOR =, SET TO PROPER CODE"20085 IF(RETTYP.EQ.110)GO TO 20090 IF(RETTYP.EQ.118)RETTYP=200 GO TO 12080CC C UNARY -20090 CONTINUE GOTO 99097CCCCCCC *************************C ****** NON-DECIMAL ******C *************************C30000 RETPT=RETPT+1 IF (RETPT.LE.19) GOTO 30020CC:C *** ERROR *** MULTIPLE PRECISION IS LIMITED TO 99 DIGITS CALL ERRMSG(22) GOTO 99000CC.C I HOLDS INDEX INTO DIGITS THAT WAS A MATCH./C SEE IF VALUE OF DIGIT IMPLIES A HIGHER BASE.30020 IF (I.NE.16) GOTO 30030 I=0 GOTO 30050!30030 IF (I.EQ.8.OR.I.EQ.9) B10=1 IF(I.GT.9) B16=130050 RETVAL(RETPT)=ICCC GET NEXT CHARACTER CALL GETNNB (IPT,RETCD2) IF (RETCD2.NE.1) GOTO 30100 NONBLK=IPT CHAR1=LINE(IPT) DO 30070 I=1,16% IF (CHAR1.EQ.DIGITS(I,3)) GOTO 3000030070 CONTINUE IF (CHAR1.EQ.DOT) GOTO 40000 NONBLK=NONBLK-130100 CONTINUEC) IF (DEFBAS.EQ.16.OR.B16.EQ.1) GOTO 30200) IF (DEFBAS.EQ.10.OR.B10.EQ.1) GOTO 30300CCC *****************************C ****** BASE 8 CONSTANT ******C ***************************** BASE=8CC1C IF MORE THAN 10 DIGITS IT IS MULTIPLE PRECISION IF (RETPT.GT.10) GOTO 30170 RETTYP=8CC#C CONVERT TO OCTAL, HEX OR INTEGER 30110 INT=030130 DO 30132 L=1,19 IF (RETVAL(L).NE.0) GOTO 3014030132 CONTINUE30140 DO 30150 I=L,RETPT INT=INT*BASE+RETVAL(I) RETVAL(I)=030150 CONTINUE RETVAL(20)=030155 DO 30160 I=1,430160 RETVAL(I)=FOUR(I) GOTO 35100CC2C ************************************************2C ****** MULTIPLE PRECISION BASE 8 CONSTANT ******009ZYY2Y}2C ************************************************30170 RETTYP=6!30180 CALL FLIP (RETVAL,20,RETPT) GOTO 35100UC CTCUC *********************AC ****** BASE 16 ******IC *********************E 30200 BASE=16C CA1C IF MORE THAN 7 DIGITS IT IS MULTIPLE PRECISION.L IF (RETPT.GT.7) GOTO 30270CRCUCBC HEXADECIMAL RETTYP=3 GOTO 30110ACSC CSCD*C *****************************************C ****** MULTIPLE PRECISION BASE 16 *******C ****************************************30270 RETTYP=7 GOTO 30180RCACEC ********************* C ****** BASE 10 ****** C ********************** 30300 BASE=10*C*C*1C IF MORE THAN 9 DIGITS IT IS MULTIPLE PRECISION.  IF (RETPT.GT.9) GOTO 30370 CTCE C INTEGER RETTYP=4 GOTO 30110NCNCV*C *****************************************C ****** MULTIPLE PRECISION BASE 10 *******C ****************************************30370 RETTYP=5 GOTO 30180 C CRC CLCIC SET LASTOP AND EXITF35100 LASTOP=RETTYPE GOTO 99099 CMC C *****************************RC ****** REAL OR DECIMAL ******NC *****************************V40000 IF (B16.NE.1) GOTO 40020CVCA2C *** ERROR *** '.' MAY ONLY BE USED WITH BASE 10 CALL ERRMSG(21) GOTO 99000,CCC 40020 IF (RETPT.EQ.0) GOTO 40200CHCDC IGNORE LEADING ZEROESN DO 40022 L=1,19 IF (RETVAL(L).NE.0) GOTO 40030S40022 CONTINUEC$C IF ALL ZEROES THE LAST ONE COUNTS! L=19PCTCUC CONVERT TO A REAL*8 NUMBER40030 CONTINUE REAL=0.D0 DO 40060 I=L,RETPT REAL=REAL*10.D0+RETVAL(I) RETVAL(I)=040060 CONTINUECC,C PICK UP FRACTIONAL PART OF REAL (DECIMAL)40200 CONTINUE RB=1.0D0E RETTYP=2-40205 CALL GETNNB (IPT,RETCD2) IF (RETCD2.EQ.1) GOTO 40300CH9C IF NO MORE, YOU GOT IT ALL SO GO PLACE VALUE IN RETVAL. GOTO 40537 CIC C 40300 NONBLK=IPT CHAR1=LINE(IPT) DO 40320 I=1,10% IF (CHAR1.EQ.DIGITS(I,1)) GOTO 40330W40320 CONTINUE GOTO 40350 40330 IF (I.EQ.10) I=0 RB=0.1D0*RB REAL=REAL+DFLOAT(I)*RB GOTO 40205 CCC,8C CHECK TO SEE IF E OR D EXPONENT SPECIFICATION IS USED.D40350 IF (CHAR1.EQ.DIGITS(13,3).OR.CHAR1.EQ.DIGITS(14,3)) GOTO 40360 NONBLK=NONBLK-1 GO TO 40537C CC/C *********************************************E/C ****** E AND D EXPONENT SPECIFICATIONS ******1/C *********************************************E40360 CONTINUE CALL GETNNB(IPT,RETCD2) IF (RETCD2.EQ.1) GOTO 40370CFC 5C *** ERROR *** ILLEGAL REAL EXPONENT FIELD SPECIFIEDC40365 CALL ERRMSG (24) GOTO 99000 CCCN40370 CHAR1=LINE(IPT)A IF (CHAR1.EQ.MINUS) GOTO 40380S RB=10.D0  IF (CHAR1.NE.PLUS) GOTO 40400 GOTO 40390C40380 RB=0.1D0CTCFCT40390 NONBLK=IPT CALL GETNNB (IPT,RETCD2)A!40400 IF (RETCD2.GE.2) GOTO 40365H NONBLK=IPT  CHAR1=LINE(IPT) DO 40450 I=1,10% IF (CHAR1.EQ.DIGITS(I,1)) GOTO 40480 40450 CONTINUE GOTO 40365U40480 IF (I.EQ.10) I=0CVCE.C I1 HOLDS 1ST DIGIT OF EXPONENT SPECIFICATION I1=I  CALL GETNNB (IPT,RETCD2)S IF (RETCD2.GE.2) GOTO 40550 CHAR1=LINE(IPT) NONBLK=IPTR DO 40500 I=1,10% IF(CHAR1.EQ.DIGITS(I,1)) GO TO 4052040500 CONTINUE NONBLK=NONBLK-1 GOTO 40550.CC 2C I2 HOLDS SECOND DIGIT OF EXPONENT SPECIFICATION.40520 IF (I.EQ.10) I=0 I2=IFCSCP40530 RETTYP=9 REAL=REAL*RB**(I1*10+I2) CNC CN5C *************************************************** 5C ****** COPY REAL*8 INTO RETURN VECTOR RETVAL ******O5C ***************************************************O40537 DO 40540 I=1,840540 RETVAL(I)=EIGHT(I) GOTO 351001CCC 40550 I2=I1S I1=0L GOTO 40530CC CR"C ********************************"C ******* ERROR PROCESSING *******"C ********************************99000 CONTINUE( WRITE (1,99010) (LINE(I),I=NONBLK,LEND)99010 FORMAT (1X,80A1) RETCD=499097 LASTOP=0 99099 RETURN END SUBROUTINE RVBOO(RETV,ID1,ID2) @C THIS ROUTINE ONLY COPIES ID1,ID2 INTO RETV ARRAY TO AVOID SOME;C BYTE-INTEGER CONVERSION PROBLEMS. THIS PACKING IS USED TOB!C ACCESS VARIABLE LOCATION LATER.O INTEGER*2 RETV,009!Z:"ZY/YTADATADATADATADATADATAID1,ID2E DIMENSION RETV(2) RETV(1)=ID1 RETV(2)=ID2 RETURN END( SUBROUTINE NEXTEL (RETVAL,RETTYP,RETCD)#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY. INCLUDE 'VKLUGPRM.FTN'C PARAMETER RRW = 32C PARAMETER RCL = 32C RRW=MAX REAL ROWSC RCL=MAX REAL COLS:C RRW MUST BE 1 LARGER TO HANDLE 1ST 27 VARIABLES IN AVBLS#C VBLS AND TYPE DIMENSIONED RRW,RCL4C **************************************************4C * *4C * SUBROUTINE NEXTEL(RETVAL,RETTYP,RETCD) *4C * *4C **************************************************CC=C SCANS LINE(80) FROM NONBLK+1 AND RETURNS THE NEXT ELEMENT.;C THIS ELEMENT COULD BE A CONSTANT, VALUE OF A VARIABLE, A?C BINARY FUNCTION CODE, OR A UNARY FUNCTION CODE. UPON RETURN,3C NONBLK POINTS TO LAST CHARACTER OF NEXT ELEMENT.C/C RETCD = 1 IF OPERAND (VALUE IN RETVAL(100)#C 2 IF OPERATOR (VALUE IN RETTYP)C 3 NO MORE ELEMENTSC 4 IF ERRORC>C RETVAL HOLDS VALUE OF OPERAND FOUND (EITHER CONSTANT OR IF4C A VARIABLE (A-Z,%), THE VALUE OF THAT VARIABLE)CC RETTYP IS THE TYPE CODECCCCC MODIFY CODES: M1,M2,M3,M4,M8CCCC>C NOTE: BECAUSE OF THE LENGTH AND COMPLEXITY OF THIS ROUTINE,=C THE FLOWCHART MADE OF THE LOGIC FLOW IS VERY USEFUL.CCCCC NEXTEL CALLSC&C ERRMSG PRINTS OUT ERROR MESSAGES=C FLIP REVERSES THE NON-LEADING ZERO DIGITS IN A VECTOR2C GETNNB GETS THE NEXT NON-BLANK FROM LINE(80)CCCCC NEXTEL IS CALLED BY INPOSTCCCCCC VARIABLE USE3C --------- ----------------------------------C,C ALPHA(27) HOLDS LEGAL VARIABLE NAMES.CC ARROW '^'C>C B10 SWITCH SET WHEN CONSTANT IS NOT OCTAL (MAY BEDC DECIMAL OR HEX BECAUSE THE DIGIT 8 OR 9 WAS FOUND).C@C B16 SWITCH SET WHEN CONSTANT IS HEXADECIMAL BECAUSE5C DIGIT A, B, C, D, E, OR F WAS FOUND.C(C BASE HOLDS BASE OF CONSTANT.C4C CHAR1 HOLDS A SINGLE CHARACTER FROM LINE.C,C DEFBAS THE DEFAULT BASE SPECIFIED.C@C DIGITS(16,3) HOLDS ASCII CHARACTERS FOR THE DIGITS OF BASES C 8, 10, AND 16.CC DOT '.'CC EQ '='C*C EXCODE CODE FOR EXPONENTIATION.CCC FCNT NUMBER OF UNARY FUNCTIONS DEFINED BY VECTOR FUNCTC-C FUNCT (NAME,INDEX) HOLDS FUNCTION NAMES.CC FUNVAL(I,J)?C IF I=1, THE VALUE IS THE NUMBER OF CHARACTERS IN THE J-THFC FUNCTION WHOSE NAME IS THE FUNCT(K,J) WHERE K=1,2,3...10>C IF I=2, THE VALUE IS THE STACK ELEMENT CODE FOR THE J-TH@C FUNCTION WHOSE NAME IS IN FUNCT(K,J), K=1,2,3...10CC $C I,J,K,L HOLDS TEMPORARY VALUESC;C I1,I2 HOLD VALUE OF DIGITS IN E OR D SPECIFICATION.CFC IALPHA INDEX INTO ALPHA OF THE FIRST NON-BLANK CHARACTER FOUND.C$C IHOLD HOLDS TEMPORARY VALUESC(C INT PICKS UP INTEGER*4 VALUES.C.C IPT POINTER TO ELEMENTS IN LINE(80).C.C IPT2 POINTER TO ELEMENTS IN LINE(80).CHC LASTOP USED TO HOLD VALUE OF LAST OPERATOR SO THAT UNARY OPERATORS=C CAN BE IDENTIFIED IN CASES LIKE A*-B AND A/(-3).CC MINUS '-'CBC OPER(9) HOLDS LEGAL ONE CHARACTER OPERATORS LIKE '+' AND '*'.CC PLUS '+'CC QUOTE "'"C2C RB HOLDS NEGATIVE POWERS OF 10.(BASE 100:)ZYY2Y}0)C'C REAL PICKS UP REAL*8 CONSTANTS.CC RETCD RETURN CODE:2C 1 IF OPERAND (VALUE IN RETVAL(100)).C 2 IF OPERATOR (VALUE IN RETTYP)"C 3 NO MORE ELEMENTS.C 4 IF ERROR.C-C RETCD2 RETURN CODE WHEN CALLING GETNNB.C5C RETPT INDEXES DIGITS PICKED UP FOR A CONSTANT.C3C RETTYP THE TYPE CODE OF THE RETURNED ELEMENT.C)C TYPE TYPE CODE FOR EACH VARIABLE.C&C VBLS HOLDS VALUE OF VARIABLES.C6C VLEN GIVES LENGTH IN BYTES FOR EACH DATA TYPE.CCCCCCC=C ***********************************************************C * *9C * LASTOP MUST BE SET TO ZERO AT START OF EXPRESSION *C * *=C ***********************************************************CCCCCCCC)C SUBROUTINE NEXTEL (RETVAL,RETTYP,RETCD)CCC REAL*8 REAL,RB,ACX,XACC INTEGER*4 INTC INTEGER*2 LEVEL,NONBLK,LEND INTEGER*2 LASTOP& INTEGER*2 VIEWSW,BASED,VLEN(9),DEFBAS INTEGER*2 TYPE(RRWP,RCLP)% INTEGER*2 RETCD,RETCD2,RETTYP,EXCODE INTEGER*2 B10,B16,RETPT,BASE INTEGER*2 FCNT,AHOLD. INTEGER*2 I,J,K,L,IALPHA,IHOLD,IPT,IPT2,I1,I2C0 LOGICAL*1 CHAR1,DOT,ARROW,QUOTE,STAR,MINUS,PLUS LOGICAL*1 RETVAL(20)$ LOGICAL*1 FUNCT(10,40),FUNVAL(2,40) LOGICAL*1 AVBLS(20,27) EQUIVALENCE(XAC,AVBLS(1,27)) LOGICAL*1 VBLS(8,RRWP,RCLP) LOGICAL*1 OPER(9),DIGITS(16,3)6 LOGICAL*1 LINE(80),ALPHA(27),COMMA,BLANK,RPAR,LPAR,EQ LOGICAL*1 FOUR(4),EIGHT(8)C COMMON /V/ TYPE,AVBLS,VBLS,VLEN COMMON /DIGV/ DIGITS, COMMON LEVEL,LINE,NONBLK,LEND,VIEWSW,BASED- COMMON /CONS/ ALPHA,COMMA,BLANK,RPAR,LPAR,EQ COMMON /ERROR/ LASTOPC$ EQUIVALENCE (REAL,EIGHT),(FOUR,INT)C/ DATA DOT/'.'/,ARROW/'^'/,QUOTE/''''/,STAR/'*'/ DATA MINUS/'-'/,PLUS/'+'// DATA OPER/'(','-','!','*','/','+','-',')','='/CC NUMBER OF FUNCTIONS DATA FCNT/24/C5 DATA FUNCT/'A','B','S',' ',' ',' ',' ',' ',' ', ' ',; ; 'D','A','B','S',' ',' ',' ',' ',' ',' ',; ; 'I','A','B','S',' ',' ',' ',' ',' ',' ',- ; 'F','L','O','A','T',5*' ',) ; 'I','F','I','X',6*' ',) ; 'A','I','N','T',6*' ',% ; 'I','N','T',7*' ',- ; 'I','D','I','N','T',5*' ',% ; 'E','X','P',7*' ',) ; 'D','E','X','P',6*' ',1 ; 'A','L','O','G','1','0',4*' ',1 ; 'D','L','O','G','1','0',4*' ',) ; 'A','L','O','G',6*' ',) ; 'D','L','O','G',6*' ',) ; 'S','Q','R','T',6*' ',- ; 'D','S','Q','R','T',5*' ',% ; 'S','I','N',7*' ',) ; 'D','S','I','N',6*' ',% ; 'C','O','S',7*' ',) ; 'D','C','O','S',6*' ',) ; 'T','A','N','H',6*' ',- ; 'D','T','A','N','H',5*' ',) ; 'A','T','A','N',6*' ',- ; 'D','A','T','A','N',5*' ', ; 160*' '/ DATA EXCODE/112/E DATA FUNVAL/3,31,4,31,4,32,5,33,4,34,4,35,3,36,5,36,3,37,4,37,B ;6,39,6,39,4,38,4,38,4,40,5,40,3,41,4,41,3,42,4,42,4,43,5,43, ; 4,44,5,44,32*0/CCC 10 CONTINUE CALL GETNNB(IPT,RETCD2) IF (RETCD2.EQ.1) GOTO 50CC NO MORE ELEMENTS LASTOP=0 RETCD=3 RETURNCCC INITIALIZE VARIABLES 50 CONTINUE B10=0 B16=0 RETTYP=0 RETPT=0 REAL=0.D0 RETCD=1 DEFBAS=BASED DO 60 I=1,2060 RETVAL(I)=0C70 CHAR1=LINE(IPT) NONBLK=IPTCCC SEE IF ALPHABETIC OR % DO 80 I=1,27" IF (CHAR1.EQ.ALPHA(I)) GOTO 10000 80 CONTINUECC"C NOT ALPHA SO SEE IF AN OPERATOR DO 100 I=1,9! IF (CHAR1.EQ.OPER(I)) GOTO 20000 100 CONTINUECCC SEE IF AN OPERAND140 DO 150 I=1,16% IF (CHAR1.EQ.DIGITS(I,3)) GOTO 30000 150 CONTINUECCC IF (CHAR1.EQ.DOT) GOTO 40000CCC IF (CHAR1.EQ.ARROW) GOTO 300CCC IF (CHAR1.EQ.QUOTE) GOTO 200CC-C ADDITIONAL CONS00:1Z"ZY/YTADATADATADATADATADATATANT OPERATOR WOULD GO HERECC-C *** ERROR *** ILLEGAL CHARACTER ENCOUNTERED190 CALL ERRMSG (20) GOTO 99000CCCC(C **************************************(C ****** ASCII CONSTANT SPECIFIED ******(C ************************************** 200 CONTINUE NONBLK=NONBLK+1 RETVAL(1)=LINE(NONBLK) RETTYP=1 GOTO 35100CCCC(C **************************************(C ****** IMMEDIATE BASE SPECIFIED ******(C **************************************300 CALL GETNNB(IPT,RETCD2) IF (RETCD2.EQ.1) GOTO 320CC*C *** ERROR *** ILLEGAL BASE SPECIFICATION310 CALL ERRMSG(19) GOTO 99000CCC IMMEDIATE BASE SPECIFICATION320 CHAR1=LINE(IPT) NONBLK=IPT# IF (CHAR1.EQ.DIGITS(8,3)) GOTO 360# IF (CHAR1.NE.DIGITS(1,3)) GOTO 310CC6C FIRST DIGIT IS 1 SO IMMEDIATE BASE MIGHT BE 10 OR 16 CALL GETNNB (IPT,RETCD2) IF (RETCD2.EQ.2) GOTO 310 CHAR1=LINE(IPT) NONBLK=IPT$ IF (CHAR1.EQ.DIGITS(10,1)) GOTO 365# IF (CHAR1.NE.DIGITS(6,1)) GOTO 310CCC IMMEDIATE BASE IS 16 DEFBAS=16 GOTO 370CCC IMMEDIATE BASE IS 8 360 DEFBAS=8 GOTO 370CCC IMMEDIATE BASE IS 10 365 DEFBAS=10CCC370 CALL GETNNB(IPT,RETCD2) IF (RETCD2.EQ.2) GOTO 310 CHAR1=LINE(IPT) NONBLK=IPTCC/C GO FIND OUT WHAT NUMBER HAS THAT DEFAULT BASE GOTO 140CCC C6C ****************************************************6C ****** SEARCH TO SEE IF A UNARY FUNCTION NAME ******6C ****************************************************10000 CONTINUE IALPHA=I IHOLD=NONBLKCC"C SCAN EACH OF THE FUNCTION NAMES. DO 10060 I=1,FCNTC>C K HOLDS NUMBER OF NON-BLANK CHARACTERS IN THE FUNCTION NAME. K=FUNVAL(1,I) IPT2=IHOLD NONBLK=IHOLD IF (K.EQ.0) GOTO 10060CC)C SCAN EACH LETTER OF THE FUNCTION'S NAME DO 10050 J=1,K) IF (LINE(IPT2).NE.FUNCT(J,I)) GOTO 10060 IF (J.EQ.K) GOTO 10100 CALL GETNNB (IPT2,RETCD2) IF (RETCD2.EQ.2) GOTO 10060 NONBLK=IPT210050 CONTINUE STOP 10050C10060 CONTINUE10070 NONBLK=IHOLD GOTO 12000CC<C FUNCTION FOUND (LEAVES NONBLK POINTING AT LAST CHARACTER)10100 CONTINUECCCC$C **********************************$C ****** UNARY FUNCTION FOUND ******$C ********************************** RETTYP=FUNVAL(2,I) LASTOP=RETTYP RETCD=2 GOTO 99099CCCCC"C ********************************"C ****** VARIABLE SPECIFIED ******"C ********************************12000 CONTINUECC(C IALPHA HOLDS INDEX INTO ALPHA OF NAME2C ******&&&&&& REMOVE BLK OF CODE STARTING HERE...C CALL GETNNB (IPT,RETCD2)C IF (RETCD2.EQ.2) GOTO 12060CCCC(CC MAKE SURE NEXT CHARACTER IS NOT ALPHAC DO 12050 I=1,27'C IF (LINE(IPT).EQ.ALPHA(I)) GOTO 12200C12050 CONTINUEC *****&&&&& ...ENDING HEREC ADD BELOW... LLB=IPT LRB=LEND0 CALL VARSCN(LINE,LLB,LRB,LSTCHR,ID1,ID2,IVALID)C IF(IVALID.EQ.0)GOTO 12200 C IPT=LSTCHR(C IF(IVALID.NE.0.AND.ID2.GT.1)GOTO 12201 IF(IVALID.EQ.0)GOTO 13201 IF(ID2.GT.1)GOTO 12201& IF(ID2.EQ.1.AND.ID1.LE.RRW)GOTO 1220113201 CONTINUE7C NOT VALID VARIABLE. SEE IF A 2 + ARGUMENT FUNCTION... I=IPT+9 CALL FNAME(LINE(IPT),I,INDEXF)9 IF(INDEXF.EQ.6.OR.INDEXF.LT.1.OR.INDEXF.GT.21)GOTO 122023C NOW KNOW THERE IS A FUNCTION THERE, SO HANDLE IT. LLAST=LEND-IPT+1 I=INDEX(LINE(IPT),']')# IF(I.LE.0.OR.I.GT.LLAST)GOTO 12202 LRB=I LLB=INDEX(LINE(IPT),'[')' IF(LLB.LE.0.OR.LLB.GT.LLAST)GOTO 12202* CALL DOMFCN(LINE(IPT),LLB,LRB,INDEXF,ACX) XAC=ACX TYPE(1,1)=2 CALL TYPSET(1,27,TYPE(1,1))C TYPE(27,1)=2 ID1=27 ID2=1 LSTCHR=LRB+IPT<C GO AND MERGE AS THOUGH WE JUST GOT A VARIABLE % AND HAD TOC RETURN ITS VALUE. GOTO 12201(C IF NOT VALID FUNCTION REPORT AN ERROR.12202 GOTO 1220012201 IPT=LSTCHR IF(LSTCHR.LT.LEND)IPT=IPT-1 NONBLK=IPT-C RESET NONBLK ALST SO WE RESET GETNNB TOO...C WAS IPT=LSTCHR+1#C IPT POINTS AFTER VARIABLE NAME...&C ENSURE NON ALPHA AFTER VARIABLE NAME CALL GETNNB(IPT,RETCD2) IF(RETCD2.EQ.2) GOTO 12060C7C IF THE NEXT CHARACTER IS AN = 00:9ZYY2Y}SIGN DON'T RETURN VALUE7C OF VARIABLE, JUST PUT INDEX INTO VBLS INTO LOWER BYTE C OF RETVAL. IF (LINE(IPT).EQ.EQ) GOTO 12100CC2C ************************************************2C ****** RETURN VALUE OF VARIABLE SPECIFIED ******2C ************************************************!12060 CALL TYPGET(ID1,ID2,RETTYP)C12060 RETTYP=TYPE(ID1,ID2) C *****&&&&&BC MUST CLAMP TYPES SO EXTENDED VARIABLES CAN'T BE MULT PRCN VRBLS.& IF(ID1.LE.27.AND.ID2.EQ.1) GOTO 12061 IF (RETTYP.EQ.5)RETTYP=4 IF (RETTYP.EQ.6)RETTYP=8 IF (RETTYP.EQ.7)RETTYP=312061 CONTINUE IF(RETTYP.LE.0)GO TO 12080 K=VLEN(RETTYP) DO 12070 I=1,K& IF(ID1.LE.27.AND.ID2.EQ.1) GOTO 120683C TRY AND CALL XVBLGT HERE TO GET VALUE ALL AT ONCE"C TO AVOID MULTIPLE ARBITRATION...& IF(I.EQ.K)CALL XVBLGT(ID1,ID2,RETVAL)"C CALL VBLGET(I,ID1,ID2,RETVAL(I))C RETVAL(I)=VBLS(I,ID1,ID2) GOTO 1207012068 RETVAL(I)=AVBLS(I,ID1)12070 CONTINUEC12080 LASTOP=RETTYP GOTO 99099CCC9C *******************************************************9C ****** VARIABLE SPECIFIED BUT FOLLOWED BY = SIGN ******9C *******************************************************12100 CONTINUEC RETVAL(1)=IALPHAC RETTYP=TYPE(IALPHA) CALL TYPGET(ID1,ID2,TYPE(1,1)) CALL RVBOO(RETVAL,ID1,ID2)-C RVBOO JUST STUFFS ID1,ID2 INTO RETVAL ARRAYC AS 2 INTEGERS. RETTYP=TYPE(1,1) GOTO 12080CCC%C *** ERROR *** UNIDENTIFIED FUNCTION12200 CALL ERRMSG(18) GOTO 99000CCCCCC **********************C ****** OPERATOR ******C **********************C3C I IS INDEX INTO OPER TO TELL WHAT OPERATOR IT IS20000 CONTINUE RETCD=2 IF(I.NE.4)GO TO 20050CC=C IF AN ASTERISK IS FOUND THE NEXT CHARACTER MUST BE EXAMINED2C TO SEE IF '**' WAS SPECIFIED FOR EXPONENTIATION. CALL GETNNB (IPT,RETCD2) IF(RETCD2.NE.1)GO TO 99000" IF (LINE(IPT).NE.STAR) GOTO 20050CC!C '**' SPECIFIED (EXPONENTIATION) RETTYP=EXCODE NONBLK=IPT GO TO 12080CCC#C SET DEFAULT RETTYP FOR OPERATORS20050 RETTYP=109+ICC(C CHECK OUT POSSIBLE UNARY OPERATOR "-" IF (RETTYP.NE.111) GOTO 20080CC@C IF A MINUS IS ENCOUNTERED AND THERE WAS NO PREVIOUS ELEMENT OR=C IF PREVIOUS ELEMENT WAS AN OPERATOR OR = SIGN THEN OPERATOR C IS UNARY.9 IF (LASTOP.EQ.0.OR.(LASTOP.GE.110.AND.LASTOP.LE.116).OR.% ; LASTOP.EQ.200) GOTO 20090CCC BINARY SUBTRACTION OPERATOR RETTYP=116 GOTO 12080CCCC SEE IF A '+' SIGN"20080 IF(RETTYP.NE.115)GO TO 20085CC!C DETERMINE IF IT IS A UNARY PLUS- IF(LASTOP.NE.0.AND.LASTOP.LE.100)GO TO 20085CCC SEE IF LAST OPERATOR WAS ')' IF(LASTOP.EQ.117)GO TO 20085CCC UNARY '+' FOUND. RETCD=1 GO TO 10CCC;C RESET LASTOP TO 0 IF LEFT PARENTHESIS IS FOUND (CODE 110)(C IF RETTYP IS FOR =, SET TO PROPER CODE"20085 IF(RETTYP.EQ.110)GO TO 20090 IF(RETTYP.EQ.118)RETTYP=200 GO TO 12080CC C UNARY -20090 CONTINUE GOTO 99097CCCCCCC *************************C ****** NON-DECIMAL ******C *************************C30000 RETPT=RETPT+1 IF (RETPT.LE.19) GOTO 30020CC:C *** ERROR *** MULTIPLE PRECISION IS LIMITED TO 99 DIGITS CALL ERRMSG(22) GOTO 99000CC.C I HOLDS INDEX INTO DIGITS THAT WAS A MATCH./C SEE IF VALUE OF DIGIT IMPLIES A HIGHER BASE.30020 IF (I.NE.16) GOTO 30030 I=0 GOTO 30050!30030 IF (I.EQ.8.OR.I.EQ.9) B10=1 IF(I.GT.9) B16=130050 RETVAL(RETPT)=ICCC GET NEXT CHARACTER CALL GETNNB (IPT,RETCD2) IF (RETCD2.NE.1) GOTO 30100 NONBLK=IPT CHAR1=LINE(IPT) DO 30070 I=1,16% IF (CHAR1.EQ.DIGITS(I,3)) GOTO 3000030070 CONTINUE IF (CHAR1.EQ.DOT) GOTO 40000 NONBLK=NONBLK-130100 CONTINUEC) IF (DEFBAS.EQ.16.OR.B16.EQ.1) GOTO 30200) IF (DEFBAS.EQ.10.OR.B10.EQ.1) GOTO 30300CCC *****************************C ****** BASE 8 CONSTANT ******C ***************************** BASE=8CC1C IF MORE THAN 10 DIGITS IT IS MULTIPLE PRECISION IF (RETPT.GT.10) GOTO 30170 RETTYP=8CC#00:AZ"ZY/YTADATADATADATADATADATAC CONVERT TO OCTAL, HEX OR INTEGER 30110 INT=030130 DO 30132 L=1,19 IF (RETVAL(L).NE.0) GOTO 3014030132 CONTINUE30140 DO 30150 I=L,RETPT INT=INT*BASE+RETVAL(I) RETVAL(I)=030150 CONTINUE RETVAL(20)=030155 DO 30160 I=1,430160 RETVAL(I)=FOUR(I) GOTO 35100CC2C ************************************************2C ****** MULTIPLE PRECISION BASE 8 CONSTANT ******2C ************************************************30170 RETTYP=6!30180 CALL FLIP (RETVAL,20,RETPT) GOTO 35100CBCTC C *********************CC ****** BASE 16 ******GC *********************I 30200 BASE=16ACNCO1C IF MORE THAN 7 DIGITS IT IS MULTIPLE PRECISION.T IF (RETPT.GT.7) GOTO 30270CICUC'C HEXADECIMAL RETTYP=3 GOTO 30110ACEC C C2*C *****************************************C ****** MULTIPLE PRECISION BASE 16 *******C ****************************************30270 RETTYP=7 GOTO 30180*C*C*C **********************C ****** BASE 10 ****** C ********************* 30300 BASE=10OCNCE1C IF MORE THAN 9 DIGITS IT IS MULTIPLE PRECISION.  IF (RETPT.GT.9) GOTO 30370 C*C C INTEGER RETTYP=4* GOTO 30110*C*C**C *****************************************C ****** MULTIPLE PRECISION BASE 10 *******C ****************************************30370 RETTYP=5 GOTO 30180DCOC CRCUCIC SET LASTOP AND EXIT35100 LASTOP=RETTYPA GOTO 99099OCECEC *****************************PC ****** REAL OR DECIMAL ******2C *****************************40000 IF (B16.NE.1) GOTO 40020CRC2C *** ERROR *** '.' MAY ONLY BE USED WITH BASE 10 CALL ERRMSG(21) GOTO 99000 CZC,CE 40020 IF (RETPT.EQ.0) GOTO 40200CYCIC IGNORE LEADING ZEROES DO 40022 L=1,19 IF (RETVAL(L).NE.0) GOTO 4003040022 CONTINUECE$C IF ALL ZEROES THE LAST ONE COUNTS! L=19,C C C CONVERT TO A REAL*8 NUMBER40030 CONTINUE REAL=0.D0 DO 40060 I=L,RETPTT REAL=REAL*10.D0+RETVAL(I) RETVAL(I)=040060 CONTINUEC C ,C PICK UP FRACTIONAL PART OF REAL (DECIMAL)40200 CONTINUE RB=1.0D0 RETTYP=2A40205 CALL GETNNB (IPT,RETCD2) IF (RETCD2.EQ.1) GOTO 40300C9C IF NO MORE, YOU GOT IT ALL SO GO PLACE VALUE IN RETVAL.- GOTO 40537-C-C-C-40300 NONBLK=IPT CHAR1=LINE(IPT) DO 40320 I=1,10% IF (CHAR1.EQ.DIGITS(I,1)) GOTO 40330B40320 CONTINUE GOTO 40350N40330 IF (I.EQ.10) I=0 RB=0.1D0*RB REAL=REAL+DFLOAT(I)*RBA GOTO 40205 CRCW8C CHECK TO SEE IF E OR D EXPONENT SPECIFICATION IS USED.D40350 IF (CHAR1.EQ.DIGITS(13,3).OR.CHAR1.EQ.DIGITS(14,3)) GOTO 40360 NONBLK=NONBLK-1 GO TO 40537CSCS/C *********************************************L/C ****** E AND D EXPONENT SPECIFICATIONS ******D/C *********************************************D40360 CONTINUE CALL GETNNB(IPT,RETCD2) IF (RETCD2.EQ.1) GOTO 40370C.C5C *** ERROR *** ILLEGAL REAL EXPONENT FIELD SPECIFIED40365 CALL ERRMSG (24) GOTO 99000ICOC40370 CHAR1=LINE(IPT)U IF (CHAR1.EQ.MINUS) GOTO 40380Y RB=10.D0C IF (CHAR1.NE.PLUS) GOTO 40400 GOTO 40390N40380 RB=0.1D0CFCAC,40390 NONBLK=IPT CALL GETNNB (IPT,RETCD2)C!40400 IF (RETCD2.GE.2) GOTO 40365 NONBLK=IPTO CHAR1=LINE(IPT) DO 40450 I=1,10% IF (CHAR1.EQ.DIGITS(I,1)) GOTO 40480E40450 CONTINUE GOTO 40365-40480 IF (I.EQ.10) I=0CWCE.C I1 HOLDS 1ST DIGIT OF EXPONENT SPECIFICATION I1=II CALL GETNNB (IPT,RETCD2)U IF (RETCD2.GE.2) GOTO 40550 CHAR1=LINE(IPT) NONBLK=IPTA DO 40500 I=1,10% IF(CHAR1.EQ.DIGITS(I,1)) GO TO 40520O40500 CONTINUE NONBLK=NONBLK-1 GOTO 40550DCECR2C I2 HOLDS SECOND DIGIT OF EXPONENT SPECIFICATION.40520 IF (I.EQ.10) I=0 I2=I CECE40530 RETTYP=9 REAL=REAL*RB**(I1*10+I2) CECEC 5C ***************************************************S5C ****** COPY REAL*8 INTO RETURN VECTOR RETVAL ****** 5C ***************************************************N40537 DO 40540 I=1,840540 RETVAL(I)=EIGHT(I) GOTO 35100SCKC+CN 40550 I2=I1  I1=0 GOTO 40530 CQCEC""C ********************************"C ******* ERROR PR00:IZ;JZY2Y}OCESSING *******"C ********************************99000 CONTINUE( WRITE (1,99010) (LINE(I),I=NONBLK,LEND)99010 FORMAT (1X,80A1) RETCD=499097 LASTOP=0 99099 RETURN END SUBROUTINE RVBOO(RETV,ID1,ID2)T@C THIS ROUTINE ONLY COPIES ID1,ID2 INTO RETV ARRAY TO AVOID SOME;C BYTE-INTEGER CONVERSION PROBLEMS. THIS PACKING IS USED TOO!C ACCESS VARIABLE LOCATION LATER.E INTEGER*2 RETV,ID1,ID2D DIMENSION RETV(2) RETV(1)=ID1 RETV(2)=ID2 RETURN ENDProject Planning Path Sheet 8 40 17 17 10 10 10 10 8 8 4 6 6 9 4 4 4 12 200P 1, 1,Function, -1,F9.2 , 20P 2, 1,Preconditions -1,F9.2 , 26P 3, 1,Start -1,F9.2 , 2,P 4, 1,Duration  -1,F9.2 , 20P 5, 1,End -1,F9.2 , 22P 6, 1,Proj Start -1,F9.2 , 2 P 7, 1,MAX[G3:G20] 1,F9.2 , 2 EP 8, 1,A=24.\24./(G1-G2+.000001)\H1=%\IF [H1.GT.A0]H1=A | H1=H10 1,F7.1 , 26P 9, 1,Crt -1,F9.2 , 2 P 10, 1, Resrc  -1,F9.2 , 2 P 11, 1,H=CNT[G1:G414]-3.0  1,F9.2 , 2,P 13, 1,Total Res Used  -1,F9.2 , 2,P 1, 2,Name8 -1,F9.2 , 2,P 2, 2,(Addresses) -1,F9.2 , 2P 3, 2,Date  -1,F9.2 , 22P 4, 2,(Days)  -1,F9.2 , 21P 5, 2,Date  -1,F9.2 , 26P 6, 2,85/09/151 -3,F9.2 , 2 P 7, 2,*U JDATE F2\A2=%  1,F9.2 , 2 P 9, 2,P## 3,F3.0 , 20P 10, 2,D=0.2 1,F9.2 , 2 P 1, 3,SETUP -1,F9.2 , 2 P 2, 3,A2 -1,F9.2 , 22P 3, 3,85/09/15 -1,F9.2 , 2P 4, 3,5.\*C TEST1 1,F7.1 , 2 P 5, 3,85/09/202 -1,F9.2 , 2 P 6, 3,MAX[{B3]+0. 1,F8.1 , 20FP 7, 3,G3=F3\*U JTOCH G3,C3\%=G3=G3+D3\*U JTOCH G3,E3\A3=G3\%=G3 1,F9.2 , 2 *P 8, 3,C3=F3\E3=G3\R=P\N=G3-G$1$\S=Q 1,F8.1 , 2/P 9, 3,P## 3,F3.0 , 2 P 10, 3,1. 3,F5.0 , 2 TP 11, 3,B=H$1$*(F3-G$2$)+3.\C=H$1$*(G3-G$2$)+3.\D=0.\*U XQTCM CR J3 P#%BD:P#%CD -1,F9.2 , 2=nP 12, 3,IF [N0.EQ.D0]M=1. | M=I3 \I3=MAX[M0,I3]\*P@ R0,S0\*P P#8#0 \IF [M0.GT.D0] P##=M | P##=MAX[I3,P##] 1,F9.2 , 2BP 1, 4,MIDDLE A1 -1,F9.2 , 2UP 2, 4,A3 -1,F9.2 , 2,P 3, 4,85/09/20G -1,F9.2 , 2=P 4, 4,5.\*C TEST* 1,F7.1 , 2 P 5, 4,85/09/25I -1,F9.2 , 2 P 6, 4,MAX[{B4]+0. 1,F8.1 , 2 FP 7, 4,G4=F4\*U JTOCH G4,C4\%=G4=G4+D4\*U JTOCH G4,E4\A4=G4\%=G4 1,F9.2 , 24*P 8, 4,C4=F4\E4=G4\R=P\N=G4-G$1$\S=Q 1,F8.1 , 22P 9, 4,P## 3,F3.0 , 2P 10, 4,2. 3,F5.0 , 25TP 11, 4,B=H$1$*(F4-G$2$)+3.\C=H$1$*(G4-G$2$)+3.\D=0.\*U XQTCM CR J4 P#%BD:P#%CD -1,F9.2 , 2QnP 12, 4,IF [N0.EQ.D0]M=1. | M=I4 \I4=MAX[M0,I4]\*P@ R0,S0\*P P#8#0 \IF [M0.GT.D0] P##=M | P##=MAX[I4,P##] 1,F9.2 , 2+P 1, 5,MIDDLE BD -1,F9.2 , 2%P 2, 5,A4 -1,F9.2 , 2 P 3, 5,85/09/25Q -1,F9.2 , 2AP 4, 5,6. 3,F7.1 , 2DP 5, 5,85/10/01, -1,F9.2 , 2 P 6, 5,MAX[{B5]+0. 1,F8.1 , 26FP 7, 5,G5=F5\*U JTOCH G5,C5\%=G5=G5+D5\*U JTOCH G5,E5\A5=G5\%=G5 1,F9.2 , 25*P 8, 5,C5=F5\E5=G5\R=P\N=G5-G$1$\S=Q 1,F8.1 , 22P 9, 5,P## 3,F3.0 , 2P 10, 5,2. 3,F5.0 , 26TP 11, 5,B=H$1$*(F5-G$2$)+3.\C=H$1$*(G5-G$2$)+3.\D=0.\*U XQTCM CR J5 P#%BD:P#%CD -1,F9.2 , 2QnP 12, 5,IF [N0.EQ.D0]M=1. | M=I5 \I5=MAX[M0,I5]\*P@ R0,S0\*P P#8#0 \IF [M0.GT.D0] P##=M | P##=MAX[I5,P##] 1,F9.2 , 2+P 1, 6,MIDDLE C, -1,F9.2 , 2 P 2, 6,A3 -1,F9.2 , 2 P 3, 6,85/09/20Q -1,F9.2 , 2AP 4, 6,5.\*C TEST# 1,F7.1 , 2M00;QZ"ZY/YTADATADATADATADATADATAP 5, 6,85/09/25  -1,F9.2 , 27P 6, 6,MAX[{B6]+0. 1,F8.1 , 27FP 7, 6,G6=F6\*U JTOCH G6,C6\%=G6=G6+D6\*U JTOCH G6,E6\A6=G6\%=G6 1,F9.2 , 2 *P 8, 6,C6=F6\E6=G6\R=P\N=G6-G$1$\S=Q 1,F8.1 , 2 P 9, 6,P## 3,F3.0 , 2:P 10, 6,2. 3,F5.0 , 27TP 11, 6,B=H$1$*(F6-G$2$)+3.\C=H$1$*(G6-G$2$)+3.\D=0.\*U XQTCM CR J6 P#%BD:P#%CD -1,F9.2 , 2 nP 12, 6,IF [N0.EQ.D0]M=1. | M=I6 \I6=MAX[M0,I6]\*P@ R0,S0\*P P#8#0 \IF [M0.GT.D0] P##=M | P##=MAX[I6,P##] 1,F9.2 , 2SP 1, 7,MIDDLE D6 -1,F9.2 , 2 P 2, 7,A5 -1,F9.2 , 2 P 3, 7,85/10/017 -1,F9.2 , 20P 4, 7,6. 3,F7.1 , 2P 5, 7,85/10/07  -1,F9.2 , 20P 6, 7,MAX[{B7]+0. 1,F8.1 , 25FP 7, 7,G7=F7\*U JTOCH G7,C7\%=G7=G7+D7\*U JTOCH G7,E7\A7=G7\%=G7 1,F9.2 , 26*P 8, 7,C7=F7\E7=G7\R=P\N=G7-G$1$\S=Q 1,F8.1 , 2,P 9, 7,P## 3,F3.0 , 25P 10, 7,2. 3,F5.0 , 26TP 11, 7,B=H$1$*(F7-G$2$)+3.\C=H$1$*(G7-G$2$)+3.\D=0.\*U XQTCM CR J7 P#%BD:P#%CD -1,F9.2 , 2 nP 12, 7,IF [N0.EQ.D0]M=1. | M=I7 \I7=MAX[M0,I7]\*P@ R0,S0\*P P#8#0 \IF [M0.GT.D0] P##=M | P##=MAX[I7,P##] 1,F9.2 , 2AP 1, 8,MIDDLE E  -1,F9.2 , 2AP 2, 8,A4,A3 -1,F9.2 , 2 P 3, 8,85/09/255 -1,F9.2 , 22P 4, 8,5.\*C TEST, 1,F7.1 , 2 P 5, 8,85/09/30 -1,F9.2 , 2P 6, 8,MAX[{B8]+0. 1,F8.1 , 20FP 7, 8,G8=F8\*U JTOCH G8,C8\%=G8=G8+D8\*U JTOCH G8,E8\A8=G8\%=G8 1,F9.2 , 2,*P 8, 8,C8=F8\E8=G8\R=P\N=G8-G$1$\S=Q 1,F8.1 , 26P 9, 8,P## 3,F3.0 , 2 P 10, 8,2. 3,F5.0 , 25TP 11, 8,B=H$1$*(F8-G$2$)+3.\C=H$1$*(G8-G$2$)+3.\D=0.\*U XQTCM CR J8 P#%BD:P#%CD -1,F9.2 , 2 nP 12, 8,IF [N0.EQ.D0]M=1. | M=I8 \I8=MAX[M0,I8]\*P@ R0,S0\*P P#8#0 \IF [M0.GT.D0] P##=M | P##=MAX[I8,P##] 1,F9.2 , 2 P 1, 9,MIDDLE F  -1,F9.2 , 28P 2, 9,A6 -1,F9.2 , 2P 3, 9,85/09/25  -1,F9.2 , 2 P 4, 9,6. 3,F7.1 , 2,P 5, 9,85/10/011 -1,F9.2 , 2P 6, 9,MAX[{B9]+0. 1,F8.1 , 2 FP 7, 9,G9=F9\*U JTOCH G9,C9\%=G9=G9+D9\*U JTOCH G9,E9\A9=G9\%=G9 1,F9.2 , 2 *P 8, 9,C9=F9\E9=G9\R=P\N=G9-G$1$\S=Q 1,F8.1 , 2P 9, 9,P## 3,F3.0 , 2 P 10, 9,2. 3,F5.0 , 20TP 11, 9,B=H$1$*(F9-G$2$)+3.\C=H$1$*(G9-G$2$)+3.\D=0.\*U XQTCM CR J9 P#%BD:P#%CD -1,F9.2 , 26nP 12, 9,IF [N0.EQ.D0]M=1. | M=I9 \I9=MAX[M0,I9]\*P@ R0,S0\*P P#8#0 \IF [M0.GT.D0] P##=M | P##=MAX[I9,P##] 1,F9.2 , 20P 1, 10,MIDDLE G0 -1,F9.2 , 2 P 2, 10,A5 -1,F9.2 , 22P 3, 10,85/10/01, -1,F9.2 , 2 P 4, 10,5.\*C TEST  1,F7.1 , 20P 5, 10,85/10/06, -1,F9.2 , 20P 6, 10,MAX[{B10]+0.  1,F8.1 , 26UP 7, 10,G10=F10\*U JTOCH G10,C10 \ G10=G10+D10\*U JTOCH G10,E10\A10=G10\%=G10+0.0 1,F9.2 , 26/P 8, 10,C10=F10\E10=G10\R=P\N=G10-G$1$\S=Q2 1,F8.1 , 2P 9, 10,P## 3,F3.0 , 2 P 10, 10,2. 3,F5.0 , 20WP 11, 10,B=H$1$*(F10-G$2$)+3.\C=H$1$*(G10-G$2$)+3.\D=0.\*U XQTCM CR J10 P#%BD:P#%CD  -1,F9.2 , 24rP 12, 10,IF [N0.EQ.D0]M=1. | M=I10 \I10=MAX[M0,I10]\*P@ R0,S0\*P P#8#0 \IF [M0.GT.D0] P##=M | P##=MAX[I10,P##] 1,F9.2 , 2 P 1, 11,MIDDLE H  -1,F9.2 , 2 P 2, 11,A9 -1,F9.2 , 2P 3, 11,85/10/01 -1,F9.2 , 2 P 4, 11,6. 3,F7.1 , 20P 5, 11,85/10/07, -1,F9.2 , 20P 6, 11,MAX[{B11]+0.  1,F8.1 , 26RP 7, 11,G11=F11\*U JTOCH G11,C11\%=G11=G11+D11\*U JTOCH G11,E11\A11=G11\%=G11 1,F9.2 , 20/P 8, 11,C11=F11\E11=G11\R=P\N=G11-G$1$\S=Q6 1,F8.1 , 2 P 9, 11,P## 3,F3.0 ,00;YZJZY2Y} 26P 10, 11,2. 3,F5.0 , 2WP 11, 11,B=H$1$*(F11-G$2$)+3.\C=H$1$*(G11-G$2$)+3.\D=0.\*U XQTCM CR J11 P#%BD:P#%CD0 -1,F9.2 , 26rP 12, 11,IF [N0.EQ.D0]M=1. | M=I11 \I11=MAX[M0,I11]\*P@ R0,S0\*P P#8#0 \IF [M0.GT.D0] P##=M | P##=MAX[I11,P##] 1,F9.2 , 2 P 1, 12,MIDDLE I  -1,F9.2 , 25P 2, 12,A8:A10,A4 -1,F9.2 , 2P 3, 12,85/10/066 -1,F9.2 , 2 P 4, 12,5.\*C TEST  1,F7.1 , 23P 5, 12,85/10/11, -1,F9.2 , 2P 6, 12,MAX[{B12]+0. 1,F8.1 , 2RP 7, 12,G12=F12\*U JTOCH G12,C12\%=G12=G12+D12\*U JTOCH G12,E12\A12=G12\%=G12 1,F9.2 , 2/P 8, 12,C12=F12\E12=G12\R=P\N=G12-G$1$\S=Q 1,F8.1 , 2P 9, 12,P## 3,F3.0 , 2P 10, 12,2. 3,F5.0 , 2WP 11, 12,B=H$1$*(F12-G$2$)+3.\C=H$1$*(G12-G$2$)+3.\D=0.\*U XQTCM CR J12 P#%BD:P#%CD -1,F9.2 , 2RrP 12, 12,IF [N0.EQ.D0]M=1. | M=I12 \I12=MAX[M0,I12]\*P@ R0,S0\*P P#8#0 \IF [M0.GT.D0] P##=M | P##=MAX[I12,P##] 1,F9.2 , 2P 1, 13,MIDDLE J -1,F9.2 , 2P 2, 13,A11,A12 -1,F9.2 , 2P 3, 13,85/10/11 -1,F9.2 , 2P 4, 13,6. 3,F7.1 , 2P 5, 13,85/10/17 -1,F9.2 , 2P 6, 13,MAX[{B13]+0. 1,F8.1 , 2RP 7, 13,G13=F13\*U JTOCH G13,C13\%=G13=G13+D13\*U JTOCH G13,E13\A13=G13\%=G13 1,F9.2 , 2/P 8, 13,C13=F13\E13=G13\R=P\N=G13-G$1$\S=Q 1,F8.1 , 2P 9, 13,P## 3,F3.0 , 2 P 10, 13,2. 3,F5.0 , 20WP 11, 13,B=H$1$*(F13-G$2$)+3.\C=H$1$*(G13-G$2$)+3.\D=0.\*U XQTCM CR J13 P#%BD:P#%CD  -1,F9.2 , 2 rP 12, 13,IF [N0.EQ.D0]M=1. | M=I13 \I13=MAX[M0,I13]\*P@ R0,S0\*P P#8#0 \IF [M0.GT.D0] P##=M | P##=MAX[I13,P##] 1,F9.2 , 2P 1, 14,MIDDLE K  -1,F9.2 , 2 P 2, 14,A5,A7,A9  -1,F9.2 , 2 P 3, 14,85/10/074 -1,F9.2 , 2,P 4, 14,5.\*C TEST6 1,F7.1 , 2P 5, 14,85/10/126 -1,F9.2 , 2 P 6, 14,MAX[{B14]+0. 1,F8.1 , 2 RP 7, 14,G14=F14\*U JTOCH G14,C14\%=G14=G14+D14\*U JTOCH G14,E14\A14=G14\%=G14 1,F9.2 , 2 /P 8, 14,C14=F14\E14=G14\R=P\N=G14-G$1$\S=Q  1,F8.1 , 2,P 9, 14,P## 3,F3.0 , 2 P 10, 14,2. 3,F5.0 , 25WP 11, 14,B=H$1$*(F14-G$2$)+3.\C=H$1$*(G14-G$2$)+3.\D=0.\*U XQTCM CR J14 P#%BD:P#%CD5 -1,F9.2 , 2rP 12, 14,IF [N0.EQ.D0]M=1. | M=I14 \I14=MAX[M0,I14]\*P@ R0,S0\*P P#8#0 \IF [M0.GT.D0] P##=M | P##=MAX[I14,P##] 1,F9.2 , 20P 1, 15,MIDDLE L, -1,F9.2 , 20P 2, 15,A13,A11 -1,F9.2 , 2 P 3, 15,85/10/175 -1,F9.2 , 2 P 4, 15,6. 3,F7.1 , 2P 5, 15,85/10/236 -1,F9.2 , 2 P 6, 15,MAX[{B15]+0. 1,F8.1 , 2 RP 7, 15,G15=F15\*U JTOCH G15,C15\%=G15=G15+D15\*U JTOCH G15,E15\A15=G15\%=G15 1,F9.2 , 2 /P 8, 15,C15=F15\E15=G15\R=P\N=G15-G$1$\S=Q  1,F8.1 , 2,P 9, 15,P## 3,F3.0 , 2 P 10, 15,2. 3,F5.0 , 26WP 11, 15,B=H$1$*(F15-G$2$)+3.\C=H$1$*(G15-G$2$)+3.\D=0.\*U XQTCM CR J15 P#%BD:P#%CD6 -1,F9.2 , 2rP 12, 15,IF [N0.EQ.D0]M=1. | M=I15 \I15=MAX[M0,I15]\*P@ R0,S0\*P P#8#0 \IF [M0.GT.D0] P##=M | P##=MAX[I15,P##] 1,F9.2 , 20P 1, 16,MIDDLE M, -1,F9.2 , 20P 2, 16,A14,A15 -1,F9.2 , 2 P 3, 16,85/10/236 -1,F9.2 , 2 P 4, 16,5.\*C TEST  1,F7.1 , 20P 5, 16,85/10/280 -1,F9.2 , 2 P 6, 16,MAX[{B16]+0.6 1,F8.1 , 2RP 7, 16,G16=F16\*U JTOCH G16,C16\%=G16=G16+D16\*U JTOCH G16,E16\A16=G16\%=G16 1,F9.2 , 2 /P 8, 16,C16=F16\E16=G16\R=P\N=G16-G$1$\S=Q 1,F8.1 , 2P 9, 16,P## 3,F3.0 , 2 P 10, 16,2. 3,F5.0 , 2WP 11, 16,B=H$1$*(F16-G$2$)+3.\C=H$1$*(G16-G$2$)+3.\D=0.\*U XQTCM CR J16 P#%BD:P#%CD  -1,F9.2 , 25rP 12, 00;aZ"ZY/YTADATADATADATADATADATA 16,IF [N0.EQ.D0]M=1. | M=I16 \I16=MAX[M0,I16]\*P@ R0,S0\*P P#8#0 \IF [M0.GT.D0] P##=M | P##=MAX[I16,P##] 1,F9.2 , 2 P 1, 17,MIDDLE N  -1,F9.2 , 28P 2, 17,A10,A13,A16 -1,F9.2 , 26P 3, 17,85/10/28  -1,F9.2 , 26P 4, 17,6. 3,F7.1 , 2 P 5, 17,85/11/03  -1,F9.2 , 25P 6, 17,MAX[{B17]+0.2 1,F8.1 , 2,RP 7, 17,G17=F17\*U JTOCH G17,C17\%=G17=G17+D17\*U JTOCH G17,E17\A17=G17\%=G17 1,F9.2 , 25/P 8, 17,C17=F17\E17=G17\R=P\N=G17-G$1$\S=Q, 1,F8.1 , 20P 9, 17,P## 3,F3.0 , 2,P 10, 17,2. 3,F5.0 , 2 WP 11, 17,B=H$1$*(F17-G$2$)+3.\C=H$1$*(G17-G$2$)+3.\D=0.\*U XQTCM CR J17 P#%BD:P#%CD  -1,F9.2 , 2 rP 12, 17,IF [N0.EQ.D0]M=1. | M=I17 \I17=MAX[M0,I17]\*P@ R0,S0\*P P#8#0 \IF [M0.GT.D0] P##=M | P##=MAX[I17,P##] 1,F9.2 , 2 P 1, 18,MIDDLE O  -1,F9.2 , 2 P 2, 18,A8,A12,A5 -1,F9.2 , 20P 3, 18,85/10/11, -1,F9.2 , 20P 4, 18,5.\*C TEST 1,F7.1 , 2P 5, 18,85/10/16  -1,F9.2 , 2 P 6, 18,MAX[{B18]+0.  1,F8.1 , 2,RP 7, 18,G18=F18\*U JTOCH G18,C18\%=G18=G18+D18\*U JTOCH G18,E18\A18=G18\%=G18 1,F9.2 , 2 /P 8, 18,C18=F18\E18=G18\R=P\N=G18-G$1$\S=Q, 1,F8.1 , 2 P 9, 18,P## 3,F3.0 , 26P 10, 18,2. 3,F5.0 , 2 WP 11, 18,B=H$1$*(F18-G$2$)+3.\C=H$1$*(G18-G$2$)+3.\D=0.\*U XQTCM CR J18 P#%BD:P#%CD -1,F9.2 , 2rP 12, 18,IF [N0.EQ.D0]M=1. | M=I18 \I18=MAX[M0,I18]\*P@ R0,S0\*P P#8#0 \IF [M0.GT.D0] P##=M | P##=MAX[I18,P##] 1,F9.2 , 2 P 1, 19,MIDDLE P0 -1,F9.2 , 21P 2, 19,A7 -1,F9.2 , 2 P 3, 19,85/10/070 -1,F9.2 , 26P 4, 19,6. 3,F7.1 , 2 P 5, 19,85/10/139 -1,F9.2 , 2 P 6, 19,MAX[{B19]+0.  1,F8.1 , 2 RP 7, 19,G19=F19\*U JTOCH G19,C19\%=G19=G19+D19\*U JTOCH G19,E19\A19=G19\%=G19 1,F9.2 , 2 /P 8, 19,C19=F19\E19=G19\R=P\N=G19-G$1$\S=Q  1,F8.1 , 20P 9, 19,P## 3,F3.0 , 2P 10, 19,2. 3,F5.0 , 20WP 11, 19,B=H$1$*(F19-G$2$)+3.\C=H$1$*(G19-G$2$)+3.\D=0.\*U XQTCM CR J19 P#%BD:P#%CD  -1,F9.2 , 2 rP 12, 19,IF [N0.EQ.D0]M=1. | M=I19 \I19=MAX[M0,I19]\*P@ R0,S0\*P P#8#0 \IF [M0.GT.D0] P##=M | P##=MAX[I19,P##] 1,F9.2 , 2P 1, 20,END -1,F9.2 , 2 P 2, 20,A3:A190 -1,F9.2 , 26P 3, 20,85/11/03  -1,F9.2 , 26P 4, 20,5.\*C TEST 1,F7.1 , 2P 5, 20,85/11/08  -1,F9.2 , 2,P 6, 20,MAX[{B20]+0.9 1,F8.1 , 2 RP 7, 20,G20=F20\*U JTOCH G20,C20\%=G20=G20+D20\*U JTOCH G20,E20\A20=G20\%=G20 1,F9.2 , 2,/P 8, 20,C20=F20\E20=G20\R=P\N=G20-G$1$\S=Q  1,F8.1 , 21P 9, 20,P## 3,F3.0 , 2P 10, 20,1. 3,F5.0 , 2 WP 11, 20,B=H$1$*(F20-G$2$)+3.\C=H$1$*(G20-G$2$)+3.\D=0.\*U XQTCM CR J20 P#%BD:P#%CD  -1,F9.2 , 2 rP 12, 20,IF [N0.EQ.D0]M=1. | M=I20 \I20=MAX[M0,I20]\*P@ R0,S0\*P P#8#0 \IF [M0.GT.D0] P##=M | P##=MAX[I20,P##] 1,F9.2 , 2P 14, 21,SUM[N3:N20] 1,F5.0 , 2 P 15, 21,SUM[O3:O20] 1,F5.0 , 2 P 16, 21,SUM[P3:P20] 1,F5.0 , 2 P 17, 21,SUM[Q3:Q20] 1,F5.0 , 2 P 18, 21,SUM[R3:R20] 1,F5.0 , 20P 19, 21,SUM[S3:S20] 1,F5.0 , 20P 20, 21,SUM[T3:T20] 1,F5.0 , 26P 21, 21,SUM[U3:U20] 1,F5.0 , 2P 22, 21,SUM[V3:V20] 1,F5.0 , 2 P 23, 21,SUM[W3:W20] 1,F5.0 , 2 P 24, 21,SUM[X3:X20] 1,F5.0 , 20P 25, 21,SUM[Y3:Y20] 1,F5.0 , 2,P 26, 21,SUM[Z3:Z6]6 1,F5.0 , 2P 27, 21,SUM[AA3:AA20] 1,F5.0 , 2P 28, 21,SUM[AB3:AB20] 1,F5.0 , 2 P 29, 21,SUM[AC3:AC20] 1,F5.0 , 2 P 30, 21,SUM[AD3:AD20] 1,F5.0 , 2 P 31, 00;iZJZY2Y}21,SUM[AE3:AE20] 1,F5.0 , 21P 32, 21,SUM[AF3:AF20] 1,F5.0 , 2 P 33, 21,SUM[AG3:AG20] 1,F5.0 , 2 P 34, 21,SUM[AH3:AH20] 1,F5.0 , 2 P 35, 21,SUM[AI3:AI20] 1,F5.0 , 28P 36, 21,SUM[AJ3:AJ20] 1,F5.0 , 20P 37, 21,SUM[AK3:AK20] 1,F5.0 , 26M64001,64001, 1 20 1,F5.0 , 26M64001,64002, 1 30 1,F5.0 , 26M64001,64003, 1 40 1,F5.0 , 26M64001,64004, 1 5l 1,F5.0 , 2 M64001,64005, 1 6  1,F5.0 , 2 M64001,64006, 1 7  1,F5.0 , 22M64001,64007, 1 8- 1,F5.0 , 2 M64001,64008, 1 9, 1,F5.0 , 2 M64001,64009, 1 10, 1,F5.0 , 2DM64001,64010, 1 110 1,F5.0 , 2-M64001,64011, 1 12  1,F5.0 , 29M64001,64012, 1 13M 1,F5.0 , 2 M64001,64013, 1 14. 1,F5.0 , 2HM64001,64014, 1 150 1,F5.0 , 26M64001,64015, 1 16  1,F5.0 , 2 M64001,64016, 1 17  1,F5.0 , 2TM64001,64017, 1 18, 1,F5.0 , 2TM64001,64018, 1 19, 1,F5.0 , 2NM64001,64019, 1 20  1,F5.0 , 2)M64001,64020, 1 213 1,F5.0 , 22M64002,64001, 2 2a 1,F5.0 , 2 M64002,64002, 2 3, 1,F5.0 , 2 M64002,64003, 2 4  1,F5.0 , 2 M64002,64004, 2 52 1,F5.0 , 2 M64002,64005, 2 60 1,F5.0 , 2M64002,64006, 2 7  1,F5.0 , 2 M64002,64007, 2 8 1,F5.0 , 2M64002,64008, 2 99 1,F5.0 , 24M64002,64009, 2 10  1,F5.0 , 2 M64002,64010, 2 11  1,F5.0 , 2XM64002,64011, 2 120 1,F5.0 , 2*M64002,64012, 2 13T 1,F5.0 , 2M64002,64013, 2 14  1,F5.0 , 2NM64002,64014, 2 15  1,F5.0 , 2#M64002,64015, 2 160 1,F5.0 , 2 M64002,64016, 2 171 1,F5.0 , 2*M64002,64017, 2 18  1,F5.0 , 29M64002,64018, 2 19I 1,F5.0 , 2IM64002,64019, 2 20  1,F5.0 , 2PM64002,64020, 2 219 1,F5.0 , 21M64003,64001, 3 2  1,F5.0 , 24M64003,64002, 3 3  1,F5.0 , 2M64003,64003, 3 4  1,F5.0 , 2,M64003,64004, 3 54 1,F5.0 , 2 M64003,64005, 3 6{ 1,F5.0 , 2,M64003,64006, 3 7  1,F5.0 , 24M64003,64007, 3 8  1,F5.0 , 2 M64003,64008, 3 9G 1,F5.0 , 2 M64003,64009, 3 10 1,F5.0 , 2M64003,64010, 3 11  1,F5.0 , 24M64003,64011, 3 12G 1,F5.0 , 2TM64003,64012, 3 132 1,F5.0 , 2 M64003,64013, 3 14  1,F5.0 , 2,M64003,64014, 3 15# 1,F5.0 , 2M64003,64015, 3 16  1,F5.0 , 29M64003,64016, 3 17A 1,F5.0 , 2 M64003,64017, 3 18- 1,F5.0 , 2 M64003,64018, 3 19, 1,F5.0 , 28M64003,64019, 3 20  1,F5.0 , 25M64003,64020, 3 21  1,F5.0 , 2TM64004,64001, 4 2  1,F5.0 , 2,M64004,64002, 4 35 1,F5.0 , 2-M64004,64003, 4 42 1,F5.0 , 2 M64004,64004, 4 5  1,F5.0 , 2,M64004,64005, 4 6F 1,F5.0 , 2-M64004,64006, 4 7P 1,F5.0 , 2 M64004,64007, 4 8N 1,F5.0 , 2IM64004,64008, 4 9# 1,F5.0 , 2MM64004,64009, 4 10  1,F5.0 , 2 M64004,64010, 4 11  1,F5.0 , 2M64004,64011, 4 123 1,F5.0 , 2,M64004,64012, 4 136 1,F5.0 , 21M64004,6401300;qZ"ZY/YTADATADATADATADATADATA, 4 14/ 1,F5.0 , 2,M64004,64014, 4 15+ 1,F5.0 , 2 M64004,64015, 4 16C 1,F5.0 , 2 M64004,64016, 4 179 1,F5.0 , 28M64004,64017, 4 18$ 1,F5.0 , 2,M64004,64018, 4 19, 1,F5.0 , 2 M64004,64019, 4 20  1,F5.0 , 2HM64004,64020, 4 21$ 1,F5.0 , 2CM64005,64001, 5 2  1,F5.0 , 26M64005,64002, 5 3= 1,F5.0 , 2*M64005,64003, 5 4| 1,F5.0 , 2,M64005,64004, 5 57 1,F5.0 , 2 M64005,64005, 5 6 1,F5.0 , 2M64005,64006, 5 79 1,F5.0 , 24M64005,64007, 5 8  1,F5.0 , 20M64005,64008, 5 9  1,F5.0 , 2.M64005,64009, 5 107 1,F5.0 , 2 M64005,64010, 5 11E 1,F5.0 , 22M64005,64011, 5 12= 1,F5.0 , 2$M64005,64012, 5 13  1,F5.0 , 23M64005,64013, 5 142 1,F5.0 , 2 M64005,64014, 5 15$ 1,F5.0 , 2$M64005,64015, 5 16D 1,F5.0 , 2,M64005,64016, 5 17Q 1,F5.0 , 2AM64005,64017, 5 18I 1,F5.0 , 2PM64005,64018, 5 19, 1,F5.0 , 2MM64005,64019, 5 20A 1,F5.0 , 2M64005,64020, 5 21  1,F5.0 , 29M64006,64001, 6 25 1,F5.0 , 2 M64006,64002, 6 39 1,F5.0 , 2 M64006,64003, 6 4. 1,F5.0 , 20M64006,64004, 6 5  1,F5.0 , 2TM64006,64005, 6 62 1,F5.0 , 2 M64006,64006, 6 7$ 1,F5.0 , 2 M64006,64007, 6 83 1,F5.0 , 20M64006,64008, 6 9  1,F5.0 , 21M64006,64009, 6 10$ 1,F5.0 , 2 M64006,64010, 6 11, 1,F5.0 , 2IM64006,64011, 6 12A 1,F5.0 , 2 M64006,64012, 6 13P 1,F5.0 , 29M64006,64013, 6 14M 1,F5.0 , 2 M64006,64014, 6 15- 1,F5.0 , 2 M64006,64015, 6 162 1,F5.0 , 2 M64006,64016, 6 17, 1,F5.0 , 20M64006,64017, 6 18  1,F5.0 , 2M64006,64018, 6 19  1,F5.0 , 29M64006,64019, 6 20\ 1,F5.0 , 2 M64006,64020, 6 219 1,F5.0 , 2SM64007,64001, 7 2  1,F5.0 , 20M64007,64002, 7 3 1,F5.0 , 20M64007,64003, 7 4$ 1,F5.0 , 2+M64007,64004, 7 5P 1,F5.0 , 2 M64007,64005, 7 6D 1,F5.0 , 2[M64007,64006, 7 7  1,F5.0 , 2#M64007,64007, 7 8  1,F5.0 , 2DM64007,64008, 7 9 1,F5.0 , 2,M64007,64009, 7 100 1,F5.0 , 2 M64007,64010, 7 11C 1,F5.0 , 2,M64007,64011, 7 12, 1,F5.0 , 20M64007,64012, 7 13 1,F5.0 , 2M64007,64013, 7 14  1,F5.0 , 2\M64007,64014, 7 150 1,F5.0 , 2 M64007,64015, 7 160 1,F5.0 , 2=M64007,64016, 7 17  1,F5.0 , 20M64007,64017, 7 18 1,F5.0 , 20M64007,64018, 7 192 1,F5.0 , 2$M64007,64019, 7 20B 1,F5.0 , 2 M64007,64020, 7 21. 1,F5.0 , 21M64008,64001, 8 28 1,F5.0 , 2=M64008,64002, 8 32 1,F5.0 , 2 M64008,64003, 8 4, 1,F5.0 , 2AM64008,64004, 8 5  1,F5.0 , 2-M64008,64005, 8 6  1,F5.0 , 2,M64008,64006, 8 7, 1,F5.0 , 20M64008,64007, 8 8 1,F5.0 , 2M64008,64008, 8 9  1,F5.0 , 2\M64008,64009, 8 101 1,F5.0 , 20M64008,64010, 8 111 1,F5.0 , 2M64008,64011, 8 12  1,F5.0 , 2 00;yZJZY2Y}M64008,64012, 8 13  1,F5.0 , 2 M64008,64013, 8 143 1,F5.0 , 2.M64008,64014, 8 15# 1,F5.0 , 2 M64008,64015, 8 16D 1,F5.0 , 2AM64008,64016, 8 17\ 1,F5.0 , 2 M64008,64017, 8 18  1,F5.0 , 22M64008,64018, 8 19  1,F5.0 , 21M64008,64019, 8 20  1,F5.0 , 2M64008,64020, 8 21  1,F5.0 , 2,M64009,64001, 9 22 1,F5.0 , 2 M64009,64002, 9 3{ 1,F5.0 , 2 M64009,64003, 9 42 1,F5.0 , 21M64009,64004, 9 52 1,F5.0 , 2 M64009,64005, 9 6F 1,F5.0 , 2GM64009,64006, 9 7 1,F5.0 , 2 M64009,64007, 9 8  1,F5.0 , 2,M64009,64008, 9 9F 1,F5.0 , 21M64009,64009, 9 101 1,F5.0 , 29M64009,64010, 9 11I 1,F5.0 , 2IM64009,64011, 9 12\ 1,F5.0 , 20M64009,64012, 9 13  1,F5.0 , 2 M64009,64013, 9 142 1,F5.0 , 2 M64009,64014, 9 15  1,F5.0 , 2/M64009,64015, 9 16 1,F5.0 , 2,M64009,64016, 9 173 1,F5.0 , 2 M64009,64017, 9 18{ 1,F5.0 , 2 M64009,64018, 9 193 1,F5.0 , 21M64009,64019, 9 203 1,F5.0 , 2 M64009,64020, 9 21F 1,F5.0 , 2GM64010,64001, 10 2 1,F5.0 , 2 M64010,64002, 10 3  1,F5.0 , 2,M64010,64003, 10 4F 1,F5.0 , 21M64010,64004, 10 51 1,F5.0 , 29M64010,64005, 10 6I 1,F5.0 , 2IM64010,64006, 10 7\ 1,F5.0 , 20M64010,64007, 10 8  1,F5.0 , 2 M64010,64008, 10 92 1,F5.0 , 2 M64010,64009, 10 10, 1,F5.0 , 28M64010,64010, 10 11, 1,F5.0 , 2TM64010,64011, 10 12  1,F5.0 , 2M64010,64012, 10 13  1,F5.0 , 2 M64010,64013, 10 14  1,F5.0 , 21M64010,64014, 10 15G 1,F5.0 , 2M64010,64015, 10 16  1,F5.0 , 2RM64010,64016, 10 17  1,F5.0 , 2 M64010,64017, 10 18 1,F5.0 , 2,M64010,64018, 10 194 1,F5.0 , 2\M64010,64019, 10 20X 1,F5.0 , 2CM64010,64020, 10 21  1,F5.0 , 2]M64011,64001, 11 2\ 1,F5.0 , 2FM64011,64002, 11 31 1,F5.0 , 2,M64011,64003, 11 4, 1,F5.0 , 20M64011,64004, 11 59 1,F5.0 , 23M64011,64005, 11 6  1,F5.0 , 25M64011,64006, 11 7  1,F5.0 , 2M64011,64007, 11 8  1,F5.0 , 2 M64011,64008, 11 9  1,F5.0 , 21M64011,64009, 11 10G 1,F5.0 , 2M64011,64010, 11 11  1,F5.0 , 2RM64011,64011, 11 12  1,F5.0 , 2 M64011,64012, 11 13 1,F5.0 , 2,M64011,64013, 11 145 1,F5.0 , 2\M64011,64014, 11 15X 1,F5.0 , 2CM64011,64015, 11 16  1,F5.0 , 2]M64011,64016, 11 17\ 1,F5.0 , 2FM64011,64017, 11 181 1,F5.0 , 2,M64011,64018, 11 19, 1,F5.0 , 20M64011,64019, 11 209 1,F5.0 , 23M64011,64020, 11 21  1,F5.0 , 26M64012,64001, 12 2  1,F5.0 , 2/M64012,64002, 12 3 1,F5.0 , 2]M64012,64003, 12 4  1,F5.0 , 2 M64012,64004, 12 5U 1,F5.0 , 26M64012,64005, 12 6 1,F5.0 , 2EM64012,64006, 12 7  1,F5.0 , 2 M64012,64007, 12 8, 1,F5.0 , 22M64012,64008, 12 9  1,F5.0 , 2GM64012,64009, 12 10D 1,F5.0 , 2#M64012,64010, 12 11  1,F5.0 00;Z<ZY/YTADATADATADATADATADATA , 2NM64012,64011, 12 12[ 1,F5.0 , 2PM64012,64012, 12 13# 1,F5.0 , 29M64012,64013, 12 14M 1,F5.0 , 2 M64012,64014, 12 153 1,F5.0 , 2 M64012,64015, 12 16 1,F5.0 , 2M64012,64016, 12 17  1,F5.0 , 27M64012,64017, 12 18  1,F5.0 , 2{M64012,64018, 12 19, 1,F5.0 , 27M64012,64019, 12 201 1,F5.0 , 27M64012,64020, 12 21  1,F5.0 , 2F=To get HELP use the command Hn where n is 0 thru 8 for HELP 0 through HELP 8.HELP 0 - This screen3HELP 1 - Summary of many PortaCalc commands (terse)HELP 2 - Data Entry / EditingHELP 3 - Calculation Control&HELP 4 - Cursor Motion and PositioningHELP 5 - Cell Copy(HELP 6 - Add/Subtract Absolute Rows/Cols.HELP 7 - Add/Subtract Relocting, Rows or Cols.1HELP 8 - Change Display Size, Col Size, Load Data!HELP 9 - Keypad Diagram for VT1001EN expression - Insert expression at current pos.5M1,M2,M3, or M4 - Motion up, down, left, right (auto)=DL var1:var2 Rn:m (or Cn:m) - Display Loc phys to row/col n-mEDF var1:var2 [format] - set display format. A or L shows text, else #;DT var1:var2 F or I - Set display number type to flt or int4DW n,m - set width of column n of display to m chars5DB c,r - Set display bounds at c cols, r rows (chars)LL var - Move cursor to var named (phys.) OA var or OR var=move displ. originMV - redraw screen. VF - Disply. formulas. VM=no auto. redraw. K - interactiveCcalc. *E returns. ZA - zero all. ZE var1:var2 - zero var1 thru var23X - exit program. W write screen to file or printerOCV v1:v2 v3:v4 copy value from v1:v2 to v3:v4 range; CR=copy and relocate vars.@CD v1:v2 v3:v4 copy display format. CF=copy formula. CA=copy all8P Put screen to file. G=get screen from file at curr.locN1,2,3,4 - move cursor Up,Down,Left,Right. A[A/R]n[R/C] Add abs/reloc n Row/Col5Variable ranges are var1[:var2]. Var names P#+n#+m or7D#+n#+m are current Phys or Display locs + or - offsets5Expressions may use multiple stmts, use \ separators.4Use std FORTRAN function names + MIN, MAX, AVG, STD;or SUM. IF stmt format is IF [v1.REL.v2]yes-expr|else expr.&Rels are .LT.,.GT.,.EQ.,.NE.,.GE.,.LE.8R Recompute sheet. RM Recompute Manually only (R resets)HELP 2 - Data Entry / Editing+E expression Enter expression into cell.0Formulas available (+ SQRT,SIN,COS,LOG,EXP,ATAN),SUM[variables] Sum of all arguments(MAX[variables] Max of arguments(MIN[variables] Min of arguments,AVG[variables] Average of arguments2STD[variables] Standard deviation squared)IF [V1.rel.V2] statement | else-statement?In the first 5 cases, arguments are variable names separated by=commas, or variable ranges, or mixtures separaged by columns.".REL." is any of the 6 forms:*.EQ. Equal .NE. Not Equal<.GT. Greater than .LT. Less than (V1 less than V2)A.GE. Greater or Equal .LE. Less than or Equal to (V1 =< V2)9*XV filename V1 Extract value at cell V1 in saved1 sheet stored in filename.4ED `string1`string2` Replace string1 with string27 in current cell formula. Either6 string may be null if desired.HELP 3 - Calculation Control%R Recalculate all of the sheet.7RM Recalculate manually only until R command given9RAF Recalculate sheet, without constant recalculationDK 00<ZJZY2Y} Drop into Calc program straight. *E returns to sheet)X Exit to operating system.1V Redraw screen with normal formats2VF Redraw screen showing all formulas;VM Dont redraw screen until a V or VF is given ZA Zero whole sheet?ZE V1:V2 Zero variables in a row or column in range fromC cell V1 to cell V2 (V1,V2 = names of cells)<@filespec Read filespec and execute commands as though typed in.8PD Put out current Display sheet (Formulas)9PP Put out current Physical sheet (Formulas,7PDN Put out current Display sheet (Numbers)8PPN Put out current Physical sheet (Numbers).W Write screen to hardcopy file.&HELP 4 - Cursor Motion and Positioning8L variable-name Position cursor at variable-name<M1, M2, M3, M4 Move Up, Down, Left, or Right after an Enter (but not immediately)#1 or Uparrow (Move up)%2 or Downarrow (Move down)%3 or Left arrow (Move left)&4 or Right arrow (Move right)3OA variable Reset origin of display to variableDOR variable Reset display down and right to start with variable,= changing only region down and right of cursor<DL V1:V2 Rn:m point at display coordinates (n,m) (col,row)= and, going left to right along a Row, copy in> variables V1 through V2 (actually, point those= display sheet cells at variables V1 thru V2).<DL V1:V2 Cn:m point at display coordinates (n,m) (col,row)@ and, going top to bottom along a Column, copy in> variables V1 through V2 (actually, point those= display sheet cells at variables V1 thru V2).CDF V1:V2 [format] Set display format of range V1:V2 to format9 (format A means display formula.)HELP 5 - Cell Copy;CA V1:V2 V3:V4 Copy all cell attributes from V1:V2! to V3:V4.0CV V1:V2 V3:V4 Copy numeric values only1CD V1:V2 V3:V4 Copy Display Formats only:CF V1:V2 V3:V4 Copy Formulas only (no relocation)=CR V1:V2 V3:V4 Copy all cell attributes as in CA but; relocate cell names to new location? from old one. Only relocate names rightA of or below the cursor or on same row/colB with cursor (cells above or left of cursor+ are NOT relocated).5 If V2 is missing, V1 is replicated to V3:V4 range.(HELP 6 - Add/Subtract Absolute Rows/Cols6AA number R Add "number" rows ahead of the current9 physical position, moving all cells below: the current cell down by "number" rows and; losing the physical sheet`s bottom "number"A rows` contents, NOT adjusting variable references: where the variables are in the moved range@ and are not the position independent (P## or D## forms) type.9AA number C Add "number" columns ahead of the current< physical position, moving all cells right of> the current cell right by "number" columns and; losing the physical sheet`s bottom "number"D columns` contents, NOT adjusting variable references: where the variables are in the moved range@ and are not the position independent (P## or D## forms) type..HELP 7 - Add/Subtract Relocting, Rows or Cols.6AR number R Add "number" rows ahead of the current9 physical position, moving all cells below: the current cell down by "number" rows and; losing the physical sheet`s bottom "number"= rows` contents, adjusting variable references: 00<Z=ZY/YTADATADATADATADATADATAwhere the variables are in the moved range@ and are not the position independent (P## or D## forms) type.9AR number C Add "number" columns ahead of the current< physical position, moving all cells right of> the current cell right by "number" columns and; losing the physical sheet`s bottom "number"@ columns` contents, adjusting variable references: where the variables are in the moved range@ and are not the position independent (P## or D## forms) type.1HELP 8 - Change Display Size, Col Size, Load Data?DW N,M Set column N on display to be M characters wide9DB n,m Set number of columns displayed on screen< to n, number of rows displayed to m.<GD Reload sheet down/right onto display coords.=GP Reload sheet down/right onto physical coords.7< Rewind the current Portacalc input file-* any text Comment. (For command files.)>Hn Display a screen of help. n may be 0 to 9, default 0.:F filename/nnnn Read filename, skipping nnnn lines9 if the "/nnnn" is there, and load= contents onto the currently displayed: screen, broken into columns as the1 current screen is set up. PortaCalc Keypad Standard KeysE+----------------+--------------+-------------------+---------------+E|PF1 |PF2 |PF3 |PF4 |E| Wide Screen | HELP | Narrow Screen | Recalculate |E+-------------------------------------------------------------------+E|7 Origin Absol: |8 ^ |9 |- |E| Set Upper Left | Scroll Up | Save Sheet | Set Enter |E| display to Loc | | | Direction |E+-------------------------------------------------------------------+E|4 |5 |6 |, |E| << Scroll | Move to | Scroll >> | Insert/Delete|E| Left | Loc | Right | Rows/Cols |F+-------------------------------------------------------------------+ E|1 |2 |3 Origin Rel: |E |E| Restore Sheet | Scroll Down | Set display down, |N Enter Mode |E| | v | right of cursor |T (Exit to |E+---------------------------------------------------|E command |E|0 |. |R mode with |E| Copy Range of Cells | Print screen | \ char.) |E+----------------+--------------+-------------------+---------------+> X eXit from sheet XD eXit and Delete workfile $ SET NOON.$! BUILD PCC ON VMS WITH DTR INTERFACE DUMMIEDA$! USE THIS file to build AnalytiCalc on VMS where you don't haveB$! Datatrieve-32 to link to. The string functions will be real butA$! the DTR calls will be dummied out, though they will be treatedB$! as syntactically valid. Use PCCMAKIVD.COM for AnalytiCalc where-$! you DO have DTR-32 and want to link to it.0$! NOTE WE ASSUME NO OBJECT FILES EXIST ALREADY.1$! BUILD FOR VAX ANALYTICALC INCLUDING DATATRIEVE$! INTERFACE (THE REAL ONE).5$! THIS VERSION ALLOWS PRINT LINES OF 512 CHARACTERS.!$ COPY BVKLUGPR5.FOR VKLUGPRM.FTN2$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK AT.FOR6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK BASCNG.FOR5$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK BLOCK.FOR6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK CALBIN.FOR4$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK CALC.FOR5$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK CALUN.FOR>$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK/D_LINES CMDMUN.F40<$ FORTRAN/NOF77/NODEBUG/00=Z>ZY2Y}D_LINES/NOI4/NOLIST/NOCHECK CMND.FOR5$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK CODES.FOR6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK CONTYP.FOR5$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK DECLR.FOR6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK DSPSHT.FVX.$! HERE'S WHERE WE PULL IN REAL DTR FUNCTIONS.3$ FORTRAN/F77/NODEBUG/NOI4/NOLIST/NOCHECK DTRIF.FVD#$! USE DTRIF.FVD IF DTR IS MISSING.5$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK ERRCX.FOR6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK ERRMSG.FOR4$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK FLIP.FOR3$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK FFT.FTN6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK FRMEDT.F406$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK GETNNB.FOR6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK GMSUBS.FOR6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK GTMUNG.FOR5$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK INDEX.FOR6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK INPOST.FOR6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK JULIAN.F406$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK LINFIT.FTN4$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK LIST.FOR4$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK MDET.FOR4$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK MOUT.FOR7$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK REFLECT.F406$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK MTXEQU.FOR6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK MULADD.FOR6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK MULCON.FOR6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK MULDIV.FOR6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK MULMUL.FOR6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK NEXTEL.F406$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK POSTVL.FOR6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK RECALC.F401$ FORTRAN/NOF77/NODEBUG/I4/NOLIST/NOCHECK RND.FOR5$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK SLEND.FOR8$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK SPREDSHT.FVX6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK STRCMP.FOR6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK TTYINI.FOR6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK USRCMD.FOR6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK USRFCT.FVXB$! USE SCREEN INDEPENDENT CURSOR CONTROL VERSION OF UVT100 ROUTINE6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK SCRIND.FOR6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK VAROUT.FOR6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK VARSCN.FOR5$! WRKFIL.F40 DOES NOT SUPPORT INPUT/OUTPUT AREAS BUT9$! IS OTHERWISE CURRENT. WRKFIL.FVX HAS ALL NEW STUFF FOR$! VAX.$! NOTE NEEED THE /I4 COMPILE6$! TO BE SURE WE DON'T OVERFLOW ARRAY BOUNDS. SOME BIG)$! SUBSCRIPTS ARE MORE THAN 16 BITS WIDE.4$ FORTRAN/NOF77/NODEBUG/I4/NOLIST/NOCHECK WRKFIL.FVX5$! FORTRAN/NOF77/NODEBUG/I4/NOLIST/NOCHECK WRKFIL.F40:$! WSHEET.FVX IS CURRENT EXCEPT FOR NO IN/OUT AREA SUPPORT#$! USE WSHEET.F4 FOR MOST RECENT...5$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK WSHEET.F4>$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK/D_LINES XQTCMD.FOR4$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK ZERO.FOR4$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK ZNEG.FOR$ COPY *.OBJ PCCX.OBS$! NOW LINK WITH DTR STUFF$ LINK/NOMAP PCCX.OBS+DTR/OPT$! USES DTR.OPT HERE ALSO...$ LIBR/CREA PCCX PCCX.OBS $ DEL *.OBS; $ DEL *.OBJ;* $ SET NOON&$! BUILD PCC ON VMS WITH DTR INTERFACE0$! NOTE WE ASSUME NO OBJECT FILES EXIST ALREADY.1$! BUILD FOR VAX ANALYTICALC INCLUDING DATATRIEVE$! INTERFACE (THE REAL ONE).5$! THIS VERSION ALLOWS PRINT LINES OF 512 CHARACTERS.9$! Use this file to build AnalytiCalc on VMS where you DO>$! have DTR-32 installed and want to link to it. If you do not9$! have Datatrieve-32 (DTR-32), use PCCMAKIV.COM instead.!$ COPY BVKLUGPR5.FOR VKLUGPRM.FTN2$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK AT.FOR00>ZZY/YTADATADATADATADATADATA6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK BASCNG.FOR5$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK BLOCK.FOR6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK CALBIN.FOR4$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK CALC.FOR5$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK CALUN.FOR>$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK/D_LINES CMDMUN.F40<$ FORTRAN/NOF77/NODEBUG/D_LINES/NOI4/NOLIST/NOCHECK CMND.FOR5$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK CODES.FOR6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK CONTYP.FOR5$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK DECLR.FOR6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK DSPSHT.FVX.$! HERE'S WHERE WE PULL IN REAL DTR FUNCTIONS.3$ FORTRAN/F77/NODEBUG/NOI4/NOLIST/NOCHECK DTRIF.FVX#$! USE DTRIF.FVD IF DTR IS MISSING.5$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK ERRCX.FOR6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK ERRMSG.FOR4$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK FLIP.FOR3$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK FFT.FTN6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK FRMEDT.F406$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK GETNNB.FOR6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK GMSUBS.FOR6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK GTMUNG.FOR5$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK INDEX.FOR6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK INPOST.FOR6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK JULIAN.F406$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK LINFIT.FTN4$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK LIST.FOR4$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK MDET.FOR4$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK MOUT.FOR7$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK REFLECT.F406$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK MTXEQU.FOR6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK MULADD.FOR6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK MULCON.FOR6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK MULDIV.FOR6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK MULMUL.FOR6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK NEXTEL.F406$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK POSTVL.FOR6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK RECALC.F401$ FORTRAN/NOF77/NODEBUG/I4/NOLIST/NOCHECK RND.FOR5$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK SLEND.FOR8$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK SPREDSHT.FVX6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK STRCMP.FOR6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK TTYINI.FOR6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK USRCMD.FVX6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK USRFCT.FVXB$! USE SCREEN INDEPENDENT CURSOR CONTROL VERSION OF UVT100 ROUTINE?$! Note: For Colorscan 10 version, if you compile UVTCS.FVX and;$! TTYINI.FVX and use them, an extra subroutine in UVTCS is>$! called to allow the PF5 to PF12 keys to be defined. This is=$! a good tempate for adding "extra" function key definitions@$! to other terminals where these are desired. On the colorscan,>$! PF5 to PF12 produce sequences where?$! letter is A to H or a to h (depending on state of SHIFT). We>$! map them into some pseudo VT200 keys' ESC sequences by main=$! force & awkwardness. For a VT100 version that doesn't care?$! what the system thinks is the terminal use UVT100 or UVTAVO,9$! preferably the latter. For VT52 try UVT52 and so on...=$! The UVTAVO version could be handy for running this under aC$! windowing package where the system might have the wrong terminalC$! type setup or where the SCRFT routines might do something weird.6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK SCRIND.FOR6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK VAROUT.FOR6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK VARSCN.FOR5$! WRKFIL.F40 DOES NOT SUPPORT INPUT/OUTPUT AREAS BUT9$! IS OTHERWISE CURRENT. WRKFIL.FVX HAS ALL NEW STUFF FOR$! VAX.$! NOTE NEEED THE /I4 COMPILE6$! TO BE SURE WE DON'T OVERFLOW ARRAY BOUNDS. SOME BIG)$! SUBSCRIPTS ARE MORE THAN 16 BITS WIDE.4$ FORTRAN/NOF77/NODEBUG/I4/NOLIST/NOCHECK WRKFIL.FVX5$! FORTRAN/NOF77/NODEBUG/I4/NOLIST/NOCHECK WRKFIL.F40:$! WSHEET.FVX IS CURRENT EXCEPT FOR NO IN/OUT AREA SUPPORT#$! USE WSHEET.F4 FOR MOST 00>Z?ZY2Y}RECENT...5$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK WSHEET.F46$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK XQTCMD.FOR4$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK ZERO.FOR4$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK ZNEG.FOR$ COPY *.OBJ PCCX.OBS$! NOW LINK WITH DTR STUFF$ LINK/NOMAP PCCX.OBS+DTR/OPT$! USES DTR.OPT HERE ALSO...$ LIBR/CREA PCCX PCCX.OBS $ DEL *.OBS; $ DEL *.OBJ;* $ SET NOON&$! BUILD PCC ON VMS WITH DTR INTERFACE0$! NOTE WE ASSUME NO OBJECT FILES EXIST ALREADY.1$! BUILD FOR VAX ANALYTICALC INCLUDING DATATRIEVE$! INTERFACE (THE REAL ONE).5$! THIS VERSION ALLOWS PRINT LINES OF 512 CHARACTERS.<$! Faster version ... uses byte array instead of bitmap for$! FVLD data. ...9$! Use this file to build AnalytiCalc on VMS where you DO>$! have DTR-32 installed and want to link to it. If you do not9$! have Datatrieve-32 (DTR-32), use PCCMAKIV.COM instead.!$ COPY BVKLUGPR5.FOR VKLUGPRM.FTN2$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK AT.FOR6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK BASCNG.FOR5$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK BLOCK.FOR6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK CALBIN.FOR4$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK CALC.FOR5$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK CALUN.FOR>$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK/D_LINES CMDMUN.F40<$ FORTRAN/NOF77/NODEBUG/D_LINES/NOI4/NOLIST/NOCHECK CMND.FOR5$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK CODES.FOR6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK CONTYP.FOR5$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK DECLR.FOR6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK DSPSHT.FVX.$! HERE'S WHERE WE PULL IN REAL DTR FUNCTIONS.3$ FORTRAN/F77/NODEBUG/NOI4/NOLIST/NOCHECK DTRIF.FVX#$! USE DTRIF.FVD IF DTR IS MISSING.5$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK ERRCX.FOR6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK ERRMSG.FOR4$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK FLIP.FOR3$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK FFT.FTN6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK FRMEDT.F406$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK GETNNB.FOR6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK GMSUBS.FOR6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK GTMUNG.FOR5$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK INDEX.FOR6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK INPOST.FOR6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK JULIAN.F406$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK LINFIT.FTN4$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK LIST.FOR4$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK MDET.FOR4$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK MOUT.FOR7$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK REFLECT.F406$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK MTXEQU.FOR6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK MULADD.FOR6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK MULCON.FOR6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK MULDIV.FOR6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK MULMUL.FOR6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK NEXTEL.F406$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK POSTVL.FOR6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK RECALC.Fvx1$ FORTRAN/NOF77/NODEBUG/I4/NOLIST/NOCHECK RND.FOR5$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK SLEND.FOR8$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK SPREDSHT.FVX6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK STRCMP.FOR6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK TTYINI.FOR6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK USRCMD.FOR6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK USRFCT.FVXB$! USE SCREEN INDEPENDENT CURSOR CONTROL VERSION OF UVT100 ROUTINE?$! Note: For Colorscan 10 version, if you compile UVTCS.FVX and;$! TTYINI.FVX and use them, an extra subroutine in UVTCS is>$! called to allow the PF5 to PF12 keys to be defined. This is=$! a good tempate for adding "extra" function key definitions@$! to other terminals where these are desired. On the colorscan,>$! PF5 to PF12 produce sequences where?$! letter is A to H or a to h (depending00?Z@ZAZYTADATADATADATADATADATA on state of SHIFT). We>$! map them into some pseudo VT200 keys' ESC sequences by main=$! force & awkwardness. For a VT100 version that doesn't care?$! what the system thinks is the terminal use UVT100 or UVTAVO,9$! preferably the latter. For VT52 try UVT52 and so on...=$! The UVTAVO version could be handy for running this under aC$! windowing package where the system might have the wrong terminalC$! type setup or where the SCRFT routines might do something weird.6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK SCRIND.FOR6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK VAROUT.FOR6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK VARSCN.FOR5$! WRKFIL.F40 DOES NOT SUPPORT INPUT/OUTPUT AREAS BUT9$! IS OTHERWISE CURRENT. WRKFIL.FVX HAS ALL NEW STUFF FOR$! VAX.$! NOTE NEEED THE /I4 COMPILE6$! TO BE SURE WE DON'T OVERFLOW ARRAY BOUNDS. SOME BIG)$! SUBSCRIPTS ARE MORE THAN 16 BITS WIDE.4$ FORTRAN/NOF77/NODEBUG/I4/NOLIST/NOCHECK WRKFIL.FVX5$! FORTRAN/NOF77/NODEBUG/I4/NOLIST/NOCHECK WRKFIL.F40:$! WSHEET.FVX IS CURRENT EXCEPT FOR NO IN/OUT AREA SUPPORT#$! USE WSHEET.F4 FOR MOST RECENT...6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK WSHEET.Fvy>$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK/D_LINES XQTCMD.FOR4$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK ZERO.FOR4$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK ZNEG.FOR$ COPY *.OBJ PCCX.OBS$! NOW LINK WITH DTR STUFF$ LINK/NOMAP PCCX.OBS+DTR/OPT$! USES DTR.OPT HERE ALSO...$ LIBR/CREA PCCX PCCX.OBS $ DEL *.OBS; $ DEL *.OBJ;* ANALYT/CP/FP/FU,ANALYT=PCCNAT/MP TASK=...PCCUNITS=14ASG=TI:1:5:6:8 MAXBUF=512 STACK=160ACTFIL=5//;PORTACALC ODL FILE.; MINI VERSION ODL (PDP11); NOTABLE PROBLEM FOR PDP11:@; THIS VERSION CANNOT CALL XQTCMD FROM THE CALC OVERLAYS AND GET@; BACK RELIABLY. THAT NEEDS THEM TO CO-RESIDE, WHICH THEY CANNOT5; DO. THE FUNCTIONS ARE FORMALLY THERE BUT WILL FAIL.; Leaf 1: XQTCMD, CALC ETC.; Leaf 2: HELP; Leaf 3: DSPSHT .PSECT FUBAR,D,GBL,RW,OVR .PSECT ICPOS,D,GBL,RW,OVR* .ROOT MAIN-*(DS,HL,RC,XQ),RTU,RTTT,OTSALLB; NOTE WSHEET AND WRKFIL ARE IN ROOT SO THEIR COMMONS WILL BE TOO.A;MAIN: .FCTR OSP-BLOCK-INDEX-OTSROT-FUBAR-TTYINI-WSHEET-WRKFIL-FF<MAIN: .FCTR OSP-BLOCK-INDEX-OTSROT-FUBAR-WSH-WRKFIL-ICPOS-UV#; NOTE RECALC ETC. NEVER USE UVT100WSH: .FCTR WSHA-WSHB8WSHA: .FCTR WSHEET/LB:FVLDGT:FVLDST:TYPGET:TYPSET:FVPEEK1WSHB: .FCTR WSHEET/LB:JVBLGT:JVBLST:XVBLGT:XVBLST#OSP: .FCTR SPREDSHT/LB:.MAIN.:IN2ASHL: .FCTR SPREDSHT/LB:HELPUV: .FCTR UVT100-REFLECT(RC: .FCTR RECALC-CALC-CCC-*(C4,C5,C7,C8)CCC: .FCTR ERRCX)C4: .FCTR CMND/LB:CMND-*(C41,C42,C43,C44) C41: .FCTR ATC42: .FCTR BASCNGC43: .FCTR DECLRC44: .FCTR USRFCT/LB:USRFCTC5: .FCTR POSTVL-*(C51,C52,C6)C51: .FCTR CALUN-CONTYP-MULCON(C52: .FCTR CALBIN-*(C521,C522,C523,C524)C521: .FCTR CONTYP-MULCONC522: .FCTR MULADDC523: .FCTR MULDIVC524: .FCTR MULMULC6: .FCTR VAROUT-MOUTC7: .FCTR INPOST-NEXTELC8: .FCTR LISTK;SPLIT VARSCN AND UVT100 IN OXQTCMD SINCE THEY ARE USED AT DIFFERENT TIMES.-;ALSO SPLIT UP EDITING SUBROUTINES IN XQTCMD.E;IN THE OTHER OVERLAY STRUCTURE THEY ARE NOT THE BIGGEST LEG BUT THEY;WOULD BE HERE EXCEPT FOR THIS.%XQ: .FCTR XQTCMD/LB:XQTCMD-USRCMD-XQAXQA: .FCTR XQTCMD/LB:RELVBL-CMCM: .FCTR CMDMUNDS: .FCTR DSPSHT$;LIB: .FCTR LB:[1,1]SYSLIB/LB:$SHORT .NAME RC2JRTU: .FCTR RC2-*(EMS,GS,MEQ,MDT,XQB,XQC,XQD,XE,XF,P,Q,JUL,FED,I1,I2,I3,RF)I1: .FCTR SPRINI/LB:INITA1I2: .FCTR SPRINI/LB:INITA2I3: .FCTR SPRINI/LB:INITBP: .FCTR USRFCT/LB:PMTX2:GMTXQ: .FCTR USRFCT/LB:VVARY:SIGN RF: .FCTR RNDEMS: .FCTR ERRMSGGS: .FCTR GMSUBSMEQ: .FCTR MTXEQUMDT: .FCTR M00AZBZCZY}DETXQB: .FCTR XQTCMD/LB:SED:SSCMPXQC: .FCTR XQTCMD/LB:SVBLXQD: .FCTR XQTCMD/LB:SSTRXE: .FCTR XQTCMD/LB:PGETXF: .FCTR XQTCMD/LB:PGGETJUL: .FCTR JULIANFED: .FCTR FRMEDT .NAME RTTTX"RTTT: .FCTR RTTTX-*(RTTT1,RTTT2,W)RTTT1: .FCTR X3-X6-XQF-TTYRTTT2: .FCTR X4-VS-GT-X5W: .FCTR WSHEET/LB:WSSETX3: .FCTR FLIPX4: .FCTR SLENDX5: .FCTR STRCMPTTY: .FCTR TTYINIX6: .FCTR ZERO-ZNEGVS: .FCTR VARSCNXQF: .FCTR CMND/LB:SCMPGT: .FCTR GETNNB @FCS11M.ODL .END;PORTACALC ODL FILE.; MINI VERSION ODL (PDP11); N.B.;; be sure device names with libraries etc. are correct!!!!!>; Assumes our local configuration. Yours will almost certainly9; be different!! Look for / fix refs to DRC0:, DRC4:, and ; the like...;; NOTABLE PROBLEM FOR PDP11:@; THIS VERSION CANNOT CALL XQTCMD FROM THE CALC OVERLAYS AND GET@; BACK RELIABLY. THAT NEEDS THEM TO CO-RESIDE, WHICH THEY CANNOT5; DO. THE FUNCTIONS ARE FORMALLY THERE BUT WILL FAIL.; Leaf 1: XQTCMD, CALC ETC.; Leaf 2: HELP; Leaf 3: DSPSHT .PSECT FUBAR,D,GBL,RW,OVR .PSECT ICPOS,D,GBL,RW,OVR* .ROOT MAIN-*(DS,HL,RC,XQ),RTU,RTTT,OTSALLB; NOTE WSHEET AND WRKFIL ARE IN ROOT SO THEIR COMMONS WILL BE TOO.A;MAIN: .FCTR OSP-BLOCK-INDEX-OTSROT-FUBAR-TTYINI-WSHEET-WRKFIL-FF?MAIN: .FCTR OSP-BLOCK-INDEX-OTSROT-FUBAR-WSH-WRKFIL-ICPOS-UV-SL#; NOTE RECALC ETC. NEVER USE UVT100&SL: .FCTR DRC4:[001001]NOANSLIB.OLB/DLWSH: .FCTR WSHA-WSHB8WSHA: .FCTR WSHEET/LB:FVLDGT:FVLDST:TYPGET:TYPSET:FVPEEK1WSHB: .FCTR WSHEET/LB:JVBLGT:JVBLST:XVBLGT:XVBLST#OSP: .FCTR SPREDSHT/LB:.MAIN.:IN2ASHL: .FCTR SPREDSHT/LB:HELPUV: .FCTR UVT100-REFLECT(RC: .FCTR RECALC-CALC-CCC-*(C4,C5,C7,C8)CCC: .FCTR ERRCX)C4: .FCTR CMND/LB:CMND-*(C41,C42,C43,C44) C41: .FCTR ATC42: .FCTR BASCNGC43: .FCTR DECLRC44: .FCTR USRFCT/LB:USRFCTC5: .FCTR POSTVL-*(C51,C52,C6)C51: .FCTR CALUN-CONTYP-MULCON(C52: .FCTR CALBIN-*(C521,C522,C523,C524)C521: .FCTR CONTYP-MULCONC522: .FCTR MULADDC523: .FCTR MULDIVC524: .FCTR MULMULC6: .FCTR VAROUT-MOUTC7: .FCTR INPOST-NEXTELC8: .FCTR LISTK;SPLIT VARSCN AND UVT100 IN OXQTCMD SINCE THEY ARE USED AT DIFFERENT TIMES.-;ALSO SPLIT UP EDITING SUBROUTINES IN XQTCMD.E;IN THE OTHER OVERLAY STRUCTURE THEY ARE NOT THE BIGGEST LEG BUT THEY;WOULD BE HERE EXCEPT FOR THIS.%XQ: .FCTR XQTCMD/LB:XQTCMD-USRCMD-XQAXQA: .FCTR XQTCMD/LB:RELVBL-CMCM: .FCTR CMDMUNDS: .FCTR DSPSHT$;LIB: .FCTR LB:[1,1]SYSLIB/LB:$SHORT .NAME RC2JRTU: .FCTR RC2-*(EMS,GS,MEQ,MDT,XQB,XQC,XQD,XE,XF,P,Q,JUL,FED,I1,I2,I3,RF)I1: .FCTR SPRINI/LB:INITA1I2: .FCTR SPRINI/LB:INITA2I3: .FCTR SPRINI/LB:INITBP: .FCTR USRFCT/LB:PMTX2:GMTXQ: .FCTR USRFCT/LB:VVARY:SIGN RF: .FCTR RNDEMS: .FCTR ERRMSGGS: .FCTR GMSUBSMEQ: .FCTR MTXEQUMDT: .FCTR MDETXQB: .FCTR XQTCMD/LB:SED:SSCMPXQC: .FCTR XQTCMD/LB:SVBLXQD: .FCTR XQTCMD/LB:SSTRXE: .FCTR XQTCMD/LB:PGETXF: .FCTR XQTCMD/LB:PGGETJUL: .FCTR JULIANFED: .FCTR FRMEDT .NAME RTTTX"RTTT: .FCTR RTTTX-*(RTTT1,RTTT2,W)RTTT1: .FCTR X3-X6-XQF-TTYRTTT2: .FCTR X4-VS-GT-X5W: .FCTR WSHEET/LB:WSSETX3: .FCTR FLIPX4: .FCTR SLENDX5: .FCTR STRCMPTTY: .FCTR TTYINIX6: .FCTR ZERO-ZNEGVS: .FCTR VARSCNXQF: .FCTR CMND/LB:SCMPGT: .FCTR GETNNB @FCS11MN.ODL .ENDANALYT/CP/FP/FU=PCCNATNAT/MP=; BUILD FOR PDP11. TESTED WITH RSX11M+ SYSLIB NO-ANSI VERSION8; NOANSLIB. WILL NOT FIT UNLESS BUILT WITH NON-ANSI FCS. TASK=...PCCUNITS=14ASG=TI:1:5:6:8 MAXBUF=512 STACK=100ACTFIL=5//00DZZAZYTADATADATADATADATADATA $ SET NOON,$! BUILD PCCPCP ON VMS IN COMPATIBILITY MODE0$! NOTE WE ASSUME NO OBJECT FILES EXIST ALREADY.A$! This is the template for the command file to build AnalytiCalc@$! for PDP11 running RSX11M or RSX11M+. It runs OK under VMS 3.7@$! and 4.2 but needs the RSX11M SYSLIB and TKB and has some site?$! dependencies here and in the ODL files it uses that may need5$! to be modified. They are relatively small however.$!?$! THIS IS THE CLOSEST I CAN READILY DO UNDER VMS V3.7 TO BUILDB$! FOR PDP11. IT DOES FIT, USING AN RSX11M+ V2.0 VERSION OF SYSLIBA$! AND RSX VERSION OF F77 OTS. HOWEVER MY FCS IS THE NON-ANSI ONEA$! AND SMALL DIFFERENCES IN VERSIONS CAN DETERMINE WHETHER THINGS>$! FIT OR NOT. YOU MAY HAVE TO EDIT VKLUGPRM.FTN TO GET THINGSF$! TO FIT, OR TRY ADJUSTING STACK SIZE A LITTLE. THERE ARE TASK IMAGESC$! SUPPLIED WHICH CAN BE USED, TO SAVE YOURSELF WORK. IF YOU CAN DOE$! I/D SPACE AND USE FCSFSL, I ADVISE YOU TO FLATTEN THE OVERLAYS ANDJ$! USE THOSE FEATURES; THE PROGRAM CAN RUN LOTS FASTER IF YOU DO. I CANNOTA$! TEST SUCH FEATURES MYSELF AND MUST LEAVE SUCH MANIPULATIONS TO)$! OTHERS. SORRY FOR THE INCONVENIENCE...$! GLENN EVERHART!$ COPY PVKLUGPRM.FOR VKLUGPRM.FTN$ F4P AT=AT.FOR/NOTR/NOI4/NOF77'$ F4P BASCNG=BASCNG.FOR/NOTR/NOI4/NOF77%$ F4P BLOCK=BLOCK.FOR/NOTR/NOI4/NOF77'$ F4P CALBIN=CALBIN.FOR/NOTR/NOI4/NOF77&$ F4P CALC=CALC.FTN/NOTR/NOI4/NOF77/DE%$ F4P CALUN=CALUN.FOR/NOTR/NOI4/NOF77'$ F4P CMDMUN=CMDMUN.F40/NOTR/NOI4/NOF77#$ F4P CMND=CMND.FOR/NOTR/NOI4/NOF77'$ F4P CONTYP=CONTYP.FOR/NOTR/NOI4/NOF77%$ F4P DECLR=DECLR.FOR/NOTR/NOI4/NOF771$! MAY NEED TO USE OLDER DSPSHT IF NEW IS TOO BIG($! F4P DSPSHT=DSPSHT.FOR/NOTR/NOI4/NOF77'$ F4P DSPSHT=DSPSHT.F40/NOTR/NOI4/NOF77#$ F4P DTRFIN=DTRFIN/NOTR/NOI4/NOF77%$ F4P ERRCX=ERRCX.FOR/NOTR/NOI4/NOF77'$ F4P ERRMSG=ERRMSG.FOR/NOTR/NOI4/NOF77#$ F4P FLIP=FLIP.FOR/NOTR/NOI4/NOF77'$ F4P FRMEDT=FRMEDT.FOR/NOTR/NOI4/NOF77'$ F4P GETNNB=GETNNB.FOR/NOTR/NOI4/NOF77'$ F4P GMSUBS=GMSUBS.FOR/NOTR/NOI4/NOF77%$ F4P INDEX=INDEX.FOR/NOTR/NOI4/NOF77'$ F4P INPOST=INPOST.FOR/NOTR/NOI4/NOF77'$ F4P JULIAN=JULIAN.FOR/NOTR/NOI4/NOF77#$ F4P LIST=LIST.FOR/NOTR/NOI4/NOF77#$ F4P MDET=MDET.FOR/NOTR/NOI4/NOF77)$ F4P REFLECT=REFLECT.FOR/NOTR/NOI4/NOF77#$ F4P MOUT=MOUT.FOR/NOTR/NOI4/NOF77'$ F4P MTXEQU=MTXEQU.FOR/NOTR/NOI4/NOF77'$ F4P MULADD=MULADD.FOR/NOTR/NOI4/NOF77'$ F4P MULCON=MULCON.FOR/NOTR/NOI4/NOF77'$ F4P MULDIV=MULDIV.FOR/NOTR/NOI4/NOF77'$ F4P MULMUL=MULMUL.FOR/NOTR/NOI4/NOF77'$ F4P NEXTEL=NEXTEL.FTN/NOTR/NOI4/NOF77'$ F4P POSTVL=POSTVL.FOR/NOTR/NOI4/NOF77'$ F4P RECALC=RECALC.FOR/NOTR/NOI4/NOF77$ F4P RND=RND.FOR/NOTR/NOF77/I4%$ F4P SLEND=SLEND.FOR/NOTR/NOI4/NOF77/$ F4P SPREDSHT=SPREDSHTP.PR1/NOTR/NOI4/NOF77/DE,$ F4P SPRINI=SPREDSHT.PR2/NOTR/NOF77/NOI4/DE'$ F4P STRCMP=STRCMP.FOR/NOTR/NOI4/NOF77($! F4P TTYINI=TTYINI.FTN/NOTR/NOI4/NOF77'$ F4P GETTTL=GETTTL.FOR/NOTR/NOI4/NOF77$ MAC TTYINI=TTYINI$ PIP TTYINI.OBJ/AP=GETTTL.OBJ$ DEL GETTTL.OBJ;*'$ F4P USRCMD=USRCMD.FTN/NOTR/NOI4/NOF77*$ F4P USRFCT=USRFCT.FOR/NOTR/NOI4/NOF77/DE6$! SELECT ONE OF THE FOLLOWING SCREEN SUPPORT ROUTINES'$ F4P UVT100=UVTAVO.FOR/NOTR/NOI4/NOF77 $! UVT52.FOR$! UVTAVO.FOR $! UVTCS.FOR $! UVTDM.FOR$! UVTTV925.FOR $! UVT52.FOR!$! END OF SCREEN SUPPORT ROUTINES'$ F4P VAROUT=VAROUT.FOR/NOTR/NOI4/NOF77'$ F4P VARSCN=VARSCN.FOR/NOTR/NOI4/NOF77'$ F4P WRKFIL=WRKFIL.FIV/NOTR/NOI4/NOF77'$ F4P WSHEET=WSHEET.F40/NOTR/NOI4/NOF77'$ F4P XQTCMD=XQTCMD.FTN/NOTR/NOI4/NOF77#$ F4P ZERO=ZERO.FOR/NOTR/NOI4/NOF77#$ F4P ZNEG=ZNEG.FOR/NOTR/NOI4/NOF77$ PIP ERRMSG.OBJ/AP=DTRFIN.OBJ?$! ENSURE DTRFIN DUMMY ROUTINE IS WHERE IT CAN BE ACCESSED FROM:$! XQTCMD PRIOR TO EXIT FROM SHEET. KEEP IT OUT OF ROOT TO#$! AVOID BLOWING 32K ADDRESS SPACE.$!D$! NOTE: NOW RUN THROUGH LBRCRE.CMD TO MAKE NEEDED OBJECT LIBRARIES,9$! AND BUILD WITH PCCPDP.CMD OR PCCPRO.CMD FOR TASKBUILD.C$! BE *** CAREFUL *** THAT YOU USE THE VERSION OF FCS THAT DOESN'TA$! SUPPORT ANSI MAGTAPE OR IT'LL FAIL. ALSO, THE BUIL00DZEZF{YFZGZ}D ISN'T YETB$! TESTED WITH RECALC.FOR. IF IT'S TOO BIG, USE RECALC.FFF INSTEAD$! WHICH IS KNOWN TO WORK.ANALYT/CP/FP/FU=PCCPRO/MP TASK=...PCC$; TASK BUILD FOR PRO 3XX ANALYTICALCUNITS=14ASG=TI:1:5:6:8 MAXBUF=512 STACK=130ACTFIL=5//;PORTACALC ODL FILE.; MINI VERSION ODL (PDP11); NOTABLE PROBLEM FOR PDP11:@; THIS VERSION CANNOT CALL XQTCMD FROM THE CALC OVERLAYS AND GET@; BACK RELIABLY. THAT NEEDS THEM TO CO-RESIDE, WHICH THEY CANNOT5; DO. THE FUNCTIONS ARE FORMALLY THERE BUT WILL FAIL.; Leaf 1: XQTCMD, CALC ETC.; Leaf 2: HELP1; Leaf 3: DSPSHT .PSECT FUBAR,D,GBL,RW,OVR .PSECT ICPOS,D,GBL,RW,OVR* .ROOT MAIN-*(DS,HL,RC,XQ),RTU,RTTT,OTSALLB; NOTE WSHEET AND WRKFIL ARE IN ROOT SO THEIR COMMONS WILL BE TOO.A;MAIN: .FCTR OSP-BLOCK-INDEX-OTSROT-FUBAR-TTYINI-WSHEET-WRKFIL-FF<MAIN: .FCTR OSP-BLOCK-INDEX-OTSROT-FUBAR-WSH-WRKFIL-ICPOS-UV#; NOTE RECALC ETC. NEVER USE UVT100WSH: .FCTR WSHA-WSHB8WSHA: .FCTR WSHEET/LB:FVLDGT:FVLDST:TYPGET:TYPSET:FVPEEK1WSHB: .FCTR WSHEET/LB:JVBLGT:JVBLST:XVBLGT:XVBLST#OSP: .FCTR SPREDSHT/LB:.MAIN.:IN2ASHL: .FCTR SPREDSHT/LB:HELPUV: .FCTR UVT100-REFLECT(RC: .FCTR RECALC-CALC-CCC-*(C4,C5,C7,C8)CCC: .FCTR ERRCX)C4: .FCTR CMND/LB:CMND-*(C41,C42,C43,C44) C41: .FCTR ATC42: .FCTR BASCNG0C43: .FCTR DECLRC44: .FCTR USRFCT/LB:USRFCTC5: .FCTR POSTVL-*(C51,C52,C6)C51: .FCTR CALUN-CONTYP-MULCON(C52: .FCTR CALBIN-*(C521,C522,C523,C524)C521: .FCTR CONTYP-MULCONC522: .FCTR MULADDC523: .FCTR MULDIVC524: .FCTR MULMULC6: .FCTR VAROUT-MOUTC7: .FCTR INPOST-NEXTELC8: .FCTR LISTK;SPLIT VARSCN AND UVT100 IN OXQTCMD SINCE THEY ARE USED AT DIFFERENT TIMES.-;ALSO SPLIT UP EDITING SUBROUTINES IN XQTCMD.E;IN THE OTHER OVERLAY STRUCTURE THEY ARE NOT THE BIGGEST LEG BUT THEY;WOULD BE HERE EXCEPT FOR THIS.%XQ: .FCTR XQTCMD/LB:XQTCMD-USRCMD-XQAXQA: .FCTR XQTCMD/LB:RELVBL-CMCM: .FCTR CMDMUNDS: .FCTR DSPSHT$;LIB: .FCTR LB:[1,1]SYSLIB/LB:$SHORT .NAME RC2JRTU: .FCTR RC2-*(EMS,GS,MEQ,MDT,XQB,XQC,XQD,XE,XF,P,Q,JUL,FED,I1,I2,I3,RF)I1: .FCTR SPRINI/LB:INITA1I2: .FCTR SPRINI/LB:INITA2I3: .FCTR SPRINI/LB:INITBP: .FCTR USRFCT/LB:PMTX2:GMTXQ: .FCTR USRFCT/LB:VVARY:SIGN RF: .FCTR RNDEMS: .FCTR ERRMSGGS: .FCTR GMSUBSMEQ: .FCTR MTXEQUMDT: .FCTR MDETXQB: .FCTR XQTCMD/LB:SED:SSCMPXQC: .FCTR XQTCMD/LB:SVBLXQD: .FCTR XQTCMD/LB:SSTRXE: .FCTR XQTCMD/LB:PGETXF: .FCTR XQTCMD/LB:PGGETJUL: .FCTR JULIANFED: .FCTR FRMEDT .NAME RTTTX"RTTT: .FCTR RTTTX-*(RTTT1,RTTT2,W)RTTT1: .FCTR X3-X6-XQF-TTYRTTT2: .FCTR X4-VS-GT-X5W: .FCTR WSHEET/LB:WSSETX3: .FCTR FLIPX4: .FCTR SLENDX5: .FCTR STRCMPTTY: .FCTR TTYINIX6: .FCTR ZERO-ZNEGVS: .FCTR VARSCNXQF: .FCTR CMND/LB:SCMPGT: .FCTR GETNNB@FCS11MPRO.ODL .END $ SET NOON.$! BUILD PCCTRIAL ON VMS IN COMPATIBILITY MODE0$! NOTE WE ASSUME NO OBJECT FILES EXIST ALREADY.4$ ! NOTE WE DON'T CHANGE TT: TO TI: AND USER MUST DO6$! AN ASSIGN UNDER RSX TO DO SO. KLUDGE FOR QUICK TEST$! IN VMS COMPAT MODE.A$! This is the file to compile AnalytiCalc for the PRO 350/380 onE$! VMS in compat mode. The RSX F77 compiler is used (V5 here) and runF$! on VAX to make the .OBJ files. These are then made into a universalG$! library with PCX.COM. The universal library is move00GZHZZYTADATADATADATADATADATAd to the PRO withC$! Kermit (or whatever) in file type "fixed" mode and unpacked withG$! PCXUNL.CMD into individual .OBJ files again. Then LBRCRE.CMD is used@$! to make the needed .OLB files and PCCPRO.CMD used to link theB$! thing on the PRO, giving the resulting .TSK file on P/OS. Other@$! sites may need to customize a bit differently but this allowsE$! use of Fortran with FCS, rather than RMS, I/O calls. The reason isD$! that the program won't fit in 64KB with RMS I/O but will fit with $! FCS I/O.!$ COPY PVKLUGPRM.FOR VKLUGPRM.FTN$ F4P AT=AT.PRO/NOTR/NOI4/NOF77'$ F4P BASCNG=BASCNG.FOR/NOTR/NOI4/NOF77%$ F4P BLOCK=BLOCK.FOR/NOTR/NOI4/NOF77'$ F4P CALBIN=CALBIN.FOR/NOTR/NOI4/NOF77&$ F4P CALC=CALC.FTN/NOTR/NOI4/NOF77/DE%$ F4P CALUN=CALUN.FOR/NOTR/NOI4/NOF77'$ F4P CMDMUN=CMDMUN.PRO/NOTR/NOI4/NOF77#$ F4P CMND=CMND.FOR/NOTR/NOI4/NOF77'$ F4P CONTYP=CONTYP.FOR/NOTR/NOI4/NOF77%$ F4P DECLR=DECLR.FOR/NOTR/NOI4/NOF771$! MAY NEED TO USE OLDER DSPSHT IF NEW IS TOO BIG($! F4P DSPSHT=DSPSHT.FOR/NOTR/NOI4/NOF77'$ F4P DSPSHT=DSPSHT.F40/NOTR/NOI4/NOF77#$ F4P DTRFIN=DTRFIN/NOTR/NOI4/NOF77%$ F4P ERRCX=ERRCX.FOR/NOTR/NOI4/NOF77'$ F4P ERRMSG=ERRMSG.FOR/NOTR/NOI4/NOF77#$ F4P FLIP=FLIP.FOR/NOTR/NOI4/NOF77'$ F4P FRMEDT=FRMEDT.P11/NOTR/NOI4/NOF77'$ F4P GETNNB=GETNNB.FOR/NOTR/NOI4/NOF77'$ F4P GMSUBS=GMSUBS.FOR/NOTR/NOI4/NOF77%$ F4P INDEX=INDEX.FOR/NOTR/NOI4/NOF77'$ F4P INPOST=INPOST.FOR/NOTR/NOI4/NOF77'$ F4P JULIAN=JULIAN.FOR/NOTR/NOI4/NOF77#$ F4P LIST=LIST.FOR/NOTR/NOI4/NOF77#$ F4P MDET=MDET.FOR/NOTR/NOI4/NOF77)$ F4P REFLECT=REFLECT.FOR/NOTR/NOI4/NOF77#$ F4P MOUT=MOUT.FOR/NOTR/NOI4/NOF77'$ F4P MTXEQU=MTXEQU.FOR/NOTR/NOI4/NOF77'$ F4P MULADD=MULADD.FOR/NOTR/NOI4/NOF77'$ F4P MULCON=MULCON.FOR/NOTR/NOI4/NOF77'$ F4P MULDIV=MULDIV.FOR/NOTR/NOI4/NOF77'$ F4P MULMUL=MULMUL.FOR/NOTR/NOI4/NOF77'$ F4P NEXTEL=NEXTEL.FTN/NOTR/NOI4/NOF77'$ F4P POSTVL=POSTVL.FOR/NOTR/NOI4/NOF77'$ F4P RECALC=RECALC.FOR/NOTR/NOI4/NOF77$ F4P RND=RND.FOR/NOTR/NOF77/I4%$ F4P SLEND=SLEND.FOR/NOTR/NOI4/NOF77.$ F4P SPREDSHT=SPREDSHT.PR1/NOTR/NOI4/NOF77/DE,$ F4P SPRINI=SPREDSHT.PR2/NOTR/NOF77/NOI4/DE'$ F4P STRCMP=STRCMP.FOR/NOTR/NOI4/NOF77($! F4P TTYINI=TTYINI.FTN/NOTR/NOI4/NOF77'$ F4P GETTTL=GETTTL.FOR/NOTR/NOI4/NOF77$ MAC TTYINI=TTYINI$ PIP TTYINI.OBJ/AP=GETTTL.OBJ$ DEL GETTTL.OBJ;*'$ F4P USRCMD=USRCMD.PRO/NOTR/NOI4/NOF77*$ F4P USRFCT=USRFCT.FOR/NOTR/NOI4/NOF77/DE6$! SELECT ONE OF THE FOLLOWING SCREEN SUPPORT ROUTINES'$ F4P UVT100=UVTAVO.FOR/NOTR/NOI4/NOF77 $! UVT52.FOR$! UVTAVO.FOR $! UVTCS.FOR $! UVTDM.FOR$! UVTTV925.FOR $! UVT52.FOR!$! END OF SCREEN SUPPORT ROUTINES'$ F4P VAROUT=VAROUT.FOR/NOTR/NOI4/NOF77'$ F4P VARSCN=VARSCN.FOR/NOTR/NOI4/NOF77'$ F4P WRKFIL=WRKFIL.FIV/NOTR/NOI4/NOF77'$ F4P WSHEET=WSHEET.F40/NOTR/NOI4/NOF77'$ F4P XQTCMD=XQTCMD.FTN/NOTR/NOI4/NOF77#$ F4P ZERO=ZERO.FOR/NOTR/NOI4/NOF77#$ F4P ZNEG=ZNEG.FOR/NOTR/NOI4/NOF77$ PIP ERRMSG.OBJ/AP=DTRFIN.OBJ)$! ENSURE DTRFIN (DUMMY ROUTINE) IS WHERE!$! IT CAN BE HANDLED FROM XQTCMD.@$! Now fire up PCX.COM separately to make the PCX.ULB to move toA$! the PRO. Use PCXUNL.CMD to unload, LBR @LBRCRE.CMD to make the@$! .OLB's, and then link @PCCPRO.CMD to link it to a .TSK image. OxOxOx00IZJZKZLZZ} $ SET NOON($! BUILD PCCCS ON VMS WITH DTR INTERFACE1$! BUILD FOR VAX ANALYTICALC INCLUDING DATATRIEVE$! INTERFACE (THE REAL ONE).B$! Assumes PCCMAKIVD.COM has been run already and that PCCX.OLB isF$! in this area. Creates PCCCS, the Colorscan 10 version. This versionE$! is able to interpret the Colorscan's PF5 thru PF12 keys also whichG$! use code to request additional functions. These are munged intoF$! pseudo-escape sequences and treated as more @DK:AKl.CMD commands..."$! COPY BVKLUGPR5.FOR VKLUGPRM.FTN#$! USE DTRIF.FVD IF DTR IS MISSING.6$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK TTYINI.FVXB$! USE SCREEN INDEPENDENT CURSOR CONTROL VERSION OF UVT100 ROUTINE5$ FORTRAN/NOF77/NODEBUG/NOI4/NOLIST/NOCHECK UVTCS.FVX$LIBR/REPL PCCX UVTCS$LIBR/REPL PCCX TTYINI$LIBR/EXTR=*/OUT=PCCCS PCCX$LINK/NOMAP PCCCS+DTR/OPT $ DEL *.OBJ;*1;BUILD PCGRAF, THE PORTACALC GRAPHICS OUTPUT TASKB;(IGNORE ANY ERRORS HAVING TO DO WITH INDEX BEING LOCALLY DEFINED)";ASSUMES F77. MINOR EDITS FOR F4P.F4P PCGRAF=PCGRAF/NOTRF4P GHASP=GHASP/NOTR/I4oF4P INDEX=INDEX/NOTRF4P GVARSCN=GVARSCN/NOTR.OPEN PCGBLD.CMD*.DATA PCG/CP/FP=PCGRAF,GVARSCN,INDEX,GHASP.DATA /a.DATA TASK=...PCGe.DATA ASG=TI:3:4:5,LP:6i.DATA //.CLOSE TKB @PCGBLDtPIP PCGBLD.CMD;0/DE/NM $SET NOON $SET VERIFY9$!; THIS FILE IS THE MODULES TO LINK TO BUILD PCGRAF, THE($!; PORTACALC GRAPHICS OUTPUT TASK (VMS),$FORTRAN/NOF77/NOLIST/NOCHECK/NODEBUG PCGRAF/$FORTRAN/NOF77/NOLIST/NOCHECK/NODEBUG INDEX.FTN1$FORTRAN/NOF77/NOLIST/NOCHECK/NODEBUG GVARSCN.FTN/$FORTRAN/NOF77/NOLIST/NOCHECK/NODEBUG GHASP.FTN $LINK PCGRAF+INDEX+GVARSCN+GHASP$LIBR/CREATE PCGRAF PCGRAF$LIBR/INSERT PCGRAF INDEX$LIBR/INSERT PCGRAF GVARSCN$LIBR/INSERT PCGRAF GHASP $SET NOVERIFY $DEL *.OBJ;*$LIBR/COMPRESS PCGRAF$PUR$SET FILE/TRUNCATE PCGRAF.OLB#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY. C PCC GRAF9C NOTE: REQUIRES LUN 4 FOR TERMINAL OUTPUT AND LUN 5 FORC TERMINAL INPUT.C (GHASP USES 6 FOR LP:)C 4C GRAPHICS INTERFACE AND OUTPUT FROM PCC SPREADSHEETCC GLENN EVERHART, 23-JAN-83CC SYNTAX AND USAGE:CAC This program is designed to allow an interactive user to enterAC a single command line to the program which it will parse (usingDC the special version of VARSCN in GVARSCN) and allow graphic outputAC from PortaCalc saved spread sheets. The assumption made is thatDC the sheet has been saved with the PPN or PDN command. The filenameEC must appear in the command line and variables in the file (named asDC though the cursor had been in cell A1 when the PPN / PDN was done);C may be histogrammed or scatterplotted against each other.CBC The GHASP routine (a FORTRAN plot package for ordinary printers) C will be used for this version.CC Input syntax:2C NN or LL filename.ext V1:V2 [c] V3:V4 +switchesCC whereCJC an L in columns 1 or 2 takes log of 1st or 2nd range numbers (base 10),CBC filename appears at the start of the command line after a spaceEC and with a space following it and is a valid RSX or VMS file spec.CIC V1:V2 and V3:V4 are ranges. V3:V4 is optional and its presence impliesHC a scatter plot. These ranges must be either a row or a column or partJC of them. If onl00LZZZYTADATADATADATADATADATAy range V1:V2 is present, a histogram will be done usingJC the Scale option of GHASP to fit the plot onto a page. The plot will be/C set up for 100 bins horizontal, 50 vertical.KC If the V3:V4 range exists, the character Q in the [c] position (the []JC are required) will result in a "density" plot in which the program willKC attempt to print darker in filled bins. This is crude and the default isGC to use a 2 digit number. Again, plot size will be scaled to 50 by 50C bins.C LOGICAL*1 LINE(128),KLET,LLET INTEGER*4 NDLTY,NPLTS,MA(1000) INTEGER*4 NDIM,TITLE(19) LOGICAL*1 LTITL(76) LOGICAL*1 LLA,LLB EQUIVALENCE(TITLE(1),LTITL(1)) INTEGER*2 IXTR COMMON/IXTR/IXTR INTEGER*4 NBINX,NBINY REAL*4 XMIN,YMIN,DX,DY INTEGER*2 KK,LS1,LS2,LQ LOGICAL*1 IONM(50) LOGICAL*1 IONM1(52) EQUIVALENCE(IONM(1),IONM1(1)) REAL*4 VEC1(300),VEC2(300) COMMON/EXTRA/NDLTY,NPLTS,MA4 COMMON/PLOTS/NDIM,XMIN,YMIN,DX,DY,NBINX,NBINY,TITLE DATA RS/4H S/ DATA RV/4H V/ DATA RQ/4H Q/ DATA RH/4H H/ IXTR=0 CALL ASSIGN(4,'SYS$OUTPUT:') CALL ASSIGN(5,'SYS$INPUT:')100 NDLTY=1000 NPLTS=1c CALL ASSIGN(6,'LP:') ITTFG=0 WRITE(4,8000))8000 FORMAT('$Give output dataset name>') READ(5,2)IDL,IONM IONM(IDL+1)=0 CALL ASSIGN(6,IONM):C SEE IF HE USED A TERMINAL NAME. IF SO FLAG SMALL IMAGES.+ IF((IONM(1).EQ.'T'.OR.IONM(1).EQ.'t').AND. 1 IONM(3).EQ.':')ITTFG=1 IF(ITTFG.EQ.1)IXTR=1 WRITE(4,1) 1 FORMAT('$Enter plot command>') READ(5,2)LQ,LINE2 FORMAT(Q,128A1) LOGF1=0 LOGF2=0 NBFG1=0 IF(LINE(1).EQ.'P')NBFG1=1AC NBFG1 MAKES YMIN=0. THUS IF CMD STARTS WITH PP PLOT IS POSITIVE C DITTO NBFG2 NBFG2=0 IF(LINE(2).EQ.'P')NBFG2=1 IF(LINE(1).EQ.'L')LOGF1=1 IF(LINE(2).EQ.'L')LOGF2=1 LLA=LINE(1) LLB=LINE(2)/C 1ST 2 CHARS SAY LOG OR LOGLOG (IF 2DIM GRAPH)=C LOGF1 WILL TAKE LOG OF VEC1 AND LOGF2 WILL TAKE LOG OF VEC2 C IF SET.*C NOTE THAT THIS ALSO TAKES ABS OF NUMBER. LQ=LQ+1 LQ=MIN0(128,LQ) LINE(127)=0 LINE(128)=0 LINE(LQ)=0cc process switches.$c switches are after trailing + signcc +hnnn = set heightc +wnnn = set width nhov=0 nwov=0 KK=INDEX(LINE,'+') IF(KK.GT.50)GOTO 6000+C SKIP THIS AREA IF NO SWITCHES ARE FLAGGED LINE(KK)=0$C SKIP SWITCHES IN LATER PROCESSING.Ac since we look for a number, first try to decode the number as ac 3 digit one... kkk=kk+2 lend1=kkk+30 call gn(kkk,lend1,num1,line),c num1 can be h or w depending on line(kk+1)4 if(line(kk+1).eq.'h'.or.line(kk+1).eq.'H')nhov=num14 if(line(kk+1).eq.'w'.or.line(kk+1).eq.'W')nwov=num16C GN RETURNS ITS LAST CHAR AFTER THE # IN ITS 1ST ARG. IKK=INDEX(LINE(KK+1),'+') IF(IKK.GT.30)GOTO 6000 KKK=IKK+KK c 2nd + sign flags 2nd switch... kk=kkk+2 lend1=kk+30 call gn(kk,lend1,num1,line)6 if(line(kkk+1).eq.'h'.or.line(kkk+1).eq.'H')nhov=num16 if(line(kkk+1).eq.'w'.or.line(kkk+1).eq.'W')nwov=num1c that should do it... 6000 CONTINUE LS1=INDEX(LINE,32)C CALL OUR PORTACALC INDEX FCN KK=LS1+1 LS2=INDEX(LINE(KK),32)0 IF(LS1.GT.40.OR.LS2.GT.40)WRITE(4,25)LS1,LS2,LQ225 FORMAT(' Spaces not seen. Find spaces at ',3I6,9 1 /,' Usage: PCG file V1:V2 [C] V3:V4[+hnnnwnnn] ')$ IF (LS1.GT.40.OR.LS2.GT.40)GOTO 100 LINE(LS2+LS1)=0 CALL ASSIGN(1,LINE(LS1+1))-C SET UP FILE 1 TO READ SAVED FILE FROM SHEET LINE(LS2+LS1)=32 LX=LS1+LS2+1C SCAN THE REST STARTING AT LX;C GRAB OFF OUR ARGUMENTS FIRST, THEN GET ON WITH THE PLOTS. CALL PLOT(0.,0.,-1,0))C HOWEVER INITIALIZE PLOT ARRAY EARLY ON. K1=LX K2=110, CALL GVSCAN(LINE,K1,K2,LSTCHR,ID1,ID2,IVLD) IF (IVLD.NE.0)GOTO 150 WRITE(4,3)/3 FORMAT(' First variable invalid. Try again.') GOTO 100 150 CONTINUE IF(LINE(LSTCHR).EQ.':')GOTO 160 WRITE(4,4)*4 FORMAT(' Colon missing in first range.') GOTO 100 160 CONTINUE K1=LSTCHR+1 K2=110- CALL GVSCAN(LINE,K1,K2,LSTCR,ID1B,ID2B,IVLD) IF (IVLD.NE.0)GOTO 164 WRITE(4,5)/5 FORMAT(' 2nd variable in 1st range invalid.') GOTO 100 164 CONTINUE( IF(ID1.NE.ID1B.AND.ID2.NE.I00LZZKZLZZ}D2B)GOTO 166 GOTO 167166 WRITE(4,6):6 FORMAT(' Variable pair not in a row or column together') GOTO 100 167 CONTINUE KCR=1 IF(LINE(LSTCR).EQ.'[')GOTO 170 LSTCR=LSTCR+1 IF(LINE(LSTCR).EQ.'[')GOTO 170169 WRITE(4,7)KCR07 FORMAT(' Invalid format of [c] character ',I5) GOTO 100170 LSTCR=LSTCR+1 KCR=2 IF(LINE(LSTCR).EQ.']')GOTO 169 KLET=LINE(LSTCR) LSTCR=LSTCR+1C SCAN OVER NEXT ']' NOW KCR=3 IF(LINE(LSTCR).NE.']')GOTO 169 LSTCR=LSTCR+1DC IF WE PICK UP A VALID VARIABLE HERE, ALL'S WELL. OTHERWISE WE HAVE6C A HISTOGRAM AND WE'RE DONE (FOR THIS VERSION ANYHOW) K1=LSTCR K2=110 NDIM=1, CALL GVSCAN(LINE,K1,K2,LSTT,ID1C,ID2C,IVLD) IF(IVLD.EQ.0)GOTO 200>C IF HERE, THERE HAS TO BE 1 MORE VARIABLE DECODED AND TESTED. IF(LINE(LSTT).EQ.':')GOTO 175 WRITE(4,8)+8 FORMAT(' Invalid second variable range.') GOTO 100 175 CONTINUE K1=LSTT+1 K2=110- CALL GVSCAN(LINE,K1,K2,LSTCC,ID1D,ID2D,IVLD) IF(IVLD.NE.0)GOTO 180 WRITE(4,9).9 FORMAT(' Invalid 2nd variable of 2nd range') GOTO 100 180 CONTINUEC NOW ALL DECODED. NDIM=2/C NOW WE HAVE SET UP THE DIMENSION OF OUR PLOT. 200 CONTINUEBC NOW IT'S POSSIBLE TO READ IN THE FILE ONCE TO NORMALIZE IT, THEN#C REWIND AND READ AGAIN TO PLOT IT. XMIN=99.E10 YMIN=99.E10 IF(NBFG1.NE.0)YMIN=0. IF(NBFG2.NE.0)XMIN=0.DC SET TERRIBLY LARGE X,Y MINS UNLESS POSITIVE PLOT, THEN START AT 0.C (WE'LL FIX THEM UP!) XMAX=-99.E10 YMAX=-99.E10?C SET UP MAXIMA ALSO IN BOGUS WAY. THIS ENSURES WHATEVER WE GET(C WILL BE BETTER THAN OUR "FIRST GUESS".@C INSERT TITLE AS OUR COMMAND LINE, FOR INTERNAL DOCUMENTATION.C (LX THRU END) DO 11 N=1,7811 LTITL(N)=32 LX=LS1C INCLUDE FILENAME TOO. DO 12 N=1,50 LTITL(N)=LINE(LX) IF(LX.GT.76)GOTO 13 12 LX=LX+1C FLAG LOG SCALE FLAGS IN TITLE IF (LLA.EQ.'L')TITLE(18)='LOGX' IF (LLB.EQ.'L')TITLE(19)='LOGY'13 READ(1,10)LINE10 FORMAT(128A1) IF(NDIM.EQ.2)GOTO 17 XMIN=0. XMIN2=0. ICNT=0 17 CONTINUE0C IGNORE TITLE, JUST READ IT IN, THEN FORGET IT. IV1=1 IV2=1 220 CONTINUE@C NOTE WE READ IN THE NUMBER IN NUMERIC FORMAT. EASIER THAT WAY. IRRW=0 ICCL=0/ READ(1,14,END=250,ERR=224)LET1,IRRW,ICCL,XYVAL14 FORMAT(A1,I5,X,I5,X,E50.35)?224 READ(1,15,END=250,ERR=225)LFVLD,(LINE(IV),IV=120,128),KKTYP15 FORMAT(I3,X,9A1,X,I5) 225 CONTINUE9C READS IN AN ENTRY OF SAVED SHEET. TEST IF IN OUR RANGE.9 IF(IRRW.GE.ID1.AND.IRRW.LE.ID1B.AND.ICCL.GE.ID2.AND.ICCL 1 .LE.ID2B)GOTO 221 IF(NDIM.NE.2)GOTO 2232 IF(IRRW.GE.ID1C.AND.IRRW.LE.ID1D.AND.ICCL.GE.ID2C" 1 .AND.ICCL.LE.ID2D)GOTO 222 GOTO 223 221 CONTINUE2C NUMBER IS IN FIRST RANGE TO PLOT. FIGURE IT OUT.6 IF(LOGF1.NE.0.AND.XYVAL.NE.0)XYVAL=ALOG10(ABS(XYVAL)) VEC1(IV1)=XYVAL IV1=IV1+1 IF(NDIM.EQ.1)ICNT=ICNT+1 IF(NDIM.EQ.1)XMAX=ICNT IF(NDIM.EQ.1)GOTO 18 IF(XYVAL.LT.XMIN)XMIN=XYVAL IF(XYVAL.GT.XMAX)XMAX=XYVAL GOTO 223 18 CONTINUE IF(XYVAL.LT.YMIN)YMIN=XYVAL IF(XYVAL.GT.YMAX)YMAX=XYVAL VEC2(IV2)=FLOAT(ICNT) IV2=IV2+1 GOTO 223 222 CONTINUE IF(NDIM.EQ.1)GOTO 2236 IF(LOGF2.NE.0.AND.XYVAL.NE.0)XYVAL=ALOG10(ABS(XYVAL))%C NUMBER IS IN SECOND RANGE SELECTED.C KNOW IT'S A Y COORD HERE. VEC2(IV2)=XYVAL IV2=IV2+1 IF(XYVAL.LT.YMIN)YMIN=XYVAL IF(XYVAL.GT.YMAX)YMAX=XYVAL 223 CONTINUE GOTO 220 250 CONTINUEC NOW MINIMA,MAXIMA ALL SET UP.* IF(XMIN.GE.XMAX.OR.YMIN.GE.YMAX)CALL EXIT$C EXIT IF NOTHING IS THERE TO GRAPH. XRANGE=XMAX-XMIN YRANGE=YMAX-YMINC AMXRG=100. AMYRG=50. IF(ITTFG.EQ.1)AMXRG=60. IF(ITTFG.EQ.1)AMYRG=20. XNUM=AMXRG/ IF(NDIM.EQ.1.AND.(XRANGE.LT.AMXRG))XNUM=XRANGE YNUM=AMYRG IF(NDIM.EQ.2)XNUM=AMYRG8C HANDLE SWITCHES THAT OVERRIDE HEIGHT AND WIDTH TO USE. IF(NHOV.NE.0)YNUM=NHOV IF(NWOV.NE.0)XNUM=NWOV DX=XRANGE/XNUM DY=YRANGE/YNUM( IF(.NOT.(NDIM.EQ.1.AND.DX.LT.1))GOTO 19$C DX RESET OVER-RIDDEN BY +W SWITCH. IF(NWOV.EQ.0)DX=1. 19 CONTINUE NBINX=XNUM NBINY=YNUM CALL PLOT(RV,0.,0,1)C INITIALIZE PLOT&C NDIM, MINIMA, MAXIMA ALL SET UP NOW.C1C WE SAVED VAL00LZMZZYTADATADATADATADATADATAUES IN VEC1,VEC2 AND PLOT THAT WAY.C ALSO NOTE BOTH ALWAYS EXIST.C LENGTH=MIN0(IV1,IV2)C SAME IF NDIM=1 DO 20 N=1,LENGTH, IF(NDIM.EQ.1)CALL PLOT(VEC2(N),VEC1(N),1,1), IF(NDIM.NE.1)CALL PLOT(VEC1(N),VEC2(N),1,1) 20 CONTINUEC PLOT IT OUT NOW6C CHOOSE OPTION FOR FORMAT (SCALE, VARY HEIGHT, SHADE) X=RS IF(KLET.EQ.'V')X=RV IF(KLET.EQ.'Q')X=RQ IF(KLET.EQ.'H')X=RH CALL PLOT(X,0,2,1) CALL EXIT END#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY. C PCC GRAF9C NOTE: REQUIRES LUN 4 FOR TERMINAL OUTPUT AND LUN 5 FORC TERMINAL INPUT.C (GHASP USES 6 FOR LP:)C 4C GRAPHICS INTERFACE AND OUTPUT FROM PCC SPREADSHEETCC GLENN EVERHART, 23-JAN-83CC SYNTAX AND USAGE:CAC This program is designed to allow an interactive user to enterAC a single command line to the program which it will parse (usingDC the special version of VARSCN in GVARSCN) and allow graphic outputAC from PortaCalc saved spread sheets. The assumption made is thatDC the sheet has been saved with the PPN or PDN command. The filenameEC must appear in the command line and variables in the file (named asDC though the cursor had been in cell A1 when the PPN / PDN was done);C may be histogrammed or scatterplotted against each other.CBC The GHASP routine (a FORTRAN plot package for ordinary printers) C will be used for this version.CC Input syntax:2C NN or LL filename.ext V1:V2 [c] V3:V4 +switchesCC whereCJC an L in columns 1 or 2 takes log of 1st or 2nd range numbers (base 10),CBC filename appears at the start of the command line after a spaceEC and with a space following it and is a valid RSX or VMS file spec.CIC V1:V2 and V3:V4 are ranges. V3:V4 is optional and its presence impliesHC a scatter plot. These ranges must be either a row or a column or partJC of them. If only range V1:V2 is present, a histogram will be done usingJC the Scale option of GHASP to fit the plot onto a page. The plot will be/C set up for 100 bins horizontal, 50 vertical.KC If the V3:V4 range exists, the character Q in the [c] position (the []JC are required) will result in a "density" plot in which the program willKC attempt to print darker in filled bins. This is crude and the default isGC to use a 2 digit number. Again, plot size will be scaled to 50 by 50C bins.C LOGICAL*1 LINE(128),KLET,LLET INTEGER*4 NDLTY,NPLTS,MA(1000) INTEGER*4 NDIM,TITLE(19) LOGICAL*1 LTITL(76) LOGICAL*1 LLA,LLB EQUIVALENCE(TITLE(1),LTITL(1)) INTEGER*2 IXTR COMMON/IXTR/IXTR INTEGER*4 NBINX,NBINY REAL*4 XMIN,YMIN,DX,DY INTEGER*2 KK,LS1,LS2,LQ LOGICAL*1 IONM(50) LOGICAL*1 IONM1(52) EQUIVALENCE(IONM(1),IONM1(1)) REAL*4 VEC1(300),VEC2(300) COMMON/EXTRA/NDLTY,NPLTS,MA4 COMMON/PLOTS/NDIM,XMIN,YMIN,DX,DY,NBINX,NBINY,TITLE DATA RS/4H S/ DATA RV/4H V/ DATA RQ/4H Q/ DATA RH/4H H/ IXTR=0 CALL ASSIGN(4,'TI:') CALL ASSIGN(5,'TI:')100 NDLTY=1000 NPLTS=1c CALL ASSIGN(6,'LP:') ITTFG=0 WRITE(4,8000))8000 FORMAT('$Give output dataset name>') READ(5,2)IDL,IONM IONM(IDL+1)=0 CALL ASSIGN(6,IONM):C SEE IF HE USED A TERMINAL NAME. IF SO FLAG SMALL IMAGES.+ IF((IONM(1).EQ.'T'.OR.IONM(1).EQ.'t').AND. 1 IONM(3).EQ.':')ITTFG=1 IF(ITTFG.EQ.1)IXTR=1 WRITE(4,1) 1 FORMAT('$Enter plot command>') READ(5,2)LQ,LINE2 FORMAT(Q,128A1) LOGF1=0 LOGF2=0 NBFG1=0 IF(LINE(1).EQ.'P')NBFG1=1AC NBFG1 MAKES YMIN=0. THUS IF CMD STARTS WITH PP PLOT IS POSITIVE C DITTO NBFG2 NBFG2=0 IF(LINE(2).EQ.'P')NBFG2=1 IF(LINE(1).EQ.'L')LOGF1=1 IF(LINE(2).EQ.'L')LOGF2=1 LLA=LINE(1) LLB=LINE(2)/C 1ST 2 CHARS SAY LOG OR LOGLOG (IF 2DIM GRAPH)=C LOGF1 WILL TAKE LOG OF VEC1 AND LOGF2 WILL TAKE LOG OF VEC2 C IF SET.*C NOTE THAT THIS ALSO TAKES ABS OF NUMBER. LQ=LQ+1 LQ=MIN0(128,LQ) LINE(127)=0 LINE(128)=0 LINE(LQ)=0cc pr00MZZKZLZZ}ocess switches.$c switches are after trailing + signcc +hnnn = set heightc +wnnn = set width nhov=0 nwov=0 KK=INDEX(LINE,'+') IF(KK.GT.50)GOTO 6000+C SKIP THIS AREA IF NO SWITCHES ARE FLAGGED LINE(KK)=0$C SKIP SWITCHES IN LATER PROCESSING.Ac since we look for a number, first try to decode the number as ac 3 digit one... kkk=kk+2 lend1=kkk+30 call gn(kkk,lend1,num1,line),c num1 can be h or w depending on line(kk+1)4 if(line(kk+1).eq.'h'.or.line(kk+1).eq.'H')nhov=num14 if(line(kk+1).eq.'w'.or.line(kk+1).eq.'W')nwov=num16C GN RETURNS ITS LAST CHAR AFTER THE # IN ITS 1ST ARG. IKK=INDEX(LINE(KK+1),'+') IF(IKK.GT.30)GOTO 6000 KKK=IKK+KK c 2nd + sign flags 2nd switch... kk=kkk+2 lend1=kk+30 call gn(kk,lend1,num1,line)6 if(line(kkk+1).eq.'h'.or.line(kkk+1).eq.'H')nhov=num16 if(line(kkk+1).eq.'w'.or.line(kkk+1).eq.'W')nwov=num1c that should do it... 6000 CONTINUE LS1=INDEX(LINE,32)C CALL OUR PORTACALC INDEX FCN KK=LS1+1 LS2=INDEX(LINE(KK),32)0 IF(LS1.GT.40.OR.LS2.GT.40)WRITE(4,25)LS1,LS2,LQ225 FORMAT(' Spaces not seen. Find spaces at ',3I6,9 1 /,' Usage: PCG file V1:V2 [C] V3:V4[+hnnnwnnn] ')$ IF (LS1.GT.40.OR.LS2.GT.40)GOTO 100 LINE(LS2+LS1)=0 CALL ASSIGN(1,LINE(LS1+1))-C SET UP FILE 1 TO READ SAVED FILE FROM SHEET LINE(LS2+LS1)=32 LX=LS1+LS2+1C SCAN THE REST STARTING AT LX;C GRAB OFF OUR ARGUMENTS FIRST, THEN GET ON WITH THE PLOTS. CALL PLOT(0.,0.,-1,0))C HOWEVER INITIALIZE PLOT ARRAY EARLY ON. K1=LX K2=110, CALL GVSCAN(LINE,K1,K2,LSTCHR,ID1,ID2,IVLD) IF (IVLD.NE.0)GOTO 150 WRITE(4,3)/3 FORMAT(' First variable invalid. Try again.') GOTO 100 150 CONTINUE IF(LINE(LSTCHR).EQ.':')GOTO 160 WRITE(4,4)*4 FORMAT(' Colon missing in first range.') GOTO 100 160 CONTINUE K1=LSTCHR+1 K2=110- CALL GVSCAN(LINE,K1,K2,LSTCR,ID1B,ID2B,IVLD) IF (IVLD.NE.0)GOTO 164 WRITE(4,5)/5 FORMAT(' 2nd variable in 1st range invalid.') GOTO 100 164 CONTINUE( IF(ID1.NE.ID1B.AND.ID2.NE.ID2B)GOTO 166 GOTO 167166 WRITE(4,6):6 FORMAT(' Variable pair not in a row or column together') GOTO 100 167 CONTINUE KCR=1 IF(LINE(LSTCR).EQ.'[')GOTO 170 LSTCR=LSTCR+1 IF(LINE(LSTCR).EQ.'[')GOTO 170169 WRITE(4,7)KCR07 FORMAT(' Invalid format of [c] character ',I5) GOTO 100170 LSTCR=LSTCR+1 KCR=2 IF(LINE(LSTCR).EQ.']')GOTO 169 KLET=LINE(LSTCR) LSTCR=LSTCR+1C SCAN OVER NEXT ']' NOW KCR=3 IF(LINE(LSTCR).NE.']')GOTO 169 LSTCR=LSTCR+1DC IF WE PICK UP A VALID VARIABLE HERE, ALL'S WELL. OTHERWISE WE HAVE6C A HISTOGRAM AND WE'RE DONE (FOR THIS VERSION ANYHOW) K1=LSTCR K2=110 NDIM=1, CALL GVSCAN(LINE,K1,K2,LSTT,ID1C,ID2C,IVLD) IF(IVLD.EQ.0)GOTO 200>C IF HERE, THERE HAS TO BE 1 MORE VARIABLE DECODED AND TESTED. IF(LINE(LSTT).EQ.':')GOTO 175 WRITE(4,8)+8 FORMAT(' Invalid second variable range.') GOTO 100 175 CONTINUE K1=LSTT+1 K2=110- CALL GVSCAN(LINE,K1,K2,LSTCC,ID1D,ID2D,IVLD) IF(IVLD.NE.0)GOTO 180 WRITE(4,9).9 FORMAT(' Invalid 2nd variable of 2nd range') GOTO 100 180 CONTINUEC NOW ALL DECODED. NDIM=2/C NOW WE HAVE SET UP THE DIMENSION OF OUR PLOT. 200 CONTINUEBC NOW IT'S POSSIBLE TO READ IN THE FILE ONCE TO NORMALIZE IT, THEN#C REWIND AND READ AGAIN TO PLOT IT. XMIN=99.E10 YMIN=99.E10 IF(NBFG1.NE.0)YMIN=0. IF(NBFG2.NE.0)XMIN=0.DC SET TERRIBLY LARGE X,Y MINS UNLESS POSITIVE PLOT, THEN START AT 0.C (WE'LL FIX THEM UP!) XMAX=-99.E10 YMAX=-99.E10?C SET UP MAXIMA ALSO IN BOGUS WAY. THIS ENSURES WHATEVER WE GET(C WILL BE BETTER THAN OUR "FIRST GUESS".@C INSERT TITLE AS OUR COMMAND LINE, FOR INTERNAL DOCUMENTATION.C (LX THRU END) DO 11 N=1,7811 LTITL(N)=32 LX=LS1C INCLUDE FILENAME TOO. DO 12 N=1,50 LTITL(N)=LINE(LX) IF(LX.GT.76)GOTO 13 12 LX=LX+1C FLAG LOG SCALE FLAGS IN TITLE IF (LLA.EQ.'L')TITLE(18)='LOGX' IF (LLB.EQ.'L')TITLE(19)='LOGY'13 READ(1,10)LINE10 FORMAT(128A1) IF(NDIM.EQ.2)GOTO 17 XMIN=0. XMIN2=0. ICNT=0 17 CONTINUE0C IGNORE TITLE, JUST READ IT IN, THEN FORGET00M[N[ZYTADATADATADATADATADATA IT. IV1=1 IV2=1 220 CONTINUE@C NOTE WE READ IN THE NUMBER IN NUMERIC FORMAT. EASIER THAT WAY. IRRW=0 ICCL=0/ READ(1,14,END=250,ERR=224)LET1,IRRW,ICCL,XYVAL14 FORMAT(A1,I5,X,I5,X,E50.35)?224 READ(1,15,END=250,ERR=225)LFVLD,(LINE(IV),IV=120,128),KKTYP15 FORMAT(I3,X,9A1,X,I5) 225 CONTINUE9C READS IN AN ENTRY OF SAVED SHEET. TEST IF IN OUR RANGE.9 IF(IRRW.GE.ID1.AND.IRRW.LE.ID1B.AND.ICCL.GE.ID2.AND.ICCL 1 .LE.ID2B)GOTO 221 IF(NDIM.NE.2)GOTO 2232 IF(IRRW.GE.ID1C.AND.IRRW.LE.ID1D.AND.ICCL.GE.ID2C" 1 .AND.ICCL.LE.ID2D)GOTO 222 GOTO 223 221 CONTINUE2C NUMBER IS IN FIRST RANGE TO PLOT. FIGURE IT OUT.6 IF(LOGF1.NE.0.AND.XYVAL.NE.0)XYVAL=ALOG10(ABS(XYVAL)) VEC1(IV1)=XYVAL IV1=IV1+1 IF(NDIM.EQ.1)ICNT=ICNT+1 IF(NDIM.EQ.1)XMAX=ICNT IF(NDIM.EQ.1)GOTO 18 IF(XYVAL.LT.XMIN)XMIN=XYVAL IF(XYVAL.GT.XMAX)XMAX=XYVAL GOTO 223 18 CONTINUE IF(XYVAL.LT.YMIN)YMIN=XYVAL IF(XYVAL.GT.YMAX)YMAX=XYVAL VEC2(IV2)=FLOAT(ICNT) IV2=IV2+1 GOTO 223 222 CONTINUE IF(NDIM.EQ.1)GOTO 2236 IF(LOGF2.NE.0.AND.XYVAL.NE.0)XYVAL=ALOG10(ABS(XYVAL))%C NUMBER IS IN SECOND RANGE SELECTED.C KNOW IT'S A Y COORD HERE. VEC2(IV2)=XYVAL IV2=IV2+1 IF(XYVAL.LT.YMIN)YMIN=XYVAL IF(XYVAL.GT.YMAX)YMAX=XYVAL 223 CONTINUE GOTO 220 250 CONTINUEC NOW MINIMA,MAXIMA ALL SET UP.* IF(XMIN.GE.XMAX.OR.YMIN.GE.YMAX)CALL EXIT$C EXIT IF NOTHING IS THERE TO GRAPH. XRANGE=XMAX-XMIN YRANGE=YMAX-YMINC AMXRG=100. AMYRG=50. IF(ITTFG.EQ.1)AMXRG=60. IF(ITTFG.EQ.1)AMYRG=20. XNUM=AMXRG/ IF(NDIM.EQ.1.AND.(XRANGE.LT.AMXRG))XNUM=XRANGE YNUM=AMYRG IF(NDIM.EQ.2)XNUM=AMYRG8C HANDLE SWITCHES THAT OVERRIDE HEIGHT AND WIDTH TO USE. IF(NHOV.NE.0)YNUM=NHOV IF(NWOV.NE.0)XNUM=NWOV DX=XRANGE/XNUM DY=YRANGE/YNUM( IF(.NOT.(NDIM.EQ.1.AND.DX.LT.1))GOTO 19$C DX RESET OVER-RIDDEN BY +W SWITCH. IF(NWOV.EQ.0)DX=1. 19 CONTINUE NBINX=XNUM NBINY=YNUM CALL PLOT(RV,0.,0,1)C INITIALIZE PLOT&C NDIM, MINIMA, MAXIMA ALL SET UP NOW.C1C WE SAVED VALUES IN VEC1,VEC2 AND PLOT THAT WAY.C ALSO NOTE BOTH ALWAYS EXIST.C LENGTH=MIN0(IV1,IV2)C SAME IF NDIM=1 DO 20 N=1,LENGTH, IF(NDIM.EQ.1)CALL PLOT(VEC2(N),VEC1(N),1,1), IF(NDIM.NE.1)CALL PLOT(VEC1(N),VEC2(N),1,1) 20 CONTINUEC PLOT IT OUT NOW6C CHOOSE OPTION FOR FORMAT (SCALE, VARY HEIGHT, SHADE) X=RS IF(KLET.EQ.'V')X=RV IF(KLET.EQ.'Q')X=RQ IF(KLET.EQ.'H')X=RH CALL PLOT(X,0,2,1) CALL EXIT ENDC HELP PAGE INCLUDE FILE#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY.4C PCHELP.FTN INCLUDE FILE (INCLUDED IN ROUTINE HELP)2C FOR LEVEL 1, RETURN AND DISPLAY OLD HELP SCREEN.>C FOR OTHER LEVELS (IN LVL VARIABLE) DO HELP DISPLAY. AT ENTRY<C CURSOR IS POSITIONED AT 1,1. ON PASSING TO 9000, CURSOR ISC POSITIONED AT 24,1C CALL UVT100(CUP,7,1)" IF(LVL.LT.0.OR.LVL.GT.9)GOTO 1100 LVLL=LVL+14 GOTO (1000,1100,1200,1300,1400,1500,1600,1700,1800, 1 1900)LVLL 1000 CONTINUEC HELP 0 CALL UVT100(CUP,1,1) WRITE(6,201) CALL UVT100(CUP,2,1) WRITE(6,202) CALL UVT100(CUP,3,1) WRITE(6,203) CALL UVT100(CUP,4,1) WRITE(6,204) CALL UVT100(CUP,5,1) WRITE(6,205) CALL UVT100(CUP,6,1) WRITE(6,206) CALL UVT100(CUP,7,1) WRITE(6,207) CALL UVT100(CUP,8,1) WRITE(6,208) CALL UVT100(CUP,9,1) WRITE(6,209) CALL UVT100(CUP,10,1) WRITE(6,210) CALL UVT100(CUP,11,1) WRITE(6,211) CALL UVT100(CUP,12,1) WRITE(6,212) GOTO 9500 1200 CONTINUEC HELP 2 CALL UVT100(CUP,1,1) WRITE(6,213) CALL UVT100(CUP,2,1) WRITE(6,214) CALL UVT100(CUP,3,1) WRITE(6,215) CALL UVT100(CUP,4,1) WRITE(6,216) CALL UVT100(CUP,5,1) WRITE(6,217) CALL UVT100(CUP,6,1) WRITE(6,218) CALL UVT100(CUP,7,1) WRITE(6,219) CALL UVT100(CUP,8,1) WRITE(6,220) CALL UVT100(CUP,9,1) WRITE(6,221) CALL UVT100(CUP,10,1) WRITE(6,222) CALL 00N [ZKZLZZ}UVT100(CUP,11,1) WRITE(6,223) CALL UVT100(CUP,12,1) WRITE(6,224) CALL UVT100(CUP,13,1) WRITE(6,225) CALL UVT100(CUP,14,1) WRITE(6,226) CALL UVT100(CUP,15,1) WRITE(6,227) CALL UVT100(CUP,16,1) WRITE(6,228) CALL UVT100(CUP,17,1) WRITE(6,229) CALL UVT100(CUP,18,1) WRITE(6,230) CALL UVT100(CUP,19,1) WRITE(6,231) CALL UVT100(CUP,20,1) WRITE(6,232) CALL UVT100(CUP,21,1) WRITE(6,233) CALL UVT100(CUP,22,1) WRITE(6,234) CALL UVT100(CUP,23,1) WRITE(6,235) GOTO 9500 1300 CONTINUEC HELP 3 CALL UVT100(CUP,1,1) WRITE(6,236) CALL UVT100(CUP,2,1) WRITE(6,237) CALL UVT100(CUP,3,1) WRITE(6,238) CALL UVT100(CUP,4,1) WRITE(6,239) CALL UVT100(CUP,5,1) WRITE(6,240) CALL UVT100(CUP,6,1) WRITE(6,241) CALL UVT100(CUP,7,1) WRITE(6,242) CALL UVT100(CUP,8,1) WRITE(6,243) CALL UVT100(CUP,9,1) WRITE(6,244) CALL UVT100(CUP,10,1) WRITE(6,245) CALL UVT100(CUP,11,1) WRITE(6,246) CALL UVT100(CUP,12,1) WRITE(6,247) CALL UVT100(CUP,13,1) WRITE(6,248) CALL UVT100(CUP,14,1) WRITE(6,249) CALL UVT100(CUP,15,1) WRITE(6,250) CALL UVT100(CUP,16,1) WRITE(6,251) CALL UVT100(CUP,17,1) WRITE(6,252) CALL UVT100(CUP,18,1) WRITE(6,253) CALL UVT100(CUP,19,1) WRITE(6,254) GOTO 9500 1400 CONTINUEC HELP 4 CALL UVT100(CUP,1,1) WRITE(6,255) CALL UVT100(CUP,2,1) WRITE(6,256) CALL UVT100(CUP,3,1) WRITE(6,257) CALL UVT100(CUP,4,1) WRITE(6,258) CALL UVT100(CUP,5,1) WRITE(6,259) CALL UVT100(CUP,6,1) WRITE(6,260) CALL UVT100(CUP,7,1) WRITE(6,261) CALL UVT100(CUP,8,1) WRITE(6,262) CALL UVT100(CUP,9,1) WRITE(6,263) CALL UVT100(CUP,10,1) WRITE(6,264) CALL UVT100(CUP,11,1) WRITE(6,265) CALL UVT100(CUP,12,1) WRITE(6,266) CALL UVT100(CUP,13,1) WRITE(6,267) CALL UVT100(CUP,14,1) WRITE(6,268) CALL UVT100(CUP,15,1) WRITE(6,269) CALL UVT100(CUP,16,1) WRITE(6,270) CALL UVT100(CUP,17,1) WRITE(6,271) CALL UVT100(CUP,18,1) WRITE(6,272) CALL UVT100(CUP,19,1) WRITE(6,273) CALL UVT100(CUP,20,1) WRITE(6,274) CALL UVT100(CUP,21,1) WRITE(6,275) CALL UVT100(CUP,22,1) WRITE(6,276) CALL UVT100(CUP,23,1) WRITE(6,277) GOTO 9500 1500 CONTINUEC HELP 5 CALL UVT100(CUP,1,1) WRITE(6,278) CALL UVT100(CUP,2,1) WRITE(6,279) CALL UVT100(CUP,3,1) WRITE(6,280) CALL UVT100(CUP,4,1) WRITE(6,281) CALL UVT100(CUP,5,1) WRITE(6,282) CALL UVT100(CUP,6,1) WRITE(6,283) CALL UVT100(CUP,7,1) WRITE(6,284) CALL UVT100(CUP,8,1) WRITE(6,285) CALL UVT100(CUP,9,1) WRITE(6,286) CALL UVT100(CUP,10,1) WRITE(6,287) CALL UVT100(CUP,11,1) WRITE(6,288) CALL UVT100(CUP,12,1) WRITE(6,289) CALL UVT100(CUP,13,1) WRITE(6,290) GOTO 9500 1600 CONTINUEC HELP 6 CALL UVT100(CUP,1,1) WRITE(6,291) CALL UVT100(CUP,2,1) WRITE(6,292) CALL UVT100(CUP,3,1) WRITE(6,293) CALL UVT100(CUP,4,1) WRITE(6,294) CALL UVT100(CUP,5,1) WRITE(6,295) CALL UVT100(CUP,6,1) WRITE(6,296) CALL UVT100(CUP,7,1) WRITE(6,297) CALL UVT100(CUP,8,1) WRITE(6,298) CALL UVT100(CUP,9,1) WRITE(6,299) CALL UVT100(CUP,10,1) WRITE(6,300) CALL UVT100(CUP,11,1) WRITE(6,301) CALL UVT100(CUP,12,1) WRITE(6,302) CALL UVT100(CUP,13,1) WRITE(6,303) CALL UVT100(CUP,14,1) WRITE(6,304) CALL UVT100(CUP,15,1) WRITE(6,305) CALL UVT100(CUP,16,1) WRITE(6,306) CALL UVT100(CUP,17,1) WRITE(6,307) GOTO 9500 1700 CONTINUEC HELP 7 CALL UVT100(CUP,1,1) WRITE(6,308) CALL UVT100(CUP,2,1) WRITE(6,309) CALL UVT100(CUP,3,1) WRITE(6,310) CALL UVT100(CUP,4,1) WRITE(6,311) CALL UVT100(CUP,5,1) WRITE(6,312) CALL UVT100(CUP,6,1) WRITE(6,313) CALL UVT100(CUP,7,1) WRITE(6,314) CALL UVT100(CUP,8,1) WRITE(6,315) CALL UVT100(CUP,9,1) WRITE(6,316) CALL UVT100(CUP,10,1) WRITE(6,317) CALL UVT100(CUP,11,1) WRITE(6,318) CALL UVT100(CUP,12,1) WRITE(6,319) CALL UVT100(CUP,13,1) WRITE(600N[[ZYTADATADATADATADATADATA,320) CALL UVT100(CUP,14,1) WRITE(6,321) CALL UVT100(CUP,15,1) WRITE(6,322) CALL UVT100(CUP,16,1) WRITE(6,323) CALL UVT100(CUP,17,1) WRITE(6,324) GOTO 9500 1800 CONTINUEC HELP 8 CALL UVT100(CUP,1,1) WRITE(6,325) CALL UVT100(CUP,2,1) WRITE(6,326) CALL UVT100(CUP,3,1) WRITE(6,327) CALL UVT100(CUP,4,1) WRITE(6,328) CALL UVT100(CUP,5,1) WRITE(6,329) CALL UVT100(CUP,6,1) WRITE(6,330) CALL UVT100(CUP,7,1) WRITE(6,331) CALL UVT100(CUP,8,1) WRITE(6,332) CALL UVT100(CUP,9,1) WRITE(6,333) CALL UVT100(CUP,10,1) WRITE(6,334) CALL UVT100(CUP,11,1) WRITE(6,335) CALL UVT100(CUP,12,1) WRITE(6,336) CALL UVT100(CUP,13,1) WRITE(6,337) CALL UVT100(CUP,14,1) WRITE(6,338) GOTO 9500 1900 CONTINUEC HELP 9/C USE UNIT 9 FOR KEYPAD PICTURE ON VAX TO AVOIDC CONFLICT WITH W COMMAND. CLOSE(UNIT=9)EC COMMENT OUT THE FDBSET CALL IF IT DOESN'T DO ANY GOOD OR IS ILLEGAL" CALL FDBSET(9,'READONLY','SHARE') CALL ASSIGN(9,'DK:KEYPAD.PIC') DO 1903 JJ=1,23# READ(9,1901,END=1902,ERR=1902)FORM1901 FORMAT(40A1,80A1) CALL UVT100(CUP,JJ,1) WRITE(6,1901)FORM 1903 CONTINUE 1902 CONTINUE CLOSE(UNIT=9)C (NO HELP 9 YET... JUST RETURN#C SKIP OUT PAST DISPLAY OF SCREEN 19500 GOTO 90001100 GOTO 9100H201 FORMAT('To get HELP use the command Hn where n is 0 thru 8 for H', 1 'ELP 0')!202 FORMAT(' through HELP 8.')$203 FORMAT('HELP 0 - This screen')C204 FORMAT('HELP 1 - Summary of many PortaCalc commands (terse)')-205 FORMAT('HELP 2 - Data Entry / Editing'),206 FORMAT('HELP 3 - Calculation Control')6207 FORMAT('HELP 4 - Cursor Motion and Positioning')"208 FORMAT('HELP 5 - Cell Copy')8209 FORMAT('HELP 6 - Add/Subtract Absolute Rows/Cols')>210 FORMAT('HELP 7 - Add/Subtract Relocting, Rows or Cols.')A211 FORMAT('HELP 8 - Change Display Size, Col Size, Load Data')1212 FORMAT('HELP 9 - Keypad Diagram for VT100')C-213 FORMAT('HELP 2 - Data Entry / Editing');214 FORMAT('E expression Enter expression into cell.')@215 FORMAT('Formulas available (+ SQRT,SIN,COS,LOG,EXP,ATAN)')<216 FORMAT('SUM[variables] Sum of all arguments')8217 FORMAT('MAX[variables] Max of arguments')8218 FORMAT('MIN[variables] Min of arguments')<219 FORMAT('AVG[variables] Average of arguments')B220 FORMAT('STD[variables] Standard deviation squared')9221 FORMAT('IF [V1.rel.V2] statement | else-statement')H222 FORMAT('In the first 5 cases, arguments are variable names separ', 1 'ated by')H223 FORMAT('commas, or variable ranges, or mixtures separaged by col', 1 'umns.').224 FORMAT('".REL." is any of the 6 forms:')225 FORMAT('.EQ. Equal')!226 FORMAT('.NE. Not Equal')9227 FORMAT('.GT. Greater than (V1 greater than V2)')3228 FORMAT('.LT. Less than (V1 less than V2)');229 FORMAT('.GE. Greater than or Equal to (V1 >= V2)')8230 FORMAT('.LE. Less than or Equal to (V1 =< V2)')H231 FORMAT('*XV filename V1 Extract value at cell V1 in save', 1 'd')A232 FORMAT(' sheet stored in filename.')D233 FORMAT('ED `string1`string2` Replace string1 with string2')F234 FORMAT(' in current cell formula. Either' 1 )F235 FORMAT(' string may be null if desired.')C,236 FORMAT('HELP 3 - Calculation Control')5237 FORMAT('R Recalculate all of the sheet.')F238 FORMAT('RM Recalculate manually only until R command given' 1 )H239 FORMAT('RAF Recalculate sheet, without constant recalculatio', 1 'n')H240 FORMAT('K Drop into Calc program straight. *E retu', 1 'rns to sheet')9241 FORMAT('X Exit to operating system.')A242 FORMAT('V Redraw screen with normal formats')B243 FORMAT('VF Redraw screen showing all formulas')H244 FORMAT('VM Dont redraw screen until a V or VF is gi', 1 '00N[ZKZLZZ}ven')0245 FORMAT('ZA Zero whole sheet')H246 FORMAT('ZE V1:V2 Zero variables in a row or column in ran', 1 'ge from')H247 FORMAT(' cell V1 to cell V2 (V1,V2 = name', 1 's of cells)')H248 FORMAT('@filespec Read filespec and execute commands as th', 1 'ough'))249 FORMAT(' typed in.')G250 FORMAT('PD Put out current Display sheet (Formulas)' 1 )H251 FORMAT('PP Put out current Physical sheet (Formulas', 1 ')')F252 FORMAT('PDN Put out current Display sheet (Numbers)' 1 )G253 FORMAT('PPN Put out current Physical sheet (Numbers)' 1 )>254 FORMAT('W Write screen to hardcopy file.')C6255 FORMAT('HELP 4 - Cursor Motion and Positioning')G256 FORMAT('L variable-name Position cursor at variable-name' 1 )5257 FORMAT('M1 (Move up after Enter)')7258 FORMAT('M2 (Move down after Enter)')7259 FORMAT('M3 (Move left after Enter)')8260 FORMAT('M4 (Move right after Enter)'))261 FORMAT('1 (Move up)')+262 FORMAT('2 (Move down)')+263 FORMAT('3 (Move left)'),264 FORMAT('4 (Move right)')C265 FORMAT('OA variable Reset origin of display to variable')H266 FORMAT('OR variable Reset display down and right to start wi', 1 'th variable,')H267 FORMAT(' changing only region down and right of c', 1 'ursor')H268 FORMAT('DL V1:V2 Rn:m point at display coordinates (n,m) (col,', 1 'row)')H269 FORMAT(' and, going left to right along a Row, co', 1 'py in')H270 FORMAT(' variables V1 through V2 (actually, point', 1 ' those')H271 FORMAT(' display sheet cells at variables V1 thru', 1 ' V2).')H272 FORMAT('DL V1:V2 Cn:m point at display coordinates (n,m) (col,', 1 'row)')H273 FORMAT(' and, going top to bottom along a Column,', 1 ' copy in')H274 FORMAT(' variables V1 through V2 (actually, point', 1 ' those')H275 FORMAT(' display sheet cells at variables V1 thru', 1 ' V2).')H276 FORMAT('DF V1:V2 [format] Set display format of range V1:V', 1 '2 to format')H277 FORMAT(' (format A means display formula.', 1 ')')C"278 FORMAT('HELP 5 - Cell Copy')H279 FORMAT('CA V1:V2 V3:V4 Copy all cell attributes from V1', 1 ':V2')1280 FORMAT(' to V3:V4.')@281 FORMAT('CV V1:V2 V3:V4 Copy numeric values only')A282 FORMAT('CD V1:V2 V3:V4 Copy Display Formats only')H283 FORMAT('CF V1:V2 V3:V4 Copy Formulas only (no relocatio', 1 'n)')H284 FORMAT('CR V1:V2 V3:V4 Copy all cell attributes as in C', 1 'A but')H285 FORMAT(' relocate cell names to new locat', 1 'ion')H286 FORMAT(' from old one. Only relocate name', 1 's right')H287 FORMAT(' of or below the cursor or on sam', 1 'e row/col')H288 FORMAT(' with cursor (cells above or left', 1 ' of cursor');289 FORMAT(' are NOT relocated).')E290 FORMAT(' If V2 is missing, V1 is replicated to V3:V4 range.')C8291 FORMAT('HELP 6 - Add/Subtract Absolute Rows/Cols')F292 FORMAT('AA number R Add "number" rows ahead of the current')H293 FORMAT(' physical position, moving all cells belo', 1 'w')H294 FORMAT(' the current cell down by "number" rows a', 1 'nd')H295 FORMAT(' losing the physical sheet`s bottom "numb', 1 'er"')H296 FORMAT(' rows` contents, NOT adjusting variable r', 1 'eferences')H297 FORMAT(' where the variables are in the moved ran',00N"[O)[ZYTADATADATADATADATADATA 1 'ge')H298 FORMAT(' and are not the position independent (P#', 1 '# or D##'),299 FORMAT(' forms) type.')H300 FORMAT('AA number C Add "number" columns ahead of the curren', 1 't')H301 FORMAT(' physical position, moving all cells righ', 1 't of')H302 FORMAT(' the current cell right by "number" colum', 1 'ns and')H303 FORMAT(' losing the physical sheet`s bottom "numb', 1 'er"')H304 FORMAT(' columns` contents, NOT adjusting variabl', 1 'e references')H305 FORMAT(' where the variables are in the moved ran', 1 'ge')H306 FORMAT(' and are not the position independent (P#', 1 '# or D##'),307 FORMAT(' forms) type.')C>308 FORMAT('HELP 7 - Add/Subtract Relocting, Rows or Cols.')F309 FORMAT('AR number R Add "number" rows ahead of the current')H310 FORMAT(' physical position, moving all cells belo', 1 'w')H311 FORMAT(' the current cell down by "number" rows a', 1 'nd')H312 FORMAT(' losing the physical sheet`s bottom "numb', 1 'er"')H313 FORMAT(' rows` contents, adjusting variable refer', 1 'ences')H314 FORMAT(' where the variables are in the moved ran', 1 'ge')H315 FORMAT(' and are not the position independent (P#', 1 '# or D##'),316 FORMAT(' forms) type.')H317 FORMAT('AR number C Add "number" columns ahead of the curren', 1 't')H318 FORMAT(' physical position, moving all cells righ', 1 't of')H319 FORMAT(' the current cell right by "number" colum', 1 'ns and')H320 FORMAT(' losing the physical sheet`s bottom "numb', 1 'er"')H321 FORMAT(' columns` contents, adjusting variable re', 1 'ferences')H322 FORMAT(' where the variables are in the moved ran', 1 'ge')H323 FORMAT(' and are not the position independent (P#', 1 '# or D##'),324 FORMAT(' forms) type.')CA325 FORMAT('HELP 8 - Change Display Size, Col Size, Load Data')H326 FORMAT('DW N,M Set column N on display to be M characte', 1 'rs wide')H327 FORMAT('DB n,m Set number of columns displayed on scree', 1 'n')H328 FORMAT(' to n, number of rows displayed t', 1 'o m.')H329 FORMAT('GD Reload sheet down/right onto display coo', 1 'rds.')H330 FORMAT('GP Reload sheet down/right onto physical co', 1 'ords.')CF331 FORMAT('< Rewind the current Portacalc input file' 1 )=332 FORMAT('* any text Comment. (For command files.)')SH333 FORMAT('Hn Display a screen of help. n may be 0 to 9, defa', 1 'ult 0.')H334 FORMAT('F filename/nnnn Read filename, skipping nnnn lin', 1 'es')H335 FORMAT(' if the "/nnnn" is there, and loa', 1 'd')PH336 FORMAT(' contents onto the currently disp', 1 'layed')IH337 FORMAT(' screen, broken into columns as t', 1 'he')A338 FORMAT(' current screen is set up.') 9100 CONTINUEC HELP PAGE INCLUDE FILE#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY.4C PCHELP.FTN INCLUDE FILE (INCLUDED IN ROUTINE HELP)2C FOR LEVEL 1, RETURN AND DISPLAY OLD HELP SCREEN.>C FOR OTHER LEVELS (IN LVL VARIABLE) DO HELP DISPLAY. AT ENTRY<C CURSOR IS POSITIONED AT 1,1. ON PASSING TO 9000, CURSOR ISC POSITIONED AT 24,1C CALL UVT100(CUP,7,1)" IF(LVL.LT.0.OR.LVL.GT.9)GOTO 1100 LVLL=LVL+1400O*[ZKZLZZ} GOTO (1000,1100,1200,1300,1400,1500,1600,1700,1800, 1 1900)LVLL 1000 CONTINUEC HELP 0 CALL UVT100(CUP,1,1) WRITE(6,201) CALL UVT100(CUP,2,1) WRITE(6,202) CALL UVT100(CUP,3,1) WRITE(6,203) CALL UVT100(CUP,4,1) WRITE(6,204) CALL UVT100(CUP,5,1) WRITE(6,205) CALL UVT100(CUP,6,1) WRITE(6,206) CALL UVT100(CUP,7,1) WRITE(6,207) CALL UVT100(CUP,8,1) WRITE(6,208) CALL UVT100(CUP,9,1) WRITE(6,209) CALL UVT100(CUP,10,1) WRITE(6,210) CALL UVT100(CUP,11,1) WRITE(6,211)D CALL UVT100(CUP,12,1)D WRITE(6,212) GOTO 9500 1200 CONTINUEC HELP 2 CALL UVT100(CUP,1,1) WRITE(6,213) CALL UVT100(CUP,2,1) WRITE(6,214) CALL UVT100(CUP,3,1) WRITE(6,215) CALL UVT100(CUP,4,1) WRITE(6,216) CALL UVT100(CUP,5,1) WRITE(6,217) CALL UVT100(CUP,6,1) WRITE(6,218) CALL UVT100(CUP,7,1) WRITE(6,219) CALL UVT100(CUP,8,1) WRITE(6,220) CALL UVT100(CUP,9,1) WRITE(6,221) CALL UVT100(CUP,10,1) WRITE(6,222) CALL UVT100(CUP,11,1) WRITE(6,223) CALL UVT100(CUP,12,1) WRITE(6,224) CALL UVT100(CUP,13,1) WRITE(6,225) CALL UVT100(CUP,14,1) WRITE(6,226) CALL UVT100(CUP,15,1) WRITE(6,227) CALL UVT100(CUP,16,1) WRITE(6,228) CALL UVT100(CUP,17,1) WRITE(6,229) CALL UVT100(CUP,18,1) WRITE(6,230) CALL UVT100(CUP,19,1) WRITE(6,231) CALL UVT100(CUP,20,1) WRITE(6,232) CALL UVT100(CUP,21,1) WRITE(6,233) CALL UVT100(CUP,22,1) WRITE(6,234) CALL UVT100(CUP,23,1) WRITE(6,235) GOTO 9500 1300 CONTINUEC HELP 3 CALL UVT100(CUP,1,1) WRITE(6,236) CALL UVT100(CUP,2,1) WRITE(6,237) CALL UVT100(CUP,3,1) WRITE(6,238) CALL UVT100(CUP,4,1) WRITE(6,239) CALL UVT100(CUP,5,1) WRITE(6,240) CALL UVT100(CUP,6,1) WRITE(6,241) CALL UVT100(CUP,7,1) WRITE(6,242) CALL UVT100(CUP,8,1) WRITE(6,243) CALL UVT100(CUP,9,1) WRITE(6,244) CALL UVT100(CUP,10,1) WRITE(6,245) CALL UVT100(CUP,11,1) WRITE(6,246) CALL UVT100(CUP,12,1) WRITE(6,247) CALL UVT100(CUP,13,1) WRITE(6,248) CALL UVT100(CUP,14,1) WRITE(6,249) CALL UVT100(CUP,15,1) WRITE(6,250) CALL UVT100(CUP,16,1) WRITE(6,251) CALL UVT100(CUP,17,1) WRITE(6,252) CALL UVT100(CUP,18,1) WRITE(6,253) CALL UVT100(CUP,19,1) WRITE(6,254) GOTO 9500 1400 CONTINUEC HELP 4 CALL UVT100(CUP,1,1) WRITE(6,255) CALL UVT100(CUP,2,1) WRITE(6,256) CALL UVT100(CUP,3,1) WRITE(6,257) CALL UVT100(CUP,4,1) WRITE(6,258) CALL UVT100(CUP,5,1) WRITE(6,259) CALL UVT100(CUP,6,1) WRITE(6,260) CALL UVT100(CUP,7,1) WRITE(6,261) CALL UVT100(CUP,8,1) WRITE(6,262) CALL UVT100(CUP,9,1) WRITE(6,263) CALL UVT100(CUP,10,1) WRITE(6,264) CALL UVT100(CUP,11,1) WRITE(6,265) CALL UVT100(CUP,12,1) WRITE(6,266) CALL UVT100(CUP,13,1) WRITE(6,267) CALL UVT100(CUP,14,1) WRITE(6,268) CALL UVT100(CUP,15,1) WRITE(6,269) CALL UVT100(CUP,16,1) WRITE(6,270) CALL UVT100(CUP,17,1) WRITE(6,271) CALL UVT100(CUP,18,1) WRITE(6,272) CALL UVT100(CUP,19,1) WRITE(6,273) CALL UVT100(CUP,20,1) WRITE(6,274) CALL UVT100(CUP,21,1) WRITE(6,275) CALL UVT100(CUP,22,1) WRITE(6,276) CALL UVT100(CUP,23,1) WRITE(6,277) GOTO 9500 1500 CONTINUEC HELP 5 CALL UVT100(CUP,1,1) WRITE(6,278) CALL UVT100(CUP,2,1) WRITE(6,279) CALL UVT100(CUP,3,1) WRITE(6,280) CALL UVT100(CUP,4,1) WRITE(6,281) CALL UVT100(CUP,5,1) WRITE(6,282) CALL UVT100(CUP,6,1) WRITE(6,283) CALL UVT100(CUP,7,1) WRITE(6,284) CALL UVT100(CUP,8,1) WRITE(6,285) CALL UVT100(CUP,9,1) WRITE(6,286) CALL UVT100(CUP,10,1) WRITE(6,287) CALL UVT100(CUP,11,1) WRITE(6,288) CALL UVT100(CUP,12,1) WRITE(6,289) CALL UVT100(CUP,13,1) WRITE(6,290) GOTO 9500 1600 CONTINUEC HELP 6 CALL UVT100(CUP,1,1) WRITE(6,291) CALL UVT100(CUP,2,1) WRITE(6,292) CALL UVT100(CUP,3,1) WRITE(6,293) CALL UVT100(CUP,4,1) WRITE(6,294) CALL UVT100(CUP,5,1) WRITE(6,295) CAL00O2[)[ZYTADATADATADATADATADATAL UVT100(CUP,6,1) WRITE(6,296) CALL UVT100(CUP,7,1) WRITE(6,297) CALL UVT100(CUP,8,1) WRITE(6,298) CALL UVT100(CUP,9,1) WRITE(6,299) CALL UVT100(CUP,10,1) WRITE(6,300) CALL UVT100(CUP,11,1) WRITE(6,301) CALL UVT100(CUP,12,1) WRITE(6,302) CALL UVT100(CUP,13,1) WRITE(6,303) CALL UVT100(CUP,14,1) WRITE(6,304) CALL UVT100(CUP,15,1) WRITE(6,305) CALL UVT100(CUP,16,1) WRITE(6,306) CALL UVT100(CUP,17,1) WRITE(6,307) GOTO 9500 1700 CONTINUEC HELP 7 CALL UVT100(CUP,1,1) WRITE(6,308) CALL UVT100(CUP,2,1) WRITE(6,309) CALL UVT100(CUP,3,1) WRITE(6,310) CALL UVT100(CUP,4,1) WRITE(6,311) CALL UVT100(CUP,5,1) WRITE(6,312) CALL UVT100(CUP,6,1) WRITE(6,313) CALL UVT100(CUP,7,1) WRITE(6,314) CALL UVT100(CUP,8,1) WRITE(6,315) CALL UVT100(CUP,9,1) WRITE(6,316) CALL UVT100(CUP,10,1) WRITE(6,317) CALL UVT100(CUP,11,1) WRITE(6,318) CALL UVT100(CUP,12,1) WRITE(6,319) CALL UVT100(CUP,13,1) WRITE(6,320) CALL UVT100(CUP,14,1) WRITE(6,321) CALL UVT100(CUP,15,1) WRITE(6,322) CALL UVT100(CUP,16,1) WRITE(6,323) CALL UVT100(CUP,17,1) WRITE(6,324) GOTO 9500 1800 CONTINUEC HELP 8 CALL UVT100(CUP,1,1) WRITE(6,325) CALL UVT100(CUP,2,1) WRITE(6,326) CALL UVT100(CUP,3,1) WRITE(6,327) CALL UVT100(CUP,4,1) WRITE(6,328) CALL UVT100(CUP,5,1) WRITE(6,329) CALL UVT100(CUP,6,1) WRITE(6,330) CALL UVT100(CUP,7,1) WRITE(6,331) CALL UVT100(CUP,8,1) WRITE(6,332) CALL UVT100(CUP,9,1) WRITE(6,333) CALL UVT100(CUP,10,1) WRITE(6,334) CALL UVT100(CUP,11,1) WRITE(6,335) CALL UVT100(CUP,12,1) WRITE(6,336) CALL UVT100(CUP,13,1) WRITE(6,337) CALL UVT100(CUP,14,1) WRITE(6,338) GOTO 9500 1900 CONTINUEC HELP 9/C USE UNIT 9 FOR KEYPAD PICTURE ON VAX TO AVOIDC CONFLICT WITH W COMMAND. CLOSE(UNIT=9)EC COMMENT OUT THE FDBSET CALL IF IT DOESN'T DO ANY GOOD OR IS ILLEGAL# CALL ASSIGN(9,'SY:[DK]KEYPAD.PIC') DO 1903 JJ=1,23# READ(9,1901,END=1902,ERR=1902)FORM1901 FORMAT(40A1,80A1) CALL UVT100(CUP,JJ,1) WRITE(6,1901)FORM 1903 CONTINUE 1902 CONTINUE CLOSE(UNIT=9)C (NO HELP 9 YET... JUST RETURN#C SKIP OUT PAST DISPLAY OF SCREEN 19500 GOTO 90001100 GOTO 9100H201 FORMAT('To get HELP use the command Hn where n is 0 thru 8 for H', 1 'ELP 0')!202 FORMAT(' through HELP 8.')$203 FORMAT('HELP 0 - This screen')C204 FORMAT('HELP 1 - Summary of many PortaCalc commands (terse)')-205 FORMAT('HELP 2 - Data Entry / Editing'),206 FORMAT('HELP 3 - Calculation Control')6207 FORMAT('HELP 4 - Cursor Motion and Positioning')"208 FORMAT('HELP 5 - Cell Copy')8209 FORMAT('HELP 6 - Add/Subtract Absolute Rows/Cols')>210 FORMAT('HELP 7 - Add/Subtract Relocting, Rows or Cols.')A211 FORMAT('HELP 8 - Change Display Size, Col Size, Load Data')2D212 FORMAT('HELP 9 - Keypad Diagram for VT100')C-213 FORMAT('HELP 2 - Data Entry / Editing');214 FORMAT('E expression Enter expression into cell.')@215 FORMAT('Formulas available (+ SQRT,SIN,COS,LOG,EXP,ATAN)')<216 FORMAT('SUM[variables] Sum of all arguments')8217 FORMAT('MAX[variables] Max of arguments')8218 FORMAT('MIN[variables] Min of arguments')<219 FORMAT('AVG[variables] Average of arguments')B220 FORMAT('STD[variables] Standard deviation squared')9221 FORMAT('IF [V1.rel.V2] statement | else-statement')H222 FORMAT('In the first 5 cases, arguments are variable names separ', 1 'ated by')H223 FORMAT('commas, or variable ranges, or mixtures separaged by col', 1 'umns.').224 FORMAT('".REL." is any of the 6 forms:')225 FORMAT('.EQ. Equal')!226 FORMAT('.NE. Not Equal')9227 FORMAT('.GT. Greater than (V1 greater than V2)')3228 FORMAT('.LT. Less than (V1 less than V2)');229 FORMAT('.GE. Greater than or Equal to (V1 >= V2)')8230 FORMAT('.LE. Less than or Equal to (V1 =< V2)')H231 FORMAT('*XV filename V1 00O:[ZKZLZZ}Extract value at cell V1 in save', 1 'd')A232 FORMAT(' sheet stored in filename.')D233 FORMAT('ED `string1`string2` Replace string1 with string2')F234 FORMAT(' in current cell formula. Either' 1 )F235 FORMAT(' string may be null if desired.')C,236 FORMAT('HELP 3 - Calculation Control')5237 FORMAT('R Recalculate all of the sheet.')F238 FORMAT('RM Recalculate manually only until R command given' 1 )H239 FORMAT('RAF Recalculate sheet, without constant recalculatio', 1 'n')H240 FORMAT('K Drop into Calc program straight. *E retu', 1 'rns to sheet')9241 FORMAT('X Exit to operating system.')A242 FORMAT('V Redraw screen with normal formats')B243 FORMAT('VF Redraw screen showing all formulas')H244 FORMAT('VM Dont redraw screen until a V or VF is gi', 1 'ven')0245 FORMAT('ZA Zero whole sheet')H246 FORMAT('ZE V1:V2 Zero variables in a row or column in ran', 1 'ge from')H247 FORMAT(' cell V1 to cell V2 (V1,V2 = name', 1 's of cells)')H248 FORMAT('@filespec Read filespec and execute commands as th', 1 'ough'))249 FORMAT(' typed in.')G250 FORMAT('PD Put out current Display sheet (Formulas)' 1 )H251 FORMAT('PP Put out current Physical sheet (Formulas', 1 ')')F252 FORMAT('PDN Put out current Display sheet (Numbers)' 1 )G253 FORMAT('PPN Put out current Physical sheet (Numbers)' 1 )>254 FORMAT('W Write screen to hardcopy file.')C6255 FORMAT('HELP 4 - Cursor Motion and Positioning')G256 FORMAT('L variable-name Position cursor at variable-name' 1 )5257 FORMAT('M1 (Move up after Enter)')7258 FORMAT('M2 (Move down after Enter)')7259 FORMAT('M3 (Move left after Enter)')8260 FORMAT('M4 (Move right after Enter)'))261 FORMAT('1 (Move up)')+262 FORMAT('2 (Move down)')+263 FORMAT('3 (Move left)'),264 FORMAT('4 (Move right)')C265 FORMAT('OA variable Reset origin of display to variable')H266 FORMAT('OR variable Reset display down and right to start wi', 1 'th variable,')H267 FORMAT(' changing only region down and right of c', 1 'ursor')H268 FORMAT('DL V1:V2 Rn:m point at display coordinates (n,m) (col,', 1 'row)')H269 FORMAT(' and, going left to right along a Row, co', 1 'py in')H270 FORMAT(' variables V1 through V2 (actually, point', 1 ' those')H271 FORMAT(' display sheet cells at variables V1 thru', 1 ' V2).')H272 FORMAT('DL V1:V2 Cn:m point at display coordinates (n,m) (col,', 1 'row)')H273 FORMAT(' and, going top to bottom along a Column,', 1 ' copy in')H274 FORMAT(' variables V1 through V2 (actually, point', 1 ' those')H275 FORMAT(' display sheet cells at variables V1 thru', 1 ' V2).')H276 FORMAT('DF V1:V2 [format] Set display format of range V1:V', 1 '2 to format')H277 FORMAT(' (format A means display formula.', 1 ')')C"278 FORMAT('HELP 5 - Cell Copy')H279 FORMAT('CA V1:V2 V3:V4 Copy all cell attributes from V1', 1 ':V2')1280 FORMAT(' to V3:V4.')@281 FORMAT('CV V1:V2 V3:V4 Copy numeric values only')A282 FORMAT('CD V1:V2 V3:V4 Copy Display Formats only')H283 FORMAT('CF V1:V2 V3:V4 Copy Formulas only (no relocatio', 1 'n)')H284 FORMAT('CR V1:V2 V3:V4 Copy all cell attributes as in C', 1 'A but')H285 FORMAT(' relocate cell names to new locat', 1 'io00OB[)[ZYTADATADATADATADATADATAn')H286 FORMAT(' from old one. Only relocate name', 1 's right')H287 FORMAT(' of or below the cursor or on sam', 1 'e row/col')H288 FORMAT(' with cursor (cells above or left', 1 ' of cursor');289 FORMAT(' are NOT relocated).')E290 FORMAT(' If V2 is missing, V1 is replicated to V3:V4 range.')C8291 FORMAT('HELP 6 - Add/Subtract Absolute Rows/Cols')F292 FORMAT('AA number R Add "number" rows ahead of the current')H293 FORMAT(' physical position, moving all cells belo', 1 'w')H294 FORMAT(' the current cell down by "number" rows a', 1 'nd')H295 FORMAT(' losing the physical sheet`s bottom "numb', 1 'er"')H296 FORMAT(' rows` contents, NOT adjusting variable r', 1 'eferences')H297 FORMAT(' where the variables are in the moved ran', 1 'ge')H298 FORMAT(' and are not the position independent (P#', 1 '# or D##'),299 FORMAT(' forms) type.')H300 FORMAT('AA number C Add "number" columns ahead of the curren', 1 't')H301 FORMAT(' physical position, moving all cells righ', 1 't of')H302 FORMAT(' the current cell right by "number" colum', 1 'ns and')H303 FORMAT(' losing the physical sheet`s bottom "numb', 1 'er"')H304 FORMAT(' columns` contents, NOT adjusting variabl', 1 'e references')H305 FORMAT(' where the variables are in the moved ran', 1 'ge')H306 FORMAT(' and are not the position independent (P#', 1 '# or D##'),307 FORMAT(' forms) type.')C>308 FORMAT('HELP 7 - Add/Subtract Relocting, Rows or Cols.')F309 FORMAT('AR number R Add "number" rows ahead of the current')H310 FORMAT(' physical position, moving all cells belo', 1 'w')H311 FORMAT(' the current cell down by "number" rows a', 1 'nd')H312 FORMAT(' losing the physical sheet`s bottom "numb', 1 'er"')H313 FORMAT(' rows` contents, adjusting variable refer', 1 'ences')H314 FORMAT(' where the variables are in the moved ran', 1 'ge')H315 FORMAT(' and are not the position independent (P#', 1 '# or D##'),316 FORMAT(' forms) type.')H317 FORMAT('AR number C Add "number" columns ahead of the curren', 1 't')H318 FORMAT(' physical position, moving all cells righ', 1 't of')H319 FORMAT(' the current cell right by "number" colum', 1 'ns and')H320 FORMAT(' losing the physical sheet`s bottom "numb', 1 'er"')H321 FORMAT(' columns` contents, adjusting variable re', 1 'ferences')H322 FORMAT(' where the variables are in the moved ran', 1 'ge')H323 FORMAT(' and are not the position independent (P#', 1 '# or D##'),324 FORMAT(' forms) type.')CA325 FORMAT('HELP 8 - Change Display Size, Col Size, Load Data')H326 FORMAT('DW N,M Set column N on display to be M characte', 1 'rs wide')H327 FORMAT('DB n,m Set number of columns displayed on scree', 1 'n')H328 FORMAT(' to n, number of rows displayed t', 1 'o m.')H329 FORMAT('GD Reload sheet down/right onto display coo', 1 'rds.')H330 FORMAT('GP Reload sheet down/right onto physical co', 1 'ords.')F331 FORMAT('< Rewind the current Portacalc input file' 1 )=332 FORMAT('* any text Comment. (For command files.)') H333 FORMAT('Hn Display a screen of help. n may be 0 to 9, defa', 1 'ult 0.')H334 FORMAT('F filename/nnnn Read filename, skipping nnnn lin', 1 'es')H00OJ[PK[QO[ZZ}335 FORMAT(' if the "/nnnn" is there, and loa', 1 'd')UH336 FORMAT(' contents onto the currently disp', 1 'layed')H337 FORMAT(' screen, broken into columns as t', 1 'he')A338 FORMAT(' current screen is set up.')2 9100 CONTINUE1E$!Command file to make a universal library out of PRO 3xx AnalytiCalcE$! object modules. This can be easily transferred to the PRO next andD$! then unpacked with PCXUNL.CMD there. See PCCPRON.COM for details.$lbr pcx.ulb/cr:50/df:uni$lbr pcx.ulb/df:uni=AT.OBJ$lbr pcx.ulb/df:uni=BASCNG.OBJ$lbr pcx.ulb/df:uni=BLOCK.OBJ$lbr pcx.ulb/df:uni=CALBIN.OBJ$lbr pcx.ulb/df:uni=CALC.OBJ$lbr pcx.ulb/df:uni=CALUN.OBJ$lbr pcx.ulb/df:uni=CMDMUN.OBJ$lbr pcx.ulb/df:uni=CMND.OBJ$lbr pcx.ulb/df:uni=CONTYP.OBJ$lbr pcx.ulb/df:uni=DECLR.OBJ$lbr pcx.ulb/df:uni=DSPSHT.OBJ$lbr pcx.ulb/df:uni=ERRCX.OBJ$lbr pcx.ulb/df:uni=ERRMSG.OBJ$lbr pcx.ulb/df:uni=FLIP.OBJ$lbr pcx.ulb/df:uni=FRMEDT.OBJ$lbr pcx.ulb/df:uni=GETNNB.OBJ$lbr pcx.ulb/df:uni=GMSUBS.OBJ$lbr pcx.ulb/df:uni=INDEX.OBJ$lbr pcx.ulb/df:uni=INPOST.OBJ$lbr pcx.ulb/df:uni=JULIAN.OBJ$lbr pcx.ulb/df:uni=LIST.OBJ$lbr pcx.ulb/df:uni=MDET.OBJ$LBR PCX.ULB/DF:UNI=REFLECT.OBJ$lbr pcx.ulb/df:uni=MOUT.OBJ$lbr pcx.ulb/df:uni=MTXEQU.OBJ$lbr pcx.ulb/df:uni=MULADD.OBJ$lbr pcx.ulb/df:uni=MULCON.OBJ$lbr pcx.ulb/df:uni=MULDIV.OBJ$lbr pcx.ulb/df:uni=MULMUL.OBJ$lbr pcx.ulb/df:uni=NEXTEL.OBJ$lbr pcx.ulb/df:uni=POSTVL.OBJ$lbr pcx.ulb/df:uni=RECALC.OBJ$LBR PCX.ULB/DF:UNI=RND.OBJ$lbr pcx.ulb/df:uni=SLEND.OBJ $lbr pcx.ulb/df:uni=SPREDSHT.OBJ$LBR PCX.ULB/DF:UNI=SPRINI.OBJ$lbr pcx.ulb/df:uni=STRCMP.OBJ$lbr pcx.ulb/df:uni=TTYINI.OBJ$lbr pcx.ulb/df:uni=USRCMD.OBJ$lbr pcx.ulb/df:uni=USRFCT.OBJ$lbr pcx.ulb/df:uni=UVT100.OBJ$lbr pcx.ulb/df:uni=VAROUT.OBJ$lbr pcx.ulb/df:uni=VARSCN.OBJ$lbr pcx.ulb/df:uni=WRKFIL.OBJ$lbr pcx.ulb/df:uni=WSHEET.OBJ$lbr pcx.ulb/df:uni=XQTCMD.OBJ$lbr pcx.ulb/df:uni=ZERO.OBJ$lbr pcx.ulb/df:uni=ZNEG.OBJAT.OBJ=PCX.ULB/ex:ATBASCNG.OBJ=PCX.ULB/ex:BASCNGBLOCK.OBJ=PCX.ULB/ex:BLOCKCALBIN.OBJ=PCX.ULB/ex:CALBINCALC.OBJ=PCX.ULB/ex:CALCCALUN.OBJ=PCX.ULB/ex:CALUNCMDMUN.OBJ=PCX.ULB/ex:CMDMUNCMND.OBJ=PCX.ULB/ex:CMNDCONTYP.OBJ=PCX.ULB/ex:CONTYPDECLR.OBJ=PCX.ULB/ex:DECLRDSPSHT.OBJ=PCX.ULB/ex:DSPSHTERRCX.OBJ=PCX.ULB/ex:ERRCXERRMSG.OBJ=PCX.ULB/ex:ERRMSGFLIP.OBJ=PCX.ULB/ex:FLIPFRMEDT.OBJ=PCX.ULB/ex:FRMEDTGETNNB.OBJ=PCX.ULB/ex:GETNNBGMSUBS.OBJ=PCX.ULB/ex:GMSUBSINDEX.OBJ=PCX.ULB/ex:INDEXINPOST.OBJ=PCX.ULB/ex:INPOSTJULIAN.OBJ=PCX.ULB/ex:JULIANLIST.OBJ=PCX.ULB/ex:LISTMDET.OBJ=PCX.ULB/ex:MDETMOUT.OBJ=PCX.ULB/ex:MOUTMTXEQU.OBJ=PCX.ULB/ex:MTXEQUMULADD.OBJ=PCX.ULB/ex:MULADDMULCON.OBJ=PCX.ULB/ex:MULCONMULDIV.OBJ=PCX.ULB/ex:MULDIVMULMUL.OBJ=PCX.ULB/ex:MULMULNEXTEL.OBJ=PCX.ULB/ex:NEXTELPOSTVL.OBJ=PCX.ULB/ex:POSTVLRECALC.OBJ=PCX.ULB/ex:RECALCRND.OBJ=PCX.ULB/EX:RNDSLEND.OBJ=PCX.ULB/ex:SLENDSPREDSHT.OBJ=PCX.ULB/ex:SPREDSSPRINI.OBJ=PCX.ULB/EX:SPRINISTRCMP.OBJ=PCX.ULB/ex:STRCMPTTYINI.OBJ=PCX.ULB/ex:TTYINIUSRCMD.OBJ=PCX.ULB/ex:USRCMDUSRFCT.OBJ=PCX.ULB/ex:USRFCTUVT100.OBJ=PCX.ULB/ex:UVT100VAROUT.OBJ=PCX.ULB/ex:VAROUTVARSCN.OBJ=PCX.ULB/ex:VARSCNWRKFIL.OBJ=PCX.ULB/ex:WRKFILWSHEET.OBJ=PCX.ULB/ex:WSHEETXQTCMD.OBJ=PCX.ULB/ex:XQTCMDZERO.OBJ=PCX.ULB/ex:ZEROZNEG.OBJ=PCX.ULB/ex:ZNEGXQTCMD/CR=XQTCMD CMND/CR=CMNDSPREDSHT/CR=SPREDSHTWSHEET/CR=WSHEETUSRFCT/CR=USRFCT00RR[)[ZYTADATADATADATADATADATA SUBROUTINE POSTVL (RETCD)#C COPYRIGHT (C) 1983 GLENN EVERHART @C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY.i INCLUDE 'VKLUGPRM.FTN' C PARAMETER RRW = 32C PARAMETER RCL = 32C RRW=MAX REAL ROWSPC RCL=MAX REAL COLS:C RRW MUST BE 1 LARGER TO HANDLE 1ST 27 VARIABLES IN AVBLS#C VBLS AND TYPE DIMENSIONED RRW,RCLD4C **************************************************4C * *4C * SUBROUTINE POSTVL (RETCD) *4C * *4C **************************************************C C 5C CONVERTS POSTFIX EXPRESSIONS IN STACK 1 TO A VALUEhC3C CMC'C RETCD MEANING C C 1 O.K. C 2 ERROR CuC CtCC MODIFY CLASSES: M3, M10 C C C C C C POSTVL CALLSC (C CALBIN CALCULATES BINARY OPERATIONS'C CALUN CALCULATES UNARY OPERATIONSI%C ERRMSG PRINTS OUT ERROR MESSAGESI+C VAROUT OUTPUTS THE VALUE OF A VARIABLE2C.C CLCTC POSTVL IS CALLED BY CALCCCTC5CC VARIABLE USEE'C _________ ___________________________3CC I,K TEMPORARY VALUES6C4,C PT1 POINTS TO TOP ELEMENT IN STACK1C )C RETCD RETURN CODE: 1=O.K., 2=ERROR1CC3C RETCD2 USED TO HOLD RETURN CODE WHEN CALLS TOI%C OTHER ROUTINES ARE MADE.IC6C ST1PT STACK 1 POINTER.CIC ST2PT STACK 2 POINTER.1C8C ST1TYP VECTOR OF TYPES FOR EACH ELEMENT IN STACK 1C 8C ST2TYP VECTOR OF TYPES FOR EACH ELEMENT IN STACK 2CI/C STACK1 HOLDS ORIGINAL POSTFIX EXPRESSION.eCC3C STACK2 USED TO EVALUATE EXPRESSION IN STACK1.PC,<C TYPE(27) HOLDS THE DATA TYPE FOR EACH OF THE VARIABLES.C -C AVBLS(100,27) HOLDS VALUES OF VARIABLES.CNC VBLS(8,RRW,RCL) HOLDS VALUE OF COMPLEXLY-NAMED VARIABLES. 1ST 27 ELEMENTSHC ARE PLACE HOLDERS FOR AVBLS; ROUTINES THAT GENERATE DIMENSIONS ID1,ID2DC FOR VBLS RETURN DIMENSIONS 1-27,1 FOR A-Z,%. THESE RESULT IN AVBLSDC ARRAY BEING USED. VBLS ARRAY (MAX LENGTH 8 BYTES/VARIABLE) IS USEDBC FOR OTHER VARIABLES WHOSE NAMES ARE [][]FC (WITH OPTION FOR ANY REASONABLE # OF ALPHAS AND NUMERICS BUT CLAMPED'C AT RRW,RCL VALUES TO WORK CORRECTLY.)0CPC VIEWSW VIEW SWITCH:C 0 = OFF%C 1 = DISPLAY COMMANDSE1C 2 = DISPLAY VALUE OF EXPRESSIONSC C 3 = DISPLAY ALLCC VC0C SUBROUTINE POSTVL (RETCD)CC  INTEGER*2 LEVEL,NONBLK,LEND INTEGER*2 PT1 INTEGER*2 VIEWSW,BASED, INTEGER*2 RETCD,RETCD2,VLEN(9)6 INTEGER*2 TYPE(RRWP,RCLP) INTEGER*2 ST1TYP(40),ST2TYP(40)$ INTEGER*2 ST1LIM,ST2LIM,ST1PT,ST2PT INTEGER*2 I,KC6 LOGICAL*1 LINE(80)C4 LOGICAL*1 STACK1(20,40), STACK2(20,40),AVBLS(20,27) LOGICAL*1 VBLS(8,RRWP,RCLP)CI8 COMMON /STACK/ STACK1,STACK2,ST1PT,ST2PT,ST1TYP,ST2TYP, ; ST1LIM,ST2LIM6 COMMON /V/ TYPE,AVBLS,VBLS,VLEN+ COMMON LEVEL,LINE,NONBLK,LEND,VIEWSW,BASED6C8CCLCV RETCD=1CECW1C IF THERE IS ONE ELEMENT IN STACK1 AND IT IS NOT)1C A NUMBER, THE EXPRESSION IS ILLEGAL (GO TO 95).1+ IF(ST1PT.EQ.2.AND.ST1TYP(1).GT.30)GO TO 95PC1C10 IF (ST1PT.GT.2) GOTO 40 IF (ST1PT.EQ.1) GOTO 95CCC )C ***************************************1)C ****** ONLY 1 ELEMENT ON STACK 1 ******C)C ***************************************1 K=VLEN(ST1TYP(ST1PT-1))CVC0C COPY INTO VARIABLE % DO 20 I=1,K20 AVBLS(I,27)=STACK1(I,1) CALL TYPSET(27,1,ST1TYP(1))C TYPE(27,1)=ST1TYP(1)CPC,C OUTPUT VALUE OF %C# IF (VIEWSW.GT.1) CALL VAROUT(27,1) RETURN1CCC2"C MORE THAN ONE ELEMENT ON STACK1 40 CONTINUEI# IF (ST1TYP(ST1PT-1).LE.30) GOTO 90W IF (ST2PT.LE.ST2LIM) GOTO 452C)CW C *** ERROR *** STACK 2 OVERFLOW CALL ERRMSG(9) 43 RETCD=2 RETURN'CWCEC2C*C *****************************************C ****** OPERATOR SO PUT ON STACK 2 *******C **************************************** 45 ST2TYP(ST2PT)=ST1TYP(ST1PT-1) ST2PT=ST2PT+1 ST1PT=ST1PT-1 IF(ST1PT.EQ00RZ[S_[O[ZZ}.1)GO TO 95  GOTO 40C4CCLCVC0C *********************eC ****** OPERAND ******C *********************1CC=C FIRST BE SURE THAT THERE IS AN OPERATOR INVOLVED ON STACK 2':C (IF ONLY ONE ELEMENT IN STACK 1 YOU SHOULD NOT BE HERE).90 IF(ST2PT.NE.1)GO TO 110C0C6#C *** ERROR *** ILLLEGAL EXPRESSIONC95 CALL ERRMSG(8)2 GO TO 43 C1CCC2C)3C ENTER HERE AFTER APPLYING AN OPERATOR TO A NUMBER3100 IF (ST2PT.EQ.1) GOTO 10W110 K=ST2TYP(ST2PT-1)1CC C IF A UNARY OPERATOR, GO TO 1900 IF ((K.GT.30.AND.K.LE.44).OR.K.EQ.111) GOTO 190CCW!C IF A BINARY OPERATOR, GO TO 170R$ IF (K.GE.110.AND.K.LE.117) GOTO 170 IF(K.EQ.200)GO TO 170C CC IF ELEMENT ON STACK2 AT ST2PT-1 IS AN OPERAND, APPLY CALBIN AGAIN IF(K.LE.30) GO TO 180 STOP 1103CVCCC C1AC ***************************************************************HAC ****** CALBIN CALCULATES THE BINARY VALUE OF AN OPERATOR ******WAC ***************************************************************7C UPON ENTRANCE:PC OPERAND 1 IS IN STACK 1C OPERAND 2 IS IN STACK 20C OPERATOR IS BELOW OPERAND 2L!C UPON EXIT RESULT IS ON STACK 1CLC RETURN CODE MEANINGIC6 C 1 O.K.L0C 2 OPERATION COMPLETE (RESULT HAS BEEN OUTPUT)C 3 ERROR ENCOUNTEREDCCC 170 CONTINUECCI"C FIRST PUT OPERAND 2 ONTO STACK 2 PT1=ST1PT-1 ST2TYP(ST2PT)=ST1TYP(PT1) K=VLEN(ST2TYP(ST2PT)) DO 175 I=1,KW!175 STACK2(I,ST2PT)=STACK1(I,PT1)) ST1PT=ST1PT-1 IF(ST1PT.EQ.1)GO TO 95 ST2PT=ST2PT+1CLCV;C IF OPERAND 1 IS AN OPERATOR, PUT IT ON STACK 2 (GO TO 45)E# IF(ST1TYP(ST1PT-1).GT.30) GO TO 45I180 CALL CALBIN (RETCD2) GOTO (100,1000,43), RETCD2L STOP 180PC,CCIC6C4FC ********************************************************************FC ****** CALL CALUN TO CALCULATE THE VALUE OF A UNARY OPERATION ******FC ********************************************************************C OPERATOR IS IN STACK 2 LC OPERAND IS IN STACK 1E+C UPON EXIT, OPERATOR IS POPPED OFF STACK 21CC RETURN CODE MEANINGCI C 1 O.K.0C 2 OPERATION COMPLETE (RESULT HAS BEEN OUTPUT)C 3 ERROR ENCOUNTEREDC7CC190 CALL CALUN (RETCD2)I GOTO(100,43),RETCD2 STOP 190)CWCE 1000 RETURNL END AnalytiProject --------------Project Planner in AnalytiCalc------- ------- -- ----------- Motivation ----------@ The idea here is to allow you to express networks of activitiesChere, one activity to a line (row) and say what the dependencies ofAeach on others are. You enter the project start date, the name ofCeach sub-activity, what others it depends on, the duration of each,Eand the amount of "resource" used by each. You get back the start andEend dates for each, a plot on screen of resource usage vs. time (withCfixed 24 bins, each 1/24 of the total duration), and information onCwhich activities form the "critical path". The critical path is theEset of activities that make your project end when it does rather thanBearlier. If you alter the duration of one of the activities on theBcritical path, it will usually shorten the project. However, sinceBother activities may then become the critical ones, this cannot bealways guaranteed.; The plot of resource use vs. time is handy in that it will@let you tell if you're going to be overcommitted. If for example>your "resource" is people and it shows 10 used where your shopChas only 6, you know things are in trouble. You'll need to add someAdependencies to the network to express the notion that some later?activities have to depend on more earlier ones being done then,>due to the availability of people rather than the logic of therest of the project.Detail------CThe project planner consists of the saved spre00Sb[)[ZYTADATADATADATADATADATAadsheet file PPLN.PCCCand the two page displayers, PPLNS1.CMD and PPLNS2.CMD. An optional component is the file APPLN.CMD.A If you use the APPLN.CMD file, you need only fire up AnalytiCalcCand type @APPLN.CMD with the other files in your default directory.AThe command file will load the planner template and set command Q@to run the critical path command file (PPLNS1.CMD) and command Y?to run the screen display of times (PPLNS2.CMD). This will saveBkeystrokes. (Cells B0, J0, N0, Q0, T0, U0, and Y0 can be filled inCwith text commands to be executed by commands B, J, N, Q, T, U, or <Y respectively if you wish to shorten some extra commands.) = To use the planner, load PPLN.PCC with a GP command (or key H1 on the auxiliary keypad, or APPLN.CMD). Then for the first activities,Hmodify rows 3 through 6 as needed. You will want to modify column A, the?activity titles, column B, the preconditions, and column D, theBduration of the activity required. Also modify column J if desired?by entering the amount of some resource (1. to whatever maximum4you like) needed for the activity you're describing.9 Also enter the project starting date as YY/MM/DD in cellF2 where it is labelled.6 To add more activities, use the AR command. Go to the<row you want in the range 4 to 6 and add rows. Note that the#old rows' contents are not altered.6 A sample command sequence to add 8 more activity rows would be:L A4 go to row 4AR 1R Add one row for startersAR 2R Add two more rowsAR 4R Add four moreAR 2R Add the last two.;This sequence is used so that the formulas in columns other;than the ones you modify are duplicated; this is needed forcorrect operation.7 Once you finish adding as many rows as desired, modifyEcolumns A, B, D, and J as appropriate. The order you enter activities>in is not important. Then recalculate a number of times to get.the dates correct. The R command recalculates.5 To obtain a display sorted by start date the commandDSCA 6Ecould be used (possibly aftera DB command to reset the display bounds?to area actually used). The VAX display can be set to up to 2009rows long for purposes of a W command to write the sorted@display to the printer or a file. Other columns may be sorted ifBdesired; in the normal format, column 6 of the display is physical1column F and column 7 is column G, the end dates.9 To see the critical path, use the command @PPLNS1.CMD to@compute the critical path. Column I will have 1 in each activityAthat lies on the critical path at the end. (If it doesn't seem to=come all the way back to the project start, use the commands:L L3DF P#%DD:D#%DH [*]RRRRRDF P#%DD:D#%DH [A]0to extend the recalculation to get to the start.: To see a plot of resource usage vs. time (with 24 bins of2time), use the command file @PPLNS2.CMD to set up.: The critical path is shown in the page with the plots, soDuse PPLNS1.CMD first to calculate the critical path. The computationAis not done initially so you can enter your project more quickly,>and because a few global values must be computed from the dataCwhich are "forward references" in the spreadsheet. If the equations<that compute and graph the project activities were initiallyBenabled, they would blow up the first time through. The use of theBcommand files to control execution obviates the problem and allowsthe system to work.; Other files beginning with PPLN8 are for an 80-column only?version of the planner. They show less, but leave your terminal,in 80 column mode, making it easier to read. Generalizations: It is fairly simple to make the durations be functions of@a global accumulator (so that one would enter a duration of 5.*G?for example rather than just 5.) and to have that accumulator's@initial value be 1.0. If this is done, the goal-seeking capacityBof AnalytiCalc can be used to vary G to find that set of durationsCsuch that the project is done by a given date. More complex schemes<using several accumulators with boundary c00Sj[Tl[O[ZZ}onditions could be devised also.5 Hooks to other saved plans could be added by placing;the links anywhere desired and using their addresses in the@lists of dependencies in column B. Normally one enters addresses>like A4, A5, A5:A11,A15 or similar forms in column B. However,?so long as the values referred to are Julian dates, they can be>obtained anywhere. Simply place an *XV filename,cell somewhereAin the current sheet and include the address of the cell with the>*XV in it in your column B and you have a link to other plans.;If the other plans are saved versions of PPLN.PCC expanded,Acell Am (m being a row number in the saved sheet) would contain aBJulian date value in the needed form, provided the sheet was saved@with values as well as formulas (i.e., saved with PPX, not PPF.)Project Planning Path Sheet 8 40 17 17 10 10 10 10 8 8 4 6 6 9 4 4 4 12 206P 1, 1,Function  -1,F9.2 , 26P 2, 1,Preconditions -1,F9.2 , 2P 3, 1,Start -1,F9.2 , 2 P 4, 1,Duration  -1,F9.2 , 25P 5, 1,End -1,F9.2 , 2 P 6, 1,Proj Start, -1,F9.2 , 22P 7, 1,MAX[G3:G6]  1,F9.2 , 2 EP 8, 1,A=24.\24./(G1-G2+.000001)\H1=%\IF [H1.GT.A0]H1=A | H1=H15 1,F7.1 , 22P 9, 1,Crt -1,F9.2 , 2 P 10, 1, Resrc  -1,F9.2 , 20P 11, 1,H=CNT[G1:G400]-3.02 1,F9.2 , 2 P 13, 1,Total Res Used2 -1,F9.2 , 2 P 1, 2,Name0 -1,F9.2 , 2 P 2, 2,(Addresses) -1,F9.2 , 2 P 3, 2,Date  -1,F9.2 , 2 P 4, 2,(Days)  -1,F9.2 , 20P 5, 2,Date -1,F9.2 , 2P 6, 2,85/09/15  -3,F9.2 , 2 P 7, 2,*U JDATE F2\A2=%-1. 1,F9.2 , 2EP 9, 2,P## 3,F3.0 , 20P 10, 2,D=0.2 1,F9.2 , 2CP 1, 3,SETUP -1,F9.2 , 2 P 2, 3,A2 -1,F9.2 , 22P 3, 3,85/09/15 -1,F9.2 , 2P 4, 3,7. 3,F7.1 , 2 P 5, 3,85/09/229 -1,F9.2 , 2,P 6, 3,MAX[{B3]+1. 1,F8.1 , 2FP 7, 3,G3=F3\*U JTOCH G3,C3\%=G3=G3+D3\*U JTOCH G3,E3\A3=G3\%=G3 1,F9.2 , 2 *P 8, 3,C3=F3\E3=G3\R=P\N=G3-G$1$\S=Q 1,F8.1 , 2 P 9, 3,P## 3,F3.0 , 2 P 10, 3,1. 3,F5.0 , 2 TP 11, 3,B=H$1$*(F3-G$2$)+3.\C=H$1$*(G3-G$2$)+3.\D=0.\*U XQTCM CR J3 P#%BD:P#%CD -1,F9.2 , 2 nP 12, 3,IF [N0.EQ.D0]M=1. | M=I3 \I3=MAX[M0,I3]\*P@ R0,S0\*P P#8#0 \IF [M0.GT.D0] P##=M | P##=MAX[I3,P##] -1,F9.2 , 2 P 1, 4,MIDDLE AM -1,F9.2 , 2 P 2, 4,A3 -1,F9.2 , 2 P 3, 4,85/09/238 -1,F9.2 , 2 P 4, 4,7. 3,F7.1 , 2,P 5, 4,85/09/305 -1,F9.2 , 2,P 6, 4,MAX[{B4]+1. 1,F8.1 , 2,FP 7, 4,G4=F4\*U JTOCH G4,C4\%=G4=G4+D4\*U JTOCH G4,E4\A4=G4\%=G4 1,F9.2 , 2,*P 8, 4,C4=F4\E4=G4\R=P\N=G4-G$1$\S=Q 1,F8.1 , 2,P 9, 4,P## 3,F3.0 , 2,P 10, 4,1. 3,F5.0 , 2,TP 11, 4,B=H$1$*(F4-G$2$)+3.\C=H$1$*(G4-G$2$)+3.\D=0.\*U XQTCM CR J4 P#%BD:P#%CD -1,F9.2 , 2,nP 12, 4,IF [N0.EQ.D0]M=1. | M=I4 \I4=MAX[M0,I4]\*P@ R0,S0\*P P#8#0 \IF [M0.GT.D0] P##=M | P##=MAX[I4,P##] -1,F9.2 , 2,P 1, 5,MIDDLE B1 -1,F9.2 , 2,P 2, 5,A3 -1,F9.2 , 2,P 3, 5,85/09/233 -1,F9.2 , 2,P 4, 5,7. 3,F7.1 , 2,P 5, 5,85/09/305 -1,F9.2 , 2,P 6, 5,MAX[{B5]+1. 1,F8.1 , 2,FP 7, 5,G5=F5\*U JTOCH G5,C5\%=G5=G5+D5\*U JTOCH G5,E5\A5=G5\%=G5 1,F9.2 , 2,*P 8, 5,C5=F5\E5=G5\R=P\N=G5-G$1$\S=Q 1,F8.1 , 2,P 00Tr[)[ZYTADATADATADATADATADATA 9, 5,P## 3,F3.0 , 2,P 10, 5,1. 3,F5.0 , 2,TP 11, 5,B=H$1$*(F5-G$2$)+3.\C=H$1$*(G5-G$2$)+3.\D=0.\*U XQTCM CR J5 P#%BD:P#%CD -1,F9.2 , 2,nP 12, 5,IF [N0.EQ.D0]M=1. | M=I5 \I5=MAX[M0,I5]\*P@ R0,S0\*P P#8#0 \IF [M0.GT.D0] P##=M | P##=MAX[I5,P##] -1,F9.2 , 2,P 1, 6,END -1,F9.2 , 2,P 2, 6,A3:A5 -1,F9.2 , 2P 3, 6,85/10/01  -1,F9.2 , 2P 4, 6,7. 3,F7.1 , 2CP 5, 6,85/10/08  -1,F9.2 , 2/P 6, 6,MAX[{B6]+1. 1,F8.1 , 2{FP 7, 6,G6=F6\*U JTOCH G6,C6\%=G6=G6+D6\*U JTOCH G6,E6\A6=G6\%=G6 1,F9.2 , 2G*P 8, 6,C6=F6\E6=G6\R=P\N=G6-G$1$\S=Q 1,F8.1 , 2$P 9, 6,P## 3,F3.0 , 2 P 10, 6,1. 3,F5.0 , 2 TP 11, 6,B=H$1$*(F6-G$2$)+3.\C=H$1$*(G6-G$2$)+3.\D=0.\*U XQTCM CR J6 P#%BD:P#%CD -1,F9.2 , 2DnP 12, 6,IF [N0.EQ.D0]M=1. | M=I6 \I6=MAX[M0,I6]\*P@ R0,S0\*P P#8#0 \IF [M0.GT.D0] P##=M | P##=MAX[I6,P##] -1,F9.2 , 2IP 14, 7,SUM[N3:N6]  1,F5.0 , 2NP 15, 7,SUM[O3:O6]  1,F5.0 , 2OP 16, 7,SUM[P3:P6]  1,F5.0 , 2PP 17, 7,SUM[Q3:Q6]  1,F5.0 , 2QP 18, 7,SUM[R3:R6]  1,F5.0 , 2RP 19, 7,SUM[S3:S6]  1,F5.0 , 2SP 20, 7,SUM[T3:T6]  1,F5.0 , 2TP 21, 7,SUM[U3:U6]  1,F5.0 , 2UP 22, 7,SUM[V3:V6]  1,F5.0 , 2VP 23, 7,SUM[W3:W6]  1,F5.0 , 2WP 24, 7,SUM[X3:X6]  1,F5.0 , 2XP 25, 7,SUM[Y3:Y6]  1,F5.0 , 2YP 26, 7,SUM[Z3:Z6]  1,F5.0 , 2ZP 27, 7,SUM[AA3:AA6]7 1,F5.0 , 23P 28, 7,SUM[AB3:AB6]1 1,F5.0 , 23P 29, 7,SUM[AC3:AC6]0 1,F5.0 , 23P 30, 7,SUM[AD3:AD6]6 1,F5.0 , 23P 31, 7,SUM[AE3:AE6]1 1,F5.0 , 23P 32, 7,SUM[AF3:AF6]0 1,F5.0 , 23P 33, 7,SUM[AG3:AG6]6 1,F5.0 , 23P 34, 7,SUM[AH3:AH6] 1,F5.0 , 23P 35, 7,SUM[AI3:AI6]  1,F5.0 , 23P 36, 7,SUM[AJ3:AJ6]  1,F5.0 , 23P 37, 7,SUM[AK3:AK6]  1,F5.0 , 23M64001,64001, 1 2 1,F5.0 , 2 M64001,64002, 1 3 1,F5.0 , 2 M64001,64003, 1 4 1,F5.0 , 2 M64001,64004, 1 5 1,F5.0 , 2 M64001,64005, 1 6 1,F5.0 , 2 M64001,64006, 1 7 1,F5.0 , 2 M64001,64007, 1 8 1,F5.0 , 2 M64001,64008, 1 9 1,F5.0 , 2 M64001,64009, 1 10 1,F5.0 , 2 M64001,64010, 1 11 1,F5.0 , 2 M64001,64011, 1 12 1,F5.0 , 2 M64001,64012, 1 13 1,F5.0 , 2 M64001,64013, 1 14 1,F5.0 , 2 M64001,64014, 1 15 1,F5.0 , 2 M64001,64015, 1 16 1,F5.0 , 2 M64001,64016, 1 17 1,F5.0 , 2 M64001,64017, 1 18 1,F5.0 , 2 M64001,64018, 1 19 1,F5.0 , 2 M64001,64019, 1 20 1,F5.0 , 2 M64001,64020, 1 21 1,F5.0 , 2 M64002,64001, 2 2 1,F5.0 , 2 M64002,64002, 2 3 1,F5.0 , 2 M64002,64003, 2 4 1,F5.0 , 2 M64002,64004, 2 5 1,F5.0 , 2 M64002,64005, 2 6 1,F5.0 , 2 M64002,64006, 2 7 1,F5.0 , 2 M64002,64007, 2 8 1,F5.0 , 2 M64002,64008, 2 9 1,F5.0 , 2 M64002,64009, 2 10 1,F5.0 , 2 M64002,64010, 2 11 1,F5.0 , 2 M64002,64011, 2 12 1,F5.0 , 2 M64002,64012, 2 13 1,F5.0 , 2 M64002,64013, 2 14 1,F5.0 , 2 M64002,64014, 2 15 1,F5.0 , 2 M64002,64015, 2 16 1,F5.0 , 2 M64002,64016, 2 17 1,F5.0 00Tz[l[O[ZZ} , 2 M64002,64017, 2 18 1,F5.0 , 2 M64002,64018, 2 19 1,F5.0 , 2 M64002,64019, 2 20 1,F5.0 , 2 M64002,64020, 2 21 1,F5.0 , 2 M64003,64001, 3 2 1,F5.0 , 2 M64003,64002, 3 3 1,F5.0 , 2 M64003,64003, 3 4 1,F5.0 , 2 M64003,64004, 3 5 1,F5.0 , 2 M64003,64005, 3 6 1,F5.0 , 2 M64003,64006, 3 7 1,F5.0 , 2 M64003,64007, 3 8 1,F5.0 , 2 M64003,64008, 3 9 1,F5.0 , 2 M64003,64009, 3 10 1,F5.0 , 2 M64003,64010, 3 11 1,F5.0 , 2 M64003,64011, 3 12 1,F5.0 , 2 M64003,64012, 3 13 1,F5.0 , 2 M64003,64013, 3 14 1,F5.0 , 2 M64003,64014, 3 15 1,F5.0 , 2 M64003,64015, 3 16 1,F5.0 , 2 M64003,64016, 3 17 1,F5.0 , 2 M64003,64017, 3 18 1,F5.0 , 2 M64003,64018, 3 19 1,F5.0 , 2 M64003,64019, 3 20 1,F5.0 , 2 M64003,64020, 3 21 1,F5.0 , 2 M64004,64001, 4 2 1,F5.0 , 2 M64004,64002, 4 3 1,F5.0 , 2 M64004,64003, 4 4 1,F5.0 , 2 M64004,64004, 4 5 1,F5.0 , 2 M64004,64005, 4 6 1,F5.0 , 2 M64004,64006, 4 7 1,F5.0 , 2 M64004,64007, 4 8 1,F5.0 , 2 M64004,64008, 4 9 1,F5.0 , 2 M64004,64009, 4 10 1,F5.0 , 2 M64004,64010, 4 11 1,F5.0 , 2 M64004,64011, 4 12 1,F5.0 , 2 M64004,64012, 4 13 1,F5.0 , 2 M64004,64013, 4 14 1,F5.0 , 2 M64004,64014, 4 15 1,F5.0 , 2 M64004,64015, 4 16 1,F5.0 , 2 M64004,64016, 4 17 1,F5.0 , 2 M64004,64017, 4 18 1,F5.0 , 2 M64004,64018, 4 19 1,F5.0 , 2 M64004,64019, 4 20 1,F5.0 , 2 M64004,64020, 4 21 1,F5.0 , 2 M64005,64001, 5 2 1,F5.0 , 2 M64005,64002, 5 3 1,F5.0 , 2 M64005,64003, 5 4 1,F5.0 , 2 M64005,64004, 5 5 1,F5.0 , 2 M64005,64005, 5 6 1,F5.0 , 2 M64005,64006, 5 7 1,F5.0 , 2 M64005,64007, 5 8 1,F5.0 , 2 M64005,64008, 5 9 1,F5.0 , 2 M64005,64009, 5 10 1,F5.0 , 2 M64005,64010, 5 11 1,F5.0 , 2 M64005,64011, 5 12 1,F5.0 , 2 M64005,64012, 5 13 1,F5.0 , 2 M64005,64013, 5 14 1,F5.0 , 2 M64005,64014, 5 15 1,F5.0 , 2 M64005,64015, 5 16 1,F5.0 , 2 M64005,64016, 5 17 1,F5.0 , 2 M64005,64017, 5 18 1,F5.0 , 2 M64005,64018, 5 19 1,F5.0 , 2 M64005,64019, 5 20 1,F5.0 , 2 M64005,64020, 5 21 1,F5.0 , 2 M64006,64001, 6 2 1,F5.0 , 2 M64006,64002, 6 3 1,F5.0 , 2 M64006,64003, 6 4 1,F5.0 , 2 M64006,64004, 6 5 1,F5.0 , 2 M64006,64005, 6 6 1,F5.0 , 2 M64006,64006, 6 7 1,F5.0 , 2 M64006,64007, 6 8 1,F5.0 , 2 M64006,64008, 6 9 1,F5.0 , 2 M64006,64009, 6 10 1,F5.0 , 2 M64006,64010, 6 11 1,F5.0 , 2 M64006,64011, 6 12 1,F5.0 , 2 M64006,64012, 6 13 1,F5.0 , 2 M64006,64013, 6 14 1,F5.0 , 2 M64006,64014, 6 15 1,F5.0 , 2 M64006,64015, 6 1600T[)[ZYTADATADATADATADATADATA 1,F5.0 , 2 M64006,64016, 6 17 1,F5.0 , 2 M64006,64017, 6 18 1,F5.0 , 2 M64006,64018, 6 19 1,F5.0 , 2 M64006,64019, 6 20 1,F5.0 , 2 M64006,64020, 6 21 1,F5.0 , 2 M64007,64001, 7 2 1,F5.0 , 2 M64007,64002, 7 3 1,F5.0 , 2 M64007,64003, 7 4 1,F5.0 , 2 M64007,64004, 7 5 1,F5.0 , 2 M64007,64005, 7 6 1,F5.0 , 2 M64007,64006, 7 7 1,F5.0 , 2 M64007,64007, 7 8 1,F5.0 , 2 M64007,64008, 7 9 1,F5.0 , 2 M64007,64009, 7 10 1,F5.0 , 2 M64007,64010, 7 11 1,F5.0 , 2 M64007,64011, 7 12 1,F5.0 , 2 M64007,64012, 7 13 1,F5.0 , 2 M64007,64013, 7 14 1,F5.0 , 2 M64007,64014, 7 15 1,F5.0 , 2 M64007,64015, 7 16 1,F5.0 , 2 M64007,64016, 7 17 1,F5.0 , 2 M64007,64017, 7 18 1,F5.0 , 2 M64007,64018, 7 19 1,F5.0 , 2 M64007,64019, 7 20 1,F5.0 , 2 M64007,64020, 7 21 1,F5.0 , 2 M64008,64001, 8 2 1,F5.0 , 2 M64008,64002, 8 3 1,F5.0 , 2 M64008,64003, 8 4 1,F5.0 , 2 M64008,64004, 8 5 1,F5.0 , 2 M64008,64005, 8 6 1,F5.0 , 2 M64008,64006, 8 7 1,F5.0 , 2 M64008,64007, 8 8 1,F5.0 , 2 M64008,64008, 8 9 1,F5.0 , 2 M64008,64009, 8 10 1,F5.0 , 2 M64008,64010, 8 11 1,F5.0 , 2 M64008,64011, 8 12 1,F5.0 , 2 M64008,64012, 8 13 1,F5.0 , 2 M64008,64013, 8 14 1,F5.0 , 2 M64008,64014, 8 15 1,F5.0 , 2 M64008,64015, 8 16 1,F5.0 , 2 M64008,64016, 8 17 1,F5.0 , 2 M64008,64017, 8 18 1,F5.0 , 2 M64008,64018, 8 19 1,F5.0 , 2 M64008,64019, 8 20 1,F5.0 , 2 M64008,64020, 8 21 1,F5.0 , 2 M64009,64001, 9 2 1,F5.0 , 2 M64009,64002, 9 3 1,F5.0 , 2 M64009,64003, 9 4 1,F5.0 , 2 M64009,64004, 9 5 1,F5.0 , 2 M64009,64005, 9 6 1,F5.0 , 2 M64009,64006, 9 7 1,F5.0 , 2 M64009,64007, 9 8 1,F5.0 , 2 M64009,64008, 9 9 1,F5.0 , 2 M64009,64009, 9 10 1,F5.0 , 2 M64009,64010, 9 11 1,F5.0 , 2 M64009,64011, 9 12 1,F5.0 , 2 M64009,64012, 9 13 1,F5.0 , 2 M64009,64013, 9 14 1,F5.0 , 2 M64009,64014, 9 15 1,F5.0 , 2 M64009,64015, 9 16 1,F5.0 , 2 M64009,64016, 9 17 1,F5.0 , 2 M64009,64017, 9 18 1,F5.0 , 2 M64009,64018, 9 19 1,F5.0 , 2 M64009,64019, 9 20 1,F5.0 , 2 M64009,64020, 9 21 1,F5.0 , 2 M64010,64001, 10 2 1,F5.0 , 2 M64010,64002, 10 3 1,F5.0 , 2 M64010,64003, 10 4 1,F5.0 , 2 M64010,64004, 10 5 1,F5.0 , 2 M64010,64005, 10 6 1,F5.0 , 2 M64010,64006, 10 7 1,F5.0 , 2 M64010,64007, 10 8 1,F5.0 , 2 M64010,64008, 10 9 1,F5.0 , 2 M64010,64009, 10 10 1,F5.0 , 2 M64010,64010, 10 11 1,F5.0 , 2 M64010,64011, 10 12 1,F5.0 , 2 M64010,64012, 10 13 1,F5.0 , 2 M64010,64013, 10 14 1,F5.0 , 2 M64010,64014, 00T[U[O[ZZ} 10 15 1,F5.0 , 2 M64010,64015, 10 16 1,F5.0 , 2 M64010,64016, 10 17 1,F5.0 , 2 M64010,64017, 10 18 1,F5.0 , 2 M64010,64018, 10 19 1,F5.0 , 2 M64010,64019, 10 20 1,F5.0 , 2 M64010,64020, 10 21 1,F5.0 , 2 M64011,64001, 11 2 1,F5.0 , 2 M64011,64002, 11 3 1,F5.0 , 2 M64011,64003, 11 4 1,F5.0 , 2 M64011,64004, 11 5 1,F5.0 , 2 M64011,64005, 11 6 1,F5.0 , 2 M64011,64006, 11 7 1,F5.0 , 2 M64011,64007, 11 8 1,F5.0 , 2 M64011,64008, 11 9 1,F5.0 , 2 M64011,64009, 11 10 1,F5.0 , 2 M64011,64010, 11 11 1,F5.0 , 2 M64011,64011, 11 12 1,F5.0 , 2 M64011,64012, 11 13 1,F5.0 , 2 M64011,64013, 11 14 1,F5.0 , 2 M64011,64014, 11 15e 1,F5.0 , 2 M64011,64015, 11 16  1,F5.0 , 21M64011,64016, 11 17  1,F5.0 , 21M64011,64017, 11 18  1,F5.0 , 2oM64011,64018, 11 19 1,F5.0 , 2M64011,64019, 11 20  1,F5.0 , 29M64011,64020, 11 21E 1,F5.0 , 2 M64012,64001, 12 2 1,F5.0 , 2M64012,64002, 12 3, 1,F5.0 , 2 M64012,64003, 12 40 1,F5.0 , 20M64012,64004, 12 5, 1,F5.0 , 2CM64012,64005, 12 6  1,F5.0 , 2,M64012,64006, 12 71 1,F5.0 , 2M64012,64007, 12 8  1,F5.0 , 2M64012,64008, 12 9  1,F5.0 , 2 M64012,64009, 12 10r 1,F5.0 , 2,M64012,64010, 12 11- 1,F5.0 , 2 M64012,64011, 12 12  1,F5.0 , 2 M64012,64012, 12 13 1,F5.0 , 21M64012,64013, 12 14  1,F5.0 , 2AM64012,64014, 12 15 1,F5.0 , 2,M64012,64015, 12 162 1,F5.0 , 2,M64012,64016, 12 17- 1,F5.0 , 2 M64012,64017, 12 18, 1,F5.0 , 28M64012,64018, 12 19 1,F5.0 , 2 M64012,64019, 12 20  1,F5.0 , 22M64012,64020, 12 21X 1,F5.0 , 2 Project Planning Path Sheet 8 40 12 14 9 9 9 8 4 6 4 6 6 9 4 4 4 8 20P 1, 1,Function -1,F9.2 , 2P 2, 1,Preconditions -1,F9.2 , 2P 3, 1,Start -1,F9.2 , 2P 4, 1,Duration -1,F9.2 , 2P 5, 1,End -1,F9.2 , 2P 6, 1,Proj Start -1,F9.2 , 2P 7, 1,MAX[G3:G6] 1,F9.2 , 2EP 8, 1,A=24.\24./(G1-G2+.000001)\H1=%\IF [H1.GT.A0]H1=A | H1=H1 1,F7.1 , 2P 9, 1, Crt -1,F9.2 , 2P 10, 1, Resrc -1,F9.2 , 2P 11, 1,H=CNT[G1:G400]-3.0 1,F9.2 , 2P 13, 1,Total Res Used -1,F9.2 , 2P 1, 2,Name -1,F9.2 , 2P 2, 2,(Addresses) -1,F9.2 , 2P 3, 2,Date -1,F9.2 , 2P 4, 2,(Days) -1,F9.2 , 2P 5, 2,Date -1,F9.2 , 2P 6, 2,85/09/15 -3,F9.2 , 2 P 7, 2,*U JDATE F2\A2=%-1. 1,F9.2 , 2P 9, 2,P## 3,F3.0 , 2P 10, 2,D=0. 1,F4.0 , 2P 1, 3,SETUP -1,F9.2 , 2P 2, 3,A2 -1,F9.2 , 2P 3, 3,85/09/15 -1,F9.2 , 2P 4, 3,5. 3,F7.1 , 2P 5, 3,85/09/20 -1,F9.2 , 2P 6, 3,MAX[{B3]+1. 1,F8.1 , 2FP 7, 3,G3=F3\*U JTOCH G3,C3\%=G3=G3+D3\*U JTOCH G3,E3\A3=G3\%=G3 1,F9.2 , 2*P 8, 3,C3=F3\E3=G3\R=P00U[)[ZYTADATADATADATADATADATA\N=G3-G$1$\S=Q 1,F8.1 , 2P 9, 3,P## 3,F3.0 , 2P 10, 3,2. 3,F4.0 , 2TP 11, 3,B=H$1$*(F3-G$2$)+3.\C=H$1$*(G3-G$2$)+3.\D=0.\*U XQTCM CR J3 P#%BD:P#%CD -1,F9.2 , 2nP 12, 3,IF [N0.EQ.D0]M=1. | M=I3 \I3=MAX[M0,I3]\*P@ R0,S0\*P P#8#0 \IF [M0.GT.D0] P##=M | P##=MAX[I3,P##] -1,F9.2 , 2P 1, 4,MIDDLE A -1,F9.2 , 2P 2, 4,A3 -1,F9.2 , 2P 3, 4,85/09/21 -1,F9.2 , 2P 4, 4,5. 3,F7.1 , 2P 5, 4,85/09/26 -1,F9.2 , 2P 6, 4,MAX[{B4]+1. 1,F8.1 , 2FP 7, 4,G4=F4\*U JTOCH G4,C4\%=G4=G4+D4\*U JTOCH G4,E4\A4=G4\%=G4 1,F9.2 , 2*P 8, 4,C4=F4\E4=G4\R=P\N=G4-G$1$\S=Q 1,F8.1 , 2P 9, 4,P## 3,F3.0 , 2P 10, 4,2. 3,F4.0 , 2TP 11, 4,B=H$1$*(F4-G$2$)+3.\C=H$1$*(G4-G$2$)+3.\D=0.\*U XQTCM CR J4 P#%BD:P#%CD -1,F9.2 , 2nP 12, 4,IF [N0.EQ.D0]M=1. | M=I4 \I4=MAX[M0,I4]\*P@ R0,S0\*P P#8#0 \IF [M0.GT.D0] P##=M | P##=MAX[I4,P##] -1,F9.2 , 2P 1, 5,MIDDLE B -1,F9.2 , 2P 2, 5,A3 -1,F9.2 , 2P 3, 5,85/09/21 -1,F9.2 , 2P 4, 5,5. 3,F7.1 , 2P 5, 5,85/09/26 -1,F9.2 , 2P 6, 5,MAX[{B5]+1. 1,F8.1 , 2FP 7, 5,G5=F5\*U JTOCH G5,C5\%=G5=G5+D5\*U JTOCH G5,E5\A5=G5\%=G5 1,F9.2 , 2*P 8, 5,C5=F5\E5=G5\R=P\N=G5-G$1$\S=Q 1,F8.1 , 2P 9, 5,P## 3,F3.0 , 2P 10, 5,2. 3,F4.0 , 2TP 11, 5,B=H$1$*(F5-G$2$)+3.\C=H$1$*(G5-G$2$)+3.\D=0.\*U XQTCM CR J5 P#%BD:P#%CD -1,F9.2 , 2nP 12, 5,IF [N0.EQ.D0]M=1. | M=I5 \I5=MAX[M0,I5]\*P@ R0,S0\*P P#8#0 \IF [M0.GT.D0] P##=M | P##=MAX[I5,P##] -1,F9.2 , 2P 1, 6,END -1,F9.2 , 2P 2, 6,A3:A5 -1,F9.2 , 2P 3, 6,85/09/27 -1,F9.2 , 2P 4, 6,5. 3,F7.1 , 2P 5, 6,85/10/02 -1,F9.2 , 2P 6, 6,MAX[{B6]+1. 1,F8.1 , 2FP 7, 6,G6=F6\*U JTOCH G6,C6\%=G6=G6+D6\*U JTOCH G6,E6\A6=G6\%=G6 1,F9.2 , 2*P 8, 6,C6=F6\E6=G6\R=P\N=G6-G$1$\S=Q 1,F8.1 , 2P 9, 6,P## 3,F3.0 , 2P 10, 6,2. 3,F4.0 , 2TP 11, 6,B=H$1$*(F6-G$2$)+3.\C=H$1$*(G6-G$2$)+3.\D=0.\*U XQTCM CR J6 P#%BD:P#%CD -1,F9.2 , 2nP 12, 6,IF [N0.EQ.D0]M=1. | M=I6 \I6=MAX[M0,I6]\*P@ R0,S0\*P P#8#0 \IF [M0.GT.D0] P##=M | P##=MAX[I6,P##] -1,F9.2 , 2P 14, 7,SUM[N3:N6] 1,F5.0 , 2P 15, 7,SUM[O3:O6] 1,F5.0 , 2P 16, 7,SUM[P3:P6] 1,F5.0 , 2P 17, 7,SUM[Q3:Q6] 1,F5.0 , 2P 18, 7,SUM[R3:R6] 1,F5.0 , 2P 19, 7,SUM[S3:S6] 1,F5.0 , 2P 20, 7,SUM[T3:T6] 1,F5.0 , 2P 21, 7,SUM[U3:U6] 1,F5.0 , 2P 22, 7,SUM[V3:V6] 1,F5.0 , 2P 23, 7,SUM[W3:W6] 1,F5.0 , 2P 24, 7,SUM[X3:X6] 1,F5.0 , 2P 25, 7,SUM[Y3:Y6] 1,F5.0 , 2P 26, 7,SUM[Z3:Z6] 1,F5.0 , 2P 27, 7,SUM[AA3:AA6] 1,F5.0 , 2P 28, 7,SUM[AB3:AB6] 1,F5.0 , 2P 29, 7,SUM[AC3:AC6] 1,F5.0 , 2P 30, 7,SUM[AD3:AD6] 1,F5.0 , 2P 31, 7,SUM[AE3:AE6] 1,F5.0 , 2P 32, 7,SUM[AF3:AF6] 1,F5.0 , 2P 33, 7,SUM[AG3:AG6] 1,F5.0 , 2P 34, 7,SUM[AH3:AH6] 1,F5.0 , 2P 35, 7,SUM[AI3:AI6] 1,F5.0 , 2P 36, 7,SUM[AJ3:AJ6] 1,F5.0 , 2P 37, 7,SUM[AK3:AK6] 1,F5.0 , 2M64001,64001, 1 2 1,F5.0 , 2M64001,64002, 1 3 1,F5.0 , 2M64001,64003, 1 4 1,F5.0 , 2M64001,64004, 1 5 1,F5.0 , 2M64001,64005, 1 6 1,F5.0 , 2M64001,64006, 1 7 1,F5.0 , 2M64001,64000U[[O[ZZ}07, 1 8 1,F5.0 , 2M64001,64008, 1 9 1,F5.0 , 2M64001,64009, 1 10 1,F5.0 , 2M64001,64010, 1 11 1,F5.0 , 2M64001,64011, 1 12 1,F5.0 , 2M64001,64012, 1 13 1,F5.0 , 2M64001,64013, 1 14 1,F5.0 , 2M64001,64014, 1 15 1,F5.0 , 2M64001,64015, 1 16 1,F5.0 , 2M64001,64016, 1 17 1,F5.0 , 2M64001,64017, 1 18 1,F5.0 , 2M64001,64018, 1 19 1,F5.0 , 2M64001,64019, 1 20 1,F5.0 , 2M64001,64020, 1 21 1,F5.0 , 2M64002,64001, 2 2 1,F5.0 , 2M64002,64002, 2 3 1,F5.0 , 2M64002,64003, 2 4 1,F5.0 , 2M64002,64004, 2 5 1,F5.0 , 2M64002,64005, 2 6 1,F5.0 , 2M64002,64006, 2 7 1,F5.0 , 2M64002,64007, 2 8 1,F5.0 , 2M64002,64008, 2 9 1,F5.0 , 2M64002,64009, 2 10 1,F5.0 , 2M64002,64010, 2 11 1,F5.0 , 2M64002,64011, 2 12 1,F5.0 , 2M64002,64012, 2 13 1,F5.0 , 2M64002,64013, 2 14 1,F5.0 , 2M64002,64014, 2 15 1,F5.0 , 2M64002,64015, 2 16 1,F5.0 , 2M64002,64016, 2 17 1,F5.0 , 2M64002,64017, 2 18 1,F5.0 , 2M64002,64018, 2 19 1,F5.0 , 2M64002,64019, 2 20 1,F5.0 , 2M64002,64020, 2 21 1,F5.0 , 2M64003,64001, 3 2 1,F5.0 , 2M64003,64002, 3 3 1,F5.0 , 2M64003,64003, 3 4 1,F5.0 , 2M64003,64004, 3 5 1,F5.0 , 2M64003,64005, 3 6 1,F5.0 , 2M64003,64006, 3 7 1,F5.0 , 2M64003,64007, 3 8 1,F5.0 , 2M64003,64008, 3 9 1,F5.0 , 2M64003,64009, 3 10 1,F5.0 , 2M64003,64010, 3 11 1,F5.0 , 2M64003,64011, 3 12 1,F5.0 , 2M64003,64012, 3 13 1,F5.0 , 2M64003,64013, 3 14 1,F5.0 , 2M64003,64014, 3 15 1,F5.0 , 2M64003,64015, 3 16 1,F5.0 , 2M64003,64016, 3 17 1,F5.0 , 2M64003,64017, 3 18 1,F5.0 , 2M64003,64018, 3 19@ 1,F5.0 , 2M64003,64019, 3 20 1,F5.0 , 2M64003,64020, 3 21 1,F5.0 , 2M64004,64001, 4 2 1,F5.0 , 2M64004,64002, 4 3 1,F5.0 , 2M64004,64003, 4 4 1,F5.0 , 2M64004,64004, 4 5 1,F5.0 , 2M64004,64005, 4 6 1,F5.0 , 2M64004,64006, 4 7 1,F5.0 , 2M64004,64007, 4 8 1,F5.0 , 2M64004,64008, 4 9 1,F5.0 , 2M64004,64009, 4 10 1,F5.0 , 2M64004,64010, 4 11 1,F5.0 , 2M64004,64011, 4 12 1,F5.0 , 2M64004,64012, 4 13 1,F5.0 , 2M64004,64013, 4 14 1,F5.0 , 2M64004,64014, 4 15 1,F5.0 , 2M64004,64015, 4 16 1,F5.0 , 2M64004,64016, 4 17 1,F5.0 , 2M64004,64017, 4 18 1,F5.0 , 2M64004,64018, 4 19 1,F5.0 , 2M64004,64019, 4 20 1,F5.0 , 2M64004,64020, 4 21 1,F5.0 , 2M64005,64001, 5 2 1,F5.0 , 2M64005,64002, 5 3 1,F5.0 , 2RM64005,64003, 5 4 1,F5.0 , 2M64005,64004, 5 5 1,F5.0 , 2 M64005,64005, 5 6 1,F5.0 , 200U[)[ZYTADATADATADATADATADATAM64005,64006, 5 7 1,F5.0 , 2M64005,64007, 5 8 1,F5.0 , 2M64005,64008, 5 9 1,F5.0 , 2M64005,64009, 5 10 1,F5.0 , 2M64005,64010, 5 11 1,F5.0 , 2M64005,64011, 5 12 1,F5.0 , 2M64005,64012, 5 13 1,F5.0 , 2M64005,64013, 5 14 1,F5.0 , 2M64005,64014, 5 15 1,F5.0 , 2M64005,64015, 5 16 1,F5.0 , 2cM64005,64016, 5 17  1,F5.0 , 2 M64005,64017, 5 181 1,F5.0 , 26M64005,64018, 5 19 1,F5.0 , 2M64005,64019, 5 202 1,F5.0 , 2M64005,64020, 5 21  1,F5.0 , 2 M64006,64001, 6 2t 1,F5.0 , 2 M64006,64002, 6 39 1,F5.0 , 26M64006,64003, 6 4  1,F5.0 , 2 M64006,64004, 6 5, 1,F5.0 , 2AM64006,64005, 6 6\ 1,F5.0 , 21M64006,64006, 6 7  1,F5.0 , 2,M64006,64007, 6 81 1,F5.0 , 2 M64006,64008, 6 9G 1,F5.0 , 22M64006,64009, 6 10t 1,F5.0 , 22M64006,64010, 6 11m 1,F5.0 , 2 M64006,64011, 6 12 1,F5.0 , 2M64006,64012, 6 13  1,F5.0 , 2 M64006,64013, 6 14  1,F5.0 , 2M64006,64014, 6 156 1,F5.0 , 2,M64006,64015, 6 162 1,F5.0 , 2M64006,64016, 6 17  1,F5.0 , 2 M64006,64017, 6 18 1,F5.0 , 2M64006,64018, 6 19  1,F5.0 , 2 M64006,64019, 6 20 1,F5.0 , 2M64006,64020, 6 214 1,F5.0 , 2 M64007,64001, 9 2  1,F5.0 , 22M64007,64002, 9 3X 1,F5.0 , 2 M64007,64003, 9 4* 1,F5.0 , 2+M64007,64004, 9 5 1,F5.0 , 2M64007,64005, 9 6N 1,F5.0 , 21M64007,64006, 9 7# 1,F5.0 , 2M64007,64007, 9 8  1,F5.0 , 2 M64007,64008, 9 9* 1,F5.0 , 2XM64007,64009, 9 109 1,F5.0 , 22M64007,64010, 9 11I 1,F5.0 , 2RM64007,64011, 9 12P 1,F5.0 , 2]M64007,64012, 9 131 1,F5.0 , 2,M64007,64013, 9 144 1,F5.0 , 2 M64007,64014, 9 15 1,F5.0 , 2M64007,64015, 9 16, 1,F5.0 , 2 M64007,64016, 9 17  1,F5.0 , 2 M64007,64017, 9 18, 1,F5.0 , 2GM64007,64018, 9 194 1,F5.0 , 2\M64007,64019, 9 20  1,F5.0 , 24M64007,64020, 9 21  1,F5.0 , 2 M64008,64001, 10 2 1,F5.0 , 2,M64008,64002, 10 34 1,F5.0 , 2CM64008,64003, 10 4T 1,F5.0 , 2M64008,64004, 10 5  1,F5.0 , 2.M64008,64005, 10 6, 1,F5.0 , 2TM64008,64006, 10 7 1,F5.0 , 2M64008,64007, 10 89 1,F5.0 , 22M64008,64008, 10 9  1,F5.0 , 29M64008,64009, 10 10  1,F5.0 , 27M64008,64010, 10 118 1,F5.0 , 2 M64008,64011, 10 125 1,F5.0 , 2 M64008,64012, 10 13T 1,F5.0 , 2*M64008,64013, 10 14, 1,F5.0 , 2 M64008,64014, 10 15- 1,F5.0 , 2 M64008,64015, 10 16  1,F5.0 , 2 M64008,64016, 10 17, 1,F5.0 , 2BM64008,64017, 10 18- 1,F5.0 , 2MM64008,64018, 10 19  1,F5.0 , 2 M64008,64019, 10 20I 1,F5.0 , 20M64008,64020, 10 21M 1,F5.0 , 2-00V[W[X[Y[Z[[[\[}VMDB 1,1LI3RCV J2 P#%DD:P#%DHB* SET PAGE 1 OF PROJECT PLAN DISPLAY UP WITH PROJECTS AND CRITICAL * PATH STUFF.RMSY10NNN<Project Planner - Scheduling and Critical Path of ActivitiesVMDB 8,20OA A1DW 1,12DW 2,14DW 3,9DW 4,9DW 5,9DW 6,8LG1OR I1DW 7,4DW 8,6VL L3DF P#%DD:P#%DH [*]D* NEED SEVERAL RECALCS TO ALLOW FORWARD REFS TO GET RESOLVED ALL THE * WAY BACK.RRRRRRRL L3DF P#%DD:P#%DH [A]VLA1VMDB 8,20OA A1DW 1,12DW 2,14DW 3,9DW 4,9DW 5,9DW 6,8LG1OR I1DW 7,4DW 8,6LA1VVMDB 1,1RSY3NNYF4.0:Project Plan Time Profile and Resource Usage, 24 Time BinsVMRL K3DF P#%DD:P#%DH [*]RL K3DF P#%DD:P#%DH [A] DB 20,20OA A1LB1OR I1LJ1OR N1DW 1,12LA4L P#%DH CA M1 P#%DDVRL I3CV J2 P#%DD:P#%DHCV J2 I2L L3DF P#%DD:P#%DH [*]D* NEED SEVERAL RECALCS TO ALLOW FORWARD REFS TO GET RESOLVED ALL THE * WAY BACK.F* LOOP UNTIL WE GET CRITICAL PATH DONE AS INDICATED BY I1 BECOMING 1.0*CLOOP*C LOOPR TE %=1.-I2 TE *F LOOPL L3DF P#%DD:P#%DH [A]L A1VMDB 1,1LI3RCV J1 P#%DD:P#%DH%[?3h%* %B* SET PAGE 1 OF PROJECT PLAN DISPLAY UP WITH PROJECTS AND CRITICAL * PATH STUFF. CV J1 I3:I6RMSY10NNN<Project Planner - Scheduling and Critical Path of ActivitiesVMDB 12,20OA A1DW 1,17DW 2,17DW 3,10DW 4,10DW 5,10DW 6,10DW 7,8DW 8,9DW 9,4DW 10,6DW 11,6DW 12,9RRL L3DF P#%DD:P#%DH [*]D* NEED SEVERAL RECALCS TO ALLOW FORWARD REFS TO GET RESOLVED ALL THE * WAY BACK.F* LOOP UNTIL WE GET CRITICAL PATH DONE AS INDICATED BY I1 BECOMING 1.0*CLOOP*C LOOPR TE %=1.-I2 TE *F LOOPL L3DF P#%DD:P#%DH [A]VVMDB 1,1RSY4NNYF4.0:Project Plan Time Profile and Resource Usage, 24 Time BinsVMRL K3DF P#%DD:P#%DH [*]RL K3DF P#%DD:P#%DH [A] DB 26,20OA A1LB1OR I1LJ1OR N1DW 1,17LA4L P#%DH CA M1 P#%DDVProject Planner Worksheet, Weekday-Only Version, Crit Path Finder 8 40 12 14 9 9 9 8 4 6 10 10 10 10 10 10 10 8 20P 1, 1,Function -1,F9.2 , 2P 2, 1,Preconditions -1,F9.2 , 2P 3, 1,Start -1,F9.2 , 2P 4, 1,Duration -1,F9.2 , 2P 5, 1,End -1,F9.2 , 2P 6, 1,Proj Start -1,F9.2 , 2P 7, 1,MAX[G3:G6] 1,F9.2 , 2EP 8, 1,A=24.\24./(G1-G2+.000001)\H1=%\IF [H100\[)[ZYTADATADATADATADATADATA.GT.A0]H1=A | H1=H1 1,F7.1 , 2P 9, 1, Crt -1,F9.2 , 2P 10, 1, Resrc -1,F9.2 , 2&P 11, 1,A1=0.1\H=CNT[G1:G400]-3.0 1,F9.2 , 2P 13, 1,Total Res Used -1,F9.2 , 2P 1, 2,Name -1,F9.2 , 2P 2, 2,(Addresses) -1,F9.2 , 2P 3, 2,Date -1,F9.2 , 2P 4, 2,(Days) -1,F9.2 , 2P 5, 2,Date -1,F9.2 , 2P 6, 2,85/09/15 -3,F9.2 , 2 P 7, 2,*U JDATE F2\A2=%-1. 1,F9.2 , 2P 9, 2,P## 3,F3.0 , 2P 10, 2,D=0. 1,F4.0 , 2P 1, 3,SETUP -1,F9.2 , 2P 2, 3,A2 -1,F9.2 , 2P 3, 3,85/09/16 -1,F9.2 , 2P 4, 3,5. 3,F7.1 , 2P 5, 3,85/09/23 -1,F9.2 , 2+P 6, 3,F3=(MAX[{B3])\*U WKDIN F3,A$1$ 1,F8.1 , 2OP 7, 3,G3=F3\*U JTOCH G3,C3\*U WKDIN G3,D3\G3=%\*U JTOCH G3,E3\A3=G3\%=G3 1,F9.2 , 2*P 8, 3,C3=F3\E3=G3\R=P\N=G3-G$1$\S=Q 1,F8.1 , 2P 9, 3,P## 3,F3.0 , 2P 10, 3,2. 3,F4.0 , 2TP 11, 3,B=H$1$*(F3-G$2$)+3.\C=H$1$*(G3-G$2$)+3.\D=0.\*U XQTCM CR J3 P#%BD:P#%CD -1,F9.2 , 2nP 12, 3,IF [N0.EQ.D0]M=1. | M=I3 \I3=MAX[M0,I3]\*P@ R0,S0\*P P#8#0 \IF [M0.GT.D0] P##=M | P##=MAX[I3,P##] -1,F9.2 , 2P 1, 4,MIDDLE A -1,F9.2 , 2P 2, 4,A3 -1,F9.2 , 2P 3, 4,85/09/23 -1,F9.2 , 2P 4, 4,5. 3,F7.1 , 2P 5, 4,85/09/30 -1,F9.2 , 2+P 6, 4,F4=(MAX[{B4])\*U WKDIN F4,A$1$ 1,F8.1 , 2OP 7, 4,G4=F4\*U JTOCH G4,C4\*U WKDIN G4,D4\G4=%\*U JTOCH G4,E4\A4=G4\%=G4 1,F9.2 , 2*P 8, 4,C4=F4\E4=G4\R=P\N=G4-G$1$\S=Q 1,F8.1 , 2P 9, 4,P## 3,F3.0 , 2P 10, 4,2. 3,F4.0 , 2TP 11, 4,B=H$1$*(F4-G$2$)+3.\C=H$1$*(G4-G$2$)+3.\D=0.\*U XQTCM CR J4 P#%BD:P#%CD -1,F9.2 , 2nP 12, 4,IF [N0.EQ.D0]M=1. | M=I4 \I4=MAX[M0,I4]\*P@ R0,S0\*P P#8#0 \IF [M0.GT.D0] P##=M | P##=MAX[I4,P##] -1,F9.2 , 2P 1, 5,MIDDLE B -1,F9.2 , 2P 2, 5,A3 -1,F9.2 , 2P 3, 5,85/09/23 -1,F9.2 , 2P 4, 5,5. 3,F7.1 , 2P 5, 5,85/09/30 -1,F9.2 , 2+P 6, 5,F5=(MAX[{B5])\*U WKDIN F5,A$1$ 1,F8.1 , 2OP 7, 5,G5=F5\*U JTOCH G5,C5\*U WKDIN G5,D5\G5=%\*U JTOCH G5,E5\A5=G5\%=G5 1,F9.2 , 2*P 8, 5,C5=F5\E5=G5\R=P\N=G5-G$1$\S=Q 1,F8.1 , 2P 9, 5,P## 3,F3.0 , 2P 10, 5,2. 3,F4.0 , 2TP 11, 5,B=H$1$*(F5-G$2$)+3.\C=H$1$*(G5-G$2$)+3.\D=0.\*U XQTCM CR J5 P#%BD:P#%CD -1,F9.2 , 2nP 12, 5,IF [N0.EQ.D0]M=1. | M=I5 \I5=MAX[M0,I5]\*P@ R0,S0\*P P#8#0 \IF [M0.GT.D0] P##=M | P##=MAX[I5,P##] -1,F9.2 , 2P 1, 6,END -1,F9.2 , 2P 2, 6,A3:A5 -1,F9.2 , 2P 3, 6,85/09/30 -1,F9.2 , 2P 4, 6,5. 3,F7.1 , 2P 5, 6,85/10/07 -1,F9.2 , 2+P 6, 6,F6=(MAX[{B6])\*U WKDIN F6,A$1$ 1,F8.1 , 2OP 7, 6,G6=F6\*U JTOCH G6,C6\*U WKDIN G6,D6\G6=%\*U JTOCH G6,E6\A6=G6\%=G6 1,F9.2 , 2*P 8, 6,C6=F6\E6=G6\R=P\N=G6-G$1$\S=Q 1,F8.1 , 2P 9, 6,P## 3,F3.0 , 2P 10, 6,2. 3,F4.0 , 2TP 11, 6,B=H$1$*(F6-G$2$)+3.\C=H$1$*(G6-G$2$)+3.\D=0.\*U XQTCM CR J6 P#%BD:P#%CD -1,F9.2 , 2nP 12, 6,IF [N0.EQ.D0]M=1. | M=I6 \I6=MAX[M0,I6]\*P@ R0,S0\*P P#8#0 \IF [M0.GT.D0] P##=M | P##=MAX[I6,P##] -1,F9.2 , 2P 14, 7,SUM[N3:N6] 1,F5.0 , 2P 15, 7,SUM[O3:O6] 1,F5.0 , 2P 16, 7,SUM[P3:P6] 1,F5.0 , 2P 17, 7,SUM[Q3:Q6] 1,F5.0 , 2P 18, 7,SUM[R3:R6] 1,F5.0 , 2P 19, 7,SUM[S3:S6] 1,F5.0 , 2P 20, 7,SUM[T3:T6] 1,F5.0 , 2P 21, 00\[[X[Y[Z[[[\[} 7,SUM[U3:U6] 1,F5.0 , 2P 22, 7,SUM[V3:V6] 1,F5.0 , 2P 23, 7,SUM[W3:W6] 1,F5.0 , 2P 24, 7,SUM[X3:X6] 1,F5.0 , 2P 25, 7,SUM[Y3:Y6] 1,F5.0 , 2P 26, 7,SUM[Z3:Z6] 1,F5.0 , 2P 27, 7,SUM[AA3:AA6] 1,F5.0 , 2P 28, 7,SUM[AB3:AB6] 1,F5.0 , 2P 29, 7,SUM[AC3:AC6] 1,F5.0 , 2P 30, 7,SUM[AD3:AD6] 1,F5.0 , 2P 31, 7,SUM[AE3:AE6] 1,F5.0 , 2P 32, 7,SUM[AF3:AF6] 1,F5.0 , 2P 33, 7,SUM[AG3:AG6] 1,F5.0 , 2P 34, 7,SUM[AH3:AH6] 1,F5.0 , 2P 35, 7,SUM[AI3:AI6] 1,F5.0 , 2P 36, 7,SUM[AJ3:AJ6] 1,F5.0 , 2P 37, 7,SUM[AK3:AK6] 1,F5.0 , 2M64001,64001, 1 2 1,F5.0 , 2M64001,64002, 1 3 1,F5.0 , 2M64001,64003, 1 4 1,F5.0 , 2M64001,64004, 1 5 1,F5.0 , 2M64001,64005, 1 6 1,F5.0 , 2M64001,64006, 1 7 1,F5.0 , 2M64001,64007, 1 8 1,F5.0 , 2M64001,64008, 1 9 1,F5.0 , 2M64001,64009, 1 10 1,F5.0 , 2M64001,64010, 1 11 1,F5.0 , 2M64001,64011, 1 12 1,F5.0 , 2M64001,64012, 1 13 1,F5.0 , 2M64001,64013, 1 14 1,F5.0 , 2M64001,64014, 1 15 1,F5.0 , 2M64001,64015, 1 16 1,F5.0 , 2M64001,64016, 1 17 1,F5.0 , 2M64001,64017, 1 18 1,F5.0 , 2M64001,64018, 1 19 1,F5.0 , 2M64001,64019, 1 20 1,F5.0 , 2M64001,64020, 1 21 1,F5.0 , 2M64002,64001, 2 2 1,F5.0 , 2M64002,64002, 2 3 1,F5.0 , 2M64002,64003, 2 4 1,F5.0 , 2M64002,64004, 2 5 1,F5.0 , 2M64002,64005, 2 6 1,F5.0 , 2M64002,64006, 2 7 1,F5.0 , 2M64002,64007, 2 8 1,F5.0 , 2M64002,64008, 2 9 1,F5.0 , 2M64002,64009, 2 10 1,F5.0 , 2M64002,64010, 2 11 1,F5.0 , 2M64002,64011, 2 12 1,F5.0 , 2M64002,64012, 2 13 1,F5.0 , 2M64002,64013, 2 14 1,F5.0 , 2M64002,64014, 2 15 1,F5.0 , 2M64002,64015, 2 16 1,F5.0 , 2M64002,64016, 2 17 1,F5.0 , 2M64002,64017, 2 18 1,F5.0 , 2M64002,64018, 2 19 1,F5.0 , 2M64002,64019, 2 20 1,F5.0 , 2M64002,64020, 2 21 1,F5.0 , 2M64003,64001, 3 2 1,F5.0 , 2M64003,64002, 3 3 1,F5.0 , 2M64003,64003, 3 4 1,F5.0 , 2M64003,64004, 3 5 1,F5.0 , 2M64003,64005, 3 6 1,F5.0 , 2M64003,64006, 3 7 1,F5.0 , 2M64003,64007, 3 8 1,F5.0 , 2M64003,64008, 3 9 1,F5.0 , 2M64003,64009, 3 10 1,F5.0 , 2M64003,64010, 3 11 1,F5.0 , 2M64003,64011, 3 12 1,F5.0 , 2M64003,64012, 3 13 1,F5.0 , 2M64003,64013, 3 14 1,F5.0 , 2M64003,64014, 3 15 1,F5.0 , 2M64003,64015, 3 16 1,F5.0 , 2M64003,64016, 3 17 1,F5.0 , 2M64003,64017, 3 18 1,F5.0 , 2M64003,64018, 3 19 1,F5.0 , 2M64003,64019, 3 20 1,F5.0 , 2M64003,64020, 3 21 1,F5.0 , 2M64004,64001, 4 2 1,F5.0 , 2M64004,64002, 4 3 1,F5.0 , 2M64004,64003, 4 4 1,F5.0 ,00\[)[ZYTADATADATADATADATADATA 2M64004,64004, 4 5 1,F5.0 , 2M64004,64005, 4 6 1,F5.0 , 2M64004,64006, 4 7 1,F5.0 , 2M64004,64007, 4 8 1,F5.0 , 2M64004,64008, 4 9 1,F5.0 , 2M64004,64009, 4 10 1,F5.0 , 2M64004,64010, 4 11 1,F5.0 , 2M64004,64011, 4 12 1,F5.0 , 2M64004,64012, 4 13 1,F5.0 , 2M64004,64013, 4 14 1,F5.0 , 2M64004,64014, 4 15 1,F5.0 , 2M64004,64015, 4 16 1,F5.0 , 2M64004,64016, 4 17 1,F5.0 , 2M64004,64017, 4 18 1,F5.0 , 2M64004,64018, 4 19 1,F5.0 , 2M64004,64019, 4 20 1,F5.0 , 2M64004,64020, 4 21R 1,F5.0 , 2M64005,64001, 5 2 1,F5.0 , 2M64005,64002, 5 3  1,F5.0 , 2M64005,64003, 5 4 1,F5.0 , 2M64005,64004, 5 5 1,F5.0 , 2M64005,64005, 5 6 1,F5.0 , 2M64005,64006, 5 7 1,F5.0 , 2M64005,64007, 5 8 1,F5.0 , 2M64005,64008, 5 9 1,F5.0 , 2M64005,64009, 5 10 1,F5.0 , 2M64005,64010, 5 11 1,F5.0 , 2M64005,64011, 5 12 1,F5.0 , 2M64005,64012, 5 13 1,F5.0 , 2M64005,64013, 5 14c 1,F5.0 , 2WM64005,64014, 5 15h 1,F5.0 , 2 M64005,64015, 5 166 1,F5.0 , 2 M64005,64016, 5 170 1,F5.0 , 2M64005,64017, 5 181 1,F5.0 , 2,M64005,64018, 5 191 1,F5.0 , 20M64005,64019, 5 20  1,F5.0 , 2oM64005,64020, 5 21 1,F5.0 , 2.M64006,64001, 6 2, 1,F5.0 , 2 M64006,64002, 6 3, 1,F5.0 , 2 M64006,64003, 6 4 1,F5.0 , 2M64006,64004, 6 5, 1,F5.0 , 2 M64006,64005, 6 60 1,F5.0 , 2 M64006,64006, 6 7 1,F5.0 , 2M64006,64007, 6 80 1,F5.0 , 29M64006,64008, 6 9P 1,F5.0 , 2 M64006,64009, 6 10  1,F5.0 , 2DM64006,64010, 6 11  1,F5.0 , 2M64006,64011, 6 128 1,F5.0 , 28M64006,64012, 6 13  1,F5.0 , 21M64006,64013, 6 14= 1,F5.0 , 2 M64006,64014, 6 15 1,F5.0 , 20M64006,64015, 6 169 1,F5.0 , 29M64006,64016, 6 17  1,F5.0 , 2 M64006,64017, 6 18 1,F5.0 , 2M64006,64018, 6 192 1,F5.0 , 2 M64006,64019, 6 200 1,F5.0 , 2,M64006,64020, 6 21= 1,F5.0 , 2,M64007,64001, 9 21 1,F5.0 , 20M64007,64002, 9 3  1,F5.0 , 2lM64007,64003, 9 4  1,F5.0 , 2 M64007,64004, 9 5- 1,F5.0 , 2 M64007,64005, 9 6  1,F5.0 , 22M64007,64006, 9 70 1,F5.0 , 2 M64007,64007, 9 8 1,F5.0 , 2M64007,64008, 9 90 1,F5.0 , 29M64007,64009, 9 10D 1,F5.0 , 2 M64007,64010, 9 110 1,F5.0 , 2M64007,64011, 9 12  1,F5.0 , 22M64007,64012, 9 13  1,F5.0 , 20M64007,64013, 9 14 1,F5.0 , 2-M64007,64014, 9 15  1,F5.0 , 20M64007,64015, 9 16  1,F5.0 , 2/M64007,64016, 9 17 1,F5.0 , 27M64007,64017, 9 189 1,F5.0 , 27M64007,64018, 9 19  1,F5.0 , 2 M64007,64019, 9 200 1,F5.0 , 20M64007,64020, 9 21# 1,F5.0 , 2M64008,64001, 10 20 1,F5.0 , 2,M64008,64002, 10 32 00\[][[Y[Z[[[\[}1,F5.0 , 2,M64008,64003, 10 47 1,F5.0 , 2M64008,64004, 10 51 1,F5.0 , 22M64008,64005, 10 6  1,F5.0 , 20M64008,64006, 10 7 1,F5.0 , 2,M64008,64007, 10 83 1,F5.0 , 20M64008,64008, 10 9  1,F5.0 , 29M64008,64009, 10 10  1,F5.0 , 20M64008,64010, 10 111 1,F5.0 , 2 M64008,64011, 10 12 1,F5.0 , 2.M64008,64012, 10 13, 1,F5.0 , 2 M64008,64013, 10 14  1,F5.0 , 2 M64008,64014, 10 15D 1,F5.0 , 2 M64008,64015, 10 163 1,F5.0 , 2M64008,64016, 10 17  1,F5.0 , 20M64008,64017, 10 18, 1,F5.0 , 2GM64008,64018, 10 19G 1,F5.0 , 2,M64008,64019, 10 20, 1,F5.0 , 2 M64008,64020, 10 21 1,F5.0 , 2Project Planner Worksheet, Weekday-Only Version, Crit Path Finder 8 40 12 14 9 9 9 8 4 6 10 10 10 10 10 10 10 8 20P 1, 1,Function -1,F9.2 , 2P 2, 1,Preconditions -1,F9.2 , 2P 3, 1,Start -1,F9.2 , 2P 4, 1,Duration -1,F9.2 , 2P 5, 1,End -1,F9.2 , 2P 6, 1,Proj Start -1,F9.2 , 2P 7, 1,MAX[G3:G6] 1,F9.2 , 2EP 8, 1,A=24.\24./(G1-G2+.000001)\H1=%\IF [H1.GT.A0]H1=A | H1=H1 1,F7.1 , 2P 9, 1, Crt -1,F9.2 , 2P 10, 1, Resrc -1,F9.2 , 2&P 11, 1,A1=1.0\H=CNT[G1:G400]-3.0 1,F9.2 , 2P 13, 1,Total Res Used -1,F9.2 , 2P 1, 2,Name -1,F9.2 , 2P 2, 2,(Addresses) -1,F9.2 , 2P 3, 2,Date -1,F9.2 , 2P 4, 2,(Days) -1,F9.2 , 2P 5, 2,Date -1,F9.2 , 2P 6, 2,85/09/15 -3,F9.2 , 2 P 7, 2,*U JDATE F2\A2=%-1. 1,F9.2 , 2P 9, 2,P## 3,F3.0 , 2P 10, 2,D=0. 1,F4.0 , 2P 1, 3,SETUP -1,F9.2 , 2P 2, 3,A2 -1,F9.2 , 2P 3, 3,85/09/15 -1,F9.2 , 2P 4, 3,5. 3,F7.1 , 2P 5, 3,85/09/23 -1,F9.2 , 21P 6, 3,MAX[{B3]+1.\F3=%\*U WKDIN F3,A1\F3=% 1,F8.1 , 2OP 7, 3,G3=F3\*U JTOCH G3,C3\*U WKDIN G3,D3\G3=%\*U JTOCH G3,E3\A3=G3\%=G3 1,F9.2 , 2*P 8, 3,C3=F3\E3=G3\R=P\N=G3-G$1$\S=Q 1,F8.1 , 2P 9, 3,P## 3,F3.0 , 2P 10, 3,2. 3,F4.0 , 2TP 11, 3,B=H$1$*(F3-G$2$)+3.\C=H$1$*(G3-G$2$)+3.\D=0.\*U XQTCM CR J3 P#%BD:P#%CD -1,F9.2 , 2nP 12, 3,IF [N0.EQ.D0]M=1. | M=I3 \I3=MAX[M0,I3]\*P@ R0,S0\*P P#8#0 \IF [M0.GT.D0] P##=M | P##=MAX[I3,P##] -1,F9.2 , 2P 1, 4,MIDDLE A -1,F9.2 , 2P 2, 4,A3 -1,F9.2 , 2P 3, 4,85/09/24 -1,F9.2 , 2P 4, 4,5. 3,F7.1 , 2P 5, 4,85/10/01 -1,F9.2 , 2P 6, 4,MAX[{B4]+1. 1,F8.1 , 2OP 7, 4,G4=F4\*U JTOCH G4,C4\*U WKDIN G4,D4\G4=%\*U JTOCH G4,E4\A4=G4\%=G4 1,F9.2 , 2*P 8, 4,C4=F4\E4=G4\R=P\N=G4-G$1$\S=Q 1,F8.1 , 2P 9, 4,P## 3,F3.0 , 2P 10, 4,2. 3,F4.0 , 2TP 11, 4,B=H$1$*(F4-G$2$)+3.\C=H$1$*(G4-G$2$)+3.\D=0.\*U XQTCM CR J4 P#%BD:P#%CD -1,F9.2 , 2nP 12, 4,IF [N0.EQ.D0]M=1. | M=I4 \I4=MAX[M0,I4]\*P@ R0,S0\*P P#8#0 \IF [M0.GT.D0] P##=M | P##=MAX[I4,P##] -1,F9.2 , 2P 1, 5,MIDDLE B -1,F9.2 , 2P 2, 5,A3 -1,F9.2 , 2P 3, 5,85/09/24 -1,F9.2 , 2P 4, 5,5. 3,F7.1 , 2P 5, 5,85/10/01 -1,F9.2 , 2P 6, 5,MAX[{B5]+1. 1,F8.1 , 2OP 7, 5,G5=F5\*U JTOCH G5,C5\*U WKDIN G5,D5\G5=%\*U JTOCH G5,E5\A5=G5\%=G5 1,F9.2 , 2*P 800][)[ZYTADATADATADATADATADATA, 5,C5=F5\E5=G5\R=P\N=G5-G$1$\S=Q 1,F8.1 , 2P 9, 5,P## 3,F3.0 , 2P 10, 5,2. 3,F4.0 , 2TP 11, 5,B=H$1$*(F5-G$2$)+3.\C=H$1$*(G5-G$2$)+3.\D=0.\*U XQTCM CR J5 P#%BD:P#%CD -1,F9.2 , 2nP 12, 5,IF [N0.EQ.D0]M=1. | M=I5 \I5=MAX[M0,I5]\*P@ R0,S0\*P P#8#0 \IF [M0.GT.D0] P##=M | P##=MAX[I5,P##] -1,F9.2 , 2P 1, 6,END -1,F9.2 , 2P 2, 6,A3:A5 -1,F9.2 , 2P 3, 6,85/10/02 -1,F9.2 , 2P 4, 6,5. 3,F7.1 , 2P 5, 6,85/10/09 -1,F9.2 , 2P 6, 6,MAX[{B6]+1. 1,F8.1 , 2OP 7, 6,G6=F6\*U JTOCH G6,C6\*U WKDIN G6,D6\G6=%\*U JTOCH G6,E6\A6=G6\%=G6 1,F9.2 , 2*P 8, 6,C6=F6\E6=G6\R=P\N=G6-G$1$\S=Q 1,F8.1 , 2P 9, 6,P## 3,F3.0 , 2P 10, 6,2. 3,F4.0 , 2TP 11, 6,B=H$1$*(F6-G$2$)+3.\C=H$1$*(G6-G$2$)+3.\D=0.\*U XQTCM CR J6 P#%BD:P#%CD -1,F9.2 , 2nP 12, 6,IF [N0.EQ.D0]M=1. | M=I6 \I6=MAX[M0,I6]\*P@ R0,S0\*P P#8#0 \IF [M0.GT.D0] P##=M | P##=MAX[I6,P##] -1,F9.2 , 2P 14, 7,SUM[N3:N6] 1,F5.0 , 2P 15, 7,SUM[O3:O6] 1,F5.0 , 2P 16, 7,SUM[P3:P6] 1,F5.0 , 2P 17, 7,SUM[Q3:Q6] 1,F5.0 , 2P 18, 7,SUM[R3:R6] 1,F5.0 , 2P 19, 7,SUM[S3:S6] 1,F5.0 , 2P 20, 7,SUM[T3:T6] 1,F5.0 , 2P 21, 7,SUM[U3:U6] 1,F5.0 , 2P 22, 7,SUM[V3:V6] 1,F5.0 , 2P 23, 7,SUM[W3:W6] 1,F5.0 , 2P 24, 7,SUM[X3:X6] 1,F5.0 , 2P 25, 7,SUM[Y3:Y6] 1,F5.0 , 2P 26, 7,SUM[Z3:Z6] 1,F5.0 , 2P 27, 7,SUM[AA3:AA6] 1,F5.0 , 2P 28, 7,SUM[AB3:AB6] 1,F5.0 , 2P 29, 7,SUM[AC3:AC6] 1,F5.0 , 2P 30, 7,SUM[AD3:AD6] 1,F5.0 , 2P 31, 7,SUM[AE3:AE6] 1,F5.0 , 2P 32, 7,SUM[AF3:AF6] 1,F5.0 , 2P 33, 7,SUM[AG3:AG6] 1,F5.0 , 2P 34, 7,SUM[AH3:AH6] 1,F5.0 , 2P 35, 7,SUM[AI3:AI6] 1,F5.0 , 2P 36, 7,SUM[AJ3:AJ6] 1,F5.0 , 2P 37, 7,SUM[AK3:AK6] 1,F5.0 , 2M64001,64001, 1 2 1,F5.0 , 2M64001,64002, 1 3 1,F5.0 , 2M64001,64003, 1 4 1,F5.0 , 2M64001,64004, 1 5 1,F5.0 , 2M64001,64005, 1 6 1,F5.0 , 2M64001,64006, 1 7 1,F5.0 , 2M64001,64007, 1 8 1,F5.0 , 2M64001,64008, 1 9 1,F5.0 , 2M64001,64009, 1 10 1,F5.0 , 2M64001,64010, 1 11 1,F5.0 , 2M64001,64011, 1 12 1,F5.0 , 2M64001,64012, 1 13 1,F5.0 , 2M64001,64013, 1 14 1,F5.0 , 2M64001,64014, 1 15 1,F5.0 , 2M64001,64015, 1 16 1,F5.0 , 2M64001,64016, 1 17 1,F5.0 , 2M64001,64017, 1 18 1,F5.0 , 2M64001,64018, 1 19 1,F5.0 , 2M64001,64019, 1 20 1,F5.0 , 2M64001,64020, 1 21 1,F5.0 , 2M64002,64001, 2 2 1,F5.0 , 2M64002,64002, 2 3 1,F5.0 , 2M64002,64003, 2 4 1,F5.0 , 2M64002,64004, 2 5 1,F5.0 , 2M64002,64005, 2 6 1,F5.0 , 2M64002,64006, 2 7 1,F5.0 , 2M64002,64007, 2 8 1,F5.0 , 2M64002,64008, 2 9 1,F5.0 , 2M64002,64009, 2 10 1,F5.0 , 2M64002,64010, 2 11 1,F5.0 , 2M64002,64011, 2 12 1,F5.0 , 2M64002,64012, 2 13 1,F5.0 , 2M64002,64013, 2 14 1,F5.0 , 2M64002,64014, 2 15 1,F5.0 , 2M64002,64015, 00][[[Y[Z[[[\[} 2 16 1,F5.0 , 2M64002,64016, 2 17 1,F5.0 , 2M64002,64017, 2 18 1,F5.0 , 2M64002,64018, 2 19 1,F5.0 , 2M64002,64019, 2 20 1,F5.0 , 2M64002,64020, 2 21 1,F5.0 , 2M64003,64001, 3 2 1,F5.0 , 2M64003,64002, 3 3 1,F5.0 , 2M64003,64003, 3 4 1,F5.0 , 2M64003,64004, 3 5 1,F5.0 , 2M64003,64005, 3 6 1,F5.0 , 2M64003,64006, 3 7 1,F5.0 , 2M64003,64007, 3 8 1,F5.0 , 2M64003,64008, 3 9 1,F5.0 , 2M64003,64009, 3 10 1,F5.0 , 2M64003,64010, 3 11 1,F5.0 , 2M64003,64011, 3 12 1,F5.0 , 2M64003,64012, 3 13 1,F5.0 , 2M64003,64013, 3 14 1,F5.0 , 2M64003,64014, 3 15 1,F5.0 , 2M64003,64015, 3 16 1,F5.0 , 2M64003,64016, 3 17 1,F5.0 , 2M64003,64017, 3 18 1,F5.0 , 2M64003,64018, 3 19 1,F5.0 , 2M64003,64019, 3 200 1,F5.0 , 2M64003,64020, 3 21 1,F5.0 , 2NM64004,64001, 4 2 1,F5.0 , 2M64004,64002, 4 3 1,F5.0 , 2M64004,64003, 4 4 1,F5.0 , 2M64004,64004, 4 5 1,F5.0 , 2 M64004,64005, 4 6 1,F5.0 , 2M64004,64006, 4 7 1,F5.0 , 2M64004,64007, 4 8 1,F5.0 , 2M64004,64008, 4 9 1,F5.0 , 2M64004,64009, 4 10 1,F5.0 , 2M64004,64010, 4 11 1,F5.0 , 2M64004,64011, 4 12 1,F5.0 , 2M64004,64012, 4 13 1,F5.0 , 2M64004,64013, 4 14 1,F5.0 , 2M64004,64014, 4 15 1,F5.0 , 2M64004,64015, 4 164 1,F5.0 , 2 M64004,64016, 4 17{ 1,F5.0 , 2,M64004,64017, 4 18  1,F5.0 , 2GM64004,64018, 4 194 1,F5.0 , 2,M64004,64019, 4 20= 1,F5.0 , 2M64004,64020, 4 21  1,F5.0 , 2 M64005,64001, 5 2  1,F5.0 , 2 M64005,64002, 5 3. 1,F5.0 , 2DM64005,64003, 5 4D 1,F5.0 , 2 M64005,64004, 5 5= 1,F5.0 , 2IM64005,64005, 5 6. 1,F5.0 , 2XM64005,64006, 5 7, 1,F5.0 , 2 M64005,64007, 5 8  1,F5.0 , 22M64005,64008, 5 9/ 1,F5.0 , 2,M64005,64009, 5 10, 1,F5.0 , 2 M64005,64010, 5 11  1,F5.0 , 2 M64005,64011, 5 12, 1,F5.0 , 2GM64005,64012, 5 13G 1,F5.0 , 2,M64005,64013, 5 14, 1,F5.0 , 2CM64005,64014, 5 15 1,F5.0 , 2M64005,64015, 5 16  1,F5.0 , 25M64005,64016, 5 17  1,F5.0 , 2-M64005,64017, 5 18D 1,F5.0 , 2%M64005,64018, 5 19, 1,F5.0 , 2.M64005,64019, 5 20I 1,F5.0 , 2 M64005,64020, 5 21X 1,F5.0 , 2 M64006,64001, 6 2- 1,F5.0 , 2 M64006,64002, 6 3  1,F5.0 , 26M64006,64003, 6 4  1,F5.0 , 2M64006,64004, 6 5  1,F5.0 , 29M64006,64005, 6 6M 1,F5.0 , 2 M64006,64006, 6 76 1,F5.0 , 2DM64006,64007, 6 8A 1,F5.0 , 2 M64006,64008, 6 96 1,F5.0 , 2SM64006,64009, 6 10  1,F5.0 , 20M64006,64010, 6 11 1,F5.0 , 2 M64006,64011, 6 12$ 1,F5.0 , 2+M64006,64012, 6 13P 1,F5.0 , 2 M64006,64013, 6 14D 1,F5.0 , 2[M6400600][^[ZYTADATADATADATADATADATA,64014, 6 15  1,F5.0 , 2#M64006,64015, 6 16  1,F5.0 , 2MM64006,64016, 6 17, 1,F5.0 , 2:M64006,64017, 6 18  1,F5.0 , 2 M64006,64018, 6 197 1,F5.0 , 2 M64006,64019, 6 20  1,F5.0 , 25M64006,64020, 6 21S 1,F5.0 , 2 M64007,64001, 9 2T 1,F5.0 , 2,M64007,64002, 9 36 1,F5.0 , 2 M64007,64003, 9 4 1,F5.0 , 2M64007,64004, 9 5, 1,F5.0 , 2 M64007,64005, 9 60 1,F5.0 , 2 M64007,64006, 9 7  1,F5.0 , 27M64007,64007, 9 8  1,F5.0 , 2MM64007,64008, 9 9  1,F5.0 , 2AM64007,64009, 9 10, 1,F5.0 , 23M64007,64010, 9 11 1,F5.0 , 2AM64007,64011, 9 12  1,F5.0 , 26M64007,64012, 9 13  1,F5.0 , 2 M64007,64013, 9 143 1,F5.0 , 2M64007,64014, 9 15  1,F5.0 , 2 M64007,64015, 9 16  1,F5.0 , 2,M64007,64016, 9 177 1,F5.0 , 25M64007,64017, 9 18S 1,F5.0 , 20M64007,64018, 9 19  1,F5.0 , 20M64007,64019, 9 20  1,F5.0 , 20M64007,64020, 9 21  1,F5.0 , 20M64008,64001, 10 2  1,F5.0 , 20M64008,64002, 10 3  1,F5.0 , 20M64008,64003, 10 4  1,F5.0 , 20M64008,64004, 10 5  1,F5.0 , 20M64008,64005, 10 6  1,F5.0 , 20M64008,64006, 10 7  1,F5.0 , 20M64008,64007, 10 8  1,F5.0 , 20M64008,64008, 10 9  1,F5.0 , 20M64008,64009, 10 10  1,F5.0 , 20M64008,64010, 10 11  1,F5.0 , 20M64008,64011, 10 12  1,F5.0 , 20M64008,64012, 10 13  1,F5.0 , 20M64008,64013, 10 14  1,F5.0 , 20M64008,64014, 10 15  1,F5.0 , 20M64008,64015, 10 16  1,F5.0 , 20M64008,64016, 10 17  1,F5.0 , 20M64008,64017, 10 18  1,F5.0 , 20M64008,64018, 10 19  1,F5.0 , 20M64008,64019, 10 20  1,F5.0 , 20M64008,64020, 10 21  1,F5.0 , 20Project Planning Path Sheet 8 40 17 17 10 10 10 10 8 8 4 6 6 9 4 4 4 12 20P 1, 1,Function -1,F9.2 , 2P 2, 1,Preconditions -1,F9.2 , 2P 3, 1,Start -1,F9.2 , 2P 4, 1,Duration -1,F9.2 , 2P 5, 1,End -1,F9.2 , 2P 6, 1,Proj Start -1,F9.2 , 2P 7, 1,MAX[G3:G6] 1,F9.2 , 2EP 8, 1,A=24.\24./(G1-G2+.000001)\H1=%\IF [H1.GT.A0]H1=A | H1=H1 1,F7.1 , 2P 9, 1,Crt -1,F9.2 , 2P 10, 1, Resrc -1,F9.2 , 2P 11, 1,H=CNT[G1:G400]-3.0 1,F9.2 , 2zP 12, 1,------------------------------------------------------------------------------------------------------------- -3,F9.2 , 2"P 14, 1,I=1.\J=12.\K=38.\D=0. 1,F9.2 , 2P 27, 1,P##+0. 1,F9.2 , 2P 28, 1,P##+0. 1,F9.2 , 2P 29, 1,P##+0. 1,F9.2 , 2P 30, 1,P##+0. 1,F9.2 , 2P 31, 1,P##+0. 1,F9.2 , 2P 32, 1,P##+0. 1,F9.2 , 2P 33, 1,P##+0. 1,F9.2 , 2P 34, 1,P##+0. 1,F9.2 , 2P 35, 1,P##+0. 1,F9.2 , 2P 36, 1,P##+0. 1,F9.2 , 2P 37, 1,P##+0. 1,F9.2 , 2P 38, 1,P##+0. 1,F9.2 , 2P 39, 1,P##+0. 1,F9.2 , 2P 40, 1,P##+0. 1,F9.2 , 2P 41, 1,P##+0.00^[[[Y[Z[[[\[} 1,F9.2 , 2P 42, 1,P##+0. 1,F9.2 , 2P 43, 1,P##+0. 1,F9.2 , 2P 44, 1,P##+0. 1,F9.2 , 2P 45, 1,P##+0. 1,F9.2 , 2P 46, 1,P##+0. 1,F9.2 , 2P 47, 1,P##+0. 1,F9.2 , 2P 48, 1,P##+0. 1,F9.2 , 2P 49, 1,P##+0. 1,F9.2 , 2P 50, 1,P##+0. 1,F9.2 , 2P 51, 1,P##+0. 1,F9.2 , 2P 52, 1,P##+0. 1,F9.2 , 2zP 54, 1,============================================================================================================= -3,F9.2 , 2P 1, 2,Name -1,F9.2 , 2P 2, 2,(Addresses) -1,F9.2 , 2P 3, 2,Date -1,F9.2 , 2P 4, 2,(Days) -1,F9.2 , 2P 5, 2,Date -1,F9.2 , 2P 6, 2,85/09/15 -3,F9.2 , 2 P 7, 2,*U JDATE F2\A2=%-1. 1,F9.2 , 2P 9, 2,P## 3,F3.0 , 2P 10, 2,D=0. 1,F9.2 , 2zP 12, 2,============================================================================================================= -3,F9.2 , 2P 27, 2,P##+0. 1,F9.2 , 2P 28, 2,P##+0. 1,F9.2 , 2P 29, 2,P##+0. 1,F9.2 , 2P 30, 2,P##+0. 1,F9.2 , 2P 31, 2,P##+0. 1,F9.2 , 2P 32, 2,P##+0. 1,F9.2 , 2P 33, 2,P##+0. 1,F9.2 , 2P 34, 2,P##+0. 1,F9.2 , 2P 35, 2,P##+0. 1,F9.2 , 2P 36, 2,P##+0. 1,F9.2 , 2P 37, 2,P##+0. 1,F9.2 , 2P 38, 2,P##+0. 1,F9.2 , 2P 39, 2,P##+0. 1,F9.2 , 2P 40, 2,P##+0. 1,F9.2 , 2P 41, 2,P##+0. 1,F9.2 , 2P 42, 2,P##+0. 1,F9.2 , 2P 43, 2,P##+0. 1,F9.2 , 2P 44, 2,P##+0. 1,F9.2 , 2P 45, 2,P##+0. 1,F9.2 , 2P 46, 2,P##+0. 1,F9.2 , 2P 47, 2,P##+0. 1,F9.2 , 2P 48, 2,P##+0. 1,F9.2 , 2P 49, 2,P##+0. 1,F9.2 , 2P 50, 2,P##+0. 1,F9.2 , 2P 51, 2,P##+0. 1,F9.2 , 2P 52, 2,P##+0. 1,F9.2 , 2wP 54, 2, " -3,F9.2 , 2P 1, 3,SETUP -1,F9.2 , 2P 2, 3,A2 -1,F9.2 , 2P 3, 3,85/09/15 -1,F9.2 , 2P 4, 3,7. 3,F7.1 , 2P 5, 3,85/09/22 -1,F9.2 , 2P 6, 3,MAX[{B3]+1. 1,F8.1 , 2FP 7, 3,G3=F3\*U JTOCH G3,C3\%=G3=G3+D3\*U JTOCH G3,E3\A3=G3\%=G3 1,F9.2 , 2*P 8, 3,C3=F3\E3=G3\R=P\N=G3-G$1$\S=Q 1,F8.1 , 2P 9, 3,P## 3,F3.0 , 2P 10, 3,1. 3,F5.0 , 2bP 11, 3,B=H$1$*(F3-G$2$)+14.\C=H$1$*(G3-G$2$)+14.\*U MMPYC AA1:AZ1,AA1:AZ1,D0\*U HERE \O=2.-U -1,F9.2 , 2nP 12, 3,IF [N0.EQ.D0]M=1. | M=I3 \I3=MAX[M0,I3]\*P@ R0,S0\*P P#8#0 \IF [M0.GT.D0] P##=M | P##=MAX[I3,P##] -1,F9.2 , 2LP 13, 3,*U XQTCM CV J3 P#%BO:P#%CO \*U MOVEV AA1:AZ1,AA2:AZ2\B=11.\C=1. -1,F5.0 , 2jP 14, 3,*U MMPYC AA1:AZ1,AA2:AZ2,P#%CD\G=O+C\*U MADDV AA2:AZ2,P#%JG:P#%KG,P#%JG:P#%KG\C=C+1.\B=B-1.\< -1,F9.2 , 2P 15, 3,1. 3,F9.2 , 2P 16, 3,2. 3,F9.2 , 2P 17, 3,2. 3,F9.2 , 2P 18, 3,1. 3,F9.2 , 2P 19, 3,4. 3,F9.2 , 2P 20, 3,3. 3,F9.2 , 2P 21, 3,2.2 3,F9.2 , 2P 22, 3,6. 3,F9.2 , 2P 23, 3,4. 3,F9.2 , 2P 24, 3,2. 3,F9.2 , 2P 27, 3,P##+0. 1,F9.2 , 2P 28, 3,P##+0. 1,F9.2 , 2P 29, 3,P##+0. 1,F9.2 , 2P 30, 3,P##+0. 1,F9.2 , 2P 31, 3,P##+0. 1,F9.2 , 200^[[ZYTADATADATADATADATADATAP 32, 3,P##+0. 1,F9.2 , 2P 33, 3,P##+0. 1,F9.2 , 2P 34, 3,P##+0. 1,F9.2 , 2P 35, 3,P##+0. 1,F9.2 , 2P 36, 3,P##+0. 1,F9.2 , 2P 37, 3,P##+0. 1,F9.2 , 2P 38, 3,P##+0. 1,F9.2 , 2P 39, 3,P##+0. 1,F9.2 , 2P 40, 3,P##+0. 1,F9.2 , 2P 41, 3,P##+0. 1,F9.2 , 2P 42, 3,P##+0. 1,F9.2 , 2P 43, 3,P##+0. 1,F9.2 , 2P 44, 3,P##+0. 1,F9.2 , 2P 45, 3,P##+0. 1,F9.2 , 2P 46, 3,P##+0. 1,F9.2 , 2P 47, 3,P##+0. 1,F9.2 , 2P 48, 3,P##+0. 1,F9.2 , 2P 49, 3,P##+0. 1,F9.2 , 2P 50, 3,P##+0. 1,F9.2 , 2P 51, 3,P##+0. 1,F9.2 , 2P 52, 3,P##+0. 1,F9.2 , 2aP 54, 3,*U XQTCM CA BB$2$ BD3:CA3\IF [I3.EQ.D0]*U XQTCM CA L$1$ BB$1$|*U XQTCM CA L$2$ BB$1$ -1,F9.2 , 2RP 55, 3,B=H$1$*(F3-G$2$)+1.\C=H$1$*(G3-G$2$)+1.\*U XQTCM CA BB$1$ P#%BD:P#%CD -1,F9.2 , 2zP 56, 3,============================================================================================================= -3,F9.2 , 2zP 57, 3,============================================================================================================= -3,F9.2 , 2zP 58, 3,============================================================================================================= -3,F9.2 , 2zP 59, 3,============================================================================================================= -3,F9.2 , 2zP 60, 3,============================================================================================================= -3,F9.2 , 2zP 61, 3,============================================================================================================= -3,F9.2 , 2zP 62, 3,============================================================================================================= -3,F9.2 , 2zP 63, 3,============================================================================================================= -3,F9.2 , 2wP 64, 3, " -3,F9.2 , 2wP 65, 3, " -3,F9.2 , 2wP 66, 3, " -3,F9.2 , 2wP 67, 3, " -3,F9.2 , 2wP 68, 3, " -3,F9.2 , 2wP 69, 3, " -3,F9.2 , 2wP 70, 3, " -3,F9.2 , 2wP 71, 3, " -3,F9.2 , 2wP 72, 3, " -3,F9.2 , 2wP 73, 3, " -3,F9.2 , 2wP 74, 3, " -3,F9.2 , 2wP 75, 3, " -3,F9.2 , 2wP 76, 3, 00^[[[Y[Z[[[\[} " -3,F9.2 , 2wP 77, 3, " -3,F9.2 , 2wP 78, 3, " -3,F9.2 , 2wP 79, 3, " -3,F9.2 , 2P 1, 4,MIDDLE A -1,F9.2 , 2P 2, 4,A3 -1,F9.2 , 2P 3, 4,85/09/23 -1,F9.2 , 2P 4, 4,7. 3,F7.1 , 2P 5, 4,85/09/30 -1,F9.2 , 2P 6, 4,MAX[{B4]+1. 1,F8.1 , 2FP 7, 4,G4=F4\*U JTOCH G4,C4\%=G4=G4+D4\*U JTOCH G4,E4\A4=G4\%=G4 1,F9.2 , 2*P 8, 4,C4=F4\E4=G4\R=P\N=G4-G$1$\S=Q 1,F8.1 , 2P 9, 4,P## 3,F3.0 , 2P 10, 4,1. 3,F5.0 , 2bP 11, 4,B=H$1$*(F4-G$2$)+14.\C=H$1$*(G4-G$2$)+14.\*U MMPYC AA2:AZ2,AA2:AZ2,D0\*U HERE \O=2.-U -1,F9.2 , 2nP 12, 4,IF [N0.EQ.D0]M=1. | M=I4 \I4=MAX[M0,I4]\*P@ R0,S0\*P P#8#0 \IF [M0.GT.D0] P##=M | P##=MAX[I4,P##] -1,F9.2 , 2LP 13, 4,*U XQTCM CV J4 P#%BO:P#%CO \*U MOVEV AA1:AZ1,AA2:AZ2\B=11.\C=1. -1,F5.0 , 2jP 14, 4,*U MMPYC AA1:AZ1,AA2:AZ2,P#%CD\G=O+C\*U MADDV AA2:AZ2,P#%JG:P#%KG,P#%JG:P#%KG\C=C+1.\B=B-1.\< -1,F9.2 , 2P 15, 4,1. 3,F9.2 , 2P 16, 4,2. 3,F9.2 , 2P 17, 4,2. 3,F9.2 , 2P 18, 4,1. 3,F9.2 , 2P 19, 4,4. 3,F9.2 , 2P 20, 4,3. 3,F9.2 , 2P 21, 4,2.2 3,F9.2 , 2P 22, 4,6. 3,F9.2 , 2P 23, 4,4. 3,F9.2 , 2P 24, 4,2. 3,F9.2 , 2P 27, 4,P##+0. 1,F9.2 , 2P 28, 4,P##+0. 1,F9.2 , 2P 29, 4,P##+0. 1,F9.2 , 2P 30, 4,P##+0. 1,F9.2 , 2P 31, 4,P##+0. 1,F9.2 , 2P 32, 4,P##+0. 1,F9.2 , 2P 33, 4,P##+0. 1,F9.2 , 2P 34, 4,P##+0. 1,F9.2 , 2P 35, 4,P##+0. 1,F9.2 , 2P 36, 4,P##+0. 1,F9.2 , 2P 37, 4,P##+0. 1,F9.2 , 2P 38, 4,P##+0. 1,F9.2 , 2P 39, 4,P##+0. 1,F9.2 , 2P 40, 4,P##+0. 1,F9.2 , 2P 41, 4,P##+0. 1,F9.2 , 2P 42, 4,P##+0. 1,F9.2 , 2P 43, 4,P##+0. 1,F9.2 , 2P 44, 4,P##+0. 1,F9.2 , 2P 45, 4,P##+0. 1,F9.2 , 2P 46, 4,P##+0. 1,F9.2 , 2P 47, 4,P##+0. 1,F9.2 , 2P 48, 4,P##+0. 1,F9.2 , 2P 49, 4,P##+0. 1,F9.2 , 2P 50, 4,P##+0. 1,F9.2 , 2P 51, 4,P##+0. 1,F9.2 , 2P 52, 4,P##+0. 1,F9.2 , 2aP 54, 4,*U XQTCM CA BB$2$ BD4:CA4\IF [I4.EQ.D0]*U XQTCM CA L$1$ BB$1$|*U XQTCM CA L$2$ BB$1$ -1,F9.2 , 2RP 55, 4,B=H$1$*(F4-G$2$)+1.\C=H$1$*(G4-G$2$)+1.\*U XQTCM CA BB$1$ P#%BD:P#%CD -1,F9.2 , 2wP 56, 4, " -3,F9.2 , 2wP 57, 4, " -3,F9.2 , 2wP 58, 4, " -3,F9.2 , 2wP 59, 4, " -3,F9.2 , 2wP 60, 4, " -3,F9.2 , 2wP 61, 4, 00^\[ZYTADATADATADATADATADATA " -3,F9.2 , 2wP 62, 4, " -3,F9.2 , 2wP 63, 4, " -3,F9.2 , 2zP 64, 4,============================================================================================================= -3,F9.2 , 2zP 65, 4,============================================================================================================= -3,F9.2 , 2zP 66, 4,============================================================================================================= -3,F9.2 , 2zP 67, 4,============================================================================================================= -3,F9.2 , 2zP 68, 4,============================================================================================================= -3,F9.2 , 2zP 69, 4,============================================================================================================= -3,F9.2 , 2zP 70, 4,============================================================================================================= -3,F9.2 , 2zP 71, 4,============================================================================================================= -3,F9.2 , 2wP 72, 4, " -3,F9.2 , 2wP 73, 4, " -3,F9.2 , 2wP 74, 4, " -3,F9.2 , 2wP 75, 4, " -3,F9.2 , 2wP 76, 4, " -3,F9.2 , 2wP 77, 4, " -3,F9.2 , 2wP 78, 4, " -3,F9.2 , 2wP 79, 4, "  -3,F9.2 , 2 P 1, 5,MIDDLE B  -1,F9.2 , 21P 2, 5,A3 -1,F9.2 , 22P 3, 5,85/09/23- -1,F9.2 , 2 P 4, 5,7. 3,F7.1 , 2P 5, 5,85/09/30 -1,F9.2 , 2P 6, 5,MAX[{B5]+1. 1,F8.1 , 2 FP 7, 5,G5=F5\*U JTOCH G5,C5\%=G5=G5+D5\*U JTOCH G5,E5\A5=G5\%=G5 1,F9.2 , 28*P 8, 5,C5=F5\E5=G5\R=P\N=G5-G$1$\S=Q 1,F8.1 , 2P 9, 5,P## 3,F3.0 , 2P 10, 5,1. 3,F5.0 , 2rbP 11, 5,B=H$1$*(F5-G$2$)+14.\C=H$1$*(G5-G$2$)+14.\*U MMPYC AA3:AZ3,AA3:AZ3,D0\*U HERE \O=2.-U -1,F9.2 , 2-nP 12, 5,IF [N0.EQ.D0]M=1. | M=I5 \I5=MAX[M0,I5]\*P@ R0,S0\*P P#8#0 \IF [M0.GT.D0] P##=M | P##=MAX[I5,P##] -1,F9.2 , 28LP 13, 5,*U XQTCM CV J5 P#%BO:P#%CO \*U MOVEV AA1:AZ1,AA2:AZ2\B=11.\C=1. -1,F5.0 , 2,jP 14, 5,*U MMPYC AA1:AZ1,AA2:AZ2,P#%CD\G=O+C\*U MADDV AA2:AZ2,P#%JG:P#%KG,P#%JG:P#%KG\C=C+1.\B=B-1.\< -1,F9.2 , 2 P 15, 5,1. 3,F9.2 , 2P 16, 5,2. 3,F9.2 , 2#P 17, 5,2. 3,F9.2 , 21P 18, 5,1. 3,F9.2 , 2 P 19, 5,4. 3,F9.2 , 2 P 20, 5,3. 3,F9.2 , 2P 21, 5,2.2 3,F9.2 , 2 P 22, 5,6. 3,F9.2 , 2,P 23, 5,4. 3,F9.2 , 2 P 24, 5,2. 3,F9.2 , 29P 27, 5,P##+0.1 1,F9.2 00^ \[[Y[Z[[[\[} , 29P 28, 5,P##+0.2 1,F9.2 , 29P 29, 5,P##+0.3 1,F9.2 , 29P 30, 5,P##+0.4 1,F9.2 , 29P 31, 5,P##+0.5 1,F9.2 , 29P 32, 5,P##+0.6 1,F9.2 , 29P 33, 5,P##+0.7 1,F9.2 , 29P 34, 5,P##+0.8 1,F9.2 , 29P 35, 5,P##+0.9 1,F9.2 , 29P 36, 5,P##+0.0 1,F9.2 , 29P 37, 5,P##+0.1 1,F9.2 , 29P 38, 5,P##+0.2 1,F9.2 , 29P 39, 5,P##+0.4 1,F9.2 , 2=P 40, 5,P##+0.= 1,F9.2 , 2=P 41, 5,P##+0.= 1,F9.2 , 2=P 42, 5,P##+0., 1,F9.2 , 2NP 43, 5,P##+0.  1,F9.2 , 2dP 44, 5,P##+0.  1,F9.2 , 22P 45, 5,P##+0., 1,F9.2 , 2(P 46, 5,P##+0., 1,F9.2 , 2DP 47, 5,P##+0.  1,F9.2 , 2/P 48, 5,P##+0., 1,F9.2 , 2*P 49, 5,P##+0.  1,F9.2 , 2 P 50, 5,P##+0.3 1,F9.2 , 20P 51, 5,P##+0.2 1,F9.2 , 2 P 52, 5,P##+0.= 1,F9.2 , 2=aP 54, 5,*U XQTCM CA BB$2$ BD5:CA5\IF [I5.EQ.D0]*U XQTCM CA L$1$ BB$1$|*U XQTCM CA L$2$ BB$1$7 -1,F9.2 , 29RP 55, 5,B=H$1$*(F5-G$2$)+1.\C=H$1$*(G5-G$2$)+1.\*U XQTCM CA BB$1$ P#%BD:P#%CD -1,F9.2 , 2 wP 56, 5, ", -3,F9.2 , 2PwP 57, 5, "  -3,F9.2 , 2,wP 58, 5, "# -3,F9.2 , 2 wP 59, 5, "9 -3,F9.2 , 23wP 60, 5, "  -3,F9.2 , 20wP 61, 5, "  -3,F9.2 , 22wP 62, 5, " -3,F9.2 , 2wP 63, 5, " -3,F9.2 , 2zP 64, 5,------------------------------------------------------------------------------------------------------------- -3,F9.2 , 2zP 65, 5,------------------------------------------------------------------------------------------------------------- -3,F9.2 , 2 zP 66, 5,------------------------------------------------------------------------------------------------------------- -3,F9.2 , 2PzP 67, 5,------------------------------------------------------------------------------------------------------------- -3,F9.2 , 2,zP 68, 5,------------------------------------------------------------------------------------------------------------- -3,F9.2 , 2IzP 69, 5,------------------------------------------------------------------------------------------------------------- -3,F9.2 , 2 zP 70, 5,------------------------------------------------------------------------------------------------------------- -3,F9.2 , 2,zP 71, 5,------------------------------------------------------------------------------------------------------------- -3,F9.2 , 2wP 72, 5, "  -3,F9.2 , 2 wP 73, 5, " -3,F9.2 , 2wP 74, 5, "3 -3,F9.2 , 2 wP 7500^\[ZYTADATADATADATADATADATA, 5, "  -3,F9.2 , 2 wP 76, 5, ", -3,F9.2 , 2PwP 77, 5, "  -3,F9.2 , 2,wP 78, 5, "# -3,F9.2 , 2 wP 79, 5, "9 -3,F9.2 , 28P 1, 6,END -1,F9.2 , 2 P 2, 6,A3:A5 -1,F9.2 , 2P 3, 6,85/10/01  -1,F9.2 , 2 P 4, 6,7. 3,F7.1 , 2P 5, 6,85/10/08 -1,F9.2 , 2P 6, 6,MAX[{B6]+1. 1,F8.1 , 2QFP 7, 6,G6=F6\*U JTOCH G6,C6\%=G6=G6+D6\*U JTOCH G6,E6\A6=G6\%=G6 1,F9.2 , 2**P 8, 6,C6=F6\E6=G6\R=P\N=G6-G$1$\S=Q 1,F8.1 , 2-P 9, 6,P## 3,F3.0 , 2=P 10, 6,1. 3,F5.0 , 2=bP 11, 6,B=H$1$*(F6-G$2$)+14.\C=H$1$*(G6-G$2$)+14.\*U MMPYC AA4:AZ4,AA4:AZ4,D0\*U HERE \O=2.-U -1,F9.2 , 2=nP 12, 6,IF [N0.EQ.D0]M=1. | M=I6 \I6=MAX[M0,I6]\*P@ R0,S0\*P P#8#0 \IF [M0.GT.D0] P##=M | P##=MAX[I6,P##] -1,F9.2 , 2=LP 13, 6,*U XQTCM CV J6 P#%BO:P#%CO \*U MOVEV AA1:AZ1,AA2:AZ2\B=11.\C=1. -1,F5.0 , 2jP 14, 6,*U MMPYC AA1:AZ1,AA2:AZ2,P#%CD\G=O+C\*U MADDV AA2:AZ2,P#%JG:P#%KG,P#%JG:P#%KG\C=C+1.\B=B-1.\< -1,F9.2 , 2=P 15, 6,1. 3,F9.2 , 2 P 16, 6,2. 3,F9.2 , 2=P 17, 6,2. 3,F9.2 , 2=P 18, 6,1. 3,F9.2 , 2=P 19, 6,4. 3,F9.2 , 2=P 20, 6,3. 3,F9.2 , 2=P 21, 6,2.2 3,F9.2 , 2=P 22, 6,6. 3,F9.2 , 2 P 23, 6,4. 3,F9.2 , 2=P 24, 6,2. 3,F9.2 , 2=P 27, 6,P##+0.= 1,F9.2 , 2=P 28, 6,P##+0.  1,F9.2 , 23P 29, 6,P##+0.= 1,F9.2 , 2=P 30, 6,P##+0.= 1,F9.2 , 2=P 31, 6,P##+0.= 1,F9.2 , 2P 32, 6,P##+0.  1,F9.2 , 2 P 33, 6,P##+0.  1,F9.2 , 2 P 34, 6,P##+0.  1,F9.2 , 22P 35, 6,P##+0.  1,F9.2 , 2 P 36, 6,P##+0.  1,F9.2 , 2 P 37, 6,P##+0.  1,F9.2 , 2 P 38, 6,P##+0.  1,F9.2 , 2 P 39, 6,P##+0.  1,F9.2 , 2 P 40, 6,P##+0.  1,F9.2 , 2 P 41, 6,P##+0.9 1,F9.2 , 27P 42, 6,P##+0.  1,F9.2 , 2 P 43, 6,P##+0.  1,F9.2 , 2 P 44, 6,P##+0.  1,F9.2 , 2 P 45, 6,P##+0.  1,F9.2 , 2 P 46, 6,P##+0.  1,F9.2 , 2 P 47, 6,P##+0.  1,F9.2 , 2,P 48, 6,P##+0.  1,F9.2 , 2 P 49, 6,P##+0.  1,F9.2 , 2 P 50, 6,P##+0.  1,F9.2 , 2 P 51, 6,P##+0., 1,F9.2 , 2 P 52, 6,P##+0.  1,F9.2 , 2 aP 54, 6,*U XQTCM CA BB$2$ BD6:CA6\IF [I6.EQ.D0]*U XQTCM CA L$1$ BB$1$|*U XQTCM CA L$2$ BB$1$  -1,F9.2 , 2 RP 55, 6,B=H$1$*(F6-G$2$)+1.\C=H$1$*(G6-G$2$)+1.\*U XQTCM CA BB$1$ P#%BD:P#%CD -1,F9.2 , 2wP 56, 6, " -3,F9.2 , 2wP 57, 6, " -3,F9.2 , 2wP 58, 6, " -3,F9.2 , 2wP 59, 6, " -3,F9.2 , 2wP 60, 6, 00^\[[Y[Z[[[\[} " -3,F9.2 , 2wP 61, 6, " -3,F9.2 , 2wP 62, 6, " -3,F9.2 , 2wP 63, 6, " -3,F9.2 , 2wP 64, 6, "  -3,F9.2 , 2 wP 65, 6, " -3,F9.2 , 2*wP 66, 6, ", -3,F9.2 , 2 wP 67, 6, "G -3,F9.2 , 2:wP 68, 6, "# -3,F9.2 , 2#wP 69, 6, " -3,F9.2 , 2wP 70, 6, ", -3,F9.2 , 21wP 71, 6, " -3,F9.2 , 2zP 72, 6,============================================================================================================= -3,F9.2 , 29zP 73, 6,============================================================================================================= -3,F9.2 , 28zP 74, 6,============================================================================================================= -3,F9.2 , 2zP 75, 6,============================================================================================================= -3,F9.2 , 2 zP 76, 6,============================================================================================================= -3,F9.2 , 2 zP 77, 6,============================================================================================================= -3,F9.2 , 20zP 78, 6,============================================================================================================= -3,F9.2 , 2 zP 79, 6,============================================================================================================= -3,F9.2 , 2 P 27, 7,P##+0.  1,F9.2 , 2 P 28, 7,P##+0.  1,F9.2 , 2 P 29, 7,P##+0.  1,F9.2 , 2 P 30, 7,P##+0.  1,F9.2 , 2 P 31, 7,P##+0.  1,F9.2 , 2 P 32, 7,P##+0.A 1,F9.2 , 2.P 33, 7,P##+0.$ 1,F9.2 , 22P 34, 7,P##+0.  1,F9.2 , 24P 35, 7,P##+0.C 1,F9.2 , 2 P 36, 7,P##+0.P 1,F9.2 , 2 P 37, 7,P##+0.  1,F9.2 , 2 P 38, 7,P##+0.  1,F9.2 , 2 P 39, 7,P##+0.  1,F9.2 , 2,P 40, 7,P##+0.  1,F9.2 , 2 P 41, 7,P##+0.  1,F9.2 , 2 P 42, 7,P##+0.  1,F9.2 , 2 P 43, 7,P##+0., 1,F9.2 , 2 P 44, 7,P##+0.  1,F9.2 , 2 P 45, 7,P##+0.  1,F9.2 , 2 P 46, 7,P##+0.- 1,F9.2 , 2 P 47, 7,P##+0.  1,F9.2 , 2 P 48, 7,P##+0.  1,F9.2 , 2 P 49, 7,P##+0.  1,F9.2 , 2 P 50, 7,P##+0.4 1,F9.2 , 2 P 51, 7,P##+0.  1,F9.2 , 2 P 52, 7,P##+0.  1,F9.2 , 2P 27, 8,P##+0. 1,F9.2 , 2 P 28, 8,P##+0.  1,F9.2 , 2 P 29, 8,P00^"\_%\ZYTADATADATADATADATADATA##+0.  1,F9.2 , 2 P 30, 8,P##+0.  1,F9.2 , 2 P 31, 8,P##+0.  1,F9.2 , 2 P 32, 8,P##+0.  1,F9.2 , 2 P 33, 8,P##+0. 1,F9.2 , 2P 34, 8,P##+0.  1,F9.2 , 2 P 35, 8,P##+0.  1,F9.2 , 2 P 36, 8,P##+0.  1,F9.2 , 22P 37, 8,P##+0.  1,F9.2 , 2=P 38, 8,P##+0.= 1,F9.2 , 2=P 39, 8,P##+0.= 1,F9.2 , 2=P 40, 8,P##+0.  1,F9.2 , 2=P 41, 8,P##+0.= 1,F9.2 , 2=P 42, 8,P##+0.= 1,F9.2 , 2=P 43, 8,P##+0.- 1,F9.2 , 2 P 44, 8,P##+0.= 1,F9.2 , 2=P 45, 8,P##+0.= 1,F9.2 , 2=P 46, 8,P##+0.= 1,F9.2 , 2 P 47, 8,P##+0.  1,F9.2 , 2=P 48, 8,P##+0.= 1,F9.2 , 2=P 49, 8,P##+0.= 1,F9.2 , 2=P 50, 8,P##+0.  1,F9.2 , 2=P 51, 8,P##+0.= 1,F9.2 , 2=P 52, 8,P##+0.= 1,F9.2 , 2=#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY./C PARAMETERS TO DEFINE DIMENSIONS FOR VIZIKLUGE)C PHYSICAL SHEET DIMENSIONS ARE (RRW,RCL)(C DISPLAY SHEET DIMENSIONS ARE (DRW,DCL)6C RECALL 1ST DIMENSION IS ACROSS TOP, 2ND DIMENSION IS4C LENGTH DOWN. NOTE TOO THAT RCP AND RRCL ARE TO BE1C COMPUTED AS RRW*RCL AND RCPM27 IS (RRW*RCL -27)2C SINCE THERE ARE 27 ACUMULATORS (A THRU Z AND %).4C BRRCL=(RRCL+7)/8 , I.E., ENOUGH BYTES FOR A BITMAPC+C *** IMPORTANT CONSTRAINTS ON SETTINGS ***CC;C RRW MUST BE AT LEAST 27 SO THAT THE 27 ACCUMULATORS WILL=C BE AVAILABLE. (IF IT IS LESS, THE % ACCUMULATOR'S LOCATIONAC WILL NOT BE CORRECT AND WILL SCREW YOU UP UNLESS 2 TYPE ARRAYS8C ARE DEFINED; THE DATA AREAS FOR THE AC'S ARE SEPARATE>C BUT THE TYPE ARRAY IS UNIFIED. WHILE YOU MIGHT ABANDON SOME>C OF THE AC'S WITH NO REAL PENALTY EXCEPT EXPOSING YOUR USERS=C TO DOUBLE DEFINED AREAS, THE TYPE INFO FOR % IS IN A FIXED>C LOCATION HARD CODED IN. NORMALLY YOU'LL WANT TO LEAVE IT TO>C A FLOATING TYPE AND IT MAY NOT FOUL YOU UP (MOST DATA CELLSDC WILL BE FLOATING TOO), BUT CORRECT OPERATION CANNOT BE GUARANTEEDCC UNLESS RRW (NUMBER OF COLUMNS IN PHYSICAL SHEET) IS 27 OR MORE.)C@C RCL MUST BE AT LEAST 2; THE FIRST IS THE ACCUMULATORS AND THE%C SECOND UP ARE DISPLAY COORDINATES.C8C DRW MUST BE LESS THAN OR EQUAL TO RRW AND DCL MUST BE:C LESS THAN OR EQUAL TO (RCL-1). ALSO MXCOLS MUST BE LESS7C THAN OR EQUAL TO DRW AND MXROWS MUST BE LESS THAN ORC EQUAL TO DCL.C=C MPWD IS JUST THE MAX PRINT LINE FOR THE W COMMAND (WRITING>C PRINT IMAGES OF THE SCREEN OUT). IT MAY BE SET SMALLER THAN>C 132, BUT TO MAKE IT LARGER YOU'LL HAVE TO INCREASE THE SIZE>C OF PRINT ARRAYS IN DSPSHT ROUTINE WHICH FILLS IN THE SIZES.C=C IT IS ASSUMED YOUR FORTRAN UNDERSTANDS THESE PARAMETERS ARE<C ALL INTEGER QUANTITIES; CHANGE AS NEEDED IF FORM IS WRONG.C=C THERE ARE A FEW PARAMETER STATEMENTS IN PROGRAMS TOO. THESE;C HAVE TO DO WITH UVT100 DEFINITIONS AND MAY ALSO BE PULLEDC INTO HERE IF DESIRED.C@C PARAMETER RRCL=RRW*RCL. COMPUTE AND FILL IN YOURSELF (FORTRAN.C AT OUR SITE DOESN'T LET THAT BE AUTOMATIC).!C RCPM27 IS COMPUTED AS RRCL-27.+C PARAMETER RCP IS THE SAME VALUE AS RRCL.C+C *****************************************- PARAMETER DCL = 20 ! DISPLAY MAX ROWS, COLS.& PARAMETER DRW = 12 ! DISPLAY MAX COLSEC NOTE THAT DCL ROWS MAY BE PRINTED 00_*\`/\[Y[Z[[[\[}EVEN THOUGH THE VT100 ONLY ALLOWS<C 20 TO BE DISPLAYED; JUST SET THE DISPLAY LENGTH TO MORE... PARAMETER MPWD = 132$ PARAMETER RRW = 50 ! NUMBER OF COLSF PARAMETER RCL = 201 ! REAL (PHYSICAL) ROWS AND COLUMNS OF SPREADSHEETFC note the next 2 parameters are 1 because subroutines worry about theC storage separately.) PARAMETER RRWP=1 ! PHYSICAL STORAGE SIZE PARAMETER RCLP=1 ! COL,ROW PARAMETER RCR=1 ! RRWP*RCLPAC FOLLOWING IS A DUMMY, ONLY USED FOR A DATA STMT; LEAVE IT AT 1. PARAMETER RCRM27=1 !RCR - 27 PARAMETER RCP = 10050 PARAMETER RCPM27 = 10023 PARAMETER RRCL = 10050C PARAMETER RRCL=RRW*RCL4C BRRCL=(RRCL+7)/8 , I.E., ENOUGH BYTES FOR A BITMAP PARAMETER BRRCL=1258C ROUND BRRCL UP TO EVEN NUMBER PARAMETER TMREFN = 1BC MXCOLS AND MXROWS ARE MAX COLS (ACROSS TOP) ON DISPLAY INITIALLYCC AND NUMBER OF INITIALLY DISPLAYED ROWS (ALONG LEFT) DOWN. DRW,DCL3C ARE MAX POSSIBLE DISPLAY COLS, ROWS RESPECTIVELY. PARAMETER MXCOLS=7 PARAMETER MXROWS=20BC LCMDR AND LDSPR ARE COMMAND AND DISPLAY ROWS ON SCREEN. REDEFINE<C TO OTHER NUMBERS FOR LARGER OR SMALLER SCREENS THAN VT100. PARAMETER LCMDR=23 PARAMETER LDSPR=24C7C JVTINC IS INCREMENT FOR OFFSET DUE TO SCREEN ODDITIES PARAMETER JVTINC=1C SET JVTINC TO 0 FOR VT52*C PARAMETER FOR MAX NUMBER OF HELP SCREENSC SET TO 9 FOR STD HELP FILE/C SET BIGGER IF DESIRED FOR HELPPRO.FOR PROGRAM PARAMETER MAXHLP=99CC PARAMETERS FOR DISK VERSION.DC THESE SET THE SIZES OF MEMORY BUFFERS USED FOR VALUES AND FORMULAS;C HANDLED HEREIN. IT IS EXPECTED THAT LVBF WILL BE AT LEAST<C 50 (FOR 250 WORDS), OR A MULTIPLE OF 50, SINCE IT CONTROLS;C VALUE BUFFER RECORDS, KEPT IN 500-BYTE DISK BLOCKS. ALSO,<C LFM SHOULD BE 32 OR A MULTIPLE OF 32. SINCE A SYMBOL TABLE9C ALGORITHM IS USED, THE MULTIPLES PROBABLY SHOULD BE THE@C SAME. THERE MIGHT BE MORE VALUES THAN FORMULAS THOUGH, AS WHENC MATRIX MATH IS USED. PARAMETER LVBF=200<C FOR 2-BUFFER VERSION LFM NEEDS TO BE A MULTIPLE OF 64, NOT<C 32. 160 JUST FITS BUT IS TOO SMALL, SO MAKE IT 128 FORMULAC CELLS. PARAMETER LFM=128BC THE ABOVE ARE RATHER SMALL. NOTE DISK FILES ARE BACKUP STORE FOR4C THESE THOUGH; SIZE OF DISK FILE IS SET AT RUNTIME./ This area contains code for a PortaCalc8version which will operate in very small environments by7using bitmaps, etc., for storage. The WRKFIL and WRKSHT7routines are called whenever the work file was accessed"or VBLS, FVLD, or TYPE are called.7 Note that to gain space, the multiple precision7integers are reduced to 20 characters' length from 100.;NOTE: THERE IS ONE DIFFERENCE IN PROGRAM USE SYNTAX BETWEEN*THIS VERSION AND OTHER PORTACALC VERSIONS:<The command R (recalculate) in this version recalculates theAsheet, but does NOT force recalculation of constants. The commandBRF recalculates and DOES FORCE recalculation of constants (and theHcommand RR is a synonym for RF). RF can be read as "recalculate, force".CIn the OTHER versions, R forces recalculation of constants, and RAF?recalculates everything except constants. Note that RAF in this?version works as it does in others; bare R however has changed.;Otherwise this version has the capabilities of the full VAXAversions, except the *U XQTCM function is not available (and willDnot be until a larger machine that permits major mods to the overlaystructure is available.)(Additional new features for VAX version:B1. Titles containing ~ character (squiggle) cause input to be read: from sys$input in spreadsheet screen as well as start. On; endfile input reverts to sys$command and function keys are recognized.?2. Input of a valid cellname that is not a valid command is now7 recognized as a command of form __{ce00`2\%\ZYTADATADATADATADATADATAllname instead if9 not picked up earlier. Due to earlier filtering, not too> many letters work, but B and Q do. This allows some in memory< control of commands. Any command text in the formula of the- cell referred to will be taken as a command.C3. During input from console in %%% form commands in command files,: if the resulting command has {cell constructs in it, they0 will be converted to their equivalence strings.JThis area contains the best PDP11 and the best VAX versions of AnalytiCalcA(PortaCalc)!!! Use other areas only with care. The other main VAX@version is however a solid version and may be used OK. It lacks,Dand always will lack, extended addressing, however. Fora PDP11, thisCis basically the only area you should use unless you really need toBuse virtual addresses in the [3,205] area one for speed. (You needEto have the workfile of that version in a memory disk too, for really good speed.)? THIS PROGRAM IS NOW THE PREFERRED PORTACALC FOR PDP11 MACHINESAND FOR FURTHER DEVELOPMENT.;For RSX, edit PCCPDP.COM into a .CMD file (take out $ signsGand be sure device defaults etc. are OK) and verify that the FCS11M.ODLCreflects your F77 installation (or fix it up with the F4P flavor ifDusing F4P); then build. The task WILL FIT on a PDP11 if F77 is used.HIf you use F4P, be SURE the FCS11M.ODL reflects the F4P OTS so addresses@won't overflow. The capacity is around 10,000 cells on RSX (editGPVKLUGPRM.FOR to change how they are assigned in rows and cols). If youBhave the ability to use virtual arrays and/or I/D space, or FCSFSLD(you M+ jocks know what that is), DO SO and reduce the complexity ofKthe overlay structure. It probably won't fit flat, but every simplificationFspeeds up the program. You can also increase the in memory array sizesFwith I/D space or FCSFSL (supervisor mode FCS) if your machine allows.(Again, the parameter file controls this.ONE TRANSPORT NOTE:KIf you move worksheets from one system to another you may want to clear theJcoded numbers after the title in the first line of the file. Column widthsNand some other numbers are encoded there but this is done somewhat differentlyNfor the 3 implementations (VAX, PDP11, 8088). If you delete the line after theHend of the title, defaults will be used which can then be set as needed. RSX BUILD:C Use PCCPDP.COM as a compile template for PDP11 RSX, or PCCPRON.COMFfor PRO 350. Then link using PCCNAT.CMD (and pccnat.odl). This assumesCthe F77 compiler is installed as ...F4P. Note that FCS11M.ODL needsBto be adjusted to YOUR version of the F77 compiler. A couple minorGchanges to the OPEN statements will be needed for old F4P but otherwiseFall should run OK. The compiler will complain about the differences ifIyou have F4P; that'll show you what to alter. PCCPDPOLD.COM is a somewhatEolder PDP11 build file. Tweak the stack size and/or the sheet size inJpvklugprm.for to shrink if needed. Be sure to build against the FCS flavorCFortran library and that your SYSLIB does NOT have the ANSI magtape+support routines included for size reasons.; NOTE: DON'T WORRY ABOUT SOME COMPILER DIAGNOSTICS THAT SAYETHAT FUNCTION "INDEX" IS ASSUMED USER-SUPPLIED. YOU'LL FIND INDEX.FORDHERE AND IT GETS BUILT AND LINKED IN. IT MUST BE USED INSTEAD OF THEDEFAULT FUNCTION.> If you run RSX11M+ and can use I/D space and supervisor mode,Bedit the ODL file to flatten it somewhat and also include the lineCSUPLIB=FCSFSL:SV in your taskbuild and throw away the FCS overlays.HThat'll gain you a lot of space. You need to link with the /ID qualifierCthen and BE SURE your F77 compiler has the necessary patch (done inKlinking the F77 image). The patch is something like GBLPAT=FORTRAN:DSPACE:1Dand DEC leaves it out because their debugger won't handle I/D space.EUse DDT which is free and WILL handle I/D space and put the patch in,Eand forget F77-debug, which does little or nothing more than DDT doesDanyhow, and has the abovementioned restriction (and takes more spaceFin your task to debug it than DDT). DDT is00`:\/\[Y[Z[[[\[} available as DECUS #11-SP-6 or in the 11-SP-47 distribution. VAX USERS:= The PCCMAKIVD.COM file builds a very respectable VAX versionIof this program which uses less virtual address space than the "standard"Hone. It does use memory arrays instead of files, but uses formula memoryDmore efficiently. A Datatrieve interface and several other items now>exist for it, and it is the VMS version that will be developed8further. See DTRIF.DOC for details on the DTR interface.0 This will allow you to avoid the present method?of creating sequential files (possibly from DTR) and then using>the *Q class commands to extract formulas or values from them;@you'll be able to grab the formulas direct. These functions will@be isolated into a set of separate routines to make it easier to<replace the DTR interface with one of your choice should you<so desire. We need it at my site, so I expect to get it done?sometime in the next 6 months or so; depends on timing of otherCthings at the office... (as usual). I want to retain the ability toAexpand the number of cells greatly, so I will update this versionDrather than another. The "standard" VAX version uses much more space?because it uses 128 bytes per formula entry accessed. This will>quickly run out of room (even on a VAX) if the number of cellsDincreases by an order of magnitude or two. The version here will notCso easily run out, since it does not require memory for every cell.ANevertheless, the parameters set up by default here (i.e., unless=you edit BVKLUGPR5.FOR) allocate memory for 4 formula nibbles>(12 characters each) per cell. 8 bytes per cell for values areBalso used, but this will not cause trouble on a VAX even with muchDlarger sheets, and the bitmaps will cause no trouble either. You canLrun out of space on this version, but only if you have an average of over 48Icharacters in every cell addressable. This is unlikely except in the mostBextreme cases. If it happens, edit BVKLUGPR5.FOR and increase someBof the parameters to get more room. LPDM and LPDMF are the ones toBraise. This version allows both PDP11 and VAX users to have vastlyAincreased address area, by aliasing cells under user control. You=can now use cells that have names like AABA21000 on a VAX, or,that have names like AAA9800 on a PDP11. (!)@ If anyone out there is using this program, I appreciate hearingGabout it. Usually I hear about troubles, but appreciate hearing that itFwas used for something. I'd also like to encourage anyone who developsCtemplates to this spreadsheet to submit them to the VAX and RSX SIGAtapes so they can be shared by others. I get very little feedbackCfrom DECUS about who (if anyone) is ordering the Library version ofEthis program, and very little from users. If you use it, let me know.CThanks. By the way, please note the "announce.mnt" file in the mainDdocumentation directory announcing my (extremely cheap but not free)DIBM PC or general MSDOS version of PortaCalc, called AnalytiCalc. It#is descended from this version too. Glenn Everhart 409 High St. Mt. Holly NJ 080603Strategy, or how we got several megabytes of memory storage in a 64KB address space:1 Use 3 bitmaps for FVLD to represent legal states9of FVLD bytes. Make a 3 bit number up from the 3 bits and"treat as signed in range -3 to +3./ Use 1 bitmap for TYPE array for sheet; 0 means9type 2 (real); 1 means type 4 (integer). For accumulators9(1st 27 items), keep full integer array of types however.7For speed, keep track of whether any integer cells have2ever been used and return type 2 instantly if not.3 Keep 45 format entries resident, filling new areas7in as needed and reusing the last if the area overflows5(which will seldom happen in real life). Point to the)format number with a byte in the formula.4 Values and formulas are kept in separate areas by a9symbol-table type algorithm. This will treat memory areas7for each as one "page" of a file whose size is given at9runtime (and not opened if too small). Cells are 10 bytes00`B\%\ZYTADATADATADATADATADATA:long for values (ID plus 8 byte number), 16 bytes long for8formulas (ID, format number, flag (for first/middle/last:cell for a formula), and 12 bytes of formula per cell withcontinuations permitted.)1 On write to a cell, the page is calculated and a;hashcode used to find start address in the page to look for9space to put the cell. Linear search, in that memory page<only, is used to find free space (initially all old refs are<cleared). For formulas, cells are allocated until the entire;formula is stored. Readback reads the cells starting at the<hashcode and continuing by linear search if need be. Formula>storage and retrieval is done by linear in-memory search usingAthe hashcode only in computing the page to use. Unit 7 is formula>file, and 9 is value file. This permits some flaky running out7of room while the file still has empty space, but makes<search speed at least bounded. A big enough file will always=guarantee that a cell can have room found for it. Fixed cells4for formulae are used to reduce compaction problems.4 Other algorithms can be put in WSHEET and WRKFIL to:handle this differently, to tailor to random environments.4 This code works on VAX and runs in either native or0compatibility mode. It has been tried on RSX and=looked OK (the build files may be deduced from the VAX compat<mode ones here) but was better tested on VMS. It IS designed7with ALL the capabilities of the VAX version except the=execution of commands from inside cells of forms like CA, CR,1etc. etc. and may be interesting for that reason.BIt provides the largest PDP11 spreadsheet of any PortaCalc version=(around 10,000 cells fit; more may be possible) and should beuseful for that reason.9 Please send any versions you bring up as working back to?me in source, regardless of what machine they run on. In return+I may get you my latest mods and bug fixes. Glenn Everhart 409 High St Mt. Holly, NJ 08060 Note that some displays@will appear to zero various displayed numbers. An extra V (View)?command will draw the display correctly if this happens. The CRcommand is known to do this.7 The memory storage is small and backs up to disk filesAduring operation. The sizes are asked for at startup, and if they@overflow, (i.e., a PAGE fills), a message is given on screen. If?the sizes (in K bytes) for the files are given NEGATIVE, then a<different packing algorithm is used which requires more page?swaps, but may allow less dense use of the page file and permitCthe same size disk files to handle more active cells. The trade-off is speed.7 The sizes of memory areas are compiler parameters. The;file present is fairly conservative but may be made smaller;still. LVBF should be at least 50, and LFM at least 32, forthings to make sense.7 The files are NOT opened or used if the memory storage;sizes on file are less than the in-memory storage provided.>Entering a size of 1 will ensure only memory is used. Entering"a 0 will pick a default file size.7 This is the first version of PortaCalc which plays the=same dirty trick on you as commercial spread sheets. That is,:you have a fairly huge matrix, but can't fill in all of it<without overflow. However, by specifying a large enough file9for variables and for formulae, you can always get thingsto fit.7 Variables are stored in 10-byte units (2 bytes for the8ID, 8 for the value), and formulas in 16-byte chunks, of9which 4 contain ID, format pointer, and flags, and 12 are5formula characters. A long formula will have multiple<formula nodes in the buffer. Most everything else is managed,with bitmaps, rubber bands, and chewing gum.8 Another help file source is here which will read a fileAfull of help pages and display the one desired. Experimenters mayAwant to use it and perhaps use the reclaimed space to enlarge theCin-memory buffers for value and formula pages. In the PDP11 version>the current help routine is an overlay and is (barely) not theAlongest in its region, so it has been left alone for the00`J\aN\[Y[Z[[[\[} present.=The PDP11 version cannot save the display-to-physical mapping:(the code just won't fit without I/D space!) but does most%everything else the VAX version does.< The overlay is complicated by the fact that CALC calls CMNDFwhich may call USRFCT which in turn can call XQTCMD. Thus at least the<USRFCT main routine needs to be in the root so the call tree<works for that. Or the call to XQTCMD can be snipped out and>essentially the old tree structure used with WSHEET and WRKFIL=also in root. Note however that this version of XQTCMD is not6as broken up as the "standard" overlay version and the<put and get routines may need to be broken off to get things<to fit again. Try clustering or something if possible, on M.AOn M+ with 11/44 or 11/70 or J-11, using I/D space and super mode<FCS should be a major win. Besides, you can overlay with I/D<space and just moving the HELP into a separate leaf ought to?buy a lot of space. HELP is only called from SPREDSHT (the main program) so that ought to be OK.5 A second HELP subroutine, which uses a big help file?on disk and prints it, is supplied; it may allow a much smaller;help overlay and perhaps buy space. You can experiment with9virtual arrays or mapping to regions inside the WSHEET or9WRKFIL routines, since they are the ONLY ways the program=gets to its storage. For those who REALLY want a fast access,Alook over the BASH11M program of a few tapes ago; you may be ableAto bypass RSX almost totally and use a dedicated common partitionCto run from on a Pro if in previous-kernel mode. This could reclaim+almost the entire space needed for buffers." The Best things in life are free! PORTACALC (alias AnalytiCalc) SUBROUTINE RECALC#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY.C RECALCULATE COMMAND4C RECOMPUTE ALL ELEMENTS OF SPREADSHEET WHERE VALID.C INCLUDE 'VKLUGPRM.FTN' PARAMETER CUP=1,EL=12C PARAMETER RRW = 32&C PARAMETER RCL = 32 ! REAL ROWS, COLSC PARAMETER DRW = 8-C PARAMETER DCL = 8 ! DISPLAY MAX ROWS, COLS.C PARAMETER RRCL = 1024C PARAMETER RRCL=RRW*RCL=C NOTE: THROUGHOUT, ROWS ARE ACTUALLY DOWN, COLUMNS ACROSS ONAC SCREEN. ROW 0 IN DISPLAY IS THE 27 ACCUMULATORS A-Z AND %, WITH>C % BEING THE LAST-COMPUTED VALUE FROM THE CALC PROGRAM, WHICHAC KNOWS HOW TO ACCESS THE DATA BUT IS JUST PASSED COMMAND STRINGS C FROM THE DISK BASED FILE HERE. LOGICAL*1 FORM,FVLD,CMDLIN(132) INTEGER*4 VNLT" INTEGER*2 FORMFG,RCFGX,PZAP,RCONE INTEGER*2 RCMODE,IRCE1,IRCE2% COMMON/FFGG/FORMFG,RCFGX,PZAP,RCONE, 1 RCMODE,IRCE1,IRCE2$ DIMENSION FORM(128),FVLD(RRWP,RCLP) INTEGER*2 DLFG COMMON/DLFG/DLFG*C DLFG=0 IF NO D## SEEN AND 1 IF D## SEEN. COMMON/FVLDC/FVLDAC FVLD FLAG 0 = NO FORMULA, -1= DISPLAY FORMULA ITSELF, NOT VALUE=C 1=VALID ACTIVE FORMULA THERE TO EVALUATE. INITIALLY ALL 0'SC SO INITIALLY IGNORE.!C FVLD=-2 OR -3 = DISPLAY FORMULA1C FVLD=3 NUMERIC, COMPUTE ONCE THEN SET FVLD TO 2@C FVLD=2 NUMERIC CONSTANT, ALREADY COMPUTED... DO NOT RECOMPUTE.CDC ROUTINE IN2AS COMPUTES ASCII CHARACTER NAMES OF SUBSCRIPTS IN1,IN2=C SO DISPLAY CAN HAVE THEM. IT MUST BE THE INVERSE OF VARSCN.( INTEGER*2 PROW,PCOL,DROW,DCOL,DRWV,DCLV* COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRWV,DCLV( DIMENSION NRDSP(DRW,DCL),NCDSP(DRW,DCL) COMMON/D2R/NRDSP,NCDSP" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9)) LOGICAL*1 AVBLS(20,27),VBLS(8,RRWP,RCLP) INTEGER*2 RRWACT,RCLACT COMMON/RCLACT/RRWACT,RCLACT INTEGER*2 KDRW,KDCL COMMON /DOT/KDRW,KDCL COMMON/V/TYPE,AVBLS,VBLS,VLEN INTEGER*2 PRS,PCS,DRS,DCS PRS=PROW PCS=PCOL DRS=DROW DCS=DCOL IF(RCMODE.EQ.2)GOTO 55004C THE FO00aR\%\ZYTADATADATADATADATADATALLOWING 2 LOOPS DEFINE ORDER OF CALCULATION.JC HERE THIS IS: OUTER LOOP ON ROWS (ACROSS), INNER LOOP ON COLUMNS (DOWN). DO 1 N2=1,RCLACT N1=1 220 CONTINUEC DO 2 N1=1,RRW?C USE FVPEEK TO CHECK WHERE FIRST CELL TO DO IS HERE. SHOULD BE#C FASTER THAN STANDARD LOOP METHOD. CALL FVPEEK(N1,N2,N1) CALL FVLDGT(N1,N2,FVLD(1,1)) IF (FVLD(1,1).LE.0) GOTO 2 IRRX=(N2-1)*RRW+N1C CALL REFLEC(N2,N1,IRRX)BC IF CONSTANT WAS COMPUTED ALREADY, NO NEED TO RECOMPUTE. SKIP IT.:C NOTE: WE MUST ALWAYS RECOMPUTE IF R COMMAND WAS GIVEN.... IF ((RCONE.EQ.0).AND.(FVLD(1,1).EQ.2)) GOTO 2 KDRW=N1 KDCL=N2 PROW=N1 PCOL=N2@C SEE IF THIS PHYS COL HAS A DISPLAY COL. AND IF SO SET THAT UP.:C ONLY SET TO DISPLAYED LOCS HERE TO MINIMIZE SEARCH TIME. IF(DLFG.EQ.0)GOTO 959C NO SEARCH FOR DROW AND DCOL IF NO D## FORMS MAY USE IT.BC NEED SEARCH IF RCMODE > 1 SINCE WE MUST SEE IF WE'RE ON DISPLAY.6C IF RCMODE = 1 THEN WE JUST SEE IF THIS IS ENTER CELL DO 10 M1=1,DRWV DO 20 M2=1,DCLV M1X=M1 M2X=M24 IF(NRDSP(M1,M2).EQ.N1.AND.NCDSP(M1,M2).EQ.N2)GOTO 9 20 CONTINUE 10 CONTINUE<C IF WE FALL THRU HERE, CELL ISN'T ON DISPLAY AREA ANYWHERE.!C IF NOT ENTERED CELL, SKIP IT...<C ALSO GO HERE IF RCMODE IS 0 OR 1 AND NO D## ENTRIES EXIST. 95 CONTINUE IF(RCMODE.LE.0)GOTO 93C TEST AND CALC ONLY IF ENTRY HERE... ELSE SKIP IT.) IF(PROW.NE.IRCE1.OR.PCOL.NE.IRCE2)GOTO 2)C SKIP OUT IN NEW MODES IF NOT ON DISPLAY 9 CONTINUE*C IF NO DISPLAY ROW, LEAVE AT LOW RIGHT...DC USE SAVED VALUES SO WE DON'T RELY ON DO LOOP INDEX AFTER LOOP END. DROW=M1X DCOL=M2X CALL WRKFIL(IRRX,FORM,0):C NOW HAVE THE FORMULA LINE. PASS TO DOENTRY TO HANDLE IT. LLST=110 DO 56 NNN=1,109 LLST=111-NNN IF(FORM(LLST-1).GT.32)GOTO 57 FORM(LLST)=0 56 CONTINUE 57 CONTINUE"C FIND REAL LAST FORMULA CHARACTER LFST=1 FORM(LLST)=0 FORM(LLST+1)=0 LFST=1 FORM(111)=0 IF(FORM(118).NE.15)GOTO 2 CALL DOENTR(FORM,LFST,LLST)?C IF WE JUST COMPUTED A CONSTANT, FLAG IT COMPUTED AND SKIP IT. CALL FVLDGT(N1,N2,FVLD(1,1))' IF(FVLD(1,1).EQ.3)CALL FVLDST(N1,N2,2) 2 CONTINUE N1=N1+1 IF(N1.LE.RRWACT)GOTO 220 1 CONTINUE GOTO 5600 5500 CONTINUEC RCMODE=2 AND NOT RM MODE'C (IN RM MODE, RECALC IS NOT CALLED...) DO 1701 M2=1,DCLV DO 1702 M1=1,DRWV@C TO HANDLE DISPLAY WHEREVER IT MAY BE, FIND ID OF PHYS CELL AND7C CONVERT TO PHYS ROW, COL AGAIN REGARDLESS OF ALIAS...BC (NOTE CALC ORDER IS THEREFORE DISPLAY ORDER, NOT SHEET ORDER...) K=NRDSP(M1,M2) KK=NCDSP(M1,M2) CALL REFLEC(KK,K,IV1) NRC=IV1-1 N1=MOD(NRC,RRW)+1 N2=((NRC-N1+1)/RRW)+11C COMPUTE PHYS ROW, COL FROM DISPLAY COORDINATES.?C USE FVPEEK TO CHECK WHERE FIRST CELL TO DO IS HERE. SHOULD BE#C FASTER THAN STANDARD LOOP METHOD.DC *** NOTE HOWEVER THAT IT COULD SLOW US UP... DEPENDS ON EFFICIENCYC OF FVLDGT AND FVPEEK.MC ... NEED BADLY TO SPEED UP FVLDGT AND FVPEEK TO GET THIS LOOP TO RUN FAST. CALL FVLDGT(N1,N2,FVLD(1,1)) IIFV=(FVLD(1,1)) IF (IIFV.LE.0) GOTO 1702-C FORGET THIS CELL IF NOT A COMPUTABLE ONE... IRRX=IV1BC IF CONSTANT WAS COMPUTED ALREADY, NO NEED TO RECOMPUTE. SKIP IT.:C NOTE: WE MUST ALWAYS RECOMPUTE IF R COMMAND WAS GIVEN...1 IF ((RCONE.EQ.0).AND.(FVLD(1,1).EQ.2)) GOTO 1702 KDRW=N1 KDCL=N2 PROW=N1 PCOL=N2 DROW=M1 DCOL=M2 CALL WRKFIL(IRRX,FORM,0):C NOW HAVE THE FORMULA LINE. PASS TO DOENTRY TO HANDLE IT. LFST=17C FIND END OF FORMULA FOR MATH ROUTINES TO TRY TO SPEEDC THEM UP A BIT.KC (ALSO GUARANTEE WE HAVE LOTS OF NULLS AT END TO TERMINATE INDEX ROUTINES) DO 756 N=1,109 LLST=111-N IF(FORM(LLST-1).GT.32)GOTO 757 FORM(LLST)=0 756 CONTINUE 757 CONTINUE FORM(LLST)=0 FORM(111)=02C CALL DOENTR TO DO THE ACTUAL COMPUTATION WORK... CALL DOENTR(FORM,LFST,LLST)?C IF WE JUST COMPUTED A CONSTANT, FLAG IT COMPUTED AND SKIP IT." IF(IIFV.EQ.3)CALL FVLDST(N1,N2,2) 1702 CONTINUE 1701 CONTINUE"C END OF COMPUTATION OVER DISPLAYS C GOTO 5600 5600 CONTINUE PROW=PRS PCOL=PCS DROW=DRS DCOL=DCOL!C FORCE FUNCTION WORKS ONCE ONLY. R00aZ\N\[Y[Z[[[\[}CONE=0 RCMODE=IABS(RCMODE)>C RCMODE GETS ABS VALUE AFTER ONE CALL SO WE'RE SURE NEG FLAGSC GET RESET... IRCE1=0 IRCE2=0$C RESET ENTER FLAGS TOO ONCE USED... RETURN END" SUBROUTINE DOENTR(FORM,LOW,LHIGH)%C +++++++++++++++++++++++++++++++++++ INCLUDE 'VKLUGPRM.FTN' PARAMETER CUP=1,EL=12C PARAMETER RRW = 32&C PARAMETER RCL = 32 ! REAL ROWS, COLSC PARAMETER DRW = 8-C PARAMETER DCL = 8 ! DISPLAY MAX ROWS, COLS.C PARAMETER RRCL = 1024C PARAMETER RRCL=RRW*RCL LOGICAL*1 FORM,FVLD,CMDLIN(132) INTEGER*4 VNLT$ DIMENSION FORM(128),FVLD(RRWP,RCLP)AC FVLD FLAG 0 = NO FORMULA, -1= DISPLAY FORMULA ITSELF, NOT VALUE=C 1=VALID ACTIVE FORMULA THERE TO EVALUATE. INITIALLY ALL 0'SC SO INITIALLY IGNORE.( INTEGER*2 PROW,PCOL,DROW,DCOL,DRWV,DCLV* COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRWV,DCLV( DIMENSION NRDSP(DRW,DCL),NCDSP(DRW,DCL) COMMON/D2R/NRDSP,NCDSP" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9)) LOGICAL*1 AVBLS(20,27),VBLS(8,RRWP,RCLP) REAL*8 ACY EQUIVALENCE(ACY,AVBLS(1,27)) COMMON/V/TYPE,AVBLS,VBLS,VLEN COMMON/FVLDC/FVLD%C +++++++++++++++++++++++++++++++++++2C ENABLE { FORMS TO HANDLE ALL POSSIBLE EQUATIONS. CALL FRMEDT(FORM,LLST) IITR=0 5050 continue IITR=IITR+1 FORM(111)=0 LCURR=LOWBC DO AN ENTRY. MUST SCAN FOR MULTIPLE STATEMENTS PER LINE AND ALSOC RECOGNIZE FUNCTION NAMES. 1000 CONTINUE LSL=INDEX(FORM(LCURR),'\') IF(LSL.EQ.0)LSL=LHIGHC CLAMP AT 80 CHARS LONG INPUT. IF(LSL.LE.79)GOTO 1200:C STMT HAS NO MULTIPLES. SQUASH IT TO USE ONLY 1ST PART... LSL=79 LCURR=LHIGH FORM(80)=0 1200 CONTINUE6C PERMIT < TO MEAN WE GO BACK INTO THE CURRENT FORMULA1C IF WE HAVE BEEN LESS THAN 100 TIMES AND IF % IS C POSITIVE. IF(FORM(LCURR).NE.'<')GOTO 5051' IF(ACY.GT.0..AND.IITR.LT.100)GOTO 50507C SKIP DOSTMT CALL IF WE HAD < SINCE THAT'S NOT A LEGAL C FUNCTION... GOTO 5052 5051 CONTINUE CALL DOSTMT(FORM(LCURR),LSL)5052 IF (LCURR.GE.LHIGH)RETURN LCURR=LCURR+LSL GOTO 1000 END SUBROUTINE DOSTMT(LINE,LLAST)BC HANDLE 1 STATEMENT PARSING (DOES A BIT MORE OF THE WORK WITH THE>C PART OF THE LINE STRIPPED TO HAVE EXACTLY ONE COMMAND IN IT. LOGICAL*1 LINE(110)%C +++++++++++++++++++++++++++++++++++ INCLUDE 'VKLUGPRM.FTN' PARAMETER CUP=1,EL=12C PARAMETER RRW = 32&C PARAMETER RCL = 32 ! REAL ROWS, COLSC PARAMETER DRW = 8-C PARAMETER DCL = 8 ! DISPLAY MAX ROWS, COLS.C PARAMETER RRCL = 1024C PARAMETER RRCL=RRW*RCL LOGICAL*1 FORM,FVLD,CMDLIN(132) INTEGER*4 VNLT$ DIMENSION FORM(128),FVLD(RRWP,RCLP)AC FVLD FLAG 0 = NO FORMULA, -1= DISPLAY FORMULA ITSELF, NOT VALUE=C 1=VALID ACTIVE FORMULA THERE TO EVALUATE. INITIALLY ALL 0'SC SO INITIALLY IGNORE. COMMON/FVLDC/FVLD( INTEGER*2 PROW,PCOL,DROW,DCOL,DRWV,DCLV* COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRWV,DCLV( DIMENSION NRDSP(DRW,DCL),NCDSP(DRW,DCL) COMMON/D2R/NRDSP,NCDSP" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9) REAL*8 XVBLS(RRWP,RCLP)) LOGICAL*1 AVBLS(20,27),VBLS(8,RRWP,RCLP) INTEGER*4 JVBLS(2,RRWP,RCLP)% EQUIVALENCE(JVBLS(1,1,1),XVBLS(1,1))$ EQUIVALENCE(VBLS(1,1,1),XVBLS(1,1)) COMMON/V/TYPE,AVBLS,VBLS,VLEN REAL*8 ACX,ACY,AACY EQUIVALENCE(ACY,AVBLS(1,27)) integer*4 iacy,IIJACY,IIJAC2(2) EQUIVALENCE(IACY,AVBLS(1,27)) EQUIVALENCE(IIJACY,IIJAC2(1)) EQUIVALENCE(IIJAC2(1),AACY) INTEGER*2 KDRW,KDCL COMMON /DOT/KDRW,KDCL LOGICAL*1 ILINE(106) INTEGER*2 ILNFG,ILNCT COMMON/ILN/ILNFG,ILNCT,ILINE%C +++++++++++++++++++++++++++++++++++ CALL FNAME(LINE,LLAST,INDEXF)C ABOVE GETS FUNCTION NAMES. C NAME INDEXFC MIN 1C MAX 2C AVG 3C SUM 4C STD 5 (STD DEVIATION)C IF 6 (IF STMT)C AND 7C OR 8C NOT 9!C CNT 10 (COUNTS NONZERO ENTRIES)C NPV 11 NET PRESENT VALUE,C LKP 12 LOOKUP IN LIST, GIVE OFFSET 0 BASED)C LKN 13 LOOKUP NEGATIVE (INVERSE OF LKP)C LKE 14 LOOKUP EQUALC XOR 15 EXCLUSIVE OR)C EQV 16 EQUIVALENCE (TRUE IF BITS EQUAL)C MOD 17 V1 MODULO V2C REM 18 REMAINDER OF V1/V2$C SGN 19 SIGN OF V1 (-1.,0., OR +1.) C IRR 20 INTERNAL RATE OF RETURN(C RND 21 RANDOM NUMBER BETWEEN 0. AND 1.C PMT 22 Payment f00ab\%\ZYTADATADATADATADATADATAunctionC PVL 23 Present Value function%C AVE 24 Average excluding zero cells8C CHS 25 Choose nth arg. index where n given by 1st arg.'C USE [ AND ] TO DELIMIT FUNCTION ARGS.) IF(INDEXF.LT.1.OR.INDEXF.GT.25)GOTO 1000IC HERE IF A FUNCTION OR AN IF STMT (FORMAT= IF [varRELvar]stmt|else-stmt)C'C ALLOW CALC TO HANDLE ALL BUT IF STMTS IF(INDEXF.NE.6)GOTO 1000C LLB=INDEX(LINE,'[') LRB=INDEX(LINE,']')=C *** ERROR WITH FORMAT -- NO [ SEEN IN TIME. JUST IGNORE IT. IF(LLB.GT.LLAST)RETURN IF(LRB.GT.LLAST)LRB=LLASTC IF(INDEXF.EQ.6)GOTO 2000CC ISOLATE MATH FUNCTIONS&C CALL DOMFCN(LINE,LLB,LRB,INDEXF,ACX)CC GET % ABOVE"C CALL TYPGET(KDRW,KDCL,TYPE(1,1))"C IF(ABS(TYPE(1,1)).NE.2)GOTO 1760C CALL XVBLST(KDRW,KDCL,ACX)CC XVBLS(KDRW,KDCL)=ACXCC LEAVE RESULT IN % TOO. C ACY=ACXC CALL TYPSET(27,1,TYPE(1,1))CC TYPE(27,1)=TYPE(KDRW,KDCL)C RETURNC1760 JVBLS(1,1,1)=ACX'C CALL JVBLST(1,KDRW,KDCL,JVBLS(1,1,1))CC JVBLS(1,KDRW,KDCL)=ACXC RETURN 2000 CONTINUEC HANDLE AN "IF" STATEMENT CALL DOIF(LINE,LLB,LRB,LLAST)BC PASS LLAST TO DOIF SINCE WE DON'T EXPECT ] AS LAST CHAR OF STMT.C NO DIRECT SET OF VRBL HERE... RETURN 1000 CONTINUE2C HERE JUST HAVE SOMETHING TO PASS TO CALC. DO SO. ILNFG=1 LMX=LLAST-1 DO 1001 N1=1,LMX1001 ILINE(N1)=LINE(N1) ILNCT=LMXEC PROTECT CALC FROM ANY PART OF A LINE LONGER THAN 80 CHARS (ITS MAX) IF(ILNCT.GT.80)ILNCT=80 CALL CALCC STORE EXPRESSION RESULT."C CHANGE TYPE OF RESULT IF NEED TO CALL TYPGET(KDRW,KDCL,LMX) CALL TYPGET(27,1,N1)C REUSE COUPLE LOCAL VARIABLES LMX=IABS(LMX) N1=IABS(N1) IF(N1.EQ.9)N1=2 IF(N1.NE.2)N1=4 AACY=ACY IF(N1.EQ.LMX)GOTO 2760 IF(N1.EQ.2)IIJACY=ACY IF(N1.NE.2)AACY=IACY+C 2 IMPLIES REAL, 4 IMPLIES INTEGER STORAGE 2760 CONTINUE CALL XVBLST(KDRW,KDCL,AACY)C XVBLS(KDRW,KDCL)=ACY RETURN END$ SUBROUTINE FNAME(LINE,LLAST,INDEXF)C RETURN FUNCTION NAME IF ANY LOGICAL*1 LINE(110) INTEGER*4 FNAM(25) LOGICAL*1 FCHNM(4,25) EQUIVALENCE(FNAM(1),FCHNM(1,1))5 DATA FNAM/'MIN ','MAX ','AVG ','SUM ','STD ','IF ',2 1 'AND ','IOR ','NOT ','CNT ','NPV ','LKP ',@ 2 'LKN ','LKE ','XOR ','EQV ','MOD ','REM ','SGN ','IRR ',' 3 'RND ','PMT','PVL','AVE','CHS'/ INDEXF=0 DO 1 N1=1,25 DO 2 N2=1,3# IF(LINE(N2).NE.FCHNM(N2,N1))GOTO 1 2 CONTINUE>C IF WE FALL THROUGH, WE HAVE A VALID FCN NAME INDEX IN INDEXF INDEXF=N1 GOTO 3 1 CONTINUE 3 CONTINUE RETURN END# SUBROUTINE TEST(LOGTYP,FLAG,V1,V2) INTEGER*2 FLAG REAL*8 V1,V2 FLAG=0# IF(LOGTYP.EQ.1.AND.V1.GT.V2)FLAG=1# IF(LOGTYP.EQ.2.AND.V1.LT.V2)FLAG=1# IF(LOGTYP.EQ.3.AND.V1.EQ.V2)FLAG=1# IF(LOGTYP.EQ.4.AND.V1.NE.V2)FLAG=1# IF(LOGTYP.EQ.5.AND.V1.GE.V2)FLAG=1# IF(LOGTYP.EQ.6.AND.V1.LE.V2)FLAG=1BC TEST LOGICAL RELATIONS FOR IF STATEMENT, FLAG=1 IF TRUE, 0 ELSE. RETURN END( SUBROUTINE MTHINI(INDEXF,AC,SS,CTR,ACX) DIMENSION EP(20) REAL*8 EP,PV,FV COMMON/ERNPER/EP,PV,FV,KIRR REAL*8 AC,SS,CTR,ACX KIRR=0 SS=0. CTR=0. ACX=0. DO 1 N=1,20 1 EP(N)=0. AC=0. IF(INDEXF.EQ.1)AC=1.E20 IF(INDEXF.EQ.2)AC=-1.E20 RETURN END, SUBROUTINE DOMATH(INDEXF,VAR,AC,SS,CTR,ACX)! REAL*8 AC,SS,CTR,ACX,RWRK1,RWRK2 DIMENSION EP(20) REAL*8 EP,PV,FV COMMON/ERNPER/EP,PV,FV,KIRR REAL*8 VAR,TE INTEGER*4 IWRK1,IWRK2,IDUM INTEGER*2 KLKC,KLKR REAL*8 AACP,AACQ! COMMON/MSCMN/KLKC,KLKR,AACP,AACQ IF(INDEXF.NE.1)GOTO 100C MIN IF(VAR.GE.AC)GOTO 105 AC=VAR AACP=KLKC AACQ=KLKR 105 CONTINUEC IF(VAR.LT.AC)AC=VAR ACX=AC100 IF(INDEXF.NE.2)GOTO 200C MAX IF(VAR.LE.AC)GOTO 107 AC=VAR AACP=KLKC AACQ=KLKRC SAVE SELECTED COORDS 107 CONTINUEC IF(VAR.GT.AC)AC=VAR ACX=AC200 IF(INDEXF.NE.3)GOTO 300C AVG AC=AC+VAR CTR=CTR+1. ACX=AC/CTR300 IF(INDEXF.NE.4)GOTO 400C SUM AC=AC+VAR ACX=AC400 IF(INDEXF.NE.5)GOTO 500"C STD (STANDARD DEVIATION SQUARED) AC=AC+VAR SS=SS+(VAR*VAR) CTR=CTR+1. ACX=(SS-((AC*AC)/CTR))/CTR 500 CONTINUE IF(INDEXF.NE.7)GOTO 600C AND IF(SS.NE.0.)IWRK1=AC IF(00aj\N\[Y[Z[[[\[}SS.EQ.0.)IWRK1=VAR SS=1. IWRK2=VAR IWRK1=IWRK1.AND.IWRK2 AC=IWRK1 ACX=AC600 IF(INDEXF.NE.8)GOTO 700C INCLUSIVE OR IWRK1=AC IWRK2=VAR IWRK1=IWRK1.OR.IWRK2 AC=IWRK1 ACX=AC700 IF (INDEXF.NE.9)GOTO 800C NOT IWRK1=VAR IWRK1=.NOT.IWRK1 AC=IWRK1 ACX=AC800 IF(INDEXF.NE.10)GOTO 1000C CNTC COUNT NONZERO ENTRIES IF(VAR.NE.0.)AC=AC+1. ACX=AC 1000 CONTINUE IF(INDEXF.NE.11)GOTO 1100C NPV IF(SS.EQ.0.)GOTO 1050 CTR=CTR+1.C AC=AC+VAR*CTR/SS AC=AC+VAR/(SS**(CTR-1)) ACX=AC GOTO 1200 1050 CONTINUE SS=VAR+1. ACX=0.1100 if(indexf.ne.12) GOTO 1200C LKP IF(SS.NE.0.)GOTO 1150 SS=1. AC=VAR ACX=-1. GOTO 1200 1150 CONTINUE$C IF(VAR.GE.AC.AND.ACX.LT.0.)ACX=CTR$ IF(VAR.LT.AC.OR.ACX.GE.0.)GOTO 1155 ACX=CTR AACP=KLKC AACQ=KLKR 1155 CONTINUE CTR=CTR+1. 1200 CONTINUE IF(INDEXF.NE.13)GOTO 1300C LKN IF(SS.NE.0.)GOTO 1250 SS=1. AC=VAR ACX=-1. GOTO 1300 1250 CONTINUE$C IF(VAR.LE.AC.AND.ACX.LT.0.)ACX=CTR$ IF(VAR.GT.AC.OR.ACX.GT.0.)GOTO 1256 ACX=CTR AACP=KLKC AACQ=KLKR 1256 CONTINUE CTR=CTR+1. 1300 CONTINUE IF(INDEXF.NE.14)GOTO 1400C LKE IF(SS.NE.0.)GOTO 1350 SS=1. AC=VAR ACX=-1. GOTO 1400 1350 CONTINUE$C IF(VAR.EQ.AC.AND.ACX.LT.0.)ACX=CTR$ IF(VAR.NE.AC.OR.ACX.GE.0.)GOTO 1355 ACX=CTR AACP=KLKC AACQ=KLKR 1355 CONTINUE CTR=CTR+1. 1400 CONTINUE IF(INDEXF.NE.15)GOTO 1500C XOR IF(SS.NE.0)IWRK1=AC IF(SS.EQ.0)IWRK1=VAR SS=SS+1. IF(SS.EQ.1.)GOTO 1405 IWRK2=VAR IWRK3=IWRK1.OR.IWRK2 IWRK1=IWRK1.AND.IWRK2 IWRK1=IWRK3-IWRK1 1405 AC=IWRK1 ACX=AC 1500 CONTINUE IF(INDEXF.NE.16)GOTO 1600C EQV9C NOTE THE EQUIVALENCE FUNCTION IS JUST THE COMPLEMENT OF=C THE XOR FUNCTION. DO THE COMPLEMENT VIA THE .NOT. OPERATOR. IF(SS.NE.0)IWRK1=AC IF(SS.EQ.0)IWRK1=VAR SS=SS+1. IF(SS.EQ.1.)GOTO 1505 IWRK2=VAR IWRK3=IWRK1.OR.IWRK2 IWRK1=IWRK1.AND.IWRK2 IWRK1=IWRK3-IWRK1 IWRK1=.NOT.IWRK1 1505 AC=IWRK1 ACX=AC 1600 CONTINUE IF(INDEXF.NE.17)GOTO 1700C MODC MODULO (V1 MOD V2) IF(SS.NE.0)RWRK1=AC IF(SS.EQ.0)RWRK1=VARN SS=SS+1.I IF(SS.EQ.1.)GOTO 1605 RWRK2=VAR RWRK1=DMOD(RWRK1,RWRK2) 1605 AC=RWRK1  ACX=ACT 1700 CONTINUEE IF(INDEXF.NE.18)GOTO 1800C REMAINDER -- INTEGER MODULOU IF(SS.NE.0)IWRK1=AC IF(SS.EQ.0)IWRK1=VAR SS=SS+1.R IF(SS.EQ.1.)GOTO 1705 IWRK2=VAR IWRK1=JMOD(IWRK1,IWRK2) 1705 AC=IWRK1E ACX=AC 1800 CONTINUE  IF(INDEXF.NE.19)GOTO 1900C SGN2 C RETURN 1.0 * SIGN OF ARGUMENT. AC=DSIGN(1.0D0,VAR) ACX=ACL 1900 CONTINUE  IF(INDEXF.NE.20)GOTO 2000C IRR - INTERNAL RATE OF RETURN  AC=0. ACX=0. IF(KIRR.LT.20)KIRR=KIRR+1 IF(KIRR.EQ.1)PV=VAR IF(KIRR.EQ.2)FV=VAR IF(KIRR.LT.3)RETURNC IRR[PV,FV,RETURNS...]N IWRK1=KIRR-2R EP(IWRK1)=VAR RWRK1=.15 RWRK2=.250C ITERATIVELY SOLVE FOR INTERNAL RATE OF RETURN. 1903 TE=0. SS=FV/((1.D0+RWRK1)**(IWRK1)) DO 1905 IWRK2=1,IWRK1# AC=EP(IWRK2)/((1.D0+RWRK1)**IWRK2)1 SS=SS+ACC 1905 CONTINUEN RWRK2=RWRK1*(SS+TE)/PVR) IF(DABS(RWRK1-RWRK2).LT..00001)GOTO 1910 RWRK1=RWRK2 GOTO 1903 1910 CONTINUE. AC=RWRK2V ACX=AC 2000 CONTINUE  IF(INDEXF.NE.21)GOTO 2100C RNDE AC=RNDF(IDUM) ACX=AC 2100 CONTINUET IF(INDEXF.NE.22)GOTO 2200C PMT FUNCTION-C PMT[PRINCIPAL, INTEREST, NPERIODS] ARE ARGSM&C PAYMENT (MORTGAGE PAYMENT PER PERIODEC COMPUTED AS PAYMENT=PRINCIPAL*(INTEREST/(1-(1+INTEREST)**NPERIODS)) C (CORRECT EVEN IF INTEREST=0 ,C (REUSE COUNTER USED IN IRR ARGUMENTS HERE) AC=0. ACX=0.L KIRR=KIRR+1 EP(KIRR)=VART IF(KIRR.LT.3)RETURN4C FIRST GET ALL THE INPUTS, THEN DO THE REAL RESULT.- AC=EP(1)*(EP(2)/(1.-((1.+EP(2))**(-EP(3)))))D ACX=ACL RETURNR 2200 CONTINUE/ IF(INDEXF.NE.23)GOTO 2300C PVL FUNCTION)C PVL[PAYMENT,INTEREST,NPERIODS] ARE ARGSWC PRESENT VALUE COMPUTED ASC3C PV=PAYMENT*(1.-(1.+INTEREST)**-NPERIODS)/INTERESTD,C (REUSE COUNTER USED IN IRR ARGUMENTS HERE) AC=0. ACX=0.T KIRR=KIRR+1 EP(KIRR)=VARP IF(KIRR.LT.3)RETURN4C FIRST GET ALL THE INPUTS, THEN DO THE REAL RESULT.00ar\%\ZYTADATADATADATADATADATA AC=EP(1)*EP(3) ( IF(EP(3).EQ.0..OR.EP(2).EQ.0.)GOTO 2205+ AC=EP(1)*((1.-(1.+EP(2))**(-EP(3)))/EP(2))N 2205 ACX=ACN RETURN 2300 CONTINUEN IF(INDEXF.NE.24)GOTO 2400"C AVE AVERAGE EXCLUDING ZERO CELLS IF(VAR.EQ.0.)GOTO 2305E AC=AC+VAR CTR=CTR+1.A2305 ACX=AC/CTRE 2400 CONTINUEV IF(INDEXF.NE.25)GOTO 2500C CHSF7C CHOOSE FROM ARGS USING 1ST ARG AS COUNT INTO RANGE...W-C (SIMILAR TO CLASSICAL "CHOOSE" FUNCTION...) <C RETURNS 0.0 OR VALUE OF NTH ARG WHERE N IS INDEX OF ARG...C IF(KIRR.EQ.0)ACX=0.E KIRR=KIRR+1 IF(KIRR.EQ.1)IWRK1=VAR+1. IF(KIRR.NE.IWRK1)GOTO 2450OC SAVE LOCATION ALSO OF CELLS.PC THIS ALLOWS US TO FIND ADDRESSES OF SELECTED CELLS IN CHOOSE FOR ADDRESS MATH. AACP=KLKC AACQ=KLKR SS=VARM 2450 CONTINUET ACX=SS( AC=ACX) 2500 CONTINUES RETURN  END+ SUBROUTINE DOMFCN(LINE,LLB,LRB,INDEXF,ACX)SC LLB = LOC OF [C LRB = LOC OF ].C INDEXF IS AS ABOVE. GUARANTEED IN RANGE 1-5. LOGICAL*1 LINE(110)%C +++++++++++++++++++++++++++++++++++, INCLUDE 'VKLUGPRM.FTN' PARAMETER CUP=1,EL=12C PARAMETER RRW = 32&C PARAMETER RCL = 32 ! REAL ROWS, COLSC PARAMETER DRW = 8E-C PARAMETER DCL = 8 ! DISPLAY MAX ROWS, COLS.TC PARAMETER RRCL = 1024 C PARAMETER RRCL=RRW*RCL LOGICAL*1 FORM,FVLD,CMDLIN(132) INTEGER*4 VNLT($ DIMENSION FORM(128),FVLD(RRWP,RCLP)AC FVLD FLAG 0 = NO FORMULA, -1= DISPLAY FORMULA ITSELF, NOT VALUEC=C 1=VALID ACTIVE FORMULA THERE TO EVALUATE. INITIALLY ALL 0'SNC SO INITIALLY IGNORE.( INTEGER*2 PROW,PCOL,DROW,DCOL,DRWV,DCLV* COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRWV,DCLV( DIMENSION NRDSP(DRW,DCL),NCDSP(DRW,DCL) COMMON/D2R/NRDSP,NCDSPA" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9) REAL*8 XVBLS(RRWP,RCLP)) LOGICAL*1 AVBLS(20,27),VBLS(8,RRWP,RCLP)M INTEGER*4 JVBLS(2,RRWP,RCLP)L% EQUIVALENCE(JVBLS(1,1,1),XVBLS(1,1))I REAL*8 XXXF$ EQUIVALENCE(VBLS(1,1,1),XVBLS(1,1)) COMMON/V/TYPE,AVBLS,VBLS,VLEN REAL*8 ACX,ACYI REAL*8 AC,SS,CTRO EQUIVALENCE(ACY,AVBLS(1,27))S REAL*8 ACP,ACQC/ EQUIVALENCE(ACP,AVBLS(1,16)),(ACQ,AVBLS(1,17)) INTEGER*2 KDRW,KDCL COMMON /DOT/KDRW,KDCL LOGICAL*1 ILINE(106)2 INTEGER*2 ILNFG,ILNCT COMMON/ILN/ILNFG,ILNCT,ILINE COMMON/FVLDC/FVLD INTEGER*2 KLKC,KLKR REAL*8 AACP,AACQT! COMMON/MSCMN/KLKC,KLKR,AACP,AACQN%C +++++++++++++++++++++++++++++++++++ C2@C FIRST GET A VARIABLE NAME. ALL MATH FUNCTIONS REQUIRE VARIABLE8C NAMES SINCE THEIR VARIABLES ARE THEIR ONLY VALID ARGS." CALL MTHINI(INDEXF,AC,SS,CTR,ACX)C SET UP PROPER INITSNC KV2=1 IF A 2ND VBL EXISTSM LCR=LLB+1 AACP=ACP) AACQ=ACQL8C INITIALIZE P, Q SAVE ACCUMULATORS TO LET DOMATH SIGNAL?C COORDS OF SELECTED ITEMS IN P,Q FOR SELECTION TYPE FUNCTIONS. 100 CONTINUE KV2=0 LB=LCR LE=LRB-1I IF(LB.GE.LE)RETURN - CALL VARSCN(LINE,LB,LE,LASST,ID1,ID2,IVALID)H IF(IVALID.EQ.0)RETURN IF(LINE(LASST).NE.':')GOTO 110 LB=LASST+1N LE=LRB-1/ CALL VARSCN(LINE,LB,LE,LASST,ID1B,ID2B,IVALID)O IF(IVALID.NE.0)KV2=1A 110 CONTINUE CALL XVBLGT(ID1,ID2,XVBLS(1,1)) XXX=XVBLS(1,1)FC XXX=XVBLS(ID1,ID2) CALL TYPGET(ID1,ID2,TYPE(1,1))B$C USE EQUIVALENCE OF JVBLS AND XVBLS( IF(ABS(TYPE(1,1)).NE.2)XXX=JVBLS(1,1,1) KLKC=ID1 KLKR=ID2-1S& CALL DOMATH(INDEXF,XXX,AC,SS,CTR,ACX) IF(KV2.EQ.0)GOTO 200. IF(ID1.NE.ID1B) GOTO 1201 IF(ID2.GT.ID2B)GOTO 200 M=ID2+1 DO 121 MM=M,ID2B CALL XVBLGT(ID1,MM,XVBLS(1,1))0 XXX=XVBLS(1,1)E CALL TYPGET(ID1,MM,TYPE(1,1))C XXX=XVBLS(ID1,MM)( IF(ABS(TYPE(1,1)).NE.2)XXX=JVBLS(1,1,1) KLKC=ID1P KLKR=MM-1& CALL DOMATH(INDEXF,XXX,AC,SS,CTR,ACX) 121 CONTINUE GOTO 200M 120 CONTINUE IF(ID2.NE.ID2B)GOTO 130 IF(ID1.GT.ID1B)GOTO 200 M=ID1+1 DO 131 MM=M,ID1B( CALL XVBLGT(MM,ID2,XVBLS(1,1))N XXX=XVBLS(1,1)C XXX=XVBLS(MM,ID2)L CALL TYPGET(MM,ID2,TYPE(1,1))( IF(ABS(TYPE(1,1)).NE.2)XXX=JVBLS(1,1,1) KLKC=MM KLKR=ID2-1 & CALL DOMATH(INDEXF,XXX,AC,SS,CTR,ACX) 131 CONTINUE 130 CONTINUE 200 CONTINUE?C IF NEXT CHAR IS A COMMA, SKIP IT AND KEEP UP SCAN UNLESS DONE IF(LINE(LASST).EQ.',')GOTO 300O ACP=AACPO ACQ=AACQOEC USE P, Q ACCUMULATORS FROM DOMATH (OR THE ONES WE SAVE00az\b~\[Y[Z[[[\[}D EARLIER...)D RETURNM300 LCR=LASST+1T GOTO 100  END$ SUBROUTINE DOIF(LINE,LLB,LRB,LLAST) INCLUDE 'VKLUGPRM.FTN'C PARAMETER CUP=1,EL=12 LOGICAL*1 LINE(110) REAL*8 V1,V2S V1=0. V2=0. LS=LRB-LLB+1)' CALL GETLOG(LINE(LLB),LS,LOGTYP,LASST) LOV1=LLBK LHIV1=LASST+LLB-1 IF(LOV1.GE.LHIV1)GOTO 100&C USE SUM FUNCTION HERE AS TYPE OF FCN LT=4O# CALL DOMFCN(LINE,LOV1,LHIV1,LT,V1) 100 CONTINUE IF(LOGTYP.EQ.0)GOTO 1000A LOV2=LASST+2+LLB LHIV2=LRB IF(LOV2.GE.LHIV2)GOTO 200 LT=4C# CALL DOMFCN(LINE,LOV2,LHIV2,LT,V2)I 200 CONTINUE CALL TEST(LOGTYP,LFLAG,V1,V2) IF(LFLAG.EQ.0)GOTO 700O)C HERE HAVE "TRUE" ALTERNATIVE OF IF STMTF LBAR=INDEX(LINE,'|')E LBAR=MIN0(LBAR,LLAST) LSTM=LRB+1ICC LSTM TO LBAR IS NOW THE STMT TO EVALUATE. SINCE WE ALREADY HAVE AC?C ROUTINE TO EVALUATE A STMT, DO SO. NOTE PARTIAL RECURSION, SO?C NO NESTED IFS ALLOWED, AND CALL MUST PERMIT RECURSION ON YOURG+C MACHINE OR FORGET IT. (OK ON PDP11, VAX).* LSZ=LBAR-LSTM+1 IF(LSZ.LT.1)GOTO 1000 CALL DOSTMT(LINE(LSTM),LSZ) GOTO 1000 700 CONTINUE*C HERE HAVE "FALSE" ALTERNATIVE OF IF STMT LBAR=INDEX(LINE,'|')+1I LBAR=MIN0(LBAR,LLAST) LSZ=LLAST-LBAR+1I IF(LSZ.LT.1)GOTO 1000 CALL DOSTMT(LINE(LBAR),LSZ) 1000 CONTINUEA C THAT'S ALL.C RETURNL END) SUBROUTINE GETLOG(LINE,LMX,LOGTYP,LASST)U LOGICAL*1 LINE(110) LOGICAL*1 LFN(4,6)F INTEGER*4 LF(6) EQUIVALENCE(LF(1),LFN(1,1))3 DATA LF/'.GT.','.LT.','.EQ.','.NE.','.GE.','.LE.'/5C LOGTYP RELATIONSHIP TO RELATIONSHIPS OF 2 VARIABLES. C IS DEFINED IN ABOVE DATA STMT.;C IF LINE CONTAINS STRING IN NAME, RETURN TYPE AND END LOC.E LMX4=LMX-3U DO 100 LL=1,6 LOGTYP=LL DO 1 N1=1,LMX4 " IF(LINE(N1 ).NE.LFN(1,LL))GOTO 2" IF(LINE(N1+1).NE.LFN(2,LL))GOTO 2" IF(LINE(N1+2).NE.LFN(3,LL))GOTO 2" IF(LINE(N1+3).NE.LFN(4,LL))GOTO 2C HERE HAVE A MATCHI LASST=N1T)C RETURN LOC OF NEXT CHAR AFTER RELATION.C GOTO 200 2 CONTINUE 1 CONTINUE 100 CONTINUE LOGTYP=0 200 CONTINUE RETURNO END SUBROUTINE RECALC#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY.C RECALCULATE COMMAND4C RECOMPUTE ALL ELEMENTS OF SPREADSHEET WHERE VALID.C INCLUDE 'VKLUGPRM.FTN' PARAMETER CUP=1,EL=12C PARAMETER RRW = 32&C PARAMETER RCL = 32 ! REAL ROWS, COLSC PARAMETER DRW = 8-C PARAMETER DCL = 8 ! DISPLAY MAX ROWS, COLS.C PARAMETER RRCL = 1024C PARAMETER RRCL=RRW*RCL=C NOTE: THROUGHOUT, ROWS ARE ACTUALLY DOWN, COLUMNS ACROSS ONAC SCREEN. ROW 0 IN DISPLAY IS THE 27 ACCUMULATORS A-Z AND %, WITH>C % BEING THE LAST-COMPUTED VALUE FROM THE CALC PROGRAM, WHICHAC KNOWS HOW TO ACCESS THE DATA BUT IS JUST PASSED COMMAND STRINGS C FROM THE DISK BASED FILE HERE. LOGICAL*1 FORM,FVLD,CMDLIN(132) INTEGER*4 VNLT" INTEGER*2 FORMFG,RCFGX,PZAP,RCONE$ COMMON/FFGG/FORMFG,RCFGX,PZAP,RCONE$ DIMENSION FORM(128),FVLD(RRWP,RCLP) INTEGER*2 DLFG COMMON/DLFG/DLFG*C DLFG=0 IF NO D## SEEN AND 1 IF D## SEEN. COMMON/FVLDC/FVLDAC FVLD FLAG 0 = NO FORMULA, -1= DISPLAY FORMULA ITSELF, NOT VALUE=C 1=VALID ACTIVE FORMULA THERE TO EVALUATE. INITIALLY ALL 0'SC SO INITIALLY IGNORE.!C FVLD=-2 OR -3 = DISPLAY FORMULA1C FVLD=3 NUMERIC, COMPUTE ONCE THEN SET FVLD TO 2@C FVLD=2 NUMERIC CONSTANT, ALREADY COMPUTED... DO NOT RECOMPUTE.CDC ROUTINE IN2AS COMPUTES ASCII CHARACTER NAMES OF SUBSCRIPTS IN1,IN2=C SO DISPLAY CAN HAVE THEM. IT MUST BE THE INVERSE OF VARSCN.( INTEGER*2 PROW,PCOL,DROW,DCOL,DRWV,DCLV* COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRWV,DCLV( DIMENSION NRDSP(DRW,DCL),NCDSP(DRW,DCL) COMMON/D2R/NRDSP,NCDSP" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9)) LOGICAL*1 AVBLS(20,27),VBLS(8,RRWP,RCLP) INTEGER*2 RRWACT,RCLACT COMMON/RCLACT/RRWACT,RCLACT INTEGER*2 KDRW,KDCL COMMON /DOT/KDRW,KDCL COMMON/V/TYPE,AVBLS,VBLS,VLEN INTEGER*2 PRS,PCS,DRS,DCS PRS=PROW PCS=PCOL DRS=DROW DCS=DCOL4C THE FOLLOWING 2 LOOPS DEFINE ORDER OF CALCULATION.JC HERE THIS IS: OUTER LOOP ON ROWS (ACROSS),00b\%\ZYTADATADATADATADATADATA INNER LOOP ON COLUMNS (DOWN). DO 1 N2=1,RCLACT N1=1 220 CONTINUEC DO 2 N1=1,RRW?C USE FVPEEK TO CHECK WHERE FIRST CELL TO DO IS HERE. SHOULD BE#C FASTER THAN STANDARD LOOP METHOD. CALL FVPEEK(N1,N2,N1) CALL FVLDGT(N1,N2,FVLD(1,1)) IF (FVLD(1,1).LE.0) GOTO 2 IRRX=(N2-1)*RRW+N1C CALL REFLEC(N2,N1,IRRX)BC IF CONSTANT WAS COMPUTED ALREADY, NO NEED TO RECOMPUTE. SKIP IT.:C NOTE: WE MUST ALWAYS RECOMPUTE IF R COMMAND WAS GIVEN.... IF ((RCONE.EQ.0).AND.(FVLD(1,1).EQ.2)) GOTO 2 KDRW=N1 KDCL=N2 PROW=N1 PCOL=N2@C SEE IF THIS PHYS COL HAS A DISPLAY COL. AND IF SO SET THAT UP.:C ONLY SET TO DISPLAYED LOCS HERE TO MINIMIZE SEARCH TIME. IF(DLFG.EQ.0)GOTO 99C NO SEARCH FOR DROW AND DCOL IF NO D## FORMS MAY USE IT. DO 10 M1=1,DRWV DO 20 M2=1,DCLV M1X=M1 M2X=M24 IF(NRDSP(M1,M2).EQ.N1.AND.NCDSP(M1,M2).EQ.N2)GOTO 9 20 CONTINUE 10 CONTINUE 9 CONTINUE*C IF NO DISPLAY ROW, LEAVE AT LOW RIGHT...DC USE SAVED VALUES SO WE DON'T RELY ON DO LOOP INDEX AFTER LOOP END. DROW=M1X DCOL=M2X CALL WRKFIL(IRRX,FORM,0)C READ(7'IRRX)FORM:C NOW HAVE THE FORMULA LINE. PASS TO DOENTRY TO HANDLE IT. LLST=110 DO 756 NNN=1,109 LLST=111-NNN IF(FORM(LLST-1).GT.32)GOTO 757 756 CONTINUE 757 CONTINUE"C FIND REAL LAST FORMULA CHARACTER LFST=1 FORM(LLST)=0 FORM(LLST+1)=0 LFST=1 FORM(111)=0 IF(FORM(118).NE.15)GOTO 2 CALL DOENTR(FORM,LFST,LLST)?C IF WE JUST COMPUTED A CONSTANT, FLAG IT COMPUTED AND SKIP IT. CALL FVLDGT(N1,N2,FVLD(1,1))' IF(FVLD(1,1).EQ.3)CALL FVLDST(N1,N2,2) 2 CONTINUE N1=N1+1 IF(N1.LE.RRWACT)GOTO 220 1 CONTINUE PROW=PRS PCOL=PCS DROW=DRS DCOL=DCOL!C FORCE FUNCTION WORKS ONCE ONLY. RCONE=0 RETURN END" SUBROUTINE DOENTR(FORM,LOW,LHIGH)%C +++++++++++++++++++++++++++++++++++ INCLUDE 'VKLUGPRM.FTN' PARAMETER CUP=1,EL=12C PARAMETER RRW = 32&C PARAMETER RCL = 32 ! REAL ROWS, COLSC PARAMETER DRW = 8-C PARAMETER DCL = 8 ! DISPLAY MAX ROWS, COLS.C PARAMETER RRCL = 1024C PARAMETER RRCL=RRW*RCL LOGICAL*1 FORM,FVLD,CMDLIN(132) INTEGER*4 VNLT$ DIMENSION FORM(128),FVLD(RRWP,RCLP)AC FVLD FLAG 0 = NO FORMULA, -1= DISPLAY FORMULA ITSELF, NOT VALUE=C 1=VALID ACTIVE FORMULA THERE TO EVALUATE. INITIALLY ALL 0'SC SO INITIALLY IGNORE.( INTEGER*2 PROW,PCOL,DROW,DCOL,DRWV,DCLV* COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRWV,DCLV( DIMENSION NRDSP(DRW,DCL),NCDSP(DRW,DCL) COMMON/D2R/NRDSP,NCDSP" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9)) LOGICAL*1 AVBLS(20,27),VBLS(8,RRWP,RCLP) REAL*8 ACY EQUIVALENCE(ACY,AVBLS(1,27)) COMMON/V/TYPE,AVBLS,VBLS,VLEN COMMON/FVLDC/FVLD%C +++++++++++++++++++++++++++++++++++2C ENABLE { FORMS TO HANDLE ALL POSSIBLE EQUATIONS. CALL FRMEDT(FORM,LLST) IITR=0 5050 continue IITR=IITR+1 FORM(111)=0 LCURR=LOWBC DO AN ENTRY. MUST SCAN FOR MULTIPLE STATEMENTS PER LINE AND ALSOC RECOGNIZE FUNCTION NAMES. 1000 CONTINUE LSL=INDEX(FORM(LCURR),'\') IF(LSL.EQ.0)LSL=LHIGHC CLAMP AT 80 CHARS LONG INPUT. IF(LSL.LE.79)GOTO 1200:C STMT HAS NO MULTIPLES. SQUASH IT TO USE ONLY 1ST PART... LSL=79 LCURR=LHIGH FORM(80)=0 1200 CONTINUE6C PERMIT < TO MEAN WE GO BACK INTO THE CURRENT FORMULA1C IF WE HAVE BEEN LESS THAN 100 TIMES AND IF % IS C POSITIVE. IF(FORM(LCURR).NE.'<')GOTO 5051' IF(ACY.GT.0..AND.IITR.LT.100)GOTO 50507C SKIP DOSTMT CALL IF WE HAD < SINCE THAT'S NOT A LEGAL C FUNCTION... GOTO 5052 5051 CONTINUE CALL DOSTMT(FORM(LCURR),LSL)5052 IF (LCURR.GE.LHIGH)RETURN LCURR=LCURR+LSL GOTO 1000 END SUBROUTINE DOSTMT(LINE,LLAST)BC HANDLE 1 STATEMENT PARSING (DOES A BIT MORE OF THE WORK WITH THE>C PART OF THE LINE STRIPPED TO HAVE EXACTLY ONE COMMAND IN IT. LOGICAL*1 LINE(110)%C +++++++++++++++++++++++++++++++++++ INCLUDE 'VKLUGPRM.FTN' PARAMETER CUP=1,EL=12C PARAMETER RRW = 32&C PARAMETER RCL = 32 ! REAL ROWS, COLSC PARAMETER DRW = 8-C PARAMETER DCL = 8 ! DISPLAY MAX ROWS, COLS.C PARAMETER RRCL = 1024C PARAMETER RRCL=RRW*RCL LOGICAL*1 FORM,FVLD,CMDLIN(132) INTEGER*4 VNLT$ DIMENSION FORM(128),FVLD(RRWP,RCL00b\~\[Y[Z[[[\[}P)AC FVLD FLAG 0 = NO FORMULA, -1= DISPLAY FORMULA ITSELF, NOT VALUE=C 1=VALID ACTIVE FORMULA THERE TO EVALUATE. INITIALLY ALL 0'SC SO INITIALLY IGNORE. COMMON/FVLDC/FVLD( INTEGER*2 PROW,PCOL,DROW,DCOL,DRWV,DCLV* COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRWV,DCLV( DIMENSION NRDSP(DRW,DCL),NCDSP(DRW,DCL) COMMON/D2R/NRDSP,NCDSP" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9) REAL*8 XVBLS(RRWP,RCLP)) LOGICAL*1 AVBLS(20,27),VBLS(8,RRWP,RCLP) INTEGER*4 JVBLS(2,RRWP,RCLP)% EQUIVALENCE(JVBLS(1,1,1),XVBLS(1,1))$ EQUIVALENCE(VBLS(1,1,1),XVBLS(1,1)) COMMON/V/TYPE,AVBLS,VBLS,VLEN REAL*8 ACX,ACY,AACY EQUIVALENCE(ACY,AVBLS(1,27)) integer*4 iacy,IIJACY,IIJAC2(2) EQUIVALENCE(IACY,AVBLS(1,27)) EQUIVALENCE(IIJACY,IIJAC2(1)) EQUIVALENCE(IIJAC2(1),AACY) INTEGER*2 KDRW,KDCL COMMON /DOT/KDRW,KDCL LOGICAL*1 ILINE(106) INTEGER*2 ILNFG,ILNCT COMMON/ILN/ILNFG,ILNCT,ILINE%C +++++++++++++++++++++++++++++++++++ CALL FNAME(LINE,LLAST,INDEXF)C ABOVE GETS FUNCTION NAMES. C NAME INDEXFC MIN 1C MAX 2C AVG 3C SUM 4C STD 5 (STD DEVIATION)C IF 6 (IF STMT)C AND 7C OR 8C NOT 9!C CNT 10 (COUNTS NONZERO ENTRIES)C NPV 11 NET PRESENT VALUE,C LKP 12 LOOKUP IN LIST, GIVE OFFSET 0 BASED)C LKN 13 LOOKUP NEGATIVE (INVERSE OF LKP)C LKE 14 LOOKUP EQUALC XOR 15 EXCLUSIVE OR)C EQV 16 EQUIVALENCE (TRUE IF BITS EQUAL)C MOD 17 V1 MODULO V2C REM 18 REMAINDER OF V1/V2$C SGN 19 SIGN OF V1 (-1.,0., OR +1.) C IRR 20 INTERNAL RATE OF RETURN(C RND 21 RANDOM NUMBER BETWEEN 0. AND 1.C PMT 22 Payment functionC PVL 23 Present Value function%C AVE 24 Average excluding zero cells'C USE [ AND ] TO DELIMIT FUNCTION ARGS.) IF(INDEXF.LT.1.OR.INDEXF.GT.24)GOTO 1000IC HERE IF A FUNCTION OR AN IF STMT (FORMAT= IF [varRELvar]stmt|else-stmt)C'C ALLOW CALC TO HANDLE ALL BUT IF STMTS IF(INDEXF.NE.6)GOTO 1000C LLB=INDEX(LINE,'[') LRB=INDEX(LINE,']')=C *** ERROR WITH FORMAT -- NO [ SEEN IN TIME. JUST IGNORE IT. IF(LLB.GT.LLAST)RETURN IF(LRB.GT.LLAST)LRB=LLASTC IF(INDEXF.EQ.6)GOTO 2000CC ISOLATE MATH FUNCTIONS&C CALL DOMFCN(LINE,LLB,LRB,INDEXF,ACX)CC GET % ABOVE"C CALL TYPGET(KDRW,KDCL,TYPE(1,1))"C IF(ABS(TYPE(1,1)).NE.2)GOTO 1760C CALL XVBLST(KDRW,KDCL,ACX)CC XVBLS(KDRW,KDCL)=ACXCC LEAVE RESULT IN % TOO. C ACY=ACXC CALL TYPSET(27,1,TYPE(1,1))CC TYPE(27,1)=TYPE(KDRW,KDCL)C RETURNC1760 JVBLS(1,1,1)=ACX'C CALL JVBLST(1,KDRW,KDCL,JVBLS(1,1,1))CC JVBLS(1,KDRW,KDCL)=ACXC RETURN 2000 CONTINUEC HANDLE AN "IF" STATEMENT CALL DOIF(LINE,LLB,LRB,LLAST)BC PASS LLAST TO DOIF SINCE WE DON'T EXPECT ] AS LAST CHAR OF STMT.C NO DIRECT SET OF VRBL HERE... RETURN 1000 CONTINUE2C HERE JUST HAVE SOMETHING TO PASS TO CALC. DO SO. ILNFG=1 LMX=LLAST-1 DO 1001 N1=1,LMX1001 ILINE(N1)=LINE(N1) ILNCT=LMXEC PROTECT CALC FROM ANY PART OF A LINE LONGER THAN 80 CHARS (ITS MAX) IF(ILNCT.GT.80)ILNCT=80 CALL CALCC STORE EXPRESSION RESULT."C CHANGE TYPE OF RESULT IF NEED TO CALL TYPGET(KDRW,KDCL,LMX) CALL TYPGET(27,1,N1)C REUSE COUPLE LOCAL VARIABLES LMX=IABS(LMX) N1=IABS(N1) IF(N1.EQ.9)N1=2 IF(N1.NE.2)N1=4 AACY=ACY IF(N1.EQ.LMX)GOTO 2760 IF(N1.EQ.2)IIJACY=ACY IF(N1.NE.2)AACY=IACY+C 2 IMPLIES REAL, 4 IMPLIES INTEGER STORAGE 2760 CONTINUE CALL XVBLST(KDRW,KDCL,AACY)C XVBLS(KDRW,KDCL)=ACY RETURN END$ SUBROUTINE FNAME(LINE,LLAST,INDEXF)C RETURN FUNCTION NAME IF ANY LOGICAL*1 LINE(110) INTEGER*4 FNAM(24) LOGICAL*1 FCHNM(4,24) EQUIVALENCE(FNAM(1),FCHNM(1,1))5 DATA FNAM/'MIN ','MAX ','AVG ','SUM ','STD ','IF ',2 1 'AND ','IOR ','NOT ','CNT ','NPV ','LKP ',@ 2 'LKN ','LKE ','XOR ','EQV ','MOD ','REM ','SGN ','IRR ',! 3 'RND ','PMT','PVL','AVE'/ INDEXF=0 DO 1 N1=1,24 DO 2 N2=1,3# IF(LINE(N2).NE.FCHNM(N2,N1))GOTO 1 2 CONTINUE>C IF WE FALL THROUGH, WE HAVE A VALID FCN NAME INDEX IN INDEXF INDEXF=N1 GOTO 3 1 CONTINUE 3 CONTINUE RETURN END# SUBROUTINE TEST(LOGTYP,FLAG,V1,V2) INTEGER*2 FLAG REAL*8 V1,V2 FLAG=0# IF(LOGTYP.EQ.1.AND.V1.GT.V2)FLAG=100b\%\ZYTADATADATADATADATADATA# IF(LOGTYP.EQ.2.AND.V1.LT.V2)FLAG=1# IF(LOGTYP.EQ.3.AND.V1.EQ.V2)FLAG=1# IF(LOGTYP.EQ.4.AND.V1.NE.V2)FLAG=1# IF(LOGTYP.EQ.5.AND.V1.GE.V2)FLAG=1# IF(LOGTYP.EQ.6.AND.V1.LE.V2)FLAG=1BC TEST LOGICAL RELATIONS FOR IF STATEMENT, FLAG=1 IF TRUE, 0 ELSE. RETURN END( SUBROUTINE MTHINI(INDEXF,AC,SS,CTR,ACX) DIMENSION EP(20) REAL*8 EP,PV,FV COMMON/ERNPER/EP,PV,FV,KIRR REAL*8 AC,SS,CTR,ACX KIRR=0 SS=0. CTR=0. ACX=0. DO 1 N=1,20 1 EP(N)=0. AC=0. IF(INDEXF.EQ.1)AC=1.E20 IF(INDEXF.EQ.2)AC=-1.E20 RETURN END, SUBROUTINE DOMATH(INDEXF,VAR,AC,SS,CTR,ACX)! REAL*8 AC,SS,CTR,ACX,RWRK1,RWRK2 DIMENSION EP(20) REAL*8 EP,PV,FV COMMON/ERNPER/EP,PV,FV,KIRR REAL*8 VAR,TE INTEGER*4 IWRK1,IWRK2,IDUM IF(INDEXF.NE.1)GOTO 100C MIN IF(VAR.LT.AC)AC=VAR ACX=AC100 IF(INDEXF.NE.2)GOTO 200C MAX IF(VAR.GT.AC)AC=VAR ACX=AC200 IF(INDEXF.NE.3)GOTO 300C AVG AC=AC+VAR CTR=CTR+1. ACX=AC/CTR300 IF(INDEXF.NE.4)GOTO 400C SUM AC=AC+VAR ACX=AC400 IF(INDEXF.NE.5)GOTO 500"C STD (STANDARD DEVIATION SQUARED) AC=AC+VAR SS=SS+(VAR*VAR) CTR=CTR+1. ACX=(SS-((AC*AC)/CTR))/CTR 500 CONTINUE IF(INDEXF.NE.7)GOTO 600C AND IF(SS.NE.0.)IWRK1=AC IF(SS.EQ.0.)IWRK1=VAR SS=1. IWRK2=VAR IWRK1=IWRK1.AND.IWRK2 AC=IWRK1 ACX=AC600 IF(INDEXF.NE.8)GOTO 700C INCLUSIVE OR IWRK1=AC IWRK2=VAR IWRK1=IWRK1.OR.IWRK2 AC=IWRK1 ACX=AC700 IF (INDEXF.NE.9)GOTO 800C NOT IWRK1=VAR IWRK1=.NOT.IWRK1 AC=IWRK1 ACX=AC800 IF(INDEXF.NE.10)GOTO 1000C CNTC COUNT NONZERO ENTRIES IF(VAR.NE.0.)AC=AC+1. ACX=AC 1000 CONTINUE IF(INDEXF.NE.11)GOTO 1100C NPV IF(SS.EQ.0.)GOTO 1050 CTR=CTR+1.C AC=AC+VAR*CTR/SS AC=AC+VAR/(SS**(CTR-1)) ACX=AC GOTO 1200 1050 CONTINUE SS=VAR+1. ACX=0.1100 if(indexf.ne.12) GOTO 1200C LKP IF(SS.NE.0.)GOTO 1150 SS=1. AC=VAR ACX=-1. GOTO 1200 1150 CONTINUE# IF(VAR.GE.AC.AND.ACX.LT.0.)ACX=CTR CTR=CTR+1. 1200 CONTINUE IF(INDEXF.NE.13)GOTO 1300C LKN IF(SS.NE.0.)GOTO 1250 SS=VAR AC=-1. GOTO 1300%1250 IF(VAR.LE.SS.AND.AC.LT.0.)AC=CTR ACX=AC CTR=CTR+1. 1300 CONTINUE IF(INDEXF.NE.14)GOTO 1400C LKE IF(SS.NE.0.)GOTO 1350 SS=VAR AC=-1. GOTO 1400%1350 IF(VAR.LE.SS.AND.AC.LT.0.)AC=CTR ACX=AC CTR=CTR+1. 1400 CONTINUE IF(INDEXF.NE.15)GOTO 1500C XOR IF(SS.NE.0)IWRK1=AC IF(SS.EQ.0)IWRK1=VAR SS=SS+1. IF(SS.EQ.1.)GOTO 1405 IWRK2=VAR IWRK3=IWRK1.OR.IWRK2 IWRK1=IWRK1.AND.IWRK2 IWRK1=IWRK3-IWRK1 1405 AC=IWRK1 ACX=AC 1500 CONTINUE IF(INDEXF.NE.16)GOTO 1600C EQV9C NOTE THE EQUIVALENCE FUNCTION IS JUST THE COMPLEMENT OF=C THE XOR FUNCTION. DO THE COMPLEMENT VIA THE .NOT. OPERATOR. IF(SS.NE.0)IWRK1=AC IF(SS.EQ.0)IWRK1=VAR SS=SS+1. IF(SS.EQ.1.)GOTO 1505 IWRK2=VAR IWRK3=IWRK1.OR.IWRK2 IWRK1=IWRK1.AND.IWRK2 IWRK1=IWRK3-IWRK1 IWRK1=.NOT.IWRK1 1505 AC=IWRK1 ACX=AC 1600 CONTINUE IF(INDEXF.NE.17)GOTO 1700C MODC MODULO (V1 MOD V2) IF(SS.NE.0)RWRK1=AC IF(SS.EQ.0)RWRK1=VAR SS=SS+1. IF(SS.EQ.1.)GOTO 1605 RWRK2=VAR RWRK1=DMOD(RWRK1,RWRK2) 1605 AC=RWRK1 ACX=AC 1700 CONTINUE IF(INDEXF.NE.18)GOTO 1800C REMAINDER -- INTEGER MODULO IF(SS.NE.0)IWRK1=AC IF(SS.EQ.0)IWRK1=VAR SS=SS+1. IF(SS.EQ.1.)GOTO 1705 IWRK2=VAR IWRK1=JMOD(IWRK1,IWRK2) 1705 AC=IWRK1 ACX=AC 1800 CONTINUE IF(INDEXF.NE.19)GOTO 1900C SGN C RETURN 1.0 * SIGN OF ARGUMENT. AC=DSIGN(1.0D0,VAR) ACX=AC 1900 CONTINUE IF(INDEXF.NE.20)GOTO 2000C IRR - INTERNAL RATE OF RETURN AC=0. ACX=0. IF(KIRR.LT.20)KIRR=KIRR+1 IF(KIRR.EQ.1)PV=VAR IF(KIRR.EQ.2)FV=VAR IF(KIRR.LT.3)RETURNC IRR[PV,FV,RETURNS...] IWRK1=KIRR-2 EP(IWRK1)=VAR RWRK1=.15 RWRK2=.250C ITERATIVELY SOLVE FOR INTERNAL RATE OF RETURN. 1903 TE=0. SS=FV/((1.D0+RWRK1)**(IWRK1)) DO 1905 IWRK2=1,IWRK1# AC=EP(IWRK2)/((1.D0+RWRK1)**IWRK2) SS=SS+AC 1905 CONTINUE RWRK2=RWRK1*(SS+TE)/PV) IF(DABS(RWRK1-RWRK2).LT..00001)GOTO 1910 RWRK1=RWRK2 GOTO 1903 1910 CONTINUE00b\~\[Y[Z[[[\[} AC=RWRK2 ACX=AC 2000 CONTINUE IF(INDEXF.NE.21)GOTO 2100C RND AC=RNDF(IDUM) ACX=AC 2100 CONTINUE IF(INDEXF.NE.22)GOTO 2200C PMT FUNCTION-C PMT[PRINCIPAL, INTEREST, NPERIODS] ARE ARGS&C PAYMENT (MORTGAGE PAYMENT PER PERIODEC COMPUTED AS PAYMENT=PRINCIPAL*(INTEREST/(1-(1+INTEREST)**NPERIODS))C (CORRECT EVEN IF INTEREST=0,C (REUSE COUNTER USED IN IRR ARGUMENTS HERE) AC=0. ACX=0. KIRR=KIRR+1 EP(KIRR)=VAR IF(KIRR.LT.3)RETURN4C FIRST GET ALL THE INPUTS, THEN DO THE REAL RESULT.- AC=EP(1)*(EP(2)/(1.-((1.+EP(2))**(-EP(3))))) ACX=AC RETURN 2200 CONTINUE IF(INDEXF.NE.23)GOTO 2300C PVL FUNCTION)C PVL[PAYMENT,INTEREST,NPERIODS] ARE ARGSC PRESENT VALUE COMPUTED AS3C PV=PAYMENT*(1.-(1.+INTEREST)**-NPERIODS)/INTEREST,C (REUSE COUNTER USED IN IRR ARGUMENTS HERE) AC=0. ACX=0. KIRR=KIRR+1 EP(KIRR)=VAR IF(KIRR.LT.3)RETURN4C FIRST GET ALL THE INPUTS, THEN DO THE REAL RESULT. AC=EP(1)*EP(3)( IF(EP(3).EQ.0..OR.EP(2).EQ.0.)GOTO 2205+ AC=EP(1)*((1.-(1.+EP(2))**(-EP(3)))/EP(2)) 2205 ACX=AC RETURN 2300 CONTINUE IF(INDEXF.NE.24)GOTO 2400"C AVE AVERAGE EXCLUDING ZERO CELLS IF(VAR.EQ.0.)GOTO 2305 AC=AC+VAR CTR=CTR+1.2305 ACX=AC/CTR 2400 CONTINUE RETURN END+ SUBROUTINE DOMFCN(LINE,LLB,LRB,INDEXF,ACX)C LLB = LOC OF [C LRB = LOC OF ].C INDEXF IS AS ABOVE. GUARANTEED IN RANGE 1-5. LOGICAL*1 LINE(110)%C +++++++++++++++++++++++++++++++++++ INCLUDE 'VKLUGPRM.FTN' PARAMETER CUP=1,EL=12C PARAMETER RRW = 32&C PARAMETER RCL = 32 ! REAL ROWS, COLSC PARAMETER DRW = 8-C PARAMETER DCL = 8 ! DISPLAY MAX ROWS, COLS.C PARAMETER RRCL = 1024C PARAMETER RRCL=RRW*RCL LOGICAL*1 FORM,FVLD,CMDLIN(132) INTEGER*4 VNLT$ DIMENSION FORM(128),FVLD(RRWP,RCLP)AC FVLD FLAG 0 = NO FORMULA, -1= DISPLAY FORMULA ITSELF, NOT VALUE=C 1=VALID ACTIVE FORMULA THERE TO EVALUATE. INITIALLY ALL 0'SC SO INITIALLY IGNORE.( INTEGER*2 PROW,PCOL,DROW,DCOL,DRWV,DCLV* COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRWV,DCLV( DIMENSION NRDSP(DRW,DCL),NCDSP(DRW,DCL) COMMON/D2R/NRDSP,NCDSP " INTEGER*2 TYPE(RRWP,RCLP),VLEN(9) REAL*8 XVBLS(RRWP,RCLP)) LOGICAL*1 AVBLS(20,27),VBLS(8,RRWP,RCLP)B INTEGER*4 JVBLS(2,RRWP,RCLP)% EQUIVALENCE(JVBLS(1,1,1),XVBLS(1,1))L REAL*8 XXX $ EQUIVALENCE(VBLS(1,1,1),XVBLS(1,1)) COMMON/V/TYPE,AVBLS,VBLS,VLEN REAL*8 ACX,ACYE REAL*8 AC,SS,CTRA EQUIVALENCE(ACY,AVBLS(1,27))S INTEGER*2 KDRW,KDCL COMMON /DOT/KDRW,KDCL LOGICAL*1 ILINE(106) INTEGER*2 ILNFG,ILNCT COMMON/ILN/ILNFG,ILNCT,ILINE  COMMON/FVLDC/FVLD%C +++++++++++++++++++++++++++++++++++C @C FIRST GET A VARIABLE NAME. ALL MATH FUNCTIONS REQUIRE VARIABLE8C NAMES SINCE THEIR VARIABLES ARE THEIR ONLY VALID ARGS." CALL MTHINI(INDEXF,AC,SS,CTR,ACX)C SET UP PROPER INITSMC KV2=1 IF A 2ND VBL EXISTS LCR=LLB+1 100 CONTINUE KV2=0 LB=LCRI LE=LRB-1T IF(LB.GE.LE)RETURNR- CALL VARSCN(LINE,LB,LE,LASST,ID1,ID2,IVALID), IF(IVALID.EQ.0)RETURN IF(LINE(LASST).NE.':')GOTO 110I LB=LASST+1 LE=LRB-1L/ CALL VARSCN(LINE,LB,LE,LASST,ID1B,ID2B,IVALID)E IF(IVALID.NE.0)KV2=1 110 CONTINUE CALL XVBLGT(ID1,ID2,XVBLS(1,1)) XXX=XVBLS(1,1)C XXX=XVBLS(ID1,ID2) CALL TYPGET(ID1,ID2,TYPE(1,1)) $C USE EQUIVALENCE OF JVBLS AND XVBLS( IF(ABS(TYPE(1,1)).NE.2)XXX=JVBLS(1,1,1)& CALL DOMATH(INDEXF,XXX,AC,SS,CTR,ACX) IF(KV2.EQ.0)GOTO 200T IF(ID1.NE.ID1B) GOTO 120  IF(ID2.GT.ID2B)GOTO 200 M=ID2+1 DO 121 MM=M,ID2BA CALL XVBLGT(ID1,MM,XVBLS(1,1)) XXX=XVBLS(1,1)H CALL TYPGET(ID1,MM,TYPE(1,1))C XXX=XVBLS(ID1,MM)R( IF(ABS(TYPE(1,1)).NE.2)XXX=JVBLS(1,1,1)& CALL DOMATH(INDEXF,XXX,AC,SS,CTR,ACX) 121 CONTINUE GOTO 200S 120 CONTINUE IF(ID2.NE.ID2B)GOTO 130 IF(ID1.GT.ID1B)GOTO 200 M=ID1+1 DO 131 MM=M,ID1B7 CALL XVBLGT(MM,ID2,XVBLS(1,1))R XXX=XVBLS(1,1)MC XXX=XVBLS(MM,ID2)A CALL TYPGET(MM,ID2,TYPE(1,1))( IF(ABS(TYPE(1,1)).NE.2)XXX=JVBLS(1,1,1)& CALL DOMATH(INDEXF,XXX,AC,SS,CTR,ACX) 131 CONTINUE 130 CONTINUE 200 CONTINUE?C IF NEXT CHAR IS A COMMA, SKIP IT AND KEEP UP SCAN UNLESS DONEI IF(LINE(LASST).EQ.',')GOTO 300,00b\c\ZYTADATADATADATADATADATA RETURNO300 LCR=LASST+1N GOTO 1002 END$ SUBROUTINE DOIF(LINE,LLB,LRB,LLAST) INCLUDE 'VKLUGPRM.FTN'H PARAMETER CUP=1,EL=12 LOGICAL*1 LINE(110) REAL*8 V1,V2  V1=0. V2=0. LS=LRB-LLB+1V' CALL GETLOG(LINE(LLB),LS,LOGTYP,LASST), LOV1=LLBF LHIV1=LASST+LLB-1 IF(LOV1.GE.LHIV1)GOTO 100&C USE SUM FUNCTION HERE AS TYPE OF FCN LT=4P# CALL DOMFCN(LINE,LOV1,LHIV1,LT,V1)K 100 CONTINUE IF(LOGTYP.EQ.0)GOTO 1000I LOV2=LASST+2+LLBE LHIV2=LRB IF(LOV2.GE.LHIV2)GOTO 200 LT=4O# CALL DOMFCN(LINE,LOV2,LHIV2,LT,V2)P 200 CONTINUE CALL TEST(LOGTYP,LFLAG,V1,V2) IF(LFLAG.EQ.0)GOTO 700.)C HERE HAVE "TRUE" ALTERNATIVE OF IF STMTM LBAR=INDEX(LINE,'|')L LBAR=MIN0(LBAR,LLAST) LSTM=LRB+1ACC LSTM TO LBAR IS NOW THE STMT TO EVALUATE. SINCE WE ALREADY HAVE AC?C ROUTINE TO EVALUATE A STMT, DO SO. NOTE PARTIAL RECURSION, SOQ?C NO NESTED IFS ALLOWED, AND CALL MUST PERMIT RECURSION ON YOURA+C MACHINE OR FORGET IT. (OK ON PDP11, VAX).U LSZ=LBAR-LSTM+1 IF(LSZ.LT.1)GOTO 1000 CALL DOSTMT(LINE(LSTM),LSZ) GOTO 1000 700 CONTINUE*C HERE HAVE "FALSE" ALTERNATIVE OF IF STMT LBAR=INDEX(LINE,'|')+1T LBAR=MIN0(LBAR,LLAST) LSZ=LLAST-LBAR+1, IF(LSZ.LT.1)GOTO 1000 CALL DOSTMT(LINE(LBAR),LSZ) 1000 CONTINUE C THAT'S ALL.  RETURN  END) SUBROUTINE GETLOG(LINE,LMX,LOGTYP,LASST) LOGICAL*1 LINE(110) LOGICAL*1 LFN(4,6)I INTEGER*4 LF(6) EQUIVALENCE(LF(1),LFN(1,1))3 DATA LF/'.GT.','.LT.','.EQ.','.NE.','.GE.','.LE.'/P5C LOGTYP RELATIONSHIP TO RELATIONSHIPS OF 2 VARIABLES( C IS DEFINED IN ABOVE DATA STMT.;C IF LINE CONTAINS STRING IN NAME, RETURN TYPE AND END LOC.N LMX4=LMX-3 DO 100 LL=1,6 LOGTYP=LL DO 1 N1=1,LMX4 " IF(LINE(N1 ).NE.LFN(1,LL))GOTO 2" IF(LINE(N1+1).NE.LFN(2,LL))GOTO 2" IF(LINE(N1+2).NE.LFN(3,LL))GOTO 2" IF(LINE(N1+3).NE.LFN(4,LL))GOTO 2C HERE HAVE A MATCHR LASST=N12)C RETURN LOC OF NEXT CHAR AFTER RELATION.2 GOTO 200S 2 CONTINUE 1 CONTINUE 100 CONTINUE LOGTYP=0 200 CONTINUE RETURNS END SUBROUTINE RECALC#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY.C RECALCULATE COMMAND4C RECOMPUTE ALL ELEMENTS OF SPREADSHEET WHERE VALID.C INCLUDE 'VKLUGPRM.FTN' PARAMETER CUP=1,EL=12C PARAMETER RRW = 32&C PARAMETER RCL = 32 ! REAL ROWS, COLSC PARAMETER DRW = 8-C PARAMETER DCL = 8 ! DISPLAY MAX ROWS, COLS.C PARAMETER RRCL = 1024C PARAMETER RRCL=RRW*RCL=C NOTE: THROUGHOUT, ROWS ARE ACTUALLY DOWN, COLUMNS ACROSS ONAC SCREEN. ROW 0 IN DISPLAY IS THE 27 ACCUMULATORS A-Z AND %, WITH>C % BEING THE LAST-COMPUTED VALUE FROM THE CALC PROGRAM, WHICHAC KNOWS HOW TO ACCESS THE DATA BUT IS JUST PASSED COMMAND STRINGS C FROM THE DISK BASED FILE HERE. LOGICAL*1 FORM,FVLD,CMDLIN(132) INTEGER*4 VNLT" INTEGER*2 FORMFG,RCFGX,PZAP,RCONE INTEGER*2 RCMODE,IRCE1,IRCE2% COMMON/FFGG/FORMFG,RCFGX,PZAP,RCONE, 1 RCMODE,IRCE1,IRCE2$ DIMENSION FORM(128),FVLD(RRWP,RCLP) INTEGER*2 DLFG COMMON/DLFG/DLFG*C DLFG=0 IF NO D## SEEN AND 1 IF D## SEEN. COMMON/FVLDC/FVLDAC FVLD FLAG 0 = NO FORMULA, -1= DISPLAY FORMULA ITSELF, NOT VALUE=C 1=VALID ACTIVE FORMULA THERE TO EVALUATE. INITIALLY ALL 0'SC SO INITIALLY IGNORE.!C FVLD=-2 OR -3 = DISPLAY FORMULA1C FVLD=3 NUMERIC, COMPUTE ONCE THEN SET FVLD TO 2@C FVLD=2 NUMERIC CONSTANT, ALREADY COMPUTED... DO NOT RECOMPUTE.CDC ROUTINE IN2AS COMPUTES ASCII CHARACTER NAMES OF SUBSCRIPTS IN1,IN2=C SO DISPLAY CAN HAVE THEM. IT MUST BE THE INVERSE OF VARSCN.( INTEGER*2 PROW,PCOL,DROW,DCOL,DRWV,DCLV* COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRWV,DCLV( DIMENSION NRDSP(DRW,DCL),NCDSP(DRW,DCL) COMMON/D2R/NRDSP,NCDSP" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9)) LOGICAL*1 AVBLS(20,27),VBLS(8,RRWP,RCLP) INTEGER*2 RRWACT,RCLACT COMMON/RCLACT/RRWACT,RCLACT INTEGER*2 KDRW,KDCL COMMON /DOT/KDRW,KDCL COMMON/V/TYPE,AVBLS,VBLS,VLEN INTEGER*2 PRS,PCS,DRS,DCS PRS=PROW PCS=PCOL DRS=DROW DCS=DCOL4C THE FOLLOWING 2 LOOPS DEFINE ORDER00c\~\[Y[Z[[[\[} OF CALCULATION.JC HERE THIS IS: OUTER LOOP ON ROWS (ACROSS), INNER LOOP ON COLUMNS (DOWN). DO 1 N2=1,RCLACT N1=1 220 CONTINUEC DO 2 N1=1,RRW?C USE FVPEEK TO CHECK WHERE FIRST CELL TO DO IS HERE. SHOULD BE#C FASTER THAN STANDARD LOOP METHOD. CALL FVPEEK(N1,N2,N1) CALL FVLDGT(N1,N2,FVLD(1,1)) IF (FVLD(1,1).LE.0) GOTO 2 IRRX=(N2-1)*RRW+N1C CALL REFLEC(N2,N1,IRRX)BC IF CONSTANT WAS COMPUTED ALREADY, NO NEED TO RECOMPUTE. SKIP IT.:C NOTE: WE MUST ALWAYS RECOMPUTE IF R COMMAND WAS GIVEN.... IF ((RCONE.EQ.0).AND.(FVLD(1,1).EQ.2)) GOTO 2 KDRW=N1 KDCL=N2 PROW=N1 PCOL=N2@C SEE IF THIS PHYS COL HAS A DISPLAY COL. AND IF SO SET THAT UP.:C ONLY SET TO DISPLAYED LOCS HERE TO MINIMIZE SEARCH TIME.% IF(RCMODE.LE.1.AND.DLFG.EQ.0)GOTO 959C NO SEARCH FOR DROW AND DCOL IF NO D## FORMS MAY USE IT.BC NEED SEARCH IF RCMODE > 1 SINCE WE MUST SEE IF WE'RE ON DISPLAY.6C IF RCMODE = 1 THEN WE JUST SEE IF THIS IS ENTER CELL DO 10 M1=1,DRWV DO 20 M2=1,DCLV M1X=M1 M2X=M24 IF(NRDSP(M1,M2).EQ.N1.AND.NCDSP(M1,M2).EQ.N2)GOTO 9 20 CONTINUE 10 CONTINUE<C IF WE FALL THRU HERE, CELL ISN'T ON DISPLAY AREA ANYWHERE.!C IF NOT ENTERED CELL, SKIP IT...<C ALSO GO HERE IF RCMODE IS 0 OR 1 AND NO D## ENTRIES EXIST. 95 CONTINUE IF(RCMODE.LE.0)GOTO 93C TEST AND CALC ONLY IF ENTRY HERE... ELSE SKIP IT.) IF(PROW.NE.IRCE1.OR.PCOL.NE.IRCE2)GOTO 2)C SKIP OUT IN NEW MODES IF NOT ON DISPLAY 9 CONTINUE*C IF NO DISPLAY ROW, LEAVE AT LOW RIGHT...DC USE SAVED VALUES SO WE DON'T RELY ON DO LOOP INDEX AFTER LOOP END. DROW=M1X DCOL=M2X CALL WRKFIL(IRRX,FORM,0)C READ(7'IRRX)FORM:C NOW HAVE THE FORMULA LINE. PASS TO DOENTRY TO HANDLE IT. LLST=110 DO 756 NNN=1,109 LLST=111-NNN IF(FORM(LLST-1).GT.32)GOTO 757 756 CONTINUE 757 CONTINUE"C FIND REAL LAST FORMULA CHARACTER LFST=1 FORM(LLST)=0 FORM(LLST+1)=0 LFST=1 FORM(111)=0 IF(FORM(118).NE.15)GOTO 2 CALL DOENTR(FORM,LFST,LLST)?C IF WE JUST COMPUTED A CONSTANT, FLAG IT COMPUTED AND SKIP IT. CALL FVLDGT(N1,N2,FVLD(1,1))' IF(FVLD(1,1).EQ.3)CALL FVLDST(N1,N2,2) 2 CONTINUE N1=N1+1 IF(N1.LE.RRWACT)GOTO 220 1 CONTINUE PROW=PRS PCOL=PCS DROW=DRS DCOL=DCOL!C FORCE FUNCTION WORKS ONCE ONLY. RCONE=0 RCMODE=IABS(RCMODE)>C RCMODE GETS ABS VALUE AFTER ONE CALL SO WE'RE SURE NEG FLAGSC GET RESET... IRCE1=0 IRCE2=0$C RESET ENTER FLAGS TOO ONCE USED... RETURN END" SUBROUTINE DOENTR(FORM,LOW,LHIGH)%C +++++++++++++++++++++++++++++++++++ INCLUDE 'VKLUGPRM.FTN' PARAMETER CUP=1,EL=12C PARAMETER RRW = 32&C PARAMETER RCL = 32 ! REAL ROWS, COLSC PARAMETER DRW = 8-C PARAMETER DCL = 8 ! DISPLAY MAX ROWS, COLS.C PARAMETER RRCL = 1024C PARAMETER RRCL=RRW*RCL LOGICAL*1 FORM,FVLD,CMDLIN(132) INTEGER*4 VNLT$ DIMENSION FORM(128),FVLD(RRWP,RCLP)AC FVLD FLAG 0 = NO FORMULA, -1= DISPLAY FORMULA ITSELF, NOT VALUE=C 1=VALID ACTIVE FORMULA THERE TO EVALUATE. INITIALLY ALL 0'SC SO INITIALLY IGNORE.( INTEGER*2 PROW,PCOL,DROW,DCOL,DRWV,DCLV* COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRWV,DCLV( DIMENSION NRDSP(DRW,DCL),NCDSP(DRW,DCL) COMMON/D2R/NRDSP,NCDSP" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9)) LOGICAL*1 AVBLS(20,27),VBLS(8,RRWP,RCLP) REAL*8 ACY EQUIVALENCE(ACY,AVBLS(1,27)) COMMON/V/TYPE,AVBLS,VBLS,VLEN COMMON/FVLDC/FVLD%C +++++++++++++++++++++++++++++++++++2C ENABLE { FORMS TO HANDLE ALL POSSIBLE EQUATIONS. CALL FRMEDT(FORM,LLST) IITR=0 5050 continue IITR=IITR+1 FORM(111)=0 LCURR=LOWBC DO AN ENTRY. MUST SCAN FOR MULTIPLE STATEMENTS PER LINE AND ALSOC RECOGNIZE FUNCTION NAMES. 1000 CONTINUE LSL=INDEX(FORM(LCURR),'\') IF(LSL.EQ.0)LSL=LHIGHC CLAMP AT 80 CHARS LONG INPUT. IF(LSL.LE.79)GOTO 1200:C STMT HAS NO MULTIPLES. SQUASH IT TO USE ONLY 1ST PART... LSL=79 LCURR=LHIGH FORM(80)=0 1200 CONTINUE6C PERMIT < TO MEAN WE GO BACK INTO THE CURRENT FORMULA1C IF WE HAVE BEEN LESS THAN 100 TIMES AND IF % IS C POSITIVE. IF(FORM(LCURR).NE.'<')GOTO 5051' IF(ACY.GT.0..AND.IITR.LT.100)GOTO 50507C SKIP DOSTMT CALL IF WE HAD < SINCE THAT'S 00c\\ZYTADATADATADATADATADATANOT A LEGAL C FUNCTION... GOTO 5052 5051 CONTINUE CALL DOSTMT(FORM(LCURR),LSL)5052 IF (LCURR.GE.LHIGH)RETURN LCURR=LCURR+LSL GOTO 1000 END SUBROUTINE DOSTMT(LINE,LLAST)BC HANDLE 1 STATEMENT PARSING (DOES A BIT MORE OF THE WORK WITH THE>C PART OF THE LINE STRIPPED TO HAVE EXACTLY ONE COMMAND IN IT. LOGICAL*1 LINE(110)%C +++++++++++++++++++++++++++++++++++ INCLUDE 'VKLUGPRM.FTN' PARAMETER CUP=1,EL=12C PARAMETER RRW = 32&C PARAMETER RCL = 32 ! REAL ROWS, COLSC PARAMETER DRW = 8-C PARAMETER DCL = 8 ! DISPLAY MAX ROWS, COLS.C PARAMETER RRCL = 1024C PARAMETER RRCL=RRW*RCL LOGICAL*1 FORM,FVLD,CMDLIN(132) INTEGER*4 VNLT$ DIMENSION FORM(128),FVLD(RRWP,RCLP)AC FVLD FLAG 0 = NO FORMULA, -1= DISPLAY FORMULA ITSELF, NOT VALUE=C 1=VALID ACTIVE FORMULA THERE TO EVALUATE. INITIALLY ALL 0'SC SO INITIALLY IGNORE. COMMON/FVLDC/FVLD( INTEGER*2 PROW,PCOL,DROW,DCOL,DRWV,DCLV* COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRWV,DCLV( DIMENSION NRDSP(DRW,DCL),NCDSP(DRW,DCL) COMMON/D2R/NRDSP,NCDSP" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9) REAL*8 XVBLS(RRWP,RCLP)) LOGICAL*1 AVBLS(20,27),VBLS(8,RRWP,RCLP) INTEGER*4 JVBLS(2,RRWP,RCLP)% EQUIVALENCE(JVBLS(1,1,1),XVBLS(1,1))$ EQUIVALENCE(VBLS(1,1,1),XVBLS(1,1)) COMMON/V/TYPE,AVBLS,VBLS,VLEN REAL*8 ACX,ACY,AACY EQUIVALENCE(ACY,AVBLS(1,27)) integer*4 iacy,IIJACY,IIJAC2(2) EQUIVALENCE(IACY,AVBLS(1,27)) EQUIVALENCE(IIJACY,IIJAC2(1)) EQUIVALENCE(IIJAC2(1),AACY) INTEGER*2 KDRW,KDCL COMMON /DOT/KDRW,KDCL LOGICAL*1 ILINE(106) INTEGER*2 ILNFG,ILNCT COMMON/ILN/ILNFG,ILNCT,ILINE%C +++++++++++++++++++++++++++++++++++ CALL FNAME(LINE,LLAST,INDEXF)C ABOVE GETS FUNCTION NAMES. C NAME INDEXFC MIN 1C MAX 2C AVG 3C SUM 4C STD 5 (STD DEVIATION)C IF 6 (IF STMT)C AND 7C OR 8C NOT 9!C CNT 10 (COUNTS NONZERO ENTRIES)C NPV 11 NET PRESENT VALUE,C LKP 12 LOOKUP IN LIST, GIVE OFFSET 0 BASED)C LKN 13 LOOKUP NEGATIVE (INVERSE OF LKP)C LKE 14 LOOKUP EQUALC XOR 15 EXCLUSIVE OR)C EQV 16 EQUIVALENCE (TRUE IF BITS EQUAL)C MOD 17 V1 MODULO V2C REM 18 REMAINDER OF V1/V2$C SGN 19 SIGN OF V1 (-1.,0., OR +1.) C IRR 20 INTERNAL RATE OF RETURN(C RND 21 RANDOM NUMBER BETWEEN 0. AND 1.C PMT 22 Payment functionC PVL 23 Present Value function%C AVE 24 Average excluding zero cells'C USE [ AND ] TO DELIMIT FUNCTION ARGS.) IF(INDEXF.LT.1.OR.INDEXF.GT.24)GOTO 1000IC HERE IF A FUNCTION OR AN IF STMT (FORMAT= IF [varRELvar]stmt|else-stmt)C'C ALLOW CALC TO HANDLE ALL BUT IF STMTS IF(INDEXF.NE.6)GOTO 1000C LLB=INDEX(LINE,'[') LRB=INDEX(LINE,']')=C *** ERROR WITH FORMAT -- NO [ SEEN IN TIME. JUST IGNORE IT. IF(LLB.GT.LLAST)RETURN IF(LRB.GT.LLAST)LRB=LLASTC IF(INDEXF.EQ.6)GOTO 2000CC ISOLATE MATH FUNCTIONS&C CALL DOMFCN(LINE,LLB,LRB,INDEXF,ACX)CC GET % ABOVE"C CALL TYPGET(KDRW,KDCL,TYPE(1,1))"C IF(ABS(TYPE(1,1)).NE.2)GOTO 1760C CALL XVBLST(KDRW,KDCL,ACX)CC XVBLS(KDRW,KDCL)=ACXCC LEAVE RESULT IN % TOO. C ACY=ACXC CALL TYPSET(27,1,TYPE(1,1))CC TYPE(27,1)=TYPE(KDRW,KDCL)C RETURNC1760 JVBLS(1,1,1)=ACX'C CALL JVBLST(1,KDRW,KDCL,JVBLS(1,1,1))CC JVBLS(1,KDRW,KDCL)=ACXC RETURN 2000 CONTINUEC HANDLE AN "IF" STATEMENT CALL DOIF(LINE,LLB,LRB,LLAST)BC PASS LLAST TO DOIF SINCE WE DON'T EXPECT ] AS LAST CHAR OF STMT.C NO DIRECT SET OF VRBL HERE... RETURN 1000 CONTINUE2C HERE JUST HAVE SOMETHING TO PASS TO CALC. DO SO. ILNFG=1 LMX=LLAST-1 DO 1001 N1=1,LMX1001 ILINE(N1)=LINE(N1) ILNCT=LMXEC PROTECT CALC FROM ANY PART OF A LINE LONGER THAN 80 CHARS (ITS MAX) IF(ILNCT.GT.80)ILNCT=80 CALL CALCC STORE EXPRESSION RESULT."C CHANGE TYPE OF RESULT IF NEED TO CALL TYPGET(KDRW,KDCL,LMX) CALL TYPGET(27,1,N1)C REUSE COUPLE LOCAL VARIABLES LMX=IABS(LMX) N1=IABS(N1) IF(N1.EQ.9)N1=2 IF(N1.NE.2)N1=4 AACY=ACY IF(N1.EQ.LMX)GOTO 2760 IF(N1.EQ.2)IIJACY=ACY IF(N1.NE.2)AACY=IACY+C 2 IMPLIES REAL, 4 IMPLIES INTEGER STORAGE 2760 CONTINUE CALL XVBLST(KDRW,KDCL,AACY)C XVBLS(KDRW,KDCL)=ACY RETURN END$ SUBROUTINE FN00c\~\[Y[Z[[[\[}AME(LINE,LLAST,INDEXF)C RETURN FUNCTION NAME IF ANY LOGICAL*1 LINE(110) INTEGER*4 FNAM(24) LOGICAL*1 FCHNM(4,24) EQUIVALENCE(FNAM(1),FCHNM(1,1))5 DATA FNAM/'MIN ','MAX ','AVG ','SUM ','STD ','IF ',2 1 'AND ','IOR ','NOT ','CNT ','NPV ','LKP ',@ 2 'LKN ','LKE ','XOR ','EQV ','MOD ','REM ','SGN ','IRR ',! 3 'RND ','PMT','PVL','AVE'/ INDEXF=0 DO 1 N1=1,24 DO 2 N2=1,3# IF(LINE(N2).NE.FCHNM(N2,N1))GOTO 1 2 CONTINUE>C IF WE FALL THROUGH, WE HAVE A VALID FCN NAME INDEX IN INDEXF INDEXF=N1 GOTO 3 1 CONTINUE 3 CONTINUE RETURN END# SUBROUTINE TEST(LOGTYP,FLAG,V1,V2) INTEGER*2 FLAG REAL*8 V1,V2 FLAG=0# IF(LOGTYP.EQ.1.AND.V1.GT.V2)FLAG=1# IF(LOGTYP.EQ.2.AND.V1.LT.V2)FLAG=1# IF(LOGTYP.EQ.3.AND.V1.EQ.V2)FLAG=1# IF(LOGTYP.EQ.4.AND.V1.NE.V2)FLAG=1# IF(LOGTYP.EQ.5.AND.V1.GE.V2)FLAG=1# IF(LOGTYP.EQ.6.AND.V1.LE.V2)FLAG=1BC TEST LOGICAL RELATIONS FOR IF STATEMENT, FLAG=1 IF TRUE, 0 ELSE. RETURN END( SUBROUTINE MTHINI(INDEXF,AC,SS,CTR,ACX) DIMENSION EP(20) REAL*8 EP,PV,FV COMMON/ERNPER/EP,PV,FV,KIRR REAL*8 AC,SS,CTR,ACX KIRR=0 SS=0. CTR=0. ACX=0. DO 1 N=1,20 1 EP(N)=0. AC=0. IF(INDEXF.EQ.1)AC=1.E20 IF(INDEXF.EQ.2)AC=-1.E20 RETURN END, SUBROUTINE DOMATH(INDEXF,VAR,AC,SS,CTR,ACX)! REAL*8 AC,SS,CTR,ACX,RWRK1,RWRK2 DIMENSION EP(20) REAL*8 EP,PV,FV COMMON/ERNPER/EP,PV,FV,KIRR REAL*8 VAR,TE INTEGER*4 IWRK1,IWRK2,IDUM INTEGER*2 KLKC,KLKR REAL*8 AACP,AACQ! COMMON/MSCMN/KLKC,KLKR,AACP,AACQ IF(INDEXF.NE.1)GOTO 100C MIN IF(VAR.GE.AC)GOTO 105 AC=VAR AACP=KLKC AACQ=KLKR 105 CONTINUEC IF(VAR.LT.AC)AC=VAR ACX=AC100 IF(INDEXF.NE.2)GOTO 200C MAX IF(VAR.LE.AC)GOTO 107 AC=VAR AACP=KLKC AACQ=KLKRC SAVE SELECTED COORDS 107 CONTINUEC IF(VAR.GT.AC)AC=VAR ACX=AC200 IF(INDEXF.NE.3)GOTO 300C AVG AC=AC+VAR CTR=CTR+1. ACX=AC/CTR300 IF(INDEXF.NE.4)GOTO 400C SUM AC=AC+VAR ACX=AC400 IF(INDEXF.NE.5)GOTO 500"C STD (STANDARD DEVIATION SQUARED) AC=AC+VAR SS=SS+(VAR*VAR) CTR=CTR+1. ACX=(SS-((AC*AC)/CTR))/CTR 500 CONTINUE IF(INDEXF.NE.7)GOTO 600C AND IF(SS.NE.0.)IWRK1=AC IF(SS.EQ.0.)IWRK1=VAR SS=1. IWRK2=VAR IWRK1=IWRK1.AND.IWRK2 AC=IWRK1 ACX=AC600 IF(INDEXF.NE.8)GOTO 700C INCLUSIVE OR IWRK1=AC IWRK2=VAR IWRK1=IWRK1.OR.IWRK2 AC=IWRK1 ACX=AC700 IF (INDEXF.NE.9)GOTO 800C NOT IWRK1=VAR IWRK1=.NOT.IWRK1 AC=IWRK1 ACX=AC800 IF(INDEXF.NE.10)GOTO 1000C CNTC COUNT NONZERO ENTRIES IF(VAR.NE.0.)AC=AC+1. ACX=AC 1000 CONTINUE IF(INDEXF.NE.11)GOTO 1100C NPV IF(SS.EQ.0.)GOTO 1050 CTR=CTR+1.C AC=AC+VAR*CTR/SS AC=AC+VAR/(SS**(CTR-1)) ACX=AC GOTO 1200 1050 CONTINUE SS=VAR+1. ACX=0.1100 if(indexf.ne.12) GOTO 1200C LKP IF(SS.NE.0.)GOTO 1150 SS=1. AC=VAR ACX=-1. GOTO 1200 1150 CONTINUE$C IF(VAR.GE.AC.AND.ACX.LT.0.)ACX=CTR$ IF(VAR.LT.AC.OR.ACX.GE.0.)GOTO 1155 ACX=CTR AACP=KLKC AACQ=KLKR 1155 CONTINUE CTR=CTR+1. 1200 CONTINUE IF(INDEXF.NE.13)GOTO 1300C LKN IF(SS.NE.0.)GOTO 1250 SS=1. AC=VAR ACX=-1. GOTO 1300 1250 CONTINUE$C IF(VAR.LE.AC.AND.ACX.LT.0.)ACX=CTR$ IF(VAR.GT.AC.OR.ACX.GT.0.)GOTO 1256 ACX=CTR AACP=KLKC AACQ=KLKR 1256 CONTINUE CTR=CTR+1. 1300 CONTINUE IF(INDEXF.NE.14)GOTO 1400C LKE IF(SS.NE.0.)GOTO 1350 SS=1. AC=VAR ACX=-1. GOTO 1400 1350 CONTINUE$C IF(VAR.EQ.AC.AND.ACX.LT.0.)ACX=CTR$ IF(VAR.NE.AC.OR.ACX.GE.0.)GOTO 1355 ACX=CTR AACP=KLKC AACQ=KLKR 1355 CONTINUE CTR=CTR+1. 1400 CONTINUE IF(INDEXF.NE.15)GOTO 1500C XOR IF(SS.NE.0)IWRK1=AC IF(SS.EQ.0)IWRK1=VAR SS=SS+1. IF(SS.EQ.1.)GOTO 1405 IWRK2=VAR IWRK3=IWRK1.OR.IWRK2 IWRK1=IWRK1.AND.IWRK2 IWRK1=IWRK3-IWRK1 1405 AC=IWRK1 ACX=AC 1500 CONTINUE IF(INDEXF.NE.16)GOTO 1600C EQV9C NOTE THE EQUIVALENCE FUNCTION IS JUST THE COMPLEMENT OF=C THE XOR FUNCTION. DO THE COMPLEMENT VIA THE .NOT. OPERATOR. IF(SS.NE.0)IWRK1=AC IF(SS.EQ.0)IWRK1=VAR SS=SS+1. IF(SS.EQ.1.)GOTO 1505 IWRK2=VAR00c\\ZYTADATADATADATADATADATA IWRK3=IWRK1.OR.IWRK2 IWRK1=IWRK1.AND.IWRK2 IWRK1=IWRK3-IWRK1 IWRK1=.NOT.IWRK1 1505 AC=IWRK1 ACX=AC 1600 CONTINUE IF(INDEXF.NE.17)GOTO 1700C MODC MODULO (V1 MOD V2) IF(SS.NE.0)RWRK1=AC IF(SS.EQ.0)RWRK1=VAR SS=SS+1. IF(SS.EQ.1.)GOTO 1605 RWRK2=VAR RWRK1=DMOD(RWRK1,RWRK2) 1605 AC=RWRK1 ACX=AC 1700 CONTINUE IF(INDEXF.NE.18)GOTO 1800C REMAINDER -- INTEGER MODULO IF(SS.NE.0)IWRK1=AC IF(SS.EQ.0)IWRK1=VAR SS=SS+1. IF(SS.EQ.1.)GOTO 1705 IWRK2=VAR IWRK1=JMOD(IWRK1,IWRK2) 1705 AC=IWRK1 ACX=AC 1800 CONTINUE IF(INDEXF.NE.19)GOTO 1900C SGN C RETURN 1.0 * SIGN OF ARGUMENT. AC=DSIGN(1.0D0,VAR) ACX=AC 1900 CONTINUE IF(INDEXF.NE.20)GOTO 2000C IRR - INTERNAL RATE OF RETURN AC=0. ACX=0. IF(KIRR.LT.20)KIRR=KIRR+1 IF(KIRR.EQ.1)PV=VAR IF(KIRR.EQ.2)FV=VAR IF(KIRR.LT.3)RETURNC IRR[PV,FV,RETURNS...] IWRK1=KIRR-2 EP(IWRK1)=VAR RWRK1=.15 RWRK2=.250C ITERATIVELY SOLVE FOR INTERNAL RATE OF RETURN. 1903 TE=0. SS=FV/((1.D0+RWRK1)**(IWRK1)) DO 1905 IWRK2=1,IWRK1# AC=EP(IWRK2)/((1.D0+RWRK1)**IWRK2) SS=SS+AC 1905 CONTINUE RWRK2=RWRK1*(SS+TE)/PV) IF(DABS(RWRK1-RWRK2).LT..00001)GOTO 1910 RWRK1=RWRK2 GOTO 1903 1910 CONTINUE AC=RWRK2 ACX=AC 2000 CONTINUE IF(INDEXF.NE.21)GOTO 2100C RND AC=RNDF(IDUM) ACX=AC 2100 CONTINUE IF(INDEXF.NE.22)GOTO 2200C PMT FUNCTION-C PMT[PRINCIPAL, INTEREST, NPERIODS] ARE ARGS&C PAYMENT (MORTGAGE PAYMENT PER PERIODEC COMPUTED AS PAYMENT=PRINCIPAL*(INTEREST/(1-(1+INTEREST)**NPERIODS))C (CORRECT EVEN IF INTEREST=0,C (REUSE COUNTER USED IN IRR ARGUMENTS HERE) AC=0. ACX=0. KIRR=KIRR+1 EP(KIRR)=VAR IF(KIRR.LT.3)RETURN4C FIRST GET ALL THE INPUTS, THEN DO THE REAL RESULT.- AC=EP(1)*(EP(2)/(1.-((1.+EP(2))**(-EP(3))))) ACX=AC RETURN 2200 CONTINUE IF(INDEXF.NE.23)GOTO 2300C PVL FUNCTION)C PVL[PAYMENT,INTEREST,NPERIODS] ARE ARGSC PRESENT VALUE COMPUTED AS3C PV=PAYMENT*(1.-(1.+INTEREST)**-NPERIODS)/INTEREST,C (REUSE COUNTER USED IN IRR ARGUMENTS HERE) AC=0. ACX=0.C KIRR=KIRR+1 EP(KIRR)=VARM IF(KIRR.LT.3)RETURN4C FIRST GET ALL THE INPUTS, THEN DO THE REAL RESULT. AC=EP(1)*EP(3)I( IF(EP(3).EQ.0..OR.EP(2).EQ.0.)GOTO 2205+ AC=EP(1)*((1.-(1.+EP(2))**(-EP(3)))/EP(2)) 2205 ACX=ACI RETURNK 2300 CONTINUEP IF(INDEXF.NE.24)GOTO 2400"C AVE AVERAGE EXCLUDING ZERO CELLS IF(VAR.EQ.0.)GOTO 2305A AC=AC+VAR CTR=CTR+1.E2305 ACX=AC/CTRA 2400 CONTINUES RETURNA END+ SUBROUTINE DOMFCN(LINE,LLB,LRB,INDEXF,ACX)EC LLB = LOC OF [C LRB = LOC OF ].C INDEXF IS AS ABOVE. GUARANTEED IN RANGE 1-5. LOGICAL*1 LINE(110)%C +++++++++++++++++++++++++++++++++++C INCLUDE 'VKLUGPRM.FTN'L PARAMETER CUP=1,EL=12C PARAMETER RRW = 32&C PARAMETER RCL = 32 ! REAL ROWS, COLSC PARAMETER DRW = 8 -C PARAMETER DCL = 8 ! DISPLAY MAX ROWS, COLS.IC PARAMETER RRCL = 10242C PARAMETER RRCL=RRW*RCL LOGICAL*1 FORM,FVLD,CMDLIN(132) INTEGER*4 VNLT,$ DIMENSION FORM(128),FVLD(RRWP,RCLP)AC FVLD FLAG 0 = NO FORMULA, -1= DISPLAY FORMULA ITSELF, NOT VALUEC=C 1=VALID ACTIVE FORMULA THERE TO EVALUATE. INITIALLY ALL 0'SCC SO INITIALLY IGNORE.( INTEGER*2 PROW,PCOL,DROW,DCOL,DRWV,DCLV* COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRWV,DCLV( DIMENSION NRDSP(DRW,DCL),NCDSP(DRW,DCL) COMMON/D2R/NRDSP,NCDSPV" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9) REAL*8 XVBLS(RRWP,RCLP)) LOGICAL*1 AVBLS(20,27),VBLS(8,RRWP,RCLP)T INTEGER*4 JVBLS(2,RRWP,RCLP) % EQUIVALENCE(JVBLS(1,1,1),XVBLS(1,1))S REAL*8 XXXT$ EQUIVALENCE(VBLS(1,1,1),XVBLS(1,1)) COMMON/V/TYPE,AVBLS,VBLS,VLEN REAL*8 ACX,ACYA REAL*8 AC,SS,CTRP EQUIVALENCE(ACY,AVBLS(1,27))C REAL*8 ACP,ACQC/ EQUIVALENCE(ACP,AVBLS(1,16)),(ACQ,AVBLS(1,17)), INTEGER*2 KDRW,KDCL COMMON /DOT/KDRW,KDCL LOGICAL*1 ILINE(106)V INTEGER*2 ILNFG,ILNCT COMMON/ILN/ILNFG,ILNCT,ILINET COMMON/FVLDC/FVLD INTEGER*2 KLKC,KLKR REAL*8 AACP,AACQ2! COMMON/MSCMN/KLKC,KLKR,AACP,AACQ%C +++++++++++++++++++++++++++++++++++RCP@C FIRST GET A VARIABLE NAME. ALL MATH FUNCTIONS REQUIRE VARIABLE8C NAMES SINCE THEIR VARIABLES AR00c\~\[Y[Z[[[\[}E THEIR ONLY VALID ARGS." CALL MTHINI(INDEXF,AC,SS,CTR,ACX)C SET UP PROPER INITSSC KV2=1 IF A 2ND VBL EXISTS LCR=LLB+1 AACP=ACP AACQ=ACQR8C INITIALIZE P, Q SAVE ACCUMULATORS TO LET DOMATH SIGNAL?C COORDS OF SELECTED ITEMS IN P,Q FOR SELECTION TYPE FUNCTIONS., 100 CONTINUE KV2=0 LB=LCR( LE=LRB-1  IF(LB.GE.LE)RETURN - CALL VARSCN(LINE,LB,LE,LASST,ID1,ID2,IVALID)R IF(IVALID.EQ.0)RETURN IF(LINE(LASST).NE.':')GOTO 110M LB=LASST+1. LE=LRB-1E/ CALL VARSCN(LINE,LB,LE,LASST,ID1B,ID2B,IVALID) IF(IVALID.NE.0)KV2=1F 110 CONTINUE CALL XVBLGT(ID1,ID2,XVBLS(1,1)) XXX=XVBLS(1,1) C XXX=XVBLS(ID1,ID2) CALL TYPGET(ID1,ID2,TYPE(1,1))H$C USE EQUIVALENCE OF JVBLS AND XVBLS( IF(ABS(TYPE(1,1)).NE.2)XXX=JVBLS(1,1,1) KLKC=ID1G KLKR=ID2-1& CALL DOMATH(INDEXF,XXX,AC,SS,CTR,ACX) IF(KV2.EQ.0)GOTO 200  IF(ID1.NE.ID1B) GOTO 120I IF(ID2.GT.ID2B)GOTO 200 M=ID2+1 DO 121 MM=M,ID2BH CALL XVBLGT(ID1,MM,XVBLS(1,1))E XXX=XVBLS(1,1)R CALL TYPGET(ID1,MM,TYPE(1,1))C XXX=XVBLS(ID1,MM)1( IF(ABS(TYPE(1,1)).NE.2)XXX=JVBLS(1,1,1) KLKC=ID1 KLKR=MM-1& CALL DOMATH(INDEXF,XXX,AC,SS,CTR,ACX) 121 CONTINUE GOTO 200 120 CONTINUE IF(ID2.NE.ID2B)GOTO 130 IF(ID1.GT.ID1B)GOTO 200 M=ID1+1 DO 131 MM=M,ID1B. CALL XVBLGT(MM,ID2,XVBLS(1,1))O XXX=XVBLS(1,1)CC XXX=XVBLS(MM,ID2)E CALL TYPGET(MM,ID2,TYPE(1,1))( IF(ABS(TYPE(1,1)).NE.2)XXX=JVBLS(1,1,1) KLKC=MM KLKR=ID2-1 & CALL DOMATH(INDEXF,XXX,AC,SS,CTR,ACX) 131 CONTINUE 130 CONTINUE 200 CONTINUE?C IF NEXT CHAR IS A COMMA, SKIP IT AND KEEP UP SCAN UNLESS DONE IF(LINE(LASST).EQ.',')GOTO 300M ACP=AACPD ACQ=AACQMEC USE P, Q ACCUMULATORS FROM DOMATH (OR THE ONES WE SAVED EARLIER...) RETURN 300 LCR=LASST+1= GOTO 100I END$ SUBROUTINE DOIF(LINE,LLB,LRB,LLAST) INCLUDE 'VKLUGPRM.FTN'A PARAMETER CUP=1,EL=12 LOGICAL*1 LINE(110) REAL*8 V1,V2T V1=0. V2=0. LS=LRB-LLB+1' CALL GETLOG(LINE(LLB),LS,LOGTYP,LASST)F LOV1=LLBS LHIV1=LASST+LLB-1 IF(LOV1.GE.LHIV1)GOTO 100&C USE SUM FUNCTION HERE AS TYPE OF FCN LT=4,# CALL DOMFCN(LINE,LOV1,LHIV1,LT,V1)N 100 CONTINUE IF(LOGTYP.EQ.0)GOTO 1000. LOV2=LASST+2+LLB LHIV2=LRB IF(LOV2.GE.LHIV2)GOTO 200 LT=4D# CALL DOMFCN(LINE,LOV2,LHIV2,LT,V2) 200 CONTINUE CALL TEST(LOGTYP,LFLAG,V1,V2) IF(LFLAG.EQ.0)GOTO 700N)C HERE HAVE "TRUE" ALTERNATIVE OF IF STMT. LBAR=INDEX(LINE,'|') LBAR=MIN0(LBAR,LLAST) LSTM=LRB+1CC LSTM TO LBAR IS NOW THE STMT TO EVALUATE. SINCE WE ALREADY HAVE A+?C ROUTINE TO EVALUATE A STMT, DO SO. NOTE PARTIAL RECURSION, SOE?C NO NESTED IFS ALLOWED, AND CALL MUST PERMIT RECURSION ON YOURS+C MACHINE OR FORGET IT. (OK ON PDP11, VAX).  LSZ=LBAR-LSTM+1 IF(LSZ.LT.1)GOTO 1000 CALL DOSTMT(LINE(LSTM),LSZ) GOTO 1000 700 CONTINUE*C HERE HAVE "FALSE" ALTERNATIVE OF IF STMT LBAR=INDEX(LINE,'|')+1 LBAR=MIN0(LBAR,LLAST) LSZ=LLAST-LBAR+1M IF(LSZ.LT.1)GOTO 1000 CALL DOSTMT(LINE(LBAR),LSZ) 1000 CONTINUEN C THAT'S ALL. RETURNI END) SUBROUTINE GETLOG(LINE,LMX,LOGTYP,LASST)W LOGICAL*1 LINE(110) LOGICAL*1 LFN(4,6)W INTEGER*4 LF(6) EQUIVALENCE(LF(1),LFN(1,1))3 DATA LF/'.GT.','.LT.','.EQ.','.NE.','.GE.','.LE.'/)5C LOGTYP RELATIONSHIP TO RELATIONSHIPS OF 2 VARIABLESR C IS DEFINED IN ABOVE DATA STMT.;C IF LINE CONTAINS STRING IN NAME, RETURN TYPE AND END LOC. LMX4=LMX-3+ DO 100 LL=1,6 LOGTYP=LL DO 1 N1=1,LMX4 " IF(LINE(N1 ).NE.LFN(1,LL))GOTO 2" IF(LINE(N1+1).NE.LFN(2,LL))GOTO 2" IF(LINE(N1+2).NE.LFN(3,LL))GOTO 2" IF(LINE(N1+3).NE.LFN(4,LL))GOTO 2C HERE HAVE A MATCHT LASST=N1L)C RETURN LOC OF NEXT CHAR AFTER RELATION. GOTO 200U 2 CONTINUE 1 CONTINUE 100 CONTINUE LOGTYP=0L 200 CONTINUE RETURNH END00d\\ZYTADATADATADATADATADATA SUBROUTINE RECALC#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY.C RECALCULATE COMMAND4C RECOMPUTE ALL ELEMENTS OF SPREADSHEET WHERE VALID.C INCLUDE 'VKLUGPRM.FTN' PARAMETER CUP=1,EL=12C PARAMETER RRW = 32&C PARAMETER RCL = 32 ! REAL ROWS, COLSC PARAMETER DRW = 8-C PARAMETER DCL = 8 ! DISPLAY MAX ROWS, COLS.C PARAMETER RRCL = 1024C PARAMETER RRCL=RRW*RCL=C NOTE: THROUGHOUT, ROWS ARE ACTUALLY DOWN, COLUMNS ACROSS ONAC SCREEN. ROW 0 IN DISPLAY IS THE 27 ACCUMULATORS A-Z AND %, WITH>C % BEING THE LAST-COMPUTED VALUE FROM THE CALC PROGRAM, WHICHAC KNOWS HOW TO ACCESS THE DATA BUT IS JUST PASSED COMMAND STRINGS C FROM THE DISK BASED FILE HERE. LOGICAL*1 FORM,FVLD,CMDLIN(132) INTEGER*4 VNLT" INTEGER*2 FORMFG,RCFGX,PZAP,RCONE$ COMMON/FFGG/FORMFG,RCFGX,PZAP,RCONE$ DIMENSION FORM(128),FVLD(RRWP,RCLP) INTEGER*2 DLFG COMMON/DLFG/DLFG*C DLFG=0 IF NO D## SEEN AND 1 IF D## SEEN. COMMON/FVLDC/FVLDAC FVLD FLAG 0 = NO FORMULA, -1= DISPLAY FORMULA ITSELF, NOT VALUE=C 1=VALID ACTIVE FORMULA THERE TO EVALUATE. INITIALLY ALL 0'SC SO INITIALLY IGNORE.!C FVLD=-2 OR -3 = DISPLAY FORMULA1C FVLD=3 NUMERIC, COMPUTE ONCE THEN SET FVLD TO 2@C FVLD=2 NUMERIC CONSTANT, ALREADY COMPUTED... DO NOT RECOMPUTE.CDC ROUTINE IN2AS COMPUTES ASCII CHARACTER NAMES OF SUBSCRIPTS IN1,IN2=C SO DISPLAY CAN HAVE THEM. IT MUST BE THE INVERSE OF VARSCN.( INTEGER*2 PROW,PCOL,DROW,DCOL,DRWV,DCLV* COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRWV,DCLV( DIMENSION NRDSP(DRW,DCL),NCDSP(DRW,DCL) COMMON/D2R/NRDSP,NCDSP" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9)) LOGICAL*1 AVBLS(20,27),VBLS(8,RRWP,RCLP) INTEGER*2 RRWACT,RCLACT COMMON/RCLACT/RRWACT,RCLACT INTEGER*2 KDRW,KDCL COMMON /DOT/KDRW,KDCL COMMON/V/TYPE,AVBLS,VBLS,VLEN INTEGER*2 PRS,PCS,DRS,DCS PRS=PROW PCS=PCOL DRS=DROW DCS=DCOL4C THE FOLLOWING 2 LOOPS DEFINE ORDER OF CALCULATION.JC HERE THIS IS: OUTER LOOP ON ROWS (ACROSS), INNER LOOP ON COLUMNS (DOWN). DO 1 N2=1,RCLACT N1=1 220 CONTINUEC DO 2 N1=1,RRW?C USE FVPEEK TO CHECK WHERE FIRST CELL TO DO IS HERE. SHOULD BE#C FASTER THAN STANDARD LOOP METHOD. CALL FVPEEK(N1,N2,N1) CALL FVLDGT(N1,N2,FVLD(1,1)) IF (FVLD(1,1).LE.0) GOTO 2 IRRX=(N2-1)*RRW+N1C CALL REFLEC(N2,N1,IRRX)BC IF CONSTANT WAS COMPUTED ALREADY, NO NEED TO RECOMPUTE. SKIP IT.:C NOTE: WE MUST ALWAYS RECOMPUTE IF R COMMAND WAS GIVEN.... IF ((RCONE.EQ.0).AND.(FVLD(1,1).EQ.2)) GOTO 2 KDRW=N1 KDCL=N2 PROW=N1 PCOL=N2@C SEE IF THIS PHYS COL HAS A DISPLAY COL. AND IF SO SET THAT UP.:C ONLY SET TO DISPLAYED LOCS HERE TO MINIMIZE SEARCH TIME. IF(DLFG.EQ.0)GOTO 99C NO SEARCH FOR DROW AND DCOL IF NO D## FORMS MAY USE IT. DO 10 M1=1,DRWV DO 20 M2=1,DCLV M1X=M1 M2X=M24 IF(NRDSP(M1,M2).EQ.N1.AND.NCDSP(M1,M2).EQ.N2)GOTO 9 20 CONTINUE 10 CONTINUE 9 CONTINUE*C IF NO DISPLAY ROW, LEAVE AT LOW RIGHT...DC USE SAVED VALUES SO WE DON'T RELY ON DO LOOP INDEX AFTER LOOP END. DROW=M1X DCOL=M2X CALL WRKFIL(IRRX,FORM,0)C READ(7'IRRX)FORM:C NOW HAVE THE FORMULA LINE. PASS TO DOENTRY TO HANDLE IT. LLST=110 DO 756 NNN=1,109 LLST=111-NNN IF(FORM(LLST-1).GT.32)GOTO 757 756 CONTINUE 757 CONTINUE"C FIND REAL LAST FORMULA CHARACTER LFST=1 FORM(LLST)=0 FORM(LLST+1)=0 LFST=1 FORM(111)=0 IF(FORM(118).NE.15)GOTO 2 CALL DOENTR(FORM,LFST,LLST)?C IF WE JUST COMPUTED A CONSTANT, FLAG IT COMPUTED AND SKIP IT. CALL FVLDGT(N1,N2,FVLD(1,1))' IF(FVLD(1,1).EQ.3)CALL FVLDST(N1,N2,2) 2 CONTINUE N1=N1+1 IF(N1.LE.RRWACT)GOTO 220 1 CONTINUE PROW=PRS PCOL=PCS DROW=DRS DCOL=DCOL!C FORCE FUNCTION WORKS ONCE ONLY. RCONE=0 RETURN END" SUBROUTINE DOENTR(FORM,LOW,LHIGH)%C +++++++++++++++++++++++++++++++++++ INCLUDE 'VKLUGPRM.FTN' PARAMETER CUP=1,EL=12C PARAMETER RRW = 32&C PARAMETER RCL = 32 ! REAL ROWS, COLSC PARAMETER DRW = 8-C PARAMETER DCL = 8 ! DISPLAY MAX ROWS, COLS.C PARAMETER RRCL = 1024C PARAMETER RRCL=RRW*RCL L00d\~\[Y[Z[[[\[}OGICAL*1 FORM,FVLD,CMDLIN(132) INTEGER*4 VNLT$ DIMENSION FORM(128),FVLD(RRWP,RCLP)AC FVLD FLAG 0 = NO FORMULA, -1= DISPLAY FORMULA ITSELF, NOT VALUE=C 1=VALID ACTIVE FORMULA THERE TO EVALUATE. INITIALLY ALL 0'SC SO INITIALLY IGNORE.( INTEGER*2 PROW,PCOL,DROW,DCOL,DRWV,DCLV* COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRWV,DCLV( DIMENSION NRDSP(DRW,DCL),NCDSP(DRW,DCL) COMMON/D2R/NRDSP,NCDSP" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9)) LOGICAL*1 AVBLS(20,27),VBLS(8,RRWP,RCLP) COMMON/V/TYPE,AVBLS,VBLS,VLEN COMMON/FVLDC/FVLD%C +++++++++++++++++++++++++++++++++++2C ENABLE { FORMS TO HANDLE ALL POSSIBLE EQUATIONS. CALL FRMEDT(FORM,LLST) FORM(111)=0 LCURR=LOWBC DO AN ENTRY. MUST SCAN FOR MULTIPLE STATEMENTS PER LINE AND ALSOC RECOGNIZE FUNCTION NAMES. 1000 CONTINUE LSL=INDEX(FORM(LCURR),'\') IF(LSL.EQ.0)LSL=LHIGHC CLAMP AT 80 CHARS LONG INPUT. IF(LSL.LE.79)GOTO 1200:C STMT HAS NO MULTIPLES. SQUASH IT TO USE ONLY 1ST PART... LSL=79 LCURR=LHIGH FORM(80)=0 1200 CONTINUE CALL DOSTMT(FORM(LCURR),LSL) IF (LCURR.GE.LHIGH)RETURN LCURR=LCURR+LSL GOTO 1000 END SUBROUTINE DOSTMT(LINE,LLAST)BC HANDLE 1 STATEMENT PARSING (DOES A BIT MORE OF THE WORK WITH THE>C PART OF THE LINE STRIPPED TO HAVE EXACTLY ONE COMMAND IN IT. LOGICAL*1 LINE(110)%C +++++++++++++++++++++++++++++++++++ INCLUDE 'VKLUGPRM.FTN' PARAMETER CUP=1,EL=12C PARAMETER RRW = 32&C PARAMETER RCL = 32 ! REAL ROWS, COLSC PARAMETER DRW = 8-C PARAMETER DCL = 8 ! DISPLAY MAX ROWS, COLS.C PARAMETER RRCL = 1024C PARAMETER RRCL=RRW*RCL LOGICAL*1 FORM,FVLD,CMDLIN(132) INTEGER*4 VNLT$ DIMENSION FORM(128),FVLD(RRWP,RCLP)AC FVLD FLAG 0 = NO FORMULA, -1= DISPLAY FORMULA ITSELF, NOT VALUE=C 1=VALID ACTIVE FORMULA THERE TO EVALUATE. INITIALLY ALL 0'SC SO INITIALLY IGNORE. COMMON/FVLDC/FVLD( INTEGER*2 PROW,PCOL,DROW,DCOL,DRWV,DCLV* COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRWV,DCLV( DIMENSION NRDSP(DRW,DCL),NCDSP(DRW,DCL) COMMON/D2R/NRDSP,NCDSP" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9) REAL*8 XVBLS(RRWP,RCLP)) LOGICAL*1 AVBLS(20,27),VBLS(8,RRWP,RCLP) INTEGER*4 JVBLS(2,RRWP,RCLP)% EQUIVALENCE(JVBLS(1,1,1),XVBLS(1,1))$ EQUIVALENCE(VBLS(1,1,1),XVBLS(1,1)) COMMON/V/TYPE,AVBLS,VBLS,VLEN REAL*8 ACX,ACY,AACY EQUIVALENCE(ACY,AVBLS(1,27)) integer*4 iacy,IIJACY,IIJAC2(2) EQUIVALENCE(IACY,AVBLS(1,27)) EQUIVALENCE(IIJACY,IIJAC2(1)) EQUIVALENCE(IIJAC2(1),AACY) INTEGER*2 KDRW,KDCL COMMON /DOT/KDRW,KDCL LOGICAL*1 ILINE(106) INTEGER*2 ILNFG,ILNCT COMMON/ILN/ILNFG,ILNCT,ILINE%C +++++++++++++++++++++++++++++++++++ CALL FNAME(LINE,LLAST,INDEXF)C ABOVE GETS FUNCTION NAMES. C NAME INDEXFC MIN 1C MAX 2C AVG 3C SUM 4C STD 5 (STD DEVIATION)C IF 6 (IF STMT)C AND 7C OR 8C NOT 9!C CNT 10 (COUNTS NONZERO ENTRIES)C NPV 11 NET PRESENT VALUE,C LKP 12 LOOKUP IN LIST, GIVE OFFSET 0 BASED)C LKN 13 LOOKUP NEGATIVE (INVERSE OF LKP)C LKE 14 LOOKUP EQUALC XOR 15 EXCLUSIVE OR)C EQV 16 EQUIVALENCE (TRUE IF BITS EQUAL)C MOD 17 V1 MODULO V2C REM 18 REMAINDER OF V1/V2$C SGN 19 SIGN OF V1 (-1.,0., OR +1.) C IRR 20 INTERNAL RATE OF RETURN(C RND 21 RANDOM NUMBER BETWEEN 0. AND 1.'C USE [ AND ] TO DELIMIT FUNCTION ARGS.) IF(INDEXF.LT.1.OR.INDEXF.GT.21)GOTO 1000IC HERE IF A FUNCTION OR AN IF STMT (FORMAT= IF [varRELvar]stmt|else-stmt)C'C ALLOW CALC TO HANDLE ALL BUT IF STMTS IF(INDEXF.NE.6)GOTO 1000C LLB=INDEX(LINE,'[') LRB=INDEX(LINE,']')=C *** ERROR WITH FORMAT -- NO [ SEEN IN TIME. JUST IGNORE IT. IF(LLB.GT.LLAST)RETURN IF(LRB.GT.LLAST)LRB=LLAST5C REMOVE BY COMMENTING OUT NEXT NEVER-CALLED STUFF...C IF(INDEXF.EQ.6)GOTO 2000CC ISOLATE MATH FUNCTIONS&C CALL DOMFCN(LINE,LLB,LRB,INDEXF,ACX)CC GET % ABOVE"C CALL TYPGET(KDRW,KDCL,TYPE(1,1))"C IF(ABS(TYPE(1,1)).NE.2)GOTO 1760C CALL XVBLST(KDRW,KDCL,ACX)CC XVBLS(KDRW,KDCL)=ACXCC LEAVE RESULT IN % TOO. C ACY=ACXC CALL TYPSET(27,1,TYPE(1,1))CC TYPE(27,1)=TYPE(KDRW,KDCL)C RETURNC1760 JVBLS(1,1,1)=ACX'C CALL JVBLST(1,KDRW,KDCL,JVBLS(1,1,1))CC JVBLS(1,KDRW,KDCL)=ACX00d\\ZYTADATADATADATADATADATAC RETURN 2000 CONTINUEC HANDLE AN "IF" STATEMENT CALL DOIF(LINE,LLB,LRB,LLAST)BC PASS LLAST TO DOIF SINCE WE DON'T EXPECT ] AS LAST CHAR OF STMT.C NO DIRECT SET OF VRBL HERE... RETURN 1000 CONTINUE2C HERE JUST HAVE SOMETHING TO PASS TO CALC. DO SO. ILNFG=1 LMX=LLAST-1 DO 1001 N1=1,LMX1001 ILINE(N1)=LINE(N1) ILNCT=LMXEC PROTECT CALC FROM ANY PART OF A LINE LONGER THAN 80 CHARS (ITS MAX) IF(ILNCT.GT.80)ILNCT=80 CALL CALCC STORE EXPRESSION RESULT."C CHANGE TYPE OF RESULT IF NEED TO CALL TYPGET(KDRW,KDCL,LMX) CALL TYPGET(27,1,N1)C REUSE COUPLE LOCAL VARIABLES LMX=IABS(LMX) N1=IABS(N1) IF(N1.EQ.9)N1=2 IF(N1.NE.2)N1=4 AACY=ACY IF(N1.EQ.LMX)GOTO 2760 IF(N1.EQ.2)IIJACY=ACY IF(N1.NE.2)AACY=IACY+C 2 IMPLIES REAL, 4 IMPLIES INTEGER STORAGE 2760 CONTINUE CALL XVBLST(KDRW,KDCL,AACY)C XVBLS(KDRW,KDCL)=ACY RETURN END$ SUBROUTINE FNAME(LINE,LLAST,INDEXF)C RETURN FUNCTION NAME IF ANY LOGICAL*1 LINE(110) INTEGER*4 FNAM(21) LOGICAL*1 FCHNM(4,21) EQUIVALENCE(FNAM(1),FCHNM(1,1))5 DATA FNAM/'MIN ','MAX ','AVG ','SUM ','STD ','IF ',2 1 'AND ','IOR ','NOT ','CNT ','NPV ','LKP ',@ 2 'LKN ','LKE ','XOR ','EQV ','MOD ','REM ','SGN ','IRR ', 3 'RND '/ INDEXF=0 DO 1 N1=1,21 DO 2 N2=1,3# IF(LINE(N2).NE.FCHNM(N2,N1))GOTO 1 2 CONTINUE>C IF WE FALL THROUGH, WE HAVE A VALID FCN NAME INDEX IN INDEXF INDEXF=N1 GOTO 3 1 CONTINUE 3 CONTINUE RETURN END# SUBROUTINE TEST(LOGTYP,FLAG,V1,V2) INTEGER*2 FLAG REAL*8 V1,V2 FLAG=0# IF(LOGTYP.EQ.1.AND.V1.GT.V2)FLAG=1# IF(LOGTYP.EQ.2.AND.V1.LT.V2)FLAG=1# IF(LOGTYP.EQ.3.AND.V1.EQ.V2)FLAG=1# IF(LOGTYP.EQ.4.AND.V1.NE.V2)FLAG=1# IF(LOGTYP.EQ.5.AND.V1.GE.V2)FLAG=1# IF(LOGTYP.EQ.6.AND.V1.LE.V2)FLAG=1BC TEST LOGICAL RELATIONS FOR IF STATEMENT, FLAG=1 IF TRUE, 0 ELSE. RETURN END( SUBROUTINE MTHINI(INDEXF,AC,SS,CTR,ACX) DIMENSION EP(20) REAL*8 EP,PV,FV COMMON/ERNPER/EP,PV,FV,KIRR REAL*8 AC,SS,CTR,ACX KIRR=0 SS=0. CTR=0. ACX=0. DO 1 N=1,20 1 EP(N)=0. AC=0. IF(INDEXF.EQ.1)AC=1.E20 IF(INDEXF.EQ.2)AC=-1.E20 RETURN END, SUBROUTINE DOMATH(INDEXF,VAR,AC,SS,CTR,ACX)! REAL*8 AC,SS,CTR,ACX,RWRK1,RWRK2 DIMENSION EP(20) REAL*8 EP,PV,FV COMMON/ERNPER/EP,PV,FV,KIRR REAL*8 VAR,TE INTEGER*4 IWRK1,IWRK2,IDUM IF(INDEXF.NE.1)GOTO 100C MIN IF(VAR.LT.AC)AC=VAR ACX=AC100 IF(INDEXF.NE.2)GOTO 200C MAX IF(VAR.GT.AC)AC=VAR ACX=AC200 IF(INDEXF.NE.3)GOTO 300C AVG AC=AC+VAR CTR=CTR+1. ACX=AC/CTR300 IF(INDEXF.NE.4)GOTO 400C SUM AC=AC+VAR ACX=AC400 IF(INDEXF.NE.5)GOTO 500"C STD (STANDARD DEVIATION SQUARED) AC=AC+VAR SS=SS+(VAR*VAR) CTR=CTR+1. ACX=(SS-((AC*AC)/CTR))/CTR 500 CONTINUE IF(INDEXF.NE.7)GOTO 600C AND IF(SS.NE.0.)IWRK1=AC IF(SS.EQ.0.)IWRK1=VAR SS=1. IWRK2=VAR IWRK1=IWRK1.AND.IWRK2 AC=IWRK1 ACX=AC600 IF(INDEXF.NE.8)GOTO 700C INCLUSIVE OR IWRK1=AC IWRK2=VAR IWRK1=IWRK1.OR.IWRK2 AC=IWRK1 ACX=AC700 IF (INDEXF.NE.9)GOTO 800C NOT IWRK1=VAR IWRK1=.NOT.IWRK1 AC=IWRK1 ACX=AC800 IF(INDEXF.NE.10)GOTO 1000C CNTC COUNT NONZERO ENTRIES IF(VAR.NE.0.)AC=AC+1. ACX=AC 1000 CONTINUE IF(INDEXF.NE.11)GOTO 1100C NPV IF(SS.EQ.0.)GOTO 1050 CTR=CTR+1.C AC=AC+VAR*CTR/SS AC=AC+VAR/(SS**(CTR-1)) ACX=AC GOTO 1200 1050 CONTINUE SS=VAR+1. ACX=0.1100 if(indexf.ne.12) GOTO 1200C LKP IF(SS.NE.0.)GOTO 1150 SS=1. AC=VAR ACX=-1. GOTO 1200 1150 CONTINUE# IF(VAR.GE.AC.AND.ACX.LT.0.)ACX=CTR CTR=CTR+1. 1200 CONTINUE IF(INDEXF.NE.13)GOTO 1300C LKN IF(SS.NE.0.)GOTO 1250 SS=VAR AC=-1. GOTO 1300%1250 IF(VAR.LE.SS.AND.AC.LT.0.)AC=CTR ACX=AC CTR=CTR+1. 1300 CONTINUE IF(INDEXF.NE.14)GOTO 1400C LKE IF(SS.NE.0.)GOTO 1350 SS=VAR AC=-1. GOTO 1400%1350 IF(VAR.LE.SS.AND.AC.LT.0.)AC=CTR ACX=AC CTR=CTR+1. 1400 CONTINUE IF(INDEXF.NE.15)GOTO 1500C XOR IF(SS.NE.0)IWRK1=AC IF(SS.EQ.0)IWRK1=VAR SS=SS+1. IF(SS.EQ.1.)GOTO 1405 IWRK2=VAR IWRK3=IWR00d\~\[Y[Z[[[\[}K1.OR.IWRK2 IWRK1=IWRK1.AND.IWRK2 IWRK1=IWRK3-IWRK1 1405 AC=IWRK1 ACX=AC 1500 CONTINUE IF(INDEXF.NE.16)GOTO 1600C EQV9C NOTE THE EQUIVALENCE FUNCTION IS JUST THE COMPLEMENT OF=C THE XOR FUNCTION. DO THE COMPLEMENT VIA THE .NOT. OPERATOR. IF(SS.NE.0)IWRK1=AC IF(SS.EQ.0)IWRK1=VAR SS=SS+1. IF(SS.EQ.1.)GOTO 1505 IWRK2=VAR IWRK3=IWRK1.OR.IWRK2 IWRK1=IWRK1.AND.IWRK2 IWRK1=IWRK3-IWRK1 IWRK1=.NOT.IWRK1 1505 AC=IWRK1 ACX=AC 1600 CONTINUE IF(INDEXF.NE.17)GOTO 1700C MODC MODULO (V1 MOD V2) IF(SS.NE.0)RWRK1=AC IF(SS.EQ.0)RWRK1=VAR SS=SS+1. IF(SS.EQ.1.)GOTO 1605 RWRK2=VAR RWRK1=DMOD(RWRK1,RWRK2) 1605 AC=RWRK1 ACX=AC 1700 CONTINUE IF(INDEXF.NE.18)GOTO 1800C REMAINDER -- INTEGER MODULO IF(SS.NE.0)IWRK1=AC IF(SS.EQ.0)IWRK1=VAR SS=SS+1. IF(SS.EQ.1.)GOTO 1705 IWRK2=VAR IWRK1=JMOD(IWRK1,IWRK2) 1705 AC=IWRK1 ACX=AC 1800 CONTINUE IF(INDEXF.NE.19)GOTO 1900C SGN C RETURN 1.0 * SIGN OF ARGUMENT. AC=DSIGN(1.0D0,VAR) ACX=AC 1900 CONTINUE IF(INDEXF.NE.20)GOTO 2000C IRR - INTERNAL RATE OF RETURN AC=0. ACX=0. IF(KIRR.LT.20)KIRR=KIRR+1 IF(KIRR.EQ.1)PV=VAR IF(KIRR.EQ.2)FV=VAR IF(KIRR.LT.3)RETURNC IRR[PV,FV,RETURNS...] IWRK1=KIRR-2 EP(IWRK1)=VAR RWRK1=.15 RWRK2=.250C ITERATIVELY SOLVE FOR INTERNAL RATE OF RETURN. 1903 TE=0. SS=FV/((1.D0+RWRK1)**(IWRK1)) DO 1905 IWRK2=1,IWRK1# AC=EP(IWRK2)/((1.D0+RWRK1)**IWRK2) SS=SS+AC 1905 CONTINUE RWRK2=RWRK1*(SS+TE)/PV) IF(DABS(RWRK1-RWRK2).LT..00001)GOTO 1910 RWRK1=RWRK2 GOTO 1903 1910 CONTINUE AC=RWRK2 ACX=AC 2000 CONTINUE IF(INDEXF.NE.21)GOTO 2100C RND AC=RNDF(IDUM) ACX=AC 2100 CONTINUE RETURN END+ SUBROUTINE DOMFCN(LINE,LLB,LRB,INDEXF,ACX)C LLB = LOC OF [C LRB = LOC OF ].C INDEXF IS AS ABOVE. GUARANTEED IN RANGE 1-5. LOGICAL*1 LINE(110)%C +++++++++++++++++++++++++++++++++++ INCLUDE 'VKLUGPRM.FTN' PARAMETER CUP=1,EL=12C PARAMETER RRW = 32&C PARAMETER RCL = 32 ! REAL ROWS, COLSC PARAMETER DRW = 8-C PARAMETER DCL = 8 ! DISPLAY MAX ROWS, COLS.C PARAMETER RRCL = 1024C PARAMETER RRCL=RRW*RCL LOGICAL*1 FORM,FVLD,CMDLIN(132) INTEGER*4 VNLT$ DIMENSION FORM(128),FVLD(RRWP,RCLP)AC FVLD FLAG 0 = NO FORMULA, -1= DISPLAY FORMULA ITSELF, NOT VALUE=C 1=VALID ACTIVE FORMULA THERE TO EVALUATE. INITIALLY ALL 0'SC SO INITIALLY IGNORE.( INTEGER*2 PROW,PCOL,DROW,DCOL,DRWV,DCLV* COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRWV,DCLV( DIMENSION NRDSP(DRW,DCL),NCDSP(DRW,DCL) COMMON/D2R/NRDSP,NCDSP" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9) REAL*8 XVBLS(RRWP,RCLP)) LOGICAL*1 AVBLS(20,27),VBLS(8,RRWP,RCLP) INTEGER*4 JVBLS(2,RRWP,RCLP)% EQUIVALENCE(JVBLS(1,1,1),XVBLS(1,1)) REAL*8 XXX$ EQUIVALENCE(VBLS(1,1,1),XVBLS(1,1)) COMMON/V/TYPE,AVBLS,VBLS,VLEN REAL*8 ACX,ACY REAL*8 AC,SS,CTR EQUIVALENCE(ACY,AVBLS(1,27)) INTEGER*2 KDRW,KDCL COMMON /DOT/KDRW,KDCL LOGICAL*1 ILINE(106) INTEGER*2 ILNFG,ILNCT COMMON/ILN/ILNFG,ILNCT,ILINE COMMON/FVLDC/FVLD%C +++++++++++++++++++++++++++++++++++C@C FIRST GET A VARIABLE NAME. ALL MATH FUNCTIONS REQUIRE VARIABLE8C NAMES SINCE THEIR VARIABLES ARE THEIR ONLY VALID ARGS." CALL MTHINI(INDEXF,AC,SS,CTR,ACX)C SET UP PROPER INITSC KV2=1 IF A 2ND VBL EXISTS LCR=LLB+1 100 CONTINUE KV2=0 LB=LCR LE=LRB-1 IF(LB.GE.LE)RETURN- CALL VARSCN(LINE,LB,LE,LASST,ID1,ID2,IVALID) IF(IVALID.EQ.0)RETURN IF(LINE(LASST).NE.':')GOTO 110 LB=LASST+1 LE=LRB-1/ CALL VARSCN(LINE,LB,LE,LASST,ID1B,ID2B,IVALID) IF(IVALID.NE.0)KV2=1 110 CONTINUE CALL XVBLGT(ID1,ID2,XVBLS(1,1)) XXX=XVBLS(1,1)C XXX=XVBLS(ID1,ID2) CALL TYPGET(ID1,ID2,TYPE(1,1))$C USE EQUIVALENCE OF JVBLS AND XVBLS( IF(ABS(TYPE(1,1)).NE.2)XXX=JVBLS(1,1,1)& CALL DOMATH(INDEXF,XXX,AC,SS,CTR,ACX) IF(KV2.EQ.0)GOTO 200 IF(ID1.NE.ID1B) GOTO 120 IF(ID2.GT.ID2B)GOTO 200 M=ID2+1 DO 121 MM=M,ID2B CALL XVBLGT(ID1,MM,XVBLS(1,1)) XXX=XVBLS(1,1) CALL TYPGET(ID1,MM,TYPE(1,1))C XXX=XVBLS(ID1,MM)( IF(ABS(TYPE(1,1)).NE.2)XXX=JVBLS(1,1,1)& CALL DOMATH(INDEXF,XXX,00d\e\ZYTADATADATADATADATADATAAC,SS,CTR,ACX) 121 CONTINUE GOTO 2009 120 CONTINUE IF(ID2.NE.ID2B)GOTO 130 IF(ID1.GT.ID1B)GOTO 200 M=ID1+1 DO 131 MM=M,ID1B  CALL XVBLGT(MM,ID2,XVBLS(1,1))C XXX=XVBLS(1,1)LC XXX=XVBLS(MM,ID2)P CALL TYPGET(MM,ID2,TYPE(1,1))( IF(ABS(TYPE(1,1)).NE.2)XXX=JVBLS(1,1,1)& CALL DOMATH(INDEXF,XXX,AC,SS,CTR,ACX) 131 CONTINUE 130 CONTINUE 200 CONTINUE?C IF NEXT CHAR IS A COMMA, SKIP IT AND KEEP UP SCAN UNLESS DONES IF(LINE(LASST).EQ.',')GOTO 300 RETURNE300 LCR=LASST+1 GOTO 100O END$ SUBROUTINE DOIF(LINE,LLB,LRB,LLAST) INCLUDE 'VKLUGPRM.FTN'N PARAMETER CUP=1,EL=12 LOGICAL*1 LINE(110) REAL*8 V1,V2H V1=0. V2=0. LS=LRB-LLB+1C' CALL GETLOG(LINE(LLB),LS,LOGTYP,LASST) LOV1=LLBT LHIV1=LASST+LLB-1 IF(LOV1.GE.LHIV1)GOTO 100&C USE SUM FUNCTION HERE AS TYPE OF FCN LT=4(# CALL DOMFCN(LINE,LOV1,LHIV1,LT,V1)R 100 CONTINUE IF(LOGTYP.EQ.0)GOTO 1000, LOV2=LASST+2+LLBD LHIV2=LRB IF(LOV2.GE.LHIV2)GOTO 200 LT=4D# CALL DOMFCN(LINE,LOV2,LHIV2,LT,V2) 200 CONTINUE CALL TEST(LOGTYP,LFLAG,V1,V2) IF(LFLAG.EQ.0)GOTO 700F)C HERE HAVE "TRUE" ALTERNATIVE OF IF STMTU LBAR=INDEX(LINE,'|')R LBAR=MIN0(LBAR,LLAST) LSTM=LRB+1 CC LSTM TO LBAR IS NOW THE STMT TO EVALUATE. SINCE WE ALREADY HAVE AV?C ROUTINE TO EVALUATE A STMT, DO SO. NOTE PARTIAL RECURSION, SOC?C NO NESTED IFS ALLOWED, AND CALL MUST PERMIT RECURSION ON YOURA+C MACHINE OR FORGET IT. (OK ON PDP11, VAX).S LSZ=LBAR-LSTM+1 IF(LSZ.LT.1)GOTO 1000 CALL DOSTMT(LINE(LSTM),LSZ) GOTO 1000 700 CONTINUE*C HERE HAVE "FALSE" ALTERNATIVE OF IF STMT LBAR=INDEX(LINE,'|')+1I LBAR=MIN0(LBAR,LLAST) LSZ=LLAST-LBAR+12 IF(LSZ.LT.1)GOTO 1000 CALL DOSTMT(LINE(LBAR),LSZ) 1000 CONTINUE2 C THAT'S ALL.W RETURN END) SUBROUTINE GETLOG(LINE,LMX,LOGTYP,LASST)C LOGICAL*1 LINE(110) LOGICAL*1 LFN(4,6)R INTEGER*4 LF(6) EQUIVALENCE(LF(1),LFN(1,1))3 DATA LF/'.GT.','.LT.','.EQ.','.NE.','.GE.','.LE.'/5C LOGTYP RELATIONSHIP TO RELATIONSHIPS OF 2 VARIABLESA C IS DEFINED IN ABOVE DATA STMT.;C IF LINE CONTAINS STRING IN NAME, RETURN TYPE AND END LOC.2 LMX4=LMX-3N DO 100 LL=1,6 LOGTYP=LL DO 1 N1=1,LMX4V" IF(LINE(N1 ).NE.LFN(1,LL))GOTO 2" IF(LINE(N1+1).NE.LFN(2,LL))GOTO 2" IF(LINE(N1+2).NE.LFN(3,LL))GOTO 2" IF(LINE(N1+3).NE.LFN(4,LL))GOTO 2C HERE HAVE A MATCH) LASST=N1 )C RETURN LOC OF NEXT CHAR AFTER RELATION.N GOTO 200 2 CONTINUE 1 CONTINUE 100 CONTINUE LOGTYP=0M 200 CONTINUE RETURN  END SUBROUTINE RECALC#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY.C RECALCULATE COMMAND4C RECOMPUTE ALL ELEMENTS OF SPREADSHEET WHERE VALID.C INCLUDE 'VKLUGPRM.FTN' PARAMETER CUP=1,EL=12C PARAMETER RRW = 32&C PARAMETER RCL = 32 ! REAL ROWS, COLSC PARAMETER DRW = 8-C PARAMETER DCL = 8 ! DISPLAY MAX ROWS, COLS.C PARAMETER RRCL = 1024C PARAMETER RRCL=RRW*RCL=C NOTE: THROUGHOUT, ROWS ARE ACTUALLY DOWN, COLUMNS ACROSS ONAC SCREEN. ROW 0 IN DISPLAY IS THE 27 ACCUMULATORS A-Z AND %, WITH>C % BEING THE LAST-COMPUTED VALUE FROM THE CALC PROGRAM, WHICHAC KNOWS HOW TO ACCESS THE DATA BUT IS JUST PASSED COMMAND STRINGS C FROM THE DISK BASED FILE HERE. LOGICAL*1 FORM,FVLD,CMDLIN(132) INTEGER*4 VNLT" INTEGER*2 FORMFG,RCFGX,PZAP,RCONE INTEGER*2 RCMODE,IRCE1,IRCE2% COMMON/FFGG/FORMFG,RCFGX,PZAP,RCONE, 1 RCMODE,IRCE1,IRCE2$ DIMENSION FORM(128),FVLD(RRWP,RCLP) INTEGER*2 DLFG COMMON/DLFG/DLFG*C DLFG=0 IF NO D## SEEN AND 1 IF D## SEEN. COMMON/FVLDC/FVLDAC FVLD FLAG 0 = NO FORMULA, -1= DISPLAY FORMULA ITSELF, NOT VALUE=C 1=VALID ACTIVE FORMULA THERE TO EVALUATE. INITIALLY ALL 0'SC SO INITIALLY IGNORE.!C FVLD=-2 OR -3 = DISPLAY FORMULA1C FVLD=3 NUMERIC, COMPUTE ONCE THEN SET FVLD TO 2@C FVLD=2 NUMERIC CONSTANT, ALREADY COMPUTED... DO NOT RECOMPUTE.CDC ROUTINE IN2AS COMPUTES ASCII CHARACTER NAMES OF SUBSCRIPTS IN1,IN2=C SO DISPLAY CAN HAVE THEM. IT M00e\~\[Y[Z[[[\[}UST BE THE INVERSE OF VARSCN.( INTEGER*2 PROW,PCOL,DROW,DCOL,DRWV,DCLV* COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRWV,DCLV( DIMENSION NRDSP(DRW,DCL),NCDSP(DRW,DCL) COMMON/D2R/NRDSP,NCDSP" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9)) LOGICAL*1 AVBLS(20,27),VBLS(8,RRWP,RCLP) INTEGER*2 RRWACT,RCLACT COMMON/RCLACT/RRWACT,RCLACT INTEGER*2 KDRW,KDCL COMMON /DOT/KDRW,KDCL COMMON/V/TYPE,AVBLS,VBLS,VLEN INTEGER*2 PRS,PCS,DRS,DCS PRS=PROW PCS=PCOL DRS=DROW DCS=DCOL IF(RCMODE.EQ.2)GOTO 55004C THE FOLLOWING 2 LOOPS DEFINE ORDER OF CALCULATION.JC HERE THIS IS: OUTER LOOP ON ROWS (ACROSS), INNER LOOP ON COLUMNS (DOWN). DO 1 N2=1,RCLACT N1=1 220 CONTINUEC DO 2 N1=1,RRW?C USE FVPEEK TO CHECK WHERE FIRST CELL TO DO IS HERE. SHOULD BE#C FASTER THAN STANDARD LOOP METHOD.ccc CALL FVPEEK(N1,N2,N1) CALL FVLDGT(N1,N2,FVLD(1,1)) IF (FVLD(1,1).LE.0) GOTO 2 IRRX=(N2-1)*RRW+N1C CALL REFLEC(N2,N1,IRRX)BC IF CONSTANT WAS COMPUTED ALREADY, NO NEED TO RECOMPUTE. SKIP IT.:C NOTE: WE MUST ALWAYS RECOMPUTE IF R COMMAND WAS GIVEN.... IF ((RCONE.EQ.0).AND.(FVLD(1,1).EQ.2)) GOTO 2 KDRW=N1 KDCL=N2 PROW=N1 PCOL=N2@C SEE IF THIS PHYS COL HAS A DISPLAY COL. AND IF SO SET THAT UP.:C ONLY SET TO DISPLAYED LOCS HERE TO MINIMIZE SEARCH TIME. IF(DLFG.EQ.0)GOTO 959C NO SEARCH FOR DROW AND DCOL IF NO D## FORMS MAY USE IT.BC NEED SEARCH IF RCMODE > 1 SINCE WE MUST SEE IF WE'RE ON DISPLAY.6C IF RCMODE = 1 THEN WE JUST SEE IF THIS IS ENTER CELL DO 10 M1=1,DRWV DO 20 M2=1,DCLV M1X=M1 M2X=M24 IF(NRDSP(M1,M2).EQ.N1.AND.NCDSP(M1,M2).EQ.N2)GOTO 9 20 CONTINUE 10 CONTINUE<C IF WE FALL THRU HERE, CELL ISN'T ON DISPLAY AREA ANYWHERE.!C IF NOT ENTERED CELL, SKIP IT...<C ALSO GO HERE IF RCMODE IS 0 OR 1 AND NO D## ENTRIES EXIST. 95 CONTINUE IF(RCMODE.LE.0)GOTO 93C TEST AND CALC ONLY IF ENTRY HERE... ELSE SKIP IT.) IF(PROW.NE.IRCE1.OR.PCOL.NE.IRCE2)GOTO 2)C SKIP OUT IN NEW MODES IF NOT ON DISPLAY 9 CONTINUE*C IF NO DISPLAY ROW, LEAVE AT LOW RIGHT...DC USE SAVED VALUES SO WE DON'T RELY ON DO LOOP INDEX AFTER LOOP END. DROW=M1X DCOL=M2X CALL WRKFIL(IRRX,FORM,0):C NOW HAVE THE FORMULA LINE. PASS TO DOENTRY TO HANDLE IT. LLST=110 DO 56 NNN=1,109 LLST=111-NNN IF(FORM(LLST-1).GT.32)GOTO 57 FORM(LLST)=0 56 CONTINUE 57 CONTINUE"C FIND REAL LAST FORMULA CHARACTER LFST=1 FORM(LLST)=0 FORM(LLST+1)=0 LFST=1 FORM(111)=0 IF(FORM(118).NE.15)GOTO 2 CALL DOENTR(FORM,LFST,LLST)?C IF WE JUST COMPUTED A CONSTANT, FLAG IT COMPUTED AND SKIP IT. CALL FVLDGT(N1,N2,FVLD(1,1))' IF(FVLD(1,1).EQ.3)CALL FVLDST(N1,N2,2) 2 CONTINUE N1=N1+1 IF(N1.LE.RRWACT)GOTO 220 1 CONTINUE GOTO 5600 5500 CONTINUEC RCMODE=2 AND NOT RM MODE'C (IN RM MODE, RECALC IS NOT CALLED...) DO 1701 M2=1,DCLV DO 1702 M1=1,DRWV@C TO HANDLE DISPLAY WHEREVER IT MAY BE, FIND ID OF PHYS CELL AND7C CONVERT TO PHYS ROW, COL AGAIN REGARDLESS OF ALIAS...BC (NOTE CALC ORDER IS THEREFORE DISPLAY ORDER, NOT SHEET ORDER...) K=NRDSP(M1,M2) KK=NCDSP(M1,M2) CALL REFLEC(KK,K,IV1) NRC=IV1-1 N1=MOD(NRC,RRW)+1 N2=((NRC-N1+1)/RRW)+11C COMPUTE PHYS ROW, COL FROM DISPLAY COORDINATES.?C USE FVPEEK TO CHECK WHERE FIRST CELL TO DO IS HERE. SHOULD BE#C FASTER THAN STANDARD LOOP METHOD.DC *** NOTE HOWEVER THAT IT COULD SLOW US UP... DEPENDS ON EFFICIENCYC OF FVLDGT AND FVPEEK.MC ... NEED BADLY TO SPEED UP FVLDGT AND FVPEEK TO GET THIS LOOP TO RUN FAST. CALL FVLDGT(N1,N2,FVLD(1,1)) IIFV=(FVLD(1,1)) IF (IIFV.LE.0) GOTO 1702-C FORGET THIS CELL IF NOT A COMPUTABLE ONE... IRRX=IV1BC IF CONSTANT WAS COMPUTED ALREADY, NO NEED TO RECOMPUTE. SKIP IT.:C NOTE: WE MUST ALWAYS RECOMPUTE IF R COMMAND WAS GIVEN...1 IF ((RCONE.EQ.0).AND.(FVLD(1,1).EQ.2)) GOTO 1702 KDRW=N1 KDCL=N2 PROW=N1 PCOL=N2 DROW=M1 DCOL=M2 CALL WRKFIL(IRRX,FORM,0):C NOW HAVE THE FORMULA LINE. PASS TO DOENTRY TO HANDLE IT. LFST=17C FIND END OF FORMULA FOR MATH ROUTINES TO TRY TO SPEEDC THEM UP A BIT.KC (ALSO GUARANTEE WE HAVE LOTS OF NULLS AT END TO TERMINATE INDEX ROUT00e]\ZYTADATADATADATADATADATAINES) DO 756 N=1,109 LLST=111-N IF(FORM(LLST-1).GT.32)GOTO 757 FORM(LLST)=0 756 CONTINUE 757 CONTINUE FORM(LLST)=0 FORM(111)=02C CALL DOENTR TO DO THE ACTUAL COMPUTATION WORK... CALL DOENTR(FORM,LFST,LLST)?C IF WE JUST COMPUTED A CONSTANT, FLAG IT COMPUTED AND SKIP IT." IF(IIFV.EQ.3)CALL FVLDST(N1,N2,2) 1702 CONTINUE 1701 CONTINUE"C END OF COMPUTATION OVER DISPLAYS C GOTO 5600 5600 CONTINUE PROW=PRS PCOL=PCS DROW=DRS DCOL=DCOL!C FORCE FUNCTION WORKS ONCE ONLY. RCONE=0 RCMODE=IABS(RCMODE)>C RCMODE GETS ABS VALUE AFTER ONE CALL SO WE'RE SURE NEG FLAGSC GET RESET... IRCE1=0 IRCE2=0$C RESET ENTER FLAGS TOO ONCE USED... RETURN END" SUBROUTINE DOENTR(FORM,LOW,LHIGH)%C +++++++++++++++++++++++++++++++++++ INCLUDE 'VKLUGPRM.FTN' PARAMETER CUP=1,EL=12C PARAMETER RRW = 32&C PARAMETER RCL = 32 ! REAL ROWS, COLSC PARAMETER DRW = 8-C PARAMETER DCL = 8 ! DISPLAY MAX ROWS, COLS.C PARAMETER RRCL = 1024C PARAMETER RRCL=RRW*RCL LOGICAL*1 FORM,FVLD,CMDLIN(132) INTEGER*4 VNLT$ DIMENSION FORM(128),FVLD(RRWP,RCLP)AC FVLD FLAG 0 = NO FORMULA, -1= DISPLAY FORMULA ITSELF, NOT VALUE=C 1=VALID ACTIVE FORMULA THERE TO EVALUATE. INITIALLY ALL 0'SC SO INITIALLY IGNORE.( INTEGER*2 PROW,PCOL,DROW,DCOL,DRWV,DCLV* COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRWV,DCLV( DIMENSION NRDSP(DRW,DCL),NCDSP(DRW,DCL) COMMON/D2R/NRDSP,NCDSP" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9)) LOGICAL*1 AVBLS(20,27),VBLS(8,RRWP,RCLP) REAL*8 ACY EQUIVALENCE(ACY,AVBLS(1,27)) COMMON/V/TYPE,AVBLS,VBLS,VLEN COMMON/FVLDC/FVLD%C +++++++++++++++++++++++++++++++++++2C ENABLE { FORMS TO HANDLE ALL POSSIBLE EQUATIONS. CALL FRMEDT(FORM,LLST) IITR=0 5050 continue IITR=IITR+1 FORM(111)=0 LCURR=LOWBC DO AN ENTRY. MUST SCAN FOR MULTIPLE STATEMENTS PER LINE AND ALSOC RECOGNIZE FUNCTION NAMES. 1000 CONTINUE LSL=INDEX(FORM(LCURR),'\') IF(LSL.EQ.0)LSL=LHIGHC CLAMP AT 80 CHARS LONG INPUT. IF(LSL.LE.79)GOTO 1200:C STMT HAS NO MULTIPLES. SQUASH IT TO USE ONLY 1ST PART... LSL=79 LCURR=LHIGH FORM(80)=0 1200 CONTINUE6C PERMIT < TO MEAN WE GO BACK INTO THE CURRENT FORMULA1C IF WE HAVE BEEN LESS THAN 100 TIMES AND IF % IS C POSITIVE. IF(FORM(LCURR).NE.'<')GOTO 5051' IF(ACY.GT.0..AND.IITR.LT.100)GOTO 50507C SKIP DOSTMT CALL IF WE HAD < SINCE THAT'S NOT A LEGAL C FUNCTION... GOTO 5052 5051 CONTINUE CALL DOSTMT(FORM(LCURR),LSL)5052 IF (LCURR.GE.LHIGH)RETURN LCURR=LCURR+LSL GOTO 1000 END SUBROUTINE DOSTMT(LINE,LLAST)BC HANDLE 1 STATEMENT PARSING (DOES A BIT MORE OF THE WORK WITH THE>C PART OF THE LINE STRIPPED TO HAVE EXACTLY ONE COMMAND IN IT. LOGICAL*1 LINE(110)%C +++++++++++++++++++++++++++++++++++ INCLUDE 'VKLUGPRM.FTN' PARAMETER CUP=1,EL=12C PARAMETER RRW = 32&C PARAMETER RCL = 32 ! REAL ROWS, COLSC PARAMETER DRW = 8-C PARAMETER DCL = 8 ! DISPLAY MAX ROWS, COLS.C PARAMETER RRCL = 1024C PARAMETER RRCL=RRW*RCL LOGICAL*1 FORM,FVLD,CMDLIN(132) INTEGER*4 VNLT$ DIMENSION FORM(128),FVLD(RRWP,RCLP)AC FVLD FLAG 0 = NO FORMULA, -1= DISPLAY FORMULA ITSELF, NOT VALUE=C 1=VALID ACTIVE FORMULA THERE TO EVALUATE. INITIALLY ALL 0'SC SO INITIALLY IGNORE. COMMON/FVLDC/FVLD( INTEGER*2 PROW,PCOL,DROW,DCOL,DRWV,DCLV* COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRWV,DCLV( DIMENSION NRDSP(DRW,DCL),NCDSP(DRW,DCL) COMMON/D2R/NRDSP,NCDSP" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9) REAL*8 XVBLS(RRWP,RCLP)) LOGICAL*1 AVBLS(20,27),VBLS(8,RRWP,RCLP) INTEGER*4 JVBLS(2,RRWP,RCLP)% EQUIVALENCE(JVBLS(1,1,1),XVBLS(1,1))$ EQUIVALENCE(VBLS(1,1,1),XVBLS(1,1)) COMMON/V/TYPE,AVBLS,VBLS,VLEN REAL*8 ACX,ACY,AACY EQUIVALENCE(ACY,AVBLS(1,27)) integer*4 iacy,IIJACY,IIJAC2(2) EQUIVALENCE(IACY,AVBLS(1,27)) EQUIVALENCE(IIJACY,IIJAC2(1)) EQUIVALENCE(IIJAC2(1),AACY) INTEGER*2 KDRW,KDCL COMMON /DOT/KDRW,KDCL LOGICAL*1 ILINE(106) INTEGER*2 ILNFG,ILNCT COMMON/ILN/ILNFG,ILNCT,ILINE%C +++++++++++++++++++++++++++++++++++ CALL FNAME(LINE,LLAST,INDEXF)C ABOVE GETS FUNCTION NAMES. C NAME INDEXFC MIN 1C MAX 2C AVG 300e ]~\[Y[Z[[[\[}C SUM 4C STD 5 (STD DEVIATION)C IF 6 (IF STMT)C AND 7C OR 8C NOT 9!C CNT 10 (COUNTS NONZERO ENTRIES)C NPV 11 NET PRESENT VALUE,C LKP 12 LOOKUP IN LIST, GIVE OFFSET 0 BASED)C LKN 13 LOOKUP NEGATIVE (INVERSE OF LKP)C LKE 14 LOOKUP EQUALC XOR 15 EXCLUSIVE OR)C EQV 16 EQUIVALENCE (TRUE IF BITS EQUAL)C MOD 17 V1 MODULO V2C REM 18 REMAINDER OF V1/V2$C SGN 19 SIGN OF V1 (-1.,0., OR +1.) C IRR 20 INTERNAL RATE OF RETURN(C RND 21 RANDOM NUMBER BETWEEN 0. AND 1.C PMT 22 Payment functionC PVL 23 Present Value function%C AVE 24 Average excluding zero cells8C CHS 25 Choose nth arg. index where n given by 1st arg.'C USE [ AND ] TO DELIMIT FUNCTION ARGS.) IF(INDEXF.LT.1.OR.INDEXF.GT.25)GOTO 1000IC HERE IF A FUNCTION OR AN IF STMT (FORMAT= IF [varRELvar]stmt|else-stmt)C'C ALLOW CALC TO HANDLE ALL BUT IF STMTS IF(INDEXF.NE.6)GOTO 1000C LLB=INDEX(LINE,'[') LRB=INDEX(LINE,']')=C *** ERROR WITH FORMAT -- NO [ SEEN IN TIME. JUST IGNORE IT. IF(LLB.GT.LLAST)RETURN IF(LRB.GT.LLAST)LRB=LLASTC IF(INDEXF.EQ.6)GOTO 2000CC ISOLATE MATH FUNCTIONS&C CALL DOMFCN(LINE,LLB,LRB,INDEXF,ACX)CC GET % ABOVE"C CALL TYPGET(KDRW,KDCL,TYPE(1,1))"C IF(ABS(TYPE(1,1)).NE.2)GOTO 1760C CALL XVBLST(KDRW,KDCL,ACX)CC XVBLS(KDRW,KDCL)=ACXCC LEAVE RESULT IN % TOO. C ACY=ACXC CALL TYPSET(27,1,TYPE(1,1))CC TYPE(27,1)=TYPE(KDRW,KDCL)C RETURNC1760 JVBLS(1,1,1)=ACX'C CALL JVBLST(1,KDRW,KDCL,JVBLS(1,1,1))CC JVBLS(1,KDRW,KDCL)=ACXC RETURN 2000 CONTINUEC HANDLE AN "IF" STATEMENT CALL DOIF(LINE,LLB,LRB,LLAST)BC PASS LLAST TO DOIF SINCE WE DON'T EXPECT ] AS LAST CHAR OF STMT.C NO DIRECT SET OF VRBL HERE... RETURN 1000 CONTINUE2C HERE JUST HAVE SOMETHING TO PASS TO CALC. DO SO. ILNFG=1 LMX=LLAST-1 DO 1001 N1=1,LMX1001 ILINE(N1)=LINE(N1) ILNCT=LMXEC PROTECT CALC FROM ANY PART OF A LINE LONGER THAN 80 CHARS (ITS MAX) IF(ILNCT.GT.80)ILNCT=80 CALL CALCC STORE EXPRESSION RESULT."C CHANGE TYPE OF RESULT IF NEED TO CALL TYPGET(KDRW,KDCL,LMX) CALL TYPGET(27,1,N1)C REUSE COUPLE LOCAL VARIABLES LMX=IABS(LMX) N1=IABS(N1) IF(N1.EQ.9)N1=2 IF(N1.NE.2)N1=4 AACY=ACY IF(N1.EQ.LMX)GOTO 2760 IF(N1.EQ.2)IIJACY=ACY IF(N1.NE.2)AACY=IACY+C 2 IMPLIES REAL, 4 IMPLIES INTEGER STORAGE 2760 CONTINUE CALL XVBLST(KDRW,KDCL,AACY)C XVBLS(KDRW,KDCL)=ACY RETURN END$ SUBROUTINE FNAME(LINE,LLAST,INDEXF)C RETURN FUNCTION NAME IF ANY LOGICAL*1 LINE(110) INTEGER*4 FNAM(25) LOGICAL*1 FCHNM(4,25) EQUIVALENCE(FNAM(1),FCHNM(1,1))5 DATA FNAM/'MIN ','MAX ','AVG ','SUM ','STD ','IF ',2 1 'AND ','IOR ','NOT ','CNT ','NPV ','LKP ',@ 2 'LKN ','LKE ','XOR ','EQV ','MOD ','REM ','SGN ','IRR ',' 3 'RND ','PMT','PVL','AVE','CHS'/ INDEXF=0 DO 1 N1=1,25 DO 2 N2=1,3# IF(LINE(N2).NE.FCHNM(N2,N1))GOTO 1 2 CONTINUE>C IF WE FALL THROUGH, WE HAVE A VALID FCN NAME INDEX IN INDEXF INDEXF=N1 GOTO 3 1 CONTINUE 3 CONTINUE RETURN END# SUBROUTINE TEST(LOGTYP,FLAG,V1,V2) INTEGER*2 FLAG REAL*8 V1,V2 FLAG=0# IF(LOGTYP.EQ.1.AND.V1.GT.V2)FLAG=1# IF(LOGTYP.EQ.2.AND.V1.LT.V2)FLAG=1# IF(LOGTYP.EQ.3.AND.V1.EQ.V2)FLAG=1# IF(LOGTYP.EQ.4.AND.V1.NE.V2)FLAG=1# IF(LOGTYP.EQ.5.AND.V1.GE.V2)FLAG=1# IF(LOGTYP.EQ.6.AND.V1.LE.V2)FLAG=1BC TEST LOGICAL RELATIONS FOR IF STATEMENT, FLAG=1 IF TRUE, 0 ELSE. RETURN END( SUBROUTINE MTHINI(INDEXF,AC,SS,CTR,ACX) DIMENSION EP(20) REAL*8 EP,PV,FV COMMON/ERNPER/EP,PV,FV,KIRR REAL*8 AC,SS,CTR,ACX KIRR=0 SS=0. CTR=0. ACX=0. DO 1 N=1,20 1 EP(N)=0. AC=0. IF(INDEXF.EQ.1)AC=1.E20 IF(INDEXF.EQ.2)AC=-1.E20 RETURN END, SUBROUTINE DOMATH(INDEXF,VAR,AC,SS,CTR,ACX)! REAL*8 AC,SS,CTR,ACX,RWRK1,RWRK2 DIMENSION EP(20) REAL*8 EP,PV,FV COMMON/ERNPER/EP,PV,FV,KIRR REAL*8 VAR,TE INTEGER*4 IWRK1,IWRK2,IDUM INTEGER*2 KLKC,KLKR REAL*8 AACP,AACQ! COMMON/MSCMN/KLKC,KLKR,AACP,AACQ IF(INDEXF.NE.1)GOTO 100C MIN IF(VAR.GE.AC)GOTO 105 AC=VAR AACP=KLKC AACQ=KLKR 105 CONTINUEC IF(VAR.LT.AC)AC=VAR ACX=AC100 IF00e]\ZYTADATADATADATADATADATA(INDEXF.NE.2)GOTO 200C MAX IF(VAR.LE.AC)GOTO 107 AC=VAR AACP=KLKC AACQ=KLKRC SAVE SELECTED COORDS 107 CONTINUEC IF(VAR.GT.AC)AC=VAR ACX=AC200 IF(INDEXF.NE.3)GOTO 300C AVG AC=AC+VAR CTR=CTR+1. ACX=AC/CTR300 IF(INDEXF.NE.4)GOTO 400C SUM AC=AC+VAR ACX=AC400 IF(INDEXF.NE.5)GOTO 500"C STD (STANDARD DEVIATION SQUARED) AC=AC+VAR SS=SS+(VAR*VAR) CTR=CTR+1. ACX=(SS-((AC*AC)/CTR))/CTR 500 CONTINUE IF(INDEXF.NE.7)GOTO 600C AND IF(SS.NE.0.)IWRK1=AC IF(SS.EQ.0.)IWRK1=VAR SS=1. IWRK2=VAR IWRK1=IWRK1.AND.IWRK2 AC=IWRK1 ACX=AC600 IF(INDEXF.NE.8)GOTO 700C INCLUSIVE OR IWRK1=AC IWRK2=VAR IWRK1=IWRK1.OR.IWRK2 AC=IWRK1 ACX=AC700 IF (INDEXF.NE.9)GOTO 800C NOT IWRK1=VAR IWRK1=.NOT.IWRK1 AC=IWRK1 ACX=AC800 IF(INDEXF.NE.10)GOTO 1000C CNTC COUNT NONZERO ENTRIES IF(VAR.NE.0.)AC=AC+1. ACX=AC 1000 CONTINUE IF(INDEXF.NE.11)GOTO 1100C NPV IF(SS.EQ.0.)GOTO 1050 CTR=CTR+1.C AC=AC+VAR*CTR/SS AC=AC+VAR/(SS**(CTR-1)) ACX=AC GOTO 1200 1050 CONTINUE SS=VAR+1. ACX=0.1100 if(indexf.ne.12) GOTO 1200C LKP IF(SS.NE.0.)GOTO 1150 SS=1. AC=VAR ACX=-1. GOTO 1200 1150 CONTINUE$C IF(VAR.GE.AC.AND.ACX.LT.0.)ACX=CTR$ IF(VAR.LT.AC.OR.ACX.GE.0.)GOTO 1155 ACX=CTR AACP=KLKC AACQ=KLKR 1155 CONTINUE CTR=CTR+1. 1200 CONTINUE IF(INDEXF.NE.13)GOTO 1300C LKN IF(SS.NE.0.)GOTO 1250 SS=1. AC=VAR ACX=-1. GOTO 1300 1250 CONTINUE$C IF(VAR.LE.AC.AND.ACX.LT.0.)ACX=CTR$ IF(VAR.GT.AC.OR.ACX.GT.0.)GOTO 1256 ACX=CTR AACP=KLKC AACQ=KLKR 1256 CONTINUE CTR=CTR+1. 1300 CONTINUE IF(INDEXF.NE.14)GOTO 1400C LKE IF(SS.NE.0.)GOTO 1350 SS=1. AC=VAR ACX=-1. GOTO 1400 1350 CONTINUE$C IF(VAR.EQ.AC.AND.ACX.LT.0.)ACX=CTR$ IF(VAR.NE.AC.OR.ACX.GE.0.)GOTO 1355 ACX=CTR AACP=KLKC AACQ=KLKR 1355 CONTINUE CTR=CTR+1. 1400 CONTINUE IF(INDEXF.NE.15)GOTO 1500C XOR IF(SS.NE.0)IWRK1=AC IF(SS.EQ.0)IWRK1=VAR SS=SS+1. IF(SS.EQ.1.)GOTO 1405 IWRK2=VAR IWRK3=IWRK1.OR.IWRK2 IWRK1=IWRK1.AND.IWRK2 IWRK1=IWRK3-IWRK1 1405 AC=IWRK1 ACX=AC 1500 CONTINUE IF(INDEXF.NE.16)GOTO 1600C EQV9C NOTE THE EQUIVALENCE FUNCTION IS JUST THE COMPLEMENT OF=C THE XOR FUNCTION. DO THE COMPLEMENT VIA THE .NOT. OPERATOR. IF(SS.NE.0)IWRK1=AC IF(SS.EQ.0)IWRK1=VAR SS=SS+1. IF(SS.EQ.1.)GOTO 1505 IWRK2=VAR IWRK3=IWRK1.OR.IWRK2 IWRK1=IWRK1.AND.IWRK2 IWRK1=IWRK3-IWRK1 IWRK1=.NOT.IWRK1 1505 AC=IWRK1 ACX=AC 1600 CONTINUE IF(INDEXF.NE.17)GOTO 1700C MODOC MODULO (V1 MOD V2) IF(SS.NE.0)RWRK1=AC IF(SS.EQ.0)RWRK1=VARO SS=SS+1.I IF(SS.EQ.1.)GOTO 1605 RWRK2=VAR RWRK1=DMOD(RWRK1,RWRK2) 1605 AC=RWRK1A ACX=ACO 1700 CONTINUEP IF(INDEXF.NE.18)GOTO 1800C REMAINDER -- INTEGER MODULO' IF(SS.NE.0)IWRK1=AC IF(SS.EQ.0)IWRK1=VARA SS=SS+1.  IF(SS.EQ.1.)GOTO 1705 IWRK2=VAR IWRK1=JMOD(IWRK1,IWRK2) 1705 AC=IWRK1  ACX=AC 1800 CONTINUES IF(INDEXF.NE.19)GOTO 1900C SGN C RETURN 1.0 * SIGN OF ARGUMENT. AC=DSIGN(1.0D0,VAR) ACX=ACO 1900 CONTINUEO IF(INDEXF.NE.20)GOTO 2000C IRR - INTERNAL RATE OF RETURN  AC=0. ACX=0.  IF(KIRR.LT.20)KIRR=KIRR+1 IF(KIRR.EQ.1)PV=VAR IF(KIRR.EQ.2)FV=VAR IF(KIRR.LT.3)RETURNC IRR[PV,FV,RETURNS...]T IWRK1=KIRR-2T EP(IWRK1)=VAR RWRK1=.15 RWRK2=.250C ITERATIVELY SOLVE FOR INTERNAL RATE OF RETURN. 1903 TE=0. SS=FV/((1.D0+RWRK1)**(IWRK1)) DO 1905 IWRK2=1,IWRK1# AC=EP(IWRK2)/((1.D0+RWRK1)**IWRK2)C SS=SS+ACI 1905 CONTINUEN RWRK2=RWRK1*(SS+TE)/PV)) IF(DABS(RWRK1-RWRK2).LT..00001)GOTO 1910L RWRK1=RWRK2 GOTO 1903 1910 CONTINUEC AC=RWRK2/ ACX=ACV 2000 CONTINUEF IF(INDEXF.NE.21)GOTO 2100C RND  AC=RNDF(IDUM) ACX=ACI 2100 CONTINUEE IF(INDEXF.NE.22)GOTO 2200C PMT FUNCTION-C PMT[PRINCIPAL, INTEREST, NPERIODS] ARE ARGS&C PAYMENT (MORTGAGE PAYMENT PER PERIODEC COMPUTED AS PAYMENT=PRINCIPAL*(INTEREST/(1-(1+INTEREST)**NPERIODS))OC (CORRECT EVEN IF INTEREST=0P,C (REUSE COUNTER USED IN IRR ARGUMENTS HERE) AC=0. ACX=0.C KIRR=KIRR+1 E00e]~\[Y[Z[[[\[}P(KIRR)=VARI IF(KIRR.LT.3)RETURN4C FIRST GET ALL THE INPUTS, THEN DO THE REAL RESULT.- AC=EP(1)*(EP(2)/(1.-((1.+EP(2))**(-EP(3)))))D ACX=ACC RETURNC 2200 CONTINUE/ IF(INDEXF.NE.23)GOTO 2300C PVL FUNCTION)C PVL[PAYMENT,INTEREST,NPERIODS] ARE ARGSCC PRESENT VALUE COMPUTED AST3C PV=PAYMENT*(1.-(1.+INTEREST)**-NPERIODS)/INTEREST,C (REUSE COUNTER USED IN IRR ARGUMENTS HERE) AC=0. ACX=0.R KIRR=KIRR+1 EP(KIRR)=VAR IF(KIRR.LT.3)RETURN4C FIRST GET ALL THE INPUTS, THEN DO THE REAL RESULT. AC=EP(1)*EP(3)I( IF(EP(3).EQ.0..OR.EP(2).EQ.0.)GOTO 2205+ AC=EP(1)*((1.-(1.+EP(2))**(-EP(3)))/EP(2))L 2205 ACX=AC RETURN1 2300 CONTINUE IF(INDEXF.NE.24)GOTO 2400"C AVE AVERAGE EXCLUDING ZERO CELLS IF(VAR.EQ.0.)GOTO 2305H AC=AC+VAR CTR=CTR+1.T2305 ACX=AC/CTRD 2400 CONTINUEP IF(INDEXF.NE.25)GOTO 2500C CHSF7C CHOOSE FROM ARGS USING 1ST ARG AS COUNT INTO RANGE...W-C (SIMILAR TO CLASSICAL "CHOOSE" FUNCTION...) <C RETURNS 0.0 OR VALUE OF NTH ARG WHERE N IS INDEX OF ARG...C IF(KIRR.EQ.0)ACX=0.E KIRR=KIRR+1 IF(KIRR.EQ.1)IWRK1=VAR+1. IF(KIRR.NE.IWRK1)GOTO 2450OC SAVE LOCATION ALSO OF CELLS.PC THIS ALLOWS US TO FIND ADDRESSES OF SELECTED CELLS IN CHOOSE FOR ADDRESS MATH. AACP=KLKC AACQ=KLKR SS=VARM 2450 CONTINUET ACX=SS( AC=ACX) 2500 CONTINUES RETURN  END+ SUBROUTINE DOMFCN(LINE,LLB,LRB,INDEXF,ACX)SC LLB = LOC OF [C LRB = LOC OF ].C INDEXF IS AS ABOVE. GUARANTEED IN RANGE 1-5. LOGICAL*1 LINE(110)%C +++++++++++++++++++++++++++++++++++, INCLUDE 'VKLUGPRM.FTN' PARAMETER CUP=1,EL=12C PARAMETER RRW = 32&C PARAMETER RCL = 32 ! REAL ROWS, COLSC PARAMETER DRW = 8E-C PARAMETER DCL = 8 ! DISPLAY MAX ROWS, COLS.TC PARAMETER RRCL = 1024 C PARAMETER RRCL=RRW*RCL LOGICAL*1 FORM,FVLD,CMDLIN(132) INTEGER*4 VNLT($ DIMENSION FORM(128),FVLD(RRWP,RCLP)AC FVLD FLAG 0 = NO FORMULA, -1= DISPLAY FORMULA ITSELF, NOT VALUEC=C 1=VALID ACTIVE FORMULA THERE TO EVALUATE. INITIALLY ALL 0'SNC SO INITIALLY IGNORE.( INTEGER*2 PROW,PCOL,DROW,DCOL,DRWV,DCLV* COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRWV,DCLV( DIMENSION NRDSP(DRW,DCL),NCDSP(DRW,DCL) COMMON/D2R/NRDSP,NCDSPA" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9) REAL*8 XVBLS(RRWP,RCLP)) LOGICAL*1 AVBLS(20,27),VBLS(8,RRWP,RCLP)M INTEGER*4 JVBLS(2,RRWP,RCLP)L% EQUIVALENCE(JVBLS(1,1,1),XVBLS(1,1))I REAL*8 XXXF$ EQUIVALENCE(VBLS(1,1,1),XVBLS(1,1)) COMMON/V/TYPE,AVBLS,VBLS,VLEN REAL*8 ACX,ACYI REAL*8 AC,SS,CTRO EQUIVALENCE(ACY,AVBLS(1,27))S REAL*8 ACP,ACQC/ EQUIVALENCE(ACP,AVBLS(1,16)),(ACQ,AVBLS(1,17)) INTEGER*2 KDRW,KDCL COMMON /DOT/KDRW,KDCL LOGICAL*1 ILINE(106)2 INTEGER*2 ILNFG,ILNCT COMMON/ILN/ILNFG,ILNCT,ILINE COMMON/FVLDC/FVLD INTEGER*2 KLKC,KLKR REAL*8 AACP,AACQT! COMMON/MSCMN/KLKC,KLKR,AACP,AACQN%C +++++++++++++++++++++++++++++++++++ C2@C FIRST GET A VARIABLE NAME. ALL MATH FUNCTIONS REQUIRE VARIABLE8C NAMES SINCE THEIR VARIABLES ARE THEIR ONLY VALID ARGS." CALL MTHINI(INDEXF,AC,SS,CTR,ACX)C SET UP PROPER INITSNC KV2=1 IF A 2ND VBL EXISTSM LCR=LLB+1 AACP=ACP) AACQ=ACQL8C INITIALIZE P, Q SAVE ACCUMULATORS TO LET DOMATH SIGNAL?C COORDS OF SELECTED ITEMS IN P,Q FOR SELECTION TYPE FUNCTIONS. 100 CONTINUE KV2=0 LB=LCR LE=LRB-1I IF(LB.GE.LE)RETURN - CALL VARSCN(LINE,LB,LE,LASST,ID1,ID2,IVALID)H IF(IVALID.EQ.0)RETURN IF(LINE(LASST).NE.':')GOTO 110 LB=LASST+1N LE=LRB-1/ CALL VARSCN(LINE,LB,LE,LASST,ID1B,ID2B,IVALID)O IF(IVALID.NE.0)KV2=1A 110 CONTINUE CALL XVBLGT(ID1,ID2,XVBLS(1,1)) XXX=XVBLS(1,1)FC XXX=XVBLS(ID1,ID2) CALL TYPGET(ID1,ID2,TYPE(1,1))B$C USE EQUIVALENCE OF JVBLS AND XVBLS( IF(ABS(TYPE(1,1)).NE.2)XXX=JVBLS(1,1,1) KLKC=ID1 KLKR=ID2-1S& CALL DOMATH(INDEXF,XXX,AC,SS,CTR,ACX) IF(KV2.EQ.0)GOTO 200. IF(ID1.NE.ID1B) GOTO 1201 IF(ID2.GT.ID2B)GOTO 200 M=ID2+1 DO 121 MM=M,ID2B CALL XVBLGT(ID1,MM,XVBLS(1,1))0 XXX=XVBLS(1,1)E CALL TYPGET(ID1,MM,TYPE(1,1))C XXX=XVBLS(ID1,MM)( IF(ABS(TYPE(1,1)).NE.2)XXX=JVBLS(1,1,1) KLKC=ID1P KLKR=MM-1& CALL DOMATH(INDEXF,XXX,AC,SS,CTR,ACX) 121 CONTINUE GOTO 200M 120 CONTINUE00e"]fZZYTADATADATADATADATADATA IF(ID2.NE.ID2B)GOTO 130 IF(ID1.GT.ID1B)GOTO 200 M=ID1+1 DO 131 MM=M,ID1B( CALL XVBLGT(MM,ID2,XVBLS(1,1))N XXX=XVBLS(1,1)C XXX=XVBLS(MM,ID2)L CALL TYPGET(MM,ID2,TYPE(1,1))( IF(ABS(TYPE(1,1)).NE.2)XXX=JVBLS(1,1,1) KLKC=MM KLKR=ID2-1 & CALL DOMATH(INDEXF,XXX,AC,SS,CTR,ACX) 131 CONTINUE 130 CONTINUE 200 CONTINUE?C IF NEXT CHAR IS A COMMA, SKIP IT AND KEEP UP SCAN UNLESS DONE IF(LINE(LASST).EQ.',')GOTO 300O ACP=AACPO ACQ=AACQOEC USE P, Q ACCUMULATORS FROM DOMATH (OR THE ONES WE SAVED EARLIER...)D RETURNM300 LCR=LASST+1T GOTO 100  END$ SUBROUTINE DOIF(LINE,LLB,LRB,LLAST) INCLUDE 'VKLUGPRM.FTN'C PARAMETER CUP=1,EL=12 LOGICAL*1 LINE(110) REAL*8 V1,V2S V1=0. V2=0. LS=LRB-LLB+1)' CALL GETLOG(LINE(LLB),LS,LOGTYP,LASST) LOV1=LLBK LHIV1=LASST+LLB-1 IF(LOV1.GE.LHIV1)GOTO 100&C USE SUM FUNCTION HERE AS TYPE OF FCN LT=4O# CALL DOMFCN(LINE,LOV1,LHIV1,LT,V1) 100 CONTINUE IF(LOGTYP.EQ.0)GOTO 1000A LOV2=LASST+2+LLB LHIV2=LRB IF(LOV2.GE.LHIV2)GOTO 200 LT=4C# CALL DOMFCN(LINE,LOV2,LHIV2,LT,V2)I 200 CONTINUE CALL TEST(LOGTYP,LFLAG,V1,V2) IF(LFLAG.EQ.0)GOTO 700O)C HERE HAVE "TRUE" ALTERNATIVE OF IF STMTF LBAR=INDEX(LINE,'|')E LBAR=MIN0(LBAR,LLAST) LSTM=LRB+1ICC LSTM TO LBAR IS NOW THE STMT TO EVALUATE. SINCE WE ALREADY HAVE AC?C ROUTINE TO EVALUATE A STMT, DO SO. NOTE PARTIAL RECURSION, SO?C NO NESTED IFS ALLOWED, AND CALL MUST PERMIT RECURSION ON YOURG+C MACHINE OR FORGET IT. (OK ON PDP11, VAX).* LSZ=LBAR-LSTM+1 IF(LSZ.LT.1)GOTO 1000 CALL DOSTMT(LINE(LSTM),LSZ) GOTO 1000 700 CONTINUE*C HERE HAVE "FALSE" ALTERNATIVE OF IF STMT LBAR=INDEX(LINE,'|')+1I LBAR=MIN0(LBAR,LLAST) LSZ=LLAST-LBAR+1I IF(LSZ.LT.1)GOTO 1000 CALL DOSTMT(LINE(LBAR),LSZ) 1000 CONTINUEA C THAT'S ALL.C RETURNL END) SUBROUTINE GETLOG(LINE,LMX,LOGTYP,LASST)U LOGICAL*1 LINE(110) LOGICAL*1 LFN(4,6)F INTEGER*4 LF(6) EQUIVALENCE(LF(1),LFN(1,1))3 DATA LF/'.GT.','.LT.','.EQ.','.NE.','.GE.','.LE.'/5C LOGTYP RELATIONSHIP TO RELATIONSHIPS OF 2 VARIABLES. C IS DEFINED IN ABOVE DATA STMT.;C IF LINE CONTAINS STRING IN NAME, RETURN TYPE AND END LOC.E LMX4=LMX-3U DO 100 LL=1,6 LOGTYP=LL DO 1 N1=1,LMX4 " IF(LINE(N1 ).NE.LFN(1,LL))GOTO 2" IF(LINE(N1+1).NE.LFN(2,LL))GOTO 2" IF(LINE(N1+2).NE.LFN(3,LL))GOTO 2" IF(LINE(N1+3).NE.LFN(4,LL))GOTO 2C HERE HAVE A MATCHI LASST=N1T)C RETURN LOC OF NEXT CHAR AFTER RELATION.C GOTO 200 2 CONTINUE 1 CONTINUE 100 CONTINUE LOGTYP=0 200 CONTINUE RETURNO END:C REFLECT EXTENDED CELL ADDRESSES BACK TO PRIME WORK AREA. SUBROUTINE REFLEC(ID1,ID2,ID);C FORM ID OUT OF ID1,ID2 BUT USING REFLECTED VALUES SO THAT$C RESULT ID IS ALWAYS IN PRIME AREA. INCLUDE 'VKLUGPRM.FTN'C ABOVE DEFINES LOGICALS USED+ INTEGER*2 ICREF,IRREF,ID,ID1,ID2,IDD1,IDD2 COMMON/MIRROR/ICREF,IRREF0 INTEGER*2 FORMFG,RCFGX,PZAP,RCONE,RCMODE,IRCE1, 1 IRCE22 COMMON/FFGG/FORMFG,RCFGX,PZAP,RCONE,RCMODE,IRCE1, 1 IRCE26C DON'T MESS UP ARGUMENTS; USE INTERNAL COPY. ALSO MAY"C BE FASTER ON SOME ARCHITECTURES. IDD1=MAX0(ID1,1) IDD2=ID2 IF(ID1.LT.1)GOTO 2000BC ALLOW TRICK ENTRIES WITH ID1=0 TO MEAN ID2 IS THE COMPLETE INDEX)C GMSUBS, MTXEQU AND MDET USE THESE CALLS*C TRICKERY HERE FIXES UP XVBLGT AND XVBLST 4000 CONTINUE IF(IDD2.LE.RRW)GOTO 1000 IDD2=IDD2-RRW IDD1=IDD1+IRREF c RCMODE=0;C IF OFF ROOT AREA, CAN'T FIND DISPLAY SO FORCE FULL RECALCC MODE (RI AND RE FAIL...) GOTO 4000 1000 CONTINUE IF(IDD1.LE.RCL)GOTO 2000 IDD1=IDD1-RCL+1 IDD2=IDD2+ICREF c RCMODE=0;C IF OFF ROOT AREA, CAN'T FIND DISPLAY SO FORCE FULL RECALCC MODE (RI AND RE FAIL...) GOTO 4000 2000 CONTINUE ID=(IDD1-1)*RRW+IDD2 RETURN END00g-]hZi0][Z[[[\[}:C REFLECT EXTENDED CELL ADDRESSES BACK TO PRIME WORK AREA. SUBROUTINE REFLEC(ID1,ID2,ID);C FORM ID OUT OF ID1,ID2 BUT USING REFLECTED VALUES SO THAT$C RESULT ID IS ALWAYS IN PRIME AREA. INCLUDE 'VKLUGPRM.FTN'C ABOVE DEFINES LOGICALS USED+ INTEGER*2 ICREF,IRREF,ID,ID1,ID2,IDD1,IDD2 COMMON/MIRROR/ICREF,IRREF0 INTEGER*2 FORMFG,RCFGX,PZAP,RCONE,RCMODE,IRCE1, 1 IRCE22 COMMON/FFGG/FORMFG,RCFGX,PZAP,RCONE,RCMODE,IRCE1, 1 IRCE26C DON'T MESS UP ARGUMENTS; USE INTERNAL COPY. ALSO MAY"C BE FASTER ON SOME ARCHITECTURES. IDD1=MAX0(ID1,1) IDD2=ID2 IF(ID1.LT.1)GOTO 2000BC ALLOW TRICK ENTRIES WITH ID1=0 TO MEAN ID2 IS THE COMPLETE INDEX)C GMSUBS, MTXEQU AND MDET USE THESE CALLS*C TRICKERY HERE FIXES UP XVBLGT AND XVBLST 4000 CONTINUE IF(IDD2.LE.RRW)GOTO 1000 IDD2=IDD2-RRW IDD1=IDD1+IRREF RCMODE=0;C IF OFF ROOT AREA, CAN'T FIND DISPLAY SO FORCE FULL RECALCC MODE (RI AND RE FAIL...) GOTO 4000 1000 CONTINUE IF(IDD1.LE.RCL)GOTO 2000 IDD1=IDD1-RCL+1 IDD2=IDD2+ICREF RCMODE=0;C IF OFF ROOT AREA, CAN'T FIND DISPLAY SO FORCE FULL RECALCC MODE (RI AND RE FAIL...) GOTO 4000 2000 CONTINUE ID=(IDD1-1)*RRW+IDD2 RETURN ENDC COMPILE WITH /I4 SWITCH. FUNCTION RNDF(DUM)4C GENERATE RANDOM NUMBER BY LINEAR CONGRUENCE IN BIG C INTEGERS. REAL*4 R REAL*8 XX INTEGER*4 DUM INTEGER*4 I,II LOGICAL*4 L,LMSK EQUIVALENCE(I,L),(II,LMSK) XX=DUM XX=XX*214013.D0+2531011.0D0 XX=DMOD(XX,16777216.D0) I=XX+C USE MASKING TO ZOT THIS INTO NORMAL RANGE II=16777215 L=L.AND.LMSK DUM=I!C RETURN RANDOM BETWEEN 0 AND 1.0C PERIOD OF 2**24 MAX R=FLOAT(I)/16777216. RNDF=R RETURN END:C VT100 VIDEO DISPLAY COMMAND PROGRAM. CALLING SEQUENCE IS=C CALL UVT100(CMD,N1,N2), WHERE CMD IS ONE OF THE COMMANDS INAC THE PARAMETER LIST BELOW, AND N1 AND N2 ARE OPTIONAL PARAMETERSDC DEPENDING UPON CMD. SEE THE UVT100 USER'S MANUAL FOR MORE DETAILS.CBC SCREEN INDEPENDENT VARIANT FOR PORTACALC ONLY. UVT100 COMPATIBLEGC (MORE OR LESS). IF THE TERMINAL DOES NOT HAVE REVERSE VIDEO, IT USESIC THE LEFTMOST COLUMN OF A CELL TO HOLD A SPECIAL CHARACTER (">" IN THISBC CASE) TO INDICATE ONE'S POSITION ON THE SCREEN. BY MAIN FORCE &EC AWKWARDNESS IT WILL MOVE THIS AROUND WHEREVER NEEDED. ONLY ENTRIES:C CALLED BY PORTACALC ARE SUPPORTED HERE, MANY AS NO-OPS.5C THIS VERSION MAY BE USED ONLY ON VAX; ITS OUTPUT IS*C STRICTLY FORTRAN I/O TO LOGICAL UNIT 6.CC AUTHOR: GLENN EVERHART/C LARRY W. FINGER - SCREEN INDEPENDENT VERSIONC' SUBROUTINE UVT100 ( CMD, N1, N2 ) IMPLICIT INTEGER ( A - Z ) INCLUDE 'VKLUGPRM.FTN'G PARAMETER CUP = 1, CUU = 2, CUD = 3, CUF = 4, CUB = 5, DECDWL = 6G $, DECDHL = 7, DECRC = 8, DECSC = 9, DECSWL = 10, ED = 11, EL = 12A $, SGR = 13, NEL = 14, SCS = 15, SM = 16, RM = 17, ANSI = 18 BYTE OUTBUF ( 4 ) LOGICAL*1 FVLD DIMENSION FVLD(RRW,RCL) COMMON /FVLDC/FVLD( INTEGER*2 PROW,PCOL,DROW,DCOL,DRWV,DCLV INTEGER*2 LLCMD,LLDSP6 COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRWV,DCLV,LLCMD,LLDSP INTEGER*2 S7FLG,SCFG DATA IFIRST/0/C IF(IFIRST.EQ.0)THEN:C GET TERMINAL INFORMATION AND SET KVTINC NONZERO IF VT100 KVTINC=0 CALL LIB$SCREEN_INFO(SCFG) IF((SCFG.AND.2).NE.0)KVTINC=1 IFIRST=1 END IFC6 IF(.NOT.((CMD.EQ.SCS).OR.(CMD.EQ.ANSI).OR.(CMD.EQ.RM) 1.OR.(CMD.EQ.SM)))GO TO 1000CEC IGNORE SELECT CHARACTER SET, ANSI, RESET MODE, AND SET MODE ENTRIESC SCFG=0 RETURN1000 IF(CMD.NE.CUP)GO TO 1010C POSITION CURSOR CALL LIB$SET_CURSOR(N1,N2)C SAVE COORDINATES SAVELINE=N1 SAVECOLUMN=N2 SCFG=1 RETURN1010 IF(CMD.NE.ED)GO TO 1020C ERASE ENTIRE DISPLAY CALL LIB$ERASE_00i4]j7]ZYTADATADATADATADATADATAPAGE(1,1) SCFG=0 RETURN1020 IF(CMD.NE.EL)GO TO 1030 C ERASE LINE IF(N1.EQ.0)I=LIB$ERASE_LINE()) IF(N1.EQ.2)I= LIB$ERASE_LINE(SAVELINE,1)# IF(.NOT.I)CALL LIB$SIGNAL(%VAL(I)) SCFG=0 RETURN1030 IF(CMD.NE.SGR)GO TO 1060C SET GRAPHICS RENDITION IF(KVTINC.NE.0)GO TO 1050C C NOT VT100 IF(N1.NE.7)GO TO 1040 IF(SCFG.NE.1)RETURN! IF(PROW.LE.0.OR.PCOL.LE.0)RETURN% IF(PROW.GT.RRW.OR.PCOL.GT.RCL)RETURN IF(FVLD(PROW,PCOL).EQ.0)RETURNC LOCATION VALID CSAVE=SAVECOLUMN RSAVE=SAVELINE S7FLG=1 RETURNC SGR ARGUMENT NOT 71040 IF(SCFG.NE.1)RETURN IF(S7FLG.NE.1)RETURNC REPOSITION CURSOR! CALL LIB$SET_CURSOR(RSAVE,CSAVE) WRITE(6,2) 2 FORMAT('>')) CALL LIB$SET_CURSOR(SAVELINE,SAVECOLUMN) S7FLG=0 RETURN=C VT100 TERMINAL - SET REVERSE VIDEO IF N1=7, CLEAR OTHERWISE1050 OUTBUF(1)=27 OUTBUF(2)='[' IF(N1.EQ.7)THEN OUTBUF(3)='7' ELSE OUTBUF(3)='0' END IF OUTBUF(4)='m'@C REMOVE BACKSPACE THAT MADE IT NECESSARY TO HAVE JVTINC NONZERO-C SO USE PARAMETER JVTINC=0 WITH THIS ALWAYS. C OUTBUF(5)=8 WRITE(6,4)OUTBUF 4 FORMAT(4A1) RETURNC IGNORE ALL OTHER CODES 1060 RETURN ENDBThis program is typed in from the DECUS DTR newsletter vol 4 no 9.?It consists of several files whose intent is to provide a SIXELAcommand. This command will convert ReGIS files to SIXEL files fordumping to printers like LN03.B DTR graphics can be plotted onto ReGIS files with commandslikeDTR>READY YACHTS.DTR>PLOT X_Y LOA,PRICE OF YACHTS ON YACHTS.SLODTR>EXITKThe YACHTS.SLO file is a ReGIS file. While DECSlide will do the conversion,it's expensive.FSIXEL can run interactively, using output logical DISPLAY$DEVICE which<defaults to TT:. It must be able to allocate DISPLAY$DEVICE.[File SIXEL.CLD] DEFINE VERB SIXEL2 IMAGE "APPLICATIONS$DISK:CONVERT_TO_SIXEL" PARAMETER P1" LABEL = REGIS_FILE. VALUE (TYPE = $FILE, REQUIRED)+ PROMPT = "ReGIS Input File" PARAMETER P2" LABEL = SIXEL_FILE- VALUE (DEFAULT = "SIXEL.SLS") QUALIFIER LOCAL NONNEGATABLE" PLACEMENT = GLOBAL QUALIFIER RESET NONNEGATABLE" PLACEMENT = GLOBAL QUALIFIER GRAPH_TYPE+ VALUE (TYPE=GRAPH_KEYWORDS) NONNEGATABLE" PLACEMENT = GLOBAL% DISALLOW SIXEL_FILE AND LOCAL" DEFINE TYPE GRAPH_KEYWORDS" KEYWORD COMPRESSED KEYWORD EXPANDED KEYWORD ROTATED[END OF SIXEL.CLD]B To use to create a SIXEL file from a ReGIS file you'd givea command like$SIXEL YACHTS.SLO YACHTS.SLS)which uses the default VT240 ReGIS setup.'To make a rotated graph use the command/$SIXEL/GRAPH_TYPE=ROTATED YACHTS.SLO YACHTS.SLS,GRAPH_TYPE=EXPANDED or GRAPH_TYPE=COMPRESSEDAcan be used by instructing the VT240 to do expanded or compressedgraphs.#The following is an example of use:$! Make sixel file for print...$!1st, create the ReGIS file.$DTR Ready YACHTS2 Plot X_Y LOA,price of YACHTS on YACHTS.SLO Exit$!:$ DEFINE DISPLAY$DEVICE _TTA6: ! TTA6: IS A VT240.$ SIXEL/GRAPH=EXPANDED YACHTS.SLO MY_GRAPH.SIX$ PRINT MY_GRAPH.SIXDNote that a real VT240 is needed since the ReGIS to SIXEL conversionis done in hardware on that. Note that the command$SET HOST 0/log=logfileCcould be used to capture characters sent to a VT240 in logfile if a>ReGIS plot package that has no file output provisions is used.[file SIXEL.FOR] PROG00j<]Zi0][Z[[[\[}RAM CONVERT_TO_SIXELC VERSION 1.0CC Functional description:CGC This program will convert a ReGIS graphics file (such as one producedGC by DTR) and produce a SIXEL graphics file suitable for printing on anCC appropriate printer (LA50, LA100, LN03, etc.). It was written byFC Donald E. Stern mainly to get around the need for DECSlide to createRc Sixel files because DECslide isn't cheap, and DECSlide can't be used from batch.cAc Since the sixel conversion is a hardware function of a graphicsEc terminal, the program requires use of a ReGIS terminal. This deviceGc is defined by the logical DISPLAY$DEVICE. For an interactive terminal!c one must make a definition likec DEFINE DISPLAY$DEVICE TT:CEc If there is no translation for DISPLAY$DEVICE, this definition willCc be assumed. In addition the device should be set to REGIS and the)c program will abort if this is not done.cCc The specified ReGis file is opened and sent to display$device andBc then the required sequences which set graphics to host are sent,Cc followed by commands to enter REGIS and initiate hardcopy output.cFc The appropriate terminal characteristics are set and successive QIOsCc are issued to read the SIXEL data which returns a byte at a time.;c The end is signalled by receipt of the byte after the 3rdCc character is detected. The sixel data is collected in a 255?c character buffer which is written to disk when full. Thus theBc sixel file can be edited with a standard text editor if desired.c<c Input comes from the commandline interpreter, specificallyDc cli$get_value and cli$present. The SIXEL.CLD file [above] contains8c the necessary information to define the SIXEL command.cGc Switches /graph_type, /reset, and /local are optional. If /graph_typeKc is EXPANDED the sixel output is about 12 by 8 inches, ROTATED gives aboutIc 8 x 12 inches, and rotated 90 degrees (fits on normal 8.5 by 11 paper)..c COMPRESSED gives a plot about 6 by 3 inches.cDc If /local is set, sixel output goes to a printer attached directly7c to display$device and no sixel-file-sopec is allowed.cGc If /reset is specified, display$device will be set to COMPRESSED modeCc before exiting; otherwise it's left in the mode set by GRAPH_TYPE c options.c!c Created 1986 Warner-Lambert Co.c Consumer Health Products Grp.c Milford, Conn. 06460c%c Author: Donald E. Stern, Jr. 2/4/86c*c Execution environment: VMS V4.2 or latercc Functions calledc@c GET_TERMINAL_CHARACTERISTICS - Internally developed routine toc get terminal characs.c@c SET_TERMINAL_CHARACTERISTICS - Internally developed routine toc set terminal characs.c SYS$QIOW - SYNCH. QIO)C SYS$ASSIGN - Assign chnl # to device$c cli$present - RTL CLI arg detect%c cli$get_value - RTL CLI arg fetch,c lib$sys_trnlog - translate logical name(c li$set_logical - create logical name c lib$getdvi - get device infocc sys$qio structures# INTEGER*2 INPUT_CHAN ! I/O CHANNEL INTEGER CODE, ! TYPE OF I/O OP3 1 INPUT_BUFFER_SIZE, ! INPUT BUF SIZE, BYTES+ 2 INPUT_SIZE ! SIZE OF INPUT AS READ PARAMETER (INPUT_BUFFER_SIZE=1)CC TERM CHARAC BUFFER BYTE CLASS, 1 TYPE INTEGER*2 WIDTH INTEGER*4 BASIC,EXTENDED4 INTEGER*4 OLD_BASIC,OLD_EXTENDED ! OLD TERM CHARACSC C I/O OP DEFSC INCLUDE '($IODEF)'CC TERM I/O OP MODIFIERSC INCLUDE '($TTDEF)' INCLUDE '($TT2DEF)'CC SYS SERVICE DEFSC INCLUDE '($SSDEF)'CC DEVICE INFO DEFSCC INCLUDE '($DVIDEF)' INCLUDE '($DCDEF)'CC QIO STAT BLK STRUCTURE /IOSTAT_BLOCK/# INTEGER*2 IOSTAT, ! RETURN STATUS8 1 TERM_OFFSET, ! LOCATION OF LINE TERMINATOR0 2 TERMINATOR, ! VALUE OF TERMINATOR/ 3 TERM_SIZE ! SIZE OF TERMINATOR END STRUCTURE RECORD /IOSTAT_BLOCK/ IOSBC C SUBPROGRAMSC- INTEGER*4 SYS$ASSIGN, SYS$QIOW, CLI$PRESENT,5 1 CLI$GET_VALUE,LIB$SYS_TRNLOG,LIB$SET_LOGICAL, 2 LIB$GETDVI# INTEGER00jD]7]ZYTADATADATADATADATADATA*4 STATUS ! RETURN STATUS3 INTEGER*4 DEVICE_CLASS ! CLASS RETURNED BY GETDVIC2 BYTE ENTER_REGIS(4) ! ESC SEQ TO ENTER REGIS MODE! BYTE EXIT_REGIS(2) ! EXIT REGIS& BYTE LOCK_KEYBOARD(4) ! LOCK KEYBOARD BYTE UNLOCK_KEYBOARD(4) BYTE GRAPHICS_TO_HOST(5) BYTE GRAPHICS_TO_PRINTER(5) BYTE EXPANDED_PRINT(6) BYTE ROTATED_PRINT(6) BYTE COMPRESSED_PRINT(6)( INTEGER*2 NR, ! # CHARS IN REGIS_FILE/ 1 NS, ! # CHARS IN SIXEL-FILE. 2 NG, ! # CHARS IN QUALIFIER0 3 NT ! # CHARS IN TRANSLATION/ CHARACTER*2 EXIT_GRAPHICS ! SAME AS EXIT_REGIS- CHARACTER*10 GRAPH_TYPE ! CMD LINE QUALIFIERC CHARACTER*13 MAKE_HARDCOPY ! REGIS INST TO MAKE GRAPHICS HARDCOPY CHARACTER*255 REGIS_FILE CHARACTER*255 SIXEL_FILE1 CHARACTER*255 TRANSLATION ! LOG NAME TRANSLATION4 CHARACTER*256 BUFF ! BUFFER FOR REGIS & SIXEL FILESC LOGICAL QUIT* EQUIVALENCE (EXIT_REGIS(1),EXIT_GRAPHICS)' DATA ENTER_REGIS /27,80,49,112/ ! $Plp data exit_regis /27,92/ ! $\) data lock_keyboard /27,91,50,104/ ! $[2h+ data unlock_keyboard /27,91,50,108/ ! $[2l0 data graphics_to_host /27,91,63,50,105/ ! $[?2i3 data graphics_to_printer /27,91,63,48,105/ ! $[?0i2 data expanded_print /27,91,63,52,51,104/ ! $[?43h1 data rotated_print /27,91,63,52,55,104/ ! $[?47h3 data compressed_print /27,91,63,52,51,108/ ! $[43l% data make_hardcopy /'S(H(P[50,0]))'/CBC SEE IF THERE'S A TRANSLATION OF DISPLAY$DEVICE AND IF NOT ASSIGN C TT: TO IT.: STATUS=LIB$SYS_TRNLOG('DISPLAY$DEVICE',NT,TRANSLATION,,,) IF (STATUS .EQ. SS$_NOTRAN); 1 STATUS= LIB$SET_LOGICAL('DISPLAY$DEVICE','TT:',,,) IF (.NOT. STATUS); 1 STOP 'Error translating or defining DISPLAY$DEVICE'C$C ENSURE DISPLAYDEVICE IS A TERMINAL CODE=DVI$_DEVCLASS8 STATUS=LIB$GETDVI(CODE,,'DISPLAYDEVICE',DEVICE_CLASS,,) IF (STATUS.EQ.SS$_NOSUCHDEV)0 1 STOP 'Error - DISPLAY$DEVICE is unknown'8 If (.not.status)STOP 'Error getting device information' IF (DEVICE_CLASS.NE.DC$_TERM)7 1 STOP 'ERROR- DISPLAY$DEVICE is not a terminal.'"C ASSIGN CHANNEL TO DISPLAY$DEVICEC GET #1 STATUS=SYS$ASSIGN('DISPLAY$DEVICE',INPUT_CHAN,,)C STOP ON ERRORS IF (.NOT.STATUS) 8 1 STOP 'Error assigning channel to DISPLAY$DEVICE'C'C GET AND SAVE TERMINAL CHARACTERISTICS4 CALL GET_TERMINAL_CHARACTERISTICS(INPUT_CHAN,CLASS,! 1 TYPE,WIDTH,BASIC,EXTENDED) OLD_BASIC=BASIC OLD_EXTENDED=EXTENDEDC CHECK REGIS TERM$ IF((EXTENDED.AND.TT2$M_REGIS).EQ.0): 1 STOP 'DISPLAY$DEVICE must be set to support ReGIS'CC USE CLI TO GET INPUTS1 STATUS=CLI$GET_VALUE('REGIS_FILE',REGIS_FILE,NR). IF(.NOT.STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) IF(CLI$PRESENT('SIXEL_FILE'))8 1 STATUS=CLI$GET_VALUE('SIXEL_FILE',SIXEL_FILE,NS). IF(.NOT.STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) IF(CLI$PRESENT('GRAPH_TYPE'))8 1 STATUS=CLI$GET_VALUE('GRAPH_TYPE',GRAPH_TYPE,NG). IF(.NOT.STATUS) CALL LIB$SIGNAL(%VAL(STATUS))C OPEN INPUT FILE# OPEN(UNIT=1,NAME=REGIS_FILE(1:NR),) 1 ACCESS='SEQUENTIAL',STATUS='OLD',8 2 READONLY,FORM='FORMATTED',RECORDTYPE='VARIABLE',( 3 CARRIAGECONTROL='LIST',ERR=1100)3C ASSOC LUN 7 WITH DISPLAY$DEVICE FOR LARGE RECORDS- OPEN(UNIT=7,NAME='DISPLAY$DEVICE',RECL=1024, 1 STATUS='OLD',ERR=1200)CC LOCK KEYBOARD WRITE(7,18)LOCK_KEYBOARD18 FORMAT('$',4A1)C&C READ REGIS CODE AND DISPPAY TO LUN 7C+20 READ(1,25,END=100,ERR=1300)NC,BUFF(1:NC)25 FORMAT(Q,A) WRITE(7,27)BUFF(1:NC)27 FORMAT('+',A) GOTO 20C LOOPS TILL EOF100 CLOSE(UNIT=1)C C OPEN NEW FILE FOR SIXEL OUTPUT# OPEN(UNIT=1,NAME=SIXEL_FILE(1:NS),) 1 ACCESS='SEQUENTIAL',STATUS='NEW',1 2 FORM='UNFORMATTED',RECORDTYPE='VARIABLE',( 3 CARRIAGECONTROL='LIST',ERR=1400)C'C SET REQUIRED TERMINAL CHARACTERISTICSC BASIC=BASIC.OR.> 1 TT$M_HOSTSYNC .OR. TT$M_NOBRDCST .OR. TT$M_NOECHO .OR. 2 TT$M_TTSYNC BASIC=IBCLR(BASIC,TT$V_WRAP)3 BASIC=IBCLR(BASIC,TT$V_EIGHTBIT) ! USE 7 BIT CODES2 EXTENDED=EXTENDED.OR.TT00jL]Zi0][Z[[[\[}2$M_PASTHRU .OR. TT2$M_XON4 CALL SET_TERMINAL_CHARACTERISTICS(INPUT_CHAN,CLASS," 1 TYPE,WIDTH,BASIC,EXTENDED)C#C SET UP TERMINAL TO PRINT GRAPHICSC* IF(GRAPH_TYPE(1:NG) .EQ. 'EXPANDED') THEN WRITE(7,102)EXPANDED_PRINT MAKE_HARDCOPY(7:7)='0' ENDIF) IF(GRAPH_TYPE(1:NG) .EQ. 'ROTATED') THEN WRITE(7,102)ROTATED_PRINT MAKE_HARDCOPY(7:7)='0' ENDIF IF(GRAPH_TYPE(1:NG).EQ.2 1 'COMPRESSED') WRITE(7,102)COMPRESSED_PRINT!101 FORMAT('+',2A1,5A1,4A1,A13,$)102 FORMAT('+',6A1,$)103 FORMAT('+',2A1,4A1,A13,$)104 FORMAT('+',2A1,4A1,$)9 IF(CLI$PRESENT('LOCAL'))THEN ! HARDCOPY TO LOCAL PRINTER2 WRITE(7,103)EXIT_REGIS,ENTER_REGIS,MAKE_HARDCOPY( WRITE(7,104)EXIT_REGIS,UNLOCK_KEYBOARD ELSE* WRITE(7,101)EXIT_REGIS,GRAPHICS_TO_HOST,! 1 ENTER_REGIS,MAKE_HARDCOPY N = 1 ! POSITION IN BUFF NESC = 0 ! COUNTER OF ESCS QUIT = .FALSE./ CODE = IO$_READVBLK ! I/O CODE = READ VIRTUAL200 STATUS=SYS$QIOW(,+ 1 %VAL(INPUT_CHAN), ! DISPLAY$DEVICE* 2 %VAL(CODE), ! READ VIRT BLK' 3 IOSB,,, ! I/O STATUS) 4 %REF(BUFF(N:N)), ! INPUT BUFFER4 5 %VAL(INPUT_BUFFER_SIZE),,,,) ! BUFFER SIZE  IF(.NOT.STATUS)GOTO 1000 IF(.NOT.IOSB.IOSTAT) GOTO 1000 IF(QUIT) GOTO 250C CHECK FOR ESC AND COUNT' IF(BUFF(N:N) .EQ. CHAR(27))NESC=NESC+1 IF(NESC.EQ.3) QUIT=.TRUE.%C FLAG QUIT FOR CHAR AFTER 3RD ESCAPECC WRITE BUFFER IF FULL IF(N.EQ.255)THEN WRITE(1)BUFF(1:255) N=0 ENDIF N = N+1! GOTO 200 ! LOOP FOR WHOLE IMAGE250 WRITE(1)BUFF(1:N) CLOSE(UNIT=1)+ WRITE(7,252)EXIT_GRAPHICS,UNLOCK_KEYBOARD, 1 GRAPHICS_TO_PRINTER252 FORMAT('+',A2,4A1,5A1) ENDIFC C RESET TERMINAL CHARACTERISTICS4 CALL SET_TERMINAL_CHARACTERISTICS(INPUT_CHAN,CLASS,* 1 TYPE,WIDTH,OLD_BASIC,OLD_EXTENDED)5 IF(CLI$PRESENT('RESET'))WRITE(7,102)COMPRESSED_PRINT STOP 'Conversion completed'$c The following lines process errors 1000 CONTINUE+ WRITE(7,252)EXIT_GRAPHICS,UNLOCK_KEYBOARD, 1 GRAPHICS_TO_PRINTER4 CALL SET_TERMINAL_CHARACTERISTICS(INPUT_CHAN,CLASS,* 1 TYPE,WIDTH,OLD_BASIC,OLD_EXTENDED) STOP 'ERROR READING SIXEL'$1100 STOP 'ERROR OPENING REGIS FILE'1200 STOP 'ERROR READING LUN 7'$1300 STOP 'ERROR READING REGIS DATA'$1400 STOP 'ERROR OPENING SIXEL FILE' END9 SUBROUTINE GET_TERMINAL_CHARACTERISTICS (CHANNEL,+ 1 CLASS, TYPE, WIDTH, BASIC,EXTENDED)C0C GETS TERMINAL CHARS IN INPUTS BASIC, EXTENDED. INTEGER*2 CHANNEL BYTE CLASS BYTE TYPE INTEGER*2 WIDTH INTEGER*4 BASIC,EXTENDEDC C I/O OP DEFS INCLUDE '($IODEF)'C QIO STAT BLK STRUCTURE /IOSTAT_BLOCK/ INTEGER*2 IOSTAT7 BYTE TRANSMIT,RECEIVE,CRFILL,LFFILL,PARITY,ZERO END STRUCTURE" RECORD /IOSTAT_BLOCK/ IOSBCC CHARAC. BUFFER# STRUCTURE /CHARACTERISTICS/ BYTE CLASS,TYPE INTEGER*2 WIDTH INTEGER*4 BASIC,EXTENDED END STRUCTURE( RECORD /CHARACTERISTICS/ CHARBUFC INTEGER*4 SYS$QIOW INTEGER*4 STATUSCC GET CHARACS NOW. STATUS=SYS$QIOW(, 1 %VAL(CHANNEL), 2 %VAL(IO$_SENSEMODE), 3 IOSB,,, 4 CHARBUF,& 5 %VAL(12),,,,) ! 12 BYTE BUFFERC4 IF(.NOT.STATUS)CALL LIB$SIGNAL(%VAL(STATUS))? IF(.NOT. IOSB.IOSTAT)CALL LIB$SIGNAL(%VAL(IOSB.IOSTAT))CC RETURN TERM CHARACS TO CALLER CLASS = CHARBUF.CLASS TYPE = CHARBUF.TYPE WIDTH = CHARBUF.WIDTH BASIC = CHARBUF.BASIC# EXTENDED = CHARBUF.EXTENDED RETURN END9 SUBROUTINE SET_TERMINAL_CHARACTERISTICS (CHANNEL,+ 1 CLASS, TYPE, WIDTH, BASIC,EXTENDED)C0C SETS TERMINAL CHARS IN INPUTS BASIC, EXTENDED. INTEGER*2 CHANNEL BYTE CLASS BYTE TYPE INTEGER*2 WIDTH INTEGER*4 BASIC,EXTENDEDC C I/O OP DEFS INCLUDE '($IODEF)'C QIO STAT BLK STRUCTURE /IOSTAT_BLOCK/ INTEGER*2 IOSTAT700jT]kV]lZ]YTADATADATADATADATADATA BYTE TRANSMIT,RECEIVE,CRFILL,LFFILL,PARITY,ZERO END STRUCTURE" RECORD /IOSTAT_BLOCK/ IOSBCC CHARAC. BUFFER# STRUCTURE /CHARACTERISTICS/ BYTE CLASS,TYPE INTEGER*2 WIDTH INTEGER*4 BASIC,EXTENDED END STRUCTURE( RECORD /CHARACTERISTICS/ CHARBUFC INTEGER*4 SYS$QIOW INTEGER*4 STATUS1C SET APPROPRIATE CHARACTERISTICS FROM CALLER NOW CHARBUF.CLASS = CLASS CHARBUF.TYPE = TYPE CHARBUF.WIDTH=WIDTH CHARBUF.BASIC= BASIC# CHARBUF.EXTENDED = EXTENDEDCC GET CHARACS NOW. STATUS=SYS$QIOW(, 1 %VAL(CHANNEL), 2 %VAL(IO$_SETMODE), 3 IOSB,,, 4 CHARBUF,& 5 %VAL(12),,,,) ! 12 BYTE BUFFERC4 IF(.NOT.STATUS)CALL LIB$SIGNAL(%VAL(STATUS))? IF(.NOT. IOSB.IOSTAT)CALL LIB$SIGNAL(%VAL(IOSB.IOSTAT))C RETURN END SUBROUTINE SLEND(RETCD)#C COPYRIGHT (C) 1983 GLENN EVERHARTE@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY.E INCLUDE 'VKLUGPRM.FTN'OC PARAMETER RRW = 32C PARAMETER RCL = 32C RRW=MAX REAL ROWSUC RCL=MAX REAL COLSR:C RRW MUST BE 1 LARGER TO HANDLE 1ST 27 VARIABLES IN AVBLS#C VBLS AND TYPE DIMENSIONED RRW,RCL4C **************************************************4C * *4C * SUBROUTINE SLEND(RETCD) *4C * *4C **************************************************CECLCR9C SETS VALUE OF LEND, POINTER TO LAST NON-BLANK CHARACTERS C IN LINE(80)IC C CMCEC RETCD VALUE MEANINGCC1C 1 NORMAL RETURN4C 2 ALL BLANKSCZCRCEC SLEND IS CALLED BY CALCZCRCEC MODIFY CLASSES: M2CLCRC VARIABLE USEVC/C BLANK ' ' -C I INDEXES CHARACTERS IN LINE(80).A0C LEND UPON EXIT, POINTS TO THE LAST NON- C BLANK IN LINE(80).!C LINE(80) HOLDS COMMAND LINE. 2C RETCD RETURN CODE. 1=NORMAL, 2=ALL BLANKSCTCoC C SUBROUTINE SLEND(RETCD)R INTEGER*2 LEVEL,NONBLK,LEND INTEGER*2 VIEWSW,BASED,RETCDTCA- LOGICAL*1 ALPHA(27),COMMA,BLANK,RPAR,LPAR,EQO LOGICAL*1 LINE(80)MCT+ COMMON LEVEL,LINE,NONBLK,LEND,VIEWSW,BASEDP- COMMON /CONS/ ALPHA,COMMA,BLANK,RPAR,LPAR,EQ,CLCOCCCD RETCD=1 DO 100 I=1,80! IF(LINE(81-I).NE.BLANK)GO TO 2002 100 CONTINUE RETCD=2 RETURNR 200 LEND=81-I) RETURNL ENDC PORTACALC MAIN PROGRAMC SPREAD SHEET DRIVER PROGRAM#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY. INCLUDE 'VKLUGPRM.FTN'C PARAMETER MXCOLS=6,MXROWS=20C PARAMETER RRW = 32&C PARAMETER RCL = 32 ! REAL ROWS, COLSC PARAMETER DRW = 8-C PARAMETER DCL = 8 ! DISPLAY MAX ROWS, COLS.C PARAMETER RRCL = 1024C PARAMETER RRCL=RRW*RCL=C NOTE: THROUGHOUT, ROWS ARE ACTUALLY DOWN, COLUMNS ACROSS ONAC SCREEN. ROW 0 IN DISPLAY IS THE 27 ACCUMULATORS A-Z AND %, WITH>C % BEING THE LAST-COMPUTED VALUE FROM THE CALC PROGRAM, WHICHAC KNOWS HOW TO ACCESS THE DATA BUT IS JUST PASSED COMMAND STRINGS C FROM THE DISK BASED FILE HERE.C-C VT100 DISPLAY CONTROL PARAMETER DEFINITIONSCG PARAMETER CUP = 1, CUU = 2, CUD = 3, CUF = 4, CUB = 5, DECDWL = 6G $, DECDHL = 7, DECRC = 8, DECSC = 9, DECSWL = 10, ED = 11, EL = 12A $, SGR = 13, NEL = 14, SCS = 15, SM = 16, RM = 17, ANSI = 100l\]Zi0][Z[[[\[}8C PARAMETER TMREFN = 1 INTEGER*2 PRL(6) BYTE NOWRAP ( 2 ) LOGICAL*1 FORM,FVLD,CMDLIN(132) INTEGER*4 VNLT$ DIMENSION FORM(128),FVLD(RRWP,RCLP)AC FVLD FLAG 0 = NO FORMULA, -1= DISPLAY FORMULA ITSELF, NOT VALUE=C 1=VALID ACTIVE FORMULA THERE TO EVALUATE. INITIALLY ALL 0'SC SO INITIALLY IGNORE.CDC ROUTINE IN2AS COMPUTES ASCII CHARACTER NAMES OF SUBSCRIPTS IN1,IN2=C SO DISPLAY CAN HAVE THEM. IT MUST BE THE INVERSE OF VARSCN. INTEGER*2 RRWACT,RCLACT COMMON/RCLACT/RRWACT,RCLACT/ integer*2 idol1,idol2,idol3,idol4,idol5,idol6, 1 IDOL7,IDOL82 common/dollr/idol1,idol2,idol3,idol4,idol5,idol6, 1 IDOL7,IDOL8( INTEGER*2 PROW,PCOL,DROW,DCOL,DRWV,DCLV* COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRWV,DCLV( DIMENSION NRDSP(DRW,DCL),NCDSP(DRW,DCL) COMMON/D2R/NRDSP,NCDSP& INTEGER*2 IPGMAX,LPGMXF,IPGMOD,LPGMOD* COMMON/FILEMX/IPGMAX,LPGMXF,IPGMOD,LPGMODBC LENGTHS (IN K) OF FILES FOR VALUES OR FORMULAS ARE IPGMAX,LPGMXFCC IPGMOD AND LPGMOD CONTROL PACKING MODE IN THE CORRESPONDING FILES LOGICAL*1 OARRY(100),FORM2(4) INTEGER*2 OSWIT,OCNTR COMMON/OAR/OSWIT,OCNTR,OARRY+C COMMON OAR SWITCHES OUTPUT OFF IF OSWIT=2" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9) INTEGER*2 KLVL COMMON/KLVL/KLVL INTEGER*2 IOLVL COMMON/IOLVL/IOLVLDC IOLVL IS LUN FOR XQTCMD TO USE (NORMALLY 3 FOR INDIRECT FILES OR 5?C FOR TERMINAL. WE USE 5,6 FOR TERMINAL INPUT, OUTPUT NORMALLY.) LOGICAL*1 AVBLS(20,27),VBLS(8,RRWP,RCLP) REAL*8 XXV(RRWP,RCLP)" EQUIVALENCE(XXV(1,1),VBLS(1,1,1)) COMMON/V/TYPE,AVBLS,VBLS,VLENFC DEFFMT IS THE DEFAULT FORMAT FOR NUMERICS. INITIALLY IT WILL BE F9.2 LOGICAL*1 DEFFMT(10),DVFMT(12) EQUIVALENCE(DVFMT(2),DEFFMT(1)) COMMON/DEFVBX/DVFMT LOGICAL*1 NMSH(80) COMMON/NMSH/NMSH INTEGER*2 XTCFG,IPSET,XTNCNT LOGICAL*1 XTNCMD(80)) COMMON/XCMD/XTNCNT,XTNCMD,XTCFG,IPSETC VARY FLAG ITERATION COUNT INTEGER KALKIT COMMON/VARYIT/KALKIT INTEGER*2 FORMFG,RCFGX,PZAP COMMON/FFGG/FORMFG,RCFGX,PZAP)C FORMFG FLAGS FORMAT OF DISPLAY GLOBALLY>C RCFGX FLAGS WHETHER TO DO AUTO RECALCULATION. IF 1, INHIBITS=C AUTO RECALC (USE R COMMAND TO DO A CALC.). RM COMMAND TURNS C RCFGX ON.?C PZAP CONTROLS WHETHER TO REDRAW SCREEN. IF ZERO, NORMAL. IF 1>C (NONZERO ANYHOW), INHIBITS RE DISPLAY. V COMMAND RESETS TO 0 C AND VM INHIBITS. (SETS TO 1).CCC DISPLAY ARRAY WILL KEEP A COPY OF VARIABLES DISPLAYED AND FORMATSAC USED LOCALLY WHICH DISPLAY ROUTINE CAN USE TO SEE WHAT ACTUALLYBC NEEDS TO BE REFRESHED ON SCREEN. DRWV AND DCLV ARE COLS, ROWS OF#C DISPLAY ACTUALLY USED FOR SCREEN. INTEGER*2 CWIDS(DRW)HC CWIDS IS WIDTHS IN CHARACTERS OF COLUMNS ON DISPLAY. NOTE THAT BECAUSEHC OF PECULIAR INVERSION WHICH I AM TOO LAZY TO CORRECT IT IS DIMENSIONEDC AS DRW NOT DCL. INTEGER*4 I4TMP REAL*8 DVS(DRW,DCL) COMMON /FVLDC/FVLDC BITMAPC LOGICAL*1 IBITMPC DIMENSION IBITMP(BRRCL)C COMMON/INITD/IBITMPC LOGICAL*1 DFMTS(10,DRW,DCL)C 10 CHARACTERS PER ENTRY. COMMON/DSPCMN/DVS,CWIDS DATA NOWRAP / "24,0 /7C INITIAL DEFAULT FORMAT FOR NUMERICS is set at runtimeC SET UP TERMINAL%C SET IT NOWRAP, NO CARRIAGE CONTROL. IDOL7=1C IDOL7=1 MEANS SCROLL ENABLED-C SETUP INITIAL DISPLAY LIMITS ACTUALLY USED. RRWACT=1 RCLACT=1 IOLVL=5 DRWV=MXCOLS DCLV=MXROWS KLVL=1 KALKIT=0 ICODE=0 idol3=0 idol4=0 idol5=20000 idol6=20000 RCFGX=0 FORMFG=0"C CALL GETADR ( PRL, NOWRAP ) PRL ( 2 ) = 2CC WTQIO issues I/O to set multiple characteristics of your terminalDC to turn off system's auto-wrap. If this is different either set itC first by hand or modify.(C CALL WTQIO ( SFSMC, 5, 2,,, PRL )C CALL ASSIGN(6,'TI:')C CALL ASSIGN(5,'TI:')<C must be able to turn off FORTRAN carriage control somehow.< OPEN ( UNIT = 5, FILE='TI:',CARRIAGECONTROL = 'NONE' )< OPEN ( UNIT = 6, FILE='TI:',CARRIAGECONTROL = 'NONE' )C CHANGE TI: TO TT: FOR VMS CALL UVT100(ANSI))C PERFORM SYSTEM DEPENDENT INITIALIZATION CALL TTYINIC-C PERFORM ERROR TRAPPER CALLS HERE AS NEEDED.DC SET MOST ERR00ld]V]lZ]YTADATADATADATADATADATAORS TO CONTINUE, WITH FILE ERRORS CONTINUATION ON ERR= C PROCESSING.5C FOR THE MOMENT COMMENT OUT AND FILL IN WITH VERSIONC TAILORED TO DESIRED OS DO 6988 KK=68,943 IF(KK.EQ.69.OR.KK.EQ.85.OR.(KK.GE.76.AND.KK.LE.79)- 1 .OR.(KK.GE.87.AND.KK.LE.90))GOTO 69882 CALL ERRSET(KK,.TRUE.,.FALSE.,.FALSE.,.FALSE.,15) 6988 CONTINUE2 CALL ERRSET(59,.TRUE.,.FALSE.,.FALSE.,.FALSE.,15)2 CALL ERRSET(61,.TRUE.,.FALSE.,.FALSE.,.FALSE.,15)2 CALL ERRSET(63,.TRUE.,.FALSE.,.FALSE.,.FALSE.,15)2 CALL ERRSET(64,.TRUE.,.FALSE.,.FALSE.,.FALSE.,15)C)CC SET UP ENDFILE TO USE ERR= TYPE RETURN1 CALL ERRSET(24,.TRUE.,.TRUE.,.FALSE.,.FALSE.,15)CC NO SUCH FILE USES ERR= TOO.1 CALL ERRSET(29,.TRUE.,.TRUE.,.FALSE.,.FALSE.,15)?CC THAT'S IT. ERRSET ROUTINE WON'T ALWAYS ACCEPT NO ERR= RETURNBCC BUT THAT'S AS IT SHOULD BE. NOTICE THIS CLEANS THE DISPLAY VERYACC CONSIDERABLY AND MAKES PROGRAM CRASHES DUE TO USER ERRORS MUCHCC LESS LIKELY.C CALL UVT100(RM,8) CALL UVT100(ED,2) CALL UVT100(SCS,0,1) CALL UVT100(SCS,1,2) CALL UVT100(CUP,5,10)'C ZERO THE VARIABLES TO START OFF WITH. DO 2070 KK=1,20 DO 2070 KKK=1,272070 AVBLS(KK,KKK)=0C SKIP ZEROING VARIABLES... C CALL WSSETC WSSET SETS UP WORK SPACEC DO 2071 KK=1,RRWC DO 2071 KKK=1,RCLC2071 XXV(KK,KKK)=0.C SET UP WORK ARRAY BITMAP CALL WRKFIL(1,FORM,2) CALL UVT100(SGR,7) WRITE(6,3010)3010 FORMAT('Analyti!Calc-11') CALL UVT100(CUP,6,12) WRITE(6,3278)3278 FORMAT('V12-08A') CALL UVT100(CUP,7,15) CALL UVT100(SGR,0)c WRITE(6,3011)c3011 FORMAT('or')c CALL UVT100(CUP,9,11)c WRITE(6,3012)c3012 FORMAT('AnalytiCalc') CALL UVT100(CUP,11,3) WRITE(6,3013))3013 FORMAT(' .... The Analyst''s Tool') CALL UVT100(CUP,13,5) WRITE(6,3014)43014 FORMAT(' by Glenn and Mary Everhart, (C) 1983') CALL UVT100(CUP,16,1)C NOW GET ON WITH USEFUL WORK. PRL ( 2 ) = 1 PRL ( 3 ) = 0 CALL UVT100 ( ANSI )!C RESET MODE 8 (VT100 AUTOREPEAT)C CALL UVT100 ( RM, 8 )2C RESET MODE 5 (I.E., SCREEN TO BLACK BACKGROUND).C CALL UVT100 ( RM, 5 ) KWID=10C KMAP=1 C GOTO 3000 3002 CONTINUEC CALL UVT100(CUP,1,1)C WRITE(6,3003)-C3003 FORMAT(' Alter Display Windows [Y/N]:')(C READ(IOLVL,3006,END=5600,ERR=5600)NMSH0C IF(NMSH(1).NE.'Y'.AND.NMSH(1).NE.'y')GOTO 3000CC ALTER MAPPING DESIREDC WRITE(6,3001)6C3001 FORMAT(' ENTER NEW GLOBAL COLUMN WIDTH, 1-120:')(C READ(IOLVL,3004,END=5600,ERR=5600)KWIDC3004 FORMAT(I3)%C IF(KWID.LT.1.OR.KWID.GT.120)KWID=10C WRITE(6,3008)<C3008 FORMAT(' Reset display to Upper Left of sheet [Y/N]:')(C READ(IOLVL,3006,END=5600,ERR=5600)NMSH-C IF(NMSH(1).NE.'Y'.AND.NMSH(1).NE.'y')KMAP=0 3000 CONTINUE idol5=20000 idol6=20000<C INITIALLY SET JRCL TO RCL = NO. OF ROWS TO BE IN WORK FILE JRCL=RCL PZAP=0 XTCFG=0 IPSET=0 C ZERO BITMAPC DO 36 N1=1,BRRCLC36 IBITMP(N1)=0 LINIZZ=0 CALL UVT100(CUP,14,1) WRITE(6,3588)?3588 FORMAT('Enter new floating numeric format default [Y/N]:')' READ(IOLVL,3006,END=5600,ERR=5600)NMSH IF(NMSH(1).NE.'Y')GOTO 3589C ENTER NEW DEFAULT.6888 CALL UVT100(CUP,14,1) CALL UVT100(EL,2)#C LINE NOW ERASED... GET NEW FORMAT WRITE(6,3590)/3590 FORMAT('Enter new format. Suggest F10.2>')' READ(IOLVL,3006,END=5600,ERR=5600)NMSH;C NOW HAVE HIS DESIRED FORMAT. COPY INTO THE DEFAULT ARRAY.C DEFFMT IS THAT. DO 3591 N1=1,10 KKK=NMSH(N1) KKK=MAX0(32,KKK)C ASSUME NMSH COMPLETELY INIT'D3591 DEFFMT(N1)=KKK.C CHECK ITS LEGALITY BY TRYING TO USE IT ONCE. XX=3.14159! ENCODE(78,DVFMT,NMSH,ERR=6888)XX)C FAILSAFE: RE-ASK IF IT CAN'T ENCODE PI.?C IF IT FAILS, PROGRAM WILL CRASH AND FILE WON'T GET CLOBBERED. 3589 CONTINUE CALL UVT100(CUP,15,1) WRITE(6,3005)%3005 FORMAT(' Title of Spreadsheet:')' READ(IOLVL,3006,END=5600,ERR=5600)NMSH3006 FORMAT(80A1)(C ****** IF S OPTION GIVEN THEN ICODE=-2>C THEREFORE, DON'T ASK DISK SIZE ETC, BUT ALLOW RESET OF TITLEC AND DEFAULT FORMATS. IF(ICODE.EQ.-2) GOTO 7831C ****** CALL UVT100(CUP,16,1) WRITE(6,2056))2056 FORMAT(' 00ll]Zi0][Z[[[\[}Give Max Rows to be used:')% READ(IOLVL,7202,END=5600,ERR=5600)KR IF(KR.LE.0.OR.KR.GT.RCL)KR=RCL CALL UVT100(CUP,17,1) WRITE(6,2057))2057 FORMAT(' Give Max Cols to be used:')% READ(IOLVL,7202,END=5600,ERR=5600)KC IF(KC.LE.0.OR.KC.GT.RRW)KC=RRW KKK=(KR-1)*RRW+KC XKKKK=KR*KC XKDF=XKKKK/64. XKDN=XKKKK/100..C COMPUTED ABOVE THE MIN # OF K FOR DISK FILES CALL UVT100(CUP,18,1) WRITE(6,2058)XKDN,XKDFB2058 FORMAT(' Mins=',F9.0' K Value file, ',F9.0,' K Formula file')#C KKK IS MAX INDEX TO BE USED HERE. CALL UVT100(CUP,21,1) WRITE(6,7201)47201 FORMAT(' Give disk size (K) for Value Memory:')) READ(IOLVL,7202,END=5600,ERR=5600)IPGMAX7202 FORMAT(I6) IPGMOD=KKK IF(IPGMAX.LT.0)IPGMOD=0 IPGMAX=IABS(IPGMAX)) IF(IPGMAX.LE.0.OR.IPGMAX.GT.512)IPGMAX=1 CALL UVT100(CUP,22,1) WRITE(6,7203)67203 FORMAT(' Give disk size (K) for Formula Memory:')) READ(IOLVL,7202,END=5600,ERR=5600)LPGMXF LPGMOD=KKK IF(LPGMXF.LT.0)LPGMOD=0 LPGMXF=IABS(LPGMXF)@C IF NUMBERS ARE ENTERED NEGATIVE, SET MODE TO "SLOW, FILE-SPACE4C CONSERVING" PACKING, SCATTERING PAGES ACROSS FILE.5 IF(LPGMXF.LE.0.OR.LPGMXF.GT.1024)LPGMXF=(IPGMAX*3)/2$C NULL TERMINATE ALL FORMAT STRINGS.IC SET DEFAULT WIDTHS OF COLUMNS TO 10. MAY BE ALTERED BELOW FOR DIFFERENTC DEFAULT IF DESIRED. DO 16 N1=1,DRW CWIDS(N1)=KWID 16 CONTINUEFC SET MAX WIDTH FOR PRINT TO DIMENSION OF THE BUFFER. NOTE THIS IS THEBC USUAL HARDWARE MAXIMUM SO WE DON'T WORRY TOO MUCH ABOUT IT. NOTEEC BILL TABOR'S PROGRAM TO PRINT PASTE-ABLE VERSIONS OF THE SHEET FROMDC SAVE FILES EXISTS, SO WE NEEDN'T WORRY TOO MUCH EITHER ABOUT USINGC DISPLAY FOR DOUBLE DUTY. MXL=1324C INITIALIZE WORK STORAGE FOR FORMULAS AND VARIABLES CALL WSSETCC NOW SET UP NRDSP, NCDSPC IF(KMAP.EQ.0)GOTO 3009 DO 5 N1=1,DRW DO 5 N2=1,DCL9C INITIALLY WE DISPLAY THE UPPER LEFT PART OF THE SYSTEM.?C ESTABLISH ASSOCIATION INITIALLY THEREFORE OF DISPLAY TO UPPERC LEFT OF PHYSICAL SHEET. NRDSP(N1,N2)=N1 NCDSP(N1,N2)=N2+1 DVS(N1,N2)=.00000031 5 CONTINUEBC FOR S OPTION USE SECRET -4 CODE TO RESET SHEET. STILL NEEDS WORKC IN PORTACALC PC.)3009 IF(ICODE.EQ.-4)CALL WRKFIL(1,FORM,2) IF(ICODE.EQ.-4)GOTO 1 7831 CONTINUEC43 CALL UVT100(CUP,21,1) KZPPD=0 CMDLIN(1)=0 IOLDFL=03017 FORMAT(Q,80A1,80A1) MXL=1 CMDLIN(MXL+1)=03572 FORMAT(I6) CALL UVT100(SGR,0))C SET UP RANDOM FILE AS NEEDED FOR SHEETC EACH RECORD HAS:C CHARS 1-110 FORMULAS/C CHARS 120-128 DISPLAY FORMAT (INITIALLY F9.2).C CHAR 119 VALID FLAG (ALLOWS HANDLING READS.)9C values: -3, -2: Numeric-only text (or special chars) C -1 : Alphanumeric textC 0 : Uninitialized#C 1 : Alphanumeric formulaCC +2 : Number or pure numeric formula with value calculatedEC +3 : Number or pure numeric formula, value not yet computed,C CHAR 118 MAGIC NUMBER 15 (CHECKS ALL WELL)-C READ A RECORD, IF ERROR, CREATE EMPTY FILE.C IF(IOLDFL.EQ.0)GOTO 1MCC IF IOLDFL NONZERO IT MEANS USER CLAIMS THERE EXISTS A FILE. IF 0 IT'S NEW.2CC HERE IT'S OLD SO LET'S BE SURE IT REALLY IS OK. 1 CONTINUEGC HIT EOF OR ERROR. MUST BE A NEW FILE. THEREFORE ZERO IT TO OUR NEEDS.?C AT THIS POINT WE ARE CREATING A NEW FILE AND NEED TO ZERO IT.C DO 3 N=1,128 FORM(N)=0 3 CONTINUE DO 3592 N=1,9C SET UP DEFAULT FORMAT3592 FORM(119+N)=DEFFMT(N) FORM(118)=15 FORM(1)='0' FORM(2)='.'.C CREATE NULL FILE INITIALLY BY RESETTING ALL. JRRCL=RRW*JRCL KZPPD=1C 2 CONTINUE"C COMMON POINT WITH FILE PREPARED. PCOL=2 PROW=1 DCOL=1 DROW=1C IF(IOLDFL.GT.1)GOTO 2000 2000 CONTINUE8C DRAW OUR LABELS AND OTHERWISE INITIALIZE DISPLAY SHEET KZPPD=0 IF(IPSET.NE.0)GOTO 1000 IF(PZAP.EQ.0)CALL UVT100(ED,2) CALL UVT100(CUP,1,1) OSWIT=20 IPRSS=PROW IPCSS=PCOL IDRW=DROW IDCL=DCOL IF(LINIZZ.LE.1)CALL RECALC IF(PZAP.EQ.0)CALL DSPSHT(2) DCOL=IDCL DROW=IDRW PROW=IPRSS PCOL=IPCSSC 1000 CONTINUE IPSET=0 LINIZZ=LINIZZ+1 OSWIT=20-C ISSUE A PROMPT FOR COMMAND AND DO A COMMAND00lt]V]lZ]YTADATADATADATADATADATA ICODE=0 CALL XQTCMD(ICODE) IF(ICODE.LT.30)GOTO 1843C HELP COMMAND AND SIMILAR... IF(ICODE.NE.400)GOTO 1847 CALL DSPSHT(10) ICODE=1)C CODE 10 IS PRINT SECRET CODE TO DSPSHT. GOTO 1843 1847 CONTINUE IF(ICODE.NE.420)GOTO 1849C CLOSE UNIT 1 JUST IN CASE... CLOSE(UNIT=1) KLVL=1 IPRSSS=PROW IPCSSS=PCOL CALL CALC PROW=IPRSSS PCOL=IPCSSS!C CLOSE CONSOLE LUN USED BY CALC. CLOSE(UNIT=1),C CLOSE ANY OTHER LUNS CALC MAY HAVE USED... CLOSE(UNIT=2) CLOSE(UNIT=3) C SET UP FOR REDRAW WHEN BACK... ICODE=-1 GOTO 1843 1849 CONTINUE IF(ICODE.NE.430)GOTO 1845$C TEST FUNCTION, TESTING EXPRESSION.C INHIBIT RECALCULATION... C COMMAND IS IN "XTNCMD" STRING. LLST=MIN0(80,XTNCNT) LFST=1 CALL DOENTR(XTNCMD,LFST,LLST)=C THIS SETS % VARIABLE AND WILL DO A CALC DIRECTLY. THEREFORE%C WE MUST INHIBIT AUTO RECALCULATION.BC NOTE WE HAVE TO CALL THIS FROM THE ROOT SINCE THE RECALC OVERLAY!C TREE OVERWRITES THE XQTCMD ONE. ICODE=1 GOTO 1843 1845 CONTINUE IVVV=ICODE-309308 CALL HELP(IVVV) IVVV=0 WRITE(6,5020)A5020 FORMAT(/'Type return to continue, Hn for other Help pages:')3 READ(IOLVL,3006,END=5600,ERR=5600)(FORM2(K),K=1,4) IVVVV=FORM2(2) ivvx=form2(3)- IF(IVVVV.GE.48.AND.IVVVV.LE.57)IVVV=IVVVV-48& if(ivvx.lt.48.or.ivvx.gt.57)goto 9381c implement 2 digit help code. ivvvx=ivvx-48 ivvv=(ivvv*10)+ivvvx 9381 continue ivvv=min0(ivvv,maxhlp) IF(FORM2(1).EQ.'H')GOTO 93085C NOW CLEAR SCREEN AND TRY MORE COMMANDS AS BEFORE... ICODE=2C 1843 CONTINUE OSWIT=20 IPRSS=PROW IPCSS=PCOL IDRW=DROW IDCL=DCOL IF(LINIZZ.LE.1)CALL RECALC IF(IPSET.NE.0)GOTO 4110 DCOL=IDCL DROW=IDRW PROW=IPRSS PCOL=IPCSS 4110 CONTINUE IPSET=0 IF(ICODE.EQ.-1)GOTO 2000=C IN PORTACALC-VM, S COMMAND ALLOWS DEFAULT FORMAT CHANGE ANDAC TITLE CHANGE, BUT DOES NOT ALTER SHEET IN MEMORY... DON'T ALLOWC SCRATCH FILE SAVE STUFF...&C IF(ICODE.EQ.-2)CALL WRKFIL(1,FORM,3)C IF (ICODE.EQ.-2)CALL CLOSE(7) IF(ICODE.LE.-2)GOTO 3002C%C RECALCULATE SHEET NOW AUTOMAGICALLYFC IF ICODE=1, COMMAND JUST MOVES ON DISPLAY, SO NO NEED TO RECALCULATEC THE ENTIRE SHEET.:C LIMIT NUMBER OF ITERATIONS AT ANY ONE TIME TO 20 HOWEVER KKMAX=20 3670 CONTINUE4 IF(ICODE.EQ.5.OR.ICODE.EQ.1.OR.RCFGX.EQ.1)GOTO 3671 CALL RECALC IPSET=0 KKMAX=KKMAX-1C IMPLEMENT VARY LOOP...@C ASSUME USRFCT MUSTR CONTOL KALKIT VARIABLE THEN TO GET LOOP TOC TERMINATE SOMETIME. KKMAX=MIN0(KKMAX,KALKIT) IF(KKMAX.GT.0)GOTO 3670 3671 CONTINUE*C IF(ICODE.NE.1.AND.RCFGX.NE.1)CALL RECALCC@C DISPLAY SHEET NOW. ONLY ALTERS ENTRIES INVALIDATED BY COMMAND. IF(ICODE.NE.2)GOTO 21HC ICODE=2 = REFRESH DISPLAY. ZERO ALL NUMBERS AND CAUSE TOTAL REDISPLAY. DO 22 N1=1,DRW DO 22 N2=1,DCL&C SET NUMBER DISPLAYED TO WEIRD VALUE.&22 DVS(N1,N2)=DVS(N1,N2)+.000000000034 IF(PZAP.EQ.0)CALL UVT100(ED,2) CALL UVT100(CUP,1,1) 21 CONTINUE/ IF(ICODE.NE.5.AND.PZAP.EQ.0)CALL DSPSHT(ICODE) DCOL=IDCL DROW=IDRW PROW=IPRSS PCOL=IPCSS GOTO 1000 5600 CONTINUEL(C ERROR ON READ FROM IOLVL HANDLED HERE. REWIND 5Y CLOSE(UNIT=3) IOLVL=5 GOTO 1000 END SUBROUTINE IN2AS(ROW,CHRS)I INTEGER*2 ROW LOGICAL*1 CHRS(4) INTEGER*4 AC,AC1,AC2 DO 1 N1=1,4 1 CHRS(N1)=32U:C CONVERT ROW TO LETTERS. ASSUMES COL=2 OR MORE. ROW 1=A-ZC ROW 2=AA-AZ, THEN BA-BZ ETC. AC=ROWO DO 2 N=1,4E M=5-NC CONVERT BACKWARDS INTO CHRSA AC1=(AC/26) AC2=AC1*26E IX=AC-AC2( IF(.NOT.(IX.EQ.0.AND.AC1.GT.0))GOTO 772.C CORRECT SO WE GET Z, NOT A FOR LABELS. IX=26 AC1=AC1-1 772 CONTINUE IF(IX.GT.0)CHRS(M)=IX+64N C CONVERT TO ASCII A-Z CHARACTER AC=AC1U 2 CONTINUEC JUST IGNORE ANY OVERFLOW.O RETURNS END SUBROUTINE HELP(LVL) KC PRINT HELP INFO ON SCREEN USING FIRST 22 LINES. ASSUME XQTCMD INVALIDATESOC THE DISPLAY.G PARAMETER CUP = 1, CUU = 2, CUD = 3, CUF = 4, CUB = 5, DECDWL = 6,G $, DECDHL = 7, DECRC = 8, DECSC = 9, DECSWL = 10, ED = 11, EL = 12 A $, SGR = 13, NEL = 14, SCS = 15, SM = 16, RM = 17, ANSI = 187 PA00l|]m]0][Z[[[\[}RAMETER TMREFN = 1D LOGICAL*1 FORM(80) CALL UVT100(ANSI) CALL UVT100(ED,2)C CALL UVT100(RM,8)CC CALL UVT100(RM,5)4&C LEVEL 0 (LEVELS NOT YET IMPLEMENTED) CALL UVT100(CUP,1,1)O INCLUDE 'PCHELP.FOR'O WRITE(6,100)O CALL UVT100(CUP,2,1)I WRITE(6,101)E CALL UVT100(CUP,3,1) WRITE(6,102)I CALL UVT100(CUP,4,1) WRITE(6,103)O CALL UVT100(CUP,5,1)N WRITE(6,104)P CALL UVT100(CUP,6,1)Y WRITE(6,105)  CALL UVT100(CUP,7,1)O WRITE(6,106)T CALL UVT100(CUP,8,1)C WRITE(6,107)W CALL UVT100(CUP,9,1)i WRITE(6,108)3 CALL UVT100(CUP,10,1) WRITE(6,109)L CALL UVT100(CUP,11,1) WRITE(6,110)l CALL UVT100(CUP,12,1) WRITE(6,111)I CALL UVT100(CUP,13,1) WRITE(6,112) CALL UVT100(CUP,14,1) WRITE(6,113)C CALL UVT100(CUP,15,1) WRITE(6,114), CALL UVT100(CUP,16,1) WRITE(6,122)R CALL UVT100(CUP,17,1) WRITE(6,115)/ CALL UVT100(CUP,18,1) WRITE(6,116)E CALL UVT100(CUP,19,1) WRITE(6,117)M CALL UVT100(CUP,20,1) WRITE(6,118)G CALL UVT100(CUP,21,1) WRITE(6,119)O CALL UVT100(CUP,22,1) WRITE(6,120)M CALL UVT100(CUP,23,1) WRITE(6,121)A 9000 CONTINUEA CALL UVT100(CUP,24,1)2100 FORMAT('EN expression - Insert expression at ' 1 'current pos.')C101 FORMAT('M1,M2,M3, or M4 - Motion up, down, left, right (auto)')O?102 FORMAT('DL var1:var2 Rn:m (or Cn:m) - Display Loc phys to ' 1 'row/col n-m')68103 FORMAT('DF var1:var2 [format] - set display format.'$ 1 ' A or L shows text, else #')=104 FORMAT('DT var1:var2 F or I - Set display number type to'A 1 ' flt or int')TB105 FORMAT('DW n,m - set width of column n of display to m chars')C106 FORMAT('DB c,r - Set display bounds at c cols, r rows (chars)')O5109 FORMAT('L var - Move cursor to var named (phys.)'/ 1 ' OA var or OR var=move displ. origin') B107 FORMAT('V - redraw screen. VF - Disply. formulas. VM=no auto.' 1 ' redraw')B108 FORMAT('K - Drop into interactive calc. *E returns to sheet.')?110 FORMAT('ZA - zero all. ZE var1:var2 - zero var1 thru var2')YA111 FORMAT('X - exit program. W write screen to file or printer')NA112 FORMAT('CV v1:v2 v3:v4 copy value from v1:v2 to v3:v4 range;'N$ 1 'CR=copy and relocate vars.')@113 FORMAT('CD v1:v2 v3:v4 copy display format. CF=copy formula' 1 '. CA=copy all')F114 FORMAT('P Put screen to file. G=get screen from file at curr.loc')7115 FORMAT('1,2,3,4 - move cursor Up,Down,Left,Right. 'S/ 1 'A[A/R]n[R/C] Add abs/reloc n Row/Col')HC116 FORMAT('Variable ranges are var1[:var2]. Var names P#+n#+m or')LE117 FORMAT('D#+n#+m are current Phys or Display locs + or - offsets')C118 FORMAT('Expressions may use multiple stmts, use \ separators.')CB119 FORMAT('Use std FORTRAN function names + MIN, MAX, AVG, STD')B120 FORMAT('or SUM. IF stmt format is IF [v1.REL.v2]yes-expr|else' 1 ' expr.')F4121 FORMAT('Rels are .LT.,.GT.,.EQ.,.NE.,.GE.,.LE.')F122 FORMAT('R Recompute sheet. RM Recompute Manually only (R resets)') RETURN  ENDC PORTACALC MAIN PROGRAMC SPREAD SHEET DRIVER PROGRAM#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY. INCLUDE 'VKLUGPRM.FTN'C PARAMETER MXCOLS=6,MXROWS=20C PARAMETER RRW = 32&C PARAMETER RCL = 32 ! REAL ROWS, COLSC PARAMETER DRW = 8-C PARAMETER DCL = 8 ! DISPLAY MAX ROWS, COLS.C PARAMETER RRCL = 1024C PARAMETER RRCL=RRW*RCL=C NOTE: THROUGHOUT, ROWS ARE ACTUALLY DOWN, COLUMNS ACROSS ONAC SCREEN. ROW 0 IN DISPLAY IS THE 27 ACCUMULATORS A-Z AND %, WITH>C % BEING THE LAST-COMPUTED VALUE FROM THE CALC PROGRAM, WHICHAC KNOWS HOW TO ACCESS THE DATA BUT IS JUST PASSED COMMAND STRINGS C FROM THE DISK BASED FILE HERE.C-C VT100 DISPLAY CONTROL PARAMETER DEFINITIONSCG PARAMETER CUP = 1, CUU = 2, CUD = 3, CUF = 4, CUB = 5, DECDWL = 6G $, DECDHL = 7, DECRC = 8, DECSC = 9, DECSWL = 10, ED = 11, EL = 12A $, SGR = 13, NEL = 14, SCS = 15, SM = 16, RM = 17, ANSI = 100m]V]lZ]YTADATADATADATADATADATA8C PARAMETER TMREFN = 1 INTEGER*2 PRL(6) BYTE NOWRAP ( 2 ) LOGICAL*1 FORM,FVLD,CMDLIN(132) INTEGER*4 VNLT$ DIMENSION FORM(128),FVLD(RRWP,RCLP)AC FVLD FLAG 0 = NO FORMULA, -1= DISPLAY FORMULA ITSELF, NOT VALUE=C 1=VALID ACTIVE FORMULA THERE TO EVALUATE. INITIALLY ALL 0'SC SO INITIALLY IGNORE.CDC ROUTINE IN2AS COMPUTES ASCII CHARACTER NAMES OF SUBSCRIPTS IN1,IN2=C SO DISPLAY CAN HAVE THEM. IT MUST BE THE INVERSE OF VARSCN. INTEGER*2 ICREF,IRREF,FOOBAR COMMON/MIRROR/ICREF,IRREF COMMON/FOOBAR/FOOBAR INTEGER*2 RRWACT,RCLACT COMMON/RCLACT/RRWACT,RCLACT/ integer*2 idol1,idol2,idol3,idol4,idol5,idol6, 1 IDOL7,IDOL82 common/dollr/idol1,idol2,idol3,idol4,idol5,idol6, 1 IDOL7,IDOL8( INTEGER*2 PROW,PCOL,DROW,DCOL,DRWV,DCLV INTEGER*2 LLCMD,LLDSP6 COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRWV,DCLV,LLCMD,LLDSP:C LLCMD, LLDSP ARE CURRENTLY USED COMMAND, DISPLAY ROWS...( DIMENSION NRDSP(DRW,DCL),NCDSP(DRW,DCL) COMMON/D2R/NRDSP,NCDSP& INTEGER*2 IPGMAX,LPGMXF,IPGMOD,LPGMOD* COMMON/FILEMX/IPGMAX,LPGMXF,IPGMOD,LPGMODBC LENGTHS (IN K) OF FILES FOR VALUES OR FORMULAS ARE IPGMAX,LPGMXFCC IPGMOD AND LPGMOD CONTROL PACKING MODE IN THE CORRESPONDING FILES LOGICAL*1 OARRY(100),FORM2(4) INTEGER*2 OSWIT,OCNTR COMMON/OAR/OSWIT,OCNTR,OARRY+C COMMON OAR SWITCHES OUTPUT OFF IF OSWIT=2" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9) INTEGER*2 KLVL COMMON/KLVL/KLVL INTEGER*2 IOLVL COMMON/IOLVL/IOLVL LOGICAL*1 EDNAM(16) COMMON/EDNAM/EDNAMDC IOLVL IS LUN FOR XQTCMD TO USE (NORMALLY 3 FOR INDIRECT FILES OR 5?C FOR TERMINAL. WE USE 5,6 FOR TERMINAL INPUT, OUTPUT NORMALLY.) LOGICAL*1 AVBLS(20,27),VBLS(8,RRWP,RCLP) REAL*8 XXV(RRWP,RCLP)" EQUIVALENCE(XXV(1,1),VBLS(1,1,1)) COMMON/V/TYPE,AVBLS,VBLS,VLENFC DEFFMT IS THE DEFAULT FORMAT FOR NUMERICS. INITIALLY IT WILL BE F9.2 LOGICAL*1 DEFFMT(10),DVFMT(12) EQUIVALENCE(DVFMT(2),DEFFMT(1)) COMMON/DEFVBX/DVFMT LOGICAL*1 NMSH(80) COMMON/NMSH/NMSH INTEGER*2 XTCFG,IPSET,XTNCNT LOGICAL*1 XTNCMD(80)) COMMON/XCMD/XTNCNT,XTNCMD,XTCFG,IPSETC VARY FLAG ITERATION COUNT INTEGER KALKIT COMMON/VARYIT/KALKIT INTEGER*2 FORMFG,RCFGX,PZAP# INTEGER*2 RCONE,RCMODE,IRCE1,IRCE2% COMMON/FFGG/FORMFG,RCFGX,PZAP,RCONE, 1 RCMODE,IRCE1,IRCE2)C FORMFG FLAGS FORMAT OF DISPLAY GLOBALLY>C RCFGX FLAGS WHETHER TO DO AUTO RECALCULATION. IF 1, INHIBITS=C AUTO RECALC (USE R COMMAND TO DO A CALC.). RM COMMAND TURNS C RCFGX ON.?C PZAP CONTROLS WHETHER TO REDRAW SCREEN. IF ZERO, NORMAL. IF 1>C (NONZERO ANYHOW), INHIBITS RE DISPLAY. V COMMAND RESETS TO 0 C AND VM INHIBITS. (SETS TO 1).CCC DISPLAY ARRAY WILL KEEP A COPY OF VARIABLES DISPLAYED AND FORMATSAC USED LOCALLY WHICH DISPLAY ROUTINE CAN USE TO SEE WHAT ACTUALLYBC NEEDS TO BE REFRESHED ON SCREEN. DRWV AND DCLV ARE COLS, ROWS OF#C DISPLAY ACTUALLY USED FOR SCREEN. INTEGER*2 CWIDS(DRW)HC CWIDS IS WIDTHS IN CHARACTERS OF COLUMNS ON DISPLAY. NOTE THAT BECAUSEHC OF PECULIAR INVERSION WHICH I AM TOO LAZY TO CORRECT IT IS DIMENSIONEDC AS DRW NOT DCL. INTEGER*4 I4TMP REAL*8 DVS(DRW,DCL) COMMON /FVLDC/FVLDC BITMAPC LOGICAL*1 IBITMPC DIMENSION IBITMP(BRRCL)C COMMON/INITD/IBITMPC LOGICAL*1 DFMTS(10,DRW,DCL)C 10 CHARACTERS PER ENTRY. COMMON/DSPCMN/DVS,CWIDS C DATATRIEVE DATA BLOCKS HERE... DATA NOWRAP / "24,0 /7C INITIAL DEFAULT FORMAT FOR NUMERICS is set at runtimeC SET UP TERMINAL%C SET IT NOWRAP, NO CARRIAGE CONTROL.1C IDOL7 CONTROLS SCROLL ENABLE, 1 IF ON, 0 IF OFF IDOL7=1-C SETUP INITIAL DISPLAY LIMITS ACTUALLY USED. CALL DTRINI C SET UP DATATRIEVE INTERFACE... RRWACT=1 FOOBAR=0 RCLACT=1 RCMODE=2=C INITIALLY RCMODE=2, SET UP RECALCULATION OF DISPLAY + ENTRYC"C RCMODE =0 - OLD MODE, RECALC ALL!C =1 - RECALC ENTRY ONLY (RE CMD)$C =2 - RECALC ENTRY AND DISPLAY ONLY9C NEGATIVE, ONE-TIME FLAG TO DO ALL, THEN GO TO ABS VALUEC IRCE1=0 IRCE2=0 IOLVL=5 DRWV=MXCOLS DCLV=MXROWS KLVL=1 KALKIT=0 ICODE=0 idol3=0 idol4=0 DO 1407 N=1,161407 EDNAM(N)=32 EDN00m]]0][Z[[[\[}AM(1)='E' EDNAM(2)='D' EDNAM(3)='I' EDNAM(4)='T'C INITIALIZE EDIT NAME LLCMD=LCMDR LLDSP=LDSPR ICREF=RRW/10 IRREF=RCL/10 idol5=32000 idol6=32000 RCFGX=0 FORMFG=0"C CALL GETADR ( PRL, NOWRAP ) PRL ( 2 ) = 2CC WTQIO issues I/O to set multiple characteristics of your terminalDC to turn off system's auto-wrap. If this is different either set itC first by hand or modify.(C CALL WTQIO ( SFSMC, 5, 2,,, PRL )C CALL ASSIGN(6,'TI:')C CALL ASSIGN(5,'TI:')<C must be able to turn off FORTRAN carriage control somehow.( OPEN ( UNIT = 5, FILE='SYS$INPUT:'" 1 ,CARRIAGECONTROL = 'NONE' )) OPEN ( UNIT = 6, FILE='SYS$OUTPUT:'# 1 ,CARRIAGECONTROL = 'NONE' )/ open(unit=1,file='TT:',carriagecontrol='NONE') CALL UVT100(ANSI))C PERFORM SYSTEM DEPENDENT INITIALIZATION CALL TTYINIC-C PERFORM ERROR TRAPPER CALLS HERE AS NEEDED.DC SET MOST ERRORS TO CONTINUE, WITH FILE ERRORS CONTINUATION ON ERR= C PROCESSING.5C FOR THE MOMENT COMMENT OUT AND FILL IN WITH VERSIONC TAILORED TO DESIRED OS:c prevent as many Fortran errors as possible for VAX only. DO 2068 KK=20,574 CALL ERRSET(KK,.TRUE.,.FALSE.,.TRUE.,.FALSE.,30000) 2068 CONTINUE DO 6067 KK=59,68 IF (KK.EQ.65)GOTO 60674 CALL ERRSET(KK,.TRUE.,.FALSE.,.TRUE.,.FALSE.,30000) 6067 CONTINUE" CALL LIB$ESTABLISH(LIB$FIXUP_FLT)* CALL LIB$ESTABLISH(FOR$UNDERFLOW_HANDLER)C END VAX ERRSET CALLS......C CALL UVT100(RM,8) CALL UVT100(ED,2) CALL UVT100(SCS,0,1) CALL UVT100(SCS,1,2) CALL UVT100(CUP,5,8)'C ZERO THE VARIABLES TO START OFF WITH. DO 2070 KK=1,20 DO 2070 KKK=1,272070 AVBLS(KK,KKK)=0C SKIP ZEROING VARIABLES... C CALL WSSETC WSSET SETS UP WORK SPACEC DO 2071 KK=1,RRWC DO 2071 KKK=1,RCLC2071 XXV(KK,KKK)=0.C SET UP WORK ARRAY BITMAP CALL WRKFIL(1,FORM,2) CALL UVT100(SGR,7) WRITE(6,3010)3010 FORMAT('Analyti!Calc-VX') CALL UVT100(CUP,6,12) WRITE(6,3278)3278 FORMAT('V21-02A') CALL UVT100(CUP,7,15) CALL UVT100(SGR,0) CALL UVT100(CUP,10,3) WRITE(6,3013))3013 FORMAT(' .... The Analyst''s Tool') CALL UVT100(CUP,11,5) WRITE(6,3014)93014 FORMAT(' by Glenn and Mary Everhart, (C) 1983-1986') CALL UVT100(CUP,12,1)C NOW GET ON WITH USEFUL WORK. PRL ( 2 ) = 1 PRL ( 3 ) = 0 CALL UVT100 ( ANSI )!C RESET MODE 8 (VT100 AUTOREPEAT)C CALL UVT100 ( RM, 8 )2C RESET MODE 5 (I.E., SCREEN TO BLACK BACKGROUND).C CALL UVT100 ( RM, 5 ) KWID=10 KMAP=1 GOTO 3000 3002 CONTINUE CALL UVT100(CUP,1,1) WRITE(6,3003),3003 FORMAT(' Alter Display Windows [Y/N]:')' READ(IOLVL,3006,END=5600,ERR=5600)FORM/ IF(FORM(1).NE.'Y'.AND.FORM(1).NE.'y')GOTO 3000C ALTER MAPPING DESIRED WRITE(6,3001)53001 FORMAT(' ENTER NEW GLOBAL COLUMN WIDTH, 1-120:')' READ(IOLVL,3004,END=5600,ERR=5600)KWID3004 FORMAT(I3)$ IF(KWID.LT.1.OR.KWID.GT.120)KWID=10 WRITE(6,3109)@3109 FORMAT(' Enter length of display in lines (nominally 24):')& READ(IOLVL,3004,END=5600,ERR=5600)III! IF(III.LE.2.OR.III.GT.999)III=246C RESET DISPLAY SIZE IN S COMMAND QUESTIONS AS NEEDED. LLDSP=III LLCMD=III-1 WRITE(6,2410);2410 FORMAT(' Change Annotate command from "EDIT " [Y/N]:')' READ(IOLVL,3006,END=5600,ERR=5600)FORM/ IF(FORM(1).NE.'Y'.AND.FORM(1).NE.'y')goto 2450 write(6,2411)&2411 format(' Give new edit command:')( Read(IOLVL,3006,end=5600,err=5600)ednam ednam(16)=32$c ensure one space at end of command 2450 continue WRITE(6,3008);3008 FORMAT(' Reset display to Upper Left of sheet [Y/N]:')' READ(IOLVL,3006,END=5600,ERR=5600)FORM, IF(FORM(1).NE.'Y'.AND.FORM(1).NE.'y')KMAP=0 WRITE(6,7800)87800 FORMAT('Modify Extended Addressing Mapping [Y/N]:')' READ(IOLVL,3006,END=5600,ERR=5600)FORM/ IF(FORM(1).NE.'Y'.AND.FORM(1).NE.'y')GOTO 3000 WRITE(6,7801)RCL@7801 FORMAT(' How many columns should we move over on row over ' 1 ,I4)( READ(IOLVL,3004,END=5600,ERR=5600)ICREF+ IF(ICREF.LT.0.OR.ICREF.GT.RRW)ICREF=RRW/10 WRITE(6,7802)RRW=7802 FORMAT(' How many rows should we move down on col o00m]V]lZ]YTADATADATADATADATADATAver ' 1 ,I4)( READ(IOLVL,3004,END=5600,ERR=5600)IRREF+ IF(IRREF.LT.0.OR.IRREF.GE.RCL)IRREF=RCL/10 3000 CONTINUE idol5=20000 idol6=20000<C INITIALLY SET JRCL TO RCL = NO. OF ROWS TO BE IN WORK FILE JRCL=RCL PZAP=0 XTCFG=0 IPSET=0 C ZERO BITMAPC DO 36 N1=1,BRRCLC36 IBITMP(N1)=0 LINIZZ=0 CALL UVT100(CUP,14,1) WRITE(6,3588)?3588 FORMAT('Enter new floating numeric format default [Y/N]:')' READ(IOLVL,3006,END=5600,ERR=5600)FORM/ IF(FORM(1).NE.'Y'.and.form(1).ne.'y')GOTO 3589C ENTER NEW DEFAULT.6888 CALL UVT100(CUP,14,1) CALL UVT100(EL,2)#C LINE NOW ERASED... GET NEW FORMAT WRITE(6,3590)/3590 FORMAT('Enter new format. Suggest F10.2>')' READ(IOLVL,3006,END=5600,ERR=5600)FORM;C NOW HAVE HIS DESIRED FORMAT. COPY INTO THE DEFAULT ARRAY.C DEFFMT IS THAT. DO 3591 N1=1,10 KKK=FORM(N1) KKK=MAX0(32,KKK)C ASSUME FORM COMPLETELY INIT'D3591 DEFFMT(N1)=KKK.C CHECK ITS LEGALITY BY TRYING TO USE IT ONCE. XX=3.14159! ENCODE(78,DVFMT,FORM,ERR=6888)XX?C IF IT FAILS, PROGRAM WILL CRASH AND FILE WON'T GET CLOBBERED. 3589 CONTINUE CALL UVT100(CUP,15,1) WRITE(6,3005)%3005 FORMAT(' Title of Spreadsheet:')' READ(IOLVL,3006,END=5600,ERR=5600)FORM- IF(FORM(1).LE.32.AND.FORM(2).LE.32)GOTO 3804-C SKIP ENTERING NEW NAME IF HE ENTERS NOTHING DO 3805 III=1,804C USE ~ CHARACTER IN TITLE TO FLAG TO READ SYS$INPUT IF(FORM(III).EQ.'~')FOOBAR=1$C LEAVE ~ CHARACTERS OUT OF TITLE...! IF(FORM(III).EQ.'~')FORM(III)=323805 NMSH(III)=FORM(III) 3804 CONTINUE3006 FORMAT(80A1,50A1)(C ****** IF S OPTION GIVEN THEN ICODE=-2>C THEREFORE, DON'T ASK DISK SIZE ETC, BUT ALLOW RESET OF TITLEC AND DEFAULT FORMATS. IF(ICODE.EQ.-2) GOTO 7831C ******D CALL UVT100(CUP,16,1)D WRITE(6,2056)*D2056 FORMAT(' Give Max Rows to be used:') KR=RCL KC=RRW&D READ(IOLVL,7202,END=5600,ERR=5600)KRD IF(KR.LE.0)KR=RCLD CALL UVT100(CUP,17,1)D WRITE(6,2057)*D2057 FORMAT(' Give Max Cols to be used:')&D READ(IOLVL,7202,END=5600,ERR=5600)KCD IF(KC.LE.0)KC=RRWC KKK=(KR-1)*RRW+KC CALL REFLEC(KR,KC,KKK) XKKKK=KR*KC XKDF=XKKKK/64. XKDN=XKKKK/100. IPGMOD=KKK/4 LPGMOD=KKK/4.C COMPUTED ABOVE THE MIN # OF K FOR DISK FILESD CALL UVT100(CUP,18,1)D WRITE(6,2058)XKDN,XKDFCD2058 FORMAT(' Mins=',F9.0' K Value file, ',F9.0,' K Formula file')#C KKK IS MAX INDEX TO BE USED HERE.D CALL UVT100(CUP,21,1)D WRITE(6,7201)5D7201 FORMAT(' Give disk size (K) for Value Memory:') IPGMAX=XKDN*D READ(IOLVL,7202,END=5600,ERR=5600)IPGMAX7202 FORMAT(I6) D IPGMOD=KKK IF(IPGMAX.LT.0)IPGMOD=0 IPGMAX=IABS(IPGMAX)) IF(IPGMAX.LE.0.OR.IPGMAX.GT.512)IPGMAX=1D CALL UVT100(CUP,22,1)D WRITE(6,7203)7D7203 FORMAT(' Give disk size (K) for Formula Memory:') LPGMXF=(XKDF*4.)*D READ(IOLVL,7202,END=5600,ERR=5600)LPGMXF D LPGMOD=KKKD IF(LPGMXF.LT.0)LPGMOD=0D LPGMXF=IABS(LPGMXF)@C IF NUMBERS ARE ENTERED NEGATIVE, SET MODE TO "SLOW, FILE-SPACE4C CONSERVING" PACKING, SCATTERING PAGES ACROSS FILE.6D IF(LPGMXF.LE.0.OR.LPGMXF.GT.1024)LPGMXF=(IPGMAX*3)/2$C NULL TERMINATE ALL FORMAT STRINGS.FC SET MAX WIDTH FOR PRINT TO DIMENSION OF THE BUFFER. NOTE THIS IS THEBC USUAL HARDWARE MAXIMUM SO WE DON'T WORRY TOO MUCH ABOUT IT. NOTEEC BILL TABOR'S PROGRAM TO PRINT PASTE-ABLE VERSIONS OF THE SHEET FROMDC SAVE FILES EXISTS, SO WE NEEDN'T WORRY TOO MUCH EITHER ABOUT USINGC DISPLAY FOR DOUBLE DUTY. MXL=1324C INITIALIZE WORK STORAGE FOR FORMULAS AND VARIABLES CALL WSSET 7831 CONTINUEIC SET DEFAULT WIDTHS OF COLUMNS TO 10. MAY BE ALTERED BELOW FOR DIFFERENTC DEFAULT IF DESIRED. DO 16 N1=1,DRW CWIDS(N1)=KWID 16 CONTINUECC NOW SET UP NRDSP, NCDSP IF(KMAP.EQ.0)GOTO 3009 DO 5 N1=1,DRW DO 5 N2=1,DCL9C INITIALLY WE DISPLAY THE UPPER LEFT PART OF THE SYSTEM.?C ESTABLISH ASSOCIATION INITIALLY THEREFORE OF DISPLAY TO UPPERC LEFT OF PHYSICAL SHEET. NRDSP(N1,N2)=N1 NCDSP(N1,N2)=N2+1 DVS(N1,N2)=.00000031 5 CONTINUEBC FOR S OPTION USE SECRET -4 CODE TO RESET SHEET. STILL NEEDS WORKC IN PORTACALC PC.% IF(ICOD00m]]0][Z[[[\[}E.EQ.-4)CALL WRKFIL(1,FORM,2)3009 IF(ICODE.EQ.-4)GOTO 1C43 CALL UVT100(CUP,21,1) KZPPD=0 CMDLIN(1)=0 IOLDFL=03017 FORMAT(Q,80A1,80A1) MXL=1 CMDLIN(MXL+1)=03572 FORMAT(I6) CALL UVT100(SGR,0))C SET UP RANDOM FILE AS NEEDED FOR SHEETC EACH RECORD HAS:C CHARS 1-110 FORMULAS/C CHARS 120-128 DISPLAY FORMAT (INITIALLY F9.2).C CHAR 119 VALID FLAG (ALLOWS HANDLING READS.)9C values: -3, -2: Numeric-only text (or special chars) C -1 : Alphanumeric textC 0 : Uninitialized#C 1 : Alphanumeric formulaCC +2 : Number or pure numeric formula with value calculatedEC +3 : Number or pure numeric formula, value not yet computed,C CHAR 118 MAGIC NUMBER 15 (CHECKS ALL WELL)-C READ A RECORD, IF ERROR, CREATE EMPTY FILE.C IF(IOLDFL.EQ.0)GOTO 1MCC IF IOLDFL NONZERO IT MEANS USER CLAIMS THERE EXISTS A FILE. IF 0 IT'S NEW.2CC HERE IT'S OLD SO LET'S BE SURE IT REALLY IS OK. 1 CONTINUEGC HIT EOF OR ERROR. MUST BE A NEW FILE. THEREFORE ZERO IT TO OUR NEEDS.?C AT THIS POINT WE ARE CREATING A NEW FILE AND NEED TO ZERO IT.C DO 3 N=1,128 FORM(N)=0 3 CONTINUE DO 3592 N=1,9C SET UP DEFAULT FORMAT3592 FORM(119+N)=DEFFMT(N) FORM(118)=15 FORM(1)='0' FORM(2)='.'.C CREATE NULL FILE INITIALLY BY RESETTING ALL. JRRCL=RRW*JRCL KZPPD=1C 2 CONTINUE"C COMMON POINT WITH FILE PREPARED. PCOL=2 PROW=1 DCOL=1 DROW=1C IF(IOLDFL.GT.1)GOTO 2000 2000 CONTINUE8C DRAW OUR LABELS AND OTHERWISE INITIALIZE DISPLAY SHEET KZPPD=0 IF(IPSET.NE.0)GOTO 1000 IF(PZAP.EQ.0)CALL UVT100(ED,2) CALL UVT100(CUP,1,1) OSWIT=20 IPRSS=PROW IPCSS=PCOL IDRW=DROW IDCL=DCOL IF(LINIZZ.LE.1)CALL RECALC IF(PZAP.EQ.0)CALL DSPSHT(2) DCOL=IDCL DROW=IDRW PROW=IPRSS PCOL=IPCSSC 1000 CONTINUE IPSET=0 LINIZZ=LINIZZ+1 OSWIT=20-C ISSUE A PROMPT FOR COMMAND AND DO A COMMAND ICODE=0 CALL XQTCMD(ICODE) IF(ICODE.LT.30)GOTO 1843C HELP COMMAND AND SIMILAR... IF(ICODE.NE.400)GOTO 1847 CALL DSPSHT(10) ICODE=1)C CODE 10 IS PRINT SECRET CODE TO DSPSHT. GOTO 1843 1847 CONTINUE IF(ICODE.NE.420)GOTO 1849C CLOSE UNIT 1 JUST IN CASE... CLOSE(UNIT=1) KLVL=1 IPRSSS=PROW IPCSSS=PCOL CALL CALC PROW=IPRSSS PCOL=IPCSSS!C CLOSE CONSOLE LUN USED BY CALC. CLOSE(UNIT=1),C CLOSE ANY OTHER LUNS CALC MAY HAVE USED... CLOSE(UNIT=2) CLOSE(UNIT=3) C SET UP FOR REDRAW WHEN BACK... ICODE=-1 GOTO 1843 1849 CONTINUE IF(ICODE.NE.430)GOTO 1845$C TEST FUNCTION, TESTING EXPRESSION.C INHIBIT RECALCULATION... C COMMAND IS IN "XTNCMD" STRING. LLST=MIN0(80,XTNCNT) LFST=1 CALL DOENTR(XTNCMD,LFST,LLST)=C THIS SETS % VARIABLE AND WILL DO A CALC DIRECTLY. THEREFORE%C WE MUST INHIBIT AUTO RECALCULATION.BC NOTE WE HAVE TO CALL THIS FROM THE ROOT SINCE THE RECALC OVERLAY!C TREE OVERWRITES THE XQTCMD ONE. ICODE=1 GOTO 1843 1845 CONTINUE IVVV=ICODE-309308 CALL HELP(IVVV) IVVV=0 WRITE(6,5020)A5020 FORMAT(/'Type return to continue, Hn for other Help pages:')3 READ(IOLVL,3006,END=5600,ERR=5600)(FORM2(K),K=1,4)I IVVVV=FORM2(2)O- IF(IVVVV.GE.48.AND.IVVVV.LE.57)IVVV=IVVVV-48I0 IF(FORM2(1).EQ.'H'.OR.FORM2(1).EQ.'h')GOTO 93085C NOW CLEAR SCREEN AND TRY MORE COMMANDS AS BEFORE...I ICODE=6CP 1843 CONTINUEA OSWIT=20S IPRSS=PROW IPCSS=PCOLR IDRW=DROW IDCL=DCOL IF(LINIZZ.LE.1)CALL RECALCA IF(IPSET.NE.0)GOTO 4110 DCOL=IDCL DROW=IDRW PROW=IPRSS PCOL=IPCSSR 4110 CONTINUEA IPSET=0 IF(ICODE.EQ.-1)GOTO 2000O=C IN PORTACALC-VM, S COMMAND ALLOWS DEFAULT FORMAT CHANGE AND AC TITLE CHANGE, BUT DOES NOT ALTER SHEET IN MEMORY... DON'T ALLOWAC SCRATCH FILE SAVE STUFF...&C IF(ICODE.EQ.-2)CALL WRKFIL(1,FORM,3)C IF (ICODE.EQ.-2)CALL CLOSE(7)N IF(ICODE.LE.-2)GOTO 3002 CE%C RECALCULATE SHEET NOW AUTOMAGICALLYOFC IF ICODE=1, COMMAND JUST MOVES ON DISPLAY, SO NO NEED TO RECALCULATEC THE ENTIRE SHEET.C:C LIMIT NUMBER OF ITERATIONS AT ANY ONE TIME TO 20 HOWEVER KKMAX=201 3670 CONTINUE IF(ICODE.EQ.5.OR.ICODE.EQ.1.OR.* 1 RCFGX.EQ.1.OR.IC00m]V]lZ]YTADATADATADATADATADATAODE.EQ.6)GOTO 3671 CALL RECALC IPSET=0 KKMAX=KKMAX-1C IMPLEMENT VARY LOOP...@C ASSUME USRFCT MUSTR CONTOL KALKIT VARIABLE THEN TO GET LOOP TOC TERMINATE SOMETIME.V KKMAX=MIN0(KKMAX,KALKIT)  IF(KKMAX.GT.0)GOTO 3670 3671 CONTINUEA*C IF(ICODE.NE.1.AND.RCFGX.NE.1)CALL RECALCC @C DISPLAY SHEET NOW. ONLY ALTERS ENTRIES INVALIDATED BY COMMAND.% IF(ICODE.NE.2.AND.ICODE.NE.6)GOTO 212HC ICODE=2 = REFRESH DISPLAY. ZERO ALL NUMBERS AND CAUSE TOTAL REDISPLAY. DO 22 N1=1,DRWO DO 22 N2=1,DCLR&C SET NUMBER DISPLAYED TO WEIRD VALUE.&22 DVS(N1,N2)=DVS(N1,N2)+.000000000034 IF(PZAP.EQ.0)CALL UVT100(ED,2)i CALL UVT100(CUP,1,1)i 21 CONTINUE1 IF(ICODE.EQ.6)ICODE=2/ IF(ICODE.NE.5.AND.PZAP.EQ.0)CALL DSPSHT(ICODE)1 DCOL=IDCL DROW=IDRW PROW=IPRSSD PCOL=IPCSS, GOTO 1000 5600 CONTINUEP(C ERROR ON READ FROM IOLVL HANDLED HERE. REWIND 5D CLOSE(UNIT=3)6C GUARANTEE TT: GETS OPENED FOR INPUT ON EOF ON INPUT. IOLVL=5 FOOBAR=0S CLOSE(UNIT=5)* OPEN(UNIT=5,FILE='SYS$COMMAND:',READONLY, 1 CARRIAGECONTROL='NONE')I GOTO 1000 END SUBROUTINE IN2AS(ROW,CHRS)  INTEGER*2 ROW LOGICAL*1 CHRS(4) INTEGER*4 AC,AC1,AC2D DO 1 N1=1,4 1 CHRS(N1)=32I:C CONVERT ROW TO LETTERS. ASSUMES COL=2 OR MORE. ROW 1=A-ZC ROW 2=AA-AZ, THEN BA-BZ ETC. AC=ROW, DO 2 N=1,4 M=5-NC CONVERT BACKWARDS INTO CHRSI AC1=(AC/26) AC2=AC1*26R IX=AC-AC2( IF(.NOT.(IX.EQ.0.AND.AC1.GT.0))GOTO 772.C CORRECT SO WE GET Z, NOT A FOR LABELS. IX=26 AC1=AC1-1 772 CONTINUE IF(IX.GT.0)CHRS(M)=IX+64O C CONVERT TO ASCII A-Z CHARACTER AC=AC1 2 CONTINUEC JUST IGNORE ANY OVERFLOW.U RETURN  END SUBROUTINE HELP(LVL)2KC PRINT HELP INFO ON SCREEN USING FIRST 22 LINES. ASSUME XQTCMD INVALIDATES1C THE DISPLAY.G PARAMETER CUP = 1, CUU = 2, CUD = 3, CUF = 4, CUB = 5, DECDWL = 6IG $, DECDHL = 7, DECRC = 8, DECSC = 9, DECSWL = 10, ED = 11, EL = 12TA $, SGR = 13, NEL = 14, SCS = 15, SM = 16, RM = 17, ANSI = 18/ PARAMETER TMREFN = 1 LOGICAL*1 FORM(120) CALL UVT100(ANSI) CALL UVT100(ED,2)C CALL UVT100(RM,8)EC CALL UVT100(RM,5)T&C LEVEL 0 (LEVELS NOT YET IMPLEMENTED) CALL UVT100(CUP,1,1)2 INCLUDE 'PCHELP.FOR'T WRITE(6,100)M CALL UVT100(CUP,2,1)O WRITE(6,101)C CALL UVT100(CUP,3,1)1 WRITE(6,102)I CALL UVT100(CUP,4,1)R WRITE(6,103)G CALL UVT100(CUP,5,1) WRITE(6,104)U CALL UVT100(CUP,6,1) WRITE(6,105)O CALL UVT100(CUP,7,1)T WRITE(6,106)R CALL UVT100(CUP,8,1)G WRITE(6,107)C CALL UVT100(CUP,9,1)A WRITE(6,108)R CALL UVT100(CUP,10,1) WRITE(6,109)N CALL UVT100(CUP,11,1) WRITE(6,110)0 CALL UVT100(CUP,12,1) WRITE(6,111) CALL UVT100(CUP,13,1) WRITE(6,112)I CALL UVT100(CUP,14,1) WRITE(6,113)C CALL UVT100(CUP,15,1) WRITE(6,114)E CALL UVT100(CUP,16,1) WRITE(6,122)E CALL UVT100(CUP,17,1) WRITE(6,115)W CALL UVT100(CUP,18,1) WRITE(6,116)N CALL UVT100(CUP,19,1) WRITE(6,117)W CALL UVT100(CUP,20,1) WRITE(6,118)A CALL UVT100(CUP,21,1) WRITE(6,119)E CALL UVT100(CUP,22,1) WRITE(6,120)  CALL UVT100(CUP,23,1) WRITE(6,121)T 9000 CONTINUER CALL UVT100(CUP,24,1)2100 FORMAT('EN expression - Insert expression at ' 1 'current pos.')C101 FORMAT('M1,M2,M3, or M4 - Motion up, down, left, right (auto)')R?102 FORMAT('DL var1:var2 Rn:m (or Cn:m) - Display Loc phys to 'H 1 'row/col n-m')48103 FORMAT('DF var1:var2 [format] - set display format.'$ 1 ' A or L shows text, else #')=104 FORMAT('DT var1:var2 F or I - Set display number type to'F 1 ' flt or int')1B105 FORMAT('DW n,m - set width of column n of display to m chars')C106 FORMAT('DB c,r - Set display bounds at c cols, r rows (chars)')M5109 FORMAT('L var - Move cursor to var named (phys.)'I/ 1 ' OA var or OR var=move displ. origin')CB107 FORMAT('V - redraw screen. VF - Disply. formulas. VM=no auto.' 1 ' redraw')B108 FORMAT('K - Drop into interactive calc. *E returns to sheet.')?110 FORMAT('ZA - zero all. ZE var1:var2 - zero var1 thru var2')A111 FORMAT('X - exit program. W write screen to file or printer')A1100m]n]0][Z[[[\[}2 FORMAT('CV v1:v2 v3:v4 copy value from v1:v2 to v3:v4 range;'N$ 1 'CR=copy and relocate vars.')@113 FORMAT('CD v1:v2 v3:v4 copy display format. CF=copy formula' 1 '. CA=copy all')F114 FORMAT('P Put screen to file. G=get screen from file at curr.loc')7115 FORMAT('1,2,3,4 - move cursor Up,Down,Left,Right. ' / 1 'A[A/R]n[R/C] Add abs/reloc n Row/Col')eC116 FORMAT('Variable ranges are var1[:var2]. Var names P#+n#+m or')ME117 FORMAT('D#+n#+m are current Phys or Display locs + or - offsets')tC118 FORMAT('Expressions may use multiple stmts, use \ separators.')UB119 FORMAT('Use std FORTRAN function names + MIN, MAX, AVG, STD')B120 FORMAT('or SUM. IF stmt format is IF [v1.REL.v2]yes-expr|else' 1 ' expr.')t4121 FORMAT('Rels are .LT.,.GT.,.EQ.,.NE.,.GE.,.LE.')F122 FORMAT('R Recompute sheet. RM Recompute Manually only (R resets)') RETURNO ENDC;C FIRST CUT TRY AT REMOVING ONE TIME CODE FROM MAIN PROGRAM6C HERE (FOR PRO VERSION OF PORTACALC). SPREDSHT.PR1 IS5C MAIN PROGRAM, SPREDSHT.PR2 IS SUBROUTINES SPLIT OUTC OF IT.CC PORTACALC MAIN PROGRAMC SPREAD SHEET DRIVER PROGRAM#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY. INCLUDE 'VKLUGPRM.FTN'C PARAMETER MXCOLS=6,MXROWS=20C PARAMETER RRW = 32&C PARAMETER RCL = 32 ! REAL ROWS, COLSC PARAMETER DRW = 8-C PARAMETER DCL = 8 ! DISPLAY MAX ROWS, COLS.C PARAMETER RRCL = 1024C PARAMETER RRCL=RRW*RCL=C NOTE: THROUGHOUT, ROWS ARE ACTUALLY DOWN, COLUMNS ACROSS ONAC SCREEN. ROW 0 IN DISPLAY IS THE 27 ACCUMULATORS A-Z AND %, WITH>C % BEING THE LAST-COMPUTED VALUE FROM THE CALC PROGRAM, WHICHAC KNOWS HOW TO ACCESS THE DATA BUT IS JUST PASSED COMMAND STRINGS C FROM THE DISK BASED FILE HERE.C-C VT100 DISPLAY CONTROL PARAMETER DEFINITIONSCG PARAMETER CUP = 1, CUU = 2, CUD = 3, CUF = 4, CUB = 5, DECDWL = 6G $, DECDHL = 7, DECRC = 8, DECSC = 9, DECSWL = 10, ED = 11, EL = 12A $, SGR = 13, NEL = 14, SCS = 15, SM = 16, RM = 17, ANSI = 18C PARAMETER TMREFN = 1 INTEGER*2 PRL(6) BYTE NOWRAP ( 2 ) LOGICAL*1 FORM,FVLD,CMDLIN(132) INTEGER*4 VNLT$ DIMENSION FORM(128),FVLD(RRWP,RCLP)AC FVLD FLAG 0 = NO FORMULA, -1= DISPLAY FORMULA ITSELF, NOT VALUE=C 1=VALID ACTIVE FORMULA THERE TO EVALUATE. INITIALLY ALL 0'SC SO INITIALLY IGNORE.CDC ROUTINE IN2AS COMPUTES ASCII CHARACTER NAMES OF SUBSCRIPTS IN1,IN2=C SO DISPLAY CAN HAVE THEM. IT MUST BE THE INVERSE OF VARSCN. INTEGER*2 RRWACT,RCLACT COMMON/RCLACT/RRWACT,RCLACT/ integer*2 idol1,idol2,idol3,idol4,idol5,idol6, 1 IDOL7,IDOL82 common/dollr/idol1,idol2,idol3,idol4,idol5,idol6, 1 IDOL7,IDOL8( INTEGER*2 PROW,PCOL,DROW,DCOL,DRWV,DCLV* COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRWV,DCLV( DIMENSION NRDSP(DRW,DCL),NCDSP(DRW,DCL) COMMON/D2R/NRDSP,NCDSP& INTEGER*2 IPGMAX,LPGMXF,IPGMOD,LPGMOD* COMMON/FILEMX/IPGMAX,LPGMXF,IPGMOD,LPGMODBC LENGTHS (IN K) OF FILES FOR VALUES OR FORMULAS ARE IPGMAX,LPGMXFCC IPGMOD AND LPGMOD CONTROL PACKING MODE IN THE CORRESPONDING FILES LOGICAL*1 OARRY(100),FORM2(4) INTEGER*2 OSWIT,OCNTR COMMON/OAR/OSWIT,OCNTR,OARRY+C COMMON OAR SWITCHES OUTPUT OFF IF OSWIT=2" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9) INTEGER*2 KLVL COMMON/KLVL/KLVL INTEGER*2 IOLVL COMMON/IOLVL/IOLVLDC IOLVL IS LUN FOR XQTCMD TO USE (NORMALLY 3 FOR INDIRECT FILES OR 5?C FOR TERMINAL. WE USE 5,6 FOR TERMINAL INPUT, OUTPUT NORMALLY.) LOGICAL*1 AVBLS(20,27),VBLS(8,RRWP,RCLP) REAL*8 XXV(RRWP,RCLP)" EQUIVALENCE(XXV(1,1),VBLS(1,1,1)) COMMON/V/TYPE,AVBLS,VBLS,VLENFC DEFFMT IS THE DEFAULT FORMAT FOR NUMERICS. INITIALLY IT WILL BE F9.2 LOGICAL*1 DEFFMT(10),DVFMT(12) EQUIVALENCE(DVFMT(2),DEFFMT(1)) COMMON/DEFVBX/DVFMT LOGICAL*1 NMSH(80) COMMON/NMSH/NMSH INTEGER*2 XTCFG,IPSET,XTNCNT LOGICAL*1 XTNCMD(80)) COMMON/XCMD/XTNCNT,XTNCMD,00n]V]lZ]YTADATADATADATADATADATAXTCFG,IPSETC VARY FLAG ITERATION COUNT INTEGER KALKIT COMMON/VARYIT/KALKIT INTEGER*2 FORMFG,RCFGX,PZAP COMMON/FFGG/FORMFG,RCFGX,PZAP)C FORMFG FLAGS FORMAT OF DISPLAY GLOBALLY>C RCFGX FLAGS WHETHER TO DO AUTO RECALCULATION. IF 1, INHIBITS=C AUTO RECALC (USE R COMMAND TO DO A CALC.). RM COMMAND TURNS C RCFGX ON.?C PZAP CONTROLS WHETHER TO REDRAW SCREEN. IF ZERO, NORMAL. IF 1>C (NONZERO ANYHOW), INHIBITS RE DISPLAY. V COMMAND RESETS TO 0 C AND VM INHIBITS. (SETS TO 1).CCC DISPLAY ARRAY WILL KEEP A COPY OF VARIABLES DISPLAYED AND FORMATSAC USED LOCALLY WHICH DISPLAY ROUTINE CAN USE TO SEE WHAT ACTUALLYBC NEEDS TO BE REFRESHED ON SCREEN. DRWV AND DCLV ARE COLS, ROWS OF#C DISPLAY ACTUALLY USED FOR SCREEN. INTEGER*2 CWIDS(DRW)HC CWIDS IS WIDTHS IN CHARACTERS OF COLUMNS ON DISPLAY. NOTE THAT BECAUSEHC OF PECULIAR INVERSION WHICH I AM TOO LAZY TO CORRECT IT IS DIMENSIONEDC AS DRW NOT DCL. INTEGER*4 I4TMP REAL*8 DVS(DRW,DCL) COMMON /FVLDC/FVLDC BITMAPC LOGICAL*1 IBITMPC DIMENSION IBITMP(BRRCL)C COMMON/INITD/IBITMPC LOGICAL*1 DFMTS(10,DRW,DCL)C 10 CHARACTERS PER ENTRY. COMMON/DSPCMN/DVS,CWIDS DATA NOWRAP / "24,0 /7C INITIAL DEFAULT FORMAT FOR NUMERICS is set at runtimeC SET UP TERMINAL%C SET IT NOWRAP, NO CARRIAGE CONTROL. IKONS=0 CALL INITA1(KMAP,KWID,ICODE) 3002 CONTINUE# CALL INITA2(KMAP,KWID,ICODE,IKONS) IKONS=1 3000 CONTINUE CALL INITB(KMAP,KWID,ICODE)C IF(IOLDFL.GT.1)GOTO 2000 2000 CONTINUE8C DRAW OUR LABELS AND OTHERWISE INITIALIZE DISPLAY SHEET KZPPD=0 IF(IPSET.NE.0)GOTO 1000 IF(PZAP.EQ.0)CALL UVT100(ED,2) CALL UVT100(CUP,1,1) OSWIT=20 IPRSS=PROW IPCSS=PCOL IDRW=DROW IDCL=DCOL IF(LINIZZ.LE.1)CALL RECALC IF(PZAP.EQ.0)CALL DSPSHT(2) DCOL=IDCL DROW=IDRW PROW=IPRSS PCOL=IPCSSC 1000 CONTINUE IPSET=0 LINIZZ=LINIZZ+1 OSWIT=20-C ISSUE A PROMPT FOR COMMAND AND DO A COMMAND ICODE=0 CALL XQTCMD(ICODE) IF(ICODE.LT.30)GOTO 1843C HELP COMMAND AND SIMILAR... IF(ICODE.NE.400)GOTO 1847 CALL DSPSHT(10) ICODE=1)C CODE 10 IS PRINT SECRET CODE TO DSPSHT. GOTO 1843 1847 CONTINUE IF(ICODE.NE.420)GOTO 1849C CLOSE UNIT 1 JUST IN CASE... CLOSE(UNIT=1) KLVL=1 IPRSSS=PROW IPCSSS=PCOL CALL CALC PROW=IPRSSS PCOL=IPCSSS!C CLOSE CONSOLE LUN USED BY CALC. CLOSE(UNIT=1),C CLOSE ANY OTHER LUNS CALC MAY HAVE USED... CLOSE(UNIT=2) CLOSE(UNIT=3) C SET UP FOR REDRAW WHEN BACK... ICODE=-1 GOTO 1843 1849 CONTINUE IF(ICODE.NE.430)GOTO 1845$C TEST FUNCTION, TESTING EXPRESSION.C INHIBIT RECALCULATION... C COMMAND IS IN "XTNCMD" STRING. LLST=MIN0(80,XTNCNT) LFST=1 CALL DOENTR(XTNCMD,LFST,LLST)=C THIS SETS % VARIABLE AND WILL DO A CALC DIRECTLY. THEREFORE%C WE MUST INHIBIT AUTO RECALCULATION.BC NOTE WE HAVE TO CALL THIS FROM THE ROOT SINCE THE RECALC OVERLAY!C TREE OVERWRITES THE XQTCMD ONE. ICODE=1 GOTO 1843 1845 CONTINUE IVVV=ICODE-309308 CALL HELP(IVVV) IVVV=0 WRITE(6,5020)A5020 FORMAT(/'Type return to continue, Hn for other Help pages:')3 READ(IOLVL,3006,END=5600,ERR=5600)(FORM2(K),K=1,4)3006 FORMAT(80A1) IVVVV=FORM2(2) ivvx=form2(3)- IF(IVVVV.GE.48.AND.IVVVV.LE.57)IVVV=IVVVV-48& if(ivvx.lt.48.or.ivvx.gt.57)goto 9381c implement 2 digit help code. ivvvx=ivvx-48 ivvv=(ivvv*10)+ivvvx 9381 continue ivvv=min0(ivvv,maxhlp) IF(FORM2(1).EQ.'H')GOTO 93085C NOW CLEAR SCREEN AND TRY MORE COMMANDS AS BEFORE... ICODE=2C 1843 CONTINUE OSWIT=20 IPRSS=PROW IPCSS=PCOL IDRW=DROW IDCL=DCOL IF(LINIZZ.LE.1)CALL RECALC IF(IPSET.NE.0)GOTO 4110 DCOL=IDCL DROW=IDRW PROW=IPRSS PCOL=IPCSS 4110 CONTINUE IPSET=0 IF(ICODE.EQ.-1)GOTO 2000=C IN PORTACALC-VM, S COMMAND ALLOWS DEFAULT FORMAT CHANGE ANDAC TITLE CHANGE, BUT DOES NOT ALTER SHEET IN MEMORY... DON'T ALLOWC SCRATCH FILE SAVE STUFF...&C IF(ICODE.EQ.-2)CALL WRKFIL(1,FORM,3)C IF (ICODE.EQ.-2)CALL CLOSE(7) IF(ICODE.LE.-2)GOTO 3002C%C RECALCULATE SHEET NOW AUTOMAGICALLYFC IF ICODE=1, COMMAND JUST MOVES ON DISPLA00n]]0][Z[[[\[}Y, SO NO NEED TO RECALCULATEC THE ENTIRE SHEET.:C LIMIT NUMBER OF ITERATIONS AT ANY ONE TIME TO 20 HOWEVER KKMAX=20 3670 CONTINUE4 IF(ICODE.EQ.5.OR.ICODE.EQ.1.OR.RCFGX.EQ.1)GOTO 3671 CALL RECALC IPSET=0 KKMAX=KKMAX-1C IMPLEMENT VARY LOOP...@C ASSUME USRFCT MUSTR CONTOL KALKIT VARIABLE THEN TO GET LOOP TOC TERMINATE SOMETIME. KKMAX=MIN0(KKMAX,KALKIT) IF(KKMAX.GT.0)GOTO 3670 3671 CONTINUE*C IF(ICODE.NE.1.AND.RCFGX.NE.1)CALL RECALCC@C DISPLAY SHEET NOW. ONLY ALTERS ENTRIES INVALIDATED BY COMMAND. IF(ICODE.NE.2)GOTO 21HC ICODE=2 = REFRESH DISPLAY. ZERO ALL NUMBERS AND CAUSE TOTAL REDISPLAY. DO 22 N1=1,DRW DO 22 N2=1,DCL&C SET NUMBER DISPLAYED TO WEIRD VALUE.&22 DVS(N1,N2)=DVS(N1,N2)+.000000000034 IF(PZAP.EQ.0)CALL UVT100(ED,2) CALL UVT100(CUP,1,1) 21 CONTINUE/ IF(ICODE.NE.5.AND.PZAP.EQ.0)CALL DSPSHT(ICODE) DCOL=IDCL DROW=IDRW PROW=IPRSS PCOL=IPCSS GOTO 1000 5600 CONTINUE(C ERROR ON READ FROM IOLVL HANDLED HERE. REWIND 5 CLOSE(UNIT=3) IOLVL=5 GOTO 1000 END SUBROUTINE IN2AS(ROW,CHRS) INTEGER*2 ROW LOGICAL*1 CHRS(4) INTEGER*4 AC,AC1,AC2 DO 1 N1=1,4 1 CHRS(N1)=32:C CONVERT ROW TO LETTERS. ASSUMES COL=2 OR MORE. ROW 1=A-ZC ROW 2=AA-AZ, THEN BA-BZ ETC. AC=ROW DO 2 N=1,4 M=5-NC CONVERT BACKWARDS INTO CHRS AC1=(AC/26) AC2=AC1*26 IX=AC-AC2( IF(.NOT.(IX.EQ.0.AND.AC1.GT.0))GOTO 772.C CORRECT SO WE GET Z, NOT A FOR LABELS. IX=26 AC1=AC1-1 772 CONTINUE IF(IX.GT.0)CHRS(M)=IX+64 C CONVERT TO ASCII A-Z CHARACTER AC=AC1 2 CONTINUEC JUST IGNORE ANY OVERFLOW. RETURN END SUBROUTINE HELP(LVL)KC PRINT HELP INFO ON SCREEN USING FIRST 22 LINES. ASSUME XQTCMD INVALIDATESC THE DISPLAY.G PARAMETER CUP = 1, CUU = 2, CUD = 3, CUF = 4, CUB = 5, DECDWL = 6G $, DECDHL = 7, DECRC = 8, DECSC = 9, DECSWL = 10, ED = 11, EL = 12A $, SGR = 13, NEL = 14, SCS = 15, SM = 16, RM = 17, ANSI = 18 PARAMETER TMREFN = 1 LOGICAL*1 FORM(100) CALL UVT100(ANSI) CALL UVT100(ED,2)C CALL UVT100(RM,8)C CALL UVT100(RM,5)&C LEVEL 0 (LEVELS NOT YET IMPLEMENTED) CALL UVT100(CUP,1,1) INCLUDE 'PCHELP.PRO' WRITE(6,100) CALL UVT100(CUP,2,1) WRITE(6,101) CALL UVT100(CUP,3,1) WRITE(6,102) CALL UVT100(CUP,4,1) WRITE(6,103) CALL UVT100(CUP,5,1) WRITE(6,104) CALL UVT100(CUP,6,1) WRITE(6,105) CALL UVT100(CUP,7,1) WRITE(6,106) CALL UVT100(CUP,8,1) WRITE(6,107) CALL UVT100(CUP,9,1) WRITE(6,108) CALL UVT100(CUP,10,1) WRITE(6,109) CALL UVT100(CUP,11,1) WRITE(6,110) CALL UVT100(CUP,12,1) WRITE(6,111) CALL UVT100(CUP,13,1) WRITE(6,112) CALL UVT100(CUP,14,1) WRITE(6,113) CALL UVT100(CUP,15,1) WRITE(6,114) CALL UVT100(CUP,16,1) WRITE(6,122) CALL UVT100(CUP,17,1) WRITE(6,115) CALL UVT100(CUP,18,1) WRITE(6,116) CALL UVT100(CUP,19,1) WRITE(6,117) CALL UVT100(CUP,20,1) WRITE(6,118) CALL UVT100(CUP,21,1) WRITE(6,119) CALL UVT100(CUP,22,1) WRITE(6,120) CALL UVT100(CUP,23,1) WRITE(6,121) 9000 CONTINUE CALL UVT100(CUP,24,1)2100 FORMAT('EN expression - Insert expression at ' 1 'current pos.')C101 FORMAT('M1,M2,M3, or M4 - Motion up, down, left, right (auto)')?102 FORMAT('DL var1:var2 Rn:m (or Cn:m) - Display Loc phys to ' 1 'row/col n-m')8103 FORMAT('DF var1:var2 [format] - set display format.'$ 1 ' A or L shows text, else #')=104 FORMAT('DT var1:var2 F or I - Set display number type to' 1 ' flt or int')B105 FORMAT('DW n,m - set width of column n of display to m chars')C106 FORMAT('DB c,r - Set display bounds at c cols, r rows (chars)')5109 FORMAT('L var - Move cursor to var named (phys.)'/ 1 ' OA var or OR var=move displ. origin')B107 FORMAT('V - redraw screen. VF - Disply. formulas. VM=no auto.' 1 ' redraw')B108 FORMAT('K - Drop into interactive calc. *E returns to sheet.')?110 FORMAT('ZA - zero all. ZE var1:var2 - zero var1 thru var2')A111 FORMAT('X - exit program. W write screen to file or printer')A112 FORMAT('CV v1:v2 v3:v4 cop00n]o]Z]YTADATADATADATADATADATAy value from v1:v2 to v3:v4 range;'$ 1 'CR=copy and relocate vars.')@113 FORMAT('CD v1:v2 v3:v4 copy display format. CF=copy formula' 1 '. CA=copy all')F114 FORMAT('P Put screen to file. G=get screen from file at curr.loc')7115 FORMAT('1,2,3,4 - move cursor Up,Down,Left,Right. '/ 1 'A[A/R]n[R/C] Add abs/reloc n Row/Col')C116 FORMAT('Variable ranges are var1[:var2]. Var names P#+n#+m or')E117 FORMAT('D#+n#+m are current Phys or Display locs + or - offsets')C118 FORMAT('Expressions may use multiple stmts, use \ separators.')B119 FORMAT('Use std FORTRAN function names + MIN, MAX, AVG, STD')B120 FORMAT('or SUM. IF stmt format is IF [v1.REL.v2]yes-expr|else' 1 ' expr.')4121 FORMAT('Rels are .LT.,.GT.,.EQ.,.NE.,.GE.,.LE.')F122 FORMAT('R Recompute sheet. RM Recompute Manually only (R resets)') RETURN ENDC SUBROUTINES FOR SPREDSHT.PR1C FILE SPREDSHT.PR2%C INITIALIZER SEGMENTS OF SPREADSHEET# SUBROUTINE INITA1(KMAP,KWID,ICODE)C SPREAD SHEET DRIVER PROGRAM#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY. INCLUDE 'VKLUGPRM.FTN'C PARAMETER MXCOLS=6,MXROWS=20C PARAMETER RRW = 32&C PARAMETER RCL = 32 ! REAL ROWS, COLSC PARAMETER DRW = 8-C PARAMETER DCL = 8 ! DISPLAY MAX ROWS, COLS.C PARAMETER RRCL = 1024C PARAMETER RRCL=RRW*RCL=C NOTE: THROUGHOUT, ROWS ARE ACTUALLY DOWN, COLUMNS ACROSS ONAC SCREEN. ROW 0 IN DISPLAY IS THE 27 ACCUMULATORS A-Z AND %, WITH>C % BEING THE LAST-COMPUTED VALUE FROM THE CALC PROGRAM, WHICHAC KNOWS HOW TO ACCESS THE DATA BUT IS JUST PASSED COMMAND STRINGS C FROM THE DISK BASED FILE HERE.C-C VT100 DISPLAY CONTROL PARAMETER DEFINITIONSCG PARAMETER CUP = 1, CUU = 2, CUD = 3, CUF = 4, CUB = 5, DECDWL = 6G $, DECDHL = 7, DECRC = 8, DECSC = 9, DECSWL = 10, ED = 11, EL = 12A $, SGR = 13, NEL = 14, SCS = 15, SM = 16, RM = 17, ANSI = 18C PARAMETER TMREFN = 1 INTEGER*2 PRL(6) BYTE NOWRAP ( 2 ) LOGICAL*1 FORM,FVLD,CMDLIN(132) INTEGER*4 VNLT$ DIMENSION FORM(128),FVLD(RRWP,RCLP)AC FVLD FLAG 0 = NO FORMULA, -1= DISPLAY FORMULA ITSELF, NOT VALUE=C 1=VALID ACTIVE FORMULA THERE TO EVALUATE. INITIALLY ALL 0'SC SO INITIALLY IGNORE.CDC ROUTINE IN2AS COMPUTES ASCII CHARACTER NAMES OF SUBSCRIPTS IN1,IN2=C SO DISPLAY CAN HAVE THEM. IT MUST BE THE INVERSE OF VARSCN. INTEGER*2 RRWACT,RCLACT COMMON/RCLACT/RRWACT,RCLACT INTEGER*2 ICREF,IRREF COMMON/MIRROR/ICREF,IRREF/ integer*2 idol1,idol2,idol3,idol4,idol5,idol6, 1 IDOL7,IDOL82 common/dollr/idol1,idol2,idol3,idol4,idol5,idol6, 1 IDOL7,IDOL8( INTEGER*2 PROW,PCOL,DROW,DCOL,DRWV,DCLV* COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRWV,DCLV( DIMENSION NRDSP(DRW,DCL),NCDSP(DRW,DCL) COMMON/D2R/NRDSP,NCDSP& INTEGER*2 IPGMAX,LPGMXF,IPGMOD,LPGMOD* COMMON/FILEMX/IPGMAX,LPGMXF,IPGMOD,LPGMODBC LENGTHS (IN K) OF FILES FOR VALUES OR FORMULAS ARE IPGMAX,LPGMXFCC IPGMOD AND LPGMOD CONTROL PACKING MODE IN THE CORRESPONDING FILES LOGICAL*1 OARRY(100),FORM2(4) INTEGER*2 OSWIT,OCNTR COMMON/OAR/OSWIT,OCNTR,OARRY+C COMMON OAR SWITCHES OUTPUT OFF IF OSWIT=2" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9) INTEGER*2 KLVL COMMON/KLVL/KLVL INTEGER*2 IOLVL COMMON/IOLVL/IOLVLDC IOLVL IS LUN FOR XQTCMD TO USE (NORMALLY 3 FOR INDIRECT FILES OR 5?C FOR TERMINAL. WE USE 5,6 FOR TERMINAL INPUT, OUTPUT NORMALLY.) LOGICAL*1 AVBLS(20,27),VBLS(8,RRWP,RCLP) REAL*8 XXV(RRWP,RCLP)" EQUIVALENCE(XXV(1,1),VBLS(1,1,1)) COMMON/V/TYPE,AVBLS,VBLS,VLENFC DEFFMT IS THE DEFAULT FORMAT FOR NUMERICS. INITIALLY IT WILL BE F9.2 LOGICAL*1 DEFFMT(10),DVFMT(12) EQUIVALENCE(DVFMT(2),DEFFMT(1)) COMMON/DEFVBX/DVFMT LOGICAL*1 NMSH(80) COMMON/NMSH/NMSH INTEGER*2 XTCFG,IPSET,XTNCNT LOGICAL*1 XTNCMD(80)) COMMON/XCMD/XTNCNT,XTNCMD,XTCFG,IPSETC VARY FLAG ITERATIO00o]]0][Z[[[\[}N COUNT INTEGER KALKIT COMMON/VARYIT/KALKIT INTEGER*2 FORMFG,RCFGX,PZAP COMMON/FFGG/FORMFG,RCFGX,PZAP)C FORMFG FLAGS FORMAT OF DISPLAY GLOBALLY>C RCFGX FLAGS WHETHER TO DO AUTO RECALCULATION. IF 1, INHIBITS=C AUTO RECALC (USE R COMMAND TO DO A CALC.). RM COMMAND TURNS C RCFGX ON.?C PZAP CONTROLS WHETHER TO REDRAW SCREEN. IF ZERO, NORMAL. IF 1>C (NONZERO ANYHOW), INHIBITS RE DISPLAY. V COMMAND RESETS TO 0 C AND VM INHIBITS. (SETS TO 1).CCC DISPLAY ARRAY WILL KEEP A COPY OF VARIABLES DISPLAYED AND FORMATSAC USED LOCALLY WHICH DISPLAY ROUTINE CAN USE TO SEE WHAT ACTUALLYBC NEEDS TO BE REFRESHED ON SCREEN. DRWV AND DCLV ARE COLS, ROWS OF#C DISPLAY ACTUALLY USED FOR SCREEN. INTEGER*2 CWIDS(DRW)HC CWIDS IS WIDTHS IN CHARACTERS OF COLUMNS ON DISPLAY. NOTE THAT BECAUSEHC OF PECULIAR INVERSION WHICH I AM TOO LAZY TO CORRECT IT IS DIMENSIONEDC AS DRW NOT DCL. INTEGER*4 I4TMP REAL*8 DVS(DRW,DCL) COMMON /FVLDC/FVLDC BITMAPC LOGICAL*1 IBITMPC DIMENSION IBITMP(BRRCL)C COMMON/INITD/IBITMPC LOGICAL*1 DFMTS(10,DRW,DCL)C 10 CHARACTERS PER ENTRY. COMMON/DSPCMN/DVS,CWIDS DATA NOWRAP / "24,0 /7C INITIAL DEFAULT FORMAT FOR NUMERICS is set at runtimeC SET UP TERMINAL%C SET IT NOWRAP, NO CARRIAGE CONTROL.C IDOL7=1 IF SCROLLING ENABLED IDOL7=1-C SETUP INITIAL DISPLAY LIMITS ACTUALLY USED. RRWACT=1 RCLACT=1 IOLVL=5 DRWV=MXCOLS DCLV=MXROWS KLVL=1 KALKIT=0 ICODE=0 ICREF=RRW/10 IRREF=RCL/10 idol3=0 idol4=0 idol5=20000 idol6=20000 RCFGX=0 FORMFG=0<C must be able to turn off FORTRAN carriage control somehow.< OPEN ( UNIT = 5, FILE='TI:',CARRIAGECONTROL = 'NONE' )< OPEN ( UNIT = 6, FILE='TI:',CARRIAGECONTROL = 'NONE' )C CHANGE TI: TO TT: FOR VMS CALL UVT100(ANSI))C PERFORM SYSTEM DEPENDENT INITIALIZATION CALL TTYINIC-C PERFORM ERROR TRAPPER CALLS HERE AS NEEDED.DC SET MOST ERRORS TO CONTINUE, WITH FILE ERRORS CONTINUATION ON ERR= C PROCESSING.5C FOR THE MOMENT COMMENT OUT AND FILL IN WITH VERSIONC TAILORED TO DESIRED OS DO 6988 KK=68,943 IF(KK.EQ.69.OR.KK.EQ.85.OR.(KK.GE.76.AND.KK.LE.79)- 1 .OR.(KK.GE.87.AND.KK.LE.90))GOTO 69882 CALL ERRSET(KK,.TRUE.,.FALSE.,.FALSE.,.FALSE.,15) 6988 CONTINUE2 CALL ERRSET(59,.TRUE.,.FALSE.,.FALSE.,.FALSE.,15)2 CALL ERRSET(61,.TRUE.,.FALSE.,.FALSE.,.FALSE.,15)2 CALL ERRSET(63,.TRUE.,.FALSE.,.FALSE.,.FALSE.,15)2 CALL ERRSET(64,.TRUE.,.FALSE.,.FALSE.,.FALSE.,15)C)CC SET UP ENDFILE TO USE ERR= TYPE RETURN1 CALL ERRSET(24,.TRUE.,.TRUE.,.FALSE.,.FALSE.,15)CC NO SUCH FILE USES ERR= TOO.1 CALL ERRSET(29,.TRUE.,.TRUE.,.FALSE.,.FALSE.,15)?CC THAT'S IT. ERRSET ROUTINE WON'T ALWAYS ACCEPT NO ERR= RETURNBCC BUT THAT'S AS IT SHOULD BE. NOTICE THIS CLEANS THE DISPLAY VERYACC CONSIDERABLY AND MAKES PROGRAM CRASHES DUE TO USER ERRORS MUCHCC LESS LIKELY.C CALL UVT100(RM,8) CALL UVT100(ED,2) CALL UVT100(SCS,0,1) CALL UVT100(SCS,1,2) CALL UVT100(CUP,5,10)'C ZERO THE VARIABLES TO START OFF WITH. DO 2070 KK=1,20 DO 2070 KKK=1,272070 AVBLS(KK,KKK)=0C SKIP ZEROING VARIABLES... C CALL WSSETC WSSET SETS UP WORK SPACEC DO 2071 KK=1,RRWC DO 2071 KKK=1,RCLC2071 XXV(KK,KKK)=0.C SET UP WORK ARRAY BITMAP CALL WRKFIL(1,FORM,2) CALL UVT100(SGR,7) WRITE(6,3010)3010 FORMAT('Analyti!Calc-PRO') CALL UVT100(CUP,6,12) WRITE(6,3278)3278 FORMAT('V20-01Q') CALL UVT100(SGR,0) CALL UVT100(CUP,10,3) WRITE(6,3013))3013 FORMAT(' .... The Analyst''s Tool') CALL UVT100(CUP,11,5) WRITE(6,3014)43014 FORMAT(' by Glenn and Mary Everhart, (C) 1983') CALL UVT100(CUP,12,1)C NOW GET ON WITH USEFUL WORK. PRL ( 2 ) = 1 PRL ( 3 ) = 0 CALL UVT100 ( ANSI )!C RESET MODE 8 (VT100 AUTOREPEAT)C CALL UVT100 ( RM, 8 )2C RESET MODE 5 (I.E., SCREEN TO BLACK BACKGROUND).C CALL UVT100 ( RM, 5 ) KWID=10 KMAP=1 RETURN END) SUBROUTINE INITA2(KMAP,KWID,ICODE,IKONS)C SPREAD SHEET DRIVER PROGRAM#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, 00o]]Z]YTADATADATADATADATADATAOR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY. INCLUDE 'VKLUGPRM.FTN'C PARAMETER MXCOLS=6,MXROWS=20C PARAMETER RRW = 32&C PARAMETER RCL = 32 ! REAL ROWS, COLSC PARAMETER DRW = 8-C PARAMETER DCL = 8 ! DISPLAY MAX ROWS, COLS.C PARAMETER RRCL = 1024C PARAMETER RRCL=RRW*RCL=C NOTE: THROUGHOUT, ROWS ARE ACTUALLY DOWN, COLUMNS ACROSS ONAC SCREEN. ROW 0 IN DISPLAY IS THE 27 ACCUMULATORS A-Z AND %, WITH>C % BEING THE LAST-COMPUTED VALUE FROM THE CALC PROGRAM, WHICHAC KNOWS HOW TO ACCESS THE DATA BUT IS JUST PASSED COMMAND STRINGS C FROM THE DISK BASED FILE HERE.C-C VT100 DISPLAY CONTROL PARAMETER DEFINITIONSCG PARAMETER CUP = 1, CUU = 2, CUD = 3, CUF = 4, CUB = 5, DECDWL = 6G $, DECDHL = 7, DECRC = 8, DECSC = 9, DECSWL = 10, ED = 11, EL = 12A $, SGR = 13, NEL = 14, SCS = 15, SM = 16, RM = 17, ANSI = 18C PARAMETER TMREFN = 1 INTEGER*2 PRL(6) BYTE NOWRAP ( 2 ) LOGICAL*1 FORM,FVLD,CMDLIN(132) INTEGER*4 VNLT$ DIMENSION FORM(128),FVLD(RRWP,RCLP)AC FVLD FLAG 0 = NO FORMULA, -1= DISPLAY FORMULA ITSELF, NOT VALUE=C 1=VALID ACTIVE FORMULA THERE TO EVALUATE. INITIALLY ALL 0'SC SO INITIALLY IGNORE.CDC ROUTINE IN2AS COMPUTES ASCII CHARACTER NAMES OF SUBSCRIPTS IN1,IN2=C SO DISPLAY CAN HAVE THEM. IT MUST BE THE INVERSE OF VARSCN. INTEGER*2 RRWACT,RCLACT COMMON/RCLACT/RRWACT,RCLACT/ integer*2 idol1,idol2,idol3,idol4,idol5,idol6, 1 IDOL7,IDOL82 common/dollr/idol1,idol2,idol3,idol4,idol5,idol6, 1 IDOL7,IDOL8( INTEGER*2 PROW,PCOL,DROW,DCOL,DRWV,DCLV* COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRWV,DCLV( DIMENSION NRDSP(DRW,DCL),NCDSP(DRW,DCL) COMMON/D2R/NRDSP,NCDSP& INTEGER*2 IPGMAX,LPGMXF,IPGMOD,LPGMOD* COMMON/FILEMX/IPGMAX,LPGMXF,IPGMOD,LPGMODBC LENGTHS (IN K) OF FILES FOR VALUES OR FORMULAS ARE IPGMAX,LPGMXFCC IPGMOD AND LPGMOD CONTROL PACKING MODE IN THE CORRESPONDING FILES LOGICAL*1 OARRY(100),FORM2(4) INTEGER*2 OSWIT,OCNTR COMMON/OAR/OSWIT,OCNTR,OARRY+C COMMON OAR SWITCHES OUTPUT OFF IF OSWIT=2" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9) INTEGER*2 KLVL COMMON/KLVL/KLVL INTEGER*2 IOLVL COMMON/IOLVL/IOLVLDC IOLVL IS LUN FOR XQTCMD TO USE (NORMALLY 3 FOR INDIRECT FILES OR 5?C FOR TERMINAL. WE USE 5,6 FOR TERMINAL INPUT, OUTPUT NORMALLY.) LOGICAL*1 AVBLS(20,27),VBLS(8,RRWP,RCLP) REAL*8 XXV(RRWP,RCLP)" EQUIVALENCE(XXV(1,1),VBLS(1,1,1)) COMMON/V/TYPE,AVBLS,VBLS,VLENFC DEFFMT IS THE DEFAULT FORMAT FOR NUMERICS. INITIALLY IT WILL BE F9.2 LOGICAL*1 DEFFMT(10),DVFMT(12) EQUIVALENCE(DVFMT(2),DEFFMT(1)) COMMON/DEFVBX/DVFMT LOGICAL*1 NMSH(80) COMMON/NMSH/NMSH INTEGER*2 XTCFG,IPSET,XTNCNT INTEGER*2 ICREF,IRREF COMMON/MIRROR/ICREF,IRREF LOGICAL*1 XTNCMD(80)) COMMON/XCMD/XTNCNT,XTNCMD,XTCFG,IPSETC VARY FLAG ITERATION COUNT INTEGER KALKIT COMMON/VARYIT/KALKIT INTEGER*2 FORMFG,RCFGX,PZAP COMMON/FFGG/FORMFG,RCFGX,PZAP)C FORMFG FLAGS FORMAT OF DISPLAY GLOBALLY>C RCFGX FLAGS WHETHER TO DO AUTO RECALCULATION. IF 1, INHIBITS=C AUTO RECALC (USE R COMMAND TO DO A CALC.). RM COMMAND TURNS C RCFGX ON.?C PZAP CONTROLS WHETHER TO REDRAW SCREEN. IF ZERO, NORMAL. IF 1>C (NONZERO ANYHOW), INHIBITS RE DISPLAY. V COMMAND RESETS TO 0 C AND VM INHIBITS. (SETS TO 1).CCC DISPLAY ARRAY WILL KEEP A COPY OF VARIABLES DISPLAYED AND FORMATSAC USED LOCALLY WHICH DISPLAY ROUTINE CAN USE TO SEE WHAT ACTUALLYBC NEEDS TO BE REFRESHED ON SCREEN. DRWV AND DCLV ARE COLS, ROWS OF#C DISPLAY ACTUALLY USED FOR SCREEN. INTEGER*2 CWIDS(DRW)HC CWIDS IS WIDTHS IN CHARACTERS OF COLUMNS ON DISPLAY. NOTE THAT BECAUSEHC OF PECULIAR INVERSION WHICH I AM TOO LAZY TO CORRECT IT IS DIMENSIONEDC AS DRW NOT DCL. INTEGER*4 I4TMP REAL*8 DVS(DRW,DCL) COMMON /FVLDC/FVLDC BITMAPC LOGICAL*1 IBITMPC DIMENSION IBITMP(BRRCL)C COMMON/INITD/IBITMPC LOGICAL*1 DFMTS(10,DRW,DCL)C 10 CHARACTERS PER ENTRY. COMMON/DSPCMN/DVS,CWIDS DATA NOWRAP / "24,0 /C KMAP=1 IF(IKONS.EQ.0)GOTO 3000 3002 CONTINUE CALL UVT100(CUP,1,1) WRITE(6,3003),3003 FORMAT(' Alter Displa00o]]0][Z[[[\[}y Windows [Y/N]:')' READ(IOLVL,3006,END=5600,ERR=5600)FORM3006 FORMAT(80A1,50A1)/ IF(FORM(1).NE.'Y'.AND.FORM(1).NE.'y')GOTO 3000C ALTER MAPPING DESIRED WRITE(6,3001)53001 FORMAT(' ENTER NEW GLOBAL COLUMN WIDTH, 1-120:')' READ(IOLVL,3004,END=5600,ERR=5600)KWID3004 FORMAT(I3)$ IF(KWID.LT.1.OR.KWID.GT.120)KWID=10 WRITE(6,3008);3008 FORMAT(' Reset display to Upper Left of sheet [Y/N]:')' READ(IOLVL,3006,END=5600,ERR=5600)FORM KMAP=1, IF(FORM(1).NE.'Y'.AND.FORM(1).NE.'y')KMAP=0 WRITE(6,7802)@7802 FORMAT(' Modify extended mapping (Reply N if extended area' 1 ' not empty):')' READ(IOLVL,3006,END=5600,ERR=5600)FORM/ IF(FORM(1).NE.'Y'.AND.FORM(1).NE.'y')GOTO 3000 WRITE(6,7800)RCL:7800 FORMAT(' How many Cols to move over on row over ',I4)( READ(IOLVL,3004,END=5600,ERR=5600)ICREF+ IF(ICREF.LT.0.OR.ICREF.GT.RRW)ICREF=RRW/10 WRITE(6,7801)RRW:7801 FORMAT(' How many Rows to move down on col over ',I4)( READ(IOLVL,3004,END=5600,ERR=5600)IRREF/ IF(IRREF.LT.0.OR.IRREF.GT.(RCL-1))IRREF=RCL/10C 3000 CONTINUE RETURN 5600 CONTINUE IOLVL=5 CLOSE(UNIT=3) REWIND 5 RETURN END" SUBROUTINE INITB(KMAP,KWID,ICODE) INCLUDE 'VKLUGPRM.FTN'C PARAMETER MXCOLS=6,MXROWS=20C PARAMETER RRW = 32&C PARAMETER RCL = 32 ! REAL ROWS, COLSC PARAMETER DRW = 8-C PARAMETER DCL = 8 ! DISPLAY MAX ROWS, COLS.C PARAMETER RRCL = 1024C PARAMETER RRCL=RRW*RCL=C NOTE: THROUGHOUT, ROWS ARE ACTUALLY DOWN, COLUMNS ACROSS ONAC SCREEN. ROW 0 IN DISPLAY IS THE 27 ACCUMULATORS A-Z AND %, WITH>C % BEING THE LAST-COMPUTED VALUE FROM THE CALC PROGRAM, WHICHAC KNOWS HOW TO ACCESS THE DATA BUT IS JUST PASSED COMMAND STRINGS C FROM THE DISK BASED FILE HERE.C-C VT100 DISPLAY CONTROL PARAMETER DEFINITIONSCG PARAMETER CUP = 1, CUU = 2, CUD = 3, CUF = 4, CUB = 5, DECDWL = 6G $, DECDHL = 7, DECRC = 8, DECSC = 9, DECSWL = 10, ED = 11, EL = 12A $, SGR = 13, NEL = 14, SCS = 15, SM = 16, RM = 17, ANSI = 18C PARAMETER TMREFN = 1 INTEGER*2 PRL(6) BYTE NOWRAP ( 2 ) LOGICAL*1 FORM,FVLD,CMDLIN(132) INTEGER*4 VNLT$ DIMENSION FORM(128),FVLD(RRWP,RCLP)AC FVLD FLAG 0 = NO FORMULA, -1= DISPLAY FORMULA ITSELF, NOT VALUE=C 1=VALID ACTIVE FORMULA THERE TO EVALUATE. INITIALLY ALL 0'SC SO INITIALLY IGNORE.CDC ROUTINE IN2AS COMPUTES ASCII CHARACTER NAMES OF SUBSCRIPTS IN1,IN2=C SO DISPLAY CAN HAVE THEM. IT MUST BE THE INVERSE OF VARSCN. INTEGER*2 RRWACT,RCLACT COMMON/RCLACT/RRWACT,RCLACT/ integer*2 idol1,idol2,idol3,idol4,idol5,idol6, 1 IDOL7,IDOL82 common/dollr/idol1,idol2,idol3,idol4,idol5,idol6, 1 IDOL7,IDOL8( INTEGER*2 PROW,PCOL,DROW,DCOL,DRWV,DCLV* COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRWV,DCLV( DIMENSION NRDSP(DRW,DCL),NCDSP(DRW,DCL) COMMON/D2R/NRDSP,NCDSP& INTEGER*2 IPGMAX,LPGMXF,IPGMOD,LPGMOD* COMMON/FILEMX/IPGMAX,LPGMXF,IPGMOD,LPGMODBC LENGTHS (IN K) OF FILES FOR VALUES OR FORMULAS ARE IPGMAX,LPGMXFCC IPGMOD AND LPGMOD CONTROL PACKING MODE IN THE CORRESPONDING FILES LOGICAL*1 OARRY(100),FORM2(4) INTEGER*2 OSWIT,OCNTR COMMON/OAR/OSWIT,OCNTR,OARRY+C COMMON OAR SWITCHES OUTPUT OFF IF OSWIT=2" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9) INTEGER*2 KLVL COMMON/KLVL/KLVL INTEGER*2 IOLVL COMMON/IOLVL/IOLVLDC IOLVL IS LUN FOR XQTCMD TO USE (NORMALLY 3 FOR INDIRECT FILES OR 5?C FOR TERMINAL. WE USE 5,6 FOR TERMINAL INPUT, OUTPUT NORMALLY.) LOGICAL*1 AVBLS(20,27),VBLS(8,RRWP,RCLP) REAL*8 XXV(RRWP,RCLP)" EQUIVALENCE(XXV(1,1),VBLS(1,1,1)) COMMON/V/TYPE,AVBLS,VBLS,VLENFC DEFFMT IS THE DEFAULT FORMAT FOR NUMERICS. INITIALLY IT WILL BE F9.2 LOGICAL*1 DEFFMT(10),DVFMT(12) EQUIVALENCE(DVFMT(2),DEFFMT(1)) COMMON/DEFVBX/DVFMT LOGICAL*1 NMSH(80) COMMON/NMSH/NMSH INTEGER*2 XTCFG,IPSET,XTNCNT LOGICAL*1 XTNCMD(80)) COMMON/XCMD/XTNCNT,XTNCMD,XTCFG,IPSETC VARY FLAG ITERATION COUNT INTEGER KALKIT COMMON/VARYIT/KALKIT INTEGER*2 FORMFG,RCFGX,PZAP COMMON/FFGG/FORMFG,RCFGX,PZAP)C FORMFG FLAGS FORMAT OF DISPLAY GLOBALLY>C RCFGX FLAGS WHETHER TO DO AUTO RECALCULATION. IF 1, IN00o]]Z]YTADATADATADATADATADATAHIBITS=C AUTO RECALC (USE R COMMAND TO DO A CALC.). RM COMMAND TURNS C RCFGX ON.?C PZAP CONTROLS WHETHER TO REDRAW SCREEN. IF ZERO, NORMAL. IF 1>C (NONZERO ANYHOW), INHIBITS RE DISPLAY. V COMMAND RESETS TO 0 C AND VM INHIBITS. (SETS TO 1).CCC DISPLAY ARRAY WILL KEEP A COPY OF VARIABLES DISPLAYED AND FORMATSAC USED LOCALLY WHICH DISPLAY ROUTINE CAN USE TO SEE WHAT ACTUALLYBC NEEDS TO BE REFRESHED ON SCREEN. DRWV AND DCLV ARE COLS, ROWS OF#C DISPLAY ACTUALLY USED FOR SCREEN. INTEGER*2 CWIDS(DRW)HC CWIDS IS WIDTHS IN CHARACTERS OF COLUMNS ON DISPLAY. NOTE THAT BECAUSEHC OF PECULIAR INVERSION WHICH I AM TOO LAZY TO CORRECT IT IS DIMENSIONEDC AS DRW NOT DCL. INTEGER*4 I4TMP REAL*8 DVS(DRW,DCL) COMMON /FVLDC/FVLDC BITMAPC LOGICAL*1 IBITMPC DIMENSION IBITMP(BRRCL)C COMMON/INITD/IBITMPC LOGICAL*1 DFMTS(10,DRW,DCL)C 10 CHARACTERS PER ENTRY. COMMON/DSPCMN/DVS,CWIDS DATA NOWRAP / "24,0 /C idol5=20000 idol6=20000<C INITIALLY SET JRCL TO RCL = NO. OF ROWS TO BE IN WORK FILE JRCL=RCLE PZAP=0 XTCFG=0 IPSET=0 C ZERO BITMAP C DO 36 N1=1,BRRCLC36 IBITMP(N1)=0 LINIZZ=0, CALL UVT100(CUP,14,1) WRITE(6,3588)?3588 FORMAT('Enter new floating numeric format default [Y/N]:') ' READ(IOLVL,3006,END=5600,ERR=5600)FORMS3006 FORMAT(80A1,50A1)/ IF(FORM(1).NE.'Y'.AND.FORM(1).NE.'y')GOTO 3589FC ENTER NEW DEFAULT.6888 CALL UVT100(CUP,14,1) CALL UVT100(EL,2)#C LINE NOW ERASED... GET NEW FORMATE WRITE(6,3590)/3590 FORMAT('Enter new format. Suggest F10.2>')A' READ(IOLVL,3006,END=5600,ERR=5600)FORMW;C NOW HAVE HIS DESIRED FORMAT. COPY INTO THE DEFAULT ARRAY.OC DEFFMT IS THAT.O DO 3591 N1=1,10 KKK=FORM(N1)T KKK=MAX0(32,KKK)C ASSUME NMSH COMPLETELY INIT'DU3591 DEFFMT(N1)=KKKA.C CHECK ITS LEGALITY BY TRYING TO USE IT ONCE. XX=3.14159O! ENCODE(78,DVFMT,NMSH,ERR=6888)XXE)C FAILSAFE: RE-ASK IF IT CAN'T ENCODE PI.A?C IF IT FAILS, PROGRAM WILL CRASH AND FILE WON'T GET CLOBBERED. 3589 CONTINUE  CALL UVT100(CUP,15,1) WRITE(6,3005)%3005 FORMAT(' Title of Spreadsheet:')1' READ(IOLVL,3006,END=5600,ERR=5600)FORMC- IF(FORM(1).LE.32.AND.FORM(2).LE.32)GOTO 7801R DO 7802 III=1,807802 NMSH(III)=FORM(III) 7801 CONTINUE (C ****** IF S OPTION GIVEN THEN ICODE=-2>C THEREFORE, DON'T ASK DISK SIZE ETC, BUT ALLOW RESET OF TITLEC AND DEFAULT FORMATS. IF(ICODE.EQ.-2) GOTO 7831C ****** CALL UVT100(CUP,16,1) WRITE(6,2056))2056 FORMAT(' Give Max Rows to be used:')% READ(IOLVL,7202,END=5600,ERR=5600)KRT IF(KR.LE.0)KR=RCL CALL UVT100(CUP,17,1) WRITE(6,2057))2057 FORMAT(' Give Max Cols to be used:')R% READ(IOLVL,7202,END=5600,ERR=5600)KC, IF(KC.LE.0)KC=RRWC KKK=(KR-1)*RRW+KCI CALL REFLEC(KR,KC,KKK)r XKKKK=KR*KC XKDF=XKKKK/64.5 XKDN=XKKKK/100..C COMPUTED ABOVE THE MIN # OF K FOR DISK FILES CALL UVT100(CUP,18,1) WRITE(6,2058)XKDN,XKDF2B2058 FORMAT(' Mins=',F9.0' K Value file, ',F9.0,' K Formula file')#C KKK IS MAX INDEX TO BE USED HERE.S CALL UVT100(CUP,21,1) WRITE(6,7201)47201 FORMAT(' Give disk size (K) for Value Memory:')) READ(IOLVL,7202,END=5600,ERR=5600)IPGMAX)7202 FORMAT(I6)U IPGMOD=KKKS IF(IPGMAX.LT.0)IPGMOD=0 IPGMAX=IABS(IPGMAX)) IF(IPGMAX.LE.0.OR.IPGMAX.GT.512)IPGMAX=1L CALL UVT100(CUP,22,1) WRITE(6,7203)67203 FORMAT(' Give disk size (K) for Formula Memory:')) READ(IOLVL,7202,END=5600,ERR=5600)LPGMXFR LPGMOD=KKKR IF(LPGMXF.LT.0)LPGMOD=0 LPGMXF=IABS(LPGMXF)@C IF NUMBERS ARE ENTERED NEGATIVE, SET MODE TO "SLOW, FILE-SPACE4C CONSERVING" PACKING, SCATTERING PAGES ACROSS FILE.5 IF(LPGMXF.LE.0.OR.LPGMXF.GT.1024)LPGMXF=(IPGMAX*3)/2Y$C NULL TERMINATE ALL FORMAT STRINGS.FC SET MAX WIDTH FOR PRINT TO DIMENSION OF THE BUFFER. NOTE THIS IS THEBC USUAL HARDWARE MAXIMUM SO WE DON'T WORRY TOO MUCH ABOUT IT. NOTEEC BILL TABOR'S PROGRAM TO PRINT PASTE-ABLE VERSIONS OF THE SHEET FROMUDC SAVE FILES EXISTS, SO WE NEEDN'T WORRY TOO MUCH EITHER ABOUT USINGC DISPLAY FOR DOUBLE DUTY. MXL=1324C INITIALIZE WORK STORAGE FOR FORMULAS AND VARIABLES CALL WSSETT 7831 CONTINUEPCC NOW SET UP NRDSP, 00o]p]0][Z[[[\[}NCDSPN IF(KMAP.EQ.0)GOTO 3009M DO 5 N1=1,DRW DO 5 N2=1,DCL9C INITIALLY WE DISPLAY THE UPPER LEFT PART OF THE SYSTEM.F?C ESTABLISH ASSOCIATION INITIALLY THEREFORE OF DISPLAY TO UPPEROC LEFT OF PHYSICAL SHEET.I NRDSP(N1,N2)=N1 NCDSP(N1,N2)=N2+1 DVS(N1,N2)=.00000031U 5 CONTINUEBC FOR S OPTION USE SECRET -4 CODE TO RESET SHEET. STILL NEEDS WORKC IN PORTACALC PC.C3009 CONTINUE% IF(ICODE.EQ.-4)CALL WRKFIL(1,FORM,2)D3009 IF(ICODE.EQ.-4)GOTO 1IC SET DEFAULT WIDTHS OF COLUMNS TO 10. MAY BE ALTERED BELOW FOR DIFFERENT C DEFAULT IF DESIRED.L DO 16 N1=1,DRWE CWIDS(N1)=KWIDA 16 CONTINUE C43 CALL UVT100(CUP,21,1)D KZPPD=0 CMDLIN(1)=0 IOLDFL=0I3017 FORMAT(Q,80A1,80A1) MXL=1 CMDLIN(MXL+1)=03572 FORMAT(I6)W CALL UVT100(SGR,0)F)C SET UP RANDOM FILE AS NEEDED FOR SHEETFC EACH RECORD HAS:C CHARS 1-110 FORMULAS/C CHARS 120-128 DISPLAY FORMAT (INITIALLY F9.2)T.C CHAR 119 VALID FLAG (ALLOWS HANDLING READS.)9C values: -3, -2: Numeric-only text (or special chars)B C -1 : Alphanumeric textC 0 : Uninitialized#C 1 : Alphanumeric formulaSCC +2 : Number or pure numeric formula with value calculatedNEC +3 : Number or pure numeric formula, value not yet computedR,C CHAR 118 MAGIC NUMBER 15 (CHECKS ALL WELL)-C READ A RECORD, IF ERROR, CREATE EMPTY FILE.AC IF(IOLDFL.EQ.0)GOTO 1RMCC IF IOLDFL NONZERO IT MEANS USER CLAIMS THERE EXISTS A FILE. IF 0 IT'S NEW.2CC HERE IT'S OLD SO LET'S BE SURE IT REALLY IS OK. 1 CONTINUEGC HIT EOF OR ERROR. MUST BE A NEW FILE. THEREFORE ZERO IT TO OUR NEEDS.c?C AT THIS POINT WE ARE CREATING A NEW FILE AND NEED TO ZERO IT.ACO DO 3 N=1,128) FORM(N)=0 3 CONTINUE DO 3592 N=1,9C SET UP DEFAULT FORMAT 3592 FORM(119+N)=DEFFMT(N) FORM(118)=15S FORM(1)='0' FORM(2)='.'.C CREATE NULL FILE INITIALLY BY RESETTING ALL. JRRCL=RRW*JRCLL KZPPD=1CD 2 CONTINUE"C COMMON POINT WITH FILE PREPARED. PCOL=2T PROW=1O DCOL=1  DROW=1GC IF(IOLDFL.GT.1)GOTO 2000 RETURNF 5600 CONTINUES IOLVL=5 CLOSE(UNIT=3) REWIND 59 RETURN9 ENDC PORTACALC MAIN PROGRAMC SPREAD SHEET DRIVER PROGRAM#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY. INCLUDE 'VKLUGPRM.FTN'C PARAMETER MXCOLS=6,MXROWS=20C PARAMETER RRW = 32&C PARAMETER RCL = 32 ! REAL ROWS, COLSC PARAMETER DRW = 8-C PARAMETER DCL = 8 ! DISPLAY MAX ROWS, COLS.C PARAMETER RRCL = 1024C PARAMETER RRCL=RRW*RCL=C NOTE: THROUGHOUT, ROWS ARE ACTUALLY DOWN, COLUMNS ACROSS ONAC SCREEN. ROW 0 IN DISPLAY IS THE 27 ACCUMULATORS A-Z AND %, WITH>C % BEING THE LAST-COMPUTED VALUE FROM THE CALC PROGRAM, WHICHAC KNOWS HOW TO ACCESS THE DATA BUT IS JUST PASSED COMMAND STRINGS C FROM THE DISK BASED FILE HERE.C-C VT100 DISPLAY CONTROL PARAMETER DEFINITIONSCG PARAMETER CUP = 1, CUU = 2, CUD = 3, CUF = 4, CUB = 5, DECDWL = 6G $, DECDHL = 7, DECRC = 8, DECSC = 9, DECSWL = 10, ED = 11, EL = 12A $, SGR = 13, NEL = 14, SCS = 15, SM = 16, RM = 17, ANSI = 18C PARAMETER TMREFN = 1 INTEGER*2 PRL(6) BYTE NOWRAP ( 2 ) LOGICAL*1 FORM,FVLD,CMDLIN(132) INTEGER*4 VNLT$ DIMENSION FORM(128),FVLD(RRWP,RCLP)AC FVLD FLAG 0 = NO FORMULA, -1= DISPLAY FORMULA ITSELF, NOT VALUE=C 1=VALID ACTIVE FORMULA THERE TO EVALUATE. INITIALLY ALL 0'SC SO INITIALLY IGNORE.CDC ROUTINE IN2AS COMPUTES ASCII CHARACTER NAMES OF SUBSCRIPTS IN1,IN2=C SO DISPLAY CAN HAVE THEM. IT MUST BE THE INVERSE OF VARSCN. INTEGER*2 RRWACT,RCLACT COMMON/RCLACT/RRWACT,00p]]Z]YTADATADATADATADATADATARCLACT/ integer*2 idol1,idol2,idol3,idol4,idol5,idol6, 1 IDOL7,IDOL82 common/dollr/idol1,idol2,idol3,idol4,idol5,idol6, 1 IDOL7,IDOL8( INTEGER*2 PROW,PCOL,DROW,DCOL,DRWV,DCLV* COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRWV,DCLV( DIMENSION NRDSP(DRW,DCL),NCDSP(DRW,DCL) COMMON/D2R/NRDSP,NCDSP& INTEGER*2 IPGMAX,LPGMXF,IPGMOD,LPGMOD* COMMON/FILEMX/IPGMAX,LPGMXF,IPGMOD,LPGMODBC LENGTHS (IN K) OF FILES FOR VALUES OR FORMULAS ARE IPGMAX,LPGMXFCC IPGMOD AND LPGMOD CONTROL PACKING MODE IN THE CORRESPONDING FILES LOGICAL*1 OARRY(100),FORM2(4) INTEGER*2 OSWIT,OCNTR COMMON/OAR/OSWIT,OCNTR,OARRY+C COMMON OAR SWITCHES OUTPUT OFF IF OSWIT=2" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9) INTEGER*2 KLVL COMMON/KLVL/KLVL INTEGER*2 IOLVL COMMON/IOLVL/IOLVLDC IOLVL IS LUN FOR XQTCMD TO USE (NORMALLY 3 FOR INDIRECT FILES OR 5?C FOR TERMINAL. WE USE 5,6 FOR TERMINAL INPUT, OUTPUT NORMALLY.) LOGICAL*1 AVBLS(20,27),VBLS(8,RRWP,RCLP) REAL*8 XXV(RRWP,RCLP)" EQUIVALENCE(XXV(1,1),VBLS(1,1,1)) COMMON/V/TYPE,AVBLS,VBLS,VLENFC DEFFMT IS THE DEFAULT FORMAT FOR NUMERICS. INITIALLY IT WILL BE F9.2 LOGICAL*1 DEFFMT(10),DVFMT(12) EQUIVALENCE(DVFMT(2),DEFFMT(1)) COMMON/DEFVBX/DVFMT LOGICAL*1 NMSH(80) COMMON/NMSH/NMSH INTEGER*2 XTCFG,IPSET,XTNCNT LOGICAL*1 XTNCMD(80)) COMMON/XCMD/XTNCNT,XTNCMD,XTCFG,IPSETC VARY FLAG ITERATION COUNT INTEGER KALKIT COMMON/VARYIT/KALKIT INTEGER*2 FORMFG,RCFGX,PZAP COMMON/FFGG/FORMFG,RCFGX,PZAP)C FORMFG FLAGS FORMAT OF DISPLAY GLOBALLY>C RCFGX FLAGS WHETHER TO DO AUTO RECALCULATION. IF 1, INHIBITS=C AUTO RECALC (USE R COMMAND TO DO A CALC.). RM COMMAND TURNS C RCFGX ON.?C PZAP CONTROLS WHETHER TO REDRAW SCREEN. IF ZERO, NORMAL. IF 1>C (NONZERO ANYHOW), INHIBITS RE DISPLAY. V COMMAND RESETS TO 0 C AND VM INHIBITS. (SETS TO 1).CCC DISPLAY ARRAY WILL KEEP A COPY OF VARIABLES DISPLAYED AND FORMATSAC USED LOCALLY WHICH DISPLAY ROUTINE CAN USE TO SEE WHAT ACTUALLYBC NEEDS TO BE REFRESHED ON SCREEN. DRWV AND DCLV ARE COLS, ROWS OF#C DISPLAY ACTUALLY USED FOR SCREEN. INTEGER*2 CWIDS(DRW)HC CWIDS IS WIDTHS IN CHARACTERS OF COLUMNS ON DISPLAY. NOTE THAT BECAUSEHC OF PECULIAR INVERSION WHICH I AM TOO LAZY TO CORRECT IT IS DIMENSIONEDC AS DRW NOT DCL. INTEGER*4 I4TMP REAL*8 DVS(DRW,DCL) COMMON /FVLDC/FVLDC BITMAPC LOGICAL*1 IBITMPC DIMENSION IBITMP(BRRCL)C COMMON/INITD/IBITMPC LOGICAL*1 DFMTS(10,DRW,DCL)C 10 CHARACTERS PER ENTRY. COMMON/DSPCMN/DVS,CWIDS DATA NOWRAP / "24,0 /7C INITIAL DEFAULT FORMAT FOR NUMERICS is set at runtimeC SET UP TERMINAL%C SET IT NOWRAP, NO CARRIAGE CONTROL.C IDOL7=1 IF SCROLLING ENABLED IDOL7=1-C SETUP INITIAL DISPLAY LIMITS ACTUALLY USED. RRWACT=1 RCLACT=1 IOLVL=5 DRWV=MXCOLS DCLV=MXROWS KLVL=1 KALKIT=0 ICODE=0 idol3=0 idol4=0 idol5=20000 idol6=20000 RCFGX=0 FORMFG=0"C CALL GETADR ( PRL, NOWRAP ) PRL ( 2 ) = 2CC WTQIO issues I/O to set multiple characteristics of your terminalDC to turn off system's auto-wrap. If this is different either set itC first by hand or modify.(C CALL WTQIO ( SFSMC, 5, 2,,, PRL )C CALL ASSIGN(6,'TI:')C CALL ASSIGN(5,'TI:')<C must be able to turn off FORTRAN carriage control somehow.< OPEN ( UNIT = 5, FILE='TI:',CARRIAGECONTROL = 'NONE' )< OPEN ( UNIT = 6, FILE='TI:',CARRIAGECONTROL = 'NONE' )C CHANGE TI: TO TT: FOR VMS CALL UVT100(ANSI))C PERFORM SYSTEM DEPENDENT INITIALIZATION CALL TTYINIC-C PERFORM ERROR TRAPPER CALLS HERE AS NEEDED.DC SET MOST ERRORS TO CONTINUE, WITH FILE ERRORS CONTINUATION ON ERR= C PROCESSING.5C FOR THE MOMENT COMMENT OUT AND FILL IN WITH VERSIONC TAILORED TO DESIRED OS DO 6988 KK=68,943 IF(KK.EQ.69.OR.KK.EQ.85.OR.(KK.GE.76.AND.KK.LE.79)- 1 .OR.(KK.GE.87.AND.KK.LE.90))GOTO 69882 CALL ERRSET(KK,.TRUE.,.FALSE.,.FALSE.,.FALSE.,15) 6988 CONTINUE2 CALL ERRSET(59,.TRUE.,.FALSE.,.FALSE.,.FALSE.,15)2 CALL ERRSET(61,.TRUE.,.FALSE.,.FALSE.,.FALSE.,15)2 CALL ERRSET(63,.TRUE.,.FALSE.,.FALSE.,.FALSE.,15)2 CALL ERRSET00p]]0][Z[[[\[}(64,.TRUE.,.FALSE.,.FALSE.,.FALSE.,15)C)CC SET UP ENDFILE TO USE ERR= TYPE RETURN1 CALL ERRSET(24,.TRUE.,.TRUE.,.FALSE.,.FALSE.,15)CC NO SUCH FILE USES ERR= TOO.1 CALL ERRSET(29,.TRUE.,.TRUE.,.FALSE.,.FALSE.,15)?CC THAT'S IT. ERRSET ROUTINE WON'T ALWAYS ACCEPT NO ERR= RETURNBCC BUT THAT'S AS IT SHOULD BE. NOTICE THIS CLEANS THE DISPLAY VERYACC CONSIDERABLY AND MAKES PROGRAM CRASHES DUE TO USER ERRORS MUCHCC LESS LIKELY.C CALL UVT100(RM,8) CALL UVT100(ED,2) CALL UVT100(SCS,0,1) CALL UVT100(SCS,1,2) CALL UVT100(CUP,5,10)'C ZERO THE VARIABLES TO START OFF WITH. DO 2070 KK=1,20 DO 2070 KKK=1,272070 AVBLS(KK,KKK)=0C SKIP ZEROING VARIABLES... C CALL WSSETC WSSET SETS UP WORK SPACEC DO 2071 KK=1,RRWC DO 2071 KKK=1,RCLC2071 XXV(KK,KKK)=0.C SET UP WORK ARRAY BITMAP CALL WRKFIL(1,FORM,2) CALL UVT100(SGR,7) WRITE(6,3010)3010 FORMAT('Analyti!Calc-PRO') CALL UVT100(CUP,6,12) WRITE(6,3278)3278 FORMAT('V12-08A') CALL UVT100(CUP,7,15) CALL UVT100(SGR,0) WRITE (6,3011)RRW,RCL,3011 FORMAT(' Max cols=',I3,' Max Rows=',I3) CALL UVT100(CUP,10,3) WRITE(6,3013))3013 FORMAT(' .... The Analyst''s Tool') CALL UVT100(CUP,11,5) WRITE(6,3014)43014 FORMAT(' by Glenn and Mary Everhart, (C) 1983') CALL UVT100(CUP,12,1)C NOW GET ON WITH USEFUL WORK. PRL ( 2 ) = 1 PRL ( 3 ) = 0 CALL UVT100 ( ANSI )!C RESET MODE 8 (VT100 AUTOREPEAT)C CALL UVT100 ( RM, 8 )2C RESET MODE 5 (I.E., SCREEN TO BLACK BACKGROUND).C CALL UVT100 ( RM, 5 ) KWID=10D KMAP=1 D GOTO 3000 3002 CONTINUED CALL UVT100(CUP,1,1)D WRITE(6,3003)-D3003 FORMAT(' Alter Display Windows [Y/N]:')(D READ(IOLVL,3006,END=5600,ERR=5600)NMSH0D IF(NMSH(1).NE.'Y'.AND.NMSH(1).NE.'y')GOTO 3000C ALTER MAPPING DESIREDD WRITE(6,3001)6D3001 FORMAT(' ENTER NEW GLOBAL COLUMN WIDTH, 1-120:')(D READ(IOLVL,3004,END=5600,ERR=5600)KWIDD3004 FORMAT(I3)%D IF(KWID.LT.1.OR.KWID.GT.120)KWID=10D WRITE(6,3008)<D3008 FORMAT(' Reset display to Upper Left of sheet [Y/N]:')(D READ(IOLVL,3006,END=5600,ERR=5600)NMSHD KMAP=1-D IF(NMSH(1).NE.'Y'.AND.NMSH(1).NE.'y')KMAP=0 3000 CONTINUE idol5=20000 idol6=20000<C INITIALLY SET JRCL TO RCL = NO. OF ROWS TO BE IN WORK FILE JRCL=RCL PZAP=0 XTCFG=0 IPSET=0 C ZERO BITMAPC DO 36 N1=1,BRRCLC36 IBITMP(N1)=0 LINIZZ=0 CALL UVT100(CUP,14,1) WRITE(6,3588)?3588 FORMAT('Enter new floating numeric format default [Y/N]:')' READ(IOLVL,3006,END=5600,ERR=5600)NMSH IF(NMSH(1).NE.'Y')GOTO 3589C ENTER NEW DEFAULT.6888 CALL UVT100(CUP,14,1) CALL UVT100(EL,2)#C LINE NOW ERASED... GET NEW FORMAT WRITE(6,3590)/3590 FORMAT('Enter new format. Suggest F10.2>')' READ(IOLVL,3006,END=5600,ERR=5600)NMSH;C NOW HAVE HIS DESIRED FORMAT. COPY INTO THE DEFAULT ARRAY.C DEFFMT IS THAT. DO 3591 N1=1,10 KKK=NMSH(N1) KKK=MAX0(32,KKK)C ASSUME NMSH COMPLETELY INIT'D3591 DEFFMT(N1)=KKK.C CHECK ITS LEGALITY BY TRYING TO USE IT ONCE. XX=3.14159! ENCODE(78,DVFMT,NMSH,ERR=6888)XX)C FAILSAFE: RE-ASK IF IT CAN'T ENCODE PI.?C IF IT FAILS, PROGRAM WILL CRASH AND FILE WON'T GET CLOBBERED. 3589 CONTINUE CALL UVT100(CUP,15,1) WRITE(6,3005)%3005 FORMAT(' Title of Spreadsheet:')' READ(IOLVL,3006,END=5600,ERR=5600)NMSH3006 FORMAT(80A1)(C ****** IF S OPTION GIVEN THEN ICODE=-2>C THEREFORE, DON'T ASK DISK SIZE ETC, BUT ALLOW RESET OF TITLEC AND DEFAULT FORMATS. IF(ICODE.EQ.-2) GOTO 7831C ****** CALL UVT100(CUP,16,1) WRITE(6,2056))2056 FORMAT(' Give Max Rows to be used:')% READ(IOLVL,7202,END=5600,ERR=5600)KR IF(KR.LE.0.OR.KR.GT.RCL)KR=RCL CALL UVT100(CUP,17,1) WRITE(6,2057))2057 FORMAT(' Give Max Cols to be used:')% READ(IOLVL,7202,END=5600,ERR=5600)KC IF(KC.LE.0.OR.KC.GT.RRW)KC=RRW KKK=(KR-1)*RRW+KC XKKKK=KR*KC XKDF=XKKKK/64. XKDN=XKKKK/100..C COMPUTED ABOVE THE MIN # OF K FOR DISK FILES CALL UVT100(CUP,18,1) WRITE(6,2058)XKDN,XKDFB2058 FORMAT(' Mins=',F9.0' K Value file, ',F9.0,' K Formula file')#C KKK IS MAX INDEX TO BE USED HERE. CALL 00p^]Z]YTADATADATADATADATADATAUVT100(CUP,21,1) WRITE(6,7201)47201 FORMAT(' Give disk size (K) for Value Memory:')) READ(IOLVL,7202,END=5600,ERR=5600)IPGMAX7202 FORMAT(I6) IPGMOD=KKK IF(IPGMAX.LT.0)IPGMOD=0 IPGMAX=IABS(IPGMAX)) IF(IPGMAX.LE.0.OR.IPGMAX.GT.512)IPGMAX=1 CALL UVT100(CUP,22,1) WRITE(6,7203)67203 FORMAT(' Give disk size (K) for Formula Memory:')) READ(IOLVL,7202,END=5600,ERR=5600)LPGMXF LPGMOD=KKK IF(LPGMXF.LT.0)LPGMOD=0 LPGMXF=IABS(LPGMXF)@C IF NUMBERS ARE ENTERED NEGATIVE, SET MODE TO "SLOW, FILE-SPACE4C CONSERVING" PACKING, SCATTERING PAGES ACROSS FILE.5 IF(LPGMXF.LE.0.OR.LPGMXF.GT.1024)LPGMXF=(IPGMAX*3)/2$C NULL TERMINATE ALL FORMAT STRINGS.FC SET MAX WIDTH FOR PRINT TO DIMENSION OF THE BUFFER. NOTE THIS IS THEBC USUAL HARDWARE MAXIMUM SO WE DON'T WORRY TOO MUCH ABOUT IT. NOTEEC BILL TABOR'S PROGRAM TO PRINT PASTE-ABLE VERSIONS OF THE SHEET FROMDC SAVE FILES EXISTS, SO WE NEEDN'T WORRY TOO MUCH EITHER ABOUT USINGC DISPLAY FOR DOUBLE DUTY. MXL=1324C INITIALIZE WORK STORAGE FOR FORMULAS AND VARIABLES CALL WSSET 7831 CONTINUECC NOW SET UP NRDSP, NCDSPD IF(KMAP.EQ.0)GOTO 3009 DO 5 N1=1,DRW DO 5 N2=1,DCL9C INITIALLY WE DISPLAY THE UPPER LEFT PART OF THE SYSTEM.?C ESTABLISH ASSOCIATION INITIALLY THEREFORE OF DISPLAY TO UPPERC LEFT OF PHYSICAL SHEET. NRDSP(N1,N2)=N1 NCDSP(N1,N2)=N2+1 DVS(N1,N2)=.00000031 5 CONTINUEBC FOR S OPTION USE SECRET -4 CODE TO RESET SHEET. STILL NEEDS WORKC IN PORTACALC PC.C3009 CONTINUE% IF(ICODE.EQ.-4)CALL WRKFIL(1,FORM,2)3009 IF(ICODE.EQ.-4)GOTO 1IC SET DEFAULT WIDTHS OF COLUMNS TO 10. MAY BE ALTERED BELOW FOR DIFFERENTC DEFAULT IF DESIRED. DO 16 N1=1,DRW CWIDS(N1)=KWID 16 CONTINUEC43 CALL UVT100(CUP,21,1) KZPPD=0 CMDLIN(1)=0 IOLDFL=03017 FORMAT(Q,80A1,80A1) MXL=1 CMDLIN(MXL+1)=03572 FORMAT(I6) CALL UVT100(SGR,0))C SET UP RANDOM FILE AS NEEDED FOR SHEETC EACH RECORD HAS:C CHARS 1-110 FORMULAS/C CHARS 120-128 DISPLAY FORMAT (INITIALLY F9.2).C CHAR 119 VALID FLAG (ALLOWS HANDLING READS.)9C values: -3, -2: Numeric-only text (or special chars) C -1 : Alphanumeric textC 0 : Uninitialized#C 1 : Alphanumeric formulaCC +2 : Number or pure numeric formula with value calculatedEC +3 : Number or pure numeric formula, value not yet computed,C CHAR 118 MAGIC NUMBER 15 (CHECKS ALL WELL)-C READ A RECORD, IF ERROR, CREATE EMPTY FILE.C IF(IOLDFL.EQ.0)GOTO 1MCC IF IOLDFL NONZERO IT MEANS USER CLAIMS THERE EXISTS A FILE. IF 0 IT'S NEW.2CC HERE IT'S OLD SO LET'S BE SURE IT REALLY IS OK. 1 CONTINUEGC HIT EOF OR ERROR. MUST BE A NEW FILE. THEREFORE ZERO IT TO OUR NEEDS.?C AT THIS POINT WE ARE CREATING A NEW FILE AND NEED TO ZERO IT.C DO 3 N=1,128 FORM(N)=0 3 CONTINUE DO 3592 N=1,9C SET UP DEFAULT FORMAT3592 FORM(119+N)=DEFFMT(N) FORM(118)=15 FORM(1)='0' FORM(2)='.'.C CREATE NULL FILE INITIALLY BY RESETTING ALL. JRRCL=RRW*JRCL KZPPD=1C 2 CONTINUE"C COMMON POINT WITH FILE PREPARED. PCOL=2 PROW=1 DCOL=1 DROW=1C IF(IOLDFL.GT.1)GOTO 2000 2000 CONTINUE8C DRAW OUR LABELS AND OTHERWISE INITIALIZE DISPLAY SHEET KZPPD=0 IF(IPSET.NE.0)GOTO 1000 IF(PZAP.EQ.0)CALL UVT100(ED,2) CALL UVT100(CUP,1,1) OSWIT=20 IPRSS=PROW IPCSS=PCOL IDRW=DROW IDCL=DCOL IF(LINIZZ.LE.1)CALL RECALC IF(PZAP.EQ.0)CALL DSPSHT(2) DCOL=IDCL DROW=IDRW PROW=IPRSS PCOL=IPCSSC 1000 CONTINUE IPSET=0 LINIZZ=LINIZZ+1 OSWIT=20-C ISSUE A PROMPT FOR COMMAND AND DO A COMMAND ICODE=0 CALL XQTCMD(ICODE) IF(ICODE.LT.30)GOTO 1843C HELP COMMAND AND SIMILAR... IF(ICODE.NE.400)GOTO 1847 CALL DSPSHT(10) ICODE=1)C CODE 10 IS PRINT SECRET CODE TO DSPSHT. GOTO 1843 1847 CONTINUE IF(ICODE.NE.420)GOTO 1849C CLOSE UNIT 1 JUST IN CASE... CLOSE(UNIT=1) KLVL=1 IPRSSS=PROW IPCSSS=PCOL CALL CALC PROW=IPRSSS PCOL=IPCSSS!C CLOSE CONSOLE LUN USED BY CALC. CLOSE(UNIT=1),C CLOSE ANY OTHER LUNS CALC MAY HAVE USED... CLOSE(UNIT=2) CLOSE(UNIT=3) C SET UP FOR REDRAW 00p ^]0][Z[[[\[}WHEN BACK... ICODE=-1 GOTO 1843 1849 CONTINUE IF(ICODE.NE.430)GOTO 1845$C TEST FUNCTION, TESTING EXPRESSION.C INHIBIT RECALCULATION... C COMMAND IS IN "XTNCMD" STRING. LLST=MIN0(80,XTNCNT) LFST=1 CALL DOENTR(XTNCMD,LFST,LLST)=C THIS SETS % VARIABLE AND WILL DO A CALC DIRECTLY. THEREFORE%C WE MUST INHIBIT AUTO RECALCULATION.BC NOTE WE HAVE TO CALL THIS FROM THE ROOT SINCE THE RECALC OVERLAY!C TREE OVERWRITES THE XQTCMD ONE. ICODE=1 GOTO 1843 1845 CONTINUE IVVV=ICODE-309308 CALL HELP(IVVV) IVVV=0 WRITE(6,5020)A5020 FORMAT(/'Type return to continue, Hn for other Help pages:')3 READ(IOLVL,3006,END=5600,ERR=5600)(FORM2(K),K=1,4) IVVVV=FORM2(2) ivvx=form2(3)- IF(IVVVV.GE.48.AND.IVVVV.LE.57)IVVV=IVVVV-48& if(ivvx.lt.48.or.ivvx.gt.57)goto 9381c implement 2 digit help code. ivvvx=ivvx-48 ivvv=(ivvv*10)+ivvvx 9381 continue ivvv=min0(ivvv,maxhlp) IF(FORM2(1).EQ.'H')GOTO 93085C NOW CLEAR SCREEN AND TRY MORE COMMANDS AS BEFORE... ICODE=2C 1843 CONTINUE OSWIT=20 IPRSS=PROW IPCSS=PCOL IDRW=DROW IDCL=DCOL IF(LINIZZ.LE.1)CALL RECALC IF(IPSET.NE.0)GOTO 4110 DCOL=IDCL DROW=IDRW PROW=IPRSS PCOL=IPCSS 4110 CONTINUE IPSET=0 IF(ICODE.EQ.-1)GOTO 2000=C IN PORTACALC-VM, S COMMAND ALLOWS DEFAULT FORMAT CHANGE ANDAC TITLE CHANGE, BUT DOES NOT ALTER SHEET IN MEMORY... DON'T ALLOWC SCRATCH FILE SAVE STUFF...&C IF(ICODE.EQ.-2)CALL WRKFIL(1,FORM,3)C IF (ICODE.EQ.-2)CALL CLOSE(7) IF(ICODE.LE.-2)GOTO 3002C%C RECALCULATE SHEET NOW AUTOMAGICALLYFC IF ICODE=1, COMMAND JUST MOVES ON DISPLAY, SO NO NEED TO RECALCULATEC THE ENTIRE SHEET.:C LIMIT NUMBER OF ITERATIONS AT ANY ONE TIME TO 20 HOWEVER KKMAX=20 3670 CONTINUE4 IF(ICODE.EQ.5.OR.ICODE.EQ.1.OR.RCFGX.EQ.1)GOTO 3671 CALL RECALC IPSET=0 KKMAX=KKMAX-1C IMPLEMENT VARY LOOP...@C ASSUME USRFCT MUSTR CONTOL KALKIT VARIABLE THEN TO GET LOOP TOC TERMINATE SOMETIME. KKMAX=MIN0(KKMAX,KALKIT) IF(KKMAX.GT.0)GOTO 3670 3671 CONTINUE*C IF(ICODE.NE.1.AND.RCFGX.NE.1)CALL RECALCC@C DISPLAY SHEET NOW. ONLY ALTERS ENTRIES INVALIDATED BY COMMAND. IF(ICODE.NE.2)GOTO 21HC ICODE=2 = REFRESH DISPLAY. ZERO ALL NUMBERS AND CAUSE TOTAL REDISPLAY. DO 22 N1=1,DRW DO 22 N2=1,DCL&C SET NUMBER DISPLAYED TO WEIRD VALUE.&22 DVS(N1,N2)=DVS(N1,N2)+.000000000034 IF(PZAP.EQ.0)CALL UVT100(ED,2) CALL UVT100(CUP,1,1) 21 CONTINUE/ IF(ICODE.NE.5.AND.PZAP.EQ.0)CALL DSPSHT(ICODE) DCOL=IDCL DROW=IDRW PROW=IPRSS PCOL=IPCSS GOTO 1000 5600 CONTINUE(C ERROR ON READ FROM IOLVL HANDLED HERE. REWIND 5R CLOSE(UNIT=3) IOLVL=5 GOTO 1000 END SUBROUTINE IN2AS(ROW,CHRS)Y INTEGER*2 ROW LOGICAL*1 CHRS(4) INTEGER*4 AC,AC1,AC2N DO 1 N1=1,4 1 CHRS(N1)=32:C CONVERT ROW TO LETTERS. ASSUMES COL=2 OR MORE. ROW 1=A-ZC ROW 2=AA-AZ, THEN BA-BZ ETC. AC=ROW! DO 2 N=1,4O M=5-NC CONVERT BACKWARDS INTO CHRSC AC1=(AC/26) AC2=AC1*26O IX=AC-AC2( IF(.NOT.(IX.EQ.0.AND.AC1.GT.0))GOTO 772.C CORRECT SO WE GET Z, NOT A FOR LABELS. IX=26 AC1=AC1-1 772 CONTINUE IF(IX.GT.0)CHRS(M)=IX+64M C CONVERT TO ASCII A-Z CHARACTER AC=AC1T 2 CONTINUEC JUST IGNORE ANY OVERFLOW.I RETURNW END SUBROUTINE HELP(LVL)IKC PRINT HELP INFO ON SCREEN USING FIRST 22 LINES. ASSUME XQTCMD INVALIDATES C THE DISPLAY.G PARAMETER CUP = 1, CUU = 2, CUD = 3, CUF = 4, CUB = 5, DECDWL = 6FG $, DECDHL = 7, DECRC = 8, DECSC = 9, DECSWL = 10, ED = 11, EL = 12SA $, SGR = 13, NEL = 14, SCS = 15, SM = 16, RM = 17, ANSI = 18M PARAMETER TMREFN = 1 LOGICAL*1 FORM(100) CALL UVT100(ANSI) CALL UVT100(ED,2)C CALL UVT100(RM,8)LC CALL UVT100(RM,5)3&C LEVEL 0 (LEVELS NOT YET IMPLEMENTED) CALL UVT100(CUP,1,1)V INCLUDE 'PCHELP.PRO' WRITE(6,100)M CALL UVT100(CUP,2,1) WRITE(6,101)E CALL UVT100(CUP,3,1)A WRITE(6,102)L CALL UVT100(CUP,4,1)I WRITE(6,103)O CALL UVT100(CUP,5,1)C WRITE(6,104)M CALL UVT100(CUP,6,1)2 WRITE(6,105)C CALL UVT100(CUP,7,1)E WRITE(6,106)  CALL UVT100(CUP,8,1)W WRITE(6,107)M CALL UVT100(CUP00p^q^Z]YTADATADATADATADATADATA,9,1)T WRITE(6,108)o CALL UVT100(CUP,10,1) WRITE(6,109)  CALL UVT100(CUP,11,1) WRITE(6,110)d CALL UVT100(CUP,12,1) WRITE(6,111)D CALL UVT100(CUP,13,1) WRITE(6,112)C CALL UVT100(CUP,14,1) WRITE(6,113)O CALL UVT100(CUP,15,1) WRITE(6,114)D CALL UVT100(CUP,16,1) WRITE(6,122)C CALL UVT100(CUP,17,1) WRITE(6,115)P CALL UVT100(CUP,18,1) WRITE(6,116)O CALL UVT100(CUP,19,1) WRITE(6,117)  CALL UVT100(CUP,20,1) WRITE(6,118)  CALL UVT100(CUP,21,1) WRITE(6,119)I CALL UVT100(CUP,22,1) WRITE(6,120)O CALL UVT100(CUP,23,1) WRITE(6,121)N 9000 CONTINUE/ CALL UVT100(CUP,24,1)2100 FORMAT('EN expression - Insert expression at ' 1 'current pos.')C101 FORMAT('M1,M2,M3, or M4 - Motion up, down, left, right (auto)')V?102 FORMAT('DL var1:var2 Rn:m (or Cn:m) - Display Loc phys to 'C 1 'row/col n-m')N8103 FORMAT('DF var1:var2 [format] - set display format.'$ 1 ' A or L shows text, else #')=104 FORMAT('DT var1:var2 F or I - Set display number type to'C 1 ' flt or int'),B105 FORMAT('DW n,m - set width of column n of display to m chars')C106 FORMAT('DB c,r - Set display bounds at c cols, r rows (chars)')F5109 FORMAT('L var - Move cursor to var named (phys.)'M/ 1 ' OA var or OR var=move displ. origin')B107 FORMAT('V - redraw screen. VF - Disply. formulas. VM=no auto.' 1 ' redraw')B108 FORMAT('K - Drop into interactive calc. *E returns to sheet.')?110 FORMAT('ZA - zero all. ZE var1:var2 - zero var1 thru var2')RA111 FORMAT('X - exit program. W write screen to file or printer')AA112 FORMAT('CV v1:v2 v3:v4 copy value from v1:v2 to v3:v4 range;'R$ 1 'CR=copy and relocate vars.')@113 FORMAT('CD v1:v2 v3:v4 copy display format. CF=copy formula' 1 '. CA=copy all')F114 FORMAT('P Put screen to file. G=get screen from file at curr.loc')7115 FORMAT('1,2,3,4 - move cursor Up,Down,Left,Right. ' / 1 'A[A/R]n[R/C] Add abs/reloc n Row/Col')NC116 FORMAT('Variable ranges are var1[:var2]. Var names P#+n#+m or')NE117 FORMAT('D#+n#+m are current Phys or Display locs + or - offsets')RC118 FORMAT('Expressions may use multiple stmts, use \ separators.').B119 FORMAT('Use std FORTRAN function names + MIN, MAX, AVG, STD')B120 FORMAT('or SUM. IF stmt format is IF [v1.REL.v2]yes-expr|else' 1 ' expr.')C4121 FORMAT('Rels are .LT.,.GT.,.EQ.,.NE.,.GE.,.LE.')F122 FORMAT('R Recompute sheet. RM Recompute Manually only (R resets)') RETURN  ENDC;C FIRST CUT TRY AT REMOVING ONE TIME CODE FROM MAIN PROGRAM8C HERE (FOR PDP11 VERSION OF PORTACALC). SPREDSHT.PR1 IS5C MAIN PROGRAM, SPREDSHT.PR2 IS SUBROUTINES SPLIT OUTC OF IT.CC PORTACALC MAIN PROGRAMC SPREAD SHEET DRIVER PROGRAM#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY. INCLUDE 'VKLUGPRM.FTN'C PARAMETER MXCOLS=6,MXROWS=20C PARAMETER RRW = 32&C PARAMETER RCL = 32 ! REAL ROWS, COLSC PARAMETER DRW = 8-C PARAMETER DCL = 8 ! DISPLAY MAX ROWS, COLS.C PARAMETER RRCL = 1024C PARAMETER RRCL=RRW*RCL=C NOTE: THROUGHOUT, ROWS ARE ACTUALLY DOWN, COLUMNS ACROSS ONAC SCREEN. ROW 0 IN DISPLAY IS THE 27 ACCUMULATORS A-Z AND %, WITH>C % BEING THE LAST-COMPUTED VALUE FROM THE CALC PROGRAM, WHICHAC KNOWS HOW TO ACCESS THE DATA BUT IS JUST PASSED COMMAND STRINGS C FROM THE DISK BASED FILE HERE.C-C VT100 DISPLAY CONTROL PARAMETER DEFINITIONSCG PARAMETER CUP = 1, CUU = 2, CUD = 3, CUF = 4, CUB = 5, DECDWL = 6G $, DECDHL = 7, DECRC = 8, DECSC = 9, DECSWL = 10, ED = 11, EL = 12A $, SGR = 13, NEL = 14, SCS = 15, SM = 16, RM = 17, ANSI = 18C PARAMETER TMREFN = 1 INTEGER*2 PRL(6) BYTE NOWRAP ( 2 ) LOGICAL*1 FORM,FVLD,CMDLIN(132) INTEGER*4 VNLT$ DIMENSION FORM(128),FVLD(RRWP,RCLP)AC FVLD FLAG 0 = NO FORMULA, -1= DISPLAY FORMULA ITSELF, NOT VALUE=C 1=VALID ACTIVE FORMULA THERE TO EVALUATE. INITIALLY ALL 0'SC SO INITIALLY I00q^]0][Z[[[\[}GNORE.CDC ROUTINE IN2AS COMPUTES ASCII CHARACTER NAMES OF SUBSCRIPTS IN1,IN2=C SO DISPLAY CAN HAVE THEM. IT MUST BE THE INVERSE OF VARSCN. INTEGER*2 RRWACT,RCLACT COMMON/RCLACT/RRWACT,RCLACT/ integer*2 idol1,idol2,idol3,idol4,idol5,idol6, 1 IDOL7,IDOL82 common/dollr/idol1,idol2,idol3,idol4,idol5,idol6, 1 IDOL7,IDOL8( INTEGER*2 PROW,PCOL,DROW,DCOL,DRWV,DCLV* COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRWV,DCLV( DIMENSION NRDSP(DRW,DCL),NCDSP(DRW,DCL) COMMON/D2R/NRDSP,NCDSP& INTEGER*2 IPGMAX,LPGMXF,IPGMOD,LPGMOD* COMMON/FILEMX/IPGMAX,LPGMXF,IPGMOD,LPGMODBC LENGTHS (IN K) OF FILES FOR VALUES OR FORMULAS ARE IPGMAX,LPGMXFCC IPGMOD AND LPGMOD CONTROL PACKING MODE IN THE CORRESPONDING FILES LOGICAL*1 OARRY(100),FORM2(4) INTEGER*2 OSWIT,OCNTR COMMON/OAR/OSWIT,OCNTR,OARRY+C COMMON OAR SWITCHES OUTPUT OFF IF OSWIT=2" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9) INTEGER*2 KLVL COMMON/KLVL/KLVL INTEGER*2 IOLVL COMMON/IOLVL/IOLVLDC IOLVL IS LUN FOR XQTCMD TO USE (NORMALLY 3 FOR INDIRECT FILES OR 5?C FOR TERMINAL. WE USE 5,6 FOR TERMINAL INPUT, OUTPUT NORMALLY.) LOGICAL*1 AVBLS(20,27),VBLS(8,RRWP,RCLP) REAL*8 XXV(RRWP,RCLP)" EQUIVALENCE(XXV(1,1),VBLS(1,1,1)) COMMON/V/TYPE,AVBLS,VBLS,VLENFC DEFFMT IS THE DEFAULT FORMAT FOR NUMERICS. INITIALLY IT WILL BE F9.2 LOGICAL*1 DEFFMT(10),DVFMT(12) EQUIVALENCE(DVFMT(2),DEFFMT(1)) COMMON/DEFVBX/DVFMT LOGICAL*1 NMSH(80) COMMON/NMSH/NMSH INTEGER*2 XTCFG,IPSET,XTNCNT LOGICAL*1 XTNCMD(80)) COMMON/XCMD/XTNCNT,XTNCMD,XTCFG,IPSETC VARY FLAG ITERATION COUNT INTEGER KALKIT COMMON/VARYIT/KALKIT INTEGER*2 FORMFG,RCFGX,PZAP COMMON/FFGG/FORMFG,RCFGX,PZAP)C FORMFG FLAGS FORMAT OF DISPLAY GLOBALLY>C RCFGX FLAGS WHETHER TO DO AUTO RECALCULATION. IF 1, INHIBITS=C AUTO RECALC (USE R COMMAND TO DO A CALC.). RM COMMAND TURNS C RCFGX ON.?C PZAP CONTROLS WHETHER TO REDRAW SCREEN. IF ZERO, NORMAL. IF 1>C (NONZERO ANYHOW), INHIBITS RE DISPLAY. V COMMAND RESETS TO 0 C AND VM INHIBITS. (SETS TO 1).CCC DISPLAY ARRAY WILL KEEP A COPY OF VARIABLES DISPLAYED AND FORMATSAC USED LOCALLY WHICH DISPLAY ROUTINE CAN USE TO SEE WHAT ACTUALLYBC NEEDS TO BE REFRESHED ON SCREEN. DRWV AND DCLV ARE COLS, ROWS OF#C DISPLAY ACTUALLY USED FOR SCREEN. INTEGER*2 CWIDS(DRW)HC CWIDS IS WIDTHS IN CHARACTERS OF COLUMNS ON DISPLAY. NOTE THAT BECAUSEHC OF PECULIAR INVERSION WHICH I AM TOO LAZY TO CORRECT IT IS DIMENSIONEDC AS DRW NOT DCL. INTEGER*4 I4TMP REAL*8 DVS(DRW,DCL) COMMON /FVLDC/FVLDC BITMAPC LOGICAL*1 IBITMPC DIMENSION IBITMP(BRRCL)C COMMON/INITD/IBITMPC LOGICAL*1 DFMTS(10,DRW,DCL)C 10 CHARACTERS PER ENTRY. COMMON/DSPCMN/DVS,CWIDS DATA NOWRAP / "24,0 /7C INITIAL DEFAULT FORMAT FOR NUMERICS is set at runtimeC SET UP TERMINAL%C SET IT NOWRAP, NO CARRIAGE CONTROL. IKONS=0 CALL INITA1(KMAP,KWID,ICODE) 3002 CONTINUE# CALL INITA2(KMAP,KWID,ICODE,IKONS) IKONS=1 3000 CONTINUE CALL INITB(KMAP,KWID,ICODE)C IF(IOLDFL.GT.1)GOTO 2000 2000 CONTINUE8C DRAW OUR LABELS AND OTHERWISE INITIALIZE DISPLAY SHEET KZPPD=0 IF(IPSET.NE.0)GOTO 1000 IF(PZAP.EQ.0)CALL UVT100(ED,2) CALL UVT100(CUP,1,1) OSWIT=20 IPRSS=PROW IPCSS=PCOL IDRW=DROW IDCL=DCOL IF(LINIZZ.LE.1)CALL RECALC IF(PZAP.EQ.0)CALL DSPSHT(2) DCOL=IDCL DROW=IDRW PROW=IPRSS PCOL=IPCSSC 1000 CONTINUE IPSET=0 LINIZZ=LINIZZ+1 OSWIT=20-C ISSUE A PROMPT FOR COMMAND AND DO A COMMAND ICODE=0 CALL XQTCMD(ICODE) IF(ICODE.LT.30)GOTO 1843C HELP COMMAND AND SIMILAR... IF(ICODE.NE.400)GOTO 1847 CALL DSPSHT(10) ICODE=1)C CODE 10 IS PRINT SECRET CODE TO DSPSHT. GOTO 1843 1847 CONTINUE IF(ICODE.NE.420)GOTO 1849C CLOSE UNIT 1 JUST IN CASE... CLOSE(UNIT=1) KLVL=1 IPRSSS=PROW IPCSSS=PCOL CALL CALC PROW=IPRSSS PCOL=IPCSSS!C CLOSE CONSOLE LUN USED BY CALC. CLOSE(UNIT=1),C CLOSE ANY OTHER LUNS CALC MAY HAVE USED... CLOSE(UNIT=2) CLOSE(UNIT=3) C SET UP FOR REDRAW WHEN BACK... ICODE=-1 GOTO 1843 1849 CONTINUE IF(ICODE.NE.430)GOTO 1845$C TEST FUN00q$^^Z]YTADATADATADATADATADATACTION, TESTING EXPRESSION.C INHIBIT RECALCULATION... C COMMAND IS IN "XTNCMD" STRING. LLST=MIN0(80,XTNCNT) LFST=1 CALL DOENTR(XTNCMD,LFST,LLST)=C THIS SETS % VARIABLE AND WILL DO A CALC DIRECTLY. THEREFORE%C WE MUST INHIBIT AUTO RECALCULATION.BC NOTE WE HAVE TO CALL THIS FROM THE ROOT SINCE THE RECALC OVERLAY!C TREE OVERWRITES THE XQTCMD ONE. ICODE=1 GOTO 1843 1845 CONTINUE IVVV=ICODE-309308 CALL HELP(IVVV) IVVV=0 WRITE(6,5020)A5020 FORMAT(/'Type return to continue, Hn for other Help pages:')3 READ(IOLVL,3006,END=5600,ERR=5600)(FORM2(K),K=1,4)3006 FORMAT(80A1) IVVVV=FORM2(2) ivvx=form2(3)- IF(IVVVV.GE.48.AND.IVVVV.LE.57)IVVV=IVVVV-48& if(ivvx.lt.48.or.ivvx.gt.57)goto 9381c implement 2 digit help code. ivvvx=ivvx-48 ivvv=(ivvv*10)+ivvvx 9381 continue ivvv=min0(ivvv,maxhlp) IF(FORM2(1).EQ.'H')GOTO 93085C NOW CLEAR SCREEN AND TRY MORE COMMANDS AS BEFORE... ICODE=2C 1843 CONTINUE OSWIT=20 IPRSS=PROW IPCSS=PCOL IDRW=DROW IDCL=DCOL IF(LINIZZ.LE.1)CALL RECALC IF(IPSET.NE.0)GOTO 4110 DCOL=IDCL DROW=IDRW PROW=IPRSS PCOL=IPCSS 4110 CONTINUE IPSET=0 IF(ICODE.EQ.-1)GOTO 2000=C IN PORTACALC-VM, S COMMAND ALLOWS DEFAULT FORMAT CHANGE ANDAC TITLE CHANGE, BUT DOES NOT ALTER SHEET IN MEMORY... DON'T ALLOWC SCRATCH FILE SAVE STUFF...&C IF(ICODE.EQ.-2)CALL WRKFIL(1,FORM,3)C IF (ICODE.EQ.-2)CALL CLOSE(7) IF(ICODE.LE.-2)GOTO 3002C%C RECALCULATE SHEET NOW AUTOMAGICALLYFC IF ICODE=1, COMMAND JUST MOVES ON DISPLAY, SO NO NEED TO RECALCULATEC THE ENTIRE SHEET.:C LIMIT NUMBER OF ITERATIONS AT ANY ONE TIME TO 20 HOWEVER KKMAX=20 3670 CONTINUE4 IF(ICODE.EQ.5.OR.ICODE.EQ.1.OR.RCFGX.EQ.1)GOTO 3671 CALL RECALC IPSET=0 KKMAX=KKMAX-1C IMPLEMENT VARY LOOP...@C ASSUME USRFCT MUSTR CONTOL KALKIT VARIABLE THEN TO GET LOOP TOC TERMINATE SOMETIME. KKMAX=MIN0(KKMAX,KALKIT) IF(KKMAX.GT.0)GOTO 3670 3671 CONTINUE*C IF(ICODE.NE.1.AND.RCFGX.NE.1)CALL RECALCC@C DISPLAY SHEET NOW. ONLY ALTERS ENTRIES INVALIDATED BY COMMAND. IF(ICODE.NE.2)GOTO 21HC ICODE=2 = REFRESH DISPLAY. ZERO ALL NUMBERS AND CAUSE TOTAL REDISPLAY. DO 22 N1=1,DRW DO 22 N2=1,DCL&C SET NUMBER DISPLAYED TO WEIRD VALUE.&22 DVS(N1,N2)=DVS(N1,N2)+.000000000034 IF(PZAP.EQ.0)CALL UVT100(ED,2) CALL UVT100(CUP,1,1) 21 CONTINUE/ IF(ICODE.NE.5.AND.PZAP.EQ.0)CALL DSPSHT(ICODE) DCOL=IDCL DROW=IDRW PROW=IPRSS PCOL=IPCSS GOTO 1000 5600 CONTINUE(C ERROR ON READ FROM IOLVL HANDLED HERE. REWIND 5 CLOSE(UNIT=3) IOLVL=5 GOTO 1000 END SUBROUTINE IN2AS(ROW,CHRS) INTEGER*2 ROW LOGICAL*1 CHRS(4) INTEGER*4 AC,AC1,AC2 DO 1 N1=1,4 1 CHRS(N1)=32:C CONVERT ROW TO LETTERS. ASSUMES COL=2 OR MORE. ROW 1=A-ZC ROW 2=AA-AZ, THEN BA-BZ ETC. AC=ROW DO 2 N=1,4 M=5-NC CONVERT BACKWARDS INTO CHRS AC1=(AC/26) AC2=AC1*26 IX=AC-AC2( IF(.NOT.(IX.EQ.0.AND.AC1.GT.0))GOTO 772.C CORRECT SO WE GET Z, NOT A FOR LABELS. IX=26 AC1=AC1-1 772 CONTINUE IF(IX.GT.0)CHRS(M)=IX+64 C CONVERT TO ASCII A-Z CHARACTER AC=AC1 2 CONTINUEC JUST IGNORE ANY OVERFLOW. RETURN END SUBROUTINE HELP(LVL)KC PRINT HELP INFO ON SCREEN USING FIRST 22 LINES. ASSUME XQTCMD INVALIDATESC THE DISPLAY.G PARAMETER CUP = 1, CUU = 2, CUD = 3, CUF = 4, CUB = 5, DECDWL = 6G $, DECDHL = 7, DECRC = 8, DECSC = 9, DECSWL = 10, ED = 11, EL = 12A $, SGR = 13, NEL = 14, SCS = 15, SM = 16, RM = 17, ANSI = 18 PARAMETER TMREFN = 1 LOGICAL*1 FORM(100) CALL UVT100(ANSI) CALL UVT100(ED,2)C CALL UVT100(RM,8)C CALL UVT100(RM,5)&C LEVEL 0 (LEVELS NOT YET IMPLEMENTED) CALL UVT100(CUP,1,1) INCLUDE 'PCHELP.FOR' WRITE(6,100) CALL UVT100(CUP,2,1) WRITE(6,101) CALL UVT100(CUP,3,1) WRITE(6,102) CALL UVT100(CUP,4,1) WRITE(6,103) CALL UVT100(CUP,5,1) WRITE(6,104) CALL UVT100(CUP,6,1) WRITE(6,105) CALL UVT100(CUP,7,1) WRITE(6,106) CALL UVT100(CUP,8,1) WRITE(6,107) CALL UVT100(CUP,9,1) WRITE(6,108) CALL UVT100(CUP,10,1) WRITE(6,109) CALL UV00q,^r1^0][Z[[[\[}T100(CUP,11,1) WRITE(6,110) CALL UVT100(CUP,12,1) WRITE(6,111) CALL UVT100(CUP,13,1) WRITE(6,112) CALL UVT100(CUP,14,1) WRITE(6,113) CALL UVT100(CUP,15,1) WRITE(6,114) CALL UVT100(CUP,16,1) WRITE(6,122) CALL UVT100(CUP,17,1) WRITE(6,115) CALL UVT100(CUP,18,1) WRITE(6,116) CALL UVT100(CUP,19,1) WRITE(6,117) CALL UVT100(CUP,20,1) WRITE(6,118) CALL UVT100(CUP,21,1) WRITE(6,119) CALL UVT100(CUP,22,1) WRITE(6,120) CALL UVT100(CUP,23,1) WRITE(6,121) 9000 CONTINUE CALL UVT100(CUP,24,1)2100 FORMAT('EN expression - Insert expression at ' 1 'current pos.')C101 FORMAT('M1,M2,M3, or M4 - Motion up, down, left, right (auto)')?102 FORMAT('DL var1:var2 Rn:m (or Cn:m) - Display Loc phys to ' 1 'row/col n-m')8103 FORMAT('DF var1:var2 [format] - set display format.'$ 1 ' A or L shows text, else #')=104 FORMAT('DT var1:var2 F or I - Set display number type to' 1 ' flt or int')B105 FORMAT('DW n,m - set width of column n of display to m chars')C106 FORMAT('DB c,r - Set display bounds at c cols, r rows (chars)')5109 FORMAT('L var - Move cursor to var named (phys.)'/ 1 ' OA var or OR var=move displ. origin')B107 FORMAT('V - redraw screen. VF - Disply. formulas. VM=no auto.' 1 ' redraw')B108 FORMAT('K - Drop into interactive calc. *E returns to sheet.')?110 FORMAT('ZA - zero all. ZE var1:var2 - zero var1 thru var2')A111 FORMAT('X - exit program. W write screen to file or printer')A112 FORMAT('CV v1:v2 v3:v4 copy value from v1:v2 to v3:v4 range;'$ 1 'CR=copy and relocate vars.')@113 FORMAT('CD v1:v2 v3:v4 copy display format. CF=copy formula' 1 '. CA=copy all')F114 FORMAT('P Put screen to file. G=get screen from file at curr.loc')7115 FORMAT('1,2,3,4 - move cursor Up,Down,Left,Right. '/ 1 'A[A/R]n[R/C] Add abs/reloc n Row/Col')C116 FORMAT('Variable ranges are var1[:var2]. Var names P#+n#+m or')E117 FORMAT('D#+n#+m are current Phys or Display locs + or - offsets')C118 FORMAT('Expressions may use multiple stmts, use \ separators.')B119 FORMAT('Use std FORTRAN function names + MIN, MAX, AVG, STD')B120 FORMAT('or SUM. IF stmt format is IF [v1.REL.v2]yes-expr|else' 1 ' expr.')4121 FORMAT('Rels are .LT.,.GT.,.EQ.,.NE.,.GE.,.LE.')F122 FORMAT('R Recompute sheet. RM Recompute Manually only (R resets)') RETURN END& SUBROUTINE STRCMP(NAME,LENGTH,RETCD)#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY. INCLUDE 'VKLUGPRM.FTN'C PARAMETER RRW = 32C PARAMETER RCL = 32C RRW=MAX REAL ROWSC RCL=MAX REAL COLS:C RRW MUST BE 1 LARGER TO HANDLE 1ST 27 VARIABLES IN AVBLS#C VBLS AND TYPE DIMENSIONED RRW,RCL4C **************************************************4C * *4C * SUBROUTINE STRCMP(NAME,LENGTH,RETCD) *4C * *4C **************************************************CCIC STRCMP LOOKS PAST BLANKS FOR THE NAME HELD BY NAME(1),...,NAME(LENGTH)6C THE RETURN CODE RETCD INDICATES SUCCESS OR FAILURE:C C 1=MATCH C 2=FAILUREC$C UPON EXIT, COMMON VARIABLE NONBLKHC IF SUCCESSFUL, POINTS TO ONE BEYOND THE LAST CHARACTER SCANNEDC FOR MATCHC IF FAILURE, UNCHANGEDCCCC MODIFICATION CLASSES: M2CCC>C STRCMP CALLS GETNNB TO GET THE NEXT NON-BLANK FROM LINE(80)CC STRCMP IS CALLED BY CMNDCCCCC VARIABLE USEC#C I2 INDEXES NAME(LENGTH).=C IS HOLDS VALUE OF NONBLANK IN CASE AN ERROR OCCURS7C AND IT IS NECESSARY TO RESTORE THE VALUE..C LENGTH HOLDS THE LENGTH OF VECTOR NAME.8C NONBLK POINTER FOR COMMAND LINE HELD BY LINE(80).5C RETCD HOLDS RETURN CODE. 1=MATCH, 2=00r4^s6^Z]YTADATADATADATADATADATAFAILURECCCC'C SUBROUTINE STRCMP(NAME,LENGTH,RETCD) INTEGER*2 LENGTH INTEGER*2 LEVEL,NONBLK,LEND INTEGER*2 RETCD,VIEWSW,BASEDC! LOGICAL*1 LINE(80),NAME(LENGTH)- LOGICAL*1 ALPHA(27),COMMA,BLANK,RPAR,LPAR,EQC- COMMON /CONS/ALPHA,COMMA,BLANK,RPAR,LPAR,EQ, COMMON LEVEL,LINE,NONBLK,LEND,VIEWSW,BASEDC5C UPON ENTRANCE, NONBLK POINTS TO THE FIRST CHARACTER8C IN NAME, COMPARE LOOKS PAST THIS TO THE NEXT CHARACTER9C SINCE CMND HAS ALREADY IDENTIFIED THAT FIRST CHARACTER +C IN THE COMMAND NAME (AFTER THE ASTERISK). IS=NONBLK CALL GETNNB(IPT,RETCD) GO TO (10,999),RETCD1C ON EXIT NONBLK POINTS TO LAST CHARACTER IN NAMECC10 DO 100 I2=1,LENGTH CALL GETNNB(IPT,RETCD) GO TO (20,999),RETCD STOP 20 20 NONBLK=IPT% IF(NAME(I2).NE.LINE(NONBLK))GOTO 999 100 CONTINUE RETCD=1 RETURNCC C NO MATCH 999 RETCD=2#C IF ERROR, RESTORE VALUE OF NONBLK NONBLK=IS RETURN END#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY./C PARAMETERS TO DEFINE DIMENSIONS FOR VIZIKLUGE)C PHYSICAL SHEET DIMENSIONS ARE (RRW,RCL)(C DISPLAY SHEET DIMENSIONS ARE (DRW,DCL)6C RECALL 1ST DIMENSION IS ACROSS TOP, 2ND DIMENSION IS4C LENGTH DOWN. NOTE TOO THAT RCP AND RRCL ARE TO BE1C COMPUTED AS RRW*RCL AND RCPM27 IS (RRW*RCL -27)2C SINCE THERE ARE 27 ACUMULATORS (A THRU Z AND %).4C BRRCL=(RRCL+7)/8 , I.E., ENOUGH BYTES FOR A BITMAPC+C *** IMPORTANT CONSTRAINTS ON SETTINGS ***CC;C RRW MUST BE AT LEAST 27 SO THAT THE 27 ACCUMULATORS WILL=C BE AVAILABLE. (IF IT IS LESS, THE % ACCUMULATOR'S LOCATIONAC WILL NOT BE CORRECT AND WILL SCREW YOU UP UNLESS 2 TYPE ARRAYS8C ARE DEFINED; THE DATA AREAS FOR THE AC'S ARE SEPARATE>C BUT THE TYPE ARRAY IS UNIFIED. WHILE YOU MIGHT ABANDON SOME>C OF THE AC'S WITH NO REAL PENALTY EXCEPT EXPOSING YOUR USERS=C TO DOUBLE DEFINED AREAS, THE TYPE INFO FOR % IS IN A FIXED>C LOCATION HARD CODED IN. NORMALLY YOU'LL WANT TO LEAVE IT TO>C A FLOATING TYPE AND IT MAY NOT FOUL YOU UP (MOST DATA CELLSDC WILL BE FLOATING TOO), BUT CORRECT OPERATION CANNOT BE GUARANTEEDCC UNLESS RRW (NUMBER OF COLUMNS IN PHYSICAL SHEET) IS 27 OR MORE.)C@C RCL MUST BE AT LEAST 2; THE FIRST IS THE ACCUMULATORS AND THE%C SECOND UP ARE DISPLAY COORDINATES.C8C DRW MUST BE LESS THAN OR EQUAL TO RRW AND DCL MUST BE:C LESS THAN OR EQUAL TO (RCL-1). ALSO MXCOLS MUST BE LESS7C THAN OR EQUAL TO DRW AND MXROWS MUST BE LESS THAN ORC EQUAL TO DCL.C=C MPWD IS JUST THE MAX PRINT LINE FOR THE W COMMAND (WRITING>C PRINT IMAGES OF THE SCREEN OUT). IT MAY BE SET SMALLER THAN>C 132, BUT TO MAKE IT LARGER YOU'LL HAVE TO INCREASE THE SIZE>C OF PRINT ARRAYS IN DSPSHT ROUTINE WHICH FILLS IN THE SIZES.C=C IT IS ASSUMED YOUR FORTRAN UNDERSTANDS THESE PARAMETERS ARE<C ALL INTEGER QUANTITIES; CHANGE AS NEEDED IF FORM IS WRONG.C=C THERE ARE A FEW PARAMETER STATEMENTS IN PROGRAMS TOO. THESE;C HAVE TO DO WITH UVT100 DEFINITIONS AND MAY ALSO BE PULLEDC INTO HERE IF DESIRED.C@C PARAMETER RRCL=RRW*RCL. COMPUTE AND FILL IN YOURSELF (FORTRAN.C AT OUR SITE DOESN'T LET THAT BE AUTOMATIC).!C RCPM27 IS COMPUTED AS RRCL-27.+C PARAMETER RCP IS THE SAME VALUE AS RRCL.C+C *****************************************C0C *** SUPER SMALL SHEET FOR PRO WHERE SPEED IS A7C *** CONSIDERATION. TO BE USED FOR OVERLAY COLLAPSING.C ***- PARAMETER DCL = 20 ! DISPLAY MAX ROWS, COLS.& PARAMETER DRW = 12 ! DISPLAY MAX COLSEC NOTE THAT DCL ROWS MAY BE PRINTED EVEN THOUGH THE VT100 ONLY ALLOWS<C 20 TO BE DISPLAYED; JUST SET THE DISPLAY LENGTH TO MORE... PARAMETER MPWD = 132$ PARAMETER RRW = 14 ! NUMBER OF COLSF PARAMETER RCL = 100 ! REAL (PHYSICAL) ROWS AND COLUMNS OF SPREADSHEETFC note the next 2 parameters are 1 because subroutines worry about theC storage separately.) PARAMETER RRWP=1 ! PHYSICAL STORAGE SIZE PARAMETER RCLP=1 ! 00s<^t@^w^[Z[[[\[}COL,ROW PARAMETER RCR=1 ! RRWP*RCLPAC FOLLOWING IS A DUMMY, ONLY USED FOR A DATA STMT; LEAVE IT AT 1. PARAMETER RCRM27=1 !RCR - 27 PARAMETER RCP = 1400 PARAMETER RCPM27 = 1373 PARAMETER RRCL = 1400C PARAMETER RRCL=RRW*RCL4C BRRCL=(RRCL+7)/8 , I.E., ENOUGH BYTES FOR A BITMAP PARAMETER BRRCL=175 PARAMETER TMREFN = 1BC MXCOLS AND MXROWS ARE MAX COLS (ACROSS TOP) ON DISPLAY INITIALLYCC AND NUMBER OF INITIALLY DISPLAYED ROWS (ALONG LEFT) DOWN. DRW,DCL3C ARE MAX POSSIBLE DISPLAY COLS, ROWS RESPECTIVELY. PARAMETER MXCOLS=7 PARAMETER MXROWS=20BC LCMDR AND LDSPR ARE COMMAND AND DISPLAY ROWS ON SCREEN. REDEFINE<C TO OTHER NUMBERS FOR LARGER OR SMALLER SCREENS THAN VT100. PARAMETER LCMDR=23 PARAMETER LDSPR=24C7C JVTINC IS INCREMENT FOR OFFSET DUE TO SCREEN ODDITIES PARAMETER JVTINC=1C SET JVTINC TO 0 FOR VT52*C PARAMETER FOR MAX NUMBER OF HELP SCREENSC SET TO 9 FOR STD HELP FILE/C SET BIGGER IF DESIRED FOR HELPPRO.FOR PROGRAM PARAMETER MAXHLP=99CC PARAMETERS FOR DISK VERSION.DC THESE SET THE SIZES OF MEMORY BUFFERS USED FOR VALUES AND FORMULAS;C HANDLED HEREIN. IT IS EXPECTED THAT LVBF WILL BE AT LEAST<C 50 (FOR 250 WORDS), OR A MULTIPLE OF 50, SINCE IT CONTROLS;C VALUE BUFFER RECORDS, KEPT IN 500-BYTE DISK BLOCKS. ALSO,<C LFM SHOULD BE 32 OR A MULTIPLE OF 32. SINCE A SYMBOL TABLE9C ALGORITHM IS USED, THE MULTIPLES PROBABLY SHOULD BE THE@C SAME. THERE MIGHT BE MORE VALUES THAN FORMULAS THOUGH, AS WHENC MATRIX MATH IS USED. PARAMETER LVBF=100 PARAMETER LFM=64BC THE ABOVE ARE RATHER SMALL. NOTE DISK FILES ARE BACKUP STORE FOR4C THESE THOUGH; SIZE OF DISK FILE IS SET AT RUNTIME.C7C SWRT - WRITE VARIABLE LENGTH STRING TO SCREEN WITHOUTC RECORD TERMINATION.!C COPYRIGHT GLENN C EVERHART 1984C ALL RIGHTS RESERVEDCC SUBROUTINE SWRT(STRING,LENGTH) LOGICAL*1 STRING(127);C ALLOW CALLS FROM FORTRAN 66 ROUTINES TO BE DONE NATURALLYC E.G.C CALL SWRT('STRING',NCHARS) INTEGER*2 LENGTHC DUMP OUT ALL WE CAN.. CHARACTER*7 SFM CHARACTER*1 SFMX(7) CHARACTER*3 SNM EQUIVALENCE(SNM,SFMX(2)) EQUIVALENCE (SFMX(1),SFM)4C HERE ARE THE BUILT IN FORMATS. NOTE WE FILL IN THE5C REPEAT COUNT AT RUNTIME FOR THE TEXT TO BE WRITTEN.>C NOTE ALSO THAT THE 1ST CHAR IS A # SIGN TO SHOW UP PROBLEMS.C FORMATS ARE (nnnA1)"C COMPRISING 13 CHARACTERS IN ALL. DATA SFM/'(001A1)'/;C NOTE WE JUST FILL IN THE LENGTH AND WRITE TO SCREEN USINGC SFM AS A RUNTIME FORMAT.C IF(LENGTH.LE.0)RETURN WRITE(SNM,1)LENGTH1 FORMAT(BZ,I3)CC WRITE ON UNIT 6 WHICH IS OUR SPECIALLY OPENED CONSOLE OUTPUT UNIT%C (VIA EXPLICIT OPEN IN MAIN PROGRAM)% WRITE(6,SFM)(STRING(II),II=1,LENGTH) RETURN ENDC SUBROUTINE TTYINI#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY. SUBROUTINE TTYINI8C PERFORM INITS ON UNIT 5. NORMALLY EITHER DO NOTHING OR<C REPLACE WITH SOMETHING THAT WORKS FOR YOUR SYSTEM. TYPICAL C ACTIONS:&C SET THE TERMINAL NOT TO WRAP AROUND&C ATTACH TERMINAL SO TYPE-AHEAD WORKS@C SET UP TERMINAL TO MUNGE AROUND THE ESCAPE SEQUENCES TO ALLOW.C SPECIAL FUNCTION AND/OR ARROW K00w^x^y^YTADATADATADATADATADATAEYS TO WORK.,C VMS VERSION ... HIGHLY SYSTEM DEPENDENT...* INTEGER*4 TTCHAN,STAT,SYS$ASSIGN,SYS$QIOW INTEGER*2 IOSB(4) LOGICAL*1 AKP(2) INTEGER*4 MODEBF(3),IWRK,IW2C ** UNCOMMENT IN VMS V4.XC INTEGER*4 IW3 INCLUDE '($IODEF)' INCLUDE '($TTDEF)' COMMON /TTCHN/TTCHAN DATA AKP/27,'='/ STAT=SYS$ASSIGN('TT',TTCHAN,,) IW2=IO$_SENSEMODEB STAT=SYS$QIOW(,%VAL(TTCHAN),%VAL(IW2),IOSB,,,MODEBF,%VAL(12),,,,) IW2=TTM$_WRAP IWRK=.NOT.(IW2) MODEBF(2)=MODEBF(2).AND.IWRK IW2=TT$M_ESCAPEC ** UNCOMMENT IN VMS V4.XC IW3=TTM$_EDITING0C COMPLEMENT "EDITING" MASK TO TURN OFF TERMINALC CMD LINE EDITING CHARS... C IW3=-1-IW3 IWRK=IW2 MODEBF(2)=MODEBF(2).OR.IWRKC ** UNCOMMENT FOR VMS V4C MODEBF(2)=MODEBF(2).AND.IW3AC TURN ON DESIRED CHARACTERISTICS (REALLY NEED THE ESCAPE CHARAC. C BADLY...) IW2=IO$_SETMODEB STAT=SYS$QIOW(,%VAL(TTCHAN),%VAL(IW2),IOSB,,,MODEBF,%VAL(12),,,,)8C NOW HAVING SET THE TERMINAL UP, GET BACK OUTTA HERE...6C FIRST SET AUXILIARY KEYPAD MODE UP ON UNIT 6 THOUGH. WRITE(6,2000)AKP2000 FORMAT(2A1) RETURN ENDCC SUBROUTINE GETTTL(LINE)#C READ IN A TERMINAL LINE ON VAX...3C VMS VERSION. FOR STANDARD VANILLA VERSION COMMENT4C OUT ALL BUT THE FORTRAN READ AND UNCOMMENT THAT... SUBROUTINE GETTTL(LINE) LOGICAL*1 LINE(132)CCC ****++++ VMS SPECIFIC BELOW* INTEGER*4 TTCHAN,STAT,SYS$ASSIGN,SYS$QIOW INTEGER*2 IOSB(4) INTEGER*4 MODEBF(3),IWRK INTEGER*2 MODPUB,LIMODE COMMON/MODPUB/MODPUB,LIMODE5C MODPUB HAS MODE (0 OR 1) USED IN CMD INTERPRETATION/C SO WE CAN ZOT OUT MESSAGES HERE IF DESIRED...6C GENERALLY DO SO ONLY IF INITIAL CHAR IS / (FOR CMDS) INCLUDE '($IODEF)' INCLUDE '($TTDEF)' COMMON /TTCHN/TTCHAN DO 1 N1=1,132 1 LINE(N1)=0'C NOTE TTCHAN IS SET UP IN TTYINI ABOVE#C CHANGE CODE TO READ-VIRTUAL-BLOCKC IWRK=IO$_TTYREADALL IWRK=IO$_READVBLKB STAT=SYS$QIOW(,%VAL(TTCHAN),%VAL(IWRK),IOSB,,,LINE,%VAL(132),,,,)%C THAT OUGHT TO PULL EVERYTHING IN...?C SINCE WE ZERO THE BUFFER INITIALLY, FORGET THE COUNT. IT ONLY2C MATTERS IF BUFFER NEEDS TO BE CLEARED PAST IT...C ****++++ VMS SPECIFIC ABOVECC C DUMMY CODE FOR FORTRAN READ... C *********IC **** HERE IS THE SECTION OF CODE YOU NEED FOR NON-VMS-SPECIFIC VERSIONC READ(5,1000)LINEC1000 FORMAT(132A1) C ********* RETURN ENDC SUBROUTINE TTYINI SUBROUTINE TTYINI8C PERFORM INITS ON UNIT 5. NORMALLY EITHER DO NOTHING OR<C REPLACE WITH SOMETHING THAT WORKS FOR YOUR SYSTEM. TYPICAL C ACTIONS:&C SET THE TERMINAL NOT TO WRAP AROUND&C ATTACH TERMINAL SO TYPE-AHEAD WORKS@C SET UP TERMINAL TO MUNGE AROUND THE ESCAPE SEQUENCES TO ALLOW.C SPECIAL FUNCTION AND/OR ARROW KEYS TO WORK.,C VMS VERSION ... HIGHLY SYSTEM DEPENDENT... RETURN ENDC DUMMY TTYDEI (DE-INIT) SUBROUTINE TTYDEI RETURN ENDCC SUBROUTINE GETTTL(LINE)#C READ IN A TERMINAL LINE ON VAX...3C VMS VERSION. FOR STANDARD VANILLA VERSION COMMENT4C OUT ALL BUT THE FORTRAN READ AND UNCOMMENT THAT... SUBROUTINE GETTTL(LINE) LOGICAL*1 LINE(132)CCCC C DUMMY CODE FOR FORTRAN READ... C *********IC **** HERE IS THE SECTION OF CODE YOU NEED FOR NON-VMS-SPECIFIC VERSION READ(5,1000)LINE1000 FORMAT(132A1) C ********* RETURN ENDC SUBROUTINE TTYINI#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY. SUBROUTINE TTYINIC *** VMS V4 FLAVOR ***8C PERFORM INITS ON UNIT 5. NORMALLY EITHER DO NOTHING OR<C REPLACE WITH SOMETHING THAT WORKS FOR YOUR SYSTEM. TYPICAL C ACTIONS:&C SET THE TERMINAL NOT TO WRAP AROUND&C ATTACH TERMINAL SO TYPE-AHEAD WORKS@C SET UP TERMINAL TO MUNGE AROUND THE ESCAPE SEQUENCES TO ALLOW.C SPECI00y^z^^[Z[[[\[}AL FUNCTION AND/OR ARROW KEYS TO WORK.,C VMS VERSION ... HIGHLY SYSTEM DEPENDENT...* INTEGER*4 TTCHAN,STAT,SYS$ASSIGN,SYS$QIOW INTEGER*2 IOSB(4) LOGICAL*1 AKP(2) INTEGER*4 MODEBF(3),IWRK,IW2C ** UNCOMMENT IN VMS V4.X INTEGER*4 IW3 INCLUDE '($IODEF)' INCLUDE '($TTDEF)' COMMON /TTCHN/TTCHAN DATA AKP/27,'='/ STAT=SYS$ASSIGN('TT',TTCHAN,,) IW2=IO$_SENSEMODEB STAT=SYS$QIOW(,%VAL(TTCHAN),%VAL(IW2),IOSB,,,MODEBF,%VAL(12),,,,) IW2=TTM$_WRAP IWRK=.NOT.(IW2) MODEBF(2)=MODEBF(2).AND.IWRK IW2=TT$M_ESCAPEC ** UNCOMMENT IN VMS V4.X IW3=TTM$_EDITING0C COMPLEMENT "EDITING" MASK TO TURN OFF TERMINALC CMD LINE EDITING CHARS... C IW3=-IW3-1C NEGATIVE = COMPLEMENT+1C IN 2'S COMPLEMENT ARITHMETIC. IWRK=IW2 MODEBF(2)=MODEBF(2).OR.IWRKC ** UNCOMMENT FOR VMS V4! MODEBF(2)=MODEBF(2).AND..NOT.IW3AC TURN ON DESIRED CHARACTERISTICS (REALLY NEED THE ESCAPE CHARAC. C BADLY...) IW2=IO$_SETMODEB STAT=SYS$QIOW(,%VAL(TTCHAN),%VAL(IW2),IOSB,,,MODEBF,%VAL(12),,,,)8C NOW HAVING SET THE TERMINAL UP, GET BACK OUTTA HERE...6C FIRST SET AUXILIARY KEYPAD MODE UP ON UNIT 6 THOUGH. WRITE(6,2000)AKP2000 FORMAT(2A1) RETURN ENDCC SUBROUTINE GETTTL(LINE)#C READ IN A TERMINAL LINE ON VAX...3C VMS VERSION. FOR STANDARD VANILLA VERSION COMMENT4C OUT ALL BUT THE FORTRAN READ AND UNCOMMENT THAT... SUBROUTINE GETTTL(LINE) LOGICAL*1 LINE(132)CCC ****++++ VMS SPECIFIC BELOW* INTEGER*4 TTCHAN,STAT,SYS$ASSIGN,SYS$QIOW INTEGER*2 IOSB(4) INTEGER*4 MODEBF(3),IWRK INTEGER*2 MODPUB,LIMODE COMMON/MODPUB/MODPUB,LIMODE5C MODPUB HAS MODE (0 OR 1) USED IN CMD INTERPRETATION/C SO WE CAN ZOT OUT MESSAGES HERE IF DESIRED...6C GENERALLY DO SO ONLY IF INITIAL CHAR IS / (FOR CMDS) INCLUDE '($IODEF)' INCLUDE '($TTDEF)' COMMON /TTCHN/TTCHAN DO 1 N1=1,132 1 LINE(N1)=0'C NOTE TTCHAN IS SET UP IN TTYINI ABOVE#C CHANGE CODE TO READ-VIRTUAL-BLOCKC IWRK=IO$_TTYREADALL IWRK=IO$_READVBLKB STAT=SYS$QIOW(,%VAL(TTCHAN),%VAL(IWRK),IOSB,,,LINE,%VAL(132),,,,)%C THAT OUGHT TO PULL EVERYTHING IN...?C SINCE WE ZERO THE BUFFER INITIALLY, FORGET THE COUNT. IT ONLY2C MATTERS IF BUFFER NEEDS TO BE CLEARED PAST IT...C ****++++ VMS SPECIFIC ABOVEC C DUMMY CODE FOR FORTRAN READ... C *********IC **** HERE IS THE SECTION OF CODE YOU NEED FOR NON-VMS-SPECIFIC VERSIONC READ(5,1000)LINEC1000 FORMAT(132A1) C *********>C ADD CODE FOR EXTRA CALL FOR NON-VT100 OR NON-VT200 TERMINALSIC TO MUNGE NONSTANDARD "ESCAPE" KEYS. CURRENTLY ONLY DO FOR COLORSCAN 10. CALL ESCTRN(LINE);C ESCTRN SHOULD JUST RETURN IF NOTHING WEIRD IS GOING ON... RETURN END8; TTYINI - SYSTEM DEPENDENT (RSX VERSION) TERMINAL INITS ; USES LUN 5 .TITLE TTYINI .GLOBL TTYINI,TTYDEI .MCALL QIOW$S,QIOW$,DIR$);SET TERMINAL UP NOWRAP, ESCSEQ,TYPEAHEAD;ATTACH TERMINAL .PSECT TTYII,RW,DDET: QIOW$ IO.DET,5,5,,IOXXDET2: QIOW$ IO.DET,6,5,,IOXX"ATT: QIOW$ IO.ATT!TF.ESQ,5,5,,IOXX(SET: QIOW$ SF.SMC,5,5,,IOXX,,#ATT2: QIOW$ IO.ATT!TF.ESQ,6,5,,IOXX)SET2: QIOW$ SF.SMC,6,5,,IOXX,,#IOXX: .WORD 0,0 ;DUMMY I/O STAT BLK .IF NDF,$VT52;SETUP AUX KEYPAD .EVENAKPBF: .BYTE 33,75 .EVEN&AKP: QIOW$ IO.WLB,6,5,,IOXX,, .ENDCSBF: .BYTE TC.ACR,0 ;NOWRAP .BYTE TC.CTS,0 ;CANCEL CTRL S .BYTE TC.ESQ,1 ;ESCSEQ: .BYTE TC.RAT,1 ;TYPEAHEAD (NOTE REQUIRES FULL DUP DRIVER)% .BYTE TC.FDX,1 ;SOFTWARE FULL DUPLEX SBFSZ=.-SBF .PSECT TTYIII,ITTYINI:: DIR$ #ATT ;ATTACH TERMINAL DIR$ #SET ;SET CHARACTERISTICS DIR$ #ATT2 DIR$ #SET2 .IF NDF,$VT52 DIR$ #AKP ;SET AUX KEYPAD MODE=; IDEA IS TO ALLOW NUMBERS ON AUX KEYPAD TO COME I00z^{^^YTADATADATADATADATADATAN AS DIGITS .ENDC RTS PC"TTYDEI: DIR$ #DET ;DETACH TERMINAL! DIR$ #DET2 ;ON LUNS 5 AND 6 BOTH RTS PC .END#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY.' SUBROUTINE USRCMD(CMDLIN,ICODE,IGOTIT) CHARACTER*80 CMDSTR BYTE CMLN(80) EQUIVALENCE(CMLN,CMDSTR):C DUMMY PLACE FOR USER COMMANDS TO PARSE CMDLIN AND HANDLE(C ADDITIONAL COMMANDS FOR VMS PORTACALC. INCLUDE 'VKLUGPRM.FTN'CC DEFINE VALUE AREA FOR SPREAD SHEET. MORE WILL BE NEEDED GENERALLYBC OUT OF COMMONS, BUT AT A MINIMUM, THIS WILL ALLOW SOME ACCESS TO,C USEFUL NUMBERS. LOOK IN XQTCMD FOR MORE...2 LOGICAL*1 AVBLS(20,27),WRK(128),VBLS(8,RRWP,RCLP)" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9) INTEGER*2 IOLVL,FOOBAR COMMON/FOOBAR/FOOBAR COMMON/IOLVL/IOLVL REAL*8 XAC,XVBLS(RRWP,RCLP) REAL*8 TAC,UAC,VAC INTEGER*4 JVBLS(2,RRWP,RCLP) EQUIVALENCE(XAC,AVBLS(1,27)) EQUIVALENCE(TAC,AVBLS(1,20)) EQUIVALENCE(UAC,AVBLS(1,21)) EQUIVALENCE(VAC,AVBLS(1,22))& EQUIVALENCE(VBLS(1,1,1),JVBLS(1,1,1))$ EQUIVALENCE(VBLS(1,1,1),XVBLS(1,1)) COMMON/V/TYPE,AVBLS,VBLS,VLENc available parsing aid:3c call varscn(line,ibgn,lend,lstchr,id1,id2,ivalid)8c where line(ibgn... lend) is scanned. If variable found7c ivalid=1 else ivalid=0. id1,id2 are dims in xvbls for7c variable found if any. lstchr is last char found+1...%C OTHER USEFUL ROUTINES IN THE SHEET:C GN(LAST,LEND,NUMBER,LINE)9C LOOKS FROM LINE(LAST) THRU LINE(LEND) FOR A NUMBER AND:C RETURNS ANY NUMBER IN "NUMBER" ARG. ASSUMES "LINE" IS A;C BYTE ARRAY. (NO INDICATION OF WHERE THE NUMBER WAS FOUND;C HOWEVER). THROWS OUT LEADING SPACES, TERMINATES ON A NON C NUMERIC.C INDEX(LINE,CHAR)8C EXPECTS LINE TO BE NULL TERMINATED AND RETURNS EITHER9C THE SUBSCRIPT (COUNTING FROM 1) OF CHAR IN LINE OR THEBC MAX SUBSCRIPT IN LINE (I.E., WHERE IT HIT THE NULL TERMINATOR).?C NOTE THIS DIFFERS FROM THE "STANDARD" VERSION OF INDEX WHICH?C RETURNS 0 FOR "NOT FOUND" -- THIS VERSION RETURNS MAX LENGTH1C FOR "NOT FOUND". STOPS AT 512 BYTES HOWEVER...<C PARSING IS UP TO USER. NOTE VARSCN MAY BE CALLED TO PARSE LOGICAL*1 CMDLIN(132) INTEGER*4 ISTTSCBC INSERT CODE FOR ADDING A LIB$SPAWN CALL HERE TO PASS COMMANDS TO'C DCL IF THEY BEGIN WITH A $ CHARACTER. IGOTIT=03 IF(CMDLIN(1).NE.'$'.AND.CMDLIN(1).NE.'}')GOTO 8000CAC HERE CALL THE LIB$SPAWN WITH THE COMMAND LINE AS AN ARGUMENT... DO 1000 NN=1,801000 CMLN(NN)=CMDLIN(NN+1)" CMLN(80)=13 ! ADD C.R. AFTER LINE#C ABOVE, INSERT A CR AFTER CMD LINE ISTTS=LIB$SPAWN(CMDSTR)2C ASSUME WE NEED A REDRAW AFTER THE SPAWN FINISHES IF(CMDLIN(1).NE.'}')GOTO 750 WRITE(6,760)2760 FORMAT(' PRESS RETURN TO REDRAW SPREADSHEET>')! READ(IOLVL,761,END=800,ERR=800)N761 FORMAT(4A1) 750 continue 950 CONTINUE ICODE=25C FLAG THE MAIN COMMAND PARSER WE HANDLED THE COMMAND IGOTIT=1 GOTO 9990 8000 CONTINUE= IF(CMDLIN(1).NE.'D'.OR.CMDLIN(2).NE.'T'.OR.CMDLIN(3).NE.'R') 1 GOTO 8990 IGOTIT=1 ICODE=2 CALL DTRCMD(CMDLIN(4))C ISSUE DATATRIEVE COMMAND... 8990 CONTINUE= IF(CMDLIN(1).NE.'F'.OR.CMDLIN(2).NE.'I'.OR.CMDLIN(3).NE.'L') 1 GOTO 9990 IGOTIT=1=C FLAG FOR RECALCULATION BUT NOT TOTAL REDISPLAY IF PREFIX ISC 'FIL' RATHER THAN 'DTR'... ICODE=3 CALL DTRCMD(CMDLIN(4))C ISSUE DATATRIEVE COMMAND...C 9990 CONTINUE RETURN 800 CONTINUE CLOSE(UNIT=IOLVL)"C RESET TO NORMAL I/O OFF CONSOLE. FOOBAR=0 IOLVL=5 CLOSE(UNIT=5)8 OPEN(UNIT=5,FILE='SYS$COMMAND:',CARRIAGECONTROL='NONE')0C REOPEN CONSOLE IN CASE OF INITIALIZER FILES... GOTO 750 END00|^}^^[Z[[[\[}#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY.' SUBROUTINE USRCMD(CMDLIN,ICODE,IGOTIT)C CHARACTER*80 CMDSTRC BYTE CMLN(80)C EQUIVALENCE(CMLN,CMDSTR):C DUMMY PLACE FOR USER COMMANDS TO PARSE CMDLIN AND HANDLE(C ADDITIONAL COMMANDS FOR VMS PORTACALC. INCLUDE 'VKLUGPRM.FTN'CC DEFINE VALUE AREA FOR SPREAD SHEET. MORE WILL BE NEEDED GENERALLYBC OUT OF COMMONS, BUT AT A MINIMUM, THIS WILL ALLOW SOME ACCESS TO,C USEFUL NUMBERS. LOOK IN XQTCMD FOR MORE...2 LOGICAL*1 AVBLS(20,27),WRK(128),VBLS(8,RRWP,RCLP)" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9) REAL*8 XAC,XVBLS(RRWP,RCLP) INTEGER*2 IOLVL COMMON/IOLVL/IOLVL REAL*8 TAC,UAC,VAC INTEGER*4 JVBLS(2,RRWP,RCLP) EQUIVALENCE(XAC,AVBLS(1,27)) EQUIVALENCE(TAC,AVBLS(1,20)) EQUIVALENCE(UAC,AVBLS(1,21)) EQUIVALENCE(VAC,AVBLS(1,22))& EQUIVALENCE(VBLS(1,1,1),JVBLS(1,1,1))$ EQUIVALENCE(VBLS(1,1,1),XVBLS(1,1)) COMMON/V/TYPE,AVBLS,VBLS,VLENc available parsing aid:3c call varscn(line,ibgn,lend,lstchr,id1,id2,ivalid)8c where line(ibgn... lend) is scanned. If variable found7c ivalid=1 else ivalid=0. id1,id2 are dims in xvbls for7c variable found if any. lstchr is last char found+1...%C OTHER USEFUL ROUTINES IN THE SHEET:C GN(LAST,LEND,NUMBER,LINE)9C LOOKS FROM LINE(LAST) THRU LINE(LEND) FOR A NUMBER AND:C RETURNS ANY NUMBER IN "NUMBER" ARG. ASSUMES "LINE" IS A;C BYTE ARRAY. (NO INDICATION OF WHERE THE NUMBER WAS FOUND;C HOWEVER). THROWS OUT LEADING SPACES, TERMINATES ON A NON C NUMERIC.C INDEX(LINE,CHAR)8C EXPECTS LINE TO BE NULL TERMINATED AND RETURNS EITHER9C THE SUBSCRIPT (COUNTING FROM 1) OF CHAR IN LINE OR THEBC MAX SUBSCRIPT IN LINE (I.E., WHERE IT HIT THE NULL TERMINATOR).?C NOTE THIS DIFFERS FROM THE "STANDARD" VERSION OF INDEX WHICH?C RETURNS 0 FOR "NOT FOUND" -- THIS VERSION RETURNS MAX LENGTH1C FOR "NOT FOUND". STOPS AT 512 BYTES HOWEVER...<C PARSING IS UP TO USER. NOTE VARSCN MAY BE CALLED TO PARSE LOGICAL*1 CMDLIN(132) integer*2 mcrnam(2)cC INTEGER*4 ISTTS DATA MCRNAM/3R...,3RMCR/c DATA MCRNAM/3RMCR,3R.../CBC INSERT CODE FOR ADDING A LIB$SPAWN CALL HERE TO PASS COMMANDS TO'C DCL IF THEY BEGIN WITH A $ CHARACTER. IGOTIT=03 IF(CMDLIN(1).NE.'}'.AND.CMDLIN(1).NE.'$')GOTO 9990C PDP11 OR PRO SPAWN COMMAND"C FIND OUT HOW LONG THE COMMAND IS DO 2000 N=1,130 NN=131-N IF(CMDLIN(NN).GT.' ')GOTO 2001 2000 CONTINUEEC SINCE WE START PAST THE $ SIGN, ILEN IS 1 LESS EVEN WITH THE $ SIGN 2001 ILEN=NN CMDLIN(NN+1)=271C ADD AN ESC AFTER THE COMMAND TO TERMINATE IT...c detach the terminal first CALL TTYDEI2C TERMINATE COMMAND WITH ESCAPE FOR BENEFIT OF MCR;C SPAWN THE TASK AND AWAIT ITS COMPLETION. USE SPAWN OF MCR=C TO AVOID RSX11M/M+ COMPATIBILITY ISSUES AND ALLOW CCL CMDS.8C N.B. : MCRNAM MAY HAVE TO BE ...MCR INSTEAD OF MCR.../ CALL SPAWN(MCRNAM,,,2,,IXXX,,CMDLIN(2),ILEN,0) CALL WAITFR(2)C RE-INIT AND ATTACH TERMINAL. CALL TTYINI3CC ASSUME WE NEED A REDRAW AFTER THE SPAWN FINISHES IF(CMDLIN(1).NE.'}')GOTO 750 WRITE(6,760)2760 FORMAT(' PRESS RETURN TO REDRAW SPREADSHEET>')! READ(IOLVL,761,END=800,ERR=800)N761 FORMAT(4A1) 750 ICODE=26CC FLAG THE MAIN COMMAND PARSER WE HANDLED THE COMMAND IGOTIT=1C 9990 CONTINUE RETURN 800 CONTINUE CLOSE(UNIT=IOLVL)"C RESET TO NORMAL I/O OFF CONSOLE. IOLVL=5 GOTO 750 END#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY.cDc Add "annotation" commands via main force & awkwardness as follows:Cc 1. ANN command will create a file named cell.ANN for the currentCc cell (or overwrite an old one) dynamically for up to 20 linesIc of text, just firing up the command "EDIT namecell.ANN" so the userCc gets to do full screen edits. THE "name" part of the files00}^^^YTADATADATADATADATADATA isCc taken from the first 6 characters of the sheet name. If theseIc are not in the uppercase alpha range they will be ignored, however,Hc so it is a good idea for sheet titles to have recognizable initialc 6 characters.Dc 2. QUERY or ? command will display the name.ANN file if it exists@c after setting cursor to top of screen and doing line erase c there.c' SUBROUTINE USRCMD(CMDLIN,ICODE,IGOTIT) CHARACTER*80 CMDSTR# PARAMETER CUP=1,EL=12,ED=11,SGR=13 BYTE CMLN(80) LOGICAL*1 NMSH(80) COMMON/NMSH/NMSH EQUIVALENCE(CMLN,CMDSTR):C DUMMY PLACE FOR USER COMMANDS TO PARSE CMDLIN AND HANDLE(C ADDITIONAL COMMANDS FOR VMS PORTACALC. INCLUDE 'VKLUGPRM.FTN'CC DEFINE VALUE AREA FOR SPREAD SHEET. MORE WILL BE NEEDED GENERALLYBC OUT OF COMMONS, BUT AT A MINIMUM, THIS WILL ALLOW SOME ACCESS TO,C USEFUL NUMBERS. LOOK IN XQTCMD FOR MORE...4 INTEGER*2 PROW,PCOL,DROW,DCOL,DRWV,DCLV,LLCMD,LLDSP6 COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRWV,DCLV,LLCMD,LLDSP2 LOGICAL*1 AVBLS(20,27),WRK(128),VBLS(8,RRWP,RCLP)" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9) INTEGER*2 IOLVL,FOOBAR COMMON/FOOBAR/FOOBAR COMMON/IOLVL/IOLVL REAL*8 XAC,XVBLS(RRWP,RCLP) REAL*8 TAC,UAC,VAC LOGICAL*1 FORM(4) LOGICAL*1 CELNAM(8) character*18 annam logical*1 annams(18) equivalence(annam,annams(1)) CHARACTER*8 CELNM CHARACTER*4 CELRW EQUIVALENCE(CELNM,CELNAM(1)) EQUIVALENCE(FORM(1),CELNAM(1)) EQUIVALENCE(CELRW,CELNAM(5)) LOGICAL*1 EDNAM(16) COMMON/EDNAM/EDNAM&C EDITOR STRING NAME... DEFAULT "EDIT" INTEGER*4 JVBLS(2,RRWP,RCLP) EQUIVALENCE(XAC,AVBLS(1,27)) EQUIVALENCE(TAC,AVBLS(1,20)) EQUIVALENCE(UAC,AVBLS(1,21)) EQUIVALENCE(VAC,AVBLS(1,22))& EQUIVALENCE(VBLS(1,1,1),JVBLS(1,1,1))$ EQUIVALENCE(VBLS(1,1,1),XVBLS(1,1)) COMMON/V/TYPE,AVBLS,VBLS,VLENc available parsing aid:3c call varscn(line,ibgn,lend,lstchr,id1,id2,ivalid)8c where line(ibgn... lend) is scanned. If variable found7c ivalid=1 else ivalid=0. id1,id2 are dims in xvbls for7c variable found if any. lstchr is last char found+1...%C OTHER USEFUL ROUTINES IN THE SHEET:C GN(LAST,LEND,NUMBER,LINE)9C LOOKS FROM LINE(LAST) THRU LINE(LEND) FOR A NUMBER AND:C RETURNS ANY NUMBER IN "NUMBER" ARG. ASSUMES "LINE" IS A;C BYTE ARRAY. (NO INDICATION OF WHERE THE NUMBER WAS FOUND;C HOWEVER). THROWS OUT LEADING SPACES, TERMINATES ON A NON C NUMERIC.C INDEX(LINE,CHAR)8C EXPECTS LINE TO BE NULL TERMINATED AND RETURNS EITHER9C THE SUBSCRIPT (COUNTING FROM 1) OF CHAR IN LINE OR THEBC MAX SUBSCRIPT IN LINE (I.E., WHERE IT HIT THE NULL TERMINATOR).?C NOTE THIS DIFFERS FROM THE "STANDARD" VERSION OF INDEX WHICH?C RETURNS 0 FOR "NOT FOUND" -- THIS VERSION RETURNS MAX LENGTH1C FOR "NOT FOUND". STOPS AT 512 BYTES HOWEVER...<C PARSING IS UP TO USER. NOTE VARSCN MAY BE CALLED TO PARSE LOGICAL*1 CMDLIN(132) INTEGER*4 ISTTSCBC INSERT CODE FOR ADDING A LIB$SPAWN CALL HERE TO PASS COMMANDS TO'C DCL IF THEY BEGIN WITH A $ CHARACTER. IGOTIT=03 IF(CMDLIN(1).NE.'$'.AND.CMDLIN(1).NE.'}')GOTO 8000CAC HERE CALL THE LIB$SPAWN WITH THE COMMAND LINE AS AN ARGUMENT... DO 1000 NN=1,801000 CMLN(NN)=CMDLIN(NN+1)" CMLN(80)=13 ! ADD C.R. AFTER LINE#C ABOVE, INSERT A CR AFTER CMD LINE ISTTS=LIB$SPAWN(CMDSTR)2C ASSUME WE NEED A REDRAW AFTER THE SPAWN FINISHES IF(CMDLIN(1).NE.'}')GOTO 750 WRITE(6,760)2760 FORMAT(' Press RETURN to redraw spreadsheet>')! READ(IOLVL,761,END=800,ERR=800)N761 FORMAT(4A1) 750 continue 950 CONTINUE ICODE=25C FLAG THE MAIN COMMAND PARSER WE HANDLED THE COMMAND IGOTIT=1 GOTO 9990 8000 CONTINUE= IF(CMDLIN(1).NE.'D'.OR.CMDLIN(2).NE.'T'.OR.CMDLIN(3).NE.'R') 1 GOTO 8990 IGOTIT=1 ICODE=2 CALL DTRCMD(CMDLIN(4))C ISSUE DATATRIEVE COMMAND... 8990 CONTINUE= IF(CMDLIN(1).NE.'F'.OR.CMDLIN(2).NE.'I'.OR.CMDLIN(3).NE.'L') 1 GOTO 9000 IGOTIT=1=C FLAG FOR RECALCULATION BUT NOT TOTAL REDISPLAY IF PREFIX ISC 'FIL' RATHER THAN 'DTR'... ICODE=3 CALL DTRCMD(CMDLIN(4))C ISSUE DATATRIEVE COMMAND...C 900000}^~^^[Z[[[\[} CONTINUE2 IF(CMDLIN(1).NE.'A'.OR.CMDLIN(2).NE.'N')GOTO 9200C ANNOTATE COMMAND SEEN IGOTIT=1 ICODE=2 DO 9001 N=1,80 CMLN(N)=32 9001 CONTINUE CALL IN2AS(PROW,FORM) WRITE(CELRW,9002)PCOL-19002 FORMAT(I4.4) ICM=17C EDIT NAME IS 16 CHARS LONG DO 9040 N=1,6 IXX=NMSH(N) IF(IXX.GT.96)IXX=IXX-32$ IF(IXX.LT.65.OR.IXX.GT.90)GOTO 9040 CMLN(ICM)=IXX ICM=ICM+1 9040 CONTINUE ICM=ICM-1 DO 9003 N=1,8 CMLN(N+ICM)=CELNAM(N) 9003 CONTINUE CMLN(ICM+9)='.' CMLN(ICM+10)='A' CMLN(ICM+11)='N' CMLN(ICM+12)='N' CMLN(ICM+13)=' ' CMLN(80)=13 DO 8603 N=1,16 CMLN(N)=EDNAM(N) 8603 CONTINUE C CMLN(1)='E' C CMLN(2)='D' C CMLN(3)='I' C CMLN(4)='T' C CMLN(5)=' 'C NOW HAVE "EDIT name.ANN"Fc built... go fire it up for creation or modification of annotation... DO 9150 N=17,ICM+12 IF(CMLN(N).EQ.' ')CMLN(N)='0' 9150 CONTINUE" ISTTS=LIB$SPAWN(CMDSTR(1:ICM+14)) GOTO 9990 9200 CONTINUE7 IF(CMDLIN(1).NE.'?'.AND.(CMDLIN(1).NE.'Q'.OR.CMDLIN(2)/ 1 .NE.'U'.OR.CMDLIN(3).NE.'E')) GOTO 9300C QUERY COMMAND SEEN IGOTIT=1 ICODE=2 DO 9237 N=1,189237 ANNAMS(N)=32 CALL IN2AS(PROW,FORM) WRITE(CELRW,9002)PCOL-1 ICM=0 DO 9240 N=1,6 IXX=NMSH(N) IF(IXX.GT.96)IXX=IXX-32$ IF(IXX.LT.65.OR.IXX.GT.90)GOTO 9240 ICM=ICM+1 ANNAMS(ICM)=IXX 9240 CONTINUE DO 9241 N=1,8 ANNAMS(ICM+N)=CELNAM(N) 9241 CONTINUE ANNAMS(ICM+9)='.' ANNAMS(ICM+10)='A' ANNAMS(ICM+11)='N' ANNAMS(ICM+12)='N' DO 9250 N=1,18" IF(ANNAMS(N).EQ.' ')ANNAMS(N)='0' 9250 CONTINUE ANNAMS(ICM+13)=' '! OPEN(UNIT=2,NAME=ANNAM(1:ICM+13)* 1 ,ACCESS='SEQUENTIAL',STATUS='OLD', 1 ERR=9210) DO 9030 N=1,20" READ(2,9031,END=9032,ERR=9032)WRK9031 FORMAT(128A1) CALL UVT100(CUP,N+2,1) CALL UVT100(EL,2) WRITE(6,9035)WRK9035 FORMAT(128A1) 9030 CONTINUE 9032 CONTINUE-C THIS DISPLAYS ALL THE ANNOTATION WE HAVE... CLOSE(UNIT=2) CALL UVT100(CUP,LLCMD,1) CALL UVT100(EL,2) WRITE(6,760)! READ(IOLVL,761,END=800,ERR=800)N GOTO 9990 9210 CONTINUE ICODE=3 CALL UVT100(CUP,LLDSP,1) call uvt100(EL,2) WRITE(6,9211)19211 FORMAT(' No annotation found on this cell.') 9300 CONTINUE 9990 CONTINUE RETURN 800 CONTINUE CLOSE(UNIT=IOLVL)"C RESET TO NORMAL I/O OFF CONSOLE. FOOBAR=0 IOLVL=5 CLOSE(UNIT=5)8 OPEN(UNIT=5,FILE='SYS$COMMAND:',CARRIAGECONTROL='NONE')0C REOPEN CONSOLE IN CASE OF INITIALIZER FILES... GOTO 750 END#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY.' SUBROUTINE USRCMD(CMDLIN,ICODE,IGOTIT)C CHARACTER*80 CMDSTRC BYTE CMLN(80)C EQUIVALENCE(CMLN,CMDSTR):C DUMMY PLACE FOR USER COMMANDS TO PARSE CMDLIN AND HANDLE(C ADDITIONAL COMMANDS FOR VMS PORTACALC. INCLUDE 'VKLUGPRM.FTN'CC DEFINE VALUE AREA FOR SPREAD SHEET. MORE WILL BE NEEDED GENERALLYBC OUT OF COMMONS, BUT AT A MINIMUM, THIS WILL ALLOW SOME ACCESS TO,C USEFUL NUMBERS. LOOK IN XQTCMD FOR MORE...2 LOGICAL*1 AVBLS(20,27),WRK(128),VBLS(8,RRWP,RCLP)" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9) REAL*8 XAC,XVBLS(RRWP,RCLP) INTEGER*2 IOLVL COMMON/IOLVL/IOLVL REAL*8 TAC,UAC,VAC INTEGER*4 JVBLS(2,RRWP,RCLP) EQUIVALENCE(XAC,AVBLS(1,27)) EQUIVALENCE(TAC,AVBLS(1,20)) EQUIVALENCE(UAC,AVBLS(1,21)) EQUIVALENCE(VAC,AVBLS(1,22))& EQUIVALENCE(VBLS(1,1,1),JVBLS(1,1,1))$ EQUIVALENCE(VBLS(1,1,1),XVBLS(1,1)) COMMON/V/TYPE,AVBLS,VBLS,VLENc available parsing aid:3c call varscn(line,ibgn,lend,lstchr,id1,id2,ivalid)8c where line(ibgn... lend) is scanned. If variable found7c ivalid=1 else ivalid=0. id1,id2 are dims in xvbls for7c variable found if any. lstchr is last char found+1...%C OTHER USEFUL ROUTINES IN THE SHEET:C GN(LAST,LEND,NUMBER,LINE)9C LOOKS FROM LINE(LAST) THRU LINE(LEND) FOR A NUMBER AND:C RETURNS ANY NUMBER IN "NUMBER" ARG. ASSUMES "LINE" IS A;C BYTE ARRAY. (NO INDICATION OF WHERE THE NUMBER WAS FOUND00~^^^YTADATADATADATADATADATA;C HOWEVER). THROWS OUT LEADING SPACES, TERMINATES ON A NON C NUMERIC.C INDEX(LINE,CHAR)8C EXPECTS LINE TO BE NULL TERMINATED AND RETURNS EITHER9C THE SUBSCRIPT (COUNTING FROM 1) OF CHAR IN LINE OR THEBC MAX SUBSCRIPT IN LINE (I.E., WHERE IT HIT THE NULL TERMINATOR).?C NOTE THIS DIFFERS FROM THE "STANDARD" VERSION OF INDEX WHICH?C RETURNS 0 FOR "NOT FOUND" -- THIS VERSION RETURNS MAX LENGTH1C FOR "NOT FOUND". STOPS AT 512 BYTES HOWEVER...<C PARSING IS UP TO USER. NOTE VARSCN MAY BE CALLED TO PARSE LOGICAL*1 CMDLIN(132) integer*2 mcrnam(2)cC INTEGER*4 ISTTS DATA MCRNAM/3R...,3RMCR/c DATA MCRNAM/3RMCR,3R.../CBC INSERT CODE FOR ADDING A LIB$SPAWN CALL HERE TO PASS COMMANDS TO'C DCL IF THEY BEGIN WITH A $ CHARACTER. IGOTIT=03 IF(CMDLIN(1).NE.'$'.AND.CMDLIN(1).NE.'}')GOTO 9990C PDP11 OR PRO SPAWN COMMAND"C FIND OUT HOW LONG THE COMMAND IS!C FIRST GET TASKNAMNE TO SPAWN...C $TASK COMMAND!C I.E., SPACE TERMINATES TASKNAME IK=0 DO 3200 N=1,6 IF(CMDLIN(N+1).LE.' ')GOTO 3209 IK=N 3200 CONTINUE 3209 CONTINUE IF(IK.LE.0)GOTO 9990 N=3 IF(IK.LT.N)N=IK!C ZERO TASK NAME... THEN FILL IN. MCRNAM(1)=0 MCRNAM(2)=0# CALL IRAD50(N,CMDLIN(2),MCRNAM(1)) N=IK-3- IF(N.GT.0)CALL IRAD50(N,CMDLIN(5),MCRNAM(2))7C ABOVE FILLS IN TASK NAME TO SPAWN. MUST BE INSTALLED. DO 2000 N=1,130 NN=131-N IF(CMDLIN(NN).GT.' ')GOTO 2001 2000 CONTINUEEC SINCE WE START PAST THE $ SIGN, ILEN IS 1 LESS EVEN WITH THE $ SIGN 2001 ILEN=NN CMDLIN(NN+1)=271C ADD AN ESC AFTER THE COMMAND TO TERMINATE IT...c detach the terminal first CALL TTYDEI2C TERMINATE COMMAND WITH ESCAPE FOR BENEFIT OF MCR;C SPAWN THE TASK AND AWAIT ITS COMPLETION. USE SPAWN OF MCR=C TO AVOID RSX11M/M+ COMPATIBILITY ISSUES AND ALLOW CCL CMDS.8C N.B. : MCRNAM MAY HAVE TO BE ...MCR INSTEAD OF MCR.../ CALL SPAWN(MCRNAM,,,2,,IXXX,,CMDLIN(2),ILEN,0) CALL WAITFR(2)C RE-INIT AND ATTACH TERMINAL. CALL TTYINI3CC ASSUME WE NEED A REDRAW AFTER THE SPAWN FINISHES IF(CMDLIN(1).NE.'}')GOTO 750 WRITE(6,760)2760 FORMAT(' PRESS RETURN TO REDRAW SPREADSHEET>')! READ(IOLVL,761,END=800,ERR=800)N761 FORMAT(4A1) 750 ICODE=26CC FLAG THE MAIN COMMAND PARSER WE HANDLED THE COMMAND IGOTIT=1C 9990 CONTINUE RETURN 800 CONTINUE CLOSE(UNIT=IOLVL)"C RESET TO NORMAL I/O OFF CONSOLE. IOLVL=5 GOTO 750 END#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY.C USER FUNCTION ROUTINE:C GENERATES PARSING AND EXECUTION OF ROUTINE CALLS OF FORMC *U FNAME (ARGUMENTS)5C WHERE LINE (80 BYTES) CONTAINS COMMAND LINE AND ALLC ARGUMENTS MAY BE PARSED.C CALLED FROM CMNDC-C VAX VERSION: MOST MATRIX ROUTINES AVAILABLE*C BUT ASSUMES SUBSTANTIAL SPACE AVAILABLE.Cc available parsing aid:3c call varscn(line,ibgn,lend,lstchr,id1,id2,ivalid)8c where line(ibgn... lend) is scanned. If variable found7c ivalid=1 else ivalid=0. id1,id2 are dims in xvbls for7c variable found if any. lstchr is last char found+1...%C OTHER USEFUL ROUTINES IN THE SHEET:C GN(LAST,LEND,NUMBER,LINE)9C LOOKS FROM LINE(LAST) THRU LINE(LEND) FOR A NUMBER AND:C RETURNS ANY NUMBER IN "NUMBER" ARG. ASSUMES "LINE" IS A;C BYTE ARRAY. (NO INDICATION OF WHERE THE NUMBER WAS FOUND;C HOWEVER). THROWS OUT LEADING SPACES, TERMINATES ON A NON C NUMERIC.C INDEX(LINE,CHAR)8C EXPECTS LINE TO BE NULL TERMINATED AND RETURNS EITHER9C THE SUBSCRIPT (COUNTING FROM 1) OF CHAR IN LINE OR THEBC MAX SUBSCRIPT IN LINE (I.E., WHERE IT HIT THE NULL TERMINATOR).?C NOTE THIS DIFFERS FROM THE "STANDARD" VERSION OF INDEX WHICH?C RETURNS 0 FOR "NOT FOUND" -- THIS VERSION RETURNS MAX LENGTH1C FOR "NOT FOUND". STOPS AT 512 BYTES HOWEVER...<C PARSING IS UP TO USER. NOTE VARSCN MAY BE CALLED TO PARSE<C VARIABLE NAMES. SUPPLIED V00^^^[Z[[[\[}ERSION CALLS IDATE WHICH RETURNS<C SYSTEM DATE IN RSX OR VMS AS INTEGER DAY, MONTH, AND YEAR.&C THIS RETURNS HERE IN AC T, U, AND V SUBROUTINE USRFCT(LINE,RETCD) INCLUDE 'VKLUGPRM.FTN' BYTE LINE(80) INTEGER RETCD2 LOGICAL*1 AVBLS(20,27),WRK(128),VBLS(8,RRWP,RCLP)" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9) REAL*8 XAC,XVBLS(RRWP,RCLP) REAL*8 TAC,UAC,VAC,WAC,YAC REAL*8 TMP INTEGER*4 JVBLS(2,RRWP,RCLP)/ EQUIVALENCE(WAC,AVBLS(1,23)),(YAC,AVBLS(1,25)) EQUIVALENCE(XAC,AVBLS(1,27)) EQUIVALENCE(TAC,AVBLS(1,20)) EQUIVALENCE(UAC,AVBLS(1,21)) EQUIVALENCE(VAC,AVBLS(1,22))& EQUIVALENCE(VBLS(1,1,1),JVBLS(1,1,1))$ EQUIVALENCE(VBLS(1,1,1),XVBLS(1,1)) COMMON/V/TYPE,AVBLS,VBLS,VLEN INTEGER*2 XTNCNT,XTCFG,IPSET LOGICAL*1 XTNCMD(80)" INTEGER*2 FORMFG,RCFGX,PZAP,RCONE. INTEGER*2 IDOL1,IDOL2,IDOL3,IDOL4,IDOL5,IDOL61 COMMON/DOLLR/IDOL1,IDOL2,IDOL3,IDOL4,IDOL5,IDOL6 INTEGER*2 RRWACT,RCLACT COMMON/RCLACT/RRWACT,RCLACT$ COMMON/FFGG/FORMFG,RCFGX,PZAP,RCONE& COMMON/XCMD/XTNCNT,XTNCMD,XTCFG,IPSET:C LOOP CONTROL FOR VARY FUNCTION. SET ZERO IN SPREDSHT AND2C MUST BE SET POSITIVE HERE IF WE NEED ITERATIONS.C (IMPLEMENT FOR VAX ONLY) INTEGER KALKIT COMMON/VARYIT/KALKIT(C ARGUMENTS COME IN IN ARGUMENTS IN LINE<C RESULTS GO INTO PERCENT (XAC) AND WHEREVER ELSE DESIRED...( INTEGER*2 PROW,PCOL,DROW,DCOL,DRWV,DCLV* COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRWV,DCLV( DIMENSION NRDSP(DRW,DCL),NCDSP(DRW,DCL) COMMON/D2R/NRDSP,NCDSP C ADD DATATRIEVE DATA STMTS HERE=C ADD DATATRIEVE FUNCTION NAMES AND MODIFY THE 17 TO LARGER # LOGICAL*1 FNAMS(6,20)#C FNAMS IS NAME OF FUNCTION CALLED.# DATA FNAMS /'I','D','A','T','E',0, 1 'M','T','X','E','Q',0, 2 'M','O','V','E','V',0, 3 'M','D','E','T',0,0, 4 'M','P','R','O','D',0, 5 'M','A','D','D','V',0, 6 'M','S','U','B','V',0, 7 'M','M','P','Y','T',0, 8 'M','M','P','Y','C',0, 9 'V','A','R','Y',0,0, 1 'X','Q','T','C','M',0, 2 'S','T','R','V','L',0, 3 'H','E','R','E',0,0, 4 'Y','R','M','O','D',0, 5 'J','D','A','T','E',0, 6 'J','T','O','C','H',0, 7 'D','A','T','E',0,0, 8 'D','B',0,0,0,0, 1 'W','K','D','Y','S',0, 2 'W','K','D','I','N',0 9 /0C NULL TERMINATE ANY NAMES (ALLOWS 5 CHARACTERS)C START LOOKING PAST THE *U?C GET FUNCTION NAME AND GO TO PROCESS EACH FUNCTION SEPARATELY+C GET NONBLANK CHAR FOR FUNCTION NAME STARTAC NO-OP THE XQTCM FUNCTION FOR PDP11-OVERLAIN VERSIONS BY ZAPPING&C THE NAME SO IT CAN'T EVER BE CALLED.@D FNAMS(1,11)=24 ! MAKE IT CONTROL-X, NOT X... CAN'T GET THAT IN K=330 IF(LINE(K).NE.' ')GOTO 40 K=K+1 IF(K.LT.60)GOTO 30 40 CONTINUE1C UNCOMMENT THE DO 100 STMT IF DIM 2 OF FNAMS > 1 N=1AC **** BE SURE THE 2ND BOUND ON N IS THE SAME AS THE DIMENSION OF*C **** FNAMS **************************5C MODIFY 20 TO LARGER WHEN DATATRIEVE FUNCTIONS ADDED DO 100 N=1,20 KF=N DO 110 NN=1,65 IF(LINE(K+NN-1).NE.FNAMS(NN,N).AND.FNAMS(NN,N).GT.0) 1 GOTO 100 110 CONTINUE GOTO 200 100 CONTINUE!C UNRECOGNIZED FUNCTION... IGNORE 300 RETCD=3 RETURN 200 CONTINUEEC NOW HAVE FOUND FUNCTION IDENTIFIED BY KF. CALL IT AND ALLOW TO WORK4C FOR DATATRIEVE ADD NEW NUMBERS AND ASSOCIATED CODEC TO HANDLE FUNCTIONS./ GOTO (1100,1200,1300,1400,1500,1600,1700,1800,: 1 1900,2000,2100,2200,2300,2400,2500,2600,2700,2800, 2 2900,3000),KF/C ON TRANSFER LINE(K) IS START OF COMMAND NAME.3C FUNCTION NAMES BEGINNING WITH "DB" TRANSFERRED TO.C DTR HANDLING ROUTINE SEPARATE FROM THIS ONE.1C ALL CODE FOR THAT GOES THERE FOR TOTAL PARSING. GOTO 300 1100 CONTINUEC IDATE FUNCTION(C RETURNS MONTH, DAY, YEAR IN AC'S T,U,V CALL IDATE(IMO,IDA,IYR) TAC=IMO UAC=IDA VAC=IYR=C RETURN A FLOATING VALUE OF DATE FORM AS YYMMDD SO IT CAN BE?C USED FOR SORTING AND SIMILAR APPLICATIONS. COULD BE USED ALSO@C FOR INTERVALS IF A JULIAN DATE WERE RETURNED, BUT THIS WILL DOC FOR COMPARISONS AND ORDERING. XAC=JULMDY(IYR,IMO,IDA)C XAC=VAC*10000.+TAC*100.+UAC00^^^YTADATADATADATADATADATA RETURN 1200 CONTINUE?C MATRIX EQUATION. NOTE WE MUST NOW START SCAN FOR ARGUMENTS...BC K+5 IS START OF ARG LIST. START AT K+6 TO ALLOW ( TO BE THERE...C FORMAT DESIRED:?C *U MTXEQ(A1:A2,X1:X2,B1:B2) GENERATING SOLUTION MATRIX X1:X2AC FROM MATRICES A,B AND SOLVING EQUATION AX=B WHERE A IS AN N BY4C N SQUARE MATRIX, AND X AND B ARE N BY M MATRICES. RETCD=1BC COLLECT ARGUMENTS. NOTE THAT VARSCN AND GN TRASH POINTERS PASSED=C TO THEM IN IBGN, LEND, SO MAKE UP EVERY TIME. USE VARSCN TO=C COLLECT POINTERS TO THE SHEET ARRAY FIRST OFF COMMAND LINE,1C THEN PROCESS IN OUR MAGICAL MYSTICAL ROUTINE... IBGN=K+6 LEND=IBGN+206C GET LOCATIONS OF MATRICES A, X, AND B (FOR AX=B EQN),C A MUST BER N BY N, SQUARE. X,B ARE N BY M.2 CALL PMTX2(RETCD,3,LINE,IBGN,ID1A,ID2A,ID1B,ID2B,1 1 IDXA,IDXB,IDYA,IDYB,IDBA,IDBB,IDCA,IDCB) N=IABS(ID1B-ID1A)+1C CHECK THAT MATRIX A IS SQUARE% IF(N.NE.(IABS(ID2B-ID2A)+1))GOTO 3004C CHECK THAT MATRIX X AND B HAVE THE SAME DIMENSIONS' IF((IDYA-IDXA).NE.(IDCA-IDBA))GOTO 300' IF((IDYB-IDXB).NE.(IDCB-IDBB))GOTO 300 M=IABS(IDYA-IDXA)+15C CHECK THAT THE X AND B MATRIX DIMENSIONS ARE N BY M-C WHERE THE N IS THE SAME AS FOR THE A MATRIX NN=IABS(IDYB-IDXB)+1 IF(NN.NE.N)GOTO 300+C NOW HAVE DIMENSIONS FOR ALL THIS STUFF...;C SINCE MTXEQU TRASHES ITS' B MATRIX, COPY IT INTO X MATRIXC AND THEN CALL... DO 1210 NN=IDBA,IDCA DO 1210 MM=IDBB,IDCB CALL XVBLGT(NN,MM,XVBLS(1,1))2 CALL XVBLST(NN-IDBA+IDXA,MM-IDBB+IDXB,XVBLS(1,1))/C XVBLS(NN-IDBA+IDXA,MM-IDBB+IDXB)=XVBLS(NN,MM) 1210 CONTINUE5C NOW ALL THE ARGUMENTS ARE SET UP... GO DO THE WORK.$C CALL UTILITY ROUTINE, THEN DONE...) CALL MTXEQU(ID1A,ID2A,IDXA,IDXB,N,M,XAC) RETURN 1300 CONTINUE,C MOVEV MTX1 MTX2 MOVE MTX1 VALUES TO MTX2 RETCD=1 IBGN=K+6< CALL PMTX2(RETCD,2,LINE,IBGN,IR1T,IC1T,IR1B,IC1B,IR2T,IC2T, 1 IR2B,IC2B)C CHECK FOR SAME SIZE MATRICES' IF((IC1T-IC1B).NE.(IC2T-IC2B))GOTO 300' IF((IR1T-IR1B).NE.(IR2T-IR2B))GOTO 3005C DO THE COPY HERE (EASIER THAN CALLING SOMETHING...) DO 1301 NN=IR1T,IR1B DO 1301 MM=IC1T,IC1B CALL XVBLGT(NN,MM,XVBLS(1,1))2 CALL XVBLST(NN-IR1T+IR2T,MM-IC1T+IC2T,XVBLS(1,1))/C XVBLS(NN-IR1T+IR2T,MM-IC1T+IC2T)=XVBLS(NN,MM) 1301 CONTINUE RETURN 1400 CONTINUE&C MDET - DETERMINANT OF SQUARE MATRIX"C 1 ARGUMENT, VIZ., MATRIX COORDS RETCD=1(C ACCOUNT FOR "MDET" BEING 4 CHARS NOT 5 IBGN=K+52 CALL PMTX2(RETCD,1,LINE,IBGN,IR1T,IC1T,IR1B,IC1B)+C CALL A DETERMINANT ROUTINE TO DO THE WORKBC NOTE IT CHECKS FOR SQUARE MATRIX INTERNALLY AND RETURNS 0 IF NOT C SQUARE...) CALL MDET(XVBLS,IR1T,IC1T,IR1B,IC1B,XAC) RETURN 1500 CONTINUE C MPROD A,B,C C=A*B MATRIX WISE IBGN=K+6 RETCD=1 IMXX=35 CALL PMTX2(RETCD,IMXX,LINE,IBGN,ID1A,ID2A,ID1B,ID2B,0 1 IDXA,IDXB,IDYA,IDYB,IDBA,IDBB,IDCA,IDCB) C A=N BY M C B=M BY L C C=N BY L%CC M,N REVERSED... TRY RE REVERSAL...C M=1+ID1B-ID1AC N=1+ID2B-ID2A N=1+ID1B-ID1A M=1+ID2B-ID2A C IF(M.NE.(1+IDYB-IDXB))GOTO 300 L=1+IDYA-IDXA C IF(N.NE.(1+IDCB-IDBB))GOTO 300 C IF(L.NE.(1+IDCA-IDBA))GOTO 300'C DIMENSIONS LOOK OK NOW SO DO THE WORKC USE SLIGHTLY MODIFIED GMPRD CALL GMPRD(ID1A,ID2A,IDXA,IDXB, 1 IDBA,IDBB,N,M,L) RETURN 1600 CONTINUEC MADDV A,B,C C=A+B IMXX=3 IBGN=K+6 RETCD=15 CALL PMTX2(RETCD,IMXX,LINE,IBGN,ID1A,ID2A,ID1B,ID2B,0 1 IDXA,IDXB,IDYA,IDYB,IDBA,IDBB,IDCA,IDCB) N=1+ID1B-ID1A M=1+ID2B-ID2A C IF(N.NE.(1+IDYA-IDXA))GOTO 300 C IF(N.NE.(1+IDCA-IDBA))GOTO 300 C IF(M.NE.(1+IDYB-IDXB))GOTO 300 C IF(M.NE.(1+IDCB-IDBB))GOTO 300C USE MODIFIED GMADD CALL GMADD(ID1A,ID2A,IDXA,IDXB, 1 IDBA,IDBB,M,N) RETURN 1700 CONTINUEC MSUBV A,B,C C=A-B IMXX=3 IBGN=K+6 RETCD=15 CALL PMTX2(RETCD,IMXX,LINE,IBGN,ID1A,ID2A,ID1B,ID2B,0 1 IDXA,IDXB,IDYA,IDYB,IDBA,IDBB,IDCA,IDCB) N=1+ID1B-ID1A M=1+ID2B-ID2A C IF(N.NE.(1+IDYA-IDXA))GOTO 300 C IF(N.NE.(1+IDCA-IDBA))GOTO 300 C IF(M.NE.(1+IDYB-IDXB))GOTO 300 C IF(M.NE.(1+IDCB-IDBB))GOTO 300 CALL GMSUB(ID1A,ID2A,IDXA,IDXB, 1 IDBA00^^^[Z[[[\[},IDBB,M,N) RETURN 1800 CONTINUEC MMPYT A,B,C C=AT*BC GET 3 MATRICES IMXX=3 IBGN=K+6 RETCD=15 CALL PMTX2(RETCD,IMXX,LINE,IBGN,ID1A,ID2A,ID1B,ID2B,0 1 IDXA,IDXB,IDYA,IDYB,IDBA,IDBB,IDCA,IDCB)C TRANSPOSE DIMENSIONS OF A... M=1+ID1B-ID1A N=1+ID2B-ID2A C IF(M.NE.(1+IDYB-IDXB))GOTO 300 L=1+IDYA-IDXA C IF(N.NE.(1+IDCB-IDBB))GOTO 300 C IF(L.NE.(1+IDCA-IDBA))GOTO 300 CALL GTPRD(ID1A,ID2A,IDXA,IDXB, 1 IDBA,IDBB,N,M,L) RETURN 1900 CONTINUE!C MMPYC A,B,K B=A*K (K=CONSTANT)FC FOR MPY BY CONSTANT WE GET MATRICES IN ORDER A,C, THEN AC WITH CONSTC IN IT LAST... IBGN=K+6 RETCD=1 IMXX=25 CALL PMTX2(RETCD,IMXX,LINE,IBGN,ID1A,ID2A,ID1B,ID2B,0 1 IDXA,IDXB,IDYA,IDYB,IDBA,IDBB,IDCA,IDCB) IF(LINE(IBGN-1).NE.',')GOTO 300 LEND=IBGN+204 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,IDCA,IDCB,IVALID) IF(IVALID.EQ.0)GOTO 300AC NOW HAVE EVERYTHING OF ARGS... CHECK DIMENSIONS OF MATRICES.... N=1+ID1B-ID1A M=1+ID2B-ID2A C IF(N.NE.(1+IDYA-IDXA))GOTO 300 C IF(M.NE.(1+IDYB-IDXB))GOTO 300 CALL XVBLGT(IDCA,IDCB,XXXX) DO 1901 NN=ID1A,ID1B DO 1901 MM=ID2A,ID2B CALL XVBLGT(NN,MM,XVBLS(1,1)) XVBLS(1,1)=XVBLS(1,1)*XXXX2 CALL XVBLST(NN-ID1A+IDXA,MM-ID2A+IDXB,XVBLS(1,1))/C XVBLS(NN-ID1A+IDXA,MM-ID2A+IDXB)=XVBLS(NN,MM)C 1 *XVBLS(IDCA,IDCB) 1901 CONTINUE RETURNC *U VARY X,A,W,I,P;Q;R;S;T;C REPEATEDLY COMPUTE SHEET FOR I ITERATIONS (DEFAULTS TO 1?C IF NONE GIVEN) AND VARY AC P,Q,R,S, T (POSITIONAL...WHATEVER@C IS NAMED) UNTIL CONDITION THAT AC X (WHATEVER IS NAMED THERE)GC IS MADE EQUAL TO AC A AS CLOSELY AS POSSIBLE. DOES MULTI-DIMENSIONALFC STEPPING SEARCH SAVING AC'S AND MODIFYING. ACTUALLY WILL HANDLE ANY8C CELL. UP TO 8 DIMENSIONS PERMITTED (ARBITRARY LIMIT).>C NOTE THAT RECALCULATE SPECIAL VARY FLAG WILL BE SET HERE IFC VARYING MORE THAN ONCE...@C WILL VARY ONE OF THE AC'S IN THE LIST P,Q,R,S,T... BY INITIALAC FRACTION W (AN ARBITRARY "STEP SIZE" FRACTION) AND COMPUTE THE@C GRADIENT OF (X-A) WRT THAT AC, THEN WILL REPLACE ALL AC'S ANDAC VARY THAT AC BY W * THE GRADIENT, MEANING THAT AS THE GRADIENTBC DECREASES, THE VARIANCE DOES ALSO. LAST GRADIENTS ARE SAVED ANDBC USED AS INITIAL VARIANCES, SO THAT THE W FRACTION IS AN INITIAL?C GUESS. HOWEVER IT ALSO IS A LIMIT SO NO STEP VARIES AN AC BYC MORE FRACTIONALLY THAN W.>C ONCE THIS IS DONE ANOTHER ONE OF THE P,Q,R,S,T,... LIST IS?C CHOSEN CIRCULARLY AND THE PROCESS REPEATS. THIS MAY CONTINUE(C INDEFINITELY TO LOOK FOR CONVERGENCE.CC NOTE THAT X AND A MAY BE ANY CELL AND NEED NOT BE ACCUMULATORS.?C HOWEVER ALL OTHER CELLS TO VARY MUST BE AC'S AND MUST BE THE=C INDEPENDENT VARIABLES. CALCULATIONS ELSEWHERE ON THE SHEET>C (PERHAPS LATER IN THE SAME CELL...)MUST ESTABLISH DEPENDENT5C VARIABLES OR BOUNDARY OR NORMALIZATION CONDITIONS. 2000 CONTINUE RETCD=14C SPLIT OFF THESE FUNCTIONS INTO A COMMON SUBROUTINE CALL VVARY(LINE,RETCD,K) RETURN 2100 CONTINUE:C EXECUTE COMMAND. FILL IN COMMAND FROM GIVEN FUNCTION AND:C CALL XQTCMD TO DO IT. SETS UP NECESSARY VARIABLES FIRST.BC ASSUME THE COMMAND LINE MUST BE ALONE ON LINE AFTER THIS CALL... KK=1 KKK=K+6 DO 2101 NN=KKK,80 XTNCMD(KK)=LINE(NN) IF(XTNCMD(KK).LE.0)GOTO 2102 KK=KK+1 2101 CONTINUE 2102 CONTINUE XTNCMD(KK+1)=0 XTNCMD(KK+2)=0 XTNCNT=KK XTCFG=1 IPSET=1 CALL XQTCMD(ICODE) RETURN 2200 CONTINUE:C RETURN PACKED FORMULA STRING TO EXTRACT UP TO 8 CHARS OF C FORMULA.C START AT K+6 XAC=0. IBGN=K+6 IEND=IBGN+20, CALL VARSCN(LINE,IBGN,IEND,LSTC,I1,I2,IVLD) IF(IVLD.LE.0)RETURN%C GET START, LENGTH NOW IN FORMULA... IBGN=LSTC+1 IEND=IBGN+20 CALL GN(IBGN,IEND,ISTART,LINE) IBGN=INDEX(LINE,';')*C LOOK FOR ';' CHAR AS START OF 2ND NUMBER4 IF(IBGN.GT.50.OR.ISTART.LE.0.OR.ISTART.GT.80)RETURNC BUMP IBGN PAST THE ; CHAR IBGN=IBGN+1 IEND=80 CALL GN(IBGN,IEND,ILN,LINE) ILN=MIN0(ILN,8) IF(ILN.LE.0)RETURN C READ IN FORMULA INTO WRK ARRAYC IRX=(I2-1)*RRW+I1 CALL REFLEC(I2,I1,IRX) CALL WRKFIL(IRX,WRK,0) KZ=0 DO 00^^^YTADATADATADATADATADATA991 NN=1,ILN K=WRK(ISTART+NN-1) K=K.AND.127 IF(K.EQ.0)KZ=1 IF(KZ.EQ.1)K=0%C STOP THE ENCODE ON SEEING ANY NULLS TMP=K XAC=XAC*128.D0+TMP 991 CONTINUE!C XAC RETURNS WITH ENCODED VALUE. RETURN 2300 CONTINUE(C RETURN PRESENT LOCATION IN THE MATRIX. TAC=PROW UAC=PCOL XAC=(PCOL-1)*RRW+PROW VAC=4*FORMFG+2*RCFGX+RCONEC VAC=(DROW-1)*DRW+DCOL$C RESULT IN % IS PHYS SHEET HASHCODE7C RESULT IN V ACCUMULATOR IS DISPLAY SHEET LOC HASHCODE0C T AND U ACCUMULATORS GET PHYS COL, ROW OFFSET. WAC=RRWACT YAC=RCLACT#C W AND Y GET LIMITS CURRENTLY USED RETURN 2400 CONTINUEC YRMOD RETCD=1 IBGN=K+6 LEND=IBGN+204 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,ID1A,ID2A,IVALID) IF(IVALID.EQ.0)GOTO 9300! IF(LINE(LSTCHR).NE.',')GOTO 9300 IBGN=LSTCHR+1 LEND=IBGN+204 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,ID1B,ID2B,IVALID) IF(IVALID.EQ.0)GOTO 9300! IF(LINE(LSTCHR).NE.',')GOTO 9300 IBGN=LSTCHR+1 LEND=IBGN+204 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,ID1C,ID2C,IVALID) IF(IVALID.EQ.0)GOTO 9300C9C V1, V2, V3 ARE YR, MONTH, DAY FOR RETURN OF JULIAN DATEC" CALL XVBLGT(ID1A,ID2A,XVBLS(1,1)) IYR=XVBLS(1,1)" CALL XVBLGT(ID1B,ID2B,XVBLS(1,1)) IMO=XVBLS(1,1)" CALL XVBLGT(ID1C,ID2C,XVBLS(1,1)) IDA=XVBLS(1,1)'C RETURN JULIAN DATE FROM Y, M, D GIVEN XAC=JULMDY(IYR,IMO,IDA) RETURN 2500 CONTINUEC JDATE RETCD=1 IBGN=K+6 LEND=IBGN+201C GET V1 WHICH HAS VARIABLE WITH THE STRING IN IT4 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,ID1A,ID2A,IVALID) IF(IVALID.EQ.0)GOTO 93000C RETURN JULIAN DATE NOW AFTER FETCHING FORMULA.C IRX=(ID2A-1)*RRW+ID1A CALL REFLEC(ID2A,ID1A,IRX) CALL WRKFIL(IRX,WRK,0) XAC=JULIAN(WRK) RETURN 2600 CONTINUEC JTOCH RETCD=1 IBGN=K+6 LEND=IBGN+20C V1 = JULIAN DATE4C V2 IS WHERE TO STORE ASCII DATE STRING AS FORMULA.4 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,ID1A,ID2A,IVALID) IF(IVALID.EQ.0)GOTO 9300! IF(LINE(LSTCHR).NE.',')GOTO 9300 IBGN=LSTCHR+1 LEND=IBGN+204 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,ID1B,ID2B,IVALID) IF(IVALID.EQ.0)GOTO 9300" CALL XVBLGT(ID1A,ID2A,XVBLS(1,1)) IJUL=XVBLS(1,1)C IRX=(ID2B-1)*RRW+ID1B CALL REFLEC(ID2B,ID1B,IRX) CALL WRKFIL(IRX,WRK,0) DO 2502 N=1,110 2502 WRK(N)=0" CALL JULASC(IJUL,WRK,IYR,IMO,IDA) CALL WRKFIL(IRX,WRK,1)C WRITE THE FORMULA BACK OUT TAC=IMO UAC=IDA VAC=IYRC RETURN T,U,V AS M,D,Y ALSO RETURN 2700 CONTINUEC DATE RETCD=1 IBGN=K+5 LEND=IBGN+204 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,ID1A,ID2A,IVALID) IF(IVALID.EQ.0)GOTO 9300! IF(LINE(LSTCHR).NE.',')GOTO 9300E IBGN=LSTCHR+1 LEND=IBGN+20O4 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,ID1B,ID2B,IVALID) IF(IVALID.EQ.0)GOTO 9300M! IF(LINE(LSTCHR).NE.',')GOTO 9300 IBGN=LSTCHR+1 LEND=IBGN+20T4 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,ID1C,ID2C,IVALID) IF(IVALID.EQ.0)GOTO 9300O! IF(LINE(LSTCHR).NE.',')GOTO 9300U IBGN=LSTCHR+1 LEND=IBGN+20F4 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,ID1D,ID2D,IVALID) IF(IVALID.EQ.0)GOTO 9300A" CALL XVBLGT(ID1A,ID2A,XVBLS(1,1)) IYR=XVBLS(1,1)" CALL XVBLGT(ID1B,ID2B,XVBLS(1,1)) IMO=XVBLS(1,1)" CALL XVBLGT(ID1C,ID2C,XVBLS(1,1)) IDA=XVBLS(1,1)uC IRX=(ID2D-1)*RRW+ID1Dd CALL REFLEC(ID2D,ID1D,IRX)  CALL WRKFIL(IRX,WRK,0)  DO 2702 N=1,110 2702 WRK(N)=0. IJUL=JULMDY(IYR,IMO,IDA) " CALL JULASC(IJUL,WRK,IYR,IMO,IDA) CALL WRKFIL(IRX,WRK,1)I GOTO 9300 2800 CONTINUER RETCD=19C K SHOULD BE SUBSCRIPT OF THE 'D' OF "DB" SO SKIP BY THE >C "DB" PART AND JUST PASS THE REST OF THE FUNCTION NAME AT THEC START OF THE STRING... CALL DTRFCT(LINE(K+2),RETCD) @C HANDLE ALL *U DBXXXX FUNCTIONS IN SEPARATE ROUTINE FOR EASE OF2C MOVING IT AROUND. (MIGHT EVEN GO BACK TO PDP11!) GOTO 9300 2900 CONTINUE  RETCD=1>C WKDYS - GIVE WEEKDAYS (M-F) BETWEEN 2 JULIAN DATES THAT MUSTC BE IN CELLS. IBGN=K+6S LEND=IBGN+20D4 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,ID1A,ID2A,IVALID) IF(IVALID.EQ.0)GOTO 9300S! IF(LINE(LSTCHR).NE.',')GOTO 9300T IBGN=LSTCHR+1 LEND=IBGN+20 4 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,ID1B,ID2B,IVALID) IF(IVALID.EQ.0)GOTO 9300P" CAL00^^^[Z[[[\[}L XVBLGT(ID1A,ID2A,XVBLS(1,1)) IYR=XVBLS(1,1) " CALL XVBLGT(ID1B,ID2B,XVBLS(1,1)) IMO=XVBLS(1,1)I0C IYR HOLDS START JULIAN DATE, IMO HOLDS END ONE CALL WKDY(IYR,IMO,IDA)'*C IDA = NUMBER WORK DAYS BETWEEN THE DATES XAC=IDA C RETURN DAYS7 GOTO 9300 3000 CONTINUE) RETCD=1?C WKDIN - GIVEN A JULIAN DATE AND A NUMBER WORKDAYS, RETURN THE 3C ENDING JULIAN DATE AFTER THAT NUMBER JULIAN DAYS.2 IBGN=K+6 LEND=IBGN+20W4 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,ID1A,ID2A,IVALID) IF(IVALID.EQ.0)GOTO 9300T! IF(LINE(LSTCHR).NE.',')GOTO 9300A IBGN=LSTCHR+1 LEND=IBGN+20A4 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,ID1B,ID2B,IVALID) IF(IVALID.EQ.0)GOTO 9300B" CALL XVBLGT(ID1A,ID2A,XVBLS(1,1)) IYR=XVBLS(1,1)X" CALL XVBLGT(ID1B,ID2B,XVBLS(1,1)) IMO=XVBLS(1,1)2FC IYR = START DATE, JULIAN. IMO = NUMBER DAYS. RETURN END DATE JULIAN. CALL WRKINT(IYR,IMO,IDA),C IDA = RETURN JULIAN DATE XAC=IDA 9300 RETURN ENDBC SPLIT OFF MATRIX PARSING LOGIC HERE TO PICK OFF UP TO 3 MATRICES C COORDINATEST=C THIS ALLOWS US TO CALL ONE ROUTINE TO LOCATE UP TO 3 MATRIX %C SPECIFICATIONS SEPARATED BY COMMAS.R; SUBROUTINE PMTX2(IRTCD,IMXX,LINE,IBGN,ID1A,ID2A,ID1B,ID2B,R0 1 IDXA,IDXB,IDYA,IDYB,IDBA,IDBB,IDCA,IDCB) LOGICAL*1 LINE(80)I+ CALL GMTX(LINE,IBGN,LSTCHR,ID1A,ID2A,ID1B,V 1 ID2B,RETCD)I&C GET LOC OF MATRIX A (MUST BE SQUARE) IBGN=LSTCHR+1% IF(RETCD.NE.0.OR.IMXX.LE.1)GOTO 1000N IF(LINE(LSTCHR).NE.',')GOTO 300+ CALL GMTX(LINE,IBGN,LSTCHR,IDXA,IDXB,IDYA,T 1 IDYB,RETCD)RC GET LOC OF MATRIX X (RESULT).E IBGN=LSTCHR+1% IF(RETCD.NE.0.OR.IMXX.LE.2)GOTO 1000M IF(LINE(LSTCHR).NE.',')GOTO 300+ CALL GMTX(LINE,IBGN,LSTCHR,IDBA,IDBB,IDCA,X 1 IDCB,RETCD)  IBGN=LSTCHR+1:C GET LOC OF MATRIX B (AX=B), THE OTHER HALF OF OUR GIVENS9C IF WE FALL TO HERE, ALL LOOKS OK, SO LEAVE RETCD ALONE.U>C HOWEVER IF ANY ERRS HAVE OCCURRED, RETCD IS ALREADY SET TO 3C FOR ERROR... 1000 RETURN, 300 CONTINUE RETCD=3 RETURN, END5C GET SPECS FOR A MATRIX (2 VARS SEPARATED BY COLONS)R1 SUBROUTINE GMTX(LINE,IBGN,LSTCHR,ID1A,ID2A,ID1B,  1 ID2B,RETCD), LOGICAL*1 LINE(80),6C REQUIRE END OF MATRIX NAME WITHIN 20 CHARS OF START.'C SHOULD BE OK IN ALL REASONABLE CASES., LEND=IBGN+20K&C GET LOC OF MATRIX A (MUST BE SQUARE)4 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,ID1A,ID2A,IVALID) IF(IVALID.EQ.0)GOTO 300 IF(LINE(LSTCHR).NE.':')GOTO 300 IBGN=LSTCHR+1 LEND=IBGN+20B4 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,ID1B,ID2B,IVALID) IF(IVALID.EQ.0)GOTO 300 1000 RETURN 300 RETCD=3H RETURN  ENDCE C VARY CONTROL ROUTINEDC NOTE: THIS ROUTINE RELIES UPON HAVING ITS DATA AREAS REMAIN INTACTFC ACROSS CALLS. IT MUST NOT BE IN AN OVERLAY SEGMENT OR THAT WILL FAILBC AND IT WILL NOT WORK. SPECIFICALLY IT EXPECTS THE AC ARRAY TO BEC SET CORRECTLY. SUBROUTINE VVARY(LINE,RETCD,K)  INCLUDE 'VKLUGPRM.FTN'* BYTE LINE(80) INTEGER RETCD2 LOGICAL*1 AVBLS(20,27),WRK(128),VBLS(8,RRWP,RCLP)" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9) REAL*8 XAC,XVBLS(RRWP,RCLP) EQUIVALENCE(XAC,AVBLS(1,27))1 INTEGER*4 JVBLS(2,RRWP,RCLP)0& EQUIVALENCE(VBLS(1,1,1),JVBLS(1,1,1))$ EQUIVALENCE(VBLS(1,1,1),XVBLS(1,1)) COMMON/V/TYPE,AVBLS,VBLS,VLEN:C LOOP CONTROL FOR VARY FUNCTION. SET ZERO IN SPREDSHT AND2C MUST BE SET POSITIVE HERE IF WE NEED ITERATIONS.C (IMPLEMENT FOR VAX ONLY) INTEGER KALKIT, COMMON/VARYIT/KALKIT1 EXTERNAL SIGN REAL*8 SIGN LOGICAL*1 LAC(8)0 REAL*8 XVAC,VW3 EQUIVALENCE(LAC(1),XVAC)E REAL *8 AC(26)O REAL*8 DERIV(8) REAL*8 DEL(8) REAL*8 OLDVV,OLDX,OLDAR INTEGER ACV(8)D INTEGER CAC INTEGER CCNT(8)BC UNCOMMENT THIS COMMON DECLARATION AND MOVE DATA STMTS INTO BLOCKC IN ORDER TO OVERLAY THIS...I8 COMMON/VRYDAT/AC,DERIV,DEL,CAC,CCNT,OLDVV,OLDX,OLDA,ACVC,C ACV POINTS TO AC'S VARYING6C CAC = CURRENT INDEX INTO ACV TO FIND AC BEING VARIED%C AC IS LAST SET OF ACCUMULATORS SEEND/C IF ACV ENTRY IS 0, MEANS NO AC TO VARY THERE. & INTEGER LW,LX,LI ! LOGICAL W,X,I AC'S INTEGER LA ! LOGICAL A ACC C DATA DERIV/8*1./,DEL/8*0./C DATA CAC/1/,CCNT/8*0/0C DATA ACV/8*000^^^YTADATADATADATADATADATA/C DATA OLDVV/1./CUC PARSE ARGUMENTS FIRSTT2C FIRST 2 ARGS ARE X AND A AC'S (OR GENERAL CELLS)C DEFAULT NO REDOING THIS... KALKIT=0 IBGN=K+5R LEND=IBGN+20D2 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,LX,ID2A,IVALID) IF (IVALID.EQ.0)GOTO 9900! IF(LINE(LSTCHR).NE.',')GOTO 9900O IBGN=LSTCHR+1 LEND=IBGN+20N2 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,LA,ID2B,IVALID) IF (IVALID.EQ.0)GOTO 9900! IF(LINE(LSTCHR).NE.',')GOTO 9900T IBGN=LSTCHR+1 LEND=IBGN+20L2 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,LW,ID3B,IVALID) IF (IVALID.EQ.0)GOTO 9900! IF(LINE(LSTCHR).NE.',')GOTO 9900P IF(ID3B.NE.1)GOTO 9900T IBGN=LSTCHR+1 LEND=IBGN+20L2 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,LI,ID3B,IVALID) IF (IVALID.EQ.0)GOTO 9900! IF(LINE(LSTCHR).NE.',')GOTO 9900 IF(ID3B.NE.1)GOTO 9900IC IBGN=LSTCHR+1BC LEND=IBGN+20C LOOP OVER VALUES TO VARY NOW DO 99 N=1,8 99 ACV(N)=01 DO 100 N=1,8H$C ALLOW UP TO 8 DIMENSIONS VARIATION IBGN=LSTCHR+1 LEND=IBGN+20C6 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,ACV(N),ID3B,IVALID) IF (IVALID.EQ.0)GOTO 9900 IF(LINE(LSTCHR).NE.';')GOTO 110 IF(ID3B.NE.1)GOTO 9900A IBGN=LSTCHR+1 LEND=IBGN+20D 100 CONTINUE 110 CONTINUE"C NOW HAVE ALL AC POINTERS SET UP.7C IF I IS NOW 0 OR NEGATIVE (ITER COUNT), REINITIALIZE.O ASSIGN 111 TO LGETN LLL=LI GOTO 500U 111 CONTINUE IF(XVAC.GT.0.)GOTO 112AC INITIALIZE COUNTSM LLL=LW C GET VALUE OF W FRACTIONN ASSIGN 114 TO LGET0 GOTO 500C 114 CONTINUE VW=XVAC OLDVV=1. DO 113 N=1,8- CCNT(N)=0 DERIV(N)=1. DEL(N)=VW 113 CONTINUE CAC=1(C COPY CURRENT AC'S INTO SAVED ONES NOW. DO 117 N=1,26 LLL=N ASSIGN 118 TO LGETH GOTO 500 118 AC(N)=XVAC 117 CONTINUEGC AFTER THE INIT, JUST RETURN SINCE WE DON'T WANT TO TRY ANY ITERATIONSC WHEN ITER COUNT EXPIRES. KALKIT=0T RETURNR#C HERE WHEN ITER COUNT IS POSITIVE., 112 CONTINUE XVAC=XVAC-1.1C UPDATE ITERATION COUNT NOW... KALKIT=XVAC ASSIGN 120 TO LPUT( GOTO 600. 120 CONTINUECT C NOW PROCEED WITH VARIATIONS... IF(CAC.LT.1.OR.CAC.GT.8)CAC=1 IF(CCNT(CAC).GE.1)GOTO 200H7C CCNT WAS 0 SO WE DIDN'T GET OUR PARTIAL YET. VARY THE?C AC WE'RE LOOKING AT (CAC [= CURRENT AC]) AND USE NEW VALUE OF+EC (X-A) FOR A NUMERICAL DERIVATIVE RESULT AFTER A RECALC OF SCREEN...1 CCNT(CAC)=1;C JUST STARTED THIS AC SO VARY BY THE APPROPRIATE DELTA ANDX2C EXIT, ALLOWING PARTIAL TO BE COMPUTED NEXT TIME. LLL=LW  ASSIGN 400 TO LGETN GOTO 500= 400 CONTINUEC GET W ACC. VALUE VW=XVAC IF(VW.EQ.0.)VW=.5(C GET CURRENT AC, FIND HOW TO UPDATE IT. LLL=ACV(CAC)F IF(LLL.LE.0)GOTO 9900 ASSIGN 121 TO LGETN GOTO 500E 121 CONTINUE3C NOW XVAC HAS CURRENT AC FOR THE ONE WE'RE VARYINGN"C ADD DEL TO IT AND GET NEW ONE...)C SAVE OLD X AC VALUE FOR NEXT ITERATION. /C NOTE LLL IS STILL SET AT CURRENTLY VARYING AC9C SAVE CURRENT (UNVARIED) VALUE TOO FOR NEXT TIME AROUND.M OLDVV=XVAC IF(OLDVV.EQ.0.)OLDVV=1. IF(DEL(CAC).EQ.0.)DEL(CAC)=VW XVAC=XVAC*(1.+DEL(CAC))7C NOW ALL SET... JUST SAVE CURRENT AC'S AND CURRENT X,AB,C SO WE CAN GET DIFFERENCE NEXT TIME AROUND.C AC(ACV(CAC))=XVACL6C STORE XVAC INTO REAL ACCUMULATORS TOO, SO IT'LL WORK#C WHEN ALL AC'S ARE RELOADED BELOW.  ASSIGN 412 TO LPUTD GOTO 600A 412 CONTINUEAC AT 1000, RELOAD AC ARRAY FROM REAL AC'S... BUT GET OUR MODIFIEDC ONE WE JUST STORED TOO.D GOTO 1000 200 CONTINUE=C COUNT HERE IS 1 SO WE ALREADY HAVE INFO NOW FOR OUR PARITALD:C DERIVATIVE. COMPUTE IT AND VARY THE SELECTED AC USING IT(C THEN STORE IT AND RESET CCNT(CAC) TO 0 CCNT(CAC)=0"C MUST GET NEW X AND A VALUES NOW. CALL XVBLGT(LX,ID2A,XVAC)C XVAC=XVBLS(LX,ID2A)G IF(ID2A.NE.1)GOTO 201 LLL=LXI ASSIGN 201 TO LGETBC EXTRACT CURRENT X FROM AVBLS GOTO 500, 201 CONTINUE XCURR=XVAC= CALL XVBLGT(LA,ID2B,XVAC)C XVAC=XVBLS(1,1)N IF(ID2B.NE.1)GOTO 202 LLL=LAD ASSIGN 202 TO LGETA GOTO 500I 202 CONTINUE ACURR=XVACI;C NOW WE HAVE ENOUGH TO COMPUTE PARTIAL DERIVATIVE WE NEED.- IF(ACV(CAC).LE.0)GOTO 9900I" IF(OLDVV.EQ.0.)OLDVV=AC(ACV(CAC)) IF(OLDVV.EQ.0.)OLDVV=1.8 DERIV(CAC)=((XCURR-ACURR)-(OLDX-OLD00^^^[Z[[[\[}A))/(DEL(CAC)*OLDVV);C NEGATIVE FEEDBACK: IF GOING POSITIVE, MAKE IT NEGATIVE...IGC THIS IS NOT AN ANALYTICAL PROCEDURE ... JUST STEPS IN RIGHT DIRECTIONI(C BY APPROPRIATE AMOUNT AND CONTINUES...8C CLAMP VARIATION TO INITIAL PERCENTAGE IN W ACCUMULATOR LLL=LWCC OBTAIN VALUE OF W VARIATION NOW...IN CASE USER SETS IT UP TO VARYF ASSIGN 203 TO LGETO GOTO 500F 203 CONTINUE VW=XVACC0;C TO ATTEMPT TO GET TO THE ZERO OF (X-A), WE REALLY NEED TO@C DIVIDE BY THE DERIVATIVE. HOWEVER, IN CASES WHERE THE FUNCTIONDC IS NEAR ITS LOCAL MINIMUM AND SLOWLY VARYING, WE REALLY DON'T WANTAC TO STEP FAR AWAY (IT MAY NEVER REACH THE ZERO). THEREFORE, TESTMBC TO SEE IF THE DERIVATIVE IS LARGE AND ALLOW DIVISION WHERE IT IS;C OVER A SOMEWHAT ARBITRARY THRESHOLD (USED 1.0 BELOW), BUTNFC MULTIPLY BY DERIVATIVE OTHERWISE, SO THAT AS THE FUNCTION APPROACHESIC ZERO SLOPE, THE STEPS GET FINER TO GET INTO THE LOCAL MINIMUM (IF ANY)..C5C FORCE NONZERO VARIATION JUST SO WE DON'T GET STUCK.A# IF(DERIV(CAC).EQ.0.)DERIV(CAC)=.01O# IF(DABS(DERIV(CAC)).GT.1.)GOTO 405$ DEL(CAC)=-(OLDX-OLDA)*VW*DERIV(CAC) GOTO 406C 405 CONTINUE$ DEL(CAC)=-(OLDX-OLDA)*VW/DERIV(CAC) 406 CONTINUEGC VERY IMPORTANT TO CLAMP SIZE OF STEPS HERE SO WE DON'T WILDLY DIVERGEAHC IN EARLY GOING. SMALL STEPS TAKE LONGER BUT GET TO MINIMA; LARGER ONES6C WHERE WE DON'T KNOW FUNCTION SHAPE CAN BE DISASTERS.3 IF(DABS(DEL(CAC)).GT.VW)DEL(CAC)=VW*SIGN(DEL(CAC))V6C NOW RESTORE AC'S TO OLD ONES AND VARY CURRENT ONE BYC THE NEW DELTA. IF(ACV(CAC).LE.0)GOTO 9900 6C NEXT LINE MAKES ADJUSTMENT NEEDED TO OUR VARYING AC.! AC(ACV(CAC))=OLDVV*(1.+DEL(CAC))SIC NOW COPY SAVED OLD AC'S ONTO NEW ONES SO WE START WITH AC'S ALL AS THEY.GC WERE IN FIRST STEP SO WE VARY FROM INITIAL X, NOT FROM FIRST VARIED XE C LOCATION...L DO 204 N=1,26 XVAC=AC(N)R LLL=N ASSIGN 205 TO LPUTL GOTO 600O 205 CONTINUE 204 CONTINUEC MOVE ON TO THE NEXT CAC VALUE CAC=CAC+1# IF(ACV(CAC).LE.0.OR.CAC.GT.8)CAC=1H 1000 CONTINUE !C SAVE OLD AC'S NOW FOR NEXT TIMEL DO 1100 N=1,26 LLL=N ASSIGN 1101 TO LGET GOTO 500I1101 AC(N)=XVACA 1100 CONTINUEE6C REMEMBER OLD X AND A VALUES SINCE WE LOOK FOR X=A AS6C A SEARCH CONDITION. WE MUST ASSUME THAT SOME SORT OF:C VARIATION OF ACCUMULATORS GIVEN WILL ALLOW US TO SATISFYC THE EQUATION (X-A)=0.M OLDX=AC(LX)' IF(ID2A.NE.1)CALL XVBLGT(LX,ID2A,OLDX) "C IF(ID2A.NE.1)OLDX=XVBLS(LX,ID2A) OLDA=AC(LA)' IF(ID2B.NE.1)CALL XVBLGT(LA,ID2B,OLDA)N"C IF(ID2B.NE.1)OLDA=XVBLS(LA,ID2B) RETURNC 9900 CONTINUEA RETCD=3 RETURNY"C PROC TO LOAD XVAC WITH VBLS(LLL) 500 CONTINUE DO 501 KKKKN=1,8A501 LAC(KKKKN)=AVBLS(KKKKN,LLL) GOTO LGET#C PROC TO STORE XVAC INTO VBLS(LLL)O 600 CONTINUE DO 601 KKKKN=1,8N601 AVBLS(KKKKN,LLL)=LAC(KKKKN)D GOTO LPUT END REAL *8 FUNCTION SIGN(VAR)T REAL*8 VARS7C ALWAYS RETURN 1. OR -1. FOR THIS PROGRAM ... NEVER 0.  SIGN=1. IF(VAR.LT.0.)SIGN=-1. RETURNR END#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY.C USER FUNCTION ROUTINE:C GENERATES PARSING AND EXECUTION OF ROUTINE CALLS OF FORMC *U FNAME (ARGUMENTS)5C WHERE LINE (80 BYTES) CONTAINS COMMAND LINE AND ALLC ARGUMENTS MAY BE PARSED.C CALLED FROM CMNDC-C VAX VERSION: MOST MATRIX ROUTINES AVAILABLE*C BUT ASSUMES SUBSTANTIAL SPACE AVAILABLE.Cc available parsing aid:3c call varscn(line,ibgn,lend,lstchr,id1,id2,ivalid)8c where line(ibgn... lend) is scanned. If variable found7c ivalid=1 else ivalid=0. id1,id2 are dims in xvbls for7c variable found if any. lstchr is last char found+1...%C OTHER USEFUL ROUTINES IN THE SHEET:C GN(LAST,LEND,NUMBER,LINE)9C LOOKS FROM LINE(LAST) THRU LINE(LEND) FOR A NUMBER AND:C RETURNS ANY NUMBER IN "NUMBER" ARG. ASSUMES "LINE" IS A;C BYTE ARRAY. (NO INDICATION OF WHERE THE NUMBER WAS FOUND;C HOWEVER). THROWS OUT LEADING SPACES, TERM00^^^YTADATADATADATADATADATAINATES ON A NON C NUMERIC.C INDEX(LINE,CHAR)8C EXPECTS LINE TO BE NULL TERMINATED AND RETURNS EITHER9C THE SUBSCRIPT (COUNTING FROM 1) OF CHAR IN LINE OR THEBC MAX SUBSCRIPT IN LINE (I.E., WHERE IT HIT THE NULL TERMINATOR).?C NOTE THIS DIFFERS FROM THE "STANDARD" VERSION OF INDEX WHICH?C RETURNS 0 FOR "NOT FOUND" -- THIS VERSION RETURNS MAX LENGTH1C FOR "NOT FOUND". STOPS AT 512 BYTES HOWEVER...<C PARSING IS UP TO USER. NOTE VARSCN MAY BE CALLED TO PARSE<C VARIABLE NAMES. SUPPLIED VERSION CALLS IDATE WHICH RETURNS<C SYSTEM DATE IN RSX OR VMS AS INTEGER DAY, MONTH, AND YEAR.&C THIS RETURNS HERE IN AC T, U, AND V SUBROUTINE USRFCT(LINE,RETCD) INCLUDE 'VKLUGPRM.FTN' BYTE LINE(80) INTEGER RETCD2 LOGICAL*1 AVBLS(20,27),WRK(128),VBLS(8,RRWP,RCLP)" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9) REAL*8 XAC,XVBLS(RRWP,RCLP) REAL*8 TAC,UAC,VAC,WAC,YAC REAL*8 TMP INTEGER*4 JVBLS(2,RRWP,RCLP)/ EQUIVALENCE(WAC,AVBLS(1,23)),(YAC,AVBLS(1,25)) EQUIVALENCE(XAC,AVBLS(1,27)) EQUIVALENCE(TAC,AVBLS(1,20)) EQUIVALENCE(UAC,AVBLS(1,21)) EQUIVALENCE(VAC,AVBLS(1,22))& EQUIVALENCE(VBLS(1,1,1),JVBLS(1,1,1))$ EQUIVALENCE(VBLS(1,1,1),XVBLS(1,1)) COMMON/V/TYPE,AVBLS,VBLS,VLEN INTEGER*2 XTNCNT,XTCFG,IPSET LOGICAL*1 XTNCMD(80)" INTEGER*2 FORMFG,RCFGX,PZAP,RCONE. INTEGER*2 IDOL1,IDOL2,IDOL3,IDOL4,IDOL5,IDOL61 COMMON/DOLLR/IDOL1,IDOL2,IDOL3,IDOL4,IDOL5,IDOL6 INTEGER*2 RRWACT,RCLACT COMMON/RCLACT/RRWACT,RCLACT$ COMMON/FFGG/FORMFG,RCFGX,PZAP,RCONE& COMMON/XCMD/XTNCNT,XTNCMD,XTCFG,IPSET:C LOOP CONTROL FOR VARY FUNCTION. SET ZERO IN SPREDSHT AND2C MUST BE SET POSITIVE HERE IF WE NEED ITERATIONS.C (IMPLEMENT FOR VAX ONLY) INTEGER KALKIT COMMON/VARYIT/KALKIT(C ARGUMENTS COME IN IN ARGUMENTS IN LINE<C RESULTS GO INTO PERCENT (XAC) AND WHEREVER ELSE DESIRED...( INTEGER*2 PROW,PCOL,DROW,DCOL,DRWV,DCLV* COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRWV,DCLV( DIMENSION NRDSP(DRW,DCL),NCDSP(DRW,DCL) COMMON/D2R/NRDSP,NCDSP LOGICAL*1 FNAMS(6,17)#C FNAMS IS NAME OF FUNCTION CALLED.# DATA FNAMS /'I','D','A','T','E',0, 1 'M','T','X','E','Q',0, 2 'M','O','V','E','V',0, 3 'M','D','E','T',0,0, 4 'M','P','R','O','D',0, 5 'M','A','D','D','V',0, 6 'M','S','U','B','V',0, 7 'M','M','P','Y','T',0, 8 'M','M','P','Y','C',0, 9 'V','A','R','Y',0,0, 1 'X','Q','T','C','M',0, 2 'S','T','R','V','L',0, 3 'H','E','R','E',0,0, 4 'Y','R','M','O','D',0, 5 'J','D','A','T','E',0, 6 'J','T','O','C','H',0, 7 'D','A','T','E',0,0 9 /0C NULL TERMINATE ANY NAMES (ALLOWS 5 CHARACTERS)C START LOOKING PAST THE *U?C GET FUNCTION NAME AND GO TO PROCESS EACH FUNCTION SEPARATELY+C GET NONBLANK CHAR FOR FUNCTION NAME STARTAC NO-OP THE XQTCM FUNCTION FOR PDP11-OVERLAIN VERSIONS BY ZAPPING&C THE NAME SO IT CAN'T EVER BE CALLED.@D FNAMS(1,11)=24 ! MAKE IT CONTROL-X, NOT X... CAN'T GET THAT IN K=330 IF(LINE(K).NE.' ')GOTO 40 K=K+1 IF(K.LT.60)GOTO 30 40 CONTINUE1C UNCOMMENT THE DO 100 STMT IF DIM 2 OF FNAMS > 1 N=1AC **** BE SURE THE 2ND BOUND ON N IS THE SAME AS THE DIMENSION OF*C **** FNAMS ************************** DO 100 N=1,17 KF=N DO 110 NN=1,65 IF(LINE(K+NN-1).NE.FNAMS(NN,N).AND.FNAMS(NN,N).GT.0) 1 GOTO 100 110 CONTINUE GOTO 200 100 CONTINUE!C UNRECOGNIZED FUNCTION... IGNORE 300 RETCD=3 RETURN 200 CONTINUEEC NOW HAVE FOUND FUNCTION IDENTIFIED BY KF. CALL IT AND ALLOW TO WORK/ GOTO (1100,1200,1300,1400,1500,1600,1700,1800,8 1 1900,2000,2100,2200,2300,2400,2500,2600,2700),KF GOTO 300 1100 CONTINUEC IDATE FUNCTION(C RETURNS MONTH, DAY, YEAR IN AC'S T,U,V CALL IDATE(IMO,IDA,IYR) TAC=IMO UAC=IDA VAC=IYR=C RETURN A FLOATING VALUE OF DATE FORM AS YYMMDD SO IT CAN BE?C USED FOR SORTING AND SIMILAR APPLICATIONS. COULD BE USED ALSO@C FOR INTERVALS IF A JULIAN DATE WERE RETURNED, BUT THIS WILL DOC FOR COMPARISONS AND ORDERING. XAC=JULMDY(IYR,IMO,IDA)C XAC=VAC*10000.+TAC*100.+UAC RETURN 1200 CONTINUE?C MATRIX EQU00^^^[Z[[[\[}ATION. NOTE WE MUST NOW START SCAN FOR ARGUMENTS...BC K+5 IS START OF ARG LIST. START AT K+6 TO ALLOW ( TO BE THERE...C FORMAT DESIRED:?C *U MTXEQ(A1:A2,X1:X2,B1:B2) GENERATING SOLUTION MATRIX X1:X2AC FROM MATRICES A,B AND SOLVING EQUATION AX=B WHERE A IS AN N BY4C N SQUARE MATRIX, AND X AND B ARE N BY M MATRICES. RETCD=1BC COLLECT ARGUMENTS. NOTE THAT VARSCN AND GN TRASH POINTERS PASSED=C TO THEM IN IBGN, LEND, SO MAKE UP EVERY TIME. USE VARSCN TO=C COLLECT POINTERS TO THE SHEET ARRAY FIRST OFF COMMAND LINE,1C THEN PROCESS IN OUR MAGICAL MYSTICAL ROUTINE... IBGN=K+6 LEND=IBGN+206C GET LOCATIONS OF MATRICES A, X, AND B (FOR AX=B EQN),C A MUST BER N BY N, SQUARE. X,B ARE N BY M.2 CALL PMTX2(RETCD,3,LINE,IBGN,ID1A,ID2A,ID1B,ID2B,1 1 IDXA,IDXB,IDYA,IDYB,IDBA,IDBB,IDCA,IDCB) N=IABS(ID1B-ID1A)+1C CHECK THAT MATRIX A IS SQUARE% IF(N.NE.(IABS(ID2B-ID2A)+1))GOTO 3004C CHECK THAT MATRIX X AND B HAVE THE SAME DIMENSIONS' IF((IDYA-IDXA).NE.(IDCA-IDBA))GOTO 300' IF((IDYB-IDXB).NE.(IDCB-IDBB))GOTO 300 M=IABS(IDYA-IDXA)+15C CHECK THAT THE X AND B MATRIX DIMENSIONS ARE N BY M-C WHERE THE N IS THE SAME AS FOR THE A MATRIX NN=IABS(IDYB-IDXB)+1 IF(NN.NE.N)GOTO 300+C NOW HAVE DIMENSIONS FOR ALL THIS STUFF...;C SINCE MTXEQU TRASHES ITS' B MATRIX, COPY IT INTO X MATRIXC AND THEN CALL... DO 1210 NN=IDBA,IDCA DO 1210 MM=IDBB,IDCB CALL XVBLGT(NN,MM,XVBLS(1,1))2 CALL XVBLST(NN-IDBA+IDXA,MM-IDBB+IDXB,XVBLS(1,1))/C XVBLS(NN-IDBA+IDXA,MM-IDBB+IDXB)=XVBLS(NN,MM) 1210 CONTINUE5C NOW ALL THE ARGUMENTS ARE SET UP... GO DO THE WORK.$C CALL UTILITY ROUTINE, THEN DONE...) CALL MTXEQU(ID1A,ID2A,IDXA,IDXB,N,M,XAC) RETURN 1300 CONTINUE,C MOVEV MTX1 MTX2 MOVE MTX1 VALUES TO MTX2 RETCD=1 IBGN=K+6< CALL PMTX2(RETCD,2,LINE,IBGN,IR1T,IC1T,IR1B,IC1B,IR2T,IC2T, 1 IR2B,IC2B)C CHECK FOR SAME SIZE MATRICES' IF((IC1T-IC1B).NE.(IC2T-IC2B))GOTO 300' IF((IR1T-IR1B).NE.(IR2T-IR2B))GOTO 3005C DO THE COPY HERE (EASIER THAN CALLING SOMETHING...) DO 1301 NN=IR1T,IR1B DO 1301 MM=IC1T,IC1B CALL XVBLGT(NN,MM,XVBLS(1,1))2 CALL XVBLST(NN-IR1T+IR2T,MM-IC1T+IC2T,XVBLS(1,1))/C XVBLS(NN-IR1T+IR2T,MM-IC1T+IC2T)=XVBLS(NN,MM) 1301 CONTINUE RETURN 1400 CONTINUE&C MDET - DETERMINANT OF SQUARE MATRIX"C 1 ARGUMENT, VIZ., MATRIX COORDS RETCD=1(C ACCOUNT FOR "MDET" BEING 4 CHARS NOT 5 IBGN=K+52 CALL PMTX2(RETCD,1,LINE,IBGN,IR1T,IC1T,IR1B,IC1B)+C CALL A DETERMINANT ROUTINE TO DO THE WORKBC NOTE IT CHECKS FOR SQUARE MATRIX INTERNALLY AND RETURNS 0 IF NOT C SQUARE...) CALL MDET(XVBLS,IR1T,IC1T,IR1B,IC1B,XAC) RETURN 1500 CONTINUE C MPROD A,B,C C=A*B MATRIX WISE IBGN=K+6 RETCD=1 IMXX=35 CALL PMTX2(RETCD,IMXX,LINE,IBGN,ID1A,ID2A,ID1B,ID2B,0 1 IDXA,IDXB,IDYA,IDYB,IDBA,IDBB,IDCA,IDCB) C A=N BY M C B=M BY L C C=N BY LCC M,N REVERSED... RE-REVERSEC M=1+ID1B-ID1AC N=1+ID2B-ID2A N=1+ID1B-ID1A M=1+ID2B-ID2A C IF(M.NE.(1+IDYB-IDXB))GOTO 300 L=1+IDYA-IDXA C IF(N.NE.(1+IDCB-IDBB))GOTO 300 C IF(L.NE.(1+IDCA-IDBA))GOTO 300'C DIMENSIONS LOOK OK NOW SO DO THE WORKC USE SLIGHTLY MODIFIED GMPRD CALL GMPRD(ID1A,ID2A,IDXA,IDXB, 1 IDBA,IDBB,N,M,L) RETURN 1600 CONTINUEC MADDV A,B,C C=A+B IMXX=3 IBGN=K+6 RETCD=15 CALL PMTX2(RETCD,IMXX,LINE,IBGN,ID1A,ID2A,ID1B,ID2B,0 1 IDXA,IDXB,IDYA,IDYB,IDBA,IDBB,IDCA,IDCB) N=1+ID1B-ID1A M=1+ID2B-ID2A C IF(N.NE.(1+IDYA-IDXA))GOTO 300 C IF(N.NE.(1+IDCA-IDBA))GOTO 300 C IF(M.NE.(1+IDYB-IDXB))GOTO 300 C IF(M.NE.(1+IDCB-IDBB))GOTO 300C USE MODIFIED GMADD CALL GMADD(ID1A,ID2A,IDXA,IDXB, 1 IDBA,IDBB,M,N) RETURN 1700 CONTINUEC MSUBV A,B,C C=A-B IMXX=3 IBGN=K+6 RETCD=15 CALL PMTX2(RETCD,IMXX,LINE,IBGN,ID1A,ID2A,ID1B,ID2B,0 1 IDXA,IDXB,IDYA,IDYB,IDBA,IDBB,IDCA,IDCB) N=1+ID1B-ID1A M=1+ID2B-ID2A C IF(N.NE.(1+IDYA-IDXA))GOTO 300 C IF(N.NE.(1+IDCA-IDBA))GOTO 300 C IF(M.NE.(1+IDYB-IDXB))GOTO 300 C IF(M.NE.(1+IDCB-IDBB))GOTO 300 CALL GMSUB(ID1A,ID2A,IDXA,IDXB, 1 IDBA,IDBB,M,N) RETURN 1800 CONTINUEC MMPYT A,00_^^YTADATADATADATADATADATAB,C C=AT*BC GET 3 MATRICES IMXX=3 IBGN=K+6 RETCD=15 CALL PMTX2(RETCD,IMXX,LINE,IBGN,ID1A,ID2A,ID1B,ID2B,0 1 IDXA,IDXB,IDYA,IDYB,IDBA,IDBB,IDCA,IDCB)C TRANSPOSE DIMENSIONS OF A... M=1+ID1B-ID1A N=1+ID2B-ID2A C IF(N.NE.(1+IDYB-IDXB))GOTO 300 L=1+IDYA-IDXA C IF(M.NE.(1+IDCB-IDBB))GOTO 300 C IF(L.NE.(1+IDCA-IDBA))GOTO 300 CALL GTPRD(ID1A,ID2A,IDXA,IDXB, 1 IDBA,IDBB,N,M,L) RETURN 1900 CONTINUE!C MMPYC A,B,K B=A*K (K=CONSTANT)FC FOR MPY BY CONSTANT WE GET MATRICES IN ORDER A,C, THEN AC WITH CONSTC IN IT LAST... IBGN=K+6 RETCD=1 IMXX=25 CALL PMTX2(RETCD,IMXX,LINE,IBGN,ID1A,ID2A,ID1B,ID2B,0 1 IDXA,IDXB,IDYA,IDYB,IDBA,IDBB,IDCA,IDCB) IF(LINE(IBGN-1).NE.',')GOTO 300 LEND=IBGN+204 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,IDCA,IDCB,IVALID) IF(IVALID.EQ.0)GOTO 300AC NOW HAVE EVERYTHING OF ARGS... CHECK DIMENSIONS OF MATRICES.... N=1+ID1B-ID1A M=1+ID2B-ID2A C IF(N.NE.(1+IDYA-IDXA))GOTO 300 C IF(M.NE.(1+IDYB-IDXB))GOTO 300 CALL XVBLGT(IDCA,IDCB,XXXX) DO 1901 NN=ID1A,ID1B DO 1901 MM=ID2A,ID2B CALL XVBLGT(NN,MM,XVBLS(1,1)) XVBLS(1,1)=XVBLS(1,1)*XXXX2 CALL XVBLST(NN-ID1A+IDXA,MM-ID2A+IDXB,XVBLS(1,1))/C XVBLS(NN-ID1A+IDXA,MM-ID2A+IDXB)=XVBLS(NN,MM)C 1 *XVBLS(IDCA,IDCB) 1901 CONTINUE RETURNC *U VARY X,A,W,I,P;Q;R;S;T;C REPEATEDLY COMPUTE SHEET FOR I ITERATIONS (DEFAULTS TO 1?C IF NONE GIVEN) AND VARY AC P,Q,R,S, T (POSITIONAL...WHATEVER@C IS NAMED) UNTIL CONDITION THAT AC X (WHATEVER IS NAMED THERE)GC IS MADE EQUAL TO AC A AS CLOSELY AS POSSIBLE. DOES MULTI-DIMENSIONALFC STEPPING SEARCH SAVING AC'S AND MODIFYING. ACTUALLY WILL HANDLE ANY8C CELL. UP TO 8 DIMENSIONS PERMITTED (ARBITRARY LIMIT).>C NOTE THAT RECALCULATE SPECIAL VARY FLAG WILL BE SET HERE IFC VARYING MORE THAN ONCE...@C WILL VARY ONE OF THE AC'S IN THE LIST P,Q,R,S,T... BY INITIALAC FRACTION W (AN ARBITRARY "STEP SIZE" FRACTION) AND COMPUTE THE@C GRADIENT OF (X-A) WRT THAT AC, THEN WILL REPLACE ALL AC'S ANDAC VARY THAT AC BY W * THE GRADIENT, MEANING THAT AS THE GRADIENTBC DECREASES, THE VARIANCE DOES ALSO. LAST GRADIENTS ARE SAVED ANDBC USED AS INITIAL VARIANCES, SO THAT THE W FRACTION IS AN INITIAL?C GUESS. HOWEVER IT ALSO IS A LIMIT SO NO STEP VARIES AN AC BYC MORE FRACTIONALLY THAN W.>C ONCE THIS IS DONE ANOTHER ONE OF THE P,Q,R,S,T,... LIST IS?C CHOSEN CIRCULARLY AND THE PROCESS REPEATS. THIS MAY CONTINUE(C INDEFINITELY TO LOOK FOR CONVERGENCE.CC NOTE THAT X AND A MAY BE ANY CELL AND NEED NOT BE ACCUMULATORS.?C HOWEVER ALL OTHER CELLS TO VARY MUST BE AC'S AND MUST BE THE=C INDEPENDENT VARIABLES. CALCULATIONS ELSEWHERE ON THE SHEET>C (PERHAPS LATER IN THE SAME CELL...)MUST ESTABLISH DEPENDENT5C VARIABLES OR BOUNDARY OR NORMALIZATION CONDITIONS. 2000 CONTINUE RETCD=14C SPLIT OFF THESE FUNCTIONS INTO A COMMON SUBROUTINE CALL VVARY(LINE,RETCD,K) RETURN 2100 CONTINUE:C EXECUTE COMMAND. FILL IN COMMAND FROM GIVEN FUNCTION AND:C CALL XQTCMD TO DO IT. SETS UP NECESSARY VARIABLES FIRST.BC ASSUME THE COMMAND LINE MUST BE ALONE ON LINE AFTER THIS CALL... KK=1 KKK=K+6 DO 2101 NN=KKK,80 XTNCMD(KK)=LINE(NN) IF(XTNCMD(KK).LE.0)GOTO 2102 KK=KK+1 2101 CONTINUE 2102 CONTINUE XTNCMD(KK+1)=0 XTNCMD(KK+2)=0 XTNCNT=KK XTCFG=1 IPSET=1 CALL XQTCMD(ICODE) RETURN 2200 CONTINUE:C RETURN PACKED FORMULA STRING TO EXTRACT UP TO 8 CHARS OF C FORMULA.C START AT K+6 XAC=0. IBGN=K+6 IEND=IBGN+20, CALL VARSCN(LINE,IBGN,IEND,LSTC,I1,I2,IVLD) IF(IVLD.LE.0)RETURN%C GET START, LENGTH NOW IN FORMULA... IBGN=LSTC+1 IEND=IBGN+20 CALL GN(IBGN,IEND,ISTART,LINE) IBGN=INDEX(LINE,';')*C LOOK FOR ';' CHAR AS START OF 2ND NUMBER4 IF(IBGN.GT.50.OR.ISTART.LE.0.OR.ISTART.GT.80)RETURNC BUMP IBGN PAST THE ; CHAR IBGN=IBGN+1 IEND=80 CALL GN(IBGN,IEND,ILN,LINE) ILN=MIN0(ILN,8) IF(ILN.LE.0)RETURN C READ IN FORMULA INTO WRK ARRAYC IRX=(I2-1)*RRW+I1 CALL REFLEC(I2,I1,IRX) CALL WRKFIL(IRX,WRK,0) KZ=0 DO 991 NN=1,ILN K=WRK(ISTART+NN-1) K=K.AND.12700 _^^[Z[[[\[} IF(K.EQ.0)KZ=1 IF(KZ.EQ.1)K=0%C STOP THE ENCODE ON SEEING ANY NULLS TMP=K XAC=XAC*128.D0+TMP 991 CONTINUE!C XAC RETURNS WITH ENCODED VALUE. RETURN 2300 CONTINUE(C RETURN PRESENT LOCATION IN THE MATRIX. TAC=PROW UAC=PCOL XAC=(PCOL-1)*RRW+PROW VAC=4*FORMFG+2*RCFGX+RCONEC VAC=(DROW-1)*DRW+DCOL$C RESULT IN % IS PHYS SHEET HASHCODE7C RESULT IN V ACCUMULATOR IS DISPLAY SHEET LOC HASHCODE0C T AND U ACCUMULATORS GET PHYS COL, ROW OFFSET. WAC=RRWACT YAC=RCLACT#C W AND Y GET LIMITS CURRENTLY USED RETURN 2400 CONTINUEC YRMOD RETCD=1 IBGN=K+6 LEND=IBGN+204 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,ID1A,ID2A,IVALID) IF(IVALID.EQ.0)GOTO 9300! IF(LINE(LSTCHR).NE.',')GOTO 9300 IBGN=LSTCHR+1 LEND=IBGN+204 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,ID1B,ID2B,IVALID) IF(IVALID.EQ.0)GOTO 9300! IF(LINE(LSTCHR).NE.',')GOTO 9300 IBGN=LSTCHR+1 LEND=IBGN+204 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,ID1C,ID2C,IVALID) IF(IVALID.EQ.0)GOTO 9300C9C V1, V2, V3 ARE YR, MONTH, DAY FOR RETURN OF JULIAN DATEC" CALL XVBLGT(ID1A,ID2A,XVBLS(1,1)) IYR=XVBLS(1,1)" CALL XVBLGT(ID1B,ID2B,XVBLS(1,1)) IMO=XVBLS(1,1)" CALL XVBLGT(ID1C,ID2C,XVBLS(1,1)) IDA=XVBLS(1,1)'C RETURN JULIAN DATE FROM Y, M, D GIVEN XAC=JULMDY(IYR,IMO,IDA) RETURN 2500 CONTINUEC JDATE RETCD=1 IBGN=K+6 LEND=IBGN+201C GET V1 WHICH HAS VARIABLE WITH THE STRING IN IT4 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,ID1A,ID2A,IVALID) IF(IVALID.EQ.0)GOTO 93000C RETURN JULIAN DATE NOW AFTER FETCHING FORMULA.C IRX=(ID2A-1)*RRW+ID1A CALL REFLEC(ID2A,ID1A,IRX) CALL WRKFIL(IRX,WRK,0) XAC=JULIAN(WRK) RETURN 2600 CONTINUEC JTOCH RETCD=1 IBGN=K+6 LEND=IBGN+20C V1 = JULIAN DATE4C V2 IS WHERE TO STORE ASCII DATE STRING AS FORMULA.4 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,ID1A,ID2A,IVALID) IF(IVALID.EQ.0)GOTO 9300! IF(LINE(LSTCHR).NE.',')GOTO 9300 IBGN=LSTCHR+1 LEND=IBGN+204 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,ID1B,ID2B,IVALID) IF(IVALID.EQ.0)GOTO 9300" CALL XVBLGT(ID1A,ID2A,XVBLS(1,1)) IJUL=XVBLS(1,1)C IRX=(ID2B-1)*RRW+ID1B CALL REFLEC(ID2B,ID1B,IRX) CALL WRKFIL(IRX,WRK,0) DO 2502 N=1,110 2502 WRK(N)=0" CALL JULASC(IJUL,WRK,IYR,IMO,IDA) CALL WRKFIL(IRX,WRK,1)C WRITE THE FORMULA BACK OUT TAC=IMO UAC=IDA VAC=IYRC RETURN T,U,V AS M,D,Y ALSO RETURN 2700 CONTINUEC DATE RETCD=1 IBGN=K+5 LEND=IBGN+204 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,ID1A,ID2A,IVALID) IF(IVALID.EQ.0)GOTO 9300! IF(LINE(LSTCHR).NE.',')GOTO 9300 IBGN=LSTCHR+1 LEND=IBGN+204 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,ID1B,ID2B,IVALID) IF(IVALID.EQ.0)GOTO 9300! IF(LINE(LSTCHR).NE.',')GOTO 9300 IBGN=LSTCHR+1 LEND=IBGN+204 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,ID1C,ID2C,IVALID) IF(IVALID.EQ.0)GOTO 9300! IF(LINE(LSTCHR).NE.',')GOTO 9300 IBGN=LSTCHR+1 LEND=IBGN+204 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,ID1D,ID2D,IVALID) IF(IVALID.EQ.0)GOTO 9300" CALL XVBLGT(ID1A,ID2A,XVBLS(1,1)) IYR=XVBLS(1,1)" CALL XVBLGT(ID1B,ID2B,XVBLS(1,1)) IMO=XVBLS(1,1)" CALL XVBLGT(ID1C,ID2C,XVBLS(1,1)) IDA=XVBLS(1,1)SC IRX=(ID2D-1)*RRW+ID1DO CALL REFLEC(ID2D,ID1D,IRX)S CALL WRKFIL(IRX,WRK,0)T DO 2702 N=1,110 2702 WRK(N)=0R IJUL=JULMDY(IYR,IMO,IDA)A" CALL JULASC(IJUL,WRK,IYR,IMO,IDA) CALL WRKFIL(IRX,WRK,1)M 9300 RETURN ENDBC SPLIT OFF MATRIX PARSING LOGIC HERE TO PICK OFF UP TO 3 MATRICES C COORDINATESA=C THIS ALLOWS US TO CALL ONE ROUTINE TO LOCATE UP TO 3 MATRIXL%C SPECIFICATIONS SEPARATED BY COMMAS.I; SUBROUTINE PMTX2(IRTCD,IMXX,LINE,IBGN,ID1A,ID2A,ID1B,ID2B,,0 1 IDXA,IDXB,IDYA,IDYB,IDBA,IDBB,IDCA,IDCB) LOGICAL*1 LINE(80) + CALL GMTX(LINE,IBGN,LSTCHR,ID1A,ID2A,ID1B,, 1 ID2B,RETCD) &C GET LOC OF MATRIX A (MUST BE SQUARE) IBGN=LSTCHR+1% IF(RETCD.NE.0.OR.IMXX.LE.1)GOTO 1000S IF(LINE(LSTCHR).NE.',')GOTO 300+ CALL GMTX(LINE,IBGN,LSTCHR,IDXA,IDXB,IDYA,F 1 IDYB,RETCD)RC GET LOC OF MATRIX X (RESULT).. IBGN=LSTCHR+1% IF(RETCD.NE.0.OR.IMXX.LE.2)GOTO 1000W IF(LINE(LSTCHR).NE.',')GOTO 300+ CALL GMTX(LINE,IBGN,LSTCHR,IDBA,IDB00_^^YTADATADATADATADATADATAB,IDCA,O 1 IDCB,RETCD) IBGN=LSTCHR+1:C GET LOC OF MATRIX B (AX=B), THE OTHER HALF OF OUR GIVENS9C IF WE FALL TO HERE, ALL LOOKS OK, SO LEAVE RETCD ALONE.H>C HOWEVER IF ANY ERRS HAVE OCCURRED, RETCD IS ALREADY SET TO 3C FOR ERROR... 1000 RETURNF 300 CONTINUE RETCD=3 RETURNE END5C GET SPECS FOR A MATRIX (2 VARS SEPARATED BY COLONS)S1 SUBROUTINE GMTX(LINE,IBGN,LSTCHR,ID1A,ID2A,ID1B,S 1 ID2B,RETCD)I LOGICAL*1 LINE(80)E6C REQUIRE END OF MATRIX NAME WITHIN 20 CHARS OF START.'C SHOULD BE OK IN ALL REASONABLE CASES.Y LEND=IBGN+20X&C GET LOC OF MATRIX A (MUST BE SQUARE)4 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,ID1A,ID2A,IVALID) IF(IVALID.EQ.0)GOTO 300 IF(LINE(LSTCHR).NE.':')GOTO 300 IBGN=LSTCHR+1 LEND=IBGN+20B4 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,ID1B,ID2B,IVALID) IF(IVALID.EQ.0)GOTO 300 1000 RETURNR 300 RETCD=3A RETURNA ENDC, C VARY CONTROL ROUTINEDC NOTE: THIS ROUTINE RELIES UPON HAVING ITS DATA AREAS REMAIN INTACTFC ACROSS CALLS. IT MUST NOT BE IN AN OVERLAY SEGMENT OR THAT WILL FAILBC AND IT WILL NOT WORK. SPECIFICALLY IT EXPECTS THE AC ARRAY TO BEC SET CORRECTLY. SUBROUTINE VVARY(LINE,RETCD,K), INCLUDE 'VKLUGPRM.FTN'/ BYTE LINE(80) INTEGER RETCD2 LOGICAL*1 AVBLS(20,27),WRK(128),VBLS(8,RRWP,RCLP)" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9) REAL*8 XAC,XVBLS(RRWP,RCLP) EQUIVALENCE(XAC,AVBLS(1,27))L INTEGER*4 JVBLS(2,RRWP,RCLP)& EQUIVALENCE(VBLS(1,1,1),JVBLS(1,1,1))$ EQUIVALENCE(VBLS(1,1,1),XVBLS(1,1)) COMMON/V/TYPE,AVBLS,VBLS,VLEN:C LOOP CONTROL FOR VARY FUNCTION. SET ZERO IN SPREDSHT AND2C MUST BE SET POSITIVE HERE IF WE NEED ITERATIONS.C (IMPLEMENT FOR VAX ONLY) INTEGER KALKITX COMMON/VARYIT/KALKIT EXTERNAL SIGN REAL*8 SIGN LOGICAL*1 LAC(8)A REAL*8 XVAC,VW EQUIVALENCE(LAC(1),XVAC)X REAL *8 AC(26)E REAL*8 DERIV(8) REAL*8 DEL(8) REAL*8 OLDVV,OLDX,OLDAC INTEGER ACV(8)C INTEGER CAC INTEGER CCNT(8)BC UNCOMMENT THIS COMMON DECLARATION AND MOVE DATA STMTS INTO BLOCKC IN ORDER TO OVERLAY THIS... 8 COMMON/VRYDAT/AC,DERIV,DEL,CAC,CCNT,OLDVV,OLDX,OLDA,ACVC C ACV POINTS TO AC'S VARYING6C CAC = CURRENT INDEX INTO ACV TO FIND AC BEING VARIED%C AC IS LAST SET OF ACCUMULATORS SEEN /C IF ACV ENTRY IS 0, MEANS NO AC TO VARY THERE.,& INTEGER LW,LX,LI ! LOGICAL W,X,I AC'S INTEGER LA ! LOGICAL A ACC C DATA DERIV/8*1./,DEL/8*0./C DATA CAC/1/,CCNT/8*0/,C DATA ACV/8*0/TC DATA OLDVV/1./C C PARSE ARGUMENTS FIRST2C FIRST 2 ARGS ARE X AND A AC'S (OR GENERAL CELLS)C DEFAULT NO REDOING THIS... KALKIT=0, IBGN=K+5D LEND=IBGN+20,2 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,LX,ID2A,IVALID) IF (IVALID.EQ.0)GOTO 9900! IF(LINE(LSTCHR).NE.',')GOTO 9900E IBGN=LSTCHR+1 LEND=IBGN+20N2 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,LA,ID2B,IVALID) IF (IVALID.EQ.0)GOTO 9900! IF(LINE(LSTCHR).NE.',')GOTO 9900B IBGN=LSTCHR+1 LEND=IBGN+20N2 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,LW,ID3B,IVALID) IF (IVALID.EQ.0)GOTO 9900! IF(LINE(LSTCHR).NE.',')GOTO 9900T IF(ID3B.NE.1)GOTO 9900) IBGN=LSTCHR+1 LEND=IBGN+20M2 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,LI,ID3B,IVALID) IF (IVALID.EQ.0)GOTO 9900! IF(LINE(LSTCHR).NE.',')GOTO 9900 IF(ID3B.NE.1)GOTO 9900*C IBGN=LSTCHR+1*C LEND=IBGN+20C LOOP OVER VALUES TO VARY NOW DO 99 N=1,8 99 ACV(N)=0N DO 100 N=1,8T$C ALLOW UP TO 8 DIMENSIONS VARIATION IBGN=LSTCHR+1 LEND=IBGN+20E6 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,ACV(N),ID3B,IVALID) IF (IVALID.EQ.0)GOTO 9900 IF(LINE(LSTCHR).NE.';')GOTO 110 IF(ID3B.NE.1)GOTO 9900T IBGN=LSTCHR+1 LEND=IBGN+200 100 CONTINUE 110 CONTINUE"C NOW HAVE ALL AC POINTERS SET UP.7C IF I IS NOW 0 OR NEGATIVE (ITER COUNT), REINITIALIZE.E ASSIGN 111 TO LGETR LLL=LIT GOTO 500 111 CONTINUE IF(XVAC.GT.0.)GOTO 112C INITIALIZE COUNTSF LLL=LWAC GET VALUE OF W FRACTIONS ASSIGN 114 TO LGETF GOTO 500A 114 CONTINUE VW=XVAC OLDVV=1.S DO 113 N=1,8 CCNT(N)=0 DERIV(N)=1. DEL(N)=VW 113 CONTINUE CAC=1(C COPY CURRENT AC'S INTO SAVED ONES NOW. DO 117 N=1,26 LLL=N ASSIGN 118 TO LGETA GOTO 500118 AC(N)=XVAC 117 CONTINUE00_^^[Z[[[\[}GC AFTER THE INIT, JUST RETURN SINCE WE DON'T WANT TO TRY ANY ITERATIONSRC WHEN ITER COUNT EXPIRES. KALKIT=0H RETURN #C HERE WHEN ITER COUNT IS POSITIVE.1 112 CONTINUE XVAC=XVAC-1.NC UPDATE ITERATION COUNT NOW...A KALKIT=XVAC ASSIGN 120 TO LPUTA GOTO 600 120 CONTINUECR C NOW PROCEED WITH VARIATIONS... IF(CAC.LT.1.OR.CAC.GT.8)CAC=1 IF(CCNT(CAC).GE.1)GOTO 200A7C CCNT WAS 0 SO WE DIDN'T GET OUR PARTIAL YET. VARY THEV?C AC WE'RE LOOKING AT (CAC [= CURRENT AC]) AND USE NEW VALUE OFIEC (X-A) FOR A NUMERICAL DERIVATIVE RESULT AFTER A RECALC OF SCREEN.... CCNT(CAC)=1;C JUST STARTED THIS AC SO VARY BY THE APPROPRIATE DELTA ANDR2C EXIT, ALLOWING PARTIAL TO BE COMPUTED NEXT TIME. LLL=LWL ASSIGN 400 TO LGETI GOTO 5002 400 CONTINUEC GET W ACC. VALUE VW=XVAC IF(VW.EQ.0.)VW=.5(C GET CURRENT AC, FIND HOW TO UPDATE IT. LLL=ACV(CAC) IF(LLL.LE.0)GOTO 9900 ASSIGN 121 TO LGETC GOTO 500I 121 CONTINUE3C NOW XVAC HAS CURRENT AC FOR THE ONE WE'RE VARYINGG"C ADD DEL TO IT AND GET NEW ONE...)C SAVE OLD X AC VALUE FOR NEXT ITERATION.C/C NOTE LLL IS STILL SET AT CURRENTLY VARYING AC9C SAVE CURRENT (UNVARIED) VALUE TOO FOR NEXT TIME AROUND.Y OLDVV=XVACI IF(OLDVV.EQ.0.)OLDVV=1. IF(DEL(CAC).EQ.0.)DEL(CAC)=VW XVAC=XVAC*(1.+DEL(CAC))7C NOW ALL SET... JUST SAVE CURRENT AC'S AND CURRENT X,AL,C SO WE CAN GET DIFFERENCE NEXT TIME AROUND.C AC(ACV(CAC))=XVACN6C STORE XVAC INTO REAL ACCUMULATORS TOO, SO IT'LL WORK#C WHEN ALL AC'S ARE RELOADED BELOW.- ASSIGN 412 TO LPUTM GOTO 600N 412 CONTINUEAC AT 1000, RELOAD AC ARRAY FROM REAL AC'S... BUT GET OUR MODIFIEDUC ONE WE JUST STORED TOO.T GOTO 1000 200 CONTINUE=C COUNT HERE IS 1 SO WE ALREADY HAVE INFO NOW FOR OUR PARITALX:C DERIVATIVE. COMPUTE IT AND VARY THE SELECTED AC USING IT(C THEN STORE IT AND RESET CCNT(CAC) TO 0 CCNT(CAC)=0"C MUST GET NEW X AND A VALUES NOW. CALL XVBLGT(LX,ID2A,XVAC)C XVAC=XVBLS(LX,ID2A)1 IF(ID2A.NE.1)GOTO 201 LLL=LX ASSIGN 201 TO LGETAC EXTRACT CURRENT X FROM AVBLS GOTO 500N 201 CONTINUE XCURR=XVACC CALL XVBLGT(LA,ID2B,XVAC)C XVAC=XVBLS(1,1)  IF(ID2B.NE.1)GOTO 202 LLL=LAX ASSIGN 202 TO LGETN GOTO 500M 202 CONTINUE ACURR=XVAC;C NOW WE HAVE ENOUGH TO COMPUTE PARTIAL DERIVATIVE WE NEED.N IF(ACV(CAC).LE.0)GOTO 9900M" IF(OLDVV.EQ.0.)OLDVV=AC(ACV(CAC)) IF(OLDVV.EQ.0.)OLDVV=1.8 DERIV(CAC)=((XCURR-ACURR)-(OLDX-OLDA))/(DEL(CAC)*OLDVV);C NEGATIVE FEEDBACK: IF GOING POSITIVE, MAKE IT NEGATIVE...WGC THIS IS NOT AN ANALYTICAL PROCEDURE ... JUST STEPS IN RIGHT DIRECTION(C BY APPROPRIATE AMOUNT AND CONTINUES...8C CLAMP VARIATION TO INITIAL PERCENTAGE IN W ACCUMULATOR LLL=LWICC OBTAIN VALUE OF W VARIATION NOW...IN CASE USER SETS IT UP TO VARYB ASSIGN 203 TO LGETB GOTO 500 203 CONTINUE VW=XVACCB;C TO ATTEMPT TO GET TO THE ZERO OF (X-A), WE REALLY NEED TOR@C DIVIDE BY THE DERIVATIVE. HOWEVER, IN CASES WHERE THE FUNCTIONDC IS NEAR ITS LOCAL MINIMUM AND SLOWLY VARYING, WE REALLY DON'T WANTAC TO STEP FAR AWAY (IT MAY NEVER REACH THE ZERO). THEREFORE, TEST0BC TO SEE IF THE DERIVATIVE IS LARGE AND ALLOW DIVISION WHERE IT IS;C OVER A SOMEWHAT ARBITRARY THRESHOLD (USED 1.0 BELOW), BUT,FC MULTIPLY BY DERIVATIVE OTHERWISE, SO THAT AS THE FUNCTION APPROACHESIC ZERO SLOPE, THE STEPS GET FINER TO GET INTO THE LOCAL MINIMUM (IF ANY).1CD5C FORCE NONZERO VARIATION JUST SO WE DON'T GET STUCK.# IF(DERIV(CAC).EQ.0.)DERIV(CAC)=.01A# IF(DABS(DERIV(CAC)).GT.1.)GOTO 405O$ DEL(CAC)=-(OLDX-OLDA)*VW*DERIV(CAC) GOTO 406N 405 CONTINUE$ DEL(CAC)=-(OLDX-OLDA)*VW/DERIV(CAC) 406 CONTINUEGC VERY IMPORTANT TO CLAMP SIZE OF STEPS HERE SO WE DON'T WILDLY DIVERGE HC IN EARLY GOING. SMALL STEPS TAKE LONGER BUT GET TO MINIMA; LARGER ONES6C WHERE WE DON'T KNOW FUNCTION SHAPE CAN BE DISASTERS.3 IF(DABS(DEL(CAC)).GT.VW)DEL(CAC)=VW*SIGN(DEL(CAC))6C NOW RESTORE AC'S TO OLD ONES AND VARY CURRENT ONE BYC THE NEW DELTA. IF(ACV(CAC).LE.0)GOTO 9900 6C NEXT LINE MAKES ADJUSTMENT NEEDED TO OUR VARYING AC.! AC(ACV(CAC))=OLDVV*(1.+DEL(CAC))RIC NOW COPY SAVED OLD AC'S ONTO N00"_%_^YTADATADATADATADATADATAEW ONES SO WE START WITH AC'S ALL AS THEYGC WERE IN FIRST STEP SO WE VARY FROM INITIAL X, NOT FROM FIRST VARIED XB C LOCATION...A DO 204 N=1,26 XVAC=AC(N)A LLL=N ASSIGN 205 TO LPUTS GOTO 600M 205 CONTINUE 204 CONTINUEC MOVE ON TO THE NEXT CAC VALUE0 CAC=CAC+1# IF(ACV(CAC).LE.0.OR.CAC.GT.8)CAC=10 1000 CONTINUEI!C SAVE OLD AC'S NOW FOR NEXT TIMEA DO 1100 N=1,26 LLL=N ASSIGN 1101 TO LGET GOTO 500C1101 AC(N)=XVAC 1100 CONTINUE=6C REMEMBER OLD X AND A VALUES SINCE WE LOOK FOR X=A AS6C A SEARCH CONDITION. WE MUST ASSUME THAT SOME SORT OF:C VARIATION OF ACCUMULATORS GIVEN WILL ALLOW US TO SATISFYC THE EQUATION (X-A)=0. OLDX=AC(LX)' IF(ID2A.NE.1)CALL XVBLGT(LX,ID2A,OLDX)-"C IF(ID2A.NE.1)OLDX=XVBLS(LX,ID2A) OLDA=AC(LA)' IF(ID2B.NE.1)CALL XVBLGT(LA,ID2B,OLDA)I"C IF(ID2B.NE.1)OLDA=XVBLS(LA,ID2B) RETURN 9900 CONTINUEK RETCD=3 RETURNI"C PROC TO LOAD XVAC WITH VBLS(LLL) 500 CONTINUE DO 501 KKKKN=1,8O501 LAC(KKKKN)=AVBLS(KKKKN,LLL)O GOTO LGET#C PROC TO STORE XVAC INTO VBLS(LLL)D 600 CONTINUE DO 601 KKKKN=1,8601 AVBLS(KKKKN,LLL)=LAC(KKKKN)X GOTO LPUT END REAL *8 FUNCTION SIGN(VAR)A REAL*8 VAR+7C ALWAYS RETURN 1. OR -1. FOR THIS PROGRAM ... NEVER 0.S SIGN=1. IF(VAR.LT.0.)SIGN=-1. RETURN1 END#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY.C USER FUNCTION ROUTINE:C GENERATES PARSING AND EXECUTION OF ROUTINE CALLS OF FORMC *U FNAME (ARGUMENTS)5C WHERE LINE (80 BYTES) CONTAINS COMMAND LINE AND ALLC ARGUMENTS MAY BE PARSED.C CALLED FROM CMNDC-C VAX VERSION: MOST MATRIX ROUTINES AVAILABLE*C BUT ASSUMES SUBSTANTIAL SPACE AVAILABLE.Cc available parsing aid:3c call varscn(line,ibgn,lend,lstchr,id1,id2,ivalid)8c where line(ibgn... lend) is scanned. If variable found7c ivalid=1 else ivalid=0. id1,id2 are dims in xvbls for7c variable found if any. lstchr is last char found+1...%C OTHER USEFUL ROUTINES IN THE SHEET:C GN(LAST,LEND,NUMBER,LINE)9C LOOKS FROM LINE(LAST) THRU LINE(LEND) FOR A NUMBER AND:C RETURNS ANY NUMBER IN "NUMBER" ARG. ASSUMES "LINE" IS A;C BYTE ARRAY. (NO INDICATION OF WHERE THE NUMBER WAS FOUND;C HOWEVER). THROWS OUT LEADING SPACES, TERMINATES ON A NON C NUMERIC.C INDEX(LINE,CHAR)8C EXPECTS LINE TO BE NULL TERMINATED AND RETURNS EITHER9C THE SUBSCRIPT (COUNTING FROM 1) OF CHAR IN LINE OR THEBC MAX SUBSCRIPT IN LINE (I.E., WHERE IT HIT THE NULL TERMINATOR).?C NOTE THIS DIFFERS FROM THE "STANDARD" VERSION OF INDEX WHICH?C RETURNS 0 FOR "NOT FOUND" -- THIS VERSION RETURNS MAX LENGTH1C FOR "NOT FOUND". STOPS AT 512 BYTES HOWEVER...<C PARSING IS UP TO USER. NOTE VARSCN MAY BE CALLED TO PARSE<C VARIABLE NAMES. SUPPLIED VERSION CALLS IDATE WHICH RETURNS<C SYSTEM DATE IN RSX OR VMS AS INTEGER DAY, MONTH, AND YEAR.&C THIS RETURNS HERE IN AC T, U, AND V SUBROUTINE USRFCT(LINE,RETCD) INCLUDE 'VKLUGPRM.FTN' BYTE LINE(80) INTEGER RETCD2 LOGICAL*1 AVBLS(20,27),WRK(128),VBLS(8,RRWP,RCLP)" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9) REAL*8 XAC,XVBLS(RRWP,RCLP) REAL*8 TAC,UAC,VAC,WAC,YAC REAL*8 TMP INTEGER*4 JVBLS(2,RRWP,RCLP)/ EQUIVALENCE(WAC,AVBLS(1,23)),(YAC,AVBLS(1,25)) EQUIVALENCE(XAC,AVBLS(1,27)) EQUIVALENCE(TAC,AVBLS(1,20)) EQUIVALENCE(UAC,AVBLS(1,21)) EQUIVALENCE(VAC,AVBLS(1,22))& EQUIVALENCE(VBLS(1,1,1),JVBLS(1,1,1))$ EQUIVALENCE(VBLS(1,1,1),XVBLS(1,1)) COMMON/V/TYPE,AVBLS,VBLS,VLEN INTEGER*2 XTNCNT,XTCFG,IPSET LOGICAL*1 XTNCMD(80)" INTEGER*2 FORMFG,RCFGX,PZAP,RCONE. INTEGER*2 IDOL1,IDOL2,IDOL3,IDOL4,IDOL5,IDOL61 COMMON/DOLLR/IDOL1,IDOL2,IDOL3,IDOL4,IDOL5,IDOL6 INTEGER*2 RRWACT,RCLACT COMMON/RCLACT/RRWACT,RCLACT$ COMMON/FFGG/FORMFG,RCFGX,PZAP,RCONE& COMMON/XCMD/XTNCNT,XTNCMD,XTC00*_^^[Z[[[\[}FG,IPSET:C LOOP CONTROL FOR VARY FUNCTION. SET ZERO IN SPREDSHT AND2C MUST BE SET POSITIVE HERE IF WE NEED ITERATIONS.C (IMPLEMENT FOR VAX ONLY) INTEGER KALKIT COMMON/VARYIT/KALKIT(C ARGUMENTS COME IN IN ARGUMENTS IN LINE<C RESULTS GO INTO PERCENT (XAC) AND WHEREVER ELSE DESIRED...( INTEGER*2 PROW,PCOL,DROW,DCOL,DRWV,DCLV* COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRWV,DCLV( DIMENSION NRDSP(DRW,DCL),NCDSP(DRW,DCL) COMMON/D2R/NRDSP,NCDSP C ADD DATATRIEVE DATA STMTS HERE=C ADD DATATRIEVE FUNCTION NAMES AND MODIFY THE 17 TO LARGER # LOGICAL*1 FNAMS(6,23)#C FNAMS IS NAME OF FUNCTION CALLED.# DATA FNAMS /'I','D','A','T','E',0, 1 'M','T','X','E','Q',0, 2 'M','O','V','E','V',0, 3 'M','D','E','T',0,0, 4 'M','P','R','O','D',0, 5 'M','A','D','D','V',0, 6 'M','S','U','B','V',0, 7 'M','M','P','Y','T',0, 8 'M','M','P','Y','C',0, 9 'V','A','R','Y',0,0, 1 'X','Q','T','C','M',0, 2 'S','T','R','V','L',0, 3 'H','E','R','E',0,0, 4 'Y','R','M','O','D',0, 5 'J','D','A','T','E',0, 6 'J','T','O','C','H',0, 7 'D','A','T','E',0,0, 8 'D','B',0,0,0,0, 1 'W','K','D','Y','S',0, 2 'W','K','D','I','N',0,4 2 'F','F','T','F','W',0,'F','F','T','R','V',0, 3 'L','I','N','E','F',0 9 /0C NULL TERMINATE ANY NAMES (ALLOWS 5 CHARACTERS)C START LOOKING PAST THE *U?C GET FUNCTION NAME AND GO TO PROCESS EACH FUNCTION SEPARATELY+C GET NONBLANK CHAR FOR FUNCTION NAME STARTAC NO-OP THE XQTCM FUNCTION FOR PDP11-OVERLAIN VERSIONS BY ZAPPING&C THE NAME SO IT CAN'T EVER BE CALLED.@D FNAMS(1,11)=24 ! MAKE IT CONTROL-X, NOT X... CAN'T GET THAT IN K=330 IF(LINE(K).NE.' ')GOTO 40 K=K+1 IF(K.LT.60)GOTO 30 40 CONTINUE1C UNCOMMENT THE DO 100 STMT IF DIM 2 OF FNAMS > 1 N=1AC **** BE SURE THE 2ND BOUND ON N IS THE SAME AS THE DIMENSION OF*C **** FNAMS **************************5C MODIFY 23 TO LARGER WHEN DATATRIEVE FUNCTIONS ADDED DO 100 N=1,23 KF=N DO 110 NN=1,65 IF(LINE(K+NN-1).NE.FNAMS(NN,N).AND.FNAMS(NN,N).GT.0) 1 GOTO 100 110 CONTINUE GOTO 200 100 CONTINUE!C UNRECOGNIZED FUNCTION... IGNORE 300 RETCD=3 RETURN 200 CONTINUEEC NOW HAVE FOUND FUNCTION IDENTIFIED BY KF. CALL IT AND ALLOW TO WORK4C FOR DATATRIEVE ADD NEW NUMBERS AND ASSOCIATED CODEC TO HANDLE FUNCTIONS./ GOTO (1100,1200,1300,1400,1500,1600,1700,1800,: 1 1900,2000,2100,2200,2300,2400,2500,2600,2700,2800,$ 2 2900,3000,3100,3200,3300),KF/C ON TRANSFER LINE(K) IS START OF COMMAND NAME.3C FUNCTION NAMES BEGINNING WITH "DB" TRANSFERRED TO.C DTR HANDLING ROUTINE SEPARATE FROM THIS ONE.1C ALL CODE FOR THAT GOES THERE FOR TOTAL PARSING. GOTO 300 1100 CONTINUEC IDATE FUNCTION(C RETURNS MONTH, DAY, YEAR IN AC'S T,U,V CALL IDATE(IMO,IDA,IYR) TAC=IMO UAC=IDA VAC=IYR=C RETURN A FLOATING VALUE OF DATE FORM AS YYMMDD SO IT CAN BE?C USED FOR SORTING AND SIMILAR APPLICATIONS. COULD BE USED ALSO@C FOR INTERVALS IF A JULIAN DATE WERE RETURNED, BUT THIS WILL DOC FOR COMPARISONS AND ORDERING. XAC=JULMDY(IYR,IMO,IDA)C XAC=VAC*10000.+TAC*100.+UAC RETURN 1200 CONTINUE?C MATRIX EQUATION. NOTE WE MUST NOW START SCAN FOR ARGUMENTS...BC K+5 IS START OF ARG LIST. START AT K+6 TO ALLOW ( TO BE THERE...C FORMAT DESIRED:?C *U MTXEQ(A1:A2,X1:X2,B1:B2) GENERATING SOLUTION MATRIX X1:X2AC FROM MATRICES A,B AND SOLVING EQUATION AX=B WHERE A IS AN N BY4C N SQUARE MATRIX, AND X AND B ARE N BY M MATRICES. RETCD=1BC COLLECT ARGUMENTS. NOTE THAT VARSCN AND GN TRASH POINTERS PASSED=C TO THEM IN IBGN, LEND, SO MAKE UP EVERY TIME. USE VARSCN TO=C COLLECT POINTERS TO THE SHEET ARRAY FIRST OFF COMMAND LINE,1C THEN PROCESS IN OUR MAGICAL MYSTICAL ROUTINE... IBGN=K+6 LEND=IBGN+206C GET LOCATIONS OF MATRICES A, X, AND B (FOR AX=B EQN),C A MUST BER N BY N, SQUARE. X,B ARE N BY M.2 CALL PMTX2(RETCD,3,LINE,IBGN,ID1A,ID2A,ID1B,ID2B,1 1 IDXA,IDXB,IDYA,IDYB,IDBA,IDBB,IDCA,IDCB) N=IABS(ID1B-ID1A)+1C CHECK THAT MATRIX A IS SQUARE% IF(N.002_%_^YTADATADATADATADATADATANE.(IABS(ID2B-ID2A)+1))GOTO 3004C CHECK THAT MATRIX X AND B HAVE THE SAME DIMENSIONS' IF((IDYA-IDXA).NE.(IDCA-IDBA))GOTO 300' IF((IDYB-IDXB).NE.(IDCB-IDBB))GOTO 300 M=IABS(IDYA-IDXA)+15C CHECK THAT THE X AND B MATRIX DIMENSIONS ARE N BY M-C WHERE THE N IS THE SAME AS FOR THE A MATRIX NN=IABS(IDYB-IDXB)+1 IF(NN.NE.N)GOTO 300+C NOW HAVE DIMENSIONS FOR ALL THIS STUFF...;C SINCE MTXEQU TRASHES ITS' B MATRIX, COPY IT INTO X MATRIXC AND THEN CALL... DO 1210 NN=IDBA,IDCA DO 1210 MM=IDBB,IDCB CALL XVBLGT(NN,MM,XVBLS(1,1))2 CALL XVBLST(NN-IDBA+IDXA,MM-IDBB+IDXB,XVBLS(1,1))/C XVBLS(NN-IDBA+IDXA,MM-IDBB+IDXB)=XVBLS(NN,MM) 1210 CONTINUE5C NOW ALL THE ARGUMENTS ARE SET UP... GO DO THE WORK.$C CALL UTILITY ROUTINE, THEN DONE...) CALL MTXEQU(ID1A,ID2A,IDXA,IDXB,N,M,XAC) RETURN 1300 CONTINUE,C MOVEV MTX1 MTX2 MOVE MTX1 VALUES TO MTX2 RETCD=1 IBGN=K+6< CALL PMTX2(RETCD,2,LINE,IBGN,IR1T,IC1T,IR1B,IC1B,IR2T,IC2T, 1 IR2B,IC2B)C CHECK FOR SAME SIZE MATRICES' IF((IC1T-IC1B).NE.(IC2T-IC2B))GOTO 300' IF((IR1T-IR1B).NE.(IR2T-IR2B))GOTO 3005C DO THE COPY HERE (EASIER THAN CALLING SOMETHING...) DO 1301 NN=IR1T,IR1B DO 1301 MM=IC1T,IC1B CALL XVBLGT(NN,MM,XVBLS(1,1))2 CALL XVBLST(NN-IR1T+IR2T,MM-IC1T+IC2T,XVBLS(1,1))/C XVBLS(NN-IR1T+IR2T,MM-IC1T+IC2T)=XVBLS(NN,MM) 1301 CONTINUE RETURN 1400 CONTINUE&C MDET - DETERMINANT OF SQUARE MATRIX"C 1 ARGUMENT, VIZ., MATRIX COORDS RETCD=1(C ACCOUNT FOR "MDET" BEING 4 CHARS NOT 5 IBGN=K+52 CALL PMTX2(RETCD,1,LINE,IBGN,IR1T,IC1T,IR1B,IC1B)+C CALL A DETERMINANT ROUTINE TO DO THE WORKBC NOTE IT CHECKS FOR SQUARE MATRIX INTERNALLY AND RETURNS 0 IF NOT C SQUARE...) CALL MDET(XVBLS,IR1T,IC1T,IR1B,IC1B,XAC) RETURN 1500 CONTINUE C MPROD A,B,C C=A*B MATRIX WISE IBGN=K+6 RETCD=1 IMXX=35 CALL PMTX2(RETCD,IMXX,LINE,IBGN,ID1A,ID2A,ID1B,ID2B,0 1 IDXA,IDXB,IDYA,IDYB,IDBA,IDBB,IDCA,IDCB) C A=N BY M C B=M BY L C C=N BY LC 'CC M,N SEEM MIXED UP... REVERSE THEM...C M=1+ID1B-ID1AC N=1+ID2B-ID2A N=1+ID1B-ID1A M=1+ID2B-ID2A C IF(M.NE.(1+IDYB-IDXB))GOTO 300 L=1+IDYA-IDXA C IF(N.NE.(1+IDCB-IDBB))GOTO 300 C IF(L.NE.(1+IDCA-IDBA))GOTO 300'C DIMENSIONS LOOK OK NOW SO DO THE WORKC USE SLIGHTLY MODIFIED GMPRD CALL GMPRD(ID1A,ID2A,IDXA,IDXB, 1 IDBA,IDBB,N,M,L) RETURN 1600 CONTINUEC MADDV A,B,C C=A+B IMXX=3 IBGN=K+6 RETCD=15 CALL PMTX2(RETCD,IMXX,LINE,IBGN,ID1A,ID2A,ID1B,ID2B,0 1 IDXA,IDXB,IDYA,IDYB,IDBA,IDBB,IDCA,IDCB) N=1+ID1B-ID1A M=1+ID2B-ID2A C IF(N.NE.(1+IDYA-IDXA))GOTO 300 C IF(N.NE.(1+IDCA-IDBA))GOTO 300 C IF(M.NE.(1+IDYB-IDXB))GOTO 300 C IF(M.NE.(1+IDCB-IDBB))GOTO 300C USE MODIFIED GMADD CALL GMADD(ID1A,ID2A,IDXA,IDXB, 1 IDBA,IDBB,M,N) RETURN 1700 CONTINUEC MSUBV A,B,C C=A-B IMXX=3 IBGN=K+6 RETCD=15 CALL PMTX2(RETCD,IMXX,LINE,IBGN,ID1A,ID2A,ID1B,ID2B,0 1 IDXA,IDXB,IDYA,IDYB,IDBA,IDBB,IDCA,IDCB) N=1+ID1B-ID1A M=1+ID2B-ID2A C IF(N.NE.(1+IDYA-IDXA))GOTO 300 C IF(N.NE.(1+IDCA-IDBA))GOTO 300 C IF(M.NE.(1+IDYB-IDXB))GOTO 300 C IF(M.NE.(1+IDCB-IDBB))GOTO 300 CALL GMSUB(ID1A,ID2A,IDXA,IDXB, 1 IDBA,IDBB,M,N) RETURN 1800 CONTINUEC MMPYT A,B,C C=AT*BC GET 3 MATRICES IMXX=3 IBGN=K+6 RETCD=15 CALL PMTX2(RETCD,IMXX,LINE,IBGN,ID1A,ID2A,ID1B,ID2B,0 1 IDXA,IDXB,IDYA,IDYB,IDBA,IDBB,IDCA,IDCB)C TRANSPOSE DIMENSIONS OF A... M=1+ID1B-ID1A N=1+ID2B-ID2A C IF(N.NE.(1+IDYB-IDXB))GOTO 300 L=1+IDYA-IDXA C IF(M.NE.(1+IDCB-IDBB))GOTO 300 C IF(L.NE.(1+IDCA-IDBA))GOTO 300 CALL GTPRD(ID1A,ID2A,IDXA,IDXB, 1 IDBA,IDBB,N,M,L) RETURN 1900 CONTINUE!C MMPYC A,B,K B=A*K (K=CONSTANT)FC FOR MPY BY CONSTANT WE GET MATRICES IN ORDER A,C, THEN AC WITH CONSTC IN IT LAST... IBGN=K+6 RETCD=1 IMXX=25 CALL PMTX2(RETCD,IMXX,LINE,IBGN,ID1A,ID2A,ID1B,ID2B,0 1 IDXA,IDXB,IDYA,IDYB,IDBA,IDBB,IDCA,IDCB) IF(LINE(IBGN-1).NE.',')GOTO 300 LEND=IBGN+204 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,IDCA,IDCB,IVALID) IF(IVALID.EQ.0)GOTO 300AC NOW HAVE EVERYTHING OF ARGS... CHECK00:_^^[Z[[[\[} DIMENSIONS OF MATRICES.... N=1+ID1B-ID1A M=1+ID2B-ID2A C IF(N.NE.(1+IDYA-IDXA))GOTO 300 C IF(M.NE.(1+IDYB-IDXB))GOTO 300 CALL XVBLGT(IDCA,IDCB,XXXX) DO 1901 NN=ID1A,ID1B DO 1901 MM=ID2A,ID2B CALL XVBLGT(NN,MM,XVBLS(1,1)) XVBLS(1,1)=XVBLS(1,1)*XXXX2 CALL XVBLST(NN-ID1A+IDXA,MM-ID2A+IDXB,XVBLS(1,1))/C XVBLS(NN-ID1A+IDXA,MM-ID2A+IDXB)=XVBLS(NN,MM)C 1 *XVBLS(IDCA,IDCB) 1901 CONTINUE RETURNC *U VARY X,A,W,I,P;Q;R;S;T;C REPEATEDLY COMPUTE SHEET FOR I ITERATIONS (DEFAULTS TO 1?C IF NONE GIVEN) AND VARY AC P,Q,R,S, T (POSITIONAL...WHATEVER@C IS NAMED) UNTIL CONDITION THAT AC X (WHATEVER IS NAMED THERE)GC IS MADE EQUAL TO AC A AS CLOSELY AS POSSIBLE. DOES MULTI-DIMENSIONALFC STEPPING SEARCH SAVING AC'S AND MODIFYING. ACTUALLY WILL HANDLE ANY8C CELL. UP TO 8 DIMENSIONS PERMITTED (ARBITRARY LIMIT).>C NOTE THAT RECALCULATE SPECIAL VARY FLAG WILL BE SET HERE IFC VARYING MORE THAN ONCE...@C WILL VARY ONE OF THE AC'S IN THE LIST P,Q,R,S,T... BY INITIALAC FRACTION W (AN ARBITRARY "STEP SIZE" FRACTION) AND COMPUTE THE@C GRADIENT OF (X-A) WRT THAT AC, THEN WILL REPLACE ALL AC'S ANDAC VARY THAT AC BY W * THE GRADIENT, MEANING THAT AS THE GRADIENTBC DECREASES, THE VARIANCE DOES ALSO. LAST GRADIENTS ARE SAVED ANDBC USED AS INITIAL VARIANCES, SO THAT THE W FRACTION IS AN INITIAL?C GUESS. HOWEVER IT ALSO IS A LIMIT SO NO STEP VARIES AN AC BYC MORE FRACTIONALLY THAN W.>C ONCE THIS IS DONE ANOTHER ONE OF THE P,Q,R,S,T,... LIST IS?C CHOSEN CIRCULARLY AND THE PROCESS REPEATS. THIS MAY CONTINUE(C INDEFINITELY TO LOOK FOR CONVERGENCE.CC NOTE THAT X AND A MAY BE ANY CELL AND NEED NOT BE ACCUMULATORS.?C HOWEVER ALL OTHER CELLS TO VARY MUST BE AC'S AND MUST BE THE=C INDEPENDENT VARIABLES. CALCULATIONS ELSEWHERE ON THE SHEET>C (PERHAPS LATER IN THE SAME CELL...)MUST ESTABLISH DEPENDENT5C VARIABLES OR BOUNDARY OR NORMALIZATION CONDITIONS. 2000 CONTINUE RETCD=14C SPLIT OFF THESE FUNCTIONS INTO A COMMON SUBROUTINE CALL VVARY(LINE,RETCD,K) RETURN 2100 CONTINUE:C EXECUTE COMMAND. FILL IN COMMAND FROM GIVEN FUNCTION AND:C CALL XQTCMD TO DO IT. SETS UP NECESSARY VARIABLES FIRST.BC ASSUME THE COMMAND LINE MUST BE ALONE ON LINE AFTER THIS CALL... KK=1 KKK=K+6 DO 2101 NN=KKK,80 XTNCMD(KK)=LINE(NN) IF(XTNCMD(KK).LE.0)GOTO 2102 KK=KK+1 2101 CONTINUE 2102 CONTINUE XTNCMD(KK+1)=0 XTNCMD(KK+2)=0 XTNCNT=KK XTCFG=1 IPSET=1 CALL XQTCMD(ICODE) RETURN 2200 CONTINUE:C RETURN PACKED FORMULA STRING TO EXTRACT UP TO 8 CHARS OF C FORMULA.C START AT K+6 XAC=0. IBGN=K+6 IEND=IBGN+20, CALL VARSCN(LINE,IBGN,IEND,LSTC,I1,I2,IVLD) IF(IVLD.LE.0)RETURN%C GET START, LENGTH NOW IN FORMULA... IBGN=LSTC+1 IEND=IBGN+20 CALL GN(IBGN,IEND,ISTART,LINE) IBGN=INDEX(LINE,';')*C LOOK FOR ';' CHAR AS START OF 2ND NUMBER4 IF(IBGN.GT.50.OR.ISTART.LE.0.OR.ISTART.GT.80)RETURNC BUMP IBGN PAST THE ; CHAR IBGN=IBGN+1 IEND=80 CALL GN(IBGN,IEND,ILN,LINE) ILN=MIN0(ILN,8) IF(ILN.LE.0)RETURN C READ IN FORMULA INTO WRK ARRAYC IRX=(I2-1)*RRW+I1 CALL REFLEC(I2,I1,IRX) CALL WRKFIL(IRX,WRK,0) KZ=0 DO 991 NN=1,ILN K=WRK(ISTART+NN-1) K=K.AND.127 IF(K.EQ.0)KZ=1 IF(KZ.EQ.1)K=0%C STOP THE ENCODE ON SEEING ANY NULLS TMP=K XAC=XAC*128.D0+TMP 991 CONTINUE!C XAC RETURNS WITH ENCODED VALUE. RETURN 2300 CONTINUE(C RETURN PRESENT LOCATION IN THE MATRIX. TAC=PROW UAC=PCOL XAC=(PCOL-1)*RRW+PROW VAC=4*FORMFG+2*RCFGX+RCONEC VAC=(DROW-1)*DRW+DCOL$C RESULT IN % IS PHYS SHEET HASHCODE7C RESULT IN V ACCUMULATOR IS DISPLAY SHEET LOC HASHCODE0C T AND U ACCUMULATORS GET PHYS COL, ROW OFFSET. WAC=RRWACT YAC=RCLACT#C W AND Y GET LIMITS CURRENTLY USED RETURN 2400 CONTINUEC YRMOD RETCD=1 IBGN=K+6 LEND=IBGN+204 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,ID1A,ID2A,IVALID) IF(IVALID.EQ.0)GOTO 9300! IF(LINE(LSTCHR).NE.',')GOTO 9300 IBGN=LSTCHR+1 LEND=IBGN+204 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,ID1B,ID2B,IVALID) IF(IVALID.EQ.0)GOTO 9300! IF(LINE(LSTCHR).NE.',00B_%_^YTADATADATADATADATADATA')GOTO 9300 IBGN=LSTCHR+1 LEND=IBGN+204 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,ID1C,ID2C,IVALID) IF(IVALID.EQ.0)GOTO 9300C9C V1, V2, V3 ARE YR, MONTH, DAY FOR RETURN OF JULIAN DATEC" CALL XVBLGT(ID1A,ID2A,XVBLS(1,1)) IYR=XVBLS(1,1)" CALL XVBLGT(ID1B,ID2B,XVBLS(1,1)) IMO=XVBLS(1,1)" CALL XVBLGT(ID1C,ID2C,XVBLS(1,1)) IDA=XVBLS(1,1)'C RETURN JULIAN DATE FROM Y, M, D GIVEN XAC=JULMDY(IYR,IMO,IDA) RETURN 2500 CONTINUEC JDATE RETCD=1 IBGN=K+6 LEND=IBGN+201C GET V1 WHICH HAS VARIABLE WITH THE STRING IN IT4 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,ID1A,ID2A,IVALID) IF(IVALID.EQ.0)GOTO 93000C RETURN JULIAN DATE NOW AFTER FETCHING FORMULA.C IRX=(ID2A-1)*RRW+ID1A CALL REFLEC(ID2A,ID1A,IRX) CALL WRKFIL(IRX,WRK,0) XAC=JULIAN(WRK) RETURN 2600 CONTINUEC JTOCH RETCD=1 IBGN=K+6 LEND=IBGN+20C V1 = JULIAN DATE4C V2 IS WHERE TO STORE ASCII DATE STRING AS FORMULA.4 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,ID1A,ID2A,IVALID) IF(IVALID.EQ.0)GOTO 9300! IF(LINE(LSTCHR).NE.',')GOTO 9300 IBGN=LSTCHR+1 LEND=IBGN+204 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,ID1B,ID2B,IVALID) IF(IVALID.EQ.0)GOTO 9300" CALL XVBLGT(ID1A,ID2A,XVBLS(1,1)) IJUL=XVBLS(1,1)C IRX=(ID2B-1)*RRW+ID1B CALL REFLEC(ID2B,ID1B,IRX) CALL WRKFIL(IRX,WRK,0) DO 2502 N=1,110 2502 WRK(N)=0" CALL JULASC(IJUL,WRK,IYR,IMO,IDA) CALL WRKFIL(IRX,WRK,1)C WRITE THE FORMULA BACK OUT TAC=IMO UAC=IDA VAC=IYRC RETURN T,U,V AS M,D,Y ALSO RETURN 2700 CONTINUEC DATE RETCD=1 IBGN=K+5 LEND=IBGN+2094 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,ID1A,ID2A,IVALID) IF(IVALID.EQ.0)GOTO 9300H! IF(LINE(LSTCHR).NE.',')GOTO 9300L IBGN=LSTCHR+1 LEND=IBGN+20T4 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,ID1B,ID2B,IVALID) IF(IVALID.EQ.0)GOTO 9300N! IF(LINE(LSTCHR).NE.',')GOTO 9300B IBGN=LSTCHR+1 LEND=IBGN+20 4 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,ID1C,ID2C,IVALID) IF(IVALID.EQ.0)GOTO 9300R! IF(LINE(LSTCHR).NE.',')GOTO 9300E IBGN=LSTCHR+1 LEND=IBGN+204 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,ID1D,ID2D,IVALID) IF(IVALID.EQ.0)GOTO 9300" CALL XVBLGT(ID1A,ID2A,XVBLS(1,1)) IYR=XVBLS(1,1)f" CALL XVBLGT(ID1B,ID2B,XVBLS(1,1)) IMO=XVBLS(1,1)v" CALL XVBLGT(ID1C,ID2C,XVBLS(1,1)) IDA=XVBLS(1,1)rC IRX=(ID2D-1)*RRW+ID1DF CALL REFLEC(ID2D,ID1D,IRX)  CALL WRKFIL(IRX,WRK,0) DO 2702 N=1,110 2702 WRK(N)=0I IJUL=JULMDY(IYR,IMO,IDA)" CALL JULASC(IJUL,WRK,IYR,IMO,IDA) CALL WRKFIL(IRX,WRK,1) GOTO 9300 2800 CONTINUE  RETCD=19C K SHOULD BE SUBSCRIPT OF THE 'D' OF "DB" SO SKIP BY THES>C "DB" PART AND JUST PASS THE REST OF THE FUNCTION NAME AT THEC START OF THE STRING... CALL DTRFCT(LINE(K+2),RETCD)E@C HANDLE ALL *U DBXXXX FUNCTIONS IN SEPARATE ROUTINE FOR EASE OF2C MOVING IT AROUND. (MIGHT EVEN GO BACK TO PDP11!) GOTO 9300 2900 CONTINUEO RETCD=1>C WKDYS - GIVE WEEKDAYS (M-F) BETWEEN 2 JULIAN DATES THAT MUSTC BE IN CELLS. IBGN=K+6N LEND=IBGN+20O4 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,ID1A,ID2A,IVALID) IF(IVALID.EQ.0)GOTO 9300A! IF(LINE(LSTCHR).NE.',')GOTO 9300M IBGN=LSTCHR+1 LEND=IBGN+20E4 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,ID1B,ID2B,IVALID) IF(IVALID.EQ.0)GOTO 9300T" CALL XVBLGT(ID1A,ID2A,XVBLS(1,1)) IYR=XVBLS(1,1)T" CALL XVBLGT(ID1B,ID2B,XVBLS(1,1)) IMO=XVBLS(1,1))0C IYR HOLDS START JULIAN DATE, IMO HOLDS END ONE CALL WKDY(IYR,IMO,IDA)G*C IDA = NUMBER WORK DAYS BETWEEN THE DATES XAC=IDA C RETURN DAYSA GOTO 9300 3000 CONTINUE  RETCD=1?C WKDIN - GIVEN A JULIAN DATE AND A NUMBER WORKDAYS, RETURN THEB3C ENDING JULIAN DATE AFTER THAT NUMBER JULIAN DAYS.N IBGN=K+6S LEND=IBGN+20V4 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,ID1A,ID2A,IVALID) IF(IVALID.EQ.0)GOTO 9300)! IF(LINE(LSTCHR).NE.',')GOTO 9300, IBGN=LSTCHR+1 LEND=IBGN+20E4 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,ID1B,ID2B,IVALID) IF(IVALID.EQ.0)GOTO 9300R" CALL XVBLGT(ID1A,ID2A,XVBLS(1,1)) IYR=XVBLS(1,1)O" CALL XVBLGT(ID1B,ID2B,XVBLS(1,1)) IMO=XVBLS(1,1),FC IYR = START DATE, JULIAN. IMO = NUMBER DAYS. RETURN END DATE JULIAN. CALL WRKINT(IYR,IMO,IDA)GC IDA = RETURN JULIAN DATE XAC=IDA GOT00J_^^[Z[[[\[}O 9300 3100 CONTINUERC FFTFWR ISI=1 GOTO 3210 3200 CONTINUEDC FFTRVB ISI=-1I 3210 CONTINUE  RETCD=1C MERGED FFT CODET0C *U FFTFW V1:V2 DOES FFT OF RANGE GIVEN (1-DIM)7C DITTO FFTRV BUT ONE IS REVERSE AND ONE IS FORWARD FFTTC REAL*8 FFT ROUTINE USED. IBGN=K+6S2 CALL PMTX2(RETCD,1,LINE,IBGN,IR1T,IC1T,IR1B,IC1B, 1 IV,IV,IV,IV,IV,IV,IV,IV) IC=0, IR=1D IF(IR1T.EQ.IR1B)GOTO 3220 IC=1C IR=0M 3220 CONTINUEC KK=IABS(IR1T-IR1B)+1D KKK=IABS(IC1T-IC1B)+1 IV=MAX0(KK,KKK)C IV = NO. POINTS.$ CALL FOUREA(IR1T,IC1T,IC,IR,IV,ISI)0C THAT'S ALL FOR FFT. REPLACES CELLS IN PLACE... GOTO 9300 3300 CONTINUEC LINEF C *U LINEF VY1:VY2[,VX1:VX2]"C WHERE X COORDS CAN BE SKIPPED... IBGN=K+6T RETCD=1IC JUST GET 2 MATRICES' VALUES. IF RETCD=3 ON RETURN, 2ND MATRIX MUST HAVES#C BEEN MISSING SO FLAG IT THAT WAY.,< CALL PMTX2(RETCD,2,LINE,IBGN,IR1T,IC1T,IR1B,IC1B,IR2T,IC2T, 1 IR2B,IC2B,KK,KK,KK,KK) IF(RETCD.NE.1)IR2T=-1 RETCD=1 KK=IABS(IR1T-IR1B)+1E KKK=IABS(IC1T-IC1B)+1 IV=MAX0(KK,KKK) KK=0  IF(IR1T.EQ.IR1B)GOTO 3320 KK=16 3320 CONTINUEC7 CALL LINFIT(IR2T,IC2T,KK,IR1T,IC1T,IV,TAC,UAC,XAC,WAC),8C RETURN A VALUE IN T, B VALUE IN U, AND DEL VALUE IN %.C FOR Y = A + BX-C CORRELATION COEFFICIENT RETURNS IN W ACCUM., 9300 RETURN, ENDBC SPLIT OFF MATRIX PARSING LOGIC HERE TO PICK OFF UP TO 3 MATRICES C COORDINATES =C THIS ALLOWS US TO CALL ONE ROUTINE TO LOCATE UP TO 3 MATRIXC%C SPECIFICATIONS SEPARATED BY COMMAS.C; SUBROUTINE PMTX2(IRTCD,IMXX,LINE,IBGN,ID1A,ID2A,ID1B,ID2B,P0 1 IDXA,IDXB,IDYA,IDYB,IDBA,IDBB,IDCA,IDCB) LOGICAL*1 LINE(80)E+ CALL GMTX(LINE,IBGN,LSTCHR,ID1A,ID2A,ID1B,  1 ID2B,RETCD)N&C GET LOC OF MATRIX A (MUST BE SQUARE) IBGN=LSTCHR+1% IF(RETCD.NE.0.OR.IMXX.LE.1)GOTO 1000H IF(LINE(LSTCHR).NE.',')GOTO 300+ CALL GMTX(LINE,IBGN,LSTCHR,IDXA,IDXB,IDYA,S 1 IDYB,RETCD)NC GET LOC OF MATRIX X (RESULT).* IBGN=LSTCHR+1% IF(RETCD.NE.0.OR.IMXX.LE.2)GOTO 1000V IF(LINE(LSTCHR).NE.',')GOTO 300+ CALL GMTX(LINE,IBGN,LSTCHR,IDBA,IDBB,IDCA,. 1 IDCB,RETCD)( IBGN=LSTCHR+1:C GET LOC OF MATRIX B (AX=B), THE OTHER HALF OF OUR GIVENS9C IF WE FALL TO HERE, ALL LOOKS OK, SO LEAVE RETCD ALONE. >C HOWEVER IF ANY ERRS HAVE OCCURRED, RETCD IS ALREADY SET TO 3C FOR ERROR... 1000 RETURNR 300 CONTINUE RETCD=3 RETURNE END5C GET SPECS FOR A MATRIX (2 VARS SEPARATED BY COLONS)01 SUBROUTINE GMTX(LINE,IBGN,LSTCHR,ID1A,ID2A,ID1B,0 1 ID2B,RETCD)2 LOGICAL*1 LINE(80)06C REQUIRE END OF MATRIX NAME WITHIN 20 CHARS OF START.'C SHOULD BE OK IN ALL REASONABLE CASES.G LEND=IBGN+20S&C GET LOC OF MATRIX A (MUST BE SQUARE)4 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,ID1A,ID2A,IVALID) IF(IVALID.EQ.0)GOTO 300 IF(LINE(LSTCHR).NE.':')GOTO 300 IBGN=LSTCHR+1 LEND=IBGN+20I4 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,ID1B,ID2B,IVALID) IF(IVALID.EQ.0)GOTO 300 1000 RETURNU 300 RETCD=3M RETURND ENDCN C VARY CONTROL ROUTINEDC NOTE: THIS ROUTINE RELIES UPON HAVING ITS DATA AREAS REMAIN INTACTFC ACROSS CALLS. IT MUST NOT BE IN AN OVERLAY SEGMENT OR THAT WILL FAILBC AND IT WILL NOT WORK. SPECIFICALLY IT EXPECTS THE AC ARRAY TO BEC SET CORRECTLY. SUBROUTINE VVARY(LINE,RETCD,K)O INCLUDE 'VKLUGPRM.FTN'S BYTE LINE(80) INTEGER RETCD2 LOGICAL*1 AVBLS(20,27),WRK(128),VBLS(8,RRWP,RCLP)" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9) REAL*8 XAC,XVBLS(RRWP,RCLP) EQUIVALENCE(XAC,AVBLS(1,27))A INTEGER*4 JVBLS(2,RRWP,RCLP)A& EQUIVALENCE(VBLS(1,1,1),JVBLS(1,1,1))$ EQUIVALENCE(VBLS(1,1,1),XVBLS(1,1)) COMMON/V/TYPE,AVBLS,VBLS,VLEN:C LOOP CONTROL FOR VARY FUNCTION. SET ZERO IN SPREDSHT AND2C MUST BE SET POSITIVE HERE IF WE NEED ITERATIONS.C (IMPLEMENT FOR VAX ONLY) INTEGER KALKITI COMMON/VARYIT/KALKIT  EXTERNAL SIGN REAL*8 SIGN LOGICAL*1 LAC(8)N REAL*8 XVAC,VW  EQUIVALENCE(LAC(1),XVAC)  REAL *8 AC(26)Q REAL*8 DERIV(8) REAL*8 DEL(8) REAL*8 OLDVV,OLDX,OLDAX INTEGER ACV(8)G INTEGER CAC INTEGER CCNT(8)BC UNCOMMENT THIS COMMON DECLARATION AND MOVE DATA STMTS INTO BLOCKC IN ORDER TO OVERLAY THIS...8 COM00R_%_^YTADATADATADATADATADATAMON/VRYDAT/AC,DERIV,DEL,CAC,CCNT,OLDVV,OLDX,OLDA,ACVC C ACV POINTS TO AC'S VARYING6C CAC = CURRENT INDEX INTO ACV TO FIND AC BEING VARIED%C AC IS LAST SET OF ACCUMULATORS SEEND/C IF ACV ENTRY IS 0, MEANS NO AC TO VARY THERE.S& INTEGER LW,LX,LI ! LOGICAL W,X,I AC'S INTEGER LA ! LOGICAL A ACCYC DATA DERIV/8*1./,DEL/8*0./C DATA CAC/1/,CCNT/8*0/ C DATA ACV/8*0/FC DATA OLDVV/1./CTC PARSE ARGUMENTS FIRSTY2C FIRST 2 ARGS ARE X AND A AC'S (OR GENERAL CELLS)C DEFAULT NO REDOING THIS... KALKIT=0 IBGN=K+5M LEND=IBGN+20C2 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,LX,ID2A,IVALID) IF (IVALID.EQ.0)GOTO 9900! IF(LINE(LSTCHR).NE.',')GOTO 9900 IBGN=LSTCHR+1 LEND=IBGN+20 2 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,LA,ID2B,IVALID) IF (IVALID.EQ.0)GOTO 9900! IF(LINE(LSTCHR).NE.',')GOTO 9900 IBGN=LSTCHR+1 LEND=IBGN+20T2 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,LW,ID3B,IVALID) IF (IVALID.EQ.0)GOTO 9900! IF(LINE(LSTCHR).NE.',')GOTO 9900  IF(ID3B.NE.1)GOTO 9900  IBGN=LSTCHR+1 LEND=IBGN+2012 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,LI,ID3B,IVALID) IF (IVALID.EQ.0)GOTO 9900! IF(LINE(LSTCHR).NE.',')GOTO 9900  IF(ID3B.NE.1)GOTO 9900NC IBGN=LSTCHR+1 C LEND=IBGN+20C LOOP OVER VALUES TO VARY NOW DO 99 N=1,8 99 ACV(N)=02 DO 100 N=1,8X$C ALLOW UP TO 8 DIMENSIONS VARIATION IBGN=LSTCHR+1 LEND=IBGN+20N6 CALL VARSCN(LINE,IBGN,LEND,LSTCHR,ACV(N),ID3B,IVALID) IF (IVALID.EQ.0)GOTO 9900 IF(LINE(LSTCHR).NE.';')GOTO 110 IF(ID3B.NE.1)GOTO 9900I IBGN=LSTCHR+1 LEND=IBGN+20C 100 CONTINUE 110 CONTINUE"C NOW HAVE ALL AC POINTERS SET UP.7C IF I IS NOW 0 OR NEGATIVE (ITER COUNT), REINITIALIZE.R ASSIGN 111 TO LGETN LLL=LI GOTO 500 111 CONTINUE IF(XVAC.GT.0.)GOTO 112IC INITIALIZE COUNTSR LLL=LWCC GET VALUE OF W FRACTIONA ASSIGN 114 TO LGET= GOTO 500D 114 CONTINUE VW=XVAC OLDVV=1.X DO 113 N=1,8, CCNT(N)=0 DERIV(N)=1. DEL(N)=VW 113 CONTINUE CAC=1(C COPY CURRENT AC'S INTO SAVED ONES NOW. DO 117 N=1,26 LLL=N ASSIGN 118 TO LGET GOTO 500B118 AC(N)=XVAC 117 CONTINUEGC AFTER THE INIT, JUST RETURN SINCE WE DON'T WANT TO TRY ANY ITERATIONSDC WHEN ITER COUNT EXPIRES. KALKIT=0  RETURN1#C HERE WHEN ITER COUNT IS POSITIVE.O 112 CONTINUE XVAC=XVAC-1.SC UPDATE ITERATION COUNT NOW... KALKIT=XVAC ASSIGN 120 TO LPUT GOTO 600, 120 CONTINUEC6 C NOW PROCEED WITH VARIATIONS... IF(CAC.LT.1.OR.CAC.GT.8)CAC=1 IF(CCNT(CAC).GE.1)GOTO 200,7C CCNT WAS 0 SO WE DIDN'T GET OUR PARTIAL YET. VARY THED?C AC WE'RE LOOKING AT (CAC [= CURRENT AC]) AND USE NEW VALUE OFIEC (X-A) FOR A NUMERICAL DERIVATIVE RESULT AFTER A RECALC OF SCREEN...- CCNT(CAC)=1;C JUST STARTED THIS AC SO VARY BY THE APPROPRIATE DELTA ANDL2C EXIT, ALLOWING PARTIAL TO BE COMPUTED NEXT TIME. LLL=LW ASSIGN 400 TO LGETS GOTO 500C 400 CONTINUEC GET W ACC. VALUE VW=XVAC IF(VW.EQ.0.)VW=.5(C GET CURRENT AC, FIND HOW TO UPDATE IT. LLL=ACV(CAC), IF(LLL.LE.0)GOTO 9900 ASSIGN 121 TO LGET2 GOTO 500F 121 CONTINUE3C NOW XVAC HAS CURRENT AC FOR THE ONE WE'RE VARYINGF"C ADD DEL TO IT AND GET NEW ONE...)C SAVE OLD X AC VALUE FOR NEXT ITERATION.A/C NOTE LLL IS STILL SET AT CURRENTLY VARYING AC9C SAVE CURRENT (UNVARIED) VALUE TOO FOR NEXT TIME AROUND. OLDVV=XVACG IF(OLDVV.EQ.0.)OLDVV=1. IF(DEL(CAC).EQ.0.)DEL(CAC)=VW XVAC=XVAC*(1.+DEL(CAC))7C NOW ALL SET... JUST SAVE CURRENT AC'S AND CURRENT X,AS,C SO WE CAN GET DIFFERENCE NEXT TIME AROUND.C AC(ACV(CAC))=XVACB6C STORE XVAC INTO REAL ACCUMULATORS TOO, SO IT'LL WORK#C WHEN ALL AC'S ARE RELOADED BELOW.0 ASSIGN 412 TO LPUT2 GOTO 600, 412 CONTINUEAC AT 1000, RELOAD AC ARRAY FROM REAL AC'S... BUT GET OUR MODIFIEDSC ONE WE JUST STORED TOO.N GOTO 1000 200 CONTINUE=C COUNT HERE IS 1 SO WE ALREADY HAVE INFO NOW FOR OUR PARITAL1:C DERIVATIVE. COMPUTE IT AND VARY THE SELECTED AC USING IT(C THEN STORE IT AND RESET CCNT(CAC) TO 0 CCNT(CAC)=0"C MUST GET NEW X AND A VALUES NOW. CALL XVBLGT(LX,ID2A,XVAC)C XVAC=XVBLS(LX,ID2A)I IF(ID2A.NE.1)GOTO 201 LLL=LX) ASSIGN 201 TO LGETEC EXTRACT CURRENT X FROM00Z_a_^[Z[[[\[} AVBLS GOTO 500T 201 CONTINUE XCURR=XVAC CALL XVBLGT(LA,ID2B,XVAC)C XVAC=XVBLS(1,1)0 IF(ID2B.NE.1)GOTO 202 LLL=LA0 ASSIGN 202 TO LGETD GOTO 500D 202 CONTINUE ACURR=XVAC9;C NOW WE HAVE ENOUGH TO COMPUTE PARTIAL DERIVATIVE WE NEED.= IF(ACV(CAC).LE.0)GOTO 9900T" IF(OLDVV.EQ.0.)OLDVV=AC(ACV(CAC)) IF(OLDVV.EQ.0.)OLDVV=1.8 DERIV(CAC)=((XCURR-ACURR)-(OLDX-OLDA))/(DEL(CAC)*OLDVV);C NEGATIVE FEEDBACK: IF GOING POSITIVE, MAKE IT NEGATIVE...PGC THIS IS NOT AN ANALYTICAL PROCEDURE ... JUST STEPS IN RIGHT DIRECTION (C BY APPROPRIATE AMOUNT AND CONTINUES...8C CLAMP VARIATION TO INITIAL PERCENTAGE IN W ACCUMULATOR LLL=LWRCC OBTAIN VALUE OF W VARIATION NOW...IN CASE USER SETS IT UP TO VARYS ASSIGN 203 TO LGETE GOTO 500 203 CONTINUE VW=XVACCY;C TO ATTEMPT TO GET TO THE ZERO OF (X-A), WE REALLY NEED TOT@C DIVIDE BY THE DERIVATIVE. HOWEVER, IN CASES WHERE THE FUNCTIONDC IS NEAR ITS LOCAL MINIMUM AND SLOWLY VARYING, WE REALLY DON'T WANTAC TO STEP FAR AWAY (IT MAY NEVER REACH THE ZERO). THEREFORE, TESTSBC TO SEE IF THE DERIVATIVE IS LARGE AND ALLOW DIVISION WHERE IT IS;C OVER A SOMEWHAT ARBITRARY THRESHOLD (USED 1.0 BELOW), BUTEFC MULTIPLY BY DERIVATIVE OTHERWISE, SO THAT AS THE FUNCTION APPROACHESIC ZERO SLOPE, THE STEPS GET FINER TO GET INTO THE LOCAL MINIMUM (IF ANY). C 5C FORCE NONZERO VARIATION JUST SO WE DON'T GET STUCK.A# IF(DERIV(CAC).EQ.0.)DERIV(CAC)=.01 # IF(DABS(DERIV(CAC)).GT.1.)GOTO 405T$ DEL(CAC)=-(OLDX-OLDA)*VW*DERIV(CAC) GOTO 406 405 CONTINUE$ DEL(CAC)=-(OLDX-OLDA)*VW/DERIV(CAC) 406 CONTINUEGC VERY IMPORTANT TO CLAMP SIZE OF STEPS HERE SO WE DON'T WILDLY DIVERGEEHC IN EARLY GOING. SMALL STEPS TAKE LONGER BUT GET TO MINIMA; LARGER ONES6C WHERE WE DON'T KNOW FUNCTION SHAPE CAN BE DISASTERS.3 IF(DABS(DEL(CAC)).GT.VW)DEL(CAC)=VW*SIGN(DEL(CAC)) 6C NOW RESTORE AC'S TO OLD ONES AND VARY CURRENT ONE BYC THE NEW DELTA. IF(ACV(CAC).LE.0)GOTO 9900S6C NEXT LINE MAKES ADJUSTMENT NEEDED TO OUR VARYING AC.! AC(ACV(CAC))=OLDVV*(1.+DEL(CAC))VIC NOW COPY SAVED OLD AC'S ONTO NEW ONES SO WE START WITH AC'S ALL AS THEYMGC WERE IN FIRST STEP SO WE VARY FROM INITIAL X, NOT FROM FIRST VARIED XA C LOCATION... DO 204 N=1,26 XVAC=AC(N)T LLL=N ASSIGN 205 TO LPUTC GOTO 600= 205 CONTINUE 204 CONTINUEC MOVE ON TO THE NEXT CAC VALUET CAC=CAC+1# IF(ACV(CAC).LE.0.OR.CAC.GT.8)CAC=1 1000 CONTINUE!C SAVE OLD AC'S NOW FOR NEXT TIME DO 1100 N=1,26C LLL=N ASSIGN 1101 TO LGET GOTO 500T1101 AC(N)=XVACU 1100 CONTINUEC6C REMEMBER OLD X AND A VALUES SINCE WE LOOK FOR X=A AS6C A SEARCH CONDITION. WE MUST ASSUME THAT SOME SORT OF:C VARIATION OF ACCUMULATORS GIVEN WILL ALLOW US TO SATISFYC THE EQUATION (X-A)=0.N OLDX=AC(LX)' IF(ID2A.NE.1)CALL XVBLGT(LX,ID2A,OLDX)C"C IF(ID2A.NE.1)OLDX=XVBLS(LX,ID2A) OLDA=AC(LA)' IF(ID2B.NE.1)CALL XVBLGT(LA,ID2B,OLDA) "C IF(ID2B.NE.1)OLDA=XVBLS(LA,ID2B) RETURNR 9900 CONTINUE RETCD=3 RETURNE"C PROC TO LOAD XVAC WITH VBLS(LLL) 500 CONTINUE DO 501 KKKKN=1,8M501 LAC(KKKKN)=AVBLS(KKKKN,LLL) GOTO LGET#C PROC TO STORE XVAC INTO VBLS(LLL)W 600 CONTINUE DO 601 KKKKN=1,8C601 AVBLS(KKKKN,LLL)=LAC(KKKKN)D GOTO LPUT END REAL *8 FUNCTION SIGN(VAR)1 REAL*8 VAR07C ALWAYS RETURN 1. OR -1. FOR THIS PROGRAM ... NEVER 0.  SIGN=1. IF(VAR.LT.0.)SIGN=-1. RETURNO END#C COPYRIGHT (C) 1983 GLENN EVERHART9@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY.SC :C VT100 VIDEO DISPLAY COMMAND PROGRAM. CALLING SEQUENCE IS=C CALL UVT100(CMD,N1,N2), WHERE CMD IS ONE OF THE COMMANDS INAC THE PARAMETER LIST BELOW, AND N1 AND N2 ARE OPTIONAL PARAMETERS.DC DEPENDING UPON CMD. SEE THE UVT100 USER'S MANUAL FOR MORE DETAILS.CC AUTHOR: GLEN HOFFINGC DATE: 24-FEB-81N*C MODIFIED FOR PORTACALC BY GLENN EVERHA00b_%_^YTADATADATADATADATADATARTCT' SUBROUTINE UVT100 ( CMD, N1, N2 )O IMPLICIT INTEGER ( A - Z ) DIMENSION PRL ( 6 )0G PARAMETER CUP = 1, CUU = 2, CUD = 3, CUF = 4, CUB = 5, DECDWL = 6lG $, DECDHL = 7, DECRC = 8, DECSC = 9, DECSWL = 10, ED = 11, EL = 12NA $, SGR = 13, NEL = 14, SCS = 15, SM = 16, RM = 17, ANSI = 18 BYTE OUTBUF ( 16 ) OUTBUF ( 1 ) = 27' DO 20000 I = 2, 16  OUTBUF ( I ) = 020000 CONTINUE20001 CONTINUE+ IF (.NOT.( CMD .EQ. CUP )) GOTO 20002  OUTBUF ( 2 ) = 1H[; IF (.NOT.( N1 .GT. 0 . AND . N1 .LT. 25 )) GOTO 20004L' ENCODE ( 2, 10, OUTBUF ( 3 ) ) N1I20004 CONTINUE OUTBUF ( 5 ) = 1H;< IF (.NOT.( N2 .GT. 0 . AND . N2 .LT. 133 )) GOTO 20006( ENCODE ( 3, 105, OUTBUF ( 6 ) ) N220006 CONTINUE OUTBUF ( 9 ) = 1HH LEN = 9C GOTO 2000320002 CONTINUE+ IF (.NOT.( CMD .EQ. CUB )) GOTO 20008E OUTBUF ( 2 ) = 1H[< IF (.NOT.( N1 .GT. 0 . AND . N1 .LT. 133 )) GOTO 20010( ENCODE ( 3, 105, OUTBUF ( 3 ) ) N120010 CONTINUE OUTBUF ( 6 ) = 1HD LEN = 6C GOTO 2000920008 CONTINUE+ IF (.NOT.( CMD .EQ. CUD )) GOTO 20012  OUTBUF ( 2 ) = 1H[; IF (.NOT.( N1 .GT. 0 . AND . N1 .LT. 25 )) GOTO 20014E' ENCODE ( 2, 10, OUTBUF ( 3 ) ) N1R20014 CONTINUE OUTBUF ( 5 ) = 1HB LEN = 5E GOTO 2001320012 CONTINUE+ IF (.NOT.( CMD .EQ. CUF )) GOTO 20016R OUTBUF ( 2 ) = 1H[< IF (.NOT.( N1 .GT. 0 . AND . N1 .LT. 133 )) GOTO 20018( ENCODE ( 3, 105, OUTBUF ( 3 ) ) N120018 CONTINUE OUTBUF ( 6 ) = 1HC LEN = 6I GOTO 2001720016 CONTINUE+ IF (.NOT.( CMD .EQ. CUU )) GOTO 20020I OUTBUF ( 2 ) = 1H[; IF (.NOT.( N1 .GT. 0 . AND . N1 .LT. 25 )) GOTO 20022E' ENCODE ( 2, 10, OUTBUF ( 3 ) ) N1 20022 CONTINUE OUTBUF ( 5 ) = 1HA LEN = 5R GOTO 2002120020 CONTINUE. IF (.NOT.( CMD .EQ. DECDHL )) GOTO 20024 OUTBUF ( 2 ) = 1H#( IF (.NOT.( N1 .EQ. 1 )) GOTO 20026 OUTBUF ( 3 ) = 1H4 GOTO 2002720026 CONTINUE OUTBUF ( 3 ) = 1H320027 CONTINUE LEN = 3E GOTO 2002520024 CONTINUE. IF (.NOT.( CMD .EQ. DECDWL )) GOTO 20028 OUTBUF ( 2 ) = 1H# OUTBUF ( 3 ) = 1H6 LEN = 3  GOTO 2002920028 CONTINUE- IF (.NOT.( CMD .EQ. DECRC )) GOTO 20030) OUTBUF ( 2 ) = 1H8 LEN = 2O GOTO 2003120030 CONTINUE- IF (.NOT.( CMD .EQ. DECSC )) GOTO 20032N OUTBUF ( 2 ) = 1H7 LEN = 2T GOTO 2003320032 CONTINUE. IF (.NOT.( CMD .EQ. DECSWL )) GOTO 20034 OUTBUF ( 2 ) = 1H# OUTBUF ( 3 ) = 1H5 LEN = 3H GOTO 2003520034 CONTINUE* IF (.NOT.( CMD .EQ. ED )) GOTO 20036 OUTBUF ( 2 ) = 1H[( IF (.NOT.( N1 .EQ. 0 )) GOTO 20038 OUTBUF ( 3 ) = 1H0 GOTO 2003920038 CONTINUE( IF (.NOT.( N1 .EQ. 1 )) GOTO 20040 OUTBUF ( 3 ) = 1H1 GOTO 2004120040 CONTINUE OUTBUF ( 3 ) = 1H220041 CONTINUE20039 CONTINUE OUTBUF ( 4 ) = 1HJ LEN = 4G GOTO 2003720036 CONTINUE* IF (.NOT.( CMD .EQ. EL )) GOTO 20042 OUTBUF ( 2 ) = 1H[( IF (.NOT.( N1 .EQ. 0 )) GOTO 20044 OUTBUF ( 3 ) = 1H0 GOTO 2004520044 CONTINUE( IF (.NOT.( N1 .EQ. 2 )) GOTO 20046 OUTBUF ( 3 ) = 1H2 GOTO 2004720046 CONTINUE OUTBUF ( 3 ) = 1H120047 CONTINUE20045 CONTINUE OUTBUF ( 4 ) = 1HK LEN = 4) GOTO 2004320042 CONTINUE+ IF (.NOT.( CMD .EQ. SGR )) GOTO 20048E OUTBUF ( 2 ) = 1H[( IF (.NOT.( N1 .EQ. 7 )) GOTO 20050 OUTBUF ( 3 ) = 1H7 GOTO 2005120050 CONTINUE OUTBUF ( 3 ) = 1H020051 CONTINUE OUTBUF ( 4 ) = 1Hm OUTBUF ( 5 ) = 8 LEN = 5R GOTO 2004920048 CONTINUE+ IF (.NOT.( CMD .EQ. NEL )) GOTO 20052 OUTBUF ( 2 ) = 1HE LEN = 2L GOTO 2005320052 CONTINUE+ IF (.NOT.( CMD .EQ. SCS )) GOTO 20054D( IF (.NOT.( N1 .EQ. 0 )) 00j_n_^[Z[[[\[}GOTO 20056 OUTBUF ( 2 ) = 1H( GOTO 2005720056 CONTINUE OUTBUF ( 2 ) = 1H)20057 CONTINUE( IF (.NOT.( N2 .EQ. 0 )) GOTO 20058 OUTBUF ( 3 ) = 1HA GOTO 2005920058 CONTINUE( IF (.NOT.( N2 .EQ. 1 )) GOTO 20060 OUTBUF ( 3 ) = 1HB GOTO 2006120060 CONTINUE OUTBUF ( 3 ) = 1H020061 CONTINUE20059 CONTINUE LEN = 3T GOTO 2005520054 CONTINUE* IF (.NOT.( CMD .EQ. SM )) GOTO 20062 OUTBUF ( 2 ) = 1H[ OUTBUF ( 3 ) = 1H?; IF (.NOT.( N1 .GT. 0 . AND . N1 .LT. 10 )) GOTO 20064 & ENCODE ( 1, 5, OUTBUF ( 4 ) ) N120064 CONTINUE OUTBUF ( 5 ) = 1Hh LEN = 5 GOTO 2006320062 CONTINUE* IF (.NOT.( CMD .EQ. RM )) GOTO 20066 OUTBUF ( 2 ) = 1H[ OUTBUF ( 3 ) = 1H?; IF (.NOT.( N1 .GT. 0 . AND . N1 .LT. 10 )) GOTO 20068N& ENCODE ( 1, 5, OUTBUF ( 4 ) ) N120068 CONTINUE OUTBUF ( 5 ) = 1Hl LEN = 5D GOTO 2006720066 CONTINUE, IF (.NOT.( CMD .EQ. ANSI )) GOTO 20070 OUTBUF ( 2 ) = 1H< LEN = 2I20070 CONTINUE20067 CONTINUE20063 CONTINUE20055 CONTINUE20053 CONTINUE20049 CONTINUE20043 CONTINUE20037 CONTINUE20035 CONTINUE20033 CONTINUE20031 CONTINUE20029 CONTINUE20025 CONTINUE20021 CONTINUE20017 CONTINUE20013 CONTINUE20009 CONTINUE20003 CONTINUE DO 20072 I = 1, LEN4 IF (.NOT.( OUTBUF ( I ) .EQ. 1H )) GOTO 20074 OUTBUF ( I ) = 020074 CONTINUE20072 CONTINUE20073 CONTINUE"C CALL GETADR ( PRL, OUTBUF ) PRL ( 2 ) = LENK=C 4608 = OCTAL 11000 = IO.WLB. COULD REPLACE BY FORTRAN WRITEA;C BUT THIS IS FASTER FOR RSX. WRITES LEN BYTES FROM OUTBUF.&C TO LOGICAL UNIT 5 (USER'S TERMINAL).>C HERE LUN 6 IS USER'S TERMINAL TOO AND USED FOR OUTPUT SO USEC IT INSTEAD OF 5 HERE.B$ WRITE(6,400)(OUTBUF(KKK),KKK=1,LEN)400 FORMAT(128A1)(C CALL WTQIO ( 4608, 6, 20,,, PRL )5 FORMAT ( I1 )N10 FORMAT ( I2 ) 105 FORMAT(I3) RETURN END C#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY.C:C VT100 VIDEO DISPLAY COMMAND PROGRAM. CALLING SEQUENCE IS=C CALL UVT100(CMD,N1,N2), WHERE CMD IS ONE OF THE COMMANDS INAC THE PARAMETER LIST BELOW, AND N1 AND N2 ARE OPTIONAL PARAMETERSDC DEPENDING UPON CMD. SEE THE UVT100 USER'S MANUAL FOR MORE DETAILS.CCC VT52 VARIANT FOR PORTACALC ONLY. UVT100 COMPATIBLE (MORE OR LESS)EC THIS VERSION MAY BE USED AS A TEMPLATE FOR SCREENS LACKING REVERSECC VIDEO OR SIMILAR FEATURES. IT USES THE LEFTMOST COLUMN OF A CELLCC TO HOLD A SPECIAL CHARACTER (">" IN THIS CASE) TO INDICATE ONE'SCC POSITION ON THE SCREEN. BY MAIN FORCE & AWKWARDNESS IT WILL MOVE@C THIS AROUND WHEREVER NEEDED. ONLY ENTRIES CALLED BY PORTACALC&C ARE SUPPORTED HERE, MANY AS NO-OPS.>C NOTE THE REVERSE VIDEO ON THE TITLE PAGE IS LIKELY TO GETAC SOMEWHAT FOULED UP DUE TO THIS, WHICH IS JUST TOO BAD BUT WILLC NOT BE ADDRESSED HERE.9C THIS VERSION MAY BE USED ON PDP11 OR VAX; ITS OUTPUT IS*C STRICTLY FORTRAN I/O TO LOGICAL UNIT 6.CC AUTHOR: GLENN EVERHARTC' SUBROUTINE UVT100 ( CMD, N1, N2 ) IMPLICIT INTEGER ( A - Z ) INCLUDE 'VKLUGPRM.FTN'G PARAMETER CUP = 1, CUU = 2, CUD = 3, CUF = 4, CUB = 5, DECDWL = 6G $, DECDHL = 7, DECRC = 8, DECSC = 9, DECSWL = 10, ED = 11, EL = 12A $, SGR = 13, NEL = 14, SCS = 15, SM = 16, RM = 17, ANSI = 18 BYTE OUTBUF ( 8 ) LOGICAL*1 FVLD DIMENSION FVLD(RRWP,RCLP) COMMON /FVLDC/FVLD( INTEGER*2 PROW,PCOL,DROW,DCOL,DRWV,DCLV* COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRWV,DCLV LOGICAL*1 OUTSV(4),OUTBFF(4) INTEGER*2 S7FLG,SCFG!C SET INITIAL ESCAPE INTO BUFFER. OUTBUF ( 1 ) = 27 DO 20000 I = 2, 8 OUTBUF ( I ) = 020000 CONTINUE20001 CONTINUE IF(CMD.EQ.SCS)SCFG=0 IF(CMD.EQ.SCS)RETURN+ IF (.NOT.( CMD .EQ. CUP )) GOTO 20002&C CUP - CURSOR POSITION (VT52 VERSION)C Y 00r_y_^YTADATADATADATADATADATAOUTBUF ( 2 ) = 1HY; IF (.NOT.( N1 .GT. 0 . AND . N1 .LT. 25 )) GOTO 20004 OUTBUF(3)=N1+3120004 CONTINUE; IF (.NOT.( N2 .GT. 0 . AND . N2 .LT. 81 )) GOTO 20006 OUTBUF(4)=N2+3120006 CONTINUE LEN = 48C SAVE THIS COORD TILL NEXT TIME FOR MAYBE USE BY SGR(7) DO 151 N151=1,4151 OUTBFF(N151)=OUTBUF(N151) SCFG=1 GOTO 2000320002 CONTINUE* IF (.NOT.( CMD .EQ. ED )) GOTO 20036 SCFG=0 OUTBUF ( 2 ) = 1HH%C ERASE DISPLAY. ALWAYS ERASE IT ALL. OUTBUF(3)=27 OUTBUF(4)=1HJ LEN = 4 GOTO 2003720036 CONTINUE* IF (.NOT.( CMD .EQ. EL )) GOTO 20042 SCFG=0( IF (.NOT.( N1 .EQ. 0 )) GOTO 20044 OUTBUF(2)=1HK LEN=2 GOTO 2004320044 CONTINUE( IF (.NOT.( N1 .EQ. 2 )) GOTO 20046C N1=21109 OUTBUF(2)=1HD OUTBUF(3)=13 OUTBUF(4)=27 OUTBUF(5)=1HKC CR FIRST, THEN ERASE LINE LEN=5 GOTO 2004320046 CONTINUE GOTO 110920047 CONTINUE20045 CONTINUE LEN = 3 GOTO 2004320042 CONTINUE4C SGR - SET GRAPHICS RENDITION. SUPPORTS ARGS 7 OR 0C FOR REVERSE VIDEO/NORMALC (C FOR PORTACALC USE THE FOLLOWING LOGIC:C4C WHEN CALLED WITH ARG 7, SAVE LAST CURSOR POSITIONS3C CALLED AND KEEP AROUND, UNLESS FVLD IS 0 FOR THIS!C CELL (IN WHICH CASE DO NOTHING)2C WHEN CALLED WITH ARG 0, IF LAST CALL WAS ARG 7,0C THEN REPOSITION CURSOR TO SAVED LOCATIONS AND;C WRITE A CHARACTER TO LUN 6 (USE A ">" CHARACTER FOR NOW)3C THEN REPOSITION ONCE MORE TO THE SAVED POSITION.CC THIS SIMULATES ACTION OF REVERSE VIDEO WHERE NONE IS AVAILABLE=C BY AT LEAST PUTTING A ">" CHARACTER OUT AT CURRENT CELL.C+ IF (.NOT.( CMD .EQ. SGR )) GOTO 20048( IF (.NOT.( N1 .EQ. 7 )) GOTO 20050 IF(SCFG.NE.1)RETURNC ARG=7! IF(PROW.LE.0.OR.PCOL.LE.0)RETURN% IF(PROW.GT.RRW.OR.PCOL.GT.RCL)RETURN"C CALL FVLDGT(PROW,PCOL,FVLD(1,1))C IF(FVLD(1,1).EQ.0)RETURN)C KNOW NOW THAT WE HAVE A VALID LOCATION. DO 150 N150=1,4150 OUTSV(N150)=OUTBFF(N150) S7FLG=1C FLAGS SAVED COORDS AND4C SAVES LAST OUTPUT BUFFER AND LENGTH FOR LATER USE.HC NOTHING MORE TO DO HERE; JUST EMIT THE DATA WHEN WE ARE CALLED ON TO. RETURN20050 CONTINUEC ARG=020051 CONTINUE IF(SCFG.NE.1)RETURN IF(S7FLG.NE.1)RETURN WRITE(6,1100)(OUTSV(IV),IV=1,4)1100 FORMAT(4A1) WRITE(6,1101)1101 FORMAT('>')"C SPECIAL POINTER CHARACTER IS ">"!C WRITE(6,1100)(OUTSV(IV),IV=1,4)(C REPOSITION CURSOR TO INITIAL POSITION.C FLAG NO REVERSE MODE NOW S7FLG=0%C RETURN CURSOR TO LAST SET LOCATION.! WRITE(6,1100)(OUTBFF(IV),IV=1,4) RETURN20048 CONTINUE* IF (.NOT.( CMD .EQ. SM )) GOTO 20062 SCFG=0C IGNORE SET MODES RETURN20062 CONTINUE* IF (.NOT.( CMD .EQ. RM )) GOTO 20066 SCFG=0C IGNORE RESET MODES RETURN20066 CONTINUE, IF (.NOT.( CMD .EQ. ANSI )) GOTO 20070 SCFG=0C ANSI MODE DOES NOTHING. RETURN20070 CONTINUE20067 CONTINUE20063 CONTINUE20055 CONTINUE20053 CONTINUE20049 CONTINUE20043 CONTINUE20037 CONTINUE20035 CONTINUE20033 CONTINUE20031 CONTINUE20029 CONTINUE20025 CONTINUE20021 CONTINUE20017 CONTINUE20013 CONTINUE20009 CONTINUE20003 CONTINUE20072 CONTINUE20073 CONTINUE# WRITE(6,1105)(OUTBUF(IV),IV=1,LEN)1105 FORMAT(16A1)5 FORMAT ( I1 )10 FORMAT ( I2 )105 FORMAT(I3) RETURN END#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY.C:C VT100 VIDEO DISPLAY COMMAND PROGRAM. CALLING SEQUENCE IS#C CALL UVT100(CMD,N1,N2THE MANDS INAC THE PARAMETER LIST BELOW, AND N1 AND N2 ARE OPTIONAL PARAMETERSDC DEPENDING UPON CMD. SEE THE UVT100 USER'S MANUAL FOR MORE DETAILS.CC/C THIS VERSION MODIFIED FOR USE WITH PORTACALC.EC ENTRIES NOT USED ARE DELETED, AND ALSO CODE ADDED TO 00z_n_^[Z[[[\[}SUPPORT COLOREC CRT'S THAT ARE BASICALLY VT100-LIKE WITH EXTENSIONS, OR VT100'S ORC EMULATORS WITH AVO OPTION.C C OPERATION:AC ON B+W VT100'S (WITH ADVANCED VIDEO), THE SET GRAPHICS CODESC WILL BE USED AS FOLLOWS:+C ALTERNATE ROWS WILL BE DISPLAYED IN BOLD8C (ROW 3 TO 22 ONLY HOWEVER; THE REST IS NOT MATH AREA)FC COMMAND AND DISPLAY ROWS (23 AND 24 NORMALLY) WILL BE BOLDED ALWAYS.CC IN COLOR MODE:-C ON ED, SET BACKGROUND COLOR TO DARK BLUE2C ALTERNATE ROWS WILL BE SET TO YELLOW OR GREENDC COLUMN LABEL ROW, LABEL ROW, AND ROW LABELS, AND COMMAND PROMPTS,?C IN A DIFFERENT COLOR FOR EACH. DETERMINED AND SET AT TIME OFC CALL TO CURSOR POSITION.CC AUTHOR: GLENN EVERHARTC' SUBROUTINE UVT100 ( CMD, N1, N2 ) IMPLICIT INTEGER ( A - Z ) INCLUDE 'VKLUGPRM.FTN' DIMENSION PRL ( 6 )G PARAMETER CUP = 1, CUU = 2, CUD = 3, CUF = 4, CUB = 5, DECDWL = 6G $, DECDHL = 7, DECRC = 8, DECSC = 9, DECSWL = 10, ED = 11, EL = 12A $, SGR = 13, NEL = 14, SCS = 15, SM = 16, RM = 17, ANSI = 18DC NOTE WE DECLARE THESE VARIABLES USED IN PORTACALC. THEY ARE ALL INFC COMMONS, SO WE ADD NOTHING TO LENGTH OF THIS PROGRAM BY ADDING THEM. LOGICAL*1 FVLD DIMENSION FVLD(RRWP,RCLP) COMMON /FVLDC/FVLD( INTEGER*2 PROW,PCOL,DROW,DCOL,DRWV,DCLV* COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRWV,DCLV" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9) REAL*8 XVBLS(RRWP,RCLP)) LOGICAL*1 AVBLS(20,27),VBLS(8,RRWP,RCLP)$ EQUIVALENCE(XVBLS(1,1),VBLS(1,1,1)) COMMON/V/TYPE,AVBLS,VBLS,VLENBC ICPOS COMMON HAS PHYS COORDS BEING DISPLAYED. MUST QUERY FVLD TO4C SEE WHETHER TO INTENSIFY THE FIELD FOR NEGATIVE... INTEGER*2 IC1POS,IC2POS COMMON/ICPOS/IC1POS,IC2POS+C CONTROLS TO SET VARIOUS VISUAL ATTRIBUTESC NORMAL, BOLD INTEGER*2 N1SV,N2SV,NNFG,N222 LOGICAL*1 CLSV(9),ULIT(8)4 LOGICAL*1 NORMIT(4),BOLDIT(8),OUTBUF(16),BOLDUL(10) DATA N222/0/>C OMIT THE UNDERLINING ... GETS IN THE WAY FOR USER FORMATTING+C LEAVE IN THE BOLDING FOR NEGATIVE NUMBERS3 DATA BOLDUL/27,'[','0','m',27,'[','1',';','1','m'/4C DATA BOLDUL/27,'[','0','m',27,'[','1',';','4','m'/ DATA NORMIT/27,'[','0','m'/GC SET ATTRIBUTE 4 (UNDERLINE) RATHER THAN 1 (BOLD) FOR ALTERNATE LINES.) DATA ULIT/27,'[','0','m',27,'[','1','m'/,C DATA BOLDIT/27,'[','0','m',27,'[','4','m'/+ DATA BOLDIT/27,'[','0','m',27,'[','0','m'/ OUTBUF ( 1 ) = 27 DO 20000 I = 2, 16 OUTBUF ( I ) = 020000 CONTINUE20001 CONTINUE+ IF (.NOT.( CMD .EQ. CUP )) GOTO 20002C CURSOR POSITION.'C SHIP OUT APPROPRIATE CHARACTERISTICS. N1CP=N1% IF(N1.LT.3.OR.N1.GE.LCMDR) GOTO 1500#C HERE WE ARE IN DISPLAY ROW RANGE.C*C SEE IF N2=1. IF SO FLAG AND SAVE COORDS.$C DO THIS TO TRY TO SHIP OUT COORDS. IF(N2.NE.1)GOTO 1655?C DON'T TRY TO DISPLAY DISPLAY ROW # IF > 99 ROWS; WE'D CLOBBER%C PART OF ROW # IN DISPLAY IF WE DID. NN=RCL# IF(NNFG.EQ.0.OR.NN.GT.99)GOTO 16671C GO BACK TO LAST LOC. AND DRAW NUMBER LABELS IN. WRITE(6,1105)CLSV NN=N1SV-2 IF(NN.GT.0)WRITE(6,1106)NN1106 FORMAT(I2,':')C THEN ON TO SET UP LOCATION. 1667 CONTINUE NNFG=N222 N1SV=N1 N2SV=N2 GOTO 1656 1655 CONTINUE NNFG=0 1656 CONTINUE?C NO CHECK FOR AVO ON COLUMNS (NOT ENOUGH VARIATIONS AVAILABLE)C THUS JUST DECIDE ON C 1. BOLDING NBD=0 NUL=0"C SEE IF WE NEED TO BOLD (SET NUL)% CALL FVLDGT(IC1POS,IC2POS,FVLD(1,1))& CALL XVBLGT(IC1POS,IC2POS,XVBLS(1,1)) IF(FVLD(1,1).LE.0)GOTO 1754 IF(XVBLS(1,1).LT.0.)NUL=1 1754 CONTINUE NNR=N1/2 NNR=NNR*2 IF(NNR.NE.N1)NBD=1 IF(N2.LE.1)NBD=0CC NOW HAVE ALL SET UP, NUL=1 IF BOLDING, NBD=1 IF UNDERLINE NEEDED.6C NEVER BOLD 1ST COLUMN ON SCREEN...LABELS ONLY THERE. IF(N2.EQ.1)GOTO 1500- IF(NUL.EQ.0.AND.NBD.EQ.0)WRITE(6,1105)NORMIT- IF(NUL.EQ.0.AND.NBD.EQ.1)WRITE(6,1105)BOLDIT+ IF(NUL.EQ.1.AND.NBD.EQ.0)WRITE(6,1105)ULIT- IF(NUL.EQ.1.AND.NBD.EQ.1)WRITE(6,1105)BOLDUL 1500 CONTINUE OUTBUF ( 2 ) = 1H[; IF (.NOT.( N1 .GT. 0 . AND . N1 .LT. 25 )) GOTO 20004' ENCODE ( 2, 10, OUTBUF ( 3 ) ) N120004 CONT00__^YTADATADATADATADATADATAINUE OUTBUF ( 5 ) = 1H;< IF (.NOT.( N2 .GT. 0 . AND . N2 .LT. 133 )) GOTO 20006( ENCODE ( 3, 105, OUTBUF ( 6 ) ) N220006 CONTINUE OUTBUF ( 9 ) = 1HH LEN = 9 IF(N2.NE.1)GOTO 20003% IF(N1.LE.2.OR.N1.GE.LCMDR)GOTO 200032C SAVE LAST COORD BUFFER WHERE COL 1 WAS SELECTED. DO 1670 NN=1,9 NNK=OUTBUF(NN)C CONVERT SPACES TO ZEROES IF(NNK.EQ.32)NNK=481670 CLSV(NN)=NNK GOTO 2000320002 CONTINUE* IF (.NOT.( CMD .EQ. ED )) GOTO 20036C ERASE DISPLAY NNFG=0 N222=0 OUTBUF ( 2 ) = 1H[( IF (.NOT.( N1 .EQ. 0 )) GOTO 20038 OUTBUF ( 3 ) = 1H0 GOTO 2003920038 CONTINUE( IF (.NOT.( N1 .EQ. 1 )) GOTO 20040 OUTBUF ( 3 ) = 1H1 GOTO 2004120040 CONTINUE OUTBUF ( 3 ) = 1H220041 CONTINUE20039 CONTINUE OUTBUF ( 4 ) = 1HJ LEN = 4 GOTO 2003720036 CONTINUE* IF (.NOT.( CMD .EQ. EL )) GOTO 20042 C ERASE LINE N222=0 NNFG=0 OUTBUF ( 2 ) = 1H[( IF (.NOT.( N1 .EQ. 0 )) GOTO 20044 OUTBUF ( 3 ) = 1H0 GOTO 2004520044 CONTINUE( IF (.NOT.( N1 .EQ. 2 )) GOTO 20046 OUTBUF ( 3 ) = 1H2 GOTO 2004720046 CONTINUE OUTBUF ( 3 ) = 1H120047 CONTINUE20045 CONTINUE OUTBUF ( 4 ) = 1HK LEN = 4 GOTO 2004320042 CONTINUE+ IF (.NOT.( CMD .EQ. SGR )) GOTO 20048GC SET GRAPHICS RENDITION (7=REVERSE VIDEO, 0=NORMAL,4=UNDERSCORE,1=BOLD9C 5=BLINK) (PORTACALC CALLS WITH 0 OR 7 (VT100 W/O AVO)) OUTBUF ( 2 ) = 1H[( IF (.NOT.( N1 .EQ. 7 )) GOTO 20050 OUTBUF ( 3 ) = 1H7 IF(N1CP.EQ.2)N222=1 GOTO 2005120050 CONTINUE OUTBUF ( 3 ) = 1H0 IF(NNFG.EQ.0)GOTO 1672 NNFG=0 WRITE(6,1105)CLSV NN=N1SV-2 IV=RCL( IF(NN.GT.0.AND.IV.LT.99)WRITE(6,1106)NN 1672 CONTINUE20051 CONTINUE OUTBUF ( 4 ) = 1Hm OUTBUF ( 5 ) = 8 LEN = 5 GOTO 2004920048 CONTINUE+ IF (.NOT.( CMD .EQ. SCS )) GOTO 20054)C SCS. IGNORE THIS ... NEVER REALLY USED. RETURN20054 CONTINUE* IF (.NOT.( CMD .EQ. SM )) GOTO 20062C SET MODE. IGNORE. RETURN+20062 IF (.NOT.( CMD .EQ. RM )) GOTO 20066C RESET MODE. IGNORE. RETURN20066 CONTINUE, IF (.NOT.( CMD .EQ. ANSI )) GOTO 20070CC ANSI MODE. LEAVE IN, ENSURING VT100'S HANDLE ANSI ESC. SEQUENCES. OUTBUF ( 2 ) = 1H< LEN = 220070 CONTINUE20049 CONTINUE20043 CONTINUE20037 CONTINUE20003 CONTINUE(C THIS LOOP NULLS ALL SPACES STILL IN...=C IT HAS TO GO IF YOU CONVERT FOR OTHER TERMINALS GENERALLY. DO 20072 I = 1, LEN4 IF (.NOT.( OUTBUF ( I ) .EQ. 1H )) GOTO 20074 OUTBUF ( I ) = 020074 CONTINUE20072 CONTINUE20073 CONTINUEHC USE A FORTRAN WRITE SO THIS WILL WORK ON VAX OR PDP11 (OR WHATEVER...)!C UNIT 6 MUST BE THE TERMINAL...# WRITE(6,1105)(OUTBUF(IV),IV=1,LEN)1105 FORMAT(16A1)5 FORMAT ( I1 )10 FORMAT ( I2 )105 FORMAT(I3) RETURN END1C COPYRIGHT (C) 1983, 1984, 1985 GLENN C EVERHARTC ALL RIGHTS RESERVED@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY.C:C VT100 VIDEO DISPLAY COMMAND PROGRAM. CALLING SEQUENCE IS=C CALL UVT100(CMD,N1,N2), WHERE CMD IS ONE OF THE COMMANDS INAC THE PARAMETER LIST BELOW, AND N1 AND N2 ARE OPTIONAL PARAMETERSDC DEPENDING UPON CMD. SEE THE UVT100 USER'S MANUAL FOR MORE DETAILS.CC/C THIS VERSION MODIFIED FOR USE WITH PORTACALC.EC ENTRIES NOT USED ARE DELETED, AND ALSO CODE ADDED TO SUPPORT COLOREC CRT'S THAT ARE BASICALLY VT100-LIKE WITH EXTENSIONS, OR VT100'S ORC EMULATORS WITH AVO OPTION.C C OPERATION:AC ON B+W VT100'S (WITH ADVANCED VIDEO), THE SET GRAPHICS CODESC WILL BE USED AS FOLLOWS:+C ALTERNATE ROWS WILL BE DISPLAYED IN BOLD8C (ROW 3 TO 22 ONLY HOWEVER; THE REST IS NOT MATH AREA)FC COMMAND AND DISPLAY ROWS (23 AND 24 NORMALLY) WILL BE BOLDED ALWAYS.CC IN COLOR MODE:-C ON ED, 00_n_^[Z[[[\[}SET BACKGROUND COLOR TO DARK BLUE2C ALTERNATE ROWS WILL BE SET TO YELLOW OR GREENDC COLUMN LABEL ROW, LABEL ROW, AND ROW LABELS, AND COMMAND PROMPTS,?C IN A DIFFERENT COLOR FOR EACH. DETERMINED AND SET AT TIME OFC CALL TO CURSOR POSITION.CC AUTHOR: GLENN EVERHARTC' SUBROUTINE UVT100 ( CMD, N1, N2 ) IMPLICIT INTEGER ( A - Z ) INCLUDE 'VKLUGPRM.FTN' DIMENSION PRL ( 6 )G PARAMETER CUP = 1, CUU = 2, CUD = 3, CUF = 4, CUB = 5, DECDWL = 6G $, DECDHL = 7, DECRC = 8, DECSC = 9, DECSWL = 10, ED = 11, EL = 12A $, SGR = 13, NEL = 14, SCS = 15, SM = 16, RM = 17, ANSI = 18DC NOTE WE DECLARE THESE VARIABLES USED IN PORTACALC. THEY ARE ALL INFC COMMONS, SO WE ADD NOTHING TO LENGTH OF THIS PROGRAM BY ADDING THEM. LOGICAL*1 FVLD DIMENSION FVLD(RRWP,RCLP) COMMON /FVLDC/FVLD( INTEGER*2 PROW,PCOL,DROW,DCOL,DRWV,DCLV* COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRWV,DCLV" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9) REAL*8 XVBLS(RRWP,RCLP)) LOGICAL*1 AVBLS(20,27),VBLS(8,RRWP,RCLP)$ EQUIVALENCE(XVBLS(1,1),VBLS(1,1,1)) INTEGER*2 N1S,N2S COMMON/V/TYPE,AVBLS,VBLS,VLENBC ICPOS COMMON HAS PHYS COORDS BEING DISPLAYED. MUST QUERY FVLD TO4C SEE WHETHER TO INTENSIFY THE FIELD FOR NEGATIVE... INTEGER*2 IC1POS,IC2POS COMMON/ICPOS/IC1POS,IC2POS BYTE OUTBUF ( 16 )+C CONTROLS TO SET VARIOUS VISUAL ATTRIBUTESC NORMAL, BOLD. LOGICAL*1 YONB(12),GONR(12),RONG(12),BONY(12). LOGICAL*1 GONB(12),RONB(12),BONR(12),RONY(12) LOGICAL*1 BONG(12)C TOP LINE YELLOW ON BLUE6C NEXT LINE NORMAL:GREEN ON RED, REVERSED:RED ON GREEN)C COL 1 ROWS 3-LCMDR: NORMAL B/Y, REV G/B4C SHEET AREA: IF NUMBER =>0, Y/B NORMAL,B/Y REVERSED.C IF NUMBER < 0, R/B NORMAL,B/R REVERSED C LCMDR: G/R C LDSPR: Y/B7 DATA YONB/27,'[',0,'m',27,'[','1','4',';','2','1','m'/7 DATA GONR/27,'[',0,'m',27,'[','1','3',';','2','2','m'/7 DATA RONG/27,'[',0,'m',27,'[','1','2',';','2','3','m'/7 DATA BONY/27,'[',0,'m',27,'[','1','1',';','2','4','m'/7 DATA BONG/27,'[',0,'m',27,'[','1','1',';','2','3','m'/7 DATA GONB/27,'[',0,'m',27,'[','1','3',';','2','1','m'/7 DATA RONB/27,'[',0,'m',27,'[','1','2',';','2','1','m'/7 DATA BONR/27,'[',0,'m',27,'[','1','1',';','2','2','m'/7 DATA RONY/27,'[',0,'m',27,'[','1','2',';','2','4','m'/"C COLOR SCHEME CODED DATA ABOVE...C BYTE OUTBUF ( 16 ) OUTBUF ( 1 ) = 27 DO 20000 I = 2, 16 OUTBUF ( I ) = 020000 CONTINUE20001 CONTINUE+ IF (.NOT.( CMD .EQ. CUP )) GOTO 20002C CURSOR POSITION.'C SHIP OUT APPROPRIATE CHARACTERISTICS. N1S=N1 N2S=N2 IF(N1.EQ.1)WRITE(6,1105)YONB9 IF(N1.GT.2.AND.N1.LT.LCMDR.AND.N2.EQ.1)WRITE(6,1105)BONG) IF(N1.EQ.2.AND.N2.EQ.1)WRITE(6,1105)RONG! IF(N1.EQ.LCMDR)WRITE(6,1105)GONR! IF(N1.EQ.LDSPR)WRITE(6,1105)YONB) IF(N2.GT.1.AND.N1.EQ.2)WRITE(6,1105)RONY% IF(N1.LT.3.OR.N1.GE.LCMDR) GOTO 1500 IF(N2.LE.1)GOTO 1500#C HERE WE ARE IN DISPLAY ROW RANGE.?C NO CHECK FOR AVO ON COLUMNS (NOT ENOUGH VARIATIONS AVAILABLE) NN=0% CALL FVLDGT(IC1POS,IC2POS,FVLD(1,1))& CALL XVBLGT(IC1POS,IC2POS,XVBLS(1,1)) IF(FVLD(1,1).NE.0.AND. 1 XVBLS(1,1).LT.0.)NN=1 IF(NN.EQ.0)WRITE(6,1105)YONB IF(NN.NE.0)WRITE(6,1105)RONB=C ALWAYS SET NORMAL YELLOW ON BLUE DISPLAY HERE. SGR AREA MAY!C MODIFY THIS, DEPENDING ON AREA. 1500 CONTINUE OUTBUF ( 2 ) = 1H[; IF (.NOT.( N1 .GT. 0 . AND . N1 .LT. 25 )) GOTO 20004' ENCODE ( 2, 10, OUTBUF ( 3 ) ) N120004 CONTINUE OUTBUF ( 5 ) = 1H;< IF (.NOT.( N2 .GT. 0 . AND . N2 .LT. 133 )) GOTO 20006( ENCODE ( 3, 105, OUTBUF ( 6 ) ) N220006 CONTINUE OUTBUF ( 9 ) = 1HH LEN = 9 GOTO 2000320002 CONTINUE* IF (.NOT.( CMD .EQ. ED )) GOTO 20036C ERASE DISPLAY WRITE(6,1105)YONB N1S=0 N2S=0 OUTBUF ( 2 ) = 1H[( IF (.NOT.( N1 .EQ. 0 )) GOTO 20038 OUTBUF ( 3 ) = 1H0 GOTO 2003920038 CONTINUE( IF (.NOT.( N1 .EQ. 1 )) GOTO 20040 OUTBUF ( 3 ) = 1H1 GOTO 2004120040 CONTINUE OUTBUF ( 3 ) = 1H220041 CONTINUE20039 CONTINUE 00__^YTADATADATADATADATADATA OUTBUF ( 4 ) = 1HJ LEN = 4 GOTO 2003720036 CONTINUE* IF (.NOT.( CMD .EQ. EL )) GOTO 20042 C ERASE LINE OUTBUF ( 2 ) = 1H[( IF (.NOT.( N1 .EQ. 0 )) GOTO 20044 OUTBUF ( 3 ) = 1H0 GOTO 2004520044 CONTINUE( IF (.NOT.( N1 .EQ. 2 )) GOTO 20046 OUTBUF ( 3 ) = 1H2 GOTO 2004720046 CONTINUE OUTBUF ( 3 ) = 1H120047 CONTINUE20045 CONTINUE OUTBUF ( 4 ) = 1HK LEN = 4 GOTO 2004320042 CONTINUE+ IF (.NOT.( CMD .EQ. SGR )) GOTO 20048GC SET GRAPHICS RENDITION (7=REVERSE VIDEO, 0=NORMAL,4=UNDERSCORE,1=BOLD9C 5=BLINK) (PORTACALC CALLS WITH 0 OR 7 (VT100 W/O AVO))C OUTBUF ( 2 ) = 1H[( IF (.NOT.( N1 .EQ. 7 )) GOTO 200504C SGR 7, I.E., REVERSE VIDEO. SPECIAL COLOR VERSION.& IF(N1S.LE.1.OR.N1S.GE.LCMDR)GOTO 1933 GOTO 1934 1933 CONTINUE+C ROW 1 OR ROWS 23,24 REVERSE: RED ON GREEN WRITE(6,1105)RONG N1S=0 N2S=0 RETURN 1934 CONTINUE IF(N1S.EQ.2)GOTO 1935 GOTO 1936 1935 CONTINUEC ROW 2 WRITE(6,1105)RONG N1S=0 N2S=0 RETURN 1936 CONTINUE IF(N2S.LE.1)GOTO 1937 GOTO 1938 1937 CONTINUEC ROW 3-LCMDR-1 WRITE(6,1105)GONB N1S=0 N2S=0 RETURN 1938 CONTINUE NN=0% CALL FVLDGT(IC1POS,IC2POS,FVLD(1,1))& CALL XVBLGT(IC1POS,IC2POS,XVBLS(1,1))( IF(FVLD(1,1).NE.0.AND.XVBLS(1,1).LT.0.) 1 NN=13C NN TELLS WHETHER TO USE RED OR NOT IN THIS REGION IF(NN.EQ.0)WRITE(6,1105)BONY IF(NN.NE.0)WRITE(6,1105)BONR N1S=0 N2S=0 RETURN20050 CONTINUEC SET NORMAL VIDEO AGAIN...& IF(N1S.LE.1.OR.N1S.GE.LDSPR)GOTO 2934 GOTO 2935 2934 CONTINUE0C NOTE THIS MUST BE SAME AS ERASE SCREEN COLO4R. IF(N1S.NE.0)WRITE(6,1105)YONB N1S=0 N2S=0 RETURN 2935 CONTINUE& IF(N1S.EQ.2.OR.N1S.EQ.LCMDR)GOTO 2936 GOTO 2937 2936 CONTINUE WRITE(6,1105)GONR N1S=0 N2S=0 RETURN 2937 CONTINUE IF(N2S.LE.1)GOTO 2938 GOTO 2939 2938 CONTINUE WRITE(6,1105)BONY N1S=0 N2S=0 RETURN 2939 CONTINUE NN=0% CALL FVLDGT(IC1POS,IC2POS,FVLD(1,1))& CALL XVBLGT(IC1POS,IC2POS,XVBLS(1,1))( IF(FVLD(1,1).NE.0.AND.XVBLS(1,1).LT.0.) 1 NN=13C NN TELLS WHETHER TO USE RED OR NOT IN THIS REGION IF(NN.EQ.0)WRITE(6,1105)YONB IF(NN.NE.0)WRITE(6,1105)RONB N1S=0 N2S=020051 CONTINUE RETURN20048 CONTINUE+ IF (.NOT.( CMD .EQ. SCS )) GOTO 20054)C SCS. IGNORE THIS ... NEVER REALLY USED. RETURN20054 CONTINUE* IF (.NOT.( CMD .EQ. SM )) GOTO 20062C SET MODE. IGNORE. RETURN+20062 IF (.NOT.( CMD .EQ. RM )) GOTO 20066C RESET MODE. IGNORE. RETURN20066 CONTINUE, IF (.NOT.( CMD .EQ. ANSI )) GOTO 20070CC ANSI MODE. LEAVE IN, ENSURING VT100'S HANDLE ANSI ESC. SEQUENCES. OUTBUF ( 2 ) = 1H< LEN = 220070 CONTINUE20049 CONTINUE20043 CONTINUE20037 CONTINUE20003 CONTINUE(C THIS LOOP NULLS ALL SPACES STILL IN...=C IT HAS TO GO IF YOU CONVERT FOR OTHER TERMINALS GENERALLY. DO 20072 I = 1, LEN4 IF (.NOT.( OUTBUF ( I ) .EQ. 1H )) GOTO 20074 OUTBUF ( I ) = 020074 CONTINUE20072 CONTINUE20073 CONTINUEHC USE A FORTRAN WRITE SO THIS WILL WORK ON VAX OR PDP11 (OR WHATEVER...)!C UNIT 6 MUST BE THE TERMINAL...# WRITE(6,1105)(OUTBUF(IV),IV=1,LEN)1105 FORMAT(16A1)5 FORMAT ( I1 )10 FORMAT ( I2 )105 FORMAT(I3) RETURN END1C COPYRIGHT (C) 1983, 1984, 1985 GLENN C EVERHARTC ALL RIGHTS RESERVED@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY.C:C VT100 VIDEO DISPLAY COMMAND PROGRAM. CALLING SEQUENCE IS=C CALL UVT100(CMD,N1,N2), WHERE CMD IS ONE OF THE COMMANDS INAC THE PARAMETER LIST BELOW, AND N1 AND N2 ARE OPTIONAL PARAMETERSDC DEPENDING UPON CMD. SEE THE UVT100 USER'S MANUAL FOR MORE DETAILS.CC/C THIS VERSION MODIFIED FOR USE WITH PORTA00_n_^[Z[[[\[}CALC.EC ENTRIES NOT USED ARE DELETED, AND ALSO CODE ADDED TO SUPPORT COLOREC CRT'S THAT ARE BASICALLY VT100-LIKE WITH EXTENSIONS, OR VT100'S ORC EMULATORS WITH AVO OPTION.C C OPERATION:AC ON B+W VT100'S (WITH ADVANCED VIDEO), THE SET GRAPHICS CODESC WILL BE USED AS FOLLOWS:+C ALTERNATE ROWS WILL BE DISPLAYED IN BOLD8C (ROW 3 TO 22 ONLY HOWEVER; THE REST IS NOT MATH AREA)FC COMMAND AND DISPLAY ROWS (23 AND 24 NORMALLY) WILL BE BOLDED ALWAYS.CC IN COLOR MODE:-C ON ED, SET BACKGROUND COLOR TO DARK BLUE2C ALTERNATE ROWS WILL BE SET TO YELLOW OR GREENDC COLUMN LABEL ROW, LABEL ROW, AND ROW LABELS, AND COMMAND PROMPTS,?C IN A DIFFERENT COLOR FOR EACH. DETERMINED AND SET AT TIME OFC CALL TO CURSOR POSITION.CC AUTHOR: GLENN EVERHARTC' SUBROUTINE UVT100 ( CMD, N1, N2 ) IMPLICIT INTEGER ( A - Z ) INCLUDE 'VKLUGPRM.FTN' DIMENSION PRL ( 6 )G PARAMETER CUP = 1, CUU = 2, CUD = 3, CUF = 4, CUB = 5, DECDWL = 6G $, DECDHL = 7, DECRC = 8, DECSC = 9, DECSWL = 10, ED = 11, EL = 12A $, SGR = 13, NEL = 14, SCS = 15, SM = 16, RM = 17, ANSI = 18DC NOTE WE DECLARE THESE VARIABLES USED IN PORTACALC. THEY ARE ALL INFC COMMONS, SO WE ADD NOTHING TO LENGTH OF THIS PROGRAM BY ADDING THEM. LOGICAL*1 FVLD DIMENSION FVLD(RRWP,RCLP) COMMON /FVLDC/FVLD( INTEGER*2 PROW,PCOL,DROW,DCOL,DRWV,DCLV INTEGER*2 LLCMD,LLDSP6 COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRWV,DCLV,LLCMD,LLDSP" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9) REAL*8 XVBLS(RRWP,RCLP)) LOGICAL*1 AVBLS(20,27),VBLS(8,RRWP,RCLP)$ EQUIVALENCE(XVBLS(1,1),VBLS(1,1,1)) INTEGER*2 N1S,N2S COMMON/V/TYPE,AVBLS,VBLS,VLENBC ICPOS COMMON HAS PHYS COORDS BEING DISPLAYED. MUST QUERY FVLD TO4C SEE WHETHER TO INTENSIFY THE FIELD FOR NEGATIVE... INTEGER*2 IC1POS,IC2POS COMMON/ICPOS/IC1POS,IC2POS BYTE OUTBUF ( 16 )+C CONTROLS TO SET VARIOUS VISUAL ATTRIBUTESC NORMAL, BOLD. LOGICAL*1 YONB(12),GONR(12),RONG(12),BONY(12). LOGICAL*1 GONB(12),RONB(12),BONR(12),RONY(12) LOGICAL*1 BONG(12)C TOP LINE YELLOW ON BLUE6C NEXT LINE NORMAL:GREEN ON RED, REVERSED:RED ON GREEN)C COL 1 ROWS 3-LCMDR: NORMAL B/Y, REV G/B4C SHEET AREA: IF NUMBER =>0, Y/B NORMAL,B/Y REVERSED.C IF NUMBER < 0, R/B NORMAL,B/R REVERSED C LCMDR: G/R C LLDSP: Y/B7 DATA YONB/27,'[',0,'m',27,'[','1','4',';','2','1','m'/7 DATA GONR/27,'[',0,'m',27,'[','1','3',';','2','2','m'/7 DATA RONG/27,'[',0,'m',27,'[','1','2',';','2','3','m'/7 DATA BONY/27,'[',0,'m',27,'[','1','1',';','2','4','m'/7 DATA BONG/27,'[',0,'m',27,'[','1','1',';','2','3','m'/7 DATA GONB/27,'[',0,'m',27,'[','1','3',';','2','1','m'/7 DATA RONB/27,'[',0,'m',27,'[','1','2',';','2','1','m'/7 DATA BONR/27,'[',0,'m',27,'[','1','1',';','2','2','m'/7 DATA RONY/27,'[',0,'m',27,'[','1','2',';','2','4','m'/"C COLOR SCHEME CODED DATA ABOVE...C BYTE OUTBUF ( 16 ) OUTBUF ( 1 ) = 27 DO 20000 I = 2, 16 OUTBUF ( I ) = 020000 CONTINUE20001 CONTINUE+ IF (.NOT.( CMD .EQ. CUP )) GOTO 20002C CURSOR POSITION.'C SHIP OUT APPROPRIATE CHARACTERISTICS. N1S=N1 N2S=N2 IF(N1.EQ.1)WRITE(6,1105)YONB9 IF(N1.GT.2.AND.N1.LT.LLCMD.AND.N2.EQ.1)WRITE(6,1105)BONG) IF(N1.EQ.2.AND.N2.EQ.1)WRITE(6,1105)RONG! IF(N1.EQ.LLCMD)WRITE(6,1105)GONR! IF(N1.EQ.LLDSP)WRITE(6,1105)YONB) IF(N2.GT.1.AND.N1.EQ.2)WRITE(6,1105)RONY% IF(N1.LT.3.OR.N1.GE.LLCMD) GOTO 1500 IF(N2.LE.1)GOTO 1500#C HERE WE ARE IN DISPLAY ROW RANGE.?C NO CHECK FOR AVO ON COLUMNS (NOT ENOUGH VARIATIONS AVAILABLE) NN=0% CALL FVLDGT(IC1POS,IC2POS,FVLD(1,1))& CALL XVBLGT(IC1POS,IC2POS,XVBLS(1,1)) IF(FVLD(1,1).NE.0.AND. 1 XVBLS(1,1).LT.0.)NN=1 IF(NN.EQ.0)WRITE(6,1105)YONB IF(NN.NE.0)WRITE(6,1105)RONB=C ALWAYS SET NORMAL YELLOW ON BLUE DISPLAY HERE. SGR AREA MAY!C MODIFY THIS, DEPENDING ON AREA. 1500 CONTINUE OUTBUF ( 2 ) = 1H[> IF (.NOT.( N1 .GT. 0 . AND . N1 .LE. LLDSP )) GOTO 20004' ENCODE ( 2, 10, OUTBUF ( 3 ) ) N120004 CONTINUE OUTBUF ( 5 ) = 1H;< IF (.NOT.( N2 .GT. 0 . AND . N00__^YTADATADATADATADATADATA2 .LT. 133 )) GOTO 20006( ENCODE ( 3, 105, OUTBUF ( 6 ) ) N220006 CONTINUE OUTBUF ( 9 ) = 1HH LEN = 9 GOTO 2000320002 CONTINUE* IF (.NOT.( CMD .EQ. ED )) GOTO 20036C ERASE DISPLAY WRITE(6,1105)YONB N1S=0 N2S=0 OUTBUF ( 2 ) = 1H[( IF (.NOT.( N1 .EQ. 0 )) GOTO 20038 OUTBUF ( 3 ) = 1H0 GOTO 2003920038 CONTINUE( IF (.NOT.( N1 .EQ. 1 )) GOTO 20040 OUTBUF ( 3 ) = 1H1 GOTO 2004120040 CONTINUE OUTBUF ( 3 ) = 1H220041 CONTINUE20039 CONTINUE OUTBUF ( 4 ) = 1HJ LEN = 4 GOTO 2003720036 CONTINUE* IF (.NOT.( CMD .EQ. EL )) GOTO 20042 C ERASE LINE OUTBUF ( 2 ) = 1H[( IF (.NOT.( N1 .EQ. 0 )) GOTO 20044 OUTBUF ( 3 ) = 1H0 GOTO 2004520044 CONTINUE( IF (.NOT.( N1 .EQ. 2 )) GOTO 20046 OUTBUF ( 3 ) = 1H2 GOTO 2004720046 CONTINUE OUTBUF ( 3 ) = 1H120047 CONTINUE20045 CONTINUE OUTBUF ( 4 ) = 1HK LEN = 4 GOTO 2004320042 CONTINUE+ IF (.NOT.( CMD .EQ. SGR )) GOTO 20048GC SET GRAPHICS RENDITION (7=REVERSE VIDEO, 0=NORMAL,4=UNDERSCORE,1=BOLD9C 5=BLINK) (PORTACALC CALLS WITH 0 OR 7 (VT100 W/O AVO))C OUTBUF ( 2 ) = 1H[( IF (.NOT.( N1 .EQ. 7 )) GOTO 200504C SGR 7, I.E., REVERSE VIDEO. SPECIAL COLOR VERSION.& IF(N1S.LE.1.OR.N1S.GE.LLCMD)GOTO 1933 GOTO 1934 1933 CONTINUE+C ROW 1 OR ROWS 23,24 REVERSE: RED ON GREEN WRITE(6,1105)RONG N1S=0 N2S=0 RETURN 1934 CONTINUE IF(N1S.EQ.2)GOTO 1935 GOTO 1936 1935 CONTINUEC ROW 2 WRITE(6,1105)RONG N1S=0 N2S=0 RETURN 1936 CONTINUE IF(N2S.LE.1)GOTO 1937 GOTO 1938 1937 CONTINUEC ROW 3-LLCMD-1 WRITE(6,1105)GONB N1S=0 N2S=0 RETURN 1938 CONTINUE NN=0% CALL FVLDGT(IC1POS,IC2POS,FVLD(1,1))& CALL XVBLGT(IC1POS,IC2POS,XVBLS(1,1))( IF(FVLD(1,1).NE.0.AND.XVBLS(1,1).LT.0.) 1 NN=13C NN TELLS WHETHER TO USE RED OR NOT IN THIS REGION IF(NN.EQ.0)WRITE(6,1105)BONY IF(NN.NE.0)WRITE(6,1105)BONR N1S=0 N2S=0 RETURN20050 CONTINUEC SET NORMAL VIDEO AGAIN...& IF(N1S.LE.1.OR.N1S.GE.LLDSP)GOTO 2934 GOTO 2935 2934 CONTINUE0C NOTE THIS MUST BE SAME AS ERASE SCREEN COLO4R. IF(N1S.NE.0)WRITE(6,1105)YONB N1S=0 N2S=0 RETURN 2935 CONTINUE& IF(N1S.EQ.2.OR.N1S.EQ.LLCMD)GOTO 2936 GOTO 2937 2936 CONTINUE WRITE(6,1105)GONR N1S=0 N2S=0 RETURN 2937 CONTINUE IF(N2S.LE.1)GOTO 2938 GOTO 2939 2938 CONTINUE WRITE(6,1105)BONY N1S=0 N2S=0 RETURN 2939 CONTINUE NN=0% CALL FVLDGT(IC1POS,IC2POS,FVLD(1,1))& CALL XVBLGT(IC1POS,IC2POS,XVBLS(1,1))( IF(FVLD(1,1).NE.0.AND.XVBLS(1,1).LT.0.) 1 NN=13C NN TELLS WHETHER TO USE RED OR NOT IN THIS REGION IF(NN.EQ.0)WRITE(6,1105)YONB IF(NN.NE.0)WRITE(6,1105)RONB N1S=0 N2S=020051 CONTINUE RETURN20048 CONTINUE+ IF (.NOT.( CMD .EQ. SCS )) GOTO 20054)C SCS. IGNORE THIS ... NEVER REALLY USED. RETURN20054 CONTINUE* IF (.NOT.( CMD .EQ. SM )) GOTO 20062C SET MODE. IGNORE. RETURN+20062 IF (.NOT.( CMD .EQ. RM )) GOTO 20066C RESET MODE. IGNORE. RETURN20066 CONTINUE, IF (.NOT.( CMD .EQ. ANSI )) GOTO 20070CC ANSI MODE. LEAVE IN, ENSURING VT100'S HANDLE ANSI ESC. SEQUENCES. OUTBUF ( 2 ) = 1H< LEN = 220070 CONTINUE20049 CONTINUE20043 CONTINUE20037 CONTINUE20003 CONTINUE(C THIS LOOP NULLS ALL SPACES STILL IN...=C IT HAS TO GO IF YOU CONVERT FOR OTHER TERMINALS GENERALLY. DO 20072 I = 1, LEN4 IF (.NOT.( OUTBUF ( I ) .EQ. 1H )) GOTO 20074 OUTBUF ( I ) = 020074 CONTINUE20072 CONTINUE20073 CONTINUEHC USE A FORTRAN WRITE SO THIS WILL WORK ON VAX OR PDP11 (OR WHATEVER...)!C UNIT 6 MUST BE THE TERMINAL...# WRITE(6,1105)(OUTBUF(IV),IV=1,LEN)1105 FORMAT(16A1)5 FORMAT ( I1 )10 FORMAT ( I2 )105 FORMAT(I3) RETURN END SUBROUTINE ESCTRN(LINE).C CUSTOM ESCAPE SEQ TRANSLATIONS FOR COLORSCANC USE FOR VAX FLAVOR ONLY!!! LOGICAL*1 LINE(80)* INTEGER*4 TTCHAN,STAT,SYS$ASSIGN,SYS$QIOW INTEGER*2 I00__^[Z[[[\[}OSB(4) INTEGER*4 MODEBF(3),IWRK INCLUDE '($IODEF)' INCLUDE '($TTDEF)' COMMON /TTCHN/TTCHANC HANDLES PF5 TO PF9 II=LINE(1) IF(II.NE.2)RETURN9C NEED EXTRA READ SINCE TT DRIVER TERMINATES ON CONTROL B IWRK=IO$_READVBLKA STAT=SYS$QIOW(,%VAL(TTCHAN),%VAL(IWRK),IOSB,,,LINE,%VAL(80),,,,)C CONTROL B IS START II=LINE(1) DO 10 I=1,80 10 LINE(I)=0 LINE(1)=27 LINE(2)='[' IF(II.GT.72)GOTO 100 C U.C CHARS LINE(3)=II-65+49 LINE(4)='~' RETURN 100 CONTINUE I='g' I=II-I+49 LINE(3)=I I=II-46 C I=II-97+51 IF(I.GT.57)I=48 LINE(4)=I RETURN END#C COPYRIGHT (C) 1983 GLENN EVERHART9@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY.SC :C VT100 VIDEO DISPLAY COMMAND PROGRAM. CALLING SEQUENCE IS=C CALL UVT100(CMD,N1,N2), WHERE CMD IS ONE OF THE COMMANDS INLAC THE PARAMETER LIST BELOW, AND N1 AND N2 ARE OPTIONAL PARAMETERSEDC DEPENDING UPON CMD. SEE THE UVT100 USER'S MANUAL FOR MORE DETAILS.CFHC DATAMEDIA VARIANT FOR PORTACALC ONLY. UVT100 COMPATIBLE (MORE OR LESS)EC THIS VERSION MAY BE USED AS A TEMPLATE FOR SCREENS LACKING REVERSE CC VIDEO OR SIMILAR FEATURES. IT USES THE LEFTMOST COLUMN OF A CELLTCC TO HOLD A SPECIAL CHARACTER (">" IN THIS CASE) TO INDICATE ONE'SDCC POSITION ON THE SCREEN. BY MAIN FORCE & AWKWARDNESS IT WILL MOVER@C THIS AROUND WHEREVER NEEDED. ONLY ENTRIES CALLED BY PORTACALC&C ARE SUPPORTED HERE, MANY AS NO-OPS.>C NOTE THE REVERSE VIDEO ON THE TITLE PAGE IS LIKELY TO GETAC SOMEWHAT FOULED UP DUE TO THIS, WHICH IS JUST TOO BAD BUT WILLLC NOT BE ADDRESSED HERE.B9C THIS VERSION MAY BE USED ON PDP11 OR VAX; ITS OUTPUT ISN*C STRICTLY FORTRAN I/O TO LOGICAL UNIT 6.8C THIS VERSION IS FOR DATAMEDIA 1500 SERIES TERMINAL.C ERASE TO EOL= GSIC ERASE TO ENDPAGE=VTC CLEAR SCREEN=FFC CURSOR ADDRESSING ISM5C RS WHERE CHARACTER IS COL OR ROW # + 31.ECKC AUTHOR: GLENN EVERHARTC ' SUBROUTINE UVT100 ( CMD, N1, N2 )= IMPLICIT INTEGER ( A - Z ) INCLUDE 'VKLUGPRM.FTN'=G PARAMETER CUP = 1, CUU = 2, CUD = 3, CUF = 4, CUB = 5, DECDWL = 63G $, DECDHL = 7, DECRC = 8, DECSC = 9, DECSWL = 10, ED = 11, EL = 12SA $, SGR = 13, NEL = 14, SCS = 15, SM = 16, RM = 17, ANSI = 18D BYTE OUTBUF ( 8 )S LOGICAL*1 FVLDG DIMENSION FVLD(RRWP,RCLP) COMMON /FVLDC/FVLDL( INTEGER*2 PROW,PCOL,DROW,DCOL,DRWV,DCLV* COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRWV,DCLV LOGICAL*1 OUTSV(4),OUTBFF(4)G INTEGER*2 S7FLG,SCFGE!C SET INITIAL ESCAPE INTO BUFFER.G DO 20000 I = 1, 8 OUTBUF ( I ) = 020000 CONTINUE20001 CONTINUE IF(CMD.EQ.SCS)SCFG=0/ IF(CMD.EQ.SCS)RETURN+ IF (.NOT.( CMD .EQ. CUP )) GOTO 20002DC CUP - CURSOR POSITIONE OUTBUF ( 1 ) = 30E; IF (.NOT.( N1 .GT. 0 . AND . N1 .LT. 25 )) GOTO 20004O OUTBUF(3)=N1+3120004 CONTINUE; IF (.NOT.( N2 .GT. 0 . AND . N2 .LT. 81 )) GOTO 20006M OUTBUF(2)=N2+3120006 CONTINUE LEN = 3C8C SAVE THIS COORD TILL NEXT TIME FOR MAYBE USE BY SGR(7) DO 151 N151=1,4151 OUTBFF(N151)=OUTBUF(N151)C SCFG=1' GOTO 2000320002 CONTINUE* IF (.NOT.( CMD .EQ. ED )) GOTO 20036 SCFG=02 OUTBUF ( 1 ) = 127%C ERASE DISPLAY. ALWAYS ERASE IT ALL., LEN = 1D GOTO 2003720036 CONTINUE* IF (.NOT.( CMD .EQ. EL )) GOTO 20042 SCFG=0'( IF (.NOT.( N1 .EQ. 0 )) GOTO 20044 OUTBUF(1)=291 LEN=1 GOTO 20043/20044 CONTINUE( IF (.NOT.( N1 .EQ. 2 )) GOTO 20046C N1=21109 OUTBUF(1)=130 OUTBUF(2)=29'C CR FIRST, THEN ERASE LINE  LEN=2 GOTO 20043720046 CONTINUE GOTO 110920042 CONTINUE00__^YTADATADATADATADATADATA4C SGR - SET GRAPHICS RENDITION. SUPPORTS ARGS 7 OR 0C FOR REVERSE VIDEO/NORMALC (C FOR PORTACALC USE THE FOLLOWING LOGIC:C 4C WHEN CALLED WITH ARG 7, SAVE LAST CURSOR POSITIONS3C CALLED AND KEEP AROUND, UNLESS FVLD IS 0 FOR THIS0!C CELL (IN WHICH CASE DO NOTHING)A2C WHEN CALLED WITH ARG 0, IF LAST CALL WAS ARG 7,0C THEN REPOSITION CURSOR TO SAVED LOCATIONS AND;C WRITE A CHARACTER TO LUN 6 (USE A ">" CHARACTER FOR NOW)(3C THEN REPOSITION ONCE MORE TO THE SAVED POSITION.(CC THIS SIMULATES ACTION OF REVERSE VIDEO WHERE NONE IS AVAILABLE =C BY AT LEAST PUTTING A ">" CHARACTER OUT AT CURRENT CELL.NCN+ IF (.NOT.( CMD .EQ. SGR )) GOTO 20048 ( IF (.NOT.( N1 .EQ. 7 )) GOTO 20050 IF(SCFG.NE.1)RETURNC ARG=7 ! IF(PROW.LE.0.OR.PCOL.LE.0)RETURNL' IF(PROW.GT.RRWP.OR.PCOL.GT.RCLP)RETURNS! CALL FVLDGT(PROW,PCOL,FVLD(1,1))4 IF(FVLD(1,1).EQ.0)RETURN1)C KNOW NOW THAT WE HAVE A VALID LOCATION.I DO 150 N150=1,3150 OUTSV(N150)=OUTBFF(N150) S7FLG=1C FLAGS SAVED COORDS AND4C SAVES LAST OUTPUT BUFFER AND LENGTH FOR LATER USE.HC NOTHING MORE TO DO HERE; JUST EMIT THE DATA WHEN WE ARE CALLED ON TO. RETURN(20050 CONTINUEC ARG=0Q20051 CONTINUE IF(SCFG.NE.1)RETURN IF(S7FLG.NE.1)RETURN. WRITE(6,1100)(OUTSV(IV),IV=1,3)1100 FORMAT(4A1) WRITE(6,1101)1101 FORMAT('>')"C SPECIAL POINTER CHARACTER IS ">"!C WRITE(6,1100)(OUTSV(IV),IV=1,3) (C REPOSITION CURSOR TO INITIAL POSITION.C FLAG NO REVERSE MODE NOW S7FLG=0%C RETURN CURSOR TO LAST SET LOCATION. ! WRITE(6,1100)(OUTBFF(IV),IV=1,3)2 RETURN 20048 CONTINUE* IF (.NOT.( CMD .EQ. SM )) GOTO 20062 SCFG=09C IGNORE SET MODES RETURN 20062 CONTINUE* IF (.NOT.( CMD .EQ. RM )) GOTO 20066 SCFG=00C IGNORE RESET MODES RETURN120066 CONTINUE, IF (.NOT.( CMD .EQ. ANSI )) GOTO 20070 SCFG=0OC ANSI MODE DOES NOTHING.= RETURN 20070 CONTINUE20067 CONTINUE20063 CONTINUE20055 CONTINUE20053 CONTINUE20049 CONTINUE20043 CONTINUE20037 CONTINUE20035 CONTINUE20033 CONTINUE20031 CONTINUE20029 CONTINUE20025 CONTINUE20021 CONTINUE20017 CONTINUE20013 CONTINUE20009 CONTINUE20003 CONTINUE20072 CONTINUE20073 CONTINUE# WRITE(6,1105)(OUTBUF(IV),IV=1,LEN)F1105 FORMAT(16A1))5 FORMAT ( I1 )U10 FORMAT ( I2 ) RETURN ENDN,C COPYRIGHT (C) 1983 GLENN and MARY EVERHARTC All Rights ReservedC:C VT100 VIDEO DISPLAY COMMAND PROGRAM. CALLING SEQUENCE IS=C CALL UVT100(CMD,N1,N2), WHERE CMD IS ONE OF THE COMMANDS INAC THE PARAMETER LIST BELOW, AND N1 AND N2 ARE OPTIONAL PARAMETERSDC DEPENDING UPON CMD. SEE THE UVT100 USER'S MANUAL FOR MORE DETAILS.CC/C THIS VERSION MODIFIED FOR USE WITH PORTACALC.EC ENTRIES NOT USED ARE DELETED, AND ALSO CODE ADDED TO SUPPORT COLOREC CRT'S THAT ARE BASICALLY VT100-LIKE WITH EXTENSIONS, OR VT100'S ORC EMULATORS WITH AVO OPTION.C C OPERATION:CC IN COLOR MODE:-C ON ED, SET BACKGROUND COLOR TO DARK BLUE2C ALTERNATE ROWS WILL BE SET TO YELLOW OR GREENDC COLUMN LABEL ROW, LABEL ROW, AND ROW LABELS, AND COMMAND PROMPTS,?C IN A DIFFERENT COLOR FOR EACH. DETERMINED AND SET AT TIME OFC CALL TO CURSOR POSITION.EC VERSION FOR IBM PC UNDER PCDOS V2 ANSI.SYS WITH COLOR MONITOR...DC MADE FROM COLORSCAN 10 VERSION WITH IBM ESC SEQUENCES INSTEAD, FOR C COLORS.=C SHOULD WORK WITH SOME OTHER COLOR CRT'S TOO. INTERCOLOR MAYC BE ONE SUCH.CC AUTHOR: GLENN EVERHARTC' SUBROUTINE UVT100 ( CMD, N1, N2 ) IMPLICIT INTEGER ( A - Z ) INCLUDE 'VKLUGPRM.FTN' DIMENSION PRL ( 6 )G PARAMETER CUP = 1, CUU = 2, CUD = 3, CUF = 4, CUB = 5, DECDWL = 6G $, DECDHL = 7, DECRC = 8, DECSC = 9, DECSWL = 10, ED = 11, EL = 12A $, SGR = 13, NEL = 14, SCS = 15, SM = 16, RM = 17, ANSI = 18DC NOTE WE DECLARE THESE VARIABLES USED I00__^[Z[[[\[}N PORTACALC. THEY ARE ALL INFC COMMONS, SO WE ADD NOTHING TO LENGTH OF THIS PROGRAM BY ADDING THEM. LOGICAL*1 FVLD DIMENSION FVLD(RRWP,RCLP) COMMON /FVLDC/FVLD( INTEGER*2 PROW,PCOL,DROW,DCOL,DRWV,DCLV* COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRWV,DCLV" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9) REAL*8 XVBLS(RRWP,RCLP)) LOGICAL*1 AVBLS(20,27),VBLS(8,RRWP,RCLP)$ EQUIVALENCE(XVBLS(1,1),VBLS(1,1,1)) INTEGER*2 N1S,N2S COMMON/V/TYPE,AVBLS,VBLS,VLENBC ICPOS COMMON HAS PHYS COORDS BEING DISPLAYED. MUST QUERY FVLD TO4C SEE WHETHER TO INTENSIFY THE FIELD FOR NEGATIVE... INTEGER*2 IC1POS,IC2POS COMMON/ICPOS/IC1POS,IC2POS BYTE OUTBUF ( 16 )+C CONTROLS TO SET VARIOUS VISUAL ATTRIBUTESC NORMAL, BOLD. LOGICAL*1 YONB(12),GONR(12),RONG(12),BONY(12). LOGICAL*1 GONB(12),RONB(12),BONR(12),RONY(12) LOGICAL*1 BONG(12)C TOP LINE YELLOW ON BLUE6C NEXT LINE NORMAL:GREEN ON RED, REVERSED:RED ON GREEN)C COL 1 ROWS 3-LCMDR: NORMAL B/Y, REV G/B4C SHEET AREA: IF NUMBER =>0, Y/B NORMAL,B/Y REVERSED.C IF NUMBER < 0, R/B NORMAL,B/R REVERSED C LCMDR: G/R C LDSPR: Y/B7 DATA YONB/27,'[',0,'m',27,'[','3','3',';','4','4','m'/7 DATA GONR/27,'[',0,'m',27,'[','3','2',';','4','1','m'/7 DATA RONG/27,'[',0,'m',27,'[','3','1',';','4','2','m'/7 DATA BONY/27,'[',0,'m',27,'[','3','4',';','4','3','m'/7 DATA BONG/27,'[',0,'m',27,'[','3','4',';','4','2','m'/7 DATA GONB/27,'[',0,'m',27,'[','3','2',';','4','4','m'/7 DATA RONB/27,'[',0,'m',27,'[','3','1',';','4','4','m'/7 DATA BONR/27,'[',0,'m',27,'[','3','4',';','4','1','m'/7 DATA RONY/27,'[',0,'m',27,'[','3','1',';','4','3','m'/"C COLOR SCHEME CODED DATA ABOVE...C BYTE OUTBUF ( 16 ) OUTBUF ( 1 ) = 27 DO 20000 I = 2, 16 OUTBUF ( I ) = 020000 CONTINUE20001 CONTINUE+ IF (.NOT.( CMD .EQ. CUP )) GOTO 20002C CURSOR POSITION.'C SHIP OUT APPROPRIATE CHARACTERISTICS. N1S=N1 N2S=N2 IF(N1.EQ.1)WRITE(6,1105)YONB9 IF(N1.GT.2.AND.N1.LT.LCMDR.AND.N2.EQ.1)WRITE(6,1105)BONG) IF(N1.EQ.2.AND.N2.EQ.1)WRITE(6,1105)RONG! IF(N1.EQ.LCMDR)WRITE(6,1105)GONR! IF(N1.EQ.LDSPR)WRITE(6,1105)YONB) IF(N2.GT.1.AND.N1.EQ.2)WRITE(6,1105)RONY% IF(N1.LT.3.OR.N1.GE.LCMDR) GOTO 1500 IF(N2.LE.1)GOTO 1500#C HERE WE ARE IN DISPLAY ROW RANGE.?C NO CHECK FOR AVO ON COLUMNS (NOT ENOUGH VARIATIONS AVAILABLE) NN=0% CALL FVLDGT(IC1POS,IC2POS,FVLD(1,1))& CALL XVBLGT(IC1POS,IC2POS,XVBLS(1,1)) IF(FVLD(1,1).NE.0.AND. 1 XVBLS(1,1).LT.0.)NN=1 IF(NN.EQ.0)WRITE(6,1105)YONB IF(NN.NE.0)WRITE(6,1105)RONB=C ALWAYS SET NORMAL YELLOW ON BLUE DISPLAY HERE. SGR AREA MAY!C MODIFY THIS, DEPENDING ON AREA. 1500 CONTINUE OUTBUF ( 2 ) = 1H[; IF (.NOT.( N1 .GT. 0 . AND . N1 .LT. 25 )) GOTO 20004' ENCODE ( 2, 10, OUTBUF ( 3 ) ) N120004 CONTINUE OUTBUF ( 5 ) = 1H;>C NOTE LOSING IBM PC WON'T HANDLE WIDER THAN 80 CHARACTERS, SO8C CHOP IT OFF THERE. A VT100 OR EMULATOR WOULD OF COURSEC HANDLE 132 OR MAYBE MORE...; IF (.NOT.( N2 .GT. 0 . AND . N2 .LT. 80 )) GOTO 20006( ENCODE ( 2, 105, OUTBUF ( 6 ) ) N220006 CONTINUE OUTBUF ( 9 ) = 1HH LEN = 9 GOTO 2000320002 CONTINUE* IF (.NOT.( CMD .EQ. ED )) GOTO 20036C ERASE DISPLAY WRITE(6,1105)YONB N1S=0 N2S=0 OUTBUF ( 2 ) = 1H[( IF (.NOT.( N1 .EQ. 0 )) GOTO 20038 OUTBUF ( 3 ) = 1H0 GOTO 2003920038 CONTINUE( IF (.NOT.( N1 .EQ. 1 )) GOTO 20040 OUTBUF ( 3 ) = 1H1 GOTO 2004120040 CONTINUE OUTBUF ( 3 ) = 1H220041 CONTINUE20039 CONTINUE OUTBUF ( 4 ) = 1HJ LEN = 4 GOTO 2003720036 CONTINUE* IF (.NOT.( CMD .EQ. EL )) GOTO 20042 C ERASE LINE OUTBUF ( 2 ) = 1H[( IF (.NOT.( N1 .EQ. 0 )) GOTO 20044 OUTBUF ( 3 ) = 1H0 GOTO 2004520044 CONTINUE( IF (.NOT.( N1 .EQ. 2 )) GOTO 20046 OUTBUF ( 3 ) = 1H2 GOTO 2004720046 CONTINUE OUTBUF ( 3 ) = 1H120047 CONTINUE20045 CONTINUE OUTBUF ( 4 ) = 1HK LEN = 4 GOTO 2004320042 CONTINUE+ IF (.NOT.( CMD .EQ. 00__^YTADATADATADATADATADATASGR )) GOTO 20048GC SET GRAPHICS RENDITION (7=REVERSE VIDEO, 0=NORMAL,4=UNDERSCORE,1=BOLD9C 5=BLINK) (PORTACALC CALLS WITH 0 OR 7 (VT100 W/O AVO))C OUTBUF ( 2 ) = 1H[( IF (.NOT.( N1 .EQ. 7 )) GOTO 200504C SGR 7, I.E., REVERSE VIDEO. SPECIAL COLOR VERSION.& IF(N1S.LE.1.OR.N1S.GE.LCMDR)GOTO 1933 GOTO 1934 1933 CONTINUE+C ROW 1 OR ROWS 23,24 REVERSE: RED ON GREEN WRITE(6,1105)RONG N1S=0 N2S=0 RETURN 1934 CONTINUE IF(N1S.EQ.2)GOTO 1935 GOTO 1936 1935 CONTINUEC ROW 2 WRITE(6,1105)RONG N1S=0 N2S=0 RETURN 1936 CONTINUE IF(N2S.LE.1)GOTO 1937 GOTO 1938 1937 CONTINUEC ROW 3-LCMDR-1 WRITE(6,1105)GONB N1S=0 N2S=0 RETURN 1938 CONTINUE NN=0% CALL FVLDGT(IC1POS,IC2POS,FVLD(1,1))& CALL XVBLGT(IC1POS,IC2POS,XVBLS(1,1))( IF(FVLD(1,1).NE.0.AND.XVBLS(1,1).LT.0.) 1 NN=13C NN TELLS WHETHER TO USE RED OR NOT IN THIS REGION IF(NN.EQ.0)WRITE(6,1105)BONY IF(NN.NE.0)WRITE(6,1105)BONR N1S=0 N2S=0 RETURN20050 CONTINUEC SET NORMAL VIDEO AGAIN...& IF(N1S.LE.1.OR.N1S.GE.LDSPR)GOTO 2934 GOTO 2935 2934 CONTINUE0C NOTE THIS MUST BE SAME AS ERASE SCREEN COLO4R. IF(N1S.NE.0)WRITE(6,1105)YONB N1S=0 N2S=0 RETURN 2935 CONTINUE& IF(N1S.EQ.2.OR.N1S.EQ.LCMDR)GOTO 2936 GOTO 2937 2936 CONTINUE WRITE(6,1105)GONR N1S=0 N2S=0 RETURN 2937 CONTINUE IF(N2S.LE.1)GOTO 2938 GOTO 2939 2938 CONTINUE WRITE(6,1105)BONY N1S=0 N2S=0 RETURN 2939 CONTINUE NN=0% CALL FVLDGT(IC1POS,IC2POS,FVLD(1,1))& CALL XVBLGT(IC1POS,IC2POS,XVBLS(1,1))( IF(FVLD(1,1).NE.0.AND.XVBLS(1,1).LT.0.) 1 NN=13C NN TELLS WHETHER TO USE RED OR NOT IN THIS REGION IF(NN.EQ.0)WRITE(6,1105)YONB IF(NN.NE.0)WRITE(6,1105)RONB N1S=0 N2S=020051 CONTINUE RETURN20048 CONTINUE+ IF (.NOT.( CMD .EQ. SCS )) GOTO 20054)C SCS. IGNORE THIS ... NEVER REALLY USED. RETURN20054 CONTINUE* IF (.NOT.( CMD .EQ. SM )) GOTO 20062C SET MODE. IGNORE. RETURN+20062 IF (.NOT.( CMD .EQ. RM )) GOTO 20066C RESET MODE. IGNORE. RETURN20066 CONTINUE, IF (.NOT.( CMD .EQ. ANSI )) GOTO 20070 RETURN20070 CONTINUE20049 CONTINUE20043 CONTINUE20037 CONTINUE20003 CONTINUE(C THIS LOOP NULLS ALL SPACES STILL IN...=C IT HAS TO GO IF YOU CONVERT FOR OTHER TERMINALS GENERALLY. DO 20072 I = 1, LEN4 IF (.NOT.( OUTBUF ( I ) .EQ. 1H )) GOTO 20074 OUTBUF ( I ) = 020074 CONTINUE20072 CONTINUE20073 CONTINUEHC USE A FORTRAN WRITE SO THIS WILL WORK ON VAX OR PDP11 (OR WHATEVER...)!C UNIT 6 MUST BE THE TERMINAL...# WRITE(6,1105)(OUTBUF(IV),IV=1,LEN)1105 FORMAT(1X,16A1$5 FORMAT ( I1 )10 FORMAT ( I2.2 )105 FORMAT(I2.2) RETURN END#C COPYRIGHT (C) 1983 GLENN EVERHART9@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY.SC :C VT100 VIDEO DISPLAY COMMAND PROGRAM. CALLING SEQUENCE IS#C CALL UVT100(CMD,N1,N2THE MANDS IN AC THE PARAMETER LIST BELOW, AND N1 AND N2 ARE OPTIONAL PARAMETERSNDC DEPENDING UPON CMD. SEE THE UVT100 USER'S MANUAL FOR MORE DETAILS.CACL/C THIS VERSION MODIFIED FOR USE WITH PORTACALC.O C ENTRIES NOT USED ARE DELETED.@C THIS VERSION IS MODIFIED FOR USE WITH TELEVIDEO 925 TERMINALS.CA+C THESE TERMINALS HAVE THE FOLLOWING CODES: C CURSOR ADDRESSING: C =abLC WHERE a= ROW # (BINARY) +31TC b= COL # (BINARY) +31TC NORMAL VIDEO:T C G0SC REVERSE VIDEO: C G4DC UNDERLINE NORMAL: C G8DC UNDERLINE REVERSE: C GTC CLEAR TO EOPC YC HOME!C CTRL ^ (36 OCTAL OR 30 DECIMAL)TCPC AUTHOR: GLENN EVERHARTCW' SUBROUTINE UVT100 ( CMD, N1, N2 )T IMPLICIT INT00__^[Z[[[\[}EGER ( A - Z ) INCLUDE 'VKLUGPRM.FTN'N DIMENSION PRL ( 6 )XG PARAMETER CUP = 1, CUU = 2, CUD = 3, CUF = 4, CUB = 5, DECDWL = 6EG $, DECDHL = 7, DECRC = 8, DECSC = 9, DECSWL = 10, ED = 11, EL = 12AA $, SGR = 13, NEL = 14, SCS = 15, SM = 16, RM = 17, ANSI = 18RDC NOTE WE DECLARE THESE VARIABLES USED IN PORTACALC. THEY ARE ALL INFC COMMONS, SO WE ADD NOTHING TO LENGTH OF THIS PROGRAM BY ADDING THEM. LOGICAL*1 FVLD) DIMENSION FVLD(RRWP,RCLP) COMMON /FVLDC/FVLD ( INTEGER*2 PROW,PCOL,DROW,DCOL,DRWV,DCLV* COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRWV,DCLV" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9) REAL*8 XVBLS(RRWP,RCLP)) LOGICAL*1 AVBLS(20,27),VBLS(8,RRWP,RCLP)D$ EQUIVALENCE(XVBLS(1,1),VBLS(1,1,1)) COMMON/V/TYPE,AVBLS,VBLS,VLEN+C CONTROLS TO SET VARIOUS VISUAL ATTRIBUTESLC NORMAL, BOLD INTEGER*2 N1SV,N2SV,NNFG,N222 LOGICAL*1 CLSV(4)( LOGICAL*1 NORMIT(3),BOLDIT(3),OUTBUF(8) DATA N222/0/E DATA NORMIT/27,'G','0'/GC SET ATTRIBUTE 4 (UNDERLINE) RATHER THAN 1 (BOLD) FOR ALTERNATE LINES.0 DATA BOLDIT/27,'G','8'/ OUTBUF ( 1 ) = 27S DO 20000 I = 2, 8 OUTBUF ( I ) = 020000 CONTINUE20001 CONTINUE+ IF (.NOT.( CMD .EQ. CUP )) GOTO 20002 C CURSOR POSITION.'C SHIP OUT APPROPRIATE CHARACTERISTICS.0 N1CP=N1% IF(N1.LT.3.OR.N1.GE.LCMDR) GOTO 1500N#C HERE WE ARE IN DISPLAY ROW RANGE.NC1*C SEE IF N2=1. IF SO FLAG AND SAVE COORDS.$C DO THIS TO TRY TO SHIP OUT COORDS. IF(N2.NE.1)GOTO 16551 IF(NNFG.EQ.0)GOTO 1667U1C GO BACK TO LAST LOC. AND DRAW NUMBER LABELS IN.E WRITE(6,1105)CLSV NN=N1SV-2 IF(NN.GT.0)WRITE(6,1106)NN 1106 FORMAT(I2,'=') C THEN ON TO SET UP LOCATION.A 1667 CONTINUE NNFG=N222 N1SV=N1 N2SV=N2 GOTO 1656 1655 CONTINUED NNFG=0) 1656 CONTINUES?C NO CHECK FOR AVO ON COLUMNS (NOT ENOUGH VARIATIONS AVAILABLE)C THUS JUST DECIDE ON0C 1. UNDERLINING  NBD=0 NNR=N1/22 NNR=NNR*2 IF(NNR.NE.N1)NBD=1UGC NOW HAVE ALL SET UP, NBD=1 IF UNDERLINING, NUL=1 IF UNDERLINE NEEDED.46C NEVER BOLD 1ST COLUMN ON SCREEN...LABELS ONLY THERE. IF(N2.LE.1)NBD=0I IF(N2.EQ.1)GOTO 15000 IF(NBD.EQ.0)WRITE(6,1105)NORMIT IF(NBD.EQ.1)WRITE(6,1105)BOLDIT 1500 CONTINUEHHC CURSOR POSITIONS ARE =ab AS ABOVE WHERE a,b ARE ROW OR COL # + 31!C CLAMP COL # TO NOT OVER 95 TOO.L OUTBUF ( 2 ) = 1H=; IF (.NOT.( N1 .GT. 0 . AND . N1 .LT. 25 )) GOTO 20004E OUTBUF(3)=N1+3120004 CONTINUE; IF (.NOT.( N2 .GT. 0 . AND . N2 .LT. 95 )) GOTO 20006F OUTBUF(4)=N2+3120006 CONTINUE LEN = 4E IF(N2.NE.1)GOTO 20003% IF(N1.LE.2.OR.N1.GE.LCMDR)GOTO 20003 2C SAVE LAST COORD BUFFER WHERE COL 1 WAS SELECTED. DO 1670 NN=1,4U1670 CLSV(NN)=OUTBUF(NN) GOTO 2000320002 CONTINUE* IF (.NOT.( CMD .EQ. ED )) GOTO 20036C ERASE DISPLAYE NNFG=0R N222=0( OUTBUF(1)=30O OUTBUF(2)=27 OUTBUF(3)=1HY20039 CONTINUE LEN = 3  GOTO 2003720036 CONTINUE* IF (.NOT.( CMD .EQ. EL )) GOTO 20042 C ERASE LINE N222=0 NNFG=01( IF (.NOT.( N1 .EQ. 0 )) GOTO 20044C ERASE TO END OF LINE.S OUTBUF(2)=1HT LEN=2 GOTO 2004520044 CONTINUE( IF (.NOT.( N1 .EQ. 2 )) GOTO 20046C ERASE WHOLE LINE OUTBUF(1)=13R OUTBUF(2)=27O OUTBUF(3)=1HT LEN=3C DO C.R., THEN ERASE TO EOL GOTO 2004720046 CONTINUE RETURNT20047 CONTINUE20045 CONTINUE GOTO 2004320042 CONTINUE+ IF (.NOT.( CMD .EQ. SGR )) GOTO 20048(GC SET GRAPHICS RENDITION (7=REVERSE VIDEO, 0=NORMAL,4=UNDERSCORE,1=BOLDL9C 5=BLINK) (PORTACALC CALLS WITH 0 OR 7 (VT100 W/O AVO))E OUTBUF(2)=1HG( IF (.NOT.( N1 .EQ. 7 )) GOTO 20050C SET REVERSE VIDEO  OUTBUF ( 3 ) = 1H4 IF(N1CP.EQ.2)N222=1 GOTO 2005120050 CONTINUE OUTBUF ( 3 ) = 1H0 IF(NNFG.EQ.0)GOTO 16722 NNFG=0F WRITE(6,1105)CLSV NN=N1SV-2 IF(NN.GT.0)WRITE(6,1106)NNF 1672 CONTINUEQ20051 CONTINUE LEN = 3 GOTO 2004920048 CONTINUE+ IF (.NOT.( CMD .EQ. SCS )) GOTO 20054T)C SCS. IGNORE THIS ... NEVER REALLY USED.  RETURN20054 CONTINUE* IF (.NOT.( CMD .EQ. SM )) GOTO 20062C SE00__^YTADATADATADATADATADATAT MODE. IGNORE.0 RETURNN+20062 IF (.NOT.( CMD .EQ. RM )) GOTO 20066TC RESET MODE. IGNORE.0 RETURNN20066 CONTINUE, IF (.NOT.( CMD .EQ. ANSI )) GOTO 20070C ANSI MODE CALL. IGNORE. RETURNA20070 CONTINUE20049 CONTINUE20043 CONTINUE20037 CONTINUE20003 CONTINUE20073 CONTINUEHC USE A FORTRAN WRITE SO THIS WILL WORK ON VAX OR PDP11 (OR WHATEVER...)!C UNIT 6 MUST BE THE TERMINAL...1# WRITE(6,1105)(OUTBUF(IV),IV=1,LEN) 1105 FORMAT(16A1)15 FORMAT ( I1 ) 10 FORMAT ( I2 ) 105 FORMAT(I3)( RETURN ENDT SUBROUTINE VAROUT (INDEX,IX2)#C COPYRIGHT (C) 1983 GLENN EVERHARTN@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY.M INCLUDE 'VKLUGPRM.FTN'EC PARAMETER RRW = 32C PARAMETER RCL = 32C RRW=MAX REAL ROWSTC RCL=MAX REAL COLS :C RRW MUST BE 1 LARGER TO HANDLE 1ST 27 VARIABLES IN AVBLS#C VBLS AND TYPE DIMENSIONED RRW,RCLA6C ++++++++++++++++++++++++++++++++++++++++++++++++++6C + CALC VERSION X01-06 +6C + PETER BAUM 1-SEP-77 +6C ++++++++++++++++++++++++++++++++++++++++++++++++++1C LAST MODIFIED 26-SEP-77 P.B. 11/12/82 GCE C 4C **************************************************4C * *4C * SUBROUTINE VAROUT *4C * *4C **************************************************CRCTCW9C OUTPUTS THE VALUE OF THE VARIABLE POINTED TO BY INDEX.ICG>C ASCII A1 FORMAT UNLESS THE ASCII VALUE IS LESS THAN 32.<C IN SUCH CASES, 32 IS ADDED TO THE VALUE AND THE?C CHARACTER IS OUTPUT SO THAT IT IS PRECEDED BY THE=C CHARACTER '^'.$CG!C DECIMAL A COMPUTED F FORMAT.,C .C HEXADECIMAL LEADING ZEROES, "BASE 16" QUE.C C INTEGER I12 FORMATRCL)C OCTAL LEADING ZEROES, "BASE 8" QUEHC C REAL D25.18 FORMATCLCC!C MODIFICATION CLASSES: M1,M4,M8LCCMC C VAROUT CALLSTCR$C ERRMSG PRINTS OUT ERROR MESSAGES-C MOUT OUTPUTS MULTIPLE PRECISION NUMBERSRCTC(CPCLCV%C VAROUT IS CALLED BY CALC AND POSTVLCC1CBC2C VARIABLE USECCD8C DEC HOLDS NUMBER OF DIGITS TO THE RIGHT OF THE6C DECIMAL POINT IN F FORMAT SPECIFICATION.5C DFORM(11) HOLDS FORMAT SPECIFICATION FOR F FORMATGEC (OUTPUTTING VALUE OF VARIABLES WITH DECIMAL DATA TYPE).E<C DIGITS HOLDS THE ASCII CHARACTERS FOR VARIOUS DIGITS.3C EIGHT(8) USED TO PICK OFF REAL*8 'S FROM VBLS.2BC ALSO HOLDS HEXADECIMAL DIGITS IF # IS DATA TYPE HEX.5C FOUR(4) USED TO PICK OFF INTEGER*4'S FROM VBLS. %C I,K HOLDS TEMPORARY VALUES. JC I1 HOLDS THE FIRST DIGIT IN CREATING AN F FORMAT SPECIFICATION.BC I2 HOLDS THE SECOND DIGIT IN CREATING AN F FORMAT SPEC..C INDEX POINTS TO VARIABLE BEING OUTPUT. C IPT POINTER FOR DFORM.)C ISV POINTER FOR VECTOR SIGN(2).G;C ITWO TWO IS USED TO PICK OFF A BYTE OF THE INTEGERL2C TWO(2) REPRESENTATION. THEN ITWO IS USED AS7C THE VALUE. THIS IS DONE BECAUSE OTHERWISEU7C SOME COMPILERS WOULD FORCE A SIGN EXTEND.=5C L TEMPORARY VALUES. POINTER FOR EIGHT(8).S>C LEVIN(11) HOLDS PRINTABLE ASCII CHARACTERS WHICH REPRESENT:C AN OCTAL NUMBER. EQUIVALENCED WITH EIGHT(8).1C M1 HOLDS HIGH ORDER HEXADECIMAL DIGIT.E0C M2 HOLDS LOW ORDER HEXADECIMAL DIGIT.4C MAG HOLDS THE MAGNITUDE OF A REAL*8 NUMBER7C 00__^[Z[[[\[} P10 REAL*8 THAT HOLDS POWERS OF 10. (DECIMAL)02C RETCD HOLDS RETURN CODE FROM CALL TO MOUT.C RPAR ')'5AC SIGN(2) HOLDS PRINTABLE ASCII CHARACTERS FOR OUTPUTTING THEEC SIGN OF A NUMBER. 'C STAR1 HOLDS A SINGLE CHARACTER.=/C VBLS(100,27) HOLDS VALUE FOR EACH VARIABLE.2/C WIDTH WIDTH SPECIFICATION FOR F FORMAT.EC C C(C SUBROUTINE VAROUT (INDEX,IX2)9C)>C NOTE THAT VAROUT IS USED TO DUMP ONLY VALUES FROM AVBLS, NOT<C VBLS (IX2=1 ALWAYS AT CALLS). THUS DON'T BOTHER TO PICK UP"C ANY FURTHER INFO FROM VBLS HERE. REAL*8 REAL,MAG,P10C0 INTEGER*4 INT,L,KC= INTEGER*2 ITWO,INDEX22 INTEGER*2 TYPE(RRWP,RCLP),WIDTH,DEC,VLEN(9),RETCDCO. LOGICAL*1 AVBLS(20,27),STAR1,EIGHT(8),FOUR(4) LOGICAL*1 VBLS(8,RRWP,RCLP) LOGICAL*1 TWO(2)0+ LOGICAL*1 DFORM(11),DIGITS(16,3),LEVIN(11)7 LOGICAL*1 SIGN(2)- LOGICAL*1 ALPHA(27),COMMA,BLANK,RPAR,LPAR,EQS INTEGER*2 OSWIT,OCNTR,C NOTE: OSWIT NONZERO MEANS OUTPUT TO OARRY.<C OSWIT=2 MEANS NO ZEROING OF OARRY; NOTHING MUCH COMES OUT. LOGICAL*1 OARRY(100)  COMMON/OAR/OSWIT,OCNTR,OARRYOC0 COMMON /V/ TYPE,AVBLS,VBLS,VLEN COMMON /DIGV/ DIGITSO- COMMON /CONS/ ALPHA,COMMA,BLANK,RPAR,LPAR,EQEC EQUIVALENCE (TWO,ITWO)O2 EQUIVALENCE (REAL,EIGHT),(INT,FOUR),(EIGHT,LEVIN)C  DATA SIGN/' ','-'/T> DATA DFORM /'(', '1', 'X', ',', 'F', ' ', ' ', '.', ' ', ' ', ; ')'/ DATA TWO/0,0/CNCAC= CALL TYPGET(INDEX,IX2,K)IC K=TYPE(INDEX,IX2)W IF (K.GT.0) GOTO 10 CALL ERRMSG (16)1 GOTO 10000(/10 GOTO (100,200,300,400,500,600,700,800,900),KE STOP 10CBC(C)C14C **************************************************4C ************** ASCII ***************4C **************************************************100 STAR1=AVBLS(1,INDEX) IF(OSWIT.NE.0)GOTO 6006 IF (STAR1.LT.32) GOTO 110102 WRITE (1,103) STAR1 103 FORMAT (1X,A1) RETURN)110 STAR1=STAR1+32 WRITE (1,112) STAR1112 FORMAT (1X,'^',A1) RETURNO6006 OARRY(1)=STAR1T OCNTR=1 RETURNOC2C2C C CE4C **************************************************4C **************** DECIMAL **********************4C ************************************************** 200 CONTINUE DO 208 I=1,8208 EIGHT(I)=AVBLS(I,INDEX)4 MAG=DABS(REAL)  IF (MAG.LT.1.D0) GOTO 240C CT8C COUNT THE # OF DIGITS TO THE LEFT OF THE DECIMAL POINT P10=1.D0O DO 210 I=1,38 P10=10.D0*P10 IF (P10.GT.MAG) GOTO 2121 210 CONTINUECO;C I COUNTS THE # OF DIGITS TO THE LEFT OF THE DECIMAL POINT  I=39 212 DEC=0 WIDTH=17F IF(I.GT.15)WIDTH=I+2N IF(I.LE.15)DEC=15-ICFCS!C CREATE PROPER FORMAT STATEMENT)215 I1=WIDTH/10O I2=WIDTH-I1*10= IF (I2.EQ.0) I2=10R DFORM(6)=DIGITS(I1,1) DFORM(7)=DIGITS(I2,1) I1=DEC/10 I2=DEC-I1*10 IF (I1.EQ.0) I1=10C IF (I2.EQ.0) I2=101 IPT=9 IF (I1.EQ.0) GOTO 220 DFORM(9)=DIGITS(I1,1) IPT=IPT+1220 DFORM(IPT)=DIGITS(I2,1)B DFORM(IPT+1)=RPARCWC CRC("C OUTPUT REAL USING NEWLY CREATED!C FORMAT STATEMENT HELD BY DFORM) IF(OSWIT.NE.0)GOTO 6009 WRITE (1,DFORM) REALT GOTO 10000O 6009 CONTINUEO IF(OSWIT.EQ.2) GOTO 61012 IF(OSWIT.GT.3)GOTO 7101 DO 6010 OCNTR=1,1066010 OARRY(OCNTR)=0= 6101 ENCODE(100,DFORM,OARRY)REAL7101 OCNTR=100 GOTO 10000OCUC)C REAL LESS THAN 1.D0 240 P10=1.D0 DO 245 I=1,38 P10=P10*.1D0U IF (MAG.GE.P10) GOTO 250O 245 CONTINUE I=0CT,C I-1 REPRESENTS THE NUMBER OF LEADING ZEROS 250 DEC=14+I WIDTH=DEC+3 GOTO 2150CC4COCNC4C **************************************************4C ************* HEXADECIMAL **********************4C **************************************************C HEXADECIMAL 300 CONTINUE DO 302 I=1,4.302 FOUR(I)=AVBLS(I,INDEX) ISV=1 IF (INT.LT.0) ISV=2 INT=IABS(INT) L=8 DO 304 I=1,4(0C PICK UP A VALUE, THEN USE INTEGER*2 EQUIVALENT+C TO WORK WITH SO SIGN DOESN'T GET EXTENED.S TWO(1)=FOUR(I)( M1=ITWO/16  M2=ITWO-M1*16 IF(M1.EQ.0)M1=16  IF(M2.EQ.0)M2=16T EIGHT(L)=DIGITS(M2,3) L=L-1 EIGHT(L)=DIGITS(M1,3) L=L-1 304 CONTINUE IF(00__^YTADATADATADATADATADATAOSWIT.NE.0)GOTO 6011 WRITE (1,310) SIGN(ISV), EIGHTL&310 FORMAT (1X,1A1,8A1,2X,'(BASE 16)') GOTO 10000T 6011 CONTINUE1 IF(OSWIT.EQ.2)GOTO 6102 IF(OSWIT.GT.3)GOTO 7102 DO 6013 OCNTR=1,1066013 OARRY(OCNTR)=0 (6102 ENCODE(8,6012,OARRY)SIGN(ISV),EIGHT6012 FORMAT(A1,8A1). 7102 OCNTR=9 GOTO 10000ECNC.CCIC64C **************************************************4C *************** INTEGER **********************4C **************************************************400 DO 404 I=1,4404 FOUR(I)=AVBLS(I,INDEX) IF(OSWIT.NE.0)GOTO 6014 WRITE (1,410) INT410 FORMAT (1X,I12)D GOTO 10000 6014 CONTINUEI IF(OSWIT.EQ.2)GOTO 6103 IF(OSWIT.GT.3)GOTO 7104 DO 6015 OCNTR=1,1066015 OARRY(OCNTR)=06103 ENCODE(12,410,OARRY)INT 7104 OCNTR=12R GOTO 10000 CXCEC,CXCN4C **************************************************4C *********** MULTIPLE PRECISION **************4C **************************************************C MULTIPLE PRECISION.C M10 500 CONTINUEC@C M8< 600 CONTINUECC M16700 CALL MOUT (INDEX,RETCD) GOTO 10000CCCCC4C **************************************************4C **************** OCTAL ***********************4C **************************************************C OCTAL800 DO 804 I=1,4804 FOUR(I)=AVBLS(I,INDEX) ISV=1 IF (INT.LT.0) ISV=2 K=IABS(INT) DO 810 I=1,11 L=K-K/8*8>C TAKE ABSOLUTE VALUE IN CASE FIRST IABS DIDN'T WORK ON -2**31 L=IABS(L) IF(L.EQ.0)L=9 LEVIN (12-I)=DIGITS(L,2) K=K/8 810 CONTINUE IF(OSWIT.NE.0)GOTO 6016 WRITE (1,820) SIGN(ISV), LEVIN&820 FORMAT (1X,1A1,11A1,2X,'(BASE 8)') GOTO 10000 6016 CONTINUE IF(OSWIT.EQ.2)GOTO 6100 IF(OSWIT.GT.3)GOTO 7105 DO 6018 OCNTR=1,1066018 OARRY(OCNTR)=0)6100 ENCODE(12,6017,OARRY)SIGN(ISV),LEVIN6017 FORMAT(12A1) 7105 OCNTR=12 GOTO 10000CCCCC4C **************************************************4C *************** REAL ***********************4C **************************************************900 DO 904 I=1,8904 EIGHT(I)=AVBLS(I,INDEX)I IF(OSWIT.NE.0)GOTO 6019 WRITE (1,910) REAL910 FORMAT (1X,D25.18) GOTO 100009 6019 CONTINUE IF (OSWIT.EQ.2)GOTO 6020C IF(OSWIT.GT.3)GOTO 7106 DO 6321 OCNTR=1,1066321 OARRY(OCNTR)=0L 6020 CONTINUE, ENCODE(28,6021,OARRY)REAL6021 FORMAT(D25.18)- 7106 OCNTR=28S 10000 RETURN END8 SUBROUTINE VARSCN(LINE,IBGN,LEND,LSTCHR,ID1,ID2,IVALID)#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY.0C VARSCN - SCAN COMMAND LINE FOR VARIABLE NAMES.C=C SCANS FOR VARIABLE NAMES OF FORM AAANNN WHERE AAA = LETTERSDC BETWEEN A AND Z UP TO NON-ALPHA, CORRESPONDING TO ROW, FOLLOWED BY:C NUMBERS IN THE 0-9 RANGE MAKING A DECIMAL COLUMN NUMBER.CC THE LETTERS ARE FORMED BY2C A-Z ALONE GIVE ROW 1-26, COL 1. % IS ROW 27,COL1C A1-Z1 GIVE ROW 1-26, COL 2C AA1-ZZ1 ARE ROW 27-52, COL 2 IMPLICIT INTEGER*2 (A-Z) INCLUDE 'VKLUGPRM.FTN'C PARAMETER RRW = 32FC PARAMETER RCL = 32 ! REAL (PHYSICAL) ROWS AND COLUMNS OF SPREADSHEETC PARAMETER RRCL = 1024C PARAMETER RRCL=RRW*RCL ! SIZE PARAMETER CUP=1,NEL=14HC NOTE COL 1 IS DUMMY. DISPLAY THE SHEET SIDEWAYS SO WE GET USUAL VISUALGC ROWS, COLS., AND ACCUMULATORS A-Z,% JUST APPEAR AS A FICTITIOUS ROW 0,C ON DISPLAY, INSTEAD OF REAL COLUMN 1 HERE.&C PARAMETER DRW = 8 ! DISPLAY MAX ROWSC PARAMETER DCL = 8 ! AND COLS DIMENSION LINE(LEND) LOGICAL*1 LINE" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9) REAL*8 XVBLS(RRWP,RCLP)) LOGICAL*1 AVBLS(20,27),VBLS(8,RRWP,RCLP) REAL*8 XAVB REAL*4 XAV2(2) LOGICAL*1 XAV1(8)) EQUIVALENCE(XAVB,XAV2(1)),(XAVB,XAV1(1))$ EQUIVALENCE(XVBLS(1,1),VBLS(1,1,1)) COMMON/V/TYPE,AVBLS,VBLS,VLEN( DIMENSION NRDSP(DRW,DCL),NCDSP(DRW,DCL) COMMON/D2R/NRDSP,NCDSPHC NRDSP AND NCDSP ARE REAL ROW, COL OF DIS00__^[Z[[[\[}PLAY ROW, COL CELLS. NOTE THATFC NOT ALL DISPLAY CELLS ARE ALWAYS ACTUALLY SHOWN; ONLY THOSE THAT FITDC ARE SHOWN; THE REST "EXIST" BUT DON'T APPEAR UNLESS ROWS ARE SMALL C ENOUGH.C.C THIS PROGRAM ALSO HANDLES CELL SPECS OF FORMIC P#+nnn#+nnn (or P#-nnn#-mmm) FOR Physical cells relative to our current@C physical cell on the sheet (clamped at boundaries), or of formCC D#+nnn#+mmm etc for Display cells relative to our current display5C location as held in the DROW,DCOL cells in commons.. integer*2 idol1,idol2,idol3,idol4,idol5,idol61 common/dollr/idol1,idol2,idol3,idol4,idol5,idol67 INTEGER*2 PROW,PCOL ! PHYSICAL ROW, COL BEING HANDLED. INTEGER*2 DROW,DCOL,DCLV,DRWV8C -- FLAG DLFG AS 0 IF NO D# FORMS EVER SEEN, 1 IF SEEN. INTEGER*2 DLFG COMMON/DLFG/DLFG! INTEGER*2 RSM,CSM,AFG,ASM,VCF,CH* COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRWV,DCLVCC DRWV,DCLV = # OF MAX ROWS, COLS ACTUALLY ON SCREEN NOW. DROW,DCOLC ARE ACTUAL "CURSOR" LOCATION.CC ZERO OUR VARIABLES8 LPFG=0 ! FLAG WE GOT A LOGICAL/PHYSICAL # FORM AND TYPE AFG=0 ! FLAG WE SAW AN ALPHA/ ASM=0 ! SUM OF ALPHAS HASHCODED (ACCUMULATOR)" NSM=0 ! ACCUMULATOR FOR NUMERICS NFG=0 ! FLAG WE SAW A NUMERIC RSM=0 ! AC FOR ROWS IN # FORMS CSM=0 ! AC FOR COLS IN # FORMSF ISPC=0 ! COUNTER FOR NONSPACES SEEN (USED TO STOP ON TRAILING SPACES) idol1=0 idol2=0 IF(LINE(IBGN).NE.'%')GOTO 2000 ID1=27 ID2=1 IVALID=1 LSTCHR=IBGN+1C SPECIAL CASE FOR % = AC #27 RETURN 2000 CONTINUE DO 1 N=IBGN,LEND VCF=0 LSTCHR=N CH=LINE(N)#C IGNORE SPACES AND TABS IF LEADING IF(CH.GT.32)ISPC=ISPC+1- IF(CH.GT.0.AND.CH.LE.32.AND.ISPC.EQ.0)GOTO 15C SPECIAL CASE TRAILING DOLLAR SIGNS... SKIP AND FLAG IF(CH.NE.36)GOTO 3443C 36 IS ASCII FOR $ SIGNC SAW A DOLLAR SIGN! IF(AFG.EQ.1.AND.NFG.EQ.0)IDOL1=1! IF(AFG.EQ.1.AND.NFG.EQ.1)IDOL2=1?C LEAVES WITH IDOL1 FLAGGED AS 1 IF LETTER PART WAS FOLLOWED BY<C DOLLAR SIGN, AND IDOL2 FLAGGED IF NUMBER PART WAS FOLLOWED,C BY DOLLAR. IGNORES ALL OTHER DOLLAR SIGNS. GOTO 1 3443 CONTINUEC GET CHARACTER VALUE IN.C MUST BE UPPERCASE.* IF(.NOT.(CH.GE.65.AND.CH.LT.91)) GOTO 100C CH IS AN ALPHA, RANGE A-Z VCF=1 ! VALID CHAR SEEN AFG=1 !SAW THE ALPHA;C IF WE SEE A NUMERIC AND THEN SEE AN ALPHA IT'S NOT VALID. IF(NFG.NE.0)GOTO 103" IF(ASM.LT.RRCL)ASM=(CH-64)+26*ASM2 IF(CH.EQ.80)LPFG=1 ! FLAG WE GOT PHYS. FORM MAYBE4 IF(CH.EQ.68)LPFG=2 ! FLAG WE GOT DISPLAY FORM MAYBE 100 CONTINUE0C EXPECT # FORMS TO HAVE # JUST AFTER 1ST ALPHA. C 35 IS ASCII VALUE OF '#' CHAR. IF(CH.EQ.35)GOTO 1000C NEXT TEST NUMERICS) IF(.NOT.(CH.GE.48.AND.CH.LE.57))GOTO 101C CH IS A NUMERIC, RANGE 0-9 VCF=1 ! VALID CHAR SEEN NFG=1 ! FLAG WE SAW NUMERIC IF(AFG.NE.0)GOTO 102 103 CONTINUEAC INVALID ... NUMERIC AND NO PRIOR ALPHA. FLAG BAD NAME AND EXIT. IVALID=0 RETURN 102 CONTINUED IF(NSM.LT.RRCL)NSM=(CH-48)+10*NSM ! CONVERT CHARS TO BINARY AS SEEN 101 CONTINUE1 IF(VCF.EQ.0)GOTO 2 !END ON ANY INVALID CHARACTER 1 CONTINUE GOTO 333 2 CONTINUE 333 CONTINUE IF(AFG.EQ.0)GOTO 103 ID1=ASM< ID2=1+NSM ! NOTE ID2=1 IF NO NUMERICS SEEN, MORE OTHERWISE. GOTO 1201 1000 CONTINUEKC HERE HANDLE CURRENT-REFERENCED FORMS USING # AS SPECIAL CHARACTER MEANINGIC THE CURRENT POSITION. THESE TYPES OF REFERENCES MAY BE MOVED AROUND THEEC SHEET WHICH ACCOUNTS FOR THEIR USEFULNESS. SINCE THERE IS A DISPLAY@C AND PHYSICAL SHEET WHICH ARE MAPPED BY A MAPPING, ALLOW EITHERFC TO BE REFERENCED. THUS, COMPLEX CALCULATIONS MAY BE DONE BUT LARGELYBC HIDDEN. THE ACCUMULATORS MAY BE USED AS SCRATCH STORAGE FOR THISC SORT OF THING.8C SAW THE # SIGN, SO SEE IF THE + OR - N CAN BE DECODED.DC IF NO P OR D WAS SEEN HOWEVER WE HAVE AN INVALID NAME, SO FLAG IT. IF(LPFG.EQ.0)GOTO 103/C PASS THE # SIGN PRIOR TO GETTING THE NUMERIC. LSTCHR=LSTCHR+1! if(line(lstchr).ne.'%')goto 3900Dc allow p#%ab form to mean use ac a and b to get offsets from "here" CSM=0 RSM=0C DEFAULT TO "THIS" CELL LSTCHR=LSTCHR+1C PASS THE % SIGN RSM=LINE(LSTCHR) CSM=LINE(LSTCHR00__^YTADATADATADATADATADATA+1) LSTCHR=LSTCHR+27C FIX UP ASCII OFFSETS, AND MEANWHILE REQUIRE UPPERCASE-C AND THAT THERE BE 2 AC'S NAMES AFTER THE %.)C THIS SHOULD BE HANDY FOR COMMAND FILES. RSM=RSM-64 CSM=CSM-649C NOW RSM, CSM ARE SUBSCRIPTS. PULL OUT VALUES FROM XVBLS" IF(RSM.LE.0.OR.RSM.GT.27)GOTO 103" IF(CSM.LE.0.OR.CSM.GT.27)GOTO 103 DO 3902 IV=1,83902 XAV1(IV)=AVBLS(IV,RSM) RSM=XAVB DO 3903 IV=1,83903 XAV1(IV)=AVBLS(IV,CSM) CSM=XAVB>C LOADS THE 2 AC'S TO THE OFFSETS AND GOES ON...JUST NEEDS THEC 2 LETTERS AFTER P#% OR D#%. goto 3901 3900 continue CALL GN(LSTCHR,LEND,NUM,LINE)4C GN GETS THE +- NN NUMBER AND RETURNS VALUE IN NUM.'C LSTCHR RETURNS AS NEXT CHAR NOT USED. RSM=NUMC 35 IS ASCII FOR '#'EC allow any delimiter between numbers, though we must have # at start)C to delimit valid relative coordinates.!C IF(LINE(LSTCHR).NE.35) GOTO 103>C IF NO SECOND # SEEN, THE FORM IS INVALID SO SAY SO AND EXIT. LSTCHR=MIN0(LSTCHR+1,LEND) CC BUMP PAST THE # IF WE SAW IT.<C now get the second numeric string and bump LSTCHR past it. NUM=0 CALL GN(LSTCHR,LEND,NUM,LINE) CSM=NUM6C NOW HAVE THE NUMBERS ENCODED. NOTE THAT ## IS VALID. 3901 CONTINUE IF(LPFG.EQ.2) GOTO 1200/C IF HERE, LPFG=1 AND WE ARE ON PHYSICAL SHEET. ID2=CSM+PCOL ID1=RSM+PROW 1201 CONTINUE$C IF(ID1.GT.RRW.OR.ID1.LE.0)GOTO 103$C IF(ID2.GT.RCL.OR.ID2.LE.0)GOTO 1030C ALLOW "REFLECTED" COORDINATES FROM ALL OVER...$ IF(ID1.LE.0.OR.ID1.GT.RRCL)GOTO 103$ IF(ID2.LE.0.OR.ID2.GT.RRCL)GOTO 103 IVALID=1 C ALL IS WELL RETURN 1200 CONTINUEC DISPLAY COLUMN RELATIVE. DLFG=10C DLFG=1 FLAGS WE'VE SEEN DISPLAY RELATIVE FORMS DRRW=DROW+RSM DRRW=MAX0(1,DRRW) DRRW=MIN0(DRW,DRRW) DCCL=DCOL+CSM DCCL=MAX0(1,DCCL) DCCL=MIN0(DCL,DCCL)#C CLAMP TO WITHIN LEGAL DIMENSIONS. ID1=NRDSP(DRRW,DCCL) ID2=NCDSP(DRRW,DCCL) GOTO 1201 ENDCC GN - GET NUMBER" SUBROUTINE GN(LAST,LEND,NUM,LINE) IMPLICIT INTEGER*2(A-Z) PARAMETER CUP=1,NEL=14 DIMENSION LINE(110) LOGICAL*1 LINE LOGICAL*1 NCH INTEGER*2 CH,SFG NUM=0 JSSF=0 ISSF=0 CH=0 SFG=1 NCH=0 DO 1 N=LAST,LEND M=N NCH=LINE(N) CH=NCH IF(CH.EQ.0)GOTO 2 IF(CH.EQ.45)SFG=-1C SFG=SIGN FLAG,C 43 IS ASCII FOR +; 45 IS ASCII FOR - SIGN.C IGNORE + SIGNS IF(CH.GT.32)ISSF=ISSF+1! IF(ISSF.EQ.0.AND.CH.EQ.32)GOTO 16C IGNORE SPACES TOO, PROVIDED THEY ARE LEADING SPACES.C (OTHERS MAY BE DELIMITERS.)$ IF(CH.EQ.43.OR.CH.EQ.45)JSSF=JSSF+1/ IF(JSSF.GT.1.AND.(CH.EQ.43.OR.CH.EQ.45))GOTO 2+C IF WE HAVEN'T SEEN A +/- PROCESS IT HERE. IF(CH.EQ.43)GOTO 1 IF(CH.EQ.45)GOTO 1 IF(CH.LT.48.OR.CH.GT.57)GOTO 2CC TERMINATE ON ANY NON NUMERIC. SHOULD ALLOW TERMINATE ON SECOND #." IF(NUM.LT.3100)NUM=10*NUM+(CH-48) 1 CONTINUEC NEXT LINE WAS MAX0...2 LAST=MIN0(M,LEND) NUM=NUM*SFG C ACCOUNTED FOR SIGN; NOW RETURN RETURN END#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY./C PARAMETERS TO DEFINE DIMENSIONS FOR VIZIKLUGE)C PHYSICAL SHEET DIMENSIONS ARE (RRW,RCL)(C DISPLAY SHEET DIMENSIONS ARE (DRW,DCL)6C RECALL 1ST DIMENSION IS ACROSS TOP, 2ND DIMENSION IS4C LENGTH DOWN. NOTE TOO THAT RCP AND RRCL ARE TO BE1C COMPUTED AS RRW*RCL AND RCPM27 IS (RRW*RCL -27)2C SINCE THERE ARE 27 ACUMULATORS (A THRU Z AND %).4C BRRCL=(RRCL+7)/8 , I.E., ENOUGH BYTES FOR A BITMAPC+C *** IMPORTANT CONSTRAINTS ON SETTINGS ***CC;C RRW MUST BE AT LEAST 27 SO THAT THE 27 ACCUMULATORS WILL=C BE AVAILABLE. (IF IT IS LESS, THE % ACCUMULATOR'S LOCATIONAC WILL NOT BE CORRECT AND WILL SCREW YOU UP UNLESS 2 TYPE ARRAYS8C ARE DEFINED; THE DATA AREAS FOR THE AC'S ARE SEPARATE>C BUT THE TYPE ARRAY IS UNIFIED. WHILE YOU MIGHT ABANDON SOME>C OF THE AC'S WITH NO REAL PENALTY EXCEPT EXPOSING YOUR USERS=C TO DOUBLE DEFINED ARE00__^[Z[[[\[}AS, THE TYPE INFO FOR % IS IN A FIXED>C LOCATION HARD CODED IN. NORMALLY YOU'LL WANT TO LEAVE IT TO>C A FLOATING TYPE AND IT MAY NOT FOUL YOU UP (MOST DATA CELLSDC WILL BE FLOATING TOO), BUT CORRECT OPERATION CANNOT BE GUARANTEEDCC UNLESS RRW (NUMBER OF COLUMNS IN PHYSICAL SHEET) IS 27 OR MORE.)C@C RCL MUST BE AT LEAST 2; THE FIRST IS THE ACCUMULATORS AND THE%C SECOND UP ARE DISPLAY COORDINATES.C8C DRW MUST BE LESS THAN OR EQUAL TO RRW AND DCL MUST BE:C LESS THAN OR EQUAL TO (RCL-1). ALSO MXCOLS MUST BE LESS7C THAN OR EQUAL TO DRW AND MXROWS MUST BE LESS THAN ORC EQUAL TO DCL.C=C MPWD IS JUST THE MAX PRINT LINE FOR THE W COMMAND (WRITING>C PRINT IMAGES OF THE SCREEN OUT). IT MAY BE SET SMALLER THAN>C 132, BUT TO MAKE IT LARGER YOU'LL HAVE TO INCREASE THE SIZE>C OF PRINT ARRAYS IN DSPSHT ROUTINE WHICH FILLS IN THE SIZES.C=C IT IS ASSUMED YOUR FORTRAN UNDERSTANDS THESE PARAMETERS ARE<C ALL INTEGER QUANTITIES; CHANGE AS NEEDED IF FORM IS WRONG.C=C THERE ARE A FEW PARAMETER STATEMENTS IN PROGRAMS TOO. THESE;C HAVE TO DO WITH UVT100 DEFINITIONS AND MAY ALSO BE PULLEDC INTO HERE IF DESIRED.C@C PARAMETER RRCL=RRW*RCL. COMPUTE AND FILL IN YOURSELF (FORTRAN.C AT OUR SITE DOESN'T LET THAT BE AUTOMATIC).!C RCPM27 IS COMPUTED AS RRCL-27.+C PARAMETER RCP IS THE SAME VALUE AS RRCL.C+C *****************************************. PARAMETER DCL = 200 ! DISPLAY MAX ROWS, COLS.& PARAMETER DRW = 63 ! DISPLAY MAX COLSEC NOTE THAT DCL ROWS MAY BE PRINTED EVEN THOUGH THE VT100 ONLY ALLOWS<C 20 TO BE DISPLAYED; JUST SET THE DISPLAY LENGTH TO MORE... PARAMETER MPWD = 132$ PARAMETER RRW = 80 ! NUMBER OF COLSF PARAMETER RCL = 401 ! REAL (PHYSICAL) ROWS AND COLUMNS OF SPREADSHEETFC note the next 2 parameters are 1 because subroutines worry about theC storage separately.) PARAMETER RRWP=1 ! PHYSICAL STORAGE SIZE PARAMETER RCLP=1 ! COL,ROW PARAMETER RCR=1 ! RRWP*RCLPAC FOLLOWING IS A DUMMY, ONLY USED FOR A DATA STMT; LEAVE IT AT 1. PARAMETER RCRM27=1 !RCR - 27 PARAMETER RCP = 32080 PARAMETER RCPM27 = 32053 PARAMETER RRCL = 32080C PARAMETER RRCL=RRW*RCL4C BRRCL=(RRCL+7)/8 , I.E., ENOUGH BYTES FOR A BITMAP PARAMETER BRRCL=4010 PARAMETER TMREFN = 1BC MXCOLS AND MXROWS ARE MAX COLS (ACROSS TOP) ON DISPLAY INITIALLYCC AND NUMBER OF INITIALLY DISPLAYED ROWS (ALONG LEFT) DOWN. DRW,DCL3C ARE MAX POSSIBLE DISPLAY COLS, ROWS RESPECTIVELY. PARAMETER MXCOLS=7 PARAMETER MXROWS=20BC LCMDR AND LDSPR ARE COMMAND AND DISPLAY ROWS ON SCREEN. REDEFINE<C TO OTHER NUMBERS FOR LARGER OR SMALLER SCREENS THAN VT100. PARAMETER LCMDR=23 PARAMETER LDSPR=24C7C JVTINC IS INCREMENT FOR OFFSET DUE TO SCREEN ODDITIES PARAMETER JVTINC=0BC SET JVTINC TO 0 FOR VT52 OR TERMINAL INDEPENDENT SCREEN VERSIONSC8C PARAMETER FOR MAX NUMBER OF HELP SCREENS. SET TO 9 FOR:C STANDARD HELP FILE, OR BIGGER IF DESIRED FOR HELPPRO.FORC FILE. PARAMETER MAXHLP=9CC PARAMETERS FOR DISK VERSION.DC THESE SET THE SIZES OF MEMORY BUFFERS USED FOR VALUES AND FORMULAS;C HANDLED HEREIN. IT IS EXPECTED THAT LVBF WILL BE AT LEAST<C 50 (FOR 250 WORDS), OR A MULTIPLE OF 50, SINCE IT CONTROLS;C VALUE BUFFER RECORDS, KEPT IN 500-BYTE DISK BLOCKS. ALSO,<C LFM SHOULD BE 32 OR A MULTIPLE OF 32. SINCE A SYMBOL TABLE9C ALGORITHM IS USED, THE MULTIPLES PROBABLY SHOULD BE THE@C SAME. THERE MIGHT BE MORE VALUES THAN FORMULAS THOUGH, AS WHENC MATRIX MATH IS USED. PARAMETER LVBF=200 PARAMETER LFM=5125C LFM4 NEEDS TO BE LFM*4 AND LVBF4 NEEDS TO BE LVBF*4'C (USED AS EQUIVALENCES FOR I*4 ARRAYS) PARAMETER LFM4=2048 PARAMETER LVBF4=800 PARAMETER LFMX=1 PARAMETER LFM4X=1 PARAMETER LFMY=128512'C LFMY SHOULD BE SAME AS LPDMF = LPDM/5C (SETS SIZE OF SEARCH...)9C LPDM=RRCL/64 AND IPDM=RRCL/400, BOTH MULTIPLIED BY 10244C SO THEY ARE DIMENSIONS OF DATA AREAS IN COMMON FOR,C VAX-ONLY "DATA STORAGE AREA", PSEUDO-FILE. PARAMETER IPDM=82944 PARAMETER LPDM=514048 PARAMETER LVBF5=1000 PARAMETER IPDM5=165888C LVBF5=LVBF*5; IPDM5=IPDM00``^YTADATADATADATADATADATA*2C LPDMF = LPDM/4 PARAMETER LPDMF=128512$ SUBROUTINE WRKFIL(NREC,ARRAY,IFUNC)+C COPYRIGHT 1983,1984,1985 GLENN C.EVERHART3C PERMISSION IS GRANTED TO COPY, BUT NOT FOR PROFIT3C ** MUCH SIMPLER VERSION OF WRKFIL FOR VAX ONLY **/C USES BIG ARRAY (QFDAT) INSTEAD OF LOCAL PAGE.C$C WORKFILE PSEUDO-MAINTAINER FOR VAXC8C THIS ROUTINE IS INTENDED TO PERMIT THE SCRATCH FILE OF;C PORTACALC TO BE DISPENSED WITH BY USING A LARGE IN-MEMORY=C ARRAY. A BITMAP WILL SET UP WHEN THE ELEMENT IS INIT'ED AND3C THE DEFAULT ELEMENT WILL BE COMPUTED AND RETURNED&C IF AN UNINITIALIZED ELEMENT IS USED. INCLUDE 'VKLUGPRM.FTN' PARAMETER CUP=1CC INTEGER*4 NRC INTEGER*2 NRC2(2) EQUIVALENCE(NRC2(1),NRC)C RECORD NUMBER TO ACCESS INTEGER*2 NREC,NRECWK LOGICAL*1 ARRAY(128) INTEGER*2 IFUNC& INTEGER*2 IPGMAX,LPGMXF,IPGMOD,LPGMOD* COMMON/FILEMX/IPGMAX,LPGMXF,IPGMOD,LPGMODBC LENGTHS (IN K) OF FILES FOR VALUES OR FORMULAS ARE IPGMAX,LPGMXFC INTEGER*2 NCEL,NXINI COMMON/NCEL/NCEL,NXINI! INTEGER*2 MFID,IFID(8,LFM),MFMOD INTEGER*2 RRWACT,RCLACT COMMON/RCLACT/RRWACT,RCLACT LOGICAL*1 LFID(16,LFM)0 integer*4 nnn,LLL,IPM,IHASH,JHASH,IBF,N,IPAG,KQ INTEGER*4 NNNW! EQUIVALENCE(IFID(1,1),LFID(1,1)) COMMON/FRM/MFID,IFID,MFMOD LOGICAL*1 LI,LJ,IBYTE&C DATA AREA. HANDLE AS "VIRTUAL FILE". INTEGER*4 QFID(LFM4) EQUIVALENCE(QFID(1),LFID(1,1))" INTEGER*4 QFDAT(LPDM),QVDAT(IPDM)CC HERE ADD DEFINITIONS FOR QLFID AND QIFID WHICH ARE THE WHOLE AREA)C TO BE USED. MAKE IT ALL ONE GIANT PAGE. LOGICAL*1 QLFID(16,LPDMF) INTEGER*2 QIFID(8,LPDMF), EQUIVALENCE(QLFID(1,1),QIFID(1,1),QFDAT(1)) COMMON/QVCMN/QVDAT,QFDATFC DEFFMT IS THE DEFAULT FORMAT FOR NUMERICS. INITIALLY IT WILL BE F9.2 LOGICAL*1 DEFFMT(10),DVFMT(12) EQUIVALENCE(DVFMT(2),DEFFMT(1)) COMMON/DEFVBX/DVFMT?C FORMAT BLOCK (ONE ONLY, 512 BYTES, BUT ORGANIZED AS 45 FORMATC AREAS WITH DATA.) LOGICAL*1 FMTDAT(9,45) COMMON/FMTBFR/FMTDATCC IFUNC SPECIFIES WHAT TO DO:C =0 READ INTO ARRAY!C =1 WRITE FROM ARRAY INTO WRKARY/C =2 INITIALIZE (JUST CLEARS BITMAP HERE)(OPEN)C =3 CLOSE (CLEARS BITMAP HERE)# IF(IFUNC.LT.0.OR.IFUNC.GT.3)RETURN JFUN=IFUNC+1 GOTO (1000,2000,3000,4000),JFUN 1000 CONTINUEC READ CALL FVLDGT(NREC,1,IBYTE) IF(IBYTE.NE.0)GOTO 1001)C UNINITIALIZED ARRAY ELEMENT: SET IT UP. DO 1003 N=1,1281003 ARRAY(N)=0 ARRAY(1)='P' ARRAY(2)='#' ARRAY(3)='#'.C ADD EXTRA 0 SO WE CAN TELL WHY LOCATE FAILED ARRAY(118)=15 DO 1004 N=1,91004 ARRAY(N+119)=DEFFMT(N) C RETURN THE DEFAULT FORMAT NOW. RETURN 1001 CONTINUE DO 1053 N=1,1281053 ARRAY(N)=0 ARRAY(119)=IBYTE ARRAY(118)=15 ARRAY(1)='0''C LET ARRAY INITIALLY BE SET SENSIBLY.. DO 1054 N=1,91054 ARRAY(N+119)=DEFFMT(N)#C WE MAY MODIFY FORMAT LATER TOO...GC NOW HAVE A NON-DEFAULT ELEMENT TO READ... GO THROUGH SYMBOL TBL LOGICDC FOR THESE, WE USE 16-BYTE "CELLS" WHICH HAVE THE FOLLOWING FORMAT:8C ID 2 BYTES (CELL ADDRESS, MUST BE 1 OR MORE FOR VALID)C FLAG 1 BYTE (TYPE OF CELL:C 0 = UNUSEDC 1 = 1 OF 1 CELLS(C 2 = NONTERMINAL OF MORE THAN 1 CELLC 3 = LAST OF >1 CELLS?C FORMAT 1 BYTE (INDEX OF FORMAT STRING FOR THIS CELL; FORMATS+C ARE STORED RESIDENT, UP TO 45 OF THEM,C SET BY DF COMMAND.)"C FORMULA 12 BYTES (FORMULA TEXT)-C SET UP HASH CODE NOW FOR THE WAY WE NEED...@CC NOW HAVE THE DESIRED MEMORY PAGE; READ THE FORMULA INTO ARRAY CC BUFFER. IARSUB=1HCC FOR SIMPLICITY FORGET THE HASHCODE WITHIN MEMORY BUFFERS, JUST SEARCHCC FROM START... IFLAG=0 IFMT=0 JHASH=NREC NRECW00 `_^[Z[[[\[}K=NREC DO 2500 NN=1,LFM n=mod((nn+jhash),LPDMF)+1=C SKIP IF WE GET 0 ID CELL INDICATING NEVER-INITIALIZED CELL.) IF(NN.GT.2.AND.QIFID(1,N).EQ.0)GOTO 2505-C SKIP OUT IF HIT A VIRGIN CELL AFTER 3 TRIES" IF(QIFID(1,N).NE.NRECWK)GOTO 2500 IFLAG=QLFID(3,N) IF(IFMT.EQ.0)IFMT=QLFID(4,N) DO 2502 K=1,12 LI=QLFID(K+4,N)/C COPY FORMULA TEXT INTO ARRAY. END ON NULLS... IF(LI.LE.0)GOTO 2500 ARRAY(IARSUB)=LI&C KEEP NULLS AFTER ANYTHING ENTERED... ARRAY(IARSUB+1)=0 ARRAY(IARSUB+2)=0 IARSUB=IARSUB+1 2502 CONTINUE& IF(IFLAG.EQ.1.OR.IFLAG.EQ.3)GOTO 2505 2500 CONTINUE 2505 CONTINUEC GET FORMAT NOW... IF(IFMT.LE.0)RETURN DO 2510 N=1,9 2510 ARRAY(119+N)=FMTDAT(N,IFMT) GOTO 5000 2000 CONTINUEC WRITE.C NOW SET INIT'D BIT; WRITE ARRAY ELEMENT OUT.&C FIRST FIND FORMAT AREA OR SET IT UP. IFMT=0 LFF=05C FAKE OUT THE SAVING OF FVLD INFO IN THIS ARRAY TOO.@C THIS IS INCOMPLETE AND NO LITTLE OF A KLUDGE BUT THE CODE WILL:C GENERALLY SET THEM TOGETHER, AND THIS GUARANTEES THAT IF=C FURTHER SETS TRY TO SET FVLD TO ARRAY(119), THEY'LL WORK ASC THEY SHOULD."C HERE SET MAX ARRAY ELEMENTS USEDC EXPECT (ID2-1)*RRW+ID1 C ID1 IS RRW DIM, ID2 IS RCL DIM NRC2(1)=NREC IRUSED=MOD(NRC,RRW) ICUSED=((NRC-IRUSED)/RRW)+1" IF(ICUSED.GT.RCLACT)RCLACT=ICUSED" IF(IRUSED.GT.RRWACT)RRWACT=IRUSEDC SET RRWACT, RCLACT2 IF(ARRAY(119).NE.0)CALL FVLDST(NREC,1,ARRAY(119)) DO 2011 N=1,45' IF(FMTDAT(1,N).LE.0.AND.LFF.EQ.0)LFF=N=C SAVE FIRST FREE FORMAT AREA IN CASE THIS IS A NEW FORMAT... DO 2010 M=1,9) IF(ARRAY(M+119).NE.FMTDAT(M,N))GOTO 2011 2010 CONTINUE IFMT=N GOTO 2012 2011 CONTINUE-C ON FALL THROUGH, WE FOUND NOTHING FOR IT...DC USE HIS FORMAT UNLESS WE HAVE NO ROOM, IN WHICH CASE USE LAST AREA IF(LFF.EQ.0)LFF=45 IFMT=LFF DO 2013 N=1,92013 FMTDAT(N,LFF)=ARRAY(119+N)%C SAVE FORMAT DATA WE NOW POINT TO... 2012 CONTINUE>C NOW THE HARDER PART... MUST WRITE THE ARRAY'S FORMULA TOO...C IPM=(LPGMXF*64/LFM)+1 IARSUB=1GC FOR SIMPLICITY FORGET THE HASHCODE WITHIN MEMORY BUFFERS, JUST SEARCHC FROM START...BC OMIT THE ZEROING WHEN READING IN FROM FILE EXCEPT IN /MERGE MODE JHASH=NREC IF(NXINI.NE.0)GOTO 6233Ac note that because we detect virgin entries (0 contents), we pay@c essentially no penalty for having one giant page. Here we only?c optimize storage by using no more for formulas than is really@c needed. We also avoid continual copying to/from a working pageAc which is needed in the PDP11 (or MSDOS) environment. The systemAc needs a fair amount of virtual address space to make this work,c but VMS provides that. DO 1490 NN=1,LFM n=mod((nn+jhash),LPDMF)+1) IF(NN.GE.2.AND.QIFID(1,N).EQ.0)GOTO 6233 IF(QIFID(1,N).NE.NREC)GOTO 1490!C ZERO OLD RECORDS OF THIS ONE... NCEL=NCEL-1 IF(NCEL.LT.0)NCEL=0 DO 1498 KK=1,86C SET TO -1 TO FLAG NON VIRGIN CELL BUT NOTHING IN IT.1498 QIFID(KK,N)=-1 1490 CONTINUE 6233 CONTINUE IFLAG=0 DO 1500 NN=1,LFM n=mod((nn+jhash),LPDMF)+1( IF(QIFID(1,N).NE.-1.AND.QIFID(1,N).NE.0, 1 .AND.QIFID(1,N).NE.NREC)GOTO 1500C FOUND A NULL NODE...C FILL IT IN NOW. NCEL=NCEL+1 QIFID(1,N)=NREC IFLAG=1 QLFID(4,N)=IFMT QLFID(3,N)=IFLAG DO 1502 K=1,12 LI=ARRAY(IARSUB) IF(LI.LE.0)GOTO 1505C CHOP IT OFF AT 109 ALSO... IF(IARSUB.GT.109)GOTO 1560 QLFID(K+4,N)=LI IARSUB=IARSUB+1 1502 CONTINUEAC NONTERMINAL COPY...NEED ANOTHER CELL. FIRST TEST FOR EXACT FIT, C HOWEVER. IF(ARRAY(IARSUB).LE.0)GOTO 1560 IFLAG=2 QLFID(3,N)=IFLAG&C NOW GO GET MORE SPACE FOR NEXT NODE.,C NOTE IT COULD RUN OUT, BUT JUST PUNT THAT. GOTO 1500 1560 CONTINUE IF(IFLAG.EQ.1)IFLAG=3 QLFID(3,N)=IFLAG*C SETS UP EITHER 1 OR 3 FOR TERMINAL NODES GOTO 1505C ESCAPE FROM LOOP ON ENDS... 1500 CONTINUE<C HERE WE RAN OUT OF ROOM. TOO BAD...CAN'T REALLY HELP IT ORC DO MUCH. JUST FORGET IT.0C HOWEVER, PRINT A MESSAGE ON SCREEN AT LEAST... CALL UVT100(CUP,1,1) WRITE(6,8970)B8970 FORMAT(' Formula area overflowed. Save, use larger version.') 1505 CONTINUE C 00``^YTADATADATADATADATADATADONE NOW. GOTO 5000 3000 CONTINUEC OPEN (CLR BITMAP) MFID=0 GOTO 5000 4000 CONTINUEC CLOSE (CLR BITMAP)c CLOSE(UNIT=7,DISP='DELETE') MFID=0 5000 RETURN ENDC 2 BUFFER VERSION$ SUBROUTINE WRKFIL(NREC,ARRAY,IFUNC)!C COPYRIGHT 1983 GLENN C.EVERHART3C PERMISSION IS GRANTED TO COPY, BUT NOT FOR PROFITC$C WORKFILE PSEUDO-MAINTAINER FOR VAXC8C THIS ROUTINE IS INTENDED TO PERMIT THE SCRATCH FILE OF;C PORTACALC TO BE DISPENSED WITH BY USING A LARGE IN-MEMORY=C ARRAY. A BITMAP WILL SET UP WHEN THE ELEMENT IS INIT'ED AND3C THE DEFAULT ELEMENT WILL BE COMPUTED AND RETURNED&C IF AN UNINITIALIZED ELEMENT IS USED. INCLUDE 'VKLUGPRM.FTN' PARAMETER CUP=1CC INTEGER*4 NRC INTEGER*2 NRC2(2) EQUIVALENCE(NRC2(1),NRC)C RECORD NUMBER TO ACCESS INTEGER NREC  LOGICAL*1 ARRAY(128) INTEGER IFUNC& INTEGER*2 IPGMAX,LPGMXF,IPGMOD,LPGMOD* COMMON/FILEMX/IPGMAX,LPGMXF,IPGMOD,LPGMODBC LENGTHS (IN K) OF FILES FOR VALUES OR FORMULAS ARE IPGMAX,LPGMXFC INTEGER*2 NCEL,NXINI COMMON/NCEL/NCEL,NXINI' INTEGER*2 MFID(2),IFID(8,LFM),MFMOD(2)& INTEGER*2 MFLAST,MFBASE,MVLAST,MVBASE) COMMON/VBCTL/MFLAST,MFBASE,MVLAST,MVBASE INTEGER*2 RRWACT,RCLACT COMMON/RCLACT/RRWACT,RCLACT LOGICAL*1 LFID(16,LFM)! EQUIVALENCE(IFID(1,1),LFID(1,1)) COMMON/FRM/MFID,IFID,MFMOD LOGICAL*1 LI,LJ,IBYTEFC DEFFMT IS THE DEFAULT FORMAT FOR NUMERICS. INITIALLY IT WILL BE F9.2 LOGICAL*1 DEFFMT(10),DVFMT(12) EQUIVALENCE(DVFMT(2),DEFFMT(1)) COMMON/DEFVBX/DVFMT?C FORMAT BLOCK (ONE ONLY, 512 BYTES, BUT ORGANIZED AS 45 FORMATC AREAS WITH DATA.) LOGICAL*1 FMTDAT(9,45) COMMON/FMTBFR/FMTDATCC IFUNC SPECIFIES WHAT TO DO:C =0 READ INTO ARRAY!C =1 WRITE FROM ARRAY INTO WRKARY/C =2 INITIALIZE (JUST CLEARS BITMAP HERE)(OPEN)C =3 CLOSE (CLEARS BITMAP HERE)# IF(IFUNC.LT.0.OR.IFUNC.GT.3)RETURN JFUN=IFUNC+1 GOTO (1000,2000,3000,4000),JFUN 1000 CONTINUEC READ DO 1003 N=1,1281c set up as for uninitialized array element first1003 ARRAY(N)=0C ARRAY(1)='P'C ARRAY(2)='#'C ARRAY(4)='#'C ARRAY(3)='0'C ARRAY(5)='0' ARRAY(1)='0' ARRAY(2)='.' ARRAY(118)=15 DO 1004 N=1,91004 ARRAY(N+119)=DEFFMT(N) CALL FVLDGT(NREC,1,IBYTE) IF(IBYTE.NE.0)GOTO 1001)C UNINITIALIZED ARRAY ELEMENT: SET IT UP. C RETURN THE DEFAULT FORMAT NOW. RETURN 1001 CONTINUE6c if element really is there set its fvld flag up from8c fvldgt returned value. The rest of the defaults are OK c already. ARRAY(119)=IBYTE#C WE MAY MODIFY FORMAT LATER TOO...GC NOW HAVE A NON-DEFAULT ELEMENT TO READ... GO THROUGH SYMBOL TBL LOGICDC FOR THESE, WE USE 16-BYTE "CELLS" WHICH HAVE THE FOLLOWING FORMAT:8C ID 2 BYTES (CELL ADDRESS, MUST BE 1 OR MORE FOR VALID)C FLAG 1 BYTE (TYPE OF CELL:C 0 = UNUSEDC 1 = 1 OF 1 CELLS(C 2 = NONTERMINAL OF MORE THAN 1 CELLC 3 = LAST OF >1 CELLS?C FORMAT 1 BYTE (INDEX OF FORMAT STRING FOR THIS CELL; FORMATS+C ARE STORED RESIDENT, UP TO 45 OF THEM,C SET BY DF COMMAND.)"C FORMULA 12 BYTES (FORMULA TEXT)-C SET UP HASH CODE NOW FOR THE WAY WE NEED...C IPM=(LPGMXF*64/LFM)+1 IBF=(LFM+63)/64 LLL=(LPGMXF*2)/IBF IPM=LLL IF(IPM.LT.2)IPM=2/C FORCE IPM (MAX MEM PAGE) TO BE IN VALID RANGE IHASH=NREC JHASH=MOD(IHASH,(LFM/2)) IF(LPGMOD.NE.0)GOTO 5305 IPAG=(IHASH/(LFM/2))+1 IPAG=MOD(IPAG,IPM)+1 GOTO 5306 5305 CONTINUEC SPEED OPTIMAL PACK FPG=FLOAT(LPGMOD) IF(FPG.LT.0.)FPG=FPG+65536. FPG=FLOAT(IHASH)*FLOAT(IPM)/FPG IPAG=FPG IPAG=MOD(IPAG,IPM) IPAG=IPAG+1C IPAG=1+(IHASH*IPM)/RRCL 5306 CONTINUEC IF(IPAG.LE.0)IPAG=1/ IF(IPAG.EQ.MFID(1).OR.IPAG.EQ.MFID(2))GOTO 853 IF(MFID(1).NE.0)GOTO 852 MFID(1)=IPAG GOTO 853 852 IF(MFID(2).EQ.0)MF00`_^[Z[[[\[}ID(2)=IPAG 853 CONTINUE IF(MFID(1).EQ.IPAG)GOTO 850 IF(MFID(2).EQ.IPAG)GOTO 851 GOTO 854 850 CONTINUE MFLAST=1 MFBASE=0 GOTO 1400 851 CONTINUE C 2ND PAGE MFLAST=2 MFBASE=LFM/2 GOTO 1400 854 CONTINUE MFLAST=3-MFLAST MFBASE=(LFM/2)-MFBASE,C FLIP AND USE LRU BUFFER OF THE 2 IN MEMORYCJC NOW MFID HAS MEMORY PAGE CURRENTLY PRESENT, IPAG IS DESIRED ONE FOR THISLC FORMULA. NOTE WHILE WE USE A HASHCODE TO SEARCH FOR FORMULAS, ALL SEGMENTSIC OF A FORMULA MUST BE PLACED IN ONE MEMORY PAGE. THUS, IT IS POSSIBLE TODC RUN OUT OF SPACE IF THE MEMORY BUFFER GETS TOO SMALL. CURRENT HASHFC CODE TRIES TO SPREAD THE FORMULAS OUT, BUT BIG MEMORY BUFFERS ALWAYS C WIN..... IF(LPGMXF.LE.(LFM/64))GOTO 1400>C WRITE WHATEVER'S IN MEMORY TO FILE AND READ THE NEW PAGE IN. IBF=(LFM+63)/64 IF(IBF.LT.1)IBF=1C IBF IS BLK FACTOR L=1+MFBASE LLBK=(MFID(MFLAST)-1)*IBF+1 LHBK=MFID(MFLAST)*IBF DO 1170 N=LLBK,LHBK IF(MFMOD(MFLAST).EQ.0)GOTO 11709C SKIP WRITING OUT IF BLOCK WAS NOT MODIFIED SINCE READIN LL=L+31' WRITE(7'N)((IFID(K,KK),K=1,8),KK=L,LL) L=L+32 1170 CONTINUEC NOW READ IN THE DATA MFMOD(MFLAST)=0C MARK NEW BLOCK UNTOUCHED MFID(MFLAST)=IPAG L=1+MFBASE LLBK=(MFID(MFLAST)-1)*IBF+1 LHBK=MFID(MFLAST)*IBF DO 1171 N=LLBK,LHBK LL=L+31& READ(7'N)((IFID(K,KK),K=1,8),KK=L,LL) L=L+32 1171 CONTINUE/C DATA ALL SHOULD BE THERE NOW... OK, GO AHEAD. 1400 CONTINUE?C NOW HAVE THE DESIRED MEMORY PAGE; READ THE FORMULA INTO ARRAY C BUFFER. IARSUB=1GC FOR SIMPLICITY FORGET THE HASHCODE WITHIN MEMORY BUFFERS, JUST SEARCHC FROM START... IFLAG=0 IFMT=0 DO 2500 NN=1,LFM/2# n=mod((nn+jhash),(lfm/2))+1+MFBASE) IF(NN.GT.2.AND.IFID(1,N).EQ.-1)GOTO 2505-C SKIP OUT IF HIT A VIRGIN CELL AFTER 3 TRIES IF(IFID(1,N).NE.NREC)GOTO 2500 IFLAG=LFID(3,N) IF(IFMT.EQ.0)IFMT=LFID(4,N) DO 2502 K=1,12 LI=LFID(K+4,N)/C COPY FORMULA TEXT INTO ARRAY. END ON NULLS... IF(LI.LE.0)GOTO 2500 ARRAY(IARSUB)=LI8C NULL OUT COUPLE EXTRA BYTES TO TERMINATE REGARDLESS OFC WHATEVER USED TO BE THERE...=C NOTE THAT STD FORMULA BUFFER DOESN'T REALLY USE 111,112 FORC ANYTHING MUCH... ARRAY(IARSUB+1)=0 ARRAY(IARSUB+2)=0C *** END EXTRA NULLING IARSUB=IARSUB+1 2502 CONTINUE& IF(IFLAG.EQ.1.OR.IFLAG.EQ.3)GOTO 2505 2500 CONTINUE 2505 CONTINUEC GET FORMAT NOW... IF(IFMT.LE.0)RETURN DO 2510 N=1,9 2510 ARRAY(119+N)=FMTDAT(N,IFMT) GOTO 5000 2000 CONTINUEC WRITE.C NOW SET INIT'D BIT; WRITE ARRAY ELEMENT OUT.&C FIRST FIND FORMAT AREA OR SET IT UP. IFMT=0 LFF=05C FAKE OUT THE SAVING OF FVLD INFO IN THIS ARRAY TOO.@C THIS IS INCOMPLETE AND NO LITTLE OF A KLUDGE BUT THE CODE WILL:C GENERALLY SET THEM TOGETHER, AND THIS GUARANTEES THAT IF=C FURTHER SETS TRY TO SET FVLD TO ARRAY(119), THEY'LL WORK ASC THEY SHOULD."C HERE SET MAX ARRAY ELEMENTS USEDC EXPECT (ID2-1)*RRW+ID1 C ID1 IS RRW DIM, ID2 IS RCL DIM NRC2(1)=NREC/C KEEP TRACK OF LOWER RIGHT CORNER OF USED AREA IRUSED=MOD(NRC,RRW) ICUSED=((NRC-IRUSED)/RRW)+1" IF(ICUSED.GT.RCLACT)RCLACT=ICUSED" IF(IRUSED.GT.RRWACT)RRWACT=IRUSEDC SET RRWACT, RCLACT2 IF(ARRAY(119).NE.0)CALL FVLDST(NREC,1,ARRAY(119)) DO 2011 N=1,45' IF(FMTDAT(1,N).LE.0.AND.LFF.EQ.0)LFF=N=C SAVE FIRST FREE FORMAT AREA IN CASE THIS IS A NEW FORMAT... DO 2010 M=1,9) IF(ARRAY(M+119).NE.FMTDAT(M,N))GOTO 2011 2010 CONTINUE IFMT=N GOTO 2012 2011 CONTINUE-C ON FALL THROUGH, WE FOUND NOTHING FOR IT...DC USE HIS FORMAT UNLESS WE HAVE NO ROOM, IN WHICH CASE USE LAST AREA IF(LFF.EQ.0)LFF=45 IFMT=LFF DO 2013 N=1,92013 FMTDAT(N,LFF)=ARRAY(119+N)%C SAVE FORMAT DATA WE NOW POINT TO... 2012 CONTINUE>C NOW THE HARDER PART... MUST WRITE THE ARRAY'S FORMULA TOO...C IPM=(LPGMXF*64/LFM)+1 IBF=(LFM+63)/64 LLL=(LPGMXF*2)/IBF IPM=LLL IF(IPM.LT.2)IPM=2/C FORCE IPM (MAX MEM PAGE) TO BE IN VALID RANGE IHASH=NREC JHASH=MOD(IHASH,(LFM/2)) IF(LPGMOD.NE.0)GOTO 5307 IPAG=(IHASH/(LFM/2))+1 IPAG=MOD(IPAG,IPM)+1 GOTO 5308 5307 CONTINUEC SPEED OPTIMAL PACK F00"``^YTADATADATADATADATADATAPG=FLOAT(LPGMOD) IF(FPG.LT.0.)FPG=FPG+65536. FPG=FLOAT(IHASH)*FLOAT(IPM)/FPG IPAG=FPG IPAG=MOD(IPAG,IPM) IPAG=IPAG+1C IPAG=1+(IHASH*IPM)/RRCL 5308 CONTINUEC IF(IPAG.LE.0)IPAG=1/ IF(IPAG.EQ.MFID(1).OR.IPAG.EQ.MFID(2))GOTO 953 IF(MFID(1).NE.0)GOTO 952 MFID(1)=IPAG GOTO 953 952 IF(MFID(2).EQ.0)MFID(2)=IPAG 953 CONTINUE IF(MFID(2).EQ.IPAG)GOTO 951 IF(MFID(1).NE.IPAG)GOTO 954 950 CONTINUEC PAGE 1 = NEEDED MFLAST=1 MFBASE=0 GOTO 2400 951 CONTINUEC NEED 2ND BUFFER MFLAST=2 MFBASE=LFM/2 GOTO 2400 954 CONTINUE"C USE LRU BUFFER AND SWAP TO DISK. MFLAST=3-MFLASTC MFLAST IS 1 OR 2 ONLY MFBASE=(LFM/2)-MFBASECJC NOW MFID HAS MEMORY PAGE CURRENTLY PRESENT, IPAG IS DESIRED ONE FOR THISLC FORMULA. NOTE WHILE WE USE A HASHCODE TO SEARCH FOR FORMULAS, ALL SEGMENTSIC OF A FORMULA MUST BE PLACED IN ONE MEMORY PAGE. THUS, IT IS POSSIBLE TODC RUN OUT OF SPACE IF THE MEMORY BUFFER GETS TOO SMALL. CURRENT HASHFC CODE TRIES TO SPREAD THE FORMULAS OUT, BUT BIG MEMORY BUFFERS ALWAYS C WIN..... IF(LPGMXF.LE.(LFM/64))GOTO 2400>C WRITE WHATEVER'S IN MEMORY TO FILE AND READ THE NEW PAGE IN. IBF=(LFM+63)/64C IBF IS BLK FACTOR L=1+MFBASE LLBK=(MFID(MFLAST)-1)*IBF+1 LHBK=MFID(MFLAST)*IBF DO 2170 N=LLBK,LHBK IF(MFMOD(MFLAST).EQ.0)GOTO 2170,C SKIP WRITEOUT IF OLD PAGE WAS NOT MODIFIED LL=L+31' WRITE(7'N)((IFID(K,KK),K=1,8),KK=L,LL) L=L+32 2170 CONTINUEC NOW READ IN THE DATA MFID(MFLAST)=IPAG<C MARK NEXT PAGE AS MODIFIED SINCE WE WILL NOW WRITE INTO IT C MFMOD=1 L=1+MFBASE LLBK=(MFID(MFLAST)-1)*IBF+1 LHBK=MFID(MFLAST)*IBF DO 2171 N=LLBK,LHBK LL=L+31& READ(7'N)((IFID(K,KK),K=1,8),KK=L,LL) L=L+32 2171 CONTINUE/C DATA ALL SHOULD BE THERE NOW... OK, GO AHEAD. 2400 CONTINUE?C NOW HAVE THE DESIRED MEMORY PAGE; READ THE FORMULA INTO ARRAY C BUFFER. MFMOD(MFLAST)=1 IARSUB=1GC FOR SIMPLICITY FORGET THE HASHCODE WITHIN MEMORY BUFFERS, JUST SEARCHC FROM START...BC OMIT THE ZEROING WHEN READING IN FROM FILE EXCEPT IN /MERGE MODE IF(NXINI.NE.0)GOTO 6233 DO 1490 NN=1,LFM/2# n=mod((nn+jhash),(lfm/2))+1+MFBASE) IF(NN.GE.2.AND.IFID(1,N).EQ.-1)GOTO 6233 IF(IFID(1,N).NE.NREC)GOTO 1490!C ZERO OLD RECORDS OF THIS ONE... NCEL=NCEL-1 IF(NCEL.LT.0)NCEL=0 DO 1498 KK=1,81498 IFID(KK,N)=0 1490 CONTINUE 6233 CONTINUE IFLAG=0 DO 1500 NN=1,LFM/2# n=mod((nn+jhash),(lfm/2))+1+MFBASE& IF(IFID(1,N).NE.-1.AND.IFID(1,N).NE.0+ 1 .AND.IFID(1,N).NE.NREC)GOTO 1500C FOUND A NULL NODE...C FILL IT IN NOW. NCEL=NCEL+1 IFID(1,N)=NREC IFLAG=1 LFID(4,N)=IFMT LFID(3,N)=IFLAG DO 1502 K=1,12 LI=ARRAY(IARSUB) IF(LI.LE.0)GOTO 1505C CHOP IT OFF AT 109 ALSO... IF(IARSUB.GT.109)GOTO 1560 LFID(K+4,N)=LI IARSUB=IARSUB+1 1502 CONTINUEAC NONTERMINAL COPY...NEED ANOTHER CELL. FIRST TEST FOR EXACT FIT, C HOWEVER. IF(ARRAY(IARSUB).LE.0)GOTO 1560 IFLAG=2 LFID(3,N)=IFLAG&C NOW GO GET MORE SPACE FOR NEXT NODE.,C NOTE IT COULD RUN OUT, BUT JUST PUNT THAT. GOTO 1500 1560 CONTINUE IF(IFLAG.EQ.1)IFLAG=3 LFID(3,N)=IFLAG*C SETS UP EITHER 1 OR 3 FOR TERMINAL NODES GOTO 1505C ESCAPE FROM LOOP ON ENDS... 1500 CONTINUE<C HERE WE RAN OUT OF ROOM. TOO BAD...CAN'T REALLY HELP IT ORC DO MUCH. JUST FORGET IT.0C HOWEVER, PRINT A MESSAGE ON SCREEN AT LEAST... CALL UVT100(CUP,1,1) WRITE(6,8970);8970 FORMAT(' Formula file overflowed. Try a larger file.') 1505 CONTINUE C DONE NOW. GOTO 5000 4000 CONTINUEC CLOSE (CLR BITMAP) CLOSE(UNIT=7,DISP='DELETE') 3000 CONTINUEC OPEN (CLR BITMAP) MFID(1)=0 MFID(2)=0 MFBASE=0 MFLAST=1 5000 RETURN END00*`_^[Z[[[\[}$ SUBROUTINE WRKFIL(NREC,ARRAY,IFUNC)!C COPYRIGHT 1983 GLENN C.EVERHART3C PERMISSION IS GRANTED TO COPY, BUT NOT FOR PROFITC$C WORKFILE PSEUDO-MAINTAINER FOR VAXC8C THIS ROUTINE IS INTENDED TO PERMIT THE SCRATCH FILE OF;C PORTACALC TO BE DISPENSED WITH BY USING A LARGE IN-MEMORY=C ARRAY. A BITMAP WILL SET UP WHEN THE ELEMENT IS INIT'ED AND3C THE DEFAULT ELEMENT WILL BE COMPUTED AND RETURNED&C IF AN UNINITIALIZED ELEMENT IS USED. INCLUDE 'VKLUGPRM.FTN' PARAMETER CUP=1CC INTEGER*4 NRC INTEGER*2 NRC2(2) EQUIVALENCE(NRC2(1),NRC)C RECORD NUMBER TO ACCESS INTEGER NREC  LOGICAL*1 ARRAY(128) INTEGER IFUNC& INTEGER*2 IPGMAX,LPGMXF,IPGMOD,LPGMOD* COMMON/FILEMX/IPGMAX,LPGMXF,IPGMOD,LPGMODBC LENGTHS (IN K) OF FILES FOR VALUES OR FORMULAS ARE IPGMAX,LPGMXFC INTEGER*2 NCEL,NXINI COMMON/NCEL/NCEL,NXINI! INTEGER*2 MFID,IFID(8,LFM),MFMOD INTEGER*2 RRWACT,RCLACT COMMON/RCLACT/RRWACT,RCLACT LOGICAL*1 LFID(16,LFM)! EQUIVALENCE(IFID(1,1),LFID(1,1)) COMMON/FRM/MFID,IFID,MFMOD LOGICAL*1 LI,LJ,IBYTEFC DEFFMT IS THE DEFAULT FORMAT FOR NUMERICS. INITIALLY IT WILL BE F9.2 LOGICAL*1 DEFFMT(10),DVFMT(12) EQUIVALENCE(DVFMT(2),DEFFMT(1)) COMMON/DEFVBX/DVFMT?C FORMAT BLOCK (ONE ONLY, 512 BYTES, BUT ORGANIZED AS 45 FORMATC AREAS WITH DATA.) LOGICAL*1 FMTDAT(9,45) COMMON/FMTBFR/FMTDATCC IFUNC SPECIFIES WHAT TO DO:C =0 READ INTO ARRAY!C =1 WRITE FROM ARRAY INTO WRKARY/C =2 INITIALIZE (JUST CLEARS BITMAP HERE)(OPEN)C =3 CLOSE (CLEARS BITMAP HERE)# IF(IFUNC.LT.0.OR.IFUNC.GT.3)RETURN JFUN=IFUNC+1 GOTO (1000,2000,3000,4000),JFUN 1000 CONTINUEC READ CALL FVLDGT(NREC,1,IBYTE) IF(IBYTE.NE.0)GOTO 1001)C UNINITIALIZED ARRAY ELEMENT: SET IT UP. DO 1003 N=1,1281003 ARRAY(N)=0 ARRAY(1)='P' ARRAY(2)='#' ARRAY(3)='#' ARRAY(118)=15 DO 1004 N=1,91004 ARRAY(N+119)=DEFFMT(N) C RETURN THE DEFAULT FORMAT NOW. RETURN 1001 CONTINUE DO 1053 N=1,1281053 ARRAY(N)=0 ARRAY(119)=IBYTE ARRAY(118)=15 ARRAY(1)=48'C LET ARRAY INITIALLY BE SET SENSIBLY.. DO 1054 N=1,91054 ARRAY(N+119)=DEFFMT(N)#C WE MAY MODIFY FORMAT LATER TOO...GC NOW HAVE A NON-DEFAULT ELEMENT TO READ... GO THROUGH SYMBOL TBL LOGICDC FOR THESE, WE USE 16-BYTE "CELLS" WHICH HAVE THE FOLLOWING FORMAT:8C ID 2 BYTES (CELL ADDRESS, MUST BE 1 OR MORE FOR VALID)C FLAG 1 BYTE (TYPE OF CELL:C 0 = UNUSEDC 1 = 1 OF 1 CELLS(C 2 = NONTERMINAL OF MORE THAN 1 CELLC 3 = LAST OF >1 CELLS?C FORMAT 1 BYTE (INDEX OF FORMAT STRING FOR THIS CELL; FORMATS+C ARE STORED RESIDENT, UP TO 45 OF THEM,C SET BY DF COMMAND.)"C FORMULA 12 BYTES (FORMULA TEXT)-C SET UP HASH CODE NOW FOR THE WAY WE NEED...C IPM=(LPGMXF*64/LFM)+1 IBF=(LFM+31)/32 LLL=(LPGMXF*2)/IBF IPM=LLL IF(IPM.LT.1)IPM=1/C FORCE IPM (MAX MEM PAGE) TO BE IN VALID RANGEC IHHI=NREC/256C IHHI=IHHI.AND.127C IHASH=NREC.AND.255C IHASH=IHASH*128+IHHIC IHASH=IHASH.AND.32767 IHASH=NREC JHASH=MOD(IHASH,LFM) IF(LPGMOD.NE.0)GOTO 5305 IPAG=(IHASH/LFM)+1 IPAG=MOD(IPAG,IPM)+1 GOTO 5306 5305 CONTINUEC SPEED OPTIMAL PACK FPG=FLOAT(LPGMOD) IF(FPG.LT.0.)FPG=FPG+65536. FPG=FLOAT(IHASH)*FLOAT(IPM)/FPG IPAG=FPG IPAG=MOD(IPAG,IPM) IPAG=IPAG+1C IPAG=1+(IHASH*IPM)/RRCL 5306 CONTINUE IF(IPAG.LE.0)IPAG=1 IF(MFID.EQ.0)MFID=IPAGJC NOW MFID HAS MEMORY PAGE CURRENTLY PRESENT, IPAG IS DESIRED ONE FOR THISLC FORMULA. NOTE WHILE WE USE A HASHCODE TO SEARCH FOR FORMULAS, ALL SEGMENTSIC OF A FORMULA MUST BE PLACED IN ONE MEMORY PAGE. THUS, IT IS POSSIBLE TODC RUN OUT OF SPACE IF THE MEMORY BUFFER GETS TOO SMALL. CURRENT HASHFC CODE TRIES TO SPREAD THE FORMULAS OUT, BUT BIG MEMORY BUFFERS ALWAYS C WIN..... IF(IPAG.EQ.MFID)GOTO 1400 IF(LPGMXF.LE.(LFM/64))GOTO 1400>C WRITE WHATEVER'S IN MEMORY TO FILE AND READ THE NEW PAGE IN. IBF=(LFM+31)/32 IF(IBF.LT.1)IBF=1C IBF IS BLK FACTOR L=1 LLBK=(MFID-1)*IBF+1 LHBK=MFID*IBF DO 1170 N=LLBK,LHBK IF(MFMOD.EQ.0)GOTO 11709C SKIP WRITING OUT IF BLOCK WAS NOT MODIFIED SIN002``^YTADATADATADATADATADATACE READIN LL=L+31' WRITE(7'N)((IFID(K,KK),K=1,8),KK=L,LL) L=L+32 1170 CONTINUEC NOW READ IN THE DATA MFMOD=0C MARK NEW BLOCK UNTOUCHED MFID=IPAG L=1 LLBK=(MFID-1)*IBF+1 LHBK=MFID*IBF DO 1171 N=LLBK,LHBK LL=L+31& READ(7'N)((IFID(K,KK),K=1,8),KK=L,LL) L=L+32 1171 CONTINUE/C DATA ALL SHOULD BE THERE NOW... OK, GO AHEAD. 1400 CONTINUE?C NOW HAVE THE DESIRED MEMORY PAGE; READ THE FORMULA INTO ARRAY C BUFFER. IARSUB=1GC FOR SIMPLICITY FORGET THE HASHCODE WITHIN MEMORY BUFFERS, JUST SEARCHC FROM START... IFLAG=0 IFMT=0 DO 2500 NN=1,LFM n=mod((nn+jhash),lfm)+1) IF(NN.GT.3.AND.IFID(1,N).EQ.-1)GOTO 2505-C SKIP OUT IF HIT A VIRGIN CELL AFTER 3 TRIES IF(IFID(1,N).NE.NREC)GOTO 2500 IFLAG=LFID(3,N) IF(IFMT.EQ.0)IFMT=LFID(4,N) DO 2502 K=1,12 LI=LFID(K+4,N)/C COPY FORMULA TEXT INTO ARRAY. END ON NULLS... IF(LI.LE.0)GOTO 2500 ARRAY(IARSUB)=LI IARSUB=IARSUB+1 2502 CONTINUE& IF(IFLAG.EQ.1.OR.IFLAG.EQ.3)GOTO 2505 2500 CONTINUE 2505 CONTINUEC GET FORMAT NOW... IF(IFMT.LE.0)RETURN DO 2510 N=1,9 2510 ARRAY(119+N)=FMTDAT(N,IFMT) GOTO 5000 2000 CONTINUEC WRITE.C NOW SET INIT'D BIT; WRITE ARRAY ELEMENT OUT.&C FIRST FIND FORMAT AREA OR SET IT UP. IFMT=0 LFF=05C FAKE OUT THE SAVING OF FVLD INFO IN THIS ARRAY TOO.@C THIS IS INCOMPLETE AND NO LITTLE OF A KLUDGE BUT THE CODE WILL:C GENERALLY SET THEM TOGETHER, AND THIS GUARANTEES THAT IF=C FURTHER SETS TRY TO SET FVLD TO ARRAY(119), THEY'LL WORK ASC THEY SHOULD."C HERE SET MAX ARRAY ELEMENTS USEDC EXPECT (ID2-1)*RRW+ID1 C ID1 IS RRW DIM, ID2 IS RCL DIM NRC2(1)=NREC IRUSED=MOD(NRC,RRW) ICUSED=((NRC-IRUSED)/RRW)+1" IF(ICUSED.GT.RCLACT)RCLACT=ICUSED" IF(IRUSED.GT.RRWACT)RRWACT=IRUSEDC SET RRWACT, RCLACT2 IF(ARRAY(119).NE.0)CALL FVLDST(NREC,1,ARRAY(119)) DO 2011 N=1,45' IF(FMTDAT(1,N).LE.0.AND.LFF.EQ.0)LFF=N=C SAVE FIRST FREE FORMAT AREA IN CASE THIS IS A NEW FORMAT... DO 2010 M=1,9) IF(ARRAY(M+119).NE.FMTDAT(M,N))GOTO 2011 2010 CONTINUE IFMT=N GOTO 2012 2011 CONTINUE-C ON FALL THROUGH, WE FOUND NOTHING FOR IT...DC USE HIS FORMAT UNLESS WE HAVE NO ROOM, IN WHICH CASE USE LAST AREA IF(LFF.EQ.0)LFF=45 IFMT=LFF DO 2013 N=1,92013 FMTDAT(N,LFF)=ARRAY(119+N)%C SAVE FORMAT DATA WE NOW POINT TO... 2012 CONTINUE>C NOW THE HARDER PART... MUST WRITE THE ARRAY'S FORMULA TOO...C IPM=(LPGMXF*64/LFM)+1 IBF=(LFM+31)/32 LLL=(LPGMXF*2)/IBF IPM=LLL IF(IPM.LT.1)IPM=1/C FORCE IPM (MAX MEM PAGE) TO BE IN VALID RANGEC IHHI=NREC/256C IHHI=IHHI.AND.127C IHASH=NREC.AND.255C IHASH=IHASH*128+IHHIC IHASH=IHASH.AND.32767 IHASH=NREC JHASH=MOD(IHASH,LFM) IF(LPGMOD.NE.0)GOTO 5307 IPAG=(IHASH/LFM)+1 IPAG=MOD(IPAG,IPM)+1 GOTO 5308 5307 CONTINUEC SPEED OPTIMAL PACK FPG=FLOAT(LPGMOD) IF(FPG.LT.0.)FPG=FPG+65536. FPG=FLOAT(IHASH)*FLOAT(IPM)/FPG IPAG=FPG IPAG=MOD(IPAG,IPM) IPAG=IPAG+1C IPAG=1+(IHASH*IPM)/RRCL 5308 CONTINUE IF(IPAG.LE.0)IPAG=1 IF(MFID.EQ.0)MFID=IPAGJC NOW MFID HAS MEMORY PAGE CURRENTLY PRESENT, IPAG IS DESIRED ONE FOR THISLC FORMULA. NOTE WHILE WE USE A HASHCODE TO SEARCH FOR FORMULAS, ALL SEGMENTSIC OF A FORMULA MUST BE PLACED IN ONE MEMORY PAGE. THUS, IT IS POSSIBLE TODC RUN OUT OF SPACE IF THE MEMORY BUFFER GETS TOO SMALL. CURRENT HASHFC CODE TRIES TO SPREAD THE FORMULAS OUT, BUT BIG MEMORY BUFFERS ALWAYS C WIN..... IF(IPAG.EQ.MFID)GOTO 2400 IF(LPGMXF.LE.(LFM/64))GOTO 2400>C WRITE WHATEVER'S IN MEMORY TO FILE AND READ THE NEW PAGE IN. IBF=(LFM+31)/32C IBF IS BLK FACTOR L=1 LLBK=(MFID-1)*IBF+1 LHBK=MFID*IBF DO 2170 N=LLBK,LHBK IF(MFMOD.EQ.0)GOTO 2170,C SKIP WRITEOUT IF OLD PAGE WAS NOT MODIFIED LL=L+31' WRITE(7'N)((IFID(K,KK),K=1,8),KK=L,LL) L=L+32 2170 CONTINUEC NOW READ IN THE DATA MFID=IPAG<C MARK NEXT PAGE AS MODIFIED SINCE WE WILL NOW WRITE INTO IT C MFMOD=1 L=1 LLBK=(MFID-1)*IBF+1 LHBK=MFID*IBF DO 2171 N=LLBK,LHBK LL=L+31& READ(7'N)((IFID(K,KK),K=1,8),KK=L,LL) L=L+32 2171 CONTINUE/C DATA ALL SHOULD BE THERE NOW... 00:`>`^[Z[[[\[}OK, GO AHEAD. 2400 CONTINUE?C NOW HAVE THE DESIRED MEMORY PAGE; READ THE FORMULA INTO ARRAY C BUFFER. MFMOD=1 IARSUB=1GC FOR SIMPLICITY FORGET THE HASHCODE WITHIN MEMORY BUFFERS, JUST SEARCHC FROM START...BC OMIT THE ZEROING WHEN READING IN FROM FILE EXCEPT IN /MERGE MODE IF(NXINI.NE.0)GOTO 6233 DO 1490 NN=1,LFM n=mod((nn+jhash),lfm)+1) IF(NN.GE.3.AND.IFID(1,N).EQ.-1)GOTO 6233 IF(IFID(1,N).NE.NREC)GOTO 1490!C ZERO OLD RECORDS OF THIS ONE... NCEL=NCEL-1 IF(NCEL.LT.0)NCEL=0 DO 1498 KK=1,81498 IFID(KK,N)=0 1490 CONTINUE 6233 CONTINUE IFLAG=0 DO 1500 NN=1,LFM n=mod((nn+jhash),lfm)+1& IF(IFID(1,N).NE.-1.AND.IFID(1,N).NE.0+ 1 .AND.IFID(1,N).NE.NREC)GOTO 1500C FOUND A NULL NODE...C FILL IT IN NOW. NCEL=NCEL+1 IFID(1,N)=NREC IFLAG=1 LFID(4,N)=IFMT LFID(3,N)=IFLAG DO 1502 K=1,12 LI=ARRAY(IARSUB) IF(LI.LE.0)GOTO 1505C CHOP IT OFF AT 109 ALSO... IF(IARSUB.GT.109)GOTO 1560 LFID(K+4,N)=LI IARSUB=IARSUB+1 1502 CONTINUEAC NONTERMINAL COPY...NEED ANOTHER CELL. FIRST TEST FOR EXACT FIT, C HOWEVER. IF(ARRAY(IARSUB).LE.0)GOTO 1560 IFLAG=2 LFID(3,N)=IFLAG&C NOW GO GET MORE SPACE FOR NEXT NODE.,C NOTE IT COULD RUN OUT, BUT JUST PUNT THAT. GOTO 1500 1560 CONTINUE IF(IFLAG.EQ.1)IFLAG=3 LFID(3,N)=IFLAG*C SETS UP EITHER 1 OR 3 FOR TERMINAL NODES GOTO 1505C ESCAPE FROM LOOP ON ENDS... 1500 CONTINUE<C HERE WE RAN OUT OF ROOM. TOO BAD...CAN'T REALLY HELP IT ORC DO MUCH. JUST FORGET IT.0C HOWEVER, PRINT A MESSAGE ON SCREEN AT LEAST... CALL UVT100(CUP,1,1) WRITE(6,8970);8970 FORMAT(' Formula file overflowed. Try a larger file.') 1505 CONTINUE C DONE NOW. GOTO 5000 3000 CONTINUEC OPEN (CLR BITMAP) MFID=0 GOTO 5000 4000 CONTINUEC CLOSE (CLR BITMAP) CLOSE(UNIT=7,DISP='DELETE') MFID=0 5000 RETURN END$ SUBROUTINE WRKFIL(NREC,ARRAY,IFUNC)+C COPYRIGHT 1983,1984,1985 GLENN C.EVERHART3C PERMISSION IS GRANTED TO COPY, BUT NOT FOR PROFIT3C ** MUCH SIMPLER VERSION OF WRKFIL FOR VAX ONLY **/C USES BIG ARRAY (QFDAT) INSTEAD OF LOCAL PAGE.C$C WORKFILE PSEUDO-MAINTAINER FOR VAXC8C THIS ROUTINE IS INTENDED TO PERMIT THE SCRATCH FILE OF;C PORTACALC TO BE DISPENSED WITH BY USING A LARGE IN-MEMORY=C ARRAY. A BITMAP WILL SET UP WHEN THE ELEMENT IS INIT'ED AND3C THE DEFAULT ELEMENT WILL BE COMPUTED AND RETURNED&C IF AN UNINITIALIZED ELEMENT IS USED. INCLUDE 'VKLUGPRM.FTN' PARAMETER CUP=1CC INTEGER*4 NRC INTEGER*2 NRC2(2) EQUIVALENCE(NRC2(1),NRC)C RECORD NUMBER TO ACCESS INTEGER*2 NREC,NRECWK LOGICAL*1 ARRAY(128) INTEGER*2 IFUNC& INTEGER*2 IPGMAX,LPGMXF,IPGMOD,LPGMOD* COMMON/FILEMX/IPGMAX,LPGMXF,IPGMOD,LPGMODBC LENGTHS (IN K) OF FILES FOR VALUES OR FORMULAS ARE IPGMAX,LPGMXFC INTEGER*2 NCEL,NXINI COMMON/NCEL/NCEL,NXINI" INTEGER*2 MFID,IFID(8,LFMX),MFMOD INTEGER*2 RRWACT,RCLACT COMMON/RCLACT/RRWACT,RCLACT LOGICAL*1 LFID(16,LFMX)0 integer*4 nnn,LLL,IPM,IHASH,JHASH,IBF,N,IPAG,KQ INTEGER*4 NNNW! EQUIVALENCE(IFID(1,1),LFID(1,1)) COMMON/FRM/MFID,IFID,MFMOD LOGICAL*1 LI,LJ,IBYTE&C DATA AREA. HANDLE AS "VIRTUAL FILE". INTEGER*4 QFID(LFM4X) EQUIVALENCE(QFID(1),LFID(1,1))" INTEGER*4 QFDAT(LPDM),QVDAT(IPDM)CC HERE ADD DEFINITIONS FOR QLFID AND QIFID WHICH ARE THE WHOLE AREA)C TO BE USED. MAKE IT ALL ONE GIANT PAGE. LOGICAL*1 QLFID(16,LPDMF) INTEGER*2 QIFID(8,LPDMF), EQUIVALENCE(QLFID(1,1),QIFID(1,1),QFDAT(1)) COMMON/QVCMN/QVDAT,QFDATFC DEFFMT IS THE DEFAULT FORMAT FOR NUMERICS. INITIALLY IT WILL BE F9.2 LOGICAL*1 DEFFMT(10),DVFMT(12) EQUIVALENCE(DVFMT(2),DEFFMT(1)) COMMON/DEFVBX/DVFMT?C FORMAT BLOCK (ONE ONLY, 512 BYTES, BUT ORGANIZED AS 45 FORMATC AREAS WITH DATA.) LOGICAL*1 FMTDAT(9,45) COMMON/FMTBFR/FMTDATCC(C DEFINE FILE AREAS FOR MAPPING FILES...DC ONE INPUT FILE, TO BE ACCESSED AS A RANDOM ACCESS FILE OF 00B``^YTADATADATADATADATADATA128 BYTEDC RECORDS OF DATA IF RANDOM, OR AS A FORMULA FILE IF SEQUENTIAL, AND?C ONE OUTPUT FILE TO BE WRITTEN THE SAME WAY. INPUT FILE CAN BEC INPUT - ONLY OR READ/WRITE.CBC DEFINE ALSO DATA STRUCTURES TO HOLD CELL RANGES (IN ROW AND COL)BC TO BE TREATED WITH THESE FILES, FLAG FOR HOW-OPEN, AND LUN USED.CC MFIOPN = 0 IF NOT OPEN&C 1 IF OPEN FOR READ ONLY, SEQUENTIALC 2 IF OPEN READ ONLY, RANDOM C 3 IF OPEN READ/WRITE, RANDOM.CC MFOOPN = 0 IF NOT OPENC 1 IF OPEN WRITE SEQUENTIALC 2 IF OPEN WRITE RANDOMC!C OTHER OPTIONS DON'T MAKE SENSE.9C MFIRL,MFIRH = RRW DIMENSION LOW, HIGH BOUND, INPUT FILE9C MFICL,MFICH = RCL DIMENSION LOW, HIGH BOUND, INPUT FILE%C MFORL,RH,MFOCL,CH = OUT FILE BOUNDS"C MFILUN,MFOLUN ARE LOGICAL UNITS. INTEGER*2 MFILO,MFOLO) INTEGER*2 MFIOPN,MFIRL,MFIRH,MFICL,MFICH) INTEGER*2 MFOOPN,MFORL,MFORH,MFOCL,MFOCH& INTEGER*2 MFILUN,MFOLUN,MFIFLG,MFOFLG5 COMMON/MFILES/MFIOPN,MFOOPN,MFIRL,MFIRH,MFICL,MFICH,; 1 MFORL,MFORH,MFOCL,MFOCH,MFILUN,MFOLUN,MFIFLG,MFOFLGCCC IFUNC SPECIFIES WHAT TO DO:C =0 READ INTO ARRAY!C =1 WRITE FROM ARRAY INTO WRKARY/C =2 INITIALIZE (JUST CLEARS BITMAP HERE)(OPEN)C =3 CLOSE (CLEARS BITMAP HERE)# IF(IFUNC.LT.0.OR.IFUNC.GT.3)RETURN JFUN=IFUNC+1 GOTO (1000,2000,3000,4000),JFUN 1000 CONTINUEC READ CALL FVLDGT(NREC,1,IBYTE) IF(IBYTE.NE.0)GOTO 1001)C UNINITIALIZED ARRAY ELEMENT: SET IT UP. DO 1003 N=1,1281003 ARRAY(N)=0 ARRAY(1)='P' ARRAY(2)='#' ARRAY(3)='#'.C ADD EXTRA 0 SO WE CAN TELL WHY LOCATE FAILED ARRAY(118)=15 DO 1004 N=1,91004 ARRAY(N+119)=DEFFMT(N) C RETURN THE DEFAULT FORMAT NOW. RETURN 1001 CONTINUE DO 1053 N=1,1281053 ARRAY(N)=0 ARRAY(119)=IBYTE ARRAY(118)=15 ARRAY(1)='0''C LET ARRAY INITIALLY BE SET SENSIBLY.. DO 1054 N=1,91054 ARRAY(N+119)=DEFFMT(N)#C WE MAY MODIFY FORMAT LATER TOO...GC NOW HAVE A NON-DEFAULT ELEMENT TO READ... GO THROUGH SYMBOL TBL LOGICDC FOR THESE, WE USE 16-BYTE "CELLS" WHICH HAVE THE FOLLOWING FORMAT:8C ID 2 BYTES (CELL ADDRESS, MUST BE 1 OR MORE FOR VALID)C FLAG 1 BYTE (TYPE OF CELL:C 0 = UNUSEDC 1 = 1 OF 1 CELLS(C 2 = NONTERMINAL OF MORE THAN 1 CELLC 3 = LAST OF >1 CELLS?C FORMAT 1 BYTE (INDEX OF FORMAT STRING FOR THIS CELL; FORMATS+C ARE STORED RESIDENT, UP TO 45 OF THEM,C SET BY DF COMMAND.)"C FORMULA 12 BYTES (FORMULA TEXT)-C SET UP HASH CODE NOW FOR THE WAY WE NEED...@CC NOW HAVE THE DESIRED MEMORY PAGE; READ THE FORMULA INTO ARRAY CC BUFFER. IARSUB=1HCC FOR SIMPLICITY FORGET THE HASHCODE WITHIN MEMORY BUFFERS, JUST SEARCHCC FROM START... IFLAG=0 IFMT=0 JHASH=NREC NRECWK=NREC DO 2500 NN=1,LFMY n=mod((nn+jhash),LPDMF)+1=C SKIP IF WE GET 0 ID CELL INDICATING NEVER-INITIALIZED CELL.) IF(NN.GT.2.AND.QIFID(1,N).EQ.0)GOTO 2505-C SKIP OUT IF HIT A VIRGIN CELL AFTER 3 TRIES" IF(QIFID(1,N).NE.NRECWK)GOTO 2500 IFLAG=QLFID(3,N) IF(IFMT.EQ.0)IFMT=QLFID(4,N) DO 2502 K=1,12 LI=QLFID(K+4,N)/C COPY FORMULA TEXT INTO ARRAY. END ON NULLS... IF(LI.LE.0)GOTO 2500 ARRAY(IARSUB)=LI&C KEEP NULLS AFTER ANYTHING ENTERED... ARRAY(IARSUB+1)=0 ARRAY(IARSUB+2)=0 IARSUB=IARSUB+1 2502 CONTINUE& IF(IFLAG.EQ.1.OR.IFLAG.EQ.3)GOTO 2505 2500 CONTINUE 2505 CONTINUEC GET FORMAT NOW... IF(IFMT.LE.0)RETURN DO 2510 N=1,9 2510 ARRAY(119+N)=FMTDAT(N,IFMT)5C NOW MODFIY BY READING FROM FILE IF PRESET TO DO SO. CALL FNDRC(NREC,ARRAY,JFUN) GOTO 5000 2000 CONTINUEC WRITE.C NOW SET INIT'D BIT; WRITE ARRAY ELEMENT OUT.&C FIRST FIND FORMAT AREA OR SET IT UP. IFMT=0 LFF=05C FAKE OUT THE SAVING OF FVLD INFO IN THIS ARRAY TOO.@C THIS IS INCOMPLETE AND NO LITTLE OF A KLUDGE BUT THE CODE WILL:C GENERALLY SET THEM TOGETHER, AND THIS GUARANTEES THAT IF=C FURTHER SETS TRY TO SET FVLD TO ARRAY(119), THEY'LL WORK ASC THEY SHOULD."C HERE SET MAX ARRAY ELEMENTS USEDC EXPECT (ID2-1)*RRW+ID1 C ID1 IS RRW DIM, ID2 IS RCL DIM NRC2(1)=NREC IRUSED=MOD(NRC,RRW) ICUSED=((NRC-IRUSED)/RRW)+1" IF(ICUSED.GT.RCLACT)RCLACT=00J`>`^[Z[[[\[}ICUSED" IF(IRUSED.GT.RRWACT)RRWACT=IRUSEDC SET RRWACT, RCLACT2 IF(ARRAY(119).NE.0)CALL FVLDST(NREC,1,ARRAY(119)) DO 2011 N=1,45' IF(FMTDAT(1,N).LE.0.AND.LFF.EQ.0)LFF=N=C SAVE FIRST FREE FORMAT AREA IN CASE THIS IS A NEW FORMAT... DO 2010 M=1,9) IF(ARRAY(M+119).NE.FMTDAT(M,N))GOTO 2011 2010 CONTINUE IFMT=N GOTO 2012 2011 CONTINUE-C ON FALL THROUGH, WE FOUND NOTHING FOR IT...DC USE HIS FORMAT UNLESS WE HAVE NO ROOM, IN WHICH CASE USE LAST AREA IF(LFF.EQ.0)LFF=45 IFMT=LFF DO 2013 N=1,92013 FMTDAT(N,LFF)=ARRAY(119+N)%C SAVE FORMAT DATA WE NOW POINT TO... 2012 CONTINUE>C NOW THE HARDER PART... MUST WRITE THE ARRAY'S FORMULA TOO...C IPM=(LPGMXF*64/LFM)+1 IARSUB=1GC FOR SIMPLICITY FORGET THE HASHCODE WITHIN MEMORY BUFFERS, JUST SEARCHC FROM START...BC OMIT THE ZEROING WHEN READING IN FROM FILE EXCEPT IN /MERGE MODE JHASH=NREC IF(NXINI.NE.0)GOTO 6233Ac note that because we detect virgin entries (0 contents), we pay@c essentially no penalty for having one giant page. Here we only?c optimize storage by using no more for formulas than is really@c needed. We also avoid continual copying to/from a working pageAc which is needed in the PDP11 (or MSDOS) environment. The systemAc needs a fair amount of virtual address space to make this work,c but VMS provides that. DO 1490 NN=1,LFMY n=mod((nn+jhash),LPDMF)+1) IF(NN.GE.2.AND.QIFID(1,N).EQ.0)GOTO 6233 IF(QIFID(1,N).NE.NREC)GOTO 1490!C ZERO OLD RECORDS OF THIS ONE... NCEL=NCEL-1 IF(NCEL.LT.0)NCEL=0 DO 1498 KK=1,86C SET TO -1 TO FLAG NON VIRGIN CELL BUT NOTHING IN IT.1498 QIFID(KK,N)=-1 1490 CONTINUE 6233 CONTINUE IFLAG=0 DO 1500 NN=1,LFMY n=mod((nn+jhash),LPDMF)+1( IF(QIFID(1,N).NE.-1.AND.QIFID(1,N).NE.0, 1 .AND.QIFID(1,N).NE.NREC)GOTO 1500C FOUND A NULL NODE...C FILL IT IN NOW. NCEL=NCEL+1 QIFID(1,N)=NREC IFLAG=1 QLFID(4,N)=IFMT QLFID(3,N)=IFLAG DO 1502 K=1,12 LI=ARRAY(IARSUB) IF(LI.LE.0)GOTO 1505C CHOP IT OFF AT 109 ALSO... IF(IARSUB.GT.109)GOTO 1560 QLFID(K+4,N)=LI IARSUB=IARSUB+1 1502 CONTINUEAC NONTERMINAL COPY...NEED ANOTHER CELL. FIRST TEST FOR EXACT FIT, C HOWEVER. IF(ARRAY(IARSUB).LE.0)GOTO 1560 IFLAG=2 QLFID(3,N)=IFLAG&C NOW GO GET MORE SPACE FOR NEXT NODE.,C NOTE IT COULD RUN OUT, BUT JUST PUNT THAT. GOTO 1500 1560 CONTINUE IF(IFLAG.EQ.1)IFLAG=3 QLFID(3,N)=IFLAG*C SETS UP EITHER 1 OR 3 FOR TERMINAL NODES GOTO 1505C ESCAPE FROM LOOP ON ENDS... 1500 CONTINUE<C HERE WE RAN OUT OF ROOM. TOO BAD...CAN'T REALLY HELP IT ORC DO MUCH. JUST FORGET IT.0C HOWEVER, PRINT A MESSAGE ON SCREEN AT LEAST... CALL UVT100(CUP,1,1) WRITE(6,8970)B8970 FORMAT(' Formula area overflowed. Save, use larger version.') 1505 CONTINUE C DONE NOW.@C TAKE ARRAY AND WRITE TO AUX FILE IF REQUIRED TO DO SO HOWEVER. CALL FNDRC(NREC,ARRAY,JFUN) GOTO 5000 3000 CONTINUEC OPEN (CLR BITMAP) MFID=0 GOTO 5000 4000 CONTINUEC CLOSE (CLR BITMAP)c CLOSE(UNIT=7,DISP='DELETE') MFID=0 5000 RETURN END" SUBROUTINE FNDRC(IREC,ARRAY,IFCT)$ INTEGER*2 IREC,IRRR,ICCC,IRREC,IFCT LOGICAL*1 ARRAY(128)C IREC= INPUT INDEX%C IRRR,ICCC ARE EQUIV COL,ROW INDICESC IRREC = RECORD EQUIV. IN FILE C IFCT = 1 FOR READ, 2 FOR WRITE$C IF 1, THEN USE READING INTO ARRAY.(C IF 2, THEN WRITING FROM ARRAY TO FILE. C ARRAY GETS MODIFIED AS NEEDED. INCLUDE 'VKLUGPRM.FTN'CC(C DEFINE FILE AREAS FOR MAPPING FILES...DC ONE INPUT FILE, TO BE ACCESSED AS A RANDOM ACCESS FILE OF 128 BYTEDC RECORDS OF DATA IF RANDOM, OR AS A FORMULA FILE IF SEQUENTIAL, AND?C ONE OUTPUT FILE TO BE WRITTEN THE SAME WAY. INPUT FILE CAN BEC INPUT - ONLY OR READ/WRITE.CBC DEFINE ALSO DATA STRUCTURES TO HOLD CELL RANGES (IN ROW AND COL)BC TO BE TREATED WITH THESE FILES, FLAG FOR HOW-OPEN, AND LUN USED.CC MFIOPN = 0 IF NOT OPEN&C 1 IF OPEN FOR READ ONLY, SEQUENTIALC 2 IF OPEN READ ONLY, RANDOM C 3 IF OPEN READ/WRITE, RANDOM.CC MFOOPN = 0 IF NOT OPENC 1 IF OPEN WRITE SEQUENTIALC 2 IF OPEN WRITE RANDOMC!C OT00R`W`^YTADATADATADATADATADATAHER OPTIONS DON'T MAKE SENSE.9C MFIRL,MFIRH = RRW DIMENSION LOW, HIGH BOUND, INPUT FILE9C MFICL,MFICH = RCL DIMENSION LOW, HIGH BOUND, INPUT FILE%C MFORL,RH,MFOCL,CH = OUT FILE BOUNDS"C MFILUN,MFOLUN ARE LOGICAL UNITS.) INTEGER*2 MFIOPN,MFIRL,MFIRH,MFICL,MFICH) INTEGER*2 MFOOPN,MFORL,MFORH,MFOCL,MFOCH& INTEGER*2 MFILUN,MFOLUN,MFIFLG,MFOFLG5 COMMON/MFILES/MFIOPN,MFOOPN,MFIRL,MFIRH,MFICL,MFICH,; 1 MFORL,MFORH,MFOCL,MFOCH,MFILUN,MFOLUN,MFIFLG,MFOFLG LOGICAL*1 WRK(128)CC& IF(MFIOPN.EQ.0.AND.MFOOPN.EQ.0)RETURN=C DON'T DO ANY WORK IF NO FILE ARE OPEN...JUST SKIP OUT FAST. NRC=IREC IRRR=MOD(NRC,RRW) ICCC=((NRC-IRUSED)/RRW)+1"C NOW HAVE OFFSETS IN INPUT RECORD;C (GUARTANTEED TO BE IN REAL SHEET...REFLECT NOT REQUIRED.) IF(MFIOPN.LE.0)GOTO 1000' IF(IFCT.EQ.2.AND.MFIOPN.LE.2)GOTO 1000 IF(MFIFLG.EQ.0)GOTO 10009C ONLY WRITE INTO FILE(IFCT=2) IF FILE OPENED FOR UPDATE.5C FIRST SEE IF THIS RECORD IS IN RANGE WE CARE ABOUT.3 IF(IRRR.LT.MFIRL.OR.IRRR.GT.MFIRH.OR.ICCC.LT.MFICL# 1 .OR.ICCC.GT.MFICH)GOTO 1000<C IF WE MADE IT HERE WE HAVE A RECORD IN THE "IN" FILE RANGEC TO DEAL WITH. NRR=MFIRH-MFIRL+1 NCC=MFICH-MFICL+1 NNRR=IRRR-MFIRL+1 NNCC=ICCC-MFICL+1 KREC=(NNRR-1)*NCC+NNCC IF(IFCT.EQ.2)GOTO 5005 IF(MFIOPN.EQ.1)READ(MFILUN,400,END=5000,ERR=5000)WRK400 FORMAT(128A1)- IF(MFIOPN.EQ.2)READ(MFILUN'KREC,ERR=5000)WRK>C HAVING READ THE INPUT FILE, GRAB THE FORMULA PART AND RETURN7C IT. FORGET FORMAT PART; LET THAT BE UNDER SPREADSHEET C CONTROL. DO 450 KREC=1,110450 ARRAY(KREC)=WRK(KREC) GOTO 1000 500 CONTINUE,C WRITE FROM ARRAY TO FILE ON RANDOM RECORD.! WRITE(MFILUN'KREC,ERR=5000)ARRAY 1000 CONTINUE IF(MFOOPN.LE.0)GOTO 2000 IF(IFCT.NE.2)GOTO 2000 IF(MFOFLG.EQ.0)GOTO 20003 IF(IRRR.LT.MFORL.OR.IRRR.GT.MFORH.OR.ICCC.LT.MFOCL# 1 .OR.ICCC.GT.MFOCH)GOTO 2000 NRR=MFORH-MFORL+1 NCC=MFOCH-MFOCL+1 NNRR=IRRR-MFORL+1 NNCC=ICCC-MFOCL+1 KREC=(NNRR-1)*NCC+NNCC0 IF(MFOOPN.GT.1)WRITE(MFOLUN'KREC,ERR=6000)ARRAY* IF(MFOOPN.EQ.1)WRITE(MFOLUN,400,ERR=6000) 1 (ARRAY(KREC),KREC=1,110) 2000 CONTINUE RETURN 5000 CONTINUE CLOSE(UNIT=MFILUN) MFIOPN=0 RETURN 6000 CONTINUE CLOSE(UNIT=MFOLUN) MFOOPN=0 RETURN END$ SUBROUTINE WRKFIL(NREC,ARRAY,IFUNC)+C COPYRIGHT 1983,1984,1985 GLENN C.EVERHART3C PERMISSION IS GRANTED TO COPY, BUT NOT FOR PROFIT3C ** MUCH SIMPLER VERSION OF WRKFIL FOR VAX ONLY **/C USES BIG ARRAY (QFDAT) INSTEAD OF LOCAL PAGE.C$C WORKFILE PSEUDO-MAINTAINER FOR VAXC8C THIS ROUTINE IS INTENDED TO PERMIT THE SCRATCH FILE OF;C PORTACALC TO BE DISPENSED WITH BY USING A LARGE IN-MEMORY=C ARRAY. A BITMAP WILL SET UP WHEN THE ELEMENT IS INIT'ED AND3C THE DEFAULT ELEMENT WILL BE COMPUTED AND RETURNED&C IF AN UNINITIALIZED ELEMENT IS USED. INCLUDE 'VKLUGPRM.FTN' PARAMETER CUP=1CC INTEGER*4 NRC INTEGER*2 NRC2(2) EQUIVALENCE(NRC2(1),NRC)C RECORD NUMBER TO ACCESS INTEGER*2 NREC,NRECWK LOGICAL*1 ARRAY(128) INTEGER*2 IFUNC& INTEGER*2 IPGMAX,LPGMXF,IPGMOD,LPGMOD* COMMON/FILEMX/IPGMAX,LPGMXF,IPGMOD,LPGMODBC LENGTHS (IN K) OF FILES FOR VALUES OR FORMULAS ARE IPGMAX,LPGMXFC INTEGER*2 NCEL,NXINI COMMON/NCEL/NCEL,NXINI! INTEGER*2 MFID,IFID(8,LFM),MFMOD INTEGER*2 RRWACT,RCLACT COMMON/RCLACT/RRWACT,RCLACT LOGICAL*1 LFID(16,LFM)0 integer*4 nnn,LLL,IPM,IHASH,JHASH,IBF,N,IPAG,KQ INTEGER*4 NNNW! EQUIVALENCE(IFID(1,1),LFID(1,1)) COMMON/FRM/MFID,IFID,MFMOD LOGICAL*1 LI,LJ,IBYTE&C DATA AREA. HANDLE AS "VIRTUAL FILE". INTEGER*4 QFID(LFM4) EQUIVALENCE(QFID(1),LFID(1,1))" INTEGER*4 QFDAT(LPDM),QVDAT(IPDM)CC HERE ADD DEFINITIONS FOR QLFID AND QIFID WHICH ARE THE WHOLE AREA)C TO BE USED. MAKE IT ALL ONE GIANT PAGE. LOGICAL*1 QLFID(16,LPDMF)00Z`>`^[Z[[[\[} INTEGER*2 QIFID(8,LPDMF), EQUIVALENCE(QLFID(1,1),QIFID(1,1),QFDAT(1)) COMMON/QVCMN/QVDAT,QFDATFC DEFFMT IS THE DEFAULT FORMAT FOR NUMERICS. INITIALLY IT WILL BE F9.2 LOGICAL*1 DEFFMT(10),DVFMT(12) EQUIVALENCE(DVFMT(2),DEFFMT(1)) COMMON/DEFVBX/DVFMT?C FORMAT BLOCK (ONE ONLY, 512 BYTES, BUT ORGANIZED AS 45 FORMATC AREAS WITH DATA.) LOGICAL*1 FMTDAT(9,45) COMMON/FMTBFR/FMTDATCC IFUNC SPECIFIES WHAT TO DO:C =0 READ INTO ARRAY!C =1 WRITE FROM ARRAY INTO WRKARY/C =2 INITIALIZE (JUST CLEARS BITMAP HERE)(OPEN)C =3 CLOSE (CLEARS BITMAP HERE)# IF(IFUNC.LT.0.OR.IFUNC.GT.3)RETURN JFUN=IFUNC+1 GOTO (1000,2000,3000,4000),JFUN 1000 CONTINUEC READ CALL FVLDGT(NREC,1,IBYTE) IF(IBYTE.NE.0)GOTO 1001)C UNINITIALIZED ARRAY ELEMENT: SET IT UP. DO 1003 N=1,1281003 ARRAY(N)=0 ARRAY(1)='P' ARRAY(2)='#' ARRAY(3)='#'.C ADD EXTRA 0 SO WE CAN TELL WHY LOCATE FAILED ARRAY(118)=15 DO 1004 N=1,91004 ARRAY(N+119)=DEFFMT(N) C RETURN THE DEFAULT FORMAT NOW. RETURN 1001 CONTINUE DO 1053 N=1,1281053 ARRAY(N)=0 ARRAY(119)=IBYTE ARRAY(118)=15 ARRAY(1)='0''C LET ARRAY INITIALLY BE SET SENSIBLY.. DO 1054 N=1,91054 ARRAY(N+119)=DEFFMT(N)#C WE MAY MODIFY FORMAT LATER TOO...GC NOW HAVE A NON-DEFAULT ELEMENT TO READ... GO THROUGH SYMBOL TBL LOGICDC FOR THESE, WE USE 16-BYTE "CELLS" WHICH HAVE THE FOLLOWING FORMAT:8C ID 2 BYTES (CELL ADDRESS, MUST BE 1 OR MORE FOR VALID)C FLAG 1 BYTE (TYPE OF CELL:C 0 = UNUSEDC 1 = 1 OF 1 CELLS(C 2 = NONTERMINAL OF MORE THAN 1 CELLC 3 = LAST OF >1 CELLS?C FORMAT 1 BYTE (INDEX OF FORMAT STRING FOR THIS CELL; FORMATS+C ARE STORED RESIDENT, UP TO 45 OF THEM,C SET BY DF COMMAND.)"C FORMULA 12 BYTES (FORMULA TEXT)-C SET UP HASH CODE NOW FOR THE WAY WE NEED...@CC NOW HAVE THE DESIRED MEMORY PAGE; READ THE FORMULA INTO ARRAY CC BUFFER. IARSUB=1HCC FOR SIMPLICITY FORGET THE HASHCODE WITHIN MEMORY BUFFERS, JUST SEARCHCC FROM START... IFLAG=0 IFMT=0 JHASH=NREC NRECWK=NREC DO 2500 NN=1,LFM n=mod((nn+jhash),LPDMF)+1* IF(NN.GT.2.AND.QIFID(1,N).EQ.-1)GOTO 2505-C SKIP OUT IF HIT A VIRGIN CELL AFTER 3 TRIES" IF(QIFID(1,N).NE.NRECWK)GOTO 2500 IFLAG=QLFID(3,N) IF(IFMT.EQ.0)IFMT=QLFID(4,N) DO 2502 K=1,12 LI=QLFID(K+4,N)/C COPY FORMULA TEXT INTO ARRAY. END ON NULLS... IF(LI.LE.0)GOTO 2500 ARRAY(IARSUB)=LI&C KEEP NULLS AFTER ANYTHING ENTERED... ARRAY(IARSUB+1)=0 ARRAY(IARSUB+2)=0 IARSUB=IARSUB+1 2502 CONTINUE& IF(IFLAG.EQ.1.OR.IFLAG.EQ.3)GOTO 2505 2500 CONTINUE 2505 CONTINUEC GET FORMAT NOW... IF(IFMT.LE.0)RETURN DO 2510 N=1,9 2510 ARRAY(119+N)=FMTDAT(N,IFMT) GOTO 5000 2000 CONTINUEC WRITE.C NOW SET INIT'D BIT; WRITE ARRAY ELEMENT OUT.&C FIRST FIND FORMAT AREA OR SET IT UP. IFMT=0 LFF=05C FAKE OUT THE SAVING OF FVLD INFO IN THIS ARRAY TOO.@C THIS IS INCOMPLETE AND NO LITTLE OF A KLUDGE BUT THE CODE WILL:C GENERALLY SET THEM TOGETHER, AND THIS GUARANTEES THAT IF=C FURTHER SETS TRY TO SET FVLD TO ARRAY(119), THEY'LL WORK ASC THEY SHOULD."C HERE SET MAX ARRAY ELEMENTS USEDC EXPECT (ID2-1)*RRW+ID1 C ID1 IS RRW DIM, ID2 IS RCL DIM NRC2(1)=NREC IRUSED=MOD(NRC,RRW) ICUSED=((NRC-IRUSED)/RRW)+1" IF(ICUSED.GT.RCLACT)RCLACT=ICUSED" IF(IRUSED.GT.RRWACT)RRWACT=IRUSEDC SET RRWACT, RCLACT2 IF(ARRAY(119).NE.0)CALL FVLDST(NREC,1,ARRAY(119)) DO 2011 N=1,45' IF(FMTDAT(1,N).LE.0.AND.LFF.EQ.0)LFF=N=C SAVE FIRST FREE FORMAT AREA IN CASE THIS IS A NEW FORMAT... DO 2010 M=1,9) IF(ARRAY(M+119).NE.FMTDAT(M,N))GOTO 2011 2010 CONTINUE IFMT=N GOTO 2012 2011 CONTINUE-C ON FALL THROUGH, WE FOUND NOTHING FOR IT...DC USE HIS FORMAT UNLESS WE HAVE NO ROOM, IN WHICH CASE USE LAST AREA IF(LFF.EQ.0)LFF=45 IFMT=LFF DO 2013 N=1,92013 FMTDAT(N,LFF)=ARRAY(119+N)%C SAVE FORMAT DATA WE NOW POINT TO... 2012 CONTINUE>C NOW THE HARDER PART... MUST WRITE THE ARRAY'S FORMULA TOO...C IPM=(LPGMXF*64/LFM)+1 IARSUB=1GC FOR SIMPLICITY FORGET THE HASHCODE WITHIN MEMORY BUFFERS, JUST SEARCHC FROM START00b`g`^YTADATADATADATADATADATA...BC OMIT THE ZEROING WHEN READING IN FROM FILE EXCEPT IN /MERGE MODE JHASH=NREC IF(NXINI.NE.0)GOTO 6233Bc note that because we detect virgin entries (-1 contents), we pay@c essentially no penalty for having one giant page. Here we only?c optimize storage by using no more for formulas than is really@c needed. We also avoid continual copying to/from a working pageAc which is needed in the PDP11 (or MSDOS) environment. The systemAc needs a fair amount of virtual address space to make this work,c but VMS provides that. DO 1490 NN=1,LFM n=mod((nn+jhash),LPDMF)+1* IF(NN.GE.2.AND.QIFID(1,N).EQ.-1)GOTO 6233 IF(QIFID(1,N).NE.NREC)GOTO 1490!C ZERO OLD RECORDS OF THIS ONE... NCEL=NCEL-1 IF(NCEL.LT.0)NCEL=0 DO 1498 KK=1,81498 QIFID(KK,N)=0 1490 CONTINUE 6233 CONTINUE IFLAG=0 DO 1500 NN=1,LFM n=mod((nn+jhash),LPDMF)+1( IF(QIFID(1,N).NE.-1.AND.QIFID(1,N).NE.0, 1 .AND.QIFID(1,N).NE.NREC)GOTO 1500C FOUND A NULL NODE...C FILL IT IN NOW. NCEL=NCEL+1 QIFID(1,N)=NREC IFLAG=1 QLFID(4,N)=IFMT QLFID(3,N)=IFLAG DO 1502 K=1,12 LI=ARRAY(IARSUB) IF(LI.LE.0)GOTO 1505C CHOP IT OFF AT 109 ALSO... IF(IARSUB.GT.109)GOTO 1560 QLFID(K+4,N)=LI IARSUB=IARSUB+1 1502 CONTINUEAC NONTERMINAL COPY...NEED ANOTHER CELL. FIRST TEST FOR EXACT FIT, C HOWEVER. IF(ARRAY(IARSUB).LE.0)GOTO 1560 IFLAG=2 QLFID(3,N)=IFLAG&C NOW GO GET MORE SPACE FOR NEXT NODE.,C NOTE IT COULD RUN OUT, BUT JUST PUNT THAT. GOTO 1500 1560 CONTINUE IF(IFLAG.EQ.1)IFLAG=3 QLFID(3,N)=IFLAG*C SETS UP EITHER 1 OR 3 FOR TERMINAL NODES GOTO 1505C ESCAPE FROM LOOP ON ENDS... 1500 CONTINUE<C HERE WE RAN OUT OF ROOM. TOO BAD...CAN'T REALLY HELP IT ORC DO MUCH. JUST FORGET IT.0C HOWEVER, PRINT A MESSAGE ON SCREEN AT LEAST... CALL UVT100(CUP,1,1) WRITE(6,8970)B8970 FORMAT(' Formula area overflowed. Save, use larger version.') 1505 CONTINUE C DONE NOW. GOTO 5000 3000 CONTINUEC OPEN (CLR BITMAP) MFID=0 GOTO 5000 4000 CONTINUEC CLOSE (CLR BITMAP)c CLOSE(UNIT=7,DISP='DELETE') MFID=0 5000 RETURN END SUBROUTINE WSSETC WORK SHEET MANAGMENT ROUTINES(C HANDLE SPREADSHEET "IN MEMORY" STORAGEC COPYRIGHT GLENN EVERHART 1983CC ALL RIGHTS RESERVEDC0C WSSET - INITIALIZE STORAGE TO START CONDITIONS INCLUDE 'VKLUGPRM.FTN'EC EXPECT IMPLEMENTATION TO USE A COMMON BITMAP AND PROVIDE A VARIABLE(C NCEL TO TELL HOW MANY CELLS ARE IN USEC NEXT BITMAPS IMPLEMENT FVLD PARAMETER CUP=12 LOGICAL*1 FV1(BRRCL),FV2(BRRCL),FV4(BRRCL) LOGICAL*1 LBITS(8) COMMON/BITS/LBITS INTEGER*4 N4 INTEGER*2 IPGMAX,LPGMXF# COMMON/FILEMX/IPGMAX,LPGMXFBC LENGTHS (IN K) OF FILES FOR VALUES OR FORMULAS ARE IPGMAX,LPGMXF8C USE LUN 7 FOR FORMULAS, 9 FOR VALUES FILE IF NEEDED... COMMON/FVLDM/FV1,FV2,FV4BC THE FOLLOWING BITMAP IS FOR TYPE ARRAY, AND INTEGER ARRAY IS FORC TYPES OF AC'S STORAGE: LOGICAL*1 ITYP(BRRCL)" INTEGER*2 IATYP(27),LINTGR$ COMMON/TYP/IATYP,ITYP,LINTGR INTEGER*2 DLFG COMMON/DLFG/DLFGCC DLFG FLAGS IF D## FORMS SEENCC(C DEFINE FILE AREAS FOR MAPPING FILES...DC ONE INPUT FILE, TO BE ACCESSED AS A RANDOM ACCESS FILE OF 128 BYTEDC RECORDS OF DATA IF RANDOM, OR AS A FORMULA FILE IF SEQUENTIAL, AND?C ONE OUTPUT FILE TO BE WRITTEN THE SAME WAY. INPUT FILE CAN BEC INPUT - ONLY OR READ/WRITE.CBC DEFINE ALSO DATA STRUCTURES TO HOLD CELL RANGES (IN ROW AND COL)BC TO BE TREATED WITH THESE FILES, FLAG FOR HOW-OPEN, AND LUN USED.CC MFIOPN = 0 IF NOT OPEN&C 1 IF OPEN FOR READ ONLY, SEQU00j`>`^[Z[[[\[}ENTIALC 2 IF OPEN READ ONLY, RANDOM C 3 IF OPEN READ/WRITE, RANDOM.CC MFOOPN = 0 IF NOT OPENC 1 IF OPEN WRITE SEQUENTIALC 2 IF OPEN WRITE RANDOMC!C OTHER OPTIONS DON'T MAKE SENSE.9C MFIRL,MFIRH = RRW DIMENSION LOW, HIGH BOUND, INPUT FILE9C MFICL,MFICH = RCL DIMENSION LOW, HIGH BOUND, INPUT FILE%C MFORL,RH,MFOCL,CH = OUT FILE BOUNDS"C MFILUN,MFOLUN ARE LOGICAL UNITS.) INTEGER*2 MFIOPN,MFIRL,MFIRH,MFICL,MFICH) INTEGER*2 MFOOPN,MFORL,MFORH,MFOCL,MFOCH& INTEGER*2 MFILUN,MFOLUN,MFIFLG,MFOFLG5 COMMON/MFILES/MFIOPN,MFOOPN,MFIRL,MFIRH,MFICL,MFICH,; 1 MFORL,MFORH,MFOCL,MFOCH,MFILUN,MFOLUN,MFIFLG,MFOFLGCCCAC NEXT ARE BUFFERS FOR HOLDING VALUES, AND MEMORY OCCUPANCY WORDS3C FOR EACH GIVING THE BLK # IN USE FOR THESE TABLES?C FORMAT BLOCK (ONE ONLY, 512 BYTES, BUT ORGANIZED AS 45 FORMATC AREAS WITH DATA. LOGICAL*1 FMTDAT(9,45) COMMON/FMTBFR/FMTDAT" LOGICAL*1 DVF(12),DFMT(10)# EQUIVALENCE(DVF(2),DFMT(1)) COMMON/DEFVBX/DVF+ INTEGER*2 LVALBF(5,LVBF),MPAG,MPMOD# COMMON/VB/MPAG,LVALBF,MPMOD) INTEGER*2 MFID,IFID(8,LFMX),MFMOD LOGICAL*1 LFID(16,LFMX)( EQUIVALENCE(IFID(1,1),LFID(1,1))" COMMON/FRM/MFID,IFID,MFMODC DATA FILE AREA... INTEGER*4 QVDAT,QFDAT" DIMENSION QVDAT(IPDM),QFDAT(LPDM) COMMON/QVCMN/QVDAT,QFDATC COMMON /NCEL/NCEL,NXINI IBP=1 LINTGR=0 MPMOD=0 MFMOD=0 DLFG=0 C NO D## YET. MFIOPN=0 MFOOPN=0 MFILUN=11 MFOLUN=12 MFIFLG=0 MFOFLG=0 DO 2 N=1,92 FMTDAT(N,1)=DFMT(N) DO 3 N=2,45 DO 3 NN=1,93 FMTDAT(NN,N)=0 DO 1 N=1,8 LBITS(N)=128/IBP1 IBP=IBP+IBP DO 4 N=1,BRRCLC CLEAR BITMAPS NOW FV1(N)=0 FV2(N)=0 FV4(N)=04 ITYP(N)=0 NBK=LPGMXF*2C SET NOTHING IN MEMORY YET MFID=0 MPAG=0C ZERO MEMORY BUFFER AND FILES,C SET TO -1 SO WE CAN RECOGNIZE VIRGIN CELLSC DO 9 N=1,LVBFC DO 9 M=1,5C9 LVALBF(M,N)=0 NPG=(IPGMAX*2)C DO 10 N4=1,IPDM C QVDAT(N4)=0%CC ABOVE WAS -1 FOR CASE OF WORKFILES C10 CONTINUE11 CONTINUE'C AGAIN FLAG VIRGIN CELLS WITH ID OF -1C DO 12 N=1,LFMC DO 12 M=1,8C12 IFID(M,N)=0;C LET 0 MEAN A VIRGIN CELL, -1 MEAN EMPTY BUT PREV. INIT'D.CC SINCE VMS SUPPLIES ZERO VALUES BY DEFAULT, SKIP INITIALIZING HERE NPG=LPGMXF*2C DO 13 N4=1,LPDM C QFDAT(N4)=0 C13 CONTINUE14 CONTINUE"C SET ALL AC'S TO TYPE FLOATING... DO 8 N=1,278 IATYP(N)=2C TYPE 2 IS REALS (DEFAULT) NCEL=0 NXINI=0 RETURN ENDC SUBROUTINE FVPEEK(ID1,ID2,IGO)CC PEEK INTO FV1 THRU FV4 INDICES TO FIND COMPUTABLE CELLS. REQUIRES>C FV4 BIT OFF, FV1 OR F2 BIT ON (OR BOTH). DESIGNED AS WAY FOR@C RECALC TO CHEAT AND SKIP QUICKLY BY CELLS NOT IN MAP. IGO GETS7C START INDEX FOR ID1 WITHIN RANGE OF ID1 FROM 1 TO RRWC INCLUDE 'VKLUGPRM.FTN'2 LOGICAL*1 FV1(BRRCL),FV2(BRRCL),FV4(BRRCL) LOGICAL*1 LBITS(8) COMMON/BITS/LBITS COMMON/FVLDM/FV1,FV2,FV4 IGO=ID1!C DEFAULT IS ID1 IS GIVEN TO IGO.C ID=(ID2-1)*RRW+ID1 IRRR=ID2*RRW ID=IRRR-RRW+ID1 IBYT=((ID-1)/8)+1 IRRR=((IRRR-1)/8)+1$C IGO MUST NEVER GET BIGGER THAN RRW DO 1 N=IBYT,IRRR III=N% IF(FV1(N).NE.0.OR.FV2(N).NE.0)GOTO 2DC SKIP BY UNLESS FV1 OR FV2 BITS ARE SET. ALLOW LABELS BY HERE SINCE>C THIS IS A CRUDE TEST FOR MOSTLY TOTALLY UNINITIALIZED CELLS. 1 CONTINUE7C ON FALL THROUGH WE LEAVE III AT MAX TO SKIP THIS AREA 2 CONTINUE N=((III-1)*8)+1CC COMPUTE FIRST CELL OF BITMAP BLK WE FOUND, RETURN IT AS NEW INDEXC UNLESS ALREADY PAST IT... N=N-RRW*(ID2-1)GC NOTE WE PICK RRW IF N IS BIGGER SINCE WE CHECK ON AN INNER LOOP ONLY. IF(N.GT.IGO)IGO=MIN0(N,RRW) RETURN END' SUBROUTINE TYPGET(ID1,ID2,IVAL)C-C TYPGET - GET TYPE(RRW,RCL) ARRAY WORDS BACK1C RETURN TYPE(ID1,ID2) IN IVAL, BUT NOT REALLY... INCLUDE 'VKL00r`g`^YTADATADATADATADATADATAUGPRM.FTN'C NEXT BITMAPS IMPLEMENT FVLD2 LOGICAL*1 FV1(BRRCL),FV2(BRRCL),FV4(BRRCL) LOGICAL*1 LBITS(8) COMMON/BITS/LBITS COMMON/FVLDM/FV1,FV2,FV4BC THE FOLLOWING BITMAP IS FOR TYPE ARRAY, AND INTEGER ARRAY IS FORC TYPES OF AC'S STORAGE: LOGICAL*1 ITYP(BRRCL)' INTEGER*2 IATYP(27),IVAL,LINTGR$ COMMON/TYP/IATYP,ITYP,LINTGRCAC NEXT ARE BUFFERS FOR HOLDING VALUES, AND MEMORY OCCUPANCY WORDS3C FOR EACH GIVING THE BLK # IN USE FOR THESE TABLES?C FORMAT BLOCK (ONE ONLY, 512 BYTES, BUT ORGANIZED AS 45 FORMATC AREAS WITH DATA. LOGICAL*1 FMTDAT(9,45) COMMON/FMTBFR/FMTDAT LOGICAL*1 ITST+ IF(ID1.LE.27.AND.ID2.LE.1)GOTO 1000 IVAL=2 IF(LINTGR.EQ.0)RETURN CALL FVLDGT(ID1,ID2,ITST) IF(ITST.EQ.0)GOTO 500C ID=(ID2-1)*RRW+ID1 CALL REFLEC(ID2,ID1,ID) IBT=(ID-1)/8 IBIT=((ID-1).AND.7)+1& ITST=ITYP(IBT).AND.LBITS(IBIT)500 IVAL=2 IF(ITST.NE.0)IVAL=4 RETURN1000 CONTINUEC AN AC. RETURN FULL TYPE WORD IVAL=IATYP(ID1) RETURN END' SUBROUTINE TYPSET(ID1,ID2,IVAL)C,C TYPSET - STORE IVAL IN TYPE(RRW,RCL) ARRAY INCLUDE 'VKLUGPRM.FTN'C NEXT BITMAPS IMPLEMENT FVLD INTEGER*2 IVAL2 LOGICAL*1 FV1(BRRCL),FV2(BRRCL),FV4(BRRCL) LOGICAL*1 LBITS(8) COMMON/BITS/LBITS COMMON/FVLDM/FV1,FV2,FV4BC THE FOLLOWING BITMAP IS FOR TYPE ARRAY, AND INTEGER ARRAY IS FORC TYPES OF AC'S STORAGE: LOGICAL*1 ITYP(BRRCL)" INTEGER*2 IATYP(27),LINTGR$ COMMON/TYP/IATYP,ITYP,LINTGRCAC NEXT ARE BUFFERS FOR HOLDING VALUES, AND MEMORY OCCUPANCY WORDS3C FOR EACH GIVING THE BLK # IN USE FOR THESE TABLES?C FORMAT BLOCK (ONE ONLY, 512 BYTES, BUT ORGANIZED AS 45 FORMATC AREAS WITH DATA. LOGICAL*1 FMTDAT(9,45) COMMON/FMTBFR/FMTDAT LOGICAL*1 ITST,ITST2* IF(ID2.LE.1.AND.ID1.LE.27)GOTO 200* IF(LINTGR.EQ.0.AND.IABS(IVAL).EQ.2)RETURN LINTGR=1C ID=(ID2-1)*RRW+ID1 CALL REFLEC(ID2,ID1,ID) IBT=(ID-1)/8 IBIT=((ID-1).AND.7)+1 ITST2=.NOT.LBITS(IBIT)! ITST2=ITYP(IBT).AND.ITST2% ITST=ITYP(IBT).OR.LBITS(IBIT) ITYP(IBT)=ITST22 IF(IVAL.NE.-2.AND.IVAL.NE.2)ITYP(IBT)=ITST RETURN 200 CONTINUE IATYP(ID1)=IVAL RETURN END' SUBROUTINE FVLDGT(ID1,ID2,IVAL)C:C FVLDGT - RETURN FVLD BYTE GIVEN 2 DIMS OF ITS "LOCATION" INTEGER*2 ID1,ID2 LOGICAL*1 IVAL INCLUDE 'VKLUGPRM.FTN'C NEXT BITMAPS IMPLEMENT FVLD2 LOGICAL*1 FV1(BRRCL),FV2(BRRCL),FV4(BRRCL) LOGICAL*1 LBITS(8) COMMON/BITS/LBITS COMMON/FVLDM/FV1,FV2,FV4BC THE FOLLOWING BITMAP IS FOR TYPE ARRAY, AND INTEGER ARRAY IS FORC TYPES OF AC'S STORAGE: LOGICAL*1 ITYP(BRRCL) INTEGER*2 IATYP(27) COMMON/TYP/IATYP,ITYPCAC NEXT ARE BUFFERS FOR HOLDING VALUES, AND MEMORY OCCUPANCY WORDS3C FOR EACH GIVING THE BLK # IN USE FOR THESE TABLES?C FORMAT BLOCK (ONE ONLY, 512 BYTES, BUT ORGANIZED AS 45 FORMATC AREAS WITH DATA. LOGICAL*1 FMTDAT(9,45) COMMON/FMTBFR/FMTDAT LOGICAL*1 I1,I2,I4 IF(ID2.GT.0)GOTO 20004C TRICK ENTRY USING ID IN FIRST ARG, 0 IN 2ND ARG...IC TELL XVBLST/XVBLGT ABOUT FV4 STATE (SET BY CALL WITH -4 BYTE ON FVLDST) ID=ID1 IBT=((ID-1)/8)+1 IBIT=((ID-1).AND.7)+1# I1=FV1(IBT).AND.LBITS(IBIT)# I2=FV2(IBT).AND.LBITS(IBIT)# I4=FV4(IBT).AND.LBITS(IBIT) IVAL=0%C RETURN NONZERO IF ANY BITS ARE SET. IF((I1+I2+I4).NE.0)IVAL=1 RETURN 2000 CONTINUEC ID=(ID2-1)*RRW+ID1& IF(ID2.EQ.1.AND.ID1.LE.RRCL)GOTO 7806 CALL REFLEC(ID2,ID1,ID) GOTO 7807 7806 CONTINUE ID=ID1 7807 CONTINUE IBT=((ID-1)/8)+1 IBIT=((ID-1).AND.7)+1# I1=FV1(IBT).AND.LBITS(IBIT)# I2=FV2(IBT).AND.LBITS(IBIT)# I4=FV4(IBT).AND.LBITS(IBIT) IVL=0 IF(I1.NE.0)IVL=1 00z`>`^[Z[[[\[} IF(I2.NE.0)IVL=IVL+2 IF(I4.NE.0)IVL=-IVL IVAL=IVLCC READS OFF FVLD BYTE FROM 3 BITS, HIGH ONE IS SIGN. TREAT AS SIGN-%C MAGNITUDE NUMBER IN RANGE -3 TO +3, RETURN END' SUBROUTINE FVLDST(ID1,ID2,IVAL)C%C FVLDST - SET THE BYTE IN FVLD ARRAY INCLUDE 'VKLUGPRM.FTN'C NEXT BITMAPS IMPLEMENT FVLD2 LOGICAL*1 FV1(BRRCL),FV2(BRRCL),FV4(BRRCL) LOGICAL*1 IVAL LOGICAL*1 LBITS(8) COMMON/BITS/LBITS COMMON/FVLDM/FV1,FV2,FV4BC THE FOLLOWING BITMAP IS FOR TYPE ARRAY, AND INTEGER ARRAY IS FORC TYPES OF AC'S STORAGE: LOGICAL*1 ITYP(BRRCL) INTEGER*2 IATYP(27) COMMON/TYP/IATYP,ITYPCAC NEXT ARE BUFFERS FOR HOLDING VALUES, AND MEMORY OCCUPANCY WORDS3C FOR EACH GIVING THE BLK # IN USE FOR THESE TABLES?C FORMAT BLOCK (ONE ONLY, 512 BYTES, BUT ORGANIZED AS 45 FORMATC AREAS WITH DATA. LOGICAL*1 FMTDAT(9,45) INTEGER*2 IVV,I1,I2,I3 COMMON/FMTBFR/FMTDATC LOGICAL*1 I4C ID=(ID2-1)*RRW+ID1& IF(ID2.EQ.1.AND.ID1.LE.RRCL)GOTO 7800 CALL REFLEC(ID2,ID1,ID) GOTO 7801 7800 ID=ID1 7801 CONTINUE IBT=((ID-1)/8)+1 IBIT=((ID-1).AND.7)+1C ZERO ALL 3 FVLD BITS FIRST. FV1(IBT)=FV1(IBT).AND..NOT.LBITS(IBIT). FV2(IBT)=FV2(IBT).AND..NOT.LBITS(IBIT). FV4(IBT)=FV4(IBT).AND..NOT.LBITS(IBIT) IVVV=IVAL IVV=IABS(IVVV) I3=0 IF(IVAL.LT.0)I3=1 I1=0 I2=0 I2=IVV.AND.2 I1=IVV.AND.1?C NOTE WE ASSUME HEAVILY THAT LOGICAL OPERATIONS WORK BY BINARYC ANDS AND ORS IN DATA.3 IF(I1.NE.0)FV1(IBT)=FV1(IBT).OR.LBITS(IBIT)3 IF(I2.NE.0)FV2(IBT)=FV2(IBT).OR.LBITS(IBIT)3 IF(I3.NE.0)FV4(IBT)=FV4(IBT).OR.LBITS(IBIT) RETURN END+ SUBROUTINE VBLGET(ID1,ID2,ID3,IVAL)C3C VBLGET - GET BYTE OF 3 DIM VBLS ARRAY, ORIGINALLY;C DIMENSIONED (8,RRW,RCL). HANDLE BY CALLING XVBLGT TO GET7C CORRECT 8 BYTE VARIABLE, AND PULLING OUT CORRECT ONE INTEGER*2 ID1,ID2,ID3 LOGICAL*1 IVAL,LL(8) REAL*8 XX EQUIVALENCE(LL(1),XX) CALL XVBLGT(ID2,ID3,XX) IVAL=LL(ID1) RETURN END+ SUBROUTINE VBLSET(ID1,ID2,ID3,IVAL)3C VBLSET - SET BYTE OF 3 DIM VBLS ARRAY, ORIGINALLY;C DIMENSIONED (8,RRW,RCL). HANDLE BY CALLING XVBLST TO GET6C CORRECT 8 BYTE VARIABLE, AND PUTTING IN CORRECT ONE INTEGER*2 ID1,ID2,ID3 LOGICAL*1 IVAL,LL(8) REAL*8 XX EQUIVALENCE(LL(1),XX)?C GET THE DESIRED 8 BYTES, THEN CHANGE THE ONE WE WANT. THEN... CALL XVBLGT(ID2,ID3,XX) LL(ID1)=IVALC PUT BACK THE 8 BYTES. CALL XVBLST(ID2,ID3,XX) RETURN END+ SUBROUTINE JVBLGT(ID1,ID2,ID3,IVAL)C=C JVBLGT - GET INTEGER*4 WORD OF 3 DIM VBLS ARRAY, ORIGINALLY;C DIMENSIONED (2,RRW,RCL). HANDLE BY CALLING XVBLGT TO GET7C CORRECT 8 BYTE VARIABLE, AND PULLING OUT CORRECT ONE INTEGER*2 ID1,ID2,ID3 INTEGER*4 IVAL,LL(2) REAL*8 XX EQUIVALENCE(LL(1),XX) CALL XVBLGT(ID2,ID3,XX) IVAL=LL(ID1) RETURN END+ SUBROUTINE JVBLST(ID1,ID2,ID3,IVAL)7C JVBLST - SET I*4 WORD OF 3 DIM VBLS ARRAY, ORIGINALLY;C DIMENSIONED (2,RRW,RCL). HANDLE BY CALLING XVBLST TO GET6C CORRECT 8 BYTE VARIABLE, AND PUTTING IN CORRECT ONE INTEGER*2 ID1,ID2,ID3 INTEGER*4 IVAL,LL(2) REAL*8 XX EQUIVALENCE(LL(1),XX)@C GET THE DESIRED 8 BYTES, THEN CHANGE THE ONES WE WANT. THEN... CALL XVBLGT(ID2,ID3,XX) LL(ID1)=IVALC PUT BACK THE 8 BYTES. CALL XVBLST(ID2,ID3,XX) RETURN ENDC% SUBROUTINE XVBLST(ID1,ID2,XX)C+C XVBLST - STORE 8 BYTES IN VARIABLES ARRAY$C GIVEN DIMENSIONS FOR LOCATING THEM PARAMETER CUP=1 INTEGER*2 ID1,ID2' INTEGER*4 IPAG,IPM,LLL,IHASH,JHASH,NNN REAL*8 XX INCLUDE 'VKLUGPRM.FTN'" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9)/ L00`g`^YTADATADATADATADATADATAOGICAL*1 AVBLS(20,27),VBLS(8,RRWP,RCLP),VT(8) REAL*8 XVT EQUIVALENCE(XVT,VT(1)) REAL*8 XXV(RRWP,RCLP)" EQUIVALENCE(XXV(1,1),VBLS(1,1,1)) COMMON/V/TYPE,AVBLS,VBLS,VLEN- INTEGER*2 IPGMAX,LPGMXF,IPGMOD,LPGMOD1 COMMON/FILEMX/IPGMAX,LPGMXF,IPGMOD,LPGMODBC LENGTHS (IN K) OF FILES FOR VALUES OR FORMULAS ARE IPGMAX,LPGMXFC NEXT BITMAPS IMPLEMENT FVLD2 LOGICAL*1 FV1(BRRCL),FV2(BRRCL),FV4(BRRCL) LOGICAL*1 LBITS(8) COMMON/BITS/LBITS COMMON/FVLDM/FV1,FV2,FV4BC THE FOLLOWING BITMAP IS FOR TYPE ARRAY, AND INTEGER ARRAY IS FORC TYPES OF AC'S STORAGE: LOGICAL*1 ITYP(BRRCL) INTEGER*2 IATYP(27) COMMON/TYP/IATYP,ITYPCAC NEXT ARE BUFFERS FOR HOLDING VALUES, AND MEMORY OCCUPANCY WORDS3C FOR EACH GIVING THE BLK # IN USE FOR THESE TABLES?C FORMAT BLOCK (ONE ONLY, 512 BYTES, BUT ORGANIZED AS 45 FORMATC AREAS WITH DATA.$ LOGICAL*1 FMTDAT(9,45),LLTST COMMON/FMTBFR/FMTDAT+ INTEGER*2 LVALBF(5,LVBF),MPAG,MPMOD# COMMON/VB/MPAG,LVALBF,MPMOD INTEGER*2 LL(4) REAL*8 XA EQUIVALENCE(XA,LL(1)) INTEGER*2 NCEL,NXINI COMMON/NCEL/NCEL,NXINI INTEGER*2 ICREF,IRREF COMMON/MIRROR/ICREF,IRREFC DATA FILE AREA... INTEGER*2 LVALB1(LVBF5)# EQUIVALENCE(LVALB1(1),LVALBF(1,1)) INTEGER*4 QVDAT,QFDAT" DIMENSION QVDAT(IPDM),QFDAT(LPDM) REAL*8 QQDAT(RRW,RCL)! EQUIVALENCE(QQDAT(1,1),QVDAT(1)) INTEGER*2 QVDAT1 DIMENSION QVDAT1(IPDM5) EQUIVALENCE(QVDAT(1),QVDAT1(1)) COMMON/QVCMN/QVDAT,QFDAT INTEGER*4 I4,I44 IID1=ID1 IID2=MAX0(ID2,1) IF(ID2.LT.1)GOTO 7802# IF(ID2.GT.1.OR.ID1.GT.27)GOTO 7780C AN ACCUMULATOR. SET IT.?C HAVE EVERYTHING HERE SO NO PROBLEMS WITH RECOGNIZING CELLS... XVT=XX DO 7781 IV=1,87781 AVBLS(IV,ID1)=VT(IV) RETURN 7780 CONTINUE 4000 CONTINUE IF(IID1.LE.RRW)GOTO 7801 IID1=IID1-RRW IID2=IID2+IRREF GOTO 4000 7801 CONTINUE IF(IID2.LE.RCL)GOTO 7802 IID2=IID2-RCL+1 IID1=IID1+ICREF GOTO 4000 7802 CONTINUE QQDAT(IID1,IID2)=XX RETURN ENDC% SUBROUTINE XVBLGT(ID1,ID2,XX)C9C XVBLGT - LOAD 8 BYTES GIVEN DIMENSIONS FOR GETTING THEMC 2 DIM ARRAY, DIM'D (RRW,RCL) INTEGER*2 ID1,ID2 REAL*8 XX INCLUDE 'VKLUGPRM.FTN'' INTEGER*4 IPAG,IPM,LLL,IHASH,JHASH,NNN- INTEGER*2 IPGMAX,LPGMXF,IPGMOD,LPGMOD1 COMMON/FILEMX/IPGMAX,LPGMXF,IPGMOD,LPGMOD" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9)/ LOGICAL*1 AVBLS(20,27),VBLS(8,RRWP,RCLP),VT(8) INTEGER*2 ICREF,IRREF COMMON/MIRROR/ICREF,IRREF REAL*8 XVTU EQUIVALENCE(XVT,VT(1))E REAL*8 XXV(RRWP,RCLP)" EQUIVALENCE(XXV(1,1),VBLS(1,1,1)) COMMON/V/TYPE,AVBLS,VBLS,VLENBC LENGTHS (IN K) OF FILES FOR VALUES OR FORMULAS ARE IPGMAX,LPGMXFC NEXT BITMAPS IMPLEMENT FVLDT2 LOGICAL*1 FV1(BRRCL),FV2(BRRCL),FV4(BRRCL) LOGICAL*1 LBITS(8) COMMON/BITS/LBITSS COMMON/FVLDM/FV1,FV2,FV4BC THE FOLLOWING BITMAP IS FOR TYPE ARRAY, AND INTEGER ARRAY IS FORC TYPES OF AC'S STORAGE:! LOGICAL*1 ITYP(BRRCL),LWK ! INTEGER*2 IATYP(27),LL(4) REAL*8 XA EQUIVALENCE(LL(1),XA) COMMON/TYP/IATYP,ITYPS+ INTEGER*2 LVALBF(5,LVBF),MPAG,MPMODOC DATA FILE AREA...U INTEGER*2 LVALB1(LVBF5)# EQUIVALENCE(LVALB1(1),LVALBF(1,1))O INTEGER*4 QVDAT,QFDAT" DIMENSION QVDAT(IPDM),QFDAT(LPDM) INTEGER*2 QVDAT1R REAL*8 QQDAT(RRW,RCL)! EQUIVALENCE(QQDAT(1,1),QVDAT(1))Y DIMENSION QVDAT1(IPDM5) EQUIVALENCE(QVDAT(1),QVDAT1(1)) COMMON/QVCMN/QVDAT,QFDAT INTEGER*4 I4,I44I# COMMON/VB/MPAG,LVALBF,MPMODLCRAC NEXT ARE BUFFERS FOR HOLDING VALUES, AND MEMORY OCCUPANCY WORDSD3C FOR EACH GIVING THE BLK # IN USE FOR THESE TABLESO?C FORMAT BLOCK (ONE ONLY, 512 BYTES, BUT ORGANIZED AS 45 FORMATBC AREAS WITH DATA. LOGICAL*1 FMTDAT(9,45) COMMON/FMTBFR/FMTDAT IID1=ID1  IID2=MAX0(ID2,1)H IF(ID2.LT.1)GOTO 7802# IF(ID2.GT.1.OR.ID1.GT.27)GOTO 7780FC AN ACCUMULATORC GET IT AS IF IT WERE A CELLO DO 7781 IV=1,8N7781 VT(IV)=AVBLS(IV,ID1)Y XX=00``^[Z[[[\[}XVTI RETURNI 7780 CONTINUEY 4000 CONTINUEI IF(IID1.LE.RRW)GOTO 7801 IID1=IID1-RRW IID2=IID2+IRREF GOTO 4000 7801 CONTINUE IF(IID2.LE.RCL)GOTO 7802 IID2=IID2-RCL+1 IID1=IID1+ICREF GOTO 4000 7802 CONTINUEE XX=QQDAT(IID1,IID2) RETURNL ENDFC 2-PAGE WSHEET SUBROUTINE WSSETC WORK SHEET MANAGMENT ROUTINES(C HANDLE SPREADSHEET "IN MEMORY" STORAGEC COPYRIGHT GLENN EVERHART 1983CC ALL RIGHTS RESERVEDC0C WSSET - INITIALIZE STORAGE TO START CONDITIONS INCLUDE 'VKLUGPRM.FTN'EC EXPECT IMPLEMENTATION TO USE A COMMON BITMAP AND PROVIDE A VARIABLE(C NCEL TO TELL HOW MANY CELLS ARE IN USEC NEXT BITMAPS IMPLEMENT FVLD PARAMETER CUP=12 LOGICAL*1 FV1(BRRCL),FV2(BRRCL),FV4(BRRCL) LOGICAL*1 LBITS(8) COMMON/BITS/LBITS INTEGER*2 IPGMAX,LPGMXF# COMMON/FILEMX/IPGMAX,LPGMXFBC LENGTHS (IN K) OF FILES FOR VALUES OR FORMULAS ARE IPGMAX,LPGMXF8C USE LUN 7 FOR FORMULAS, 9 FOR VALUES FILE IF NEEDED... COMMON/FVLDM/FV1,FV2,FV4BC THE FOLLOWING BITMAP IS FOR TYPE ARRAY, AND INTEGER ARRAY IS FORC TYPES OF AC'S STORAGE: INTEGER*2 DLFG COMMON/DLFG/DLFG LOGICAL*1 ITYP(BRRCL)" INTEGER*2 IATYP(27),LINTGR$ COMMON/TYP/IATYP,ITYP,LINTGRCAC NEXT ARE BUFFERS FOR HOLDING VALUES, AND MEMORY OCCUPANCY WORDS3C FOR EACH GIVING THE BLK # IN USE FOR THESE TABLES?C FORMAT BLOCK (ONE ONLY, 512 BYTES, BUT ORGANIZED AS 45 FORMATC AREAS WITH DATA. LOGICAL*1 FMTDAT(9,45) COMMON/FMTBFR/FMTDAT" LOGICAL*1 DVF(12),DFMT(10)# EQUIVALENCE(DVF(2),DFMT(1)) COMMON/DEFVBX/DVF. INTEGER*2 LVALBF(5,LVBF),MPAG(2),MPMOD DIMENSION MPMOD(2),MFMOD(2)# COMMON/VB/MPAG,LVALBF,MPMOD+ INTEGER*2 MFID(2),IFID(8,LFM),MFMOD LOGICAL*1 LFID(16,LFM)( EQUIVALENCE(IFID(1,1),LFID(1,1))" COMMON/FRM/MFID,IFID,MFMOD& INTEGER*2 MFLAST,MFBASE,MVLAST,MVBASE) COMMON/VBCTL/MFLAST,MFBASE,MVLAST,MVBASEC COMMON /NCEL/NCEL,NXINI IBP=1 LINTGR=0 MPMOD(1)=0 MFMOD(1)=0 MPMOD(2)=0 MFMOD(2)=0 DLFG=0"C FLAG DLFG=0 ==> NO D## FORMS YET DO 2 N=1,92 FMTDAT(N,1)=DFMT(N) DO 3 N=2,45 DO 3 NN=1,93 FMTDAT(NN,N)=0 DO 1 N=1,8 LBITS(N)=128/IBP1 IBP=IBP+IBP DO 4 N=1,BRRCLC CLEAR BITMAPS NOW FV1(N)=0 FV2(N)=0 FV4(N)=04 ITYP(N)=02C OPEN THE WORK FILES SO WE DON'T NEED TO LATER...$C LUN 7 IS FORMULAS; LUN 9 IS VALUESBC HOWEVER, IF IPGMAX IS LESS THAN LVBF/205 (INDICATING ENTIRE FILEFC FITS IN MEMORY) DON'T OPEN LUN 9 AND IF LPGMXF IS < LFM/64, LIKEWISE C FOR LUN 7.1C INITIALLY CLOSE FILES IN CASE THEY WERE OPEN...# CLOSE(UNIT=7,DISP='DELETE')# CLOSE(UNIT=9,DISP='DELETE')'C NOW OPEN THEM AS RANDOM ACCESS FILES. NBK=IPGMAX*2AC KEEP VALUE PAGES IN 500 BYTE UNITS, NOT 512 BYTE UNITS, TO COME C OUT EVEN...< IF(IPGMAX.GT.(LVBF/100))OPEN(UNIT=9,FILE='PVBL.TMP',< 1 ACCESS='DIRECT',DISPOSE='DELETE',FORM='UNFORMATTED',9 2 INITIALSIZE=NBK,BLOCKSIZE=500,RECORDTYPE='FIXED', 3 RECL=125,STATUS='NEW') NBK=LPGMXF*2: IF(LPGMXF.GT.(LFM/64))OPEN(UNIT=7,FILE='PFMT.TMP',< 1 ACCESS='DIRECT',DISPOSE='DELETE',FORM='UNFORMATTED',9 2 INITIALSIZE=NBK,BLOCKSIZE=512,RECORDTYPE='FIXED', 3 RECL=128,STATUS='NEW')C SET NOTHING IN MEMORY YET MFID(1)=0 MPAG(1)=0 MFID(2)=0 MPAG(2)=0 MFLAST=1 MFBASE=0 MVLAST=1 MVBASE=0:C MARK BUFFER 1 AS LAST ONE BUT BOTH REALLY EMPTY AT STARTC ZERO MEMORY BUFFER AND FILES,C SET TO -1 SO WE CAN RECOGNIZE VIRGIN CELLS DO 9 N=1,LVBF DO 9 M=1,59 LVALBF(M,N)=-1 NPG=(IPGMAX*2)' IF(IPGMAX.LE.(00`g`^YTADATADATADATADATADATALVBF/100))GOTO 11 DO 10 N=1,NPG210 WRITE(9'N)((LVALBF(K,KKK),K=1,5),KKK=1,50)11 CONTINUE'C AGAIN FLAG VIRGIN CELLS WITH ID OF -1 DO 12 N=1,LFM DO 12 M=1,812 IFID(M,N)=-1 NPG=LPGMXF*2% IF(LPGMXF.LE.(LFM/64))GOTO 14 DO 13 N=1,NPG013 WRITE(7'N)((IFID(K,KKK),K=1,8),KKK=1,32)14 CONTINUE"C SET ALL AC'S TO TYPE FLOATING... DO 8 N=1,278 IATYP(N)=2C TYPE 2 IS REALS (DEFAULT) NCEL=0 NXINI=0 RETURN ENDC SUBROUTINE FVPEEK(ID1,ID2,IGO)CC PEEK INTO FV1 THRU FV4 INDICES TO FIND COMPUTABLE CELLS. REQUIRES>C FV4 BIT OFF, FV1 OR F2 BIT ON (OR BOTH). DESIGNED AS WAY FOR@C RECALC TO CHEAT AND SKIP QUICKLY BY CELLS NOT IN MAP. IGO GETS7C START INDEX FOR ID1 WITHIN RANGE OF ID1 FROM 1 TO RRWC INCLUDE 'VKLUGPRM.FTN'2 LOGICAL*1 FV1(BRRCL),FV2(BRRCL),FV4(BRRCL) LOGICAL*1 LBITS(8) COMMON/BITS/LBITS COMMON/FVLDM/FV1,FV2,FV4 IGO=ID1!C DEFAULT IS ID1 IS GIVEN TO IGO.C ID=(ID2-1)*RRW+ID1 IRRR=ID2*RRW ID=IRRR-RRW+ID1 IBYT=((ID-1)/8)+1 IRRR=((IRRR-1)/8)+1$C IGO MUST NEVER GET BIGGER THAN RRW DO 1 N=IBYT,IRRR III=N% IF(FV1(N).NE.0.OR.FV2(N).NE.0)GOTO 2DC SKIP BY UNLESS FV1 OR FV2 BITS ARE SET. ALLOW LABELS BY HERE SINCE>C THIS IS A CRUDE TEST FOR MOSTLY TOTALLY UNINITIALIZED CELLS. 1 CONTINUE7C ON FALL THROUGH WE LEAVE III AT MAX TO SKIP THIS AREA 2 CONTINUE N=((III-1)*8)+1CC COMPUTE FIRST CELL OF BITMAP BLK WE FOUND, RETURN IT AS NEW INDEXC UNLESS ALREADY PAST IT... N=N-RRW*(ID2-1)GC NOTE WE PICK RRW IF N IS BIGGER SINCE WE CHECK ON AN INNER LOOP ONLY. IF(N.GT.IGO)IGO=MIN0(N,RRW) RETURN END' SUBROUTINE TYPGET(ID1,ID2,IVAL)C-C TYPGET - GET TYPE(RRW,RCL) ARRAY WORDS BACK1C RETURN TYPE(ID1,ID2) IN IVAL, BUT NOT REALLY... INCLUDE 'VKLUGPRM.FTN'C NEXT BITMAPS IMPLEMENT FVLD2 LOGICAL*1 FV1(BRRCL),FV2(BRRCL),FV4(BRRCL) LOGICAL*1 LBITS(8) INTEGER*2 ICREF,IRREF COMMON/MIRROR/ICREF,IRREF COMMON/BITS/LBITS COMMON/FVLDM/FV1,FV2,FV4BC THE FOLLOWING BITMAP IS FOR TYPE ARRAY, AND INTEGER ARRAY IS FORC TYPES OF AC'S STORAGE: LOGICAL*1 ITYP(BRRCL)' INTEGER*2 IATYP(27),IVAL,LINTGR$ COMMON/TYP/IATYP,ITYP,LINTGRCAC NEXT ARE BUFFERS FOR HOLDING VALUES, AND MEMORY OCCUPANCY WORDS3C FOR EACH GIVING THE BLK # IN USE FOR THESE TABLES?C FORMAT BLOCK (ONE ONLY, 512 BYTES, BUT ORGANIZED AS 45 FORMATC AREAS WITH DATA. LOGICAL*1 FMTDAT(9,45) COMMON/FMTBFR/FMTDAT LOGICAL*1 ITST+ IF(ID1.LE.27.AND.ID2.LE.1)GOTO 1000 IVAL=2 IF(LINTGR.EQ.0)RETURN CALL FVLDGT(ID1,ID2,ITST) IF(ITST.EQ.0)GOTO 500 CALL REFLEC(ID2,ID1,ID)C ID=(ID2-1)*RRW+ID1 IBT=(ID-1)/8 IBIT=((ID-1).AND.7)+1& ITST=ITYP(IBT).AND.LBITS(IBIT)500 IVAL=2 IF(ITST.NE.0)IVAL=4 RETURN1000 CONTINUEC AN AC. RETURN FULL TYPE WORD IVAL=IATYP(ID1) RETURN END' SUBROUTINE TYPSET(ID1,ID2,IVAL)C,C TYPSET - STORE IVAL IN TYPE(RRW,RCL) ARRAY INCLUDE 'VKLUGPRM.FTN'C NEXT BITMAPS IMPLEMENT FVLD INTEGER*2 IVAL2 LOGICAL*1 FV1(BRRCL),FV2(BRRCL),FV4(BRRCL) LOGICAL*1 LBITS(8) COMMON/BITS/LBITS COMMON/FVLDM/FV1,FV2,FV4BC THE FOLLOWING BITMAP IS FOR TYPE ARRAY, AND INTEGER ARRAY IS FORC TYPES OF AC'S STORAGE: LOGICAL*1 ITYP(BRRCL)" INTEGER*2 IATYP(27),LINTGR$ COMMON/TYP/IATYP,ITYP,LINTGRCAC NEXT ARE BUFFERS FOR HOLDING VALUES, AND MEMORY OCCUPANCY WORDS3C FOR EACH GIVING THE BLK # IN USE FOR THESE TABLES?C FORMAT BLOCK (ONE ONLY, 512 BYTES, BUT ORGANIZED AS 45 FORMATC AREAS WITH DATA. LOGICAL*1 FMTDAT(9,45) COMMON/FMTBFR/FMTDAT INTEGER*2 ICREF,IRREF COMMON/MIRROR/ICREF,IRREF LOGICAL*1 ITST,ITST2* IF(ID2.LE.1.AND.ID1.LE.27)GOTO 2007C SKIPPED THE AC'S HERE. RETURN INSTANTLY IF NO INTEGER:C CELLS HAVE BEEN DEFI00``^[Z[[[\[}NED (WHICH WILL BE MOST OF THE TIME)* IF(LINTGR.EQ.0.AND.IABS(IVAL).EQ.2)RETURN LINTGR=1C ID=(ID2-1)*RRW+ID1 CALL REFLEC(ID2,ID1,ID) IBT=(ID-1)/8 IBIT=((ID-1).AND.7)+1 ITST2=.NOT.LBITS(IBIT)! ITST2=ITYP(IBT).AND.ITST2% ITST=ITYP(IBT).OR.LBITS(IBIT) ITYP(IBT)=ITST22 IF(IVAL.NE.-2.AND.IVAL.NE.2)ITYP(IBT)=ITST RETURN 200 CONTINUE IATYP(ID1)=IVAL RETURN END' SUBROUTINE FVLDGT(ID1,ID2,IVAL)C:C FVLDGT - RETURN FVLD BYTE GIVEN 2 DIMS OF ITS "LOCATION" INTEGER*2 ID1,ID2 LOGICAL*1 IVAL INCLUDE 'VKLUGPRM.FTN'C NEXT BITMAPS IMPLEMENT FVLD2 LOGICAL*1 FV1(BRRCL),FV2(BRRCL),FV4(BRRCL) LOGICAL*1 LBITS(8) COMMON/BITS/LBITS COMMON/FVLDM/FV1,FV2,FV4 INTEGER*2 ICREF,IRREF COMMON/MIRROR/ICREF,IRREFBC THE FOLLOWING BITMAP IS FOR TYPE ARRAY, AND INTEGER ARRAY IS FORC TYPES OF AC'S STORAGE: LOGICAL*1 ITYP(BRRCL) INTEGER*2 IATYP(27) COMMON/TYP/IATYP,ITYPCAC NEXT ARE BUFFERS FOR HOLDING VALUES, AND MEMORY OCCUPANCY WORDS3C FOR EACH GIVING THE BLK # IN USE FOR THESE TABLES?C FORMAT BLOCK (ONE ONLY, 512 BYTES, BUT ORGANIZED AS 45 FORMATC AREAS WITH DATA. LOGICAL*1 FMTDAT(9,45) COMMON/FMTBFR/FMTDAT LOGICAL*1 I1,I2,I4 IF(ID2.GT.0)GOTO 20004C TRICK ENTRY USING ID IN FIRST ARG, 0 IN 2ND ARG...IC TELL XVBLST/XVBLGT ABOUT FV4 STATE (SET BY CALL WITH -4 BYTE ON FVLDST) ID=ID1 IBT=((ID-1)/8)+1 IBIT=((ID-1).AND.7)+1# I1=FV1(IBT).AND.LBITS(IBIT)# I2=FV2(IBT).AND.LBITS(IBIT)# I4=FV4(IBT).AND.LBITS(IBIT) IVAL=0%C RETURN NONZERO IF ANY BITS ARE SET. IF((I1+I2+I4).NE.0)IVAL=1 RETURN 2000 CONTINUEC ID=(ID2-1)*RRW+ID1# IF(ID2.EQ.1.AND.ID1.LE.RRCL)ID=ID13 IF(ID2.NE.1.OR.ID1.GT.RRCL)CALL REFLEC(ID2,ID1,ID) IBT=((ID-1)/8)+1 IBIT=((ID-1).AND.7)+1# I1=FV1(IBT).AND.LBITS(IBIT)# I2=FV2(IBT).AND.LBITS(IBIT)# I4=FV4(IBT).AND.LBITS(IBIT) IVL=0 IF(I1.NE.0)IVL=1 IF(I2.NE.0)IVL=IVL+2 IF(I4.NE.0)IVL=-IVL IVAL=IVLCC READS OFF FVLD BYTE FROM 3 BITS, HIGH ONE IS SIGN. TREAT AS SIGN-%C MAGNITUDE NUMBER IN RANGE -3 TO +3, RETURN END' SUBROUTINE FVLDST(ID1,ID2,IVAL)C%C FVLDST - SET THE BYTE IN FVLD ARRAY INCLUDE 'VKLUGPRM.FTN'C NEXT BITMAPS IMPLEMENT FVLD2 LOGICAL*1 FV1(BRRCL),FV2(BRRCL),FV4(BRRCL) LOGICAL*1 IVAL INTEGER*2 ICREF,IRREF COMMON/MIRROR/ICREF,IRREF LOGICAL*1 LBITS(8) COMMON/BITS/LBITS COMMON/FVLDM/FV1,FV2,FV4BC THE FOLLOWING BITMAP IS FOR TYPE ARRAY, AND INTEGER ARRAY IS FORC TYPES OF AC'S STORAGE: LOGICAL*1 ITYP(BRRCL) INTEGER*2 IATYP(27) COMMON/TYP/IATYP,ITYPCAC NEXT ARE BUFFERS FOR HOLDING VALUES, AND MEMORY OCCUPANCY WORDS3C FOR EACH GIVING THE BLK # IN USE FOR THESE TABLES?C FORMAT BLOCK (ONE ONLY, 512 BYTES, BUT ORGANIZED AS 45 FORMATC AREAS WITH DATA. LOGICAL*1 FMTDAT(9,45) INTEGER*2 IVV,I1,I2,I3 COMMON/FMTBFR/FMTDATC LOGICAL*1 I4& IF(ID2.EQ.1.AND.ID1.LE.RRCL)GOTO 7800C ID=(ID2-1)*RRW+ID1 CALL REFLEC(ID2,ID1,ID) GOTO 7801 7800 CONTINUE ID=ID1 7801 CONTINUE IBT=((ID-1)/8)+1 IBIT=((ID-1).AND.7)+1C ZERO ALL 3 FVLD BITS FIRST. FV1(IBT)=FV1(IBT).AND..NOT.LBITS(IBIT). FV2(IBT)=FV2(IBT).AND..NOT.LBITS(IBIT). FV4(IBT)=FV4(IBT).AND..NOT.LBITS(IBIT) IVVV=IVAL IVV=IABS(IVVV) I3=0 IF(IVAL.LT.0)I3=1 I1=0 I2=0 I2=IVV.AND.2 I1=IVV.AND.1?C NOTE WE ASSUME HEAVILY THAT LOGICAL OPERATIONS WORK BY BINARYC ANDS AND ORS IN DATA.3 IF(I1.NE.0)FV1(IBT)=FV1(IBT).OR.LBITS(IBIT)3 IF(I2.NE.0)FV2(IBT)=FV2(IBT).OR.LBITS(IBIT)3 IF(I3.NE.0)FV4(IBT)=FV4(IBT).OR.LBITS(IBIT) RETURN END+ SUBROUTINE VBLGET(ID1,ID2,ID3,IVAL00`g`^YTADATADATADATADATADATA)C3C VBLGET - GET BYTE OF 3 DIM VBLS ARRAY, ORIGINALLY;C DIMENSIONED (8,RRW,RCL). HANDLE BY CALLING XVBLGT TO GET7C CORRECT 8 BYTE VARIABLE, AND PULLING OUT CORRECT ONE INTEGER*2 ID1,ID2,ID3 LOGICAL*1 IVAL,LL(8) REAL*8 XX EQUIVALENCE(LL(1),XX) CALL XVBLGT(ID2,ID3,XX) IVAL=LL(ID1) RETURN END+ SUBROUTINE VBLSET(ID1,ID2,ID3,IVAL)3C VBLSET - SET BYTE OF 3 DIM VBLS ARRAY, ORIGINALLY;C DIMENSIONED (8,RRW,RCL). HANDLE BY CALLING XVBLST TO GET6C CORRECT 8 BYTE VARIABLE, AND PUTTING IN CORRECT ONE INTEGER*2 ID1,ID2,ID3 LOGICAL*1 IVAL,LL(8) REAL*8 XX EQUIVALENCE(LL(1),XX)?C GET THE DESIRED 8 BYTES, THEN CHANGE THE ONE WE WANT. THEN... CALL XVBLGT(ID2,ID3,XX) LL(ID1)=IVALC PUT BACK THE 8 BYTES. CALL XVBLST(ID2,ID3,XX) RETURN END+ SUBROUTINE JVBLGT(ID1,ID2,ID3,IVAL)C=C JVBLGT - GET INTEGER*4 WORD OF 3 DIM VBLS ARRAY, ORIGINALLY;C DIMENSIONED (2,RRW,RCL). HANDLE BY CALLING XVBLGT TO GET7C CORRECT 8 BYTE VARIABLE, AND PULLING OUT CORRECT ONE INTEGER*2 ID1,ID2,ID3 INTEGER*4 IVAL,LL(2) REAL*8 XX EQUIVALENCE(LL(1),XX) CALL XVBLGT(ID2,ID3,XX) IVAL=LL(ID1) RETURN END+ SUBROUTINE JVBLST(ID1,ID2,ID3,IVAL)7C JVBLST - SET I*4 WORD OF 3 DIM VBLS ARRAY, ORIGINALLY;C DIMENSIONED (2,RRW,RCL). HANDLE BY CALLING XVBLST TO GET6C CORRECT 8 BYTE VARIABLE, AND PUTTING IN CORRECT ONE INTEGER*2 ID1,ID2,ID3 INTEGER*4 IVAL,LL(2) REAL*8 XX EQUIVALENCE(LL(1),XX)@C GET THE DESIRED 8 BYTES, THEN CHANGE THE ONES WE WANT. THEN... CALL XVBLGT(ID2,ID3,XX) LL(ID1)=IVALC PUT BACK THE 8 BYTES. CALL XVBLST(ID2,ID3,XX) RETURN END% SUBROUTINE XVBLST(ID1,ID2,XX)C+C XVBLST - STORE 8 BYTES IN VARIABLES ARRAY$C GIVEN DIMENSIONS FOR LOCATING THEM INTEGER*2 ID1,ID2 REAL*8 XX INCLUDE 'VKLUGPRM.FTN'" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9)/ LOGICAL*1 AVBLS(20,27),VBLS(8,RRWP,RCLP),VT(8) REAL*8 XVT EQUIVALENCE(XVT,VT(1)) REAL*8 XXV(RRWP,RCLP)" EQUIVALENCE(XXV(1,1),VBLS(1,1,1)) COMMON/V/TYPE,AVBLS,VBLS,VLEN INTEGER*2 ICREF,IRREF COMMON/MIRROR/ICREF,IRREF- INTEGER*2 IPGMAX,LPGMXF,IPGMOD,LPGMOD1 COMMON/FILEMX/IPGMAX,LPGMXF,IPGMOD,LPGMODBC LENGTHS (IN K) OF FILES FOR VALUES OR FORMULAS ARE IPGMAX,LPGMXFC NEXT BITMAPS IMPLEMENT FVLD2 LOGICAL*1 FV1(BRRCL),FV2(BRRCL),FV4(BRRCL) LOGICAL*1 LBITS(8) COMMON/BITS/LBITS COMMON/FVLDM/FV1,FV2,FV4BC THE FOLLOWING BITMAP IS FOR TYPE ARRAY, AND INTEGER ARRAY IS FORC TYPES OF AC'S STORAGE: LOGICAL*1 ITYP(BRRCL) INTEGER*2 IATYP(27) COMMON/TYP/IATYP,ITYPCAC NEXT ARE BUFFERS FOR HOLDING VALUES, AND MEMORY OCCUPANCY WORDS3C FOR EACH GIVING THE BLK # IN USE FOR THESE TABLES?C FORMAT BLOCK (ONE ONLY, 512 BYTES, BUT ORGANIZED AS 45 FORMATC AREAS WITH DATA.$ LOGICAL*1 FMTDAT(9,45),LLTST COMMON/FMTBFR/FMTDAT1 INTEGER*2 LVALBF(5,LVBF),MPAG(2),MPMOD(2)# COMMON/VB/MPAG,LVALBF,MPMOD& INTEGER*2 MFLAST,MFBASE,MVLAST,MVBASE) COMMON/VBCTL/MFLAST,MFBASE,MVLAST,MVBASE INTEGER*2 LL(4) REAL*8 XA EQUIVALENCE(XA,LL(1)) INTEGER*2 NCEL,NXINI COMMON/NCEL/NCEL,NXINI# IF(ID2.GT.1.OR.ID1.GT.27)GOTO 7780C AN ACCUMULATOR. SET IT. XVT=XX DO 7781 IV=1,87781 AVBLS(IV,ID1)=VT(IV) RETURN 7780 CONTINUEC ID=(ID2-1)*RRW+ID1 CALL REFLEC(ID2,ID1,ID)-C SET UP HASH CODE NOW FOR THE WAY WE NEED...C IPM=(IPGMAX*200/LVBF) IF(ID.LE.0)RETURN8C CALL FVLDGT TO TELL IF ANYTHING IS SET FOR THE CELL... CALL FVLDGT(ID1,ID2,LLTST) IF(LLTST.NE.0)GOTO 3419 CALL FVLDST(ID1,ID2,-4)=C TRICK ... SET UP SIGN BIT IN FVLD SO XVBLGT CAN FIND OUT IF@C VARIABLE HAS EVER BEEN WRITTEN AND EXIT IF NOT. INDEPENDENT OF6C USUAL SETTING OF FVLD 00``^[Z[[[\[}SINCE IT USES "SIGN" BIT ONLY. 3419 CONTINUE IBF=(LVBF+99)/1006C IBF IS NUMBER OF BLOCKS PER BUFFER, BLOCK=500 BYTES.9C IF LVBF=200, IBF=2 SINCE THERE ARE 200 * 10 BYTES TOTAL+C IN MEMORY, OR 1000 PER BUFFER OR 2 BLOCKS IF(IBF.LT.1)IBF=1 LLL=(IPGMAX*2)/IBF IPM=LLL IF(IPM.LE.2)IPM=2 IHASH=ID# JHASH=MOD(IHASH,(LVBF/2))+1 IF(IPGMOD.NE.0)GOTO 3400C SPACE-OPTIMIZING PACKING IPAG=(IHASH/(LVBF/2))+1 IPAG=MOD(IPAG,IPM)+1 GOTO 3401 3400 CONTINUEC SPEED-OPTIMIZING PACKING FPG=FLOAT(IPGMOD) IF(FPG.LT.0.)FPG=FPG+65536. FPG=FLOAT(IHASH)*FLOAT(IPM)/FPG IPAG=FPGR IPAG=MOD(IPAG,IPM)H IPAG=IPAG+1C IPAG=1+(IHASH*IPM)/RRCLR 3401 CONTINUE C IF(IPAG.LE.0)IPAG=1/ IF(IPAG.EQ.MPAG(1).OR.IPAG.EQ.MPAG(2))GOTO 850 IF(MPAG(1).NE.0)GOTO 851U MPAG(1)=IPAGM GOTO 850I 851 IF(MPAG(2).EQ.0)MPAG(2)=IPAG 850 CONTINUE IF(MPAG(1).EQ.IPAG)GOTO 852 IF(MPAG(2).NE.IPAG)GOTO 853C MPAG(2)=IPAG MVLAST=2) MVBASE=LVBF/2 GOTO 1000 852 CONTINUE MVLAST=1 MVBASE=0N GOTO 1000 853 CONTINUE:C REPLACE LRU PAGE. MVLAST HAS MOST RECENTLY USED SO FLIP. MVLAST=3-MVLASTC MVLAST IS EITHER 1 OR 2L MVBASE=(LVBF/2)-MVBASESCU<C THE ABOVE ACCOUNTS FOR MEMORY FREE... WE TREAT FILE AS IPMDC "PAGES" THE SIZE OF THE MEMORY AREA EACH. THIS MAKES IT RELATIVELYCC EASY TO ALTER THE PROGRAM TO HANDLE MORE MEMORY TO THE EXTENT THEOC COMPILER AND MACHINE ALLOW. "C IF(IPAG.EQ.MPAG)GOTO 1000" IF(IPGMAX.LE.(LVBF/100))GOTO 1000EC IF HERE, WE NEED A PAGE NOT IN MEMORY. SWAP THE CURRENT MEMORY PAGEC'C TO DISK AND BRING IN THE ONE DESIRED. 2C FILES ARE OPENED ALREADY HERE... USE LUN 9 HERE.$ IRCLO=(MPAG(MVLAST)-1)*IBF+1 IRCHI=MPAG(MVLAST)*IBF L=1+MVBASE DO 500 N=IRCLO,IRCHI6C IF PAGE WAS NEVER MODIFIED, NO NEED TO WRITE IT OUT. IF(MPMOD(MVLAST).EQ.0)GOTO 500M LLL=L+491 WRITE(9'N)((LVALBF(KK,K),KK=1,5),K=L,LLL)N L=L+50500 CONTINUE MPMOD(MVLAST)=0 MPAG(MVLAST)=IPAG GC NOW READ IN THE DESIRED RECORD, HAVING SET THE DESIRED IN-MEMORY FLAGA$ IRCLO=(MPAG(MVLAST)-1)*IBF+1 IRCHI=MPAG(MVLAST)*IBF L=1+MVBASE DO 501 N=IRCLO,IRCHI LLL=L+490 READ(9'N)((LVALBF(KK,K),KK=1,5),K=L,LLL) L=L+50501 CONTINUE1000 CONTINUE?C NOW THE PAGE NEEDED IS IN MEMORY (OR MAY HAVE BEEN ALL ALONG)F&C SET THE VALUE INTO IT AS REQUIRED...KC NOW START LOOKING AT HASH ADDRESS FOR VARIABLE...LINEAR SEARCH AFTERWARDST MPMOD(MVLAST)=1$C FLAG PAGE MODIFIED IF WE TOUCH IT.!C ASSUME WE ALWAYS TOUCH IT HERE.N IF(NXINI.NE.0)GOTO 111  IH1=JHASH-10 DO 1 MMN=JHASH,LVBF/2( N=MMN+MVBASET!C SKIP OUT ON HITTING VIRGIN CELLW IF(LVALBF(1,N).EQ.-1)GOTO 111# IF(LVALBF(1,N).NE.ID)GOTO 1E2C ZERO ALL REFS TO THIS CELL WE'RE ABOUT TO WRITE.:C **** THIS IS QUITE TIME CONSUMING... OMIT IF POSSIBLE... LVALBF(1,N)=0 1 CONTINUE IF(IH1.LT.1)RETURN DO 33 MMN=1,IH1 N=MMN+MVBASES!C SKIP OUT ON HITTING VIRGIN CELLD IF(LVALBF(1,N).EQ.-1)GOTO 111$ IF(LVALBF(1,N).NE.ID)GOTO 332C ZERO ALL REFS TO THIS CELL WE'RE ABOUT TO WRITE.:C **** THIS IS QUITE TIME CONSUMING... OMIT IF POSSIBLE... LVALBF(1,N)=0= 33 CONTINUET 111 CONTINUEFC SINCE ZERO VALUES ARE RETURNED BY DEFAULT, DON'T BOTHER STORING THEM IF(XX.EQ.0.)RETURNE IH1=JHASH-1  DO 2 MMN=JHASH,LVBF/2 N=MMN+MVBASEF NN=N  IF(LVALBF(1,N).EQ.-1)GOTO 4" IF(LVALBF(1,N).EQ.0)GOTO 4 IF(LVALBF(1,N).EQ.ID)GOTO 42 CONTINUE IF(IH1.LT.1)RETURN DO 3 MMN=1,IH1 N=MMN+MVBASE  NN=NL5C LOOK BEFORE THE HASHCODE IF NO FREE CELLS AFTER IT.  IF(LVALBF(1,N).EQ.-1)GOTO 4" IF(LVALBF(1,N).EQ.0)GOTO 4 IF(LVALBF(1,N).EQ.ID)GOTO 43 CONTINUE2C TELL USER VALUE AREA OVERFLOWED, USING ROW 1 END CALL UVT100(CUP,1,1)D WRITE(6,8900)D8900 FORMAT(' Value Table Storage Overflowed - bigger file needed') RETURN&C RETURN IF CAN'T FIND VALUE...TOO BAD4 CONTINUEC SAVE00`g`^YTADATADATADATADATADATA VALUE AS 4 16-BIT WORDS XA=XXPC SAVE ID AND VALUE IN CELL... LVALBF(1,NN)=ID DO 5 M=1,45 LVALBF(M+1,NN)=LL(M) RETURN END % SUBROUTINE XVBLGT(ID1,ID2,XX) CD9C XVBLGT - LOAD 8 BYTES GIVEN DIMENSIONS FOR GETTING THEMOC 2 DIM ARRAY, DIM'D (RRW,RCL) INTEGER*2 ID1,ID2K REAL*8 XX INCLUDE 'VKLUGPRM.FTN'- INTEGER*2 IPGMAX,LPGMXF,IPGMOD,LPGMOD 1 COMMON/FILEMX/IPGMAX,LPGMXF,IPGMOD,LPGMOD " INTEGER*2 TYPE(RRWP,RCLP),VLEN(9)/ LOGICAL*1 AVBLS(20,27),VBLS(8,RRWP,RCLP),VT(8) REAL*8 XVT  EQUIVALENCE(XVT,VT(1))I REAL*8 XXV(RRWP,RCLP)" EQUIVALENCE(XXV(1,1),VBLS(1,1,1)) COMMON/V/TYPE,AVBLS,VBLS,VLENBC LENGTHS (IN K) OF FILES FOR VALUES OR FORMULAS ARE IPGMAX,LPGMXFC NEXT BITMAPS IMPLEMENT FVLDR2 LOGICAL*1 FV1(BRRCL),FV2(BRRCL),FV4(BRRCL) LOGICAL*1 LBITS(8) COMMON/BITS/LBITS) INTEGER*2 ICREF,IRREF COMMON/MIRROR/ICREF,IRREF COMMON/FVLDM/FV1,FV2,FV4BC THE FOLLOWING BITMAP IS FOR TYPE ARRAY, AND INTEGER ARRAY IS FORC TYPES OF AC'S STORAGE:! LOGICAL*1 ITYP(BRRCL),LWK(! INTEGER*2 IATYP(27),LL(4) REAL*8 XA EQUIVALENCE(LL(1),XA) COMMON/TYP/IATYP,ITYPI& INTEGER*2 MFLAST,MFBASE,MVLAST,MVBASE) COMMON/VBCTL/MFLAST,MFBASE,MVLAST,MVBASEO1 INTEGER*2 LVALBF(5,LVBF),MPAG(2),MPMOD(2)M# COMMON/VB/MPAG,LVALBF,MPMOD CTAC NEXT ARE BUFFERS FOR HOLDING VALUES, AND MEMORY OCCUPANCY WORDSO3C FOR EACH GIVING THE BLK # IN USE FOR THESE TABLESM?C FORMAT BLOCK (ONE ONLY, 512 BYTES, BUT ORGANIZED AS 45 FORMATTC AREAS WITH DATA. LOGICAL*1 FMTDAT(9,45) COMMON/FMTBFR/FMTDAT# IF(ID2.GT.1.OR.ID1.GT.27)GOTO 7780(C AN ACCUMULATORC GET IT AS IF IT WERE A CELL( DO 7781 IV=1,87781 VT(IV)=AVBLS(IV,ID1)C XX=XVTW RETURN 7780 CONTINUE(C ID=(ID2-1)*RRW+ID1L CALL REFLEC(ID2,ID1,ID) XX=0. CC NOTE THAT HERE IF FVLD IS 0, THIS MEANS RESULT IS 0 REGARDLESS OF,%C OTHER STUFF...RETURN 0 IMMEDIATELY.BC NOTE TRICK CALL WHICH SIGNALS ANY INITIALIZATION GETS EVALUATED. CALL FVLDGT(ID,0,LWK) IF(LWK.EQ.0)RETURN-C SET UP HASH CODE NOW FOR THE WAY WE NEED...N C IPM=(IPGMAX*100/LVBF)+1 IBF=(LVBF+99)/100 IF(IBF.LT.1)IBF=1 LLL=(IPGMAX*2)/IBF  IPM=LLL IF(IPM.LE.2)IPM=2 IHASH=IDP# JHASH=MOD(IHASH,(LVBF/2))+1F IF(IPGMOD.NE.0)GOTO 3402D IPAG=(IHASH/(LVBF/2))+1A IPAG=MOD(IPAG,IPM)+1 GOTO 3403 3402 CONTINUEOC SPEED-OPTIMIZING PACKING FPG=FLOAT(IPGMOD) IF(FPG.LT.0.)FPG=FPG+65536. FPG=FLOAT(IHASH)*FLOAT(IPM)/FPG IPAG=FPGT IPAG=MOD(IPAG,IPM)O IPAG=IPAG+1C IPAG=1+(IHASH*IPM)/RRCL2 3403 CONTINUEC IF(IPAG.LE.0)IPAG=1/ IF(IPAG.EQ.MPAG(1).OR.IPAG.EQ.MPAG(2))GOTO 851O IF(MPAG(1).NE.0)GOTO 8501 MPAG(1)=IPAGI GOTO 851R 850 IF(MPAG(2).EQ.0)MPAG(2)=IPAG 851 CONTINUE IF(MPAG(1).EQ.IPAG)GOTO 852 IF(MPAG(2).NE.IPAG)GOTO 853C MPAG(2)=IPAG MVLAST=2E MVBASE=LVBF/2 GOTO 1000 852 CONTINUE MVLAST=1. MVBASE=0L GOTO 1000 853 CONTINUEC USE LRU BUFFER AND FLIP USES MVLAST=3-MVLASTC 1 OR 2 MVBASE=(LVBF/2)-MVBASE<C THE ABOVE ACCOUNTS FOR MEMORY FREE... WE TREAT FILE AS IPMDC "PAGES" THE SIZE OF THE MEMORY AREA EACH. THIS MAKES IT RELATIVELYCC EASY TO ALTER THE PROGRAM TO HANDLE MORE MEMORY TO THE EXTENT THEBC COMPILER AND MACHINE ALLOW.T" IF(IPGMAX.LE.(LVBF/100))GOTO 1000EC IF HERE, WE NEED A PAGE NOT IN MEMORY. SWAP THE CURRENT MEMORY PAGE 'C TO DISK AND BRING IN THE ONE DESIRED. 2C FILES ARE OPENED ALREADY HERE... USE LUN 9 HERE.$ IRCLO=(MPAG(MVLAST)-1)*IBF+1 IRCHI=MPAG(MVLAST)*IBF L=1+MVBASE DO 500 N=IRCLO,IRCHI IF(MPMOD(MVLAST).EQ.0)GOTO 500T LLL=L+493 WRITE(9'N)((LVALBF(KKK,K),KKK=1,5),K=L,LLL) L=L+50500 CONTINUE MPMOD(MVLAST)=02C THIS ONLY READS, SO NEVER SET MPMOD=1 IN XVBLGT.7C ON THE CONTRARY, SPECIFY IT AS UNTOUCHED AS YET HERE.S MPAG(MVLAST)=IPAG.GC NOW READ IN THE DESIRED RECORD, HAVING SET THE DESIRED IN-MEMORY FLAGE$ IRCLO=(MPAG(MVLA00``^[Z[[[\[}ST)-1)*IBF+1 IRCHI=MPAG(MVLAST)*IBF L=1+MVBASE DO 501 N=IRCLO,IRCHI LLL=L+492 READ(9'N)((LVALBF(KKK,K),KKK=1,5),K=L,LLL) L=L+50501 CONTINUE1000 CONTINUE?C NOW THE PAGE NEEDED IS IN MEMORY (OR MAY HAVE BEEN ALL ALONG)T&C SET THE VALUE INTO IT AS REQUIRED...KC NOW START LOOKING AT HASH ADDRESS FOR VARIABLE...LINEAR SEARCH AFTERWARDS IH1=JHASH-1  DO 2 MMN=JHASH,LVBF/2N N=MMN+MVBASE NN=N  IF(LVALBF(1,N).EQ.-1)GOTO 3332# IF(LVALBF(1,N).EQ.ID)GOTO 4 2 CONTINUE IF(IH1.LT.1)RETURN DO 3 MMN=1,IH1 N=MMN+MVBASE 5C LOOK BEFORE THE HASHCODE IF NO FREE CELLS AFTER IT. NN=N  IF(LVALBF(1,N).EQ.-1)GOTO 3332V# IF(LVALBF(1,N).EQ.ID)GOTO 43 CONTINUE 3332 XX=0. RETURN&C RETURN IF CAN'T FIND VALUE...TOO BADEC NOTE WE ALSO RETURN INSTANTLY IF WE SEE A VIRGIN CELL SINCE WE KNOWN&C THE REAL VALUE CANNOT LIE BEYOND IT.4 CONTINUEC GET VALUE AS 4 16-BIT WORDS  DO 5 M=1,45 LL(M)=LVALBF(M+1,NN) XX=XAA RETURN END, SUBROUTINE WSSETC WORK SHEET MANAGMENT ROUTINES(C HANDLE SPREADSHEET "IN MEMORY" STORAGEC COPYRIGHT GLENN EVERHART 1983CC ALL RIGHTS RESERVEDC0C WSSET - INITIALIZE STORAGE TO START CONDITIONS INCLUDE 'VKLUGPRM.FTN'EC EXPECT IMPLEMENTATION TO USE A COMMON BITMAP AND PROVIDE A VARIABLE(C NCEL TO TELL HOW MANY CELLS ARE IN USEC NEXT BITMAPS IMPLEMENT FVLD PARAMETER CUP=12 LOGICAL*1 FV1(BRRCL),FV2(BRRCL),FV4(BRRCL) LOGICAL*1 LBITS(8) COMMON/BITS/LBITS INTEGER*2 IPGMAX,LPGMXF# COMMON/FILEMX/IPGMAX,LPGMXFBC LENGTHS (IN K) OF FILES FOR VALUES OR FORMULAS ARE IPGMAX,LPGMXF8C USE LUN 7 FOR FORMULAS, 9 FOR VALUES FILE IF NEEDED... COMMON/FVLDM/FV1,FV2,FV4BC THE FOLLOWING BITMAP IS FOR TYPE ARRAY, AND INTEGER ARRAY IS FORC TYPES OF AC'S STORAGE: LOGICAL*1 ITYP(BRRCL)" INTEGER*2 IATYP(27),LINTGR$ COMMON/TYP/IATYP,ITYP,LINTGR INTEGER*2 DLFG COMMON/DLFG/DLFGC DLFG FLAGS IF D## SEENCAC NEXT ARE BUFFERS FOR HOLDING VALUES, AND MEMORY OCCUPANCY WORDS3C FOR EACH GIVING THE BLK # IN USE FOR THESE TABLES?C FORMAT BLOCK (ONE ONLY, 512 BYTES, BUT ORGANIZED AS 45 FORMATC AREAS WITH DATA. LOGICAL*1 FMTDAT(9,45) COMMON/FMTBFR/FMTDAT" LOGICAL*1 DVF(12),DFMT(10)# EQUIVALENCE(DVF(2),DFMT(1)) COMMON/DEFVBX/DVF+ INTEGER*2 LVALBF(5,LVBF),MPAG,MPMOD# COMMON/VB/MPAG,LVALBF,MPMOD( INTEGER*2 MFID,IFID(8,LFM),MFMOD LOGICAL*1 LFID(16,LFM)( EQUIVALENCE(IFID(1,1),LFID(1,1))" COMMON/FRM/MFID,IFID,MFMODC COMMON /NCEL/NCEL,NXINI IBP=1 LINTGR=0 MPMOD=0 MFMOD=0 DLFG=0 DO 2 N=1,92 FMTDAT(N,1)=DFMT(N) DO 3 N=2,45 DO 3 NN=1,93 FMTDAT(NN,N)=0 DO 1 N=1,8 LBITS(N)=128/IBP1 IBP=IBP+IBP DO 4 N=1,BRRCLC CLEAR BITMAPS NOW FV1(N)=0 FV2(N)=0 FV4(N)=04 ITYP(N)=02C OPEN THE WORK FILES SO WE DON'T NEED TO LATER...$C LUN 7 IS FORMULAS; LUN 9 IS VALUESBC HOWEVER, IF IPGMAX IS LESS THAN LVBF/205 (INDICATING ENTIRE FILEFC FITS IN MEMORY) DON'T OPEN LUN 9 AND IF LPGMXF IS < LFM/64, LIKEWISE C FOR LUN 7.1C INITIALLY CLOSE FILES IN CASE THEY WERE OPEN...# CLOSE(UNIT=7,DISP='DELETE')# CLOSE(UNIT=9,DISP='DELETE')'C NOW OPEN THEM AS RANDOM ACCESS FILES. NBK=IPGMAX*2AC KEEP VALUE PAGES IN 500 BYTE UNITS, NOT 512 BYTE UNITS, TO COME C OUT EVEN...< 00`g`^YTADATADATADATADATADATA IF(IPGMAX.GT.(LVBF/100))OPEN(UNIT=9,FILE='PVBL.TMP',< 1 ACCESS='DIRECT',DISPOSE='DELETE',FORM='UNFORMATTED',9 2 INITIALSIZE=NBK,BLOCKSIZE=500,RECORDTYPE='FIXED', 3 RECL=125,STATUS='NEW') NBK=LPGMXF*2: IF(LPGMXF.GT.(LFM/64))OPEN(UNIT=7,FILE='PFMT.TMP',< 1 ACCESS='DIRECT',DISPOSE='DELETE',FORM='UNFORMATTED',9 2 INITIALSIZE=NBK,BLOCKSIZE=512,RECORDTYPE='FIXED', 3 RECL=128,STATUS='NEW')C SET NOTHING IN MEMORY YET MFID=0 MPAG=0C ZERO MEMORY BUFFER AND FILES,C SET TO -1 SO WE CAN RECOGNIZE VIRGIN CELLS DO 9 N=1,LVBF DO 9 M=1,59 LVALBF(M,N)=-1 NPG=(IPGMAX*2)' IF(IPGMAX.LE.(LVBF/100))GOTO 11 DO 10 N=1,NPG210 WRITE(9'N)((LVALBF(K,KKK),K=1,5),KKK=1,50)11 CONTINUE'C AGAIN FLAG VIRGIN CELLS WITH ID OF -1 DO 12 N=1,LFM DO 12 M=1,812 IFID(M,N)=-1 NPG=LPGMXF*2% IF(LPGMXF.LE.(LFM/64))GOTO 14 DO 13 N=1,NPG013 WRITE(7'N)((IFID(K,KKK),K=1,8),KKK=1,32)14 CONTINUE"C SET ALL AC'S TO TYPE FLOATING... DO 8 N=1,278 IATYP(N)=2C TYPE 2 IS REALS (DEFAULT) NCEL=0 NXINI=0 RETURN ENDC SUBROUTINE FVPEEK(ID1,ID2,IGO)CC PEEK INTO FV1 THRU FV4 INDICES TO FIND COMPUTABLE CELLS. REQUIRES>C FV4 BIT OFF, FV1 OR F2 BIT ON (OR BOTH). DESIGNED AS WAY FOR@C RECALC TO CHEAT AND SKIP QUICKLY BY CELLS NOT IN MAP. IGO GETS7C START INDEX FOR ID1 WITHIN RANGE OF ID1 FROM 1 TO RRWC INCLUDE 'VKLUGPRM.FTN'2 LOGICAL*1 FV1(BRRCL),FV2(BRRCL),FV4(BRRCL) LOGICAL*1 LBITS(8) COMMON/BITS/LBITS COMMON/FVLDM/FV1,FV2,FV4 IGO=ID1!C DEFAULT IS ID1 IS GIVEN TO IGO.C ID=(ID2-1)*RRW+ID1 IRRR=ID2*RRW ID=IRRR-RRW+ID1 IBYT=((ID-1)/8)+1 IRRR=((IRRR-1)/8)+1$C IGO MUST NEVER GET BIGGER THAN RRW DO 1 N=IBYT,IRRR III=N% IF(FV1(N).NE.0.OR.FV2(N).NE.0)GOTO 2DC SKIP BY UNLESS FV1 OR FV2 BITS ARE SET. ALLOW LABELS BY HERE SINCE>C THIS IS A CRUDE TEST FOR MOSTLY TOTALLY UNINITIALIZED CELLS. 1 CONTINUE7C ON FALL THROUGH WE LEAVE III AT MAX TO SKIP THIS AREA 2 CONTINUE N=((III-1)*8)+1CC COMPUTE FIRST CELL OF BITMAP BLK WE FOUND, RETURN IT AS NEW INDEXC UNLESS ALREADY PAST IT... N=N-RRW*(ID2-1)GC NOTE WE PICK RRW IF N IS BIGGER SINCE WE CHECK ON AN INNER LOOP ONLY. IF(N.GT.IGO)IGO=MIN0(N,RRW) RETURN END' SUBROUTINE TYPGET(ID1,ID2,IVAL)C-C TYPGET - GET TYPE(RRW,RCL) ARRAY WORDS BACK1C RETURN TYPE(ID1,ID2) IN IVAL, BUT NOT REALLY... INCLUDE 'VKLUGPRM.FTN'C NEXT BITMAPS IMPLEMENT FVLD2 LOGICAL*1 FV1(BRRCL),FV2(BRRCL),FV4(BRRCL) LOGICAL*1 LBITS(8) COMMON/BITS/LBITS COMMON/FVLDM/FV1,FV2,FV4BC THE FOLLOWING BITMAP IS FOR TYPE ARRAY, AND INTEGER ARRAY IS FORC TYPES OF AC'S STORAGE: LOGICAL*1 ITYP(BRRCL)' INTEGER*2 IATYP(27),IVAL,LINTGR$ COMMON/TYP/IATYP,ITYP,LINTGRCAC NEXT ARE BUFFERS FOR HOLDING VALUES, AND MEMORY OCCUPANCY WORDS3C FOR EACH GIVING THE BLK # IN USE FOR THESE TABLES?C FORMAT BLOCK (ONE ONLY, 512 BYTES, BUT ORGANIZED AS 45 FORMATC AREAS WITH DATA. LOGICAL*1 FMTDAT(9,45) COMMON/FMTBFR/FMTDAT LOGICAL*1 ITST+ IF(ID1.LE.27.AND.ID2.LE.1)GOTO 1000 IVAL=2 IF(LINTGR.EQ.0)RETURN CALL FVLDGT(ID1,ID2,ITST) IF(ITST.EQ.0)GOTO 500 ID=(ID2-1)*RRW+ID1 IBT=(ID-1)/8 IBIT=((ID-1).AND.7)+1& ITST=ITYP(IBT).AND.LBITS(IBIT)500 IVAL=2 IF(ITST.NE.0)IVAL=4 RETURN1000 CONTINUEC AN AC. RETURN FULL TYPE WORD IVAL=IATYP(ID1) RETURN END' SUBROUTINE TYPSET(ID1,ID2,IVAL)C,C TYPSET - STORE IVAL IN TYPE(RRW,RCL) ARRAY INCLUDE 'VKLUGPRM.FTN'C NEXT BITMAPS IMPLEMENT FVLD INTEGER*2 IVAL2 LOGICAL*1 FV1(BRRCL),FV2(BRRCL),FV4(BRRCL) LOGICAL*1 LBITS(8) COMMON/BITS/LBITS COMMON/FVLDM/FV1,FV2,FV4BC THE FOLLOWING BITMAP IS FOR TYPE ARRAY, AND INTEGER ARRAY 00``^[Z[[[\[}IS FORC TYPES OF AC'S STORAGE: LOGICAL*1 ITYP(BRRCL)" INTEGER*2 IATYP(27),LINTGR$ COMMON/TYP/IATYP,ITYP,LINTGRCAC NEXT ARE BUFFERS FOR HOLDING VALUES, AND MEMORY OCCUPANCY WORDS3C FOR EACH GIVING THE BLK # IN USE FOR THESE TABLES?C FORMAT BLOCK (ONE ONLY, 512 BYTES, BUT ORGANIZED AS 45 FORMATC AREAS WITH DATA. LOGICAL*1 FMTDAT(9,45) COMMON/FMTBFR/FMTDAT LOGICAL*1 ITST,ITST2* IF(ID2.LE.1.AND.ID1.LE.27)GOTO 2007C SKIPPED THE AC'S HERE. RETURN INSTANTLY IF NO INTEGER:C CELLS HAVE BEEN DEFINED (WHICH WILL BE MOST OF THE TIME)* IF(LINTGR.EQ.0.AND.IABS(IVAL).EQ.2)RETURN LINTGR=1 ID=(ID2-1)*RRW+ID1 IBT=(ID-1)/8 IBIT=((ID-1).AND.7)+1 ITST2=.NOT.LBITS(IBIT)! ITST2=ITYP(IBT).AND.ITST2% ITST=ITYP(IBT).OR.LBITS(IBIT) ITYP(IBT)=ITST22 IF(IVAL.NE.-2.AND.IVAL.NE.2)ITYP(IBT)=ITST RETURN 200 CONTINUE IATYP(ID1)=IVAL RETURN END' SUBROUTINE FVLDGT(ID1,ID2,IVAL)C:C FVLDGT - RETURN FVLD BYTE GIVEN 2 DIMS OF ITS "LOCATION" INTEGER*2 ID1,ID2 LOGICAL*1 IVAL INCLUDE 'VKLUGPRM.FTN'C NEXT BITMAPS IMPLEMENT FVLD2 LOGICAL*1 FV1(BRRCL),FV2(BRRCL),FV4(BRRCL) LOGICAL*1 LBITS(8) COMMON/BITS/LBITS COMMON/FVLDM/FV1,FV2,FV4BC THE FOLLOWING BITMAP IS FOR TYPE ARRAY, AND INTEGER ARRAY IS FORC TYPES OF AC'S STORAGE: LOGICAL*1 ITYP(BRRCL) INTEGER*2 IATYP(27) COMMON/TYP/IATYP,ITYPCAC NEXT ARE BUFFERS FOR HOLDING VALUES, AND MEMORY OCCUPANCY WORDS3C FOR EACH GIVING THE BLK # IN USE FOR THESE TABLES?C FORMAT BLOCK (ONE ONLY, 512 BYTES, BUT ORGANIZED AS 45 FORMATC AREAS WITH DATA. LOGICAL*1 FMTDAT(9,45) COMMON/FMTBFR/FMTDAT LOGICAL*1 I1,I2,I4 IF(ID2.GT.0)GOTO 20004C TRICK ENTRY USING ID IN FIRST ARG, 0 IN 2ND ARG...IC TELL XVBLST/XVBLGT ABOUT FV4 STATE (SET BY CALL WITH -4 BYTE ON FVLDST) ID=ID1 IBT=((ID-1)/8)+1 IBIT=((ID-1).AND.7)+1# I1=FV1(IBT).AND.LBITS(IBIT)# I2=FV2(IBT).AND.LBITS(IBIT)# I4=FV4(IBT).AND.LBITS(IBIT) IVAL=0%C RETURN NONZERO IF ANY BITS ARE SET. IF((I1+I2+I4).NE.0)IVAL=1 RETURN 2000 CONTINUE ID=(ID2-1)*RRW+ID1 IBT=((ID-1)/8)+1 IBIT=((ID-1).AND.7)+1# I1=FV1(IBT).AND.LBITS(IBIT)# I2=FV2(IBT).AND.LBITS(IBIT)# I4=FV4(IBT).AND.LBITS(IBIT) IVL=0 IF(I1.NE.0)IVL=1 IF(I2.NE.0)IVL=IVL+2 IF(I4.NE.0)IVL=-IVL IVAL=IVLCC READS OFF FVLD BYTE FROM 3 BITS, HIGH ONE IS SIGN. TREAT AS SIGN-%C MAGNITUDE NUMBER IN RANGE -3 TO +3, RETURN END' SUBROUTINE FVLDST(ID1,ID2,IVAL)C%C FVLDST - SET THE BYTE IN FVLD ARRAY INCLUDE 'VKLUGPRM.FTN'C NEXT BITMAPS IMPLEMENT FVLD2 LOGICAL*1 FV1(BRRCL),FV2(BRRCL),FV4(BRRCL) LOGICAL*1 IVAL LOGICAL*1 LBITS(8) COMMON/BITS/LBITS COMMON/FVLDM/FV1,FV2,FV4BC THE FOLLOWING BITMAP IS FOR TYPE ARRAY, AND INTEGER ARRAY IS FORC TYPES OF AC'S STORAGE: LOGICAL*1 ITYP(BRRCL) INTEGER*2 IATYP(27) COMMON/TYP/IATYP,ITYPCAC NEXT ARE BUFFERS FOR HOLDING VALUES, AND MEMORY OCCUPANCY WORDS3C FOR EACH GIVING THE BLK # IN USE FOR THESE TABLES?C FORMAT BLOCK (ONE ONLY, 512 BYTES, BUT ORGANIZED AS 45 FORMATC AREAS WITH DATA. LOGICAL*1 FMTDAT(9,45) INTEGER*2 IVV,I1,I2,I3 COMMON/FMTBFR/FMTDATC LOGICAL*1 I4 ID=(ID2-1)*RRW+ID1 IBT=((ID-1)/8)+1 IBIT=((ID-1).AND.7)+1C ZERO ALL 3 FVLD BITS FIRST. FV1(IBT)=FV1(IBT).AND..NOT.LBITS(IBIT). FV2(IBT)=FV2(IBT).AND..NOT.LBITS(IBIT). FV4(IBT)=FV4(IBT).AND..NOT.LBITS(IBIT) IVVV=IVAL IVV=IABS(IVVV) I3=0 IF(IVAL.LT.0)I3=1 I1=0 I2=0 I2=IVV.AND.2 I1=IVV.AND.1?C NOTE WE ASSUME HEAVILY THAT LOGICAL OPERATIONS WORK BY BINARYC ANDS AND ORS IN DATA.3 IF(I1.00`g`^YTADATADATADATADATADATANE.0)FV1(IBT)=FV1(IBT).OR.LBITS(IBIT)3 IF(I2.NE.0)FV2(IBT)=FV2(IBT).OR.LBITS(IBIT)3 IF(I3.NE.0)FV4(IBT)=FV4(IBT).OR.LBITS(IBIT) RETURN END+ SUBROUTINE VBLGET(ID1,ID2,ID3,IVAL)C3C VBLGET - GET BYTE OF 3 DIM VBLS ARRAY, ORIGINALLY;C DIMENSIONED (8,RRW,RCL). HANDLE BY CALLING XVBLGT TO GET7C CORRECT 8 BYTE VARIABLE, AND PULLING OUT CORRECT ONE INTEGER*2 ID1,ID2,ID3 LOGICAL*1 IVAL,LL(8) REAL*8 XX EQUIVALENCE(LL(1),XX) CALL XVBLGT(ID2,ID3,XX) IVAL=LL(ID1) RETURN END+ SUBROUTINE VBLSET(ID1,ID2,ID3,IVAL)3C VBLSET - SET BYTE OF 3 DIM VBLS ARRAY, ORIGINALLY;C DIMENSIONED (8,RRW,RCL). HANDLE BY CALLING XVBLST TO GET6C CORRECT 8 BYTE VARIABLE, AND PUTTING IN CORRECT ONE INTEGER*2 ID1,ID2,ID3 LOGICAL*1 IVAL,LL(8) REAL*8 XX EQUIVALENCE(LL(1),XX)?C GET THE DESIRED 8 BYTES, THEN CHANGE THE ONE WE WANT. THEN... CALL XVBLGT(ID2,ID3,XX) LL(ID1)=IVALC PUT BACK THE 8 BYTES. CALL XVBLST(ID2,ID3,XX) RETURN END+ SUBROUTINE JVBLGT(ID1,ID2,ID3,IVAL)C=C JVBLGT - GET INTEGER*4 WORD OF 3 DIM VBLS ARRAY, ORIGINALLY;C DIMENSIONED (2,RRW,RCL). HANDLE BY CALLING XVBLGT TO GET7C CORRECT 8 BYTE VARIABLE, AND PULLING OUT CORRECT ONE INTEGER*2 ID1,ID2,ID3 INTEGER*4 IVAL,LL(2) REAL*8 XX EQUIVALENCE(LL(1),XX) CALL XVBLGT(ID2,ID3,XX) IVAL=LL(ID1) RETURN END+ SUBROUTINE JVBLST(ID1,ID2,ID3,IVAL)7C JVBLST - SET I*4 WORD OF 3 DIM VBLS ARRAY, ORIGINALLY;C DIMENSIONED (2,RRW,RCL). HANDLE BY CALLING XVBLST TO GET6C CORRECT 8 BYTE VARIABLE, AND PUTTING IN CORRECT ONE INTEGER*2 ID1,ID2,ID3 INTEGER*4 IVAL,LL(2) REAL*8 XX EQUIVALENCE(LL(1),XX)@C GET THE DESIRED 8 BYTES, THEN CHANGE THE ONES WE WANT. THEN... CALL XVBLGT(ID2,ID3,XX) LL(ID1)=IVALC PUT BACK THE 8 BYTES. CALL XVBLST(ID2,ID3,XX) RETURN END% SUBROUTINE XVBLST(ID1,ID2,XX)C+C XVBLST - STORE 8 BYTES IN VARIABLES ARRAY$C GIVEN DIMENSIONS FOR LOCATING THEM INTEGER*2 ID1,ID2 REAL*8 XX INCLUDE 'VKLUGPRM.FTN'" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9)/ LOGICAL*1 AVBLS(20,27),VBLS(8,RRWP,RCLP),VT(8) REAL*8 XVT EQUIVALENCE(XVT,VT(1)) REAL*8 XXV(RRWP,RCLP)" EQUIVALENCE(XXV(1,1),VBLS(1,1,1)) COMMON/V/TYPE,AVBLS,VBLS,VLEN- INTEGER*2 IPGMAX,LPGMXF,IPGMOD,LPGMOD1 COMMON/FILEMX/IPGMAX,LPGMXF,IPGMOD,LPGMODBC LENGTHS (IN K) OF FILES FOR VALUES OR FORMULAS ARE IPGMAX,LPGMXFC NEXT BITMAPS IMPLEMENT FVLD2 LOGICAL*1 FV1(BRRCL),FV2(BRRCL),FV4(BRRCL) LOGICAL*1 LBITS(8) COMMON/BITS/LBITS COMMON/FVLDM/FV1,FV2,FV4BC THE FOLLOWING BITMAP IS FOR TYPE ARRAY, AND INTEGER ARRAY IS FORC TYPES OF AC'S STORAGE: LOGICAL*1 ITYP(BRRCL) INTEGER*2 IATYP(27) COMMON/TYP/IATYP,ITYPCAC NEXT ARE BUFFERS FOR HOLDING VALUES, AND MEMORY OCCUPANCY WORDS3C FOR EACH GIVING THE BLK # IN USE FOR THESE TABLES?C FORMAT BLOCK (ONE ONLY, 512 BYTES, BUT ORGANIZED AS 45 FORMATC AREAS WITH DATA.$ LOGICAL*1 FMTDAT(9,45),LLTST COMMON/FMTBFR/FMTDAT+ INTEGER*2 LVALBF(5,LVBF),MPAG,MPMOD# COMMON/VB/MPAG,LVALBF,MPMOD INTEGER*2 LL(4) REAL*8 XA EQUIVALENCE(XA,LL(1)) INTEGER*2 NCEL,NXINI COMMON/NCEL/NCEL,NXINI ID2=MAX0(ID2,1)# IF(ID2.GT.1.OR.ID1.GT.27)GOTO 7780C AN ACCUMULATOR. SET IT. XVT=XX DO 7781 IV=1,87781 AVBLS(IV,ID1)=VT(IV) RETURN 7780 CONTINUE ID=(ID2-1)*RRW+ID1-C SET UP HASH CODE NOW FOR THE WAY WE NEED...C IPM=(IPGMAX*200/LVBF) IF(ID.LE.0)RETURN8C CALL FVLDGT TO TELL IF ANYTHING IS SET FOR THE CELL... CALL FVLDGT(ID1,ID2,LLTST) IF(LLTST.NE.0)GOTO 3419 CALL FVLDST(ID1,ID2,-4)=C TRICK ... SET UP SIGN BIT IN FVLD SO XVBLGT CAN FIND OUT IF@C VARIABLE HAS EVER BE00``^[Z[[[\[}EN WRITTEN AND EXIT IF NOT. INDEPENDENT OF6C USUAL SETTING OF FVLD SINCE IT USES "SIGN" BIT ONLY. 3419 CONTINUE IBF=(LVBF+49)/50 IF(IBF.LT.1)IBF=1 LLL=(IPGMAX*2)/IBF IPM=LLL IF(IPM.LE.0)IPM=1 IHASH=ID JHASH=MOD(IHASH,LVBF)+1 IF(IPGMOD.NE.0)GOTO 3400C SPACE-OPTIMIZING PACKING IPAG=(IHASH/LVBF)+1 IPAG=MOD(IPAG,IPM)+1 GOTO 3401 3400 CONTINUEC SPEED-OPTIMIZING PACKING FPG=FLOAT(IPGMOD) IF(FPG.LT.0.)FPG=FPG+65536. FPG=FLOAT(IHASH)*FLOAT(IPM)/FPG IPAG=FPG IPAG=MOD(IPAG,IPM) IPAG=IPAG+1C IPAG=1+(IHASH*IPM)/RRCL 3401 CONTINUE IF(IPAG.LE.0)IPAG=1 IF(MPAG.EQ.0)MPAG=IPAG<C THE ABOVE ACCOUNTS FOR MEMORY FREE... WE TREAT FILE AS IPMDC "PAGES" THE SIZE OF THE MEMORY AREA EACH. THIS MAKES IT RELATIVELYCC EASY TO ALTER THE PROGRAM TO HANDLE MORE MEMORY TO THE EXTENT THEC COMPILER AND MACHINE ALLOW.! IF(IPAG.EQ.MPAG)GOTO 1000" IF(IPGMAX.LE.(LVBF/100))GOTO 1000EC IF HERE, WE NEED A PAGE NOT IN MEMORY. SWAP THE CURRENT MEMORY PAGE'C TO DISK AND BRING IN THE ONE DESIRED.2C FILES ARE OPENED ALREADY HERE... USE LUN 9 HERE. IRCLO=(MPAG-1)*IBF+1 IRCHI=MPAG*IBF L=1 DO 500 N=IRCLO,IRCHI6C IF PAGE WAS NEVER MODIFIED, NO NEED TO WRITE IT OUT. IF(MPMOD.EQ.0)GOTO 500 LLL=L+491 WRITE(9'N)((LVALBF(KK,K),KK=1,5),K=L,LLL) L=L+50500 CONTINUE MPMOD=0 MPAG=IPAGGC NOW READ IN THE DESIRED RECORD, HAVING SET THE DESIRED IN-MEMORY FLAG IRCLO=(MPAG-1)*IBF+1 IRCHI=MPAG*IBF L=1U DO 501 N=IRCLO,IRCHI LLL=L+490 READ(9'N)((LVALBF(KK,K),KK=1,5),K=L,LLL) L=L+50501 CONTINUE1000 CONTINUE?C NOW THE PAGE NEEDED IS IN MEMORY (OR MAY HAVE BEEN ALL ALONG)T&C SET THE VALUE INTO IT AS REQUIRED...KC NOW START LOOKING AT HASH ADDRESS FOR VARIABLE...LINEAR SEARCH AFTERWARDSE MPMOD=1$C FLAG PAGE MODIFIED IF WE TOUCH IT.!C ASSUME WE ALWAYS TOUCH IT HERE.  IF(NXINI.NE.0)GOTO 111  IH1=JHASH-1T DO 1 N=JHASH,LVBFX!C SKIP OUT ON HITTING VIRGIN CELLM IF(LVALBF(1,N).EQ.-1)GOTO 111# IF(LVALBF(1,N).NE.ID)GOTO 1A2C ZERO ALL REFS TO THIS CELL WE'RE ABOUT TO WRITE.:C **** THIS IS QUITE TIME CONSUMING... OMIT IF POSSIBLE... LVALBF(1,N)=0E1 CONTINUE IF(IH1.LT.1)RETURN DO 33 N=1,IH1O!C SKIP OUT ON HITTING VIRGIN CELLE IF(LVALBF(1,N).EQ.-1)GOTO 111$ IF(LVALBF(1,N).NE.ID)GOTO 332C ZERO ALL REFS TO THIS CELL WE'RE ABOUT TO WRITE.:C **** THIS IS QUITE TIME CONSUMING... OMIT IF POSSIBLE... LVALBF(1,N)=0H 33 CONTINUEL 111 CONTINUEFC SINCE ZERO VALUES ARE RETURNED BY DEFAULT, DON'T BOTHER STORING THEM IF(XX.EQ.0.)RETURNH IH1=JHASH-1A DO 2 N=JHASH,LVBFO NN=NT IF(LVALBF(1,N).EQ.-1)GOTO 4" IF(LVALBF(1,N).EQ.0)GOTO 4 IF(LVALBF(1,N).EQ.ID)GOTO 42 CONTINUE IF(IH1.LT.1)RETURN DO 3 N=1,IH1 NN=NM5C LOOK BEFORE THE HASHCODE IF NO FREE CELLS AFTER IT., IF(LVALBF(1,N).EQ.-1)GOTO 4" IF(LVALBF(1,N).EQ.0)GOTO 4 IF(LVALBF(1,N).EQ.ID)GOTO 43 CONTINUE2C TELL USER VALUE AREA OVERFLOWED, USING ROW 1 END CALL UVT100(CUP,1,1)M WRITE(6,8900)D8900 FORMAT(' Value Table Storage Overflowed - bigger file needed') RETURN&C RETURN IF CAN'T FIND VALUE...TOO BAD4 CONTINUEC SAVE VALUE AS 4 16-BIT WORDS XA=XX+C SAVE ID AND VALUE IN CELL... LVALBF(1,NN)=ID DO 5 M=1,45 LVALBF(M+1,NN)=LL(M) RETURN ENDP% SUBROUTINE XVBLGT(ID1,ID2,XX)AC.9C XVBLGT - LOAD 8 BYTES GIVEN DIMENSIONS FOR GETTING THEMMC 2 DIM ARRAY, DIM'D (RRW,RCL) INTEGER*2 ID1,ID2  REAL*8 XXL INCLUDE 'VKLUGPRM.FTN'- INTEGER*2 IPGMAX,LPGMXF,IPGMOD,LPGMOD 1 COMMON/FILEMX/IPGMAX,LPGMXF,IPGMOD,LPGMODS" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9)/ LOGICAL*1 AVBLS(20,27),VBLS(8,RRWP,RCLP),VT(8)F REAL*8 XVT  EQUIVALENCE(XVT,VT(1))L REAL*8 XXV(RRWP,RCLP)" EQUIVALENCE(XXV(1,1),VBLS(1,1,1)) COMMON/V/TYPE,AVB00`g`^YTADATADATADATADATADATALS,VBLS,VLENBC LENGTHS (IN K) OF FILES FOR VALUES OR FORMULAS ARE IPGMAX,LPGMXFC NEXT BITMAPS IMPLEMENT FVLDT2 LOGICAL*1 FV1(BRRCL),FV2(BRRCL),FV4(BRRCL) LOGICAL*1 LBITS(8) COMMON/BITS/LBITSB COMMON/FVLDM/FV1,FV2,FV4BC THE FOLLOWING BITMAP IS FOR TYPE ARRAY, AND INTEGER ARRAY IS FORC TYPES OF AC'S STORAGE:! LOGICAL*1 ITYP(BRRCL),LWKS! INTEGER*2 IATYP(27),LL(4)3 REAL*8 XA EQUIVALENCE(LL(1),XA) COMMON/TYP/IATYP,ITYPD+ INTEGER*2 LVALBF(5,LVBF),MPAG,MPMODF# COMMON/VB/MPAG,LVALBF,MPMOD CGAC NEXT ARE BUFFERS FOR HOLDING VALUES, AND MEMORY OCCUPANCY WORDSF3C FOR EACH GIVING THE BLK # IN USE FOR THESE TABLESE?C FORMAT BLOCK (ONE ONLY, 512 BYTES, BUT ORGANIZED AS 45 FORMAT(C AREAS WITH DATA. LOGICAL*1 FMTDAT(9,45) COMMON/FMTBFR/FMTDAT ID2=MAX0(ID2,1)# IF(ID2.GT.1.OR.ID1.GT.27)GOTO 7780C AN ACCUMULATORC GET IT AS IF IT WERE A CELLL DO 7781 IV=1,8)7781 VT(IV)=AVBLS(IV,ID1), XX=XVT  RETURN( 7780 CONTINUEK ID=(ID2-1)*RRW+ID1 XX=0. CC NOTE THAT HERE IF FVLD IS 0, THIS MEANS RESULT IS 0 REGARDLESS OF2%C OTHER STUFF...RETURN 0 IMMEDIATELY. BC NOTE TRICK CALL WHICH SIGNALS ANY INITIALIZATION GETS EVALUATED. CALL FVLDGT(ID,0,LWK) IF(LWK.EQ.0)RETURND-C SET UP HASH CODE NOW FOR THE WAY WE NEED... C IPM=(IPGMAX*100/LVBF)+1 IBF=(LVBF+49)/50F IF(IBF.LT.1)IBF=1 LLL=(IPGMAX*2)/IBF  IPM=LLL IF(IPM.LE.0)IPM=1C IHHI=ID/256C IHASH=ID.AND.255 C IHASH=IHASH*128+IHHIN IHASH=ID  JHASH=MOD(IHASH,LVBF)+1V IF(IPGMOD.NE.0)GOTO 3402  IPAG=(IHASH/LVBF)+1/ IPAG=MOD(IPAG,IPM)+1 GOTO 3403 3402 CONTINUEAC SPEED-OPTIMIZING PACKING FPG=FLOAT(IPGMOD) IF(FPG.LT.0.)FPG=FPG+65536. FPG=FLOAT(IHASH)*FLOAT(IPM)/FPG IPAG=FPGI IPAG=MOD(IPAG,IPM) IPAG=IPAG+1C IPAG=1+(IHASH*IPM)/RRCL 3403 CONTINUEI IF(IPAG.LE.0)IPAG=1N IF(MPAG.EQ.0)MPAG=IPAG<C THE ABOVE ACCOUNTS FOR MEMORY FREE... WE TREAT FILE AS IPMDC "PAGES" THE SIZE OF THE MEMORY AREA EACH. THIS MAKES IT RELATIVELYCC EASY TO ALTER THE PROGRAM TO HANDLE MORE MEMORY TO THE EXTENT THENC COMPILER AND MACHINE ALLOW. ! IF(IPAG.EQ.MPAG)GOTO 1000 " IF(IPGMAX.LE.(LVBF/100))GOTO 1000EC IF HERE, WE NEED A PAGE NOT IN MEMORY. SWAP THE CURRENT MEMORY PAGEE'C TO DISK AND BRING IN THE ONE DESIRED.I2C FILES ARE OPENED ALREADY HERE... USE LUN 9 HERE. IRCLO=(MPAG-1)*IBF+1 IRCHI=MPAG*IBF L=1R DO 500 N=IRCLO,IRCHI IF(MPMOD.EQ.0)GOTO 500Y LLL=L+493 WRITE(9'N)((LVALBF(KKK,K),KKK=1,5),K=L,LLL)  L=L+50500 CONTINUE MPMOD=02C THIS ONLY READS, SO NEVER SET MPMOD=1 IN XVBLGT.7C ON THE CONTRARY, SPECIFY IT AS UNTOUCHED AS YET HERE.N MPAG=IPAGEGC NOW READ IN THE DESIRED RECORD, HAVING SET THE DESIRED IN-MEMORY FLAGA IRCLO=(MPAG-1)*IBF+1 IRCHI=MPAG*IBF L=1  DO 501 N=IRCLO,IRCHI LLL=L+492 READ(9'N)((LVALBF(KKK,K),KKK=1,5),K=L,LLL) L=L+50501 CONTINUE1000 CONTINUE?C NOW THE PAGE NEEDED IS IN MEMORY (OR MAY HAVE BEEN ALL ALONG)A&C SET THE VALUE INTO IT AS REQUIRED...KC NOW START LOOKING AT HASH ADDRESS FOR VARIABLE...LINEAR SEARCH AFTERWARDS  IH1=JHASH-1L DO 2 N=JHASH,LVBFI NN=NR IF(LVALBF(1,N).EQ.-1)GOTO 33322# IF(LVALBF(1,N).EQ.ID)GOTO 4 2 CONTINUE IF(IH1.LT.1)RETURN DO 3 N=1,IH15C LOOK BEFORE THE HASHCODE IF NO FREE CELLS AFTER IT.  NN=N IF(LVALBF(1,N).EQ.-1)GOTO 3332 # IF(LVALBF(1,N).EQ.ID)GOTO 4.3 CONTINUE 3332 XX=0. RETURN&C RETURN IF CAN'T FIND VALUE...TOO BADEC NOTE WE ALSO RETURN INSTANTLY IF WE SEE A VIRGIN CELL SINCE WE KNOWR&C THE REAL VALUE CANNOT LIE BEYOND IT.4 CONTINUEC GET VALUE AS 4 16-BIT WORDSI DO 5 M=1,45 LL(M)=LVALBF(M+1,NN) XX=XA  RETURN ENDO00``^[Z[[[\[} SUBROUTINE WSSETC WORK SHEET MANAGMENT ROUTINES(C HANDLE SPREADSHEET "IN MEMORY" STORAGEC COPYRIGHT GLENN EVERHART 1983CC ALL RIGHTS RESERVEDC0C WSSET - INITIALIZE STORAGE TO START CONDITIONS INCLUDE 'VKLUGPRM.FTN'EC EXPECT IMPLEMENTATION TO USE A COMMON BITMAP AND PROVIDE A VARIABLE(C NCEL TO TELL HOW MANY CELLS ARE IN USEC NEXT BITMAPS IMPLEMENT FVLD PARAMETER CUP=12 LOGICAL*1 FV1(BRRCL),FV2(BRRCL),FV4(BRRCL) LOGICAL*1 LBITS(8) COMMON/BITS/LBITS INTEGER*4 N4 INTEGER*2 IPGMAX,LPGMXF# COMMON/FILEMX/IPGMAX,LPGMXFBC LENGTHS (IN K) OF FILES FOR VALUES OR FORMULAS ARE IPGMAX,LPGMXF8C USE LUN 7 FOR FORMULAS, 9 FOR VALUES FILE IF NEEDED... COMMON/FVLDM/FV1,FV2,FV4BC THE FOLLOWING BITMAP IS FOR TYPE ARRAY, AND INTEGER ARRAY IS FORC TYPES OF AC'S STORAGE: LOGICAL*1 ITYP(BRRCL)" INTEGER*2 IATYP(27),LINTGR$ COMMON/TYP/IATYP,ITYP,LINTGR INTEGER*2 DLFG COMMON/DLFG/DLFGC DLFG FLAGS IF D## FORMS SEENCAC NEXT ARE BUFFERS FOR HOLDING VALUES, AND MEMORY OCCUPANCY WORDS3C FOR EACH GIVING THE BLK # IN USE FOR THESE TABLES?C FORMAT BLOCK (ONE ONLY, 512 BYTES, BUT ORGANIZED AS 45 FORMATC AREAS WITH DATA. LOGICAL*1 FMTDAT(9,45) COMMON/FMTBFR/FMTDAT" LOGICAL*1 DVF(12),DFMT(10)# EQUIVALENCE(DVF(2),DFMT(1)) COMMON/DEFVBX/DVF+ INTEGER*2 LVALBF(5,LVBF),MPAG,MPMOD# COMMON/VB/MPAG,LVALBF,MPMOD( INTEGER*2 MFID,IFID(8,LFM),MFMOD LOGICAL*1 LFID(16,LFM)( EQUIVALENCE(IFID(1,1),LFID(1,1))" COMMON/FRM/MFID,IFID,MFMODC DATA FILE AREA... INTEGER*4 QVDAT,QFDAT" DIMENSION QVDAT(IPDM),QFDAT(LPDM) COMMON/QVCMN/QVDAT,QFDATC COMMON /NCEL/NCEL,NXINI IBP=1 LINTGR=0 MPMOD=0 MFMOD=0 DLFG=0 C NO D## YET. DO 2 N=1,92 FMTDAT(N,1)=DFMT(N) DO 3 N=2,45 DO 3 NN=1,93 FMTDAT(NN,N)=0 DO 1 N=1,8 LBITS(N)=128/IBP1 IBP=IBP+IBP DO 4 N=1,BRRCLC CLEAR BITMAPS NOW FV1(N)=0 FV2(N)=0 FV4(N)=04 ITYP(N)=0 NBK=LPGMXF*2C SET NOTHING IN MEMORY YET MFID=0 MPAG=0C ZERO MEMORY BUFFER AND FILES,C SET TO -1 SO WE CAN RECOGNIZE VIRGIN CELLSC DO 9 N=1,LVBFC DO 9 M=1,5C9 LVALBF(M,N)=0 NPG=(IPGMAX*2)C DO 10 N4=1,IPDM C QVDAT(N4)=0%CC ABOVE WAS -1 FOR CASE OF WORKFILES C10 CONTINUE11 CONTINUE'C AGAIN FLAG VIRGIN CELLS WITH ID OF -1C DO 12 N=1,LFMC DO 12 M=1,8C12 IFID(M,N)=0;C LET 0 MEAN A VIRGIN CELL, -1 MEAN EMPTY BUT PREV. INIT'D.CC SINCE VMS SUPPLIES ZERO VALUES BY DEFAULT, SKIP INITIALIZING HERE NPG=LPGMXF*2C DO 13 N4=1,LPDM C QFDAT(N4)=0 C13 CONTINUE14 CONTINUE"C SET ALL AC'S TO TYPE FLOATING... DO 8 N=1,278 IATYP(N)=2C TYPE 2 IS REALS (DEFAULT) NCEL=0 NXINI=0 RETURN ENDC SUBROUTINE FVPEEK(ID1,ID2,IGO)CC PEEK INTO FV1 THRU FV4 INDICES TO FIND COMPUTABLE CELLS. REQUIRES>C FV4 BIT OFF, FV1 OR F2 BIT ON (OR BOTH). DESIGNED AS WAY FOR@C RECALC TO CHEAT AND SKIP QUICKLY BY CELLS NOT IN MAP. IGO GETS7C START INDEX FOR ID1 WITHIN RANGE OF ID1 FROM 1 TO RRWC INCLUDE 'VKLUGPRM.FTN'2 LOGICAL*1 FV1(BRRCL),FV2(BRRCL),FV4(BRRCL) LOGICAL*1 LBITS(8) COMMON/BITS/LBITS COMMON/FVLDM/FV1,FV2,FV4 IGO=ID1!C DEFAULT IS ID1 IS GIVEN TO IGO.C ID=(ID2-1)*RRW+ID1 IRRR=ID2*RRW ID=IRRR-RRW+ID1 IBYT=((ID-1)/8)+1 IRRR=((IRRR-1)/8)+1$C IGO MUST NEVER GET BIGGER THAN RRW DO 1 N=IBYT,IRRR III=N% IF(FV1(N).NE.0.OR.FV2(N).NE.0)GOTO 2DC SKIP BY UNLESS FV1 OR FV2 BITS ARE SET. ALLOW LABELS BY HERE SINCE>C THIS IS A CRUDE TEST FOR MOSTLY TOTALLY UNINITIALIZED CELLS. 1 CONTINUE7C ON FALL THROUGH WE LEAVE III AT MAX TO SKIP THIS AREA 2 CONTINUE N=((III-1)*8)+1CC COMPUTE FIRST CELL OF BITMAP BLK WE FOUND, RETURN IT AS NEW INDEXC UNLESS ALREADY PAST 00`g`^YTADATADATADATADATADATAIT... N=N-RRW*(ID2-1)GC NOTE WE PICK RRW IF N IS BIGGER SINCE WE CHECK ON AN INNER LOOP ONLY. IF(N.GT.IGO)IGO=MIN0(N,RRW) RETURN END' SUBROUTINE TYPGET(ID1,ID2,IVAL)C-C TYPGET - GET TYPE(RRW,RCL) ARRAY WORDS BACK1C RETURN TYPE(ID1,ID2) IN IVAL, BUT NOT REALLY... INCLUDE 'VKLUGPRM.FTN'C NEXT BITMAPS IMPLEMENT FVLD2 LOGICAL*1 FV1(BRRCL),FV2(BRRCL),FV4(BRRCL) LOGICAL*1 LBITS(8) COMMON/BITS/LBITS COMMON/FVLDM/FV1,FV2,FV4BC THE FOLLOWING BITMAP IS FOR TYPE ARRAY, AND INTEGER ARRAY IS FORC TYPES OF AC'S STORAGE: LOGICAL*1 ITYP(BRRCL)' INTEGER*2 IATYP(27),IVAL,LINTGR$ COMMON/TYP/IATYP,ITYP,LINTGRCAC NEXT ARE BUFFERS FOR HOLDING VALUES, AND MEMORY OCCUPANCY WORDS3C FOR EACH GIVING THE BLK # IN USE FOR THESE TABLES?C FORMAT BLOCK (ONE ONLY, 512 BYTES, BUT ORGANIZED AS 45 FORMATC AREAS WITH DATA. LOGICAL*1 FMTDAT(9,45) COMMON/FMTBFR/FMTDAT LOGICAL*1 ITST+ IF(ID1.LE.27.AND.ID2.LE.1)GOTO 1000 IVAL=2 IF(LINTGR.EQ.0)RETURN CALL FVLDGT(ID1,ID2,ITST) IF(ITST.EQ.0)GOTO 500C ID=(ID2-1)*RRW+ID1 CALL REFLEC(ID2,ID1,ID) IBT=(ID-1)/8 IBIT=((ID-1).AND.7)+1& ITST=ITYP(IBT).AND.LBITS(IBIT)500 IVAL=2 IF(ITST.NE.0)IVAL=4 RETURN1000 CONTINUEC AN AC. RETURN FULL TYPE WORD IVAL=IATYP(ID1) RETURN END' SUBROUTINE TYPSET(ID1,ID2,IVAL)C,C TYPSET - STORE IVAL IN TYPE(RRW,RCL) ARRAY INCLUDE 'VKLUGPRM.FTN'C NEXT BITMAPS IMPLEMENT FVLD INTEGER*2 IVAL2 LOGICAL*1 FV1(BRRCL),FV2(BRRCL),FV4(BRRCL) LOGICAL*1 LBITS(8) COMMON/BITS/LBITS COMMON/FVLDM/FV1,FV2,FV4BC THE FOLLOWING BITMAP IS FOR TYPE ARRAY, AND INTEGER ARRAY IS FORC TYPES OF AC'S STORAGE: LOGICAL*1 ITYP(BRRCL)" INTEGER*2 IATYP(27),LINTGR$ COMMON/TYP/IATYP,ITYP,LINTGRCAC NEXT ARE BUFFERS FOR HOLDING VALUES, AND MEMORY OCCUPANCY WORDS3C FOR EACH GIVING THE BLK # IN USE FOR THESE TABLES?C FORMAT BLOCK (ONE ONLY, 512 BYTES, BUT ORGANIZED AS 45 FORMATC AREAS WITH DATA. LOGICAL*1 FMTDAT(9,45) COMMON/FMTBFR/FMTDAT LOGICAL*1 ITST,ITST2* IF(ID2.LE.1.AND.ID1.LE.27)GOTO 200* IF(LINTGR.EQ.0.AND.IABS(IVAL).EQ.2)RETURN LINTGR=1C ID=(ID2-1)*RRW+ID1 CALL REFLEC(ID2,ID1,ID) IBT=(ID-1)/8 IBIT=((ID-1).AND.7)+1 ITST2=.NOT.LBITS(IBIT)! ITST2=ITYP(IBT).AND.ITST2% ITST=ITYP(IBT).OR.LBITS(IBIT) ITYP(IBT)=ITST22 IF(IVAL.NE.-2.AND.IVAL.NE.2)ITYP(IBT)=ITST RETURN 200 CONTINUE IATYP(ID1)=IVAL RETURN END' SUBROUTINE FVLDGT(ID1,ID2,IVAL)C:C FVLDGT - RETURN FVLD BYTE GIVEN 2 DIMS OF ITS "LOCATION" INTEGER*2 ID1,ID2 LOGICAL*1 IVAL INCLUDE 'VKLUGPRM.FTN'C NEXT BITMAPS IMPLEMENT FVLD2 LOGICAL*1 FV1(BRRCL),FV2(BRRCL),FV4(BRRCL) LOGICAL*1 LBITS(8) COMMON/BITS/LBITS COMMON/FVLDM/FV1,FV2,FV4BC THE FOLLOWING BITMAP IS FOR TYPE ARRAY, AND INTEGER ARRAY IS FORC TYPES OF AC'S STORAGE: LOGICAL*1 ITYP(BRRCL) INTEGER*2 IATYP(27) COMMON/TYP/IATYP,ITYPCAC NEXT ARE BUFFERS FOR HOLDING VALUES, AND MEMORY OCCUPANCY WORDS3C FOR EACH GIVING THE BLK # IN USE FOR THESE TABLES?C FORMAT BLOCK (ONE ONLY, 512 BYTES, BUT ORGANIZED AS 45 FORMATC AREAS WITH DATA. LOGICAL*1 FMTDAT(9,45) COMMON/FMTBFR/FMTDAT LOGICAL*1 I1,I2,I4 IF(ID2.GT.0)GOTO 20004C TRICK ENTRY USING ID IN FIRST ARG, 0 IN 2ND ARG...IC TELL XVBLST/XVBLGT ABOUT FV4 STATE (SET BY CALL WITH -4 BYTE ON FVLDST) ID=ID1 IBT=((ID-1)/8)+1 IBIT=((ID-1).AND.7)+1# I1=FV1(IBT).AND.LBITS(IBIT)# I2=FV2(IBT).AND.LBITS(IBIT)# I4=FV4(IBT).AND.LBITS(IBIT) IVAL=0%C RETURN NONZERO IF ANY BITS ARE SET. IF((I1+I2+I4).NE.0)IVAL=1 RETURN 2000 CONTINUEC ID=(ID2-1)*RRW+ID1& IF(ID2.EQ.1.AND.ID1.LE.00``^[Z[[[\[}RRCL)GOTO 7806 CALL REFLEC(ID2,ID1,ID) GOTO 7807 7806 CONTINUE ID=ID1 7807 CONTINUE IBT=((ID-1)/8)+1 IBIT=((ID-1).AND.7)+1# I1=FV1(IBT).AND.LBITS(IBIT)# I2=FV2(IBT).AND.LBITS(IBIT)# I4=FV4(IBT).AND.LBITS(IBIT) IVL=0 IF(I1.NE.0)IVL=1 IF(I2.NE.0)IVL=IVL+2 IF(I4.NE.0)IVL=-IVL IVAL=IVLCC READS OFF FVLD BYTE FROM 3 BITS, HIGH ONE IS SIGN. TREAT AS SIGN-%C MAGNITUDE NUMBER IN RANGE -3 TO +3, RETURN END' SUBROUTINE FVLDST(ID1,ID2,IVAL)C%C FVLDST - SET THE BYTE IN FVLD ARRAY INCLUDE 'VKLUGPRM.FTN'C NEXT BITMAPS IMPLEMENT FVLD2 LOGICAL*1 FV1(BRRCL),FV2(BRRCL),FV4(BRRCL) LOGICAL*1 IVAL LOGICAL*1 LBITS(8) COMMON/BITS/LBITS COMMON/FVLDM/FV1,FV2,FV4BC THE FOLLOWING BITMAP IS FOR TYPE ARRAY, AND INTEGER ARRAY IS FORC TYPES OF AC'S STORAGE: LOGICAL*1 ITYP(BRRCL) INTEGER*2 IATYP(27) COMMON/TYP/IATYP,ITYPCAC NEXT ARE BUFFERS FOR HOLDING VALUES, AND MEMORY OCCUPANCY WORDS3C FOR EACH GIVING THE BLK # IN USE FOR THESE TABLES?C FORMAT BLOCK (ONE ONLY, 512 BYTES, BUT ORGANIZED AS 45 FORMATC AREAS WITH DATA. LOGICAL*1 FMTDAT(9,45) INTEGER*2 IVV,I1,I2,I3 COMMON/FMTBFR/FMTDATC LOGICAL*1 I4C ID=(ID2-1)*RRW+ID1& IF(ID2.EQ.1.AND.ID1.LE.RRCL)GOTO 7800 CALL REFLEC(ID2,ID1,ID) GOTO 7801 7800 ID=ID1 7801 CONTINUE IBT=((ID-1)/8)+1 IBIT=((ID-1).AND.7)+1C ZERO ALL 3 FVLD BITS FIRST. FV1(IBT)=FV1(IBT).AND..NOT.LBITS(IBIT). FV2(IBT)=FV2(IBT).AND..NOT.LBITS(IBIT). FV4(IBT)=FV4(IBT).AND..NOT.LBITS(IBIT) IVVV=IVAL IVV=IABS(IVVV) I3=0 IF(IVAL.LT.0)I3=1 I1=0 I2=0 I2=IVV.AND.2 I1=IVV.AND.1?C NOTE WE ASSUME HEAVILY THAT LOGICAL OPERATIONS WORK BY BINARYC ANDS AND ORS IN DATA.3 IF(I1.NE.0)FV1(IBT)=FV1(IBT).OR.LBITS(IBIT)3 IF(I2.NE.0)FV2(IBT)=FV2(IBT).OR.LBITS(IBIT)3 IF(I3.NE.0)FV4(IBT)=FV4(IBT).OR.LBITS(IBIT) RETURN END+ SUBROUTINE VBLGET(ID1,ID2,ID3,IVAL)C3C VBLGET - GET BYTE OF 3 DIM VBLS ARRAY, ORIGINALLY;C DIMENSIONED (8,RRW,RCL). HANDLE BY CALLING XVBLGT TO GET7C CORRECT 8 BYTE VARIABLE, AND PULLING OUT CORRECT ONE INTEGER*2 ID1,ID2,ID3 LOGICAL*1 IVAL,LL(8) REAL*8 XX EQUIVALENCE(LL(1),XX) CALL XVBLGT(ID2,ID3,XX) IVAL=LL(ID1) RETURN END+ SUBROUTINE VBLSET(ID1,ID2,ID3,IVAL)3C VBLSET - SET BYTE OF 3 DIM VBLS ARRAY, ORIGINALLY;C DIMENSIONED (8,RRW,RCL). HANDLE BY CALLING XVBLST TO GET6C CORRECT 8 BYTE VARIABLE, AND PUTTING IN CORRECT ONE INTEGER*2 ID1,ID2,ID3 LOGICAL*1 IVAL,LL(8) REAL*8 XX EQUIVALENCE(LL(1),XX)?C GET THE DESIRED 8 BYTES, THEN CHANGE THE ONE WE WANT. THEN... CALL XVBLGT(ID2,ID3,XX) LL(ID1)=IVALC PUT BACK THE 8 BYTES. CALL XVBLST(ID2,ID3,XX) RETURN END+ SUBROUTINE JVBLGT(ID1,ID2,ID3,IVAL)C=C JVBLGT - GET INTEGER*4 WORD OF 3 DIM VBLS ARRAY, ORIGINALLY;C DIMENSIONED (2,RRW,RCL). HANDLE BY CALLING XVBLGT TO GET7C CORRECT 8 BYTE VARIABLE, AND PULLING OUT CORRECT ONE INTEGER*2 ID1,ID2,ID3 INTEGER*4 IVAL,LL(2) REAL*8 XX EQUIVALENCE(LL(1),XX) CALL XVBLGT(ID2,ID3,XX) IVAL=LL(ID1) RETURN END+ SUBROUTINE JVBLST(ID1,ID2,ID3,IVAL)7C JVBLST - SET I*4 WORD OF 3 DIM VBLS ARRAY, ORIGINALLY;C DIMENSIONED (2,RRW,RCL). HANDLE BY CALLING XVBLST TO GET6C CORRECT 8 BYTE VARIABLE, AND PUTTING IN CORRECT ONE INTEGER*2 ID1,ID2,ID3 INTEGER*4 IVAL,LL(2) REAL*8 XX EQUIVALENCE(LL(1),XX)@C GET THE DESIRED 8 BYTES, THEN CHANGE THE ONES WE WANT. THEN... CALL XVBLGT(ID2,ID3,XX) LL(ID1)=IVALC PUT BACK THE 8 BYTES. CALL XVBLST(ID2,ID3,XX) RETURN END00ag`^YTADATADATADATADATADATAC% SUBROUTINE XVBLST(ID1,ID2,XX)C+C XVBLST - STORE 8 BYTES IN VARIABLES ARRAY$C GIVEN DIMENSIONS FOR LOCATING THEM PARAMETER CUP=1 INTEGER*2 ID1,ID2' INTEGER*4 IPAG,IPM,LLL,IHASH,JHASH,NNN REAL*8 XX INCLUDE 'VKLUGPRM.FTN'" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9)/ LOGICAL*1 AVBLS(20,27),VBLS(8,RRWP,RCLP),VT(8) REAL*8 XVT EQUIVALENCE(XVT,VT(1)) REAL*8 XXV(RRWP,RCLP)" EQUIVALENCE(XXV(1,1),VBLS(1,1,1)) COMMON/V/TYPE,AVBLS,VBLS,VLEN- INTEGER*2 IPGMAX,LPGMXF,IPGMOD,LPGMOD1 COMMON/FILEMX/IPGMAX,LPGMXF,IPGMOD,LPGMODBC LENGTHS (IN K) OF FILES FOR VALUES OR FORMULAS ARE IPGMAX,LPGMXFC NEXT BITMAPS IMPLEMENT FVLD2 LOGICAL*1 FV1(BRRCL),FV2(BRRCL),FV4(BRRCL) LOGICAL*1 LBITS(8) COMMON/BITS/LBITS COMMON/FVLDM/FV1,FV2,FV4BC THE FOLLOWING BITMAP IS FOR TYPE ARRAY, AND INTEGER ARRAY IS FORC TYPES OF AC'S STORAGE: LOGICAL*1 ITYP(BRRCL) INTEGER*2 IATYP(27) COMMON/TYP/IATYP,ITYPCAC NEXT ARE BUFFERS FOR HOLDING VALUES, AND MEMORY OCCUPANCY WORDS3C FOR EACH GIVING THE BLK # IN USE FOR THESE TABLES?C FORMAT BLOCK (ONE ONLY, 512 BYTES, BUT ORGANIZED AS 45 FORMATC AREAS WITH DATA.$ LOGICAL*1 FMTDAT(9,45),LLTST COMMON/FMTBFR/FMTDAT+ INTEGER*2 LVALBF(5,LVBF),MPAG,MPMOD# COMMON/VB/MPAG,LVALBF,MPMOD INTEGER*2 LL(4) REAL*8 XA EQUIVALENCE(XA,LL(1)) INTEGER*2 NCEL,NXINI COMMON/NCEL/NCEL,NXINI INTEGER*2 ICREF,IRREF COMMON/MIRROR/ICREF,IRREFC DATA FILE AREA... INTEGER*2 LVALB1(LVBF5)# EQUIVALENCE(LVALB1(1),LVALBF(1,1)) INTEGER*4 QVDAT,QFDAT" DIMENSION QVDAT(IPDM),QFDAT(LPDM) REAL*8 QQDAT(RRW,RCL)! EQUIVALENCE(QQDAT(1,1),QVDAT(1)) INTEGER*2 QVDAT1 DIMENSION QVDAT1(IPDM5) EQUIVALENCE(QVDAT(1),QVDAT1(1)) COMMON/QVCMN/QVDAT,QFDAT INTEGER*4 I4,I44 IID1=ID1 IID2=MAX0(ID2,1) IF(ID2.LT.1)GOTO 7802# IF(ID2.GT.1.OR.ID1.GT.27)GOTO 7780C AN ACCUMULATOR. SET IT.?C HAVE EVERYTHING HERE SO NO PROBLEMS WITH RECOGNIZING CELLS... XVT=XX DO 7781 IV=1,87781 AVBLS(IV,ID1)=VT(IV) RETURN 7780 CONTINUE 4000 CONTINUE IF(IID1.LE.RRW)GOTO 7801 IID1=IID1-RRW IID2=IID2+IRREF GOTO 4000 7801 CONTINUE IF(IID2.LE.RCL)GOTO 7802 IID2=IID2-RCL+1 IID1=IID1+ICREF GOTO 4000 7802 CONTINUE QQDAT(IID1,IID2)=XX RETURN ENDC% SUBROUTINE XVBLGT(ID1,ID2,XX)C9C XVBLGT - LOAD 8 BYTES GIVEN DIMENSIONS FOR GETTING THEMC 2 DIM ARRAY, DIM'D (RRW,RCL) INTEGER*2 ID1,ID2 REAL*8 XX INCLUDE 'VKLUGPRM.FTN'' INTEGER*4 IPAG,IPM,LLL,IHASH,JHASH,NNN- INTEGER*2 IPGMAX,LPGMXF,IPGMOD,LPGMOD1 COMMON/FILEMX/IPGMAX,LPGMXF,IPGMOD,LPGMOD" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9)/ LOGICAL*1 AVBLS(20,27),VBLS(8,RRWP,RCLP),VT(8) INTEGER*2 ICREF,IRREF COMMON/MIRROR/ICREF,IRREF REAL*8 XVT EQUIVALENCE(XVT,VT(1)) REAL*8 XXV(RRWP,RCLP)" EQUIVALENCE(XXV(1,1),VBLS(1,1,1)) COMMON/V/TYPE,AVBLS,VBLS,VLENBC LENGTHS (IN K) OF FILES FOR VALUES OR FORMULAS ARE IPGMAX,LPGMXFC NEXT BITMAPS IMPLEMENT FVLD2 LOGICAL*1 FV1(BRRCL),FV2(BRRCL),FV4(BRRCL) LOGICAL*1 LBITS(8) COMMON/BITS/LBITS COMMON/FVLDM/FV1,FV2,FV4BC THE FOLLOWING BITMAP IS FOR TYPE ARRAY, AND INTEGER ARRAY IS FORC TYPES OF AC'S STORAGE:! LOGICAL*1 ITYP(BRRCL),LWK! INTEGER*2 IATYP(27),LL(4) REAL*8 XA EQUIVALENCE(LL(1),XA) COMMON/TYP/IATYP,ITYP+ INTEGER*2 LVALBF(5,LVBF),MPAG,MPMODC DATA FILE AREA... INTEGER*2 LVALB1(LVBF5)# EQUIVALENCE(LVALB1(1),LVALBF(1,1)) INTEGER*4 QVDAT,QFDAT" DIMENSION QVDAT(IPDM),QFDAT(LPDM) INTEGER*2 QVDAT1 REAL*8 QQDAT(RRW,RCL)! EQUIVALENCE(QQDAT(1,1),QVDAT(1)) DIMENSION QVDAT1(IPDM5) EQUIVALENCE(QVDAT(1),QVDAT1(1)) COMMON/QVCMN/QVDAT,QFDAT INTEGER*4 I4,I44# COMMON/VB/MPAG,LVALBF,MPMODCAC NEXT ARE BUFFERS FOR HOLDING VALUES, AND MEMORY OCCUPANCY WORDS3C FOR EACH GIVING THE BLK # IN USE FOR THESE TABLES?C FORMAT BLOCK (ONE ONLY, 512 00 a a^[Z[[[\[}BYTES, BUT ORGANIZED AS 45 FORMATKC AREAS WITH DATA. LOGICAL*1 FMTDAT(9,45) COMMON/FMTBFR/FMTDAT IID1=ID1A IID2=MAX0(ID2,1)  IF(ID2.LT.1)GOTO 7802# IF(ID2.GT.1.OR.ID1.GT.27)GOTO 7780OC AN ACCUMULATORC GET IT AS IF IT WERE A CELLT DO 7781 IV=1,8O7781 VT(IV)=AVBLS(IV,ID1)O XX=XVTR RETURN 7780 CONTINUEW 4000 CONTINUE  IF(IID1.LE.RRW)GOTO 7801E IID1=IID1-RRW IID2=IID2+IRREF GOTO 4000 7801 CONTINUE2 IF(IID2.LE.RCL)GOTO 7802  IID2=IID2-RCL+1 IID1=IID1+ICREF GOTO 4000 7802 CONTINUE XX=QQDAT(IID1,IID2) RETURN ENDM SUBROUTINE WSSETC WORK SHEET MANAGMENT ROUTINES(C HANDLE SPREADSHEET "IN MEMORY" STORAGEC COPYRIGHT GLENN EVERHART 1983CC ALL RIGHTS RESERVEDC0C WSSET - INITIALIZE STORAGE TO START CONDITIONS INCLUDE 'VKLUGPRM.FTN'EC EXPECT IMPLEMENTATION TO USE A COMMON BITMAP AND PROVIDE A VARIABLE(C NCEL TO TELL HOW MANY CELLS ARE IN USEC NEXT BITMAPS IMPLEMENT FVLD PARAMETER CUP=12 LOGICAL*1 FV1(BRRCL),FV2(BRRCL),FV4(BRRCL) LOGICAL*1 LBITS(8) COMMON/BITS/LBITS INTEGER*4 N4 INTEGER*2 IPGMAX,LPGMXF# COMMON/FILEMX/IPGMAX,LPGMXFBC LENGTHS (IN K) OF FILES FOR VALUES OR FORMULAS ARE IPGMAX,LPGMXF8C USE LUN 7 FOR FORMULAS, 9 FOR VALUES FILE IF NEEDED... COMMON/FVLDM/FV1,FV2,FV4BC THE FOLLOWING BITMAP IS FOR TYPE ARRAY, AND INTEGER ARRAY IS FORC TYPES OF AC'S STORAGE: LOGICAL*1 ITYP(BRRCL)" INTEGER*2 IATYP(27),LINTGR$ COMMON/TYP/IATYP,ITYP,LINTGR INTEGER*2 DLFG COMMON/DLFG/DLFGCC DLFG FLAGS IF D## FORMS SEENCC(C DEFINE FILE AREAS FOR MAPPING FILES...DC ONE INPUT FILE, TO BE ACCESSED AS A RANDOM ACCESS FILE OF 128 BYTEDC RECORDS OF DATA IF RANDOM, OR AS A FORMULA FILE IF SEQUENTIAL, AND?C ONE OUTPUT FILE TO BE WRITTEN THE SAME WAY. INPUT FILE CAN BEC INPUT - ONLY OR READ/WRITE.CBC DEFINE ALSO DATA STRUCTURES TO HOLD CELL RANGES (IN ROW AND COL)BC TO BE TREATED WITH THESE FILES, FLAG FOR HOW-OPEN, AND LUN USED.CC MFIOPN = 0 IF NOT OPEN&C 1 IF OPEN FOR READ ONLY, SEQUENTIALC 2 IF OPEN READ ONLY, RANDOM C 3 IF OPEN READ/WRITE, RANDOM.CC MFOOPN = 0 IF NOT OPENC 1 IF OPEN WRITE SEQUENTIALC 2 IF OPEN WRITE RANDOMC!C OTHER OPTIONS DON'T MAKE SENSE.9C MFIRL,MFIRH = RRW DIMENSION LOW, HIGH BOUND, INPUT FILE9C MFICL,MFICH = RCL DIMENSION LOW, HIGH BOUND, INPUT FILE%C MFORL,RH,MFOCL,CH = OUT FILE BOUNDS"C MFILUN,MFOLUN ARE LOGICAL UNITS.) INTEGER*2 MFIOPN,MFIRL,MFIRH,MFICL,MFICH) INTEGER*2 MFOOPN,MFORL,MFORH,MFOCL,MFOCH& INTEGER*2 MFILUN,MFOLUN,MFIFLG,MFOFLG5 COMMON/MFILES/MFIOPN,MFOOPN,MFIRL,MFIRH,MFICL,MFICH,; 1 MFORL,MFORH,MFOCL,MFOCH,MFILUN,MFOLUN,MFIFLG,MFOFLGCCCAC NEXT ARE BUFFERS FOR HOLDING VALUES, AND MEMORY OCCUPANCY WORDS3C FOR EACH GIVING THE BLK # IN USE FOR THESE TABLES?C FORMAT BLOCK (ONE ONLY, 512 BYTES, BUT ORGANIZED AS 45 FORMATC AREAS WITH DATA. LOGICAL*1 FMTDAT(9,45) COMMON/FMTBFR/FMTDAT" LOGICAL*1 DVF(12),DFMT(10)# EQUIVALENCE(DVF(2),DFMT(1)) COMMON/DEFVBX/DVF+ INTEGER*2 LVALBF(5,LVBF),MPAG,MPMOD# COMMON/VB/MPAG,LVALBF,MPMOD) INTEGER*2 MFID,IFID(8,LFMX),MFMOD LOGICAL*1 LFID(16,LFMX)( EQUIVALENCE(IFID(1,1),LFID(1,1))" COMMON/FRM/MFID,IFID,MFMODC DATA FILE AREA... INTEGER*4 QVDAT,QFDAT" DIMENSION QVDAT(IPDM),QFDAT(LPDM) COMMON/QVCMN/QVDAT,QFDATC COMMON /NCEL/NCEL,NXINI IBP=1 LINTGR=0 MPMOD=0 MFMOD=0 DLFG=0 C NO D## YET. MFIOPN=0 MFOOPN=0 MFILUN=11 MFOLUN=00ag`^YTADATADATADATADATADATA12 MFIFLG=0 MFOFLG=0 DO 2 N=1,92 FMTDAT(N,1)=DFMT(N) DO 3 N=2,45 DO 3 NN=1,93 FMTDAT(NN,N)=0 DO 1 N=1,8 LBITS(N)=128/IBP1 IBP=IBP+IBP DO 4 N=1,BRRCLC CLEAR BITMAPS NOW FV1(N)=0 FV2(N)=0 FV4(N)=04 ITYP(N)=0 NBK=LPGMXF*2C SET NOTHING IN MEMORY YET MFID=0 MPAG=0C ZERO MEMORY BUFFER AND FILES,C SET TO -1 SO WE CAN RECOGNIZE VIRGIN CELLSC DO 9 N=1,LVBFC DO 9 M=1,5C9 LVALBF(M,N)=0 NPG=(IPGMAX*2)C DO 10 N4=1,IPDM C QVDAT(N4)=0%CC ABOVE WAS -1 FOR CASE OF WORKFILES C10 CONTINUE11 CONTINUE'C AGAIN FLAG VIRGIN CELLS WITH ID OF -1C DO 12 N=1,LFMC DO 12 M=1,8C12 IFID(M,N)=0;C LET 0 MEAN A VIRGIN CELL, -1 MEAN EMPTY BUT PREV. INIT'D.CC SINCE VMS SUPPLIES ZERO VALUES BY DEFAULT, SKIP INITIALIZING HERE NPG=LPGMXF*2C DO 13 N4=1,LPDM C QFDAT(N4)=0 C13 CONTINUE14 CONTINUE"C SET ALL AC'S TO TYPE FLOATING... DO 8 N=1,278 IATYP(N)=2C TYPE 2 IS REALS (DEFAULT) NCEL=0 NXINI=0 RETURN ENDC SUBROUTINE FVPEEK(ID1,ID2,IGO)CC PEEK INTO FV1 THRU FV4 INDICES TO FIND COMPUTABLE CELLS. REQUIRES>C FV4 BIT OFF, FV1 OR F2 BIT ON (OR BOTH). DESIGNED AS WAY FOR@C RECALC TO CHEAT AND SKIP QUICKLY BY CELLS NOT IN MAP. IGO GETS7C START INDEX FOR ID1 WITHIN RANGE OF ID1 FROM 1 TO RRWC INCLUDE 'VKLUGPRM.FTN'2 LOGICAL*1 FV1(BRRCL),FV2(BRRCL),FV4(BRRCL) LOGICAL*1 LBITS(8) COMMON/BITS/LBITS COMMON/FVLDM/FV1,FV2,FV4 IGO=ID1!C DEFAULT IS ID1 IS GIVEN TO IGO.C ID=(ID2-1)*RRW+ID1 IRRR=ID2*RRW ID=IRRR-RRW+ID1 IBYT=((ID-1)/8)+1 IRRR=((IRRR-1)/8)+1$C IGO MUST NEVER GET BIGGER THAN RRW DO 1 N=IBYT,IRRR III=N% IF(FV1(N).NE.0.OR.FV2(N).NE.0)GOTO 2DC SKIP BY UNLESS FV1 OR FV2 BITS ARE SET. ALLOW LABELS BY HERE SINCE>C THIS IS A CRUDE TEST FOR MOSTLY TOTALLY UNINITIALIZED CELLS. 1 CONTINUE7C ON FALL THROUGH WE LEAVE III AT MAX TO SKIP THIS AREA 2 CONTINUE N=((III-1)*8)+1CC COMPUTE FIRST CELL OF BITMAP BLK WE FOUND, RETURN IT AS NEW INDEXC UNLESS ALREADY PAST IT... N=N-RRW*(ID2-1)GC NOTE WE PICK RRW IF N IS BIGGER SINCE WE CHECK ON AN INNER LOOP ONLY. IF(N.GT.IGO)IGO=MIN0(N,RRW) RETURN END' SUBROUTINE TYPGET(ID1,ID2,IVAL)C-C TYPGET - GET TYPE(RRW,RCL) ARRAY WORDS BACK1C RETURN TYPE(ID1,ID2) IN IVAL, BUT NOT REALLY... INCLUDE 'VKLUGPRM.FTN'C NEXT BITMAPS IMPLEMENT FVLD2 LOGICAL*1 FV1(BRRCL),FV2(BRRCL),FV4(BRRCL) LOGICAL*1 LBITS(8) COMMON/BITS/LBITS COMMON/FVLDM/FV1,FV2,FV4BC THE FOLLOWING BITMAP IS FOR TYPE ARRAY, AND INTEGER ARRAY IS FORC TYPES OF AC'S STORAGE: LOGICAL*1 ITYP(BRRCL)' INTEGER*2 IATYP(27),IVAL,LINTGR$ COMMON/TYP/IATYP,ITYP,LINTGRCAC NEXT ARE BUFFERS FOR HOLDING VALUES, AND MEMORY OCCUPANCY WORDS3C FOR EACH GIVING THE BLK # IN USE FOR THESE TABLES?C FORMAT BLOCK (ONE ONLY, 512 BYTES, BUT ORGANIZED AS 45 FORMATC AREAS WITH DATA. LOGICAL*1 FMTDAT(9,45) COMMON/FMTBFR/FMTDAT LOGICAL*1 ITST+ IF(ID1.LE.27.AND.ID2.LE.1)GOTO 1000 IVAL=2 IF(LINTGR.EQ.0)RETURN CALL FVLDGT(ID1,ID2,ITST) IF(ITST.EQ.0)GOTO 500C ID=(ID2-1)*RRW+ID1 CALL REFLEC(ID2,ID1,ID) IBT=(ID-1)/8 IBIT=((ID-1).AND.7)+1& ITST=ITYP(IBT).AND.LBITS(IBIT)500 IVAL=2 IF(ITST.NE.0)IVAL=4 RETURN1000 CONTINUEC AN AC. RETURN FULL TYPE WORD IVAL=IATYP(ID1) RETURN END' SUBROUTINE TYPSET(ID1,ID2,IVAL)C,C TYPSET - STORE IVAL IN TYPE(RRW,RCL) ARRAY INCLUDE 'VKLUGPRM.FTN'C NEXT BITMAPS IMPLEMENT FVLD INTEGER*2 IVAL2 LOGICAL*1 FV1(BRRCL),FV2(BRRCL),FV4(BRRCL) LOGICAL*1 LBITS(8) COMMON/BITS/LBITS COMMON/FVLDM/FV1,FV2,FV4BC THE FOLLOWING BITMAP IS FOR TYPE ARRAY, AND INTEGER ARRAY IS FORC TYPES OF A00a a^[Z[[[\[}C'S STORAGE: LOGICAL*1 ITYP(BRRCL)" INTEGER*2 IATYP(27),LINTGR$ COMMON/TYP/IATYP,ITYP,LINTGRCAC NEXT ARE BUFFERS FOR HOLDING VALUES, AND MEMORY OCCUPANCY WORDS3C FOR EACH GIVING THE BLK # IN USE FOR THESE TABLES?C FORMAT BLOCK (ONE ONLY, 512 BYTES, BUT ORGANIZED AS 45 FORMATC AREAS WITH DATA. LOGICAL*1 FMTDAT(9,45) COMMON/FMTBFR/FMTDAT LOGICAL*1 ITST,ITST2* IF(ID2.LE.1.AND.ID1.LE.27)GOTO 200* IF(LINTGR.EQ.0.AND.IABS(IVAL).EQ.2)RETURN LINTGR=1C ID=(ID2-1)*RRW+ID1 CALL REFLEC(ID2,ID1,ID) IBT=(ID-1)/8 IBIT=((ID-1).AND.7)+1 ITST2=.NOT.LBITS(IBIT)! ITST2=ITYP(IBT).AND.ITST2% ITST=ITYP(IBT).OR.LBITS(IBIT) ITYP(IBT)=ITST22 IF(IVAL.NE.-2.AND.IVAL.NE.2)ITYP(IBT)=ITST RETURN 200 CONTINUE IATYP(ID1)=IVAL RETURN END' SUBROUTINE FVLDGT(ID1,ID2,IVAL)C:C FVLDGT - RETURN FVLD BYTE GIVEN 2 DIMS OF ITS "LOCATION" INTEGER*2 ID1,ID2 LOGICAL*1 IVAL INCLUDE 'VKLUGPRM.FTN'C NEXT BITMAPS IMPLEMENT FVLD2 LOGICAL*1 FV1(BRRCL),FV2(BRRCL),FV4(BRRCL) LOGICAL*1 LBITS(8) COMMON/BITS/LBITS logical*1 fvmsk(rcp) equivalence(fvmsk(1),fv1(1)) equivalence(fvmsk(2),fv2(1)) equivalence(fvmsk(4),fv4(1)) common/fvldm/fvmsk!c COMMON/FVLDM/FV1,FV2,FV4BC THE FOLLOWING BITMAP IS FOR TYPE ARRAY, AND INTEGER ARRAY IS FORC TYPES OF AC'S STORAGE: LOGICAL*1 ITYP(BRRCL) INTEGER*2 IATYP(27) COMMON/TYP/IATYP,ITYPCAC NEXT ARE BUFFERS FOR HOLDING VALUES, AND MEMORY OCCUPANCY WORDS3C FOR EACH GIVING THE BLK # IN USE FOR THESE TABLES?C FORMAT BLOCK (ONE ONLY, 512 BYTES, BUT ORGANIZED AS 45 FORMATC AREAS WITH DATA. LOGICAL*1 FMTDAT(9,45) COMMON/FMTBFR/FMTDAT LOGICAL*1 I1,I2,I4 IF(ID2.GT.0)GOTO 20004C TRICK ENTRY USING ID IN FIRST ARG, 0 IN 2ND ARG...IC TELL XVBLST/XVBLGT ABOUT FV4 STATE (SET BY CALL WITH -4 BYTE ON FVLDST) ID=ID1c IBT=((ID-1)/8)+1c IBIT=((ID-1).AND.7)+1$c I1=FV1(IBT).AND.LBITS(IBIT)$c I2=FV2(IBT).AND.LBITS(IBIT)$c I4=FV4(IBT).AND.LBITS(IBIT) IVAL=0%C RETURN NONZERO IF ANY BITS ARE SET.c IF((I1+I2+I4).NE.0)IVAL=1 if(fvmsk(id).ne.0)ival=1 RETURN 2000 CONTINUEC ID=(ID2-1)*RRW+ID1& IF(ID2.EQ.1.AND.ID1.LE.RRCL)GOTO 7806 CALL REFLEC(ID2,ID1,ID) GOTO 7807 7806 CONTINUE ID=ID1 7807 CONTINUEc IBT=((ID-1)/8)+1c IBIT=((ID-1).AND.7)+1$c I1=FV1(IBT).AND.LBITS(IBIT)$c I2=FV2(IBT).AND.LBITS(IBIT)$c I4=FV4(IBT).AND.LBITS(IBIT)c IVL=0c IF(I1.NE.0)IVL=1c IF(I2.NE.0)IVL=IVL+2c IF(I4.NE.0)IVL=-IVLc IVAL=IVL ival=fvmsk(id)CC READS OFF FVLD BYTE FROM 3 BITS, HIGH ONE IS SIGN. TREAT AS SIGN-%C MAGNITUDE NUMBER IN RANGE -3 TO +3, RETURN END' SUBROUTINE FVLDST(ID1,ID2,IVAL)C%C FVLDST - SET THE BYTE IN FVLD ARRAY INCLUDE 'VKLUGPRM.FTN'C NEXT BITMAPS IMPLEMENT FVLD2 LOGICAL*1 FV1(BRRCL),FV2(BRRCL),FV4(BRRCL) LOGICAL*1 IVAL LOGICAL*1 LBITS(8) COMMON/BITS/LBITS logical*1 fvmsk(rcp) equivalence(fvmsk(1),fv1(1)) equivalence(fvmsk(2),fv2(1)) equivalence(fvmsk(4),fv4(1)) common/fvldm/fvmsk!c COMMON/FVLDM/FV1,FV2,FV4BC THE FOLLOWING BITMAP IS FOR TYPE ARRAY, AND INTEGER ARRAY IS FORC TYPES OF AC'S STORAGE: LOGICAL*1 ITYP(BRRCL) INTEGER*2 IATYP(27) COMMON/TYP/IATYP,ITYPCAC NEXT ARE BUFFERS FOR HOLDING VALUES, AND MEMORY OCCUPANCY WORDS3C FOR EACH GIVING THE BLK # IN USE FOR THESE TABLES?C FORMAT BLOCK (ONE ONLY, 512 BYTES, BUT ORGANIZED AS 45 FORMATC AREAS WITH DATA. LOGICAL*1 FMTDAT(9,45) INTEGER*2 IVV,I1,I2,I3 COMMON/FMTBFR/FMTDATC LOGICAL*1 I4C ID=(ID2-1)*RRW+ID1& IF(ID2.EQ.1.AND.ID1.LE.RRCL)GOTO 7800 CALL REFLEC(ID2,ID1,ID) GOTO 7801 7800 ID=ID1 7801 CONTINUEc 00"ag`^YTADATADATADATADATADATA IBT=((ID-1)/8)+1c IBIT=((ID-1).AND.7)+1cC ZERO ALL 3 FVLD BITS FIRST/c FV1(IBT)=FV1(IBT).AND..NOT.LBITS(IBIT)/c FV2(IBT)=FV2(IBT).AND..NOT.LBITS(IBIT)/c FV4(IBT)=FV4(IBT).AND..NOT.LBITS(IBIT) c IVVV=IVALc IVV=IABS(IVVV) c I3=0c IF(IVAL.LT.0)I3=1c I1=0c I2=0c I2=IVV.AND.2c I1=IVV.AND.1@cC NOTE WE ASSUME HEAVILY THAT LOGICAL OPERATIONS WORK BY BINARYcC ANDS AND ORS IN DATA.4c IF(I1.NE.0)FV1(IBT)=FV1(IBT).OR.LBITS(IBIT)4c IF(I2.NE.0)FV2(IBT)=FV2(IBT).OR.LBITS(IBIT)4c IF(I3.NE.0)FV4(IBT)=FV4(IBT).OR.LBITS(IBIT) fvmsk(id)=ival RETURN END+ SUBROUTINE VBLGET(ID1,ID2,ID3,IVAL)C3C VBLGET - GET BYTE OF 3 DIM VBLS ARRAY, ORIGINALLY;C DIMENSIONED (8,RRW,RCL). HANDLE BY CALLING XVBLGT TO GET7C CORRECT 8 BYTE VARIABLE, AND PULLING OUT CORRECT ONE INTEGER*2 ID1,ID2,ID3 LOGICAL*1 IVAL,LL(8) REAL*8 XX EQUIVALENCE(LL(1),XX) CALL XVBLGT(ID2,ID3,XX) IVAL=LL(ID1) RETURN END+ SUBROUTINE VBLSET(ID1,ID2,ID3,IVAL)3C VBLSET - SET BYTE OF 3 DIM VBLS ARRAY, ORIGINALLY;C DIMENSIONED (8,RRW,RCL). HANDLE BY CALLING XVBLST TO GET6C CORRECT 8 BYTE VARIABLE, AND PUTTING IN CORRECT ONE INTEGER*2 ID1,ID2,ID3 LOGICAL*1 IVAL,LL(8) REAL*8 XX EQUIVALENCE(LL(1),XX)?C GET THE DESIRED 8 BYTES, THEN CHANGE THE ONE WE WANT. THEN... CALL XVBLGT(ID2,ID3,XX) LL(ID1)=IVALC PUT BACK THE 8 BYTES. CALL XVBLST(ID2,ID3,XX) RETURN END+ SUBROUTINE JVBLGT(ID1,ID2,ID3,IVAL)C=C JVBLGT - GET INTEGER*4 WORD OF 3 DIM VBLS ARRAY, ORIGINALLY;C DIMENSIONED (2,RRW,RCL). HANDLE BY CALLING XVBLGT TO GET7C CORRECT 8 BYTE VARIABLE, AND PULLING OUT CORRECT ONE INTEGER*2 ID1,ID2,ID3 INTEGER*4 IVAL,LL(2) REAL*8 XX EQUIVALENCE(LL(1),XX) CALL XVBLGT(ID2,ID3,XX) IVAL=LL(ID1) RETURN END+ SUBROUTINE JVBLST(ID1,ID2,ID3,IVAL)7C JVBLST - SET I*4 WORD OF 3 DIM VBLS ARRAY, ORIGINALLY;C DIMENSIONED (2,RRW,RCL). HANDLE BY CALLING XVBLST TO GET6C CORRECT 8 BYTE VARIABLE, AND PUTTING IN CORRECT ONE INTEGER*2 ID1,ID2,ID3 INTEGER*4 IVAL,LL(2) REAL*8 XX EQUIVALENCE(LL(1),XX)@C GET THE DESIRED 8 BYTES, THEN CHANGE THE ONES WE WANT. THEN... CALL XVBLGT(ID2,ID3,XX) LL(ID1)=IVALC PUT BACK THE 8 BYTES. CALL XVBLST(ID2,ID3,XX) RETURN ENDC% SUBROUTINE XVBLST(ID1,ID2,XX)C+C XVBLST - STORE 8 BYTES IN VARIABLES ARRAY$C GIVEN DIMENSIONS FOR LOCATING THEM PARAMETER CUP=1 INTEGER*2 ID1,ID2' INTEGER*4 IPAG,IPM,LLL,IHASH,JHASH,NNN REAL*8 XX INCLUDE 'VKLUGPRM.FTN'" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9)/ LOGICAL*1 AVBLS(20,27),VBLS(8,RRWP,RCLP),VT(8) REAL*8 XVT EQUIVALENCE(XVT,VT(1)) REAL*8 XXV(RRWP,RCLP)" EQUIVALENCE(XXV(1,1),VBLS(1,1,1)) COMMON/V/TYPE,AVBLS,VBLS,VLEN- INTEGER*2 IPGMAX,LPGMXF,IPGMOD,LPGMOD1 COMMON/FILEMX/IPGMAX,LPGMXF,IPGMOD,LPGMODBC LENGTHS (IN K) OF FILES FOR VALUES OR FORMULAS ARE IPGMAX,LPGMXFC NEXT BITMAPS IMPLEMENT FVLD2 LOGICAL*1 FV1(BRRCL),FV2(BRRCL),FV4(BRRCL) LOGICAL*1 LBITS(8) COMMON/BITS/LBITS COMMON/FVLDM/FV1,FV2,FV4BC THE FOLLOWING BITMAP IS FOR TYPE ARRAY, AND INTEGER ARRAY IS FORC TYPES OF AC'S STORAGE: LOGICAL*1 ITYP(BRRCL) INTEGER*2 IATYP(27) COMMON/TYP/IATYP,ITYPCAC NEXT ARE BUFFERS FOR HOLDING VALUES, AND MEMORY OCCUPANCY WORDS3C FOR EACH GIVING THE BLK # IN USE FOR THESE TABLES?C FORMAT BLOCK (ONE ONLY, 512 BYTES, BUT ORGANIZED AS 45 FORMATC AREAS WITH DATA.$ LOGICAL*1 FMTDAT(9,45),LLTST COMMON/FMTBFR/FMTDAT+ INTEGER*2 LVALBF(5,LVBF),MPAG,MPMOD# COMMON/VB/MPAG,LVALBF,MPMOD INTEGER*2 LL(4) REAL*8 XA EQUIVALENCE(XA,LL(1))00*a1a^[Z[[[\[} INTEGER*2 NCEL,NXINI COMMON/NCEL/NCEL,NXINI INTEGER*2 ICREF,IRREF COMMON/MIRROR/ICREF,IRREFC DATA FILE AREA... INTEGER*2 LVALB1(LVBF5)# EQUIVALENCE(LVALB1(1),LVALBF(1,1)) INTEGER*4 QVDAT,QFDAT" DIMENSION QVDAT(IPDM),QFDAT(LPDM) REAL*8 QQDAT(RRW,RCL)! EQUIVALENCE(QQDAT(1,1),QVDAT(1)) INTEGER*2 QVDAT1 DIMENSION QVDAT1(IPDM5) EQUIVALENCE(QVDAT(1),QVDAT1(1)) COMMON/QVCMN/QVDAT,QFDAT INTEGER*4 I4,I44 IID1=ID1 IID2=MAX0(ID2,1) IF(ID2.LT.1)GOTO 7802# IF(ID2.GT.1.OR.ID1.GT.27)GOTO 7780C AN ACCUMULATOR. SET IT.?C HAVE EVERYTHING HERE SO NO PROBLEMS WITH RECOGNIZING CELLS... XVT=XX DO 7781 IV=1,87781 AVBLS(IV,ID1)=VT(IV) RETURN 7780 CONTINUE 4000 CONTINUE IF(IID1.LE.RRW)GOTO 7801 IID1=IID1-RRW IID2=IID2+IRREF GOTO 4000 7801 CONTINUE IF(IID2.LE.RCL)GOTO 7802 IID2=IID2-RCL+1 IID1=IID1+ICREF GOTO 4000 7802 CONTINUE QQDAT(IID1,IID2)=XX RETURN ENDC% SUBROUTINE XVBLGT(ID1,ID2,XX)C9C XVBLGT - LOAD 8 BYTES GIVEN DIMENSIONS FOR GETTING THEMOC 2 DIM ARRAY, DIM'D (RRW,RCL) INTEGER*2 ID1,ID2R REAL*8 XXI INCLUDE 'VKLUGPRM.FTN'' INTEGER*4 IPAG,IPM,LLL,IHASH,JHASH,NNNA- INTEGER*2 IPGMAX,LPGMXF,IPGMOD,LPGMODD1 COMMON/FILEMX/IPGMAX,LPGMXF,IPGMOD,LPGMODC" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9)/ LOGICAL*1 AVBLS(20,27),VBLS(8,RRWP,RCLP),VT(8)T INTEGER*2 ICREF,IRREF COMMON/MIRROR/ICREF,IRREF REAL*8 XVT( EQUIVALENCE(XVT,VT(1))C REAL*8 XXV(RRWP,RCLP)" EQUIVALENCE(XXV(1,1),VBLS(1,1,1)) COMMON/V/TYPE,AVBLS,VBLS,VLENBC LENGTHS (IN K) OF FILES FOR VALUES OR FORMULAS ARE IPGMAX,LPGMXFC NEXT BITMAPS IMPLEMENT FVLDM2 LOGICAL*1 FV1(BRRCL),FV2(BRRCL),FV4(BRRCL) LOGICAL*1 LBITS(8) COMMON/BITS/LBITSF COMMON/FVLDM/FV1,FV2,FV4BC THE FOLLOWING BITMAP IS FOR TYPE ARRAY, AND INTEGER ARRAY IS FORC TYPES OF AC'S STORAGE:! LOGICAL*1 ITYP(BRRCL),LWKI! INTEGER*2 IATYP(27),LL(4), REAL*8 XA EQUIVALENCE(LL(1),XA) COMMON/TYP/IATYP,ITYP#+ INTEGER*2 LVALBF(5,LVBF),MPAG,MPMOD C DATA FILE AREA...N INTEGER*2 LVALB1(LVBF5)# EQUIVALENCE(LVALB1(1),LVALBF(1,1))E INTEGER*4 QVDAT,QFDAT" DIMENSION QVDAT(IPDM),QFDAT(LPDM) INTEGER*2 QVDAT1U REAL*8 QQDAT(RRW,RCL)! EQUIVALENCE(QQDAT(1,1),QVDAT(1))  DIMENSION QVDAT1(IPDM5) EQUIVALENCE(QVDAT(1),QVDAT1(1)) COMMON/QVCMN/QVDAT,QFDAT  INTEGER*4 I4,I44B# COMMON/VB/MPAG,LVALBF,MPMODHCOAC NEXT ARE BUFFERS FOR HOLDING VALUES, AND MEMORY OCCUPANCY WORDSR3C FOR EACH GIVING THE BLK # IN USE FOR THESE TABLES?C FORMAT BLOCK (ONE ONLY, 512 BYTES, BUT ORGANIZED AS 45 FORMAT C AREAS WITH DATA. LOGICAL*1 FMTDAT(9,45) COMMON/FMTBFR/FMTDAT IID1=ID1E IID2=MAX0(ID2,1)  IF(ID2.LT.1)GOTO 7802# IF(ID2.GT.1.OR.ID1.GT.27)GOTO 7780CC AN ACCUMULATORC GET IT AS IF IT WERE A CELL, DO 7781 IV=1,8 7781 VT(IV)=AVBLS(IV,ID1)U XX=XVTI RETURN. 7780 CONTINUEI 4000 CONTINUE, IF(IID1.LE.RRW)GOTO 7801O IID1=IID1-RRW IID2=IID2+IRREF GOTO 4000 7801 CONTINUE, IF(IID2.LE.RCL)GOTO 7802P IID2=IID2-RCL+1 IID1=IID1+ICREF GOTO 4000 7802 CONTINUEF XX=QQDAT(IID1,IID2) RETURN END SUBROUTINE WSSETC WORK SHEET MANAGMENT ROUTINES(C HANDLE SPREADSHEET "IN MEMORY" STORAGEC COPYRIGHT GLENN EVERHART 1983CC ALL RIGHTS RESERVEDC0C WSSET - INITIALIZE STORAGE TO START CONDITIONS INCLUDE 'VKLUGPRM.FTN'EC EXPECT IMPLEMENTATION TO USE A COMMON BITMAP AND PROVIDE A VARIABLE(C NCEL TO TELL HOW MANY CELLS ARE IN USEC NEXT BITMAPS IMPLEMENT FVLD PARAMETER CUP=12 LOGICAL*1 FV1(BRRCL),FV2(BRRCL),FV4(BRRCL) LOGICAL*1 LBITS(8) COMMON/B002ag`^YTADATADATADATADATADATAITS/LBITS INTEGER*4 N4 INTEGER*2 IPGMAX,LPGMXF# COMMON/FILEMX/IPGMAX,LPGMXFBC LENGTHS (IN K) OF FILES FOR VALUES OR FORMULAS ARE IPGMAX,LPGMXF8C USE LUN 7 FOR FORMULAS, 9 FOR VALUES FILE IF NEEDED... COMMON/FVLDM/FV1,FV2,FV4BC THE FOLLOWING BITMAP IS FOR TYPE ARRAY, AND INTEGER ARRAY IS FORC TYPES OF AC'S STORAGE: LOGICAL*1 ITYP(BRRCL)" INTEGER*2 IATYP(27),LINTGR$ COMMON/TYP/IATYP,ITYP,LINTGR INTEGER*2 DLFG COMMON/DLFG/DLFGC DLFG FLAGS IF D## FORMS SEENCAC NEXT ARE BUFFERS FOR HOLDING VALUES, AND MEMORY OCCUPANCY WORDS3C FOR EACH GIVING THE BLK # IN USE FOR THESE TABLES?C FORMAT BLOCK (ONE ONLY, 512 BYTES, BUT ORGANIZED AS 45 FORMATC AREAS WITH DATA. LOGICAL*1 FMTDAT(9,45) COMMON/FMTBFR/FMTDAT" LOGICAL*1 DVF(12),DFMT(10)# EQUIVALENCE(DVF(2),DFMT(1)) COMMON/DEFVBX/DVF+ INTEGER*2 LVALBF(5,LVBF),MPAG,MPMOD# COMMON/VB/MPAG,LVALBF,MPMOD( INTEGER*2 MFID,IFID(8,LFM),MFMOD LOGICAL*1 LFID(16,LFM)( EQUIVALENCE(IFID(1,1),LFID(1,1))" COMMON/FRM/MFID,IFID,MFMODC DATA FILE AREA... INTEGER*4 QVDAT,QFDAT" DIMENSION QVDAT(IPDM),QFDAT(LPDM) COMMON/QVCMN/QVDAT,QFDATC COMMON /NCEL/NCEL,NXINI IBP=1 LINTGR=0 MPMOD=0 MFMOD=0 DLFG=0 C NO D## YET. DO 2 N=1,92 FMTDAT(N,1)=DFMT(N) DO 3 N=2,45 DO 3 NN=1,93 FMTDAT(NN,N)=0 DO 1 N=1,8 LBITS(N)=128/IBP1 IBP=IBP+IBP DO 4 N=1,BRRCLC CLEAR BITMAPS NOW FV1(N)=0 FV2(N)=0 FV4(N)=04 ITYP(N)=02C OPEN THE WORK FILES SO WE DON'T NEED TO LATER...$C LUN 7 IS FORMULAS; LUN 9 IS VALUESBC HOWEVER, IF IPGMAX IS LESS THAN LVBF/205 (INDICATING ENTIRE FILEFC FITS IN MEMORY) DON'T OPEN LUN 9 AND IF LPGMXF IS < LFM/64, LIKEWISE C FOR LUN 7.1C INITIALLY CLOSE FILES IN CASE THEY WERE OPEN...$C CLOSE(UNIT=7,DISP='DELETE')$C CLOSE(UNIT=9,DISP='DELETE')'C NOW OPEN THEM AS RANDOM ACCESS FILES. NBK=IPGMAX*2AC KEEP VALUE PAGES IN 500 BYTE UNITS, NOT 512 BYTE UNITS, TO COME C OUT EVEN...=C IF(IPGMAX.GT.(LVBF/100))OPEN(UNIT=9,FILE='PVBL.TMP',=C 1 ACCESS='DIRECT',DISPOSE='DELETE',FORM='UNFORMATTED',:C 2 INITIALSIZE=NBK,BLOCKSIZE=500,RECORDTYPE='FIXED',C 3 RECL=125,STATUS='NEW') NBK=LPGMXF*2;C IF(LPGMXF.GT.(LFM/64))OPEN(UNIT=7,FILE='PFMT.TMP',=C 1 ACCESS='DIRECT',DISPOSE='DELETE',FORM='UNFORMATTED',:C 2 INITIALSIZE=NBK,BLOCKSIZE=512,RECORDTYPE='FIXED',C 3 RECL=128,STATUS='NEW')C SET NOTHING IN MEMORY YET MFID=0 MPAG=0C ZERO MEMORY BUFFER AND FILES,C SET TO -1 SO WE CAN RECOGNIZE VIRGIN CELLS DO 9 N=1,LVBF DO 9 M=1,59 LVALBF(M,N)=-1 NPG=(IPGMAX*2)(C IF(IPGMAX.LE.(LVBF/100))GOTO 11C DO 10 N=1,NPG DO 10 N4=1,IPDM QVDAT(N4)=0$C ABOVE WAS -1 FOR CASE OF WORKFILESC QVDAT(N4)=-13C10 WRITE(9'N)((LVALBF(K,KKK),K=1,5),KKK=1,50) 10 CONTINUE11 CONTINUE'C AGAIN FLAG VIRGIN CELLS WITH ID OF -1 DO 12 N=1,LFM DO 12 M=1,812 IFID(M,N)=-1 NPG=LPGMXF*2&C IF(LPGMXF.LE.(LFM/64))GOTO 14C DO 13 N=1,NPG1C13 WRITE(7'N)((IFID(K,KKK),K=1,8),KKK=1,32) DO 13 N4=1,LPDM QFDAT(N4)=-1 13 CONTINUE14 CONTINUE"C SET ALL AC'S TO TYPE FLOATING... DO 8 N=1,278 IATYP(N)=2C TYPE 2 IS REALS (DEFAULT) NCEL=0 NXINI=0 RETURN ENDC SUBROUTINE FVPEEK(ID1,ID2,IGO)CC PEEK INTO FV1 THRU FV4 INDICES TO FIND COMPUTABLE CELLS. REQUIRES>C FV4 BIT OFF, FV1 OR F2 BIT ON (OR BOTH). DESIGNED AS WAY FOR@C RECALC TO CHEAT AND SKIP QUICKLY BY CELLS NOT IN MAP. IGO GETS7C START INDEX FOR ID1 WITHIN RANGE OF ID1 FROM 1 TO RRWC INCLUDE 'VKLUGPRM.FTN'2 LOGICAL*1 FV1(BRRCL),FV2(BRRCL),FV4(BRRCL) LOGICAL*1 LBITS(8) COMMON/BITS/LBITS COMMON/FVLDM/FV1,FV2,FV4 IGO=ID1!C DEFAULT IS ID1 IS GI00:a1a^[Z[[[\[}VEN TO IGO.C ID=(ID2-1)*RRW+ID1 IRRR=ID2*RRW ID=IRRR-RRW+ID1 IBYT=((ID-1)/8)+1 IRRR=((IRRR-1)/8)+1$C IGO MUST NEVER GET BIGGER THAN RRW DO 1 N=IBYT,IRRR III=N% IF(FV1(N).NE.0.OR.FV2(N).NE.0)GOTO 2DC SKIP BY UNLESS FV1 OR FV2 BITS ARE SET. ALLOW LABELS BY HERE SINCE>C THIS IS A CRUDE TEST FOR MOSTLY TOTALLY UNINITIALIZED CELLS. 1 CONTINUE7C ON FALL THROUGH WE LEAVE III AT MAX TO SKIP THIS AREA 2 CONTINUE N=((III-1)*8)+1CC COMPUTE FIRST CELL OF BITMAP BLK WE FOUND, RETURN IT AS NEW INDEXC UNLESS ALREADY PAST IT... N=N-RRW*(ID2-1)GC NOTE WE PICK RRW IF N IS BIGGER SINCE WE CHECK ON AN INNER LOOP ONLY. IF(N.GT.IGO)IGO=MIN0(N,RRW) RETURN END' SUBROUTINE TYPGET(ID1,ID2,IVAL)C-C TYPGET - GET TYPE(RRW,RCL) ARRAY WORDS BACK1C RETURN TYPE(ID1,ID2) IN IVAL, BUT NOT REALLY... INCLUDE 'VKLUGPRM.FTN'C NEXT BITMAPS IMPLEMENT FVLD2 LOGICAL*1 FV1(BRRCL),FV2(BRRCL),FV4(BRRCL) LOGICAL*1 LBITS(8) COMMON/BITS/LBITS COMMON/FVLDM/FV1,FV2,FV4BC THE FOLLOWING BITMAP IS FOR TYPE ARRAY, AND INTEGER ARRAY IS FORC TYPES OF AC'S STORAGE: LOGICAL*1 ITYP(BRRCL)' INTEGER*2 IATYP(27),IVAL,LINTGR$ COMMON/TYP/IATYP,ITYP,LINTGRCAC NEXT ARE BUFFERS FOR HOLDING VALUES, AND MEMORY OCCUPANCY WORDS3C FOR EACH GIVING THE BLK # IN USE FOR THESE TABLES?C FORMAT BLOCK (ONE ONLY, 512 BYTES, BUT ORGANIZED AS 45 FORMATC AREAS WITH DATA. LOGICAL*1 FMTDAT(9,45) COMMON/FMTBFR/FMTDAT LOGICAL*1 ITST+ IF(ID1.LE.27.AND.ID2.LE.1)GOTO 1000 IVAL=2 IF(LINTGR.EQ.0)RETURN CALL FVLDGT(ID1,ID2,ITST) IF(ITST.EQ.0)GOTO 500 ID=(ID2-1)*RRW+ID1 IBT=(ID-1)/8 IBIT=((ID-1).AND.7)+1& ITST=ITYP(IBT).AND.LBITS(IBIT)500 IVAL=2 IF(ITST.NE.0)IVAL=4 RETURN1000 CONTINUEC AN AC. RETURN FULL TYPE WORD IVAL=IATYP(ID1) RETURN END' SUBROUTINE TYPSET(ID1,ID2,IVAL)C,C TYPSET - STORE IVAL IN TYPE(RRW,RCL) ARRAY INCLUDE 'VKLUGPRM.FTN'C NEXT BITMAPS IMPLEMENT FVLD INTEGER*2 IVAL2 LOGICAL*1 FV1(BRRCL),FV2(BRRCL),FV4(BRRCL) LOGICAL*1 LBITS(8) COMMON/BITS/LBITS COMMON/FVLDM/FV1,FV2,FV4BC THE FOLLOWING BITMAP IS FOR TYPE ARRAY, AND INTEGER ARRAY IS FORC TYPES OF AC'S STORAGE: LOGICAL*1 ITYP(BRRCL)" INTEGER*2 IATYP(27),LINTGR$ COMMON/TYP/IATYP,ITYP,LINTGRCAC NEXT ARE BUFFERS FOR HOLDING VALUES, AND MEMORY OCCUPANCY WORDS3C FOR EACH GIVING THE BLK # IN USE FOR THESE TABLES?C FORMAT BLOCK (ONE ONLY, 512 BYTES, BUT ORGANIZED AS 45 FORMATC AREAS WITH DATA. LOGICAL*1 FMTDAT(9,45) COMMON/FMTBFR/FMTDAT LOGICAL*1 ITST,ITST2* IF(ID2.LE.1.AND.ID1.LE.27)GOTO 200* IF(LINTGR.EQ.0.AND.IABS(IVAL).EQ.2)RETURN LINTGR=1 ID=(ID2-1)*RRW+ID1 IBT=(ID-1)/8 IBIT=((ID-1).AND.7)+1 ITST2=.NOT.LBITS(IBIT)! ITST2=ITYP(IBT).AND.ITST2% ITST=ITYP(IBT).OR.LBITS(IBIT) ITYP(IBT)=ITST22 IF(IVAL.NE.-2.AND.IVAL.NE.2)ITYP(IBT)=ITST RETURN 200 CONTINUE IATYP(ID1)=IVAL RETURN END' SUBROUTINE FVLDGT(ID1,ID2,IVAL)C:C FVLDGT - RETURN FVLD BYTE GIVEN 2 DIMS OF ITS "LOCATION" INTEGER*2 ID1,ID2 LOGICAL*1 IVAL INCLUDE 'VKLUGPRM.FTN'C NEXT BITMAPS IMPLEMENT FVLD2 LOGICAL*1 FV1(BRRCL),FV2(BRRCL),FV4(BRRCL) LOGICAL*1 LBITS(8) COMMON/BITS/LBITS COMMON/FVLDM/FV1,FV2,FV4BC THE FOLLOWING BITMAP IS FOR TYPE ARRAY, AND INTEGER ARRAY IS FORC TYPES OF AC'S STORAGE: LOGICAL*1 ITYP(BRRCL) INTEGER*2 IATYP(27) COMMON/TYP/IATYP,ITYPCAC NEXT ARE BUFFERS FOR HOLDING VALUES, AND MEMORY OCCUPANCY WORDS3C FOR EACH GIVING THE BLK # IN USE FOR THESE TABLES?C FORMAT BLOCK (ONE ONLY, 512 BYTES, BUT ORGANIZED AS 45 FORMATC AREAS WITH DATA. LOGICAL*1 FMTDAT(9,45) COMMON/FMTBFR/FMTDAT LOGICAL*1 00Bag`^YTADATADATADATADATADATAI1,I2,I4 IF(ID2.GT.0)GOTO 20004C TRICK ENTRY USING ID IN FIRST ARG, 0 IN 2ND ARG...IC TELL XVBLST/XVBLGT ABOUT FV4 STATE (SET BY CALL WITH -4 BYTE ON FVLDST) ID=ID1 IBT=((ID-1)/8)+1 IBIT=((ID-1).AND.7)+1# I1=FV1(IBT).AND.LBITS(IBIT)# I2=FV2(IBT).AND.LBITS(IBIT)# I4=FV4(IBT).AND.LBITS(IBIT) IVAL=0%C RETURN NONZERO IF ANY BITS ARE SET. IF((I1+I2+I4).NE.0)IVAL=1 RETURN 2000 CONTINUE ID=(ID2-1)*RRW+ID1 IBT=((ID-1)/8)+1 IBIT=((ID-1).AND.7)+1T# I1=FV1(IBT).AND.LBITS(IBIT).# I2=FV2(IBT).AND.LBITS(IBIT) # I4=FV4(IBT).AND.LBITS(IBIT)F IVL=0. IF(I1.NE.0)IVL=1 IF(I2.NE.0)IVL=IVL+2 IF(I4.NE.0)IVL=-IVL  IVAL=IVLCC READS OFF FVLD BYTE FROM 3 BITS, HIGH ONE IS SIGN. TREAT AS SIGN-E%C MAGNITUDE NUMBER IN RANGE -3 TO +3,R RETURN ENDG' SUBROUTINE FVLDST(ID1,ID2,IVAL) C%C FVLDST - SET THE BYTE IN FVLD ARRAY  INCLUDE 'VKLUGPRM.FTN'C NEXT BITMAPS IMPLEMENT FVLDU2 LOGICAL*1 FV1(BRRCL),FV2(BRRCL),FV4(BRRCL) LOGICAL*1 IVAL LOGICAL*1 LBITS(8) COMMON/BITS/LBITST COMMON/FVLDM/FV1,FV2,FV4BC THE FOLLOWING BITMAP IS FOR TYPE ARRAY, AND INTEGER ARRAY IS FORC TYPES OF AC'S STORAGE: LOGICAL*1 ITYP(BRRCL)N INTEGER*2 IATYP(27) COMMON/TYP/IATYP,ITYPC AC NEXT ARE BUFFERS FOR HOLDING VALUES, AND MEMORY OCCUPANCY WORDSX3C FOR EACH GIVING THE BLK # IN USE FOR THESE TABLESG?C FORMAT BLOCK (ONE ONLY, 512 BYTES, BUT ORGANIZED AS 45 FORMATDC AREAS WITH DATA. LOGICAL*1 FMTDAT(9,45) INTEGER*2 IVV,I1,I2,I3P COMMON/FMTBFR/FMTDATC LOGICAL*1 I4X ID=(ID2-1)*RRW+ID1 IBT=((ID-1)/8)+1 IBIT=((ID-1).AND.7)+1(C ZERO ALL 3 FVLD BITS FIRST. FV1(IBT)=FV1(IBT).AND..NOT.LBITS(IBIT). FV2(IBT)=FV2(IBT).AND..NOT.LBITS(IBIT). FV4(IBT)=FV4(IBT).AND..NOT.LBITS(IBIT) IVVV=IVAL IVV=IABS(IVVV) I3=0 IF(IVAL.LT.0)I3=1A I1=0A I2=0F I2=IVV.AND.2 I1=IVV.AND.1?C NOTE WE ASSUME HEAVILY THAT LOGICAL OPERATIONS WORK BY BINARY(C ANDS AND ORS IN DATA.B3 IF(I1.NE.0)FV1(IBT)=FV1(IBT).OR.LBITS(IBIT)N3 IF(I2.NE.0)FV2(IBT)=FV2(IBT).OR.LBITS(IBIT)3 IF(I3.NE.0)FV4(IBT)=FV4(IBT).OR.LBITS(IBIT)L RETURN ENDY+ SUBROUTINE VBLGET(ID1,ID2,ID3,IVAL)XC3C VBLGET - GET BYTE OF 3 DIM VBLS ARRAY, ORIGINALLYL;C DIMENSIONED (8,RRW,RCL). HANDLE BY CALLING XVBLGT TO GETB7C CORRECT 8 BYTE VARIABLE, AND PULLING OUT CORRECT ONE4 INTEGER*2 ID1,ID2,ID3I LOGICAL*1 IVAL,LL(8) REAL*8 XXA EQUIVALENCE(LL(1),XX)1 CALL XVBLGT(ID2,ID3,XX)( IVAL=LL(ID1) RETURN ENDV+ SUBROUTINE VBLSET(ID1,ID2,ID3,IVAL) 3C VBLSET - SET BYTE OF 3 DIM VBLS ARRAY, ORIGINALLYF;C DIMENSIONED (8,RRW,RCL). HANDLE BY CALLING XVBLST TO GETV6C CORRECT 8 BYTE VARIABLE, AND PUTTING IN CORRECT ONE INTEGER*2 ID1,ID2,ID3Z LOGICAL*1 IVAL,LL(8) REAL*8 XXI EQUIVALENCE(LL(1),XX)M?C GET THE DESIRED 8 BYTES, THEN CHANGE THE ONE WE WANT. THEN...M CALL XVBLGT(ID2,ID3,XX)C LL(ID1)=IVALC PUT BACK THE 8 BYTES.1 CALL XVBLST(ID2,ID3,XX)I RETURN ENDT+ SUBROUTINE JVBLGT(ID1,ID2,ID3,IVAL)XC.=C JVBLGT - GET INTEGER*4 WORD OF 3 DIM VBLS ARRAY, ORIGINALLYL;C DIMENSIONED (2,RRW,RCL). HANDLE BY CALLING XVBLGT TO GET 7C CORRECT 8 BYTE VARIABLE, AND PULLING OUT CORRECT ONE  INTEGER*2 ID1,ID2,ID3K INTEGER*4 IVAL,LL(2) REAL*8 XX  EQUIVALENCE(LL(1),XX)A CALL XVBLGT(ID2,ID3,XX)0 IVAL=LL(ID1) RETURN END=+ SUBROUTINE JVBLST(ID1,ID2,ID3,IVAL)/7C JVBLST - SET I*4 WORD OF 3 DIM VBLS ARRAY, ORIGINALLY2;C DIMENSIONED (2,RRW,RCL). HANDLE BY CALLING XVBLST TO GETG6C CORRECT 8 BYTE VARIABLE, AND PUTTING IN CORRECT ONE INTEGER*2 ID1,ID2,ID3O INTEGER*4 IV00Ja1a^[Z[[[\[}AL,LL(2) REAL*8 XXN EQUIVALENCE(LL(1),XX)F@C GET THE DESIRED 8 BYTES, THEN CHANGE THE ONES WE WANT. THEN... CALL XVBLGT(ID2,ID3,XX)P LL(ID1)=IVALC PUT BACK THE 8 BYTES.O CALL XVBLST(ID2,ID3,XX)G RETURN ENDGCA% SUBROUTINE XVBLST(ID1,ID2,XX)EC.+C XVBLST - STORE 8 BYTES IN VARIABLES ARRAYF$C GIVEN DIMENSIONS FOR LOCATING THEM PARAMETER CUP=1 INTEGER*2 ID1,ID2A' INTEGER*4 IPAG,IPM,LLL,IHASH,JHASH,NNNM REAL*8 XXL INCLUDE 'VKLUGPRM.FTN'" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9)/ LOGICAL*1 AVBLS(20,27),VBLS(8,RRWP,RCLP),VT(8)O REAL*8 XVTC EQUIVALENCE(XVT,VT(1))  REAL*8 XXV(RRWP,RCLP)" EQUIVALENCE(XXV(1,1),VBLS(1,1,1)) COMMON/V/TYPE,AVBLS,VBLS,VLEN- INTEGER*2 IPGMAX,LPGMXF,IPGMOD,LPGMODA1 COMMON/FILEMX/IPGMAX,LPGMXF,IPGMOD,LPGMODBC LENGTHS (IN K) OF FILES FOR VALUES OR FORMULAS ARE IPGMAX,LPGMXFC NEXT BITMAPS IMPLEMENT FVLDN2 LOGICAL*1 FV1(BRRCL),FV2(BRRCL),FV4(BRRCL) LOGICAL*1 LBITS(8) COMMON/BITS/LBITS) COMMON/FVLDM/FV1,FV2,FV4BC THE FOLLOWING BITMAP IS FOR TYPE ARRAY, AND INTEGER ARRAY IS FORC TYPES OF AC'S STORAGE: LOGICAL*1 ITYP(BRRCL)  INTEGER*2 IATYP(27)T COMMON/TYP/IATYP,ITYPNCRAC NEXT ARE BUFFERS FOR HOLDING VALUES, AND MEMORY OCCUPANCY WORDS 3C FOR EACH GIVING THE BLK # IN USE FOR THESE TABLESL?C FORMAT BLOCK (ONE ONLY, 512 BYTES, BUT ORGANIZED AS 45 FORMATUC AREAS WITH DATA.$ LOGICAL*1 FMTDAT(9,45),LLTST COMMON/FMTBFR/FMTDAT+ INTEGER*2 LVALBF(5,LVBF),MPAG,MPMODT# COMMON/VB/MPAG,LVALBF,MPMODK INTEGER*2 LL(4)  REAL*8 XA1 EQUIVALENCE(XA,LL(1))U INTEGER*2 NCEL,NXINID COMMON/NCEL/NCEL,NXINIAC DATA FILE AREA...C INTEGER*2 LVALB1(LVBF5)# EQUIVALENCE(LVALB1(1),LVALBF(1,1))  INTEGER*4 QVDAT,QFDAT" DIMENSION QVDAT(IPDM),QFDAT(LPDM) REAL*8 QQDAT(RRW,RCL)! EQUIVALENCE(QQDAT(1,1),QVDAT(1))A INTEGER*2 QVDAT1  DIMENSION QVDAT1(IPDM5) EQUIVALENCE(QVDAT(1),QVDAT1(1)) COMMON/QVCMN/QVDAT,QFDATT INTEGER*4 I4,I44 # IF(ID2.GT.1.OR.ID1.GT.27)GOTO 7780 C AN ACCUMULATOR. SET IT. XVT=XX  DO 7781 IV=1,8.7781 AVBLS(IV,ID1)=VT(IV)V RETURN. 7780 CONTINUE3 QQDAT(ID1,ID2)=XX RETURN C ID=(ID2-1)*RRW+ID1 .CC SET UP HASH CODE NOW FOR THE WAY WE NEED...CC IPM=(IPGMAX*200/LVBF)C IF(ID.LE.0)RETURNW9CC CALL FVLDGT TO TELL IF ANYTHING IS SET FOR THE CELL...UC CALL FVLDGT(ID1,ID2,LLTST)C IF(LLTST.NE.0)GOTO 3419C CALL FVLDST(ID1,ID2,-4)N>CC TRICK ... SET UP SIGN BIT IN FVLD SO XVBLGT CAN FIND OUT IFACC VARIABLE HAS EVER BEEN WRITTEN AND EXIT IF NOT. INDEPENDENT OFS7CC USUAL SETTING OF FVLD SINCE IT USES "SIGN" BIT ONLY.AC3419 CONTINUEC IBF=(LVBF+49)/50C IF(IBF.LT.1)IBF=1OC LLL=(IPGMAX*2)/IBF C IPM=LLLNC IF(IPM.LE.0)IPM=1 C IHASH=ID C JHASH=MOD(IHASH,LVBF)+1C IF(IPGMOD.NE.0)GOTO 3400CC SPACE-OPTIMIZING PACKING,C IPAG=(IHASH/LVBF)+1C IPAG=MOD(IPAG,IPM)+1R C GOTO 3401RC3400 CONTINUECC SPEED-OPTIMIZING PACKING*C FPG=FLOAT(IPGMOD)EC IF(FPG.LT.0.)FPG=FPG+65536.-!C FPG=FLOAT(IHASH)*FLOAT(IPM)/FPG. C IPAG=FPGC IPAG=MOD(IPAG,IPM) C IPAG=IPAG+1 CC IPAG=1+(IHASH*IPM)/RRCLC3401 CONTINUEC IF(IPAG.LE.0)IPAG=1C IF(MPAG.EQ.0)MPAG=IPAGG=CC THE ABOVE ACCOUNTS FOR MEMORY FREE... WE TREAT FILE AS IPM ECC "PAGES" THE SIZE OF THE MEMORY AREA EACH. THIS MAKES IT RELATIVELY,DCC EASY TO ALTER THE PROGRAM TO HANDLE MORE MEMORY TO THE EXTENT THECC COMPILER AND MACHINE ALLOW."C IF(IPAG.EQ.MPAG)GOTO 1000#C IF(IPGMAX.LE.(LVBF/100))GOTO 1000EFCC IF HERE, WE NEED A PAGE NOT IN MEMORY. SWAP THE CURRENT MEMORY PAGE(CC TO DISK AND BRING IN THE ONE DESIRED.3CC FILES ARE OPENED ALREADY HERE... USE LUN 9 HERE.TC IRCLO=(MPAG-1)*IBF+1UC IRCHI=MPAG*IBFO C L=1C DO 500 N=IRCLO,IRCHIL7CC IF PAGE WAS NEVER MODIFIED, NO NEED TO WRITE IT OUT.CC IF(MPMOD.EQ.0)GOTO 500C LLL=L+49,C N4=NC N44=1+((N4-1)*125)C KNKK=1+(L-1)*5 C KNKK00Rag`^YTADATADATADATADATADATA2=LLL*5TC DO 801 K=KNKK,KNKK2 C N4=K-1 C N4=N4+N44GC801 QVDAT1(N4)=LVALB1(K)/3CC WRITE(9'N)((LVALBF(KK,K),KK=1,5),K=L,LLL)OC L=L+50GC500 CONTINUEU C MPMOD=0MC MPAG=IPAGHCC NOW READ IN THE DESIRED RECORD, HAVING SET THE DESIRED IN-MEMORY FLAGC IRCLO=(MPAG-1)*IBF+1 C IRCHI=MPAG*IBFA C L=1C DO 501 N=IRCLO,IRCHIC LLL=L+49AC N4=NC N44=1+((N4-1)*125)C KNKK=1+(L-1)*5 C KNKK2=LLL*52C DO 802 K=KNKK,KNKK2FC N4=K-1 C N4=N4+N44 C802 LVALB1(K)=QVDAT1(N4)B2CC READ(9'N)((LVALBF(KK,K),KK=1,5),K=L,LLL)C L=L+50VC501 CONTINUEEC1000 CONTINUE@CC NOW THE PAGE NEEDED IS IN MEMORY (OR MAY HAVE BEEN ALL ALONG)'CC SET THE VALUE INTO IT AS REQUIRED...DLCC NOW START LOOKING AT HASH ADDRESS FOR VARIABLE...LINEAR SEARCH AFTERWARDS C MPMOD=1A%CC FLAG PAGE MODIFIED IF WE TOUCH IT.D"CC ASSUME WE ALWAYS TOUCH IT HERE.C IF(NXINI.NE.0)GOTO 111C IH1=JHASH-1C DO 1 N=JHASH,LVBF"CC SKIP OUT ON HITTING VIRGIN CELLC IF(LVALBF(1,N).EQ.-1)GOTO 111I$C IF(LVALBF(1,N).NE.ID)GOTO 13CC ZERO ALL REFS TO THIS CELL WE'RE ABOUT TO WRITE.T;CC **** THIS IS QUITE TIME CONSUMING... OMIT IF POSSIBLE...OC LVALBF(1,N)=0C1 CONTINUECC IF(IH1.LT.1)RETURNC DO 33 N=1,IH1"CC SKIP OUT ON HITTING VIRGIN CELLC IF(LVALBF(1,N).EQ.-1)GOTO 111T%C IF(LVALBF(1,N).NE.ID)GOTO 33 3CC ZERO ALL REFS TO THIS CELL WE'RE ABOUT TO WRITE.O;CC **** THIS IS QUITE TIME CONSUMING... OMIT IF POSSIBLE... C LVALBF(1,N)=0 C33 CONTINUE C111 CONTINUE(GCC SINCE ZERO VALUES ARE RETURNED BY DEFAULT, DON'T BOTHER STORING THEMWC IF(XX.EQ.0.)RETURNC IH1=JHASH-1C DO 2 N=JHASH,LVBFC NN=NC IF(LVALBF(1,N).EQ.-1)GOTO 4 #C IF(LVALBF(1,N).EQ.0)GOTO 4IC IF(LVALBF(1,N).EQ.ID)GOTO 4AC2 CONTINUEFC IF(IH1.LT.1)RETURNC DO 3 N=1,IH1 C NN=N6CC LOOK BEFORE THE HASHCODE IF NO FREE CELLS AFTER IT.C IF(LVALBF(1,N).EQ.-1)GOTO 4E#C IF(LVALBF(1,N).EQ.0)GOTO 4EC IF(LVALBF(1,N).EQ.ID)GOTO 42C3 CONTINUES3CC TELL USER VALUE AREA OVERFLOWED, USING ROW 1 ENDUC CALL UVT100(CUP,1,1)C WRITE(6,8900)0EC8900 FORMAT(' Value Table Storage Overflowed - bigger vers needed')EC RETURNT'CC RETURN IF CAN'T FIND VALUE...TOO BADEC4 CONTINUEXCC SAVE VALUE AS 4 16-BIT WORDSEC XA=XXCC SAVE ID AND VALUE IN CELL....C LVALBF(1,NN)=ID7C DO 5 M=1,4 C5 LVALBF(M+1,NN)=LL(M)'C RETURNO END C % SUBROUTINE XVBLGT(ID1,ID2,XX)TC=9C XVBLGT - LOAD 8 BYTES GIVEN DIMENSIONS FOR GETTING THEMNC 2 DIM ARRAY, DIM'D (RRW,RCL) INTEGER*2 ID1,ID2  REAL*8 XX  INCLUDE 'VKLUGPRM.FTN'' INTEGER*4 IPAG,IPM,LLL,IHASH,JHASH,NNN - INTEGER*2 IPGMAX,LPGMXF,IPGMOD,LPGMODP1 COMMON/FILEMX/IPGMAX,LPGMXF,IPGMOD,LPGMOD " INTEGER*2 TYPE(RRWP,RCLP),VLEN(9)/ LOGICAL*1 AVBLS(20,27),VBLS(8,RRWP,RCLP),VT(8)F REAL*8 XVT  EQUIVALENCE(XVT,VT(1))I REAL*8 XXV(RRWP,RCLP)" EQUIVALENCE(XXV(1,1),VBLS(1,1,1)) COMMON/V/TYPE,AVBLS,VBLS,VLENBC LENGTHS (IN K) OF FILES FOR VALUES OR FORMULAS ARE IPGMAX,LPGMXFC NEXT BITMAPS IMPLEMENT FVLDG2 LOGICAL*1 FV1(BRRCL),FV2(BRRCL),FV4(BRRCL) LOGICAL*1 LBITS(8) COMMON/BITS/LBITS1 COMMON/FVLDM/FV1,FV2,FV4BC THE FOLLOWING BITMAP IS FOR TYPE ARRAY, AND INTEGER ARRAY IS FORC TYPES OF AC'S STORAGE:! LOGICAL*1 ITYP(BRRCL),LWKY! INTEGER*2 IATYP(27),LL(4)C REAL*8 XA EQUIVALENCE(LL(1),XA) COMMON/TYP/IATYP,ITYPK+ INTEGER*2 LVALBF(5,LVBF),MPAG,MPMODCC DATA FILE AREA...  INTEGER*2 LVALB1(LVBF5)# EQUIVALENCE(LVALB1(1),LVALBF(1,1))S INTEGER*4 QVDAT,QFDAT" DIMENSION QVDAT(IPDM),QFDAT(LPDM) INTEGER*2 QVDAT1E REAL*8 QQDAT(RRW,RCL)! EQUIVALENCE(QQDAT(1,1),QVDAT(1)) DIMENSION QVDAT1(IPDM5) EQUIVALENCE(QVDAT(1),QVDAT1(1)) COMMON/QVCMN/QVDAT,QFDAT  INTEGER*4 I4,I44(# COMMON/VB/MPAG,LVALBF,MPMOD COAC NEXT ARE BUFFERS FOR HOLDING VALUES, AND MEMORY OCCU00Za1a^[Z[[[\[}PANCY WORDS3C FOR EACH GIVING THE BLK # IN USE FOR THESE TABLESR?C FORMAT BLOCK (ONE ONLY, 512 BYTES, BUT ORGANIZED AS 45 FORMATGC AREAS WITH DATA. LOGICAL*1 FMTDAT(9,45) COMMON/FMTBFR/FMTDAT# IF(ID2.GT.1.OR.ID1.GT.27)GOTO 7780FC AN ACCUMULATORC GET IT AS IF IT WERE A CELLE DO 7781 IV=1,8D7781 VT(IV)=AVBLS(IV,ID1)N XX=XVTE RETURN 7780 CONTINUEN XX=QQDAT(ID1,ID2) RETURN C ID=(ID2-1)*RRW+ID1TC XX=0.DCC NOTE THAT HERE IF FVLD IS 0, THIS MEANS RESULT IS 0 REGARDLESS OF&CC OTHER STUFF...RETURN 0 IMMEDIATELY.CCC NOTE TRICK CALL WHICH SIGNALS ANY INITIALIZATION GETS EVALUATED.NC CALL FVLDGT(ID,0,LWK).C IF(LWK.EQ.0)RETURN.CC SET UP HASH CODE NOW FOR THE WAY WE NEED...!CC IPM=(IPGMAX*100/LVBF)+1(C IBF=(LVBF+49)/50C IF(IBF.LT.1)IBF=1(C LLL=(IPGMAX*2)/IBF C IPM=LLL.C IF(IPM.LE.0)IPM=1VCC IHHI=ID/256TCC IHASH=ID.AND.255CC IHASH=IHASH*128+IHHI C IHASH=ID C JHASH=MOD(IHASH,LVBF)+1C IF(IPGMOD.NE.0)GOTO 3402C IPAG=(IHASH/LVBF)+1C IPAG=MOD(IPAG,IPM)+1Y C GOTO 3403 C3402 CONTINUECC SPEED-OPTIMIZING PACKING:C FPG=FLOAT(IPGMOD)TC IF(FPG.LT.0.)FPG=FPG+65536.A!C FPG=FLOAT(IHASH)*FLOAT(IPM)/FPGN C IPAG=FPGC IPAG=MOD(IPAG,IPM) C IPAG=IPAG+1RCC IPAG=1+(IHASH*IPM)/RRCLC3403 CONTINUEC IF(IPAG.LE.0)IPAG=1C IF(MPAG.EQ.0)MPAG=IPAGT=CC THE ABOVE ACCOUNTS FOR MEMORY FREE... WE TREAT FILE AS IPMAECC "PAGES" THE SIZE OF THE MEMORY AREA EACH. THIS MAKES IT RELATIVELYDDCC EASY TO ALTER THE PROGRAM TO HANDLE MORE MEMORY TO THE EXTENT THECC COMPILER AND MACHINE ALLOW."C IF(IPAG.EQ.MPAG)GOTO 1000#C IF(IPGMAX.LE.(LVBF/100))GOTO 1000-FCC IF HERE, WE NEED A PAGE NOT IN MEMORY. SWAP THE CURRENT MEMORY PAGE(CC TO DISK AND BRING IN THE ONE DESIRED.3CC FILES ARE OPENED ALREADY HERE... USE LUN 9 HERE.C IRCLO=(MPAG-1)*IBF+1RC IRCHI=MPAG*IBF C L=1C DO 500 N=IRCLO,IRCHIC IF(MPMOD.EQ.0)GOTO 500C LLL=L+49C N4=NC N44=1+((N4-1)*125)C KNKK=1+(L-1)*5 C KNKK2=LLL*5 C DO 801 K=KNKK,KNKK2BC N4=K-1 C N4=N4+N44C801 QVDAT1(N4)=LVALB1(K)O5Cc WRITE(9'N)((LVALBF(KKK,K),KKK=1,5),K=L,LLL)AC L=L+50 C500 CONTINUET C MPMOD=0 3CC THIS ONLY READS, SO NEVER SET MPMOD=1 IN XVBLGT.O8CC ON THE CONTRARY, SPECIFY IT AS UNTOUCHED AS YET HERE.C MPAG=IPAGHCC NOW READ IN THE DESIRED RECORD, HAVING SET THE DESIRED IN-MEMORY FLAGC IRCLO=(MPAG-1)*IBF+1AC IRCHI=MPAG*IBFL C L=1C DO 501 N=IRCLO,IRCHIGC LLL=L+49UC N4=NC N44=1+((N4-1)*125)C KNKK=1+(L-1)*5 C KNKK2=LLL*5OC DO 802 K=KNKK,KNKK2C N4=K-1 C N4=N4+N44 C802 LVALB1(K)=QVDAT1(N4)4CC READ(9'N)((LVALBF(KKK,K),KKK=1,5),K=L,LLL)C L=L+50IC501 CONTINUE2C1000 CONTINUET@CC NOW THE PAGE NEEDED IS IN MEMORY (OR MAY HAVE BEEN ALL ALONG)'CC SET THE VALUE INTO IT AS REQUIRED...BLCC NOW START LOOKING AT HASH ADDRESS FOR VARIABLE...LINEAR SEARCH AFTERWARDSC IH1=JHASH-1C DO 2 N=JHASH,LVBFC NN=N C IF(LVALBF(1,N).EQ.-1)GOTO 3332$C IF(LVALBF(1,N).EQ.ID)GOTO 4C2 CONTINUENC IF(IH1.LT.1)RETURNC DO 3 N=1,IH1 6CC LOOK BEFORE THE HASHCODE IF NO FREE CELLS AFTER IT.C NN=N C IF(LVALBF(1,N).EQ.-1)GOTO 3332$C IF(LVALBF(1,N).EQ.ID)GOTO 4C3 CONTINUE* C3332 XX=0. C RETURNR'CC RETURN IF CAN'T FIND VALUE...TOO BAD FCC NOTE WE ALSO RETURN INSTANTLY IF WE SEE A VIRGIN CELL SINCE WE KNOW'CC THE REAL VALUE CANNOT LIE BEYOND IT. C4 CONTINUE2CC GET VALUE AS 4 16-BIT WORDSC DO 5 M=1,4NC5 LL(M)=LVALBF(M+1,NN)AC XX=XAC RETURNT END 00bag`^YTADATADATADATADATADATA SUBROUTINE XQTCMD(ICODE)#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY. C SPREAD SHEET COMMAND PROCESSORHC Created as a gift to the world by G. Everhart because our installation*C can't affort $4000 for a commercial one. INCLUDE 'VKLUGPRM.FTN'C PARAMETER RRW = 32&C PARAMETER RCL = 32 ! REAL ROWS, COLSC PARAMETER DRW = 8-C PARAMETER DCL = 8 ! DISPLAY MAX ROWS, COLS.C PARAMETER RRCL = 1024C PARAMETER RRCL=RRW*RCLG PARAMETER CUP = 1, CUU = 2, CUD = 3, CUF = 4, CUB = 5, DECDWL = 6G $, DECDHL = 7, DECRC = 8, DECSC = 9, DECSWL = 10, ED = 11, EL = 12A $, SGR = 13, NEL = 14, SCS = 15, SM = 16, RM = 17, ANSI = 18=C NOTE: THROUGHOUT, ROWS ARE ACTUALLY DOWN, COLUMNS ACROSS ONAC SCREEN. ROW 0 IN DISPLAY IS THE 27 ACCUMULATORS A-Z AND %, WITH>C % BEING THE LAST-COMPUTED VALUE FROM THE CALC PROGRAM, WHICHAC KNOWS HOW TO ACCESS THE DATA BUT IS JUST PASSED COMMAND STRINGS C FROM THE DISK BASED FILE HERE. LOGICAL*1 FORM,FVLD,CMDLIN(132) INTEGER*2 RRWACT,RCLACT,FOOBAR COMMON/FOOBAR/FOOBAR COMMON/RCLACT/RRWACT,RCLACT INTEGER*4 VNLT( LOGICAL*1 LET1,LET2,FORM2(128),NMSH(80) COMMON/NMSH/NMSH REAL*8 XVBLS(RRWP,RCLP) INTEGER KPYBAK INTEGER*2 IOLVL,JMVFG,JMVOLD INTEGER*4 JVBLS(2,RRWP,RCLP) COMMON/IOLVL/IOLVLDC IOLVL IS LUN FOR XQTCMD TO USE (NORMALLY 3 FOR INDIRECT FILES OR 5?C FOR TERMINAL. WE USE 5,6 FOR TERMINAL INPUT, OUTPUT NORMALLY.?C PUT JMVFG INTO A PSECT BY ITSELF SO IT WILL SURVIVE OVERLAYS. COMMON/FUBAR/JMVFG,JMVOLD$ DIMENSION FORM(128),FVLD(RRWP,RCLP) LOGICAL*1 DFE,FVWRK,FVWRK2 DIMENSION DFE(12)AC FVLD FLAG 0 = NO FORMULA, -1= DISPLAY FORMULA ITSELF, NOT VALUE=C 1=VALID ACTIVE FORMULA THERE TO EVALUATE. INITIALLY ALL 0'SC SO INITIALLY IGNORE.?C FVLD=2 = CONST NUMERIC ONLY, COMPUTED. =3, CONST, NEEDS CALC.CDC ROUTINE IN2AS COMPUTES ASCII CHARACTER NAMES OF SUBSCRIPTS IN1,IN2=C SO DISPLAY CAN HAVE THEM. IT MUST BE THE INVERSE OF VARSCN.5 INTEGER*2 IDOL1,IDOL2,IDOL3,IDOL4,IDOL5,IDOL6,IDOL7, 1 IDOL88 COMMON/DOLLR/IDOL1,IDOL2,IDOL3,IDOL4,IDOL5,IDOL6,IDOL7, 1 IDOL8( INTEGER*2 PROW,PCOL,DROW,DCOL,DRWV,DCLV INTEGER*2 LLCMD,LLDSP6 COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRWV,DCLV,LLCMD,LLDSP( DIMENSION NRDSP(DRW,DCL),NCDSP(DRW,DCL) COMMON/D2R/NRDSP,NCDSP% INTEGER*2 ILNFG,ILNCT,RCF,NCEL,NXINI COMMON/NCEL/NCEL,NXINI LOGICAL*1 ILINE(106) COMMON/ILN/ILNFG,ILNCT,ILINE INTEGER*2 IC1POS,IC2POS COMMON/ICPOS/IC1POS,IC2POS LOGICAL*1 OARRY(100) INTEGER*2 OSWIT,OCNTR COMMON/OAR/OSWIT,OCNTR,OARRY+C COMMON OAR SWITCHES OUTPUT OFF IF OSWIT=2" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9)) LOGICAL*1 AVBLS(20,27),VBLS(8,RRWP,RCLP) LOGICAL*1 FVLDTP REAL*8 XAC,ZAC/ EQUIVALENCE(XAC,AVBLS(1,27)),(ZAC,AVBLS(1,26)) REAL*8 XXAC,XYAC1 EQUIVALENCE(XXAC,AVBLS(1,24)),(XYAC,AVBLS(1,25)) LOGICAL*1 ARGSTR(52,4) COMMON/ARGSTR/ARGSTR&C EQUIVALENCE(ARGSTR(1,1),VBLS(1,1,1))<C USE VBLS ENTRIES THAT WOULD CORRESPOND TO THE UNUSED SPACE>C IN VBLS ARRAY FOR ACCUMULATORS A-Z TO HOLD UP TO 4 ARGUMENTS<C FROM A COMMAND < WHICH READS IN SPACE-DELIMITED ARGUMENTS.4C THIS WILL ALLOW INTERACTIVE ENTRY OF DATA AND AUTO1C SUBSTITUTION OF ARGUMENTS VIA THE EDit COMMAND.$ EQUIVALENCE(XVBLS(1,1),VBLS(1,1,1))% EQUIVALENCE(JVBLS(1,1,1),XVBLS(1,1)) COMMON/V/TYPE,AVBLS,VBLS,VLEN COMMON/KLVL/KLVL INTEGER*2 MODPUB,LIMODE COMMON/MODPUB/MODPUB,LIMODE LOGICAL*1 DEFVB(12) COMMON/DEFVBX/DEFVB0 INTEGER*2 FORMFG,RCFGX,PZAP,RCONE,RCMODE,IRCE1, 1 IRCE22 COMMON/FFGG/FORMFG,RCFGX,PZAP,RCONE,RCMODE,IRCE1, 1 IRCE2?C PZAP CONTROLS WHETHER TO REDRAW SCREEN. IF ZERO, NORMAL. IF 1>C (NONZERO ANYHOW), INHIBITS RE DISPLAY. V COMMAND RESETS TO 0 C AND VM INHIBITS. (SETS TO 1).CCC DISPLAY ARRAY WILL KEEP A COPY OF VARIABLES DISPLAYED AND FORMATSAC USED LOCALLY WHICH DISPLAY ROUTINE CAN USE TO SEE WHAT ACTUALLYBC NEEDS TO BE REFRESHED ON SCREEN. DRWV AND DCLV ARE COLS, ROWS OF#C DISPLAY ACTUALLY USE00ja1a^[Z[[[\[}D FOR SCREEN. INTEGER*2 CWIDS(DRW)HC CWIDS IS WIDTHS IN CHARACTERS OF COLUMNS ON DISPLAY. NOTE THAT BECAUSEHC OF PECULIAR INVERSION WHICH I AM TOO LAZY TO CORRECT IT IS DIMENSIONEDC AS DRW NOT DCL. REAL*8 DVS(DRW,DCL) INTEGER*4 LDVS(2,DRW,DCL)" EQUIVALENCE(LDVS(1,1,1),DVS(1,1)) COMMON /FVLDC/FVLDC LOGICAL*1 DFMTS(10,DRW,DCL)C 10 CHARACTERS PER ENTRY. COMMON/DSPCMN/DVS,CWIDS)C THISRW,THISCL = CURRENT DISPLAYED LOCS. INTEGER*2 THISRW,THISCLC LOGICAL*1 IBITMP(BRRCL)C COMMON/INITD/IBITMP:C FOLLOWING COMMON IS TO CONTROL "EXTERNAL" CALL OF XQTCMD!C TO ALLOW USE FROM INSIDE CELLS. LOGICAL*1 XTNCMD(80) INTEGER*2 XTCFG,XTNCNT,IPSET& COMMON/XCMD/XTNCNT,XTNCMD,XTCFG,IPSET INTEGER*2 NULAST,LFVD COMMON/NULXXX/NULAST,LFVD logical*1 blanks dimension blanks(30) data blanks/30*32/C OSWIT=2-C ISSUE A PROMPT FOR COMMAND AND DO A COMMANDCC COMMANDS INCLUDE:C E = ENTER NUMBERS OR FORMULAS(C M = MOVE DIRECTION (1,2,3,4 = U,D,L,R)$C D = DISPLAY CHARACTERISTIC CHANGESCC DISPLAY ALTERING SUBCOMMANDS:BC DL V1:V2 RN:M OR CN:M - DISPLAY VARIABLE RANGE V1:V2 AT DISPLAYC ROW OR COL N THRU M.CC RN:M MEANS ACROSS A ROW ON DISPLAY STARTING AT DISPLAY COORD N,MAC CN:M MEANS DOWN A DISPLAY COLUMN STARTING AT DISPLAY COORD N,MC DF V1:V2 [FORMAT]BC SET FORMAT FOR DISPLAY OF V1 THRU V2 TO [FORMAT] (NOT INCL. [])@C A OR L DESIGNATOR SAYS SHOW TEXT IN FORMULA BUFFER. ELSE SHOWC NUMBER VALUE AT THAT LOC.DC DT V1:V2 F OR I - SET NUMERIC TYPE OF V1 THRU V2 TO FLOAT OR INT.0C DW N,M - SET WIDTH OF COL. N TO M CHARS WIDE.1C DB MC,MR - SET MAX COLS TO MC, MAX ROWS TO MR.C;C V = VIEWSCREEN UPDATE. REDISPLAY EVERYTHING FROM SCRATCH.*C VF = VIEW BUT DISPLAY FORMULAS ALL LOCS.2C VM = DISABLE REDRAWING SCREEN UNTIL A V IS SEEN.@C C = COPY NUMBERS/FORMULAS/DISPLAY STUFF(FORMAT)/ALL/RELOCATING4C 1,2,3,4 = MOVE CURSOR UP,DOWN,LEFT,RIGHT 1 ROW/COL>C (THESE DO NOT INVALIDATE CALCULATION SO RECALCULATION IS NOTC DONE FOR THESE COMMANDS.)BC F FILENAME/NNN FILL SCREEN (DISPLAYED PART ONLY) FROM FILENAME,BC SKIPPING NNN RECORDS FIRST IF CALLED FOR. /NNN PART OPTIONAL.=C (SPLITS STUFF READ IN ACROSS COLUMNS CURRENTLY DEFINED AND+C SETS FVLD FOR DISPLAY OF TEXT, NOT #S.)CC A[R/A] n [R/C] ADDS/SUBTRACTS (INSERTS/DELETES) n ROWS OR COLUMNS:C AT CURENT LOCATION. AR/AA SELECTS RELOCATING/ABSOLUTE.BC R = RECALCULATE SHEET. RM = RECALCULATE MANUALLY ONLY (R RESETS)5C K = DROP INTO CALC CALCULATOR (*E RETURNS TO SHEET)/C L = LOCATE CURSOR (MOVE TO POSITION ON SHEET)?C (L VARIABLE IS THE COMMAND, AND IT LOCATES ORIGIN ON PHYSICAL?C SHEET. WILL ALSO MOVE CURSOR ON DISPLAY SHEET IF THAT CELL IS8C DISPLAYED, BUT OTHERWISE DOES NOT DISPLAY THE NUMBER.))C Z = ZERO FORMULA/NUMBERS (OR ALL SHEET)%C ZERO VARIABLE ZEROES THAT VARIABLE:C ZERO VARIABLE1:VARIABLE2 ZEROES THAT RANGE (ROW OR COL)"C ZERO * ZEROES ALL OF THE SHEET.C X = EXIT (RETURNS TO OS)DC P = PUT NUMBERS TO FILE. ALWAYS GENERATES P#+nn#+mm forms based onC current location.HC G = GET NUMBERS OUT OF FILE. USES CURRENT ORIGIN FROM L COMMAND OR 1,1+C TO ENTER NUMBERS (ALLOWS COMBINING DATA).CC W = WRITE SCREEN ON PRINTER (HARDCOPY FORMAT APPROX. AS DISPLAY.)>C OA VARIABLE = SET ORIGIN OF DISPLAY SHEET TO VARIABLE LOC INEC PHYSICAL SHEET (CLAMPED TO MAX. SIZE OF SHEET). STARTS AT R1,C1 OFC DISPLAY SHEET.CC OR VARIABLE = SET ORIGIN OF DISPLAY SHEET TO LOC'N OF VARIABLE INEC PHYSICAL SHEET. MODIFIES DISPLAY SHEET STARTING AT CURRENT DISPLAYC LOCATION RATHER THAN AT 1,1.C 4C NOTE THAT N-ARY FUNCTIONS ARE FNAME[ARGS,ARGS,...]>C AND RANGES ARE CELL1:CELLN. MULTIPLE COMMANDS IN FORMULA AREC DELIMITED BY \ CHARACTER.CC RETURN CODES:FC IF ICODE=1, COMMAND JUST MOVES ON DISPLAY, SO NO NEED TO RECALCULATEC THE ENTIRE SHEET.-C ICODE =-1 ==> REINITIALIZE DISPLAY DEFAULTS#C ICODE =2 ==> REDRAW WHOLE SCREEN,C ICODE =-2 ==> NEW SPREAD SHEET FILE SETUP.C OTHER: ALL OK. 498 CONTINUE KLVL=1 ICODE=3%C DEFAULT RETURN CODE SAYING ALL WELL00rag`^YTADATADATADATADATADATA-C FIRST DISPLAY CURRENT CELL AGAIN IN NORMAL. THISRW=DROW THISCL=DCOL FORM(1)=0JC GET IN THE CURRENT FORMAT WHEREVER WE ARE, EVEN IF NOT ON DISPLAY SHEET.C IRRX=(PCOL-1)*RRW+PROW CALL REFLEC(PCOL,PROW,IRRX) CALL WRKFIL(IRRX,FORM,0)C READ(7'IRRX)FORM' IF(THISRW.LE.0.OR.THISCL.LE.0)GOTO 200 N1=NRDSP(THISRW,THISCL) N2=NCDSP(THISRW,THISCL) IXLSTC=THISCL IXLSTR=THISRW- IF(THISCL.GT.DCLV.OR.THISRW.GT.DRWV)GOTO 200AC REDRAW LAST DISPLAYED CELL IN NORMAL (I.E., NOT REVERSE) VIDEO.C IF(FVLD(N1,N2).EQ.0)GOTO 200>C ONLY REDRAW NUMBERS. DIRECT DISPLAY OR NOTHING GETS IGNORED. J=8C IRRX=(N2-1)*RRW+N1 CALL REFLEC(N2,N1,IRRX)C ADD 6 COLS FOR LABELS DO 1 M1=1,DROWC FIND DISPLAY COLUMN TO USE1 J=J+CWIDS(M1) J=J-CWIDS(DROW)(C USE THISCL+1 TO LET 1ST ROW BE LABELS. ICCC=THISCL+2 C JVTINC = 1 IF VT100, 0 IF VT52HC SAVE PHYS COORDS BEING DISPLAYED NEXT. FVLD CAN BE TESTED FOR NUMERICS(C DIRECTLY, IF UVT100 NEEDS THAT ACCESS. IC1POS=N1 IC2POS=N2 IF(PZAP.NE.0)GOTO 3607= CALL UVT100(CUP,ICCC,J+JVTINC) !SELECT ROW "THISCL", COL "J" CALL UVT100(SGR,7) CALL FVLDGT(N1,N2,FVLD(1,1)) ivv=min0(30,cwids(DROW)):c reset blanks to be sure we write something even for vt52 blanks(1)='>'5 IF(FVLD(1,1).EQ.0)WRITE(6,5538)(blanks(iv),iv=1,ivv) blanks(1)=325538 FORMAT(30a1) 3607 CONTINUE0C WE CAN BE SURE THE COLUMN IS 3 WIDE OR MORE... CALL FVLDGT(N1,N2,FVLDTP) IF(FVLDTP.EQ.0)GOTO 200C IRRX=(N2-1)*RRW+N1C SELECT REVERSE VIDEO DO 5540 KKKK=1,1005540 CMDLIN(KKKK)=32 CALL WRKFIL(IRRX,FORM,0)C READ(7'IRRX)FORM IF(FORM(120).LE.0)GOTO 200 IF(FVLDTP.LT.0.OR.FORMFG.NE.0)2 1 ENCODE(100,8201,CMDLIN)(FORM(II),II=1,100)8201 FORMAT(128A1) IF(FORMFG.NE.0)GOTO 4320 DO 6301 KKK=1,9 KKKK=FORM(KKK+119)C KKKK=DFMTS(KKK,THISRW,THISCL)6301 DFE(KKK+1)=MAX0(32,KKKK) DFE(11)=32C 32 = ASCII SPACE DFE(1)='(' DFE(12)=')' CALL TYPGET(N1,N2,TYPE(1,1))# IF(TYPE(1,1).EQ.2.AND.FVLDTP.GT.0)9 1 ENCODE(100,DFE,CMDLIN,ERR=4320)DVS(THISRW,THISCL)# IF(TYPE(1,1).NE.2.AND.FVLDTP.GT.0)< 1 ENCODE(100,DFE,CMDLIN,ERR=4320)LDVS(1,THISRW,THISCL)+C REDRAW THIS COL. WITH REVERSE VIDEO HERE.>4320 IF(PZAP.EQ.0)WRITE(6,9000)(CMDLIN(II),II=1,CWIDS(THISRW))9000 FORMAT(128A1) IF(PZAP.EQ.0)CALL UVT100(SGR,0)3C NOTE THIS REDRAWS PREVIOUS COL. IN REVERSE VIDEO.C NO CARRIAGE CTL 200 CONTINUE IF(PZAP.NE.0)GOTO 3608 KKKK=FVLDTP9 IF(NULAST.EQ.NCEL.AND.FVLDTP.EQ.0.AND.LFVD.EQ.0)GOTO 222 CALL UVT100(CUP,LLDSP,1) CALL UVT100(EL,2) IF(FORM(1).LE.0)GOTO 222(9092 FORMAT(I5,' Used. Curr=',64A1,50A1)& WRITE(6,9092)NCEL,(FORM(II),II=1,109)C3608 CONTINUE222 CALL UVT100(CUP,LLCMD,1)CC REMEMBER LAST DISPLAY ROW STUFF SO WE UPDATE ONLY WHEN SOME PRINTC STUFF HAS TO CHANGE. NULAST=NCEL LFVD=KKKK CALL UVT100(EL,2),C NOTE PROW IS ACROSS TOP, PCOL IS DOWN SIDEC PROW GOES AS ID1, ALPHASC PCOL GOES AS ID2, NUMERICS CALL IN2AS(PROW,FORM)NC NOTE PCOL STARTS AT 2 FOR NORMAL SHEET VARIABLES. PCOL=1 IS FOR ACCUMULATORS CALL UVT100(SGR,0) KKKKKK=62 IF(MODPUB.EQ.1)KKKKKK=58&C 62 IS > CHARACTER. 58 IS : CHARACTER1C PROVIDE A FLAG OF WHICH MODE WE'RE IN FOR USERS4 WRITE(6,9001,ERR=3608)(FORM(I),I=1,4),PCOL-1,KKKKKK9001 FORMAT(4A1,I5,1A1) 3608 CONTINUE ISCANX=0 IF(XTCFG.NE.0)GOTO 3870 IF(IOLVL.NE.5.OR.FOOBAR.NE.0)/ 1 READ(IOLVL,9002,END=510,ERR=510)CMDLINFC FOR READING THE CONSOLE, WE NEED A QIO$ TO CAPTURE ESCAPE SEQUENCES.2 IF(IOLVL.EQ.5.AND.FOOBAR.EQ.0)CALL GETTTL(CMDLIN)%C FURTHER MUNGES FOR COMMAND LANGUAGE CALL GTMUNG(CMDLIN) GOTO 3871 3870 CONTINUE XTCFG=0 DO 3872 I=1,XTNCNT CMDLIN(I)=XTNCMD(I) 3872 CONTINUEBC COPY IN EXTERNAL COMMAND AND LET IT BE EXECUTED. IT'S THE USER'S8C PROBLEM IF THE COMMAND REQUIRES STILL FURTHER INPUT...?C ALSO NULL OUT SOME DELIMITER CHARS AFTER THE COMMAND READ IN. CMDLIN(XTNCNT+1)=0 CMDLIN(XTNCNT+2)=0 3871 CONTINUE9002 FORMAT(132A1) CMDLIN(132)=0 CMDLIN(131)=0 CMDLIN(130)=0-C SAVE CURRENT PHYS ROW, COL IN AC'S X AND Y XXAC=00za1a^[Z[[[\[}PROW XYAC=PCOL7C ZAP IN SPECIAL FUNCTION KEY REPLIES INTO NORMAL FORMS CALL CMDMUN(CMDLIN) DO 9048 I=1,129 K=130-I=C START AT BACK OF LINE AND ZAP WHITESPACE BY NULL TERMINATOR IF(CMDLIN(K).GT.32)GOTO 9049 CMDLIN(K)=0+C ALSO GET RID OF POSSIBLE TRAILING CR, LF. 9048 CONTINUE 9049 CONTINUEC*C THIS GETS COMMAND LINE IN. NOW ACTON IT.C REPOS'N TO OLD LINE NOW. CALL UVT100(CUP,LLCMD,1)C=C THE FOLLOWING SECTION IMPLEMENTS THE ADDITIONAL FUNCTION OFAC JOURNALING: (DONE ON VAX ONLY SINCE SPACE REQUIREMENTS FOR FILE*C OPERATIONS MAY BE A PROBLEM ON PDP11'S)./C Command +J FILENAME will record all remaining?C line inputs at this point in it. (Assumes JNLFLG=0 initially)!C Command +N closes journal file. K=K+1: IF(CMDLIN(1).EQ.'+'.AND.CMDLIN(2).EQ.'J'.AND.JNLFLG.NE.1) 1 GOTO 42903 IF(CMDLIN(1).EQ.'+'.AND.CMDLIN(2).EQ.'N')GOTO 42921 IF(JNLFLG.EQ.1)WRITE(10,9002)(CMDLIN(IV),IV=1,K) GOTO 4291 4292 CONTINUE CLOSE(UNIT=10) JNLFLG=0 GOTO 9990 4290 CONTINUE JNLFLG=1;C USE WHATEVER FILE NAME THE USER HAS SUPPLIED AFTER THE +J7C FOR FILE TO JOURNAL ONTO. (NO MORE QUESTIONS NEEDED.) CALL ASSIGN(10,CMDLIN(3)) GOTO 9990 4291 CONTINUECC7C ALLOW COMMENTS IF LINE BEGINS WITH * (JUST LIKE CALC) IF(CMDLIN(1).NE.'*')GOTO 6002 ICODE=1 GOTO 9990 6002 CONTINUEC IF(CMDLIN(1).EQ.'*')GOTO 9990CC * NEW ****************FC ADD PLACE TO PUT IN USER COMMANDS. DEFAULT IS NONE EXIST, DO NOTHING IGOTIT=0! CALL USRCMD(CMDLIN,ICODE,IGOTIT)MC WHEN WE GET A COMMAND, SET IGOTIT TO 1 AND WE THEN PROCESS COMMAND NORMALLY IF(IGOTIT.EQ.1)GOTO 9990C * NEW ****************C1C COMMAND -PROMPT WILL READ FROM LUN 5 TO ARGSTRC TERMINATING WITH SPACES. IF(CMDLIN(1).NE.'-')GOTO 350 ICODE=1 CALL UVT100(CUP,LLCMD,1) CALL UVT100(EL,2)" WRITE(6,9000)(CMDLIN(IV),IV=2,50)" READ(5,9000,END=510,ERR=510)FORM2 II=1 KK=1 DO 351 KKK=1,1285C LOAD UP OUR ARGUMENTS IN ARGSTR(N,1) TO ARGSTR(N,4) ARGSTR(KK,II)=FORM2(KKK) KK=KK+1 ARGSTR(KK,II)=0 IF(KK.LT.52)GOTO 352354 KK=1 II=II+1 IF(II.GT.4)GOTO 353 352 CONTINUE IF(FORM2(KKK).GT.32)GOTO 3514C ON SPACE, GO TO THE NEXT ARGUMENT. ALSO SPILL INTO=C THE NEXT ARGUMENT IF WE SEE NO SPACES AND JUST TRAIL ALONG. GOTO 354 351 CONTINUE 353 GOTO 9990 350 CONTINUECAC CONTROL SCROLLING. PERMIT THE COMMAND "SC" TO TURN SCROLLING ONC AND "NS" TO TURN IT BACK OFF. IVV=-1/ IF(CMDLIN(1).EQ.'S'.AND.CMDLIN(2).EQ.'C')IVV=1/ IF(CMDLIN(1).EQ.'N'.AND.CMDLIN(2).EQ.'S')IVV=0 IF(IVV.GE.0)IDOL7=IVV IF(IVV.GE.0)ICODE=5 IF(IVV.GE.0)GOTO 9990C4C ALLOW PROGRAMMED "REWIND" OF INPUT COMMAND LINE ON6C COMMAND LINE BEGINNING WITH "<". MAKE IT CONDITIONAL1C BY SAYING THAT IF % IS NEGATIVE WE WON'T DO IT. IF(CMDLIN(1).NE.'<')GOTO 356 ICODE=5 IF(XAC.GT.0.)REWIND IOLVL GOTO 9990 356 CONTINUEC7C HANDLE @FILE COMAND TO CHANGE TO INPUT OFF THAT FILE. IF(CMDLIN(1).NE.'@')GOTO 511(C WOW, A FILE. (OR AT LEAST SO WE HOPE). CLOSE(UNIT=3)-C CLOSE LUN 3 (OR NOTHING IF IT WAS NOT OPEN)C ***C NOW OPEN NEW LUN 3...2 OPEN(UNIT=3,FILE=CMDLIN(2),READONLY,STATUS='OLD', 1 ERR=510)C CALL ASSIGN(3,CMDLIN(2))AC USE FACT THAT WE JUST NULL TERMINATED THE FILENAME PART AND SETC IT TO BE LUN 3. IOLVL=3FC NOW GO BACK FOR ANOTHER COMMAND...NO SENSE WASTING RECALC TIME SINCE"C NOTHING HAS REALLY HAPPENED YET.DC NOTE EVERY READ TO LUN 3 HAS EOF/ERROR CHECK TO GO TO 510 TO RESET/C TO LUN 5 INPUT AND CLOSE FILE WE OPENED ON 3. GOTO 498 511 CONTINUEC)C AA n R, AA n C, AR n R, AR n C COMMANDSC2 IF(CMDLIN(1).NE.'O'.OR.CMDLIN(2).NE.'V')GOTO 6887C OV + TURNS ON OVERRIDEC OV - TURNS OFF OVERRIDE6C ALLOWS ONE TO OVERRIDE $ SIGN FORMS' ABSOLUTE NATURE0 IF(CMDLIN(3).EQ.'+'.OR.CMDLIN(4).EQ.'+')IDOL3=10 IF(CMDLIN(3).EQ.'-'.OR.CMDLIN(4).EQ.'-')IDOL3=0 GOTO 9990 6887 CONTINUE IF(CMDLIN(1).NE.'A')GOTO 8845GC ADD ROWS OR COLUMNS (OR REMOVE THEM) AT THE CURRENT PHYSICAL LOCATIONFC WHERE AA MEANS ADD ABSOLUTE (NO RELOCATION), AR MEANS ADD RELO00ag`^YTADATADATADATADATADATACATINGFC (RELOCATE ALL VARIABLES BELOW), AND R OR C SAYS TO ADD/SEBTRACT ROWS C OR COLUMNS.ACN.C FIRST COLLECT THE ARGUMENTS TO THE FUNCTION. KM1=3 KM2=10E CALL GN(KM1,KM2,ICNT,CMDLIN)SEC GETS THE NUMBER. IF NO NUMBER SEEN OR ZERO, RETURNS 0. IGNORE THEN.  IF(ICNT.EQ.0)GOTO 9990 ICR=0C LOOK FOR THE R OR Ce=C START AT CMDLIN(4) TO PASS THE AR/AA AND THE NUMBER IF ANY.A DO 8844 KKK=4,50R IF(CMDLIN(KKK).EQ.'R')ICR=1 IF(CMDLIN(KKK).EQ.'C')ICR=2 IF(ICR.NE.0)GOTO 88461C SKIP OUT ON FIRST ROW OR COLUMN DESIGNATOR SEENL 8844 CONTINUEE 8846 CONTINUE= IF(ICR.EQ.0)GOTO 9990 ICODE=2AC NOW WE HAVE ALL ARGUMENTS. SET UP FOR THE COPY AND PARASITE THE @C LOGIC USED FOR THE CA OR CR COMMANDS. (NOTE THAT 2ND CHARACTERCC IS A OR R IN CMDLIN ALREADY SO THOSE COMMANDS' LOGIC WILL BE OK.) JRTR=PROW JRTC=PCOL IF(ICR.EQ.2)JRTC=1  IF(ICR.EQ.1)JRTR=1N.C RELOC THESHOLD IS PHYSICAL CURRENT POSITION. IF(ICR.EQ.1)GOTO 8843C INSERT OR DELETE COLUMNS7C FIRST FIGURE OUT HOW MANY COLUMNS MUST BE MOVED RIGHTS KD=RRW-PROW-IABS(ICNT)+1L IF(KD.LE.0)GOTO 9990)+C CAN'T MOVE 0 COLUMNS. DOESN'T MAKE SENSE.O DO 8842 KR=1,KD IRA=RRW-KR+1C)C IRA IS DESTINATION COLUMN IN EACH LOOP., IF(ICNT.LT.0)IRA=PROW-1+KRMC IRS IS SOURCE COLUMN IRS=RRW-KR+1-ICNT IF(ICNT.LT.0)IRS=PROW+KR-ICNT-1CG5C IF DELETING COLUMNS AND DESTINATION IS PAST CURRENT/CC ACTIVE MAX, SKIP THE MOVE SINCE WE'RE NOT ACCOMPLISHING ANYTHING.E) IF(ICNT.LT.0.AND.IRA.GT.RRWACT)GOTO 8842I>C IF ADDING COLUMNS AND SOURCE IS PAST CURRENT MAX ACTIVE THEN'C WE'RE DOING NOTHING, SO SKIP THE WORKU) IF(ICNT.GT.0.AND.IRS.GT.RRWACT)GOTO 8842( JDELT=RCLACTG C JDELT=RCLWEC LOOP WE'LL CALL IS OVER ENTIRE ROWS, BUT ONLY DO ONE AT A TIME HERE JD1A=IRAE JD1B=1A ID1A=IRSA ID2A=1E I1IN=0T I2IN=1V JIN1=0N JIN2=1L ASSIGN 8840 TO KPYBAK7C CALL INTERNAL COPY-RANGE PROCEDURE INSIDE CA/CR LOGICT GOTO 8364 8840 CONTINUEN 8842 CONTINUESCC=C NOW CLEAN UP THE REST OF FORMULAS IF THERE ARE ANY TO DO... 0C MUST RELOCATE OTHER FORMULAE IF CMDLIN(2) IS R KX=PROW-13C RELY ON RCLACT HAVING BEEN UPDATED TO REFLECT NEWCC ADDITIONS IF ANY KY=RCLACTC KY=RCL#C RELOCATE UPPER LEFT PART OF SHEETRAC NOTE II1,II2,JJ1,JJ2,JRTR,JRTC ARE UNCHANGED FROM PRIOR CALL SOCBC MAY BE USED... RELVBL ONLY CARES ABOUT RELATIVE MOTION ANYHOW... 3600 CONTINUEC4 IF(CMDLIN(2).NE.'R'.OR.KX.LE.0.OR.KY.LE.0)GOTO 9990 DO 3601 KK=1,KX DO 3601 KK2=1,KYN CALL FVLDGT(KK,KK2,FVLD(1,1)) IF(FVLD(1,1).NE.1)GOTO 3601=C ONLY RELOCATE FORMULAS, NOT TEXT OR NUMBERS (OR EMPTIES...)1C IRX=(KK2-1)*RRW+KK CALL REFLEC(KK2,KK,IRX) CALL WRKFIL(IRX,FORM,0)C READ(7'IRX)FORMU2 CALL RELVBL(FORM,FORM2,II1,II2,JJ1,JJ2,JRTR,JRTC) CALL WRKFIL(IRX,FORM2,1)7C WRITE(7'IRX)FORM2 3601 CONTINUET GOTO 9990 8843 CONTINUEVC ROW INSERT/DELETE)#C AGAIN FIND HOW MANY ROWS TO MOVE.A KD=RCL-PCOL-IABS(ICNT)+1( IF(KD.LE.0)GOTO 9990) DO 8839 KC=1,KD%C ICA = DESTINATION AND ICS IS SOURCEQ ICA=RCL-KC+1R ICS=RCL-KC+1-ICNT IF(ICNT.GT.0)GOTO 8838O ICA=PCOL-1+KC ICS=PCOL+KC-1-ICNT 8838 CONTINUEO;C IF INSERTING ROWS AND SRC ROW IS BEYOND ACTIVE AREA, SKIPD) IF(ICNT.GT.0.AND.ICS.GT.RCLACT)GOTO 8839.:C IF DELETING ROWS AND DST ROW IS BEYOND ACTIVE AREA, SKIP) IF(ICNT.LT.0.AND.ICA.GT.RCLACT)GOTO 8839DC NOW CALL COPY LOOP AGAIN.B JDELT=RRWACTU C JDELT=RRWS JD1A=1V JD1B=ICAC DEST ID1A=1B ID2A=ICSNC SOURCE I1IN=1 I2IN=0R JIN1=1, JIN2=0C ASSIGN 8836 TO KPYBAK2C CALL INTERNAL RANGE COPY PROCEDURE TO COPY A ROW GOTO 8364 8836 CONTINUEO 8839 CONTINUE, KX=RRWACTC KX=RRW KY=PCOL-1 GOTO 3600 8845 CONTINUE,EC OA AND OR COMMANDS. SET DISPLAY SHEET MAPPING TO ORIGIN AS FOUND BYRGC VARIABLE, STARTING AT 1,1 OR (DROW,DCOL) FOR OA AND OR RESPECTIVELY.T IF(CMDLIN(1).NE.'O')GOTO 650TC PROCESS COMMAND... LRO=1 LCO=1% IF(CMDLIN(2).EQ.'R')LRO=MAX0(1,DROW)M% IF(CMDLIN(2).EQ.'R')LCO=MAX0(1,DCOL)I LRO=MIN0(LRO,DRW-1) LCO=MIN0(LCO,DCL-1)9C NOW HAVE CORRECT ORIGIN IN DISPLAY SHEET TO USE SET UP. C GRAB VARIABLE ID00a1a^[Z[[[\[}.  LA=INDEX(CMDLIN,32) IF(LA.GT.20)LA=3W LE=40- CALL VARSCN(CMDLIN,LA,LE,LSTCX,ID1,ID2,IVLD)  IF(IVLD.EQ.0)GOTO 651;C NOW HAVE VARIABLE NAME AND LOCATION... CAN DO IT FINALLY.D=C NOTE WE'RE GUARANTEED WE START OFF IN BOUNDS BUT MUST CHECKR,C ALONG THE WAY TO BE SURE WE STAY THAT WAY. KKKK=0L8C ALLOW ORD OR OAD COMMANDS TO REPAINT WITH DISPLACEMENT4C KEEPING "WINDOW" STRUCTURE INTACT BUT MOVING IT... IQQ=0 IF(CMDLIN(3).NE.'D')GOTO 6712 7112 CONTINUE  KKKK=1 6712 CONTINUE KKKKK=NRDSP(LRO,LCO) KKKKKK=NCDSP(LRO,LCO) C IKR=DROW C IKC=DCOL,C IF(IQQ.EQ.0.AND.CMDLIN(2).EQ.'R')GOTO 5711#CC OA GETS DIFFERENT LIMITS FROM ORXC IKR=0NC IKC=1 5711 CONTINUEN-C IF(ID1.GT.(RRW-(DRWV-IKR)))ID1=RRW-DRWV+IKR+C IF(ID2.GT.(RCL-DCLV+IKC))ID2=RCL-DCLV+IKC DO 652 IRO=LRO,DRWV DO 653 ICO=LCO,DCLV*C HERE CAN SET UP NRDSP AND NCDSP SUITABLY&C NRDSP(IRO,ICO)=MIN0(ID1+IRO-LRO,RRW)&C NCDSP(IRO,ICO)=MIN0(ID2+ICO-LCO,RCL) IVV=IRO-LRO IVVV=ICO-LCO, IF(KKKK.EQ.0)GOTO 1653A IVV=NRDSP(IRO,ICO)-KKKKK IVVV=NCDSP(IRO,ICO)-KKKKKKN 1653 CONTINUEV NRDSP(IRO,ICO)=ID1+IVVV NCDSP(IRO,ICO)=ID2+IVVV 653 CONTINUE 652 CONTINUE$ IF(DROW.LE.0.OR.DCOL.LE.0)GOTO 3924 PROW=NRDSP(DROW,DCOL) PCOL=NCDSP(DROW,DCOL) 3924 CONTINUEYC FORCE REDRAW OF WHOLE SHEET.-C SKIP RECALC HOWEVER IF IN "OLD" NORMAL MODE  ICODE=6 IF(RCMODE.LE.0)GOTO 9990T ICODE=2 651 GOTO 9990I 650 CONTINUEC F FILENAME/NNNDC READ IN TEXT FROM FILE NAMED AND SPREAD ACROSS DISPLAY SCREEN. SET6C DISPLAYED SCREEN INTO FVLD(NN)=-1 TO SHOW TEXT ONLY. IF(CMDLIN(1).NE.'F')GOTO 1740 LA=INDEX(CMDLIN,32) C PASS SPACE LB=INDEX(CMDLIN(LA+1),'/') LB=LB+LAWC LB= LOC OF / CHARACTER LB=MIN0(80,LB)R IF(LB.LE.2)GOTO 1741 CMDLIN(LB)=0S CALL ASSIGN(4,CMDLIN(LA+1)),C THIS OUGHT TO OPEN THE FILE IF IT EXISTS..,C NOW IF THERE'S A NUMBER THERE, EXTRACT IT. LSKP=0 ! IF(LB.GT.78.OR.LB.LE.5)GOTO 1743R LAA=LB+1C LAAA=LB+7 CALL GN(LAA,LAAA,LSKP,CMDLIN) 1743 CONTINUE C NOW SKIP THE LINES IF(LSKP.LE.0)GOTO 1744A DO 1745 IV=1,LSKP$ READ(4,8201,END=1742,ERR=1742)FORM2 1745 CONTINUEN 1744 CONTINUE 'C NOW WE'RE READY TO READ IN THE STUFF.P ICODE=2 DO 1746 LA=1,DCLV DO 1751 IV=1,128E1751 FORM2(IV)=32L$ READ(4,8201,END=1742,ERR=1742)FORM2 IXC=0 DO 1747 LB=1,DRWVC DRWV = # ACROSS TOP... C DCLV=LENGTH  ID1=NRDSP(LB,LA)  ID2=NCDSP(LB,LA)A+C GET PHYSICAL SHEET COORDINATES AS ID1,ID2 -C MUST THEN COPY CWIDS(LB) CHARS ONTO FILE...P CALL FVLDST(ID1,ID2,-1)C FVLD(ID1,ID2)=-1C IRX=(ID2-1)*RRW+ID1V CALL REFLEC(ID2,ID1,IRX)  CALL WRKFIL(IRX,FORM,0)C READ(7'IRX)FORMI FORM(119)=-1 DO 1749 IVV=1,1101749 FORM(IVV)=0 DO 1748 IVV=1,CWIDS(LB) IXC=IXC+11748 FORM(IVV)=FORM2(IXC)  CALL WRKFIL(IRX,FORM,1)C WRITE(7'IRX)FORM 1747 CONTINUET 1746 CONTINUEI1742 CLOSE(UNIT=4)1741 GOTO 9990 1740 CONTINUEB IF(CMDLIN(1).NE.'E')GOTO 8000C ENTER COMMANDO0C EN expression. expression may be numbers/text. LA=INDEX(CMDLIN,32) LA=LA+1C SKIP SPACE AFTER "EN"m IF(LA.GT.4)LA=4 IF (LA.GE.100)GOTO 7901 LE=132-LA LE=MIN0(110,LE)C IRX=(PCOL-1)*RRW+PROW  CALL REFLEC(PCOL,PROW,IRX)LC FIND WHERE IN FILE TO STORE. CALL WRKFIL(IRX,FORM,0)C READ(7'IRX)FORM. IF(CMDLIN(2).EQ.'D')R7 1 CALL SED(CMDLIN(LA),FORM,FORM2,ARGSTR,ZAC,110) =C IF COMMAND IS "ED STRING1STRING2" THEN1>C SUBSTITUTE STRING2 FOR STRING1 IN FORMULA, RETURN IT TO THE C COMMAND LINE, AND REENTER IT.<C NOTE THAT THE STRINGS MAY CONTAIN &n FORMS WHERE 1-4 MEAN9C ENTERED ARGUMENTS 1-4, 5 TREATS XAC AS A NUMBER, AND 6-8C TREATS ZAC AS A SINGLE CHARACTER (ZAC IS VARIABLE Z). DO 5133 II=1,110E5133 FORM(II)=0U NALF=0  NSG=-1  NXNUM=3 KSG=0 N=1 IRCE1=PROW IRCE2=PCOL1. IF(CMDLIN(2).EQ.'"'.OR.CMDLIN(2).EQ.'T')KSG=1 IF(CMDLIN(2).EQ.'V')NSG=1C "ET" MEANS ENTER TEXTNC "EV" MEANS ENTER VALUE#C REGARDLESS OF FORMULA CONTENTS... 2097 CONTINUE= IF(N.GT.LE)GOTO 7902 C DO 7902 N=1,LE3C LOOK FOR ALPHAS. IF WE FIND ANY, FLAG NOT NUMERICL>C NOTE @ INCLUDED SINCE COUL00ag`^YTADATADATADATADATADATAD HAVE A *@3 COMMAND TO CALL 3.CMDC AND REFER TO OTHER CELLS.=C THIS IS A RESTRICTION: COMMANDS TO CMND NEED TO HAVE ALPHASW#C SOMEWHERE OR THIS WILL BE FOOLED. IF(CMDLIN(LA).EQ.'P'.AND. 1 CMDLIN(LA+1).EQ.'#'.AND. 2 CMDLIN(LA+2).EQ.'0'.AND. 3 CMDLIN(LA+3).EQ.'#'.AND.& 4 CMDLIN(LA+4).EQ.'0') GOTO 33563 IF(CMDLIN(LA).GE.'@'.AND.CMDLIN(LA).LE.'Z')NXNUM=1H 3356 CONTINUEL4C IF(CMDLIN(LA).GE.'@'.AND.CMDLIN(LA).LE.'Z')NXNUM=10 IF(CMDLIN(LA).EQ.'+'.OR.CMDLIN(LA).EQ.'-')NSG=10 IF(CMDLIN(LA).EQ.'['.OR.CMDLIN(LA).EQ.'.')NSG=1 IF(CMDLIN(LA).EQ.'(')NSG=1I IF(CMDLIN(LA).EQ.'"')KSG=1X<C ON SEEING THE _@V1,V2 CONSTRUCT, REPLACE WITH THE VARIABLE'C ADDRESSED BY V1,V2 (COL,ROW) BY NAME.L;C ON SEEING THE _#V1 CONSTRUCT, UNPACK UP TO 8 CHARS OUT OF19C REAL*8 VARIABLE (PACKED BY MULTIPLYING BY 128 EARLIER). :C IN EACH CASE, ADJUSTN AND LE TO CONTINUE APPROPRIATELY.2 IF(CMDLIN(LA).EQ.'_'.AND.CMDLIN(LA+1).EQ.'@')CALL! 1 SVBL(CMDLIN,LA,N,LE,FORM)I2 IF(CMDLIN(LA).EQ.'_'.AND.CMDLIN(LA+1).EQ.'#')CALL! 1 SSTR(CMDLIN,LA,N,LE,FORM)" FORM(N)=CMDLIN(LA)1 IF(CMDLIN(LA).GT.32)NALF=NALF+1 LA=LA+1@C FAKE OUT DO LOOP SINCE SVBL OR SSTR MAY MUNG INDICES INSIDE IT N=N+1 GOTO 2097 7902 CONTINUE' IF(KSG.NE.0)NSG=-1W FORM(110)=0 IF(FORM(119).NE.0)GOTO 7903=C LEAVE DISPLAY INDICATOR ALONE IF SET BUT SET VBL OTHERWISE.E FORM(119)=NSG*NXNUM@C SET NEG FOR DISPLAY OF FORMULA, NOT NUMBER. ALLOWS TEXT ENTRY.!C ASSUME FORMULA IF WE SEE + OR -V 7903 CONTINUEK8C FORCE FORM TO FOLLOW EDITS EVEN IF FORMAT/TYPE PRESET. IVVVV=FORM(119)* IF(IVVVV.NE.0)FORM(119)=ISGN(IVVVV)*NXNUM IF(NALF.LE.0)GOTO 6221! CALL FVLDST(PROW,PCOL,FORM(119))M CALL WRKFIL(IRX,FORM,1) 6221 CONTINUEO ASSIGN 7904 TO NBK GOTO 79053C LOOK UP PROW, PCOL, LEAVE DISPLAY COORDS IN LR,LCH 7905 CONTINUEE DO 7906 LA1=1,DRWV LR=LA1) DO 7906 LA2=1,DCLVA LC=LA21> IF(NRDSP(LA1,LA2).EQ.PROW.AND.NCDSP(LA1,LA2).EQ.PCOL)GOTO7907 7906 CONTINUELJC IF WE FALL OUT OF THE LOOP, WE DIDN'T FIND THE LOC; FLAG BY PUTTING 0'S. LR=01 LC=0A GOTO 7908 7907 CONTINUEN,C ARRIVE HERE ON SUCCESS. LR, LC ALL SET UP. 7908 CONTINUET GOTO NBKT 7904 CONTINUE IF(LR.EQ.0.OR.LC.EQ.0)GOTO 7901 THISRW=LR THISCL=LC2C ASCII 1,2,3,4 ARE VALUES 49,50,51,52 IN DECIMAL. LRO=1 LCO=1 ID1=NRDSP(1,1)W ID2=NCDSP(1,1)N0 IF(.NOT.(JMVFG.EQ.51.AND.THISRW.EQ.1))GOTO 7110 IF(IDOL7.EQ.0)GOTO 7110C MUST SCROLL LEFTC INHIBIT REDRAW AT ORIGIN...A IF(ID1.LE.1)GOTO 7110C LEAVE 2 COLUMNS AS BEFOREC ID1=MAX0(1,ID1-DRWV+2)M DROW=MAX0(DRWV-2,1) IQQ=1 GOTO 7112 7110 CONTINUEA) IF(JMVFG.EQ.51)THISRW=MAX0(1,(THISRW-1))3 IF(.NOT.(JMVFG.EQ.52.AND.THISRW.EQ.DRWV))GOTO 7116BC MUST SCROLL RIGHTT IF(IDOL7.EQ.0)GOTO 7116 DROW=3N%C ID1=MIN0(RRW,ID1+DRWV-MIN0(DRWV,2))L ID1=ID1+DRWV-MIN0(DRWV,2) IQQ=1 GOTO 7112(C 7112 FAKES OUT OA CALL TO SCROLL OVER. 7116 CONTINUES, IF(JMVFG.EQ.52)THISRW=MIN0((THISRW+1),DRWV)0 IF(.NOT.(JMVFG.EQ.49.AND.THISCL.EQ.1))GOTO 7117C MUST SCROLL UP IF(IDOL7.EQ.0)GOTO 7117 IF(ID2.LE.2)GOTO 7117 DCOL=MAX0(1,DCLV-2) ID2=MAX0(2,ID2-DCLV+2)R IQQ=1 GOTO 7112 7117 CONTINUE ) IF(JMVFG.EQ.49)THISCL=MAX0(1,(THISCL-1))W3 IF(.NOT.(JMVFG.EQ.50.AND.THISCL.EQ.DCLV))GOTO 71180C MUST SCROLL DOWN IF(IDOL7.EQ.0)GOTO 7118 DCOL=3(%C ID2=MIN0(RCL,ID2+DCLV-MIN0(DCLV,2)). ID2=ID2+DCLV-MIN0(DCLV,2) IQQ=1 GOTO 7112 7118 CONTINUE, IF(JMVFG.EQ.50)THISCL=MIN0((THISCL+1),DCLV) DROW=THISRW DCOL=THISCL PROW=NRDSP(DROW,DCOL) PCOL=NCDSP(DROW,DCOL)6C FORCE REDO OF BOTH LAST AND NEW COLUMN BY DISPLAYER." DVS(LR,LC)=DVS(LR,LC)+.0000000057) DVS(DROW,DCOL)=DVS(DROW,DCOL)+.000000062X7901 GOTO 9990"8000 IF(CMDLIN(1).NE.'M')GOTO 8001 ICODE=1-C MACROCELL COMMAND IF MH (HIDE) OR MS (SHOW)E IF(CMDLIN(2).EQ.'S')IDOL4=1 IF(CMDLIN(2).EQ.'H')IDOL4=02 IF(CMDLIN(2).EQ.'S'.OR.CMDLIN(2).EQ.'H')GOTO 9990C MOVE COMMAND)C M1,M2,M3,M4 MOTION DIRECTION IS U,D,L,R2CC ALLOW M0 TO RESTORE OLD AUTOMOVE CONDITION, ALL OTHERS TO SAVE ITV IVVV=CMDLIN(2)W IF(CMDLIN(2).EQ.'0')IVVV=JM00a1a^[Z[[[\[}VOLD JMVOLD=JMVFG JMVFG=IVVVLC JMVFG=CMDLIN(2)EC STORE CHARACTER AS MOVE FLAG GOTO 9990"8001 IF(CMDLIN(1).NE.'D')GOTO 8002C DISPLAY COMMANDSC C DISPLAY SORTC DSRA 1C DS = CONSTANT KEYWORD) C R/C=ROW/COL (DISPLAY COORD #S) C A/D=ASCENDING/DESCENDING ORDER-C NUMBER= DISPLAY COORD ROW/COL # TO SORT ON.GC SORTS NUMERIC FIELDS ONLY. IF(CMDLIN(2).NE.'S')GOTO 1752 ICODE=2:C MUST REDRAW. WE DO WHOLESALE RELOCATIONS OF THINGS HERE.C FIRST GET ARGUMENTSO LAA=6 LBB=15  CALL GN(LAA,LBB,NBR,CMDLIN)-C THIS EXTRACTS THE NUMBER OF ROW/COL TO USE.R!C DEFAULT IS PHYS, COL, ASCENDINGL. IF(NBR.LE.0.OR.NBR.GT.MAX0(DRW,DCL))GOTO 9990 SSIGN=1.n IF(CMDLIN(4).EQ.'D')SSIGN=-1.BC SSIGN USED TO CONTROL ASCENDING/DESCENDING SORT (MULTIPLY BY IT)C GET LENGTH TO GO THRU IN SORTF" IF(CMDLIN(3).EQ.'C')IDELTA=DCLV-1" IF(CMDLIN(3).EQ.'R')IDELTA=DRWV-1 I1IN=0 I2IN=1F7C GET PHYSICAL COORDINATES OF ROW/COL WE'RE SORTING ON.2 IF(CMDLIN(3).EQ.'R')GOTO 6222 ID1=NRDSP(NBR,1)9 ID2=NCDSP(NBR,1) GOTO 1753 6222 CONTINUEF ID1=NRDSP(1,NBR)A ID2=NCDSP(1,NBR)E I1IN=1O I2IN=0 C HACK TO HANDLE ROW/COL ALIKE 1753 CONTINUEL IFLIP=0.C IFLIP = BUBBLESORT FLAG WE CHANGED SOMETHINGHC (USE SIMPLE MINDED SMALL SORT. TOO MUCH OVHD FOR BETTER ONE...NO ROOM) ID1A=ID1 ID2A=ID2EDC IGNORE CASE OF IDELTA=0... SHOULDN'T BE ANY WAY FOR THAT TO HAPPEN DO 1754 IV=1,IDELTA+C SORT HERE. IFLIP=1 IF WE INVERT ANYTHING.UC JUST COMPARE XVBLS...IDC NOTE WE ASSUME A "NORMAL" TYPE DISPLAY, JUST RESET PHYSICAL STUFF. CALL XVBLGT(ID1A,ID2A,XAC) , CALL XVBLGT(ID1A+I1IN,ID2A+I2IN,XVBLS(1,1))+ IF(XAC*SSIGN.LE.XVBLS(1,1)*SSIGN)GOTO 1755 8C IF((XVBLS(ID1A,ID2A)*SSIGN).LE.(SSIGN*XVBLS(ID1A+I1IN,C 1 ID2A+I2IN)))GOTO 17551C FLIP ASSIGNMENTS@C FLIP XVBLS NUMBERS TOO TO MAINTAIN SORT. WE RECOMPUTE ANYWAY.. C XAC=XVBLS(ID1A+I1IN,ID2A+I2IN)-C XVBLS(ID1A+I1IN,ID2A+I2IN)=XVBLS(ID1A,ID2A)DC XVBLS(ID1A,ID2A)=XAC% CALL XVBLST(ID1A+I1IN,ID2A+I2IN,XAC)S" CALL XVBLST(ID1A,ID2A,XVBLS(1,1)) IFLIP=1/C SWAP ASSIGNMENTS OF DISPLAY STUFF IF IN RANGEK#C OPERATES LIKE A SORTED OA COMMAND5/C CURRENT PHYSICAL ROW IS ID2A (1...RCL LIMITS)SC AND PHYS COL IS ID1A.M LDELTA=DRW-1 8C FOR REASSIGNMENT, ROLE OF I1IN,I2IN CAN BE REVERSED... ID1B=16C NOTE DISPLAY ID2 IS 1 LESS THAN PHYSICAL ONE. (AC'S) ID2B=ID2A-1 IF(ID2B.LE.0)GOTO 1754O IF(CMDLIN(3).NE.'R')GOTO 1756C ROW... LDELTA=DCL-1AC ID1 SAME AS DISPLAY COORDS ID1B=ID1A ID2B=1( 1756 CONTINUE DO 1757 IVV=1,LDELTAA?C FLIP THE ROW/COL 1 ENTRY AT A TIME. JUST CHANGES ASSIGNMENTS.I JD1=NRDSP(ID1B,ID2B)T JD2=NCDSP(ID1B,ID2B)G, NRDSP(ID1B,ID2B)=NRDSP(ID1B+I1IN,ID2B+I2IN), NCDSP(ID1B,ID2B)=NCDSP(ID1B+I1IN,ID2B+I2IN) NRDSP(ID1B+I1IN,ID2B+I2IN)=JD1G NCDSP(ID1B+I1IN,ID2B+I2IN)=JD2N ID1B=ID1B+I2IN5 ID2B=ID2B+I1IN( 1757 CONTINUED4C WE CAN ALWAYS FLIP SINCE WE STAY ON DISPLAY SHEET. 1755 CONTINUE  ID1A=ID1A+I1IN  ID2A=ID2A+I2INN 1754 CONTINUE .C DONE 1 PASS. IF ANYTHING CHANGED, TRY AGAIN. IF(IFLIP.NE.0)GOTO 1753C DONE SORT AT END GOTO 9990 1752 CONTINUE C  IF(CMDLIN(2).NE.'L')GOTO 8101C DL = DISPLAY LOCATE V1:V2 N:MO ASSIGN 8103 TO IBACK GOTO 8104:C STRIP VARIABLE NAMES OFF CMD LINE STARTING AT POSITION 3 8104 LA=3R LE=98 L1=0T1 CALL VARSCN(CMDLIN(1),LA,LE,LSTC,ID1A,ID2A,IVLD)  L2=0.*C L1,L2 = FLAGS VARIABLE 1,2 FOUND VALIDLY LA=LSTC+1 LE=100-LA" IF(LE.LE.0.OR.IVLD.LE.0)GOTO 8102 L1=1R! IF(CMDLIN(LSTC).NE.':')GOTO 8102O0C MUST SEE : BETWEEN NAMES. NO SPACES PERMITTED.. CALL VARSCN(CMDLIN,LA,LE,LSTC,ID1B,ID2B,IVLD) IF(IVLD.LE.0)GOTO 8102 L2=1L 8102 CONTINUE.PC NOTE THAT LSTC RETURNS AS CHARACTER AFTER VARIABLE LAST GRABBED IN INPUT LINE. GOTO IBACKT(C NOW PICK UP RN:M OR CN:M (R=ROW,C=COL) 8103 CONTINUEQ IF(L1.LT.1)GOTO 8101'*C INVALID UNLESS AT LEAST 1 VBL NAME SEEN. LA=LSTC+2 RCF=0 IF(CMDLIN(LSTC+1).EQ.'R')RCF=2N IF(CMDLIN(LSTC+1).EQ.'C')RCF=1O IF(RCF.EQ.0)GOTO 8101 KM1=1 CALL GN(KM1,LE,NUM1,CMDLIN(LA)) IF(NUM1.EQ.0)GOTO 8101  LE=INDEX(CMDLIN(LA),':')D NUM00ag`^YTADATADATADATADATADATA2=0I IF(LE.GT.100)GOTO 8101B LA=LA+LE  KM1=1 KM8=8! CALL GN(KM1,KM8,NUM2,CMDLIN(LA))A>C NOW NUM1,NUM2 ARE DESIRED ROW/COL RANGE. NOW SET UP DISPLAY.& IF(NUM2.EQ.0.OR.NUM2.GT.DCL)GOTO 8101 IF(NUM1.GT.DRW)GOTO 8101MC ILLEGAL ROW/COL IS A NO-GO.N3C R N:M MEANS STARTING AT COL N ROW M GOING L TO R.F:C C N:M MEANS DOWN STARTING THERE. DISPLAY COORDS ASSUMED.+ IF(ID1A.NE.ID1B.AND.ID2A.NE.ID2B)GOTO 8101M*C ONLY HANDLE ROWS OR COLS, NOT DIAGONALS. C MUST BE A PHYS MTX ROW OR COL. LRINC=0 LCINC=0 IF(RCF.EQ.1)LRINC=1 IF(RCF.EQ.2)LCINC=1 ASSIGN 8108 TO JBACK( GOTO 8109 C COPY DATAE 8109 CONTINUEV ICODE=6 IDELT=19 IF(L2.NE.0)IDELT=MAX0(IABS(ID1A-ID1B),IABS(ID2A-ID2B))+1  I1IN=0M I2IN=1T IF(ID1A.EQ.ID1B)GOTO 8106 I1IN=1C I2IN=0E 8106 CONTINUEM ID1=ID1AC ID2=ID2A. GOTO JBACKW 8108 CONTINUEI ICODE=1 IR=NUM1 IC=NUM2 DO 8105 NM=1,IDELTHC CLAMP TO MAX DISPLAY ARRAY$ IF(IR.GT.DRW.OR.IC.GT.DCL)GOTO 8105 NRDSP(IR,IC)=ID1S NCDSP(IR,IC)=ID2T DVS(IR,IC)=DVS(IR,IC)-1.E-11 C THISRW=IRR C THISCL=ICCC JRX=(ID2-1)*RRW+ID1O CALL REFLEC(ID2,ID1,JRX)M CALL WRKFIL(JRX,FORM2,0)DC READ(7'JRX)FORM2C DO 7104 N7=1,9#C7104 DFMTS(N7,IR,IC)=FORM2(N7+119)C DFMTS(10,IR,IC)=0W IR=IR+LCINC IC=IC+LRINCC NOTE REVERSAL FOR DISPLAY. ID1=ID1+I1INW ID2=ID2+I2IN 8105 CONTINUEO 8101 CONTINUEN IF(CMDLIN(2).NE.'F')GOTO 8111C DF STUFF - SET FORMAT. ASSIGN 8112 TO IBACK GOTO 8104 8112 CONTINUENC NOW HAVE VARIABLE ID'S SET UPA IF(L1.LE.0)GOTO 8120EC MUST HAVE 1 OR MORE... ASSIGN 8113 TO JBACKO GOTO 8109'C IDELT NOW SET UP. SET FORMATS UP NOW.W1C FORMATS ARE IN [] BRACKETS. FIND THESE AND USE.P 8113 CONTINUEO ICODE=1 LA=INDEX(CMDLIN,'[')+1  LB=INDEX(CMDLIN,']')-1 LDELT=LB-LA+1 LDELT=MIN0(LDELT,9) DO 8114 LN=1,IDELTN/C IDELT IS OVER VRBL LIST GIVEN. MAY BE 1 ONLY.AC IRRX=(ID2-1)*RRW+ID1 CALL REFLEC(ID2,ID1,IRRX) CALL WRKFIL(IRRX,FORM,0)N%C KEEP EXISTING FORMAT IF [*] IS USEDF IF(CMDLIN(LA).EQ.'*')GOTO 7115 4 IF(CMDLIN(LA).EQ.'A'.OR.CMDLIN(LA).EQ.'L')GOTO 7115C READ(7'IRRX)FORM DO 7989 KKKK=1,9U7989 FORM(119+KKKK)=0 DO 8115 LNA=1,LDELT FORM(LNA+119)=CMDLIN(LA-1+LNA)P IF(LNA.LT.9)FORM(LNA+120)=0 8115 CONTINUE2 7115 CONTINUEU C FORM(128)=0R CALL FVLDGT(ID1,ID2,FVWRK). IVVVV=FVWRK IF(IVVVV.EQ.0)IVVVV=3C SET UP DEFAULT AS NUMERIC.C IVVVV=FVLD(ID1,ID2).#C FVLD(ID1,ID2)=MAX0(1,IABS(IVVVV))1 IVVVV=MAX0(1,IABS(IVVVV))1 IF(CMDLIN(LA).EQ.'A'.OR.CMDLIN(LA).EQ.'L')IVVVV=1 1 MIN0(-1,-IABS(IVVVV))M CALL FVLDST(ID1,ID2,IVVVV) , IF(CMDLIN(LA).EQ.'I')CALL TYPSET(ID1,ID2,4)+ IF(CMDLIN(LA).EQ.'F'.OR.CMDLIN(LA).EQ.'E')E 1 CALL TYPSET(ID1,ID2,2), FORM(119)=IVVVVC,DC TO BE SURE WE DON'T FOUL UP THE FILE, TRY AN ENCODE ON THIS FORMATIC PRIOR TO THE WRITE. THAT WAY IF WE BOMB, THE FILE WE HAVE DIRECT ACCESSMC DATA ON IS NOT CLOBBERED.C IF(IVVVV.LE.0)GOTO 7990 DO 7988 KKK=1,9 KKKK=FORM(119+KKK) 7988 DFE(KKK+1)=MAX0(32,KKKK)Q DFE(1)='('+ DFE(12)=')' CALL TYPGET(N1,N2,TYPE(1,1))3 CALL FVLDGT(N1,N2,FVLD(1,1))C IF(FVLD(1,1).LE.0)GOTO 7990 IF(TYPE(1,1).NE.2)GOTO 62241 ENCODE(100,DFE,FORM2,ERR=4302)DVS(THISRW,THISCL)T GOTO 7990 6224 CONTINUEL4 ENCODE(100,DFE,FORM2,ERR=4302)LDVS(1,THISRW,THISCL) 7990 CONTINUE. CALL WRKFIL(IRRX,FORM,1) C WRITE(7'IRRX)FORMA DO 8116 NX1=1,DRW DO 8116 NX2=1,DCLC LOCATE DISPLAY CELL IF ANY= IF(NRDSP(NX1,NX2).EQ.ID1.AND.NCDSP(NX1,NX2).EQ.ID2)GOTO 8117= 8116 CONTINUE6 GOTO 8118 8117 CONTINUE # DVS(NX1,NX2)=DVS(NX1,NX2)-1.23E-12G 8118 CONTINUEC ID1=ID1+I1INC ID2=ID2+I2INR 8114 CONTINUE 8111 CONTINUET IF(CMDLIN(2).NE.'T')GOTO 8120C DT DISPLAY TYPEI ASSIGN 8121 TO IBACKO GOTO 8104C GET VBL NAMESL8121 ASSIGN 8122 TO JBACK, GOTO 81098122 LA=LSTC+1 IF(L1.LE.0)GOTO 8120E KTYP=2  IF(CMDLIN(LA).EQ.'I')KTYP=4 ICODE=1 DO 8123 LNA=1,IDELT CALL TYPSET(ID1,ID2,KTYP)C TYPE(ID1,ID2)=KTYP DO 8126 NX1=1,DRWV( DO 8126 NX2=1,DCLV(= IF(NRDSP(NX1,NX2).EQ.ID1.AND.NCDSP(NX1,NX2).EQ.ID2)GOTO 8127E2C FIND DISPLAY LOC IF AN00a1a^[Z[[[\[}Y AND SET IT UP FOR REDRAW 8126 CONTINUE= GOTO 8128 8127 CONTINUED$ DVS(NX1,NX2)=DVS(NX1,NX2)-1.211E-12 8128 CONTINUE1 ID1=ID1+I1INR ID2=ID2+I2INL 8123 CONTINUED 8120 CONTINUE IF(CMDLIN(2).NE.'W')GOTO 8130C DW SETS COL WIDTHS ASSIGN 8131 TO KBACKA GOTO 8132%C GET 2 NUMBERS STARTING AT CMDLIN(4)R 8132 CONTINUED KM1=1 KM6=6 CALL GN(KM1,KM6,NCL,CMDLIN(4))" LA=INDEX(CMDLIN(4),',')C COMMA MUST BE SEPARATORN LCWID=7 IF(LA.GT.100)GOTO 8138  KM1=1$ CALL GN(KM1,KM6,LCWID,CMDLIN(LA+4))8138 GOTO KBACKS 8131 CONTINUEK ICODE=6 IF(RCMODE.GT.0)ICODE=2N NCL=MAX0(1,NCL) NCL=MIN0(NCL,DRW) LCWID=MAX0(1,LCWID) LCWID=MIN0(LCWID,110)C COL WIDTH IS 3 TO 110 CHARS. IF(NCL.GT.0)CWIDS(NCL)=LCWIDK 8133 CONTINUE. 8130 CONTINUEI IF(CMDLIN(2).NE.'B')GOTO 8140C DB = BOUNDS ON ROW,COL ASSIGN 8141 TO KBACKR GOTO 8132#C PARASITE OTHER CODE TO GET DIGITS+ 8141 MC=NCL MR=LCWID, MC=MIN0(MC,DRW) MR=MIN0(MR,DCL)C CLAMP RANGE TO LEGAL IF(MC.GT.0)DRWV=MCA IF(MR.GT.0)DCLV=MR- ICODE=6 IF(RCMODE.GT.0)ICODE=2N#C REDRAW SCREEN WHEN BOUNDS CHANGE.+ 8140 CONTINUEO GOTO 9990"8002 IF(CMDLIN(1).NE.'V')GOTO 8003C VIEW REDRAW COMMANDG PZAP=0 FORMFG=0( IF(CMDLIN(2).EQ.'F')FORMFG=1O IF(CMDLIN(2).EQ.'M')PZAP=1E ICODE=6 IF(RCMODE.GT.0)ICODE=2 GOTO 9990 OC 78003 IF(CMDLIN(1).NE.'C'.AND.CMDLIN(1).NE.'I')GOTO 8004EC COPY NUMBERS COMMAND#C COPY (NUMBERS,FORMAT,DISPLAY,ALL) BC CV=COPY VALUE, CD=COPY DISPLAY FMT, CF=COPY FORMULA, CA=COPY ALL.C Ca V1:V2 V3:V4 COPIES FIRST RANGE TO SECOND.&C IR RANGES DOES INPLACE RELOCATION...CMC COLLECT ARGS ASSIGN 8301 TO IBACKN GOTO 8104 8301 CONTINUE 8C NOW L1,L2 SAY IF VBLS(ID1A,ID2A) AND (ID1B,ID2B) EXIST9C COLLECT JD2A,JD2B. USE SIMILAR INTERNAL PROCEDURE CODE.S IF(L1.LE.0)GOTO 8399  ASSIGN 8302 TO MBACKF GOTO 8303 8303 CONTINUET#C COLLECT 2 VARS STARTING AT LSTC+3BC SKIPS LSTC DELIMITER.+ LJ1=0 LJ2=0 LA=LSTC+1 LE=110-LA IF(LE.LE.0)GOTO 8304. CALL VARSCN(CMDLIN,LA,LE,LSTC,JD1A,JD1B,IVLD) LA=LSTC+1 LE=110-LA" IF(LE.LE.0.OR.IVLD.LE.0)GOTO 8304 LJ1=1! IF(CMDLIN(LSTC).NE.':')GOTO 8304E. CALL VARSCN(CMDLIN,LA,LE,LSTC,JD2A,JD2B,IVLD) IF(IVLD.LE.0)GOTO 83042 LJ2=18304 GOTO MBACKR 8302 CONTINUE1 IF(LJ1.LE.0)GOTO 8399 IDELT=19 IF(L2.NE.0.AND.(ID1A.NE.ID1B.AND.ID2A.NE.ID2B))GOTO 830519 IF(L2.NE.0)IDELT=MAX0(IABS(ID1A-ID1B),IABS(ID2A-ID2B))+1O 8305 CONTINUE, JDELT=1 IF(LJ2.EQ.0)GOTO 8306+ IF(JD1A.NE.JD2A.AND.JD1B.NE.JD2B)GOTO 8306. JDELT=MAX0(IABS(JD1A-JD2A),IABS(JD1B-JD2B))+1'8306 IF(L2.NE.0)JDELT=MIN0(IDELT,JDELT)F9C CHANGE FOR REPLICATE : JDELT CAN BE JUST JDELT IF L2=01 ASSIGN 8307 TO JBACKDCC 8109 IS WHERE WE SET UP I1IN AND I2IN ASSUMING THAT THE VARIABLES 5C ARE SET PROPERLY. HANDLED AS AN INTERNAL PROCEDURE. GOTO 8109 8307 CONTINUEU JIN1=17 JIN2=09 IF(JD1B.EQ.JD2B)GOTO 8308 JIN1=0' JIN2=10 8308 CONTINUEMBC CHANGE FOR REPLICATE: IF L2 IS 0 (NO 2ND SRC VARIABLE), NO BUMPS%C PAST THE SINGLE VARIABLE SPECIFIED." IF(L2.EQ.0)I1IN=0 IF(L2.EQ.0)I2IN=09C FOR PCC-PC DO RECALC ALWAYS TO ALLOW DISPLAY TO LOOK OKP ICODE=3 C ICODE=1O)C FORCE RECALC IF ONLY 1 SOURCE VARIABLE..C IF(L2.EQ.0)ICODE=3 JRTR=PROW JRTC=PCOL'C JRTR AND JRTC = RELOCATION THRESHOLDSE@C CELLS ABOVE OR LEFT OF JRTR,JRTC WILL NOT BE RELOCATED IN A CR>C OPERATION. THIS WILL GENERALLY BE THE PHYSICAL COLUMN OR ROW@C OF THE CURRENT POSITION. CELLS LOWER OR EQUAL, OR TO THE RIGHT@C OF THE CURRENT LOCATION OR EQUAL, WILL BE RELOCATED. (VARIABLEC NAMES GET EDITED)N ASSIGN 8365 TO KPYBAK GOTO 8364$C 8364 BEGINS COPY PROCEDURE SECTIONEC GOES FOR JDELT CELLS WITH I1IN AND I2IN BEING SOURCE INCREMENTS FOR ?C RRW DIMENSION, RCL DIMENSION, AND JIN1,2 BEING INCREMENTS FORI@C DESTINATION RRW,RCL DIMENSIONS RESPECTIVELY. USES CMDLIN(2) TO9C FLAG WHETHER TO HANDLE ALL, JUST FORMAT, RELOCATE, ETC.+C ALSO ID1A,ID2A ARE START SOURCE LOCATIONN#C JD1A,JD1B = DEST START LOCATION.7C #C COPIES 1 ROW OR COLUMN AT A TIME. 8364 CONTINUEU C ICODE=1O$C SET DISPLAY UPDATE O00ag`^YTADATADATADATADATADATAN COPIED CELLSCCD DO 3620 JV=1,BRRCLCCD3620 IBITMP(JV)=0 DO 8309 JV=1,JDELTT DO 8380 NX1=1,DRWVC DO 8380 NX2=1,DCLVAC LOCATE DISPLAY CELL IF ANY= IF(NRDSP(NX1,NX2).EQ.ID1.AND.NCDSP(NX1,NX2).EQ.ID2)GOTO 8387. 8380 CONTINUE2 GOTO 8388 8387 CONTINUE$ DVS(NX1,NX2)=DVS(NX1,NX2)+1.245E-14 8388 CONTINUE)C JRXX=(JD1B-1)*RRW+JD1AC IRXX=(ID2A-1)*RRW+ID1A CALL REFLEC(JD1B,JD1A,JRXX) CALL REFLEC(ID2A,ID1A,IRXX)! CALL FVLDGT(ID1A,ID2A,FVLD(1,1))( KKKKK=FVLD(1,1)! CALL FVLDGT(JD1A,JD1B,FVLD(1,1))L+ IF(KKKKK.EQ.0.AND.FVLD(1,1).EQ.0)GOTO 8314(<C IF(FVLD(ID1A,ID2A).EQ.0.AND.FVLD(JD1A,JD1B).EQ.0)GOTO 8314C READ(7'IRXX)FORMC READ(7'JRXX)FORM2  CALL WRKFIL(IRXX,FORM,0)Y CALL WRKFIL(JRXX,FORM2,0)) IF(KKKKK.EQ.-2)CALL FVLDST(ID1A,ID2A,-3)O' IF(KKKKK.EQ.2)CALL FVLDST(ID1A,ID2A,3)E! IF(FORM (119).EQ. 2)FORM (119)=3" IF(FORM (119).EQ.-2)FORM (119)=-3! IF(FORM2(119).EQ. 2)FORM2(119)=3L" IF(FORM2(119).EQ.-2)FORM2(119)=-33 IF(CMDLIN(2).NE.'R'.AND.CMDLIN(2).NE.'A')GOTO 8310) IF(CMDLIN(2).NE.'R')GOTO 8366C RELOCATE, THEN WRITE NEW CELL, II1=ID1AR II2=ID2A( JJ1=JD1AM JJ2=JD1B.2 CALL RELVBL(FORM,FORM2,II1,II2,JJ1,JJ2,JRTR,JRTC)<C THE ABOVE WILL RELOCATE FORM INTO FORM2 WHICH WE NOW EMIT.,C ALLOW IR COMMAND TO DO INPLACE RELOCATION. IF(CMDLIN(1).NE.'I')GOTO 6225 CALL WRKFIL(IRXX,FORM2,1) GOTO 9222 6225 CONTINUEH CALL WRKFIL(JRXX,FORM2,1)C WRITE(7'JRXX)FORM2 GOTO 8367 8366 CONTINUE  CALL WRKFIL(JRXX,FORM,1)EC WRITE(7'JRXX)FORMO 8367 CONTINUEI! CALL TYPGET(ID1A,ID2A,TYPE(1,1))E! CALL TYPSET(JD1A,JD1B,TYPE(1,1))F!C TYPE(JD1A,JD1B)=TYPE(ID1A,ID2A)I" CALL XVBLGT(ID1A,ID2A,XVBLS(1,1))" CALL XVBLST(JD1A,JD1B,XVBLS(1,1))#C XVBLS(JD1A,JD1B)=XVBLS(ID1A,ID2A)1! CALL FVLDGT(ID1A,ID2A,FVLD(1,1))G! CALL FVLDST(JD1A,JD1B,FVLD(1,1))V!C FVLD(JD1A,JD1B)=FVLD(ID1A,ID2A)N9222 ID1A=ID1A+I1IN1 ID2A=ID2A+I2IN JD1A=JD1A+JIN1L JD1B=JD1B+JIN2( GOTO 8309 8310 CONTINUEN IF(CMDLIN(2).NE.'V')GOTO 8312! CALL TYPGET(ID1A,ID2A,TYPE(1,1)) ! CALL TYPSET(JD1A,JD1B,TYPE(1,1))L!C TYPE(JD1A,JD1B)=TYPE(ID1A,ID2A)" CALL XVBLGT(ID1A,ID2A,XVBLS(1,1))" CALL XVBLST(JD1A,JD1B,XVBLS(1,1))#C XVBLS(JD1A,JD1B)=XVBLS(ID1A,ID2A)N"8312 IF(CMDLIN(2).NE.'D')GOTO 8313! CALL FVLDGT(ID1A,ID2A,FVLD(1,1))I! CALL FVLDST(JD1A,JD1B,FVLD(1,1)) !C FVLD(JD1A,JD1B)=FVLD(ID1A,ID2A)P DO 8315 LXQ=1,101!8315 FORM2(118+LXQ)=FORM(118+LXQ)S CALL WRKFIL(JRXX,FORM2,1)C WRITE(7'JRXX)FORM2"8313 IF(CMDLIN(2).NE.'F')GOTO 8314 DO 8316 LXQ=1,1108316 FORM2(LXQ)=FORM(LXQ)O CALL WRKFIL(JRXX,FORM2,1)C WRITE(7'JRXX)FORM2 8314 CONTINUE ID1A=ID1A+I1IN2 ID2A=ID2A+I2IN JD1A=JD1A+JIN1H JD1B=JD1B+JIN2R 8309 CONTINUET,C RETURN POINT FROM COPY LOOP IN NORMAL COPY GOTO KPYBAK 8365 CONTINUEL8399 GOTO 999068004 IF(CMDLIN(1).LT.'1'.OR.CMDLIN(1).GT.'4')GOTO 8005C 1,2,3,4 POSITIONING COMMANDS ICODE=5/C IF(CMDLIN(1).EQ.'3')THISRW=MAX0(1,(THISRW-1))C2C IF(CMDLIN(1).EQ.'4')THISRW=MIN0((THISRW+1),DRWV)/C IF(CMDLIN(1).EQ.'1')THISCL=MAX0(1,(THISCL-1))12C IF(CMDLIN(1).EQ.'2')THISCL=MIN0((THISCL+1),DCLV)2C ASCII 1,2,3,4 ARE VALUES 49,50,51,52 IN DECIMAL. MVFG=CMDLIN(1)I LRO=1 LCO=1 ID1=NRDSP(1,1) ID2=NCDSP(1,1)H/ IF(.NOT.(MVFG.EQ.51.AND.THISRW.EQ.1))GOTO 2110NC MUST SCROLL LEFT IF(IDOL7.EQ.0)GOTO 2110 IF(ID1.LE.1)GOTO 2110 ID1=MAX0(1,ID1-DRWV+2)0 DROW=MAX0(1,DRWV-2) IQQ=1 GOTO 7112,2110 IF(MVFG.EQ.51)THISRW=MAX0(1,(THISRW-1))2 IF(.NOT.(MVFG.EQ.52.AND.THISRW.EQ.DRWV))GOTO 2116C MUST SCROLL RIGHTH IF(IDOL7.EQ.0)GOTO 2116 DROW=3=%C ID1=MIN0(RRW,ID1+DRWV-MIN0(DRWV,2))L ID1=ID1+DRWV-MIN0(DRWV,2) IQQ=1 GOTO 7112(C 7112 FAKES OUT OA CALL TO SCROLL OVER./2116 IF(MVFG.EQ.52)THISRW=MIN0((THISRW+1),DRWV)M/ IF(.NOT.(MVFG.EQ.49.AND.THISCL.EQ.1))GOTO 2117OC MUST SCROLL UP IF(IDOL7.EQ.0)GOTO 2117 IF(ID2.LE.2)GOTO 2117 DCOL=MAX0(1,DCLV-2) ID2=MAX0(2,ID2-DCLV+2)O IQQ=1 GOTO 7112,2117 IF(MVFG.EQ.49)THISCL=MAX0(1,(THISCL-1))2 IF(.NOT.(MVFG.EQ.50.AND.THISCL.EQ.DCLV))GOTO 2118C MUST SCROLL DOWN IF(IDOL7.EQ.0)GOTO 2118 DCOL=32%C ID2=MIN0(RCL,ID2+DCLV-MIN0(D00a1a^[Z[[[\[}CLV,2))J ID2=ID2+DCLV-MIN0(DCLV,2) IQQ=1 GOTO 7112/2118 IF(MVFG.EQ.50)THISCL=MIN0((THISCL+1),DCLV)I PROW=NRDSP(THISRW,THISCL) PCOL=NCDSP(THISRW,THISCL) DROW=THISRW DCOL=THISCL GOTO 9990 8005 CONTINUE="8007 IF(CMDLIN(1).NE.'R')GOTO 8008 IF(CMDLIN(2).NE.'B')GOTO 7333-C RB VAR SETS RELOCATE BOUNDARY TO VAR COORDST IF(CMDLIN(3).EQ.'*')GOTO 7332C NORMAL RB COMMAND2#C RB VAR USES VAR NAME TO RESET BDYE LO=3L KKKK=20. CALL VARSCN(CMDLIN,LO,KKKK,IV,ID1,ID2,IVALID) IF(IVALID.LE.0)GOTO 9990NC IGNORE ERRORSS IDOL5=ID1 IDOL6=ID2 GOTO 99907332 IDOL5=32000 IDOL6=32000)C RB* RESETS RELOCATE BDY TO END OF SHEETC GOTO 9990 7333 CONTINUEIC RECOMPUTE SHEET.C RM COMMAND SETS MANUAL FLAG. RCFGX=0 RCONE=0 IF(CMDLIN(2).NE.'S')GOTO 5114 RRWACT=RRWT RCLACT=RCL 5114 CONTINUEQ'C RCFGX NONZERO INHIBITS RECALCULATION.I%C RCONE SET 1 TO FORCE RECALC OF ALL. 9C CHANGE FROM OTHER SYNTAX: RF FORCES RECALC, R DOES NOT.L0 IF(CMDLIN(2).EQ.'F'.OR.CMDLIN(2).EQ.'R')RCONE=18C NOTE RXF (X=ANY CHAR BUT F) ACTS LIKE OLD VERSION RXF.>C BARE R COMMAND HOWEVER JUST REDOES CALC. F NOW MEANS "FORCE":C AND SEEMS A BIT MORE MNEMONIC THIS WAY. ALLOW RR COMMANDC TO WORK AS WELL AS RF. IF(CMDLIN(2).NE.'R')RCMODE=0.<C RR COMMAND RECALCULATES WITH FORCE, BUT LEAVES MODE ALONE. IF(CMDLIN(2).EQ.'E')RCMODE=1. IF(CMDLIN(2).EQ.'I')RCMODE=2T# IF(CMDLIN(2).EQ.'1')RCMODE=-RCMODET C R1 DOES ONE TIME RECALC OF ALL$C RE COMMAND RECALCULATES ENTRY ONLYBC RI COMMAND RECALCULATES INCREMENTALLY THE DISPLAY AND ENTRY ONLY IF(CMDLIN(2).EQ.'M')RCFGX=1 ICODE=3 IF(CMDLIN(3).EQ.'I')ICODE=1DC 3RD CHAR "I" Inhibits RECALCULATION THIS TIME BUT SETS MODES UP... GOTO 9990"8008 IF(CMDLIN(1).NE.'K')GOTO 8009C DROP INTO CALC BARE. IF(IPSET.NE.0)GOTO 9990C CAN'T CALL CALC RECURSIVELY. OSWIT=0 ILNFG=0 C ICODE=-1C CLOSE UNIT 1 JUST IN CASE... CLOSE(UNIT=1) CALL UVT100(ED,2) KLVL=1V ILNCT=0>C SAVE PROW,PCOL ACROSS CALC SINCE IT MAY NOW USE *P AND *W TOC MODIFY THEM. C IPRSSS=PROW C IPCSSS=PCOLN C CALL CALC C PROW=IPRSSSG C PCOL=IPCSSSL"CC CLOSE CONSOLE LUN USED BY CALC.C CLOSE(UNIT=1)D-CC CLOSE ANY OTHER LUNS CALC MAY HAVE USED...C CLOSE(UNIT=2) C CLOSE(UNIT=3) ICODE=420 GOTO 9990"8009 IF(CMDLIN(1).NE.'L')GOTO 8010C LOCATE CURSOR ORIGINC FORMAT IS L VARIABLE%C ONLY 1 VARIABLE NAME TO BE ENTERED.( LA=23 LE=30. CALL VARSCN(CMDLIN,LA,LE,LSTC,ID1A,ID2A,IVLD) L1=IVLDC ASSIGN 8900 TO IBACK C GOTO 8104C8900 IF(L1.LT.1)GOTO 9990E3800 PROW=ID1A PCOL=ID2AC LOOK UP DISPLAY COORDS IF ANYG ASSIGN 8901 TO NBKI GOTO 7905 8901 CONTINUE, DROW=LR DCOL=LC THISRW=LR THISCL=LC 3802 ICODE=1 GOTO 9990 8010 CONTINUEI IF(CMDLIN(1).NE.'>')GOTO 3801CC >STRING SEARCH FOR STRING IN FORMULA. STRING TERMINATES WITH EOL.I.C SEARCH FROM CURRENT POSITION TO RB RANGE END LA=MIN0(RRWACT,IDOL5) LB=MIN0(RCLACT,IDOL6)& IF(PROW.GT.LA.OR.PCOL.GT.LB)GOTO 38020C ONLY SEARCH IF THERE'S A VALID RANGE TO SEARCH DO 3803 ID1=PROW,LA DO 3803 ID2=PCOL,LB CALL FVLDGT(ID1,ID2,FVLD(1,1))2 IF(FVLD(1,1).EQ.0)GOTO 3803 ID1A=ID1 ID2A=ID2=>C USE SCMP SUBROUTINE FROM CMND FILE. (VAX ONLY OR RE-OVERLAY)C GET FORMULA IN MEMORY FIRST. LMN=2 LMX=50O IF(CMDLIN(2).NE.'>')GOTO 3809 LMN=3 LMX=1C ANCHOR SEARCH IF 2 > IN A ROW, 3809 CONTINUEC IRX=(ID2-1)*RRW+ID1E CALL REFLEC(ID2,ID1,IRX)C CALL WRKFIL(IRX,FORM2,0).;C SEARCH IN FIRST 50 CHARACTERS OF FORMULA FOR USERS STRING8C NOW THAT WE HAVE IT LOCAL. DO 3805 IVV=1,LMX KKKK=110-IVVSC DON'T GO COMPARING NULLS.B IF(FORM2(IVV).LE.0)GOTO 3803* CALL SCMP(FORM2(IVV),CMDLIN(LMN),KKKK,IV) IF(IV.EQ.1)GOTO 3804E 3805 CONTINUE 3803 CONTINUET GOTO 3802 3804 CONTINUE 'C SET ID1A AND ID2A TO CELL LOC TO USE.C GOTO 3800"3801 IF(CMDLIN(1).NE.'Z')GOTO 8011C ZERO COMMANDC ZA OR ZE V1:V2 IF(CMDLIN(2).NE.'A')GOTO 8950%C ZA = ZERO ALL. BE SURE HE MEANS IT.. CALL UVT100(CUP,LLDSP,1)T WRITE(6,8951)18951 FORMAT(/,'Really Zero All of sheet [Y/N]? ')O5 READ(IOLVL,8952,END=510,ERR=510)(FORM00ag`^YTADATADATADATADATADATA2(KKI),KKI=1,4).8952 FORMAT(4A1) IF(FORM2(1).NE.'Y')GOTO 9990  CALL UVT100(ED,2) ICODE=-4 GOTO 9990"8950 IF(CMDLIN(2).NE.'E')GOTO 9990 ASSIGN 8953 TO IBACKE GOTO 8104 C GET NAMES18953 IF(L1.LE.0)GOTO 99900 ASSIGN 8954 TO JBACKS GOTO 8109 8954 CONTINUET DO 8955 NI=1,128 8955 FORM2(NI)=0 FORM2(118)=15 DO 8823 NI=1,9.8823 FORM2(119+NI)=DEFVB(1+NI) DO 8956 NI=1,IDELTEC IRX=(ID2-1)*RRW+ID1Y CALL REFLEC(ID2,ID1,IRX)I CALL WRKFIL(IRX,FORM2,1)MC WRITE(7'IRX)FORM2C CALL FVLDST(ID1,ID2,0)1 CALL XVBLST(ID1,ID2,0.0D0)1C FVLD(ID1,ID2)=0BC XVBLS(ID1,ID2)=0.O IPRS=PROW IPCS=PCOL PROW=ID1 PCOL=ID2I ASSIGN 8957 TO NBKIC FIND DISPLAY LOC IF ANY2 GOTO 79058957 PROW=IPRS PCOL=IPCS IF(LR.EQ.0.OR.LC.EQ.0)GOTO 8958 DVS(LR,LC)=DVS(LR,LC)+1.E-10I 8958 CONTINUE ID1=ID1+I1INN ID2=ID2+I2IN1 8956 CONTINUE= GOTO 9990"8011 IF(CMDLIN(1).NE.'X')GOTO 8012 C EXIT TO OS:C SINCE THERE'S NO WORKFILE HERE, MAKE SURE HE MEANS IT... IF(IPSET.NE.0)GOTO 9990 ICODE=6 CALL UVT100(CUP,LLDSP,1)H WRITE(6,3718)B3718 FORMAT(' Exit now may lose data unless sheet has been saved') CALL UVT100(CUP,LLCMD,1)  WRITE(6,3717)+3717 FORMAT(' Confirm Exit Request [Y/N]:')(5 READ(IOLVL,8952,END=510,ERR=510)(FORM2(KKI),KKI=1,4)A1 IF(FORM2(1).NE.'Y'.AND.FORM2(1).NE.'y')GOTO 99905 IF(CMDLIN(2).NE.'D')GOTO 36037C THE XD COMMAND WILL EXIT AND DELETE THE SCRATCH FILE.SC CALL WRKFIL(1,FORM,3) C CLOSE(UNIT=7,DISP='DELETE')E*C FINISH UP WITH DATATRIEVE IF USING IT... CALL DTRFINC NOW CLEAN EXIT.S CALL EXIT 3603 CONTINUE1C CALL WRKFIL(1,FORM,3)EC CALL CLOSE(7)W CALL EXIT"8012 IF(CMDLIN(1).NE.'S')GOTO 8013&C SAVE SHEET TO DISK (NEW SET OF DATA)C NOW JUST PERMITS RESTART...L ICODE=-2 ISTAT=-2A CALL UVT100(ED,2) GOTO 9990 L"8013 IF(CMDLIN(1).NE.'P')GOTO 8014 IRTN=0M CALL PGET(CMDLIN,ICODE,IRTN)R IF(IRTN.EQ.1)GOTO 510 GOTO 9990 8014 CONTINUER"8015 IF(CMDLIN(1).NE.'G')GOTO 8016;C GET INPUT NUMBERS OFF SEQUENTIAL FILE. USE CURRENT ORIGINL ICODE=2 IRTN=0( CALL PGGET(CMDLIN,ICODE,IRTN) IF(IRTN.EQ.1)GOTO 510 RCMODE=-IABS(RCMODE)K3C FORCE RECALC OF EVERYTHING AT LEAST ONCE THROUGH.1$C NOTE ALL'S WELL IF RCMODE WAS 0... GOTO 9990"8016 IF(CMDLIN(1).NE.'W')GOTO 80173C WRITE (PRINT) SCREEN OUT TO FILE (MAY BE PRINTER).C CALL DSPSHT(10) C ICODE=1A ICODE=400)C CODE 10 IS PRINT SECRET CODE TO DSPSHT.0 GOTO 9990 8017 CONTINUEX IF(CMDLIN(1).NE.'H')GOTO 5019 IF(IPSET.NE.0)GOTO 9990 IVVV=01 IVVVV=CMDLIN(2) ivvx=cmdlin(3)C 9308 CONTINUEI- IF(IVVVV.GE.48.AND.IVVVV.LE.57)IVVV=IVVVV-48D& if(ivvx.lt.48.or.ivvx.gt.57)goto 9381c implement 2 digit help code. ivvvx=ivvx-48 ivvv=(ivvv*10)+ivvvx ivvv=min0(ivvv,maxhlp)L 9381 continueR%C SELECT HELP LEVEL 0-9 IF SPECIFIED.T ICODE=30+IVVVC CALL HELP(IVVV)FC IVVV=0C WRITE(6,5020)BC5020 FORMAT(/'Type return to continue, Hn for other Help pages:')2C READ(IOLVL,8952,END=510,ERR=510)(FORM2(K),K=1,4)C IVVVV=FORM2(2)C IF(FORM2(1).EQ.'H')GOTO 9308 C ICODE=2, GOTO 9990 5019 CONTINUELGC *** ALLOW EVALUATION OF A CELL TO PERMIT INTERACTIVE COMMAND FILES TOC1C *** BE CONTROLLED RATIONALLY. KEYWORD IS "TEST"T2 IF(CMDLIN(1).NE.'T'.OR.CMDLIN(2).NE.'E')GOTO 4302C TEST EXPRESSION IS SYNTAX.0C COPY CMDLIN INTO XTNCMD AND FLAG VIA ICODE=430 XTNCNT=0 ICODE=430 DO 4303 N=1,79N XTNCMD(N)=CMDLIN(3+N)HC ALLOW "TE " WITH OPTIONAL SPACE. JUST RETURNS VALUE IN C % VARIABLE.I IF(XTNCMD(N).LT.32)GOTO 4304 XTNCNT=NN 4303 CONTINUE) 4304 CONTINUE8 XTNCMD(XTNCNT+1)=0I GOTO 9990 4302 CONTINUECCIIC HERE ADD SOME CODE TO INSERT __{cell0 IF WE SEE SOMETHING THAT MIGHT BEA0C A VALID CELL NAME IN THE RANGE THAT'S LEGAL...C1 I1=1G I2=16 III=16 IVVVVV=0 IF(CMDLIN(1).LE.32)GOTO 7622OC SKIP NULL COMMANDS<C TRY AND MUNGE OTHER COMMANDS NOT UNDERSTOOD INTO SOMETHINGC AT LEAST REDIRECTABLE... IVVVV=CMDLIN(1)CC KEEP AROUND A FLAG IN IVVVVV THAT WE MESSED AROUND WITH A SPECIAL.8C CHARACTER, ALLOWING LATER FIXUPS FOR REST OF CMD LINE. I00a1a^[Z[[[\[}F(IVVVV.LE.64)IVVVVV=1 IF(IVVVV.LE.64)IVVVV=IVVVV+64)C NOW HAVE ! THRU @ CHARS IN RANGE 96=128) IVVVV=MOD(IVVVV,32)+641;C THUS A=65. MOD(65,32)=1. 1+64=65 SO CHARS GET TRANSFORMEDUBC INTO THEMSELVES. HOWEVER = IS 61. THUS, 61+64=123. 123 MOD 32=27C 27+64=91, CODE FOR [%C FIX THESE UP BY SUBTRACTING 9 AGAINRC THUS 91 - 9 =82, CODE FOR R6 IF(IVVVV.GT.90)IVVVV=IVVVV-9) CMDLIN(1)=IVVVV IF(CMDLIN(1).GT.64)GOTO 7620A 7622 CONTINUE75C ERROR UNLESS WE GET AN ALPHA COMMAND AT THIS POINT.W WRITE(6,8018)"C EMIT ERROR MESSAGE AND SKIP OUT. GOTO 200I 7620 CONTINUEC KK=CMDLIN(2)X KKK=CMDLIN(3)?C IF WE MUNGED A SPECIAL CHAR INTO A LETTER, TERMINATE AFTER IT (C FOR NAME SCAN AND FIX UP REST LATER... IF(IVVVVV.GT.0)CMDLIN(2)=0.- CALL VARSCN(CMDLIN,I1,I2,III,ID1,ID2,IVALID)0 IF(IVVVVV.GT.0)CMDLIN(2)=KK IF(IVALID.EQ.0)GOTO 200 I1=0 CALL FVLDGT(ID1,ID2,I1) IF(I1.EQ.0)GOTO 2005C ENSURE THE CELL WE ARE GRABBING HAS SOMETHING IN ITLC OTHER THAN DEFAULT ALSO.+C LOOKS LIKE AN OK CELL NAME IF IN RANGE...$ IF(ID1.GT.RRW.AND.ID2.LE.1)GOTO 200/C TRY AND MOVE THINGS UP THE LINE AND RESCAN...9C III=PAST END OF OLD ONE... IIV=III+3+80W7C ALLOW TO COPY DOWN 80 CHARS OR SO OF REST OF CMD LINE' IF(IIV.LT.4)GOTO 200N KKK=3 IF(IVVVVV.GT.0)KKK=4I KKKK=KKK+1) DO 7621 IV=KKKK,IIV IVV=IIV+KKKK-IV IVVV=IVV-KKKA CMDLIN(IVV)=CMDLIN(IVVV)0 7621 CONTINUEEC FILL IN NECESSARY PREFIX.O CMDLIN(1)='_' CMDLIN(2)='_' CMDLIN(3)='{' IF(IVVVVV.LE.0)GOTO 7623C CMDLIN(4)=CMDLIN(5) CMDLIN(5)=' '6C INSERT DELIMITERS AS NEEDED FOR MUNGED SPECIAL CHARSC ALSO MOVE RESULT CHAR DOWN... 7623 CONTINUE DO 7624 IV=IIV,132I7624 CMDLIN(IV)=0A2C NULL OUT REST OF COMMAND LINE AFTER THIS STUFF..CD"C if(cmdlin(1).gt.32)WRITE(6,8018)8018 FORMAT('Invalid Command.') "C GO FOR RESCAN OF COMMAND HERE... ISCANX=ISCANX+1:C LIMIT NUMBER OF RESCANS THROUGH COMMAND LINE TO KEEP OUT C OF LOOPS.L IF(ISCANX.GT.3)GOTO 200 GOTO 3871 C GOTO 2002C ERROR ON READIN ADDRESS. REWIND TERMINAL IF USER0C TYPES CTRL Z (EOF), ELSE LEAVE INDIRECT FILES.510 IF(IOLVL.EQ.5)REWIND 5 CLOSE(UNIT=3) FOOBAR=0C IOLVL=5 CLOSE(UNIT=5)8 OPEN(UNIT=5,FILE='SYS$COMMAND:',CARRIAGECONTROL='NONE') GOTO 498R 9990 CONTINUE1 IC HERE CLEAN UP AND RETURN0C FIRST DISPLAY LAST CURRENT COL IN NORMAL VIDEO( IF(IXLSTR.LE.0.OR.IXLSTC.LE.0)GOTO 2000 N1=NRDSP(IXLSTR,IXLSTC) N2=NCDSP(IXLSTR,IXLSTC)C IRRX=(N2-1)*RRW+N1 CALL REFLEC(N2,N1,IRRX).C REWRITE LAST LOCATION WITH NO REVERSE VIDEO.C IF(FVLD(N1,N2).EQ.0)GOTO 2000I. IF(IXLSTC.GT.DCLV.OR.IXLSTR.GT.DRWV)GOTO 2000>C ONLY REDRAW NUMBERS. DIRECT DISPLAY OR NOTHING GETS IGNORED.& IF(ICODE.LT.0.OR.ICODE.EQ.2)GOTO 2000<C NO SENSE REDRAWING IF WE'RE ABOUT TO ERASE DISPLAY ANYWAY. IF(ICODE.GT.30)GOTO 2000E J=8C ADD 6 COLS FOR LABELS#C DROW,DCOL IS CURRENT DISPLAY LOC.G DO 3301 M1=1,IXLSTRC FIND DISPLAY COLUMN TO USE3301 J=J+CWIDS(M1) J=J-CWIDS(IXLSTR)(C USE THISCL+1 TO LET 1ST ROW BE LABELS. ICCC=IXLSTC+2 C JVTINC = 1 IF VT100, 0 IF VT52FC JVTINC NEEDED SINCE UVT100 FOR VT100 DOES BACKSPACE AT THE SGR ENTRYAC AND THUS WE NEED TO CORRECT FOR IT. THIS WAS FIXED IN THE UVT52FC VERSION AND ITS DESCENDANTS. IC1POS=N1 IC2POS=N2 IF(PZAP.NE.0)GOTO 2000E= CALL UVT100(CUP,ICCC,J+JVTINC) !SELECT ROW "IXLSTC", COL "J"  CALL UVT100(SGR,0) C DESELECT REVERSE VIDEO CALL FVLDGT(N1,N2,FVLDTP) ivv=min0(30,cwids(IXLSTR))R2 IF(FVLDTP.EQ.0)WRITE(6,5538)(blanks(iv),iv=1,ivv)C IF(FVLDTP.EQ.0)WRITE(6,5537)C5537 FORMAT(' ')  IF(FVLDTP.EQ.0)GOTO 2000P'CC IF(FVLD(N1,N2).LT.0)READ(7'IRRX)FORME CALL WRKFIL(IRRX,FORM,0)EC READ(7'IRRX)FORM DO 5546 KKKK=1,100I IV=FORM(KKKK) IV=MAX0(IV,32)R5546 FORM(KKKK)=IV IF(FVLDTP.LT.0.OR.FORMFG.NE.0)T2 1 ENCODE(100,8201,CMDLIN)(FORM(II),II=1,100) IF(FORMFG.NE.0)GOTO 4324A DO 6302 KKK=1,9 KKKK=FORM(KKK+119)C KKKK=DFMTS(KKK,IXLSTR,IXLSTC)E6302 DFE(KKK+1)=MAX0(32,KKKK) DFE(11)=32NC 32 = ASCII SPACE DFE(1)='('A DFE(12)=')' CALL TYPGET(N1,N2,TYPE(1,1))  IF(FVLDTP.LE.00ag`^YTADATADATADATADATADATA0)GOTO 4324L IF(TYPE(1,1).NE.2)GOTO 62272 ENCODE(100,DFE,CMDLIN,ERR=4324)DVS(IXLSTR,IXLSTC) GOTO 4324 6227 CONTINUED5 ENCODE(100,DFE,CMDLIN,ERR=4324)LDVS(1,IXLSTR,IXLSTC)E.C REDRAW THIS COL. WITHOUT REVERSE VIDEO HERE.14324 WRITE(6,9000)(CMDLIN(II),II=1,CWIDS(IXLSTR))22C NOTE THIS REDRAWS PREVIOUS COL. IN NORMAL VIDEO.C NO CARRIAGE CTLRC CALL UVT100(SGR,0)C SELECT REVERSE VIDEO OFF 2000 CONTINUEIC NOW COMPLETE ANY CLEANUP.I<C SET CMDLIN TO 0 AT START TO INHIBIT ANY MISINTERPRETATION.BC WE USE CMDLIN AS A BUFFER IN REDRAWIND DSPLY SO DON'T LET IT GET C CLOBBERED. DO 945 K=1,132,945 CMDLIN(K)=03 RETURND END> SUBROUTINE RELVBL(LNIN,LNOUT,INRW,INCL,JOUTR,JOUTC,JRTR,JRTC)BC RELOCATE VARIABLES BELOW/RIGHT OF JRTR,JRTC INTO LNOUT FROM LNIN INCLUDE 'VKLUGPRM.FTN'I PARAMETER CUP=1,ED=11,EL=12 LOGICAL*1 NAME(4),NUMBER(6) LOGICAL*1 LNIN,LNOUT3 DIMENSION LNIN(128),LNOUT(128)=. INTEGER*2 IDOL1,IDOL2,IDOL3,IDOL4,IDOL5,IDOL61 COMMON/DOLLR/IDOL1,IDOL2,IDOL3,IDOL4,IDOL5,IDOL6M LI=1. LO=1GC LI = INPUT LOCATIONHC LO=OUTPUT LOCATION 100 CONTINUE0C IF(LNIN(LI).LT.'A'.OR.LNIN(LI).GT.'Z')GOTO 200 LCC=LNIN(LI)J# IF(LCC.LT.65.OR.LCC.GT.89)GOTO 200L6C WE MUST ENSURE VARSCN ALWAYS SEES AN ALPHA AT START. L1=LI LE=110E LSTC=LE* CALL VARSCN(LNIN,L1,LE,LSTC,ID1,ID2,IVLD)"C IF(ID2.EQ.1.AND.ID1.LE.27)IVLD=02C OMIT MODIFYING ANYTHING IN ROW 0 SO WE DON'T GET"C RANDOM FUNCTION NAMES MUCKED UP. IF(ID2.EQ.1)IVLD=0O IF(IVLD.EQ.0)GOTO 200:C FOUND VARIABLE. NOW GENERATE ASCII ANDSTUFF INTO OUTPUT.)C FIRST DON'T RELOCATE P## AND D## FORMS.1 IF(LNIN(LI+1).EQ.'#')GOTO 250 C RELOCATE NORMAL VARIABLE HERE.CV;C THE NEW VARIABLE IS TO BE DIFFERENT ONLY IF (ID1,ID2) HASAC ID1.GT.JRTR AND ID2.GT.JRTC(' IF(ID1.LT.JRTR.OR.ID2.LT.JRTC)GOTO 210V) IF(ID1.GT.IDOL5.OR.ID2.GT.IDOL6)GOTO 210I,C OK, KNOW NOW THAT WE HAVE TO RELOCATE ALL.;C THEREFORE ADD THE DIFFERENCE BETWEEN DEST AND SRC TO BOTHN C AND CLAMP TO VALID DIMENSIONS.1 IF(IDOL3.NE.0.OR.IDOL1.EQ.0)ID1=ID1+(JOUTR-INRW)(1 IF(IDOL3.NE.0.OR.IDOL2.EQ.0)ID2=ID2+(JOUTC-INCL)V ID1=MAX0(ID1,1) ID2=MAX0(ID2,1)C ID1=MIN0(RRW,ID1)1C ID2=MIN0(RCL,ID2)1 ID1=MIN0(RRCL,ID1) ID2=MIN0(RRCL,ID2)' 210 CONTINUE CALL IN2AS(ID1,NAME)F.C NAME GETS 4 CHARACTERS TO USE FOR COL. LABEL L2=ID2-1, ENCODE(6,1000,NUMBER)L21000 FORMAT(I6)=C NOW NAME AND NUMBER ARRAYS HAVE LETTERS, DIGITS, OR SPACES.%C THROW OUT SPACES AND COPY THE REST.. LI=LSTC DO 202 N=1,46 IF(NAME(N).LE.32)GOTO 202 LNOUT(LO)=NAME(N) LO=LO+1 IF(LO.GT.110)GOTO 300 202 CONTINUE IF(IDOL1.GT.0)LNOUT(LO)=36I$ IF(IDOL1.GT.0.AND.LO.LE.109)LO=LO+1 DO 203 N=1,63 IF(NUMBER(N).LE.32)GOTO 203C IF 32 ISN'T SPACE, LOSEY LNOUT(LO)=NUMBER(N) LO=LO+1 IF(LO.GT.110)GOTO 300 203 CONTINUE IF(IDOL2.EQ.0)GOTO 300T LNOUT(LO)=36, IF(LO.LE.109)LO=LO+1 GOTO 300 250 CONTINUEC JUST COPY DISPLAY FORMS. L1=LSTC-1 DO 251 N=LI,L1H LNOUT(LO)=LNIN(N) LO=LO+1 IF(LO.GT.110)GOTO 300 251 CONTINUE LI=LSTC2C THIS SKIPS OVER THE VARIABLE FOUND, SO WE GO ON. GOTO 300,200 LNOUT(LO)=LNIN(LI) LO=LO+1 LI=LI+1'300 IF(LO.LT.109.AND.LI.LT.109)GOTO 1001@C THIS LOOPS EITHER COPYING LINE OR FINDING VARIABLES TILL DONE. DO 400 N=LO,110400 LNOUT(N)=0 DO 1 N=111,12801 LNOUT(N)=LNIN(N)BC DEFAULT ALL OF FORM LINES EXCEPT FORMULA IDENTICAL TO THE INPUT. RETURN0 ENDCEC STRING EDIT ROUTINE.0 SUBROUTINE SED(LCMD,LIN,LWRK,ARGSTR,XAC,LENGTH) INCLUDE 'VKLUGPRM.FTN'I& LOGICAL*1 LIN(1),LWRK(1),ARGSTR(52,4) LOGICAL*1 LCMD(1),LSU(10) INTEGER*4 III REAL*8 XACICD C OPERATION:6C EDIT LIN TO LWRK, WITH LENGTH VARIABLE HOLDING INPUT6C LENGTH IN CHARACTERS. LCMD HOLDS COMMAND LINE, WHICH4C ULTIMATELY GETS EDITED STRING COPIED BACK INTO IT.C C EDITS::C CHARACTER AT IDELIM IS DELIMITER. REPLACE STRING IN 1ST*C INTERVAL BETWEEN DELIMITERS WITH SECOND. C HOWEVER:I=C &1 TO &4 GET CONTENTS (UP TO NULL) OF ARGSTR(X,1) TO (X,4)DCI8C &5 RETURNS XAC VALUE CONVERTED TO DECIMAL INTEGER AND C PRINTED.D<C &6 RETURNS XAC VALUE CONVERTED TO00a1a^[Z[[[\[} ASCII CODE (1 BYTE) AND C INSERTED.>C XAC ENTERS WITH CONTENTS OF ACCUMULATOR Z (TO AVOID TOO MUCH<C DIFFICULTY IN USING IT OWING TO THE UBIQUITY OF USE OF %).<C WE ENTER JUST POINTING AT THE COMMAND LINE AFTER THE ENTER7C AND ITS SPACE. ASSUME 1ST CHARACTER IS OUR DELIMITER.3 DO 335 IV=1,80 335 LWRK(IV)=0 IDELIM=LCMD(1) ID2=INDEX(LCMD(2),IDELIM) IF(ID2.GE.LENGTH)GOTO 100(C NOW HAVE 1ST STRING, OF NONZERO LENGTH7C FIND SECOND STRING NOW. EITHER MAY BE OF 0 LENGTH BUT)&C BOTH MUST BE DEFINED BY A DELIMITER. ID3=INDEX(LCMD(2+ID2),IDELIM) IF(ID3.GE.LENGTH)GOTO 1008C WELL, WE GOT IT SOMEHOW. NOW TRY AND EDIT THE JUNK IN.&C (NOTE WE WANT TO FILL ALL OF LENGTH) INLIN=1 INWRK=1 IVV=ID3+ID2+2 DO 336 IV=IVV,LENGTH0336 LCMD(IV)=0 LSA=ID2-1 LSB=ID3-1 LSSB=2+ID2C LZR=0 DO 1 N=1,LENGTH IF(LSA.GT.0)GOTO 350R=C ZERO LENGTH INITIAL STRING, SO ASSUME HE WANTS TO APPEND TOEC EXISTING STRING AT THE END.E-C (HANDY FOR ADDING TO FORMULAE OR THE LIKE.)L IF(LIN(N).EQ.0)GOTO 351&C JUST COPY THE INPUT FIRST AND GO OFF GOTO 2X 351 CONTINUE C HERE WE HAVE THE TERMINAL NULL LZR=LZR+12C ALLOW US TO PRETEND FOR ONCE THAT WE GOT A MATCH IF(LZR.EQ.1)GOTO 222R GOTO 1 350 CONTINUE IF(LIN(INLIN).EQ.0)GOTO 1( CALL SSCMP(LIN(INLIN),LCMD(2),LSA,ICOD) IF(ICOD.EQ.0)GOTO 2C HERE HAVE TO SUBSTITUTE0C PASS STRING TO SUBSTITUTE ON INPUT LINE FIRST. 222 CONTINUE INLIN=INLIN+LSA(C ALLOW ZERO LENGTH SUBSTITUTE CHARACTER IF(LSB.LE.0)GOTO 1IC DO 6 M=1,LSB M=1 106 CONTINUE IF(LCMD(LSSB+M-1).EQ.'&')GOTO 7 8 CONTINUE;C JUST COPY ONE CHARACTER OF THE SUBSTITUTE STRING IN HERE.R LWRK(INWRK)=LCMD(LSSB+M-1)H! IF(INWRK.LT.LENGTH)INWRK=INWRK+1  GOTO 68 7 CONTINUEC HANDLE & FORMS5 IF(LCMD(LSSB+M).LT.'1'.OR.LCMD(LSSB+M).GT.'6')GOTO 8A;C REQUIRE ALL FORMS TO BE &1 THRU &6 TO BE DEALT WITH HERE.  M=M+1! IF(LCMD(LSSB+M-1).GT.'4')GOTO 10)(C HERE JUST HANDLE ARGSTR SUBSTITUTIONS. II=LCMD(LSSB+M-1) II=II-48NC II IS NOW THE INDEX. DO 11 MM=1,52 LWRK(INWRK)=ARGSTR(MM,II)! IF(INWRK.LT.LENGTH)INWRK=INWRK+1R IF(ARGSTR(MM,II).EQ.0)GOTO 12 11 CONTINUEE 12 CONTINUE  M=M+1%C PASS THE NUMBER OF THE &NUMBER FORMY GOTO 6D 10 CONTINUE(C HANDLE ZAC FORMS M=M+1C PASS THE DIGIT! IF(LCMD(LSSB+M-2).EQ.'5')GOTO 14 C FILL IN ZAC AS AN INTEGER II=32# IF(XAC.GE.1.AND.XAC.LT.256.)II=XACE!C ONLY HANDLE CONVERSION IF LEGALC LWRK(INWRK)=II,! IF(INWRK.LT.LENGTH)INWRK=INWRK+1D GOTO 6N 14 CONTINUEK C HANDLE NUMERIC CONVERSION HERE LSU(1)=08 III=0 IF(ABS(XAC).LT.9999999.)III=XAC ENCODE(10,15,LSU,ERR=22)III 15 FORMAT(I9) 22 DO 16 MK=1,10 IF(LSU(MK).EQ.0)GOTO 6T IF(LSU(MK).EQ.' ')GOTO 16 LWRK(INWRK)=LSU(MK)! IF(INWRK.LT.LENGTH)INWRK=INWRK+1G 16 CONTINUES 6 CONTINUE M=M+1 IF(M.LE.LSB)GOTO 106T GOTO 1 2 CONTINUE3C HERE JUST ANOTHER CHARACTER TO MOVE, DO THE MOVE.I LWRK(INWRK)=LIN(INLIN)0! IF(INLIN.LT.LENGTH)INLIN=INLIN+1C! IF(INWRK.LT.LENGTH)INWRK=INWRK+1F 1 CONTINUE L%C COPY BACK OUT TO CMDLIN AFTER FIXUPA IF(INWRK.GE.LENGTH)GOTO 3 DO 4 N=INWRK,LENGTH 4 LWRK(N)=0V 3 CONTINUE8C REPLACE COMMAND LINE WITH EDITED STRING FOR ENTRY NOW. DO 5 N=1,LENGTH5 LCMD(N)=LWRK(N)A 100 CONTINUE RETURNM END8C STRING COMPARE 2 ARRAYS UNTIL EITHER ENDSTRING IS SEENC ON ONE OR MISMATCH IS SEEN.F' SUBROUTINE SSCMP(LINA,LINB,LENM,ICODE)2 DIMENSION LINA(1),LINB(1) LOGICAL*1 LINA,LINB ICODE=1 DO 1 N=1,LENM(c IF(LINA(N).EQ.0.OR.LINB(N).EQ.0)GOTO 2 IF(LINA(N).NE.LINB(N))ICODE=0 IF(ICODE.NE.1)GOTO 2V 1 CONTINUE 2 CONTINUE RETURNO END% SUBROUTINE SVBL(CMDLIN,LA,N,LE,FORM)3 INCLUDE 'VKLUGPRM.FTN'V" INTEGER*2 VLEN(9),TYPE(RRWP,RCLP) LOGICAL*1 AVBLS(20,27)  REAL*8 XVBLS(RRWP,RCLP) COMMON/V/TYPE,AVBLS,XVBLS,VLEND' LOGICAL*1 CMDLIN(132),FORM(128),NBF(8)8 INTEGER*2 LA,N,LE NI=N  N=N+25C LOOK FOR V1,V2 VARIABLES; THEN GET NAME TO FILL IN.T LAA=N LEE=LER, CALL VARSCN(CMDLIN,LAA,LEE,LSTC,I1,I2,IVLD) IF(IVLD.LE.0)GOTO 990 LAA=LSTC+1AC ACCEPT ANY DELIMITER LEE=LEN, CALL VARSCN(CMDLIN,LAA,LEE,LSTC,J1,J2,IVLD)00ag`^YTADATADATADATADATADATA IF(IVLD.LE.0)GOTO 990C XX=XVBLS(I1,I2)M CALL XVBLGT(I1,I2,XX) C XX IS COL #,C XY=XVBLS(J1,J2)-1.09 CALL XVBLGT(J1,J2,XY)+ IF(XX.LE..99.OR.XX.GT.DFLOAT(RRW))GOTO 990 + IF(XY.LE..99.OR.XY.GT.DFLOAT(RCL))GOTO 9900 IC=XX CALL IN2AS(IC,NBF)T IR=XY ENCODE(3,300,NBF(5))IRN300 FORMAT(I3.3) NL=NI:C FILL IN DECODED VARIABLE NAME, ZOTTING OUT EXTRA SPACES. DO 400 NN=1,7 FORM(NL)=NBF(NN)= IF(FORM(NL).GT.64)NL=NL+1 400 CONTINUE?C NOW ADJUST CMDLIN AND SET RETURN UP FOR ORIGINAL LENGTH FIXUPT.C NOTE NI IS WHERE N WAS ON START (INDEX OF _)4C AND LSTC IS NEXT CHAR AFTER 2ND VARIABLE ON CMDLIN>C AND NL IS NEXT CHAR IN FORM. ASSUME THAT FORM IS NOW SHORTERC AND MOVE CMDLIN DOWN.9 N=NL7 LE=LE-LSTC+NL DO 401 M=N,LE CMDLIN(M)=CMDLIN(M+LSTC-NL) 401 CONTINUEC HOPE ALL'S WELL NOW... RETURNI 990 CONTINUE FORM(N)=CMDLIN(N) RETURNG END% SUBROUTINE SSTR(CMDLIN,LA,N,LE,FORM)' LOGICAL*1 CMDLIN(132),FORM(128),NBF(8)  INTEGER*2 LA,N,LE INCLUDE 'VKLUGPRM.FTN'0" INTEGER*2 VLEN(9),TYPE(RRWP,RCLP) LOGICAL*1 AVBLS(20,27)1" REAL*8 XVBLS(RRWP,RCLP),XX,VP,TMP COMMON/V/TYPE,AVBLS,XVBLS,VLEN) NI=N  N=N+25C LOOK FOR V1,V2 VARIABLES; THEN GET NAME TO FILL IN.t LAA=N LEE=LE(, CALL VARSCN(CMDLIN,LAA,LEE,LSTC,I1,I2,IVLD) IF(IVLD.LE.0)GOTO 990C XX=XVBLS(I1,I2)) CALL XVBLGT(I1,I2,XX) VP=128.D0**7' DO 1 NN=1,8 TMP=AINT(XX/VP) NBF(NN)=TMP VP=VP/128.D0  XX=XX-(128.D0*TMP)( 1 CONTINUE8C NOW NBF HAS 8 BYTES OF DATA CORRESPONDING TO DE-HASHEDC STRING. COPY TO FORM.T NL=NI DO 2 NN=1,8 FORM(NL)=NBF(NN)3 IF(NN.GE.1)NL=NL+1K 2 CONTINUE?C NOW ADJUST CMDLIN AND SET RETURN UP FOR ORIGINAL LENGTH FIXUP0.C NOTE NI IS WHERE N WAS ON START (INDEX OF _)0C AND LSTC IS NEXT CHAR AFTER VARIABLE ON CMDLIN>C AND NL IS NEXT CHAR IN FORM. ASSUME THAT FORM IS NOW SHORTERC AND MOVE CMDLIN DOWN.  N=NLD LE=LE-LSTC+NL DO 401 M=N,LE CMDLIN(M)=CMDLIN(M+LSTC-NL) 401 CONTINUEC HOPE ALL'S WELL NOW... RETURN 990 FORM(N)=CMDLIN(N)N RETURN. END# SUBROUTINE PGET(CMDLIN,ICODE,IRTN)C INCLUDE 'VKLUGPRM.FTN'TG PARAMETER CUP = 1, CUU = 2, CUD = 3, CUF = 4, CUB = 5, DECDWL = 6RG $, DECDHL = 7, DECRC = 8, DECSC = 9, DECSWL = 10, ED = 11, EL = 12TA $, SGR = 13, NEL = 14, SCS = 15, SM = 16, RM = 17, ANSI = 18O=C NOTE: THROUGHOUT, ROWS ARE ACTUALLY DOWN, COLUMNS ACROSS ONIAC SCREEN. ROW 0 IN DISPLAY IS THE 27 ACCUMULATORS A-Z AND %, WITH0>C % BEING THE LAST-COMPUTED VALUE FROM THE CALC PROGRAM, WHICHAC KNOWS HOW TO ACCESS THE DATA BUT IS JUST PASSED COMMAND STRINGSI C FROM THE DISK BASED FILE HERE. LOGICAL*1 FORM,FVLD,CMDLIN(132) INTEGER*4 VNLT3( LOGICAL*1 LET1,LET2,FORM2(128),NMSH(80) COMMON/NMSH/NMSHv INTEGER*2 ICREF,IRREF COMMON/MIRROR/ICREF,IRREF REAL*8 XVBLS(RRWP,RCLP) INTEGER KPYBAK INTEGER*2 IOLVL INTEGER*4 JVBLS(2,RRWP,RCLP)R COMMON/IOLVL/IOLVLODC IOLVL IS LUN FOR XQTCMD TO USE (NORMALLY 3 FOR INDIRECT FILES OR 5?C FOR TERMINAL. WE USE 5,6 FOR TERMINAL INPUT, OUTPUT NORMALLY.F$ DIMENSION FORM(128),FVLD(RRWP,RCLP) LOGICAL*1 DFE,FVWRK,FVWRK2  DIMENSION DFE(12)AC FVLD FLAG 0 = NO FORMULA, -1= DISPLAY FORMULA ITSELF, NOT VALUEL=C 1=VALID ACTIVE FORMULA THERE TO EVALUATE. INITIALLY ALL 0'SLC SO INITIALLY IGNORE.?C FVLD=2 = CONST NUMERIC ONLY, COMPUTED. =3, CONST, NEEDS CALC.VCIDC ROUTINE IN2AS COMPUTES ASCII CHARACTER NAMES OF SUBSCRIPTS IN1,IN2=C SO DISPLAY CAN HAVE THEM. IT MUST BE THE INVERSE OF VARSCN.E( INTEGER*2 PROW,PCOL,DROW,DCOL,DRWV,DCLV INTEGER*2 LLCMD,LLDSP6 COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRWV,DCLV,LLCMD,LLDSP( DIMENSION NRDSP(DRW,DCL),NCDSP(DRW,DCL) COMMON/D2R/NRDSP,NCDSPE" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9)) LOGICAL*1 AVBLS(20,27),VBLS(8,RRWP,RCLP)E REAL*8 XAC,ZAC/ EQUIVALENCE(XAC,AVBLS(1,27)),(ZAC,AVBLS(1,26))L REAL*8 XXAC,XYAC21 EQUIVALENCE(XXAC,AVBLS(1,24)),(XYAC,AVBLS(1,25))M LOGICAL*1 ARGSTR(52,4)S COMMON/ARGSTR/ARGSTRD&C EQUIVALENCE(ARGSTR(1,1),VBLS(1,1,1))<C USE VBLS ENTRIES THAT WOULD CORRESPOND TO THE UNUSED SPACE>C IN VBLS ARRAY FOR ACCUMULATORS A-Z TO HOLD UP TO 4 ARGUM00a1a^[Z[[[\[}ENTS<C FROM A COMMAND < WHICH READS IN SPACE-DELIMITED ARGUMENTS.4C THIS WILL ALLOW INTERACTIVE ENTRY OF DATA AND AUTO1C SUBSTITUTION OF ARGUMENTS VIA THE EDit COMMAND.E$ EQUIVALENCE(XVBLS(1,1),VBLS(1,1,1))% EQUIVALENCE(JVBLS(1,1,1),XVBLS(1,1))3 COMMON/V/TYPE,AVBLS,VBLS,VLEN COMMON/KLVL/KLVLT LOGICAL*1 DEFVB(12) COMMON/DEFVBX/DEFVB" INTEGER*2 FORMFG,RCFGX,PZAP,RCONE$ COMMON/FFGG/FORMFG,RCFGX,PZAP,RCONE?C PZAP CONTROLS WHETHER TO REDRAW SCREEN. IF ZERO, NORMAL. IF 1A>C (NONZERO ANYHOW), INHIBITS RE DISPLAY. V COMMAND RESETS TO 0 C AND VM INHIBITS. (SETS TO 1).CKCC DISPLAY ARRAY WILL KEEP A COPY OF VARIABLES DISPLAYED AND FORMATSTAC USED LOCALLY WHICH DISPLAY ROUTINE CAN USE TO SEE WHAT ACTUALLYBC NEEDS TO BE REFRESHED ON SCREEN. DRWV AND DCLV ARE COLS, ROWS OF#C DISPLAY ACTUALLY USED FOR SCREEN.K INTEGER*2 CWIDS(DRW)2HC CWIDS IS WIDTHS IN CHARACTERS OF COLUMNS ON DISPLAY. NOTE THAT BECAUSEHC OF PECULIAR INVERSION WHICH I AM TOO LAZY TO CORRECT IT IS DIMENSIONEDC AS DRW NOT DCL.  REAL*8 DVS(DRW,DCL) LOGICAL*1 LETRD INTEGER*4 INUMEM INTEGER*4 IIRO,IICO INTEGER*4 LDVS(2,DRW,DCL)" EQUIVALENCE(LDVS(1,1,1),DVS(1,1)) COMMON /FVLDC/FVLDCC LOGICAL*1 DFMTS(10,DRW,DCL) C 10 CHARACTERS PER ENTRY. COMMON/DSPCMN/DVS,CWIDSCGC PUT NUMBERS OUT TO FILED%C USES RELATIVE FORMS TO CURRENT POS.I;C PD = PUT OURT DISPLAY SHEET. PP = PUT OUT PHYSICAL SHEET.I&C ONLY WRITES PHYSICALLY PRESENT DATA."C P/D RRR,CCC,FORMULA,VALID,FORMAT6C N IN 3RD CHR (PPN/PDN) SAVES NUMBERS, ELSE FORMULAS. ICODE=1 CLOSE(UNIT=4,ERR=7954)E7954 CALL UVT100(CUP,LLCMD,1)L CALL UVT100(EL,2)C ASK FOR FILE NAMEU WRITE(6,7952)* READ(IOLVL,7953,END=510,ERR=510)ILN,FORM27952 FORMAT('Enter filename>')7953 FORMAT(Q,128A1)<C FORMAT Q RETURNS NUMBER CHARACTERS READ. CAN USE KLUDGE TO<C FIND THIS BY LOOKING FOR LAST NONSPACE BUT THIS IS EASIER. ILN=MIN0(ILN,127) FORM2(ILN+1)=0 / OPEN(UNIT=4,FILE=FORM2,CARRIAGECONTROL='LIST',% 1 ACCESS='SEQUENTIAL',RECL=512,I 1 STATUS='NEW',ERR=9990)C CALL ASSIGN(4,FORM2) IIVV=MIN0(DCL,15)7C WRITE OUT THE NAME ARRAY FOLLOWED BY SOME GLOBAL INFOOC SO THE STUFF GETS PRESERVED.8C FILL SPACES INTO NAME SO THE SAVED RECORD READS IN OK. DO 6952 III=1,80C IVV=NMSH(III)6952 NMSH(III)=MAX0(32,IVV)I4 WRITE(4,6951,ERR=9990)NMSH,ICREF,IRREF,(CWIDS(III), 1 III=1,IIVV),DRWV,DCLV06951 FORMAT(80A1,64I3)3C *** NOTE THAT IF DCL GETS BIGGER THAN 96 WE LOSE.C+C ADD ABILITY TO SPECIFY MAX DISPL. TO SAVEO CALL UVT100(CUP,LLCMD,1)  CALL UVT100(EL,2) WRITE(6,7980):7977 FORMAT('Enter max. displ down to save or 0 for all>')% READ(IOLVL,7978,END=510,ERR=510)LDXMG6950 FORMAT(80A1)T7978 FORMAT(I7)G CALL UVT100(CUP,LLCMD,1)I CALL UVT100(EL,2) WRITE(6,7977);7980 FORMAT('Enter max. displ right to save or 0 for all>')B% READ(IOLVL,7978,END=510,ERR=510)MDXMC IF(MDXM.LE.0)MDXM=12000 IF(LDXM.LE.0)LDXM=12000@C 12000 IS "AN ARBITRARILY LARGE NUMBER TO ASSURE THAT ALL VALIDKC RANGES ARE SAVED". IT MUST BE SMALL ENOUGH TO ASSURE WE DON'T OVERFLOW ANCC INTEGER THOUGH.0 IF(CMDLIN(2).NE.'P')GOTO 7950 DO 7951 ICO=PCOL,RCLW DO 7951 IRO=PROW,RRWT0C GO DOWN AND RIGHT ONLY. ALLOW MIXING THIS WAY.C IRX=(ICO-1)*RRW+IRO1 CALL REFLEC(ICO,IRO,IRX)) IDRO=IRO-PROW+1 IDCL=ICO-PCOL+1* IF(IDRO.GT.LDXM.OR.IDCL.GT.MDXM)GOTO 7951C FORM DISPLACEMENT LOCATORS CALL FVLDGT(IRO,ICO,FVLD(1,1))F IF(FVLD(1,1).EQ.0)GOTO 7951 CALL WRKFIL(IRX,FORM2,0)TC READ(7'IRX)FORM2 IF(FORM2(119).EQ.2)FORM2(119)=3" IF(FORM2(119).EQ.-2)FORM2(119)=-3 CALL TYPGET(IRO,ICO,TYPE(1,1))D IF(CMDLIN(3).NE.'N')GOTO 5402:C FOR FORMULAS, EMIT THEM ANYHOW... NUMBERS USUALLY ARE 0. IF(FVLD(1,1).LT.0)GOTO 5402?C EMIT NUMBERS, NOT FORMATS **** CHECK 4 OR 2, ASSUME 4=INTEGERT LETR=80C 80 = UPPERCASE 'P' IN ASCII) ASSIGN 5405 TO INUMEM 6400 CONTINUE&C INTERNAL PROC TO EMIT NUMERIC VALUES>C TO CALL, SET LETR TO EITHER 80 OR 112 (UPPER OR LOWERCASE P) CALL XVBLGT(IRO,ICO,XVBLS(1,1))9C FLAG VALUE WITH LOWER CASE P HERE INSTEAD OF UPPER CASE C AND GENERALL00ag`^YTADATADATADATADATADATAY EMIT IT FIRSTI4 IF(ABS(TYPE(1,1)).EQ.4)WRITE(4,5403)LETR,IDRO,IDCL, 1 JVBLS(1,1,1)!5403 FORMAT(A1,I5,',',I5,',',I15)C4 IF(ABS(TYPE(1,1)).NE.4)WRITE(4,5404)LETR,IDRO,IDCL, 1 XVBLS(1,1)$5404 FORMAT(A1,I5,',',I5,',',D30.19) GOTO INUMEM,(5405,6406) C GOTO 5405 5402 CONTINUER"C FIND END OF TEXT IN FORMULA AREA DO 4330 IV=2,110 IVVV=113-IV IF(FORM2(IVVV).GT.32)GOTO 4331F 4330 CONTINUEI 4331 CONTINUEE C SAVE ON PPX IN EFFICIENT FORM.!C DON'T WRITE OUT TRAILING NULLS.T.C ENSURE FORMAT HAS NO NULLS IN IT DURING SAVE DO 358 IV=120,128$358 IF(FORM2(IV).LT.' ')FORM2(IV)=32 IF(CMDLIN(3).EQ.'F')GOTO 6404C PPF WILL SAVE FORMULA ONLY'C PPA WILL SAVE ALL (I.E., NUMERIC TOO)E?C SAVE THE NUMBERS FIRST SO WE CAN HAVE GRAPHICS ETC. FIND THEMIC FIRST WITHOUT SPECIAL WORK.T LETR=112=>C LOWERCASE P FLAGS DOUBLE SAVE STUFF. NORMAL PPN IS UPPERCASEC P. ASSIGN 6406 TO INUMEM.C NOW GO WRITE FIRST LINE OF STUFF NUMERICALLY GOTO 6400 6406 CONTINUEL@C NOW HAVE NUMERIC LINE WRITTEN. WRITE 2ND LINE ALSO SO WE DON'TC CONFUSE GRAPHICS PGMS.9 WRITE(4,7956)FORM2(119),(FORM2(IV),IV=120,128),TYPE(1,1)0BC NOW HAVE THE SPECIAL RECORD DONE, GO AHEAD AND WRITE THE FORMULAC TOO... 6404 CONTINUEN(C WRITE OUT THE FORMULA IF CALLED FOR...- WRITE(4,7955)IDRO,IDCL,(FORM2(IV),IV=1,IVVV) 5405 CONTINUEN:C DUMP TO SERIAL FILE IN OUR OWN FORMAT, BUT ALL IN ASCII.$7955 FORMAT('P',I5,',',I5,',',128A1)C NOTE LONG RECORDS.9 WRITE(4,7956)FORM2(119),(FORM2(IV),IV=120,128),TYPE(1,1)E7956 FORMAT(I3,',',9A1,',',I5) 7951 CONTINUE 2951 CONTINUEDC#(C NOW SAVE NRDSP AND NCDSP MAPPINGS TOO. IF(CMDLIN(4).NE.'M')GOTO 6541:C SKIP THE SAVE OF MAPPING UNLESS 4TH CHAR OF COMMAND IS MC (FOR "MAPPING")T MXIRO=DRWVJ MXICO=DCLV. IF(CMDLIN(5).NE.'A')GOTO 6549 MXIRO=DRW MXICO=DCL'C "MA" SUFFIX MEANS SAVE ALL OF MAPPING ,C "M" SUFFIX ALONE SAVES JUST DISPLAYED PAGE 6549 CONTINUEE DO 6540 IRO=DROW,MXIRO DO 6540 ICO=DCOL,MXICON IIRO=IRO+64000. IICO=ICO+640000C NOTE SPECIAL FLAG."6955 FORMAT('M',I5,',',I5,',',2I7)0 WRITE(4,6955,ERR=6541)IIRO,IICO,NRDSP(IRO,ICO), 1 NCDSP(IRO,ICO)8C WRITE A SECOND RECORD BUT DON'T CARE WHAT IT HAS IN ITC SO JUST REPEAT THE LAST...9 WRITE(4,7956)FORM2(119),(FORM2(IV),IV=120,128),TYPE(1,1)L 6540 CONTINUE, 6541 CONTINUE0 CLOSE(UNIT=4) GOTO 9990"7950 IF(CMDLIN(2).NE.'D')GOTO 9990 DO 7957 ICO=DCOL,DCLC DO 7957 IRO=DROW,DRWS IDRO=IRO-DROW+1 IDCL=ICO-DCOL+1* IF(IDRO.GT.LDXM.OR.IDCL.GT.MDXM)GOTO 7957 NR=NRDSP(IRO,ICO) NC=NCDSP(IRO,ICO)C IRX=(NC-1)*RRW+NRE CALL REFLEC(NC,NR,IRX)) CALL FVLDGT(NR,NC,FVLD(1,1))1 IF(FVLD(1,1).EQ.0)GOTO 7957 CALL WRKFIL(IRX,FORM2,0)C READ(7'IRX)FORM2 IF(FORM2(119).EQ.2)FORM2(119)=3" IF(FORM2(119).EQ.-2)FORM2(119)=-3 IF(CMDLIN(3).NE.'N')GOTO 5412?C EMIT NUMBERS, NOT FORMATS **** CHECK 4 OR 2, ASSUME 4=INTEGERE IF(FVLD(1,1).LT.0)GOTO 5412)C ALWAYS EMIT LABELS EVEN IN NUMERIC SAVEI CALL TYPGET(NR,NC,TYPE(1,1))O CALL XVBLGT(NR,NC,XVBLS(1,1)); IF(ABS(TYPE(1,1)).EQ.4)WRITE(4,5413)IDRO,IDCL,JVBLS(1,1,1),"5413 FORMAT('P',I5,',',I5,',',I15)9 IF(ABS(TYPE(1,1)).NE.4)WRITE(4,5414)IDRO,IDCL,XVBLS(1,1)L%5414 FORMAT('P',I5,',',I5,',',D30.19)I GOTO 5415 5412 CONTINUE=, WRITE(4,7958)IDRO,IDCL,(FORM2(IV),IV=1,110) 5415 CONTINUE$7958 FORMAT('D',I5,',',I5,',',128A1) DO 359 IV=120,128$359 IF(FORM2(IV).LT.' ')FORM2(IV)=329 WRITE(4,7956)FORM2(119),(FORM2(IV),IV=120,128),TYPE(1,1)N 7957 CONTINUE'+C ALLOW SAVE OF MAPPING TOO AS APPROPRIATE.S GOTO 2951C CLOSE(UNIT=4)L 9990 RETURNG 510 CONTINUE IRTN=1 RETURNR END SUBROUTINE PGGET(CMDLIN)L INCLUDE 'VKLUGPRM.FTN'PG PARAMETER CUP = 1, CUU = 2, CUD = 3, CUF = 4, CUB = 5, DECDWL = 6GG $, DECDHL = 7, DECRC = 8, DECSC = 9, DECSWL = 10, ED = 11, EL = 12LA $, SGR = 13, NEL = 14, SCS = 15, SM = 16, RM = 17, ANSI = 18R=C NOTE: THROUGHOUT, ROWS ARE ACTUALLY DOWN, COLUMNS ACROSS ONUAC SCREEN. ROW 0 IN DISPLAY IS THE 27 ACCUMULATORS A-Z AND %, WITH >C % BEING THE LAST-COMPUTED VALUE FROM THE CALC PROGRAM, WHICHAC KNOWS 00a1a^[Z[[[\[}HOW TO ACCESS THE DATA BUT IS JUST PASSED COMMAND STRINGS C FROM THE DISK BASED FILE HERE. LOGICAL*1 FORM,FVLD,CMDLIN(132) INTEGER*4 VNLTB( LOGICAL*1 LET1,LET2,FORM2(128),NMSH(80) COMMON/NMSH/NMSH REAL*8 R8WK REAL*8 XVBLS(RRWP,RCLP) INTEGER*2 ICREF,IRREF COMMON/MIRROR/ICREF,IRREF INTEGER KPYBAK) INTEGER*2 IOLVL INTEGER*4 JVBLS(2,RRWP,RCLP) COMMON/IOLVL/IOLVLODC IOLVL IS LUN FOR XQTCMD TO USE (NORMALLY 3 FOR INDIRECT FILES OR 5?C FOR TERMINAL. WE USE 5,6 FOR TERMINAL INPUT, OUTPUT NORMALLY.E$ DIMENSION FORM(128),FVLD(RRWP,RCLP) LOGICAL*1 DFE,FVWRK,FVWRK20 DIMENSION DFE(12)AC FVLD FLAG 0 = NO FORMULA, -1= DISPLAY FORMULA ITSELF, NOT VALUE =C 1=VALID ACTIVE FORMULA THERE TO EVALUATE. INITIALLY ALL 0'SLC SO INITIALLY IGNORE.?C FVLD=2 = CONST NUMERIC ONLY, COMPUTED. =3, CONST, NEEDS CALC.ICSDC ROUTINE IN2AS COMPUTES ASCII CHARACTER NAMES OF SUBSCRIPTS IN1,IN2=C SO DISPLAY CAN HAVE THEM. IT MUST BE THE INVERSE OF VARSCN. ( INTEGER*2 PROW,PCOL,DROW,DCOL,DRWV,DCLV INTEGER*2 LLCMD,LLDSP6 COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRWV,DCLV,LLCMD,LLDSP( DIMENSION NRDSP(DRW,DCL),NCDSP(DRW,DCL) COMMON/D2R/NRDSP,NCDSP " INTEGER*2 TYPE(RRWP,RCLP),VLEN(9) INTEGER*4 IRRW,ICCLAC ALLOW BIG NUMBERS HERE SO WE CAN SUBTRACT 64000 AND STILL AVOIDLC WRAP AROUND...@C THIS AVOIDS POSSIBLE NEG NUMBER PROBLEMS IN OTHER PROGRAMS FORC GRAPHS, ETC.) LOGICAL*1 AVBLS(20,27),VBLS(8,RRWP,RCLP)N REAL*8 XAC,ZACO/ EQUIVALENCE(XAC,AVBLS(1,27)),(ZAC,AVBLS(1,26))I REAL*8 XXAC,XYACM1 EQUIVALENCE(XXAC,AVBLS(1,24)),(XYAC,AVBLS(1,25)) LOGICAL*1 ARGSTR(52,4)N COMMON/ARGSTR/ARGSTRT&C EQUIVALENCE(ARGSTR(1,1),VBLS(1,1,1))<C USE VBLS ENTRIES THAT WOULD CORRESPOND TO THE UNUSED SPACE>C IN VBLS ARRAY FOR ACCUMULATORS A-Z TO HOLD UP TO 4 ARGUMENTS<C FROM A COMMAND < WHICH READS IN SPACE-DELIMITED ARGUMENTS.4C THIS WILL ALLOW INTERACTIVE ENTRY OF DATA AND AUTO1C SUBSTITUTION OF ARGUMENTS VIA THE EDit COMMAND.$ EQUIVALENCE(XVBLS(1,1),VBLS(1,1,1))% EQUIVALENCE(JVBLS(1,1,1),XVBLS(1,1))( COMMON/V/TYPE,AVBLS,VBLS,VLEN COMMON/KLVL/KLVLR LOGICAL*1 DEFVB(12) COMMON/DEFVBX/DEFVB" INTEGER*2 FORMFG,RCFGX,PZAP,RCONE INTEGER*2 RCMODE,IRCE1,IRCE2Y2 COMMON/FFGG/FORMFG,RCFGX,PZAP,RCONE,RCMODE,IRCE1, 1 IRCE2G?C PZAP CONTROLS WHETHER TO REDRAW SCREEN. IF ZERO, NORMAL. IF 1E>C (NONZERO ANYHOW), INHIBITS RE DISPLAY. V COMMAND RESETS TO 0 C AND VM INHIBITS. (SETS TO 1).C,CC DISPLAY ARRAY WILL KEEP A COPY OF VARIABLES DISPLAYED AND FORMATSEAC USED LOCALLY WHICH DISPLAY ROUTINE CAN USE TO SEE WHAT ACTUALLY9BC NEEDS TO BE REFRESHED ON SCREEN. DRWV AND DCLV ARE COLS, ROWS OF#C DISPLAY ACTUALLY USED FOR SCREEN.( INTEGER*2 CWIDS(DRW)HC CWIDS IS WIDTHS IN CHARACTERS OF COLUMNS ON DISPLAY. NOTE THAT BECAUSEHC OF PECULIAR INVERSION WHICH I AM TOO LAZY TO CORRECT IT IS DIMENSIONEDC AS DRW NOT DCL.  REAL*8 DVS(DRW,DCL) INTEGER*4 LDVS(2,DRW,DCL)" EQUIVALENCE(LDVS(1,1,1),DVS(1,1)) COMMON /FVLDC/FVLDN INTEGER*2 NCEL,NXINIE COMMON/NCEL/NCEL,NXINIDC LOGICAL*1 DFMTS(10,DRW,DCL)LC 10 CHARACTERS PER ENTRY. COMMON/DSPCMN/DVS,CWIDSCN7952 FORMAT('Enter filename>')7953 FORMAT(Q,128A1)6950 FORMAT(80A1)E7978 FORMAT(I7)W7956 FORMAT(I3,',',9A1,',',I5) CLOSE(UNIT=4,ERR=7960)A7960 CALL UVT100(CUP,LLCMD,1)  CALL UVT100(EL,2)C GET FILE NAME WRITE(6,7952)* READ(IOLVL,7953,END=510,ERR=510)ILN,FORM2 ILN=MIN0(127,ILN) FORM2(ILN+1)=0EHC SPECIAL "FAST READ" MODE TO SET UP DATA AREAS ON GETTING OLD SHEETS... NXINI=1 LDXM=INDEX(FORM2,'/').C IF FILE IS FILENAME/M WE WON'T DO IT FAST...& IF(LDXM.LE.0.OR.LDXM.GE.ILN)GOTO 8400 FORM2(LDXM)=00C TERMINATE AFTER THE / AND SET NXINI TO 0 AGAIN NXINI=0 8400 CONTINUER/ OPEN(UNIT=4,FILE=FORM2,CARRIAGECONTROL='LIST',S% 1 ACCESS='SEQUENTIAL',RECL=512,) 1 STATUS='OLD',ERR=9990)C CALL ASSIGN(4,FORM2) IIVV=MIN0(DCL,15)0 READ(4,6951,END=7964,ERR=7964)NMSH,ICREF,IRREF,) 1 (CWIDS(III),III=1,IIVV),DRWV,DCLV( C NOW FILL IN DEFAULTS IF NEEDED5C THIS IS SO THAT OLDER SAVED SHEETS WILL STILL WORK.A4C NOTE ZERO REFLECTI00bg`^YTADATADATADATADATADATAON PARAMETERS ARE NOT LEFT ALONEC BUT TREATED AS ERRORS.+ IF(ICREF.LE.0.OR.ICREF.GT.RRW)ICREF=RRW/10-+ IF(IRREF.LE.0.OR.IRREF.GT.RCL)IRREF=RCL/10R DO 6954 III=1,IIVVT5 IF(CWIDS(III).LE.0.OR.CWIDS(III).GT.99)CWIDS(III)=10I 6954 CONTINUEA( IF(DRWV.LE.0.OR.DRWV.GT.DRW)DRWV=MXCOLS( IF(DCLV.LE.0.OR.DCLV.GT.DCL)DCLV=MXROWS6951 FORMAT(80A1,80I3)+C ADD ABILITY TO SPECIFY MAX DISPL. TO SAVE( CALL UVT100(CUP,LLCMD,1)G CALL UVT100(EL,2) WRITE(6,7982)=6977 FORMAT('Enter max. displ down to restore or 0 for all>')E% READ(IOLVL,7978,END=510,ERR=510)LDXM) CALL UVT100(CUP,LLCMD,1)F CALL UVT100(EL,2) WRITE(6,6977)>7982 FORMAT('Enter max. displ right to restore or 0 for all>')% READ(IOLVL,7978,END=510,ERR=510)MDXML CALL UVT100(CUP,LLCMD,1)) CALL UVT100(EL,2) WRITE(6,7984)27983 FORMAT('Enter min. displ. down (1 or more)>')& READ(IOLVL,7978,END=510,ERR=510)LLDXM CALL UVT100(CUP,LLCMD,1)M CALL UVT100(EL,2) WRITE(6,7983)37984 FORMAT('Enter min. displ. right (1 or more)>')0& READ(IOLVL,7978,END=510,ERR=510)MMDXM IF(MDXM.LE.0)MDXM=12000 LLDXM=MAX0(1,LLDXM) MMDXM=MAX0(1,MMDXM) IF(LDXM.LE.0)LDXM=12000*C 12000 IS, AS ABOVE, JUST A "BIG" NUMBER.0 IF(CMDLIN(4).EQ.'+'.OR.CMDLIN(4).EQ.'-')RCFGX=1;C IF ADDING OR SUBTRACTING OTHER SHEETS GO TO RECALC MANUAL06C MODE... THIS PREVENTS MESSUP OF SUMS AS GOTTEN IN... 7961 CONTINUE1:C ENSURE THE FORM ARRAYS ARE CLEAR BEFORE FILLING THEM IN. DO 8961 N=1,128 FORM(N)=0 FORM2(N)=0Y 8961 CONTINUER9 READ(4,7962,END=7964,ERR=7964)LET1,IRRW,ICCL,(FORM2(IV),D 1 IV=1,110)L7962 FORMAT(A1,I5,X,I5,X,128A1) DO 4497 IV=1,110D IVV=111-IVN IF(FORM2(IVV).GT.32)GOTO 4496 FORM2(IVV)=0O 4497 CONTINUEN 4496 CONTINUEIDC ABOVE LOOP ENSURES THAT EXTRA PARTS OF BUFFER NOT IN SAVE FILE AREC ZEROED ON READIN..A READ(4,7956,END=7964,ERR=7964)FORM2(119),(FORM2(IV),IV=120,128), 1 KKTYP IF(LET1.EQ.77) GOTO 6500C:C 77 IS ASCII 'M'. INDICATES NOW RESTORING NRDSP AND NCDSP C MAPPINGS...M<C NOTE WE USE THE REGULAR READ LOOP TO GRAB THIS STUFF, BUT8C FLAG THE RECORDS WITH SPECIAL CHARACTERS AND ALSO ADD5C 64000 TO THE ROW AND COLUMN NUMBERS BEING SAVED TO$2C KEEP FOLLOW ON PROGRAMS FROM GETTING MESSED UP. IF(FORM2(119).EQ.2)FORM2(119)=3" IF(FORM2(119).EQ.-2)FORM2(119)=-3$ IF(IRRW.LE.0.OR.ICCL.LE.0)GOTO 9990* IF(IRRW.GT.LDXM.OR.ICCL.GT.MDXM)GOTO 7961- IF(IRRW.LT.LLDXM.OR.ICCL.LT.MMDXM) GOTO 7961-AC PRODUCE NEW ADDRESSES IN PHYSICAL SHEET USING SAVED FILE'S ONESGAC AND CURSOR LOCATION (SINCE WE SAVE/RESTORE RELATIVE TO CURSOR).N8C THIS PROVIDES A SHEET PARTIAL SAVE / MERGE CAPABILITY. NR=IRRW+PROW-LLDXM NC=ICCL+PCOL-MMDXMG- IF(CMDLIN(2).NE.'D'.AND.LET1.NE.68)GOTO 7963MC 68 = D ASCII (UPPERCASE) IF(CMDLIN(2).EQ.'P')GOTO 7963C GET DISPLAY VERSION...BC THIS IS THE DEFAULT MODE IF THE SAVE WAS PD... OR IF THE COMMANDFC IS GD... BUT WILL BE OVER-RIDDEN IF THE COMMAND IS GP... EXPLICITLY. LRR=IRRW+DROW-LLDXM LCC=ICCL+DCOL-MMDXM LRR=MAX0(1,LRR) LCC=MAX0(1,LCC)( IF(LRR.GT.DRWV.OR.LCC.GT.DCLV)GOTO 7961 NR=NRDSP(LRR,LCC) NC=NCDSP(LRR,LCC) 7963 CONTINUE DC HANDLE LET1=112 (LOWERCASE P) ALSO SINCE THAT'S NUMERIC SAVE STUFFC IRX=(NC-1)*RRW+NRT CALL REFLEC(NC,NR,IRX)L IF(NR.EQ.0.OR.NC.EQ.0)GOTO 7961 FORM2(118)=15 DO 7113 IVV=1,1287113 FORM(IVV)=FORM2(IVV)C INRW=PROW INCL=PCOL JOUTR=1 JOUTC=2C A1 = OUTPUT COORDS JRTR=12 JRTC=1SAC GXR COMMAND RELOCATES INPUT CELLS. BASICALLY DESIGNED FOR RELOCP?C OF PHYSICAL CELL ADDRESSES; OPERATION WITH DISPLAY COORDS NOTLC GUARANTEED...C8 IF(CMDLIN(3).EQ.'R')CALL RELVBL(FORM,FORM2,JOUTR,JOUTC, 1 INRW,INCL,JRTR,JRTC)9C ALLOW RELOCATION ON THE WAY IN FOR SAVED FILE FORMULAS.2 CALL FVLDST(NR,NC,FORM2(119))C FVLD(NR,NC)=FORM2(119) CALL TYPSET(NR,NC,KKTYP)1C TYPE(NR,NC)=KKTYPX?C IF THIS IS THE VALUE RECORD OF A CELL, DON'T STORE IN FORMULALAC STORAGE. DO HOWEVER SET IT IN THE VALUE STORAGE. SINCE THE REST,>C OF THE RECORDS ARE THE SAME, WE KNOW FVLD BITS ARE SET UP OK:C EVEN THOUGH THEY GET RESET TO THE SAME VALUES AGAIN WHENC STORIN00 b b^[Z[[[\[}G THE FORMULA.( IF(LET1.NE.112)CALL WRKFIL(IRX,FORM2,1)C WRITE(7'IRX)FORM2L IF(LET1.NE.112)GOTO 7961F;C IF WE HAVE LOWERCASE 'P' THEN SET THE VALUE ALSO SINCE WEA"C WILL RESET THE REST NEXT RECORD., DECODE(35,6408,FORM2(1),ERR=7961)XVBLS(1,1)6408 FORMAT(D30.19)S CALL XVBLGT(NR,NC,R8WK)/ IF(CMDLIN(4).EQ.'+')XVBLS(1,1)=XVBLS(1,1)+R8WK/ IF(CMDLIN(4).EQ.'-')XVBLS(1,1)=R8WK-XVBLS(1,1)F0C IMPLEMENT ADD/SUBTRACT WHOLE SHEETS ON READ-IN+C GPR+ ADDS, GPR- SUBTRACTS. (FOR EXAMPLE).N CALL XVBLST(NR,NC,XVBLS(1,1))1C THAT SAVES THE VALUE BACK; NOW GET NEXT RECORD. GOTO 7961 6500 CONTINUE 5C HERE RESTORE MAPPINGS; DONE WITH NORMAL VALUES ETC. 2C MAPPING FLAGGED WITH "M" INITIAL LETTER OF FIRST,C LINE AND COLUMN NUMBERS TOO LARGE BY 64000 IRRW=IRRW-64000 ICCL=ICCL-640006C ADDED 64000 TO THESE BEFORE SAVE; RESTORE THEM HERE.8C JUST RESTORE NRDSP AND NCDSP USING FORM2 ARRAY TO HOLD C NUMBERS.( DECODE(14,6501,FORM2(1),ERR=7961)II,III6501 FORMAT(2I7) NRDSP(IRRW,ICCL)=II NCDSP(IRRW,ICCL)=IIIR GOTO 7961'C JUST USE REGULAR LOOP TO READ THIS...E 7964 CONTINUEI CLOSE(UNIT=4,ERR=9990)( 9990 NXINI=0 RETURNE 510 CONTINUE IRTN=1 NXINI=0 RETURNC END SUBROUTINE XQTCMD(ICODE)#C COPYRIGHT (C) 1983 GLENN EVERHART@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY. C SPREAD SHEET COMMAND PROCESSORHC Created as a gift to the world by G. Everhart because our installation*C can't affort $4000 for a commercial one. INCLUDE 'VKLUGPRM.FTN'C PARAMETER RRW = 32&C PARAMETER RCL = 32 ! REAL ROWS, COLSC PARAMETER DRW = 8-C PARAMETER DCL = 8 ! DISPLAY MAX ROWS, COLS.C PARAMETER RRCL = 1024C PARAMETER RRCL=RRW*RCLG PARAMETER CUP = 1, CUU = 2, CUD = 3, CUF = 4, CUB = 5, DECDWL = 6G $, DECDHL = 7, DECRC = 8, DECSC = 9, DECSWL = 10, ED = 11, EL = 12A $, SGR = 13, NEL = 14, SCS = 15, SM = 16, RM = 17, ANSI = 18=C NOTE: THROUGHOUT, ROWS ARE ACTUALLY DOWN, COLUMNS ACROSS ONAC SCREEN. ROW 0 IN DISPLAY IS THE 27 ACCUMULATORS A-Z AND %, WITH>C % BEING THE LAST-COMPUTED VALUE FROM THE CALC PROGRAM, WHICHAC KNOWS HOW TO ACCESS THE DATA BUT IS JUST PASSED COMMAND STRINGS C FROM THE DISK BASED FILE HERE. LOGICAL*1 FORM,FVLD,CMDLIN(132) INTEGER*2 RRWACT,RCLACT COMMON/RCLACT/RRWACT,RCLACT INTEGER*4 VNLT( LOGICAL*1 LET1,LET2,FORM2(128),NMSH(80) COMMON/NMSH/NMSH REAL*8 XVBLS(RRWP,RCLP) INTEGER KPYBAK INTEGER*2 IOLVL,JMVFG,JMVOLD INTEGER*4 JVBLS(2,RRWP,RCLP) COMMON/IOLVL/IOLVLDC IOLVL IS LUN FOR XQTCMD TO USE (NORMALLY 3 FOR INDIRECT FILES OR 5?C FOR TERMINAL. WE USE 5,6 FOR TERMINAL INPUT, OUTPUT NORMALLY.?C PUT JMVFG INTO A PSECT BY ITSELF SO IT WILL SURVIVE OVERLAYS. COMMON/FUBAR/JMVFG,JMVOLD$ DIMENSION FORM(128),FVLD(RRWP,RCLP) LOGICAL*1 DFE,FVWRK,FVWRK2 DIMENSION DFE(12)AC FVLD FLAG 0 = NO FORMULA, -1= DISPLAY FORMULA ITSELF, NOT VALUE=C 1=VALID ACTIVE FORMULA THERE TO EVALUATE. INITIALLY ALL 0'SC SO INITIALLY IGNORE.?C FVLD=2 = CONST NUMERIC ONLY, COMPUTED. =3, CONST, NEEDS CALC.CDC ROUTINE IN2AS COMPUTES ASCII CHARACTER NAMES OF SUBSCRIPTS IN1,IN2=C SO DISPLAY CAN HAVE THEM. IT MUST BE THE INVERSE OF VARSCN.5 INTEGER*2 IDOL1,IDOL2,IDOL3,IDOL4,IDOL5,IDOL6,IDOL7, 1 IDOL88 COMMON/DOLLR/IDOL1,IDOL2,IDOL3,IDOL4,IDOL5,IDOL6,IDOL7, 1 IDOL8( INTEGER*2 PROW,PCOL,DROW,DCOL,DRWV,DCLV* COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRWV,DCLV( DIMENSION NRDSP(DRW,DCL),NCDSP(DRW,DCL) COMMON/D2R/NRDSP,NCDSP% INTEGER*2 ILNFG,ILNCT,RCF,NCEL,NXINI COMMON/NCEL/NCEL,NXINI LOGICAL*1 ILINE(106) COMMON/ILN/ILNFG,ILNCT,ILINE INTEGER*2 IC1POS,IC2POS COMMON/ICPOS/IC1POS,IC2POS LOGICAL*1 OARRY(100) INTEGER*2 OSWIT,O00bg`^YTADATADATADATADATADATACNTR COMMON/OAR/OSWIT,OCNTR,OARRY+C COMMON OAR SWITCHES OUTPUT OFF IF OSWIT=2" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9)) LOGICAL*1 AVBLS(20,27),VBLS(8,RRWP,RCLP) LOGICAL*1 FVLDTP REAL*8 XAC,ZAC/ EQUIVALENCE(XAC,AVBLS(1,27)),(ZAC,AVBLS(1,26)) REAL*8 XXAC,XYAC1 EQUIVALENCE(XXAC,AVBLS(1,24)),(XYAC,AVBLS(1,25)) LOGICAL*1 ARGSTR(52,4) COMMON/ARGSTR/ARGSTR&C EQUIVALENCE(ARGSTR(1,1),VBLS(1,1,1))<C USE VBLS ENTRIES THAT WOULD CORRESPOND TO THE UNUSED SPACE>C IN VBLS ARRAY FOR ACCUMULATORS A-Z TO HOLD UP TO 4 ARGUMENTS<C FROM A COMMAND < WHICH READS IN SPACE-DELIMITED ARGUMENTS.4C THIS WILL ALLOW INTERACTIVE ENTRY OF DATA AND AUTO1C SUBSTITUTION OF ARGUMENTS VIA THE EDit COMMAND.$ EQUIVALENCE(XVBLS(1,1),VBLS(1,1,1))% EQUIVALENCE(JVBLS(1,1,1),XVBLS(1,1)) COMMON/V/TYPE,AVBLS,VBLS,VLEN COMMON/KLVL/KLVL LOGICAL*1 DEFVB(12) COMMON/DEFVBX/DEFVB" INTEGER*2 FORMFG,RCFGX,PZAP,RCONE INTEGER*2 RCMODE,IRCE1,IRCE2% COMMON/FFGG/FORMFG,RCFGX,PZAP,RCONE, 1 RCMODE,IRCE1,IRCE2?C PZAP CONTROLS WHETHER TO REDRAW SCREEN. IF ZERO, NORMAL. IF 1>C (NONZERO ANYHOW), INHIBITS RE DISPLAY. V COMMAND RESETS TO 0 C AND VM INHIBITS. (SETS TO 1).CCC DISPLAY ARRAY WILL KEEP A COPY OF VARIABLES DISPLAYED AND FORMATSAC USED LOCALLY WHICH DISPLAY ROUTINE CAN USE TO SEE WHAT ACTUALLYBC NEEDS TO BE REFRESHED ON SCREEN. DRWV AND DCLV ARE COLS, ROWS OF#C DISPLAY ACTUALLY USED FOR SCREEN. INTEGER*2 CWIDS(DRW)HC CWIDS IS WIDTHS IN CHARACTERS OF COLUMNS ON DISPLAY. NOTE THAT BECAUSEHC OF PECULIAR INVERSION WHICH I AM TOO LAZY TO CORRECT IT IS DIMENSIONEDC AS DRW NOT DCL. REAL*8 DVS(DRW,DCL) INTEGER*4 LDVS(2,DRW,DCL)" EQUIVALENCE(LDVS(1,1,1),DVS(1,1)) COMMON /FVLDC/FVLDC LOGICAL*1 DFMTS(10,DRW,DCL)C 10 CHARACTERS PER ENTRY. COMMON/DSPCMN/DVS,CWIDS)C THISRW,THISCL = CURRENT DISPLAYED LOCS. INTEGER*2 THISRW,THISCLC LOGICAL*1 IBITMP(BRRCL)C COMMON/INITD/IBITMP:C FOLLOWING COMMON IS TO CONTROL "EXTERNAL" CALL OF XQTCMD!C TO ALLOW USE FROM INSIDE CELLS. LOGICAL*1 XTNCMD(80) INTEGER*2 XTCFG,XTNCNT,IPSET& COMMON/XCMD/XTNCNT,XTNCMD,XTCFG,IPSET logical*1 blanks dimension blanks(30) data blanks/30*32/C OSWIT=2-C ISSUE A PROMPT FOR COMMAND AND DO A COMMANDCC COMMANDS INCLUDE:C E = ENTER NUMBERS OR FORMULAS(C M = MOVE DIRECTION (1,2,3,4 = U,D,L,R)$C D = DISPLAY CHARACTERISTIC CHANGESCC DISPLAY ALTERING SUBCOMMANDS:BC DL V1:V2 RN:M OR CN:M - DISPLAY VARIABLE RANGE V1:V2 AT DISPLAYC ROW OR COL N THRU M.CC RN:M MEANS ACROSS A ROW ON DISPLAY STARTING AT DISPLAY COORD N,MAC CN:M MEANS DOWN A DISPLAY COLUMN STARTING AT DISPLAY COORD N,MC DF V1:V2 [FORMAT]BC SET FORMAT FOR DISPLAY OF V1 THRU V2 TO [FORMAT] (NOT INCL. [])@C A OR L DESIGNATOR SAYS SHOW TEXT IN FORMULA BUFFER. ELSE SHOWC NUMBER VALUE AT THAT LOC.DC DT V1:V2 F OR I - SET NUMERIC TYPE OF V1 THRU V2 TO FLOAT OR INT.0C DW N,M - SET WIDTH OF COL. N TO M CHARS WIDE.1C DB MC,MR - SET MAX COLS TO MC, MAX ROWS TO MR.C;C V = VIEWSCREEN UPDATE. REDISPLAY EVERYTHING FROM SCRATCH.*C VF = VIEW BUT DISPLAY FORMULAS ALL LOCS.2C VM = DISABLE REDRAWING SCREEN UNTIL A V IS SEEN.@C C = COPY NUMBERS/FORMULAS/DISPLAY STUFF(FORMAT)/ALL/RELOCATING4C 1,2,3,4 = MOVE CURSOR UP,DOWN,LEFT,RIGHT 1 ROW/COL>C (THESE DO NOT INVALIDATE CALCULATION SO RECALCULATION IS NOTC DONE FOR THESE COMMANDS.)BC F FILENAME/NNN FILL SCREEN (DISPLAYED PART ONLY) FROM FILENAME,BC SKIPPING NNN RECORDS FIRST IF CALLED FOR. /NNN PART OPTIONAL.=C (SPLITS STUFF READ IN ACROSS COLUMNS CURRENTLY DEFINED AND+C SETS FVLD FOR DISPLAY OF TEXT, NOT #S.)CC A[R/A] n [R/C] ADDS/SUBTRACTS (INSERTS/DELETES) n ROWS OR COLUMNS:C AT CURENT LOCATION. AR/AA SELECTS RELOCATING/ABSOLUTE.BC R = RECALCULATE SHEET. RM = RECALCULATE MANUALLY ONLY (R RESETS)5C K = DROP INTO CALC CALCULATOR (*E RETURNS TO SHEET)/C L = LOCATE CURSOR (MOVE TO POSITION ON SHEET)?C (L VARIABLE IS THE COMMAND, AND IT LOCATES ORIGIN ON PHYSICAL?C SHEET. WILL ALSO MOVE CURSOR ON DISPLAY SHEET IF THAT CELL IS8C DISPLAYED,00b b^[Z[[[\[} BUT OTHERWISE DOES NOT DISPLAY THE NUMBER.))C Z = ZERO FORMULA/NUMBERS (OR ALL SHEET)%C ZERO VARIABLE ZEROES THAT VARIABLE:C ZERO VARIABLE1:VARIABLE2 ZEROES THAT RANGE (ROW OR COL)"C ZERO * ZEROES ALL OF THE SHEET.C X = EXIT (RETURNS TO OS)DC P = PUT NUMBERS TO FILE. ALWAYS GENERATES P#+nn#+mm forms based onC current location.HC G = GET NUMBERS OUT OF FILE. USES CURRENT ORIGIN FROM L COMMAND OR 1,1+C TO ENTER NUMBERS (ALLOWS COMBINING DATA).CC W = WRITE SCREEN ON PRINTER (HARDCOPY FORMAT APPROX. AS DISPLAY.)>C OA VARIABLE = SET ORIGIN OF DISPLAY SHEET TO VARIABLE LOC INEC PHYSICAL SHEET (CLAMPED TO MAX. SIZE OF SHEET). STARTS AT R1,C1 OFC DISPLAY SHEET.CC OR VARIABLE = SET ORIGIN OF DISPLAY SHEET TO LOC'N OF VARIABLE INEC PHYSICAL SHEET. MODIFIES DISPLAY SHEET STARTING AT CURRENT DISPLAYC LOCATION RATHER THAN AT 1,1.C 4C NOTE THAT N-ARY FUNCTIONS ARE FNAME[ARGS,ARGS,...]>C AND RANGES ARE CELL1:CELLN. MULTIPLE COMMANDS IN FORMULA AREC DELIMITED BY \ CHARACTER.CC RETURN CODES:FC IF ICODE=1, COMMAND JUST MOVES ON DISPLAY, SO NO NEED TO RECALCULATEC THE ENTIRE SHEET.-C ICODE =-1 ==> REINITIALIZE DISPLAY DEFAULTS#C ICODE =2 ==> REDRAW WHOLE SCREEN,C ICODE =-2 ==> NEW SPREAD SHEET FILE SETUP.C OTHER: ALL OK. 498 CONTINUE KLVL=1 ICODE=3%C DEFAULT RETURN CODE SAYING ALL WELL-C FIRST DISPLAY CURRENT CELL AGAIN IN NORMAL. THISRW=DROW THISCL=DCOL FORM(1)=0JC GET IN THE CURRENT FORMAT WHEREVER WE ARE, EVEN IF NOT ON DISPLAY SHEET.C IRRX=(PCOL-1)*RRW+PROW CALL REFLEC(PCOL,PROW,IRRX) CALL WRKFIL(IRRX,FORM,0)C READ(7'IRRX)FORM' IF(THISRW.LE.0.OR.THISCL.LE.0)GOTO 200 N1=NRDSP(THISRW,THISCL) N2=NCDSP(THISRW,THISCL) IXLSTC=THISCL IXLSTR=THISRW- IF(THISCL.GT.DCLV.OR.THISRW.GT.DRWV)GOTO 200AC REDRAW LAST DISPLAYED CELL IN NORMAL (I.E., NOT REVERSE) VIDEO.C IF(FVLD(N1,N2).EQ.0)GOTO 200>C ONLY REDRAW NUMBERS. DIRECT DISPLAY OR NOTHING GETS IGNORED. J=8C IRRX=(N2-1)*RRW+N1 CALL REFLEC(N2,N1,IRRX)C ADD 6 COLS FOR LABELS DO 1 M1=1,DROWC FIND DISPLAY COLUMN TO USE1 J=J+CWIDS(M1) J=J-CWIDS(DROW)(C USE THISCL+1 TO LET 1ST ROW BE LABELS. ICCC=THISCL+2 C JVTINC = 1 IF VT100, 0 IF VT52HC SAVE PHYS COORDS BEING DISPLAYED NEXT. FVLD CAN BE TESTED FOR NUMERICS(C DIRECTLY, IF UVT100 NEEDS THAT ACCESS. IC1POS=N1 IC2POS=N2 IF(PZAP.NE.0)GOTO 3607= CALL UVT100(CUP,ICCC,J+JVTINC) !SELECT ROW "THISCL", COL "J" CALL UVT100(SGR,7) CALL FVLDGT(N1,N2,FVLD(1,1))!C IF(FVLD(1,1).EQ.0)WRITE(6,5538)C5538 FORMAT('>-<') ivv=min0(30,cwids(DROW)):c reset blanks to be sure we write something even for vt52 blanks(1)='>'5 IF(FVLD(1,1).EQ.0)WRITE(6,5538)(blanks(iv),iv=1,ivv) blanks(1)=325538 FORMAT(30a1) 3607 CONTINUE0C WE CAN BE SURE THE COLUMN IS 3 WIDE OR MORE... CALL FVLDGT(N1,N2,FVLDTP) IF(FVLDTP.EQ.0)GOTO 200C IRRX=(N2-1)*RRW+N1C SELECT REVERSE VIDEO DO 5540 KKKK=1,1005540 CMDLIN(KKKK)=32 CALL WRKFIL(IRRX,FORM,0)C READ(7'IRRX)FORM IF(FORM(120).LE.0)GOTO 200 IF(FVLDTP.LT.0.OR.FORMFG.NE.0)2 1 ENCODE(100,8201,CMDLIN)(FORM(II),II=1,100)8201 FORMAT(128A1) IF(FORMFG.NE.0)GOTO 4320 DO 6301 KKK=1,9 KKKK=FORM(KKK+119)C KKKK=DFMTS(KKK,THISRW,THISCL)6301 DFE(KKK+1)=MAX0(32,KKKK) DFE(11)=32C 32 = ASCII SPACE DFE(1)='(' DFE(12)=')' CALL TYPGET(N1,N2,TYPE(1,1))# IF(TYPE(1,1).EQ.2.AND.FVLDTP.GT.0)9 1 ENCODE(100,DFE,CMDLIN,ERR=4320)DVS(THISRW,THISCL)# IF(TYPE(1,1).NE.2.AND.FVLDTP.GT.0)< 1 ENCODE(100,DFE,CMDLIN,ERR=4320)LDVS(1,THISRW,THISCL)+C REDRAW THIS COL. WITH REVERSE VIDEO HERE.>4320 IF(PZAP.EQ.0)WRITE(6,9000)(CMDLIN(II),II=1,CWIDS(THISRW))9000 FORMAT(128A1) IF(PZAP.EQ.0)CALL UVT100(SGR,0)3C NOTE THIS REDRAWS PREVIOUS COL. IN REVERSE VIDEO.C NO CARRIAGE CTL 200 CONTINUE IF(PZAP.NE.0)GOTO 3608 CALL UVT100(CUP,LDSPR,1) CALL UVT100(EL,2) IF(FORM(1).LE.0)GOTO 222(9092 FORMAT(I5,' Used. Curr=',64A1,50A1)& WRITE(6,9092)NCEL,(FORM(II),II=1,109)C3608 CONTINUE222 CALL UVT100(CUP,LCMDR,1) CALL UVT100(EL,2),C NOTE PRO00"bg`^YTADATADATADATADATADATAW IS ACROSS TOP, PCOL IS DOWN SIDEC PROW GOES AS ID1, ALPHASC PCOL GOES AS ID2, NUMERICS CALL IN2AS(PROW,FORM)NC NOTE PCOL STARTS AT 2 FOR NORMAL SHEET VARIABLES. PCOL=1 IS FOR ACCUMULATORS CALL UVT100(SGR,0)- WRITE(6,9001,ERR=3608)(FORM(I),I=1,4),PCOL-19001 FORMAT(4A1,I5,'>') 3608 CONTINUE IF(XTCFG.NE.0)GOTO 38705 IF(IOLVL.NE.5)READ(IOLVL,9002,END=510,ERR=510)CMDLINFC FOR READING THE CONSOLE, WE NEED A QIO$ TO CAPTURE ESCAPE SEQUENCES." IF(IOLVL.EQ.5)CALL GETTTL(CMDLIN) GOTO 3871 3870 CONTINUE XTCFG=0 DO 3872 I=1,XTNCNT CMDLIN(I)=XTNCMD(I) 3872 CONTINUEBC COPY IN EXTERNAL COMMAND AND LET IT BE EXECUTED. IT'S THE USER'S8C PROBLEM IF THE COMMAND REQUIRES STILL FURTHER INPUT...?C ALSO NULL OUT SOME DELIMITER CHARS AFTER THE COMMAND READ IN. CMDLIN(XTNCNT+1)=0 CMDLIN(XTNCNT+2)=0 3871 CONTINUE9002 FORMAT(132A1) CMDLIN(132)=0 CMDLIN(131)=0 CMDLIN(130)=0-C SAVE CURRENT PHYS ROW, COL IN AC'S X AND Y XXAC=PROW XYAC=PCOL7C ZAP IN SPECIAL FUNCTION KEY REPLIES INTO NORMAL FORMS CALL CMDMUN(CMDLIN) DO 9048 I=1,129 K=130-I=C START AT BACK OF LINE AND ZAP WHITESPACE BY NULL TERMINATOR IF(CMDLIN(K).GT.32)GOTO 9049 CMDLIN(K)=0+C ALSO GET RID OF POSSIBLE TRAILING CR, LF. 9048 CONTINUE 9049 CONTINUEC*C THIS GETS COMMAND LINE IN. NOW ACTON IT.C REPOS'N TO OLD LINE NOW. CALL UVT100(CUP,LCMDR,1)C=C THE FOLLOWING SECTION IMPLEMENTS THE ADDITIONAL FUNCTION OFAC JOURNALING: (DONE ON VAX ONLY SINCE SPACE REQUIREMENTS FOR FILE*C OPERATIONS MAY BE A PROBLEM ON PDP11'S)./C Command +J FILENAME will record all remaining?C line inputs at this point in it. (Assumes JNLFLG=0 initially)!C Command +N closes journal file. K=K+1: IF(CMDLIN(1).EQ.'+'.AND.CMDLIN(2).EQ.'J'.AND.JNLFLG.NE.1) 1 GOTO 42903 IF(CMDLIN(1).EQ.'+'.AND.CMDLIN(2).EQ.'N')GOTO 42921 IF(JNLFLG.EQ.1)WRITE(10,9002)(CMDLIN(IV),IV=1,K) GOTO 4291 4292 CONTINUE CLOSE(UNIT=10) JNLFLG=0 GOTO 9990 4290 CONTINUE JNLFLG=1;C USE WHATEVER FILE NAME THE USER HAS SUPPLIED AFTER THE +J7C FOR FILE TO JOURNAL ONTO. (NO MORE QUESTIONS NEEDED.) CALL ASSIGN(10,CMDLIN(3)) GOTO 9990 4291 CONTINUECC7C ALLOW COMMENTS IF LINE BEGINS WITH * (JUST LIKE CALC) IF(CMDLIN(1).NE.'*')GOTO 6002 ICODE=1 GOTO 9990 6002 CONTINUEC IF(CMDLIN(1).EQ.'*')GOTO 9990CC * NEW ****************FC ADD PLACE TO PUT IN USER COMMANDS. DEFAULT IS NONE EXIST, DO NOTHING IGOTIT=0! CALL USRCMD(CMDLIN,ICODE,IGOTIT)MC WHEN WE GET A COMMAND, SET IGOTIT TO 1 AND WE THEN PROCESS COMMAND NORMALLY IF(IGOTIT.EQ.1)GOTO 9990C * NEW ****************C1C COMMAND -PROMPT WILL READ FROM LUN 5 TO ARGSTRC TERMINATING WITH SPACES. IF(CMDLIN(1).NE.'-')GOTO 350 ICODE=1 CALL UVT100(CUP,LCMDR,1) CALL UVT100(EL,2)" WRITE(6,9000)(CMDLIN(IV),IV=2,50)" READ(5,9000,END=510,ERR=510)FORM2 II=1 KK=1 DO 351 KKK=1,1285C LOAD UP OUR ARGUMENTS IN ARGSTR(N,1) TO ARGSTR(N,4) ARGSTR(KK,II)=FORM2(KKK) KK=KK+1 ARGSTR(KK,II)=0 IF(KK.LT.52)GOTO 352354 KK=1 II=II+1 IF(II.GT.4)GOTO 353 352 CONTINUE IF(FORM2(KKK).GT.32)GOTO 3514C ON SPACE, GO TO THE NEXT ARGUMENT. ALSO SPILL INTO=C THE NEXT ARGUMENT IF WE SEE NO SPACES AND JUST TRAIL ALONG. GOTO 354 351 CONTINUE 353 GOTO 9990 350 CONTINUECAC CONTROL SCROLLING. PERMIT THE COMMAND "SC" TO TURN SCROLLING ONC AND "NS" TO TURN IT BACK OFF. IVV=-1/ IF(CMDLIN(1).EQ.'S'.AND.CMDLIN(2).EQ.'C')IVV=1/ IF(CMDLIN(1).EQ.'N'.AND.CMDLIN(2).EQ.'S')IVV=0 IF(IVV.GE.0)IDOL7=IVV IF(IVV.GE.0)ICODE=5 IF(IVV.GE.0)GOTO 9990C4C ALLOW PROGRAMMED "REWIND" OF INPUT COMMAND LINE ON6C COMMAND LINE BEGINNING WITH "<". MAKE IT CONDITIONAL1C BY SAYING THAT IF % IS NEGATIVE WE WON'T DO IT. IF(CMDLIN(1).NE.'<')GOTO 356 ICODE=5 IF(XAC.GT.0.)REWIND IOLVL GOTO 9990 356 CONTINUEC7C HANDLE @FILE COMAND TO CHANGE TO INPUT OFF THAT FILE. IF(CMDLIN(1).NE.'@')GOTO 511(C WOW, A FILE. (OR AT LEAST SO WE HOPE).2 OPEN(UNIT=3,FILE=CMDLIN(2),READONLY,STATUS='OLD', 1 ERR=510)C CALL ASSIGN(3,CM00*b b^[Z[[[\[}DLIN(2))AC USE FACT THAT WE JUST NULL TERMINATED THE FILENAME PART AND SETC IT TO BE LUN 3. IOLVL=3FC NOW GO BACK FOR ANOTHER COMMAND...NO SENSE WASTING RECALC TIME SINCE"C NOTHING HAS REALLY HAPPENED YET.DC NOTE EVERY READ TO LUN 3 HAS EOF/ERROR CHECK TO GO TO 510 TO RESET/C TO LUN 5 INPUT AND CLOSE FILE WE OPENED ON 3. GOTO 498 511 CONTINUEC)C AA n R, AA n C, AR n R, AR n C COMMANDSC2 IF(CMDLIN(1).NE.'O'.OR.CMDLIN(2).NE.'V')GOTO 6887C OV + TURNS ON OVERRIDEC OV - TURNS OFF OVERRIDE6C ALLOWS ONE TO OVERRIDE $ SIGN FORMS' ABSOLUTE NATURE0 IF(CMDLIN(3).EQ.'+'.OR.CMDLIN(4).EQ.'+')IDOL3=10 IF(CMDLIN(3).EQ.'-'.OR.CMDLIN(4).EQ.'-')IDOL3=0 GOTO 9990 6887 CONTINUE IF(CMDLIN(1).NE.'A')GOTO 8845GC ADD ROWS OR COLUMNS (OR REMOVE THEM) AT THE CURRENT PHYSICAL LOCATIONFC WHERE AA MEANS ADD ABSOLUTE (NO RELOCATION), AR MEANS ADD RELOCATINGFC (RELOCATE ALL VARIABLES BELOW), AND R OR C SAYS TO ADD/SEBTRACT ROWS C OR COLUMNS.C.C FIRST COLLECT THE ARGUMENTS TO THE FUNCTION. KM1=3 KM2=10 CALL GN(KM1,KM2,ICNT,CMDLIN)EC GETS THE NUMBER. IF NO NUMBER SEEN OR ZERO, RETURNS 0. IGNORE THEN. IF(ICNT.EQ.0)GOTO 9990 ICR=0C LOOK FOR THE R OR C=C START AT CMDLIN(4) TO PASS THE AR/AA AND THE NUMBER IF ANY. DO 8844 KKK=4,50 IF(CMDLIN(KKK).EQ.'R')ICR=1 IF(CMDLIN(KKK).EQ.'C')ICR=2 IF(ICR.NE.0)GOTO 88461C SKIP OUT ON FIRST ROW OR COLUMN DESIGNATOR SEEN 8844 CONTINUE 8846 CONTINUE IF(ICR.EQ.0)GOTO 9990 ICODE=2AC NOW WE HAVE ALL ARGUMENTS. SET UP FOR THE COPY AND PARASITE THEC@C LOGIC USED FOR THE CA OR CR COMMANDS. (NOTE THAT 2ND CHARACTERCC IS A OR R IN CMDLIN ALREADY SO THOSE COMMANDS' LOGIC WILL BE OK.)T JRTR=PROW JRTC=PCOL IF(ICR.EQ.2)JRTC=1T IF(ICR.EQ.1)JRTR=1 .C RELOC THESHOLD IS PHYSICAL CURRENT POSITION. IF(ICR.EQ.1)GOTO 8843C INSERT OR DELETE COLUMNS7C FIRST FIGURE OUT HOW MANY COLUMNS MUST BE MOVED RIGHT  KD=RRW-PROW-IABS(ICNT)+1! IF(KD.LE.0)GOTO 9990A+C CAN'T MOVE 0 COLUMNS. DOESN'T MAKE SENSE.  DO 8842 KR=1,KD IRA=RRW-KR+1L)C IRA IS DESTINATION COLUMN IN EACH LOOP.A IF(ICNT.LT.0)IRA=PROW-1+KR C IRS IS SOURCE COLUMN IRS=RRW-KR+1-ICNT IF(ICNT.LT.0)IRS=PROW+KR-ICNT-1CS5C IF DELETING COLUMNS AND DESTINATION IS PAST CURRENT CC ACTIVE MAX, SKIP THE MOVE SINCE WE'RE NOT ACCOMPLISHING ANYTHING.A) IF(ICNT.LT.0.AND.IRA.GT.RRWACT)GOTO 8842 >C IF ADDING COLUMNS AND SOURCE IS PAST CURRENT MAX ACTIVE THEN'C WE'RE DOING NOTHING, SO SKIP THE WORK ) IF(ICNT.GT.0.AND.IRS.GT.RRWACT)GOTO 8842A JDELT=RCLACTP C JDELT=RCL EC LOOP WE'LL CALL IS OVER ENTIRE ROWS, BUT ONLY DO ONE AT A TIME HERE( JD1A=IRAG JD1B=1C ID1A=IRSC ID2A=1A I1IN=0, I2IN=1I JIN1=0V JIN2=1G ASSIGN 8840 TO KPYBAK7C CALL INTERNAL COPY-RANGE PROCEDURE INSIDE CA/CR LOGIC) GOTO 8364 8840 CONTINUER 8842 CONTINUEJCL=C NOW CLEAN UP THE REST OF FORMULAS IF THERE ARE ANY TO DO...V0C MUST RELOCATE OTHER FORMULAE IF CMDLIN(2) IS R KX=PROW-13C RELY ON RCLACT HAVING BEEN UPDATED TO REFLECT NEWUC ADDITIONS IF ANY KY=RCLACTC KY=RCL#C RELOCATE UPPER LEFT PART OF SHEETAC NOTE II1,II2,JJ1,JJ2,JRTR,JRTC ARE UNCHANGED FROM PRIOR CALL SOLBC MAY BE USED... RELVBL ONLY CARES ABOUT RELATIVE MOTION ANYHOW... 3600 CONTINUEP4 IF(CMDLIN(2).NE.'R'.OR.KX.LE.0.OR.KY.LE.0)GOTO 9990 DO 3601 KK=1,KX DO 3601 KK2=1,KY' CALL FVLDGT(KK,KK2,FVLD(1,1)) IF(FVLD(1,1).NE.1)GOTO 3601=C ONLY RELOCATE FORMULAS, NOT TEXT OR NUMBERS (OR EMPTIES...)CC IRX=(KK2-1)*RRW+KK CALL REFLEC(KK2,KK,IRX) CALL WRKFIL(IRX,FORM,0)C READ(7'IRX)FORMO2 CALL RELVBL(FORM,FORM2,II1,II2,JJ1,JJ2,JRTR,JRTC) CALL WRKFIL(IRX,FORM2,1)LC WRITE(7'IRX)FORM2L 3601 CONTINUED GOTO 9990 8843 CONTINUE C ROW INSERT/DELETE2#C AGAIN FIND HOW MANY ROWS TO MOVE.O KD=RCL-PCOL-IABS(ICNT)+1D IF(KD.LE.0)GOTO 9990D DO 8839 KC=1,KD%C ICA = DESTINATION AND ICS IS SOURCET ICA=RCL-KC+1N ICS=RCL-KC+1-ICNT IF(ICNT.GT.0)GOTO 8838 ICA=PCOL-1+KC ICS=PCOL+KC-1-ICNTL 8838 CONTINUE;C IF INSERTING ROWS AND SRC ROW IS BEYOND ACTIVE AREA, SKIPG) IF(ICNT.GT.0.AND.ICS.GT.RCLACT)GOTO002bg`^YTADATADATADATADATADATA 8839:C IF DELETING ROWS AND DST ROW IS BEYOND ACTIVE AREA, SKIP) IF(ICNT.LT.0.AND.ICA.GT.RCLACT)GOTO 8839)C NOW CALL COPY LOOP AGAIN., JDELT=RRWACT, C JDELT=RRWC JD1A=1T JD1B=ICA C DEST ID1A=1L ID2A=ICSBC SOURCE I1IN=1S I2IN=0 JIN1=1X JIN2=0 ASSIGN 8836 TO KPYBAK2C CALL INTERNAL RANGE COPY PROCEDURE TO COPY A ROW GOTO 8364 8836 CONTINUE 8839 CONTINUES KX=RRWACTC KX=RRW KY=PCOL-1 GOTO 3600 8845 CONTINUEDEC OA AND OR COMMANDS. SET DISPLAY SHEET MAPPING TO ORIGIN AS FOUND BYOGC VARIABLE, STARTING AT 1,1 OR (DROW,DCOL) FOR OA AND OR RESPECTIVELY.. IF(CMDLIN(1).NE.'O')GOTO 650 C PROCESS COMMAND... LRO=1 LCO=1% IF(CMDLIN(2).EQ.'R')LRO=MAX0(1,DROW)E% IF(CMDLIN(2).EQ.'R')LCO=MAX0(1,DCOL)U LRO=MIN0(LRO,DRW-1) LCO=MIN0(LCO,DCL-1)9C NOW HAVE CORRECT ORIGIN IN DISPLAY SHEET TO USE SET UP.BC GRAB VARIABLE ID.D LA=INDEX(CMDLIN,32) IF(LA.GT.20)LA=3 LE=40- CALL VARSCN(CMDLIN,LA,LE,LSTCX,ID1,ID2,IVLD)G IF(IVLD.EQ.0)GOTO 651;C NOW HAVE VARIABLE NAME AND LOCATION... CAN DO IT FINALLY. =C NOTE WE'RE GUARANTEED WE START OFF IN BOUNDS BUT MUST CHECK.,C ALONG THE WAY TO BE SURE WE STAY THAT WAY. IQQ=0 7112 CONTINUEA IKR=DROWL IKC=DCOLY+ IF(IQQ.EQ.0.AND.CMDLIN(2).EQ.'R')GOTO 5711L"C OA GETS DIFFERENT LIMITS FROM OR IKR=0 IKC=1 5711 CONTINUE -C IF(ID1.GT.(RRW-(DRWV-IKR)))ID1=RRW-DRWV+IKRL+C IF(ID2.GT.(RCL-DCLV+IKC))ID2=RCL-DCLV+IKCN DO 652 IRO=LRO,DRWV DO 653 ICO=LCO,DCLV*C HERE CAN SET UP NRDSP AND NCDSP SUITABLY&C NRDSP(IRO,ICO)=MIN0(ID1+IRO-LRO,RRW)&C NCDSP(IRO,ICO)=MIN0(ID2+ICO-LCO,RCL) NRDSP(IRO,ICO)=ID1+IRO-LROR NCDSP(IRO,ICO)=ID2+ICO-LCO4 653 CONTINUE 652 CONTINUE$ IF(DROW.LE.0.OR.DCOL.LE.0)GOTO 3924 PROW=NRDSP(DROW,DCOL) PCOL=NCDSP(DROW,DCOL) 3924 CONTINUENC FORCE REDRAW OF WHOLE SHEET. ICODE=2 651 GOTO 9990 650 CONTINUEC F FILENAME/NNNDC READ IN TEXT FROM FILE NAMED AND SPREAD ACROSS DISPLAY SCREEN. SET6C DISPLAYED SCREEN INTO FVLD(NN)=-1 TO SHOW TEXT ONLY. IF(CMDLIN(1).NE.'F')GOTO 1740 LA=INDEX(CMDLIN,32) C PASS SPACE LB=INDEX(CMDLIN(LA+1),'/')/ LB=LB+LA,C LB= LOC OF / CHARACTER LB=MIN0(80,LB)m IF(LB.LE.2)GOTO 1741t CMDLIN(LB)=0 CALL ASSIGN(4,CMDLIN(LA+1)),C THIS OUGHT TO OPEN THE FILE IF IT EXISTS..,C NOW IF THERE'S A NUMBER THERE, EXTRACT IT. LSKP=0O! IF(LB.GT.78.OR.LB.LE.5)GOTO 1743 LAA=LB+1 LAAA=LB+7 CALL GN(LAA,LAAA,LSKP,CMDLIN) 1743 CONTINUEC NOW SKIP THE LINES IF(LSKP.LE.0)GOTO 1744A DO 1745 IV=1,LSKP$ READ(4,8201,END=1742,ERR=1742)FORM2 1745 CONTINUEW 1744 CONTINUER'C NOW WE'RE READY TO READ IN THE STUFF.  ICODE=2 DO 1746 LA=1,DCLV DO 1751 IV=1,128,1751 FORM2(IV)=32R$ READ(4,8201,END=1742,ERR=1742)FORM2 IXC=0 DO 1747 LB=1,DRWVC DRWV = # ACROSS TOP... C DCLV=LENGTHX ID1=NRDSP(LB,LA). ID2=NCDSP(LB,LA)E+C GET PHYSICAL SHEET COORDINATES AS ID1,ID2T-C MUST THEN COPY CWIDS(LB) CHARS ONTO FILE...  CALL FVLDST(ID1,ID2,-1)C FVLD(ID1,ID2)=-1C IRX=(ID2-1)*RRW+ID1  CALL REFLEC(ID2,ID1,IRX) CALL WRKFIL(IRX,FORM,0)C READ(7'IRX)FORMY FORM(119)=-1T DO 1749 IVV=1,1101749 FORM(IVV)=0 DO 1748 IVV=1,CWIDS(LB) IXC=IXC+11748 FORM(IVV)=FORM2(IXC)  CALL WRKFIL(IRX,FORM,1)C WRITE(7'IRX)FORM 1747 CONTINUEG 1746 CONTINUEO1742 CLOSE(UNIT=4)1741 GOTO 9990 1740 CONTINUE  IF(CMDLIN(1).NE.'E')GOTO 8000C ENTER COMMANDT0C EN expression. expression may be numbers/text. LA=INDEX(CMDLIN,32) LA=LA+1C SKIP SPACE AFTER "EN"I IF(LA.GT.4)LA=4 IF (LA.GE.100)GOTO 7901 LE=132-LA LE=MIN0(110,LE)C IRX=(PCOL-1)*RRW+PROW  CALL REFLEC(PCOL,PROW,IRX)EC FIND WHERE IN FILE TO STORE. CALL WRKFIL(IRX,FORM,0)C READ(7'IRX)FORMR IF(CMDLIN(2).EQ.'D')O7 1 CALL SED(CMDLIN(LA),FORM,FORM2,ARGSTR,ZAC,110)A=C IF COMMAND IS "ED STRING1STRING2" THENL>C SUBSTITUTE STRING2 FOR STRING1 IN FORMULA, RETURN IT TO THE C COMMAND LINE, AND REENTER IT.<C NOTE THAT THE STRINGS MAY CONTAIN &n FORMS WHERE 1-4 MEAN9C ENTERED ARGUMENTS 1-4, 5 TREATS XAC AS A NUMBER, AND 6 8C TREATS ZAC AS A SINGLE CHARACTER (ZAC I00:b b^[Z[[[\[}S VARIABLE Z). DO 5133 II=1,110H5133 FORM(II)=0  NALF=0U NSG=-1S NXNUM=3 KSG=0 N=1 IRCE1=PROWR IRCE2=PCOLA7C SAVE ENTER CELL ADDRESS FOR RECALC IN RE AND RI MODESO. IF(CMDLIN(2).EQ.'"'.OR.CMDLIN(2).EQ.'T')KSG=1 IF(CMDLIN(2).EQ.'V')NSG=1C "ET" MEANS ENTER TEXTWC "EV" MEANS ENTER VALUE#C REGARDLESS OF FORMULA CONTENTS... 2097 CONTINUE  IF(N.GT.LE)GOTO 7902NC DO 7902 N=1,LE3C LOOK FOR ALPHAS. IF WE FIND ANY, FLAG NOT NUMERICT>C NOTE @ INCLUDED SINCE COULD HAVE A *@3 COMMAND TO CALL 3.CMDC AND REFER TO OTHER CELLS.E=C THIS IS A RESTRICTION: COMMANDS TO CMND NEED TO HAVE ALPHAS #C SOMEWHERE OR THIS WILL BE FOOLED.T IF(CMDLIN(LA).EQ.'P'.AND. 1 CMDLIN(LA+1).EQ.'#'.AND. 2 CMDLIN(LA+2).EQ.'0'.AND. 3 CMDLIN(LA+3).EQ.'#'.AND.& 4 CMDLIN(LA+4).EQ.'0') GOTO 33563 IF(CMDLIN(LA).GE.'@'.AND.CMDLIN(LA).LE.'Z')NXNUM=1T 3356 CONTINUEI4C IF(CMDLIN(LA).GE.'@'.AND.CMDLIN(LA).LE.'Z')NXNUM=10 IF(CMDLIN(LA).EQ.'+'.OR.CMDLIN(LA).EQ.'-')NSG=10 IF(CMDLIN(LA).EQ.'['.OR.CMDLIN(LA).EQ.'.')NSG=1 IF(CMDLIN(LA).EQ.'(')NSG=1I IF(CMDLIN(LA).EQ.'"')KSG=1A<C ON SEEING THE _@V1,V2 CONSTRUCT, REPLACE WITH THE VARIABLE'C ADDRESSED BY V1,V2 (COL,ROW) BY NAME.S;C ON SEEING THE _#V1 CONSTRUCT, UNPACK UP TO 8 CHARS OUT OF:9C REAL*8 VARIABLE (PACKED BY MULTIPLYING BY 128 EARLIER).E:C IN EACH CASE, ADJUSTN AND LE TO CONTINUE APPROPRIATELY.2 IF(CMDLIN(LA).EQ.'_'.AND.CMDLIN(LA+1).EQ.'@')CALL! 1 SVBL(CMDLIN,LA,N,LE,FORM)R2 IF(CMDLIN(LA).EQ.'_'.AND.CMDLIN(LA+1).EQ.'#')CALL! 1 SSTR(CMDLIN,LA,N,LE,FORM), FORM(N)=CMDLIN(LA)F IF(CMDLIN(LA).GT.32)NALF=NALF+1 LA=LA+1@C FAKE OUT DO LOOP SINCE SVBL OR SSTR MAY MUNG INDICES INSIDE IT N=N+1 GOTO 2097 7902 CONTINUEL IF(KSG.NE.0)NSG=-1( FORM(110)=0 IF(FORM(119).NE.0)GOTO 7903=C LEAVE DISPLAY INDICATOR ALONE IF SET BUT SET VBL OTHERWISE.O FORM(119)=NSG*NXNUM@C SET NEG FOR DISPLAY OF FORMULA, NOT NUMBER. ALLOWS TEXT ENTRY.!C ASSUME FORMULA IF WE SEE + OR -+ 7903 CONTINUEC8C FORCE FORM TO FOLLOW EDITS EVEN IF FORMAT/TYPE PRESET. IVVVV=FORM(119)* IF(IVVVV.NE.0)FORM(119)=ISGN(IVVVV)*NXNUM IF(NALF.LE.0)GOTO 6221 ! CALL FVLDST(PROW,PCOL,FORM(119)) CALL WRKFIL(IRX,FORM,1) 6221 CONTINUEP ASSIGN 7904 TO NBKL GOTO 79053C LOOK UP PROW, PCOL, LEAVE DISPLAY COORDS IN LR,LC 7905 CONTINUES DO 7906 LA1=1,DRWVO LR=LA1( DO 7906 LA2=1,DCLV LC=LA21> IF(NRDSP(LA1,LA2).EQ.PROW.AND.NCDSP(LA1,LA2).EQ.PCOL)GOTO7907 7906 CONTINUELJC IF WE FALL OUT OF THE LOOP, WE DIDN'T FIND THE LOC; FLAG BY PUTTING 0'S. LR=0 LC=0m GOTO 7908 7907 CONTINUEe,C ARRIVE HERE ON SUCCESS. LR, LC ALL SET UP. 7908 CONTINUE( GOTO NBK( 7904 CONTINUEW IF(LR.EQ.0.OR.LC.EQ.0)GOTO 7901 THISRW=LR THISCL=LC2C ASCII 1,2,3,4 ARE VALUES 49,50,51,52 IN DECIMAL. LRO=1 LCO=1 ID1=NRDSP(1,1)  ID2=NCDSP(1,1)T0 IF(.NOT.(JMVFG.EQ.51.AND.THISRW.EQ.1))GOTO 7110 IF(IDOL7.EQ.0)GOTO 7110C MUST SCROLL LEFTC INHIBIT REDRAW AT ORIGIN...R IF(ID1.LE.1)GOTO 7110C LEAVE 2 COLUMNS AS BEFORE. ID1=MAX0(1,ID1-DRWV+2)P DROW=MAX0(DRWV-2,1) IQQ=1 GOTO 7112 7110 CONTINUEO) IF(JMVFG.EQ.51)THISRW=MAX0(1,(THISRW-1))O3 IF(.NOT.(JMVFG.EQ.52.AND.THISRW.EQ.DRWV))GOTO 7116KC MUST SCROLL RIGHTK IF(IDOL7.EQ.0)GOTO 7116 DROW=3=%C ID1=MIN0(RRW,ID1+DRWV-MIN0(DRWV,2))C ID1=ID1+DRWV-MIN0(DRWV,2) IQQ=1 GOTO 7112(C 7112 FAKES OUT OA CALL TO SCROLL OVER. 7116 CONTINUE, IF(JMVFG.EQ.52)THISRW=MIN0((THISRW+1),DRWV)0 IF(.NOT.(JMVFG.EQ.49.AND.THISCL.EQ.1))GOTO 7117C MUST SCROLL UP IF(IDOL7.EQ.0)GOTO 7117 IF(ID2.LE.2)GOTO 7117 DCOL=MAX0(1,DCLV-2) ID2=MAX0(2,ID2-DCLV+2)0 IQQ=1 GOTO 7112 7117 CONTINUEI) IF(JMVFG.EQ.49)THISCL=MAX0(1,(THISCL-1))3 IF(.NOT.(JMVFG.EQ.50.AND.THISCL.EQ.DCLV))GOTO 7118 C MUST SCROLL DOWN IF(IDOL7.EQ.0)GOTO 7118 DCOL=30%C ID2=MIN0(RCL,ID2+DCLV-MIN0(DCLV,2))C ID2=ID2+DCLV-MIN0(DCLV,2) IQQ=1 GOTO 7112 7118 CONTINUEG, IF(JMVFG.EQ.50)THISCL=MIN0((THISCL+1),DCLV) DROW=THISRW DCOL=THISCL PROW=NRDSP(DROW,DCOL) PCOL=NCDSP(DROW,DCOL)6C FORCE REDO OF BOTH LAST AND NEW COLUMN BY 00Bbg`^YTADATADATADATADATADATADISPLAYER." DVS(LR,LC)=DVS(LR,LC)+.0000000057) DVS(DROW,DCOL)=DVS(DROW,DCOL)+.000000062I7901 GOTO 9990"8000 IF(CMDLIN(1).NE.'M')GOTO 8001 ICODE=1-C MACROCELL COMMAND IF MH (HIDE) OR MS (SHOW)C IF(CMDLIN(2).EQ.'S')IDOL4=1 IF(CMDLIN(2).EQ.'H')IDOL4=02 IF(CMDLIN(2).EQ.'S'.OR.CMDLIN(2).EQ.'H')GOTO 9990C MOVE COMMAND)C M1,M2,M3,M4 MOTION DIRECTION IS U,D,L,R5CC ALLOW M0 TO RESTORE OLD AUTOMOVE CONDITION, ALL OTHERS TO SAVE ITU IVVV=CMDLIN(2)E IF(CMDLIN(2).EQ.'0')IVVV=JMVOLD JMVOLD=JMVFG1 JMVFG=IVVVUC JMVFG=CMDLIN(2)8C STORE CHARACTER AS MOVE FLAG GOTO 9990"8001 IF(CMDLIN(1).NE.'D')GOTO 8002C DISPLAY COMMANDSC.C DISPLAY SORTC DSRA 1C DS = CONSTANT KEYWORD C R/C=ROW/COL (DISPLAY COORD #S) C A/D=ASCENDING/DESCENDING ORDER-C NUMBER= DISPLAY COORD ROW/COL # TO SORT ON.DC SORTS NUMERIC FIELDS ONLY. IF(CMDLIN(2).NE.'S')GOTO 1752 ICODE=2:C MUST REDRAW. WE DO WHOLESALE RELOCATIONS OF THINGS HERE.C FIRST GET ARGUMENTS= LAA=6 LBB=15 CALL GN(LAA,LBB,NBR,CMDLIN)-C THIS EXTRACTS THE NUMBER OF ROW/COL TO USE.)!C DEFAULT IS PHYS, COL, ASCENDINGR. IF(NBR.LE.0.OR.NBR.GT.MAX0(DRW,DCL))GOTO 9990 SSIGN=1.I IF(CMDLIN(4).EQ.'D')SSIGN=-1.BC SSIGN USED TO CONTROL ASCENDING/DESCENDING SORT (MULTIPLY BY IT)C GET LENGTH TO GO THRU IN SORTG" IF(CMDLIN(3).EQ.'C')IDELTA=DCLV-1" IF(CMDLIN(3).EQ.'R')IDELTA=DRWV-1 I1IN=0L I2IN=17C GET PHYSICAL COORDINATES OF ROW/COL WE'RE SORTING ON.C IF(CMDLIN(3).EQ.'R')GOTO 6222 ID1=NRDSP(NBR,1)C ID2=NCDSP(NBR,1)F GOTO 1753 6222 CONTINUE  ID1=NRDSP(1,NBR). ID2=NCDSP(1,NBR)N I1IN=1r I2IN=0 C HACK TO HANDLE ROW/COL ALIKE 1753 CONTINUE( IFLIP=0.C IFLIP = BUBBLESORT FLAG WE CHANGED SOMETHINGHC (USE SIMPLE MINDED SMALL SORT. TOO MUCH OVHD FOR BETTER ONE...NO ROOM) ID1A=ID1G ID2A=ID2IDC IGNORE CASE OF IDELTA=0... SHOULDN'T BE ANY WAY FOR THAT TO HAPPEN DO 1754 IV=1,IDELTA+C SORT HERE. IFLIP=1 IF WE INVERT ANYTHING.EC JUST COMPARE XVBLS...GDC NOTE WE ASSUME A "NORMAL" TYPE DISPLAY, JUST RESET PHYSICAL STUFF. CALL XVBLGT(ID1A,ID2A,XAC), CALL XVBLGT(ID1A+I1IN,ID2A+I2IN,XVBLS(1,1))+ IF(XAC*SSIGN.LE.XVBLS(1,1)*SSIGN)GOTO 1755 8C IF((XVBLS(ID1A,ID2A)*SSIGN).LE.(SSIGN*XVBLS(ID1A+I1IN,C 1 ID2A+I2IN)))GOTO 1755IC FLIP ASSIGNMENTS@C FLIP XVBLS NUMBERS TOO TO MAINTAIN SORT. WE RECOMPUTE ANYWAY.. C XAC=XVBLS(ID1A+I1IN,ID2A+I2IN)-C XVBLS(ID1A+I1IN,ID2A+I2IN)=XVBLS(ID1A,ID2A).C XVBLS(ID1A,ID2A)=XAC% CALL XVBLST(ID1A+I1IN,ID2A+I2IN,XAC)D" CALL XVBLST(ID1A,ID2A,XVBLS(1,1)) IFLIP=1/C SWAP ASSIGNMENTS OF DISPLAY STUFF IF IN RANGEL#C OPERATES LIKE A SORTED OA COMMANDE/C CURRENT PHYSICAL ROW IS ID2A (1...RCL LIMITS)EC AND PHYS COL IS ID1A. LDELTA=DRW-1I8C FOR REASSIGNMENT, ROLE OF I1IN,I2IN CAN BE REVERSED... ID1B=1C6C NOTE DISPLAY ID2 IS 1 LESS THAN PHYSICAL ONE. (AC'S) ID2B=ID2A-1 IF(ID2B.LE.0)GOTO 17545 IF(CMDLIN(3).NE.'R')GOTO 1756C ROW... LDELTA=DCL-1UC ID1 SAME AS DISPLAY COORDS ID1B=ID1A ID2B=1( 1756 CONTINUEK DO 1757 IVV=1,LDELTAK?C FLIP THE ROW/COL 1 ENTRY AT A TIME. JUST CHANGES ASSIGNMENTS.O JD1=NRDSP(ID1B,ID2B)I JD2=NCDSP(ID1B,ID2B) , NRDSP(ID1B,ID2B)=NRDSP(ID1B+I1IN,ID2B+I2IN), NCDSP(ID1B,ID2B)=NCDSP(ID1B+I1IN,ID2B+I2IN) NRDSP(ID1B+I1IN,ID2B+I2IN)=JD1G NCDSP(ID1B+I1IN,ID2B+I2IN)=JD29 ID1B=ID1B+I2INE ID2B=ID2B+I1INC 1757 CONTINUE 4C WE CAN ALWAYS FLIP SINCE WE STAY ON DISPLAY SHEET. 1755 CONTINUEF ID1A=ID1A+I1IN( ID2A=ID2A+I2INA 1754 CONTINUE..C DONE 1 PASS. IF ANYTHING CHANGED, TRY AGAIN. IF(IFLIP.NE.0)GOTO 1753C DONE SORT AT END GOTO 9990 1752 CONTINUEGC  IF(CMDLIN(2).NE.'L')GOTO 8101C DL = DISPLAY LOCATE V1:V2 N:M  ASSIGN 8103 TO IBACKW GOTO 8104:C STRIP VARIABLE NAMES OFF CMD LINE STARTING AT POSITION 3 8104 LA=3I LE=98 L1=0'1 CALL VARSCN(CMDLIN(1),LA,LE,LSTC,ID1A,ID2A,IVLD) L2=09*C L1,L2 = FLAGS VARIABLE 1,2 FOUND VALIDLY LA=LSTC+1 LE=100-LA" IF(LE.LE.0.OR.IVLD.LE.0)GOTO 8102 L1=1! IF(CMDLIN(LSTC).NE.':')GOTO 8102O0C MUST SEE : BETWEEN NAMES. NO SPACES PERMITTED.. CALL VARSCN(CMDLIN,LA,LE,LSTC,ID1B,ID2B,I00Jb b^[Z[[[\[}VLD) IF(IVLD.LE.0)GOTO 8102J L2=1L 8102 CONTINUE PC NOTE THAT LSTC RETURNS AS CHARACTER AFTER VARIABLE LAST GRABBED IN INPUT LINE. GOTO IBACKN(C NOW PICK UP RN:M OR CN:M (R=ROW,C=COL) 8103 CONTINUEE IF(L1.LT.1)GOTO 8101A*C INVALID UNLESS AT LEAST 1 VBL NAME SEEN. LA=LSTC+2 RCF=0 IF(CMDLIN(LSTC+1).EQ.'R')RCF=2N IF(CMDLIN(LSTC+1).EQ.'C')RCF=1 IF(RCF.EQ.0)GOTO 8101 KM1=1 CALL GN(KM1,LE,NUM1,CMDLIN(LA)) IF(NUM1.EQ.0)GOTO 8101G LE=INDEX(CMDLIN(LA),':')V NUM2=0  IF(LE.GT.100)GOTO 8101 LA=LA+LEE KM1=1 KM8=8! CALL GN(KM1,KM8,NUM2,CMDLIN(LA))L>C NOW NUM1,NUM2 ARE DESIRED ROW/COL RANGE. NOW SET UP DISPLAY.& IF(NUM2.EQ.0.OR.NUM2.GT.DCL)GOTO 8101 IF(NUM1.GT.DRW)GOTO 81011C ILLEGAL ROW/COL IS A NO-GO.O3C R N:M MEANS STARTING AT COL N ROW M GOING L TO R.C:C C N:M MEANS DOWN STARTING THERE. DISPLAY COORDS ASSUMED.+ IF(ID1A.NE.ID1B.AND.ID2A.NE.ID2B)GOTO 8101 *C ONLY HANDLE ROWS OR COLS, NOT DIAGONALS. C MUST BE A PHYS MTX ROW OR COL. LRINC=0 LCINC=0 IF(RCF.EQ.1)LRINC=1 IF(RCF.EQ.2)LCINC=1 ASSIGN 8108 TO JBACK GOTO 8109 C COPY DATAM 8109 CONTINUEO ICODE=2 IDELT=19 IF(L2.NE.0)IDELT=MAX0(IABS(ID1A-ID1B),IABS(ID2A-ID2B))+1O I1IN=0T I2IN=1D IF(ID1A.EQ.ID1B)GOTO 8106 I1IN=1E I2IN=0 8106 CONTINUE4 ID1=ID1AM ID2=ID2AQ GOTO JBACKI 8108 CONTINUEQ ICODE=1 IR=NUM1 IC=NUM2 DO 8105 NM=1,IDELTIC CLAMP TO MAX DISPLAY ARRAY$ IF(IR.GT.DRW.OR.IC.GT.DCL)GOTO 8105 NRDSP(IR,IC)=ID19 NCDSP(IR,IC)=ID2  DVS(IR,IC)=DVS(IR,IC)-1.E-11O C THISRW=IRD C THISCL=ICCC JRX=(ID2-1)*RRW+ID1C CALL REFLEC(ID2,ID1,JRX)T CALL WRKFIL(JRX,FORM2,0) C READ(7'JRX)FORM2C DO 7104 N7=1,9#C7104 DFMTS(N7,IR,IC)=FORM2(N7+119)=C DFMTS(10,IR,IC)=0T IR=IR+LCINC IC=IC+LRINCC NOTE REVERSAL FOR DISPLAY. ID1=ID1+I1IN. ID2=ID2+I2ING 8105 CONTINUEE 8101 CONTINUEL IF(CMDLIN(2).NE.'F')GOTO 8111C DF STUFF - SET FORMAT. ASSIGN 8112 TO IBACK( GOTO 8104 8112 CONTINUE9C NOW HAVE VARIABLE ID'S SET UPS IF(L1.LE.0)GOTO 81208C MUST HAVE 1 OR MORE... ASSIGN 8113 TO JBACKC GOTO 8109'C IDELT NOW SET UP. SET FORMATS UP NOW. 1C FORMATS ARE IN [] BRACKETS. FIND THESE AND USE.L 8113 CONTINUE- ICODE=1 LA=INDEX(CMDLIN,'[')+1N LB=INDEX(CMDLIN,']')-1R LDELT=LB-LA+1 LDELT=MIN0(LDELT,9) DO 8114 LN=1,IDELTH/C IDELT IS OVER VRBL LIST GIVEN. MAY BE 1 ONLY.OC IRRX=(ID2-1)*RRW+ID1 CALL REFLEC(ID2,ID1,IRRX) CALL WRKFIL(IRRX,FORM,0)R%C KEEP EXISTING FORMAT IF [*] IS USED( IF(CMDLIN(LA).EQ.'*')GOTO 711584 IF(CMDLIN(LA).EQ.'A'.OR.CMDLIN(LA).EQ.'L')GOTO 7115C READ(7'IRRX)FORM DO 7989 KKKK=1,9 7989 FORM(119+KKKK)=0G DO 8115 LNA=1,LDELT FORM(LNA+119)=CMDLIN(LA-1+LNA)J IF(LNA.LT.9)FORM(LNA+120)=0 8115 CONTINUEA 7115 CONTINUEY C FORM(128)=0E CALL FVLDGT(ID1,ID2,FVWRK)3 IVVVV=FVWRK IF(IVVVV.EQ.0)IVVVV=3C SET UP DEFAULT AS NUMERIC.C IVVVV=FVLD(ID1,ID2)Y#C FVLD(ID1,ID2)=MAX0(1,IABS(IVVVV))M IVVVV=MAX0(1,IABS(IVVVV))1 IF(CMDLIN(LA).EQ.'A'.OR.CMDLIN(LA).EQ.'L')IVVVV=L 1 MIN0(-1,-IABS(IVVVV))K CALL FVLDST(ID1,ID2,IVVVV)E, IF(CMDLIN(LA).EQ.'I')CALL TYPSET(ID1,ID2,4)+ IF(CMDLIN(LA).EQ.'F'.OR.CMDLIN(LA).EQ.'E')S 1 CALL TYPSET(ID1,ID2,2)C FORM(119)=IVVVVCODC TO BE SURE WE DON'T FOUL UP THE FILE, TRY AN ENCODE ON THIS FORMATIC PRIOR TO THE WRITE. THAT WAY IF WE BOMB, THE FILE WE HAVE DIRECT ACCESSVC DATA ON IS NOT CLOBBERED.G IF(IVVVV.LE.0)GOTO 7990 DO 7988 KKK=1,9 KKKK=FORM(119+KKK)E7988 DFE(KKK+1)=MAX0(32,KKKK)C DFE(1)='('2 DFE(12)=')' CALL TYPGET(N1,N2,TYPE(1,1))I CALL FVLDGT(N1,N2,FVLD(1,1))M IF(FVLD(1,1).LE.0)GOTO 7990 IF(TYPE(1,1).NE.2)GOTO 62241 ENCODE(100,DFE,FORM2,ERR=4302)DVS(THISRW,THISCL)3 GOTO 7990 6224 CONTINUEL4 ENCODE(100,DFE,FORM2,ERR=4302)LDVS(1,THISRW,THISCL) 7990 CONTINUED CALL WRKFIL(IRRX,FORM,1)DC WRITE(7'IRRX)FORM  DO 8116 NX1=1,DRW DO 8116 NX2=1,DCLC LOCATE DISPLAY CELL IF ANY= IF(NRDSP(NX1,NX2).EQ.ID1.AND.NCDSP(NX1,NX2).EQ.ID2)GOTO 8117 8116 CONTINUE GOTO 8118 8117 CONTINUE # DVS(NX1,NX2)=DVS(NX1,NX2)-1.23E-12( 8118 CONTINUEC ID1=ID1+I1INO00Rbg`^YTADATADATADATADATADATA ID2=ID2+I2INL 8114 CONTINUED 8111 CONTINUED IF(CMDLIN(2).NE.'T')GOTO 8120C DT DISPLAY TYPE) ASSIGN 8121 TO IBACKC GOTO 8104C GET VBL NAMESC8121 ASSIGN 8122 TO JBACK GOTO 81098122 LA=LSTC+1 IF(L1.LE.0)GOTO 8120 KTYP=2 IF(CMDLIN(LA).EQ.'I')KTYP=4 ICODE=1 DO 8123 LNA=1,IDELT CALL TYPSET(ID1,ID2,KTYP)C TYPE(ID1,ID2)=KTYP DO 8126 NX1=1,DRWV DO 8126 NX2=1,DCLVR= IF(NRDSP(NX1,NX2).EQ.ID1.AND.NCDSP(NX1,NX2).EQ.ID2)GOTO 8127D2C FIND DISPLAY LOC IF ANY AND SET IT UP FOR REDRAW 8126 CONTINUEV GOTO 8128 8127 CONTINUE $ DVS(NX1,NX2)=DVS(NX1,NX2)-1.211E-12 8128 CONTINUE1 ID1=ID1+I1IN5 ID2=ID2+I2INO 8123 CONTINUE1 8120 CONTINUEM IF(CMDLIN(2).NE.'W')GOTO 8130C DW SETS COL WIDTH' ASSIGN 8131 TO KBACKO GOTO 8132%C GET 2 NUMBERS STARTING AT CMDLIN(4)C 8132 CONTINUEN KM1=1 KM6=6 CALL GN(KM1,KM6,NCL,CMDLIN(4))D LA=INDEX(CMDLIN(4),',')C COMMA MUST BE SEPARATOR LCWID=7 IF(LA.GT.100)GOTO 8138, KM1=1$ CALL GN(KM1,KM6,LCWID,CMDLIN(LA+4))8138 GOTO KBACKD 8131 CONTINUEN ICODE=2 NCL=MAX0(1,NCL) NCL=MIN0(NCL,DRW) LCWID=MAX0(1,LCWID) LCWID=MIN0(LCWID,110)C COL WIDTH IS 3 TO 110 CHARS. IF(NCL.GT.0)CWIDS(NCL)=LCWIDD 8133 CONTINUEY 8130 CONTINUEA IF(CMDLIN(2).NE.'B')GOTO 8140C DB = BOUNDS ON ROW,COL ASSIGN 8141 TO KBACK1 GOTO 8132#C PARASITE OTHER CODE TO GET DIGITS1 8141 MC=NCLL MR=LCWIDG MC=MIN0(MC,DRW) MR=MIN0(MR,DCL)C CLAMP RANGE TO LEGAL IF(MC.GT.0)DRWV=MC  IF(MR.GT.0)DCLV=MR  ICODE=2#C REDRAW SCREEN WHEN BOUNDS CHANGE.R 8140 CONTINUEC GOTO 9990"8002 IF(CMDLIN(1).NE.'V')GOTO 8003C VIEW REDRAW COMMANDP PZAP=0= FORMFG=04 IF(CMDLIN(2).EQ.'F')FORMFG=1I IF(CMDLIN(2).EQ.'M')PZAP=1  ICODE=2 GOTO 9990 O78003 IF(CMDLIN(1).NE.'C'.AND.CMDLIN(1).NE.'I')GOTO 8004OC COPY NUMBERS COMMAND#C COPY (NUMBERS,FORMAT,DISPLAY,ALL)IBC CV=COPY VALUE, CD=COPY DISPLAY FMT, CF=COPY FORMULA, CA=COPY ALL.C Ca V1:V2 V3:V4 COPIES FIRST RANGE TO SECOND.&C IR RANGES DOES INPLACE RELOCATION...CGC COLLECT ARGS ASSIGN 8301 TO IBACKS GOTO 8104 8301 CONTINUE)8C NOW L1,L2 SAY IF VBLS(ID1A,ID2A) AND (ID1B,ID2B) EXIST9C COLLECT JD2A,JD2B. USE SIMILAR INTERNAL PROCEDURE CODE.4 IF(L1.LE.0)GOTO 8399O ASSIGN 8302 TO MBACKF GOTO 8303 8303 CONTINUEE#C COLLECT 2 VARS STARTING AT LSTC+3=C SKIPS LSTC DELIMITER.. LJ1=0 LJ2=0 LA=LSTC+1 LE=110-LA IF(LE.LE.0)GOTO 8304D. CALL VARSCN(CMDLIN,LA,LE,LSTC,JD1A,JD1B,IVLD) LA=LSTC+1 LE=110-LA" IF(LE.LE.0.OR.IVLD.LE.0)GOTO 8304 LJ1=1! IF(CMDLIN(LSTC).NE.':')GOTO 8304N. CALL VARSCN(CMDLIN,LA,LE,LSTC,JD2A,JD2B,IVLD) IF(IVLD.LE.0)GOTO 8304, LJ2=18304 GOTO MBACK 8302 CONTINUE3 IF(LJ1.LE.0)GOTO 8399 IDELT=19 IF(L2.NE.0.AND.(ID1A.NE.ID1B.AND.ID2A.NE.ID2B))GOTO 8305.9 IF(L2.NE.0)IDELT=MAX0(IABS(ID1A-ID1B),IABS(ID2A-ID2B))+1 8305 CONTINUEE JDELT=1 IF(LJ2.EQ.0)GOTO 8306+ IF(JD1A.NE.JD2A.AND.JD1B.NE.JD2B)GOTO 8306L. JDELT=MAX0(IABS(JD1A-JD2A),IABS(JD1B-JD2B))+1'8306 IF(L2.NE.0)JDELT=MIN0(IDELT,JDELT)X9C CHANGE FOR REPLICATE : JDELT CAN BE JUST JDELT IF L2=0) ASSIGN 8307 TO JBACK0CC 8109 IS WHERE WE SET UP I1IN AND I2IN ASSUMING THAT THE VARIABLESV5C ARE SET PROPERLY. HANDLED AS AN INTERNAL PROCEDURE.) GOTO 8109 8307 CONTINUEC JIN1=1 JIN2=0E IF(JD1B.EQ.JD2B)GOTO 8308 JIN1=0U JIN2=1M 8308 CONTINUEGBC CHANGE FOR REPLICATE: IF L2 IS 0 (NO 2ND SRC VARIABLE), NO BUMPS%C PAST THE SINGLE VARIABLE SPECIFIED.1 IF(L2.EQ.0)I1IN=0 IF(L2.EQ.0)I2IN=09C FOR PCC-PC DO RECALC ALWAYS TO ALLOW DISPLAY TO LOOK OK) ICODE=3 C ICODE=1P)C FORCE RECALC IF ONLY 1 SOURCE VARIABLE.WC IF(L2.EQ.0)ICODE=3 JRTR=PROW JRTC=PCOL'C JRTR AND JRTC = RELOCATION THRESHOLDS'@C CELLS ABOVE OR LEFT OF JRTR,JRTC WILL NOT BE RELOCATED IN A CR>C OPERATION. THIS WILL GENERALLY BE THE PHYSICAL COLUMN OR ROW@C OF THE CURRENT POSITION. CELLS LOWER OR EQUAL, OR TO THE RIGHT@C OF THE CURRENT LOCATION OR EQUAL, WILL BE RELOCATED. (VARIABLEC NAMES GET EDITED)E ASSIGN 8365 TO KPYBAK GOTO 8364$C 8364 BEGINS COPY PROCEDURE SECTIONEC GOES FOR JDELT CELLS WITH I100Zb b^[Z[[[\[}IN AND I2IN BEING SOURCE INCREMENTS FOR3?C RRW DIMENSION, RCL DIMENSION, AND JIN1,2 BEING INCREMENTS FORP@C DESTINATION RRW,RCL DIMENSIONS RESPECTIVELY. USES CMDLIN(2) TO9C FLAG WHETHER TO HANDLE ALL, JUST FORMAT, RELOCATE, ETC.+C ALSO ID1A,ID2A ARE START SOURCE LOCATIONR#C JD1A,JD1B = DEST START LOCATION.ECD#C COPIES 1 ROW OR COLUMN AT A TIME.N 8364 CONTINUET C ICODE=10$C SET DISPLAY UPDATE ON COPIED CELLSCCD DO 3620 JV=1,BRRCLCCD3620 IBITMP(JV)=0 DO 8309 JV=1,JDELT  DO 8380 NX1=1,DRWV  DO 8380 NX2=1,DCLVEC LOCATE DISPLAY CELL IF ANY= IF(NRDSP(NX1,NX2).EQ.ID1.AND.NCDSP(NX1,NX2).EQ.ID2)GOTO 8387R 8380 CONTINUEB GOTO 8388 8387 CONTINUEE$ DVS(NX1,NX2)=DVS(NX1,NX2)+1.245E-14 8388 CONTINUE C JRXX=(JD1B-1)*RRW+JD1AC IRXX=(ID2A-1)*RRW+ID1A CALL REFLEC(JD1B,JD1A,JRXX) CALL REFLEC(ID2A,ID1A,IRXX)! CALL FVLDGT(ID1A,ID2A,FVLD(1,1))U KKKKK=FVLD(1,1)! CALL FVLDGT(JD1A,JD1B,FVLD(1,1))I+ IF(KKKKK.EQ.0.AND.FVLD(1,1).EQ.0)GOTO 8314R<C IF(FVLD(ID1A,ID2A).EQ.0.AND.FVLD(JD1A,JD1B).EQ.0)GOTO 8314C READ(7'IRXX)FORMC READ(7'JRXX)FORM2I CALL WRKFIL(IRXX,FORM,0)= CALL WRKFIL(JRXX,FORM2,0)) IF(KKKKK.EQ.-2)CALL FVLDST(ID1A,ID2A,-3)R' IF(KKKKK.EQ.2)CALL FVLDST(ID1A,ID2A,3)S! IF(FORM (119).EQ. 2)FORM (119)=3 " IF(FORM (119).EQ.-2)FORM (119)=-3! IF(FORM2(119).EQ. 2)FORM2(119)=3L" IF(FORM2(119).EQ.-2)FORM2(119)=-33 IF(CMDLIN(2).NE.'R'.AND.CMDLIN(2).NE.'A')GOTO 8310. IF(CMDLIN(2).NE.'R')GOTO 8366C RELOCATE, THEN WRITE NEW CELL II1=ID1AL II2=ID2AN JJ1=JD1A+ JJ2=JD1BA2 CALL RELVBL(FORM,FORM2,II1,II2,JJ1,JJ2,JRTR,JRTC)<C THE ABOVE WILL RELOCATE FORM INTO FORM2 WHICH WE NOW EMIT.,C ALLOW IR COMMAND TO DO INPLACE RELOCATION. IF(CMDLIN(1).NE.'I')GOTO 6225 CALL WRKFIL(IRXX,FORM2,1) GOTO 9222 6225 CONTINUE( CALL WRKFIL(JRXX,FORM2,1)C WRITE(7'JRXX)FORM2 GOTO 8367 8366 CONTINUEO CALL WRKFIL(JRXX,FORM,1)NC WRITE(7'JRXX)FORMI 8367 CONTINUEA! CALL TYPGET(ID1A,ID2A,TYPE(1,1)) ! CALL TYPSET(JD1A,JD1B,TYPE(1,1))9!C TYPE(JD1A,JD1B)=TYPE(ID1A,ID2A)W" CALL XVBLGT(ID1A,ID2A,XVBLS(1,1))" CALL XVBLST(JD1A,JD1B,XVBLS(1,1))#C XVBLS(JD1A,JD1B)=XVBLS(ID1A,ID2A).! CALL FVLDGT(ID1A,ID2A,FVLD(1,1))L! CALL FVLDST(JD1A,JD1B,FVLD(1,1)),!C FVLD(JD1A,JD1B)=FVLD(ID1A,ID2A) 9222 ID1A=ID1A+I1INO ID2A=ID2A+I2IN  JD1A=JD1A+JIN1R JD1B=JD1B+JIN25 GOTO 8309 8310 CONTINUED IF(CMDLIN(2).NE.'V')GOTO 8312! CALL TYPGET(ID1A,ID2A,TYPE(1,1))E! CALL TYPSET(JD1A,JD1B,TYPE(1,1))O!C TYPE(JD1A,JD1B)=TYPE(ID1A,ID2A)L" CALL XVBLGT(ID1A,ID2A,XVBLS(1,1))" CALL XVBLST(JD1A,JD1B,XVBLS(1,1))#C XVBLS(JD1A,JD1B)=XVBLS(ID1A,ID2A) "8312 IF(CMDLIN(2).NE.'D')GOTO 8313! CALL FVLDGT(ID1A,ID2A,FVLD(1,1))! CALL FVLDST(JD1A,JD1B,FVLD(1,1))Q!C FVLD(JD1A,JD1B)=FVLD(ID1A,ID2A)C DO 8315 LXQ=1,10R!8315 FORM2(118+LXQ)=FORM(118+LXQ)L CALL WRKFIL(JRXX,FORM2,1)C WRITE(7'JRXX)FORM2"8313 IF(CMDLIN(2).NE.'F')GOTO 8314 DO 8316 LXQ=1,1108316 FORM2(LXQ)=FORM(LXQ)S CALL WRKFIL(JRXX,FORM2,1)C WRITE(7'JRXX)FORM2 8314 CONTINUE0 ID1A=ID1A+I1INN ID2A=ID2A+I2IN1 JD1A=JD1A+JIN12 JD1B=JD1B+JIN2W 8309 CONTINUE,C RETURN POINT FROM COPY LOOP IN NORMAL COPY GOTO KPYBAK 8365 CONTINUE(8399 GOTO 999068004 IF(CMDLIN(1).LT.'1'.OR.CMDLIN(1).GT.'4')GOTO 8005C 1,2,3,4 POSITIONING COMMANDS ICODE=5/C IF(CMDLIN(1).EQ.'3')THISRW=MAX0(1,(THISRW-1))I2C IF(CMDLIN(1).EQ.'4')THISRW=MIN0((THISRW+1),DRWV)/C IF(CMDLIN(1).EQ.'1')THISCL=MAX0(1,(THISCL-1))Q2C IF(CMDLIN(1).EQ.'2')THISCL=MIN0((THISCL+1),DCLV)2C ASCII 1,2,3,4 ARE VALUES 49,50,51,52 IN DECIMAL. MVFG=CMDLIN(1)  LRO=1 LCO=1 ID1=NRDSP(1,1)O ID2=NCDSP(1,1)/ IF(.NOT.(MVFG.EQ.51.AND.THISRW.EQ.1))GOTO 21107C MUST SCROLL LEFT IF(IDOL7.EQ.0)GOTO 2110 IF(ID1.LE.1)GOTO 2110 ID1=MAX0(1,ID1-DRWV+2)V DROW=MAX0(1,DRWV-2) IQQ=1 GOTO 7112,2110 IF(MVFG.EQ.51)THISRW=MAX0(1,(THISRW-1))2 IF(.NOT.(MVFG.EQ.52.AND.THISRW.EQ.DRWV))GOTO 2116C MUST SCROLL RIGHT8 IF(IDOL7.EQ.0)GOTO 2116 DROW=3M%C ID1=MIN0(RRW,ID1+DRWV-MIN0(DRWV,2))O ID1=ID1+DRWV-MIN0(DRWV,2) IQQ=1 GOTO 7112(C 7112 FAKES OUT OA CALL TO SCROLL OVER./2116 IF(MV00bbg`^YTADATADATADATADATADATAFG.EQ.52)THISRW=MIN0((THISRW+1),DRWV)0/ IF(.NOT.(MVFG.EQ.49.AND.THISCL.EQ.1))GOTO 21176C MUST SCROLL UP IF(IDOL7.EQ.0)GOTO 2117 IF(ID2.LE.2)GOTO 2117 DCOL=MAX0(1,DCLV-2) ID2=MAX0(2,ID2-DCLV+2)I IQQ=1 GOTO 7112,2117 IF(MVFG.EQ.49)THISCL=MAX0(1,(THISCL-1))2 IF(.NOT.(MVFG.EQ.50.AND.THISCL.EQ.DCLV))GOTO 2118C MUST SCROLL DOWN IF(IDOL7.EQ.0)GOTO 2118 DCOL=3L%C ID2=MIN0(RCL,ID2+DCLV-MIN0(DCLV,2))N ID2=ID2+DCLV-MIN0(DCLV,2) IQQ=1 GOTO 7112/2118 IF(MVFG.EQ.50)THISCL=MIN0((THISCL+1),DCLV)V PROW=NRDSP(THISRW,THISCL) PCOL=NCDSP(THISRW,THISCL) DROW=THISRW DCOL=THISCL GOTO 9990 8005 CONTINUE "8007 IF(CMDLIN(1).NE.'R')GOTO 8008 IF(CMDLIN(2).NE.'B')GOTO 7333-C RB VAR SETS RELOCATE BOUNDARY TO VAR COORDSS IF(CMDLIN(3).EQ.'*')GOTO 7332C NORMAL RB COMMAND/#C RB VAR USES VAR NAME TO RESET BDYI LO=3L KKKK=20. CALL VARSCN(CMDLIN,LO,KKKK,IV,ID1,ID2,IVALID) IF(IVALID.LE.0)GOTO 9990OC IGNORE ERRORS. IDOL5=ID1 IDOL6=ID2 GOTO 99907332 IDOL5=20000 IDOL6=20000)C RB* RESETS RELOCATE BDY TO END OF SHEET GOTO 9990 7333 CONTINUE,C RECOMPUTE SHEET.C RM COMMAND SETS MANUAL FLAG. RCFGX=0 RCONE=0 IF(CMDLIN(2).NE.'S')GOTO 5114 RRWACT=RRW RCLACT=RCLO 5114 CONTINUEC'C RCFGX NONZERO INHIBITS RECALCULATION.H%C RCONE SET 1 TO FORCE RECALC OF ALL.'9C CHANGE FROM OTHER SYNTAX: RF FORCES RECALC, R DOES NOT.=0 IF(CMDLIN(2).EQ.'F'.OR.CMDLIN(2).EQ.'R')RCONE=18C NOTE RXF (X=ANY CHAR BUT F) ACTS LIKE OLD VERSION RXF.>C BARE R COMMAND HOWEVER JUST REDOES CALC. F NOW MEANS "FORCE":C AND SEEMS A BIT MORE MNEMONIC THIS WAY. ALLOW RR COMMANDC TO WORK AS WELL AS RF. IF(CMDLIN(2).NE.'R')RCMODE=0 IF(CMDLIN(2).EQ.'E')RCMODE=1A IF(CMDLIN(2).EQ.'I')RCMODE=2I IF(CMDLIN(2).EQ.'M')RCFGX=1 ICODE=3 GOTO 9990"8008 IF(CMDLIN(1).NE.'K')GOTO 8009C DROP INTO CALC BARE. IF(IPSET.NE.0)GOTO 9990C CAN'T CALL CALC RECURSIVELYL OSWIT=0 ILNFG=0 C ICODE=-1C CLOSE UNIT 1 JUST IN CASE... CLOSE(UNIT=1) CALL UVT100(ED,2) KLVL=1D ILNCT=0>C SAVE PROW,PCOL ACROSS CALC SINCE IT MAY NOW USE *P AND *W TOC MODIFY THEM. C IPRSSS=PROW1 C IPCSSS=PCOLS C CALL CALC1 C PROW=IPRSSS1 C PCOL=IPCSSSL"CC CLOSE CONSOLE LUN USED BY CALC.C CLOSE(UNIT=1) -CC CLOSE ANY OTHER LUNS CALC MAY HAVE USED... C CLOSE(UNIT=2)SC CLOSE(UNIT=3)S ICODE=420 GOTO 9990"8009 IF(CMDLIN(1).NE.'L')GOTO 8010C LOCATE CURSOR ORIGINC FORMAT IS L VARIABLE%C ONLY 1 VARIABLE NAME TO BE ENTERED.I LA=2N LE=30. CALL VARSCN(CMDLIN,LA,LE,LSTC,ID1A,ID2A,IVLD) L1=IVLDC ASSIGN 8900 TO IBACK C GOTO 8104I8900 IF(L1.LT.1)GOTO 9990 3800 PROW=ID1A PCOL=ID2AC LOOK UP DISPLAY COORDS IF ANYI ASSIGN 8901 TO NBKL GOTO 7905 8901 CONTINUE DROW=LR DCOL=LC THISRW=LR THISCL=LC 3802 ICODE=1 GOTO 9990 8010 CONTINUE2 IF(CMDLIN(1).NE.'>')GOTO 3801CC >STRING SEARCH FOR STRING IN FORMULA. STRING TERMINATES WITH EOL.T.C SEARCH FROM CURRENT POSITION TO RB RANGE END LA=MIN0(RRWACT,IDOL5) LB=MIN0(RCLACT,IDOL6)& IF(PROW.GT.LA.OR.PCOL.GT.LB)GOTO 38020C ONLY SEARCH IF THERE'S A VALID RANGE TO SEARCH DO 3803 ID1=PROW,LA DO 3803 ID2=PCOL,LB CALL FVLDGT(ID1,ID2,FVLD(1,1))( IF(FVLD(1,1).EQ.0)GOTO 3803 ID1A=ID1C ID2A=ID2I>C USE SCMP SUBROUTINE FROM CMND FILE. (VAX ONLY OR RE-OVERLAY)C GET FORMULA IN MEMORY FIRST. LMN=2 LMX=50I IF(CMDLIN(2).NE.'>')GOTO 3809 LMN=3 LMX=1C ANCHOR SEARCH IF 2 > IN A ROWN 3809 CONTINUEDCD IRX=(ID2-1)*RRW+ID1 CALL REFLEC(ID2,ID1,IRX)1 CALL WRKFIL(IRX,FORM2,0) ;C SEARCH IN FIRST 50 CHARACTERS OF FORMULA FOR USERS STRINGTC NOW THAT WE HAVE IT LOCAL. DO 3805 IVV=1,LMX KKKK=110-IVV=C DON'T GO COMPARING NULLS.A IF(FORM2(IVV).LE.0)GOTO 38034* CALL SCMP(FORM2(IVV),CMDLIN(LMN),KKKK,IV) IF(IV.EQ.1)GOTO 3804L 3805 CONTINUEL 3803 CONTINUES GOTO 3802 3804 CONTINUEA'C SET ID1A AND ID2A TO CELL LOC TO USE.I GOTO 3800"3801 IF(CMDLIN(1).NE.'Z')GOTO 8011C ZERO COMMANDC ZA OR ZE V1:V2 IF(CMDLIN(2).NE.'A')GOTO 8950%C ZA = ZERO ALL. BE SURE HE MEANS IT.S CALL UVT100(CUP,LDSPR,1)L WRITE(6,8951)18951 FORMAT(/,'Reall00jb b^[Z[[[\[}y Zero All of sheet [Y/N]? ')J5 READ(IOLVL,8952,END=510,ERR=510)(FORM2(KKI),KKI=1,4)H8952 FORMAT(4A1) IF(FORM2(1).NE.'Y')GOTO 9990. CALL UVT100(ED,2) ICODE=-4N GOTO 9990"8950 IF(CMDLIN(2).NE.'E')GOTO 9990 ASSIGN 8953 TO IBACKA GOTO 8104 C GET NAMES 8953 IF(L1.LE.0)GOTO 9990F ASSIGN 8954 TO JBACKE GOTO 8109 8954 CONTINUET DO 8955 NI=1,1288955 FORM2(NI)=0 FORM2(118)=15 DO 8823 NI=1,918823 FORM2(119+NI)=DEFVB(1+NI) DO 8956 NI=1,IDELTLC IRX=(ID2-1)*RRW+ID1 CALL REFLEC(ID2,ID1,IRX)L CALL WRKFIL(IRX,FORM2,1)CC WRITE(7'IRX)FORM2M CALL FVLDST(ID1,ID2,0)M CALL XVBLST(ID1,ID2,0.0D0)NC FVLD(ID1,ID2)=0C XVBLS(ID1,ID2)=0.. IPRS=PROW IPCS=PCOL PROW=ID1O PCOL=ID2  ASSIGN 8957 TO NBKNC FIND DISPLAY LOC IF ANYI GOTO 79058957 PROW=IPRS PCOL=IPCS IF(LR.EQ.0.OR.LC.EQ.0)GOTO 8958 DVS(LR,LC)=DVS(LR,LC)+1.E-10. 8958 CONTINUEE ID1=ID1+I1IN ID2=ID2+I2IN 8956 CONTINUEO GOTO 9990"8011 IF(CMDLIN(1).NE.'X')GOTO 8012 C EXIT TO OS:C SINCE THERE'S NO WORKFILE HERE, MAKE SURE HE MEANS IT... IF(IPSET.NE.0)GOTO 9990 ICODE=2 CALL UVT100(CUP,LDSPR,1)2 WRITE(6,3718)B3718 FORMAT(' Exit now may lose data unless sheet has been saved') CALL UVT100(CUP,LCMDR,1)T WRITE(6,3717)+3717 FORMAT(' Confirm Exit Request [Y/N]:')I5 READ(IOLVL,8952,END=510,ERR=510)(FORM2(KKI),KKI=1,4)1 IF(FORM2(1).NE.'Y'.AND.FORM2(1).NE.'y')GOTO 9990L IF(CMDLIN(2).NE.'D')GOTO 36037C THE XD COMMAND WILL EXIT AND DELETE THE SCRATCH FILE.DC CALL WRKFIL(1,FORM,3)1C CLOSE(UNIT=7,DISP='DELETE')*C FINISH UP WITH DATATRIEVE IF USING IT... CALL DTRFINC NOW CLEAN EXIT. CALL EXIT 3603 CONTINUE7C CALL WRKFIL(1,FORM,3)7C CALL CLOSE(7)1 CALL EXIT"8012 IF(CMDLIN(1).NE.'S')GOTO 8013&C SAVE SHEET TO DISK (NEW SET OF DATA)C NOW JUST PERMITS RESTART...1 ICODE=-2E ISTAT=-2I CALL UVT100(ED,2) GOTO 9990 1"8013 IF(CMDLIN(1).NE.'P')GOTO 8014 IRTN=0B CALL PGET(CMDLIN,ICODE,IRTN)9 IF(IRTN.EQ.1)GOTO 510 GOTO 9990 8014 CONTINUEO"8015 IF(CMDLIN(1).NE.'G')GOTO 8016;C GET INPUT NUMBERS OFF SEQUENTIAL FILE. USE CURRENT ORIGINM ICODE=2 IRTN=0M CALL PGGET(CMDLIN,ICODE,IRTN) IF(IRTN.EQ.1)GOTO 510 RCMODE=-IABS(RCMODE)E GOTO 9990"8016 IF(CMDLIN(1).NE.'W')GOTO 80173C WRITE (PRINT) SCREEN OUT TO FILE (MAY BE PRINTER)HC CALL DSPSHT(10)R C ICODE=1E ICODE=400)C CODE 10 IS PRINT SECRET CODE TO DSPSHT.C GOTO 9990 8017 CONTINUEL IF(CMDLIN(1).NE.'H')GOTO 5019 IF(IPSET.NE.0)GOTO 9990 IVVV=0L IVVVV=CMDLIN(2) ivvx=cmdlin(3)) 9308 CONTINUEI- IF(IVVVV.GE.48.AND.IVVVV.LE.57)IVVV=IVVVV-48 & if(ivvx.lt.48.or.ivvx.gt.57)goto 9381c implement 2 digit help code. ivvvx=ivvx-48 ivvv=(ivvv*10)+ivvvxR ivvv=min0(ivvv,maxhlp)U 9381 continueU%C SELECT HELP LEVEL 0-9 IF SPECIFIED.2 ICODE=30+IVVVC CALL HELP(IVVV)QC IVVV=0C WRITE(6,5020)TBC5020 FORMAT(/'Type return to continue, Hn for other Help pages:')2C READ(IOLVL,8952,END=510,ERR=510)(FORM2(K),K=1,4)C IVVVV=FORM2(2)C IF(FORM2(1).EQ.'H')GOTO 9308 C ICODE=2V GOTO 9990 5019 CONTINUEIGC *** ALLOW EVALUATION OF A CELL TO PERMIT INTERACTIVE COMMAND FILES TOF1C *** BE CONTROLLED RATIONALLY. KEYWORD IS "TEST"I2 IF(CMDLIN(1).NE.'T'.OR.CMDLIN(2).NE.'E')GOTO 4302C TEST EXPRESSION IS SYNTAX.0C COPY CMDLIN INTO XTNCMD AND FLAG VIA ICODE=430 XTNCNT=0T ICODE=430 DO 4303 N=1,79V XTNCMD(N)=CMDLIN(3+N)HC ALLOW "TE " WITH OPTIONAL SPACE. JUST RETURNS VALUE IN C % VARIABLE.= IF(XTNCMD(N).LT.32)GOTO 4304D XTNCNT=N 4303 CONTINUE, 4304 CONTINUE XTNCMD(XTNCNT+1)=0L GOTO 9990 4302 CONTINUE0! if(cmdlin(1).gt.32)WRITE(6,8018) 8018 FORMAT('Invalid Command.')3 GOTO 200R2C ERROR ON READIN ADDRESS. REWIND TERMINAL IF USER0C TYPES CTRL Z (EOF), ELSE LEAVE INDIRECT FILES.510 IF(IOLVL.EQ.5)REWIND 5 CLOSE(UNIT=3) IOLVL=5 GOTO 4986 9990 CONTINUE  6C HERE CLEAN UP AND RETURN0C FIRST DISPLAY LAST CURRENT COL IN NORMAL VIDEO( IF(IXLSTR.LE.0.OR.IXLSTC.LE.0)GOTO 2000 N1=NRDSP(IXLSTR,IXLSTC) N2=NCDSP(IXLSTR,IXLSTC)C IRRX=(N2-1)*RRW+N1 CALL REFLEC(N2,N1,IRR00rbg`^YTADATADATADATADATADATAX).C REWRITE LAST LOCATION WITH NO REVERSE VIDEO.C IF(FVLD(N1,N2).EQ.0)GOTO 2000 . IF(IXLSTC.GT.DCLV.OR.IXLSTR.GT.DRWV)GOTO 2000>C ONLY REDRAW NUMBERS. DIRECT DISPLAY OR NOTHING GETS IGNORED.& IF(ICODE.LT.0.OR.ICODE.EQ.2)GOTO 2000<C NO SENSE REDRAWING IF WE'RE ABOUT TO ERASE DISPLAY ANYWAY. IF(ICODE.GT.30)GOTO 2000I J=8C ADD 6 COLS FOR LABELS#C DROW,DCOL IS CURRENT DISPLAY LOC.D DO 3301 M1=1,IXLSTRC FIND DISPLAY COLUMN TO USE3301 J=J+CWIDS(M1) J=J-CWIDS(IXLSTR)(C USE THISCL+1 TO LET 1ST ROW BE LABELS. ICCC=IXLSTC+2 C JVTINC = 1 IF VT100, 0 IF VT52FC JVTINC NEEDED SINCE UVT100 FOR VT100 DOES BACKSPACE AT THE SGR ENTRYAC AND THUS WE NEED TO CORRECT FOR IT. THIS WAS FIXED IN THE UVT52TC VERSION AND ITS DESCENDANTS. IC1POS=N1 IC2POS=N2 IF(PZAP.NE.0)GOTO 2000L= CALL UVT100(CUP,ICCC,J+JVTINC) !SELECT ROW "IXLSTC", COL "J"D CALL UVT100(SGR,0)MC DESELECT REVERSE VIDEO CALL FVLDGT(N1,N2,FVLDTP) ivv=min0(30,cwids(IXLSTR))12 IF(FVLDTP.EQ.0)WRITE(6,5538)(blanks(iv),iv=1,ivv)C IF(FVLDTP.EQ.0)WRITE(6,5537)C5537 FORMAT(' ')L IF(FVLDTP.EQ.0)GOTO 2000('CC IF(FVLD(N1,N2).LT.0)READ(7'IRRX)FORMI CALL WRKFIL(IRRX,FORM,0)(C READ(7'IRRX)FORM DO 5546 KKKK=1,100Y IV=FORM(KKKK) IV=MAX0(IV,32)E5546 FORM(KKKK)=IV IF(FVLDTP.LT.0.OR.FORMFG.NE.0)12 1 ENCODE(100,8201,CMDLIN)(FORM(II),II=1,100) IF(FORMFG.NE.0)GOTO 4324= DO 6302 KKK=1,9 KKKK=FORM(KKK+119)CC KKKK=DFMTS(KKK,IXLSTR,IXLSTC)C6302 DFE(KKK+1)=MAX0(32,KKKK)V DFE(11)=322C 32 = ASCII SPACE DFE(1)='('N DFE(12)=')' CALL TYPGET(N1,N2,TYPE(1,1))L IF(FVLDTP.LE.0)GOTO 4324I IF(TYPE(1,1).NE.2)GOTO 62272 ENCODE(100,DFE,CMDLIN,ERR=4324)DVS(IXLSTR,IXLSTC) GOTO 4324 6227 CONTINUEE5 ENCODE(100,DFE,CMDLIN,ERR=4324)LDVS(1,IXLSTR,IXLSTC)I.C REDRAW THIS COL. WITHOUT REVERSE VIDEO HERE.14324 WRITE(6,9000)(CMDLIN(II),II=1,CWIDS(IXLSTR))U2C NOTE THIS REDRAWS PREVIOUS COL. IN NORMAL VIDEO.C NO CARRIAGE CTLCC CALL UVT100(SGR,0)C SELECT REVERSE VIDEO OFF 2000 CONTINUE.C NOW COMPLETE ANY CLEANUP.G<C SET CMDLIN TO 0 AT START TO INHIBIT ANY MISINTERPRETATION.BC WE USE CMDLIN AS A BUFFER IN REDRAWIND DSPLY SO DON'T LET IT GET C CLOBBERED. DO 945 K=1,1324945 CMDLIN(K)=0O RETURNA END> SUBROUTINE RELVBL(LNIN,LNOUT,INRW,INCL,JOUTR,JOUTC,JRTR,JRTC)BC RELOCATE VARIABLES BELOW/RIGHT OF JRTR,JRTC INTO LNOUT FROM LNIN INCLUDE 'VKLUGPRM.FTN'. PARAMETER CUP=1,ED=11,EL=12 LOGICAL*1 NAME(4),NUMBER(6) LOGICAL*1 LNIN,LNOUTA DIMENSION LNIN(128),LNOUT(128)3. INTEGER*2 IDOL1,IDOL2,IDOL3,IDOL4,IDOL5,IDOL61 COMMON/DOLLR/IDOL1,IDOL2,IDOL3,IDOL4,IDOL5,IDOL6( LI=1. LO=18C LI = INPUT LOCATION C LO=OUTPUT LOCATION 100 CONTINUE0C IF(LNIN(LI).LT.'A'.OR.LNIN(LI).GT.'Z')GOTO 200 LCC=LNIN(LI)D# IF(LCC.LT.65.OR.LCC.GT.89)GOTO 20006C WE MUST ENSURE VARSCN ALWAYS SEES AN ALPHA AT START. L1=LI LE=110Q LSTC=LE* CALL VARSCN(LNIN,L1,LE,LSTC,ID1,ID2,IVLD)"C IF(ID2.EQ.1.AND.ID1.LE.27)IVLD=02C OMIT MODIFYING ANYTHING IN ROW 0 SO WE DON'T GET"C RANDOM FUNCTION NAMES MUCKED UP. IF(ID2.EQ.1)IVLD=0  IF(IVLD.EQ.0)GOTO 200:C FOUND VARIABLE. NOW GENERATE ASCII ANDSTUFF INTO OUTPUT.)C FIRST DON'T RELOCATE P## AND D## FORMS.D IF(LNIN(LI+1).EQ.'#')GOTO 250 C RELOCATE NORMAL VARIABLE HERE.C;C THE NEW VARIABLE IS TO BE DIFFERENT ONLY IF (ID1,ID2) HAS8C ID1.GT.JRTR AND ID2.GT.JRTCA' IF(ID1.LT.JRTR.OR.ID2.LT.JRTC)GOTO 210B) IF(ID1.GT.IDOL5.OR.ID2.GT.IDOL6)GOTO 2101,C OK, KNOW NOW THAT WE HAVE TO RELOCATE ALL.;C THEREFORE ADD THE DIFFERENCE BETWEEN DEST AND SRC TO BOTHE C AND CLAMP TO VALID DIMENSIONS.1 IF(IDOL3.NE.0.OR.IDOL1.EQ.0)ID1=ID1+(JOUTR-INRW)T1 IF(IDOL3.NE.0.OR.IDOL2.EQ.0)ID2=ID2+(JOUTC-INCL)R ID1=MAX0(ID1,1) ID2=MAX0(ID2,1)C ID1=MIN0(RRW,ID1)RC ID2=MIN0(RCL,ID2)P ID1=MIN0(RRCL,ID1)N ID2=MIN0(RRCL,ID2)L 210 CONTINUE CALL IN2AS(ID1,NAME)T.C NAME GETS 4 CHARACTERS TO USE FOR COL. LABEL L2=ID2-1T ENCODE(6,1000,NUMBER)L21000 FORMAT(I6)I=C NOW NAME AND NUMBER ARRAYS HAVE LETTERS, DIGITS, OR SPACES.%C THROW OUT SPACES AND COPY THE REST.  LI=LSTC DO 202 N=1,4 00zb b^[Z[[[\[} IF(NAME(N).LE.32)GOTO 202 LNOUT(LO)=NAME(N) LO=LO+1 IF(LO.GT.110)GOTO 300 202 CONTINUE IF(IDOL1.GT.0)LNOUT(LO)=36R$ IF(IDOL1.GT.0.AND.LO.LE.109)LO=LO+1 DO 203 N=1,6L IF(NUMBER(N).LE.32)GOTO 203C IF 32 ISN'T SPACE, LOSE  LNOUT(LO)=NUMBER(N) LO=LO+1 IF(LO.GT.110)GOTO 300 203 CONTINUE IF(IDOL2.EQ.0)GOTO 3001 LNOUT(LO)=36A IF(LO.LE.109)LO=LO+1U GOTO 300= 250 CONTINUEC JUST COPY DISPLAY FORMS. L1=LSTC-1 DO 251 N=LI,L12 LNOUT(LO)=LNIN(N) LO=LO+1 IF(LO.GT.110)GOTO 300 251 CONTINUE LI=LSTC2C THIS SKIPS OVER THE VARIABLE FOUND, SO WE GO ON. GOTO 300.200 LNOUT(LO)=LNIN(LI) LO=LO+1 LI=LI+1'300 IF(LO.LT.109.AND.LI.LT.109)GOTO 1001@C THIS LOOPS EITHER COPYING LINE OR FINDING VARIABLES TILL DONE. DO 400 N=LO,110400 LNOUT(N)=0 DO 1 N=111,128D1 LNOUT(N)=LNIN(N)BC DEFAULT ALL OF FORM LINES EXCEPT FORMULA IDENTICAL TO THE INPUT. RETURNL ENDCJC STRING EDIT ROUTINE.0 SUBROUTINE SED(LCMD,LIN,LWRK,ARGSTR,XAC,LENGTH) INCLUDE 'VKLUGPRM.FTN'V& LOGICAL*1 LIN(1),LWRK(1),ARGSTR(52,4) LOGICAL*1 LCMD(1),LSU(10) INTEGER*4 III REAL*8 XAC=CC C OPERATION:6C EDIT LIN TO LWRK, WITH LENGTH VARIABLE HOLDING INPUT6C LENGTH IN CHARACTERS. LCMD HOLDS COMMAND LINE, WHICH4C ULTIMATELY GETS EDITED STRING COPIED BACK INTO IT.CC EDITS::C CHARACTER AT IDELIM IS DELIMITER. REPLACE STRING IN 1ST*C INTERVAL BETWEEN DELIMITERS WITH SECOND. C HOWEVER:I=C &1 TO &4 GET CONTENTS (UP TO NULL) OF ARGSTR(X,1) TO (X,4)C18C &5 RETURNS XAC VALUE CONVERTED TO DECIMAL INTEGER AND C PRINTED.,<C &6 RETURNS XAC VALUE CONVERTED TO ASCII CODE (1 BYTE) AND C INSERTED.>C XAC ENTERS WITH CONTENTS OF ACCUMULATOR Z (TO AVOID TOO MUCH<C DIFFICULTY IN USING IT OWING TO THE UBIQUITY OF USE OF %).<C WE ENTER JUST POINTING AT THE COMMAND LINE AFTER THE ENTER7C AND ITS SPACE. ASSUME 1ST CHARACTER IS OUR DELIMITER.1 DO 335 IV=1,80X335 LWRK(IV)=0 IDELIM=LCMD(1)G ID2=INDEX(LCMD(2),IDELIM) IF(ID2.GE.LENGTH)GOTO 100(C NOW HAVE 1ST STRING, OF NONZERO LENGTH7C FIND SECOND STRING NOW. EITHER MAY BE OF 0 LENGTH BUTB&C BOTH MUST BE DEFINED BY A DELIMITER. ID3=INDEX(LCMD(2+ID2),IDELIM) IF(ID3.GE.LENGTH)GOTO 1008C WELL, WE GOT IT SOMEHOW. NOW TRY AND EDIT THE JUNK IN.&C (NOTE WE WANT TO FILL ALL OF LENGTH) INLIN=1 INWRK=1 IVV=ID3+ID2+2 DO 336 IV=IVV,LENGTHI336 LCMD(IV)=0 LSA=ID2-1 LSB=ID3-1 LSSB=2+ID21 LZR=0 DO 1 N=1,LENGTH IF(LSA.GT.0)GOTO 350,=C ZERO LENGTH INITIAL STRING, SO ASSUME HE WANTS TO APPEND TOAC EXISTING STRING AT THE END.,-C (HANDY FOR ADDING TO FORMULAE OR THE LIKE.), IF(LIN(N).EQ.0)GOTO 351&C JUST COPY THE INPUT FIRST AND GO OFF GOTO 2) 351 CONTINUE C HERE WE HAVE THE TERMINAL NULL LZR=LZR+12C ALLOW US TO PRETEND FOR ONCE THAT WE GOT A MATCH IF(LZR.EQ.1)GOTO 222L GOTO 1J 350 CONTINUE IF(LIN(INLIN).EQ.0)GOTO 1( CALL SSCMP(LIN(INLIN),LCMD(2),LSA,ICOD) IF(ICOD.EQ.0)GOTO 2C HERE HAVE TO SUBSTITUTEJ0C PASS STRING TO SUBSTITUTE ON INPUT LINE FIRST. 222 CONTINUE INLIN=INLIN+LSA(C ALLOW ZERO LENGTH SUBSTITUTE CHARACTER IF(LSB.LE.0)GOTO 1UC DO 6 M=1,LSB M=1 106 CONTINUE IF(LCMD(LSSB+M-1).EQ.'&')GOTO 7 8 CONTINUE;C JUST COPY ONE CHARACTER OF THE SUBSTITUTE STRING IN HERE.  LWRK(INWRK)=LCMD(LSSB+M-1)! IF(INWRK.LT.LENGTH)INWRK=INWRK+1S GOTO 6, 7 CONTINUEC HANDLE & FORMS5 IF(LCMD(LSSB+M).LT.'1'.OR.LCMD(LSSB+M).GT.'6')GOTO 81;C REQUIRE ALL FORMS TO BE &1 THRU &6 TO BE DEALT WITH HERE.N M=M+1! IF(LCMD(LSSB+M-1).GT.'4')GOTO 10U(C HERE JUST HANDLE ARGSTR SUBSTITUTIONS. II=LCMD(LSSB+M-1) II=II-481C II IS NOW THE INDEX. DO 11 MM=1,52 LWRK(INWRK)=ARGSTR(MM,II)! IF(INWRK.LT.LENGTH)INWRK=INWRK+1. IF(ARGSTR(MM,II).EQ.0)GOTO 12 11 CONTINUEM 12 CONTINUEV M=M+1%C PASS THE NUMBER OF THE &NUMBER FORM GOTO 6V 10 CONTINUERC HANDLE ZAC FORMS M=M+1C PASS THE DIGIT! IF(LCMD(LSSB+M-2).EQ.'5')GOTO 14SC FILL IN ZAC AS AN INTEGERG II=32# IF(XAC.GE.1.AND.XAC.LT.256.)II=XACI!C ONLY HANDLE CONVERSION IF LEGALW LWRK(INWRK)=IIT! IF(INWRK.LT.LENGTH)INWRK=INWRK+1  GOTO 6E 14 CONTINUEV00bg`^YTADATADATADATADATADATA C HANDLE NUMERIC CONVERSION HERE LSU(1)=0N III=0 IF(ABS(XAC).LT.9999999.)III=XAC ENCODE(10,15,LSU,ERR=22)III 15 FORMAT(I9)22 DO 16 MK=1,10 IF(LSU(MK).EQ.0)GOTO 6) IF(LSU(MK).EQ.' ')GOTO 16 LWRK(INWRK)=LSU(MK)! IF(INWRK.LT.LENGTH)INWRK=INWRK+1S 16 CONTINUEN 6 CONTINUE M=M+1 IF(M.LE.LSB)GOTO 1068 GOTO 1S 2 CONTINUE3C HERE JUST ANOTHER CHARACTER TO MOVE, DO THE MOVE.2 LWRK(INWRK)=LIN(INLIN)2! IF(INLIN.LT.LENGTH)INLIN=INLIN+1T! IF(INWRK.LT.LENGTH)INWRK=INWRK+1I 1 CONTINUE ,%C COPY BACK OUT TO CMDLIN AFTER FIXUPO IF(INWRK.GE.LENGTH)GOTO 3 DO 4 N=INWRK,LENGTH 4 LWRK(N)=0 3 CONTINUE8C REPLACE COMMAND LINE WITH EDITED STRING FOR ENTRY NOW. DO 5 N=1,LENGTH5 LCMD(N)=LWRK(N)B 100 CONTINUE RETURN END8C STRING COMPARE 2 ARRAYS UNTIL EITHER ENDSTRING IS SEENC ON ONE OR MISMATCH IS SEEN.=' SUBROUTINE SSCMP(LINA,LINB,LENM,ICODE), DIMENSION LINA(1),LINB(1) LOGICAL*1 LINA,LINB ICODE=1 DO 1 N=1,LENM(c IF(LINA(N).EQ.0.OR.LINB(N).EQ.0)GOTO 2 IF(LINA(N).NE.LINB(N))ICODE=0 IF(ICODE.NE.1)GOTO 2E 1 CONTINUE 2 CONTINUE RETURN  END% SUBROUTINE SVBL(CMDLIN,LA,N,LE,FORM)A INCLUDE 'VKLUGPRM.FTN'I" INTEGER*2 VLEN(9),TYPE(RRWP,RCLP) LOGICAL*1 AVBLS(20,27)4 REAL*8 XVBLS(RRWP,RCLP) COMMON/V/TYPE,AVBLS,XVBLS,VLENN' LOGICAL*1 CMDLIN(132),FORM(128),NBF(8)E INTEGER*2 LA,N,LE NI=NE N=N+25C LOOK FOR V1,V2 VARIABLES; THEN GET NAME TO FILL IN.' LAA=N LEE=LER, CALL VARSCN(CMDLIN,LAA,LEE,LSTC,I1,I2,IVLD) IF(IVLD.LE.0)GOTO 990 LAA=LSTC+1OC ACCEPT ANY DELIMITER LEE=LEN, CALL VARSCN(CMDLIN,LAA,LEE,LSTC,J1,J2,IVLD) IF(IVLD.LE.0)GOTO 990C XX=XVBLS(I1,I2)L CALL XVBLGT(I1,I2,XX) C XX IS COL #QC XY=XVBLS(J1,J2)-1.0L CALL XVBLGT(J1,J2,XY)+ IF(XX.LE..99.OR.XX.GT.DFLOAT(RRW))GOTO 990 + IF(XY.LE..99.OR.XY.GT.DFLOAT(RCL))GOTO 990R IC=XX CALL IN2AS(IC,NBF). IR=XY ENCODE(3,300,NBF(5))IR 300 FORMAT(I3.3) NL=NI:C FILL IN DECODED VARIABLE NAME, ZOTTING OUT EXTRA SPACES. DO 400 NN=1,7 FORM(NL)=NBF(NN)D IF(FORM(NL).GT.64)NL=NL+1 400 CONTINUE?C NOW ADJUST CMDLIN AND SET RETURN UP FOR ORIGINAL LENGTH FIXUP.C NOTE NI IS WHERE N WAS ON START (INDEX OF _)4C AND LSTC IS NEXT CHAR AFTER 2ND VARIABLE ON CMDLIN>C AND NL IS NEXT CHAR IN FORM. ASSUME THAT FORM IS NOW SHORTERC AND MOVE CMDLIN DOWN.N N=NL LE=LE-LSTC+NL DO 401 M=N,LE CMDLIN(M)=CMDLIN(M+LSTC-NL) 401 CONTINUEC HOPE ALL'S WELL NOW... RETURNN 990 CONTINUE FORM(N)=CMDLIN(N) RETURN END% SUBROUTINE SSTR(CMDLIN,LA,N,LE,FORM)D' LOGICAL*1 CMDLIN(132),FORM(128),NBF(8)K INTEGER*2 LA,N,LE INCLUDE 'VKLUGPRM.FTN'8" INTEGER*2 VLEN(9),TYPE(RRWP,RCLP) LOGICAL*1 AVBLS(20,27)A" REAL*8 XVBLS(RRWP,RCLP),XX,VP,TMP COMMON/V/TYPE,AVBLS,XVBLS,VLENT NI=NR N=N+25C LOOK FOR V1,V2 VARIABLES; THEN GET NAME TO FILL IN.L LAA=N LEE=LE , CALL VARSCN(CMDLIN,LAA,LEE,LSTC,I1,I2,IVLD) IF(IVLD.LE.0)GOTO 990C XX=XVBLS(I1,I2)  CALL XVBLGT(I1,I2,XX) VP=128.D0**7I DO 1 NN=1,8 TMP=AINT(XX/VP) NBF(NN)=TMP VP=VP/128.D0C XX=XX-(128.D0*TMP) 1 CONTINUE8C NOW NBF HAS 8 BYTES OF DATA CORRESPONDING TO DE-HASHEDC STRING. COPY TO FORM.L NL=NI DO 2 NN=1,8 FORM(NL)=NBF(NN)1 IF(NN.GE.1)NL=NL+11 2 CONTINUE?C NOW ADJUST CMDLIN AND SET RETURN UP FOR ORIGINAL LENGTH FIXUPR.C NOTE NI IS WHERE N WAS ON START (INDEX OF _)0C AND LSTC IS NEXT CHAR AFTER VARIABLE ON CMDLIN>C AND NL IS NEXT CHAR IN FORM. ASSUME THAT FORM IS NOW SHORTERC AND MOVE CMDLIN DOWN.L N=NLI LE=LE-LSTC+NL DO 401 M=N,LE CMDLIN(M)=CMDLIN(M+LSTC-NL) 401 CONTINUEC HOPE ALL'S WELL NOW... RETURNW990 FORM(N)=CMDLIN(N)8 RETURNL END# SUBROUTINE PGET(CMDLIN,ICODE,IRTN)L INCLUDE 'VKLUGPRM.FTN')G PARAMETER CUP = 1, CUU = 2, CUD = 3, CUF = 4, CUB = 5, DECDWL = 63G $, DECDHL = 7, DECRC = 8, DECSC = 9, DECSWL = 10, ED = 11, EL = 12DA $, SGR = 13, NEL = 14, SCS = 15, SM = 16, RM = 17, ANSI = 18'=C NOTE: THROUGHOUT, ROWS ARE ACTUALLY DOWN, COLUMNS ACROSS ONEAC SCREEN. ROW 0 IN DISPLAY IS THE 27 ACCUMULATORS A-Z AND %, WITH0>C % BEING THE LAST-COMPUTED VALUE FROM THE CALC PR00b b^[Z[[[\[}OGRAM, WHICHAC KNOWS HOW TO ACCESS THE DATA BUT IS JUST PASSED COMMAND STRINGSI C FROM THE DISK BASED FILE HERE. LOGICAL*1 FORM,FVLD,CMDLIN(132) INTEGER*4 VNLT-( LOGICAL*1 LET1,LET2,FORM2(128),NMSH(80) COMMON/NMSH/NMSH9 INTEGER*2 ICREF,IRREF COMMON/MIRROR/ICREF,IRREF REAL*8 XVBLS(RRWP,RCLP) INTEGER KPYBAKT INTEGER*2 IOLVL INTEGER*4 JVBLS(2,RRWP,RCLP)F COMMON/IOLVL/IOLVL8DC IOLVL IS LUN FOR XQTCMD TO USE (NORMALLY 3 FOR INDIRECT FILES OR 5?C FOR TERMINAL. WE USE 5,6 FOR TERMINAL INPUT, OUTPUT NORMALLY. $ DIMENSION FORM(128),FVLD(RRWP,RCLP) LOGICAL*1 DFE,FVWRK,FVWRK2M DIMENSION DFE(12)AC FVLD FLAG 0 = NO FORMULA, -1= DISPLAY FORMULA ITSELF, NOT VALUEI=C 1=VALID ACTIVE FORMULA THERE TO EVALUATE. INITIALLY ALL 0'SDC SO INITIALLY IGNORE.?C FVLD=2 = CONST NUMERIC ONLY, COMPUTED. =3, CONST, NEEDS CALC.9CDC ROUTINE IN2AS COMPUTES ASCII CHARACTER NAMES OF SUBSCRIPTS IN1,IN2=C SO DISPLAY CAN HAVE THEM. IT MUST BE THE INVERSE OF VARSCN.G( INTEGER*2 PROW,PCOL,DROW,DCOL,DRWV,DCLV* COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRWV,DCLV( DIMENSION NRDSP(DRW,DCL),NCDSP(DRW,DCL) COMMON/D2R/NRDSP,NCDSPE" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9)) LOGICAL*1 AVBLS(20,27),VBLS(8,RRWP,RCLP)C REAL*8 XAC,ZACM/ EQUIVALENCE(XAC,AVBLS(1,27)),(ZAC,AVBLS(1,26))t REAL*8 XXAC,XYAC1 EQUIVALENCE(XXAC,AVBLS(1,24)),(XYAC,AVBLS(1,25))4 LOGICAL*1 ARGSTR(52,4)N COMMON/ARGSTR/ARGSTR9&C EQUIVALENCE(ARGSTR(1,1),VBLS(1,1,1))<C USE VBLS ENTRIES THAT WOULD CORRESPOND TO THE UNUSED SPACE>C IN VBLS ARRAY FOR ACCUMULATORS A-Z TO HOLD UP TO 4 ARGUMENTS<C FROM A COMMAND < WHICH READS IN SPACE-DELIMITED ARGUMENTS.4C THIS WILL ALLOW INTERACTIVE ENTRY OF DATA AND AUTO1C SUBSTITUTION OF ARGUMENTS VIA THE EDit COMMAND..$ EQUIVALENCE(XVBLS(1,1),VBLS(1,1,1))% EQUIVALENCE(JVBLS(1,1,1),XVBLS(1,1))R COMMON/V/TYPE,AVBLS,VBLS,VLEN COMMON/KLVL/KLVL, LOGICAL*1 DEFVB(12) COMMON/DEFVBX/DEFVB" INTEGER*2 FORMFG,RCFGX,PZAP,RCONE$ COMMON/FFGG/FORMFG,RCFGX,PZAP,RCONE?C PZAP CONTROLS WHETHER TO REDRAW SCREEN. IF ZERO, NORMAL. IF 16>C (NONZERO ANYHOW), INHIBITS RE DISPLAY. V COMMAND RESETS TO 0 C AND VM INHIBITS. (SETS TO 1).CNCC DISPLAY ARRAY WILL KEEP A COPY OF VARIABLES DISPLAYED AND FORMATS9AC USED LOCALLY WHICH DISPLAY ROUTINE CAN USE TO SEE WHAT ACTUALLYTBC NEEDS TO BE REFRESHED ON SCREEN. DRWV AND DCLV ARE COLS, ROWS OF#C DISPLAY ACTUALLY USED FOR SCREEN.S INTEGER*2 CWIDS(DRW)7HC CWIDS IS WIDTHS IN CHARACTERS OF COLUMNS ON DISPLAY. NOTE THAT BECAUSEHC OF PECULIAR INVERSION WHICH I AM TOO LAZY TO CORRECT IT IS DIMENSIONEDC AS DRW NOT DCL.V REAL*8 DVS(DRW,DCL) LOGICAL*1 LETR7 INTEGER*4 INUMEMm INTEGER*4 IIRO,IICO INTEGER*4 LDVS(2,DRW,DCL)" EQUIVALENCE(LDVS(1,1,1),DVS(1,1)) COMMON /FVLDC/FVLD C LOGICAL*1 DFMTS(10,DRW,DCL)IC 10 CHARACTERS PER ENTRY. COMMON/DSPCMN/DVS,CWIDSCTC PUT NUMBERS OUT TO FILET%C USES RELATIVE FORMS TO CURRENT POS.l;C PD = PUT OURT DISPLAY SHEET. PP = PUT OUT PHYSICAL SHEET.)&C ONLY WRITES PHYSICALLY PRESENT DATA."C P/D RRR,CCC,FORMULA,VALID,FORMAT6C N IN 3RD CHR (PPN/PDN) SAVES NUMBERS, ELSE FORMULAS. ICODE=1 CLOSE(UNIT=4,ERR=7954) 7954 CALL UVT100(CUP,LCMDR,1)E CALL UVT100(EL,2)C ASK FOR FILE NAME. WRITE(6,7952)* READ(IOLVL,7953,END=510,ERR=510)ILN,FORM27952 FORMAT('Enter filename>')7953 FORMAT(Q,128A1)<C FORMAT Q RETURNS NUMBER CHARACTERS READ. CAN USE KLUDGE TO<C FIND THIS BY LOOKING FOR LAST NONSPACE BUT THIS IS EASIER. ILN=MIN0(ILN,127) FORM2(ILN+1)=0N/ OPEN(UNIT=4,FILE=FORM2,CARRIAGECONTROL='LIST',3% 1 ACCESS='SEQUENTIAL',RECL=512,T 1 STATUS='NEW',ERR=9990)C CALL ASSIGN(4,FORM2) IIVV=MIN0(DCL,15)7C WRITE OUT THE NAME ARRAY FOLLOWED BY SOME GLOBAL INFORC SO THE STUFF GETS PRESERVED.8C FILL SPACES INTO NAME SO THE SAVED RECORD READS IN OK. DO 6952 III=1,80U IVV=NMSH(III)6952 NMSH(III)=MAX0(32,IVV)4 WRITE(4,6951,ERR=9990)NMSH,ICREF,IRREF,(CWIDS(III), 1 III=1,IIVV),DRWV,DCLV(6951 FORMAT(80A1,64I3)3C *** NOTE THAT IF DCL GETS BIGGER THAN 96 WE LOSE.S+C ADD ABILITY TO SPECIFY MAX DISPL. TO SAVEC CALL UV00bg`^YTADATADATADATADATADATAT100(CUP,LCMDR,1)T CALL UVT100(EL,2) WRITE(6,7980):7977 FORMAT('Enter max. displ down to save or 0 for all>')% READ(IOLVL,7978,END=510,ERR=510)LDXMR6950 FORMAT(80A1)R7978 FORMAT(I7)O CALL UVT100(CUP,LCMDR,1)D CALL UVT100(EL,2) WRITE(6,7977);7980 FORMAT('Enter max. displ right to save or 0 for all>')O% READ(IOLVL,7978,END=510,ERR=510)MDXM IF(MDXM.LE.0)MDXM=12000 IF(LDXM.LE.0)LDXM=12000@C 12000 IS "AN ARBITRARILY LARGE NUMBER TO ASSURE THAT ALL VALIDKC RANGES ARE SAVED". IT MUST BE SMALL ENOUGH TO ASSURE WE DON'T OVERFLOW ANIC INTEGER THOUGH.I IF(CMDLIN(2).NE.'P')GOTO 7950 DO 7951 ICO=PCOL,RCLK DO 7951 IRO=PROW,RRW0C GO DOWN AND RIGHT ONLY. ALLOW MIXING THIS WAY.C IRX=(ICO-1)*RRW+IROS CALL REFLEC(ICO,IRO,IRX)I IDRO=IRO-PROW+1 IDCL=ICO-PCOL+1* IF(IDRO.GT.LDXM.OR.IDCL.GT.MDXM)GOTO 7951C FORM DISPLACEMENT LOCATORS CALL FVLDGT(IRO,ICO,FVLD(1,1))T IF(FVLD(1,1).EQ.0)GOTO 7951 CALL WRKFIL(IRX,FORM2,0)cC READ(7'IRX)FORM2 IF(FORM2(119).EQ.2)FORM2(119)=3" IF(FORM2(119).EQ.-2)FORM2(119)=-3 CALL TYPGET(IRO,ICO,TYPE(1,1))I IF(CMDLIN(3).NE.'N')GOTO 5402:C FOR FORMULAS, EMIT THEM ANYHOW... NUMBERS USUALLY ARE 0. IF(FVLD(1,1).LT.0)GOTO 5402?C EMIT NUMBERS, NOT FORMATS **** CHECK 4 OR 2, ASSUME 4=INTEGER= LETR=80C 80 = UPPERCASE 'P' IN ASCII  ASSIGN 5405 TO INUMEM 6400 CONTINUE=&C INTERNAL PROC TO EMIT NUMERIC VALUES>C TO CALL, SET LETR TO EITHER 80 OR 112 (UPPER OR LOWERCASE P) CALL XVBLGT(IRO,ICO,XVBLS(1,1))9C FLAG VALUE WITH LOWER CASE P HERE INSTEAD OF UPPER CASE)C AND GENERALLY EMIT IT FIRST,4 IF(ABS(TYPE(1,1)).EQ.4)WRITE(4,5403)LETR,IDRO,IDCL, 1 JVBLS(1,1,1)!5403 FORMAT(A1,I5,',',I5,',',I15)T4 IF(ABS(TYPE(1,1)).NE.4)WRITE(4,5404)LETR,IDRO,IDCL, 1 XVBLS(1,1)$5404 FORMAT(A1,I5,',',I5,',',D30.19) GOTO INUMEM,(5405,6406) C GOTO 54050 5402 CONTINUEI"C FIND END OF TEXT IN FORMULA AREA DO 4330 IV=2,110N IVVV=113-IV IF(FORM2(IVVV).GT.32)GOTO 43310 4330 CONTINUEE 4331 CONTINUEO C SAVE ON PPX IN EFFICIENT FORM.!C DON'T WRITE OUT TRAILING NULLS. .C ENSURE FORMAT HAS NO NULLS IN IT DURING SAVE DO 358 IV=120,128$358 IF(FORM2(IV).LT.' ')FORM2(IV)=32 IF(CMDLIN(3).EQ.'F')GOTO 6404C PPF WILL SAVE FORMULA ONLY'C PPA WILL SAVE ALL (I.E., NUMERIC TOO)N?C SAVE THE NUMBERS FIRST SO WE CAN HAVE GRAPHICS ETC. FIND THEMOC FIRST WITHOUT SPECIAL WORK.N LETR=112'>C LOWERCASE P FLAGS DOUBLE SAVE STUFF. NORMAL PPN IS UPPERCASEC P. ASSIGN 6406 TO INUMEM.C NOW GO WRITE FIRST LINE OF STUFF NUMERICALLY GOTO 6400 6406 CONTINUEI@C NOW HAVE NUMERIC LINE WRITTEN. WRITE 2ND LINE ALSO SO WE DON'TC CONFUSE GRAPHICS PGMS.9 WRITE(4,7956)FORM2(119),(FORM2(IV),IV=120,128),TYPE(1,1)IBC NOW HAVE THE SPECIAL RECORD DONE, GO AHEAD AND WRITE THE FORMULAC TOO... 6404 CONTINUE (C WRITE OUT THE FORMULA IF CALLED FOR...- WRITE(4,7955)IDRO,IDCL,(FORM2(IV),IV=1,IVVV)A 5405 CONTINUE,:C DUMP TO SERIAL FILE IN OUR OWN FORMAT, BUT ALL IN ASCII.$7955 FORMAT('P',I5,',',I5,',',128A1)C NOTE LONG RECORDS.9 WRITE(4,7956)FORM2(119),(FORM2(IV),IV=120,128),TYPE(1,1))7956 FORMAT(I3,',',9A1,',',I5) 7951 CONTINUEA 2951 CONTINUETC.3C ON PDP11 VERSIONS, MAPPING SAVE/RESTORE ALL FAILSN4C SINCE IT TAKES TOO MUCH ROOM. JUST COMMENT IT OUT.1C BUILD WITHOUT /DE NOW; NO NEED FOR THE D LINES.I/C SEARCH FUNCTION NOW UNCONDITIONALLY INCLUDED.(C NOW SAVE NRDSP AND NCDSP MAPPINGS TOO.D IF(CMDLIN(4).NE.'M')GOTO 6541G:C SKIP THE SAVE OF MAPPING UNLESS 4TH CHAR OF COMMAND IS MC (FOR "MAPPING")F D MXIRO=DRWV D MXICO=DCLVD IF(CMDLIN(5).NE.'A')GOTO 6549M D MXIRO=DRW( D MXICO=DCL.'C "MA" SUFFIX MEANS SAVE ALL OF MAPPINGL,C "M" SUFFIX ALONE SAVES JUST DISPLAYED PAGED6549 CONTINUED DO 6540 IRO=DROW,MXIROD DO 6540 ICO=DCOL,MXICOD IIRO=IRO+64000D IICO=ICO+64000C NOTE SPECIAL FLAG.#D6955 FORMAT('M',I5,',',I5,',',2I7)A?D WRITE(4,6955,ERR=6541)IIRO,IICO,NRDSP(IRO,ICO),NCDSP(IRO,ICO),CD 1 NCDSP(IRO,ICO)8C WRITE A SECOND RECORD BUT DON'T CARE WHAT IT HAS IN ITC SO JUST REPEAT THE LAST...:D WRITE(4,7956)FORM2(119),(FORM2(IV),IV=120,128)00b b^[Z[[[\[},TYPE(1,1)D6540 CONTINUED6541 CONTINUE CLOSE(UNIT=4) GOTO 9990"7950 IF(CMDLIN(2).NE.'D')GOTO 9990 DO 7957 ICO=DCOL,DCL( DO 7957 IRO=DROW,DRW9 IDRO=IRO-DROW+1 IDCL=ICO-DCOL+1* IF(IDRO.GT.LDXM.OR.IDCL.GT.MDXM)GOTO 7957 NR=NRDSP(IRO,ICO) NC=NCDSP(IRO,ICO)C IRX=(NC-1)*RRW+NR0 CALL REFLEC(NC,NR,IRX)0 CALL FVLDGT(NR,NC,FVLD(1,1))( IF(FVLD(1,1).EQ.0)GOTO 7957 CALL WRKFIL(IRX,FORM2,0) C READ(7'IRX)FORM2 IF(FORM2(119).EQ.2)FORM2(119)=3" IF(FORM2(119).EQ.-2)FORM2(119)=-3 IF(CMDLIN(3).NE.'N')GOTO 5412?C EMIT NUMBERS, NOT FORMATS **** CHECK 4 OR 2, ASSUME 4=INTEGER IF(FVLD(1,1).LT.0)GOTO 5412)C ALWAYS EMIT LABELS EVEN IN NUMERIC SAVE9 CALL TYPGET(NR,NC,TYPE(1,1))  CALL XVBLGT(NR,NC,XVBLS(1,1)); IF(ABS(TYPE(1,1)).EQ.4)WRITE(4,5413)IDRO,IDCL,JVBLS(1,1,1)2"5413 FORMAT('P',I5,',',I5,',',I15)9 IF(ABS(TYPE(1,1)).NE.4)WRITE(4,5414)IDRO,IDCL,XVBLS(1,1)T%5414 FORMAT('P',I5,',',I5,',',D30.19) GOTO 5415 5412 CONTINUER, WRITE(4,7958)IDRO,IDCL,(FORM2(IV),IV=1,110) 5415 CONTINUEN$7958 FORMAT('D',I5,',',I5,',',128A1) DO 359 IV=120,128$359 IF(FORM2(IV).LT.' ')FORM2(IV)=329 WRITE(4,7956)FORM2(119),(FORM2(IV),IV=120,128),TYPE(1,1)T 7957 CONTINUEH+C ALLOW SAVE OF MAPPING TOO AS APPROPRIATE.L GOTO 2951C CLOSE(UNIT=4)O 9990 RETURNO 510 CONTINUE IRTN=1C RETURNA END SUBROUTINE PGGET(CMDLIN)R INCLUDE 'VKLUGPRM.FTN'TG PARAMETER CUP = 1, CUU = 2, CUD = 3, CUF = 4, CUB = 5, DECDWL = 6TG $, DECDHL = 7, DECRC = 8, DECSC = 9, DECSWL = 10, ED = 11, EL = 12OA $, SGR = 13, NEL = 14, SCS = 15, SM = 16, RM = 17, ANSI = 18E=C NOTE: THROUGHOUT, ROWS ARE ACTUALLY DOWN, COLUMNS ACROSS ONOAC SCREEN. ROW 0 IN DISPLAY IS THE 27 ACCUMULATORS A-Z AND %, WITHT>C % BEING THE LAST-COMPUTED VALUE FROM THE CALC PROGRAM, WHICHAC KNOWS HOW TO ACCESS THE DATA BUT IS JUST PASSED COMMAND STRINGSR C FROM THE DISK BASED FILE HERE. LOGICAL*1 FORM,FVLD,CMDLIN(132) INTEGER*4 VNLTD( LOGICAL*1 LET1,LET2,FORM2(128),NMSH(80) COMMON/NMSH/NMSHT REAL*8 XVBLS(RRWP,RCLP) INTEGER*2 ICREF,IRREF COMMON/MIRROR/ICREF,IRREF INTEGER KPYBAKS REAL*8 R8WK INTEGER*2 IOLVL INTEGER*4 JVBLS(2,RRWP,RCLP)I COMMON/IOLVL/IOLVL1DC IOLVL IS LUN FOR XQTCMD TO USE (NORMALLY 3 FOR INDIRECT FILES OR 5?C FOR TERMINAL. WE USE 5,6 FOR TERMINAL INPUT, OUTPUT NORMALLY.2$ DIMENSION FORM(128),FVLD(RRWP,RCLP) LOGICAL*1 DFE,FVWRK,FVWRK2L DIMENSION DFE(12)AC FVLD FLAG 0 = NO FORMULA, -1= DISPLAY FORMULA ITSELF, NOT VALUEI=C 1=VALID ACTIVE FORMULA THERE TO EVALUATE. INITIALLY ALL 0'SEC SO INITIALLY IGNORE.?C FVLD=2 = CONST NUMERIC ONLY, COMPUTED. =3, CONST, NEEDS CALC.PCHDC ROUTINE IN2AS COMPUTES ASCII CHARACTER NAMES OF SUBSCRIPTS IN1,IN2=C SO DISPLAY CAN HAVE THEM. IT MUST BE THE INVERSE OF VARSCN.E( INTEGER*2 PROW,PCOL,DROW,DCOL,DRWV,DCLV* COMMON/DCTL/PROW,PCOL,DROW,DCOL,DRWV,DCLV( DIMENSION NRDSP(DRW,DCL),NCDSP(DRW,DCL) COMMON/D2R/NRDSP,NCDSP" INTEGER*2 TYPE(RRWP,RCLP),VLEN(9) INTEGER*4 IRRW,ICCLAC ALLOW BIG NUMBERS HERE SO WE CAN SUBTRACT 64000 AND STILL AVOIDNC WRAP AROUND...@C THIS AVOIDS POSSIBLE NEG NUMBER PROBLEMS IN OTHER PROGRAMS FORC GRAPHS, ETC.) LOGICAL*1 AVBLS(20,27),VBLS(8,RRWP,RCLP)N REAL*8 XAC,ZACE/ EQUIVALENCE(XAC,AVBLS(1,27)),(ZAC,AVBLS(1,26))S REAL*8 XXAC,XYAC.1 EQUIVALENCE(XXAC,AVBLS(1,24)),(XYAC,AVBLS(1,25))A LOGICAL*1 ARGSTR(52,4)S COMMON/ARGSTR/ARGSTRB&C EQUIVALENCE(ARGSTR(1,1),VBLS(1,1,1))<C USE VBLS ENTRIES THAT WOULD CORRESPOND TO THE UNUSED SPACE>C IN VBLS ARRAY FOR ACCUMULATORS A-Z TO HOLD UP TO 4 ARGUMENTS<C FROM A COMMAND < WHICH READS IN SPACE-DELIMITED ARGUMENTS.4C THIS WILL ALLOW INTERACTIVE ENTRY OF DATA AND AUTO1C SUBSTITUTION OF ARGUMENTS VIA THE EDit COMMAND.2$ EQUIVALENCE(XVBLS(1,1),VBLS(1,1,1))% EQUIVALENCE(JVBLS(1,1,1),XVBLS(1,1)) COMMON/V/TYPE,AVBLS,VBLS,VLEN COMMON/KLVL/KLVL LOGICAL*1 DEFVB(12) COMMON/DEFVBX/DEFVB" INTEGER*2 FORMFG,RCFGX,PZAP,RCONE$ COMMON/FFGG/FORMFG,RCFGX,PZAP,RCONE?C PZAP CONTROLS WHETHER TO REDRAW SCREEN. IF ZERO, NORMAL. IF 1>C (NONZERO ANYHOW), INHIBITS RE DISPLAY. V COMMAND RESET00bg`^YTADATADATADATADATADATAS TO 0 C AND VM INHIBITS. (SETS TO 1).C=CC DISPLAY ARRAY WILL KEEP A COPY OF VARIABLES DISPLAYED AND FORMATS2AC USED LOCALLY WHICH DISPLAY ROUTINE CAN USE TO SEE WHAT ACTUALLYIBC NEEDS TO BE REFRESHED ON SCREEN. DRWV AND DCLV ARE COLS, ROWS OF#C DISPLAY ACTUALLY USED FOR SCREEN.N INTEGER*2 CWIDS(DRW)BHC CWIDS IS WIDTHS IN CHARACTERS OF COLUMNS ON DISPLAY. NOTE THAT BECAUSEHC OF PECULIAR INVERSION WHICH I AM TOO LAZY TO CORRECT IT IS DIMENSIONEDC AS DRW NOT DCL.T REAL*8 DVS(DRW,DCL) INTEGER*4 LDVS(2,DRW,DCL)" EQUIVALENCE(LDVS(1,1,1),DVS(1,1)) COMMON /FVLDC/FVLD= INTEGER*2 NCEL,NXINI= COMMON/NCEL/NCEL,NXINI C LOGICAL*1 DFMTS(10,DRW,DCL) C 10 CHARACTERS PER ENTRY. COMMON/DSPCMN/DVS,CWIDSC 7952 FORMAT('Enter filename>')7953 FORMAT(Q,128A1)6950 FORMAT(80A1)G7978 FORMAT(I7)E7956 FORMAT(I3,',',9A1,',',I5) CLOSE(UNIT=4,ERR=7960)I7960 CALL UVT100(CUP,LCMDR,1)( CALL UVT100(EL,2)C GET FILE NAMED WRITE(6,7952)* READ(IOLVL,7953,END=510,ERR=510)ILN,FORM2 ILN=MIN0(127,ILN) FORM2(ILN+1)=0.HC SPECIAL "FAST READ" MODE TO SET UP DATA AREAS ON GETTING OLD SHEETS... NXINI=1 LDXM=INDEX(FORM2,'/').C IF FILE IS FILENAME/M WE WON'T DO IT FAST...& IF(LDXM.LE.0.OR.LDXM.GE.ILN)GOTO 8400 FORM2(LDXM)=00C TERMINATE AFTER THE / AND SET NXINI TO 0 AGAIN NXINI=0 8400 CONTINUET/ OPEN(UNIT=4,FILE=FORM2,CARRIAGECONTROL='LIST',V% 1 ACCESS='SEQUENTIAL',RECL=512,L 1 STATUS='OLD',ERR=9990)C CALL ASSIGN(4,FORM2) IIVV=MIN0(DCL,15)0 READ(4,6951,END=7964,ERR=7964)NMSH,ICREF,IRREF,) 1 (CWIDS(III),III=1,IIVV),DRWV,DCLV, C NOW FILL IN DEFAULTS IF NEEDED5C THIS IS SO THAT OLDER SAVED SHEETS WILL STILL WORK. 4C NOTE ZERO REFLECTION PARAMETERS ARE NOT LEFT ALONEC BUT TREATED AS ERRORS.+ IF(ICREF.LE.0.OR.ICREF.GT.RRW)ICREF=RRW/10A+ IF(IRREF.LE.0.OR.IRREF.GT.RCL)IRREF=RCL/10. DO 6954 III=1,IIVV05 IF(CWIDS(III).LE.0.OR.CWIDS(III).GT.99)CWIDS(III)=10E 6954 CONTINUE,( IF(DRWV.LE.0.OR.DRWV.GT.DRW)DRWV=MXCOLS( IF(DCLV.LE.0.OR.DCLV.GT.DCL)DCLV=MXROWS6951 FORMAT(80A1,80I3)+C ADD ABILITY TO SPECIFY MAX DISPL. TO SAVEN CALL UVT100(CUP,LCMDR,1)  CALL UVT100(EL,2) WRITE(6,7982)=6977 FORMAT('Enter max. displ down to restore or 0 for all>')L% READ(IOLVL,7978,END=510,ERR=510)LDXM  CALL UVT100(CUP,LCMDR,1)C CALL UVT100(EL,2) WRITE(6,6977)>7982 FORMAT('Enter max. displ right to restore or 0 for all>')% READ(IOLVL,7978,END=510,ERR=510)MDXMO CALL UVT100(CUP,LCMDR,1) CALL UVT100(EL,2) WRITE(6,7984)27983 FORMAT('Enter min. displ. down (1 or more)>')& READ(IOLVL,7978,END=510,ERR=510)LLDXM CALL UVT100(CUP,LCMDR,1)V CALL UVT100(EL,2) WRITE(6,7983)37984 FORMAT('Enter min. displ. right (1 or more)>')M& READ(IOLVL,7978,END=510,ERR=510)MMDXM IF(MDXM.LE.0)MDXM=12000 LLDXM=MAX0(1,LLDXM) MMDXM=MAX0(1,MMDXM) IF(LDXM.LE.0)LDXM=12000*C 12000 IS, AS ABOVE, JUST A "BIG" NUMBER.0 IF(CMDLIN(4).EQ.'+'.OR.CMDLIN(4).EQ.'-')RCFGX=19C USE RM MODE IF GXX+ OR GXX- ADD/SUBT SAVED SHEET VALUES) 7961 CONTINUE8:C ENSURE THE FORM ARRAYS ARE CLEAR BEFORE FILLING THEM IN. DO 8961 N=1,128 FORM(N)=0 FORM2(N)=0I 8961 CONTINUEM9 READ(4,7962,END=7964,ERR=7964)LET1,IRRW,ICCL,(FORM2(IV),L 1 IV=1,110)7962 FORMAT(A1,I5,X,I5,X,128A1)N DO 4497 IV=1,110N IVV=111-IV  IF(FORM2(IVV).GT.32)GOTO 4496 FORM2(IVV)=0 4497 CONTINUET 4496 CONTINUEIDC ABOVE LOOP ENSURES THAT EXTRA PARTS OF BUFFER NOT IN SAVE FILE AREC ZEROED ON READIN.CA READ(4,7956,END=7964,ERR=7964)FORM2(119),(FORM2(IV),IV=120,128),D 1 KKTYP IF(LET1.EQ.77) GOTO 6500W:C 77 IS ASCII 'M'. INDICATES NOW RESTORING NRDSP AND NCDSP C MAPPINGS...G<C NOTE WE USE THE REGULAR READ LOOP TO GRAB THIS STUFF, BUT8C FLAG THE RECORDS WITH SPECIAL CHARACTERS AND ALSO ADD5C 64000 TO THE ROW AND COLUMN NUMBERS BEING SAVED TO12C KEEP FOLLOW ON PROGRAMS FROM GETTING MESSED UP. IF(FORM2(119).EQ.2)FORM2(119)=3" IF(FORM2(119).EQ.-2)FORM2(119)=-3$ IF(IRRW.LE.0.OR.ICCL.LE.0)GOTO 9990* IF(IRRW.GT.LDXM.OR.ICCL.GT.MDXM)GOTO 7961- IF(IRRW.LT.LLDXM.OR.ICCL.LT.MMDXM) GOTO 7961AAC PRODUCE NEW ADDR00bb^[Z[[[\[}ESSES IN PHYSICAL SHEET USING SAVED FILE'S ONESTAC AND CURSOR LOCATION (SINCE WE SAVE/RESTORE RELATIVE TO CURSOR).8C THIS PROVIDES A SHEET PARTIAL SAVE / MERGE CAPABILITY. NR=IRRW+PROW-LLDXM1 NC=ICCL+PCOL-MMDXM/- IF(CMDLIN(2).NE.'D'.AND.LET1.NE.68)GOTO 7963RC 68 = D ASCII (UPPERCASE) IF(CMDLIN(2).EQ.'P')GOTO 7963C GET DISPLAY VERSION... LRR=IRRW+DROW-LLDXM LCC=ICCL+DCOL-MMDXM LRR=MAX0(1,LRR) LCC=MAX0(1,LCC)( IF(LRR.GT.DRWV.OR.LCC.GT.DCLV)GOTO 7961 NR=NRDSP(LRR,LCC) NC=NCDSP(LRR,LCC) 7963 CONTINUEYDC HANDLE LET1=112 (LOWERCASE P) ALSO SINCE THAT'S NUMERIC SAVE STUFFC IRX=(NC-1)*RRW+NR CALL REFLEC(NC,NR,IRX)A IF(NR.EQ.0.OR.NC.EQ.0)GOTO 7961 FORM2(118)=15 DO 7113 IVV=1,1287113 FORM(IVV)=FORM2(IVV)L INRW=PROW INCL=PCOL JOUTR=1 JOUTC=2C A1 = OUTPUT COORDS JRTR=1, JRTC=1E8 IF(CMDLIN(3).EQ.'R')CALL RELVBL(FORM,FORM2,JOUTR,JOUTC, 1 INRW,INCL,JRTR,JRTC)9C ALLOW RELOCATION ON THE WAY IN FOR SAVED FILE FORMULAS.G CALL FVLDST(NR,NC,FORM2(119))C FVLD(NR,NC)=FORM2(119) CALL TYPSET(NR,NC,KKTYP)VC TYPE(NR,NC)=KKTYPW( IF(LET1.NE.112)CALL WRKFIL(IRX,FORM2,1)C WRITE(7'IRX)FORM2( IF(LET1.NE.112)GOTO 7961L;C IF WE HAVE LOWERCASE 'P' THEN SET THE VALUE ALSO SINCE WEL"C WILL RESET THE REST NEXT RECORD., DECODE(35,6408,FORM2(1),ERR=7961)XVBLS(1,1)6408 FORMAT(D30.19)S CALL XVBLGT(NR,NC,R8WK)/ IF(CMDLIN(4).EQ.'+')XVBLS(1,1)=XVBLS(1,1)+R8WKRC HANDLE Gxx+ AND Gxx- FORMS/ IF(CMDLIN(4).EQ.'-')XVBLS(1,1)=R8WK-XVBLS(1,1)S8C UPDATES VALUES; SHOULD ALREADY BE IN RM MODE BY NOW... CALL XVBLST(NR,NC,XVBLS(1,1))1C THAT SAVES THE VALUE BACK; NOW GET NEXT RECORD.L GOTO 7961;C SINCE CAN'T SAVE MAPPING ON PDP11, MAKE THIS RESTORE CODEIC GO AWAY TOO IN THAT VERSION. 6500 CONTINUEB5C HERE RESTORE MAPPINGS; DONE WITH NORMAL VALUES ETC.M2C MAPPING FLAGGED WITH "M" INITIAL LETTER OF FIRST,C LINE AND COLUMN NUMBERS TOO LARGE BY 64000D IRRW=IRRW-64000ZD ICCL=ICCL-64000F6C ADDED 64000 TO THESE BEFORE SAVE; RESTORE THEM HERE.8C JUST RESTORE NRDSP AND NCDSP USING FORM2 ARRAY TO HOLD C NUMBERS.)D DECODE(14,6501,FORM2(1),ERR=7961)II,IIIT6501 FORMAT(2I7)D NRDSP(IRRW,ICCL)=IIOD NCDSP(IRRW,ICCL)=III GOTO 7961'C JUST USE REGULAR LOOP TO READ THIS...E 7964 CONTINUEM CLOSE(UNIT=4,ERR=9990) 9990 NXINI=0 RETURN 510 CONTINUE IRTN=1B NXINI=0 RETURNO END SUBROUTINE ZERO#C COPYRIGHT (C) 1983 GLENN EVERHARTO@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY.S INCLUDE 'VKLUGPRM.FTN'OC PARAMETER RRW = 32C PARAMETER RCL = 32C RRW=MAX REAL ROWSRC RCL=MAX REAL COLSC:C RRW MUST BE 1 LARGER TO HANDLE 1ST 27 VARIABLES IN AVBLS#C VBLS AND TYPE DIMENSIONED RRW,RCL,4C **************************************************4C * *4C * SUBROUTINE ZERO *4C * *4C **************************************************CNCCCK#C ZEROS OUT ALL VARIABLES EXCEPT %RC(CRC ZERO CALLS IABS1C9CCC ZERO IS CALLED BY CMNDCRCC C VARIABLE USENCI C I POINTS TO VARIABLE1C J INDEXES DOWN ELEMENTS OF A VARIABLE'CGC CC SUBROUTINE ZERO)CI# INTEGER*2 TYPE(RRWP,RCLP),VLEN(9)CCI LOGICAL*1 AVBLS(20,27) LOGICAL*1 VBLS(8,RRWP,RCLP)C COMMON /V/TYPE,AVBLS,VBLS,VLENCCC CMFC JUST ZERO THE ACCUMULATORS HERE ... LEAVE REGULAR SHEET STUFF ALONE. DO 11 I=1,RRWPR DO 11 II=1,RCLP TYPE(I,II)=IABS(TYPE(I,II)) DO 11 III=1,8 VBLS(III,I,II)=0I 11 CONTINUEN DO 1 I=1,27 DO 1 J=1,201 AVBLS(J,I)=0 RETURNT END00bbbYTADATADATADATADATADATA INTEGER FUNCTION ZNEG*2(INDEX)C#C COPYRIGHT (C) 1983 GLENN EVERHARTI@C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS1C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY.U INCLUDE 'VKLUGPRM.FTN'RC PARAMETER RRW = 32C PARAMETER RCL = 32C RRW=MAX REAL ROWSLC RCL=MAX REAL COLS :C RRW MUST BE 1 LARGER TO HANDLE 1ST 27 VARIABLES IN AVBLS#C VBLS AND TYPE DIMENSIONED RRW,RCL*4C **************************************************4C * *4C * INTEGER*2 FUNCTION ZNEG(INDEX) *4C * *4C **************************************************CR@C DETERMINES IF VARIABLE POINTED TO BY INDEX IS ZERO OR NEGATIVE7C OR UNDEFINED AS OPPOSED TO BEING DEFINED AND POSITIVESC>C RETURNS 1 IF TRUE (ZERO OR NEGATIVE OR UNDEFINED)*C 0 IF FALSE (POSITIVE)CICZC)CICICG,C ZNEG CALLS ERRMSG TO PRINT ERROR MESSAGES.CVC(C2C"C ZNEG IS CALLED BY CALC AND CMND.COC/CYCACSCLC VARIABLE USECZ1C INDEX POINTER TO VARIABLE BEING TESTEDT'C I,K HOLDS TEMPORARY VALUES,C ZNEG RETURN VALUEI&C INT HOLD INTEGER*4 VALUES#C REAL HOLD REAL*8 VALUES,CCVC( C INTEGER FUNCTION ZNEG*2(INDEX) REAL*8 REALCD INTEGER*4 INTCR( INTEGER*2 TYPE(RRWP,RCLP),VLEN(9),INDEXC( LOGICAL*1 AVBLS(20,27),FOUR(4),EIGHT(8) LOGICAL*1 VBLS(8,RRWP,RCLP)CI$ EQUIVALENCE (EIGHT,REAL),(FOUR,INT)C( COMMON/V/ TYPE,AVBLS,VBLS,VLENMCOCCDCNCNC DEFAULT SETTING OF TRUE1 ZNEG=1B CALL TYPGET(INDEX,1,K)MC K=TYPE(INDEX,1)O IF(K.GT.0)GO TO 50OCIC VARIABLE UNDEFINED CALL ERRMSG(16) GO TO 10000CO.50 GOTO(100,200,300,300,400,400,400,300,200),K STOP 50CACLC ASCII&100 IF(AVBLS(1,INDEX).LE.0)GO TO 10000 GO TO 9998PCLCC DECIMAL AND REAL200 DO 210 I=1,8210 EIGHT(I)=AVBLS(I,INDEX)A IF(REAL.LE.0.D0)GO TO 10000 GO TO 9998RC2CNC INTEGER, HEX, AND OCTAL300 DO 310 I=1,4310 FOUR(I)=AVBLS(I,INDEX) IF(INT.LE.0)GO TO 10000 GO TO 9998LCCLC MULTIPLE PRECISION'400 IF(AVBLS(20,INDEX).NE.0) GOTO 100000 GO TO 9998TC CECA 9998 ZNEG=0 10000 RETURN ENDSYS$SHARE:DTRSHR/SHARE, -7DTR$LIBRARY:TERMSERVE/LIBRARY/INCLUDE=(ADT,EDT,GUI,HLP)1DTRINI0110-Feb-1986 09:4710-Feb-1986 09:47VAX FORTRAN V4.3-160 P? DTRINI$CODE$PDATA$LOCAL1DTRFIN0110-Feb-1986 09:4710-Feb-1986 09:47VAX FORTRAN V4.3-160 P? DTRFIN$CODE$PDATA$LOCAL1DTRCMD0110-Feb-1986 09:4710-Feb-1986 09:47VAX FORTRAN V4.3-160PENADISOPINSOPINRROPINRUOPOUTSOPOUTRCLSOUTCLSINPENAOUTENAINPDISINPDISOUTEDTINPFMTOUTVALOUTCMPFRMLENFRMTRMFRM!P P>  &-   4 ;   00bb^[Z[[[\[}BIPW^el szP|[Ь PRPQQ2QQAb Ab=PPRPQ2QS C=PQ($SCMP 1<8SCMP 1PLSCMPSδОd`GMTX屫12P@@b˔˄FOR$OPENP1c1ˬ˨SCMP鱫T˼SCMP豫TδОd`GMTXб12P@QQ UUUQԞ@bFOR$OPENP1Tc1 SCMP鱫δО GMTX屫12P@@bP@FOR$OPENP11hdSCMP鱫δО GMTXб1 PPTTTP2P@@bˈxFOR$OPENP11˴˰SCMP FOR$CLOSE1SCMP FOR$CLOSEc1SCMP鱫1SCMP鱫1SCMP鱫10,SCMP鱫1D@SCMPޱ1δОXTGMTXڱ1֫ޱ֫ث౫ثxREFLECˈFVLDST˘WRKFIL˨WRKFIL==1˼˸SCMP鱫SCMPޱ1δОXTGMTXұ1֫ޱ֫1ث౫ث1xREFLECXVBLGTˈFVLDST˘WRKFILʰP2PTDnD= P() FOR$WRITE_IO}k~ FOR$IO_D_V FOR$IO_END FOR$WRITE_IF}k~ FOR$IO_D_V FOR$IO_ENDPnTQ2QUE=TQQ2QTDUU 2PUDEP=<Q˨WRKFIL==1SCMP汫1δОXTGMTX1REFLECREFLEC2P@b,ҫδО($@GMTXHXVBLGTqkqkCikSXXVBLGTqkqkCikUhWRKFILxWRKFILPPoQ2QTD =nPQSQQoP2PTDw =nQPU2STTˈˌ2UUUːx˔˘ LIB$INDEXPPmP |-T Uxr-T Uxp1˨ˤSCMP鱫δОXTGMTX1REFLEChWRKFILܰPPoT2TUE =nPmTk}k ˸FVLDGT1XVBLST1SCMP汫1δОGMTX1REFLECREFLEChWRKFILVARSCN10XVBLGTΰTskqkCikTVARSCN10XVBLGTnPskqkCikPUnSQ2QRBwQTQP2UVBFwU=SQPoT2TUEEw=PT@WRKFIL |DTRCMDSCMPGMTXFOR$OPEN FOR$CLOSEREFLECFVLDSTWRKFILXVBLGT LIB$INDEXFVLDGTXVBLSTVARSCN=$CODE$PDATAX$LOCALMFILES8V DOLLRRCLACTFFGGVXCMDVARYIT DCTLD2RDTRCMN FOR$IO_END FOR$IO_D_V FOR$WRITE_IF FOR$WRITE_IOh*P aP jP~P PPBPuPXPVPPP[7PiPoPPCPPsPpP[P80P7PPP^PtPPPPPPPPePPI P1P>PAKP,PPPPDPQPPUP"XPI}P$P!PP8PL9PVP]tP?P1P$PP00bbbYTADATADATADATADATADATAPUPPJP]PfP|P{PPPQPEP,-P pPPPP~PPPP4P9P1DTRFCT0110-Feb-1986 09:4710-Feb-1986 09:47VAX FORTRAN V4.3-160POPINSOPINRROPINRUOPOUTSOPOUTRCLSOUTCLSINPENAOUTENAINPDISINPDISOUTEDTINPFMTOUTVALOUTCMPFRMLENFRMTRMFRM!P P> !   ( /   6=DKRY` gnu  hp|P|[Ь  1PRPMQ2QQAb Ab=LPRPQ2QS C=PQ($SCMPSδО<8GMTX籫12P@@bl\FOR$OPENP1c1˄ˀSCMP鱫T˘˔SCMP豫TδО<8GMTXб12P@QQ UUUQԞ@b˸˨FOR$OPENP1Tc1SCMP鱫δОGMTX屫12P@@b(FOR$OPENP11@<SCMP鱫δОGMTXб1 PPTTTP2P@@b`PFOR$OPENP11ˌˈSCMP˜ FOR$CLOSE1ˬ˨SCMP˼ FOR$CLOSEc1SCMP鱫1SCMP鱫1SCMP鱫1SCMP鱫1SCMPޱ1δО0,GMTXڱ1֫ޱ֫ث౫ثPREFLEC`FVLDSTpWRKFILˀWRKFIL==1˔ːSCMP鱫˨ˤSCMPޱ1δО0,GMTXұ1֫ޱ֫1ث౫ث1PREFLEC˸XVBLGT`FVLDSTpWRKFILʰP2PTDDx= P(x)˂˃x FOR$WRITE_IO}k~ FOR$IO_D_V FOR$IO_END FOR$WRITE_IF}k~ FOR$IO_D_V FOR$IO_ENDPnTQ2QUEw=TQQ2QTDUU 2PUDEwP=<QˀWRKFIL==1SCMP汫1δО0,GMTX1REFLECREFLEC2P@b,ҫδОGMTX XVBLGTqkqkCikS0XVBLGTqkqkCikU@WRKFILPWRKFILPPoQ2QTDw =nPQSQQoP2PTD =nQPU2STT`xd2UUUhlp LIB$INDEXPPmP |-Tx Ur-Tx Up1ˀ|SCMP鱫δО0,GMTX1REFLEC@WRKFILܰPPoT2TUEw =nPmTk}k ːFVLDGT1ˠXVBLST1˴˰SCMP汫1δОGMTX1REFLECREFLEC@WRKFILVARSCN1XVBLGTΰTskqkCikTVARSCN1XVBLGTnPskqkCikPUnSQ2QRBQTQP2UVBwFU=SQPoT2TUEwE=PTWRKFIL |DTRFCTSCMPGMTXFOR$OPEN FOR$CLOSE00bb^[Z[[[\[}REFLECFVLDSTWRKFILXVBLGT LIB$INDEXFVLDGTXVBLSTVARSCN$CODE$PDATA0$LOCALMFILES8V DOLLRRCLACTFFGGVXCMDVARYIT DCTLD2RDTRCMN FOR$IO_END FOR$IO_D_V FOR$WRITE_IF FOR$WRITE_IOS!P:P |P?PrPWPYPPP[ P=PCP\PCzPPsPtP[P8P P$P2PHPUPlPrPPPPPiPPMPPPAP,[PtPzPPDPQPP)P",PIQP$TP!PP<PL P*P]HP?VP1cP$tPPPUPPP1P:PPP{nPPPUPIP0P DPUPbPP~PPPPP P-дaf2d\!C':e@4  b1cs਑` &P"EPC$Nh Dѣ1`2"XhII" % &D2*e*?N yӦM7dt8UТGƈ"+$EK!+1F*ZHLy p6ND̺e-R7ݮ_ +X1c5]4=9r̳blYms]#ٿ NFc9hMDF>;`X| p{IgW^y~\u)iumY!^ zg޵xx-GaoCpa\WVEE3' :cv8&Q=fTœ0fy1 XQ[ aFfBBJN1E%IžUBWa/\ |Ba;6&*2g')視&F&*e:UENG&B| FNƖښ \ʊ)%ԖzG_SDQJ(CTAR`LQQDbB12!NoJnvceDO ;B`B0 eWX yA),Lmbcj@<@Dm(ĐCIDEiđG3H%JTYL4لNMS+y0YZl\tE^T.m-n=Lɫ)wf:w7sv=wޓ.W/GSMw^2~n[y~?症%s: ?vU쯳mˡ;♏#9v|퉯:<,.cb/myɃnȟ\k7qETK\^[DrN3#A:!D*rl# L%HfRFA}Tx YPHC(P0_rCX<ġDaObü2`WTv:Ӥ1/[- u"jU'2*ViYL23@2! wx $ E I8ƨsQINv'D~H_:34f_[K[Tn)Z([Kilu Kʢg \GYpGrɥ݈W}*weomt]Iq_F( Ρ{6NHLWS~a` Veo$ eςpv G&1~))`{_/y^׾Яl`L(YdzßgDc0v>)0tD$iY0%_ WLvAM$UE鴘Pj01iJ[mzdh,я]'FdI^ȤCmi>S{~sfԑnw;j7ӟ^pm2:ĵ&pmQ]ibv{dggȖ%(%sXr "ŀ hpgXmppfHd;  FOp}*}9S .IVT}>5CVtH8Cv% JTs0rPeFitFi@.ha`alb9@ tFXpKvvKi03Tx@=eope fPl(8 PsPl0oZ =9rIig`EYFaPYbI=ɔN RITvx阃o@i`y`HЖe`oyKfbS?yrg0C=ɖr@s@pdcPhl f`pc@upLy es0)F!l`k00bbbYTADATADATADATADATADATA0CgWm0dy+Miٞat9is@aPi GIcK)XfPWٓqPiГd`ɟƉD٠i`ic`3p':-6ai >: pc왓?Jg!a lY!CZR IY*ė `TJQrnP ZfCRT ĔX0CYԙtGKJYU ps)Xyy 3NJ)"ЙIWn0QyYup,HtiE=OF *k @yjP8VyKbYj*9 ꂣz|Yq9b8is\"`.hLiYfة9ڪ :r:ɓ>3$Di*^)Zt@Vږ*zʘ2z);CyJub:FeGen !{ԪyFf:C *ʩ9ij)TnQbp`\˔E{oQF굯ibjPQfww,Xuoɲ8Yap @;ٓ?Iٹ J1Fl[3t? jf lA?k{fi*Tt˯vyGH*LyZP@3rj˼+yK a˺9t"N*tJ1mVi٠ʪ JE;[˪"Y!)ؼkFċbIZWBjު˿ iu:XI컿jQ{T;;sɜY E8;{]09yPT ?)d̵jP\NiKr23Ēj`O294٣QzR,Ye noP!=I,)ϙM|;֋io@! [EC3t`5yH$v?I QMp[E",IEjï۰ %;y*G=C(З%SSVD5A0Ĥ%Sg.(V=x˸ڪnpK˰|ٺ PVKWL:J8){\ܺ}tya[IЙ\ukK;ڬʖl np?a lT0ٗYi2-tIζz9}Kyyz޻T:QͺÄN1&=@ٓQaKI͵g'9`ȪpP U"pM-79F4C|AIi7Q߲Ճ/@kdtRh*0$4`؀C{O/7`|»%IYY3m@kLZ*R"ZWS.su,WX`a}P5CPI8d`)f_; /D+w}r௅+Ǹ,Ut€w@^0Ɩ2Re&t }ώ h T)@@E`g_k{a6'୆+P,Kb?oa]P2H+_}uY{ŕ=/eR;Jjq|Ky0)i[/[Z*z4Ň[BP=0fX|TUȍ7մvxPYYhR ٬݇*Zp(嬒ZJ-S]mAT3̀1QPf "{,'h`dZ+"1nSQ] cbjLtA'7\_HdJ!Y*U^` ,R(E osM!/䴜RFm K9yAsgz~ Id1XSҩ&JG0jtȊѹ:R |(Ki'/j}0Ang$d2wd]:'LkwQ;' pbxOm<|sG(O:Qƀ2P A 7:wUHOF!{| I$ suR0GI!M%9ŗ씐~It&C"qh"!LS>dL" L=g 'd,{N KO)|`sQjiY1Ӿ{bͫ$dʋ{v "UO,ýu |je J7Ч̠QX+/rcH `nA}҅+-LY:cUk-,>RB͋RY-SQTa Ca:MS6 W2V/`%F*:u ]%ؗj-P5(RڂL~i+3мE+\mM8V^rM'vF'#I gXeK+Xp]7yoFK+MJXlr s,tH]:)fKPE=;na.\`+ABӃ#v BElUU[p?5;dh.A8#f9#)h.*N s!k`2~Xg{-kkIL'Lyi0qξ6I`:ILm[qp zF{~& ״KR5 Qs$5I9rA*H~H"2Grg!ċ`0"F2 𴊤V YyёܑRAdsIǍcInL$QF3s$".4 "C %000bb^[Z[[[\[}PZD~>agJ:AI%ehLkDsHʣ9dCN~UP0zhC ܢGӃ3'qjP#Dh!=F2#OHDbP I&'Lr"&ft*04R6$ =$kD;Ih\@$ ql\P^Kd$P)~`}sJ1Y ɠ9IiRQT1R')KScjZϟx+J^<ɒA|Ϋ*j?̐&rV,Ja&H|O4&e>qJJe.оX bi Ny`Sx}f,6iU黀S3'%Q*@vJkj.T,[?Jwm5AYKKs)+ [\f*g|L ~N5gPSlxb6B1ALYm:f4N`L+|UpMVlFe-^iӼ@>WbU)PSo>'3øift6xCd4"шPTZ@A"/ ZSpV?YJ*qT Қcn1}qh?$3bU$I皤DB kIѪYD$ W4Z=U@9b:O=ؑhǸBkm;+Hh^Hya.*]1+pݬuVr\A5@>W}F(kŹ<[sn-6[WcY:C YSNJ8U,/R{rqe)oSqְ>mӡN L " 0Pcr CN9-7_nZ7JU)Ԙ_0%XK9 F**.6`HD PIo< H$-]auHʠrqA% d &@v@WJPrA+8Œ5^n%|/[RsĄ2f˜33c^q9 ) 5y9XܶCLDI <>86)*_! "۱͸ ģEzoN9:gTBtaDEOiE@+mY2e|@qSʅpvd:*ϭgfFh+ ƺ d .V`MvqJ=rNSV؆Ucazьw쐭Ze ӂb iz:M!`l)%]F `穀 Sb#EJlJx 1Ubb ,@_䪅%Mi;;MC%N'lҤRo^UYB@ {4u"Y+J[+ D1Jw Kt8 RLa|2FNeR2С^ee(pErhOaUE[6x-PGA*ЁJuv #QHkb=$ƢH]G2'1GRsF1q pJRR;3ĩAwf H<; qj xP\;`(>7r %$;*ijc> 9/,%Nƙx7 \+q. G`pMqfhg (GzqpƙC]9(D0W YI>—⫕KqK~,$O!v?r'O*&ӇB𶾐 L/9,i# :ڕcBh?7%*'9 $0F@SPk[*F$0֮"H9Fz ~Skcu.Q甤_%b ZN9- Vjf ɨLAsoځ=^U %R`ף i4;TtRt $^a*w!kE9 =tKc џ$/.R&|CN=+ֈ{Np%O+Q[; ?tH3.n%p.p#k˝4wq7 < "00bbbYTADATADATADATADATADATAb؃{O L5tcxl4o`ODrbO ̝;mʋ`CnpWv~(1} RGGwǏb;O2s_6<,3t%ƿgC Fv-`OcP ش+楼{;?.Z>T awX$5O=~>ӟ㳻1~1<~WzKO`=1z>?Ågޏ` ^;Vo_=Ϟht=O D/{Q" oPF& /$wB\ooz~FPO{ocp~ǘ>\w i,Q z%}c|q}r {~ }2w |˽`b|y?ECȏ5|g a'1cM@/?E|~~|k>ԗn_Kw y6\02wwzv~p睹@NH*?5c3x~/_{wn? CG@C~ܞ,O:>Y_ܝ|˷=/ܿY7~h?~[o޽?~w\qb>o_'~mo|oC7>sA/  `.y(møq` P1h apc z3PYzm7, &` bQx̀|s}-B@və p$ BAvWYL =hgbg<!lvWN$6|rlp`g[H~8 @!}Hj xF"p n% ؄$H"8 Bh # nn'¡/0؂́! .hj,7$0 !a z ;XXH]X\UqJWS7BBddD-H0 ]bY(.x@GQЇ>PQ h`vH5 ()_0ReH\EК&FOY0( H8=̌5 2A34b3JD=d4""!Nx38535Iㄷ46oXC^#>t4Uq52Acc24r936|X6jP#X4T16ƍl5'vcz#S8Fi#,6ލ5ʍ[Rs8ꌓp8R#6{ވ9ch:R`&.L ^8ߨ;ڎW J~bF@8@&m#'j#<#+ X>Vc kC Ȍ,I:v;cc8ה;඀AΎdA!X= d )?Nc9,$ I8XA FB0d C ̨A $8jM1fDH+B  960!:Xll A@iF*GHnex@%oc鑠D1H_3PDnMtaGRQ G:$BgyW8R}(D=QGFc/ńt[ b 5HNQMHބ{*B 0kGz$/Qp\D~TKԒd.9=y//WL<\VFEp=1W٤ICpT3Gښef񈟒16M!HBQGQG)gԀqq]ԥor}Z0X$2Y!n^Gi]Q'KP aX' 8"ZTAr"nN g:#YciG˘6Űw#\q3(\l'@`T1 dzg] PT6޵g]|T%,Tz ^d`酕XU>pS8%[9䱀I^ {Sx`'Dbu Z%4B x`X!8%XGX2YFhX"m]GeW]I偀^)Tʕ7`jI͕Bhp^}aZ_IVW}ЇXzY)\>BWte[)\b!i~D<ȖLh} `\}EmV~Si^e{1\zyVvi#p$bI[J妡b\e\bo"DF09Fl cX 3o< Q"Q^ewH8 )$%%X*d1+Œ>L2ҔSj3i$0dNfhdD)Aev~)eƓI ^fn0cIfffɎa&&8=H8ZNaJf"gni~(<_)TZcIYjKfY5 ` @JZ!D"M+A1OO)$CLSRtv@\{ʳIdG]S*1A Avb֜2 u'O2x j6$.8zIq1ڊ1* F|S@jԍJzk1*Q 8I(b@;N* ҧ*~ *Lf/#SS`p.u ZҳPti~j,Q <8 "@9R⺘ P l©NP \40<F)ZW*1'բ<a#*1' `pۮ$Ԑ#bg(@ ppDhbL J '~z&pP7JG0α 9*z*:HUy$՚•$*JFE]DNzL$-KNF'6Hb-֔d.0+&,k= Pޫ,@*V4 Th0)7X"ݩj; +kƽ0k*ά3ڲl kGq3$CC*K̏Xk0N%vLb ZҬXk֪¬6kyЅe1  92*浂eEU|YLS*f&Y_?N}I %27qDpCk1+p @fU|*D˚\ D̫fp)7CRw꼑EVD$1j;1+M@Va'!({ + %^+p ,"DCdGŸltl M@{Rx1Ld {9,҇>,ˊŠBk1=h 0h{Uk׺NDՖfbYH&s m؈5kƴ2Nk)Sڒ )a`>RP"?jS[7Ϧl* +j`d7[U'\8f=i?/fYъVhY?C Pr -feEPRjI Bim֣fԙT]gp&&#-gvMg A m0ߙg݌iw6Ci4 7Z$  M10C &FhDݛg'ZE3kYZ2]hpD,=EڤFidviTښ6C4ѨZ5iƨit W@eҌti')=j$&HwҬt$J(@}J`ƪghXtֲm4-HjZVLZVGg3 @@fsvM6w4ݲb4hAC@L@Rn6IgNrkRk" 圽-Hht\?O\ܒ~flks&:+=cwu*\Np NΎmN RԮR'6Hp6J8T%C+ Vmɘ3+-hz/c[ p 0J4zk*JS U6C)qLEh-9wHCVduʠͱ5Huֵ @R2XLhҰuMp%ѧ[º,X[So!, :JB՛u LWmFm) &լ4D  rlO($@uJUd[L=UKiavŽ]ȵPr$Avs,}{Q!FMIWmb"2YU`P.EKDhͺD^Z5:uh _7*~1PPu Z)u&TnבYFݧ_+d/ v V =&$AqDm2vڵJs, tL]7QgQ$DBYK" ]moԈw sWc*g#M2C d3c+Ʃ)CvumdQꯥD\Q{Z}-\gռ5^G.6sfA(5^j6]` \9i5a+ڹR8@ LE 0HSr4O93j{i6 W{B_p@EFS`7 r6JG-S$Fڶa-`񲀽k9jXuS]Z]k=(yPQ}8Prl]"D^V6+IkFbt +M ,ooڼXtg"Leat P,[l}Tl`%%,еנR[O+i5bRk#O6v`Fwݮ6m[6**cWX7Pi+i\|J@BZOIڔ=jm`wNu|uo#}uݕ6 jȪ:F.MR'ڴx;? u'bxuW'uo16ݟ=w-ɰ+xwM¯7]y ؗ7Wj{@w}z{b p+{C7.Oߵw{ |w7=v\-_{ʷ~.@Pvݐ],c߻z+w} mw ߥ| Bߴ-{Sx?w\M}oڴ*ߚsMo7 yٷ~u ~9{|6ݔn;80}'.΂["x^'N++LgwPߦ#|Fͨ G8%NwG7Ws^g{x Nn)nm8muwz's^ၸ!~8آ '[}x8΄8$~o{7l8]i ⊸ .8)Ί7!+a8k=8%9 +8,n+x+{3*^3("[x)GIA 3{]{Jx}*A^`O8]9>^iOm0N(Bnĸ9އG:In*xC{gy?zGy68]{H@͐sC~[јg8 xQns&U#~W7@/697>V8[kJ95~ǪOyM~ #kJ.nQ.SqWk]NG6U}y8dnJ]>8XrykP^00bb^[Z[[[\[}!?sfW' wZ7XPޒ~9_.7[.{a~`a^pF#*H^+᤹nSxGPY~~y-.\LϾ9 dޑcιt~檸{c,sޖSyV nKI3+s&r,mbsR8Iκs[}7Պ (Kh_՟  =- Yb8ּwsCxR]&0b<. $+ pmnmI?i+e!{A\{>Pz\/{AH{>n蔫0m3N,^y V7c-v=a{?Ns2A#f&4cgW^Ŗ DfWu^郹w|aG^{o{%'E]]@4NAВ:^oS͚T²X}\4A{@{u:.F.@[9\9Ѓz괄nݭ:uAѹ34D斺J]+ ޟ:;:czN*Bґm{u[`Y~^6lښk:Z* ^4.`엺+-lZ9M짺Ϟ: |~ Cd0t:^cHn#\4 ;~Uw ; ˮ-k mN8so-t ͣS{ݱ[TKcf]g.W"xf#GhI􄶣Mt{{;sPUo*tV~t]{X=sY{ۺ^e,8{ [*-!^{Tl.:x+.{~{ӊcwںiS5sW{έ:e6=s S{I@ ǎmO۰hhM[հiJ{2@kz# h=j۰K 03jb8 gvʿ7ߡ5ŸԴvv.\io=[~Eh=;LΪv37+vd|ю?OPt"=EhMGjt8EO~>cj;bc C!||^'a|ߣj h=,Px? ?;㞍3|S$#x~(":!{ظzȟc<%ʻ{œ<&n u"aMFo] i{ϷS8.ůCW;஻ɽg[9aG2|{Nn;', ЍC%;PM/' uôO#_7jt?<}-O{Sl[=o0~o9{̋۸p_ݷrvKt/eZo/>ȣToܓdL-/{C4wn_;=~>޳Ek/H0ӟ> tf_^~k~)|~w?:t3MqD0ӯZgFA9~'~8 ̇-6}wW4OGLY;w0o;}|E+9-G?a=2/??(jZO+p\*="kJO5 [=ɟѪOݩv{ D~<#SϿ.+B}P۬z^dBf:/"#DfR ů;Q{4?,k.i6>̛JxpTߜo_ȪO<}ҙ)՗38+Gп+{z?o]ǿ+Ο=Wz`q7GS %hseoT6){Eت溒 l?/ ٝwFHeQۊ |[7a!x@[?!Ozi_N'ku&d6hkWW?@@jR@:ZJ( 䂃 8XPKWPֳ 6uW5iP:A K n s\< [W| H밃>9 w5 Tmo x>`1{Pj#|JD?Zʼns3XuȜ!tBքr>8"$PyR7;OiB\SE^ _3M,~E³ ReT؞pד;CmZϮg'i^b YyrLX$TjV5 O^2@8:AڄyDd#@^BS1>fҙb t. TŠTj[U0lD*tf`00cccYTADATADATADATADATADATAZ#-`I6Fw'uLXW]nRÄqUԬX &_媎@X &_@X0To generate PortaCalc for VMS using these files:+IF you lack DTR, THEN LIBR/REPL PCCX DTRIF$LIBR/EXTRACT=*/OUT=PCCX.OBJ PCCX.OLB+If you DON'T have DTR THEN LINK/NOMAP PCCX3If you DO have DTR THEN LINK/NOMAP PCCX+DTR/OPTAPCCX is the "smart" PortaCalc using disk based but small files to@hold numbers and formulae on PDP11. This object library builds a>version using VMS memory instead but which is less of a memory=eater than PCCVM. The standard version must be built with the3DTR.OPT file and links with DTR-32. The command is: LINK PCCX+DTR/OPT=for that. To build a version NOT linked to DTR32, replace the@DTRIF modules in PCCX.OLB first using the supplied (dummy) DTRIFobject module. The command isLIBR/REPL PCCX DTRIF0and THEN you extract the objects and build PCCX.DPCGRAF is the library that generates the PortaCalc graphics package.NOTE::?Do NOT attempt to just extract the main program and link to the>library. At least the block data module needs to be explicitly<accessed also. This method is a shortcut and ensures all the<pieces are there in the .EXE file. The program will do weird<things if you don't have the block data, even though it willappear to link OK.:Enjoy. Also, the author appreciates hearing about users of<this program. If you like it, send a letter saying so. Maybe1you'll find out about enhancements that way, too. Glenn Everhart 409 High St. Mt. Holly NJ 08060 work phn 6093386022  (major emergencies only please!)% VAX-11 Librarian V04-00Ў5L(>:L!h  hhH  ^AT`BASCNG BLOCK$DATACALBIN% CALC)CALUN.CMDMUN3CMNDD~CODESEXCONTYPJDECLRL@DOENTRMDOIFODOMATHSDOMFCNVDOSTMTXDSPSHTenDTRCMDuDTRFCT<DTRFINDTRINIERRCXERRMSGFLIPFNAMEdFNDRCFOUREAFRMEDTFVLDGT,FVLDSTbFVPEEKGETFNLGETLOGGETNNBGETTTLGMADDGMPRD GMSUBGMTXGNgAT`BASCNGCALBIN% CALC)CALUN.CMDMUN3CMNDD~CODESEXCONTYPJDECLRL@DOENTRMDOIFODOMATHSDOMFCNVDOSTMTXDSPSHTenDTRCMDuDTRFCT<DTRFINDTRINIERRCXERRMSGFLIPFNAMEdFNDRCFOUREAFRMEDTFVLDGT,FVLDSTbFVPEEKGETFNLGETLOGGETNNBGETTTLGMADDGMPRD GMSUBGMTXGNGTMUNG00 cb^[Z[[[\[}cFVLDGT,FVLDSTbFVPEEKGETFNLGETLOGGETNNBGETTTLGMADDGMPRD GMSUBGMTXGNGTMUNGGTPRDHELPdIN2ASINDEXINPOSTISGNJULASCJULIANXJULMDYJVBLGT.JVBLST~LINFITLISTMDET:MOUTpMTHINIMTXEQU(MULADDMULCONMULDIV:MULMULTNEXTELPGETPGGETzPLWVPMTX2POSTVL2FRMEDTMTHINITYPGET ZNEGSTcbFVPEEKGETFNLGETLOGGETNNBGETTTLGMADDGMPRD GMSUBGMTXGNGTMUNGGTPRDHELPdIN2ASINDEXINPOSTISGNJULASCJULIANXJULMDYJVBLGT.JVBLST~LINFITLISTMDET:MOUTpMTHINIMTXEQU(MULADDMULCONMULDIV:MULMULTNEXTELPGETPGGETzPLWVPMTX2POSTVL PPRTCON ~RECALC2FVLDSTMULADD USRCMD ZNEGSTgMTXEQU(MULADDMULCONMULDIV:MULMULTNEXTELPGETPGGETzPLWVPMTX2POSTVL PPRTCON ~RECALC.REFLECRELVBLNRNDFRVBOOSCMP\SEDSIGNSLEND: SPREDSHT$MAIN%:SSCMP%SSTR'BSTRCMP(SVBL*8TEST*TTYINI,8TYPGET-LTYPSET.bUSRCMD3USRFCT?tUVT100AVAROUTG,VARSCNJVBLGETKVBLSETK`VVARYPxWKDYQFWRKFILgMULCONMULDIV:MULMULTNEXTELPGETPGGETzPLWVPMTX2POSTVL PPRTCON ~RECALC.REFLECRELVBLNRNDFRVBOOSCMP\SEDSIGNSLEND: SPREDSHT$MAIN%:SSCMP%SSTR'BSTRCMP(SVBL*8TEST*TTYINI,8TYPGET-LTYPSET.bUSRCMD3USRFCT?tUVT100AVAROUTG,VARSCNJVBLGETKVBLSETK`VVARYPxWKDYQFWRKFILTWRKINTUWSSET-LTYPSET.bUSRCMD3USRFCT?tUVT100AVAROUTG,VARSCNJVBLGETKVBLSETK`VVARYPxWKDYQFWRKFILTWRKINTUWSSETVXQTCMD~"XVBLGT@XVBLSThZEROZNEG3USRFCT?tUVT100AVAROUTG,VARSCNJVBLGETKVBLSETK`VVARYPxWKDYQFWRKFILTWRKINTUWSSETVXQTCMD~"XVBLGT@XVBLSThZEROZNEG00cccYTADATADATADATADATADATA 00cb^[Z[[[\[}1&;H01-AT01 5-Sep-1986 14:57 5-Sep-1986 14:57VAX FORTRAN V4.4-177P1050READONLYSHAREXPRV | FDBSET@ FDBSET@TPX[>kGETNNB߫ FOR$STOPRSRR2RP2QA@>kGETNNB߫FOR$STOPccRP2RQ2PTDA=PAcPZNEGP2cP@R c2cSC4FDBSETRDASSIGNERRMSG ATZNEGGETNNBFDBSETASSIGNERRMSG$CODE$PDATA$LOCALZ$BLANK CONS ITERAFOR$STOPSPP\PrPuwPPP P1P&PPPPww1X&;H011BASCNG01 5-Sep-1986 14:57 5-Sep-1986 14:57VAX FORTRAN V4.4-177PPP [kGETNNB뱫1R2P2RQA@= RRR RkGETNNB屫RPRP2Q2PSCA= PP P RRPPPP PX ERRMSGu BASCNGGETNNBERRMSG$CODE$PDATA$LOCAL0DIGVZ$BLANKVP5P =PrLP[PbP%}P P*PP PP Pww1e&;H015 BLOCK$DATA01 5-Sep-1986 14:57 5-Sep-1986 14:57VAX FORTRAN V4.4-177 P)@)(Q(Q@ P(F9.2 ')VPQP P(PPPABCDEFGHIJKLMNOPQRSTUVWXYZ%P12345678900000001234567000000000123456789ABCDEF0P, )(=XP P((&PP  ''    '  ''''''''''  '  ''  '  '   '  ''    '   '' ' ' ' ' ' '  ' '' '' '' ''' '''''''''''' ''' ''' ' ' ' '    '  '  '''''''00#cccYTADATADATADATADATADATA''nILNhOARZ$BLANK CONSSTACK8VDECIDE0DIGVERROR ITERA DEFVBXVRYDATww1&;H011CALBIN01 5-Sep-1986 14:57 5-Sep-1986 14:57VAX FORTRAN V4.4-177P  20100021003000400050006000(P4   6B:>BF  $J(,0Q`P([R@B2BP@ŽS2P@B2TD’PU PQAAS1찫@B2P@$VkTYPSETްPT2PQQUWTQA G=VPCONTYP߫(FOR$STOP2P@$TTUV2PPW2VPPWQA@VT0XVBLST2PP2VQQPWQA@=UV1oSTS2W W2UUWG:@CONTYPⱫ12P PWWUEċXCONTYPϰU12PPWG-PP߫pFOR$STOPP2VV2PQQVXHA=P}PV2UXX2VYYXZJ I=V}~}P~ OTS$POWDD}PP2XX2PVVXYIF=PX2UPP2XVVPYI F=Xݫ}~ OTS $POWDJ}PܰP2XX2PVVXYFI=P1X2PP2XYYPVFI=XP2UXX2PYYXVF I=P}~n~ OTS$POWDDjPP2XX2PYYXVFI=PЫXP2UYY2PVVYZJ F=PݫX OTS$POWJJPذP2XX2PYYXVIF=P2XGHB1 BxERRMSG1P2UUU2PXXUWG H=PիˀERRMSG1ի2PP3@U2UXPXH=U@1׫1P2BUUX2WWV2PYYXZVYIJ =PGBE’UWˈM!ULMULֱ1=UW12U U2WWUE@CONTYPα12P@B2P PUUWGGXCONTYP˰W12P@’WS˜FOR$STOP2WPUP@PPˤFOR$STOPP2SS2PVVSXHF=P}PS2VV2SXXVZJ H=SdP1P2VV2PSSVXHC=PЫVP2SS2PXXSZJ H=PV1˴MULMUL1MULMUL1MULMUL12WPUP@PPFOR$STOP"P2VV2PSSVXHC=P}XV2PP2VSSPZJ C=VsERRMSG1gX1X2PP2XVVPSCF=XЫXP2VV2PSSVZJ C=PիERRMSG1ǫX1˴MULDIV1MULDIV1MULDIV12WPUP@PPFOR$STOPP2XX2PVVXSCF=P}XP2VV2PSSVZJ C=P`X1X2VV2XPPVSC@=XЫVX2PP2XSSPZJ C=XV1MULADD1MULADD10#MULADD12WPUP@PPˬERRMSG1DFOR$STOPP2VV2PXXVSCH=P}PV2XX2VSSXZJ C=VcPܰP2XX2PVVXSFC=P1X2PP2XSSPVFC=XЫPX2SS2XVVSZJ F=XëPذP2SS2PXXSVHF=PLRMULADD`MULADDtMULADD۱2WWWU2WEĘGBB CALBINTYPSETCONTYPXVBLSTERRMSGMULMULMULDIVMULADD: $$CODEN$PDATA$LOCALZ$BLANK8VSTACKDECIDEFOR$STOP OTS$POWJJ OTS$POWDJ OTS$POWDDY_PeP PPPP PP)P <P >P@PBPDPjPPPPtPPDPPPPVPPWjPqPyPP PPPjP'P@P8HPQPwP}PP|PP PPP 00+cb^[Z[[[\[}%P PP PlPlPPPPlP ^PP#P]PQPEPP PPPPPPP IPTP_PPPvP PAP5P)PP PlPlPPP Pl P fPPPUPIP=PP,PPP PP$PP,P P(PP)P P  P/ P&ww1`!&;H01/CALC01 5-Sep-1986 14:58 5-Sep-1986 14:58VAX FORTRAN V4.4-177PTT:630 CALC>P CALC<>P P P ASSIGN@ Q?*'P  [\RSTdUVfASSIGNff\RSf1PPQ2QW G=PQfUPQ2QWGGG  G=PQTTPP'QQPPQ2QQATQR2RWG=QR\RSTQRP2PXHYPRHd\YaYz Y3YH=QPGSLIST1GR,CMND௫\RS,SLENDӯ7\RSTR2PG@=P2PQGA= PG\1<VAROUT,ERRCX寫\RS,INPOST,POSTVL鯫1d$CLOSEdVUd\RSdf\RSd\RS(fd  FOR$WRITE_SF FOR$IO_END2dWW FOR$READ_SFk FOR$IO_X_DAB FOR$IO_END,SLENDZ߫4FOR$STOP۵f1d1VV1 FOR$WRITE_SF2d~ FOR$IO_W_VﰤTXY2YP@ FOR$IO_B_R=XY FOR$IO_END1Vd\RSG >G LHZNEGP2d~ FOR$REWIND1$CLOSEd1PERRMSG1q\RS CALCZNEGASSIGNCLOSESLENDLIST)CMNDVAROUTERRCXINPOSTPOSTVLERRMSG$CODE,$PDATAd$LOCALhOARnILNZ$BLANKKLVL CONS0DIGV ITERAFOR$STOP FOR$REWIND FOR$IO_END FOR$IO_B_R FOR$IO_W_V FOR$IO_X_DA FOR$READ_SF FOR$WRITE_SF$P8PDPIP_PdPfPPP PP PPP!P6P ?PJPEXPZP\P^PPPQP0P*!PPPbPP;PP&P"(P +P4PRPWPlPqPuPPPPPPPPP dP|P#P ww1&;H010CALUN01 5-Sep-1986 14:58 5-Sep-1986 14:58VAX FORTRAN V4.4-177P 1004001000015000P "+'QP[2BP@2@YI@kERRMSG1PPo1Z1ERRMSG1ERRMSG1PYQ2PRRQSCB=PNPVPP2PRRQSBC=PI@1 ERRMSG1߫(FOR$STOPERRMSG1PYQ2PSSQRBC=PiP2PP2PSSQRCB=PI@10ERRMSG1 ERRMSG1ERRMSG1PYQ2,PRRQSCB=PiPmPP2PRRQSBC=P10ERRMSG1 ERRMSG1߫8FOR$STOPERRMSG1@~^XPCONTYP^߫hFOR$STOP2@P@@P2@QQ2PSSQRBC=PQQ}P MTH$DEXP_R6}P1}P MTH$DLOG_R8}P}P MTH$DLOG10_R8}Ps@ERRMSG1}P MTH$DSQRT_R5}P}P MTH$DSIN_R7}P}P MTH$DCOS_R7}PH MTH$DTANH}P}P MTH$DATAN_R7}P003cccYTADATADATADATADATADATA-P2@QQ2PSSQRCB=P1kERRMSGZ߫FOR$STOPERRMSG1PYQ2PRRQSCB=Por}RR}RR2RPPQS@C=RQYR2QSSRP@C=QoΫЫQQQQQ2QSSRPC@=QYoIIIBT CALUNERRMSGMTH$DEXPMTH$DLOG MTH$DLOG10 MTH$DSQRTMTH$DSINMTH$DCOS MTH$DTANH MTH$DATANCONTYPg$CODE.,$PDATA$LOCALSTACKFOR$STOP MTH$DSIN_R7 MTH$DCOS_R7 MTH$DATAN_R7 MTH$DLOG_R8 MTH$DLOG10_R8 MTH$DEXP_R6 MTH$DSQRT_R5 .P 7PWHPZP\P^P`PbP&dPfPiPqPsPuP+wP+yPs{Ps}PsP+PPPPPPP+PsPsPPPPsP+PqcPqP}PPPP_P_PkPkPk/P_PPP}PPPP^P+P+ P+ P+ P+P+P^)PeFPHPJPP#P3PCPcPsPPPPnP^P PP>P. PPMPTP ]P2lPnP,pPrPtPvPxPzP|P,PPPPvPP=P"JPPPRP YPww1@&;H0101CMDMUN01 5-Sep-1986 14:58 5-Sep-1986 14:58VAX FORTRAN V4.4-177P%TT:P<P xz FOR$OPEN@P [ЬRSTRR U2P@dQQ1Q1Q!1%1^^1@d[1xPxQV2VWGdWW"P=QVQ2QVFdWW`W{ W3WFdFd_F_Q=PQxPQ2QVFFd=PQwxnFRMEDTߑM11U1*$ INDEXPVVVPVW FOR$WRITE_SFX2XP@d FOR$IO_B_R=WX FOR$IO_ENDԱVPPPW2WXH=PW2VP@$ INDEXPPVPVPWXVWX2XQ2VYIdA=WVPP2PVF&, FOR$CLOSEc@FOR$OPENܐ\FF?F\1XW FOR$READ_SFxYWX2XP@ FOR$IO_B_R=YX FOR$IO_END2WWGWF\cW\W 2c~ FOR$REWINDW\W * FOR$REWIND*, FOR$CLOSE2ӰcxPW2WVFFd=PWnFRMEDT1J2URBPP!PPU2UUERR?R[ROERRQHEdW WV0V3VE2WWzWW{ WWWWW0W3WE1EXPEXRP0PP E~0XX  PWXWPPPP@P3PRRMoRRlRyRPRSRPAP1P1PWPWPW1W3WEd&E@DK:U2WKGYGRZZGRRP+P3PR@DK:U2PA@K@2UPR@@W3W@U2UU.ECEME3DEE  CMDMUNFRMEDTINDEX FOR$CLOSEFOR$OPEN$CODE$PDATA$LOCALFOOBARIOLVL FOR$REWIND FOR$IO_END FOR$IO_B_R FOR$READ_SF FOR$WRITE_SF*PoPtP PPPP P PP4P  PPP9)P$OPJ_PlP7qP2yP~P%P PPPZPPPzPP6PPPP&P;1P0nPww1';H01/CMND01 5-Sep-1986 14:59 5-Sep-1986 14:59VAX FORTRAN V4.4-177P P26102030406070808488100110130200?<>SYS$COMMAND: DEFAULT BASE IS  CALR> CALC<>P SET PHYS LOC. COLUMN= S00;cb^[Z[[[\[}5ET PHYS LOC. ROW = n2 !2#P   P<: !":$:&:(% :*':,- :./:00 :22:46:7:@:=>6BDFHJLNPRTVXTVTVTVNPR\^`\^\^\^dddZbZb Zb@T@ INDEX@T@ INDEX@T@ INDEX@7T@ INDEX@jprpBB INDEX@DD INDEX@vvz FF FOR$OPEN@Qd@ABCDEHIMNORSVZPWGQFJXUSCIIECIMALEXNTEGER10816CTALEALQI'Q'P [R4GETNNB򯫲߫@8FOR$STOPSRP2Q2PTAD{=P1TP߫HFOR$STOP>TPAT߫XFOR$STOP`STRCMPU߫pFOR$STOPxBASCNGVS FOR$WRITE_SF2X~ FOR$IO_W_V FOR$IO_END񯫲ˀFOR$STOPˈSTRCMPU˘FOR$STOPccR2cP@ 1>@ TPZNEGP12c~ FOR$REWIND1˨STRCMPU˸FOR$STOP9STRCMPUFOR$STOPSTRCMPUFOR$STOPSTRCMPUFOR$STOPSTRCMPUFOR$STOPV1 STRCMPU0FOR$STOP8STRCMP UHFOR$STOPci FOR$WRITE_SF FOR$IO_ENDs FOR$WRITE_SF2c~ FOR$IO_W_V FOR$IO_END FOR$READ_SF$ FOR$IO_X_DA FOR$IO_END12c~ FOR$REWIND1UXDE:CLR񯫲dFOR$STOP4GETNNB毫RPFOR$STOP2RP@PP V1P V1P V1V1ZERO1@1tVARSCN1 FOR$WRITE_SF FOR$IO_END2UU FOR$READ_SF? FOR$IO_W_R FOR$IO_END FOR$WRITE_SF FOR$IO_ENDU FOR$READ_SF? FOR$IO_W_R FOR$IO_END1U FOR$REWINDE 1>;E TPZNEGP1Rư<˔VARSCN1˴TYPGETdJVBLGTXVBLGTiҡʫư<VARSCN1TYPGETJVBLGTUd,XVBLGTdiUUPPPQQUUQPUUPPUUҰUUQQUҫU°UUUQQQPPPUUPPPPQQPP°R<REFLECLWRKFILF# FOR$ENCODE_MF} ~ FOR$IO_D_V FOR$IO_END(xP2PQApAx= P<)˂˃x( FOR$ENCODE_MO} ~ FOR$IO_D_V FOR$IO_END㚏nP$Q2QU E=PQ\WRKFILRư<˔VARSCN1˴TYPGETdJVBLGTXVBLGTiҡʫư<VARSCN1JVBLGTTYPGETUd,XVBLGTdiUUPPPQQUUQPUUPPUUҰUUQQUUlTYPGETd|XVBLGTdˌJVBLGTdn R<REFLECWLWRKFIL鑣WFR00CcccYTADATADATADATADATADATA=ˠINDEXPUU(12UVF˰ˬINDEXPWW&1CN˸ FOR$CLOSEݠUW2WWGNCFASSIGN GINDEXPWWF12WP@INDEXްPVVH1ޡVWP2PP@INDEXPUUWUPVP2PP@INDEXְP౫ޠVUWUU FOR$READ_SF FOR$IO_X_DA FOR$IO_ENDVV2WP@`W䷫ⰫU2WXH2P@w SCMP=UUU2XH2P@w> SCMP赫=U144INDEXPK12PVFLHINDEXPFPPTINDEXPF` FPP}1F` FPP™FPPF`2VFxd`INDEXPn£PPVWmPPVVPPVVPW2WU2XHwE=PW2VP@\WRKFILp 2P@w2V~ FOR$DECODE_MF  FOR$IO_D_R FOR$IO_END摣KNR˸ FOR$CLOSERpt# ˸ FOR$CLOSERs R2?~ FOR$REWIND2VV FOR$READ_SF FOR$IO_X_DA FOR$IO_END*ӑC˰VP V P2VVFp2PP@tlSCMPRˀ FOR$CLOSEˌ FOR$CLOSE˜FOR$OPENRs R2c~ FOR$REWIND2cVV FOR$READ_SF FOR$IO_X_DA FOR$IO_ENDˠCLOSEc1*CVP V P2VVFp2PP@tlSCMPµ1vRF@V2P@ V2VWG˰ˬINDEXVPPV2VUE˰ FOR$CLOSEPG˼FOR$OPENP1 EVVtVARSCN1V FOR$READ_SF FOR$IO_X_DA FOR$IO_END FOR$READ_SF FOR$IO_B_R? FOR$IO_W_R? FOR$IO_W_RnUR2RP@ FOR$IO_B_R=UR FOR$IO_END2 FOR$DECODE_MFk FOR$IO_F_R FOR$IO_ENDҰRRoP2PP@ @=nR FOR$READ_SF? FOAR$IO_W_R횏UxR2RP@ FOR$IO_B_R=UR? FOR$IO_W_R FOR$IO_ENDıV1p2 FOR$DECODE_MFk FOR$IO_F_R FOR$IO_ENDXVBLSTVk 1<REFLECso3pFVLDST\WRKFILTYPSETFVLDSTXVBLSTVk ˸ FOR$CLOSEVR˸ FOR$CLOSER> USRFCTRlERRMSGR CMNDZNEGGETNNBATSBTRCMPBASCNGCLOSEZERODECLRERRMSGVARSCNTYPGETJVBLGTXVBLGTREFLECWRKFILINDEX FOR$CLOSEASSIGNSCMPFOR$OPENXVBLSTFVLDSTTYPSETUSRFCT&$CODE$PDATA$LOCALIOLVL DCTLFOOBAR8VFVLDCZ$BLANK ITERA0DIGVFOR$STOP FOR$REWIND FOR$IO_END FOR$IO_B_R FOR$IO_W_R FOR$IO_W_V FOR$IO_F_R FOR$IO_D_R FOR$IO_DC_V FOR$IO_X_DA FOR$READ_SF FOR$WRITE_SF FOR$ENCODE_MF FOR$ENCODE_MO FOR$DECODE_MFP PLP TPcP9ePYgPyiPkPmPoP)qPIsPiuPwPyP{P}PP!P-PIPP P Pi P PPsPoP,PDP!PP1P3P DPMPaP zP P P[Ps P;PS PPPPPP 1P EDPGP ePgPxPP#Pi P)P? P  P  P )P+P.P UPZP dPjP tPzP P P PPPPxPuP'P,*P)OPgPPP PPP7 P PP+PrPJP$PPPPSP PEP SP aPP P PP PPP PP*PJPmP9PPP(00Kcb^[Z[[[\[}EP$P  P % PF, P?d P P Py P  P P  P P3 PL| P1 PQ P P P Pu PrX Pb P P  P P% P" P P> PH P P P P P P P & P* P~ P# P  P PP'P2P8P@P?GP8P P ww1D2';H010CODES01 5-Sep-1986 14:59 5-Sep-1986 14:59VAX FORTRAN V4.4-177 FP> CODES$CODE$PDATA$LOCALww1 R5';H011CONTYP01 5-Sep-1986 14:59 5-Sep-1986 14:59VAX FORTRAN V4.4-177P1000DP  Q P@[Ь ERRMSGͰ  ߫ FOR$STOPPR2QQ2PSSQAb=PGP2QQ2PSSQTDbC=P1 11 QR2PP2QSSPTDbC=QP2QQ2PSSQAb=Pq1qO1jȱ1P2QQ2PSSQCAb=PPR2QQ2PSSQTDbC=PQR2PP2QSSP@b=Q 2Q2AQ2PPR@ի2PP@PQSQSTTTTUTU2TT2PVVTUDbS=PnȫPR2QĀQ2PSSQCAb=PH 11 ԫ2PPR@kk@ P2QQ2PUQUEb1=PPkP UV2PP PU2UWQWGbW2VXPXWH1= V 1ԫTPR2QQ2V2PXQNXHbXTXXVT=PQ2PP2QVVP@b=Q2QQA1ԫk2PPR@k@ P2QQ2PVQVFb1=PA PVkVPV1VkV PXP2PWQWGbWWV1= X 1ԫȱPR2QQ2PVVQAb=P2IPP@QQ@2PP@111 1|pP2 VmFV2XXXYIrPYYZ2ZZZXRB=YZZY2UUXTDTmTRdPR`RUZdVP=Y PX2ZZ2PVVZJh=PP2ZZ2PVVZՐFJh=P,>0> 4>8><(MULCONԫk2PPX@k@ P2ZZ2PVZVFh1=PJPVkVPV1VkVPYP2PUZUEhUUV=YPV2ZZ2PXZXHfXkXXȱP2XXk=PZ2PP2ZXXP@f=JZZ2PP2ZXXPH@f=Z@ERRMSGn CONTYPERRMSGMULCON$CODE $PDATA$LOCALFOR$STOPYP0P:PAPCPEP;GP;IP3KPMPOP;QPP PPPPP"PP%P]6PLBP JPnP tPzP@P PPPP!PjPPbP yP PPP P PP PPPPjKP'P5P^PP PPPPPP0 P(P,PV/P;PLP;PPPPP PPP PPPPPP0PPP}P :Pww1 A';H010DECLR01 5-Sep-1986 15:00 5-Sep-1986 15:00VAX FORTRAN V4.4-177dP VARIABLES SO DECLARED =  NO VARIABLES OF THAT TYPEPTL P[RRT1RkVARSCNS(TYPGETSSS8TYPSETPPT1TS2PQAAPTPT1=SP1 ERRMSGV1PPS2SQA=PSSHTYPGETPPPPS2SP2QA@=S FOR$WRITE_SFT2TP@ FOR$IO_B_R=ST FOR$IO_END$ FOR$WRITE_SF FOR$IO_END00ScccYTADATADATADATADATADATA M DECLRVARSCNERRMSGTYPGETTYPSETk$CODEA$PDATAh$LOCAL8V CONSZ$BLANK FOR$IO_END FOR$IO_B_R FOR$WRITE_SFbP+P|?P[P qP*|PP)PPPPPP4LPww1`4(;H011DOENTR01 5-Sep-1986 15:05 5-Sep-1986 15:05VAX FORTRAN V4.4-177P\P N INDEX@P[ЬFRMEDTRSRoT2TP@c,(INDEXװP OO TP2TP@c<s Rd@c84DOSTMTT T DOENTRFRMEDTINDEXDOSTMT$CODE$PDATA$LOCAL DCTLD2R8VFVLDC&IPVP kPsP|PPww1(;H01/DOIF01 5-Sep-1986 15:05 5-SepO-1986 15:05VAX FORTRAN V4.4-177P|(P n      INDEX@ INDEX@P[Ь |k| PP2P R@b($GETLOGݰPP<8DOMFCNյ1PP TPDOMFCNhTESTˈ˄INDEXװPQQQ PPQQ2PP@b˔ːDOSTMTˠ˜ PINDEXضPPQQQQPP2QQAb˔ːDOSTMT{ DOIFGETLOGDOMFCNTESTINDEXDOSTMT$CODE$PDATA$LOCAL0OPgPPPBPSP? Pww1%(;H011DOMATH01 5-Sep-1986 15:05 5-Sep-1986 15:05VAX FORTRAN V4.4-177P@PP[ЫRSq } mcm } q } mcQm } ` `g ` } ` eP`P`e PfPcPPgPsj RsjRpjPPPPRnR } j PjQQPRnR }  jPPRnR }  s` }  s`c~}~ OTS$POWDDgPP`P } a| sp} rq s}mcm ` sp} rq s}mcm `sp} rq s}mcm `sj RsjR`qjPPRQQQPPPRP2QQPRQRnR } sj RsjR`qjPPRQQQPPPRP2QQPQQRnR } s} ks}k`q}P}PMTH$DMOD}Pk}k } sj RsjR`qjPzRT{PTRRnR } ~0( MTH$DSIGN}P } T1| |İİİ}Ġİ}ĨİRİP2PR}B}?kRakU}U~ OTS$POWDJgPĨRWX~dYX}U~ OTS$POWDJgP ` WXekUfĠUcUkXX}XPqP'8GG}Uk}U } 4RNDFVP } |S |İ2İP}@İRr~a~ OTS$POWDDcPPgPPedP } R| |İ2İP}@İRed ssr~a~ OTS$POWDDcPPfPedP } Rs` `g İİaPjPR2İPPRmcm }}} R DOMATHMTH$DMOD MTH$DSIGNRNDF$CODE$PDATA<$LOCALERNPERMSCMN OTS$POWDJ OTS$POWDDP P9P@PYPoP P(P)PTPPP PP!P3&P%JPCZP3_PnPvP{PP2PPPPP2PPPPP>PPPGP@LPUPcPP8PPPP3PPPP)P7PBPOP\PPP PJ%PYPZuPP"PPP P5PPww1 (;H011DOMFCN01 5-Sep-1986 15:05 500[cb^[Z[[[\[}U-Sep-1986 15:05VAX FORTRAN V4.4-177@8P n (0       (0    P|[Ь$0>8~H4MTHINIR ST}.}B 0UVR RPLVARSCN۵2P@e: plVARSCNVVXVBLGT}k˜TYPGET԰dPPPPnkc>˰~ˬDOMATH۵V11VVXVBLGT}kTYPGET԰dPPPPnkc>˰~ˬDOMATH=PPXVBLGT}kTYPGET԰dPPPPnkc>˰~ˬDOMATH=2P@e,}.} BR1h |DOMFCNMTHINIVARSCNXVBLGTTYPGETDOMATH$CODE$PDATA $LOCAL WDCTLD2R8VDOTnILNFVLDCMSCMNb]PqP}P!PPPPgP+PYPjbPaiPZPPww1N(;H011DOSTMT01 5-Sep-1986 15:05 5-Sep-1986 15:05VAX FORTRAN V4.4-1777P[]P n < INDEX@ P INDEX@XP [Ь>FNAME絫0,INDEXPD@INDEXذPP>\LDOIFPRQ2RSCaC=PRPPCALC`TYPGETRpTYPGETݰPPPRRRR RRR} RPRj Rn ˀXVBLST DOSTMTFNAMEINDEXDOIFCALCTYPGETXVBLST:$CODE $PDATAY$LOCALFVLDC DCTLD2R8VDOTnILNI*PY0PS6PM_PjPPPPPP &P ww1F';H011DSPSHT01 5-Sep-1986 15:00 5-Sep-1986 15:00VAX FORTRAN V4.4-177P  PX&SYS$COMMAND:0Enter print file spec., / after to omit borders>ROW/COL==>d"tP$ Z(  P X (X "$(4 (4h4(88 $ $ INDEX@>@BDDH$[ INDEX@ R6(4(4 XZ D && FOR$OPEN@Ph[^U 1LUVT100\UVT1003 FOR$WRITE_SF FOR$IO_ENDf2~ FOR$READ_SF? FOR$IO_W_R FOR$IO_X_DA FOR$IO_ENDPPPP2P@PQ2QWG˿/G˿/G˿G˿%=PQhFOR$\OPENP1<PQ2QW G˗=PQ˘m FOR$ENCODE_MF FOR$IO_END FOR$REWIND@ FOR$CLOSEH FOR$CLOSEXFOR$OPENU˄UVT100񵫮 ːPLW 1˜UVT100\UVT100  FOR$WRITE_SF, FOR$IO_X_DA FOR$IO_ENDˬUVT100\UVT100m FOR$WRITE_SF FOR$IO_ENDX˼UVT100YZ2ZWG𫺱 XUVT100XIN2AS 1w 00ccccYTADATADATADATADATADATA]FOR$WRITE_SF  FOR$IO_X_DA FOR$IO_END˿ ˾ X~^UVT100^˿ ˾ X~^UVT100^| FOR$WRITE_SF2Z~ FOR$IO_W_V FOR$IO_ENDGXPPPPPGGP2XQA˗2P~ FOR$ENCODE_MF  FOR$IO_X_DA2Z~ FOR$IO_W_V FOR$IO_ENDGXX=YZ PLWDSPCMNNULXXXRCLACT FOR$REWIND FOR$IO_END FOR$IO_B_R FOR$IO_W_R FOR$IO_W_V FOR$IO_L_R FOR$IO_D_R FOR$IO_X_DA FOR$READ_SF FOR$WRITE_SF FOR$WRITE_SF FOR$ENCODE_MF FOR$ENCODE_MF FOR$ENCODE_MO;P3APEPPPPP' PDP `PfP uPg}PiP P'POPVPrPyPPaPKP3 P+P1P vPqFP*LP$PPP 00kcb^[Z[[[\[}ePPPP PP)PIP^PhPvPPP%PPPPP PjPEPB\PsPvPPPPP'P!PP~PmPV.PY>PBPP_P<P9P6PP7PPP +P yPPP PuP;PNPKPPP P P = PF PK P> P P0 P+ Pd P3 P. P+X Pf] PUk PG P P8 P5 PF P@ P=y PG P P  P Pww1s';H011DTRCMD01 5-Sep-1986 15:00 5-Sep-1986 15:00VAX FORTRAN V4.4-177PIMMINTCMDVALTXTRPVRPFENADISOPINSOPINRROPINRUOPOUTSOPOUTRCLSOUTCLSINPENAOUTENAINPDISINPDISOUTEDTINPFMTOUTVALOUTCMPFRMLENFRMTRMFRM!!xP P>P0g   0   $0(0,0468:<>:<-<:BBB00:<p 4080<0@0DF >F0hM0  H T0DF >[0  H b0i0p0w0~000DFJLNP>TRiBRT00RTp0LJXPNZDF\^`b>\^p`bpXZ$0NP.NPp0D8JLNP>468fh>fhpZjPp[Ь PPQQ2QQVAf Af=PPRPQ2QR Bˏ=PQ84SCMPWVWX2WP@ @Qa~P@ː=8W2XXXW GːXHːLP DTR$COMMAND\DTR$DTRlhSCMP XWVWY2WP@ @Rb~P@ː=<W2YYYW GːYHːLP DTR$COMMAND| DTR$CONTINUE˄DTR$DTR˔ːSCMP1FPY2YWGˏ=PYYVYW2YP@QQ Q~P@ː=<Y2WWWY IːWHːLP DTR$COMMANDk\DTR$DTR1| DTR$CONTINUE汨1˨ˤSCMPW1P9@PPZZ ZP@.°YYVYP2PP@PP P~2YRRBː=<Y2VYYP @ːYHːLP DTR$COMMAND\DTR$DTR1| DTR$CONTINUEᱨ1ZYZ| DTR$CONTINUE=ZY1YnPQ2QRB.Y=PQPQ2VRB:QPQQV2VRB =PQY.BgPRVYPQPY2RP2QSC@R=YQnQRYRn2RR B=QY, FOlR$READ_IF  FOR$IO_D_R FOR$IO_END1˼˸SCMPᱫ1İưȞVARSCN12YI 1ZZVZP2PP@PP P~2ZQQAː=<Z2VVVZ Jː| VHːLP DTR$COMMAND\DTR$DTR1| DTR$CONTINUEͱ1PI`:I`?9I`PPPPYVY| DTR$CONTINUE=YVFVLDSTREFLEC WRKFILnPV2VYIˏ=PVmPV2VYIIˏ=PVPPnV2VVFˏ Fˏ=mPWRKFILp 00scccYTADATADATADATADATADATAm| DTR$CONTINUE汨10,SCMPVW1İưȞVARSCN12P@f 1 @@YYZYP2PP@fPP P~2YQQAː=<Y2ZZZY Iː| ZHːLP DTR$COMMAND뱨\DTR$DTR1| DTR$CONTINUE䱨챨1@XVBLGTREFLEC WRKFILP2PZJYY  Y3YJ= P)~ ^( n(~( nQ^$ FOR$WRITE_IO}k~ FOR$IO_D_V FOR$IO_ENDP DTR$PUT_VALUEp 1Tn1K\DTR$DTR`\SCMPᱫ1İưȞVARSCN12P@f 1 @@ZZYZP2PP@fPP P~2ZQQAː=<Z2YYYZ Jː| YHːLP DTR$COMMAND뱨\DTR$DTR1| DTR$CONTINUE䱨챨1REFLEC WRKFIL,n PbY2YP@ˏZZ Z~P@b=OYP DTR$PUT_VALUEp \DTR$DTRtpSCMP 1ˈ˄SCMP 1˜˘SCMPoXԴΞ˰ˬGMTX屫12P@@fFOR$OPENP1h1SCMP鱫Y SCMP汫YԴΞ˰ˬGMTXб12P@QQ ZZZQ؞@f,FOR$OPENP1Yh1XTSCMP鱫ԴΞlhGMTX屫12P@@f˜ˌFOR$OPENP11˴˰SCMP鱫ԴΞlhGMTXб1 PPYYYP2P@@fFOR$OPENP11SCMP FORp$CLOSE1 SCMP0 FOR$CLOSEh1@<SCMP鱫1TPSCMP鱫1hdSCMP鱫1|xSCMP鱫1ːˌSCMPޱ1ԴΞˤˠGMTXڱ1ګⱫګܫ䱫ܫREFLECFVLDST WRKFILWRKFIL==1SCMP鱫SCMPޱ1ԴΞˤˠGMTXұ1ګⱫګ1ܫ䱫ܫ1qREFLEC XVBLGTFVLDST WRKFILʰP2PYIIː= P(ː)˚˛ː FOR$WRITE_IO}k~ FOR$IO_D_V FOR$IO_END FOR$WRITE_IF}k~ FOR$IO_D_V FOR$IO_ENDPnYQ2QZJˏ=YQQ2QYIˏZZ 2PZIˏJˏP=<QWRKFIL==1 SCMP汫1ԴΞˤˠGMTX10REFLEC@REFLEC2P@f,֫ԴΞTPGMTXtXVBLGTqkqkCikX˄XVrBLGTqkqkCik˔WRKFILˤWRKFILPPoQ2QZJˏ =nPQXQQoP2PZJ =nQP2XXXHːL2ZZ˴˸˼ LIB$INDEXPPmP |Ǻ-Xː ZrǺ-Xː ZpǺ1SCMP鱫ԴΞˤˠGMTX10REFLEC˔WRKFILҰPPoX2XZJˏ =nPmXk}k FVLDGT1XVBLST1SCMP汫1ԴΞGMTX10REFLEC@REFLEC˔WRKFILȫġsưƫȞ84VARSCN1TXVBLGT̰skqkCikȫġȫưƫȞ84VARSCN1TXVBLGTnskqkCikPnWX2XZJXX2PQJˏAP=WXPoW2WXHˏH=PWdWRKFIL( DTRCMD DTR$_SUCCESSSCMP DTR$COMMANDDTR$DTR DTR$CONTINUEVARSCNFVLDSTREFLECWRKFILXVBLGT DTR$PUT_VALUEGMTXFOR$OPEN FOR$CLOSE LIB$INDEXFVLDGTXVBLSTt$CODE$PDATA$LOCALMFILES8V DOLLRRCLACTFFGGVXCMDVARYIT DCTLD2Rd DAB_COMMONDTRCMN DTR$BUFFERS FOR$IO_END FOR$IO_D_R FOR$IO_D_V FOR$READ_IF FOR$WRITE_IF FOR$WRITE_IO*P aPVxPPfPPNPPPP PPP PP!P@PyPP$PY PPA PPPPP00{cb^[Z[[[\[}uPPPE(PNPaP} P|P PP+P1P";P OP ]P(cP"uPP P APjdPz oPwPPPPP+P  P P =PfP>P.PPPPXP^PdP+nPtPPWPP P(P 1POPDmPqPTPRPPP[P P P4 PCR Po Pov Pl P[ P4 P P P Pv P- PD PJ P` Pf P|| P Pa P PE P P PA P,3 PL PR Pj PD PM P P P" PI) P$, P!y P P4 PD P P] P?. P1; P$L PY P_ PU P P PP P P{>PphPPWPKP0P P&P3P^PqP~PPPPPww1@1';H011DTwRFCT01 5-Sep-1986 15:00 5-Sep-1986 15:00VAX FORTRAN V4.4-177PCMDVALTXTRPVRPFOPINSOPINRROPINRUOPOUTSOPOUTRCLSOUTCLSINPENAOUTENAINPDISINPDISOUTEDTINPFMTOUTVALOUTCMPFRMLENFRMTRMFRM!!xP P>P0   0 0468:<>:<-<:BBxB$0:<p- (0, 0FH >2090  J @0FH >G0  J N0yU0\0c0j0q0x0FHLNPR>VTBTV00TVp0NLZRP\FH^`bd>^`pbdpZ\z0PR.PRp0F8LNPR>468hj>hjp\Pp[Ь 1PPMQ2QQVAf Af=LPRPQ2QR Bˏ=PQ84SCMP WXVXY2XP@QQ Q~P@ː=<X2YYYX HːYHːLP DTR$COMMAND\DTR$DTR1h DTR$CONTINUE豧1{tpSCMPY1P9@PPZZ ZP@.°XXP2PP@PXVP P~2XRRBː=<X2VXXP @ːXHːLP DTR$COMMAND\DTR$DTR1h DTR$CONTINUEᱧ1ZXZh DTR$CONTINUE=ZX1XnPQ2QRB.X=PQPQ2VRB:QPQQV2VRB =PQX.BiPRVXPQPX2RP2QSC@R=XQnQRXRn2RR B=QX$ FOR$READ_IF  FOR$IO_D_R FOR$IO_END1ˈ˄|SCMPᱫ1İưȞ˜˘VARSCN12XH V HHZZVZP2PP@PP P~2ZQQAː=<Z2VVVZ Jː| VHːLP DTR$COMMAND1\DTR$DTR1PH`:H`?9H`PPPPXVXh DTR$CONTINUE=XV˸FVLDSTREFLECWRKFILnPV2VXHˏ=PVPPV2VXHHˏ=PVPPnV2VVFˏ Fˏ=mPWRKFILp h DTR$CONTINUE1h DTR$CONTINUE걧1SCMP00cccYTADATADATADATADATADATA}VY1İưȞ˜˘VARSCNԵ12P@f 1 @@XXZXP2PP@fPP P~2XQQAː=<X2ZZZX Hː| ZHːLP DTR$COMMAND뱧\DTR$DTR1h DTR$CONTINUE䱧챧1 XVBLGTREFLECWRKFILP2PZJXX  X3XJ= P)~ ^( n(~( nQ^, FOR$WRITE_IO}k~ FOR$IO_D_V FOR$IO_ENDb $ DTR$PUT_VALUEp 1M1D\DTR$DTR40SCMP~ᱫ1İưȞ˜˘VARSCN12P@f 1 @@ZZXZP2PP@fPP P~2ZQQAː=<Z2XXXZ Jː| XHːLP DTR$COMMAND뱧\DTR$DTR1h DTR$CONTINUE䱧챧1REFLECWRKFIL,n PbX2XP@ˏZZ XԐZ~P@b=OX2XXHbLP DTR$PUT_VALUEp 1w1n\DTR$DTRHDSCMPWִΞ\XGMTX屫12P@@fˌ|FOR$OPENP1g1ˤˠSCMP鱫X˸˴SCMP汫XִΞ\XGMTX䱫12P@QQ ZZZQڞ@fFOR$OPENP1Xg1SCMP鱫ִΞGMTX屫12P@@fH8FOR$OPENP11`\SCMP鱫ִΞGMTXб1 PPXXXP2P@@fˀpFOR$OPENP11ˬ˨SCMP˼ FOR$CLOSE1SCMP FOR$CLOSEg1SCMP鱫1SCMP鱫1SCMP鱫1($SCMP鱫1<8SCMPޱ1ִΞPLGMTXڱ1ܫ䱫ܫޫ汫ޫpREFLECˀFVLDSTWRKFILWRKFIL==1˔ːSCMP鱫˨ˤSCMPޱ1ִΞPLGMTXұ1ܫ䱫ܫ1ޫ汫ޫ1pREFLEC˸XVBLGTˀFVLDSTWRKFILʰP2PXHHː= P(ː)˚˛ː FOR$WRITE_IO}k~ FOR$IO_D_V FOR$IO_END FOR$WRITE_IF}k~ FOR$IO_D_V FOR$IO_ENDPnXQ2QZJˏ=XQQ2QXHˏZZ 2PZHˏJˏP=<QWRKFIL==1SCMP汫1ִΞPLGMTX1REFLECREFLEC2P@f,ثִΞGMTX XVBLGTqkqkCikW0XVBLGTqkqkCik@WRKFILPWRKFILPPoQ2QZJˏ =nPQWQQoP2PZJ =nQP2WWWHːL2ZZ`dh LIB$INDEXPPmP |ɺ-Wː Zrɺ-Wː Zpɺ1xtSCMP鱫ִΞPLGMTX1REFLEC@WRKFILҰPPoW2WZJˏ =nPmWk}k ˈFVLDGT1˘XVBLST1ˬ˨SCMP汫1ִΞ˼GMTX1REFLECREFLEC@WRKFILȫġȫưƫȞVARSCN1XVBLGT̰skqkCikȫġȫưƫȞVARSCN1XVBLGTnskqkCikPnYW2WZJWW2PQJˏAP=Y<WPoW2WYIˏI=PWWRKFIL* DTRFCT DTR$_SUCCESSSCMP DTR$COMMANDDTR$DTR DTR$CONTINUEVARSCNFVLDSTREFLECWRKFILXVBLGT DTR$PUT_VALUEGMTXFOR$OPEN FOR$CLOSE LIB$INDEXFVLDGTXVBLST$CODE$PDATA$LOCALMFILESDTRCMN8V DOLLRRCLACTFFGGVXCMDVARYIT DCTLD2Rd DAB_COMMON DTR$BUFFERS FOR$IO_END FOR$IO_D_R FOR$IO_D_V FOR$READ_IF FOR$WRITE_IF FOR$WRITE_IO!P:P |PwPPP P P PP#P3PPPPP$PI PP1 PPPPPP!P)PE8P^PqPi PP PPx PMPTP ^P iP(00cb^[Z[[[\[}oP"PP )P ;P aPqPV PPPPPP+P )P+P ]PPEPF PP PCPPPP+PLPP/PMPBkPoPRPTPPP[PPP0PCNPkPorPpP[P4PPP P P) P@ PF P\ Pb Px P} Pe P PI P P PA P,/ PH PN Pf P D PM P P P" PI% P$( P!u P P8 PD P P] P?* P17 P$H PU P[ PU P P P P P P{: Pd P P[ PO P4 P P"P</PZPmPzPPPP Pww1p';H011DTRFIN01 5-Sep-1986 15:00 5-Sep-1986 15:00VAX FORTRAN V4.4-177-PP[k DTR$FINISH DTRFIN DTR$_SUCCESS DTR$FINISH$CODE$PDATA$LOCALd DAB_COMMON DTR$BUFFERSww1@l';H011DTRINI01 5-Sep-1986 15:00 5-Sep-1986 15:00VAX FORTRAN V4.4-177Pd* *** DATATRIEVE INITIALIZATION FAILED. ***PP[DTR$INITP\2\P SS$_NORMALQPQ(UVT100  FOR$WRITE_SF2\~ FOR$IO_W_V F OR$IO_END DTRINIDTR$INIT DTR$_SUCCESS SS$_NORMALUVT100L$CODE;$PDATA8$LOCALd DAB_COMMON DTR$BUFFERS FOR$IO_END FOR$IO_W_V FOR$WRITE_SF"P(ww1';H010ERRCX01 5-Sep-1986 15:02 5-Sep-1986 15:02VAX FORTRAN V4.4-177:PT  Q'P[PRTQRS2STDDSRDbP1SRDbP=QSPSR2P@@VARSCNǵTSSSSSkERRMSGSTt ERRCXERRMSGVARSCN$CODE$PDATA8$LOCALZ$BLANK CONS-P*8P:P,APHPLPNPTP]PdPpPvPbP[P6P!PP,PP"PPww1';H011ERRMSG01 5-Sep-1986 15:02 5-Sep-1986 15:02VAX FORTRAN V4.4-177P  *** ERROR *** +FIRST CHARACTER IS ILLEGAL+TOO MANY INDIRECT FILE LEVELS+UNIDENTIFIED COMMAND0+ILLEGAL CHARACTER IN DECLARATION VARIABLES LIST1+VARIABLES IN DECLARATION NOT SEPARATED BY COMMAS+UNBALANCED PARENTHESIS+STACK 1 OVERFLOW+ILLEGAL EXPRESSION+STACK 2 OVERFLOW++FUNCTION IS ILLEGAL FOR INTEGRAL (BASE 10, 8, AND 16) ARGUMENTS0+ILLEGAL FUNCTION FOR MULTIPLE PRECISION NUMBERS(+FUNCTION IS ILLEGAL WITH ASCII ARGUMENT1+FUNCTION IS ILLEGAL WITH REAL (DECIMAL) ARGUMENT"+SQUARE ROOT HAS NEGATIVE ARGUMENT2+MULTIPLE PRECISION EXPONENTIATION, NEGATIVE POWER+VARIABLE UNDEFINED+ILLEGAL USE OF = SIGN+UNIDENTIFIED FUNTION+ILLEGAL BASE SPECIFICATION+ILLEGAL CHARACTER +. MAY ONLY BE USED WITH BASE 10/+MULTIPLE PRECISION LIMIT OF 99 DIGITS EXCEEDED+ATTEMPT TO DIVIDE BY ZERO&+ILLEGAL REAL EXPONENT FIELD SPECIFIED+NOTIFY PETER BAUM X7751+ILLEGAL CONVERSION ATTEMPTED +READ ERRORPP[kUVT100 FOR$WRITE_SF FOR$IO_ENDPP FOR$WRITE_SF FOR$IO_END11 FOR$WRITE_SF FOR$IO_END1N FOR$WRITE_SF FOR$IO_END1w FOR$WRITE_SF FOR$IO_END1 FOR$WRITE_SF FOR$IO_END1 FOR$WRITE_SF FOR$IO_END1 F00cccYTADATADATADATADATADATAOR$WRITE_SF FOR$IO_END19 FOR$WRITE_SF FOR$IO_END1Z FOR$WRITE_SF FOR$IO_END1r FOR$WRITE_SF FOR$IO_END1 FOR$WRITE_SF FOR$IO_END1 FOR$WRITE_SF FOR$IO_END1 FOR$WRITE_SF FOR$IO_END1 FOR$WRITE_SF FOR$IO_END1 FOR$WRITE_SF FOR$IO_END11 FOR$WRITE_SF FOR$IO_END1v FOR$WRITE_SF FOR$IO_END1 FOR$WRITE_SF FOR$IO_END1 FOR$WRITE_SF FOR$IO_END1 FOR$WRITE_SF FOR$IO_END1- FOR$WRITE_SF FOR$IO_END1b FOR$WRITE_SF FOR$IO_ENDx FOR$WRITE_SF FOR$IO_END FOR$WRITE_SF FOR$IO_END FOR$WRITE_SF FOR$IO_END FOR$WRITE_SF FOR$IO_END FOR$WRITE_SF FOR$IO_ENDn ERRMSGUVT100G$CODE$PDATA$LOCAL FOR$IO_END FOR$WRITE_SF+P-P/P!1P=3PY5Pu7P9P;P=P?PAPCP9EPUGPqIPKPMPOPQPSP^P`P*bPFdPbfP~hPkPTPPPPmPQP5+PGPcPPPPPqPU P9'PCP_P{PPPPvP^PFP. /Pww1I';H01/FLIP01 5-Sep-1986 15:02 5-Sep-1986 15:02VAX FORTRAN V4.4-177PP<[2PP$Ь ޫPFOR$INI_DES1_R2ç PQR2QSCbT UQU2UUEbCb SQS2SSTCb=PQY <FLIP]$CODE$PDATA,$LOCALFOR$INI_DES1_R2&P5ww1`i(;H010FNAME01 5-Sep-1986 15:05 5-Sep- 1986 15:05VAX FORTRAN V4.4-177dP nQMIN MAX AVG SUM STD IF AND IOR NOT CNT NPV LKP LKN LKE XOR EQV MOD REM SGN IRR RND PMT PVL AVE CHS P<d[Ь PQR2PSS2RTTSUDaE=RP =PF <FNAMEO$CODE$PDATAx$LOCAL :P FPww1);H010FNDRC01 5-Sep-1986 15:08 5-Sep-1986 15:08VAX FORTRAN V4.4-177-PP  P[ЬVf2PzPQ{PQQQQWkPƏPPPPXYf1 f11X 1X1W1W1 PP2PPWQQ2QQXRR2RRQPQRQZ f2~ FOR$READ_SF FOR$IO_X_DA FOR$IO_ENDfZ2~ FOR$READ_DU FOR$IO_X_SE FOR$IO_ENDP@Q(naZ2~ FOR$WRITE_DU FOR$IO_X_SE FOR$IO_END( FOR$CLOSEf1 11X1X1W 1W1PP2PP WW2WWXX2XXWPWXWW2~ FOR$WRITE_DU FOR$IO_X_SE FOR$IO_END2~ FOR$WRITE_SF뚏nXWP@Z FOR$IO_B_RXW FOR$IO_END4 FOR$CLOSE FNDRC FOR$CLOSE1$CODE$PDATA$LOCALMFILES FOR$IO_END FOR$IO_B_R FOR$IO_X_DA FOR$IO_X_SE FOR$READ_SF FOR$READ_DU FOR$WRITE_SF FOR$WRITE_DUP #PUP\PcPkPtP}PPPPiP*PPP!PU$P3*P JP ^PgPoPxPPPPP!PaPIP:!Pww1';H011FOUREA01 5-Sep-1986 15:02 5-Sep-1986 15:02VAX FORTRAN V4.4-177DP0(P[^PQPPP=QPM00cb^[Z[[[\[}(RSTUTR1RYY PP~^0YPP~^4,XVBLGT^TZZ PP~^@ZPP~^D<XVBLGT^Y PP~^@YY~^D<XVBLST^Z PP~^0ZZ~^4,XVBLST^RPPZZ PP~^0ZPP~^4,XVBLGT^TPPYY PP~^@YPP~^D<XVBLGT^Z PP~^@ZZ~^D<XVBLST^Y PP~^0YY~^4,XVBLST^UPRPPRPYYPPR=STYY1YMYRRMRRDIARGRP MTH$SINCOS_R5VQVP ZVYVUUTT PP~^0TPP~^4,XVBLGT^UUU PP~^PUPP~^TLXVBLGT^ekPe RbRPek ReWaWR}PkVRR PP~^@RPP~^D<XVBLGT^akbkT PP~^@TT~^D<XVBLST^R PP~^`RR~^d\XVBLST^VPPRR PP~^@RPP~^D<XVBLGT^abU PP~^@UU~^D<XVBLST^R PP~^`RR~^d\XVBLST^=ZVs=Y8Y1YV(VYZZ PP~^0Z PP~^4,XVBLGT^fVkZ PP~^0ZZ~^4,XVBLST^=Y FOUREAXVBLGTXVBLSTMTH$COSMTH$SIN$CODE$PDATA$LOCAL MTH$SINCOS_R5* P "PNPNPPPbww1ݭ';H011FRMEDT01 5-Sep-1986 15:02 5-Sep-1986 15:02VAX FORTRAN V4.4-177P {= Output File:nnl P n  INDEX@  INDEX@  TfR T V X Z \ Z X f f  Q$Pl [Ь➻S INDEXݰPTTF2TUEc{40INDEXPV2VP@c=1VF1V1VT1TVPP1PQQPPQQWE*11<UVT100LUVT100 FOR$WRITE_SF FOR$IO_END' FOR$READ_SFPUX2XP@ FOR$IO_B_R=UX FOR$IO_END۰PPOU2UUE E=NP\ FOR$CLOSEdASSIGN{nPU2UXH=PU=UX2XP PYI˒IːQ1QP2QZZPRBJ=Q>Iː߫tpIN2AS, FOR$ENCODE_MFI˒Y2Y~ FOR$IO_W_V FOR$IO_ENDðYT`Ea bjPQ2QZJZZ Y2YR3ZB_=PQ/ FOR$WRITE_SFR2RP@_ FOR$IO_B_R=YR FOR$IO_END=UX\ FOR$CLOSE1V螼ˀ|VARSCNPWVU2PXXR2UYRYUTQ2QQAcI=VU XHːߴH˒߰X2XURUE=X=P1PR2RX XH˒HːU=PRHː߰H˒XPPXXPP2P P@ː߰@˒߰RP2RRR2PXRXH=PP2PXRXPTU2UUEcH=WP%nRP2PWGc=RPTPP갫RWX2WUUV2XYVYI/XTQ2QZJc/QJcI=X UEː߫ذE˒߫U=RWP螼ˀ|VARSCN൫xPR2RWG=PR˜REFLECطTPTRRP2RWGcG=TRPRˬWRKFILPPoT2TWG_ =nPP2RW2PUE_GRnR=TPnPT2RW2TUEcGRnR=PTnRP2PTDDc=RPPߣPoR2RTDc =nPR1  FRMEDTINDEXUVT100 FOR$CLOSEASSIGNIN2ASVARSCNREFLECWRKFIL $CODE4$PDATA(!$LOCALDCTL FOR$IO_END FOR$IO_B_R FOR$IO_W_V FOR$READ_SF FOR$WRITE_SF FOR$ENCODE_MF!P5P>kREFLEC00cccYTADATADATADATADATADATA PPRRPP2RR2PP@PPBSPBQPBSPRSRQRPRR3R  FVLDGTREFLEC$CODE$PDATA$LOCALBITS.FVLDMTYPFMTBFR5 PRXPePmPPPPPww1*;H011FVLDST01 5-Sep-1986 15:09 5-Sep-1986 15:09VAX FORTRAN V4.4-177PP[P}>>kREFLEC PPQQPP2QQ2PP@A@A@ASۙ RRSRSR RSTS@AT@AR@AS FVLDSTREFLEC$CODE$PDATA$LOCALBITS.FVLDMTYPFMTBFR/PP)PPP P P ww1);H011FVPEEK01 5-Sep-1986 15:09 5-Sep-1986 15:09VAX FORTRAN V4.4-177P [ PP PPQQQQQPPPQR2QSCC=PQRRRPPPPRPP PRRPPRR b FVPEEKz$CODE$PDATA$LOCALBITS.FVLDM>PGPhPww1@a';H011GETFNL01 5-Sep-1986 15:00 5-Sep-1986 15:00VAX FORTRAN V4.4-177P,P P INDEX@ INDEX@P [Ь }  INDEX͵PPN2PQRAbPSS>48(GN2SP@b@<INDEX޵PPPS> 48(GNX GETFNLINDEXGN$CODE$PDATAL$LOCAL-P4PuPzPww1 (;H011GETLOG01 5-Sep-1986 15:05 5-Sep-1986 15:05VAX FORTRAN V4.4-177P nQ.GT..LT..EQ..NE..GE..LE.P|[ЬPQRQ PST2 QUU2TVFbEFEFEFET=ST=Q I |GETLOGl$CODE$PDATA0$LOCAL:P!CPLPUP[Pww1';H011GETNNB01 5-Sep-1986 15:02 5-Sep-1986 15:02VAX FORTRAN V4.4-177RP[RTRPTQP2P@=Qa GETNNBN$CODE$PDATA$LOCALZ$BLANK CONS P /AP ww1@z);H011GETTTL01 5-Sep-1986 15:07 5-Sep-1986 15:07VAX FORTRAN V4.4-177P   P [ЬPQR2QSCb=PQ1 0SYS$QIOWm GETTTLSYS$QIOWF$CODE$PDATA\$LOCALMODPUBTTCHNww1G';H010GMADD01 5-Sep-1986 15:02 5-Sep-1986 15:02VAX FORTRAN V4.4-177PPP[PPPPPRPPP PPSPPPPPTUV WXVPPPYXYZRZ~^kXVBLGT^SZ~^XVBLGT^aTZ~^$ XVBLST^=WX=UVf GMADDXVBLGTXVBLST$CODE$PDATAL$LOCALww1';H010GMPRD01 5-Sep-1986 15:02 5-Sep-1986 15:02VAX FORTRAN V4.4-177[P$PP$[^PPPPPRPPP PPPPPPP$V WXXPPPYVYP|PZZ~^kXVBLST^UTTYPTQPQVQSPR~^XVBLGT^S~^$ XVBLGT^dܰZ~^kXVBLGT^`ܫZ~^kXVBLST^=UT=WX`=VQh GMPRD XVBLSTXVBLGT$CODE$PDATAT$LOCAL00cb^[Z[[[\[} ww1`E';H010GMSUB01 5-Sep-1986 15:02 5-Sep-1986 15:02VAX FORTRAN V4.4-177PPP[PPPPPRPPP PPSPPPPPTUV WXVPPPYXYZZR~^XVBLGT^ZS~^$ XVBLGT^bkZT~^XVBLST^=WX=UVf GMSUBXVBLGTXVBLST$CODE$PDATA8$LOCALww1Z);H 01/GMTX01 5-Sep-1986 15:07 5-Sep-1986 15:07VAX FORTRAN V4.4-177P PP[Ь>> $>(>,VARSCNȵ2 P@: >> $>(>,VARSCNP Z GMTXVARSCN$CODE$PDATA8$LOCAL?P@JP5|Pww1`);H01-GN01 5-Sep-1986 15:08 5-Sep-1986 15:08VAX FORTRAN V4.4-177P nP [Ь PQRSTUTV2TWGeWWWW-RW QQW W+W-PPW+W-W+W-W0W9   X0WWX =STVPPPPR E GN$CODE$PDATA$LOCAL]:Pb?PGPMPRPDWP\PcP hP4mP/rP$wP|P PP ww1 ';H011GTMUNG01 5-Sep-1986 15:03 5-Sep-1986 15:03VAX FORTRAN V4.4-177aP QP|[ЬP"1z1"(1*1:@1_1//;#QQ*11QR2RSCC`=QR?H&NQ""Q09 VQRQ"RSTTURUV2UU2VVF`E`=STEQ R |GTMUNG9$CODE$PDATA$LOCALMODPUBP)P0P 8PAPHP QP[PbPehPmP'uP{PPPPPPhPcP]PPP P>Pww1@';H010GTPRD01 5-Sep-1986 15:02 5-Sep-1986 15:02VAX FORTRAN V4.4-177VP PP [^PPPPPRPPP PPSPPPPP$V WXXPPPVP|PYY~^kXVBLST^ZUUPPPXPQVPTQR~^XVBLGT^TS~^$ XVBLGT^dY~^kXVBLGT^`Y~^kXVBLST^=ZU=WXe=VVh GTPRD XVBLSTXVBLGT$CODE$PDATAP$LOCALww1+L01/HELP0110-Sep-1986 12:5110-Sep-1986 12:51VAX FORTRAN V4.4-177P  READONLYSHAREDK:KEYPAD.PIC(P8To get HELP use the command Hn where n is 0 thru 8 for HELP 0 through HELP 8.HELP 0 - This screen3HELP 1 - Summary of many PortaCalc commands (terse)HELP 2 - Data Entry / EditingHELP 3 - Calculation Control&HELP 4 - Cursor Motion and PositioningHELP 5 - Cell Copy(HELP 6 - Add/Subtract Absolute Rows/Cols.HELP 7 - Add/Subtract Relocting, Rows or Cols.1HELP 8 - Change Display Size, Col Size, Load Data!HELP 9 - Keypad Diagram for VT100HELP 2 - Data Entry / Editing+E expression Enter expression into cell.0Formulas available (+ SQRT,SIN,COS,LOG,EXP,ATAN),SUM[variables] Sum of all arguments(MAX[variables] Max of arguments(MIN[variables] Min of arguments,AVG[variables] Average of arguments2STD[variables] Standard deviation squared)IF [V1.rel.V2] statement | else-statement8In the first 5 cases, arguments are variable names separated by8commas, or variable range00cccYTADATADATADATADATADATAs, or mixtures separaged by columns.".REL." is any of the 6 forms: .EQ. Equal.NE. Not Equal).GT. Greater than (V1 greater than V2)#.LT. Less than (V1 less than V2)+.GE. Greater than or Equal to (V1 >= V2)(.LE. Less than or Equal to (V1 =< V2)8*XV filename V1 Extract value at cell V1 in saved1 sheet stored in filename.4ED `string1`string2` Replace string1 with string27 in current cell formula. Either6 string may be null if desired.HELP 3 - Calculation Control%R Recalculate all of the sheet.7RM Recalculate manually only until R command given8RAF Recalculate sheet, without constant recalculation8K Drop into Calc program straight. *E retu rns to sheet)X Exit to operating system.1V Redraw screen with normal formats2VF Redraw screen showing all formulas8VM Dont redraw screen until a V or VF is given ZA Zero whole sheet8ZE V1:V2 Zero variables in a row or column in range from8 cell V1 to cell V2 (V1,V2 = name s of cells)8@filespec Read filespec and execute commands as though typed in.8PD Put out current Display sheet (Formulas)8PP Put out current Physical sheet (Formulas)7PDN Put out current Display sheet (Numbers)8PPN  Put out current Physical sheet (Numbers).W Write screen to hardcopy file.&HELP 4 - Cursor Motion and Positioning8L variable-name Position cursor at variable-name%M1 (Move up after Enter)'M2 (Move down after Enter)'M3 (Move left after Enter)(M4 (Move right after Enter)1 (Move up)2 (Move down)3  (Move left)4 (Move right)3OA variable Reset origin of display to variable8OR variable Reset display down and right to start wi th variable,8 changing only region down and right of cursor8DL V1:V2 Rn:m point at display coordinates (n,m) (col,row)8 and, going left to right along a Row, copy in8 variables V1 through V2 (actually, point those8 display sheet cells at variables V1 thru V2).8DL V1:V2 Cn:m point at display coordinates (n,m) (col,row)8 and, going top to bottom along a Column, copy in8 variables V1 through V2 (actually, point those8 display sheet cells at variables V1 thru V2).8DF V1:V2 [format] Set display format of range V1:V 2 to format8 (format A means display formula.)HELP 5 - Cell Copy8CA V1:V2 V3:V4 Copy all cell attributes from V1:V2!  to V3:V4.0CV V1:V2 V3:V4 Copy numeric values only1CD V1:V2 V3:V4 Copy Display Formats only8CF V1:V2 V3:V4 Copy Formulas only (no relocation)8CR V1:V2 V3:V4 Copy all cell attributes as in CA but8 relocate cell names to new location8 from old one. Only relocate names right8 of or below the cursor or on sam e row/col8 with cursor (cells above or left of cursor+ are NOT relocated).5 If V2 is missing, V1 is replicated to V3:V4 range.(HELP 6 - Add/Subtract Absolute Rows/Cols6AA number R Add "number" rows ahead of the current8 physical position, moving all cells below8 the current cell down by "number" rows and8 losing the physical sheet`s bottom "number"8 rows` contents, NOT adjusting variable r eferences8 where the variables are in the moved range8 00cb^[Z[[[\[} and are not the position independent (P## or D## forms) type.8AA number C Add "number" columns ahead of the current8 physical position, moving all cells right of8 the current cell right by "number" columns and8 losing the physical sheet`s bottom "number"8 columns` contents, NOT adjusting variabl e references8 where the variables are in the moved range8 and are not the position independent (P## or D## forms) type..HELP 7 - Add/Subtract Relocting, Rows or Cols.6AR number R Add "number" rows ahead of the current8 physical position, moving all cells below8 the current cell down by "number" rows and8 losing the physical sheet`s bottom "number"8 rows` contents, adjusting variable references8  where the variables are in the moved range8 and are not the position independent (P## or D## forms) type.8AR number C Add "number" columns ahead of the current8 physical position, moving all cells right of8 the current cell right by "number" columns and8 losing the physical sheet`s bottom "number"8 columns` contents, adjusting variable references8 where the variables are in the moved range8  and are not the position independent (P## or D## forms) type.1HELP 8 - Change Display Size, Col Size, Load Data8DW N,M Set column N on display to be M characters wide8DB n,m Set number of columns displayed on screen8 to n, number of rows displayed to m.8GD Reload sheet down/right onto display coords.8GP Reload sheet down/right onto physical coords.7< Rewind the current Portacalc input file-* any text Comment. (For command files.)8Hn Display a screen of help. n may be 0 to 9, default 0.8F filename/nnnn Read filename, skipping nnnn lines8 if the "/nnnn" is there, and load8 contents onto the currently displayed8 screen, broken into columns as the1 current screen is set up.%EN expression - Insert expression at  current pos.5M1,M2,M3, or M4 - Motion up, down, left, right (auto)2DL var1:var2 Rn:m (or Cn:m) - Display Loc phys to  row/col n-m+DF var1:var2 [format] - set display format. A or L shows text, else #0DT var1:var2 F or I - Set display number type to flt or int4DW n,m - set width of column n of display to m chars5DB c,r - Set display bounds at c cols, r rows (chars)(L var - Move cursor to var named (phys.)$ OA var or OR var=move displ. origin5V - redraw screen. VF - Disply. formulas. VM=no auto. redraw4K - Drop into interactive calc. *E returns to sheet.1ZA - zero all. ZE var1:var2 - zero var1 thru var23X - exit program. W write screen to file or printer4CV v1:v2 v3:v4 copy value from v1:v2 to v3:v4 range;CR=copy and relocate vars.3CD v1:v2 v3:v4 copy display format. CF=copy formula . CA=copy all8P Put screen to file. G=get screen from file at curr.loc*1,2,3,4 - move cursor Up,Down,Left,Right. $A[A/R]n[R/C] Add abs/reloc n Row/Col5Variable ranges are var1[:var2]. Var names P#+n#+m or7D#+n#+m are current Phys or Display locs + or - offsets5Expressions may use multiple stmts, use \ separators.4Use std FORTRAN function names + MIN, MAX, AVG, STD5or SUM. IF stmt format is IF [v1.REL.v2]yes-expr|else expr.&Rels are .LT.,.GT.,.EQ.,.NE.,.GE.,.LE.8R Recompute sheet. RM Recompute Manually only (R resets)|P x            00cccYTADATADATADATADATADATA     $  (  ,    0  4  8  <  @  D    H  L  P  T  X  `i(` FDBSET@ i FDBSET@ o(8o ASSIGN@ x  \ P|[UVT100UVT100$UVT100ϵ1 1PP $UVT100 FOR$WRITE_SF FOR$IO_END4UVT100 FOR$WRITE_SF FOR$IO_ENDDUVT100 FOR$WRITE_SF FOR$IO_ENDTUVT100 FOR$WRITE_SF FOR$IO_ENDdUVT100) FOR$WRITE_SF FOR$IO_ENDtUVT100I FOR$WRITE_SF FOR$IO_END˄UVT100h FOR$WRITE_SF FOR$IO_END˔UVT100 FOR$WRITE_SF FOR$IO_ENDˤUVT100 FOR$WRITE_SF FOR$IO_END˴UVT100 FOR$WRITE_SF FOR$IO_ENDUVT100 FOR$WRITE_SF FOR$IO_ENDUVT1006 FOR$WRITE_SF FOR$IO_END1$UVT100Z FOR$WRITE_SF FOR$IO_END4UVT100z FOR$WRITE_SF FOR$IO_ENDDUVT100 FOR$WRITE_SF FOR$IO_ENDTUVT100 FOR$WRITE_SF FOR$IO_ENDdUVT100  FOR$WRITE_SF FOR$IO_ENDtUVT1005 FOR$WRITE_SF FOR$IO_END˄UVT100` FOR$WRITE_SF FOR$IO_END˔UVT100 FOR$WRITE_SF FOR$IO_ENDˤUVT100 FOR$WRITE_SF FOR$IO_END˴UVT100 FOR$WRITE_SF FOR$IO_ENDUVT1004 FOR$WRITE_SF FOR$IO_ENDUVT100v FOR$WRITE_SF FOR$IO_ENDUVT100 FOR$WRITE_SF FOR$IO_ENDUVT100 FOR$WRITE_SF FOR$IO_ENDUVT100 FOR$WRITE_SF FOR$IO_ENDUVT100 FOR$WRITE_SF FOR$IO_END$UVT100  FOR$WRITE_SF FOR$IO_END4UVT100; FOR$WRITE_SF FOR$IO_ENDDUVT100f FOR$WRITE_SF FOR$IO_ENDTUVT100 FOR$WRITE_SF FOR$IO_ENDdUVT100 FOR$WRITE_SF FOR$IO_ENDtUVT100 FOR$WRITE_SF FOR$IO_END˄UVT100I FOR$WRITE_SF FOR$IO_END1$UVT100 FOR$WRITE_SF FOR$IO_END4UVT100 FOR$WRITE_SF FOR$IO_ENDDUVT100 FOR$WRITE_SF FOR$IO_ENDTUVT100 FOR$WRITE_SF FOR$IO_ENDdUVT100A FOR$WRITE_SF FOR$IO_ENDtUVT100 FOR$WRITE_SF FOR$IO_END˄UVT100 FOR$WRITE_SF FOR$IO_END˔UVT100 FOR$WRITE_SF FOR$IO_ENDˤUVT100 FOR$WRITE_SF FOR$IO_END˴UVT100_ FOR$WRITE_SF FOR$IO_ENDUVT100 FOR$WRITE_SF FOR$IO_ENDUVT100 FOR$WRITE_SF FOR$IO_ENDUVT100  FOR$WRITE_SF FOR$IO_ENDUVT100O  FOR$WRITE_SF FOR$IO_ENDUVT100k  FOR$WRITE_SF FOR$IO_ENDUVT100  FOR$WRITE_SF FOR$IO_END$UVT100  FOR$WRITE_SF FOR$IO_END4UVT100  FOR$WRITE_SF FOR$IO_ENDDUVT100Y  FOR$WRITE_SF FOR$IO_END1$UVT100  FOR$WRITE_SF FOR$IO_END4UVT100  FOR$WRITE_SF FOR$IO_ENDDUVT100  FOR$WRITE_SF FOR$IO_ENDTUVT100  FOR$WRITE_SF FOR$IO_ENDdUVT100@  FOR$WRITE_SF FOR$IO_ENDtUVT100j  FOR$WRITE_SF FOR$IO_END˄UVT100 00cb^[Z[[[\[} FOR$WRITE_SF FOR$IO_END˔UVT100  FOR$WRITE_SF FOR$IO_ENDˤUVT100  FOR$WRITE_SF FOR$IO_END˴UVT100  FOR$WRITE_SF FOR$IO_ENDUVT100  FOR$WRITE_SF FOR$IO_ENDUVT100B  FOR$WRITE_SF FOR$IO_ENDUVT100  FOR$WRITE_SF FOR$IO_ENDUVT100  FOR$WRITE_SF FOR$IO_ENDUVT100  FOR$WRITE_SF FOR$IO_ENDUVT100P  FOR$WRITE_SF FOR$IO_END$UVT100  FOR$WRITE_SF FOR$IO_END4UVT100  FOR$WRITE_SF FOR$IO_ENDDUVT100 FOR$WRITE_SF FOR$IO_ENDTUVT100[ FOR$WRITE_SF FOR$IO_ENDdUVT100 FOR$WRITE_SF FOR$IO_ENDtUVT100 FOR$WRITE_SF FOR$IO_END˄UVT100( FOR$WRITE_SF FOR$IO_END1$UVT100f FOR$WRITE_SF FOR$IO_END4UVT100{ FOR$WRITE_SF FOR$IO_ENDDUVT100 FOR$WRITE_SF FOR$IO_ENDTUVT100 FOR$WRITE_SF FOR$IO_ENDdUVT100 FOR$WRITE_SF FOR$IO_ENDtUVT100F FOR$WRITE_SF FOR$IO_END˄UVT100 FOR$WRITE_SF FOR$IO_END˔UVT100 FOR$WRITE_SF FOR$IO_ENDˤUVT100 FOR$WRITE_SF FOR$IO_END˴UVT100K FOR$WRITE_SF FOR$IO_ENDUVT100 FOR$WRITE_SF FOR$IO_ENDUVT100 FOR$WRITE_SF FOR$IO_ENDUVT100 FOR$WRITE_SF FOR$IO_END1$UVT100> FOR$WRITE_SF FOR$IO_END4UVT100i FOR$WRITE_SF FOR$IO_ENDDUVT100 FOR$WRITE_SF FOR$IO_ENDTUVT100 FOR$WRITE_SF FOR$IO_ENDdUVT100 FOR$WRITE_SF FOR$IO_ENDtUVT100_ FOR$WRITE_SF FOR$IO_END˄UVT100 FOR$WRITE_SF FOR$IO_END˔UVT100 FOR$WRITE_SF FOR$IO_ENDˤUVT100) FOR$WRITE_SF FOR$IO_END˴UVT100H FOR$WRITE_SF FOR$IO_ENDUVT100 FOR$WRITE_SF FOR$IO_ENDUVT100 FOR$WRITE_SF FOR$IO_ENDUVT100  FOR$WRITE_SF FOR$IO_ENDUVT100J FOR$WRITE_SF FOR$IO_ENDUVT100 FOR$WRITE_SF FOR$IO_ENDUVT100 FOR$WRITE_SF FOR$IO_END$UVT100 FOR$WRITE_SF FOR$IO_END1$UVT1006 FOR$WRITE_SF FOR$IO_END4UVT100g FOR$WRITE_SF FOR$IO_ENDDUVT100 FOR$WRITE_SF FOR$IO_ENDTUVT100 FOR$WRITE_SF FOR$IO_ENDdUVT100 FOR$WRITE_SF FOR$IO_ENDtUVT100] FOR$WRITE_SF FOR$IO_END˄UVT100 FOR$WRITE_SF FOR$IO_END˔UVT100 FOR$WRITE_SF FOR$IO_ENDˤUVT100# FOR$WRITE_SF FOR$IO_END˴UVT100B FOR$WRITE_SF FOR$IO_ENDUVT100 FOR$WRITE_SF FOR$IO_ENDUVT100 FOR$WRITE_SF FOR$IO_ENDUVT100 FOR$WRITE_SF FOR$IO_ENDUVT100D FOR$WRITE_SF FOR$IO_ENDUVT100 FOR$WRITE_SF FOR$IO_ENDUVT100 FOR$WRITE_SF FOR$IO_END$UVT100  FOR$WRITE_SF FOR$IO_END1$UVT100, FOR$WRITE_SF FOR$IO_END4UVT100` FOR$WRITE_SF FOR$IO_ENDDUVT100 FOR$WRITE_SF FOR$IO_ENDTUVT100 FOR$WRITE_SF FOR$IO_ENDdUVT100# FOR$WRITE_SF FOR$IO_ENDtUVT100d FOR$WRITE_SF FOR$IO_END˄UVT1000cccYTADATADATADATADATADATA0 FOR$WRITE_SF FOR$IO_END˔UVT100 FOR$WRITE_SF FOR$IO_ENDˤUVT100 FOR$WRITE_SF FOR$IO_END˴UVT100S FOR$WRITE_SF FOR$IO_ENDUVT100 FOR$WRITE_SF FOR$IO_ENDUVT100 FOR$WRITE_SF FOR$IO_ENDUVT100 FOR$WRITE_SF FOR$IO_ENDUVT100Q FOR$WRITE_SF FOR$IO_END˔ FOR$CLOSEˬFDBSETASSIGN}  FOR$READ_SFk FOR$IO_X_DA FOR$IO_ENDUVT100} FOR$WRITE_SFk FOR$IO_X_DA FOR$IO_END=˔ FOR$CLOSE1 FOR$WRITE_SF FOR$IO_END4UVT100 FOR$WRITE_SF FOR$IO_ENDDUVT100 FOR$WRITE_SF FOR$IO_ENDTUVT1005 FOR$WRITE_SF FOR$IO_ENDdUVT100 FOR$WRITE_SF FOR$IO_ENDtUVT100 FOR$WRITE_SF FOR$IO_ENDUVT100 FOR$WRITE_SF FOR$IO_END˔UVT100 FOR$WRITE_SF FOR$IO_ENDˤUVT100 FOR$WRITE_SF FOR$IO_END˴UVT100. FOR$WRITE_SF FOR$IO_ENDUVT100 FOR$WRITE_SF FOR$IO_ENDUVT100+  FOR$WRITE_SF FOR$IO_ENDUVT100a  FOR$WRITE_SF FOR$IO_ENDUVT100  FOR$WRITE_SF FOR$IO_ENDUVT100  FOR$WRITE_SF FOR$IO_ENDUVT100" FOR$WRITE_SF FOR$IO_END$UVT1004! FOR$WRITE_SF FOR$IO_END4UVT100! FOR$WRITE_SF FOR$IO_ENDDUVT100! FOR$WRITE_SF FOR$IO_ENDTUVT100! FOR$WRITE_SF FOR$IO_ENDdUVT1001" FOR$WRITE_SF FOR$IO_ENDtUVT100h" FOR$WRITE_SF FOR$IO_END˄FUVT100" FOR$WRITE_SF FOR$IO_ENDUVT100 HELPUVT100 FOR$CLOSEFDBSETASSIGN9$CODE #$PDATAl$LOCAL FOR$IO_END FOR$IO_X_DA FOR$READ_SF FOR$WRITE_SF'PK0PB;P=P9?PAPMCPEPa GP IP KP MPPP P  P* PE6 P9BP-PPQPNrPww1@z+L010IN2AS0110-Sep-1986 12:5110-Sep-1986 12:51VAX FORTRAN V4.4-177P  P<[ЬPQ2PR Ba=P2PRRSPTTUUPUUUTUTU@U2SS3UCaTP=RD <IN2ASh$CODE$PDATA$LOCALDP HPQP ww16';H010INDEX01 5-Sep-1986 15:03 5-Sep-1986 15:03VAX FORTRAN V4.4-177`P P [ЬQR2QSCbQPCbQP=QPD INDEXA$CODE$PDATA$LOCAL #P.Pww1(;H011INPOST01 5-Sep-1986 15:03 5-Sep-1986 15:03VAX FORTRAN V4.4-177!P50@P 86:Q(F(A(F2( R( (-(A(1'R( QnP|@[R@BRkNEXTEL߫FOR$STOP@1PPP2PP@$PQ2@SST2QUUTVEF=PQCB@2BSBCT2P2TQ@˾ANnT@2@QTAB@B›B1=B C’B1B2BSCn@2@QCAB@ERRMSGB |INPOSTNEXTELERRMSGe$CODE$PDATA`$LOCALSTACK8VERRORZ$BLANKFOR$STOPx8P:PdP(VPP\P0P!PxPP PKPI)P.2PFPUP ww1 (;H0100cb^[Z[[[\[} /ISGN01 5-Sep-1986 15:03 5-Sep-1986 15:03VAX FORTRAN V4.4-177.P[PA ISGN($CODE$PDATA$LOCAL PPPww1fC(;H011JULASC01 5-Sep-1986 15:03 5-Sep-1986 15:03VAX FORTRAN V4.4-177P P QP [Ь//姏m m PP PPPP2PQAA= PQ  FOR$ENCODE_MF2 ~ FOR$IO_W_V FOR$IO_END FOR$ENCODE_MF2~ FOR$IO_W_V FOR$IO_END FOR$ENCODE_MF2~ FOR$IO_W_V FOR$IO_ENDӑ 0 0㑫 0޻PЫЫ{ JULASC$CODE$PDATA4$LOCAL FOR$IO_END FOR$IO_W_V FOR$ENCODE_MF0JP dPrPKP$PPPww1`,(;H011JULIAN01 5-Sep-1986 15:03 5-Sep-1986 15:03VAX FORTRAN V4.4-177?PP   P[Ь޻QССR FOR$DECODE_MF? FOR$IO_W_R FOR$IO_END FOR$DECODE_MF? FOR$IO_W_R FOR$IO_END FOR$DECODE_MF? FOR$IO_W_R FOR$IO_ENDJULMDYPRRP~ JULIANJULMDY$CODE$PDATA4$LOC AL FOR$IO_END FOR$IO_W_R FOR$DECODE_MF'PzMPTsP.ww1`8(;H011JULMDY01 5-Sep-1986 15:03 5-Sep-1986 15:03VAX FORTRAN V4.4-177PP [PPQ  MQDDQIQQQPQ2QQzQQ{QQQQQPQR2RSCP=QR PQQPG JULMDY$CODE$PDATA$LOCAL+PkP`$PZ*PTBPYPbPww 1`*;H011JVBLGT01 5-Sep-1986 15:09 5-Sep-1986 15:09VAX FORTRAN V4.4-177EPP[>> kXVBLGT2P@T JVBLGTXVBLGT%$CODE$PDATA$LOCALww1*;H011JVBLST01 5-Sep-1986 15:09 5-Sep-1986 15:09VAX FORTRAN V4.4-177[PP[>> kXVBLGT2Pм@>> kXVBLST_ JVBLSTXVBLGTXVBLST6$CODE$PDATA$LOCALww1@ n(;H011LINFIT01 5-Sep-1986 15:03 5-Sep-1986 15:03VAX FORTRAN V4.4-177p8P P[^|m |X|k|R|V UUPPTPZmUTZ(XVBLGTTZ8XVBLGTeP`PXeP`Pk`R`VeP`P=UeVRg PcPXPeRRg TcTkTfTP}P g VPf Rd RbRP}PeVPeX R`RPcPPf P MTH$DSQRT_R5}P$ek PbPe RdVVbVRdRP MTH$DSQRT_R5d XbXgPX( LINFIT XVBLGT MTH$DSQRT$$CODE$PDATAX$LOCAL MTH$DSQRT_R5 BP HPww1 r(;H01/LIST01 5-Sep-1986 15:03 5-Sep-1986 15:03VAX FORTRAN V4.4-177P COMMANDS-* *@FILENAME EXECUTE FILE OF CALC COMMANDS, *ASCII DECLARE VARIABLES OF TYPE ASCII+ *B SET DEFAULT BASE FOR CONSTANTS) *C COMMENT, IGNORE REST OF LINE *DECIMAL VARIABLE IS DECIMAL *E EXIT *HEX VARIABLE IS HEX *INTEGER VARIABLE IS INTEGER4 *M10, *M8, *M16 DECLARE VARIABLE MULTI-PRECISIONBASE 10, 8, OR 160 *N NOVIEW --WHEN VARIABLE IS ASSIGNED  DON'T PRINT VALUE *OCTAL VARIABLE IS OCTAL. *R READ --ALLOW SINGLE LINE OF INPUT WHILE IN A COMMAND FILE" *REAL VARIABLE IS REAL TYPE00cccYTADATADATADATADATADATA *S STOP OR EXIT1 *V VIEW --PRINT VALUE OF VARIABLES WHEN NEW VALUE IS ASSIGNED" *Z ZERO ALL ACCUMULATORSP FOR$WRITE_SF FOR$IO_END  FOR$WRITE_SF FOR$IO_END: FOR$WRITE_SF FOR$IO_ENDi FOR$WRITE_SF FOR$IO_END FOR$WRITE_SF FOR$IO_END FOR$WRITE_SF FOR$IO_END FOR$WRITE_SF FOR$IO_END FOR$WRITE_SF FOR$IO_END FOR$WRITE_SF FOR$IO_END< FOR$WRITE_SF FOR$IO_END FOR$WRITE_SF FOR$IO_END FOR$WRITE_SF FOR$IO_END FOR$WRITE_SF FOR$IO_END9 FOR$WRITE_SF FOR$IO_END^ FOR$WRITE_SF FOR$IO_ENDz FOR$WRITE_SF FOR$IO_END FOR$WRITE_SF FOR$IO_END] LISTy$CODE$PDATA$LOCAL FOR$IO_END FOR$WRITE_SFww1x(;H01/MDET01 5-Sep-1986 15:03 5-Sep-1986 15:03VAX FORTRAN V4.4-1778P P  P [^Ь|PPR PPRPRRRRRpWpYRUS~TSPPSQPRRPSV VPVVPVVQ QPQQPQQ~ XVBLGTdW~0$XVBLGTdY=US`WcYW=rV MDETXVBLGT$CODE$PDATA@$LOCAL0P8PDPtPww1 ~(;H01/MOUT01 5-Sep-1986 15:03 5-Sep-1986 15:03VAX FORTRAN V4.4-177P10 (BASE )@P8<Q,Q  -Q1)Q(1X,1A1, A1, (',',3A1))(1X,1A1, A1, (',',4A1))P@[>kTYPGET>kTYPGET߫FOR$STOPP2QQPR2RSQSC=PRR3RPRTCONŐPА1RPPQQRQ3QP PS SQQPTPRTCONP3SPRTCONP3TPRTCONP՟ FOR$WRITE_SO2PP@P@ FOR$IO_B_RTRS2PPTSQ2QQQP@($PRTCONP~ FOR$IO_B_V=RT FOR$IO_ENDΐ1RPPSSRS3SP PS STTPTPRTCONP3SPRTCONP3TPRTCONPퟫ FOR$WRITE_SO2PP@P@ FOR$IO_B_RTRS2PPTSQ2QQQP@($PRTCONP~ FOR$IO_B_V=RT FOR$IO_ END FOR$WRITE_SF2P?@ FOR$IO_W_R FOR$IO_END MOUTPRTCONTYPGET7$CODE$PDATAp$LOCAL8VFOR$STOP FOR$IO_END FOR$IO_B_R FOR$IO_B_V FOR$IO_W_R FOR$WRITE_SF FOR$WRITE_SOD5P ^P lPnPtPPYPPSPiPww1(;H011MTHINI01 5-Sep-1986 15:05 5-Sep-1986 15:05VAX FORTRAN V4.4-177SP | ||P2PQ|A=P|}axb}xbZ MTHINIL$CODE$PDATA$LOCALERNPER ,P >P ww1(;H011MTXEQU01 5-Sep-1986 15:04 5-Sep-1986 15:04VAX FORTRAN V4.4-177P\P X(80HP@P [^PPPPPPPP PPPPPUVUWXUYYPPPUPP~^@<XVBLGT^ˏVPVPP}kSSqPSvkVYW=XYUVPVWU1YUXWPWXVSXWTSS~^PLXVBLGT^TT~^`\XVBLGT^S~^`\XVBLST^T~^PLXVBLST^=YXXYYVPYWTPSS~^PLXVBLGT^TT~^plXVBLGT^S~^plXVBLST^T~^PLXVBLST^=XYUUVXXX~^@<XVBLGT^sk1PPPSUSPZRPWRSPRVYPTT~^`\XVBLGT00cb^[Z[[[\[}^Y~^ˀ|XVBLGT^W~^ːˌXVBLGT^X~^ˠ˜XVBLGT^e(Pf0PbPT~^`\XVBLST^=ZR~RWWSZWVTZZ~^plXVBLGT^T~^˰ˬXVBLGT^e( Pf0PbPZ~^plXVBLST^=RW==UUPUUU~^`\XVBLGT^s1VPPPVPPX8X~^plXVBLGT^fX~^plXVBLST^P1PXSSPPRPRVRWPRZPTZ~^`\XVBLGT^ZWTRYTPPPVPUW~^plXVBLGT^Y~^ ˀ|XVBLGT^U~^˰ˬXVBLGT^e PbPW~^plXVBLST^=ZTfW~^plXVBLST^=XS;=VԼe MTXEQUXVBLGTXVBLST$CODE$PDATA$LOCAL(PPPkP%3Pww1`+(;H011MULADD01 5-Sep-1986 15:04 5-Sep-1986 15:04VAX FORTRAN V4.4-177P10PP [RkFOR$STOP PPP PPP2QQAA 2QQ2SSACST2UU2TVVU2WWVWG EWWWSWPWSPSVVW3WE=T1AQTQ2UU2TWWU2VVWVF E2UU2TVVU2WWVWGE G=TQ2TTQW2WUTUE=QDTETSUT2QQ2UVVQAVSVVPX3XASVV3VAS2QQ2UVVQAVSVPVX3XAS3VAS=WU2PP3T@S ERRMSGo MULADDERRMSG$CODE$PDATA$LOCALSTACKFOR$STOPPPP'P/P7P?0P78P/@P'HPPPPHP P#P$?P SP_P4vPP>P/PP Pww1E(;H011MULCON01 5-Sep-1986 15:04 5-Sep-1986 15:04VAX FORTRAN V4.4-177P2008P  Q P8[Ь 2 P@2P@S S3S߫FOR$STOPS P2PQA͔A=PPPQ2UUQV2VWUWG=QVUUP1PUQQUWPXPYZ2SS2WTST2XRBDPTUT1QWX=YZQSWXYS2ZZ2STTZ2XRBJiRRRWRWRW3RJi=PXW2WWTWG2QQA2QQ2UTQTDi16U2QQUAYYAQQY2Q3YAᶫQY2YTDWQD2SSTS3WCe=YQ2QQ2VYQYIe1VPQ2UU2PVVUFEa=P X MULCON:$CODE$PDATAT$LOCALFOR$STOPP8P:P @PEPGP PP7]P*eP tP }P PPP P PPP TP ]PpPPPPww1٘(;H011MULDIV01 5-Sep-1986 15:04 5-Sep-1986 15:04VAX FORTRAN V4.4-177PPP[ P2PQA=P2PPR2PP@BQQQQT2TUPUE =Q kERRMSGPPQ2QURUE=P1QT1TQRRQPTUTVW2XX2YY2UZXZ2PSYSJ CTSQS1RPU=VWRPUTXYP2VV2PWWV2SS2YZZSC FSSSUSUSU3SF=XYU2UUWUE2RRB2RR2QURUE1QQ2RR2QTTRDB=Qb MULDIVERRMSG$CODE$PDATA $LOCALSTACK]>PZPP PPPPPP 1P :PPPPww1z(;H011MULMUL01 5-Sep-1986 15:04 5-Sep-1986 15:04VAX FORTRAN V4.4-177PPPPL[2k 2QQ2RRBARRRRTTTTRRAհQ2QRB=QQ2RRQT2TTTRUE=QTQ2UUQV2VVVUWG =QVTVQ2WW2QXXWG=QVTQQ1TVTQWVXY2WZRZJZZS2YPUP@ PPSYWP2PPS@=XY=Q00cccYTADATADATADATADATADATA WVVWTTQ2WXUXH X2QYRYIYXYQWZ2ZZYJ=TQ=VWRU2UWRGTkTRkRVVT2VVWVTF=UR ERRMSGb MULMULERRMSG$CODE$PDATAX$LOCALSTACK@sPPPP PPPO)PKPww1(;H011NEXTEL01 5-Sep-1986 15:04 5-Sep-1986 15:04VAX FORTRAN V4.4-177P10050][P(P  %% INDEX@'' INDEX@  Q.^'*-+Q(-!*/+-)=Q QABS DABS IABS FLOAT IFIX AINT INT IDINT EXP DEXP ALOG10 DLOG10 ALOG DLOG SQRT DSQRT SIN DSIN COS DCOS TANH DTANH ATAN DATAN QbpQ !"#$$%%''&&(())**++,, 'P [^Ь GETNNB UV| XXPS2PQAc=P2ЭYIZRP2PQZA1=PR2RPZ@1= RSR2RPZ@1=RZ1ZZ(ERRMSG1R2RPQ@A1GETNNB2P@ZRZ'Z GETNNB2P@ZRZ ZX XXGETNNB0ERRMSG12P@ZR1౫ERRMSG1RRRR UR V2P3R@GETNNB1R2P@PR2RQPA=RPR1VERRMSG1P2PQA=PP|PRe"P2RTlDYaYPD=RpYTGETNNB1R2P@PR2RQPA1= RP,P-R1GETNNBɱ2P@PPp"YP}>YRGETNNBԱR2P@PR2RQPA= R$ERRMSG1R RRWGETNNB2P@PRR2RQPA= RRR RRPWPW  WPW2W~}Y~ OTS$POWDJdPRP2RWGG`=R1R Rd>YmRPdYP`P1XVX UU 1 U UXV2XSCf=XSXR2UUUX2RP@fWWX@f=SRR2RSCCf=R FLIP1 RGETNNB12P@pR1mRontt1sdΏu 1nvȼ11VRS2RPPUEzW谫RWWXY PT2YPTP2QA@YW8GETNNB걫R=XY߫DFOR$STOPE{߰ 1=VR~RTLVARSCNҵ1P1 ЭP@plFNAMEͱ111TPPRЭP@ˈ˄INDEX޵P1PR1PЭP@˜˘INDEX߰P1R1ЭRB˨ˤDOMFCN}k ˼TYPSETװ汫T氫RGETNNB2P@TYPGETRVBOO1>TYPGET˱2P@$SSRVUVSXVBLGT2PP2VTTP@De=RVERRMSG) FOR$WRITE_SFTSRU2UP@ FOR$IO_B_R=SU FOR$IO_END F NEXTELGETNNBERRMSGVARSCNFNAMEINDEXDOMFCNTYPSETTYPGETXVBLGTRVBOOFLIP$CODE0$PDATAL$LOCAL8V0DIGVZ$BLANK CONSERRORFOR$S00cb^[Z[[[\[}TOP FOR$IO_END FOR$IO_B_R FOR$WRITE_SF OTS$POWDJq%PP(PGPPpP6P PR PPPo9PB?POMPAgP mP!rP xPPP PPPtPPPPPP5P@PHPSP\P>hP PP(PPP P P P\P #P%P EP"aPrPxPP8PP PPPP$P?)P:.P3P<PBP.IPTPZPaPnlP_PPPP3P7P#P6P1APnIPfTP _PPfPoP(wP PP PPPxPPaP@P#P-<PFaPiPlP vPPPPPeP]P<P3FP_P4nPpP#PPPPPPPVPPP P1PRww1 `P@+Enter max. displ down to save or 0 for all>,Enter max. displ right to save or 0 for all>,,,,!P,,, ,M,,P,,P,,!D,,$P   P     "  "  "  " P$[^ЬR4 FOR$CLOSEP@UVT100PUVT100 FOR$WRITE_SF FOR$IO_END"2~ FOR$READ_SF? FOR$IO_W_R FOR$IO_X_DA FOR$IO_END⛏PPPP2P@\\FOR$OPENP1PPS2SQAT UUTTU3UA=PS) FOR$WRITE_SF$ FOR$IO_X_DA2~ FOR$IO_W_V2~ FOR$IO_W_VS2SP?@ FOR$IO_W_R=S2~ FOR$IO_W_V2 ~ FOR$IO_W_V FOR$IO_END@UVT100PUVT100c FOR$WRITE_SF FOR$IO_END`2~ FOR$READ_SF? FOR$IO_W_R FOR$IO_END@UVT100PUVT1002 FOR$WRITE_SF FOR$IO_END`2~ FOR$READ_SF? FOR$IO_W_R FOR$IO_ENDֵ.쵫.ꞻUP1<VPWˀREFLECPPXPPYX1Y1ːFVLDGT 1ˠWRKFIL瑫ґҏ˰TYPGETN PZЏSPPqR2RQA[ =nPPxQ2QTD[  D[=PQF1pZЏSXVBLGT TTTT FOR$WRITE_SFZ~ FOR$IO_B_V2X~ FOR$IO_W_V2Y~ FOR$IO_W_V  FOR$IO_L_R FOR$IO_ENDT FOR$WRITE_SFZ~ FOR$IO_B_V2X~ FOR$IO_W_V2Y~ FOR$IO_W_V  FOR$IO_D_R FOR$IO_ENDSP@ FOR$WRITE_SF FOR$IO_B_RSxZ2ZP@[ FOR$IO_B_R=SZ?  FOR$IO_W_R FOR$IO_END FOR$WRITE_SF2X~ FOR$IO_W_V2Y~ FOR$IO_W_VY2YP@[ FOR$IO_B_R=RY FOR$IO_END FOR$WRITE_SF FOR$IO_B_R뚏YxX2XP@[ FOR$IO_B_R=YX?  FOR$IO_W_R FOR$IO_END=W=V1D1VWXXPPYWPPSY1S12WP?P2XZZP@@aREFLECFVLDGT 1ˠWRKFILґҏґN1 1TYPGETXVBLGT ZZZZ FOR$WRITE_SF2Y~ FOR$IO_W_V2S~ FOR$IO_W_V  FOR$IO_L_R FOR$IO_ENDZ FOR$WRITE_SF2Y~ FOR$IO_W_V2S~ FOR$IO_W_V  FOR$IO_D_R FOR$IO_END FOR$WRITE_SF2Y~ FOR$IO_W_V2S~ FOR$IO_W_V횏nSY2YP@[ FOR$IO_B_R=S00ddcYTADATADATADATADATADATAY FOR$IO_ENDߚPxS2SYI[  I[=PS  FOR$WRITE_SF FOR$IO_B_RSxY2YP@[ FOR$IO_B_R=SY?  FOR$IO_W_R FOR$IO_END=?X=VW M1W A?WȫWUXS2UYYZZT2SVVW FOR$WRITE_SFT FOR$IO_L_VW FOR$IO_L_V?VPYP?@ FOR$IO_W_R?VYV?Fa FOR$IO_W_R FOR$IO_END FOR$WRITE_SF FOR$IO_B_RVxW2WP@[ FOR$IO_B_R=VW?  FOR$IO_W_R FOR$IO_END=XSM=U. FOR$CLOSER R PGET FOR$CLOSEUVT100FOR$OPENREFLECFVLDGTWRKFILTYPGETXVBLGT$CODE$PDATA<$LOCALPNMSHMIRRORIOLVLDCTLD2RARGSTR8VKLVL DEFVBXFFGGFVLDC>DSPCMN FOR$IO_END FOR$IO_B_R FOR$IO_B_V FOR$IO_W_R FOR$IO_W_V FOR$IO_L_R FOR$IO_L_V FOR$IO_D_R FOR$IO_X_DA FOR$READ_SF FOR$WRITE_SF FOR$WRITE_SFG)PRP|VPxPPzPT~PPPPPPPbP9kP0PPPPP PPPTPP PP1PAwPAPPPP3P|CPNP[PfPP7P7PHZPPPPww1`P, ,*PPP.Enter max. displ down to restore or 0 for all>/Enter max. displ right to restore or 0 for all>#Enter min. displ. down (1 or more)>$Enter min. displ. right (1 or more)>!PP   P   INDEX@.,06824:<,.,.*0,.@,. P<@[Ь RD FOR$CLOSEPPUVT100`UVT100 FOR$WRITE_SF FOR$IO_END 2~ FOR$READ_SF? FOR$IO_W_R$ FOR$IO_X_DA FOR$IO_END㛏PPPP2P@OtINDEXPSS2SP@NˀFOR$OPENP1T* FOR$READ_SF4 FOR$IO_X_DA?d FOR$IO_W_R? FOR$IO_W_R2P?@ FOR$IO_W_R=U? FOR$IO_W_R?  FOR$IO_W_R FOR$IO_ENDյddPd(2TDDc D=?   PUVT100`UVT100d FOR$WRITE_SF FOR$IO_END'2~ FOR$READ_SF?ްS FOR$IO_W_R FOR$IO_ENDPUVT100`UVT1003 FOR$WRITE_SF FOR$IO_END'2~ FOR$READ_SF? FOR$IO_W_R FOR$IO_ENDPUVT100`UVT100 FOR$WRITE_SF FOR$IO_END'2~ FOR$READ_SF? FOR$IO_W_R FOR$IO_ENDPUVT100`UVT100 FOR$WRITE_SF FOR$IO_END'2~ FOR$READ_SF? FOR$IO_W_R FOR$IO_END.PPPPPPPP浫.ޞ S+- P2PTDDN=P FOR$READ_SF FOR$IO_B_R߫ FOR$IO_L_R߫  FOR$IO_L_RR2RP@N FOR$IO_B_R=nR FOR$IO_END̰RRoP2PP@N @N=nR FOR$READ_SF FOR$IO_B_RxR2RP@N FOR$IO_B_R=R? FOR$IO_W_R FOR$IO_ENDۏM1őŏի1ի 12PѫP12Pѫ P12PѫP12Tѫ T12eTTPTT2T T2QQTTDۏDP2TTPTTT2P PQPPPQQTTQTTPPTQ1HT 1?2TT?T2Q00 db^[Z[[[\[}QQTDDaˤREFLEC11İP2PTDND=PeR˴RELVBLFVLDSTTYPSETۏpWRKFIL쑫ۏp1ϓO# FOR$DECODE_MF  FOR$IO_D_R FOR$IO_ENDXVBLGT+`k -c k XVBLST18 $O FOR$DECODE_MF? FOR$IO_W_R? FOR$IO_W_R FOR$IO_END? PP@@a1D FOR$CLOSEPRR <PGGET FOR$CLOSEUVT100INDEXFOR$OPENREFLECRELVBLFVLDSTTYPSETWRKFILXVBLGTXVBLST$CODE$PDATAh$LOCALPNMSHMIRRORIOLVLDCTLD2RARGSTR8VKLVL DEFVBXFFGGFVLDCNCEL>DSPCMN FOR$IO_END FOR$IO_B_R FOR$IO_W_R FOR$IO_L_R FOR$IO_D_R FOR$IO_X_DA FOR$READ_SF FOR$WRITE_SF FOR$DECODE_MFb"PKPOOPKPPPPPRPYPaPiPP PPPPPPP;P_?P[P PPPP=PMPSPwP {PP PPHPOPZPeP(mP PPiPbP P P P Pww1g';H01.PLW01 5-Sep-1986 15:00 5-Sep-1986 15:00VAX FORTRAN V4.4-177P dddddddP P[ЬPRSRQQT2TQAc =PR FOR$WRITE_SFR2RP@c FOR$IO_B_R=TR FOR$IO_ENDq PLWk$CODE$PDATA$LOCAL FOR$IO_END FOR$IO_B_R FOR$WRITE_SF 1P:P/ww1Ɲ);H010PMTX201 5-Sep-1986 15:07 5-Sep-1986 15:07VAX FORTRAN V4.4-177P P P[Ь   > >(>,>0> 4GMTXSk112PR@b, > >$(>(,>,0>04GMTXšSk2P@b, > >4(>8,><0>@4GMTXPki PMTX2GMTX$CODE$PDATA@$LOCAL1EPNP]PnPBP<P.Pww1Q(;H011POSTVL01 5-Sep-1986 15:05 5-Sep -1986 15:05VAX FORTRAN V4.4-177P 110180190PD P [R@D1@@12@P2@@P@$PQ2QSCC =PQkTYPSETVVAROUT2@P@@B1ERRMSG1B12BSCPPo1PP,1PnPuPP1߫,FOR$STOP@PPQ2QQABC’2C’TD$TUSQV2UWWSXVWGH =TU P@@1BA@2BQ2@P@@A’B@@14CALBIN߫<FOR$STOP4CALUN㯫B1c1߫DFOR$STOP$ERRMSG POSTVLTYPSETVAROUTERRMSGCALBINCALUN$CODE$PDATAT$LOCALSTACK8VZ$BLANKFOR$STOPP #P.PM7PrPPPP<PP*PPPPPPPMPZP \P'~PUP*PPKPP'P ww1}(;H011PRTCON01 5-Sep-1986 15:03 5-Sep-1986 15:03VAX FORTRAN V4.4-177DP P[2P3@QP2QQQP@PR PRTCON3$CODE$PDATA$LOCAL0DIGVPww1(;H011RECALC01 5-Sep-1986 15:05 5-Sep-1986 15:05VAX FORTRAN V4.4-17700ddcYTADATADATADATADATADATA P(P    " $P([^\RScTܰޱ1XkFVPEEKFVLDGT1PPPP1  cPQ YZ2QVQRZ\2ZU?UVUEEa=YZ=PQ  R\ WRKFILPPoQ2QVF F=mPFFFMQ0DOENTRFVLDGT@FVLDST䱫1=X1 VYZ2VP?PU2ZPUP@@aPREFLECϣP2PQzQW{PWWWWWW䢫PPPPPFVLDGTW1  찫cZV WRKFIL˰PPoQ2QXH H=mPHFQ0DOENTRW@FVLDST=YZ=VTcܣޣSSSS  \R RECALCFVPEEKFVLDGTWRKFILDOENTRFVLDSTREFLEC$CODE$PDATA$LOCALFFGGDLFGFVLDC DCTLD2RRCLACTDOT8V2P\\PuP PPFP P(PPyPo(P NP%kPPPP Pp`P Pww1(;H011REFLEC01 5-Sep-1986 15:04 5-Sep-1986 15:04VAX FORTRAN V4.4-177[PPPPQQPPQPPpPQP PPQP c REFLECU$CODE$PDATA$LOCALMIRRORFFGGP0P6Pww1`+`P F RVBOO#$CODE$PDATA$LOCALww1-';H01/SCMP 01 5-Sep-1986 14:59 5-Sep-1986 14:59VAX FORTRAN V4.4-177P  P[ЬЬ$ PQ$RS2QTDcDbDc_Db_DcDb=PQG SCMPf$CODE$PDATA,$LOCAL%;P)@P$GPNPUP^Pww1 {@` Title of Spreadsheet:P21Type return to continue, Hn for other Help pages:4P    LTL FOR$OPEN@ WpW FOR$OPEN@cc FOR$OPEN@ 0   $( ,0 48 0, <@ $ 8     D 8  $&<*(, g,g FOR$OPEN@P0[\ DTRINI   T  UP2PQ A =PE D I T  (}} ,FOR$OPENHFOR$OPENdFOR$OPENxUVT100TTYINIˀERRSET=9DW;豫AˀERRSET=W˜ LIB$ESTABLISHˤ LIB$ESTABLISHˬUVT100˸UVT100UVT100UVT100P2PW2QQWQA==PWRKFILUVT100t FOR$WRITE_SF FOR$IO_ENDUVT100 FOR$WRITE_SF00#ddcYTADATADATADATADATADATA FOR$IO_ENDUVT100$UVT1000UVT100 FOR$WRITE_SF FOR$IO_END@UVT100 FOR$WRITE_SF FOR$IO_ENDPUVT100xUVT100  N N RTZpUVT100h FOR$WRITE_SF FOR$IO_END2 ~ Y FOR$READ_SF FOR$IO_X_DA FOR$IO_ENDYy1pUVT100ˀUVT100 FOR$WRITE_SF FOR$IO_END2 ~ FOR$READ_SF FOR$IO_X_DA FOR$IO_ENDP2PQAR VVRRVV3A= P}N~ FOR$ENCODE_MOPIA~ FOR$IO_F_V FOR$IO_ENDˌUVT100 FOR$WRITE_SF FOR$IO_END2 ~ FOR$READ_SF FOR$IO_X_DA FOR$IO_ENDޑ  2P@~@~ @@@=PUP˜REFLECPMPPE=PQFCPVVVIPiiPPPPiiiDQIQWSSETP2PQA=?PPQ2PV2QR?RVRPBQBa}5nX>B=Q=?PUWRKFILU$UVT100P2PQA=PP2PQAAT= PS0.d1 FOR$REWIND FOR$CLOSE  FOR$CLOSEFOR$OPENTZ ˴XQTCMD鰫UU1U˼DSPSHTU1U FOR$CLOSE dVRCALCVdR FOR$CLOSE FOR$CLOSE FOR$CLOSEU1UPPPPP DOENTRU1UHELP FOR$WRITE_SF FOR$IO_END2 ~ FOR$READ_SF\2\P@ FOR$IO_B_R=\ FOR$IO_ENDڙPP0P90PHhU dRVYXZRECALCTXYRdVTUT1^ˬUVT100`UVT100 dRVYXZRECALCˬDSPSHTݰXYRdV1U1`UVT100 FOR$WRITE_SF FOR$IO_END S!ϔϐ2cWW FOR$READ_SF FOR$IO_X_DA FOR$IO_ENDYy1N FOR$WRITE_SF FOR$IO_END@<"W FOR$READ_SF? FOR$IO_W_R FOR$IO_ENDx % FOR$WRITE_SF FOR$IO_END"W FOR$READ_SF? FOR$IO_W_R FOR$IO_ENDᱫ Y FOR$WRITE_SF FOR$IO_ENDϖϒW FOR$READ_SF FOR$IO_X_DA FOR$IO_ENDYy" FOR$WRITE_SF FOR$IO_ENDHDW FOR$READ_SF FOR$IO_X_DA FOR$IO_END   FOR$WRITE_SF FOR$IO_ENDW FOR$READ_SF FOR$IO_X_DA FOR$IO_ENDYy FOR$WRITE_SF FOR$IO_ENDϲϮW FOR$READ_SF FOR$IO_X_DA FOR$IO_ENDYy1o FOR$WRITE_SF?J FOR$IO_W_R FOR$IO_ENDTP"W FOR$READ_SF? FOR$IO_W_R# FOR$IO_ENDP4 FOR$WRITE_SF?H FOR$IO_W_R FOR$IO_END"W FOR$READ_SF? FOR$IO_W_R FOR$IO_END1(1WUUURECALCTWPPQQQQWUUWQ2WP2QS?SPS`/ʑEC=Q=?WˬUVT100`UVT100UUUU˴DSPSHTXYRdV1  SPREDSHT$MAINDTRINIFOR$OPENUVT$100TTYINIERRSET LIB$ESTABLISHWRKFILREFLECWSSETRECALCDSPSHTXQTCMD FOR$CLOSECALCDOENTRHELP $CODE$PDATAL$LOCALMIRRORFOOBARRCLACTDOLLRDCTLD2RFILEMXhOARKLVLIOLVLEDNAM8V DEFVBXPNMSHVXCMDVARYITFFGGFVLDC>DSPCMN FOR$REWIND FOR$IO_END FOR$IO_B_R F00+db^[Z[[[\[}%OR$IO_W_R FOR$IO_F_V FOR$IO_X_DA FOR$READ_SF FOR$WRITE_SF FOR$ENCODE_MO'P PPP PPTPPPPPP<PP!Pf_PoPvPPUP P SPP(PPPIP"P-LPP PPP P"Pm5P bPqP PPP @PHPPPPPE P  P P 2 P = P P P< P3 P. P) P & PN> P U P] Pe P ww1`[` 0(GETNNB䯼 STU> 0(GETNNB ߫4FOR$STOPR2TP2Q@eA=ST  RR <STRCMPGETNNB$)CODE$PDATA@$LOCAL CONSZ$BLANKFOR$STOPFOR$INI_DES1_R2$9P;PWZP\P6Pww1 b`>kFVLDGT>>REFLECPPQPP2QQ2PP@PPA5  2P@  TYPGETFVLDGTREFLEC$CODE$PDATA$$LOCALBITS.FVLDM .TYPFMTBFRPPo P9P:|Pww1@);H011TYPSET01 5-Sep-1986 15:09 5-Sep-1986 15:09VAX FORTRAN V4.4-177PP[1 PPPP>>kREFLECPPQPP2PP@R2QQRRRA5R@A5PRA5ﱼ  PA52Q A TYPSETREFLEC$CODE$PDATA$LOCALBITS/.FVLDMTYPFMTBFR(P PP-PPPww1,L011USRCMD0110-Sep-1986 12:5210-Sep-1986 12:52VAX FORTRAN V4.4-177P SYS$COMMAND:$ Press RETURN to redraw spreadsheet>" No annotation found on this cell.P Pj <<0    FOR$OPEN@P[Ь R$}PPQ2QSCC-=PQ }4 LIB$SPAWN}1 FOR$WRITE_SF FOR$IO_END@2~ FOR$READ_SF? FOR$IO_W_R FOR$IO_END1RDT @<DTRCMDۑLFI @<DTRCMDʑA1N1 PPQ2QS C-=PQDIN2AS1E, FOR$WRITE_IFP2P~ FOR$IO_W_V FOR$IO_ENDPQ2QSCSS` SSASZ2PT3SD-P=QPQPQT2TT2QSCD-=Q2PQ.A6AA7NA8NA9 A: }Q2QTDD-=Q PQ2TD- 0D-=QP2PPPP.TX LIB$SPAWN1?E1Q1U1 P2PR B=PDIN2ASE, FOR$WRITE_IFP2P~ FOR$IO_W_V FOR$IO_ENDPR2RQAQQ` QQAQZP2PT3QD=2RRRPT2TT2RQAD=R2PR.B$AB%NB&NB'2TD 0D= B( P2PPPPT`FOR$OPENP1RI FOR$READ_SF FOR$IO_X_DA FOR$IO_ENDR~^˄|UVT100^ˌUVT100O FOR$WRITE_SF FOR$IO_X_DA FOR$IO_END=R˘ FOR$CLOSEˠUVT100ˌUVT100 FOR$WRITE_SF FOR$IO_END@2~ FOR$READ_SF?R FOR$IO_W_R FOR$IO_END FOR$CLOSE3 FOR$CLOSEFOR$OPEN ˰UVT100ˌUVT100U FOR$WRITE_SF FOR$IO_ENDN USRCMD LIB$SPAWNDTRCMDIN2ASFOR$OPENUVT100 FOR$CLOSE$CODEz$PDATA$LOCALPNMSHDCTLFOOBARIOLVLEDNAM8V FOR$IO_END FOR$IO_W_R FOR$IO_W_V FOR$IO_X_DA FOR$READ_SF FOR$WRITE_SF FOR$WRITE_IF P'PxVPpPtPP4P#PPP#PPP6P,qP{PP  P2PX9PBPHLP>VP4PPP +P[PbPfePcP/P,*Pa]P.ww1փ);H011USRFCT01 5-Sep-1986 15:07 5-Sep-1986 15:07VAX FORTRAN V4.4-177P;|P P "$&(*,00;db^[Z[[[\[}5.04"$ 2  68:<>@BD68:<68:< F "$&(*,.0 "$*, 2H"$*,2 J.0L.0x P6RTVXZR\ INDEX@R^XV`` JLJ LJfhL fh` `j`JlnLnl`768:<rrrrrrrr68tvrp68:<>@BDNNNN >@N68r~ QIDATEMTXEQMOVEVMDETMPRODMADDVMSUBVMMPYTMMPYCVARYXQTCMSTRVLHEREYRMODJDATEJTOCHDATEDBWKDYSWKDINFFTFWFFTRVLINEFPx[ЬRS2RP@c RR<TP2TQQ2PUQUPRV2VVFEE1=P8UT1 FOR$IDATEm~mŒmŦ(JULMDYmP R><D8PMTX2PPQPQQQQPQPPP1PQPQ1QVQV1PVPVVQVQVVV1|XVBLGTܣPP~^ːPP~^˔ˌXVBLST^==˜MTXEQUR>˼PMTX2ǣīP̫VPV1«VʫPVP1|XVBLGTܣPP~^ːPP~^˔ˌ9XVBLST^==R>PMTX2MDETR>4<0PMTX2ۡPPPPPPtGMPRDΡR>4<0PMTX2PPPP˜GMADDΡR>4<0PMTX2PPPP˜GMSUBΡR>4<0PMTX2ۡPPPPPPtGTPRDR>4<0PMTX22P@,1VARSCN1XVBLGT:밫VkV|XVBLGTdVPP~^ːPP~^˔ˌXVBLST^==>RVVARYVRP2VQ2PWGcAV=PP2VP@@VRTXQTCMDV| Rڞ VARSCN䵫ܫڞ8(GNHDINDEXرPP2PPڞ`PGNPPPPdREFLECtWRKFIL갫PVVQ2QQAˆQQR걫RmRWeD YaWY =PVm ;~m Œ PPP PmP PVVPPmPŦmźmRˈ˄VARSCNյ12P@c,1ҫ˨ˤVARSCNյ12P@c,1ҫVARSCN1XVBLGTiXVBLGTiXVBLGTi(JULMDYmP Rˈ˄VARSCN1REFLECtWRKFIL$JULIANmP Rˈ˄VARSCNյ12P@c,1ҫ˨ˤVARSCN1<XVBLGTi,REFLECtWRKFIL嚏nPT2TVFˇ=PT<JULASCTWRKFILm~mŒmŦRˈ˄VARSCNյ12P@c,1ҫ˨ˤVARSCNյ12P@c,1ҫVARSCNյ12P@c,1ҫhdVARSCN1XVBLGTiXVBLGTiXVBLGTi˄REFLECtWRKFIL蚏nPT2TVFˇ=PT(JULMDYP<JULASCTWRKFIL12RP@˘>˜00CddcYTADATADATADATADATADATA=˔DTRFCT1Rˈ˄VARSCNյ12P@c,1ҫ˨ˤVARSCN1XVBLGTiXVBLGTi(WKDYm 1Rˈ˄VARSCNյ12P@c,1ҫ˨ˤVARSCN1XVBLGTiXVBLGTi(WRKINTm 1R>ˤˬˠPMTX2«PPUPUU֣īUUPUPPUUPPUUFOUREAR> PMTX2>ư«PPUPUUīPPVPVVUPPVVPPֱDLINFIT=T USRFCT FOR$IDATEJULMDYPMTX2XVBLGTXVBLSTMTXEQUMDETGMPRDGMADDGMSUBGTPRDVARSCNVVARYXQTCMDGNINDEXREFLECWRKFILJULIANJULASCDTRFCTWKDYWRKINTFOUREALINFIT7 $CODE$PDATA$LOCAL8V DOLLRRCLACTFFGGVXCMD?VARYIT DCTLD2R6$PRP [P nP2pPZrPFtPvP xPZzP|P~P2PPP^PNPPrPPnPPPB P P PJ P  P# !P 5P UP PL P8 PbPEP P!P &P+P[PPP@PMPpP}PPP$LPYP|PP( P0P=P`PmPP P#& P@L PY P| P P} PT PG P$3 P= Po P Pu P Pww1);H011UVT10001 5-Sep-1986 15:08 5-Sep-1986 15:08VAX FORTRAN V4.4-177P>P   QP[LIB$SCREEN_INFO³>> LIB$SET_CURSOR簼A  $LIB$ERASE_PAGE촫 0LIB$ERASE_LINEP8LIB$ERASE_LINEP2HD LIB$SIGNALڴ 11P2PďPP2QQP@LLIB$SET_CURSOR FOR$WRITE_SF FOR$IO_ENDXLIB$SET_CURSOR״萏[鱼70ꐏm FOR$WRITE_SFk FOR$IO_X_DA FOR$IO_END UVT100BLIB$SCREEN_INFOLIB$SET_CURSORLIB$ERASE_PAGELIB$ERASE_LINE LIB$SIGNAL$CODE $PDATA|$LOCALP}FVLDCDCTL FOR$IO_END FOR$IO_X_DA FOR$WRITE_SF PP,P2P 8P>PIP"qPP:P P P PPPiPPPP  P,PEPMPP Pww1);H011VAROUT01 5-Sep-1986 15:08 5-Sep-1986 15:08VAX CFORTRAN V4.4-177P10^ (BASE 16)  (BASE 8) !!$P    Q -Q(1X,F . )QP [>(>,$TYPGETk4ERRMSG1Rk߫<FOR$STOP2PP@SbS  FOR$WRITE_SFS~ FOR$IO_B_V FOR$IO_END S  FOR$WRITE_SFS~ FOR$IO_B_V FOR$IO_ENDSDP2SS2PQQSTDA=P}SSqSpPUd"PqPS=&U'UPQUUQUUPpUWd>UqSU=&WWWPPQ QW WUUQ Q2WWG2QQA٫ PQ QWWPQ QP P WQ2QQA W2WW2PP@GGb FOR$WRITE_SO}~ FOR$IO_D_V FOR$IO_END1bbjP2WG=Pd~ FOR$ENCODE_MO}~ FOR$IO_D_V FOR$IO_ENDᛏd1P2WW2PQQWUEA=PWիWЫPPPPPQ2QUE00Kdb^[Z[[[\[}EUUSSSUUSS2SSC@PS2UUECSP=Qb FOR$WRITE_SF2WP@ FOR$IO_B_R FOR$IO_X_DA FOR$IO_END1bbjP2QA=P) FOR$ENCODE_MF2WWG FOR$IO_B_R FOR$IO_X_DA FOR$IO_END 1P2WW2PQQWSCA=Pb0 FOR$WRITE_SFݫ FOR$IO_L_V FOR$IO_END1bbjP2WG=P0  FOR$ENCODE_MFݫ FOR$IO_L_V FOR$IO_EFND 1>HDMOUT1P2WW2PQQWSCA=PWիWЫkkkPkQQSSkSSUSUU UP S2SSECQk= Pb5 FOR$WRITE_SF2WP@ FOR$IO_B_R FOR$IO_X_DA FOR$IO_END1bbjP2QA=PJ  FOR$ENCODE_MF2WWG FOR$IO_B_R FOR$IO_X_DA FOR$IO_END 1P2WW2PQQWSCA=PbO FOR$WRITE_SF}~ FOR$IO_D_V FOR$IO_ENDbbjP2WGG=PU; FOR$ENCODE_MF}~ FOR$IO_D_V FOR$IO_ENDB VAROUTTYPGETERRMSGMOUT$CODEY$PDATAp$LOCALhOAR8V0DIGV CONSFOR$STOP FOR$IO_END FOR$IO_B_R FOR$IO_B_V FOR$IO_L_V FOR$IO_D_V FOR$IO_X_DA FOR$WRITE_SF FOR$WRITE_SO FOR$ENCODE_MF FOR$ENCODE_MOzP (Pu7P9P;P=P!?PAPCPEPGPfPMkP$PH3P PP0!P*;PXPPPPP$PPP<0Pm^PPPP3PPPJUPH~P%PPP<PP.PWPxP3PPPJP.P%QPMXP]P=ww1r);H011VARSCN01 5-Sep-1986 15:08 5-Sep-1986 15:08VAX FORTRAN V4.4-177?P P[I^2 PP$Ь ޫPFOR$INI_DES1_R2RSTVW2P@% ZPZ2ZQAQQ WWQQ 1Q$SVSV1QAQ[PSV1TP}@QXTYYXTQPRQDRQ#Q0Q9PVS1P}0Q XXQP11R12PQ@a%12P@aX@P@X@PX1X1P1P1Q2XXX2QYYXUEI=QiXQ2PPP2QYYPUEI=QiY>,> 08(GNѰJXPPQQ  QQ>,> 08(GNYRYXXPPXXP?XXPPXYPPYYPYYPPY2YY?Y2XXXYIIa=ZSTP}P} VARSCNGN$CODE$PDATAL$LOCAL8VD2R DOLLRDLFG DCTLFOR$INI_DES1_R21FPzPP PPP&P PP PPP=PK6PPPPP7P' P"PPP 0P2Pt5Px=PQPvPa~PYPRPJPR/PCPyPP&PPP PPww1 *;H011VBLGET01 5-Sep-1986 15:09 5-Sep-1986 15:09VAX FORTRAN V4.4-177EPP[>> kXVBLGT2P@T VBLGETXVBLGT%$CODE$PDATAL$LOCALww17*;H011VBLSET01 5-Sep-1986 15:09 5-Sep-1986 15:09VAX FORTRAN V4.4-177[PP[>> kXVBLGT2P@>> kXVBLST_ VBLSETXVBLGTXVBLST6$CODE$PDATA$LOCALww1u);H010VVARY01 5-Sep-1986 15:07 5-Sep-1986 15:07VAX FORTRAN V4.4-177P P00SddcYTADATADATADATADATADATAMjrP[Ь Ꞽ$ VARSCNӵ12PV@f,1ꞼD@VARSCN׵12P@f,1Ꞽd`VARSCN̵12P@f,11Ꞽ˄ˀVARSCN޵N12P@f,11PW2PQAx=PXꞼˤ2XP>@x˴ˠVARSCN12P@f;1=XYP2YQQ2PZZQRBJW=PFVLDGTڕQ,naP##vPQxRBR PQ,nSawv0PQxRBR PPQ2RSTRTUzUX{XXXXTXUEXUESXHUQHQYHZVV@g@@P YUUT}QP QA SxTDT P>,0(FNDRC1SzP{PPPPPQƏPQQ2TQTQ2QPQPw>EYXRRPRUzUU{UUUUUXHHH䰼HUTEEXCgYSmXUZYJS XߕCgEXXERVHUVT100 FOR$WRITE_SF FOR$IO_END>,0(FNDRC WRKFILFVLDGTFNDRCFVLDSTUVT100$CODE:$PDATA`$LOCAL00[db^[Z[[[\[}UFILEMXNCELRCLACTFRMp$QVCMN DEFVBXFMTBFRMFILES FOR$IO_END FOR$WRITE_SFPP0P2P`4P6PIP>P P]PEP,PCPHP VPP>PPPPP(P 1P5>P|PbP P9P#PPP PhIPbRP!iP sPP+PPww1h(;H011WRKINT01 5-Sep-1986 15: V03 5-Sep-1986 15:03VAX FORTRAN V4.4-177nP P2PPzPP{PPPPPQRPRPRQPPPQQRRPPR2RRzRR{RRRRRPRPP G WRKINTh$CODE$PDATA$LOCAL#P-PXP_Pww1`);H010WSSET01 5-Sep-1986 15:09 5-Sep-1986 15:09VAX FORTRAN V4.4-177 P P    Q2Q\L L = QQW\2QR R2\SRSC = \=-QQPR2Q\3RLPP=Q<PQ2Q\LLLSL5=PQ  P2PQA=P WSSET$CODE$PDATA$LOCALBITSFILEMX.FVLDMTYPDLFGMFILESFMTBFR DEFVBXVBFRMp$QVCMNNCELww1>)_˴W FOR$WRITE_SF2P@˳ FOR$IO_B_R=U FOR$IO_END ˴ˀFVLDGTܕ1dPU2UQ Aˣ=PU4WRKFIL˛1ˤ\d~ FOR$ENCODE_MF횏dUV2VP@# FOR$IO_B_R=UV FOR$IO_END^1P2PUE˚V QQVVQ3QE˨= P ˲()˳ːTYPGETˤ˨d~ FOR$ENCODE_MOG FOR$IO_D_R FOR$IO_ENDˤ˨d~ FOR$ENCODE_MOWWG FOR$IO_L_R FOR$IO_ENDb FOR$WRITE_SFJZW2WP@ˣ FOR$IO_B_R=ZW FOR$IO_ENDˠUVT1001W ˬUVT100˼UVT100$h FOR$WRITE_SF2 ~ FOR$IO_W_V_T2TP@# FOR$IO_B_R=mT FOR$IO_ENDUVT100 W˼UVT100IN2ASˠUVT100>: FOR$WRITE_SF2P@# FOR$IO_B_R= P2P~ FOR$IO_W_V2~ FOR$IO_W_V FOR$IO_ENDR2~ FOR$READ_SF FOR$IO_X_DA FOR$IO_ENDGETTTLGTMUNGR2P@@ˣ=2P@ˤ@˥'&%m` m CMDMUN2P@ˣ @ˣ=UVT100ȶˤ+˥J1ˤ+˥N1  FOR$WRITE_SFW2P@ˣ FOR$IO_B_R=W FOR$IO_ENDˤ*1>USRCMD1ˤ-1UVT100˼UVT100b FOR$WRITE_SF2P@ˣ FOR$IO_B_R=2 FOR$IO_ENDb FOR$READ_SF FOR$IO_X_DA FOR$IO_END߰PWQ2PT4T2aWZTZ2QVF'JW2WZZTDW42QTD' WPP=Q1PˤS˥CPˤN˥SPPP PP1ˤ<s 2~ FOR$REWIND1ˤ@ FOR$CLOSEFOR$OPENP11ˤO˥V˦+˧+˦-˧-1ˤA1 4GN1 P2PQAˣR AˣC =2P 1       ڏPPQQQQPP1P1b PQQQQPP1P<:1ˤO1BD˥RPP  PPB˥RPP  PPD>PPBBPPBPPDDPPDˬINDEXPFFF(H˸VARSCNӵP1˦D11ˤF1ˬINDEXPV2VTDˤINDEXՠVPPVVPPVV12VP@ˣDˤASSIGNXVNVVZV\GNXXV\ FOR$READ_SF FOR$IO_X_DA FOR$IO_END=V VTcP2Q A'=P\ FOR$READ_SF FOR$IO_X_DA FOR$IO_ENDW XY2TP?PZ2YUUZP@ L@ aN FVLDSTREFLEChWRKFIL˚nPQ2QSC#=PQEUPW2PQ2WSC'A#=UP,WRKFIL=XYz=VT< FOR$CLOSE1ˤE1ˬINDEXšPFFFFd1FPnVVPPVVHDREFLEChWRKFIL˥D2FP@ˣXTSEDӰP2PVF#=nPfhjln   d ˥"˥Tl˥VhnH12FP@˧0@˦#@˥0@ˣP@ˤ#@ˣ@@ˣZj@ˣ+@ˣ-h@ˣ[@ˣ.h@ˣ(h@ˣ"l@ˣ_@ˤ@pSVBL2FP@ˣ_@ˤ#pSSTR2nP2FVFˣ@#Fˣ fFn1lhˑ˚jhV3V˚˚pˈISGNjP3P˚fːFVLDST,WRKFILఏr1ˤM˥S˥Hݑ˥S1˥H1˥P˥0PP00kdb^[Z[[[\[}e1ˤD1˥S1ZˠGNյ11Pk˧DRk˦C ˦R "$ V˦R2P@L@nbN2P?P@L@aN"$VkWLN Z˴XVBLGTܡ"YY~^$ UU~^XVBLGT^eW PeWRqPR1Y~^U~^XVBLST^XVBLST> 1˦RǫPU2Y?Y2RRYIRIaQ$S2SS?S"T2TTTSCICaIaRCQCa$"f=PU"$ =Z11˥L11ˤV˥F˥M1ˤCˤI1ˤ11ˤ41ˤWBD L pbN ZW3 LLPPUUPPUULUPPUUPP1W3PUUPPUUW4 LUPPPPUL1W4PPUUUUW1 N UPPUUPP NPPUUPPUUN1W1gUPPUUPPW2   NPUU  UUPN1W2WWPP  PP2P?P2WWP@ j@ aŪ1ˤR1˥B˦*ְ˄VARSCN1LN 1}} 1P˥SP˥F˥R˥R˥E˥I˥1˥M˦I1ˤKT1 ˤ FOR$CLOSEˬUVT100 ఏ1ˤLFHhVARSCNP11ˤ>1PPPZZ  Z P1 Z1PW LZU N˸FVLDGT1LN ް2˥>ްREFLECWRKFILͰSVVn2VP@'@'2P@ˣSCMP=SV   Ȱr1=UNH=WL41ˤZ1˥A1ˬUVT100 FOR$WRITE_SF FOR$IO_END2~ FOR$READ_SF2P@' FOR$IO_B_R=i FOR$IO_END(Y1ˬUVT100Ю1˥E1FbHVARSCNдFFdHP2P@ˣ:VARSCNPQ@ Q:Q>: QQQ@@>>@ "$&("1* ,1=1PQQQ WWQ QQQ "$&(lq# QW ZR2WY2RT?TYTD LD aN=ZR=QW``)}GDˤREFLEC˴REFLECFVLDGTTFVLDGTT1WRKFILWRKFILTFVLDSTTFVLDST˚˚˚˚˞˞˞˞˥R˥A1˥R2 468xRELVBLˤI$WRKFIL4WRKFILDWRKFILTTYPGETdTYPSETXVBLGTtXVBLSTFVLDGTFVLDrSTӠ"$ &(1˥VTTYPGETdTYPSETXVBLGTtXVBLST˥DFVLDGTFVLDSTP2PTD˙D˝= P4WRKFILۑ˥FP2PTD#D'=nP4WRKFILԠ"$ &(=̒ PGETݱ1ˤG> PGGETPPPP1 FOR$REWIND FOR$CLOSEL FOR$CLOSE\FOR$OPEN1_ˤW1ˤHtT1P˥T˦WT0T90TPW0W90W PTWT WWTTWWPP1ˤT˥E簏n2nP@˦@@ n=On2P@1ˤ 1ˤPP@P@@P2PPzPP{ PPPPP@PPZ P3Pˤˤ@1˥W˥VARSCN絫3W˥1ٴ<FVLDGT1ٱLPN1ءS1ذPPPWTWQWRQRPRY2RR2YYIˣBˣ=TQ_ˤ_˥{˦˨ǧ ˨2P@ˣ=00{db^[Z[[[\[}u1^1+ FOR$WRITE_SF FOR$IO_END1? FOR$CLOSEASSIGNܵ112P?P2TTP@ @ aDREFLEC 1 1111P2QA=PD  1~^`TUVT100^ˠUVT100ˀFVLDGTPPDDPPTW FOR$WRITE_SF2P@˳ FOR$IO_B_R=T FOR$IO_ENDv14WRKFIL˚dPT2TQA#W RRWWRR3A#=PTˤ\d~ FOR$ENCODE_MF욏dTR2RP@# FOR$IO_B_R=TR FOR$IO_END1P2PRB˚T QQTTQ3QB˨= P ˲(˨)˳ːTYPGET1ˤ˨d~ FOR$ENCODE_MO2P?P2RRP@ FOR$IO_D_R FOR$IO_ENDˤ˨d~ FOR$ENCODE_MO2P?P2RRPPP@ FOR$IO_L_R FOR$IO_ENDb FOR$WRITE_SF2P@RT2TPw@ˣ FOR$IO_B_R=RT FOR$IO_ENDᚏP2RBˣ=Pk XQTCMDREFLECWRKFILUVT100FVLDGTTYPGETIN2ASGETTTLGTMUNGCMDMUN FOR$CLOSEASSIGNUSRCMDFOR$OPENGNRELVBLINDEXVARSCNFVLDSTSEDSVBLSSTRISGNXVBLGTXVBLSTTYPSETSCMPDTRFINFOR$EXITPGETPGGET.$CODE!$PDATAL $LOCALFOOBARRCLACTPNMSHxIOLVLFUBARDOLLRDCTLD2RNCELnILNICPOShOARARGSTR8VKLVLMODPUB DEFVBXFFGGFVLDC>DSPCMNVXCMDNULXXX FOR$REWIND FOR$IO_END FOR$IO_B_R FOR$IO_W_V FOR$IO_L_R FOR$IO_D_R FOR$IO_X_DA FOR$READ_SF FOR$WRITE_SF FOR$WRITE_SF FOR$ENCODE_MF FOR$ENCODE_MOHPQPPPPXP7PyPYPP:!PhP1nP+qPeP4P.P+P9P 5PCPPPVPWnP?PPTYPfbPjP-mP$qP$PP P<BPePlP vP%~P Pf%P;P P4%P%PRP "VP"PP P P P7$P PP PPPP# P,P<P#GP$^P!sP4{P,PPPPPf#PP?#PPP P#z(P4P@P+]P"jP P"PPPP* PE PT PW Pe P P P P P: P$ P M PQ P P) P1@ PP PO P P P P P P! P( P1 P9 PB PK PX P` Pn Pv P P P P P  P P  P P P & P? PT PTZ PP c P`o P~ P P~ Ps P PK P P PP  P{P )P JP_PP(P1PPEPP\PP@P PP#P/P7P :Pd?P'LPVPPGP@P8P1PZPP4P,P$P (PEPJLPCTP;[P4PPP4P,P$PIP/P=PFPQMP2fP{PPyPPPPPPPPPP'P@1PePoP$PPP"|PrPfP,PaPJP PP8PPPiP~P{Pw?POP]PaP$P)P#PPP&P PDPPPP*P3POPUPhP vPPPy P,PPP3P.P? PP/EPbPhPoPEP)P#PPP3PPP4!P-/PqP PvPWPP PP&P/P00ddcYTADATADATADATADATADATA}PRPIP@PP P PBP TP ]P uPPPAP PBPt tP PPPP$PPdP\WPgbP\yPPP*P PPPP!P +P9PDP[P.P P P PPPP+PQP [PDdP;PPPIPAP:P>P P@ P5 P-J PP Ps PPz PI PA P: Pg P P- P P~!P!P/!P' "P "P"P"Pj"P"P"P$"P #P O#Ph#PIt#Pw#P'#P#P#P #P T$P `$Pn$P$P $P$P $P $P$P %P%P#%P -%P6%PEc%P n%PLz%P %P%P$&P3J&P"&PR&PG&P>&P$/'P='PH'P'P'P'P 'P1'P(P(P(P3(P@5(P?(Pt[(Pp(P|(P (P (PI0(PP(P3(P (P(P(P)P')P\/)PT])P)P)P7)P)P)P)P)P)P*P-*P P*P*P *P+P+PX+Pf+Pn+Pw+Pw+Pn+P,P6[,P,P,P;,P+-P5-P>8-Pyr-P?v-P;ww1@%*;H011XVBLGT01 5-Sep-1986 15:09 5-Sep-1986 15:09VAX FORTRAN V4.4-177P<[PQQQR2SS2RTTSUED=R}  PPPPQQpQP2QQďPQ2PPPQ}A x  <XVBLGT$CODE$PDATA$LOCALFILEMXMIRROR8VBITS.FVLDMTYPp$QVCMNVBFMTBFRPi$P3*P-^PvPww1l*;H011XVBLST01 5-Sep-1986 15:09 5-Sep-1986 15:09VAX FORTRAN V4.4-177P[PQQQ} R2S S2RTTSDC=RPPPP QQpQ P2QQďPQ2PPPQ} A x XVBLST$CODE$PDATA$LOCAL8VFILEMXBITS.FVLDMTYPFMTBFRVBNCELMIRRORp$QVCMNPe$P/*P)ZPrPww1*;H01/ZERO01 5-Sep-1986 15:12 5-Sep-1986 15:12VAX FORTRAN V4.4-177PPQ2P\2QR\RBSSSSBSR2STRTD =S=Q=PPQ2P\\2QR\RB=Q=PG ZERO~$CODE$PDATA$LOCAL8Vww1R*;H01/ZNEG01 5-Sep-1986 15:12 5-Sep-1986 15:12VAX FORTRAN V4.4-177!P50P P [>kTYPGETERRMSG1߫FOR$STOP2PP@P2QQ2PRRQSCB=PsQ2PP2QRRPSCB=Qի2PP@Pn ZNEGTYPGETERRMSG$CODE $PDATA0$LOCAL8VFOR$STOP|P'P1P3P35P_7P_9P;P=P?P_AP3_PoaPjPCP>PPPww% VAX-11 Librarian V04-00k!'(   00db^[Z[[[\[}GNGVSCANHIHDIGTINDEXISGNMANDMOR NORM $ PCGRAF$MAINPLOT%SHADER101-GN0128-Feb-1986 14:5028-Feb-1986 14:50VAX FORTRAN V4.4-177P nP [Ь PQRSTUTV2TWGeWWWW-RW QQW W+W-PPW+W-W+W-W0W9   X0WWX =STVPPPPR E GN$CODE$PDATA$LOCAL]:Pb?PGPMPRPDWP\PcP hP4mP/rP$wP|P PP ww1b011GVSCAN0128-Feb-1986 14:5028-Feb-1986 14:50VAX FORTRAN V4.4-177SPP[2 PP$Ь ޫPFOR$INI_DES1_R2PQRS2TUDe% TVWV2VXHeXX SSXX XAX[WPQL@XYQZZYQXPXDX0X9WPRL0X RYYXRW=TVyPQRc GVSCANGNGVSCANHIHDIGTINDEXISGNMANDMOR NORM $ PCGRAF$MAINPLOT%RESHD%SHADER $CODE$PDATA,$LOCALFOR$INI_DES1_R25PePkP oPtP`{P0P)PPPP PPPFP PP&PPPPPPww1@O011HIHDIG0128-Feb-1986 14:5028-Feb-1986 14:50VAX FORTRAN V4.4-177bPмPԼԼ ˏQSQQQQQ"JF"Pּ ˏPQQQ"D"P׼ ˏPQQQJPG HIHDIG\$CODE$PDATA$LOCALP P#%P@Pww1ɭ010INDEX0128-Feb-1986 14:5028-Feb-1986 14:50VAX FORTRAN V4.4-177dP P [ЬQRP@SQPQPQЫPD INDEXE$CODE$PDATA$LOCAL 'P2Pww1O׭01/ISGN0128-Feb-1986 14:5028-Feb-1986 14:50 VAX FORTRAN V4.4-177.P[ԫЫPA ISGN($CODE$PDATA$LOCAL PPPww1901/MAND0128-Feb-1986 14:5028-Feb-1986 14:50VAX FORTRAN V4.4-177P[ҼPPPC MAND$CODE$PDATA$LOCALww1WD01.MOR0128-Feb-1986 14:5028-Feb-1986 14:50 VAX FORTRAN V4.4-177P[ɼPB MOR$CODE$PDATA$LOCALww1r01/NORM0128-Feb-1986 14:5028-Feb-1986 14:50VAX FORTRAN V4.4-177P< [ռѼPмQAQRޫSPTTTaRQPѫPQPRSЫTDTSU@QRSGQQRЫSCSRTDQPRQ <NORM$CODE$PDATA($LOCAL EXTRA00ddcYTADATADATADATADATADATA  P PVPww1 -016 PCGRAF$MAIN0128-Feb-1986 14:4928-Feb-1986 14:49VAX FORTRAN V4.4-177P SYS$OUTPUT:SYS$INPUT:+$Give output dataset name>$Enter plot command>! Spaces not seen. Find spaces at , Usage: PCG file V1:V2 [C] V3:V4[+hnnnwnnn] # First variable invalid. Try again. Colon missing in first range.# 2nd variable in 1st range invalid.. Variable pair n ot in a row or column together! Invalid format of [c] character  Invalid second variable range." Invalid 2nd variable of 2nd range2#  P   2 $ $ ASSIGN@ 0 0 ASSIGN@;  ; INDEX@8 < @   ; INDEX@ < @      D H L  P T X  D H \ ` d X  D H h l p X  D H t x | X     Q S V Q HP [^ЫDWASSIGNASSIGN<Y= FOR$WRITE_SF FOR$IO_ENDq FOR$READ_SF߫ FOR$IO_L_Rˬ FOR$IO_X_DA FOR$IO_ENDЫP@ASSIGNߑ:TtYYZ FOR$WRITE_SF FOR$IO_ENDq FOR$READ_SF? FOR$IO_W_R˜ FOR$IO_X_DA FOR$IO_ENDԫVR|PRS}PS|L}LV|T}UPQQPPQQ\2\QA{ԫԫINDEXPPP212PZJ{P2P  $GNƑJ|hJ|HЫ(J|wJ|WЫ(J|INDEXPPZZPPP2P$$GNΑJ|hJ|HЫ(J|wJ|WЫ(8INDEXPZZP2PP@{HDINDEXPXZ(X(x FOR$WRITE_SF2Z~ FOR$IO_W_V2X~ FOR$IO_W_V2\~ FOR$IO_W_V FOR$IO_ENDֱZ(1X(1ZX2X\L{2ZZJ|XPASSIGN L{X2XX\PLOTX,n0pGVSCANի@ FOR$WRITE_SF FOR$IO_END13Ы4P@{: FOR$WRITE_SF FOR$IO_END1 4,n0WDːGVSCANЫDWի@ FOR$WRITE_SF FOR$IO_END1ѫ8Hѫ%AR %\%\%/#/#//G%  Enter nnR or nnC to insert nn rows/columns>%AR %\%\%/#/#//J% Enter 1,2,3,4, or 5 for Auto Move Up,Down,Left,Right, or None>%M%\%\/#/#//% %*%%K%  Enter 1,2,3,4, or 5 for Auto Move Up,Down,Left,Right, or None>%M%\%\/#/#//% %*%W/#/#//RAF% %*%%/#/#//% Enter Mode>%E %??%?%*C - enter mode% %*%%/#00ddddddd}/#// TE *U HERE\*C TE Q=T\*C TE R=U\*C% Enter Mode>%E %\%\% TE *U HERE\*C TE O=(Q-T)\*C TE P=(R-U)\*CTE P#%OP={P#%OP__TE (T-Q)*(T-Q)+(U-R)*(U-R)\*C<% %*%%/#/#//!% Text Enter Mode>%E" %??%?%*C - enter text mode% %*%%/#/#//LA11% Enter from-rangeto-range:%CR %\\%\\% %*%%/#/#//RM*C COPY ROWs OF DATA4*C COPY FRST FROM 1ST CELL TO ROW, THEN FILL IN AREA% %*%% TE *U HERE TE T-1.\R=% TE U-2.\S=%"%Give Start Cell of Row>%L %\ TE *U HERE TE T-1.\B=% TE U-2.\C=%%Give End Cell of Row>%L %\ TE *U HERE TE T-1.\D=% TE U-2.\E=%'%Give Bottom Left of Left Column>%L %\ TE *U HERE TE T-1.\F=% TE U-2.\G=%L A1 TE G-C+1.\H=% TE B+1.\I=%*CLOOP*C LOOP*COOPCR P#%BC P#%IC:P#%DE TE C+1.\C=% TE E+1.\E=% TE H-1.\H=% TE *F LOOP*C SHOULD BE DONE HERE. EXIT.L A1L P#%RSRF/#LA11% Enter from-rangeto-range:%CR %\\%\\% %*%%/#//L A1VM%Loading... %*%%.%Enter name of file to load>%$@DK:GETNAM %\%\%@TMP.CMD9* Use this instead of AKF.CMD on VAX to provide auto load;* of entire sheets from cell A1 without having to enter any!* more than the filename to load./#/#//RM% %*%%*C COPY ROW OF DATA4*C COPY FRST FROM 1ST CELL TO ROW, THEN FILL IN AREA TE *U HERE TE T-1.\R=% TE U-2.\S=%"%Give Start Cell of Row>%L %\ TE *U HERE TE T-1.\B=% TE U-2.\C=%%Give End Cell of Row>%L %\ TE *U HERE TE T-1.\D=% TE U-2.\E=%'%Give Bottom Left of Left Column>%L %\ TE *U HERE TE T-1.\F=% TE U-2.\G=%L A1 TE G-C+1.\H=% TE B+1.\I=%-*C MOVE INNER LOOP TO INSIDE A CELL FOR SPEEDCA A1 A0AEV J=C+1.\*U XQTCM CR P#%BC:P#%DE P#%BJ:00ddddddddP#%DJ\C=J\E=E+1.\H=H-1.\<RCA A0 A1*C SHOULD BE DONE HERE. EXIT.L A1L P#%RSRF/#/#//VM% %*% L D#-22#-22L D#0#19OA P#0#0V/#/#//VM% %*%% L D#-22#-22L D#0#19OA P#0#0V/#/#//@%Give new display origin from cursor down and right>%OR %\%\% %*%%/#/#//% %*%%@%Give new display origin from cursor down and right>%OR %\%\/#/#//VM% %*%% L D#-22#-22 OA P#-6#0V/#/#//VM% %*%% L D#-22#-22 OA P#-6#0V/#/#//%Give desired cell>%L %\%\% %*%%/#00udvddddddd/#//OA P#0#0% %*%% L D#-22#-22/#/#//VM% %*%% L D#-22#-22LD#6#0OA P#0#0V/#/#//VM% %*%% L D#-22#-22LD#6#0OA P#0#0V/#/#///%Give new Upper Left display origin>%L %\%\OA P##L P##% %*%%/#/#//% %*%%VM TE *U HERE TE T-1.\B=% TE U-2.\C=%L A399DF A399:B399 [A]$%Give Start Cell of Range>%E %\L B399%%Give Ending Cell of Range>%E %\LA1PPNTMP.TMP00 }@DK:PLTIT TMP.TMP __{A399 {B399L A1L P#%BC$DEL PLTMP.TMP;V/#/#//VM% %*% L D#-22#-22 OA P#0#-19V/#/#//VM% %*% L D#-22#-22 OA P#0#-19V/#/#//LA1% %*%%7% Enter S or N for Symbolic or Numeric save:%PP%&%&/#00dddddddd/#//RMTE I=C=D=E=0.0\*C-% %*%% 1*C CELL TO REGION OF WHICH IT'S UPPER LEFT CORNER4*C COPY FRST FROM 1ST CELL TO ROW, THEN FILL IN AREA-TE *U HERE TE T-1.\R=% TE U-2.\S=%"%Give Start Cell of Row>%L %\ TE *U HERE TE T-1.\B=% TE U-2.\C=%%Give End Cell of Row>%L %\ TE *U HERE TE T-1.\D=% TE U-2.\E=%'%Give Bottom Left of Left Column>%L %\ TE *U HERE TE T-1.\F=% TE U-2.\G=%L A1 TE G-C+1.\H=% TE B+1.\I=%'TE C+1.\J=% =CR P#%BC P#%BJ:P#%FG 8CA A1 A0 <EV P## ODF A1 [*] 9EV *U XQTCM CR P#%BC P#%IC:P#%DE \C=C+1.\E=E+1.\H=H-1.\< 8R 8CA A0 A1 *C SHOULD BE DONE HERE. EXIT.L A1:L P#%RS /#4% Move to begin dest with U,D,L,R, or G cell>%__{%?% TE *U HERE TE T-1.\L=% TE U-2.\M=%$* L,M ARE COL, ROW OF START OF DEST.1* NOW ALLOW MOTION LIKE THIS FOR END OF DEST AREA@DK:ENDDST.CMD9%Move to start src with U,D,L,R, or G cell, or CR>%__{%?% TE *U HERE TE T-1.\R=% TE U-2.\S=%** R,S ARE CURRENT COL, ROW FOR P#%RS LATER * FROM L A1* GO GET END SRC RANGE.@DK:ENDSRC.CMD3% Move to end dest with U,D,L,R, or G cell>%__{%?%? TE *U HERE TE T-1.\P=% TE U-2.\Q=%** P,Q ARE CURRENT COL, ROW FOR P#%PQ LATER * FROM L A1* NOW DO THE COPYL A1CR P#%RS:P#%NO P#%LM:P#%PQL P#%RS4% Move to end of src with U,D,R,L or G cell>%__{%?%? TE *U HERE TE T-1.\N=% TE U-2.\O=%** N,O ARE CURRENT COL, ROW FOR P#%NO LATER * FROM L A1@DK:BGNDST.CMD TE *U HERE TE T-1.\R=% TE U-2.\S=%** R,S ARE CURRENT COL, ROW FOR P#%RS LATER * FROM L A1* GO GET END SRC RANGE. @ENDSRC.CMD00dddddddd9$IF F$SEARCH("TMP.CMD;*") .NES. "" THEN $DELETE TMP.CMD;*$OPEN/WRITE TP TMP.CMD$WRITE TP "GPX" $WRITE TP P1 $WRITE TP "0" $WRITE TP "0" $WRITE TP "1" $WRITE TP "1" $WRITE TP "V" $CLOSE TP/#//L A1VM%Loading... %*%%.%Enter name of file to load>%$@DK:GETNAM %\%\%@TMP.CMD9* Use this instead of AKF.CMD on VAX to provide auto load;* of entire sheets from cell A1 without having to enter any!* more than the filename to load./#/#//RM!%Enter horiz. increment>%EV B=%\%$%Enter vert. increment >%ED ;;\C=%\%+%Enter number cells to fill in>%ED ;;\H=%\%%Enter Start Value>%ED ;;\D=%\%#%Enter value increment>%ED ;;\F=%\%ROEV *U XQTCM DF P## [*]\P##=%=D+0.\*WF\*U XQTCM ED / // \*P P#%BC\D=D+F\H=H-1.\<RTE B=%\P##=__{P## \%=BR/#( PortaCalc Keypad Standard KeysE+----------------+--------------+-------------------+---------------+E|PF1 |PF2 |PF3 |PF4 |E| GOLD Key [] | HELP | Wide [Narrow] | Recalculate |E+-------------------------------------------------------------------+E|7 Origin Absol: |8 ^ |9 |- |E| Set Upper Left | Scroll Up | Save Sheet | Set Enter |E| display to Loc | [TOP OF SHT] | [Cell to Reg] | Direction |E+-------------------------------------------------------------------+E|4 |5 |6 |, |E| << Scroll | Move to | Scroll >> | Insert/Delete|E| Left | Loc [cur>tp]| Right | Rows/Cols |E+-------------------------------------------------------------------+E|1 |2 |3 Origin Rel: |E |E| Restore Sheet | Scroll Down | Set display down, |N Enter Mode |E|[Copy Row->Reg] | v | right of cursor |T (Exit to |E+---------------------------------------------------|E command |E|0 Copy Range of Cells |. Print Screen |R mode with |E| [Copy Col->Reg.] | [OS Command] | \ char.) |E+----------------+--------------+-------------------+---------------+4 X eXit from sheet H9 - Screen Picture: PortaCalc Keypad Standard KeysE+----------------+--------------+-------------------+---------------+e|PF1 |PF2 |PF3 |PF4 |M| GOLD Key [] | HELP | Wide [Narrow] | Recalculate |E+-------------------------------------------------------------------+o|7 Origin Absol: |8 ^ |9 |- |E| Set Upper Left | Scroll Up | Save Sheet | Set Enter |E| display to Loc | [TOP OF SHT] | [Cell to Reg] | Direction |E+-------------------------------------------------------------------+e|4 |5 |6 |, |Y| << Scroll | Move to | Scroll >> | Insert/Delete|E| Left | Loc [cur>tp]| Right | Rows/Cols |E+-----------------------------------00dddddddd--------------------------------+e|1 |2 |3 Origin Rel: |E |M| Restore Sheet | Scroll Down | Set display down, |N Enter Mode |W|[Copy Row->Reg] | v | right of cursor |T (Exit to |M+---------------------------------------------------|E command |]|0 Copy Range of Cells |. Print Screen |R mode with |E| [Copy Col->Reg.] | [OS Command] | \ char.) |E+----------------+--------------+-------------------+---------------+> X eXit from sheet H9 - Screen PictureI PortaCalc Keypad Standard KeysN+----------------+--------------+-------------------+---------------+n|PF1 |PF2 |PF3 |PF4 |V| GOLD Key [] | HELP | Wide [Narrow] | Recalculate |N+-------------------------------------------------------------------+x|7 Origin Absol: |8 ^ |9 |- |N| Up Lft to Loc | Scroll Up | Save Sheet | Set Enter |N| [Graph histo.] | [TOP OF SHT] | [Cell to Reg] | Direction |N+-------------------------------------------------------------------+n|4 |5 |6 |, |b| << Scroll | Move to | Scroll >> | Insert/Delete|N| Left | Loc [locReg] | v | right of cursor |T (Exit to |V+---------------------------------------------------|E command |f|0 Copy Range of Cells |. Print Screen |R mode with |N| [Copy Col->Reg.] | [OS Command] | \ char.) |N+----------------+--------------+-------------------+---------------+R X eXit from sheet H9 - Screen Picture (L1 SHOWS GOLD)/#//VM%%*% L D#-22#-22 OA P#0#19V/#/#//%Gold 1%*%^00dddddddd/#//^^%GOLD 2=%*%%/#/#//*C COPY ROW OF DATA4*C COPY FRST FROM 1ST CELL TO ROW, THEN FILL IN AREA TE *U HERE TE T-1.\R=% TE U-2.\S=%%Give Start Cell of Row>%L %\ TE *U HERE TE T-1.\B=% TE U-2.\C=%%Give End Cell of Row>%L %\ TE *U HERE TE T-1.\D=% TE U-2.\E=%'%Give Bottom Left of Left Column>%L %\ TE *U HERE TE T-1.\F=% TE U-2.\G=%L A1 TE G-C\H=% TE B+1.\I=% TE B+1.\J=%CR P#%BC P#%JC:P#%FG*CLOOP*C LOOP*COOPCR P#%BC P#%IC:P#%DE TE C+1.\C=% TE E+1.\E=% TE H-1.\H=% TE *F LOOP*C SHOULD BE DONE HERE. EXIT.L A1L P#%RS/#CR P#%BC P#%IC:P#%DE TE C+1.\C=% TE E+1.\E=% TE H-1.\H=%<L A1L P#%RS/#//VM%[?3h%* % L D#-22#-22L D#6#0DB 12,20OR P##RIIV/#/#//VM%[?3l%* %DB 7,20V/#/#//$@TT:/#/#//% %*%RF/#00dddddddd/#//% >Enter Mode>%E %??%?%/*C - enter mode. Also sets numeric keypad mode./#/#//% %*%% TE *U HERE TE T-1.\B=% TE U-2.\C=%LA1PPNTMP.TMP00L A399DF A399:B399 [A]$%Give Start Cell of Range>%E %\L B399%Give End Cell of Range>%E %\ }@DK:PLTIT TMP.TMP __{A399 {B399L A1L P#%BC/#//L T0ET LL Q0ET XL A1=%Setting into /; mode for command entry starting with /%*%*%*=%Setting into /; mode for command entry starting with /%*%*%*=%Setting into /; mode for command entry starting with /%*%*%*=%Setting into /; mode for command entry starting with /%*%*%*=%Setting into /; mode for command entry starting with /%*%*%*=%Setting into /; mode for command entry starting with /%*%*%*=%Setting into /; mode for command entry starting with /%*%*%*=%Setting into /; mode for command entry starting with /%*%*%*=%Setting into /; mode for command entry starting with /%*%*%*=%Setting into /; mode for command entry starting with /%*%*%*=%Setting into /; mode for command entry starting with /%*%*%*=%Setting into /; mode for command entry starting with /%*%*%*=%Setting into /; mode for command entry starting with /%*%*%*/;$MCR PIP PLTMP.TMP;*/DE/NM$OPEN/WRITE FILE PLTMP.TMP$WRITE FILE "TT:"#$PRM:="PP "'P1'" "'P2'":"'P3'" [S]"$WRITE FILE PRM $CLOSE FILE $ASSIGN/USER PLTMP.TMP SYS$INPUT$RUN SYS$SYSTEM:PCGRAF $DEL 'P1';PRO 350 keypad files8The PRO 350 version of PortaCalc has the following filesfor the following keys:KEY FILENAME (.CMD assumed)Hold Scr none - no actionPrt Scr none - no action BREAK KYM SETUP KYN F5 KYOInterrupt none - no action Resume KYV Cancel KYWMain Screen KYX Exit KYY F11 (ESC) KZA F12 (BS) KZB F13 (LF) KZCAdd'l Opt's KZD HELP KZFDO KZGF17 KZIF18 KZJF19 KZKF20 KZL Find KYAInsert Here KYB Remove KYC Select KYDPrev Screen KYENext Screen KYF Keypad Macros for AnalytiCalc1This area contains files for the auxiliary keypad3of AnalytiCalc (PortaCalc). They should be moved to4an area globally assigned as DK: (a single directory1small virtual disk in RSX or a directory in VMS).- They are written short and small and are NOT5commented since comments would slow them down. Do not6attempt to learn PortaCalc command language from them./The KEYPAD.DOC file contains information on the8% construct herein, and the PortaCalc manual has furth00ddeddddder:information about how to write command files. Please don't9let these be the first command files you read. Do however6use them if desired. Once they are moved, you may want9to rename KEYPADCS.PIC to KEYPAD.PIC to support terminals:with advanced video and/or color. If you are using a VT52,9leave KEYPAD.PIC alone. These files will work with either2PortaCalc-VM (build from COMPILVMX.COM and similar5files on VAX), or PortaCalc-PC (build with PCCMAK.COM7on VAX or modify PCCPDP.COM to build for PDP11; it's inanother directory.)- The other set of keypad files is in the main4directory and does not use a "gold key" style keypad2interaction. These do, and attempt to put the text3"Gold 1" at the upper right part of the screen when4the GOLD key (PF1) is pressed. Other keypad commands4turn this off, but note that the "gold" condition is5cleared by cursor keys or the PF2 key without erasing2this text, so treat the text with a grain of salt.$ ON ERROR THEN CONTINUE$ ON CONTROL_Y THEN GOTO CONT$SET TERM /NOWRAP$SET TERM/NOLINE!$ IF P1 .EQS. "VM" THEN GOTO DOVM"$ IF P1 .EQS. "CS" THEN GOTO DOCS"$ IF P1 .EQS. "XL" THEN GOTO DOXLS"$ IF P1 .EQS. "PC" THEN GOTO DOPCX!$ IF P1 .EQS. "52" THEN GOTO DO52&$ IF P1 .EQS. "HELP" THEN GOTO HELPUSR#$ IF P1 .EQS. "?" THEN GOTO HELPUSR$ DOXLS:C$! Following sort of assign may be used for DK for aux keypad files $ ! ASS/USER sys$sysroot:[dk] dk $ ASS/USER SYS$COMMAND SYS$INPUT $ MCR PCCX $ GOTO CONT$ DOPCX:C$! Following sort of assign may be used for DK for aux keypad files $ ! ASS/USER sys$sysroot:[dk] dk $ MCR PCCXNLAnalytiCalc V19-01B~ Commands start with / Use PF2 for help, Gold PF2 = Kpd@DK:PCCINIT.CMD9$! should go and read SYS$COMMAND on close of PCCINIT.CMD $ GOTO CONT$ DOCS:C$! Following sort of assign may be used for DK for aux keypad files $ ! ASS/USER sys$sysroot:[dk] dk $ ASS/USER SYS$COMMAND SYS$INPUT $ MCR PCCCS$ COPY SYS$INPUT SYS$OUTPUT  $GOTO CONT$DOVM:C$! Following sort of assign may be used for DK for aux keypad files $ ! ASS/USER sys$sysroot:[dk] dk $ ASS/USER SYS$COMMAND SYS$INPUT $ MCR PCCVM $ GOTO CONT$ DO52:$ SET TERM /VT52$ copy sys$input sys$output[?2lC$! Following sort of assign may be used for DK for aux keypad files $ ! ASS/USER sys$sysroot:[dk] dk $ ASS/USER SYS$COMMAND SYS$INPUT $ MCR PCCVM $ GOTO CONT $ HELPUSR:$ COPY SYS$INPUT SYS$OUTPUT' PCC Runs normal PCC-XL for VAX4 PCC VM Runs VAX "VM" version of PCC (obsolete)# PCC XL Same as "PCC" command., PCC CS Runs Color PCC for Colorscan 106 PCC 52 Runs PCC for VT52 (or VT100 in VT52 mode)= PCC PC Runs AnalytiCalc starting in "Enter-Mostly" mode $GOTO FINI$ CONT:$ COPY SYS$INPUT SYS$OUTPUT<[?3l$ FINI:$ SET TERM /NOESCAPE$ SET TERM /LINE/ This directory has the submission from for theFall 86 RSX SIG tape.File Description---- -----------=TTDAT.SLP Patch to M+ v3.0 to provide I/D space on Qbus DH-11 clones.TTYH.SLP Same as above7PROTREE.86A RSX SIG Other media working group tape tree5PRO.86A RSX SIG Other media working group users list< The patches to the YH driver were used at our site to allowGan EMMULEX CS01 to be used on an 11/73 sysgened with I/D space support.JThe existing gen procedure provided by Emmulex required the sysgen be donewith no I/D space support.@ To use the patches apply them to the sysgen kit before startingJsysgen, then proceed with the Emmulex instructions except choose I/D spaceJsupport in Executive configuration. This patch also allows terminals to beset to 19200 baud.G The other media working group has started the spring 86 tapes down thetMtree. Our working group is made of volunteers that will convert the SIG tapesaJto other media including but not limited to RX5000eedddddd, RL02, TK50, 800BPI TAPE,Land 6250BPI TAPE. For more information contact me on how to volunteer or how"to obtain something off the tapes. Bob UleskiBaker Instruments Corp.u100 Cascade DriveeAllentown, PA 18103(215) 264-2800 (work)n(215) 395-9018 (home)serminals to beset to 19200 baud.G The other media working group has started the spring 86 tapes down thetMtree. Our working group is made of volunteers that will convert the SIG tapesaJto other media including but not limited to RX50'U.S RSX SIG Tape Copy Tree, Spring 1986% OHTER MEDIA CONVERSION WORKING GROUP9 This list is all the contacts currently known and their Astatuses. Please look for your name. If there's a mistake or you Bwant to be added to this list FIX THE LIST. The working group now @converts to any media other than 1600 bpi mag tape (RX50, TK50, B...) for micro Vax, micro PDP/11, PRO 350 and others. Please fill Cout the enclosed profile and return it to Bob Uleski so that I can 5update the data base of who has what media available.e9 The tapes for RSX85A, RSX85B, and RSX86A have been sent TCdown the tree. It is your responablity to contact your parent node lAand provide them with tape. If you have trouble contact the tree a2co-ordinator so that I can fix breaks in the tree. o Bob Uleski100 Cascade Dr.1Allentown, PA 181030215-264-2800 !m!--- Arnold De Larisch ! Florida Atlantic University! College of Engineeringr! Boca Raton, Fl 33431h! 305-393-3319t! 1t! 1--- Mark Berman#! 1 Berman's Motoe Express, Inc.R! 1 P.O. Box 1566! 1 Binghamton, NY 13902e! 1 II! 1 I--- Dom DiNollo! 1 I Loral Electronics ! 1 I ECC! 1 I Ridge Hilly! 1 I Yonkers, NY 10210! 1 I 914-968-2500 ! 1 I b! 1 I--- Howard Austerlitz! 1 I Materials Science ! 1 I SUNY #! 1 I Stony Brook, NY 11794-2275l! 1 I 516-246-7918i ! 1 I v! 1 I--- Wendy Busch! 1 I 102 Malott Hall! 1 I JGSM Computing5! 1 I Cornell U.-%! 1 I Ithaca NY 14853 607 256 6300x ! 1 I ! 1 I--- G. L. Griswold ! 1 PO Box 81'! 1 Webster NY 14580 716-872-3522 ! 1 work 716-722-1723! 1 ! 1--- Gary Gehringer ! 1 Aydin Controls ! 1 Dept 60! 1 414 Commerce Dr ! 1 Fort Washington, Pa 19034 ! 1 I S! 1 I--- Chuck Glassmire#! 1 I U. of Pgh. Computer Center ! 1 I 110 O.E.H.*! 1 I Pittsburgh PA 15260 412 624 6355 ! 1 I t! 1 I--- Sharon Weisso#! 1 I NAVSEA SYSCOM Headquarters ! 1 I Code 05NG31! 1 I Washington, DC 20362 ! 1 I Washington PRO LUG ! 1 I 202 692 0789b ! 1 I 8! 1 I--- M. Susie Rider 4! 1 I Westinghouse Defense and Electronics Center! 1 I Friendship Site! 1 I P.O. Box 746-MS M28"! 1 I Baltimore, Maryland 21203! 1 I 301 765 3553- ! 1 I a! 1 I--- John Lundin Jr.! 1 I Academic Computing1! 1 I University of RichmondA! 1 I Richmond, Va 23173 ! 1 I 804 285 6494s ! 1 I ! 1 I--- Jesse Urseryt! EG& G Ortec5! 100 Midland Road! Oak Ridge, Tn 37830o! 800 251 9750! 8! !--- Jamie DollM! 4440 Warrensville Rds! Cleve. OHIO 44128! 216-581-5395 ! 1 ! 1--- Gary Wagner! 1 Amway Corp.4! 1 7575 E. Fulton Rd 26-2C "! 1 Ada, Mich. 49355 616 676 7734! 1 I ! 1 I--- Bob Payne ! 1 I DEC! 1 I Suite 1200p! 1 I 1200 Sparkman! 1 I Huntsville, Ala. 35807n! 1 I 205 837 34408 ! 1 I s! 1 I--- Tom GlenchurJ"! 1 I 1599 Glen Parker, Apt. 12! 1 I Cincinnati, Ohio 45223 ! 1 I 513 542 3847 (home) ! 1 I 0 ! 1 I ! 1 I--- John Vilandre ! 1 University of Minnesota! 1 1-210 HSUA ! 1 Epidemiology! 1 Minneapolis, MN 55455! 1 612 376-4066n! 1 ! 1--- Jim Bostwick4! Cargill Research ! Box 9300, Reasearch bldg.! Minneapolis, Mn 55440! 612 475 62640! I ! I--- Tony Scandora #09 &! I Chicago Area Real Time Society#! I Argonne National Laborator00eeedddddy1! I CMT 205A! I Argonne, Ill. 60439O! I 312 972 7541! I ! I--- Duane C. Richards (! Radiation Management Corporation! 1175 Tower Road ! Schaumburg, Il 60195! 312 310 8650! s! 5! !--- Gary Rice By Hand P.O. Box 5536$ Hacienda Heights, Ca 91745-0536 818 913 7996M 1p 1--- Scott Noltensmeir 1 General Signal  1 3141 Coronado Drive 1 Santa Clara, California 95054 1 408 982 8000r 1  1--- Ron Fredericks, Jr. & Fredericks Biophysics Foundation 1147 Davis Street, No 9  Redwood City, Ca 94061 415 365 1257 t% Other Media Working group data sheet NAME:mADDRESS:PHONE:>What media do you have that we could convert the SIG tapes to?Must have 1600 bpi mag tape.(RX50, TK50, RL02, ...)8(Are you interested in the RSX sig tapes?(Are you interested in the VAX sig tapes?8Are you interested in the Languages and tools sig tapes?#Any other comments and suggestions?ndation 1147 Davis Street, No 9  Redwood City, Ca 94061 415 365 1257 t% Other Media Working group data sheet NAME:mADDRESS:PHONE:>What media do you have that we could convert the SIG tapes to?Must have 1600 bpi mag tape.(RX50, TK50, RL02, ...)8(Are you interested in the RSX sig tapes?(Are you interested in the VAX sig tapes?8Are you interested in the Languages and tools sig tape'U.S RSX SIG Tape Copy Tree, Spring 1986 PRO INTERESTH Bob Uleski100 Cascade Dr.Allentown, PA 18103 215-264-2800 !t!--- Arnold De Larisch ! Florida Atlantic University! College of Engineeringi! Boca Raton, Fl 334310! 305-393-3319 ! 1r! 1--- Mark Berman#! 1 Berman's Motoe Express, Inc. ! 1 P.O. Box 1566! 1 Binghamton, NY 139020! 1 I ! 1 I--- Dom DiNollo! 1 I Loral Electronics ! 1 I ECC! 1 I Ridge Hill! 1 I Yonkers, NY 10210! 1 I 914-968-2500e ! 1 I i! 1 I--- Howard Austerlitz! 1 I Materials Science ! 1 I SUNY #! 1 I Stony Brook, NY 11794-2275l! 1 I 516-246-7918i ! 1 I v! 1 I--- Wendy Busch! 1 I 102 Malott Hall! 1 I JGSM Computing5! 1 I Cornell U.-%! 1 I Ithaca NY 14853 607 256 6300x ! 1 I ! 1 I--- G. L. Griswold ! 1 PO Box 81'! 1 Webster NY 14580 716-872-3522 ! 1 work 716-722-1723! 1 ! 1--- Gary Gehringer ! 1 Aydin Controls ! 1 Dept 60! 1 414 Commerce Dr ! 1 Fort Washington, Pa 19034 ! 1 I S! 1 I--- Chuck Glassmire#! 1 I U. of Pgh. Computer Center ! 1 I 110 O.E.H.*! 1 I Pittsburgh PA 15260 412 624 6355 ! 1 I t! 1 I--- Sharon Weisso#! 1 I NAVSEA SYSCOM Headquarters ! 1 I Code 05NG31! 1 I Washington, DC 20362 ! 1 I Washington PRO LUG ! 1 I 202 692 0789b ! 1 I 8! 1 I--- M. Susie Rider 4! 1 I Westinghouse Defense and Electronics Center! 1 I Friendship Site! 1 I P.O. Box 746-MS M28"! 1 I Baltimore, Maryland 21203! 1 I 301 765 3553- ! 1 I a! 1 I--- John Lundin Jr.! 1 I Academic Computing1! 1 I University of RichmondA! 1 I Richmond, Va 23173 ! 1 I 804 285 6494s ! 1 I ! 1 I--- Jesse Urseryt! EG& G Ortec5! 100 Midland Road! Oak Ridge, Tn 37830o! 800 251 9750! 8! !--- Jamie DollM! 4440 Warrensville Rds! Cleve. OHIO 44128! 216-581-5395 ! 1 ! 1--- Gary Wagner! 1 Amway Corp.4! 1 7575 E. Fulton Rd 26-2C "! 1 Ada, Mich. 49355 616 676 7734! 1 I ! 1 I--- Bob Payne ! 1 I DEC! 1 I Suite 1200p! 1 I 1200 Sparkman! 1 I Huntsville, Ala. 35807n! 1 I 205 837 34408 ! 1 I s! 1 I--- Tom GlenchurJ"! 1 I 1599 Glen Parker, Apt. 12! 1 I Cincinnati, Ohio 45223 ! 1 I 513 542 3847 (home) ! 1 I 0 ! 1 I ! 1 I--- John Vilandre ! 1 University of Minnesota! 1 1-210 HSUA ! 1 Epidemiology! 1 00eeeedddd Minneapolis, MN 55455! 1 612 376-4066n! 1 ! 1--- Jim Bostwick4! Cargill Research ! Box 9300, Reasearch bldg.! Minneapolis, Mn 55440! 612 475 62640! I ! I--- Tony Scandora #09 &! I Chicago Area Real Time Society#! I Argonne National Laboratory1! I CMT 205A! I Argonne, Ill. 60439O! I 312 972 7541! I ! I--- Duane C. Richards (! Radiation Management Corporation! 1175 Tower Road ! Schaumburg, Il 60195! 312 310 8650! s! 5! !--- Gary Rice By Hand P.O. Box 5536$ Hacienda Heights, Ca 91745-0536 818 913 7996M 1p 1--- Scott Noltensmeir 1 General Signal  1 3141 Coronado Drive 1 Santa Clara, California 95054 1 408 982 8000r 1  1--- Ron Fredericks, Jr. & Fredericks Biophysics Foundation 1147 Davis Street, No 9  Redwood City, Ca 94061 415 365 1257nagement Corporation! 1175 Tower Road ! Schaumburg, Il 60195! 312 310 -115; R. C. Uleski 24-MAR-86 05.X15; XXX1 -- MODIFY FOR EMMULEX DH11 EMULATION ON Q-BUS-405,405% .BYTE 16 ;S.19.2 - XXX1 FOR EMMULEX -1293,12939 .IF DF D$$H11!D$$V11 ;XXX1 FOR I/D SPACE ON EMMULEX DH11 -1308,13089 .ENDC ;D$$H11!D$$V11 ;XXX1 FOR I/D SPACE ON EMMULEX DH11/-48; R. ULESKI 03-APR-1985 5.X11; XXX1 -- FIX I/D CODE FOR EMMULEX DH11 ON Q BUS-173 .IF DF K$$DAS5 MOV (R4)+,-(SP) ;;;GET BUFFER ADDRESS -START OF XXX1# CMP @SP,#120000 ;;;IN SYSTEM POOL?- BLO 15$ ;;;Y - VIRTUAL ADDRESS OFFSET, JUMP9 ADD RELCV+2,@SP ;;;ADD RELOCATION CONSTANT TO VIRT ADDR. MOV RELCV,-(SP) ;;; ADC @SP ;;;ADD CARRY$11$: ASL @SP ;;;ADJUST FOR A16, A17 ASL @SP ASL @SP ASL @SP) BIC #^C<60>,@SP ;;;NORMALIZE HIGH 2 BITS5 BISB (SP)+,@R3 ;;;LOAD 2 HIGH BITS OF 18-BIT ADDRESSU4 MOV (SP)+,CAR(R3) ;;;SET LOW 16 BITS OF DMA ADDRESS BR 20$1/15$: ADD RELCV+6,@SP ;;;ADD POOL RELOC CONSTANT) MOV RELCV+4,-(SP) ADC @SP BR 11$ ;;;END OF XXX10 .ENDC ;K$$DAS/BLO 15$ ;;;Y - VIRTUAL ADDRESS OFFSET, JUMP9 ADD RELCV+2,@SP ;;;ADD RELOCATION CONSTANT TO VIRT ADDR. MOV RELCV,-(SP) ;;; ADC @SP ;;;ADD CARRY$11$: ASL @SP ;;;ADJUST FOR A16, A17 ASL @SP ASL @SP ASL @SP) BIC #^C<60>,@SP ;;;NORMALIZE HIGH 2 BITS5 BISB (SP)+,@R3 ;;;LOAD 2 HIGH BITS OF 1;5; COMMAND FILE TO ASSEMBLE BASIC FOR USE UNDER RSX11D;$IDNTFY,IDNTFY/-SP=BASPRE/PA:1,IDNTFY'BASIC0,BASIC0/-SP/CR=BASPRE/PA:1,BASIC0'BASIC1,BASIC1/-SP/CR=BASPRE/PA:1,BASIC1'BASIC2,BASIC2/-SP/CR=BASPRE/PA:1,BASIC2'BASIC3,BASIC3/-SP/CR=BASPRE/PA:1,BASIC3'BASIC4,BASIC4/-SP/CR=BASPRE/PA:1,BASIC4CATB,CATB/-SP=CATB;/; FOLLOWING MODULE IS FOR USE UNDER IAS V3 ONLY;!SPAWN,SPAWN/-SP=BASPRE/PA:1,SPAWN;A; FOLLOWING COMMAND LINE IS USED TO ASSEMBLE THE MODULE IMPUR.MAC:; FOR USE IN A TASK IMAGE. IT THEREFORE DEFINES THE SYMBOL3; "TASK" BY INCLUDING THE HEADER FILE IMPURTASK.MACT;.IMPUR,IMPUR/-SP/CR=BASPRE/PA:1,IMPURTASK,IMPUR;S:; FOLLOWING COMMAND LINE IS USED TO ASSEMBLE IMPUR.MAC FOR7; SYMBOL TABLE USE ONLY. IT THUS OMITS REFERENCE TO THEA6; HEADER MODULE IMPURTASK.MAC WHICH DEFINES THE SYMBOL; "TASK";L)IMPURNOMO,IMPURNOMO/-SP=BASPRE/PA:1,IMPUR;5; FOLLOWING COMMAND LINE USED TO ASSEMBLE SINGLE USERM6; VERSION OF IMPUR.MAC. IT INCLUDES BOTH GLOBAL SYMBOL2; DEFINITIONS AND FSRSZ$ MACRO. THESE ARE MUTUALLYA; EXCLUSIVE IN THE LIBRARY (MULTI-USER) VERSIONS ASSEMBLED ABOVE.,;U6IMPURSNGU,IMPURSNGU/-SP/CR=BASPRE/PA:1,IMPURSNGU,IMPURMMAND LINE IS USED TO ASSEMBLE IMPUR.MAC FOR7; SYMBOL TABLE USE ONLY. IT THUS OMITS REFERENCE TO THEA6; HEADER MODULE IMPURTASK.MAC WHICH DEFINES THE SYMBOL; "TASK";L)IMPURNOMO,IMPURNOMO/-SP=BASPRE/PA:1,IMPUR;5; FOLLOWING COMMAND LINE USED TO ASSEMBLE SINGLE USERM6; VERSION OF IMPUR.MAC. IT INCLUDES BOTH GLOBAL SYMBOL2; DEFI00e!e#e&edddd;5; COMMAND FILE TO ASSEMBLE BASIC FOR USE UNDER RSX11D<; ASSEMBLE IMPUR.MAC FOR USE IN A TASK IMAGE. IT DEFINES THE:; FOR USE IN A TASK IMAGE. IT THEREFORE DEFINES THE SYMBOL3; "TASK" BY INCLUDING THE HEADER FILE IMPURTASK.MAC;.IMPUR,IMPUR/-SP/CR=BASPRE/PA:1,IMPURTASK,IMPUR;:; FOLLOWING COMMAND LINE IS USED TO ASSEMBLE IMPUR.MAC FOR7; SYMBOL TABLE USE ONLY. IT THUS OMITS REFERENCE TO THE6; HEADER MODULE IMPURTASK.MAC WHICH DEFINES THE SYMBOL; "TASK";)IMPURNOMO,IMPURNOMO/-SP=BASPRE/PA:1,IMPURM; 5; FOLLOWING COMMAND LINE USED TO ASSEMBLE SINGLE USERE6; VERSION OF IMPUR.MAC. IT INCLUDES BOTH GLOBAL SYMBOL2; DEFINITIONS AND FSRSZ$ MACRO. THESE ARE MUTUALLYA; EXCLUSIVE IN THE LIBRARY (MULTI-USER) VERSIONS ASSEMBLED ABOVE.,;U6IMPURSNGU,IMPURSNGU/-SP/CR=BASPRE/PA:1,IMPURSNGU,IMPURMMAND LINE IS USED TO ASSEMBLE IMPUR.MAC FOR7; SYMBOL TABLE USE ONLY. IT THUS OMITS REFERENCE TO THE6; HEADER MODULE IMPURTASK.MAC WHICH DEFINES THE SYMBOL; "TASK";)IMPURNOMO,IMPURNOMO/-SP=BASPRE;=; FOLLOWING COMMAND FILE IS USED TO LINK A MULTI USER VERSION; OF BASIC UNDER RSX11D OR IAS.F; THIS COMMAND FILE IS FOR USE WITH THE INDIRECT COMMAND PROCESSOR AT.;'; FIRST BUILD IMPURE AREA SYMBOL TABLE:;TKB @IMPURNOMO;; NOW BUILD PURE AREA:; TKB @BASPUR;+; NOW PUT LIBRARY UNDER [1,1] ON LB: DEVICE;"PIP LB:[1,1]=BASPUR.STB,BASPUR.TSKINS LB:[1,1]BASPUR/LI/ACC=RO;"; NOW BUILD THE IMPURE TASK IMAGE:;TKB @BAS;8; NOW THE TASK MAY BE INSTALLED WITH ANY INCREMENT UP TO8; A TOTAL TASK SIZE OF 16K WORDS. THE TOP 16K OF ADDRESS7; SPACE IS USED BY THE LIBRARY (PURE) PORTION OF BASIC.S;R USE WITH THE INDIRECT COMMAND PROCESSOR AT.;'; FIRST BUILD IMPURE AREA SYMBOL TABLE:;TKB @IMPURNOMO;; NOW BUILD PURE AREA:; TKB @BASPUR;+; NOW PUT LIBRARY UNDER [1,1] ON LB: DEVICE;"PIP LB:[1,1]=BASPUR.STB,BASPUR.TSKINS LB:[1,1]BASPUR/LI/ACC=RO;"; NOW BUILD THE IMPURE TASK IMAGE:;TKB @BAS;8; NOW THE TASK MAY BE INSTALLED WITH ANY INCRE;5; COMMAND FILE TO ASSEMBLE BASIC FOR USE UNDER RSX11M;IDNTFY,IDNTFY/-SP=BASPRE,IDNTFY"BASIC0,BASIC0/-SP/CR=BASPRE,BASIC0"BASIC1,BASIC1/-SP/CR=BASPRE,BASIC1"BASIC2,BASIC2/-SP/CR=BASPRE,BASIC2"BASIC3,BASIC3/-SP/CR=BASPRE,BASIC3"BASIC4,BASIC4/-SP/CR=BASPRE,BASIC4CATB,CATB/-SP=CATBSPAWN,SPAWN/-SP=BASPRE,SPAWN;A; FOLLOWING COMMAND LINE IS USED TO ASSEMBLE THE MODULE IMPUR.MAC:; FOR USE IN A TASK IMAGE. IT THEREFORE DEFINES THE SYMBOL3; "TASK" BY INCLUDING THE HEADER FILE IMPURTASK.MAC;)IMPUR,IMPUR/-SP/CR=BASPRE,IMPURTASK,IMPURD;R:; FOLLOWING COMMAND LINE IS USED TO ASSEMBLE IMPUR.MAC FOR7; SYMBOL TABLE USE ONLY. IT THUS OMITS REFERENCE TO THE6; HEADER MODULE IMPURTASK.MAC WHICH DEFINES THE SYMBOL; "TASK";3$IMPURNOMO,IMPURNOMO/-SP=BASPRE,IMPUR;B5; FOLLOWING COMMAND LINE USED TO ASSEMBLE SINGLE USERL6; VERSION OF IMPUR.MAC. IT INCLUDES BOTH GLOBAL SYMBOL2; DEFINITIONS AND FSRSZ$ MACRO. THESE ARE MUTUALLY1; EXCLUSIVE IN THE LIBRARY (MULTI-USER) VERSIONS. ;U1IMPURSNGU,IMPURSNGU/-SP/CR=BASPRE,IMPURSNGU,IMPUR,;U-; finally... assemble error message text fileE;E!BSCERR11M,BSCERR11M/-SP=BSCERR11MONLY. IT THUS OMITS REFERENCE TO THE6; HEADER MODULE IMPURTASK.MAC WHICH DEFINES THE SYMBOL; "TASK";3$IMPURNOMO,IMPURNOMO/-SP=BASPRE,IMPUR;B5; FOLLOWING COMMAND LINE USED TO ASSEMBLE SINGLE USERL6; VERSION OF IMPUR.MAC. IT INCLUDES BOTH GLOBAL SYMBOL2; DEFINITIONS AND FSRSZ$ MACRO. THESE ARE MUTUALLY1; EXCLUSIVE IN THE LIBRARY (MULTI-USER) VERSIONS. ;U1IMPURS8; $ALOG OBJECT TO MACRO CONVERSION V01.1 13-AUG-86 16:24 D R .TITLE $ALOG ;A .IDENT /F40002/ .PSECT OTS$I ,I,LCL,RW,CON$ ac0=%0, ac1=%1M ac2=%2R ac3=%3( .ENABL LSB$ALOG10:: MOV (PC),R4 BR 6$ALOG:: R CLR R41 6$: SETF $ SETI MOV #126$,R01 LDF @2(R5),AC2t CFCC BLE 116$t STEXP AC2,R1, LDCIF R1,AC3e MULF (R0)+,AC3e LDEXP #0,AC2o LDF R2,AC15 SUBF (R0),AC2 ADDF (R0)+,AC1 DIVF R1,AC2 LDF R2,AC1o MULF R1,AC1 MOV #3,R1 LDF (R0)+,AC062$: MULF R100'e)e*e,e-eddd,AC0 DEC R1E ADDF (R0)+,AC0R BGT 62$ MULF R2,AC0 ADDF (R0)+,AC0L ADDF R3,AC0 TST R4F BEQ 106$S MULF (R0)+,AC0R106$: STF AC0,-(SP)1 MOV (SP)+,R0 MOV (SP)+,R1B 114$: RTS PC116$: TRAP 323 CLR R0 CLR R1 BR 114$<126$: .word 040061,071030 ;these are actually floating point: .word 040065,002363 ;variables, but the disassembler does3 .word 037632,014525 ;not know about floating point  .word 037714,120036 .word 040052,125332 .word 040400,000000 .word 137661,071030 .word 037736,055731 .DSABL LSBC .ENDT 62$ MULF R2,AC0 ADDF (R0)+,AC0L ADDF R3,AC0 TST R4F BEQ 106$S MULF (R0)+,AC0R106$: STF AC0,-(SP)1 MOV (SP)+,R0 MOV (SP)+,R1B 114$: RTS PC116$: TRAP 323 CLR R0 CLR R1 BR 114$<126$: .word 040061,071030 ;these are actually floating point: .word 040065,002363 ;variables, but the disassembler does3 .word 037632,014525 ;not know about floating point  .word 037714,120036 .word 040052,125332 .word 040400,000000 .word 137661,071030 .wo*^*PL(`((v/+h/0h `(* VBPV*&BA  &*LӉ  1@r5@?U?*@ڪArr?[ (U 05JU85t`:jnQ 7$7 @ 7@7 @e @Ç 777P7 @e @Ç 777x7 @e @Ç!ANDOR.ATK/-HD/-FP,ANDOR/-SP=ANDORLB:[1,1]BSCPUR.STB/SS/STACK=0UNITS=0/ J    DATE: 12-MAY-82   FROM:  Hans Goebel ( Department of Medical Physics   TO:  Basic users  + RE: Boolean Functions for Basic  K Anyone who uses Basic soon notices the lack of boolean functions K And, Or, and Exclusive Or if they try to do any number diddling. K This lack has now been corrected. All you need to do is use the K loadable routine ANDOR. This resides in the account DP:[1,202]. E  M2 10 LOAD "DP:[1,202]ANDOR" - 20 CALL "AND"(I,J,K) , 30 CALL "OR"(I,J,K) - 40 CALL "XOR"(I,J,K)   K This is equivalent to saying K=I.AND.J in any decent language G like Fortran. If you have any troubles, please let me know.   h l  Hans00/e0e4e5edddd Goebel  l HWG/pdp se the K loadable routine ANDOR. This resides in the account DP:[1,202]. E  M2 10 LOAD "DP:[1,202]ANDOR" - 20 CALL "AND"(I,J,K) , 30 CALL "OR"(I,J,K) - 40 CALL "XOR"(I,J,K)   K This is equivalent to saying K=I.AND.J in any decent language G like Fortran. If you have any troubles, please let me know.   h l  Hans;ANDOR BOOLEAN AND AND OR;; CALL "AND"(I,J,K) K=I.AND.J; CALL "OR"(I,J,K) K=I.OR.J; CALL "XOR"(I,J,K) K=I.XOR.J;AC0=%0; .MCALL ULODHD; ULODHD START,END,AND,OR,XOR;START:;#AND: JSR R4,@#GTRGPI ;GET ARGUMENTS .BYTE 1,1,2 .EVEN SETI SETF LDF (SP)+,R0 ;GET FIRST ARG" STCFI AC0,A1 ;CONVERT TO INTEGER LDF (SP)+,R0 ;GET SECOND ARG" STCFI AC0,A2 ;CONVERT TO INTEGER MOV A1,R0 ;ARG 1 IN R0# COM R0 ;BIC ISN'T REALLY AN "AND"- ;IT DOES A "NOT" ON SOURCE FIRST (SNEAKY)D BIC R0,A2 ;DO AND, STORE IN A2, LDCIF A2,AC0 ;LOAD AND CONVERT TO FLOATING MOV SP,R5 ;R5 => 3RD ARG' JSR PC,@#NSTORE ;RETURN ARG TO PROGRAMH$ ADD #12,SP ;UN-KLUTZ STACK POINTER JSR PC,@#PARCHK ;CHECK FOR ")"U RTS PC ;BACK TO MAIN PROG;T; A1: .WORD 0( A2: .WORD 0F;T;G"OR: JSR R4,@#GTRGPI ;GET ARGUMENTS .BYTE 1,1,2 .EVEN SETIR SETFC LDF (SP)+,R0 ;GET FIRST ARG" STCFI AC0,A1 ;CONVERT TO INTEGER LDF (SP)+,R0 ;GET SECOND ARG " STCFI AC0,A2 ;CONVERT TO INTEGER MOV A1,R0 ;ARG 1 IN R0 BIS R0,A2 ;DO OR, STORE IN A2;, LDCIF A2,AC0 ;LOAD AND CONVERT TO FLOATING MOV SP,R5 ;R5 => 3RD ARG' JSR PC,@#NSTORE ;RETURN ARG TO PROGRAMN$ ADD #12,SP ;UN-KLUTZ STACK POINTER JSR PC,@#PARCHK ;CHECK FOR ")"T RTS PC ;BACK TO MAIN PROGR;(#XOR: JSR R4,@#GTRGPI ;GET ARGUMENTSG .BYTE 1,1,2 .EVEN SETI1 SETF. LDF (SP)+,R0 ;GET FIRST ARG" STCFI AC0,A1 ;CONVERT TO INTEGER LDF (SP)+,R0 ;GET SECOND ARG+" STCFI AC0,A2 ;CONVERT TO INTEGER MOV A1,R0 ;ARG 1 IN R0 XOR R0,A2 ;DO XOR, STORE IN A2, LDCIF A2,AC0 ;LOAD AND CONVERT TO FLOATING MOV SP,R5 ;R5 => 3RD ARG' JSR PC,@#NSTORE ;RETURN ARG TO PROGRAME$ ADD #12,SP ;UN-KLUTZ STACK POINTER JSR PC,@#PARCHK ;CHECK FOR ")"A RTS PC ;BACK TO MAIN PROG ;A;T END: .ENDR;(#XOR: JSR R4,@#GTRGPI ;GET ARGUMENTSG .BYTE 1,1,2 .EVEN SETI1 SETF. LDF (SP)+,R0 ;GET FIRST ARG" STCFI AC0,A1 ;CONVERT TO INTEGER LDF (SP)+,R0 ;GET SECOND ARG+" STCFI AC0,A2 ;CONVERT TO INTEGER MOV A* :L.I.@8X@8@*8@Z`@:d @( *t`:jnQ 8X88&.I.&;(*(7$7 @ 7@7 e&Z`N  :d .I.b*b777P7 e $Z`  S:d  .I.*777x7 e $Z`  :d G+" STCFI AC0,A2 ;CONVERT TO INTEGER MOV A.LS 1..NONUMBER;.DATE .LM 10;.RM 74 .PS 62,74*P@ PBCD Ef*IA@?0@ @׳>:L]L?ƪ@'BASBROBUG/RW/PR/DA,BASBROBUG/-SP=BASBROLB:[1,1]EXEC.STB/SSIMPURNOMO.STB/SS/ TASK=...BBZASG=TI:1UNITS=1/$BASBRO/RW/PR,LB:BASBRO/-SP=LB:BASBROLB:[1,1]EXEC.STB/SSIMPURNOMO.STB/SS/ TASK=...BBRASG=TI:1UNITS=1/ .TITLE BASBRO;;; PROGRAM TO KEEP A "BIG BROTHER" EYE ON BASIC INTERPRETERS; CALL: MCR>BRO ; .MCALL QIOW$ DIR$ EXIT$S GMCR$$PSW =-2 .MACRO .INH0 MOV $PSW,-(SP) BIS #140,$PSW .ENDM .INH0; MCRDPB: GMCR$:QIODPB: QIOW$ IO.RPR,1,1,,IOST,, IOST: .BLKW 2INBUF: .BLKB 80.*NAM: .ASCII <15><12>/3 Letter task name: /NAMEN:TIPR: .ASCII <15><12>/TI = TT/TIPREN: .EVENRAD...: .RAD50 /.../RADNAM: .WORD 0TINUM: .WORD 0BATFLG: .WORD 0-QIOM01: QIOW$ IO.WVB,1,1,,IOST,, -QIOM02: QIOW$ IO.WVB,1,1,,IOST,,L-QIOM03: QIOW$ IO.WVB,1,1,,IOST,,M'MESS01: .ASCII /Current program file: /,BUFF01: .BLKB 30.P*MESS02: .ASCII /Current line, statement: /BUFF02: .BLKB 14.,,MESS03: .ASCII /Current free space (bytes) /BUFF03: .BLKB 68 .EVEN;S7; FOLLOWING BUFFERS FOR RETRIEVING DATA FROM BASIC TASK<;< DATSIZ=50/PRGNAM: .BLKW 5 ;PROGRAM NAMED.DATBAS: .BLKW DATSIZ ;OTHER MISCELLANEOUS DATA; .ENABL LSBM00?e0e4e5edddd/START: DIR$ #MCRDPB ;CHECK ON MCR COMMAND LINE2 MOV @#$DSW,R1 ;CHAR COUNT -> R1& CMP R1,#4 ;MORE THAN JUST TASK NAME?, BLT BASBRO ;IF SO, GET COMMAND REGULAR WAY0 MOV #MCRDPB+G.MCRB,R0 ; ADDRESS OF BUFFER -> R0#14$: CMPB (R0)+,#40 ;LOOK FOR SPACEK3 BEQ 15$ ;IF WE FOUND IT, BRANCH INTO REST OF CODE SOB R1,14$ 8 BR BASBRO ;IF FINISHED LOOP, MISTAKE: GET LINE FROM TI3BASBRO: MOV #NAM,QIODPB+Q.IOPL+6 ;SET UP FOR PROMPTR MOV #NAMEN-NAM,QIODPB+Q.IOPL+10 DIR$ #QIODPBU TST IOST ;DID IT GO OK?T BGE 10$ JMP 9$;10$: TST IOST+2 ;CR ONLY?) BGT 120$ ;IF NOT, DO REGULAR PROCESSING4# TST TINUM ;SOMETHING ALREADY SET?S BEQ BASBRO ;IF NOT, RE-PROMPTW MOV TINUM,R0 ;GET PUD IN R0 BR 41$ ;AND SKIP SOME CODE<120$: MOV IOST+2,R1 ;set to convert possible lower case line MOV R0,-(SP) ;Save pointerR% MOV #INBUF,R0 ;Point to input bufferM#121$: CMPB (R0)+,#140 ;Lower case ?  BLT 122$ ;Br if notE BICB #40,-1(R0) ;else convert122$: SOB R1,121$ ;do moreO MOV (SP)+,R0 ;Restore pointer212$: MOV #INBUF,R0 ;GET INPUT BUFFER ADDRESS -> R02 CMPB (R0),#'X ;IS FIRST CHARACTER AN 'X' FOR EXIT BNE 15$ ; NO - CONTINUE JMP 9$ ; YES, EXIT*15$: CLR R1 ;GET SET TO CONVERT NAME INTO JSR PC,$CAT5 ;RAD-50O. MOV R1,RADNAM ;STORE AWAY 3 LETTER RAD50 WORD. CLR BATFLG ;CLEAR THE FLAG FOR BATCH VERSION" CMPB (R0)+,#', ;DO WE HAVE COMMA?" BEQ 13$ ;IF SO, SKIP NEXT PROMPT5 MOV #TIPR,QIODPB+Q.IOPL+6 ;SET UP FOR ANOTHER PROMPTn" MOV #TIPREN-TIPR,QIODPB+Q.IOPL+101$: DIR$ #QIODPB TST IOSTr BGE 11$ ;IF OK, BRANCH AROUNDU JMP 9$E+11$: MOV #INBUF,R0 ;CHECK THIS INPUT STRINGA2 CMPB (R0),#'X ;IS FIRST CHARACTER AN 'X' FOR EXIT BNE 111$ ;br if notR JMP 9$E%111$: CMPB (R0),#'x ;or if lower caseR BNE 13$ ;BR if not JMP 9$W$13$: MOV R0,R1 ;COPY BUFFER ADDRESS+ CMP R0,#QIODPB ;CHECK FOR MCR COMMAND LINE,) BLO 16$ ;IF SO, SKIP PUTTING TERMINATORK4 ADD IOST+2,R1 ;MAKE R1 POINT TO FIRST FREE POSITION. MOVB #':,(R1) ;JUST MAKE SURE IT'S TERMINATED&16$: CMPB (R0),#'b ;lower case batch ?% BNE 161$ ;if not try for upper case BR 162$!161$: CMPB (R0),#'B ;IS IT BATCH?$ BNE 18$ ;IF NOT, DO REGULAR NUMBER!162$: INC BATFLG ;SET BATCH FLAGR1 CLR TINUM ;IF BATCH MAKE SURE UNIT ZERO FOR NOW$ BR 19$ ;AND SKIP NUMBER CONVERSION.18$: JSR PC,$COTB ;AND GET BINARY NUMBER IN R1 MOV R1,TINUM ;SAVE IT;, ; SCAN PUDSI;O19$: MOV .PUDBA,R0 ;START -> R0S MOV .PUDEA,R1 ;END -> R1T MOV #"TT,R2 ;NAME -> R2 MOV TINUM,R3 ;NUM -> R3& TST BATFLG ;LOOKING FOR BATCH TASK??$ BEQ 2$ ;IF NOT, ALL IS OK (BRANCH)& MOV #"BA,R2 ;ELSE LOOK FOR BATCH PUD2$: CMP R0,R1 ;PAST END?I( BHIS 1$ ;IF SO, NOT THERE -> RE-PROMPT CMP R2,(R0) ;NAME MATCH?! BNE 3$ ;IF NOT, GO AROUND AGAINO CMPB R3,2(R0) ;UNIT MATCH?M BEQ 4$ ;IF SO, WE HAVE ITC!3$: ADD #U.SZ,R0 ;TRY ANOTHER ONEM BR 2$"4$: MOV R0,TINUM ;SAVE PUD ADDRESS+41$: MOV R0,R2 ;ALSO IN REGISTER FOR SPEEDE! .INH0 ;NO TASK SWITCHING WHILEN- MOV .ATLLH,R0 ;WE'RE MESSING AROUND WITH ATLT MOV R0,R1 ;COPY START -> R1%5$: MOV (R0),R0 ;POINT TO NEXT ENTRYM! CMP R0,R1 ;BACK AT END OF CHAIND% BNE 51$ ;IF NOT, THERE'S STILL HOPE * JSR PC,..ENB0 ;ELSE ENABLE TASK SWITCHING" JMP BASBRO ;AND START OVER AGAIN51$: CMP R2,A.TI(R0) ;TI MATCH?N BNE 5$ ;IF NOT, BRANCH# MOV A.TD(R0),R3 ;STD ADDRESS -> R3 % CMP RAD...,(R3)+ ;CHECK OUT 1ST PART; BNE 5$A CMP RADNAM,(R3)+ ;THEN 2ND BNE 5$ ;IF NO MATCH, TRY AGAIN4 CMPB A.TS(R0),#TS.RUN ;SEE IF IN LEGIT STATUS RANGE BLO 5$ ;IF NOT, TRY AGAIN1 CMPB A.TS(R0),#TS.WF4 BHI 5$); -; WE'VE FOUND IT (ADDRESS OF ATL ENTRY IN R0)D;  MOV #77606,-(SP) ;FIRST MAP MOV A.HA(R0),-(SP) ;INTO TASK JSR PC,..SPD3 ;HEADER MOV #60000,R2 ;THEN MAP INTOV# MOV H.PA0(R2),(SP) ;START OF BASICT! MOV H.PD0(R2),2(SP) ;TASK ITSELFV JSR PC,..SPD3;D0; NOW WE'VE MAPPED INTO FIRST 4K OR LESS OF TASK;% MOV #PRGNAM,R1 ;SET UP FOR NAME XFER MOV #COMFNB+60000+N.FNAM,R2 MOV #5,R3 ;FIVE WORDS TO XFERF6$: MOV (R2)+,(R1)+E SOB R3,6$5 MOV #DATBAS,R1 ;START OF MISC00GeKe;e R1 JSR PC,$C5TA ;CONVERT ITR' MOVB #';,(R0)+ ;DELIMIT VERSION NUMBERS% MOV (R3)+,R1 ;BINARY VERSION # -> R1M CLR R2 ;NO LEADING ZEROESS# JSR PC,$CBOMG ;CONVERT IT TO ASCIIA, SUB #MESS01,R0 ;CALC TOTAL STRING LEN -> R0* MOV R0,QIOM01+Q.IOPL+2 ;SET LEN OF OUTPUT DIR$ #QIOM01 ;PRINT IT; MOV #DATBAS-WORK,R4 ;ESTABLISH BASE ADDRESS TO OFFSET FROMR- MOV #BUFF02,R0 ;ADDRESS OF NEXT BUFFER -> R0)) MOV LINENO(R4),R1 ;GET LINE NUMBER -> R1, CLR R2 ;NO LEADING ZEROESX$ JSR PC,$CBDMG ;CONVERT IT (DECIMAL) MOVB #',,(R0)+ ;PUT IN COMMA  MOVB #40,(R0)+ ;AND SPACE- MOV STCOUN(R4),R1 ;NOW STATEMENT WITHIN LINE JSR PC,$CBDMG% SUB #MESS02,R0 ;LEN OF MESSAGE -> R0T# MOV R0,QIOM02+Q.IOPL+2 ;SET LENGTHA DIR$ #QIOM02 ;PRINT IT. MOV STGOSB(R4),R1 ;CALCULATE TOTAL BYTES LEFT SUB ENUDAT(R4),R1 ;IN R1S$ BNE 17$ ;IF NON-ZERO, OK SO BRANCH7 MOV BOLNHD(R4),R1 ;IF ZERO, CALCULATE IN DIFFERENT WAY): SUB ENDTXT(R4),R1 ;(WE ASSUME BASIC IS IN IMMEDIATE MODE)&17$: MOV #BUFF03,R0 ;ADDRESS OF BUFFER JSR PC,$CBDMG ;CONVERT TO ASCII& SUB #MESS03,R0 ;R0 HAS LENGTH OF LINE# MOV R0,QIOM03+Q.IOPL+2 ;PUT IN DPBH DIR$ #QIOM03P JMP BASBRO ;GO AROUND AGAINO 9$: EXIT$S ;QUICK EXIT FOR NOW .END STARTLENGTHA DIR$ #QIOM02 ;PRINT IT. MOV STGOSB(R4),R1 ;CALCULATE TOTAL BYTES LEFT SUB ENUDAT(R4),R1 ;IN R1S$ BNE 17$ ;IF NON-ZERO, OK SO BRANCH7 MOV BOLNHD(R4),R1 ;IF ZERO, CALCULATE IN DIFFERENT WAY): SUB ENDTXT(R4),R1 ;(WE ASSUME BASIC IS IN IMMEDIATE MODE)&17$: MOV #BUFF03,R0 ;ADDRESS OF BUFFER JSR PC,$CBDMG ;CONVERT TO ASCII& SUB #MESS03,R0 ;R0 HAS LENGTH OF LINE# MOV R0,QIOM03z _D v@s@:2@Ґ@ @8@@GP}@ya@sd@vL!@ @@X@:s@z9x@y`@p6@t!Ԁ@:@ @Q@s@@*D@[W@:BuJ& `L".48<$=CQ.;-+*,BEFGKLNOPRSVWX 6 B R Z ^ z t <  R|  x  7 x7   z77X7 d" OD T:  D6? 7 7 7 &    7  p 7   w  1 w De w % eDl  w p 5W 4  @  tZp f (;t   ,3 4  D  #E = Le0, B  @ d >(.r f ^w ?  P 7 ._ 7+  7"7 Tw rԇ  yw7  !7  77w77%5 f  <  }b^7qmXRNN D tQ  . 767 4w  $b   B` |% D _ |& \> r Lw 777UE  z n h >e00_ebe4e5eddddb7R7LGǁ 0׭5.&Uxpn7 ,N#ĝw)t!TE w7   e0B7 J F: D@ RLFMP|yODnc. LBEN7MIOBIL:FP2 EM*TR"w 7p wf      h  `  % R  &6>. <3 P  f @  V 0 @ @  4  @, zf&fw * w 4 < % !    %44 v7`\-X @@@P@ @em. 7 w*w  4  @f <  m77 p(`  07Eu` A A ы |~  h fZ5   Z7jRr)8 @w:E w d$ az +f&%%%4"$ t%  U  N, @ e0 @ @  Ne0, 7 7 7&e N @ e0  wRLF   re ee e @(   ,  B    &f  From: Frank R. Borger To: Basic UsersD Subject: Summary of changes to Michael Reese Basic August 1985  r D The following changes have been made to make basic work nicely with lower case input:m K This version of basic automatically converts all lower case char-oK acters to upper case, thus Program source may be in lower case.oK saving a program via the "save" command will result in an allrK upper case version. Case conversion does not take place under# the following conditions:mE 1. During string input via a regular "INPUT" command.o g' 2. During "INPUT LINE".w K 3. On source text enclosed in quotes. (This includes prompta9 strings and variables, which now may be lower case.)o p5 4. On source text in a comment field. E Note that string comparisons are still case sensitive. To enable rD input of commands, etc. in lower case a new SET command has beenD added, SET UPPER ON/OFF. The following is an enhanced (and cor-* rected) description of the SET command. d; 3.14 SET PROMPT/TRACE/PASS-ALL/ECHO/UPPER ON/OFF  K This statement is used to set or clear a number of system condi-sK tions. The number of conditions is likely to increase in the fu-rK ture as functionality is added. Conditions now serviced include:e n! TRACE: Default is OFF.oK SET TRACE is equivalent to the TRACE verb and should be used inNK preference to it because the TRACE verb is expected to disappear 1 in future releases of this interpreter.P -# PROMPT: Default is ON. K The PROMPT condition is used to turn the INPUT and INPUT LINE K question mark prompt on or off. The OFF mode is designed for K special screen or page formatting and may be used in conjunction ! with the BREAK command.  ! UPPER: Default is OFF.EK Causes string variables read with an "INPUT" statement to be con- K verted to upper case. Useful for command parsers, specifyingt file names, etc. f N* PASS-ALL-INPUT: Default is OFF.K Causes reads to be done with TF.RAL set. Note that ctrl-C, K ctrl-O, ctrl-Q, ctrl-S and ctrl-X will have their usual effectaK from a terminal, unless the terminal is set to be BINARY. Turned ! OFF when00gemene1 THEN LET E$=SBS$(E$,1,PP-1)*80 PRINT #4, " ";FRMT$(N,3);". ";E$85 N=N+1 90 GOTO 60 100 CLOSE 105 EXIT  O K  M  I  C N  " T      x  E E U I7 BASIC DOCUMENTATION 1 06/11/85 F ; Michael Reese Medical Center t r5 Frank R. Borger E " PL BASIC DOCUMENTATION PAGE 2 K 06/11/85   6 TABLE OF CONTENTS  T L CHAPTER 1 INTRODUCTION. . . . . . . . . . . . . . . . . . . . 1-1 L 1.1 STATEMENT AND LINE FORMAT. . . . . . . . . . . . 1-2 L 1.2 VARIABLE NAMES . . . . . . . . . . . . . . . . . 1-2 L 1.3 VIRTUAL ARRAYS . . . . . . . . . . . . . . . . . 1-3 L 1.4 STRING CONSTANTS . . . . . . . . . . . . . . . . 1-3 L 1.5 DATA AND FILE PRESERVATION . . . . . . . . . . . 1-4 L 1.6 STRING VARIABLES . . . . . . . . . . . . . . . . 1-4 L 1.7 EXPONENTIATION . . . . . . . . . . . . . . . . . 1-4 L 1.8 MCR COMMAND LINE . . . . . . . . . . . . . . . . 1-4 L 1.9 CONTROL C. . . . . . . . . . . . . . . . . . . . 1-5 L 1.10 CONTROL O . . . . . . . . . . . . . . . . . . . 1-5 L 1.11 LOGICAL EXPRESSIONS . . . . . . . . . . . . . . 1-5 L CHAPTER 2 LOADING/RUNNING/SAVING PROGRAMS . . . . . . . . . . 2-1 L 2.1 STOP . . END . . . . . . . . . . . . . . . . . . 2-1 L 2.2 RUN. . . . . . . . . . . . . . . . . . . . . . . 2-1 L 2.3 CLEAR. . . . . . . . . . . . . . . . . . . . . . 2-2 L 2.4 SAVE [N1][-N2][,N3...]. . 2-2 L 2.5 OLD . . . . . . . . . 2-2 L 2.6 CHAIN . . . 2-3 L 2.7 OVERLAY . . 2-3 L 2.8 LIST [N1][-N2][,N3...] . . . . . . . . . . . . . 2-3 L 2.9 DELETE N1[-N2][,N3...] . . . . . . . . . . . . . 2-4 L 2.10 EXIT. . . . . . . . . . . . . . . . . . . . . . 2-4 L 2.11 STEP [LINE #] . . . . . . . . . . . . . . . . . 2-4 L 2.12 CON [LINE #]. . . . . . . . . . . . . . . . . . 2-4 L CHAPTER 3 PROGRAM STATEMENTS. . . . . . . . . . . . . . . . . 3-1 L 3.1 GOSUB N . . GOTO N . . . . . . . . . . . . . . . 3-1 L 3.2 ON GOTO . . . . . . . 3-1 L 3.3 RETURN . . . . . . . . . . . . . . . . . . . . . 3-1 L 3.4 DIM. . . . . . . . . . . . . . . . . . . . . . . 3-2 L 3.5 DIM #N, . . . . . . . . . . . . . . . . . . 3-2 L 3.6 DEF. . . . . . . . . . . . . . . . . . . . . . . 3-3 L 3.7 LET. . . . . . . . . . . . . . . . . . . . . . . 3-3 L 3.8 IF . . . . . . . . . . . . . . . . . . . . . . . 3-4 L 3.9 REM . . !. . . . . . . . . . . . . . . . . . . . 3-4 L 3.10 READ . . DATA . . . . . . . . . . . . . . . . . 3-4 L 3.11 FOR . . . . . . . . . . . . . . . . . . . . . . 3-5 L 00wemene. . . . . . . . . . . . 3-7 L 3.17 WAIT . . . . . . . . . . . . 3-7 L 3.18 PRIORITY . . . . . . . . . . . . . 3-8 L 3.19 TRACE ON AND OFF. . . . . . . . . . . . . . . . 3-8 L CHAPTER 4 ARITHMETIC FUNCTIONS. . . . . . . . . . . . . . . . 4-1 L 4.1 RND. . . . . . . . . . . . . . . . . . . . . . . 4-1 L 4.2 RANDOMIZE. . . . . . . . . . . . . . . . . . . . 4-1 L 4.3 ABS. . . . . . . . . . . . . . . . . . . . . . . 4-1   L BASIC DOCUMENTATION PAGE 3 K 06/11/85   L 4.4 SGN. . . . . . . . . . . . . . . . . . . . . . . 4-2 L 4.5 INT. . . . . . . . . . . . . . . . . . . . . . . 4-2 L 4.6 LOG (NATURAL & BASE 10). . . . . . . . . . . . . 4-2 L 4.7 EXP. . . . . . . . . . . . . . . . . . . . . . . 4-2 L 4.8 SIN COS. . . . . . . . . . . . . . . . . . . . . 4-2 L 4.9 ATN. . . . . . . . . . . . . . . . . . . . . . . 4-3 L 4.10 SQR . . . . . . . . . . . . . . . . . . . . . . 4-3 L 4.11 NRC . . . . . . . . . . . . . . . . . . . . . . 4-3 L 4.12 ERR . . ERL . . FCS . . . . . . . . . . . . . . 4-3 L 4.13 COR . . . . . . . . . . . . . . . . . . . . . . 4-3 L 4.14 DAT$. . . . . . . . . . . . . . . . . . . . . . 4-4 L 4.15 DDAT$ . . . . . . . . . . . . . . . . . . . . . 4-4 L 4.16 TIM$. . . . . . . . . . . . . . . . . . . . . . 4-4 L 4.17 DCEN. . . . . . . . . . . . . . . . . . . . . . 4-5 L 4.18 SEC . . . . . . . . . . . . . . . . . . . . . . 4-5 L CHAPTER 5 STRING FUNCTIONS. . . . . . . . . . . . . . . . . . 5-1 L 5.1 INX . . POS. . . . . . . . . . . . . . . . . . . 5-1 L 5.2 LEN. . . . . . . . . . . . . . . . . . . . . . . 5-1 L 5.3 VAL. . . . . . . . . . . . . . . . . . . . . . . 5-1 L 5.4 OCT. . . . . . . . . . . . . . . . . . . . . . . 5-2 L 5.5 AR5. . . . . . . . . . . . . . . . . . . . . . . 5-2 L 5.6 ASC. . . . . . . . . . . . . . . . . . . . . . . 5-2 L 5.7 CHR$ . . . . . . . . . . . . . . . . . . . . . . 5-2 L 5.8 SEG$ SBS$ RIGHT LEFT MID . . . . . . . . . . . . 5-2 L 5.9 PIECE$ . . . . . . . . . . . . . . . . . . . . . 5-3 L 5.10 STR$. . . . . . . . . . . . . . . . . . . . . . 5-3 L 5.11 LTR$ TRM$ . . . . . . . . . . . . . . . . . . . 5-4 L 5.12 OCT$ OCS$ . . . . . . . . . . . . . . . . . . . 5-4 L 5.13 R5A$. . . . . . . . . . . . . . . . . . . . . . 5-4 L 5.14 FRMT$(X,W[,D]). . . . . . . . . . . . . . . . . 5-4 L 5.15 RJS$ . . LJS$ . . . . . . . . . . . . . . . . . 5-5 L 5.16 SPACE$ . . STRING$. . . . . . . . . . . . . . . 5-5 L 5.17 TAB . . . . . . . . . . . . . . . . . . . . . . 5-5 L CHAPTER 6 I/O & FILE MANIPULATION . . . . . . . . . . . . . . 6-1 L 6.1 RESTORE. . . . . . . . . . . . . . . . . . . . . 6-1 L 6.2 PRINT. . . . . . . . . . . . . . . . . . . . . . 6-1 L 6.3 INPUT. . . . . . . . . . . . . . . . . . . . . . 6-2 L 6.4 INPUT LINE . . . . . . . . . . . . . . . . . . 00epe4e5edddd. 6-3 L 6.5 SCRATCH . . . . . . . . . . . . 6-3 L 6.6 OPEN . . . . . . . . . . . . . . . . . . . . . . 6-3 L 6.7 CLOSE N1[,N2...] . . . . . . . . . . . . . . . . 6-4 L 6.8 IF END [#N] THEN . . . . . . . . . . . . 6-4 L CHAPTER 7 LOADABLE SUBROUTINES. . . . . . . . . . . . . . . . 7-1 L 7.1 LOAD . . . . . . . . . . . . . 7-1 L 7.2 UNLOAD . . . . . . . . . . . . . . . . . . . . . 7-1 L 7.3 CALL "NAME"(ARG1,ARG2,...) . . . . . . . . . . . 7-2 L 7.4 INSTRG . . . . . . . . . . . . . . . . . . . . . 7-2 L 7.5 OPEN LIBRARY . . . . . . . . . . . . . . . . . . 7-2 L 7.6 QUESTION DISPLAY . . . . . . . . . . . . . . . . 7-3 L 7.7 MDIS . . CDIS . . RDIS . . . . . . . . . . . . . 7-5 L 7.8 MPOS . . CPOS . . RPOS . . . . . . . . . . . . . 7-7 L 7.9 MQTXT . . CQTXT . . RQTXT. . . . . . . . . . . . 7-7  A ,L BASIC DOCUMENTATION PAGE 4 K 06/11/85   L 7.10 MATXT . . CATXT . . RATXT . . . . . . . . . . . 7-7 L 7.11 CQNAM . . RQNAM . . . . . . . . . . . . . . . . 7-7 L 7.12 SPAWNB. . . . . . . . . . . . . . . . . . . . . 7-8 L APPENDIX A BASIC ERROR VALUES . . . . . . . . . . . . . . . . A-1 L APPENDIX B SAMPLE LOADABLE MACRO SUBROUTINE . . . . . . . . . B-1 L APPENDIX C USEFUL INTERNAL BASIC SUBROUTINE CALLS . . . . . . C-1 L APPENDIX D INDEX. . . . . . . . . . . . . . . . . . . . . . . D-1   K 06/11/85          / CHAPTER 1 C R1 INTRODUCTION     L This BASIC follows DEC's BASIC-11 in its basic orientation. L Advanced features tend to follow RSTS BASIC-PLUS (e.g. virtual L arrays). Primary differences are in the file I/O. The OPEN, L PRINT and INPUT statements have been modified to provide full L FILES-11 capability for ASCII files both fixed and variable L length and sequential and random access. The statement concate- - nation character is the colon (:).  L BASIC can be used in an IMMEDIATE mode. Any legal command en- L tered without a line number (or leading "tab") will be performed L immediately. Nearly all the BASIC codes presented in this docu- L ment can be used in the IMMEDIATE mode and a few can be used only ! in the IMMEDIATE mode.  eL The other BASIC mode is the PROGRAM mode. Any legal command fol- L lowing a line number or with a leading "tab", (effectively a con- L tinuation line,) will be stored with the current program and exe- ( cuted in normal program flow.  (L BASIC comes in several 'sizes'. When a user invokes BASIC by L calling for BAS, the space reserved for the program and data in L main memory contains 2570 bytes. The next 'size' is BA2, 4618 3 bytes. The largest is B11, 23050 bytes. A lL If a user's program calls for more than the space alloted to it, L the computer stops execution and prints out a USERS OVERFLOW er- L ror message. Exit and re-enter the BASIC mode at a higher ver- L sion. BASIC may be conditionally assembled to automatically ex- 1 tend itself if it runs out of storage.  L All numeric calculation is done in floating point (REAL*4 for you L FORTRAN buffs) regardless of the variable types00emene part, a log - antilog calculation sequence is used.  i v a s 1.8 MCR COMMAND LINE  cL BASIC is called from the MCR by typing BASIC (or BAS) in response L to the MCR prompt. A may follow for normal interactive use L or one of two other options may follow before for special  uses.  eL If a space and a ? followed by an arithmetic expression follows L BAS, the value of the expression will be printed on the next line L followed by a return to the MCR. This is useful for quick desk ( calculator type calculations.  lL If a space (or tab) and a file name with an optional switch fol- L low, then that file will be read in as a user program just as00emeneBAS e% MCR>BASIC PROG.BAS/RN t# MCR>BAS PROG/RN:150 u MCR>BAS ? 4*3+2 i b s  r 1.9 CONTROL C N L The break key for BASIC is the Control-C (^C). A ^C typed at the L keyboard when running will cause the program to stop at the next L sequential line (not at a line entered via GOTO, GOSUB, IF etc.). L When in immediate mode, ^C will bring up MCR if the terminal has L not been set hostile. ^C typed during a list command will termi- L nate the listing process after the current line is finished L printing out. It causes an immediate return to the interpreter L as opposed to ^O which only suppresses printing while the BASIC L interpreter still goes through the motions of completing the  listing. G , S  e 1.10 CONTROL O  dL Control-O (^O) will stop all output from a LIST command and re- L sume printing with READY. It also stops all printing following a L RUN command including non-fatal errors. Printing resumes with a K STOP or ^C or a fatal error (one which stops program execution). t O i o $ 1.11 LOGICAL EXPRESSIONS  / Logical expressions are of the form: sA [...] L Where expressions are either arithmetic or string and relational L operators can be formed by any combination of <, > and =. The L two expressions which are related by the relational operator must L be of the same type: i.e. string or arithmetic. The result of L evaluating the relationship (termed here a logical subexpression) # is either true or false. r fL Strings are compared character by character on the basis of their L ASCII codes. When two strings of unequal length match at all L common character positions, the shorter one is considered less   L INTRODUCTION PAGE 1-6 K 06/11/85   v than the longer one.  eL Logical subexpressions can in turn be related by the logical (Bo- L olean) operators: AND, OR, XOR and NOT. The order of evaluation L is from left to right, but logical subexpressions may be nested 1 with parentheses to any depth desired. c iL One restriction exists with respect to parentheses: no leading L arithmetic expression in a logical subexpression should begin L with an open parenthesis, otherwise the interpreter will attempt L to evaluate it as a nested subexpression. This can easily be L gotten around by rearranging the arithmetic expression or adding  it to 0. , Examples:  A < B OR B = .5 i' NOT (X1 < 1 AND A >= 5) i  iK 06/11/85c x s n n  g l b00epe4e5edddd r/ CHAPTER 2 n s; LOADING/RUNNING/SAVING PROGRAMS v a  L The subset of commands listed in this chapter is primarily used L to control execution of BASIC programs. Their purpose is to let L one load saved programs, interactively modify/debug them while L running, and possibly save modified versions for later use. As L such, the equivalent commands normally do not exist for compiled % languages such as FORTRAN. R n s   2.1 STOP . . END  IL STOP and END statements. Stop user program execution and tell * user where program has stopped.  Example:  10 STOP  20 END   n o s 2.2 RUN c eL May be used in immediate mode to start the program in memory or L by specifying a file in quotes to run another BASIC program  stored on disk.  L In program mode, it may be used with a file specifier to chain to L another program. The assumed file extension is .BAS. Note that L no data is saved across a "RUN" type chain. User loaded subrou- L tines are also unloaded. To preserve data and user files, use L "CHAIN" command. If basic fails to find the required file, it L will also look under the "default UIC", (usually [1,1],) if this L option is enabled. This allows frequently used programs to be J available to any user without having multiple copies available.  aL A previous restriction against using a variable in the string ex- L pression following the RUN command has been removed. The option- L al switch /RT may be used as with OLD to trim REM and ! L statements when the file form of the command is used. The F switches /LI and /CO may be used as in the CHAIN statement.  Example: t u L LOADING/RUNNING/SAVING PROGRAMS PAGE 2-2 K 06/11/85l n e RUN  RUN "PROGRAM" m 10 RUN "PROG1"      2.3 CLEAR u L This command clears the user data area. It closes all user files , before doing the clear operation.   t s I= 2.4 SAVE [N1][-N2][,N3...] m :L Primarily an immediate mode command. It makes a copy of the pre- L sent program on the file named in the string filespec (string L variable or string in quotes). Optional line numbers or line ) number ranges can be included.  L The optional switch will produce a psuedo-compiled version which L can be read back with the same switch without re-interpreting the L code thus saving a considerable amount of time for long programs. G The default extension will be BAC if the switch is included.  L The default file specifier is: SY:PROGRAM.BAS or the name, ex- L tension and device in the last OLD, RUN, CHAIN or OVERLAY com-  mand.  Example:  SAVE "PROGRAM"  SAVE "LP:" # SAVE "DK2:PROG.BAS"  SAVE  e i  h/ 2.5 OLD i aL The OLD command reads in a previously saved or edited program L from the file named in the string filespec (as in SAVE). The op- L tional switch, when specified, causes truncation of REM and ! L statements. The default file specifier is: SY:PROGRAM.BAS The L CO switch indicates that a compiled basic file is to be used (de- fault extension BAC). L If basic fails to find the required file, it will also look under L the "default UIC", (usu00emene  CL The CHAIN command reads in another BASIC program while preserving L variables and open files' FCB's. GOSUB/RETURN pointers, FOR loop L control tables, user DEFined functions and scratch items are all L deleted from the user data area. Thus user functions must be re- - defined in any new program module. - L The default file specifier and switches are the same as for the L OVERLAY command with the addition of the /LI switch which can A specify an optional line number to continue execution. nL If basic fails to find the required file, it will also look under L the "default UIC", (usually [1,1],) if this option is enabled. L This allows frequently used programs to be available to any user 4 without having multiple copies available.  Example: l 20 CHAIN "PROG2"   e  r= 2.7 OVERLAY / sL The OVERLAY command reads in additional program text from the L specified file and adds them to the existing program just as L though they were typed from the keyboard: i.e. new statements L with the same line number as an existing statement replace the L existing statement. The same precautions regarding function de- L finitions and DATA statements during debugging should also be ob- C served when using the OVERLAY statement in program mode. o nL The optional switch (/LI) is significant in program mode only and L can be used to specify the line at which execution should resume. H The /RT and /CO switches are the same as for the OLD command. L If basic fails to find the required file, it will also look under L the "default UIC", (usually [1,1],) if this option is enabled. L This allows frequently used programs to be available to any user 4 without having multiple copies available.  Example: i OVERLAY "PATCH1" / 100 OVERLAY "PATCH2.BAS/LI:500" y e n t i& 2.8 LIST [N1][-N2][,N3...]  L This is primarily an immediate mode command. With no arguments, L the whole program is listed at the user's terminal. Single argu- L ments separated by commas will list only the line numbers re- L quested. Two arguments separated by a dash (minus) will list an ' inclusive line number range.  Example:  LIST  LIST 20 O L "L LOADING/RUNNING/SAVING PROGRAMS PAGE 2-4 K 06/11/85s   LIST 50,100 s& LIST 50-80,135,710-750     e& 2.9 DELETE N1[-N2][,N3...]  L This also is primarily an immediate mode command. It will delete L individual lines with single parameters or inclusive ranges with L numbers separated by a dash (minus). If no numbers are speci- L fied, the whole program text is deleted (but not program data - L this must be done with the CLEAR command). It can be used in L program mode also, usually to delete a range of line numbers in 0 preparing to OVERLAY another routine.  Example: i DELETE 30 m DELETE 50-70 " DELETE 1000epe4e5edddd-40,60-80  e s  l 2.10 EXIT  L This statement stops program execution and exits from BASIC to L the MCR. All files are closed before exit. It is equivalent to 5 a STOP followed by a ^Z from the keyboard. b Example:  1000 EXIT l t e e r 2.11 STEP [LINE #]  L This statement allows one to step through a program one line at a L time. The optional line number may be used to start at a differ- L ent line. If no line number is specified, execution resumes at L the line following the last stop. Note that if a branch is taken L the line being executed, the program will not stop until the next L line after the branch. The stop uses the same internal facili- ( ties as the ^B break feature.  Example: a STEP  STEP 510  e    2.12 CON [LINE #] n eL This command allows one to resume execution of a program after L stopping it for interactive de-bugging. When used with the op- L tional line number, it functions just like GOTO with the excep-  r wL LOADING/RUNNING/SAVING PROGRAMS PAGE 2-5 K 06/11/85   mL tion that the next available line after the one specified is used L if there is no exact match. If no line number is specified, exe- A cution is resumed at the line following the last stop. v Example: d CON  CON 100 t n o GK 06/11/85       G -  / CHAPTER 3  4 PROGRAM STATEMENTS  a l eL The subset of commands listed in this chapter is primarily used L to control the flow of program execution, reserve storage area ? for variables, perform arithmetic calculations, etc.  C   " 3.1 GOSUB N . . GOTO N  GL Transfers program control to statement N, where N can be a posi- L tive integer constant or an expression which will be truncated to L an integer. Note that an expression will not produce correct re- . sults in the event of a resequence.  Example: l 10 GOTO 50  20 GOSUB A(I) t , s e o3 3.2 ON GOTO i aL This statement transfers control to the Nth line number in the L list. The expression is evaluated as a normal BASIC expression L (floating point) and then truncated to get an integer value. If L this value does not correspond to a line number in the list, a L GOTO error happens. The transfer is handled just as in the stan- * dard GOTO and GOSUB statements.  Example: , 100 ON I GOTO 1000,1200,1400 3 210 ON X-A(C1) GOSUB 2000,2100,3000 l    e 3.3 RETURN  L Returns to statement following GOSUB which got you here. Other L statements may follow a gosub on a line. If the line containing L a GOSUB is interactively modified while the subroutine is in the L middle of executing, the GOSUB must occupy the same relative L statement position in the line before and after the modification:   OL PROGRAM STATEMENTS PAGE 3-2 K 06/11/85g S wK i.e. it must be the first or third etc. statement in the line. i Example: a 10 RETURN s t c e m 3.4 DIM r iL Declares size of arrays and strings. Also specifies strings as L 00emene  aL This statement declares certain variables as "virtual arrays" and L defines their allocation on the file whose LUN is the value of L "exp". A virtual array has its values stored on a file and main- L tains only a small part of the array in memory at any one time L (currently 512 bytes - 1 disk block). The DIM # statement only L defines the mapping of the array onto the file. The file itself L must be opened via an OPEN statement using the /BL switch. L Consequently, several DIM # statements may define several map- L pings of different variables onto the same file with an effect 6 similar to a FORTRAN EQUIVALENCE statement.  nL The rules for mapping follow RSTS BASIC-PLUS. Essentially, no L array element may cross block boundaries. This implies that var- L iable sizes must be powers of two. Numeric variables automati- L cally fulfill this condition. Strings are allocated their speci- L fied size whether fixed or variable. Variable length strings are L null padded on disk, and when used in a program context are auto- L matically trimmed to their size without the null padding. Fixed L length virtual strings, as with standard fixed length strings, L are blank padded. If the allocation of a variable in a DIM # L list would cause it to cross block boundaries because of previous  i L PROGRAM STATEMENTS PAGE 3-3 K 06/11/85  d L allocations in the list, it is started at the next disk boundary. L Subscripts may range up to 32767 and string elements up to 512 ' characters (in powers of 2). r Example: h2 20 DIM #3,A(20,100),A$[256]V(5000) 2 30 DIM #3,B(20000),B$[128]V(10000) . 40 DIM #7,X(100),Y(100),Z(200)  N    3.6 DEF  L One line function definition. The function name is formed with L the letters FN followed by any legal variable name. e.g.: FNA, L FNX1, FNM$ etc. Dummy arguments may be any numeric or string L variable with any number of arguments subject to fitting on one L line. The definition itself may be any legal numeric or string @ expression including system and other user functions.  0L Function names returning string values must end in '$', those re- L turning numeric values must not. Functions are recursive, i.e. E they may use themselves as arguments in the function call. N eL Function definitions create an internal pointer to the ASCII text L to the right of the equal sign. For this reason they should be L placed near th00epe4e5edddde beginning of the program to avoid being moved L during debugging runs by insertions, deletions or changes to 3 lines preceding the function definition.  C Function definitions are deleted by the CHAIN statement.   Example: s! 30 DEF FNA1(A)=A2 c( 40 DEF FNC$(X$)=X$+"ABC" 5 50 DEF FNZ3$(X$,I)=SEG$(X$,I,LEN(X$))  o h r t 3.7 LET F tL This is the numeric assignment statement. It is also allowable L for string assignment. The word itself is optional in this ver- L sion of BASIC. A single variable name to the left of the '=' is L given the value of the numeric or string expression to the right H of the equal sign. Variable and expression types must match.  Example: +# 20 LET A=EXP(10.34) $ 30 A$="ABC"+B$  r t L PROGRAM STATEMENTS PAGE 3-4 K 06/11/85  i l 3.8 IF   Format: G IF THEN [ELSE ][ELSE l ] s; IF THEN " " : IF GOTO " " L If the logical expression is true (see Logical Expressions), then L the line number following the THEN or GOTO is branched to or all L statements following THEN up to the end of the line or an ELSE  are executed.  .L If the condition is false, a matching ELSE is searched for. If L found, the line number following the ELSE is branched to or all L statements following the ELSE to the end of the line or the next L ELSE are executed. If no matching ELSE is found, execution con- ( tinues on the following line.  lL IFs and ELSEs are paired like matching parentheses from the in- L side out. That is, an ELSE is matched with the IF most immedi- L ately preceding it in the line which does not already have a L matching ELSE. This implementation of IF-THEN-ELSE is intended  to match BASIC-PLUS. e Example: h% 10 IF A > B THEN STOP r0 20 IF A$ <> B$ GOTO 110 ELSE 500 I 30 IF A >= 12.5 THEN 160 ELSE PRINT "A < 12.5" : GOTO 300 L   r l  3.9 REM . . ! t L The REMark statement is used to insert comments into the text of L the BASIC program. It has two forms: REM and !. All text fol- L lowing the REM or ! will be ignored by the BASIC interpreter up L to the end of a physical line. No other statements may follow on D the same line as they are treated as part of the comment.  Example: > 10 REM PROGRAM TO ADD ALL NUMBERS FROM 1 TO 10 5 20 ! AND DEMONSTRATE USE OF REM AND !   a s e 3.10 READ . . DATA  oL The READ statement inputs data from the DATA statement. The L rules for INPUT apply to READ, but DATA lists are used as needed ; whereas INPUT inputs an entire line from a file. o Example: o* 10 DATA 10.5,-76,1E7,FRANK 50 READ A,B,C,D$    L PROGRAM STATEMENTS PAGE 3-5 K 06/11/85  .  3.11 FOR   Format: ? FOR = TO [STEP ] eL This statement sets up and controls execution of a FOR-NEXT loop. L Any numeric expressions may be used. The variable must be, > however, a simple floating variable (no subscript).  L The statements following the FOR statement until the associated L NEXT statement c00emene L This statement terminates the loop begun by the immediately L preceding FOR statement with the same variable name. A concaten- L ated form of two NEXT statements is shown in the second example. L Note, however that it is not possible to branch to the second ? (implied) NEXT (NEXT J) without encountering NEXT I.  Example: - 70 NEXT I  100 NEXT I,J     m 3.13 BREAK  VL This command causes all output accumulated in the terminal buffer L to be printed in write-pass-all mode and with null carriage con- L trol. All carriage control must be supplied in the buffer by the L program. In order to accumulate text in the terminal's buffer, L PRINT statements with trailing commas or semicolons must be used. L Note: Execution of the BREAK command does not affect the status @ of flags which are set or cleared by the SET command.  c eL PROGRAM STATEMENTS PAGE 3-6 K 06/11/85g o o Example: 6 110 PRINT "START TAPE INPUT";CHR$(17);  120 BREAK a  f  < 3.14 SET PROMPT/TRACE/PASS-ALL/ECHO/UPPER ON/OFF  bL This statement is used to set or clear a number of system condi- L tions. The number of conditions is likely to increase in the fu- L ture as functionality is added. Conditions now serviced include:  " TRACE: Default is OFF. L SET TRACE is equivalent to the TRACE verb and should be used in L preference to it because the TRACE verb is expected to disappear 2 in future releases of this interpreter.  -$ PROMPT: Default is ON. L The PROMPT condition is used to turn the INPUT and INPUT LINE L question mark prompt on or off. The OFF mode is designed for L special screen or page formatting and may be used in conjunction " with the BREAK command.  " UPPER: Default is OFF. L Causes string variables read with an "INPUT" statement to be con- L verted to upper case. Useful for command parsers, specifying  file names, etc. D u+ PASS-ALL-INPUT: Default is OFF. iL Causes reads to be done with TF.RAL set. Note that ctrl-C, L ctrl-O, ctrl-Q, ctrl-S and ctrl-X will have their usual effect L from a terminal, unless the terminal is set to be BINARY. Turned " OFF when program STOPS.  F+ PASS-ALL-PRINT: Default is OFF. tL Causes writes to be done with TF.WAL set. Note that no carriage L control characters will be added to any output. Turned OFF when L program STOPS. ,fg 1 ECHO: Default is ON. If turned off, L causes terminal reads to be done with TF.RNE. No input will be 2 echoed. Turned OFF when program STOPS.  Example: h" 210 SET PROMPT OFF 220 SET TRACE ON  S    3.15 ON ERROR GOTO  FL00epe4e5edddd This statement sets the line number for a transfer on any type of L error. It does not cause any branching when it itself is execut- L ed, rather it changes the processing of errors in the BASIC in- L terpreter. If this statement has been previously executed with a L non-zero line number specified, no error message will be printed   L PROGRAM STATEMENTS PAGE 3-7 K 06/11/85n e o@ and a branch to the specified statement will be made.  L Normal error processing will be restored after the branch is made L or by executing the statement with a zero line number. Thus at L least one ON ERROR GOTO must follow the last error and precede 9 the next one for user error handling to occur. G L This processing is designed to minimize the chance of an endless L loop occurring because of an error in the error handling routine. L Precise information as to the cause of the error can be had from : the functions ERR, ERL, FCS detailed elsewhere.  Examples: & 100 ON ERROR GOTO 1500 I 510 ON ERROR GOTO 0 ! THIS RESTORES NORMAL ERROR HANDLING o a  c ) 3.16 SLEEP d gL The SLEEP command causes the executing program to pause for the L specified amount of time. any valid arithmetic expression may be L used to specify the time magnitude. However, a negative result L will give an error and zero will be treated as a no-op. D Truncation of the floating expression value will be used.  L The unit of time may be specified as TICKS, SECONDS, MINUTES, L HOURS or any abbreviation of those words with the same first C letter. No units specification will default to SECONDS.  Examples: $ 510 SLEEP 10 SECONDS  105 SLEEP 2 M e 632 SLEEP 25   s  ( 3.17 WAIT  lL The WAIT command sets parameters for the timeout of terminal in- L put. The format is similar to the SLEEP command. Note that no L explicit action is taken on execution of the WAIT command. It is L used only to set the length of time to wait for terminal input / before causing a timeout error trap.  L The user may check for the occurence of a timeout error by use of L the ON ERROR GOTO command and then check the error code, current- L ly 44. (decimal.) Appropriate action may be taken at this point  (EXIT for example).  tK The no timeout condition may be restored by using a 0 magnitude. t Examples: J 400 WAIT 40 S :! ALL TERMINAL INPUT TO TIME OUT AFTER 40 S @ 500 WAIT 0 :! RESTORE TO NO TIMEOUT CONDITION    L PROGRAM STATEMENTS PAGE 3-8 K 06/11/85  4 & 3.18 PRIORITY  aL The PRIORITY command causes the interpreter to change its priori- L ty to that specified in the following expression. Priorities up  to 100 are allowed.  Example  500 PRIORITY 30  0 I  :! 3.19 TRACE ON AND OFF  L This statement turns the trace feature on and off. When the L trace is on, all transfers out of the normal flow of normal pro- L gram execution are printed on the user's terminal. This can be L used in either immediate mode or program mode (for selective  tracing).  Example:  TRACE ON  READY  RUN OR P 100 TRACE ON  00emene 0; -1 if argument 0; 0 returned if  argument = 0.  Example:  10 A=SGN(A1)   h f t 4.5 INT u vL Returns greatest integer in the argument. Note: INT(-1.5)=-2  etc.  Example:  10 A=INT(X) F T S  ' 4.6 LOG (NATURAL & BASE 10)   LOG K Returns the natural log of the value of the argument expression.  Example:  30 A=LOG(X)  i LOG10 L Returns the base ten (common) log of the value of the argument  expression  Example:  50 B=LOG10(X) r e i g i 4.7 EXP t @ Returns the base e exponential of the argument value.  Example: T 10 A=EXP(X) L ( U  A 4.8 SIN COS O L These functions return the sine and cosine functions of the argu- : ment values. The input argument is in radians.  Example:  20 S=SIN(X) n 30 C=COS(Y) a m  L ARITHMETIC FUNCTIONS PAGE 4-3 K 06/11/85i o h 4.9 ATN  L Returns the arctangent function of the argument value. The re- & turned value is in radians.  Example: o 10 A=ATN(X)    e v 4.10 SQR  tL Returns the square root of the argument value. If the argument 0 value is negative, an error is given.  Example:  20 S=SQR(X) P     4.11 NRC  L This function calculates the number of records in the file number L which is specified in the argument. The file must be a fixed L length record type. A -1 returned indicates a non-existent FDB. ; A -2 returned indicates variable length records.  Example: a 10 A=NRC(4) . f h a m$ 4.12 ERR . . ERL . . FCS  oL These functions return respectively: the number of the last er- L ror, the line number of the last error, and the FCS error code L (n00epe4e5eddddegative) for the last FILES-11 related error. An argument for L the function must be included atlhough it will usually be zero. L If a non-zero argument is used, it will be treated as a word off- L set from the interpreter location containing the normal informa- L tion for that function. Thus a non-zero offset should only be @ used in conjunction with a map and assembler listing.  Example: l 100 A=ERR(0)  110 B=FCS(0)  120 CON ERL(1)  A r e  4.13 COR  tL This function returns the free core (in bytes) minus the value of  the argument.  Example: o o L ARITHMETIC FUNCTIONS PAGE 4-4 K 06/11/85    100 A=COR(255)  a a m r 4.14 DAT$ x lL An 8 character string is returned containing the date in the form L MO/DA/YR. if the argument is absent or a single character zero, L the system date (today's date hopefully!) is returned. If the L argument is a positive value, the number is interpreted as the L day of the century, and a corresponding date string is returned. L The positive argument is interpreted modulo 36524 (the number of L days in a century). If the argument is a zero or negative value L (other than a single character '0'), then a null string is re-  turned.  Example: o4 50 A$=DAT$(0) : ! RETURN SYSTEM DATE $ 60 PRINT DAT$(12752) 4 70 A$=DAT$() : ! RETURN SYSTEM DATE  d    4.15 DDAT$  L This function returns a string containing the DEC standard date L in the form: DD-MMM-YY. The string may be either 8 or 9 chars L depending on the number of digits in the day. The argument is ? interpreted in the same way as in the DAT$ function.  Example: o 40 A$=DDAT$(0)  R R Y M 4.16 TIM$ 6 RL Returns time in an 8 character string in the form HR:MN:SC. If L the argument is absent or a single character zero, the system L time is returned. Otherwise, the argument is evaluated. If ne- L gative, a null string is returned; if zero or positive, the L number is interpreted as the number of seconds since midnight and L the corresponding time is returned as a string. The number is 7 interpreted modulo one day worth of seconds. e Example: a 30 A$=TIM$(0) N3 40 A$=TIM$() : !RETURN SYSTEM TIME G 50 A$=TIM$(A-B) : ! RETURN TIME OF DAY CORRESPONDING TO e9 ! A-B SECONDS SINCE MIDNIGHT a u  iL ARITHMETIC FUNCTIONS PAGE 4-5 K 06/11/85i  r 4.17 DCEN h uL This function accepts a single string date argument and returns a L number which is the day of the century. The date argument may be L the common slash notation of MM/DD/YY, the DEC standard notation L of DD-MMM-YY or the undelimited form of MMDDYY. The resulting L number is the number of the day in the century with 1 correspond- L ing to 1-Jan-00, and 36524 corresponding to 31-Dec-99. This L number is thus suitable for calculating differences between two L dates. A thorough check is made of the date string before the L conversion and an error code will be returned instead of the day L of the century in case of an error. Therefore this function may L be used to verify dates which are input from a user program. L This routine is programmed 00emene. When L printing with comma separation, as many fields are allowed as can  f L I/O & FILE MANIPULATION PAGE 6-2 K 06/11/85d  mL fit on the printing device. Note that numeric values, when con- L verted in a PRINT statement normally have a space at each end. 0 To avoid this, use the STR$ function.  L On binary files, the following conditions hold: TAB is ignored, L no "field" justification is performed and all data list items L must fit into the existing buffer. Floating values are stored as L four consecutive bytes which are not word aligned. Strings and L numeric values are packed together and may be combined in any L order. It is up to the user to keep track of the internal sto- L rage arrangement for future use with INPUT or other non-BASIC  programs.  L A synonym for PRINT is "?" primarily for convenience in immediate  mode use.   Example: ) 50 PRINT A,3.5,"HELLO";A$ d' 60 PRINT #3,EXP(.5);XY; w h e t r 6.3 INPUT   Format: ) INPUT [#N,] V1,V2,V3 etc. d or ( INPUT #N@R,V1,V2,V3 etc. L Where N is an optional file number and V1, V2, V3 etc. are legal L string or numeric variable names. The second form follows the L rules for random access described for the PRINT statement. L Numeric data must be separated by commas or spaces, successive L string variables must be separated by a comma after the required L number of characters have been typed in. A character legality L check is performed to ensure that all characters are between oc- L tal ASCII codes 40 and 137 inclusive and 11 (tab). If a "SET L UPPER ON" command has been issued, lower case ascii will be con- verted to upper case.  eL For input from the terminal (no file number), a prompt string L (only string defined in quotes allowed) may be speci00fmene o L The SCRATCH command must have a file specifier with an explicit L version number in order to delete a file. The default file spec- $ ifier is: SY:PROGRAM.BAS  Example: o$ SCRATCH "DATA.DAT;3" ) 50 SCRATCH "DK1:DAT3.TMP" s e m s r 6.6 OPEN  o" OPEN command processor.  Form: J OPEN #EXP,STRING (WHERE STRING CONTAINS FILESPEC/SWITCHES)  Allowed switches: E /FX for FIXED LENGTH records (VARIABLE assumed) w@ /RN for RANDOM ACCESS (SEQUENTIAL assumed) H /LN:LEN to specify buffer length in bytes (80 assumed) E /EN:LNO to specify line no. for control xfer on EOF 5@ /BN to specify BINARY file (ASCII assumed) F /BL for virtual array files (not to be used with  above) 5 The following switches specify file access oF They are mutually exclusive except for /SH (shared access): 8 /RO for read only access (default) > /WR for write access (creating new file) 8 /UP for update (read,write,append) 7 /MO for modification (read,write) ) /AP for append only I9 /SH to set shared access bit in FDB s o o L I/O & FILE MANIPULATION PAGE 6-4 K 06/11/85)  L Possible values of EXP range from 3 to 16. Up to 6 record type L files (not /BL) may be open simultaneously. Any number of block L mode files (up to 14) may be open simultaneously subject only to L total memory availability. The default device for all LUNs is  SY0:.  B Examples: $ 50 OPEN #4, "LP:/WR"  60 OPEN #3,N$     6.7 CLOSE N1[,N2...]  L This command closes a user data file whose number is N1, N2 etc. L Note that no # sign precedes the number. If used with no file - number, all user files are closed. e Exampl00fpe4e5edddde:  60 CLOSE 4  70 CLOSE I1  95 CLOSE  d u d c) 6.8 IF END [#N] THEN  L This statement is used to reset the end of file branch on a given L file or without the "#N", it sets the terminal end of file L branch. The specified file must have been opened with the possi- L bility of being read from (i.e. cannot be /AP or /WR in sequen-  tial mode).  Examples: K 100 IF END THEN 1500 :! SET TERMINAL END OF FILE LINE NO. K 120 IF END #3 THEN 2100:! SET END OF FILE LINE NO. ON LUN 3   eK 06/11/85i u t  " i s  e r/ CHAPTER 7 i f5 LOADABLE SUBROUTINES i y f iL This chapter is primarily concerned with the operation of user L written MACRO subroutines. The capability of calling a machine L language subroutine to perform some complex calculation can pro- L vide much simpler program operation, and/or significantly incre- & ase the speed of operation.  L Several special MACRO subroutines proved so useful that they were L made a permanent part of BASIC and as such do not have to be lo- < aded. Those routines are listed in this chapter.  oL A sample of a MACRO subroutine which will reverse a character L string along with a description of the internal BASIC subroutines B it uses is included in Appendices B & C of this manual.  g i t i& 7.1 LOAD  nL This command loads the specified file as a user callable subrou- L tine. The default extension is BTK. See Append. B for a sample # user loadable subroutine e Example: c! 610 LOAD "REVERS"  A  r i 7.2 UNLOAD  L This command unloads all user assembly routines loaded by the LO-  AD command.  Example  500 UNLOAD  l  L LOADABLE SUBROUTINES PAGE 7-2 K 06/11/85d u e* 7.3 CALL "NAME"(ARG1,ARG2,...)  L The CALL statement is used by the BASIC user to call specially L written MACRO subroutines which will perform special functions. L The called routine name must be enclosed in quotes as above, or L reside in a string expression which is enclosed in parentheses. L The NAME may be up to 6 characters in length. The enclosing par- L entheses are necessary to keep the argument list which follows > from appearing as a subscript to a string variable.  aL The arguments can be string or numeric variables or expressions. L In the case that a value is to be returned, the argument must be L a simple variable (may be subscripted). For values which are L passed, either expressions or variables may be used. The vari- L ables and expressions used in the argument list must match the ? type (string or numeric) expected by the subroutine.  mL User routines must preserve the text pointer (R1) and on exit, if L an argument list is present, must position it just past the close F parenthesis. See APPEND. B for a sample loadable routine.  Example: s$ 100 CALL "ABC"(A$,B) ( 120 CALL (B$)(A-X,Y$+Z$)  i e a e 7.4 INSTRG  = Subroutine to insert a string into another string.  BASIC CALL: / 120 CALL "INSTRG"(S$,E$,P [,L]) m WHERE: uA S$ = STRING VARIABLE INTO WHICH INSERTION IS MADE 5 E$ = STRING EXPRESSION TO B00fmene L This command functions similarly to the standard OPEN command ex- L cept that a MACRO library file is opened for question text output   L LOADABLE SUBROUTINES PAGE 7-3 K 06/11/85   hL and other question processing subroutines invoked by the CALL L statement. A LUN must be used that is not already in use and is L one of the allowable numbers as for the standard OPEN. No L switches are allowed as all file options are determined internal- . ly for handling the library format.  Example: 0 100 OPEN LIBRARY #5,"QUESLS.MLB" & 200 OPEN LIBRARY #3,A$     7.6 QUESTION DISPLAY  nL A series of routines can be used for displaying questions at a L terminal for interactive data entry applications. The text of L the questions themselves resides in a file made by the RSX li- L brarian (LBR) and formatted as a MACRO library (.MLB extension). D There are three types of questions that can be displayed: * 0) Multi-line text display 4 1) Single line question (text input) * 2) Multiple choice display  eL The questions are formatted as macros with the name of the ques- L tion being the name of the macro. There is a single argument to L the macro, a number which is the type as specified above except L in the case of type 2, it is the total number of choices for that ? multiple choice question (can never be less than 2).  L The question names are used for linking of multiple choice ques- L tions and for question replacement by the librarian. Question L names may be up to 6 characters in length. The characters must L be legal RAD50 characters i.e. alphanumeric, period and dollar L sign. After display, the input of a response is left to the user  program. t n MULTI-LINE TEXT  L The multi-line text question (need not be an actual question) is L reproduced exactly as entered with the carriage (cursor) positi- L oned to the start of the next line. The text display is termi- L nated when the .ENDM directive is encountered as the first entry > on a line other than space or tab. Type code is 0.  Example: t! .MACRO MULTXT 0 ' THIS IS AN EXAMPLE OF A t, MULTIPLE LINE TEXT QUESTION. 4 IT MAY BE USED AS A QUESTION OR JUST 5 TO PRINT OUT SOME INFORMATION FOR THE d1 PROGRAM USER. ANY NUMBER OF LINES d MAY BE USED.  .ENDM  r SINGLE LINE QUESTION E  e vL LOADABLE SUBROUTINES PAGE 7-4 K 06/11/850  L This type of question is usually used to solicit text info00fpe4e5eddddrmation L from the user (name, age etc.). Only one line is printed and the L carriage (cursor) is positioned at the end of the line. Any L further lines of text entered for this question type will not be  displayed. E Example: ! .MACRO SINGLE 1 + TYPE YOUR NAME: LAST, FIRST  .ENDM  # MULTIPLE CHOICE QUESTION  L This type of question is used to solicit a number response which L is selected from a finite set of choices displayed to the user. L A succeeding question may be selected depending on the response L to the displayed question. Thus multiple choice branching struc- L tures may be set up. The character used to separate the response L text from its associated branching question name is the back- L slash. The number of choices is the number following the ques- ( tion name in the .MACRO line.  Example: e! .MACRO MULCHC 3 d) SELECT YOUR STATE OF MIND i GOOD\MULCH1 e FAIR\MULCH2  TGIF\MULCH3 t .ENDM i b? COMMON INFORMATION FOR ALL QUESTION PROCESSING CALLS s tL Sbroutines are provided in three different forms to perform a H number of different functions. The functions are as follows: # 1) Display question ' 2) Position to question ' 3) Return question text H% 4) Return answer text E' 5) Return question name  = The three forms of the subroutines are as follows: 5 1) 'M' form: perform function by name LI 2) 'C' form: perform function on question linked to prev. e quest. G 3) 'R' form: perform function on last question accessed r sL In general the 'M' form and 'C' form of the subroutines reset the L last question accessed. The 'R' form, since it acts on the last L question accessed, does not change it. The one exception is the L 'C' form of the return question name function (CQNAM). It does 1 not change the last question accessed. o L The 'M' form of the subroutines uses a name specified as an input L string argument (3rd parameter) to position to the specified 9 question and then perform the required action. e hL The 'C' form uses the last question accessed (positioned to) in   L LOADABLE SUBROUTINES PAGE 7-5 K 06/11/85   oL order to position to another question. To do this, the last L question must have been a multiple choice question and a link L must be provided for the answer number specified as the third , parameter in the subroutine call.  oL The 'R' form uses the previously accessed question (whether by L 'M' or 'C') to perform its action. The third parameter is a dum- my numeric parameter.   GENERAL PARAMETERS  L Following is a description of the symbolic parameter names used L in describing the various subroutine calls. They are, of course, L replaced in the actual calls by legal BASIC expressions in the L case of input values and by legal variable names in the case of  output values. eG LUN: Input value containing LUN used in OPEN LIBRARY h command mI STATUS: Output value returning status of action requested J +2 or greater = max response # for multiple choice  ques. sI +1 = question was a text input type (single line) lA 0 = question was multi-line info display I 00'fmene 2-WORD INPUT DESCRIPTOR E ; (SP)=LEN, 2(SP)=ADDR H JSR PC,@#PARCHK ;CHECK FOR TRAILING RIGHT PAREN C ;(ALSO BUMPS TEXT POINTER) 7 MOV R1,-(SP) ;SAVE TEXT PTR IC MOV 2(SP),R0 ;LEN OF INPUT STRING -> R0 9 BEQ 3$ ;IF ZERO, BRANCH H JSR PC,@#TSTU00 ;CHECK FOR ROOM IN USER STORAGE  AREA 6 ;WIPES R3,R4, I ;R5 -> NEXT BYTE IN USER STORAGE C AREA ? BHI 1$ ;BRANCH IF ROOM EXISTS S X OL SAMPLE LOADABLE MACRO SUBROUTINE PAGE B-2 K 06/11/85   $D OVFERR ;ELSE DO ERROR TRAP ; 1$: MOV R0,R4 ;SAVE LENGTH IN R4 G BIS #160000,R0 ;MAKE R0 A "SCRATCH" DATA TYPE  HEADER A MOV R0,(R5)+ ;PUT HEADER IN USER AREA L MOV R5,R2 ;SAVE STRING ADDRESS (IN USER AREA) G MOV 4(SP),R3 ;ADDRESS OF INPUT STRING -> R3 G MOV R4,R0 ;STRING LENGTH -> LOOP COUNTER J ADD R4,R3 ;BUMP R3 PAST END OF INPUT STRING < 2$: MOVB -(R3),(R5)+ ;REVERSE THE STRING  SOB R0,2$ E MOV R2,R3 ;OUTPUT STRING ADDRESS -> R3 F ;STRING LENGTH STILL IS IN R4 J 3$: MOV SP,R5 ;GET ADD OF RETURN ARG DESCRIPTOR / ADD #6,R5 ;IN R5 F JSR PC,@#SSTORE ;AND RETURN THE RESULT TO THE  CALLER : MOV (SP)+,R1 ;RESTORE TEXT PTR @ ADD #7*2,SP ;CLEAN STACK OF 7 WORDS 4 RTS PC ;AND RETURN ; END: ;LABLE END OF CODE  .END R  MACRO COMMAND FILE > REVSTR,REVSTR/-SP=LB:[1,202]LOAMAC/ML,[1,202]REVSTR  TKB COMMAND FILE A / REVSTR.ATK/-HD/-FP,REVSTR/-SP=REVSTR LB:[1,1]BSCPUR.STB/SS /  STACK=0  UNITS=0 /  O K00Gfmene USEFUL INTERNAL BASIC SUBROUTINE CALLS  [ 0 OJ ; GETARG: TO RETRIEVE ADDRESSES OR VALUES FROM AN ARGUMENT LIST ) ; IN A BASIC "CALL" STATEMENT. D ; J ; ON ENTRY: R5 POINTS TO A USER TABLE FOR RESULT TO BE PLACED  IN K ; R1 POINTS TO POS IN ARG LIST (MUST BE "," OR "(" ) K ; R0 POINTS TO LIST OF BYTE ARG TYPES (TERM. BY 0 OR  > 4) K ; ON RETURN: R5 POINTS TO THE FIRST WORD PAST THE RETURNED DATA BG ; R1 POINTS TO NEXT CHAR FOLLOWING LAST ARG JUST S RETURNED G ; R0 POINTS TO FIRST BYTE AFTER TERMINATING BYTE " ; ARG TYPES IN R0 LIST: I ; 1 = INPUT NUMERIC EXPRESSION (2-WORD FLOATING  POINT) ; B ; 2 = OUTPUT NUMERIC TARGET (5 WORDS) H ; 2-WORD FP VALUE I ; 2-WORD FP OFFSET I ; 1-WORD OFFSET TO  HEADER ; G ; 3 = INPUT STRING EXPRESSION (2 WORDS) LEN,  ADDRESS ; B ; 4 = OUTPUT STRING TARGET (5-WORDS) G ; 1-WORD ADDRESS F ; 1-WORD LENGTH I ; 2-WORD FP OFFSET TF ; 1-WORD HEADER  ADDRESS A ; H ; FOR STANDARD VARIABLE, FP-OFFSET IS FROM STUDAT L ; FOR VIRTUAL VARIABLE, FP-OFFSET IS FROM FILE START ; 3 ; 0 OR > 4 = LIST TERMINATOR ; ; ALL OTHER REGISTERS WILL BE USED AND DESTROYED ; L ; GTRGPI: POSITION INDEPENDENT ARGUMENT RETRIEVAL FOR USER LOADED G ; ROUTINES. THE ARGUMENT TYPE LIST FOLLOWS THE CODE IN A JSR  R4,GTPRI H ; INSTRUCTION. THE ARGUMENT LIST ITSELF IS CONSTRUCTED ON THE  A VL USEFUL INTERNAL BASIC SUBROUTINE CALLS PAGE C-2 K 06/11/85R 4 L STACK , ; AND POINTED TO BY SP ON RETURN.  ; ON ENTRY: C ; R4 POINTS TO ARG TYPE LIST (VIA JSR R4,@#GTRGPI) S3 ; OLD R4 ON STACK (WILL BE POPPED) I ; ON RETURN: JF ; SP -> ARG LIST (ON STACK - TO BE REMOVED BY CALLING  ROUTINE) - ; OTHER REGISTERS: POTENTIALLY ALL ; ; C ; NSTORE: TO STORE AWAY A VALUE FROM AC0 INTO A LOCATION @ ; STORED IN A TABLE SUCH AS THAT FILLED IN BY GETARG. 7 ; ON CALL: R5 CONTAINS POINTER TO ADDRESS 8 ; AC0 CONTAINS VALUE TO BE STORED ( ; ON RETURN: NOTHING CHANGED $ ; REGISTERS USED: R0, AC1 ; ; ; ; ; K ; SSTORE: TAKE A STRING DESCRIBED BY LEN IN R4 AND ADDRESS IN R3 AE ; AND STORE IT INTO A STRING VARIABLE WHOSE TABLE ENTRY IS A ; POINTED TO BY R5. ; < ; ON CALL: R3 = ADDRESS OF STRING TO BE STORED ; ; R4 = LENGTH OF STRING TO BE STORED B ; R5 = POINTER TO OUTPUT STRING TABLE ENTRY ; 5 ; ON RETURN: R3 POINTS PAST END OF STRING  ; R4 = 0 % ; R5 UNCHANGED E; ; OTHER REGISTERS USED: R0,R2 (ALL BUT R1) ; ; , ; ARGCNT: COUNT ARGUMENTS ROUTINE < ; ON ENTRY: R100Ofpe4e5edddd POINTS TO LEADING OPEN PAREN "(" % ; ON EXIT: R1 UNCHANGED H ; R0 CONTAINS COUNT OF ARGUMENTS UP TO ")" IN THE  LIST K ; QUOTED STRINGS AND SUBSCRIPTS ARE ACCOUNTED FOR % ; OTHER REGISTERS USED: R2 L ; NOTE: AN END OF LINE WILL TERMINATE THE SCAN IRRESPECTIVE  OF F ; ENCLOSING QUOTES AS LONG AS IT IS USED AS THE  INTERNAL : ; LINE DELIMITER (S.EOL1 OR S.EOL2) ; ; ; ; 5 ; TSTU00 - CHECK FOR USER STORAGE OVERFLOW U ; 6 ; CHECK FOR POSSIBLE USER STORAGE OVERFLOW  I L USEFUL INTERNAL BASIC SUBROUTINE CALLS PAGE C-3 K 06/11/85   ;  ; ON ENTRY N< ; R0=NUMBER OF BITES TO PUT IN USER STORAGE  ; ON EXIT ; ; R5-> NEXT AVAILABLE BYTE IN USER STORAGE ! ; OTHER REGISTERS USED  ; R0,R3,R4 E ; % ; STATUS RETURNED IN C-BIT K1 ; BHI WILL BRANCH IF ROOM EXISTS ; ; ; ? ; PARCHK: CHECK THAT NEXT CHARACTER IN TEXT IS A ")" ;  ; CALL WITH $ ; R1-> PROGRAM TEXT ;  ; SUCCESSFUL RETURN  ; ")" IN R2 ; R1-> PAST ")"  ; ERROR RETURN E? ; CALL TO "ERROR IN PROCESSING CALL STATEMENT" ; ; ; ; J ; SKIP00: SKIP OVER BLANKS IN PROGRAM TEXT - GET NEXT CHARACTER ; " ; ENTER WITH R1 -> TEXT ;  ; EXIT STATUS ! ; R2 = CHARACTER D ; R1 -> NEXT CHARACTER (AFTER R2 CHARACTER) IN TEXT ; ; ( ; OTHER REGISTERS USED - NONE ; ; ; 3 ; FORMAT FOR BASIC LOADABLE SUBROUTINES: G/ ; SET UP BY THE "ULODHD" MACRO ;  ; FIRST THREE WORDS: KK ; .WORD ID0001 ;THESE THREE WORDS ARE FILLED IN BY GLOBAL  SYMBOLS XI ; .WORD ID0002 ;FROM A SYMBOL TABLE FOR BASIC, ENSURING R CORRECT J ; .WORD ID0003 ;SYMBOL LINKAGES (OR ELSE ERROR MESSAGE). ( ; NEXT TWO WORDS ARE LENGTHS: F ; .WORD ?????? ;LENGTH (IN BYTES) OF CODE PLUS ENTRY  POINTS C ; .WORD ?????? ;LENGTH (IN BYTES) OF ENTRY POINTS 3 ; .WORD ?????? ;# OF ENTRY POINTS G ; NEXT ENTRIES ARE THREE WORD BLOCKS DESCRIBING ENTRY POINTS M S L USEFUL INTERNAL BASIC SUBROUTINE CALLS PAGE C-4 K 06/11/85  O EH ; .RAD50 /NAME/ ;TWO WORDS OF RAD50 ENTRY POINT  NAME B ; .WORD ?????? ;OFFSET FROM START OF CODE PROPER I ; FINALLY, ONE WORD CONTAINING NUMBER OF WORDS OF CODE PROPER: R? ; .WORD ?????? ;LEN (IN WORDS) OF CODE PROPER E ; F ; NOTE: THESE MODULES MUST BE TASK BUILT WITH /-HD/-FP AND:  ; STACK=0  ; UNITS=0 ; L ; IN ADDITION POSITION INDEPENDENT CODING TECHNIQUES MUST BE USED  IN J ; WRITING THE CODE BECAUSE ITS POSITION IN THE INTERPRETER WILL  VARY 9 ; DEPENDING ON WHAT OTHER ROUTINES ARE LOADED. O I G RK 06/11/85  P E       0 APPENDIX D  A. INDEX   T  / ! . . . . . . . . . . . . . . . 3-4 P E/ ABS . . . . . . . . . . . . . . 4-1 / Absolute value funct00Wfmene GOSUB . . 3-1 ./ ON GOTO . . 3-1 ./ ON ERROR GOTO . . . . . . . . . 3-6 t/ OPEN . . . . . . . . . . . . . . 6-3 ./ OPEN LIBRARY . . . . . . . . . . 7-2 ./ OVERLAY . . . . . . . . . . . . 2-3 . ./ PASS-ALL-INPUT . . . . . . . . . 3-6 ./ PASS-ALL-WRITE . . . . . . . . . 3-6 ./ Piece of string by delimiter . . 5-3 ./ PIECE$ . . . . . . . . . . . . . 5-3 ./ POS . . . . . . . . . . . . . . 5-1 ./ Position string function . . . . 5-1 ./ Powers of numbers . . . . . . . 1-4 ./ PRINT . . . . . . . . . . . . . 6-1 ./ Print tab function . . . . . . . 5-5 ./ PRIORITY . . . . . . . . . . . . 3-8 ./ Program chain . . . . . . . . . 2-3 ./ Program continue . . . . . . . . 2-4 ./ Program delete . . . . . . . . . 6-3 t/ Program line delete . . . . . . 2-4 ./ Program list . . . . . . . . . . 2-3 ./ Program overlay . . . . . . . . 2-3 ./ Program retrieve . . . . . . . . 2-2 ./ Program save . . . . . . . . . . 2-2 ./ PROMPT . . . . . . . . . . . . . 3-6 . ./ Question Display . . . . . . . . 7-3 . 3/ R5A$ . . . . . . . . . . . . . . 5-4 21 RAD50 to ASCII conversion function 5-4 49 Random access I/O . . . . . . . 6-1, 6-2, 6-3 / RANDOMIZE . . . . . . . . . . . 4-1   gL INDEX PAGE D-4 K 06/11/85a . ./ RATXT . . . . . . . . . . . . . 7-7 ./ RDIS . . . . . . . . . . . . . . 7-5 l/ READ . . . . . . . . . . . . . . 3-4 ./ Record count function . . . . . 4-3 A/ REM . . . . . . . . . . . . . . 3-4 a/ RESTORE . . . . . . . . . . . . 6-1 / RETURN . . . . . . . . . . . . . 3-1 / RIGHT . . . . . . . . . . . . . 5-2 / Right justify function . . . . . 5-5 / RJS$ . . . . . . . . . . . . . . 5-5 1/ RND . . . . . . . . . . . . . . 4-1 ./ RPOS . . . . . . . . . . . . . . 7-7 ./ RQNAM . . . . . . . . . . . . . 7-7 ./ RQTXT . . . . . . . . . . . . . 7-7 .4 RUN . . . . . . . . . . . . . . 1-4, 2-1  3/ SAVE . . . . . . . . . . . . . . 2-2 6/ SBS$ . . . . . . . . . . . . . . 5-2 3/ SCRATCH . . . . . . . . . . . . 6-3 5/ SE00gflfne [N1][-N2][,N3...]. . 2-2 C 2.5 OLD _. . . . . . . . . 2-2 C 2.6 CHAIN _ . . . 2-3 C 2.7 OVERLAY _. . 2-3 RB 2.8 LIST [N1][-N2][,N3...] . . . . . . . . . . . . . 2-3 B 2.9 DELETE N1[-N2][,N3...] . . . . . . . . . . . . . 2-4 B 2.10 EXIT. . . . . . . . . . . . . . . . . . . . . . 2-4 C 2.11 STEP [LINE _#] . . . . . . . . . . . . . . . . . 2-4 ]C 2.12 CON [LINE _#]. . . . . . . . . . . . . . . . . . 2-4 [ ]ACHAPTER 3 PROGRAM STATEMENTS. . . . . . . . . . . . . . . . . 3-1VA 3.1 GOSUB N . . GOTO N . . . . . . . . . . . . . . . 3-1[E 3.2 ON _ GOTO _ _. . . . . . . 3-1 A 3.3 RETURN . . . . . . . . . . . . . . . . . . . . . 3-1 B 3.4 DIM. . . . . . . . . . . . . . . . . . . . . . . 3-2 D 3.5 DIM _#N,_ . . . . . . . . . . . . . . . . . . 3-2 B 3.6 DEF. . . . . . . . . . . . . . . . . . . . . . . 3-3 B 3.7 LET. . . . . . . . . . . . . . . . . . . . . . . 3-3 B 3.8 IF . . . . . . . . . . . . . . . . . . . . . . . 3-4 B 3.9 REM . . !. . . . . . . . . . . . . . . . . . . . 3-4 B 3.10 READ . . DATA . . . . . . . . . . . . . . . . . 3-4 B 3.11 FOR . . . . . . . . . . . . . . . . . . . . . . 3-5 B 3.12 NEXT. . . . . . . . . . . . . . . . . . . . . . 3-5 B 3.13 BREAK . . . . . . . . . . . . . . . . . . . . . 3-5 B 3.14 SET PROMPT/TRACE/PASS-ALL/ECHO/UPPER ON/OFF . . 3-6 B 3.15 ON ERROR GOTO . . . . . . . . . . . . . . . . . 3-6 D 3.16 SLEEP __. . . . . . . . . . . . 3-7 D 3.17 WAIT __ . . . . . . . . . . . . 3-7 C 3.18 PRIORITY _ . . . . . . . . . . . . . 3-8 B 3.19 TRACE ON AND OFF. . . . . . . . . . . . . . . . 3-8  ACHAPTER 4 ARITHMETIC FUNCTIONS. . . . . . . . . . . . . . . . 4-1 A 4.1 RND. . . . . . . . . . . . . . . . . . . . . . . 4-1/A 4.2 RANDOMIZE. . . . . . . . . . . . . . . . . . . . 4-1 A 4.3 ABS. . . . . . . . . . . . . . . . . . . . . . . 4-1>B 4.4 SGN. . . . . . . . . . . . . . . . . . . . . . . 4-2 B 4.5 INT. . . . . . . . . . . . . . . . . . . . . . . 4-2 C 4.6 LOG (NATURAL _& BASE 10). . . . . . . . . . . . . 4-2 B 4.7 EXP. . . . . . . . . . . . . . . . . . . . . . . 4-2 B 4.8 SIN COS. . . . . . . . . . . . . . . . . . . . . 4-2 B 4.9 ATN. . . . . . . . . . . . . . . . . . . . . . . 4-3 B 4.10 SQR . . . . . . . 00flfne. . . . . . . . . . . . 6-3 B 6.6 OPEN . . . . . . . . . . . . . . . . . . . . . . 6-3 B 6.7 CLOSE N1[,N2...] . . . . . . . . . . . . . . . . 6-4 E 6.8 IF END [_#N] THEN _. . . . . . . . . . . . 6-4  ACHAPTER 7 LOADABLE SUBROUTINES. . . . . . . . . . . . . . . . 7-1 B 7.1 LOAD _ . . . . . . . . . . . . . 7-1A 7.2 UNLOAD . . . . . . . . . . . . . . . . . . . . . 7-1 B 7.3 CALL "NAME"(ARG1,ARG2,...) . . . . . . . . . . . 7-2 B 7.4 INSTRG . . . . . . . . . . . . . . . . . . . . . 7-2 B 7.5 OPEN LIBRARY . . . . . . . . . . . . . . . . . . 7-2 B 7.6 QUESTION DISPLAY . . . . . . . . . . . . . . . . 7-3 B 7.7 MDIS . . CDIS . . RDIS . . . . . . . . . . . . . 7-5 B 7.8 MPOS . . CPOS . . RPOS . . . . . . . . . . . . . 7-7 B 7.9 MQTXT . . CQTXT . . RQTXT. . . . . . . . . . . . 7-7 B 7.10 MATXT . . CATXT . . RATXT . . . . . . . . . . . 7-7 B 7.11 CQNAM . . RQNAM . . . . . . . . . . . . . . . . 7-7 B 7.12 SPAWNB. . . . . . . . . . . . . . . . . . . . . 7-8  AAPPENDIX A BASIC ERROR VALUES . . . . . . . . . . . . . . . . A-1  AAPPENDIX B SAMPLE LOADABLE MACRO SUBROUTINE . . . . . . . . . B-1  AAPPENDIX C USEFUL INTERNAL BASIC SUBROUTINE CALLS . . . . . . C-1  AAPPENDIX D INDEX. . . . . . . . . . . . . . . . . . . . . . . D-1 \\.FILL .CHAPTER ^^INTRODUCTION\\X.SKIPA.X ^INTRODUCTIONH^THIS ^^BASIC\\ FOLLOWS ^^DEC\\'S ^^BASIC-11\\ IN ITS BASIC ORIENTATION.J^ADVANCED FEATURES TEND TO FOLLOW 'SIZE' IS ^THE END OF LINE DOES NOT SERVE TO END A STATEMENT EXCEPT WHEN@THERE IS NO CONTINUED LINE FOLLOWING IT. ^THUS A STATEMENT WHICH;BEGINS ON A CONTINUED LINE MUST EITHER HAVE A CONCATENATIONA=CHARACTER AT THE START OF ITS LINE OR THE END OF THE PREVIOUSR>LINE. ^THERE IS AN EXCEPTION IN THE CASE OF A COMMENT (! ONLY)=TERMINATING THE PREVIOUS LINE, IN WHICH CASE NO CONCATENATIONNCHARACTER IS USED.4^CARE SHOULD BE TAKEN NOT TO START AN IMMEDIATE MODEACOMMAND WITH A TAB OR DOUBLE SPACE AS IT WILL NOT BE EXECUTED BUT CADDED TO THE EXISTING PROGRAM AS A CONTINUATION OF THE LAST ENTEREDN PROGRAM LINE.I.SG^THIS VERSION OF BASIC AUTOMATICALLY CONVERTS ALL LOWER CASE CHARACTERS JTO UPPER CASE, THUS ^PROGRAM SOURCE MAY BE IN LOWER CASE. SAVING A PROGRAMFVIA THE "SAVE" COMMAND WILL RESULT IN AN ALL UPPER CASE VERSION. ^CASE>CONVERSION DOES NOT TAKE PLACE UNDER THE FOLLOWING CONDITIONS:.LISTS.LE ^DURING STRING INPUT.E.LE ^DURING "^^INPUT LINE\\.'.LE ^ON SOURCE TEXT ENCLOSED IN QUOTES. '.LE ^ON SOURCE TEXT IN A COMMENT FIELD.E.ENDLISTC^NOTE THAT CHECKING OF PROGRAM STATEMENTS FOR VERB LEGALITY AS THEYT=ARE READ IN BY THE INTERPRETER IS NO LONGER DONE AS IT WAS INA8EARLIER VERSIONS. ^ALL CHECKING IS NOW DONE AT RUN TIME..S.HEADERLEVEL 1 ^VARIABLE NAMES .X ^VARIABLESL.BRUH^VARIABLE NAMES MAY BE ONE OR TWO CHARACTERS OF WHICH THE FIRST IS ALPHAFAND THE SECOND (IF USED) IS ALPHANUMERIC, FOLLOWED BY AN OPTIONAL TYPEKCHARACTER. ^IF NO TYPE CHARACTER IS USED, THE TYPE IS USUALLY MORE THAN IS PRACTICAL TO STORE IN AN IN-MEMORY ARRAY.H^THE USE OF VIRTUAL ARRAYS INVOLVES A SPECIAL FORM OF THE MAY FOLLOW FOR NORMAL INTERACTIVE USE OR ONE OF TWO OTHER3OPTIONS MAY FOLLOW BEFORE _<^C^R> FOR SPECIAL USES. .FG 1OI^IF A SPACE AND A ? FOLLOWED BY AN ARITHMETIC EXPRESSION FOLLOWS ^^BAS\\,RETHE VALUE OF THE EXPRESSION WILL BE PRINTED ON THE NEXT LINE FOLLOWEDABY A RETURN TO THE ^^MCR\\.E<^THIS IS USEFUL FOR QUICK DESK CALCULATOR TYPE CALCULATIONS..FG 1RD^IF A SPACE (OR TAB) AND A FILE NAME WITH AN OPTIONAL SWITCH FOLLOW,GTHEN THAT FILE WILL BE READ IN AS A USER PROGRAM JUST AS IN THE ^^OLD\\>COMMAND..FG 1OD^IF THE SWITCH (/^R^N) IS SPECIFIED, THE PROGRAM WILL ALSO BE RUN AS*THOUGH THE ^^RUN\\ COMMAND HAD BEEN TYPED.@^A SWITCH OF THE FORM "BAS MCR>BASIC PROG.BAS/RN MCR>BAS PROG/RN:150 MCR>BAS ? 4*3+2\\.FILLS.SLU.HEADERLEVEL 1 ^CONTROL ^C.BRY.X _^^CS.X ^CONTROL ^C7^THE BREAK KEY FOR ^^BASIC\\ IS THE ^CONTROL-^C (_^^C).TA^A _^^C TYPED AT THE KEYBOARD WHEN RUNNING WILL CAUSE THE PROGRAMI>TO STOP AT THE NEXT SEQUENTIAL LINE (NOT AT A LINE ENTERED VIA__[___...]O\\.BRLK^WHERE EXPRESSIONS ARE EITHER ARITHMETIC OR STRING AND RELATIONAL OPERATORSL0CAN BE FORMED BY ANY COMBINATION OF _<, > AND =.I^THE TWO EXPRESSIONS WHICH ARE RELATED BY THE RELATIONAL OPERATOR MUST BE-,OF THE SAME TYPE: I.E. STRING OR ARITHMETIC.A^THE RESULT OF EVALUATING THE RELATIONSHIP (TERMED HERE A LOGICALP'SUBEXPRESSION) IS EITHER TRUE OR FALSE.E.FG 11I^STRINGS ARE COMPARED CHARACTER BY CHARACTER ON THE BASIS OF THEIR = 5)L\\.F,.CHAPTER ^^LOADING/RUNNING/SAVING PROGRAMS\\K^THE SUBSET OF COMMANDS LISTED IN THIS CHAPTER IS PRIMARILY USED TO CONTROLH?EXECUTION OF STRING EXPRESSION FOLLOWING THE ^THE OPTIONAL SWITCH /^R^T MAY BE USED AS WITH ^^OLD\\ TO TRIMC^^REM\\ AND ! STATEMENTS WHEN THE FILE FORM OF THE COMMAND IS USED.NC^THE SWITCHES /
  • [N1][-N2][,N3...]\\ .BREAK%^PRIMARILY AN IMMEDIATE MODE COMMAND.R<^IT MAKES A COPY OF THE PRESENT PROGRAM ON THE FILE NAMED IN:THE STRING FILESPEC (STRING VARIABLE OR STRING IN QUOTES).=^OPTIONAL LINE NUMBERS OR LINE NUMBER RANGES CAN BE INCLUDED.S.FG 1X;^THE OPTIONAL SWITCH WILL PRODUCE A PSUEDO-COMPILED VERSIONT3WHICH CAN BE READ BACK WITH THE SAME SWITCH WITHOUTL:RE-INTERPRETING THE CODE THUS SAVING A CONSIDERABLE AMOUNTOF TIME FOR LONG PROGRAMS.>^THE DEFAULT EXTENSION WILL BE \\I.BREAKB^THE ^^OLD\\ COMMAND READS IN A PREVIOUSLY SAVED OR EDITED PROGRAM<FROM THE FILE NAMED IN THE STRING FILESPEC (AS IN ^^SAVE\\).:^THE OPTIONAL SWITCH, WHEN SPECIFIED, CAUSES TRUNCATION OF^^REM\\ AND ! STATEMENTS.E2^THE DEFAULT FILE SPECIFIER IS: ^^SY:PROGRAM.BAS\\=^THE .HEADERLEVEL 1 ^^CHAIN _\\.BREAK?^THE ^^CHAIN\\ COMMAND READS IN ANOTHER ^^BASIC\\ PROGRAM WHILEE/PRESERVING VARIABLES AND OPEN FILES' ^^FCB\\'S. H^^GOSUB/RETURN\\ POINTERS, ^^FOR\\ LOOP CONTROL TABLES, USER ^^DEF\\INEDDFUNCTIONS AND SCRATCH ITEMS ARE ALL DELETED FROM THE USER DATA AREA.A^THUS USER FUNCTIONS MUST BE REDEFINED IN ANY NEW PROGRAM MODULE.A.FG 1@^THE DEFAULT FILE SPECIFIER AND SWITCHES ARE THE SAME AS FOR THEJ^^OVERLAY\\ COMMAND WITH THE ADDITION OF THE /
  • \\E.BREAKL^THE ^^OVERLAY\\ COMMAND READS IN ADDITIONAL PROGRAM TEXT FROM THE SPECIFIEDIFILE AND ADDS THEM TO THE EXISTING PROGRAM JUST AS THOUGH THEY WERE TYPEDDFFROM THE KEYBOARD: I.E. NEW STATEMENTS WITH THE SAME LINE NUMBER AS AN2EXISTING STATEMENT REPLACE THE EXISTING STATEMENT.L^THE SAME PRECAUTIONS REGARDING FUNCTION DEFINITIONS AND ^^DATA\\ STATEMENTSCDURING DEBUGGING SHOULD ALSO BE OBSERVED WHEN USING THE ^^OVERLAY\\ASTATEMENT IN PROGRAM MODE..FG 1YK^THE OPTIONAL SWITCH (/^L^I) IS SIGNIFIC00ftf4e5eddddANT IN PROGRAM MODE ONLY AND CAN BER:USED TO SPECIFY THE LINE AT WHICH EXECUTION SHOULD RESUME.D^THE /^IF NO LINE NUMBER IS SPECIFIED, EXECUTION RESUMES AT THE LINEFOLLOWING THE LAST STOP.8^NOTE THAT IF A BRANCH IS TAKEN THE LINE BEING EXECUTED,?THE PROGRAM WILL NOT STOP UNTIL THE NEXT LINE AFTER THE BRANCH.R2^THE STOP USES THE SAME INTERNAL FACILITIES AS THE_^^B BREAK FEATURE.X.BRE ^EXAMPLE:I.NFL^^ STEPR STEP 510V\\.F.SLL .X ^^CON\\.X ^PROGRAM CONTINUE .HEADERLEVEL 1 ^^CON [LINE _#]\\.BRE9^THIS COMMAND ALLOWS ONE TO RESUME EXECUTION OF A PROGRAMO-AFTER STOPPING IT FOR INTERACTIVE DE-BUGGING.R6^WHEN USED WITH THE OPTIONAL LINE NUMBER, IT FUNCTIONSJUST LIKE ^^GOTO\\GWITH THE EXCEPTION THAT THE NEXT AVAILABLE LINE AFTER THE ONE SPECIFIEDT#IS USED IF THERE IS NO EXACT MATCH.RK^IF NO LINE NUMBER IS SPECIFIED, EXECUTION IS RESUMED AT THE LINE FOLLOWINGETHE LAST STOP..BR ^EXAMPLE:S^^.NFE CON CON 100\\.F.CHAPTER ^^PROGRAM STATEMENTS\\HC^THE SUBSET OF COMMANDS LISTED IN THIS CHAPTER IS PRIMARILY USED TOU.CONTROL THE FLOW OF PROGRAM EXECUTION, RESERVEASTORAGE AREA FOR VARIABLES, PERFORM ARITHMETIC CALCULATIONS, ETC.R.SKIPN .X ^^GOSUB\\ .X ^^GOTO\\#.HEADERLEVEL 1 GOTO _\\E&.X ^^ON _ GOSUB _\\:.HEADERLEVEL 1 ^^ON _ GOTO _ _\\.BRF^THIS STATEMENT TRANSFERS CONTROL TO THE ^NTH LINE NUMBER IN THE LIST.D^THE EXPRESSION IS EVALUATED AS A NORMAL OCCUPY THE SAME RELATIVE STATEMENT POSITION IN THE LINE BEFORE>AND AFTER THE MODIFICATION: I.E. IT MUST BE THE FIRST OR THIRDETC. STATEMENT IN THE LINE.2.BREAK ^EXAMPLE:-.NOFILLU^^ 10 RETURN\\.FILLS.SKIPX .X ^^DIM\\.X ^STRING VARIABLES.HEADERLEVEL 1 ^STRING LENGTHS ARE INDICATED IN SQUARE BRACKETS [#] WHICH ARE<FOLLOWED BY A '^V' IF THE STRING IS TO HAVE VARIABLE LENGTH.;^IN THE CASE OF A VARIABLE LENGTH STRING, THE LENGTH IS THEI+MAXIMUM LENGTH WHICH THE STRING MAY ASSUME.B9^A STRING UNDECLARED IN A \\T.BREAKJ^THIS STATEMENT DECLARES CERTAIN VARIABLES AS "VIRTUAL ARRAYS" AND DEFINES>THEIR ALLOCATION ON THE FILE WHOSE ^FUNCTION NAMES RETURNING STRING VALUES MUST END IN '$', THOSE"RETURNING NUMERIC VALUES MUST NOT.C^FUNCTIONS ARE RECURSIVE, I.E. THEY MAY USE THEMSELVES AS ARGUMENTSIIN00ftf4e5edddd THE FUNCTION CALL.R.SKIPFA^FUNCTION DEFINITIONS CREATE AN INTERNAL POINTER TO THE ^^ASCII\\.$TEXT TO THE RIGHT OF THE EQUAL SIGN.@^FOR THIS REASON THEY SHOULD BE PLACED NEAR THE BEGINNING OF THEAPROGRAM TO AVOID BEING MOVED DURING DEBUGGING RUNS BY INSERTIONS,R@DELETIONS OR CHANGES TO LINES PRECEDING THE FUNCTION DEFINITION..SKIPF=^FUNCTION DEFINITIONS ARE DELETED BY THE ^^CHAIN\\ STATEMENT.E.SKIP ^EXAMPLE:U.NOFILLO^^ 30 DEF FNA1(A)=A^2I 40 DEF FNC$(X$)=X$+"ABC"E& 50 DEF FNZ3$(X$,I)=SEG$(X$,I,LEN(X$))\\.FILL.SKIPO .X ^^LET\\.X ^ARITHMETIC ASSIGNMENTR.HEADERLEVEL 1 .HEADERLEVEL 1 ^^SET PROMPT/TRACE/PASS-ALL/ECHO/UPPER ON/OFF\\.BR:F^THIS STATEMENT IS USED TO SET OR CLEAR A NUMBER OF SYSTEM CONDITIONS.@^THE NUMBER OF CONDITIONS IS LIKELY TO INCREASE IN THE FUTURE AS9FUNCTIONALITY IS ADDED. ^CONDITIONS NOW SERVICED INCLUDE:K.FG 1;_\\.BRR=^THE _\\E^THE \\.BRUD^THE 0; -1 IF ARGUMENT < 0;0 RETURNED IF ARGUMENT = 0.E.BREAK ^EXAMPLE:D.NOFILL^^ 10 A=SGN(A1)A\\.FILLR.SKIPN .X ^^INT\\.X ^INTEGER FUNCTION.HEADERLEVEL 1 IS INTERPRETED MODULO 36524 (THE NUMBER OF DAYS IN A CENTURY).A^IF THE ARGUMENT IS A ZERO OR NEGATIVE VALUE (OTHER THAN A SINGLEE/CHARACTER '0'), THEN A NULL STRING IS RETURNED. .BREAK ^EXAMPLE: .NOFILL^^% 50 A$=DAT$(0) : ! RETURN SYSTEM DATE  60 PRINT DAT$(12752)H% 70 A$=DAT$() : ! RETURN SYSTEM DATE\\.FILLL.SKIP .X ^^DDAT$\\.X STRING MUST BE IN THE FORM ^WHEN EXPRESSIONS ARE SEPARATED BY COMMAS, RESULTS ARE PRINTED IN FIELDS OF 14 CHARACTERS EACH.B^WHEN EXPRESSIONS ARE SEPARATED BY SEMICOLONS, RESULTS ARE PRINTED,NEXT TO EACH OTHER WITHOUT ANY SPACES ADDED.3^A TRAILING SEMICOLON WILL SUPPRESS ^^__\\. C^WHEN PRINTING WITH COMMA SEPARATION, AS MANY FIELDS ARE ALLOWED ASICAN FIT ON THE PRINTING DEVICE.AB^NOTE THAT NUMERIC VALUES, WHEN CONVERTED IN A ^^PRINT\\ STATEMENT"NORMALLY HAVE A SPACE AT EACH END.*^TO AVOID THIS, USE THE ^^STR$\\ FUNCTION..SKIPSD^ON BINARY FILES, THE FOLLOWING CONDITIONS HOLD: ^^TAB\\ IS IGNORED,FNO "FIELD" JUSTIFICATION IS PERFORMED AND ALL DATA LIST ITEMS MUST FITINTO THE EXISTING BUFFER.HC^FLOATING VALUES ARE STORED AS FOUR CONSECUTIVE BYTES WHICH ARE NOT< WORD ALIGNED.WF^STRINGS AND NUMERIC VALUES ARE PACKED TOGETHER AND MAY BE COMBINED IN ANY ORDER.G^IT IS UP TO THE USER TO KEEP TRACK OF THE INTERNAL STORAGE ARRANGEMENT\>FOR FUTURE USE WITH ^^INPUT\\ OR OTHER NON-^^BASIC\\ PROGRAMS..SLHF^A SYNONYM FOR ^^PRINT\\ IS "?" PRIMARILY FOR CONVENIENCE IN IMMEDIATE MODE USE.B.SL ^EXAMPLE:O.NOFILLJ^^ 50 PRINT A,3.5,"HELLO";A$ 60 PRINT _#3,EXP(.5);X^Y;\\.FILLI.TP 6U.SKIP .X ^^INPUT\\.X ^BINARY INPUT.X ^RANDOM ACCESS ^I/^OC.HEADERLEVEL 1 ^THE SECOND FORM FOLLOWS THE RULES FOR RANDOM ACCESS DESCRIBEDFOR THE ^^PRINT\\ STATEMENT.?^NUMERIC DATA MUST BE SEPARATED BY COMMAS OR SPACES, SUCCESSIVE$GSTRING VARIABLES MUST BE SEPARATED BY A COMMA AFTER THE REQUIRED NUMBERX!OF CHARACTERS HAVE BEEN TYPED IN.IF^A CHARACTER LEGALITY CHECK IS PERFORMED TO ENSURE THAT ALL CHARACTERSDARE BETWEEN OCTAL ^^ASCII\\ CODES 40 AND 137 INCLUSIVE AND 11 (TAB).F^IF A "^FOR INPUT FROM THE TERMINAL (NO FILE NUMBER), A PROMPT STRING?(ONLY STRING DEFINED IN QUOTES ALLOWED) MAY BE SPECIFIED BEFORERTHE VARIABLE LIST.6^THIS IS EQUIVALENT TO A A VARIABLE LENGTH STRING WILL HAVE ITS LENGTH SHORTENED TO THE:AVAILABLE DATA IF DATA RUNS OUT, AND A FIXED LENGTH STRINGWILL BE BLANK FILLED.L?^IF DATA RUNS OUT WHILE FILLING A NUMERIC VARIABLE, THE RESULTSAFARE UNPREDICTABLE AND IN ANY CASE TERMINATE THE PROGRAM WITH AN ERROR..BREAK ^EXAMPLE:M.NOFILLA^^ 30 INPUT _#3,A1,B1$ 50 INPUT _#4@R+5,X1,X2,A1$ 6 80 INPUT "WHAT IS YOUR NAME",N$ : ! READ NAME INTO N$\\.FILL .SKIPR.X ^^INPUT LINE\\A.HEADERLEVEL 1 \\E.BREAK;^THE ^^SCRATCH\\ COMMAND MUST HAVE A FILE SPECIFIER WITH AN 2EXPLICIT VERSION NUMBER IN ORDER TO DELETE A FILE.2^THE DEFAULT FILE SPECIFIER IS: ^^SY:PROGRAM.BAS\\.BREAK ^EXAMPLE:H.NOFILLS^^ SCRATCH "DATA.DAT;3"O 50 SCRATCH "DK1:DAT3.TMP"\\.FILLE.SKIP .X ^^OPEN\\F .X ^FILE OPEN .X ^RANDOM ACCESS ^I/^OE.HEADERLEVEL 1 \\L.BRNB^THIS STATEMENT IS USED TO RESET THE END OF FILE BRANCH ON A GIVENDFILE OR WITHOUT THE "_#^N", IT SETS THE TERMINAL END OF FILE BRANCH.A^THE SPECIFIED FILE MUST HAVE BEEN OPENED WITH THE POSSIBILITY OF ABEING READ FROM (I.E. CANNOT BE \\.BROE^THIS COMMAND LOADS THE SPECIFIED FILE AS A USER CALLABLE SUBROUTINE.I^THE DEFAULT EXTENSION IS ^THIS COMMAND UNLOADS ALL USER ASSEMBLY ROUTINES LOADED BY THE.B00glfne^IN THE CASE THAT A VALUE IS TO BE RETURNED, THE ARGUMENT MUST*BE A SIMPLE VARIABLE (MAY BE SUBSCRIPTED).A^FOR VALUES WHICH ARE PASSED, EITHER EXPRESSIONS OR VARIABLES MAYABE USED.=^THE VARIABLES AND EXPRESSIONS USED IN THE ARGUMENT LIST MUST.>MATCH THE TYPE (STRING OR NUMERIC) EXPECTED BY THE SUBROUTINE..FG 1N@^USER ROUTINES MUST PRESERVE THE TEXT POINTER (^R1) AND ON EXIT,>IF AN ARGUMENT LIST IS PRESENT, MUST POSITION IT JUST PAST THECLOSE PARENTHESIS./^SEE ^THEREFORE IT IS ALMOST ALWAYS PREFERABLE TO THE \\O.F?^THIS COMMAND FUNCTIONS SIMILARLY TO THE STANDARD TOTAL NUMBER OF CHOICES FOR THAT MULTIPLE CHOICE QUESTION (CANNEVER BE LESS THAN 2)..SLXE^THE QUESTION NAMES ARE USED FOR LINKING OF MULTIPLE CHOICE QUESTIONS.AND FOR QUESTION REPLACEMENT BY THE LIBRARIAN.4^QUESTION NAMES MAY BE UP TO 6 CHARACTERS IN LENGTH.B^THE CHARACTERS MUST BE LEGAL ^SBROUTINES ARE PROVIDED IN THREE DIFFERENT FORMS TO PERFORM ANUMBER OF DIFFERENT FUNCTIONS.^THE FUNCTIONS ARE AS FOLLOWS:.NF  1) ^DISPLAY QUESTIONI 2) ^POSITION TO QUESTIONE 3) ^RETURN QUESTION TEXT. 4) ^RETURN ANSWER TEXTI 5) ^RETURN QUESTION NAMEQ.SLO3^THE THREE FORMS OF THE SUBROUTINES ARE AS FOLLOWS:' 1) '^M' FORM: PERFORM FUNCTION BY NAMEEB 2) '^C' FORM: PERFORM FUNCTION ON QUESTION LINKED TO PREV. QUEST.9 3) '^R' FORM: PERFORM FUNCTION ON LAST QUESTION ACCESSEDG.SLS.FD^IN GENERAL THE '^M' FORM AND '^C' FORM OF THE SUBROUTINES RESET THELAST QUESTION ACCESSED.IE^THE '^R' FORM, SINCE IT ACTS ON THE LAST QUESTION ACCESSED, DOES NOT CHANGE IT.H^THE ONE EXCEPTION IS THE '^C' FORM OF THE RETURN QUESTION NAME FUNCTION (^ALL LINES UP TO THE LINE WITH A LEADING <.ENDM DIRECTIVE WILL BE DISPLAYED.".SLS^^SINGLE LINE TEXT INPUT\\:C@^THE LINE OF TEXT IS DISPLAYED WITH THE CARRIAGE (CURSOR) TO THE+IMMEDIATE RIGHT OF THE TEXT JUST DISPLAYED. B^ANY SPACES REQUIRED AFTER THE TEXT MUST BE EITHER INCLUDED IN THE?QUESTION TEXT OR ADDED FROM THE PROGRAM VIA A ^THE QUESTION TEXT OF THE NAMED, LINKED OR CURRENT QUESTION ISCRETURNED IN THE VARIABLE ^IN THE FIRST CASE, THE NAME OF THE QUESTION LINKED BY ^IN THE SECOND CASE THE CURRENT QUESTION NAME WILL BE RETURNED IN OF THE SPAWNED TASK IS RETURNED IN THE (OPTIONAL) VARIABLE ^S..FG 1D^IF THE 2-WORD INPUT DESCRIPTOR ; (SP)=LEN, 2(SP)=ADDR1 JSR PC,@_#PARCHK ;CHECK FOR TRAILING RIGHT PARENE ;(ALSO BUMPS TEXT POINTER) MOV R1,-(SP) ;SAVE TEXT PTR( MOV 2(SP),R0 ;LEN OF INPUT STRING -> R0 BEQ 3$ ;IF ZERO, BRANCHP6 JSR PC,@_#TSTU00 ;CHECK FOR ROOM IN USER STORAGE AREA ;WIPES R3,R4, ) ;R5 -> NEXT BYTE IN USER STORAGE AREA4 BHI 1$ ;BRANCH IF ROOM EXISTS OVFERR ;ELSE DO ERROR TRAPA!1$: MOV R0,R4 ;SAVE LENGTH IN R4S6 BIS _#160000,R0 ;MAKE R0 A "SCRATCH" DATA TYPE HEADER& MOV R0,(R5)+ ;PUT HEADER IN USER AREA/ MOV R5,R2 ;SAVE STRING ADDRESS (IN USER AREA) , MOV 4(SP),R3 ;ADDRESS OF INPUT STRING -> R3* MOV R4,R0 ;STRING LENGTH -> LOOP COUNTER- ADD R4,R3 ;BUMP R3 PAST END OF INPUT STRINGB(2$: MOVB -(R3),(R5)+ ;REVERSE THE STRING SOB R0,2$( MOV R2,R3 ;OUTPUT STRING ADDRESS -> R3! ;STRING LENGTH STILL IS IN R4I03$: MOV SP,R5 ;GET ADD OF RETURN ARG DESCRIPTOR ADD _#6,R5 ;IN R506 JSR PC,@_#SSTORE ;AND RETURN THE RESULT TO THE CALLER MOV (SP)+,R1 ;RESTORE TEXT PTR,& ADD _#7*2,SP ;CLEAN STACK OF 7 WORDS RTS PC ;AND RETURNEND: ;LABLE END OF CODE .ENDA E OMACRO COMMAND FILE M3REVSTR,REVSTR/-SP=LB:[1,202]LOAMAC/ML,[1,202]REVSTR  M 3TKB COMMAND FILE R$REVSTR.ATK/-HD/-FP,REVSTR/-SP=REVSTRLB:[1,1]BSCPUR.STB/SSM/RSTACK=0TUNITS=0G/D4.APPENDIX ^^USEFUL INTERNAL BASIC SUBROUTINE CALLS\\.NOFILL;^^?; GETARG: TO RETRIEVE ADDRESSES OR VALUES FROM AN ARGUMENT LISTT; IN A BASIC "CALL" STATEMENT.;A@; ON ENTRY: R5 POINTS TO A USER TABLE FOR RESULT TO BE PLACED IN5; R1 POINTS TO POS IN ARG LIST (MUST BE "," OR "(" )O:; R0 POINTS TO LIST OF BYTE ARG TYPES (TERM. BY 0 OR > 4)?; ON RETURN: R5 POINTS TO THE FIRST WORD PAST THE RETURNED DATAE:; R1 POINTS TO NEXT CHAR FOLLOWING LAST ARG JUST RETURNED1; R0 POINTS TO FIRST BYTE AFTER TERMINATING BYTEF; ARG TYPES IN R0 LIST:I7; 1 = INPUT NUMERIC EXPRESSION (2-WORD FLOATING POINT) ;V&; 2 = OUTPUT NUMERIC TARGET (5 WORDS); 2-WORD FP VALUE; 2-WORD FP OFFSETO; 1-WORD OFFSET TO HEADER;E5; 3 = INPUT STRING EXPRESSION (2 WORDS) LEN, ADDRESS(;O%; 4 = OUTPUT STRING TARGET (5-WORDS)S; 1-WORD ADDRESS ; 1-WORD LENGTH; 2-WORD FP OFFSET ; 1-WORD HEADER ADDRESS;E2; FOR STANDARD VARIABLE, FP-OFFSET IS FROM STUDAT6; FOR VIRTUAL VARIABLE, FP-OFFSET IS FROM FILE START; ; 0 OR > 4 = LIST TERMINATORP0; ALL OTHER REGISTERS WILL BE USED AND DESTR00?gFg4e5eddddOYED;UA; GTRGPI: POSITION INDEPENDENT ARGUMENT RETRIEVAL FOR USER LOADEDFE; ROUTINES. THE ARGUMENT TYPE LIST FOLLOWS THE CODE IN A JSR R4,GTPRINC; INSTRUCTION. THE ARGUMENT LIST ITSELF IS CONSTRUCTED ON THE STACK!; AND POINTED TO BY SP ON RETURN.R ; ON ENTRY: 3; R4 POINTS TO ARG TYPE LIST (VIA JSR R4,@_#GTRGPI)E"; OLD R4 ON STACK (WILL BE POPPED) ; ON RETURN:>; SP -> ARG LIST (ON STACK - TO BE REMOVED BY CALLING ROUTINE)"; OTHER REGISTERS: POTENTIALLY ALL;T; 8; NSTORE: TO STORE AWAY A VALUE FROM AC0 INTO A LOCATION5; STORED IN A TABLE SUCH AS THAT FILLED IN BY GETARG.O); ON CALL: R5 CONTAINS POINTER TO ADDRESSC"; AC0 CONTAINS VALUE TO BE STORED; ON RETURN: NOTHING CHANGED; REGISTERS USED: R0, AC1;N;O;E;O; @; SSTORE: TAKE A STRING DESCRIBED BY LEN IN R4 AND ADDRESS IN R3:; AND STORE IT INTO A STRING VARIABLE WHOSE TABLE ENTRY IS; POINTED TO BY R5.I;(.; ON CALL: R3 = ADDRESS OF STRING TO BE STORED%; R4 = LENGTH OF STRING TO BE STORED ,; R5 = POINTER TO OUTPUT STRING TABLE ENTRY; ); ON RETURN: R3 POINTS PAST END OF STRINGF ; R4 = 0 ; R5 UNCHANGEDL*; OTHER REGISTERS USED: R0,R2 (ALL BUT R1);A; !; ARGCNT: COUNT ARGUMENTS ROUTINET/; ON ENTRY: R1 POINTS TO LEADING OPEN PAREN "("; ON EXIT: R1 UNCHANGEDE7; R0 CONTAINS COUNT OF ARGUMENTS UP TO ")" IN THE LIST 5; QUOTED STRINGS AND SUBSCRIPTS ARE ACCOUNTED FOR ; OTHER REGISTERS USED: R2?; NOTE: AN END OF LINE WILL TERMINATE THE SCAN IRRESPECTIVE OFI9; ENCLOSING QUOTES AS LONG AS IT IS USED AS THE INTERNALT$; LINE DELIMITER (S.EOL1 OR S.EOL2);F;R;F; *; TSTU00 - CHECK FOR USER STORAGE OVERFLOW;S+; CHECK FOR POSSIBLE USER STORAGE OVERFLOWN;R ; ON ENTRY+; R0=NUMBER OF BITES TO PUT IN USER STORAGEA ; ON EXIT *; R5-> NEXT AVAILABLE BYTE IN USER STORAGE; OTHER REGISTERS USED ; R0,R3,R4; ; STATUS RETURNED IN C-BIT ; BHI WILL BRANCH IF ROOM EXISTS;I;R;S4; PARCHK: CHECK THAT NEXT CHARACTER IN TEXT IS A ")";R ; CALL WITHI; R1-> PROGRAM TEXT ;L; SUCCESSFUL RETURNT ; ")" IN R2; R1-> PAST ")" ; ERROR RETURN.; CALL TO "ERROR IN PROCESSING CALL STATEMENT";G;V;L;?; SKIP00: SKIP OVER BLANKS IN PROGRAM TEXT - GET NEXT CHARACTER;0; ENTER WITH R1 -> TEXTN;E ; EXIT STATUSN; R2 = CHARACTER3; R1 -> NEXT CHARACTER (AFTER R2 CHARACTER) IN TEXTS;;0; OTHER REGISTERS USED - NONEN;B;;H(; FORMAT FOR BASIC LOADABLE SUBROUTINES:; SET UP BY THE "ULODHD" MACRO; ; FIRST THREE WORDS:A; .WORD ID0001 ;THESE THREE WORDS ARE FILLED IN BY GLOBAL SYMBOLS ?; .WORD ID0002 ;FROM A SYMBOL TABLE FOR BASIC, ENSURING CORRECTC8; .WORD ID0003 ;SYMBOL LINKAGES (OR ELSE ERROR MESSAGE).; NEXT TWO WORDS ARE LENGTHS:N;; .WORD ?????? ;LENGTH (IN BYTES) OF CODE PLUS ENTRY POINTSU1; .WORD ?????? ;LENGTH (IN BYTES) OF ENTRY POINTS "; .WORD ?????? ;_# OF ENTRY POINTS<; NEXT ENTRIES ARE THREE WORD BLOCKS DESCRIBING ENTRY POINTS4; .RAD50 /NAME/ ;TWO WORDS OF RAD50 ENTRY POINT NAME0; .WORD ?????? ;OFFSET FROM START OF CODE PROPER>; FINALLY, ONE WORD CONTAINING NUMBER OF WORDS OF CODE PROPER:-; .WORD ?????? ;LEN (IN WORDS) OF CODE PROPERW; ;; NOTE: THESE MODULES MUST BE TASK BUILT WITH /-HD/-FP AND:W ; STACK=0N ; UNITS=0W; D; IN ADDITION POSITION INDEPENDENT CODING TECHNIQUES MUST BE USED IND; WRITING THE CODE BECAUSE ITS POSITION IN THE INTERPRETER WILL VARY.; DEPENDING ON WHAT OTHER ROUTINES ARE LOADED..APPENDIX ^^INDEX\\D.PXAME/ ;TWO WORDS OF RAD50 ENTRY POINT NAME0; .WORD ?????? ;OFFSET FROM START OF CODE PROPER>; FINALLY, ONE WORD CONTAINING?; GETARG: TO RETRIEVE ADDRESSES OR VALUES FROM AN ARGUMENT LIST; IN A BASIC "CALL" STATEMENT.;@; ON ENTRY: R5 POINTS TO A USER TABLE FOR RESULT TO BE PLACED IN5; R1 POINTS TO POS IN ARG LIST (MUST BE "," OR "(" ):; R0 POINTS TO LIST OF BYTE ARG TYPES (TERM. BY 0 OR > 4)?; ON RETURN: R5 POINTS TO THE FIRST WORD PAST THE RETURNED DATA:; R1 POINTS TO NEXT CHAR FOLLOWING LAST ARG JUST RETURNED1; R0 POINTS TO FIRST BYTE AFTER TERMINATING BYTE; ARG TYPES IN R0 LIST:7; 1 = INPUT NUMERIC E00Gglfne 4 = LIST TERMINATORP0; ALL OTHER REGISTERS WILL BE USED AND DESTROYED;UA; GTRGPI: POSITION INDEPENDENT ARGUMENT RETRIEVAL FOR USER LOADEDFE; ROUTINES. THE ARGUMENT TYPE LIST FOLLOWS THE CODE IN A JSR R4,GTPRINC; INSTRUCTION. THE ARGUMENT LIST ITSELF IS CONSTRUCTED ON THE STACK!; AND POINTED TO BY SP ON RETURN.R ; ON ENTRY: 2; R4 POINTS TO ARG TYPE LIST (VIA JSR R4,@#GTRGPI)"; OLD R4 ON STACK (WILL BE POPPED) ; ON RETURN:>; SP -> ARG LIST (ON STACK - TO BE REMOVED BY CALLING ROUTINE)"; OTHER REGISTERS: POTENTIALLY ALL; ;E8; NSTORE: TO STORE AWAY A VALUE FROM AC0 INTO A LOCATION5; STORED IN A TABLE SUCH AS THAT FILLED IN BY GETARG. ); ON CALL: R5 CONTAINS POINTER TO ADDRESSE"; AC0 CONTAINS VALUE TO BE STORED; ON RETURN: NOTHING CHANGED; REGISTERS USED: R0, AC1; ; ;N; ;B@; SSTORE: TAKE A STRING DESCRIBED BY LEN IN R4 AND ADDRESS IN R3:; AND STORE IT INTO A STRING VARIABLE WHOSE TABLE ENTRY IS; POINTED TO BY R5.I;(.; ON CALL: R3 = ADDRESS OF STRING TO BE STORED%; R4 = LENGTH OF STRING TO BE STOREDE,; R5 = POINTER TO OUTPUT STRING TABLE ENTRY; ); ON RETURN: R3 POINTS PAST END OF STRINGF ; R4 = 0 ; R5 UNCHANGEDL*; OTHER REGISTERS USED: R0,R2 (ALL BUT R1);A; !; ARGCNT: COUNT ARGUMENTS ROUTINET/; ON ENTRY: R1 POINTS TO LEADING OPEN PAREN "("; ON EXIT: R1 UNCHANGEDE7; R0 CONTAINS COUNT OF ARGUMENTS UP TO ")" IN THE LIST 5; QUOTED STRINGS AND SUBSCRIPTS ARE ACCOUNTED FOR ; OTHER REGISTERS USED: R2?; NOTE: AN END OF LINE WILL TERMINATE THE SCAN IRRESPECTIVE OFI9; ENCLOSING QUOTES AS LONG AS IT IS USED AS THE INTERNALT$; LINE DELIMITER (S.EOL1 OR S.EOL2);F;R;F; *; TSTU00 - CHECK FOR USER STORAGE OVERFLOW;S+; CHECK FOR POSSIBLE USER STORAGE OVERFLOWN;R ; ON ENTRY+; R0=NUMBER OF BITES TO PUT IN USER STORAGEA ; ON EXIT *; R5-> NEXT AVAILABLE BYTE IN USER STORAGE; OTHER REGISTERS USED ; R0,R3,R4; ; STATUS RETURNED IN C-BIT ; BHI WILL BRANCH IF ROOM EXISTS;I;R;S4; PARCHK: CHECK THAT NEXT CHARACTER IN TEXT IS A ")";R ; CALL WITHI; R1-> PROGRAM TEXT ;L; SUCCESSFUL RETURNT ; ")" IN R2; R1-> PAST ")" ; ERROR RETURN.; CALL TO "ERROR IN PROCESSING CALL STATEMENT";G;V;L;?; SKIP00: SKIP OVER BLANKS IN PROGRAM TEXT - GET NEXT CHARACTER;0; ENTER WITH R1 -> TEXTN;E ; EXIT STATUSN; R2 = CHARACTER3; R1 -> NEXT CHARACTER (AFTER R2 CHARACTER) IN TEXTS;;0; OTHER REGISTERS USED - NONEN;B;;H(; FORMAT FOR BASIC LOADABLE SUBROUTINES:; SET UP BY THE "ULODHD" MACRO; ; FIRST THREE WORDS:A; .WORD ID0001 ;THESE THREE WORDS ARE FILLED IN BY GLOBAL SYMBOLS ?; .WORD ID0002 ;FROM A SYMBOL TABLE FOR BASIC, ENSURING CORRECTC8; .WORD ID0003 ;SYMBOL LINKAGES (OR ELSE ERROR MESSAGE).; NEXT TWO WORDS ARE LENGTHS:N;; .WORD ?????? ;LENGTH (IN BYTES) OF CODE PLUS ENTRY POINTSU1; .WORD ?????? ;LENGTH (IN BYTES) OF ENTRY POINTS !; .WORD ?????? ;# OF ENTRY POINTST<; NEXT ENTRIES ARE THREE WORD BLOCKS DESCRIBING ENTRY POINTS4; .RAD50 /NAME/ ;TWO WORDS OF RAD50 ENTRY POINT NAME0; .WORD ?????? ;OFFSET FROM START OF CODE PROPER>; FINALLY, ONE WORD CONTAINING NUMBER OF WORDS OF CODE PROPER:-; .WORD ?????? ;LEN (IN WORDS) OF CODE PROPERW; ;; NOTE: THESE MODULES MUST BE TASK BUILT WITH /-HD/-FP AND:W ; STACK=0N ; UNITS=0W; D; IN ADDITION POSITION INDEPENDENT CODING TECHNIQUES MUST BE USED IND; WRITING THE CODE BECAUSE ITS POSITION IN THE INTERPRETER WILL VARY.; DEPENDING ON WHAT OTHER ROUTINES ARE LOADED.G ENTRY POINTS4; .RAD50 /NAME/ ;TWO WORDS OF RAD50 ENTRY POINT NAME0; .WORD ?????? ;OFFSET FROM START 00OgFg4e5edddd ;********* ; * ; BASIC0 * ; * ;*********;;;1; LIST OF MAJOR ROUTINES USED IN BASIC MODULE #; ATOF00 ;ASCII TO FLOATING 1 ATOI00 ;ASCII TO INTEGER 1# CLOS00 ;CLOSE ANY OPEN FILES 3, CLRU00 ;CLOSE TEMP USER SPACE (IF ANY) 3 CRLF00 ;DO [CR,LF] 3* DIMC00 ;CHECK LEGALITY OF DIMENSIONS 3, EVAL00 ;EVALUATE ARITHMETIC EXPRESSION 2( EVLS00 ;EVALUATE STRING EXPRESSION 2& FIND00 ;FIND LINE NUMBER (IN R0) 3% GETV00 ;GET TRUNCATED VARIABLE 3*& ITOA00 ;CONVERT INTEGER TO ASCII 1, JUNK00 ;SKIP OVER TRASH TO END OF LINE 3+ PCK00 ;PACK LINE INTO WORKING STORAGE 3; PRNT00 ;PRINT CHARACTER 3& PRN00 ;PRINT LINE, R0=FBA,R1=LBA 3 PRLN00 ;PRINT LINE NUMBER 3* PUSH00 ;PUSH ONE WORD INTO USER LIST 3+ SCR00 ;DELETE N BYTES FROM USER SPACE 3O, SKIP00 ;SKIP OVER SPACES IN INPUT TEXT 3. SQU00 ;DELETE TEXT TO TERMINATOR AND PACK 34 SRCH00 ;SEARCH FOR LINE FEED USING R1 AS POINTER 3+ SRL00 ;SEARCH FOR ITEM IN USER STORAGE 3 $ STRL00 ;COMPUTE STRING LENGTH 3. TST00 ;TEST CHAR (IN R2) ALPHA VS NUMERIC 3. TSTU00 ;CHECK, IS THERE ENOUGH USER SPACE 3, FNMB00 ;GET FILE NUMBER AND SET UP FILE 3 ,-; ERROR CALLS IN BASIC ARE MADE BY TRAP CALLSP;05; THE FOLLOWING IS A LIST OF IMPLEMENTED ERROR CALLS. ;E; FATAL ERROR CALLSO;S# OVFERR ;USER STORAGE OVERFLOW - 0T$ UNRERR ;UNRECOGNIZED STATEMENT - 1" GOERR ;ILLEGAL GOTO OR GOSUB - 20 ILCERR ;ILLEGAL CHARACTER TERMINATING STMT - 3" RETERR ;RETURN WITHOUT GOSUB - 4$ SBSERR ;BADLY FORMED SUBSCRIPT - 5$ SUBERR ;SUBSCRIPT OUT OF RANGE - 6$ PARERR ;MISMATCHED PARENTHESES - 7 LETERR ;ILLEGAL LET - 8 / OPRERR ;ILLEGAL RELATIONAL OPERATOR IN IF - 9  IFERR ;ILLEGAL IF - 10 PRNERR ;ILLEGAL PRINT - 11" LINERR ;INPUT LINE TOO LONG - 12 DIMERR ;BAD DIMENSION - 137 DMVERR ;NOT ENOUGH ROOM IN STORAGE FOR THE ARRAY - 14N" DEFERR ;BADLY FORMED DEFINE - 155 LNNERR ;ILLEGAL LINE NUMBER OR DIMENSION VALUE - 16T6 DMDERR ;DIM OF PREVIOUSLY DECLARED OR USED ITEM - 17) INPERR ;BAD VARIABLE IN INPUT LIST - 18U( REAERR ;BAD VARIABLE IN READ LIST - 19 RE1ERR ;OUT OF DATA - 20- RE2ERR ;BAD FORMAT IN A DATA STATEMENT - 21N$ FORERR ;ILLEGAL FOR STATEMENT - 22# NXTERR ;NO NEXT MATCHING FOR - 23  NXMERR ;NEXT WITHOUT FOR - 24 , UNMERR ;UNMATCHED QUOTES IN STATEMENT - 254 EXFERR ;EXTERNAL FUNCTION NOT PROPERLY SET UP - 26$ ILFERR ;ILL FORMED EXPRESSION - 27# CSIERR ;COMMAND STRING ERROR - 28L! STRERR ;SBS FUNCTION ERROR - 29L' STXERR ;SYNTAX ERROR IN FUNCTION - 30A# OPNERR ;SYNTAX ERROR IN OPEN - 31R$ CLSERR ;SYNTAX ERROR IN CLOSE - 32" FNMERR ;INVALID FILE NUMBER - 33 EOFERR ;END OF FILE ERROR - 34% CLOSER ;FCS ERROR DURING CLOSE - 352$ OPENER ;FCS ERROR DURING OPEN - 361 CALERR ;ERROR IN PROCESSING CALL STATEMENT - 37C1 ARGERR ;ERROR IN PROCESSING CALL ARGUMENTS - 38N3 STOERR ;ERROR IN STORE DURING CALLED ROUTINE - 39E8 OPLBER ;ERROR IN SYNTAX OR LUN IN USE IN LIB OPEN - 406 OPLFER ;FCS ERROR IN LIBRARY OPEN OR FIRST READ - 41% SLPERR ;ERROR IN SLEEP COMMAND - 42R$ WATERR ;ERROR IN WAIT COMMAND - 43% TMOERR ;TIMEOUT ERROR ON INPUT - 44N PRIERR ;PRIORITY ERROR - 45L! PRFERR ;PROGRAM FILE ERROR - 46U% FACERR ;FILE ACCESS MODE ERROR - 47U. LODERR ;ERROR IN LOADED USER SUBROUTINE - 48( VFIERR ;VIRTUAL FILE ACCESS ERROR - 49& VOPERR ;VIRTUAL FILE OPEN ERROR - 50# SETERR ;ERROR IN SET COMMAND - 51-6 COMERR ;USE OF /CO SWITCH ON NORMAL BASIC SOURCE -526 IMMERR ;IMMEDIATE MODE COMMAND IN SOURCE PROGRAM -53! TM1ERR ;DEBUGGING ERROR #1 - 62M! TM2ERR ;DEBUGGING ERROR #2 - 63  M; ; NON-FATAL ERROR CALLSR; ;I- LOGERR ;LOG OF NEGATIVE OR ZERO NUMBER - 64F- SQRERR ;SQUARE ROOT OF NEGATIVE NUMBER - 65A. DVFERR ;DIV.-MUL. OVERFLOW OR UNDERFLOW - 66& FIXERR ;NUMBER TOO LARGE TO FIX - 67& FOFERR ;FLOATING POINT OVERFLOW - 68' FUFERR ;FLOATING POINT UNDERFLOW - 69 $ NXVERR ;NON-EXISTENT VARIABLE - 70" IN1ERR ;TOO MUCH DATA TYPED - 71$ IN2ERR ;NOT ENOUGH DATA TYPE00Wg[gneO" VA DIMC00 ;CHECK LEGAL DIMENSION VA EVAL00 ;EVALUATE EXPRESSION) VA EVLS00 ;EVALUATE A STRING EXPRESSIONY- VA FIND00 ;FIND LINE NUMBER SPECIFIED IN R0, VA GTDR00 ;GET ADDRESS OF VARIABLE ELEMENT& VA GET00 ;GET PARAMETERS FOR COMMAND% VA GTSD00 ;GET A STRING VAR ADDRESS# VA GETV00 ;GET TRUNCATED VARIABLE  VA ITOA00 ;INTEGER TO ASCIIL& VA JUNK00 ;FIND LOGICAL END OF LINE* VA PCK00 ;PACK LINE INTO WORKING STORAGE' VA PRNT00 ;TYPE ONE CHARACTER FROM R2F' VA PRN00 ;PRINT LINE - R0=FBA, R1=LBA  VA PRLN00 ;TYPE LINE NUMBERL' VA PSH00 ;PUSH NAMED VARIABLE ON LISTA* VA PSHS00 ;PUSH NAMED STRING VAR TO LIST, VA PUSH00 ;PUSH ONE WORD ON THE USER STACK$ VA PUT00 ;PUSH A VALUE ON THE LIST* VA SCR00 ;DELETE N BYTES FROM USER SPACE+ VA SKIP00 ;SKIP BLANKS IN WORKING STORAGET% VA SQU00 ;DELETE TEXT TO TERMINATORG! VA SRCH00 ;SEARCH FOR LINE FEEDG+ VA SRL00 ;SEARCH FOR ITEM IN USER STORAGEW% VA STRL00 ;CALC STRING ARRAY LENGTHH) VA SUBS00 ;COMPUTE SUBSCRIPT EXPRESSIONR& VA TST00 ;TEST ALPHABETIC VS NUMERIC( VA TSTU00 ;CHECK FOR ENOUGH USER SPACE% VA TWO00 ;PACK TWO CHARACTERS IN R4V) VA TXT00 ;GET EVEN USER STORAGE ADDRESSH- VA FNMB00 ;SETUP FILE CONTROL BLOCK FOR I/OI; ; END OF TRAP HANDLER FROM USER SPACE+ VA SKIP00 ;SKIP BLANKS IN WORKING STORAGET% VA SQU00 ;DELETE TEXT TO TERMINATORG! VA SRCH00 ;SEARCH FOR LINE FEEDG+ VA SRL00 ;SEARCH FOR ITEM IN USER STORAGEW% VA STRL00 ;CALC STRING ARRAY LENGTHH) VA SUBS00 ;COMPUTE SUBSCRIPT EXPRESSIONR& VA TST00 ;TEST ALPHABETIC VS NUMERIC( VA TSTU00 ;CHECK FOR ENOUGH USER SPACE% VA TWO00 ;PACK TWO CHARACTERS IN R4V) VA TXT00 ;GET EVEN USER STOR ;********* ; * ; BASIC0 * ; * ;********* .TITLE BASIC0 .SBTTL TRAP MACRO DEFINITIONS;G; DOS VERSION FROM WHICH THE RSX VERSION EVOLVED WAS ORIGIANLLY A DECUSR;; LIBRARY PROGRAM MODIFIED BY FRANK KORZENIEWSKI OF RPSLMC.;N,; BASIC TRAP HANDLER OBJECT MODULE 31 MAY 72-; PROVIDES ONE WORD TRAP SUBROUTINE CALLS ANDD; ERROR HANDLING; :; MODIFIED BY LARRY SIMPSON 12-SEP-75 FOR ERROR TRAPS ONLY5; AND USE OF WORD ON STACK RETURNED BY RSX EXECUTIVE. ; "; MODIFIED FOR "MO" ERROR HANDLING; BY LARRY SIMPSON 15-OCT-75; 2; MODIFIED FOR "ON ERROR GOTO" USER ERROR HANDLING; BY LARRY SIMPSON 13-DEC-76;M6; MODIFIED FOR FLOATING POINT EXCEPTION ERROR HANDLING; BY LARRY SIMPSON 17-DEC-76;NU; MODIFIED FOR FLOATING POINT EMULATION (CONDITIONAL ON 'FPPEMU') ;DSS1SU; FPPEMU IS DEFINED (OR NOT) IN PREFIX ASSEMBLY FILE ;DSS1 U; BY DANIEL STEINBERG 18-JAN-79 ;DSS1U; ;DSS1RU; MODIFIED TO INCLUDE 'VARIABLE TYPE MISMATCH ERROR' (VTMERR - 52) ;DSS1FU; WHEN STRING AND NUMERIC VARIABLES ARE MIXED TOGETHER (PREVIOUSLY, THE ;DSS1RU; PROGRAM TRAPPED OUT ON ODD ADDRESS OR ILLEGAL INSTRUCTION OR MEMORY FAULT) ;DSS1EU; *** THIS IS NOT THE ONLY ERROR THAT CAN BE GENERATED WHEN THERE IS ;DSS1TU; A MISMATCHED EXPRESSION....THE WHOLE ERROR CODE STRUCTURE WILL ;DSS1 U; EVENTUALLY BE MODIFIED *** ;DSS1 U; BY DANIEL STEINBERG 14-FEB-79 ;DSS1 U; ;DSS1PU; FIXED MINOR BUG IN ERROR ROUTINE UNDER RSX11M ;DSS1 U; D.S. ;DSS1TU; 00_gFg4e5edddd;DSS1LU; ;DSS1TU;-355,,/;DSS1/ ;DSS1 8; TV VTMERR ;VARIABLE TYPE MISMATCH CHANGED TO #54, (FB)D; DEFINE FOR RSX11D IF RSX11M IS NOT DEFINED BY HEADER FILE TO MACRO;  .IF NDF RSX11M -RSX11D=1 ;DEFINE FOR RSX11D MO ERROR HANDLING  .ENDC; GLOBAL PROGRAM EXTERNALS; + .GLOBL ENDSTK STOP02 TINPT TOTPT INPT OTPT 1 .GLOBL STUDAT ENUDAT DETACH GOTO03 FPEXFL LINEFLL; ; GLOBALS DEFINED HERE .GLOBL FPERMS CTCENT  .IF DF RSX11D .GLOBL STRD .ENDC;5; MO PARAMETER LIST GLOBALS 0 .GLOBL PARLST P.ERCD P.LINE P.FCS P.FLNM P.FNAM; ; MACRO CALLSR .MCALL DIR$ ASTX$SH .IF DF RSX11D .MCALL MOUT$ MODF$ MOWA$S .ENDC9;TRAP ENTRY POINT GLOBALS - FOR SVTK$ AND SFPA$ IN BASIC3;1 .GLOBL TRAP00 FPEXTR ;E;R .MACRO TV .SYMC .SYM = TRAPO TRAP=TRAP+1S .GLOBL .SYM .ENDM 0.PAGE  .SBTTL JSR MACRO DEFINITIONST;U'; MODIFICATION BY FRANK BORGER 5-SEP-75L;L7 ;CODE TO CONVERT TRAP SUBROUTINE CALLS TO NORMAL JSR'S. ;FOR OPERATION UNDER RSX. ;9 ;DEFINE A GENERAL MACRO TO GENERATE A SECOND MACRO WHICHF% ;CONVERTS A TRAP NAME OF XXXXXX TO A  ; JSR PC,XXXXXX ; .MACRO TRPSUB A,B .MACRO AA JSR PC,B .ENDM .ENDM;L,; NOW ALL THE ONE-TIME TRAPS THAT BASIC USES;B& TRPSUB ATOF,ATOF00 ;ASCII TO FLOATING% TRPSUB ATOI,ATOI00 ;ASCII TO INTEGER + TRPSUB CLOSEF,CLOS00 ;CLOSE ANY OPEN FILESE5 TRPSUB CLRUSR,CLRU00 ;CLOSE TEMP USER SPACE (IF ANY)L TRPSUB CRLF,CRLF00 ;DO [CR,LF]O3 TRPSUB DIMCHK,DIMC00 ;CHECK LEGALITY OF DIMENSIONSS3 TRPSUB EVAL,EVAL00 ;EVALUATE ARITHMETIC EXPRESSION 0 TRPSUB EVALS,EVLS00 ;EVALUATE STRING EXPRESSION/ TRPSUB FINDLN,FIND00 ;FIND LINE NUMBER (IN R0)A- TRPSUB GETVAR,GETV00 ;GET TRUNCATED VARIABLEL- TRPSUB ITOA,ITOA00 ;CONVERT INTEGER TO ASCIIU5 TRPSUB JUNKIT,JUNK00 ;SKIP OVER TRASH TO END OF LINEA2 TRPSUB PACK,PCK00 ;PACK LINE INTO WORKING STORAGE& TRPSUB PRINTC,PRNT00 ;PRINT CHARACTER/ TRPSUB PRINTL,PRN00 ;PRINT LINE, R0=FBA,R1=LBAD( TRPSUB PRNTLN,PRLN00 ;PRINT LINE NUMBER1 TRPSUB PUSH,PUSH00 ;PUSH ONE WORD INTO USER LISTT4 TRPSUB SCRNCH,SCR00 ;DELETE N BYTES FROM USER SPACE3 TRPSUB SKIP,SKIP00 ;SKIP OVER SPACES IN INPUT TEXTE8 TRPSUB SQUISH,SQU00 ;DELETE TEXT TO TERMINATOR AND PACK? TRPSUB SRCHLF,SRCH00 ;SEARCH FOR LINE FEED USING R1 AS POINTERU4 TRPSUB SRLST,SRL00 ;SEARCH FOR ITEM IN USER STORAGE, TRPSUB STRLEN,STRL00 ;COMPUTE STRING LENGTH7 TRPSUB TSTCH,TST00 ;TEST CHAR (IN R2) ALPHA VS NUMERIC07 TRPSUB TSTOK,TSTU00 ;CHECK, IS THERE ENOUGH USER SPACET5 TRPSUB FNMBR,FNMB00 ;GET FILE NUMBER AND SET UP FILES L;+1; .SKIPC; .X ^INTRODUCTIONJ; ^THIS ^^BASIC\\ FOLLOWS ^^DEC\\'S ^^BASIC-11\\ IN ITS BASIC ORIENTATION.L; ^ADVANCED FEATURES TEND TO FOLLOW MAY FOLLOW FOR NORMAL INTERACTIVE USE OR ONE OF TWO OTHER5; OPTIONS MAY FOLLOW BEFORE _<^C^R> FOR SPECIAL USES.T; .FG 1 K; ^IF A SPACE AND A ? FOLLOWED BY AN ARITHMETIC EXPRESSION FOLLOWS ^^BAS\\,.G; THE VALUE OF THE EXPRESSION WILL BE PRINTED ON THE NEXT LINE FOLLOWEDI; BY A RETURN TO THE ^^MCR\\.N>; ^THIS IS USEFUL FOR QUICK DESK CALCULATOR TYPE CALCULATIONS.; .FG 1BF; ^IF A SPACE (OR TAB) AND A FILE NAME WITH AN OPTIONAL SWITCH FOLLOW,I; THEN THAT FILE WILL BE READ IN AS A USER PROGRAM JUST AS IN THE ^^OLD\\O ; COMMAND.; .FG 1OF; ^IF THE SWITCH (/^R^N) IS SPECIFIED, THE PROGRAM WILL ALSO BE RUN AS,; THOUGH THE ^^RUN\\ COMMAND HAD BEEN TYPED.B; ^A SWITCH OF THE FORM "{BAS}I; MCR>{BASIC PROG.BAS/RN}L; MCR>{BAS PROG/RN:150}; MCR>{BAS ? 4*3+2}H; \\; .FILL;-;+2CM; ^THE SUBSET OF COMMANDS LISTED IN THIS CHAPTER IS PRIMARILY USED TO CONTROL#A; EXECUTION OF ERRR01: MOV R2,PARLST+P.ERCD ;PUT ERROR CODE IN PARAMETER LIST .IF DF RSX11D% INC R2 ;INCREMENT TO USE FOR REC NOF' MOV R2,MODPB+M.ONUM ;PUT IN DPB FOR MOE, MOV MOLUN,MODPB+M.OLUN ;SET UP LUN PROPERLY .ENDC: MOV LINENO,PARLST+P.LINE ;PUT CURRENT LINE NO IN PAR LIST- TST ERRBRN ;ERROR HANDLING ROUTINE DEFINED?  BGT ERBR ;IF SO, BRANCHU CLR WTMAG ;SET FOR NO TIME OUTM .IF DF RSX11D ;DSS1C7 CMP R2,#FENCE+1 ;SEE IF MODIFIED ERROR CODE PAST FATALO .IFFR, CMP R2,#FENCE ;SEE IF ERROR CODE PAST FATAL .ENDC BGE 2$ ;IF SO, SKIP DETACH JSR PC,DETACH ;NULLIFY ^O2$:. .IF DF RSX11D DIR$ #MODPB ;PERFORM MO QIOU1 BCS ERRR06 ;IF MO DIDN'T GO, DO REGULAR MESSAGEP MOWA$S ;WAIT FOR MO TO FINISH"1$: BR ERRR07 ;IF OK EXIT ROUTINE .ENDC'ERRR06: MOV R1,-(SP) ;SAVE TEXT POINTERR mov r2,-(sp) ;save error number .IF DF RSX11D) DEC R2 ;GET CODE BACK TO ORIGINAL VALUE  .ENDC MOV R2,R1" MOV #ERRR02,R0 ;ASCII DESTINATION ITOAS2 MOV OTPT,-(SP) ;SAVE CURR FILE CONTROL BLOCK ADDR* MOV #TOTPT,OTPT ;FORCE OUTPUT TO TERMINAL CRLFJ! MOV #ERRR03,R0 ;START OF MESSAGEF PRINTL ;PRINT THE LINEP MOV #ERRR05,R0B PRINTL  PRNTLN ;AND THE LINE NUMBER .if df fultxt% mov #mestbl,r1 ;point to error table # mov 2(sp),r2 ;restore error number (222$: cmp (r1),r2 ;right error number ? beq 333$ ;br if so bgt 444$ ;quit if we are past  add #4,r1 ;else check next br 222$'333$: mov 2(r1),r0 ;point to error textI printl ;print it,444$:S00g[gne BEQ 1$ ;IF NOT, SKIP PROCESSING ;DSS1> .IFTF ;WHETHER OR NOT ;DSS1" JSR PC,FPERMS ;IF SO, REPORT THEM .ENDC1$: RTS PC ;AND RETURN 4ERBR: MOV ERRBRN,R0 ;ERROR ROUTINE LINE NUMBER IN R0 MOV ENDSTK,SP ;ZAP THE STACK . CLR -(SP) ;INDICATE EXACT LINE NUMBER WANTED1 CLR ERRBRN ;JUST IN CASE ERROR IN ERROR ROUTINE.- MOV USR,R1 ;START SEARCH FROM START OF CODE  JMP GOTO03 ;GO TO IT;+1N; .SLI; .HEADERLEVEL 1 ^CONTROL ^C; .BR; ; .X _^^C1; .X ^CONTROL ^C9; ^THE BREAK KEY FOR ^^BASIC\\ IS THE ^CONTROL-^C (_^^C).RC; ^A _^^C TYPED AT THE KEYBOARD WHEN RUNNING WILL CAUSE THE PROGRAMP@; TO STOP AT THE NEXT SEQUENTIAL LINE (NOT AT A LINE ENTERED VIA; R0 MOV R2,-(SP) ;SAVE R2 CLR R2 ;PREPARE FOR FUTURE USE" ASR R0 ;DIVIDE ERROR NUMBER BY 2 DEC R0 ;AND DECREMENTE" BLE 2$ ;IF ZERO OR NEG, NO ERROR CMP R0,#4 ;IF > 4, ALSO BGT 2$ ;NO ERROR TO REPORT! SEC ;GET BIT READY TO SHIFT INA1$: ROL R2 ;SHIFT OVER ONEE SOB R0,1$' BIS R2,FPEXFL ;SET APPROPRITE FLAG BITS 2$: MOV (SP)+,R2 ;RESTORE OLD R2 MOV (SP)+,R0 ;RESTORE OLD R0I ASTX$S ;EXIT FROM AST ROUTINE;A?; THIS SUBROUTINE SHOULD BE CALLED FOR ERROR MESSAGE PROCESSINGF+; AFTER POSSIBLE FLOATING EXCEPTION ERRORS.R>; IT CHECKS THE FLOATING POINT EXCEPTION FLAGS WORD AND PRINTS9; TRAPS TO THE APPROPRIATE ERROR ROUTINE (USER OR SYSTEM)P<; NOTE THAT IN THE CASE OF A USER ERROR ROUTINE BRANCH, ONLY:; THE FIRST OF THE FOUR FLOATING POINT ERRORS WHICH OCCURS"; WILL BE ACTED UPON AND RECORDED.;E; REGISTERS USED - R0,R2;;0FPERMS: MOV FPEXFL,R0 ;GET ERROR BIT CODES IN R0& MOV #2$-4,R2 ;JUMP LIST ADDRESS TO R2/ CLR FPEXFL ;CLEAR THE FLAGS, SO WE DON'T LOOPP%3$: ADD #4,R2 ;STEP THROUGH THE LISTX& ASR R0 ;AND NOW GET ERROR BIT IN 'C' BCC 1$ ;IF NOT SET, NO ACTION % MOV R0,-(SP) ;SAVE REGISTERS IN CASER MOV R2,-(SP) ;WE COME BACK HERE JMP (R2) ;GO DO ERROR TRAP.1$: BNE 3$ ;IF STILL BITS LEFT, KEEP CHECKING RTS PCG%2$: DVFERR ;FLOATING DIVIDE BY ZEROC BR 5$0 FIXERR ;FLOATING -> INTEGER CONVERSION OVFLOW BR 5$" FOFERR ;FLOATING OVERFLOW ERROR BR 5$# FUFERR ;FLOATING UNDERFLOW ERROR)5$: MOV (SP)+,R2 ;RESTORE SAVED REGISTERSL MOV (SP)+,R04 BR 3$;T= .IFT ;IF FPP EMULATION, DO IT DIFFERENTLY ;DSS11U ;DSS1OGFPEXTR=0 ;DEFINE FPEXTR (SO THERE WON'T BE AN UNDEFINED GLOBAL) ;DSS1FJFPERMS: MOV R0,-(SP) ;SAVE REGS ;DSS1J MOV R1,-(SP) 00gg4e5edddd ;DSS1? STST R1 ;GET FLOATING EXCEPTION CODE, IF ANY ;DSS1$> SUB #ERRDIV,R1 ;4=DIVIDE BY ZERO ;DSS17 BLT 1$ ;6=CONVERSION TO INTEGER ERROR ;DSS1 D CMP R1,#ERRUNR-ERRDIV ;8=OVERFLOW ;DSS17 BGT 1$ ;10=UNDERFLOW ;DSS1OJ ASL R1 ;DSS1J ADD #5$,R1 ;DSS1J JSR PC,(R1) ;DSS1F1$: MOV (SP)+,R1 ;RESTORE REGS ;DSS1J MOV (SP)+,R0 ;DSS1J RTS PC ;DSS1B5$: DVFERR ; 4 ;DSS1J RTS PC ;DSS1? FIXERR ; 6 ;DSS1SJ RTS PC ;DSS1? FOFERR ; 8 ;DSS1 J RTS PC ;DSS1? FUFERR ; 10 ;DSS1 J RTS PC ;DSS1U ;DSS1N .ENDC ;DSS1U ;DSS1 U;-554,595,/;DSS1/ ;DSS1  .IF DF RSX11D6STRD: .WORD STR1E-STR1 ;DEFINE STRING(FILENAME) LENGTH( .WORD STR1 ;ADDRESS OF FILENAME STRINGSTR1: .ASCIZ /LB:[1,2]BASIC/STR1E: .ENDC .END1U ;DSS1N .ENDC * 8L ""H&V/K@""H%*wH#{@""H %""H4N*@*""H""H@u""H ""H*""Hv""HBt!y@!<@!v@*!""H"""^@""Pu@""Qu@""Su@*#""H%""H/'""HC'""H!'""HD*'""H(@(""HE.PsH,.b@*59PsH #:""H&:""HU:""H5:""H*:}@:""HG:""HH:""HIo; @*K""HvL< @vL!@vL""H >M""H*\M""H0_M""H@SPd@Sp@UVN@*UZ@M[""HT[""HV[""HFE`ZXH$*L`Z H(L`Z&H)N`""HR`""H `}@*6a""H:d""H:d N@f""H.f""H-*fN\@f""H f0@ehp@fh@*fh=M@fhW@lhu:@Iq""H\q""H*gq""Hhq""H#w""Hw""H3x""H**zy""HAy""H'yh@y""Hy<@*y""H z""Hv~ g@""H,'""H>*(""H?l g@}""H""HJ@*""HJy""H1""H2""H6""H+*X@( 8(D!h(rh"(2hyh2hh  8$ @7 &v~ g:}l g`}vL< "!v  (!<{ t!yyh:d Nehp 6*SPdUZ Sp SPdUVN vL!*B 47 A )(:d Nlhu: ""^XSPd&hf   &""Puo; `}l g`}"N*  &""Quf0 ""Suf0fN\N*(  P& 7 w&`} (""^t!y ""^$J* s6  ,.bV/K*B ~Ps7 e  (("(*&JBCDE6LB&68:[1,2]BASIC47 A )(:d Nlhu: ""^XSPd&hf   &""Puo; `}l g`}"N*  &""Quf0 ""Suf0fN\N*(  P& 7 w&`} (""^t!y00egg ;SKIP THE NEXT INSTRUCTION*M.AFMI: BIS #400,@SP; I ;SET THE M SWITCH" BIT #4,@SP ;<- ;TEST THE E SWITCH, BNE M.AFSE ;BRANCH IF SIGN OF THE EXPONENT BIT #1,@SPA BNE M.AFTXO, BIT #30,@SP ;TEST THE A, D, AND S SWITCHES/ BNE M.AFVS ;IF EITHER IS SET AN ERROR IS HEREA BIS #20,@SP ;SET THE A SWITCH4# BIT #400,@SP ;TEST IF A MINUS SIGNA! BEQ M.AFXN ;RETURN IF PLUS SIGN BIS #100,@SP ;SET MINUS SIGNF# BR M.AFXN ;GET THE NEXT CHARACTERN+M.AFSE: BIT #01,@SP ;TEST B AND S SWITCHES$ BNE M.AFTX ;ERROR IF EITHER IS SET BIT @SP,#40 BNE M.AFVS; BIS #40,@SP ;SET THE B SWITCH $ BIT #400,@SP ;TEST FOR A MINUS SIGN BEQ M.AFXN ;EXIT IF A PLUS! BIS #200,@SP ;SET MINUS EXPONENT@ BR M.AFXN ;GET NEXT CHARACTERS!M.AFVS: BIS #2,@SP ;SET V SWITCH BR M.AFTX 2M.AFTX: BIT #100,@SP ;SEE IF IT SHOULD BE NEGATIVE% BEQ M.AFX2 ;BRANCH OF NO CONVERSIONN NEGF AC0 ;NEGATE THE NUMBERS0M.AFX2: BIT #200,@SP ;SEE IF A NEGATIVE EXPONENT# BEQ M.AFX3 ;BRANCH IF NO NEGATIONS NEG 4(SP) ;NEGATE THE EXPONENT% BVC M.AFX3 ;TEST FOR VALID EXPONENTV BIS #2,@SP ;SET THE V BITS BR M.AFX5 ;EXIT WITH ERROR4M.AFX3: ADD 2(SP),4(SP) ;REMEMBER ANY DECIMAL PLACES% BEQ M.AFX5 ;BRANCH IF NO CONVERSION & BLT M.AFDV ;IF LESS THEN ZERO DIVIDE)M.AFX4: MOV 4(SP),R3 ;CALC SHIFT CONSTANTI% LDCIF #10.,AC1 ;FLOAT SHIFT CONSTANTE 1$: MULF AC1,AC0 ;ADJUST NUMBER SOB R3,1$ ;REDUCE BY EXPON" BR M.AFX5 ;BYPASS DIVIDE SECTION)M.AFDV: MOV 4(SP),R3 ;CALC SHIFT CONSTANTH NEG R3 ;MAKE IT POSITIVE LDCIF #10.,AC1 ;FLOAT ITC$1$: DIVF AC1,AC0 ;SHIFT DIGITS OVER SOB R3,1$ ;LOOP ON EXPON#M.AFX5: DEC R1 ;POINT TO DELIMITER MOV (SP)+,R4 ;SAVE THE SWITCHES- CMP (SP)+,(SP)+ ;REMOVE EXP2+EXP1 FROM STACKO MOV (SP)+,R0 ;RESTORE R0H MOV (SP)+,R5 ;RESTORE R5  BIT #2,R4 ;TEST FOR V SETTINGL BEQ 1$ 00gg4e5edddd ;-> SEV ;ASCII ERRORE 1$: RTS PC%M.TEN: .FLT2 10. ;FLOATING POINT 10.D#M.ONE: .FLT2 1. ;FLOATING POINT 1.I S0 .SBTTL FTOA00 - FLOATING POINT TO ASCII ROUTINE;N(; FTOA - FLOATING POINT TO ASCII ROUTINE;OD .IF DF,FPPEMU ;IF FIS...SEVENTH DIGIT IS BAD ;DSS1GPRECIS=6 ;# DIGITS OF PRECISION (6 FOR FPP EMULATION) ;DSS1S= .IFF ; IF FPP...SEVEN DIGITS OK ;DSS1 UPRECIS=7 ;DSS1>N .ENDC ;DSS1U; ;DSS1 FTOA00: CLR -(SP) ;CONVERT FROM CLR -(SP) ;2 WORD FLOATING STF AC0,-(SP) ;POINT TO 4 WORD  SETD ;FLOATING1 LDD (SP)+,AC0 ;POINTF) MOV #12,R0 ;PUT SOME WORDS ON THE STACK " CLR -(SP) ;CLEAR A WORD OF STACK DEC R0 ;DECREMENT THE COUNTER  BGT .-4 ;LOOP IF MORE TO DO - MOV #030040,2(SP) ;MOVE A SP 0 TO THE OUTPUT , MOV #40,4(SP) ;FOLLOW WITH A SPACE AND NULL' TSTD AC0 ;TEST THE SIGN OF THE NUMBER1 CFCC ;GET CONCODES % BEQ M.XAXT ;IF 0 WE'RE DONE ALREADY & BGT M.XA1 ;IF NEGATIVE MAKE POSITIVE NEGD AC0 ;MAKE IT PLUS! MOVB #55,2(SP) ;MOVE IN A - SIGNS3M.XA1: CMPD M.ONED,AC0 ;START RANGING - COMPARE 1:#A CFCCN BLE M.XA3 ;BRANCH IF TOO SMALL!M.XA2: CMPD M.PT1,AC0 ;CHECK .1:#W CFCCS& BLE M.XA4 ;BRANCH IF RANGING IS DONE MULD M.TEND,AC0 ;JACK IT UP$ DEC @SP ;MAKE THE EXPONENT SMALLER" BR M.XA2 ;SEE IF IT'S BIG ENOUGH*M.XA3: DIVD M.TEND,AC0 ;PULL IT DOWN A BIT# INC @SP ;MAKE THE EXPONENT LARGERO$ BR M.XA1 ;SEE IF IT'S IN RANGE YET#M.XA4: ADDD M.FIVD,AC0 ;ROUND IT UP ';HERE MAKE SURE RANGING WAS DONE PROPER  STD AC0,AC2 ;COPY IT& MODD M.TEND,AC2 ;DO TRIAL DIGIT STRIP STCDI AC3,-(SP) ;INTEGER IT CMP (SP)+,#9. ;A SCREW UP?????. BLE M.XA13 ;JUMP IF ALL OK DIVD M.TEND,AC0 ;ADJUST INC @SP0M.XA13: MOV @SP,R0 ;CHECK MAGNITUDE OF EXPONENT BPL .+4 ;-> ;SKIP IF POSITIVE NEG R0 ; I ;ELSE MAKE POSITIVE$ CMP R0,#99. ;<- ;IS EXPON TOO LARGE BGT M.XAXT ;EXIT IF SO! MOV SP,R0 ;POINT TO OUTPUT AREAE ADD #3,R01;HERE CALC NUMBER OF SIGNIFICANT DIGITS IN NUMBERH STD AC0,AC2 ;USE AC2-AC3E MOV #PRECIS,R3 ;MAX SIGNIF DIGITS ;DSS1R> CLR R2 ;SLOT FOR TRAIL ZERO COUNT ;**-1%M.XA5: MODD M.TEND,AC2 ;STRIP A DIGIT $ DEC R2 ;ZERO'D IF NOT A ZERO DIGIT TSTF AC3 ;CHECK FOR ZERO DIGIT CFCC" BEQ .+4 ;-> ;COUNT IT IF NOT ZERO CLR R2 ; I ;ELSE RESET COUNTF SOB R3,M.XA5;<- ;LOOP FOR (PRECIS) DIGITS ;DSS1U;NOW CHECK FOR F OR E FORMAT REQUIRED ;DSS1HH CMP @SP,#PRECIS+1 ;IF NUM>10^PRECIS ;DSS1B BGE M.ZEA0 ;JUMP IF E FOR SURE ;DSS1H CMP @SP,#1-PRECIS ;IF NUM<10^(-PRECIS) ;DSS1B BLT M.ZEA0 ;JUMP IF E FOR SURE ;DSS1? TST @SP ;IF 10^0 THRU 10^(PRECIS) ;DSS1UB BPL .+6 ;-> ;ITS F FOR SURE ;DSS1B TST R2 ; I ;BUT NUM<10^0 AND (PRECIS) SIGNIF DIGITS ;DSS1F BEQ M.ZEA0 ; I ;ITS E FOR SURE ;DSS1H ADD #PRECIS,R2;<- ;MAKE TRAIL BLANK COUNT TO SIGNIF COUNT ;DSS1D MOV (SP)+,R3 ;GET 10^X POWER ;**-11% MOV #M.XA9,-(SP) ;SET RETURN ADDRESS + NEG R3 ;CHECK FOR DIGITS TO LEFT OF D.P. ' BGT M.XA11 ;JUMP IF NO INTEGER DIGITSC BEQ M.XA12 ;BR IF NO ZERO PADD NEG R3 ;MAKE POSITIVE AGAIN /;SUBROUTINE TO CONVERT FLOATING DIGITS TO ASCII;=M.XA6: MODD M.TEND,AC0 ;STRIP A DIGIT (LOVE THAT INSTRUCTION)A- STCDI AC1,-(SP) ;MAKE INTEGER (THIS ONE TOO)  ADD #60,@SP ;NOW MAKE ASCII-% MOVB (SP)+,(R0)+ ;PUT IN OUTPUT AREAT" DEC R2 ;ACCOUNT FOR SIGNIF DIGIT* SOB R3,M.XA6 ;LOOP ON DIGITS WANTED COUNT+M.XA12: MOV R2,R3 ;MORE SIGNIF DIGITS LEFT BLE M.XA8 ;EXIT IF NONE LEFT'M.XA7: MOVB #56,(R0)+ ;MOVE IN DEC. PT.T* CLR R2 ;ZAP FLAG T00ggg INC R2 ;YES...PRINT 3.0E14 INSTEAD OF 3E14 ;DSS1F1$: JSR PC,M.XA6 ;OUTPUT A DIGIT, D.P., AND THE REST ;DSS1F MOVB #105,(R0)+ ;OUTPUT 'E' ;DSS1A MOV R1,R4 ;SAVE TEXT POINTER ;DSS1OC MOV (SP)+,R1 ;GET EXPONENT ;DSS1 > DEC R1 ;ADJUST (PRINT ROUTINE MULTIPLIED BY 10) ;DSS1> CLR R2 ;SET NO LEADING ZEROES ;**-65 JSR PC,$CBDSG ;CONVERT EXPONENT TO ASCII (WITH SIGN).! MOV R4,R1 ;RESTORE TEXT POINTER  BR M.XA9 ;AND DO EXIT STUFFU$M.ONED: .FLT4 1. ;FLOATING POINT 1.#M.PT1: .FLT4 .1 ;FLOATING POINT .1T&M.TEND: .FLT4 10. ;FLOATING POINT 10.U ;DSS1RF .IF EQ,PRECIS-7 ;IF 7 DIGIT PRECISION ;DSS1MM.FIVD: .FLT4 .00000005 ;FLOATING POINT .5 ;DSS1EN .ENDC ;DSS1U ;DSS1FF .IF EQ,PRECIS-6 ;IF 6 DIGIT PRECISION ;DSS1LM.FIVD: .FLT4 .0000005 ;FLOATING POINT .5 ;DSS1N .ENDC ;DSS1 , .SBTTL ITOA00 - INTEGER TO ASCII CONVERSION;0!; ITOA - INTEGER TO ASCII ROUTINE ; ON ENTRY: &; R0 CONTAINS ADDRESS OF OUTPUT STRING; R1 CONTAINS NUMBER TO CONVERT ; +ITOA00: CLR R2 ;INDICATE NO LEADING ZEROES . JSR PC,$CBDMG ;USE LIBRARY CONVERSION ROUTINE! CLRB (R0) ;SET ZERO FLAG AT ENDT RTS PCN , .SBTTL ATOI00 - ASCII TO INTEGER CONVERSION;0; ASCII TO INTEGER ROUTINE!; USED FOR LINE NUMBER CONVERSIONC; ATOI00:  SKIP ;NEXT CHAR -> R2( DEC R1 ;BACK UP SO POINT TO IT WITH R1 MOV R1,R0 ;COPY START -> R0O% JSR PC,$CDTB ;CONVERTED NUMBER -> R1  DEC R0 ;BACK UP TEXT PTR MOV R1,R2 ;COPY RESULT -> R2- MOV R0,R1 ;ADDRESS PAST END OF NUMBER -> R10 MOV R2,R0 ;RESULT -> R0I RTS PC  J' .SBTTL ABS00 - ABSOLUTE VALUE FUNCTIONI;+4C; .SKIP ; .X ^^ABS\\; .X ^ABSOLUTE VALUE FUNCTION ; .HEADERLEVEL 1 0; -1 IF ARGUMENT < 0;; 0 RETURNED IF ARGUMENT = 0.; .BREAK ; ^EXAMPLE: ; .NOFILLU; ^^; {10 A=SGN(A1)}; \\; .FILLB;-#SGN00: TSTF AC0 ;CHECK IT FOR SIGNE CFCCT BGT SGN01 ;+1 FOR >0 BEQ SGN02 ;IF ZERO PASS 0 BACK LDCIF #-1,AC0 ;PASS -1 FOR <0  RTS PC ;AND RETURN$SGN01: LDCIF #1,AC0 ;PASS +1 FOR >0SGN02: RTS PC ;AND RETURN B* .SBTTL INT00 - GET INTEGER PART OF NUMBER;+4; .SKIPN ; .X ^^INT\\; .X ^INTEGER FUNCTION; .HEADERLEVEL 1 AC3, FRAC -> AC2 TSTF AC2 ;ANY FRACTION?P CFCC . BEQ 1$ ;IF NO FRACTION, DO DIFFERENT ROUTINE MOV R5,-(SP) ;SAVE R5 JSR PC,LOG00 ;GET ITA MULF AC4,AC0 ;GET AC0*LOG(AC1)% JSR PC,EXPF00 ;GET EXP(AC0*LOG(AC1))N MOV (SP)+,R5 ;RESTORE R5I RTS PC ;AND RETURN,1$: STCFI AC3,R0 ;STORE INTEGER POWER IN R0 LDF AC0,AC1 ;REPEAT NUMBER( DEC R0 ;DEC POWER (ALREADY HAVE FIRST)" BEQ 2$ ;IF NOW 0 (WAS 1), RETURN# BLT 3$ ;IF NEG, DO DIVIDE ROUTINEA4$: MULF AC1,AC0 ;DO IT SOB R0,4$ ;R0 TIMESC BR 2$%3$: NEG R0 ;GET # OF TIMES TO DIVIDEC5$: DIVF AC1,AC0 ;DO IT SOB R0,5$ ;R0 TIMESE 2$: RTS PC 2 .SBTTL LOG00 - FLOATING POINT NATURAL LOG ROUTINE;+4*; .SKIP ; .X ^^LOG\\; .X ^LOGARITHM - NATURALM*; .HEADERLEVEL 1 R0 1 BR FNSTRT ;BRANCH TO COMMON FUNCTION PROCESSING)LOG10: MOV #ALOG10,R0R BR FNSTRT R3 .SBTTL EXPF00 - FLOATING POINT EXPONENTIAL ROUTINEB;+4; .SKIPE ; .X ^^EXP\\; .X ^EXPONENTIAL FUNCTION; .HEADERLEVEL 1 R0( BR FNSTRT ;BRANCH TO COMMON PROCESSING  .SBTTL SIN00 - SINE FUNCTION ;+4C; .SKIPO ; .X ^^SIN\\ ; .X ^^COS\\; .X ^SINE FUNCTIONB; .X ^COSINE FUNCTIONX; .HEADERLEVEL 1 ; ^THESE FUNCTIONS RETURN THE SINE AND COSINE FUNCTIONS OF THE; ARGUMENT VALUES.$; ^THE INPUT ARGUMENT IS IN RADIANS.; .BREAK ; ^EXAMPLE:N ; .NOFILL ; ^^; {20 S=SIN(X)} ; {30 C=COS(Y)} ; \\; .FILL;-; 7SINE00: MOV #SIN,R0 ;ADD OF FORTRAN SINE ROUTINE -> R0E BR FNSTRT .SBTTL COS00 - COSINE FUNCTION ;C ; COS ROUTINEG; 8COS00: MOV #COS,R0 ;ADD OF FORTRAN COSINE ROUTINE -> R0 BR FNSTRT S$ .SBTTL ATN00 - ARC-TANGENT FUNCTION;+4T; .SKIPH ; .X ^^ATN\\; .X ^ARCTANGENT FUNCTIONE; .HEADERLEVEL 1 R0E BR FNSTRT % .SBTTL SQRT00 - SQUARE ROOT FUNCTION ;+4O; .SKIP ; .X ^^SQR\\; .X ^SQUARE ROOT FUNCTION; .HEADERLEVEL 1 R0;I2; START OF COMMON FORTRAN FUNCTION PROCESSING CODE;F'FNSTRT: MOV R1,-(SP) ;SAVE TEXT POINTERQ4 CLRF -(SP) ;JUST IN CASE LOAD DOUBLE IS USED (SIN) STF AC0,-(SP) ;PUT ARG ON STACK! MOV SP,R1 ;ADDRESS OF ARG -> R1 . MOV R1,-(SP) ;SAVE IT IN ARG LIST FOR FORTRAN( MOV #1,-(SP) ;FORM ARG LIST FOR FORTRAN# MOV SP,R5 ;R5 IS ARG LIST POINTERE# JSR PC,(R0) ;GO TO CHOSEN ROUTINEA MOV R1,-(SP) ;SAVE RESULT MOV R0,-(SP) ;ON STACK, LDF (SP)+,AC0 ;SO WE CAN PUT IT BACK IN AC0 A00ggg R0# CLR R1 ;ALL CHARS TO BE CONVERTEDS JSR PC,$CAT5 ;GO TO SUBROUTINET LDCIF R1,AC0 ;RESULT -> AC0 ' RTS PC ;AND THAT'S ALL THERE IS TO IT + .SBTTL ASC00 - NUMERIC VALUE OF ASCII CODET;+5^; .SKIP ; .X ^^ASC\\; .X ^ASCII VALUE OF CHARACTER; .HEADERLEVEL 1 AC0S! BVS 1$ ;NO CLOSE PAREN IS ERRORC STXERRU1$: SETL ;AND FPP ALSO- MOV STGOSB,-(SP) ;END OF CORE VALUE -> STACKE. CLR -(SP) ;SET UP STACK FOR DOUBLE PRECISION LDCLF (SP),AC1 ;AND NOW -> AC1R5 MOV ENUDAT,2(SP) ;NOW PUT IN END OF ACTUAL USER DATAV LDCLF (SP),AC2 ;AND -> AC2 ' SUBF AC2,AC1 ;ACTUAL FREE CORE -> AC1C CMP (SP)+,(SP)+ ;CLEAN UP STACK) SUBF AC0,AC1 ;NOW ADJUSTED VALUE -> AC1 MOV R1,2(SP) ;SAVE TEXT POINTER% LDF AC1,AC0 ;PUT ANSWER BACK -> AC0O SETI ;BACK TO STANDARD MODE RTS PC; C* .SBTTL CHR$ - ASCII CODE OF NUMERIC VALUE;+5P; .SKIPM ; .X ^^CHR$\\ *; .X ^CHARACTER FROM ^ASCII VALUE FUNCTION; .HEADERLEVEL 1 R2F/ JMP @2$(R2) ;USE IT AS OFFSET INTO JUMP TABLE 2$: .WORD 1$ ;SBS$ (OR MID)- .WORD 4$ ;SEG$U .WORD 5$ ;LEFT .WORD 6$ ;RIGHT+4$: MOV R0,10(SP) ;SAVE THE STARTING NUM -1O*1$: CMP R0,2(SP) ;CHECK AGAINST SOURCE LEN BLO SBS04 ;BR IF WITHIN STRING CLR 2(SP) ;FORCE NULL STRING BR SBS02 ;CONTINUE5$:A$ INC R0 ;BACK TO COUNT (NOT OFFSET) CMP R0,2(SP) ;CHECK REQ'D LEN* BHIS 51$ ;IF TOO MUCH, GIVE WHAT WE HAVE MOV R0,2(SP) ;IF LESS, MODIFY#51$: TST (SP) ;MUST BE 2 ARGS ONLYF BNE SBS99 ;IF NOT, ERROR BR SBS02F6$:N$ INC R0 ;BACK TO COUNT (NOT OFFSET)# CMP R0,2(SP) ;CHECK OUT NEEDED LENL' BHIS 51$ ;IF TOO MUCH, GIVE WHAT HAVE  MOV 2(SP),R2 ;CALCULATE ADD 4(SP),R2 ;ADD OF END -> R2  SUB R0,R2 ;R2 HAS NEW ADDRESST MOV R2,4(SP) ;STORE ITF MOV R0,2(SP) ;AND NEW LEN BR 51$ ;AND FINISH(SBS04: ADD R0,4(SP) ;ADJUST DATA ADDRESS SUB R0,2(SP) ;AND LENGTHI&SBS02: MOV (SP)+,R0 ;ANOTHER ARG EXIST BEQ SBS05 ;BR IF 2 ARG CALL SKIP ;MUST HAVE "," SEPERATOR CMPB R2,#', BNE SBS99 ;ERROR IF NOTF EVAL ;GET 3RD ARG BVC SBS99 ;MUST HAVE PAREN STCFI AC0,R0 ;GET INTEGERL- SUB 6(SP),R0 ;SUBTRACT INITIAL POS-1 IF SEG$V! BGT SBS05 ;BR IF POSSIBLY VALID  CLR @SP ;FORCE NULLBSBS05: MOV (SP)+,R00ggg; {120 A$=PIECE$("12/1/77","/",1,2) :! EXTRACT MONTH AND DAY}; \\; .F;-PIECE0:S, MOV ENUDAT,-(SP) ;SAVE OLD END OF USER DATA CLR -(SP) ;SAVE SLOT FOR R1F! JSR PC,STRCOM ;GET SOURCE STRINGI SKIP CMPB R2,#', ;NEXT CHAR COMMA?  BNE 13$ ;IF NOT, ERROR% JSR PC,STRCOM ;GET DELIMITING STRINGG CLRF AC0 ;CLEAR ACCUM FOR N1 SKIP ;CHECK ON COMMAC CMPB R2,#', ;2! BEQ 1$ ;IF THERE, GO EVAL PARAME CMPB R2,#') ;ELSE MUST BE ')'$ BNE 13$ ;IF NOT, SYNTAX ERRORC ADDF #1,AC0 ;DEFAULT N1 TO 1 BR 2$1$: EVAL ;GET N1 -> AC0C BVC 3$ ;IF NO ')', BRANCH2$: STCFI AC0,-(SP) ;STORE N1  CLRF AC0 ;SET ZERO FOR N2C BR 4$ 3$: STCFI AC0,-(SP) ;N1 ON STACK SKIP ;MUST HAVE CMPB R2,#', ;COMMA DELIM BNE 13$ ;IF NOT, ERROR EVAL ;GET N2 -> AC0 BVC 13$ ;IF NO ')', ERRORN!; AT THIS POINT STACK AS FOLLOWS: ; (SP) N1K; 2(SP) LEN OF STRING2 ; 4(SP) ADD OF STRING2O; 6(SP) LEN OF STRING1); 10(SP) ADD OF STRING1E; 12(SP) SLOT FOR R1; 14(SP) OLD ENUDAT "; 16(SP) SUBROUTINE RETURN ADDRESS; IN ADDITION AC0 HAS N24$: MOV R1,12(SP) ;FREE UP R1  DEC (SP) ;N1-1 ON STACK  LDCIF (SP)+,AC1 ;NOW -> AC1' LDCIF (SP)+,AC2 ;LEN OF STRING2 -> AC2 ' LDCIF (SP)+,AC3 ;ADD OF STRING2 -> AC3# MOV (SP)+,R0 ;LEN OF STRING1 -> R0T# MOV (SP)+,R1 ;ADD OF STRING1 -> R1O$ TST R0 ;CHECK LEN OF SOURCE STRING0 BLE 12$ ;IF ZERO OR LESS, RETURN NULL (BRANCH) SUBF AC1,AC0 ;N2-N1+1 -> AC0 CFCCG BGT 41$ ;IF POS, BRANCHE$ LDCIF #1,AC0 ;MAKE IT 1 BY DEFAULT%41$: TSTF AC1 ;CHECK ITERATION COUNTE CFCCN BGT 5$ ;IF POS, GO FIND MATCH1- CLR -(SP) ;IF DOWN TO ZERO, RECORD POSITION$ BR 7$ ;ON STACK AND SKIP SOME CODE&5$: JSR PC,STCM ;OTHERWISE FIND MATCH* BNE 12$ ;IF NO MATCH, RETURN NULL STRING% SUBF #1,AC1 ;DECREMENT LOOP COUNTER+ CFCCD BLE 6$ ;IF ZERO, THIS IS START& INC R1 ;PUSH STRING DESCRIPTORS PAST DEC R0 ;CURRENT CHAR BR 5$ ;ELSE GO AROUND AGAIN+ 13$: STXERRC36$: STCFI AC2,-(SP) ;LEN OF DELIM STRING + START OFI27$: ADD R1,(SP) ;ITS OCCURRENCE = START OF RESULT8$: INC R1 ;PUSH SOURCE STRINGF DEC R0 ;UP ONE CHAR % JSR PC,STCM ;GO LOOK FOR NEXT MATCH ) BNE 10$ ;IF NONE, RETURN REST OF SOURCEC% SUBF #1,AC0 ;DECREMENT LOOP COUNTER  CFCCM BNE 8$ ;IF NOT ZERO, LOOPB/9$: MOV R1,R4 ;R4 HAS ADD OF 1ST CHAR PAST END6! ;OF DELIMITED STRING (RESULT) # MOV (SP)+,R3 ;R3 HAS START ADDRESSR/ SUB R3,R4 ;NOW R4 HAS LEN OF DELIMITED STRING BR 11$ ;GO TO FINISH UP CODE/10$: ADD R0,R1 ;R1 PTS TO END OF SOURCE STRINGP BR 9$#11$: MOV (SP)+,R1 ;RESTORE TEXT PTR + MOV (SP)+,ENUDAT ;AND OLD END OF USER DATAA RTS PCP12$: CLR R4 ;SET NULL STRING  BR 11$$;I+; SUBROUTINE TO SLIDE STRING2 ALONG STRING1 ; LOOKING FOR A MATCH ; ON ENTRY:E; AC2 LEN OF STRING2B; AC3 ADD OF STRING2; R0 LEN OF STRING1; R1 ADD OF STRING1; ; ON EXIT:!; R0 HAS REMAINING LEN OF STRING1D; R1 HAS ADDRESS OF MATCH STARTE ; 'Z' SET IF MATCH, CLEAR IF NOT; OTHER REGISTERS USED: ALLD;,STCM: 00gg4e5edddd& MOV R0,R5 ;COPY LEN OF STRING1 TO R5+ ADD R1,R0 ;NOW R0 PTS PAST END OF STRING1+- STCFI AC2,R4 ;LEN OF DELIMITER STRING -> R42 SUB R4,R5 ;R5 NOW HAS # OF INC R5 ;ITERATIONS FOR COMPARE% BEQ 2$ ;IF ZERO TRIES, UNSUCCESSFUL ' DEC R1 ;BACK UP FOR INC WHICH FOLLOWSI#1$: INC R1 ;MOVE UP SOURCE ADDRESS  MOV R1,R2 ;COPY IT TO R2( STCFI AC2,R4 ;GET LEN OF COMPARE -> R46 STCFI AC3,R3 ;AND ADDRESS OF DELIMITING STRING -> R3! JSR PC,STRCMP ;DO ACTUAL COMPARE  BEQ 3$ ;ON SUCCESS, BRANCH. SOB R5,1$ ;KEEP GOING TILL SUCCESS OR FINISH2$: CLZ ;INDICATE FAILUREO' SUB R1,R0 ;MAKE SURE R0 IS PROPER LENT RTS PC -3$: SUB R1,R0 ;CALCULATE REMAINING LEN -> R0; SEZ ;INDICATE SUCCESS RTS PCF, .SBTTL FCHR00 - NUMERIC TO CHARACTER STRING;+5N; .SKIPO ; .X ^^STR$\\ !; .X ^NUMERIC TO CHARACTER STRINGR; .HEADERLEVEL 1 R5' MOV #160003,(R5)+ ;PUT IN DUMMY HEADERX' MOV R5,R0 ;START FOR CONVERSION -> R0  STCFI AC0,R1 ;NUMBER -> R1 JSR PC,$C5TA ;DO CONVERSION SUB R5,R0 ;R0 HAS ACTUAL COUNT) MOV R0,R4 ;NOW -> R4 WHERE WE EXPECT IT- MOVB R4,@ENUDAT ;STICK COUNT IN DUMMY HEADERN" MOV R5,R3 ;START OF STRING -> R3 MOV (SP)+,R1 ;RESTORE TEXT PTRO RTS PCR  .SBTTL DAT00 - DATE FUNCTION  .SBTTL TIM00 - TIME FUNCTIONE;+4; .SKIP1 ; .X ^^DAT$\\X; .X ^DATE FUNCTIONC; .HEADERLEVEL 1 R2 CMPB R2,#') ;NULL ARGUMENT?I BEQ 6$ ;IF SO, GET SYSTEM TIME CMPB R2,#'0 ;EXPLICIT ZERO?I# BNE 8$ ;IF NOT, EVALUATE (BRANCH) # SKIP ;IF SO, CHECK NEXT CHAR FORM CMPB R2,#') ;CLOSE PAREN% BEQ 6$ ;IF SO, ALSO GET SYSTEM TIME+)8$: MOV R3,R1 ;GET BACK TO START OF ARG.+ EVAL ;GET NUMBER -> AC0 BVS 3$ ;IF CLOSE PAREN, BRANCH STXERR ;ELSE SYNTAX ERROR3$: TSTF AC0 ;CHECK ANSWER( CFCCB, BLT NFILL ;IF NEGATIVE, RETURN NULL STRING CMP (SP),#TBTIM ;TIME OR DATE?  BNE 9$ ;IF DATE, BRANCH#$ JSR PC,TFILL ;FILL IN TIME FROM AC0% BR 7$ ;AND GO FINISH IN COMMON CODEI'9$: CFCC ;GET RESULTS OF LAST FP TESTN8 BEQ NFILL ;IF CALCULATED ZERO DATE, RETURN NULL STRING$ JSR PC,DFILL ;FILL IN DATE FROM AC0 BR 7$6$: GTIM$S #TIMBUF%7$: MOV (SP)+,R3 ;TABLE ADDRESS IN R3 $ MOV (R3)+,R4 ;DELIMITING CHAR IN R4 MOV R1,-(SP) ;SAVE R1 ON STACKY7 MOV ENUDAT,R0 ;R0 CONTAINS ADDRESS OF RESULTING STRINGI4 MOV #160012,(R0)+ ;PUT IN HEADER FOR SCRATCH STRING MOV @(R3)+,R1 CMP R4,#'- ;IS IT DEC DATE?J BEQ 4$ ;IF SO, BRANCH JSR PC,2$ MOVB R4,(R0)+ MOV @(R3)+,R1 JSR PC,2$5$: MOVB R4,(R0)+F MOV @(R3)+,R1 JSR PC,2$ MOV ENUDAT,R3' TST (R3)+ ;PUSH R3 TO START OF STRINGL SUB R3,R0 ;GET LEN IN R0) MOV R0,R4 ;NOW IN R4 WHERE IT SHOULD BE;& MOVB R4,-2(R3) ;AND IN SCRATCH HEADER MOV (SP)+,R1  RTS PCR#2$: CMP #10.,R1 ;IS NUMBER GE 10.?A BLE 1$ ;IF SO, OKR, MOVB #'0,(R0)+ ;IF NOT, INSERT LEADING ZERO1$: CLR R2 ;NO LEADING ZEROES. JSR PC,$CBDMG ;USE LIBRARY CONVERSION ROUTINE RTS PC 4$:S* JSR PC,1$ ;CONVERT DAY WITHOUT LEADING 0 MOVB R4,(R0)+ ;PUT IN DELIMITER MOV @(R3)+,R2 ;MONTH -> R2R DEC R2 ;DECREMENT FOR OFFSET" MOV R2,R1 ;AND COPY FOR MPY BY 3 ASL R2 ;BY DOING SHIFT ADD R1,R2 ;AND ADD! MOV #MONTH,R1 ;OFFSET INTO MONTH3 ADD R2,R1 ;TABLE MOVB (R1)+,(R0)+ ;PUT IN 3 CHAR MOVB (R1)+,(R0)+ ;MONTH MOVB (R1)+,(R0)+ ;F' BR 5$ ;AND GO FINISH IN PREVIOUS CODE (NFILL: TST (SP)+ ;POP ADDRESS OFF STACK CLR R4 ;INDICATE NULL STRING RTS PC ;AND RETURNCCENTUR: .FLT2 36524. ;# OF DAYS IN A CENTURY (365*100+24 LEAP DAYS)0+DAYSEC: .FLT2 86400. ;# OF SECONDS IN A DAY>(HRSEC: .FLT2 3600. ;# OF SECONDS IN HOUR)MINSEC: .FLT2 60. ;# OF SECONDS IN MINUTEYDFILL:18$: CMPF CENTUR,AC0 ;MORE THAN A CENTURY OF DAYS?I CFCCT BGE 7$ ;IF NOT, OK (BRANCH)R5 SUBF CENTUR,AC0 ;IF SO, CALCULATE MODULO ONE CENTURYV BR 8$17$: LDCIF #365.,AC2 ;# DAYS IN NORMAL YEAR -> AC2. LDCIF #366.,AC3 ;# DAYS IN LEAP YEAR -> AC3 CLR R0 ;YEAR COUNTER -> R0- CMPF AC0,AC2 ;COMPARE # DAYS TO NORMAL YEARY CFCCC8 BLE 3$ ;IF THAT OR LESS, WE'RE IN '00' YEAR, SO BRANCH/ SUBF AC2,AC0 ;SUBTRACT 1 YEAR'S WORTH OF DAYSN INC R0 ;BUMP UP THE YEAR1$: BIT #3,R0 ;LEAP YEAR? BNE 2$ ;IF NOT, BRANCH4 CMPF AC0,AC3 ;DO WE HAVE OVER A LEAP YEAR OF DAYS? CFCCK5 BLE 3$ ;IF NOT, WE'VE FOUND THE RIGHT YEAR (BRANCH)N& SUBF AC3,AC0 ;ELSE SUBTRACT 366 DAYS INC R0 ;INCREMENT THE YEAR BR 1$ ;AND TRY IT AGAINI92$: CMPF AC0,AC2 ;DO WE HAVE OVER A NORMAL YEAR OF DAYS?C CFCC;% BLE 3$ ;IF NOT, RIGHT YEAR (BRANCH)& SUBF AC2,AC0 ;ELSE SUBTRACT 365 DAYS INC R0 ;INC THE YEAR BR 1$ ;AND TRY AGAIN13$: STCFI AC0,R2 ;# OF DAYS INTO THIS YEAR -> R2 1 MOV #1,R3 ;WE'RE AUTOMATICALLY AT LEAST IN JAN.C- MOV #MONCHK,R4 ;ADDRESS OF MONTH TABLE -> R4Y15$: MOVB (R4)+,R5 ;# OF DAYS FOR THIS MONTH -> R5  CMP R3,#2 ;CHECKING FEB.?  BNE 4$ ;IF NOT, BRANCH BIT #3,R0 ;LEAP YEAR?E BNE 4$ ;IF NOT, BRANCH TST R0 ;ZERO YEAR?# BEQ 4$ ;IF SO, ALSO NOT LEAP YEARA3 INC R5 ;WE HAVE FEB. OF LEAP YEAR, SO MAKE IT 29.04$: CMP R2,R5 ;COMPARE DAYS LEFT TO MONTH IN R53 BLOS 6$ ;IF NO EXCESS, THIS IS THE MONTH (BRANCH)2. SUB R5,R2 ;ELSE SUBTRACT DAYS FOR THIS MONTH INC R3 ;INCREMENT THE MONTHN" CMP R3,#12. ;ARE WE AT DECEMBER?! BLO 5$ ;IF NOT, GO AROUND AGAI00hgg R4 LDF AC0,AC2 ;COPY # SEC -> AC2 DIVF (R4),AC2 ;# HRS -> AC2# MODF #1,AC2 ;INTEGER HOURS -> AC3N STCFI AC3,@(R5)+ ;HOURS -> SLOT LDF (R4)+,AC2 ;SEC/HR -> AC2M, MULF AC3,AC2 ;CALC # SECS IN INTEGER HOURS/ SUBF AC2,AC0 ;AND SUBTRACT THEM (< 1 HR LEFT)G! LDF AC0,AC2 ;COPY # SECS -> AC2 DIVF (R4),AC2 ;# MINUTES -> AC2% MODF #1,AC2 ;INTEGER MINUTES -> AC3M STCFI AC3,@(R5)+ ;MIN -> SLOT LDF (R4),AC2 ;SEC/MIN -> AC2T. MULF AC3,AC2 ;CALC # SECS IN INTEGER MINUTES- SUBF AC2,AC0 ;AND LEAVE < 1 MIN. OF SECONDS  STCFI AC0,@(R5)+ ;SEC -> SLOT RTS PC2 M5 .SBTTL DCEN - DAY OF CENTURY AND DATE VALIDITY CHECKH;+4-; .S ; .X R0* ADD R4,R3 ;R3 NOW HAS END OF STRING ADD.# CLRB (R3) ;MAKE SURE WE TERMINATEN CMP R4,#6 ;6 OR LESS CHARS?$7 BGT 20$ ;IF MORE, CANNOT BE UNDELIMITED FORM (BRANCH)H8 CMPB 1(R0),#'/ ;CHECK ONE OF TWO POSSIBLE POSITIONS FOR) BEQ 20$ ;SLASH, IF SO, GO TO SLASH CODEE) CMPB 2(R0),#'/ ;NOW CHECK OTHER POSITIONT BEQ 20$1 JMP 21$ ;IF NEITHER, MUST HAVE UNDELIMITED DATEE+20$: JSR PC,$CDTB ;DECIMAL(ASCII) -> BINARYS ;DELIMITER -> R2 CMPB R2,#'- ;IS IT DASH?/ BEQ 2$ ;IF SO, DEC STD DATE NOTATION (BRANCH) . CMPB R2,#'/ ;OR IS IT COMMON SLASH NOTATION?* BNE 13$ ;IF NEITHER, BOGUS DATE (BRANCH) DEC R1 ;MONTH-1 -> R1O BMI 15$ ;IF NEG, BAD MONTH, CMP R1,#12. ;CHECK HIGH END OF MONTH RANGE( BHIS 15$ ;REPORT BAD MONTH IF OVER 12. MOV R1,2(SP) ;STORE MONTH-1# JSR PC,$CDTB ;CONVERT DAY OF MONTHT ;DELIMITER -> R2+ CMPB R2,#'/ ;DO WE HAVE PROPER DELIMITER?: BNE 13$ ;IF NOT, REPORT ERRORB MOV R1,4(SP) ;SAVE DAY OF MONTH% BR 7$ ;GO TO COMMON YEAR PROCESSING,#2$: MOV R1,4(SP) ;SAVE DAY OF MONTHP- MOV #MONTH,R1 ;ASCII MONTH TABLE START -> R1E1 MOV R3,-(SP) ;SAVE END OF SOURCE STRING POSITIONO CLR R2 ;R2 IS MONTH-1 COUNTERB& MOV R1,R5 ;REM00hg4e5eddddEMBER WHAT MONTH IN R5+ MOV R0,R4 ;REMEMBER START OF SOURCE MONTHI"6$: MOV #3,R3 ;3 CHARS TO COMPARE*3$: CMPB (R0)+,(R1)+ ;SEE IF MONTH MATCHES BNE 4$ ;IF NOT, BRANCH SOB R3,3$ ;IF WE FINISH LOOP MOV (SP)+,R3 ;THEN RESTORE R3 MOV R2,2(SP) ;SAVE THE MONTH, CMPB (R0)+,#'- ;CHECK DELIMITER BNE 13$ ;IF BOGUS, ERROR, BR 7$ ;ELSE CONTINUE WITH COMMON YEAR CODE34$: CMP R2,#11. ;DID WE JUST CHECK OUR LAST MONTH?N BLO 5$ ;IF NOT, BRANCH& MOV (SP)+,R3 ;IF SO, RESTORE TEXT PTR# BR 15$ ;AND REPORT ERROR IN MONTH*5$: ADD #3,R5 ;MOVE DOWN INTO MONTH TABLE MOV R5,R1 ;RESET PTR MOV R4,R0 ;ALSO SOURCE PTR INC R2 ;KEEP TRACK OF MONTH-14 BR 6$ ;AND TRY AGAIN*7$: CMP R0,R3 ;CHECK POSITION AGAINST END$ BHIS 13$ ;IF AT OR PAST END, ERROR JSR PC,$CDTB ;GET YEAR -> R1K DEC R0 ;BACK UP TEXT PTR- CMP R0,R3 ;COMPARE WITH WHERE WE SHOULD ENDY$ BNE 13$ ;IF NOT, DATE FORMAT ERROR27$: MOV R1,(SP) ;SAVE IT CMP R1,#99. ;CHECK HIGH ENDP BHI 16$ ;IF OVER, ALSO ERROR CMP 2(SP),#1 ;FEBRUARY?- BNE 8$ ;IF NOT, CAN SKIP LEAP YEAR BUSINESSH) BIT #3,R1 ;OTHER THAN MULTIPLE OF FOUR? ( BNE 8$ ;IF SO, CAN ALSO SKIP LEAP YEAR TST R1 ;ZERO YEAR?# BEQ 8$ ;IF SO, ALSO NOT LEAP YEARI5 MOV #29.,R2 ;IF WE GOT HERE, IT IS FEB OF LEAP YEAR BR 9$ ;GO TO CHECK8$: MOV 2(SP),R0 ;MONTH-1 -> R0P+ MOVB MONCHK(R0),R2 ;PROPER # OF DAYS -> R2 09$: CMPB 4(SP),R2 ;CHECK DAY OF MONTH AGAINST R2 BHI 14$ ;IF HIGH, ERRORR TST 4(SP) ;CHECK LOW END$ BLE 14$ ;IF ZERO OR LESS, ALSO BAD;#'; NOW READY TO CALCULATE DAY OF CENTURYL;  MOV (SP),R0 ;# YRS -> R0< LDCIF R0,AC0 ;# YRS SINCE START OF START OF CENTURY -> AC0 LDCIF #365.,AC2 ;* MULF AC2,AC0 ;365 DAYS/YR (NORMAL YEARS)( DEC R0 ;DON'T INCLUDE CURRENT YEAR YET BLT 10$ ;IF '00' YEAR, BRANCH  ASH #-2,R0 ;DIVIDE BY FOUR# LDCIF R0,AC1 ;# LEAP YEARS -> AC1O$ ADDF AC1,AC0 ;ADD IT TO TOTAL DAYS10$: MOV (SP)+,R0 ;YEAR -> R02 MOV (SP)+,R1 ;MONTH-1 -> R1 CLR R2 ;SET NO LEAP YEAR CMP R1,#2 ;MARCH OR LATER?. BLT 11$ ;IF NOT, DON'T WORRY ABOUT LEAP YEAR& BIT #3,R0 ;IS THIS MULTIPLE OF FOUR?( BNE 11$ ;IF NOT, BRANCH (NO LEAP YEAR) TST R0 ;IS THIS '00' YEAR? BEQ 11$ ;ALSO NOT LEAP YEARS6 INC R2 ;IF WE GOT HERE, THEN IT'S LEAP YEAR PAST FEB011$: ASL R1 ;MPY MONTH-1 BY 2 (FOR WORD OFFSET)3 ADD MONTOT(R1),R2 ;ADD IN TOTAL OF PREVIOUS MONTHSC& ADD (SP)+,R2 ; AND DAYS OF THIS MONTH/ LDCIF R2,AC1 ;TOTAL DAYS FOR THIS YEAR -> AC1M ADDF AC1,AC0 ;NOW WE HAVE IT!A 12$: RTS PCR;2; ERROR RETURN PROCESSING$;I+13$: LDCIF #-1,AC0 ;BAD DATE FORMAT RETURN0 BR 17$S%14$: LDCIF #-2,AC0 ;BAD DAY OF MONTHB BR 17$ &15$: LDCIF #-3,AC0 ;BAD MONTH OF YEAR BR 17$$(16$: LDCIF #-4,AC0 ;BAD YEAR OF CENTURY17$: ADD #6,SP ;CLEAN UP STACKF BR 12$ ;AND GO TO RETURN;Y$; DO 5 OR 6 DIGIT NON-DELIMITED DATE;; 30$: .FLT4 .01 ;FLOATING 1/100.%21$: MOV R0,R1 ;STRING ADDRESS -> R1$ MOV R3,-(SP) ;SAVE OUR END POSITION) ATOF ;MAKE STRING INTO FLOATING NUMBERA. CMP (SP)+,R1 ;WE MUST NOW BE AT END OF STRING BNE 13$ ;ELSE ERROR (BRANCH) STF AC0,-(SP) ;SAVE RESULT4) SETD ;MAKE SURE WE DON'T LOSE ANYTHING79 LDCFD (SP)+,AC0 ;GET OUR RESULT BACK IN DOUBLE PRECISIONL/ ADDD 30$,AC0 ;MAKE US JUST A LITTLE > INTEGERP- MODD 30$,AC0 ;YEAR/100 -> AC0; MO,DA -> AC1# DIVD 30$,AC0 ;INTEGER YEAR -> AC0A STCDI AC0,R1 ;YEAR -> R1$ LDD AC1,AC0 ;COPY REST BACK -> AC0( ADDD 30$,AC0 ;MAKE SURE JUST > INTEGER) MODD 30$,AC0 ;DAY/100 -> AC0; MO -> AC1I" DIVD 30$,AC0 ;INTEGER DAY -> AC0& STCDI AC0,4(SP) ;DAY -> SLOT ON STACK STCDI AC1,R0 ;MONTH -> R0)! SETF ;BACK TO REGULAR FLOATINGW DEC R0 ;MONTH-1 -> R0L' CMP R0,#12. ;IF 12. OR MORE (OR NEG.)U# BHIS 15$ ;BRANCH TO ERROR ROUTINEU" MOV R0,2(SP) ;SAVE VERIFIED MONTH BR 27$E 1( .SBTTL SEC - SECONDS FROM TIME FUNCTION;+4E; .S ; .X R0S+ MOV #20$,R4 ;CHECKING TABLE ADDRESS -> R4A$ MOV #3,R3 ;GO THROUGH LOOP 3 TIMES33$: JSR PC,$CDTB ;CONVERT NUMBER (TERMINATOR -> R2)S CMPB R2,#': ;MUST BE COLON, BNE 10$ ;IF NOT DATE FORMAT ERROR (BRANCH)( CMP R1,(R4)+ ;CHECK OUT RANGE OF NUMBER* BHI 12$ ;IF TOO MUCH OR NEGATIVE, BRANCH# MOV R1,(R5)+ ;IF GOOD, PUT IT AWAY) SOB R3,3$, CMP (SP)+,R0 ;DO WE END UP WHERE WE SHOULD? BNE 11$ ;IF NOT, BRANCHS" LDCIF #60.,AC1 ;MULTIPLIER -> AC1 LDCIF (SP)+,AC0 ;HOURS -> AC0' MULF AC1,AC0 ;HOURS -> MINUTES -> AC0K LDCIF (SP)+,AC2 ;MINUTES -> AC2$ ADDF AC2,AC0 ;TOTAL MINUTES -> AC0) MULF AC1,AC0 ;MINUTES -> SECONDS -> AC0S$ LDCIF (SP)+,AC2 ;ODD SECONDS -> AC2$ ADDF AC2,AC0 ;TOTAL SECONDS -> AC04$:P RTS PC &10$: TST (SP)+ ;POP END OF STRING PTR(11$: ADD #6,SP ;GET RID OF NUMBER SLOTS2 LDCIF #-1,AC0 ;PUT IN BAD TIME FORMAT ERROR CODE BR 4$ ;AND GO RETURN"12$: INC R3 ;PUSH UP LOOP COUNTER) NEG R3 ;AND MAKE IT NEGATIVE ERROR CODEF LDCIF R3,AC0 ;STORE IT AWAY  ADD #10,SP ;CLEAN STACK- BR 4$ ;AND RETURNA13$: CLRF AC0 ;SET ZERO RESULT  BR 4$ ;AND RETURN020$: .WORD 23. .WORD 59. .WORD 59. S1 .SBTTL FRMT$ - NUMERIC TO STRING FORMAT FUNCTIONC;+5O; .S ; .X AC0) BVS 99$ ;IF CLOSE PAREN, ERROR (BRANCH)G STF AC0,-(SP) ;SAVE X SKIP ;NEXT CHAR CMPB R2,#', ;MUST BE COMMA BNE 99$ ;ELSE ERROR (BRANCH) EVAL ;W -> AC0.4 STF AC0,-(SP) ;STORE IT (COND. CODES NOT DISTURBED)# BVC 1$ ;IF NO CLOSE PAREN, BRANCH % MOV #-1,R0 ;IF D NOT SPEC'D, USE -1  BR 2$ 99$: STXERRS1$: SKIP ;NEXT CHAR -> R2  CMPB R2,#', ;MUST BE COMMA BNE 99$ ;ELSE ERROR6 EVAL ;D -> AC0F, BVC 99$ ;MUST HAVE CLOSE PAREN, ELSE ERROR STCFI AC0,R0 ;D -> R0V# BMI 41$ ;IF NEG, GO TO ERROR FILLE2$00 hg4e5edddd: LDF (SP)+,AC0 ;W -> AC0- STCFI AC0,R2 ;W -> R2X0 BLE 30$ ;IF NEG OR ZERO, GO RETURN NULL STRING0 ADD #2,R0 ;W MUST BE AT LEAST 2 GREATER THAN D CMP R2,R0 ;CHECK W VS D+2O& BLT 40$ ;IF W < D+2, THEN ERROR FILL SUB #2,R0 ;RESTORE ORIGINAL DT3 SETD ;SET DOUBLE PRECISION, SO DON'T LOSE DIGITSE CLRD AC2 ;SET NO SIGN# LDCFD (SP)+,AC0 ;X -> AC0 CFCC ;O! BGE 11$ ;IF POS OR ZERO, BRANCHM" ADDD #1,AC2 ;INDICATE '-' NEEDED ABSD AC0 ;AND MAKE POSITIVE$!11$: LDCID R2,AC3 ;SAVE W -> AC3D INC R2 ;ROUND UP W BIC #1,R2 ; #12$: SUB R2,SP ;MAKE ROOM ON STACK,% MOV SP,R5 ;PUT PTR FOR STRING -> R5M MOV R2,-(SP) ;SAVE ROUNDED UP W MOV R0,-(SP) ;SAVE D  TST R0 ;POSITIVE D?  BLE 4$ ;IF NOT, BRANCH3$: MULD #10.,AC0 ;SCALE US UP SOB R0,3$ ;BY D FACTORS OF TEN14$: MODD #1,AC0 ;INTEGER -> AC1, FRACTION -> AC0(# CMPD #.5,AC0 ;SHOULD WE ROUND UP?1 CFCC  BGT 5$ ;IF POS, NO ADDD #1,AC1 ;ELSE ADD 1 %5$: LDD AC1,AC0 ;INTEGER BACK -> AC0 STCDI AC3,R2 ;W -> R2W MOV (SP)+,R0 ;D -> R0 BLE 7$ ;NEG OR ZERO, BRANCHB$6$: JSR PC,20$ ;DO DIGIT CONVERSION% DEC R2 ;KNOCK OFF 1 FROM TOTAL LEFT, SOB R0,6$ ;DO IT D TIMES)7$: BLT 8$ ;IF R0 NEG, BRANCH (SKIP '.') % MOVB #'.,(R5)+ ;PUT IN DECIMAL POINT0 DEC R2 ;ACCOUNT FOR IT8$: TST R2 ;ANY W LEFT?( BEQ 10$ ;IF NOT, BRANCH TO FINAL CHECK(9$: TSTD AC0 ;ANYTHING LEFT TO CONVERT? CFCC BEQ 13$ ;IF DONE, BRANCH JSR PC,20$ ;CONVERT DIGIT( SOB R2,9$ ;KEEP GOING TILL NUMBER DONE(10$: TSTD AC0 ;IF WE GOT HERE, CHECK IF CFCC ;ANYTHING LEFT BGT 42$ ;IF SO, ERROR2 TSTD AC2 ;SIGN?R CFCCD BGT 42$ ;IF SO, ALSO ERROR BR 16$ ;ELSE GO TO COPY CODE$13$: STCDI AC3,R0 ;ORIGINAL W -> R06 CMP R0,R2 ;IS IT SAME AS LEFT (NOTHING PRINTED YET)? BEQ 22$ ;IF SO, BRANCH8 CMPB -1(R5),#'. ;DO WE HAVE ANYTHING TO LEFT OF DECIMAL BNE 21$ ;IF SO, BRANCH-22$: MOVB #'0,(R5)+ ;IF NOT, PUT IN LEADING 0 + DEC R2 ;KEEP TRACK OF HOW MANY CHARS LEFT,$21$: TSTD AC2 ;CHECK IF SIGN NEEDED CFCCC BLE 14$ ;IF NOT, BRANCHF TST R2 ;ANY ROOM LEFT?' BLE 42$ ;IF NOT, BRANCH TO ERROR FILLN MOVB #'-,(R5)+ ;PUT IN SIGN DEC R2 ;ACCOUNT FOR IT14$: TST R2 ;ANY SPACE LEFT?3" BEQ 16$ ;IF NOT, GO TO COPY CODE*15$: MOVB #40,(R5)+ ;FINISH FILLING STRING SOB R2,15$ ;WITH BLANKSC16$: MOV (SP),R0 ;W -> R0 MOV R5,R2 ;STRING PTR -> R2E' TSTOK ;CHECK FOR ROOM (ENUDAT -> R5)  BHIS 17$ ;IF OK, BRANCH19$: OVFERR ;ELSE OVERFLOW17$: STCDI AC3,R0 ;W -> R0  MOV R0,R4 ;ALSO -> R4C BIS #160000,R0 ;SET HEADERC MOV R0,(R5)+ ;PUT IT AWAY MOV R5,R3 ;SET START OF STRING MOV R4,R0 ;RESET W -> R0&18$: MOVB -(R2),(R5)+ ;COPY THE STRING SOB R0,18$ ;INTO SCRATCH AREAQ! MOV (SP)+,R0 ;ROUNDED UP W -> R0: ADD R0,SP ;CLEAN STACK SETFT RTS PCB020$: MODD M.PT1,AC0 ;INTEGER -> AC1, REM. -> AC0 MULD M.TEND,AC0 ;GET DIGIT BACK STCDI AC0,R4 ;MAKE IT 16 BITS- ADD #60,R4 ;AND NOW ASCII CHAR MOVB R4,(R5)+ ;PUT IT AWAYW' LDD AC1,AC0 ;COPY REST OF NUMBER BACK4 RTS PC>30$: ADD #4,SP ;CLEAN STACK 31$: CLR R4 ;RETURN NULL STRING SETF, RTS PCS%42$: MOV (SP)+,R0 ;ROUNDED UP W -> R0  ADD R0,SP ;CLEAN STACK STCDI AC3,R0 ;W -> R0, SETF ;BACK TO FLOATING MODE BR 44$R;D; W ON STACK, X ON STACK;C41$: LDF (SP)+,AC0 ;W -> AC0 STCFI AC0,R0 ;W -> R0G& BLE 31$ ;IF ZERO OR NEG, NULL RETURN BR 43$I;A; X ON STACK, W IN R2E; 40$: MOV R2,R0 ;W -> R043$: ADD #4,SP ;CLEAN STACK44$: TSTOK ;CHECK FOR ROOM" BLO 19$ ;IF NOT, REPORT OVERFLOW MOV R0,R4 ;COPY LENE BIS #160000,R0 ;SET HEADERN% MOV R4,R0 ;GET BACK UNADULTERATED WV" MOV R5,R3 ;REMEMBER STRING START!45$: MOVB #'*,(R5)+ ;PUT IN STARS  SOB R0,45$ ; RTS PC ;AND RETURN E- .SBTTL RJS00 - RIGHT JUSTIFY STRING FUNCTION1;+5F; .SKIP0 ; .X ^^RJS$\\C ; .X ^^LJS$\\>; .X ^RIGHT JUSTIFY FUNCTION ; .HEADERLEVEL 1 R4 BNE 5$ ;IF NON - ZERO, BRANCHR231$: MOV R3,R5 ;DUPLICATE ADDRESS OF STRING IN R5 MOV R0,R4 ;AND REQ'D LEN IN R4 MOVB #40,R2 ;SPACE IN R2!4$: MOVB R2,(R5)+ ;FILL IN SPACEST SOB R0,4$ TST (SP)+ ;POP RIGHT-LEFT FLAG BR 62$ ;AND FINISH%5$: TST (SP)+ ;RIGHT OR LEFT JUSTIFYR" BNE 10$ ;IF LEFT JUSTIFY, BRANCH; RIGHT JUSTIFY CODE+ MOV R3,R2 ;DUPLICATE STRING ADDRESS IN R2N4 ADD R4,R2 ;MAKE R2 POINT PAST END OF ACTUAL STRING751$: CMPB #40,-(R2) ;BLANK TRIM THE STRING FROM THE END- BNE 52$ SOB R4,51$-#53$: TST -(SP) ;FAKE FLAG ON STACKI BR 31$ ;AND FINISH,52$: MOV R4,R5 ;DUPLICATE TRIMMED LEN IN R52 BEQ 31$ ;IF ZERO, BRANCH AND RETURN BLANK STRING$ MOV R3,R2 ;DUPLICATE ADDRESS IN R20 SUB R0,R5 ;ACTUAL MINUS REQUESTED LENGTH IN R5/ BLT 7$ ;IF ACTUAL LESS THAN REQUESTED, BRANCHS7 ADD R5,R2 ;MAKE R2 POINT TO START OF REMAINING STRINGE+ MOV R3,R5 ;DUPLICATE STRING ADDRESS IN R5P16$: MOVB (R2)+,(R5)+ ;SHIFT STRING LEFT SO WE GET $ SOB R0,6$ ;RIGHTMOST R0 CHARACTERS)61$: STCFI AC0,R4 ;STORE REQ'D LEN -> R4K+62$: MOVB R4,@ENUDAT ;AND IN SCRATCH HEADERM RTS PC )7$: ADD R0,R3 ;LET R3 POINT TO REQ'D END ' ADD R4,R2 ;AND R2 POINT TO ACTUAL ENDV NEG R5 ;MAKE R5 POSE(8$: MOVB -(R2),-(R3) ;MOVE STRING TO THE SOB R4,8$ ;RIGHT/9$: MOVB #40,-(R3) ;AND FILL IN FIRST PART WITHA SOB R5,9$ ;BLANKSI BR 61$ ;AND FINISH; LEFT JUSTIFY CODE5/10$: MOV R3,R2 ;REPEAT STRING START ADD. -> R2+.11$: CMPB (R2)+,#40 ;TRIM OFF BEGINNING BLANKS) BNE 12$ ;BRANCH ON FIRST NON-BLANK CHARR SOB R4,11$'- BR 53$ ;IF WE FINISHED, RETURN BLANK STRINGT312$: DEC R2 ;MAKE R2 POINT TO FIRST NON-BLANK CHAR MOV R3,R5 ;DUPLICATE ADD IN R5 MOV R4,-(SP) ;SAVE TRIMMED LENE'13$: MOVB (R2)+,(R5)+ ;NOW MOVE IT DOWNN SOB R4,13$B. SUB (SP)+,R0 ;SEE HOW WE MUCH WE NEED TO FILL$ BLE 15$ ;IF ALREADY ENOUGH, BRANCH'14$: MOVB #40,(R5)+ ;FILL IN THE BLANKSD SOB R0,14$R 15$: BR 61$  I$ .SBTTL SPACE$ AND STRING$ FUNCTIONS;+5T; .SKIPE ; .X AC0! BVS 1$ ;SHOULD HAVE CLOSE PARENG STXERR ;ELSE SYNTAX ERROR!1$: STCFI AC0,R0 ;GET CHAR COUNTE' TSTOK ;CH000h1h4e5eddddECK FOR ROOM (ENUDAT -> R5)E" BLO 4$ ;IF NO ROOM, REPORT ERROR) MOV #160000,(R5)+ ;PUT IN SCRATCH HEADER4# MOVB R0,-2(R5) ;AND SET CHAR COUNT0 MOV (SP)+,R2 ;GET CHAR TO USE" MOV R0,R4 ;COPY CHAR COUNT -> R4 BLE 3$ ;IF ZERO OR NEG., DONER% MOV R5,R3 ;COPY START ADDRESS -> R3S$2$: MOVB R2,(R5)+ ;FILL IN THE CHARS SOB R0,2$3$: RTS PC ;AND RETURNT 4$: OVFERR .END CHARS -> AC0! BVS 1$ ;SHOULD HAVE CLOSE PARENG STXERR ;ELSE SYNTAX ERROR!1$: STCFI AC0,R0 ;GET CHAR COUNTE' TSTOK ;CH* 8L/+@/0@a W@*+@t!J@!<@"O@"{@*#@'""@)%@)%@)Bx@*)@&:""@y:Ё@>M""@U@*6a""@:d N@ehp@fh@lhu:@*t<@#w""@6x@xh@zy}@*y2@y`@y@y""@u~@* @ 0@""@9x@:@*:@:_@:`@5h#r0h r0h*rXh u0hZ#w0h w0h w0h*w0h6x$hbAyhzy΁hty0h"u~0h0h0hl  8*pEUU&u~*&=& tm 7Uwf&$ u~ u~ U U$y:Ё*L& & & B¥E*¥-D¥+>¥.xh*r5 _05B7R5  0*Up `%A5;U*EB -+UM5 ' 0*UEU555U* 5U@53 U 5U*0U5@56 Um*VW ~ W ~ *|%5 B@& & &  *&  0 @f-7*77 7 7*% 7   c?e* C ~#/#,  (*:ez   7pfe0 ~ z*`Е. Е.Е0~ Е * e  ЕED  (:*@> BV4Cz *  @ B@:xhN`66 6  6 6 B >N`*V6 - 6 m6*|6`6  ,  xh"O*  & r  !<#w""!<(xh*,; d ,)0@008h>hg =f !-u~!<*2  "   3!<*X % Е0   B`:*~ `PPP  HHaFpC7* 7mn  5*   T  "T * 5  B 7"u~&u~* 7v7n @u~ *< @*b ;Zx0N  )"{ y""$xh* v & & & a ! * //w -/m qW  ~  a  *dBa~?`a  C!<*  &Օ ~ * &  5 "{ xh"Oy"" C~6a""~`77 ;********* ; * ; BASIC2 * ; * ;*********;U;C"; STOP00 - STOP AND END STATEMENTS!; REGISTERS USED - R0,R1,R2,R3,R4I;!; RUN00 - START PROGRAM EXECUTIONC; REGISTERS USED - R5I;R; GOSB00 - GOSUB STATEMENTE; GOSB00 - GOSUB STATEMENT, PUSH CLASS 1 ITEM ON STACK THEN DO A GOTO:!; REGISTERS USED - R0,R1,R2,R3,R4T; ; GOTO00 - GOTO STATEMENT ;F?; GOTO00 - GOTO STATEMENT - RESET LINENO TO NEW EXECUTION POINTR!; REGISTERS USED - R0,R1,R2,R3,R4I; ; RES00 - RESTORE STATEMENT*4; RES00 - RESTORE STATEMENT - CLEAR THE DATA POINTER; REGISTERS USED - NONEO;N; RET00 - RETURN STATEMENT:; RET00 - RETURN STATEMENT - FIND LAST GOSUB ITEM IN LIST,<; GET ITS LINE NUMBER, PLACE IN LINENO, AND DELETE THE ITEM.$; REGISTERS USED - R0,R1,R2,R3,R4,R5;I; J; STFIND: STATEMENT FIND ROUTINE TO POSITION OURSELVES TO PROPER STATEMENT1; IN A LINE (USED FOR RETURN AND NEXT STATEMENTS)E ; ON ENTRY: ; R0 HAS LINE NUMBER; R5 HAS LINE HEADER ; R1 POSITIONED TO START OF LINE$; R2 H00@h1h4e5eddddAS COUNT OF STATEMENTS TO SKIP; ; ON EXIT:; R0 -> LINENO; R5 -> LINEHD; R1 AT START OF R2+1 STATEMENTE; R2 UNDEFINED;U;S; DIM00 - DIM STATEMENTB2; DIM STATEMENT - GENERATE DIMENSIONED TABLE ENTRY"; REGISTERS USED - R0,R1,R2,R3,R4.;S.; SUBROUTINE STRGLN FOR USE WITH DIM STATEMENT ; ON ENTRY:I; R1 POINTS JUST PAST '$' ; ON EXIT:); R1 POINTS JUST PAST LEN INFO [IF THERE] %; R0 HAS LEN (+ FOR FIXED, - FOR VAR)N; 'V' SET IF SYNTAX ERRORD; OTHER REGISTERS USED: R2 ;E6; SUBROUTINE SUBSUB TO RETURN SUBSCRIPT VALUES FOR DIM ; ON ENTRY:O); R1 POINTS TO START OF INFO [OPEN PAREN]T ; ON EXIT:9; R1 POINTS PAST END OF SUBSCRIPT INFO [PAST CLOSE PAREN]N; R3 HAS FIRST SUBSCRIPT VALUE/; R4 HAS 2ND SUBSCRIPT VALUE (0 IF NONE SPEC'D)U; 'V' SET IF SYNTAX ERRORH; OTHER REGISTERS USED: R2,R0 ;P;T; SUBROUTINE SUBONEN(; TO GET SUBSCRIPTS VIA SUBSUB AND CHECK'; THEM FOR IMMEDIATE (NON-VIRTUAL) USE.R ; ON ENTRY: ; R1 = TEXT PTRO ; ON EXIT:; R1 POINTS PAST CLOSE PAREN; R3 HAS 1ST SUBSCRIPT; R4 HAS 2ND SUBSCRIPT; R0 HAS PACKED SUBSCRIPTS; 'V' SET IF ERROR; OTHER REGISTERS USED: R2;1#; DEF00 - DEFINE FUNCTION STATEMENTAF; DEFINE STATEMENTS ARE DONE HERE - ONE TABLE ENTRY IS MADE, CONFLICTS.; ARE NOT CHECKED. REGISTERS USED - R1,R2,R4.;O,; EVAL00 - EVALUATE AN ARITHMETIC EXPRESSION;RC; EVAL - EVAL00, EVALUATE AN ARITHMETIC EXPRESSION. UPON ENTRY, R1I<; POINTS TO THE CURRENT TEXT POSITION. ON EXIT AC0 CONTAINS=; THE NUMERIC VALUE OF THE EXPRESSION. REGISTERS USED - ALL.TE; V-BIT WILL BE SET IF EXPRESSION TERMINATED BY ')', CLEAR OTHERWISE.R&; ON V SET, R1 POINTS PAST CLOSE PAREN+; ON V CLEAR, R1 POINTS TO TERMINATING CHARE;T; GTP00 - GET AN OPERAND;N!; GETOP - GTP00, GET AN OPERAND. H ; ON ENTRY:T; R1 POINTS TO START OF OPERAND0;E ; ON EXIT:); R1 POINTS TO NEXT CHAR AFTER SCAN ENDEDE; AC0 HAS VALUE OF OPERAND;N'; OTHER REGISTERS USED: POTENTIALLY ALLN;ED; NOTE: THIS ROUTINE MUST BE RE-ENTRANT SINCE IT MAY RE-ENTER ITSELF; VIA CALLS TO "EVAL". T#; LEN00 - LENGTH OF STRING FUNCTIONE"; FNSET - PARAM SETUP FOR USER FCN;N); FNSET - SET UP PARAMS FOR FUNCTION CALLC7; RETURN ADDRESS IS PULLED FROM STACK AND STACK IS USEDN8; TO STORE INFO ON ALREADY DEFINED DUMMY PARAMS. ENTRIES7; FOR DUMMY PARAMS ARE PUT INTO USER AREA AND NAMES FOR -; PREVIOUSLY DEFINED DUMMY PARAMS ARE ZEROED. ; ON CALL:; R3 POINTS TO FCN ENTRY'; R1 POINTS TO FIRST ACTUAL ARG IN LIST ; ON EXIT:; R1 POINTS PAST CLOSING ')'#; R0 POINTS PAST = SIGN FOR FCN DEFV;.;T-; FNCLR: SUBROUTINE TO RESET DATA ITEMS AFTER ; FUNCTION EVALUATION.; REGISTERS USED: R2,R0P;M'; EVLS00 - EVALUATE A STRING EXPRESSION ;L;; EVALS, EVLS00 - EVALUATE A STRING EXPRESSION OF THE FORM:D; STRE1 + [STRE2 + ...]I; WHERE:&; STRE1 AND STRE2 ARE STRING ELEMENTS; A STRING ELEMENT MAY BE:'; A STRING CONSTANT (IN DOUBLE QUOTES):$; A STRING VARIABLE (ENDING IN '$')-; A STRING FUNCTION (SYSTEM OR USER DEFINED)1 ; ON ENTRY:C;; R1 POINTS TO START OF PROGRAM TEXT WITH STRING EXPRESSIONN;: ; ON EXIT:0; R1 POINTS TO FIRST CHAR PAST END OF EXPRESSION ; R3 HAS ADDRESS (IN FREE SPACE) ; R4 HAS LEN6; 'V' SET FOR BAD STRING EXPRESSION AND R1 AS ON ENTRY;S; GSTR00 - GET A STRING OPERAND ;E%; GSTR, GSTR00 - GET A STRING OPERANDA;S2; AT END OF SUCCESSFUL COMPLETION OF THIS ROUTINE,1; R3 CONTAINS AN INDIVIDUAL STRING ADDRESS AND R4R; CONTAINS ITS LENGTH ;);  S-; GETHDR - GET ADDRESS OF DATA ELEMENT HEADERE;Y ; ON ENTRY:T5; R1 IS TEXT PTR WHICH SHOULD POINT TO VAR NAME START;N ; ON EXIT:&; R1 POINTS TO CHAR FOLLOWING VAR NAME; R3 HAS HEADER ADDRESSN,; R0 HAS RETURN CODE (FOR USE AS JUMP INDEX) ; 0 = SINGLE PRECISION FLOATING; 2 = INTEGER ; 4 = BYTEN; 6 = DOUBLE PRECISIONS; 10= STRING VARIABLE!; R4 HAS HEADER TYPE AND VAR NAMEM-; 'Z' SET IF VAR NOT DEFINED, CLEAR OTHERWISEV!; IN THIS CASE R3 IS NOT DEFINEDT*; 'V' SET IF NO VAR IN TEXT (SYNTAX ERROR)-; IN THIS CASE R4, R3 AND R0 ARE NOT DEFINEDY;B; NOTE: ON RETURN, '00Hh>hg AC0, GIVEN INFO FROM GTOFFS;C ; ON ENTRY:E; R3 IS PTR TO DATA ITEM HEADERO; AC0 HAS OFFSET*; 1) FOR STANDARD VAR, OFFSET FROM STUDAT/; 2) FOR VIRTUAL ARRAY, OFFSET FROM FILE STARTO ; ON EXIT: ; R3 AS ABOVE ; AC0 HAS NUMERIC VALUEU; OTHER REGISTERS USED: R0, R2;K; 8; NUMSUB: COMMON CODE FOR READ AND WRITE OF NUMERIC DATA;C ; ON ENTRY:0; R3 IS PTR TO DATA ITEM HEADERE; AC0 HAS OFFSET*; 1) FOR STANDARD VAR, OFFSET FROM STUDAT/; 2) FOR VIRTUAL ARRAY, OFFSET FROM FILE STARTE*; R5 HAS READ/WRITE FLAG (0=READ, 1=WRITE) ; ON EXIT:; R3,AC0,R5 AS ABOVE; R2 HAS ADDRESS OF DATA; R0 HAS TYPE INDICATORF; 0 = FLOATING (REAL*4); 2 = INTEGER*2; 4 = BYTE (LOGICAL*1) ; 6 = DOUBLE (REAL*8); ; 0; STONUM - STORE A NUMBER FROM AC0 INTO VARIABLE;K ; ON ENTRY:B; R3 POINTS TO DATA ITEM HEADERO; AC0 HAS VALUEC; AC1 HAS OFFSET*; 1) FOR STANDARD VAR, OFFSET FROM STUDAT/; 2) FOR VIRTUAL ARRAY, OFFSET FROM FILE START ; ON EXIT: ; R3 AS ABOVEF; AC0 AS ABOVE; AC1 AS ABOVE; OTHER REGISTERS USED: R0, R2 ;E7; GETSTR - TO RETURN STRING ELEMENT DESCRIPTOR IN R3,R40;S ; ON ENTRY:O; R0 IS PTR TO DATA ITEM HEADER2; AC0 HAS OFFSET*; 1) FOR STANDARD VAR, OFFSET FROM STUDAT/; 2) FOR VIRTUAL ARRAY, OFFSET FROM FILE START ;I ; ON EXIT:; R0, AC0 AS ABOVE; R3 HAS STRING ADDRESS; R4 HAS STRING LENGTH#; 'V' SET IF ERROR, CLEAR OTHERWISEF;T; OTHER REGISTERS USED:I;A;R;,/; STRADD: COMMON CODE FOR STRING READ AND WRITEV; ; ON ENTRY:E; R0 IS PTR TO DATA ITEM HEADERR; AC0 HAS OFFSET*; 1) FOR STANDARD VAR, OFFSET FROM STUDAT/; 2) FOR VIRTUAL ARRAY, OFFSET FROM FILE START *; R5 HAS READ/WRITE FLAG (0=READ, 1=WRITE);O ; ON EXIT:; R0,AC0,R5 AS ABOVE; R3 HAS ADDRESS OF STRING;E; OTHER REGISTERS USED: R0,R2I;3; STOSTR - STORE STRING IN MEMORY (REAL OR VIRTUAL)S;R ; ON ENTRY: ; R0 IS PTR TO DATA ITEM HEADERF; AC0 HAS OFFSET*; 1) FOR STANDARD VAR, OFFSET FROM STUDAT/; 2) FOR VIRTUAL ARRAY, OFFSET FROM FILE START; R3 HAS STRING ADDRESSH; R4 HAS STRING LENGTH; ; ON EXIT:; R0, AC0 AS ABOVE:; R3 HAS ADDRESS PAST END OF USED PORTION OF SOURCE STRING; R4 = 0 /;T;L;(; FILSTR; TO FILL IN A STRING VARIABLE; ; ON ENTRY:3; R3 HAS ADDRESS OF SOURCE; R4 HAS LEN OF SOURCE; R2 HAS ADDRESS OF VARIABLE; R5 HAS FILL COUNT ; R0 HAS FILL CHAR;E ; ON EXIT:; R4 = 0; R5 = 0(; R3 HAS ADDRESS PAST END OF USED SOURCE,; R2 HAS ADDRESS PAST END OF FILLED VARIABLE; 00Ph1h4e5eddddR0 HAS FILL CHAR;L1; NEWVAR - TO CREATE A SIMPLE VARIABLE OF R0 TYPE ;G ; ON ENTRY:E; R0 HAS TYPE INDICATOR ; 0 = REAL*4S; 2 = INTEGER ; 4 = BYTES ; 6 = REAL*8 ; 10= STRING; R4 HAS VARIABLE HEADER; LOWER 12 BITS HAVE VAR. NAMEE; TOP 3 BITS ARE DATA TYPEO;E ; ON EXIT:; R0 AND R4 AS ABOVE; R3 POINTS TO DATA ITEM HEADERL; ENUDAT UPDATED;L; OTHER REGISTERS USED: R5;0; LET00 - LET STATEMENTE; REGISTERS USED - ALL.; ;H%; EVALC0 - EVALUATE LOGICAL CONDITION;0A; THIS CODE EVALUATES A COMPOUND CONDITION, ALLOWING FOUR LOGICALP; OPERATORS: NOT, AND, XOR, OR.P;N ; ON ENTRY:0&; R1 POINTS TO START OF CONDITION TEXT ; ON EXIT: ; R1 POINTS TO NEXT CHAR OF TEXT'; R0 HAS CONDITION -1 = TRUE, 0 = FALSEN; 'N' SET IF TRUE ; 'Z' SET IF FALSE N; IF00 - IF STATEMENTA; REGISTERS USED - ALL. ;M; PR00 - PRINT STATEMENT,; REGISTERS USED 0,1,2,3,4-OR ALL FOR SHORT;E#; INP00 - INPUT STATEMENT PROCESSOR.; $; STRCMP - STRING COMPARISON ROUTINE ; ON CALL:%; R3 CONTAINS ADDRESS OF FIRST STRINGI&; R2 CONTAINS ADDRESS OF SECOND STRING ; R4 CONTAINS LEN FOR COMPARISON;0 ; ON RETURN:&; Z BIT CONDITION CODE CONTAINS RESULT&; BEQ WILL BRANCH IF STRINGS ARE EQUAL;C; REGISTERS USED : PROBABLY ALL ; ; ;T+; FILL00 - COMMON DATA ELEMENT FILL ROUTINET;N ; ON ENTRY:R; R1 POINTS TO START OF DATA4; LINELN HAS LENGTH OF DATA FOR BINARY OR INPUT LINE?; STACK AS ON EXIT FROM COM00 PLUS TEXT PTR AND SUBROUTINE LINKS;N ; ON EXIT:8; R1 POINTS PAST END OF DATA USED (TO EOL CHAR IF ASCII)5; LINELN = REMAINING CHAR COUNT (USUALLY 0) ON BINARYN#; 'V' SET ON BAD DATA (ASCII ONLY):(; BGT TRUE IF TOO MUCH DATA (ASCII ONLY)8; BLT TRUE IF NOT ENOUGH DATA (ASCII AND BINARY NUMERIC);:G; NOTE: CONDITION CODES ONLY RELEVANT FOR ASCII DATA AND BINARY NUMERIC;2; OTHER REGISTERS USED: R0 THROUGH R5, AC0 AND AC1;S;N'; FILL1: INDIVIDUAL ITEM FILL PROCESSORT; ; ON ENTRY:O.; R5 POINTS TO 4 WORD ITEM DESCRIPTOR ON STACK&; R1 HAS START OF TEXT WITH INPUT INFO;E ; ON EXIT: ; R5 AS ABOVE (; R1 POINTS PAST END OF THIS ITEM'S TEXT;B; OTHER REGISTERS USED:D 6; COM00 - COMMON EXPRESSION HANDLER FOR READ AND INPUT; ; ON ENTRY:O; R1 IS TEXT PTR ; ON EXIT:!; R1 POINTS PAST END OF STATEMENTO#; 'V' SET IF ERROR IN VARIABLE LISTB; STACK ON EXIT:; DATA PTR (1 WORD)S; DATA TYPE (1 WORD); OFFSET (2 WORDS)I ; DATA PTR ; DATA TYPE ; OFFSET; . ; .Y; .5; NULL; SP -> PTR TO START OF LIST;; OTHER REGISTERS USED: POTENTIALLY ALL (INCL FLOATING PT.);5; ;V; ROUTINE EOSCHK%; TO CHECK FOR LEGIT END OF STATEMENT ;I ; ON ENTRY:; R2 HAS CHAR TO BE CHECKEDO ; ON EXIT:; 'Z' SET IF END; 'Z' CLEAR IF NOT END CHART; OTHER REGISTERS USED: NONE;T#; READ00 - READ STATEMENT PROCESSORR; FOR00 - FOR STATEMENTC; REGISTERS USED - ALL.;D/; NEXT00 - NEXT STATEMENT TO TERMINATE FOR LOOP ; REGISTERS USED - ALL. ;S;;; SCHFOR: ROUTINE TO SEARCH FOR A GIVEN FOR/NEXT CTRL BLOCK ; ON ENTRY:T; R4 HAS SIXBIT NAME ; ON EXIT:; R4 UNCHANGED; 'Z' SET IF NOT FOUND, R3 = 00; 'Z' CLEAR IF FOUND, R3 = ADDRESS OF CTRL BLOCK; OTHER REGISTERS USED: NONE;;N1; DELFOR: ROUTINE TO DELETE A FOR/NEXT CTRL BLOCKA ; ON ENTRY:E'; R3 POINTS TO CTRL BLOCK TO BE DELETEDT ; ON EXIT:; R3 UNDETERMINEDO; OTHER REGISTERS USED: R0,R2  L;;=; CHKFOR: ROUTINE TO CHECK ON FINISHED/NOT FINISHED CONDITIONS; OF FOR/NEXT LOOP. ; ON ENTRY:N"; R3 POINTS TO FOR/NEXT CTRL BLOCK ; ON EXIT:; R3 UNCHANGED8; 'Z' SET IF CTRL VARIABLE AT END VALUE, CLEAR OTHERWISE:; 'N' SET IF CTRL VARIABLE PAST END VALUE, CLEAR OTHERWISE3; R0 HAS ACTUAL STORAGE ADDRESS OF CONTROL VARIABLEF; REGISTERS USED:T; AC0/;T;RL BLOCKA ; ON ENTRY:E'; R3 POINTS TO CTRL BLOCK TO BE DELETEDT ; ON EXIT:; R3 UNDETERMINEDO; OTHER REGISTERS USED: R0,R2  L;;=; CHKFOR: ROUTINE TO CHECK ON FINISHED/NOT FINISHED CONDITIONS; OF FOR/NEXT LOOP. ; ON ENTRY:N"; R3 POINTS TO FOR/NEXT CTRL BLOCK ; ON EXIT:; R3 UNCHANGED8; 'Z' 00Xh>hg; OBJECT MODULE FOR PART 2 0F MAIN BASIC INTERPRETER 8JUNE 72;G; DOS VERSION FROM WHICH THE RSX VERSION EVOLVED WAS ORIGIANLLY A DECUS;; LIBRARY PROGRAM MODIFIED BY FRANK KORZENIEWSKI OF RPSLMC.; ; MODIFIED FOR USE UNDER RSX-11D; BY: LARRY SIMPSON; MICHAEL REESE MEDICAL CENTER; JULY-OCTOBER 1975;.; MODIFIED TO CLOSE ALL USER FILES ON 6-APR-76;U; MODIFIED TO TURN ECHO ON AND TURN PASS-ALL-INPUT OFF ;DSS1AU; AFTER ANY FATAL ERROR OR STOP (AT STOP02) 18-JAN-79 ;DSS1BU; ;DSS1IU; MODIFIED NOT TO CRASH ON MIXED STRING AND NUMERIC VARIABLES IN EXPRESSIONS ;DSS1OU; ;DSS1UU; (CONDITIONAL ON DEFVAR ) ADDED CODE IN GETHDR TO DEFINE UNDEFINED VARIABLES ;DSS1 U; (THIS MEANS THAT ALL REFERENCES TO ORDINARY UNDEFINED VARIABLES DEFINE THEM) ;DSS1AU; WHEN A VARIABLE'S VALUE IS REQUIRED, AND THE VARIABLE DOES NOT EXIST, ;DSS1 U; IT'S NAME AND TYPE ARE ENTERED AND IT IS GIVEN A DEFAULT VALUE (SEE THE ;DSS1TU; SUBROUTINE NEWVAR ) ;DSS1 U; THIS ALLOWS, FOR INSTANCE, THE FOLLOWING PROGRAM: ;DSS1LO; 10 FOR A=1 TO 5 ;DSS1 O; 20 PRINT B ;DSS1 O; 30 B=A*5 ;DSS1SO; 40 NEXT A ;DSS1 U;THE FIRST TIME B IS PRINTED, IT HAS A VALUE OF ZERO ;DSS1 U; ** THE VARIABLE DEFVAR IS DEFINED IN A PREFIX FILE ** ;DSS1 U; DANIEL STEINBERG 13-FEB-79 ;DSS1S 7 ;CODE TO CONVERT TRAP SUBROUTINE CALLS TO NORMAL JSR'S  ;FOR OPERATION UNDER RSX. ;9 ;DEFINE A GENERAL MACRO TO GENERATE A SECOND MACRO WHICH % ;CONVERTS A TRAP NAME OF XXXXXX TO A  ; JSR PC,XXXXXX ; .MACRO TRPSUB A,B .MACRO A JSR PC,BT .ENDM .ENDM;D,; NOW ALL THE ONE-TIME TRAPS THAT BASIC USES; & TRPSUB ATOF,ATOF00 ;ASCII TO FLOATING% TRPSUB ATOI,ATOI00 ;ASCII TO INTEGER 5 TRPSUB CLRUSR,CLRU00 ;CLOSE TEMP USER SPACE (IF ANY)  TRPSUB CRLF,CRLF00 ;DO [CR,LF] 3 TRPSUB DIMCHK,DIMC00 ;CHECK LEGALITY OF DIMENSIONSA3 TRPSUB EVAL,EVAL00 ;EVALUATE ARITHMETIC EXPRESSION0 TRPSUB EVALS,EVLS00 ;EVALUATE STRING EXPRESSION/ TRPSUB FINDLN,FIND00 ;FIND LINE NUMBER (IN R0)- TRPSUB GETVAR,GETV00 ;GET TRUNCATED VARIABLER5 TRPSUB JUNKIT,JUNK00 ;SKIP OVER TRASH TO END OF LINE-2 TRPSUB PACK,PCK00 ;PACK LINE INTO WORKING STORAGE& TRPSUB PRINTC,PRNT00 ;PRINT CHARACTER/ TRPSUB PRINTL,PRN00 ;PRINT LINE, R0=FBA,R1=LBAT( TRPSUB PRNTLN,PRLN00 ;PRINT LINE NUMBER1 TRPSUB PUSH,PUSH00 ;PUSH ONE WORD INTO USER LISTL3 TRPSUB SKIP,SKIP00 ;SKIP OVER SPACES IN INPUT TEXTT? TRPSUB SRCHLF,SRCH00 ;SEARCH FOR LINE FEED USING R1 AS POINTERI4 TRPSUB SRLST,SRL00 ;SEARCH FOR ITEM IN USER STORAGE, TRPSUB STRLEN,STRL00 ;COMPUTE STRING LENGTH7 TRPSUB TSTCH,TST00 ;TEST CHAR (IN R2) ALPHA VS NUMERIC7 TRPSUB TSTOK,TSTU00 ;CHECK, IS THERE ENOUGH USER SPACEU5 TRPSUB FNMBR,FNMB00 ;GET FILE NUMBER AND SET UP FILE; N .SBTTL GLOBALS AND DEFINITIONSR;N; GLOBALS--ERROR CALLS;- .GLOBL GOERR, RETERR, DIMERR, DMVERR, DMDERRS. .GLOBL DEFERR, PARERR, OVFERR, ILFERR, NXVERR- .GLOBL LETERR, OPRERR, IFERR, PRNERR, INPERRE. .GLOBL IN1ERR, IN2ERR, IN3ERR, REAERR, RE1ERR. .GLOBL RE2ERR, FORERR, NXTERR, NXMERR, SBSERRJ .GLOBL STXERR FNMERR LNNERR VTMERR ;DSS1U; ;**-1N; GLOBALS--RETURNS TO MAIN;P# .GLOBL INIT00 INIT02 INIT10 INIT13I .GLOBL OLD01 CLSEAL FIND01C;S; GLOBALS--REFERENCES TO FPP;R .GLOBL PWRF00+ .GLOBL SINE00`h1h4e5edddd00, COS00, ATN00, EXPF00, LOG00X* .GLOBL ABS00, SQRT00, INT00, RND00, SGN00 .GLOBL FTOA00, M.IE; ; GLOBALS--SYSTEM VARIABLESR;.# .GLOBL DATI LINENO RUNF USR LASTEX * .GLOBL STUDAT ENUDAT S.DATA S.NEXT S.EOS1" .GLOBL PARLST P.ERCD P.LINE P.FCS# .GLOBL STCOUN S.EOL1 S.EOL2 S.EOS1 ; ; GLOBALS--ENTRY POINTS ; , .GLOBL STOP00, RUN00, GOSB00, GOTO00, RES00* .GLOBL RET00, DIM00, DEF00, EVAL00, GTP00' .GLOBL LET00, IF00, PR00, INP00 EOSCHKL, .GLOBL READ00, FOR00, NEXT00, REM00, STOP02( .GLOBL RUN01 EVLS00 STRCMP INP01 ONGT00* .GLOBL ATTACH DETACH GOTO02 GOTO03 GOTO04* .GLOBL GETHDR GTOFFS GETNUM STONUM GETSTR# .GLOBL STOSTR NEWVAR STRADD WRITBKU;U; PART 2 OF MAIN INTERPRETER; ;A; REGISTER ASSIGNMENTS;A*R0 = %0 ;TEMPORARY AND PARAMETER TRANSFER*R1 = %1 ;TEMPORARY AND PARAMETER TRANSFERR2 = %2 ;SCRATCHTR3 = %3 ;SCRATCH,R4 = %4 ;SCRATCHLR5 = %5 ;USER LIST POINTER0SP = %6 ;BASIC STACK POINTERPPC = %7 ;PROGRAM COUNTER ;DAC0 = %0 ;F.P. REGISTER 0AC1 = %1 ;F.P. REGISTER 1AC2 = %2 ;F.P. REGISTER 2AC3 = %3 ;F.P. REGISTER 3AC4 = %4 ;F.P. REGISTER 4AC5 = %5 ;F.P. REGISTER 5 ;S; RSX MACRO CALLSI .MCALL DIR$ WAIT$ READ$ WRITE$R;R; LOCAL MACROS;R;S; PSECT DEFINITIONS ;E3 .PSECT BASIC2,RW,I,GBL,REL,CON ;PSECT FOR RO CODEN;A#; ATTACH AND DETACH PROCESSING CODE;=!ATTACH: MOV #IO.ATA,ATTDET+Q.IOFN BR COMATD!DETACH: MOV #IO.DET,ATTDET+Q.IOFNTCOMATD: DIR$ #ATTDET RTS PC ;+1E; .TP 6C; .SL ; .HEADERLEVEL 1 ^CONTROL ^O; .BRI; .X ^CONTROL ^O ; .X _^^OTA; ^CONTROL-^O (_^^O) WILL STOP ALL OUTPUT FROM A ^^LIST\\ COMMAND %; AND RESUME PRINTING WITH ^^READY\\.RC; ^IT ALSO STOPS ALL PRINTING FOLLOWING A ^^RUN\\ COMMAND INCLUDINGS; NON-FATAL ERRORS. A; ^PRINTING RESUMES WITH A ^^STOP\\ OR _^^C OR A FATAL ERROR (ONET!; WHICH STOPS PROGRAM EXECUTION).=;- H( .SBTTL STOP00 - STOP AND END STATEMENTS;+2H; .SKIP. ; .X ^^STOP\\F ; .X ^^END\\!; .HEADERLEVEL 1 ^^STOP . . END\\C; .BREAK"; ^^STOP\\ AND ^^END\\ STATEMENTS.G; ^STOP USER PROGRAM EXECUTION AND TELL USER WHERE PROGRAM HAS STOPPED. ; .BREAK ; ^EXAMPLE: ; .NOFILLU; ^^ ; {10 STOP} ; {20 END}I; \\; .FILLL;-!; REGISTERS USED - R0,R1,R2,R3,R4N;D!STOP00: JSR PC,DETACH ;NULLIFY ^OT( MOV #TINPT,INPT ;RE-ASSERT TERMINAL I/O( MOV #TOTPT,OTPT ;IN CASE DOING FILE I/O CRLF) MOV #STOP01,R0 ;TELL USER! PRINTL ; THAT ALL HAS STOPPEDS! PRNTLN ; AT SOME FUNNY PLACE CRLF ;AND THENSHSTOP02: CLR WTMAG ;SET ZERO TIMEOUT ;DSS1C CLRB RPASFL ;CLEAR PASS-ALL-INPUT BYTE (SO USER CAN TYPE) ;DSS1KE MOVB #1,ECHOFL ;AND SET ECHO ON ;DSS1FD MOV ENDSTK,SP ;RESTORE THE STACK ;DSS1H MOV LINENO,LASTEX ;SAVE LAST EXECUTED LINE NO. ;**-1 CLR LINENON JMP INIT00 ; ASK WHAT NEXTSTOP01: .ASCIZ /STOP AT LINE / .EVEN' .SBTTL RUN00 - START PROGRAM EXECUTION ;+2; .SKIP ; .X ^^RUN\\; .HEADERLEVEL 1 ^^RUN\\; .BREAKE; ^MAY BE USED IN IMMEDIATE MODE TO START THE PROGRAM IN MEMORY OR BY >; SPECIFYING A FILE IN QUOTES TO RUN ANOTHER ^^BASIC\\ PROGRAM; STORED ON DISK. ; .FG 1 A; ^IN PROGRAM MODE, IT MAY BE USED WITH A FILE SPECIFIER TO CHAIN ; TO ANOTHER PROGRAM.N*; ^THE ASSUMED FILE EXTENSION IS ^^.BAS\\.<; ^NOTE THAT NO DATA IS SAVED ACROSS A ^^"RUN"\\ TYPE CHAIN.-; ^USER LOADED SUBROUTINES ARE ALSO UNLOADED.T<; ^TO PRESERVE DATA AND USER FILES, USE ^^"CHAIN"\\ COMMAND.D; ^IF BASIC FAILS TO FIND THE REQUIRED FILE, IT WILL ALSO LOOK UNDERG; THE "DEFAULT hg R5 12$: MOV #13507,M.I ;RESET RANDOM NUMBER GENERATORE JSR PC,ATTACH ;ATTACH TERMINALI- JMP INIT13 ;GO BACK AND LOOK FOR LINE TO DOO .SBTTL GOSB00 - GOSUB STATEMENT;+3 ; .SKIPC; .X ^^GOSUB\\ ; .X ^^GOTO\\L%; .HEADERLEVEL 1 R5W- MOV LINENO,-(R5) ;PUT IN PRESENT LINE NUMBER & MOV STCOUN,-(R5) ;AND STATEMENT COUNT, MOV R5,STGOSB ;AND SET UP NEW START OF PTRS .SBTTL GOTO00 - GOTO STATEMENTO;0?; GOTO00 - GOTO STATEMENT - RESET LINENO TO NEW EXECUTION POINT !; REGISTERS USED - R0,R1,R2,R3,R4T;W/GOTO00: CLR -(SP) ;INDICATE EXACT MATCH WANTED^6GOTO04: EVAL ;ARGUMENT FROM R1 LIST TO NUMBER IN AC0 TSTF AC0 ;CHECK FOR NEGATIVE CFCCI BLE 1$ ;IF NEG, ERRORF CMPF TWO16,AC0 ;CHECK OUR RANGE CFCCU BGT 2$ ;IF IN RANGE, BRANCHN1$: LNNERR ;ELSE ERROR-2$: CMPF TWO15,AC0 ;ARE WE IN UNSIGNED REGIONU CFCCV" BGT 3$ ;IF NOT (1-32767), BRANCH4 SUBF TWO16,AC0 ;IF SO, MAKE NEGATIVE FOR CONVERSION%3$: STCFI AC0,R0 ;CONVERT TO INTEGERX,GOTO03: MOV STUDAT,R1 ;SET UP LOW # LINE PTR# MOV BOLNHD,R2 ;AND HIGH # LINE PTRE& TST LINENO ;CHECK WHERE WE CAME FROM% BEQ 2$ ;IF ZERO (IMMEDIATE), BRANCHT/ CMP R0,LINENO ;CHECK REQUESTED AGAINST CURRENTF BHI 1$ ;IF FARTHER ON, BRANCHE9 MOV LINEHD,R2 ;IF SAME OR BEFORE, SET NEW HIGH FOR RANGEN BR 2$/1$: MOV LINEHD,R1 ;SET NEW LOW FOR SEARCH RANGED'2$: JSR PC,FIND01 ;AND DO MODIFIED FIND6" BNE GOTO01 ;IF NOT EXACT, BRANCH GOTO02: TST RUNF ;RUN FLAG SET? BNE 1$ ;IF SO, SKIPT INC RUNF ;IF NOT, SET IT& JSR PC,ATTACH ;AND MAKE SURE ATTACHED1$: TST (SP)+ ;POP OFF FLAG TSTB TRCFLG ;TRACE WANTED? BEQ 2$ ;IF NOT, BRANCH. CLR STCOUN ;IF SO, CLEAR THE STATEMENT COUNT* JSR PC,TRCLIN ;AND GO PRINT TRACE MESSAGE2$:B JMP INIT13L(GOTO01: TST (SP) ;EXACT MATCH REQUIRED? BEQ 1$ ;IF SO, ERROR0 SUB #4,R5 ;ELSE POINT TO FOLLOWING LINE HEADER" BR GOTO02 ;AND FINISH PROCESSING 1$: GOERR0TRCLIN:T) PRNTLN ;PRINT THE LINE NUMBER WE'RE AT - MOV #TRCMSG,R0 ;ADDRESS OF MESSAGE FOR TRACET PRINTL ;PRINT ITA( MOV (R5),R1 ;LINE # TO BRANCH TO -> R1 JSR PC,PRLN01 ;PRINT IT% MOV #TRCMS2,R0 ;NEXT PART OF MESSAGER00ph1h4e5edddd PRINTLR% MOV STCOUN,R1 ;STATEMENT COUNT -> R1U* INC R1 ;MAKE R1 STATEMENT WE'RE GOING TO JSR PC,PRLN01 ;PRINT IT OUT CRLF ;END THE LINEH RTS PC?!TRCMSG: .ASCIZ / BRANCH TO LINE /5TRCMS2: .ASCIZ / STMT /G .EVEN .SBTTL ON GOTOF .SBTTL ON GOSUB;+3; .SKIP'; .X ^^ON _ GOTO _\\ (; .X ^^ON _ GOSUB _\\<; .HEADERLEVEL 1 ^^ON _ GOTO _ _\\; .BR1H; ^THIS STATEMENT TRANSFERS CONTROL TO THE ^NTH LINE NUMBER IN THE LIST.F; ^THE EXPRESSION IS EVALUATED AS A NORMAL R0 (INTEGER) BLE 1$ ;ZERO OR NEG => ERROR SKIP ;GET NEXT BYTE" CMPB R2,#S.GOTO ;CHECK FOR PROPER BEQ 3$ ;CODES - GOTO CMPB R2,#S.GOSB ;OR GOSUB BEQ 3$ ;ELSE NOT A UNRERR ;RECOGNIZED STATEMENTS"3$: MOV R2,-(SP) ;SAVE A BYTE CODE# DEC R0 ;DECREMENT FOR COMMA COUNT BEQ 6$ ;IF ZERO, BRANCHO4$: SKIP ;GET NEXT CHAR  CMPB R2,#', ;IS IT A COMMA?}& BEQ 5$ ;IF SO, GO THROUGH LOOP COUNT) CMPB R2,#S.EOS1 ;IS IT END OF STATEMENT?  BHIS 1$ ;IF SO, ERROR' BR 4$ ;IF NOT, KEEP LOOKING FOR COMMA$5$: SOB R0,4$ ;KEEP COUNTING COMMAS+6$: CMP (SP)+,#S.GOTO ;WAS THE CODE A GOTO?  BEQ 7$ ;IF SO, BRANCH , JMP GOSB00 ;IF NOT, MUST HAVE BEEN A GOSUB7$: JMP GOTO00 ! .SBTTL RES00 - RESTORE STATEMENT-;+6;; .SKIPT; .X ^^RESTORE\\; .X ^FILE RESTORE; .HEADERLEVEL 1 R3 CMP R3,STFONX ;ANYTHING THERE? " BHIS RET03 ;IF NOT, REPORT ERROR* MOV R3,-(SP) ;SAVE THIS ADDRESS FOR LATER&RET02: MOV 2(R3),R0 ;LINE NUMBER -> R000xh>hg LINENO; R5 -> LINEHD; R1 AT START OF R2+1 STATEMENTN; R2 UNDEFINED;ESTFIND:, MOV R0,-(SP) ;SAVE LINE NUMBERP* MOV R2,STCOUN ;UPDATE STATEMENT COUNT NOW42$: INC R1 ;PUSH PAST POSSIBLE STATEMENT TERMINATOR;0J; FOLLOWING CODE IS TO MAKE SURE AN ELSE JUST AFTER A STATEMENT TERMINATORJ; (MEANING A COMMENT IN PREVIOUS LINE) DOES NOT GET COUNTED TOO MANY TIMES;H MOV R2,-(SP) ;SAVE R2/ SKIP ;POSITION R1 TO JUST PAST 1ST SIG. BYTE % DEC R1 ;AND BACK IT UP TO SIG. BYTE MOV (SP)+,R2 ;GET BACK R2 CMPB (R1),#S.ELSE ;IS IT ELSE$ BNE 3$ ;IF NOT, DO REGULAR PROCESS INC R1 ;IF SO, PUSH PAST ITI;N%3$: JUNKIT ;GET TO END OF STATEMENTT SOB R2,2$ ;DO IT R2 TIMES  TSTB TRCFLG ;TRACE WANTED? BEQ 1$ ;IF NOT, BRANCH8 MOV R1,-(SP) ;SAVE TEXT PTR WE'VE WORKED SO HARD TO SET JSR PC,TRCLIN ;GO PRINT MESSAGE# MOV (SP)+,R1 ;RESTORE OUR TEXT PTRT)1$: MOV (SP)+,LINENO ;NOW SET LINE NUMBERP MOVB (R1)+,R2 ;TERMINATOR -> R2 MOV R5,LINEHD ;AND LINE HEADER  RTS PC M .SBTTL DIM00 - DIM STATEMENT ;+3#; .SKIPS ; .X ^^DIM\\; .X ^STRING VARIABLES; .HEADERLEVEL 1 ; FOLLOWED BY A '^V' IF THE STRING IS TO HAVE VARIABLE LENGTH.=; ^IN THE CASE OF A VARIABLE LENGTH STRING, THE LENGTH IS THE,-; MAXIMUM LENGTH WHICH THE STRING MAY ASSUME. ;; ^A STRING UNDECLARED IN A R21 CMPB R2,#'# ;IS THIS A VIRTUAL ARRAY DIMENSION? * BEQ DIM01 ;IF SO, BRANCH TO THAT ROUTINE DEC R1 ;ELSE BACK UP TEXT PTRBJDIM02: JSR PC,GETHD5 ;VARIABLE NAME -> R4 ETC. ;DSS1A BVS DIM99 ;IF ERROR, REPORT IT ;**-1E0 BNE DIM97 ;OR IF USED ALREADY, DIFFERENT ERROR/ MOV R4,-(SP) ;SAVE 2 CHAR NAME (SIX BITS EACH)\ MOV R0,-(SP) ;SAVE TYPE OFFSET  CMP R0,#10 ;IS IT STRING?T BEQ 2$ ;IF SO, BRANCH,% JSR PC,SUBONE ;AND GO GET SUBSCRIPTSH BVS DIM99 ;IF ERROR, REPORT IT MOV (SP)+,R2 ;TYPE OFFSET -> R2 MOV R0,-(SP) ;SAVE DIM INFO INC R3 ;ADD ONE TO EACH  INC R4 ;DIMENSIONJ MUL R4,R3 ;PRODUCT -> R3 BIT #160000,R3 ;TOO BIG? $ BNE DIM98 ;IF SO, DECLARE OVERFLOW& MOV R3,R0 ;COPY # OF VARIABLES -> R0+ ASH 8$(R2),R0 ;SHIFT BY APPROPRIATE AMOUNTE INC R0 ;ROUND UP, IN CASEH' BIC #1,R0 ;AN ODD # OF BYTE VARIABLESS MOV R0,-(SP) ;SAVE ON STACK" ADD #4,R0 ;ADD HEADER + DIM INFO' TSTOK ;CHECK FOR ROOM (ENUDAT -> R5)I1 BLO DIM98 ;IF NOT ENOUGH ROOM, DECLARE OVERFLOWR) ADD R5,R0 ;R0 POINTS TO NEW END OF DATAI# MOV R0,ENUDAT ;SET NEW END OF DAT00h1h4e5eddddAI0 MOV (SP)+,R3 ;RESTORE # OF FLOATING TOTAL BYTES ASR R3 ;NOW # OF WORDS MOV (SP)+,R2 ;POP DIM INFOV% MOV (SP)+,(R5)+ ;HEADER -> DATA AREAS$ MOV R2,(R5)+ ;DIM INFO -> DATA AREA1$: CLR (R5)+ ;CLEAR THE AREA SOB R3,1$ ;R3 TIMES0 BR 7$ ;AND GO TO FINAL FINISHM8$: .WORD 2 ;REAL*4S .WORD 1 ;INTEGERA .WORD 0 ;BYTE .WORD 3 ;REAL*8; ; STRING SECTION;52$:B1 JSR PC,STRGLN ;GO GET SIZE OF INDIVIDUAL ELEMENTA BVS DIM99 ;IF ERROR, BRANCH 2 MOV R0,(SP) ;SAVE LEN WITH SIGN (OVER TYPE CODE) BPL 3$ ;NOW GET# NEG R0 ;ABSOLUTE VALUE!3$: DIMCHK ;AND CHECK ITS RANGE+ BNE DIM99 ;BRANCH IF ERROR MOV R0,-(SP) ;SAVE ABS VALUEM5 JSR PC,SUBONE ;R3,R4 WITH INDIVIDUAL DIMS, R0 PACKEDA BVS DIM99 ;REPORT ERROR  MOV R1,-(SP) ;SAVE TEXT PTR) MOV R0,R1 ;COPY PACKED SUBSCRIPTS -> R1;1 MOV 2(SP),R0 ;ABS LEN OF INDIVIDUAL STRING -> R0T) MOV R1,2(SP) ;PACKED SUBSCRIPTS ON STACKG% STRLEN ;GET TOTAL STRING LEN -> R0M ADD #6,R0 ;ADD 3 HEADER WORDSS TSTOK ;CHECK FOR ROOM( BLO DIM98 ;IF NOT ENOUGH, REPORT ERROR MOV (SP)+,R1 ;TEXT PTRI MOV (SP)+,R3 ;PACKED DIMS MOV (SP)+,R2 ;LEN WITH SIGN% MOV (SP)+,(R5)+ ;HEADER -> DATA AREAP MOV R3,(R5)+ ;PACKED DIMENSIONS TST R2 ;FIXED OR VARIABLE? BPL 4$ ;IF FIXED, BRANCH% NEG R2 ;IF VARIABLE, MAKE ABS VALUED" BIS #177400,R2 ;WITH HIGH BYTE -1'4$: MOV R2,(R5) ;PUT LEN AND TYPE AWAYR- BIS #400,(R5)+ ;MAKE SURE NON-ZERO HIGH BYTE - SUB #6,R0 ;GET LEN INDEP. OF 3 HEADER WORDS3 ASR R0 ;CONVERT LEN TO WORDS 5$: CLR (R5)+ ;AND CLEAR IT ALL SOB R0,5$ ;OUT (NULLS)& MOV R5,ENUDAT ;RECORD NEW END OF DATA7$: SKIP ;NEXT CHAR -> R2 # CMPB R2,#', ;SOMETHING TO FOLLOW?A BEQ DIM00 ;IF SO, DO IT AGAINE" DEC R1 ;IF NOT, BACK UP TEXT PTR JMP INIT02F%DIM97: DMDERR ;PREVIOUSLY USED NAMEMDIM98: DMVERR ;OVERFLOW0DIM99: DIMERR ;BAD DIMENSION;+35; .S; .X ^^DIM#_#\\A; .X ^VIRTUAL ARRAYS#; .HEADERLEVEL 1 ^^DIM#_#N,_\\,; .BREAKL; ^THIS STATEMENT DECLARES CERTAIN VARIABLES AS "VIRTUAL ARRAYS" AND DEFINES@; THEIR ALLOCATION ON THE FILE WHOSE AC0 STCFI AC0,R0 ;INTEGER -> R0O! BLE DIM99 ;NEG OR ZERO IS ERRORI& CMP R0,#OP.MXL ;CHECK AGAINST MAX LUN' BHI DIM99 ;ALLOWED, IF TOO BIG, ERROR % MOV R0,-(SP) ;SAVE IT FOR FUTURE USE # CLR -(SP) ;SET ACCUMULATED OFFSETG CLR -(SP) ;32 BIT ZERO SKIP ;NEXT CHAR SHOULD BE CMPB R2,#', ;COMMA BNE DIM99 ;ELSE ERROR G1$: JSR PC,GETHD5 ;VARIABLE NAME -> R4 00h>hg R0$ MOV 7$(R0),R2 ;ELEMENT LENGTH -> R2 MOV R2,-(SP) ;AND ON STACKO$ BR 2$ ;GO TO COMMON FINISHING CODE'7$: .WORD 4 ;SINGLE PRECISION FLOATINGB .WORD 2 ;INTEGER (16 BIT)R .WORD 1 ;BYTE  .WORD 10 ;DOUBLE PRECISION; ; STRING SECTION;3$:#7 JSR PC,STRGLN ;GET LENGTH OF INDIVIDUAL STRING ELEMENTA1 MOV R0,(SP) ;SAVE SIGNED LENGTH (OVER JUMP PTR)  BPL 4$ ;NOW GET? NEG R0 ;ABS VALUEA)4$: MOV R0,-(SP) ;SAVE ABS VALUE ON STACKD MOV #12,R2 ;UP TO 12(8) BITS! CLR R3 ;THIS IS THE BIT COUNTER(5$: ASR R0 ;SHIFT BITS OUT BCC 6$( INC R3 ;AND COUNT THEM6$: SOB R2,5$ ;WE SHOULD HAVE DEC R3 ;ONLY 1 BIT IFI1 BNE DIM99 ;LENGTH IS POWER OF 2 (0 NOT ALLOWED)D- TST R0 ;NOTHING SHOULD BE LEFT IN R0 EITHER % BNE DIM99 ;ELSE BIGGER THAN A BLOCKN$ JSR PC,SUBSUB ;GET ARRAY SUBSCRIPTS MOV (SP)+,R2 ;ABS LEN -> R2 BR 2$ ;AND FINISH UP;-; COMMON CODE FOR VIRTUAL DIMENSION STATEMENTO;0; ON ENTRY (VIA JUMP OR BRANCH)C; R2 HAS POSITIVE SIZE OF INDIVIDUAL ELEMENT (MUST BE A POWER OF 2)$; R3 HAS THE FIRST SUBSCRIPT; R4 HAS THE 2ND SUBSCRIPT7; (SP) WITH ITEM LENGTH INCL SIGN IF NEEDED FOR STRINGST; 2(SP) HAS HEADER WORD <; 4(SP) AND 6(SP) HAVE ACCUMULATED LONG INTEGER OFFSET VALUE"; 10(SP) HAS LUN FOR VIRTUAL ARRAY;G$; EXIT TO REPEATED PART OF CODE (1$)1; (SP) AND 2(SP) WITH FLOATING ACCUMULATED OFFSET ; 4(SP) WITH LUN.; OR TO STATEMENT INTERPRETER WITH STACK CLEAN;O2$: MOV R3,-(SP) ;SAVE DIMENSIONS MOV R4,-(SP) ;V$ INC R3 ;ACCOUNT FOR ZEROTH ELEMENT INC R4 ;+ LDCIF R3,AC0 ;NOW LOAD UP FP ACCUMULATORSE; LDCIF R4,AC1 ;WITH DIMENSIONS (ADJUSTED FOR 0TH ELEMENTS)O" MULF AC1,AC0 ;GET PRODUCT -> AC0# LDCIF R2,AC1 ;ELEMENT SIZE -> AC1L' MULF AC1,AC0 ;TOTAL # OF BYTES -> AC0N' MOV #16,R0 ;SIZE OF VIRTUAL DATA ITEMD TSTOK ;ENOUGH ROOM? BLO DIM98 ;IF NOT, BRANCHC' ADD R0,ENUDAT ;UPDATE END OF USER DATAT! MOV (SP)+,R4 ;RESTORE DIMENSIONSC MOV (SP)+,R3 ;M* MOV (SP)+,R0 ;SIGNED ELEMENT LENGTH -> R0( MOV (SP)+,(R5)+ ;STORE HEADER WITH NAME! MOV R3,(R5)+ ;SAVE 1ST SUBSCRIPTD MOV R4,(R5)+ ;AND 2ND# MOV 4(SP),(R5)+ ;LUN -> DATA BLOCKE$ MOV R0,(R5)+ ;SIGNED ELEMENT LENGTH; 0; FOLLOWING CODE ROUNDS UP ACCUMULATED OFFSET IN<; ACCORD WITH RSTS BASIC+ RULES FOR VIRTUAL ARRAY ALLOCATION;O! MOV R2,R4 ;ELEMENT LENGTH -> R4U" MOV 2(SP),R2 ;LOWER 16 BITS -> R2 MOV #1000,R3D, BIC #177000,R2 ;GET # BYTES OVER EVEN BLOCK- SUB R2,R3 ;# REMAINING BYTES IN BLOCK -> R3+ CLR R2 ;GET SET FOR DIVIDE# DIV R4,R2 ;DIVIDE BY ELEMENT SIZET TST R3 ;CHECK REMAINDER  BEQ 8$ ;IF ZERO, NO ROUND UP" BIC #777,2(SP) ;CLEAR BYTE OFFSET, ADD #1000,2(SP) ;GET TO START OF NEXT BLOCK1 ADC (SP) ;AND MAKE SURE OF DOUBLE PRECISION ADD !8$: SETL ;SET LONG INTEGER MODE  LDCLF (SP)+,AC2 ;RESULT -> AC2- STCFL AC2,(R5)+ ;STORE IT AWAY IN DATA BLOCKR! ADDF AC0,AC2 ;NEW OFFSET -> AC2R STCFL AC2,-(SP) ;STORE IT" SETI ;RESET 16 BIT INTEGER MODE;M SKIP ;DO WE HAVE  CMPB R2,#', ;MORE ITEMS? BEQ 1$ ;IF SO, LOOP AROUND DEC R1 ;ELSE BACK UP TEXT PTR  ADD #6,SP ;CLEAN STACK2 JMP INIT02 ;AND GO BACK TO STATEMENT INTERPRETER;A.; SUBROUTINE STRGLN FOR USE WITH DIM STATEMENT ; ON ENTRY:A; R1 POINTS JUST PAST '$' ; ON EXIT:); R1 POINTS JUST PAST LEN INFO [IF THERE]A%; R0 HAS LEN (+ FOR FIXED, - FOR VAR)T; 'V' SET IF SYNTAX ERROR; OTHER REGISTERS USED: R2;CSTRGLN: SKIP ;NEXT CHAR -> R2S. MOV #17,R0 ;SET DEFAULT LENGTH OF 15 DECIMAL! CMPB R2,#'[ ;DO WE HAVE LENGTH?M BNE 1$ ;IF NOT, BRANCH ATOI ;IF SO, GET IT -> R0 SKIP ;NEXT CHAR -> R2# CMPB R2,#'] ;IS IT CLOSE BRACKET? ( BNE 3$ ;IF NOT, BRANCH TO ERROR RETURN SKIP ;NEXT CHAR00h1h4e5edddd -> R2&1$: CMPB R2,#'V ;VARIABLE LEN STRING? BEQ 2$ ;IF SO, BRANCH  DEC R1 ;IF NOT, BACK UP PTRF RTS PC ;AND RETURN%2$: NEG R0 ;INDICATE VARIABLE LENGTHF RTS PC ;RETURN3$: SEV ;SET ERROR RTS PC ;RETURN; 6; SUBROUTINE SUBSUB TO RETURN SUBSCRIPT VALUES FOR DIM ; ON ENTRY:C); R1 POINTS TO START OF INFO [OPEN PAREN]; ; ON EXIT:9; R1 POINTS PAST END OF SUBSCRIPT INFO [PAST CLOSE PAREN]; R3 HAS FIRST SUBSCRIPT VALUE/; R4 HAS 2ND SUBSCRIPT VALUE (0 IF NONE SPEC'D)S; 'V' SET IF SYNTAX ERROR ; OTHER REGISTERS USED: R2,R0N;SUBSUB:; SKIP ;FIRST CHAR -> R2F" CMPB R2,#'( ;START OF SUBSCRIPT?* BNE 3$ ;IF NOT, BRANCH AND RETURN ZEROES ATOI ;CONVERT 1ST NUMBER  MOV R0,-(SP) ;SAVE NUMBER SKIP ;NEXT CHAR -> R2! CMPB R2,#', ;ANOTHER SUBSCRIPT? BNE 1$ ;IF NOT, BRANCH ATOI ;IF SO, CONVERT IT! SKIP ;GET FOLLOWING CHAR -> R2D MOV R0,R4 ;2ND VALUE -> R4!2$: MOV (SP)+,R3 ;1ST VALUE -> R3V! CMPB R2,#') ;FINAL CLOSE PAREN?( BNE 4$ ;IF NOT, SET ERROR  RTS PC ;ELSE RETURN NICELY#1$: CLR R4 ;SET ZERO 2ND SUBSCRIPTI BR 2$ ;AND FINISH UP3$: DEC R1 ;BACK UP TEXT PTRP CLR R3 ;SET ZERO CLR R4 ;SUBSCRIPTS RTS PC ;AND RETURN4$: SEV ;SET ERROR BIT RTS PC ;AND RETURN;N; SUBROUTINE SUBONE (; TO GET SUBSCRIPTS VIA SUBSUB AND CHECK'; THEM FOR IMMEDIATE (NON-VIRTUAL) USE. ; ON ENTRY:F; R1 = TEXT PTRR ; ON EXIT:; R1 POINTS PAST CLOSE PAREN; R3 HAS 1ST SUBSCRIPT; R4 HAS 2ND SUBSCRIPT; R0 HAS PACKED SUBSCRIPTS; 'V' SET IF ERROR; OTHER REGISTERS USED: R2; %SUBONE: JSR PC,SUBSUB ;GET SUBSCRIPTS$ BVS 1$ ;ON ERROR BRANCH1 MOV R4,R0 ;CHECK 2ND SUBSCRIPT DIMCHKC BNE 1$ ;IF TOO BIG, ERROR;& MOV R3,R0 ;NOW CHECK FIRST SUBSCRIPT DIMCHKN# BNE 1$ ;IF TOO BIG, DECLARE ERROR " SWAB R0 ;SET COMBINED SUBSCRIPTS BISB R4,R0 ;IN R0A RTS PCI1$: SEV ;INDICATE ERROR RTS PCX T) .SBTTL DEF00 - DEFINE FUNCTION STATEMENTN;+33; .SKIPS ; .X ^^DEF\\; .X ^FUNCTION - USER0; .X ^USER DEFINED FUNCTIONS; .HEADERLEVEL 1 hg R2 (EVEN S.EOL1) JMP INIT03 ;AND PROCEED("DEF99: DEFERR ;HORRIBLE ERROR!!! T2 .SBTTL EVAL00 - EVALUATE AN ARITHMETIC EXPRESSION;CC; EVAL - EVAL00, EVALUATE AN ARITHMETIC EXPRESSION. UPON ENTRY, R1 <; POINTS TO THE CURRENT TEXT POSITION. ON EXIT AC0 CONTAINS=; THE NUMERIC VALUE OF THE EXPRESSION. REGISTERS USED - ALL. E; V-BIT WILL BE SET IF EXPRESSION TERMINATED BY ')', CLEAR OTHERWISE.V&; ON V SET, R1 POINTS PAST CLOSE PAREN+; ON V CLEAR, R1 POINTS TO TERMINATING CHAR,;;EVAL00: CLR R0 TSTOK ;CHECK FOR BACKUP ROOM  BLO EVAL18 ;ON ERROR, BRANCH PUSH ;CLEAR THE PAREN COUNT' MOV #-1,-(SP) ;PUSH NULL (-1) ON STACK)EVAL02: SKIP ;GET A NON-BLANK CHARACTERR# CMP R2,#'+ ;IS THIS A UNARY PLUS?  BEQ EVAL03 ;YES, IGNORE IT" CMP R2,#'- ;IS IT A UNARY MINUS? BNE EVAL01 ;NO MOV R2,R0 ;YES, SET OPERAND2=0& CLRF AC0 ;AND PUT THE OPERATOR IN R0 BR EVAL05EVAL03: SKIP ;GET ACHARACTER.EVAL01: CMP R2,#'( ;IS OPERAND AN OPEN PAREN?$ BNE EVAL04 ;NO, GET A REAL OPERAND% CLR -(SP) ;PUSH A NULL ON THE STACKB' INC -2(R5) ;INCREMENT THE PAREN COUNTE$ BR EVAL02 ;GO BACK AND DO IT AGAIN0EVAL05: STF AC0,-(SP) ;PUSH OPERAND ON THE STACK# MOV R0,-(SP) ; OPERATOR ON STACKI BR EVAL03 ;AND GO BACK AROUNDE0EVAL04: DEC R1 ;MOVE CHARACTER POINTER BACK ONE" MOV -(R5),-(SP) ;SAVE PAREN COUNT JSR PC,GTP00 ;GET AN OPERAND  MOV ENUDAT,R5 ;RESTORE R5) MOV (SP)+,(R5)+ ;RESTORE THE PAREN COUNTLEVAL12: MOV R2,-(SP) ;SAVE R2O SKIP ;GET A CHARACTER& MOV #EVAL07+7,R0 ;GET ADDRESS OF LIST.GTPR01: CMPB -(R0),R2 ;IS IT A LEGAL OPERATOR? BEQ GTPR02 ;JUMP IF LEGAL % CMP R0,#EVAL07+1 ;HAS SEARCH FAILED?C BHI GTPR01 ;NO, CLR R0 ;YES - SET ZERO AND BACK UP POINTER DEC R1 ; TO POINT AT FAILURE GTPR03: MOV (SP)+,R2 ;RESTORE R2 BR EVAL19 ;AND CONTINUE)GTPR02: MOV R2,R0 ;PUT A CHARACTER IN R0, BR GTPR03 EVAL19: TST @SP ;IS STACK NULL? BLE EVAL17P+EVAL06: MOV R1,-(SP) ;SAVE THE TEXT POINTERO( MOV #EVAL07+7,R1 ;GET THE TABLE ADDRESS&EVAL08: CMPB -(R1),R0 ;FIND OPERATOR2 BNE EVAL08 ;IT MUST BE FOUND% ASR R1 ;GET RID OF THE BYTE POINTERP2 MOV R1,(R5)+ ;PUT RESULT ON USER LIST FOR A WHILE* MOV #EVAL07+7,R1 ;GET TABLE ADDRESS AGAIN(EVAL09: CMPB -(R1),2(SP) ;FIND OPERATOR1 BNE EVAL09 ;IT MUST BE THERE ASR R1 ;CLEAR LOW ORDER BITN MOV R1,(R5)+ ;SAVE IT FOR NOW# MOV (SP)+,R1 ;RESTORE TEXT POINTER92 CMP -(R5),-(R5) ;COMPARE OPERATOR1 WITH OPERATOR2, BLT EVAL05 ;GO BACK IF PRECEDENCE IS WRONG% MOV R0,(R5)+ ;SAVE OPERATOR2 FOR NOW  MOV #EVAL07+7,R0D9EVAL10: CMPB -(R0),@SP ;FIND APPROPRIATE OPERATOR IN LISTI BNE EVAL10 ;IT MUST BE FOUND# SUB #EVAL07+2,R0 ;GET DISPLACEMENTW ASL R0V ASL R070 ADD #EVAL11,R0 ;WE NOW HAVE THE ROUTINE ADDRESS MOV R0,(R5)+ ;SAVE IT" TST (SP)+ ;DISCARD OLD OPERATOR1 LDF AC0,AC1 ;PUT SOURCE IN AC1 LDF (SP)+,AC0 ;AND DEST IN AC0+ MOV -(R5),R2 ;ROUTINE ADDRESS JSR PC,(R2) ;GO COMPUTE VALUEI MOV -(R5),R0 ;RESTORE OPERATOR2 TST @SP ;IS STACK NULL?M, BGT EVAL06 ;NO, TAKE CARE OF REST OF STACK1EVAL17: CMP R0,#') ;IS OPERATOR2 A CLOSED PAREN?E BEQ EVAL14 ;YES TST R0 ;NO, IS IT NULL?U BGT EVAL05 ;NOT NULL - GO BACK% TST -(R5) ;IS THE PAREN COUNT ZERO?1 BNE EVAL13 ;NO TST (SP)+ ;POP NULLV CCC) RTS PC ;RETURN WITH RESULT IN R2,R3,R4.A!EVAL13: PARERR ;PAREN COUNT BADA(EVAL14: TST -(R5) ;IS PAREN COUNT ZERO? BNE EVAL15 ;NOEVAL16: TST (S00h1h4e5eddddP)+ ;POP NULL, SEV ;YES, ERROR - BUT DON'T TELL USER YET RTS PCPEVAL15: TST @SP ;JUMP BLT EVAL16 ;IF NULL = -1 TST (SP)+ ;POP NULLM" DEC (R5)+ ;DECREMENT PAREN COUNT BR EVAL12 ;AND DO IT AGAINEVAL18: OVFERREVAL07: .BYTE 0,') ;DO NOTL .BYTE '+,'- ; CHANGE .BYTE '*,'/ ; THE ORDER .BYTE '^ ; OF THIS TABLE .EVEN:; END OF TABLE REFERENCED AT: EVAL06+2, EVAL08+8, EVAL10-2+; ARGUMENTS ARE FIRST IN AC0, SECOND IN AC15 EVAL11: ADDF AC1,AC0 ;DO AN ADD RTS PC SUBF AC1,AC0 ;DO A SUBTRACTS RTS PC, MULF AC1,AC0 ;DO A MULTIPLYT RTS PCP DIVF AC1,AC0 ;DO A DIVIDET RTS PC;' JMP PWRF00 ;POWER IS EXTERNAL TO HEREC 5 .SBTTL GTP00 - GET AN OPERAND;L ; GETOP - GTP00, GET AN OPERAND. ; ON ENTRY:B; R1 POINTS TO START OF OPERAND ;H ; ON EXIT:); R1 POINTS TO NEXT CHAR AFTER SCAN ENDEDS; AC0 HAS VALUE OF OPERAND;R'; OTHER REGISTERS USED: POTENTIALLY ALL2; D; NOTE: THIS ROUTINE MUST BE RE-ENTRANT SINCE IT MAY RE-ENTER ITSELF; VIA CALLS TO "EVAL".;,-GTP00: MOV R1,-(SP) ;SAVE TEXT BACKUP POINTER; SKIP ;GET FIRST CHARACTER" BIC #177400,R2 ;CLEAR SIGN EXTEND CMPB R2,#S.SAST ;IN FCN RANGE?O* BLO 3$ ;IF BELOW, TRY FOR SOMETHING ELSE. CMPB R2,#S.SAEN ;PAST END OF SINGLE ARG FCNS?, BHI 1$ ;IF SO, TRY FOR OTHER FUNCTION TYPE SUB #140,R2 ;CALCULATE TABLE ASL R2 ;OFFSET MOV R2,-(SP) ;AND SAVE IT EVAL ;ARG VALUE -> AC0D# BVC 21$ ;IF NO CLOSE PAREN, ERRORR# MOV (SP)+,R2 ;RESTORE TABLE OFFSETY' TST (SP)+ ;REMOVE BACKUP TEXT POINTER& JSR PC,@INIT12(R2) ;GO TO THE ROUTINE RTS PC;+1$: CMPB R2,#S.NFBO ;PAST END NUMERIC FCNS?R BHI 2$ ;IF SO, ERROR SUB #140,R2 ;CALCULATE TABLE ASL R2 ;OFFSET- MOV ENUDAT,(SP) ;COVER TEXT PTR WITH EOD PTRT CLR -(SP) ;SLOT FOR TEXT PTR" JSR PC,@INIT12(R2) ;GO TO ROUTINE) MOV (SP)+,R1 ;GET PROPER END OF TEXT PTR ' MOV (SP)+,ENUDAT ;AND END OF USER DATAA RTS PCV2$: CMPB R2,#S.FN ;USER FCN? BEQ 7$ ;IF SO, GO DO IT( BNE 6$ ;IF NOT, ERRORF 3$: TSTCH( BVS 15$ ;JUMP IF BAD OPERAND BNE 9$ ;JUMP IF NOT NUMERICT,18$: MOV (SP)+,R1 ;RESTORE CHARACTER POINTER1 ATOF ;CONVERT THE NUMBER, IGNORING ERROR FLAGS# BVS 6$C RTS PCT115$: CMP R2,#'. ;DOES THE NUMBER START WITH "."?T BEQ 18$ ;YES BR 6$ ;NO))7$: GETVAR ;GET FOLLOWING VARIABLE NAMEG. BVS 6$ ;ERROR IF NO VARIABLE NAME AFTER "FN"+ MOV STUDAT,R3 ;GET ADDRESS OF USER STORAGED& CLR R0 ;SET ZERO MASK FOR THE SEARCH BIS #060000,R4 ;SET CLASS 3& SRLST ;SEARCH THE LIST FOR THE ITEM( BEQ 6$ ;GO REPORT ERROR IF NOT DEFINED JSR PC,FNSET ;GO SET UP PARAMS( MOV R1,-(SP) ;SAVE TEXT POINTER" MOV R0,R1 ;PUT DEF ADDRESS IN R1 EVALO BVC 20$ ;NO ')' ALLOWEDT21$: PARERR ;ERROR IF NOTN 6$: ILFERR'20$: SKIP ;NEXT CHAR IN FCN DEF -> R2& CMPB R2,#S.EOS1 ;AT END OF STATEMENT? BLO 6$ ;IF NOT, ERROR  MOV (SP)+,R1 ;RESTORE R1M' JSR PC,FNCLR ;CLEAN UP MESS WE'VE MADED& TST (SP)+ ;CLEAR BACKUP TEXT POINTER RTS PC629$: MOV (SP)+,R1 ;IT'S A VARIABLE, RESTORE POINTER. JSR PC,GETHDR ;GET HEADER ADDRESS OF VARIABLEU ;DSS1TE .IF NDF,DEFVAR ;IF NO AUTOMATIC VARIABLE DEFINITION ;DSS1E? BEQ 12$ ;VARIABLE NOT DEFINED....ERROR ;DSS1N .ENDC ;DSS1U ;DSS1T< JMP @11$(R0) ;GO TO APPROPRIATE ROUTINE ;**-111$: .WORD 13$ ;REAL*4 .WORD 13$ ;INTEGERO .WORD 13$ ;BYTE .WORD 12$ ;REAL*8I .WORD VTMR ;STRING (ERROR 52) ;DSS1A$12$: NXVERR ;NON-EXISTENT VARIABLE# CLRF AC0 ;ZERO RESULT PASSED BACKL RTS PCI"13$: JSR PC,GTOFFS ;GET THE OFFSET JSR PC,GETNUM ;AND THE NUMBER RTS PC ) .SBTTL LEN00 - LENGTH OF STRING FUNCTION ( .SBTTL FNSET - PARAM SETUP FOR USER FCN; ); FNSET - SET UP PARAMS FOR FUNCTION CALL@7; RETURN ADDRESS IS PULLED FROM STACK AND STACK IS USED18; TO STORE INFO ON ALREADY DEFINED DUMMY PARAMS.00h>hg R3, LEN -> R4 BVS 7$ ;REPORT ERROR MOV (SP)+,R5 ;RESTORE OLD R5O MOV (SP)+,(R5)+ ;PUSH NAME  CLR (R5)+ ;ZERO DIMENSIONS, MOV R4,(R5)+ ;AND LEN ALONG WITH FIXED TYPE MOVB R4,(R5)+ ;ACTUAL LEN BEQ 13$'3$: MOVB (R3)+,(R5)+ ;AND STRING ITSELF SOB R4,3$!13$: INC R5 ;ROUND R5 UP TO EVENR BIC #1,R5 ;BOUNDARY$ MOV R5,ENUDAT0 SKIP ;GET NEXT CHAR IN R2 (NOT DONE BY EVALS)'4$: MOV (SP)+,R0 ;RESTORE COUNT OF ARGSN MOV (SP)+,R3 ;AND ARG ADDRESS' CMPB #'),R2 ;AT END OF ACTUAL PARAMS?  BEQ 8$ ;IF SO, BRANCH  CMPB #',,R2 ;IS IT COMMA BEQ 5$ ;IT BETTER BE 7$: ILFERR*5$: MOV (SP)+,R2 ;ADD OF PAST = SIGN IN R2 DEC R0 ;DEC AND DO IT AGAINT" BEQ 7$ ;SHOULD NEVER GET TO ZERO JMP 6$Q8$: DEC R0 ;IF COUNT WAS 1, OKT" BNE 7$ ;ANYTHING ELSE = BAD NEWS' MOV (SP)+,R0 ;ADD OF PAST = SIGN IN R0U$ ADD USR,R0 ;MAKE INTO REAL ADDRESS# MOV SP,R2 ;GET ADDRESS OF LIST OF$ TST (R2)+ ;BLANKED PARAMS #11$: MOV (R2)+,R3 ;ADDRESS OF PARAME! BEQ 12$ ;ZERO MEANS END OF LIST  BIC #7777,(R3) ;CLEAR OUT NAME  TST (R2)+ ;SKIP OVER OLD NAMEQ BR 11$ ;DO ALL OF THEM-12$: RTS PC ;RETURN WITH SAVED INFO ON STACK2;D&; SUBROUTINE TO RESET DATA ITEMS AFTER; FUNCTION EVALUATION.; REGISTERS USED: R2,R0I;O$FNCLR: MOV (SP)+,R0 ;SAVE RETURN ADD"1$: MOV (SP)+,R3 ;ADD OF DATA ITEM BEQ 2$ ;BR IF AT END! MOV (SP)+,(R3) ;RESTORE OLD NAMEM BR 1$22$: MOV (SP)+,ENUDAT ;GET US BACK TO WHERE WE WERE" MOV R0,-(SP) ;PUT BACK RETURN ADD RTS PCB 1- .SBTTL EVLS00 - EVALUATE A STRING EXPRESSIONC;R;; EVALS, EVLS00 - EVALUATE A STRING EXPRESSION OF THE FORM:L; STRE1 + [STRE2 + ...]E; WHERE:&; STRE1 AND STRE2 ARE STRING ELEMENTS; A STRING ELEMENT MAY BE:'; A STRING CONSTANT (IN DOUBLE QUOTES)2$; A STRING VARIABLE (ENDING IN '$')-; A STRING FUNCTION (SYSTEM OR USER DEFINED)B ; ON ENTRY: ;; R1 POINTS TO START OF PROGRAM TEXT WITH STRING EXPRESSIONS;, ; ON EXIT:0; R1 POINTS TO FIRST CHAR PAST END OF EXPRESSION ; R3 HAS ADDRESS (IN FREE SPACE) ; R4 HAS LEN6; 'V' SET FOR BAD STRING EXPRESSION AND R1 AS ON ENTRY;SEVLS00:R' MOV #2,R0 ;CHECK FOR HEADER ROOM ONLY. TSTOK ;(ENUDAT -> R5)% BLO 18$ ;IF NOT ENOUGH ROOM, BRANCHG8 MOV R5,-(SP) ;SAVE HEADER ADDRESS (AND ORIGINAL ENUDAT)0 MOV #160000,(R5)+ ;SET UP HEADER WITH NO LENGTH MOV R1,-(SP) ;SAVE TEXT PTR3$:B2 MOV R5,-(SP) ;SAVE CURRENT POSITION OF R5 (END OF ;ACCUMULATED STRING) INC00h1h4e5edddd R5 ;ROUND IT UPI BIC #1,R50 MOV R5,ENUDAT ;AND PROTECT WHAT WE ALREADY HAVE0 JSR PC,GSTR00 ;GET STRING ELEMENT (WHICH MAY IN ;TURN EVALUATE A STRING) BVS 4$ ;IF ERROR, BRANCH! BLE 2$ ;IF ZERO OR LESS, BRANCHT! MOV R4,R0 ;LEN OF OPERAND -> R0  MOV R3,-(SP) ;SAVE ADDRESSV TSTOK ;CHECK FOR ROOM BLO 18$ ;IF NOT ENOUGH, BRANCH- MOV (SP)+,R3 ;RESTORE STRING ELEMENT ADDRESSV( MOV (SP)+,R5 ;AND CURRENT END OF STRING MOV @2(SP),R2 ;HEADER -> R2 BIC #160000,R2 ;CLEAR DATA TYPE ADD R0,R2 ;ADD IN NEW LENB BIT #160000,R2 ;IS IT TOO BIG?T BNE 18$ ;IF SO, BRANCH BIS #160000,R2 ;SET HEADER TYPE! MOV R2,@2(SP) ;AND STORE IT AWAYA)1$: MOVB (R3)+,(R5)+ ;MOVE IN NEW ELEMENT2 SOB R0,1$* MOV R5,-(SP) ;JUST TO KEEP STACK STRAIGHT22$: MOV (SP)+,R5 ;RESTORE R5 (END OF ACCUM STRING) SKIP ;NEXT TEXT CHARI CMPB R2,#'+ ;MORE ELEMENTS?+ BEQ 3$ ;IF SO, GO ADD THEM DEC R1 ;ELSE BACK UP TST (SP)+ ;POP OLD R1& MOV (SP)+,R3 ;ADDRESS OF HEADER -> R31 MOV R3,ENUDAT ;ALSO RESTORE ORIGINAL END OF DATAB/ MOV (R3)+,R4 ;HEADER -> R4, R3 AT STRING START 2 BIC #160000,R4 ;CLEAR HEADER TYPE, LEAVING LENGTH CCC ;SET SUCCESST RTS PC$'4$: TST (SP)+ ;POP END OF ACCUM STRING' MOV (SP)+,R1 ;RESTORE R1 AS WE ENTEREDT' MOV (SP)+,ENUDAT ;AND END OF USER DATA5 CLR R4 ;ZERO LEN SEV ;NO EXPRESSIONC RTS PCP 18$: OVFERRR L% .SBTTL GSTR00 - GET A STRING OPERAND;C%; GSTR, GSTR00 - GET A STRING OPERANDD;2; AT END OF SUCCESSFUL COMPLETION OF THIS ROUTINE,1; R3 CONTAINS AN INDIVIDUAL STRING ADDRESS AND R4+; CONTAINS ITS LENGTHT;R"GSTR00: SKIP ;GET NEXT TEXT CHAR& BIC #177400,R2 ;CLEAR OUT SIGN EXTEND< CMPB R2,#S.SFST ;ARE WE IN RANGE OF STRING FUNCTION TOKENS?$ BLO 1$ ;IF NOT, TRY SOMETHING ELSE CMPB R2,#S.SFEN ;OVER THE TOP? * BHI 2$ ;IF SO, GO LOOK FOR USER FUNCTION- SUB #140,R2 ;MAKE R2 INTO JUMP TABLE OFFSET  ASL R2G# JSR PC,@INIT12(R2) ;GO TO FUNCTIONR$ TST R4 ;SET LENGTH CONDITION CODES' RTS PC ;AND GO BACK WHER WE CAME FROMN,2$: CMPB R2,#S.FN ;USER FUNCTION DEFINITION?$ BEQ GSTR01 ;IF SO, GO TO THAT CODE BR GSTR09 ;IF NOT, ERROR1$: TSTCH ;WHAT IS ITC" BVS GSTR10 ;NOT ALPHANUM MAYBE " BEQ GSTR09 ;NUMBER=ERROR%GSTR06: DEC R1 ;RESTORE TEXT POINTERR" JSR PC,GETHDR ;GET HEADER ADDRESSB BVS GSTR09 ;ERROR IN VAR ;DSS1U ;DSS1E .IF NDF,DEFVAR ;IF NO AUTOMATIC VARIABLE DEFINITION ;DSS1EB BEQ GSTR09 ;NO VARIABLE ;DSS1N .ENDC ;DSS1U ;DSS1TB CMP #10,R0 ;IS THIS A STRING? ;**-2" BNE GSTR09 ;IF NOT, REPORT ERROR JSR PC,GTOFFS ;GET THE OFFSET! MOV R3,R0 ;HEADER ADDRESS -> R0 % JSR PC,GETSTR ;AND THE STRING ITSELFN.GSTR02: TST R4 ;SET CONDITION CODES ON LENGTH RTS PC ;BACK TO CALLER GSTR09: SEVA RTS PC ;AND RETURN+GSTR10: CMP R2,#'" ;THIS A STRING CONSTANT  BNE GSTR09 ;ERR IF NOT& MOV R1,R3 ;SAVE STRING START ADDRESS CLR R4 ;REGISTER FOR LENGTH %GSTR11: CMPB (R1)+,#'" ;END OF STRING  BEQ GSTR02 ;RETURN IF SO! CMPB -(R1),#S.EOL1 ;END OF LINE?  BHIS 1$ ;RETURN IF SO TOON INC R1 ;SKIP OVER CHAR INC R4 ;ADD TO LENGTHM BR GSTR11 ;LOOP TILL END FOUND$1$: UNMERR ;UNMATCHED QUOTES ERRORT ;DSS1DVTMR: VTMERR ;VARIABLE TYPE MISMATCH ;DSS1;B,; ADDED CODE TO HANDLE USER STRING FUNCTIONS;S*GSTR01: GETVAR ;NAME OF STRING FCN IN R4$ BVS GSTR09 ;IF UNSUCCESSFUL, ERROR% CMPB R2,#'$ ;IS IT STRING FCN NAME?( BNE GSTR09 ;IF NOT, ERRORB SKIP ! CMPB R2,#'( ;MUST HAVE ARG LISTO BNE GSTR09 ;ELSE ERROR MOV STUDAT,R3 CLR R0 ;NO MASKD$ BIS #100000,R4 ;SET STRING FCN TYPE SRLST! BEQ GSTR09 ;IF NOT FOUND, ERROR  JSR PC,FNSET ;SET UP PARAMS MOV R1,-(SP) ;SAVE 00h>hg BVS 6$ ;ERROR ;DSS1> BNE 5$ ;OK ;DSS1C MOV R5,-(SP) ;(SAVE R5) ;DSS1FD JSR PC,NEWVAR ;DEFINE THE VARIABLE ;DSS1C MOV (SP)+,R5 ;(RESTORE R5) ;DSS1 ?5$: CLZ ;CLEAR Z, JUST IN CASE ;DSS1 M6$: RTS PC ;DSS1 U ;DSS1;U ;DSS1AU; GETHD5 IS EXACTLY LIKE GETHDR, EXCEPT THAT, ON RETURN, ;DSS1 U; THE Z-BIT IS SET IF THE VARIABLE IS UNDEFINED ;DSS1 U;***TEST 'V' FIRST, THEN 'Z' ....... VARIABLES ARE NOT AUTOMATICALLY CREATED ;DSS1TUGETHD5: ;DSS1 U ;DSS1 = .IFF ;IF NO AUTOMATIC VARIABLE DEFINITION ;DSS1 U; GETHDR AND GETHD5 ARE IDENTICAL, IF UNDEFINED VARIABLES ARE ERRORS, RATHER ;DSS1 U; THAN ZEROES ;DSS1 UGETHDR: ;DSS1 UGETHD5: ;DSS1 E .ENDC ;IF DF,DEFVAR ;DSS1 U ;DSS1 > CLR R0 ;CLEAR R0 FOR SEARCH MASK ;DSS1C MOV R0,-(SP) ;AND SET ERROR RETURN CODE ;**-8 1 GETVAR ;2 CHAR VAR NAME -> R4 (3RD CHAR -> R2)  BVS 11$ ;ON ERROR, BRANCH & CMPB R2,#'$ ;DO WE HAVE STRING TYPE? BEQ 1$ ;IF SO, BRANCH  CMP R2,#'% ;INTEGER TYPE? ' BEQ 2$ ;IF SO, BRANCH TO INTEGER CODE CMPB R2,#'& ;BYTE TYPE SPEC'D? BEQ 3$ ;IF SO, BRANCH ; 4; OTHER VARIABLE TYPE DETERMINATIONS TO BE DONE HERE; 3 DEC R1 ;BACK UP TEXT PTR IF ORDINARY FLOATING VAR & ;STACK LEFT AT 0 FOR FLOATING VAR.! BR 10$ ;BRANCH TO COMMON FINISHR-1$: BIS #120000,R4 ;SET STRING TYPE IN HEADERA% MOV #10,(SP) ;SET STRING RETURN CODE ! BR 10$ ;BRANCH TO COMMON FINISH%2$: BIS #20000,R4 ;SET INTEGER HEADER( MOV #2,(SP) ;SET INTEGER TYPE ON STACK BR 10$E"3$: BIS #40000,R4 ;S00h1h4e5eddddET BYTE HEADER MOV #4,(SP) ;AND TYPE ON STACK BR 10$;Q3; CODE FOR OTHER VARIABLE TYPES TO BE INSERTED HEREM;T%10$: MOV STUDAT,R3 ;SET UP FOR SEARCHK SRLST ;SEE IF IT'S THERET BEQ 12$ ;IF NOT THERE, BRANCHR"11$: MOV (SP)+,R0 ;SET RETURN CODE CLZ ;INDICATE VAR FOUND RTS PCEG12$: MOV (SP)+,R0 ;POP RETURN TYPE CODE ;DSS1 < SEZ ;VARIABLE NOT DEFINED ;DSS1J RTS PC ;**-2* .SBTTL GTOFFS - GET OFFSET OF ACTUAL DATA;A ; ON ENTRY:; R3 POINTS TO DATA ITEM HEADERE<; R1 POINTS TO TEXT FOLLOWING VAR NAME (OPEN PAREN IF THERE);K ; ON EXIT: ; R3 AS ABOVER0; R1 POINTS PAST CLOSE PAREN (IF SUBSCRIPT USED) ; AC0 HAS:*; 1) FOR STANDARD VAR, OFFSET FROM STUDAT*; (R0 HAS ABSOLUTE ADDRESS IN THIS CASE):; 2) FOR VIRTUAL ARRAY, OFFSET FROM FILE START (IN BYTES);D,; OTHER REGISTERS USED: R2, R0, R4, AC1, AC2; GTOFFS: BIT #10000,(R3) ;VIRTUAL ARRAY? BNE 3$ ;IF SO, BRANCHT MOV R3,-(SP) ;SAVE R3 MOV (R3)+,R0 ;HEADER -> R0  ASH #-14,R0 ;SHIFT BITS DOWN( BIC #177761,R0 ;CLEAR ALL BUT ITEM TYPE% MOV R0,-(SP) ;AND SAVE TYPE ON STACK3 SKIPV CMPB R2,#'( ;SUBSCRIPT?P! BNE 1$ ;IF NOT, SIMPLE VARIABLE: CMP R0,#12 ;DO WE HAVE STRING? BNE 6$ ;IF NOT, BRANCH& CLR R0 ;GET SET TO GET STRING LENGTH# BISB 2(R3),R0 ;WITHOUT SIGN EXTEND  INC R0 ;AND ADD LENGTH BYTER MOV R0,-(SP) ;SAVE IT ON STACK BR 7$56$: MOV 5$(R0),-(SP) ;LEN OF NUMERIC ELEMENT ON STACKA-7$: MOV R3,-(SP) ;SAVE CURRENT POSITION OF R3A EVAL ;GET 1ST SUBSCRIPT BVS 8$ ;IF CLOSE PAREN, BRANCH' STCFI AC0,-(SP) ;STORE FIRST SUBSCRIPTD SKIP ;GET NEXT TEXT CHAR CMPB R2,#', ;MUST BE COMMA BNE 98$ ;ELSE ERRORV EVAL ;GET 2ND SUBSCRIPT$ BVC 98$ ;MUST END WITH CLOSE PAREN# STCFI AC0,R0 ;2ND SUBSCRIPT -> R0E BR 9$68$: STCFI AC0,-(SP) ;1ST (AND ONLY) SUBSCRIPT ON STACK CLR R0 ;2ND IS IMPLIED 09$: MOV 2(SP),R3 ;RESTORE R3* CLR R2 ;MAKE SURE R2 CLEAR SO WE CAN GET) BISB (R3)+,R2 ;2ND SUBSCRIPT LIMIT -> R2T" CMP R0,R2 ;COMPARE ACTUAL TO MAX BHI 99$ ;IF TOO BIG, ERROR! CLR R2 ;GET SET TO GET UNSIGNEDS) BISB (R3)+,R2 ;1ST SUBSCRIPT LIMIT -> R2+ CMP (SP),R2 ;COMPARE 1ST SUBSCRIPT TO MAX  BHI 99$ ;IF TOO BIG, ERROR MOV R3,2(SP) ;RE-SAVE R3I CLR R2 ;GET Y.MAX -> R2R BISB -2(R3),R2 ;IN UNSIGNED WAY MOV R2,R3 ;NOW DO WORK IN R3$ INC R3 ;ADD ONE FOR ZEROTH ELEMENT MUL (SP)+,R3 ;X*(Y.MAX+1) -> R3 ADD R0,R3 ;Y+X*(Y.MAX+1) -> R37 MOV (SP)+,R2 ;R2 NOW HAS PTR TO START OF DATA ELEMENTS>) MUL (SP)+,R3 ;MULTIPLY BY ELEMENT LENGTHB ADD R2,R3 ;ADD IN OFFSET&10$: CMP (SP)+,#12 ;DO WE HAVE STRING? BNE 2$ ;IF NOT, BRANCH6 ADD #3,R3 ;ELSE ADD EXTRA WORD PLUS LEADING LEN BYTE2$: MOV R3,R4 ;COPY -> R4 MOV R3,R0 ;AND -> R0 MOV (SP)+,R3 ;HEADER ADDRESS> SUB STUDAT,R4 ;OFFSET -> R4 LDCIF R4,AC0 ;NOW -> AC0 RTS PC 1$: DEC R1 ;BACK UP TEXT PTRH TST (R3)+ ;PUSH TO 3RD WORDA BR 10$ ;AND GO FINISHY%98$: SBSERR ;BADLY FORMED SUBSCRIPTO%99$: SUBERR ;SUBSCRIPT OUT OF RANGEM!5$: .WORD 4 ;REAL*4 (NORMAL TYPE)N .WORD 2 ;INTEGER*2D .WORD 1 ;BYTE .WORD 10 ;REAL*8W;A; VIRTUAL SECTION ;F53$: JSR PC,VSUBSC ;GET ELEMENT NUMBER (LINEAR) -> AC0D& LDCIF 10(R3),AC1 ;ELEMENT SIZE -> AC1 ABSF AC1 ;MAKE SURE POSITIVE. MULF AC1,AC0 ;GET TOTAL BYTE OFFSET IN ARRAY SETL ;LONG INTEGER MODE0 LDCLF 12(R3),AC2 ;START OFFSET FOR ARRAY -> AC2) ADDF AC2,AC0 ;ADD IT IN FOR FILE OFFSETN SETI ;BACK TO 16 BIT INTEGERS RTS PC ;AND RETURN;S; VIRTUAL SUBSCRIPT CALCULATION; VSUBSC:R SKIP ;NEXT CHAR -> R2" CMPB R2,#'( ;CHECK FOR SUBSCRIPT( BNE 3$ ;IF NONE, (0,0) ELEMENT ASSUMED! MOV R3,-(SP) ;SAVE DATA ITEM PTRN EVAL ;FIRST SUBSCRIPT -> AC0(% BVS 1$ ;IF CLOSE PAREN, SHORT CALC. ! STF AC0,-(SP) ;STORE IT ON STACK  SKIP ;CHECK NEXT CHAR.A CMPB R2,#', ;FOR COMMA- BNE 4$ ;IF NO COMMA, BADLY FORMED SUBSCRIPTA EVAL ;GET 2ND SUBSCRIPT3 BVC 4$ ;IF NO CLOSE PAREN, BADLY FORMED SUBSCRIPTE$ LDF (SP)+,AC1 ;00h>hg AC122$: MOV (SP)+,R3 ;RESTORE PTR TO VIRTUAL DATA ITEM( STCFI AC0,R0 ;INTEGERIZE 2ND SUBSCRIPT CMP R0,4(R3) ;CHECK ITS RANGE" BHI 5$ ;IF TOO HIGH, RANGE ERROR1 LDCIF R0,AC0 ;RE-LOAD 2ND SUBSCRIPT INTEGERIZED(! STCFI AC1,R0 ;GET 1ST SUBSCRIPTA CMP R0,2(R3) ;CHECK ITS RANGE" BHI 5$ ;IF TOO HIGH, RANGE ERROR2 LDCIF R0,AC1 ;1ST SUBSCRIPT -> AC1 (INTEGERIZED)' LDCIF 4(R3),AC2 ;SIZE OF 2ND DIMENSIONS ADDF #1,AC2 ;PLUS ONE -> AC2% MULF AC2,AC1 ;TIMES FIRST SUBSCRIPTP' ADDF AC1,AC0 ;ADDED TO 2ND FOR RESULT) RTS PC ;AND RETURN01$: LDF AC0,AC1 ;MAKE SURE 1ST SUBSCRIPT -> AC1% CLRF AC0 ;2ND SUBSCRIPT = IMPLIED 0E! BR 2$ ;GO FINISH IN REGULAR WAYR3$: DEC R1 ;BACK UP TEXT PTRU! CLRF AC0 ;ZEROTH ELEMENT WANTED  RTS PC ;AND RETURN$4$: SBSERR ;BADLY FORMED SUBSCRIPT$5$: SUBERR ;SUBSCRIPT OUT OF RANGE;C; SUBROUTINE VIRACCA-; TO GET NEEDED DISK BLOCK IN MEMORY GIVEN AN /; OFFSET INTO THE FILE. THIS ROUTINE ALSO TAKES 5; CARE OF WRITING OUT AN EXITSING BLOCK IF NECESSARY. ; ON ENTRY:S"; R3 IS PTR TO VIRTUAL DATA HEADER+; AC0 HAS OFFSET (IN BYTES) FROM FILE STARTR8; R5 HAS WRITE FLAG (1 TO INDICATE WRITE TO BE PERFORMED; AFTER ACCESS); ; ON EXIT: ; R3 AS ABOVER; AC0 AS ABOVE ; R0 HAS ADDRESS OF BLOCK BUFFER%; R2 HAS OFFSET INTO BLOCK (IN BYTES)T;$ ; OTHER REGISTERS USED: AC1, AC2;CVIRACC:U MOV R4,-(SP) ;SAVE A COUPLE MOV R5,-(SP) ;OF REGISTERS  MOV 6(R3),R4 ;LUN -> R4 DEC R4 ;BACK IT OFF BY ONE BIS #10000,R4 ;SET BLOCK MODE MOV #7400,R0 ;MASK TO IGNORES MOV R3,-(SP) ;SAVE DATA PTR JSR PC,SRCHFL ;LOOK FOR ITB BEQ 4$ ;IF NOT THERE, BRANCH SETL ;SET 32 BIT INTEGER MODE+ STCFL AC0,-(SP) ;CONVERT OFFSET TO INTEGERI# MOV (SP)+,R4 ;AND PUT IN REGISTERS  MOV (SP)+,R5 ;FOR FURTHER WORK ) ASHC #-11,R4 ;MAKE IT JUST BLOCK NUMBER , ADD #1,R5 ;OFFSET BLOCK (SINCE START AT 1) ADC R4 ;MAKE SURE OF 32 BITS! MOV R5,-(SP) ;STORE 32 BIT BLOCKR MOV R4,-(SP) ;NUMBER ON STACK' LDCLF (SP)+,AC1 ;REQUIRED BLOCK -> AC1 ' LDCLF 6(R3),AC2 ;CURRENT BLOCK -> AC2V, CMPF AC1,AC2 ;IS REQUIRED SAME AS CURRENT? CFCCB) BEQ 2$ ;IF SO, BRANCH (NO NEED TO READ)S& JSR PC,WRITBK ;GO WRITE THE BLOCK OUT BCS 3$ ;ON ERROR, BRANCH1 LDCLF F.EFBK(R0),AC2 ;CURRENT EOF BLOCK # -> AC2R' CMPF AC1,AC2 ;COMPARE REQUIRED VS EOFE CFCCT- BLT 5$ ;IF REQ'D < CURRENT EOF, OK FOR READE TST 2(SP) ;CHECK ON WRITE FLAG BNE 2$ ;IF WRITE, SKIP READE. ;ELSE CONTINUE SO WE GET EOF ERROR ON READ65$: STCFL AC1,F.BKVB(R0) ;REQUIRED BLOCK NUMBER -> FDB CLR -(SP) ;IO STATUS BLOCK CLR -(SP) ;ON STACKE' MOV SP,F.BKST(R0) ;WITH ADDRESS IN FDBS READ$ ;DO BLOCK READD BCC 6$ ;IF OK, BRANCH TO WAITB? MOVB F.ERR(R0),(SP) ;IF NOT, GET ERROR CODE WHERE EXPECTING ITE BR 1$ ;AND BRANCH AROUND WAIT,$6$: WAIT$ R0 ;WAIT FOR IT TO FINISH(1$: MOV (SP)+,R2 ;IO STATUS RETURN -> R2 TST (SP)+ ;POP XFER COUNT ! MOVB R2,F.ERR(R0) ;STATUS -> FDBP BMI 3$ ;ON ERROR, BRANCH$2$: STCFL AC0,-(SP) ;OFFSET -> STACK TST (SP)+ ;POP HIGH ORDER PART MOV (SP)+,R2 ;LOW PART -> R2T/ BIC #177000,R2 ;CLEAR OUT ALL BUT BLOCK OFFSETR' STCFL AC1,6(R3) ;STORE CURRENT BLOCK #O MOV R3,R0 ;BASIC FDB PTR -> R0 MOV (SP)+,R3 ;RESTORE DATA PTRF MOV (SP)+,R5 ;RESTORE SOMEP' BIS R5,14(R0) ;SET WRITE FLAG IF IN R5I0 ADD #S.FDB+26,R0 ;MAKE R0 POINT TO BLOCK BUFFER MOV (SP)+,R4 ;REGISTERS SETI ;BACK TO 16 BIT INTEGERS RTS PC ;AND RETURN;T; ERROR ROUTINES; 3$: MOVB R2,R2 ;EXTEND SIGN* MOV R2,PARLST+P.FCS ;STORE FCS ERROR CODE SETI ;RESTORE INTEGER MODE ' VFIERR ;ERROR IN VIRTUAL FILE ACCESSO4$: SETI VOPERR ;VIRTUAL FILE NOT OPEN;R; SUBROUTINE WRITBKM:; TO WRITE OUT BLOCK BUFFER ON BLOCK ACCESS FILE IF NEEDED%; AND SET UP FDB FOR BLOCK OPERATIONSS;, ; ON ENTRY:R.; R3 POINTS TO BASIC FILE CONTROL BLOCK HEADER;T ; ON EXIT:; R0 POINTS TO FDB PROPERE; F.BKDS AND F.BKDS+2 SET UPD; F.BKVB(R0) SET UP WITH BLOCK NUMBER OF WRITTEN BLOCK IF WRITE DONE4; 14(R3) ZEROED (NO UNRECORDED WRITES TO THIS BLOCK)1; F.ERR(R0) SET WI00h1h4e5eddddTH IO STATUS CODE IF WRITE DONER,; 'C' SET IF ERROR IN WRITE, CLEAR OTHERWISE;V; OTHER REGISTERS USED:R2 ;RWRITBK:I% MOV R3,R0 ;MAKE R0 POINT TO FCS FDBO ADD #26,R0 ;" MOV R0,F.BKDS+2(R0) ;STORE PROPER' ADD #S.FDB,F.BKDS+2(R0) ;BLOCK ADDRESST MOV #1000,F.BKDS(R0) ;AND SIZED* TST 14(R3) ;CHECK # WRITES TO THIS BLOCK, BEQ 2$ ;IF NONE, BRANCH (NO NEED TO WRITE)) MOV 6(R3),F.BKVB(R0);SET UP BLOCK NUMBERI# MOV 10(R3),F.BKVB+2(R0) ;FOR WRITEE CLR -(SP) ;MAKE A STATUS BLOCK CLR -(SP) ;ON THE STACKC& MOV SP,F.BKST(R0) ;AND ADDRESS IN FDB WRITE$ ;DO THE BLOCK WRITE  BCC 4$ ;IF OK, BRANCH TO WAITT7 MOVB F.ERR(R0),(SP) ;PUT ERROR CODE WHERE EXPECTING IT  BR 3$ ;AND BRANCH AROUND WAITR(4$: WAIT$ R0 ;AND WAIT FOR IT TO FINISH(3$: MOV (SP)+,R2 ;IO STATUS RETURN -> R2 TST (SP)+ ;POP XFER COUNT SEC ;SET 'C' FOR ERROR RETURN' MOVB R2,F.ERR(R0) ;STORE STATUS IN FDB( BMI 1$ ;IF NEGATIVE, BRANCH1"2$: CLC ;ELSE SET SUCCESS RETURN 1$: RTS PC@ .SBTTL GETNUM - TO RETURN NUMBER -> AC0, GIVEN INFO FROM GTOFFS; ; ON ENTRY:B; R3 IS PTR TO DATA ITEM HEADER; AC0 HAS OFFSET*; 1) FOR STANDARD VAR, OFFSET FROM STUDAT/; 2) FOR VIRTUAL ARRAY, OFFSET FROM FILE START ;U ; ON EXIT: ; R3 AS ABOVED; AC0 HAS NUMERIC VALUE$;O; OTHER REGISTERS USED: R0, R2;GETNUM:+ MOV R5,-(SP) ;SAVE CURRENT R5# CLR R5 ;NO WRITE FLAG (READ ONLY)R2 JSR PC,NUMSUB ;GO TO COMMON READ/WRITE SUBROUTINE& JMP @1$(R0) ;AND JUMP TO PROPER CODE1$: .WORD 2$ ;FLOATINGN .WORD 3$ ;INTEGER  .WORD 4$ ;BYTE .WORD 9$ ;DOUBLE PRECISION(2$: LDF (R2),AC0 ;LOAD IN FLOATING VALUE BR 8$%3$: MOV (R2),R0 ;INTEGER VALUE -> R0 )5$: LDCIF R0,AC0 ;CONVERT IT TO FLOATINGM8$: MOV (SP)+,R5 ;RESTORE R5 RTS PC ;AND RETURN*4$: MOVB (R2),R0 ;CONVERT BYTE TO INTEGER BR 5$ ;AND FINISH LIKE INTEGER;P>; TEMPOROARILY FOR LOGICAL TIE-UP OF CODE FOR DOUBLE PRECISIONF; EVENTUALLY THE USE OF DOUBLE PRECISION (REAL*8) HAS TO BE RE-THOUGHT;O9$: LDCDF (R2),AC0 BR 8$;N0; COMMON CODE FOR READ AND WRITE OF NUMERIC DATA; ; ON ENTRY:I; R3 IS PTR TO DATA ITEM HEADERL; AC0 HAS OFFSET*; 1) FOR STANDARD VAR, OFFSET FROM STUDAT/; 2) FOR VIRTUAL ARRAY, OFFSET FROM FILE STARTO*; R5 HAS READ/WRITE FLAG (0=READ, 1=WRITE);$ ; ON EXIT:; R3,AC0,R5 AS ABOVE; R2 HAS ADDRESS OF DATA; R0 HAS TYPE INDICATORP; 0 = FLOATING (REAL*4); 2 = INTEGER*2; 4 = BYTE (LOGICAL*1)Y; 6 = DOUBLE (REAL*8);NNUMSUB: / MOV (R3),R0 ;ARE WE IN RANGE FOR NUMERIC DATA " ASH #-14,R0 ;MAKE TYPE INFO INTO$ BIC #177761,R0 ;A JUMP TABLE OFFSET, CMP R0,#6 ;ARE WE IN RANGE OF NUMBER TYPES! BHI 8$ ;IF NOT, BRANCH TO ERRORS BIT #10000,(R3) ;VIRTUAL? BNE 6$ ;IF SO, BRANCHF STCFI AC0,R2 ;OFFSET -> R2- ADD STUDAT,R2 ;MAKE IT INTO ABSOLUTE ADDRESSA 7$: RTS PC;; VIRTUAL SECTION ;A6$: MOV R0,-(SP) ;SAVE JUMP PTR=+ JSR PC,VIRACC ;GO ACCESS APPROPRIATE BLOCKB& ;(RETURN WITH BLOCK ADDRESS -> R0) ;(OFFSET -> R2)( BVS 8$ ;IF NO FILE, 'V' SETM# ADD R0,R2 ;MAKE R2 POINT TO VALUEI MOV (SP)+,R0 ;RESTORE JUMP PTR , BR 7$ ;AND GO FINISH LIKE REGULAR VARIABLE 8$: NXVERR6 .SBTTL STONUM - STORE A NUMBER FROM AC0 INTO VARIABLE;T ; ON ENTRY: ; R3 POINTS TO DATA ITEM HEADER;; AC0 HAS VALUED; AC1 HAS OFFSET*; 1) FOR STANDARD VAR, OFFSET FROM STUDAT/; 2) FOR VIRTUAL ARRAY, OFFSET FROM FILE START ;= ; ON EXIT: ; R3 AS ABOVE ; AC0 AS ABOVE; AC1 AS ABOVE;T; OTHER REGISTERS USED: R0, R2;TSTONUM: MOV R5,-(SP) ;SAVE R5 MOV #1,R5 ;SET WRITE FLAGP STF AC0,-(SP) ;SAVE VALUE, STF AC1,AC0 ;AND PUT OFFSET WHERE EXPECTED JSR PC,NUMSUB ;DO COMMON CODE# LDF (SP)+,AC0 ;GET VALUE OFF STACKM# JMP @1$(R0) ;GO TO PROPER ROUTINE1$: .WORD 2$ ;REAL*4M .WORD 3$ ;INTEGER*2U .WORD 4$ ;LOGICAL*1 (BYTE) .WORD 9$ ;REAL*82$: STF AC0,(R2) BR 8$-3$: STCFI AC0,(R2) ;CONVERT TO 1-WORD INTEGERN BR 8$)4$: STCFI AC0,R0 ;CONVERT 1ST TO INTEGERO MOVB R0,(R2) ;THEN TO BYTE8$: MOV (SP)+,R5 ;RESTORE R5 RTS PCS; "; TEMPORARY DOUBLE PRECISION STORE;A00h>hg R4  BR 2$'1$: MOVB -1(R3),R4 ;ACTUAL LENGTH -> R4O)2$: BIC #177400,R4 ;CLEAR ANY SIGN EXTENDR BR 5$ ;AND THAT'S IT;I; VIRTUAL STRING RETRIEVE3;S8$: MOV 10(R0),R4 ;SIZE -> R4N! BPL 5$ ;IF POSITIVE, WE'RE DONE  NEG R4 ;MAKE ABSOLUTE VALUER MOV R4,R2 ;GET END OF STRING ADD R3,R2 ;IN R2 4$: TSTB -(R2) ;CHECK FOR FIRST BNE 5$ ;NON-NULL (BRANCH)  SOB R4,4$ ;ELSE KEEP LOOKING%5$: MOV (SP)+,R5 ;RESTORE ORIGINAL R5X RTS PC?;B'; COMMON CODE FOR STRING READ AND WRITEI; ; ON ENTRY:B; R0 IS PTR TO DATA ITEM HEADERL; AC0 HAS OFFSET*; 1) FOR STANDARD VAR, OFFSET FROM STUDAT/; 2) FOR VIRTUAL ARRAY, OFFSET FROM FILE START3*; R5 HAS READ/WRITE FLAG (0=READ, 1=WRITE);; ; ON EXIT:; R0,AC0,R5 AS ABOVE; R3 HAS ADDRESS OF STRING;,; OTHER REGISTERS USED: R0,R2,; STRADD:$ MOV (R0),-(SP) ;HEADER ON STACK$ BIC #17777,(SP) ;CLEAR ALL BUT TYPE CMP #120000,(SP)+ ;IS IT STRING BNE 6$ ;IF NOT, ERRORX! BIT #10000,(R0) ;VIRTUAL STRING?T BNE 3$ ;IF SO, BRANCH STCFI AC0,R3 ;OFFSET -> R3 ADD STUDAT,R3 ;MAKE IT ABSOLUTE 7$: RTS PC+3$: MOV R0,R3 ;GET HEADER WHERE WE NEED ITI* MOV R0,-(SP) ;AND SAVE SINCE R0 GETS USED" JSR PC,VIRACC ;GO ACCESS THE ITEM MOV R0,R3 ;BLOCK ADDRESS -> R3 ADD R2,R3 ;NOW ABS ADDRESS( MOV (SP)+,R0 ;HEADER ADDRESS BACK -> R0 BR 7$)6$: NXVERR ;THIS ERROR SHOULDN'T HAPPEN#9 .SBTTL STOSTR - STORE STRING IN MEMORY (REAL OR VIRTUAL)T;G ; ON ENTRY:F; R0 IS PTR TO DATA ITEM HEADERI; AC0 HAS OFFSET*; 1) FOR STANDARD VAR, OFFSET FROM STUDAT/; 2) FOR VIRTUAL ARRAY, OFFSET FROM FILE STARTT; R3 HAS STRING ADDRESS ; R4 HAS STRING LENGTH;M ; ON EXIT:; R0, AC0 AS ABOVE:; R3 HAS ADDRESS PAST END OF USED PORTION OF SOURCE STRING; R4 = 0;-STOSTR:D MOV R5,-(SP) ;SAVE A REGISTER& MOV R3,-(SP) ;SAVE STRING DESCRIPTORS MOV R4,-(SP)  MOV #1,R5 ;SET WRITE FLAG#! JSR PC,STRADD ;GO DO COMMON CODEM& MOV R3,R2 ;DESTINATION ADDRESS -> R2 MOV (SP)+,R4 ;POP LENGTHM) MOV (SP)+,R3 ;AND ADDRESS OF DESTINATIONA& BIT #10000,(R0) ;VIRTUAL DESTINATION? BNE 4$ ;IF SO, BRANCHF MOVB 4(R0),R5 ;MAX LEN -> R5R* BIC #177400,R5 ;CLEAR OUT ANY SIGN EXTEND5 SUB R4,R5 ;R5 HAS DIFFERENCE BETWEEN MAX AND ACTUAL % BGE 1$ ;IF POS OR ZERO, OK (BRANCH). ADD R5,R4 ;IF NEGATIVE, REDUCE ACTUAL TO MAX, CLR R5 ;AND SET ZERO DIFFERENCE (FOR FILL)'1$: MOV R0,-(SP) ;SAVE DATA ITEM HEADER,$ TST 4(R0) ;CHECK FIXED OR VARIABLE BMI 2$ ;IF VARIABLE, BRANCHM. MOVB #40,R0 ;IF FIXED USE SPACE AS FILL CHAR BR 3$42$: MOVB R4,-1(R2) ;STORE ACTUAL LENGTH IN ITS FIELD CLR R0 ;USE NULL AS FILL%3$: JSR PC,FILSTR ;GO FILL THE STRING4$ MOV (SP)+,R0 ;RESTORE DATA ITEM PTR# MOV (SP)+,R5 ;AND REGISTER WE USEDX RTS PCA;; VIRTUAL STRING SECTION;($4$: MOV R0,-(SP) ;SAVE DATA ITEM PTR' MOV 10(R0),R5 ;GET STRING LENGTH -> R5O) BPL 5$ ;IF POSITIVE THEN FIXED (BRANCH)A1 CLR R0 ;IF NEGATIVE, THEN VARIABLE => NULL FILLA NEG R5 ;MAKE LENGTH POSITIVE BR 6$05$: MOV #40,R0 ;USE SPACE FILL FOR FIXED LENGTH'6$: SUB R4,R5 ;LENGTH DIFFERENCE -> R5N$ BGE 3$ ;IF POSITIVE, WE'RE SET NOW' ADD R5,R4 ;IF NEG, MAKE LEN = MAX LENR CLR R5 ;AND NO FILLS% BR 3$ ;AND GO FINISH FILL OPERATIONR;S; FILSTR; TO FILL IN A STRING VARIABLE;S ; ON ENTRY:$; R3 HAS ADDRESS OF SOURCE; R4 HAS LEN OF SOURCE; R2 HAS ADDRESS OF VARIABLE; R5 HAS FILL COUNTN; R0 HAS FILL CHAR;R ; ON EXIT:; 00h1h4e5eddddR4 = 0; R5 = 0(; R3 HAS ADDRESS PAST END OF USED SOURCE,; R2 HAS ADDRESS PAST END OF FILLED VARIABLE; R0 HAS FILL CHAR; -FILSTR: TST R4 ;DO WE HAVE AN ACTUAL STRING?P BEQ 2$ ;IF NOT, BRANCH/1$: MOVB (R3)+,(R2)+ ;MOVE IN THE ACTUAL STRING; SOB R4,1$ ;B'2$: TST R5 ;DO WE HAVE ANY FILL TO DO? BEQ 4$ ;IF NOT, BRANCH.3$: MOVB R0,(R2)+ ;MOVE IN THE FILL CHARACTERS SOB R5,3$ 4$: RTS PC7 .SBTTL NEWVAR - TO CREATE A SIMPLE VARIABLE OF R0 TYPE ;N ; ON ENTRY:F; R0 HAS TYPE INDICATOR ; 0 = REAL*4=; 2 = INTEGER ; 4 = BYTE ; 6 = REAL*8 ; 10= STRINGS; R4 HAS VARIABLE HEADER; LOWER 12 BITS HAVE VAR. NAMER; TOP 3 BITS ARE DATA TYPEA;T ; ON EXIT:; R0 AND R4 AS ABOVE; R3 POINTS TO DATA ITEM HEADER ; ENUDAT UPDATED;R; OTHER REGISTERS USED: R5;VNEWVAR:L MOV R4,-(SP) ;SAVE HEADER ASR R0 ;DIVIDE INDEX BY TWO  MOV R0,-(SP) ;AND SAVE IT% MOVB 10$(R0),R0 ;GET ITEM SIZE -> R0  TSTOK ;CHECK FOR ROOM BLO 12$ ;IF NOT ENOUGH, ERROR0# MOV (SP)+,R0 ;RESTORE JUMP POINTER MOV (SP),R4 ;AND HEADER ' MOV R5,R3 ;COPY DATA ITEM START -> R3S MOV R4,(R5)+ ;PUT IN HEADER CLR (R5)+ ;SET ZERO DIMENSIONS CMP R0,#4 ;STRING? BNE 1$ ;IF NOT, BRANCH8 MOV #177417,(R5)+ ;IF SO, SET VAR LENGTH 15 BYTE STRING21$: MOVB 11$(R0),R4 ;GET WORD COUNT TO CLEAR -> R42$: CLR (R5)+ ;ANDR SOB R4,2$ ;CLEAR SPACE$ MOV R5,ENUDAT ;SAVE NEW END OF DATA" MOV (SP)+,R4 ;RESTORE DATA HEADER ASL R0 ;AND TYPE INDEX RTS PC$ 12$: OVFERRU:10$: .BYTE 10,6,6,14,26 ;REAL*4,INTEGER,BYTE,REAL*8,STRING11$: .BYTE 2,1,1,4,10 ; " "P .EVEN  .SBTTL LET00 - LET STATEMENTT;+3E; .SKIPR ; .X ^^LET\\; .X ^ARITHMETIC ASSIGNMENTS; .HEADERLEVEL 1 __[___...] ; \\; .BR)M; ^WHERE EXPRESSIONS ARE EITHER ARITHMETIC OR STRING AND RELATIONAL OPERATORSA2; CAN BE FORMED BY ANY COMBINATION OF _<, > AND =.K; ^THE TWO EXPRE00h>hg= 5)}E; \\; .F;-;EA; THIS CODE EVALUATES A COMPOUND CONDITION, ALLOWING FOUR LOGICALS; OPERATORS: NOT, AND, XOR, OR.A;T ; ON ENTRY:D&; R1 POINTS TO START OF CONDITION TEXT ; ON EXIT: ; R1 POINTS TO NEXT CHAR OF TEXT'; R0 HAS CONDITION -1 = TRUE, 0 = FALSEL; 'N' SET IF TRUEE; 'Z' SET IF FALSE;E(EVALC0: CLR -(SP) ;SET STOPPER ON STACK1$: SKIP ;FIRST CHAR -> R2& BIC #177400,R2 ;CLEAR ANY SIGN EXTEND CMPB R2,#'( ;OPEN PAREN? BEQ 12$ ;IF SO, BRANCH& CMPB R2,#S.NOT ;IS IT A LEADING 'NOT' BNE 2$ ;IF NOT, BRANCH MOV R2,-(SP) ;IF SO, SAVE ITN BR 1$ ;AND GO BACK FOR MORER!2$: DEC R1 ;BACK UP TEXT POINTERN, JSR PC,SNGLCN ;GO EVALUATE SINGLE CONDITION%8$: MOV (SP)+,R3 ;SEE WHAT'S ON STACKR BEQ 11$ ;IF ZERO, BRANCH, SUB #S.NOT,R3 ;ANYTHING ELSE IS AN OPERATOR% ASL R3 ;MAKE IT INTO A TABLE OFFSET , JMP @3$(R3) ;AND GO TO APPROPRIATE ROUTINE3$: .WORD 4$ ;NOT .WORD 5$ ;ANDG .WORD 6$ ;XOR2 .WORD 7$ ;OR.4$: COM R0 ;COMPLEMENT THE EXISTING CONDITION* BR 8$ ;AND SEE IF ANYTHING MORE ON STACK'5$: MOV (SP)+,R2 ;PRIOR CONDITION -> R2$ COM R2 ;HAVE TO FUSS TO GETE BIC R2,R0 ;LOGICAL AND BR 9$ ;NOW SEE WHAT'S NEXT+6$: MOV (SP)+,R2 ;GET PRIOR CONDITION -> R2T1 XOR R2,R0 ;WE HAVE INSTRUCTION FOR EXCLUSIVE ORO BR 9$67$: BIS (SP)+,R0 ;THIS IS THE INSTRUCTION FOR INCL. OR9$: SKIP ;GET NEXT CHAR -> R2 & BIC #177400,R2 ;CLEAR ANY SIGN EXTEND& CMPB R2,#S.AND ;SEE IF WE HAVE BINARY BLO 10$ ;LOGICAL OPERATORC CMPB R2,#S.OR& BHI 10$ ;IF NOT, AT END OF CONDITION+ MOV R0,-(SP) ;IF SO, PUT CURRENT CONDITION $ MOV R2,-(SP) ;AND OPERATOR ON STACK$ BR 1$ ;AND EVALUATE NEXT CONDITION"10$: DEC R1 ;BACK UP TEXT POINTER# TST (SP)+ ;POP STOPPER FROM STACKT TST R0 ;SET CONDITION CODESI RTS PC ;AND RETURN11$: CLR -(SP) ;RESET STOPPER( BR 9$ ;AND GO LOOK FOR BINARY OPERATOR112$: JSR PC,EVALC0 ;CALL THIS ROUTINE RECURSIVELYS SKIP ;NEXT CHAR -> R2! CMPB R2,#') ;IS IT CLOSE PAREN?  BEQ 8$ ;IF SO, BRANCH  PARERR-S.LT =1 ;DEFINE BITS FOR RELATIONAL OPERATORS,S.EQ =2 S.GT =4USNGLCN: EVALS ;IF STRING OK  BVC 1$ ;GO DO STRING COMPARE EVALA BVC 10$ ;IF NO PAREN, BRANCH$ PARERR ;CLOSE PAREN HERE IS ERROR"10$: STF AC0,-(SP) ;SAVE THE VALUE) CLR -(SP) ;SPACE TO SET TRUE CONDITIONS& JSR PC,OPSET ;SET THE TRUE CONDITIONS EVAL ;GET SECOND ARG -> AC0$ BVC 12$ ;IF NO CLOSE PAREN, BRANCH! DEC R1 ;IF ONE, BACK UP OVER IT-#12$: MOV (SP)+,R0 ;CONDITIONS IN R0N" CMPF (SP)+,AC0 ;DO ACTUAL COMPARE! CFCC ;COPY THE CONDITION CODESO BR 6$ ;GO FINISH1$: MOV R4,-(SP) ;SAVE LEN AND& MOV R3,-(SP) ;ADDRESS OF FIRST STRING' MOV ENUDAT,-(SP) ;SAVE OLD STORAGE ENDR* CLR -(SP) ;SAVE SLOT FOR TRUE CONDITIONS MOV R3,R5 ;SET NEW END OFV ADD R4,R5 ;USER STORAGE PAST INC R5 ;FIRST STRING BIC #1,R5 MOV R5,ENUDAT% JSR PC,OPSET ;SET TRUE REL OPERATORSB EVALS ;GET SECOND STRINGR BVS00h1h4e5edddd IF99 ;ON ERROR, BRANCH# MOV (SP)+,R0 ;GET TRUE CODES IN R0I2 MOV (SP)+,ENUDAT ;RESTORE OLD END OF USER STORAGE' MOV (SP)+,R2 ;1ST STRING ADDRESS -> R2G MOV (SP)+,R5 ;ITS LEN -> R50 CLR -(SP) ;PUT LENGTH RELATIONAL FLAG ON STACK& CMP R5,R4 ;COMPARE 1ST LEN TO SECOND( BEQ 2$ ;IF SAME, DON'T DO ANYTHING YET1 BLT 3$ ;IF LESS, GO SET NEG & NEW COMPARE COUNTE INC (SP) ;IF GT, SET POS, BR 2$ ;AND KEEP PRESENT COMPARE COUNT (R4) 3$: DEC (SP) MOV R5,R4 ;MIN LENGTH IN R4E$2$: MOV (SP)+,R5 ;LEN RELATION IN R5 TST R4 ;CHECK LENGTH( BLE 5$ ;IF NEG OR ZERO, GO BY LEN ONLY&4$: CMPB (R2)+,(R3)+ ;CHECK EACH CHAR.( BNE 6$ ;IF DON'T MATCH, END OF COMPARE SOB R4,4$ ;KEEP COMPARING-)5$: TST R5 ;IF FINISHED CHECK, GO ON LEN,6$: BLT 7$ ;GO TO APPROPRIATE TEST FOR TRUE BEQ 8$ ;CONDITIONS BIT #S.GT,R0 ;IS > TRUE BR 9$7$: BIT #S.LT,R0 ;IS < TRUEE BR 9$8$: BIT #S.EQ,R0 ;IS = TRUE 9$: BEQ 11$ ;IF FALSE, BRANCH MOV #-1,R0 ;SET TRUE CONDITION RTS PC !11$: CLR R0 ;SET FALSE CONDITIONI RTS PC T .SBTTL IF00 - IF STATEMENT;;+3G; .SKIP ; .X ^^IF\\Y; .X ^STRING COMPARISONH; .HEADERLEVEL 1 THEN _[ELSE _][ELSE _]0; IF _ THEN _ " "1; IF _ GOTO _\\ " "$; .FILL F; ^IF THE LOGICAL EXPRESSION IS TRUE (SEE ^LOGICAL ^EXPRESSIONS), THENO; THE LINE NUMBER FOLLOWING THE I; ; ^THIS IMPLEMENTATION OF B THEN STOP}E%; {20 IF A$ _<> B$ GOTO 110 ELSE 500} >; {30 IF A >= 12.5 THEN 160 ELSE PRINT "A _< 12.5" : GOTO 300}; \\; .FILLT;-; REGISTERS USED - ALL.I; 'IF00: JSR PC,EVALC0 ;EVALUATE CONDITIONN BNE IF15 ;IF TRUE, BRANCH.# MOV #1,R0 ;ACCOUNT FOR CURRENT IFH 1$: MOVB (R1)+,R2 ;GET NEXT CHAR CMPB R2,#S.IF ;IS IT IF? ) BLO 1$ ;IF LESS, NOT INTERESTING AT ALL  BNE 2$ ;IF NOT SAME, BRANCHS INC R0 ;IF SO, COUNT ITB" BR 1$ ;AND KEEP LOOKING FOR ELSE*2$: CMPB R2,#S.EOS1 ;END OF ANY STATEMENT? BLO 3$ ;IF NOT, BRANCH& CMPB R2,#S.EOL2 ;END OF LOGICAL LINE? BEQ 4$ ;IF SO, BRANCH.5 INC STCOUN ;KEEP TRACK OF STATEMENTS FOR GOSUB ETC.A BR 1$4$: DEC R1 ;ELSE BACK UPU JMP INIT02 ;AND GIVE UP;(3$: CMPB R2,#S.ELSE ;DO WE HAVE AN ELSE? BNE 1$ ;IF NOT, KEEP LOOKING, INC STCOUN ;ESLE'S COUNT AS NEW STATEMENT!# DEC R0 ;ALSO, COUNT DOWN THE IF'SL# BNE 1$ ;IF NOT ZERO, KEEP LOOKINGI" BR IF01 ;IF THIS IS IT, GO TO ITREM00:) MOV LINEHD,R5 ;CURRENT LINE HEADER -> R5O$ MOV R1,-(SP) ;SAVE CURRENT TEXT PTR) MOV 2(R5),R1 ;START OF LINE OFFSET -> R1?+ ADD USR,R1 ;ADD IN OFFSET OF PROGRAM TEXTP CLR R0 ;CLEAR FLAG4 SKIP ;GET FIRST SIGNIFICANT THING IN CURRENT LINE MOV R1,R3 ;SAVE POSITION IN R3- MOV (SP)+,R1 ;AND GET BACK OUR REAL POSITIONN CMP R3,R1 ;DO THE TWO MATCH?6 BNE 2$ ;IF NOT, BRANCH (WE ARE NOT AT START OF LINE)5 INC R0 ;IF MATCH, SET FLAG THAT THIS IS FIRST THING 52$: CMPB (R1)+,#S.EOL1 ;LOOK FOR END OF PHYSICAL LINE; BLO 2$I- BNE 1$ ;IF NOT END OF PHYSICAL LINE, BRANCHE' MOVB #S.EOS1,R2 ;FAKE END OF STATEMENTE" TST R0 ;WERE WE AT START OF LINE BEQ 3$ ;IF NOT, BRANCH, DEC STCOUN ;IF SO, BACK US OFF TO ZERO NOW% ;SO RETURN AND NEXT WORK PROPERLYV43$: JMP INIT03 ;AND JUMP INTO MIDDLE OF INTERPRETER1$: DE00h>hg ;RELATIONAL OPERATORS; BEQ 3$R! DEC R1 ;IF NOT, BACK UP POINTER , TST 2(SP) ;CHECK FOR AT LEAST ONE OPERATOR BNE 4$ ;IF SO, RETURN0 OPRERR ;ELSE ERROR 4$: RTS PC$1$: BIS #S.LT,2(SP) ;SET APPROPRIATE BR OPSETO&2$: BIS #S.EQ,2(SP) ;OPERATOR FLAG BIT BR OPSETT!3$: BIS #S.GT,2(SP) ;ON THE STACKR BR OPSETI T .SBTTL PR00 - PRINT STATEMENT;+6; .SKIPR; .X ^^PRINT\\; .X ^BINARY OUTPUTC; .X ^RANDOM ACCESS ^I/^OO; .HEADERLEVEL 1 ; ^WHERE ^N IS AN OPTIONAL FILE NUMBER AND ^V1, ^V2, ^V3, ETC.-; ARE ANY LEGAL NUMERIC OR STRING EXPRESSION.RE; ^IN THE SECOND FORM ^R IS A RANDOM ACCESS RECORD NUMBER EXPRESSION.$>; ^IT MAY HAVE ANY VALUE UP TO THE MAXIMUM ALLOWED IN A DOUBLE; PRECISION SIGNED INTEGER.I2; ^FLOATING POINT VALUES ARE TRUNCATED BEFORE USE.>; ^THE FILE ^N MUST HAVE BEEN OPENED FOR RANDOM ACCESS VIA THE+; ^^/RN\\ SWITCH IN THE ^^OPEN\\ STATEMENT. ; .SL1@; ^WHEN EXPRESSIONS ARE SEPARATED BY COMMAS, RESULTS ARE PRINTED"; IN FIELDS OF 14 CHARACTERS EACH.D; ^WHEN EXPRESSIONS ARE SEPARATED BY SEMICOLONS, RESULTS ARE PRINTED.; NEXT TO EACH OTHER WITHOUT ANY SPACES ADDED.5; ^A TRAILING SEMICOLON WILL SUPPRESS ^^__\\.UE; ^WHEN PRINTING WITH COMMA SEPARATION, AS MANY FIELDS ARE ALLOWED ASF!; CAN FIT ON THE PRINTING DEVICE.BD; ^NOTE THAT NUMERIC VALUES, WHEN CONVERTED IN A ^^PRINT\\ STATEMENT$; NORMALLY HAVE A SPACE AT EACH END.,; ^TO AVOID THIS, USE THE ^^STR$\\ FUNCTION.; .SKIP F; ^ON BINARY FILES, THE FOLLOWING CONDITIONS HOLD: ^^TAB\\ IS IGNORED,H; NO "FIELD" JUSTIFICATION IS PERFORMED AND ALL DATA LIST ITEMS MUST FIT; INTO THE EXISTING BUFFER.EE; ^FLOATING VALUES ARE STORED AS FOUR CONSECUTIVE BYTES WHICH ARE NOTE; WORD ALIGNED.OH; ^STRINGS AND NUMERIC VALUES ARE PACKED TOGETHER AND MAY BE COMBINED IN ; ANY ORDER.I; ^IT IS UP TO THE USER TO KEEP TRACK OF THE INTERNAL STORAGE ARRANGEMENTY@; FOR FUTURE USE WITH ^^INPUT\\ OR OTHER NON-^^BASIC\\ PROGRAMS.; .SLH; ^A SYNONYM FOR ^^PRINT\\ IS "?" PRIMARILY FOR CONVENIENCE IN IMMEDIATE ; MODE USE."; .SLJ ; ^EXAMPLE:I ; .NOFILL ; ^^; {50 PRINT A,3.5,"HELLO";A$}N; {60 PRINT _#3,EXP(.5);X^Y;}O; \\; .FILLE;-;+5S; .SKIPS ; .X ^^TAB\\; .X ^PRINT TAB FUNCTION; .HEADERLEVEL 1 R3! MOV 14(R3),R3 ;FDB POINTER -> R3U) CMP R3,#OUTQIO ;IS THIS TERMINAL OUTPUT?O+ BEQ 2$ ;IF SO, IT'S ASCII NO MATTER WHAT! , BITB #FD.CR!FD.FTN,F.RATT(R3) ;IF CARR CNTL" BNE 2$ ;BRANCH (NOT BINARY FILE) BIS #2,LINEFL ;SET BINARY BIT-2$: CLR -(SP) ;A SWITCH TO FORCE A DELIMITER9PR01: MOV #34,R0 ;MAKE SURE THIS MAY BYTES ARE AVAILABLEB TSTOK ;AND FIND OUT FOR SUREA! BLO PR02 ;JUMP IF NOT AVAILABLE; SKIP ;GET THE NEXT CHARACTER * CMPB R2,#', ;CHECK FOR A VALID DELIMITER BEQ PR04 ;IS IT A COMMA? CMPB R2,#'; BEQ PR09 ;IS IT A SEMI-COLON?H) JSR PC,EOSCHK ;IS THIS END OF STATEMENT? # BEQ PR13 ;IF SO, GO TO FINAL CODEF TST (SP) ;IT'S NOT A DELIMITER+ BLT PR11 ;IF NEGATIVE THEN WE WANTED ONE!E0 DEC R1 ;BACK UP TO THE START OF THE EXPRESSION! MOV R1,R3 ;SET UP FOR TAB CHECK  MOV #ASCTAB,R2A MOV #4,R4 JSR PC,STRCMP BEQ PR03 ;IF TAB, PROCESS IT# EVALS ;TRY FOR STRING EXPRESSIONI) BVC PR15 ;BR IF VALID STRING EXPRESSION  EVAL ;GO FIND THE VALUE BVS PR11 ;OVERFLOW IS AN ERROR TST LINEFL ;BINARY?S BEQ 1$ ;IF NOT, BRANCH MOV OTPT,R3 ;FCB POINTER -> R3# MOV 2(R3),R2 ;MAX BYTE COUNT -> R2D SUB 6(R3),R2 ;#BYTES LEFT -> R2 CMP R2,#4 ;ENOUGH? BGE 2$ ;IF YES, BRANCH7 PRNERR ;(REPLACE WITH MORE SPECIFIC ERROR IN FUTURE)R,2$: STF AC0,-(SP) ;GET 4 BYTE VALUE ON STACK# MOV SP,R0 ;R0 IS POINTER TO VALUE0 MOV #4,R2' ADD R2,6(R3) ;ADJUST ACTUAL BYTE COUNTE ADD R2,SP ;RESET THE STACK' MOV (R3),R4 ;CURRENT BUFFER PTR -> R4E$3$: MOVB (R0)+,(R4)+ ;PUT VALUE AWAY SOB R2,3$" MOV R4,(R3) ;SAVE BUFFER POINTER BR PR17'1$: MOV R1,-(SP) ;SAVE THE TEXT POINTERR JSR PC,FTOA002 MOV SP,R0 ;THE OUTPUT AREA WAS LEFT ON THE STACK PRINTLG$ ADD #24,SP ;REMOVE THE OUTPUT AREA,PR10: MOV (SP)+,R1 ;RESTORE THE TEXT POINTER%PR17: MOV #-1,(SP) ;FORCE A DELIMITER PR12: BR PR01SPR04: TST LINEFL ;BINARY?% BNE PR09 ;IF SO, SKIP JUSTIFICATIONC* MOV OTPT,R2 ;CONTROL BLOCK POINTER IN R2& MOV 6(R2),R0 ;ACTUAL BYTE COUNT IN R0# MOV 2(R2),R2 ;MAX BYTE COUNT IN R2 ) SUB #14,R2 ;SUBTRACT LENGTH OF ONE ZONER$ CMP R0,R2 ;ENOUGH ROOM TO JUSTIFY? BLT 1$ ;IF SO GO DO IT JSR PC,PR18 ;PUT OUT THE LINET, BR PR05 ;ACT AS THOUGH WE HAD A TERMINATOR*1$: CMP OTPT,#TOTPT ;IS THIS THE TERMINAL?/ BNE PR05 ;IF NOT DON'T ACCOUNT FOR CARR CONT.,+ DEC R0 ;ACCOUNT FOR FORTRAN CARR. CONTROL4)PR05: NEG R0 ;CALCULATE THE MOD 14 COUNTS/PR06: BGT PR07 ;ADD 14 UNTIL A POSITIVE RESULTP ADD #14.,R0 ;ADD AND GO AGAINA BR PR06"PR07: MOVB #040,R2 ;OUTPUT SPACES PR08: PRINTC& DEC R0 ;DECREMENT THE MOD 14 COUNTER BGT PR08 ;LOOP IF MORE TO DO.PR09: MOV #1,(SP) ;SET DELIMITER FOUND SWITCH BR PR01!PR11: PRNERR ;ISSUE FATAL ERROR .PR13: TST (SP)+ ;CHECK FOR TRAILING DELIMITER' BGT PR14 ;NEGATIVE OR ZERO MEANS CRLFC JSR PC,PR18(PR14: DEC R1 ;BACK UP TO THE TERMINATOR CLR LINEFL ;CLEAN UP FLAGS% JMP INIT02 ;BACK TO THE INTERPRETER7)PR02: OVFERR ;STORAGE OVERFLOW IN PRINT4"PR15: TST R4 ;CHECK STRING LENGTH BEQ PR17 ;IGNORE IF NULL TST LINEFL ;BINARY OUTPUT? BEQ PR16 ;IF NOT, SKIP TEST MOV OTPT,R0 ;FCB ADD -> R0# MOV 2(R0),R2 ;MAX BYTE COUNT -> R2O SUB 6(R0),R2 ;BYTES LEFT -> R2E CMP R4,R2 ;ENOUGH ROOM?R BGT PR11 ;IF NOT, ERRORR#PR16: MOVB (R3)+,R2 ;GET CHAR IN R2E PRINTC ;PRINT IT# SOB R4,PR16 ;KEEP GOING TILL DONET CLR (SP) ;SET NO DELIMITER BR PR12 ;AND CONTINUEI%PR03: MOV R3,R1 ;UPDATE TEXT POINTERV EVAL ;GET TAB NUMBERI BVC PR11 ;MUST END WITH ')'S TST LINEFL ;IF BINARY, SKIPE BNE PR17 ;REST OF TAB NONSENSE MOV R1,-(SP) ;SAVE TEXT POINTER* MOV OTPT,R2 ;CONTROL BLOCK POINTER -> R2! MOV 6(R2),R0 ;ACTUAL COUNT IN R0R!5$: MO00i>hg MOV #IO.WVB!TF.WAL,OUTQIO+Q.IOFN ;SET WRITE PASS ALL FCN CODE* CLRB OUTQIO+Q.IOPL+4 ;SET NO CARR CONTROL1$: CRLF RTS PC  E) .SBTTL INP00 - INPUT STATEMENT PROCESSORT;+6;; .TP 6C; .SKIPL; .X ^^INPUT\\; .X ^BINARY INPUT; .X ^RANDOM ACCESS ^I/^OE; .HEADERLEVEL 1 ; ^INSUFFICIENT DATA IS AN ERROR WITH THE FOLLOWING EXCEPTION:@; A VARIABLE LENGTH STRING WILL HAVE ITS LENGTH SHORTENED TO THE<; AVAILABLE DATA IF DATA RUNS OUT, AND A FIXED LENGTH STRING; WILL BE BLANK FILLED.LA; ^IF DATA RUNS OUT WHILE FILLING A NUMERIC VARIABLE, THE RESULTSBH; ARE UNPREDICTABLE AND IN ANY CASE TERMINATE THE PROGRAM WITH AN ERROR.; .BREAK ; ^EXAMPLE:I ; .NOFILLG; ^^; {30 INPUT _#3,A1,B1$}H; {50 INPUT _#4@R+5,X1,X2,A1$}9; {80 INPUT "WHAT IS YOUR NAME",N$ : ! READ NAME INTO N$}S; \\; .FILLI;-;+6R; .SKIP ; .X ^^INPUT LINE\\; .HEADERLEVEL 1 R3, BIT #4000,-2(R3) ;IS BINARY CONTROL BIT SET BEQ 2$ ;IF NOT, SKIP FLAG SETK BIS #2,LINEFL ;SET BINARY BIT2$:E JSR PC,COM00 ;GET VARIABLEB BVC INP02 ;IT IS OKE 3$: MOV R0,-(SP) ;FRB SAVE A REG, MOV OTPT,R0 ;PUT CNTRL BLOCK ADDRESS IN R0' CRLF ;FORCE OUT PROMPT IF STILL HUNGE MOV (SP)+,R0 ;RESTORE A REG INPERR ;ISSUE FATAL ERRORINP02:$ MOV R1,-(SP) ;SAVE THE TEXT POINTER0INP10: CMP #TINPT,INPT ;IS THIS TERMINAL INPUT?? BNE INP07 ;SKIP PROMPT IF NOT TSTB PRMTFL ;PROMPT MODE SET?T BEQ INP07 ;IF NOT, BRANCHR% MOV #'?,R2 ;TELL HIM TO GET WITH IT  PRINTCSAINP07: BIS #LOWNOC,LOWFLG ;SHOW NO CONVERSION OF LOWER CASE ALPHAC PACK ;GET A LINE$ BIC #LOWNOC,LOWFLG ;RESET FLAGM* JSR PC,FILL00 ;TRY TO SATISFY THE REQUEST! BVS INP06 ;OVERFLOW IS BAD DATAH! BGT INP04 ;TOO MUCH INPUT TYPED# BLT INP05 ;NOT ENOUGH INPUT TYPED' MOV (SP)+,R1 ;RECOVER THE TEST ADDRESS1' MOV (SP)+,R5 ;INPUT LIST POINTER -> R5T+ MOV R5,SP ;THIS IS WHERE STACK USED TO BER ADD #2,SP ;(ALMOST)T# DEC R1 ;BACK UP CHARACTER POINTER#" CLR LINEFL ;BACK TO NORMAL INPUT$ TST RUNF ;CHECK FOR IMMEDIATE MODE, BNE INP03 ;OMIT THIS LITTLE BIT IF RUNNING MOVB #S.EOL2,(R1)INP03: JMP INIT02T"INP04: IN1ERR ;HE TYPED TOO MUCH BR INP10 ;TRY AGAIN6&INP05: IN2ERR ;HE DIDN'T TYPE ENOUGH BR INP10 ;TRY AGAINB%INP06: IN3ERR ;HE IS A LOUSY TYPISTV BR INP10 ;TRY AGAINT; $; STRCMP - STRING COMPARISON ROUTINE ; ON CALL:%; R3 CONTAINS ADDRESS OF FIRST STRING &; R2 CONTAINS ADDRESS OF SECOND STRING ; R4 CONTAINS LEN FOR COMPARISONSTRCMP: TST R4 ;IS LEN ZERO? BEQ 3$ ;IF SO, DONEM'4$: CMPB (R3)+,(R2)+ ;CHARACTERS EQUAL?L" BNE 3$ ;IF NOT, RETURN AS FAILED! SOB R4,4$ ;KEEP GOING TILL DONER 3$: RTS PC O1 .SBTTL FILL00 - COMMON DATA ELEMENT FILL ROUTINE ;N ; ON ENTRY:H; R1 POINTS TO START OF DATA4; LINELN HAS LENGTH OF DATA FOR BINARY OR INPUT LINE?; STACK AS ON EXIT FROM COM00 PLUS TEXT PTR AND SUBROUTINE LINKC;A ; ON EXIT:8; R1 POINTS PAST END OF DATA USED (TO EOL CHAR IF ASCII)5; LINELN = REMAINING CHAR COUNT (USUALLY 0) ON BINARYE#; 'V' SET ON BAD DATA (ASCII ONLY) (; BGT TRUE IF TOO MUCH DATA (ASCII ONLY)8; BLT TRUE IF NOT ENOUGH DATA (ASCII AND BINARY NUMERIC);DG; NOTE: CONDITION CODES ONLY RELEVANT FOR ASCII DATA AND BINARY NUMERIC;2; OTHER REGISTERS USED: R0 THROUGH R5, AC0 AND AC1;SFILL00:F* MOV 4(SP),R5 ;START OF LIST ADDRESS -> R5FILL01:O3$:0! JSR PC,FILL1 ;DO INDIVIDUAL ITEMC BVS 99$ ;ON ERROR BRANCH) BLT 99$ ;ALSO BRANCH IF NOT ENOUGH DATAI SUB #10,R5 ;POINT TO NEXT ITEM TST (R5) ;ANOTHER ITEM?  BEQ 4$ ;IF NOT, BRANCH) TST LINEFL ;DOING BINARY OR INPUT LINE?I BNE 2$ ;IF SO, BRANCH ( CMPB (R1),#', ;DO WE HAVE NEEDED COMMA? BEQ 1$ ;IF SO, BRANCH  CMPB (R1),#S.EOL2 ;AT END?A! BNE 3$ ;IF NOT, GO AROUND AGAINI'5$: CCC ;ELSE SET LESS THAN CONDITIONS SEN BR 99$ ;AND EXIT!1$: INC R1 ;PUSH PAST TERMINATOR1 BR 3$ ;AND GO AROUND AGAIN2$: TST LINELN ;ANYTHING LEFT?O BNE 3$ ;IF SO, GO AROUND AGAIN0 BR 5$ ;ELSE GO SET LESS THAN (NOT ENOUGH DATA);$; COME HERE IF NO MORE ITEMS TO FILL;N,4$: TST LINEFL ;DOING BINARY OR INPUT LINE?' BNE 98$ ;IF SO, BRANCH (EXCESS IS OK) # CMPB (R1),#S.EOL2 ;AT END OF LINE?B+ BEQ 98$ ;IF SO, BRANCH TO SUCCESSFUL EXITT3 CCC ;SETS GREATER THAN CONDITION (TOO MUCH DATA) -99$: RTS PC ;RETURN WITH ERROR CONDITION SET;98$: CLR R0 ;SET 'Z' (SUCCESS)T RTS PC1;B ; INDIVIDUAL ITEM FILL PROCESSOR;I ; ON ENTRY:N.; R5 POINTS TO 4 WORD ITEM DESCRIPTOR ON STACK&; R1 HAS START OF TEXT WITH INPUT INFO;) ; ON EXIT: ; R5 AS ABOVEE(; R1 POINTS PAST END OF THIS ITEM'S TEXT;N; OTHER REGISTERS USED:9; FILL1:# CMP -2(R5),#10 ;DO WE HAVE STRING?. BEQ 20$ ;IF SO, BRANCH* TST LINEFL ;STRAIGHT FILL OR CONVERSION?& BNE 1$ ;IF STRAIGHT (BINARY), BRANCH ATOF ;ELSE CONVERT NUMBER BVS 99$ ;ON ERROR, BRANCH;) SKIP 00i>hg R05 ASR R0 ;DIVIDE BY TWOA/ MOVB 10$(R0),R2 ;# OF STACK BYTES NEEDED -> R2 ) SUB R2,SP ;GET US THE ROOM ON THE STACKH, MOVB 11$(R0),R2 ;GET # BYTES FOR XFER -> R2" SUB R2,LINELN ;ADJUST LINE LENGTH% BLT 9$ ;IF NOT ENOUGH INPUT, BRANCHH# MOV SP,R3 ;ADDRESS FOR XFER -> R39!2$: MOVB (R1)+,(R3)+ ;TRANSFER INI SOB R2,2$ ;BINARY INFO ASL R0 ;BACK TO ORIGINAL VALUE$ JMP @3$(R0) ;AND GO TO PROPER CODE3$: .WORD 4$ ;REAL*4 .WORD 5$ ;INTEGER .WORD 6$ ;BYTER .WORD 7$ ;REAL*80$4$: LDF (SP)+,AC0 ;REAL VALUE -> AC0 BR 8$ ;GO TO FINISH2#5$: LDCIF (SP)+,AC0 ;INTEGER -> AC0B BR 8$ ;GO TO FINISHM*6$: MOVB (SP),R2 ;INTEGER VALUE FROM BYTE TST (SP)+ ;CLEAN STACK" LDCIF R2,AC0 ;AND INTEGER -> AC0 BR 8$ ;GO TO FINISHB/7$: LDCDF (SP)+,AC0 ;CONVERT DOUBLE TO FLOATING (8$: MOV (R5),R3 ;DATA ITEM HEADER -> R3 LDF -6(R5),AC1 ;OFFSET -> AC1 JSR PC,STONUM ;STORE NUMBER RTS PC ;AND RETURN9$: ADD R2,SP ;CLEAN STACKO+ RTS PC ;AND RETURN WITHOUT CHANGING VALUER-10$: .BYTE 4,2,2,10 ;# BYTES NEEDED FOR STACKB,11$: .BYTE 4,2,1,10 ;# BYTES NEEDED FOR XFER;R; STRING SECTION; 20$:% MOV (R5),R0 ;DATA ITEM HEADER -> R0F BIT #10000,(R0) ;VIRTUAL? BNE 22$ ;IF SO, BRANCH MOVB 4(R0),R4 ;LENGTH -> R4& BIC #177400,R4 ;CLEAR ANY SIGN EXTEND$ TST 4(R0) ;IS THIS VARIABLE LENGTH BGE 21$ ;IF NOT, BRANCHL8 NEG R4 ;IF SO, MAKE IT NEGATIVE FOR FURTHER PROCESSING(21$: BR 23$ ;BRANCH AROUND VIRTUAL CODE122$: MOV 10(R0),R4 ;GET VIRTUAL ITEM LENGTH -> R4A*23$: MOV R1,R3 ;SET START OF STRING -> R3# TST LINEFL ;INPUT LINE OR BINARY?S BNE 30$ ;IF SO, BRANCH ;ELSE REGULAR ASCII INPUT5 TST R4 ;FIXED OR VAR?> BPL 26$ ;IF FIXED, BRANCHA;; ASCII INPUT, VARIABLE LENGTH;0' CLR R4 ;START WITH ZERO LENGTH STRINGR#24$: MOVB (R1)+,R2 ;NEXT CHAR -> R2S CMPB R2,#', ;IS IT COMMA?I BEQ 25$ ;IF SO, BRANCH CMPB R2,#S.EOL2 ;END OF LINE? BHIS 25$ ;IF SO, ALSO BRANCH$ INC R4 ;ELSE IT'S A GOOD CHARACTER$ BR 24$ ;SO ADD 1 AND KEEP COUNTING;3"; ASCII INPUT, FIXED STRING LENGTH;326$: MOV R4,-(SP) ;SAVE LENGTH#27$: MOVB (R1)+,R2 ;NEXT CHAR -> R2  CMPB R2,#', ;LOOK FOR COMMAT BEQ 29$ ;IF SO, END OF STRINGI) CMPB R2,#S.EOL2 ;OR COULD BE END OF LINEL BHIS 29$ ;IF FOUND, BRANCH2 SOB R4,27$ ;KEEP LOOKING FOR WHOLE STRING LENGTH528$: MOVB (R1)+,R2 ;AND LOOK FOR TERMINATOR OF STRING  CMPB R2,#', ;EITHER COMMA; BEQ 29$ CMPB R2,#S.EOL2 ;OR END OF LINE* BEQ 29$ ;WHEN FOUND, GO TO COMMON FINISH$ BR 28$ ;KEEP GOING TILL IT'S FOUND029$: SUB R4,(SP) ;REDUCE LENGTH STORED ON STACK, MOV (SP)+,R4 ;AND POP ADJUSTED LENGTH -> R4,25$: DEC R1 ;BACK UP TEXT PTR TO TERMINATOR' BR 32$ ;AND BRANCH TO STORAGE SECTION2;.*;BINARY (OR INPUT LINE) FIXED AND VARIABLE;F30$: TST R4 ;MAKE SURE  BPL 33$ ;LENGTH IS POSITIVE  NEG R48+33$: CMP R4,LINELN ;DO WE HAVE ENOUGH BYTESS BLE 31$ ;IF SO, BRANCH) MOV LINELN,R4 ;ELSE USE JUST WHAT'S LEFTE+31$: SUB R4,LINELN ;ADJUST REMAINING LENGTHO032$: MOV (R5),R0 ;SET UP R0 (DATA ITEM ADDRESS) LDF -6(R5),AC0 ;AND OFFSETH JSR PC,STOSTR ;STORE IT% CCC ;MAKE SURE EVERYTHING LOOKS OK599$: RTS PC ;AND RETURN 98$: INPERRT < .SBTTL COM00 - COMMON EXPRESSION HANDLER FOR READ AND INPUT;I ; ON ENTRY: ; R1 IS TEXT PTR;T ; ON EXIT:!; R1 POINTS PAST END OF STATEMENT #; 'V' SET IF ERROR IN VARIABLE LIST ; STACK ON EXIT:; DATA PTR (1 WORD)R; DATA TYPE (1 WORD); OFFSET (2 WORDS)L ; DATA PTR ; DATA TYPE;; OFFSET; .L; .; .V; NULL; SP -> PTR TO START OF LIST;;; OTHER REGISTERS USED: POTENTIALLY ALL (INCL FLOATING PT.) ;ACOM00:0 LDCIF SP,AC2 ;MARK WHERE START OF LIST WILL BE% LDCIF (SP)+,AC3 ;SAVE RETURN ADDRESSE" STF AC3,AC5 ;AND MOVE BOTH ITEMS STF AC2,AC4 ;OUT OF THE WAYT CLR R2 ;IN CASE OF ERROR&3$: JSR PC,GETHDR ;GET HEADER AND TYPE BVS 5$ ;ON ERROR, BRAN00 i1h4e5eddddCHT ;DSS1E .IF NDF,DEFVAR ;IF NO AUTOMATIC VARIABLE DEFINITION ;DSS1-> BNE 1$ ;VARIABLE EXISTS ;DSS1D JSR PC,NEWVAR ;NOT DEFINED....DEFINE IT ;DSS1N .ENDC ;DSS1U ;DSS1TG1$: BIT #1,LINEFL ;INPUT LINE IN PROGRESS? ;**-2  BEQ 2$ ;IF NOT, BRANCH' CMP R0,#10 ;IF SO, DO WE HAVE STRING?. BNE 5$ ;IF NOT, ERRORM(2$: CLR -(SP) ;SPACE FOR HEADER ADDRESS MOV R0,-(SP) ;SAVE DATA TYPE ' JSR PC,GTOFFS ;GET OFFSET FOR VARIABLE,# MOV R3,2(SP) ;STORE HEADER ADDRESS  STF AC0,-(SP) ;AND OFFSET SKIP ;NEXT CHAR -> R2 CMPB R2,#', ;COMMA? BEQ 3$ ;IF SO, GO AROUND AGAIN#5$: CLR -(SP) ;SET LIST END MARKER + LDF AC4,AC2 ;LET'S GET BACK START OF LIST ! LDF AC5,AC3 ;AND RETURN ADDRESSS* STCFI AC2,-(SP) ;CONVERT START TO INTEGER2 STCFI AC3,-(SP) ;AND ALSO RETURN ADDRESS ON STACK! JSR PC,EOSCHK ;END OF STATEMENT?  BEQ 4$ ;IF SO, BRANCHD SEV ;ELSE SET ERROR CODEV4$: RTS PC ;AND RETURNF ;; ; ROUTINE EOSCHK%; TO CHECK FOR LEGIT END OF STATEMENT ;S ; ON ENTRY:;; R2 HAS CHAR TO BE CHECKEDR; ; ON EXIT:; 'Z' SET IF END; 'Z' CLEAR IF NOT END CHARN;$; OTHER REGISTERS USED: NONE; EOSCHK:4* CMPB R2,#S.EOS1 ;END OF STATEMENT PROPER?" BHIS 1$ ;IF SO, SUCCESS (BRANCH) CMPB R2,#S.ELSE ;AN ELSE TOKEN? BEQ 1$ ;IF SO, ALSO ENDL CMPB R2,#S.EXC ;COMMENT? BEQ 1$ ;IF SO, ALSO ENDE CCC( RTS PC ;RETURN WITH NO COND. CODES SET1$: CCCC+ SEZ ;INDICATE SUCCESS (END OF STATEMENT)T RTS PC ;AND RETURN) .SBTTL READ00 - READ STATEMENT PROCESSORY;+3 ; .SKIPA ; .X ^^READ\\R ; .X ^^DATA\\: ; .HEADERLEVEL 1 R5T( MOV R5,SP ;WHICH IS START OF OLD STACK ADD #2,SP ;IF YOU ADD 2  DEC R1S JMP INIT02 ;BACK TO THE BOSS'5$: MOV ENDTXT,R3 ;FIND THE UPPER LIMITE56$: CMPB #S.EXC,(R1) ;ARE WE ENTERING COMMENT FIELD ?N BNE 61$ ;NOF BIS #2,DATASK ;YES SET FLAG% BR 65$ ;AND CAN SKIP FURTHER CHECKSN(61$: CMPB #S.REM,(R1) ;OR REMARK FIELD ? BNE 62$ ;NO  BIS #2,DATASK ;YES, SET FLAGV! BR 65$ ;AND SKIP FURTHER CHECKST562$: CMPB #'",(R1) ;OR ENTERING/LEAVING QUOTE FIELD ?( BNE 64$ ;BR IF NOT- BIT #1,DATASK ;ARE WE ALREADY IN QUOTE FIELDD BEQ 63$ ;NO,- BIC #1,DATASK ;YES, SHOW EXITING QUOTE FIELDK BR 65$ ;AND SKIP FURTHER TESTS-63$: BIS #1,DATASK ;SHOW ENTERING QUOTE FIELD BR 65$ ;AND SKIP FURTHER TESTS.64$: CMPB #S.EOL1,(R1) ;FINALLY, END OF LINE ? BNE 65$ ;BR IF NOT( CLR DATASK ;YES, CLEAR SKIP DATA FLAGS165$: CMPB #S.EOL2,(R1) ;OR END OF PHYSICAL LINE ?T BNE 651$ ;BR IF NOTK( CLR DATASK ;YES, CLEAR SKIP DATA FLAGS9651$: TST DATASK ;SHOULD WE NOT TRY FOR DATA STATEMENT ?T BEQ 66$ ;NO, DO CHECKY& INC R1 ;YES, JUST SKIP THE00(i>hg = _ TO _ [STEP _]\\T; .FILLNH; ^THIS STATEMENT SETS UP AND CONTROLS EXECUTION OF A ^^FOR-NEXT\\ LOOP.'; ^ANY NUMERIC EXPRESSIONS MAY BE USED.,<; ^THE VARIABLE MUST BE, HOWEVER, A SIMPLE FLOATING VARIABLE; (NO SUBSCRIPT). ; .FG 1,F; ^THE STATEMENTS FOLLOWING THE ^^FOR\\ STATEMENT UNTIL THE ASSOCIATED'; ^^NEXT\\ STATEMENT COMPRISE THE LOOP.R>; ^THE LOOP BEGINS WITH THE VARIABLE SET EQUAL TO ^^EXP1\\ ANDG; CONTINUES BY INCREMENTING THE VARIABLE BY ^^EXP3\\ (DEFAULTED TO ONE)BF; UNTIL IT REACHES OR PASSES THE VALUE OF ^^EXP2\\ (THEREFORE THE LOOP; MAY NOT BE EXECUTED AT ALL).E; ^FINAL VALUE OF THE VARIABLE IS ITS VALUE THE LAST TIME THROUGH THEE; LOOP. ; .NOTEH:; ^CHANGING THE VALUE OF THE VARIABLE WITHIN THE LOOP WILL2; AFFECT THE NUMBER OF TIMES THE LOOP IS EXECUTED. ; .ENDNOTE ; ^EXAMPLE: ; .NOFILLS; ^^; {40 FOR I=1 TO 5.5 STEP .5}L#; {100 FOR J1=-.1 TO -1.5 STEP -.1}L; \\; .FILLD;-; REGISTERS USED - ALL.; 1FOR00: JSR PC,GETHDR ;GET CONTROL VARIABLE HEADERT BVS FOR99 ;ON ERROR, BRANCH T ;DSS1E .IF NDF,DEFVAR ;IF NO AUTOMATIC VARIABLE DEFINITION ;DSS1C> BNE 1$ ;VARIABLE EXISTS ;DSS1D JSR PC,NEWVAR ;NOT DEFINED....DEFINE IT ;DSS1N .ENDC ;DSS1U ;DSS1T@1$: SKIP ;GET NEXT CHAR ;**-26 CMPB R2,#'= ;IS IT EQUAL SIGN (SIMPLE VARIABLE ONLY) BNE FOR99 ;IF NOT, ERROR BIT #10000,(R3) ;IS IT VIRTUAL? BNE FOR99 ;ALSO ILLEGAL IF SO1# CLR -(SP) ;SET UP A SLOT ON STACK ' MOV R4,-(SP) ;AND SAVE VARIABLE HEADERE, DEC R1 ;BACK OFF TO EQUAL SIGN SO THE NEXT$ ;SUBROUTINE DOESN'T GET CONFUSED/ JSR PC,GTOFFS ;AND GET OFFSET (R0 HAS ADDRESS) . SKIP ;NOW POINT TO NEXT NON-BLANK AFTER '='&FOR02: MOV R0,2(SP) ;SAVE DATA ADDRESS& MOV (SP),R4 ;RESTORE VARIABLE HEADER. JSR PC,SCHFOR ;SEE IF WE HAVE A CONTROL BLOCK BEQ FOR03 ;IF NOT, BRANCHB# JSR PC,DELFOR ;IF SO, GO DELETE IT,"FOR03: MOV #20,R0 ;CHECK FOR ROOM TSTOK BHIS 1$ ;IF OK, BRANCH OVFERRL/1$: MOV STGOSB,R2 ;START OF BLOCK TO MOVE -> R2A" MOV STFONX,R3 ;END OF BLOCK -> R3( JSR PC,SLDN ;SLIDE IT DOWN BY R0 BYTES SUB R0,STGOSB ;ADJUST POINTERSE SUB R0,STFONX1 MOV STFONX,R3 ;R3 HAS START OF NEW CONTROL BLOCKT9 MOV (SP)+,(R3) ;GET SIXBIT NAME FROM STACK TO CTRL BLOCK46 MOV (SP)+,R0 ;STORAGE ADDRESS FOR CTRL VARIABLE -> R0 MOV R0,6(R3) ;STORE IT AWAY SUB STUDAT,6(R3) ;AS OFFSET% MOV LINENO,2(R3) ;SET UP LINE NUMBER#& MOV STCOUN,4(R3) ;AND STATEMENT COUNT& MOV R3,-(SP) ;SAVE CTRL BLOCK ADDRESS( MOV R0,-(SP) ;AND CTRL VARIABLE ADDRESS! EVAL ;GET THE STARTING FORMULAR MOV (SP)+,R0 ;DESTINATION" STF AC0,(R0)+ ;PUT AWAY THE VALUE SKIP ;NEXT CHAR -> R2 CMPB R2,#S.TO ;IS IT 'TO' TOKEN BNE FOR99 ;NOM EVAL ;YES% STF AC0,-(SP) ;PUT ENDING VALUE AWAYC SKIP ;GET NEXT CHAR CMPB R2,#S.STEP ;IS IT STEP?  BEQ 2$ ;IF SO, BRANCHI DEC R1 ;ELSE BACK UP LDCIF #1,AC0 ;SET DEFAULT STEP' BR FOR04 ;AND SKIP EVALUATION OF STEPD#2$: EVAL ;EVALUATE THE STEP VALUE &FOR04: LDF (SP)+,AC1 ;GET ENDING VALUE0 MOV (SP)+,R3 ;RESTORE START OF CTRL BLOCK -> R3# STF AC1,14(R3) ;STORE ENDING VALUES( STF AC0,10(R3) ;PUT THE STEP VALUE AWAY8FOR06: JSR PC,CHKFOR ;GO CHECK IF AT END OF LOOP ALREADY BGE FOR12 ;IF NOT, GO EXECUTE05 MOV (R3),-(SP) ;SAVE SIXBIT VARIABLE NAME FOR FUTURE( JSR PC,DELFOR ;DELETE FOR CONTROL BLOCK' BR FOR09 ;AND GO LOOK FOR EN000i1h4e5eddddD OF LOOPL(FOR12: JMP INIT02 ;GO DO NEXT STATEMENT FOR99: FORERRU;FOR09: MOV BOLNHD,R3 ;SET UP TO LOOK IMMEDIATELY FOR END OFL8 MOV LINEHD,R5 ;LOOP (FOR LOOP IS OVER BEFORE IT STARTS)FOR10: SKIP ;NEXT CHAR -> R2! CMPB R2,#S.NEXT ;IS IT A "NEXT"?A! BEQ FOR11 ;IF SO, GO LOOK AT IT) JUNKIT ;IF NOT, SKIP REST OF STATEMENT ! CMPB (R1)+,#S.EOL2 ;END OF LINE?G0 BNE 2$ ;IF NOT (JUST END OF STATEMENT), BRANCH' SUB #4,R5 ;GET NEXT LINE HEADER -> R5F CMP R5,R3 ;PAST END? BHIS 1$ ;IF NOT, CONTINUEL* NXTERR ;IF SO, ERROR (FOR WITHOUT NEXT)*1$: MOV 2(R5),R1 ;START OF NEXT LINE -> R1 ADD USR,R1 ;ADD IN OFFSETE$ MOV #1,STCOUN ;INIT STATEMENT COUNT BR FOR10 ;AND KEEP LOOKING 2$: INC STCOUN ;PUSH ON IN LINE BR FOR10 ;AND KEEP LOOKING FOR11: GETVARI" CMP R4,@SP ;IS VARIABLE CORRECT?) BNE FOR16 ; LOOP UNTIL FOUND OR FAILURES TST (SP)+ ;WE-UNS IS HERE BOSS FOR15: DEC R1O* MOV R5,LINEHD ;UPDATE CURRENT LINE HEADER MOV (R5),LINENO ;AND LINE # BR FOR12 ;AND IS DONEI,FOR16: CMPB R2,#', ;LOOK FOR FORM: NEXT I,J BEQ FOR11 ;IF SO, TRY AGAIN1( BR FOR10 ;ELSE CONTINUE REGULAR SEARCH 5 .SBTTL NEXT00 - NEXT STATEMENT TO TERMINATE FOR LOOPO;+3;; .SKIPL ; .X ^^NEXT\\ ; .HEADERLEVEL 1 \\; .FILLR2; ^THIS STATEMENT TERMINATES THE LOOP BEGUN BY THE); IMMEDIATELY PRECEDING ^^FOR\\ STATEMENTO; WITH THE SAME VARIABLE NAME.E; ^A CONCATENATED FORM OF TWO AC1 SUBF AC0,AC1 ;TERM-NEW -> AC1)( DIVF 10(R3),AC1 ;(TERM-NEW)/STEP -> AC1 CFCC ;COPY CONDITION CODES, BMI NEXT01 ;IF PAST TERMINAL VALUE, BRANCH! STF AC0,(R0) ;PUT BACK NEW VALUER MOV 2(R3),R0 ;LINE # -> R0E* MOV 4(R3),-(SP) ;STATEMENT COUNT ON STACK FINDLN ;FIND WHERE IT BELONGS$ MOV (SP)+,R2 ;STATEMENT COUNT -> R28 JSR PC,STFIND ;FIND PLACE IN LINE (PRINT TRACE MESSAGE)) JMP INIT03 ;AND CONTINUE IN INTERPRETERB"NEXT99: NXMERR ;NEXT WITHOUT FOR$NEXT01: MOV R2,-(SP) ;SAVE NEXT CHAR! JSR PC,DELFOR ;DELETE CTRL BLOCK& CMPB (SP)+,#', ;IS NEXT CHAR A COMMA?% BEQ NEXT00 ;IF SO, START CHECK OVERN DEC R1 ;BACK UP TEXT PTR% JMP INIT02 ;AND CONTINUE PROCESSING ;U3; ROUTINE TO SEARCH FOR A GIVEN FOR/NEXT CTRL BLOCKT ; ON ENTRY: ; R4 HAS SIXBIT NAME; ; ON EXIT:; R4 UNCHANGED; 'Z' SET IF NOT FOUND, R3 = 00; 'Z' CLEAR IF FOUND, R3 = ADDRESS OF CTRL BLOCK;; OTHER REGISTERS USED: NONE;E>SCHFOR: MOV STFONX,R3 ;START OF FOR/NEXT CTRL BLOCK AREA -> R31$: CMP R3,STUFDB ;AT END YET? BHIS 3$ ;IF SO, BRANCH% CMP R4,(R3) ;IS THIS THE RIGHT ONE?B BNE 2$ ;IF NOT, BRANCH CLZ ;IF SO, INDICATE SUCCESST RTS PC ;AND RETURN'2$: ADD #20,R3 ;ADD SIZE OF CTRL BLOCKS/ BR 1$ ;SO WE POINT TO NEXT ONE AND LOOK AGAINY3$: CLR R3 ;INDICATE FAILURE  RTS PC ;AND RETURN;); ROUTINE TO DELETE A FOR/NEXT CTRL BLOCK ; ON ENTRY:='; R3 POINTS TO CTRL BLOCK TO BE DELETEDT ; ON EXIT:; R3 UNDETERMINED ; OTHER REGISTERS USED: R0,R2R;L7DELFOR: MOV STGOSB,R2 ;START OF BLOCK TO BE MOVED -> R2  MOV #20,R0 ;AMOUNT TO MOVE UP  JSR PC,SLUP ;GO SLIDE IT UP; ADD R0,STGOSB ;ADJUST PTRS, ADD R0,STFONX RTS PCP;;5; ROUTINE TO CHECK ON FINISHED/NOT FINISHED CONDITIONB; OF FOR/NEXT LOOP. ; ON ENTRY:L"; R3 POINTS TO FOR/NEXT CTRL BLOCK ; ON EXIT:; R3 UNCHANGED8; 'Z' SET IF CTRL VARIABLE AT END VALUE, CLEAR OTHERWISE:; 'N' SET IF CTRL VARIABLE PAST END VALUE, CLEAR OTHERWISE3; R0 HAS ACTUAL STORAGE ADDRESS OF CONTROL VARIA008i 9ig AC0M, MOV 6(R3),R0 ;OFFSET OF CTRL VARIABLE -> R0& ADD STUDAT,R0 ;MAKE IT ACTUAL ADDRESS1 SUBF (R0),AC0 ;TERM VALUE - CURRENT VALUE -> AC0H, DIVF 10(R3),AC0 ;(TERM-CURRENT)/STEP -> AC0 CFCC ;COPY CONDITION CODESO RTS PC ;AND RETURN .ENDI;; R3 UNCHANGED8; 'Z' SET IF CTRL VARIABLE AT END VALUE, CLEAR OTHERWISE:; 'N' SET IF CTRL VARIABLE PAST END VALUE, CLEAR OTHERWISE3; R0 HAS ACTUAL STORAGE ADDRESS OF CONTROL VARIAz 8Dy:@y:@u""@T[""@Iq""@y:Ё@fh@K""@y:@y:΁@y:с@AI@:2@zy"&@4{2@<&@R`""@){%@ 0@<@8@,N@)sE@o =@vL< @.{`@&:""@%{M@oMg'@z#w""@y0@vL @nL`@""@&{P@vL.!@3{(@ya@u@J@""@V[""@Aw@gq""@zvL!@X@:}@%{_@sw@:d""@%{_@:""@:a @)G@( @n 0@xh@f}@0@zt!y@yO@)2H@&@&@y`@hq""@.{#@'""@e;@""@y2@ ~@lhu:@:""@z.Ps@:""@n^@%{`@4{]@f""@@X@t@""@:""@v~ g@)t @ձ@|@z2{H!@y`@M[""@N*@59Ps@d0@s%@ z""@[g6@/{p@.{%@+0@'{`@`}@t!Ԁ@z'{`@<C @o N*@f0@_M0@t @;K}@>M""@:@${a @\q""@!{ X@l g@<&(@)%@zf΁@U@xW@3{@fN\@'""@fO\@ak@_X@ @y""@gN*@zy΁@6a""@)Ps@z:@\` U@xd@r0@Bx@%{x@:0@3{L @`;@'N@}""@""@ehp@:d N@^@z:@g'@w0@6x$@3{}@!<@3{V&@&'@oMY@#N*@y""@&{W@ ""@y<@ z 8`,2h ,Zh ,.bh,.bh,.bhB,.bhUq0hJ'0hK0h yyh N9h `X΁hu0h0hzt hyhV! hs0hhsXh_΁hfh:Xhp:0hxyh "OhyZh\ Iqh.0h+.NhZ[q0h,yh [}h \q0h6.&h "{hVyhh_Xhh yhh:h  8R  Z 7 7|:a t n^ :t n^ t  v~ g":}&l g(`},N*0Z4f08fN\<N*@XDswJ^Nt!yN7 wSTOP AT LINE G7  Е" !ДЕ" w  tvL!;K} vL!y:΁"s%(U,vL!0xh4%{`@:NBxTBx`d|h_Xlp|tvL!x&G .wHH w& @777 7   hUy: "6a""&y`*vL!.ya2y`H>M""Zy<^XbvL!hvL!nvL tvL x&~s%F 7 w   A   BRANCH TO LINE STMT  ^s%g'ya y:,.Ps0fN\48f0>fO\BFf0JyaPfO\TN*v.Ps~xh  , ~%ww # 5 fe  w7  V'{` '{`""xh$%{`.'{`   ewew&  W ~f Bw #i daP& y`$y:с*y`0\q""6ya>xhF%{MNAITg'bvL!hvL nxh&& & [& p5R2t E&e F@a7  ~2 \5 /& +fv(8 @!<hu6 e   UU  ~w , w  && & , U&&>yO 8!<o =xho =xhDuLu\xh`&{Wf,Nvxh& 7 (/C (& #$U  ), = sw Bw \y< y0!<[g6$[g6([g62,NBxhH[g6\xhjJp!<tAIzy:с|"" n  + -  (& && f     %f@ U2  [g6xh*xhJ!<RxhV^vsv Ue) e @B @  )     )+-*/^ "$,T:d""j6a""wf E" `  7 ` &   '  JgN*xh$3{L *3{By:H.{%T!<Zy:`!<f&{Wn 0xo N* .  U`  Hf n   JxXhhhbJ  &  BP ,Ny<y0.:d""0&:""4xh8%{`PXRhThVhXbZJ \V[""p!< f&5     w `w j Ք E8 y<y04xh< H!<R V6a""`!<d!<w ¥) ¥, wZ m E & ;fff Ew `',!< xh&:""2JR!<^ t!<~ (E`5UՔ~f + E  E` 8 2xhB!<T!<\6a""`xhh3{(n3{V&zy:&  %  h "C W"W  녗$ ( U  8&{W 0H%{_R}""T""X,Ndxhny<xy0v f  )  & $ % &  U U U@ 5&&:""xh:d""0,Njy<ny0 StE& (>   &&  v & ,, d)&    Ԃ#  p`xh4 Bxhn p`% e  s  (# & , V3 @3 y<&#w""( z""Lxh`xh @@B@ &f U E &weD f&V h, p& $#w""& z"">y2l)%|)2Hf &    & EspQ ee0e & & l)G ձ)Ps`; )Ps>&{PJ:d Nfh Ny""R""\)sE`&{Pb)sEh)sEt)2Hz)2H    f x   & *  tE 5m& `f@)G e;)Ps`; )Ps2 4 6 8& :* jy<|V[""^ &@ xp x |    f 25  ĜE  `&E%5p x |    m& &`f& 5EDa &  2 "&   Da y<V[""V Ҕ B& & C    w   " & 4& = " " < D!<L6a""rxh V | p w& E(0 `$ {(04<B@ B @xU EF$y:Ё&""(:d""*K""0xh>.{`R.{`X(Z0\4^<`BxxhN& &  )  &&   %&& a Ew u2!{ X /{p&xh.:d""<:d""\!<l!<|!<& D!  D  555 ;B00 Hi Oigb vL Jxh(%{_0%{`8ya l V NH  &``~  f  e    ,vL< "`}2f""P( Vf0fvL< l`}- e•   l 7 w  !”   zބ fJ `} l g"f΁.f""vL.!LNPRT &@5 E  C !  B, &B,  B,   7!7,&vL< :%{_N%{_^%{_tvL.!zvL.!~vL.!@5 F  5  & & & ,& &:"".vL< Hxhf%{`l%{Mr%{x7 fmWW, A wFe wɥUɥUɥ" 5\vL< Iq""<@8J"J&%{_hq""Nxhhxh 773& J  8&   Vs 3 \ 6a"" y`y`xWy`y` y`,y<2vL!8yaJxhN4{]Zxh^3{} w  W C!Am  ! ww, H t3by:Ё'""XvL xh .{#&AI*%{_6T["">JDyaJyaP,N\vL `vL!n,Ns @s   :w (, w  !e  7`7`3 mD &*y:с,M["">y:ЁBy`Fy"&^y`fxdjy`ny`|y< 3xWy`y` y`,y<2vL!8yaJxhN4{]Zxh^3{} w  W C!Am  ! ww, H t3by:Ё'""XvL xh .{#&AI*%{_6T["">JDyaJyaP,N\vL `vL!n,Ns @s   :w (, ;********* ; * ; BASIC3 * ; * ;*********;S'; PCK00 - GET A LINE FROM INPUT DATASETE;-; PACK - PCK00 GET A LINE FROM INPUT DATASETH3; USE OLD DEVICE IF INITIALISED, OTHERWISE TERMINALH;R#; PRNT00 - OUTPUT CHARACTER OR LINER;I*; PRINTC - PRNT00 OUTPUTS CHARACTER IN R21; ON SAVE DEVICE IF INITED, OTHERWISE ON TERMINALS;T; ; CRLF00: /; PRNT01: SUBROUTINE TO PRINT OUT A LINE BUFFER4; WHICH HAS BEEN ACCUMULATED ; ON ENTRY:S!; OTPT IS PTR TO DEVICE FOR PRINTA ; ON E00 Pi1h4e5eddddXIT:; LINE PRINTED; BUFFER PTRS INITIALIZED*; REGISTERS USED: NONE; ; BREAK - WRITE PASS ALL COMMAND.; CLOS00 - CLOSE OPEN DATA SET (NON USER DATA); ,; CLOSEF - CLOS00 CLOSES ANY OPEN DATA SETS;H; CLEAR0 - CLEAR USER DATA AREA 0; CSINT0 - SET UP FOR COMMAND STRING INTERPRETER-; CSINT0 - COMMAND STRING INTERPRETER ROUTINEN ; ON ENTRY:T$; R0: ZERO IF NO STRING TO INTERPRET; R2: ADDRESS OF SWITCH TABLE ; R3: ADDRESS OF STRINGD; R4: LENGTH OF STRING;T.; TST00 - TEST ALPHABETIC VS NUMERIC CHARACTER;1; TSTCH - TST00, TEST ALPHABETIC VS NUMERIC IN R2; REGISTERS USED - R2S%; 'V' SET IF NEITHER ALPHA OR NUMERICA; 'Z' SET IF NUMERIC;; PRN00 - PRINT A LINE OF ASCIIN;T(; PRINTL - PRN00 - PRINT A LINE OF ASCII<; R0 HAS STARTING ADDRESS, LINE IS TERMINATED BY A ZERO BYTE; REGISTERS USED - R0,R2.E O;N;1; SKIP00 - GET NEXT NON-BLANK CHARACTER IN BUFFER;2?; SKIP - SKIP00, SKIP OVER BLANKS IN WORKING STORAGE, R1 POINTSH/; TO LINE POSITION, CHARACTER FOUND GOES TO R2R; REGISTERS USED - R1,R2. ;0&; JUNK00 - SKIP OVER REMAINDER OF LINE;I.; JUNKIT - JUNK00, SKIP OVER REMAINDER OF LINE7; UNTIL STATEMENT TERMINATOR IS FOUND (S.EOS OR HIGHER)E#; R1 POINTS TO TERMINATOR ON EXIT.I; REGISTERS USED - R1.;S*; CLRU00 - CHECK FOR AND DELETE USER SPACE; @; CLRUSR - CLRU00, CHECK FOR EXISTENCE OF USER SPACE, AND DELETE'; IT IF PRESENT. REGISTERS USED - R5.P;S-; PUSH00 - PUSH ONE WORD IN R0 ONTO USER LISTP;T9; PUSH - PUSH00, PUSH ONE WORD IN R0 ON USER STORAGE LISTI/; IF ENDTXT=0 ON ENTRY, SAVE R5 IN ENDTXT FIRSTM*; IF R5 IS ODD, MOVE TO NEXT EVEN BOUNDARY/; R5 IS UPDATED WHEN ITEM IS PLACED ON THE LISTT; REGISTERS USED - R0,R5.R;<; SRL00 - SEARCH USER STORAGE (FOR ITEM OF CLASS TYPE IN R4);B; SRLST - SRL00, SEARCH USER STORAGE FOR THE FIRST ITEM HAVING THE=; CLASS AS SPECIFIED IN R4. THE ADDRESS OF THE FOUND ITEM IS A; RETURNED IN R3. UPON ENTRY, R3 MUST POINT TO THE START ADDRESSR-; OF THE LIST. REGISTERS USED - R0,R2,R3,R4.03; AND R0 IS A MASK OF BITS TO IGNORE IN THE HEADER.R;N'; ARYL00 - COMPUTE NUMERIC ARRAY LENGTHE;E ; ON ENTRY:2; R0 HAS DATA TYPE (0=REAL*4, 2=INTEGER*2, 4=BYTE) ; R3 POINTS TO CURRENT DATA ITEM; ; ON EXIT:5; R0 HAS LEN OF ITEM ROUNDED UP, BUT EXCLUDING HEADER ; R3 AS ABOVES;S; OTHER REGISTERS USED: R1;G;E-; STRL00 - COMPUTE LENGTH OF STRING DATA ITEMH;O ; ON ENTRY:!; R0 HAS INDIVIDUAL STRING LENGTHU; R1 HAS PACKED DIMENSIONS; ; ON EXIT:@; R0 HAS TOTAL LENGTH OF STRING ROUNDED UP, BUT EXCLUDING HEADER O;I6; SCR00 - DELETE BYTES FROM R3 TO R4 FROM USER STORAGE;EB; SCRNCH - SCR00, DELETE THE NUMBER OF BYTES FROM THE USER STORAGE7; SPECIFIED BY R4. R3 POINTS TO STARTING POINT FOR THE0&; DELETION. REGISTERS USED - R2,R3,R4;H!; SQU00 - DELETE ONE LINE OF TEXT ;I>; SQUISH - SQU00, DELETE LINE WHOSE HEADER IS POINTED TO BY R5 ; ON ENTRY: ; R5 HAS POINTER TO LINE HEADERT ; ON EXIT:3; R5 = OLD R5 + 4 (POINTS TO PRECEDING LINE HEADER)S@; R1 POINTS TO INSERTION POINT FOR NEW LINE (WHERE OLD LINE WAS)+; OLD LINE HEADER AND LINE TEXT ARE DELETEDR; ENDTXT AND BOLNHD UPDATED0;E; SRCH00 - SEARCH FOR EOLO;H>; SRCHLF - SRCH00, SEARCH FOR EOL, POINTER IN R1, WHEN DONE R17; POINTS ONE BYTE AFTER THE EOL. REGISTERS USED - R1.Q; 8; FIND00 - SEARCH TEXT FOR LINE NUMBER (SPECIFIED IN R0); ; FINDLN - FIND00N5; SUBROUTINE TO FIND A GIVEN LINE IN THE PROGRAM TEXTA*; BY SEARCHING THROUGH LINE NUMBER HEADERS ; ON ENTRY:L; R0 HAS REQUIRED LINE NUMBERS ; ON EXIT:(; R1 HAS ABSOLUTE START OF LINE IF MATCH,; R1 HAS INSERTION POINT IN TEXT IF NO MATCH; R5 POINTS TO HEADER IF MATCH1; R5 POINTS TO HEADER INSERTION POINT IF NO MATCHC; 'Z' SET IF MATCH; 'Z' CLEAR IF NO MATCHI; R0 UNCHANGED; OTHER REGISTERS USED: R2;1(; GETV00 - GET VARIABLE AND PACK INTO R4;RE; GETVAR - GETV00, GET A VARIABLE AND PACK IT IN TRUNCATED ASCII INTON8; R4. ON RETURN R4 HAS VARIABLE, R2 HAS NEXT CHARACTER.; REGISTERS USED - R1,R2,R4.;H,; DIMC00 - CHECK RANGE OF DIMENSIO00 XiOig; OVERLAY - ADD PROGRAM LINES FROM FILE AND OPTIONALLY EXECUTE;E*; TSTU00 - CHECK FOR USER STORAGE OVERFLOW;U:; TSTOK - TSTU00, CHECK FOR POSSIBLE USER STORAGE OVERFLOWB; R0 HAS NUMBER OF BYTES TO ENTER. REGISTERS USED - R0,R3,R4,R5.;N; SCRA00 - DELETE A FILE/; FNAME - CHECK STRING EXPRESSION FOR FILE SPECI#; ON ENTRY R1 CONTAINS TEXT POINTERD); ON EXIT FOLLOWING REGISTER ASSIGNMENTS:E8; R0: ZERO IF NO STRING TO INTERPRET, OTHERWISE = OLD R1; R1: TEXT POINTER.; R2: ZERO TO INDICATE NO SWITCH TABLE FOR CSI8; R3: ADDRESS OF STRING IN STRING WORK AREA (FROM EVALS)7; R4: LENGTH OF STRING IN STRING WORK AREA (FROM EVALS) ;C'; OPEN00: COMMAND PROCESSOR (FILE OPEN)R"; CLOS00 - USER FILE CLOSE ROUTINE;E;U; ROUTINE DELFDB?; TO DELETE SPACE FOR BASIC FDB (INCL BUFFER AND POINTERS ETC.) ; ON ENTRY:I ; R3 POINTS TO FDB TO BE DELETED ; ON EXIT:; STUFDB,STGOSB,STFONX UPDATED; REGISTERS USED: R0,R2R; ;I2; ROUTINE SRCHFL - TO SEARCH FOR FILE WHOSE HEADER%; MATCHES R4 AND MASK TO IGNORE IN R0R(; PTR TO FCB -> R3 IF FOUND, 0 OTHERWISE;A?; FNMBR/FNMB00 - PROCESS FILE NUMBER, SETUP FILE BLOCK POINTERSM;A; PRLN00 - PRINT LINE NUMBER;S%; PRNTLN - PRLN00 - PRINT LINE NUMBERC; REGISTERS USED - R0,R1,R2.;E6; GET00 - GET LINE LIMITS FOR COMMAND (LIST OR DELETE);T6; GET00 - GET LINE LIMITS FOR COMMAND (LIST OR DELETE) ; ON ENTRY::"; R1 POINTS TO START OF PARAMETERS ; ON EXIT:*; R1 POINTS PAST END OF THIS SET OF PARAMS1; R3 HAS ADDRESS OF LOWEST LINE # HEADER IN RANGEO2; R4 HAS ADDRESS OF HIGHEST INCLUDED LINE # HEADER'; 'Z' SET IF NO LINES INCLUDED IN RANGEU&; OTHER REGISTERS USED: R0,R2,R5 (ALL) N;-;I; LIST00 - LIST THE SOURCE TEXTL!; REGISTERS USED - R1,R2,R3,R4,R5R;S;-+; SUBROUTINE TO PRINT OUT LINE WHOSE HEADER ; IS POINTED TO BY R5);T%; DEL00 - DELETE TEXT IN USER PROGRAM %; REGISTERS USED - R0,R1,R2,R3,R4,R5.I; (; INIT00, INIT02 - STATEMENT INTERPRETER;T.; PDP-11 BASIC - COMMAND/STATEMENT INTERPRETER$; REGISTERS USED - R0,R1,R2,R3,R4,R5;4;S;D;S%; ASSM00 - ASSEMBLE LINE OF USER CODEZ;ED; ASSEMBLE LINE OF CODE INTO WORKING STORAGE - TRANSFER TO USER AREA"; REGISTERS USED - R0,R1,R2,R3,R4.;R;T2; NOW DEFINE THE VERBS AND THEIR ROUTINE ADDRESSES;R9; SET - COMMAND TO SET UP MISCELLANEOUS SYSTEM CONDITIONSR ; EXIT STATEMENT (DOCUMENTATION); ON ERROR GOTOE2; IF END - RESET END-OF-FILE ERROR ROUTINE ADDRESS; SINGLE LINE STEP INSTRUCTION; PROGRAM CONTINUE; SLEEP COMMANDI3; WAIT0 - WAIT COMMAND - SPECIFY TIMEOUT PARAMETERS; PRI00 - PRIORITY COMMAND&; LOAD - USER ASSEMBLY SUBROUTINE LOAD; (; FORMAT FOR BASIC LOADABLE SUBROUTINES:; FIRST THREE WORDS:A; .WORD ID0001 ;THESE THREE WORDS ARE FILLED IN BY GLOBAL SYMBOLSR?; .WORD ID0002 ;FROM A SYMBOL TABLE FOR BASIC, ENSURING CORRECTT8; .WORD ID0003 ;SYMBOL LINKAGES (OR ELSE ERROR MESSAGE).; NEXT TWO WORDS ARE LENGTHS:O;; .WORD ?????? ;LENGTH (IN BYTES) OF CODE PLUS ENTRY POINTS1; .WORD ?????? ;LENGTH (IN BYTES) OF ENTRY POINTST!; .WORD ?????? ;# OF ENTRY POINTSR<; NEXT ENTRIES ARE THREE WORD BLOCKS DESCRIBING ENTRY POINTS4; .RAD50 /NAME/ ;TWO WORDS OF RAD50 ENTRY POINT NAME0; .WORD ?????? ;OFFSET FROM START OF CODE PROPER>; FINALLY, ONE WORD CONTAINING NUMBER OF WORDS OF CODE PROPER:-; .WORD ?????? ;LEN (IN WORDS) OF CODE PROPERW; ;; NOTE: THESE MODULES MUST BE TASK BUILT WITH /-HD/-FP AND:W ; STACK=0N ; UNITS=0W; D; IN ADDITION POSITION INDEPENDENT CODING TECHNIQUES MUST BE USED IND; WRITING THE CODE BECAUSE ITS POSITION IN THE INTERPRETER WILL VARY.; DEPENDING ON WHAT OTHER ROUTINES ARE LOADED. N; ;N;; UNLOAD - COMMAND TO UNLOAD ALL USER LOADED MACRO ROUTINESW; ; SLIDE UP ROUTINE SLUP 2; TO MOVE A BLOCK OF WORDS FROM LOW TO HIGH MEMORY ; ON ENTRY: ; R2 HAS START ADDRESS OF BLOCK ,00 `i bi4e5edddd; R3 HAS END ADDRESS (FIRST WORD PAST BLOCK)-; R0 HAS # OF BYTES TO MOVE UP (ASSUMED EVEN) ; ON EXIT:; R2 HAS OLD START ADDRESS; R3 HAS OLD START ADDRESS; R0 UNCHANGED; NO OTHER REGISTERS USED ;E;C; SLIDE UP ROUTINE SLUP01T2; TO MOVE A BLOCK OF WORDS FROM LOW TO HIGH MEMORY ; ON ENTRY:.; R2 HAS START ADDRESS OF BLOCKT,; R3 HAS END ADDRESS (FIRST WORD PAST BLOCK); R4 HAS NEW END (TOP) ADDRESS ; ON EXIT:; R2 HAS OLD START ADDRESS; R3 HAS OLD START ADDRESS; R4 HAS NEW START ADDRESS;H;E; SLIDE DOWN ROUTINE SLDN ; ON ENTRY:H; R2 HAS START ADDRESS OF BLOCK ; R3 HAS END ADDRESS; R0 HAS # OF BYTES TO MOVE3 ; ON EXIT:; R2 HAS OLD END; R3 HAS OLD END; R0 UNCHANGED; NO OTHER REGISTERS USEDI;S;0; SLIDE DOWN ROUTINE SLDN01S ; ON ENTRY:H; R2 HAS START ADDRESS OF BLOCKS; R3 HAS END ADDRESS; R4 HAS NEW START ; ON EXIT:; R2 HAS OLD END; R3 HAS OLD END (UNCHANGED); R4 HAS NEW END;S;D START ADDRESS; R3 HAS OLD START ADDRESS; R4 HAS NEW START ADDRE ;********* ; * ; BASIC3 * ; * ;********* .TITLE BASIC3;?; OBJECT MODULE FOR PART 1 OF MAIN BASIC INTERPRETER 6 JUNE 72;G; DOS VERSION FROM WHICH THE RSX VERSION EVOLVED WAS ORIGIANLLY A DECUS;; LIBRARY PROGRAM MODIFIED BY FRANK KORZENIEWSKI OF RPSLMC.; ; MODIFIED FOR USE UNDER RSX-11D; BY: LARRY SIMPSON; MICHAEL REESE MEDICAL CENTER; JULY-OCTOBER 1975;;3; MODIFIED FOR IMPLIED LET AND ^Z ON INPUT 6-APR-76;; FEATURES CURRENTLY SUPPORTED:-; 1. PROGRAM (FILES-11) SAVE VIA SAVE COMMAND*.; 2. PROGRAM (FILES-11) RECALL VIA OLD COMMANDA; 3. PROGRAM (FILES-11) EXECUTE VIA RUN COMMAND (ALLOWS CHAINING)$; 4. IMMEDIATE MODE MCR PRINT VIA ?; 5. MULTI-USER WITH PURE AREA; 6. ^B BREAK FEATUREO6; 7. FILES-11 SEQUENTIAL DATA FILES VIA OPEN STATEMENT*; 8. IMPLIED LET (BUT NOT IN IF STATEMENT)=; 9. FILES-11 RANDOM ACCESS FILES VIA OPEN AND INPUT OR PRINT1; 10. GENERALIZED ONE LINE USER DEFINED FUNCTIONS; A) ANY # OF ARGSE6; B) RECURSIVE -> ONE FCN DEFINED IN TERMS OF ANOTHER; C) STRING AND NUMERIC ARGS14; D) LETTERS FN & VARIABLE NAME (NUMERIC OR STRING)&; E) NUMERIC OR STRING VALUE RETURNED5; 11. PRESERVATION OF USER DATA UNLESS EXPLICIT CLEARI!; 12. IMPLIED LET IN IF STATEMENTO); 13. PROGRAM CHAIN STATEMENT (30-SEP-76)P*; 14. PROGRAM OVERLAY STATEMENT (1-OCT-76); 15. ON ERROR GOTO (15-DEC-76)M; 16. BINARY I/O6; 17. GOSUB - RETURN IN MIDDLE OF MULTI-STATEMENT LINE); 18. FOR - NEXT LOOPS NESTED ON ONE LINE=; 19. DEFAULT PROGRAM FILE NAME, EXTENSION AND DEVICE CHANGEDT*; BY OLD, CHAIN, RUN, OVERLAY (31-MAR-77).; 20. WAIT STATEMENT ADDED (TIME OUT ON INPUT)+; 21. CTRL-C AST FOR PROGRAM STOP 11-MAY-77O; 22. PRIORITY STATEMENTG; 23. ONE BYTE TOKEN REPLACEMENT FOR FCNS + OTHER KEY WORDS - 24-JUN-77N3; 24. SAVE + RECALL OF COMPILED PROGRAM - 29-JUN-77T"; 25. IF END STATEMENT - 22-JUL-77'; 26. LOADABLE ASSEMBLY ROUTINES OCT-77N,; 27. LINE HEADERS WITH BINARY SEARCH MAR-78; 28. TRACE FEATURE MAR-78; 29. VIRTUAL ARRAYS MAY-78I; 30. CONTINUED LINES JULY-78H; 31. IF-THEN-ELSE SEP-78U6; 32. WRITE PASS ALL AND OTHER TERMINAL CONTROL NOV-78U; ;DSS1U; ;DSS1RU; MODIFIED FOR FPP EMULATION (CONDITIONAL ON FPPEMU) ;DSS1BU; FPPEMU DEFINED (OR NOT) IN ASSEMBLY PREFIX FILE ;DSS1 U; BY DANIEL STEINBERG 18-JAN-79 ;DSS1TU; ;DSS1 U; MODIFIED TO FORBID WILD CARDS IN FILE SPECS (THEY USED TO ONLY MATCH ;DSS1 U; THE FIRST OCCURRENCE OF A FILE (WHICH DEPENDS ONLY ON THE ORDER IN THE ;DSS1RU; DIRECTORY FILE....NOT A GOOD THING TO COUNT ON) 18-JAN-79 ;DSS1NU; ;DSS1TU; MODIFIED TO STOP EXECUTI00 hiOig .MCALL EXTK$S ;EXTEND TASK DIRECTIVE ;DSS1N .ENDC ;DSS1- .IF DF,IASEXT ;OR IAS VERSION 3.2 ;FRB3.2C@ .MCALL EXTK$S ;EXTEND TASK DIRECTIVE ;FRB3.2P .ENDC ;FRB3.2 - .SBTTL PCK00 - GET A LINE FROM INPUT DATASETO;M-; PACK - PCK00 GET A LINE FROM INPUT DATASET.3; USE OLD DEVICE IF INITIALISED, OTHERWISE TERMINAL ; 3PCK00: MOV INPT,R2 ;GET FILE CONTROL BLOCK POINTER  MOV R0,-(SP) ;SAVE R0& CMP #TINPT,R2 ;IS THIS TERMINAL INPUT BNE PCK06 ;BR IF NOT! TST TCOUNT ;ANYTHING IN BUFFER?S BLE 3$ ;BR IF NOT.2 MOVB #'$,OUTQIO+Q.IOPL+4 ;PUT IN CARRIAGE CONTROL# TSTB WPASFL ;WRITE PASS ALL FLAG?  BEQ 5$ ;IF NOT, BRANCH0 CLRB OUTQIO+Q.IOPL+4 ;SET NULL CARRIAGE CONTROL> MOV #IO.WVB!TF.WAL,OUTQIO+Q.IOFN ;SET WRITE PASS ALL FCN CODE,5$: MOV #TOTPT,OTPT ;POINT TO TERM OUT BLOCK JSR PC,PRNT01 ;FORCE OUT STUFF.3$: CLEF$S #1 ;MAKE SURE MARK TIME FLAG CLEAR4 MOV #IO.RVB,INPQIO+Q.IOFN ;SET NORMAL READ FCN CODE! TSTB RPASFL ;READ PASS ALL SET?  BEQ 6$ ;IF NOT, BRANCH: BIS #TF.RAL,INPQIO+Q.IOFN ; SET READ PASS ALL SUBFCN CODE6$: TSTB ECHOFL ;ECHO SET?L BNE 7$ ;IF SO, BRANCH (NORMAL)9 BIS #TF.RNE,INPQIO+Q.IOFN ; SET READ NO ECHO SUBFCN CODEN7$: DIR$ #INPQIO ;DO THE READ BCC 4$ ;IF OK, BRANCHS JMP PCK14 ;ELSE REPORT ERROR 4$: TST WTMAG ;TIME OUT SPEC'D? BEQ 2$ ;IF NOT, SKIP MARK TIME& MRKT$S #1,WTMAG,WTUNIT ;SET MARK TIME.2$: WTLO$S 0,#3 ;WAIT FOR SOMETHING TO HAPPEN+ SUB #10,SP ;ALLOCATE SPACE FOR 4 WD BLOCKS MOV SP,R0 ;PTR TO BLOCK -> R0N! RDAF$S R0 ;GET THE 4 FLAG WORDST& MOV (R0),R0 ;GET FIRST FLAG WD -> R0 ADD #10,SP ;CLEAN UP STACK) BIT #1,R0 ;CHECK FOR FLAG 1 (MARK TIME)./ BEQ 1$ ;IF FLAG CLEAR, READ FINISHED - BRANCHN1 MOV #IO.KIL,INPQIO+Q.IOFN ;SET KILL READ REQUESTP DIR$ #INPQIO ;DO THE KILL * JSR PC,ATTACH ;AND NOW RE-ATTACH TERMINAL TMOERR ;ERROR TRAP (TIMEOUT)M 1$: CMKT$S #1 ;CANCEL MARK TIME MOV INPSTA,R1 ;IO STATUS -> R1A ADD #14,R2 ;UPDATE R2 ANDS% MOV INPSTA+2,R0 ;PUT AWAY THE COUNTT TSTB R1 ;ERROR?A! BMI PCK13 ;IF SO, PROCESS ERRORV* BR PCK15 ;ELSE PROCESS LINE SUCCESSFULLYPCK06: ADD #14,R2 ;& MOV (R2),R0 ;R0 CONTAINS FDB ADDRESS= GET$ ,-4(R2),-12(R2) ;GET RECORD WITH EXPLICIT RECORD BUFFERK BCC PCK02$ MOVB F.ERR(R0),R1 ;ERROR CODE IN R1PCK13: MOV (SP)+,R0 ;RESTORE R0A$ CMPB R1,#IE.EOF ;IS IT END OF FILE? BEQ 1$ ;IF SO, BRANCHM3 CMPB R1,#IE.PRI ;MIGHT BE READ PAST END OF RAN ACCO1 BNE PCK01 ;FILE, IF NOT PRIVILEGE ERROR, BRANCHI* BIT #2000,-16(R2) ;MAKE SURE RAN ACC FILE" BEQ PCK01 ;IF NOT, REGULAR ERROR-1$: CLR LINEFL ;IN CASE BINARY OR INPUT LINEFA BIC #LOWNOC,LOWFLG ;IN CASE READING TEXT WITH NO CASE CONVERSION( CMP #LNKOLD,R2 ;IS THIS EOF ON OLD D.S. BEQ PCK09 ;BR IF SOB) MOV 2(R2),R0 ;MAYBE SAVE EOF LINE NUMBER ! BNE PCK07 ;IF THERE, GO PROCESSA CMP #LNKTIN,R2 ;IS IT TERMINALF! BEQ PCK12 ;IF YES CHECK FURTHERP) ;ELSE DO ERROR WHICH CLOSES ALL FILES PCK08: EOFERR ;EOF ERROR# ;EOF IN RUN MODE WITH USER EXIT0!PCK07: MOV ENDSTK,SP ;RESET STACK FINDLN ;GO LOOK FOR ITR BNE PCK08 ;ERROR IF NOT FOUNDB JMP INIT13 ;ELSE GO PROCESSN!PCK12: TST RUNF ;ARE WE RUNNING?H BEQ PCK11 ;IF NOT, EXIT# JMP STOP00 ;ELSE, JUST STOP.-PCK11: CLRUSR ;DO CLEAR SO FILES GET CLOSEDE) EXIT$S ;WE GOTTA GET OUTA THIS PLACE..R;EOF ON OLD INPUT FILEPCK09: CLOSEF ;CLOSE OLD. CLR OLDFLG ;SHOW NORMAL END IF PROGRAM INPUT MOV ENDSTK,SP ;RESE00 xiOig R0W+PCK15: MOV -4(R2),R1 ;ADDRESS OF DATA IN R1N4 MOV R0,LINELN ;RECORD LINE LEN IN CASE "INPUT LINE"$ ADD R1,R0 ;CHAR AFTER RECORD IN R0 TST LINEFL ;DOING LINE?T, BEQ PCK03 ;IF NOT, CHECK LEGALITY OF CHARS) MOV R0,R1 ;ELSE POINT R1 TO END OF LINE1) BR PCK05 ;AND DO END OF LINE PROCESSING:!PCK03: CMP R0,R1 ;END OF STRING?  BLE PCK05 ;IF SO BRANCHL' CMPB #'",@R1 ;TEXT STRING IN SOURCE ?O BNE 2$ ;IF NOT IGNORE:: BIT #LOWNOC,LOWFLG ;DOING INPUT WITH NO CASE CONVERSION ?& BNE PCK04 ;IF SO, " IS BAD CHARACTER@ BIT #LOWSTR,LOWFLG ;HAVE WE ALREADY TURNED OFF CASE CONVERSION? BEQ 1$ ;BR IF NOT, TURN IT ON A BIC #LOWSTR,LOWFLG ;EXITING TEXT STRING, TURN CONVERSION BACK ON, BR 2$ ;AND SKIP NEXTE1$: BIS #LOWSTR,LOWFLG ;ON FIRST " IN SOURCE FILE, DISABLE CASE CONV. >2$: CMPB #'!,@R1 ;REMARK FIELD SHOULD ALSO TURN ON LOWER CASE BNE 22$ ;BR IF NOT= BIT #LOWSTR,LOWFLG ;BUT ! IN STRING NOT REALLY COMMENT FIELD BNE 22$= BIS #LOWCOM,LOWFLG ;DISABLE CASE CONVERSION IN COMMENT FIELDI222$: TSTB UPPFL ;UPPER CASE CONVERSION TURNED ON? BNE 23$ ;BR IF IT IS7 BIT #LOWNOC!LOWSTR!LOWCOM,LOWFLG ;LOWER CASE ALLOWED ?O BNE 3$ ;BR IF IT ISX%23$: CMPB #140,@R1 ;CHECK NOT TOO BIG  BGT 3$ ;BR IF OK0 BICB #40,@R1 ;CONVERT LOWER CASE TO UPPER CASE'3$: CMPB #40,(R1)+ ;CHECK NOT TOO SMALLR BLE PCK03 ;DO NEXT CMPB #11,-1(R1) ;WAS IT TAB?  BEQ PCK03 ;IF SO, IT'S OKL9PCK04: BIC #LOWNOC!LOWSTR!LOWCOM,LOWFLG ;CLEAR CON. FLAGSS ILCERRL-PCK05: MOVB #S.EOL2,(R1) ;SET LINE TERMINATORI MOV -4(R2),R1 ;SET DATA ADDRESS MOV (SP)+,R0 ;RESTORE R0$= BIC #LOWSTR!LOWCOM,LOWFLG ;CLEAR ANY POSSIBLE PGM CONVERSIONL RTS PC ;AND RETURN  .PSECT BASIC3 USDFNB: NMBLK$ BASDAT,DAT,0,SY,04SCDFNB: NMBLK$ SCR,BAS,0,SY,0 ;DFNB FOR SCRATCH FDB P) .SBTTL PRNT00 - OUTPUT CHARACTER OR LINE ;L*; PRINTC - PRNT00 OUTPUTS CHARACTER IN R21; ON SAVE DEVICE IF INITED, OTHERWISE ON TERMINALB;#<; FOLLOWING CODE OUTPUTS A SINGLE CHARACTER INTO FILE BUFFER .PSECT BASIC3PRNT00:  MOV R0,-(SP) ;SAVE A REGISTER( MOV OTPT,R0 ;GET CNTRL BLOCK ADD -> R0' CMP 2(R0),6(R0) ;COMPARE MAX TO ACTUALN BHI 1$ ;IF STILL ROOM, BRANCHP" JSR PC,PRNT01 ;IF NOT, PRINT LINE*1$: MOVB R2,@(R0) ;PUT CHARACTER IN BUFFER INC (R0) ;PUSH PTR ALONG$ INC 6(R0) ;AND ADD TO ACTUAL COUNT MOV (SP)+,R0 ;RESTORE R0L! RTS PC ;AND RETURN WHERE CALLEDT;I'; SUBROUTINE TO PRINT OUT A LINE BUFFERS; WHICH HAS BEEN ACCUMULATED ; ON ENTRY:S!; OTPT IS PTR TO DEVICE FOR PRINTR ; ON EXIT:; LINE PRINTED; BUFFER PTRS INITIALIZEDT; REGISTERS USED: NONE;LCRLF00:D#PRNT01: MOV R0,-(SP) ;SAVE A COUPLE  MOV R1,-(SP) ;OF REGISTERSL% MOV OTPT,R0 ;POINT TO CONTROL BLOCK  MOV R0,R1 ;COPY ADD -> R1 & MOV 10(R1),(R1) ;RESET BUFFER ADDRESS8 MOV 14(R1),R0 ;FDB ADDRESS (OR QIO BLOCK ADDRESS) -> R0( CMP R1,#TOTPT ;IS THIS TERMINAL OUTPUT? BEQ 2$ ;IF SO, SPECIAL CODEE# PUT$ ,10(R1),6(R1) ;DO PUT TO FILE ' BCS 4$ ;IF ERROR, GO TO ERROR ROUTINET1$: CLR 6(R1) ;CLEAR THE COUNTN MOV (SP)+,R1 ;RESTORE REGISTERS MOV (SP)+,R0 ; RTS PC ;AND RETURN02$: MOV 10(R1),Q.IOPL(R0) ;SET ADDRESS OF BUFFER* MOV 6(R1),Q.IOPL+2(R0) ;SET BUFFER LENGTH BNE 6$ ;IF NON-ZERO, BRANCHM' CLRB @10(R1) ;ELSE PUT NULL IN BUFFERR/ INC Q.IOPL+2(R0) ;AND ADD ONE TO BUFFER LENGTHR6$: DIR$ R0 ;DO THE QIO. MOVB #40,Q.IOPL+4(R0) ;RESET CARRIAGE CONTROL* MOV #IO.WVB,OUTQIO+Q.IOFN ;RESET FCN CODE BCS 3$ ;IF ERROR, BRANCH BR 1$ ;AND GO FINISH33$: MOV OUTSTA,PARLST+P.FCS ;SET UP FILE ERROR CODEM BR 5$ ;AND GO DECLARE ERROR:4$: MOVB F.ERR(R0),R0 ;ERROR CODE WITH EXTENDED SIGN -> R0# MOV R0,PARLST+P.FCS ;STORE IT AWAYR$5$: PRNERR ;DECLARE ERROR IN PRINT 6& .SBTTL BREAK 00 ibi4e5edddd- WRITE PASS ALL COMMAND;+3E; .S ; .X R0O MOV 2(R3),R1 ;DIMENSIONS -> R1E* BEQ 1$ ;IF BOTH ZERO, SHORT CUT (BRANCH)- JSR PC,STRL00 ;ELSE GO COMPUTE STRING LENGTHI ADD #6,R0 ;ACCOUNT FOR HEADERC)2$: ADD R0,R3 ;MOVE US AROUND THE STRING  BR SRL08 ;AND GO LOOK AGAIN 51$: ADD #10,R0 ;ADD 6 FOR HEADER, 1 FOR LEN BYTE ANDJ ;1 FOR ROUNDUP BIC #1,R0 ;MAKE SURE EVENA BR 2$00 ibi4e5edddd)SRL10: TM2ERR ;SHOULDN'T HAVE THIS TYPE&SRL11: MOV (R3),R0 ;HEADER BACK IN R0 ADD #3,R0 ;ROUND UP LENGTH) BIC #160001,R0 ;MAKE EVEN AND CLEAR TYPE> ADD R0,R3 ;GET TO NEXT ITEM BR SRL08Q?SRL12: MOV R3,PARLST+P.FCS ;STORE ADDRESS IN FCS ERROR LOCATIONO+ MOV R0,PARLST+P.FLNM ;STORE LAST INCREMENTR& MOV R4,PARLST+P.FNAM ;AND SEARCH TYPE" TM1ERR ;DECLARE DEBUGGING ERROR>SRL13: ADD #16,R3 ;GO AROUND VIRTUAL ARRAY ELEMENT DESCRIPTOR BR SRL08R U- .SBTTL ARYL00 - COMPUTE NUMERIC ARRAY LENGTH1;T ; ON ENTRY:L2; R0 HAS DATA TYPE (0=REAL*4, 2=INTEGER*2, 4=BYTE) ; R3 POINTS TO CURRENT DATA ITEM;H ; ON EXIT:5; R0 HAS LEN OF ITEM ROUNDED UP, BUT EXCLUDING HEADERE ; R3 AS ABOVER;Q; OTHER REGISTERS USED: R1;T .ENABL LSBNARYL00:R5 MOV 5$(R0),-(SP) ;PUT MULTIPLICATION FACTOR ON STACKR' MOV 2(R3),-(SP) ;AND PACKED DIMENSIONS! BNE STRL01 ;IF NON-ZERO, BRANCH CLR R0 ;ELSE SHORT CUT BR 2$5$:R .WORD 4 ;REAL*4T .WORD 2 ;INTEGER*2 .WORD 1 ;BYTEM;E3 .SBTTL STRL00 - COMPUTE LENGTH OF STRING DATA ITEMT;Y ; ON ENTRY: !; R0 HAS INDIVIDUAL STRING LENGTHO; R1 HAS PACKED DIMENSIONS;I ; ON EXIT:@; R0 HAS TOTAL LENGTH OF STRING ROUNDED UP, BUT EXCLUDING HEADER; STRL00:I+ INC R0 ;ACCOUNT FOR LENGTH BYTE IN STRINGM. MOV R0,-(SP) ;SAVE IT AS MULT FACTOR ON STACK) MOV R1,-(SP) ;PACKED DIMENSIONS ON STACKN#STRL01: CLR R0 ;CLEAR OUT REGISTER* BISB (SP),R0 ;FIRST DIM -> R0 (UNSIGNED)% BEQ 1$ ;IF ZERO, CAN SKIP COME CODE CLR R1 ;CLEAR OTHER REGISTER1 BISB 1(SP),R1 ;GET 2ND DIM -> R1 (ALSO UNSIGNED)N% BEQ 2$ ;IF ZERO, ALSO CAN SKIP CODEN INC R0 ;ADD ONE TO EACH DIMS' INC R1 ;TO ACCOUNT FOR ZEROTH ELEMENTF MUL R1,R0 ;PRODUCT -> R0, R1 TST R0 ;CHECK HIGH ORDER WORD; BNE 4$ ;IF NON-ZERO, ERROR$ MOV R1,R0 ;IF OK, PUT RESULT -> R0% BR 3$ ;BRANCH AROUND SHORT CUT CODEI 1$: BISB 1(SP),R0 ;2ND DIM -> R0'2$: INC R0 ;ACCOUNT FOR ZEROTH ELEMENTI3$: TST (SP)+ ;POP DIMENSIONS. MUL (SP)+,R0 ;MULTIPLY BY LENGTH OF 1 ELEMENT) TST R0 ;AGAIN CHECK HIGH WORD OF RESULTI BNE 4$ ;IF NON-ZERO, ERROR MOV R1,R0 ;RESULT BACK TO R0 INC R0 ;NOW DO ROUND-UPC BIC #1,R0 ;IN CASE ODD SIZER RTS PCL-4$: OVFERR ;OVERFLOW ERROR IF ARRAY TOO BIG .DSABL LSBO< .SBTTL SCR00 - DELETE BYTES FROM R3 TO R4 FROM USER STORAGE; B; SCRNCH - SCR00, DELETE THE NUMBER OF BYTES FROM THE USER STORAGE7; SPECIFIED BY R4. R3 POINTS TO STARTING POINT FOR THEN&; DELETION. REGISTERS USED - R2,R3,R4;P,SCR00: MOV R3,R2 ;GET A COPY OF THE POINTER+ ADD R4,R2 ;R2 HAS START OF REMAINING DATA + MOV ENUDAT,R4 ;END OF REMAINING DATA IN R4K( SUB R2,R4 ;LEN OF REMAINING DATA IN R4! ASR R4 ;# WDS OF REMAINING DATA BEQ 2$ ;IF ZERO, SKIP THE MOVE'1$: MOV (R2)+,(R3)+ ;MOVE OLD DATA DOWN SOB R4,1$,2$: MOV R3,ENUDAT ;ESTABLISH NEW END OF DATA RTS PC0' .SBTTL SQU00 - DELETE ONE LINE OF TEXTR;O>; SQUISH - SQU00, DELETE LINE WHOSE HEADER IS POINTED TO BY R5 ; ON ENTRY:R; R5 HAS POINTER TO LINE HEADER0 ; ON EXIT:3; R5 = OLD R5 + 4 (POINTS TO PRECEDING LINE HEADER)R@; R1 POINTS TO INSERTION POINT FOR NEW LINE (WHERE OLD LINE WAS)+; OLD LINE HEADER AND LINE TEXT ARE DELETEDA; ENDTXT AND BOLNHD UPDATEDT;$SQU00: MOV 2(R5),R1 ;GET TEXT OFFSET" ADD USR,R1 ;ADD BASE FOR ABS ADD MOV R1,R2 ;GET TWO COPIESA# SRCHLF ;START OF NEXT LINE -> R10 MOV R1,-(SP) SUB R2,(SP) MOV ENDTXT,R3 ;CALC # OF CHARS0 SUB R1,R3 ;TO MOVE -> R3% BEQ 2$ ;IF ALREADY THERE, SKIP CODEH-1$: MOVB (R1)+,(R2)+ ;SLIDE REST OF CODE DOWNO SOB R3,1$32$: MOV BOLNHD,R2 ;BOTTOM OF LINE HEADER AREA -> R2R. MOV R5,R3 ;CURRENT POSITION IN HEADERS -> R3 MOV R0,-(SP) ;SAVE R0 MOV #4,R0 ;4 BYTES TO MOVE UPB JSR PC,SLUP ;SLIDE IT ALL UP" ADD R0,R5 ;ADJUST POSITION OF R5) ADD R0,BOLNHD ;AND BOTTOM OF HEADER AREAT MOV (SP)+,R0 ;RESTORE OLD R0 5 MOV (SP)+,R2 ;# OF BYTES WE MOVED TEXT DOWN BY -> R2D MOV #4,R3* MOV R5,-(SP) ;SAVE HEADER INSERTION POINT/3$: SUB R3,R5 ;NOW GO THROUGH ALL HEADERS PAST1/ CMP R5,BOLNHD ;ONE WE DELETED AND ADJUST THEIR$- BLO 4$ ;OF00 iOig; SRCHLF - SRCH00, SEARCH FOR EOL, POINTER IN R1, WHEN DONE R17; POINTS ONE BYTE AFTER THE EOL. REGISTERS USED - R1.R;(;SRCH00: CMPB (R1)+,#S.EOL2 ;IS THIS CHAR A LINE TERMINATOR?T BNE SRCH00 ;NO RTS PCH E> .SBTTL FIND00 - SEARCH TEXT FOR LINE NUMBER (SPECIFIED IN R0);5; FINDLN - FIND005; SUBROUTINE TO FIND A GIVEN LINE IN THE PROGRAM TEXT$*; BY SEARCHING THROUGH LINE NUMBER HEADERS ; ON ENTRY:L; R0 HAS REQUIRED LINE NUMBER ; ON EXIT:(; R1 HAS ABSOLUTE START OF LINE IF MATCH,; R1 HAS INSERTION POINT IN TEXT IF NO MATCH; R5 POINTS TO HEADER IF MATCH1; R5 POINTS TO HEADER INSERTION POINT IF NO MATCH(; 'Z' SET IF MATCH; 'Z' CLEAR IF NO MATCHL; R0 UNCHANGED; OTHER REGISTERS USED: R2;E8FIND00: MOV STUDAT,R1 ;R1 PTS ABOVE LOWEST LINE # HEADER/ MOV BOLNHD,R2 ;R2 PTS TO HIGHEST LINE # HEADERIFIND01: CMP R1,R2 ;ANY TEXT?T BEQ 8$ ;IF NOT, BRANCH"1$: CMP R0,-4(R1) ;SEE IF IN RANGE3 BLO 4$ ;IF TOO LOW, R1 IS INSERTION POINT, BRANCHS BEQ 7$ ;IF MATCH, BRANCH' CMP R0,(R2) ;CHECK OTHER END OF RANGE 1 BHI 8$ ;IF TOO HIGH, R2 IS INSERTION PT, BRANCHT' BEQ 11$ ;IF MATCH AT THIS END, BRANCH" MOV R1,R5 ;OTHERWISE LET'S SPLIT% SUB R2,R5 ;DIFFERENCE: DIVIDE BY 8,T ASH #-3,R5 ;CLEAR REMAINDERT CLC ;(C-BIT) AND  ASH #2,R5 ;MPY BY 4M ADD R2,R5 ;ADD BACK OFFSET# CMP R0,(R5) ;AND SEE WHERE WE ARE; BEQ 3$ ;IF A HIT, BRANCH" BHI 2$ ;IF IN UPPER HALF, BRANCH$ MOV R5,R2 ;IN LOWER HALF, SO RESET BR 1$ ;RANGE AND TRY AGAIN'2$: MOV R5,R1 ;IN UPPER HALF, SO RESETE BR 1$ ;RANGE AND TRY AGAIN#3$: MOV 2(R5),R1 ;SET POINT IN TEXTB ADD USR,R1 ;WITH OFFSET IN SEZ ;SUCCESS INDICATOR, RTS PC ;AND RETURN*4$: MOV R1,R5 ;SET HEADER INSERTION POINT BR 5$ 7$: MOV R1,R5 ;SET FOR MATCH ON SUB #4,R5 ;FOLLOWING LINEY BR 3$ ;AND FINISH MATCH CODE=8$: MOV R2,R5 ;SET HEADER INSERTION AT HIGH END OF LINE NOS. 8 CMP R5,BOLNHD ;AT BOTTOM OF HEADERS (PAST END OF PROG)? BEQ 10$ ;IF SO, BRANCH=5$: MOV -2(R5),R1 ;START OF NEXT LINE IS TEXT INSERTION POINTE* ADD USR,R1 ;ADD IN START OF TEXT SECTION9$: CLZ ;SET NO MATCHX RTS PC ;AND RETURN210$: MOV ENDTXT,R1 ;END OF TEXT IS INSERTION POINT BR 9$ ;GO FINISH211$: MOV R2,R5 ;MATCH AT HIGH LINE # END OF RANGE BR 3$ ;GO FINISH. .SBTTL GETV00 - GET VARIABLE AND PACK INTO R4;SE; GETVAR - GETV00, GET A VARIABLE AND PACK IT IN TRUNCATED ASCII INTON8; R4. ON RETURN R4 HAS VARIABLE, R2 HAS NEXT CHARACTER.; REGISTERS USED - R1,R2,R4.;$GETV00: SKIP ;GET A CHARACTERN TSTCH ;ALPHABETIC?N BEQ 99$ ;NO BVS 99$ ;NOO BIC #177700,R2 ;TRUNCATE IT MOV R2,R4 ;AND CLC2 ASH #6,R4 ;SHIFT OVER THE FIRST PART OF THE NAME MOVB (R1)+,R2 ;NEXT CHAR -> R2: TSTCH ;NUMERIC OR ALPHA?N BVS 1$ ;NO* BIC #177700,R2 ;CLEAR OUT EXTRANEOUS BITS( BIS R2,R4 ;YES, ZOT IT INTO THE HEADER" MOVB (R1)+,R2 ;ANOTHER CHAR -> R21$: CCCT RTS PC ;RETURN OK )99$: SEV ;SET OVERFLOW FOR BAD VARIABLER RTS PC  I1 .SBTTL DIMC00 - CHECK RANGE OF DIMENSION (IN R0)H;CB; DIMCHK - DIMC00, MAKE SURE DIMENSION IN R0 IS IN BOUNDS 0 TO 255; REGISTERS USED - R0.;V)DIMC00: CMP R0,#377 ;IN 0 -> 255. RANGE?  BHI 1$ ;IF NOT, BRANCH# SEZ ;SET EQUAL CODE IF IN BOUNDST RTS PCU 1$: CCC ;SET ILLEGAL DIMENSION RTS PC0 / .SBTTL SAVE00 - LIST PROGRAM ON "SAVE" DATASET ;+2T; .SKIPD ; .X ^^SAVE\\,; .X ^PROGRAM SAVEC; .HEADERLEVEL 1 ^^SAVE _ [N1][-N2][,N3...]\\V; .BREAK'; ^PRIMARILY AN IMMEDIATE MODE COMMAND.E>; ^IT MAKES A COPY OF THE PRESENT PROGRAM ON THE FILE NAMED IN<; THE STRING FILESPEC (STRING VARIABLE OR STRING IN QUOTES).?00 ibi4e5edddd; ^OPTIONAL LINE NUMBERS OR LINE NUMBER RANGES CAN BE INCLUDED.H; .FG 1;=; ^THE OPTIONAL SWITCH WILL PRODUCE A PSUEDO-COMPILED VERSIOND5; WHICH CAN BE READ BACK WITH THE SAME SWITCH WITHOUTN<; RE-INTERPRETING THE CODE THUS SAVING A CONSIDERABLE AMOUNT; OF TIME FOR LONG PROGRAMS.@; ^THE DEFAULT EXTENSION WILL BE \\Y; .BREAKD; ^THE ^^OLD\\ COMMAND READS IN A PREVIOUSLY SAVED OR EDITED PROGRAM>; FROM THE FILE NAMED IN THE STRING FILESPEC (AS IN ^^SAVE\\).<; ^THE OPTIONAL SWITCH, WHEN SPECIFIED, CAUSES TRUNCATION OF; ^^REM\\ AND ! STATEMENTS.I4; ^THE DEFAULT FILE SPECIFIER IS: ^^SY:PROGRAM.BAS\\?; ^THE R2L+ MOV #4,R3 ;SET TO XFER NAME AND EXTENSION "11$: MOV (R0)+,(R2)+ ;MOVE IN NAME SOB R3,11$ ;AND EXTENSION. ADD #14,R0 ;POINT TO ADD #14,R2 ;DEVICE NAMEB MOV (R0)+,(R2)+ ;TRANSFER IT IN MOV (R0)+,(R2)+ ;AND UNIT #; ! JMP INIT04 ;BACK TO INTERPRETERICLRTXT: MOV USR,R5 ;DELETE ALLM INC R5 ;LEAVE ORIGINAL LF  MOV R5,ENDTXT ;SAVE CLR LINENO ;CLEAR LINE NUMBERL' MOV STUDAT,BOLNHD ;DELETE LINE HEADERS  RTS PC ;RETURN4SETEXT: MOV #6273,COMFNB+N.FTYP ;SET "BAS" EXTENSION& BIT #2,REMTRM ;DO WE HAVE /CO SWITCH?# BEQ 1$ ;IF NOT, ALL OK AND BRANCH+- MOV #6253,COMFNB+N.FTYP ;SET "BAC" EXTENSIONA/ MOV #1,LINEFL ;ENABLE READING OF STRANGE CHARS1$: RTS PC ;AND RETURNR7 .SBTTL CHAIN0 - START EXECUTING NEW FILE WITH OLD DATAA;+2 ; .SKIPE; .X ^^CHAIN\\; .X ^PROGRAM CHAIN@; .HEADERLEVEL 1 ^^CHAIN _\\; .BREAKA; ^THE ^^CHAIN\\ COMMAND READS IN ANOTHER ^^BASIC\\ PROGRAM WHILEN1; PRESERVING VARIABLES AND OPEN FILES' ^^FCB\\'S.IJ; ^^GOSUB/RETURN\\ POINTERS, ^^FOR\\ LOOP CONTROL TABLES, USER ^^DEF\\INEDF; FUNCTIONS AND SCRATCH ITEMS ARE ALL DELETED FROM THE USER DATA AREA.C; ^THUS USER FUNCTIONS MUST BE REDEFINED IN ANY NEW PROGRAM MODULE.I; .FG 1TB; ^THE DEFAULT FILE SPECIFIER AND SWITCHES ARE THE SAME AS FOR THEL; ^^OVERLAY\\ COMMAND WITH THE ADDITION OF THE /
  • R1" MOV (R3)+,R0 ;SIZE AND TYPE -> R0& BIC #177400,R0 ;CLEAR OUT SIGN EXTEND STRLEN ;CALC LEN -> R0 ADD R0,R3 ;ADD IT ON" BR CHAIN1 ;AND LOOK AT NEXT ITEM.CHN14: TM2ERR ;SHOULDN'T HAVE THIS DATA TYPE)CHN16: MOV (R3),R4 ;SCRATCH HEADER -> R42$ ADD #3,R4 ;ADD HEADER AND ROUND UP* BIC #160001,R4 ;ALSO CLEARING HEADER TYPE BR CHN03 ;AND DELETE ITEMN1CHN13: ADD #16,R3 ;SKIP AROUND VIRTUAL DATA ITEMM BR CHAIN1D .SBTTL OVERLAY - ADD PROGRAM LINES FROM FILE AND OPTIONALLY EXECUTE;+2-; .SKIPV; .X ^^OVERLAY\\; .X ^PROGRAM OVERLAY4C; .HEADERLEVEL 1 ^00 ibi4e5edddd^OVERLAY _\\ ; .BREAKN; ^THE ^^OVERLAY\\ COMMAND READS IN ADDITIONAL PROGRAM TEXT FROM THE SPECIFIEDK; FILE AND ADDS THEM TO THE EXISTING PROGRAM JUST AS THOUGH THEY WERE TYPED H; FROM THE KEYBOARD: I.E. NEW STATEMENTS WITH THE SAME LINE NUMBER AS AN4; EXISTING STATEMENT REPLACE THE EXISTING STATEMENT.N; ^THE SAME PRECAUTIONS REGARDING FUNCTION DEFINITIONS AND ^^DATA\\ STATEMENTSE; DURING DEBUGGING SHOULD ALSO BE OBSERVED WHEN USING THE ^^OVERLAY\\H; STATEMENT IN PROGRAM MODE.; .FG 1CM; ^THE OPTIONAL SWITCH (/^L^I) IS SIGNIFICANT IN PROGRAM MODE ONLY AND CAN BEN<; USED TO SPECIFY THE LINE AT WHICH EXECUTION SHOULD RESUME.F; ^THE / ASR R0 ;# WORDS (SHUFFLE INCLUSIVE OF STGOSB) ;DSS1> BEQ00 iOig\\S; .BREAK=; ^THE ^^SCRATCH\\ COMMAND MUST HAVE A FILE SPECIFIER WITH AN 4; EXPLICIT VERSION NUMBER IN ORDER TO DELETE A FILE.4; ^THE DEFAULT FILE SPECIFIER IS: ^^SY:PROGRAM.BAS\\; .BREAK ; ^EXAMPLE: ; .NOFILL ; ^^; {SCRATCH "DATA.DAT;3"}; {50 SCRATCH "DK1:DAT3.TMP"} ; \\; .FILL ;-SCRA00: SKIP ;GET NEXT CHART DEC R1 ;RESET TEXT POINTER! CMP R2,#S.EOS1 ;A NEW STATEMENT?  BLO 1$+ CSIERR ;MUST HAVE TEXT STRING-1$: JSR PC,FNAME ;CHECK FOR STRING EXPRESSION_ MOV R0,-(SP) ;SAVE R0 FROM EVIL JSR PC,CSINT0 ;GET FILE SPECS4 DELET$ #COMFDB,SCRFER ;DELETE FILE SPECIFIED IN FDB( MOV (SP)+,R0 ;RESTORE R0 BACK INTO EVIL& TST R0 ;WAS A STRING EXPRESSION USED BEQ 2$ ;SKIP IF NOT $ MOV R0,R1 ;ELSE RESET TEXT POINTER%2$: JMP INIT02 ;GO TO COMMAND INTERP5 .SBTTL FNAME - CHECK STRING EXPRESSION FOR FILE SPECC; 2; FNAME - CHECK FOR STRING EXPRESSION IN FILE SPEC#; ON ENTRY R1 CONTAINS TEXT POINTERT); ON EXIT FOLLOWING REGISTER ASSIGNMENTS:I8; R0: ZERO IF NO STRING TO INTERPRET, OTHERWISE = OLD R1; R1: TEXT POINTER.; R2: ZERO TO INDICATE NO SWITCH TABLE FOR CSI8; R3: ADDRESS OF STRING IN STRING WORK AREA (FROM EVALS)7; R4: LENGTH OF STRING IN STRING WORK AREA (FROM EVALS);V&FNAME: MOV R1,-(SP) ;SAVE TEXT POINTER# EVALS ;TRY FOR STRING EXPRESSIONB BVC 2$ ;BR IF OK STRINGP&3$: MOV (SP)+,R1 ;RESTORE TEXT POINTER CLR R0 ;SET NO STRING FLAG RTS PC ;AND RETURN 2$: TST R4 ;IS IT A NULL STRING BEQ 3$ ;IGNORE IF SO TST (SP)+ ;DELETE TEXT POINTER CLR R2 ;SET NO SWITCH TABLE ' CLR REMTRM ;RESET ALL OF THE SWITCHESI# MOV R1,R0 ;INDICATE STRING EXISTSD RTS PC ;AND RETURN  .SBTTL OPEN COMMAND PROCESSOR;+6O; .SKIPI ; .X ^^OPEN\\R; .X ^FILE OPEN; .X ^RANDOM ACCESS ^I/^OV; .HEADERLEVEL 1 ,OP.LUNC CSI$SW WR,<400*FO.WRT>,OP.LUN CSI$SW UP,<400*FO.UPD>,OP.LUN CSI$SW MO,<400*FO.MFY>,OP.LUN CSI$SW AP,<400*FO.APD>,OP.LUN CSI$SW SH,<400*FA.SHR>,OP.LUN CSI$ND LENVAL: CSI$SV DECIMAL,OP.LEN,2F CSI$NDBEOFVAL: CSI$SV DECIMAL,OP.EOF,2A CSI$ND ;U;SET DEFAULTS FOR FILE OPENF;.(OPEN00: MOV #S.FDB,R0 ;SIZE OF FDB IN R0 ASR R0 ;NOW IN WORDS$1$: CLR -(SP) ;CLEAR SPACE ON STACK SOB R0,1$ ;FOR FDB MOV SP,FDBSAV MOV SP,R09 FDAT$R R0,#R.VAR,#FD.CR,#80.,#-5,#-5 ;ESTABLISH DEFAULTSU MOV #80.,OP.LEN MOV #OP.LUN,R4 CLR (R4)+ CLR (R4)+ CLR (R4)+< MOV #,(R4)+ ;SET DEFAULT TYPE & CARR CNTL' FDOP$R R0,OP.LUN,#CSDSPT,#USDFNB,FO.RDE; END OF FDB INIT CODE SKIP& CMPB #'#,R2 ;FILE NUMBER TO FOLLOW?? BNE OPEN01 ;ERROR IF NOT EVAL ;GET FILE NUMBER BVS OPEN01 ;PAREN IS ERROR( STCFI AC0,R4 ;MAKE FILE NUMBER INTEGER MOVB R4,OP.LUN ;FILE # = LUNS/ MOV FDBSAV,R0 ;R0 POINTS TO START OF STACK FDBF CMP R4,#2 ;#1 & 2 RESERVED BLE OPEN01I0 CMP R4,#OP.MXL ;SEE IF GREATER THAN MAX ALLOWED BGT OPEN01C CLR R0# JSR PC,FILFN1 ;FINISH GETTING FILER( BNE OPEN01 ;ERROR IF RE-OPEN ATTEMPTED SKIP. CMPB #',,R2 ;SEPARATOR?? BNE OPEN01 ;ERR IF NOT EVALS ;GET FILE SPEC. BVC OPEN07 ;BR IF OKOPEN01: OPNERR'OPEN07: MOV R1,-(SP) ;SAVE TEXT POINTERE! MOV R4,R0 ;LEN -> R0 FOR CSINT0 + MOV #OPENSW,R2 ;SWITCH TABLE ADDRESS IN R2F JSR PC,CSINT0 ;DECODE STRING0# MOV (SP)+,R1 ;RESTORE TEXT POINTERR/ MOV FDBSAV,R3 ;R3 POINTS TO START OF STACK FDB.6 MOV OP.LUN,F.LUN(R3) ;PUT IN LUN AND FILE ACCESS BITS MOV OP.RTP,F.RTYP(R3)0 BEQ OPEN02 ;IF NO RECORD TYPE, THEN BLOCK XFER MOV OP.RAC,F.RACC(R3), BITB #FD.RAN,F.RACC(R3) ;IS RANDOM BIT SET?& BEQ 2$ ;IF NOT SKIP NEXT INSTRUCTION2 BISB #R.FIX,F.RTYP(R3) ;IF SO FORCE FIXED RECORDS92$: BITB #R.FIX,F.RTYP(R3) ;SEE IF FIXED RECORD SPECIFIEDV" BEQ 1$ ;DON'T DO ANYTHING IF NOT0 BIC #R.VAR,F.RTYP(R3) ;IF SO CLEAR VARIABLE BIT1$:S0; CHECK BUFFER LENGTH AND CONTROL BLOCK FOR ROOM INC OP.LEN ;ROUND UP TO EVEN" BIC #1,OP.LEN ;WORD BUFFER LENGTH MOV OP.LEN,R0 ;PUT IT IN R0 MOV R0,F.RSIZ(R3) ;AND IN FDB: ADD #S.FDB+30,R0 ;ADD IN CONTROL BLOCK LEN AND WORD FUDGE TSTOK ;ENOUGH ROOM? BHIS 11$ ;PROCEED IF OK " OVFERR ;REPORT STORAGE OVERFLOW11$:$ JSR PC,CREFDB ;GO CREATE FDB REGION% MOV R5,R4 ;SAVE A COPY OF FDB STARTP;R0 ASSUMED CLEAR FROM SOB LOOPH/ MOV FDBSAV,R3 ;R3 POINTS TO START OF STACK FDBA- BITB #FA.WRT,F.FACC(R3) ;WAS WRITE SPECIFIEDT BEQ 13$ ;IF NOT GO SET READ ( BIS #1000,R0 ;SET WRITE IN CONTROL WORD. BITB #FD.RAN,F.RACC(R3) ;IF RANDOM BIT IS SET BNE 13$ ;SET READ BIT TOOA; BITB #FA.CRE!FA.APD,F.FACC(R3) ;SHOULD FILE BE WRITE ONLY?T BNE 12$ ;IF SO, SKIP READ SETR13$: BIS #400,R0 ;SET READ BITT/12$: BITB #FD.RAN,F.RACC(R3) ;RANDOM SPECIFIED?D BEQ 5$ ;IF NOT, SKIP BIT SET BIS #2000,R0 ;SET RANDOM BITL&5$: BITB #FD.CR,F.RATT(R3) ;ASCII SET? BNE OPEN06 ;BRANCH IF SO BIS #4000,R0 ;SET BINARY BIT :OPEN06: BISB F.LUN(R3),R0 ;SET FILE NUMBER IN CONTROL WORD' DEC R0 ;STORE FILE NUMBER AS ONE LESS. MOV R0,(R5)+ ;OUTPUT IT! MOV R5,(R5) ;BUILD CHAR POINTER & ADD #S.FDB+24,(R5)+ ;BUFFER AFTER FDB/ MOV OP.LEN,(R5)+ ;GET MAX BYTE COUNT (REC LEN)P" ADD #4,R5 ;SKIP OVER 2 LOCATIONS$ MOV -10(R5),(R5)+ ;SET DATA ADDRESS3 CMP (R5)+,(R5)+ ;SKIP TWO PLACES (LB ERR, FDB PTR)& MOV OP.EOF,(R5)+ ;END OF FILE ROUTINE) ADD #4,R5 ;SKIP OVER 2 UNUSED LOCATIONS # MOV R5,R0 ;START OF FDB NOW IN R0N% MOV #S.FDB,R2 ;# BYTES TO XFER IN R2T ASR R2 ;# WORDS TO XFER IN R2C 3$: MOV (R3)+,(R5)+ ;HEAD 'EM UP SOB R2,3$ ;AND MOV 'EM OUT$ ADD #S.FDB,SP ;GET RID OF STACK FDB3 MOV -14(R0),F.URBD+2(R0) ;ADD OF REC BUFFER IN FDB), MOV -22(R0),F.URBD(R0) ;LIKEWISE ITS LENGTH JSR00 iOig R5 MOV R5,-(SP) ;SAVE R5 ASR R0 ;WORD COUNT IN R0#2$: CLR (R5)+ ;CLEAR THE DATA AREAN! SOB R0,2$ ;AND BRANCH TILL DONEA MOV (SP)+,R5 ;RESTORE OLD R5K RTS PCM ( .SBTTL CLOS00 - USER FILE CLOSE ROUTINE;+6; .SKIP6; .X ^^CLOSE\\; .X ^FILE CLOSE%; .HEADERLEVEL 1 ^^CLOSE N1[,N2...]\\C; .BREAKE; ^THIS COMMAND CLOSES A USER DATA FILE WHOSE NUMBER IS ^N1, ^N2 ETC.N,; ^NOTE THAT NO _# SIGN PRECEDES THE NUMBER.:; ^IF USED WITH NO FILE NUMBER, ALL USER FILES ARE CLOSED.; .BREAK ; ^EXAMPLE:M ; .NOFILL ; ^^; {60 CLOSE 4}; {70 CLOSE I1}$ ; {95 CLOSE}; \\; .FILLA;- CLSE00: SKIP# CMPB R2,#S.EOS1 ;END OF STATEMENT?  BHIS 2$ ;IF SO, ALL WANTED DEC R1 ;REDO LAST CHAR1$: EVAL ;GET A FILE NUMBER6 BVS 4$ ;PAREN IS ERROR STCFI AC0,R4 ;GET FILE NUM DEC R4 ;ADJUST CMP #255.,R4 ;VALID?? BLO 4$ ;NOPE MOV #17400,R0 ;SET MASK" JSR PC,CLSEIT ;GOTO CLOSE ROUTINE SKIPR CMP #',,R2 ;MORE FILES?? BEQ 1$ ;GO DO IF SO BR 6$ ;EXITA;C; CLOSE ALL FILES ROUTINEE;2$: JSR PC,CLSEAL ;CALL CLOSER 6$: DEC R1 ;ADJUST TEXT POINTER JMP INIT02 ;NEXT STATEMENT4$: CLSERR ;ERROR IN CLOSE;E; ACTUAL CLOSE ROUTINE;L<CLSEIT: JSR PC,SRCHFL ;SEARCH FOR FILE WHOSE NUMBER IS IN R4' BEQ 4$ ;BR NOT THERE (IGNORE REQUEST)0- BIT #10000,(R3) ;DO WE HAVE BLOCK MODE FILE?. BEQ 2$ ;IF NOT, BRANCH& JSR PC,WRITBK ;DO ANY NECESSARY WRITE& BR 3$ ;AND GO BRANCH TO DIRECT CLOSE2$: BIT #1000,@R3 ;THIS OUTPUT BEQ 5$ ;SKIP BUFF CHECK IF NOT BIT #2000,@R3 ;OR IF CONTIG BNE 5$ ;SKIP CHECK' TST 10(R3) ;ANYTHING LEFT IN BUFFER??T BEQ 5$ ;OK IF NOTT MOV R3,R0 ;SET REG TST (R0)+ ;ADJUSTE! JSR PC,PRNT01 ;ELSE FORCE IT OUTT5$: MOV R3,R0 ;GET FDB ADDRESSW ADD #26,R0 ;IN R03$: CLOSE$ ;AND CLOSEG5 MOVB F.ERR(R0),R0 ;ERROR CODE WITH SIGN EXTEND IN R0 0 MOV R0,PARLST+P.FCS ;STORE IN MO PARAMETER LIST# BCC 1$ ;IF NO ERROR, DON'T REPORTG CLOSER ;REPORT FCS ERROR !1$: JSR PC,DELFDB ;DELETE THE FDB 4$: RTS PC ;AND RETURN"CLSEAL: CLR R4 ;SEARCH FOR A FILE MOV #17777,R0 ;MASK JSR PC,CLSEIT ;DO A CLOSE# BNE CLSEAL ;IF OK TRY FOR ANOTHER, RTS PC ;ELSE RETURN+;A; ROUTINE DELFDB?; TO DELETE SPACE FOR BASIC FDB (INCL BUFFER AND POINTERS ETC.)# ; ON ENTRY: ; R3 POINTS TO FDB TO BE DELETED ; ON EXIT:; STUFDB,STGOSB,STFONX UPDATED; REGISTERS USED: R0,R2S;T'DELFDB: MOV 4(R3),R0 ;CALCULATE SIZE OF  ADD #S.FDB+30,R0 ;BLOCK -> R0/ MOV STGOSB,R2 ;START OF DATA TO BE MOVED -> R2  JSR PC,SLUP ;SLIDE IT UP ADD R0,STUFDB ;ADJUST PTRSO ADD R0,STGOSB ADD R0,STFONX RTS PC ;AND RETURN;E2; ROUTINE SRCHFL - TO SEARCH FOR FILE WHOSE HEADER%; MATCHES R4 AND MASK TO IGNORE IN R0D(; PTR TO FCB -> R3 IF FOUND, 0 OTHERWISE;I.SRCHFL: MOV STUFDB00 ibi4e5edddd,R3 ;START OF FDB AREA -> R3-1$: CMP R3,ENDUSR ;AT END OF BASIC TASK AREA?X# BHIS 2$ ;IF SO, GO REPORT FAILURET MOV (R3),R2 ;HEADER -> R2L BIC R0,R2 ;CLEAR OUT MASKR CMP R2,R4 ;MATCH?S' BEQ 3$ ;IF SO, GO RETURN SUCCESSFULLY ! ADD 4(R3),R3 ;OFFSET TO NEXT FDBR ADD #S.FDB+30,R3 ;O BR 1$2$: CLR R3 ;INDICATE FAILUREP(3$: TST R3 ;TEST FOR SUCCESS OR FAILURE RTS PC ;AND RETURN D& .SBTTL FNMB00 - FILE NUMBER PROCESSOR;?; FNMBR/FNMB00 - PROCESS FILE NUMBER, SETUP FILE BLOCK POINTERSR;S"FILFND: MOV R0,-(SP) ;SAVE IO TYPE EVAL ;GET NUMBERC BVS FNMB99 ;PAREN IS ERROR MOV (SP)+,R0 ;RESTORE IO TYPE STCFI AC0,R4 ;GET NUMBERFILFN1: DEC R4 ;IN RANGE 0-255  CMP #255.,R4 ;VALID?? BLO FNMB99 ;NOPE BIS R0,R4 ;SET SEARCH MASK, MOV #177400,-(SP) ;CALCULATE MASK TO IGNORE BIC R0,(SP) MOV (SP)+,R0 ;AND PUT IT IN R0  JSR PC,SRCHFL RTS PCR FNMB00: SKIP! CMP #'#,R2 ;FILE NUMBER THERE??B BEQ 1$ ;BR IF YESN DEC R1 ;BACKUP POINTER RTS PC ;AND RETURN1$: JSR PC,FILFNDI BEQ FNMB99 ;ERROR BR BIT #400,(R3)+ ;INPUT?? BEQ 2$ ;NOPE MOV R3,INPT ;SET INPUT POINTER2$: BIT #1000,-2(R3) ;OUTPUT?? BEQ 5$ ;NOPE! MOV R3,OTPT ;SET OUTPUT POINTERP,5$: MOV R3,14(R3) ;SET UP PROPER FDB POINTER< ADD #24,14(R3) ;IN I/O CONTROL BLOCK (WHICH MAY HAVE MOVED). MOV R3,10(R3) ;UPDATE DATA BUFFER ADDRESS PTR ADD #24+S.FDB,10(R3)) MOV 10(R3),(R3) ;AND NEXT BYTE AVAIL PTRN ADD 6(R3),(R3)B SKIP ;BUMP R1 PAST COMMA;$ CMPB R2,#', ;MAKE SURE IT IS COMMA' BEQ 6$ ;AND CHECK THAT ACCESS IS SEQ.R% CMPB R2,#'' ;IS CHAR A SINGLE QUOTEO BEQ 7$ ;IF SO, PROCESS4 CMPB R2,#'@ ;ALLOW THIS TYPE OF RECORD # INDICATOR BEQ 7$V( DEC R1 ;OTHERWISE BACK UP TEXT POINTER! BR 6$ ;AND MAKE SURE SEQUENTIAL'6$: BIT #2000,-2(R3) ;IS RANDOM BIT SETI BNE FNMB98 ;IF SO, AN ERRORR3$: RTS PC ;RETURNR&7$: BIT #2000,-2(R3) ;CHECK RANDOM BIT, BEQ FNMB98 ;IF NOT SET, ACCESSM MODE ERROR MOV R3,-(SP) ;SAVE FCB POINTERS# EVAL ;EVALUATE THE RECORD NUMBER % BVS FNMB99 ;IF ERROR, DO ERROR EXITS1 MOV (SP)+,R3 ;RESTORE FILE CONTROL BLOCK POINTER! MOV 14(R3),R3 ;FDB ADDRESS IN R3# SETLL6 STCFL AC0,F.RCNM(R3) ;STORE LONG RECORD NUMBER IN FDB SETIS0 BLE FNMB99 ;NEG OR ZERO RECORD NUMBER IS ERROR SKIP ;GET NEXT NON-BLANK CHAR CMPB R2,#', ;CHECK FOR COMMA! BNE FNMB99 ;IF NOT REPORT ERRORR BR 3$ ;RETURN SUCCESSFULLY2FNMB98: FACERR ;FILE ACCESS MODE ERROR (RAN/SEQ)FNMB99: FNMERR P" .SBTTL PRLN00 - PRINT LINE NUMBER; %; PRNTLN - PRLN00 - PRINT LINE NUMBERR; REGISTERS USED - R0,R1,R2.; 0PRLN00: MOV LINENO,R1 ;CURRENT LINE NUMBER -> R1 PRLN01: SUB #10,SP ;DESTINATION MOV SP,R0 ; IS ON THE STACK ITOA ;CONVERT TO ASCIIS MOV SP,R0 ;PRINT THE RESULTING PRINTL ;PRINT NUMBER  ADD #10,SP ;RESTORE THE STACK2 RTS PCE F< .SBTTL GET00 - GET LINE LIMITS FOR COMMAND (LIST OR DELETE);C6; GET00 - GET LINE LIMITS FOR COMMAND (LIST OR DELETE) ; ON ENTRY: "; R1 POINTS TO START OF PARAMETERS ; ON EXIT:*; R1 POINTS PAST END OF THIS SET OF PARAMS1; R3 HAS ADDRESS OF LOWEST LINE # HEADER IN RANGEO2; R4 HAS ADDRESS OF HIGHEST INCLUDED LINE # HEADER'; 'Z' SET IF NO LINES INCLUDED IN RANGEA&; OTHER REGISTERS USED: R0,R2,R5 (ALL); GET00: SKIP ;GET 1ST CHAR $ CMPB R2,#'* ;ASKING FOR LAST LINE? BNE 1$ ;IF NOT, BRANCH" MOV BOLNHD,R3 ;POINT TO LAST LINE+ CMP R3,STUDAT ;DO WE REALLY HAVE ANYTHING?  BHIS 7$ ;IF NOT, BRANCHS# MOV (R3),R0 ;INDICATE EXACT MATCHT BR 8$1$: DEC R1 ;BACK UP ONE CHAR  ATOI ;GET NUMBER -> R0S MOV R1,-(SP) ;SAVE TEXT PTR FINDLN ;FIND THE LINE BEQ 2$ ;IF EXACT MATCH, BRANCH. SUB #4,R5 ;ELSE POINT TO 1ST INCLUDED HEADER"2$: MOV R5,R3 ;COPY POINTER -> R3 MOV (SP)+,R1 ;RESTORE TEXT PTR08$: SKIP ;NEXT CHAR -> R2P CMPB R2,#'- ;DO WE WANT RANGE? BEQ 4$ ;IF SO, BRANCH DEC R1 ;BACK UP TEXT PTR TST R0 ;CHECK FOR LINE # 0 BNE 3$ ;IF NOT, BRANCH: MOV BOLNHD,R4 ;IF SO, IT WAS A PLAIN LIST, SO INCLUDE ALL BR 6$ ;GO TO FINAL CHECK3$: CMP R0,(R3) ;EXACT MATCH?* BNE 7$ ;IF00 iOig END BR 6$ ;GO TO FINAL CHECK4$: SKIP CMPB R2,#'* ;LAST LINE ASKED?R BNE 5$ ;IF NOT, BRANCH* MOV BOLNHD,R4 ;PUT LAST LINE HEADER -> R4 BR 6$ ;GO TO FINAL CHECK5$: DEC R1 ;BACK UP ONE CHARA ATOI ;GET SECOND LINE # -> R0 MOV R1,-(SP) ;SAVE OUR TEXT PTR FINDLN ;FIND THE HEADER -> R52 MOV R5,R4 ;COPY -> R4 (NO MATTER IF EXACT MATCH) MOV (SP)+,R1 ;RESTORE TEXT PTR *6$: CMP R3,R4 ;SEE IF ACTUAL RANGE EXISTS BLO 7$ ;IF NOT, BRANCH" CLZ ;MAKE SURE NO 'Z' (SUCCESS) RTS PC ;AND RETURN 7$: SEZ ;SET NO TEXT (FAILURE) RTS PC# % .SBTTL LIST00 - LIST THE SOURCE TEXTR;+2; .SKIPH ; .X ^^LIST\\L; .X ^PROGRAM LIST+; .HEADERLEVEL 1 ^^LIST [N1][-N2][,N3...]\\P; .BREAK/; ^THIS IS PRIMARILY AN IMMEDIATE MODE COMMAND. ?; ^WITH NO ARGUMENTS, THE WHOLE PROGRAM IS LISTED AT THE USER'S ; TERMINAL.N:; ^SINGLE ARGUMENTS SEPARATED BY COMMAS WILL LIST ONLY THE; LINE NUMBERS REQUESTED.AC; ^TWO ARGUMENTS SEPARATED BY A DASH (MINUS) WILL LIST AN INCLUSIVEU; LINE NUMBER RANGE.; .BREAK ; ^EXAMPLE:N ; .NOFILLL; ^^; {LIST} ; {LIST 20}I; {LIST 50,100}O; {LIST 50-80,135,710-750}; \\; .FILL;-!; REGISTERS USED - R1,R2,R3,R4,R5L; LIST00:[( JSR PC,ATTACH ;ATTACH TERMINAL (FOR ^O)'1$: JSR PC,GET00 ;GET LINE HEADER RANGEA BEQ 31$ ;IF NONE, BRANCH MOV R1,-(SP) ;SAVE TEXT PTR( MOV R4,-(SP) ;SAVE FINAL HEADER ADDRESS% MOV R3,R5 ;INITIAL HEADER ADD -> R5E(2$: CMP R5,(SP) ;PAST END OF RANGE YET? BLO 3$ ;IF SO, BRANCHI JSR PC,4$ ;GO DO THIS LINE' TSTB BRFLAG ;HAS USER TRIED TO BREAK?L( BNE 32$ ;IF SO, BRANCH TO STOP LISTING! SUB #4,R5 ;POINT TO NEXT HEADER} BR 2$ ;AND GO AROUND AGAIN(3$: TST (SP)+ ;POP FINAL HEADER ADDRESS MOV (SP)+,R1 ;RESTORE TEXT PTRF 31$: SKIP ;NEXT CHAR OF PARAMS0 CMPB R2,#', ;COMMA SEPARATING SETS OF NUMBERS? BEQ 1$ ;IF SO, DO IT AGAIN DEC R1 ;ELSE BACK UP TEXT PTRS CLOSEF ;CLOSE FILE IF OPEND, JSR PC,DETACH ;DETACH TERMINAL (NULLIFY ^O)' JMP INIT02 ;AND GO GET NEXT STATEMENT$32$: ADD #4,SP ;ADJUST STACKG. JMP STOP00 ;AND DO A STOP SO WE KNOW IT'S ^C;N+; SUBROUTINE TO PRINT OUT LINE WHOSE HEADERT; IS POINTED TO BY R5G;R'4$: MOV (R5),R1 ;GET LINE NUMBER -> R1D JSR PC,PRLN01 ;PRINT IT MOV 2(R5),R1 ;SET UP TEXT PTR! ADD USR,R1 ;ADD IN BASE ADDRESS "5$: MOVB (R1)+,R2 ;NEXT CHAR -> R21 CMPB R2,#'" ;START OR END OF STRING IN SOURCE ?P BNE 52$ ;SKIP IF NOT8 BIT #LOWLST,LOWFLG ;DID WE SET SKIP TOKEN SEARCH FLAG ? BNE 51$ ;IF SO, CLEAR IT2 BIS #LOWLST,LOWFLG ;IF NOT, TURN OFF TOKEN SEARCH BR 52$O251$: BIC #LOWLST,LOWFLG ;TURN TOKEN SEARCH BACK ON852$: CMPB R2,#S.EXC ;REMARK FIELD CAN ALSO BE LOWER CASE BNE 53$ ;BR IF NOT? BIT #LOWCOM!LOWLST,LOWFLG ;S.EXC NOT REAL IN STRING OR COMMENTR BNE 53$ ;SO SKIP ALSOU1 BIS #LOWCOM,LOWFLG ;SHOW WE ARE IN COMMENT FIELDX0 BIT #2,REMTRM ;ARE WE SAVING COMPILED VERSION ?4 BEQ 54$ ;IF NOT, CONVERT TOKEN, ELSE DON'T CONVERT453$: CMPB R2,#S.EOL1 ;IS CHAR ONE OF 4 TERMINATORS ?" BHIS 15$ ;BR TO TERMINATION CODE BIT #2,REMTRM ;COMPILED PROG.?$ BNE 14$ ;IF SO, CAN SKIP SOME CODE" BIC #177400,R2 ;CLEAR SIGN EXTEND: BIT #LOWLST!LOWCOM,LOWFLG ;IN A QUOTED STRING OR COMMENT?& BNE 14$ ;SKIP TOKEN SEARCH IF WE ARE CMPB R2,#140 ;A TOKEN? BLO 14$ ;IF NOT, BRANCHA354$: CLR -(SP) ;SET NO FLAG FOR SURROUNDING BLANKSL) CMPB R2,#S.VBEN ;ARE WE IN VERBS PROPER?V$ BLOS 6$ ;IF SO, BRANCH TO SET FLAG6 CMPB R2,#S.THEN ;MIGHT BE IN OTHER TOKENS WITH BLANKS) BLO 7$ ;IF NOT, BRANCH (DON'T SET FLAG)E*6$: INC (SP) ;SET SURROUNDING BLANKS FLAG-7$: MOV #INIT11,R0 ;START OF PROTOTYPES -> R0C( SUB #140,R2 ;MAKE R2 INTO LOOP COUNTER3 BEQ 9$ ;IF ZERO, SKIP LOOP TO FIND PROTOTYPE TEXTE)8$: TSTB (R0)+ ;SKIP THROUGH A PROTOTYPE2 BNE 8$ ; SOB R2,8$ ;R2 TIMES,"9$: TST (SP) ;SURROUNDING BLANKS? BEQ 10$ ;IF NOT, BRANCH# MOVB #40,R2 ;IF SO, PRINT LEADINGP BR 11$ ;BLANKI+10$: MOVB (R0)+,R2 ;GET NEXT PROTOTYPE CHARI BEQ 12$ ;IF AT END, BRANCH"11$: PRINTC ;PRINT THE00 ibi4e5edddd CHARACTER BR 10$ ;AND LOOK FOR ANOTHER+12$: TST (SP)+ ;POP SURROUNDING BLANK FLAG;$ BEQ 13$ ;IF NONE, DON'T PRINT CHAR MOVB #40,R2 ;IF ONE, PRINT ITB 14$: PRINTCR.13$: BR 5$ ;AND GO BACK FOR MORE PROGRAM TEXTC15$: BIC #LOWLST!LOWCOM,LOWFLG ;CLEAR LOWER CASE FLAGS JUST IN CASE MOV R2,R0 ;COPY TERM CHARA NEG R0 ;MAKE IT POS.$ ASL R0 ;MPY BY TWO FOR WORD OFFSET, JMP @16$-2(R0) ;AND GO TO APPROPRIATE PLACE16$: .WORD 17$ ;EOL2A .WORD 18$ ;EOS2T .WORD 19$ ;EOS1P .WORD 17$ ;EOL1C/18$: MOVB #S.CON2,R0 ;PUT IN CONCATENATION CHART BR 20$P819$: MOVB #S.CON1,R0 ;PUT IN 1ST TYPE CONCATENATION CHAR)20$: BIT #2,REMTRM ;SAVING COMPILED MODE?4 BNE 14$ ;IF SO, BRANCH$ MOV R0,R2 ;IF NOT, COPY ASCII CHAR BR 14$L17$: CRLF ;DO END OF LINE / CMPB R2,#S.EOL2 ;WAS THIS END OF LOGICAL LINE?C BNE 5$ ;IF NOT, PRINT MORE RTS PC ;ELSE RETURNR R+ .SBTTL DEL00 - DELETE TEXT IN USER PROGRAMA;+2A; .SKIP.; .X ^^DELETE\\; .X ^PROGRAM LINE DELETE1+; .HEADERLEVEL 1 ^^DELETE N1[-N2][,N3...]\\C; .BREAK4; ^THIS ALSO IS PRIMARILY AN IMMEDIATE MODE COMMAND.F; ^IT WILL DELETE INDIVIDUAL LINES WITH SINGLE PARAMETERS OR INCLUSIVE2; RANGES WITH NUMBERS SEPARATED BY A DASH (MINUS).J; ^IF NO NUMBERS ARE SPECIFIED, THE WHOLE PROGRAM TEXT IS DELETED (BUT NOT?; PROGRAM DATA - THIS MUST BE DONE WITH THE ^^CLEAR\\ COMMAND).ED; ^IT CAN BE USED IN PROGRAM MODE ALSO, USUALLY TO DELETE A RANGE OF8; LINE NUMBERS IN PREPARING TO R0 MOV R1,-(SP) ;SAVE A REGISTER MOV 2(R3),R1 ;MAKE R1 POINT TO5* ADD USR,R1 ;START OF DEST FOR BLOCK MOVE' MOV -2(R4),R2 ;CALCULATE # OF BYTES TOE ADD USR,R2 ;MOVE IN R0 AND% SUB R2,R0 ;START OF BLOCK ADD -> R2N BEQ 4$ ;IF ZERO, BRANCHU!3$: MOVB (R2)+,(R1)+ ;DO THE MOVED SOB R0,3$(4$: SUB R1,R2 ;R2 HAS DISTANCE WE MOVED& MOV R1,ENDTXT ;RECORD NEW END OF TEXT MOV (SP)+,R1 ;RESTORE R1R) MOV R2,-(SP) ;SAVE DISTANCE OF TEXT MOVE 9 MOV R3,-(SP) ;SAVE R3 (TOP OF HEADER) AREA TO BE DELETED06 MOV BOLNHD,R2 ;BOTTOM OF BLOCK OF HEADERS TO BE MOVED# MOV R3,R0 ;R0 TEMPORARILY HAS NEWS# ADD #4,R0 ;TOP ADDRESS TO MOVE TOC& MOV R4,R3 ;GET OLD TOP ADDRESS -> R3 MOV R0,R4 ;NEW TOP -> R4. JSR PC,SLUP01 ;SLIDE UP THE REMAINING HEADERS) MOV R4,BOLNHD ;SET NEW BOTTOM OF HEADERSB8 MOV (SP)+,R5 ;POINTS TO START OF HEADERS TO BE ADJUSTED& MOV (SP)+,R0 ;COUNT OF DISTANCE MOVED& MOV 2(R5),R2 ;SEE IF TEXT POINTER FOR' ADD USR,R2 ;DELETE INSTRUCTION WAS INV CMP R1,R2 ;MOVED CODE  BLO 5$ ;IF NOT, BRANCH SUB R0,R1 ;IF SO, ADJUST ITS+5$: CMP R5,BOLNHD ;FINISHED WITH ADJUSTING?  BLO 6$ ;IF SO, BRANCHD, SUB R0,2(R5) ;ADJUST TEXT PTR FOR EACH LINE SUB #4,R5 ;THAT WAS MOVEDT BR 5$ ;AND KEEP GOING;+6$: SKIP ;GET NEXT CHAR IN DELETE COMMANDD$ CMPB R2,#', ;IS IT A COMMA (MORE)? BEQ 1$ ;IF SO, DO IT DEC R1 ;ELSE BACK IT UPM$ JMP INIT02 ;AND GO ON WITH PROGRAM V. .SBTTL INIT00, INIT02 - STATEMENT INTERPRETER;E.; PDP-11 BASIC - COMMAND/STATEMENT INTERPRETER$; REGISTERS USED - R0,R1,R2,R3,R4,R5; UINIT02: ;DSS1CD .IF DF,FPPEMU ;IF FPP EMULATION ;DSS1= .IFF ;IF NOT ;DSS1NB TST FPEXFL ;ANY FLOATING POINT ERRORS? ;DSS1> BEQ 1$ ;IF NOT, SKIP SUBROUTINE ;DSS1> .IFTF ;EITHER WAY ;DSS1D JSR PC,FP00 iOig R2O. CMPB R2,#S.EXC ;DOES LINE START WITH COMMENT? BEQ 9$ ;IF SO, BRANCH MOV (SP)+,R1 ;GET BACK TEXT PTR$ BR INIT20 ;AND DO NORMAL STATEMENT#9$: MOV (SP)+,R1 ;GET BACK TEXT PTRA. BR INIT10 ;AND DO REMARK WITHOUT COUNTING IT16$: ILCERR ;ILLEGAL CHARACTER TERMINATING STMT.A*3$: TSTB QFLG ;CHECK FOR 1 LINE MCR PRINT BEQ 7$ ;IF SOO JMP PCK11 ;EXITEC7$: TST RUNF ;IS RUN MODE SET ;DSS1B BEQ INIT19 ;JUMP IF NOT ;DSS1D MOV LINEHD,R5 ;GET CURRENT LINE HEADER ;DSS1A SUB #4,R5 ;AND POINT TO NEXT LINE HEADER ;DSS1 IINIT13: TST BRFLAG ;SEE IF BREAK SET ;DSS1 B BNE INIT26 ;IF SET, STOP ;DSS1D CMP R5,BOLNHD ;AT END OF PROGRAM? ;DSS1B BLO INIT26 ;IF SO, BRANCH ;**-71 MOV R5,LINEHD ;ESTABLISH NEW CURRENT LINE HEADER - MOV (R5),LINENO ;AND NEW CURRENT LINE NUMBERL MOV 2(R5),R1 ;AND TEXT POINTER  ADD USR,R1 ;ADD IN OFFSET) CLR STCOUN ;SET STATEMENT COUNT TO ZERO 7INIT20: INC STCOUN ;INCREMENT STATEMENT POSITION COUNT 0INIT10: MOV ENDTXT,R3 ;CURRENT END OF TEXT -> R3 INC R3 ;ROUND IT UP TO BIC #1,R3 ;NEXT WORD BOUNDARY5 CMP R3,BOLNHD ;DOES IT MATCH BOTTOM OF LINE HEADERS?  BEQ 2$ ;IF SO, SKIP THE MOVE, MOV BOLNHD,R2 ;START OF BLOCK TO MOVE -> R2" MOV R2,R0 ;CALCULATE DISTANCE TO SUB R3,R0 ;MOVE IN R0(* MOV ENUDAT,R3 ;END OF BLOCK TO MOVE -> R3 JSR PC,SLDN ;SLIDE IT ALL DOWN' SUB R0,BOLNHD ;AND ADJUST THE POINTERS; SUB R0,STUDAT ;INVOLVED SUB R0,ENUDAT- TST LINEHD ;NON-ZERO LINEHD (PROGRAM MODE)?N# BEQ 2$ ;IF NOT, DON'T DO ANYTHINGE% SUB R0,LINEHD ;IF SO, ADJUST IT TOO!C2$:37 MOV ENUDAT,ENUSAV ;SAVE END OF USER DATA IN CASE ERRORT SKIP ;GET VERB " BIC #177400,R2 ;CLEAR SIGN EXTEND( SUB #S.BAS,R2 ;GET ADDRESS DISPLACEMENT" BGE 1$ ;IF REGULAR CODE, PROCEED DEC R1 ;ELSE IMPLIED LET JMP LET00/1$: CMP R2,#S.VBEN-S.BAS ;ARE WE IN VERB RANGE?I) BHI 3$ ;IF NOT, BRANCH TO ANOTHER CHECKT ASL R2R1 MOV #TINPT,INPT ;SET FILE CONTROL BLOCK POINTERSL MOV #TOTPT,OTPT JMP @INIT12(R2) ;GO DO IT03$: CMPB R2,#S.ELSE-S.BAS ;DO WE HAVE ELSE TOKEN BNE 4$ ;IF NOT, ERROR (BRANCH) SRCHLF ;IF SO, IGNORE IT ALLD DEC R1 ;BACK UP TEXT PTR" JMP INIT02 ;AND START OVER AGAIND4$: CMPB R2,#S.EOL2-S.BAS ;ARE WE AT END OF LINE (FROM REMARK TRIM)? BNE 5$ ;IF NOT, ERROR (BRANCH)9 MOVB #S.EOL2,R2 ;IF SO, RESTORE R2 (SIGN EXTEND AND ALL)I! JMP INIT03 ;AND GO AROUND AGAINR 5$: UNRERRINIT26: JMP STOP00/INIT19: MOV #TINPT,INPT ;RESET INPUT AND OUTPUTR1 MOV #TOTPT,OTPT ;IN CASE IMMEDIATE I/O WITH FILE$*INIT00: CLR RUNF ;CLEAR RUN FLAG TO START" CLR BRFLAG ;CLEAR THE BREAK FLAG MOV #RDY00,R0 ;TELL USER THAT PRINTL ;ALL IS READYT RINIT04: PACK ;GET A COMMANDA/INIT01: MOV R1,WORK ;SAVE INITIAL TEXT POINTER SKIP ;GET THE FIRST CHARACTER, CMP R2,#S.EOL2 ;IGNORE IF ONLY A TERMINATOR BEQ INIT04R MOV WORK,R1 ;GET TEXT POINTERI! ATOI ;GET INTERNAL LINE NUMBERE$ MOV R1,R3 ;TEST ADDRESS ALSO IN R3) CMPB @R1,#S.EOL2 ;CALL 00 ibi4e5eddddIT A DELETE IF NOO BNE INIT08C FINDLN ;FIND THE LINE NUMBERT BNE INIT04 ;NO SUCH LINE SQUISH ;FOUND,DELETE IT BR INIT04%INIT08: BIT #2,REMTRM ;COMPILED FILE?/ BEQ INIT05 ;IF NOT, DO REGULAR INTERPRETATION ,1$: CMPB (R1)+,#S.EOL2 ;LOOK FOR END OF LINE BNE 1$N DEC R1 ;BACK UP TEXT POINTER) JMP INIT06 ;AND SKIP THE INTERPRETATIONE;NH; THIS SECTION TAKES THE BUFFER POINTED TO BY R1 AND R3 AND COMPACTS IT.J; IN EFFECT, R1 IS A LEFT BUFFER POINTER AND R3 IS A RIGHT BUFFER POINTER.;T@INIT05: MOV #INIT11,R0 ;START OF VERB AND TOKEN PROTOTYPES -> R0,12$: CMPB (R3),#40 ;IS CURRENT CHAR A SPACE? BNE 13$ ;IF NOT, BRANCH8614$: MOVB (R3)+,(R1)+ ;IF SO, MOVE IT INTO LEFT BUFFER( BR 12$ ;AND KEEP LOOKING FOR NON-SPACE313$: CMPB (R3),#'" ;IS THIS START OF QUOTED STRING?A" BEQ 7$ ;IF SO, GO PROCESS STRING% CMPB (R3),#S.CON1 ;DO WE HAVE COLON?S BNE 22$ ;IF NOT, BRANCHN5 MOVB #S.EOS1,(R1)+ ;IF SO, REPLACE IT WITH EOS TOKENS! INC R3 ;AND PUSH UP LINE MARKERR BR 12$ ;GO AROUND FOR MORE;22$: CMPB (R3),#S.CON2 ;OTHER TYPE OF STATEMENT TERMINATOR? BNE 23$ ;IF NOT, BRANCHE0 MOVB #S.EOS2,(R1)+ ;IF SO, PUT IN SPECIAL TOKEN INC R3) BR 12$I$23$: CMPB (R3),#S.EOL2 ;END OF LINE?/ BEQ INIT06 ;IF SO, GO TO NEXT SECTION OF CODE);"E; NEXT SECTION OF CODE DOES CHECK FOR ALPHA CHAR. IF NOT, WE CAN SAVEB; SOME PROCESSING SINCE ALL PROTOTYPES START WITH AN ALPHA, ! OR ?;V MOVB (R3),R4 ;CHAR -> R4 CMPB R4,#'? BLO 15$ CMPB R4,#'Z BLOS 16$E015$: CMPB R4,#'! ;THIS IS THE OTHER POSSIBILITY) BNE 14$ ;IF NOT, NOT START OF PROTOTYPEN2 MOVB #S.EXC,R2 ;SAVE OURSELVES SOME TIME THIS WAY INC R3 ;ADJUST RIGHT BUFFERN) CLR -(SP) ;DUMMY TO KEEP STACK STRAIGHT20 BR 20$ ;AND GO FINISH LINE WITH NO FANCY STUFF;O&16$: CLR R2 ;INITIALIZE TOKEN COUNTER,11$: MOV R3,-(SP) ;SAVE RIGHT BUFFER POINTER)1$: CMPB (R3),#S.EOL2 ;IS IT END OF LINE?A( BEQ 4$ ;IF SO, NO TOKEN MATCH (BRANCH)-2$: CMPB (R0),#40 ;IS PROTOTYPE CHAR A SPACE?4 BNE 3$ ;IF NOT, BRANCH-26$: CMPB (R3)+,#40 ;SKIP OVER SPACES IN TEXT1 BEQ 26$$ DEC R3 ;BACK UP TO FIRST NON-BLANK627$: CMPB (R0)+,#40 ;SKIP OVER ALL SPACES IN PROTOTYPE BEQ 27$( DEC R0 ;AND BACK UP TO FIRST NON-BLANK03$: CMPB (R0)+,(R3)+ ;DO PROTOTYPE & TEXT MATCH?+ BNE 4$ ;IF NOT, GO TRY FOR NEXT PROTOTYPEC TSTB (R0) ;END OF PROTOTYPE? BNE 1$ ;KEEP TRYING$ ADD #140,R2 ;FORM TOKENE,20$: CMPB R2,#S.VBEN ;IS THIS A VERB PROPER? BLOS 21$ ;IF SO, BRANCH 2 CMPB R2,#S.THEN ;ARE WE IN TOKENS NEEDING SPACES? BLO 19$ ;IF NOT, BRANCHI021$: CMPB -1(R1),#40 ;IS PRECEDING CHAR A SPACE? BNE 18$ ;IF NOT, BRANCHC$ DEC R1 ;IF SO, CAN ELIMINATE SPACE.18$: CMPB (R3),#40 ;IS FOLLOWING CHAR A SPACE? BNE 19$ ;IF NOT, BRANCH0& INC R3 ;IF SO, CAN ELIMINATE IT TOO!519$: MOVB R2,(R1)+ ;PUT IT INTO LEFT JUSTIFIED BUFFER  TST (SP)+ ;CLEAN STACK! CMPB R2,#S.DATA ;DATA STATEMENT?R) BEQ 17$ ;IF SO, NO FURTHER TOKEN SEARCHE) CMPB R2,#S.EXC ;EXCLAMATION TYPE REMARK?P BEQ 25$ CMPB R2,#S.REM ;STD REM?G BEQ 25$$ BR INIT05 ;AND CONTINUE ON IN LINE*4$: MOV (SP)+,R3 ;RESTORE RIGHT BUFFER PTR)5$: TSTB (R0)+ ;SKIP TO END OF PROTOTYPEN BNE 5$E) CMP R0,#PROTEN ;END OF TOKEN PROTOTYPES?A BHIS 6$ ;IF SO, BRANCH& INC R2 ;ELSE INCREMENT TOKEN COUNTER BR 11$ ;AND GO TRY AGAIN46$: MOVB (R3)+,(R1)+ ;PUT IN CURRENT CHAR (RT -> LT) BR INIT05 ;AND START OVERA'7$: MOVB (R3)+,(R1)+ ;PUT IN OPEN QUOTEF 9$: MOVB (R3)+,R4 ;GET NEXT CHAR CMPB R4,#S.EOL2 ;END OF LINE? BNE 8$ ;IF NOT, BRANCH( UNMERR ;IF SO, UNMATCHED QUOTES ERROR8$: CMPB R4,#'" ;END OF QUOTE?3 BEQ 10$ ;IF SO, BRANCH# MOVB R4,(R1)+ ;IF NOT, PUT IN CHART BR 9$ ;AND KEEP GOING,&10$: MOVB R4,(R1)+ ;PUT IN CLOSE QUOTE BR INIT05.17$: MOVB (R3)+,R4 ;THIS SECTION MOVES REST OF/ CMPB R4,#S.EOL2 ;RIGHT BUFFER INTO LEFT BUFFER+ BEQ INIT06 ;LOOKING FOR ( MOVB R4,(R1)+ ;BUT WITH NO TOKEN SEARCH BR 17$+&25$: BIT #1,REMTRM ;DOING REMARK TRIM? BEQ 17$ ;IF NOT, BRANCH.,INIT06: MOVB #S.EOL2,(R1)+ ;MAKE END OF LINE MOV R1,R3 ;END OF LINE -> R3" MOV00 iOig R1 ATOI ;GET LINE # -> R0R TST R0 ;CHECK LINE # BNE 11$ ;IF NON-ZERO, BRANCH5 MOV WORK,R1 ;ELSE RESTORE LEADING SPACES AND BLANKSB211$: SUB R1,R3 ;CALCULATE LEN WITHOUT LINE NUMBER0 MOV R1,WORK ;AND REMEMBER START WITHOUT LINE #&8$: TST R0 ;ANY NON-ZERO LINE NUMBER?( BNE ASSM00 ;IF SO, PUT IT INTO PROGRAM% CMPB (R1),#40 ;LEADING CHAR A SPACE?K BEQ 12$ ;IF SO, BRANCH CMPB (R1),#11 ;OR A TAB?O BEQ 12$ ;ALSO BRANCH IF SO6 TST OLDFLG ;IMMEDIATE MODE COMMAND IN FILE PROGRAM ? BEQ 122$ ;NO' CLR OLDFLG ;YES, CONSIDER IT AN ERRORE4 IMMERR ;IMMEDIATE MODE DURING FILE INPUT AN ERROR'122$: CLOSEF ;ELSE CLOSE OFF OLD FILE: JMP INIT10 ;AND DO COMMAND?7$: MOVB #S.EOL2,(R1)+ ;PUT IN END OF LINE TO TRIM REMARK SHORT#$ MOV R1,R3 ;NOW RE-CALCULATE REMARK! MOV WORK,R1 ;RE-ESTABLISH STARTO* SUB R1,R3 ;R3 NOW HAS LENGTH (SHORTENED)( BR 8$ ;AND BRANCH BACK TO REGULAR CODE$12$: BIT #1,REMTRM ;TRIMMING REMARKS1 BEQ ASSM00 ;IF NOT, GO ASSEMBLE STRAIGHTFORWARDI SKIP ;GET NEXT CHAR( CMPB R2,#S.EXC ;EXCLAMATION TYPE REMARK BEQ 13$ ;IF SO, BRANCH CMPB R2,#S.REM ;STANDARD REMARK BEQ 13$ ;IF SO, ALSO BRANCHO) MOV WORK,R1 ;RE-ESTABLISH START OF LINE  BR ASSM00 ;AND ASSEMBLE LINE813$: JMP INIT04 ;IF CONTINUED REMARK DOING TRIM, IGNORE/SKPQT: CMPB (R1),#'" ;START OF STRING CONSTANT?B BEQ 1$ ;IF SO, BRANCHH RTS PC ;ELSE RETURNA&1$: INC R1 ;PUSH POINTER TO NEXT CHAR CMPB (R1),#'" ;END OF QUOTE?B BEQ 2$ ;IF SO, RETURNS6 CMPB (R1),#S.EOL1 ;END OF STATEMENT OR PHYSICAL LINE? BLO 1$ ;IF NOT, BRANCH" UNMERR ;IF SO, UNMATCHED QUOTES 2$: INC R1 RTS PCR+ .SBTTL ASSM00 - ASSEMBLE LINE OF USER CODEV;RD; ASSEMBLE LINE OF CODE INTO WORKING STORAGE - TRANSFER TO USER AREA"; REGISTERS USED - R0,R1,R2,R3,R4.;N*UPUSRD: CMP ENUDAT,STGOSB ;AT TOP ALREADY? BHIS 3$ ;IF SO, WE'RE DONE MOV R3,-(SP) ;SAVE R3 MOV STGOSB,R4 ;NEW TOP -> R4P MOV BOLNHD,R2 ;OLD START -> R2R MOV ENUDAT,R3 ;OLD TOP -> R3 " MOV R4,R0 ;CALC DISTANCE TO MOVE SUB R3,R0 ;IN R0 JSR PC,SLUP01 ;SLIDE IT UPF MOV (SP)+,R3 ;RESTORE R3 ,4$: ADD R0,ENUDAT ;SAVE NEW END OF USER DATA7 MOV ENUDAT,ENUSAV ;AND ERROR RECOVERY END OF USER DATAE ADD R0,STUDAT ;AND STARTS* ADD R0,BOLNHD ;AND BOTTOM OF LINE HEADERS 3$: RTS PCUASSM00:: ;DSS1EC MOV R3,-(SP) ;SAVE LEN OF LINE ;DSS1,C MOV R0,-(SP) ;AND LINE NUMBER ;DSS1LU ;DSS1SI555$: JSR PC,UPUSRD ;MOVE UP LINE NUMBERS ;DSS1;D MOV BOLNHD,R0 ;NOW CHECK FOR ;**-4 SUB ENDTXT,R0 ;ROOM SUB #4,R0 ;FOR NEW CMP R0,2(SP) ;LINE > BGT 2$ ;IF OK, BRANCH ;DSS1U ;DSS1,5 .IF DF,IASEXT ! M11EXT ;IF SELF-EXTENDING ;FRB3.2DD JSR PC,EXTEND ;TRY TO GET MORE ROOM ;DSS1@ BCC 555$ ;!!GOT IT!!---NOW GO INSERT LINE ;DSS1N .ENDC ;DSS1U ;DSS1 ? OVFERR ;ELSE ERROR (OVERFLOW) ;**-12$: MOV (SP),R0 ;LINE # -> R0' BNE 8$ ;IF A LINE WITH NUMBER, BRANCH ) MOV LSTLIN,R0 ;IF NOT, USE PREVIOUS LINEE BNE 11$ ;IF THERE, BRANCH (OK) LINERR ;ELSE ERROR '11$: INC R0 ;LOOK FOR NEXT HIGHER LINEC FINDLN ;FIND IT! BNE 10$ ;IF EXACT MATCH, BRANCH; ADD #4,R5 ;ELSE ADJUST R5 PTR C10$: MOVB #S.EOL1,-1(R1) ;PUT END OF PHYSICAL LINE IN PREVIOUS LINE  TST (SP)+ ;CLEAN STACK" BR 9$ ;AND SKIP SOME OTHER STUFF8$: FINDLN ;GET LINE& BNE 1$ ;IF NOT ALREADY THERE, BRANCH7 SQUISH ;IF IT'S THERE, DELETE IT (REGISTERS NOW SET)L+1$: MOV R5,R3 ;COPY HEADER INSERTION POINTN+ MOV BOLNHD,R2 ;BOTTOM OF HEADER AREA -> R2B" MOV #4,R0 00 jbi4e5edddd;SLIDE THAT RANGE DOWN1 JSR PC,SLDN ;BY FOUR BYTES (ONE HEADER'S WORTH) * SUB R0,BOLNHD ;AND ADJUST POINTER TO AREA1 SUB R0,R5 ;AND MAKE R5 POINT TO HOLE WE CREATEDL# MOV (SP)+,(R5) ;PUT IN LINE NUMBER * MOV (R5),LSTLIN ;RECORD LAST LINE ENTERED' MOV R1,2(R5) ;AND ADDRESS OF LINE TEXTD0 SUB USR,2(R5) ;MAKE IT AN OFFSET INTO TEXT AREA89$: MOV (SP),R3 ;GET LENGTH OF LINE (MINUS LINE NUMBER)- CMP R1,ENDTXT ;IS INSERTION POINT AT THE ENDN& BEQ 6$ ;IF SO, WE CAN SKIP SOME CODE$3$: SUB #4,R5 ;POINT TO NEXT HEADER CMP R5,BOLNHD ;PAST END YET?B BLO 4$ ;IF SO, BRANCH 6 ADD R3,2(R5) ;IF NOT, ADJUST ALL THE HIGHER LINE PTRS BR 3$)4$: MOV ENDTXT,R4 ;SET UP TO MOVE TEXT UP+ MOV R4,R2 ADD R3,R2 ;GET NEW END -> R2& MOV R4,R0 ;CALCULATE # BYTES TO MOVE SUB R1,R0 ;IN R0 BEQ 6$$5$: MOVB -(R4),-(R2) ;MOVE IT ALL UP SOB R0,5$.6$: MOV (SP)+,R3 ;GET LENGTH OF NEW TEXT AGAIN" ADD R3,ENDTXT ;UPDATE END OF TEXT$ MOV WORK,R2 ;ADDRESS OF TEXT -> R2!7$: MOVB (R2)+,(R1)+ ;MOVE IT ALLR SOB R3,7$ ;IN " JMP INIT04 ;AND GO GET NEXT LINE .SBTTL DATASET ERROR ROUTINES;R; DATASET ERROR ROUTINES;HOLDFER:LSCRFER:&SAVFER: CLR REMTRM ;CLEAR SOME FLAGS& MOV #COMFDB,R0 ;ADDRESS OF FDB -> R0) MOVB F.ERR(R0),R0 ;FCS ERROR CODE -> R0T' MOV R0,PARLST+P.FCS ;STORE IN MO LIST+ PRFERR ;AND GO TO NORMAL ERROR HANDLING,  .SBTTL STATEMENT LIST;H/; DEFINITIONS OF LINE AND STATEMENT TERMINATORS 8S.EOL1 =374 ;END OF PHYSICAL LINE (BUT NOT LOGICAL LINE)-S.EOS1 =375 ;1ST TYPE OF STATEMENT TERMINATORI-S.EOS2 =376 ;2ND TYPE OF STATEMENT TERMINATOROAS.EOL2 =377 ;END OF LOGICAL LINE (MAY BE MULTIPLE PHYSICAL LINES)A+S.CON1 =72 ;COLON FOR ONE ALLOWED SEPARATORO"S.CON2 =134 ;BACKSLASH FOR ANOTHER;.+; DEFINE MACRO VERB AND ADDRESS DEFINITIONSA .MACRO VERBDF NAME,ROUTIN,VDEFP( .ASCIZ /NAME/ ;NAME WITH TRAILING NULL .IF NB,VDEF VDEF=S.MAXT .GLOBL VDEF .ENDC& .PSECT VERBAD ;GET INTO PROPER PSECT .WORD ROUTIN ;DEFINE ADDRESS% .PSECT BASIC3 ;BACK TO BASIC3 PSECTP$ S.MAX=S.MAX+1 ;UPDATE VERB COUNTER .ENDM; ;; DEFINE MACRO FOR TOKEN DEFINITION (NO ASSOCIATED ROUTINE)AJ; THIS MACRO MUST BE USED ONLY AFTER ALL TOKENS WITH ASSOCIATED ADDRRESSES&; IN PSECT 'VERBAD' HAVE BEEN DEFINED.;  .MACRO TOKDEF NAME,TDEF .ASCIZ /NAME/ .IF NB,TDEF TDEF=S.MAXN .GLOBL TDEF .ENDC S.MAX=S.MAX+1A .ENDM;'; DEFINE ADDRESS OF START OF VERB PSECT .PSECT VERBADINIT12:G .PSECT BASIC3 S.BAS=140D S.MAX=S.BASI;A2; NOW DEFINE THE VERBS AND THEIR ROUTINE ADDRESSESINIT11: VERBDF LET LET00U VERBDF IFEND0E VERBDF IF IF00 S.IFT VERBDF GOTO GOTO00 S.GOTO VERBDF FOR FOR00 VERBDF NEXT NEXT00 S.NEXTI VERBDF GOSUB GOSB00 S.GOSB VERBDF RETURN RET00E VERBDF ! REM00 S.EXC VERBDF REM REM00 S.REM VERBDF PRINT PR00 S.PRIN VERBDF ? PR00D VERBDF INP01 VERBDF INPUT INP00 VERBDF READ READ00 VERBDF REM00N VERBDF REM00 VERBDF REM00A VERBDF TRACE TRACE0 S.TRAC VERBDF ONG00  VERBDF ON ONGT00 S.OND VERBDF CALL CALL00 VERBDF DIM DIM00 VERBDF DATA REM00 S.DATA VERBDF DEF DEF00 VERBDF RESTORE RES00 VERBDF OPLB00  VERBDF OPEN OPEN00 VERBDF CLOSE CLSE00M VERBDF LOAD LOAD00 VERBDF UNLOAD UNLD00 VERBDF CON CON00 VERBDF PRIORITY PRI00 VERBDF RANDOMIZE RND01D VERBDF STOP STOP00 VERBDF END STOP00D VERBDF STEP STEP00 S.STEP  VERBDF RUN RUN00 VERBDF CLEAR CLEAR0 VERBDF DELETE DEL00. VERBDF LIST LIST00 VERBDF SAVE SAVE00 VERBDF CHAIN CHAIN0R VERBDF OVERLAY OVL00 VERBDF OLD OLD00 VERBDF SCRATCH SCRA00R VERBDF EXIT PCK11D VERBDF SLEEP SLEEP0D VERBDF BREAK BREAK0  VERBDF SET SET00 VERBDF WAIT WAIT0 S.VBENVERBEN:OFNADD: VERBDF SBS$( SBS00 S.SFSTV VERBDF SEG$( SEG00 VERBDF RJS$( RJS00 VERBDF LJS$( LJS00 VERBDF STR$( FCHR00 VERBDF TRM$( TRM00 VERBDF LTR$( LTR00 VERBDF DAT$( DAT00 VERBDF TIM$( TIM00 VERBDF SEC$( DUM00 VERBDF CHR$( CHR00 VERBDF MI00 jOig R2) MOV #SET01,R0 ;START OF TOKEN LIST -> R0F1$: CMPB (R0)+,R2 ;DO WE MATCH?E BEQ 2$ ;IF SO, BRANCH CMP R0,#SET02 ;AT END OF LIST?E BLO 1$ ;IF NOT, KEEP LOOKING*4$: SETERR ;IF THROUGH, WE HAVE AN ERROR(2$: SUB #SET01,R0 ;GET BYTE OFFSET -> R0& DEC R0 ;ACCOUNT FOR FACT OF AUTO INC SKIP ;NEXT CODE -> R2" CMPB R2,#S.ON ;TURN CONDITION ON?00 jbi4e5edddd BNE 3$ ;IF NOT, BRANCH1 MOVB #1,TRCFLG(R0) ;PUT FLAG IN APPROPRIATE BYTEA BR 5$ ;AND WE ARE FINISHED#3$: CMPB R2,#S.OFF ;DO WE WANT OFF?O BNE 4$ ;IF NOT, AN ERROR3 CLRB TRCFLG(R0) ;IF SO, RESET THE APPROPRIATE FLAGT5$: JMP INIT02 S& .SBTTL EXIT STATEMENT (DOCUMENTATION);+2; .S ; .X ; ^IT DOES NOT CAUSE ANY BRANCHING WHEN IT ITSELF IS EXECUTED,G; RATHER IT CHANGES THE PROCESSING OF ERRORS IN THE ; ^PRECISE INFORMATION AS TO THE CAUSE OF THE ERROR CAN BE HAD9; FROM THE FUNCTIONS ; {510 ON ERROR GOTO 0 ! THIS RESTORES NORMAL ERROR HANDLING}; \\; .F;-"ONG00: EVAL ;GET THE LINE NUMBER BVS 1$ ;CLOSE PAREN IS ERROR' STCFI AC0,ERRBRN ;PUT AWAY LINE NUMBERR$ JMP INIT02 ;AND CONTINUE EXECUTING 1$: STXERR 8 .SBTTL IF END - RESET END-OF-FILE ERROR ROUTINE ADDRESS;+6D; .SLU; .X ^^IF END\\E1; .HEADERLEVEL 1 ^^IF END [_#N] THEN _\\D; .BRMD; ^THIS STATEMENT IS USED TO RESET THE END OF FILE BRANCH ON A GIVENF; FILE OR WITHOUT THE "_#^N", IT SETS THE TERMINAL END OF FILE BRANCH.C; ^THE SPECIFIED FILE MUST HAVE BEEN OPENED WITH THE POSSIBILITY OF C; BEING READ FROM (I.E. CANNOT BE R2\ CMPB R2,#'# ;FILE SPEC'D?  BNE 1$ ;IF NOT, BRANCH/ MOV #400,R0 ;LOOK FOR FILE WITH READ POSSIBLE_& JSR PC,FILFND ;FIND IT WITH PTR -> R3 BNE 4$ ;IF THERE, BRANCH FNMERR ;ELSE ERROR 4$: SKIP ;NEXT CHAR -> R2E6 TST (R3)+ ;AND MAKE FCB PTR CONSISTENT WITH TERMINAL BR 2$ ;AND BRANCHE(1$: MOV INPT,R3 ;TERMINAL FCB ADD -> R3&2$: CMPB R2,#S.THEN ;DO WE HAVE "THEN" BEQ 3$ ;YES, BRANCH_! CMPB R2,#S.GOTO ;OR MAYBE "GOTO"  BEQ 3$ ;OK TOO5$: IFERR ;ELSE ERRORP3$: MOV R3,-(SP) ;SAVE FCB PTR EVAL ;EVALUATE LINE #% BVS 5$ ;CLOSE PAREN AT END IS ERROR  MOV (SP)+,R3 ;RESTORE FCB PTR STCFI AC0,16(R3) ;SAVE LINE #& JMP INIT02 ;AND GO TO NEXT STATEMENT$ .SBTTL SINGLE LINE STEP INSTRUCTION;+2R; .SLT ; .X ^^STEP\\K; .X ^SINGLE LINE EXECUTEE#; .HEADERLEVEL 1 ^^STEP [LINE _#]\\ ; .BR B; ^THIS STATEMENT ALLOWS ONE TO STEP THROUGH A PROGRAM ONE LINE AT ; A TIME.,E; ^THE OPTIONAL LINE NUMBER MAY BE USED TO START AT A DIFFERENT LINE.R@; ^IF NO LINE NUMBER IS SPECIFIED, EXECUTION RESUMES AT THE LINE; FOLLOWING THE LAST STOP.:; ^NOTE THAT IF A BRANCH IS TAKEN THE LINE BEING EXECUTED,A; THE PROGRAM WILL NOT STOP UNTIL THE NEXT LINE AFTER THE BRANCH..4; ^THE STOP USES THE SAME INTERNAL FACILITIES AS THE; _^^B BREAK FEATURE.E; .BRX ; ^EXAMPLE:A; .NFL; ^^; {STEP} ; {STEP 510}; \\; .F;- L .SBTTL PROGRAM CONTINUE;+2R; .SLL ; .X ^^CON\\; .X ^PROGRAM CONTINUE"; .HEADERLEVEL 1 ^^CON00 jOig_\\ ; .BR ?; ^THE ; ^HOWEVER, A NEGATIVE RESULT WILL GIVE AN ERROR AND ZERO WILL; BE TREATED AS A NO-OP.<; ^TRUNCATION OF THE FLOATING EXPRESSION VALUE WILL BE USED.; .FG 1TC; ^THE UNIT OF TIME MAY BE SPECIFIED AS R0S BR 7$1$: CMPB R2,#'S ;SECONDS? BNE 2$ MOV #2,R0 BR 7$2$: CMPB R2,#'M ;MINUTES? BNE 3$C MOV #3,R0 BR 7$3$: CMPB R2,#'H ;HOURS? BNE 4$E MOV #4,R0 BR 7$&4$: CMPB R2,#S.EOS1 ;END OF STATEMENT? BHIS 6$ ;IF SO, DEFAULT 5$: SEC ;INDICATE ERROR  RTS PCE"6$: DEC R1 ;BACK UP TO TERMINATOR MOV #2,R0 ;SET SECONDS TYPED'7$: STCFI AC0,R3 ;INTEGERIZE MAGNITUDEU CLC ;SUCCESS RTS PC#4SLEEP0: JSR PC,SLPWTC ;USE COMMON CODE IN SUBROUTINE BCC 1$ ;IF OK, BRANCHP 2$: SLPERR(1$: BMI 2$ ;NEGATIVE MAGNITUDE IS ERROR BEQ WTSLPC ;ZERO IS NO-OPB MRKT$S #1,R3,R0 ;SET MARK TIMEV BCS 2$ ;BRANCH ON ERROR, WTSE$S #1 ;WAIT FOR A TIME BCS 2$ #WTSLPC: JUNKIT ;SKIP REST OF LINEM MOVB (R1)+,R2 JMP INIT03L 9 .SBTTL WAIT0 - WAIT COMMAND - SPECIFY TIMEOUT PARAMETERST;+3M; .SL ; .X _\\G; ^THE ; {400 WAIT 40 S :! ALL TERMINAL INPUT TO TIME OUT AFTER 40 S}4; {500 WAIT 0 :! RESTORE TO NO TIMEOUT CONDITION}; \\; .F;-8WAIT0: JSR PC,SLPWTC ;USE COMMON CODE FOR SLEEP AND WAIT BCC 1$ ;IF OK, BRANCHE 2$: WATERR(1$: BMI 2$ ;NEGATIVE MAGNITUDE IS ERROR MOV R3,WTMAG ;STORE MAGNITUDE MOV R0,WTUNIT ;STORE UNIT BR WTSLPC ;NOW EXIT COMMAND  S .SBTTL PRI00 - PRIORITY COMMAND;+3; .SLN; .X \\; .BRTF; ^THE , .SBTTL LOAD - USER ASSEMBLY SUBROUTINE LOAD;+7E; .SL ; .X \\; .BREG; ^THIS COMMAND LOADS THE SPECIFIED FILE AS A USER CALLABLE SUBROUTINE.!; ^THE DEFAULT EXTENSION IS ; FINALLY, ONE WORD CONTAINING NUMBER OF WORDS OF CODE PROPER:-; .WORD ?????? ;LEN (IN WORDS) OF CODE PROPERW; ;; NOTE: THESE MODULES MUST BE TASK BUILT WITH /-HD/-FP AND:W ; STACK=0N ; UNITS=0W; D; IN ADDITION POSITION INDEPENDENT CODING TECHNIQUES MUST BE USED IND; WRITING THE CODE BECAUSE ITS POSITION IN THE INTERPRETER WILL VARY.; DEPENDING ON WHAT OTHER ROUTINES ARE LOADED.;NLOAD00:S JSR PC,FNAME ;EVALUATE STRING BNE 1$ ;IF ONE, BRANCH CSIERR ;ELSE ERRORO&1$: JSR PC,CSINT0 ;INTERPRET FILE NAME2 MOV #7653,COMFNB+N.FTYP ;".BTK" EXTENSION DEFAULT ;OPEN FILE IN LOCATE MODEO! OPEN$R LNKOLD,,,#FD.PLC,,,OLDFERE MOV R1,-(SP) ;SAVE TEXT POINTER CLR R1 ;SET UP REGISTERS .IF DF,RSX11M ;IF 11-MI0 MOV #3,R2 ;THE TASK STARTS AT RECORD 3 FOR 11M .IFF ;IF 11-D OR IASU0 MOV #2,R2 ;THE TASK STARTS AT RECORD 2 FOR IAS .ENDC! CLR R3 ;TO POINT TO ZEROTH BYTE, JSR PC,.POINT ;OF 2ND OR 3RD BLOCK (RECORD) GET$ ,,,OLDFER ;AND READ IT IN , MOV #IDNTFY,R3 ;ADDRESS OF IDENT INFO -> R3= MOV F.NRBD+2(R0),R4 ;ADDRESS OF LOAD MODULE IDENT INFO -> R4  MOV #3,R2 ;SET TOE"2$: CMP (R3)+,(R4)+ ;COMPARE 3 WDS BNE 3$ ;IF NO MATCH, BRANCHT SOB R2,2$& MOV (R4)+,R0 ;GET TOTAL LENGTH NEEDED MOV R4,-(SP) ;SAVE INPUT PTRS TSTOK ;CHECK FOR ROOM BHIS 4$ ;IF OK, BRANCH3$: LODERR ;ELSE ERROR&4$: MOV USR,R2 ;START OF AREA TO MOVE# MOV ENUDAT,R3 ;END OF AREA TO MOVEP JSR PC,SLUP ;GO SLIDE IT UPR+6$: MOV USR,R2 ;OLD START OF PROGRAM -> R2V- MOV #USR,R3 ;START ADDRESS OF PARAMETERS TOF ;BE ADJUSTED ADD R0,(R3)+ ;NOW ADJUST ;USR ADD R0,(R3)+ ;THEM ;ENDTXT ADD R0,(R3)+ ; ;BOLNHD ADD R0,(R3)+ ; ;STUDAT ADD R0,(R3) ; ;ENUDAT. MOV (R3),ENUSAV ;AND UPDATE SAVED END OF DATA TST RUNF ;ARE WE RUNNING BEQ 61$ ;IF NOT, BRANCHI% ADD R0,2(SP) ;IF SO, UPDATE TEXT PTRE' ADD R0,LINEHD ;AND LINE HEADER ADDRESS $61$: MOV (SP)+,R4 ;RESTORE INPUT PTR3 MOV (R4)+,R3 ;LEN OF ENTRY PT. TABLE (BYTES) -> R3 - MOV R2,R1 ;COPY OLD END OF CURRENT ROUTINESA/ ADD R3,R1 ;NEW END FOR CURRENT ROUTINES -> R1A MOV R1,-(SP) ;SAVE IT MOV R2,R0 ;CALCULATE) SUB STUROU,R0 ;LEN TO MOVE (BYTES) -> R0R+ MOV STUROU,-(SP) ;SAVE PLACE TO INSERT EPT ADD R3,STUROU ;ADJUST PTR- MOV (SP),R5 ;END OF PREVIOUS ROUTINES -> R5' TST -(R5) ;LAST ROUTINE ADDRESS -> R5 .62$: CMP (R5),#TRAP00 ;IS IT A LOADED ROUTINE?) BHIS 63$ ;IF NOT (IN PURE CODE), BRANCHO$ ADD R3,(R5) ;IF SO, ADJUST ADDRESS SUB #6,R5 ;AND LOOK AT NEXTM BR 62$ ;ROUTINE 63$: ASR R0 ;LEN NOW IN WORDS% BEQ 8$ ;IF ZERO, CAN SKIP SOME CODER.7$: MOV -(R2),-(R1) ;MOVE UP EXISTING ROUTINES SOB R0,7$18$: MOV (SP)+,R2 ;PLACE TO INSERT ENTRY PTS 00 (jOig R2P# MOV (R4)+,R3 ;# OF ENTRY PTS -> R3, BEQ 10$ ;IF ZERO, CAN BRANCH" MOV (SP),R0 ;CALCULATE OFFSET TO,9$: MOV (R4)+,(R2)+ ;MOVE IN TWO RAD50 WORDS" MOV (R4)+,(R2)+ ;WITH ROUINE NAME) MOV (R4)+,(R2) ;AND NOW OFFSET INTO CODEB+ ADD R0,(R2)+ ;PLUS OFFSET TO START OF CODE SOB R3,9$610$: MOV (SP)+,R2 ;INSERTION PT FOR NEW ROUTINES -> R2- MOV (R4)+,R3 ;# OF WDS OF CODE TO XFER -> R3E BEQ 13$ ;IF ZERO, BRANCH MOV LNKOLD,R0 ;RESTORE FDB PTRR+ MOV F.NRBD+2(R0),R1 ;START OF BUFFER -> R1 & ADD #1000,R1 ;NOW END OF BUFFER -> R1(11$: CMP R4,R1 ;ARE WE AT END OF BUFFER BLO 12$ ;IF NOT, BRANCHF" GET$ ;IF SO, GET ANOTHER RECORD# MOV F.NRBD+2(R0),R4 ;AND RESET PTRI12$: MOV (R4)+,(R2)+ ;MOVE IN  SOB R3,11$ ;THE CODE#13$: CLOSEF ;CLOSE THE INPUT FILER MOV (SP)+,R1 ;RESTORE TEXT PTR( SKIP ;CHECK FOR CMPB R2,#', ;COMMA BNE 14$ ;IF NOT, END (BRANCH)D$ JMP LOAD00 ;IF SO, GO AROUND AGAIN114$: DEC R1 ;OTHERWISE AT END (BACK UP TEXT PTR)B4 BIC #FD.PLC,F.RACC(R0) ;AND CLEAR LOCATE BIT IN FDB( JMP INIT02 ;AND CONTINUE ON IN PROGRAM; A .SBTTL UNLOAD - COMMAND TO UNLOAD ALL USER LOADED MACRO ROUTINESN;+7 ; .SL ; .X R3S BEQ 2$ ;IF ZERO, BRANCH ASR R3 ;NOW MAKE IT WORDSG"1$: MOV (R2)+,(R4)+ ;MAKE THE MOVE SOB R3,1$2$: MOV R2,R3 ;COPY OLD END RTS PCT& .SBTTL VARIOUS POINTERS AND VARIABLES; ); SYSTEM VARIABLES DEFINED OR STORED HEREE/; USR AND ENDUSR SET UP AT BEGINNING OF PROGRAMD;  .PSECT BASIC3RDY00: .ASCII /READY/ORDY01: .BYTE 15,12,0 .EVEN .GLOBL TRAP00VECTAB: .WORD 0 .WORD 0 .WORD 0 ;T-BIT TRAP OR BPT .WORD 0 .WORD 0 .WORD 0 .WORD TRAP00 ;TRAP INSTRUCTION .WORD 0 .END BEQ 2$ ;IF ZERO, BRANCH ASR R3 ;NOW MAKEz 8Do; @K0@oM N@ ~p@Ty@\`s@_Mp@X@\`K@(@fh@vL< @y"&@zo =@4{2H;Mv@<&@){%Hb<@8@!v@SZ0@.{`H:2@)E@yr@`@w@#w""@z\M""@6{V HvL @nL`@6_ g@\`p@7{4dH%{MH&{P@O@oMg'@,.b@;M_@E`ZX@vL.!@zL`N@'ą@3{(H)@,.b@,.b@,.b@Uq@)@ya@:0@2N0@5{fHJ@Uq0@z'0@K0@fhW@Aw@vL!@(2@)Ty@:}@}0\@k@X@N9@ ~r@'IR@`X΁@z}@sw@""@t!y@%{_H%{_H'@vL""@0@""^@\`VN@n 0@u0@x""@<&%t@zr@Q@%x@0@y`@)Bx@ ~@""0@.{#He'""@""@|@)[M@4{]H)p@oMy@z<&p@$9f@fh=M@me@f""@; 0@n^@%{`H%{`H!@ NvL@t @)@0@$9B@z,y g@X@/{WHt'@u~0@u0@t<@V/K@*0@s0@sX@%{mH#r0@v~ g@)t @z"{8 H`2{H!Hiy`@!""@59Ps@_΁@f@<&e@s%@:X@ z""@%@%""@0@5@:0@Ay@_M0@ &0@K΁@z"O@(@)Z@)W@ay@;K}@)p@oM%@>M""@w0@${a Hw}@!{ XHl g@#w0@z%{H<&(@""@3 0@/{p&H%@+.N@f""@Iq@"&v@[q0@0{qHjy0@)@%""@z3{H;Mv~@'V@*D@&Nu@[}@2{4dH.{(Hak@U:""@=@N`""@<0@Gw@)'@z8 ~@@=@%@0{rH\q0@6@<@C@)Ps@6a""@'""@"{@:k@yh@K@z' q@zy΁@"0@""@\` U@L0@r0@0@%{xHht @%"&@:0@#:""@(""@h@z$9!@""@Ա(@rX@}""@3{L Hw""@\`!@hp!@)p@:d N@^@){SH3{}H8{`Hz4{pHrg'@w0@:@K^0@6x$@Ѕ`'@f""@:y@!<@w0@t!J@3{V&H%'@oMY@z#N*@y""@΁@_g'@@(r@L^0@_XvL@:4F@&{WH}@y<@ Z `y:hz 8`\y:hy:hy:Ёhy:΁hy:ρhy:сhAIh,Nh 0hy0h>xO\h6) OhK*}hLuh2zK VhxhhZh.xhhyOh&h&hy2hZ hth. {h|hN*h^d0h[g6hzYMhJw0h f0hdhy6hf΁h>xWh(fN\h: fO\h> _Xh h_hxdh'Nh }y0h$&'h| &'h   8N&%e $7 ,U:} v~ g}aknL` Aw$aknL` (:2 ~ *akn^ .l g0`}B:sD:kn^ HswJUw & & +&'e00 8jOig(""P:d Nfh T:d Nfh=M X:d NfhW Z'""d    p @ p @ Ea AmB ZfCR~C& `7`&46a"")t Dt F)J<&L)t PGwR)pV,y gX)p\'^)bhp!l,y gn`}  B8 P  f  W   wB  5xs%""8(;M_0Ա(66_ g8)p<6_ g>)pB' qD)Hhp!NԱ(\(d(n(tUqz<&(|)t t<7 e~e e wR  w7  5 7 |Uq%"" 6_ g:}6_ g_g')W%'8J>t!ԀBvL!Fy<HXP%' VUq^%' dvL< ls%p<@877f 54Etx <$& e` C e E `Jy"&y` y`y<!<.8:<>@BD$F&|(""(eEeLIRRTCO7 8  w`D`8  & LR Uq(Uq0_XvL6_XvL>""B8J_XvLP_XvLRvL!VvL!`!<hy`Y&f@````B` b~  & 2  ^  wvf >t!Jy`"t!J&y"&*y`.y`P""^%"&bKz"{j   7 @FXRNLN EN BNBLROWRUPMOAP00 @j2j4e5eddddUqt<\`s"<&p$\`p. 6 <\`sD\`sJ' q L\`VNR' T\`VNZ'ą \\`VNb'IR d\`VN` SH & ~PP   t' \`VN %x \`VN\`K\`!"&{P,"&v2t 4)8<&:)t @)BxF)ZL)[MR\`KV\`VNx  ¥# 7!!  ` ¥, f4 |<&t  \`VN )pTy)Ty)'' q)*"O2\`VN6"&v@\` UX"{\N`""d4 n"&vr\`VNt)pXV pE E3e  D|\`s) \`p)<&p)t<) t<")(t *).\`K4\`K8\`K<)Bx@&{PH6a""R"&vV% UUUU MeeUU%e@ ~e00 )<&p)%% )"<&p$).<&0)t :)pD&{PH\`KV\`!`&{Pj&{Pp)pv)pzhp!~)Psv& 7 7wP 2 *DU 777~:d Nfh E`ZXy"&t<)$)Bx(&{P06a"":"&vB%D)P\`KT<&%tV)\)Eby`fy"&ny`ry` f  ~   %  %, P w p 5 5 5  L y"&y"&$"OP""`[} e 7   e 7`7`7` @ le & Z %T\ `)Ps:d Nfh w2&{P6y`>y"&By`Fy`Ly"&Pt!Jb&{Pp"O P@ %# B55 e el ,' @ 550:}<`}N&{P   3 ,  fe h* 0  f C :8"O).%""0'""4vL!>o; XX\y<ho = -    * f D  f&N! 0  , X(X0o =Jt bV/K wewA $AmB" 5UEh 5U5.5'E5!`& xyh J,oM N.oMg'4oM N6oMg'oMg'HoM%oM N JoMg'PoM%RoMg'XUqfUqpoM NoM% roMg' z`Ћ~ •   • E x\:5 n X4zDoM NoM% FoMg'PRTVXhUq?7! me1fmm~Bwe 7BmB w!5JXJt!ԀX$t!Ԁ.J6JDt!ԀNX`XlJvXx @, w  &B z h wf hwX \@( (r2468:PUq0f#:""jUq"*D&o =.*D4*DH_g'N_g'PU:""b*DlUq`*wVW" W"W - r7`00 HjOig!<L!<P!<R!vVy<ZXhXlt!Ԁ~6a"" e   C 7wuw w!``@"~8 NvLvL""4X@XH NvLPJXt!ԀbXnt!Ԁ*X`~wX7 7LET<t!Ԁ *DUq%"&)Ps":d Nfh $f""Z K0 8~ ~IF END- Z t  8t 8IF Z N9 8 GOTO" Z ,.b 8FOR Z '0 8 NEXT Z  `X΁ 8 GOSUB Z  +.N 8 RETURN Z \q0 8! Z Uq0 8REM Z Uq0 8 PRINT Z f 8? Z f 8INPUT LINE Z :X 8 INPUT Z :0 8 READ Z Iq 8MAT INPUT Z Uq0 8 MAT READ Z  Uq0 8 MAT LET Z ""Uq0 8 TRACE Z $$  8 8ON ERROR GOTO Z &&d  8d 8ON Z ((_΁ 8 CALL Z **O 8DIM Z ,,u0 8 DATA Z ..Uq0 8DEF Z 000 8   RESTORE Z 22[q0 8OPEN LIBRARY Z 44L`N 8   OPEN Z 66   8  8% %CLOSE Z 88   8  8+ +LOADT Z ::  8 80 0UNLOAD Z <<  8 877CON Z >>  8 8; ;PRIORITY Z @@v  8v 8DDRANDOMIZE Z BBrX 8N NSTOP Z DDyh 8SSEND Z FFyh 8W WSTEP Z HH  8 8\\RUN Z JJs0 8` `CLEAR Z LL&  8& 8f fDELETE Z NN  8 8m mLIST Z PP   8  8r rSAVE Z RR@  8@ 8w wCHAIN Z TT  8 8} }OVERLAY Z VVX  8X 8OLD Z XX  8 8 SCRATCH Z ZZ  8 8 EXIT Z \\>  8> 8 SLEEP Z ^^.  8. 8 BREAK Z ``  8 8SET Z bb*  8* 8 WAIT Z ddb  8b 8 SBS$( Z ff#w0 8 SEG$( Z hhw0 8 RJS$( Z jj#r0 8 LJS$( Z llL0 8 STR$( Z nn&Nu 8 TRM$( Z pp0 8 LTR$( Z rr2N0 8 DAT$( Z tt<0 8 TIM$( Z vvu~0 8 SEC$( Z xx"  8" 8 CHR$( Z zz0 8 MID( Z ||#w0 8 LEFT( Z ~~K΁ 8 RIGHT( Z q>5 8 DDAT$( Z ΁ 8 PIECE$( Z me 8 FRMT$($ Z 'V 8 SPACE$( Z Ay 8 STRING$( Z y0 8& &STREP$( Z "  8" 8. .R5A$( Z u000 Pj Vj4e5edddd 84 4OCT$( Z L^0 8: :OCS$( Z K^0 8@ @SIN( Z 6x$ 8E ECOS( Z +0 8J JATN( Z n 0 8O OEXP(( Z #N* 8T TLOG10($ Z _Mp 8[ [LOG(I Z _M0 8` `ABS( Z 0 8e eSQR( Z zy΁ 8j jINT( Z :0 8o oRND( Z r0 8t tSGN( Z w0 8y yINX( Z :0 8~ ~POS( Z :0 8 NRC( Z SZ0 8 LEN( Z K0 8 VAL( Z 0 8 ASC( Z ; 0 8 OCT( Z :^0 8 COR( Z *0 8 DCEN( Z }0\ 8 TIME( Z "  8" 8 SEC( Z w0 8 ERR( Z ""0 8 ERL( Z "0 8 AR5( Z 3 0 8 FCS( Z  &0 8_FNTHENTONOTANDXORORIMPEQVOFFELSEPROMPTPASS-ALL-INPUTPASS-ALL-PRINTUPPERECHO""r $ *$ x헠t0w( 7w H헠#   2 D(""$*w"""$4g'@g'H"ON""^Ty""j'""v:}c 3w   w w  엠TSMH,59Ps"OV/K,;K}6,.b@,.bD"O  & &) zBw8 v7  d&& &   &x""R""XX\Xb"Onf""~    f   $~&  ````l""%' ;M_' q) <&e")&hp!::>}H8 ~L)pb\M""fJj!<rJvJ ` 6`7``f` W#` ~ `~e! ~ H!v s%vL &yr*yr.yr6hd;M_h)pt}x)pV *뗠,w Ew  7w7 ^~ ꗠt7w&J<&e)(s%0vL 8|M""@\M""@_M0@*_Mp@ NvL@2N0@_XvL@`X΁@*SZ0@:^0@K^0@L^0@6_ g@*_g'@_΁@E`ZX@L`N@N`""@*\`!@\`K@\`VN@\` U@\`p@*\`s@`}@ak@ay@6a""@*:d N@me@f""@f""@f""@*f@fh@fh=M@fhW@5@#r0@r@Q@*r0@rX@sw@s%@s0@*sX@t<@t @u0@#w""@*#w0@Gw@w0@w0@w""@*w0@6x$@x""@,y g@Ay@*zy΁@ya@y`@y`@yh@*y0@y<@y"&@yr@y""@* z""@!{ XH"{8 H`${a Hw%{H*%{MH%{_H%{_H%{`H%{`H*%{mH%{xHh&{P@&{WH'{`Hf*'{`Hc){%Hb){SH.{#He.{%H*.{(H.{`H/{p&H/{WHt/{pH*0{qHj0{rH2{H!Hi2{4dH3{H*3{L H3{V&H3{(H3{}H4{2H*4{]H4{pHr6{V H7{4dH8{`H*}@ ~p@ ~r@ ~@u~0@*v~ g@""@'""@(""@l g@*h@g'@0@|@}""@*""@J@0@""@*D@*Aw@[}@X@X@`@*=@@=@K@}@hp!@*:@}@(Z hy:h* 8h) Oh`K Vh{hh*th N*hZhuh&'h *&'h &h8&h@'Nh ,Nh*y:΁hy:ρhy:Ёhy:сhy:hJ*y:h&AIhzYMh_Xht_h*d0hdhfN\h fO\h f΁h*f0hX[g6hJw0hxhhdxWhX*xO\hfxdh8xhhF}y0hy2h *y6h0y0hyOht h 0h2|hK*}h|  8&%e $&:} v~ g}aknL` 7(Aw aknL` :2 ~ & "akn^ l g `}:s@U*:kn^ sw ~p:kn^ $PUw & (^ ~r :kn^ :kX*p& +&XX*'e5  & (:4F:kn^ :k"t $""*e Ke :y:y()p* =WW.5* )p })Ps$9!$9f*7 %% w vL<  ;M_;Mv~!""t!y*. w \3 D7   s% yh_g'"t!y&s%"TwwWw7(sX$9B:d Nfh vL"")p*r@`   ɥ`ѥ  vL.! vL< ɕ #:"" <<SYJw *SY&0,  & `}*fI@ W pp "`}l g)p$)p(}**1 pp9 &nL`nL`$nL`P $nL` :2akn^ ayd7*:d Nfh  )Ps:d Nfh f""t7*l g`} :2 ~  akn^  |w4  aknL` v~ g:}& & \7 7 &(%"&)  Gw,y gUq vL< $ M w !&%"&` <&e)l g`}*,&(f,  B~7єCk6"<* ȕ &k 6<=k(@=*  0  9 A k""*F Z B¥ *l¥ WWhW W*  7 w!&<@8y<!< y`(6a""*C 5JtEx "$&(*<>fEU& +  <>!<* e` Ne`  J**e`eEeE`00 `jVj4e5edddd(""(:d Nfh *P77e&n  (:d Nfh=M  :d NfhW  '""n*v&f    p @ * p @ Ea 6a""!<*AmB ZfCR~!<Jt!Ԁ*C& B`7`fw!XX&X*w!AmW t!ԀXt!Ԁ"J*4B "1  (EWu y<X*ZWu` BAAmE J*Ew!AmXJ"t!Ԁ* EuB nEP*B  | ,$k*   6    5(;Mv Uqt )<&<&( ,()t  t  )<&)t Gw@ wB *)p,y g )p')hp!*Zw7   ,y g`}s%""& P f t& ;M_6_ g)p6_ g)p$ w 57 &' q) hp!Uq<&()t e&Uq%"" 6_ g :}6_ g_g'*~e e w  w)W%'$J$7  5 (t!ԀvL! y<X%' Uq" 7 77(%'  vL< s%<@8y"&y`*2f 54Etx^y` y<!<&^*X <nnn e` " n nn*~0C e E `((""*eEeLIRTCO "Uq*7  $Uq _XvL_XvL""&_XvL* wD`8  _XvLvL! vL!!<y`*& Y&f@$t!J*<````B` b~ y`t!J y"&y`y`*b  & X   ""%"&"K* w*f    7 "{(Uq*@FXRNLN EN BN" t< \`s<&p\`p & BLROWR$\`s\`s' q \`VNUPMO&' \`VN 'ą \`VNAPSH&'IR \`VN ' \`VN$  & ~&%x \`VN\`K\`!&{P, P&"&v t  )<&)t )BxF P   &)Z \`K\`VN<&t  ^ *\`VN)p Ty )Ty)'' q*r ¥# 7!! )"O\`VN"&v(\` U*  ` ¥, f "{N`""& p& "&v\`VN)p\`s)\`p &)<&p )t<)t< E E3&) t  )\`K\`K\`K* e  D U()Bx&{P6a"""&v% ), U(<&p) %% )<&p*B UU Me()<&)t )p$&{P(\`K*h eUU%e@ ~e0\`!&{P$&{P  0 7 *)p )php!)Ps:d Nfh $ 7w  8(E`ZXy"&t<))Bx&{P* *DU&6a"""&v%)$\`K(<&%t$  R 777&) )Ey`y"&y` y`* f  ~ > y"&y"&$"O*6 %  %, P wb*\ p 5 5 5 ""[}*  xe 7  "`)Ps:d Nfh  w*  e t 7`7`7`&{Py`"y"&&y`*  @ le y` y"&t!J00 hjOig>  8 8m mPRIORITY Z @@  8 8vvRANDOMIZE Z BBrX 8 STOP Z DDyh 8END Z FFyh 8 STEP Z HH  8 8RUN Z JJs0 8 CLEAR Z LL  8 8 DELETE Z NN*  8* 8 LIST Z PPD   8D  8 SAVE Z RR  8 8 CHAIN Z TT  8 8 OVERLAY Z VV  8 8OLD Z XXb  8b 8 SCRATCH Z ZZb  8b 8 EXIT Z \\8  88 8 SLEEP Z ^^Z  8Z 8 BREAK Z ``r  8r 8SET Z bbV  8V 8 WAIT Z dd  8 8 SBS$( Z ff#w0 8 SEG$( Z hhw0 8 RJS$( Z jj#r0 8 LJS$( Z llL0 8 STR$( Z nn&Nu 8 TRM$( Z pp0 8 LTR$( Z rr2N0 8 DAT$( Z tt<0 8   TIM$( Z vvu~0 8 SEC$( Z xxN  8N 8 CHR$( Z zz0 8 MID( Z ||#w0 8$ $LEFT( Z ~~K΁ 8* *RIGHT( Z q>5 81 1DDAT$( Z ΁ 88 8PIECE$( Z me 8@ @FRMT$($ Z 'V 8G GSPACE$( Z Ay 8O OSTRING$( Z y0 8X XSTREP$( Z N  8N 8` `R5A$( Z u0 8f fOCT$( Z L^0 8l lOCS$( Z K^0 8r rSIN( Z 6x$ 8w wCOS( Z +0 8| |ATN( Z n 0 8 EXP(( Z #N* 8 LOG10($ Z _Mp 8 LOG(I Z _M0 8 ABS( Z 0 8 SQR( Z zy΁ 8 INT( Z :0 8 RND( Z r0 8 SGN( Z w0 8 INX( Z :0 8 POS( Z :0 8 NRC( Z SZ0 8 LEN( Z K0 8 VAL( Z 0 8 ASC( Z ; 0 8 OCT( Z :^0 8 COR( Z *0 8 DCEN( Z }0\ 8 TIME( Z N  8N 8 SEC( Z w0 8 ERR( Z ""0 8 ERL( Z "0 8 AR5( Z 3 0 8 FCS( Z  &0 8*FNTHENTONOTANDXORORIMPEQVOFF*ELSEPROMPTPASS-ALL-INPUTPASS-ALL-PR DINTECHON Nr (""V*00 xj{jg v7  ""XX""O*d&& &     f""""(%' *  f &;M_ ' q )<&e)hp!*  $~&: }8 ~)p*  ```` `  \M""J!<JJ*D 6`7``f !v s%vL $yr(yr*j` W#` ~yrh* `~e! ;M_)p&}*~  뗠,w Ew)p"<&e$)*  7w7& s%vL |yr"J&!<* ^~ J뗠t J&g'*(7w&`  g'""*N ~&  ~tREADY h s%vL $yr(yr*j` W#` ~yrh* `~?; GETARG: TO RETRIEVE ADDRESSES OR VALUES FROM AN ARGUMENT LIST; IN A BASIC "CALL" STATEMENT.@; ON ENTRY: R5 POINTS TO A USER TABLE FOR RESULT TO BE PLACED IN=; R1 POINTS TO CURRENT POS IN ARG LIST (MUST BE "," OR "(" )T:; R0 POINTS TO LIST OF BYTE ARG TYPES (TERM. BY 0 OR > 4)?; ON RETURN: R5 POINTS TO THE FIRST WORD PAST THE RETURNED DATA :; R1 POINTS TO NEXT CHAR FOLLOWING LAST ARG JUST RETURNED1; R0 POINTS TO FIRST BYTE AFTER TERMINATING BYTEN; ARG TYPES IN R0 LIST:T7; 1 = INPUT NUMERIC EXPRESSION (2-WORD FLOATING POINT)V;E&; 2 = OUTPUT NUMERIC TARGET (5 WORDS); 2-WORD FP VALUE; 2-WORD FP OFFSET ; 1-WORD OFFSET TO HEADER; 5; 3 = INPUT STRING EXPRESSION (2 WORDS) LEN, ADDRESS(%; 4 = OUTPUT STRING TARGET (5 WORDS)T; 1-WORD ADDRESS); 1-WORD LENGTH; 2-WORD FP OFFSET ; 1-WORD HEADER ADDRESS;T1; FOR STANDARD VAR, OFFSET IS OFFSET FROM STUDAT 8; FOR VIRTUAL VAR, OFFSET IS OFFSET FROM START OF FILE;R; 0 OR > 4 = LIST TERMINATORE0; ALL OTHER REGISTERS WILL BE USED AND DESTROYED; ;EH; GTRGPI: ENABLE POSITION INDEPENDENT ARGUMENT RETRIEVAL FOR USER LOADEDE; ROUTINES. THE ARGUMENT TYPE LIST FOLLOWS THE CODE IN A JSR R4,GTPRIDC; INSTRUCTION. THE ARGUMENT LIST ITSELF IS CONSTRUCTED ON THE STACKR!; AND POINTED TO BY SP ON RETURN. ; ; ON ENTRY:F2; R4 POINTS TO ARG TYPE LIST (VIA JSR R4,@#GTRGPI)"; OLD R4 ON STACK (WILL BE POPPED) ; ON RETURN:E; SP POINTS TO ARG LIST (ON STACK - TO BE REMOVED BY CALLING ROUTINE)T"; OTHER REGISTERS: POTENTIALLY ALL;B;S5; NSTORE: STORE AWAY A VALUE FROM AC0 INTO A LOCATIONE5; STORED IN A TABLE SUCH AS THAT FILLED IN BY GETARG. ); ON CALL: R5 CONTAINS POINTER TO ADDRESSA"; AC0 CONTAINS VALUE TO BE STORED; ON RETURN: NOTHING CHANGED; REGISTERS USED: R0, AC1O;E@; SSTORE: TAKE A STRING DESCRIBED BY LEN IN R4 AND ADDRESS IN R3:; AND STORE IT INTO A STRING VARIABLE WHOSE TABLE ENTRY IS; POINTED TO BY R5.P;I.; ON CALL: R3 = ADDRESS OF STRING TO BE STORED%; R4 = LENGTH OF STRING TO BE STOREDN,; R5 = POINTER TO OUTPUT STRING TABLE ENTRY;F); ON RETURN: R3 POINTS PAST END OF STRINGL ; R4 = 0H; R5 UNCHANGEDE;G*; OTHER REGISTERS USED: R0,R2 (ALL BUT R1) !; ARGCNT: COUNT ARGUMENTS ROUTINE/; ON ENTRY: R1 POINTS TO LEADING OPEN PAREN "("0; ON EXIT: R1 UNCHANGEDE7; R0 CONTAINS COUNT OF ARGUMENTS UP TO ")" IN THE LIST 5; QUOTED STRINGS AND SUBSCRIPTS ARE ACCOUNTED FOR ; OTHER REGISTERS USED: R2?; NOTE: AN END OF LINE WILL TERMINATE THE SCAN IRRESPECTIVE00jj4e5edddd OFI9; ENCLOSING QUOTES AS LONG AS IT IS USED AS THE INTERNALT$; LINE DELIMITER (S.EOL1 OR S.EOL2)D OF STRINGL ; R4 = 0H; R5 UNCHANGEDE;G*; OTHER REGISTERS USED: R0,R2 (ALL BUT R1) !; ARGCNT: COUNT ARGUMENTS ROUTINE/; ON ENTRY: R1 POINTS TO LEADING OPEN PAREN "("0; ON EXIT: R1 UNCHANGEDE7; R0 CONTAINS COUNT OF ARGUMENTS UP TO ")" IN THE LIST 5; QUOTED STRINGS AND SUBSCRIPTS ARE ACCOUNTED FOR ; OTHER REGISTERS USED: R2?; NOTE: AN END OF LINE WILL TERMINATE THE SCAN IRRESPECTIVE ;*********; * ; BASIC4 *; * ;*********; .TITLE BASIC4;3; OBJECT MODULE FOR USER SUBROUTINE CALL PROCESSING; ; ORIGINAL ENTRY DATE: 22-DEC-76; AUTHOR: LARRY SIMPSON'; DEPARTMENT OF MEDICAL PHYSICS&; MICHAEL REESE MEDICAL CENTER;U; CONDITIONAL ON DEFVAR....ALL REFERENCES TO UNDEFINED VARIABLES DEFINE THEM ;DSS1U; (SEE COMMENTS IN BASIC2.MAC) ;DSS1U; ;DSS141 .SBTTL MACRO DEFINITIONS AND GLOBAL DECLARATIONSE;M .PSECT BASIC4,RW,I,GBL,REL,CONO .MACRO TRPSUB A,B .MACRO AD JSR PC,B- .GLOBL BR .ENDM .ENDM;  TRPSUB EVAL EVAL00  TRPSUB EVALS EVLS00 TRPSUB GETADR GTDR00I TRPSUB GETSAD GTSD00T TRPSUB SKIP SKIP00L TRPSUB TSTOK TSTU00 TRPSUB CRLF CRLF00T TRPSUB ATOI ATOI00C TRPSUB PRINTC PRNT00  TRPSUB PRINTL PRN00 TRPSUB SRLST SRL00 ; ; GLOBAL SYMBOLS DEFINED HERE * .GLOBL GETARG CALL00 NSTORE SSTORE OPLB00 .GLOBL PARCHK;$; GLOBAL REFERENCES TO OTHER MODULES) .GLOBL STUDAT ENUDAT INIT02 $CAT5 $CBDSGE* .GLOBL OP.LUN OP.MXL CSINT0 FILFN1 INIT02" .GLOBL S.EOL1 CSDSPT PARLST P.FCS;(; GLOBAL ERROR CODES - DEFINED IN BASIC0* .GLOBL ARGERR CALERR STOERR OVFERR OPLBER .GLOBL OPLFER TM1ERR TM2ERR;U; MACRO CALLS:( .MCALL NMBLK$ FDRC$R FDOP$R GET$ FDOF$L;T; DEFINE FDB OFFSETS LOCALLYFDOF$L;0%; FLOATING POINT REGISTER DEFINITIONSMAC0=%0AC1=%1AC2=%2AC3=%3AC4=%4AC5=%5 T= .SBTTL GETARG - ARGUMENT PROCESSING FOR "CALLED" SUBROUTINESD;S; GETARG ROUTINE7; TO RETRIEVE ADDRESSES OR VALUES FROM AN ARGUMENT LISTF; IN A BASIC "CALL" STATEMENT.@; ON ENTRY: R5 POINTS TO A USER TABLE FOR RESULT TO BE PLACED IN=; R1 POINTS TO CURRENT POS IN ARG LIST (MUST BE "," OR "(" ) :; R0 POINTS TO LIST OF BYTE ARG TYPES (TERM. BY 0 OR > 4)?; ON RETURN: R5 POINTS TO THE FIRST WORD PAST THE RETURNED DATAG:; R1 POINTS TO NEXT CHAR FOLLOWING LAST ARG JUST RETURNED1; R0 POINTS TO FIRST BYTE AFTER TERMINATING BYTEC; ARG TYPES IN R0 LIST:U); 1 = INPUT NUMERIC EXPRESSION (2 WORDS) 5; 2 = OUTPUT NUMERIC TARGET (5 WORDS) ADDRESS, VALUEC5; 3 = INPUT STRING EXPRESSION (2 WORDS) LEN, ADDRESSL;; 4 = OUTPUT STRING TARGET (5 WORDS) HD ADD, OFF, LEN, ADDA; 0 OR > 4 = LIST TERMINATOR0; ALL OTHER REGISTERS WILL BE USED AND DESTROYED; %GETARG: MOVB (R0)+,R4 ;ARG TYPE IN R4S" BEQ ENDARG ;IF ZERO, END OF LIST$ CMP R4,#4 ;SEE IF OTHER TERMINATOR BHI ENDARG ;IF SO, ALSO ENDT ASL R4 ;MAKE INTO WORD OFFSETT. JMP @JMPTBL-2(R4) ;SELECT APPROPRIATE ROUTINEJMPTBL: .WORD INPNUM .WORD OUTNUMU .WORD INPSTRT .WORD OUTSTREENDARG: RTS PC;I7; ROUTINE TO CHECK INITIAL DELIMITER AND SAVE REGISTERSTDLMCHK: SKIP ;GET NEXT CHARA CMPB R2,#', ;COMMA IS OK BEQ 1$T CMPB R2,#'( ;SO IS OPEN PARENR BEQ 1$ ! ARGERR ;ANYTHING ELSE IS ERRORB&1$: MOV (SP)+,R2 ;RETURN ADDRESS -> R2 MOV R0,-(SP) ;SAVE R0 AND R5,. MOV R5,-(SP) ;IN CASE USED IN CALLED ROUTINES JMP (R2) ;DO EFFECTIVE RETURN ;D; ROUTINE FOR INPUT NUMERIC;9INPNUM: JSR PC,DLMCHK ;CHECK DELIMITER AND SAVE REGISTERST EVAL ;GET ARG VALUE IN AC0T BVC 1$ ;IF OK, BRANCH" DEC R1 ;BACK UP OVER CLOSE PAREN21$: MOV (SP)+,R5 ;GET BACK ADDRESS TO STORE RESULT STF AC0,(R5)+ ;AND STORE IT BR FINUP ;GO AROUND AGAINS;E; ROUTINE FOR OUTPUT NUMERIC(OUTNUM: JSR PC,DLMCHK ;DO INITIAL SET UP JSR PC,GETHDR ;GET HEADER BVS AER ;IF ERROR, BRANCHMU 00j{jg BNE 1$ ;VARIABLE EXISTS ;DSS1D JSR PC,NEWVAR ;NOT DEFINED....DEFINE IT ;DSS1N .ENDC ;DSS1U ;DSS1PE1$: CMP R0,#10 ;IS IT STRING? ;**-2  BEQ AER ;IF SO, ERROR ! JSR PC,GTOFFS ;GO GET ANY OFFSETD/ MOV (SP)+,R5 ;RESTORE LOCATION TO STORE RESULTE# MOV R3,(R5)+ ;STORE HEADER ADDRESS; STF AC0,(R5)+ ;AND OFFSET JSR PC,GETNUM ;GET VALUE -> AC0 STF AC0,(R5)+ ;AND STORE IT TOO,FINUP: MOV (SP)+,R0 ;RESTORE R0 LIST POINTER' BR GETARG ;AND LOOK FOR NEXT ARGUMENT AER: ARGERR;;1; ROUTINE FOR INPUT STRING%INPSTR: JSR PC,DLMCHK ;INITIAL SET UP  EVALS ;GET THE STRING BVC 1$ ;IF OK, BRANCH? ARGERR %1$: MOV R3,R5 ;SAFE GUARD THE RESULTR ADD R4,R5 ;IN USER STORAGE INC R5T BIC #1,R5 MOV R5,ENUDAT/ MOV (SP)+,R5 ;GET BACK LIST POINTER FOR RESULT  MOV R4,(R5)+ ;PUT IN LENGTH MOV R3,(R5)+ ;AND ADDRESS BR FINUPE;A; ROUTINE FOR OUTPUT STRINGN%OUTSTR: JSR PC,DLMCHK ;INITIAL SET UPS* JSR PC,GETHDR ;LOOK FOR DEFINED DATA ITEM BVS AER ;IF ERROR, BRANCHRT ;DSS1E .IF NDF,DEFVAR ;IF NO AUTOMATIC VARIABLE DEFINITION ;DSS1E> BNE 1$ ;VARIABLE EXISTS ;DSS1D JSR PC,NEWVAR ;NOT DEFINED....DEFINE IT ;DSS1N .ENDC ;DSS1U ;DSS1KE1$: CMP R0,#10 ;IS IT STRING? ;**-2  BNE AER ;IF NOT, ERROR JSR PC,GTOFFS ;GET OFFSET. MOV (SP)+,R5 ;RESTORE LIST POINTER FOR RESULT" MOV R3,(R5)+ ;SAVE HEADER ADDRESS STF AC0,(R5)+ ;AND OFFSET! MOV R3,R0 ;HEADER ADDRESS -> R01, JSR PC,GETSTR ;SO WE CAN GET THE STRING NOW MOV R4,(R5)+ ;PUT AWAY LENGTH MOV R3,(R5)+ ;AND ADDRESS BR FINUP ; ; SUBROUTINE GTRGPI C; TO ENABLE POSITION INDEPENDENT ARGUMENT RETRIEVAL FOR USER LOADED E; ROUTINES. THE ARGUMENT TYPE LIST FOLLOWS THE CODE IN A JSR R4,GTPRI C; INSTRUCTION. THE ARGUMENT LIST ITSELF IS CONSTRUCTED ON THE STACKE!; AND POINTED TO BY SP ON RETURN.S;O ; ON ENTRY:U2; R4 POINTS TO ARG TYPE LIST (VIA JSR R4,@#GTRGPI)"; OLD R4 ON STACK (WILL BE POPPED) ; ON RETURN:E; SP POINTS TO ARG LIST (ON STACK - TO BE REMOVED BY CALLING ROUTINE) "; OTHER REGISTERS: POTENTIALLY ALL;  .GLOBL GTRGPIGTRGPI:G TST (SP)+ ;POP OLD R4I( MOV R4,R0 ;ESTABLISH ARG TYPE LIST PTR1$: MOVB (R4)+,R3 ;GET TYPEU BEQ 3$ ;IF ZERO, END OF LIST CMP R3,#4 ;CHECK LIMIT' BHI 3$ ;IF TOO HIGH, ALSO END OF LISTT# SUB #4,SP ;ADD TWO WORDS TO STACKO BIT #1,R3 ;CHECK FOR ODD TYPEY% BNE 2$ ;IF SO, INPUT (2 WORDS ONLY)S" SUB #6,SP ;ELSE OUTPUT (5 WORDS)2$: BR 1$ ;GO BACK FOR MORE3$: INC R4 ;ROUND R4 UP TOT BIC #1,R4 ;RETURN ADDRESSG" MOV SP,R5 ;SAVE ARG LIST POINTER& MOV R4,-(SP) ;AND SAVE RETURN ADDRESS$ JSR PC,GETARG ;GO TO NORMAL ROUTINE. RTS PC ;AND RETURN TO ADDRESS SAVED ON STACK G( .SBTTL NSTORE - NUMERIC STORAGE ROUTINE;P; NSTORE ROUTINE0; TO STORE AWAY A VALUE FROM AC0 INTO A LOCATION5; STORED IN A TABLE SUCH AS THAT FILLED IN BY GETARG.R); ON CALL: R5 CONTAINS POINTER TO ADDRESS "; AC0 CONTAINS VALUE TO BE STORED; ON RETURN: NOTHING CHANGED; REGISTERS USED: R0, AC1RNSTORE:" MOV R3,-(SP) ;SAVE SOME REGISTERS MOV R2,-(SP) # MOV (R5),R3 ;HEADER ADDRESS -> R3  LDF 2(R5),AC1 ;OFFSET -> AC1; JSR PC,STONUM ;AND STORE IT MOV (SP)+,R2 ;RESTORE THOSE MOV (SP)+,R3 ;REGISTERS RTS PCR S' .SBTTL SSTORE - STRING STORAGE ROUTINEO;O; SSTORE ROUTINE;; TO TAKE A STRING DESCRIBED BY LEN IN R4 AND ADDRESS IN R3E:; AND STORE IT INTO A STRING VARIABLE WHOSE TABLE ENTRY IS; POINTED TO BY R5.U;O.; ON CALL: R3 = ADDRESS 00jj4e5eddddOF STRING TO BE STORED%; R4 = LENGTH OF STRING TO BE STORED,,; R5 = POINTER TO OUTPUT STRING TABLE ENTRY;(); ON RETURN: R3 POINTS PAST END OF STRINGA ; R4 = 0-; R5 UNCHANGEDT;M*; OTHER REGISTERS USED: R0,R2 (ALL BUT R1);MSSTORE:R# MOV (R5),R0 ;HEADER ADDRESS -> R0S LDF 2(R5),AC0 ;OFFSET -> AC0% JSR PC,STOSTR ;STORE STRING IN R3,R4G RTS PCD .SBTTL ARGUMENT COUNT ROUTINE; ; COUNT ARGUMENTS ROUTINEV/; ON ENTRY: R1 POINTS TO LEADING OPEN PAREN "("U; ON EXIT: R1 UNCHANGEDR7; R0 CONTAINS COUNT OF ARGUMENTS UP TO ")" IN THE LISTE5; QUOTED STRINGS AND SUBSCRIPTS ARE ACCOUNTED FOR; OTHER REGISTERS USED: R2?; NOTE: AN END OF LINE WILL TERMINATE THE SCAN IRRESPECTIVE OFI9; ENCLOSING QUOTES AS LONG AS IT IS USED AS THE INTERNAL $; LINE DELIMITER (S.EOL1 OR S.EOL2)2ARGCNT: MOV R1,-(SP) ;SAVE SO WE CAN RESTORE LATER INC R1 ;BUMP PAST OPEN PAREN CLR R0 ;INITIALIZE COMMA COUNT CLR -(SP) ;PAREN COUNTING WORD0 CLR -(SP) ;CLEAR FLAG INDICATING QUOTED STRING3$: MOVB (R1)+,R2 ;CHAR -> R2R CMPB R2,#S.EOL1 ;END OF LINE? BLO 1$T ARGERRS 1$: TST (SP) ;ARE WE IN STRING? BNE 4$ ;IF SO, BRANCH TST 2(SP) ;INSIDE PARENTHESES? BGT 7$ ;IF SO, BRANCHC CMPB R2,#', ;IS CHAR A COMMA BNE 2$ ;IF NOT, BRANCH INC R0 ;ELSE INCREMENT COUNT BR 3$ ;AND KEEP LOOKINGO2$: CMPB R2,#') ;END OF LIST? BNE 5$ ;IF NOT, TRY FOR QUOTEN CMP (SP)+,(SP)+ ;POP FLAGSC MOV (SP)+,R1 ;RESTORE R1R& INC R0 ;COUNT ARGS INSTEAD OF COMMAS RTS PCI.5$: CMPB R2,#'" ;IS IT START OF QUOTED STRING BNE 6$ ;IF NOT, TRY NEXT CHAR INC (SP) ;SET FLAG ON STACK) BR 3$ ;AND GET NEXT CHAR'6$: JSR PC,OPNPRN ;CHECK FOR OPEN PARENA# BNE 3$ ;IF NOT, TRY SOMETHING NEW INC 2(SP) ;SET FLAGA BR 3$ ;AND TRY NEXT CHAR&7$: JSR PC,OPNPRN ;ANOTHER OPEN PAREN?! BNE 8$ ;IF NOT, TRY CLOSE PARENR INC 2(SP) ;ADD TO NESTED COUNT BR 3$8$: CMPB R2,#') ;CLOSE PAREN?" BNE 3$ ;IF NOT, TRY ANOTHER CHAR+ DEC 2(SP) ;IF SO, DECREMENT NESTING COUNTR BR 3$ 4$: CMPB R2,#'" ;CLOSING QUOTE? BNE 3$ ;IF NOT, TRY AGAINT CLR (SP) ;IF SO, CLEAR FLAGE BR 3$ ;AND KEEP TRYING/OPNPRN: CMPB R2,#'( ;IS IT REGULAR OPEN PAREN?O BEQ 1$ ;IF SO, GO SET EQUALITY5 CMPB R2,#S.SFST ;SEE IF IN RANGE OF FCNS WITH ( INCLY# BLO 2$ ;IF NOT, GO SET INEQUALITYR+ CMPB R2,#S.NFBO ;CHECK AGAINST END OF FCNSE! BHI 2$ ;IF PAST, SET INEQUALITYT,1$: SEZ ;SET EQUALITY (WE HAVE OPEN PAREN) RTS PCN)2$: CLZ ;SET INEQUALITY (NO OPEN PAREN)E RTS PCE N .SBTTL CALL STATEMENT;+7,; .SLL ; .X R0&6$: CMP (R0)+,2(SP) ;FIRST PART MATCH? BEQ 4$ ;IF SO, CHECK MOREN! TST (R0)+ ;IF NOT, BUMP POINTERR( BR 5$ ;AND CONTINUE WITH NO MATCH CODE#4$: CMP (R0)+,(SP) ;2ND HALF MATCH?T BEQ 8$ ;IF SO, BRANCH *5$: TST (R0)+ ;BUMP UP JUMP TABLE POINTER& CMP R0,STUROU ;AT END OF RAD50 TABLE? BLO 6$ ;IF NOT, KEEP TRYING, CALERR ;IF SO, ERRORH,8$: CMP (SP)+,(SP)+ ;CLEAR THE STACK OF JUNK# MOV (SP)+,R1 ;RESTORE TEXT POINTERR- MOV ENUDAT,-(SP) ;SAVE END OF USER DATA AREA JSR PC,@(R0) ;GO TO THE ROUTINE+ MOV (SP)+,ENUDAT ;RESTORE END OF USER DATAF0 JMP INIT02 ;CONTINUE WITH NEXT BASIC STATEMENT;;; ROUTINE TO CHECK FOR CLOSE PAREN AND POSITION R1 PAST IT.; PARCHK: SKIP CMPB R2,#') BEQ 1$A CALERR 1$: RTS PC P9 .IF NDF AC0 ;THIS CONDITIONAL ELIMINATES FOLLOWING CODEL;"; TEST ROUTINE TO REVERSE A STRING CALTBL REVSTR .PSECT BASIC4RVSTB1: .BYTE 3,4,0S .EVEN .PSECT IMPUR4,RW,REL,CON,GBL,D RVSTB2: .BLKW 7U .PSECT BASIC40REVSTR: MOV #RVSTB1,R0 ;ARG TYPE TABLE ADD -> R0( MOV #RVSTB2,R5 ;ARG TABLE ADDRESS -> R5 JSR PC,GETARG ;FILL IN TABLEN$ MOV RVSTB2,R0 ;GET CHAR COUNT -> R0) BEQ 3$ ;IF ZERO, CAN SKIP A LOT OF THIS ' TSTOK ;CHECK ON SPACE (ENUDAT -> R5) BHI 1$ ;IF OK, BRANCHT OVFERR1$: MOV R0,R4 ;LEN -> R4O( BIS #160000,R0 ;SET SCRATCH ITEM HEADER* MOV R0,(R5)+ ;SCRATCH HEADER -> USER AREA) MOV R5,R2 ;SAVE ADDRESS OF RESULT IN R2V MOV RVSTB2+2,R3 ;ADDRESS -> R3, MOV R4,R0 ;LEN -> R0, ADD R4,R3 ;POINT PAST END OF SOURCE STRING,2$: MOVB -(R3),(R5)+ ;NOW REVERSE THE STRING SOB R0,2$% MOV R2,R3 ;SET UP ADDRESS OF RESULTR+3$: MOV #RVSTB2+4,R5 ;POINT TO OUTPUT ENTRYZ JSR PC,SSTORE ;STORE RESULT" JSR PC,PARCHK ;FINISH UP ARG LIST RTS PCI .ENDC ,;+7C; .SKIPR; .HEADERLEVEL 1 R3, OFFSET -> AC0 ;**-1" MOV R3,-(SP) ;SAVE HEADER ADDRESS STF AC0,-(SP) ;AND OFFSET! JSR PC,70$ ;CHECK FOR DELIMITER  EVALS ;GET STRING EXPRESSIONS BVC 7$ ;IF OK, BRANCHO 10$: ARGERR ;ELSE REPORT ERROR%7$: MOV R3,-(SP) ;SAVE STRING ADDRESS. MOV R3,R5 ;AND PROTECT IT  ADD R4,R5 ;BY SETTING NEW  INC R5 ;END OF DATA  BIC #1,R5 ;AREA  MOV R5,ENUDAT MOV R4,-(SP) ;SAVE LEN ' JSR PC,70$ ;WE NEED ANOTHER DELIMITER  EVAL ;GET START POSITION,& BVS 1$ ;IF END OF 00jj4e5eddddEXPRESSION, BRANCH> STCFI AC0,-(SP) ;STORE START POSITION ON STACK (INTEGER FORM) BMI 10$ ;NEG IS BAD BUSINESS# JSR PC,70$ ;NOW WE NEED 4TH VALUEE EVALG BR 2$(1$: STCFI AC0,-(SP) ;SAVE START POSITION. LDCIF 2(SP),AC0 ;USE STRING EXPRESSION LENGTH2$: + DEC (SP) ;MAKE FIRST POSITION INTO OFFSETR$ BMI 10$ ;IF NEGATIVE, ERROR BRANCH# STCFI AC0,-(SP) ;SAVE LEN ON STACK,+ MOV 14(SP),R0 ;ADDRESS OF DATA BLOCK -> R0  LDF 10(SP),AC0 ;OFFSET -> AC0 MOV #1,R5 ;SET WRITE FLAGB5 JSR PC,STRADD ;ACCESS VARIABLE FOR WRITE (ADD -> R3); MOV (SP),R4 ;SPEC'D LEN -> R4T BPL 11$ ;IF POS, BRANCHI NEG R4 ;ELSE MAKE POS0%11$: MOV 2(SP),R5 ;START OFFSET -> R5 . ADD R4,R5 ;NOW TOTAL LENGTH WE NEED FOR XFER BIT #10000,(R0) ;VIRTUAL ARRAY? BNE 12$ ;IF SO, BRANCH MOVB 4(R0),R2 ;LEN -> R2O" BIC #177400,R2 ;CLEAR SIGN EXTEND SUB R5,R2 ;DIFFERENCE -> R2A BGE 3$ ;IF PLUS OR ZERO, OK0& ADD R2,R4 ;ELSE ADJUST SPEC'D LENGTH ADD R2,R5 ;AND TOTAL LENGTH,"3$: TST 4(R0) ;FIXED OR VARIABLE? BPL 4$ ;IF FIXED, BRANCH" MOVB -1(R3),R2 ;CURRENT LEN -> R2" BIC #177400,R2 ;CLEAR SIGN EXTEND+ CMP R5,R2 ;COMPARE NEW MAX TO CURRENT MAXR+ BLE 4$ ;IF CURRENT MAX SUFFICIENT, BRANCHL MOVB R5,-1(R3) ;ELSE ADJUST IT0 BR 4$ ;GO TO COMMON CODE;1; VIRTUAL STRING SECTION;0!12$: MOV 10(R0),R2 ;MAX LEN -> R2C BPL 13$ ;MAKE IT NEG R2 ;ABS VALUE 13$: SUB R5,R2 ;GET DIFFERENCE, BGE 4$ ;IF POS OR ZERO, OK$ ADD R2,R4 ;ELSE ADJUST LEN OF XFER!4$: LDCIF R4,AC0 ;NEW LEN -> AC0V TST (SP)+ ;CHECK ORIGINAL SIGN BGE 6$ ;IF PLUS, LEAVE ITL# NEGF AC0 ;IF MINUS, TRANSFER SIGN +6$: MOV (SP)+,R0 ;START CHAR POSITION -> R0N) MOV R3,R5 ;START OF SOURCE STRING -> R5,-8$: TSTF AC0 ;CHECK ON RIGHT OR LEFT JUSTIFY  CFCC  BMI 83$ ;IF RIGHT, BRANCH ; LEFT JUSTIFY CODE2) CLRF AC1 ;ZERO NUMBER OF LEADING BLANKS 1 SUB (SP),R4 ;GET AMOUNT SPEC'D OVER WHAT WE HAVET BGT 81$ ;IF POS, BRANCHP/ LDF AC0,AC2 ;IF NOT, USE FIRST "L" CHARACTERSF" CLRF AC3 ;AND NO TRAILING BLANKS BR 82$ ;AND BRANCH*81$: LDCIF (SP),AC2 ;ACTUAL LEN TO BE USED2 LDCIF R4,AC3 ;PLUS DIFFERENCE IN TRAILING BLANKS&82$: BR 88$ ;END OF LEFT JUSTIFY CODE; RIGHT JUSTIFY CODE083$: SUB (SP),R4 ;GET # OF CHARS NEEDED TO FILL! BGE 84$ ;IF POS OR ZERO, BRANCH % SUB R4,2(SP) ;BUMP UP STRING POINTERC" ADD R4,(SP) ;AND DECREMENT LENGTH! CLRF AC1 ;SET NO LEADING BLANKS' BR 85$A084$: LDCIF R4,AC1 ;SET NUMBER OF LEADING BLANKS)85$: LDCIF (SP),AC2 ;SET LEN OF CHAR XFERR CLRF AC3 ;NO TRAILING BLANKS-88$: ADD R0,R5 ;GET START POSITION IN SOURCEA MOV 2(SP),R3 ;AND IN EXPRESSION( STCFI AC1,R4 ;NUMBER OF LEADING BLANKS" BLE 42$ ;IF ZERO OR LESS, BRANCH+41$: MOVB #40,(R5)+ ;MOVE IN LEADING BLANKSO SOB R4,41$D*42$: STCFI AC2,R4 ;NUMBER OF ACTUAL CHARS" BLE 44$ ;IF ZERO OR LESS, BRANCH+43$: MOVB (R3)+,(R5)+ ;MOVE IN ACTUAL CHARSR SOB R4,43$O-44$: STCFI AC3,R4 ;NUMBER OF TRAILING BLANKS;! BLE 5$ ;IF ZERO OR LESS, BRANCHL,45$: MOVB #40,(R5)+ ;MOVE IN TRAILING BLANKS SOB R4,45$N5$: ADD #12,SP ;CLEAN STACK RTS PC ;AND RETRURNC70$: SKIP ;NEXT CHAR -> R2 CMPB R2,#'( ;IS IT OPEN PAREN? BEQ 71$ ;IF SO, OK (BRANCH)E CMPB R2,#', ;OR IS IT COMMA? BEQ 71$ ;THAT'S OK TOO!A ARGERR ;IF NOT, ERROR 71$: RTS PC; B& .SBTTL OPEN LIBRARY COMMAND PROCESSOR;+7S; .SLH; .X ^^OPEN LIBRARY\\ ; .X ^LIBRARY OPEN!; .HEADERLEVEL 1 ^^OPEN LIBRARY\\ ; .NFR ; ^FORMAT:-; 50 ^^OPEN LIBRARY _#N,_\\5; .FA; ^THIS COMMAND FUNCTIONS SIMILARLY TO THE STANDARD S.QL00j{jg+2 ;DEFINE SIZE OF USER DATA ITEM SIZE;T?LIBNAM: NMBLK$ QESLIB,MLB,,SY,0 ;DEFINE DEFAULT FILE NAME BLOCKB;H(OPLB00: SKIP ;GET NEXT CHAR AFTER VERB CMPB #'#,R2 ;IS IT POUND SIGNN BEQ 1$ ;IF SO, OKL2$: OPLBER ;OTHERWISE ERRORD1$: EVAL ;GET FILE NUMBERE BVS 2$ ;REPORT ERROR" STCFI AC0,R4 ;STORE NUMBER IN R4+ MOVB R4,OP.LUN ;STORE FOR FUTURE REFERENCEE CMP R4,#2 ;CHECK LUN IN RANGEP BLE 2$Y CMP R4,#OP.MXL} BGT 2$ + CLR R0 ;NO OTHER BITS REQUIRED FOR SEARCHS; JSR PC,FILFN1 ;SEE IF WE CAN FIND ANOTHER FILE WITH NUMBERI BNE 2$ ;IF SO, ERROR SKIP ;NEXT CHAR CMPB #',,R2 ;SHOULD BE COMMA BNE 2$ ;IF NOT, ERRORE EVALS ;GET FILE NAME  BVS 2$ ;ON ERROR, BRANCH CLR R2 ;NO SWITCH TABLEE0 MOV R3,R0 ;MAKE SURE R0 <> 0 (WE HAVE STRING!)( JSR PC,CSINT0 ;INTERPRET COMMAND STRING4 MOV #S.QLBF,R0 ;SET SIZE FOR USER LIBRARY FILE AREA" TSTOK ;CHECK (AND ENUDAT -> R5) BHIS 3$ ;IF OK, BRANCH OVFERR2'3$: MOV STGOSB,R2 ;SET UP TO MOVE BLOCKS MOV STUFDB,R3 ;OF DATA DOWN% JSR PC,SLDN ;TO ACCOMMODATE NEW FDB* SUB R0,R2 ;R2 POINTS TO START OF NEW FDB MOV R2,R3 ;ALSO R3 SUB R0,STGOSB ;UPDATE PTRSR SUB R0,STFONX SUB R0,STUFDB) ASR R0 ;R0 NOW WORD COUNT FOR ZERO LOOPI4$: CLR (R2)+ ;CLEAR OUT AREA SOB R0,4$ MOV R3,R0 ;MAKE R0 POINT TO0 ADD #11.*2,R0 ;FDB START! FDRC$R ,#FD.PLC ;SET LOCATE MODEL- FDOP$R ,OP.LUN,#CSDSPT,#LIBNAM,#FO.RD!FA.SHR> JSR PC,.OPEN  BCC 5$R$ MOV #S.QLBF,R0 ;SIZE OF LIBRARY FDB% MOV STGOSB,R2 ;SET UP TO MOVE IT ALLD MOV STUFDB,R3 ;BACK UPT JSR PC,SLUP ; ADD R0,STGOSB ;ADJUST PTRS BACK ADD R0,STFONX ADD R0,STUFDB6$: OPLFER ;DECLARE ERRORP$5$: GET$ ;GET FIRST RECORD (BLOCK) BCS 6$ ;ON ERROR, BRANCH# MOV F.NRBD+2(R0),R2 ;ADDRESS -> R2 " MOVB 32(R2),2(R3) ;STORE MNT SIZE& MOV #80.,4(R3) ;PUT IN MAX BYTE COUNT) MOV 34(R2),6(R3) ;STARTING BLOCK FOR MNTF" MOV 36(R2),10(R3) ;NO. OF ENTRIES MOV R0,12(R3) ;CLACULATE BUFFER ADD #S.FDB,12(R3) ;ADDRESSB MOV R0,16(R3) ;FDB ADDRESS  MOVB OP.LUN,R4 ;CALCULATE AND( DEC R4 ;DECREMENT FOR INTERNAL STORAGE BIS #10000,R4 ;SET HEADER FOR MOV R4,(R3) ;LIBRARY FILEP' JMP INIT02 ;GO ON WITH NEXT STATEMENTI; ; INITIAL SET UP ROUTINE%; ON ENTRY: R0 CONTAINS ARG TYPE LIST;'; R1 POINTS TO "(" OF ARG LIST IN CALL 0; ON EXIT: R0 POINTS TERM. BYTE OF ARG TYPE LIST8; R5 POINTS PAST LAST FILLED IN VALUE OF ARG VALUE LIST7; R1 POINTS PAST END OF ARG LIST AND IS SAVED ON STACKA; QLUN CONTAINS START OF FCBV; QLUN+2 CONTAINS START OF FDBP;N1SETUP: MOV #MPARLS,R5 ;ARGUMENT RETURN LIST -> R5L! JSR PC,GETARG ;GET THE ARGUMENTSR+ JSR PC,PARCHK ;CHECK FOR FINAL CLOSE PAREN02 MOV (SP),-(SP) ;MOVE RETURN ADDRESS DOWN ON STACK MOV R1,2(SP) ;SAVE TEXT POINTER LDF QLUN,AC0 ;LUN IN AC0S STCFI AC0,R4 ;INTEGER -> R4 ( DEC R4 ;DECREMENT FOR INTERNAL STORAGE BIS #10000,R4 ;SET TYPE! MOV #7400,R0 ;SET MASK TO IGNORET JSR PC,SRCHFL ;GO FIND IT BNE 1$ ;IF FOUND, BRANCH LDCIF #-1,AC0 ;SET ERROR CODEV, JMP ERRFIN ;AND GO FINISH ERROR PROCESSING21$: MOV R3,QLUN ;SAVE START OF FILE CONTROL BLOCK+ MOV R3,12(R3) ;RE-CALCULATE BUFFER ADDRESS;/ ADD #26+S.FDB,12(R3) ;SO WE DON'T CLOBBER COREV,11$: ADD #26,R3 ;MAKE R3 POINT TO FDB START! MOV R3,QLUN+2 ;AND STORE IT AWAYL RTS PCS;S; RAD50 CONVERSION ROUTINE8; ON ENTRY: R0 POINTS TO START OF STRING TO BE CONVERTED ; R4 CONTAINS LENGTH OF STRING7; ON EXIT: 2 RAD50 WORDS ON STACK (1ST 2(SP), 2ND (SP))U%; R0 POINTS TO TERMINATING CHARACTERC; ALL REGISTERS USED;O+R50CVT: MOV (SP)+,R5 ;POP RTN ADDRESS TO R5A MOV R0,R3 ;NOW MAKE R3 ADD R4,R3 ;POINT PAST END ANDE! MOVB #',,(R3) ;PUT IN TERM. CHAR() JSR PC,$CAT5 ;GET FIRST RAD50 WORD -> R16 MOV R1,-(SP) ;SAVE IT ON STACK( BCC 1$ ;IF SCAN NOT TERMINATED, BRANCH/ CLR -(SP) ;ELSE PUT DEFAULT 2ND WORD ON STACK0 BR 2$"1$: JSR PC,$CAT5 ;CONVERT 2ND WORD MOV R1,-(SP) ;AND SAVE IT"2$: JMP (R5) ;DO EFFECTIVE RETURN; ; FIND AND POSITION ROUTINE :; ON ENTRY: STACK CONTAINS 2 RAD50 WORDS FOR QUESTION NA00jj4e5eddddME; QNAM CONTAINS LEN OF NAMED/; ON EXIT: QUESTION TYPE (MAX ANS #) -> 14(FCB)3#; BLOCK # (.MACRO LINE) -> 20(FCB))'; BYTE OFFSET (.MACRO LINE) -> 22(FCB)F;T(FILPOS: MOV QLUN,R3 ;START OF FCB -> R3 MOV QLUN+2,R0 ;FDB START -> R0 * MOVB #R.FIX,F.RTYP(R0) ;SET FOR FIXED LEN5 MOVB #FD.PLC!FD.RAN,F.RACC(R0) ;RAN ACC, LOCATE MODEV+ MOV 6(R3),F.RCNM+2(R0) ;MNT STARTING BLOCK $ CLR F.RCNM(R0) ;CLEAR OUT HIGH WORD( MOV 10(R3),R5 ;NO. OF MNT ENTRIES -> R5# MOV (SP)+,R4 ;RETURN ADDRESS -> R4O- MOV (SP)+,R2 ;SECOND RAD50 PART OF QUES NAMEI MOV (SP)+,R1 ;AND FIRST HALF 0 MOV R4,-(SP) ;SAVE RETURN ADDRESS BACK ON STACK7$: GET$ ;READ IN MNT BLOCK2 BCC 19$ ;IF OK, BRANCH2 JMP FCSERS ;GO RECORD FCS CODE AND RETURN STATUS919$: MOV F.NRBD+2(R0),R3 ;STARTING ADDRESS OF BLOCK -> R3  MOV R3,R4 ;END ADDRESS -> R4 ADD F.NRBD(R0),R4,5$: CMP R1,(R3)+ ;COMPARE FIRST PART OF NAME BEQ 3$ ;IF MATCH, TRY SECOND+ TST (R3)+ ;OTHERWISE POP PAST SECOND PART BR 4$ ;AND TRY AGAIN$3$: CMP R2,(R3)+ ;SECOND PART MATCH? BEQ 8$ ;IF SO, BRANCHM 4$: DEC R5 ;ARE WE THROUGH LIST$ BLE 6$ ;IF SO, RETURN ERROR STATUS' ADD #4,R3 ;JUMP OVER BLOCK AND OFFSETB! CMP R3,R4 ;AT END OF BLOCK YET? ! BLO 5$ ;IF NOT, DO SMALLER LOOPT, BR 7$ ;ELSE READ IN NEW BLOCK AND CONTINUE*6$: LDCIF #-3,AC0 ;LOAD ERROR RETURN CODE% JMP ERRFIN ;FINISH ERROR PROCESSING38$: MOV (R3)+,R2 ;BLOCK -> R2 CLR R1 ;BLOCK HIGH CLEAR MOV (R3)+,R3 ;BYTE OFFSET -> R3( MOVB #R.VAR,F.RTYP(R0) ;SET FOR VAR LEN9 BICB #FD.RAN!FD.PLC,F.RACC(R0) ;SEQUENTIAL AND MOVE MODEM JSR PC,.POINT ;POINT TO RECORDT! MOV QLUN,R5 ;START OF FCB -> R5T& GET$ ,12(R5),4(R5) ;GET HEADER RECORD BCS 9$P! JSR PC,.MARK ;MARK FILE POSITIONO MOV R2,20(R5) ;SAVE BLOCK AND MOV R3,22(R5) ;BYTE OFFSETC" GET$ ;NOW GET FIRST REAL RECORD- MOV F.NRBD+2(R0),R1 ;ADDRESS OF BUFFER -> R1R BCC 11$ ;IF ALL OK, BRANCH59$: JMP FCSERS ;GO RECORD FCS CODE AND RETURN STATUS+-11$: MOV R1,R3 ;GET ADDRESS OF BYTE PAST END # ADD F.NRBD(R0),R3 ;OF LINE READ INC- CLRB (R3) ;AND SET STOPPER FOR ATOI ROUTINE,1 SKIP ;POINT PAST FIRST NON-SPACE (OR TAB) CHARC ADD #5,R1 ;POINT PAST '.MACRO' SKIP ;NEXT NON-BLANK CHAR CMPB R2,#', ;IS IT COMMA?O BNE 12$ ;IF NOT, BRANCHK' SKIP ;GET NEXT NON-BLANK AFTER COMMA 12$: DEC R1 ;BACK UP POINTERM3 ADD QNAM,R1 ;ADD LEN OF QUES NAME TO TEXT POINTER$" SKIP ;GET NEXT NON BLANK OR TAB+ CMPB R2,#', ;IS IT COMMA (ALSO DELIMITER): BNE 13$ ;IF NOT, BRANCH  SKIP ;NEXT NON BLANK OR TAB013$: DEC R1 ;BACK UP POINTER TO START OF NUMBER' ATOI ;GET NUMBER WHICH FOLLOWS -> R0I2 MOV R0,14(R5) ;SAVE QUES TYPE (INCL MAX RESPONSE)' LDCIF R0,AC0 ;STORE AWAY MAX RESPONSE MOV #QSTAT,R5 ; JSR PC,NSTORE RTS PC )FCSERS: LDCIF #-2,AC0 ;PUT IN ERROR CODEF% MOVB F.ERR(R0),R5 ;SIGN EXTEND IN R5E4 MOV R5,PARLST+P.FCS ;AND STORE FOR FUTURE REFERENCE JMP ERRFING;N; DISPLAY ROUTINEBC; ON ENTRY: FILE POSITION ASSUMED TO BE STORED AS IN FILPOS ROUTINEA%; ON EXIT: SCREEN HAS QUESTION PUT UP3E; TYPE: 0) TEXT DISPLAY (NO NUMBERS BUT OPTIONAL STRING CAN BE USED)C'; 1) SINGLE ANSWER QUESTION (NO CR-LF)E3; 2+) MULTIPLE CHOICE (TYPE IS MAX # OF RESPONSES)Y;X?DISPLA: JSR PC,FILPNT ;POINT TO START OF QUESTION (.MACRO LINE)D* GET$ ,12(R5),4(R5) ;GET 1ST LINE (.MACRO) BCS FCSERSN$ MOV 14(R5),R4 ;RESPONSE COUNT -> R4! DEC R4 ;DECREMENT FOR BRANCHINGP' BLT 11$ ;IF INFO (MULTI-LINE), BRANCHT! BEQ 21$ ;IF SINGLE TEXT, BRANCHR GET$ ;GET QUESTION TEXT BCS FCSERS ;ON ERROR, BRANCH MOV 12(R5),R1 ;ADDRESS -> R1( MOV F.NRBD(R0),R3 ;LEN -> R3C! BEQ 2$ ;IF ZERO, CAN SKIP A LOTU"1$: MOVB (R1)+,R2 ;CHARACTER -> R2 PRINTC ;PRINT IT SOB R3,1$2$: CRLF CLR R4 ;INIT ANSWER NUMBER%8$: JSR PC,5$ ;PUT OUT LEADING CHARS $ MOV 12(R5),R0 ;BUFFER ADDRESS -> R0 MOVB #40,(R0)+ ;PUT IN SPACEE! INC R4 ;INCREMENT ANSWER NUMBERM% MOV R4,R1 ;PUT IN R1 FOR CONVERSION( CLR R2 ;NO LEADING ZEROES$& JSR PC,$CBDSG ;CONVERT TO ASCII -> R0& MOVB #'),(R0)+ ;DELIMIT FOR GOOD FORM# MOVB #40,(R0)00j{jg R3 MOV F.NRBD+2(R0),R1 ;ADD -> R1,"6$: MOVB (R1)+,R2 ;NEXT CHAR -> R24 CMPB R2,#'\ ;IS IT BACK SLASH (END OF TEXT PROPER) BEQ 7$ ;IF SO, BRANCH1 PRINTC ;ELSE PRINT IT SOB R3,6$ ;DO WHOLE LINE7$: CRLF ;END THE LINE# CMP R4,14(R5) ;UP TO MAX RESPONSE?G! BLT 8$ ;IF NOT, DO ANOTHER LINEI RTS PC ;DONE WITH DISPLAYI;E-; SUBROUTINE FOR INSERTING LEADING CHARACTERSP%5$: LDF COUNT,AC1 ;GET CHARS PER LINEE STCFI AC1,R3 ;AND PUT IN R3L BLE 4$ ;IF ZERO OR NEG, RETURN% MOV STRIN+2,R1 ;STRING ADDRESS -> R1,/3$: TST STRIN ;ANYTHING LEFT IN SOURCE STRING?2 BLE 4$ ;IF NOT, DONE MOVB (R1)+,R2 ;PUT CHAR -> R2 PRINTC ;AND PRINT IT& DEC STRIN ;DECREMENT REMAINING COUNT SOB R3,3$6 MOV R1,STRIN+2 ;PUT IN MODIFIED ADDRESS FOR NEXT TIME 4$: RTS PC;8; MULTI-LINE TEXT OUTPUT11$: GET$ ;GET TEXT LINE BCS FCSERSU$ MOV 12(R5),R1 ;BUFFER ADDRESS -> R1* MOV #ASCENM,R4 ;ADDRESS OF '.ENDM' STRING# SKIP ;GET FIRST NON-BLANK OR TABE) DEC R1 ;BACK UP TO FIRST NON-BLANK CHARR MOV #5,R2 ;LENGTH -> R2$14$: CMPB (R1)+,(R4)+ ;MATCH BNE 12$ ;IF NOT, DO OUTPUT SOB R2,14$ ;KEEP GOING RTS PC ;IF FINISH, RETURNA+12$: JSR PC,5$ ;PUT OUT LEADING CHARACTERSG% MOV F.NRBD(R0),R3 ;LEN OF LINE -> R3T# MOV F.NRBD+2(R0),R1 ;ADDRESS -> R1$#13$: MOVB (R1)+,R2 ;CHARACTER -> R2T PRINTCT SOB R3,13$ ;PRINT WHOLE LINE CRLF ;END OF LINE BR 11$ ;KEEP GOING TILL DONE;A5; ROUTINE FOR SINGLE LINE TEXT ENTRY QUESTION DISPLAYO'21$: JSR PC,5$ ;PUT OUT LEADING STRINGA GET$ ;GET QUESTION TEXT MOV F.NRBD(R0),R3 ;LEN -> R3  MOV F.NRBD+2(R0),R1 ;ADD -> R1P22$: MOVB (R1)+,R2 ;CHAR -> R2 PRINTCF SOB R3,22$R RTS PCJ)MDRTN: MOV (SP)+,R1 ;RESTORE TEXT POINTERV 1$: RTS PC5ERRFIN: TST (SP)+ ;POP OFF SUBROUTINE RETURN ADDRESS>,ERRFN1: MOV #QSTAT,R5 ;ADDRESS POINTER -> R5$ JSR PC,NSTORE ;STORE THE BAD STATUS BR MDRTNE;OD; QLINK ROUTINE TO LINK TO QUESTION LINKED BY ANSWER # GIVEN IN CALL; ON ENTRY: QLUN HAS FCB ADD.1; QLUN+2 HAS FDB ADD.(; PREVIOUS QUESTION TYPE 2 (OR GREATER).; ON EXIT: R1 POINTS TO ADDRESS OF LINKED NAME; R4 HAS LEN OF LINKED NAME+; NOTE: POINTERS ONLY GOOD UNTIL NEXT GET$;S&QLINK: MOV QLUN,R5 ;FCB POINTER -> R56 LDF QNAM,AC0 ;GET NUMBER OF RESPONSE TO LAST QUESTION STCFI AC0,R4 ;INTEGERIZE -> R4 BLE 4$ ;ZERO OR NEG IS ERROR/ CMP R4,14(R5) ;COMPARE TO MAX RESPONSE ALLOWEDE BLE 1$ ;IF IN RANGE, BRANCHO+4$: LDCIF #-3,AC0 ;ERROR: NO SUCH QUESTION JMP ERRFINN$1$: MOV QLUN+2,R0 ;FDB ADDRESS -> R0) CLR R1 ;CLEAR HIGH PART OF BLOCK NUMBER, MOV 20(R5),R2 ;SET UP LOW PART OF BLOCK NO. MOV 22(R5),R3 ;AND BYTE OFFSET 3 JSR PC,.POINT ;POINT TO FIRST RESPONSE TEXT RECORD:$ MOV 12(R5),R1 ;BUFFER ADDRESS -> R1 GET$ ,R1,4(R5) ;.MACRO LINE GET$ ;QUESTION LINE2$: GET$ ;GET NEXT ANSWER4* SOB R4,2$ ;GET AS MANY RECORDS AS ANSWER$ MOV R1,R4 ;CALCULATE END OF BUFFER ADD F.NRBD(R0),R4( MOV R4,R2 ;DUPLICATE END ADDRESS IN R2 SUB R1,R2 ;GET BACK LEN -> R2$ BEQ 4$ ;IF ZERO, ERROR(3$: CMPB (R1)+,#'\ ;FOUND START OF LINK? BEQ 5$ ;IF SO, BRANCH2* SOB R2,3$ ;GO THROUGH WHOLE LINE LOOKING- BR 4$ ;IF NO LINK, ERROR (NO LINK QUESTION)F%5$: SKIP ;GET NEXT NON-BLANK OR TAB, DEC R1 ;BACK UP TO IT SUB R1,R4 ;LEN -> R41 MOV R4,QNAM ;LENGTH STORED FOR FUTURE REFERENCEA RTS PCS;R; FILE POINT ROUTINE5; ON ENTRY: FILE POSITION STORED AS IN FILPOS ROUTINEA; QLUN CONTAINS FCB POINTER; QLUN+2 CONTAINS FDB POINTER"; ON EXIT: R5 CONTAINS FCB POINTER; R0 CONTAINS FDB POINTER-; FILE IS POSITIONED FOR READ OF .MACRO LINEF ; OTHER REGISTERS USED: R1,R2,R3#FILPNT: MOV QLUN,R5 ;FCB PTR -> R5O MOV QLUN+2,R0 ;FDB PTR -> R0F CLR R1 ;CLEAR HIGH BLOCK NUM.O% MOV 20(R5),R2 ;SET UP LOW BLOCK NUM.R2 MOV 22(R5),R3 ;SET UP BYTE OFFSET FOR .MACRO LINE JSR PC,.POINT ;POINT TO ITR RTS PCP00jj4e5edddd;T; STORE STATUS ROUTINEL; USED TO RETURN FILE TYPE (COUNT FOR MUL CHC) ON PREVIOUSLY POSITIONED FILE,; ON ENTRY: FILE SET UP AS IN FILPOS ROUTINE; QLUN CONTAINS FCB POINTER9; ON EXIT: 14(FCB) STORED IN QSTAT VARIABLE (2ND IN LIST)F; REGISTERS USED: R5,AC0#STATST: MOV QLUN,R5 ;FCB ADD -> R5T& LDCIF 14(R5),AC0 ;TYPE (COUNT) -> AC0" MOV #QSTAT,R5 ;ADD. FOR STORE PTR JSR PC,NSTORE ;STORE IT RTS PCM ;+72; .SL3#; .HEADERLEVEL 1 ^QUESTION ^DISPLAY; .X ^QUESTION ^DISPLAYI; .BRSA; ^A SERIES OF ROUTINES CAN BE USED FOR DISPLAYING QUESTIONS AT A 3; TERMINAL FOR INTERACTIVE DATA ENTRY APPLICATIONS.YE; ^THE TEXT OF THE QUESTIONS THEMSELVES RESIDES IN A FILE MADE BY THEE@; ; 0) ^MULTI-LINE TEXT DISPLAY(; 1) ^SINGLE LINE QUESTION (TEXT INPUT); 2) ^MULTIPLE CHOICE DISPLAY; .F; .SLIF; ^THE QUESTIONS ARE FORMATTED AS MACROS WITH THE NAME OF THE QUESTION; BEING THE NAME OF THE MACRO.A; ^THERE IS A SINGLE ARGUMENT TO THE MACRO, A NUMBER WHICH IS THE A; TYPE AS SPECIFIED ABOVE EXCEPT IN THE CASE OF TYPE 2, IT IS THEE@; TOTAL NUMBER OF CHOICES FOR THAT MULTIPLE CHOICE QUESTION (CAN; NEVER BE LESS THAN 2).; .SLRG; ^THE QUESTION NAMES ARE USED FOR LINKING OF MULTIPLE CHOICE QUESTIONSE0; AND FOR QUESTION REPLACEMENT BY THE LIBRARIAN.6; ^QUESTION NAMES MAY BE UP TO 6 CHARACTERS IN LENGTH.D; ^THE CHARACTERS MUST BE LEGAL ; ; -3 = ^QUESTION NOT FOUND (FOR A VARIETY OF REASONS)>; ; ^THE TEXT CORRESPONDING TO ; ^NO INTERNAL RESTRAINTS ARE PLACED ON THE VALUE OF R0 2 CLRF COUNT ;CLEAR COUNT OF OPTIONAL INPUT STRING BR 4$#2$: MOV #MDARG1,R0 ;LONG LIST -> R0O 4$: RTS PC&MDIS02: JSR PC,SETUP ;DO INITIAL SETUP. MOV QNAM+2,R0 ;ADDRESS OF QUESTION NAME -> R0 MOV QNAM,R4 ;LEN -> R4:MDIS03: JSR PC,R50CVT ;COME BACK WITH RAD50 WORDS ON STACK' JSR PC,FILPOS ;GO GET FILE IN POSITION!MDIS04: JSR PC,DISPLA ;DO DISPLAYQ( JMP MDRTN ;AND RETURN WITH RESTORED R1(CDIS: JSR PC,MDIS01 ;DO INITIAL CHECKING. ADD #CDARG-MDARG,R0 ;ADJUST THE ARGUMENT LIST JSR PC,SETUP ;SET UP THE FILE7 JSR PC,QLINK ;GET POINTERS FOR LINKED QUES NAME STRINGM MOV R1,R0 ;ADDRESS -> R0# JMP MDIS03 ;FINISH UP AS FOR MDISI;I; RE-DISPLAY PREVIOUS QUESTION.; CALL "RDIS"(LUN,STATUS,DUMMY[,STRIN$,COUNT]) .PSECT BASIC4(RDIS: JSR PC,MDIS01 ;DO INITIAL CHECKING2 ADD #CDARG-MDARG,R0 ;USE CHAIN TYPE ARG TYPE LIST JSR PC,SETUPL, JSR PC,STATST ;STORE STATUS (TYPE OR COUNT) BR MDIS04 .PSECT BASIC4(MPOS: MOV #MDARG,R0 ;ARG TYPE LIST -> R0% JSR PC,SETUP ;DO INITIAL FILE SET UP,' MOV QNAM+2,R0 ;ADD. OF QUES NAME -> R0T MOV QNAM,R4 ;LEN OF NAME -> R4.MPOS01: JSR PC,R50CVT ;GET RAD50 NAME ON STACK) JSR PC,FILPOS ;POSITION FILE TO QUESTIONE JMP MDRTN ;AND RETURND(CPOS: MOV #CDARG,R0 ;ARG TYPE LIST -> R0% JSR PC,SETUP ;DO INITIAL FILE SET UPT8 JSR PC,QLINK ;DO QUESTION LINK (R1 HAS ADDRESS, R4 LEN) MOV R1,R0 ;ADDRESS -> R0 BR MPOS01 ;FINISH UP AS ABOVE (RPOS: MOV #CDARG,R0 ;ARG TYPE LIST -> R0% JSR PC,SETUP ;DO INITIAL FILE SET UPR5 JSR PC,STATST ;STORE QUESTION STATUS (TYPE OR COUNT). JMP MDRTN .PSECT BASIC4MQARG: .BYTE 1,2,3,4,0CQARG: .BYTE 1,2,1,4,0)MQTXT: MOV #MQARG,R0 ;ARG TYPE LIST -> R0;" JSR PC,SETUP ;INITIAL FILE SET UP( MOV QNAM+2,R0 ;ADD. OF QUES. NAME -> R0 MOV QNAM,R4 ;LEN -> R4.MQTXT1: JSR PC,R50CVT ;GET RAD50 NAME ON STACK$ JSR PC,FILPOS ;POSITION TO QUESTION(MQTXT2: JSR PC,FILPNT ;POINT TO QUESTION$ GET$ ,12(R5),4(R5) ;GET .MACRO LINE BCC MQTXT5P'MQTXT3: LDCIF #-2,AC0 ;LOAD ERROR CODEI JMP ERRFN1 ;AND FINISH UPT!MQTXT5: GET$ ;GET QUESTION LINE.,MQTXT4: MOV F.NRBD(R0),R4 ;LEN OF LINE -> R4' MOV F.NRBD+2(R0),R3 ;ADD OF LINE -> R3V' MOV #STROUT,R5 ;ADDRESS TO STORE -> R5, JSR PC,SSTORE ;GO STORE STRINGQ JMP MDRTN)CQTXT: MOV #CQARG,R0 ;ARG TYPE LIST -> R0-! JSR PC,SETUP ;INITIAL FILE SETUPD' JSR PC,QLINK ;GET LINKED QUESTION NAMEN MOV R1,R0 ;ADD. OF NAME -> R0N* BR MQTXT1 ;FINISH UP AS IN PREVIOUS CODE)RQTXT: MOV #CQARG,R0 ;ARG TYPE LIST -> R0 " JSR PC,SETUP ;INITIAL FILE SET UP1 JSR PC,STATST ;STORE STATUS OF PREVIOUS QUESTIONL! BR MQTXT2 ;AND FINISH AS BEFOREN .PSECT BASIC4MAARG: .BYTE 1,2,3,4,1,0CAARG: .BYTE 1,2,1,4,1,0 .EVEN)MATXT: MOV #MAARG,R0 ;ARG TYPE LIST -> R0S% JSR PC,SETUP ;DO INITIAL FILE SET UPQ! MOV QNAM+2,R0 ;ADD OF NAME -> R0P MOV QNAM,R4 ;LEN OF NAME -> R45MATXT1: JSR PC,R50CVT ;CONVERT NAME TO RAD50 ON STACK ) JSR PC,FILPOS ;POSITION TO NAME ON STACKN+MATXT2: JSR PC,FILPNT ;POINT TO .MACRO LINEE$ GET$ ,12(R5),4(R5) ;GET .MACRO LINE BCS MQTXT3 ;ON ERROR, BRANCH GET$ ;QUESTION LINE BCS MQTXT3Q# LDF ANS1,AC0 ;ANSWER NUMBER -> AC0 STCFI AC0,R4 ;INTEGERIZE -> R41$: GET$ ;GET NEXT LINE. BCS MQTXT3M& SOB R4,1$ ;GET ANSWER LINE WE WANTED( BR MQTXT4 ;AND FINISH AS QUESTION CODE)CATXT: MOV #CAARG,R0 ;ARG TYPE LIST -> R0 " JSR PC,SETUP ;INITIAL FILE SET UP3 JSR PC,QLINK ;LINKED QUESTION ADD -> R1, LEN -> R4S MOV R1,R0 ;ADDRESS -> R0% BR MATXT1 ;USE ABOVE CODE TO FINISHO)RATXT: MOV #CAARG,R0 ;ARG TYPE LIST -> R0E" JSR PC,SETUP ;INITIAL FILE SET UP, JSR PC,STATST ;STORE STATUS (TYPE OR COUNT)' BR MATXT2 ;AND FINISH WITH ABOVE CODE  .PSECT BASIC4)CQNAM: MOV #CQARG,R0 ;ARG TY00jj4e5eddddPE LIST -> R0M" JSR PC,SETUP ;INITIAL FILE SET UP3 JSR PC,QLINK ;ADD OF LINKED QUES. -> R1, LEN -> R4: MOV R1,R3 ;ADD -> R3/ MOV #STROUT,R5 ;ADDRESS OF STORE POINTER -> R5! JSR PC,SSTORE ;STORE NAME STRING-1 JSR PC,STATST ;STORE STATUS OF PREVIOUS QUESTIONA JMP MDRTN)RQNAM: MOV #CQARG,R0 ;ARG TYPE LIST -> R0;" JSR PC,SETUP ;INITIAL FILE SET UP, JSR PC,STATST ;STORE STATUS (TYPE OR COUNT)0 JSR PC,FILPNT ;POINT TO .MACRO LINE OF QUESTION# GET$ ,12(R5),4(R5) ;GET THE RECORDM BCC 4$ ;IF OK, BRANCHS5 JSR PC,FCSERS ;DO ERROR EXIT (JSR PC FOR STACK ONLY)L(4$: MOV 12(R5),R1 ;ADDRESS OF LINE -> R1$ MOV R1,R3 ;DUPLICATE ADDRESS -> R3* ADD F.NRBD(R0),R3 ;POINT PAST END OF LINE' MOVB #',,(R3) ;PUT IN DELIMITING COMMAT# SKIP ;GET FIRST NON-BLANK OR TABA ADD #5,R1 ;PUSH PAST '.MACRO'01$: SKIP ;NEXT NON-BLANK CHARE CMPB R2,#', ;IS IT COMMA?R) BEQ 1$ ;IF SO, THEN WANT SOMETHING ELSEJ MOV R1,R3 ;MAKE R3 POINT TOI DEC R3 ;START OF NAME("2$: MOVB (R1)+,R2 ;NEXT CHAR -> R2 CMPB R2,#40 ;SPACE?P BEQ 3$ ;IF SO, END CMPB R2,#11 ;TAB?N BEQ 3$ ;ALSO END' CMPB R2,#', ;COMMA IS ALSO TERMINATORD BNE 2$ ;IF NOT, NOT ENDD!3$: MOV R1,R4 ;END ADDRESS -> R4I DEC R4 ;BACK UP TO TERMINATORT SUB R3,R4 ;LEN -> R4- MOV #STROUT,R5 ;ADD OF PTR FOR STORAGE -> R5T! JSR PC,SSTORE ;STORE NAME STRINGA JMP MDRTN .END#', ;IS IT COMMA?R) BEQ 1$ ;IF SO, THEN WANT SOMETHING ELSEJ MOV R1,R3 ;MAKE R3 POINT TOI DEC R3 ;START OF NAME("2$: MOVB (R1)+,R2 ;NEXT CHAR -> R2 CMPB R2* 8L@ ""@o =@*""@-Z@N*@Ty@Z@*!<@"O@"{@%x@<&e@*<&p@&'@' q@,2@,Z@*,y@.&@y:Ё@Ssr@L`Z @*L`Z&@\`VN@\` U@6a""@:d N@*f΁@f0@fh@5lW@ql@Q@*Lm` @t<@t @xh@xW@*xd@y2@y`@y`@y""@*yZ@yy@y@yp:@ya@*y<@y!@y"&@yr@%{_@*.{%@3{(@'""@(""@ @*9x@:@}@ 8r@hp!@*:@( 8hv Oh h*ivhOvhvHh| h\, h*.I.h:h|Q hQvh\Svh*S hZ`hL`Nh.:d hp h*)qvhsvh6sHh f΁Lm` (5lW*75! w BC ql@Q5lW*A pp Dl:}}}*BW\~ D7 xhql@Q"5lW&5lW*BC 5  .MACRO:5lWLm` B.ENDM:R*R    G ""(G*x7K  w-Z Kql@Qql@Q* e | @w e f *dG X wR  Gql@Qql@Q&R*< @R , *wR*  N h p p ql@Qql@Q*6 wX  w:}} ya*\  >@     *z  pp  zql@Qql@Q*p ć 7  }}}(* V @ F D  8  *C (w    p ya * p  PA Cl˕, e}&xh*@  ,C B  ,Dxhf  w  yawX  w:}} ya*\  >@     *z  pp 10 ! DO ALL BASIC DOCUMENTATION 11 DIM A$[1]'15 ! EXTRACT DOCUMENTATION FROM SOURCES020 B=0 : CALL "SPAWNB"("BAS BASREMOVE.BAS/RN",B)C21 B=0 : CALL "SPAWNB"("PIP BASIC0.RNO,BASIC1.RNO,BASIC2.RNO/PU",B)C22 B=0 : CALL "SPAWNB"("PIP BASIC3.RNO,BASIC4.RNO,BASIC5.RNO/PU",B) 23 PRINT "RUNOFF TEXT EXTRACTED"25 ! EXTRACT TABLE OF CONTENTS-30 B=0 : CALL "SPAWNB"("BAS BASTOC.BAS/RN",B)&32 PRINT "TABLE OF CONTENTS EXTRACTED"35 ! GET RID OF FIRST OUTPUT.40 B=0 : CALL "SPAWNB"("PIP BASIC.TMP;*/DE",B)45 ! USE RNP TO INSERT TOC350 B=0 : CALL "SPAWNB"("RNP BASIC.RNO=BASIC.1ST",B) %51 PRINT "TABLE OF CONTENTS INSERTED"A55 ! MAKE DOCUMENT FILE0"56 INPUT "DIABLO OUTPUT (Y/N) ";A$>60 IF A$="N" THEN LET B=0 : CALL "SPAWNB"("RNO BASIC=BASIC",B)E61 IF A$="Y" THEN LET B=0 : CALL "SPAWNB"("RNO BASIC.DIA/SC=BASIC",B)!62 PRINT "DOCUMENT FILE READY"*65 B=0 : CALL "SPAWNB"("PIP BASIC.*/PU",B):66 B=0 : CALL "SPAWNB"("PIP BASIC.TOC;*,BASIC.1ST;*/DE",B)70 EXIT40 B=0 : CALL "SPAWNB"("PIP BASIC.TMP;*/DE",B)10 ! DO ALL BASIC DOCUMENTATION 11 DIM A$[1]'15 ! EXTRACT DOCUMENTATION FROM SOURCES,20 B=0 : CALL "SPAWNB"("BXC BASREMOVE/RN",B)C21 B=0 : CALL "SPAWNB"("PIP BASIC0.RNO,BASIC1.RNO,BASIC2.RNO/PU",B)C22 B=0 : CALL "SPAWNB"("PIP BASIC3.RNO,BASIC4.RNO,BASIC5.RNO/PU",B) 23 PRINT "RUNOFF TEXT EXTRACTED"25 ! EXTRACT TABLE OF CONTENTS-30 B=0 : CALL "SPAWNB"("BXC BASTOC.BUG/RN",B)&32 PRINT "TABLE OF CONTENTS EXTRACTED"35 ! GET RID OF FIRST OUTPUT.40 B=0 : CALL "SPAWNB"("PIP BASIC.TMP;*/DE",B)4500jjj5edddd ! USE RNP TO INSERT TOC350 B=0 : CALL "SPAWNB"("RNP BASIC.RNO=BASIC.1ST",B)F%51 PRINT "TABLE OF CONTENTS INSERTED"X55 ! MAKE DOCUMENT FILE0"56 INPUT "DIABLO OUTPUT (Y/N) ";A$>60 IF A$="N" THEN LET B=0 : CALL "SPAWNB"("RNO BASIC=BASIC",B)E61 IF A$="Y" THEN LET B=0 : CALL "SPAWNB"("RNO BASIC.DIA/SC=BASIC",B)!62 PRINT "DOCUMENT FILE READY"*65 B=0 : CALL "SPAWNB"("PIP BASIC.*/PU",B):66 B=0 : CALL "SPAWNB"("PIP BASIC.TOC;*,BASIC.1ST;*/DE",B)70 EXIT40 B=0 : CALL "SPAWNB"("PIP BASIC.TMP;*/DE",B)45*; CONDITIONAL TO ASSEMBLE MODULES OF BASIC; ;RSX11M=1 =; FOLLOWING LINE USED WITH IMPUR.MAC TO ASSEMBLE A VERSION OFU=; IMPUR HAVING FSR PSECTS ALONG WITH GLOBAL SYMBOL DEFINITIONN7; ** USED TO CREATE A SINGLE USER (NON-SHARED) BASIC **U;) ;SNGUSR=1W=; FOLLOWING LINE CAUSES OF BASIC UNDER RSX11M OR IAS V 3.2 TOA6; DYNAMICALLY EXTEND ITSELF WHEN USER STORAGE RUNS OUT ;M11EXT=1IASEXT=19; HEADER FILE TO DEFINE SYMBOL TASK FOR ASSEMBLING MODULER;; IMPUR AS A TASK MODULE (AS OPPOSED TO SYMBOL TABLE ONLY).L ; ** USED FOR SHAREABLE BASIC **;;TASK=1WA;DEFINE THE CONDITIONAL TO HAVE UNDEFINED VARIABLES AUTOMATICALLYR;DEFINED WHEN REFERENCED;BDEFVAR=0;;DEFINE THE CONDITIONAL TO GENERATE FULL ERROR MESSAGE TEXT;G ;FULTXT=0A;DEFINE THE DEFAULT UIC VARIABLE TO BE OTHER THAN 0 TO ENABLE THEII;DEFAULT UIC OPTION WITH THE VARIABLE SET TO THE OCTAL UIC CODE, (USUALLY F;1,1 OR 401, IF BASIC TRIES TO DO AN "OLD" "CHAIN", "RUN" ETC AND DOESE;NOT FIND THE PROGRAM IN QUESTION UNDER THE CURRENT UIC, IT WILL ALSO G;TRY TO FIND THE PROGRAM UNDER THE DEFAULT UIC. THIS ENABLES FREQUENTLYA&;USED PROGRAMS TO BE USED FROM ANY UIC;E DEFUIC=401D;DEFINE THE CONDITIONAL TO INCLUDE FPP EMULATION PACKAGE (FPPEMULAT)";FOR USE WITH A PDP 11/40 WITH FIS ; FPPEMU=0F;DEFINE CONDITIONAL SO THAT SPAWN TRIES SENDING COMMAND LINE TO ...MAS;IF FIRST CALL FAILSTRYMAS=1H;DEFINE CONDITIONAL SO THAT IF WE ARE RUNNING ON A PRO UNDER P/OS, WE DOC;NOT DO A GETMCR COMMAND LINE DIRECTIVE, (NOT AVAILABLE UNDER P/OS)A;PRO=1RY TO FIND THE PROGRAM UNDER THE DEFAULT UIC. THIS ENABLES FREQUENTLYA&;USED PROGRAMS TO BE USED FROM ANY UIC;E DEFUIC=401D;DEFINE THE CONDITIONAL TO INCLUDE FPP EMULATION PACKAGE (FPPEMULAT)";FOR USE WITH A PDP 11/40 WITH FIS ; FPPEMU=0F;DEFINE CONDITIONAL SO THAT SPAWN TRIES SENDING COMMAND LINE TO ...MAS;IF FIRST CALL FAILSTRYMAS=1H;DEFINE CONDITIONAL SO THAT IF WE ARE RUNNING ON A PRO UNDER P/OS, WE DOC;NOT DO A GETMCR COM>1 REM PROGRAM TO EXTRACT DOCUMENTATION FROM BASIC MACRO FILES 2 REM 15-OCT-76 - LARRY SIMPSON23 REM READS FROM SOURCE FILES BASIC0-BASIC4(.MAC)&4 REM AND MAKES RUNOFF FILE BASIC.RNO*10 DIM L$[80]V,L1$[80]V,C2$[7]V,S$[40]V(7)20 DIM N$[40]V(7),M$[40]V,A$[1] 30 C2$=".WC"35 CF=0040 M$="----------------------------------------""50 INPUT "DIABLO OUTPUT (Y/N) ";A$"200 ! SET UP SEPERATE CHAPTERS201 DATA ^^INTRODUCTION\\,210 DATA ^^LOADING/RUNNING/SAVING PROGRAMS\\220 DATA ^^PROGRAM STATEMENTS\\P!230 DATA ^^ARITHMETIC FUNCTIONS\\M232 DATA ^^STRING FUNCTIONS\\C%235 DATA ^^I/O _& FILE MANIPULATION\\ !240 DATA ^^LOADABLE SUBROUTINES\\ 300 FOR I=1 TO 7"310 N$(I)="BASIC"+STR$(I-1)+".RNO"320 OPEN #3,N$(I)+"/WR")"330 READ S$(I) : S$(I)=LTR$(S$(I))340 PRINT #3,".CHAPTER ";S$(I) 390 CLOSE 3-400 N$(I)=N$(I)+"/AP"- 410 NEXT I420 F=0O!500 ! EXTRACT TEXT FROM BASICS501 FOR I2=1 TO 501510 N$="BASIC"+STR$(I2-1)+".MAC/RO/EN:600/LN:132"G520 OPEN #4,N$530 INPUT LINE #4,L$$540 IF SBS$(L$,1,2) <> ";+" THEN 530550 GOSUB 3000 560 GOTO 530 600 CLOSE 4C605 PRINT "END FILE";I2-1N 610 NEXT I2!620 OPEN #4,"SPAWN.MAC/RO/EN:670"630 INPUT LINE #4,L$#640 IF SBS$(L$,1,2)<> ";+" THEN 630P650 GOSUB 3000 660 GOTO 630 670 CLOSE 4L 1000 CLOSE 31001 ! SET RNO INITIAL INFO 1010 OPEN #3,"BASIC.1ST/WR"P,1020 PRINT #3,".PS 60,79" : PRINT #3,".LS 1"41030 PRINT #3,".LM 10;.RM 75" : PRINT #3,".TS 15,25"1045 PRINT #3,".FG 18"1050 L$=DAT$(0)N1055 PRINT #3,".DT ";L$,106000jjj ";" THEN 3050"&3070 IF SBS$(L$,2,1) = "-" THEN RETURN3071 IF A$="Y" THEN 3080-3072 PP=POS(L$,CHR$(123)) : IF PP<1 THEN 3076O%3074 L$=SEG$(L$,1,PP-1)+SEG$(L$,PP+1)U-3076 PP=POS(L$,CHR$(125)) : IF PP<1 THEN 3080I%3078 L$=SEG$(L$,1,PP-1)+SEG$(L$,PP+1)U3080 PRINT #3,LTR$(SBS$(L$,2))3090 GOTO 3050#4000 ! HANDLE # IN MACRO SOURCEA 4001 CP=1 ,4005 JJ=POS(L$,"#",CP) : IF JJ<1 THEN RETURN4010 CP=JJ+2 : NC=NC+1;4015 L$=SEG$(L$,1,JJ-1)+"_"+SEG$(L$,JJ,LEN(L$)) : GOTO 40055000 ENDSBS$(L$,1,1) <> ";" THEN 3050"&3070 IF SBS$(L$,2,1) = "-" THEN RETURN3071 IF A$="Y" THEN 3080-3072 PP=POS(L$,CHR$(123)) : IF PP<1 THEN 3076O%3074 L$=SEG$(L$,1,PP-1)+SEG$(L$,PP+1)U-3076 PP=POS(L$,CHR$(125)) : IF10 DIM A$[80]V12 RF=015 FOR I=1 TO 3(20 OPEN #3, "BASIC"+FRMT$(I,1)+".MAC/RO"(30 OPEN #4, "BASIC"+FRMT$(I,1)+".DOC/WR"50 IF END #3 THEN 10060 INPUT LINE #3, A$/62 IF SBS$(A$,1,2)=";+" THEN LET RF=1 : GOTO 60/63 IF SBS$(A$,1,2)=";-" THEN LET RF=0 : GOTO 6064 IF RF=1 THEN 60S65 IF POS(A$,".SB")>1 THEN PRINT #4, ";";SEG$(A$,POS(A$,"TTL")+3,LEN(A$)) : GOTO 6066 IF SBS$(A$,1,1)<>";" THEN 6070 PRINT #4, A$ 80 GOTO 60 100 CLOSE 105 NEXT IB10 ! PROGRAM TO EXTRACT TABLE OF CONTENTS FROM BASIC DOCUMENTATION/20 DIM A$[79]V,PG$[4]V,DD$[60],OU$[80]V,B$[11]VE30 DD$=". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . "32 NF=0340 B=0 : CALL "SPAWNB"("RNO BASIC.TMP=BASIC.1ST",B)50 OPEN #3, "BASIC.TMP/RO"60 IF END #3 THEN 20065 ! WRITE INTRO STUFF70 OPEN #4, "BASIC.TOC/WR"71 PRINT #4, ".PAGE"72 PRINT #4, ".CENTER""73 PRINT #4, "^^TABLE OF CONTENTS"74 PRINT #4, ".FG 1;.NOFILL"80 INPUT LINE #3, A$ 85 ! CHECK FOR SPECIAL WORDS(90 IF POS(A$,"PAGE ")>65 THEN GOSUB 1000*100 IF POS(A$,"CHAPTER")>1 THEN GOSUB 2000+110 IF POS(A$,"APPENDIX")>1 THEN GOSUB 3000 '120 IF POS(A$,".") = 12 THEN GOSUB 4000 130 GOTO 80B&200 PRINT #4, "\\" : PRINT #4, ".FILL" 205 CLOSE0210 EXIT1000 ! GET NEW PAGE NUMBER#1001 PG$=SBS$(A$,POS(A$,"PAGE ")+5)0 1010 RETURNS2000 ! GET NEW CHAPTER2001 A$=SBS$(A$,POS(A$,"CH"),9)P2005 PG$=SBS$(A$,9,1)+"-1"2010 B$=A$+" "*2015 INPUT LINE #3, A$ : INPUT LINE #3, A$;2016 IF 00kkj5eddddPOS(A$,CHR$(13))>1 THEN LET A$=SBS$(A$,1,LEN(A$)-1)O12017 IF POS(A$,CHR$(13))=1 THEN LET A$=SBS$(A$,2)02018 A$=SBS$(A$,2,LEN(A$)-1)2019 IF POS(A$," ")=1 THEN 2018.2020 GOSUB 5000B2021 PRINT #4, " "2022 PRINT #4, OU$;PG$2025 PRINT OU$;PG$ 2030 RETURN 3000 ! GET NEW APPENDIX 3001 A$=SBS$(A$,POS(A$,"AP"),10)3005 PG$=SBS$(A$,10,1)+"-1"03010 B$=A$+" "*3015 INPUT LINE #3, A$ : INPUT LINE #3, A$;3016 IF POS(A$,CHR$(13))>1 THEN LET A$=SBS$(A$,1,LEN(A$)-1) 13017 IF POS(A$,CHR$(13))=1 THEN LET A$=SBS$(A$,2)T3018 A$=SBS$(A$,2,LEN(A$)-1)3019 IF POS(A$," ")=1 THEN 3018E3020 GOSUB 500023021 PRINT #4, " "3022 PRINT #4, OU$;PG$3025 PRINT OU$;PG$ 3026 NF=1S 3030 RETURN14000 ! GET HEADLEVEL NAMEO;4001 IF POS(A$,CHR$(13))>1 THEN LET A$=SBS$(A$,1,LEN(A$)-1)A4002 IF NF>0 THEN RETURN4005 A$=SBS$(A$,2,LEN(A$)-1)4010 IF POS(A$," ")=1 THEN 4005*4015 IF ASC(SBS$(A$,1,1)) > 55 THEN RETURN4020 B$=" "4025 GOSUB 5000$4030 PRINT #4, OU$;PG$4035 PRINT OU$;PG$ 4040 RETURNE5000 ! FIX <,#, AND &B 5000 NC=0( 5002 CP=19*5005 JJ=POS(A$,"<",CP) : IF JJ<1 THEN 50155007 CP=JJ+2 : NC=NC+1;5010 A$=SEG$(A$,1,JJ-1)+"_"+SEG$(A$,JJ,LEN(A$)) : GOTO 5005R 5015 CP=10*5016 JJ=POS(A$,"&",CP) : IF JJ<1 THEN 50255017 CP=JJ+2 : NC=NC+1;5020 A$=SEG$(A$,1,JJ-1)+"_"+SEG$(A$,JJ,LEN(A$)) : GOTO 5016A 5025 CP=1-*5026 JJ=POS(A$,"#",CP) : IF JJ<1 THEN 50355027 CP=JJ+2 : NC=NC+1;5030 A$=SEG$(A$,1,JJ-1)+"_"+SEG$(A$,JJ,LEN(A$)) : GOTO 5026T5035 K=LEN(A$)+LEN(B$)+NC$5037 J=K-2*INT(K/2)05039 IF J=1 THEN LET A$=A$+" "5040 OU$=B$+A$+DD$5045 OU$=SBS$(OU$,1,62+NC) 5050 RETURN5007 CP=JJ+2 : NC=NC+1;5010 A$=SEG$(A$,1,JJ-1)+"_"+SEG$(A$,JJ,LEN(A$)) : GOTO 5005R 5015 CP=10*5016 JJ=POS(A$,"&",CP) : IF JJ<1 THEN 50255017 CP=JJ+2 : NC=NC+1;5020 A$=SEG$(A$,1,JJ-1)+"_"+SEG$(A$,JJ,LEN(A$)) : GOTO 5016A 5025 CP=1-*5026 JJ=POS(A$,"#",CP) : IF JJ<1 THEN 50355027 CP=JJ+2 : NC=NC+1;5030 A$=SEG$(A$,1,JJ-1)+"_"+SEG$(A$,JJ,LEN(A$)) : GOTO 5026T5035 K=LEN(A$)+LEN(B$)+NC$5037 J=K-2*IB10 ! PROGRAM TO EXTRACT TABLE OF CONTENTS FROM BASIC DOCUMENTATION/20 DIM A$[79]V,PG$[4]V,DD$[60],OU$[80]V,B$[11]VE30 DD$=". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . "32 NF=0340 B=0 : CALL "SPAWNB"("RNO BASIC.TMP=BASIC.1ST",B)50 OPEN #3, "BASIC.TMP/RO"60 IF END #3 THEN 20065 ! WRITE INTRO STUFF70 OPEN #4, "BASIC.TOC/WR"71 PRINT #4, ".PAGE"72 PRINT #4, ".CENTER""73 PRINT #4, "^^TABLE OF CONTENTS"74 PRINT #4, ".FG 1;.NOFILL"80 INPUT LINE #3, A$ 85 ! CHECK FOR SPECIAL WORDS(90 IF POS(A$,"PAGE ")>65 THEN GOSUB 1000*100 IF POS(A$,"CHAPTER")>1 THEN GOSUB 2000+110 IF POS(A$,"APPENDIX")>1 THEN GOSUB 3000 '120 IF POS(A$,".") = 12 THEN GOSUB 4000 130 GOTO 80B&200 PRINT #4, "\\" : PRINT #4, ".FILL" 205 CLOSE0210 EXIT1000 ! GET NEW PAGE NUMBER#1001 PG$=SBS$(A$,POS(A$,"PAGE ")+5)0 1010 RETURNS2000 ! GET NEW CHAPTER2001 A$=SBS$(A$,POS(A$,"CH"),9)P2005 PG$=SBS$(A$,9,1)+"-1"2010 B$=A$+" "*2015 INPUT LINE #3, A$ : INPUT LINE #3, A$;2016 IF POS(A$,CHR$(13))>1 THEN LET A$=SBS$(A$,1,LEN(A$)-1)O12017 IF POS(A$,CHR$(13))=1 THEN LET A$=SBS$(A$,2)02018 A$=SBS$(A$,2,LEN(A$)-1)2019 IF POS(A$," ")=1 THEN 2018.2020 GOSUB 5000B2021 PRINT #4, " "2022 PRINT #4, OU$;PG$2025 PRINT OU$;PG$ 2030 RETURN 3000 ! GET NEW APPENDIX 3001 A$=SBS$(A$,POS(A$,"AP"),10)3005 PG$=SBS$(A$,10,1)+"-1"03010 B$=A$+" "*3015 INPUT LINE #3, A$ : INPUT LINE #3, A$;3016 IF POS(A$,CHR$(13))>1 THEN LET A$=SBS$(A$,1,LEN(A$)-1) 13017 IF POS(A$,CHR$(13))=1 THEN LET A$=SBS$(A$,2)T3018 A$=SBS$(A$,2,LEN(A$)-1)3019 IF POS(A$," ")=1 THEN 3018E3020 GOSUB 500023021 PRINT #4, " "3022 PRINT #4, OU$;PG$3025 PRINT OU$;PG$ 3026 NF=1S 3030 RETURN14000 ! GET HEADLEVEL NAMEO;4001 IF POS(A$,CHR$(13))>1 THEN LET A$=SBS$(A$,1,LEN(A$)-1)A4002 IF NF>0 THEN RETURN4005 A$=SBS$(A$,2,LEN(A$)-1)4010 IF POS(A$," ")=1 THEN 4005*4015 IF ASC(SBS$(A$,1,1)) > 55 THEN RETURN4020 B$=" "4025 GOSUB 5000$4030 PRINT #4, OU$;PG$4035 PRINT OU$;PG$ 4040 RET00k k k; THE MODULES BASIC0 THRU BASIC4 CONTAIN RE-ENTRANT CODE ONLY.>; IF YOU WANT THEM TO BE LINKED AS A PURE CODE AREA, THEY MUST9; BE RE-ASSEMBLED WITH ALL OF THEIR PSECTS DECLARED 'RO'.#; THE ABOVE APPLIES TO IDNTFY ALSO.;CRSXBASIC/DA/MU,RSXBASIC/-SP/CR,RSXBASIC=BASIC0,BASIC1,BASIC2,BASIC3BASIC4,IDNTFY,IMPURSNGUA; FOLLOWING MODULE MUST BE DIFFERENT FOR RSX11D V6.2 AND IAS V3.0SPAWN MATHLIB/LBCATB/ UIC=[1,202]I TASK=...BAS; ;; FOLLOWING LIBRARY REFERENCE IS USED FOR SOME MODULES FROMH>; SYSLIB; IT CAN BE ELIMINATED OR YOU CAN SUBSTITUTE YOUR OWN.;ULIBR=SYSRES:RO +EXTSCT=$$$$US:42300 ;THIS EXTENDS USER AREA- STACK=256I3GBLDEF=OP.MXL:20 ;THIS SETS MAX # OF LUNS ALLOWABLEP-UNITS=16 ;MUST BE SAME # AS IN PREVIOUS LINEAASG=TI:2ASG=SY:5:6:7:8:9:10:11:12IASG=SY:13:14:15:16POOL=100;G; NOTE:L6; MAKE SURE THAT IF THE MODULE CATB IS INCLUDED IN ANY9; PURE CODE AREA, THE ONE DISTRIBUTED WITH BASIC IS USED;A8; THE SYSLIB VERSION (IN V6.2 RSX-11D) IS NON-REENTRANT.;S/OMH>; SYSLIB; IT CAN BE ELIMINATED OR YOU CAN SUBSTITUTE YOUR OWN.;ULIBR=SYSRES:RO +EXTSCT=$$$$US:42300 ;THIS EXTENDS USER AREA- STACK=256I3GBLDEF=OP.MXL:20 ;THIS SETS MAX # OF LUNS ALLOWABLEP-UNITS=16 ;MUST BE SAME # AS IN PREVIOUS LINEAASG=TI:2ASG=SY:5:6:7:8:9:10:11:12IASG=SY:13:14:15:16POOL=100;G; NOTE:L6; MAKE SURE THAT IF THE MODULE CATB IS INCLUDED IN ANY9; PURE CODE AREA, THE ONE DISTRIBUTE;I; BIGBASIC.CMD; :; THIS COMMAND FILE BUILDS A NON-LIBRARY VERSION OF BASIC.>; THE MODULES BASIC0 THRU BASIC4 CONTAIN RE-ENTRANT CODE ONLY.>; IF YOU WANT THEM TO BE LINKED AS A PURE CODE AREA, THEY MUST9; BE RE-ASSEMBLED WITH ALL OF THEIR PSECTS DECLARED 'RO'.#; THE ABOVE APPLIES TO IDNTFY ALSO.S; (RSXBASIC,RSXBASIC/-SP/CR,RSXBASIC=BASIC0BASIC1BASIC2,MATHLIB/LBNBASIC3BASIC4IDNTFY,IMPURSNGUCATB6; Include the following for full RSX11M error messages BSCERR11MCA; FOLLOWING MODULE MUST BE DIFFERENT FOR RSX11D V6.2 AND IAS V3.0USPAWNN/L UIC=[1,200]N TASK=...BAS ; ;; FOLLOWING LIBRARY REFERENCE IS USED FOR SOME MODULES FROMF>; SYSLIB; IT CAN BE ELIMINATED OR YOU CAN SUBSTITUTE YOUR OWN.;-+EXTSCT=$$$$US:42300 ;THIS EXTENDS USER AREAR STACK=256 3GBLDEF=OP.MXL:20 ;THIS SETS MAX # OF LUNS ALLOWABLE/-UNITS=16 ;MUST BE SAME # AS IN PREVIOUS LINELASG=TI:2ASG=SY:5:6:7:8;P; NOTE:A6; MAKE SURE THAT IF THE MODULE CATB IS INCLUDED IN ANY9; PURE CODE AREA, THE ONE DISTRIBUTED WITH BASIC IS USED;X8; THE SYSLIB VERSION (IN V6.2 RSX-11D) IS NON-REENTRANT.; / ;; FOLLOWING LIBRARY REFERENCE IS USED FOR SOME MODULES FROMF>; SYSLIB; IT CAN BE ELIMINATED OR YOU CAN SUBSTITUTE YOUR OWN.;-+EXTSCT=$$$$US:42300 ;THIS EXTENDS USER AREAR STACK=256 3GBLDEF=OP.MXL:20 ;THIS SETS MAX # OF LUNS ALLOWABLE/-UNITS=16 ;MUST BE SAME # AS IN PREVIOUS LINELASG=TI:2ASG=SY:5:6:7:8;P; NOTE:A6; MAKE SURE THAT IF THE MODULE CATB IS INCLUDED IN ANY9; PURE CODE AREA, THE ONE DISTRI00kkkkkddd0BINSRC,BINSRC/-SP=[1,202]LODMAC/ML,[1,202]BINSRC (U 05JU85 y  @ÅU%  \ Je  d@ABW@WACC ,, p de+1BW@ p ^ deҤ @A@e @e @B@@&e`0 10 ! BINSRC6 ! PROGRAM TO TEST NEW BINARY SEARCH AND BINARY DECODE100 DIM R$[10],S$[254]110 LOAD "BINSRC","DBLBIN"120 R0=0 : R1=0(130 OPEN #4,"TRNINDV1.SRT/RN/LN:10/RO" :" OPEN #5,"LEVEL1.DAT/RN/LN:254/RO"140 CALL "BINSRC"("38856",4,R0)#150 PRINT "INDEX FILE RECORD # ";R0160 INPUT LINE #4@R0,R$+170 PRINT "INDEX FILE RECORD ";SBS$(R$,5)180 CALL "DBLBIN"(R$,R1)#190 PRINT "LEVEL FILE RECORD # ";R1200 INPUT LINE #5@R1,S$.210 PRINT "LEVEL FILE RECORD ";LEFT(S$,50) :. PRINT " ";SBS$(S$,51,50) :/ PRINT " ";SBS$(S$,101,50) :]/ PRINT " ";SBS$(S$,151,50) :R/ PRINT " ";SBS$(S$,201,50) :O* PRINT " ";SBS$(S$,251)220 STOP8856",4,R0)#150 PRINT "INDEX FILE RECORD # ";R0160 INPUT LINE #4@R0,R$+170 PRINT "INDEX FILE RECORD ";SBS$(R$,5)180 CALL "DBLBIN"(R$,R1)#190 PRINT "LEVEL FILE RECORD # ";R1200 INPUT LINE #5@R1,S$.210 PRINT "LEVEL FILE RECORD ";LEFT(S$,50) :. PRINT " ; ; BINSRC.MACD; SOURCE FOR MACRO SUBROUTINE TO DO A BINARY SEARCH ON AN INDEX FILE ; BASIC CALL:; CALL "BINSRC"(A$,A,B); WHERE: ; A$ = STRING TO BE SEARCHED FOR; A = FILE # OF INDEX FILE3; VALUE IS THAT ASSIGNED IN BASIC OPEN COMMAND4; EXECUTED ONCE BEFORE FIRST CALL TO SUBROUTINE#; B = REC # RETURNED BY SUBROUTINE; ; BINSRC.MACD; SOURCE FOR MACRO SUBROUTINE TO DO A BINARY SEARCH ON AN INDEX FILE ; BASIC CALL:; CALL "BINSRC"(A$,A,B); WHERE: ; A$ = STRING TO BE SEARCHED FOR; A = FILE # OF INDEX FILE3; VALUE IS THAT ASSIGNED IN BASIC OPEN COMMAND4; EXECUTED ONCE BEFORE FIRST CALL TO SUBROUTINE#; B = REC # RETURNED BY SUBROUTINE; .MCALL ULODHD FDOF$L FCSBT$ ULODHD START,END,BINSRC;; DEFINE FLOATING REGS;AC0=%0AC1=%1AC2=%2AC3=%3FDOF$LFCSBT$;*; DEFINE ADDRESS OF .GET ROUTINE IN SYSRES0; THIS VALUE WILL BE DEFINED IN TKB COMMAND FILE .GLOBL ADDGETSTART:&BINSRC: JSR R4,@#GTRGPI ;GET ARGUMENTS4 .BYTE 3,1,2,0 ;STRING,NUMERIC,NUMERIC RETURNED,END .EVEN* JSR PC,@#PARCHK ;CHECK FOR TRAILING PAREN MOV SP,R5 ;R5 HAS ARG LIST PTR/ CMP (R5)+,(R5)+ ;R5 POINTS TO NUMERIC FP VALUET LDF (R5)+,AC0 ;PUT LUN # IN AC0 SETIF" STCFI AC0,R4 ;CONVERT TO INTEGER DEC R4 ;ITS LUN - 1N MOV #17400,R0 ;PUT MASK IN R0" JSR PC,@#SRCHFL ;FIND FCB ADDRESS TST00kk k MOV (SP)+,F.URBD+2(R0);PUT ADDRESS OF READ BUF INTO FDB BLOCKD MOV F.RSIZ(R0),F.URBD(R0);PUT REC SIZE IN READ BUF LEN IN FDB BLOCK RTS PC ;RETURNEND: .END$ ;BRANCH TO NOT FOUND# STF AC1,AC2 ;MOVE DOWN HIGH BOUND  BR 1$ ;BRANCH TO REPEATA5$: ADDF #1,AC0 ;INC * :L,@.I.@8X@*8@8@Z`@:d @y2@(" * y  U% 8X88.I.":d *&  Je  y2*L @ABW@WACC,*r ,, p e,*+1BW@ p ^  ,*eҤ @A@e* e @B@ Z` @&e`0X@*8@8@Z`@:d @y2@(" * y  U% 8X88.I.":d *&  Je  y2*L @ABW@WACC,*r ,, p e,*+1BW@ p ^  ,*eҤ @A@e* e @B@ 00  k!!k""k##k$g%(kdd'BINSRC.ATK/-HD/-FP,BINSRC/CR/-SP=BINSRC[1,1]BSCPUR.STB/SS/7; FOLLOWING GLOBAL DEFINITION SHOULD BE 161412 FOR V6.0; AND 161422 FOR IAS V3.0; GBLDEF=ADDGET:161422STACK=0UNITS=0LIBR=SYSRES:RO//$BINSRC.ATK/-HD/-FP,BINSRC/-SP=BINSRCLB:[1,1]BSCPUR.STB/SS/7; FOLLOWING GLOBAL DEFINITION SHOULD BE 161412 FOR V6.05; AND 161422 FOR IAS V3.0 AND 161506 FOR IAS V3.1 AND; 160544 FOR IAS V3.25; (it is obtained from a cross-ref map of BSCPUR, the; address of .GET);GBLDEF=ADDGET:160544STACK=0UNITS=0/0BINSRD,BINSRD/-SP=[1,202]LODMAC/ML,[1,202]BINSRD (U 05JU85  yT[y 7 7  W, eVC E @ÅU%  \ Qe  d| l bvW@7 5Ҥ21@ABW@WAfVWA *0BW@ tҤ@A @A@B  `e @e @B@@&e`0p dmz d-`  @W8@e2 @‡ 10 ! BINSRD$ ! PROGRAM TO TEST NEW BINARY SEARCH100 DIM R$[12],S$[254]110 LOAD "BINSRD"120 R0=0 : R1=0 : RC=254(130 OPEN #4,"TRNINDV2.SRT/RN/LN:12/RO" :" OPEN #5,"LEVEL1.DAT/RN/LN:254/RO"%140 CALL "BINSRC"("38856",4,R0,R1,RC)#150 PRINT "INDEX FILE RECORD # ";R0160 INPUT LINE #4@R0,R$+170 PRINT "INDEX FILE RECORD ";SBS$(R$,7)180 ! CALL "DBLBIN"(R$,R1)#190 PRINT "LEVEL FILE RECORD # ";R1200 INPUT LINE #5@R1,S$.210 PRINT "LEVEL FILE RECORD ";LEFT(S$,50) :. PRINT " ";SBS$(S$,51,50) :/ PRINT " ";SBS$(S$,101,50) :]/ PRINT " ";SBS$(S$,151,50) :3/ PRINT " ";SBS$(S$,201,50) :"* PRINT " ";SBS$(S$,251)220 STOPR0,R1,RC)#150 PRINT "INDEX FILE RECORD # ";R0160 INPUT LINE #4@R0,R$+170 PRINT "INDEX FILE RECORD ";SBS$(R$,7)180 ! CALL "DBLBIN"(R$,R1)#190 PRINT "LEVEL FILE RECORD # ";R1200 INPUT LINE #5@R1,S$.210 PRINT "LEVEL FILE RECORD ";LEFT(S$,50) :. PRINT " ; ; BINSRD.MACD; SOURCE FOR MACRO SUBROUTINE TO DO A BINARY SEARCH ON AN INDEX FILEJ; THIS ROUTINE FINDS THE FIRST INDEX RECORD THAT MATCHES THE GIVEN STRING. ; BASIC CALL:#; CALL "BINSRC"(A$,A,B[,C,D]); OR; CALL "NXTSRC"(A$,A,B[,C,D]); WHERE: ; A$ = STRING TO BE SEARCHED FOR>; A = FILE # OF INDEX FILE (PRODUCED BY EITHER V1 OR V2 SORT)4; VALUE IS THAT ASSIGNED IN BASIC OPEN COMMAND.5; EXECUTED ONCE BEFORE FIRST CALL TO SUBROUTINE.#; B = REC # RETURNED BY SUBROUTINE00%)kk k AC1 STCFI AC1,R3 ;INTEGERIZE ITC INC R3 ;ROUND IT UP TO NEAREST BIC #1,R3 ;WORD BOUNDARY MOV R3,RSIZE ;AND REMEMBER IT-2$: JSR PC,@#PARCHK ;CHECK FOR TRAILING PARENE MOV SP,R5 ;R5 HAS ARG LIST PTR/ CMP (R5)+,(R5)+ ;R5 POINTS TO NUMERIC FP VALUER LDF (R5)+,AC0 ;PUT LUN # IN AC0" STCFI AC0,R4 ;CONVERT TO INTEGER DEC R4 ;ITS LUN - 1 MOV #17400,R0 ;PUT MASK IN R0" JSR PC,@#SRCHFL ;FIND FCB ADDRESS TST R3 ;IF 0 ERROR" BEQ 10$ ;BRANCH TO ERROR ROUTINE ADD #26,R3 ;FCB + 26 = FDB4 MOV R3,R0 ;FDB ADDRESS WILL BE KEPT IN R0 FOR GETS LDCIF #1,AC3 ;WE WANT REC # 1R SETLA. STCFL AC3,F.RCNM(R0) ;PUT REC # WANTED IN FDB. JSR PC,GETCOM ;SET READBUF ADDRESS AND LENGTH JSR PC,@#ADDGET ;DO GET) MOV #4,STROFF ;ASSUME V1 SORT INDEX FILER- MOV F.URBD+2(R0),R3 ;ADDRESS OF RECORD -> R3R TST 4(R3) ;CHECK 3RD WORDR& BEQ 14$ ;IF ZERO, V1 SORT, SO BRANCH5 MOV #6,STROFF ;ELSE IT'S V2 SORT, SO REMEMBER OFFSET;514$: LDCLF (R3),AC3 ;GET MAX RECORD NUMBER IF V1 SORT615$: TST NXT ;WHICH ROUTINE?0# BEQ 16$ ;IF BINARY SEARCH, BRANCH @ LDF 16(SP),AC1 ;GET INDEX FILE RECORD NUMBER FOR PREVIOUS MATCH$ ADDF #1,AC1 ;PUT UP TO NEXT RECORD- LDF AC1,AC2 ;COPY FOR SUBSEQUENT PROCESSING,! CMPF AC1,AC3 ;CHECK AGAINST MAXS CFCC ( BGT 20$ ;IF TOO BIG, NO GO - SO BRANCH% JSR PC,READCM ;DO READ OF INDEX FILEE4 BEQ 6$ ;IF NULL COMPARISON STRING, SUCCESS ALREADY017$: CMPB (R3)+,(R2)+ ;SEE IF KEY STRING MATCHES* BNE 20$ ;IF NOT, BRANCH TO FAILURE POINT SOB R4,17$R* BR 6$ ;GO TO SUCCESS POINT IF FULL MATCH(16$: ADDF #1,AC3 ;+1 = LAST REC IN FILE# LDF #2,AC0 ;AC0 IS LOWER BOUNDARY $ STF AC3,AC2 ;AC2 IS UPPER BOUNDARY1$:X STF AC0,AC1 ;AC1 IS THE MIDDLE$ ADDF AC2,AC1 ;= (UPP + LOW + 1 )/2 ADDF #1,AC1 DIVF #2,AC10 STCFL AC1,-(SP) ;DO INTEGER CONVERSION ON STACK# LDCLF (SP)+,AC1 ;AND BRING IT BACKQ% CMPF #2,AC1 ;ARE WE AT LOWER BOUND?S CFCCY* BEQ 11$ ;IF SO, BRANCH TO NOT FOUND CODE- CMPF AC1,AC3 ;IS MIDDLE EQUAL TO HIGH BOUNDI CFCCB BEQ 12$ ;BRANCH TO NOT FOUND JSR PC,READCM9 BEQ 18$ ;IF NULL COMPARISON STRING, SUCCESS AT 1ST REC. #3$: CMPB (R2)+,(R3)+ ;COMPARE CHARS22 BLT 4$ ;WANTED STRING IS LOWER THAN WHERE WE ARE3 BGT 5$ ;WANT00%1k&8k"k##k$g%(kddED STRING IS HIGHER THAN WHERE WE AREA SOB R4,3$ ;CHECK EACH CHAR ;FOUND ITO"9$: STF AC1,AC2 ;PUT REC # IN AC2 SUBF #1,AC1 ;BACKUP ONE RECORD JSR PC,READCM#8$: CMPB (R3)+,(R2)+ ;COMPARE CHARS$ BNE 6$ ;BACKED UP TOO FAR  SOB R4,8$ ;CHECK EACH CHAR BR 9$ ;GO DO AGAIN,18$: LDF #3,AC2 ;POINT TO FIRST REAL RECORD BR 6$ ;AND GO TO SUCCESS10$: CLRF AC2 ;ERROR ENDS BR 6$(11$: LDF #3,AC2 ;WE WANT TO RETURN A -3" BR 20$ ;BRANCH TO NEGATE ROUTINE112$: STF AC3,AC2 ;STORE # OF RECORDS IN FILE + 1E BR 20$ ;BRANCH TO NEGATE;13$: ADDF #1,AC2 ;WE SUBTRACTED ONE SO NOW WE MUST ADD ONE 20$: NEGF AC2 ;NEGATE ROUTINE6$:N- TSTF AC2 ;CHECK ON INDEX FILE RECORD NUMBER; CFCC ) BMI 7$ ;IF NEG, ERROR RETURN, SO BRANCHR1 TST RECNAD ;SEE IF MAIN RECORD NUMBER REQUESTEDL BEQ 7$ ;IF NOT, BRANCH# JSR PC,RCNOUT ;IF SO, GO RETURN ITE7$:0. STF AC2,AC0 ;COPY INDEX RECORD NUMBER -> AC0* ADD #10,SP ;PUT STACK AT ADDRESS FOR ANS/ MOV SP,R5 ;R5 SHOULD HAVE ADDRESS FOR ROUTINE  SETI " JSR PC,@#NSTORE ;STORE THE RESULT ADD #12,SP ;CLEAN STACK  RTS PC ;RETURN4$: SUBF #1,AC2 ;DEC AC2N, CMPF AC2,AC0 ;ARE HIGH AND LOW BOUND EQUAL CFCCI BEQ 13$ ;BRANCH TO NOT FOUND# STF AC1,AC2 ;MOVE DOWN HIGH BOUNDB BR 1$ ;BRANCH TO REPEATF5$: ADDF #1,AC0 ;INC AC0E, CMPF AC0,AC2 ;ARE HIGH AND LOW BOUND EQUAL CFCCG BEQ 20$ ;BRANCH TO NOT FOUND# STF AC1,AC0 ;MOVE DOWN HIGH BOUNDA BR 1$ ;BRANCH TO REPEATD.GETCOM: MOV R0,-(SP) ;PUT FDB ADDRESS ON STACK ADD #S.FDB,(SP) ;ADD OFFSET> MOV (SP)+,F.URBD+2(R0);PUT ADDRESS OF READ BUF INTO FDB BLOCKD MOV F.RSIZ(R0),F.URBD(R0);PUT REC SIZE IN READ BUF LEN IN FDB BLOCK RTS PC ;RETURNREADCM:Q. STCFL AC1,F.RCNM(R0) ;PUT REC # WANTED IN FDB. JSR PC,GETCOM ;SET READBUF ADDRESS AND LENGTH JSR PC,@#ADDGET0 MOV 4(SP),R2 ;R2 HAS ADDRESS OF CHECKING STRING3 MOV F.URBD+2(R0),R3 ;R3 HAS ADDRESS OF READ STRINGA7 ADD STROFF,R3 ;FIRST STROFF BYTES ARE RECORD PTR, SKIPE MOV 2(SP),R4 ;PUT LEN IN R4 RTS PCSRCNOUT:D1 STCFL AC2,F.RCNM(R0) ;STORE PROPER RECORD NUMBERU JSR PC,GETCOM JSR PC,@#ADDGET ;GET OUR RECORD# MOV F.URBD+2(R0),R3 ;ADDRESS -> R3U CMP STROFF,#4 ;SORT V1? BNE 1$ ;IF NOT, BRANCH< LDCLF (R3),AC0 ;IF SO, IT'S EASY (JUST STORE RECORD NUMBER)/ SETI ;BETTER GET BACK TO SINGLE INTEGER MODEM BR 2$ ;AND GO STORE IT-1$: ;SORT V2 REQUIRES A LITTLE MORE EFFORTH5 SETD ;DO DOUBLE PRECISION FOR FILES > 32 MEGABYTESF2 MOV (R3)+,-(SP) ;REVERSE THE ORDER OF THE BLOCK #6 MOV (R3)+,-(SP) ;BECAUSE THEY'RE REVERSED IN THE FILE LDCLD (SP)+,AC0 ;BLOCK # -> AC0 SUBD #1,AC0 ;BACK IT DOWN BY 1 SETIM, LDCID (R3),AC3 ;BYTE NUMBER IN BLOCK -> AC3* LDCID #512.,AC1 ;# BYTES PER BLOCK -> AC1< MULD AC1,AC0 ;TOTAL BYTES TO START OF PRESENT BLOCK -> AC04 ADDD AC3,AC0 ;ADD IN NUMBER OF BYTES IN THIS BLOCK( LDCID RSIZE,AC3 ;GET RECORD SIZE -> AC32 DIVD AC3,AC0 ;AND GET FINAL RECORD NUMBER -> AC0' ADDD #1,AC0 ;RECORDS START AT 1 NOT 0-& SETF ;BACK TO SINGLE PRECISION MODE92$: GTABAD RECNAD,R5 ;MAKE R5 POINT TO STORAGE INFO FOR CC JSR PC,@#NSTORE ;STORE IT RTS PC1END: .ENDT DOWN BY 1 SETIM, LDCID (R3),AC3 ;BYTE NUMBER IN BLOCK -> AC3* LDCID #512.,AC1 ;# BYTES PER BLOCK -> AC1< MULD AC1,AC0 ;TOTAL BYTES TO START OF PRESENT BLOCK -> AC04 ADDD AC3,AC0 ;ADD IN NUMBER OF BYTES IN THIS BLOCK( LDCID RSIZE,AC3 ;GET RECORD SIZE -> AC32 DIVD AC3,AC0 ;AND GET FINAL RECORD NUMBER -> AC0' ADDD #1,AC0 ;RECORDS START AT 1 NOT 0-& SETF ;BACK TO SINGLE PRECISION MODE92$: GTABAD RECNAD,R5 ;MAKE R5 PO* :L,@.I.@8X@*8@8@Z`@:d @y2@( $  yT[y 8X88&)& 7 7  W, S.I.$.I.L*LeVC E U%$:d *r  Qe  y2* | l bv,*W@7 5Ҥ21@A*BW@WAfVWA ** 000&9k':k(;k)d%wwwwwEՕw7 Cx`B  ~&  ? CC hwdw&1Ƹ&w  Tw)RNVRT>CO>P; B S C A L L B U G . C M D;;G; FOLLOWING COMMAND FILE LINKS AND INSTALLS TEST COPY OF BSCPUR LIBRARYP; CALLED BSCBUG AND LINKS CORRESPONDING DEBUGGING VERSION OF BSC AND INSTALLS IT;9;MODIFIED BY F.BORGER TO MAKE A TEST COPY (CALLED ...BAZ);A;FIRST RE-DO IMPURNOMO IN CASE WE CHANGED THE IMPURE STORAGE AREATKB @IMPURNOMO;;TKB THE PURE AREATKB @BSCPUR.BUG%PIP LB:[1,1]/NV=BSCBUG.TSK,BSCBUG.STB REM ...BXC REM BSCBUG/LIINS LB:[1,1]BSCBUG/LI/ACC=RW;TKB THE IMPURE AREA TKB @BSC.BUG REM ...BXCINS BXC/TASK=...BXCOLLOWING COMMAND FILE LINKS AND INSTALLS TEST COPY OF BSCPUR LIBRARYP; CALLED BSCBUG AND LINKS CORRESPONDING DEBUGGING VERSION OF BSC AND INSTALLS IT;9;MODIFIED BY F.BORGER TO MAKE A TEST COPY (CALLED ...BAZ);A;FIRST RE-DO IMPURNOMO IN CASE WE CHANGED THE IMPURE STORAGE AREATKB @IMPURNOMO;;TKB THE PURE AREATKB @BSCPUR.BUG%PIP LB:[1,1]/NV=BSCBUG.TSK,BSCBUG.STB REM ...BXC REM BSCBUG/LIINS LB:[1,1]BSCBUG/LI/ACC=RW;TKB THE IMPURE AREA TK; B S C A L L . C M D;<; FOLLOWING COMMAND FILE RELINKS AND REPLACES BSCPUR LIBRARY3; AND LINKS CORRESPONDING TASK BSC AND INSTALLS IT.>; IT ALSO CLEANS UP LOADABLE ROUTINE FILE ENTRIES AND RE-LINKS0; THE LOADABLE ROUTINES FOR BSC (.ATK EXTENSION);;@BSCREM TKB @BSCPUR%PIP LB:[1,1]/NV=BSCPUR.TSK,BSCPUR.STBINS LB:[1,1]BSCPUR/LI/ACC=ROTKB @BSC TKB @BASBRO INS @BSCINS TKB @ANDORTKB @BINSRCBSCTKB @BINSRDBSC.CMDTKB @DBLBINBSC TKB @DIRECT TKB @EXITST TKB @LOWCASTKB @ONCREGBSC TKB @REVSTRM TKB @UPPCASL;TKB @PEDRETBSCE;TKB @FRMRETBSCA0; Copy new .atk routines to user disk in [1,200]@DP1:[1,200]COPY.CMD>; IT ALSO CLEANS UP LOADABLE ROUTINE FILE ENTRIES AND RE-LINKS0; THE LOADABLE ROUTINES FOR BSC (.ATK EXTENSION);;@BSCREM TKB @BSCPUR%PIP LB:[1,1]/NV=BSCPUR.TSK,BSCPUR.STBINS LB:[1,1]BSCPUR/LI/ACC=ROTKB @BSC TKB @BASBRO INS @BSCINS TKB @ANDORTKB @BINSRCBSCTKB @BINSRDBSC.CMDTKB @DBLBINBSC TKB @DIRECT TKB @EXITST TKB @LOWCASTKB @O; B S C B U G . C M D;;#; LINKS DIAGNOSTIC VERSION OF BSCBXC/MU/DA,BXC/-SP/CR=IMPUR/;;LIBR=BSCBUG:RW STACK=256UNITS=16ASG=TI:2ASG=SY:5:6:7:8:9:10:11:12ASG=SY:13:14:15:16POOL=100ATRG=10/@ LISTING OF BSCBUG.STB 01/21/82 15:55:11@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> BASIC0 000000 MODULE NAME 000> 08NO78 000000 VERSION ID 000> . ABS. 000000 P-SECT NAME 104> IDNTFY 100000 GLOBAL SYMBOL 110> $CAT5 100132 GLOBAL00.Qk8k"k##k$g%(kdd SYMBOL 110> $CBDAT 100266 GLOBAL SYMBOL 110> $CBDMG 100274 GLOBAL SYMBOL 110> $CBDSG 100302 GLOBAL SYMBOL 110> $CBOMG 100310 GLOBAL SYMBOL 110> $CBOSG 100316 GLOBAL SYMBOL 110> $CBTA 100372 GLOBAL SYMBOL 110> $CBTMG 100324 GLOBAL SYMBOL 110> $CBVER 100310 GLOBAL SYMBOL 110> $CDTB 100010 GLOBAL SYMBOL 110> $COTB 100024 GLOBAL SYMBOL 110> $C5TA 100530 GLOBAL SYMBOL 110> .CSI1 100634 GLOBAL SYMBOL 110> .CSI2 102132 GLOBAL SYMBOL 110> .DELET 103454 GLOBAL SYMBOL 110> .MARK 103606 GLOBAL SYMBOL 110> .POINT 103546 GLOBAL SYMBOL 110> .READ 103634 GLOBAL SYMBOL 110> .WAIT 103702 GLOBAL SYMBOL 110> .WRITE 103724 GLOBAL SYMBOL 110> ..RWCK 104050 GLOBAL SYMBOL 110> ..RWLG 104230 GLOBAL SYMBOL 110> ..WTRD 104122 GLOBAL SYMBOL 110> CTCENT 105070 GLOBAL SYMBOL 110> FPERMS 105160 GLOBAL SYMBOL 110> FPEXTR 105102 GLOBAL SYMBOL 110> STRD 105242 GLOBAL SYMBOL 110> TRAP00 104560 GLOBAL SYMBOL 110> ABS00 106632 GLOBAL SYMBOL 110> AR500 107622 GLOBAL SYMBOL 110> ASC00 107662 GLOBAL SYMBOL 110> ATN00 107030 GLOBAL SYMBOL 110> ATOF00 105374 GLOBAL SYMBOL 110> ATOI00 106604 GLOBAL SYMBOL 110> CHR00 110214 GLOBAL SYMBOL 110> COR00 110142 GLOBAL SYMBOL 110> COS00 107022 GLOBAL SYMBOL 110> DAT00 111570 GLOBAL SYMBOL 110> DCEN0 112442 GLOBAL SYMBOL 110> DDAT00 111554 GLOBAL SYMBOL 110> ERL00 110072 GLOBAL SYMBOL 110> ERR00 110064 GLOBAL SYMBOL 110> EXPF00 107006 GLOBAL SYMBOL 110> FCHR00 111110 GLOBAL SYMBOL 110> FCS00 110100 GLOBAL SYMBOL 110> FORM00 113470 GLOBAL SYMBOL 110> FTOA00 106110 GLOBAL SYMBOL 110> INT00 106662 GLOBAL SYMBOL 110> INX00 107102 GLOBAL SYMBOL 110> ITOA00 106572 GLOBAL SYMBOL 110> LEFT00 110252 GLOBAL SYMBOL 110 @ LISTING OF BSCBUG.STB 01/21/82 15:55:15@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> LEN00 107376 GLOBAL SYMBOL 110> LJS00 114222 GLOBAL SYMBOL 110> LOG00 106772 GLOBAL SYMBOL 110> LOG10 107000 GLOBAL SYMBOL 110> LTR00 111220 GLOBAL SYMBOL 110> NRC00 107732 GLOBAL SYMBOL 110> OCB00 107432 GLOBAL SYMBOL 110> OCS00 111310 GLOBAL SYMBOL 110> OCT00 111316 GLOBAL SYMBOL 110> PIECE0 110544 GLOBAL SYMBOL 110> PWRF00 100.YkKk,Mk-Ok.Pkddd06704 GLOBAL SYMBOL 110> RIGHT0 110260 GLOBAL SYMBOL 110> RJS00 114230 GLOBAL SYMBOL 110> RND00 105264 GLOBAL SYMBOL 110> RND01 105324 GLOBAL SYMBOL 110> R5A00 111404 GLOBAL SYMBOL 110> SBS00 110266 GLOBAL SYMBOL 110> SEC00 113272 GLOBAL SYMBOL 110> SEG00 110244 GLOBAL SYMBOL 110> SGN00 106636 GLOBAL SYMBOL 110> SINE00 107014 GLOBAL SYMBOL 110> SPACE0 114524 GLOBAL SYMBOL 110> SQRT00 107036 GLOBAL SYMBOL 110> STRG00 114532 GLOBAL SYMBOL 110> TIM00 111562 GLOBAL SYMBOL 110> TRM00 111226 GLOBAL SYMBOL 110> VAL00 107426 GLOBAL SYMBOL 110> ATTACH 114616 GLOBAL SYMBOL 110> DEF00 117200 GLOBAL SYMBOL 110> DETACH 114626 GLOBAL SYMBOL 110> DIM00 116046 GLOBAL SYMBOL 110> EOSCHK 126524 GLOBAL SYMBOL 110> EVAL00 117440 GLOBAL SYMBOL 110> EVLS00 120724 GLOBAL SYMBOL 110> FOR00 126720 GLOBAL SYMBOL 110> GETHDR 121430 GLOBAL SYMBOL 110> GETNUM 122602 GLOBAL SYMBOL 110> GETSTR 123010 GLOBAL SYMBOL 110> GOSB00 115136 GLOBAL SYMBOL 110> GOTO00 115172 GLOBAL SYMBOL 110> GOTO02 115302 GLOBAL SYMBOL 110> GOTO03 115236 GLOBAL SYMBOL 110> GOTO04 115174 GLOBAL SYMBOL 110> GTOFFS 121554 GLOBAL SYMBOL 110> GTP00 120042 GLOBAL SYMBOL 110> IF00 124206 GLOBAL SYMBOL 110> INP00 125364 GLOBAL SYMBOL 110> INP01 125354 GLOBAL SYMBOL 110> LET00 123446 GLOBAL SYMBOL 110> NEWVAR 123344 GLOBAL SYMBOL 110> NEXT00 127364 GLOBAL SYMBOL 110> ONGT00 115462 GLOBAL SYMBOL 110> PR00 124550 GLOBAL SYMBOL 110> READ00 126560 GLOBAL SYMBOL 110> REM00 124306 GLOBAL SYMBOL 110 @ LISTING OF BSCBUG.STB 01/21/82 15:55:19@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> RES00 115570 GLOBAL SYMBOL 110> RET00 115666 GLOBAL SYMBOL 110> RUN00 114750 GLOBAL SYMBOL 110> RUN01 115074 GLOBAL SYMBOL 110> STONUM 122730 GLOBAL SYMBOL 110> STOP00 114644 GLOBAL SYMBOL 110> STOP02 114710 GLOBAL SYMBOL 110> STOSTR 123156 GLOBAL SYMBOL 110> STRADD 123102 GLOBAL SYMBOL 110> STRCMP 125650 GLOBAL SYMBOL 110> WRITBK 122462 GLOBAL SYMBOL 110> ARYL00 131744 GLOBAL SYMBOL 110> CLOS00 131026 GLOBAL SYMBOL 110> CLRU00 131434 GLOBAL SYMBOL 110> CLSEAL 135334 GLOBAL SYMBOL 110> CRLF00 130616 GLOBAL SYMBOL 110> 00.ak8k"k##k$g%(kdd CSINT0 131136 GLOBAL SYMBOL 110> DIMC00 132532 GLOBAL SYMBOL 110> FILFND 135452 GLOBAL SYMBOL 110> FILFN1 135466 GLOBAL SYMBOL 110> FIND00 132274 GLOBAL SYMBOL 110> FIND01 132304 GLOBAL SYMBOL 110> FNMB00 135516 GLOBAL SYMBOL 110> GETV00 132452 GLOBAL SYMBOL 110> INIT00 137430 GLOBAL SYMBOL 110> INIT01 137454 GLOBAL SYMBOL 110> INIT02 136764 GLOBAL SYMBOL 110> INIT03 137002 GLOBAL SYMBOL 110> INIT10 137200 GLOBAL SYMBOL 110> INIT13 137142 GLOBAL SYMBOL 110> JUNK00 131376 GLOBAL SYMBOL 110> LOAD00 142760 GLOBAL SYMBOL 110> OLD01 132770 GLOBAL SYMBOL 110> OLD02 133012 GLOBAL SYMBOL 110> PCK00 127614 GLOBAL SYMBOL 110> PCK03 130414 GLOBAL SYMBOL 110> PRLN00 135750 GLOBAL SYMBOL 110> PRLN01 135754 GLOBAL SYMBOL 110> PRNT00 130556 GLOBAL SYMBOL 110> PRN00 131334 GLOBAL SYMBOL 110> PUSH00 131460 GLOBAL SYMBOL 110> SCR00 132064 GLOBAL SYMBOL 110> SKIP00 131350 GLOBAL SYMBOL 110> SLDN 143604 GLOBAL SYMBOL 110> SLDN01 143622 GLOBAL SYMBOL 110> SLUP 143544 GLOBAL SYMBOL 110> SLUP01 143562 GLOBAL SYMBOL 110> SQU00 132114 GLOBAL SYMBOL 110> SRCHFL 135410 GLOBAL SYMBOL 110> SRCH00 132264 GLOBAL SYMBOL 110> SRL00 131546 GLOBAL SYMBOL 110> STRL00 131770 GLOBAL SYMBOL 110> TSTU00 133604 GLOBAL SYMBOL 110> TST00 131266 GLOBAL SYMBOL 110> UNLD01 143434 GLOBAL SYMBOL 110 @ LISTING OF BSCBUG.STB 01/21/82 15:55:23@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> VECTAB 143650 GLOBAL SYMBOL 110> CALL00 144516 GLOBAL SYMBOL 110> CATXT 150220 GLOBAL SYMBOL 110> CDIS 147546 GLOBAL SYMBOL 110> CHKMFT 150776 GLOBAL SYMBOL 110> CPOS 147652 GLOBAL SYMBOL 110> CQNAM 150256 GLOBAL SYMBOL 110> CQTXT 150042 GLOBAL SYMBOL 110> GETARG 143670 GLOBAL SYMBOL 110> GTRGPI 144170 GLOBAL SYMBOL 110> INSTRG 144664 GLOBAL SYMBOL 110> MATXT 150114 GLOBAL SYMBOL 110> MDIS 147442 GLOBAL SYMBOL 110> MPOS 147616 GLOBAL SYMBOL 110> MQTXT 147724 GLOBAL SYMBOL 110> NSTORE 144246 GLOBAL SYMBOL 110> OPLB00 145364 GLOBAL SYMBOL 110> PARCHK 144646 GLOBAL SYMBOL 110> RATXT 150240 GLOBAL SYMBOL 110> RDIS 147574 GLOBAL SYMBOL 110> RPOS 147672 GLOBAL SYMBOL 110> RQNAM 150314 GLOBAL SYMBOL 00.ikKk,Mk-Ok.Pkddd 110> RQTXT 150062 GLOBAL SYMBOL 110> SPAWNB 150474 GLOBAL SYMBOL 110> SSTORE 144272 GLOBAL SYMBOL 110> ALOG 151132 GLOBAL SYMBOL 110> ALOG10 151126 GLOBAL SYMBOL 110> ATAN 151424 GLOBAL SYMBOL 110> ATAN2 151314 GLOBAL SYMBOL 110> COS 151662 GLOBAL SYMBOL 110> EXP 152066 GLOBAL SYMBOL 110> SIN 151676 GLOBAL SYMBOL 110> SQRT 152312 GLOBAL SYMBOL 110> INIT12 152406 GLOBAL SYMBOL 110> ANS1 002656 GLOBAL SYMBOL 110> ARGERR 104446 GLOBAL SYMBOL 110> ATTDET 001116 GLOBAL SYMBOL 110> A.BFSR 000004 GLOBAL SYMBOL 110> A.DFBC 000100 GLOBAL SYMBOL 110> A.DFDR 000050 GLOBAL SYMBOL 110> A.DFUI 000102 GLOBAL SYMBOL 110> A.DPB 000014 GLOBAL SYMBOL 110> A.EFSR 000006 GLOBAL SYMBOL 110> A.FIPR 000012 GLOBAL SYMBOL 110> A.IOST 000044 GLOBAL SYMBOL 110> A.OWUI 000010 GLOBAL SYMBOL 110> BOLNHD 002572 GLOBAL SYMBOL 110> BRFLAG 002530 GLOBAL SYMBOL 110> B.BBFS 000010 GLOBAL SYMBOL 110> B.BFST 000015 GLOBAL SYMBOL 110> B.NXBD 000012 GLOBAL SYMBOL 110> B.VBN 000004 GLOBAL SYMBOL 110> CALERR 104445 GLOBAL SYMBOL 110> CH.AND 000001 GLOBAL SYMBOL 110> CLOSER 104443 GLOBAL SYMBOL 110 @ LISTING OF BSCBUG.STB 01/21/82 15:55:27@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> CLSERR 104440 GLOBAL SYMBOL 110> COMERR 104464 GLOBAL SYMBOL 110> COMFDB 002150 GLOBAL SYMBOL 110> COMFNB 002310 GLOBAL SYMBOL 110> COUNT 002650 GLOBAL SYMBOL 110> CR 000015 GLOBAL SYMBOL 110> CSBUFF 002422 GLOBAL SYMBOL 110> CSBUFL 002472 GLOBAL SYMBOL 110> CSBUFS 000050 GLOBAL SYMBOL 110> CSDSPT 002354 GLOBAL SYMBOL 110> CSIBLK 002346 GLOBAL SYMBOL 110> CSIERR 104434 GLOBAL SYMBOL 110> DATI 002610 GLOBAL SYMBOL 110> DEFERR 104417 GLOBAL SYMBOL 110> DIMERR 104415 GLOBAL SYMBOL 110> DMDERR 104421 GLOBAL SYMBOL 110> DMVERR 104416 GLOBAL SYMBOL 110> DVFERR 104502 GLOBAL SYMBOL 110> D.DFDV 000024 GLOBAL SYMBOL 110> D.DFID 000016 GLOBAL SYMBOL 110> D.DFUN 000026 GLOBAL SYMBOL 110> ECHOFL 002545 GLOBAL SYMBOL 110> ENDSTK 002536 GLOBAL SYMBOL 110> ENDTXT 002570 GLOBAL SYMBOL 110> ENDUSR 002606 GLOBAL SYMBOL 110> ENUDAT 002576 GLOBAL SYMBOL 110> ENUSAV 002612 GLOBAL SYMBOL 110> EOFERR 104442 00.qk8k"k##k$g%(kdd GLOBAL SYMBOL 110> ERRBRN 001026 GLOBAL SYMBOL 110> ERRR02 001006 GLOBAL SYMBOL 110> ERRR03 001000 GLOBAL SYMBOL 110> ERRR05 001014 GLOBAL SYMBOL 110> EXFERR 104432 GLOBAL SYMBOL 110> FACERR 104457 GLOBAL SYMBOL 110> FA.APD 000100 GLOBAL SYMBOL 110> FA.CRE 000010 GLOBAL SYMBOL 110> FA.DLK 001000 GLOBAL SYMBOL 110> FA.ENB 100000 GLOBAL SYMBOL 110> FA.EXC 002000 GLOBAL SYMBOL 110> FA.EXT 000004 GLOBAL SYMBOL 110> FA.NSP 000100 GLOBAL SYMBOL 110> FA.POS 010000 GLOBAL SYMBOL 110> FA.RD 000001 GLOBAL SYMBOL 110> FA.RWD 004000 GLOBAL SYMBOL 110> FA.SEQ 040000 GLOBAL SYMBOL 110> FA.SHR 000040 GLOBAL SYMBOL 110> FA.TMP 000020 GLOBAL SYMBOL 110> FA.WCK 020000 GLOBAL SYMBOL 110> FA.WRT 000002 GLOBAL SYMBOL 110> FDBSAV 002512 GLOBAL SYMBOL 110> FD.BLK 000010 GLOBAL SYMBOL 110> FD.CCL 000002 GLOBAL SYMBOL 110> FD.COM 020000 GLOBAL SYMBOL 110> FD.CR 000002 GLOBAL SYMBOL 110> FD.DIR 000010 GLOBAL SYMBOL 110 @ LISTING OF BSCBUG.STB 01/21/82 15:55:31@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> FD.FTN 000001 GLOBAL SYMBOL 110> FD.F11 040000 GLOBAL SYMBOL 110> FD.INS 000010 GLOBAL SYMBOL 110> FD.ISP 002000 GLOBAL SYMBOL 110> FD.MNT 100000 GLOBAL SYMBOL 110> FD.OSP 004000 GLOBAL SYMBOL 110> FD.PLC 000004 GLOBAL SYMBOL 110> FD.PRN 000004 GLOBAL SYMBOL 110> FD.PSE 010000 GLOBAL SYMBOL 110> FD.RAH 000001 GLOBAL SYMBOL 110> FD.RAN 000002 GLOBAL SYMBOL 110> FD.REC 000001 GLOBAL SYMBOL 110> FD.RWM 000001 GLOBAL SYMBOL 110> FD.SDI 000020 GLOBAL SYMBOL 110> FD.SQD 000040 GLOBAL SYMBOL 110> FD.TTY 000004 GLOBAL SYMBOL 110> FD.WBH 000002 GLOBAL SYMBOL 110> FF 000014 GLOBAL SYMBOL 110> FF.CHR 000005 GLOBAL SYMBOL 110> FF.NV 000003 GLOBAL SYMBOL 110> FF.POE 000002 GLOBAL SYMBOL 110> FF.RWD 000001 GLOBAL SYMBOL 110> FF.RWF 000006 GLOBAL SYMBOL 110> FF.SPC 000004 GLOBAL SYMBOL 110> FIXERR 104503 GLOBAL SYMBOL 110> FNMERR 104441 GLOBAL SYMBOL 110> FOFERR 104504 GLOBAL SYMBOL 110> FORERR 104426 GLOBAL SYMBOL 110> FO.APD 000106 GLOBAL SYMBOL 110> FO.MFY 000002 GLOBAL SYMBOL 110> FO.RD 000001 GLOBAL SYMBOL 110> FO.UPD 000006 GLOBAL SYMBOL 110> FO.WRT 000016 GLOBAL SYMBOL 110> FPEXFL 00.ykKk,Mk-Ok.Pkddd 002532 GLOBAL SYMBOL 110> FUFERR 104505 GLOBAL SYMBOL 110> F.ACTL 000076 GLOBAL SYMBOL 110> F.ALOC 000040 GLOBAL SYMBOL 110> F.BBFS 000062 GLOBAL SYMBOL 110> F.BDB 000070 GLOBAL SYMBOL 110> F.BGBC 000057 GLOBAL SYMBOL 110> F.BKDN 000026 GLOBAL SYMBOL 110> F.BKDS 000020 GLOBAL SYMBOL 110> F.BKEF 000050 GLOBAL SYMBOL 110> F.BKP1 000051 GLOBAL SYMBOL 110> F.BKST 000024 GLOBAL SYMBOL 110> F.BKVB 000064 GLOBAL SYMBOL 110> F.CHR 000075 GLOBAL SYMBOL 110> F.CNTG 000034 GLOBAL SYMBOL 110> F.DFNB 000046 GLOBAL SYMBOL 110> F.DSPT 000044 GLOBAL SYMBOL 110> F.DVNM 000134 GLOBAL SYMBOL 110> F.EFBK 000010 GLOBAL SYMBOL 110> F.EFN 000050 GLOBAL SYMBOL 110> F.EOBB 000032 GLOBAL SYMBOL 110> F.ERR 000052 GLOBAL SYMBOL 110 @ LISTING OF BSCBUG.STB 01/21/82 15:55:35@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> F.FACC 000043 GLOBAL SYMBOL 110> F.FFBY 000014 GLOBAL SYMBOL 110> F.FNAM 000110 GLOBAL SYMBOL 110> F.FNB 000102 GLOBAL SYMBOL 110> F.FTYP 000116 GLOBAL SYMBOL 110> F.FVER 000120 GLOBAL SYMBOL 110> F.HIBK 000004 GLOBAL SYMBOL 110> F.LUN 000042 GLOBAL SYMBOL 110> F.MBCT 000054 GLOBAL SYMBOL 110> F.MBC1 000055 GLOBAL SYMBOL 110> F.MBFG 000056 GLOBAL SYMBOL 110> F.NRBD 000024 GLOBAL SYMBOL 110> F.NREC 000030 GLOBAL SYMBOL 110> F.OVBS 000030 GLOBAL SYMBOL 110> F.RACC 000016 GLOBAL SYMBOL 110> F.RATT 000001 GLOBAL SYMBOL 110> F.RCNM 000034 GLOBAL SYMBOL 110> F.RCTL 000017 GLOBAL SYMBOL 110> F.RSIZ 000002 GLOBAL SYMBOL 110> F.RTYP 000000 GLOBAL SYMBOL 110> F.SEQN 000100 GLOBAL SYMBOL 110> F.SPDV 000072 GLOBAL SYMBOL 110> F.SPUN 000074 GLOBAL SYMBOL 110> F.STBK 000036 GLOBAL SYMBOL 110> F.UNIT 000136 GLOBAL SYMBOL 110> F.URBD 000020 GLOBAL SYMBOL 110> F.VBN 000064 GLOBAL SYMBOL 110> F.VBSZ 000060 GLOBAL SYMBOL 110> GOERR 104402 GLOBAL SYMBOL 110> HT 000011 GLOBAL SYMBOL 110> ID001 034060 GLOBAL SYMBOL 110> ID002 047516 GLOBAL SYMBOL 110> ID003 034067 GLOBAL SYMBOL 110> IE.DNR 177775 GLOBAL SYMBOL 110> IE.EOF 177766 GLOBAL SYMBOL 110> IE.PRI 177760 GLOBAL SYMBOL 110> IFERR 104412 GLOBAL SYMBOL 110> ILCERR 104403 GLOBAL SYMBOL 110> ILFERR 104433 GLOBAL SYMBOL 110> 00.k8k"k##k$g%(kdd IMMERR 104465 GLOBAL SYMBOL 110> INPBUF 001162 GLOBAL SYMBOL 110> INPERR 104422 GLOBAL SYMBOL 110> INPQIO 002116 GLOBAL SYMBOL 110> INPSTA 002144 GLOBAL SYMBOL 110> INPT 002062 GLOBAL SYMBOL 110> IN1ERR 104507 GLOBAL SYMBOL 110> IN2ERR 104510 GLOBAL SYMBOL 110> IN3ERR 104511 GLOBAL SYMBOL 110> IO.ATA 001410 GLOBAL SYMBOL 110> IO.DET 002000 GLOBAL SYMBOL 110> IO.KIL 000012 GLOBAL SYMBOL 110> IO.RVB 010400 GLOBAL SYMBOL 110> IO.WVB 011000 GLOBAL SYMBOL 110> LASTEX 002552 GLOBAL SYMBOL 110> LETERR 104410 GLOBAL SYMBOL 110 @ LISTING OF BSCBUG.STB 01/21/82 15:55:39@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> LF 000012 GLOBAL SYMBOL 110> LINEFL 002546 GLOBAL SYMBOL 110> LINEHD 002516 GLOBAL SYMBOL 110> LINELN 002550 GLOBAL SYMBOL 110> LINENO 002520 GLOBAL SYMBOL 110> LINERR 104414 GLOBAL SYMBOL 110> LNKOLD 002056 GLOBAL SYMBOL 110> LNKSAV 001632 GLOBAL SYMBOL 110> LNKTIN 001156 GLOBAL SYMBOL 110> LNNERR 104420 GLOBAL SYMBOL 110> LODERR 104460 GLOBAL SYMBOL 110> LOGERR 104500 GLOBAL SYMBOL 110> LSTLIN 002524 GLOBAL SYMBOL 110> MODPB 001050 GLOBAL SYMBOL 110> MOLUN 001046 GLOBAL SYMBOL 110> MPARLS 002622 GLOBAL SYMBOL 110> M.I 001074 GLOBAL SYMBOL 110> M.OLUN 000004 GLOBAL SYMBOL 110> M.ONUM 000016 GLOBAL SYMBOL 110> NB.DEV 000200 GLOBAL SYMBOL 110> NB.DIR 000100 GLOBAL SYMBOL 110> NB.NAM 000004 GLOBAL SYMBOL 110> NB.SD1 000400 GLOBAL SYMBOL 110> NB.SD2 001000 GLOBAL SYMBOL 110> NB.SNM 000040 GLOBAL SYMBOL 110> NB.STP 000020 GLOBAL SYMBOL 110> NB.SVR 000010 GLOBAL SYMBOL 110> NB.TYP 000002 GLOBAL SYMBOL 110> NB.VER 000001 GLOBAL SYMBOL 110> NEWLIN 002474 GLOBAL SYMBOL 110> NXMERR 104430 GLOBAL SYMBOL 110> NXTERR 104427 GLOBAL SYMBOL 110> NXVERR 104506 GLOBAL SYMBOL 110> N.DEVD 000000 GLOBAL SYMBOL 110> N.DID 000024 GLOBAL SYMBOL 110> N.DIRD 000004 GLOBAL SYMBOL 110> N.DVNM 000032 GLOBAL SYMBOL 110> N.FID 000000 GLOBAL SYMBOL 110> N.FNAM 000006 GLOBAL SYMBOL 110> N.FNMD 000010 GLOBAL SYMBOL 110> N.FTYP 000014 GLOBAL SYMBOL 110> N.FVER 000016 GLOBAL SYMBOL 110> N.NEXT 000022 GLOBAL SYMBOL 110> N.STAT 000020 GLOBAL SYMBOL 110> N.UNIT 000034 GLOBAL S00.kKk,Mk-Ok.PkdddYMBOL 110> OINPT 002042 GLOBAL SYMBOL 110> OLDFLG 002560 GLOBAL SYMBOL 110> OPENER 104444 GLOBAL SYMBOL 110> OPLBER 104450 GLOBAL SYMBOL 110> OPLFER 104451 GLOBAL SYMBOL 110> OPNERR 104437 GLOBAL SYMBOL 110> OPRERR 104411 GLOBAL SYMBOL 110> OP.EOF 002504 GLOBAL SYMBOL 110> OP.LEN 002500 GLOBAL SYMBOL 110> OP.LUN 002502 GLOBAL SYMBOL 110 @ LISTING OF BSCBUG.STB 01/21/82 15:55:43@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> OP.MXL 000020 GLOBAL SYMBOL 110> OP.RAC 002506 GLOBAL SYMBOL 110> OP.RTP 002510 GLOBAL SYMBOL 110> OTPT 002064 GLOBAL SYMBOL 110> OUTQIO 002070 GLOBAL SYMBOL 110> OUTSTA 002112 GLOBAL SYMBOL 110> OVFERR 104400 GLOBAL SYMBOL 110> PARERR 104407 GLOBAL SYMBOL 110> PARLST 001030 GLOBAL SYMBOL 110> PRFERR 104456 GLOBAL SYMBOL 110> PRIERR 104455 GLOBAL SYMBOL 110> PRMTFL 002542 GLOBAL SYMBOL 110> PRNERR 104413 GLOBAL SYMBOL 110> PR1 000040 GLOBAL SYMBOL 110> PR2 000100 GLOBAL SYMBOL 110> PR3 000140 GLOBAL SYMBOL 110> PR4 000200 GLOBAL SYMBOL 110> PR5 000240 GLOBAL SYMBOL 110> PR6 000300 GLOBAL SYMBOL 110> PR7 000340 GLOBAL SYMBOL 110> PS 177776 GLOBAL SYMBOL 110> P.ERCD 000002 GLOBAL SYMBOL 110> P.FCS 000010 GLOBAL SYMBOL 110> P.FLNM 000012 GLOBAL SYMBOL 110> P.FNAM 000014 GLOBAL SYMBOL 110> P.LINE 000006 GLOBAL SYMBOL 110> QFLG 002540 GLOBAL SYMBOL 110> QLUN 002622 GLOBAL SYMBOL 110> QNAM 002640 GLOBAL SYMBOL 110> QSTAT 002626 GLOBAL SYMBOL 110> Q.IOFN 000002 GLOBAL SYMBOL 110> Q.IOPL 000014 GLOBAL SYMBOL 110> REAERR 104423 GLOBAL SYMBOL 110> REMTRM 002476 GLOBAL SYMBOL 110> RETERR 104404 GLOBAL SYMBOL 110> RE1ERR 104424 GLOBAL SYMBOL 110> RE2ERR 104425 GLOBAL SYMBOL 110> RNDM 002534 GLOBAL SYMBOL 110> RPASFL 002543 GLOBAL SYMBOL 110> RUNF 002526 GLOBAL SYMBOL 110> R.FIX 000001 GLOBAL SYMBOL 110> R.SEQ 000003 GLOBAL SYMBOL 110> R.VAR 000002 GLOBAL SYMBOL 110> SBSERR 104405 GLOBAL SYMBOL 110> SCOUNT 001624 GLOBAL SYMBOL 110> SETERR 104463 GLOBAL SYMBOL 110> SLPERR 104452 GLOBAL SYMBOL 110> SOTPT 001616 GLOBAL SYMBOL 110> SQRERR 104501 GLOBAL SYMBOL 110> STCOUN 002522 GLOBAL SYMBOL 110> STFONX 00200.k8k"k##k$g%(kdd602 GLOBAL SYMBOL 110> STGOSB 002600 GLOBAL SYMBOL 110> STOERR 104447 GLOBAL SYMBOL 110> STRERR 104435 GLOBAL SYMBOL 110> STRIN 002644 GLOBAL SYMBOL 110 @ LISTING OF BSCBUG.STB 01/21/82 15:55:47@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> STROUT 002644 GLOBAL SYMBOL 110> STUDAT 002574 GLOBAL SYMBOL 110> STUEPT 002562 GLOBAL SYMBOL 110> STUFDB 002604 GLOBAL SYMBOL 110> STUROU 002564 GLOBAL SYMBOL 110> STXERR 104436 GLOBAL SYMBOL 110> SUBERR 104406 GLOBAL SYMBOL 110> SWR 177570 GLOBAL SYMBOL 110> S.AND 000310 GLOBAL SYMBOL 110> S.BAS 000140 GLOBAL SYMBOL 110> S.BFHD 000020 GLOBAL SYMBOL 110> S.DATA 000167 GLOBAL SYMBOL 110> S.ECHO 000322 GLOBAL SYMBOL 110> S.ELSE 000316 GLOBAL SYMBOL 110> S.EOL1 000374 GLOBAL SYMBOL 110> S.EOL2 000377 GLOBAL SYMBOL 110> S.EOS1 000375 GLOBAL SYMBOL 110> S.EOS2 000376 GLOBAL SYMBOL 110> S.EQV 000314 GLOBAL SYMBOL 110> S.EXC 000150 GLOBAL SYMBOL 110> S.FATT 000016 GLOBAL SYMBOL 110> S.FDB 000140 GLOBAL SYMBOL 110> S.FIDS 000014 GLOBAL SYMBOL 110> S.FN 000304 GLOBAL SYMBOL 110> S.FNAM 000006 GLOBAL SYMBOL 110> S.FNB 000036 GLOBAL SYMBOL 110> S.FNBW 000017 GLOBAL SYMBOL 110> S.FNTY 000004 GLOBAL SYMBOL 110> S.FSR2 000104 GLOBAL SYMBOL 110> S.FTYP 000002 GLOBAL SYMBOL 110> S.GOSB 000146 GLOBAL SYMBOL 110> S.GOTO 000143 GLOBAL SYMBOL 110> S.IF 000142 GLOBAL SYMBOL 110> S.IMP 000313 GLOBAL SYMBOL 110> S.NEXT 000145 GLOBAL SYMBOL 110> S.NFBO 000303 GLOBAL SYMBOL 110> S.NFEN 000020 GLOBAL SYMBOL 110> S.NFST 000265 GLOBAL SYMBOL 110> S.NOT 000307 GLOBAL SYMBOL 110> S.OFF 000315 GLOBAL SYMBOL 110> S.ON 000164 GLOBAL SYMBOL 110> S.OR 000312 GLOBAL SYMBOL 110> S.PRIN 000152 GLOBAL SYMBOL 110> S.PRMT 000317 GLOBAL SYMBOL 110> S.REM 000151 GLOBAL SYMBOL 110> S.RPAL 000320 GLOBAL SYMBOL 110> S.SAEN 000264 GLOBAL SYMBOL 110> S.SAST 000252 GLOBAL SYMBOL 110> S.SFEN 000251 GLOBAL SYMBOL 110> S.SFST 000223 GLOBAL SYMBOL 110> S.STEP 000204 GLOBAL SYMBOL 110> S.THEN 000305 GLOBAL SYMBOL 110> S.TO 000306 GLOBAL SYMBOL 110> S.TRAC 000162 GLOBAL SYMBOL 110> S.VBEN 000222 GLOBAL SYMBOL 110 @ LISTING OF BSCBUG.STB 01/21/82 15:55:51@ 00.k/kMk-Ok.Pkddd NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> S.WPAL 000321 GLOBAL SYMBOL 110> S.XOR 000311 GLOBAL SYMBOL 110> TCOUNT 001376 GLOBAL SYMBOL 110> TF.RAL 000010 GLOBAL SYMBOL 110> TF.RNE 000020 GLOBAL SYMBOL 110> TF.WAL 000010 GLOBAL SYMBOL 110> TIMBUF 001076 GLOBAL SYMBOL 110> TINPT 001142 GLOBAL SYMBOL 110> TMOERR 104454 GLOBAL SYMBOL 110> TM1ERR 104476 GLOBAL SYMBOL 110> TM2ERR 104477 GLOBAL SYMBOL 110> TOTPT 001370 GLOBAL SYMBOL 110> TRCFLG 002541 GLOBAL SYMBOL 110> TRMSIZ 000204 GLOBAL SYMBOL 110> UICSTO 002554 GLOBAL SYMBOL 110> UNLDSV 002614 GLOBAL SYMBOL 110> UNMERR 104431 GLOBAL SYMBOL 110> UNRERR 104401 GLOBAL SYMBOL 110> USR 002566 GLOBAL SYMBOL 110> VALERR 104512 GLOBAL SYMBOL 110> VFIERR 104461 GLOBAL SYMBOL 110> VOPERR 104462 GLOBAL SYMBOL 110> VT 000013 GLOBAL SYMBOL 110> WATERR 104453 GLOBAL SYMBOL 110> WORK 002514 GLOBAL SYMBOL 110> WPASFL 002544 GLOBAL SYMBOL 110> WTMAG 002620 GLOBAL SYMBOL 110> WTUNIT 002616 GLOBAL SYMBOL 110> $DSW 000000 GLOBAL SYMBOL 110> VOPERR 104462 GLOBAL SYMBOL 1z 8SD8 ~H9xHL:<H:H€:HȀ:_H΀:`HԀ:(}H:Hڀ:ZH΀5H#r0HԐr0H悴rXHu0H@z#w0Hw0Hw0Hw0Hڅ6x$HHAyHzy΁HZy0Hu~0H0HҊ0HRt Hʑ0HʖHґu0Hpz! H̥"OHj"{H '0H,2Hf,ZHН,yHV+.NH,.bHĒ,.bH ,.bH,.bHƒ.&H.0HlN9HԠz:0HB:XH:K0Ht_XH2`X΁Hħ_΁H|fHIqHUq0H[q0H“\q0Hs0H2sXHyZH&yhHzyhHyyHyHyH [}H) OHK VH{HBHPtHN*HZHuH&'Hش&'Hz&H&H'NH,NH^y:΁H y:ρH y:ЁHy:сHy:Hty:HPAIH2YMH_XH,_H>d0H\zdHfN\HfO\Hf΁Hf0H[g6HdJw0HhxhHxWHxO\HxdHdxhHr}y0Hy2Hy6Hzy0HyOH, Hް 0H|HK*}HOHB HivHX DRHOvHvHH| Hʜ, H.I.Hlz:H|Q H>QvHSvHS HɌZ`HL`NH:d Hüp H)qvHnsvH6sHHM""Hz\M""H0_M""H@oM%HoMg'HhoM NHoMYHoMyH NvLHTSPdH(SpH&SsrHUH<UVNHUZH_XvLH<zM[""HT[""HV[""HF6_ gH"_g'HvE`ZXH$L`Z H(L`Z&H)N`""HR`""H \`!HD\`KH@\`VNHB\` UH\`pHFz\`sHH`}H4akH8ayHJ6a""H:d""H:d NHf""H.f""H-f}Hbf""H fH fH@fH`fHzfHfHfHfHehpHfhHfh=MH fhWH lhu:H\q""Hgq""Hhq""Hr@QH\swHcs%HVtzv~ gHb""H,'""H>(""H?l gHg'HaBxHyHr|H}""H""HЅ`'HfJH|""HJy""H1J""H2H ""H6""H+*DHLAwHdXHXHsH%{`H%{mH%{xHh&{PH`&{WH'{` ee(Vz[qU.05JU85f9 f7 ť ť  ť0Bp0AaB w dx(@f ťZ#ťAť9ť0ť$ ť  ť.@KqAa$  *  + 23E Ew w   Е-   0@ rW e`fÊ    E  & &  r(f  e ee e  @b~z7 ΃ z)F \HLl8 ,47 A ()f   ( )  ) X3 x(  P& 7 w~ s6  B ~P‚s7 e &JBCDE؂LB:[1,2]BASICRpED>=&2tm,7Uw4f&& & & (B¥E*¥-D¥+>¥.5 (_05B7R5 Up `%A5;UEB :(-+UM5 'UEU555U5U@53 U 5UU5@56 UmW ~ W ~ %5 B@& & &  &  0 @f-777 7 7% 7   c?e C ~#/#,  (e`   7pfe0 ~Е. Е.Е0~ Е  e  ЕED  6@> BV4Cz  X& @ < B@7@wz000kkMk-Ok.PkdddDBnBf " (@ ~ ~`\< f&&f f&e  %,E %,):  j%,1& -va  vfBa@   &U   z~ ~   a EwT~&H  $ )v&  "~ $ )v )ӥ $ aӕ, f Ew} }@ b `$V } J N D$)v b . $$ )v Ē@E P v%! ~,e 37s7 77   e7 |v  |& N|B%@v h| & | # ,L& ^ z($4F66 6  6 6 - 6 m66`6  ",  {  {& r n",; d ^",)0@ & & :",! ~ v V *A&  @W@ N` "@D`0{ @`  B H@@ f zC  e  Ceפ  & H @!¥) aר פ  & Z fhz   ?Hz & f %@ @?zC:DFH/@B>-B@>JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC|ltC ^ )0 N ) @F#l  > >=fvy !- "  Ry 3% Е0 r   B``PPP  HHaFpC77mn  5   : 5  B 7HuFuDu7v7nn~@@;Zx0N  )v & & & a ! //w `-/m qW nv B/avv E~-K  KeA  =  8NW c=-5 :$ !m t@ W 5  BlFeBe#= p=ף t%& 7777776@  Ն6 &  )v -`ԕ:&n :T U~% W< e  e;;  & , &  , re | @ E&  B~@@W@ ~ ~Օ. @  d~@=B: W.Օ0 B *Օ- Օ ~B | UC~`77e0e `e $ ԇUCՕ*~& F  :,&ta Ewt h섷|t%  ႄ• ~  a  Ba~?*t`a  C  &Օ ~   |&  . 5C~pxpN bHrDr $  # 7 s7WsSsHs6sTs7 0sw&STOP AT LINE sGo7 s   rЕ" !ДЕ"  .w  .r bGo .w%HH .rrrwr& @777rr \r7 VrNrHr  Fr @r Ar7 ,r w"%  X"d A N"u q <" X BRANCH TO LINE STMT  cf  x, ~%cww V # !!5 fe  Aw#7 q q q   e`qw#eVqw&q   W ~qf pBwp #i da&& & [& p5R2tҔ E&e $F@a7p  ~2 \5 /& +fv (e   UU  ~wNp , w"  && & , U&&  ⅀  &   ~   & DB 7`oE000kk"k##k$g%(kdd r EeN  , ew! [  t ]  V ( F& ,  6 )      ч NJ G$U 4U` n 7n ` (/C R N(& >#$U  . ), = s$nw&n Bw  nn   + -   (& && f m `W Q  %fW@ UWv Ue)WR eX @B @  )      )+-*/^wf E" `  7 χ ` l& ρl  &' ` . l U`  Hf n   Jx"222,F  Bl&  B*l <f&5    T  wk >`kwk j Ք Ewk F¥) ¥, wZ mk E hk& ;fff EwFk `' (E`5UՔ~f + jE j vE` &  %  h "C W"W 6 D녗$ (Rj U ` f  )  & $ % &  U U U@i 5StE& J(>   &&^ v & ,, d)&    Ԃ#  p`p`% e2i  s  (# & , V3 @3 @@B@ &f U E &weD f&V h, p4& &  B9* \9 *& EspQ evd12e0e` 46& &  9* 8 *f xܝ  tE 5mng& `Ff&@ x:BFJR    f 25  ĜE  `&E%5mf& &`Ff& 5EDa &  2 "&   Da  Ҕ B& &j C  o w"f   " & 4& =  V | p w*& R E(0 `$ { @ B @xU E& &  )  &&   %&e& a Ewe ud& D!  D  555 ;Bb   Vd w Dd #6dfAmZd C  W•  dw w  wXwc < = >  UUUTAB( >rb 8Uc&  n 2 ,<;Y Z W C l V NH Jc b  &``~  f $ e ca   -a e•    l 7 bw&  bba!”   zބ vbf6a !!• z[ɥ` ѥ  E [ɕE [ <<SYJw SY&Y0,  &frYI@ W pp =1 p p9 & &Y.YW*7V YY7Y |w bX?Y BX& \7 Y7 Z&h 4MTX w^ !(,&(f,  B~7YєzY $ȕ &Y 0  9 A Z B¥ ¥ WWhW W 6 z7 2Y"Y"Yw!YC 5JtExƬƬƬҬfEU& X+   e` Ne`  Je`eE?eE`U7U7U>e&&  &f    p @ p @ EaX XAmWB ZfWCR~WC& `7`Wfw!WWw!WWAmWWWWB "1  (EWuWu` BAAmLWEEw!:WAm,W&W EuB nEPB  | ,   6    T5fVTT# 0w Uw7 8V  B P T 'fTT# 0 &W  & &wB  &5U7 U4"T"UeH~e e wR U wU7 xUUU T5RU TrUTU7 UU7xU7vUfjU hU 54Etx< <LLLbbn e` C e E `?eEeLIRT>CO><7 T  pTjT|T xTw`TD`T8  & Y&fvT@jT`lT`fT``T`ZTB` b~  & 2h $ ^  wvf    7 S@FXHRNFLNENBNIBLIROBWRBUPBMOBAPFBSH B@D` & ~>SP PSB   R"$^&M# ¥# 7RR!!  ` ¥, f RR"RpRE bRE\RXR3ex  DHR# UH#UUU" MetQeUU%Qe@` ~e`00 ,*7N $7QwPx 2 *DQ#UpQ(QQ 7Q7Q7QQf  ~  T %  %, P w p 5 .5 5  Le +*7M#   exP 7`P7`P7`PP P @ lex & Z %TP@ %# B5O5O e etl ,' @ 55  3 ,/!O Ѐ fe h*O O0  f C :-  O  000kk"k##k$g%(kdd*vO f D  f&N! 0O  , nwewpA $AmNB" 5NUNENh 5 NUN5N.5zN'E5 N!`&  ֻ`Ћ~ •   • E HN x(H28H\:5M n X?7!"N mNNe N1NfmMmM~BwMMe 7MBmMB w!M5 @, w nM &B z8pp" h wf h$MwX M\M MSw!&MPwLwLAmM7 L LM E LLL 7L7L7L L7LLL hE` w 2 b`K\Kz ϗn  w•wwb,K(K7 FL7 DL p p   wHCl $e 嗠,  m> 嗠, 5  h*w:w p p D Lh A B ~ : P@ Е  0Е)Е @ f= B\ ~ 5! w=C = =B =~w= fA   T~ B n~  (B P~  >6=7@=5! w= BC  A pp   DlBW\~ \ D7<<< BC <5  .MACRO.ENDM<   & 7z<ɇ d<^< w e | @w e f d X<< w < @ , *w ;; N h p p rwX d w: >@ 2 ^;X; pp p ć 7>; 8 V @8 F D 8 C (w   p p  PA Cl˕, &e ᗠ,C B  ,D  w 7 : ,7 (Ve D EIД~& &fB &  &9& & & @ D Rf| !{QF{Q& B  Ń ,e`&f6T C FT CDR{Q4{q!'[qvozf[ZgKq zfU( ̽BPBA  &Ӊ  1@r5@?U?*@ڪAr?[CD @%  L w 97=  W@@ @P7L H@7F@w>P@ PBCD EfIA@?0@ @׳>:L]L?ƪ@ =7^ =   ?AA @ PB P &@!h:יc&>X4%]@D 1 C+  f# Ό@ PCBPA& a @ȉʉ  @;\)8A;\)pC[\Eys@‚=Aԉ   e@ & f@ A&tоԠĒħ:BB|Bpʖ“ҿ2T(@*ԐΐҊ̊~Ȉ숨t~@ HNTB<6օZڅ~~:RV^~pv·|f&f ` *  נ נ  נננ"D נaנz E ѐEp(p נ$נ0נ9נAנZנ_נ:  Vנ[ȕ]נ<ȕ>ȋ8 ~נ%נ*נ-נ.נ0נ9נAנZȠ yנ0נ7נ*נ,A jȠh f  oנ"A   #A aנ$נ%נ*נ0נ9נAנZנ_נ.  נ.נ; dנ0נ9 ]נ- X נ* QA  נ, Dנ=  >5 B>U (w^נ/* . ,נ$נ-נ.נ0נ9נAנZ נ_ נ:  Dנ"  0f&f E^`  UQ  UQ ËUI U `e  !ddC    D%*.C U 0 0 W ,Uw6W /@ : ^BDaW-Ί WNWOD!BΊz CECCD! D! ΋5  e ΐ TpRpR΋pBC5N KR΋KBAE:D0CĊ f eB  Dҁ CSĊ > WB E Br Ε f)& 6 l(*  E 'W " =N  W :+W = 1 #W ,W / %W %W *Հ W <W [W >W ] v(* 6 ew 4* 8B pB T f0 B w *) 0 * Pw46l0e(BA000k1k"k##k$g%(kdd &e(H0 A f AfAD&pD0 >(w & 8 0,0w , Fw www  $0,0w^ 46 8% )0406 0 *w  w & W+W- Ba. W#  B0  c  c S W %ec e`s  # 3  & ˥ Z ^C  8   **  4 6 ,e6p 4*&4&6= 64 wz%!64=5 V2 6  l0 & Z46 n#64 :)0406 0 *0e6p 4 = 2; generate error messages for use with 11m version;A; This generates a table of error messages, along with a table of1; message numbers, starting addresses and lengths;D; If we include message numbers, error routine can search thru tableH; and skip over error numbers for which there is no message, thus making; text storage minimum;; F. borger August 27, 1986;; .macro err a b .psect mestxt aaaaaa=. .asciz ?b? bbbbbb=. .psect mestbl .word a ;error number .word aaaaaae .endm;m'; put error messages in their own psecth;g .psect mestxt,rw,i,gbl,rel,cons$mestxt:: ;start of ascii messages;r/; and put the number/address table in its psectn;d .psect mestbl,rw,i,gbl,rel,concmestbl:: ;start of table ;o!; Now generate error messagess; $ err 0. < - User Storage overflow>6 err 1. < - Unrecognized statement - check spelling>$ err 2. < - Illegal GOTO or GOSUB>= err 3. < - Illegal character in or terminating input line>m# err 4. < - RETURN Without GOSUB>u% err 5. < - Badly formed subscript>g% err 6. < - Subscript out of range>t% err 7. < - Mismatched parentheses> $ err 8. < - Illegal LET statement>0 err 9. < - Illegal relational operator in IF> err 10. < - Illegal IF> err 11. < - Illegal PRINT>, err 12. < - Device or File error on input> err 13. < - Bad DIMENSION>7 err 14. < - Not enough room in storage for the array>O" err 15. < - Badly formed define>5 err 16. < - Illegal line number or dimension value>E3 err 17. < - DIM of previously used variable name>c) err 18. < - Bad variable in input list>e( err 19. < - Bad variable in read list>& err 20. < - Out of data during read>+ err 21. < - Bad data in a data statement>I$ err 22. < - Illegal FOR statement>+ err 23. < - No NEXT without matching FOR>o err 24. < - NEXT without FOR> , err 25. < - Unmatched quotes in statement>4 err 26. < - External function not properly set up>& err 27. < - Badly formed expression>2 err 28. < - Error in command string interpreter>! err 29. < - SBS function error>r' err 30. < - Syntax error in function>e# err 31. < - Syntax error in OPEN>>$ err 32. < - Syntax error in CLOSE>" err 33. < - Invalid file number> err 34. < - End of file error>% err 35. < - FCS error during CLOSE> $ err 36. < - FCS error during OPEN>+ err 37. < - Error during CALL processing>u* err 38. < - Error in CALL argument list>3 err 39. < - Error in store during called routine>m9 err 40. < - Syntax error or LUN in use in library open>p8 err 41. < - FCS error during library open or 1st read>, err 42. < - Syntax error in SLEEP command>+ err 43. < - Syntax error in WAIT command>r: err 44. < - Timeout error - you waited too long to type> err 45. < - Priority error> ' err 46. < - Basic program file error> / err 47. < - File access mode error (seq/ran)>i. err 48. < - Error in loaded user subroutine>, err 49. < - Virtual access error from fcs>/ err 50. < - Virtual file open error from fcs>r# err 51001k2k3kOk.Pkddd. < - Error in set command>e; err 52. < - Use of "/co" switch with normal basic source> 4 err 53. < - Immediate mode command in source text>& err 54. < - Variable type mis-match>7 err 62. < - Debugging error #1 - tell system manager> 7 err 63. < - Debugging error #2 - tell system manager>e- err 64. < - Log of negative or zero number>(- err 65. < - Square root of negative number>s3 err 66. < - Under/overflow in multiply or divide>c& err 67. < - Number too large to fix> err 68. < - Floating overflow>! err 69. < - Floating underflow> $ err 70. < - Non-existent variable>" err 71. < - Too much data typed>$ err 72. < - Not enough data typed>* err 73. < - Illegal characters on input>& err 74. < - Error in value function> .end3< - Debugging error #2 - tell system manager>e- err 64. < - Log of negative or zero number>(- err 65. < - Square root of negative number>s3 err 66. < - Under/overflow in multiply or divide>c& err 67. < - Number too large to fix> err 68. < - Floati 0. User storage overflowR- 1. Unrecognized statement - check spellingT 2. Illegal GOTO or GOSUBI4 3. Illegal character in or terminating input line 4. RETURN without GOSUB 5. Badly formed subscript 6. Subscript out of range 7. Mismatched parentheses 8. Illegal LET statement ' 9. Illegal relational operator in IFR 10. Illegal IF 11. Illegal printF# 12. Device or file error on inputI 13. Bad dimensionR. 14. Not enough room in storage for the array 15. Badly formed defineo, 16. Illegal line number or dimension value* 17. DIM of previously used variable name 18. Bad variable in input list 19. Bad variable in read listU 20. Out of data during reado" 21. Bad data in a DATA statement 22. Illegal FOR statementr" 23. No NEXT without matching FOR 24. Next without FOR# 25. Unmatched quotes in statementF+ 26. External function not properly set upe 27. Badly formed expressions) 28. Error in command string interpretert 29. SBS function error 30. Syntax error in function 31. Syntax error in OPEN 32. Syntax error in CLOSEr 33. Invalid file numberb 34. End of file errora 35. FCS error during close 36. FCS error %d during open" 37. Error during call processing! 38. Error in call argument listN* 39. Error in store during called routine0 40. Syntax error or lun in use in library open/ 41. FCS error during library open or 1st readl# 42. Syntax error in SLEEP commandc" 43. Syntax error in WAIT command1 44. Timeout error - you waited too long to type3 45. Priority error 46. Basic program file error& 47. File access mode error (seq/ran)% 48. Error in loaded user subroutinec# 49. Virtual access error from FCS& 50. Virtual file open error from FCS 51. Error in SET command2 52. Use of "/co" switch with normal basic source+ 53. Immediate mode command in source text 54. Variable type mis-matcho. 62. Debugging error #1 - call system manager. 63. Debugging error #2 - call system manager$ 64. Log of negative or zero number$ 65. Square root of negative number 66. Floating divide by zero  67. Number too large to fix) 68. Floating overflows 69. Floating underflow 70. Non-existent variable5 71. Too much data typed  72. Not enough data typedc! 73. Illegal characters on inputi 74. Error in value functionmmediate mode command in source text 54. Variable type mis-matcho. 62. Debugging error #1 - call system manager. 63. Debugging error #2 - call system manager$ 6 MICHAEL REESE MEDICAL CENTER - - - DEPARTMENT OF MEDICAL PHYSICS COMPUTER BSCERRNUM.DOC;5 PAGE 1R LISTING OF DP0:[001,202]BSCERRNUM.DOC;5 ON 4-NOV-80 AT 14:27:20 PAGE 1 ? 0. USER STORAGE OVERFLOW ? 1. UNRECOGNIZED STATEMENT - CHECK SPELLING ? 2. ILLEGAL GOTO OR GOSUB ? 3. ILLEGAL CHARACTER IN OR TERMINATING INPUT LINE ? 4. RETURN WITHOUT GOS003kk"k##k$g%(kddUB E? 5. BADLY FORMED SUBSCRIPT ? 6. SUBSCRIPT OUT OF RANGE R? 7. MISMATCHED PARENTHESES ? 8. ILLEGAL LET STATEMENT ? 9. ILLEGAL RELATIONAL OPERATOR IN IF ? 10. ILLEGAL IF ? 11. ILLEGAL PRINT ? 12. DEVICE OR FILE ERROR %D ON INPUT ? 13. BAD DIMENSION ? 14. NOT ENOUGH ROOM IN STORAGE FOR THE ARRAY ? 15. BADLY FORMED DEFINE ? 16. ILLEGAL LINE NUMBER OR DIMENSION VALUE ? 17. DIM OF PREVIOUSLY USED VARIABLE NAME ? 18. BAD VARIABLE IN INPUT LIST ? 19. BAD VARIABLE IN READ LIST ? 20. OUT OF DATA DURING READ ? 21. BAD DATA IN A DATA STATEMENT ? 22. ILLEGAL FOR STATEMENT ? 23. NO NEXT WITHOUT MATCHING FOR ? 24. NEXT WITHOUT FOR ? 25. UNMATCHED QUOTES IN STATEMENT ? 26. EXTERNAL FUNCTION NOT PROPERLY SET UP ? 27. BADLY FORMED EXPRESSION ? 28. ERROR IN COMMAND STRING INTERPRETER ? 29. SBS FUNCTION ERROR ? 30. SYNTAX ERROR IN FUNCTION ? 31. SYNTAX ERROR IN OPEN ? 32. SYNTAX ERROR IN CLOSE ? 33. INVALID FILE NUMBER ? 34. END OF FILE ERROR ? 35. FCS ERROR %D DURING CLOSE ? 36. FCS ERROR %D DURING OPEN ? 37. ERROR DURING CALL PROCESSING ? 38. ERROR IN CALL ARGUMENT LIST ? 39. ERROR IN STORE DURING CALLED ROUTINE ? 40. SYNTAX ERROR OR LUN IN USE IN LIBRARY OPEN ? 41. FCS ERROR %D DURING LIBRARY OPEN OR 1ST READ ? 42. SYNTAX ERROR IN SLEEP COMMAND ? 43. SYNTAX ERROR IN WAIT COMMAND ? 44. TIMEOUT ERROR - YOU WAITED TOO LONG TO TYPE ? 45. PRIORITY ERROR ? 46. BASIC PROGRAM FILE ERROR %D ? 47. FILE ACCESS MODE ERROR (SEQ/RAN) ? 48. ERROR IN LOADED USER SUBROUTINE ? 49. VIRTUAL ACCESS ERROR - FCS %D ? 50. VIRTUAL FILE OPEN ERROR - FCS %D ? 51. ERROR IN SET COMMAND ? 52. USE OF "/CO" SWITCH WITH NORMAL BASIC SOURCE ? 53. IMMEDIATE MODE COMMAND IN SOURCE TEXT MICHAEL REESE MEDICAL CENTER - - - DEPARTMENT OF MEDICAL PHYSICS COMPUTER BSCERRNUM.DOC;5 PAGE 2R LISTING OF DP0:[001,202]BSCERRNUM.DOC;5 ON 4-NOV-80 AT 14:27:20 PAGE 2 ? 54. E? 55. M? 56. I? 57. C? 58. E? 59. ? 60. R? 61. ? 62. DEBUG #1 AT R3=%P R0=%P R4=%P ? 63. DEBUGG003kk3kOk.PkdddING ERROR #2 - CALL SYSTEM MANAGER ? 64. LOG OF NEGATIVE OR ZERO NUMBER ? 65. SQUARE ROOT OF NEGATIVE NUMBER ? 66. FLOATING DIVIDE BY ZERO ? 67. NUMBER TOO LARGE TO FIX ? 68. FLOATING OVERFLOW ? 69. FLOATING UNDERFLOW ? 70. NON-EXISTENT VARIABLE ? 71. TOO MUCH DATA TYPED ? 72. NOT ENOUGH DATA TYPED ? 73. ILLEGAL CHARACTERS ON INPUT ? 74. ERROR IN VALUE FUNCTION ? 75. NOT ENOUGH DATA TYPED ? 76. ILLEGAL CHARACTERS ON INPUT ? 77. ERROR IN VALUE FUNCTION ? 78. SYNTAX ERROR IN FUNCTION ? 79. SYNTAX ERROR IN OPEN ? 80. ? 81. ? 82. ? 83. ? 84. ? 85. ? 86. ? 87. ? 88. ? 89. ? 90. ? 91. ? 92. ? 93. ? 94. ? 95. ? 96. ? 97. ? 98. ? 99. ? 100. ? 101. ? 102. ? 103. ? 104. ? 105. ? 106. ? 107. MICHAEL REESE MEDICAL CENTER - - - DEPARTMENT OF MEDICAL PHYSICS COMPUTER BSCERRNUM.DOC;5 PAGE 3R LISTING OF DP0:[001,202]BSCERRNUM.DOC;5 ON 4-NOV-80 AT 14:27:20 PAGE 3 ? 108. ? 109. ? 110. ? 111. ? 112. E? 113. ? 114. R? 115. ? 116. ? 117. ? 118. ? 119. ? 120. ? 121. ? 003kk"k##k$g%(kdd122. ? 123. ? 124. ? 125. ? 126. ? 127. ? 128. ? 129. ? 130. ? 131. ? 132. ? 133. ? 134. ? 135. ? 136. ? 137. ? 138. ? 139. ? 140. ? 141. ? 142. ? 143. ? 144. ? 145. ? 146. ? 147. ? 148. ? 149. ? 150. ? 151. ? 152. ? 153. ? 154. ? 155. ? 156. ? 157. ? 158. ? 159. ? 160. ? 161. MICHAEL REESE MEDICAL CENTER - - - DEPARTMENT OF MEDICAL PHYSICS COMPUTER BSCERRNUM.DOC;5 PAGE 4R LISTING OF DP0:[001,202]BSCERRNUM.DOC;5 ON 4-NOV-80 AT 14:27:20 PAGE 4 ? 162. ? 163. ? 164. ? 165. ? 166. E? 167. ? 168. R? 169. ? 170. ? 171. ? 172. ? 173. ? 174. ? 175. ? 176. ? 177. ? 178. ? 179. ? 180. 003k4k5kOk.Pkddd ? 181. ? 182. ? 183. ? 184. ? 185. ? 186. ? 187. ? 188. ? 189. ? 190. ? 191. ? 192. ? 193. ? 194. ? 195. ? 196. ? 197. ? 198. ? 199. ? 200. FLOATING OVERFLOW ? 201. ? 202. FLOATING UNDERFLOW ? 203. ? 204. ? 205. ? 206. ? 207. ? 208. ? 209. ? 210. ? 211. LOG OF NEGATIVE OR ZERO VALUE ? 212. SQUARE ROOT OF NEGATIVE VALUE ? 206. ? 207. ? 208. ? 209. ? 210. ? 211. LOG OF NEGATIVE OR ZERO VALUE LB:[1,1]BSCBUG/LI/ACC=RO&LB:[1,202]BSC.TSK/TASK=...BAS/INC=1024LB:[1,1]BSCPUR/LI/ACC=RO&LB:[1,202]BSC.TSK/TASK=...BAS/INC=1024&LB:[1,202]BSC.TSK/TASK=...BA2/INC=2048&LB:[1,202]BSC.TSK/TASK=...BA3/INC=3072&LB:[1,202]BSC.TSK/TASK=...BA4/INC=4096&LB:[1,202]BSC.TSK/TASK=...BA5/INC=5120&LB:[1,202]BSC.TSK/TASK=...BA6/INC=6144&LB:[1,202]BSC.TSK/TASK=...BA7/INC=7168&LB:[1,202]BSC.TSK/TASK=...BA8/INC=8192&LB:[1,202]BSC.TSK/TASK=...BA9/INC=9216'LB:[1,202]BSC.TSK/TASK=...B10/INC=10240'LB:[1,202]BSC.TSK/TASK=...B11/INC=11264'LB:[1,202]BSC.TSK/TASK=...BTW/INC=12288'LB:[1,202]BSC.TSK/TASK=...BTH/INC=13312.LB:[1,202]BASBRO/TASK=...BBR1,202]BSC.TSK/TASK=...BA2/INC=2048&LB:[1,202]BSC.TSK/TASK=...BA3/INC=3072&LB:[1,202]BSC.TSK/TASK=...BA4/INC=4096&LB:[1,202]BSC.TSK/TASK=...BA5/INC=5120&LB:[1,202]BSC.TSK/TASK=...BA6/INC=6144&LB:[1,202]BSC.TSK/TASK=...BA7/INC=7168&LB:[1,202]BSC.TSK/TASK=...BA8/INC=8192&LB:[1,202]BSC.TSK/TASK=...BA9/INC=9216'LB:[1,202]BSC.TSK/TASK=...B10/INC=10240'LB:[1,202]BSC.TSK/TASK=...B11/INC=11264'LB:[1,202]BSC.TSK/TASK=...BTW/INC=12288006l7l8l9lg%(kddTKB @BINSRCBSCTKB @DBLBINBSCTKB @ONCREGBSCTKB @PEDRETBSCTKB @FRMRETBSC; B S C P U R B U G . C M D;;/; MAKES SEPERATE VERSION FOR DEBUGGING;:; COMMAND FILE FOR LINKING OF PURE CODE AREA OF BASIC INTO:; A LIBRARY. THIS HAS SEVERAL BENEFICIAL RESULTS: THE PURE:; CODE IS NOW IN HIGH ADDRESS SPACE, ALLOWING FOR THE /INC:; SWITCH TO BE USED ON INSTALLING SEVERAL COPIES WITH DIF-:; FERENT SIZES OF THE IMPURE AREA; A SHARED VERSION IS NOW!; POSSIBLE FOR USE UNDER RSX-11M.;>BSCBUG/-HD/RW,BSCBUG/-SP/CR,BSCBUG=BASIC0,BASIC1,BASIC2,BASIC3 BASIC4,IDNTFY:; FOLLOWING FILE IS DIFFERENT FOR RSX11D V6.2 AND IAS V3.0SPAWNEI; FOLLOWING FILE NOT FROM SYSLIB BECAUSE SYSLIB VERSION IS NOT RE-ENTRANTACATB6; FOLLOWING FILE USED TO RESOLVE IMPUR AREA REFERENCESIMPURNOMO.STB/SS%;LIB CONTAINING FORTRAN MATH ROUTINES MATHLIB/LB/TSTACK=0UUNITS=0SBASE=16ELIBR=SYSRES:RO UIC=[1,1]E;T6; FOLLOWING PATCH IS USED FOR BSCBUG VERSIONS OF BASIC2; IT CHANGES THE DEFAULT EXTENSION FOR LOADED USER$; SUBROUTINES FROM ".BTK" TO ".ATK".4; COMMENT IT OUT FOR BASPUR LIBRARY VERSION OF BASIC;OGBLPAT=BASIC0:LOAD00+16:4553/EI; FOLLOWING FILE NOT FROM SYSLIB BECAUSE SYSLIB VERSION IS NOT RE-ENTRANTACATB6; FOLLOWING FILE USED TO RESOLVE IMPUR AREA REFERENCESIMPURNOMO.STB/SS%;LIB CONTAINING FORTRAN MATH ROUTINES MATHLIB/LB/TSTACK=0UUNITS=0SBASE=16ELIBR=SYSRES:RO UIC=[1,1]E;T6; FOLLOWING PATCH IS USED FOR BSCBUG VERSIONS OF BASIC2; IT CHANGES THE DEFAULT EXTENSION FOR LOADED USER$; SUBROUTINES FROM ".BTK" TO ".ATK".4; COMMENT IT OUT FOR B; ; BSCPUR.CMD;:; COMMAND FILE FOR LINKING OF PURE CODE AREA OF BASIC INTO:; A LIBRARY. THIS HAS SEVERAL BENEFICIAL RESULTS: THE PURE:; CODE IS NOW IN HIGH ADDRESS SPACE, ALLOWING FOR THE /INC:; SWITCH TO BE USED ON INSTALLING SEVERAL COPIES WITH DIF-:; FERENT SIZES OF THE IMPURE AREA; A SHARED VERSION IS NOW!; POSSIBLE FOR USE UNDER RSX-11M.;>BSCPUR/RW/-HD,BSCPUR/-SP/CR,BSCPUR=BASIC0,BASIC1,BASIC2,BASIC3 BASIC4,IDNTFY:; FOLLOWING FILE IS DIFFERENT FOR RSX11D V6.2 AND IAS V3.0SPAWNI; FOLLOWING FILE NOT FROM SYSLIB BECAUSE SYSLIB VERSION IS NOT RE-ENTRANTACATB6; FOLLOWING FILE USED TO RESOLVE IMPUR AREA REFERENCESIMPURNOMO.STB/SS MATHLIB/LB/RSTACK=0,UNITS=0 BASE=16ILIBR=SYSRES:RO UIC=[1,1]I;A6; FOLLOWING PATCH IS USED FOR BSCPUR VERSIONS OF BASIC2; IT CHANGES THE DEFAULT EXTENSION FOR LOADED USER$; SUBROUTINES FROM ".BTK" TO ".ATK".4; COMMENT IT OUT FOR BASPUR LIBRARY VERSION OF BASIC;IGBLPAT=BASIC0:LOAD00+16:4553/RENT FOR RSX11D V6.2 AND IAS V3.0SPAWNI@ LISTING OF BSCPUR.STB 06/28/85 15:08:29@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> BASIC0 000000 MODULE NAME 000> 05JU85 000000 VERSION ID 000> . ABS. 000000 P-SECT NAME 104> IDNTFY 100000 GLOBAL SYMBOL 110> $CAT5 100114 GLOBAL SYMBOL 110> $CBDAT 100274 GLOBAL SYMBOL 110> $CBDMG 100302 GLOBAL SYMBOL 110> $CBDSG 100310 GLOBAL SYMBOL 110> $CBOMG 100316 GLOBAL SYMBOL 110> $CBOSG 100324 GLOBAL SYMBOL 110> $CBTA 100400 GLOBAL SYMBOL 110> $CBTMG 100332 GLOBAL SYMBOL 110> $CBVER 100316 GLOBAL009 lk5kOk.Pkddd SYMBOL 110> $CDTB 100010 GLOBAL SYMBOL 110> $COTB 100024 GLOBAL SYMBOL 110> $C5TA 100536 GLOBAL SYMBOL 110> CTCENT 101152 GLOBAL SYMBOL 110> FPERMS 101242 GLOBAL SYMBOL 110> FPEXTR 101164 GLOBAL SYMBOL 110> STRD 101324 GLOBAL SYMBOL 110> TRAP00 100642 GLOBAL SYMBOL 110> ABS00 102726 GLOBAL SYMBOL 110> AR500 103716 GLOBAL SYMBOL 110> ASC00 103756 GLOBAL SYMBOL 110> ATN00 103124 GLOBAL SYMBOL 110> ATOF00 101456 GLOBAL SYMBOL 110> ATOI00 102700 GLOBAL SYMBOL 110> CHR00 104310 GLOBAL SYMBOL 110> COR00 104236 GLOBAL SYMBOL 110> COS00 103116 GLOBAL SYMBOL 110> DAT00 105664 GLOBAL SYMBOL 110> DCEN0 106536 GLOBAL SYMBOL 110> DDAT00 105650 GLOBAL SYMBOL 110> ERL00 104166 GLOBAL SYMBOL 110> ERR00 104160 GLOBAL SYMBOL 110> EXPF00 103102 GLOBAL SYMBOL 110> FCHR00 105204 GLOBAL SYMBOL 110> FCS00 104174 GLOBAL SYMBOL 110> FORM00 107564 GLOBAL SYMBOL 110> FTOA00 102172 GLOBAL SYMBOL 110> INT00 102756 GLOBAL SYMBOL 110> INX00 103176 GLOBAL SYMBOL 110> ITOA00 102666 GLOBAL SYMBOL 110> LEFT00 104346 GLOBAL SYMBOL 110> LEN00 103472 GLOBAL SYMBOL 110> LJS00 110316 GLOBAL SYMBOL 110> LOG00 103066 GLOBAL SYMBOL 110> LOG10 103074 GLOBAL SYMBOL 110> LTR00 105314 GLOBAL SYMBOL 110> NRC00 104026 GLOBAL SYMBOL 110> OCB00 103526 GLOBAL SYMBOL 110> OCS00 105404 GLOBAL SYMBOL 110> OCT00 105412 GLOBAL SYMBOL 110> PIECE0 104640 GLOBAL SYMBOL 110> PWRF00 103000 GLOBAL SYMBOL 110 @ LISTING OF BSCPUR.STB 06/28/85 15:08:34@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> RIGHT0 104354 GLOBAL SYMBOL 110> RJS00 110324 GLOBAL SYMBOL 110> RND00 101346 GLOBAL SYMBOL 110> RND01 101406 GLOBAL SYMBOL 110> R5A00 105500 GLOBAL SYMBOL 110> SBS00 104362 GLOBAL SYMBOL 110> SEC00 107366 GLOBAL SYMBOL 110> SEG00 104340 GLOBAL SYMBOL 110> SGN00 102732 GLOBAL SYMBOL 110> SINE00 103110 GLOBAL SYMBOL 110> SPACE0 110620 GLOBAL SYMBOL 110> SQRT00 103132 GLOBAL SYMBOL 110> STRG00 110626 GLOBAL SYMBOL 110> TIM00 105656 GLOBAL SYMBOL 110> TRM00 105322 GLOBAL SYMBOL 110> VAL00 103522 GLOBAL SYMBOL 110> ATTACH 110712 GLOBAL SYMBOL 110> DEF00 113312 GLOBAL SYMBOL 110> DETACH 1009ll8l9lg%(kdd10722 GLOBAL SYMBOL 110> DIM00 112160 GLOBAL SYMBOL 110> EOSCHK 122720 GLOBAL SYMBOL 110> EVAL00 113552 GLOBAL SYMBOL 110> EVLS00 115036 GLOBAL SYMBOL 110> FOR00 123114 GLOBAL SYMBOL 110> GETHDR 115542 GLOBAL SYMBOL 110> GETNUM 116740 GLOBAL SYMBOL 110> GETSTR 117146 GLOBAL SYMBOL 110> GOSB00 111250 GLOBAL SYMBOL 110> GOTO00 111304 GLOBAL SYMBOL 110> GOTO02 111414 GLOBAL SYMBOL 110> GOTO03 111350 GLOBAL SYMBOL 110> GOTO04 111306 GLOBAL SYMBOL 110> GTOFFS 115712 GLOBAL SYMBOL 110> GTP00 114154 GLOBAL SYMBOL 110> IF00 120336 GLOBAL SYMBOL 110> INP00 121514 GLOBAL SYMBOL 110> INP01 121504 GLOBAL SYMBOL 110> LET00 117604 GLOBAL SYMBOL 110> NEWVAR 117502 GLOBAL SYMBOL 110> NEXT00 123552 GLOBAL SYMBOL 110> ONGT00 111574 GLOBAL SYMBOL 110> PR00 120700 GLOBAL SYMBOL 110> READ00 122754 GLOBAL SYMBOL 110> REM00 120436 GLOBAL SYMBOL 110> RES00 111702 GLOBAL SYMBOL 110> RET00 112000 GLOBAL SYMBOL 110> RUN00 111062 GLOBAL SYMBOL 110> RUN01 111206 GLOBAL SYMBOL 110> STONUM 117066 GLOBAL SYMBOL 110> STOP00 110740 GLOBAL SYMBOL 110> STOP02 111004 GLOBAL SYMBOL 110> STOSTR 117314 GLOBAL SYMBOL 110> STRADD 117240 GLOBAL SYMBOL 110> STRCMP 122052 GLOBAL SYMBOL 110> WRITBK 116620 GLOBAL SYMBOL 110 @ LISTING OF BSCPUR.STB 06/28/85 15:08:39@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> ARYL00 126276 GLOBAL SYMBOL 110> ASSM00 135260 GLOBAL SYMBOL 110> CLOS00 125350 GLOBAL SYMBOL 110> CLRU00 125766 GLOBAL SYMBOL 110> CLSEAL 132052 GLOBAL SYMBOL 110> CRLF00 125140 GLOBAL SYMBOL 110> CSINT0 125460 GLOBAL SYMBOL 110> DIMC00 127064 GLOBAL SYMBOL 110> FILFND 132170 GLOBAL SYMBOL 110> FILFN1 132204 GLOBAL SYMBOL 110> FIND00 126626 GLOBAL SYMBOL 110> FIND01 126636 GLOBAL SYMBOL 110> FNMB00 132234 GLOBAL SYMBOL 110> GETV00 127004 GLOBAL SYMBOL 110> INIT00 134246 GLOBAL SYMBOL 110> INIT01 134272 GLOBAL SYMBOL 110> INIT02 133602 GLOBAL SYMBOL 110> INIT03 133620 GLOBAL SYMBOL 110> INIT10 134016 GLOBAL SYMBOL 110> INIT13 133752 GLOBAL SYMBOL 110> JUNK00 125730 GLOBAL SYMBOL 110> LOAD00 137612 GLOBAL SYMBOL 110> OLD01 127322 GLOBAL SYMBOL 110> OLD02 127344 GLOBAL SYMBOL 110> 009lk5kOk.Pkddd PCK00 124002 GLOBAL SYMBOL 110> PCK03 124610 GLOBAL SYMBOL 110> PRLN00 132466 GLOBAL SYMBOL 110> PRLN01 132472 GLOBAL SYMBOL 110> PRNT00 125100 GLOBAL SYMBOL 110> PRN00 125666 GLOBAL SYMBOL 110> PUSH00 126012 GLOBAL SYMBOL 110> SCR00 126416 GLOBAL SYMBOL 110> SKIP00 125702 GLOBAL SYMBOL 110> SLDN 140436 GLOBAL SYMBOL 110> SLDN01 140454 GLOBAL SYMBOL 110> SLUP 140376 GLOBAL SYMBOL 110> SLUP01 140414 GLOBAL SYMBOL 110> SQU00 126446 GLOBAL SYMBOL 110> SRCHFL 132126 GLOBAL SYMBOL 110> SRCH00 126616 GLOBAL SYMBOL 110> SRL00 126100 GLOBAL SYMBOL 110> STRL00 126322 GLOBAL SYMBOL 110> TSTU00 130204 GLOBAL SYMBOL 110> TST00 125620 GLOBAL SYMBOL 110> UNLD01 140266 GLOBAL SYMBOL 110> VECTAB 140502 GLOBAL SYMBOL 110> CALL00 141334 GLOBAL SYMBOL 110> CATXT 145034 GLOBAL SYMBOL 110> CDIS 144362 GLOBAL SYMBOL 110> CHKMFT 145612 GLOBAL SYMBOL 110> CPOS 144466 GLOBAL SYMBOL 110> CQNAM 145072 GLOBAL SYMBOL 110> CQTXT 144656 GLOBAL SYMBOL 110> GETARG 140522 GLOBAL SYMBOL 110> GTRGPI 141006 GLOBAL SYMBOL 110 @ LISTING OF BSCPUR.STB 06/28/85 15:08:44@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> INSTRG 141502 GLOBAL SYMBOL 110> MATXT 144730 GLOBAL SYMBOL 110> MDIS 144256 GLOBAL SYMBOL 110> MPOS 144432 GLOBAL SYMBOL 110> MQTXT 144540 GLOBAL SYMBOL 110> NSTORE 141064 GLOBAL SYMBOL 110> OPLB00 142200 GLOBAL SYMBOL 110> PARCHK 141464 GLOBAL SYMBOL 110> RATXT 145054 GLOBAL SYMBOL 110> RDIS 144410 GLOBAL SYMBOL 110> RPOS 144506 GLOBAL SYMBOL 110> RQNAM 145130 GLOBAL SYMBOL 110> RQTXT 144676 GLOBAL SYMBOL 110> SPAWNB 145310 GLOBAL SYMBOL 110> SSTORE 141110 GLOBAL SYMBOL 110> ALOG 145746 GLOBAL SYMBOL 110> ALOG10 145742 GLOBAL SYMBOL 110> ATAN 146240 GLOBAL SYMBOL 110> ATAN2 146130 GLOBAL SYMBOL 110> COS 146476 GLOBAL SYMBOL 110> EXP 146702 GLOBAL SYMBOL 110> SIN 146512 GLOBAL SYMBOL 110> SQRT 147126 GLOBAL SYMBOL 110> INIT12 147222 GLOBAL SYMBOL 110> .CSI1 147532 GLOBAL SYMBOL 110> .CSI2 151002 GLOBAL SYMBOL 110> .DD2CT 153216 GLOBAL SYMBOL 110> .DELET 152364 GLOBAL SYMBOL 110> .MARK 152536 GLOBAL SYMBOL 110> .OD2CT 153230 GLOBAL SYMBOL 009!ll8l9lg%(kdd 110> .POINT 152456 GLOBAL SYMBOL 110> .RDFDR 152564 GLOBAL SYMBOL 110> .RDFFP 152644 GLOBAL SYMBOL 110> .RDFUI 152734 GLOBAL SYMBOL 110> .READ 153002 GLOBAL SYMBOL 110> .RFOWN 152700 GLOBAL SYMBOL 110> .WAIT 153050 GLOBAL SYMBOL 110> .WDFDR 152612 GLOBAL SYMBOL 110> .WDFFP 152660 GLOBAL SYMBOL 110> .WDFUI 152750 GLOBAL SYMBOL 110> .WFOWN 152714 GLOBAL SYMBOL 110> .WRITE 153072 GLOBAL SYMBOL 110> ..D2CT 153444 GLOBAL SYMBOL 110> ..RWCK 153502 GLOBAL SYMBOL 110> ..RWLG 153662 GLOBAL SYMBOL 110> ..WTRD 153554 GLOBAL SYMBOL 110> ANS1 002662 GLOBAL SYMBOL 110> ARGERR 104446 GLOBAL SYMBOL 110> ATTDET 001116 GLOBAL SYMBOL 110> BOLNHD 002576 GLOBAL SYMBOL 110> BRFLAG 002530 GLOBAL SYMBOL 110> CALERR 104445 GLOBAL SYMBOL 110> CLOSER 104443 GLOBAL SYMBOL 110> CLSERR 104440 GLOBAL SYMBOL 110> COMERR 104464 GLOBAL SYMBOL 110 @ LISTING OF BSCPUR.STB 06/28/85 15:08:49@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> COMFDB 002150 GLOBAL SYMBOL 110> COMFNB 002310 GLOBAL SYMBOL 110> COUNT 002654 GLOBAL SYMBOL 110> CR 000015 GLOBAL SYMBOL 110> CSBUFF 002422 GLOBAL SYMBOL 110> CSBUFL 002472 GLOBAL SYMBOL 110> CSBUFS 000050 GLOBAL SYMBOL 110> CSDSPT 002354 GLOBAL SYMBOL 110> CSIBLK 002346 GLOBAL SYMBOL 110> CSIERR 104434 GLOBAL SYMBOL 110> DATI 002614 GLOBAL SYMBOL 110> DEFERR 104417 GLOBAL SYMBOL 110> DIMERR 104415 GLOBAL SYMBOL 110> DMDERR 104421 GLOBAL SYMBOL 110> DMVERR 104416 GLOBAL SYMBOL 110> DVFERR 104502 GLOBAL SYMBOL 110> ECHOFL 002545 GLOBAL SYMBOL 110> ENDSTK 002536 GLOBAL SYMBOL 110> ENDTXT 002574 GLOBAL SYMBOL 110> ENDUSR 002612 GLOBAL SYMBOL 110> ENUDAT 002602 GLOBAL SYMBOL 110> ENUSAV 002616 GLOBAL SYMBOL 110> EOFERR 104442 GLOBAL SYMBOL 110> ERRBRN 001026 GLOBAL SYMBOL 110> ERRR02 001006 GLOBAL SYMBOL 110> ERRR03 001000 GLOBAL SYMBOL 110> ERRR05 001014 GLOBAL SYMBOL 110> EXFERR 104432 GLOBAL SYMBOL 110> FACERR 104457 GLOBAL SYMBOL 110> FA.APD 000100 GLOBAL SYMBOL 110> FA.CRE 000010 GLOBAL SYMBOL 110> FA.SHR 000040 GLOBAL SYMBOL 110> FA.WRT 000002 GLOBAL SYMBOL 110> FDBSAV 002512 GLOBAL SYMBOL 110> FD.CR 000002 GLOBAL SYMBOL 110> FD.FTN 000001 009)lk5kOk.Pkddd GLOBAL SYMBOL 110> FD.PLC 000004 GLOBAL SYMBOL 110> FD.RAN 000002 GLOBAL SYMBOL 110> FD.RWM 000001 GLOBAL SYMBOL 110> FF 000014 GLOBAL SYMBOL 110> FIXERR 104503 GLOBAL SYMBOL 110> FNMERR 104441 GLOBAL SYMBOL 110> FOFERR 104504 GLOBAL SYMBOL 110> FORERR 104426 GLOBAL SYMBOL 110> FO.APD 000106 GLOBAL SYMBOL 110> FO.MFY 000002 GLOBAL SYMBOL 110> FO.RD 000001 GLOBAL SYMBOL 110> FO.UPD 000006 GLOBAL SYMBOL 110> FO.WRT 000016 GLOBAL SYMBOL 110> FPEXFL 002532 GLOBAL SYMBOL 110> FUFERR 104505 GLOBAL SYMBOL 110> F.BKDS 000020 GLOBAL SYMBOL 110> F.BKEF 000050 GLOBAL SYMBOL 110> F.BKST 000024 GLOBAL SYMBOL 110> F.BKVB 000064 GLOBAL SYMBOL 110 @ LISTING OF BSCPUR.STB 06/28/85 15:08:55@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> F.CNTG 000034 GLOBAL SYMBOL 110> F.DFNB 000046 GLOBAL SYMBOL 110> F.DSPT 000044 GLOBAL SYMBOL 110> F.EFBK 000010 GLOBAL SYMBOL 110> F.ERR 000052 GLOBAL SYMBOL 110> F.FACC 000043 GLOBAL SYMBOL 110> F.FFBY 000014 GLOBAL SYMBOL 110> F.FNB 000102 GLOBAL SYMBOL 110> F.LUN 000042 GLOBAL SYMBOL 110> F.NRBD 000024 GLOBAL SYMBOL 110> F.RACC 000016 GLOBAL SYMBOL 110> F.RATT 000001 GLOBAL SYMBOL 110> F.RCNM 000034 GLOBAL SYMBOL 110> F.RSIZ 000002 GLOBAL SYMBOL 110> F.RTYP 000000 GLOBAL SYMBOL 110> F.URBD 000020 GLOBAL SYMBOL 110> GOERR 104402 GLOBAL SYMBOL 110> HT 000011 GLOBAL SYMBOL 110> ID001 032460 GLOBAL SYMBOL 110> ID002 052512 GLOBAL SYMBOL 110> ID003 032470 GLOBAL SYMBOL 110> IE.DNR 177775 GLOBAL SYMBOL 110> IE.EOF 177766 GLOBAL SYMBOL 110> IE.PRI 177760 GLOBAL SYMBOL 110> IFERR 104412 GLOBAL SYMBOL 110> ILCERR 104403 GLOBAL SYMBOL 110> ILFERR 104433 GLOBAL SYMBOL 110> IMMERR 104465 GLOBAL SYMBOL 110> INPBUF 001162 GLOBAL SYMBOL 110> INPERR 104422 GLOBAL SYMBOL 110> INPQIO 002116 GLOBAL SYMBOL 110> INPSTA 002144 GLOBAL SYMBOL 110> INPT 002062 GLOBAL SYMBOL 110> IN1ERR 104507 GLOBAL SYMBOL 110> IN2ERR 104510 GLOBAL SYMBOL 110> IN3ERR 104511 GLOBAL SYMBOL 110> IO.ATA 001410 GLOBAL SYMBOL 110> IO.DET 002000 GLOBAL SYMBOL 110> IO.KIL 000012 GLOBAL SYMBOL 110> IO.RVB 010400 GLOBAL SYMBOL 110> IO.WVB 011000 GLOBAL SYMBOL 110> LASTEX 0091ll8l9lg%(kdd 002556 GLOBAL SYMBOL 110> LETERR 104410 GLOBAL SYMBOL 110> LF 000012 GLOBAL SYMBOL 110> LINEFL 002552 GLOBAL SYMBOL 110> LINEHD 002516 GLOBAL SYMBOL 110> LINELN 002554 GLOBAL SYMBOL 110> LINENO 002520 GLOBAL SYMBOL 110> LINERR 104414 GLOBAL SYMBOL 110> LNKOLD 002056 GLOBAL SYMBOL 110> LNKSAV 001632 GLOBAL SYMBOL 110> LNKTIN 001156 GLOBAL SYMBOL 110> LNNERR 104420 GLOBAL SYMBOL 110> LODERR 104460 GLOBAL SYMBOL 110> LOGERR 104500 GLOBAL SYMBOL 110 @ LISTING OF BSCPUR.STB 06/28/85 15:09:00@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> LOWCOM 000010 GLOBAL SYMBOL 110> LOWFLG 002550 GLOBAL SYMBOL 110> LOWLST 000004 GLOBAL SYMBOL 110> LOWNOC 000001 GLOBAL SYMBOL 110> LOWSTR 000002 GLOBAL SYMBOL 110> LSTLIN 002524 GLOBAL SYMBOL 110> MODPB 001050 GLOBAL SYMBOL 110> MOLUN 001046 GLOBAL SYMBOL 110> MPARLS 002626 GLOBAL SYMBOL 110> M.I 001074 GLOBAL SYMBOL 110> M.OLUN 000004 GLOBAL SYMBOL 110> M.ONUM 000016 GLOBAL SYMBOL 110> NEWLIN 002474 GLOBAL SYMBOL 110> NXMERR 104430 GLOBAL SYMBOL 110> NXTERR 104427 GLOBAL SYMBOL 110> NXVERR 104506 GLOBAL SYMBOL 110> OINPT 002042 GLOBAL SYMBOL 110> OLDFLG 002564 GLOBAL SYMBOL 110> OPENER 104444 GLOBAL SYMBOL 110> OPLBER 104450 GLOBAL SYMBOL 110> OPLFER 104451 GLOBAL SYMBOL 110> OPNERR 104437 GLOBAL SYMBOL 110> OPRERR 104411 GLOBAL SYMBOL 110> OP.EOF 002504 GLOBAL SYMBOL 110> OP.LEN 002500 GLOBAL SYMBOL 110> OP.LUN 002502 GLOBAL SYMBOL 110> OP.MXL 000020 GLOBAL SYMBOL 110> OP.RAC 002506 GLOBAL SYMBOL 110> OP.RTP 002510 GLOBAL SYMBOL 110> OTPT 002064 GLOBAL SYMBOL 110> OUTQIO 002070 GLOBAL SYMBOL 110> OUTSTA 002112 GLOBAL SYMBOL 110> OVFERR 104400 GLOBAL SYMBOL 110> PARERR 104407 GLOBAL SYMBOL 110> PARLST 001030 GLOBAL SYMBOL 110> PRFERR 104456 GLOBAL SYMBOL 110> PRIERR 104455 GLOBAL SYMBOL 110> PRMTFL 002542 GLOBAL SYMBOL 110> PRNERR 104413 GLOBAL SYMBOL 110> PR1 000040 GLOBAL SYMBOL 110> PR2 000100 GLOBAL SYMBOL 110> PR3 000140 GLOBAL SYMBOL 110> PR4 000200 GLOBAL SYMBOL 110> PR5 000240 GLOBAL SYMBOL 110> PR6 000300 GLOBAL SYMBOL 110> PR7 000340 GLOBAL SYMBOL 110> PS 177776 GLOBAL SYMBOL 110> 0099lk5kOk.Pkddd P.ERCD 000002 GLOBAL SYMBOL 110> P.FCS 000010 GLOBAL SYMBOL 110> P.FLNM 000012 GLOBAL SYMBOL 110> P.FNAM 000014 GLOBAL SYMBOL 110> P.LINE 000006 GLOBAL SYMBOL 110> QFLG 002540 GLOBAL SYMBOL 110> QLUN 002626 GLOBAL SYMBOL 110> QNAM 002644 GLOBAL SYMBOL 110 @ LISTING OF BSCPUR.STB 06/28/85 15:09:05@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> QSTAT 002632 GLOBAL SYMBOL 110> Q.IOFN 000002 GLOBAL SYMBOL 110> Q.IOPL 000014 GLOBAL SYMBOL 110> REAERR 104423 GLOBAL SYMBOL 110> REMTRM 002476 GLOBAL SYMBOL 110> RETERR 104404 GLOBAL SYMBOL 110> RE1ERR 104424 GLOBAL SYMBOL 110> RE2ERR 104425 GLOBAL SYMBOL 110> RNDM 002534 GLOBAL SYMBOL 110> RPASFL 002543 GLOBAL SYMBOL 110> RUNF 002526 GLOBAL SYMBOL 110> R.FIX 000001 GLOBAL SYMBOL 110> R.VAR 000002 GLOBAL SYMBOL 110> SBSERR 104405 GLOBAL SYMBOL 110> SCOUNT 001624 GLOBAL SYMBOL 110> SETERR 104463 GLOBAL SYMBOL 110> SLPERR 104452 GLOBAL SYMBOL 110> SOTPT 001616 GLOBAL SYMBOL 110> SQRERR 104501 GLOBAL SYMBOL 110> STCOUN 002522 GLOBAL SYMBOL 110> STFONX 002606 GLOBAL SYMBOL 110> STGOSB 002604 GLOBAL SYMBOL 110> STOERR 104447 GLOBAL SYMBOL 110> STRERR 104435 GLOBAL SYMBOL 110> STRIN 002650 GLOBAL SYMBOL 110> STROUT 002650 GLOBAL SYMBOL 110> STUDAT 002600 GLOBAL SYMBOL 110> STUEPT 002566 GLOBAL SYMBOL 110> STUFDB 002610 GLOBAL SYMBOL 110> STUROU 002570 GLOBAL SYMBOL 110> STXERR 104436 GLOBAL SYMBOL 110> SUBERR 104406 GLOBAL SYMBOL 110> SWR 177570 GLOBAL SYMBOL 110> S.AND 000310 GLOBAL SYMBOL 110> S.BAS 000140 GLOBAL SYMBOL 110> S.DATA 000167 GLOBAL SYMBOL 110> S.ECHO 000323 GLOBAL SYMBOL 110> S.ELSE 000316 GLOBAL SYMBOL 110> S.EOL1 000374 GLOBAL SYMBOL 110> S.EOL2 000377 GLOBAL SYMBOL 110> S.EOS1 000375 GLOBAL SYMBOL 110> S.EOS2 000376 GLOBAL SYMBOL 110> S.EQV 000314 GLOBAL SYMBOL 110> S.EXC 000150 GLOBAL SYMBOL 110> S.FDB 000140 GLOBAL SYMBOL 110> S.FN 000304 GLOBAL SYMBOL 110> S.GOSB 000146 GLOBAL SYMBOL 110> S.GOTO 000143 GLOBAL SYMBOL 110> S.IF 000142 GLOBAL SYMBOL 110> S.IMP 000313 GLOBAL SYMBOL 110> S.NEXT 000145 GLOBAL SYMBOL 110> S.NFBO 000303 GLOBAL SYMBOL 110> S.NFST 000265 GLOBAL S009Al:Hll9lg%(kddYMBOL 110> S.NOT 000307 GLOBAL SYMBOL 110> S.OFF 000315 GLOBAL SYMBOL 110 @ LISTING OF BSCPUR.STB 06/28/85 15:09:10@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> S.ON 000164 GLOBAL SYMBOL 110> S.OR 000312 GLOBAL SYMBOL 110> S.PRIN 000152 GLOBAL SYMBOL 110> S.PRMT 000317 GLOBAL SYMBOL 110> S.REM 000151 GLOBAL SYMBOL 110> S.RPAL 000320 GLOBAL SYMBOL 110> S.SAEN 000264 GLOBAL SYMBOL 110> S.SAST 000252 GLOBAL SYMBOL 110> S.SFEN 000251 GLOBAL SYMBOL 110> S.SFST 000223 GLOBAL SYMBOL 110> S.STEP 000204 GLOBAL SYMBOL 110> S.THEN 000305 GLOBAL SYMBOL 110> S.TO 000306 GLOBAL SYMBOL 110> S.TRAC 000162 GLOBAL SYMBOL 110> S.UPP 000322 GLOBAL SYMBOL 110> S.VBEN 000222 GLOBAL SYMBOL 110> S.WPAL 000321 GLOBAL SYMBOL 110> S.XOR 000311 GLOBAL SYMBOL 110> TCOUNT 001376 GLOBAL SYMBOL 110> TF.RAL 000010 GLOBAL SYMBOL 110> TF.RNE 000020 GLOBAL SYMBOL 110> TF.WAL 000010 GLOBAL SYMBOL 110> TIMBUF 001076 GLOBAL SYMBOL 110> TINPT 001142 GLOBAL SYMBOL 110> TMOERR 104454 GLOBAL SYMBOL 110> TM1ERR 104476 GLOBAL SYMBOL 110> TM2ERR 104477 GLOBAL SYMBOL 110> TOTPT 001370 GLOBAL SYMBOL 110> TRCFLG 002541 GLOBAL SYMBOL 110> TRMSIZ 000204 GLOBAL SYMBOL 110> UICSTO 002560 GLOBAL SYMBOL 110> UNLDSV 002620 GLOBAL SYMBOL 110> UNMERR 104431 GLOBAL SYMBOL 110> UNRERR 104401 GLOBAL SYMBOL 110> UPPFL 002546 GLOBAL SYMBOL 110> USR 002572 GLOBAL SYMBOL 110> VALERR 104512 GLOBAL SYMBOL 110> VFIERR 104461 GLOBAL SYMBOL 110> VOPERR 104462 GLOBAL SYMBOL 110> VT 000013 GLOBAL SYMBOL 110> VTMERR 104466 GLOBAL SYMBOL 110> WATERR 104453 GLOBAL SYMBOL 110> WORK 002514 GLOBAL SYMBOL 110> WPASFL 002544 GLOBAL SYMBOL 110> WTMAG 002624 GLOBAL SYMBOL 110> WTUNIT 002622 GLOBAL SYMBOL 110> $DSW 000000 GLOBAL SYMBOL 110> VT 000013 GLOBAL SYMBOL 110> VTMERR 104466 GLOBAL SYMBOL 110> WATERR 104453 GLOBAL SYMBOL 110> WORK 002z 8SD8 ~H9xHL:<H:H€:HȀ:_H΀:`HԀ:(}H:Hڀ:ZH΀5H#r0HԐr0H悴rXHu0H@z#w0Hw000:Il;PlkOk.PkdddHw0Hw0Hڅ6x$HHAyHzy΁HZy0Hu~0H0HҊ0HRt Hʑ0HʖHґu0Hpz! HХ"OHj"{H'0HL,2Hb,ZH,yHf+.NH,.bHĒ,.bH ,.bH,.bHƒ.&Hʛ.0HlN9Hޠz:0HL:XHDK0H_XHB`X΁Hj_΁H|fHIqHUq0H[q0H“\q0Hs0H2sXHyZH6yhHzyhHyyH̞yHyH*[}H) OHK VH{H課HtH0N*H`ZH0uH4&'H~&'Hz&H&H'NH,NHy:΁Hy:ρHƸy:ЁHy:сHy:Hy:HAIHثYMH_XHҮ_H䮃d0HzdHfN\HM""H\M""H0z_M""H@oM%HoMg'HhoM NHoMYHoMyH NvLHTSPdH(SpH&SsrHUH<UVNHUZH_XvLH<M[""HzT[""HV[""HF6_ gH"_g'HtE`ZXH$L`Z H(L`Z&H)N`""HR`""H \`!HD\`KH@\`VNHB\` UH\`pHF\`sHHz`}H4akH8ayHJ6a""H:d""H:d NHf""H.f""H-f}Hbf""H fH fH@fH`fHfHzfHfHfHehpHfhHfh=MH fhWH lhu:H\q""Hgq""Hhq""Hr@QH\swHcs%HVtv~ gHbz""H,'""H>(""H?l gHg'HaBxHyHp|H}""H""HЅ`'HfJHz""HJy""H1""H2BH ""H6""H+*DHLAwHdXHXHsH%{`H%{mH%{xHh&{PH`&{WH'{`Hf'{` cc(U z[qU.z00;QlHll9lg%(kdd05JU85f9 f7 ť ť  ť0Bp0AaB w dx(@f ťZ#ťAť9ť0ť$ ť  ť.@KqAa$  *  + 23E Ew w   Е-   0@ rW e`fÊ    E  & &  r(f  e ee e  @b~z7 ̃ )F \HLl8 ,47 A ()f   6( )  |) 2 (  P& 7 w~ s6  B ~P‚s7 e &JBCDE؂LB:[1,2]BASICRpED>=&2tm,7Uw`4f&& & & (B¥E*¥-D¥+>¥.5 2(_05B7R5 Up `%A5;UEB '-+UM5 'UEU555U5U@53 U 5UU5@56 UmW ~ W ~ %5 B@& & &  &  0 @f-777 7 7% 7   c?e C ~#/#,  (e`   7pfe0 ~Е. Е.Е0~ Е  e  ЕED  6@> BV4Cz  % @ < B@7@wzDBnBf " (@ ~ ~ j^vf&&f f&e  8%,E (%,):  %,1& -va  vfBa@   &U   x~ ~   a EwR~&H  ~$ )v&   ~ Z$ )v )ӥ $ aӕ, f Ew} }@ b $V } J L #)v b , # )v Ē@E P v%! $,e 37s7 77   e7 |v  |& N|B%@v h| & | " ,L& ^ z($4F66 6  6 6 - 6 m66`6  P",  {  {& r ",; d ",)0@ & & !,! ~ v V *A&  @W@ N` "@D`.{ @`  B H@@ f zC  e  Ceפ  & F ¥) aר פ  & Z ffz   ?Fz & f 2%@ @?zC:DFH/@B>-B@>JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC|ltC  )0 ) @F#l  > >=fty !- "  Py 3% Е0 r   B``PPP  HHaFpC77mn  5   : 5  B 7HuFuDu7v7nn~@@;Zx0N  X)v & & & a ! //w `-/m qW nv B/avv E~-K  KeA  =  8NW c=-5 :$ !m t@ W 5  BlFeBe#= p=ף t%& 7777776@  Ն6 $  )v -`ԕ:&n :T U~% W< e  e;;  & B, &  (, re | @ E&  B~@@W@ 00;YlPlkOk.Pkddd~ ~Օ. @  d~@=B: W.Օ0 B *Օ- Օ ~B " UC~`77e0e `e ԇUCՕ*~& D  ,&ta Ewt h섷zt%  ႄ• ~  a  Ba~?(t`a  C  &Օ ~   "&   5C~pxpN bHrDr l$  <# \7 s7WsSsHs6sRs7 0sw&STOP AT LINE sGo7 s |  rЕ" !ДЕ"  H.wT t <.r Go .wV%HH rrrwr& @777rr \r7 VrNrHr  Fr @r Ar7 ,r w$  !d pA !u bq !  BRANCH TO LINE STMT  6cf  , ~%cww  # !5 fe  \Aw#7 q q ~q   e^qwr#eTqw&q  ~ W ~qf pBwp N#i da&& & [& p5R2tҔ E&e F@a7p  ~2 \5 J/& +fv e x  UU  ~wLp , wH"  && & ^, U&&  ⅀  &   ~   & DB 7`oE r EeN  , ewT! [  t r]  hV R( F& B,  6 4)     ~ vч J ,G$U U` n H7n  (/C  (& #$U   ), x= s"nw$n vBw4  n  D + -  . (& && f m W Q  %fW@ UWv Ue)WR eX @B @  )      )+-*/^wf PE" `  7 · ` l& ΁l  ' ` . &l U` R Ff n   Fx 000*F  Bl&  B*l f&5   B   wk `kwk j Ք Ewk ¥) ¥, wZ mk E hk& ^;fff EwFk `' 8(E`5UՔ~f L+ jE j E` %  %  | "C W"W 6 녗$ (Tj U  f  v)  f  & $ % &  U U U@i 5StE& (>   &&n f & ,, T)&    Ԃ#  p`p`% e i  s  0(# & , V3 @3 @@B@ &f U \E &weD f&V h, p4& &  8* 8 *& EspQ evd12e0e` 46& &  8* x8 *f x  tE 5m\g& `Ff&@ xJRVZb    f 25  ĜE  `&E%5mf& &`Ff& 5EDa &  2 "&   Da  Ҕ B& &z 4C   wf   & :& ( =  V  d w& E(0 `$ {00;alHll9lg%(kdd@ B @xU E& &  | )  &&   %&e& a Ewd ud& D!  D  555 ;Bb   Ld w :d #,dfAmNd C  W•  dwH w4 d  Z " wNwc < < = >  UUUTAB( hb 8Uc&  n ,<;Y Z W C l V DH >cb  &``~  f  P e ba   -a e•    l 7 bw  bXa!” R  pބ jbf,a !!• 2ba7 a  b7 b n "" /` ”  Jb`,; 2AZ  `5Ua &n` f%b\`a? ZU|a Era <Fe 7 Za BaɕwpGHI Ҥ D  a W,W   a `W W-8 ` v ( "5`o@ `S~ xȤФԤؤ Cu J`@5 E  C L`!  B, &B,  B,   7!`_7_@5 L 5_  & & & ,& h7 z_ f_t_mn_WW,  T_wb_Fe wT>_ѥwC  ^ l=Y5V& & ^ R6 @ V ^^ 7^7^^3^^^&   &   zVs 3  wj^6^ e W C!Am<^^ ^ ! w]w],  H t3s @s   w (, w] ] !e ] (7`]7`]3 m]3,\&%be Z$.\F]7$\\\ , \]U\]U[Nw (] & ]]& +&'e5  [N ,& [e [Ne  v8@*WW15-7 \\ET\%.%n"2\ fw \w 3 7 "\\ [w&wNWwX 7[@` [5 3ɥ"5[(5[E[U[ɥ!5[U[[5 [ɥ` ѥ  E x[ɕE f[ <<SYJw SY&Y0,  &fYI@ W pp =1 p p9 & YY\W*7RW ^Y^Y7hY |w bDYY X& \7 4Z7 \Z&h 4MTY w^ !(,&(f,  B~7YєY $ȕ &aY 0  9 A Z B¥ ¥ WWhW W 6 7 YzYzYw!vYC 5JtEx0lll^^xfEU& 2Y+   e` Ne`  Je`eE?eE`rU7pU7nU>e&̬  &f    p @ p @ EalX ^XAmLXB Zf@XCR~6XC& `7`$Xfw!XXw!XWAmWWWWB "1  (EWuWu` BAAmWEEw!WAmW~W EuB nEPB  | ,   6   J "U5VTT# X1w xUw7 V  B: P FU 'f4U(U# 1 &W  & &wB  &5 V7 U4"T"$VeH~e e wR V wV7 UUU HU5U :UUU7 UU7U7UfU U 54Etx⯁ <&( e`00;ilPlkOk.Pkddd C e E `?eEeLITRT>CO><7 T : TTT Tw`TD`T8  & Y&fT@T`T`T`T`TB` b~  & 2h $ ^  wvf    7 T@FXHRNFLNENBNIBLIROBWRBUPBMOBAPFBSH B@D` & ~SP PhSB   XS"$&N# ¥# ^7.S2S!!  ` ¥, f6 RR"RpRE RERR3ex  DR# UH#UUU" MetNReUU%DRe@` ~e`00 ,*7N $7NRwPx 2 *DQ#UQ(QQ 7Q7Q7QQf  ~   %  %, P w p 5 5 5  Le +*7M#   ex:Q 7`6Q7`.Q7`,Q(Q &Q @ lex & Z %TP@ %# B5rO5hO e etl ,' @ 55 P 3 ,/!P lЀ fe h*P P0  Lf C :-  O  *O f D  f&N! 0nO  , wewA $AmVOB" 56OU.OE&Oh 5 OUO5N.5N'E5 N!`&  |`Ћ~ •   • E N xζض޶\:5VN n X?7!zN mlNjNedN1\NfmPNmHN~BwM7fbB6$ $ 7 PB%%NB FBwN ~藠)%  n& &a EwB& & &6 & 6 ڄ a5EB`` œEB! s B` @  6aD`DՕ ՔՕ e d痠(,&kjL"SSY 2¥#( 7@!!  ¥, X  ` @@ B7@7@7@  ~e4@"$n&!# T@T@ 7`H@7`F@7`D@) P3 e` 3ĝ? U w v7? U wB? ev e?a˕, pf&  dfM??0 & JwlS    e w  0?p p   wHCl $e 嗠,  m> 嗠, 5  h*w:;w p p fD Lh VA B ~ : P@ Е  Е)Е @ fD> B\ ~ 5! w,>C "> >B >~w > A   T~ B n~  B P~  >=7=5! wv= BC  A pp "  DlBW\~ \ D76="= = BC  =5  .MACRO.ENDM   & 7<ȇ << w e | @w e f d Xt<n< w < @ , *wb .<(< N h p p wX  w:g >@g  ;; pp p Tć N7; B V @ F Dg 8 C (wg   p p  PA Cl˕, &e ᗠ,C B  ,D  w 7 : ,7 (Ve D EIД~& &fB &  &2:& & & @ D Rf| !{QF{Q& B J 2ƃ e`&fT C T CDR{Q4{q!'[qvozf[ZgKq zfU( X̽BPBA  &Ӊ  1@r5@?U?*@ڪAr?[CD @%  L w 97=  W@@ @P7L H@7F@w>JP@ PBCD EfIA@?0@ @׳>:L]L?ƪ@ =7^ =  ?AA @ PB P &@!h:יc&>X4%]@D 1 C+  f# ZΌ@ PCBPA& a @ȉʉ  @;\)8A;\)pC[\Eys@‚=Aԉ   e@ & f@ A&vޠĒLjDLf|pʖ“Ĥx2(εBZ@0Ъ,dԐΐҊ̊$Ȉ숨t$@ HNTB<6օZڅ~~:RV^$pv·|f&f ` *  נ נ  נננ"D נaנz E ѐEp(p 00;yl<~l=l>lPkdddנ$נ0נ9נAנZנ_נ:  Vנ[ȕ]נ<ȕ>ȋ8 ~נ%נ*נ-נ.נ0נ9נAנZȠ yנ0נ7נ*נ,A jȠh f  oנ"A   #A aנ$נ%נ*נ0נ9נAנZנ_נ.  נ.נ; dנ0נ9 ]נ- X נ* QA  נ, Dנ=  >5 B>U (w^נ/* . ,נ$נ-נ.נ0נ9נAנZ נ_ נ:  Dנ"  0f&f E^`  UQ  UQ ËUI U `e  !ddC    D%*.C U 0 0 W ,Uw6W /@ : ^BDaW-Ί WNWOD!BΊz CECCD! D! ΋5  e ΐ TpRpR΋pBC5N KR΋KBAE:D0CĊ f eB  Dҁ CSĊ > WB E Br Ε f)& 6 l(*  E 'W " =N  W :+W = 1 #W ,W / %W %W *Հ W <W [W >W ] v(* 6 ew * 8B pB  0 B vw T*) * wD46l0e(BA &e(H0 A f AfAD&pD0 >(w  8 0,0w  Fw ZwnwZw H $0,0w^ N46 % )0406 0 *w  w & W+W- Ba. W#  B0  c  c S W %ec e`s  # 3  & ˥ Z ^C  8   **  4 6 e6p 4*&4&6= 64 wz%!64=5 2 6  l0 & Z46 #64 :)0406 0 *0e6p 4 = ; B S C R E M B U G . C M D(; REMOVES ALL DEBUGGING VERSIONS OF BSC"; AND GETS RID OF TASK IMAGES TOO;REM ...BX9,...BX3-PIP BSCBUG.TSK;*,BSCBUG.STB;*,BSCBUG.MAP;*/DE REM BSCBUG/LI(PIP LB:[1,1]BSCBUG.TSK;*,BSCBUG.STB;*/DE$PIP BXC.TSK;*,BX3.TSK;*,BX9.TSK;*/DE; B S C R E M . C M D; REMOVES ALL VERSIONS OF BSC;-REM ...BAS,...BA1,...BA2,...BA3,...BA4,...BA5;REM ...BA6,...BA7,...BA8,...BA9,...B10,...B11,...BTW,...BTH REM BSCPUR/LI(PIP LB:[1,1]BSCPUR.TSK;*,BSCPUR.STB;*/DE REM ...BBR$JOB SYSTEM BASIC 999$SET DEF [14,106]$!/$! PAUL D. CLAYTON RMS AT NADC, WARMINSTER, PA.$!F$! THIS FILE WILL BUILD A MULTI-USER SHARED LIBRARY VERSION OF REESE'SI$! BASIC. THIS FILE IS A COMBINED FILE FROM ALL THE ONES DISTRIBUTED WITHK$! THE PROGRAM. IT DOES NOT DO ALL THE THINGS THAT REESE HAS MADE AVAILABLE)$! BUT IT WILL WORK. YOU CAN BUILD ON IT.$!P$! I HAD PROBLEMS GETTING THE ERROR MESSAGES TO PRINT CORRECT AND FOUND THAT THEM$! FILE LB:[1,2]BASIC.MSG WAS FORMATTED WRONG. THE F00>l?ll9lg%(kddORTRAN PROGRAM, "MSG.FTN"C$! WILL CREATE THE MESSAGE FILE INSTEAD OF USING THE BASIC PROGRAM L$! "BASDOKMAK.BAS" WHICH IF IT HAS A PROBLEM YOU WON'T KNOW BECAUSE THERE ISR$! NO ERROR MESSAGE FILE IN LB:[1,2]. ITS THE OLD CAT CHASING ITS TAIL TRICK$!$!$!J$! ANYWAY, THE MSG.FTN PROGRAM WILL READ IN THE FILE 'BASIC.MES' AND WRITEL$! OUT A CORRECTLY FORMATTED FILE IN LB:[1,2]. IF YOU HAVE ANY PROBLEMS WITHP$! THIS FILE CALL ME AT (215) 441-2708. ANY QUESTIONS ABOUT THE BASIC CALL FRANK&$! BORGER AT (312) 791-2515. GOOD LUCK$!$DCD$ON ERROR CONTINUE$!L$! FIRST ORDER OF BUSSINESS IS TO $REMOVE ANY INSTALLED COPIES OF BASIC FROM$! THE SYSTEM.$MCR REM ...BASR$MCR REM $$$BAS $MCR REM BASPUR/LI$!6$! COMMAND FILE TO ASSEMBLE BASIC FOR USE UNDER RSX11D$!-$MCR MAC IDNTFY,IDNTFY/-SP=BASPRE/PA:1,IDNTFY 0$MCR MAC BASIC0,BASIC0/-SP/CR=BASPRE/PA:1,BASIC00$MCR MAC BASIC1,BASIC1/-SP/CR=BASPRE/PA:1,BASIC10$MCR MAC BASIC2,BASIC2/-SP/CR=BASPRE/PA:1,BASIC20$MCR MAC BASIC3,BASIC3/-SP/CR=BASPRE/PA:1,BASIC30$MCR MAC BASIC4,BASIC4/-SP/CR=BASPRE/PA:1,BASIC4$MCR MAC CATB,CATB/-SP=CATBC$!0$! FOLLOWING MODULE IS FOR USE UNDER IAS V3 ONLY$!*$MCR MAC SPAWN,SPAWN/-SP=BASPRE/PA:1,SPAWN$!C$! FOLLOWING COMMAND LINE IS USED TO ASSEMBLE THE MODULE IMPUR.$MAC!;$! FOR USE IN A TASK IMAGE. IT THEREFORE DEFINES THE SYMBOL'5$! "TASK" BY INCLUDING THE HEADER FILE IMPURTASK.$MAC2$!7$MCR MAC IMPUR,IMPUR/-SP/CR=BASPRE/PA:1,IMPURTASK,IMPUR5$!<$! FOLLOWING COMMAND LINE IS USED TO ASSEMBLE IMPUR.$MAC FOR8$! SYMBOL TABLE USE ONLY. IT THUS OMITS REFERENCE TO THE8$! HEADER MODULE IMPURTASK.$MAC WHICH DEFINES THE SYMBOL $! "TASK" $!2$MCR MAC IMPURNOMO,IMPURNOMO/-SP=BASPRE/PA:1,IMPUR$!$!>$! FOLLOWING COMMAND FILE IS USED TO LINK A MULTI USER VERSION $! OF BASIC UNDER RSX11D OR IAS.G$! THIS COMMAND FILE IS FOR USE WITH THE INDIRECT COMMAND PROCESSOR AT.:$!($! FIRST BUILD IMPURE AREA SYMBOL TABLE:$!$MCR TKB @IMPURNOMOS$!$! NOW BUILD PURE AREA:,$!$MCR TKB @BASPUR$!,$! NOW PUT LIBRARY UNDER [1,1] ON LB: DEVICE$!0$MCR PIP LB:[1,1]/NV=BASPUR.STB,BASPUR.TSK/FO/CO+$MCR INS LB:[1,1]BASPUR/LI/ACC=RO/UIC=[1,1]E$!#$! NOW BUILD THE IMPURE TASK IMAGE:A$! $MCR TKB @BASS$!B$! WE SHOULD PUT THE TASK IN DOWN IN [11,1] ON THE DEVICE LB: NEXT$!#$MCR PIP LB:[11,1]/NV=BAS.TSK/FO/COE$!9$! NOW THE TASK MAY BE INSTALLED WITH ANY INCREMENT UP TOI9$! A TOTAL TASK SIZE OF 16K WORDS. THE TOP 16K OF ADDRESSP8$! SPACE IS USED BY THE LIBRARY (PURE) PORTION OF BASIC.,$! THE CURRENT INSTALL IS FOR THE MAX. SIZE.$!+$MCR INS LB:[11,1]BAS/TASK=...BAS/INC=13000E$!L$! NEXT IS THE CREATION OF THE ERROR MESSAGE FILE IN LB:[1,2]. THE FOLLOWINGL$! PROGRAM WILL HANDLE IT. YOU MUST BE LOGGED INTO A SYSTEM ACCOUNT AND HAVE$$! YOUR DEFAULT SET TO THIS ACCOUNT.$!$MCR F4P MSG=MSG$!K$! F4POTS IS ASSUMED TO BE IN THE SYSLIB LIBRARY. CHANGE THE FOLLOWING LINE $! IF NOT.$!$MCR TKB MSG=MSG$!$RUN MSG$!$! THATS IT FOLKS, HAVE FUN.$SET DEF$EOJ$!$MCR TKB @BASPUR$!,$! NOW PUT LIBRARY UND!.! PAUL D. CLAYTON RMS AT NADC, WARMINSTER, PA.!E! THIS FILE WILL BUILD A MULTI-USER SHARED LIBRARY VERSION OF REESE'SH! BASIC. THIS FILE IS A COMBINED FILE FROM ALL THE ONES DISTRIBUTED WITHJ! THE PROGRAM. IT DOES NOT DO ALL THE THINGS THAT REESE HAS MADE AVAILABLE(! BUT IT WILL WORK. YOU CAN BUILD ON IT.!O! I HAD PROBLEMS GETTING THE ERROR MESSAGES TO PRINT CORRECT AND FOUND THAT THEL! FILE LB:[1,2]BASIC.MSG WAS FORMATTED WRONG. THE FORTRAN PROGRAM, "MSG.FTN"B! WILL CREATE THE MESSAGE FILE INSTEAD OF USING THE BASIC PROGRAM K! "BASDOKMAK.BAS" WHICH IF IT HAS A PROBLEM YOU WON'T KNOW BECAUSE THERE ISN! NO ERROR MESSAGE FILE IN LB:[1,2]. ITS THE OLD CAT CHASING ITS TAIL TRICK!!!I! ANYWAY, THE MSG.FTN PROGRAM WILL READ IN THE FILE 'BASIC.MES' AND WRITEK! OUT A CORRECTLY FORMATTED FILE IN LB:[1,2]. IF YOU HAVE ANY PROBLEMS WITHO! THIS FILE CALL ME AT (215) 441-2708. ANY QUESTIONS ABOUT THE BASIC CALL FRANK%! BORGER AT (312) 791-2515. GOOD LUCK!DCON ERROR CONTINUEMC!J00?l@ll>lPkddd! FIRST ORDER OF BUSSINESS IS TO REMOVE ANY INSTALLED COPIES OF BASIC FROM ! THE SYSTEM.U REM ...BAS REM $$$BAS REM BASPUR/LI!A5! COMMAND FILE TO ASSEMBLE BASIC FOR USE UNDER RSX11DT!U(MAC IDNTFY,IDNTFY/-SP=BASPRE/PA:1,IDNTFY+MAC BASIC0,BASIC0/-SP/CR=BASPRE/PA:1,BASIC0 +MAC BASIC1,BASIC1/-SP/CR=BASPRE/PA:1,BASIC1 +MAC BASIC2,BASIC2/-SP/CR=BASPRE/PA:1,BASIC2P+MAC BASIC3,BASIC3/-SP/CR=BASPRE/PA:1,BASIC31+MAC BASIC4,BASIC4/-SP/CR=BASPRE/PA:1,BASIC4 MAC CATB,CATB/-SP=CATB!C/! FOLLOWING MODULE IS FOR USE UNDER IAS V3 ONLY !G%MAC SPAWN,SPAWN/-SP=BASPRE/PA:1,SPAWN !RA! FOLLOWING COMMAND LINE IS USED TO ASSEMBLE THE MODULE IMPUR.MACL:! FOR USE IN A TASK IMAGE. IT THEREFORE DEFINES THE SYMBOL3! "TASK" BY INCLUDING THE HEADER FILE IMPURTASK.MACS!N2MAC IMPUR,IMPUR/-SP/CR=BASPRE/PA:1,IMPURTASK,IMPUR! :! FOLLOWING COMMAND LINE IS USED TO ASSEMBLE IMPUR.MAC FOR7! SYMBOL TABLE USE ONLY. IT THUS OMITS REFERENCE TO THEO6! HEADER MODULE IMPURTASK.MAC WHICH DEFINES THE SYMBOL! "TASK"!-MAC IMPURNOMO,IMPURNOMO/-SP=BASPRE/PA:1,IMPURN!L! =! FOLLOWING COMMAND FILE IS USED TO LINK A MULTI USER VERSIONE! OF BASIC UNDER RSX11D OR IAS.TF! THIS COMMAND FILE IS FOR USE WITH THE INDIRECT COMMAND PROCESSOR AT.!:'! FIRST BUILD IMPURE AREA SYMBOL TABLE:/!1TKB @IMPURNOMO!1! NOW BUILD PURE AREA:!B TKB @BASPURA!2+! NOW PUT LIBRARY UNDER [1,1] ON LB: DEVICE3!S+PIP LB:[1,1]/NV=BASPUR.STB,BASPUR.TSK/FO/COS&INS LB:[1,1]BASPUR/LI/ACC=RO/UIC=[1,1]!T"! NOW BUILD THE IMPURE TASK IMAGE:!OTKB @BAS!AA! WE SHOULD PUT THE TASK IN DOWN IN [11,1] ON THE DEVICE LB: NEXTW! PIP LB:[11,1]/NV=BAS.TSK/FO/CO!E8! NOW THE TASK MAY BE INSTALLED WITH ANY INCREMENT UP TO8! A TOTAL TASK SIZE OF 16K WORDS. THE TOP 16K OF ADDRESS7! SPACE IS USED BY THE LIBRARY (PURE) PORTION OF BASIC.I+! THE CURRENT INSTALL IS FOR THE MAX. SIZE.I!S&INS LB:[11,1]BAS/TASK=...BAS/INC=13000!EK! NEXT IS THE CREATION OF THE ERROR MESSAGE FILE IN LB:[1,2]. THE FOLLOWINGCK! PROGRAM WILL HANDLE IT. YOU MUST BE LOGGED INTO A SYSTEM ACCOUNT AND HAVEM#! YOUR DEFAULT SET TO THIS ACCOUNT.E! F4P MSG=MSGA!LJ! F4POTS IS ASSUMED TO BE IN THE SYSLIB LIBRARY. CHANGE THE FOLLOWING LINE ! IF NOT. ! TKB MSG=MSGA!PRUN MSGA!! THATS IT FOLKS, HAVE FUN. SYMBOL TABLE:/!1TKB @IMPURNOMO!1! NOW BUILD PURE AREA:!B TKB @BASPURA!2+! NOW PUT LIBRARY UNDER [1,1] ON LB: DEVICE3!S+PIP LB:[1,1]/NV=BASPUR.STB,BASPUR.TSK/FO/COS&INS LB:[1,1]BASPUR/LI/ACC=RO/UIC=[1,1]!T"! NOW BUILD THE IMPURE TASK IM@ dV{eVz[qUwCZ DRSYTISYSYSYSYSYSYSYSYSYSYSYSYSYSYMOTICL6ad~eO%```SYTISYSYSYSYSYSYSYSYSYSYSYSYSYSYMOTICL3100@lll9lg%(kddERROR AT LINE   &ԂG\jrr8hrhb J  drf.@Q SY00@lll>lPkddddDDDDDDDDD  X\ggj01234567SWAMLHCQFXBGIRVED }~\/'"% ^_@><$=CQ.;-+*,BEFGKLNOPRSVWXvpvpp &.2NHV`p&PLt7 x7   z77X7 d" OD T:  D ? 7 7 7 &   7  D 7   w  1 w De w % eDl  w D 5W 4  @  tZD f (;t  ,3 4  D  #E = Le0, B @ d >(.r f^w ?  P 7 ._ 7+  7"7 Tw rԇ  yw7  !7 77w77%5 f    }b^7qmXRNN D tQ  . 767 4w  $b   B` |% D _ |& \> r Lw 777UE  z n h >e$b7R7LGǁ 0׭5.&Uxpn7 ,N#ĝw)t!TE w7   e0B7 J F: D@ RLFMP|yODn.c$. LBEN7MIOBIL:FP2 EM*TR"w 7p wf      h  `  % R   <3 P  f @  V 0 @ @  4  @, zf&fw *dw ^4 < % !   %44 v7`\-X @@@P@ @em. 7 w*w  4  @f   m77 p(`  07Eu` A A ы |~  h fZ5   Z7jRF)8 @w:E w d$ az +f&%%%"$ t%  zU  N, @ e0 @ @  Ne0, 7 7 7&e N @ e0  w&   b re ee e @(   ,B    :QvivX)qvnSvOvsvS |  ʼp vH6sHAy.RSX BASIC VERSION WtoLi ?EjfRN7&7777777%wXwwwwEՕw7 NCx`B  ~& 2 ? CC w8TjfNw&1 &w ֌ Ό tw™)RNVRT>CO>P00Alll9lg%(kdd6100 ! Daily calibration log for Varian and AECL linacB ! Modified 2/78 to allow entering date (defaults to date of run)1 ! Modified 12/80 to check input values - D.R.S. 7 ! Modified April 83 to include AECL factors F.Borger @ ! Mod Oct 83 to log time, print t-p correction factor F.Borger3 ! Mod Nov 85 to change to task group 21 F.Borger7 ! Also as of Nov 85 all victoreen values are strictly5; ! Empirical comparisons since TG21 ingnores vics F.Borger7A150 DIM D(10),V(10),V$[6](6),U$[10]V,F(8,6),C(10),R(10,10),R1(10)g9160 DIM M(10),R2(10),A$[10]V,X$[10]V,T$[5],M$[8](8),B$[1]r 170 DIM S1$[10]V,S2$[10]V,D1(10)210 X$=DAT$(0):T$=TIM$(0)c5220 ! old victoreen data as of 3/25/77 no longer usedu7221 ! new victoreen data empirical values for 6MV only.r,222 ! old farmer still 5.466*.993 = NX=5.4284223 ! keithley November 85 Madison value of NX=4.702D231 ! 6 mev x - old a,b, new a,b, farmer, keithley (not yet changed),232 DATA 1.090,0.934,0.949,0.958,5.048,4.3503233 ! 10 mev x - old a,b, new a,b, farmer, keithleyR,234 DATA 0.000,0.000,0.000,0.000,5.519,4.7183235 ! 18 mev x - old a,b, new a,b, farmer, keithley),236 DATA 0.000,0.000,0.000,0.000,5.776,5.0262237 ! 6 mev e - old a,b, new a,b, farmer, keithley,238 DATA 0.000,0.000,0.000,0.000,5.004,4.3602239 ! 9 mev e - old a,b, new a,b, farmer, keithley,240 DATA 0.000,0.000,0.000,0.000,4.883,4.2533241 ! 13 mev e - old a,b, new a,b, farmer, keithley(,242 DATA 0.000,0.000,0.000,0.000,4.814,4.1933243 ! 17 mev e - old a,b, new a,b, farmer, keithleyf,244 DATA 0.000,0.000,0.000,0.000,4.725,4.1163245 ! 20 mev e - old a,b, new a,b, farmer, keithleyf,246 DATA 0.000,0.000,0.000,0.000,4.649,4.050270 FOR I=1 TO 8'275 FOR J=1 TO 6 : READ F(I,J) : NEXT J 276 PRINT F(I,J) 279 NEXT I]280 V$(1)="Old A ":V$(2)="Old B ":V$(3)="New A ":V$(4)="New B ":V$(5)="Farmer":V$(6)="Keith."0:282 M$(1)=" 6 MEV X" : M$(2)="10 MEV X" : M$(3)="18 MEV X"`284 M$(4)=" 6 MEV E" : M$(5)=" 9 MEV E" : M$(6)="13 MEV E" : M$(7)="17 MEV E" : M$(8)="20 MEV E"2285 DF=1 : ! assume calibration is not for todayF290 INPUT "Date of calibration (mm/dd/yy) (return means today) ",A$ :0 IF LEN(A$)=0 THEN A$=DAT$(0) : DF=0 : GOTO 380 ELSE DA=DCEN(A$) := IF DA<0 THEN 360 ELSE A$=DAT$(DA) : GOTO 380N360 PRINT "You must enter date as mm/dd/yy (month/day/year) please re-enter" : GOTO 290C380 PRINT "Calibration calculated for ";A$;" done on ";X$;" at ";T$K385 IF DF=1 THEN LET T$="00:00" : ! put in null time if not a "live" calib 7390 FOR JJ=1 TO 3 : PRINT M$(JJ);" (";FRMT$(JJ,2);") ";n)391 PRINT M$(JJ+3);" (";FRMT$(JJ+3,2);")"n 392 NEXT JJ(393 PRINT " ";M$(7);" ( 7)"394 PRINT " ";M$(8);" ( 8)"400 INPUT " ";M0 :F IF M0<1 OR M0>8 THEN PRINT "Answer out or range";CHR$(7) : GOTO 390'410 PRINT "Number of chambers";TAB(45);o 420 INPUT N :lE IF N<1 OR N>10 THEN PRINT "Answer out of range";CHR$(7) : GOTO 410$A430 PRINT "Atmospheric pressure, room temperature deg C";TAB(45);t440 INPUT P,T :nJ IF P<700 OR P>800 THEN PRINT "Pressure out of range";CHR$(7) : GOTO 430Q ELSE IF T<18 OR T>30 THEN PRINT "Temperature out of range";CHR$(7) : GOTO 430(445 PC=P*.00016339*T446 TP=(T+273)/295*760/(P-PC) Q447 PRINT "Corrected pressure = ";FRMT$(P-PC,5,1);" T-P factor = ";FRMT$(TP,5,3)450 FOR I=1 TO N@460 PRINT "(Chamber ID =) New A(3),New B(4),Farmer(5),Keith.(6)"!470 PRINT "Chamber I.D.";TAB(45);G480 INPUT V(I) :J IF V(I)<3 OR V(I)>6 THEN PRINT "Answer out of range";CHR$(7) : GOTO 460=490 PRINT "Number of readings, number of counts set";TAB(45);7500 INPUT M(I),C(I) :F IF M(I)<1 OR M(I)>10 THEN = PRINT "Number of readings out of range";CHR$(7) : GOTO 490T$ ELSE IF C(I)<=0 OR C(I)>400 THEN ; PRINT "Number of counts out of range";CHR$(7) : GOTO 490 510 R1(0)=03520 FOR J=1 TO M(I)"530 PRINT "Scale reading";TAB(45);540 INPUT R(I,J) :" IF R(I,J)<=0 OR R(I,J)>250 THEN 8 PRINT "Scale reading out of range";CHR$(7) : GOTO 530550 R1(J)=R1(J-1)+R(I,J) 560 NEXT J570 R2(I)=R1(J)/M(I)580 P1=P*.00016339*T4590 D(I)=R00AlBll>lPkddd2(I)*F(M0,V(I))*((T+273)/295)*(760/(P-P1))600 D1(I)=D(I)/C(I)T:605 PRINT TAB(21);"Calibration factor=";TAB(45);F(M0,V(I))7610 PRINT TAB(30);"Rad/count=";TAB(45);FRMT$(D1(I),6,3)"615 SET UPPER ON o5620 INPUT "Log this data (Yes) or restart (No) ",B$ :  IF B$="Y" THEN 650 ELSE IF B$="N" THEN 2906 ELSE PRINT "please answer 'Yes' or 'No'" : GOTO 6200650 PRINT #4,A$;T$;M$(M0);" ";V$(V(I));P,T,D1(I) 660 NEXT I 670 CLOSE 4,680 PRINT "All done" I 690 EXIT )580 P1=P*.00016339*T4590 D(I)=R6100 ! Daily calibration log for Varian and AECL linacB ! Modified 2/78 to allow entering date (defaults to date of run)1 ! Modified 12/80 to check input values - D.R.S.7 ! Modified April 83 to include AECL factors F.Borger@ ! Mod Oct 83 to log time, print t-p correction factor F.Borger3 ! Mod Nov 85 to change to task group 21 F.Borger7 ! Also as of Nov 85 all victoreen values are strictly; ! Empirical comparisons since TG21 ingnores vics F.BorgerA150 dim d(10),v(10),v$[6](6),u$[10]v,f(8,6),c(10),r(10,10),r1(10)g9160 dim m(10),r2(10),a$[10]v,x$[10]v,t$[5],m$[8](8),b$[1]r 170 dim s1$[10]v,s2$[10]v,d1(10).200 open #4,"CALOG."+SBS$(DAT$(),7,2)+"/UP/AP"210 x$=dat$(0):t$=tim$(0) 5220 ! old victoreen data as of 3/25/77 no longer usedo7221 ! new victoreen data empirical values for 6MV only. ,222 ! old farmer still 5.466*.993 = NX=5.4284223 ! keithley November 85 Madison value of NX=4.702D231 ! 6 mev x - old a,b, new a,b, farmer, keithley (not yet changed),232 data 1.090,0.934,0.949,0.958,5.048,4.3503233 ! 10 mev x - old a,b, new a,b, farmer, keithley[,234 data 0.000,0.000,0.000,0.000,5.519,4.7183235 ! 18 mev x - old a,b, new a,b, farmer, keithley",236 data 0.000,0.000,0.000,0.000,5.776,5.0262237 ! 6 mev e - old a,b, new a,b, farmer, keithley,238 data 0.000,0.000,0.000,0.000,5.004,4.3602239 ! 9 mev e - old a,b, new a,b, farmer, keithley,240 data 0.000,0.000,0.000,0.000,4.883,4.2533241 ! 13 mev e - old a,b, new a,b, farmer, keithley(,242 data 0.000,0.000,0.000,0.000,4.814,4.1933243 ! 17 mev e - old a,b, new a,b, farmer, keithleyf,244 data 0.000,0.000,0.000,0.000,4.725,4.1163245 ! 20 mev e - old a,b, new a,b, farmer, keithleyf,246 data 0.000,0.000,0.000,0.000,4.649,4.050270 for i=1 to 87275 for j=1 to 6 : read f(i,j) : print f(i,j); : next ja 276 print0 279 next i]280 v$(1)="Old A ":v$(2)="Old B ":v$(3)="New A ":v$(4)="New B ":v$(5)="Farmer":v$(6)="Keith."0:282 m$(1)=" 6 MEV X" : m$(2)="10 MEV X" : m$(3)="18 MEV X"`284 m$(4)=" 6 MEV E" : m$(5)=" 9 MEV E" : m$(6)="13 MEV E" : m$(7)="17 MEV E" : m$(8)="20 MEV E"1285 df=1 :! assume calibration is not for today5F290 input "Date of calibration (mm/dd/yy) (return means today) ",a$ :0 if len(a$)=0 then a$=dat$(0) : df=0 : goto 380 else da=dcen(a$) :r if da<0 then 360 else a$=dat$(da) : goto 380N360 print "You must enter date as mm/dd/yy (month/day/year) please re-enter" : goto 290C380 print "Calibration calculated for ";a$;" done on ";x$;" at ";t$J385 if df=1 then let t$="00:00" : ! put in null time if not a "live" calib7390 for jj=1 to 3 : print m$(jj);" (";frmt$(jj,2);") "; )391 print m$(jj+3);" (";frmt$(jj+3,2);")"i 392 next jj 393 print " ";m$(7);" ( 7)"394 print " ";m$(8);" ( 8)"400 input " ";m0 :F if m0<1 or m0>8 then print "Answer out or range";chr$(7) : goto 390'410 print "Number of chambers";tab(45);( 420 input n : E if n<1 or n>10 then print "Answer out of range";chr$(7) : goto 410;A430 print "Atmospheric pressure, room temperature deg C";tab(45);u440 input p,t : J if p<700 or p>800 then print "Pressure out of range";chr$(7) : goto 430Q else if t<18 or t>30 then print "Temperature out of range";chr$(7) : goto 430(445 pc=p*.00016339*t446 tp=(t+273)/295*760/(p-pc) Q447 print "Corrected pressure = ";frmt$(p-pc,5,1);" T-P factor = ";frmt$(tp,5,3)450 for i=1 to n@460 print "(Chamber ID =) New A(3),New B(4),Farmer(5),Keith.(6)"!470 print "Chamber I.D.";tab(45);g480 input v(i) :J if v(i)<3 or v(i)>6 then print "Answer out of range";chr$(7) : go00BlClD%kE&kEl(kddto 460=490 print "Number of readings, number of counts set";tab(45);7500 input m(i),c(i) :f if m(i)<1 or m(i)>10 then = print "Number of readings out of range";chr$(7) : goto 490t$ else if c(i)<=0 or c(i)>400 then ; print "Number of counts out of range";chr$(7) : goto 490 510 r1(0)=03520 for j=1 to m(i)"530 print "Scale reading";tab(45);540 input r(i,j) :" if r(i,j)<=0 or r(i,j)>250 then 8 print "Scale reading out of range";chr$(7) : goto 530550 r1(j)=r1(j-1)+r(i,j) 560 next j570 r2(i)=r1(j)/m(i)580 p1=p*.00016339*t4590 d(i)=r2(i)*f(m0,v(i))*((t+273)/295)*(760/(p-p1))600 d1(i)=d(i)/c(i)t:605 print tab(21);"Calibration factor=";tab(45);f(m0,v(i))7610 print tab(30);"Rad/count=";tab(45);frmt$(d1(i),6,3)"615 set upper on5620 input "Log this data (Yes) or restart (No) ",b$ :  if b$="Y" then 650 else if b$="N" then 2906 else print "please answer 'Yes' or 'No'" : goto 6200650 print #4,a$;t$;m$(m0);" ";v$(v(i));p,t,d1(i) 660 next i 670 close 4+680 print "All done" 690 exit)/m(i)580 p1=p*.00016339*t4590 d(i)=r2(i)*f(m0,v(i))*((t+273)/295)*(760/(p-p1))600 d1(i)=d(i)/c(i)t:605 print tab(21);"Calibration factor=";tab(45);f(m0,v(i))7610 print tab(30);"Rad/count=";tab(45);frmt$(d1(i),6,3)"615 set upper on5620 input "Log this data (Yes) or restart (No) ",b$ :  if b$="Y" then 650 else if b$="N" then 2906 else print "please answer 'Yes' or 'No'" : goto 6200650 print #4,a$;t$;m$(m0);" ";v$(v(i));p,t,d1(i) 660 next i 670 close 4+680 print "All d910 ! PROGRAM TO CHANGE A DOCUMENT FILE IN UPPER CASE ONLY;11 ! TO ALL LOWER CASE SO YOU CAN GO IN WITH THE EDITOR ANDB12 ! MAKE A FEW CHARACTER CHANGES AND HAVE TEXT-LIKE DOCUMENTATION413 ! WHERE CONVERSION TO RUNOFF SOURCE IS NOT VIABLE!20 DIM A$[132]V,B$[132]V,NA$[30]V25 LOAD "LB:[1,202]LOWCAS.ATK"30 INPUT "FILE NAME ";NA$35 OPEN #3,NA$+"/RO/LN:132"40 OPEN #4,NA$+"/WR/LN:132"45 IF END #3 THEN 10050 INPUT LINE #3,A$55 CALL "LOWCAS"(A$,B$)60 PRINT #4,B$ 70 GOTO 50 100 CLOSE*XLW@(j9xh  ZA90$ .*@(w f  W*.   @SqTAa ߇  ;WC; ROUTINE TO REPLACE ASCII TO BINARY CONVERSION ROUTINE SUPPLIED INA@; SYSLIB, EXCEPT THIS ONE SHOULD WORK IN A PURE CODE ENVIRONMENT; (A RESIDENT LIBRARY).;T; 2-JUN-77 LARRY SIMPSON;O; DECLARE ENTRY POINTS .GLOBL $CDTB $COTBO;E ; ON ENTRY:F%; R0 CONTAINS ADDRESS OF ASCII STRINGI ; ON EXIT:/; R0 POINTS TO NEXT CHAR AFTER CONVERTED STRINGO; R1 HAS UNSIGNED BINARY VALUE; R2 HAS TERMINATING CHARF;S1; .WORD 0 ;THIS IS TO MAKE ENTRY POINTS THE SAMEV%$CDTB: MOV R5,-(SP) ;SAVE FOR SCRATCHO( MOV #71,-(SP) ;SAVE UPPER CHARACTER '9'$ MOV #10.,R2 ;NUMBER BASE (DECIMAL) BR CONCOM%$COTB: MOV R5,-(SP) ;SAVE FOR SCRATCH! MOV #67,-(SP) ;UPPER CHAR IS '7'U! MOV #10,R2 ;NUMBER BASE (OCTAL)N$CONCOM: CLR R1 ;START WITH ANSWER 0)2$: MOVB (R0)+,R5 ;GET LEADING CHAR -> R5I CMPB #40,R5 ;IS IT A SPACE?T BEQ 2$ ;IF SO, GET NEXT CHAR# CMPB #HT,R5 ;IS IT HORIZONTAL TABE BEQ 2$ ;IF SO, ALSO SKIP64$: CMPB (SP),R5 ;COMPARE UPPER ASCII CHAR WITH GIVEN, BLO 3$ ;IF OUT OF RANGE, END OF CONVERSION$ CMPB #60,R5 ;NOW CHECK LOWER LIMIT BHI 3$ ;IF OUT, ENDA- MUL R2,R1 ;MULTIPLY PREVIOUS ANSWER BY BASES! SUB #60,R5 ;MAKE ASCII -> VALUEP ADD R5,R1 ;AND ADD IT IN# MOVB (R0)+,R5 ;GET NEXT CHAR -> R5 BR 4$ ;AND CONTINUE CONVERSION&3$: MOV R5,R2 ;TERMINATING CHAR -> R2 TST (SP)+ ;POP UPPER CHARB MOV (SP)+,R5 ;RESTORE R5R RTS PCH .ENDIS IT HORIZONTAL TABE BEQ 2$ ;IF SO, ALSO SKIP64$: CMPB (SP),R5 ;COMPARE UPPER ASCII CHAR WITH GIVEN, BLO 3$ ;IF OUT OF RANGE, E00FlGlHlIlJlddd* :L 5@(D R5 BR 4$ ;AND CONTINUE CONVERSION&3$: MOV R5,R2 ;TERMINATING CHAR -> R2 TST (SP)+ ;POP UPPER CHARB MOV (SP)+,R5 ;RESTORE R5R RTS PCH .ENDIS IT HORIZONTAL TABE BEQ 2$ ;IF SO, ALSO SKIP64$: CMPB (SP),R5 ;COMPARE UPPER ASCII CHAR WITH GIVEN, BLO 3$ ;IF OUT OF RANGE, E0DBLBIN,DBLBIN/-SP=[1,200]LODMAC/ML,[1,200]DBLBIN (U 05JU85F\   @ÅDC!Д~~ Д  @e ; ; DBLBIN.MACG; SOURCE FOR MACRO SUBROUTINE TO INTERPRET FOUR SUCCESSIVE STRING BYTESG; AS A LONG (2 WORD) INTEGER AND RETURN ITS VALUE AS A FLOATING NUMBER. ; BASIC CALL:; CALL "DBLBIN"(A$,A); WHERE:6; A$ = STRING WHOSE FIRST 4 BYTES CONTAIN LONG INTEGER%; A = RETURNED VALUE OF LONG INTEGER;; ; DBLBIN.MACG; SOURCE FOR MACRO SUBROUTINE TO INTERPRET FOUR SUCCESSIVE STRING BYTESG; AS A LONG (2 WORD) INTEGER AND RETURN ITS VALUE AS A FLOATING NUMBER. ; BASIC CALL:; CALL "DBLBIN"(A$,A); WHERE:6; A$ = STRING WHOSE FIRST 4 BYTES CONTAIN LONG INTEGER%; A = RETURNED VALUE OF LONG INTEGER; .MCALL ULODHD ULODHD START,END,DBLBIN;; DEFINE FLOATING REGISTER;AC0=%0;START:DBLBIN: JSR R4,@#GTRGPI ;GET ARGUMENTS .BYTE 3,2,0 .EVEN* JSR PC,@#PARCHK ;CHECK FOR TRAILING PAREN MOV SP,R5 ;R5 IS ARG LIST PTRT# MOV (R5)+,R4 ;R4 HAS LEN OF STRINGN& MOV (R5)+,R3 ;ADDRESS OF STRING -> R3 MOV #4,R2 MOV SP,R0$ CMP R4,R2 ;SEE IF WE HAVE FULL LEN BLT 2$ ;IF NOT, BRANCH)1$: MOVB (R3)+,(R0)+ ;PUT NUMBER ON STACKT$ SOB R2,1$ ;ENSURING WORD ALIGNMENT BR 5$%2$: SUB R4,R2 ;GET MISSING LEN -> R2 &3$: CLRB (R0)+ ;CLEAR OUT A FEW BYTES SOB R2,3$# TST R4 ;CHECK LEN OF WHAT WE HAVER BLE 5$ ;IF ZERO, BRANCH)4$: MOVB (R3)+,(R0)+ ;PUT IN WHAT WE HAVEC SOB R4,4$!5$: SETL ;SET LONG INTEGER MODES$ LDCLF (SP)+,AC0 ;CONVERT THE NUMBER SETI ;BACK TO INTEGER MODEO" JSR PC,@#NSTORE ;STORE THE RESULT& ADD #12,SP ;GET RID OF REST ON STACK RTS PC ;RETURNEND: .END MOVB (R3)+,(R0)+ ;PUT NUMBER ON STACKT$ SOB R2,1$ ;ENSURING WORD ALIGNMENT BR 5$%2$: SUB R4,R2 ;GET MISSING LEN -> R2 &3$: CLRB (R0)+ ;CLEAR OUT A FEW BYTES SOB R2,3$# TST R4 ;CHECK LEN OF WHAT WE HAVER BLE 5$ ;IF ZERO, BRANCH)4$: MOVB (R3)+,(R0)+ ;PUT IN WHAT WE HAVEC SOB R00KlLlMl&kEl(kdd* :L.I.@8X@8@*8@Z`@:d @(T F\  H8X88.I.* DC!Д~~ Д:d B  e Z` R2,1$ ;ENSURING WORD ALIGNMENT BR 5$%2$: SUB R4,R2 ;GET MISSING LEN -> R2 &3$: CLRB (R0)+ ;CLEAR OUT A FEW BYTES SOB R2,3$# TST R4 ;CHECK LEN OF WHAT WE HAVER BLE 5$ ;IF ZERO, BRANCH)4$: MOVB (R3)+,(R0)+ ;PUT IN WHAT WE HAVEC SOB R$DBLBIN.ATK/-HD/-FP,DBLBIN/-SP=DBLBINLB:[1,1]BSCPUR.STB/SS/STACK=0UNITS=0/  F   , RSX BASIC - MICHAEL REESE VERSION  G AUTHORS: L. Simpson, F. Borger, Michael Reese Medical  Center, Chicago, IL  D Operating IAS, RSX-11D, RSX-11M, VMS (compatibility mode)  % Source Language: MACRO-11  G Special hardware: Floating point processor or FPP emulator  (supplied.)  ( Keywords: BASIC, Reese Basic  G Abstract: Reese Basic is a highly upgraded version of what 6 used to be a DECUS library program for DOS.  G 1. Full FILES-11 I/O is supported, (fixed length random ac- l' cess, shared mode, etc.)  G 2. String functions and user defined functions are much G more flexible than in either the original version or in n DEC's BASIC-11.  G 3. Multi-user implementation is supported with separate > pure and impure areas. (IAS and RSX-11D only.)  G 4. Since it is an interpreter, it includes the special de- : bugging commands: STEP, CON and SET TRACE.  -G 5. Although an interpreter, significant manipulation of the n< source program is done to speed up operation.  oF 6. OVERLAY and a data preserving CHAIN are also supported.  'G 7. A clean "break" feature is implemented via the TT  handler.  G 8. a number of BASIC+2-like features have been added in- cG cluding: virtual arrays, integer and byte variables, g0 continued lines and IF-THEN-ELSE.  D 9. The capability of Spawning another task is supported.   C MEDIA: 1200' Magtape, 1600BPI, FORMAT: BRU, VMS Backup V G PAGE 2 lF 29-AUG-86 e 4 Installation guidelines  e eG The First BRU backup set contains the master IAS version. bG The current task version runs under version 3.2 of IAS. It G is a full blown version, with a seperate shared library for G the interpreter code. The only thing one should have to do G is to install things using IASINS.cmd and move the error lG message text file to LB:[1,2]. This is all contained in  backup set IAS.  G The second BRU backup set contains the RSX11M or VMS ver- cG sion. This is a subset built to run on our VAX in compati- G bility mode. RSX11M does not support shared code versions. wG The 11m version does not support error messages in a message hG file, 11m users should not bother with trying to generate a gG message file. The 11M version now gives a full error mes- LG sage from internal00MlNllIlJlddd error messages. This is a full working G version of 11M basic. 11M programmers should really not G have to look at the IAS backup set. This is all contained  in RSX11M. 1 dG The third file on the tape is a VMS backup set of the same n thing as the above.  aG The last file on the tape is a BRU backup set of DAMMIT, G COOKIE, MURPHY and MAY. These are included because they are eG fun, but also because they are part of the final test pro- iG gram, TIMSPOT.BAS. If TIMSPOT.BAS executes correctly, (on n? your VT100 compatible terminal,) everything is well.  n nG The following is a quick guide to the steps required to re-  build basic.  e FOR IAS: s eG 1. Print out BASPRE.MAC and decide what changes you o! want to make. P a9 2. Assemble everything using 11DASM.CMD. u bG 3. Use BSCALL.CMD to remove all older versions, (in- G cluding the library, etc,) and install the new ver- VG sion. (BSCALL.BUG will install a test version oE without doing anything with the current version.) l a FOR RSX11M O AG 1. Print out BASPRE.MAC and decide what changes you eG want to make. (Realize that shared code under 11M m# does not work.) b 6 2. Assemble sources using 11MASM.CMD.  G PAGE 3 F 29-AUG-86 v i+ 3. Tkb using BIGBASIC.CMD. n i. Some Notes  M G All IAS users may not be aware of BBR. This program enables uG you to spy on the progress of a basic program executing on MG any terminal. Its often a great help in debugging another G user's problem. It unfortunately only works for the IAS  version.  EG The command file BUILD.CMD is also a good way for first time -A users to work their way thru re-doing the IAS version. Some Notes  M G All IAS users may not be aware of BBR. This program enables uG you to spy on the progress of a basic program executing on MG any terminal. Its often a great help in de .PS 60,70o^^.DATE 29-AUG-86g.LS 1 .LM 10;.RM 70 .TS 10!RSX BASIC - MICHAEL REESE VERSIONt.FG 1i=AUTHORS: L. Simpson, F. Borger, Michael Reese Medical Center, Chicago, IL .fg 1.9Operating IAS, RSX-11D, RSX-11M, VMS (compatibility mode) .fg 1iSource Language: MACRO-11 .fg 1-Special hardware:o4Floating point processor or FPP emulator (supplied.).fg 1iKeywords: BASIC, Reese Basic.fg 1C Abstract:dReese Basic is a highly Dupgraded version of what used to be a DECUS library program for DOS. .list;.lm 14M.le Full FILES-11 I/O is supported, (fixed length random access, shared mode,ietc.)RK.le String functions and user defined functions are much more flexible than.5in either the original version or in D^eC's BASIC-11.oO.le Multi-user implementation is supported with separate pure and impure areas.i(IAS and RSX-11D only.)tK.le Since it is an interpreter, it includes the special debugging commands:sSTEP, CON and SET TRACE.K.le Although an interpreter, significant manipulation of the source program4is done to speed up operation.;.le OVERLAY and a data preserving CHAIN are also supported. >.le A clean "break" feature is implemented via the TT handler.5.le a number of BASIC+2-like features have been addedAFincluding: virtual arrays, integer and byte variables, continued linesand IF-THEN-ELSE.9.le The capability of Spawning another task is supported.t.endlist;.lm 10c.fg 1u7MEDIA: 1200' ^magtape, 1600BPI, FORMAT: BRU, VMS Backupa.pagee.cInstallation gui00NlOlPlQll(kdddelines .fg 2sJThe First BRU backup set contains the master IAS version. The current taskGversion runs under version 3.2 of IAS. It is a full blown version, withtMa seperate shared library for the interpreter code. The only thing one shouldKhave to do is to install things using IASINS.cmd and move the error messageFtext file to LB:[1,2].(This is all contained in backup set IAS..fg 1NThe second BRU backup set contains the RSX11M or VMS version. This is a subsetMbuilt to run on our VAX in compatibility mode. RSX11M does not support sharednKcode versions. The 11m version does not support error messages in a message2Mfile, 11m users should not bother with trying to generate a message file. ThenM11M version now gives a full error message from internal error messages. ThisnNis a full working version of 11M basic. 11M programmers should really not have?to look at the IAS backup set. This is all contained in RSX11M.t.fg 1eNThe third file on the tape is a VMS backup set of the same thing as the above..fg 1.KThe last file on the tape is a BRU backup set of DAMMIT, COOKIE, MURPHY andpLMAY. These are included because they are fun, but also because they are partNof the final test program, TIMSPOT.BAS. If TIMSPOT.BAS executes correctly, (on4your VT100 compatible terminal,) everything is well..fg 2 FThe following is a quick guide to the steps required to rebuild basic..fg 1 FOR IAS:.listcB.le Print out BASPRE.MAC and decide what changes you want to make.).le Assemble everything using 11DASM.CMD.fN.le Use BSCALL.CMD to remove all older versions, (including the library, etc,)Land install the new version. (BSCALL.BUG will install a test version without)doing anything with the current version.) .endlist FOR RSX11M.listcK.le Print out BASPRE.MAC and decide what changes you want to make. (Realizeo*that shared code under 11M does not work.)&.le Assemble sources using 11MASM.CMD..le Tkb using BIGBASIC.CMD.M.endlist.c Some Notes.fg 2nIAll IAS users may not be aware of BBR. This program enables you to spy ontLthe progress of a basic program executing on any terminal. Its often a greatIhelp in debugging another user's problem. It unfortunately only works forwthe IAS version..fg 1 JThe command file BUILD.CMD is also a good way for first time users to work(their way thru re-doing the IAS version.red code under 11M does not work.)&.le Assemble sources using 11MASM.CMD..le Tkb using BIGBASIC.CMD.M.endlist.c Some Notes.fg 2nIAll IAS users may not be aware of BBR. ThiD; ^IF BASIC FAILS TO FIND THE REQUIRED FILE, IT WILL ALSO LOOK UNDERG; THE "DEFAULT ; "A" IS THE 0TH ELEMENT OF A DIMENSIONED VARIABLE CONTAINING ; THE DIRECTIVE PARAMETER BLOCK.;; TYPICALLY A "DIM A%(N) FACILITATES CREATING THE DIRECTIVE; PARAMETER BLOCK.;C; THE ROUTINE MAKES ROUTINE CHECKS OF THE VALIDITY OF THE DIRECTIVE@; CODE, AND RETURNS A -99. IF THE DIRECTIVE FAILS. OTHERWISE THE%; DIRECTIVE STATUS IS RETURNED IN "S";:; TO ASSIST IN CREATING ADDRESSES IN DPB00UlVllQll(kdd'S THE ENTRY POINT;E; CALL "GETADR"(A,B);C>; RETURNS THE ABSOLUTE ADDRESS OF VARIABLE "A" IN VARIABLE "B",; A & B ARE EXPECTED TO BE INTEGER VARIABLES;O;INING ; THE DIRECTIVE PARAMETER BLOCK.;; TYPICALLY A "DIM A%(N) FACILITATES CREATING THE DIRECTIVE; PARAMETER BLOCK.;C; THE ROUTINE MAKES ROUTINE CHECKS OF THE VALIDITY OF THE DIRECTIVE@; CODE, AND RETURNS A -99. IF THE DIRECTIVE FAILS. OTHERWISE THE%; DIRECTIVE STATUS IS RETURNED IN "S";:; TO ASSIST IN CREATING ADDRESSES IN DPB0; MACRO SUBROUTINE TO ISSUE ANY SYSTEM DIRECTIVE; ; MAIN CALL; CALL "DIRECT"(A,S);; WHERE>; "A" IS THE 0TH ELEMENT OF A DIMENSIONED VARIABLE CONTAINING ; THE DIRECTIVE PARAMETER BLOCK.;; TYPICALLY A "DIM A%(N) FACILITATES CREATING THE DIRECTIVE; PARAMETER BLOCK.;C; THE ROUTINE MAKES ROUTINE CHECKS OF THE VALIDITY OF THE DIRECTIVE@; CODE, AND RETURNS A -99. IF THE DIRECTIVE FAILS. OTHERWISE THE%; DIRECTIVE STATUS IS RETURNED IN "S";:; TO ASSIST IN CREATING ADDRESSES IN DPB'S THE ENTRY POINT;E; CALL "GETADR"(A,B);C>; RETURNS THE ABSOLUTE ADDRESS OF VARIABLE "A" IN VARIABLE "B",; A & B ARE EXPECTED TO BE INTEGER VARIABLES;O;I; IDENTIFYING INFO:  .MCALL ULODHD ;CALL MACRO( ;IDENTIFY START OF CODE, END OF CODE ;AND ONE ENTRY POINT ULODHD DIRECT,END,DIRECT,GETADR;HAC0=%0; ;I.PAGE &DIRECT: ;LABLE ACTUAL START OF CODE0 JSR R4,@#GTRGPI ;GO GET ARGUMENTS IN PI FASHION$ .BYTE 2,2,0 ;THIS IS ARG TYPE LIST1 ;MAKE FIRST ONE OUTPUT NUMERIC SO WE CAN FINDP ;ITS ADDRESSSE ;2 OUTPUT, RETURNED STATUS .EVEN' ;WE NOW HAVE THIS DATA ON THE STACK ' ;SP+12 5-WORD DESCRIPTOR FOR STATUSS" ;SP> 5-WORD DESCRIPTOR FOR DPB( ;FORMAT 2-WORD FLOATING POINT VALUE$ ; 2-WORD OFFSET (FP) TO ELEMENT" ; HEADER ADDRESS FOR VARIABLE0 JSR PC,@#PARCHK ;CHECK FOR TRAILING RIGHT PAREN MOV (SP)+,R0 ;GET HEADER OFFSET MOV (R0),R0 ;AND HEADERS! BIC #17777,R0 ;ISOLATE TYPE BITS & CMP R0,#20000 ;IS IT INTEGER VARIABLE BEQ 1$ ;BR IF OK- ADD #4*2,SP ;CLEAN FIRST VARIABLE OFF STACKT BR BADDPB ;AND RETURN ERRORO"1$: LDF (SP)+,AC0 ;OFFSET INTO AC0" CMP (SP)+,(SP)+ ;GET RID OF VALUE SETI ;SET INTEGER MODER STCFI AC0,R0 ;GET OFFSET IN R0! ADD @#STUDAT,R0 ;MAKE R0 ADDRESSS5 MOV R0,-(SP) ;PUSH DPB ADDRESS ONTO STACK ONTO STACK$ MOV (R0),R0 ;GET DPB CODE AND SIZE BIT #1,R0 ;CODE BETTER BE ODDA BEQ BADTYP ;ELSE CODE IS BAD+ BIT #200,R0 ;LOWER BYTE CAN'T BE NEGATIVEC BNE BADTYP ;SO DO ERROR ! SWAB R0 ;GET SIZE IN LOWER BYTE#! BIC #177400,R0 ;CLEAR UPPER BYTET# CMP R0,#41. ;MAX SIZE IS 41 BYTES BGT BADTYP ;ELSE ERROR" EMT 377 ;OK - - DO THE DIRECTIVE' LDCIF @#$DSW,AC0 ;GET DIRECTIVE STATUSC BR RETURN ;AND RETURN STATUS.BADTYP: TST (SP)+ ;POP DPB ADDRESS FROM STACK BADDPB: SETI ;SET INTEGER MODE' LDCIF #-99.,AC0 ;PUT BAD STATUS IN AC0I5RETURN: MOV SP,R5 ;POINT R5 TO ARG TYP LIST ON STACKE+ JSR PC,@#NSTORE ;STORE THE RETURNED STATUS ADD #5*2,SP ;RESTORE THE STACK RTS PCS.PAGE GETADR: ;LABLE ENTRY POINT#0 JSR R4,@#GTRGPI ;GO GET ARGUMENTS IN PI FASHION$ .BYTE 2,2,0 ;THIS IS ARG TYPE LIST1 ;MAKE FIRST ONE OUTPUT NUMERIC SO WE CAN FIND$ ;ITS ADDRESSSI ;2 OUTPUT, RETURNED ADDRESSR .EVEN' ;WE NOW HAVE THIS DATA ON THE STACKM( ;SP+12 5-WORD DESCRIPTOR FOR ADDRESS' ;SP> 5-WORD DESCRIPTOR FOR VARIABLE( ;FORMAT 2-WORD FLOATING POINT VALUE$ ; 2-WORD OFFSET (FP) TO ELEMENT" ; HEADER ADDRESS FOR VARIABLE0 JSR PC,@#PARCHK ;CHECK FOR TRAILING RIGHT PAREN% TST (SP)+ ;GET RID OF HEADER OFFSETO LDF (SP)+,AC0 ;OFFSET INTO AC0Y" CMP (SP)+,(SP)+ ;GET RID OF VALUE SETI ;SET INT MODET STCFI AC0,R0 ;GET OFFSET IN R0! ADD @#STUDAT,R0 ;MAKE R0 ADDRESS + LDCIF R0,AC0 ;CONVERT ADDRESS TO FLOATINGO. MOV SP,R5 ;POINT R5 TO ARG TYP LIST ON STACK+ JSR PC,@#NSTORE ;STORE THE RETURNED STATUSL ADD #5*2,SP ;RESTORE THE STACK RTS PCEEND: ;LABLE END OF CODE .ENDENT" ; HEADER ADDRESS FOR VARIABLE0 JSR PC,@#PARCHK ;CHECK FOR TRAILING RIGHT PAR00WlXlYlZl[l\l]ld* :L.I.@8X@8@*8@Z`@:d @y<@s@( % z,dF T8X88 .I."*" E e%g&:d &y<*H5 5 E ) "sn e  S Z`.I.$ %g e :d y<Z`DEEND: ;LABLE END OF CODE .ENDBLE0 JSR PC,@#PARCHK ;CHECK FOR TRAILING RIGHT PAR100 DIM FL%(255)110 PRINT "1 ITERATION" 120 SZ%=255 130 CO%=0140 FOR I=0 TO SZ% 150 FL%(I)=1 160 NEXT I 170 A$=TIM$() 180 A=SEC(A$)190 FOR I=0 TO SZ% 200 IN%=I210 IF FL%(IN%)=0 GOTO 290220 PR%=IN%+IN%+3230 K%=IN%+PR%240 IF K%>SZ% GOTO 280 250 FL%(K%)=0 260 K%=K%+PR% 270 GOTO 240 280 CO%=CO%+1 290 NEXT I 300 B$=TIM$() 310 B=SEC(B$)320 PRINT CHR$(7);CO%," PRIMES"!330 PRINT "TAKING ";B-A;" SECOND"340 ENDERATO=ERATO,LB:[1,1]F77OTS/LB/C LOGICAL*1 FLAGS(255) INTEGER COUNT, PRIME, SIZEC SIZE=255C START=SECNDS(0.)C DO 1000 ITER=1,10 COUNT=0 I=0 DO 100 I=1,SIZE100 FLAGS(I)=.TRUE.C DO 200 I=1,SIZE IF(.NOT.FLAGS(I)) GOTO 200 PRIME=I+I+1 COUNT=COUNT+1 K=I+PRIME DO 150 J=K,SIZE,PRIME150 FLAGS(J)=.FALSE. 200 CONTINUE 1000 CONTINUEC TIME=SECNDS(START)CA TYPE *,COUNT,' PRIMES FOUND ',ITER-1,' TIMES IN ',TIME,' SECOND'C STOP END%10 ! PROGRAM TO RETURN AN EXIT STATUS20 LOAD "EXITST"(30 PRINT "WILL NOW RETURN A STATUS OF 2"35 B=240 CALL "EXITST"(B)!50 PRINT "I SHOULD NOT GET HERE "60 EXIT3EXITST,EXITST/-SP=LB:[1,202]LODMAC/ML,[1,202]EXITST (U 05JU85* #   @& 0 ґ000^l_l`lalbl(kdd$10 ! PROGRAM TO TRY EXIT WITH STATUS20 B=0$30 CALL "SPAWNB"("BA3 EXITRET/RN",B)40 PRINT "RETURNED STATUS = ";B50 EXIT$EXITST.ATK/-HD/-FP,EXITST/-SP=EXITSTLB:[1,1]BSCPUR.STB/SS/STACK=0UNITS=0/&; MACRO SUBROUTINE TO EXIT WITH STATUS .LIST MEB;C ; MAIN CALLO; CALL "EXITST"(S);R; WHEREP;; "S" IS THE STATUS WORD TO BE RETURNED TO THE ISSUING TASKC; IF "S" IS NOT PRESENT, A STATUS OF "WARNING" (0) WILL BE RETURNEDE;HA; ALTHOUGH ANY STATUS CAN BE RETURNED, UNDER NORMAL CIRCUMSTANCESD>; (AS FOR USE WITH INDIRECT MCR,) ONE SHOULD RETURN ONE OF THE; FOLLOWING STATUS TO RETURN (0 IF NONE SPEC'D)0 JSR PC,@#PARCHK ;CHECK FOR TRAILING RIGHT PAREN SETI ;SET INTEGER MODE SETF ;NORMAL FLOATING LDF (SP)+,AC0 ;GET STATUS" STCFI AC0,R0 ;CONVERT TO INTEGER MOV R0,-(SP) ;PUSH STATUS0 MOV (PC)+,-(SP) ;PUSH DIRECTIVE CODE AND LENGTH .BYTE 29.,2! JSR PC,@#CLSEAL ;CLOSE ALL FILESC% JSR PC,@#DETACH ;DETACH THE TERMINALO EMT 377 ;DO THE DIRECTIVE/ LODERR ;REPORT LOAD ERROR IF DIRECTIVE FAILSR END: .END ;WE NOW HAVE THIS DATA ON THE STACKN, ;SP> STATUS TO RETURN (0 IF NONE SPEC'D)0 JSR PC,@#PARCHK ;CHECK FOR TRAILING RIGHT PAREN SETI ;SET INTEGER MODE S* :Lt@@.I.@*8X@8@8@\M""@:d @(8 ** #    8X88.I. :d &&  t\M""LO EMT 377 ;DO THE DIRECTIVE/ LODERR ;REPORT LOAD ERROR IF DIRECTIVE FAILSR END: .END ;WE NOW HAVE THIS DATA ON THE STACKN, ;SP> STATUS TO RETURN (0 IF NONE SPEC'D)0 JSR PC,@#PARCHK ;CHECK FOR TRAILING RIGHT PAREN SETI ;SET INTEGER MODE S .TITLE $EXP .IDENT /F40002/ .psect OTS$I ,CON,RW,REL,LCL,ISEXP:: MOV 2(R5),R4 MOV (R4),R0 BGT E00020C CMP R0,#141660 BHI E00160B BR E00026E00020: CMP R0,#416601 BHI E001540E00026: ASL R0 CMP R0,#63000 BCS E001440 SETDR SETI MOV #E00170,R0C LDCDF (R4),R2 MODF (R0)+,R2 stcfi R3,R4 LDF #^F1,R0 DIVF (R0)+,R2 SETF0 LDCDF R2,R2 CFCC0 BEQ E00122 LDF R2,R3 MULF R3,R3o ADDF (R0)+,R3 LDF (R0)+,R1, DIVF R3,R1R ADDF R2,R1R ADDF (R0)+,R1 DIVF R1,R2R MULF #^F2,R2 SUBF R2,R00 MULF R0,R0TE00122: STF R0,-(SP) MOV (SP)+,R05 MOV (SP)+,R1, SWAB R4 CLRB R4 ASR R41 ADD R4,R0 BMI E001540 RETURN0E00144: CLR R1 MOV #^F1,R0 BR E00166E00154: TRAP 310 BR E00162E00160: TRAP 312E00162: CLR R0 CLR R1LE00166: RETURNE00170: .word 040270,125073L .word 024534,013761 .word 040470,125073 .word 024534,013761 .word 041560,056133 .word 042426,071571 .word 141100,036602 .ENDR1R ADDF R2,R1R ADDF (R0)+,R1 DIVF R1,R2R00cldleleml\l]ld*d*PL(`((#h `(*D 1 C+  f# x(x*&@ PCBP*LA& a @ȉʉ&r  @;\)8A;\)pC[\Eys@‚=10 dim a$[132]v"20 open #3, "BASTOC.BAS/RO/LN:132""30 OPEN #4, "BASTOC.WRT/WR/LN:132"40 if end #3 then 10050 input line #3, a$60 print #4, a$ 70 goto 50 100 close .TITLE FPPB .IDENT /V1.1/;FIS FLOATING POINT EMULATOR;*&;WRITTEN 15-DEC-78 BY DANIEL STEINBERG4; SRI INTERNATIONAL loc K1023-; 415 326-6200 ext.5539N;HE; MODIFIED 8-MAR-79 TO CORRECT LDF,LDCDF,LDCIF INPUT BYTE COUNT ERRORT; ; ;The basic idea is this:I; On the PDP 11/40 or 11/03 with FIS (Floating Instruction Set), the FP11TF; floating point processor op-codes are illegal instructions. RSX-11MM; provides a mechanism whereby tasks may be notified, via an SST (SynchronousM; System Trap), when an illegal instruction is encountered. The task is then I; free to handle it as it wishes, without further Executive interference. M; This emulator is entered at FPPSST when illegal instructions occur. If theTN; offending op-code is not a floating point op-code, then the emulator removesM; its entry point from the SST vector table and returns to attempt to executeeJ; the instruction again. This time, either the task itself will field theN; instruction, or the Executive will abort the task. If the offending op-codeK; is a legal FPP instruction code, the emulator will decode and execute it,iO; using the FIS instructions. As far as i know, the emulator functions exactly ); like FPP with the following exceptions:eF; 1) As of now, all arithmetic is 32-bit floating point, regardless ofC; the state of the FD-bit.....one day, 64-bit precision might bet; implemented.nF; 2) The emulator does not issue any interrupts on -0 or other errors.D; 3) Chop mode is always used, regardless of the state of the FT-bitC; 4) The FER, FID, FIUV, FIU, FIV, FIC, FT, and FMM bits of the FPS 2; (Floating Point Status register) are ignored.@; 5) The FEC (Floating Exception Code) register never contains aI; 2, 12., or 14. (floating op-code error, -0 error, maintenance trap).nE; Other errors set the FEC register and the FEA register (FloatingiH; Exception Address), and the STST instruction reads and clears theseI; locations. Thus, if STST recalls a zero from FEC, no error occurred %; since the last STST instruction.RH; 6) Note that immediate mode addresses (code: 27) are legal destination+; addresses (though they make no sense).F,; There are a few pitfalls to watch out for:D; 1) The SST vector table may be set up as a Task or Debugging LevelA; SST. There are two entry points to reflect this difference.rB; Debugging Level SST addresses are used, if they exist, beforeC; Task Level SST addresses. If a task specifies two of the samerD; type of SST vector tables, the last (in time) specified will beF; used. ODT, for instance, uses Debugging Level SSTs when the userI; task is running. To enable a Task Level SST when running under ODT,sI; the user must clear the Debugging Level SST entry first ( $#V, wherebA; # is a number from 0 to 7, corresponding to the SST number). I; [All this sounds extremely complicated because it is. The ExecutiveeC; Reference Manual for RSX sheds some light on what's goi00eml`lalbl(kddng on.]sD; Most people using this emulator will not be running ODT, so theF; call: CALL FPINIT :as the first instruction of their programsC; will effectively implement the emulator and make it invisible.u r@; 2) FPPEMULAT dynamically inserts the entry point FISSST in theG; SST vector table when it is entered, and removes it when it exits.TD; This is so that FIS overflows, underflows, and divide by zeroesD; are caught by the emulator and dealt with expediently. BecauseB; of this, it is not sufficient to place the entry point FPPSSTF; in a user SST vector table, rather than calling FPINIT or FPPINI.G; However, you could place both FPPSST and FISSST in your SST table, F; assuming that you don't intend to generate any FIS errors in yourD; own code, or you could place your own vectors in the emulator'sF; SST table (at SSTTBL), if you really want to be perverse. You're; on your own. C; 3) T-bit traps are suspended until after SST routines execute the C; RTI instruction. That means that ODT will single step throughiC; FPP instructions as though the hardware was there (nice, eh?). A; If you want to set a breakpoint in the emulator code itself, ; that's perfectly kosher.iG; 4) This code buys you nothing unless you have FIS (if anyone modifiesc5; it to work with no FIS/EIS, please let me know).tB; 5) I wrote this code trying to optimize speed and size both, andD; consequently, it is not a shining example of easy-to-read code.; Good luck.sG; I have made references to details about the FP-11 processor which areiE; only comprehensible if you have a manual for it....It is documented D; in the 1978-79 PDP11 Processor Handbook, and g-d knows where else.;hG; This emulator has successfully been incorporated into the DECUS BASICfK; program, which uses exclusively FPP instructions, by merely inserting theiK; instruction: CALL FPINIT :at the start of the program, an by modifyingn"; the floating point trap routine.;d;**** NOTE ****kI; This code is NOT position independent. The instructions and data areasrO; have been separated into two psects (FPPPUR and FPPIMP), but i've never triedt2; incorporating this code into a resident library.;e;**** ANOTHER NOTE ****oM; It might be possible to munge around with the Executive a little to includeeM; this package right in the Exec. This would mean that the Exec code to saveFN; and restore FPP status during task-switching would work just as if there wasO; an FP-11. This is probably no small task, though, and if anyone accomplishesn; it, please let me know.;Daniel Steinberg....8-MAR-79p .PSECT FPPPUR I ;PURE CODE AREA .MCALL SVTK$S,SVDB$S,ENAR$SFPINIT::C SVDB$S #SSTTBL,#8. ;SET DEBUGGING SST TABLE (USE MOST OF THE TIME)s BR FPENFPPINI::< SVTK$S #SSTTBL,#8. ;SET TASK SST TABLE (USE WITH DDT, ETC.) FPEN: ENAR$S RETURNl e=; FPP SST ENTRY....MAIN INSTRUCTION DECODE/EXECUTE DISPATCHER FPPSST:: MOV R0,SVR0 ;SAVE R0. MOV #SVPC,R0 ;GET ADDRESS OF TOP OF REG STACK MOV (SP)+,(R0)+ ;SAVE PCe MOV (SP)+,(R0) ;SAVE PS MOV #SVSP,R0 ;POINT R0 AT SVSPr MOV SP,(R0) ;SAVE SP' MOV R5,-(R0) ;AND THE REST OF THE REGSK MOV R4,-(R0)S MOV R3,-(R0)S MOV R2,-(R0)8 MOV R1,-(R0)G. CLR IL ;CLEAR SSTTBL ENTRY TO AVOID RE-ENTRY< SUB #8.,SP ;RESERVE STACK SPACE IN CASE OF D.P. -(SP) FDST" MOV SVPC,R3 ;GET PC AT INTERRUPT- MOV -(R3),R2 ;GET INSTRUCTION THAT CAUSED ITU5 MOV R3,INSPC ;SAVE INSTRUCTION ADDRESS FOR FEA LATERM SUB #170000,R2 ;FPP?S BLT CRASH ;NO....GIVE UP- MOV FPS,R1 ;GET CURRENT FP STATUS REG VALUE" BIT #7000,R2 ;ESOTERIC OPERATION? BNE TYPE3 ; YUPP BIT #700,R2 ;SIMPLE OPERATION? BNE TYPE2 ; YUP( CMP R2,#12 ;TRIVIAL OP?R& BHI CRASH ; NOPE...NONE OF THE ABOVE'TYPE1: ASL R2 ;TURN VALUE TO AN OFFSET. JMP @TBL1(R2) ;AND DISPATCHTBL1: .WORD COPYCC ;CFCCS .WORD SETF ;SETF .WORD SETI ;SETI* .WORD CRASH,CRASH,CRASH,CRASH,CRASH,CRASH .WORD SETD ;SETD .WORD SETL ;SETL A; TYPE 1 INSTRUCTION EXECUTE00e mleleml\l]ldRS#SETF: BIC #FD,R1 ;CLEAR DOUBLE BIT; BR EXFPS )SETI: BIC #FL,R1 ;CLEAR LONG INTEGER BITI BR EXFPS?SETD: BIS #FD,R1 ;SET DOUBLE, BR EXFPS SETL: BIS #FL,R1 ;SET LONG('EXFPS: BR EXIT ;DONE (THAT WAS EASY!) ,;REGACC IS CALLED BY ACCOP AND ACCRV (BELOW);INPUT: R4 - PTR TO SVR#);OUT: R4 - PTR TO AC# (ERROR IF # > 5)C=REGACC: SUB #SVR0,R4 ;CONVERT GENERAL REGISTER ADDRESS TO ACCC CMP R4,#10. ; ALLOW ACC0-5 BGT CRASH ;ELSE ERRORD ASL R4E ASL R4 ;EACH ONE IS 8 BYTESE ADD #AC0,R4 MOV R4,R5 RTS PCD L; FPP SST EXIT ROUTINES @CRASH: SUB #2,SVPC ;POINT PC BACK TO INSTRUCTION THAT FUCKED UP4 BR OUT ;AFTER RTI, SST WILL NOT GO TO FPPSST AGAIN COPYCC: MOV R1,R2 ;COPY THE FPS. BIC #177760,R2 ;CLEAR ALL BUT CONDITION CODES' BIC #17,SVPS ;CLEAR PS CONDITION CODES & BIS R2,SVPS ;AND SET THE NEW ONES IN2EXIT: MOV #FPPSST,IL ;SET UP THE SST ADDRESS AGAIN8OUT: MOV SVSP,SP ;RESTORE STACK PTR (POSSIBLY MODIFIED)' MOV #FPS,R0 ;POINT TO TOP OF REG MESSE MOV R1,(R0) ;SET FINAL FPS MOV -(R0),-(SP) ;PUSH PST MOV -(R0),-(SP) ;PUSH PC, TST -(R0) ;SKIP SVSP MOV -(R0),R5 ;RESTORE REGSB MOV -(R0),R4T MOV -(R0),R3 MOV -(R0),R2A MOV -(R0),R1O MOV -(R0),R0T CLR FIS ;NO FIS SST * RTI ;GO HOME AND STAY THERE (HOPEFULLY) C-;FPP TYPE 2 INSTRUCTION DECODING AND DISPATCHTTYPE2: CMP R2,#400 ; > STST ? BGE 1$ ;YEST CMP R2,#300 ; < STST?U BGE 2$ ; STST EXACTLYS JSR R3,OPRAND2 .WORD REGOP,OFF2 ;YES...GET A SINGLE WORD SRC/DST BR 5$1$: JSR R3,OPRANDL9 .WORD ACCOP,OFF48 ;GET A DOUBLE/QUADRUPLE WORD FSRC/FDST, BR 5$-2$: JSR R3,OPRAND ; FOR STST...REG OR 4 BYTES, .WORD REGOP,OFF4 ;GET A DOUBLE WORD SRC/DST&5$: ASR R0 ;TURN BYTE CNT TO WORD CNT ASL R2 ;SET UP FOR DISPATCHM ASL R2Y CLRB R2 SWAB R2 ASL R2T5 JSR PC,@TBL2-2(R2) ;DISPATCH (R2 NEVER HAS 0 OFFSET)R BR EXIT ;AND GO HOMETBL2: .WORD LDFPS3 .WORD STFPS .WORD STSTS .WORD CLRF .WORD TSTFD .WORD ABSFP .WORD NEGFG A-;FPP TYPE 3 INSTRUCTION DECODING AND DISPATCHL%TYPE3: CMP R2,#5000 ;SIMPLE AC/FSRC ?P BLO 40$ ;YES# MOV R2,R4 ;NO...DO SOME TWIDDLINGT" CLRB R4 ;LOOK AT JUST THE OPCODE CMP R4,#6400 ;MAP 6400 -> 5000 BLO 1$ ; 7000 -> 5400O SUB #1400,R4 ; 7400 -> 60001$: CMP R4,#5400 BLO 20$ ;AC/(SRC/DST)T" BHI 30$ ;AC/(FSRC/FDST....[~FD])(10$: JSR R3,OPRAND ;AC/(SRC/DST....[FL]) .WORD REGOP,OFF24 BR 100$)20$: JSR R3,OPRAND ;SIMPLE 2-BYTE SRC/DSTD .WORD REGOP,OFF2P BR 100$;30$: JSR R3,OPRAND ;FSRC/FDST, LENGTH DOESN'T FOLLOW FD-BITY .WORD ACCRV,OFF84 BR 100$440$: JSR R3,OPRAND ;FSRC/FDST, LENGTH FOLLOWS FD-BIT .WORD ACCOP,OFF48"100$: MOV R2,R4 ;GET OPCODE AGAIN! BIC #177477,R4 ;CLEAR ALL BUT AC7 ASR R40 ASR R4# ASR R4 ;TURN INTO OFFSET ADD #AC0,R4" BIC #17,R1 ;CLEAR N,Z,V,C IN FPS! ASR R0 ;R0 <- WORD COUNT FOR R5J- MOV #FISSST,FIS ;SET UP ROUTINE FOR FIS SSTsP CLRB R2 SWAB R2 ASL R2,' JSR PC,@TBL3-4(R2) ;DISPATCH ON OPCODEG JSR PC,TSTR3 ;SET FCCs IN FPS BR EXITTBL3: .WORD MULF .WORD MODF- .WORD ADDFA .WORD LDF .WORD SUBF: .WORD CMPFD .WORD STF .WORD DIVFW .WORD STEXP .WORD STCFI .WORD STCFD .WORD LDEXP .WORD LDCIF .WORD LDCDF E"; MAIN OPERAND DECODING DISPATCHER-OPRAND: MOV R2,R4 ;GET A COPY OF INSTRUCTION7" BIC #177770,R4 ;CLEAR ALL BUT REG ASL R4O9 ADD #SVR0,R4 ;POINT TO SAVED REG (WILL ADJUST IF MODE 0)S MOV R2,R5 ;GET ANOTHER COPYR# BIC #177707,R5 ;CLEAR ALL BUT MODEO; BEQ MODE0 ;IF 0, WHAT HAPPENS DEPENDS ON CALLER SUBR LISTR# TST (R3)+ ;SKIP MODE 0 SUBROUTINE. ASR R5 ;SET UP FOR DISPATCHC ASR R5O/ JMP @MODE-2(R5) ;AND GO DO SPECIFIC OPERATIONSMODE: .WORD MODE1L .WORD MODE2 .WORD MODE3 .WORD MODE4 .WORD MODE5 .WORD MODE6 .WORD MODE7 (;MODE 0 DISPATCHER, AND RELATED ROUTINES@MODE0: JMP @(R3)+ ;DISPATCH TO CALLERS ROUTINE TO HANDLE MODE 0(REGOP: MOV R4,R5 ;USE GENERAL REGISTERS( TST (R3)+ ;AND SKIP THE OFFSET ROUTINE#OFF2: MOV #2,R0 ;2 BYTES AVAILABLEA RTS R3 AACCOP: JSR PC,REGACC ;00eml`lalbl(kddCONVERT REGISTER ADDRESS TO FPP ACC ADDRESSA$ TST (R3)+ ;SKIP THE OFFSET ROUTINE+OFF48: MOV #4,R0 ;LENGTH DEPENDS ON FD-BITI& BIT #FD,R1 ;IF SET, DOUBLE PRECISION BEQ 1$ ;ELSE SINGLEM ASL R0O 1$: RTS R3#OFF4: MOV #4,R0 ;4 BYTES AVAILABLEI RTS R3 %ACCRV: JSR PC,REGACC ;GET ACC ADDRESS TST (R3)+ ;SKIP OFFSET ROUTINE/OFF84: MOV #4,R0 ;LENGTH IS OPPOSITE OF FD-BITG BIT #FD,R1( BNE 1$D ASL R0 1$: RTS R3+OFF24: MOV #2,R0 ;LENGTH DEPENDS ON FL-BITR BIT #FL,R1J BEQ 1$ ;LONG INTEGER IF SETA ASL R0 1$: RTS R3 A; MODE 1 - 7 DECODING ROUTINESMODE1: MOV (R4),R5 ; (R)% JMP @(R3)+ ;GO SET AVAILABLE LENGTHF#MODE2: MOV (R4),R5 ; (R)+ or #nS CMP R4,#SVPCO BNE 1$  TST (R3)+ ; #n" MOV #2,R0 ;ONLY 1 WORD AVAILABLE BR 2$31$: JSR R3,@(R3)+ ; (R)+ .... SET OFFSET AS NEEDEDF-2$: ADD R0,(R4) ;AUTO-INCREMENT THE REGISTERS RTS R3-%MODE3: MOV @(R4),R5 ; @(R)+ or @#A$3 ADD #2,(R4) ;AUTO-INCREMENT THE REG (EVEN IF PC)I JMP @(R3)+ ;AND SET OFFSETMODE4: JSR R3,@(R3)+ ; -(R) SUB R0,(R4) ;AUTO-DECREMENTD+ MOV (R4),R5 ;GET ADDRESS OF OPERAND VALUEJ RTS R3 MODE5: SUB #2,(R4) ; @-(R) MOV @(R4),R55 JMP @(R3)+ ;GET OFFSET"MODE6: MOV @SVPC,R5 ; X(R) or A1 ADD #2,SVPC ;GET NEXT WORD AND POINT PC PAST IT & ADD (R4),R5 ;ADD IN REG (EVEN IF PC) JMP @(R3)+ ;AND SET OFFSET$MODE7: MOV @SVPC,R5 ; @X(R) or @A. ADD #2,SVPC ;GET NEXT WORD AND POINT PC PAST ADD (R4),R5 ;ADD REG MOV (R5),R5 ;AND DO INDIRECT JMP @(R3)+ ;SET OFFSET R; TYPE 2 INSTRUCTION EXECUTERS LDFPS: MOV (R5),R1 ;SET NEW FPS RTS PCO.STFPS: MOV R1,(R5) ;GIVE BACK THE CURRENT FPS RTS PC8STST: MOV #FEC,R2 ;GIVE USER SOME CLUE ABOUT HIS FUCKUP1$: MOV (R2),(R5)+. CLR (R2)+ ;CLEAR FEC (AND FEA) AFTER STORAGE SOB R0,1$ RTS PCD&CLRF: MOV R5,R3 ;SAVE FOR TSTR3 LATER 1$: CLR (R5)+E SOB R0,1$ BR S1FCC)&ABSF: BIC #100000,(R5) ;CLEAR SIGN BIT BR TSTF)NEGF: TST (R5) ;IF ZERO, DON'T SET TO -0A BEQ TSTFE" ADD #100000,(R5) ;SWITCH SIGN BIT"TSTF: MOV R5,R3 ;SET UP FOR TSTR38S1FCC: BIC #17,R1 ;CLEAR ALL FCC'S (C AND V STAY CLEAR)*TSTR3: BIT #77600,(R3) ;EXPONENT ALL ZERO? BEQ 2$ ;YES; TST (R3) ;NEG? BPL 1$ ;NO BIS #FN,R1 ;YES...SET FN-BIT 1$: RTS PC#2$: CLR (R3) ;MAKE SURE IT'S CLEAR, BIS #FZ,R1 ;AND SET FZ-BIT RTS PCF T; TYPE 3 INSTRUCTION EXECUTERS%MODF: JSR PC,XXXF ;SET UP FOR FIS OPR FMUL R3 ;FISA<-PRODUCT" MOV (R3),R2 ;GET RESULT EXPONENT$ MOV 2(R3),-(R3) ;DUPLICATE A INTO B MOV R2,-(R3) ;R3 POINTS TO B ( MOV #377,R4 ;SET UP TO INTEGERIZE FISB MOVB R4,R5 ;SIGN EXTEND IN R5S* JSR PC,R2EXP ;CONVERT EXPONENT TO INTEGER BGT 5$ ;BR IF OK2 MOVB R5,R4 ;ZERO RESULT EXPECTED, SO SET R4, TOO05$: NEG R2 ;SHIFT THE R4,R5 MASK RIGHT TO CLEAR* ASHC R2,R4 ;ALL BUT INTEGER BITS IN FISB BIC R4,(R3)+ ;CLEAR HIY BIC R5,(R3) ;AND LOW MOV DST,R4 ;GET DST SUB #AC0,R4 BIS #10,R4 ;GET ACv1 ADD #AC0,R4& MOV -(R3),(R4)+ ;STORE HIGH INT(PROD)% MOV 2(R3),(R4)+ ;STORE LOW INT(PROD)( CLR (R4)+ CLR (R4)+ ;CLEAR VERY LOWU) FSUB R3 ;FISA<- PROD - INT(PROD) = FRACT" BR ATODST ;SET RESULT AND RETURN N&XXXF: JSR PC,R5TOB ;SET FSRC INTO FISB+ JSR PC,CHOPB ;AND CHOP TO SINGLE PRECISIONO" JSR PC,ACDST ;SET UP DST AND DSTL JSR PC,R4TOA ;SET AC INTO FISA ! MOV #FISB,R3 ;SET PTR FOR FIS OPR JMP CHOPA ;AND CHOP IT, TOOA%MULF: JSR PC,XXXF ;SET UP FOR FIS OP4 FMUL R3 ;MULTIPLYC BR ATODST ;AND FINISH UP%ADDF: JSR PC,XXXF ;SET UP FOR FIS OP( FADD R3 ;ADD BR ATODST ;AND FINISH UP%SUBF: JSR PC,XXXF ;SET UP FOR FIS OP< FSUB R3 ;SUBTRACTF BR ATODST ;AND FINISH UP%DIVF: JSR PC,XXXF ;SET UP FOR FIS OP  FDIV R3 ;DIVIDER BR ATODST ;AND FINISH UP'STCFD: JSR PC,R5DST ;SET UP DESTINATIONL" JSR PC,R4TOA ;AND LOAD THE SOURCE0 BR XXCDF ;ROUND IT, IF NECESSARY, AND STORE ITLDF:-LDCDF: JSR PC,R5TOA ;GET FSRC IN DESIRED MODEO" JSR PC,ACDST ;SET UP DST AND DSTL*XXCDF: CMP DSTL,#8. ;DOUBLE PRECISION DST? BGE 1$ ;YUP% JSR PC,TRNC00emleleml\l]ldA ;NO...CONVERT TO SINGLE 1$: ;GO RIGHT INTO ATODSTATODST: MOV #FISA,R4 ;SET SRCC MOV DST,R3 ;AND DSTN3 MOV R3,R2 ;R2 IS DST PTR....R3 IS FOR TSTR3 LATERIR4TOR2: MOV DSTL,R0 ;GET COUNTF1$: MOV (R4)+,(R2)+: SOB R0,1$ RTS PC  T!LDCIF: MOV (R5)+,R2 ;GET HI ORDERH BIT #FL,R1 ;LONG OR SHORT? BNE 1$ ;...LONG ( MOV R2,R3 ;SHORT--WE GOT THE LOW ORDER, SXT R2 ;EXTEND SIGN SINCE SINGLE PRECISION BR 3$*1$: CLR R3 ;CLEAR LOW ORDER, JUST IN CASE DEC R0 ;HOW MANY AVAILABLE?, BEQ 3$ ;ONLY ONE....DONE MOV (R5)+,R3 ;GET 1ST INT WDT"3$: JSR PC,ACDST ;SET DST AND DSTL$ MOV #241,R4 ;SET STARTING EXPONENT TST R2 ;NEG? BGE 5$ ;NO" BIS #400,R4 ;YES...SET HI WD NEG NEG R3 ;AND MAKE # POS ADC R2R NEG R2S) BVC 10$ ;OK...CONVERT A POSITIVE NUMBERH DEC R2 ; MAP 100000 -> 077777B BR 10$ ;AND CONVERTR5$: BGT 10$ ;NON-ZERO SRC TST R3 ;ARE THEY BOTH ZERO?I BEQ 15$ ;YES...DONEB)10$: DEC R4 ;INTEGER TO CONVERT IN R2,R3A, ASL R3 ;SHIFT UNTIL "HIDDEN BIT" COMES OUT ROL R2.% BCC 10$ ;IT'S GOTTA COME EVENTUALLY MOV R2,R5 ;COPY HIGH WORD 2 ASHC #7,R4 ;AND SHIFT IN TO MAKE A HI-ORDER WORD6 ASHC #-9.,R2 ;AND SHIFT LOW TO MAKE A LOW-ORDER WORD, MOV R4,R2 ;SET THE HIGH....RESULT IN R2,R3&15$: MOV #FISA,R0 ;SET FISA FOR ATODST MOV R2,(R0)+; MOV R3,(R0)+0 CLR (R0)+ CLR (R0)+ BR ATODST %STCFI: MOV R5,-(SP) ;SAVE DST ADDRESSB! MOV (R4)+,R2 ;GET HIGH ORDER SRC BPL 1$ ;BR IF POSE BIS #FN,R1 ;SET NEG FLAG1$: MOV (R4)+,R5 ;GET LOW ORDERM MOV R2,R4 ;AND SET HIGH ORDER % JSR PC,R2EXP ;CONVERT R2 TO EXPONENTP BLE 5$ ; RESULT IS ZERO;- MOV #16.,R3 ;16. IS UPPER EXP LIMIT IF S.P.. BIT #FL,R1F BEQ 3$ ;WHICH IT ISE% ASL R3 ;32. IS UPPER LIMIT FOR D.P.S3$: CMP R2,R3 ;IS R2 TOO BIG? BGE 7$ ;YES...OVERFLOW SUB #8.,R3 ;R3 <- 8. or 24.R' SUB R3,R2 ; ( -8. or -24. ) < R2 < 8.: BIS #200,R4 ;SET 'HIDDEN BIT'0 BIC #177400,R4 ;AND CLEAR THE EXPONENT AND SIGN# ASHC R2,R4 ;SHIFT TO PROPER PLACE$ BEQ 5$ ;ZERO BIT #FL,R1 ;LONG INTEGER?A BNE 9$ ;YES...NON-ZERO1 CLR R5 ;NO...CLR LOW SIDE IN CASE OF FUTURE NEG 2 TST R4 ;AND USE DIFFERENT CRITERIA FOR ZERO TEST BNE 9$ ; AND FINISH UP5$: CLR R4 ;ZERO RESULT CLR R5U BIS #FZ,R1 ;SET FZ-BIT, BIC #FN,R1 ;AND CLEAR FN-BIT, JUST IN CASE BR 10$ ;AND STORE RESULT'7$: BIS #FC,R1 ;OVERFLOW....SET FC-BIT MOV #ERRCNV,FEC ;SET ERROR CODE MOV INSPC,FEA ;AND ADDRESSD MOV #77777,R4 ;AND SET HIGH MOV #177777,R5F9$: BIT #FN,R1 ;NEG?Q BEQ 10$ ; NO...STORE RESULTI NEG R5 ;YES...NEG RESULT ADC R4C NEG R4 ;-OVERFLOW WORKS, TOO#10$: MOV (SP)+,R3 ;RETRIEVE DST PTRI0 MOV R4,(R3)+ ;SET HIGH ORDER (OR ALL OF RESULT) DEC R0$" BEQ CCCQ ;ONLY ONE WORD TO STORE MOV R5,(R3) ;SET LOW ORDER'CCCQ: JMP COPYCC ;COPY TO CCs AND QUITB/STEXP: JSR PC,R4EXP ;GET EXPONENT FROM AC TO R2O MOV R2,(R5) ;AND STORE IT AWAY BGT CCCQ ;AND DONE IF >0 BEQ 1$  BIS #FN,R1 ;MINUS, BR CCCQ1$: BIS #FZ,R1 ;ZEROF BR CCCQ ;COPY CCs AND QUIT $)R4EXP: MOV (R4),R2 ;GET EXPONENT INTO R2 R2EXP: ASL R2C CLRB R2 ;EXTRACT THE EXPONENT SWAB R2 SUB #200,R2 ;FROM EXCESS 200 RTS PC 4CMPF: JSR PC,R5TOB ;GET AS MUCH OF FSRC AS AVAILABLE MOV #FISB,R5 ;AND POINT TO IT, TST (R4) ; 1ST, CHECK IF BOTH ARE NEGATIVE BGE 1$ ;NOT THIS ONE TST (R5)X BGE 1$ ;NOR THIS1 MOV R5,R3 ;THEY ARE BOTH NEG...REVERSE THE TESTC" MOV R4,R5 ;BY REVERSING THE PTRS MOV R3,R4;1$: CMP (R4),(R5)+ ;COMPARE SIGN, EXPONENT, AND HI FRACTION (2$: BGT LT ;IF AC GREATER, THEN FSRC R3( ADD #4,R3 ;SKIP OVER SENDING TASK NAME( MOV SP,R5 ;ADD OF RECORD # STORE -> R5 TST R0 ;CHECK ON STATUS  BLT 3$ ;IF NEG, BRANCH) LDF (R3)+,AC0 ;RETRIEVED RECORD # -> AC0C1 MOV R3,-(SP) ;SAVE R3 BECAUSE USED IN SUBROUTINE1$ JSR PC,@#NSTORE ;STORE THE RECORD # MOV (SP)+,R3 ;RESTORE REGISTERB+ ADD #12,R5 ;MOVE R5 UP TO NEXT STORE DATAD MOV (R3)+,R4 ;STRING LEN -> R4L$ BEQ 4$ ;IF NO STRING, DON'T MODIFY" JSR PC,@#SSTORE ;STORE THE STRING 4$: ADD #24,SP ;CLEAN THE STACK' RTS PC ;AND RETURN TO CALLING PROGRAMR$3$: LDCIF R0,AC0 ;ERROR CODE -> AC0 JSR PC,@#NSTORE ;PUT IT AWAY  BR 4$ ;AND FINISH UP; @; FOLLOWING CODE SYNCHRONIZES THE SENDING OF A DATA BLOCK TO THEB; DATA BASE MANAGING PROGRAM AND THE RECEIPT OF DATA BACK FROM IT.; 'SYNC: CLEF$S #EVFL ;CLEAR EVENT FLAG 1S) MOV R2,R0 ;COPY THE ONE ADDRESS WE KNOWE1 ADD #AST-VSRDPB,R0 ;MAKE IT POINT TO AST ROUTINE; SRDA$S R0 ;DECLARE ITY DIR$ R2 ;SEND DATA TO DBM TASK$ MOV @#0,R0 ;CHECK DIRECTIVE STATUS BLT 2$ ;IF NEG, BRANCH. ALTP$S ,#STPRI ;PUT PRIORITY DOWN TO STANDBY+ WTSE$S #EVFL ;AND WAIT FOR THE EVENT FLAG &2$: SRDA$S #0 ;UN-DECLARE RECEIVE AST% ALTP$S ;BACK TO INSTALLED PRIORITYO! RTS PC ;WE'VE RECEIVED THE DATAA;T; NOW THE AST ROUTINE ;M'AST: ALTP$S ;BACK TO DEFAULT PRIORITYT% MOV R2,R0 ;COPY THE ADDRESS WE KNOWR4 ADD #VRCDPB-VSRDPB,R0 ;MAKE R0 POINT TO RECEIVE DPB MOV @#ENDUSR,R3 ;CALCULATEA# SUB @#ENUDAT,R3 ;AVAILABLE STORAGEA+ SUB #4,R3 ;SUBTRACT SPACE FOR SENDER NAMET/ CMP R3,#203 ;IS IT BIGGER THAN MAX WE CAN USEI BLE 1$ ;IF NOT, BRANCH& MOV #203,R3 ;IF SO, REPLACE WITH MAX&1$: MOV R3,R.VDBL(R0) ;AND PUT LEN AND MOV @#ENUDAT,R3 ;ADDRESS IN DPB MOV R3,R.VDBA(R0) DIR$ R0 ;RECEIVE THE DATAO& MOV @#0,R0 ;RECORD STATUS OF RECEIVE2 SETF$S #EVFL ;SET EVENT FLAG TO RESUME MAIN TASK ASTX$S ;AND EXIT FROM AST;,; SUBROUTINES ANYRET AND ALLRET; LOADABLE BASIC SUBROUTINES4; FOR RETRIEVAL OF RADIATION ONCOLOGY LEVEL1 RECORDS7; BY MATCHING EITHER ANY OR ALL OF THE MATCHING STRINGS ; BASIC CALLS:8; CALL "ANYRET"(F0,R0,R1,S$,D$,D [,D1$,D1] [,D2$,D2]...)8; CALL "ALLRET"( " " " " ); WHERE:; F0 IS RECORD INCREMENT; +2 FOR FORWARD SEARCH; -2 FOR BACKWARD SEARCHR; R0 IS RECORD # TO START FROM*; R1 IS VARIABLE TO RECEIVE FOUND RECORD # ; 0 = NONE FOUND (S$ UNCHANGED); - = FAILED DIRECTIVE STATUS/; S$ IS STRING VARIABLE TO RECEIVE FOUND RECORDE'; D$ D1$ ETC. ARE STRINGS FOR THE MATCH3; D D1 ETC. ARE CORRESPONDING COL #'S TO START ATG; NOTE:I5; THE SUM OF THE LENGTHS OF THE MATCHING STRINGS PLUSD7; 4* THE NUMBER OF STRINGS SHOULD BE LESS THAN OR EQUAL 6; TO THE RECEIVED STRING LENGTH (S$). IF NOT, THE USER; RISKS A MEMORY PROTECT ERROR.A;S6; FOR THE ROUTINE "ANYRET" A MATCH ON ANY STRING (KEY)5; WILL RETRIEVE THAT RECORD. FOR THE ROUTINE "ALLRET"N$; ALL STRINGS (KEYS) MUST MUST MATCH;$+TYPSAV: .WORD 0 ;PLACE TO SAVE TYPE OF CALL;$2ANYRET: MOV #1,TYPSAV ;REMEMBER THAT THIS IS "ANY" BR COMRET2ALLRET: MOV #2,TYPSAV ;REMEMBER THAT THIS IS "ALL";L4COMRET: JSR R4,@#GTRGPI ;GET ARGUMENTS IN PI FASHION .BYTE 1,1,2,4,0 .EVEN& MOV 30(SP),R0 ;LEN OF STRING S$ -> R0% ADD #16,R0 ;ADD LEN OF OTHER PARAMS . JSR PC,@#TSTU00 ;CHECK FOR ROOM, R5 AT ENUDAT BHIS 1$ ;IF OK, BRANCH OVFERR ;ELSE OVERFLOW ERROR00f4mg9mlalbl(kdd)1$: MOV PC,R2 ;LET'S RECORD WHERE WE ARET9PCREF1: SUB #PCREF1-VSRDPB,R2 ;AND CALCULATE START OF DPB , MOV R5,S.DRBA(R2) ;MOVE IN ADDRESS OF BLOCK' MOV #6,S.DRBL(R2) ;LEN OF OTHER PARAMS;R;; FOLLOWING CODE INSERTED TO ENABLE DEBUGGING COPIES OF THES9; DATA BASE MANAGER TO EXIST IN ACCOUNTS [205,16] (PEGGY)07; AND [205,20] (BONNIE). IF THE SIGN-ON ACCOUNT IS NOT6=; [205,15] (RADIATION ONCOLOGY) OR [205,16] (PEGGY), BONNIE'SM:; COPY OF THE DATA BASE MANAGER IS USED, I.E., [205,20] IS ; ASSUMED.;$$ CMPB @#UICSTO,#15 ;IS IT [205,15] ?( BEQ 1$ ; IF YES, DON'T CHANGE DBM NAME$ CMPB @#UICSTO,#16 ;IS IT [205,16] ?1 BEQ 5$ ; IF YES, CHANGE DBM NAME TO DBP (PEGGY)E3 MOV (PC)+,R4 ; ASSUME [205,20], PUT NEW NAME IN R4E8 .RAD50 /DBB/ ; [205,20] NAME SHOULD BE FRMDBB (BONNIE) BR 6$/5$: MOV (PC)+,R4 ; [205,16], PUT NEW NAME IN R4.0 .RAD50 /DBP/ ; NAME SHOULD BE FRMDBP (PEGGY),6$: MOV R4,S.DRTN+2(R2) ;STORE AWAY NEW NAME0 MOV R4,VRCDPB-VSRDPB+R.VDTN+2(R2) ; IN 2 PLACES1$:0;S+ MOV TYPSAV,(R5)+ ;PUT IN TYPE OF RETRIEVAL2' MOV (SP)+,(R5)+ ;MOVE IN INCREMENT AND - MOV (SP)+,(R5)+ ;DIRECTION (FLOATING NUMBER)" MOV (SP)+,(R5)+ ;AND NOW STARTING MOV (SP)+,(R5)+ ;RECORD NUMBERS* MOV @#ENUDAT,-(SP) ;SAVE END OF USER DATA MOV R5,-(SP) ;SAVE R5 MOV R2,-(SP) ;AND R2*2$: MOV R5,R4 ;CALCULATE TEMPORARY END OF, ADD #4,R4 ;USER DATA SO WE DON'T OVERWRITE MOV R4,@#ENUDAT ;SEND BUFFERS) JSR R4,@#GTRGPI ;GET SOME MORE ARGUMENTSR .BYTE 3,1,0 ;STRING AND COL #L .EVEN MOV 10(SP),R2 ;RESTORE R2 MOV 12(SP),R5 ;AND R5 LDF 4(SP),AC0 ;COL # -> AC0" STCFI AC0,(R5)+ ;INTO SEND BUFFER" MOV (SP),R0 ;LEN OF STRING -> R0" ADD #5,R0 ;ROUND UP TO NEXT WORD ASR R0 ;PLUS OTHER PARAMS@/ ADD R0,S.DRBL(R2) ;AND ADD IT TO BUFFER LENGTHP( MOV (SP)+,R0 ;LEN OF STRING -> R0 AGAIN MOV (SP)+,R3 ;ADD -> R3* MOV R0,(R5)+ ;PUT AWAY LEN IN SEND BUFFER BEQ 4$ ;IF ZERO, BRANCHD(3$: MOVB (R3)+,(R5)+ ;MOVE IN THE STRING SOB R0,3$4$: INC R5 ;ROUND UPS BIC #1,R5 ;R5* ADD #4,SP ;CLEAN OFF THE COLUMN # PARAMS MOV R5,2(SP) ;RE-SAVE R5A/ JSR PC,@#SKIP00 ;GET NEXT NON-BLANK CHAR -> R2F DEC R1 ;BACK UP TEXT PTR% CMPB R2,#', ;IS NEXT THING A COMMA?X BEQ 2$ ;IF SO, TRY FOR MORER" JSR PC,@#PARCHK ;CHECK FOR AT END MOV (SP)+,R2 ;RESTORE R2P MOV (SP)+,R5 ;AND R5 6 MOV (SP)+,@#ENUDAT ;RESTORE PREVIOUS END OF USER DATA CLR (R5)+ ;PUT IN STOPPER4# JMP COMEND ;AND GO TO COMMON CODE(END: .END THE STRING SOB R0,3$4$: INC R5 ;ROUND UPS BIC #1,R5 ;R5* ADD #4,SP ;CLEAN OFF810 ! SAMPLE USE OF DIRECTIVE MACRO TO DO GTSK$ DIRECTIVE20 DIM DP%(12),BU%(16)30 LOAD "LB:[1,202]DIRECT.ATK"40 DP%(0)=63+2*25650 CALL "GETADR"(BU%(1),DP%(1))60 ST%=070 CALL "DIRECT"(DP%,ST%)390 PRINT "TASK NAME ";R5A$(BU%(1));R5A$(BU%(2))4100 PRINT "REQ. NAME ";R5A$(BU%(5));R5A$(BU%(6)) 102 U=BU%(8)104 U1=INT(U/256)106 U2=INT(U-256*U1)$108 IF U1<0 THEN U1=U1-OCT("177400")0110 PRINT "UIC ";OCT$(U1);",";OCT$(U2)120 ! NOW GET TI INFO 130 PRINT140 DP%(0)=5+3*256150 DP%(1)=2 !LUND 155 CALL "GETADR"(BU%(1),DP%(2))160 CALL "DIRECT"(DP%,ST%)165 PRINT "TASK TI ";".170 C1=INT(BU%(1)/256) : C2=INT(BU%(1)-C1*256).175 C3=INT(BU%(2)/256) : C4=INT(BU%(2)-C3*256)$180 PRINT CHR$(C1);CHR$(C2);OCT$(C4)185 DP%(0)=3+7*2561190 DP%(1)=OCT("2540") ! GET TERM CHARACTERISTICS 195 DP%(2)=2 ! LUNU#200 DP%(3)=3+50*256 ! EV FLAG & PRIU0205 CALL "GETADR"(BU%(1),DP%(4)) ! IO STAT BLOCK210 DP%(5)=0 ! NO AST!215 DP%(6)=8 ! GET TERMINAL TYPER220 CALL "DIRECT"(DP%,ST%)'225 PRINT "TERM TYPE ";OCT$(BU%(2)))230 DP%(6)=4 ! CHANGE TO SPEEDT235 CALL "DIRECT"(DP%,ST%)'240 PRINT "TERM SPEED ";OCT$(BU%(2))(245 STOP.175 C3=INT(BU%(2)/256) : C4=INT(BU%(2)-C3*256)$180 PRINT CHR$(C1);CHR$(C2);OCT$(C4)185 DP%(0)=3+7*2561190 DP%(1)=OCT("2540") ! GET TERM CHARACTERISTICS 195 DP%(2)=2 ! LUNU#200 DP%(3)=3+50*256 ! EV FLAG & PRIU0205 CALL "GETADR"(BU%(1),DP%(4)) ! IO STAT BLOCK210 DP%(5)=0 ! NO AST!215 DP%(6)=8 ! GET TERMINAL TYPER220 CALL "DIRECT"(DP00h .GLOBL FPINIT ;GLOBAL REFERENCE ;DSS1G .ENDC ;DSS1 N; ;DSS1N; ;DSS1N; ;DSS1N; ;DSS1; ; DEFINE THIS MODULE FOR RSX11D ); IF RSX11M IS NOT DEFINED BY HEADER FILEE;E .IF NDF RSX11M RSX11D=1 .ENDC;C/; DEFINE TRAP SUBSTITUTIONS USED IN THIS MODULE ;  .MACRO TRPSUB A,B .MACRO A JSR PC,B  .ENDM .ENDM; "; NOW THE ONE TIME TRAPS USED HERE; TRPSUB CRLF CRLF00 ;DO TRPSUB PRINTL PRN00 ;PRINT LINE7 TRPSUB SKIP SKIP00 ;GET NEXT NON-BLANK OR NON-TAB CHAR ; .IF NDF TASKS2; MESSAGE LINE FOR ERROR REPORTING MODULE (NO MO:); * .GLOBL ERRR03 ERRR02 ERRR05 ERRBRN PARLST) .GLOBL P.ERCD P.LINE P.FCS P.FLNM P.FNAMF .IF DF RSX11D! .GLOBL MODPB M.OLUN M.ONUM MOLUN1 .ENDC .IFF  .IF DF RSX11D .GLOBL .MOLUN .ENDC .ENDC .IF DF SNGUSR .IF DF RSX11D .GLOBL .MOLUN .ENDC .ENDC;; DECLARE MACROS TO BE CALLEDE; .IF DF RSX11D .MCALL MODF$ MOUT$ .ENDC; DEFINE GENERAL IMPURE PSECTU;K .PSECT IMPUR,RW,CONERRR03: .ASCII /ERROR /ERRR02: .ASCII / /SERRR05: .ASCII / AT LINE / .BYTE 0 .EVEN;8; DATA BLOCK FOR MO PROCESSING AND STORAGE OF ERROR INFO;L7ERRBRN: .WORD 0 ;LINE NUMBER FOR ERROR HANDLING ROUTINE.PARLST: .WORD ERRR03 ; .WORD 0 ;ERROR CODE HERE .WORD ERRR05 ;. .WORD 0 ;LINE NUMBER HERE .WORD 0 ;FCS ERROR CODE HEREN .WORD 0 ;FILE NUMBER (LUN)R% .WORD 0 ;POINTER TO FILE NAME STRING1P.ERCD=2P.LINE=6P.FCS=10 P.FLNM=12E P.FNAM=14P .IF DF RSX11D:MOLUN: ;DEFINE PSUEDONYM FOR .MOLUN FOR SYMBOL TABLE LINK=.MOLUN: .BLKW 1 ;PLACE FOR TASK BUILDER TO FILL IN LUN FOR MO MODF$ ;DEFINE MO SYMBOLS5MESDST=SY$STM ;OUTPUT TO LOGGING DEVICE (I THINK TI) /MODPB: MOUT$ STRD,PARLST,,CONT,MESDST,,,,.MOLUN  .ENDC;.#; MATH ROUTINE IMPURE AREA (BASIC1)0;. .IF NDF TASKE .GLOBL M.I TIMBUF .ENDC*M.I: .WORD 13507 ;THIS WORD GETS MODIFIED-TIMBUF: .BLKW 8. ;BUFFER FOR TIME PARAMETERSR 2;. .IF NDF TASK0; IMPURE AREA FOR BASIC2;F# .GLOBL ATTDET STATUS Q.IOFN Q.IOPL  .ENDC;F$; MACRO CALLS FOR BASIC2 IMPURE AREA;A .MCALL QIOW$LEATTDET: QIOW$ IO.ATA,2,1,,STATUS,, ;DPB FOR ATTACH AND DETACH;STATUS: .BLKW 2  I;(; IMPURE AREA FOR BASIC3;R.; MACRO CALLS USED IN THIS PART OF IMPURE CODE;H* .MCALL FDBDF$ FDAT$A FDRC$A FDOP$A NMBLK$ .MCALL CSI$ QIO$ .IF NDF TASK;:; GLOBALS USED IN BASIC3; ( .GLOBL TRMSIZ TINPT LNKTIN INPBUF TOTPT) .GLOBL TCOUNT LNKTOT OUTBUF SOTPT SCOUNTM'00nLm?mj@mkAmlBml]ld .GLOBL LNKSAV SAVBUF OINPT LNKOLD INPTS( .GLOBL OTPT ERRADD COMFDB COMFNB LOWFLG# .GLOBL LOWNOC LOWSTR LOWLST LOWCOMC* .GLOBL CSIBLK CSDSPT CSBUFS CSBUFF CSBUFL* .GLOBL NEWLIN REMTRM OP.LEN OP.LUN OP.EOF* .GLOBL OP.RAC OP.RTP FDBSAV OUTSTA OUTQIO .GLOBL INPSTA INPQIO OLDFLG;S%; GENERAL SYSTEM POINTER AREA GLOBALS$;A% .GLOBL WORK USR ENDUSR LINENO STCOUNQ& .GLOBL RUNF BRFLAG FPEXFL ENDTXT DATI& .GLOBL RNDM ENDSTK STUDAT ENUDAT QFLG* .GLOBL LINEFL LINELN LINEHD BOLNHD DATASK) .GLOBL LASTEX STUEPT STUROU WTUNIT WTMAGP) .GLOBL STUFDB ENUSAV UNLDSV TOTPT STGOSBC# .GLOBL STFONX UICSTO MAXLUN LSTLINO;T; FLAGS FROM SET COMMAND;P* .GLOBL TRCFLG PRMTFL RPASFL WPASFL ECHOFL .GLOBL UPPFL  .ENDC;L% .SBTTL FILE CONTROL BLOCKS AND FDB'S;L";TERMINAL INPUT FILE CONTROL BLOCK; %TRMSIZ=132. ;DEFINE MAX TERMINAL SIZEB" .WORD 0 ;FLAGS WORD IN CASE USED$TINPT: .WORD INPBUF ;OUTPUT POINTER .WORD TRMSIZ ;MAX BC .WORD 0 ;UNUSEDL .WORD 0 ;ACTUAL BC .WORD INPBUF ;DATA ADDRESS .WORD 0 ;LINK BLOCK ERRA LNKTIN: .WORD 0 ;NO FDB POINTER .WORD 0 ;EOF ADDRESSINPBUF: .BLKB TRMSIZ+2 ;BUFFER;L; TERMINAL OUTPUT CONTROL BLOCK ;F"TOTPT: .WORD OUTBUF ;CHAR POINTER .WORD TRMSIZ ;MAX BC .WORD 0 ;UNUSEDL"TCOUNT: .WORD ;ACTUAL BYTE COUNT .WORD OUTBUF ;DATA ADDRESS .WORD 0 ;LINK BLOCK ERRN'LNKTOT: .WORD OUTQIO ;LINK DDB POINTERS .WORD 0 ;EOF ADDRESS%OUTBUF: .BLKB TRMSIZ+2 ;OUTPUT BUFFERC;.; SAVE OUTPUT CONTROL BLOCKA;A"SOTPT: .WORD SAVBUF ;CHAR POINTER .WORD TRMSIZ ;MAX BC .WORD 0 ;UNUSED #SCOUNT: .WORD 0 ;ACTUAL BYTE COUNTE .WORD SAVBUF ;DATA ADDRESS .WORD 0 ;LINK BLOCK ERR 'LNKSAV: .WORD COMFDB ;LINK DDB POINTER; .WORD 0 ;EOF ADDRESSSAVBUF: .BLKB TRMSIZ;U; OLD INPUT CONTROL BLOCKT; #OINPT: .WORD 0 ;NOT USED FOR INPUTE .WORD TRMSIZ ;MAX BC .WORD 0 ;UNUSEDR .WORD 0 ;ACTUAL BC .WORD INPBUF ;DATA ADDRESS .WORD 0 ;LINK BLOCK ERRU'LNKOLD: .WORD COMFDB ;LINK DDB POINTERL .WORD 0 ;EOF ADDRESS;U%; INPUT/OUTPUT CONTROL BLOCK POINTERSC;.INPT: .WORD TINPTCOTPT: .WORD TOTPTUERRADD: .WORD 0.;D;VARIOUS FDB'S;E/OUTQIO: QIOW$ IO.WVB,2,1,,OUTSTA,,FOUTSTA: .BLKW 2N;;6INPQIO: QIO$ IO.RVB,2,2,,INPSTA,,INPSTA: .BLKW 2L;TCOMFDB: FDBDF$ FDOP$A 1,CSDSPT,COMFNBE!COMFNB: NMBLK$ PROGRAM,BAS,0,SY,0 ;U; IMPURE AREA FOR CSI WORK;O CSI$U1CSIBLK: .BLKB C.SIZE ;DEFINE CSI PARAMETER BLOCKDBCSDSPT=CSIBLK+C.DSDS ;DEFINE DATA SET POINTER ASSOCIATED WITH CSI%CSBUFS=40. ;DEFINE LENGTH OF BUFFER&CSBUFF: .BLKB CSBUFS ;ALLOCATE BUFFER,CSBUFL: .WORD 0 ;LOCATION FOR ACTUAL LENGTH; !; SWITCH TARGETS FOR OVERLAY ETC.,;FNEWLIN: .WORD 0N"REMTRM: .WORD 0 ;REMARK TRIM FLAG <;B%; IMPURE AREA FOR USER FILE OPEN CODE;F= .GLOBL OP.MXL ;GLOBAL DEFINED AT TKB TIME FOR MAX # OF LUNSS(OP.LEN: .WORD 0 ;BUFFER FOR FILE LENGTH OP.LUN: .WORD 0 ;BUFFER FOR LUN,OP.EOF: .WORD 0 ;BUFFER FOR EOF LINE NUMBER$OP.RAC: .WORD 0 ;RECORD ACCESS WORD"OP.RTP: .WORD 0 ;RECORD TYPE WORDFDBSAV: .WORD 0;U; GENERAL SYSTEM POINTER AREAF;%WORK: .WORD 0 ;TEMP TEXT POINTER SAVEE8LINEHD: .WORD 0 ;POINTER TO LINE HEADER FOR CURRENT LINE+LINENO: .WORD 0 ;TEMPORARY LINE NUMBER CELL1STCOUN: .WORD 0 ;STATEMENT POSITION COUNT IN LINE5LSTLIN: .WORD 0 ;LAST PROGRAM LINE # TYPED OR READ INFRUNF: .WORD 0 ;RUN FLAG; BRFLAG: .WORD 0 ;BREAK (^C) FLAG/FPEXFL: .WORD 0 ;FLOATING POINT EXCEPTION FLAGSFRNDM: .WORD 1 ;RANDOMIZE WORDR ENDSTK: .WORD 0 ;BOTTOM OF STACK"QFLG: .BYTE 0 ;FLAG FOR MCR PRINT;RJ; FOLLOWING FLAG BYTES MUST BE IN ORDER CORRESPONDING TO SET COMMAND TABLE;S$TRCFLG: .BYTE 0 ;FLAG FOR TRACE MODE+PRMTFL: .BYTE 1 ;FLAG FOR ? PROMPT ON INPUTM#RPASFL: .BYTE 0 ;READ PASS ALL FLAGR$WPASFL: .BYTE 0 ;WRITE PASS ALL FLAGECHOFL: .BYTE 1 ;READ ECHO FLAGI+UPPFL: .BYTE 0 ;CONVERT LOWER TO UPPER FLAGA; .EVEN;LOWFLG: .WORD 0 ;FLAG FOR NO LOWER CASE CONVERSION ON INPUTE;LOWNOC=1 ;TRUE=DOING STRING READ, DON'T CONVERT LOWER CASE 3LOWSTR=2 ;TRUE=READING PROG00nTmEmlalbl(kddRAM AND IN ASCII STRING3LOWLST=4 ;TRUE=LISTING PROGRAM AND IN ASCII STRIMGD=LOWCOM=10 ;TRUE=READING/LISTING PROGRAM AND IN COMMENT FIELDODDATASK: .WORD 0 ;SEARCHING FOR DATA STATEMENT AND IN QUOTE/REM FIELD,LINEFL: .WORD 0 ;FLAG FOR INPUT LINE COMMAND.LINELN: .WORD 0 ;LENGTH OF LINE FOR INPUT LINE/LASTEX: .WORD 0 ;LAST LINE EXECUTED BEFORE STOPV8UICSTO: .WORD 0 ;PLACE TO STORE UIC WE ARE RUNNING UNDER8MAXLUN: .WORD 0 ;PLACE TO STORE MAX LUN ALLOCATED BY TKB3OLDFLG: .WORD 0 ;SPECIAL FLAG FOR PGM BEING READ INC;S5STUEPT: .WORD CALNAM ;START OF USER ENTRY POINT TABLER5STUROU: .WORD 0 ;START OF USER DEFINED MACRO ROUTINESO(USR: .WORD 0 ;START OF USER PROGRAM TEXT)ENDTXT: .WORD 0 ;END OF USER PROGRAM TEXTI'BOLNHD: .WORD 0 ;BOTTOM OF LINE HEADERSD(STUDAT: .WORD 0 ;START OF USER DATA AREA&ENUDAT: .WORD 0 ;END OF USER DATA AREA/STGOSB: .WORD 0 ;START OF GOSUB/RETURN POINTERS .STFONX: .WORD 0 ;START OF FOR/NEXT CTRL BLOCKS'STUFDB: .WORD 0 ;START OF USER FDB AREAG+ENDUSR: .WORD 0 ;END OF BASIC TASK AREA ANDC ;END OF USER FDB AREA-DATI: .WORD 0 ;DATA POINTER (OFFSET FROM USR)R7ENUSAV: .WORD 0 ;SAVE LOCATION FOR ENUDAT IN CASE ERROR;*UNLDSV: .WORD 0 ;SAVED LOCATION FOR UNLOAD;D'WTUNIT: .WORD 0 ;UNITS FOR WAIT TIMEOUTB'WTMAG: .WORD 0 ;CORRESPONDING MAGNITUDES T .IF NDF TASKR;.; IMPURE AREA FOR QUESTION PROCESSING ROUTINES;R% .GLOBL MPARLS QLUN QSTAT QNAM STROUTT .GLOBL ANS1 STRIN COUNT .ENDCMPARLS:S.QLUN: .BLKW 2 ;INPUT LUN FOR QUESTION LIBRARYQSTAT: .BLKW 5 ;OUTPUT STATUS#QNAM: .BLKW 2 ;INPUT QUESTION NAMEA(STROUT: .BLKW 5 ;OUTPUT STRING VARIABLE#ANS1: .BLKW 2 ;INPUT NUMERIC VALUER;STRIN=STROUT ;INPUT STRING FOR DISPLAY IN FRONT OF MC ANSN,COUNT=STRIN+4 ;COUNT OF CHARS PER RESPONSE;B'; START OF PSECT FOR EVENTUAL USER AREAS;T> .PSECT $$$$US,RW,CON,REL ;PSECT TO DEFINE END OF USER STORAGEENDBAS:1 .BYTE S.EOL1 ;LEADING LINE FEED FOR USER PROGRAM1;R; MACROS USED IN INIT CODE;N( .MCALL DIR$ SVTK$S SRDA$S SFPA$S FINIT$) .MCALL GTSK$S GLUN$S OPEN$W GMCR$ CSI$SWK .MCALL CSI$ND CSI$SV FSRSZ$,MSG001: .ASCII /RSX BASIC/<15><12>/VERSION / .BYTE 0 .EVEN .SBTTL BEGIN - INIT CODE ;N; BASIC INITIALIZATION CODEN7; THIS CODE RESIDES IN THE USER'S AREA AND IS OVERLAYEDE"; BY THE USER TEXT AND USER STACK.-; ONLY ONCE EXECUTED CODE MAY BE HERE!!!!!!!!TF .GLOBL BEGIN ;DSS1N; ;DSS1NBEGIN: ;DSS1= .IF DF,FPPEMU ;IF FPP EMULATION ;DSS1Y= JSR PC,FPINIT ;SET DEBUGGING SST TABLE FOR EMULATOR ;DSS1A6 .IFF ;IF NOT ;DSS1< LDFPS #3400 ;SET FPP STATUS REG FOR INTERRUPTS ;DSS1? SFPA$S #FPEXTR ;SPECIFY FLOATING POINT EXCEPTION AST ;DSS1 G .ENDC ;DSS1 F .IF NDF PRO ;DSS1= DIR$ #MCRDPB ;GET MCR COMMAND LINE (JUST TO CLEAR) ;DSS1,A MOV @#$DSW,MCRCNT ;GET CHAR COUNT FROM DSW ;DSS1N .ENDCB SVTK$S #VECTAB,#8. ;SET UP SST VECTOR TABLE ;DSS1G FINIT$ ;**-6E% GTSK$S #TSKPAR ;GET TASK PARAMETERSP, BIC #1,TSKPAR+G.TSTS ;MAKE SURE END IS EVEN, MOV TSKPAR+G.TSTS,R0 ;AND PUT IN ITS PLACEN ;DSS1A SUB #2,R0 ;***********ADJUST ;DSS1LN ;DSS19 MOV TSKPAR+G.TSPC,UICSTO ;STORE UIC WE ARE RUNNING UNDER 3 MOV TSKPAR+G.TSNL,MAXLUN ;AND MAX LUN ALLOC BY TKB  MOV R0,ENDUSR MOV R0,BOLNHD+ MOV R0,STUDAT ;SET UP USER DATA AREA STARTP MOV R0,ENUDAT ;AND ENDM& MOV R0,ENUSAV ;AND ERROR SAVE POINTER, MOV R0,STUFDB ;AND ALSO START OF USER FDB'S. MOV R0,STGOSB ;START OF GOSUB/RETURN POINTERS- MOV R0,STFONX ;START OF FOR/NEXT CTRL BLOCKS 00n\mocm@mkAmlBml]ld) GLUN$S #2,#TSKPAR ;GET TERMINAL LUN INFO $ MOV TSKPAR+12,R1 ;LEN OF LINE IN R13 CMP #TRMSIZ,R1 ;CAN ONLY HANDLE MAX TERMINAL WIDTHC BGE 1$E MOV #TRMSIZ,R1N61$: MOV R1,TOTPT+2 ;PUT IT IN CONTROL BLOCK FOR OUTPUT MOV R1,TINPT+2 ;AND FOR INPUT: MOV #ENDBAS,R1 ;SET BEGINNING OF USER AREA AT END OF CODE! MOV R1,USR ;SET UP TEXT POINTER;% MOV R1,UNLDSV ;SET UP UNLOAD POINTER;* MOV R1,STUROU ;AND START OF USER ROUTINES% MOV R1,R5 ;SET UP USER LIST POINTERR/ MOVB #S.EOL1,(R5)+ ;WITH LF IN FIRST TEXT BYTE MOV R5,ENDTXT ;SAVE FOR RESTART MOV SP,ENDSTK ;SAVE FOR ZAPPING# CLR LINENO ;CLEAR THE LINE NUMBERE- MOV #MCRDPB+G.MCRB,R1 ;START OF BUFFER -> R1N" MOV R1,R3 ;DUPLICATE START IN R3 MOV MCRCNT,R0 ;LEN IN R0R ADD R0,R3 ;R3 POINTS PAST ENDN"2$: MOVB (R1)+,R2 ;NEXT CHAR IN R2 CMPB R2,#40 ;LOOK FOR SPACEE BEQ 3$ ;BR IF FOUNDV# CMPB R2,#11 ;ELSE IT MIGHT BE TABM BEQ 3$ ;BR IF FOUND  SOB R0,2$ ;KEEP LOOKING5+ BR BEGIN1 ;NOTHING SPECIAL, SO DO MESSAGER)3$: SKIP ;GET NEXT NON-BLANK CHAR -> R2N DEC R1 ;BACK UP POINTERV' CMPB R2,#'? ;IS IT ONE LINE MCR PRINT  BEQ 4$ ;IF SO, BRANCH*5$: SUB R1,R3 ;GET LENGTH OF STRING -> R3& MOV R3,R4 ;PUT IT IN PROPER REGISTER' BEQ BEGIN1 ;IF ZERO, DO REGULAR STARTR MOV R1,R3 ;ADDRESS IN R3, MOV #STRSWT,R2 ;STARTING SWITCH TABLE IN R2( JSR PC,CSINT0 ;INTERPRET COMMAND STRING% JMP OLD02 ;GO FINISH AS OLD COMMAND3%4$: MOVB #1,QFLG ;SET MCR PRINT FLAGK MOV R3,R0 ;END ADDRESS -> R09 MOV #MCRDPB+G.MCRB+80.,ENDTXT ;DON'T WIPE OUT MCR BUFFERR MOV ENDTXT,R5 ;SAME GOES FOR R5( MOV #S.EOL1,(R5)+ ;COPY ABOVE PROCEDURE1 MOV #MCRCNT+4,R2 ;FAKE OUT R2 INTO THINKING IT'SO' MOV R1,MCRCNT ;IN A DATA CONTROL BLOCKO, CLRB -1(R1) ;KLUDGE SO LINE NOT MOVED OVER& MOV #INIT01,-(SP) ;ADDRESS FOR RETURN* MOV R0,-(SP) ;JUST TO KEEP STACK STRAIGHT( JMP PCK03 ;GO CHECK STRING AND EXECUTE'BEGIN1: MOV #MSG001,R0 ;INITIAL MESSAGE$ PRINTL,8 MOV #IDNTFY,R0 ;GET IDENTIFICATION STRING ADDRESS -> R0 PRINTL ;PRINT IT OUT, CRLF ;AND TERMINATE ITB JMP INIT00E5MCRCNT: .WORD 1 ;COUNTER FOR MCR COMMAND LINE BUFFERO .IF NDF PRO MCRDPB: GMCR$R .ENDC-TSKPAR: .BLKW 20 ;BUFFER FOR TASK PARAMETERSA!STRSWT: CSI$SW RN,1,RUNF,,,STRSVT  CSI$SW RT,1,REMTRMO CSI$SW CO,2,REMTRM1 CSI$NDDSTRSVT: CSI$SV DECIMAL,LINENO,2J CSI$NDE;TC; THE FOLLOWING LINE SHOULD BE INCLUDED ONLY IN THE FINAL TASK LINKM; THEREFORE THE CONDITIONALP;T .IF DF TASK ! SNGUSRT, FSRSZ$ 6,512.*6 ;ALLOW 6 OPEN FILES AT ONCE .ENDC ;,K; THE FOLLOWING MACRO IS USED TO GENERATE TABLE ENTRIES IN A PSECT ($$$$UR) +; WHICH IMMEDIATELY PRECEDES THE USER AREA.M .PSECT $$$$UR,RW,I,GBL,REL,CONBCALNAM:  .MACRO CALTBL NAMES .NCHR $$$CH1,NAME .IF GT,<$$$CH1-6> .ERRORR .ENDC .RAD50 /NAME/ .GLOBL NAME .IF LE,<$$$CH1-3> .WORD 0 .ENDC .WORD NAME  .ENDM;IE; FOLLOWING ARE THE ENTRY POINTS FOR THE QUESTION PROCESSING ROUTINESD;O) CALTBL INSTRG ;INSERT STRING SUBROUTINE,& CALTBL MDIS ;DEFINE CALL ENTRY POINT CALTBL CDIS CALTBL RDIS CALTBL MPOS CALTBL CPOS CALTBL RPOS CALTBL MQTXTR CALTBL CQTXTE CALTBL RQTXTS CALTBL MATXTM CALTBL CATXTR CALTBL RATXTO CALTBL CQNAM. CALTBL RQNAMM+ ;CONDITIONAL TAKEN OUT CAUSE 11M NOW CAN. ;DO A SPAWN' CALTBL SPAWNB ;THE BASIC SPAWN ROUTINE$ .END BEGIND 0 .ENDC .WORD NAME  .ENDM;IE; FOLLOWING ARE THE ENTRY POINTS FOR THE QUESTION PROCESSING ROUTINESD;O) CALTBL INSTRG ;INSERT STRING SUBROUTINE,& CALTBL MDIS ;DEFINE CALL ENTRY POINT CALTBL CDIS CALTBL zX:O%Dy:΁@y:ρ@s@)qv@p@:2@K*}@p @|Q @(2@Z@%{_@zxh@:a @N*By:΁$RNVRT>CO>P. X:V  X:> X:> X:Pd:Qviv)qvSvOvsvS | IMPURN 000000 MODULE NAME 000> 21FE81 000000 VERSION ID 000> . ABS. 000000 P-SECT NAME 104> ANS1 002662 GLOBAL SYMBOL 110> ATTDET 001116 GLOBAL SYMBOL 110> BOLNHD 002576 GLOBAL SYMBOL 110> BRFLAG 002530 GLOBAL SYMBOL 110> COMFDB 002150 GLOBAL SYMBOL 110> COMFNB 002310 GLOBAL SYMBOL 110> COUNT 002654 GLOBAL SYMBOL 110> CSBUFF 002422 GLOBAL SYMBOL 110> CSBUFL 002472 GLOBAL SYMBOL 110> CSDSPT 002354 GLOBAL00rlmcm@mkAmlBml]ld SYMBOL 110> CSIBLK 002346 GLOBAL SYMBOL 110> DATI 002614 GLOBAL SYMBOL 110> ECHOFL 002545 GLOBAL SYMBOL 110> ENDSTK 002536 GLOBAL SYMBOL 110> ENDTXT 002574 GLOBAL SYMBOL 110> ENDUSR 002612 GLOBAL SYMBOL 110> ENUDAT 002602 GLOBAL SYMBOL 110> ENUSAV 002616 GLOBAL SYMBOL 110> ERRADD 002066 GLOBAL SYMBOL 110> ERRBRN 001026 GLOBAL SYMBOL 110> ERRR02 001006 GLOBAL SYMBOL 110> ERRR03 001000 GLOBAL SYMBOL 110> ERRR05 001014 GLOBAL SYMBOL 110> FDBSAV 002512 GLOBAL SYMBOL 110> FPEXFL 002532 GLOBAL SYMBOL 110> INPBUF 001162 GLOBAL SYMBOL 110> INPQIO 002116 GLOBAL SYMBOL 110> INPSTA 002144 GLOBAL SYMBOL 110> INPT 002062 GLOBAL SYMBOL 110> LASTEX 002556 GLOBAL SYMBOL 110> LINEFL 002552 GLOBAL SYMBOL 110> LINEHD 002516 GLOBAL SYMBOL 110> LINELN 002554 GLOBAL SYMBOL 110> LINENO 002520 GLOBAL SYMBOL 110> LNKOLD 002056 GLOBAL SYMBOL 110> LNKSAV 001632 GLOBAL SYMBOL 110> LNKTIN 001156 GLOBAL SYMBOL 110> LNKTOT 001404 GLOBAL SYMBOL 110> LOWFLG 002550 GLOBAL SYMBOL 110> LSTLIN 002524 GLOBAL SYMBOL 110> MAXLUN 002562 GLOBAL SYMBOL 110> MODPB 001050 GLOBAL SYMBOL 110> MOLUN 001046 GLOBAL SYMBOL 110> MPARLS 002626 GLOBAL SYMBOL 110> M.I 001074 GLOBAL SYMBOL 110> NEWLIN 002474 GLOBAL SYMBOL 110> OINPT 002042 GLOBAL SYMBOL 110> OLDFLG 002564 GLOBAL SYMBOL 110> OP.EOF 002504 GLOBAL SYMBOL 110> OP.LEN 002500 GLOBAL SYMBOL 110> OP.LUN 002502 GLOBAL SYMBOL 110> OP.RAC 002506 GLOBAL SYMBOL 110 @ LISTING OF IMPURNOMO.STB 06/28/85 15:11:11@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> OP.RTP 002510 GLOBAL SYMBOL 110> OTPT 002064 GLOBAL SYMBOL 110> OUTBUF 001410 GLOBAL SYMBOL 110> OUTQIO 002070 GLOBAL SYMBOL 110> OUTSTA 002112 GLOBAL SYMBOL 110> PARLST 001030 GLOBAL SYMBOL 110> PRMTFL 002542 GLOBAL SYMBOL 110> QFLG 002540 GLOBAL SYMBOL 110> QLUN 002626 GLOBAL SYMBOL 110> QNAM 002644 GLOBAL SYMBOL 110> QSTAT 002632 GLOBAL SYMBOL 110> REMTRM 002476 GLOBAL SYMBOL 110> RNDM 002534 GLOBAL SYMBOL 110> RPASFL 002543 GLOBAL SYMBOL 110> RUNF 002526 GLOBAL SYMBOL 110> SAVBUF 001636 GLOBAL SYMBOL 110> SCOUNT 001624 GLOBAL SYMBOL 110> SOTPT 001616 GLOBAL SYMBOL 110> STATUS 000rtmgmqhmrjml(kdd01134 GLOBAL SYMBOL 110> STCOUN 002522 GLOBAL SYMBOL 110> STFONX 002606 GLOBAL SYMBOL 110> STGOSB 002604 GLOBAL SYMBOL 110> STRIN 002650 GLOBAL SYMBOL 110> STROUT 002650 GLOBAL SYMBOL 110> STUDAT 002600 GLOBAL SYMBOL 110> STUEPT 002566 GLOBAL SYMBOL 110> STUFDB 002610 GLOBAL SYMBOL 110> STUROU 002570 GLOBAL SYMBOL 110> TCOUNT 001376 GLOBAL SYMBOL 110> TIMBUF 001076 GLOBAL SYMBOL 110> TINPT 001142 GLOBAL SYMBOL 110> TOTPT 001370 GLOBAL SYMBOL 110> TRCFLG 002541 GLOBAL SYMBOL 110> UICSTO 002560 GLOBAL SYMBOL 110> UNLDSV 002620 GLOBAL SYMBOL 110> UPPFL 002546 GLOBAL SYMBOL 110> USR 002572 GLOBAL SYMBOL 110> WORK 002514 GLOBAL SYMBOL 110> WPASFL 002544 GLOBAL SYMBOL 110> WTMAG 002624 GLOBAL SYMBOL 110> WTUNIT 002622 GLOBAL SYMBOL 110> BEGIN 003054 GLOBAL SYMBOL 110> CSBUFS 000050 GLOBAL SYMBOL 110> F1.ACR 000001 GLOBAL SYMBOL 110> F1.BTW 000002 GLOBAL SYMBOL 110> F1.BUF 000004 GLOBAL SYMBOL 110> F1.CCO 000020 GLOBAL SYMBOL 110> F1.ESQ 000040 GLOBAL SYMBOL 110> F1.HLD 000100 GLOBAL SYMBOL 110> F1.LWC 000200 GLOBAL SYMBOL 110> F1.RNE 000400 GLOBAL SYMBOL 110> F1.RPR 001000 GLOBAL SYMBOL 110> F1.RST 002000 GLOBAL SYMBOL 110> F1.RUB 004000 GLOBAL SYMBOL 110> F1.SYN 010000 GLOBAL SYMBOL 110 @ LISTING OF IMPURNOMO.STB 06/28/85 15:11:15@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> F1.TRW 020000 GLOBAL SYMBOL 110> F1.UIA 000010 GLOBAL SYMBOL 110> F1.UTB 040000 GLOBAL SYMBOL 110> F1.VBF 100000 GLOBAL SYMBOL 110> F2.ALT 000020 GLOBAL SYMBOL 110> F2.CUP 000100 GLOBAL SYMBOL 110> F2.DCH 000004 GLOBAL SYMBOL 110> F2.DKL 000010 GLOBAL SYMBOL 110> F2.FDX 000200 GLOBAL SYMBOL 110> F2.GCH 000002 GLOBAL SYMBOL 110> F2.SCH 000001 GLOBAL SYMBOL 110> F2.SFF 000040 GLOBAL SYMBOL 110> IE.ABO 177761 GLOBAL SYMBOL 110> IE.ACT 177771 GLOBAL SYMBOL 110> IE.ADP 177636 GLOBAL SYMBOL 110> IE.ALC 177654 GLOBAL SYMBOL 110> IE.ALG 177654 GLOBAL SYMBOL 110> IE.ALN 177736 GLOBAL SYMBOL 110> IE.AST 177660 GLOBAL SYMBOL 110> IE.BAD 177777 GLOBAL SYMBOL 110> IE.BBE 177710 GLOBAL SYMBOL 110> IE.BCC 177676 GLOBAL SYMBOL 110> IE.BDI 177714 GLOBAL SYMBOL 110> IE.BDR 177716 GLOBAL SYMBOL 110> 00r|mcm@mkAmlBml]ld IE.BDV 177711 GLOBAL SYMBOL 110> IE.BHD 177700 GLOBAL SYMBOL 110> IE.BLB 177672 GLOBAL SYMBOL 110> IE.BLK 177754 GLOBAL SYMBOL 110> IE.BNM 177712 GLOBAL SYMBOL 110> IE.BTF 177664 GLOBAL SYMBOL 110> IE.BTP 177725 GLOBAL SYMBOL 110> IE.BVR 177701 GLOBAL SYMBOL 110> IE.BYT 177755 GLOBAL SYMBOL 110> IE.CKP 177766 GLOBAL SYMBOL 110> IE.CKS 177742 GLOBAL SYMBOL 110> IE.CLO 177732 GLOBAL SYMBOL 110> IE.CNR 177667 GLOBAL SYMBOL 110> IE.CON 177752 GLOBAL SYMBOL 110> IE.DAA 177770 GLOBAL SYMBOL 110> IE.DAO 177763 GLOBAL SYMBOL 110> IE.DFU 177750 GLOBAL SYMBOL 110> IE.DNA 177771 GLOBAL SYMBOL 110> IE.DNR 177775 GLOBAL SYMBOL 110> IE.DSQ 177646 GLOBAL SYMBOL 110> IE.DUN 177767 GLOBAL SYMBOL 110> IE.DUP 177707 GLOBAL SYMBOL 110> IE.EOF 177766 GLOBAL SYMBOL 110> IE.EOT 177702 GLOBAL SYMBOL 110> IE.EOV 177765 GLOBAL SYMBOL 110> IE.EXP 177665 GLOBAL SYMBOL 110> IE.FEX 177717 GLOBAL SYMBOL 110> IE.FHE 177705 GLOBAL SYMBOL 110> IE.FIX 177767 GLOBAL SYMBOL 110> IE.FLG 177647 GLOBAL SYMBOL 110> IE.FLN 177657 GLOBAL SYMBOL 110 @ LISTING OF IMPURNOMO.STB 06/28/85 15:11:20@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> IE.FOP 177713 GLOBAL SYMBOL 110> IE.HFU 177744 GLOBAL SYMBOL 110> IE.HWR 177772 GLOBAL SYMBOL 110> IE.IBS 177647 GLOBAL SYMBOL 110> IE.ICE 177721 GLOBAL SYMBOL 110> IE.IDU 177644 GLOBAL SYMBOL 110> IE.IEF 177637 GLOBAL SYMBOL 110> IE.IES 177656 GLOBAL SYMBOL 110> IE.IFC 177776 GLOBAL SYMBOL 110> IE.IFU 177747 GLOBAL SYMBOL 110> IE.ILL 177726 GLOBAL SYMBOL 110> IE.ILU 177640 GLOBAL SYMBOL 110> IE.ILV 177755 GLOBAL SYMBOL 110> IE.INS 177776 GLOBAL SYMBOL 110> IE.IOP 177655 GLOBAL SYMBOL 110> IE.IPR 177641 GLOBAL SYMBOL 110> IE.ISQ 177703 GLOBAL SYMBOL 110> IE.ITI 177643 GLOBAL SYMBOL 110> IE.ITP 177650 GLOBAL SYMBOL 110> IE.ITS 177770 GLOBAL SYMBOL 110> IE.IUI 177645 GLOBAL SYMBOL 110> IE.LCK 177745 GLOBAL SYMBOL 110> IE.LNL 177646 GLOBAL SYMBOL 110> IE.MAP 177657 GLOBAL SYMBOL 110> IE.MOD 177753 GLOBAL SYMBOL 110> IE.NBF 177731 GLOBAL SYMBOL 110> IE.NBK 177727 GLOBAL SYMBOL 110> IE.NDR 177670 GLOBAL SYMBOL 110> IE.NFI 177704 GLOBAL SYMBOL 110> IE.NFW 177673 GLOBAL SYMBOL 00rmgmqhmrjml(kdd 110> IE.NLK 177661 GLOBAL SYMBOL 110> IE.NLN 177733 GLOBAL SYMBOL 110> IE.NNC 177663 GLOBAL SYMBOL 110> IE.NNL 177662 GLOBAL SYMBOL 110> IE.NNN 177674 GLOBAL SYMBOL 110> IE.NOD 177751 GLOBAL SYMBOL 110> IE.NSF 177746 GLOBAL SYMBOL 110> IE.NST 177660 GLOBAL SYMBOL 110> IE.NSW 177756 GLOBAL SYMBOL 110> IE.NTR 177651 GLOBAL SYMBOL 110> IE.NVR 177652 GLOBAL SYMBOL 110> IE.NVW 177651 GLOBAL SYMBOL 110> IE.OFL 177677 GLOBAL SYMBOL 110> IE.ONL 177675 GLOBAL SYMBOL 110> IE.ONP 177773 GLOBAL SYMBOL 110> IE.OVR 177756 GLOBAL SYMBOL 110> IE.PES 177655 GLOBAL SYMBOL 110> IE.PNS 177642 GLOBAL SYMBOL 110> IE.PRI 177760 GLOBAL SYMBOL 110> IE.PTS 177775 GLOBAL SYMBOL 110> IE.RAC 177724 GLOBAL SYMBOL 110> IE.RAT 177723 GLOBAL SYMBOL 110> IE.RBG 177730 GLOBAL SYMBOL 110> IE.RBS 177761 GLOBAL SYMBOL 110> IE.RCN 177722 GLOBAL SYMBOL 110 @ LISTING OF IMPURNOMO.STB 06/28/85 15:11:25@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> IE.REJ 177650 GLOBAL SYMBOL 110> IE.RER 177740 GLOBAL SYMBOL 110> IE.RNM 177715 GLOBAL SYMBOL 110> IE.RSU 177757 GLOBAL SYMBOL 110> IE.SDP 177635 GLOBAL SYMBOL 110> IE.SNC 177735 GLOBAL SYMBOL 110> IE.SPC 177772 GLOBAL SYMBOL 110> IE.SQC 177734 GLOBAL SYMBOL 110> IE.SRE 177762 GLOBAL SYMBOL 110> IE.STK 177706 GLOBAL SYMBOL 110> IE.TCH 177765 GLOBAL SYMBOL 110> IE.TMM 177671 GLOBAL SYMBOL 110> IE.TMO 177666 GLOBAL SYMBOL 110> IE.ULK 177653 GLOBAL SYMBOL 110> IE.ULN 177773 GLOBAL SYMBOL 110> IE.UNS 177774 GLOBAL SYMBOL 110> IE.UPN 177777 GLOBAL SYMBOL 110> IE.VER 177774 GLOBAL SYMBOL 110> IE.WAC 177743 GLOBAL SYMBOL 110> IE.WAT 177741 GLOBAL SYMBOL 110> IE.WCK 177652 GLOBAL SYMBOL 110> IE.WER 177737 GLOBAL SYMBOL 110> IE.WLK 177764 GLOBAL SYMBOL 110> IE.WOV 177653 GLOBAL SYMBOL 110> IE.2DV 177720 GLOBAL SYMBOL 110> IO.ACE 007400 GLOBAL SYMBOL 110> IO.ACR 006400 GLOBAL SYMBOL 110> IO.ACW 007000 GLOBAL SYMBOL 110> IO.ADS 014000 GLOBAL SYMBOL 110> IO.APC 014000 GLOBAL SYMBOL 110> IO.APV 014010 GLOBAL SYMBOL 110> IO.ATA 001410 GLOBAL SYMBOL 110> IO.ATF 001000 GLOBAL SYMBOL 110> IO.ATT 001400 GLOBAL SYMBOL 110> IO.ATX 000400 GLOBAL SYMBOL 110> IO.BLS 004010 00rmcm@mkAmlBml]ld GLOBAL SYMBOL 110> IO.CAS 015420 GLOBAL SYMBOL 110> IO.CBO 015510 GLOBAL SYMBOL 110> IO.CCI 014000 GLOBAL SYMBOL 110> IO.CCO 000440 GLOBAL SYMBOL 110> IO.CER 004200 GLOBAL SYMBOL 110> IO.CEW 004210 GLOBAL SYMBOL 110> IO.CIN 016500 GLOBAL SYMBOL 110> IO.CLK 015000 GLOBAL SYMBOL 110> IO.CLN 003400 GLOBAL SYMBOL 110> IO.CNT 017000 GLOBAL SYMBOL 110> IO.CON 015400 GLOBAL SYMBOL 110> IO.CPR 015410 GLOBAL SYMBOL 110> IO.CPW 016520 GLOBAL SYMBOL 110> IO.CRC 001040 GLOBAL SYMBOL 110> IO.CRE 012000 GLOBAL SYMBOL 110> IO.CRJ 015440 GLOBAL SYMBOL 110> IO.CRX 014400 GLOBAL SYMBOL 110> IO.CSI 013000 GLOBAL SYMBOL 110> IO.CSM 016470 GLOBAL SYMBOL 110 @ LISTING OF IMPURNOMO.STB 06/28/85 15:11:30@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> IO.CSR 015000 GLOBAL SYMBOL 110> IO.CTI 015400 GLOBAL SYMBOL 110> IO.CTL 016400 GLOBAL SYMBOL 110> IO.CTR 015610 GLOBAL SYMBOL 110> IO.CTY 003400 GLOBAL SYMBOL 110> IO.DAC 010000 GLOBAL SYMBOL 110> IO.DCI 014400 GLOBAL SYMBOL 110> IO.DEL 012400 GLOBAL SYMBOL 110> IO.DET 002000 GLOBAL SYMBOL 110> IO.DGN 004150 GLOBAL SYMBOL 110> IO.DIS 016000 GLOBAL SYMBOL 110> IO.DLB 016540 GLOBAL SYMBOL 110> IO.DPT 016010 GLOBAL SYMBOL 110> IO.DRX 015000 GLOBAL SYMBOL 110> IO.DSE 003040 GLOBAL SYMBOL 110> IO.DSI 013400 GLOBAL SYMBOL 110> IO.DTI 016000 GLOBAL SYMBOL 110> IO.DTY 006400 GLOBAL SYMBOL 110> IO.ENA 006000 GLOBAL SYMBOL 110> IO.EOF 003000 GLOBAL SYMBOL 110> IO.ERS 003020 GLOBAL SYMBOL 110> IO.EXT 011400 GLOBAL SYMBOL 110> IO.FDX 003020 GLOBAL SYMBOL 110> IO.FLN 012400 GLOBAL SYMBOL 110> IO.FNA 004400 GLOBAL SYMBOL 110> IO.GLC 016430 GLOBAL SYMBOL 110> IO.GLI 016420 GLOBAL SYMBOL 110> IO.GNI 016410 GLOBAL SYMBOL 110> IO.GRC 016450 GLOBAL SYMBOL 110> IO.GRI 016440 GLOBAL SYMBOL 110> IO.GRN 016460 GLOBAL SYMBOL 110> IO.GTS 002400 GLOBAL SYMBOL 110> IO.HDX 003010 GLOBAL SYMBOL 110> IO.HIS 015000 GLOBAL SYMBOL 110> IO.HMS 004000 GLOBAL SYMBOL 110> IO.HNG 003000 GLOBAL SYMBOL 110> IO.INI 014400 GLOBAL SYMBOL 110> IO.INL 002400 GLOBAL SYMBOL 110> IO.ITI 017000 GLOBAL SYMBOL 110> IO.KIL 000012 GLOBAL SYMBOL 110> IO.LDI 007000 GLOBAL SYMBOL 110> IO.LED 00rmgmqhmrjml(kdd 012000 GLOBAL SYMBOL 110> IO.LEI 007410 GLOBAL SYMBOL 110> IO.LKE 012000 GLOBAL SYMBOL 110> IO.LOD 014000 GLOBAL SYMBOL 110> IO.LOV 001010 GLOBAL SYMBOL 110> IO.LPC 004100 GLOBAL SYMBOL 110> IO.LSI 011000 GLOBAL SYMBOL 110> IO.LTI 007400 GLOBAL SYMBOL 110> IO.LTK 000050 GLOBAL SYMBOL 110> IO.LTY 010000 GLOBAL SYMBOL 110> IO.MAO 003410 GLOBAL SYMBOL 110> IO.MCS 013400 GLOBAL SYMBOL 110> IO.MDA 016000 GLOBAL SYMBOL 110> IO.MDI 014400 GLOBAL SYMBOL 110 @ LISTING OF IMPURNOMO.STB 06/28/85 15:11:37@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> IO.MDO 015400 GLOBAL SYMBOL 110> IO.MLO 006000 GLOBAL SYMBOL 110> IO.MOD 003000 GLOBAL SYMBOL 110> IO.MSO 005000 GLOBAL SYMBOL 110> IO.NLB 016530 GLOBAL SYMBOL 110> IO.NLK 011400 GLOBAL SYMBOL 110> IO.OFF 004020 GLOBAL SYMBOL 110> IO.ONL 017400 GLOBAL SYMBOL 110> IO.RAD 010400 GLOBAL SYMBOL 110> IO.RAL 001010 GLOBAL SYMBOL 110> IO.RAT 013000 GLOBAL SYMBOL 110> IO.RBC 003000 GLOBAL SYMBOL 110> IO.RCI 015000 GLOBAL SYMBOL 110> IO.RCV 015000 GLOBAL SYMBOL 110> IO.RDB 001200 GLOBAL SYMBOL 110> IO.RDD 010010 GLOBAL SYMBOL 110> IO.RDH 004030 GLOBAL SYMBOL 110> IO.RDN 000022 GLOBAL SYMBOL 110> IO.REL 013400 GLOBAL SYMBOL 110> IO.RHD 001010 GLOBAL SYMBOL 110> IO.RLB 001000 GLOBAL SYMBOL 110> IO.RLC 001020 GLOBAL SYMBOL 110> IO.RLV 001100 GLOBAL SYMBOL 110> IO.RMT 010020 GLOBAL SYMBOL 110> IO.RNA 005400 GLOBAL SYMBOL 110> IO.RNC 001040 GLOBAL SYMBOL 110> IO.RNE 001020 GLOBAL SYMBOL 110> IO.RNF 004060 GLOBAL SYMBOL 110> IO.RNR 004070 GLOBAL SYMBOL 110> IO.RNS 001020 GLOBAL SYMBOL 110> IO.RPB 001040 GLOBAL SYMBOL 110> IO.RPD 004170 GLOBAL SYMBOL 110> IO.RPR 004400 GLOBAL SYMBOL 110> IO.RST 001001 GLOBAL SYMBOL 110> IO.RTC 003400 GLOBAL SYMBOL 110> IO.RTD 004120 GLOBAL SYMBOL 110> IO.RTF 015400 GLOBAL SYMBOL 110> IO.RTI 016400 GLOBAL SYMBOL 110> IO.RTK 000060 GLOBAL SYMBOL 110> IO.RTM 001200 GLOBAL SYMBOL 110> IO.RTT 005001 GLOBAL SYMBOL 110> IO.RVB 010400 GLOBAL SYMBOL 110> IO.RWD 002400 GLOBAL SYMBOL 110> IO.RWU 002540 GLOBAL SYMBOL 110> IO.R1C 002400 GLOBAL SYMBOL 110> IO.SAO 004000 GLOBAL SYMBOL 110> IO.SCF 001200 GLOBAL SYMBOL 110> 00rmcm@mkAmlBml]ld IO.SCS 013000 GLOBAL SYMBOL 110> IO.SDI 013000 GLOBAL SYMBOL 110> IO.SDO 012400 GLOBAL SYMBOL 110> IO.SEC 002520 GLOBAL SYMBOL 110> IO.SET 000030 GLOBAL SYMBOL 110> IO.SLO 005400 GLOBAL SYMBOL 110> IO.SMD 002510 GLOBAL SYMBOL 110> IO.SMO 002560 GLOBAL SYMBOL 110 @ LISTING OF IMPURNOMO.STB 06/28/85 15:11:42@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> IO.SPB 002420 GLOBAL SYMBOL 110> IO.SPF 002440 GLOBAL SYMBOL 110> IO.SPW 016510 GLOBAL SYMBOL 110> IO.SSO 004400 GLOBAL SYMBOL 110> IO.STA 015400 GLOBAL SYMBOL 110> IO.STC 002500 GLOBAL SYMBOL 110> IO.STP 016400 GLOBAL SYMBOL 110> IO.SWI 016400 GLOBAL SYMBOL 110> IO.SYN 003040 GLOBAL SYMBOL 110> IO.TDD 004140 GLOBAL SYMBOL 110> IO.TRM 002410 GLOBAL SYMBOL 110> IO.UDI 011410 GLOBAL SYMBOL 110> IO.UEI 011450 GLOBAL SYMBOL 110> IO.UER 011440 GLOBAL SYMBOL 110> IO.ULK 005000 GLOBAL SYMBOL 110> IO.UNL 000042 GLOBAL SYMBOL 110> IO.USI 011460 GLOBAL SYMBOL 110> IO.UTI 011420 GLOBAL SYMBOL 110> IO.UTY 011430 GLOBAL SYMBOL 110> IO.WAL 000410 GLOBAL SYMBOL 110> IO.WAT 013400 GLOBAL SYMBOL 110> IO.WBT 000500 GLOBAL SYMBOL 110> IO.WCK 004050 GLOBAL SYMBOL 110> IO.WDD 000540 GLOBAL SYMBOL 110> IO.WDH 004040 GLOBAL SYMBOL 110> IO.WLB 000400 GLOBAL SYMBOL 110> IO.WLC 000420 GLOBAL SYMBOL 110> IO.WLS 000410 GLOBAL SYMBOL 110> IO.WLT 000410 GLOBAL SYMBOL 110> IO.WLV 000500 GLOBAL SYMBOL 110> IO.WMS 000420 GLOBAL SYMBOL 110> IO.WNS 000420 GLOBAL SYMBOL 110> IO.WPB 000440 GLOBAL SYMBOL 110> IO.WPD 004160 GLOBAL SYMBOL 110> IO.WTD 004130 GLOBAL SYMBOL 110> IO.WVB 011000 GLOBAL SYMBOL 110> IO.XMT 014400 GLOBAL SYMBOL 110> IO.XNA 014410 GLOBAL SYMBOL 110> IQ.Q 000002 GLOBAL SYMBOL 110> IQ.S 000004 GLOBAL SYMBOL 110> IQ.UMD 000004 GLOBAL SYMBOL 110> IQ.X 000001 GLOBAL SYMBOL 110> IS.BV 000005 GLOBAL SYMBOL 110> IS.CC 001401 GLOBAL SYMBOL 110> IS.CLR 000000 GLOBAL SYMBOL 110> IS.CR 006401 GLOBAL SYMBOL 110> IS.EOT 002001 GLOBAL SYMBOL 110> IS.ESC 015401 GLOBAL SYMBOL 110> IS.ESQ 115401 GLOBAL SYMBOL 110> IS.PES 100001 GLOBAL SYMBOL 110> IS.PND 000000 GLOBAL SYMBOL 110> IS.RDD 000002 GLOBAL SYMBOL 110> IS.SET 000002 GLOBAL S00rmgmqhmrjml(kddYMBOL 110> IS.SPD 000002 GLOBAL SYMBOL 110> IS.SUC 000001 GLOBAL SYMBOL 110 @ LISTING OF IMPURNOMO.STB 06/28/85 15:11:47@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> IS.TAB 004401 GLOBAL SYMBOL 110> IS.TMO 000002 GLOBAL SYMBOL 110> IS.TNC 000002 GLOBAL SYMBOL 110> LOWCOM 000010 GLOBAL SYMBOL 110> LOWLST 000004 GLOBAL SYMBOL 110> LOWNOC 000001 GLOBAL SYMBOL 110> LOWSTR 000002 GLOBAL SYMBOL 110> M.OLUN 000004 GLOBAL SYMBOL 110> M.ONUM 000016 GLOBAL SYMBOL 110> OP.MXL 000020 GLOBAL SYMBOL 110> P.ERCD 000002 GLOBAL SYMBOL 110> P.FCS 000010 GLOBAL SYMBOL 110> P.FLNM 000012 GLOBAL SYMBOL 110> P.FNAM 000014 GLOBAL SYMBOL 110> P.LINE 000006 GLOBAL SYMBOL 110> QI.VER 000340 GLOBAL SYMBOL 110> Q.IOFN 000002 GLOBAL SYMBOL 110> Q.IOPL 000014 GLOBAL SYMBOL 110> SE.BIN 000003 GLOBAL SYMBOL 110> SE.FIX 000002 GLOBAL SYMBOL 110> SE.ICN 000001 GLOBAL SYMBOL 110> SE.LPR 000011 GLOBAL SYMBOL 110> SE.NIH 000014 GLOBAL SYMBOL 110> SE.NSC 000012 GLOBAL SYMBOL 110> SE.PAR 000010 GLOBAL SYMBOL 110> SE.SPD 000006 GLOBAL SYMBOL 110> SE.SPL 000007 GLOBAL SYMBOL 110> SE.TER 000005 GLOBAL SYMBOL 110> SE.UPN 000013 GLOBAL SYMBOL 110> SE.VAL 000004 GLOBAL SYMBOL 110> SF.DEF 000010 GLOBAL SYMBOL 110> SF.GAC 002600 GLOBAL SYMBOL 110> SF.GMC 002560 GLOBAL SYMBOL 110> SF.GSC 002540 GLOBAL SYMBOL 110> SF.RDF 002460 GLOBAL SYMBOL 110> SF.SAC 002620 GLOBAL SYMBOL 110> SF.SMC 002440 GLOBAL SYMBOL 110> SF.SSC 002420 GLOBAL SYMBOL 110> SF.STS 002520 GLOBAL SYMBOL 110> SF.STT 002500 GLOBAL SYMBOL 110> S.EXTA 000023 GLOBAL SYMBOL 110> S.EXTB 000024 GLOBAL SYMBOL 110> S.0 000001 GLOBAL SYMBOL 110> S.100 000004 GLOBAL SYMBOL 110> S.110 000005 GLOBAL SYMBOL 110> S.1200 000013 GLOBAL SYMBOL 110> S.134 000006 GLOBAL SYMBOL 110> S.150 000007 GLOBAL SYMBOL 110> S.1800 000014 GLOBAL SYMBOL 110> S.200 000010 GLOBAL SYMBOL 110> S.2000 000015 GLOBAL SYMBOL 110> S.2400 000016 GLOBAL SYMBOL 110> S.300 000011 GLOBAL SYMBOL 110> S.3600 000017 GLOBAL SYMBOL 110> S.4800 000020 GLOBAL SYMBOL 110 @ LISTING OF IMPURNOMO.STB 06/28/85 15:11:52@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> 00rmcm@mkAmlBml]ldS.50 000002 GLOBAL SYMBOL 110> S.600 000012 GLOBAL SYMBOL 110> S.7200 000021 GLOBAL SYMBOL 110> S.75 000003 GLOBAL SYMBOL 110> S.9600 000022 GLOBAL SYMBOL 110> TC.ACR 000024 GLOBAL SYMBOL 110> TC.ALT 000031 GLOBAL SYMBOL 110> TC.ANS 000073 GLOBAL SYMBOL 110> TC.BIN 000065 GLOBAL SYMBOL 110> TC.BLK 000042 GLOBAL SYMBOL 110> TC.BSP 000023 GLOBAL SYMBOL 110> TC.CCF 000030 GLOBAL SYMBOL 110> TC.CEQ 000046 GLOBAL SYMBOL 110> TC.CSQ 000074 GLOBAL SYMBOL 110> TC.CTC 000075 GLOBAL SYMBOL 110> TC.CTS 000072 GLOBAL SYMBOL 110> TC.DLU 000041 GLOBAL SYMBOL 110> TC.EPA 000040 GLOBAL SYMBOL 110> TC.ESQ 000035 GLOBAL SYMBOL 110> TC.FDX 000064 GLOBAL SYMBOL 110> TC.FRM 000043 GLOBAL SYMBOL 110> TC.HFF 000017 GLOBAL SYMBOL 110> TC.HFL 000013 GLOBAL SYMBOL 110> TC.HHT 000021 GLOBAL SYMBOL 110> TC.HLD 000044 GLOBAL SYMBOL 110> TC.IMG 000032 GLOBAL SYMBOL 110> TC.ISL 000006 GLOBAL SYMBOL 110> TC.LCP 000036 GLOBAL SYMBOL 110> TC.LPP 000002 GLOBAL SYMBOL 110> TC.LVF 000020 GLOBAL SYMBOL 110> TC.MAX 000076 GLOBAL SYMBOL 110> TC.NEC 000047 GLOBAL SYMBOL 110> TC.NKB 000033 GLOBAL SYMBOL 110> TC.NL 000015 GLOBAL SYMBOL 110> TC.NPR 000034 GLOBAL SYMBOL 110> TC.NST 000022 GLOBAL SYMBOL 110> TC.PAR 000037 GLOBAL SYMBOL 110> TC.PRI 000051 GLOBAL SYMBOL 110> TC.P8B 000070 GLOBAL SYMBOL 110> TC.RAT 000007 GLOBAL SYMBOL 110> TC.REM 000066 GLOBAL SYMBOL 110> TC.RSP 000003 GLOBAL SYMBOL 110> TC.SCP 000012 GLOBAL SYMBOL 110> TC.SCR 000011 GLOBAL SYMBOL 110> TC.SFF 000016 GLOBAL SYMBOL 110> TC.SLV 000050 GLOBAL SYMBOL 110> TC.SMO 000027 GLOBAL SYMBOL 110> TC.SMP 000026 GLOBAL SYMBOL 110> TC.SMR 000025 GLOBAL SYMBOL 110> TC.STB 000005 GLOBAL SYMBOL 110> TC.TAP 000045 GLOBAL SYMBOL 110> TC.TBF 000071 GLOBAL SYMBOL 110> TC.TTP 000010 GLOBAL SYMBOL 110> TC.UC0 000052 GLOBAL SYMBOL 110> TC.UC1 000053 GLOBAL SYMBOL 110 @ LISTING OF IMPURNOMO.STB 06/28/85 15:11:57@ NAME VALUE TYPE FLAGS@ ------ ------ ------------- ------> TC.UC2 000054 GLOBAL SYMBOL 110> TC.UC3 000055 GLOBAL SYMBOL 110> TC.UC4 000056 GLOBAL SYMBOL 110> TC.UC5 000057 GLOBAL SYMBOL 110> TC.UC6 000060 GLOBAL SYMBOL 110> TC.UC7 000061 GLOBAL SYMBOL 100rmsmhmrjml(kdd10> TC.UC8 000062 GLOBAL SYMBOL 110> TC.UC9 000063 GLOBAL SYMBOL 110> TC.VFL 000014 GLOBAL SYMBOL 110> TC.WID 000001 GLOBAL SYMBOL 110> TC.XSP 000004 GLOBAL SYMBOL 110> TC.8BC 000067 GLOBAL SYMBOL 110> TF.AST 000010 GLOBAL SYMBOL 110> TF.BIN 000002 GLOBAL SYMBOL 110> TF.CBF 000040 GLOBAL SYMBOL 110> TF.CCO 000040 GLOBAL SYMBOL 110> TF.ESQ 000020 GLOBAL SYMBOL 110> TF.NOT 000002 GLOBAL SYMBOL 110> TF.RAL 000010 GLOBAL SYMBOL 110> TF.RCU 000001 GLOBAL SYMBOL 110> TF.RNC 000040 GLOBAL SYMBOL 110> TF.RNE 000020 GLOBAL SYMBOL 110> TF.RST 000001 GLOBAL SYMBOL 110> TF.SYN 000200 GLOBAL SYMBOL 110> TF.TMO 000200 GLOBAL SYMBOL 110> TF.WAL 000010 GLOBAL SYMBOL 110> TF.WBT 000100 GLOBAL SYMBOL 110> TF.WMS 000020 GLOBAL SYMBOL 110> TF.XCC 000001 GLOBAL SYMBOL 110> TF.XOF 000100 GLOBAL SYMBOL 110> TRMSIZ 000204 GLOBAL SYMBOL 110> T.AS33 000001 GLOBAL SYMBOL 110> T.AS35 000003 GLOBAL SYMBOL 110> T.KS33 000002 GLOBAL SYMBOL 110> T.LA36 000006 GLOBAL SYMBOL 110> T.L120 000016 GLOBAL SYMBOL 110> T.L180 000014 GLOBAL SYMBOL 110> T.L30P 000005 GLOBAL SYMBOL 110> T.L30S 000004 GLOBAL SYMBOL 110> T.SCR0 000017 GLOBAL SYMBOL 110> T.UNK0 000000 GLOBAL SYMBOL 110> T.USR0 000033 GLOBAL SYMBOL 110> T.USR1 000034 GLOBAL SYMBOL 110> T.USR2 000035 GLOBAL SYMBOL 110> T.USR3 000036 GLOBAL SYMBOL 110> T.USR4 000037 GLOBAL SYMBOL 110> T.VT05 000007 GLOBAL SYMBOL 110> T.VT50 000010 GLOBAL SYMBOL 110> T.VT52 000011 GLOBAL SYMBOL 110> T.VT55 000012 GLOBAL SYMBOL 110> T.VT61 000013 GLOBAL SYMBOL 110> T.V100 000015 GLOBAL SYMBOL 110> $DSW 000000 GLOBAL SYMBOL 110> T.USR4 000037 GLOBAL SYMBOL 1zX:O%DoM NHy:΁@y:ρ@s@fhH)qv@:2@nL`H K*}@p @|Q @(2@zfhWH Z@%{_@xh@:a @zyahRJh|AwhdvL!hPXhkh:}h2swhc""^h\`VNhBf}hbt!yh^|hy`hr@Qh\z5lWhyhr NvLhT,y ghXhahV/KhXu~h>""Suh yahv~ ghb""Puh""Quhy`hs%hVzN*By:΁$RNVRT>CO>P. X:V  X:> X:> X:Pd:Qviv)qvSvOvsvS | r@QH\swHcs%HVvHGwH,y gHy[H\zyaHRy`Hy`Hyp:HyaHy<Hy!Hxy"&HyrHz}Hu~H>v~ gHbl gHg'HayHrz|HЅ`'HfJH|*DHLAwHdXHXHO p:H.CH(:a H:sH:2HoM%HoM NHoMYHjoMyHUVNHUZH\` UHehpHfhHfh=MH fhWH lhu:Hn^HnL`H BxHsH`}H4aHakH8zayHJ:d N;=; FOLLOWING LINE USED WITH IMPUR.MAC TO ASSEMBLE A VERSION OFS=; IMPUR HAVING FSR PSECTS ALONG WITH GLOBAL SYMBOL DEFINITION ; SNGUSR=1RO. THESE ARE MUTUALLY1; EXCLUSIVE IN THE LIBRARY (MULTI-USER) VERSIONS.;*IMPURSNGU,IMPURSNGU/-SP/CR=IMPURSNGU,IMPURsv S | yahRJh|AwhdvL!hPXhkh:}h2swhc""^h\`VNhBVNh&f}hbt!yh^|hzy`hr@Qh\5lWhyhr NvLhT,y ghXhahV/KhXu~h>""Suh yahv~ ghb""Puh""Quhzy`hs%hVN*By:΁$RNVRT>CO>P. X:V  X:> X:> X:Pd:Qviv)qvSvOvsvS | 0 SUCCESSFUL INSTALL!; = -1 UNSUCCESSFUL INSTALL%; = -2 BAD INSTALL COMMAND LINE;3; I.E. CALL "INSTAL"("LB:[11,1]DRS/TASK=...DRS",J);(; NOTE: 1) THE DEVICE MUST BE SPECIFIED#; 2) THE ACCOUNT MUST BE SPECIFIED/; 3) THE INSTALLED TASK NAME MUST BE SPECIFIED;; 4) THE 1ST PART OF THE INSTALLED TASK NAME MUST BE '...';; IDENTIFYING INFO:N;L .MCALL ULODHD ;CALL MACROS( ;IDENTIFY START OF CODE, END OF CODE ;AND ONE ENTRY POINT ULODHD START,END,INSTAL;> .GLOBL ASTOR5 .GLOBL INFSTD .GLOBL INFDEV;  .MCALL DIR$ SPWN$ STSE$SI;AAC0=%0;LB; FOLLOWING MACRO IS USED TO GET THE ABSOLUTE ADDRESS OF A LOCALLYD; DEFINED LABEL IN POSITION INDEPENDENT FASHION (NEEDED FOR LOADABLE ; ROUTINES).;H .MACRO GTABAD ADDRES,LOCB .NTYPE ...ATP,LOC .IF GT ...ATP-5 MOV PC,-(SP)K ADD #ADDRES-.,(SP) MOV (SP)+,LOC .IFFN MOV PC,LOC  ADD #ADDRES-.,LOC .ENDC .ENDM GTABADF;D; NOW THE CODE ITSELFD;E%START: ;LABLE ACTUAL START OF CODE+TSKNAM: .WORD 0 ;RAD-50 TASK NAME (PART 1)N+TSKNM1: .WORD 0 ; (PART 2)=#VCPUD: .WORD 0 ;PUD ADDRESS OF VC:G-STDSW: .WORD 0 ;STORE DSW FROM INSTALL SPAWN %INSLEN: .WORD 0 ;COMMAND LINE LENGTHNINSMES: .BLKB 1203STOSCA: STSE$S 1 ;STOP UNTIL SPAWNED TASK FINISHES JINSSCA: SPWN$ ...INS,GEN,,1,1,1,,,INSMES,INSLEN ;SPAWN INS UNDER UIC [1,1];LINSTAL:N0 JSR R4,@#GTRGPI ;GO GET ARGUMENTS IN PI FASHION& .BYTE 3,2,4,0 ;THIS IS ARG TYPE LIST% ;3 = INPUT STRING (TO SUBROUTINE)& ;2 = OUTPUT NUMBER (TO MAIN PROG.)& ;4 = OUTPUT STRING (TO MAIN PROG.) .EVEN' ;WE NOW HAVE THIS DATA ON THE STACKG ;SP+16 5 WORD BLOCKD ;SP+4 5 WORD BLOCK ;SP> 2-WORD INPUT DESCRIPTOR ; (SP)=LEN, 2(SP)=ADDR0 JSR PC,@#PARCHK ;CHECK FOR TRAILING RIGHT PAREN ;(ALSO BUMPS TEXT POINTER) MOV R1,-(SP) ;SAVE TEXT PTR;R/ MOV 4(SP),R1 ;L00~mmmyml(kddET'S CHECK COMMAND LINE FOR ':'T MOV 2(SP),R2I1$: CMPB (R1)+,#': BEQ 2$I SOB R2,1$6 JMP 40$ ;NO ':' (MEANING NO DEVICE SPECIFIED), ERROR;T22$: MOV 4(SP),R1 ;LET'S CHECK COMMAND LINE FOR '[' MOV 2(SP),R23$: CMPB (R1)+,#'[ BEQ 4$ SOB R2,3$7 JMP 40$ ;NO '[' (MEANING NO ACCOUNT SPECIFIED), ERROR; (4$: MOV 4(SP),R0 ;LET'S CHECK FOR '=...' MOV 2(SP),R2 MOV #1,R15$: CMPB (R0)+,#'= BEQ 6$T SOB R2,5$7 JMP 40$ ;NO '=' (MEANING NO 'TASK=' SPECIFIED), ERROR;<6$: JSR PC,@#ASTOR5 ;CONVERT 1ST PART OF INSTALLED TASK NAME& CMP R1,#^R... ; WHICH SHOULD BE '...' BEQ 7$P: JMP 40$ ;NO '...' (MEANING NO '...XXX' TASK NAME), ERROR; /7$: MOV R1,TSKNAM ;STORE 1ST PART FOR LATER USE2 MOV #1,R1" JSR PC,@#ASTOR5 ;CONVERT 2ND HALF0 MOV R1,TSKNM1 ;AND STORE IT TOO (FOR LATER USE); 0; COMMAND LINE SEEMS TO BE OK, SO LET'S CONTINUE; ; MOV #INSMES,R0 ;MOVE IN 'INS '! GTABAD INSMES,R0 ;MOVE IN 'INS ' MOVB #'I,(R0)+  MOVB #'N,(R0)+= MOVB #'S,(R0)+O MOVB #' ,(R0)+C;A+ MOV 4(SP),R1 ;FILL IN REST OF COMMAND LINEE MOV 2(SP),R2.10$: MOVB (R1)+,(R0)+' SOB R2,10$J; MOV #INSMES,R1 GTABAD INSMES,R1' SUB R1,R04 MOV R0,INSLEN ;STORE LENGTH OF INSTALL COMMAND LINE;S; CLR R0 ;SET UP FOR CALL; MOV #"CO,R4 ;DEV NAME IN R4; CLR R5 ;UNIT # IN R5(); JSR PC,@#INFDEV ;FIND PUD ADDRESS OF CO &; MOV R5,VCPUD ;SAVE PUD ADDRESS OF VC6; MOV #177777,U.RB(R5) ;MAKE CO PRIV TERM SO INS IS OK); BIS #UT.PR,U.TF(R5) ;AND MAKE PRIV ALSOV;'; MOV .CRTSK,R4 ;GET MY ATLA(; MOV A.TI(R4),-(SP) ;SAVE MY TI POINTER,; MOV VCPUD,A.TI(R4) ;MAKE INSTALL RUN AT VC/ GTABAD INSSCA,R0 ;GET ADDRESS OF INSTALL SPAWN'6 GTABAD INSMES,R1 ;GET ADDRESS OF INSTALL COMMAND LINE& MOV R1,S.PWCA+0(R0) ; AND INSERT SAME2 MOV INSLEN,R1 ;GET LENGTH OF INSTALL COMMAND LINE% MOV R1,S.PWCL+0(R0) ;AND INSERT SAMED( DIR$ R0 ;SPAWN INSTALL TO INSTALL TASK/ MOV @#$DSW,STDSW ;STORE DSW FROM INSTALL SPAWNT8 GTABAD STOSCA,R0 ;GET ADDRESS OF INSTALL STOP FOR EVENT DIR$ R0 ;WAIT FOR INSTALLM+ CMP STDSW,#1 ;WAS INSTALL SPAWN SUCCESSFULT BEQ 11$ ;YES, CONTINUE$ JMP 31$ ;NO, RETURN DSW FROM SPAWN11$:+; MOV (SP)+,A.TI(R4) ;RESTORE MY TI POINTERR+; MOV #TSKNAM,R1 ;POINT TO FULL RAD-50 NAMER; JSR PC,@#INFSTD ;FIND HIS STD"; TST R2 ;BETTER HAVE STD ADDRESS; BNE 12$ ;BR IF OK; JMP 30$ ;REPORT ERROR2;12$: BIS #SF.RM,S.FW(R2) ;SET REMOVE-ON-EXIT FLAG;@* MOV INSLEN,R0 ;RETURN COMMAND LINE LENGTH' LDCIF R0,AC0 ;>0 = SUCCESSFUL INSTALL 20$: MOV SP,R5 ;SET UPW ADD #6,R5 ; RETURN ADDRESS5 JSR PC,@#NSTORE ;AND RETURN THE STATUS TO THE CALLERN; MOV SP,R5 ;SET UP  ADD #20,R5 ; RETURN ADDRESS)2; MOV #INSMES,R3 ;ADDRESS OF STRING TO BE RETURNED3 GTABAD INSMES,R3 ;ADDRESS OF STRING TO BE RETURNED  MOV INSLEN,R4 ; AND ITS LENGTHS6 JSR PC,@#SSTORE ;AND RETURN THE "INS ..." STRING USED MOV (SP)+,R1 ;RESTORE TEXT PTRT& ADD #14*2,SP ;CLEAN STACK OF 12 WORDS RTS PC ;AND RETURN;G30$:- LDCIF #-30.,AC0 ;-30. = UNSUCCESSFUL INSTALLM BR 32$ %31$: LDCIF STDSW,AC0 ;STORE DSW VALUE532$: MOV #0,INSLEN ;AND ZERO OUT RETURN STRING LENGTH JMP 20$;540$:1 LDCIF #-40.,AC0 ;-40. = BAD INSTALL COMMAND LINE,1 MOV #0,INSLEN ;AND ZERO OUT RETURN STRING LENGTHS JMP 20$;OEND: ;LABLE END OF CODE .ENDEN,R4 ; AND ITS LENGTHS6 JSR PC,@#SSTORE ;AND RETURN THE "INS ..." STRING USED MOV (SP)+,R1 ;RESTORE TEXT PTRT& ADD #14*2,SP ;CLEAN STACK OF 12 WORDS RTS PC ;AND RETURN;G30$:- LDCIF #-30.,AC0 ;-30. = UNSUCCESSFUL INSTALLM BR 32$ %31$: LDCIF STDSW,AC0 ;STORE * :LL `@.I.@8X@*8@8@v:@v:y@Z`@*:d @y`@s@( ":4}~8X88n*n |:, "$* fW:~w.I. :d *W[~w=~w* W |ww" weЕL `L `*IЕNЕSЕ P~e@7*,eJepp&00mmmm~ml]lde"s*R&-w2e e$Z`*xe e7y`|wnw:4}~8X88n*n |:, "$* fW:~w.I. :d *W[~w=~w* W |ww" weЕL `L `*IЕNЕSЕ P~e@7*,eJepp&10 ! INTERNAL.BAS< ! TO GIVE BACK VALUES OF INTERNAL BASIC INTERPRETER VALUES100 DIM L$[20]V4120 INPUT LINE "OCTAL ADDRESS OF PARLST IN IMPUR",L$130 GOSUB 1000 140 B=L+13200 INPUT LINE "OCTAL ADDRESS OF PARAM IN IMPUR",L$210 GOSUB 1000220 A=L230 PRINT OCT$(ERR(A-B)) 240 GOTO 2001000 L=OCT(L$)/2 1010 RETURN L ENDUSR->:=================================================================:& : USER FDB'S :E :-----------------------------------------------------------------:=E : 166 LINE BUFFER - VARIABLE LENGTH :=, : 26 FDB PROPER (FCS) 140(8) BYTES : : 24 UNUSED :4 : 22 UNUSED ;BYTE OFFSET (QUESTION LIBRARY) :# : 20 EOF ADDRESS ;BLOCK # := : 16 FDB POINTER :0 : 14 UNUSED ;RESPONSE COUNT ;WRITE FLAG : : 12 BUFFER ADDRESS :== : 10 ACTUAL BYTE COUNT ;# MNT ENTRIES ;32-BIT CURRENT : 0 : 6 UNUSED ;MNT STARTING BLOCK ;BLOCK # : : 4 BUFFER SIZE :+ : 2 BUFFER PTR (OUTPUT) ;MNT SIZE :I$ : 0 CODE BITS + FILE #-1 :# : 000400 = INPUT POSSIBLE :8# : 001000 = OUTPUT POSSIBLE : + : 002000 = (SEQUENTIAL=0)(RANDOM=1) :I( : 004000 = (ASCII=0),(BINARY=1) :$ : 010000 = (BLOCK MODE = 1) :E :-----------------------------------------------------------------:S+ : OTHER FDB'S :  : . :N : . :D : . :KL STUFDB->:=================================================================:# : FOR/NEXT CONTROL BLOCKS :#E :-----------------------------------------------------------------:O1 : 14 TERMINATING VALUE (2 WORD FLOATING) :1* : 10 STEP VALUE (2 WORD FLOATING) :" : 6 CONTROL VAR OFFSET :4 : 4 STATEMENT NUMBER OF FOR (WITHIN LINE) :" : 2 LINE NUMBER OF FOR :* : 0 HEADER WITH SIXBIT VAR NAME :E :-----------------------------------------------------------------:=$ : SUBSEQUENT CONTROL BLOCKS : : . := : . :O : . :L STFONX->:=================================================================:! : GOSUB/RETURN POINTERS :NE :-----------------------------------------------------------------:A$ : 2 LINE NUMBER OF GOSUB :' : 0 STATEMENT # WITHIN LINE : E :-----------------------------------------------------------------: : SUBSEQUENT POINTERS :- : . :- : . :S : . :CL STGOSB->:=================================================================: : FREE AREA (RUN MODE) :L ENUDAT->:=================================================================:$ : USER DATA (VARIOUS TYPES) :E :-----------------------------------------------------------------:= : MASK= 000000 : FLOATING VARIABLES (SIMPLE AND ARRAY) :-- : 020000 : INTEGER (2-BYTE) VARIABLES :) : 040000 : BYTE VARIABLES : & : 060000 : NUMERIC FUNCTION :# : 100000 : STRING FUNCTION :=# : 120000 : STRING VARIABLE :=! : 160000 : SCRATCH ITEM :(E :-----------------------------------------------------------------:= E :-----------------------------------------------------------------:-& : FLOATING VARIABLES (2 WORD) :6 : MASK= 000000, LENGTH = 2 WDS + SIZE OF ARRAY 00mmmml(kdd :E : 4... SERIES OF 2 WORD VALUES (MORE THAN ONE VALUE FOR ARRAY ) :0 : 2 DIMENSION VALUES (1 BYTE EACH) :- : 0 MASK + SIXBIT VARIABLE NAME ::E :-----------------------------------------------------------------:0' : NUMERIC AND STRING FUNCTIONS :-; : MASK= 060000 (N), LEN = 3 WDS + # OF FORMAL PARAMS : : 100000 (S) :-5 : 6... HEADER + SIXBIT NAME OF FORMAL PARAM :T3 : 4 OFFSET OF FIRST CHAR PAST '=' SIGN :H) : 2 NUMBER OF FORMAL PARAMS :S0 : 0 MASK PLUS SIXBIT FUNCTION NAME :E :-----------------------------------------------------------------:M : STRING VARIABLES :; : MASK= 120000, LEN = 3 WDS + SIZE OF STRING STORAGE :-A : 6... STRING SPACE; BYTE 1=ACTUAL SIZE, BYTE 2...=STRING : < : 4 LOW BYTE: MAX LEN; HIGH BYTE: -=VAR, +=FIXED :. : 2 DIMENSION VALUES (1 BYTE EACH) :. : 0 HEADER + SIXBIT VARIABLE NAME :E :-----------------------------------------------------------------:S : VIRTUAL ARRAYS : 0 : 14 2 WORD OFFSET OF THIS ARRAY FROM : : 12 START OF FILE :-2 : 10 SIZE OF ELEMENT (-=VAR, +=CONSTANT) :# : 6 LUN FOR ARRAY FILE :O : 4 2ND DIM VALUE :C : 2 1ST DIM VALUE :S> : 0 MASK + 10000 (VIRTUAL BIT) + SIXBIT VARIABLE NAME :E :-----------------------------------------------------------------:A : SCRATCH ITEMS :7 : MASK= 160000, LEN = 1 WD + LEN OF SCRATCH DATA :- : 2... SCRATCH DATA :7 : 0 HEADER + BYTE COUNT OF SCRATCH DATA LEN : L STUDAT->:=================================================================: : LINE HEADER AREA :E :-----------------------------------------------------------------:D< : 2 OFFSET FROM START OF PROGRAM TEXT FOR THIS LINE : : 0 LINE # :E :-----------------------------------------------------------------: # : NEXT HIGHER LINE HEADERS :0L BOLNHD->:=================================================================:* : ROUND UP TO EVEN WORD (RUN MODE) : : OR :# : FREE SPACE (INPUT MODE) :=L ENDTXT->:=================================================================: : PROGRAM TEXT :-J USR-> :=================================================================:# : LOADED USER SUBROUTINES : L STUROU->:=================================================================:- : LOADED USER SUBROUTINE ENTRY POINTS ::L STUEPT->:=================================================================:. : PREDEFINED SUBROUTINE ENTRY POINTERS : : CONSTANT IMPURE AREA : LOW MEMORYXT->:=================================================================: : PROGRAM TEXT :-J USR-> :=================================================================:# : LOADED USER SUBROUTINES : L STUROU->:=================================================================:- : LOADED USER SUBROUTINE ENTRY POINTS ::L STUEPT->:====================;;; COMMAND FILE TO CREATE NEW LOADABLE ROUTINE MACRO LIBRARY;/LBR LODMAC/CR:10:10:10:MAC=ULOSTR,ULODHD,ULOEPT;=; THE FOLLOWING MACRO IS DESIGNED TO SET UP THE PROPER HEADER>; INFORMATION FOR A USER LOADABLE ASSEMBLY ROUTINE INTO BASIC..; IT USES THE ENTRY POINT MACRO DEFINED BELOW.; .MACRO ULODHD STCODE,ENDCOD,E1,E2,E3,E4,E5,E6,E7,E8,E9,E10 .WORD ID001 .WORD ID002 .WORD ID003 .NARG $$$LOA .IF LT $$$LOA-3 .ERROR .ENDC .IF GT $$$LOA-12 .ERROR .ENDC# .WORD ENDCOD-STCODE+<6*<$$$LOA-2>> .WORD 6*<$$$LOA-2> .WORD $$$LOA-2 .MCALL ULOEPT ULOEPT E1,STCODE ULOEPT E2,STCODE U00mmmmml]ldLOEPT E3,STCODEL ULOEPT E4,STCODEG ULOEPT E5,STCODER ULOEPT E6,STCODEO ULOEPT E7,STCODEL ULOEPT E8,STCODEU ULOEPT E9,STCODE  ULOEPT E10,STCODE .WORD /2 .ENDM ULODHDC;,=; THE FOLLOWING MACRO IS USED TO DEFINE ENTRY POINTS FOR USER03; LOADABLE ASSEMBLY LANGUAGE SUBROUTINES FOR BASIC..'; IT IS USED BY THE ULODHD MACRO ABOVE.O .MACRO ULOEPT NAME,STCODE .IF B NAMEO .MEXIT. .ENDC .NCHR $$$ULO,NAME .IF GT $$$ULO-6 .ERRORU .ENDC .RAD50 /NAME/ .IF LE $$$ULO-3 .WORD 0 .ENDC .WORD NAME-STCODE .ENDM,STCODER ULOEPT E6,STCODEO ULOEPT E7,STCODEL ULOEPT E8,STCODEU ULOEPT E9,STCODE  ULOEPT E10,STCODE .WORD /2 .ENDM ULODHDC;,=; THE FOLLOWING MACRO IS USED TO DEFINE ENTRY POINTS FOR USER03; LOADABLE ASSEMBLY LANGUAGE SUBROUTINES FOR BASIC..'; IT IS USED BY THE ULODHD MACRO ABOVE.O .MACRO ULOEPT NAME,STCODE .IF B NAMEO .MEXIT. .ENDC .NCHR $$$ULO,NAME .IF GT $$$ULO-6 .ERRORU .ENDC .RAD50 /NAME/ .IF LE $$$ULOXO7@>/D/!&&O; .MACRO ULODHD STCODE,ENDCOD,E1,E2,E3,E4,E5,E6,E7,E8,E9,E10 .WORD ID001 .WORD ID002 .WORD ID003 .NARG $$$LOA .IF LT $$$LOA-3 .ERROR .ENDC .IF GT $$$LOA-12 .ERROR .ENDC# .WORD ENDCOD-STCODE+<6*<$$$LOA-2>> .WORD 6*<$$$LOA-2> .WORD $$$LOA-2 .MCALL ULOEPT ULOEPT E1,STCODE ULOEPT E2,STCODE ULOEPT E3,STCODE ULOEPT E4,STCODE ULOEPT E5,STCODE ULOEPT E6,STCODE ULOEPT E7,STCODE ULOEPT E8,STCODE ULOEPT E9,STCODE ULOEPT E10,STCODE .WORD /2 .ENDM ULODHDCO .MACRO ULOEPT NAME,STCODE .IF B NAME. .MEXIT2 .ENDC .NCHR $$$ULO,NAME .IF GT $$$ULO-6 .ERRORO .ENDC .RAD50 /NAME/ .IF LE $$$ULO-3 .WORD 0 .ENDC .WORD NAME-STCODE .ENDM .WORD 6*<$$$LOA-2> .WORD $$$LOA-2 .MCALL ULOEPT ULOEPT E1,STCODE ULOEPT E2,STCODE ULOEPT E3,STCODE ULOEPT E4,STCODE ULOEPT E5,STCODE ULOEPT E6,STCODE ULOEPT E7,STCODE ULOEPT E8,STCODE ULOEPT E9,STCODE ULOEPT E10,STCODE .WO3LOWCAS,LOWCAS/-SP=LB:[1,202]LODMAC/ML,[1,202]LOWCAS (U 00mmmmm(kdd05JU85\oM+  @f UB͔WAWZ ~e Te10 ! TEST OF LOADABLE ROUTINE20 DIM A$[60]V,B$[60]V30 LOAD "LB:[1,202]LOWCAS.ATK"$40 S=0 : CALL "SPAWNB"("TER /LCI",S)50 INPUT LINE "STRING ",A$&60 S=0 : CALL "SPAWNB"("TER /NOLCI",S)70 CALL "LOWCAS"(A$,B$) 80 PRINT B$ 90 GOTO 40$LOWCAS.ATK/-HD/-FP,LOWCAS/-SP=LOWCASLB:[1,1]BSCPUR.STB/SS/STACK=0UNITS=0/;(; TEST SUBROUTINE FOR BASIC LOAD COMMAND;6; THIS SUBROUTINE SHOULD CHANGE A STRING TO LOWER CASE;!; CALL IS CALL "LOWCAS"(IN$,OU$);"; WHERE IN$=STRING TO BE LOWEREDD; OU$=RESULTANT STRING;; IDENTIFYING INFO: .MCALL ULODHD ;CALL MACRO( ;IDENTIFY START OF CODE, END OF CODE ;AND ONE ENTRY POINT ULODHD LOWCAS,END,LOWCAS;; NOW THE CODE ITSELF;;&LOWCAS: ;LABLE ACTUAL START OF CODE0 JSR R4,@#GTRGPI ;GO GET ARGUMENTS IN PI FASHION$ .BYTE 3,4,0 ;THIS IS ARG TYPE LIST% ;3 = INPUT STRING (TO SUBROUTINE) & ;4 = OUTPUT STRING (TO MAIN PROG.) .EVEN' ;WE NOW HAVE THIS DATA ON THE STACK$# ;SP+4 5-WORD STRING TABLE ENTRYE ; FOR OUTPUT STRINGT ;SP> 2-WORD INPUT DESCRIPTOR ; (SP)=LEN, 2(SP)=ADDR0 JSR PC,@#PARCHK ;CHECK FOR TRAILING RIGHT PAREN ;(ALSO BUMPS TEXT POINTER) MOV R1,-(SP) ;SAVE TEXT PTR( MOV 2(SP),R0 ;LEN OF INPUT STRING -> R0 BEQ 3$ ;IF ZERO, BRANCHT5 JSR PC,@#TSTU00 ;CHECK FOR ROOM IN USER STORAGE AREAI ;WIPES R3,R4,) ;R5 -> NEXT BYTE IN USER STORAGE AREA  BHI 1$ ;BRANCH IF ROOM EXISTS) OVFERR ;ELSE DO ERROR TRAP !1$: MOV R0,R4 ;SAVE LENGTH IN R4D5 BIS #160000,R0 ;MAKE R0 A "SCRATCH" DATA TYPE HEADER>& MOV R0,(R5)+ ;PUT HEADER IN USER AREA/ MOV R5,R2 ;SAVE STRING ADDRESS (IN USER AREA)G, MOV 4(SP),R3 ;ADDRESS OF INPUT STRING -> R3* MOV R4,R0 ;STRING LENGTH -> LOOP COUNTER'2$: MOVB (R3)+,(R5) ;REVERSE THE STRINGZ CMPB (R5),#101 ;LESS THAN "A" ? BLT 22$ ;IF SO, DON'T CHANGE# CMPB (R5),#132 ;GREATER THAN "Z" ?X BGT 22$ ;IF SO, DON'T CHANGE BISB #40,(R5) ;OK, LOWER HIM"22$: INC R5 ;AND BUMP THE POINTER SOB R0,2$( MOV R2,R3 ;OUTPUT STRING ADDRESS -> R3! ;STRING LENGTH STILL IS IN R4M03$: MOV SP,R5 ;GET ADD OF RETURN ARG DESCRIPTOR ADD #6,R5 ;IN R55 JSR PC,@#SSTORE ;AND RETURN THE RESULT TO THE CALLERG MOV (SP)+,R1 ;RESTORE TEXT PTRH% ADD #7*2,SP ;CLEAN STACK OF 7 WORDSR RTS PC ;AND RETURNEND: ;LABLE END OF CODE .ENDT 22$ ;IF SO, DON'T CHANGE# CMP* :L.I.@8X@8@*8@6a""@:d @y`@ @(j \oM+  8X88.I.* f UB͔:d  6a""*BWAWZ ~e e"y`h THE RESULT TO THE CALLERG MOV (SP)+,R1 ;RESTORE TEXT PTRH% ADD #7*2,SP ;CLEAN STACK OF 7 WORDSR RTS PC ;AND RETURNEND: ;LABLE END OF CODE .ENDT 22$ ;IF SO, DON'T CHANGE# CMP00mnmmml]ld;8; MEMORY MANAGEMENT SUBROUTINES FOR DATA BASE MANAGEMENT;;; CREREG/; ROUTINE TO DYNAMICALLY CREATE A UNIQUE REGION ; ON ENTRY:(; R3 HAS REGION DEFINITION BLOCK ADDRESS; RDB SIZE ALREADY FILLED IN; ; ON EXIT:$; 'C' CLEAR = SUCCESS, RDB FILLED IN2; 'C' SET = FAILURE, R4 HAS DIRECTIVE ERROR CODE;CREREG:1$:9 BIS #,R.GSTS(R3) ;SET FLAGS? BIC #RS.CRR,R.GSTS(R3) ;MAKE SURE WE SAY NO REGION CREATED YET4 CRRG$S R3 ;ATTEMPT TO CREATE AND ATTACH TO REGION BCS 5$ ;ON ERROR, BRANCHO8 BIT #RS.CRR,R.GSTS(R3) ;DID WE ACTTUALLY CREATE REGION?! BNE 2$ ;IF SO, SUCCESS: BRANCH 3 DTRG$S R3 ;IF NOT, WE GOT SOMEBODY ELSE'S REGION ;SO DETACH IT& INC R.GNAM(R3) ;INCREMENT RAD50 NAME BR 1$ ;AND TRY AGAIN 2$: CLC ;INDICATE SUCCESS RTS PC ;AND RETURN/5$: MOV @#$DSW,R4 ;FAILED DIRECTIVE CODE -> R4L RTS PC ;AND RETURN;B; INIREG2; ROUTINE TO GET MAPPING CONTEXT AND CREATE REGION ; ON ENTRY: =; R2 HAS PC REFERENCE POINT (SO WE KNOW WHERE CODE IS LOADED)B;C ; ON EXIT:; RDBFLG SET TO 1D+; MCX FILLED WITH MAPPING CONTEXT FOR BASICO; RDB ADDRESS IN R3D; 'C' CLEAR ON SUCCESS+; 'C' SET ON FAILURE, R4 HAS DSW ERROR CODET; R2 UNCHANGED;;INIREG:  MOV R2,R3 ;CALCULATE ADDRESS. SUB #PCREF1-MCX,R3 ;ADDRESS OF MCX AREA -> R3 GMCX$S R3 ;GET CURRENT CONTEXT! MOV R2,R3 ;COPY REFERENCE POINT - SUB #PCREF1-RDB,R3 ;GET ADDRESS OF RDB -> R3M$ JSR PC,CREREG ;CREATE UNIQUE REGION BCS 1$ ;ON ERROR, BRANCH- MOV #1,RDBFLG ;INDICATE WE NOW HAVE A REGIONC1$: RTS PC ;AND RETURNT; ; MAPREG/; ROUTINE TO MAP TO A REGION CREATED PREVIOUSLYR ; ON ENTRY: ; RDB HAS CREATED REGION; R2 HAS PC REFERENCE PT.W%; WDB HAS APR, WINDOW SIZE, FLAGS SETG; ; ON EXIT:; R3 HAS ADDRESS OF WDB##; R5 HAS ADDRESS OF REGION (160000) ; 'C' CLEAR IF SUCCESS ; 'C' SET IF FAILURE: R4 HAS DSW;EMAPREG: MOV R2,R3 ;REFERENCE PT. -> R3& SUB #PCREF1-RDB,R3 ;RDB ADDRESS -> R3" MOV R.GID(R3),R4 ;REGION ID -> R46 SUB #RDB-WDB,R3 ;NOW POINT TO WINDOW DEFINITION BLOCK# MOV R4,W.NRID(R3) ;STORE REGION ID0 MOV #160000,R5 ;VIRTUAL ADDRESS OF REGION -> R5& CRAW$S R3 ;CREATE THE ADDRESS WINDOW BCC 1$ ;IF OK, BRANCHW& MOV @#$DSW,R4 ;DIRECTIVE STATUS -> R4 1$: RTS PCXIT:; R3 HAS ADDRESS OF WDB##; R5 HAS ADDRESS OF REGION (160000) ; 'C' CLEAR IF SUCCESS ; 'C' SET IF FAILURE: R4 HAS DSW;EMAPREG: MOV R2,R3 ;REFERENCE PT. -> R3& SUB #PCREF1-RDB,R3 ;RDB ADDRESS -> R3" MOV R.GID(R3),R4 ;REGION ID -> R46 SUB #RDB-WDXQ  d/+/0a Wa \+#6xzy}00nmmmm(kdd^pdWɫs00 nnnmml]ldQ*P*^*PL(`((v/+h/0h `(* VBPV*&BA  &*LӉ  1@r5@?U?*@ڪArr?[Q*P*p*PL(`((a WhHa \h `(*CD @% *& L w 97*L=  W@@ @P*r7L H@7F@w>*P@ PBCD Ef*IA@?0@ @׳>:L]L?ƪ@Q*P*d*PL(`((#h `(*D 1 C+  f# x(x*&@ PCBP*LA& a @ȉʉ&r  @;\)8A;\)pC[\Eys@‚=Q*P*W*PL(`((+h6xh  `(* =7^ =h  h*&?AA @ *LPB P &@!h:rיc&>X4%]@Q*P*ɫs*PL(`((<zy}h `(*Aԉ   e@ & f@& A&a @ȉʉ&r  @;\)8A;\)pC[\Eys@‚=*P*W*PL(`((+h6xh 01 ! MSGEN.BAS+02 ! PROGRAM TO change MO RECORDS FOR BASIC+10 DIM A$[64],B$[64]V,C$[64],D$[64]V,E$[15] 30 LET I=0"35 OPEN #5,"BASIC.MSG/UP/RN/LN:64"36 LET E$="%5A %D%8A %D - "37 STOP 40 GOTO 30050 PRINT "ERROR #",I-1 60 INPUT B$70 LET A1=LEN(B$)72 IF A1 = 0 THEN GOTO 16075 IF A1 > 49 GOTO 140100 LET A$ = E$+B$110 PRINT A$;"!"120 PRINT #5'I,A$ 130 RETURN 140 PRINT "STRING TOO LONG",A1 150 GOTO 50 160 CLOSE 5 170 STOP 200 IF I<0 THEN 270 210 LET I=I+1220 INPUT #5'I,A$G 230 PRINT A$&240 PRINT "NEW STRING (START CHAR=16)" 250 GOSUB 50 260 RETURN ]270 LET I=-I+1 280 GOSUB 50 290 RETURN A9300 PRINT "ERROR # (- FOR NEW STRING, + TO REVIEW OLD) "; 310 INPUT I 320 GOSUB 200O 330 GOTO 300600 PRINT #5'Z9+1,RJS$(" ",64)I 610 RETURN #700 PRINT "LIMITS: "; : INPUT Z1,Z2 710 FOR Z9 = Z1 TO Z2N 720 GOSUB 600R 730 NEXT Z9 740 STOP 140 PRINT "STRING TOO LONG",A1 150 GOTO 50 160 CLOSE 5 170 STOP 200 IF I<0 THEN 270 210 LET I=I+1220 INPUC 3C PAUL D. CLAYTON RMS @ NADC, WARMINSTER, PA.C 3/19/82C FC THIS IS A SUPER SIMPLE PROGRAM TO FORMAT AN ERROR MESSAGE FILEC FOR USE BY THE BASIC.C # DIMENSION A(64),B(15),C(64) BYTE A,B,CC DATA B/'%','5','A',' ','%','D','%','8','A',' ','%','D',' '," - '-',' '/,C/64*' '/1 OPEN (UNIT=1,NAME='BASIC.MES',TYPE='OLD')9 OPEN (UNIT=2,NAME='LB:[1,2]BASIC.MSG',TYPE='NEW', - ACCESS='DIRECT',5 - 00nnnnn(kdd FORM='FORMATTED',ASSOCIATEVARIABLE=N, - RECORDSIZE=64)C N=1 100 CONTINUE READ (1,110,END=160) R,A 110 FORMAT (F6.0,72A1) N1=R+1! 120 IF ( N .GE. N1 ) GOTO 140D TYPE *,N,R WRITE (2'N,130) C 130 FORMAT( 64A1 ) GOTO 120 140 CONTINUED TYPE *,N' WRITE (2'N,150) B,(A(I),I=1,49) 150 FORMAT(15A1,49A1) GOTO 100C  160 CONTINUE STOP END01 ! msgen.basJ02 ! program to construct mo records for basic from variable length source 10 dim a$[64]20 open #4, "BASIC.MES/RO""30 open #5,"BASIC.MSG/FX/WR/LN:64"40 if end #4 then 10050 input line #4,a$60 print #5, a$ 70 goto 50 100 close110 exit/10 ! program to convert octal to floating pointe+15 ! remember virtual arrays start at xx(0)3 20 dim #3,oc%(3) : dim #4, an(1)F24 ! following open was done once using "/WR" to initially create file 25 open #3, "OCTFLOAT.DAT/BL/AP"&30 input "enter 2 octal digits ";a$,b$"35 oc%(2)=oct(a$) : oc%(3)=oct(b$)#40 print oct$(oc%(2)),oct$(oc%(3)),)*45 close 3 : open #4, "OCTFLOAT.DAT/BL/RO" 50 A1=an(1) *55 close 4 : open #3, "OCTFLOAT.DAT/BL/AP" 60 print a1" 70 goto 30 ! PF1 Prev ScreenADEF KE@ F 25-apr-84  ,[1,200] RSX BASIC - MICHAEL REESE VERSION    Overview:  G BASIC as implemented in the following files under RSX-11D is G a highly upgraded version of what used to be a DECUS library G program for DOS. Full FILES-11 I/O is supported (although G in a bastard sort of way). String functions and user de- G fined functions are much more flexible than in either the G original version or in DEC's BASIC-11. A number of defici- G encies and bugs in the original have been fixed. Multi-user G implementation is supported with separate pure and impure G areas. This implementation of BASIC is highly interpretive G and thus is slow for number crunching (that's why you have G FORTRAN). It is however, highly interactive and includes G special debugging commands: STEP, CON and SET TRACE. G OVERLAY and a data preserving CHAIN are also supported. A G clean "break" feature is implemented via the TT handler G (more below). In the latest version, a number of RSTS-like G features have been added including: virtual arrays, integer @ and byte variables, continued lines and IF-THEN-ELSE.   Files:  G BASIC0.MAC through BASIC4.MAC plus IDNTFY.MAC and IMPUR.MAC gG are the seven source files for the interpreter. BASIC4.MAC G implements the guts of the user subroutine CALL statement "G plus a set of specialized subroutines used at Michael Reese G Medical Center. This code can probably be removed with a G minimum of work if space becomes a problem. The file aG SPAWN.MAC implements the IAS V3.0 SPAWN directive via a BA- G SIC CALL statement. The reference to SPAWNB in IMPUR.MAC 00nnnmml]ldG should be commented out if not running under IAS V3.0 or G higher. Two command files for assembly are provided: % 11MASM.CMD and 11DASM.CMD. t sG BIGBASIC.CMD is a task build command file which may be tail- lG ored for single user operation. Note that for either single G user or multi-user operation, routines for trigonometric and WG transcendental functions are taken from a FORTRAN OTS libra- G ry. The library which we are set up for is V01C. This gG could be changed to use F4P OTS if references in BASIC1 are sG changed to the F4P entry point names. FOR V02 is an unknown G as far as use of its OTS routines are concerned. The task G build command files assume these to be in SYSLIB. If they G are somewhere else, an explicit reference should be made to ( whatever library they are in.  G Another set of command files is used to link a library ver- fG sion of BASIC. First, an impure area STB is created by as- eG sembling IMPUR without the symbol definition TASK=1. Use FG IMPURNOMO.ASM for this. This prevents the global definition G of .MOLUN and prevents problems later on. Also assemble IM- iG PUR with the command file IMPUR.ASM in preparation for final n G PAGE 2 F 25-apr-84  nG linking with BAS.CMD (below). IMPURNOMO is then linked to bG form the symbol table. For RSX11D usd IMPURNOMO.CMD to link UG the symbol table. The library is then linked using .G BASPUR.CMD. Put the resulting TSK and STB files in G LB:[1,1], install the BASPUR resident library and link with G BAS.CMD. The BAS.TSK file can now be installed with differ- G ent INC values and different names for optimized use, each G one sharing the pure code. A command file for use with G ...AT. are provided for doing all of the work described in G the above paragraph: 11DSHARE.CMD for RSX11D or IAS. The G development of the equivalent command file to do the same G for RSX11M-PLUS remains to be done at this point. If some- G one has done this, we would appreciate their feedback. One G could probably make one following the RSX11D command file $ and modifying for RSX11M.  c Programs:  G MSGEN is a program for generating and modifying an MO mes- G sage file for BASIC. The current file is BASIC.MSG. It G should be placed under [1,2] on the disk referred to as SD:. G BASIC0.MAC can be edited to change the disk name and ac- G count. If no MO output is desired, modify BASIC0.MAC by re- G moving the line defining the symbol RSX11D. This will pro- G duce numbered error messages but no explanatory text. This 1 is automatically done with 11MASM.CMD. n nG BASDOC is a program which extracts RUNOFF format source text IG from the macro files for BASIC. The output is a file G BASIC.RNO which, when processed by a special version of RU- aG NOFF, produces a fairly complete manual for BASIC. .G BASIC.DOC is such a manual. The special version of RUNOFF sG was made at Michael Reese Medical Center for use with a Cen- eG tronics printer having a wide character option. It also has G some non-standard abbreviations for commands. If needed, G the BASIC.RNO file could be edited for use with a standard G RUNOFF. The special Centronics commands usually start with 2 a "W", i.e. ".WC" instead of ".C" etc.  fG A BASIC break is now implement00$nnnnn(kdded via the ^C AST function of G the TT handler. Note that the definition RSX11D=1 is used wG for this option to distinguish between handler AST action IG under RSX11M and RSX11D. Also note that this break happens G between successively executed lines. Thus a one line loop a cannot be broken.  & If you have questions call: $ Frank R. Borger - Dept. of Medical Physics I1 Michael Reese Medical Center ( 2929 So. Ellis Ave. ( Chicago, Ill. 60616 # (312) 791-2515 b G PAGE 3 eF 25-apr-84  s Reese BASIC Users  a t Dear User,  G This release of REESE BASIC is mainly a maintenance update. G The basic working of the system has not changed, rather the sG emphasis has been to include bug fixes and better documenta- 2 tion and 11M support. Changes include:  G 1. Attempting to load a program with the "/CO" switch, G (implying a previously compiled version was saved,) G when the source file was NOT complied, confused the rG blazes out of the interpreter. The current version cG sets the "FORTRAN Carriage-control" bit in the file G header as a check when saving compiled versions of G the file, and checks same when reading back in. As G a result, previously compiled BASIC files must be re-compiled.  G 2. Immediate mode commands in source files could often aG blow BASIC out of the water. In the current ver- rG sion, any Immediate mode command read in from a iG saved program is reported as an error. (To deter- nG mine the location of an immediate mode command, aG after the error message, issue a "CLOSE" command G from the keyboard, followed by a "LIST" command. G The immediate mode command causing the error fol- 7 lows the last line of the program.) r G 3. The manual has been significantly re-done. The ma- oG in change is a re-structuring of the format, into eG several more chapters, with the various commands mG and functions, more logically grouped. In addition mG appendices B and C provide much better documenta- mG tion on techniques for writing loadable macro su-  broutines.  G 4. Due to the problems incurred in figuring out what sG DEC changed in the FORTRAN math routines, (SIN, sG COS, etc.) from release to release and from IV to sG IV-PLUS, we now include the routines in lG MATHLIB.OLB. (These are extracted from version 2 r# of FORTRAN-IV.)  G 5. Better support is provided for RSX11M. Present G command files let one use all the bells and whis- eG tles, including loadable MACRO subroutines, SPAWN TG capability, etc. UIC [1,203] contains a current G working version under 11M. The following points u1 should be made for 11M users: L OG 1. The TKB "/MU" switch is entirely different in AG it's meaning between 11M and IAS. 11M TKB com- .G mand files which happen to have this switch in- s G PAGE 4 F 00,nnnmml]ld 25-apr-84 r tG cluded will jam all READ-ONLY P-SECTS up in ad- sG dress range 160000 to 1777776, and the resul- G tant task will bomb when it trys to access G those subroutines. (As usual, DEC documents G this abnormality on a single page buried deep G in the TKB manual, and doesn't say a thing G about it on the page describing the MU switch.)  G 2. We haven't yet gotten a shared-code version G running under 11M, and would appreciate 2 feed-back from some users.  G 3. Under 11M, BASIC cannot spawn another version cG of himself, (due to system restrictions which eG do not let multiple copies of a task execute at G the same terminal.) This can be gotten around wG by creating copies of the task image, and ins- dG talling them with the names "...BA1", "...BA2",  etc.   f( 6. Loadable subroutines G Users acquainted with the loadable MACRO subroutine G capability should look at a couple of new routines,  including:  pG 1. DIRECT, a routine which enables BASIC to issue TG any system directive. The BASIC program GETTI tG uses them to find out good things about what n3 terminal one is running at. c G 2. EXITST, a routine that lets basic do an "EXIT s% WITH STATUS". r iG 3. Several BASICn.doc files, extracted subroutine eG descriptions from BASIC0 thru BASIC4, which aG should make it easier for experienced tG system/macro programmers to write their own m! routines. h n G 7. BASDOCMAK.BAS, a program to re-create the BASIC.MSG G file, since FLX won't keep the fixed-length attri- : butes of the BASIC error message file.  .G 8. Users who would like a demonstration of the capa- fG blily of BASIC using the SPAWN capability should G look at BASMANUAL.BAS. In essence, this master p program:  mG 1. CAUSES another version of basic to extract the KG RUNOFF source from the several MACRO source iG files, (and seperate them into the several " chapters.)  G PAGE 5 F 25-apr-84  G 2. Creates one concatenated RUNOFF source file for # the manual.  G 3. Extracts table-of-contents information from a > first RUNOFF pass on said source file.  G 4. Inserts the table-of-contents into the RUNOFF G source using RNP, (available elsewhere on this  tape)  G 5. Produces the final document, in two forms, one G suitable for use on normal printers, the other G tailored for DIABLO type printers, (includes aE proportional spacing and highlighting in RED) N G 6. Optional capability to use TWOPAGE.BAS to print oD the manual on both sides of 8&1/2 X 11 paper   a1 NOTE t )C The above pro004nnnnn(kddgrams use a special REESE rC version of RUNOFF, plus the programs rC RNP.TSK and TWOPAGE.BAS, available on n; this tape under a seperate UIC. n n i i iG 9. Included in this release are some new conditionals GG and a couple of bug fixes, supplied by Daniel 2G steinberg of SRI International. They provide the 9 following enhancements and bug fixes. c G 1. Undefined variables correctly reported by error a" processing  KG 2. Mixed mode arithmetic (A=B$) correctly reported u+ by error processing  G 3. Conditional assembly parameter to automatically G set a new variable to zero, (rather than gener- ' ating an error)  yG 4. Conditional assembly for RSX11M to automatical- .G ly extend the task when user storage area is e full. p eG 5. A FLOATING-POINT emulator which lets BASIC run , on non-FPP machines.  s gG 10. A late bug fix, any INPUT command that included a cG prompt string but did not have a variable to input eG would crash basic. This has been fixed in the IAS 4 G PAGE 6 lF 25-apr-84 l p: version, the 11M version is not fixed.  tG 11. A late enhancement, if BASIC does not find a re- G quested program, it also looks under [1,1] (on the G same disk.) This makes commonly used programs ava- G ilable to everyone without having multiple copies G all over. This enhancement is also not included in $ the 11M version.   $ LATE FLASH for IAS users:  G First time users under IAS (or 11D) should avail themselves .G of the indirect command file and batch stream (BUILD.CMD and G BUILD.BIS,) supplied by Paul D. Clayton. These will get a G first version of BASIC up and running with a minimum amount G of pain. (You must still edit BASPRE.MAC to configure G things for your system and hardware. He also included a G FORTRAN program to re-create the BASIC.MSG file (as fixed G length,) which FLX clobbers in the transfer process. See + his notes later in this document s G PAGE 7 TF 25-apr-84  i= TO: Users, Modifiers, Debuggers of these programs R A t RE: Feedback  nG If you, as a user of the here-in presented submission make TG significant changes, enhancements, bug-fixes etcetera, gG PLEASE make them known to the person listed as the main- G tainer of the package. Feedback from users can provide help  in various ways: E TE 1. Pointing out bugs the maintainer was not aware of 4 G 2. Suggesting enhancements/changes that improve per-  formance  G 3. Providing insight into support on other operating ) systems and hardware. e ,G As an example, I discovered some neat work done on REESE BA- G SIC by another organization on the Spring '79 tape. These G included support for non FPP hardware, and extending the G task (rather than generating an error message) under RSX11M 7 I only discovered these goodies by accident. - G I can't speak 00/100>,,,,'RDBFLG: .WORD 0 ;REGION NOT CREATED YETA/RDB: RDBBK$ <<$R.TLN+77>/100>,ONCRGA,GEN,170000MSRFDPB: SRFR$ ONCDBMHVRCDPB: VRCD$ ONCDBM,2,2 ;DUMMY PARAMS FOR ADD AND LEN SO CAN CALL AGAIN;X; SUBROUTINES ANYRET AND ALLRETY; LOADABLE BASIC SUBROUTINES4; FOR RETRIEVAL OF RADIATION ONCOLOGY LEVEL1 RECORDS7; BY MATCHING EITHER ANY OR ALL OF THE MATCHING STRINGS ; BASIC CALLS:8; CALL "ANYRET"(F0,R0,R1,S$,D$,D [,D1$,D1] [,D2$,D2]...)8; CALL "ALLRET"( " " " " ); WHERE:; F0 IS RECORD INCREMENT; +2 FOR FORWARD SEARCH; -2 FOR BACKWARD SEARCHR; R0 IS RECORD # TO START FROM*; R1 IS VARIABLE TO RECEIVE FOUND RECORD # ; 0 = NONE FOUND (S$ UNCHANGED); - = FAILED DIRECTIVE STATUS4; -6 (ILLEGAL USER BUFFER) IS USED IF TOTAL LENGTH6; OF STRINGS EXCEEDS SCRATCH BUFFER SPACE AVAILABLE./; S$ IS STRING VARIABLE TO RECEIVE FOUND RECORDA'; D$ D1$ ETC. ARE STRINGS FOR THE MATCHD3; D D1 ETC. ARE CORRESPONDING COL #'S TO START AT ; NOTE: 5; THE SUM OF THE LENGTHS OF THE MATCHING STRINGS PLUS+7; 4* THE NUMBER OF STRINGS SHOULD BE LESS THAN OR EQUAL ); TO THE SCRATCH BUFFER. IF NOT, THE USER >; WILL RRECEIVE AN ILLEGAL USER BUFFER CODE RETURN IN R1 (-6).;I6; FOR THE ROUTINE "ANYRET" A MATCH ON ANY STRING (KEY)5; WILL RETRIEVE THAT RECORD. FOR THE ROUTINE "ALLRET"E$; ALL STRINGS (KEYS) MUST MUST MATCH;L+TYPSAV: .WORD 0 ;PLACE TO SAVE TYPE OF CALL ;IANYRT1:HDANYRET: MOV #<1+400*1>,TYPSAV ;REMEMBER THAT THIS IS "ANY" ON FILE 1 BR COMRETALLRT1:LDALLRET: MOV #<2+400*1>,TYPSAV ;REMEMBER THAT THIS IS "ALL" ON FILE 1;E4COMRET: JSR R4,@#GTRGPI ;GET ARGUMENTS IN PI FASHION .BYTE 1,1,2,4,0 .EVEN' JSR PC,SETUP ;DO INITIAL SET-UP THINGS1 BCC 1$ ;IF OK, BRANCHT$ LDCIF @#$DSW,AC0 ;ERROR CODE -> AC0 ADD #10,SP ;CLEAN STACKC( BR COMEN2 ;AND FINISH ERROR PROCESSING; 31$: MOV TYPSAV,$R.FCN(R5) ;PUT IN TYPE OF RETRIEVAL  CLR $R.L1F(R5) ;CLEAR CURRENT CLR $R.L2F(R5) ;FLAGS CLR $R.L3F(R5) 5 LDF (SP)+,AC0 ;GET INCREMENT (AND DIRECTION BY SIGN)RB STF AC0,SRFBUF+$B.MIS ;AND STORE IN 8 WORD BUFFER (USING 2 WORDS)- LDF (SP)+,AC0 ;PUT IN STARTING RECORD NUMBERF; STF AC0,$R.L1R(R5) ;IN THE REGION FOR LEVEL1 RECORD NUMBERE) MOV R5,R4 ;COPY START ADDRESS OF REGIONC4 ADD #$R.BUF,R4 ;AND MAKE R4 POINT TO SCRATCH BUFFER4 MOV #$R.BLN,$R.S1(R5) ;INIT BUFFER LENGTH REMAINING2$:O' MOV R4,-(SP) ;SAVE OUR PLACE IN BUFFERE/ JSR PC,REMAP ;MAP BACK TO SYSRES IN CASE ERROR() JSR R4,@#GTRGPI ;GET SOME MORE ARGUMENTS0 .BYTE 3,1,0 ;STRING AND COL #  .EVEN" JSR PC,MAPREG ;MAP BACK TO REGION( MOV (SP)+,R0 ;LEN OF STRING -> R0 AGAIN MOV (SP)+,R3 ;ADD -> R3 LDF (SP)+,AC0 ;COL # -> AC0& MOV (SP)+,R4 ;RESTORE PLACE IN BUFFER MOV R0,R2 ;COPY STRING LENGTHS& ADD #5,R2 ;ADD 2 WORDS PLUS ROUND UP BIC #1,R2 ;EVEN WORD LEN -> R2% SUB R2,$R.S1(R5) ;DECREMENT LEN LEFTM BLT 7$ ;IF NOT ENOUGH, BRANCH 4 STCFI AC0,(R4)+ ;STORE COLUMN NUMBER IN SEND BUFFER* MOV R0,(R4)+ ;PUT AWAY LEN IN SEND BUFFER BEQ 4$ ;IF ZERO, BRANCH1(3$: MOVB (R3)+,(R4)+ ;MOVE IN THE STRING SOB R0,3$4$: INC R4 ;ROUND UP+ BIC #1,R4 ;R5G/ JSR PC,@#SKIP00 ;GET NEXT NON-BLANK CHAR -> R2+ DEC R1 ;BACK UP TEXT PTR% CMPB R2,#', ;IS NEXT THING A COMMA?, BEQ 2$ ;IF SO, TRY FOR MORE#+ JSR PC,REMAP ;BACK TO SYSRES IN CASE ERROR " JSR PC,@#PARCHK ;CHECK FOR AT END( JSR PC,MAPREG ;AND NOW MAP REGION AGAIN3 MOV R5,R3 ;BUFFER ADDRESS -> R3 FOR ONE LAST TIMEE CLR (R4)+ ;PUT IN STOPPER)# JMP COMEND ;AND GO TO COMMON CODE457$: MOV #IE.SPC,R0 ;ERROR CODE (ILLEGAL BUFFER) -> R0 (COMERR: LDCIF R0,AC0 ;ERROR CODE -> AC0 BR COMEN2 ;AND GO FINISH8COMEND: JSR PC,SYNC ;GO SEND DATA AND RECEIVE SOME BACK TST R0 ;CHECK ON STATUSI BLT COMERR ;IF NEG, BRANCH. LDF $R.L1R(R3),AC0 ;RETRIEVED RECORD # -> AC0COMEN2:N( MOV SP,R5 ;ADD OF RE00TnFnGnJnn(kddCORD # STORE -> R5 MOV R3,-(SP),2 JSR PC,@#NSTORE ;STORE THE RECORD # OR ERROR CODE MOV (SP)+,R3 + TSTF AC0 ;CHECK IF RECORD # OR ERROR CODEE CFCCP) BLE COMEN1 ;IF ERROR (NEGATIVE), BRANCHI9 ADD #$R.LV1,R3 ;OFFSET TO START OF LEVEL 1 RECORD BUFFER + ADD #12,R5 ;MOVE R5 UP TO NEXT STORE DATAG! MOV #$R.LN1,R4 ;STRING LEN -> R4S" JSR PC,@#SSTORE ;STORE THE STRING$COMEN1: ADD #24,SP ;CLEAN THE STACK JSR PC,REMAP ;REMAP TO SYSRES' RTS PC ;AND RETURN TO CALLING PROGRAM;V@; FOLLOWING CODE SYNCHRONIZES THE SENDING OF A DATA BLOCK TO THEB; DATA BASE MANAGING PROGRAM AND THE RECEIPT OF DATA BACK FROM IT.;C'SYNC: CLEF$S #EVFL ;CLEAR EVENT FLAG 1E" GTABAD AST,R0 ;AST ADDRESS -> R0 SRDA$S R0 ;DECLARE ITE2 ADD #SRFDPB-AST,R0 ;SEND BY REF DPB ADDRESS -> R01 GTABAD WDB,S.RRBA(R0) ;PUT ABS ADD OF WDB IN DPBR DIR$ R0 ;SEND DATA TO DBM TASK' MOV @#$DSW,R0 ;CHECK DIRECTIVE STATUSE BLT 2$ ;IF NEG, BRANCH+ WTSE$S #EVFL ;AND WAIT FOR THE EVENT FLAGA&2$: SRDA$S #0 ;UN-DECLARE RECEIVE AST! RTS PC ;WE'VE RECEIVED THE DATAC;O; NOW THE AST ROUTINEI;PAST:( GTABAD VRCDPB,R0 ;RECEIVE DPB ADD -> R06 GTABAD RBUF+2,R.VDBA(R0) ;INIT RECEIVE BUFFER ADDRESS# MOV #1,R.VDBL(R0) ;LENGTH ONE WORDD DIR$ R0 ;RECEIVE THE DATAR) MOV @#$DSW,R0 ;RECORD STATUS OF RECEIVED2 SETF$S #EVFL ;SET EVENT FLAG TO RESUME MAIN TASK ASTX$S ;AND EXIT FROM AST;S; SETUPE); ROUTINE TO DO INITIAL SET-UP FOR ONCREGN?; THIS ROUTINE SHOULD BE EXECUTED EACH TIME ANY OF ENTRY POINTS;@; IN THIS LOADABLE ROUTINE IS CALLED. THE ROUTINE WILL DECIDE IFB; REGION AND OTHER INFO HAS BEEN ALREADY SET UP AND IF NOT, DO IT.A; IT ALSO WILL ADJUST ANY ABSOLUTE ADDRESS NUMBERS WHICH MAY HAVE#;; CHANGED BECAUSE OF BASIC LOADING OTHER LOADABLE ROUTINES.;VSETUP:! TST RDBFLG ;REGION DEFINED YET?T BNE 1$ ;IF SO, BRANCHG; 9; FOLLOWING CODE GETS AND STORES TERMINAL NAME AND NUMBERE; SUB #14,SP ;MAKE ROOM ON STACK MOV SP,R2 ;ADDRESS -> R2- GLUN$S #2,R2 ;GET INFO FOR LUN 2 (TERMINAL)  MOV (SP)+,TNUM ;NAMEE MOV (SP)+,TNUM+2 ;NUMBERL ADD #10,SP ;CLEAN STACKH;I0 JSR PC,INIREG ;IF REGION NOT DEFINED, DEFINE IT' GTABAD SRFDPB,R2 ;ADDRESS OF DPB -> R2N;E;; FOLLOWING CODE INSERTED TO ENABLE DEBUGGING COPIES OF THEL9; DATA BASE MANAGER TO EXIST IN ACCOUNTS [200,16] (PEGGY)D7; AND [200,20] (BONNIE). IF THE SIGN-ON ACCOUNT IS NOTT=; [200,15] (RADIATION ONCOLOGY) OR [200,16] (PEGGY), BONNIE'SR:; COPY OF THE DATA BASE MANAGER IS USED, I.E., [200,20] IS ; ASSUMED.;2$ CMPB @#UICSTO,#15 ;IS IT [200,15] ?( BEQ 1$ ; IF YES, DON'T CHANGE DBM NAME$ CMPB @#UICSTO,#16 ;IS IT [200,16] ?1 BEQ 5$ ; IF YES, CHANGE DBM NAME TO DBP (PEGGY)D$ CMPB @#UICSTO,#17 ;IS IT [200,17] ?/ BEQ 4$ ; IF YES, CHANGE DBM NAME TO DBD (DAN) 3 MOV (PC)+,R4 ; ASSUME [200,20], PUT NEW NAME IN R4Y8 .RAD50 /DBB/ ; [200,20] NAME SHOULD BE ONCDBB (BONNIE) BR 6$/4$: MOV (PC)+,R4 ; [200,17], PUT NEW NAME IN R4B. .RAD50 /DBD/ ; NAME SHOULD BE ONCDBD (DAN) BR 6$/5$: MOV (PC)+,R4 ; [200,16], PUT NEW NAME IN R4;0 .RAD50 /DBP/ ; NAME SHOULD BE ONCDBP (PEGGY),6$: MOV R4,S.RRTN+2(R2) ;STORE AWAY NEW NAME0 MOV R4,VRCDPB-SRFDPB+R.VDTN+2(R2) ; IN 2 PLACES"1$: JSR PC,MAPREG ;MAP INTO REGION@ GTABAD SRFBUF,W.NSRB(R3) ;SET UP BUFFER ADDRESS IN WDB FOR SEND3 GTABAD MCX,R2 ;NOW RE-CALCULATE ADDRESS OF SYSRESD2 ADD MCXOFF,R2 ;MAPPING WINDOW WITHIN MCX, IN CASE- MOV R2,MCXADD ;IT HAS MOVED SINCE LAST TIME.N RTS PCA; 8; MEMORY MANAGEMENT SUBROUTINES FOR DATA BASE MANAGEMENT;,;;; CREREG/; ROUTINE TO DYNAMICALLY CREATE A UNIQUE REGIONU ; ON ENTRY:((; R3 HAS REGION DEFINITION BLOCK ADDRESS; RDB SIZE ALREADY FILLED IN;+ ; ON EXIT:$; 'C' CLEAR = SUCCESS, RDB FILLED IN2; 'C' SET = FAILURE, R4 HAS DIRECTIVE ERROR CODE;ACREREG: 1$:O@ BIS #,R.GSTS(R3) ;SET FLAGS? BIC #RS.CRR,R.GSTS(R3) ;MAKE SURE WE SAY NO REGION CREATED YETT4 CRRG$S R3 ;ATTEMPT TO CREATE AND ATTACH TO REGION BCS 5$ ;ON ERROR, BRANCHA; MOV RDB+R.GID,WDB+W.NRID ;MOVE REGION ID INTO WINDOW BL00\nannmml]ldOCKC7 BIT #RS.CRR,R.GSTS(R3) ;DID WE ACTUALLY CREATE REGION?I! BNE 2$ ;IF SO, SUCCESS: BRANCHR( JSR PC,MAPREG ;MAP INTO REGION WE FOUND( CMPB $R.TI+2(R5),TNUM+2 ;COMPARE NUMBER BEQ 4$ ;IF SAME, BRANCHR% JSR PC,REMAP ;AND MAP BACK TO SYSRES.+ GTABAD RDB,R3 ;PUT RDB ADDRESS BACK -> R3S3 DTRG$S R3 ;IF NOT, WE GOT SOMEBODY ELSE'S REGIONO ;SO DETACH IT( INC R.GNAM+2(R3) ;INCREMENT RAD50 NAME BR 1$ ;AND TRY AGAINO22$: MOV R.GNAM(R3),SRFBUF+$B.RNA ;SAVE REGION NAME! MOV R.GNAM+2(R3),SRFBUF+$B.RNA+2S' JSR PC,MAPREG ;MAP INTO CREATED REGIONE( MOV TNUM,$R.TI(R5) ;STORE TERMINAL NAME# MOV TNUM+2,$R.TI+2(R5) ;AND NUMBERF,4$: JSR PC,REMAP ;MAP BACK TO SYSRES FOR NOW CLC ;INDICATE SUCCESSR5$: RTS PC ;AND RETURN; ; INIREG2; ROUTINE TO GET MAPPING CONTEXT AND CREATE REGION ; ON ENTRY:N; ; ON EXIT:; RDBFLG SET TO 1 +; MCX FILLED WITH MAPPING CONTEXT FOR BASICN; RDB ADDRESS IN R3 ; 'C' CLEAR ON SUCCESS+; 'C' SET ON FAILURE, R4 HAS DSW ERROR CODE;VINIREG:(5 GTABAD MCX,R3 ;CURRENT CONTEXT BUFFER ADDRESS -> R3R GMCX$S R3 ;GET CURRENT CONTEXT3$:I TST 20(R3) ;CHECK NEXT WINDOW 2 BMI 2$ ;IF MINUS, THIS IS LAST WINDOW IN CONTEXT" ADD #20,R3 ;ELSE GO AROUND AGAIN) ADD #20,MCXOFF ;BUT KEEP TRACK OF OFFSETO BR 3$2$:M1 MOV W.NID(R3),WDB+W.NID ;WE'LL USE SYSRES WINDOW6 MOV W.NBAS(R3),WDB+W.NBAS ;AND ALSO SAME BASE ADDRESS" GTABAD RDB,R3 ;RDB ADDRESS -> R3$ JSR PC,CREREG ;CREATE UNIQUE REGION BCS 1$ ;ON ERROR, BRANCH- MOV #1,RDBFLG ;INDICATE WE NOW HAVE A REGIONR1$: RTS PC ;AND RETURNS;>; MAPREG/; ROUTINE TO MAP TO A REGION CREATED PREVIOUSLY; ; ON ENTRY:N; RDB HAS CREATED REGION%; WDB HAS APR, WINDOW SIZE, FLAGS SET0; ; ON EXIT:; R3 HAS ADDRESS OF WDBF#; R5 HAS ADDRESS OF REGION (160000); 'C' CLEAR IF SUCCESS ; 'C' SET IF FAILURE: R4 HAS DSW;VMAPREG:33 GTABAD WDB,R3 ;ADDRESS OF WINDOW FOR REGION -> R3," MAP$S R3 ;MAP THE ADDRESS WINDOW BCC 1$ ;IF OK, BRANCH& MOV @#$DSW,R4 ;DIRECTIVE STATUS -> R4)1$: MOV W.NBAS(R3),R5 ;BASE ADDRESS -> R5  RTS PCR;R; REMAP ,; ROUTINE TO RESTORE SYSRES MAPPING ON APR 7;I ; ON ENTRY:E4; MCX BUFFER FILLED IN WITH GET MAPPING CONTEXT INFO; FROM ORIGINAL BASIC CONFIGI3; MCXADD HAS ADDRESS OF LAST (SYSRES) WINDOW IN MCXI ; ON EXIT:; SYSRES MAPPED WITH APR7 ; MCX BUFFER UNCHANGED; REGISTERS USED: R2;AREMAP:8 MOV MCXADD,R2 ;ADDRESS OF WINDOW DEFINITION BLOCK -> R2 MAP$S R2 ;MAP BACK TO SYSRES RTS PC ;AND RETURNEND: .ENDTIVE STATUS -> R4)1$: MOV W.NBAS(R* :L.I.@8X@8@*8@$9Cy@Z`@:d @xh@*y`@y@s@(ryhSh *d\q,\qs,s8X88hh*_q, _*]K_] X .I.* @eL5 5 5 7 s%t5De& F :  .I.&*& eEԔ~*L E ,  C w xh:d *r 2 3 @e$9CyZ`*e  e ey`*8&kee&"s*)& keev* &!s p,  s*0.,e e\ק &y*Vק קRT`2yy*|2 eemU* E 7*5  w*  e; * Trn  ^e*q eeBVRe*:` ^Ne:y&s`y)& keev* &!s p,  s*0.,e e\ק &y*Vק קRT`2yy*|2 eemU* E00dnenGnJnn(kdd$ONCREG.ATK/-HD/-FP,ONCREG/-SP=ONCREGLB:[1,1]BSCPUR.STB/SS/STACK=0UNITS=0;8; FOLLOWING PATCH OPTIONS CAN BE USED TO CHANGE THE NAME9; OF THE DATA BASE HANDLER TASK WHICH IS CALLED BY ADDING8; THE TWO RAD50 WORDS FOR THE TASK NAME AFTER EACH PATCH/; OPTION STATEMENT AND REMOVING THE SEMICOLONS.;GBLPAT=ONCREG:SRFDPB+2:;GBLPAT=ONCREG:VRCDPB+2:/;; *************************** ; ONCREK.MAC; ***************************;; .MCALL ULOSTR ULOEPT ULOEND ULOSTR START,END ULOEPT ANYRET ULOEPT ALLRET ULOEPT ANYRT1 ULOEPT ALLRT1 ULOEPT ADDLV1 ULOEPT UPDLV1 ULOEPT LCKLV1 ULOEPT DLTLV1 ULOEPT RTNLV1 ULOEPT URNLV1 ULOEPT NAMLV1 ULOEND;!; GLOBALS FOR TKB PATCH REFERENCE; .GLOBL SRFDPB VRCDPB;; SYSTEM MACRO CALLS;& .MCALL VSDR$ VRCD$ SRDA$S CLEF$S DIR$) .MCALL WTSE$S SETF$S ASTX$S GMCX$S SRFR$* .MCALL CRAW$S CRRG$S DTRG$S WDBBK$ RDBBK$ .MCALL MAP$S GLUN$S;* ; DEFINE FLOATING REGISTERS USED;SAC0=%0;L; DEFINE REGION OFFSETS;O ONCDEF DEF$LO; B; FOLLOWING MACRO IS USED TO GET THE ABSOLUTE ADDRESS OF A LOCALLYD; DEFINED LABEL IN POSITION INDEPENDENT FASHION (NEEDED FOR LOADABLE ; ROUTINES).;O .MACRO GTABAD ADDRES,LOC  .NTYPE ...ATP,LOC .IF GT ...ATP-5 MOV PC,-(SP)Y ADD #ADDRES-.,(SP) MOV (SP)+,LOC .IFFA MOV PC,LOC$ ADD #ADDRES-.,LOC .ENDC .ENDM GTABAD;.;LEVFL = 1 ;DEFINE EVENT FLAG START:-MCX: .BLKB 20*4+2 ;BUFFER FOR MAPPING CONTEXTI)MCXADD: .WORD 0 ;ADDRESS OF SYSRES WINDOW /MCXOFF: .WORD 0 ;OFFSET INTO MCX TO CALC MCXADDR1TNUM: .BLKW 2 ;SPACE FOR TERMINAL NAME AND NUMBER/RBUF: .BLKW 3 ;BUFFER FOR RECEIVE BACK FROM DBMN6SRFBUF: .BLKW 8. ;8 WORD BUFFER FOR SEND BY REFERENCE@WDB: WDBBK$ 7,<<$R.TLN+77>/100>,,,,'RDBFLG: .WORD 0 ;REGION NOT CREATED YETA/RDB: RDBBK$ <<$R.TLN+77>/100>,ONCRGA,GEN,170000MSRFDPB: SRFR$ ONCDBMHVRCDPB: VRCD$ ONCDBM,2,2 ;DUMMY PARAMS FOR ADD AND LEN SO CAN CALL AGAIN;X; SUBROUTINES ANYRET AND ALLRETY; LOADABLE BASIC SUBROUTINES4; FOR RETRIEVAL OF RADIATION ONCOLOGY LEVEL1 RECORDS7; BY MATCHING EITHER ANY OR ALL OF THE MATCHING STRINGS ; BASIC CALLS:8; CALL "ANYRET"(F0,R0,R1,S$,D$,D [,D1$,D1] [,D2$,D2]...)8; CALL "ALLRET"( " " " " ); WHERE:; F0 IS RECORD INCREMENT; +1 FOR FORWARD SEARCH"; R0 IS SEQUENTIAL START INDICATOR"; 0 TO START AT BEGINNING OF FILE-; <>0 TO USE LAST RETRIEVAL+1 AS START POINTN0; R1 IS VARIABLE TO RECEIVE SUCCESS/FAILURE CODE; + = SUCCESS ; 0 = NONE FOUND (S$ UNCHANGED); - = FAILED DIRECTIVE STATUS4; -6 (ILLEGAL USER BUFFER) IS USED IF TOTAL LENGTH6; OF STRINGS EXCEEDS SCRATCH BUFFER SPACE AVAILABLE./; S$ IS STRING VARIABLE TO RECEIVE FOUND RECORD '; D$ D1$ ETC. ARE STRINGS FOR THE MATCH 3; D D1 ETC. ARE CORRESPONDING COL #'S TO START ATE; NOTE:05; THE SUM OF THE LENGTHS OF THE MATCHING STRINGS PLUSI7; 4* THE NUMBER OF STRINGS SHOULD BE LESS THAN OR EQUALN); TO THE SCRATCH BUFFER. IF NOT, THE USERR>; WILL RRECEIVE AN ILLEGAL USER BUFFER CODE RETURN IN R1 (-6).;I6; FOR THE ROUTINE "ANYRET" A MATCH ON ANY STRING (KEY)5; WILL RETRIEVE THAT RECORD. FOR THE ROUTINE "ALLRET"E$; ALL STRINGS (KEYS) MUST MUST MATCH;L+TYPSAV: .WORD 0 ;PLACE TO SAVE TYPE OF CALL ;IANYRT1:HDANYRET: MOV #<1+400*1>,TYPSAV ;REMEMBER THAT THIS IS "ANY" ON FILE 1 BR COMRETALLRT1:LDALLRET: MOV #<2+400*1>,TYPSAV ;REMEMBER THAT THIS IS "ALL" ON FILE 1;E4COMRET: JSR R4,@#GTRGPI ;GET ARGUMENTS IN PI FASHION .BYTE 1,1,2,4,0 .EVEN' JSR PC,SETUP ;DO INITIAL SET-UP THINGS1 BCC 1$ ;IF OK, BRANCHT$ LDCIF @#$DSW,AC0 ;ERROR CODE -> AC0 ADD #10,SP ;CLEAN STACKC( BR COMEN2 ;AND FINISH ERROR PROCESSING; 31$: MOV TYPSAV,$R.FCN(R5) ;PUT IN TYPE OF RETRIEVAL  CLR $R.L1F(R5) ;CLEAR CURRENT CLR $R.L2F(R5) ;FLAGS CLR $R.L3F(R5) 5 LDF (SP)+,AC0 ;GET INCREMENT (AND DIRECTION BY SIGN)RB STF AC0,SRFBUF+$B.M00lnannmml]ldIS ;AND STORE IN 8 WORD BUFFER (USING 2 WORDS)+ LDF (SP)+,AC0 ;GET RECORD START INDICATIONI CFCCN) BNE 5$ ;IF NON-ZERO, LEAVE PREVIOUS RFAD# CLR $R.L1R(R5) ;ELSE CLEAR OUT RFAF CLR $R.L1R+2(R5) ;@ CLR $R.L1R+4(R5) ;(ALL 3 WORDS)5$:S) MOV R5,R4 ;COPY START ADDRESS OF REGIONR4 ADD #$R.BUF,R4 ;AND MAKE R4 POINT TO SCRATCH BUFFER4 MOV #$R.BLN,$R.S1(R5) ;INIT BUFFER LENGTH REMAINING2$:.' MOV R4,-(SP) ;SAVE OUR PLACE IN BUFFERP/ JSR PC,REMAP ;MAP BACK TO SYSRES IN CASE ERRORS) JSR R4,@#GTRGPI ;GET SOME MORE ARGUMENTSU .BYTE 3,1,0 ;STRING AND COL #A .EVEN" JSR PC,MAPREG ;MAP BACK TO REGION( MOV (SP)+,R0 ;LEN OF STRING -> R0 AGAIN MOV (SP)+,R3 ;ADD -> R3 LDF (SP)+,AC0 ;COL # -> AC0& MOV (SP)+,R4 ;RESTORE PLACE IN BUFFER MOV R0,R2 ;COPY STRING LENGTHS& ADD #5,R2 ;ADD 2 WORDS PLUS ROUND UP BIC #1,R2 ;EVEN WORD LEN -> R2% SUB R2,$R.S1(R5) ;DECREMENT LEN LEFTM BLT 7$ ;IF NOT ENOUGH, BRANCH 4 STCFI AC0,(R4)+ ;STORE COLUMN NUMBER IN SEND BUFFER* MOV R0,(R4)+ ;PUT AWAY LEN IN SEND BUFFER BEQ 4$ ;IF ZERO, BRANCH1(3$: MOVB (R3)+,(R4)+ ;MOVE IN THE STRING SOB R0,3$4$: INC R4 ;ROUND UP+ BIC #1,R4 ;R5G/ JSR PC,@#SKIP00 ;GET NEXT NON-BLANK CHAR -> R2+ DEC R1 ;BACK UP TEXT PTR% CMPB R2,#', ;IS NEXT THING A COMMA?, BEQ 2$ ;IF SO, TRY FOR MORE#+ JSR PC,REMAP ;BACK TO SYSRES IN CASE ERROR " JSR PC,@#PARCHK ;CHECK FOR AT END( JSR PC,MAPREG ;AND NOW MAP REGION AGAIN3 MOV R5,R3 ;BUFFER ADDRESS -> R3 FOR ONE LAST TIMEE CLR (R4)+ ;PUT IN STOPPER)# JMP COMEND ;AND GO TO COMMON CODE457$: MOV #IE.SPC,R0 ;ERROR CODE (ILLEGAL BUFFER) -> R0 (COMERR: LDCIF R0,AC0 ;ERROR CODE -> AC0 BR COMEN2 ;AND GO FINISH8COMEND: JSR PC,SYNC ;GO SEND DATA AND RECEIVE SOME BACK TST R0 ;CHECK ON STATUSI BLT COMERR ;IF NEG, BRANCH. LDF $R.STS(R3),AC0 ;RETRIEVED RECORD # -> AC0COMEN2:N( MOV SP,R5 ;ADD OF RECORD # STORE -> R5 MOV R3,-(SP),2 JSR PC,@#NSTORE ;STORE THE RECORD # OR ERROR CODE MOV (SP)+,R3 + TSTF AC0 ;CHECK IF RECORD # OR ERROR CODEE CFCCP) BLE COMEN1 ;IF ERROR (NEGATIVE), BRANCHI9 ADD #$R.LV1,R3 ;OFFSET TO START OF LEVEL 1 RECORD BUFFER + ADD #12,R5 ;MOVE R5 UP TO NEXT STORE DATAG! MOV #$R.LN1,R4 ;STRING LEN -> R4S" JSR PC,@#SSTORE ;STORE THE STRING$COMEN1: ADD #24,SP ;CLEAN THE STACK JSR PC,REMAP ;REMAP TO SYSRES' RTS PC ;AND RETURN TO CALLING PROGRAM;V ; ENTRY POINTS ADDLV1 AND UPDLV1D; TO ADD A RECORD TO LEVEL 1 DATA FILE THROUGH THE DATA BASE MANAGER'; OR UPDATE AN EXISTING LEVEL 1 RECORD.C; ; BASIC CALL:E; CALL "ADDLV1"(S$,R);; CALL "UPDLV1"(S$,R)A;I; WHERE:#; S$ = STRING CONTAINING NEW RECORDE8; R = VARIABLE TO RECEIVE STATUS FROM DATA BASE MANAGER;M .ENABL LSB ADDLV1:E% MOV #3+<400*1>,TYPSAV ;ADD TO LEVEL1T BR WRTCOMUPDLV1:,% MOV #4+<400*1>,TYPSAV ;UPDATE LEVEL1MWRTCOM:R+ JSR R4,@#GTRGPI ;GET STRING TO BE WRITTEN+ .BYTE 3,2,0 ;AND ADDRESS FOR RETURN CODED .EVEN- JSR PC,@#PARCHK ;FINISH PROCESSING ARG LISTN JSR PC,SETUP ;DO INITIAL STUFF BCC 2$ ;IF OK, BRANCH, LDCIF @#$DSW,AC0 ;ELSE GET BAD CODE -> AC0,1$: ADD #4,SP ;PUSH PAST STRING DESCRIPTOR)8$: JSR PC,REMAP ;BACK TO SYSRES MAPPINGS0 MOV SP,R5 ;POINT TO STRING DESCRIPTOR FOR 'R' JSR PC,@#NSTORE ;STORE RESULTD ADD #12,SP ;CLEAN STACK RTS PC ;AND RETURN TO BASIC2$:E$ MOV TYPSAV,$R.FCN(R5) ;GET FUNCTION CMPB TYPSAV,#4 ;UPDATE? BNE 3$ ;IF NOT, BRANCH . BIT #$RF.LK,$R.L1F(R5) ;RECORD LOCKED FOR US? BNE 4$ ;IF NOT, OKN) CLRF AC0 ;ELSE, NO GO (STATUS OF ZERO)  BR 1$+3$: CLR $R.L1F(R5) ;SET NO CONTEXT DEFINEDD*4$: MOV R5,R4 ;COPY REGION ADDRESS -> R4% ADD #$R.BUF,R4 ;NOW POINT TO BUFFERS%11$: MOV 2(SP),R3 ;ADDRESS OF STRINGS MOV (SP),R0 ;LENGTH -> R0 BEQ 6$ ;IF ZERO, BRANCH%5$: MOVB (R3)+,(R4)+ ;MOVE IN STRING SOB R0,5$+6$: JSR PC,SYNC ;SEND THE REGION AND WAITU TST R0 ;EVERYTHING OK?P BGE 7$ ;IF SO, BRANCH. LDCIF R0,AC0 ;IF NOT, GET ERROR CODE -> AC0 BR 1$7$:E' LDF $R.STS(R5),AC0 ;GET STATUS -> AC0  BR 1$;O ; ENTRY POINTS LCKLV1 AND DLTLV14; TO LOCK EXISTI00tnenGnJnn(kddNG LEVEL 1 CONTEXT FROM OTHER ACCESS;N ; BASIC CALL:;D; CALL "LCKLV1"(S); CALL "DLTLV1"(S);V; WHERE:; S = RETURNED STATUSM; + = SUCCESS; 0 = NO CONTEXT "; - = ERROR IN PROCESSING REQUEST;+DLTLV1:N MOV #6+<400*1>,TYPSAV BR DLTLCKLCKLV1: % MOV #<5+400*1>,TYPSAV ;SAVE FUNCTIONHDLTLCK:( JSR R4,@#GTRGPI ;GET ADDRESS OF STATUS .BYTE 2,0 .EVEN" JSR PC,@#PARCHK ;FINISH ARG LIST JSR PC,SETUP , MOV TYPSAV,$R.FCN(R5) ;PUT IN FUNCTION CODE* JSR PC,SYNC ;SEND AND WAIT FOR RESPONSE% TST R0 ;CHECK FOR FUNCTIONAL ERRORA BGE 9$ ;IF OK, BRANCH& LDCIF R0,AC0 ;GET ERROR CODE -> AC0 BR 8$ ;AND GO FINISH+,9$: LDF $R.STS(R5),AC0 ;GET STATUS FROM DBM BR 8$ .DSABL LSB;(; ENTRY POINTS RTNLV1, URNLV1 AND NAMLV1; ; BASIC CALL:#;4; CALL "RTNLV1"(R$,R,S$); CALL "URNLV1"(R$,R,S$); CALL "NAMLV1"(R$,R,S$);; WHERE:;.-; R$ = STRING CONTAINING RETRIEVAL PARAMETER:P; RT NUMBER (5 CHARS); UNIT RECORD NUMBER (6 CHARS)J ; PATIENT NAME (UP TO 30 CHARS)*; R = VARIABLE TO RECEIVE RETURNED STATUS1; S$ = STRING VARIABLE TO RECEIVE RETURNED RECORDE;RRTNLV1:A MOV #7+<400*1>,TYPSAV BR RETCOMURNLV1:R MOV #8.+<400*1>,TYPSAVD BR RETCOMNAMLV1:S MOV #9.+<400*1>,TYPSAVNRETCOM:V+ JSR R4,@#GTRGPI ;GET ARGUMENTS TO FUNCTION" .BYTE 3,2,4,0 .EVEN/ JSR PC,@#PARCHK ;FINISH PROCESSING CLOSE PAREN JSR PC,SETUP ;DO INITIAL STUFFI BCC 2$ ;IF ALL OK, BRANCH $ LDCIF @#$DSW,AC0 ;ERROR CODE -> AC0/ ADD #4,SP ;PUSH PAST STRING DESCRIPTOR FOR R$) JMP COMEN2 ;GO TO ERROR FINISH%2$: CLR $R.L1F(R5) ;CLEAR STATUS BITSE* MOV TYPSAV,$R.FCN(R5) ;SAVE FUNCTION CODE MOV R5,R4 ;COPY REGION ADDRESS) ADD #$R.BUF,R4 ;OFFSET TO BUFFER ADDRESS CLR (R4)+ ;DUMMY COLUMN NUMBER MOV (SP)+,R0 ;STRING LENGTH MOV (SP)+,R3 ;STRING ADDRESSY$ MOV R0,(R4)+ ;DEPOSIT STRING LENGTH$ BEQ 4$ ;IF ZERO, NO STRING TO MOVE.3$: MOVB (R3)+,(R4)+ ;COPY IN RETRIEVAL STRING SOB R0,3$#4$: MOV R5,R3 ;COPY REGION ADDRESSA0 JMP COMEND ;AND GO FINISH LIKE OTHER RETRIEVAL;C@; FOLLOWING CODE SYNCHRONIZES THE SENDING OF A DATA BLOCK TO THEB; DATA BASE MANAGING PROGRAM AND THE RECEIPT OF DATA BACK FROM IT.;A'SYNC: CLEF$S #EVFL ;CLEAR EVENT FLAG 1 " GTABAD AST,R0 ;AST ADDRESS -> R0 SRDA$S R0 ;DECLARE ITR2 ADD #SRFDPB-AST,R0 ;SEND BY REF DPB ADDRESS -> R01 GTABAD WDB,S.RRBA(R0) ;PUT ABS ADD OF WDB IN DPB DIR$ R0 ;SEND DATA TO DBM TASK' MOV @#$DSW,R0 ;CHECK DIRECTIVE STATUS BLT 2$ ;IF NEG, BRANCH+ WTSE$S #EVFL ;AND WAIT FOR THE EVENT FLAGO&2$: SRDA$S #0 ;UN-DECLARE RECEIVE AST! RTS PC ;WE'VE RECEIVED THE DATAC;O; NOW THE AST ROUTINEI;PAST:( GTABAD VRCDPB,R0 ;RECEIVE DPB ADD -> R06 GTABAD RBUF+2,R.VDBA(R0) ;INIT RECEIVE BUFFER ADDRESS# MOV #1,R.VDBL(R0) ;LENGTH ONE WORDD DIR$ R0 ;RECEIVE THE DATAR) MOV @#$DSW,R0 ;RECORD STATUS OF RECEIVED2 SETF$S #EVFL ;SET EVENT FLAG TO RESUME MAIN TASK ASTX$S ;AND EXIT FROM AST;S; SETUPE); ROUTINE TO DO INITIAL SET-UP FOR ONCREGN?; THIS ROUTINE SHOULD BE EXECUTED EACH TIME ANY OF ENTRY POINTS;@; IN THIS LOADABLE ROUTINE IS CALLED. THE ROUTINE WILL DECIDE IFB; REGION AND OTHER INFO HAS BEEN ALREADY SET UP AND IF NOT, DO IT.A; IT ALSO WILL ADJUST ANY ABSOLUTE ADDRESS NUMBERS WHICH MAY HAVE#;; CHANGED BECAUSE OF BASIC LOADING OTHER LOADABLE ROUTINES.;VSETUP:! TST RDBFLG ;REGION DEFINED YET?T BNE 1$ ;IF SO, BRANCHG; 9; FOLLOWING CODE GETS AND STORES TERMINAL NAME AND NUMBERE; SUB #14,SP ;MAKE ROOM ON STACK MOV SP,R2 ;ADDRESS -> R2- GLUN$S #2,R2 ;GET INFO FOR LUN 2 (TERMINAL)  MOV (SP)+,TNUM ;NAMEE MOV (SP)+,TNUM+2 ;NUMBERL ADD #10,SP ;CLEAN STACKH;I0 JSR PC,INIREG ;IF REGION NOT DEFINED, DEFINE IT' GTABAD SRFDPB,R2 ;ADDRESS OF DPB -> R2N;E;; FOLLOWING CODE INSERTED TO ENABLE DEBUGGING COPIES OF THEL9; DATA BASE MANAGER TO EXIST IN ACCOUNTS [200,16] (PEGGY)D7; AND [200,20] (BONNIE). IF THE SIGN-ON ACCOUNT IS NOTT=; [200,15] (RADIATION ONCOLOGY) OR [200,16] (PEGGY), BONNIE'SR:; COPY OF THE DATA BASE MANAGER IS USED, I.E., [200,20] IS ; ASSUME00|nannmml]ldD.;2$ CMPB @#UICSTO,#15 ;IS IT [200,15] ?( BEQ 1$ ; IF YES, DON'T CHANGE DBM NAME$ CMPB @#UICSTO,#16 ;IS IT [200,16] ?1 BEQ 5$ ; IF YES, CHANGE DBM NAME TO DBP (PEGGY)D3 MOV (PC)+,R4 ; ASSUME [200,20], PUT NEW NAME IN R4E8 .RAD50 /DBB/ ; [200,20] NAME SHOULD BE ONCDBB (BONNIE) BR 6$/5$: MOV (PC)+,R4 ; [200,16], PUT NEW NAME IN R4.0 .RAD50 /DBP/ ; NAME SHOULD BE ONCDBP (PEGGY),6$: MOV R4,S.RRTN+2(R2) ;STORE AWAY NEW NAME0 MOV R4,VRCDPB-SRFDPB+R.VDTN+2(R2) ; IN 2 PLACES"1$: JSR PC,MAPREG ;MAP INTO REGION@ GTABAD SRFBUF,W.NSRB(R3) ;SET UP BUFFER ADDRESS IN WDB FOR SEND3 GTABAD MCX,R2 ;NOW RE-CALCULATE ADDRESS OF SYSRES;2 ADD MCXOFF,R2 ;MAPPING WINDOW WITHIN MCX, IN CASE- MOV R2,MCXADD ;IT HAS MOVED SINCE LAST TIME.A RTS PC ;[8; MEMORY MANAGEMENT SUBROUTINES FOR DATA BASE MANAGEMENT;,;;; CREREG/; ROUTINE TO DYNAMICALLY CREATE A UNIQUE REGIONU ; ON ENTRY:((; R3 HAS REGION DEFINITION BLOCK ADDRESS; RDB SIZE ALREADY FILLED IN;+ ; ON EXIT:$; 'C' CLEAR = SUCCESS, RDB FILLED IN2; 'C' SET = FAILURE, R4 HAS DIRECTIVE ERROR CODE;ACREREG: 1$:O@ BIS #,R.GSTS(R3) ;SET FLAGS? BIC #RS.CRR,R.GSTS(R3) ;MAKE SURE WE SAY NO REGION CREATED YETT4 CRRG$S R3 ;ATTEMPT TO CREATE AND ATTACH TO REGION BCS 5$ ;ON ERROR, BRANCHA; MOV RDB+R.GID,WDB+W.NRID ;MOVE REGION ID INTO WINDOW BLOCKC7 BIT #RS.CRR,R.GSTS(R3) ;DID WE ACTUALLY CREATE REGION?I! BNE 2$ ;IF SO, SUCCESS: BRANCHR( JSR PC,MAPREG ;MAP INTO REGION WE FOUND( CMPB $R.TI+2(R5),TNUM+2 ;COMPARE NUMBER BEQ 4$ ;IF SAME, BRANCHR% JSR PC,REMAP ;AND MAP BACK TO SYSRES.+ GTABAD RDB,R3 ;PUT RDB ADDRESS BACK -> R3S3 DTRG$S R3 ;IF NOT, WE GOT SOMEBODY ELSE'S REGIONO ;SO DETACH IT( INC R.GNAM+2(R3) ;INCREMENT RAD50 NAME BR 1$ ;AND TRY AGAINO22$: MOV R.GNAM(R3),SRFBUF+$B.RNA ;SAVE REGION NAME! MOV R.GNAM+2(R3),SRFBUF+$B.RNA+2S' JSR PC,MAPREG ;MAP INTO CREATED REGIONE( MOV TNUM,$R.TI(R5) ;STORE TERMINAL NAME# MOV TNUM+2,$R.TI+2(R5) ;AND NUMBERF,4$: JSR PC,REMAP ;MAP BACK TO SYSRES FOR NOW CLC ;INDICATE SUCCESSR5$: RTS PC ;AND RETURN; ; INIREG2; ROUTINE TO GET MAPPING CONTEXT AND CREATE REGION ; ON ENTRY:N; ; ON EXIT:; RDBFLG SET TO 1 +; MCX FILLED WITH MAPPING CONTEXT FOR BASICN; RDB ADDRESS IN R3 ; 'C' CLEAR ON SUCCESS+; 'C' SET ON FAILURE, R4 HAS DSW ERROR CODE;VINIREG:(5 GTABAD MCX,R3 ;CURRENT CONTEXT BUFFER ADDRESS -> R3R GMCX$S R3 ;GET CURRENT CONTEXT3$:I TST 20(R3) ;CHECK NEXT WINDOW 2 BMI 2$ ;IF MINUS, THIS IS LAST WINDOW IN CONTEXT" ADD #20,R3 ;ELSE GO AROUND AGAIN) ADD #20,MCXOFF ;BUT KEEP TRACK OF OFFSETO BR 3$2$:M1 MOV W.NID(R3),WDB+W.NID ;WE'LL USE SYSRES WINDOW6 MOV W.NBAS(R3),WDB+W.NBAS ;AND ALSO SAME BASE ADDRESS" GTABAD RDB,R3 ;RDB ADDRESS -> R3$ JSR PC,CREREG ;CREATE UNIQUE REGION BCS 1$ ;ON ERROR, BRANCH- MOV #1,RDBFLG ;INDICATE WE NOW HAVE A REGIONR1$: RTS PC ;AND RETURNS;>; MAPREG/; ROUTINE TO MAP TO A REGION CREATED PREVIOUSLY; ; ON ENTRY:N; RDB HAS CREATED REGION%; WDB HAS APR, WINDOW SIZE, FLAGS SET0; ; ON EXIT:; R3 HAS ADDRESS OF WDBF#; R5 HAS ADDRESS OF REGION (160000); 'C' CLEAR IF SUCCESS ; 'C' SET IF FAILURE: R4 HAS DSW;VMAPREG:33 GTABAD WDB,R3 ;ADDRESS OF WINDOW FOR REGION -> R3," MAP$S R3 ;MAP THE ADDRESS WINDOW BCC 1$ ;IF OK, BRANCH& MOV @#$DSW,R4 ;DIRECTIVE STATUS -> R4)1$: MOV W.NBAS(R3),R5 ;BASE ADDRESS -> R5  RTS PCR;R; REMAP ,; ROUTINE TO RESTORE SYSRES MAPPING ON APR 7;I ; ON ENTRY:E4; MCX BUFFER FILLED IN WITH GET MAPPING CONTEXT INFO; FROM ORIGINAL BASIC CONFIGI3; MCXADD HAS ADDRESS OF LAST (SYSRES) WINDOW IN MCXI ; ON EXIT:; SYSRES MAPPED WITH APR7 ; MCX BUFFER UNCHANGED; REGISTERS USED: R2;AREMAP:8 MOV MCXADD,R2 ;ADDRESS OF WINDOW DEFINITION BLOCK -> R2 MAP$S R2 ;MAP BACK TO SYSRES RTS PC ;AND RETURNEND: .ENDTIVE STATUS -> R4)1$: MOV W.NBAS(R3),R5 ;BASE ADDRESS -> R5  RTS PCR;R; REMAP ,; ROUTINE TO RESTORE SYSRES MAPPING ON APR 7;I ; ON ENTRY:E4; MCX BUFFER FILLED IN WITH GET MAPPING CONTEX00nenGnJnn(kdd;; SUBROUTINE PEDRET; LOADABLE BASIC SUBROUTINE@; TO SEND DATA TO A DATA BASE HANDLING TASK AND RECEIVE A RECORD#; BACK WHICH MATCHES A SENDING KEY.; .MCALL ULODHD ULODHD START,END,FANYRT,FALLRT;; SYSTEM MACRO CALLS;& .MCALL VSDR$ VRCD$ SRDA$S CLEF$S DIR$* .MCALL ALTP$S WTSE$S SETF$S ASTX$S GTSK$S; ; DEFINE FLOATING REGISTERS USED;AC0=%0;0; FORMAT OF DATA WHICH IS SENT TO DATA BASE TASK;&; WORD 1 ;CONTAINS OPERATION TYPE (1); WORD 2 ;FILE #'; WORD 3-4 ;RECORD # (DOUBLE PRECISION)$; WORD 5 ;COL # TO START COMPARISON!; WORD 6 ;LENGTH OF MATCH STRINGS; BYTE 14-? ;STRING ITSELF;W-; FORMAT OF DATA RECEIVED FROM DATA BASE TASKD; WORD 1-2 ;TASK NAME (PEDDBM); WORD 3-4 ;DBL. PREC. REC #; WORD 5 ;LEN OF STRING; BYTE 12-? ;RECORD STRING; WORD ;ZERO FOR STOPPER;SEVFL = 1 ;DEFINE EVENT FLAGT!STPRI = 45. ;AND STANDBY PRIORITYOSTART:VSRDPB: VSDR$ PEDDBM,,55.,,,2,2HVRCDPB: VRCD$ PEDDBM,2,2 ;DUMMY PARAMS FOR ADD AND LEN SO CAN CALL AGAIN8COMEND: JSR PC,SYNC ;GO SEND DATA AND RECEIVE SOME BACK. MOV @#ENUDAT,R3 ;START OF RECEIVED DATA -> R3( ADD #4,R3 ;SKIP OVER SENDING TASK NAME( MOV SP,R5 ;ADD OF RECORD # STORE -> R5 TST R0 ;CHECK ON STATUS  BLT 3$ ;IF NEG, BRANCH% SETL ;GET RECEIVED RECORD # -> AC0  LDCLF (R3)+,AC0 ;$ SETI ;BACK TO SINGLE INTEGER MODE$ JSR PC,@#NSTORE ;STORE THE RECORD #+ ADD #12,R5 ;MOVE R5 UP TO NEXT STORE DATAM MOV (R3)+,R4 ;STRING LEN -> R4M$ BEQ 4$ ;IF NO STRING, DON'T MODIFY" JSR PC,@#SSTORE ;STORE THE STRING 4$: ADD #24,SP ;CLEAN THE STACK' RTS PC ;AND RETURN TO CALLING PROGRAMA$3$: LDCIF R0,AC0 ;ERROR CODE -> AC0 JSR PC,@#NSTORE ;PUT IT AWAYO BR 4$ ;AND FINISH UP;T@; FOLLOWING CODE SYNCHRONIZES THE SENDING OF A DATA BLOCK TO THEB; DATA BASE MANAGING PROGRAM AND THE RECEIPT OF DATA BACK FROM IT.;E'SYNC: CLEF$S #EVFL ;CLEAR EVENT FLAG 1O) MOV R2,R0 ;COPY THE ONE ADDRESS WE KNOWE1 ADD #AST-VSRDPB,R0 ;MAKE IT POINT TO AST ROUTINE; SRDA$S R0 ;DECLARE ITY DIR$ R2 ;SEND DATA TO DBM TASK$ MOV @#0,R0 ;CHECK DIRECTIVE STATUS BLT 2$ ;IF NEG, BRANCH. ALTP$S ,#STPRI ;PUT PRIORITY DOWN TO STANDBY+ WTSE$S #EVFL ;AND WAIT FOR THE EVENT FLAG &2$: SRDA$S #0 ;UN-DECLARE RECEIVE AST! RTS PC ;WE'VE RECEIVED THE DATAC;O; NOW THE AST ROUTINEI;P'AST: ALTP$S ;BACK TO DEFAULT PRIORITYI% MOV R2,R0 ;COPY THE ADDRESS WE KNOWT4 ADD #VRCDPB-VSRDPB,R0 ;MAKE R0 POINT TO RECEIVE DPB MOV @#ENDUSR,R3 ;CALCULATEP# SUB @#ENUDAT,R3 ;AVAILABLE STORAGEC+ SUB #4,R3 ;SUBTRACT SPACE FOR SENDER NAMEM/ CMP R3,#203 ;IS IT BIGGER THAN MAX WE CAN USEN BLE 1$ ;IF NOT, BRANCH& MOV #203,R3 ;IF SO, REPLACE WITH MAX&1$: MOV R3,R.VDBL(R0) ;AND PUT LEN AND MOV @#ENUDAT,R3 ;ADDRESS IN DPB MOV R3,R.VDBA(R0) DIR$ R0 ;RECEIVE THE DATAO& MOV @#0,R0 ;RECORD STATUS OF RECEIVE2 SETF$S #EVFL ;SET EVENT FLAG TO RESUME MAIN TASK ASTX$S ;AND EXIT FROM AST;,; SUBROUTINES FANYRT AND FALLRT; LOADABLE BASIC SUBROUTINES8; FOR RETRIEVAL OF PEDIATRIC BIOCHEM LEVEL 1 - 4 RECORDS7; BY MATCHING EITHER ANY OR ALL OF THE MATCHING STRINGSN; BASIC CALLS:8; CALL "FANYRT"(F0,R0,R1,S$,D$,D [,D1$,D1] [,D2$,D2]...)8; CALL "FALLRT"( " " " " ); WHERE:; F0 IS FILE # FOR RETRIEVAL; R0 IS RECORD # TO START FROM*; R1 IS VARIABLE TO RECEIVE FOUND RECORD # ; 0 = NONE FOUND (S$ UNCHANGED); - = FAILED DIRECTIVE STATUS/; S$ IS STRING VARIABLE TO RECEIVE FOUND RECORDR'; D$ D1$ ETC. ARE STRINGS FOR THE MATCHE3; D D1 ETC. ARE CORRESPONDING COL #'S TO START ATY; NOTE: 5; THE SUM OF THE LENGTHS OF THE MATCHING STRINGS PLUSL7; 4* THE NUMBER OF STRINGS SHOULD BE LESS THAN OR EQUAL.6; TO THE RECEIVED STRING LENGTH (S$). IF NOT, THE USER; RISKS A MEMORY PROTECT ERROR.R;T6; FOR THE ROUTINE "FANYRT" A MATCH ON ANY STRING (KEY)5; WILL RETRIEVE THAT RECORD. FOR THE ROUTINE "ALLRET"N$; ALL STRINGS (KEYS) MUST MUST MATCH;$+TYPSAV: .WORD 0 ;PLACE TO SAVE TYPE OF CALL;$2FANYRT: MOV #1,TYPSAV ;REMEMBER THAT THIS IS "ANY" BR COMRET2FALLRT: MOV #2,TYPSA00nnnmml]ldV ;REMEMBER THAT THIS IS "ALL";L4COMRET: JSR R4,@#GTRGPI ;GET ARGUMENTS IN PI FASHION .BYTE 1,1,2,4,0 .EVEN& MOV 30(SP),R0 ;LEN OF STRING S$ -> R0% ADD #16,R0 ;ADD LEN OF OTHER PARAMS . JSR PC,@#TSTU00 ;CHECK FOR ROOM, R5 AT ENUDAT BHIS 1$ ;IF OK, BRANCH OVFERR ;ELSE OVERFLOW ERROR)1$: MOV PC,R2 ;LET'S RECORD WHERE WE ARET9PCREF1: SUB #PCREF1-VSRDPB,R2 ;AND CALCULATE START OF DPB , MOV R5,S.DRBA(R2) ;MOVE IN ADDRESS OF BLOCK' MOV #6,S.DRBL(R2) ;LEN OF OTHER PARAMS;L9; FOLLOWING CODE INSERTED TO ENABLE DEBUGGING COPY OF THE A; DATA BASE MANAGER TO EXIST IN ACCOUNTS [250,104] AND [250,103].V; ONLY 103 AND 104 ARE CHECKED. ;-* SUB #40,SP ;GET ROOM ON STACK FOR BUFFER! MOV SP,R4 ;BUFFER ADDRESS -> R4 % GTSK$S R4 ;GET TASK PARAMS ON STACK/ CMPB 16(SP),#104 ;IS LAST PART OF ACCOUNT 104?E( BNE 5$ ;IF NOT, CHECK FOR ACCOUNT #103( MOV (PC)+,R4 ;IF SO, PUT NEW NAME IN R40 .RAD50 /DBD/ ;104 TASK NAME SHOULD BE "PEDDBD") MOV R4,S.DRTN+2(R2) ;STORE AWAY NEW NAME/ MOV R4,VRCDPB-VSRDPB+R.VDTN+2(R2) ;IN 2 PLACESY JMP 1$25$: CMPB 16(SP),#103 ;IS LAST PART OF ACCOUNT 103?# BNE 1$ ;IF NOT, DON'T DO ANYTHINGE( MOV (PC)+,R4 ;IF SO, PUT NEW NAME IN R40 .RAD50 /DBP/ ;103 TASK NAME SHOULD BE "PEDDBP") MOV R4,S.DRTN+2(R2) ;STORE AWAY NEW NAME. MOV R4,VRCDPB-VSRDPB+R.VDTN+2(R2);IN 2 PLACES1$: ADD #40,SP ;CLEAN UP STACKO; + MOV TYPSAV,(R5)+ ;PUT IN TYPE OF RETRIEVAL4 SETI ;MAKE SURE INTEGER MODEH% LDF (SP)+,AC0 ;GET FILE # FROM STACK;, STCFI AC0,(R5)+ ;PUT SINGLE WD IN SEND LIST SETL ;SET LONG INTEGERJ) LDF (SP)+,AC0 ;GET START RECORD # -> AC0O) STCFL AC0,(R5)+ ;AND PUT IT IN SEND LISTA SETI ;LEAVING FOUND REC # ADD ;AND STRING ADD ON STACK* MOV @#ENUDAT,-(SP) ;SAVE END OF USER DATA MOV R5,-(SP) ;SAVE R5 MOV R2,-(SP) ;AND R2*2$: MOV R5,R4 ;CALCULATE TEMPORARY END OF, ADD #4,R4 ;USER DATA SO WE DON'T OVERWRITE MOV R4,@#ENUDAT ;SEND BUFFER) JSR R4,@#GTRGPI ;GET SOME MORE ARGUMENTS+ .BYTE 3,1,0 ;STRING AND COL #C .EVEN MOV 10(SP),R2 ;RESTORE R2 MOV 12(SP),R5 ;AND R5 LDF 4(SP),AC0 ;COL # -> AC0" STCFI AC0,(R5)+ ;INTO SEND BUFFER" MOV (SP),R0 ;LEN OF STRING -> R0" ADD #5,R0 ;ROUND UP TO NEXT WORD ASR R0 ;PLUS OTHER PARAMS@/ ADD R0,S.DRBL(R2) ;AND ADD IT TO BUFFER LENGTHP( MOV (SP)+,R0 ;LEN OF STRING -> R0 AGAIN MOV (SP)+,R3 ;ADD -> R3* MOV R0,(R5)+ ;PUT AWAY LEN IN SEND BUFFER BEQ 4$ ;IF ZERO, BRANCHD(3$: MOVB (R3)+,(R5)+ ;MOVE IN THE STRING SOB R0,3$4$: INC R5 ;ROUND UPS BIC #1,R5 ;R5* ADD #4,SP ;CLEAN OFF THE COLUMN # PARAMS MOV R5,2(SP) ;RE-SAVE R5A/ JSR PC,@#SKIP00 ;GET NEXT NON-BLANK CHAR -> R2F DEC R1 ;BACK UP TEXT PTR% CMPB R2,#', ;IS NEXT THING A COMMA?X BEQ 2$ ;IF SO, TRY FOR MORER" JSR PC,@#PARCHK ;CHECK FOR AT END MOV (SP)+,R2 ;RESTORE R2P MOV (SP)+,R5 ;AND R5 6 MOV (SP)+,@#ENUDAT ;RESTORE PREVIOUS END OF USER DATA CLR (R5)+ ;PUT IN STOPPER4# JMP COMEND ;AND GO TO COMMON CODE(END: .END THE STRING SOB R0,3$4$: INC R5 ;ROUND UPS BIC #1,R5 ;R5* ADD #4,SP ;CLEAN OFF T4; POSASM.CMD -- Assembly command file (MACRO source);H.S. SPACIL/86.08.257;"MACRO/OBJECT:BASIC0 =BASPRE,BASIC0!MACRO/OBJECT:BASIC1 BASPRE,BASIC1 !MACRO/OBJECT:BASIC2 BASPRE,BASIC2 !MACRO/OBJECT:BASIC3 BASPRE,BASIC3V!MACRO/OBJECT:BASIC4 BASPRE,BASIC4N;N MACRO ALOG MACRO ATAN MACRO EXPE MACRO SINE MACRO SQRT;L!MACRO/OBJECT:IDNTFY BASPRE,IDNTFYN#MACRO/OBJECT:IMPURSNGU BASPRE,IMPUR MACRO CATB;U;2';BASPOS.CMD - Task builder command file;H.S. SPACIL/86.08.28S; BASPOS/FP=BASPOS/MP ;A; ssign installed task namel;M TASK=BASPOS;S/; Set stack size, number of tsk units (decimal)R;A STACK=256/UNITS=16; .; Define OP.MXL to be same as Units, but octal;GBLDEF=OP.MXL:20;A; Assign device LUNS (decimal);A ASG=TI:2:3ASG=SY:4:5:6:7:8:9; A; Set maximum buffer size (decimal) only if any file to be openedA@; for I/O operations will exceed the default of 133 bytes/record0; by substituting an appropriate value for ; >; Note that Kermit-11 downloads text00nnnJnn(kdd files at 160 bytes/record;a; MAXBUF=;B%; Equate P/OS symbols to LUNS (octal) ; GBLDEF=TT$LUN:2 ;TERMINAL I/O"GBLDEF=MS$LUN:3 ;MESSAGE SERVICESDGBLDEF=WC$LUN:0 ;OLDFIL/NEWFIL & CALLABLE PRINT SERVICES - NOT USED0GBLDEF=HL$LUN:0 ;HELP FRAME SERVICES - NOT USED0GBLDEF=MN$LUN:0 ;MENU FRAME SERVICES - NOT USED; ; Define I/O event flag (octal)r;oGBLDEF=TT$EFN:1e;f; Define cluster scheme;yCLSTR=RMSRES,POSRES:R0;e;l;f2;BASPOS.ODL - Task Builder overlay descriptor file;H.S. SPACIL/86.08.25d;a .ROOT USER-RMSROTUSER: .FCTR BASN-BASS-BASP.BASN: .FCTR BASIC0-BASIC1-BASIC2-BASIC3-BASIC4"BASS: .FCTR ALOG-ATAN-EXP-SIN-SQRT BASP .FCTR IDNTFY-IMPURSNGU-CATB@LB:[1,5]RMSRLXS .END ;O;S;;LB0:[1,2]BASIC.CMDP A.DISABLE DISPLAY.ENABLE SUBSTITUTION .ENABLE QUIETR RUN/COMMAND:"BASPOS 'P1'" BASPOSvent flag (octal)r;oGBLDEF=TT$EFN:1e;f; Define cluster scheme;yCLSTR=RMSRES,POSRES:R0;e;l;f2;BASPOS.ODL - Task Builder overlay descriptor fi < Notes to using basic under pro POS operating system L The following information has been furnished by H. Stephen Spacil on3 installing MRH BASIC on a PRO. Thanks H. !! eL Installation was done on a PRO-380 under P/OS v3.0 plus the Pro Tool Kit v3.0. tL (All POS command files have been combined in the file POSALL.CMD) L Comment out the reference to SPAWNB in IMPUR.MAC. (There is some un-L known difference between IAS/RSX spawn and P/OS spawn, and it does not yet work.) F Edit BASPRE.MAC to only define the following conditionals:! RSX11M (Generate RSX11m version)& SNGUSR (Generate Single user version)C M11EXT (RSX11m supports task extend if running out of room)2 DEFVAR (Automatically create undefined variables)5 FULTXT (Create full text error messages for 11m/Pos) u3 Compile the MACRO sources using POSASM.CMD.e K Link the objects using BASPOS.CMD. If necessary, BASPOS.CMD may be K edited to change task name or increasing the size of the file I/OfF buffer, (which now defaults to a maximum of 133 bytes/record.) g> Copy BASPOS.TSK to the tool kit directory, "APPL$DIR:" t) Install BASPOS using the command:n i) INSTALL/NOREMOVE APPL$DIR:BASPOSs mK To avoid problems with just running BASPRO, and to enable passing a K command line to it, one can use BASIC.CMD, which should be moved tomK LB:[1,2]. The 'P1' parameter will be passed to BASPRO on startup.eK Note that no spaces may be in the parameter, so "@BASIC ?4*3+2")G will give you the answer of "14" but "@BASIC ? 4*3+2" will not.R K Also note that if BASPOS is not installed, the last line of BASIC.N CMD must be changed to 2 RUN/COMMAND:"BASPOS 'P1'" APPL$DIR:BASPOS sL This will also be slower, due to the time involved in installing the task. E Finally not that if one wants to just have a version that is acti- E vated by a RUN command, (and does not try to get a command line,)E one can define the variable PRO to disable the attempt to obtain ant& initial command line from the system.if BASPOS is not installed, the last line of BASIC.N CMD must be changed to 2 RUN/COMMAND:"BASPOS 'P1'" APPL$DIR:BASPOS  DF  T P+ RSX BASIC - MICHAEL REESE VERSIONT F AUTHORS: L. Simpson, F. Borger, Michael Reese Medical Center, Chicago, ILO FC Operating IAS, RSX-11D, RSX-11M, VMS (compatibility mode)  S$ Source Language: MACRO-11 F Special hardware: Floating point processor or FPP emulator (supplied.)T ' Keywords: BASIC, Reese Basice F 00nnnmml]ld Abstract: Reese Basic is a highly upgraded version of what5 used to be a DECUS library program for DOS.S EF 1. Full FILES-11 I/O is supported, (fixed length random ac-& cess, shared mode, etc.) F 2. String functions and user defined functions are muchF more flexible than in either the original version or in DEC's BASIC-11.rF 3. Multi-user implementation is supported with separate= pure and impure areas. (IAS and RSX-11D only.)gF 4. Since it is an interpreter, it includes the special de-9 bugging commands: STEP, CON and SET TRACE.x lF 5. Although an interpreter, significant manipulation of the; source program is done to speed up operation. E 6. OVERLAY and a data preserving CHAIN are also supported. F 7. A clean "break" feature is implemented via the TT handler. F 8. a number of BASIC+2-like features have been added in-F cluding: virtual arrays, integer and byte variables,/ continued lines and IF-THEN-ELSE.E C 9. The capability of Spawning another task is supported.f e B MEDIA: 1200' Magtape, 1600BPI, FORMAT: BRU, VMS Backup F PAGE 2F 29-AUG-86  3 Installation guidelinesf u F The First BRU backup set contains the master IAS version.F The current task version runs under version 3.2 of IAS. ItF is a full blown version, with a seperate shared library forF the interpreter code. The only thing one should have to doF is to install things using IASINS.cmd and move the errorF message text file to LB:[1,2]. This is all contained in backup set IAS.  F The second BRU backup set contains the RSX11M or VMS ver-F sion. This is a subset built to run on our VAX in compati-F bility mode. RSX11M does not support shared code versions.F The 11m version does not support error messages in a messageF file, 11m users should not bother with trying to generate aF message file. The 11M version now gives a full error mes-F sage from internal error messages. This is a full workingF version of 11M basic. 11M programmers should really notF have to look at the IAS backup set. This is all contained in RSX11M. yF The third file on the tape is a BRU backup set of DAMMITF COOKIE, MURPHY and MAY. These are included because they areF fun, but also because they are part of the final test pro-F gram, TIMSPOT.BAS. If TIMSPOT.BAS executes correctly, (on> your VT100 compatible terminal,) everything is well. eF The last file on the tape is a VMS backup set of the RSX11F distribution. This gets around some BRU restrictions about% restoring to ODS2 volumns. oF The following is a quick guide to the steps required to re- build basic. e FOR IAS: F 1. Print out BASPRE.MAC and decide what changes you want to make. S8 2. Assemble everything using 11DASM.CMD. mF 3. Use BSCALL.CMD to remove all older versions, (in-F cluding the library, etc,) and install the new ver-F sion. (BSCALL.BUG will install a test versionD without doing anything with the current version.) FOR RSX11M F 1. Print out BASPRE.MAC and decide what changes youF want to make. (Realize that shared code under 11M" does not work.) 15 2. Assemble sources using 11MASM.CMD00nnnJnn(kdd.m F PAGE 3F 29-AUG-86 s l* 3. Tkb using BIGBASIC.CMD. d- Some Notes   OF All IAS users may not be aware of BBR. This program enablesF you to spy on the progress of a basic program executing onF any terminal. Its often a great help in debugging anotherF user's problem. It unfortunately only works for the IAS version. F The command file BUILD.CMD is also a good way for first time@ users to work their way thru re-doing the IAS version.  From: Frank R. Borger To: Basic UsersD Subject: Summary of changes to Michael Reese Basic August 1985  a sD The following changes have been made to make basic work nicely with lower case input:  sK This version of basic automatically converts all lower case char-uK acters to upper case, thus Program source may be in lower case.oK saving a program via the "save" command will result in an allrK upper case version. Case conversion does not take place under# the following conditions:mE 1. During string input via a regular "INPUT" command.o g' 2. During "INPUT LINE".w K 3. On source text enclosed in quotes. (This includes prompta9 strings and variables, which now may be lower case.)o p5 4. On source text in a comment field. E Note that string comparisons are still case sensitive. To enable rD input of commands, etc. in lower case a new SET command has beenD added, SET UPPER ON/OFF. The following is an enhanced (and cor-* rected) description of the SET command. d; 3.14 SET PROMPT/TRACE/PASS-ALL/ECHO/UPPER ON/OFF  K This statement is used to set or clear a number of system condi-sK tions. The number of conditions is likely to increase in the fu-rK ture as functionality is added. Conditions now serviced include:e n! TRACE: Default is OFF.oK SET TRACE is equivalent to the TRACE verb and should be used inNK preference to it because the TRACE verb is expected to disappear 1 in future releases of this interpreter.P -# PROMPT: Default is ON. K The PROMPT condition is used to turn the INPUT and INPUT LINE K question mark prompt on or off. The OFF mode is designed for K special screen or page formatting and may be used in conjunction ! with the BREAK command.  ! UPPER: Default is OFF.EK Causes string variables read with an "INPUT" statement to be con- K verted to upper case. Useful for command parsers, specifyingt file names, etc. f N* PASS-ALL-INPUT: Default is OFF.K Causes reads to be done with TF.RAL set. Note that ctrl-C, K ctrl-O, ctrl-Q, ctrl-S and ctrl-X will have their usual effectaK from a terminal, unless the terminal is set to be BINARY. Turned ! OFF when program STOPS.E * PASS-ALL-PRINT: Default is OFF.K Causes writes to be done with TF.WAL set. Note that no carriageoK control characters will be added to any output. Turned OFF when K program STOPS. ,fg 1 ECHO: Default is ON. If turned off,tK causes terminal reads to be done with TF.RNE. No input will ben1 echoed. Turned OFF when program STOPS.r Example:! 210 SET PROMPT OFF  220 SET TRACE ONrD The following change has been made to the INPUT command. (Previo-D usly the INPUT command rejected lower case ascii data, and only0 the INPUT LINE command could read lower case. ." INPUT V1,V2,V3 etc.K Where N is an optional file number and V1, V2, V3 et00nnnnml]ldc. are legaleK string or numeric variable names. The second form follows theTK rules for random access described for the PRINT statement.OK Numeric data must be separated by commas or spaces, successivenK string variables must be separated by a comma after the requiredeK number of characters have been typed in. A character legality.K check is performed to ensure that all characters are between oc-lK tal ASCII codes 40 and 137 inclusive and 11 (tab). If a "SETvK UPPER ON" command has been issued, lower case ascii will be con-c verted to upper case.s eK Under RSX, BAS cannot spawn itself, making life a little harder.eK You can get around this by installing separate versions as ...BA1q ...BA2 etc.rK Under VMS, BAS can spawn anything that has a 3-character .EXEs: file in the standard system account, SYS$SYSTEM. K The RSX11M and P/OS versions now have imbedded error messages. No K more looking in the back of the manual. The only thing they don't . do is report the FCS error code too.K P/OS users should be aware of the conditional assembly in BASPREaK which prevents the error 28. error on starting up. (This essenti-2K ally omits the initial GMCR$ call which was commented out on thetK version that seems to be floating around on a lot of bulletin bo-  ards.)K I tried to go thru both the IAS and RSX11M versions to get rid of K obsolete and confusing command files. In general both now haveeK been cleaned up. (Anything that was in [1,203] on any earlier vera9 sions of this package are now in the VMS part.)28. error on starting up. (This essenti-2K ally omits the initial GMCR$ call which was commented out on thetK version that seems to be floating around on a lot of bulletin bo-  ards.)3REVSTR,REVSTR/-SP=LB:[1,202]LODMAC/ML,[1,202]REVSTR (U 05JU85L^qy#  @f UBa՘~e Te10 ! TEST OF LOADABLE ROUTINE20 DIM A$[60]V,B$[60]V30 LOAD "REVSTR.ATK"40 INPUT "STRING ";A$50 CALL "REVSTR"(A$,B$) 60 PRINT B$ 70 GOTO 4000nnnln(kdd$REVSTR.ATK/-HD/-FP,REVSTR/-SP=REVSTRLB:[1,1]BSCPUR.STB/SS/STACK=0UNITS=0/;(; TEST SUBROUTINE FOR BASIC LOAD COMMAND;); THIS SUBROUTINE SHOULD REVERSE A STRING;!; CALL IS CALL "REVSTR"(IN$,OU$);"; WHERE IN$=STRING TO BE REVERSED; OU$=RESULTANT STRING;; IDENTIFYING INFO: .MCALL ULODHD ;CALL MACRO( ;IDENTIFY START OF CODE, END OF CODE ;AND ONE ENTRY POINT ULODHD REVSTR,END,REVSTR;; NOW THE CODE ITSELF;;&REVSTR: ;LABLE ACTUAL START OF CODE0 JSR R4,@#GTRGPI ;GO GET ARGUMENTS IN PI FASHION$ .BYTE 3,4,0 ;THIS IS ARG TYPE LIST% ;3 = INPUT STRING (TO SUBROUTINE)M& ;4 = OUTPUT STRING (TO MAIN PROG.) .EVEN' ;WE NOW HAVE THIS DATA ON THE STACK$# ;SP+4 5-WORD STRING TABLE ENTRYE ; FOR OUTPUT STRINGT ;SP> 2-WORD INPUT DESCRIPTOR ; (SP)=LEN, 2(SP)=ADDR0 JSR PC,@#PARCHK ;CHECK FOR TRAILING RIGHT PAREN ;(ALSO BUMPS TEXT POINTER) MOV R1,-(SP) ;SAVE TEXT PTR( MOV 2(SP),R0 ;LEN OF INPUT STRING -> R0 BEQ 3$ ;IF ZERO, BRANCHT5 JSR PC,@#TSTU00 ;CHECK FOR ROOM IN USER STORAGE AREAI ;WIPES R3,R4,) ;R5 -> NEXT BYTE IN USER STORAGE AREA  BHI 1$ ;BRANCH IF ROOM EXISTS) OVFERR ;ELSE DO ERROR TRAP !1$: MOV R0,R4 ;SAVE LENGTH IN R4D5 BIS #160000,R0 ;MAKE R0 A "SCRATCH" DATA TYPE HEADER>& MOV R0,(R5)+ ;PUT HEADER IN USER AREA/ MOV R5,R2 ;SAVE STRING ADDRESS (IN USER AREA)G, MOV 4(SP),R3 ;ADDRESS OF INPUT STRING -> R3* MOV R4,R0 ;STRING LENGTH -> LOOP COUNTER- ADD R4,R3 ;BUMP R3 PAST END OF INPUT STRINGB(2$: MOVB -(R3),(R5)+ ;REVERSE THE STRING SOB R0,2$( MOV R2,R3 ;OUTPUT STRING ADDRESS -> R3! ;STRING LENGTH STILL IS IN R4I03$: MOV SP,R5 ;GET ADD OF RETURN ARG DESCRIPTOR ADD #6,R5 ;IN R55 JSR PC,@#SSTORE ;AND RETURN THE RESULT TO THE CALLER" MOV (SP)+,R1 ;RESTORE TEXT PTRR% ADD #7*2,SP ;CLEAN STACK OF 7 WORDSR RTS PC ;AND RETURNEND: ;LABLE END OF CODE .END ;ADDRESS OF INPUT STRING -> R3* MOV R4,R0 ;STRING LENGTH -> LOOP COUNTER- ADD R4,R3 ;BUMP R3 PAST END OF INPUT STRINGB(2$: MOVB -(R3),(R5)+ ;REVERSE THE STRING SOB R0,2$( MOV R2,R3 ;OUTPUT ST* :L.I.@8X@8@*8@6a""@:d @y`@ @(Z L^qy# C8X88.I.* f UBa:d  6a""B՘~e ey`LOOP COUNTER- ADD R4,R3 ;BUMP R3 PAST END OF INPUT STRING (2$: MOVB -(R3),(R5)+ ;REVERSE THE STRING SOB R0,2$( MOV R2,R3 ;OUTPUT STRING ADDRESS -> R3! ;STRING LENGTH STILL IS IN R4I03$: MOV SP,R5 ;GE7; $SIN OBJECT TO MACRO CONVERSION V01.1 13-AUG-86 18:35 .TITLE $SIN 1;D .IDENT /F40002/ .PSECT OTS$I ,I,LCL,RW,CON, .ENABL LSBBCOS::  SETD  LDCDF @2(R5),%0 ADDF 150$,%0+ BR 22$VSIN::  SETD  LDCDF @2(R5),%0 22$: SETI MOV #150$,R04 CLR R4 CFCC  BGE 42$ INC R4d ABSF R042$: DIVF (R0)+,%0 MODF #^F.25,%00 SETF LDCDF R0,%0 CFCC BEQ 140$  MODF #^F4.0,%01 STCFI %1,R1 ROR R1T BCC 100$ NEGF R0 ADDF #^F1.0,%0R 100$: ROR R1 BCC 106$  NEGF R0106$: LDF R0,%2C MULF R2,%2N MOV #4,R1 LDF (R0)+,%13120$: MULF R2,%1 DEC R1D ADDF (R0)+,%1 BGT 120$ MULF R1,%0, TST R4 BEQ 140$  NEGF R0140$: STF %0,-(SP) MOV (SP)+,R0B MOV (SP)+,R1 RTS PCL150$: .word 040311,007732 .word 121041,064302 .word 035036,153672 .word 136231,023143 .word 037243,032130 .word 140045,056741 .word 040311,007733 .DSABL LSBM .END4.0,%01 STCFI %1,R1 ROR R1T BCC 100$ NEGF R0 ADDF #^F1.0,%0R 100$: ROR R1 BCC 106$  NEGF R01000llnnml]ld*W*PL(`((+h6xh  `(* =7^ =h  h*&?AA @ *LPB P &@!h:rיc&>X4%]@;;+7; .HEADERLEVEL 1 R2 DEC R1 ;BACK UP OVER THAT CHAR CMPB R2,#', ;ANOTHER ARGUMENT? BNE 1$ ;IF NOT, BRANCH+ JSR R4,GTRGPI ;IF SO, GET 5 WORDS ON STACKK .BYTE 2,0' LDCIF (SP)+,AC2 ;VAR HEADER ADD -> AC2E LDF (SP)+,AC1 ;OFFSET -> AC1O& ADD #4,SP ;GET RID OF VARIABLE VALUE BR 2$!1$: CLRF AC2 ;INDICATE NO OUTPUTB$2$: JSR PC,PARCHK ;CHECK FINAL PAREN MOV (SP)+,R4 ;POP LEN AND( MOV (SP)+,R3 ;ADDRESS OF COMMAND STRING MOV R4,R2 ;COPY LEN  INC R2 ;AND ROUND IT UPE BIC #1,R2 ;TO NEAREST WORD0 SUB R2,SP ;MAKE ROOM ON STACK (EVEN BOUNDARY!) MOV SP,R5 ;COPY NEW ADDRESS MOV SP,R0 ;TWICE" MOV R2,-(SP) ;AND SAVE ITS LENGTH* BEQ 10$ ;IF ZERO LENGTH, WHY DID WE TRY?03$: MOVB (R3)+,(R0)+ ;MOVE IN THE COMMAND STRING SOB R2,3$+ SUB #20,SP ;MAKE ROOM FOR RETURNED STATUS$! MOV SP,R3 ;AND COPY ITS ADDRESS$;S CLR -(SP) ;VTUNF MOV R4,-(SP) ;CMDLENR MOV R5,-(SP) ;CMDLINP) TSTF AC2 ;DO WE HAVE RETURNED VARIABLE?2 CFCC  BNE 5$ ;IF SO, BRANCH ' CLR R3 ;ELSE SET NO EXIT STATUS BLOCKB/5$: MOV R3,-(SP) ;ESB ADD (OR LACK OF) -> STACKV CLR -(SP) ;EAST (NO AST)" MOV #3,R4 ;SET EVENT FLAG NUMBER' CFCC ;CHECK ON WHETHER WE'RE WAITINGN BNE 6$ ;IF YES, BRANCH CLR R4 ;ELSE CLEAR EVENT FLAGM6$: MOV R4,-(SP) ;EFN" MOV UICSTO,-(SP) ;UIC WE'RE UNDER CLR -(SP) ;PRI CLR -(SP) ;PARTITION C00nnnln(kddLR -(SP) ;NAME  LDCIF R1,AC3 ;SAVE TEXT PTR;V6; DO RAD50 CONVERSION OF FIRST 3 CHARS IN COMMAND LINE;E$ MOV R5,R0 ;ADDRESS OF COMMAND LINE MOV #1,R1 ;JUST IN CASE ...AT. JSR PC,$CAT5 ;DO CONVERSION MOV R1,R4 ;REMEMBER NAME- MOV SP,R5 ;REMEMBER STACK POINTER FOR RETRYE;F-; GO CHECK FOR MFT FUNCTIONS OR MAS FUNCTIONST;N .IF NDF RSX11MS JSR PC,CHKMFT1 MOV R1,-(SP) ;PUSH 2ND HALF OF TASK NAME FOR IAS .ENDC;,)99$: STCFI AC3,R1 ;RESTORE R1 (TEXT PTR)C1 MOV (PC)+,-(SP) ;NOW FIRST HALF OF NAME FOR IAS,, ;2ND HALF OF MCR... FOR 11MD .RAD50 /.../F .IF DF RSX11M. MOV (PC)+,-(SP) ;FIRST HALF OF MCR... FOR 11M .RAD50 /MCR/# .ENDC, MOV (PC)+,-(SP) ;AND DIRECTIVE CODE AND LEN .BYTE 11.,13. EMT 377# BCC 7$ ;IF DIRECTIVE GOOD, BRANCHN .IF DF TRYMAS/ CMP R4,#^RMAS ;HAVE WE ALREADY TRIED MASSAGE ?T BEQ 66$ ;BR IF YES- MOV R5,SP ;PUT STACK POINTER AT RIGHT POINTO2 MOV #^RMAS,R4 ;ELSE SEE IF MASSAGE CAN HANDLE IT? MOV R4,-(SP) ;PUSH NAME AGAIN BR 99$ ;AND GO BACKA .ENDC-66$: LDCIF @#$DSW,AC0 ;ELSE RETURN ERROR CODE BR 8$ ;AND GO STORE 7$: TSTF AC2 ;ARE WE WAITING? CFCC  BEQ 9$ ;IF NOT, BRANCH4 JSR PC,DETACH ;DETACH THE TERMINAL FOR THE DURATION STSE$S #3 ;WAIT FOR EVENT FLAG, LDCIF (SP),AC0 ;RETURNED EXIT STATUS -> AC0& JSR PC,ATTACH ;NOW RE-ATTACH TERMINAL; ; NOW CODE FOR RSX11D V6.2;S.; ALUN$S #2,#"MC,#0 ;ASSIGN TERMINAL LUN TO MC#; QIOW$S #IO.WVB,#2,#1,,R3,, ; BCC 5$ ;IF OK, BRANCH/; LDCIF @#$DSW,AC0 ;RETURN BAD DIRECTIVE STATUSN&; BR 6$ ;AND GO TO COMMON FINISH CODE/;5$: LDCIF (R3),AC0 ;STORE RETURNED STATUS CODE 1;6$: ALUN$S #2,#"TI,#0 ;AND REASSIGN TERMINAL LUN;R#8$: STCFI AC2,R3 ;HEADER ADD -> R3H BEQ 9$ ;IF NONE, BRANCHI JSR PC,STONUM ;STORE THE RESULT'9$: ADD #20,SP ;WIPE EXIT STATUS BLOCKA210$: MOV (SP)+,R0 ;GET EVEN LENGTH OF COMMAND LINE ADD R0,SP ;AND ADJUST STACK  RTS PC ;AND RETURN6;SUB TO CHANGE REQUESTED TASK NAME TO ...MFT OR ...MAS;IF IT IS NECESSARY ;D<;ENTRY WITH R1 CONTAINING 2ND HALF OF MCR TASK NAME IN RAD50;F .IF NDF RSX11MLCHKMFT:: MOV R4,-(SP)R MOV R5,-(SP) 2 MOV #MFTNUM,R5 ;SET TO CHECK FOR MFTNUM MFT NAMES/ MOV #MFTNAM,R4 ;SET TO START OF MFT NAME TABLE926$: CMP R1,(R4)+ ;COMPARE REQ'D TASK WITH MFT TASK BEQ 7$ ;BR IF WE MATCH' SOB R5,6$ ;LOOP TILL 8. NAMES CHECKEDT8 MOV #MASNUM,R5 ;SET LOOP COUNT FOR MASNUM MASSAGE NAMES3 MOV #MASNAM,R4 ;SET TO START OF MASSAGE NAME TABLES<66$: CMP R1,(R4)+ ;COMPARE REQ'D TASK NAME WITH MASSAGE NAME BEQ 77$ ;BR IF WE MATCHO& SOB R5,66$ ;ELSE TRY 7 MASSAGE NAMES/ BR 88$ ;NO MATCH, RETURN WITH SAME NAME IN R167$: MOV #^RMFT,R1 ;CHANGE REQUESTED TASK NAME TO "MFT" BR 88$R777$: MOV #^RMAS,R1 ;CHANGE REQUESTED TASK NAME TO "MAS"P88$: MOV (SP)+,R5 MOV (SP)+,R47 RTS PC ;M)MFTNAM: ;TABLE OF POSSIBLE MFT TASK NAMESE" .RAD50 /ABOALTCANDISENAFIXRESUNF/ X=.-MFTNAMS MFTNUM=X/2M-MASNAM: ;TABLE OF POSSIBLE MASSAGE TASK NAMESL+ .RAD50 /BLODIRPRIDOCPURRECSUBTYPPROUNPFRE/E Y=.-MASNAM MASNUM=Y/2$ .ENDC .ENDCHO& SOB R5,66$ ;ELSE TRY 7 MASSAGE NAMES/ BR 88$ ;NO MATCH, RETURN WITH SAME NAME IN R167$: MOV #^RMFT,R1 ;CHANGE REQUESTED TASK NAME TO "MFT" BR 88$R777$: MOV #^RMAS,R1 ;CHANGE REQUESTED TASK NAME TO "MAS"P88$: MOV (SP)+,R5 MOV (SP)+,R47 RTS PC ;M)MFTNAM: ;TABLE OF POSSIBLE MFT TASK NAMESE" .RAD50 /ABOALTCANDISENAFIXRESUNF/ X=.-MFTNAMS MFTNUM=X/2M-MASNAM: ;TABLE OF POSSIBLE MASSAGE TASK NAMESL+ .RAD50 /BLODIRPRIDOCPURRECSUBTYPPROUNPFRE/E Y=.-MASNAM MASNUM=Y/2$z :Ds@:d @xh@y@t @9x@yZ@.I.@@  8`. DRhAyh   87  ,7 Ve  EIД~& &fB &  && & & @ &.I. xh.I.*:d ly~9x|D Rf| !{QF{Q& B   e`&fT C T C".s:Jt RyZhv:DR{Q00nnnnml]ld4{q!'[qvozf[ZgKq zfU(@y@t @9x@yZ@.I.@@  8`. DRhAyh   87  ,7 Ve  EIД~& &fB &  && & & @ &.I. xh.I.*:d ly~9x|D Rf| !{QF{Q& B   e`&fT C T C".s:Jt RyZhv:DR{Q8; $SQRT OBJECT TO MACRO CONVERSION V01.1 13-AUG-86 18:56   .TITLE $SQRT ; .IDENT /F40002/;; .PSECT OTS$I ,I,LCL,RW,CON; .ENABL LSBSQRT::  MOV @2(R5),R1 BGT 20$ BEQ 12$ TRAP 324 12$: CLR R0 CLR R1 BR 72$ 20$: ASR R1 ADD #20100,R1 CLR -(SP) MOV R1,-(SP) MOV #3,R0 LDF (SP)+,%0 LDF @2(R5),%244$: LDF R0,%1 LDF R2,%0 DIVF R1,%0 ADDF R1,%0 DEC R0 DIVF #^F2,%0% BGT 44$ STF %0,-(SP)P MOV (SP)+,R0R MOV (SP)+,R1R 72$: RTS PCP .DSABL LSB  .ENDTO MACRO CONVERSION V01.1 13-AUG-86 18:56   .TITLE $SQRT ; .IDENT /F40002/;; .PSECT OTS$I ,I,LCL,RW,CON; .ENABL LSBSQRT::  MOV @2(R5),R1 BGT 20$ BEQ 12$ TRAP 324 12$: CLR R0 CLR R1 BR 72$ 20$: ASR R1 ADD #20100,R1 CLR -(SP) MOV R1,-(SP) MOV #3,R0 LDF (SP)+,%0 LDF @2(R5),%244$: LDF R0,%1 LDF R2,%0 DIVF R1,%0 ADDF R1,%0 DEC R0 DIVF #^F2,%0% BGT 44$ STF %0,-(SP)P MOV (SP)+,R0R MOV (SP)+,R1R 72$: RTS PCP .*ɫs*PL(`((<zy}h `(*Aԉ   e@ & f@& A&,10 ! PROGRAM TO LIST CONTENTS OF AN STB FILE+20 DIM A$[122]V,TY$[14](8),NA$[15]V,XX$[6]V25 TY$(1)="MODULE NAME"30 TY$(2)="C-SECT NAME"40 TY$(3)="SYMBOL NAME"50 TY$(4)="TRANSFER ADDR."60 TY$(5)="GLOBAL SYMBOL"70 TY$(6)="P-SECT NAME"80 TY$(7)="VERSION ID"90 TY$(8)="MAPPED ARRAY"(100 INPUT "NAME (ONLY) OF STB FILE ";NA$!110 OPEN #3, NA$+".STB/RO/LN:122"!120 OPEN #4, NA$+".DOC/WR/LN:132"130 PRINT #4 : PRINT #48140 PRINT #4, " ","LISTING OF ";NA$;".STB",DAT$(),TIM$() 150 PRINT #48160 PRINT #4, " ","NAME"," VALUE"," TYPE"," FLAGS"@170 PRINT #4, " ","------"," ------","-------------";" ------" 180 PRINT #4190 NL=0200 INPUT LINE #3,A$2210 IF LEN(A$)<10 THEN 1000 : ! QUIT IF END OF GSD220 LC=(LEN(A$)-2)/8230 FOR I=1 TO LCV<240 X1=ASC(SBS$(A$,(I*8-5),1)) : IF X1<0 THEN LET X1=X1+256250 X2=ASC(SBS$(A$,(I*8-4),1))<260 X3=ASC(SBS$(A$,(I*8-3),1)) : IF X3<0 THEN LET X3=X3+256270 X4=ASC(SBS$(A$,(I*8-2),1))2280 PRINT #4, " ",R5A$(X1+256*X2);R5A$(X3+256*X4),<290 X1=ASC(SBS$(A$,(I*8+1),1)) : IF X1<0 THEN LET X1=X1+256300 X2=ASC(SBS$(A$,(I*8+2),1))%305 XX$=OCT$(X1+256*X2) : XL=LEN(XX$)#310 IF XL=6 THEN PRINT #4, " ";XX$,E5315 IF XL<6 THEN PRINT #4, " ";STRING$("0",6-XL);XX$,G:320 TY=ASC(SBS$(A$,(I*8),1)) : IF TY<0 THEN LET TY=TY+256<330 FL=ASC(SBS$(A$,(I*8-1),1)) : IF FL<0 THEN LET FL=FL+256350 PRINT #4, TY$(TY+1);" ";S355 XX$=OCT$(FL) : XL=LEN(XX$)"360 IF XL=3 THEN PRINT #4, " ";XX$4365 IF XL<3 THEN PRINT #4, " ";STRING$("0",3-XL);XX$ 370 NL=NL+1 380 IF NL<55 THEN 4701,400 PRINT #4, CHR$(12) : PRINT #4 : PRINT #48410 PRINT #4, " ","LISTING OF ";NA$;".STB",DAT$(),TIM$() 420 PRINT #47430 PRINT #4, " ","NAME","VALUE"," TYPE"," FLAGS"S@440 PRINT #4, " ","------"," ------","-------------";" ------" 450 PRINT #4460 NL=0 470 NEXT I 480 GOTO 200 1000 EXIT N LET FL=FL+256350 PRINT #4, TY$(TY+1);" ";S355 XX$=OCT$(FL) : XL=LEN(XX$)"360 IF XL=3 THEN PRINT #4, " ";XX$4365 IF XL<3 THEN PRINT #4, " ";STRING$("0",3-XL);XX$ 370 NL=NL+1 00nnnnn(kdd, VALUES RETURNED BY GET CHARACTERISTICS QIO   VALUE TERMINAL TERMINAL (OCTAL) TYPE SPEED ------- ------------ -----   0 UNKNOWN FIXED 1 ASR33 0 2 KSR33 50 3 ASR35 75 4 LA30S 100 5 LA30P 110 6 LA36 134  7 VT05 150  10 VT50 200  11 VT52 300  12 VT55 600  13 VT61 1200  14 LA180 1800  15 VT100 2000 16 LS120 2400 17 SCRIPT 3600 20 SOROC 4800  21 BEEHIVE 7200 22 9600 VALUES RETURNED BY GET CHARACTERISTICS QIO   VALUE TERMINAL TERMINAL (OCTAL) TYPE SPEED ------- ------------ -----   0 UNKNOWN FIXED 1 ASR33 0 2 KSR33 50 3 ASR35 75 4 LA30S 100 5 LA30P 110 6 LA36 134  7 VT05 150  10 VT50 200  11 VT52 300  12 VT55 600  13 VT61 1200  14 LA180 1800  15 VT100 2000 16 LS120 2400 17 SCRIPT 3600 20 SOROC 4800  21 BEEHIVE 7200 22 9610 A=120`B=2 30jA+B ! t40 B$="This Is !!! A Test"B 50jB$ ! 60 C$="abcdef"70jC$B$ :! "ANOTHER COMMENT60 C$="abcdef" 70 print C$10 A=120`B=2 30jA+B hi40 B$="This Is !!! A Test"050jB$ h60 C$="abcdef"70jC$int B$ :! "ANOTHER COMMENT60 C$="abcdef" 70 print C$H10 dim a$[8],x$[6]v(13),w1$[80]v,w2$[80]v,cm$[80]v,dw$[63],w$[20]v(16) :D dim sp$[12],g1$[60]v,g2$[60]v,g3$[60]v,g4$[60]v,g5$[60]v,g6$[60]v :7 randomize : cn=1+int(3.98*rnd(0)) : set prompt off :'011 w$(1)=chr$(27)+"Y"+chr$(39)+chr$(76)+" " :. w$(2)=chr$(27)+"Y"+chr$(39)+chr$(76)+" *" :. w$(3)=chr$(27)+"Y"+chr$(39)+chr$(76)+" * " :. w$(4)=chr$(27)+"Y"+chr$(39)+chr$(76)+" **" :. w$(5)=chr$(27)+"Y"+chr$(39)+chr$(76)+" * " :. w$(6)=chr$(27)+"Y"+chr$(39)+chr$(76)+" * *" :. w$(7)=chr$(27)+"Y"+chr$(39)+chr$(76)+" ** " :. w$(8)=chr$(27)+"Y"+chr$(39)+chr$(76)+" ***" :. w$(9)=chr$(27)+"Y"+chr$(39)+chr$(76)+"* " :/ w$(10)=chr$(27)+"Y"+chr$(39)+chr$(76)+"* *" :r/ w$(11)=chr$(27)+"Y"+chr$(39)+chr$(76)+"* * " :Y/ w$(12)=chr$(27)+"Y"+chr$(39)+chr$(76)+"* **" :+/ w$(13)=chr$(27)+"Y"+chr$(39)+chr$(76)+"** " :h/ w$(14)=chr$(27)+"Y"+chr$(39)+chr$(76)+"** *" :$/ w$(15)=chr$(27)+"Y"+chr$(39)+chr$(76)+"*** " :3/ w$(16)=chr$(27)+"Y"+chr$(39)+chr$(76)+"****" :)F dw$="Sunday Monday Tuesday WednesdayThursday Friday Saturday "12 sp$="COODAMMAYMUR").13 w1$=chr$(27)+"Y"+chr$(37)+chr$(58)+"_ " :- w1$=w1$+chr$(27)+"Y"+chr$(38)+chr$(94)+"U" :90 w1$=w1$+chr$(27)+"Y"+chr$(38)+chr$(58)+"\\ " :. w1$=w1$+chr$(27)+"Y"+chr$(39)+chr$(59)+"))" :0 w1$=w1$+chr$(27)+"Y"+chr$(40)+chr$(48)+" \\ " :B w1$=w1$+chr$(10)+chr$(8)+chr$(8)+chr$(8)+chr$(8)+chr$(8)+" _//" :- w1$=w1$+chr$(27)+"Y"+chr$(42)+chr$(47)+"(_/"*.14 w2$=chr$(27)+"Y"+chr$(37)+chr$(58)+" _" :2 w2$=w2$+chr$(27)+"Y"+chr$(38)+chr$(94)+chr$(34) :0 w2$=w2$+chr$(27)+"Y"+chr$(38)+chr$(58)+" //" :. w2$=w2$+chr$(27)+"Y"+chr$(39)+chr$(59)+"//" :0 w2$=w2$+chr$(27)+"Y"+chr$(40)+chr$(48)+"_//\" :B w2$=w2$+chr$(10)+chr$(8)+chr$(8)+chr$(8)+chr$(8)+chr$(8)+"(_/ " :- w2$=w2$+chr$(27)+"Y"+chr$(42)+chr$(47)+" "7J15 x$(1)="One" : x$(13)=x$(1) : x$(2)="Two" : x$(3)="Three" : x$(4)="Four"<16 x$(5)="Five" : x$(6)="Six" : x$(7)="Seven": x$(8)="Eight"B17 x$(9)="Nine" : x$(10)="Ten" : x$(11)="Eleven" : x$(12)="Twelve"18 ad=1 : od=1 : xc=0cN19 g1$=chr00nnnnml]ld$(27)+"Y"+chr$(45)+chr$(52)+chr$(27)+"K"+"The Big Hand Is On The " :2 g2$=chr$(27)+"Y"+chr$(47)+chr$(40)+chr$(27)+"K" :2 g3$=chr$(27)+"Y"+chr$(49)+chr$(48)+chr$(27)+"K" :% ga$=chr$(27)+"Y"+chr$(49)+chr$(48) :82 g4$=chr$(27)+"Y"+chr$(50)+chr$(32)+chr$(27)+"J" : g5$=chr$(27)+"H"+" " :x# g6$=chr$(27)+"Y"+chr$(53)+chr$(32)r-20 print chr$(27);"[H";chr$(27);"[2J" : breakxG21 ? " ___ ___"=H22 ? " / \ Michael Reese Medical Center / \"I23 ? " / o o \ University of Chicago / o o \"+J24 ? " (_\ /_) Radiation Therapy (_\ /_)"H25 ? " Reese |\@/ \__ _ Computer Network _ __/ \@/|"N26 ? " 11/44 | U \ \\\ _______ \\ / / U | Rover"H27 ? " \ /\ `))--Network--|- - |---\\' /\ /"N28 ? " _______ \\ // \// | | \\/ \\ // U of C"L29 ? " /Mr Spot\ _//_// _| / Mr Vax | | \ |_ \\_\\_ VAX"I31 ? "(_________) (_/(_/ (__/ Reese VAX |_______| \__) \_)\_)" !32 print chr$(27);"[?2l"; : break 35 a$=tim$(),40 sz=val(sbs$(a$,1,2))*60+val(sbs$(a$,4,2))&41 mf=(sz*60+val(sbs$(a$,7,2)))/1.2096D42 print g3$;frmt$(mf,5);" Micro-Fortnights since Midnight"; : break 50 a$=tim$(),55 mi=val(sbs$(a$,1,2))*60+val(sbs$(a$,4,2)) 60 if mi>720 then let mi=mi-720C70 hh=int(mi/60) : mh=int((mi-hh*60+2)/5) : if mh=0 then let mh=12r75 if hh=0 then let hh=12 80 bf=val(sbs$(a$,4,2))_785 if bf>45 then let hh=hh+1 : if hh=13 then let hh=1A&90 dc=dcen(dat$()) : dw=dc-7*int(dc/7),95 sz=val(sbs$(a$,1,2))*60+val(sbs$(a$,4,2))&97 mf=(sz*60+val(sbs$(a$,7,2)))/1.2096N100 print ga$;frmt$(mf,5);g5$;a$;tab(35);sbs$(dw$,(9*dw+1),9);tab(70);ddat$();105 print g1$;x$(mh); : break110 print g2$;$115 if bf<15 or bf>45 then goto 130P120 print "And The Little Hand Is Between The ";x$(hh);" And The ";x$(hh+1);g6$; 125 goto 140@130 print " And The Little Hand Is On The ";x$(hh);g6$;140 if xc>0 goto 150142 print g4$; : break#144 cn=cn+1 : if cn>4 then let cn=1=-146 b=0 : call "SPAWNB"(sbs$(sp$,3*cn-2,3),b)s$150 xc=xc+1 : if xc>30 then let xc=0152 co=0 155 wait 1 s160 on error goto 170$ 165 input x(6168 goto 1000 ! if read is successful, quit#170 od=od+1 : if od=2 then let od=05175 if od=0 then 190180 print w1$; : break 185 goto 195190 print w2$; : break$195 ad=ad+1 : if ad=17 then let ad=1197 print w$(ad); : breake 200 a$=tim$() -201 sz=val(sbs$(a$,1,2))*60+val(sbs$(a$,4,2)) '202 mf=(sz*60+val(sbs$(a$,7,2)))/1.2096 -205 print ga$;frmt$(mf,5);g5$;a$;g6$; : break$210 se=val(sbs$(a$,7,2))215 if se=0 goto 50 220 goto 14031000 print chr$(27);"Y";chr$(54);chr$(33); : break ;1005 print chr$(27);"<"; : break :! vt52 mode > vt100 modedK1006 print chr$(27);"[63;1";chr$(34);"p"; : break :! vt100 mode > 9220 mode 1007 wait 0+1010 on error goto 1020 : if end then 1050 7G1020 set upper on : input cm$ : set upper off : if len(cm$)<3 then 1050s1025 b=0 : call "SPAWNB"(cm$,b)1040 sleep 4 s 1045 goto 11 1050 exit 205 print ga$;frmt$(mf,5);g5$;a$;g6$; : break$210 se=val(sbs$(a$,7,2))215 if se=0 goto 50 220 goto 14031000 print chr$(27);"Y";chr$(54);chr$(33); : break ;1005 print chr$(27);"<"; : break :! vt52 mode > vt100 modedK1006 print chr$(27);"[63;1";chr$(34);"p"; : break :! vt100 mode > 9220 mode 1007 wait 0+1010 on error goto 1020 : if end then 1050 7G1020 set upper on : input cm$ : set upper off : if  388403884138856388583933639999 1010191012 39999123456BEARER, LITE 987 SOUTH AVENUE 321 CHICAGO IL60606 9 012679CASH, CLARENCE B. 8035 S KIMBARK HSE CHICAGO IL60619312375894531274472000624191411BS39336365773CASH, VIRGIL D. 8035 S KIMBARK HSE CHICAGO IL606193123758945 6 120182BEARER00nnnnnnnd 11111111 388403884138856388583933639999 102477PUBLIC, JOANIE 924 SWIFTON BLVD. 204 ADDISON IL601013124950513 0107191023BE38840478129SACCO, SANDRA 928 SWIFTON BLVD. ADDISON IL601013126294298 7 2 1025; .MACRO ULODHD STCODE,ENDCOD,E1,E2,E3,E4,E5,E6,E7,E8,E9,E10 .WORD ID001 .WORD ID002 .WORD ID003 .NARG $$$LOA .IF LT $$$LOA-3 .ERROR .ENDC .IF GT $$$LOA-12 .ERROR .ENDC# .WORD ENDCOD-STCODE+<6*<$$$LOA-2>> .WORD 6*<$$$LOA-2> .WORD $$$LOA-2 .MCALL ULOEPT $$$LOB=2 $$$STR=STCODE ULOEPT E1 ULOEPT E2 ULOEPT E3 ULOEPT E4 ULOEPT E5 ULOEPT E6 ULOEPT E7 ULOEPT E8 ULOEPT E9 ULOEPT E10 .WORD /2 .ENDM ULODHD .MACRO ULOEPT NAME .IF B NAME .MEXIT .ENDC .NCHR $$$ULO,NAME .IF GT $$$ULO-6 .ERROR .ENDC .RAD50 /NAME/ .IF LE $$$ULO-3 .WORD 0 .ENDC .WORD NAME-$$$STR $$$LOB=$$$LOB+1 .ENDM .MACRO ULOSTR STCODE,ENDCOD $$$STR=STCODE $$$END=ENDCOD .WORD ID001 .WORD ID002 .WORD ID003# .WORD $$$END-$$$STR+<6*<$$$LOA-2>> .WORD 6*<$$$LOA-2> .WORD $$$LOA-2$$$LOB=2 .ENDM ULOSTR .MACRO ULOEND $$$LOA=$$$LOB .WORD <$$$END-$$$STR+1>/2 .ENDM ULOEND3UPPCAS,UPPCAS/-SP=LB:[1,202]LODMAC/ML,[1,202]UPPCAS (U 05JU85\Ѕ+  @f UB͔WaWz ~e Te10 ! TEST OF LOADABLE ROUTINE20 DIM A$[60]V,B$[60]V30 LOAD "UPPCAS.ATK"$40 S=0 : CALL "SPAWNB"("TER /LCI",S)50 INPUT LINE "STRING ",A$&60 S=0 : CALL "SPAWNB"("TER /NOLCI",S)70 CALL "UPPCAS"(A$,B$) 80 PRINT B$ 90 GOTO 4000nnnnnl]ld$UPPCAS.ATK/-HD/-FP,UPPCAS/-SP=UPPCASLB:[1,1]BSCPUR.STB/SS/STACK=0UNITS=0/;(; TEST SUBROUTINE FOR BASIC LOAD COMMAND;6; THIS SUBROUTINE SHOULD CHANGE A STRING TO UPPER CASE;!; CALL IS CALL "UPPCAS"(IN$,OU$);!; WHERE IN$=STRING TO BE RAISEDD; OU$=RESULTANT STRING;; IDENTIFYING INFO: .MCALL ULODHD ;CALL MACRO( ;IDENTIFY START OF CODE, END OF CODE ;AND ONE ENTRY POINT ULODHD UPPCAS,END,UPPCAS;; NOW THE CODE ITSELF;;&UPPCAS: ;LABLE ACTUAL START OF CODE0 JSR R4,@#GTRGPI ;GO GET ARGUMENTS IN PI FASHION$ .BYTE 3,4,0 ;THIS IS ARG TYPE LIST% ;3 = INPUT STRING (TO SUBROUTINE) & ;4 = OUTPUT STRING (TO MAIN PROG.) .EVEN' ;WE NOW HAVE THIS DATA ON THE STACK$# ;SP+4 5-WORD STRING TABLE ENTRYS ; FOR OUTPUT STRINGT ;SP> 2-WORD INPUT DESCRIPTOR ; (SP)=LEN, 2(SP)=ADDR0 JSR PC,@#PARCHK ;CHECK FOR TRAILING RIGHT PAREN ;(ALSO BUMPS TEXT POINTER) MOV R1,-(SP) ;SAVE TEXT PTR( MOV 2(SP),R0 ;LEN OF INPUT STRING -> R0 BEQ 3$ ;IF ZERO, BRANCHT5 JSR PC,@#TSTU00 ;CHECK FOR ROOM IN USER STORAGE AREAI ;WIPES R3,R4,) ;R5 -> NEXT BYTE IN USER STORAGE AREA  BHI 1$ ;BRANCH IF ROOM EXISTS) OVFERR ;ELSE DO ERROR TRAP !1$: MOV R0,R4 ;SAVE LENGTH IN R4D5 BIS #160000,R0 ;MAKE R0 A "SCRATCH" DATA TYPE HEADER>& MOV R0,(R5)+ ;PUT HEADER IN USER AREA/ MOV R5,R2 ;SAVE STRING ADDRESS (IN USER AREA)G, MOV 4(SP),R3 ;ADDRESS OF INPUT STRING -> R3* MOV R4,R0 ;STRING LENGTH -> LOOP COUNTER'2$: MOVB (R3)+,(R5) ;REVERSE THE STRINGZ CMPB (R5),#141 ;LESS THAN "A" ? BLT 22$ ;IF SO, DON'T CHANGE# CMPB (R5),#172 ;GREATER THAN "Z" ?X BGT 22$ ;IF SO, DON'T CHANGE BICB #40,(R5) ;OK, RAISE HIM"22$: INC R5 ;AND BUMP THE POINTER SOB R0,2$( MOV R2,R3 ;OUTPUT STRING ADDRESS -> R3! ;STRING LENGTH STILL IS IN R4M03$: MOV SP,R5 ;GET ADD OF RETURN ARG DESCRIPTOR ADD #6,R5 ;IN R55 JSR PC,@#SSTORE ;AND RETURN THE RESULT TO THE CALLERG MOV (SP)+,R1 ;RESTORE TEXT PTRH% ADD #7*2,SP ;CLEAN STACK OF 7 WORDSR RTS PC ;AND RETURNEND: ;LABLE END OF CODE .ENDT 22$ ;IF SO, DON'T CHANGE# CMP* :L.I.@8X@8@*8@6a""@:d @y`@ @(j \Ѕ+  8X88.I.* f UB͔:d  6a""*BWaWz ~e e"y`h THE RESULT TO THE CALLERG MOV (SP)+,R1 ;RESTORE TEXT PTRH% ADD #7*2,SP ;CLEAN STACK OF 7 WORDSR RTS PC ;AND RETURNEND: ;LABLE END OF CODE .ENDT 22$ ;IF SO, DON'T CHANGE# CMP$VARSRR.BTK/-HD/-FP,VARSRR/-SP=VARSRRSD:[1,1]BASPUR.STB/SSESD:[1,1]FORCOR.STB/SSL/0STACK=0SUNITS=00/0 D$="THIS IS A MESSAGE SENT FROM A BASIC TASK"50 LOAD "VARSRR"60 CALL "VARSRR"(N$,D$,50,S)70 PRINT "STATUS =";S 80 STOP8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { ;A; SUBROUTINE VARSRRR; LOADABLE BASIC SUBROUTINES<; TO SEND DATA TO A SPECIFIED TASK AND REQUEST OR RESUME IT. ; BASIC CALL:A; CALL "VARSRR"(N$,D$,P,S); WHERE:2; N$ IS A STRING CONTAINING NAME OF RECEIVING TASK+; D$ IS A STRING CONTAINING DATA TO BE SENT; P IS PRIORITY FOR REQUEST&; S IS RETURNED DIRECTIVE STATUS WORD;  .MCALL ULODHD ULODHD START,END,VARSRR;!; DEFINE FLOATING POINT REGISTERS;AC0=%0START:VARSRR: * JSR R4,@#GTRGPI ;GET ARGUMENTS (ON STACK) .BYTE 3,300nnnnnnnd,1,2,0 ;ARG TYPE LISTR .EVEN* JSR PC,@#PARCHK ;CHECK FOR TRAILING PAREN MOV SP,R5 ;ARG LIST ADD -> R5  MOV R1,-(SP) ;SAVE TEXT PTR$ MOV 4(R5),-(SP) ;LEN OF DATA STRING INC (SP) ;ROUND UP TO  ASR (SP) ;NEAREST WORD CLR -(SP) ;NO EVENT FLAG( MOV 6(R5),-(SP) ;ADDRESS OF DATA STRING CLR -(SP) ;NO EXPLICIT UIC LDF 10(R5),AC0 ;GET PRIORITYD! STCFI AC0,-(SP) ;PUT IT ON STACKE CLR -(SP) ;NO PARTITIONR CLR -(SP) ;NAMER' CLR -(SP) ;SPACE FOR 2ND HALF OF NAMEE# MOV 2(R5),R0 ;ADDRESS OF TASK NAME $ MOV #1,R1 ;FLAG TO INCLUDE PERIODS JSR PC,@#$CAT5 ;DO CONVERSION* MOV R1,-(SP) ;FIRST HALF OF NAME -> STACK$ BCS 1$ ;IF NAME TERMINATED, BRANCH! JSR PC,@#$CAT5 ;CONVERT 2ND HALFT MOV R1,2(SP) ;PUT IT AWAY41$: MOV #73.+<400*12>,-(SP) ;DIRECTIVE CODE ON STACK EMT 377 ;DO IT MOV (SP)+,R1 ;RESTORE TEXT PTRF& LDCIF @#0,AC0 ;DIRECTIVE CODE -> AC0, ADD #14,R5 ;MAKE R5 POINT TO STORE ADDRESS JSR PC,@#NSTORE ;AND GO DO IT ADD #22,SP ;CLEAN STACKF RTS PCMEND: .ENDADDRESS O* :L.I.@8X@8@*8@Z`@:d @9x@(t  !fy0 N8X88.I.* ff & f& 5&& & & @:d *D f vI e  9x9xj eZ`T PTRF& LDCIF @#0,AC0 ;DIRECTIVE CODE -> AC0, ADD #14,R5 ;MAKE R5 POINT TO STORE ADDRESS JSR PC,@#NSTORE ;AND GO DO IT ADD #22,SP ;CLEAN STACKF RTS PCMEND: .ENDADDRESS O ARAP.OLB PAGE 11 CSIFP.MAC -- USE CSI TO PARSE FILE NAME STRINGS WRITTEN DATE 10/22/77 REVI  CALL:# CALL CSIFP(CIV,IPT,CSIBLK,NER) WHERE: CIV IS INPUT STRING TO PARSE* IT IS TERMINATED BY A BLANK,TAB,OR NULL, IPT SUBSCRIPT INTO CIV UPPED TO STRING END# CSIBLK STANDARD CSI CONTROL BLOCK NER 0 => OK! 1 => ERROR DURING SYNTAX PARSE# 2 => ERROR DURING SEMANTIC PARSE 3 => STRING > 33 CHARACTERS                = THIS ROUTINE IS CALLED FROM DBKOF (THE USER INTERFACE). SEET DBKOF.FTN FOR COMMENTS.2  CALL DBKOF4 (LUN, MODE, NER) S# LUN = LOGICAL UNIT NUMBER TO OPEN  MODE = 0-3 (SEE DBKOF)& NER = 0 IF OK, FCS ERROR CODE IF NOT U **NOTE**7 DBKOF4 IS CALLED FROM DBKOF.FTN - DBKOF.FTN FILLS INS= THE FILE DESCRIPTOR BLOCKS BY CALLING FPARS. DBKOF4 SHOULDA@ NOT BE CALLED IN ANY OTHER CONTEXT OR RESULTS WILL BE UNKNOWN. C ARAP.OLB PAGE 2# + DBKRD/WR - DISK BLOCK READ/WRITE  ' REFER ALSO TO DBKRD.FTN AND DBKCF.MACE@ AND - X1LU.FTN,X1DR.MAC,X1EF.FTN FOR RECORD ORIENTED ROUTINES.  N! CALL DBKWR (LUN, NR, IBUF, NWR)N& CALL DBKRD (LUN, NR, IBUF, NWR, NWA) ). LUN = I*2 LOGICAL UNIT NUMBER OF FILE TO R/W9 NR = I*2 VIRTUAL BLOCK NUMBER IN FILE TO BEGIN TRANSFERL1 NOTE THAT NR IS UPDATED ON EXIT FROM DBKRD/WRR0 ON EXIT FROM DBKRD NR = NR + (NWR-1)/256 + 18 WHERE 256 IS THE NUMBER OF I*2 WORDS PER DISK BLOCK.@ IBUF = INPUT/OUTPUT AREA, CAN BE INTEGER OR REAL, BUT NOT BYTE' I.E. MUST BE ON EVEN BYTE BOUNDARY.N> NWR = I*2 NUMBER OF I*2 WORDS TO READ/WRITE, BEGINNING AT NR( ABOVE. 1 DISK BLOCK = 256 I*2 WORDS.9 NWA = RETURNED ONLY FROM DBKRD. I*2 NUMBER OF I*2 WORDSM5 ACTUALLY READ. THIS IS USEFUL FOR CHECKING END-OFF6 FILE CONDITIONS. IF THE END OF FILE IS REACHED NWA6 WILL BE LESS THAN NWR OR 0 IF A BLOCK IS REQUESTED# THAT IS BEYOND THE END-OF-FILE.M **NOTES**P2 THERE ARE NO ERROR RETURNS. IF AN ERROR OCCURS6 DURING THE OPERATION THE PROGRAM WILL TERMINATE VIA9 THE TRAP INSTRUCTION - CAUSING F4P TO LOG THE MESSAGE.T B/ THE COMPATIBLE CLOSE ROUTINE TO DBKRD/WR IS DBKCF. => CALL DBKCF (LUN) =< K2 DBKRD/WR ARE IN DB2:[350,2]ARAP.OLB ALONG WITH: DBKOF (OPEN), DBKCF AND THEIR RELATED SUPPORT ROUTINES. N F6 FOR THOSE DOING OVERLAYS, THE FOLLOWING IS WHAT IS. NECESSARY TO BE EXTRACTED FROM THE LIBRARY. - FOR THE OPEN OVERLAY......H . OP1: .FCTR [350,2]ARAP/LB:DBKOF:DBKOF100onnnnl]ld - OP2; OP2: .FCTR [350,2]ARAP/LB:CSIFP:FPARS:FPARS1:FPARS2 - OP3 5 OP3: .FCTR [350,2]ARAP/LB:FFNAM:FFVERN:FPCFS:MONTRY   FOR THE ROOT SEGMENT......R R* DISK1: .FCTR [350,2]ARAP/LB:DBKRD:FPUICT  FOR THE CLOSE OVERLAY A$ CLOSE1: .FCTR [350,2]ARAP/LB:DBKCF A FOR UNOVERLAYED TASKS.... . N -  O H ARAP.OLB PAGE 3& DELET.MAC -- FORTRAN CALLABLE DELETE AUTHOR: LEN DATE WRITTEN: 16-NOV-78  R . .   P CALL:[ CALL DELETE (LUN, NERR)2 WHERE: LUN = FILE'S LOGICAL UNITR% NERR = ERROR CODE 0=OK, NON-0=ERROR5 ] P : A F N C M R& FBDMOD.MAC -- MODIFY FDB BEFORE OPEN AUTHOR: A. BARR DATE WRITTEN: 4/25/77 DATE REVISED: 04/29/77L, 10/30/78 LEN - ADDED FIX AND VAR OPTIONS  F U E Y T CALL:> CALL FBDMOD(LUN, ['NC'!'CC'] [,'SP'!'NS'] [,'LR',LRECL] 1 ['FI'], ['VA'])E WHERE: LUN IS LUN # OF LUN TO MODIFY- NC=> NO CARRIAGE CONTROL CC=> CARRIAGE CONTROLD SP=> SPANNED BLOCKS  NS=> NO SPANNED BLOCKS/ LR=> MAKE VAL OF NEXT PARM INTO LRECL FOR LUN+ PARMS OTHER THAN LUN MAY BE IN ANY ORDERM FI=> SET FIXED LENGTH RECORD! VA=> SET VARIABLE LENGTH RECORD4 /  A ARAP.OLB PAGE 43 *FFNAM.MAC -- FETCH FILE NAME INFORMATION FROM FDBU WRITTEN DATE 10/27/77 REVISED DATE U [ CALL:] CALL FFNAM(LUN,CIV,NC) WHERE: LUN LUN # OF FILE0 CIV RETURNED AS DEV:FILE-NAME.FILE-TYPE;VER-NO NC NC IN CIV C -  T D  > A D O  ) FPARS2.MAC -- USE .PARSE TO FILL IN FDBN AUTHOR: A. BARR DATE WRITTEN: 12/27/77A1 DATE REVISED: 6-FEB-78 FOR BETTER UIC HANDLING  O  A S V A CALL:H# CALL FPARS2(LUN,DSD,DFNB,NER)B WHERE: F . ARAP.OLB PAGE 58 FPUICT DEFINE STORAGE AREA FOR UIC'S /1 WORD PER UINT U [  L   A" GATTR.MAC -- GET FILE ATTRIBUTES AUTHOR: J. LEONARD  DATE WRITTEN: 09-AUG-79 T ; -  C  C CALL:-& CALL GATTR (LUN, IFRTYP, IFRATT) WHERE: LUN = FILE'S LOGICAL UNIT / IFRTYP = RECORD TYPE BYTE BUT RETURNED AS I*27" IFRATT = RECORD ATTRIBUTES (I*2) R C N N     + CALL GETUSE(IUSER)$ RETURNS NAME OF USER DOING CALLING< VERSION OF GETUSR FROM JACKSON LABS MODIFIED BY LEN 3/9/79& SO TASK DOES NOT HAVE TO PRIVLEDGED. @ MODIFIED FOR IAS VS3.0. TASK NOW HAS TO BE PRIVLEDGED IN ORDER TO GET .CRJOB. LEN 4/2/79  - - -  ARAP.OLB PAGE 6+ GSTAT.MAC -- PLUG STATISICS BLOCK ADDRESS) AUTHOR: J. LEONARDE DATE WRITTEN: 08-MAY-78 C  E T U E N CALL:7 CALL GSTAT (LUN, STBLK)( WHERE: LUN = FILE'S LOGICAL UNIT+& STBLK = I*2 STAT BLOCK, 5 WORDS LONG S D G L G  S  G S I = IBLUF (BCHR, BVEC): FIND BCHR IN BVEC, IF ENCOUNTER A ZERO BYTE IN BVEC THENC TERMINATE WITH I = -1, ELSE I = POSITION IN BVEC WHERE MATCH MADE  G . O L 4 ARAP.OLB PAGE 7) ICFGS.MAC -- CHARACTER GET/PUT ROUTINES  AUTHOR: S. F. HEFFNER DATE WRITTEN: 5/2/76 / DATE REVISED: 12/28/76,7/06/77 FOR ASCII USE  A 7; ***NOTE--THE FOLLOWING ROUTINES (ICHGS THRU ICSPC) ARE NOTG9 ***REENTRANT AND CAN'T BE, SINCE GNXCH/PNXCH DEPEND UPON: ***ICHGS ETC. TO SET UP AND STORE ARGUMENTS ACROSS CALLS. D. ***ALSO, GNXCH AND PNXCH DON'T PRESERVE REGS! N  M T I! ICHGS--INITIALIZE CHAR GET SCANC GNXCH--GET NEXT CHAR% ICFGS--ICHGS W/SPECIFIED MAX LENGTH7 ICSGC--ICHGS+GNXCH R! ICHPS--INITIALIZE CHAR PUT SCAN. PNXCH--PUT NEXT CHAR ICSPC--ICHPS+PNXCH D CALL ICHGS(VEC,IICP,ICP) CALL GNXCH(CHAR) CALL ICFGS(IPE,VEC,IICP,ICP) CALL ICSGC(VEC,IICP,ICP,CHAR)* CALL ICHPS(VEC,IICP,ICP) CALL PNXCH(CHAR) CALL ICSPC(VEC,IICP,ICP,CHAR)A WHERE: VEC = INTEGER*2 VECTOR IICP = INITIAL CHAR POSITION ICP = CHAR POSITION  IPE = MAX NO. OF CHARS CHAR = INTEGER*2 VAR FOR CHARG N  ARAP.OLB PAGE 8 ICMP - LOGICAL COMPARE 09-JAN-79H R " LOGICAL COMPARE OF00onnnnnnd TWO I*2 WORDS N = ICMP( I1, I2) WHERE N=0 IF I1=I2D N=1 IF I1>I2, N=-1IF I1 STR2, RETURN 4.) MODE 2: FOR LGTH OF SHORTER STRING, IF STR1 = STR2, RETURN 8.! IF STR1 <> STR2, RETURN 0. MODE 3:4 IF STR2 A SUBSTR OF STR1, RETURN THE STARTING+ POSITION IN STR1 WHERE STR2 APPEARS.S IF NOT, RETURN 0.) MODE 4: DEFINING A DELIMITER AS ANYR% ASCII CHAR .NE. (0-9) OR (A-Z) 8 IF STR2 IS A DELIMITED SUBSTR OF STR1 (DELIMITERS- NOT REQUIRED AT START OR END OF STR1),.1 RETURN THE STARTING POSITION IN STR1 WHERE> STR2 APPEARS. IF NOT, RETURN 0. 7 NOTE: NMWS SEQUENCE S1A,...,S2L IS REQUIRED BY SETUP1 CODE BELOW.N   M ARAP.OLB PAGE 10B LCKCV.MAC -- CHECK BIT VALUE AUTHOR: LEN DATE WRITTEN: 23-JAN-78   I O FUNCTION LCKCV (IBIT, IVEC)I$ IBIT = BIT TO CHECK (STARTS AT 0) IVEC = BIT STRING  RETURNS 1 IF SET, 0 IF NOT U R  11 MODFD.MAC -- MODIFY FDB FOR 0 BLOCK PRINT FILESF AUTHOR: J. LEONARD  DATE WRITTEN: 03-NOV-77 H >   R P R CALL:  CALL MODFD (LUN, NBLKS)  WHERE: LUN = FILE'S LOGICAL UNITB2 NBLKS = NUMBER OF BLOCKS ALLOCATED (FROM DIR/FU) P  ARAP.OLB PAGE 11- MONTRY MONITOR TRACE IN & TRACE OUT ROUTINE- USED WHEN DEBUGGEG NOT IN N/ MONTRI CALLED BY FORTRAN CALLABLE ASSEM RTNS.R JSR R1,MONTRI- .BYTE NPAR ;# PARMS EXPECTED BY ASSEM RTN$ ;NPAR IS -1 IF VAR NUM OF ARGS. MONTRI POPS R5 FOR NON VARIABLE PARM LIST .BYTE 0 ;RES FOR FUTURE USE& .RAD50 /ASSEM NAME(MUST BE 2 WORDS/ 2 MONTRI WILL BUILD TRACE BACK CHAIN AND SAVE REGS C6 MONTRO WILL RESTORE REGS(MONTRO IS CALLED INSTEAD OF+ ASSEM ROUTINE DOING AN RTS PC TO RETURN)T POPS TRACE BACK CHAIN RESTORES REGS 0-4 H' MONTRF FUNCTION RETURN-SAME AS MONTROY EXCEPT DOESN'T RESTORE R0  R , T  . E A ;" NSCOPE.MAC - FIND TERMINAL SPEED AUTHOR: LENV DATE WRITTEN: 20-DEC-78O R O O A B N = NSCOPE (LUN). WHERE LUN = LOGICAL UNIT NUMBER OF TERMINAL" N = 0 IF NOT SCOPE, 1 IF IT IS U  ARAP.OLB PAGE 12 OPFID.MAC --OPEN ON FILE ID  AUTHOR: J. LEONARDN DATE WRITTEN: 12-MAY-78 G   T CALL:T CALL OPFID (LUN, ID, NERR) WHERE: LUN = FILE'S LOGICAL UNITE ID = 3 WORD FILE ID  NERR = FCS ERROR CODE0  R , T  . E A ; CALL STBLK (BUF1, BUF2, NCH) D WHERE -  BUF1 = INPUT BUFFER6 BUF2 = OUTPUT BUFFER (BUF1 CAN BE THE SAME AS BUF2), NCH = # OF CHARACTERS TO STRIP OUT BLANKS 3 ALSO REFER TO STBLK.FTN FOR TRNASPORTABLE VERSIONO P   P BLOCKED DISK READ WRITE U00oonnnl]ld CALL X1DR (ID, NR, NWR, IOAR)N WHERE -# ID = 6 WORD ID BLOCK (SEE X1LU)L" NR = RECORD # TO BEGIN READING NWR = # OF I*2 WORDS TO READ% IOAR = BUFFER AREA TO ACCEPT DATAD  CALL X1DW (ID, NR, NWW, IOAR); WHERE - ID = 6 WORD ID BLOCK NR = RECORD # TO BEGIN WRITE NWW = # I*2 WORDS TO WRITE IOAR = OUTPUT AREA H5 SAME AS ABOVE BUT DATA IS TRANSFERRED FROM IOAR TOR) THE BUFFER AREA AND EVENTUALLY TO DISKP  ** NOTE **8 NR IS ASSUMED TO BE I*2 UNLESS BIT 0 IS SET IN ID(5). SEE X1LU. D 6 ARAP.OLB PAGE 138 X1EFBY.MAC -- FETCH EOF BLOCK NO. AND FIRST FREE BYTE. AUTHOR: J. LEONARD= DATE WRITTEN: 02-NOV-78   L D I N N CALL:;- CALL X1EFBY (LUN, ILOBLK, IHIBLK, IFBY)  WHERE: LUN = FILE'S LOGICAL UNIT & ILOBLK = LOW ORDER WORD OF EOF BLOCK% IHIBLK = HI ORDER WORD OF EOF BLOCKT IFBY = FIRST FREE BYTE THE BUFFER AREA AND EVENTUALLY TO DISKP  ** NOTE **8 NR IS ASSUMED TO BLK 011226J 0000: 027027 GN9 . 000000 000130 BH X 000401 FQ J 0010: 000410 FX 164000 7D2 100000 TSH 001002 L4 J 0020: 000020 P 000000 000005 E 000000 J 0030: 000001 A 000000 000000 000000 J 0040: 000000 000000 000000 000000 J 0050: 000000 000000 000000 076733 TES } J 0060: 076400 T } 000000 014474 DAT < 000001 A J 0070: 000001 A 030061 G.Q 10 052512 MY4 JU 034114 I L L8 J 0100: 030460 G42 01 030461 G43 11 030070 G.X 80 030463 G45 31 J 0110: 045060 K42 0J 046125 LHU UL 030070 G.X 80 030461 G43 11 J 0120: 034061 H9Y 18 031060 HAH 02 000000 000000 J 0130: 000000 000000 000000 000000 J 0140: 000000 001401 SI 146002 2YZ 002001 YY J 0150: 000000 000000 000000 000000 J 0160: 000000 000000 000000 000000 J 0170: 000000 000000 000000 000000 J 0200: 000000 000000 000000 000000 J 0210: 000000 000000 000000 000000 J 0220: 000000 000000 000000 000000 J 0230: 000000 000000 000000 000000 J 0240: 000000 000000 000000 000000 J 0250: 000000 000000 000000 000000 J 0260: 000000 000000 000000 000000 J 0270: 000000 000000 000000 000000 J 0300: 000000 000000 000000 000000 J 0310: 000000 000000 000000 000000 J 0320: 000000 000000 000000 000000 J 0330: 000000 000000 000000 000000 J 0340: 000000 000000 000000 000000 J 0350: 000000 000000 000000 000000 J 0360: 000000 000000 000000 000000 J 0370: 000000 000000 000000 000000 J 0400: 000000 000000 000000 000000 J 0410: 000000 000000 000000 000000 J 0420: 000000 000000 000000 000000 J 0430: 000000 000000 000000 000000 J 0440: 000000 000000 000000 000000 J 0450: 000000 000000 000000 000000 J 0460: 000000 000000 000000 000000 J 0470: 000000 000000 000000 000000 J 0500: 00000000oonnnnnd 000000 000000 000000 J 0510: 000000 000000 000000 000000 J 0520: 000000 000000 000000 000000 J 0530: 000000 000000 000000 000000 J 0540: 000000 000000 000000 000000 J 0550: 000000 000000 000000 000000 J 0560: 000000 000000 000000 000000 J 0570: 000000 000000 000000 000000 J 0600: 000000 000000 000000 000000 J 0610: 000000 000000 000000 000000 J 0620: 000000 000000 000000 000000 J 0630: 000000 000000 000000 000000 J 0640: 000000 000000 000000 000000 J 0650: 000000 000000 000000 000000 J 0660: 000000 000000 000000 000000 J 0670: 000000 000000 000000 000000 J 0700: 000000 000000 000000 000000 J 0710: 000000 000000 000000 000000 J 0720: 000000 000000 000000 000000 J 0730: 000000 000000 000000 000000 J 0740: 000000 000000 000000 000000 J 0750: 000000 000000 000000 000000 J 0760: 000000 000000 000000 000000 J 0770: 000000 000000 000000 000000 000000 000000 000000 J 0720: 000000 000000 000000 000000 J 0730: 000000 000000 000000 000000 J 0740: 000000 000000   m l  h TPC - Fast Tape Copy ====================  Users' Guide ============ @ This program will copy a complete magtape to a Files-11 diskG and store it there in a special image mode, from which it can createrC one or more copies of the tape (must faster than FLX ever could).N E BIGTPC is able to do this, but also will handle any block size oneD tape up to 4200. bytes (big enough for BRU tapes). By going from 4I to 3 buffers for tape and smaller numbers of disk blocks per read/writepH still larger tape block sizes can be handled. Also, several additional switches are supported.l oI If it is desired to support larger BIGTPC block sizes, it is possiblelH to reduce the number of BIGTPC buffers (and the buffer headers) and toI reduce the disk buffer count of blocks. This works well with the numberaI of disk blocks reduced to 8., the number of BIGTPC buffers reduced fromrI 4 to 3, and the size increased to 11000. bytes, supporting image copiesfJ of such formats as VMS BACKUP or UNIX TAR tapes. Note however that whereK these counts are changed, BIGTPC may not terminate correctly when writingrH a container file from another version. You may have to abort and writeM EOFs with another utility. If you have a tape and recreate container files,f there will be no trouble.s  The command format is:-s 1 TPC Output-filespec=Input-filespecd G where one of the 'filespecs' must be a magtape device (e.g. MT:) ande4 the other the name of an image file on disk.  Legal switches are:- J /BL:nnnn - Specifies an initial allocation specification forD the image file if a disk is the output device. Defaults to 200. lJ /SA:nnnn - Specifies a secondary allocation specification forD the image file if a disk is the output device. Defaults to 50.d F /CO - Specifies that the disk file is to be 00 oonnnl]ldcontiguous E /HD - Indicates High Density (1600 BPI) tape is to beh> written. (For TE16, tape is read at the proper density> automagically.) This permits a container file from one- density to be written out in another.s  . l  B /NR - Specifies NO positioning of the tape prior to the4 start of copying. This will allow TPC to merge8 several backup collections on a single output tape if used with care. e? After the end of a copy, TPC will write 4 EOF records ande= backspace so that it will be positioned after the first 8 EOF on tape. This will ensure that a second backup= done with the /NR switch will correctly copy onto a FLX  tape in readable fashion.  .N /SC:nnnn - Sets tape characteristics to nnnn(octal), to allow use B of tapes with even parity, 556BPI, etc. If the /HD switch is? used, the high density bit is ORed in with the nnnn valuec" specified in the /SC switch. ,H /AN - Specifies possible ANSI format. If TPC sees this switch; it will look for ANSI label records and permit copies = even where the tape has null files and hence double EOFc; before the real end of tape. Only 80 byte records are : examined and EOFs are treated specially only between> HDR2 and EOF2 (or EOV). The headers are assumed to be in> ASCII unless the switch /EB is given, in which case they< are assumed to be in EBCDIC. If the tape is not really8 an ANSI format tape, the TPC copy operation is not= changed. Thus the /ANsi switch may be used on a tape of  unknown format.v w5 The default is /AN, and to force BIGTPC NOT to < look for ANSI labels (looking normally only at 80 byte= records unless the /RT subswitch is used), use the /-AND switch.  )F /EB - This subswitch of the /AN switch forces on ANSI label< checks but causes TPC to look for EBCDIC header labels= rather than ASCII. Note that TPC looks for either ASCIIc> or EBCDIC, not both. The default is not to look for ANSI> labels and end copy at double EOF; the /AN or /EB switch0 settings allow some modifications to this. fE /RT - Use RT11 type "ANSI" labels. RT11 may not make labelt> records 80. bytes long, and if you have RT11 tapes, the; ANSI checks will normally ignore the RT11 ANSI labelsI< unless you use this switch. It causes BIGTPC to ignore= length of records and checks everything to see if it is A an ANSI label record. It is not a very good default becauseN< it probably can be fooled easily but may be needed for RT11 tapes.s lD /ER - Specifies that TPC will ignore errors on tape. This; specifically means that all errors except EOT/EOV/EOFs: will be ignored. This is quite useful for recovering> data from tapes which are old and full of errors, or for8 writing an output to a tape with bad spots (though8 it won't cure bad spots and this method of writing0 anyway is not necessarily a good idea...). N   p a  I /FR - Rewind the tape after copying to it. Note the /NR switch/A applies to BEFORE the tape is used and inhibits positioningc= at that time. The /FR switch will rewind the tape AFTERb writing to it. uH /TR - This switch allows BIGTPC to read a disk to a container= file as though it were a tape. It implies BIGTPC shouldh; act as though the input device were a tape even if itgA is not. BIGTPC will need to know the size to copy (defaults> to 494. blocks, the size of an RX01) and the start block< number (defaults to 0,0) as octal numnbers in the form> low:high (see /SZ and /LO switches). The input device is= copied 1 block at a time. The normal "control" features ; like density, rewind, etc., are suppressed UNLESS then: /CT switch is used. Their effect is not likely to be me00(oonnnnndaningful.s oG /TW - This switch allows BIGTPC to write a container file toe? a disk as though the disk were a tape (on the output side ? of the command line). It is the inverse of the /TR switch,0 and needs the /SZ and /LO information too. L /SZ:low:high - This switch sets the device size for /TR, /TW, and= /IM copies, in 2 words of block counts. Note the number > of blocks is given, not the last block number, so a disk= with 494 blocks is specified as /SZ:494., the high size-3 defaulting to 0. Default value is /SZ:494.:0.t K /LO:low:high - This switch specifies the starting physical blocke; of the disk to begin transfer from in /TR and /IM, orn> transfer to in /TW cases. This allows you to move blocks< around or to copy only parts of a disk. The default is? 0:0, so you won't need to use /LO often unless you intend  to copy partial volumes. bG /CT - This switch allows control-type QIO's to occur even ifh; /IM, /TR, or /TW are specified. These QIO's do things.8 like rewind, write endfile, space forward or back,; and set density as well as attach the LUNs. It is nots> very meaningful for /TR or /TW unless you have a strange= device that nevertheless is really a tape (and it's nots? certain you can emulate it properly this way anyhow). ForL: /IM copies, it allows a tape to be the output device9 and to receive a blocked copy of a device in formatt> independent ways while still setting density, rewinding,< etc. Note the control QIOs are not error checked so if3 you try to rewind a disk, it'll not hurt you.h U  i o   eJ /IM:low:high:blkfactor - This switch allows BIGTPC to copy data; in image mode directly from one device to another. It < does not operate AST driven in this mode as it does in> all others, but uses all buffers as one large I/O buffer; permitting I/O transfers of up to about 72. blocks ata9 a time. The low:high arguments are the block number : to begin the output transfer to on the output device; (/SZ specifies the length in blocks to move), and the 5 "blkfactor" argument is the number of blocks tol7 be transferred at each QIO$ to the output device.o9 This defaults to 8. so that if the output device isi8 tape, the buffers will be 4096. bytes long. If you6 specify a bigger blocking factor than BIGTPC can< handle, it will just use its maximum. Normal operation< will not issue any "write-EOF" operations, but if tape6 is the output device, the /CT switch will permit: these controls to be done so the resulting tape will7 work (and the /FR switch, the /HD switch, and thee /SC switch will work). eC /FL:filnam -This switch works only with the /IM and /CT ; switches and will have no effect unless BOTH of these 9 are specified. It causes BIGTPC to write a standardd; DOS format (FLX format) label record before it writesl@ an image file on tape, using "filnam" (up to 6 characters)5 as the filename. The full file specification isoA [1,1]filnam.OLB with standard DOS protection and a creationF@ date of 00-JAN-70. This permits the image file to co-exist@ on a FLX tape (.OLB is the extension chosen since FLX will: copy it in image mode). FLX can skip the nonstandard< file and make directories, read, or write on the tape,@ allowing it to contain other interesting programs (perhaps> a copy of BIGTPC to read the images with, for instance).? Also, multiple files may be more easily kept on the tape. : On input, you must skip this record on tape prior to inputting the file.. i? If /ER is specified, zero byte reads will NOT terminates@ copies (so sizes better be right!) and lengths copied will? be calculated from given block factors, not from returnedr actual byte counts. F 000oonnnl]ld /NI - This switch ("Nibble In") allows /IM copies to read aB disk 1 block at a time instead of using big QIOs of "blkfct"@ blocks at a time. Thus, if there is a bad disk block, dataC on following blocks will not be lost. See the /IM switch doc.e for interaction with /ER.e zH /NO - This switch ("Nibble Out") allows /IM copies to write a? disk 1 block at a time. It is supplied also to aid outputf@ to a disk with bad blocks, guaranteeing that not more than> 1 block's data will be lost. Its interaction with /ER isA like /IM. The /NI and /NO switches apply only to the /IMage" mode copies of BIGTPC. f e i   k oB /HE - This switch causes BIGTPC to print a help message7 summarizing the action of all of its switches and 6 giving the defaults for the more important ones. a  So that, for instance, p TPC BACKUP=MT: L will create the file BACKUP (.DOS by default) from the magtape on MT:, and l TPC MT:=BACKUP tG would then create an exact copy of the original magtape onto the tapeg now mounted on MT:.f .E Note that TPC will only handle one tape at a time and cannot handleCE block sizes of greater than 4200 bytes without edit and rebuild. IfiI the tapes are FLX format tapes, however, the TPCDIR program ([312,315])C may be used to list directories or extract copies of files in the F container file, though in a fairly cumbersone way. Otherwise, BIGTPCK acts as a format-independent tape copy to EOT (signalled by 2 consecutivep EOFs). i CAVEAT: e pK It is possible for a FILES-11 tape to have 2 EOFs in a row where a zero + length file is copied, yet not be at EOT.f eA If the tape you are copying may be of this sort, use the /ANSI I switch while copying (or the /EBCDIC switch if it came from an IBM site oJ using EBCDIC labels). This will allow TPC to correctly handle double EOFsI in the middle of a file. If your tape does not have this pathology, TPC nG will function correctly also, so the /ANsi switch is a good one to setCI mast of the time unless you some sort of pseudo-ANSI tape that may haver. have records starting with HDR2, EOV, or EOF. bS If your tape was produced by RT11 PIP (possibly also under RSTS), you maysK need the /RT switch to successfully handle null files. The /ANsi switch isi8 now on by default; use /-AN to turn it off if you must. u O    d o' TPC can report the following errors:-  % 1. TPC - DISK I/O ERROR. CODE = na F TPC encountered an error while reading from/writing to the disk. ( 2. TPC - MAGTAPE I/O ERROR. CODE = n I TPC encountered an error while reading from/writing to the magtape.s $ 3. TPC - COMMAND LINE INPUT ERROR : TPC encountered an error in reading the commandline. % 4. TPC - COMMAND LINE SYNTAX ERRORd E TPC encountered an error when trying to parse the command line.  5. TPC - INVALID SWITCH G The commandline contained a switch that TPC could not recognise,e6 or a file specification that it could not parse. % 6. TPC - OPEN ERROR ON OUTPUT FILE  G A file was specified as output, but TPC encountered an error when it tried to open it. $ 7. TPC - OPEN ERROR ON INPUT FILE G A file was specified as input, but TPC encountered an error whend it tried to open it. - 8. TPC - SPECIFY 1 FILE & 1 MAGTAPE DEVICE  G The commandline either specified magtape as both input and outputh= device, or a disk file as both input and output device.t F TPC tends to crash when it has an allocation failure while reading tape to disk.ied as output, but TPC encountered an error when it tried to open it. $ 7. TPC - OPEN ERROR ON INPUT FILE G A file was specified as input, but TPC encountered an error whend it tried to open it. - 8. TPC - SPECIFY 1 FILE & 1 MAGTAPE DEVICE  G 008o;o=onnnnd;1; #; piece 1, general utility programst;t/REW/DIS/MOUNTED/BACKUP:PIECE1?dr3:[1,10]*.*;*,[1,12]*.*;*,[1,16]*.*;*,[1,22]*.*;*,[1,25]*.*;*tMM:P;r(; piece 2, more general utility programs;P/APP/DIS/MOUNTED/BACKUP:PIECE2?dr3:[1,26]*.*;*,[1,30]*.*;*,[1,31]*.*;*,[1,32]*.*;*,[1,40]*.*;*AMM:S;U@; MRH HELP, help modified to use multiple help files, instead of=; one humongous file, so its faster For a command of AID ZAP,N;; help first tries to use ZAP.HLP, then defaults to MCR.HLPN;/APP/DIS/MOUNTED/BACKUP:HELPdr3:[1,2]*.*;*MM:;:; Much of the documentation for packages in Reese's Pieces; resides on dr1:[1,10]1;]/APP/DIS/MOUNTED/BACKUP:DOCSdr1:[1,10]*.*;*tMM:g;s@; errors, aids to process error logging reports, and some simple; on-line diagnostic aids4;./APP/DIS/MOUNTED/BACKUP:ERRORSdr3:[1,6]*.*;*MM:i; .; mrhlogin, reese mcr login package, DCL style;s /APP/DIS/MOUNTED/BACKUP:MRHLOGINdr3:[11,13]*.*;*MM: ; !/APP/DIS/MOUNTED/BACKUP:MRHLOGIN1Hdp1:[1,100]*.sys;*,[1,100]*.bas;*,[1,100]autostart.dat,[1,100]pdsupf.virMM:e;t; 2; vtlvdiecr, screen lister, directory, editing mcr:; some great 11m Programs by Robin Miller, updated for IAS;!/APP/DIS/MOUNTED/BACKUP:VTLVDIECR dr3:[351,*]*.*;*MM:m;imple; on-line diagnostic aids4;./APP/DIS/MOUNTED/BACKUP:ERRORSdr3:[1,6]*.*;*MM:i; .; mrhlogin, reese mcr login package, DCL style;s /APP/DIS/MOUNTED/BACKUP:MRHLOGINdr3:[11,13]*.*;*MM: ; !/APP/DIS/MOUNTED/BACKUP:MRHLOGIN1Hdp1:910 ! PROGRAM TO CHANGE A DOCUMENT FILE IN UPPER CASE ONLY;11 ! TO ALL LOWER CASE SO YOU CAN GO IN WITH THE EDITOR ANDB12 ! MAKE A FEW CHARACTER CHANGES AND HAVE TEXT-LIKE DOCUMENTATION413 ! WHERE CONVERSION TO RUNOFF SOURCE IS NOT VIABLE(20 DIM A$[132]V,B$[132]V,NA$[30]V,DD$[1]25 LOAD "LB:[1,202]LOWCAS.ATK"!27 PRINT "AFTER EACH LINE ANSWER"*28 PRINT " L TO CHANGE LINE TO LOWER CASE"29 PRINT " TO KEEP SAME"30 INPUT "FILE NAME ";NA$35 OPEN #3,NA$+"/RO/LN:132"40 OPEN #4,NA$+"/WR/LN:132"!45 IF END #3 THEN 100C50 INPUT LINE #3,A$A51 PRINT A$; : INPUT DD$*52 IF DD$<>"L" THEN PRINT #4, A$ : GOTO 5055 CALL "LOWCAS"(A$,B$)E60 PRINT #4,B$ 70 GOTO 50 100 CLOSEION413 ! WHERE CONVERSION TO RUNOFF SOURCE IS NOT VIABLE(20 DIM A$[132]V,B$[132]V,NA$[30]V,DD$[1]25 LOAD "LB:[1,202]LOWCAS.ATK"!27 PRINT "AFTER EACH LINE ANSWER"*28 PRINT " L TO CHANGE LINE TO LOWER CASE"29 PRINT " TO KEEP SAME"30 INPUT "FILE NAME ";NA$35 OPEN #3,NA$+"/RO/LN:132"40 OPEN #4,NA$+"/WR/LNO-------------------------------------------------------------------------------O-------------------------------------------------------------------------------O-------------------------------------------------------------------------------O-------------------------------------------------------------------------------O-------------------------------------------------------------------------------O-------------------------------------------------------------------------------O-------------------------------------------------------------------------------O-------------------------------------------------------------------------------O-------------------------------------------------------------------------------O-------------------------------------------------------------------------------O-------------------------------------------------------------------------------O-------------------------------------------------------------------------------O-------------------------------------------------------------------------------O-------------------------------------------------------------------------------O-------------------------------------------------------------------------------O-------------------------------------------------------------------------------O-------------------------------------------------------------------------------O-------------------------------------------------------------------------------00@oBoConnl]ldO-------------------------------------------------------------------------------O-------------------------------------------------------------------------------O-------------------------------------------------------------------------------O-------------------------------------------------------------------------------O-------------------------------------------------------------------------------O-------------------------------------------------------------------------------O-------------------------------------------------------------------------------O-------------------------------------------------------------------------------O-------------------------------------------------------------------------------O-------------------------------------------------------------------------------O-------------------------------------------------------------------------------O------------------------------------------------------------------------------- 2.00 7.00 3.00 6.00 4.00 5.00 5.00 4.00 6.00 2.00 7.00 2.00 8 ...DFX is an RSX program to do absolute disk patches on5 to your current SY: disk. calling sequence is via a   MCR>DFX ? In response to "ENTER DISK BLOCK #" type block number in octal< or "E" to exit to RSX. The block will be read in and can be2 displayed by the "L" command. display is on LUN 6 B Note that LUN 2 is used for disk reads and LUN 4 for disk writes,? as a protective measure LUN 4 is assigned to pseudo device XX:@ and must be re-assigned by the user before to enable write-back FF Also note that LUN 6 is used for full block listings. it is initiallyF set to TI: but can be re-assigned to a disk, and will be in the users UIC as "DFX.DAT"t # In response to "DFX>" prompt, typei  L to list referenced blocki9 W to write the currently referenced block back onto diskL N to read the next blocki; R to reread the current block (overwriting current buffer)c B to read the previous blockt7 F for full-word addresses (defaults to byte addresses)r* H for half-word (byte) addresses in block& T to type out the block as ascii text5 S to set/clear flag for spooling output file to LP0:d> if LUN 6 is a disk, the file will be spooled on exit or when. the spooling flag is cleared by the operator5 K to calculate checksum of first 255. words of blockc E to exit to the monitorN + there are 4 M(odify) type commands, where t< M=the byte offset of the buffer word to be listed/modified9 Note that for M commands, M must be even, 0 <= M < 1000s r6 M/000000 change buffer word to the octal value 0000002 M,LLL change buffer word to rad50 vaLue of "LLL"0 M;AA change buffer word to ascii value of "AA"2 M: display buffer word in octal, rad50 and ascii p < there are 4 commands which alter the ablsolute block number iA D,N to change default block number for read and write to N with-e> out changing the contents of the buffer in core. this should/ permit moving data from one block to another. ; A,N to read and list block N (N absent implies next block)n= C,N to read and list all blocks up to and including block N. % (N absent implies to end of disk.)a7 P,N changes the high-order block number from the disk.e: no I/O will be done, but the block number will be copied6 from the high-order and low-order blocks to relative> words 400 & 401 (byte offset 1000 & 1002) past the IO buffer8 where the single-word examining commands can see them.  mit moving data from one block to another. ; A,N to read and list block N (N absent implies next block)n=00HoNo=onnnnd J    DATE: 16-DEC-80   FROM:  Frank R. Borger ( Instrumentation Division Head ( Department of Medical Physics   TO:  Computer users  2 RE: New software to support the DIABLO  K The recently acquired DIABLO Letter-Quality printer has several K important features that can be activated by sending certain ES- K CAPE sequences to the printer. For example, the following line, K showing the use of half-line feeds can produce nice mathematical . formula. n uB Sample showing D superscripts U and U subscripts D.  K The full range of commands available is beyond the scope of this oK memo, feel free to peruse the operating manual for the DIABLO. tK Two modifications had to be made to avail ourselves of these ca-  pablilities.  K 1. RUNOFF had to be modified to allow one to insert spe- K cial characters in the output file. The essential K change is that the character "@" is now a special char- cK acter. The string "@33" tells runoff to put an octal sK 033 character in the output file. The "@" character is rK not printed, neither are subsequent octal characters. K Printing is resumed when RUNOFF sees the first oK non-octal character in the input text. Since "@" is a tK special character, to print it you must preceed it by a aK "_" (underline) character to show that you really want K it printed. Secondly, to avoid mass confusion to cur- rK rent RUNOFF source files, this is an option that is on- ,> ly evoked by a new switch. The command of  i( RNO OUTFIL/SC=INFILE  K tells RUNOFF that your source file has "S"pecial @K "C"haracter generation code in it. (Without the "/SC" iK switch, a "@33" in the text will be printed and not af- l, fect the DIABLO at all.)  yK 2. The system will not normally let you print special iK charcters at the terminals. To avoid this shortcoming, wK a new program "DIABLO" is available. DIABLO will print K files at the DIABLO printer using special QIO'S that @ let all characters pass. its use is simple.  "% DIA NAME.TYP;VERS i h6 Please see me if you have further questions  c h Frank R. Borger 2. The system will not normally let you print special iK charcters at the terminals. To avoid this shortcoming, wK a .LM 10;.RM 75.APPENDIX a null input (carriage return only) inhibitsE: the search for a named DSC output file. This is the8 response which must be used if the first reel of a+ multiple reel tape is NOT being read.e= program action = Search for the ANSI HDR1 record with the: specified label. If not found on the current reel,  return to step 3a. h, d. prompt = OUTPUT DEVICE AND UIC DDU:[UIC]@ answer = Disk output device where the restored file is to be7 00`oBoConnl]ldput. No wildcards. The defaults are the normal g! Fortran defaults for LUN 4. @ program action = Check for the desired volume being mounted. h e. prompt = FILE TO BE COPIED a? answer = [OWNING UIC]filename.ext;version of the file to ben8 located and copied. Any field can be wildcard (*)$ or contain wild-characters (?) e answer = /FI:filn,filsn.: this allows the user to copy a single file using its7 original file-number (filn),file-sequence-number.& NO wildcards or wild-characters. ? program action = Search for the file specified and copy to i9 the output. If the file is not on the current reelr: of a multi-reel tape, a prompt for the new reel will be issued.9 If the file is not in this volume (i.e. an ANSI EOFb2 record is found) an error message is output.7 If the file already exists (same Directory, name, : extension, version) an error message is produced and the file is not copied.r D f. prompt = FILENAME CONTAINS WILD CHARACTERS, COPY MULTIPLE FILES? o answer = Y; program action = multiple files will be copied. Promptt0 (g) will be produced (creation date selection) t answer = N> program action = Only the first file which matches will be3 copied. No selection on creation date. NOTE the 6 file copied will not necessarily be the one with the highest version number.  e o DSCCPY.DOC (continued)a i r* g. prompt = MULTIPLE FILES WILL BE COPIED; SELECT BY CREATION DATE? [BEFORE: ON: AFTER: DD-MMM-YY]I' -ONLY IMPLIES NO DATE SELECTIONa ?i = answer = OPTION: dd-mmm-yy % where OPTION = BEFORE, ON, AFTERi dd-mmm-yy = datet6 OPTION must be followed by either a : or a space.; No other spaces are allowed. Date must be in the form  specified.B program action = file header of file with matching name will be8 checked to see if the creation date falls in the range= implied by the option. If it does, the file will be copied.I D answer = (null line)2 program action = No selection by creation date.  a3 h. prompt = WARNING, FILE ALREADY EXISTS FILENAME:E DO YOU WANT TO:- C COPY ANYWAY (OVERWRITE) S SKIP COPYYYING THIS FILEp N CREATE A NEW VERSIONa+ answer = C, S, or N default is to skips program action:m* C - program will overwrite the old file.5 S - program will skip the copy (the new input file)l8 N - Will cause the version number of the offending new: file to be stripped off. Then the file will be open7 for output, creating a new "most recent" version.a h r DSCCPY.DOC (continued)A E T NOTES AND LIMITATIONS:U NK 1. This program has been used on both 7-track and 9-track TM-11 look-alikeE@ drives. Routine NXTAPE was changed to allow 1600 bpi tapes. J 2. If DATA OVERRUN errors (-13. IE.DAO) occur, the size of the tape inputA buffer can be increased using PARAMETER NRLTH= newsize in theiD main program. The buffer should never be less than 1040. bytes. fE 3. Error checking on the prompt input filenames is very primitive. nD Only a simple check on the syntax of the file specifier is done.A Illegal characters in the fields are not detected. This will-$ lead to "NOT FOUND" type errors. P* 4. There is no verify of the copied data. J 5. The /FI:filn,seqn command does not accept wildcards or wild characters fH 6. Because directory files are not guaranteed to be on the same reel as@ the file being copied, and I didn't want to have to read theA whole DSC volume, I chose to use the file identifier as found D in the files-11 file header. If a file has been re-named beforeB being DSC-ed this file identifier will not match the directory@ entry. The /FI: option can be used to find the file, given( a DSCDIR listing of the directories. oK 7. As much information as practical of the original file-header is preser- D ved with the copied file. Because I did not want to do the co00hoko=onnnndpyF with the index-file UNLocked not all information is preserved. TheG following items from the file header are preserved during the copy:e file name, extension, versione: space allocated and contiguous/non-contiguous indication end-of-file pointer. record attributesn / The following information is NOT preserved:g DIRECTORY uice OWNING uic creation date and time last update date and timed mappingr    DSCCPY.DOC (continued)c e d INSTALLING DSCCPY oB DSCCPY was originally compiled under F4P (version 2.51). It usesJ some MACRO-11 routines for string and FDB manipulation. The distribution includes the following files: o# DSCCPY.FTN -- Fortran main programn" DSCFTN.FTN -- Fortran subroutines# DSCMAC.MAC -- Macro-11 subroutines & DSCCPY.CMD -- Task build command file DSCCPY.DOC -- This document.  I8 Compile or Assemble as appropriate, the 3 source files. dJ Edit the task build command file to reflect your configuration if needed.H The device assignments for luns 3 and 4 are changed in response to user prompts at run-time.e or string and FDB manipulation. The distribution includes the following files: o# DSCCPY.FTN -- Fortran main programn" DSCFTN.FTN -- Fortran subroutines# DSCMAC.MAC -- Macro-11 subroutines & DSCCPY.CMD -- Task build command file DSCCPY.DOC -- This document.  I8 Compile or Assemble as appropriate, the 3 source files. dJ Edit the task build command file to reflect your configuration if needed.H The DSCDIR.DOC  r> DSCDIR - FORTRAN PROGRAM TO PRODUCE A DIRECTORY OF DSC TAPES. B K MODIFICATIONS: i7 28-Aug-81, WB-004 do not unload tape after rewindhB 11-Jun-81, wb-003 fix error with empty and short directories= 10-Jun-81, WB-002 fix problems with error on .DIR filesc* 10-Jun-81 WB-001 Allow 1600 bpi tape William D. Burton, Jr.- Texas Research Institute of Mental Sciencese 1300 MoursundR Houston, Texas 77030l (713) 797-1976 ext 501 B This file describes the program DSCDIR, a FORTRAN-IV-PLUS programL which produces a directory of tapes written by DSC (Disk-Save-and-Compress)5 Utility. It has worked on both RSX and IAS systems.8 w INSTALLATION: h' 1. Distribution of DSCDIR consists of:n ,+ DSCDIR.FTN - Main program and subroutinesc& DSCDIR.CMD - Task build command file DSCDIR.DOC - This file .' 2. Compile the main program DSCDIR.FTNi: 3. Edit the task-build command file for your installation e.g. resident libraries etc. s OPERATION:o m< 1. The DSC tape to be scanned is UNMOUNTED on fortran LUN-33 DSCDIR uses direct QIO reads (subroutine RDTAPE).U3 The program does NOT require reading all reels of a multi-reel tape set. i@ 2. Run DSCDIR and answer the questions. DSCDIR will not accept indirect command file input. T) a. prompt = INPUT TAPE SPECIFIER [DDU:] 7 answer - name of the tape device holding DSC tape.d (e.g. MT1:) n1 b. prompt = TAPE DENSITY (800 OR 1600 BPI)? [I]r8 answer - density of input tape, integer 800 or 1600 default is 800 bpi. N5 c. prompt = PRINT CONTENTS OF DIRECTORY FILES [Y/N]U< answer - Y if a listing of the contents of the Files-11" disk directories is wanted. N to suppress this list.D w  DSCDIR.DOC (continued)m d6 d. DSCDIR will read the tape and print a summary of:1 1) ANSI standard file labels (80 characters)  2) FILES-11 file headers file-idp! file-name, extension, version  creation date and time9 3) DSC initialization information (first reel of DSC  tape set only)p  N LIMITATIONS:I T@ 1. The predecessor of this program was used in checking out theA file-restoring program DSCCPY. This program should be fairlye robust.D w> 2. If DATA OVERRUN errors occur (error code -13. IE.DAO), the4 program buffer size can be increased by changing@ PARAMETER NRLTH= to the desired size. NRLTH should never be less than 1040. bytes.  sB 3. If multiple 00poqoConnl]ldtapes are directoried out of sequence, FALSE errorD messages FILE NUMBER OF DATA BLOCK DID NOT MATCH will be printed" these messages can be ignored.ram was used in checking out theA file-restoring program DSCCPY. This program should be fairlye robust.D w> 2. If DATA OVERRUN errors occur (error code -13. IE.DAO), the4 program buffer size can be increased by changing@ PARAMETER NRLTH= to the desired size. NRLTH should never be less than 1040. bytes.  sB 3. If multiple             / Disk Save and Compress (DSC) Tape Formatss  1-April-81    I. INTRODUCTION M This note describes what I have learned of the format of DSC producedlS magnetic tapes. The information presented here is to be considered prelimi- S nary and subject to revision. The Stand-Alone DSC V2 was used to create teste tapes for this project.  Bill Burton6 Texas Research Institute of Mental Sciences 1300 Moursund Houston, Texas 77030! (713) 797-1976 ext 501  II. DSC TAPE STRUCTURE  J Basically, DSC tapes are ANSI standard version 1 labeled magtapes.N Standard version 1 has been superceeded by version 3 (ANSI X3.27-1978).Q Some of the label records are non-conforming or undefined in the version 3s standard. F The DSC tape volume consists of ANSI labeled volume and header5 labels surrounding DSC formatted data records.  $ Record # Length Contents  1 80. VOL1 label recordT= volume identifier derived from the output file name < given in the DSC command line for the first output file.e3 a. Truncated to 4 characters if necessaryt9 b. Padded to 4 characters using the character Xs* c. Sequence number, 2 characters% 01 for first reel of a setb 02 for second, etc.= d. Other information is documented in ANSI Standard 4 Manual or RSX-11 I/O Operations Manual. ? 2 512. Dummy bootstrap block which produces the messagei; "This volume does not contain a hardware bootables system".  3 80. HDR1 label recorde4 a. File name specified in DSC command line/ b. Volume identifier from VOL1 recordb  4 80. HDR2 label recorde9 a. An undefined record code (U) is non-standardO- b. Logical record length 2064 bytes 6 c. Physical record length maximum 2064 bytes5 d. The character M in byte 37, non-standardo- e. Buffer offset 00 in bytes 51-52.   5 Tapemark 4 6 1040. First DSC formatted record, contains6 a. 8 word (16 bytes) DSC header with code=406 b. 512. bytes of DSC Bookkeeping information% (documented in section IV)8 c. 512. byte Files-11 file header for the file" (1,1) [0,0]INDEXF.SYS;1 ! 7. 1040. DSC Data recordn5 should contain initialization data for disk , structure, 2 virtual blocks worth. 8. 2064. DSC Data record5 More initialization information for virtuale block 377,177777.        $ Record # Length Contents - 9. & up 528. (or 1040. or 1552. or 2064.) < Contain DSC data records with DSC codes 1, 2, or 4: The details of these records are in section III.< DSC copies files to the output tape in file-number: order. For each input file on the disk there is0 1 type 2 record (of unknown function)* 1 type 4 Files-11 Header record3 as many type 1 data records as needed to 6 hold all virtual blocks allocated to the input file.u 00xoko=onnnnd   ; At the end of data from a disk volume, there will be2 $ Record # Length Contents  N tapemark  N+1 80. EOF1 recordf: Identical to HDR1 except bytes 55-60 now contain6 the number of physical tape records between HDR2 and EOF1.i  N+2 80. EOF2 recordy" Identical to HDR2 record  N+3 tapemark > N+4 tapemark, if this is the end of the tape volume OR 0 80. HDR1 for the next output tape file ( created using DSC /AP switch. F If the tape is filled, (ie reaches the End-of-Tape foil marker)K the EOF1 and EOF2 records will be replaced by EOV1 and EOV2 records. F The following reel in the set will start with a VOL1 label withP the output volume name incremented by 1. The structure of all subsequentP reels is the same as described above for the first reel, except that dataN records start immediately. There will be no DSC initialization recordsP (6, 7, and 8. above) on subsequent reels. It is possible for data from aM disk file to be split across two reels, and the data for a file can berK separated from its DSC header records or Files-11 header record when  changing reels.     " III. DSC DATA RECORD FORMAT C Within the labeled file, DSC writes its own format records.l These records contain:  a. An 8. word header7 b. 1, 2, 3, or 4-512. byte logical data blocks.a    DSC header Format I word 1 Length of the data portion of the record, excluding ALL DSCn specific information. K word 2 DSC record-type code indicating the type of data in the data  portion of the record. D code = 1 Disk data record(s), images of input disk blocksE 2 Prefix information. I have not fully decoded the : data in these records. May have some filename# and extent information. E 4 Files-11 file header (records of code 4 only have & one 512. byte data block).6 40 Special DSC initialization record.= a. 512. bytes of initialization information  see section IV. 6 b. 512. byte Files-11 header for INDEXF.SYS Q words 3-4 For type 1 records, these words contain the Virtual Block Number D (VBN) of the of the first logical block in the DSC data record.? The low order part of the VBN is in word 3, the high-ordere+ part is in the low byte of word 4. C I have not fully understood the use of these words for thei4 second data record for the INDEXF.SYS file. 4 word 5 The file number this record applies to > word 6 The file sequence number this record applies to. ( words 7-8 Always seem to be zero.       $ IV. DSC INITIALIZATION RECORD D This record contains the usual 8-word DSC header with a codeK of octal-40 in word 2. The data portion of the record contains 512.oO bytes of DSC control information plus the 512. byte Files-11 file header " for (1,1) [0,0]INDEXF.SYS;1 M The DSC control information is formatted within the record as follows:i  Bytes Contents L 1.- 12. DSC Output name from the command line, ASCII padded with spacesK 13.- 24. Input device name (e.g. DK1), ASCII, padded with spaces  25.- 36. ? null? 37.- 48. Input volume name, ASCII, padded with nullst 49.- 52. ? null 53.- 54. ? 1s@ 55.- 58. Number of blocks on the input device, binaryA 59.- 62. Number of blocks in use on the device, binaryf$ (not including bad blocks)@ 63.- 66. 00ooConnl]ldNumber of files in use on the device, binary 67.- 68. ?  69.- 70. ? null> 71.- 72. ? Number of blocks allocated to index file 73.- 74. ?  75.- 76. ?  77.- 78. ?  79.- 80. ?t 81.- 82. ?. 83.- 84. ?  85.-510. ? null 511.-512. checksum ; Items marked with ? are items I have not identified.t  V. DSC CODE 2 RECORDSt iE One of these records preceeds each files-11 file on the DSC tapee y DSC header word 1 = 512 word 2 = 24 word 5 = file number of the files-11 file7 word 6 = file sequence of the files-11 file.  DSC data block, 512. bytes0% words 1-3 the string BACKUP : word 5 The number of bytes in the name string5 words 6.. The file name string, in the forme% DDU:[126,342]filename.ext;ver.9 the UIC 126,342 seems to be constant,regard-c: less of what the source or directory uic was. o: word 46. Number of blocks allocated to the file& word 52. (same as word 46.)+ word 67. Owning UIC group number- word 68. Owning UIC member number.  rC There is some more information, but I have not determined whatn4 it is, it was not necessary for restoring files.      % VI. DSC FILES-11 HEADER RECORDe F One of these records immediately follows the DSC code 2 record and contains: > DSC header word 2 = 4 code for files-11 header record7 word 5 = files-11 file number for this fileiA word 6 = files-11 file sequence number for this file.  F The data portion of the record contains the 512. byte files-11O header block for the file. It is an exact image of the header as it was+ on the disk, including the map area. One of these records immed6 INTRODUCTION: EDI is a line and page oriented editor.9 --------------------------------------------------------A 1/ You can only work on one line at a time (the "CURRENT LINE")A 2/ You can only work on one page at a time (the "CURRENT PAGE")- 3/ EDI has two distinct modes of operation:A a/ INSERT mode, anything typed in goes directly to the file.A b/ COMMAND mode, used to alter the text already in the file.A (This mode is indicated by a "*" prompt by the computer.); 4/ EDI is initiated by the MCR command "EDI FILENAME.EXT"oC a/ If a file exists, EDI reads page 1 and enters COMMAND mode.YB b/ If no file exists, EDI creates one and enters INSERT mode. c TEXT MANIPULATION COMMANDS: ---------------------------C I Puts you in INSERT mode.Text will be entered into the file afteryB the current line. Two successive 's returns to COMMAND mode. tC O O(verwrites) the current line (or n lines.) Puts you in INSERTeD On mode just like I. Two successive 's returns to COMMAND mode. mC D D(eletes) the current line (or n lines, starting at the CURRENTaB Dn LINE.) Leaves the CURRENT LINE pointing at the following line. dP C/aaa/bbb/ C(hanges) first occurence of the character string "aaa" to "bbb"P nC/aaa/bbb/ If proceeded by a number, performs the operation n times on theP LC/aaa/bbb/ line.LC changes the whole line. PA changes from the CURRENT LINEP PA/aaa/bbb/ to the end of page. Separators may be any character, not just /. iO SAVEn name Saves n lines of text starting at the current line into the file,B specified. If no name is specified, the file "SAVE.TMP" is used.M UNSAVE name Restores text from the specified file after the current line.e aJ EX name Ends the editing session. If a file name is given the latest ver-- sion will be renamed to the specified name.b ' MOVING AND DISPLAYING THE CURRENT LINEs' --------------------------------------o P P(rints) the CURRENT LINE.yF Prints the CURRENT LINE and moves00oo=onnnnd the CURRENT LINE down 1 line.G Moves the CURRENT LINE up one line and prints the CURRENT LINE.sD nL Moves the CURRENT LINE down/up n lines, prints the CURRENT LINE.; T Moves the CURRENT LINE to the T(op) of the CURRENT PAGE.e? BO Moves the CURRENT LINE to the BO(ttom) of the CURRENT PAGE.- 7 REN Reads the next page of up to 80 lines into memory.  E TOF Brings you back to the first page of the document, and creates a! new copy (version) of the file.r rF L abc Locates the specified string characters. L stops at the end ofE PL abc the current page, PL (page locate) searches subsequent pages.o * COMBINING COMMANDS AND REPEATING COMMANDS* --------- -------- --- --------- --------I AAA&BBB Command AAA and BBB can be combined on one line if separated by) the ampersand (&) character. aP MACRO n abc Stores a complex command (or several commands separated by &'s)B into command buffer n for later use. (n can be between 1 and 3.) D Mn Executes the previously defined command number n. If preceeded1 mMn by a number, executes the operation m times.cate) searches subsequent pages.o * COMBINING COMMANDS AND REPEATING COMMANDS* --------- -------- --- --------- --------I AAA&BBB Command AAA and BBB can be combined on one line if separated by) the ampersand (&) character. aP MACRO n abc Stores a complex command (or several commands separated by &'s)B into command buffer n for later use. (n can be between 1 and 3.) D Mn Executes the previously defined com6 INTRODUCTION: EDI is a line and page oriented editor.9 --------------------------------------------------------A 1/ You can only work on one line at a time (the "CURRENT LINE")A 2/ You can only work on one page at a time (the "CURRENT PAGE")- 3/ EDI has two distinct modes of operation:A a/ INSERT mode, anything typed in goes directly to the file.A b/ COMMAND mode, used to alter the text already in the file.A (This mode is indicated by a "*" prompt by the computer.); 4/ EDI is initiated by the MCR command "EDI FILENAME.EXT"oC a/ If a file exists, EDI reads page 1 and enters COMMAND mode.YB b/ If no file exists, EDI creates one and enters INSERT mode. c TEXT MANIPULATION COMMANDS: ---------------------------C I Puts you in INSERT mode.Text will be entered into the file afteryB the current line. Two successive 's returns to COMMAND mode. tC O O(verwrites) the current line (or n lines.) Puts you in INSERTeD On mode just like I. Two successive 's returns to COMMAND mode. mC D D(eletes) the current line (or n lines, starting at the CURRENTaB Dn LINE.) Leaves the CURRENT LINE pointing at the following line. dP C/aaa/bbb/ C(hanges) first occurence of the character string "aaa" to "bbb"P nC/aaa/bbb/ If proceeded by a number, performs the operation n times on theP LC/aaa/bbb/ line.LC changes the whole line. PA changes from the CURRENT LINEP PA/aaa/bbb/ to the end of page. Separators may be any character, not just /. iO SAVEn name Saves n lines of text starting at the current line into the file,B specified. If no name is specified, the file "SAVE.TMP" is used.M UNSAVE name Restores text from the specified file after the current line.e aJ EX name Ends the editing session. If a file name is given the latest ver-- sion will be renamed to the specified name.b ' MOVING AND DISPLAYING THE CURRENT LINEs' --------------------------------------o P P(rints) the CURRENT LINE.yF Prints the CURRENT LINE and moves the CURRENT LINE down 1 line.G Moves the CURRENT LINE up one line and prints the CURRENT LINE.sD nL Moves the CURRENT LINE down/up n lines, prints the CURRENT LINE.; T Moves the CURRENT LINE to the T(op) of the CURRENT PAGE.e? BO Moves the CURRENT LINE to the BO(ttom) of the CURRENT PAGE.- 7 REN Reads the next page of up to 80 lines into memory.  E TOF Brings you back to the first page of the document, and creates a! new copy (version) of the file.r rF L abc Locates the specified s00ooonnl]ldtring characters. L stops at the end ofE PL abc the current page, PL (page locate) searches subsequent pages.o * COMBINING COMMANDS AND REPEATING COMMANDS* --------- -------- --- --------- --------I AAA&BBB Command AAA and BBB can be combined on one line if separated by) the ampersand (&) character. aP MACRO n abc Stores a complex command (or several commands separated by &'s)B into command buffer n for later use. (n can be between 1 and 3.) D Mn Executes the previously defined command number n. If preceeded1 mMn by a number, executes the operation m times.cate) searches subsequent pages.o * COMBINING COMMANDS AND REPEATING COMMANDS* --------- -------- --- --------- --------I AAA&BBB Command AAA and BBB can be combined on one line if separated by) the ampersand (&) character. aP MACRO n abc Stores a complex command (or several commands separated by &'s)B into command buffer n for later use. (n can be between 1 and 3.) D Mn Executes the previously defined com" EDT Version 2 VT100 Keypad' +--------+--------+--------+--------+r | | | Fndnxt | Del L | | Gold | Help | | | | | | Find | Und L |' +--------+--------+--------+--------+r' | Page | Sect | Append | Del W |  | | | | |0' | Command| Fill | Replace| Und W |u' +--------+--------+--------+--------+U' | Advance| Backup | Cut | Del C |Q | | | | |t' | Bottom | Top | Paste | Und C |n' +--------+--------+--------+--------+ & | Word | Eol | Char | | | | | | Enter |$ |Chngcase| Del Eol| Specins| |$ +--------+--------+--------+ |% | Line | Select | Subs |- | | | |-$ | Open Line | Reset | |' +-----------------+--------+--------+ # Backspace Go to beginning of line- Delete Delete character" Linefeed Delete to start of word CTRL/A Compute tab level  CTRL/D Decrease tab level CTRL/E Increase tab level CTRL/K Define key- CTRL/T Adjust tabsE" CTRL/U Delete to start of line CTRL/W Refresh screenD CTRL/Z Return to line mode---+--------+--------+ |% | Line | Select | Subs |- | | | |-$ | Open Line | Reset | |' +-----------------+--------+--------+ # Backspace Go to beginning of line- Delete Delete character" Linefeed Delete to start of word CTRL/A Compute tab level  CTRL/D Decrease tab level CTRL/E Increase tab level CTRL/K Define ke! EDT Version 2 VT52 KeypadU' +--------+--------+--------+--------+s! | | | Del L | Up |o# | Gold | Help | | | ! | | | Und L | Replace| ' +--------+--------+--------+--------+ ' | Page | Fndnxt | Del W | Down |-! | | | | |o' | Command| Find | Und W | Sect |c' +--------+--------+--------+--------+o' | Advance| Backup | Del C | Right |D | | | | |' | Bottom | Top | Und C | Specins| ' +--------+--------+--------+--------+ ' | Word | Eol | Cut | Left |  | | | | |' |Chngcase| Del Eol| Paste | Append | ' +--------+--------+--------+--------+-' | Line | Select | Enter |  | | | |l& | Open Line | Reset | Subs |' +-----------------+--------+--------+|# Backspace Go to beginning of line- Delete Delete character" Linefeed Delete to start of word CTRL/A Compute tab levelt CTRL/D Decrease tab level CTRL/E Increase tab level CTRL/F Fill textW CTRL/K Define key CTRL/T Adjust tabs ! CTRL/U Delete to start of lineE CTRL/W Refresh screen CTRL/Z Return to line mode-----+-' | Line | Select | Enter |  | | | |l& | Open Line | Reset | Subs |' +-----------------+--------+--------+|# Backspace Go to beginning of line- Delete Delete character" Linefeed Delete to start of word CTRL/A Compute tab levelt CTRL/D Decrease tab lev00oo=onnnnd    & Files-11 Activity Reporting Program K F11ACT is a sytem performance measurement program for taking a snapshot ofM Files-11 ACP activity on a running IAS or RSX-11D system. It was originallyP developed to verfiy Files-11 ACP data structures "on the fly", but it has since8 evolved into a general purpose file system tuning tool. I The program produces a report of currently accessed files for each file-N structured device known to the system, with statistics on ACP data structuresM and memory utilization. F11ACT can optionally produce a report on a list ofoH specific devices, or on all devices serviced by a given ACP task. ThisN information can be used to formulate optimal strategies for assigning devicesL to ACPs on a multiple-ACP system, for determining size requirements for theM ACP internal FCB storage area, the size of FCPCOM, the size of the directory  LRU cache, and so on. L See file EXAMPLE.LST for an example of the output produced by the following commands:  COMMAND LINE SYNTAX: 2 [OUTFILE][/-APPEND][/SPOOL][/FILES][/PRIORITY:N] = [/ACP:XXXXXX] OR = [DEVICE[/FILES]],...n A /APPEND OPEN OUTFILE FOR APPEND (DEFAULT), ELSE CREATE OUTFILEi) /SPOOL SPOOL OUTFILE (DEFAULT IS /-SP)t= /FILES LIST ATTRIBUTES OF ALL FILES OPEN ON ALL DEVICES IFP8 THIS SWITCH APPEARS ON OUTPUT SIDE OF COMMAND LINE9 LIST ATTRIBUTES OF ALL FILES OPEN ON SPECIFIED DEVICEM* IF THIS SWITCH APPEARS ON INPUT SIDE$ (DEFAULT IS /-FI IN BOTH CASES).? /PRIORITY:N ACP RUN PRIORITY IS N (DECIMAL) (DEFAULT IS 220.)PE /ACP:XXXXXX GATHER STATISTICS FOR ALL DEVICES SERVICED BY THE NAMED9 ACP. IF THIS SWITCH IS SPECIFIED ON THE INPUT SIDE,U) A DEVICE LIST MAY NOT BE SPECIFIED.  @ AN EMPTY COMMAND LINE IS EQUIVALENT TO THE FOLLOWING DEFAULTS: < F11ACT> TI:F11STATS.LST/APPEND/-SPOOL/-FILES/PRIORITY:220.  BUTES OF ALL FILES OPEN ON SPECIFIED DEVICEM* IF THIS SWITCH APPEARS ON INPUT SIDE$ (DEFAULT IS /-FI IN % Files-11 ACtivity reporting programKF11ACt is a sytem performance measurement program for taking a snapshot ofKfiles-11 ACP activity on a running IAS or RSX-11D system. It was originallyKdeveloped to verify FILES-11 ACP data structures "on the fly", but it has=since evolved into a general purpose file system tuning tool.KThe program produces a report of currently accessed files for each file-Kstructured device known to the system,with statistics on ACP data structureKand memory utilization. F11ACt can optionally produce a report on a list ofeKspecific devices, or on all devices serviced by a given ACP task. this in-tKformation can be used to formulate optimal strategies for assigning devices Kto ACPs on a multiple-ACP system, for determining size requirements for theaKACP internal fcb storage area,the size of fcpcom, the size of the directory LUR cache, and so on.fKSee file example.lst for an example of the output produced by the followingA commands:u r command line syntax:i1 [outfile][/-APpend][/SPool][/FILES][/PRiority:N]o = [/ACP:xxxxxx]s or  = [device[/FILES]],...@ /APpend Open outfile for append (default), else create outfile s( /SPool spool outfile (default is /-SP) a< /FILES List attributes of all files open on all devices if5 this switch appears on output side of command lineh8 List attributes of all files open on specified device' if this switch appears on input sideu# (default is /-FI in both cases).s > /PRiority:N ACP run priority is N (decimal) (default is 220.) /D /ACP:xxxxxx Gather statistics for all devices serviced by the named6 ACP. If this switch is specified on the input side,& a device list may not be specified.>An empty command line is equivalent to the following defaults:; F11ACt> TI:F11STATS.LST/APpend/-SPool/-FILES/PRiority:220.deh8 List attributes of all files open on specified device' if this switch appears on input sideu# (default is /-FI in both cases).s > /PRiority:N ACP00ooonnl]ld NEW UTILITY G A dump program differing from DEC's dump, which can only output in one format at at time. G FDUmp lists output in OCTAL,ASCII, and RAD50 on the same line of print  FDUmp supports 2 switches  /AB this specifies the offsets for each line to be listed relative toE the beginning of the file. that is, block 1 starts at '000000, block> 2 starts at 1000, block 3 at 2000 ....etc. this is useful forE looking at files which contain linked lists, like [1,4]SPRQUEUE.SYS. 0 (Normally each block is listed realative to 0.) ) /BL:N:M List blocks n thru m inclusivea ora1 /BL:N List blocks n thru end of file inclusiven A  Calling proceedure:  MCR>FDU filespect  orh  MCR>FDU FDU>filespec  - where filespec is a file name of the form DDN:[GGG,UUU]NAME.TYP;VERS output will be directed to LP0:> 2 starts at 1000, block 3 at 2000 ....etc. this is useful forE looking at files which contain linked lists, like [1,4]SPRQUEUE.SYS.       9 FHD is a program to list the file header of a given file 6 Primary purpose is to list all the pieces of the file9 to determine how fragmented the file is if it is a large9 data file, and to determine which absolute blocks on the: disk the file occupies, (if troubles occur with the disk)  < After listing routine information from the file header, fhd, lists each piece of the file, reporting on:  Number of blocks (decimal): First block # (absolute disk block number, 2 word, octal): Last block # (absolute disk block number, 2 word, octal)  < Fhd also reports if the header had to be extended (by using= an extension file header) and lists the unique file id (FID)e for the extension filea l  calling proceedure   e MCR>FHD nnnnnn,mmmmmm wherei t. nnnnnn,mmmmmm is the file's (unique) FILE ID> (obtained via a PIP or SRD directory using the "/FU" switch) rng on:  Number of blocks (decimal): First block # (absolute disk  A     . Find Logical Blocks  3 A Contiguous Block Identification Utility           # 15-FEB-81 ( (Revised 19-JUN-81)          ( J. Bradley Flippin+ Raytheon Service Companyi3 2341 Jefferson Davis Highway (Suite 1200),+ Arlington, Virginia 22202s) Phone (703) 685-2200  = FLB --- A contiguous block utility program PAGE 2  Program Description  Background: = Disk cartridges and packs are structured into tracks = and sectors. these sectors, each of which contains a block = (or partial block) of data, are used by the operating systeml= to store files. Under RSX-11M, this file structure is known = as FILES-11 and consists of one (or more) header blocks and = any number of associated data blocks. The data blocks are6= assigned by the FILES-11 Auxiliary Control Processor < (F11ACP) to the respective header by means of map pointers. = Basically, as the system needs blocks, they are allo-= cated in a systematic way: Always from the bottom up! This= process continues until the file is full. Deleting files= results in the de-allocation of the respective blocks as in-= dicated in the file header's map area. This makes them ava-= ilable for the next user. As time progresses, it can be= seen that the disk can become a "shotgun" of randomly as-= signed data blocks. This fragmentation may eventually have = an adverse affect, particularly when a task requires large= blocks of contiguous space, such as SORT which requires them for its working files.l = The scattered blocks can be consolidated (or com-o= pressed) by using the Disk Save and Compress (DSC) utility.'= However, this requires that the disk be copied to anothere= media and then re-bui00oo=onnnndlt on the original media. If tape iso= used, or only a few files are destroying the contiguous = space, then a faster way would be to free up the contiguousl= space by moving the guilty files. This would require,= searching every header and then searching all its map po- = inters to see if any of their data blocks are in the affect-o= ed area. This is a long and difficult manual process.'2 FLB, however, will find the guilty files for you.  BITMAP.SYS: = The one system file which holds the key to which blocksn= are in use (allocated) and which are available for use ise= BITMAP.SYS which is located in the null directory [0,0]. Itm= is a file in itself. It has a header which maps one Storage = Control Block (SCB) and "n" bitmap blocks, each capable ofs= "mapping" 4096 decimal blocks. Thus, the floppies (RX02) = use one bitmap block where the RK07 has 14 bitmap blockse/ (not counting the SCB which is always VBN #1).B = To use the FLB utility, all one needs to do is dumpi= BITMAP.SYS and use it as a roadmap to find and identify thef= desired blocks. The space is freed by the simple process of[= moving them. The F11ACP always assigns the new blocksn= starting at the lowest numbered blocks. This effectivelya= moves the files to the front of the device, unless, ofi  = FLB --- A contiguous block utility program PAGE 3e Program Description  $ course, the device is already full.  " Assembling and Task Building FLB: ; Building FLB is relatively straight forward. The 1 source media should contain the following files:i 3 1. FILES.MAC;1 dated 15-FEB-81 (Source file)s 0 2. FILES.COR (The latest correction file) 3 3. FILES.CMD (A command file to build FILES)  8 4. MOVE.CMD (A command file to move guilty files) - 5. FILES.DOC (This documentation file) = 6. COPY.CMD (A command file to make copies of the source media)a  = To build FLB, simply copy the source to your mediaa= with @COPY then run @FILES. The file will ask whether or= not you want a listing. If yes, it will put FILES.LST on = SY:. When installed, the task will have the name "...FLB".I    = FLB --- A contiguous block utility program PAGE 4e Program Description   How to Use FLB: = The following procedure is recommended (all numbers are # octal unless otherwise indicated):  1 1. The device in question must be mounted.y = 2. Determine the free space available by using PIP.e= Enter: PIP DM:/FR (or FREE, if TDX is installed).t= If the number of free blocks exceeds by a large am-l= ount the number of contiguous free blocks, thenu= FLB will be of some help. If not, then movingn= the files may simply move them to higher blocks numbers. = 3. Dump the bitmap by entering: DMP # BITMAP=DM:[0,0]BITMAP.SYS = 4. Examine the bitmap dump, looking for the largest= grouping of "1" bits (ie: l777777 indicates all 16? decimal blocks represented by that word are avail- = able). Generally, these will be towards the end of = the device. Note that the last block generally = shows a large portion of allocated blocks towards = the end. This is because most devices do not have 6 an integral multiple of 4096 decimal blocks. = 5. FLB can now be used to identify the desireds= files. Simply enter the search parameters by means1= of input switches. Figure 1 shows a sample output.l= the following are examples of various command lined inputs:  = 1. Show all files containing blocks in virtuala, block number 15 of BITMAP.SYS: - FLB TI:=DM:/BLK:15:15  00ooonnl]ld= 2. Print a listing of the file using a specific= LBN (ie: 4200)-(Note that the /LBN switche) utilizes double precision):c 5 FLB LP:=DM:/LBN:0:4200:0:4200e = 3. Spool a file "FILES.LST" on SY: listing allf= files represented by the 16 bits of word 10 ofh BITMAP VBN 15: 3 FLB =DM:/BLK:15:15/WD:10:10. = 4. Search the BITMAP starting with block 15 and 1 extending to the end of the device:i   = FLB --- A contiguous block utility program PAGE 5  Program Description  * FLB TI:=DM:/BLK:15 = 5. Search the BITMAP to the end of the deviceo* starting at a specific word: 0 FLB TI:=DM:/BLK:15/WD:20  = 6. The affected files can now be moved. Go to the0= proper directory (UIC) and use PIP = /NV/CD=filename.type;ver. Be sure to use the spec- = ific file version. Once the file has been moved, = the specific version can then be deleted (The same = thing can be accomplished by using the MOVE command  file).   = FLB --- A contiguous block utility program PAGE 6  Program Description  Problems: ; Problems may be encountered during the use of FLB. = Usually then can be resolved. The following are a few exam- ; ples (references are to the Utility Manual [AA-H268A-TC]):  = 1. All headers may not be listed in a UFD. This is = evident when a filename.type;version cannot be = found with PIP [*,*]. Solution: Run VFY with the = /LO switch (see Section 13.3.5). This will find = the "lost" file(s) and place them in the lost files = directory [1,3] where they can be properly deleted.  = 2. All blocks may not be mapped to a header. This isr= evident when files does not list a culpret, but the = bit is shown as set in the BITMAP.SYS Dump. = Solution; Run VFY with the /RE switch (See Section  13.3.7).  = 3. Finally, it may be a bad block. This is evidenti= when the FILES listing contains [1,1]BADBLK.SYS asp= one of the first entries (headers are serached inh= sequence - BADBLK.SYS is header number 3). Do notn= confuse "last track" protection provided to lastl= track devices (ie: RK06/7, RL01/02, and RM02/03) = with actual bad blocks. This can be verified byV= dumping the header of BADBLK.SYS. The first entry = in the map area will show blocks mapped at the end,i= then the actual bad blocks are mapped individually.p= (See Section 9.3.1.2). If it is a bad block, thereh3 is no solution, except to get a new disk.)   = FLB --- A contiguous block utility program PAGE 7 Program Description   Notes:  = 1. Remember, all UIC's in the FLB listing are those = of the OWNER. Generally this will also be the di-.= rectory in which they are listed. If not, thenm= search for them using a wildcard PIP command (ie:p% PIP [*,*]filename,type;ver.i = 2. Special conditions apply to UFD's because the Filen= ID is contained in the MFD. A UFD is identified by = a filespec similar to: DM0:[001,001]007007.DIR;1.' The proper procedure here is:   = 1. Move any files in the UFD to another UFD (usinge) the /CD switch if desired).  5 2. Delete the files from the original UFD.  = 3. Delete the UFD (ie: PIP [0,0]007007.DIR;*/DE).  = 4. Create a new UFD with the same UIC (ie: UFDp DM:[7,7]). = 5. Run FLB again to ensure it has not 00oo=onnnnd put the = new UFD in the same area of interest (or dump5 its header and check the map pointers).  = 6. Finally, copy back the output files to the new ; UFD (using the /CD switch again, if desired).t  = 3. If the file is an installed task, then it must be = removed (REM) and re-installed (INS) after theD= move, or the system may crash when it is called.= (Don't forget to do this to your task image by run- ning VMR). = 4. For additional information see the MACRO sourcea listing.        = FLB --- A contiguous block utility program PAGE 8  Program Description  Example:t     : DM0:[001,001]BADBLK.SYS;1 <------ (Indicates a bad block) DM0:[104,060]EDITOR1.TMP- DM0:[111,142]VSCAT.OBJ;3D DM0:[111,141]SHP733.LST;1 DM0:[111,064]AOSTUDY.TSK;2a DM0:[111,142]VSCAT.LST;10 DM0:[111,142]VSCAT.SKL;3  DM0:[111,141]SHP732.LST;1 DM0:[106,130]REPORT.FTN;6 DM0:[111,064]AOSTUDY.TSK;1t DM0:[104,060]KWIC.LST;25   DM: = 53790. BLOCKS SPAN: 4096. BLOCKSB LO LBN: H:000 L:130000 = 45056. HI LBN: H:000 L:137777 = 49151.  FILES FOUND: 11.E ELAPSED TIME: 00:01:24 LP:=DM:/BLKS:15:15B       2 Figure 1 - Example of FLB run on an RK07 ] = FLB --- A contiguous block utility program PAGE 9; Technical Description  INTRODUCTIONS = The following technical notes are provided for those= who desire to know what is happening within the FLB pro-D= gram References are to the I/O Operation and Reference Manu-0= al (AA-2515D-TC). Details of the command line processng, 0 FCS, and the simpler routines are not provided. = The basic assumption of FLB is that it will be work- = ing on a FILES-11 structured device. This means that itg= will be looking for certain things in certain places.U= Specifically, it assumes that the device contains the stan-f= dard five system files (only the first one is accessed bye FLB).  #1 - INDEXF.SYS  #2 - BITMAP.SYSe #3 - BADBLK.SYSA #4 - 000000.DIRo #5 - CORIMG.SYSe   Command Line Processing n = The command line includes two output switches and threet= input switches. The output switches are /ID (to provide the = program version number) and /SP (to spool the output). Thei) defaults are /-ID and /SP, respectively.s = The three input switches are /LBN, /BLK, and /WD. Theo= /LBN switch permits the user to specify a logical blockD= number (or numbers) directly. The format is standard double = precision (ie: /LBN:0:100:0:100 = LBN #100 only). The = other switches are designed to match the BITMAP.SYS dump andi= are mutually exclusive with the /LBN switch. The /BLK = switch may stand alone, but the /WD switch requires the /BLKe switch. h= The output switches are first validated to ensure theh= above logic has been observed. Next the switch values arec= validated by "VALIDATE SWITCH VALUES." Here a stop value of = zero is replaced by the SIZE parameter which was extracted = from the device's Home Block by the Get LUN (GLUN$) direc-c= tive during the parsing of the input filespec. This valuel= (minus one) is set into the stop LBN if it is not present  (or equal to zero). = The /BLK switch is validated next to ensure that is ise= greater than one and that the stop block is not less than = the start block value. The /BLK switch was designed to per- = mit the user to enter the octal block numbers from at= BITMAP.SYS dump directly. Thus, the /BLK validation routine : esures that the Storage Control Block (VBN #1) is passed.  = FLB --- A contiguous block utility program PAGE 10e Technical Description  = Finally, the /WD switch is validated by ensuring thatd= it is less than 512 (decimal), that00ooonnl]ld it is an even number = (word aligned), and that the top value is less than the = start value only in those cases when the start/stop /BLK va-o! lues differ (interblock search).A = Once the switches have been logically verified and theh= values validated, then the actual start and stop LBN is cal--= culated. If the /LBN switch was used, then the "GENERATEn= THE LBN VALUES" routine is bypassed. Otherwise, the /BLKd= values are converted to LBN values by the equation shown onh= the listing. The /WD values are then added or subtractedl& from the resulting LBN's as required.  Processinge = The first action, after deciding that the command line= was proper, is to retrieve the Home Block, which is LBN #1= on the device. This is accomplished by the FCS procedure= "RETRIEVE HOME BLOCK". The INDEXF.SYS file is non- conven-= tional, in that the offsets F.HIBK (the highest block allo-= cated to the file) and F.EFBK (the end-of-file block) are= both zero. These must be set to their logical values so the= program can scan the headers and detect an EOF condition at = the appropriate time. This is acommplished by opening the= file with the statisitics block, as described in Paragraph= 3.1.2 under file option 3.d (Page 3-11). The statistics= block is shown in Figure H-1 on Page H-1. Once the= INDEXF.SYS header file FDB has been reset, then the home5 block is read into the buffer region named "HEADER."o= The important values in the home block are the firsts= two bytes (H.IBSZ) which indicates the size of the indexi= file bitmap, ant the next four bytes (H.IBLB) which containg= the LBN of the first block of the index file bitmap in dou-a= ble precision format. These are important because they pro-i= vide the physical location (LBN) of VBN #3, which is thec= start of the header bitmap and its length. Adding the two = together provides the LBN of the first header (1,1) which= happens to be INDEXF.SYS. The program is now set to scans the headers.( = The "RETRIEVE A HEADER BLOCK" routine reads each header = sequentially. Offset H.FNUM is checked each time. If it isf= zero, then it is a deleted header and the next one is read.r= If it is not zero, then it begins searching the map pointerc region of the header. = Each file header contains a map area which consists of,A= among other things, an offset M.USE (one byte) which is aa= count of the number of map pointers in use. The maximumw= value is 102 pointers (The actual value is the number ofD  = FLB --- A contiguous block utility program PAGE 11c Technical Description  = words used or twice the the number of pointers used). IfI= this value is null, then it is either a null header or ther= program has checked all of its pointers. The secton of the = header used in the searching is the retreival pointer sec-S= tion which starts at offset M.RTRV. To find this offset, = the program steps past the header section (S.HDHD), thel= identification section (S.IDHD), to the start of the retri-t= eval section (M.RTRV) (See the equated symbol MPTR in the listing). = Each pointer consists of two words (four bytes). The = first byte contains the high order eight bits of the 24 bitc= LBN. Byte two contains the count field and bytes three and = four contain the 16 low order bits of the LBN. Each pointert= can map up to 256 (decimal) contiguous blocks. The value of = the count is actually n-1, thus a zero points to one block,o= while a value of one points to the first of two contiguousn= blocks. The "SEARCH MAP POINTERS" routine checks the MUSE = location first, exiting if it contains a zero. Otherwise, = it extracts the two word map pointer and divides it into ac= count filed and a double precision LBN, then calls SEARCH = which decrementes until it reaches zero (or a match ist. found) at which time the ne00oo=onnnndxt header is read. = The actual search routine is contained in "SEARCH FOR Ao; MATCH." It performs a search based on the following logic:w = 1. If the LBN of the first block of the pointer iss= below the starting LBN, then there is no match pos-O sible and it exits.t = 2. If it is equal, then there is a match of at leastl= the first block. The OUTPUT routine is calledt< which outputs the full filespec to the output FDB.= 3. If it is greater than the first LBN of the pointer,c= then no immediate conclusion can be reached, so the 3 LBN must be checked against the stop LBN. 8 1. If it is LT/EQ, then a match has occurred. = 2. If NE, then the LBN of the last block in thee= pointer's contiguous group must be calculated = by adding the count field to the pointer's LBN.    < 1. It it is LT/EQ, then a match has occurred.   = 2. If not, then it is outside of the range and $ the routine exits.  = FLB --- A contiguous block utility program PAGE 12 Technical Description      = The above process is repeated for each header until ano= EOF condition is reached, at which time the summary is out-e putted.    Correction File = Corrections to the orginal source file will be made by = means of a correction file to be used with SLP. The current = correction file FILES.COR contains the code necessary to up- = date FLB to version l.0A. This includes code to correctc= for DP LBN's, corrects some DP arithmatic errors, cleans out = the high byte in CW2, plus adds a diagnostic capability. Ina= addition, it has been tested on RSX-11M (PLUS) and an RP06  drive.r = The new diagnostic switch /DA acts the same as the /-LIc= switch plus it provides a means for the user to force a dif- = ferent value into the SIZE value (number of blocks on the = device). The default value will be that of the device indi- = cated. Otherwise the program will use the supplied value') which is stored in DASIZE. For example:n ( FLB TI:=DM:/DA:1:1000/BLK:5:5 = The above command string will force the program to set(= the size parameter to 66048 (decimal). (Arbitrary valuesi= must be used with either the /LBN or /BLK switches, becausem= of the syntax. These values must be less than the selected /DA value.)     - -JBFthe device indi- = cated. Otherwise the program will use the supplied value') which is stored in DASIZE. For example:n ( FLB TI:=DM:/DA:1:1000/BLK:5:5 = The above command string will force the program to set(= the size parameter to 66048 (decimal). (Arbitrary valuesi= must be used with either the /LBN or /BLK switches, becausem= of the syntax. These values must be less than the selected C SUBROUTINE FLOPEN.FOR;C THIS SUBROUTINE READS IN A FILE NAME AFTER PRINTING A;C STRING MESSAGE SPECIFIED IN THE CALL, AND PERFORMS AN<C ASSIGN TO A LUN ALSO SPECIFIED IN THE CALL. THE STATUS=C IS RETURNED WITH IST = 1 INDICATING SUCCESS AND IST = 2)C INDICATING FAILURE VIA EOF ON INPUT4C RE-ENTERED 5-MARCH-75 AUTHOR: LARRY SIMPSON+C MODIFIED FOR "FOR" COMPILER 15-AUG-75C ---------DC MODIFIED TO CHECK ON EXISTENCE OF A FILE OPENED FOR READ VIA AAC DUMMY READ STATEMENT. POSITIVE LUN INDICATES READ, NEGATIVEL7C INDICATES WRITE. NO CHECK IS PERFORMED FOR WRITE.I9C FILE NAME AND LENGTH ARE NOW SAVED IN A COMMON AREAE%C ACCESSIBLE BY THE MAIN PROGRAM.S'C MODIFIED 29-JAN-76: LARRY SIMPSON ; SUBROUTINE STRCMPI4; TO COMPARE TWO STRINGS AND REPORT EQUALITY OR NOT.; FORTRAN CALL: (; CALL STRCMP(STRING1,STRING2,NCH,IRSLT),; WHERE STRING1=FIRST STRING (USUALLY ARRAY); STRING2=SECOND STRINGN%; NCH=NUMBER OF CHARACTERS TO 00ooonnl]ldCOMPARE ; IRSLT=STATUS: 0 -> EQUALITYE0; > 0 -> POSITION IN STRINGS AT WHICH = FAILED; SUBROUTINE MOCNVTM7; TO CONVERT MONTHS FROM NUMBER TO ASCII AND VICE VERSAI; FORTRAN CALL:#; CALL MOCNVT(NUM,MONTH,MODE,ISTAT)S; WHERE:; NUM = NUMBER OF MONTH (1-12)!; MONTH = 3 CHAR ASCII MONTH NAMEA; MODE:R; 1 = NUM > ASCII; 2 = ASCII > NUM; ISTAT: STATUS RETURN ; 1 = OKT#; 2 = INVALID PARAM FOR CONVERSIONS; 3 = INVALID MODEA .TITLE MOCNVT; SUBROUTINE STRCONB; STRING CONCATENATION ROUTINE;; TO TAKE A VARIABLE NUMBER OF STRINGS AND CONCATENATE THEMA; INTO ONE STRING.; FORTRAN CALL:V5; CALL STRCON(LENA,LEN,STR,LEN1,STR1[,LEN2,STR2,...])E; WHERE:-; LENA = ACTUAL LENGTH OF CONCATENATED STRINGT'; + INDICATES SUCCESSFUL CONCATENATION1; 0 INDICATES ERROR IN CALL$; - INDICATES OVERFLOW, VALUE = LEN$; LEN = MAX. LENGTH OF OUTPUT STRING; STR = START OF OUTPUT STRING%; LEN1 = LENGTH OF FIRST INPUT STRINGD; STR1 = START OF FIRST STRING; ETC. B; SUBROUTINE AMAXFA.MACR%; SUBROUTINE TO FIND THE MAXIMUM OF AS+; SERIES OF REAL*4'S WHOSE STARTING ADDRESSN"; AND COUNT ARE GIVEN IN THE CALL.; FORTRAN CALL:,#; CALL AMAXFA(FARR,ICNT,FMAX,IOFF)E1; WHERE FARR=STARTING ADDRESS(USUALLY ARRAY NAME)D%; ICNT=COUNT OF REALS TO COMPARE(>1)I,; IOFF=OFFSET OF MAX VALUE (ARRAY POSITION); FMAX=MAX VALUEE; SUBROUTINE CHRCNTU/; TO COUNT THE NUMBER OF OCCURRENCES OF A GIVEN=+; CHARACTER IN A BUFFER OF SPECIFIED LENGTHT; FORTRAN CALL:#; CALL CHRCNT(NBUF,CBUF,NCHR,CHAR)R; WHERE:#; NBUF=NO. OF CHARACTERS IN BUFFERI; CBUF=START OF CHAR BUFFER%; NCHR=NO. OF SPECIFIED CHAR COUNTEDC&; CHAR=SPECIFIED CHARACTER (BYTE VAR); SUBROUTINE FLINTP.MACR'; FLOATING POINT INTERPOLATION FUNCTIONE/; IF Y = F(X) AND FOR X1 AND X2 A CORRESPONDINGF,; Y1 AND Y2 ARE KNOWN, THEN GIVEN X0 BETWEEN%; X1 AND X2, Y0 WILL BE CALCULATED BY ; LINEAR INTERPOLATION.C; FORTRAN CALL:E; Y0 = FLINTP(X1,X2,Y1,Y2,X0)S;I;L; SUBROUTINE LNFILL.MAC'; TO FILL IN BLANKS IN A FORTRAN ARRAY.HH; A STARTING ADDRESS, LENGTH AND (OPTIONALLY) A CHARACTER ARE SPECIFIED.; FORTRAN CALL:E; CALL LNFILL(LEN,ARRAY[,CHAR])C; WHERE:; LEN=NO. OF BLANKS TO FILL IN&; ARRAY=NAME OF FIRST POSITION TO FILL<; FIRST BYTE OF CHAR=ASCII CHARACTER TO FILL (DEFAULT=BLANK) .TITLE LNFILL; SUBROUTINE TRNCAT.MACT&; FORTRAN CALLABLE ROUTINE TO TRUNCATE&; TRAILING BLANKS FROM AN ASCII ARRAY.; FORTRAN CALL:F; CALL TRNCAT(LIN,NLIN,NONBLK); WHERE:; LIN = START OF ARRAY; NLIN = NO. OF CHAR IN LINE5; NONBLK = NO. OF CHAR IN LINE AFTER BLANK TRUNCATIONHARACTER ARE SPECIFIED.; FORTRAN CALL:E; CALL LNFILL(LEN,ARRAY[,CHAR])C; WHERE:; LEN=NO. OF BLANKS TO FILL IN&; ARRAY=NAME OF FIRST POSITION TO FILL<; FIRST BYTE OF CHAR=ASCII CHARACTER TO FILL (DEFAULT=BLANK) .TITLE LNFILL; SUBROUTINE TRNCAT.MACT&; FORTRAN CALLABLE ROUTINE TO TRUNCATE&; TRAILING BLANKS FROM AN ASCII ARRAY.; FORTRAN CALL:F; CALL TRNCAT(LIN,NLIN,NONBLK); WHERE:; LIN = START OF ARRAY; NLIN = NO. OF CHAR  INF.DOC J       . INFORM   3 A System Program  3 That Can Display   3 Active Task List  0 Node Usage  1 Clock Queue  1 Device's PUD  1 Partition Map  4 Device Forms Types  1 A Task's ATL  1 A Task's STD  5 A Task's Pending I/O  8 A Terminals Characteristics       + Frank R. Borger , 07-November-1978  K INF.DOC 00oo=onnnnd PAGE 2 J 07-Nov-78  4 ACTIVE TASK LIST 3 ------ ---- ----    FUNCTION  -------- i IK Provide a listing of all currently active tasks, along with ! their address in core.   a CALLING SEQUENCE  ------- --------   MCR>INF ACT  -------    ALLOWABLE SWITCH  --------- ------  K /E Switch provides extended listing, including task STATUS and  TI.    6 NODE POOL ACCOUNTING 5 ---- ---- ----------  v  FUNCTION r --------  oK List detailed accounting of node usage. Includes total number UK of nodes in the system, number of free nodes, nodes allocated to & different tasks and tables.  T  CALLING SEQUENCE  ------- -------- v s MCR>INF NOD  -------    ALLOWABLE SWITCHES  --------- -------- L C None.  K INF.DOC PAGE 3 J 07-Nov-78 e t4 CLOCK QUEUE LIST 3 ----- ----- ---- f n a FUNCTION  --------  UB List all currently scheduled events in the clock queue.    CALLING SEQUENCE  ------- --------   MCR>INF CKQ  -------    ALLOWABLE SWITCHES  --------- -------- E  None.    0 PUD DUMP / --- ---- E L  FUNCTION  -------- - ; Provide a listing of the PUD for a given device. U   CALLING SEQUENCE l ------- --------   MCR>INF PUD XX:N N ------------ - . Where XX:N is the device descriptor    ALLOWABLE SWITCH T --------- ------ - -K /F Switch provides full listing of PUD including volumn control 2 block, (not listed by default command.)  K INF.DOC PAGE 4 dJ 07-Nov-78 E 2 PARTITION MAP 1 --------- ---   r FUNCTION d --------  K Provide a "MAP" of a partition, listing all active tasks (and : pure areas,) the FTL, CTL and all COMMON areas.    CALLING SEQUENCE  ------- -------- .   MCR>INF MAP XXXXXX  --------------  ' Where XXXXXX= Partition name    ALLOWABLE SWITCH  --------- ------ A TK /P Switch lists all currently used areas and holes in the parti- K tion, ordered sequentially by starting address, providing a much iA clearer display of why partition XXXXXX is fragmented. F   2 FORMS LISTING 1 ----- -------  C N FUNCTION  -------- - K Provides a listing of all printing devices who have their forms T type set to non-zero.  T  CALLING SEQUENCE u ------- -------- i h MCR>INF FRM  -------   r ALLOWABLE SWITCHES i --------- -------- w p None s K INF.DOC PAGE 5 J 00ooonnl]ld 07-Nov-78  0 TASK'S ATL 0 ------ ---    FUNCTION o --------  LD Provides a listing of the ATL entry for a specified task.    CALLING SEQUENCE  ------- --------   MCR>INF ATL XXXXXX  --------------  .0 Where XXXXXX is the task to be listed   E ALLOWABLE SWITCH  --------- ------  K /TI:TTn Switch list ATL for task at a terminal other than your  own.    0 TASK'S STD 0 ------ ---  o h FUNCTION c --------  D Provides a listing of the STD entry for a specified task.  >  CALLING SEQUENCE - ------- --------  r MCR>INF STD XXXXXX  --------------  T0 Where XXXXXX is the task to be listed  :  ALLOWABLE SWITCH  --------- ------   None  K INF.DOC PAGE 6 J 07-Nov-78  5 TASK'S OUTSTANDING IO f5 ------ ----------- --   - FUNCTION  -------- X XK Provides a listing of the IO request nodes for a specified task.  l e CALLING SEQUENCE L ------- -------- - - MCR>INF IOR XXXXXX  --------------  0 Where XXXXXX is the task to be listed    ALLOWABLE SWITCH  --------- ------ 8  None    5 TERMINAL DESCRIPTION 5 -------- ----------- I   FUNCTION X -------- a s9 List terminal characteristics for a given TTY. e   CALLING SEQUENCE  ------- --------   MCR>INF TER TT:NN  -------------  1 Where TT:NN is the terminal descriptor    ALLOWABLE SWITCH  --------- ------   None  5 TERMINAL DESCRIPTION 5 -------- ----------- I   FUNCTION X -------- a s9 List terminal characteristics for a give .SPACING 1 .LM 10;.RM 75 .LH 10;.RH 75*.TITLE ^^INTRODUCTION TO AN IAS TERMINAL\\.FG 20 .CENTER 80#^^INTRODUCTION TO AN IAS TERMINAL\\.SKIP 43^^NOTE:\\ ^THIS IS A LOCALLY WRITTEN AND MAINTAINED DOCUMENT.A^IT IS SPECIFICALLY FOR THE CONVENIENCE OF GENERAL ^^IAS\\ USERS,.AND THEREFORE DOES NOT ATTEMPT TO BE COMPLETE.&^HOWEVER, IF ANY PART OF THIS DOCUMENTBIS UNCLEAR OR INSUFFICIENT, PLEASE BRING THIS TO THE ATTENTION OF %THE DOCUMENT MAINTAINER, NAMED BELOW.0^IT IS ONLY THROUGH FEEDBACK FROM THE USERS THATTHIS DOCUMENT WILL IMPROVE.^.SKIP 5T.C 80A^REVISED.C 80^NOVEMBER 4, 1985.DATE 4-USER WITH A SET OF SPECIAL CHARACTERS TO CONTROL THE BEHAVIOUROF THE TERMINAL.:^MOST OF THESE CHARACTERS ARE TYPED BY HOLDING THE CONTROL.INDEX ^^CTRL\\ KEYG.INDEX CONTROL KEY0KEY (^^CTRL\\) DOWN WHILE TYPING THE APPROPRIATE?CHARACTER KEY, JUST AS YOU USE THE "SHIFT" KEY ON A TYPEWRITER.V=^THROUGHOUT THE DOCUMENTATION, THESE CHARACTERS ARE INDICATEDI=BY PRECEDING THE LETTER USED WITH ^^CTRL/\\ (E. G. ^^CTRL/C\\EDMEANS THE CHARACTER GENERATED BY DEPRESSING THE ^^CTRL\\ AND ^C KEYSSIMULTANEOUSLY).^ONLY THE "CONTROL" CHARACTERSF^^CTRL/Z\\, ^^CTRL/O\\ -PRINT/NOPRINT OUTPUT. ^THE FIRST ^^CTRL/O\\ WILL .INDEX OUTPUTK .LM 26;.FILL(CAUSE PRINTING TO BE DISCARDED, AND THE )SECOND WILL CAUSE PRINTING TO CONTINUE. O.SKIP 1E.LM 10< ^^CTRL/Q\\ -START OUTPUT. ^UNDOES THE EFFECT OF ^^CTRL/S\\..SKIP 1R.LM 10; ^^CTRL/R\\ -RETYPE CURRENT LINE ON A NEW LINE, OMITTING.BREAK.LEFT MARGIN 26XDELETED CHARACTERS. 4^THIS IS USEFUL IF THE ^^RUBOUT\\ KEY HAS BEEN USED..SKIP 1O.LEFT MARGIN 10E> ^^CTRL/S\\ -STOP OUTPUT.^THIS DIFFERS FROM ^^CTRL/O\\ IN THAT.BREAK.LM 26#OUTPUT IS SUSPENDED, NOT DISCARDED.T.SKIP 1 .LM 10: ^^CTRL/U\\ -DELETE THE CURRENT LINE OF INPUT. ^NOTE THAT .BREAK;.LM 26O-THE PROMPT (IF ANY) MAY ^^NOT\\ BE RE-ISSUED.T.LM 10.SKIP 1T: ^^CTRL/V\\ -DELETE INPUT IN THE READ-AHEAD BUFFER. ^NOTE .BREAK;.LM 26EHTHAT )PROMPT.O;^A COMMAND LINE CONSISTS OF THREE PARTS - THE COMMAND NAME,D1ANY DESIRED COMMAND PARAMETERS, AND A TERMINATOR.D ^FOR EXAMPLE:A.FG 1;.INDENT 5 ^^MCR>{RUN TEST01$}\\U.FG 1F.LEFT MARGIN 15P .INDENT -5^COMMAND NAME:A^^MCR\\ INTERPRETS ALL CHARACTERS FROM THE BEGINNING OF THE LINE T;TO THE FIRST SPACE, TAB, OR TERMINATOR AS THE COMMAND NAME.MB^ONLY THE FIRST THREE CHARACTERS ARE USED TO IDENTIFY THE COMMAND,;SO ANY NUMBER OF ALPHANUMERIC CHARACTERS MAY BE APPENDED TO 6THESE THREE TO IMPROVE THE READABILITY OF THE COMMAND.<^FOR EXAMPLE, ^^ABO\\ OR ^^ABORT\\ HAVE THE SAME EFFECT AS A COMMAND NAME.N.FG 1I^UNDER THE CURRENT SYSTEM, EACH USER NAME HAS ASSOCIATED WITH IT A SET OFGHUSER PRIVILEGES THAT CONTROL WHAT PROGRAMS AND SYSTEM UTILITES THAT USERGCAN RUN. ^IF YOU REQUEST AN ACTION WHICH YOU CURRENTLY ARE NOT ALLOWED,H"THE SYSTEM WILL PRINT THE MESSAGE:.FG 1;.INDENT 5E6^^CURRENT USER PRIVILEGES DO NOT ALLOW THAT FUNCTION\\.FG 1HL^PLEASE ASK US IF YOU WISH TO USE SOME FUNCTION THAT YOUR CURRENT PRIVILEGES DO NOT ALLOW.A.SKIP 1B .INDENT -5 ^PARAMETERS:C^THE COMMAND DESCRIPTIONS FOLLOWING INDICATE WHETHER ANY PARAMETERSECARE REQUIRED FOR EACH COMMAND, AND WHAT EFFECT THE PARAMETERS HAVE.C.SKIP 1A .INDENT -5 ^TERMINATOR:?^A COMMAND LINE IS TERMINATED BY A CARRIAGE RETURN OR AN ESCAPEEOR (^^ALT\\ MODE) KEY.@^IF A CARRIAGE RETURN IS TYPED, ^^MCR\\ WILL INDICATE COMPLETION .INDEX PROMPTO>OF THE COMMAND BY RETURNING AND RE-ISSUING THE PROMPT ().D^THE ESCAPE KEY SUPRESSES THE RETURN OF {_@F\\ILESPEC}.FG 1 7^CAUSES XXX" ARELACTUALLY NAMED "<...XXX".FB^ONLY A PRIVILEGED TERMINAL MAY ABORT TASKS INITIATED FROM ANOTHER TERMINAL.U.SKIP 1O .INDENT 2N.NOFILL &^^MCR>{ABO XXX}\\ !STOP THE TASK {ABO ...F4P}\\ !STOP THE ^^FORTRAN\\COMPILER.N .INDENT 2_2^^{ABO ...BAS/TI=TT2}\\ !STOP {ACT}\\T .INDENT 2M!^^...ACT !ACT\\ PRINTS THIS LIST.I .INDENT 2N,^^...F4P\\ !^^FORTRAN\\ COMPILER IS RUNNING..SKIP 2 .HEADERLEVEL 1 ^^AID\\ R.INDEX ^^AID\\.INDEX ^ON-LINE INFORMATIONDI^AID PROVIDES ON-LINE INFORMATION ABOUT MOST OF THE PROGRAMS AND COMMANDS^LAVAILABLE TO THE SYSTEM. TYPING "{AID QUE}\\ !^GET HELP ON QUEUE MANAGER..SKIP 2T.INDEX ^^BYE\\.INDEX SIGN OFF.INDEX LOG OFF".HEADERLEVEL 1 ^^BYE\\ (^SIGN-OFF).LEFT MARGIN 10I^USED TO SIGN OFF THE SYSTEM.^8^FURTHER USE OF THE TERMINAL IS PREVENTED UNTIL THE USERSIGNS ON AGAIN.^4^USERS SHOULD ALWAYS ENTER A ^^BYE\\ COMMAND BEFORE LEAVING A TERMINAL.U.SKIP 1 .INDENT 2S ^^MCR>{BYE}\\ .INDENT 2O)^^USER XXXXXXXXX LOGGED OFF AT : 10:12:14C .INDENT 2 CONNECT TIME WAS: 2:12:32:16 .INDENT 2SGOOD MORNING\\.HEADERLEVEL 1 ^^CIE\\ E.INDEX ^^CIE\\.INDEX ^PRINT AT CIE PRINTER.EK^PRINT A SPECIFIED FILE AT THE CIE PRINTER/PLOTTER. ^THIS PROGRAM ALSO LETSF?ONE PRINT FILES CONTAINING GRAPHIC DATA RATHER THAN JUST ASCII. .SKIP 1I .INDENT 2 =^^MCR>{CIE GRAPH.DOC}\\ !^PRINT A PREVIOUSLY GENERATED GRAPH.^.SKIP 2M!.HEADERLEVEL 1 ^^COO\\ ^^COO\\KIE.INDEX ^^COO\\KIES ^GIVES A "FORTUNE-COOKIE" REPLY..SKIP 1X .INDENT 2F ^^MCR>{COO}\\C.SKIP 2 .HEADERLEVEL 1 ^^DAM (DAM\\MIT).INDEX ^^DAM\\MITRF^AN AID TO PROGRAMMER FRUSTRATION. ^MUCH BETTER THAN POUNDING THE {DAMMIT} !I\\T'S BEEN A BAD DAYO .INDENT 2 8^THE MORE ^I SEE MY FELLOW MAN, THE MORE ^I LIKE MY DOG..HEADERLEVEL 1 {DEMO}R.INDEX ^^DMO\\.INDEX DISMOUNTD.INDEX ^^ANSI\\ MAGTAPEI .INDEX FILED.INDEX MOUNTED VOLUMEM".HEADERLEVEL 1 ^^DMO\\ (^DISMOUNT).LEFT MARGIN 10I#^USED TO DISMOUNT A MOUNTED VOLUME.M>^THIS OPERATION IS ONLY MEANINGFUL FOR FILE-STRUCTURED VOLUMES(DISKS OR ^^ANSI\\ MAG TAPES).:^THERE MAY BE A DELAY IN COMPLETING THE DISMOUNT OPERATION4IF ^^I/O\\ OPERATIONS ARE IN PROGRESS ON THE VOLUME.1^A DISMOUNTED TAPE VOLUME WILL BE TURNED OFFLINE. .SKIP 1 .INDENT 2E$^^MCR>{DMO MT:} !D\\ISMOUNT MAG-TAPE.HEADERLEVEL 1 ^^DUP\\ D.INDEX ^^DUP\\LEXAL^CAUSES YOUR TERMINAL TO ACT AS IF IT WERE CONNECTED TO THE PDP11/45 SYSTEM.H^ALL TERMINAL {DUP}\\\.SKIP 2S .INDEX {FAC TI:=DP1:/FILES} !S\\HOW ACTIVITY ON {HELLO IRVING}\\ !USER IDENTIFIES HIMSELFO .INDENT 2F'^^PASSWORD:\\ !SYSTEM REQUESTS PASSWORDE.SKIP 1G ^^NOTES:\\.BREAK-THE PASSWORD IS NOT ECHOED..BREAK,-THE SYSTEM MESSAGE MAY BE STOPPED BY TYPING ^^CTRL/O\\. :^USERS ARE URGED TO READ THIS MESSAGE AT LEAST ONCE A DAY..BREAK>-{INF ACT} !L\\IST ALL ACTIVE TASKS .INDENT 2E4^^MCR>{INF ATL ...XXX} !L\\IST {INF CKQ} !L\\IST CONTENTS OF CLOCK QUEO .INDENT 2.3^^MCR>{INF FRM} !L\\IST DEV'S WITH NON-0 FORMS TYPED .INDENT 20^^MCR>{INF IOR ...XXX} !L\\IST TASK'S {INF MAP GEN} !S\\HOW USAGE OF PARTITION .INDENT 2/^^MCR>{INF NOD} !S\\HOW NODE USAGE OF ALL TASKSF .INDENT 2T2^^MCR>{INF PUD DDN:} !S\\HOW {INF STD ...XXX} !S\\HOW {INF TER TTN:} !S\\HOW TERMINAL CHARACTERISTICS..INDEX ^^INI\\.INDEX INITIALIZE COMMANDO .INDEX FILEC.LM 10..HEADERLEVEL 1 ^^INI\\ (^^INI\\TIALIZE VOLUME)$^USED TO INITIALIZE A USER'S VOLUME.)^THE VOLUME MUST BE LOADED ONTO A DEVICE.I3^NOTE THAT TAPE LABELS ARE LIMITED TO 6 CHARACTERS.I6^USERS SHOULD CONSULT THE COMPUTER SYSTEM STAFF BEFOREUSING THIS COMMAND..SKIP 1F .INDENT 2!^^MCR>{INI MT1:ARCHIV}\\ .INDENT 2 ^^MCR>{INI DP2:MYDISK}\\.SKIP 1<5^^NOTE:\\ ^ALL FILES ON THE VOLUME WILL BE DESTROYED!!%.HEADERLEVEL 1 ^^INS (INS\\TALL TASK)X.INDEX ^^INS\\.INDEX ^INSTALL TASKG^TELLS THE SYSTEM TO TAKE THE PROGRAM IN THE SPECIFIED FILE AND MAKE ITEIAVAILABLE FOR USE. ^THE PROGRAM THEN CAN BE ACTIVATED BY {INS MYPROG} !I\\NSTALL "RUN" TYPE PROGRAM .INDENT 2F9^^MCR>{INS ABC/TASK=...ABC} !I\\NSTALL {LOA CR} !L\\OAD CARD READER HANDLER2.HEADERLEVEL 1 ^^LUN (L\\OGICAL ^U^NIT TABLE LIST).INDEX ^^LUN\\.INDEX ^LOGICAL ^UNIT ^TABLEG^LISTS THE ^LOGICAL ^UNIT ^TABLE00po=onnnnd FOR AN INSTALLED TASK. ^THE {LUN ...SDV} !L\\IST LUNS FOR ^^SDVC **** ...SDV SY0 1,2,3,4DTI0 5LCL0 6\\E .LM 10;.FILL<.HEADERLEVEL 1 ^^LUT (L\\OGICAL ^UNIT LIST FOR ACTIVE ^TASK).INDEX ^^LUT\\*.INDEX ^ACTIVE ^TASK ^LOGICAL ^UNIT ^TABLE3^LISTS THE ^LOGICAL ^UNIT ^TABLE FOR AN ACTIVE TASKED^SHOWS INFORMATION ABOUT FILES CURRENTLY OPEN, INCLUDING INFORMATION:AS TO WHAT VIRTUAL BLOCKS OF THE FILES ARE BEING ACCESSED.C^FURTHER INFORMATION IS CONTAINED IN THE ^REESE ^UTILITIES ^MANUAL..SKIP 1 .BREAK;.LM 12N8^^MCR>{LUT ...ABC/TI:TT2} !L\\IST LUNS FOR TASK AT {MAY}\\F.BREAK.SKIP 2E*.HEADERLEVEL 1 ^^MMC\\ ^TAPE TO TAPE COPY.".INDEX ^^MMC\\ ^TAPE TO TAPE COPY..INDEX ^TAPE TO TAPE COPY.F^COPIES THE TAPE ON THE 1600BPI ^CIPHER TAPE DRIVE TO THE 800BPI {MMC}\\0.SKIP 2L.INDEX ^^MOU\\.INDEX MOUNT COMMAND.INDEX MOUNTED VOLUMEB .INDEX FILEE.INDEX ^^ANSI\\ MAGTAPEO.INDEX MAGNETIC TAPE%.HEADERLEVEL 1 ^^MOU (MOU\\NT DEVICE)S.LEFT MARGIN 10C-^USED TO MOUNT A FILE-STRUCTURED VOLUME (DISKM+OR ^^ANSI\\ STANDARD FORMAT MAGNETIC TAPE).EF^VOLUMES WHICH ARE NOT FILE-STRUCTURED MUST BE MOUNTED WITH "{MOU MT0:ARCHIV}\\.BREAK^^MCR>{MOU MT0:/CHA=[FOR]}\\.BREAK^^MCR>{MOU DK1:TEMPSTOR}\\.LM 10).HEADERLEVEL 1 ^^MTC\\ ^TAPE TO TAPE COPYM!.INDEX ^^MTC\\ ^TAPE TO TAPE COPYXD^COPIES FROM THE 800BPI {MTC}\\U.SKIP 2U%.HEADERLEVEL 1 ^^MUR\\ ^MURPHYS LAWS.^.INDEX ^^MUR\\PHYR3^RESPONDS WITH A RANDOM SELECTION OF MURPHY'S LAWS.U.SKIP 1S .INDENT 2D ^^MCR>{MUR}\\".BREAK&^JENSEN'S LAW: ^WIN OR LOSE, YOU LOSE..SKIP 2U0.HEADERLEVEL 1 ^^OPR (OP\\E^RATE DEVICE SPOOLER).INDEX ^^OPR DV:/SW\\D.INDEX ^OPERATE ON PRINTER QUEJ^ALLOWS ONE TO CONTROL THE LIST OF FILES CURRENTLY "LINED UP" FOR PRINTINGKAT THE LINE PRINTERS. ^ALLOWS YOU TO CHANGE OR REMOVE ENTERIES IN THE LIST.I:^FURTHER INFORMATION IS CONTAINED IN THE {OPR LP:/AB} !A\\BORT PRINTING THE CURRENT FILE .INDENT 2 4^^MCR>{OPR LP1:/RS} !R\\E-SUME (AFTER LOADING PAPER) .INDEX ^FURTHER DOCUMENTIATION IS CONTAINED IN THE {QUE /LI} !L\\IST FILES TO BE PRINTED .INDENT 2E2^^MCR>{QUE LP:=ABC.DAT} !P\\RINT DATA FILE AT {QUX /TI} !L\\IST EXPECTED PRINT TIMES2.HEADERLEVEL 1 ^^REA (REA\\SSIGN ^^LUNS\\ OF TASK) .INDEX {REA PROGRM 1 LP1:} !C\\HANGE BECAUSE {RED LP1:=LP0:} !R\\E-DIRECT BECAUSE {RED LP0:=LP0:} !R\\ESTORE AFTER FIXING {REM PROGRM} !R\\EMOVE USER'S PROGRAMU .INDENT 2R-^^MCR>{REM ...ABC} !R\\EMOVE ^SYSTEM PROGRAM.N.LM 10.SKIP 1=.INDEX ^^RESUME\\B$.HEADERLEVEL 1 ^^RES (RES\\UME TASK)0^USED TO CONTINUE EXECUTION OF A SUSPENDED TASK..SKIP 1V .INDENT 2(^^MCR>{RESUME MYTASK}\\R.SKIP 1T.INDEX SUSPEND2^^NOTE:\\ ^A TASK CAN ONLY BE SUSPENDED BY ITSELF.=^THIS CAN BE DONE USING A SYSTEM CALL WITHIN THE PROGRAM, FOR EXAMPLE, IN ^^FORTRAN: .INDENT 2O.SKIP 1N CALL SUSPNDR.INDEX ^^RUN\\!.HEADERLEVEL 1 ^^RUN (RUN\\ TASK)!^USED TO RUN A TASK..INDEX TASK NAMEE^IF A TASK IS CURRENTLY INSTALLED WITH THE SPECIFIED NAME, IT WILL BE^RUN. ^OTHERWISEEFTHE NAME IS ASSUMED TO BE THE NAME OF FILE CONTAINING A RUNNABLE TASK.!^THIS TASK WILL BE INSTALLED WITHC.THE SAME NAME AS THE FIRST 6 CHARACTERS OF THEFILENAME, AND WILL BE RUN.H^IT IS USUALLY ADVISABLE TO TERMINATE THE COMMAND WITH AN "{RUN DK2:PROG$}\\ !GET THE TASK FROM ^^DK2:PROG.TSK\\R .INDENT 2L)^^MCR>{RUN PROG$}\\ !RUN A SYSTEM PROGRAMU.FILLE.INDEX ^^TI:\\.SKIP 1EA^^NOTES: TI:\\ WILL BE ESTABLISHED AS THE TERMINAL FROM WHICH THEL TASK WAS RUN.W3^THIS COMMAND ONLY ^^REQUESTS\\ THAT A TASK BE RUN,4AND IT IS POSSIBLE THAT THE TASK WILL NOT BE STARTED(IMMEDIATELY (E.#G. INSUFFICIENT MEMORY).>^IN THIS CASE, WAIT FOR THE ^^TASK\\ (NOT ^^MCR\\) TO RESPONDBEFORE PROCEEDING. T3^IT IS IMPOSSIBLE TO ABORT THE TASK UNTIL IT BEGINSD .INDEX ABORT8TO RUN, AND ATTEMPTING TO ^^RUN\\ IT AGAIN IS POINTLESS.4^PLEASE BE PATIENT AT TIMES LIKE THIS, THE SYSTEM IS.PROBABLY BUSY, AND WILL GET TO YOU EVENTUALLY. .INDEX {SDV DK0:}\\ !SET DEFAULT DEVICE TO DISK 0.T .INDENT 3E/^^MCR>{SDV SD0:}\\ !SET DEFAULT TO USER'S DISK.L.SKIP 2U .TEST PAGE 6.INDEX ^^SEND\\D.INDEX MESSAGES^&.HEADERLEVEL 1 ^^SEN\\ (^SEND MESSAGE)1^USED TO SEND A LINE OF TEXT TO ANOTHER TERMINAL.E*^THE RECEIVING TERMINAL MUST BE LOGGED IN.7^THE MESSAGE WILL BE PRINTED ON THE INDICATED TERMINAL,I(PRECEDED BY THE SENDING TERMINAL'S NAME..SKIP 10 .INDENT 2^#^^MCR>{SEN TT4:DONE WITH TAPE???}\\<.SKIP 1 .INDEX ^^SET /UIC\\I.INDEX ^DEFAULT {SET /UIC=[100,100]}\\ !SET DEFAULT ^^UIC\\E.LM 10 .INDEX {SUB BATCH.BIS}\\C .INDEX ^FURTHER DOCUMENTIATION IS CONTAINED IN THE {SYS /DEV} !L\\IST ALL DEVICES AVAILABLE .INDENT 2T,^^MCR>{SYS00(po=onnnnd /TAS} !L\\IST ALL INSTALLED TASKS .INDENT 2X3^^MCR>{SYS /COM} !L\\IST ALL INSTALLED COMMON AREASR .INDEX {TER /SORO} !S\\ETS TERMINAL TYPEN .INDENT 2H0^^MCR>{TER /SPEED:300} !S\\ETS SPEED TO 300 BAUD .INDENT 2E,^^MCR>{TER /LCI} !E\\NABLES LOWER CASE INPUT.INDEX ^^TIME\\! .INDEX TIMES .INDEX DATE2.HEADERLEVEL 1 ^^TIM\\ (^SHOW ^^TIM\\E AND DATE)\\'^USED TO DISPLAY CURRENT TIME AND DATE.N .INDENT 2A.SKIP 1A^^MCR>{TIME}\\.BREAK;.INDENT 213:14:15 29-^^FEB\\-77..HEADERLEVEL 1 ^^UNL (UNL\\OAD DEVICE HANDLER).INDEX ^^UNL\\OAD HANDLERA.INDEX ^HANDLER UNLOADF^DE-ACTIVATES A CURRENTLY ACTIVE DEVICE HANDLER TASK. (^SEE ^^LOA\\D.)B^USED WHEN NO MORE {UNL CR} !U\\NLOAD CARD-READER HANDLER.SKIP 1E.INDEX ^^USE\\ (UIC).INDEX ^DEFAULT {USE\\ 100,100} !SET DEFAULT {WHO}\\16.HEADERLEVEL 1 ^^WHE\\ (^SHOW ^^WHE\\RE TERMINALS ARE).INDEX ^^WHE\\REM^LISTS CURRENT INFORMATION AS TO THE PHYSICAL LOCATION, TYPE OF TERMINAL, ANDEADEFAULT TERMINAL OPERATING SPEED FOR ALL TERMINALS ON THE SYSTEM.S.SKIP 1T .INDENT 2A^^MCR>{WHERE}\\\8.HEADERLEVEL 1 ^^WHN\\ (^SHOW ^W^HE^N THINGS WILL OCCUR).INDEX ^^WH\\E^N^INDEX ^CLOCK QUEUE LISTF^LISTS ALL EVENTS IN THE "CLOCK QUE". ^THE CLOCK QUE IS A LIST OF TASKFREQUESTS FOR THINGS TO HAPPEN AT A FUTURE TIME. ^TWO TYPES OF REQUESTSFOCCUR. ^REQUESTS FROM A TASK TO "WAIT" (SUSPEND OPERATION) FOR A GIVENGAMOUNT OF TIME, (OR UNTIL A SPECIFIC TIME OF DAY,) OR REQUESTS TO "RUN"E+A SPECIFIED PROGRAM AT A GIVEN FUTURE TIME.D:^FURTHER INFORMATION IS CONTAINED IN THE {WHN} !L\\IST CLOCK QUE .LM 10.RIGHT MARGIN 75.CHAPTER ^^UTILITY COMMANDS\\ .INDEX ^UTILITIES..INDEX ^UTILITY COMMANDSD^MANY TASKS ARE AVAILABLE ON THE SYSTEM FOR CONVENIENCE TO THE USER.A^SOME OF THESE TASKS ARE INSTALLED IN THE SYSTEM SO THAT THE USERWKMAY INVOKE THEM BY TYPING THE TASK NAME (^^PIP, PRI\\), OPTIONALLY FOLLOWEDMBY AN INPUT STRING.S.FG 1N.^COMPLETE DOCUMENTATION ON SOME OF THESE TASKS-IS AVAILABLE IN THE ^^IAS U\\TILITIES MANUAL, 8OTHER UTILITIES DEVELOPED HERE ARE USUALLY DOCUMENTED IN#MANUALS PREPARED BY THE DEPARTMENT.C.FG 1^J^THE SCOPE OF THIS MANUAL PRECLUDES LISTING ALL OF THE UTILITIES CURRENTLYMAVAILABLE ON THE SYSTEM. ^RATHER IT IS INTENDED TO PRESENT A STARTING SUB-SETSHTO ENABLE THE NEW USER TO INITIALLY LEARN THE SYSTEM. ^VARIOUS UTILITIESHEXIST WHICH SERVE SPECIAL PURPOSES OR ARE DANGEROUS WHEN USED BY THE NEWJUSER. ^EXPERIENCED USERS ARE RECOMMENDED TO CONSULT THE MAIN DOCUMENTATIONRACK FOR FURTHER INFORMATION.T.FG 1LL^IN THE FOLLOWING LIST OF UTILITIES, SAMPLE OUTPUT/RESULTS ARE ONLY INCLUDEDLIF THE RESULT APPEARS ON THE TERMINAL, AND IS ONE OR TWO LINES LONG. ^OUTPUTFTHAT APPEARS SOMEWHERE ELSE, (AT THE LINE PRINTER FOR EXAMPLE,) IS NOTMDISPLAYED. ^NEITHER IS OUTPUT SHOWN WHEN THE OUTPUT IS OVER A FEW LINES LONG.R.SKIP 2I .TAB STOPS 42C .INDEX {ATT MYFILE.DAT} !L\\IST ATTRIBU000poonnl]ldTES OF FILEN).HEADERLEVEL 1 ^^BDI\\ ^^BRU\\ ^DIRECTORYS.INDEX ^^BDI\\ {BDI}\\B.SKIP 2C.INDEX ^BLOCKS USED/ALLOCATEDT.INDEX STORAGE USEDL,.HEADERLEVEL 1 ^^BLO (^SHOW ^^BLO\\CK USAGE)F^DISPLAYS THE TOTAL NUMBER OF BLOCKS USED FOR STORAGE BY THE SPECIFIED{BLO} !\\STORAGE FOR DEFAULT {BRI FILE.DAT;*} !D\\O DIRECTORY OF ONE FILE.NOFILL .INDENT 2 ^^DIRECTORY DP1:[1,10] F .INDENT 2< FILE.DAT;2 .INDENT 2I FILE.DAT;3\\.FILLS).HEADERLEVEL 1 ^^BUG\\ ^PROGRAM ^DEBUGGERD.INDEX ^^BUG\\ PROGRAM DEBUGGERDI^A SCREEN BASED {BUG\\ {CMP TI:=FILE1.FOR,FILE2.FOR}\\ .SKIP 2 ).HEADERLEVEL 1 ^^DEL\\ETE ^DELETE A FILE..INDEX ^^DEL\\ETE H^DELETES THE SPECIFIED FILE(S). ^WILD CARDS MAY BE SPECIFIED IN THE FILEHSPECIFICATION. ^THE SYSTEM WILL PROMPT FOR AN ANSWER BEFORE DELETING THE;FILE IN QUESTION. ^YOUR ANSWER MAY BE ONE OF THE FOLLOWING:.BREAK ^Y ^YES, DELETE FILE..BREAK ^N ^NO, DO NOT DELETE FILE..BREAK# ^G ^GO ON WITHOUT ASKING ANY MORE.W.BREAK ^Q ^QUIT..SKIP 1, .INDENT 2E^^MCR>{DEL} MYFILE.DOC\\.BREAK .INDENT 2:2^DELETE FILE ^^DP1:[1,10]MYFILE.DOC;1 [YNGQ]?{Y}\\.SKIP 2 :.HEADERLEVEL 1 ^^DIA\\ (^PRINT FILE AT ^^DIA\\BLO PRINTER).INDEX {DIA MANUAL.DOC} !P\\RINT RUNOFF MANUAL AT ^DIABLO.9.HEADERLEVEL 1 ^^DIB\\ (^PRINT FILE AT CUT-SHEET PRINTER)S.FG 2 .INDEX {DIB MANUAL.DOC} !P\\RINT MANUAL ON BOND PAPER.T .INDEX {DIR MYFILE.DAT} !D\\O DIRECTORY OF ONE FILE.NOFILLG .INDENT 2S^^DIRECTORY DP1:[1,10] .INDENT 2 26-FEB-81 19:02^ > .INDENT 2..MYFILE.DAT;3 5. 24-FEB-81 12:12 .INDENT 2L%TOTAL OF 5./5. BLOCKS IN 1. FILE\\ .FILLT .INDEX {DOC MANUAL.DOC} !P\\RINT {DMP TI:=XY.DAT/AS}\\ !^DUMP FILE IN ASCII MODE..FG 2\*.HEADERLEVEL 1 ^^DTC\\ ^DESK TOP CALENDAR..INDEX {DTC/T}\\ !^GET SCHEDULE FOR TODAY.FG 2> .INDEX {EDI TEST.BAS}\\ !E\\DIT A {EDT TEST.BAS} !E\\DIT A {FDU EXEC.STB} !D\\UMP SYMBOL TABLE FILE O .INDEX {FHD 12345,23} !L\\IST ^FILE-^HEADER FOR 12345,23\ .INDEX {FLX SY:/RS=MT:ABC.TSK/DO} !R\\EAD A {FON GEORGE}\\ !^LIST ALL GEORGES IN THE BOOK..FG 2U .INDEX {FREE DK0:} !L\\IST FREE BLOCKS ON {FRG DP1:} !C\\HECK FRAGMENTATION OF {KED MYFILE.FOR/CR}\\ !^CREATE NEW FILEL .INDENT 2H9^^MCR>{K52 MYFILE.FOR/CR}\\ !^EDIT USING A {LAS LETTER.DOC}\\ !^PRINT LETTERF.FG 2}!.HEADERLEVEL 1 ^^LBR\\ ^LIBRARIANF.INDEX {LBR MYLIB.OLB/CR}\\ !^CREATE LIBRARYX .INDENT 2R0^^MCR>{LBR MYLIB.OBL/IN=MYSUB}\\ !^INSERT MODULE.FG 2R,.HEADERLEVEL 1 ^^LIS\\ ^MULTI-COLUMN LISTER.!.INDEX {LIS FILE.DOC/CO:3=FILE.IN}\\ !^LIST 3-WIDE..FG 2A&.HEADERLEVEL 1 ^^NED\\ ^NETWORK EDITOR.INDEX {NED MRVAX::FILE.DOC}\\=.FG 2\'.HEADERLEVEL 1 ^^PAG\\ ^PAGINATE OUTPUT^.INDEX ^^PAG\\INATE LISTINGL^OUTPUTS A TEXT FILE WITH BREAKS AT THE STANDARD FAN-FOLD POSITION, AND WITH4A 1-LINE HEADER SHOWING FILE SPECIFICATION AND DATE..FG 1S .INDENT 2E^^MCR>{PAG FIL.PAG=FIL.INP}\\..FG 2^ .INDEX {PIP TI:=ABC.FOR} !L\\IST FORTRAN SOURCE AT TERMINAL..HEADERLEVEL 1 ^^PRI\\ (^P^R^INT FILE AT {PRI PROG.LST} !P\\RINT LISTING AT LINE PRINTER^ .INDEX {PRO MYFILE.DAT} !P\\ROTECT IMPORTANT DATA FILE^ .INDEX {PUR ABC.FOR} !C\\LEAN UP AFTER EDITING. .INDENT 2N .INDEX {REC OUTPUT.DAT} !U\\NLOCK OUTPUT FILE .INDEX {RCV DATA.DAT} !R\\ESTORE DATA FILET .INDEX {RNO MANUAL=MANUAL} !P\\RODUCE USER'S MANUAL .INDEX {RNP JACK=MEMO} !P\\RODUCE MEMO FROM STOCK FORML#.HEADERLEVEL 1 ^^SPE\\LLING CHECKERB.INDEX ^^SPE\\LLING CHECKER F^CHECKS THE SPELLING OF A DOCUMENT. ^POINTS OUT QUESTIONABLE SPELLING..FG 1 .INDENT 2V^^MCR>{SPE LETTER.DOC}\\.FG 2I .INDEX {SPY}\\ !(^NO FURTHER INFO ON LINE) .INDEX DIRECTORY.INDEX SORT DIRECTORY UTILITYC*.HEADERLEVEL 1 ^^SRD\\ (^SO^RT ^DIRECTORY)3^USED TO PRODUCE DIRECTORY LISTINGS IN ALPHABETICALSORDER.%^A SEPERATE {SRD /NA} !S\\ORT DIRECTORY BY FILE-NAME.INDEX ^^TECO\\O .INDEX EDITORL.INDEX TEXT FILESI7.HEADERLEVEL 1 ^^TECO\\ (^TEXT ^EDITOR AND00Hpo=onnnnd ^C^ORRECTOR).,^A COMPREHENSIVE TEXT PROCESSOR USED TO EDIT!FILES CONTAINING TEXT CHARACTERS..FG 1 .INDENT 2S(^^MCR>{TEC ABC.BAS} !E\\DIT BASIC SOURCE0.HEADERLEVEL 1 ^^TLK\\ ^TALK TO ANOTHER TERMINAL%.INDEX {TLK ROVER::TXA3:}\\ !^TALK TO ^U OF ^C VAX TERMINAL.T.FG 2E .INDEX {TYP ABC.BAS} !L\\IST EDITED PROGRAM AT TERMINAL .INDEX {UNP MYFILE.DAT} !L\\ET FILE BE DELETED\$.INDEX {VTL *.FOR}\\ !^LIST ALL FORTRAN SOURCE FILES ".CHAPTER ^^LANGUAGES AND LINKERS\\E^SEVERAL COMPILERS AND INTERPERTERS ARE AVAILABLE ON THE {BAS PROGRAM/RN}\\ !^LOAD AND EXECUTE PROGRAMF'.INDEX {FOR MYPROG}\\ !^COMPILE MYPROG.FOR^.INDEX {F77 PROG,PROG/LI:3=PROG}\\ !^LIST INCLUDING GENERATED CODEX.INDEX ^^MAC\\RO.HEADERLEVEL 1 ^^MAC\\ROJ^COMPILES A MACRO11 SOURCE FILE. ^MACRO IS THE MACHINE LANGUAGE FOR {PROG,PROG/-SP=PROG}\\ !^COMPILE WITH LISTING FILE.INDEX {MAX MYFILE}\\ !^IS EQUIVALENT TO .INDENT 2 %^^MCR>{MA MYFILE,MYFILE/-SP=MYFILE}\\:.INDEX .FG 1R .INDENT 2}^^MCR>{RAT PGM,PGM,PGM=PGM}\\.FG 1{RA5 PROGRAM.RAT>PROGRAM.FOR}\\T.FG 11D^NOTE THAT RAT5 HAS AN INVERSE CONVENTION, THE OUTPUT FILE IS ON THEERIGHT AND THE INPUT FILE IS ON THE LEFT. ^ALSO RAT5 DOES NOT GENERATEHA LISTING FILE.5.INDEX {TKB @TASK.CMD}\\ !^USE INDIRECT COMMAND FILE..FG 1EI^NOTE THAT TO BE USED FOR INPUT OR OUTPUT UNTIL THE PROGRAM IS TO BE RUN..SKIP 1S .INDENT -5<ATTACH: A TASK MAY WISH TO COMMUNICATE WITH A DEVICE WITHOUT .INDEX ATTACHA .INDEX DETACHDINTERFERENCE FROM OTHER TASKS.=^TO MAKE THIS POSSIBLE, A TASK CAN "ATTACH" A DEVICE, AND ANYD2OTHER TASKS NEEDING THE DEVICE MUST WAIT UNTIL THE'TASK "DETACHES" BEFORE THEY CAN USE IT.IA^ATTACHING/DETACHING IS DONE THROUGH CALLS TO SYSTEM SUBROUTINES.C.SKIP 1. .INDENT -5CHECKPOINT, -ABLE, -ED, -ING: .INDEX CHECKPOINT .INDEX PRIORITYI .INDEX MEMORYU=IN ORDER THAT A TASK OF HIGH PRIORITY MAY RUN WHEN NECESSARY, 9LOWER PRIORITY TASKS MAY BE STOPPED, THEIR CURRENT STATUSA0SAVED, REMOVED FROM MEMORY, AND WRITTEN TO DISK.-^WHEN MEMORY BECOMES AVAILABLE AGAIN, THE LOWH=PRIORITY TASK WILL BE BROUGHT BACK INTO MEMORY, AND EXECUTIONUWILL CONTINUE.&^THIS PROCESS IS CALLED CHECKPOINTING.?^SINCE DISK SPACE MUST BE ESTABLISHED FOR THE INTERMEDIATE COPYS8OF THE TASK, ONLY CERTAIN TASKS ARE MADE CHECKPOINTABLE.A^A TASK MAY BE BUILT AS A CHECKPOINTABLE TASK THROUGH COMMANDS TOKTHE TASK BUILDER (^^TKB\\).N.LM 10;.PAGE;.LM 15R .INDENT -5"COMMAND FILE: SEE "INDIRECT FILE"..SKIP 1, .INDENT -5DETACH: SEE "ATTACH".O.SKIP 1W .INDENT -5;DIRECTORY: A DIRECTORY IS A SPECIAL TYPE OF FILE CONTAININGH.INDEX DIRECTORY.INDEX DIRECTORY FILEC.INDEX ^^UIC\\:THE NAMES AND LOCATIONS OF OTHER FILES ON THE SAME VOLUME.5^EACH USER OF THE SYSTEM IS GIVEN A DIRECTORY ON EACHL<DISK HE IS AUTHORIZED TO ACCESS, AND REFERS TO THE DIRECTORY+USING A USER IDENTIFICATION CODE (^^UIC\\).K8^BY ESTABLISHING A DEFAULT ^^UIC\\ (SEE ^^SET\\ COMMAND, SECTION 2),N3THE SYSTEM ASSUMES ALL FILE REFERENCES ARE TO FILESE"CONTAINED IN THE USER'S DIRECTORY.?^THIS ALLOWS MORE THAN ONE USER TO HAVE FILES OF THE SAME NAME,NBAND RESTRICTS THE LIST OF FILES FOR EACH USER TO THOSE OF INTERESTTO HIM.O8^THE DIRECTORY MAY BE EXAMINED USING ^^PIP\\ OR ^^SRD\\..SKIP 1M .INDENT -5DISMOUNT: 00ppoonnl]ldSEE "MOUNT"..SKIP 1T .INDENT -57DORMANT: A TASK IS SAID TO BE DORMANT WHEN ITS LOCATIONC.INDEX DORMANT7ON THE DISK IS KNOWN TO THE SYSTEM, BUT IT HAS NOT BEENO*ACTIVATED BY A ^^RUN\\ COMMAND OR REQUEST.8^A TASK IS MADE DORMANT BY INSTALLING IT. SEE "INSTALL"..SKIP 1 .INDENT -5<DRIVER, DEVICE DRIVER: EACH HARDWARE DEVICE ON THE SYSTEM IS .INDEX DEVICEO .INDEX DRIVERH1CONTROLLED BY A SOFTWARE PROGRAM CALLED A DRIVER.Y8^IT IS THE DUTY OF THE DRIVER TO INTERPRET INPUT SIGNALS<AND PROVIDE THE PROPER OUTPUT SIGNALS TO CONTROL THE DEVICE..SKIP 1S .INDENT -59ECHO: EACH CHARACTER TYPED AT A KEYBOARD IS ACTUALLY SENTK .INDEX ECHOY.INDEX TERMINALNONLY TO THE COMPUTER.A=^THE TERMINAL DEVICE DRIVER (SEE "DRIVER") THEN USUALLY SENDSLACONFIRMATION OF THE CHARACTER TO THE OUTPUT PART OF THE TERMINAL.:9^THIS CONFIRMATION IS CALLED ECHO, AND MAY BE THE SAME ASD2THE CHARACTER TYPED, THE UPPER CASE VERSION OF THE4CHARACTER, OR A STRING OF CHARACTERS (E.#G.#_^^U FOR ^^CTRL/U\\)..SKIP 1V .INDENT -5=FILE: A FILE IS AN OWNER-NAMED AREA ON A MASS STORAGE DEVICE. .INDEX FILEA4^FILES BEHAVE MUCH LIKE DEVICES IN THAT ^I/^O MAY BE=DIRECTED TO THEM, BUT THEY ARE MORE DYNAMIC AND FLEXIBLE THANE"PHYSICAL DEVICES. SEE "DIRECTORY"..SKIP 1L .INDENT -5?FILENAME, FILE SPECIFIER: SEE ^SECTION 3 - ^FILES AND ^DEVICES.O.INDEX FILENAMEL.SKIP 1A .INDENT -5<INDIRECT FILE, COMMAND FILE: A SEQUENCE OF COMMANDS WHICH IS.INDEX INDIRECT FILE.INDEX COMMAND FILEG@TO BE REPEATED OFTEN MAY BE ENTERED INTO A FILE CALLED A COMMANDFILE. 1^THE ^^IAS\\ SYSTEM PROVIDES A METHOD FOR PASSING9THIS SEQUENCE, ONE LINE AT A TIME, TO THE PROPER PROGRAM.T(^FULL DOCUMENTATION ON THE INDIRECT FILE1PROCESSOR IS AVAILABLE IN THE ^^IAS\\ ^OPERATOR'S^PROCEDURES MANUAL..SKIP 1 .INDENT -5INITIATE: SEE "RUN"..LM 10;.PAGE;.LM 15 .INDENT -5GINSTALL: BEFORE A TASK FILE MAY BE LOADED INTO MEMORY AND EXECUTED, THEM.INDEX INSTALLASYSTEM MUST BE INFORMED OF ITS EXISTENCE, NAME, LOCATION ON DISK,Y/AND OTHER PARAMETERS NECESSARY TO RUN THE TASK.%^THIS PROCEDURE IS CALLED INSTALLING.O;^A TASK MAY BE INSTALLED IN THE SYSTEM PERMANENTLY IF IT ISP5USED OFTEN, OR TEMPORARILY IF IT IS RUN OCCASIONALLY.C6^MOST USER PROGRAMS ARE INSTALLED AUTOMATICALLY BY THE.^^RUN\\ COMMAND, AND REMOVED AFTER COMPLETION.SEE "REMOVE-ON-EXIT"...SKIP 1I .INDENT -5^^I/O\\: INPUT/OUTPUT. .INDEX ^I/^O.SKIP 1M .INDENT -5ALABEL: A LABEL IS USED TO IDENTIFY A VOLUME AS IT IS ^^MOU\\NTED.E=^THE LABEL IS GIVEN TO THE VOLUME WHEN IT IS ^^INI\\TIALIZED.U<^TAPE LABELS MUST BE 6 CHARACTERS OR LESS. SEE ^^MOU\\NT AND^^INI\\TIALIZE COMMANDS..SKIP 1A .INDENT -57LOGICAL DEVICE: A LOGICAL DEVICE IS A NAME WHICH MAY BEY.INDEX LOGICAL DEVICE .INDEX DEVICEU.REFERRED TO BY A PROGRAMMER WHILE DEVELOPING A0PROGRAM, AND THEN MAPPED TO ANY DESIRED PHYSICAL3DEVICE WHEN THE PROGRAM IS TO BE RUN. SEE "ASSIGN"..SKIP 1 .INDENT -57LOGICAL UNIT: AN ^^IAS\\ TASK PERFORMS INPUT AND OUTPUTU .INDEX UNITE.INDEX ^^LUN\\.INDEX ^^LUN\\ .INDEX UNITS .INDEX ^I/^O.INDEX LOGICAL UNIT NUMBERST&ON A SET OF CONCEPTUAL ENTITIES CALLED2LOGICAL UNITS, REFERRED TO IN THE TASK BY NUMBERS.8^THESE UNITS ARE ASSOCIATED WITH PHYSICAL DEVICES BEFORETHE PROGRAM IS RUN.V7^THERE IS A DEFAULT MAPPING OF ^^FORTRAN\\ LOGICAL UNITG3NUMBERS (^^LUN\\S) TO LOGICAL DEVICES, BUT THIS MAYW6BE CHANGED USING OPTIONS IN THE TASK BUILDER (^T^K^B)..SKIP 15 .INDENT -5:^^MCR\\ (^MONITOR ^CONSOLE ^ROUTINE): ^^MCR\\ IS A SPECIAL.INDEX ^^MCR\\6TASK TO WHICH THE SYSTEM PASSES UNSOLICITED INPUT FROM A TERMINAL.B4^^MCR\\ MAY ALSO BE SPECIFICALLY REQUESTED BY TYPING ^^CTRL-C\\.E;^^MCR\\ INTERPRETS USER COMMANDS, AND IS USED TO RUN TASKS,H<ABORT TASKS, SET PARAMETERS, DISPLAY SYSTEM INFORMATION, AND"SO ON. SEE ^SECTION 2 - ^COMMANDS..SKIP 1U .INDEX MOUNT.INDEX DISMOUNTI .INDEX VOLUMEA .INDENT -5=MOUNT, DISMOUNT: BEFORE FILES ON A FILE-STRUCTURED VOLUME CANN7BE ACCESSED, CONTROL INFORMATION MUST BE MADE AVAILABLESTO THE SYSTEM.7^THE PROCEDURE FOR EXTRA00xpo=onnnndCTING THIS INFORMATION FROM THE VOLUME IS CALLED "MOUNTING".=^ONCE A VOLUME HAS BEEN MOUNTED, A USER MAY REFER TO FILES ON\2THE VOLUME BY NAME UNTIL THE VOLUME IS DISMOUNTED.?^TO AVOID CONFUSION, THE OPERATION OF PUTTING THE VOLUME ON THE3PHYSICAL DEVICE SHOULD BE REFERRED TO AS "LOADING".M.SKIP 1D .INDENT -5@MULTIPROGRAMMING: ALTHOUGH THE CENTRAL PROCESSOR OF THE COMPUTER.INDEX MULTIPROGRAMMINGN8ONLY EXECUTES INSTRUCTIONS FROM ONE TASK AT A TIME, MANY%TASKS MAY BE COMPETING FOR EXECUTION.T#^IF THE OPERATING SYSTEM IS ABLE TOO-PASS CONTROL TO ANOTHER TASK WHEN THE CURRENTBATASK IS WAITING FOR A SLOW OPERATION TO COMPLETE (USUALLY ^I/^O),L6THE RESULT IS THE APPEARANCE OF SIMULTANEOUS EXECUTION3OF MORE THAN ONE TASK, AND THIS PROCEDURE IS CALLED MULTIPROGRAMMING.T.LM 10;.PAGE;.LM 15I .INDENT -5OBJECT CODE, OBJECT FILE:H .INDEX OBJECTL.THE FIRST STEP IN RUNNING A PROGRAM WRITTEN IN3A HIGHER-LEVEL LANGUAGE IS THE TRANSLATION FROM THEI/LANGUAGE THE PROGRAM IS WRITTEN IN TO LOW-LEVELCOMPUTER INSTRUCTIONS.-^THE COMPUTER INSTRUCTIONS ARE REFERRED TO AS -OBJECT CODE AND ARE STORED IN AN OBJECT FILE.I%SEE "SOURCE CODE", "TASK", "PROGRAM".E.SKIP 1H .INDENT -57PARTITIONS: A PARTITION IS A CONTIGUOUS AREA OF MEMORY,I.INDEX PARTITION .INDEX MEMORYRIDENTIFIED BY A NAME..4^EACH TASK TO BE RUN IS ASSIGNED TO A PARTITION, AND8COMPETES WITH OTHER TASKS ASSIGNED TO THAT PARTITION FORSPACE WITHIN IT.3^THUS A TASK CAN BE GUARANTEED TO HAVE MEMORY SPACER3AVAILABLE IF A PARTITION IS SET ASIDE FOR IT ALONE..2^MOST USER PROGRAMS COMPETE FOR SPACE IN ONE LARGE,PARTITION, WHICH IS DIVIDED UP BY THE SYSTEM*DYNAMICALLY FOR AS MANY TASKS AS POSSIBLE..SKIP 1D .INDENT -5 PERIPHERAL:T.INDEX PERIPHERALU:A PERIPHERAL IS A HARDWARE DEVICE ATTACHED TO THE COMPUTER6SYSTEM OTHER THAN THE MEMORY OR THE CENTRAL PROCESSOR..SKIP 1, .INDENT -5,^^PIP\\ (^PERIPHERAL ^INTERCHANGE ^PROGRAM):.INDEX ^^PIP\\.INDEX FILE TRANSFER:A SYSTEM UTILITY USED FOR MANAGING AND TRANSFERRING FILES..SKIP 1E .INDENT -5?PRIORITY: A TASK COMPETING FOR RESOURCES IS ASSIGNED A PRIORITYA.INDEX PRIORITY IN THE RANGE 1-250.T6^A TASK IS RUN ONLY WHEN ALL HIGHER PRIORITY TASKS ARECOMPLETE OR HELD UP FOR ^I/^O..SKIP 1E .INDENT -5)PRIVILEGED TERMINAL, PRIVILEGED COMMANDS: .INDEX PRIVILEGE.INDEX TERMINALO8IN ORDER TO PROVIDE ADEQUATE CONTROL OVER THE OPERATING 4SYSTEM, CERTAIN POWERFUL COMMANDS MUST BE AVAILABLE.3^IN ORDER THAT THESE COMMANDS ARE NOT INADVERTENTLYA7MISUSED, THEIR USE IS RESTRICTED TO SPECIFIC TERMINALS,ICALLED PRIVILEGED TERMINALS.;^USERS AT PRIVILEGED TERMINALS SHOULD BE AWARE OF THE HAVOC1THEY MAY WREAK.S.SKIP 1 .INDENT -5PROGRAM:.INDEX PROGRAM8A PROGRAM IS A SEQUENCE OF COMPUTATIONAL STEPS, USUALLY*TO BE PERFORMED BY A COMPUTER. SEE "TASK"..SKIP 1E .INDENT -5PROMPT:N .INDEX PROMPTD.INDEX TERMINALL .INDEX ATTACHT/WHEN A TASK REQUESTS INPUT FROM A TERMINAL, THEV>TERMINAL SHOULD BE ATTACHED BY THE TASK, SO THAT UNINTERRUPTEDINPUT IS GUARANTEED.:^TO INDICATE THIS TO THE USER AT THE TERMINAL, A STRING OF3CHARACTERS IDENTIFYING THE TASK IS USUALLY PRINTED.O9^THIS STRING OF CHARACTERS IS CALLED A PROMPT, AND ALLOWSA%A USER TO RUN MORE THAN ONE TASK, YETE.ENSURE THAT INPUT IS GIVEN TO THE PROPER TASK.+^THE STANDARD ^^IAS\\ PROMPT IS "^^XXX\\>",I!WHERE ^^XXX\\ IS THE TASK'S NAME..SKIP 1R .INDENT -56PSEUDO DEVICES (^^CL:, CO:, TI:, SY:, WK:, LB:, SD:\\) .INDEX PSEUDOS .INDEX DEVICEE.INDEX TERMINAL AA PSEUDO DEVICE IS A DEVICE NAME WHICH IS REDIRECTED AS NECESSARYUTO A PHYSICAL DEVICE.S+^SEVEN PSEUDO DEVICES EXIST ON THIS SYSTEM:U.LEFT MARGIN 25.SKIP 1I .INDENT -53^^CO:\\ - CONSOLE OUTPUT. ^USED TO SEND MESSAGES TOOTHE SYSTEM OPERATOR..LM 10;.PAGE;.LM 25S .INDENT -52^^CL:\\ - CONSOLE LISTING. ^USED FOR LONGER OUTPUTDIRECTED TO THE SYSTEM STAFF.T .INDENT -56^^SY\\: - SYSTEM DISK. ^CONTAINS THE DISK IMAGE OF THE+OPERATING SYSTEM, AND CERTAIN SYSTEM TASKS.X .INDENT -57^^TI:\\ - TERMINAL INPUT. ^ESTABLISHED FOR EACH TASK AS 7THE TE00poonnl]ldRMINAL FROM WHICH IT WAS ^^RUN.\\ ^NOTE THAT THISP6DEVICE MAY BE USED FOR OUTPUT TO THE TERMINAL AS WELL. .INDENT -5I^^LB:\\ - ^LIBRARY DEVICE. ^CONTAINS THE SYSTEM AND MOST SYSTEM PROGRAMS.O .INDENT -5E^^SD:\\ - ^THE NORMAL SYSTEM DEVICE. ^MOST USERS LOGGING ON WILL HAVENUNSOLICITED INPUT LINE IS TERMINATED (WITH A CARRIAGE RETURN)..SKIP 1 .INDENT -5SOURCE CODE, SOURCE FILE:L .INDEX SOURCEE>THE TEXT OF A PROGRAM AS WRITTEN BY THE PROGRAMMER IS REFERRED1TO AS SOURCE CODE AND IS STORED IN A SOURCE FILE.O5^SOURCE CODE IS USUALLY SUBMITTED TO A TRANSLATOR FORE/CONVERSION INTO OBJECT CODE. SEE "OBJECT CODE".^.SKIP 1 .INDENT -5SPOOL: .INDEX SPOOL .INDEX OUTPUT ?LITERALLY MEANS ^SIMULTANEOUS ^PERIPHERAL ^OPERATION ^ON-^LINE.IA^THIS TERM REFERS TO THE OPERATION OF AN INPUT OR OUTPUT TRANSFERN:WHICH OCCURS ASYNCHRONOUSLY WITH RESPECT TO THE TASK WHICH INITIATES IT.I>^FOR EXAMPLE, OUTPUT TO THE LINE PRINTER MAY BE STORED ON DISK,TO BE PRINTED WHEN THE PRINTER IS AVAILABLE./^THUS MORE THAN ONE TASK PRODUCING LINE PRINTERLOUTPUT MAY RUN SIMULTANEOUSLY,9AND THEIR OUTPUTS WILL BE PRODUCED SEQUENTIALLY LATER ON..LM 10;.PAGE;.LM 15I .INDENT -5TASK:O .INDEX TASKA.INDEX PROGRAM;A TASK IS A COMPLETE SET OF INSTRUCTIONS IN MACHINE FORMAT, %READY TO BE EXECUTED BY THE COMPUTER.T5^WHILE IT IS OFTEN SAID THAT A USER "RUNS A PROGRAM",H/WHAT IS ACTUALLY RUN IS THE TASK BUILT FROM THET+TRANSLATED PROGRAM SEGMENTS. SEE "PROGRAM".O.SKIP 1E .INDENT -5=TYPE (AS IN FILE TYPE): SEE ^SECTION 3 - ^FILES AND ^DEVICES.R.SKIP 1U .INDENT -5&^^UIC\\ (^USER ^IDENTIFICATION ^CODE):.INDEX ^^UIC\\ .INDEX USERA.INDEX USER FILE {HELLO IRVING\\} SIGN ON TO SYSTEM$^^PASSWORD:\\ PASSWORD IS NOT ECHOED&^^MCR>{EDI}\\ REQUEST THE FILE EDITOR.1^^EDI>{DK2:PROG.FOR}\\ IN RESPONSE TO THE PROMPT,A SPECIFY FILE NAME.B6^^[CREATING NEW FILE]\\ ^SINCE THIS IS A NEW FILE, THE$^^INPUT\\ EDITOR ASSUMES INPUT MODE,, {^^INTEGER A,B}\\ ^USER ENTERS PROGRAM.- {^I=1}\ (SEE ^^EDIT-11\\ MANUAL FOR FULLI {.} DESCRIPTION OF {.} EDITOR COMMANDSU {.} AND TECHNIQUES.)*{{F4P PROG,TI:=DK2:PROG}\\ COMPILE THE PROGRAM, WITHD A LISTING ON THE TERMINAL.^.INDEX ^^TKB\\(^^MCR>{TKB DK2:PROG=PROG}\\ BUILD A TASK(^^MCR>{RUN DK2:PROG$}\\ RUN THE PROGRAM. ) PROGRAM OUTPUT WOULD BE HERE  A)^^PROG - STOP\\ TASK TERMINATION MESSAGE.P,^^MCR>{BYE}\\ EVOKE -81 257 ^DEVICE OFFLINE WHEN OFFLINE REQUEST WAS ISSUED' -82 256 ^INVALID ESCAPE SEQUENCE ' -83 255 ^PARTIAL ESCAPE SEQUENCE" -84 254 ^ALLOCATION FAILURE -85 253 ^UNLOCK ERROR# -86 252 ^WRITE CHECK FAILUREO.FILLN.SKIP 2D!^MAGNETIC TAPE MOUNT ERROR CODES. .INDEX MOUNT.INDEX MAGNETIC TAPE.SKIP 1C*^THESE ERRORS ARE GENERATED WHILE MOUNTING/^^ANSI\\ FILE-STRUCTURED MAGNETIC TAPE VOLUMES,I8AND ARE REPORTED AFTER A ^^MOU\\NT COMMAND, IN THE FORM:.SKIP 1^^MOU -- MOUNT ERROR ACP\\ NNN.SKIP 1NWHERE NNN IS THE ERROR NUMBER..SKIP 1A.TAB STOPS 5 16C^DECIMAL VALUE ^MEANINGA.NOFILLS 6 ^GET COMMAND LINE ERROR 7 ^SYNTAX ERROR 8 ^BAD DEVICE# 11 ^WRONG VOLUME (INCORRECT LABEL)H 12 ^ALL UNITS MUST BE ^T^U16S 13 ^NOT ^^ANSI\\ FORMAT 17 ^PRIVILEGE VIOLATION 18 ^MIXED 9 AND 7 TRACK- 19 ^MESSAGE TASK (^^F11MSG\\) NOT INSTALLED..FILL\\\.APPENDIX USER WITH A SET OF SPECIAL CHARACTERS TO CONTROL THE BEHAVIOUROF THE TERMINAL.:^MOST OF THESE CHARACTERS ARE TYPED BY HOLDING THE CONTROL.INDEX ^^CTRL\\ KEYG.INDEX CONTROL KEY0KEY (^^CTRL\\) DOWN WHILE TYPING THE APPROPRIATE?CHARACTER KEY, JUST AS YOU USE THE "SHIFT" KEY ON A TYPEWRITER.V=^THROUGHOUT THE DOCUMENTATION, THESE CHARACTERS ARE INDICATEDI=BY PRECEDING THE LETTER USED WITH ^^CTRL/\\ (E. G. ^^CTRL/C\\EDMEANS THE CHARACTER GENERATED BY DEPRESSING THE ^^CTRL\\ AND ^C KEYSSIMU00po=onnnndLTANEOUSLY).^ONLY THE "CONTROL" CHARACTERSF^^CTRL/Z\\, ^^CTRL/O\\ -PRINT/NOPRINT OUTPUT. ^THE FIRST ^^CTRL/O\\ WILL .INDEX OUTPUTK .LM 26;.FILL(CAUSE PRINTING TO BE DISCARDED, AND THE )SECOND WILL CAUSE PRINTING TO CONTINUE. O.SKIP 1E.LM 10< ^^CTRL/Q\\ -START OUTPUT. ^UNDOES THE EFFECT OF ^^CTRL/S\\..SKIP 1R.LM 10; ^^CTRL/R\\ -RETYPE CURRENT LINE ON A NEW LINE, OMITTING.BREAK.LEFT MARGIN 26XDELETED CHARACTERS. 4^THIS IS USEFUL IF THE ^^RUBOUT\\ KEY HAS BEEN USED..SKIP 1O.LEFT MARGIN 10E> ^^CTRL/S\\ -STOP OUTPUT.^THIS DIFFERS FROM ^^CTRL/O\\ IN THAT.BREAK.LM 26#OUTPUT IS SUSPENDED, NOT DISCARDED.T.SKIP 1 .LM 10: ^^CTRL/U\\ -DELETE THE CURRENT LINE OF INPUT. ^NOTE THAT .BREAK;.LM 26O-THE PROMPT (IF ANY) MAY ^^NOT\\ BE RE-ISSUED.T.LM 10.SKIP 1T: ^^CTRL/V\\ -DELETE INPUT IN THE READ-AHEAD BUFFER. ^NOTE .BREAK;.LM 26EHTHAT )PROMPT.O;^A COMMAND LINE CONSISTS OF THREE PARTS - THE COMMAND NAME,D1ANY DESIRED COMMAND PARAMETERS, AND A TERMINATOR.D ^FOR EXAMPLE:A.FG 1;.INDENT 5 ^^MCR>{RUN TEST01$}\\U.FG 1F.LEFT MARGIN 15P .INDENT -5^COMMAND NAME:A^^MCR\\ INTERPRETS ALL CHARACTERS FROM THE BEGINNING OF THE LINE T;TO THE FIRST SPACE, TAB, OR TERMINATOR AS THE COMMAND NAME.MB^ONLY THE FIRST THREE CHARACTERS ARE USED TO IDENTIFY THE COMMAND,;SO ANY NUMBER OF ALPHANUMERIC CHARACTERS MAY BE APPENDED TO 6THESE THREE TO IMPROVE THE READABILITY OF THE COMMAND.<^FOR EXAMPLE, ^^ABO\\ OR ^^ABORT\\ HAVE THE SAME EFFECT AS A COMMAND NAME.N.FG 1I^UNDER THE CURRENT SYSTEM, EACH USER NAME HAS ASSOCIATED WITH IT A SET OFGHUSER PRIVILEGES THAT CONTROL WHAT PROGRAMS AND SYSTEM UTILITES THAT USERGCAN RUN. ^IF YOU REQUEST AN ACTION WHICH YOU CURRENTLY ARE NOT ALLOWED,H"THE SYSTEM WILL PRINT THE MESSAGE:.FG 1;.INDENT 5E6^^CURRENT USER PRIVILEGES DO NOT ALLOW THAT FUNCTION\\.FG 1HL^PLEASE ASK US IF YOU WISH TO USE SOME FUNCTION THAT YOUR CURRENT PRIVILEGES DO NOT ALLOW.A.SKIP 1B .INDENT -5 ^PARAMETERS:C^THE COMMAND DESCRIPTIONS FOLLOWING INDICATE WHETHER ANY PARAMETERSECARE REQUIRED FOR EACH COMMAND, AND WHAT EFFECT THE PARAMETERS HAVE.C.SKIP 1A .INDENT -5 ^TERMINATOR:?^A COMMAND LINE IS TERMINATED BY A CARRIAGE RETURN OR AN ESCAPEEOR (^^ALT\\ MODE) KEY.@^IF A CARRIAGE RETURN IS TYPED, ^^MCR\\ WILL INDICATE COMPLETION .INDEX PROMPTO>OF THE COMMAND BY RETURNING AND RE-ISSUING THE PROMPT ().D^THE ESCAPE KEY SUPRESSES THE RETURN OF {_@F\\ILESPEC}.FG 1 7^CAUSES XXX" ARELACTUALLY NAMED "<...XXX".FB^ONLY A PRIVILEGED TERMINAL MAY ABORT TASKS INITIATED FROM ANOTHER TERMINAL.U.SKIP 1O .INDENT 2N.NOFILL &^^MCR>{ABO XXX}\\ !STOP THE TASK {ABO ...F4P}\\ !STOP THE ^^FORTRAN\\COMPILER.N .INDENT 2_2^^{ABO ...BAS/TI=TT2}\\ !STOP {ACT}\\T .INDENT 2M!^^...ACT !ACT\\ PRINTS THIS LIST.I .INDENT 2N,^^...F4P\\ !^^FORTRAN\\ COMPILER IS RUNNING..SKIP 2 .HEADERLEVEL 1 ^^AID\\ R.INDEX ^^AID\\.INDEX ^ON-LINE INFORMATIONDI^AID PROVIDES ON-LINE INFORMATION ABOUT MOST OF THE PROGRAMS AND COMMANDS^LAVAILABLE TO THE SYSTEM. TYPING "{AID QUE}\\ !^GET HELP ON QUEUE MANAGER..SKIP 2T.INDEX ^^BYE\\.INDEX SIGN OFF.INDEX LOG OFF".HEADERLEVEL 1 ^^BYE\\ (^SIGN-OFF).LEFT MARGIN 10I^USED TO SIGN OFF THE SYSTEM.^8^FURTHER USE OF THE TERMINAL IS PREVENTED UNTIL THE USERSIGNS ON AGAIN.^4^USERS SHOULD ALWAYS ENTER A ^^BYE\\ COMMAND BEFORE LEAVING A TERMINAL.U.SKIP 1 .INDENT 2S ^^MCR>{BYE}\\ .INDENT 2O)^^USER XXXXXXXXX LOGGED OFF AT : 10:12:14C .INDENT 2 CONNECT TIME WAS: 2:12:32:16 .INDENT 2SGOOD MORNING\\.HEADERLEVEL 1 ^^CIE\\ E.INDEX ^^CIE\\.INDEX ^PRINT AT CIE PRINTER.EK^PRINT A SPECIFIED FILE AT THE CIE PRINTER/PLOTTER. ^THIS PROGRAM ALSO LETSF?ONE PRINT FILES CONTAINING GRAPHIC DATA RATHER THAN JUST ASCII. .SKIP 1I .INDENT 2 =^^MCR>{CIE GRAPH.DOC}\\ !^PRINT A PREVIOUSLY GENERATED GRAPH.^.SKIP 2M!.HEADERLEVEL 1 ^^COO\\ ^^COO\\KIE.INDEX ^^COO\\KIES ^GIVES A "FORTUNE-COOKIE" REPLY..SKIP 1X .INDENT 2F ^^MCR>{COO}\\C.SKIP 2 .HEADERLEVEL 1 ^^DAM (DAM\\MIT).INDEX ^^DAM\\MITRF^AN AID TO PROGRAMMER FRUSTRATION. ^MUCH BETTER THAN POUNDING THE {DAMMIT} !I\\T'S BEEN A BAD DAYO .INDENT 2 8^THE MORE ^I SEE MY FELLOW MAN, THE MORE ^I LIKE MY DOG..HEADERLEVEL 1 {DEMO}R.INDEX ^^DMO\\.INDEX DISMOUNTD.INDEX ^^ANSI\\ MAGTAPEI .INDEX FILED.INDEX MOUNTED VOLUMEM".HEADERLEVEL 1 ^^DMO\\ (^DISMOUNT).LEFT MARGIN 10I#^USED TO DISMOUNT A MOUNTED VOLUME.M>^THIS OPERATION IS ONLY MEANINGFUL FOR FILE-STRUCTURED VOLUMES(DISKS OR ^^ANSI\\ MAG TAPES).:^THERE MAY BE A DELAY IN COMPLETING THE DISMOUNT OPERATION4IF ^^I/O\\ OPERATIONS ARE IN PROGRESS ON THE VOLUME.1^A DISMOUN00pponnl]ldTED TAPE VOLUME WILL BE TURNED OFFLINE. .SKIP 1 .INDENT 2E$^^MCR>{DMO MT:} !D\\ISMOUNT MAG-TAPE.HEADERLEVEL 1 ^^DUP\\ D.INDEX ^^DUP\\LEXAL^CAUSES YOUR TERMINAL TO ACT AS IF IT WERE CONNECTED TO THE PDP11/45 SYSTEM.H^ALL TERMINAL {DUP}\\\.SKIP 2S .INDEX {FAC TI:=DP1:/FILES} !S\\HOW ACTIVITY ON {HELLO IRVING}\\ !USER IDENTIFIES HIMSELFO .INDENT 2F'^^PASSWORD:\\ !SYSTEM REQUESTS PASSWORDE.SKIP 1G ^^NOTES:\\.BREAK-THE PASSWORD IS NOT ECHOED..BREAK,-THE SYSTEM MESSAGE MAY BE STOPPED BY TYPING ^^CTRL/O\\. :^USERS ARE URGED TO READ THIS MESSAGE AT LEAST ONCE A DAY..BREAK>-{INF ACT} !L\\IST ALL ACTIVE TASKS .INDENT 2E4^^MCR>{INF ATL ...XXX} !L\\IST {INF CKQ} !L\\IST CONTENTS OF CLOCK QUEO .INDENT 2.3^^MCR>{INF FRM} !L\\IST DEV'S WITH NON-0 FORMS TYPED .INDENT 20^^MCR>{INF IOR ...XXX} !L\\IST TASK'S {INF MAP GEN} !S\\HOW USAGE OF PARTITION .INDENT 2/^^MCR>{INF NOD} !S\\HOW NODE USAGE OF ALL TASKSF .INDENT 2T2^^MCR>{INF PUD DDN:} !S\\HOW {INF STD ...XXX} !S\\HOW {INF TER TTN:} !S\\HOW TERMINAL CHARACTERISTICS..INDEX ^^INI\\.INDEX INITIALIZE COMMANDO .INDEX FILEC.LM 10..HEADERLEVEL 1 ^^INI\\ (^^INI\\TIALIZE VOLUME)$^USED TO INITIALIZE A USER'S VOLUME.)^THE VOLUME MUST BE LOADED ONTO A DEVICE.I3^NOTE THAT TAPE LABELS ARE LIMITED TO 6 CHARACTERS.I6^USERS SHOULD CONSULT THE COMPUTER SYSTEM STAFF BEFOREUSING THIS COMMAND..SKIP 1F .INDENT 2!^^MCR>{INI MT1:ARCHIV}\\ .INDENT 2 ^^MCR>{INI DP2:MYDISK}\\.SKIP 1<5^^NOTE:\\ ^ALL FILES ON THE VOLUME WILL BE DESTROYED!!%.HEADERLEVEL 1 ^^INS (INS\\TALL TASK)X.INDEX ^^INS\\.INDEX ^INSTALL TASKG^TELLS THE SYSTEM TO TAKE THE PROGRAM IN THE SPECIFIED FILE AND MAKE ITEIAVAILABLE FOR USE. ^THE PROGRAM THEN CAN BE ACTIVATED BY {INS MYPROG} !I\\NSTALL "RUN" TYPE PROGRAM .INDENT 2F9^^MCR>{INS ABC/TASK=...ABC} !I\\NSTALL {LOA CR} !L\\OAD CARD READER HANDLER2.HEADERLEVEL 1 ^^LUN (L\\OGICAL ^U^NIT TABLE LIST).INDEX ^^LUN\\.INDEX ^LOGICAL ^UNIT ^TABLEG^LISTS THE ^LOGICAL ^UNIT ^TABLE FOR AN INSTALLED TASK. ^THE {LUN ...SDV} !L\\IST LUNS FOR ^^SDVC **** ...SDV SY0 1,2,3,4DTI0 5LCL0 6\\E .LM 10;.FILL<.HEADERLEVEL 1 ^^LUT (L\\OGICAL ^UNIT LIST FOR ACTIVE ^TASK).INDEX ^^LUT\\*.INDEX ^ACTIVE ^TASK ^LOGICAL ^UNIT ^TABLE3^LISTS THE ^LOGICAL ^UNIT ^TABLE FOR AN ACTIVE TASKED^SHOWS INFORMATION ABOUT FILES CURRENTLY OPEN, INCLUDING INFORMATION:AS TO WHAT VIRTUAL BLOCKS OF THE FILES ARE BEING ACCESSED.C^FURTHER INFORMATION IS CONTAINED IN THE ^REESE ^UTILITIES ^MANUAL..SKIP 1 .BREAK;.LM 12N8^^MCR>{LUT ...ABC/TI:TT2} !L\\IST LUNS FOR TASK AT {MAY}\\F.BREAK+##^MAY A WIERD HOLY MAN PUT A CURSE ON YOU.R.SKIP 2E*.HEADERLEVEL 1 ^^MMC\\ ^TAPE TO TAPE COPY.".INDEX ^^MMC\\ ^TAPE TO TAPE COPY..INDEX ^TAPE TO TAPE COPY.F^COPIES THE TAPE ON THE 1600BPI ^CIPHER TAPE DRIVE TO THE 800BPI {MMC}\\S.SKIP 2D.INDEX ^^MOU\\.INDEX MOUNT COMMAND.INDEX MOUNTED VOLUMEA .INDEX FILEM.INDEX ^^ANSI\\ MAGTAPES.INDEX MAGNETIC TAPE%.HEADERLEVEL 1 ^^MOU (MOU\\NT DEVICE)A.LEFT MARGIN 10U-^USED TO MOUNT A FILE-STRUCTURED VOLUME (DISKM+OR ^^ANSI\\ STANDARD FORMAT MAGNETIC TAPE).EF^VOLUMES WHICH ARE NOT FILE-STRUCTURED MUST BE MOUNTED WITH "{MOU MT0:ARCHIV}\\.BREAK^^MCR>{MOU MT0:/CHA=[FOR]}\\.BREAK^^MCR>{MOU DK1:TEMPSTOR}\\.LM 10).HEADERLEVEL 1 ^^MTC\\ ^TAPE TO TAPE COPYM!.INDEX ^^MTC\\ ^TAPE TO TAPE COPYXD^COPIES FROM THE 800BPI {MTC}\\U.SKIP 2U%.HEADERLEVEL 1 ^^MUR\\ ^MURPHYS LAWS.^.INDEX ^^MUR\\PHYR3^RESPONDS WITH A RANDOM SELECTION OF MURPHY'S LAWS.U.SKIP 1S .INDENT 2D ^^MCR>{MUR}\\".BREAK&^JENSEN'S LAW: ^WIN OR LOSE, YOU LOSE..SKIP 2U0.HEADERLEVEL 1 ^^OPR (OP\\E^RATE DEVICE SPOOLER).INDEX ^^OPR DV:/SW\\D.INDEX ^OPERATE ON PRINTER QUEJ^ALLOWS ONE TO CONTROL THE LIST OF FILES CURRENTLY "LINED UP" FOR PRINTINGKAT THE LINE PRINTERS. ^ALLOWS YOU TO CHANGE OR REMOVE ENTERIES IN THE LIST.I:^FURTHER INFORMATION IS CONTAINED IN THE {OPR LP:/AB} !A\\BORT PRINTING THE CURRENT FILE .INDENT 2 4^^MCR>{OPR LP1:/RS} !R\\E-SUME (AFTER LOADING PAPER) .INDEX ^FURTHER DOCUMENTIATION IS CONTAINED IN THE {QUE /LI} !L\\IST FILES TO BE PRINTED .INDENT 2E2^^MCR>{QUE LP:=ABC.DAT} !P\\RINT DATA FILE AT {QUX /TI} !L\\IST EXPECTED PRINT TIMES2.HEADERLEVEL 1 ^^REA (REA\\SSIGN ^^LUNS\\ OF TASK) .INDEX {REA PROGRM 1 LP1:} !C\\HANGE BECAUSE {RED LP1:=LP0:} !R\\E-DIRECT BECAUSE {RED LP0:=LP0:} !R\\ESTORE AFTER FIXING {REM PROGRM} !R\\EMOVE USER'S PROGRAMU .INDENT 2R-^^MCR>{REM ...ABC} !R\\EMOVE ^SYSTEM PROGRAM.N.LM 10.SKIP 1=.INDEX ^^RESUME\\B$.HEADERLEVEL 1 ^^RES (RES\\UME TASK)0^USED TO CONTINUE EXECUTION OF A SUSPENDED TASK..SKIP 1V .INDENT 2(^^MCR>{RESUME MYTASK}\\R.SKIP 1T.INDEX SUSPEND2^^NOTE:\\ ^A TASK CAN ONLY BE SUSPENDED BY ITSELF.=^THIS CAN BE DONE USING A SYSTEM CALL WITHIN THE PROGRAM, FOR EXAMPLE, IN ^^FORTRAN: .INDENT 2O.SKIP 1N CALL SUSPNDR.INDEX ^^RUN\\!.HEADERLEVEL 1 ^^RUN (RUN\\ TASK)!^USED TO RUN A TASK..INDEX TASK NAMEE^IF A TASK IS CURRENTLY INSTALLED WITH THE SPECIFIED NAME, IT WILL BE^RUN. ^OTHERWISEEFTHE NAME IS ASSUMED TO BE THE NAME OF FILE CONTAINING A RUNNABLE TASK.!^THIS TASK WILL BE INSTALLED WITHC.THE SAME NAME AS THE FIRST 6 CHARACTERS OF THEFILENAME, AND WILL BE RUN.H^IT IS USUALLY ADVISABLE TO TERMINATE THE COMMAND WITH AN "{RUN DK2:PROG$}\\ !GET THE TASK FROM ^^DK2:PROG.TSK\\R .INDENT 2L)^^MCR>{RUN PROG$}\\ !RUN A SYSTEM PROGRAMU.FILLE.INDEX ^^TI:\\.SKIP 1EA^^NOTES: TI:\\ WILL BE ESTABLISHED AS THE TERMINAL FROM WHICH THEL TASK WAS RUN.W3^THIS COMMAND ONLY ^^REQUESTS\\ THAT A TASK BE RUN,4AND IT IS POSSIBLE THAT THE TASK WILL NOT BE STARTED(IMMEDIATELY (E.#G. INSUFFICIENT MEMORY).>^IN THIS CASE, WAIT FOR THE ^^TASK\\ (NOT ^^MCR\\) TO RESPONDBEFORE PROCEEDING. T3^IT IS IMPOSSIBLE TO ABORT THE TASK UNTIL IT BEGINSD .INDEX ABORT8TO RUN, AND ATTEMPTING TO ^^RUN\\ IT AGAIN IS POINTLESS.4^PLEASE BE PATIENT AT TIMES LIKE THIS, THE SYSTEM IS.PROBABLY BUSY, AND WILL GET TO YOU EVENTUALLY. .INDEX {SDV DK0:}\\ !SET DEFAULT DEVICE TO DISK 0.T .INDENT 3E/^^MCR>{SDV SD0:}\\ !SET DEFAULT TO USER'S DISK.L.SKIP 2U .TEST PAGE 6.INDEX ^^SEND\\D.INDEX MESSAGES^&.HEADERLEVEL 1 ^^SEN\\ (^SEND MESSAGE)1^USED TO SEND A LINE OF TEXT TO ANOTHER TERMINAL.E*^THE RECEIVING TERMINAL MUST BE LOGGED IN.7^THE MESSAGE WILL BE PRINTED ON THE INDICATED TERMINAL,I(PRECEDED BY THE SENDING TERMINAL'S NAME..SKIP 10 .INDENT 2^#^^MCR>{SEN TT4:DONE WITH TAPE???}\\<.SKIP 1 .INDEX ^^SET /UIC\\I.INDEX ^DEFAULT {SET /UIC=[100,100]}\\ !SET DEFAULT ^^UIC\\E.LM 10 .INDEX {SUB BATCH.BIS}\\C .INDEX ^FURTHER DOCUMENTIATION IS CONTAINED IN THE {SYS /DEV} !L\\IST ALL DEVICES AVAILABLE .INDENT 2T,^^MCR>{SYS /TAS} !L\\IST ALL INSTALLED TASKS .INDENT 2X3^^MCR>{SYS /COM} !L\\IST ALL INSTALLED COMMON AREASR .INDEX {TER /SORO} !S\\ETS TERMINAL TYPEN .INDENT 2H0^^MCR>{TER /SPEED:300} !S\\ETS SPEED TO 300 BAUD .INDENT 2E,^^MCR>{TER /LCI} !E\\NABLES LOWER CASE INPUT.INDEX ^^TIME\\! .INDEX TIMES .INDEX DATE2.HEADERLEVEL 1 ^^TIM\\ (^SHOW ^^TIM\\E AND DATE)\\'^USED TO DISPLAY CURRENT TIME AND DATE.N .INDENT 2A.SKIP 1A^^MCR>{TIME}\\.BREAK;.INDENT 213:14:15 29-^^FEB\\-77..HEADERLEVEL 1 ^^UNL (UNL\\OAD DEVICE HANDLER).INDEX ^^UNL\\OAD HANDLERA.INDEX ^HANDLER UNLOADF^DE-ACTIVATES A CURRENTLY ACTIVE DEVICE HANDLER TASK. (^SEE ^^LOA\\D.)B^USED WHEN NO MORE {UNL CR} !U\\NLOAD CARD-READER HANDLER.SKIP 1E.INDEX ^^USE\\ (UIC).INDEX ^DEFAULT {USE\\ 100,100} !SET DEFAULT {WHO}\\16.HEADERLEVEL 1 ^^WHE\\ (^SHOW ^^WHE\\RE TERMINALS ARE).INDEX ^^WHE\\REM^LISTS CURRENT INFORMATION AS TO THE PHYSICAL LOCATION, TYPE OF TERMINAL, ANDEADEFAULT TERMINAL OPERATING SPEED FOR ALL TERMINALS ON THE SYSTEM.S.SKIP 1T .INDENT 2A^^MCR>{WHERE}\\\8.HEADERLEVEL 1 ^^WHN\\ (^SHOW ^W^HE^N THINGS WILL OCCUR).INDEX ^^WH\\E^N^INDEX ^CLOCK QUEUE LISTF^LISTS ALL EVENTS IN THE "CLOCK QUE". ^THE CLOCK QUE IS A LIST OF TASKFREQUESTS FOR THINGS TO HAPPEN AT A FUTURE TIME. ^TWO TYPES OF REQUESTSFOCCUR. ^REQUESTS FROM A TASK TO "WAIT" (SUSPEND OPERATION) FOR A GIVENGAMOUNT OF TIME, (OR UNTIL A SPECIFIC TIME OF DAY,) OR REQUESTS TO "RUN"E+A SPECIFIED PROGRAM AT A GIVEN FUTURE TIME.D:^FURTHER INFORMATION IS CONTAINED IN THE {WHN} !L\\IST CLOCK QUE .LM 10.RIGHT MARGIN 75.CHAPTER ^^UTILITY COMMANDS\\ .INDEX ^UTILITIES..INDEX ^UTILITY COMMANDSD^MANY TASKS ARE AVAILABLE ON THE SYSTEM FOR CONVENIENCE TO THE USER.A^SOME OF THESE TASKS ARE INSTALLED IN THE SYSTEM SO THAT THE USERWKMAY INVOKE THEM BY TYPING THE TASK NAME (^^PIP, PRI\\), OPTIONALLY FOLLOWEDMBY AN INPUT STRING.S.FG 1N.^COMPLETE DOCUMENTATION ON SOME OF THESE TASKS-IS AVAILABLE IN THE ^^IAS U\\TILITIES MANUAL, 8OTHER UTILITIES DEVELOPED HERE ARE USUALLY DOCUMENTED IN#MANUALS PREPARED BY THE DEPARTMENT.C.FG 1^J^THE SCOPE OF THIS MANUAL PRECLUDES LISTING ALL OF THE UTILITIES CURRENTLYMAVAILABLE ON THE SYSTEM. ^RATHER IT IS INTENDED TO PRESENT A STARTING SUB-SETSHTO ENABLE THE NEW USER TO INITIALLY LEARN THE SYSTEM. ^VARIOUS UTILITIESHEXIST WHICH SERVE SPECIAL PURPOSES OR ARE DANGEROUS WHEN USED BY THE NEWJUSER. ^EXPERIENCED USERS ARE RECOMMENDED TO CONSULT THE MAIN DOCUMENTATIONRACK FOR FURTHER INFORMATION.T.FG 1LL^IN THE FOLLOWING LIST OF UTILITIES, SAMPLE OUTPUT/RESULTS ARE ONLY INCLUDEDLIF THE RESULT APPEARS ON THE TERMINAL, AND IS ONE OR TWO LINES LONG. ^OUTPUTFTHAT APPEARS SOMEWHERE ELSE, (AT THE LINE PRINTER FOR EXAMPLE,) IS NOTMDISPLAYED. ^NEITHER IS OUTPUT SHOWN WHEN THE OUTPUT IS OVER A FEW LINES LONG.R.SKIP 2I .TAB STOPS 42C .INDEX00pponnl]ld {ATT MYFILE.DAT} !L\\IST ATTRIBUTES OF FILEN).HEADERLEVEL 1 ^^BDI\\ ^^BRU\\ ^DIRECTORYS.INDEX ^^BDI\\ {BDI}\\B.SKIP 2C.INDEX ^BLOCKS USED/ALLOCATEDT.INDEX STORAGE USEDL,.HEADERLEVEL 1 ^^BLO (^SHOW ^^BLO\\CK USAGE)F^DISPLAYS THE TOTAL NUMBER OF BLOCKS USED FOR STORAGE BY THE SPECIFIED{BLO} !\\STORAGE FOR DEFAULT {BRI FILE.DAT;*} !D\\O DIRECTORY OF ONE FILE.NOFILL .INDENT 2 ^^DIRECTORY DP1:[1,10] F .INDENT 2< FILE.DAT;2 .INDENT 2I FILE.DAT;3\\.FILLS).HEADERLEVEL 1 ^^BUG\\ ^PROGRAM ^DEBUGGERD.INDEX ^^BUG\\ PROGRAM DEBUGGERDI^A SCREEN BASED {BUG\\ {CMP TI:=FILE1.FOR,FILE2.FOR}\\ .SKIP 2 ).HEADERLEVEL 1 ^^DEL\\ETE ^DELETE A FILE..INDEX ^^DEL\\ETE H^DELETES THE SPECIFIED FILE(S). ^WILD CARDS MAY BE SPECIFIED IN THE FILEHSPECIFICATION. ^THE SYSTEM WILL PROMPT FOR AN ANSWER BEFORE DELETING THE;FILE IN QUESTION. ^YOUR ANSWER MAY BE ONE OF THE FOLLOWING:.BREAK ^Y ^YES, DELETE FILE..BREAK ^N ^NO, DO NOT DELETE FILE..BREAK# ^G ^GO ON WITHOUT ASKING ANY MORE.W.BREAK ^Q ^QUIT..SKIP 1, .INDENT 2E^^MCR>{DEL} MYFILE.DOC\\.BREAK .INDENT 2:2^DELETE FILE ^^DP1:[1,10]MYFILE.DOC;1 [YNGQ]?{Y}\\.SKIP 2 :.HEADERLEVEL 1 ^^DIA\\ (^PRINT FILE AT ^^DIA\\BLO PRINTER).INDEX {DIA MANUAL.DOC} !P\\RINT RUNOFF MANUAL AT ^DIABLO.9.HEADERLEVEL 1 ^^DIB\\ (^PRINT FILE AT CUT-SHEET PRINTER)S.FG 2 .INDEX {DIB MANUAL.DOC} !P\\RINT MANUAL ON BOND PAPER.T .INDEX {DIR MYFILE.DAT} !D\\O DIRECTORY OF ONE FILE.NOFILLG .INDENT 2S^^DIRECTORY DP1:[1,10] .INDENT 2 26-FEB-81 19:02^ > .INDENT 2..MYFILE.DAT;3 5. 24-FEB-81 12:12 .INDENT 2L%TOTAL OF 5./5. BLOCKS IN 1. FILE\\ .FILLT .INDEX {DOC MANUAL.DOC} !P\\RINT {DMP TI:=XY.DAT/AS}\\ 00po=onnnnd!^DUMP FILE IN ASCII MODE..FG 2\*.HEADERLEVEL 1 ^^DTC\\ ^DESK TOP CALENDAR..INDEX {DTC/T}\\ !^GET SCHEDULE FOR TODAY.FG 2> .INDEX {EDI TEST.BAS}\\ !E\\DIT A {EDT TEST.BAS} !E\\DIT A {FDU EXEC.STB} !D\\UMP SYMBOL TABLE FILE O .INDEX {FHD 12345,23} !L\\IST ^FILE-^HEADER FOR 12345,23\ .INDEX {FLX SY:/RS=MT:ABC.TSK/DO} !R\\EAD A {FON GEORGE}\\ !^LIST ALL GEORGES IN THE BOOK..FG 2U .INDEX {FREE DK0:} !L\\IST FREE BLOCKS ON {FRG DP1:} !C\\HECK FRAGMENTATION OF {KED MYFILE.FOR/CR}\\ !^CREATE NEW FILEL .INDENT 2H9^^MCR>{K52 MYFILE.FOR/CR}\\ !^EDIT USING A {LAS LETTER.DOC}\\ !^PRINT LETTERF.FG 2}!.HEADERLEVEL 1 ^^LBR\\ ^LIBRARIANF.INDEX {LBR MYLIB.OLB/CR}\\ !^CREATE LIBRARYX .INDENT 2R0^^MCR>{LBR MYLIB.OBL/IN=MYSUB}\\ !^INSERT MODULE.FG 2R,.HEADERLEVEL 1 ^^LIS\\ ^MULTI-COLUMN LISTER.!.INDEX {LIS FILE.DOC/CO:3=FILE.IN}\\ !^LIST 3-WIDE..FG 2A&.HEADERLEVEL 1 ^^NED\\ ^NETWORK EDITOR.INDEX {NED MRVAX::FILE.DOC}\\=.FG 2\'.HEADERLEVEL 1 ^^PAG\\ ^PAGINATE OUTPUT^.INDEX ^^PAG\\INATE LISTINGL^OUTPUTS A TEXT FILE WITH BREAKS AT THE STANDARD FAN-FOLD POSITION, AND WITH4A 1-LINE HEADER SHOWING FILE SPECIFICATION AND DATE..FG 1S .INDENT 2E^^MCR>{PAG FIL.PAG=FIL.INP}\\..FG 2^ .INDEX {PIP TI:=ABC.FOR} !L\\IST FORTRAN SOURCE AT TERMINAL..HEADERLEVEL 1 ^^PRI\\ (^P^R^INT FILE AT {PRI PROG.LST} !P\\RINT LISTING AT LINE PRINTER^ .INDEX {PRO MYFILE.DAT} !P\\ROTECT IMPORTANT DATA FILE^ .INDEX {PUR ABC.FOR} !C\\LEAN UP AFTER EDITING. .INDENT 2N .INDEX {REC OUTPUT.DAT} !U\\NLOCK OUTPUT FILE .INDEX {RCV DATA.DAT} !R\\ESTORE DATA FILET .INDEX {RNO MANUAL=MANUAL} !P\\RODUCE USER'S MANUAL .INDEX {RNP JACK=MEMO} !P\\RODUCE MEMO FROM STOCK FORML#.HEADERLEVEL 1 ^^SPE\\LLING CHECKERB.INDEX ^^SPE\\LLING CHECKER F^CHECKS THE SPELLING OF A DOCUMENT. ^POINTS OUT QUESTIONABLE SPELLING..FG 1 .INDENT 2V^^MCR>{SPE LETTER.DOC}\\.FG 2I .INDEX {SPY}\\ !(^NO FURTHER INFO ON LINE) .INDEX DIRECTORY.INDEX SORT DIRECTORY UTILITYC*.HEADERLEVEL00qo=onnnnd 1 ^^SRD\\ (^SO^RT ^DIRECTORY)3^USED TO PRODUCE DIRECTORY LISTINGS IN ALPHABETICALSORDER.%^A SEPERATE {SRD /NA} !S\\ORT DIRECTORY BY FILE-NAME.INDEX ^^TECO\\O .INDEX EDITORL.INDEX TEXT FILESI7.HEADERLEVEL 1 ^^TECO\\ (^TEXT ^EDITOR AND ^C^ORRECTOR).,^A COMPREHENSIVE TEXT PROCESSOR USED TO EDIT!FILES CONTAINING TEXT CHARACTERS..FG 1 .INDENT 2S(^^MCR>{TEC ABC.BAS} !E\\DIT BASIC SOURCE0.HEADERLEVEL 1 ^^TLK\\ ^TALK TO ANOTHER TERMINAL%.INDEX {TLK ROVER::TXA3:}\\ !^TALK TO ^U OF ^C VAX TERMINAL.T.FG 2E .INDEX {TYP ABC.BAS} !L\\IST EDITED PROGRAM AT TERMINAL .INDEX {UNP MYFILE.DAT} !L\\ET FILE BE DELETED\$.INDEX {VTL *.FOR}\\ !^LIST ALL FORTRAN SOURCE FILES ".CHAPTER ^^LANGUAGES AND LINKERS\\E^SEVERAL COMPILERS AND INTERPERTERS ARE AVAILABLE ON THE {BAS PROGRAM/RN}\\ !^LOAD AND EXECUTE PROGRAMF'.INDEX {FOR MYPROG}\\ !^COMPILE MYPROG.FOR^.INDEX {F77 PROG,PROG/LI:3=PROG}\\ !^LIST INCLUDING GENERATED CODEX.INDEX ^^MAC\\RO.HEADERLEVEL 1 ^^MAC\\ROJ^COMPILES A MACRO11 SOURCE FILE. ^MACRO IS THE MACHINE LANGUAGE FOR {PROG,PROG/-SP=PROG}\\ !^COMPILE WITH LISTING FILE.INDEX {MAX MYFILE}\\ !^IS EQUIVALENT TO .INDENT 2 %^^MCR>{MA MYFILE,MYFILE/-SP=MYFILE}\\:.INDEX .FG 1R .INDENT 2}^^MCR>{RAT PGM,PGM,PGM=PGM}\\.FG 1{RA5 PROGRAM.RAT>PROGRAM.FOR}\\T.FG 11D^NOTE THAT RAT5 HAS AN INV00qponnl]ldERSE CONVENTION, THE OUTPUT FILE IS ON THEERIGHT AND THE INPUT FILE IS ON THE LEFT. ^ALSO RAT5 DOES NOT GENERATEHA LISTING FILE.5.INDEX {TKB @TASK.CMD}\\ !^USE INDIRECT COMMAND FILE..FG 1EI^NOTE THAT TO BE USED FOR INPUT OR OUTPUT UNTIL THE PROGRAM IS TO BE RUN..SKIP 1S .INDENT -5<ATTACH: A TASK MAY WISH TO COMMUNICATE WITH A DEVICE WITHOUT .INDEX ATTACHA .INDEX DETACHDINTERFERENCE FROM OTHER TASKS.=^TO MAKE THIS POSSIBLE, A TASK CAN "ATTACH" A DEVICE, AND ANYD2OTHER TASKS NEEDING THE DEVICE MUST WAIT UNTIL THE'TASK "DETACHES" BEFORE THEY CAN USE IT.IA^ATTACHING/DETACHING IS DONE THROUGH CALLS TO SYSTEM SUBROUTINES.C.SKIP 1. .INDENT -5CHECKPOINT, -ABLE, -ED, -ING: .INDEX CHECKPOINT .INDEX PRIORITYI .INDEX MEMORYU=IN ORDER THAT A TASK OF HIGH PRIORITY MAY RUN WHEN NECESSARY, 9LOWER PRIORITY TASKS MAY BE STOPPED, THEIR CURRENT STATUSA0SAVED, REMOVED FROM MEMORY, AND WRITTEN TO DISK.-^WHEN MEMORY BECOMES AVAILABLE AGAIN, THE LOWH=PRIORITY TASK WILL BE BROUGHT BACK INTO MEMORY, AND EXECUTIONUWILL CONTINUE.&^THIS PROCESS IS CALLED CHECKPOINTING.?^SINCE DISK SPACE MUST BE ESTABLISHED FOR THE INTERMEDIATE COPYS8OF THE TASK, ONLY CERTAIN TASKS ARE MADE CHECKPOINTABLE.A^A TASK MAY BE BUILT AS A CHECKPOINTABLE TASK THROUGH COMMANDS TOKTHE TASK BUILDER (^^TKB\\).N.LM 10;.PAGE;.LM 15R .INDENT -5"COMMAND FILE: SEE "INDIRECT FILE"..SKIP 1, .INDENT -5DETACH: SEE "ATTACH".O.SKIP 1W .INDENT -5;DIRECTORY: A DIRECTORY IS A SPECIAL TYPE OF FILE CONTAININGH.INDEX DIRECTORY.INDEX DIRECTORY FILEC.INDEX ^^UIC\\:THE NAMES AND LOCATIONS OF OTHER FILES ON THE SAME VOLUME.5^EACH USER OF THE SYSTEM IS GIVEN A DIRECTORY ON EACHL<DISK HE IS AUTHORIZED TO ACCESS, AND REFERS TO THE DIRECTORY+USING A USER IDENTIFICATION CODE (^^UIC\\).K8^BY ESTABLISHING A DEFAULT ^^UIC\\ (SEE ^^SET\\ COMMAND, SECTION 2),N3THE SYSTEM ASSUMES ALL FIL000qponnl]ldE REFERENCES ARE TO FILESE"CONTAINED IN THE USER'S DIRECTORY.?^THIS ALLOWS MORE THAN ONE USER TO HAVE FILES OF THE SAME NAME,NBAND RESTRICTS THE LIST OF FILES FOR EACH USER TO THOSE OF INTERESTTO HIM.O8^THE DIRECTORY MAY BE EXAMINED USING ^^PIP\\ OR ^^SRD\\..SKIP 1M .INDENT -5DISMOUNT: SEE "MOUNT"..SKIP 1T .INDENT -57DORMANT: A TASK IS SAID TO BE DORMANT WHEN ITS LOCATIONC.INDEX DORMANT7ON THE DISK IS KNOWN TO THE SYSTEM, BUT IT HAS NOT BEENO*ACTIVATED BY A ^^RUN\\ COMMAND OR REQUEST.8^A TASK IS MADE DORMANT BY INSTALLING IT. SEE "INSTALL"..SKIP 1 .INDENT -5<DRIVER, DEVICE DRIVER: EACH HARDWARE DEVICE ON THE SYSTEM IS .INDEX DEVICEO .INDEX DRIVERH1CONTROLLED BY A SOFTWARE PROGRAM CALLED A DRIVER.Y8^IT IS THE DUTY OF THE DRIVER TO INTERPRET INPUT SIGNALS<AND PROVIDE THE PROPER OUTPUT SIGNALS TO CONTROL THE DEVICE..SKIP 1S .INDENT -59ECHO: EACH CHARACTER TYPED AT A KEYBOARD IS ACTUALLY SENTK .INDEX ECHOY.INDEX TERMINALNONLY TO THE COMPUTER.A=^THE TERMINAL DEVICE DRIVER (SEE "DRIVER") THEN USUALLY SENDSLACONFIRMATION OF THE CHARACTER TO THE OUTPUT PART OF THE TERMINAL.:9^THIS CONFIRMATION IS CALLED ECHO, AND MAY BE THE SAME ASD2THE CHARACTER TYPED, THE UPPER CASE VERSION OF THE4CHARACTER, OR A STRING OF CHARACTERS (E.#G.#_^^U FOR ^^CTRL/U\\)..SKIP 1V .INDENT -5=FILE: A FILE IS AN OWNER-NAMED AREA ON A MASS STORAGE DEVICE. .INDEX FILEA4^FILES BEHAVE MUCH LIKE DEVICES IN THAT ^I/^O MAY BE=DIRECTED TO THEM, BUT THEY ARE MORE DYNAMIC AND FLEXIBLE THANE"PHYSICAL DEVICES. SEE "DIRECTORY"..SKIP 1L .INDENT -5?FILENAME, FILE SPECIFIER: SEE ^SECTION 3 - ^FILES AND ^DEVICES.O.INDEX FILENAMEL.SKIP 1A .INDENT -5<INDIRECT FILE, COMMAND FILE: A SEQUENCE OF COMMANDS WHICH IS.INDEX INDIRECT FILE.INDEX COMMAND FILEG@TO BE REPEATED OFTEN MAY BE ENTERED INTO A FILE CALLED A COMMANDFILE. 1^THE ^^IAS\\ SYSTEM PROVIDES A METHOD FOR PASSING9THIS SEQUENCE, ONE LINE AT A TIME, TO THE PROPER PROGRAM.T(^FULL DOCUMENTATION ON THE INDIRECT FILE1PROCESSOR IS AVAILABLE IN THE ^^IAS\\ ^OPERATOR'S^PROCEDURES MANUAL..SKIP 1 .INDENT -5INITIATE: SEE "RUN"..LM 10;.PAGE;.LM 15 .INDENT -5GINSTALL: BEFORE A TASK FILE MAY BE LOADED INTO MEMORY AND EXECUTED, THEM.INDEX INSTALLASYSTEM MUST BE INFORMED OF ITS EXISTENCE, NAME, LOCATION ON DISK,Y/AND OTHER PARAMETERS NECESSARY TO RUN THE TASK.%^THIS PROCEDURE IS CALLED INSTALLING.O;^A TASK MAY BE INSTALLED IN THE SYSTEM PERMANENTLY IF IT ISP5USED OFTEN, OR TEMPORARILY IF IT IS RUN OCCASIONALLY.C6^MOST USER PROGRAMS ARE INSTALLED AUTOMATICALLY BY THE.^^RUN\\ COMMAND, AND REMOVED AFTER COMPLETION.SEE "REMOVE-ON-EXIT"...SKIP 1I .INDENT -5^^I/O\\: INPUT/OUTPUT. .INDEX ^I/^O.SKIP 1M .INDENT -5ALABEL: A LABEL IS USED TO IDENTIFY A VOLUME AS IT IS ^^MOU\\NTED.E=^THE LABEL IS GIVEN TO THE VOLUME WHEN IT IS ^^INI\\TIALIZED.U<^TAPE LABELS MUST BE 6 CHARACTERS OR LESS. SEE ^^MOU\\NT AND^^INI\\TIALIZE COMMANDS..SKIP 1A .INDENT -57LOGICAL DEVICE: A LOGICAL DEVICE IS A NAME WHICH MAY BEY.INDEX LOGICAL DEVICE .INDEX DEVICEU.REFERRED TO BY A PROGRAMMER WHILE DEVELOPING A0PROGRAM, AND THEN MAPPED TO ANY DESIRED PHYSICAL3DEVICE WHEN THE PROGRAM IS TO BE RUN. SEE "ASSIGN"..SKIP 1 .INDENT -57LOGICAL UNIT: AN ^^IAS\\ TASK PERFORMS INPUT AND OUTPUTU .INDEX UNITE.INDEX ^^LUN\\.INDEX ^^LUN\\ .INDEX UNITS .INDEX ^I/^O.INDEX LOGICAL UNIT NUMBERST&ON A SET OF CONCEPTUAL ENTITIES CALLED2LOGICAL UNITS, REFERRED TO IN THE TASK BY NUMBERS.8^THESE UNITS ARE ASSOCIATED WITH PHYSICAL DEVICES BEFORETHE PROGRAM IS RUN.V7^THERE IS A DEFAULT MAPPING OF ^^FORTRAN\\ LOGICAL UNITG3NUMBERS (^^LUN\\S) TO LOGICAL DEVICES, BUT THIS MAYW6BE CHANGED USING OPTIONS IN THE TASK BUILDER (^T^K^B)..SKIP 15 .INDENT -5:^^MCR\\ (^MONITOR ^CONSOLE ^ROUTINE): ^^MCR\\ IS A SPECIAL.INDEX ^^MCR\\6TASK TO WHICH THE SYSTEM PASSES UNSOLICITED INPUT FROM A TERMINAL.B4^^MCR\\ MAY ALSO BE SPECIFICALLY REQUESTED BY TYPING ^^CTRL-C\\.E;^^MCR\\ INTERPRETS USER COMMANDS, AND IS USED TO RUN TASKS,H<ABORT TASKS, SET PARAMETERS, DIS008qo=onnnndPLAY SYSTEM INFORMATION, AND"SO ON. SEE ^SECTION 2 - ^COMMANDS..SKIP 1U .INDEX MOUNT.INDEX DISMOUNTI .INDEX VOLUMEA .INDENT -5=MOUNT, DISMOUNT: BEFORE FILES ON A FILE-STRUCTURED VOLUME CANN7BE ACCESSED, CONTROL INFORMATION MUST BE MADE AVAILABLESTO THE SYSTEM.7^THE PROCEDURE FOR EXTRACTING THIS INFORMATION FROM THE VOLUME IS CALLED "MOUNTING".=^ONCE A VOLUME HAS BEEN MOUNTED, A USER MAY REFER TO FILES ON\2THE VOLUME BY NAME UNTIL THE VOLUME IS DISMOUNTED.?^TO AVOID CONFUSION, THE OPERATION OF PUTTING THE VOLUME ON THE3PHYSICAL DEVICE SHOULD BE REFERRED TO AS "LOADING".M.SKIP 1D .INDENT -5@MULTIPROGRAMMING: ALTHOUGH THE CENTRAL PROCESSOR OF THE COMPUTER.INDEX MULTIPROGRAMMINGN8ONLY EXECUTES INSTRUCTIONS FROM ONE TASK AT A TIME, MANY%TASKS MAY BE COMPETING FOR EXECUTION.T#^IF THE OPERATING SYSTEM IS ABLE TOO-PASS CONTROL TO ANOTHER TASK WHEN THE CURRENTBATASK IS WAITING FOR A SLOW OPERATION TO COMPLETE (USUALLY ^I/^O),L6THE RESULT IS THE APPEARANCE OF SIMULTANEOUS EXECUTION3OF MORE THAN ONE TASK, AND THIS PROCEDURE IS CALLED MULTIPROGRAMMING.T.LM 10;.PAGE;.LM 15I .INDENT -5OBJECT CODE, OBJECT FILE:H .INDEX OBJECTL.THE FIRST STEP IN RUNNING A PROGRAM WRITTEN IN3A HIGHER-LEVEL LANGUAGE IS THE TRANSLATION FROM THEI/LANGUAGE THE PROGRAM IS WRITTEN IN TO LOW-LEVELCOMPUTER INSTRUCTIONS.-^THE COMPUTER INSTRUCTIONS ARE REFERRED TO AS -OBJECT CODE AND ARE STORED IN AN OBJECT FILE.I%SEE "SOURCE CODE", "TASK", "PROGRAM".E.SKIP 1H .INDENT -57PARTITIONS: A PARTITION IS A CONTIGUOUS AREA OF MEMORY,I.INDEX PARTITION .INDEX MEMORYRIDENTIFIED BY A NAME..4^EACH TASK TO BE RUN IS ASSIGNED TO A PARTITION, AND8COMPETES WITH OTHER TASKS ASSIGNED TO THAT PARTITION FORSPACE WITHIN IT.3^THUS A TASK CAN BE GUARANTEED TO HAVE MEMORY SPACER3AVAILABLE IF A PARTITION IS SET ASIDE FOR IT ALONE..2^MOST USER PROGRAMS COMPETE FOR SPACE IN ONE LARGE,PARTITION, WHICH IS DIVIDED UP BY THE SYSTEM*DYNAMICALLY FOR AS MANY TASKS AS POSSIBLE..SKIP 1D .INDENT -5 PERIPHERAL:T.INDEX PERIPHERALU:A PERIPHERAL IS A HARDWARE DEVICE ATTACHED TO THE COMPUTER6SYSTEM OTHER THAN THE MEMORY OR THE CENTRAL PROCESSOR..SKIP 1, .INDENT -5,^^PIP\\ (^PERIPHERAL ^INTERCHANGE ^PROGRAM):.INDEX ^^PIP\\.INDEX FILE TRANSFER:A SYSTEM UTILITY USED FOR MANAGING AND TRANSFERRING FILES..SKIP 1E .INDENT -5?PRIORITY: A TASK COMPETING FOR RESOURCES IS ASSIGNED A PRIORITYA.INDEX PRIORITY IN THE RANGE 1-250.T6^A TASK IS RUN ONLY WHEN ALL HIGHER PRIORITY TASKS ARECOMPLETE OR HELD UP FOR ^I/^O..SKIP 1E .INDENT -5)PRIVILEGED TERMINAL, PRIVILEGED COMMANDS: .INDEX PRIVILEGE.INDEX TERMINALO8IN ORDER TO PROVIDE ADEQUATE CONTROL OVER THE OPERATING 4SYSTEM, CERTAIN POWERFUL COMMANDS MUST BE AVAILABLE.3^IN ORDER THAT THESE COMMANDS ARE NOT INADVERTENTLYA7MISUSED, THEIR USE IS RESTRICTED TO SPECIFIC TERMINALS,ICALLED PRIVILEGED TERMINALS.;^USERS AT PRIVILEGED TERMINALS SHOULD BE AWARE OF THE HAVOC1THEY MAY WREAK.S.SKIP 1 .INDENT -5PROGRAM:.INDEX PROGRAM8A PROGRAM IS A SEQUENCE OF COMPUTATIONAL STEPS, USUALLY*TO BE PERFORMED BY A COMPUTER. SEE "TASK"..SKIP 1E .INDENT -5PROMPT:N .INDEX PROMPTD.INDEX TERMINALL .INDEX ATTACHT/WHEN A TASK REQUESTS INPUT FROM A TERMINAL, THEV>TERMINAL SHOULD BE ATTACHED BY THE TASK, SO THAT UNINTERRUPTEDINPUT IS GUARANTEED.:^TO INDICATE THIS TO THE USER AT THE TERMINAL, A STRING OF3CHARACTERS IDENTIFYING THE TASK IS USUALLY PRINTED.O9^THIS STRING OF CHARACTERS IS CALLED A PROMPT, AND ALLOWSA%A USER TO RUN MORE THAN ONE TASK, YETE.ENSURE THAT INPUT IS GIVEN TO THE PROPER TASK.+^THE STANDARD ^^IAS\\ PROMPT IS "^^XXX\\>",I!WHERE ^^XXX\\ IS THE TASK'S NAME..SKIP 1R .INDENT -56PSEUDO DEVICES (^^CL:, CO:, TI:, SY:, WK:, LB:, SD:\\) .INDEX PSEUDOS .INDEX DEVICEE.INDEX TERMINAL AA PSEUDO DEVICE IS A DEVICE NAME WHICH IS REDIRECTED AS NECESSARYUTO A PHYSICAL DEVICE.S+^SEVEN PSEUDO DEVICES EXIST ON THIS SYSTEM:U.LEFT MARGIN 25.SKIP 1I .INDENT -53^^CO:\\ - CONSOLE OUTPUT. ^USED TO SEND MESSAGES TOOTHE SYSTEM OPERATOR..LM 10;.PA00@qponnl]ldGE;.LM 25S .INDENT -52^^CL:\\ - CONSOLE LISTING. ^USED FOR LONGER OUTPUTDIRECTED TO THE SYSTEM STAFF.T .INDENT -56^^SY\\: - SYSTEM DISK. ^CONTAINS THE DISK IMAGE OF THE+OPERATING SYSTEM, AND CERTAIN SYSTEM TASKS.X .INDENT -57^^TI:\\ - TERMINAL INPUT. ^ESTABLISHED FOR EACH TASK AS 7THE TERMINAL FROM WHICH IT WAS ^^RUN.\\ ^NOTE THAT THISP6DEVICE MAY BE USED FOR OUTPUT TO THE TERMINAL AS WELL. .INDENT -5I^^LB:\\ - ^LIBRARY DEVICE. ^CONTAINS THE SYSTEM AND MOST SYSTEM PROGRAMS.O .INDENT -5E^^SD:\\ - ^THE NORMAL SYSTEM DEVICE. ^MOST USERS LOGGING ON WILL HAVENUNSOLICITED INPUT LINE IS TERMINATED (WITH A CARRIAGE RETURN)..SKIP 1 .INDENT -5SOURCE CODE, SOURCE FILE:L .INDEX SOURCEE>THE TEXT OF A PROGRAM AS WRITTEN BY THE PROGRAMMER IS REFERRED1TO AS SOURCE CODE AND IS STORED IN A SOURCE FILE.O5^SOURCE CODE IS USUALLY SUBMITTED TO A TRANSLATOR FORE/CONVERSION INTO OBJECT CODE. SEE "OBJECT CODE".^.SKIP 1 .INDENT -5SPOOL: .INDEX SPOOL .INDEX OUTPUT ?LITERALLY MEANS ^SIMULTANEOUS ^PERIPHERAL ^OPERATION ^ON-^LINE.IA^THIS TERM REFERS TO THE OPERATION OF AN INPUT OR OUTPUT TRANSFERN:WHICH OCCURS ASYNCHRONOUSLY WITH RESPECT TO THE TASK WHICH INITIATES IT.I>^FOR EXAMPLE, OUTPUT TO THE LINE PRINTER MAY BE STORED ON DISK,TO BE PRINTED WHEN THE PRINTER IS AVAILABLE./^THUS MORE THAN ONE TASK PRODUCING LINE PRINTERLOUTPUT MAY RUN SIMULTANEOUSLY,9AND THEIR OUTPUTS WILL BE PRODUCED SEQUENTIALLY LATER ON..LM 10;.PAGE;.LM 15I .INDENT -5TASK:O .INDEX TASKA.INDEX PROGRAM;A TASK IS A COMPLETE SET OF INSTRUCTIONS IN MACHINE FORMAT, %READY TO BE EXECUTED BY THE COMPUTER.T5^WHILE IT IS OFTEN SAID THAT A USER "RUNS A PROGRAM",H/WHAT IS ACTUALLY RUN IS THE TASK BUILT FROM THET+TRANSLATED PROGRAM SEGMENTS. SEE "PROGRAM".O.SKIP 1E .INDENT -5=TYPE (AS IN FILE TYPE): SEE ^SECTION 3 - ^FILES AND ^DEVICES.R.SKIP 1U .INDENT -5&^^UIC\\ (^USER ^IDENTIFICATION ^CODE):.INDEX ^^UIC\\ .INDEX USERA.INDEX USER FILE {HELLO IRVING\\} SIGN ON TO SYSTEM$^^PASSWORD:\\ PASSWORD IS NOT ECHOED&^^MCR>{EDI}\\ REQUEST THE FILE EDITOR.1^^EDI>{DK2:PROG.FOR}\\ IN RESPONSE TO THE PROMPT,A SPECIFY FILE NAME.B6^^[CREATING NEW FILE]\\ ^SINCE THIS IS A NEW FILE, THE$^^INPUT\\ EDITOR ASSUMES INPUT MODE,, {^^INTEGER A,B}\\ ^USER ENTERS PROGRAM.- {^I=1}\ (SEE ^^EDIT-11\\ MANUAL FOR FULLI {.} DESCRIPTION OF {.} EDITOR COMMANDSU {.} AND TECHNIQUES.)*{{F4P PROG,TI:=DK2:PROG}\\ COMPILE THE PROGRAM, WITHD A LISTING ON THE TERMINAL.^.INDEX ^^TKB\\(^^MCR>{TKB DK2:PROG=PROG}\\ BUILD A TASK(^^MCR>{RUN DK2:PROG$}\\ RUN THE PROGRAM. ) PROGRAM OUTPUT WOULD BE HERE  A)^^PROG - STOP\\ TASK TERMINATION MESSAGE.P,^^MCR>{BYE}\\ EVOKE -81 257 ^DEVICE OFFLINE WHEN OFFLINE REQUEST WAS ISSUED' -82 256 ^INVALID ESCAPE SEQUENCE ' -83 255 ^PARTIAL ESCAPE SEQUENCE" -84 254 ^ALLOCATION FAILURE -85 253 ^UNLOCK ERROR# -86 252 ^WRITE CHECK FAILUREO.FILLN.SKIP 2D!^MAGNETIC TAPE MOUNT ERROR CODES. .INDEX MOUNT.INDEX MAGNETIC TAPE.SKIP 1C*^THESE ERRORS ARE GENERATED WHILE MOUNTING/^^ANSI\\ FILE-STRUCTURED MAGNETIC TAPE VOLUMES,I8AND ARE REPORTED AFTER A ^^MOU\\NT COMMAND, IN THE FORM:.SKIP 1^^MOU -- MOUNT ERROR ACP\\ NNN.SKIP 1NWHERE NNN IS THE ERROR NUMBER..SKIP 1A.TAB STOPS 5 16C^DECIMAL VALUE ^MEANINGA.NOFILLS 6 ^GET COMMAND LINE ERROR 7 ^SYNTAX ERROR 8 ^BAD DEVICE# 11 ^WRONG VOLUME (INCORRECT LABEL)H 12 ^ALL UNITS MUST BE ^T^U16S 13 ^NOT ^^ANSI\\ FORMAT 17 ^PRIVILEGE VIOLATION 18 ^MIXED 9 AND 7 TRACK- 19 ^MESSAGE TASK (^^F11MSG\\) NOT INSTALLED..FILL\\\.APPENDIX 64 then gosub 1000d+100 if pos(a$,"CHAPTER")>1 then gosub 2000 ,110 if pos(a$,"APPENDIX")>1 then gosub 3000 130 goto 802&200 print #4, "\\" : print #4, ".fill" 205 close '210 print "Table of contents extracted" .215 call "SPAWNB"("RNP INTRO.OUT=INTRO.RNO",b)&220 print "Table of contents inserted"221 set upper on(222 input "Output in diablo format ";ck$A225 if ck$="Y" then call "SPAWNB"("RNO INTRO.DIA/SC=INTRO.OUT",b)l>226 if ck$="N" then call "SPAWNB"("RNO INTRO.DOC=INTRO.OUT",b)230 print "Document file ready"A232 if ck$="Y" then call "SPAWNB"("PIP INTRO.DIA,INTRO.OUT/PU",b)IA234 if ck$="N" then call "SPAWNB"("PIP INTRO.DOC,INTRO.OUT/PU",b),A236 call "SPAWNB"("PIP INTRO.OUT;*,INTRO.TMP;*,INTRO.TOC;*/DE",b) 240 exit#1000 pg$=sbs$(a$,pos(a$,"PAGE ")+5) 1010 return '2000 ck$=sbs$(a$,pos(a$,"CHAPTER")+8,1)202001 if asc(ck$)<48 or asc(ck$)>57 then return 2002 a$=sbs$00xq|q=onnnnd(a$,pos(a$,"CH"),9)O2005 pg$=sbs$(a$,9,1)+"-1"2010 b$=a$+" "*2015 input line #3, a$ : input line #3, a$<2016 if pos(a$,chr$(13))>1 then let a$=sbs$(a$,1,len(a$)-1)22017 if pos(a$,chr$(13))=1 then let a$=sbs$(a$,2)2018 a$=sbs$(a$,2,len(a$)-1)2019 if pos(a$," ")=1 then 2018l2020 gosub 5000T2021 print #4, " "2022 print #4, ou$;pg$2025 print ou$;pg$ 2030 return (3000 ck$=sbs$(a$,pos(a$,"APPENDIX")+9,1)03001 if asc(ck$)<65 or asc(ck$)>75 then return &3002 a$=sbs$(a$,pos(a$,"APPENDIX"),10)3005 pg$=sbs$(a$,10,1)+"-1"s3010 b$=a$+" "*3015 input line #3, a$ : input line #3, a$<3016 if pos(a$,chr$(13))>1 then let a$=sbs$(a$,1,len(a$)-1)23017 if pos(a$,chr$(13))=1 then let a$=sbs$(a$,2)3018 a$=sbs$(a$,2,len(a$)-1)3019 if pos(a$," ")=1 then 3018"3020 gosub 50003022 print #4, " "3023 print #4, ou$;pg$3025 print ou$;pg$ 3026 nf=1$ 3030 return <4000 if pos(a$,chr$(13))>1 then let a$=sbs$(a$,1,len(a$)-1)4002 if nf>0 then return 4005 a$=sbs$(a$,2,len(a$)-1)4010 if pos(a$," ")=1 then 4005$,4015 if asc(sbs$(a$,1,1)) > 53 then return ,4016 if asc(sbs$(a$,3,1)) > 57 then return 4020 b$=" "4025 gosub 5000$4030 print #4, ou$;pg$4035 print ou$;pg$ 4040 return 5000 ! fix <, > and &$'5005 jj=pos(a$,"<") : if jj<1 then 50150=5010 a$=seg$(a$,1,jj-1)+"("+seg$(a$,jj+1,len(a$)) : goto 50055'5015 jj=pos(a$,">") : if jj<1 then 5025=5020 a$=seg$(a$,1,jj-1)+")"+seg$(a$,jj+1,len(a$)) : goto 50150'5022 jj=pos(a$,"&") : if jj<1 then 5025,=5023 a$=seg$(a$,1,jj-1)+"+"+seg$(a$,jj+1,len(a$)) : goto 5015$5025 k=len(a$)+len(b$)5030 j=k-2*int(k/2)$5035 if j=1 then let a$=a$+" "05040 ou$=b$+a$+dd$ 5045 return 4030 print #4, ou$;pg$4035 print ou$;pg$ 4040 return 5000 ! fix <, > and &$'5005 jj=pos(a$,"<") : if jj<1 then 50150=5010 a$=seg$(a$,1,jj-1)+"("+seg$(a$,jj+1,len(a$)) : goto 50055'5015 jj=pos(a$,">") : if jj<1 then 5025=5020 a$=seg$(a$,1,jj-1)+")"+seg$(a$,jj+1,len(a$)) : goto 50150'5022 jj=pos(a$,"&") : if jj<1 then 5025,=5023 a$=seg$(a$,1,jj-1)+  LIST-11 K Version 3.02   / LIST-11   L LIST-11 is a program for reformatting ASCII files. It can L put up to 10 columns of text on a single page. To run LIST-11,  the user types:  * LIS [FILEOUT=FILEIN/SWITCHES]  ? Where the file specifications should be in the form:  B outdev:outfile.outext=indev:infile.inext/switch:value   e Switches  L The number of columns which should be used is specified by L the /COlumns switch. Its value is a number from 0 to 10, which L indicates the number of desired columns. If the number is 0, as L many columns as will fit will be used, up to a maximum of 10. L The number of columns is reset to zero after every file is listed L and must be specified anew if it should be set otherwise. Paper L sizes (LEngth and WIdth) are not changed between listings, so L that these need be specified only where they must be different L from the default, or on the first listing. All other switches # are reset between files. 0 aL The /TR switch, if present, causes lines which are too wide L for the specified number of columns to be truncated. If it is L not specified, lines which are too long will be split and all but 6 the first part will be preceded by a "-->".  tL The /NH switch, if present, causes the two line LIST-11 header to be omitted.  tL The /FF switch, if present, causes a form feed in the input L file to start a new column in the output file. If the /FF switch F is not specified, form feeds in the input file are ignored.  tL The /CT switch, if present, causes a tab to be changed into ; 00qqonnl]ld a space, instead of skipping to the next column. p eL The output page size may be specified by the /WIdth and L /LEngth switches, which specify the number of available print co- L lumns and lines, respectively. Once a page size has been speci- L fied, it is retained until specifically changed by another switch  specification.  uL The /PAuse switch will cause output to stop at the end of L each page. The output will be restarted when something is typed L to the command input dataset. List-11 will prompt for the input ( by typing the special prompt:  c L LIST-11 PAGE 2 K Version 3.02 l e i LIST PAUSE>  iL after which any input is legal and serves only to end the pause. L A control-Z at a pause ends the current listing and will cause L LIST-11 to prompt with another "LIS>" for a new set of file spec-  ifiers.  rL The /ED switch will cause the top of forms character to be 3 changed from a form feed to a control D.  GL The /RO:n switch causes the output to force each page to be L n lines long. This is intended for use with roll paper. In ad- L dition, the form feeds are replaced by a line of "=" to delimit L the pages. Both the switch and n must be specified for each  file.  L The /UC switch causes lower case letters to be translated to L the corresponding upper case characters. This is helpful when L listing on a device not containing the full 96-character ASCII  character set.  L The /NP switch causes pagination to be suppressed; that is, no L headers are produced and no formfeeds or other page dividers are L inserted in the file. This mode may be used (possibly in con- L junction with the /RL:nnn switch) to produce a file of known max-  imum line width. c e n Example: r e MCR>LIS % LIS>LP:=PROG.SRC/TR/CO:3 . MCR>LIS LP:=MANUAL.DOC/NH/FF/CO:2  L The first file, DK:PROG.SRC, is printed on the line printer, in a L 3 columns per page format. The file MANUAL.DOC is then printed L without a header and each "page" beginning at the top of the next L column. This is useful for listing RUNOFF output files in a two # columns per page format. m line width. c e n Example: r e MCR>LIS % LIS>LP:=PROG.SRC/TR/CO:3 . MCR>LIS LP:=MANUAL.DOC/NH/FF/CO:2  L The first file, DK:PROG.SRC, is printed on the line printer, in a L 3 columns per page format. The file MANUAL.DOC is then printed L without a header and each "pag.PAPER SIZE 58,75L.LEFT MARGIN 10R.RIGHT MARGIN 75.TITLE ^^LIST-11\\.SUBTITLE ^VERSION 3.02E .NUMBER 1C.FILL .SPACING 1.CENTER> ^^LIST-11\\ .SKIP 2P .INDENT 5T:^^LIST-11\\ IS A PROGRAM FOR REFORMATTING ^^ASCII\\ FILES.6^IT CAN PUT UP TO 10 COLUMNS OF TEXT ON A SINGLE PAGE.$^TO RUN ^^LIST-11\\, THE USER TYPES:.SKIP 1M .INDENT 2F!^^LIS [FILEOUT=FILEIN/SWITCHES]\\W.SKIP 1H5^WHERE THE FILE SPECIFICATIONS SHOULD BE IN THE FORM:T.SKIP 1^ .INDENT 2E5OUTDEV:OUTFILE.OUTEXT=INDEV:INFILE.INEXT/SWITCH:VALUEL.SKIP 2N ^SWITCHEST.SKIP 15 .INDENT 5L?^THE NUMBER OF COLUMNS WHICH SHOULD BE USED IS SPECIFIED BY THE17/^C^OLUMNS SWITCH. ^ITS VALUE IS A NUMBER FROM 0 TO 10,\CWHICH INDICATES THE NUMBER OF DESIRED COLUMNS. ^IF THE NUMBER IS 0,0@AS MANY COLUMNS AS WILL FIT WILL BE USED, UP TO A MAXIMUM OF 10.;^THE NUMBER OF COLUMNS IS RESET TO ZERO AFTER EVERY FILE IS\@LISTED AND MUST BE SPECIFIED ANEW IF IT SHOULD BE SET OTHERWISE.E^PAPER SIZES (^L^ENGTH AND ^W^IDTH) ARE NOT CHANGED BE00qq=onnnndTWEEN LISTINGS,CASO THAT THESE NEED BE SPECIFIED ONLY WHERE THEY MUST BE DIFFERENTFBFROM THE DEFAULT, OR ON THE FIRST LISTING. ^ALL OTHER SWITCHES ARERESET BETWEEN FILES..SKIP 10 .INDENT 5HB^THE /^T^R SWITCH, IF PRESENT, CAUSES LINES WHICH ARE TOO WIDE FOR0THE SPECIFIED NUMBER OF COLUMNS TO BE TRUNCATED.?^IF IT IS NOT SPECIFIED, LINES WHICH ARE TOO LONG WILL BE SPLITR7AND ALL BUT THE FIRST PART WILL BE PRECEDED BY A "-->".D.SKIP 1T .INDENT 5P>^THE /^N^H SWITCH, IF PRESENT, CAUSES THE TWO LINE ^^LIST-11\\HEADER TO BE OMITTED.D.SKIP 1F .INDENT 5E8^THE /^F^F SWITCH, IF PRESENT, CAUSES A FORM FEED IN THE4INPUT FILE TO START A NEW COLUMN IN THE OUTPUT FILE.4^IF THE /^F^F SWITCH IS NOT SPECIFIED, FORM FEEDS INTHE INPUT FILE ARE IGNORED.O.SKIP 1R .INDENT 5F9^THE /^C^T SWITCH, IF PRESENT, CAUSES A TAB TO BE CHANGEDF5INTO A SPACE, INSTEAD OF SKIPPING TO THE NEXT COLUMN.U.SKIP 1S .INDENT 5 :^THE OUTPUT PAGE SIZE MAY BE SPECIFIED BY THE /^W^IDTH AND9/^L^ENGTH SWITCHES, WHICH SPECIFY THE NUMBER OF AVAILABLET<PRINT COLUMNS AND LINES, RESPECTIVELY. ^ONCE A PAGE SIZE HAS9BEEN SPECIFIED, IT IS RETAINED UNTIL SPECIFICALLY CHANGED BY ANOTHER SWITCH SPECIFICATION..SKIP 1W .INDENT 5 A^THE /^P^AUSE SWITCH WILL CAUSE OUTPUT TO STOP AT THE END OF EACHI;PAGE. ^THE OUTPUT WILL BE RESTARTED WHEN SOMETHING IS TYPEDHTO THE COMMAND INPUT DATASET.F8^LIST-11 WILL PROMPT FOR THE INPUT BY TYPING THE SPECIALPROMPT:A.SKIP 1A^^LIST PAUSE>\\ .SKIP 1D@AFTER WHICH ANY INPUT IS LEGAL AND SERVES ONLY TO END THE PAUSE.@^A CONTROL-^Z AT A PAUSE ENDS THE CURRENT LISTING AND WILL CAUSE=^^LIST\\-11 TO PROMPT WITH ANOTHER "^L^I^S>" FOR A NEW SET OFOFILE SPECIFIERS..SKIP 1 .INDENT 5I=^THE /^E^D SWITCH WILL CAUSE THE TOP OF FORMS CHARACTER TO BE )CHANGED FROM A FORM FEED TO A CONTROL ^D.T.SKIP 1N .INDENT 5I8^THE /^R^O:N SWITCH CAUSES THE OUTPUT TO FORCE EACH PAGE2TO BE N LINES LONG. ^THIS IS INTENDED FOR USE WITH5ROLL PAPER. ^IN ADDITION, THE FORM FEEDS ARE REPLACEDN7BY A LINE OF "=" TO DELIMIT THE PAGES. ^BOTH THE SWITCHL&AND N MUST BE SPECIFIED FOR EACH FILE..SKIP 1C .INDENT 5T<^THE /^U^C SWITCH CAUSES LOWER CASE LETTERS TO BE TRANSLATED<TO THE CORRESPONDING UPPER CASE CHARACTERS. ^THIS IS HELPFUL=WHEN LISTING ON A DEVICE NOT CONTAINING THE FULL 96-CHARACTERT^^ASCII\\ CHARACTER SET..SKIP 1 >^THE /^N^P SWITCH CAUSES PAGINATION TO BE SUPPRESSED; THAT IS,?NO HEADERS ARE PRODUCED AND NO FORMFEEDS OR OTHER PAGE DIVIDERS =ARE INSERTED IN THE FILE. ^THIS MODE MAY BE USED (POSSIBLY INI:CONJUNCTION WITH THE /^^RL\\:NNN SWITCH) TO PRODUCE A FILEOF KNOWN MAXIMUM LINE WIDTH..SKIP 2E ^EXAMPLE:C.SKIP 1L .INDENT 2E ^^MCR>LIS .INDENT 2LIS>LP:=PROG.SRC/TR/CO:3 .INDENT 2C!MCR>LIS LP:=MANUAL.DOC/NH/FF/CO:2G.SKIP 1IC^T\\HE FIRST FILE, ^^DK:PROG.SRC\\, IS PRINTED ON THE LINE PRINTER,SIN A 3 COLUMNS PER PAGE FORMAT.P9^THE FILE ^^MANUAL.DOC\\ IS THEN PRINTED WITHOUT A HEADERE>AND EACH "PAGE" BEGINNING AT THE TOP OF THE NEXT COLUMN. ^THIS>IS USEFUL FOR LISTING ^^RUNOFF\\ OUTPUT FILES IN A TWO COLUMNSPER PAGE FORMAT.H) TO PRODUCE A FILEOF KNOWN MAXIMUM LINE WIDTH..SKIP 2E ^EXAMPLE:C.SKIP 1L .INDENT 2E ^^MCR>LIS .INDENT 2LIS>LP:=PROG.SRC/TR/CO:3 .INDENT 2C!MCR>LIS LP:=MANUAL.DOC/NH/FF/CO:2G.SKIP 1IC^T\\HE FIRST FILE, ^^DK:PROG.SRC\\, IS PRINTED ON THE LINE PRINTER,SIN A 3 COLUMNS PER PAGE FORMAT.P9^THE FILE ^^MANUAL.DOC\\ IS THEN PRINTED WITHOUT A HEADERE>AND EACH "PAGE" BEGINNING AT THE TOP OF THE NEXT COLUMN. ^THIS>IS USEFUL FOR LISTING ^^RUNOFF\\ OUTPU         LUT 0 A task to list the Logical Unit Table of a task K LUT can be used to display information as to any files currently opened by a given task.  Information listed includes:# DEVICE, UIC AND FILE SPECIFICATION6 ACCESS COUNT, # OF RETRIEVAL POINTERS AND WINDOW SIZE. FIRST BLOCK NUMBER AND TOTAL NUMBER OF BLOCKS  Calling sequence:  MCR>LUT XXXXXX/TI:TTN6 Where XXXXXX=Task Name and TTN is the TI for the task00qqonnl]ld?10 ! PROGRAM TO PRODUCE DOCUMENTATION FOR ALL BORGER'S PROGRAMS#100 DIM NA$[40]V(40),A$[140]V,F(40)104 OPEN #3, "MANUAL.DIR/RO"105 IF END #3 THEN 125107 N=1110 INPUT LINE #3, NA$(N)111 K=POS(NA$(N),",R")6112 IF K>0 THEN LET F(N)=1 : NA$(N)=SBS$(NA$(N),1,K-1) 115 N=N+1 120 GOTO 110 125 CLOSE 3 126 N=N-1127 PG=1#128 OPEN #4, "MANUAL.TMP/WR/LN:120"%129 OPEN #5, "CONTENTS.TMP/WR/LN:120"J130 PRINT #5 : PRINT #5 : PRINT #5, TAB(20); "UTILITY ROUTINES" : PRINT #5131 FOR I=1 TO N132 J=POS(NA$(I),"]") : J=J+1UD133 IF F(I)=1 THEN 137 : ! SKIP INITIAL HEADER IF RUNOFF OUTPUT FILE134 PRINT #4, CHR$(12)H136 PRINT #4, TAB(64);"PAGE ";FRMT$(PG,3);" ";SEG$(NA$(I),J,LEN(NA$(I)))N137 PRINT #5 : PRINT #5,TAB(20);SEG$(NA$(I),J,LEN(NA$(I)));TAB(40);FRMT$(PG,4)4138 IF F(I)=1 THEN LET PG=PG-1 : ! ADJUST PAGE COUNT#140 OPEN #3,NA$(I)+".DOC/RO/LN:120"N145 PRINT NA$(I)150 IF END #3 THEN 300160 INPUT LINE #3, A$I170 TP=POS(A$,CHR$(12))+1",172 IF TP>1 THEN LET A$=SEG$(A$,TP,LEN(A$))m175 IF TP>1 THEN LET PG=PG+1 : PRINT #4, CHR$(12);TAB(64);"PAGE ";FRMT$(PG,3);" ";SEG$(NA$(I),J,LEN(NA$(I)))NF176 IF SBS$(NA$(I),1,1)=CHR$(14) THEN LET A$=SEG$(NA$(I),2,LEN(NA$(I))177 IF F(I)=1 THEN 1804178 IF SBS$(A$,1,1)<>CHR$(9) THEN LET A$=CHR$(9)+A$180 PRINT #4, A$ 190 GOTO 160 300 CLOSE 3= 305 PG=PG+1S 310 NEXT I320 PRINT #5, CHR$(12) 330 CLOSE C340 B=0 : CALL "SPAWNB"("PIP MANUAL.DOC=CONTENTS.TMP,MANUAL.TMP",B)%350 CALL "SPAWNB"("PIP *.TMP;*/DE",B) (355 CALL "SPAWNB"("PIP MANUAL.DOC/PU",B) 360 EXIT ET PG=PG+1 : PRINT #4, CHR$(12);TAB(64);"PAGE ";FRMT$(PG,3);" ";SEG$(NA$(I),J,LEN(NA$(I)))NF176 IF SBS$(NA$(I),1,1)=CHR$(14) THEN LET A$=SEG$(NA$(I),2,LEN(NA$(I))177 IF F(I)=1 THEN 1804178 IF SBS$(A$,1,1)<>CHR$(9) THEN LET A$=CHR$(9)+A$180 PRINT #4, A$ 190 GOTO 160 300 CLOSE 3= 305 PG=PG+1S 310 NEXT I320 PRINT #5, CHR$(12) 330 CLOSE C340 B=0 : CALL "SPAWNB"("PIP MANUAL.DOC=CONTENTS.TMP,MANUAL.TMP",B)%350 CALL "SPAWNB"("PIP *.TMP;*/DE",B) (355 CALL "SPAWNB"("PIP MANUAL.DO# UTILITY ROUTINES+ ARAP 1+ DFX 14+ DSCCPY 15+ DSCDIR 20+ DSCFORMAT 22+ FAC 28+ FDU 29+ FHD 30+ FLB 31+ FORUTL 43 + INDEX 45 + INF 48 + LIST 54 + LUT 56 + MASSAGE 57 + ORC 58 + PAG 61 + PLOTSUBS 62 + QUX 69 + RCV 71 + RNP 72 + SPELL 74 + SPY 79 + SRD 82 + TASKER 93 + TPC 94 + TWOPAGE 100 + VOL 102 + XMT 103   QL PAGE 1 ARAP ARAP.OLB PAGE 11 CSIFP.MAC -- USE CSI TO PARSE FILE NAME STRINGS  WRITTEN DATE 10/22/77  REVI Y CALL: # CALL CSIFP(CIV,IPT,CSIBLK,NER)D WHERE: CIV IS INPUT STRING TO PARSE* IT IS TERMINATED BY A BLANK,TAB,OR NULL, IPT SUBSCRIPT INTO CIV UPPED TO STRING END# CSIBLK STANDARD CSI CONTROL BLOCK NER 0 => OK ! 1 => ERROR DURING SYNTAX PARSE # 2 => ERROR DURING SEMANTIC PARSE0 3 => STRING > 33 CHARACTERS                = TH00qq=onnnndIS ROUTINE IS CALLED FROM DBKOF (THE USER INTERFACE). SEET DBKOF.FTN FOR COMMENTS.2  CALL DBKOF4 (LUN, MODE, NER) S# LUN = LOGICAL UNIT NUMBER TO OPEN  MODE = 0-3 (SEE DBKOF)& NER = 0 IF OK, FCS ERROR CODE IF NOT U **NOTE**7 DBKOF4 IS CALLED FROM DBKOF.FTN - DBKOF.FTN FILLS INS= THE FILE DESCRIPTOR BLOCKS BY CALLING FPARS. DBKOF4 SHOULDA@ NOT BE CALLED IN ANY OTHER CONTEXT OR RESULTS WILL BE UNKNOWN.L PAGE 2 ARAP R ARAP.OLB PAGE 2# + DBKRD/WR - DISK BLOCK READ/WRITE. ' REFER ALSO TO DBKRD.FTN AND DBKCF.MACO@ AND - X1LU.FTN,X1DR.MAC,X1EF.FTN FOR RECORD ORIENTED ROUTINES.  O! CALL DBKWR (LUN, NR, IBUF, NWR) & CALL DBKRD (LUN, NR, IBUF, NWR, NWA) . LUN = I*2 LOGICAL UNIT NUMBER OF FILE TO R/W9 NR = I*2 VIRTUAL BLOCK NUMBER IN FILE TO BEGIN TRANSFER 1 NOTE THAT NR IS UPDATED ON EXIT FROM DBKRD/WRN0 ON EXIT FROM DBKRD NR = NR + (NWR-1)/256 + 18 WHERE 256 IS THE NUMBER OF I*2 WORDS PER DISK BLOCK.@ IBUF = INPUT/OUTPUT AREA, CAN BE INTEGER OR REAL, BUT NOT BYTE' I.E. MUST BE ON EVEN BYTE BOUNDARY.N> NWR = I*2 NUMBER OF I*2 WORDS TO READ/WRITE, BEGINNING AT NR( ABOVE. 1 DISK BLOCK = 256 I*2 WORDS.9 NWA = RETURNED ONLY FROM DBKRD. I*2 NUMBER OF I*2 WORDSM5 ACTUALLY READ. THIS IS USEFUL FOR CHECKING END-OFF6 FILE CONDITIONS. IF THE END OF FILE IS REACHED NWA6 WILL BE LESS THAN NWR OR 0 IF A BLOCK IS REQUESTED# THAT IS BEYOND THE END-OF-FILE.M **NOTES**P2 THERE ARE NO ERROR RETURNS. IF AN ERROR OCCURS6 DURING THE OPERATION THE PROGRAM WILL TERMINATE VIA9 THE TRAP INSTRUCTION - CAUSING F4P TO LOG THE MESSAGE.T B/ THE COMPATIBLE CLOSE ROUTINE TO DBKRD/WR IS DBKCF. => CALL DBKCF (LUN) =< K2 DBKRD/WR ARE IN DB2:[350,2]ARAP.OLB ALONG WITH: DBKOF (OPEN), DBKCF AND THEIR RELATED SUPPORT ROUTINES. N F6 FOR THOSE DOING OVERLAYS, THE FOLLOWING IS WHAT IS. NECESSARY TO BE EXTRACTED FROM THE LIBRARY. - FOR THE OPEN OVERLAY......H . OP1: .FCTR [350,2]ARAP/LB:DBKOF:DBKOF1 - OP2; OP2: .FCTR [350,2]ARAP/LB:CSIFP:FPARS:FPARS1:FPARS2 - OP3 5 OP3: .FCTR [350,2]ARAP/LB:FFNAM:FFVERN:FPCFS:MONTRY   FOR THE ROOT SEGMENT......R R* DISK1: .FCTR [350,2]ARAP/LB:DBKRD:FPUICT  FOR THE CLOSE OVERLAY A$ CLOSE1: .FCTR [350,2]ARAP/LB:DBKCF A FOR UNOVERLAYED TASKS.... . N -  OL PAGE 3 ARAP O ARAP.OLB PAGE 3& DELET.MAC -- FORTRAN CALLABLE DELETE AUTHOR: LEN DATE WRITTEN: 16-NOV-78 C [ , R L S : CALL:R CALL DELETE (LUN, NERR)[ WHERE: LUN = FILE'S LOGICAL UNIT % NERR = ERROR CODE 0=OK, NON-0=ERRORR         & FBDMOD.MAC -- MODIFY FDB BEFORE OPEN AUTHOR: A. BARR DATE WRITTEN: 4/25/77 DATE REVISED: 04/29/77., 10/30/78 LEN - ADDED FIX AND VAR OPTIONS       CALL: > CALL FBDMOD(LUN, ['NC'!'CC'] [,'SP'!'NS'] [,'LR',LRECL] 1 ['FI'], ['VA'])E WHERE: LUN IS LUN # OF LUN TO MODIFY- NC=> NO CARRIAGE CONTROL CC=> CARRIAGE CONTROLD SP=> SPANNED BLOCKS  NS=> NO SPANNED BLOCKS/ LR=> MAKE VAL OF NEXT PARM INTO LRECL FOR LUN+ PARMS OTHER THAN LUN MAY BE IN ANY ORDERM FI=> SET FIXED LENGTH RECORD! VA=> SET VARIABLE LENGTH RECORD4 / L PAGE 4 ARAP  ARAP.OLB PAGE 43 *FFNAM.MAC -- FETCH FILE NAME INFORMATION FROM FDBR WRITTEN DATE 10/27/77 REVISED DATE   CALL:O CALL FFNAM(LUN,CIV,NC) WHERE: LUN LUN # OF FILE 0 CIV RETURNED AS DEV:FILE-NAME.FILE-TYPE;VER-NO NC NC IN CIV K - F X A I      ) FPARS2.MAC -- USE .PARSE TO FILL IN FDB  AUTHOR: A. BARR DATE WRITTEN: 12/27/77L1 DATE REVISED: 6-FEB-78 FOR BETTER UIC HANDLING        CALL: # CALL FPARS2(LUN,DSD,DFNB,NER)B WHERE: FL 00qqonnl]ld PAGE 5 ARAP I ARAP.OLB PAGE 58 FPUICT DEFINE STORAGE AREA FOR UIC'S /1 WORD PER UINT       " GATTR.MAC -- GET FILE ATTRIBUTES AUTHOR: J. LEONARDA DATE WRITTEN: 09-AUG-79  R M - S P E CALL:I& CALL GATTR (LUN, IFRTYP, IFRATT) WHERE: LUN = FILE'S LOGICAL UNIT7/ IFRTYP = RECORD TYPE BYTE BUT RETURNED AS I*2 " IFRATT = RECORD ATTRIBUTES (I*2) F        + CALL GETUSE(IUSER)$ RETURNS NAME OF USER DOING CALLING< VERSION OF GETUSR FROM JACKSON LABS MODIFIED BY LEN 3/9/79& SO TASK DOES NOT HAVE TO PRIVLEDGED. @ MODIFIED FOR IAS VS3.0. TASK NOW HAS TO BE PRIVLEDGED IN ORDER TO GET .CRJOB. LEN 4/2/79  - - -L PAGE 6 ARAP H ARAP.OLB PAGE 6+ GSTAT.MAC -- PLUG STATISICS BLOCK ADDRESSU AUTHOR: J. LEONARD= DATE WRITTEN: 08-MAY-78        CALL:A CALL GSTAT (LUN, STBLK)E WHERE: LUN = FILE'S LOGICAL UNITT& STBLK = I*2 STAT BLOCK, 5 WORDS LONG 9         D I = IBLUF (BCHR, BVEC): FIND BCHR IN BVEC, IF ENCOUNTER A ZERO BYTE IN BVEC THENC TERMINATE WITH I = -1, ELSE I = POSITION IN BVEC WHERE MATCH MADE     L PAGE 7 ARAP C ARAP.OLB PAGE 7) ICFGS.MAC -- CHARACTER GET/PUT ROUTINES AUTHOR: S. F. HEFFNER DATE WRITTEN: 5/2/76T/ DATE REVISED: 12/28/76,7/06/77 FOR ASCII USEL I  T; ***NOTE--THE FOLLOWING ROUTINES (ICHGS THRU ICSPC) ARE NOT 9 ***REENTRANT AND CAN'T BE, SINCE GNXCH/PNXCH DEPEND UPON,: ***ICHGS ETC. TO SET UP AND STORE ARGUMENTS ACROSS CALLS. ,. ***ALSO, GNXCH AND PNXCH DON'T PRESERVE REGS!     ! ICHGS--INITIALIZE CHAR GET SCAN  GNXCH--GET NEXT CHAR% ICFGS--ICHGS W/SPECIFIED MAX LENGTH7 ICSGC--ICHGS+GNXCH R! ICHPS--INITIALIZE CHAR PUT SCAN. PNXCH--PUT NEXT CHAR ICSPC--ICHPS+PNXCH D CALL ICHGS(VEC,IICP,ICP) CALL GNXCH(CHAR) CALL ICFGS(IPE,VEC,IICP,ICP) CALL ICSGC(VEC,IICP,ICP,CHAR)* CALL ICHPS(VEC,IICP,ICP) CALL PNXCH(CHAR) CALL ICSPC(VEC,IICP,ICP,CHAR)A WHERE: VEC = INTEGER*2 VECTOR IICP = INITIAL CHAR POSITION ICP = CHAR POSITION  IPE = MAX NO. OF CHARS CHAR = INTEGER*2 VAR FOR CHARG NL PAGE 8 ARAP P ARAP.OLB PAGE 8 ICMP - LOGICAL COMPARE 09-JAN-79H P H" LOGICAL COMPARE OF TWO I*2 WORDS N = ICMP( I1, I2)A WHERE N=0 IF I1=I2C N=1 IF I1>I2C N=-1IF I1 STR2, RETURN 4.) MOD00qq=onnnndE 2: FOR LGTH OF SHORTER STRING, IF STR1 = STR2, RETURN 8.! IF STR1 <> STR2, RETURN 0. MODE 3:4 IF STR2 A SUBSTR OF STR1, RETURN THE STARTING+ POSITION IN STR1 WHERE STR2 APPEARS.S IF NOT, RETURN 0.) MODE 4: DEFINING A DELIMITER AS ANYR% ASCII CHAR .NE. (0-9) OR (A-Z) 8 IF STR2 IS A DELIMITED SUBSTR OF STR1 (DELIMITERS- NOT REQUIRED AT START OR END OF STR1),.1 RETURN THE STARTING POSITION IN STR1 WHERE> STR2 APPEARS. IF NOT, RETURN 0. 7 NOTE: NMWS SEQUENCE S1A,...,S2L IS REQUIRED BY SETUP1 CODE BELOW.N  L PAGE 10 ARAP  ARAP.OLB PAGE 10S LCKCV.MAC -- CHECK BIT VALUE AUTHOR: LEN DATE WRITTEN: 23-JAN-78 A I A N FUNCTION LCKCV (IBIT, IVEC)T$ IBIT = BIT TO CHECK (STARTS AT 0) IVEC = BIT STRING E RETURNS 1 IF SET, 0 IF NOT    1 MODFD.MAC -- MODIFY FDB FOR 0 BLOCK PRINT FILESE AUTHOR: J. LEONARDT DATE WRITTEN: 03-NOV-77 N S . S I E R CALL:U CALL MODFD (LUN, NBLKS)  WHERE: LUN = FILE'S LOGICAL UNIT 2 NBLKS = NUMBER OF BLOCKS ALLOCATED (FROM DIR/FU) PL PAGE 11 ARAP - ARAP.OLB PAGE 11- MONTRY MONITOR TRACE IN & TRACE OUT ROUTINEK USED WHEN DEBUGGEG NOT IN I/ MONTRI CALLED BY FORTRAN CALLABLE ASSEM RTNS. JSR R1,MONTRI- .BYTE NPAR ;# PARMS EXPECTED BY ASSEM RTN $ ;NPAR IS -1 IF VAR NUM OF ARGS. MONTRI POPS R5 FOR NON VARIABLE PARM LIST .BYTE 0 ;RES FOR FUTURE USE:& .RAD50 /ASSEM NAME(MUST BE 2 WORDS/ U2 MONTRI WILL BUILD TRACE BACK CHAIN AND SAVE REGS 6 MONTRO WILL RESTORE REGS(MONTRO IS CALLED INSTEAD OF+ ASSEM ROUTINE DOING AN RTS PC TO RETURN)T POPS TRACE BACK CHAIN RESTORES REGS 0-4 H' MONTRF FUNCTION RETURN-SAME AS MONTROY EXCEPT DOESN'T RESTORE R0         " NSCOPE.MAC - FIND TERMINAL SPEED AUTHOR: LENV DATE WRITTEN: 20-DEC-78O R O O A B N = NSCOPE (LUN). WHERE LUN = LOGICAL UNIT NUMBER OF TERMINAL" N = 0 IF NOT SCOPE, 1 IF IT IS UL PAGE 12 ARAP E ARAP.OLB PAGE 12 OPFID.MAC --OPEN ON FILE IDT AUTHOR: J. LEONARDA DATE WRITTEN: 12-MAY-78  T F T CALL:N CALL OPFID (LUN, ID, NERR) WHERE: LUN = FILE'S LOGICAL UNIT  ID = 3 WORD FILE ID- NERR = FCS ERROR CODEU R        D CALL STBLK (BUF1, BUF2, NCH) S WHERE - BUF1 = INPUT BUFFER6 BUF2 = OUTPUT BUFFER (BUF1 CAN BE THE SAME AS BUF2), NCH = # OF CHARACTERS TO STRIP OUT BLANKS 3 ALSO REFER TO STBLK.FTN FOR TRNASPORTABLE VERSIONO P    BLOCKED DISK READ WRITE U CALL X1DR (ID, NR, NWR, IOAR)N WHERE -# ID = 6 WORD ID BLOCK (SEE X1LU)L" NR = RECORD # TO BEGIN READING NWR = # OF I*2 WORDS TO READ% IOAR = BUFFER AREA TO ACCEPT DATAD  CALL X1DW (ID, NR, NWW, IOAR)D WHERE - ID = 6 WORD ID BLOCK NR = RECORD # TO BEGIN WRITE NWW = # I*2 WORDS TO WRITE IOAR = OUTPUT AREA H5 SAME AS ABOVE BUT DATA IS TRANSFERRED FROM IOAR TOR) THE BUFFER AREA AND EVENTUALLY TO DISKP  ** NOTE **8 NR IS ASSUMED TO BE I*2 UNLESS BIT 0 IS SET IN ID(5). SEE X1LU. DL PAGE 13 ARAP F ARAP.OLB PAGE 138 X1EFBY.MAC -- FETCH EOF BLOCK NO. AND FIRST FREE BYTE. AUTHOR: J. LEONARDE DATE WRITTEN: 02-NOV-78   = C  O G CALL:- CALL X1EFBY (LUN, ILOBLK, IHIBLK, IFBY)U WHERE: LUN = FILE'S LOGICAL UNITS& ILOBLK = LOW ORDER WORD OF EOF BLOCK% IHIBLK = HI ORDER WORD OF EOF BLOCK IFBY = FIRST FREE BYTE D K PAGE 14 DFX   8 ...DFX is an RSX program to do absolute disk patches on5 to your current SY: disk. calling00qqonnl]ld sequence is via a   MCR>DFX T? In response to "ENTER DISK BLOCK #" type block number in octal=< or "E" to exit to RSX. The block will be read in and can be2 displayed by the "L" command. display is on LUN 6 B Note that LUN 2 is used for disk reads and LUN 4 for disk writes,? as a protective measure LUN 4 is assigned to pseudo device XX: @ and must be re-assigned by the user before to enable write-back FF Also note that LUN 6 is used for full block listings. it is initiallyF set to TI: but can be re-assigned to a disk, and will be in the users UIC as "DFX.DAT"t # In response to "DFX>" prompt, typei  L to list referenced blocki9 W to write the currently referenced block back onto diskL N to read the next blocki; R to reread the current block (overwriting current buffer)c B to read the previous blockt7 F for full-word addresses (defaults to byte addresses)r* H for half-word (byte) addresses in block& T to type out the block as ascii text5 S to set/clear flag for spooling output file to LP0:d> if LUN 6 is a disk, the file will be spooled on exit or when. the spooling flag is cleared by the operator5 K to calculate checksum of first 255. words of blockc E to exit to the monitorN + there are 4 M(odify) type commands, where t< M=the byte offset of the buffer word to be listed/modified9 Note that for M commands, M must be even, 0 <= M < 1000s 6 M/000000 change buffer word to the octal value 0000002 M,LLL change buffer word to rad50 vaLue of "LLL"0 M;AA change buffer word to ascii value of "AA"2 M: display buffer word in octal, rad50 and ascii  < there are 4 commands which alter the ablsolute block number A D,N to change default block number for read and write to N with-e> out changing the contents of the buffer in core. this should/ permit moving data from one block to another. ; A,N to read and list block N (N absent implies next block)n= C,N to read and list all blocks up to and including block N. % (N absent implies to end of disk.)a7 P,N changes the high-order block number from the disk.e: no I/O will be done, but the block number will be copied6 from the high-order and low-order blocks to relative> words 400 & 401 (byte offset 1000 & 1002) past the IO buffer8 where the single-word examining commands can see them.  m mN PAGE 15 DSCCPY DSCCPY.DOCb = DSCCPY - FORTRAN program to copy just a few files from a DSCN+ tape without restoring the entire volume.P  William D. Burton, Jr.- Texas Research Institute of Mental Sciences, 1300 Moursundm Houston, Texas 77030m (713) 797-1976 ext 501e  Modifications: = 3-Nov-81, WB-005, Put confirmation of files copied on LUN-5h so it can go to some othero& device. Add count of files copied.; 2-Nov-81, WB-004, Add option to select files to be copied ! on the basis of creation date.P. 28-Aug-81, WB-003, Do not unload after rewind* 22-Jun-81, WB-002, Fix overwrite of files( 22-Jun-81, WB-001, Allow 1600 BPI tape. A I needed a program to copy some files from a DSC (Disk-Save-and-sG Compress) tape from a large disk onto an RK-05. DSCCPY is the result.E It was written in FORTRAN (Fortran-IV-Plus v 2.51) and MACRO and hast& run under RSX-11M V3.0 (sic) and IAS.  USING THE PROGRAM:  B This program is controlled by user responses to prompts. It willF not accept indirect command files). The input tape(s) are UNMOUNTED.J The reels of a multi-reel set do not have to be read in sequence PROVIDED6 that the data file being copied does not cross reels. $ 1. The Input tape must be UNMOUNTED $ 2. The Output Disk must be MOUNTED. ( 3. Run DSCCPY and answer the questions: " a. prompt = ENTER TAPE INPUT UNIT/ answer = input tape device name (e.g. MT1:)IB program action = Assign Fortran LUN 3 to the specified device. Attach device and rewind.  answer = control-Z program action = exit. + b. prompt = TAPE DENSITY (800 OR 1600 BPI)e00qq=onnnnd 5 answer = Integer 800 or 1600 for density of tape.  default is 800 bpi..5 program action = Set density of tape using QIO.  N PAGE 16 DSCCPY m DSCCPY.DOC (continued)T   c. prompt = DSC TAPE FILE NAMEg D answer = 12-character file name specified when tape was created.< a wildcard (*) matches any name. A wild character (?)# matches any single character.r C answer = a null input (carriage return only) inhibits6: the search for a named DSC output file. This is the8 response which must be used if the first reel of a+ multiple reel tape is NOT being read. = program action = Search for the ANSI HDR1 record with the: specified label. If not found on the current reel,  return to step 3a. , d. prompt = OUTPUT DEVICE AND UIC DDU:[UIC]@ answer = Disk output device where the restored file is to be7 put. No wildcards. The defaults are the normal g! Fortran defaults for LUN 4. @ program action = Check for the desired volume being mounted.  e. prompt = FILE TO BE COPIED ? answer = [OWNING UIC]filename.ext;version of the file to ben8 located and copied. Any field can be wildcard (*)$ or contain wild-characters (?)  answer = /FI:filn,filsn.: this allows the user to copy a single file using its7 original file-number (filn),file-sequence-number.& NO wildcards or wild-characters. ? program action = Search for the file specified and copy to i9 the output. If the file is not on the current reelr: of a multi-reel tape, a prompt for the new reel will be issued.9 If the file is not in this volume (i.e. an ANSI EOFb2 record is found) an error message is output.7 If the file already exists (same Directory, name, : extension, version) an error message is produced and the file is not copied.r D f. prompt = FILENAME CONTAINS WILD CHARACTERS, COPY MULTIPLE FILES?  answer = Y; program action = multiple files will be copied. Promptt0 (g) will be produced (creation date selection)  answer = N> program action = Only the first file which matches will be3 copied. No selection on creation date. NOTE the 6 file copied will not necessarily be the one with the highest version number.  N PAGE 17 DSCCPY  DSCCPY.DOC (continued)O  * g. prompt = MULTIPLE FILES WILL BE COPIED; SELECT BY CREATION DATE? [BEFORE: ON: AFTER: DD-MMM-YY]i' -ONLY IMPLIES NO DATE SELECTIONa ?d  answer = OPTION: dd-mmm-yy% where OPTION = BEFORE, ON, AFTERe dd-mmm-yy = datee6 OPTION must be followed by either a : or a space.; No other spaces are allowed. Date must be in the formh specified.rB program action = file header of file with matching name will be8 checked to see if the creation date falls in the range= implied by the option. If it does, the file will be copied.I answer = (null line)2 program action = No selection by creation date.  3 h. prompt = WARNING, FILE ALREADY EXISTS FILENAME:E DO YOU WANT TO:- C COPY ANYWAY (OVERWRITE) S SKIP COPYYYING THIS FILEp N CREATE A NEW VERSIONa+ answer = C, S, or N default is to skips program action:m* C - program will overwrite the old file.5 S - program will skip the copy (the new input file)l8 N - Will cause the version number of the offending new: file to be stripped off. Then the file will be open7 for output, creating a new "most recent" version.  N PAGE 18 DSCCPY P DSCCPY.DOC (continued)S   NOTES AND LIMITATIONS:C K 1. This program has been used on both 7-track and 9-track TM-11 look-alikec@ drives. Routine NXTAPE was changed to allow 1600 bpi tapes. J 2. If DATA OVERRUN errors (-13. IE.DAO) occur, the size00qqonnl]ld of the tape inputA buffer can be increased using PARAMETER NRLTH= newsize in theiD main program. The buffer should never be less than 1040. bytes. E 3. Error checking on the prompt input filenames is very primitive. D Only a simple check on the syntax of the file specifier is done.A Illegal characters in the fields are not detected. This will-$ lead to "NOT FOUND" type errors. * 4. There is no verify of the copied data. J 5. The /FI:filn,seqn command does not accept wildcards or wild characters H 6. Because directory files are not guaranteed to be on the same reel as@ the file being copied, and I didn't want to have to read theA whole DSC volume, I chose to use the file identifier as found D in the files-11 file header. If a file has been re-named beforeB being DSC-ed this file identifier will not match the directory@ entry. The /FI: option can be used to find the file, given( a DSCDIR listing of the directories. K 7. As much information as practical of the original file-header is preser- D ved with the copied file. Because I did not want to do the copyF with the index-file UNLocked not all information is preserved. TheG following items from the file header are preserved during the copy:e file name, extension, versione: space allocated and contiguous/non-contiguous indication end-of-file pointer. record attributesn / The following information is NOT preserved:g DIRECTORY uice OWNING uic creation date and time last update date and timed mappingr  N PAGE 19 DSCCPY x DSCCPY.DOC (continued)f   INSTALLING DSCCPY B DSCCPY was originally compiled under F4P (version 2.51). It usesJ some MACRO-11 routines for string and FDB manipulation. The distribution includes the following files: # DSCCPY.FTN -- Fortran main program " DSCFTN.FTN -- Fortran subroutines# DSCMAC.MAC -- Macro-11 subroutinesu& DSCCPY.CMD -- Task build command file DSCCPY.DOC -- This document. 8 Compile or Assemble as appropriate, the 3 source files. J Edit the task build command file to reflect your configuration if needed.H The device assignments for luns 3 and 4 are changed in response to user prompts at run-time.e  tN PAGE 20 DSCDIR DSCDIR.DOC  > DSCDIR - FORTRAN PROGRAM TO PRODUCE A DIRECTORY OF DSC TAPES.   MODIFICATIONS: 8 28-Aug-81, WB-004 do not unload tape after rewindC 11-Jun-81, wb-003 fix error with empty and short directories.> 10-Jun-81, WB-002 fix problems with error on .DIR files+ 10-Jun-81 WB-001 Allow 1600 bpi tape  William D. Burton, Jr.- Texas Research Institute of Mental Sciences 1300 Moursund  Houston, Texas 77030  (713) 797-1976 ext 501  B This file describes the program DSCDIR, a FORTRAN-IV-PLUS programL which produces a directory of tapes written by DSC (Disk-Save-and-Compress)5 Utility. It has worked on both RSX and IAS systems.   INSTALLATION: ' 1. Distribution of DSCDIR consists of:- + DSCDIR.FTN - Main program and subroutines& DSCDIR.CMD - Task build command file DSCDIR.DOC - This file ' 2. Compile the main program DSCDIR.FTNi: 3. Edit the task-build command file for your installation e.g. resident libraries etc. OPERATION:o < 1. The DSC tape to be scanned is UNMOUNTED on fortran LUN-33 DSCDIR uses direct QIO reads (subroutine RDTAPE).U3 The program does NOT require reading all reels of a multi-reel tape set. @ 2. Run DSCDIR and answer the questions. DSCDIR will not accept indirect command file input. ) a. prompt = INPUT TAPE SPECIFIER [DDU:] 7 answer - name of the tape device holding DSC tape.d (e.g. MT1:) 1 b. prompt = TAPE DENSITY (800 OR 1600 BPI)? [I]r8 answer - density of input tape, integer 800 or 1600 default is 800 bpi. 5 c. prompt = PRINT CONTENTS OF DIRECTORY 00qq=onnnndFILES [Y/N]U< answer - Y if a listing of the contents of the Files-11" disk directories is wanted. N to suppress this list.D N PAGE 21 DSCDIR I DSCDIR.DOC (continued)  6 d. DSCDIR will read the tape and print a summary of:1 1) ANSI standard file labels (80 characters)) 2) FILES-11 file headersf file-idi! file-name, extension, versiont creation date and time9 3) DSC initialization information (first reel of DSC  tape set only)h  LIMITATIONS:- @ 1. The predecessor of this program was used in checking out theA file-restoring program DSCCPY. This program should be fairly robust.S > 2. If DATA OVERRUN errors occur (error code -13. IE.DAO), the4 program buffer size can be increased by changing@ PARAMETER NRLTH= to the desired size. NRLTH should never be less than 1040. bytes.  B 3. If multiple tapes are directoried out of sequence, FALSE errorD messages FILE NUMBER OF DATA BLOCK DID NOT MATCH will be printed" these messages can be ignored. Q PAGE 22 DSCFORMATl            , Disk Save and Compress (DSC) Tape Formats  1-April-81    I. INTRODUCTION K This note describes what I have learned of the format of DSC producedQ magnetic tapes. The information presented here is to be considered prelimi-LQ nary and subject to revision. The Stand-Alone DSC V2 was used to create testo tapes for this project.  Bill Burton4 Texas Research Institute of Mental Sciences 1300 Moursund Houston, Texas 77030 (713) 797-1976 ext 501-Q PAGE 23 DSCFORMATc e II. DSC TAPE STRUCTUREf H Basically, DSC tapes are ANSI standard version 1 labeled magtapes.L Standard version 1 has been superceeded by version 3 (ANSI X3.27-1978).O Some of the label records are non-conforming or undefined in the version 3l standard. D The DSC tape volume consists of ANSI labeled volume and header3 labels surrounding DSC formatted data records.  $ Record Number Length Contents  1 80. VOL1 label recordA; volume identifier derived from the output file name,: given in the DSC command line for the first output file.s1 a. Truncated to 4 characters if necessary-7 b. Padded to 4 characters using the character X ( c. Sequence number, 2 characters# 01 for first reel of a setm 02 for second, etc.; d. Other information is documented in ANSI Standardc2 Manual or RSX-11 I/O Operations Manual. = 2 512. Dummy bootstrap block which produces the messagei9 "This volume does not contain a hardware bootablem system".  3 80. HDR1 label record.2 a. File name specified in DSC command line- b. Volume identifier from VOL1 record  4 80. HDR2 label records7 a. An undefined record code (U) is non-standarde+ b. Logical record length 2064 byteso4 c. Physical record length maximum 2064 bytes3 d. The character M in byte 37, non-standardb+ e. Buffer offset 00 in bytes 51-52.   5 Tapemark 2 6 1040. First DSC formatted record, contains4 a. 8 word (16 bytes) DSC header with code=404 b. 512. bytes of DSC Bookkeeping information# (documented in section IV) 6 c. 512. byte Files-11 file header for the file (1,1) [0,0]INDEXF.SYS;1  7. 1040. DSC Data record 3 should contain initialization data for disk * structure, 2 virtual blocks worth.  8. 2064. DSC Data record3 More initialization information for virtual  block 377,177777.e Q 00qqonnl]ld PAGE 24 DSCFORMAT  D    * 9. & up 528. (or 1040. or 1552. or 2064.): Contain DSC data records with DSC codes 1, 2, or 48 The details of these records are in section III.: DSC copies files to the output tape in file-number8 order. For each input file on the disk there is. 1 type 2 record (of unknown function)( 1 type 4 Files-11 Header record1 as many type 1 data records as needed to 4 hold all virtual blocks allocated to the input file.   9 At the end of data from a disk volume, there will bec " Record number Length Contents  N tapemark  N+1 80. EOF1 recordi8 Identical to HDR1 except bytes 55-60 now contain4 the number of physical tape records between HDR2 and EOF1.n  N+2 80. EOF2 record- Identical to HDR2 record  N+3 tapemark < N+4 tapemark, if this is the end of the tape volume OR. 80. HDR1 for the next output tape file & created using DSC /AP switch. D If the tape is filled, (ie reaches the End-of-Tape foil marker)I the EOF1 and EOF2 records will be replaced by EOV1 and EOV2 records.bD The following reel in the set will start with a VOL1 label withN the output volume name incremented by 1. The structure of all subsequentN reels is the same as described above for the first reel, except that dataL records start immediately. There will be no DSC initialization recordsN (6, 7, and 8. above) on subsequent reels. It is possible for data from aK disk file to be split across two reels, and the data for a file can berI separated from its DSC header records or Files-11 header record whent changing reels.Q PAGE 25 DSCFORMAT      III. DSC DATA RECORD FORMAT A Within the labeled file, DSC writes its own format records.T These records contain:a  a. An 8. word header5 b. 1, 2, 3, or 4-512. byte logical data blocks.t    DSC header Format G word 1 Length of the data portion of the record, excluding ALL DSCr specific information. I word 2 DSC record-type code indicating the type of data in the data  portion of the record. A code = 1 Disk data record(s), images of input disk blocks B 2 Prefix information. I have not fully decoded the7 data in these records. May have some filename and extent information.B 4 Files-11 file header (records of code 4 only have# one 512. byte data block).o3 40 Special DSC initialization record.o: a. 512. bytes of initialization information see section IV.3 b. 512. byte Files-11 header for INDEXF.SYS  O words 3-4 For type 1 records, these words contain the Virtual Block Number A (VBN) of the of the first logical block in the DSC data record.h< The low order part of the VBN is in word 3, the high-order) part is in the low byte of word 4.o@ I have not fully understood the use of these words for the2 second data record for the INDEXF.SYS file. 2 word 5 The file number this record applies to < word 6 The file sequence number this record applies to. & words 7-8 Always seem to be zero. Q PAGE 26 DSCFORMATe C     " IV. DSC INITIALIZATION RECORD B This record contains the usual 8-word DSC header with a codeI of octal-40 in word 2. The data portion of the record contains 512.rM bytes of DSC control information plus the 512. byte Files-11 file header for (1,1) [0,0]INDEXF.SYS;1 K The DSC control information is formatted within the record as follows: 00qq=onnnnd  Bytes Contents  J 1.- 12. DSC Output name from the command line, ASCII padded with spacesI 13.- 24. Input device name (e.g. DK1), ASCII, padded with spaces8 25.- 36. ? null= 37.- 48. Input volume name, ASCII, padded with nulls  49.- 52. ? null 53.- 54. ? 1t> 55.- 58. Number of blocks on the input device, binary? 59.- 62. Number of blocks in use on the device, binaryt" (not including bad blocks)> 63.- 66. Number of files in use on the device, binary 67.- 68. ?  69.- 70. ? null< 71.- 72. ? Number of blocks allocated to index file 73.- 74. ?  75.- 76. ?  77.- 78. ?  79.- 80. ?u 81.- 82. ?d 83.- 84. ?  85.-510. ? null 511.-512. checksum 9 Items marked with ? are items I have not identified.2Q PAGE 27 DSCFORMAT)  V. DSC CODE 2 RECORDS B One of these records preceeds each files-11 file on the DSC tape  DSC header word 1 = 512  word 2 = 21 word 5 = file number of the files-11 file 4 word 6 = file sequence of the files-11 file.  DSC data block, 512. bytes" words 1-3 the string BACKUP7 word 5 The number of bytes in the name stringe2 words 6.. The file name string, in the form" DDU:[126,342]filename.ext;ver6 the UIC 126,342 seems to be constant,regard-7 less of what the source or directory uic was.s 7 word 46. Number of blocks allocated to the file # word 52. (same as word 46.) ( word 67. Owning UIC group number* word 68. Owning UIC member number. @ There is some more information, but I have not determined what1 it is, it was not necessary for restoring files.n      # VI. DSC FILES-11 HEADER RECORDD D One of these records immediately follows the DSC code 2 record and contains: < DSC header word 2 = 4 code for files-11 header record5 word 5 = files-11 file number for this file(? word 6 = files-11 file sequence number for this file.  D The data portion of the record contains the 512. byte files-11M header block for the file. It is an exact image of the header as it wass) on the disk, including the map area.L 1K PAGE 28 FACD% Files-11 ACtivity reporting program  L F11ACt is a sytem performance measurement program for taking a snapshot ofL files-11 ACP activity on a running IAS or RSX-11D system. It was originallyL developed to verify FILES-11 ACP data structures "on the fly", but it has> since evolved into a general purpose file system tuning tool. sL The program produces a report of currently accessed files for each file-L structured device known to the system,with statistics on ACP data structureL and memory utilization. F11ACt can optionally produce a report on a list ofL specific devices, or on all devices serviced by a given ACP task. this in-L formation can be used to formulate optimal strategies for assigning devicesL to ACPs on a multiple-ACP system, for determining size requirements for theL ACP internal fcb storage area,the size of fcpcom, the size of the directory LUR cache, and so on. eL See file example.lst for an example of the output produced by the following commands:  command line syntax: F1 [outfile][/-APpend][/SPool][/FILES][/PRiority:N] = [/ACP:xxxxxx]o orl = [device[/FILES]],... A@ /APpend Open outfile for append (default), else create outfile ( /SPool spool outfile (default is /-SP) < /FILES List attributes of all files open on all devices if5 this switch appears on output side of command linez8 List attributes of all files open on specified device' if this switch appears on input sidep# (default is /-FI in both cases). > /PRiority00qqonnl]ld:N ACP run priority is N (decimal) (default is 220.) D /ACP:xxxxxx Gather statistics for all devices serviced by the named6 ACP. If this switch is specified on the input side,& a device list may not be specified. l? An empty command line is equivalent to the following defaults:  i; F11ACt> TI:F11STATS.LST/APpend/-SPool/-FILES/PRiority:220.z  s tK PAGE 29 FDUi NEW UTILITY G A dump program differing from DEC's dump, which can only output in onei format at at time.) G FDUmp lists output in OCTAL,ASCII, and RAD50 on the same line of print   FDUmp supports 2 switches  /AiB this specifies the offsets for each line to be listed relative toE the beginning of the file. that is, block 1 starts at '000000, block1> 2 starts at 1000, block 3 at 2000 ....etc. this is useful forE looking at files which contain linked lists, like [1,4]SPRQUEUE.SYS.i 0 (Normally each block is listed realative to 0.) ) /BL:N:M List blocks n thru m inclusivea ora1 /BL:N List blocks n thru end of file inclusiven   Calling proceedure:  MCR>FDU filespect  orh  MCR>FDU FDU>filespec  - where filespec is a file name of the form DDN:[GGG,UUU]NAME.TYP;VERS output will be directed to LP0: 2K PAGE 30 FHDe        i9 FHD is a program to list the file header of a given file  6 Primary purpose is to list all the pieces of the file9 to determine how fragmented the file is if it is a largev9 data file, and to determine which absolute blocks on the : disk the file occupies, (if troubles occur with the disk)  < After listing routine information from the file header, fhd, lists each piece of the file, reporting on:  Number of blocks (decimal): First block # (absolute disk block number, 2 word, octal): Last block # (absolute disk block number, 2 word, octal)  < Fhd also reports if the header had to be extended (by using= an extension file header) and lists the unique file id (FID)e for the extension filea   calling proceedure   e MCR>FHD nnnnnn,mmmmmm wherei t. nnnnnn,mmmmmm is the file's (unique) FILE ID> (obtained via a PIP or SRD directory using the "/FU" switch) r gK PAGE 31 FLBu     . Find Logical Blocks  3 A Contiguous Block Identification Utility           # 15-FEB-81F( (Revised 19-JUN-81)          ( J. Bradley Flippin+ Raytheon Service Company 3 2341 Jefferson Davis Highway (Suite 1200)g+ Arlington, Virginia 22202 ) Phone (703) 685-2200K PAGE 32 FLB  = FLB --- A contiguous block utility program PAGE 2  Program Description  Background: = Disk cartridges and packs are structured into tracks = and sectors. these sectors, each of which contains a block= (or partial block) of data, are used by the operating systemf= to store files. Under RSX-11M, this file structure is known,= as FILES-11 and consists of one (or more) header blocks and = any number of associated data blocks. The data blocks areG= assigned by the FILES-11 Auxiliary Control Processor < (F11ACP) to the respective header by means of map pointers. = Basically, as the system needs blocks, they are allo-= cated in a systematic way: Always from the bottom up! This= process continues until the file is full. Deleting files= results in the de-allocation of the respective blocks as in-= dicated in the file header's map area. This makes them ava-= ilable for the next user. As time progresses, it can be= seen that the disk can 00qq=onnnndbecome a "shotgun" of randomly as-= signed data blocks. This fragmentation may eventually have = an adverse affect, particularly when a task requires large= blocks of contiguous space, such as SORT which requires them for its working files.l = The scattered blocks can be consolidated (or com-o= pressed) by using the Disk Save and Compress (DSC) utility.'= However, this requires that the disk be copied to anothere= media and then re-built on the original media. If tape iso= used, or only a few files are destroying the contiguous = space, then a faster way would be to free up the contiguousl= space by moving the guilty files. This would require,= searching every header and then searching all its map po- = inters to see if any of their data blocks are in the affect-o= ed area. This is a long and difficult manual process.'2 FLB, however, will find the guilty files for you.  BITMAP.SYS: = The one system file which holds the key to which blocksn= are in use (allocated) and which are available for use ise= BITMAP.SYS which is located in the null directory [0,0]. Itm= is a file in itself. It has a header which maps one Storage = Control Block (SCB) and "n" bitmap blocks, each capable ofs= "mapping" 4096 decimal blocks. Thus, the floppies (RX02) = use one bitmap block where the RK07 has 14 bitmap blockse/ (not counting the SCB which is always VBN #1).B = To use the FLB utility, all one needs to do is dumpi= BITMAP.SYS and use it as a roadmap to find and identify thef= desired blocks. The space is freed by the simple process of[= moving them. The F11ACP always assigns the new blocksn= starting at the lowest numbered blocks. This effectivelya= moves the files to the front of the device, unless, ofiK PAGE 33 FLB( n= FLB --- A contiguous block utility program PAGE 3B Program Description  $ course, the device is already full.  " Assembling and Task Building FLB: ; Building FLB is relatively straight forward. Then1 source media should contain the following files:o 3 1. FILES.MAC;1 dated 15-FEB-81 (Source file)f 0 2. FILES.COR (The latest correction file) 3 3. FILES.CMD (A command file to build FILES)  8 4. MOVE.CMD (A command file to move guilty files) - 5. FILES.DOC (This documentation file) = 6. COPY.CMD (A command file to make copies of the source media)a  = To build FLB, simply copy the source to your mediaa= with @COPY then run @FILES. The file will ask whether or= not you want a listing. If yes, it will put FILES.LST on = SY:. When installed, the task will have the name "...FLB".I  K PAGE 34 FLBo = FLB --- A contiguous block utility program PAGE 4 Program Description   How to Use FLB: = The following procedure is recommended (all numbers ared# octal unless otherwise indicated):o 1 1. The device in question must be mounted.i = 2. Determine the free space available by using PIP. = Enter: PIP DM:/FR (or FREE, if TDX is installed).n= If the number of free blocks exceeds by a large am- = ount the number of contiguous free blocks, thenu= FLB will be of some help. If not, then movingn= the files may simply move them to higher blocks numbers. = 3. Dump the bitmap by entering: DMP # BITMAP=DM:[0,0]BITMAP.SYS = 4. Examine the bitmap dump, looking for the largest= grouping of "1" bits (ie: l777777 indicates all 16? decimal blocks represented by that word are avail- = able). Generally, these will be towards the end of = the device. Note that the last block generally = 00qqonnl]ld shows a large portion of allocated blocks towards = the end. This is because most devices do not have 6 an integral multiple of 4096 decimal blocks. = 5. FLB can now be used to identify the desireds= files. Simply enter the search parameters by means1= of input switches. Figure 1 shows a sample output.l= the following are examples of various command lined inputs:  = 1. Show all files containing blocks in virtuala, block number 15 of BITMAP.SYS: - FLB TI:=DM:/BLK:15:15  = 2. Print a listing of the file using a specific= LBN (ie: 4200)-(Note that the /LBN switche) utilizes double precision):c 5 FLB LP:=DM:/LBN:0:4200:0:4200e = 3. Spool a file "FILES.LST" on SY: listing allf= files represented by the 16 bits of word 10 ofh BITMAP VBN 15: 3 FLB =DM:/BLK:15:15/WD:10:10. = 4. Search the BITMAP starting with block 15 and 1 extending to the end of the device:i K PAGE 35 FLB  = FLB --- A contiguous block utility program PAGE 5M Program Description  * FLB TI:=DM:/BLK:15 = 5. Search the BITMAP to the end of the devicew* starting at a specific word: 0 FLB TI:=DM:/BLK:15/WD:20  = 6. The affected files can now be moved. Go to the = proper directory (UIC) and use PIP = /NV/CD=filename.type;ver. Be sure to use the spec-L= ific file version. Once the file has been moved, = the specific version can then be deleted (The same = thing can be accomplished by using the MOVE command  file). K PAGE 36 FLB  = FLB --- A contiguous block utility program PAGE 6  Program Description  Problems: ; Problems may be encountered during the use of FLB.l= Usually then can be resolved. The following are a few exam-e; ples (references are to the Utility Manual [AA-H268A-TC]):c = 1. All headers may not be listed in a UFD. This ise= evident when a filename.type;version cannot be= found with PIP [*,*]. Solution: Run VFY with theP= /LO switch (see Section 13.3.5). This will find = the "lost" file(s) and place them in the lost files = directory [1,3] where they can be properly deleted.  = 2. All blocks may not be mapped to a header. This isr= evident when files does not list a culpret, but the = bit is shown as set in the BITMAP.SYS Dump. = Solution; Run VFY with the /RE switch (See Section  13.3.7).  = 3. Finally, it may be a bad block. This is evidenti= when the FILES listing contains [1,1]BADBLK.SYS asp= one of the first entries (headers are serached inh= sequence - BADBLK.SYS is header number 3). Do notn= confuse "last track" protection provided to lastl= track devices (ie: RK06/7, RL01/02, and RM02/03) = with actual bad blocks. This can be verified byV= dumping the header of BADBLK.SYS. The first entry = in the map area will show blocks mapped at the end,i= then the actual bad blocks are mapped individually.p= (See Section 9.3.1.2). If it is a bad block, thereh3 is no solution, except to get a new disk.) K PAGE 37 FLB  = FLB --- A contiguous block utility program PAGE 7i Program Description   Notes:r = 1. Remember, all UIC's in the FLB listing are those = 00qq=onnnnd of the OWNER. Generally this will also be the di-e= rectory in which they are listed. If not, thenu= search for them using a wildcard PIP command (ie: % PIP [*,*]filename,type;ver.t = 2. Special conditions apply to UFD's because the File = ID is contained in the MFD. A UFD is identified by = a filespec similar to: DM0:[001,001]007007.DIR;1.' The proper procedure here is:   = 1. Move any files in the UFD to another UFD (usinge) the /CD switch if desired).  5 2. Delete the files from the original UFD.  = 3. Delete the UFD (ie: PIP [0,0]007007.DIR;*/DE).  = 4. Create a new UFD with the same UIC (ie: UFDp DM:[7,7]). = 5. Run FLB again to ensure it has not put the = new UFD in the same area of interest (or dump5 its header and check the map pointers).  = 6. Finally, copy back the output files to the new ; UFD (using the /CD switch again, if desired).t  = 3. If the file is an installed task, then it must be = removed (REM) and re-installed (INS) after theD= move, or the system may crash when it is called.= (Don't forget to do this to your task image by run- ning VMR). = 4. For additional information see the MACRO sourcea listing.      K PAGE 38 FLBg = FLB --- A contiguous block utility program PAGE 8s Program Description  Example:      : DM0:[001,001]BADBLK.SYS;1 <------ (Indicates a bad block) DM0:[104,060]EDITOR1.TMP  DM0:[111,142]VSCAT.OBJ;3  DM0:[111,141]SHP733.LST;1 DM0:[111,064]AOSTUDY.TSK;2  DM0:[111,142]VSCAT.LST;10 DM0:[111,142]VSCAT.SKL;3i DM0:[111,141]SHP732.LST;1 DM0:[106,130]REPORT.FTN;6 DM0:[111,064]AOSTUDY.TSK;1  DM0:[104,060]KWIC.LST;25   DM: = 53790. BLOCKS SPAN: 4096. BLOCKSB LO LBN: H:000 L:130000 = 45056. HI LBN: H:000 L:137777 = 49151.  FILES FOUND: 11.E ELAPSED TIME: 00:01:24 LP:=DM:/BLKS:15:15B       2 Figure 1 - Example of FLB run on an RK07K PAGE 39 FLBD = FLB --- A contiguous block utility program PAGE 9H Technical Description  INTRODUCTION1 = The following technical notes are provided for those = who desire to know what is happening within the FLB pro-= gram References are to the I/O Operation and Reference Manu-S= al (AA-2515D-TC). Details of the command line processng, 0 FCS, and the simpler routines are not provided. = The basic assumption of FLB is that it will be work- = ing on a FILES-11 structured device. This means that itg= will be looking for certain things in certain places.U= Specifically, it assumes that the device contains the stan-f= dard five system files (only the first one is accessed bye FLB).  #1 - INDEXF.SYS  #2 - BITMAP.SYSe #3 - BADBLK.SYSA #4 - 000000.DIRo #5 - CORIMG.SYSe   Command Line Processing n = The command line includes two output switches and threet= input switches. The output switches are /ID (to provide the = program version number) and /SP (to spool the output). Thei) defaults are /-ID and /SP, respectively.s = The three input switches are /LBN, /BLK, and /WD. Theo= /LBN switch permits the user to specify a logical blockD= number (or numbers) directly. The format is standard double = precision (ie: /LBN:0:100:0:100 = LBN #100 only). The = other switches are designed to match the BITMAP.SYS dump andi= are mutually exclusive with the /LBN switch. The /BLK = switch may stand alone, but the /WD switch requires the /BLKe switch. h= The output switches are first validated to en00rqonnl]ldsure theh= above logic has been observed. Next the switch values arec= validated by "VALIDATE SWITCH VALUES." Here a stop value of = zero is replaced by the SIZE parameter which was extracted = from the device's Home Block by the Get LUN (GLUN$) direc-c= tive during the parsing of the input filespec. This valuel= (minus one) is set into the stop LBN if it is not present  (or equal to zero). = The /BLK switch is validated next to ensure that is ise= greater than one and that the stop block is not less than = the start block value. The /BLK switch was designed to per- = mit the user to enter the octal block numbers from at= BITMAP.SYS dump directly. Thus, the /BLK validation routine : esures that the Storage Control Block (VBN #1) is passed.K PAGE 40 FLB  = FLB --- A contiguous block utility program PAGE 10K Technical Description  = Finally, the /WD switch is validated by ensuring thati= it is less than 512 (decimal), that it is an even numberd= (word aligned), and that the top value is less than the = start value only in those cases when the start/stop /BLK va-l! lues differ (interblock search).S = Once the switches have been logically verified and the = values validated, then the actual start and stop LBN is cal--= culated. If the /LBN switch was used, then the "GENERATEn= THE LBN VALUES" routine is bypassed. Otherwise, the /BLKd= values are converted to LBN values by the equation shown onh= the listing. The /WD values are then added or subtractedl& from the resulting LBN's as required.  Processinge = The first action, after deciding that the command line= was proper, is to retrieve the Home Block, which is LBN #1= on the device. This is accomplished by the FCS procedure= "RETRIEVE HOME BLOCK". The INDEXF.SYS file is non- conven-= tional, in that the offsets F.HIBK (the highest block allo-= cated to the file) and F.EFBK (the end-of-file block) are= both zero. These must be set to their logical values so the= program can scan the headers and detect an EOF condition at = the appropriate time. This is acommplished by opening the= file with the statisitics block, as described in Paragraph= 3.1.2 under file option 3.d (Page 3-11). The statistics= block is shown in Figure H-1 on Page H-1. Once the= INDEXF.SYS header file FDB has been reset, then the home5 block is read into the buffer region named "HEADER."o= The important values in the home block are the firsts= two bytes (H.IBSZ) which indicates the size of the indexi= file bitmap, ant the next four bytes (H.IBLB) which containg= the LBN of the first block of the index file bitmap in dou-a= ble precision format. These are important because they pro-i= vide the physical location (LBN) of VBN #3, which is thec= start of the header bitmap and its length. Adding the two = together provides the LBN of the first header (1,1) which= happens to be INDEXF.SYS. The program is now set to scans the headers.( = The "RETRIEVE A HEADER BLOCK" routine reads each header = sequentially. Offset H.FNUM is checked each time. If it isf= zero, then it is a deleted header and the next one is read.r= If it is not zero, then it begins searching the map pointerc region of the header. = Each file header contains a map area which consists of,A= among other things, an offset M.USE (one byte) which is aa= count of the number of map pointers in use. The maximumw= value is 102 pointers (The actual value is the number ofDK PAGE 41 FLBd = FLB --- A contiguous block utility program PAGE 11x Technical Description  = words used or twice the the number of pointers used). Ife= this value is null, then it is either a null header or thec= program has checked all of its po00rq=onnnndinters. The secton of the)= header used in the searching is the retreival pointer sec-T= tion which starts at offset M.RTRV. To find this offset,h= the program steps past the header section (S.HDHD), the = identification section (S.IDHD), to the start of the retri-t= eval section (M.RTRV) (See the equated symbol MPTR in the listing). = Each pointer consists of two words (four bytes). The = first byte contains the high order eight bits of the 24 bitc= LBN. Byte two contains the count field and bytes three and = four contain the 16 low order bits of the LBN. Each pointert= can map up to 256 (decimal) contiguous blocks. The value of = the count is actually n-1, thus a zero points to one block,o= while a value of one points to the first of two contiguousn= blocks. The "SEARCH MAP POINTERS" routine checks the MUSE = location first, exiting if it contains a zero. Otherwise, = it extracts the two word map pointer and divides it into ac= count filed and a double precision LBN, then calls SEARCH = which decrementes until it reaches zero (or a match ist. found) at which time the next header is read. = The actual search routine is contained in "SEARCH FOR Ao; MATCH." It performs a search based on the following logic:w = 1. If the LBN of the first block of the pointer iss= below the starting LBN, then there is no match pos-O sible and it exits.t = 2. If it is equal, then there is a match of at leastl= the first block. The OUTPUT routine is calledt< which outputs the full filespec to the output FDB.= 3. If it is greater than the first LBN of the pointer,c= then no immediate conclusion can be reached, so the 3 LBN must be checked against the stop LBN. 8 1. If it is LT/EQ, then a match has occurred. = 2. If NE, then the LBN of the last block in thee= pointer's contiguous group must be calculated = by adding the count field to the pointer's LBN.    < 1. It it is LT/EQ, then a match has occurred.   = 2. If not, then it is outside of the range and $ the routine exits.K PAGE 42 FLB  = FLB --- A contiguous block utility program PAGE 12  Technical Description      = The above process is repeated for each header until an = EOF condition is reached, at which time the summary is out-  putted.    Correction File = Corrections to the orginal source file will be made byf= means of a correction file to be used with SLP. The currenth= correction file FILES.COR contains the code necessary to up- = date FLB to version l.0A. This includes code to correctc= for DP LBN's, corrects some DP arithmatic errors, cleans out = the high byte in CW2, plus adds a diagnostic capability. Ina= addition, it has been tested on RSX-11M (PLUS) and an RP06  drive.r = The new diagnostic switch /DA acts the same as the /-LIc= switch plus it provides a means for the user to force a dif- = ferent value into the SIZE value (number of blocks on the = device). The default value will be that of the device indi- = cated. Otherwise the program will use the supplied value') which is stored in DASIZE. For example:n ( FLB TI:=DM:/DA:1:1000/BLK:5:5 = The above command string will force the program to set(= the size parameter to 66048 (decimal). (Arbitrary valuesi= must be used with either the /LBN or /BLK switches, becausem= of the syntax. These values must be less than the selected /DA value.)     - -JBFt dN PAGE 43 FORUTL h C SUBROUTINE FLOPEN.FOR< C THIS SUBROUTINE READS IN A FILE NAME AFTER PRINTING A< C STRING MESSAGE SPECIFIED IN T00rqonnl]ldHE CALL, AND PERFORMS AN= C ASSIGN TO A LUN ALSO SPECIFIED IN THE CALL. THE STATUSm> C IS RETURNED WITH IST = 1 INDICATING SUCCESS AND IST = 2* C INDICATING FAILURE VIA EOF ON INPUT5 C RE-ENTERED 5-MARCH-75 AUTHOR: LARRY SIMPSON , C MODIFIED FOR "FOR" COMPILER 15-AUG-75 C ---------E C MODIFIED TO CHECK ON EXISTENCE OF A FILE OPENED FOR READ VIA A B C DUMMY READ STATEMENT. POSITIVE LUN INDICATES READ, NEGATIVE8 C INDICATES WRITE. NO CHECK IS PERFORMED FOR WRITE.: C FILE NAME AND LENGTH ARE NOW SAVED IN A COMMON AREA& C ACCESSIBLE BY THE MAIN PROGRAM.( C MODIFIED 29-JAN-76: LARRY SIMPSON T ; SUBROUTINE STRCMP5 ; TO COMPARE TWO STRINGS AND REPORT EQUALITY OR NOT.5 ; FORTRAN CALL:) ; CALL STRCMP(STRING1,STRING2,NCH,IRSLT)R- ; WHERE STRING1=FIRST STRING (USUALLY ARRAY)O ; STRING2=SECOND STRING& ; NCH=NUMBER OF CHARACTERS TO COMPARE ; IRSLT=STATUS: 0 -> EQUALITY1 ; > 0 -> POSITION IN STRINGS AT WHICH = FAILEDC K ; SUBROUTINE MOCNVT8 ; TO CONVERT MONTHS FROM NUMBER TO ASCII AND VICE VERSA ; FORTRAN CALL:$ ; CALL MOCNVT(NUM,MONTH,MODE,ISTAT) ; WHERE:N ; NUM = NUMBER OF MONTH (1-12)T" ; MONTH = 3 CHAR ASCII MONTH NAME ; MODE: ; 1 = NUM > ASCII ; 2 = ASCII > NUMC ; ISTAT: STATUS RETURN2 ; 1 = OK$ ; 2 = INVALID PARAM FOR CONVERSION ; 3 = INVALID MODE .TITLE MOCNVT N ; SUBROUTINE STRCON ; STRING CONCATENATION ROUTINE-< ; TO TAKE A VARIABLE NUMBER OF STRINGS AND CONCATENATE THEM ; INTO ONE STRING.O ; FORTRAN CALL:6 ; CALL STRCON(LENA,LEN,STR,LEN1,STR1[,LEN2,STR2,...]) ; WHERE:C. ; LENA = ACTUAL LENGTH OF CONCATENATED STRING( ; + INDICATES SUCCESSFUL CONCATENATION ; 0 INDICATES ERROR IN CALLD% ; - INDICATES OVERFLOW, VALUE = LEN % ; LEN = MAX. LENGTH OF OUTPUT STRING  ; STR = START OF OUTPUT STRINGO& ; LEN1 = LENGTH OF FIRST INPUT STRING ; STR1 = START OF FIRST STRING ; ETC.  CN PAGE 44 FORUTL ; ; SUBROUTINE AMAXFA.MAC& ; SUBROUTINE TO FIND THE MAXIMUM OF A, ; SERIES OF REAL*4'S WHOSE STARTING ADDRESS# ; AND COUNT ARE GIVEN IN THE CALL.I ; FORTRAN CALL:$ ; CALL AMAXFA(FARR,ICNT,FMAX,IOFF)2 ; WHERE FARR=STARTING ADDRESS(USUALLY ARRAY NAME)& ; ICNT=COUNT OF REALS TO COMPARE(>1)- ; IOFF=OFFSET OF MAX VALUE (ARRAY POSITION)L ; FMAX=MAX VALUE N ; SUBROUTINE CHRCNT0 ; TO COUNT THE NUMBER OF OCCURRENCES OF A GIVEN, ; CHARACTER IN A BUFFER OF SPECIFIED LENGTH ; FORTRAN CALL:$ ; CALL CHRCNT(NBUF,CBUF,NCHR,CHAR) ; WHERE:O$ ; NBUF=NO. OF CHARACTERS IN BUFFER ; CBUF=START OF CHAR BUFFER& ; NCHR=NO. OF SPECIFIED CHAR COUNTED' ; CHAR=SPECIFIED CHARACTER (BYTE VAR), X ; SUBROUTINE FLINTP.MAC( ; FLOATING POINT INTERPOLATION FUNCTION0 ; IF Y = F(X) AND FOR X1 AND X2 A CORRESPONDING- ; Y1 AND Y2 ARE KNOWN, THEN GIVEN X0 BETWEENE& ; X1 AND X2, Y0 WILL BE CALCULATED BY ; LINEAR INTERPOLATION. ; FORTRAN CALL: ; Y0 = FLINTP(X1,X2,Y1,Y2,X0) ;  ; ; SUBROUTINE LNFILL.MAC( ; TO FILL IN BLANKS IN A FORTRAN ARRAY.I ; A STARTING ADDRESS, LENGTH AND (OPTIONALLY) A CHARACTER ARE SPECIFIED.N ; FORTRAN CALL: ; CALL LNFILL(LEN,ARRAY[,CHAR]) ; WHERE:E ; LEN=NO. OF BLANKS TO FILL INM' ; ARRAY=NAME OF FIRST POSITION TO FILLI= ; FIRST BYTE OF CHAR=ASCII CHARACTER TO FILL (DEFAULT=BLANK)  .TITLE LNFILL G ; SUBROUTINE TRNCAT.MAC' ; FORTRAN CALLABLE ROUTINE TO TRUNCATE ' ; TRAILING BLANKS FROM AN ASCII ARRAY.  ; FORTRAN CALL: ; CALL TRNCAT(LIN,NLIN,NONBLK)N ; WHERE:; ; LIN = START OF ARRAYO ; NLIN = NO. OF CHAR IN LINER6 ; NONBLK = NO. OF CHAR IN LINE AFTER BLANK TRUNCATION ;M PAGE 45 INDEXN    I D XM * A Fortran 4-Plus Cross-Reference Program. B IDX Will produce a cross reference listing of a F4P program. ThisC cross-reference will list all references to lables, be they varia-L bles, routine entries, etc.   CALLING SEQUENCEL  & MCR>IDX =/SW/SW00rq=onnnnd  ! Current switches supported are :L % /DE - Treat debug lines as source ) /EX - Extend source scan to column 80 + /HE - List this message on the terminal 2 /LP - Output in line printer format (132 col.)1 /NS - Disable listing of FORTRAN source inputr4 /F4P - Number lines identically with ; ARITHMETIC STATEMENT <= > ; ASSIGNMENT STATEMENT <* > ; LABEL DEFINITION ; ACCEPT ; ARGUMENT TO SUBPROGRAM ; ASSIGN ; BACKSPACER ; BLOCK DATA ; BYTE ; CALL ; COMMON ; COMMON BLOCK NAME  ; CLOSE FILE ; COMPLEXT ; DATA STATEMENT ; DECODE ; DEFINE FILE  ; DIMENSION  ; DO STATEMENT ; DOUBLE PRECISION ; ENDFILE  ; ENCODE ; EQUIVALENCEY ; EXTERNAL ; ENTRY POINTT ; BYTE FUNCTION  ; COMPLEX FUNCTION! ; DOUBLE PRECISION FUNCTIONE ; INTEGER FUNCTION ; LOGICAL FUNCTION ; FORMAT STATEMENT ; FIND RECORD  ; REAL FUNCTIONM ; PLAIN FUNCTION ; GO TO STATEMENTL ; IF STATEMENT ; INTEGERA ; LOGICAL DECL.O ; OPEN FILEF ; PARAMETER DEF. ; PROGRAM STATEMENTP ; PRINT STATEMENTF ; ALL READ STATEMENTS ; REAL DECLARATION ; REWIND FILE  ; SUBROUTINE ; TYPE STATEMENT ; WRITE STATEMENT K PAGE 48 INFI INF.DOC J  <  O  T N' INFORM A < , A System Program  A, That Can Display  R , Active Task List  ) Node Usage B ) Clock Queue  T* Device's PUD  * Partition Map  - Device Forms Types  * A Task's ATL  * A Task's STD  . A Task's Pending I/O  s1 A Terminals Characteristics a i a    + Frank R. Borger , 07-November-1978 K PAGE 49 INF  vK INF.DOC PAGE 2 J00 rqonnl]ld 07-Nov-78  , ACTIVE TASK LIST , ------ ---- ----   s FUNCTION  -------- r iK Provide a listing of all currently active tasks, along with ! their address in core. r 7  CALLING SEQUENCE  ------- --------  P MCR>INF ACT  -------    ALLOWABLE SWITCH  --------- ------  K /E Switch provides extended listing, including task STATUS and  TI.  K S . NODE POOL ACCOUNTING . ---- ---- ----------  i  FUNCTION t --------  tK List detailed accounting of node usage. Includes total number K of nodes in the system, number of free nodes, nodes allocated to C& different tasks and tables.   L CALLING SEQUENCE - ------- --------  E MCR>INF NOD  -------  S U ALLOWABLE SWITCHES S --------- -------- N  None. K PAGE 50 INF K INF.DOC PAGE 3 uJ 07-Nov-78 o , CLOCK QUEUE LIST , ----- ----- ----    FUNCTION  -------- N OB List all currently scheduled events in the clock queue.    CALLING SEQUENCE  ------- --------   MCR>INF CKQ  -------  5 N ALLOWABLE SWITCHES  --------- --------   None.    ( PUD DUMP ( --- ----    FUNCTION S --------  ; Provide a listing of the PUD for a given device.  - - CALLING SEQUENCE c ------- -------- t c MCR>INF PUD XX:N  ------------  -. Where XX:N is the device descriptor    ALLOWABLE SWITCH  --------- ------  K /F Switch provides full listing of PUD including volumn control 2 block, (not listed by default command.) K PAGE 51 INFr dK INF.DOC PAGE 4 NJ 07-Nov-78  * PARTITION MAP * --------- ---  A  FUNCTION - --------  K Provide a "MAP" of a partition, listing all active tasks (and : pure areas,) the FTL, CTL and all COMMON areas.    CALLING SEQUENCE  ------- -------- d   MCR>INF MAP XXXXXX  -------------- A 4' Where XXXXXX= Partition name    ALLOWABLE SWITCH  --------- ------  K /P Switch lists all currently used areas and holes in the parti- K tion, ordered sequentially by starting address, providing a much iA clearer display of why partition XXXXXX is fragmented. F   * FORMS LISTING * ----- -------    FUNCTION  --------  -K Provides a listing of all printing devices who have their forms type set to non-zero.  -  CALLING SEQUENCE i ------- -------- a s MCR>INF FRM  -------   u ALLOWABLE SWITCHES r --------- -------- a  None rK PAGE 52 INF  TK INF.DOC 00(rq=onnnnd PAGE 5 J 07-Nov-78 s o) TASK'S ATL ) ------ --- N i  FUNCTION - -------- C ND Provides a listing of the ATL entry for a specified task.    CALLING SEQUENCE  ------- --------   MCR>INF ATL XXXXXX  -------------- T 0 Where XXXXXX is the task to be listed    ALLOWABLE SWITCH  --------- ------  K /TI:TTn Switch list ATL for task at a terminal other than your L own.    ) TASK'S STD N) ------ --- v s l FUNCTION r -------- k D Provides a listing of the STD entry for a specified task.    CALLING SEQUENCE  ------- --------   MCR>INF STD XXXXXX  --------------  L0 Where XXXXXX is the task to be listed    ALLOWABLE SWITCH o --------- ------ h  None K PAGE 53 INF  K INF.DOC PAGE 6 J 07-Nov-78  . TASK'S OUTSTANDING IO . ------ ----------- --    FUNCTION  -------- X XK Provides a listing of the IO request nodes for a specified task. - -  CALLING SEQUENCE  ------- --------   MCR>INF IOR XXXXXX  -------------- . 0 Where XXXXXX is the task to be listed  E  ALLOWABLE SWITCH  --------- ------   None    . TERMINAL DESCRIPTION . -------- -----------    FUNCTION  --------  9 List terminal characteristics for a given TTY. d s - CALLING SEQUENCE E ------- -------- - - MCR>INF TER TT:NN  -------------  -1 Where TT:NN is the terminal descriptor  l e ALLOWABLE SWITCH L --------- ------ - - None L PAGE 54 LIST LIST-11 K Version 3.02   / LIST-11   L LIST-11 is a program for reformatting ASCII files. It can L put up to 10 columns of text on a single page. To run LIST-11,  the user types:  * LIS [FILEOUT=FILEIN/SWITCHES]  -? Where the file specifications should be in the form:  B outdev:outfile.outext=indev:infile.inext/switch:value   e Switches  L The number of columns which should be used is specified by L the /COlumns switch. Its value is a number from 0 to 10, which L indicates the number of desired columns. If the number is 0, as L many columns as will fit will be used, up to a maximum of 10. L The number of columns is reset to zero after every file is listed L and must be specified anew if it should be set otherwise. Paper L sizes (LEngth and WIdth) are not changed between listings, so L that these need be specified only where they must be different L from the default, or on the first listing. All other switches # are reset between files. 0 aL The /TR switch, if present, causes lines which are too wide L for the specified number of columns to be truncated. If it is L not specified, lines which are too long will be split and all but 6 the 000rqonnl]ldfirst part will be preceded by a "-->".  tL The /NH switch, if present, causes the two line LIST-11 header to be omitted.  tL The /FF switch, if present, causes a form feed in the input L file to start a new column in the output file. If the /FF switch F is not specified, form feeds in the input file are ignored.  tL The /CT switch, if present, causes a tab to be changed into ; a space, instead of skipping to the next column. p eL The output page size may be specified by the /WIdth and L /LEngth switches, which specify the number of available print co- L lumns and lines, respectively. Once a page size has been speci- L fied, it is retained until specifically changed by another switch  specification.  uL The /PAuse switch will cause output to stop at the end of L each page. The output will be restarted when something is typed L to the command input dataset. List-11 will prompt for the input ( by typing the special prompt:  cL PAGE 55 LIST vL LIST-11 PAGE 2 K Version 3.02    LIST PAUSE>  aL after which any input is legal and serves only to end the pause. L A control-Z at a pause ends the current listing and will cause L LIST-11 to prompt with another "LIS>" for a new set of file spec-  ifiers.  L The /ED switch will cause the top of forms character to be 3 changed from a form feed to a control D.  GL The /RO:n switch causes the output to force each page to be L n lines long. This is intended for use with roll paper. In ad- L dition, the form feeds are replaced by a line of "=" to delimit L the pages. Both the switch and n must be specified for each  file.  L The /UC switch causes lower case letters to be translated to L the corresponding upper case characters. This is helpful when L listing on a device not containing the full 96-character ASCII  character set.  L The /NP switch causes pagination to be suppressed; that is, no L headers are produced and no formfeeds or other page dividers are L inserted in the file. This mode may be used (possibly in con- L junction with the /RL:nnn switch) to produce a file of known max-  imum line width. c e n Example: r e MCR>LIS % LIS>LP:=PROG.SRC/TR/CO:3 . MCR>LIS LP:=MANUAL.DOC/NH/FF/CO:2  L The first file, DK:PROG.SRC, is printed on the line printer, in a L 3 columns per page format. The file MANUAL.DOC is then printed L without a header and each "page" beginning at the top of the next L column. This is useful for listing RUNOFF output files in a two # columns per page format. m nK PAGE 56 LUT          LUT  0 A task to list the Logical Unit Table of a task K LUT can be used to display information as to any files currently opened bym a given task.  Information listed includes:r# DEVICE, UIC AND FILE SPECIFICATIONd6 ACCESS COUNT, # OF RETRIEVAL POINTERS AND WINDOW SIZE. FIRST BLOCK NUMBER AND TOTAL NUMBER OF BLOCKS  Calling sequence:  MCR>LUT XXXXXX/TI:TTN6 Where XXXXXX=Task Name and TTN is the TI for the task O PAGE 57 MASSAGEs NEW SYSTEM COMMANDS  B A series of commands have been added to our system to make lifeB easier for users of the computer. These commands are designed toC make li008rq=onnnndfe easier by giving easier syntax for often used commands.R > Note that optional parts of the commands are shown in "[]"'s. > BRI[ef] [NAME.TYP;VERS] Produces brief directory of files *1 ; BLO[cks] [NAME.TYP;VERS] Reports blocks used/allocated *1  E COP[y] [DVn:{N,M}]NAME.TYP Copies a file from another disk or UIC *1  < DIR[ectory] [NAME.TYP;VERS] Produces directory of files *1 C DOC[ument] NAME.TYP[;VERS] Prints specified file at LP1: (forms 1)  = FOR[tran] NAME Compile Fortran source with F77 Compiler *5  3 FRE[e] DVN: list free blocks on specified device  ? MAX NAME.TYP[;VERS] Compile Macro source with MAC compiler *5r 7 PRI[nt] NAME.TYP[;VERS] Prints specified file at LP0:E ; PRO[tect] NAME.TYPE[;VERS] Prevent file from being deletedM 5 PUR[ge] NAME.TYP Purges named file[s] to 1 copy *1e 7 REC[over] [NAME.TYPE;VER] REcovers locked file(s) *1D 2 SUB[mit] NAME[.TYP;VERS] Submit file to batch *4 4 TYP[e] NAME.TYP[;VERS] List named file at terminal = UNP[rotect] NAME.TYPE[;VERS] Reset effect of protecting filei ( USE N,M Sets your working UIC to N,M ) 1. If no file named, defaults to "*.*;*"]3 If file name only given, defaults to "NAME.*;*" , 2. Wild card ("*") use usually unrestricted A 3. Care should be taken using wild cards with "PURge" and "FREe"  4. Defaults to NAME.BIS 5 5. XXX NAME defaults to "F77 NAME,NAME/-SP=NAME.FOR"S& or "MAC NAME,NAME/-SP=NAME.MAC" G A provision for easily adding MCR programs to the system has also beenSG introduced. A command of the form "XYZ ....." When "...XYZ" is not in- 6 stalled in the system will have the following result. & 1 Attempt to INStall LB:[11,1]XXX.TSX& 2 If successful execute said MCR task( 3 remove task "...XXX" when it finished @ If the install fails, you will get a "TASK NOT INSTALLED" errorK PAGE 58 ORCo C M A -: OBJECT TO MACRO CONVERSION (ORC) o e 1. INTRODUCTIONi oI ORC is a utility which converts PDP-11 object code tod& MACRO-11. Its uses include: l0 * checking code produced by compilersI * on-line debugging of code produced by a compiler which doesh6 not give an assembly listing (eg. CORAL). TI For ORC to produce sensible output, the object code should I have data and instructions in separate program sections with D I and I attributes respectively. The object code produced by the < CORAL and F4P compilers satisfy this requirement.I The F4P compiler produces its branch instructions after it hasyI produced the other object code which may look a littleh9 strange, but is in fact correct MACRO-11 code.CI The threaded code produced by the FORTRAN compiler (FOR) iso3 not suitable for conversion to MACRO-11.s rI The MACRO-11 code produced by ORC can be assembled in the 4 usual way to produce an assembly listing. m e 2. USING ORC nI When the task is initiated it issues a prompt and receives aa$ command line of the form: t5 ORC>outputfilespec=inputfilespece uI The usual RSX-11 conventions for file specifications apply. NocI switches are allowed in the command line. If the extension isnE not supplied in a file specification, it is assumed to be:b a, .OBJ for the input file- .MAC for the output fileU GI An indirect command file may be specified, but indirectc+ command files may not be nested.: tI ORC converts the object code in the input file into MACRO-11eI and writes it to the output file. The MACRO-11 file can theniH be assembled in the usual way to produce an assembly listing. sI During proces00@rqonnl]ldsing, ORC allocates a temporary file (ORC.TMP) I under the user's uic on the system device. If ORC is aborted,U' this file should be deleted.i I ORC uses in-core tables to store local symbols, labels, globalt : t+ -1-tK PAGE 59 ORC. M9 OBJECT TO MACRO CONVERSION (ORC)l y D symbols, and program section names. These can hold up to:( * 256 local symbols' * 512 local labelst4 * 100 global symbol definitions/ * 26 program section namesr aI This should be enough for most object files, but the first I three of these tables can be extended at task build time, if  required. I Local labels are used when referring to locations within the I same (instruction) program section. They are of the form n$ 0 where n is the location of the label. Example:l MOV R0,R1 BEQ 6$  CLR (R0)  6$: INC R1u bI Local symbols are used when referring to locations withinhI other program sections, or within the same program section ifI it contains data. They are of the form xn, where x is a letter I (A, B, C,...) defining the program section and n is the = location of the symbol within the program section.E Example: ! .PSECT DATA,D  C00000: .WORD 0! C00002: .WORD C00000: ;" .PSECT INSTR,I% MOV #C00002,R0w iI In certain circumstances, ORC may reference symbols which areiI not defined. The positions of these symbols can be determinede from their names. n  3. ERROR MESSAGES  # ORC -- COMMAND I/O ERRORsI An I/O error ocurred during input of the command line, I or a bad indirect command file name was specified, orC6 indirect command files were nested.  ORC -- SYNTAX ERRORA A syntax error was detected in the input line.y l% ORC -- BAD INPUT FILE SPECh& ORC -- BAD OUTPUT FILE SPECI A switch was specified or 'wildcards' were used in the& file specification.   + -2- K PAGE 60 ORCa c9 OBJECT TO MACRO CONVERSION (ORC)n e - ORC -- OPEN FAILURE ON xxxxxx FILE * ORC -- I/O ERROR ON xxxxxx FILE- ORC -- FAILED TO CLOSE xxxxxx FILEEI These errors may be caused for a variety of reasons, I eg. device offline, device full, privilege violation,cI file does not exist. The message specifies whether the F error ocurred on the INPUT, OUTPUT or SCRATCH file. c& ORC -- PSECT TABLE OVERFLOWI Only 26. program sections are allowed in one object I file, including the absolute (. ABS.) and blankL PSECTs. & ORC -- LABEL TABLE OVERFLOWI Only 512. local labels are allowed in one object file.pI This number can be increased by editing the commandp+ file and rebuilding ORC.r u- ORC -- LOCAL SYMBOL TABLE OVERFLOWI Only 256. local symbols are allowed in one object I file. This number can be increased by editing the 3 command file and rebuilding ORC.  . ORC -- GLOBAL SYMBOL TABLE OVERFLOWI Only 100. global symbol definitions a00Hrq=onnnndre allowed in oneiI object file. This number can be increased by editingm7 the command file and rebuilding ORC.    CK PAGE 61 PAGl  NEW UTILITY PROGRAM AVAILABLE     PAG PAGinate listing program e7 Provides listings of programs etc on a paginated basis 1 so printing does not occur near the paper folds.O5 Also, listing will contain 2 header lines identfyingy  Our institution.1 DEVice, UIC, file name, extension and version #s DATE and TIME of listing  calling sequence  & MCR>PAG[elist] DEV:[UIC]NAME.TYP;VERS  orC , MCR>PAG DEV:[UIC]NAME.TYP=DEV:[UIC]NAME.TYP < If only one file specification is entered, the listing will be queued for printing at LP: > If both input and output file specifications are entered, the7 listing file will be left on the disk and not spooled.O  9 One switch has been provided to enhance listings at LP1:  : The switch "/TA" instructs PAG to output the listing with: leading "TAB" characters so that the output on LP1, after9 removing the margins, can be punched and inserted into aG; ring binder without losing the first few characters of in-p formation.sP PAGE 62 PLOTSUBS eF  t o PLOTSUBS s c a5 fortran callable subroutine package s5 ------- -------- ---------- ------- l1 for storage scope plotting a1 --- ------- ----- -------- e dG PLOTSUBS is a set of object modules of fortran subrou- fG tines suitable for the plotting of graphic data, (axes, data G points, contiguous curves,anotations) on the VT-01 storage  scope.  G PLOTSUBS may be included in any fortran program during cG task build proceedures. the following is a typical procee- - dure.   8 TKB>XXXXXX,XXXXXX=XXXXXX,PLOTSUBS/CC,PLOTDATA  TKB>/  ENTER OPTIONS 8 TKB>ASG=VC:N (N=DEV USED IN SUBROUTINE CALLS)  -  G Descriptions of the various subroutines and their cal- $ ling proceedures follows.  sG Unless otherwise mentioned, all plot co-ordinates refer BG to a 4096 X 4096 matrix with 0,0 at the lower left corner of @ the screen and 2048,2048 at the center of the screen. P PAGE 63 PLOTSUBS G PAGE 2 IF  n a+ CALL OPEN(IDEV) f o  sG Prepares storage scope (assigned to device idev during B5 later task build proceedure for plotting.) e e cG Scope is programmed for storage mode, non write-thru, and nG put through an erase cycle. A 1-second wait is introduced 6E to insure that erasure is finished before plotting starts. P PAGE 64 PLOTSUBS G PAGE 3 F   = CALL CHARAC(IDEV,IMESS,NBYTE,IXP,IYP,ISIZE,IORIEN)  p s VARIABLE DESCRIPTION n r -3 IDEV =The fortran logical device number F IMESS =A (usually dimensioned) variable containing an ascii 2 message as an ascii byte string. 9 NBYTE =The number of characters in the message UB IXP =X location of start of message, defined at lower + left corner of character. A IYP =Y location of start of message, also lower left A> ISIZE =Size of characters,00Prqonnl]ld (7 to 20 is normal size) F IORIEN =Character orientation. 0=letters on right side, 1= A characters upright, 2=characters on left side. iP PAGE 65 PLOTSUBS TG PAGE 4 sF  e 9 CALL DATA(IDEV,INCREM,NWORDS,IXP,IYP,IMODE) e e A VARIABLE DESCRIPTION t , + IDEV =The fortran device number rD INCREM=A dimensioned variable containing word/byte values C equal to the X and Y increments from a data point 1 to the next point in the curve. L9 NWORDS=The number of increment pairs in INCREM + IXP =X location of first point + IYP =Y location of first point : IMODE =Mode of incremental data. 0=byte,1=word P PAGE 66 PLOTSUBS fG PAGE 5 gF   a7 CALL CODATA(IDEV,ICOORD,NPOINT,IXP,IYP) .   VARIABLE DESCRIPTION e p s* IDEV =The Fortran device number F ICOORD=A dimensioned variable containing successive X and Y 6 co-ordinates of points to be plotted 4 NPOINT=The number of points to be plotted - IXP =X location of initial point - IYP =Y location of initial point 5P PAGE 67 PLOTSUBS G PAGE 6 F   ; CALL AXIS(IDEV,IXP,IYP,LENGTH,JDIR,ILAB,NCHAR) n   VARIABLE DEFINITION  t o/ IDEV =Fortran logical device number t* IXP =X location of axis start * IYP =Y location of axis start < LENGTH=Length of axis (must be a multiple of 100) . JDIR =Direction code, 0=X-axis,1=Y < ILABEL=Dimensioned variable containing axis label $ as an ascii string > NCHAR =Number of characters in the lable. if NCHAR / =0, no lable will be printed. )P PAGE 68 PLOTSUBS dG PAGE 7 F  l l3 CALL SYMBOL(IDEV,IXP,IYP,ICHAR) ,   VARIABLE DESCRIPTION l o i/ IDEV =Fortran logical device number r- IXP =X location of symbol center t- IYP =Y location of symbol center a NCHAR =Symbol code  1=PLUS  2=CROSS  3=DIAMOND  4=SQUARE  5=CIRCLE K PAGE 69 QUX 3 QUX - Queue listing with extensions 5-SEP-79Y )9 ...QUX, for QUeue Extended, reports on entries in the 9 spool queues. It has options which enable it to list A expected print time and pages and also give expanded listingso2 of the files contained in concatenated output.  command format - C MCR>QUX [/switches]3 D> Note that QUX with no switches is equivalent to queue/all. + the available switches are as follows -  G= /TI[:filespec] - List the print time and pages for files75 queued for printing. if it is a concatenatede5 entry, all the files in that entry are summed " up and the totals printed.5 If /TI:filespec is used, print time and pages 6 are reported for that file alone and the queue6 is not searched. this is useful to examine an6 output file for 00Xrq=onnnndprint time before it is queued for printing. 3 /EC - Expand concatenated entries. IndividualI6 entries in a concatenated list will be listed. 4 /OW - List only those files associated with the6 current users default UIC. This is equivalent to QUE/LI. .5 /PD - Print deferred. This switch will list the 3 files in the 'print deferred' queue. Thesee3 files are ones which are not yet queued forn6 printing, but are future concatenated entries.6 Also lists the files being generated by active4 batch jobs, i.e. BATCH.LOG and LP.SPR files.5 Entries in the active and pending queues will- not be listed with /PD.  e ** notes **r l8 Accumulated times are printed for each queue if /TI= is specified. These times are based on LP0: being 300LPMi= and any TT device (TT01 or TT03) being set at 2400 baud.n w3 For LA36's at 600 baud, multiply print time by 4.r u9 for LP1: at 150 lines/minute, multiply print time by 2.i 9 If there is an error opening a file, the FCS error codeL? is printed in the page count column. This will be a negativel number.  > Maximum field for file version number is 4 octal characters.5 Maximum field for sequence is 3 decimal characters. K PAGE 70 QUX # ...QUX - examples 5-SEP-79   o MCR>QUX /TIa tT DEV ACT ACCOUNT FILE SPECIFICATION SEQ PRI FO CO PBC PAGES MINS C BA0 * [200,201] DB0:[1,4]RAD2.BIS;4 50 0 0dE BA0 * [330,2] DB2:[330,2]SUMMER3.CMD;2 100 0 1 * T LP0 * [310,1] DB2:[310,1]SFSIN.FTN;3 100 0 1 *N 5 0.9T TT10 * [310,1] DB2:[310,1]PFSCM.COM;24 100 0 1 * 3 0.5T LP0 [310,1] DB2:[310,1]PFSCM.COM;24 1 100 0 1 * 3 0.5T --------------------------------------------------------------------------------T LP0 8 1.4T TT10 @2400 BAUD 3 0.5   MCR>QUX /ECS G DEV ACT ACCOUNT FILE SPECIFICATION SEQ PRI FO CO PBC1 C BA0 * [200,201] DB0:[1,4]RAD2.BIS;4 50 0 0BE BA0 * [330,2] DB2:[330,2]SUMMER3.CMD;2 100 0 1 *-C LP0 * [225,22] DB0:[1,4]XBSUSE.LST;1 100 0 1-C LP0 [230,10] DB1:[230,10]DRS.SPR;1 1 100 0 1 G LP0 [310,1] TT1:CONCATENATED 2 100 0 0 C G [310,1] DB2:[310,1]PFSCM.COM;24 100 0 1 * C G [310,1] DB2:[310,1]PFSLI.FTN;32 100 0 1 * C1  A MCR> QUX/OW/EC DG DEV ACT ACCOUNT FILE SPECIFICATION SEQ PRI FO CO PBCE 2G LP0 [310,1] TT1:CONCATENATED 2 100 0 0 C G [310,1] DB2:[310,1]PFSCM.COM;24 100 0 1 * C G [310,1] DB2:[310,1]PFSLI.FTN;32 100 0 1 * C  0  MCR> QUX/TI/PD :T DEV ACT ACCOUNT FILE SPECIFICATION SEQ PRI FO CO PBC PAGES MINS G LP0 D [1,1] BA0:CONCATENATED 100 0 1 C T D [1,1] DB0:[1,4]BATCH.LOG;4 100 0 1 C -29 0.0T D [325,3] DB0:[1,4]LP.SPR;1 100 0 1 C 17 3.5G LP0 D [1,1] BA1:CONCATENATED 50 0 0 C1T D [1,1] DB0:[1,4]BATCH.LOG;5 50 0 1 C -29 0.0T --------------------------------------------------------------------------------T LP0 17 3.5  $ MCR> QUX/TI:DB1:[225,1]IRACP.MAP O FILE SPECIFICATION LINES PAGES MINS @300 LPM MINS @2400 BAU00`rqonnl]ldD  J DB1:[225,1]IRACP.MAP 4094 63 13.6 13.8  K PAGE 71 RCV   new system utility  RCV @ MCR task to recover a file locked as a result of task abortion 1 Original author R B French NOV 76 The Boeing Co 0 /L switch added F. Borger MAR 77 Michael Reese/ /A switch, large file modifications, FEB 81I S calling sequence   MCR>RCV Filename[/SWitch] IH The normal REC[over] command will only unlock a file that was lockedH due to abnornal termination. After use, some files may end up 0 length< due to the end of file indicators not being properly reset. H RCV will unlock the file (if locked,) unless another task has write ac-H cess. It will then scan the file and rewrite file attributes to reflect- the actual size of the file (rather than 0).w   RCV has two legal switches:) /LA:NNN Set number of records to be NNNF/ /AD:NNN Change number of records by NNN (+/-)a / NNN must be a legal single-precision decimal $ number (between -32767 and 32767) H For fixed length record files, this switch lets one override the result@ of the recovery and explicitly determine the number of records.  kI The previous limitation involving large files and file header extensionse has been removed. a iK PAGE 72 RNPN oK  N sL RNP is a pre-proccessor for runoff files which allows for the in- L teractive entry of variable data into the body of standard forms @ (letters, reports, etc.) for later processing by RNO.   TYPICAL COMMAND LINE l g, MCR>RNP DDN:FILE.EXT=DDN:FILE.EXT  e) Input defaults to: SY0:DOC.RNP  - Output defaults to: SY0:RNORNP.RNON  EXAMPLES:   MCR>RNP PROGRAM  L This command line causes RNP to become active, and to begin read- J ing from the file SY0:RNP.RNP. RNP will then create a fileK SY:PROGRAM.RNO under the current UIC, and write the documentation)( produced to this output file.   I MCR>RNP  L This command causes RNP to become active and await command input.  Y O MCR>RNP LETTER=LETTERu L This command causes RNP to become active, use the file E SY:LETTER.RNP as input, and create the file SY:LETTER.RNO. e L FEATURES: The RNP utility reads lines from the specified input L file and directly writes these lines to the output file, with the L exception of those lines which begin with a control character. L The control character indicates to RNP that a special function is L to be performed at that point of the procedure. The following L control characters (and associated actions) are currently recog-  nized by RNP:  TK PAGE 73 RNPe i K   " CHAR FUNCTION  t2 # Mark this position in output.  c4 ? Accept input from the terminal, 6 until an EOF (CONTROL-Z) is typed 5 if immediate EOF is encountered, s9 rewind file to last marked position. R 6 " Output record to the terminal, not; to the output file, (used as a prompt)  4 @ Resume input from the specified 5 file (four levels of indirection " are allowed).  u t  SAMPLE OF RNP OPERATIONe i6 *****************MAIN COMMAND FILE "DOC.SAM" )! "SAMPLE TERMINAL PROMPTiB ?THIS IS NOT SEEN IN OUTPUT, BUT T00hrq=onnnndURNS ON TERMINAL INPUT END OF TERMINAL INPUT  NOW READ FROM DOC.SA1e @DOC.SA1 END OF DOC.SA1 INPUT END OF FILE DOC.SAM @9 *****************FIRST SECONDARY FILE "DOC.SA1"i l( ******************************( THIS IS THE INPUT FROM DOC.SA1( ****************************** @DOC.SA2 : *****************SECOND SECONDARY FILE "DOC.SA2" ( ==============================( THIS IS THE INPUT FROM DOC.SA2( ============================== N+ *****************RESULTANT OUTPUT. > THIS WAS TYPED IN IN RESPONSE TO THE TERMINAL PROMPT END OF TERMINAL INPUT* NOW READ FROM DOC.SA1 ( ******************************( THIS IS THE INPUT FROM DOC.SA1( ******************************( ==============================( THIS IS THE INPUT FROM DOC.SA2( ============================== END OF DOC.SA1 INPUT END OF FILE DOC.SAM M PAGE 74 SPELLS NK   D& SPELL  * * * 1.0 Summary H N L SPELL is a system of checking for spelling errors in text L files on the RSX-11M operating system. The program SPELL does L the checking and optionally may make changes, while DICTMK for- L mats a file for SPELL to use. It is written in FORTRAN-77 except L for certain file access routines that are written in Macro. The L program has been optimized as much as possible for speed. In L non-interactive mode a file will be produced which contains all L the words from the document that SPELL could not find in its dic- L tionary. In interactive mode words can be replaced, added to the L dictionary (DICTMK will need to be run again), or simply ignored.  uL For an in-depth see the source code as it contains much com- L ments. Automated extractions of comments (C+/C-) will tell the ( workings of all the routines.    o 2.0 Background  b rL The programs were written in FORTRAN-77 and were developed L on a PDP-11/t55 with 6-RK05, running RSX-11M V3.2. The programs L came from a desire on my part to have a system that could be used L to check my submissions for the DECUS North Texas Local Users L Group Newsletter. The only spelling checker I could find was the L one included in the Software Tools section of the Spring 81 L RSXSIG tape. As I didn't want to build software tools, I used L the data base as a starting point for program development. As L sequential reads were too slow for the upwards of 42,000 words in L the data base, I used Marge Knox's (now FORTRAN-77). Random ac- L cess - block i/o was decided on to minimize the time for disk L i/o. Using Ralph Stammerjohn's Index to the past RSXSIG tapes, I L was able to come up with Phil Cannon's routines for FCS file ac- L cess to the FDB. This enabled me to build the dictionary (using L DICTMK) using random access block i/o, set the size of the file, : and to truncate to the last block used on exit.  tL The prototype of this program would read the document to be L checked and put each different word in a list to be checked by L the dictionary and those misspelled written out to a file. This L worked somewhat allright for small files, but the larger the file L the more time that was spent checking against the list for each L word to insure 00prqonnl]ldthe word was not already included. Even small L files yielded 500 different words to be checked. This was before L the index for each letter was included on the average of 30 reads  for each word. tM PAGE 75 SPELLa lL Spelling Checker PAGE 2 K   c 3.0 Use o n eL To build SPELL copy DICT.SEQ to uic [3,3] or any UIC you L want if changes are made to the source code. @DICTMK will pro- L duce the DICTMK.TSK and @SPELL will produce the SPELL.TSK. Run L DICTMK to produce DICT.RAF (the random access file). Install ? SPELL or set up CCL to do it and pass command lines.  L To check a document for spelling, >SPE filename[/sw] will do L it. If you are not using a VT52 type terminal, please make L changes to SUBROUTINE DISPLA for the right escape sequences for  clear screen.  d  C 4.0 DICTMK  u tL DICTMK is the dictionary maker for the spelling system. It L is used to provide a random access block i/o dictionary with L internal indexes for all the letters. Access to the File Des- L criptor Block is possible by the use of Phil Cannon's routines L that use an internal FDB in a byte array. Thus truncate on close L is possible using block i/o. DICTMK will also provide statistics L on the words in the dictionary after it has built the dictionary.  n  e 4.1 Dictionary   L The dictionary that goes along with this program comes from L the software tools section of the Spring 81 RSXSIG tape. It was L DICT.;1. It contains more than 42,000 words. The shortest word L is 'a' and the longest is 22 letters. From looking through it, L there are some proper names and places. This may or may not be L advantageous 3% of the total space, so deleting them may not buy  you much space.  n   4.2 Adding words  r hL When spell runs and produces a list of words that you want L to add to the dictionary, run DICTMK from where SPELL ran (that's L where the file of words is. DICTMK will take the file and merge < it into DICT.SEQ then produce another DICT.RAF. M PAGE 76 SPELLg sL Spelling Checker PAGE 3 K p  s 5.0 SPELL  d hL SPELL is the spelling checker program. It uses the diction- L ary file and its own internal list, and checks the text for words L not found in either. Several switches are available for the com- L mand line, and several commands are available in the interactive  mode.  i C k 5.1 Switches   L When invoking SPELL several switches are available. To in-  voke SPELL: # >SPE filename[switches] or E >SPE " SPE>filename[switches]  A The switches for the command line are as follows: 6 /Q process in quick mode (non interactive) < /F file is FORTRAN source, process comments only < /T terse comments, on interactive, display line  and word only 2 /N numbers are valid symbols in tokens I /L[:filename] preload the add list with words that are correct 6 if filename exists use this list, if not  use 'SPELL.DCT' 6 /S:x ignore words with 'x' or less letters   m  5.2 Modes   L 00xrq=onnnnd There are two modes of operation for the spelling checker. L Depending on the availability mode can be chosen. The interac- L tive is the non-quick mode, so named since it takes longer to + process a document in this mode. l    5.2.1 Quick -  tL The quick mode provides for no interactive processing. It L will scan the document and make a list of words that it didn't L find in its dictionary or in its internal list. This is the mode 8 used for long documents and on line checking. M PAGE 77 SPELL- cL Spelling Checker PAGE 4 K e i m 5.2.2 Non-quick -  oL The non-quick mode (default) is interactive with the termi- L nal and uses screen clearing. This screen clearing can be ad- L justed to be compatible with the terminal type. For adjustments L see SUBROUTINE DISPLA. In this mode the document is scanned for L number of lines, to provide the operator with a scale of how far L he has to go. If the verbose command has been used (default), A the full display line and the given word is displayed. n i m  5.2.2.1 Display -  tL The terminal display in the verbose mode will display the L spelling header line which holds the title and version number. L Next is a short display of the commands available. Then a short L list of the statistics of the spelling checker so far this ses- L sion. Thus the operator can see how many lines have been pro- L cessed, how many words, and the number of words added to each of L the lists. Next is the line containing the word in question and . then the word itself with a prompt.    l 5.2.2.2 Commands - h i& The commands available ; (where is a number between 1-9) ignore words  or less in length i4 A this word is correct, add to dictionary ; C this word is correct, do not add to dictionary 3 E exchange words, but do not add to list m! L replace current line * N next word, do not add to list  T terse display  V verbose display : W wrong spelling, make correction to dictionary 1 X exit, as if end of document was here    w 5.3 Adjustments 9 g eL Several adjustments can be made to this program by the in- L terested user. Words can be added to the internal list (at the L sacrifice of space). Overlays are possible. Adjustments to the L display section are possible for other than VT52 type terminals. L The location of the dictionary can modified to increase the speed  of reads. M PAGE 78 SPELLA sL Spelling Checker PAGE 5 K n l  5.3.1 Overlay -  sL Two overlay descriptions are given if you need them. L SPEED.ODL has been set up to provide the fastest running of the L overlay. The most used portions are all in memory so no overlay L reads are needed. SPACE.ODL has been set up to provide the smal- L lest version of SPELL. Only those sections needed are in memory L at one time. It will probably be very slow since many overlay L reads are needed for each and every word checked. These overlays L are not tested so don't blame me if they don't work. SPEED.ODL L will not run faster than the non-ove00rqonnl]ldrlayed SPELL. SPELL will run L faster if adjustments are made to FNDNOR which fills the normally L used words list. If more words are included internally a incre- L ase in speed will be likely but this takes space and this task is  at the limit now.  n v a 5.3.2 Add words -  eL There is a little space left in the program to allow for the L expansion of the internal list it checks first. The current L words in this list were found in the "Book of lists" which refer- L ences "American Heritage Word Frequency Book" of 1971. There are L currently 12 words in this list in the order in which they occur L in their usage. If it can be found a longer and more complete L list is in "Computational Analysis of Present-Day American En- L glish" by H. Kucera, Brown University Press, 1967. From this it L can be seen that with a list of 16 words 28 per cent of the words L in a document can be found. If 64 words are used 43 percent can L be found with a corresponding decrease English occur in a vocabu-  lary of 134 words.  y c  5.3.3 Display -  fL Adjustments can be made to SUBROUTINE DISPLA to provide the L escape sequences for ANSI VT100 and others. Even fancier termi-  nal i/o can be done. o h i  5.3.4 Disk - w L A great increase in speed can be made if the dictionary is & kept on a solid state disk. K PAGE 79 SPYa <  l -C Aeronautical Research Associates of Princeton (A.R.A.P.) o7 Box 2229, Princeton, NJ 08540 (609) 452-2950 0& Author: J.D. Leonard  P SPY is an interactive display program written in the spirit of P DEMO and similar to the display's available on the VAX. SPY will dy- P namically display timesharing task activity on an IAS system. It was P developed on IAS VS3.0, so some changes may need to be made for IAS P VS2.0. SPY will run on terminals which support direct cursor ad- P dressing. Refer to SPYBLD.DOC and SPYIN.FTN to build SPY for various P terminal types. The default is VT52. SPY uses about 5700 words for P a 32 terminal 8 batch stream system and about 5200 words for a 16 P terminal 4 batch stream system. CPU requirements are on the order of P DEMO for similar update intervals. SPY will display itself while E running so you can see how much of the system it is using.  pP SPY currently offers a choice of 2 displays. Future versions ? will hopefully display information on disk activity. t P Display #1 shows the percent of CPU time spent in Batch, Inter- P active or terminals, Swap time, Null time, and Real time or System P time. Percent, # of ticks accumulated over last interval, and bar P graphs showing the percentages are updated at the specified interval. P The percentages are the same as those displayed in the new DECUS DEMO  program.  rP Display #2 shows timesharing job activity on a per-terminal P basis. Each line shows the TI, username, jobs running (up to 3), to- P tal ticks accumulated for the job(s), ticks used since last display P update, percent utilization of elaplsed time, and a bar graph of the P percentage used. Up to 70% is shown on the graph. The display is 8 updated at the specified interval, a'la DEMO.  nC The command line to initiate ...SPY is as follows - h 9 MCR> SPY[display #] [terminal type]  i where - IP 00rq=onnnnd display # is either 1 or 2. If not supplied the default ; display (task build parm) will be run. pP terminal type is a 4 character mneumonic to describe the P type of terminal SPY will be running on. This is to set P the proper escape sequences if they differ from the de- P fault. See SPYIN.FTN to define terminal types other than ! the SORO(C). e I$ e.g. MCR> SPY1 ( MCR> SPY VT52 ) MCR> SPY2 SORO  mK PAGE 80 SPYc oP SPY.DOC PAGE 2 O SPY VS02.0 10/23/79  o tP The following commands are available while SPY is running. / Input is processed as it is in DEMO.   Dn >9 where n = 1 changes to display 1 and 5 n = 2 changes to display 2   In P where n is the time between display updates in seconds,  like DEMO.  A C Clear screen and refresh display.  2 X or ^Z Cause SPY to exit.  eO The following command descriptions pertain only to display number 2. D . Ln P where n is the number of lines to display, normally 24. P e.g. may set to 14 if on VT100 in 132 col mode. The value D of L is shown at the bottom of display 2 (L=n).  0 R range1,range2, ....rangen P Set the range of terminals to display where range1 through = rangen can be any one of the following -  cP DEF - set range to default setting specified at task build  time.  mP ALL - set range for all possible terminals to display. P Will set to display MAXTT terminals and MAXBA batch stre- 6 ams. See SPYBLD.DOC and SPY.CMD.  ,P TTn or BAn - for a single terminal where n is the octal un-  it number.  P TTn-m or BAn-m - for an inclusive range of terminals where K n,m are the octal unit numbers. m must be .GE. to n. i P Any combination of the above is valid, presuming the unit P numbers are within the upper limits set by MAXTT and MAXBA.  2 e.g. R TT1-6,BA0-2,TT15,TT20 R ALL $ R DEF,BA5 K PAGE 81 SPY  -P SPY.DOC PAGE 3 O SPY VS02.0 10/23/79  b t# ** Notes on display 2 **  P If the selected range encompasses more terminals than there is + room to display them, SPY will - ,P 1) Try to display terminals with only users logged on, if this / exceeds the display area then - P 2) SPY will select those logged on with jobs running or suspended. P If this number is less than the display area, some terminals on- P ly logged on will also be shown, to fill out the display. If P the number of terminals with jobs running is greater than the # display area then - mP 3) SPY will select the jobs with the largest percent useage and P display only those jobs. Setting L to a small number will force - this deduction to take place. g P Also shown on display 2 is 'SF', the swap flag indic00rronnl]ldator. If this is P '*' then one of the jobs running from that terminal was swapped out P when SPY 'looked' at it. Time of day and ticks elapsed since last P update are displayed on the top line. On the bottom line is the sum P of all timesharing jobs CPU useage divided by elapsed time to give P percent utilization. UNS is the number of users (logged on) not P shown if they exceed the number of lines to display, and JNS which is C jobs not shown if there are some of those not displayed. oK PAGE 82 SRD ! SRD - Sorted Directory Utility! ==============================t  User's Guide ============  1. Introductiont ============  G SRD is a utility that produces sorted directory listings and G performs some useful directory manipulation that is (still) absentxG from PIP. In addition it produces an out- put file that can betG edited by the standard RSX Editor (EDI) [which PIP does not] and G provides a wildcard facil- ity in specifying filenames superior to G PIP so that, for instance, all files beginning with the lettersi RSX could be listed.  G SRD has to read the entire directory into core before sorting it.dG The size of it's buffer can be increased by installing it with an G increment. On an 11M system, it will try expand itselfrG dynamically. If it cannot fit the entire directory in core, itdG will give a warning message and do the directory in chunks. Each G chunk will be sorted seperately, however. A write-back will bea cancelled in this case.  2. Command Line. ============= G SRD can be invoked by any of the standard RSX/IAS invocatione methods, i.e.  RUN ...SRDi or SRD or SRD command-lines G In either of the first two cases, SRD prompts for further commandst with:  SRD> . A CTRL-Z will terminate SRD in this mode. G The format of the command line is similar to PIP's directoryi operations, i.e.c = SRD>[output filespec=][input filespec][switches] where  Output Filespec G defines the output specification for the listing. This may.G be a file (e.g. DIR.LST), a device (e.g. LP:) or omittedhG all together (in which case TI: is used). If an outputG specification is given at all it defaults to. SY:DIRECTORY.LST. K PAGE 83 SRD  Input Filespecs G defines the input specification defining the files on G which the switches are to act. This usually works (see the.G switch /WI for a further explanation) on a 'partialhG specification' basis for each of the filename, extension/ and version number fields so that:   SRD SU/LI G not only lists out the latest file called SU (as PIP G would), but lists out all files whose filename starts with G the two letters SU, for all extensions and all  versions. G To emphasise this, note that S.M;1/LI would list out alle the following:-  S.M;1 SYSTEM.MAC;1  SYS.MAP;1 START.MY;13  and so on. G Naturally, if the Input Filespec is omitted, *.*;* isf assumed. Switches, G are any valid combination of the switches described in G the next section. Defaults for the various switches will be discussed later. A Note that SRD will accept an Indirect Command File as input.- K 00rq=onnnnd PAGE 84 SRD  3. Switches ======== , 1. Produce a Directory Listing (/LI:n) G This just lists the filename, extension and version of the G files that meet the specification given. The output is sorted, % by default, into the order:-s , Ascending on File Extension' Ascending on File Name , then Ascending on File Extension+ then Descending on File Version  G In addition a header and trailer line are output for each UFD. G The header line contains the name of the UFD, the current dateTG and time, and the command line that was originally used. thefG trailer line contains the number of files selected, and thebG total number of files in the directory. If one of thenG switches /MI, /FU, /AE, /AF, /BE, /BF or /DA is specified thegG total number of blocks used/allocated (for those files " selected) is also listed. G This switch can be negated and used to suppress the listingoG that usually accompanies some of the other switches (e.g. /WBaG or /PU) - in which case just the header and trailer lines arerG printed. If n is specified, it defines the width of the G listing (72 to 132) - if not it defaults to the device buffer  size. : 2. Produce a 'Middle' Directory Listing (/MI:n, /M2) G This acts similarly to the /LI switch, except that it lists G out more information. The extra information listed out G depends on the setting of the /M2 switch and is either (/M2/ not specified):-e ' Creation Date and Timet' Revision Date and Timet Revision Number  or (/M2 specified):- 3 Number of Blocks Allocated to Fileu) End of File Block Number)4 Contiguous/Locked/Multiheader Flags File IDH Creation Date and Time (Revision Date if /RD specified) K PAGE 85 SRD 1 3. Produce a Full Directory Listing (/FU:n)e E This acts similarly to the /LI switch, except that it listss' out yet more information, i.e.) 3 Number of Blocks allocated to Filel) End of File Block Numbere4 Contiguous/Locked/Multiheader Flags File ID Owner UIC! Protection CodesR' Creation Date and Time ' Revision Date and TimeG Revision Number G Note that while a file is being created SRD will list thesG blocks allocated as 0, rather than the value PIP produces, 7 because the header is not yet set up properly. 9 n, if specified, has the same meaning as in /LI.C $ 4. Change the Sort Order (/NA) G If this switch is specified the output sort order is alteredo to be:- ' Ascending on File Name , then Ascending on File Extension+ then Descending on File Version  ) 5. Select Files not Specified (/NE)  G If this switch is specified then all files that do not meet 0 the given specification are listed out. / 6. Select Files by Version Number (/HV:n)n G This switch lists out all files which meet the givencG specification whose version number is greater than or equal to . n. If not specified, n defaults to 2. 5 7. Select Most Recent Versions of Files (/SV:n)e G This switch lists out the latest n versions of all files that G meet the given specification. If not given, n defaults to 1. G If n is -1 then this lists out the oldest version of the file.  2 8. Select Obsolete Versi00rronnl]ldons of Files (/OV:n) G This switch restricts the listing of file names to alleG versions except the "n" highest versions. The default valuedG for "n" is 1. For a given "n", /OV:n lists file names notVG listed by /SV:n, and the files listed are those that would belG deleted if /PU:n were specified. As indicated by thetG definition, if n is -1 then all but the oldest version areh listed out. K PAGE 86 SRD 3 9. Select Files by Date (/AE,/AF,/BE,/BF,/DA)n G Each of these switches takes an optional date and/or time asiG parameter, in the form dd-mmm-yy hh:mm, or hh:mm dd-mmm-yy,  etc. e.g.:l ' /DA: 03-DEC-79 10:30t G (In fact the date may be specified as ddmmmyy if desired). IfoG no date is specified, today's date is assumed. If no time isu, specified, time checks are ignored. G Then /AE lists all files created on or after the given date/# (and time).oG /AF lists all files created after (but not on) the givent( date (and time).G /BE lists all files created on or before the given date9# (and time).dG /BF lists all files created before (but not on) the givenp( date (and time).G /DA lists all files created on the given date (and time).A G For these switches the listing includes the creation date and G time. If the /RD switch is specified then the Revision DateoG is used for the checks and the listing includes the Revision  Date and Time.a 1 10. Use wildcards in filename (/SE:filespec)  G Because of the parsing structure in RSX, it is impossible to G have wildcards for letters in the Input Filespec, and so thisiG switch is included to allow the facility. The filespechG argument it takes is identical to that defining the Input : Filespec with the following additional features:- 9 (i) % (or ?) matches one wildcard character.v G (ii) * matches any number (including zero) of wildcard: characters. G Any combination of these characters may be used in any of thelG filename, extension or version number fields. Note that withiniG each field, if an * is specified somewhere, and the final G character is not an * then that final character is assumed to 8 be required as the last character of the field. H (e.g. *D will match FRED but not FREDA *D* will match either). K PAGE 87 SRD Example:t $ Suppose we have the files:- = FRED, FREDA, FREDERIK, FEED, FILD, FEEDER, FRIED, FDt then  F /SE:F%%D will match FRED, FREDA, FREDERIK, FEED, FILD,FEEDER% (if /WI specified)a / /SE:F%%D< will match FRED, FEED, FILD h) (if /WI not specified)  9 /SE:F*D will match FRED, FEED, FILD, FRIED, FD. ) /SE:F*D* will match everything.  G (Note that /SE cannot be used in combination with a standarde Input Filespec).   11. Delete Files (/DE)D G This switch deletes (and lists) all files that meet the givena specification., $ 12. Purge the directory (/PU:n) G This switches purges all but the highest n versions of all G files meeting the Input File Specification and lists thoseRG purged. If not specified, n defaults to 1. If n is -1 then F all but the oldest version of the specified files are purged. 0 13. Selectively Delete Files (/SD:filespec) G This switch lists all 00rq=onnnnd the files that meet the givenmG specification, and for each one prompts the user to see if hey? wants to delete it. There are five allowable replies:-s % Y = Delete this filen, N = Do Not Delete This File; G = Delete the rest of the specified files 9 Q = Exit without deleting any more fileseG CTRL-Z = Terminate the sequence and return to commandf leveli G Any other response is interpreted as "N" (NO). If "G" (GO) is G entered, the question "ARE YOU SURE?" is asked in order to bee- sure that it is the proper response.  C The filespec, if given, follows the same rules as for /SE.T $ 14. Spool the Output File (/SP) G If this switch is specified then the output file (if one wasmG specified) is spooled to the Print Spooler (PRT...). IntG addition, if a multiple-UIC search is being done, SRD insertsp) a form feed before each new UIC.) K PAGE 88 SRD , 15. Write Back the Directory File (/WB) G If this switch is specified then as well as producing a G listing, SRD writes the file headers back to the UFD in theiG order of the listing. This means both that the UFD is G compressed (which could speed up FCS operations) and that-G future PIP operations will proceed in the sorted order given.n5 A particularly useful application of this is   SRD [0,0]/WB / which will sort the UFD files, so that   SRD [*,*]/LIi G will then list files in numeric order of directories as wellh$ as sorted on filename, etc. G Write Access to the directory is required and Write Failure iscG usually due to a protection violation. In the event of afG write-back failure, the operation is attempted several times. A 16. Use Revision Date (/RD) G On the date selection, use the revision date (if any). InUG addition, if this is used for a /MI (/M2) listing the Revision : Date will be listed instead of the Creation Date. ! 17. Sort the Directory (/SR)  G Sort the filenames. This option is turned off if the files are G not being listed or written back. You can also say /-SR to get G the files listed in the order they are in the directory. This 0 is the same order that PIP lists them.  8 18. Include System UFD's in Wildcard Searches (/SY) G If this switch is specified then all system UFD's (i.e. those G with a group code between 0 and 10 inclusive) will be includedrG in [*,*] or [*,n] searches. If it is switched off (/-SY) thenuG such UFD's will be ignored. This switch (or it's negation)uG has no effect unless the group code of the specified UFD isa wild. 1 19. Include [0,0] in Wildcard Searches (/00)h G If this switch is specified then [0,0] will be included in G [*,*], [0,*] or [*,0] searches. If it is switched off (/-SY) G then [0,0] will be ignored. [0,0] can always be listed by specifying it directly.  K PAGE 89 SRDh= 20. Treat all specifications as 'wild-carded' (/WI, /WD)c G One of the great powers of SRD is the ability to specify just,iG say, S as a filename and get a listing of all files with a G filename beginning with S. It is, however, also desirable at G times to be able to specify that you want only files with a0G filename of S on its own. The switch /WI controls this - with G 'implicit wildcarding' assumed if it is specified, but not ifG it is negated (see /SE for an examp00rronnl]ldle). In addition /WD G specifies whether the 'implicit wildcarding' indicated by /WI G also applies during delete/purge operations (yes if specified,  no if negated).G Note that if /-WI is specified, FRED will still be read astG FRED.*, but FRED. will only look for files (called FRED) with  a null extension. + 21. Select only Contiguous Files (/CO)a G This switch causes SRD to select only files which aref contiguous. ' 22. Select only Locked Files (/LO)  D This switch causes SRD to list only files which are locked. - 23. Select only Multi-Header Files (/MU)n G This switch causes SRD to list only files which have multipleb headers.  3 24. Print out the current Version of SRD (/ID)) = This option will display the current version of SRD.u 2 25. Print out the available Buffer Size (/SI) G This option will display the size of SRD's buffer which itlG uses to read the directory files into memory. This switch is G for diagnostic purposes only, and can be used to determine how 8 large a directory file can be processed by SRD. / 26. Attach output device if terminal (/AT)  G If this switch is specified then the output device (if it is awG terminal) will be attached during the operation. This has thelG advantage of allowing CTRL-O to be used to suppress anyeG listing, and the disadvantage of tying up the terminal duringnG what could be a long search. If the switch is not specifiedn+ the terminal will not be attached.d  27. Give brief help (/HE) G Typing /HE will print out a brief summary of the SRD switches.s K PAGE 90 SRD  4. Switch Combinations =================== E All switch combinations work as would seem logical. For example,  1 SRD /AF:7-DEC-79 10:30 /BE:7-DEC-79 14:44n G would list out all files created on 7th December between 10:30 andc 14:44.   SRD /PU/SDn G will list out the files to be purged and allow you to selectively  delete them.i  SRD /PU/-DE D will list out the files to be purged, but will not delete them,  and so on.  Restrictions are that 5 /DA cannot be used with /AE, /AF, /BE or /BFs7 Only one of /SV, /OV, /PU may be used at once.C7 Only one of /LI, /MI, /FU may be used at once. = /ID, /SI and /HE cannot be used with other switches.4 7 and other nonsensical combinations (like /NA/-SR).o G In addition it is not meaningful to negate the switches /NE, /HV,UG /SV, /OV, /AE, /AF, /BE, /BF, /DA, /SE, /PU, /SD, /ID, /SI or /HE.t  5. Switch Defaults =============== G Default values for the switches are set at Task-Build time, and G may vary from installation to installation. Any of the switches/G may be preset in this way, but usually the only ones affected aresG /LI, /NA, /RD, /SR, /SY, /AT, /00, /WI, /WD, and /M2. If in doubtkG about the defaults on your version consult your System Manager, oriG experiment with a few options (like [*,*]/LI to see if /SY and/or/- /00 are set) to determine which are set.  K PAGE 91 SRDl 6. Error Messages  ==============o @ 1. SRD -- DIRECTORY TOO BIG! RERUN WITH LARGER INCREMENT! G SRD was unable to expand its buffer sufficiently to hold theA! whole directory at once.o  2. SRD -- CMD READ ERROR!  G Either an error occurred in reading the command line, or a G comma was specified other than in the UIC of the Input orh Output Filespec.  ! 3. SRD -- CMD SYNTAX ERROR!  G The command line failed to parse co00rq=onnnndrrectly, and is therefore  invalid.T $ 4. SRD -- ERROR IN INPUT SPEC! - An invalid input filespec was given.r % 5. SRD -- ERROR IN OUTPUT SPEC!d . An invalid output filespec was given. " 6. SRD -- ERROR READING MFD! G An error occurred while SRD was trying to read the Master Filet Directory.   7. SRD -- PARSE ERROR! ; The output filespec could not be parsed correctly.T $ 8. SRD -- OPEN ERROR ON INPUT! 5 SRD detected an error opening an input file.- % 9. SRD -- OPEN ERROR ON OUTPUT!a 7 SRD detected an error opening the output file.O % 10. SRD -- DIRECTORY FIND ERROR!t 8 A directory was specified which does not exist. 11. SRD -- NO SUCH FILE(S)! > No files were found to match the input specification. H 12. SRD -- INVALID DATE FORMAT --- ENTER DD-MMM-YY HH:MM (1-JUN-76) G Dates must be entered in the form DD-MMM-YY HH:MM (or vicetG versa) or DDMMMYY HH:MM (or vice versa) with the single E exception that the date may be abbreviated to one character. K PAGE 92 SRDd* 13. SRD -- ERROR READING FILE HEADER! B SRD detected an error while trying to read a file header.  14. SRD -- PUT ERROR! G An error occurred while trying to output a record to the  output device.   15. SRD -- WRITE ERROR! B An error occurred while trying to write back a directory.  16. SRD -- READ ERROR!m < An error occurred while trying to read a directory. $ 17. SRD -- ERROR DELETING FILE! 9 An error occurred while trying to delete a file.  . 18. SRD -- DIRECTORY PRIVILEGE VIOLATION! G The user does not have the required read/write access to thed given directory.  % 19. SRD -- DIRECTORY OPEN ERROR! A An error occurred while trying to open a directory file.t + 20. SRD -- DIRECTORY WRITE-BACK ERROR!D G An error occurred while trying to write a directory back intot the directory file. I 21. SRD -- WRITE-BACK CANCELLED--CAN'T FIT ENTIRE DIRECTORY IN CORE!  G A write back was requested (/WB) but cannot be performed as 6 the directory has only been sorted in chunks. 2 22. SRD -- FILE ID-SEQUENCE NUMBER MIS-MATCH! G An attempt to read a file header failed because of a file ID & and sequence number mismatch. 0 23. SRD -- HEADER READ-PRIVILEGE VIOLATION! G The user did not have valid access rights to read the file ' header for the specified file.  N PAGE 93 TASKER TASKER.DOCo dB TASKER IS A UITLITY FOR PATCHING TASK IMAGE FILES ON DISK. IT HAS THE FOLLOWING CAPABILITIES: MB (1) DESCRIBE TASK SEGMENTS: GIVES BEGINNING AND ENDING ADDRESSES> (PC VALUES) OF OVERLAY SEGMENTS AND/OR READONLY PSECTS. THE< ADDRESSES CORRESPOND TO THE ONES IN THE TASKBUILD MAP, AND< APPEAR IN IDENTICAL SEQUENCE. ALL REQUESTS TO THE PROGRAM@ CONCERNING A SPECIFIC ADDRESS MUST INCLUDE ITS SEGMENT NUMBER. @ (2) DISPAY MACRO SOURCE CODE: DISASSEMBLES A REQUESTED SECTION< OF THE TASK. IF REQUESTED, THE PROGRAM WILL TRY TO DISAS- SEMBLE DATA. TB (3) REPORT TASK CONTENTS IN ANY OTHER FORMAT: WILL DISPLAY STOR-> AGE A WORD AT A TIME AS ASCII, OCTAL WORD, OCTAL BYTE, OR AS$ RAD50 TO BE TRANSLATED INTO ASCII. ? (4) SEARCH FOR SPECIFIED CONTENTS: WILL SEARCH FOR ONE TO TWOE> WORDS, TO BE ENTERED IN ANY OF THE FIVE FORMATS NAMED ABOVE.> THIS FEATURE IS HANDY TO LOCATE A SECTION OF CODE OR DATA TO1 BE CHANGED IF A TASKBUILD MAP IS NOT AVAILABLE.T S? (5) UPDATE SPECIFIED LOCATIONS: OLD CONTENTS ARE DISPLAYED ASA< OCTAL WORD; NEW CONTENTS CAN BE ENTERED IN ANY OF THE FIVE FORMATS NAMED ABOVE.00rronnl]ld -> (6) DESCRIBE THE TASK HEADER: GIVES USEFUL INFORMATION IN AN EASILY READABLE FORMAT.I K PAGE 94 TPC       TPC - Fast Tape Copy ====================  Users' Guide ============ @ This program will copy a complete magtape to a Files-11 diskG and store it there in a special image mode, from which it can create C one or more copies of the tape (must faster than FLX ever could).- E BIGTPC is able to do this, but also will handle any block size onRD tape up to 4200. bytes (big enough for BRU tapes). By going from 4I to 3 buffers for tape and smaller numbers of disk blocks per read/writepH still larger tape block sizes can be handled. Also, several additional switches are supported.l I If it is desired to support larger BIGTPC block sizes, it is possiblelH to reduce the number of BIGTPC buffers (and the buffer headers) and toI reduce the disk buffer count of blocks. This works well with the numberaI of disk blocks reduced to 8., the number of BIGTPC buffers reduced fromrI 4 to 3, and the size increased to 11000. bytes, supporting image copiesfJ of such formats as VMS BACKUP or UNIX TAR tapes. Note however that whereK these counts are changed, BIGTPC may not terminate correctly when writingrH a container file from another version. You may have to abort and writeM EOFs with another utility. If you have a tape and recreate container files,f there will be no trouble.s  The command format is:-s 2 TPC Output-filespec=Input-filespec G where one of the 'filespecs' must be a magtape device (e.g. MT:) ande4 the other the name of an image file on disk.  Legal switches are:- F /BL:nnnn - Specifies an initial allocation specification for@ the image file if a disk is the output device." Defaults to 200. F /SA:nnnn - Specifies a secondary allocation specification for@ the image file if a disk is the output device.! Defaults to 50.  B /CO - Specifies that the disk file is to be contiguous A /HD - Indicates High Density (1600 BPI) tape is to bew? written. (For TE16, tape is read at the proper densitya? automagically.) This permits a container file from onek. density to be written out in another.K PAGE 95 TPCa n    > /NR - Specifies NO positioning of the tape prior to the9 start of copying. This will allow TPC to merge = several backup collections on a single output tapen if used with care.  D After the end of a copy, TPC will write 4 EOF records andB backspace so that it will be positioned after the first= EOF on tape. This will ensure that a second backup B done with the /NR switch will correctly copy onto a FLX$ tape in readable fashion. J /SC:nnnn - Sets tape characteristics to nnnn(octal), to allow use G of tapes with even parity, 556BPI, etc. If the /HD switch islD used, the high density bit is ORed in with the nnnn value' specified in the /SC switch.c D /AN - Specifies possible ANSI format. If TPC sees this switch@ it will look for ANSI label records and permit copiesB even where the tape has null files and hence double EOF@ before the real end of tape. Only 80 byte records are? examined and EOFs are treated specially only betweenoC HDR2 and EOF2 (or EOV). The headers are assumed to be in C ASCII unless the switch /EB is given, in which case they A are assumed to be in EBCDIC. If the tape is not reallyl= an ANSI format tape, the TPC copy operation is not B changed. Thus the /ANsi switch may be used on a tape of unknown format. 00rq=onnnndA The default is /AN, and to force BIGTPC NOT torA look for ANSI labels (looking normally only at 80 bytewB records unless the /RT subswitch is used), use the /-AN switch. B /EB - This subswitch of the /AN switch forces on ANSI labelA checks but causes TPC to look for EBCDIC header labels B rather than ASCII. Note that TPC looks for either ASCIIC or EBCDIC, not both. The default is not to look for ANSIfC labels and end copy at double EOF; the /AN or /EB switchC5 settings allow some modifications to this.a A /RT - Use RT11 type "ANSI" labels. RT11 may not make labeleC records 80. bytes long, and if you have RT11 tapes, the @ ANSI checks will normally ignore the RT11 ANSI labelsA unless you use this switch. It causes BIGTPC to ignoreCB length of records and checks everything to see if it isF an ANSI label record. It is not a very good default becauseA it probably can be fooled easily but may be needed for  RT11 tapes. @ /ER - Specifies that TPC will ignore errors on tape. This@ specifically means that all errors except EOT/EOV/EOF? will be ignored. This is quite useful for recoveringAC data from tapes which are old and full of errors, or foro= writing an output to a tape with bad spots (though = it won't cure bad spots and this method of writing 5 anyway is not necessarily a good idea...).lK PAGE 96 TPCe i      E /FR - Rewind the tape after copying to it. Note the /NR switcheF applies to BEFORE the tape is used and inhibits positioningB at that time. The /FR switch will rewind the tape AFTER writing to it.i D /TR - This switch allows BIGTPC to read a disk to a containerB file as though it were a tape. It implies BIGTPC should@ act as though the input device were a tape even if itF is not. BIGTPC will need to know the size to copy (defaultsC to 494. blocks, the size of an RX01) and the start block A number (defaults to 0,0) as octal numnbers in the formC low:high (see /SZ and /LO switches). The input device is B copied 1 block at a time. The normal "control" features@ like density, rewind, etc., are suppressed UNLESS the? /CT switch is used. Their effect is not likely to bep meaningful. C /TW - This switch allows BIGTPC to write a container file toeD a disk as though the disk were a tape (on the output sideD of the command line). It is the inverse of the /TR switch5 and needs the /SZ and /LO information too.h H /SZ:low:high - This switch sets the device size for /TR, /TW, andB /IM copies, in 2 words of block counts. Note the numberC of blocks is given, not the last block number, so a diskbB with 494 blocks is specified as /SZ:494., the high size8 defaulting to 0. Default value is /SZ:494.:0. G /LO:low:high - This switch specifies the starting physical block.@ of the disk to begin transfer from in /TR and /IM, orC transfer to in /TW cases. This allows you to move blockssA around or to copy only parts of a disk. The default isdD 0:0, so you won't need to use /LO often unless you intend# to copy partial volumes.  C /CT - This switch allows control-type QIO's to occur even if @ /IM, /TR, or /TW are specified. These QIO's do things= like rewind, write endfile, space forward or back, @ and set density as well as attach the LUNs. It is notC very meaningful for /TR or /TW unless you have a strange B device that nevertheless is really a tape (and it's notD certain you can emulate00rronnl]ld it properly this way anyhow). For? /IM copies, it allows a tape to be the output devicea> and to receive a blocked copy of a device in formatC independent ways while still setting density, rewinding, A etc. Note the control QIOs are not error checked so ifa8 you try to rewind a disk, it'll not hurt you.K PAGE 97 TPCr l      F /IM:low:high:blkfactor - This switch allows BIGTPC to copy data@ in image mode directly from one device to another. ItA does not operate AST driven in this mode as it does inoC all others, but uses all buffers as one large I/O bufferi@ permitting I/O transfers of up to about 72. blocks at> a time. The low:high arguments are the block number? to begin the output transfer to on the output deviceP@ (/SZ specifies the length in blocks to move), and the: "blkfactor" argument is the number of blocks to< be transferred at each QIO$ to the output device.> This defaults to 8. so that if the output device is= tape, the buffers will be 4096. bytes long. If youi; specify a bigger blocking factor than BIGTPC cankA handle, it will just use its maximum. Normal operationrA will not issue any "write-EOF" operations, but if tape; is the output device, the /CT switch will permitt? these controls to be done so the resulting tape will < work (and the /FR switch, the /HD switch, and the! /SC switch will work).t F /FL:filnam -This switch works only with the /IM and /CT@ switches and will have no effect unless BOTH of these> are specified. It causes BIGTPC to write a standard@ DOS format (FLX format) label record before it writesE an image file on tape, using "filnam" (up to 6 characters)r: as the filename. The full file specification isF [1,1]filnam.OLB with standard DOS protection and a creationE date of 00-JAN-70. This permits the image file to co-existsE on a FLX tape (.OLB is the extension chosen since FLX willh? copy it in image mode). FLX can skip the nonstandardcA file and make directories, read, or write on the tape,)E allowing it to contain other interesting programs (perhaps C a copy of BIGTPC to read the images with, for instance).fD Also, multiple files may be more easily kept on the tape.? On input, you must skip this record on tape prior tos inputting the file. D If /ER is specified, zero byte reads will NOT terminateE copies (so sizes better be right!) and lengths copied will D be calculated from given block factors, not from returned actual byte counts. B /NI - This switch ("Nibble In") allows /IM copies to read aG disk 1 block at a time instead of using big QIOs of "blkfct"iE blocks at a time. Thus, if there is a bad disk block, data H on following blocks will not be lost. See the /IM switch doc.$ for interaction with /ER. D /NO - This switch ("Nibble Out") allows /IM copies to write aD disk 1 block at a time. It is supplied also to aid outputE to a disk with bad blocks, guaranteeing that not more thanNC 1 block's data will be lost. Its interaction with /ER istF like /IM. The /NI and /NO switches apply only to the /IMage! mode copies of BIGTPC.,K PAGE 98 TPCo       > /HE - This switch causes BIGTPC to print a help message< summarizing the action of all of its switches and; giving the defaults for the more important ones.    So that, for instance,  TPC BACKUP=MT:i L will c00rq=onnnndreate the file BACKUP (.DOS by default) from the magtape on MT:, and  TPC MT:=BACKUP G would then create an exact copy of the original magtape onto the tape  now mounted on MT:.9 E Note that TPC will only handle one tape at a time and cannot handlerE block sizes of greater than 4200 bytes without edit and rebuild. IftI the tapes are FLX format tapes, however, the TPCDIR program ([312,315]) C may be used to list directories or extract copies of files in the F container file, though in a fairly cumbersone way. Otherwise, BIGTPCK acts as a format-independent tape copy to EOT (signalled by 2 consecutivep EOFs).  CAVEAT:e  K It is possible for a FILES-11 tape to have 2 EOFs in a row where a zeroa+ length file is copied, yet not be at EOT.e D If the tape you are copying may be of this sort, use the /ANSII switch while copying (or the /EBCDIC switch if it came from an IBM site J using EBCDIC labels). This will allow TPC to correctly handle double EOFsI in the middle of a file. If your tape does not have this pathology, TPC tG will function correctly also, so the /ANsi switch is a good one to setEI mast of the time unless you some sort of pseudo-ANSI tape that may havew. have records starting with HDR2, EOV, or EOF. J If your tape was produced by RT11 PIP (possibly also under RSTS), you mayK need the /RT switch to successfully handle null files. The /ANsi switch isi8 now on by default; use /-AN to turn it off if you must.K PAGE 99 TPCt  h      ' TPC can report the following errors:-i % 1. TPC - DISK I/O ERROR. CODE = ne F TPC encountered an error while reading from/writing to the disk. ( 2. TPC - MAGTAPE I/O ERROR. CODE = n I TPC encountered an error while reading from/writing to the magtape.h $ 3. TPC - COMMAND LINE INPUT ERROR : TPC encountered an error in reading the commandline. % 4. TPC - COMMAND LINE SYNTAX ERROR  E TPC encountered an error when trying to parse the command line.  5. TPC - INVALID SWITCH G The commandline contained a switch that TPC could not recognise,e6 or a file specification that it could not parse. % 6. TPC - OPEN ERROR ON OUTPUT FILE  G A file was specified as output, but TPC encountered an error when it tried to open it. $ 7. TPC - OPEN ERROR ON INPUT FILE G A file was specified as input, but TPC encountered an error when  it tried to open it. - 8. TPC - SPECIFY 1 FILE & 1 MAGTAPE DEVICE  G The commandline either specified magtape as both input and outputh= device, or a disk file as both input and output device.t F TPC tends to crash when it has an allocation failure while reading tape to disk.iO PAGE 100 TWOPAGE# Instructions for TWOPAGE J   tK The following proceedure can be used to produce manuals from ru- K noff text. The resultant manual will be printed on both sides K of the 9&1/2 X 11 paper with perforated edges. The sprocket oK feed edges can be easily removed to produce a standard size  8&1/2 X 11 manual.   ? 1. Runoff source should specify the following: r O' 1. .LEFT MARGIN 10  ( 2. .RIGHT MARGIN 74  ) 3. .PAPER SIZE 58,74 s tK 4. The output file should have the standard ".DOC" l/ file type specification 1 X K 2. After using RNO to produce the "XXXXXX.DOC" file, run E the basic program "TWOPAGE" via the command line: m a* BA3 DP:[1,1]TWOPAGE/RN  s3 "TWOPAGE will do the following:  K 1. 00rronnl]ld Seperate the "XXXXXX.DOC" file into the files 5 "XXXXXX.LFT" and "XXXXXX.RGT"  4K 2. Append another "FF" character to "XXXXXX.LFT" if K necessary to make the total number of pages of each r# file equal.   K 3. Change the printer you wish to use to FORM TYPE 2 (to K ensure that no other output is queued to it,) via the  command:  ! OPR LP1:/FO:2  e nK 4. Load the 9&1/2 X 11 paper in the printer and verify I printer is at TOP-OF-FORM with paper properly aligned  K 5. Mark the starting page so one can return to that point : after printing the "right-hand" pages.  CK 6. QUE LP1:/FO:2=XXXXXX.RGT(/CO:N) (number of copies is e optional)  uK 7. When printing of right pages is finished, Remove R@ printer output with 1 or 2 extra blank pages O PAGE 101 TWOPAGEt aK Instructions for TWOPAGE PAGE 2 cJ  p sD 8. Align paper to same fan-fold as in step #4 above  oK 9. QUE LP1:/FO:2=XXXXXX.LFT(/CO:N) (same number of co- t" pies as above)  eK 10. After "left-hand" pages have finished, re-load printer ( with standard paper.  J 11. Return printer to standard FORMS TYPE via the command:  ! OPR LP1:/FO:2        Frank R. Borger ' Michael Reese Medical Center ( Department of Medical Physics  March 20, 1978  K PAGE 102 VOL   % VOLUME CHARACTERISTICS COMMAND (VOL)A FUNCTION:  G The VOLUME CHARACTERISTICS command (VOL) provides a means for changing E volume characteristics for a previously initialized Files-11 volume.c@ It takes most of the switches that INITVOL takes, and these areE specified exactly as for INITVOL. Note however that no volume labelt) is given after the device specification.c    FORMAT:  VOL[UME] device:[/keyword(s)]  where:  : device: specifies the device containing the volume to be acted upon. - keyword(s) are one or more of the following:C  /UICo /PROV /MXFv /EXTm /FPRO /CHAn /WINl /LRUr /LABELc E See INITVOL documentation for an explanation of the above switches, tI except for LABEL, which has no INITVOL switch equivalent. This switch D permits the volume label to be changed. If LABEL is given with no ( arguement, the volume label is cleared.  EXAMPLES:  1. MCR>VOLUME DK3:/LABEL=BILL c @ Rewrite the volume label on the Files-11 disk on DK3 so that it reads "BILL". ( 2. MCR>VOLUME DT0:/FPRO=[RWED,RWED,R,R] B Change the default file protection for the dectape on DT0 so that= all subsequent files are written with the default protection? [RWED,RWED,R,R], allowing only read access to all but the files owner. & 3. MCR>VOLUME DK2:/UIC=[55,70]/LABEL= @ Change the UIC information on the disk on DK2 so that the owner; of the disk is user [55,70]. Also clear the volume label.RK PAGE 103 XMT.2 xmt - intercomputer communications task K 12-Jan-82u  e/ Overview D/ -------- t f s oL XMT is a utility task which provides a convenient means for data L transfer between the the Medical Physics PDP11 and any other com- L puter system that is accessible with a s00rq=onnnndtandard terminal by ei- L ther hard-wired lines or by dial-up modem. XMT makes your termi- L nal appear as though it were connected directly to the "remote" L computer system. Data transfer is performed by producing textual L output from the remote computer (e.g., program listings, computer L runs, etc.) and, through XMT, routing that text to a disk file at L the PDP11. The reverse path takes a file at the PDP11 and $ "types" it to the remote. K PAGE 104 XMTt i K 12-Jan-82  p r s . a t s  p/ CHAPTER 1 f 0 Using XMT    5 XMT is a standard MCR function, evoked by: a s MCR>XMT  1" XMT prints the message:  t. Terminal Transmission Program V3.3 - Initializing operation using TT25:  L If TT25 is connected to a dial-up modem you must now dial the re- L mote computer before continuing. If the terminal is hardwired to L the remote system, or when you have made the connection to the 8 remote via modem, XMT is ready for operation.  M> XMT is now running with several defaults in effect:  >( 1. ASCII transfer mode. L XMT expects files to be in ASCII format, (i.e. source, # listings, etc.)  f% 2. COPY mode is off. oL When receiving a "file" from the remote terminal, char- L acters typed at your terminal are not echoed to the out-  put file.  - 3. DELAY of 20 milliseconds. L XMT will wait 20 milliseconds after receiving a "prompt" L character from the remote terminal, (usually a L line-feed) before transmitting the next line of a file + to the remote computer.  % 4. ECHO Mode is off. hL When file transfer is in process, all I/O is not printed L on your terminal. A single flag character is printed . for each line transferred.  0 5. PROMPTED transmission is on. L XMT waits for a Line-Feed (or some other character) be- L fore transmitting the next line of a file from the PDP11 + to the remote computer. mK PAGE 105 XMT  eL Using XMT PAGE 1-2 K 12-Jan-82  e aL 6. Several control characters are re-defined (see appendix) L Since ^C is used to inform XMT that you wish to change L some operating condition, if you wish to send a ^C to L the remote computer, typing a ^B will cause a ^C to be L sent to the remote computer. Note that although several L other re-defines are normally set, under IAS, only the . ^C re-define is necessary.  ) 7. FULLDUPLEX mode is on L Characters typed at your terminal are not echoed local- ; ly, the remote computer must echo them. g o6 8. 8-BIT ASCII mode is off, no parity L Characters are transmitted with 7 data bits and the par- ity bit off.  L These settings can be changed dynamically by the user to tailor L XMT's characteristics to ease communication with other computers.  L This version of XMT has been modified for IAS (basically a L rewrite of the terminal I/O sections) by G00rronnl]ld. Everhart. In normal L operation, it uses TT25 for connection to the "remote" computer. L TT25 should normally be set up at system boot, but if necessary ' one may have to reset it to:   L MCR>SET /UIC=[1,1] ;To change another Terminal setting J MCR>TER TT25:/FULLDUPLEX ;fix for no echo, full duplex I/O K MCR>TER TT25:/BINARY ;fix for no special ^C recognition ? MCR>TER TT25:/WIDTH:132 ;make width big enough n rL This should allow the terminal to work correctly. Note that L you'll have to try various options when using it with non-DEC L systems. In its default state, it works well with other IAS or L RSX11M systems. You will have to reset the characterstics of L TT25 to permit someone to connect a terminal to it and have it L work correctly. Also, by the nature of the program, (it uses L single-character QIO's for I/O to your terminal) will sometimes L result in a noticable delay in output (or echo) at your terminal. L However, it appears to work reliably once the right operating 3 conditions and defaults are established.  SL To leave XMT, type CTRL/C twice (CTRL/C is typed by holding down L the CTRL key and typing C), or by typing CTRL/C followed by X  (eXit). K PAGE 106 XMTs r tK 12-Jan-82o c  y  m l   / CHAPTER 2  g1 XMT Options r s l e L To change any of the program settings/options, type CTRL/C fol- L lowed by the upper case character signifying the setting/option L desired. Below is a table of options and their corresponding de-  finitions: s r - NOTE  H Do NOT type a carriage-return to enter or execute any of H these commands. Typing the single character of the com- @ mand is all that you need to execute that option.  n fL A - Changes the file transfer mode to ASCII if in the binary L mode, or changes the file transfer mode to binary if al- , ready in the ASCII mode.  L B - Sets the BREAK (logical spacing) key definition to some L keyboard character which, when depressed, creates a L 'BREAK' condition to occur just like the 'BREAK' key on  a teletype. u eL C - Enter/exit Copy mode; i.e., when receiving a file from L the remote in ASCII mode, all characters typed at the L keyboard are copied to the output file when also in Copy  mode. S L D - Set the length of delay that XMT should wait after re- L ceiving a prompt character before sending the next line L of data from a disk file at the PDP11. The delay can L range from 0 to 99, where 0 corresponds to no delay and L 99 corresponds to 99 clock ticks (approximately 1 2/3 L seconds). If the length of the delay is a single digit, L typing a carriage-return after typing the digit will be L sufficient to enter the delay. You may also enter a L single digit for the delay by preceeding it with a zero. L You cannot enter a delay of more than two digits. Any L characters entered other than 0 through 9 will cause the L default delay of 20 to be used and no error message will K PAGE 107 XM00rq=onnnndTr eL XMT Options PAGE 2-2 K 12-Jan-82   a be given.  L E - Enter/exit Echo mode; i.e., when receiving or transmit- L ting a file all input/output from/to the PDP11 disk is L printed on the user terminal. This mode is useful when L you wish to see the effects of transmission in progress. L In general, this mode should only be used when you are L logged onto a high-speed terminal or when the amount of L printing is less than 2 full pages (at 1200 baud) or in- 5 definitely (at 300 baud or less).  L F - Receive a file From the remote. A short status of the L applicable options in effect is printed before a file L specification is requested. The file specification is L 29 or fewer characters and follows the system standard L conventions for files. Entering a name of less than 29 L characters requires a carriage-return to enter the fi- L lename. The RUBOUT or DELETE keys can be used to edit L out any errors made in typing the file spec. Entry of a L null, or empty, filename will allow you to exit the F L option without sending any data or creating any files. L Any previous execution of the F option that was not ter- L minated by either the O option or by exitting XMT is au- L tomatically terminated prior to the printing of the 4 short options-in-effect summary.  L H - Prints a very brief Help summary of the purpose of each  option. m iL I - Terminates reading input from a PDP11 disk file if such L a file transfer was taking place. The message L "Transmission Complete" will be printed if a file L transfer is terminated, otherwise no action is taken. L This option is useful in aborting the transmission of J data to the remote if problems in communication arise.  oL O - The O option performs the same function for terminating L a file receive operation (Output to the PDP11 disk) that L the I option performs on file transmit operations (Input L from the PDP11 disk). This option is the only means, L other than by exitting XMT or by starting another file L receive operation, of signalling the end of a receive L operation to XMT. The message "Receive complete" prints ; when a receive operation is terminated.  aL P - Change transmit file mode from Prompted mode to Prompt- L less, and vice-versa. A message is printed indicating L which mode is in effect. When changing to prompted mode L you are asked which character sent by the remote com- L puter system should be used as the prompting character. L Type the prompting character and XMT will, during a file L transmit operation, wait for this character to be re- L ceived from the remote computer before sending the next K PAGE 108 XMTs L XMT Options PAGE 2-3 K 12-Jan-82u b sL line of information to the remote. Note that XMT will L send the first line of input to the remote c00sronnl]ldomputer L without waiting for the prompt, but all other lines of L input will wait for a prompt to be received before they ! will be sent.  L R - Redefine/don't redefine control characters. This option L enables and disables the user-defined translation table L for control characters as described under the "^" op- L tion. A message is printed which mode is in effect. L When in "Redefine mode" XMT will use a translation table L to convert any redefined control characters to some oth- L er control character so as to be able to "type" reserved L control characters to the remote computer. Examples of L reserved control characters are CTRL/C, CTRL/O, CTRL/S, L CTRL/Q, etc. "Not redefined mode" disables this trans- G lation, but the translation table is not destroyed. " eL S - Prints a Status of the options in effect for XMT. The L status report includes information about parity, ASCII L or binary modes, information about file transfer opera- L tions, and prints the definition of the BREAK character,  if any. R ,L T - Starts a file Transmit operation. This option is very L similar to the F option except in the direction of data L transfer. A check is made as to whether or not XMT was L in the midst of a previously started file transmit oper- L ation, and if so, that transmit operation is terminated. L A short status of file transmit options-in-effect is L printed before you are requested to type in the name of L the file you wish to transfer to the remote system. If L you just type a carriage-return, XMT simply returns L without initiating a file transfer. Otherwise you must L enter a file name in the standard system format. If the L name of the file you enter does exist on disk a message L is printed indicating that the file is not found and no L transfer operation is initiated. Otherwise a file L transfer is initiated which can be terminated by 1) ex- L itting XMT, 2) using the I option, 3) using the T option L again and entering a carriage-return for the name, or by L 4) reaching the end of the input file. The message L "Transmission complete" is printed when the transfer op- 9 eration is completed (or terminated).  L U - Unduplex or duplex the XMT program. In the Unduplexed L mode characters typed on the terminal are not echoed to L the terminal unless the remote computer performs the L echoing. This mode is useful when communicating to com- L puter systems as other PDP11's. For communication with L systems such as TSO, however, the Duplexed mode is re- K quired if you wish to see the characters that you type. d eK PAGE 109 XMT  eL XMT Options PAGE 2-4 K 12-Jan-82i s lL X - EXit XMT. All file transfers, if any, are terminated E and control is returned to the RSX-11M Executive.  eL 8 - Enter 8-bit ASCII mode and exit 7-bit ASCII, or leave L 8-bit ASCII and enter 7-bit ASCII and be asked what par- L ity you desire.00sq=onnnnd This mode allows you to determine L whether or not the information you transmit and receive L will be full 8-bit ASCII or 7-bit ASCII with software L generated even, odd, mark, or no parity. Some computer L systems require specific parity settings, but other / PDP11's and TSO don't care.  L ^ - Allows you to redefine a control character as a differ- L ent control character. This allows you to use some oth- L erwise reserved control characters, such as CTRL/C, and L allow you to send these characters to the remote system. L You will be asked to type two characters. The first L character you type will be the redefined character and L the second character you type will be the definition. L To enter either of these characters may, and sometimes L must, enter the upper-case equivalent of the control L character. The characters you type are automatically L converted to the proper control character and their L upper-case equivalent is printed after you type the L character. For example, you wish to use the character L CTRL/W to signal when you transmit a CTRL/C. Type the ^ L option, the letter W, and the letter C and the redefini- L tion has been set. Assuming that XMT is in "Redefine L mode", every time you type a CTRL/W a CTRL/C is actually L sent to the remote system. If you wish to change a de- K finition, simply redefine it in the manner given above. F eK PAGE 110 XMT  n K 12-Jan-82e    e i    / CHAPTER 3 s 7 Summary of Capabilities  T W C /1 1. Full or half duplex operation o s2 2. Disk file transmit and receive  7 3. Prompt character checking and delay F eL 4. Optional echoing of files during transmission and recep-  tion  0 5. A short help message summary  L 6. The ability to transmit a file while also receiving another file  E 7. The ability to transfer files using a full 8 bits  L 8. The capability of transferring files with or without ( prompted handshaking  L 9. The option of preventing everything entered at the user L terminal from being copied to an output disk file during ' a receive operation  L 10. The ability to create a 'BREAK', or logical spacing, L condition so as to be able to interrupt remote devices  such as TSO  L 11. The capability of defining almost any keyboard character A to be used to signal when a BREAK was desired o fL 12. The ability to perform translations of control char- L acters entered at the user terminal to characters not L normally able to be entered without interception by  RSX-11M  cL 13. The ability to turn on and off the control character G translation without losing the previous definitions y yL 14. The inclusion of a "status" subroutine which enables the K PAGE 111 XMTr L Summary of Capabilities PAGE 3-2 K 00ssonnl]ld 12-Jan-82o b L user to see what parameters are currently in effect for  the program  L 15. The ability to set the mode of parity (even, odd, mark, L or none) to be used when transmitting each character to K the remote while the 7-bit character mode is in effect.  K PAGE 112 XMT  K 12-Jan-82   e t e h p m r r0 APPENDIX A  o@ XMT Default Control Character Definitions  ( n d< Typed Character Resulting Character  t4 ctrl/A ctrl/S 4 ctrl/B ctrl/C 4 ctrl/P ctrl/O 4 ctrl/W ctrl/Q 4 ctrl/X ctrl/Z  n 5 List of XMT commands  = A - Change file transfer mode (Binary/Ascii) l( B - Set BREAK character ) C - Enter/exit copy mode 3 D - Set length of delay (in ticks) t) E - Enter/exit echo mode 6 F - Recieve File from remote computer ( H - Prints HELP summary > I - Terminate transmission to remote computer = O - Terminate reception from remote computer : P - Enter/exit Prompted transmission mode E R - Redefine/don't redefine control chararacter mode A1 S - Print current program status o5 T - Transmit file to remote computer )0 U - Enter/exit full duplex mode  X - Exit XMT f0 8 - Enter/exit 8-bit ASCII mode / ^ - Redefine control character mission to remote computer = O - Terminate reception from remote computer : P - Enter/exit Prompted transmission mode E R - Redefine/don't redefine control chararacter mode A1 S - Print current program status o5 T - Transmit file to remote computer )0 U - Enter/exit full duplex mode  X - Exit XMT f0 8 - Enter/exit 8-bit ASCII mode / ^  NEW SYSTEM COMMANDS  AA series of commands have been added to our system to make lifeAeasier for users of the computer. These commands are designed toBmake life easier by giving easier syntax for often used commands. =Note that optional parts of the commands are shown in "[]"'s. =BRI[ef] [NAME.TYP;VERS] Produces brief directory of files *1 :BLO[cks] [NAME.TYP;VERS] Reports blocks used/allocated *1 DCOP[y] [DVn:{N,M}]NAME.TYP Copies a file from another disk or UIC *1 ;DIR[ectory] [NAME.TYP;VERS] Produces directory of files *1e dBDOC[ument] NAME.TYP[;VERS] Prints specified file at LP1: (forms 1) e<FOR[tran] NAME Compile Fortran source with F77 Compiler *5 y2FRE[e] DVN: list free blocks on specified device p>MAX NAME.TYP[;VERS] Compile Macro source with MAC compiler *5 E6PRI[nt] NAME.TYP[;VERS] Prints specified file at LP0: A:PRO[tect] NAME.TYPE[;VERS] Prevent file from being deleted :4PUR[ge] NAME.TYP Purges named file[s] to 1 copy *1 6REC[over] [NAME.TYPE;VER] REcovers locked file(s) *1 1SUB[mit] NAME[.TYP;VERS] Submit file to batch *4e i3TYP[e] NAME.TYP[;VERS] List named file at terminalr n<UNP[rotect] NAME.TYPE[;VERS] Reset effect of protecting file o'USE N,M Sets your working UIC to N,MS C(1. If no file named, defaults to "*.*;*"2 If file name only given, defaults to "NAME.*;*" P+2. Wild card ("*") use usually unrestrictedl r@3. Care should be taken using wild cards with "PURge" and "FREe" y4. D00sssnnnndefaults to NAME.BIS. E45. XXX NAME defaults to "F77 NAME,NAME/-SP=NAME.FOR"& or "MAC NAME,NAME/-SP=NAME.MAC" YFA provision for easily adding MCR programs to the system has also beenFintroduced. A command of the form "XYZ ....." When "...XYZ" is not in-5stalled in the system will have the following result.o .& 1 Attempt to INStall LB:[11,1]XXX.TSX& 2 If successful execute said MCR task( 3 remove task "...XXX" when it finished d?If the install fails, you will get a "TASK NOT INSTALLED" errorts to NAME.BIS. E45. XXX NAME defaults to "F77 NAME,NAME/-SP=NAME.FOR"& or "MAC NAME,NAME/-SP=NAME.MAC" YFA provision for easily adding MCR programs to the system has also beenFintroduced. A command of the form "XYZ ....." When "...XYZ" is not in-5stalled in the system will have the following result.o .& 1 Attempt to INStall LB:[11,1]XXX.TSX& 2 If successful execute said MCR task( 3 remove task "...XXX" when it finished d?If the install fails, you will get a "TASK NOT INSTALLED"   NEW UTILITY PROGRAM AVAILABLE  u r PAG PAGinate listing program7 Provides listings of programs etc on a paginated basisi1 so printing does not occur near the paper folds.5 Also, listing will contain 2 header lines identfying  Our institution.1 DEVice, UIC, file name, extension and version # DATE and TIME of listing  calling sequence& MCR>PAG[elist] DEV:[UIC]NAME.TYP;VERS  or , MCR>PAG DEV:[UIC]NAME.TYP=DEV:[UIC]NAME.TYP < If only one file specification is entered, the listing will be queued for printing at LP: s> If both input and output file specifications are entered, the7 listing file will be left on the disk and not spooled.s  s9 One switch has been provided to enhance listings at LP1:u n: The switch "/TA" instructs PAG to output the listing with: leading "TAB" characters so that the output on LP1, after9 removing the margins, can be punched and inserted into aG; ring binder without losing the first few characters of in-p formation.s entered, the listing will be queued for printing at LP: s> If both input and output file specifications are entered, the7 listing file will be left on the disk and not spooled.s  s9 One switch has been provided to enhance listings at LP1:u n: The switch "/TA" instructs PAG to output the listing with: leading "TAB" characters so that the output on LP1, after9 removing the margins, can be punched and inserted into aG; ring binder without losing the first few characters of in-p formaB10 ! PROGRAM TO GENERATE DATAPLOT SOURCE CODE FOR DOING GRAPHS FOR20 ! PRESENTATIONS30 DIM AN$[1],LA$[60]V,NA$[32]V=40 PRINT "PROGRAM TO GENERATE DATAPLOT (FORTRAN) SOURCE CODE">41 PRINT "YOU SHOULD HAVE READ THE DATAPLOT USERS GUIDE FIRST"42 PRINT "NOTE THAT:"43 PRINT@44 PRINT "CHARACTER STRING LOCATIONS, AXIS LENGTH ARE IN INCHES"445 PRINT "VECTOR AND POINT LOCATINS ARE ACTUAL DATA"-60 INPUT "NAME (ONLY) OF OUTPUT PROGRAM ";NA$62 OPEN #3, NA$+".FOR/WR":70 INPUT "SIZE OF WORK AREA (TYPICALLY 1000,2000,ETC) ";WS971 IF WS<1000 OR WS>20000 THEN PRINT "BAD SIZE" : GOTO 70S380 PRINT #3, " DIMENSION IWA("+FRMT$(WS,5)+")" ,85 PRINT #3, " DIMENSION X(100),Y(100)"&86 PRINT #3, " 888 FORMAT(F6.2,F6.2)"87 ND=1 590 PRINT #3, " CALL VOPEN (IWA,"+FRMT$(WS,5)+")"T(91 INPUT "VALUE OF X,Y AT ORIGIN ";XO,YO+92 INPUT "INCREMENT OF X,Y PER INCH ";XI,YIC100 PRINT "OPTIONS ARE :"I101 PRINT "(1) DRAW VECTOR"R%102 PRINT "(2) DRAW CHARACTER STRING"$103 PRINT "(3) PLOT MULTIPLE POINTS"!104 PRINT "(4) PLOT SINGLE POINT"0"105 PRINT "(5) PLOT AXIS (X OR Y)"106 PRINT "(6) END"#110 INPUT "ENTER OPTION ";AT1111 IF A<1 OR A>6 THEN PRINT "INVALID" : GOTO 100Y+120 ON A GOTO 1000,2000,3000,4000,5000,6000"11000 ! DO VECTOR (SINGLE LINE BETWEEN TWO POINTS)R+1010 INPUT "ENTER X1,Y1,X2,Y2 ";X1,Y1,X2,Y2G1011 X1=(X1-XO)/XI+11012 Y1=(Y1-YO)/YI+11013 X2=(X2-XO)/XI+11014 Y2=(Y2-YO)/YI+1k1020 PRINT #3, " CALL VECTOR("+FRMT$(X1,5,2)+","+FRMT$(Y1,5,2)+","+FRMT$(X2,5,2)+","+FRMT$(00"s(sonnl]ldY2,5,2)+")" 1030 GOTO 100 2000 ! PLOT CHARACTER STRING&2010 INPUT "STARTING POINT (X,Y) ";X,Y-2020 INPUT "STRING ITSELF (MAX 60 CHAR) ";LA$ 2021 NC=LEN(LA$)'2030 PRINT "ENTER ORIENTATION (1 TO 4)"0*2031 PRINT "1 = SMALL, PARALELL TO Y-AXIS"*2032 PRINT "2 = SMALL, PARALLEL TO X-AXIS"*2033 PRINT "3 = LARGE, PARALLEL TO Y-AXIS"*2034 PRINT "4 = LARGE, PARALLEL TO X-ZXIS"2040 INPUT "ORIENTATION ";OXE2050 PRINT #3, " CALL CHARA("+FRMT$(X,5,2)+","+FRMT$(Y,5,2)+",";+I2051 PRINT #3, FRMT$(NC,2)+"H"+LA$+","+FRMT$(OX,1)+","+FRMT$(NC,2)+",-1)"C 2060 GOTO 10003000 ! PLOT MULTIPLE POINTS"!3010 INPUT "NUMBER OF POINTS ";NPX)3020 OPEN #4,"DATA"+FRMT$(ND,1)+".DAT/WR"I3030 FOR I=1 TO NP3040 INPUT "X,Y VALUE ";X,Y 3041 X=(X-XO)/XI+13042 Y=(Y-YO)/YI+1(3050 PRINT #4, FRMT$(X,6,2);FRMT$(Y,6,2) 3060 NEXT IP 3070 CLOSE 4B3080 PRINT #3, " CALL ASSIGN (3,'DATA"+FRMT$(ND,1)+".DAT',9)":3090 PRINT #3, " DO "+FRMT$(ND,1)+",I=1,"+FRMT$(NP,2)-3100 PRINT #3, " READ (3,888) X(I),Y(I)",-3110 PRINT #3, " "+FRMT$(ND,1)+" CONTINUE") 3111 ND=ND+1$3120 PRINT #3, " CALL CLOSE(3)"<3130 INPUT "SYMBOL SELECT (1-5) NEGATIVE = LARGE SYMBOL ";SY<3140 INPUT "DISPLAY SELECT (-1=SYMBOLS, 0=LINE, 1=BOTH) ";DSG3150 PRINT #3, " CALL FDATA(X,Y,"+FRMT$(SY,2)+","+FRMT$(NP,2)+",";R.3151 PRINT #3, FRMT$(DS,2)+",0.0,1.0,0.0,1.0)" 3160 GOTO 100A4000 ! PLOT SINGLE POINT&4010 INPUT "POINT LOCATION (X,Y) ";X,Y<4020 INPUT "SYMBOL SELECT (1-5) NEGATIVE = LARGE SYMBOL ";SYT4030 PRINT #3, " CALL SYMBL("+FRMT$(X,5,2)+","+FRMT$(Y,5,2)+","+FRMT$(SY,2)+")" 4040 GOTO 100"5000 ! PLOT AXIS&5010 INPUT "AXIS LENGTH IN INCHES ";AL'5020 INPUT "ORIENTATION (0=X, 1=Y) ";AOP"5030 INPUT "ENTER AXIS LABEL ";LA$5040 LL=LEN(LA$)=5050 PRINT #3, " CALL FAXIS(1.0,1.0,"+FRMT$(AL,4,1)+",";RF5051 PRINT #3, FRMT$(AO,1)+","+FRMT$(LL,2)+"H"+LA$+","+FRMT$(LL,2)+")"=5052 PRINT #3, " CALL LABEL(1.0,1.0,"+FRMT$(AL,4,1)+",";05053 PRINT #3, FRMT$(AO,1)+",";I?5054 IF AO=0 THEN PRINT #3, FRMT$(XO,6,3)+","+FRMT$(XI,6,3)+")"X?5055 IF AO=1 THEN PRINT #3, FRMT$(YO,6,3)+","+FRMT$(YI,6,3)+")"! 5060 GOTO 10006000 ! CLOSE PLOT !6005 INPUT "NUMBER OF COPIES ";NCT@6007 IF NC>1 THEN PRINT #3, " CALL SETCOP("+FRMT$(NC,1)+")"%6010 PRINT #3, " CALL VCLOSE(I)"X&6020 PRINT #3, " PRINT (5,999) I"%6030 PRINT #3, " 999 FORMAT(1H ,I6)""6035 PRINT #3, " END" 6040 CLOSE 36050 OPEN #3, NA$+".CMD/WR"M6060 PRINT #3, NA$+"="+NA$*6070 PRINT #3, "LB:[1,10]DATAPLF4P.OLB/LB"&6080 PRINT #3, "LB:[1,1]F4POTS.OLB/LB"6090 PRINT #3, "/"6100 PRINT #3, "LIBR=F4PRES:RO"R6110 PRINT #3, "//"0 6120 EXIT6000 ! CLOSE PLOT !6005 INPUT "NUMBER OF COPIES ";NCT@6007 IF NC>1 THEN PRINT #3, " CALL SETCOP("+FRMT$(NC,1)+")"%6010 PRINT #3, " CALL VCLOSE(I)"X&6020 PRINT #3, " PRINT (5,999) I"%6030 PRINT #3, " 999 FORMAT(1H ,I6)""6035 PRINT #3, " END" 6040 CLOSE 36050 OPEN #3, NA$+".CMD/WR"M6060 PRINT #3, NA$+"="+NA$*6070 PRINT #3, "LB:[1,10]DATAPLF4P.OLB/LB"&6080 PRINT #3, "LB:[1,B10 ! PROGRAM TO GENERATE DATAPLOT SOURCE CODE FOR DOING GRAPHS FOR20 ! PRESENTATIONS:25 ! MODIFIED FOR INDIRECT FILE INPUT RATHER THAN TERMINAL30 DIM AN$[1],LA$[60]V,NA$[32]V=40 PRINT "PROGRAM TO GENERATE DATAPLOT (FORTRAN) SOURCE CODE">41 PRINT "YOU SHOULD HAVE READ THE DATAPLOT USERS GUIDE FIRST"42 PRINT "NOTE THAT:"43 PRINT@44 PRINT "CHARACTER STRING LOCATIONS, AXIS LENGTH ARE IN INCHES"445 PRINT "VECTOR AND POINT LOCATINS ARE ACTUAL DATA"-50 INPUT "NAME OF INDIRECT COMMAND FILE ";NA$52 OPEN #6,NA$+"/RO"53 IF END #6 THEN 600060 INPUT #6, NA$61 PRINT "NAME = ";NA$62 OPEN #3, NA$+".FOR/WR"T70 INPUT #6, WSR71 PRINT "SIZE = ";WSA380 PRINT #3, " DIMENSION IWA("+FRMT$(WS,5)+")"T,85 PRINT #3, " DIMENSION X(100),Y(100)"&86 PRINT #3, " 888 FORMAT(F6.2,F6.2)"87 ND=1S590 PRINT #3, " CALL VOPEN (IWA,"+FRMT$(WS,5)+")"E91 INPUT #6, XO,YO92 PRINT "XO,YO = ";XO,YO93 INPUT #6, XI,YI94 PRINT "XI,YI = ";XI,YID100 ! GET OPTION110 INPUT #6, AM111 PRINT "OPT00*s/ssnnnndION = ";A +120 ON A GOTO 1000,2000,3000,4000,5000,6000T11000 ! DO VECTOR (SINGLE LINE BETWEEN TWO POINTS).1010 INPUT #6, X1,Y1,X2,Y21011 X1=(X1-XO)/XI+11012 Y1=(Y1-YO)/YI+11013 X2=(X2-XO)/XI+11014 Y2=(Y2-YO)/YI+1k1020 PRINT #3, " CALL VECTOR("+FRMT$(X1,5,2)+","+FRMT$(Y1,5,2)+","+FRMT$(X2,5,2)+","+FRMT$(Y2,5,2)+")"L 1030 GOTO 100R2000 ! PLOT CHARACTER STRING2010 INPUT #6, X,Y2020 INPUT #6, LA$2021 NC=LEN(LA$)2040 INPUT #6, OXYE2050 PRINT #3, " CALL CHARA("+FRMT$(X,5,2)+","+FRMT$(Y,5,2)+",";NI2051 PRINT #3, FRMT$(NC,2)+"H"+LA$+","+FRMT$(OX,1)+","+FRMT$(NC,2)+",-1)"E 2060 GOTO 1003000 ! PLOT MULTIPLE POINTS03010 INPUT #6, NP)3020 OPEN #4,"DATA"+FRMT$(ND,1)+".DAT/WR"3030 FOR I=1 TO NP3040 INPUT #6, X,Y3041 X=(X-XO)/XI+13042 Y=(Y-YO)/YI+1(3050 PRINT #4, FRMT$(X,6,2);FRMT$(Y,6,2) 3060 NEXT I0 3070 CLOSE 4B3080 PRINT #3, " CALL ASSIGN (3,'DATA"+FRMT$(ND,1)+".DAT',9)":3090 PRINT #3, " DO "+FRMT$(ND,1)+",I=1,"+FRMT$(NP,2)-3100 PRINT #3, " READ (3,888) X(I),Y(I)"N-3110 PRINT #3, " "+FRMT$(ND,1)+" CONTINUE"O 3111 ND=ND+1$3120 PRINT #3, " CALL CLOSE(3)"3130 INPUT #6, SYT3140 INPUT #6, DSNG3150 PRINT #3, " CALL FDATA(X,Y,"+FRMT$(SY,2)+","+FRMT$(NP,2)+",";I.3151 PRINT #3, FRMT$(DS,2)+",0.0,1.0,0.0,1.0)" 3160 GOTO 100T4000 ! PLOT SINGLE POINT4010 INPUT #6, X,Y4011 X=(X-XO)/XI+14012 Y=(Y-YO)/YI+14020 INPUT #6, SYRT4030 PRINT #3, " CALL SYMBL("+FRMT$(X,5,2)+","+FRMT$(Y,5,2)+","+FRMT$(SY,2)+")" 4040 GOTO 100 5000 ! PLOT AXIS5010 INPUT #6, ALT5020 INPUT #6, AOD5030 INPUT #6, LA$5040 LL=LEN(LA$)=5050 PRINT #3, " CALL FAXIS(1.0,1.0,"+FRMT$(AL,4,1)+",";#F5051 PRINT #3, FRMT$(AO,1)+","+FRMT$(LL,2)+"H"+LA$+","+FRMT$(LL,2)+")"=5052 PRINT #3, " CALL LABEL(1.0,1.0,"+FRMT$(AL,4,1)+",";G5053 PRINT #3, FRMT$(AO,1)+",";T?5054 IF AO=0 THEN PRINT #3, FRMT$(XO,6,3)+","+FRMT$(XI,6,3)+")"0?5055 IF AO=1 THEN PRINT #3, FRMT$(YO,6,3)+","+FRMT$(YI,6,3)+")", 5060 GOTO 100"6000 ! CLOSE PLOT6005 INPUT #6, NC0@6007 IF NC>1 THEN PRINT #3, " CALL SETCOP("+FRMT$(NC,1)+")"%6010 PRINT #3, " CALL VCLOSE(I)",&6020 PRINT #3, " PRINT (5,999) I"%6030 PRINT #3, " 999 FORMAT(1H ,I6)""6035 PRINT #3, " END" 6040 CLOSE 36050 OPEN #3, NA$+".CMD/WR"B6060 PRINT #3, NA$+"="+NA$*6070 PRINT #3, "LB:[1,10]DATAPLF4P.OLB/LB"&6080 PRINT #3, "LB:[1,1]F4POTS.OLB/LB"6090 PRINT #3, "/"6100 PRINT #3, "LIBR=F4PRES:RO"T6110 PRINT #3, "//"I 6120 EXIT5060 GOTO 100"6000 ! CLOSE PLOT6005 INPUT #6, NC0@ , GLOSSARY OF VERY IMPORTANT COMPUTER AXIOMS   ( I THE FIRST LAW OF THE COMPUTER:G I am a computer, i am dumber a human, and smarter than! than a programmer.  II LLOYD'S FIRST LAW:. Every program contains one bug. + III EGGLESTON'S EXTENSION PRINCIPLES:G Programming errors which would normally take one day toG find will take five days to find if the programmer is in a hurry.  IV GUMPERSON'S LEMMA:G The probability of a given event happening is inversley 0 proportional to its desirability. a( V WEIRSTOCK'S WELL-ORDERING PRINCIPLE:G The data needed for yesterday's debug shot must be re-m3 quested no later than noon tomorrow.O R' VI FENSTER'S LAW OF FRUSTRATION:r@ If you write a program with no error stops or diagnos-G tics you will get random numbers for your output. (thisG can incidentally, be used to an advantage). However, ifvG you write a program with 500 error stops or diagnosticl- messages, they all will occur.L * VII PROUDFOOT'S LAW OF THE GOOD BET:G If someone claims that you can assume input data to beoG correct, ask him to promise you a dollar for every inputr error. $ VIII THE LAW OF THE SOLID GOOF:G In any program, the part that is m002s(sonnl]ldost obviously correct G beyond all need of changing is the part that is totally  wrong. o; COROLLARY A: No one you ask will see it either!s eG COROLLARY B: Anyone who stops with unsought advise will see( it immediately! n IX WYLLIE'S LAW:o@ Let N be the priority of an 8-hour batch job your assoc-@ iate just entered. The priority of the batch job you are+ now entering shall be equal to N-1.a s s b u  r     X O'KANE'S RULE:@ The number of cards in your deck is in inverse propor-@ tion too the amount of output your deck produces.  XI MASHEY'S FIRST LAW:t< If you lie to the assembler, it will get you. m XII MASHEY'S SECOND LAW:G If you have debugging statements in your program, the-G bugs will be scared away and it will work fine, but as G soon as you take away the debugging statements, the bugs  will come back.  XIII MURPHY'S LAW:nF If something can possibly go wrong, eventually it will. u, XIV THE LAW OF DEPENDENT INDEPENDENCE:G It is foolish to assume that jiggling X will not diddleo# Y, however unlikely.:  XV PARKINSON'S LAW:G The minimum time necessary to complete any project willcD be equal to the maximum time available to work on it. k- XVI THE LAW OF LOGICAL INCOMPATIBILITY: G All assumptions are false. This is especially true ofe# obvious assumptions.l t XVII VELONIS'S FIRST LAW:FE The question is always more important than the answer.i i XVIII VELONIS'S SECOND LAW:C When everything possible has gone wrong, things will " probably get worse. m XIX VELONIS'S THIRD LAW: G The necessity for providing an answer varies inversely B with the amount of time the question can be evaded. s, PROPOSED 11/99&44/100% CPU INSTRUCTION SET  BH branch and hangs TDB transfer and drop bits DO divide and overflowo$ SRZ subtract and reset to zero PI punch invalidN SSJ select stacker and jam! FSRA forms skip and run awayo RASC read and shred card # SRSD seek record and scar diskL$ BST backspace and stretch tape RIRG read inter-record gapw! UER update and erase record  EM emulate 407e& SPSW scramble program status word EIOC execute invalid opcode! EROS erase read only storages PBC print and break chains MLR move and lose record$ DMPK destroy memory protect key DC divide and conquer& EPI execute programmer immediate LCC load and clean coreS HCF halt and catch fireS& BBI branch on blinking indicator BPO branch on power off AI add improper ARZ add and reset to zeroa RSD read and scramble data RI read invalid RCR rewind card reader BCR backspace card readerr RP read printer BSP backspace printeri MPB move and pitch bitso RNR read noise recordp# WWLR write wrong length recordu RBT rewind and break tapei ED eject disk RD rewind diskF RDS reverse disk spinB BD backspace disk RTM read tape mark/ DTA disconnect telecommunications adapter  DSD drop and shuffle deck  STR store random* FSMC fold, spindle, and mutilate card" BKO branch and kill operator# CRN convert to roman numeralsP PLC punch and lace card  WET write 8-track tape PCR punch card reverse WSC wind system clockr FS fire supervisore& BRI branch to random instruction PDR play disk record EPH erase punched holesk SCC shuffle and cut cardsa POS purge operating system USO unwind spooled outputp EPS00:s/ssnnnndW erase pswS PMT punch magnetic tape * AAIE accept apology and ignore errors n d 4 COMPUTATION CENTER BULLETIN  c nH For many years it has been a common misconception that computerH programming is a very difficult field of endeavor. In order to dispellH this atrocious rummor we have published the following list of defini-H tions. It is our sincere hope that after reading this list of defini-H tions you will realize that programming need not be surrounded by theH mystique that it has been in the past. Be assured that we here at theH computation center will not be satisfied with this small contributionH but shall continue to provide accurate and interesting information on the subject of programming. d THE STAFF e o s l t  oB ARGUMENT: Unpleasant encounter with your boss over your program.  t, ARRAY: What comes out of buck roger's gun.  dI ASSUMED DECIMAL POINT: Located two positions to the right of a program-yI mer's current salary in estimating his own worth.t  m8 BIT: The increment by which programmers slowly go mad. i iC BUS: As in greyhound or pdp, upon which all data commute to work.t  ( CARD READER: Woman who tells fortunes. S FG CHAINING: A method of attaching programmer to desk to speed up output.b  rD CHECKPOINT: The location from which a programmer draws his salary.  " COMMENTS: See fixed word length. s oH COMMON LANGUAGE: The first thing a programmer must forget in order to! be successful. m B  e c eH COMPILER: Program that continually finds fault with your work. See also: Wife. a m= COMPLEX: Adjective used to describe problems to be avoided.. S FI CONCATENATION: Catholic ritual performed once/year to bless programmer.  > CORE STORAGE: A receptical for the center section of apples. . 3 COUNTER: A device over which martinis are served.M  G? DEBUGGING AIDS: Insecticides. (i.e. raid, black flag, etc.)   1 DUMMY ARGUMENTS: Discussions between operators.C I :H DUMP: Slang term for computer building. (i. e. why do i spend so much time in this dump?)j i u0 DUMP LIST: List of our organization's offices. N EH ERROR: What someone else has made when he disagrees with your computer output.R : EXTERNAL STORAGE: Wastebasket. a eH FIXED WORD LENGTH: Four-letter words used by programmers in a state of confusion.( . aG FLOATING CONTROL A characteristic exhibited when you must go to thee: restroom but can't leave the computer.  E FLOATING POINT: The absolute limit before floating control is lost.T L H FLOW CHART: A graphic representation of the fastest route to the rest- room. e iG FORMAT: What you wipe your feet on before entering the computer room.a e F D R E H FREE: Obsolete expression. r e7 FUNCTION: What a program never does on the first run.a F TH GO TO: Often used in conjunction with biblical locations. See also: Fixed word length.n l eH HEAD CRASH: Last step before computer go to, usually executed by pro-A grammer crashing his head against the nearest wall.n   INFINITE LOOP: See: Loop.   o+ INPUT: Food, whiskey, beer, aspirin, etc.  b rE INTERRUPT: Usually the result of a key punch. See also: Head crash.e p sH KEY PUNCH: Error solving procedure used by many programmers consisting; of applying his fist to the teletype terminal.i . SH LINE PRINTER: Machine that prints lines on blank paper, also known as paper shredder.c d $ LOGICAL OPERATOR: Extinct species. h  LOOP: See: Infinite loop.   I4 LOOPING: Feeling experienced by drunk programmers. y e; MACHING LANGUAGE: Grunts, groans, squeaks, shudders, etc.f k pC MACRO: The last half of an expression of surpr00BsFsIsnnl]ldise: "Holy macro".e e eI MASS BUS: A very large bus, sometimes a gmc motor coach. See also: Bus.t t  MEMORY DUMP: Amnesia.  N :H OPERATOR: The person who always mutilates the output from your 8-hour7 batch run while removing it from the line printer.p e    O OUTPUT: See floating control. O G> OVERFLOW: Condition resulting from exceeding floating point. U :H PINBOL: Most widely used language. Also: Terminals usually found in pool halls. f r? POST MORTEM DUMP: Place for dead programmers. See also: Dump.t s gC PROGRAMMER: Red-eyed, mumbling mammal capable of conversing with N inanimate objects. a mH SIGNIFICANT DIGIT: Middle finger of either hand, commonly used by pro-H grammers while talking to operators. (I.e. he gave: the operator two significant digits.) n o, SIN: Not attending concatenation services. . l8 SNOBOL: What programmers throw at operators in winter. S O3 SPITBOL: What programmers shoot at their manager.p  , TAPE: Sometimes used to chain programmers. l fH TAPE DRIVE: Best known for its ability to have lunch in the middle of5 reading the only copy of a source tape.  - + TEXT EDITOR: Employee of local newspaper.o a s< TRAPEZOIDAL RULE: Country rulled completely by trapezoids. n i, UNDERFLOW: Symptom of impotent programmer. n r VARIABLE: Bisexual programmer. m sD WATFOR: Statement frequently uttered by computer science students.  t/ WRITE STATEMENT: Opposite of wrong statement. chain programmers. l fH TAPE DRIVE: Best known for its ability to have lunch in the middle of5 reading the only copy of a source tape.  - + TEXT EDITOR: Employee of local newspaper.o a s< TRAPEZOIDAL RULE: Country rulled completely by trapezoids. n i, UNDERFLOW: Symptom of impotent programmer. n r VARIABLE: Bisexual programmer. m sD WATFOR: Statement frequent new system utility  RCV ? MCR task to recover a file locked as a result of task abortion0 Original author R B French NOV 76 The Boeing Co//L switch added F. Borger MAR 77 Michael Reese./A switch, large file modifications, FEB 81calling sequenceMCR>RCV Filename[/SWitch]G The normal REC[over] command will only unlock a file that was lockedGdue to abnornal termination. After use, some files may end up 0 length;due to the end of file indicators not being properly reset.  GRCV will unlock the file (if locked,) unless another task has write ac-eGcess. It will then scan the file and rewrite file attributes to reflecto,the actual size of the file (rather than 0).  ARCV has two legal switches:i) /LA:NNN Set number of records to be NNNC/ /AD:NNN Change number of records by NNN (+/-)m / NNN must be a legal single-precision decimalo$ number (between -32767 and 32767) iGFor fixed length record files, this switch lets one override the resultp?of the recovery and explicitly determine the number of records.oHThe previous limitation involving large files and file header extensionshas been removed.oe actual size of the file (rather than 0).  ARCV has two legal switches:i) /LA:NNN Set number of records to be NNNC/ /AD:NNN Change number of records by NNN (+/-)m / NNN must be a legal single-precision decimalo$ number (between -32767 and 32767) iGFor fixed length record files, this switch lets one override the resultp?of t P   Q This is an anotated copy of the command file used to generate the Q Reese's Pieces BRU tape. Be advised that documentation is all over, and > not congregated except into help files and dp1:[1,10] ;  ; 2 ; piece 1, general utility programs ; ' /REW/DIS/MOUNTED/BACKUP:PIECE1 H dr3:[1,10]*.*;*,[1,12]*.*;00Js/ssnnnnd*,[1,16]*.*;*,[1,22]*.*;*,[1,25]*.*;* MM: 6 1,10 Lots of programs, a catchall account. < 1,12 The INForm package, updated for version 3.2 B 1,16 DUPLEX and XMIT, updated for IAS (term emulators) L 1,22 BRU and DSC tape directory pgms, unknown tape listers, tape M copy programs, our on-line ROLLIN image mode disk save pgms. ,L 1,25 COOKIE, DAMMIT, HEADACHE, MURPHY and MAY, smart remark pgms ; 7 ; piece 2, more general utility programs ] ; ' /APP/DIS/MOUNTED/BACKUP:PIECE2 sH dr3:[1,26]*.*;*,[1,30]*.*;*,[1,31]*.*;*,[1,32]*.*;*,[1,40]*.*;* MM: N 1,26 Programs to list the external page, software used to generate A bootstrap roms for non standard device addresses O 1,30 Programs to help you patch disks, examine FCS file structures, M show disk activity, recover lost files, show file attributes 7 1,31 Screen based clock, and system display sN 1,32 An RSX mail program, updated to run on IAS, (Uses Reese style B login info, but could be adopted to regular IAS.) 5 1,40 Program to list current FCB's in use a ; O ; MRH HELP, help modified to use multiple help files, instead of L ; one humongous file, so its faster For a command of AID ZAP, J ; help first tries to use ZAP.HLP, then defaults to MCR.HLP ; % /APP/DIS/MOUNTED/BACKUP:HELP d dr3:[1,2]*.*;* MM: ; I ; Much of the documentation for packages in Reese's Pieces & ; resides on dp1:[1,10] ; % /APP/DIS/MOUNTED/BACKUP:DOCS  dp1:[1,10]*.*;* MM: ; O ; errors, aids to process error logging reports, and some simple s( ; on-line diagnostic aids ; ' /APP/DIS/MOUNTED/BACKUP:ERRORS t dr3:[1,6]*.*;* MM: ; = ; mrhlogin, reese mcr login package, DCL style ;  Q PAGE 2 P  ] ;) /APP/DIS/MOUNTED/BACKUP:MRHLOGIN  dr3:[11,13]*.*;* r MM: M [11,13] Contains the sources to HEL, BYE, etc that were developed to N let an MCR based system use the protection features of a PDX L system. Passwords, etc are in the user profile file, with a M modified version of the protection code. Also has same login J for batch. (Modified task image of pdx is included.) Also L includes a catachall task that does some one-line DCL style + commands, (DIR,PRINT,etc.) ; * /APP/DIS/MOUNTED/BACKUP:MRHLOGIN1 Q dp1:[1,100]*.sys;*,[1,100]*.bas;*,[1,100]autostart.dat,[1,100]pdsupf.vir t MM: ; J *.sys Reese basic programs used to update the user profile file < *.bas Programs to aid in logging, accounting etc. E pdsupf.vir a virgin file, with only SYSTEM and SCITERMINAL lC autstart.dat command file for autostarting selected users. eN Note that we still use an older format of the PDSUPF.DAT file ; A ; vtlvdiecr, screen lister, directory, editing mcr .I ; some great 11m Programs by Robin Miller, updated for IAS ; * /APP/DIS/MOUNTED/BACKUP:VTLVDIECR  dr3:[351,*]*.*;* . MM: ; I 351,70 Contains VTL, a VT100 terminal listing program, commands TA like KED, options for viewing 2 files, lots more rI 351,72 VAX style directory command, short version with multiple mH entries per line, full version with all file attributes K 351,73 ECR, Editing MCR. MCR with command line editing, much more Robin Miller, u00RsFsIsnnl]ld P   Q This is an anotated copy of the command file used to generate the Q Reese's Pieces BRU tape. Be advised that documentation is all over, and > not congregated except into help files and dp1:[1,10] ;  ; 2 ; piece 1, general utility programs ; ' /REW/DIS/MOUNTED/BACKUP:PIECE1 H dr3:[1,10]*.*;*,[1,12]*.*;*,[1,16]*.*;*,[1,22]*.*;*,[1,25]*.*;* MM: 6 1,10 Lots of programs, a catchall account. < 1,12 The INForm package, updated for version 3.2 B 1,16 DUPLEX and XMIT, updated for IAS (term emulators) L 1,22 BRU and DSC tape directory pgms, unknown tape listers, tape M copy programs, our on-line ROLLIN image mode disk save pgms. ,L 1,25 COOKIE, DAMMIT, HEADACHE, MURPHY and MAY, smart remark pgms ; 7 ; piece 2, more general utility programs ] ; ' /APP/DIS/MOUNTED/BACKUP:PIECE2 sH dr3:[1,26]*.*;*,[1,30]*.*;*,[1,31]*.*;*,[1,32]*.*;*,[1,40]*.*;* MM: N 1,26 Programs to list the external page, software used to generate A bootstrap roms for non standard device addresses O 1,30 Programs to help you patch disks, examine FCS file structures, M show disk activity, recover lost files, show file attributes 7 1,31 Screen based clock, and system display sN 1,32 An RSX mail program, updated to run on IAS, (Uses Reese style B login info, but could be adopted to regular IAS.) 5 1,40 Program to list current FCB's in use a ; O ; MRH HELP, help modified to use multiple help files, instead of L ; one humongous file, so its faster For a command of AID ZAP, J ; help first tries to use ZAP.HLP, then defaults to MCR.HLP ; % /APP/DIS/MOUNTED/BACKUP:HELP d dr3:[1,2]*.*;* MM: ; I ; Much of the documentation for packages in Reese's Pieces & ; resides on dr1:[1,10] ; % /APP/DIS/MOUNTED/BACKUP:DOCS  dr1:[1,10]*.*;* MM: ; O ; errors, aids to process error logging reports, and some simple s( ; on-line diagnostic aids ; ' /APP/DIS/MOUNTED/BACKUP:ERRORS t dr3:[1,6]*.*;* MM: ; = ; mrhlogin, reese mcr login package, DCL style ;  Q PAGE 2 P  ] ;) /APP/DIS/MOUNTED/BACKUP:MRHLOGIN  dr3:[11,13]*.*;* r MM: M [11,13] Contains the sources to HEL, BYE, etc that were developed to N let an MCR based system use the protection features of a PDX L system. Passwords, etc are in the user profile file, with a M modified version of the protection code. Also has same login J for batch. (Modified task image of pdx is included.) Also L includes a catachall task that does some one-line DCL style + commands, (DIR,PRINT,etc.) ; * /APP/DIS/MOUNTED/BACKUP:MRHLOGIN1 Q dp1:[1,100]*.sys;*,[1,100]*.bas;*,[1,100]autostart.dat,[1,100]pdsupf.vir t MM: ; J *.sys Reese basic programs used to update the user profile file < *.bas Programs to aid in logging, accounting etc. E pdsupf.vir a virgin file, with only SYSTEM and SCITERMINAL lC autstart.dat command file for autostarting selected users. eN Note that we still use an older format of the PDSUPF.DAT file ; A ; vtlvdiecr, screen lister, directory, editing mcr .I ; some great 11m Programs by Robin Miller, u00Zs[ssnnnndpdated for IAS ; * /APP/DIS/MOUNTED/BACKUP:VTLVDIECR  dr3:[351,*]*.*;* . MM: ; I 351,70 Contains VTL, a VT100 terminal listing program, commands TA like KED, options for viewing 2 files, lots more rI 351,72 VAX style directory command, short version with multiple mH entries per line, full version with all file attributes K 351,73 ECR, Editing MCR. MCR with command line editing, much more Robin Miller, u.ps 60,80;.lm 8;.rm 80,.ls 1K^^This is an anotated copy of the command file used to generate the Reese'sIOPieces BRU tape. Be advised that documentation is all over, and not congregated %except into help files and dp1:[1,10].nofillO;F; #; piece 1, general utility programsF;/REW/DIS/MOUNTED/BACKUP:PIECE1?dr3:[1,10]*.*;*,[1,12]*.*;*,[1,16]*.*;*,[1,22]*.*;*,[1,25]*.*;*"MM:R*1,10 Lots of programs, a catchall account.01,12 The INForm package, updated for version 3.261,16 DUPLEX and XMIT, updated for IAS (term emulators)@1,22 BRU and DSC tape directory pgms, unknown tape listers, tape= copy programs, our on-line ROLLIN image mode disk save pgms.l@1,25 COOKIE, DAMMIT, HEADACHE, MURPHY and MAY, smart remark pgms;(; piece 2, more general utility programs;p/APP/DIS/MOUNTED/BACKUP:PIECE2?dr3:[1,26]*.*;*,[1,30]*.*;*,[1,31]*.*;*,[1,32]*.*;*,[1,40]*.*;*,MM:]B1,26 Programs to list the external page, software used to generate1 bootstrap roms for non standard device addresses C1,30 Programs to help you patch disks, examine FCS file structures,e= show disk activity, recover lost files, show file attributesl+1,31 Screen based clock, and system displayCB1,32 An RSX mail program, updated to run on IAS, (Uses Reese style2 login info, but could be adopted to regular IAS.))1,40 Program to list current FCB's in use];;@; MRH HELP, help modified to use multiple help files, instead of=; one humongous file, so its faster For a command of AID ZAP, ;; help first tries to use ZAP.HLP, then defaults to MCR.HLP ;c/APP/DIS/MOUNTED/BACKUP:HELPdr3:[1,2]*.*;*MM:a;v:; Much of the documentation for packages in Reese's Pieces; resides on dr1:[1,10]i;a/APP/DIS/MOUNTED/BACKUP:DOCSdr1:[1,10]*.*;* MM:(;s@; errors, aids to process error logging reports, and some simple; on-line diagnostic aidst;B/APP/DIS/MOUNTED/BACKUP:ERRORSdr3:[1,6]*.*;*MM:i; .; mrhlogin, reese mcr login package, DCL style;s /APP/DIS/MOUNTED/BACKUP:MRHLOGINdr3:[11,13]*.*;*MM: D[11,13] Contains the sources to HEL, BYE, etc that were developed to> let an MCR based system use the protection features of a PDX< system. Passwords, etc are in the user profile file, with a= modified version of the protection code. Also has same logini: for batch. (Modified task image of pdx is included.) Also< includes a catachall task that does some one-line DCL style commands, (DIR,PRINT,etc.)g; !/APP/DIS/MOUNTED/BACKUP:MRHLOGIN1Hdp1:[1,100]*.sys;*,[1,100]*.bas;*,[1,100]autostart.dat,[1,100]pdsupf.virMM:t;s?*.sys Reese basic programs used to update the user profile filed1*.bas Programs to aid in logging, accounting etc.e<pdsupf.vir a virgin file, with only SYSTEM and SCITERMINAL:autstart.dat command file for autostarting selected users.> Note that we still use an older format of the PDSUPF.DAT file; 2; vtlvdiecr, screen lister, directory, editing mcr:; some great 11m Programs by Robin Miller, updated for IAS;G!/APP/DIS/MOUNTED/BACKUP:VTLVDIECRadr3:[351,*]*.*;*MM:t;,?351,70 Contains VTL, a VT100 terminal listing program, commandst1 like KED, options for viewing 2 files, lots morel?351,72 VAX style directory command, short version with multipleY8 entries per line, full version with all file attributesA351,73 ECR, Editing MCR. MCR with command line editing, much morethe PDSUPF.DAT file; 2; vtlvdiecr, screen lister, directory, editing mcr:; some great 11m Programs by Robin Miller, updated for IAS;G!/APP/DIS/MOUNTED/BACKUP:VTLVDIECRadr3:[351,*]*.*;*MM:t;,?351,70 Contains VT00bsFsIsnnl]ld quick guide for RUNOFF  G APPENDIX [AX] XXXXXXXX . . . . . Starts an Appendix Named XXXXXXXX R AUTOPARAGRAPH [AP] . . . . . . . Lines beginning with space cause a paragraph aK BLANK [B] n . . . . . . . . . . Causes n blank lines (or end of page)> BREAK [BR] . . . . . . . . . . . Current line is finished e? CENTER [CN] [C] n . . . . . . . Centers next line of textd: CHAPTER [CH] XXXXXXXX . . . . . Starts a new chapter n3 DATE [DT] [D] xxxxxxxxx . . . . Sets the DategA END NOTE [EN] . . . . . . . . . Ends effect of NOTE commandaD END SUBPAGE [ES] . . . . . . . . Ends effect of SUBPAGE command eG FIGURE [FG] n . . . . . . . . . Makes room for n-line high figure B FILL [F] . . . . . . . . . . . . Causes text filling to occurN FLAGS [FL] XXXXXX . . . . . . . Sets CAPITALIZE and/or HYPHENATE mode onK FOOTNOTE [FN] n . . . . . . . . Allocates space and starts a FOOTNOTEa wK HEADER [HD] (UPPER,MIXED,LOWER). Sets Case convention for page headersNA HEADERLEVEL [HL] N XXXXXXXXX . . Sets level for HEADER linesS AD INDENT [ID] [I] n . . . . . . . Indents the next line n spacesE INDEX [X] tttt ... tttt . . . . Enters tttt ... tttt into indexL FH JUSTIFY [J] . . . . . . . . . . Enables right margin justificationF LEFT HEADER [LM] n . . . . . . . Sets left margin for page header? LEFT MARGIN [LM] n . . . . . . . Sets left margin for textaG LIST n . . . . . . . . . . . . . Starts a list with line spacing n F LISTELEMENT [LE] XXXXXXXXX . . . Enter XXXXXXXX as item of a listI LOWER CASE [LC] . . . . . . . . Enables lower case output (default)c O NO FLAGS [NFL] XXXXXXXX . . . . Sets CAPITALIZE and/or HYPHENATE mode offJ; NO HEADER [NHD] . . . . . . . . Disables page headersa NO PERIOD [NP] . . . . . . . . . Disables extra spaces after period, comma A NOAUTOPARAGRAPH [NAP] . . . . . Disables AUTOPARAGRAPH modeh8 NOFILL [NF] . . . . . . . . . . Disables FILL mode; NOJUSTIFY [NJ] . . . . . . . . . Disables JUSTIFY mode = NONUMBER [NNM] . . . . . . . . . Disables page numbering D NOTE [NT] . . . . . . . . . . . Starts a NOTE (not a footnote)F NUMBER APPENDIX x . . . . . . . Sets the current Appendix letterE NUMBER CHAPTER n . . . . . . . . Sets the current Chapter numberB NUMBER [NM] n . . . . . . . . . Sets the current Page number A7 PAGE [PG] . . . . . . . . . . . Starts a new pageNM PAPER SIZE [PAGE SIZE] [PS] n,m Sets n lines/page and m characters/line J PARAGRAPH [PP] [P] n . . . . . . Causes a new paragraph with n indentN PERIOD [PR] . . . . . . . . . . Enables extra spaces after period, comma6 PRINT INDEX [PX] . . . . . . . . Prints the INDEX AG RIGHT HEADER [RH] n . . . . . . Sets right margin for page headera@ RIGHT MARGIN [RM] n . . . . . . Sets right margin for text P: SET SUBPAGE [SS] . . . . . . . . Enables subpage modeI SKIP [S] [SL] n . . . . . . . . Causes n * line spacing blank lines < SPACING [LS] n . . . . . . . . . Sets line spacing to nB STANDARD [SD] . . . . . . . . . Restores standard parameters: SUBPAGE [SB] . . . . . . . . . . Starts a new subpageL SUBTITLE [ST] tttt ... tttt . . Sets the Subtitle for the Page headers A TAB STOPS [TS] n ... n . . . . . Sets non-standard tab stops Q TEST PAGE [TP] n . . . . . . . . Starts a new page if less than n lines left I TITLE tttt ... tttt . . . . . . Sets the Title for the Page headers blank lines < SPACING [LS] n . . . . . . . . . Sets line spacing to nB STANDARD [SD] . . . . . . . . . Restores standard parameters: SUBPAGE [SB] . . . . . . . . . . Starts a new subpageL SUBTITLE [ST] tttt ... tttt . . Sets the Subtitle for the Page headers A TAB STOPS [TS] n ... n . . . . . Sets non-standard tab stops Q TEST PAGE [TP] n . . . . . . . . Starts a new page if less than n lines left I 00js[ssnnnnd quick guide for RUNOFFG APPENDIX [AX] XXXXXXXX . . . . . Starts an Appendix Named XXXXXXXXR AUTOPARAGRAPH [AP] . . . . . . . Lines beginning with space cause a paragraph K BLANK [B] n . . . . . . . . . . Causes n blank lines (or end of page)> BREAK [BR] . . . . . . . . . . . Current line is finished ? CENTER [CN] [C] n . . . . . . . Centers next line of text: CHAPTER [CH] XXXXXXXX . . . . . Starts a new chapter 3 DATE [DT] [D] xxxxxxxxx . . . . Sets the DateiA END NOTE [EN] . . . . . . . . . Ends effect of NOTE commandaD END SUBPAGE [ES] . . . . . . . . Ends effect of SUBPAGE command eG FIGURE [FG] n . . . . . . . . . Makes room for n-line high figure B FILL [F] . . . . . . . . . . . . Causes text filling to occurN FLAGS [FL] XXXXXX . . . . . . . Sets CAPITALIZE and/or HYPHENATE mode onK FOOTNOTE [FN] n . . . . . . . . Allocates space and starts a FOOTNOTEa wK HEADER [HD] (UPPER,MIXED,LOWER). Sets Case convention for page headersNA HEADERLEVEL [HL] N XXXXXXXXX . . Sets level for HEADER linesS AD INDENT [ID] [I] n . . . . . . . Indents the next line n spacesE INDEX [X] tttt ... tttt . . . . Enters tttt ... tttt into indexL FH JUSTIFY [J] . . . . . . . . . . Enables right margin justificationF LEFT HEADER [LM] n . . . . . . . Sets left margin for page header? LEFT MARGIN [LM] n . . . . . . . Sets left margin for textaG LIST n . . . . . . . . . . . . . Starts a list with line spacing n F LISTELEMENT [LE] XXXXXXXXX . . . Enter XXXXXXXX as item of a listI LOWER CASE [LC] . . . . . . . . Enables lower case output (default)c O NO FLAGS [NFL] XXXXXXXX . . . . Sets CAPITALIZE and/or HYPHENATE mode offJ; NO HEADER [NHD] . . . . . . . . Disables page headersaR NO PERIOD [NP] . . . . . . . . . Disables extra spaces after period, comma A NOAUTOPARAGRAPH [NAP] . . . . . Disables AUTOPARAGRAPH modeS8 NOFILL [NF] . . . . . . . . . . Disables FILL mode; NOJUSTIFY [NJ] . . . . . . . . . Disables JUSTIFY modea= NONUMBER [NNM] . . . . . . . . . Disables page numbering D NOTE [NT] . . . . . . . . . . . Starts a NOTE (not a footnote)F NUMBER APPENDIX x . . . . . . . Sets the current Appendix letterE NUMBER CHAPTER n . . . . . . . . Sets the current Chapter number B NUMBER [NM] n . . . . . . . . . Sets the current Page number A7 PAGE [PG] . . . . . . . . . . . Starts a new pageNM PAPER SIZE [PAGE SIZE] [PS] n,m Sets n lines/page and m characters/line J PARAGRAPH [PP] [P] n . . . . . . Causes a new paragraph with n indentN PERIOD [PR] . . . . . . . . . . Enables extra spaces after period, comma6 PRINT INDEX [PX] . . . . . . . . Prints the INDEX AG RIGHT HEADER [RH] n . . . . . . Sets right margin for page headera@ RIGHT MARGIN [RM] n . . . . . . Sets right margin for text P: SET SUBPAGE [SS] . . . . . . . . Enables subpage modeI SKIP [S] [SL] n . . . . . . . . Causes n * line spacing blank lines < SPACING [LS] n . . . . . . . . . Sets line spacing to nB STANDARD [SD] . . . . . . . . . Restores standard parameters: SUBPAGE [SB] . . . . . . . . . . Starts a new subpageL SUBTITLE [ST] tttt ... tttt . . Sets the Subtitle for the Page headers A TAB STOPS [TS] n ... n . . . . . Sets non-standard tab stops Q TEST PAGE [TP] n . . . . . . . . Starts a new page if less than n lines left I TITLE tttt ... tttt . . . . . . Sets the Title for the Page headers blank lines < SPACING [LS] n . . . . . . . . . Sets line spacing to nB STANDARD [SD] . . . . . . . . . Restores standard parameters: SUBPAGE [SB] . . . . . . . . . . Starts a new subpageL SUBTITLE [ST] tttt ... tttt . . Sets the Subtitle for the Page headers A TAB STOPS [TS] n ... n . . . . . Sets non-standard tab stops Q TEST PAGE [TP] n . . . . . . . . Starts a new page if less than n lines left I TITLE tttt ... tttt . . . . . . Sets the Title f00rsFsIsnnl]ld K   & SPELL     1.0 Summary   L SPELL is a system of checking for spelling errors in text L files on the RSX-11M operating system. The program SPELL does L the checking and optionally may make changes, while DICTMK for- L mats a file for SPELL to use. It is written in FORTRAN-77 except L for certain file access routines that are written in Macro. The L program has been optimized as much as possible for speed. In L non-interactive mode a file will be produced which contains all L the words from the document that SPELL could not find in its dic- L tionary. In interactive mode words can be replaced, added to the L dictionary (DICTMK will need to be run again), or simply ignored.  uL For an in-depth see the source code as it contains much com- L ments. Automated extractions of comments (C+/C-) will tell the ( workings of all the routines.    o 2.0 Background  b rL The programs were written in FORTRAN-77 and were developed L on a PDP-11/t55 with 6-RK05, running RSX-11M V3.2. The programs L came from a desire on my part to have a system that could be used L to check my submissions for the DECUS North Texas Local Users L Group Newsletter. The only spelling checker I could find was the L one included in the Software Tools section of the Spring 81 L RSXSIG tape. As I didn't want to build software tools, I used L the data base as a starting point for program development. As L sequential reads were too slow for the upwards of 42,000 words in L the data base, I used Marge Knox's (now FORTRAN-77). Random ac- L cess - block i/o was decided on to minimize the time for disk L i/o. Using Ralph Stammerjohn's Index to the past RSXSIG tapes, I L was able to come up with Phil Cannon's routines for FCS file ac- L cess to the FDB. This enabled me to build the dictionary (using L DICTMK) using random access block i/o, set the size of the file, : and to truncate to the last block used on exit.  tL The prototype of this program would read the document to be L checked and put each different word in a list to be checked by L the dictionary and those misspelled written out to a file. This L worked somewhat allright for small files, but the larger the file L the more time that was spent checking against the list for each L word to insure the word was not already included. Even small L files yielded 500 different words to be checked. This was before L the index for each letter was included on the average of 30 reads  for each word. t L Spelling Checker PAGE 2 K g t f 3.0 Use o t L To build SPELL copy DICT.SEQ to uic [3,3] or any UIC you L want if changes are made to the source code. @DICTMK will pro- L duce the DICTMK.TSK and @SPELL will produce the SPELL.TSK. Run L DICTMK to produce DICT.RAF (the random access file). Install ? SPELL or set up CCL to do it and pass command lines.  L To check a document for spelling, >SPE filename[/sw] will do L it. If you are not using a VT52 type terminal, please make L changes to SUBROUTINE DISPLA for the right escape sequences for  clear screen.  d  C 4.0 DICTMK  u tL DICTMK is the dictionary maker for the spelling system. It L is used to pr00zs[ssnnnndovide a random access block i/o dictionary with L internal indexes for all the letters. Access to the File Des- L criptor Block is possible by the use of Phil Cannon's routines L that use an internal FDB in a byte array. Thus truncate on close L is possible using block i/o. DICTMK will also provide statistics L on the words in the dictionary after it has built the dictionary.  n  e 4.1 Dictionary   L The dictionary that goes along with this program comes from L the software tools section of the Spring 81 RSXSIG tape. It was L DICT.;1. It contains more than 42,000 words. The shortest word L is 'a' and the longest is 22 letters. From looking through it, L there are some proper names and places. This may or may not be L advantageous 3% of the total space, so deleting them may not buy  you much space.  n   4.2 Adding words  r hL When spell runs and produces a list of words that you want L to add to the dictionary, run DICTMK from where SPELL ran (that's L where the file of words is. DICTMK will take the file and merge < it into DICT.SEQ then produce another DICT.RAF.  L Spelling Checker PAGE 3 K s e  5.0 SPELL . A nL SPELL is the spelling checker program. It uses the diction- L ary file and its own internal list, and checks the text for words L not found in either. Several switches are available for the com- L mand line, and several commands are available in the interactive  mode.  i C k 5.1 Switches   L When invoking SPELL several switches are available. To in-  voke SPELL: # >SPE filename[switches] or E >SPE " SPE>filename[switches]  A The switches for the command line are as follows: 6 /Q process in quick mode (non interactive) < /F file is FORTRAN source, process comments only < /T terse comments, on interactive, display line  and word only 2 /N numbers are valid symbols in tokens I /L[:filename] preload the add list with words that are correct 6 if filename exists use this list, if not  use 'SPELL.DCT' 6 /S:x ignore words with 'x' or less letters   m  5.2 Modes   L There are two modes of operation for the spelling checker. L Depending on the availability mode can be chosen. The interac- L tive is the non-quick mode, so named since it takes longer to + process a document in this mode. l    5.2.1 Quick -  tL The quick mode provides for no interactive processing. It L will scan the document and make a list of words that it didn't L find in its dictionary or in its internal list. This is the mode 8 used for long documents and on line checking.  L Spelling Checker PAGE 4 K t  s 5.2.2 Non-quick -  .L The non-quick mode (default) is interactive with the termi- L nal and uses screen clearing. This screen clearing can be ad- L justed to be compatible with the terminal type. For adjustments L see SUBROUTINE DISPLA. In this mode the document is scanned for L number of lines, to provide the operator with a scale of how far L he has to go. If the verbose command has been used (default), A the full display line and the given word is displayed. n i m  5.2.2.00sFsIsnnl]ld1 Display -  tL The terminal display in the verbose mode will display the L spelling header line which holds the title and version number. L Next is a short display of the commands available. Then a short L list of the statistics of the spelling checker so far this ses- L sion. Thus the operator can see how many lines have been pro- L cessed, how many words, and the number of words added to each of L the lists. Next is the line containing the word in question and . then the word itself with a prompt.    l 5.2.2.2 Commands - h i& The commands available ; (where is a number between 1-9) ignore words  or less in length i4 A this word is correct, add to dictionary ; C this word is correct, do not add to dictionary 3 E exchange words, but do not add to list m! L replace current line * N next word, do not add to list  T terse display  V verbose display : W wrong spelling, make correction to dictionary 1 X exit, as if end of document was here    w 5.3 Adjustments 9 g eL Several adjustments can be made to this program by the in- L terested user. Words can be added to the internal list (at the L sacrifice of space). Overlays are possible. Adjustments to the L display section are possible for other than VT52 type terminals. L The location of the dictionary can modified to increase the speed  of reads.  L Spelling Checker PAGE 5 K o m  5.3.1 Overlay -  sL Two overlay descriptions are given if you need them. L SPEED.ODL has been set up to provide the fastest running of the L overlay. The most used portions are all in memory so no overlay L reads are needed. SPACE.ODL has been set up to provide the smal- L lest version of SPELL. Only those sections needed are in memory L at one time. It will probably be very slow since many overlay L reads are needed for each and every word checked. These overlays L are not tested so don't blame me if they don't work. SPEED.ODL L will not run faster than the non-overlayed SPELL. SPELL will run L faster if adjustments are made to FNDNOR which fills the normally L used words list. If more words are included internally a incre- L ase in speed will be likely but this takes space and this task is  at the limit now.  n v a 5.3.2 Add words -  eL There is a little space left in the program to allow for the L expansion of the internal list it checks first. The current L words in this list were found in the "Book of lists" which refer- L ences "American Heritage Word Frequency Book" of 1971. There are L currently 12 words in this list in the order in which they occur L in their usage. If it can be found a longer and more complete L list is in "Computational Analysis of Present-Day American En- L glish" by H. Kucera, Brown University Press, 1967. From this it L can be seen that with a list of 16 words 28 per cent of the words L in a document can be found. If 64 words are used 43 percent can L be found with a corresponding decrease English occur in a vocabu-  lary of 134 words.  y c  5.3.3 Display -  fL Adjustments can be made to SUBROUTINE DISPLA to provide the L escape sequences for ANSI VT100 and others. Even fancier termi-  nal i/o can be done. o h i  5.3.4 Disk - w L A great incre00sssnnnndase in speed can be made if the dictionary is & kept on a solid state disk. can L be found with a corresponding decrease English occur in a vocabu-  lary of 134 words.  y c  5.3.3 Display -  fL Adjustments can be made to SUBROUTINE DISPLA to provide the L escape sequences for ANSI VT100 and others. Even fancier termi-  nal i/o can be done. o h i  5.3.4 Disk - w L A great incre .LM 10;.RM 75.APPENDIX ^^LIST OF MCR TASKS\\.NOFILL.FG 1.TS 56!^^NAME DESCRIPTION REFERENCE\\6------ --------------------------------- ------------.FG 1.LS 2.NOFILL*x;A.A؈1n%d 19NOV8615333918NOV8315250717NOV58ExM.A؈g`%d  19NOV8615334023MAY8310323817NOV58FxD.A؈/h%d 19NOV8615334018NOV8315250917NOV58IxP. A؈X%f  19NOV8615334017JUN8217102317NOV58Jx6. A؈3r%f 19NOV8615334018NOV8315251017NOV58MxI. A&6 19NOV8615334022APR8610395217NOV58Nx. A؈&6 19NOV8615334021OCT8308074817NOV58OxW. A؈&t6 19NOV8615334118NOV8309211417NOV58Px.A؈%\a} 19NOV8615334127JUL8312112217NOV58Qx T.A| ""19NOV8615334104SEP8616401417NOV58 Rxb.A؈/n""` 19NOV8615334107OCT8211280017NOV58\xM.A"Z^zK19NOV8615334212NOV8509125217NOV58^x.A?&2xQ  19NOV8615334210JUL8414083717NOV58ax `.AcT 19NOV8615334229JUN8511245317NOV58cx.A؈dcT2D 19NOV8615334230JUN8211483417NOV58{xȑ.A؈FcT2DkQ 19NOV8615334230JUN8213130617NOV58|x.AXr 19NOV8615334322NOV8517301717NOV58x.AZr 19NOV8615334322NOV8517301317NOV58x.A9r 19NOV8615334329JUN8511253117NOV58x.A؈d9roLW 19NOV8615334308APR8012442417NOV58x .A؈BH9roLWkQ 19NOV8615334308APR8013201117NOV58x.A f9roL@[ 19NOV8615334411JUN8612002317NOV58xc.ABF9roL@[kQ 19NOV8615334411JUN8611591017NOV58x.AL9roL@[^ 19NOV8615334411JUN8612001317NOV58x%!.A;r19NOV8615334429JUN8511264317NOV58x!.A؈d;r2D 19NOV8615334418MAR8016151317NOV58x˳. A؈Fn;r2DkQ 19NOV8615334509APR8011563517NOV58x.!A؈!v;r_ 19NOV8615334629JUN8511305417NOV58xQ."A؈E ;r_kQ 19NOV8615334615DEC8412270417NOV58 xY.#A56;r_ 19NOV8615334612JUL8517184917NOV584 yA.$AGr 19NOV8615334729JUN8511272817NOV58x4.%AdGr{  19NOV8615334722NOV8517301617NOV588xF_.&AA,Gr{ kQ 19NOV8615334722NOV8517301517NOV58xa.'AdGr|  19NOV8615334722NOV8517301217NOV58x'\.(AA(Gr| kQ 19NOV8615334822NOV8517301017NOV58x.)A؈dGry  19NOV8615334827JUL8311583817NOV58xH.*A؈AGry kQ 19NOV8615334827JUL8312085717NOV58x.+AJr19NOV8615334829JUN8511290017NOV58xQ.,A؈"hJr  19NOV8615334906JUL8311313717NOV58x>Y.-A؈?0Jr kQ 19NOV8615334906JUL8311444917NOV58xʝ..APr 19NOV8615335011JUN8612010217NOV58xL./A؈>Lsm  19NOV8615335020DEC7912100217NOV58x.0A%&s.19NOV8615335029JUN8511321717NOV58$?y.1A؈ds2D 19NOV8615335015FEB8010330817NOV58x؛.2A؈Ks2DkQ 19NOV8615335107OCT8214185717NOV58x dyN.3A؈ps_ 19NOV8615335114DEC8417063617NOV58pyď.4A؈E Fs_kQ 19NOV8615335115DEC8411251517NOV58 qyz.5A%&s_ 19NOV8615335129JUN8511314917NOV58$~y).6As19NOV8615335221SEP8514002617NOV58yϴ.7Abst: 19NOV8615335221SEP8511594917NOV58y.8AHlst:kQ 19NOV8615335225SEP8517385517NOV58y.9A؈bs< 19NOV8615335229JAN8012142217NOV58y(o.:A؈C<s<kQ 19NOV8615335310DEC8016364017NOV58yԣ.;A$%s< 19NOV8615335329JUN8511324317NOV58#y?.<A؈ xsy  19NOV8615335317DEC8114262217NOV58y2.=A؈Isy kQ 19NOV8615335314JAN8214221817NOV58y.>A؈"zsjze; 19NOV8615335417DEC8114262317NOV58yX.?A؈Isjze;kQ 19NOV8615335414JAN8214221917NOV58y`3.@As 19NOV8615335431OCT8512092417NOV58y&.AA؈"hs  19NOV8615335422SEP8311140817NOV58yo.BA<xs kQ 19NOV8615335431OCT8511574517NOV58yi.CA؈?Ns kQ 19NOV8615335522SEP8311102217NOV58xy.DAs 19NOV8615335529JUN8511340817NOV58yQ.EAs 19NOV8615335529JUN8511350417NOV58y].FAPBwD  19NOV8615335503AUG8114223617NOV58yfn.GA%8zzQ@  19NOV8615335607OCT8211244517NOV58z..HA؈K}/S@`  19NOV8615335614FEB8011182117NOV58 z.IA3}eTy  19NOV8615335613FEB8015372717NOV58 zPUFDJӐzB؈P.KB  19NOV8615335804SEP8611523717NOV58 z O.LBQ; 319NOV8615335830DEC8316044817NOV58z(.MBFF 3 19NOV8615335812MAR8416343717NOV58!z&.NB@t 319NOV8615335803AUG8216334217NOV58#zk.OBo E,d 19NOV8615335818APR8615463217NOV58$zk.PB= 319NOV8615335803AUG8312132217NOV58+z.QB@@ 8?T 19NOV8615335928OCT8514234417NOV58-zTs.RB 8""19NOV8615335901OCT8113390517NOV58Hz\=.SBN < 319NOV8615335921DEC8312081017NOV58 Zz_.TBK") 319NOV8615335905AUG8212293217NOV58dz.UBL''he319NOV8615335921DEC8312214117NOV58&fz.VBRtK 19NOV8615340027JUL8512163017NOV58zf.WBO~3 19NOV8615340027JUL8512170317NOV58z .XBQ%%3 19NOV8615340027JUL8512170517NOV58$z6.YBM{L3 19NOV8615340027JUL8512170917NOV58zL.ZBB319NOV8615340002AUG8213133317NOV58z.[B;(9  19NOV8615340011MAY8613343917NOV58z.\BE4319NOV8615340109JAN8413425417NOV58z.]B@5R?T19NOV8615340106AUG8112134517NOV58z2`.^BC6319NOV8615340105JAN8409273117NOV58z._BE0319NOV8615340103AUG8211593417NOV58z0.`BBHZ319NOV8615340204AUG8209440617NOV58z.aBN319NOV8615340221DEC8312025517NOV58z~.bBGd#319NOV8615340211JAN8415023717NOV58zu.cBOX3 19NOV8615340330JUN8412161817NOV58z.dBN3 19NOV8615340323JAN8413180617NOV58z.eBI319NOV8615340321DEC8312055517NOV58{.fBw319NOV8615340321DEC8312524517NOV58{3.gBJ%?T19NOV8615340419JUL7918164517NOV58{R.hBJ%Ǝ?T19NOV8615340426FEB8216074717NOV58{.iBJ0?T19NOV8615340426FEB8216475017NOV58{9.jBv 2d3 19NOV8615340414DEC8414220817NOV58{#.kBKnz 19NOV8615340402JUN8515125317NOV58 zt|.lB'n0[ 19NOV8615340502JUN8515125417NOV58u|29.mB'Ì[ 19NOV8615340502JUN8515125417NOV58x|RA.nBw3 19NOV8615340516JAN8417323217NOV58{|Й.oBNR#319NOV8615340521DEC8313595617NOV58}.pBLGG*319NOV8615340621DEC8314370417NOV58F}H.qBN pm+19NOV8615340617DEC8112543317NOV58 }.rBH m+3 19NOV8615340603APR8414303817NOV58}.sBL %319NOV8615340702AUG8211021717NOV58~.tBN116 &319NOV8615340721DEC8314022317NOV580~p(.uBCD4&3 19NOV8615340828APR8609532117NOV58~.vBGZ5&319NOV8615340802AUG8217574117NOV58~.wB>&319NOV8615340802AUG8211044217NOV58~].xB;&3 19NOV8615340931MAR8411103217NOV58~.yBJb'319NOV8615340917NOV8212372217NOV58~H.zBO x'319NOV8615340921DEC8314184817NOV58~2 .{BI '319NOV8615340921DEC8314210717NOV58~.|B2d'< 19NOV8615340911OCT8416231117NOV58.}BKL'3 19NOV8615341011OCT8415352617NOV58O.~BW2dn 19NOV8615341004SEP8612012317NOV58&~.BO2dx 19NOV8615341004SEP8612022717NOV58_.BO d43 19NOV8615341120DEC8314305817NOV58.BD8319NOV8615341122NOV8316173317NOV58#3.BM v:319NOV8615341109AUG8214483217NOV58 &.BN@y:3 19NOV8615341127DEC8310224017NOV581D.BC++NI3319NOV8615341221JAN8512272017NOV58*H.B OE3 19NOV8615341212FEB8614542317NOV58s).BOGK3 19NOV8615341221DEC8310004017NOV58v,,.B@bK?T 19NOV8615341202JUN8515125517NOV584Z.BL{L3 19NOV8615341323NOV8216011017NOV58<.BE N3 19NOV8615341303JUN8312375817NOV58:.B@ ! N?T?T 19NOV8615341311MAY8613423017NOV58.BC\N3 19NOV8615341404JAN8416165417NOV58r|7.BN0qQ3 19NOV8615341427MAR8615244617NOV58I.BP%%Q3 19NOV8615341517APR8616255317NOV58$^.B<KS3 19NOV8615341530DEC8313492517NOV58V2.BMS3 19NOV8615341527DEC8311182017NOV585.B<cT3 19NOV8615341530DEC8313473217NOV58..BO""X3 19NOV8615341503AUG8514521017NOV58!K.BN 8X3 19NOV8615341627JUL8512171517NOV58W`.BOXYM3 19NOV8615341627JUL8512171717NOV58.BOXgM3 19NOV8615341627JUL8512171917NOV58&.BO""Xw3 19NOV8615341627JUL8512172017NOV58!-&.BMXx3 19NOV8615341727JUL8512172517NOV58O.BNX3 19NOV8615341727JUL8512172617NOV58Wg.BMXZ3 19NOV8615341727JUL8512172817NOV58[.BM !X3 19NOV8615341827JUL8512172917NOV58 ]sR.BJ..\X3 19NOV8615341802JUN8316144417NOV58-hhp.BJ X3 19NOV8615341827JUL8512173117NOV58 K.B%Y3 19NOV8615341809AUG8215132317NOV58/.BNt^3 19NOV8615341921DEC8314494517NOV58J.BD/d319NOV8615341903AUG8214111917NOV58'>.BHSy319NOV8615342402AUG8212383217NOV58-d.BKYy319NOV8615342504AUG8211013217NOV58L.BFy319NOV8615342502AUG8210212617NOV58i.BMl z3 19NOV8615342627DEC8311350217NOV588S.BMXz3 19NOV8615342622DEC8315260517NOV58:u.BD}3 19NOV8615342730DEC8315200117NOV58W"U.BY*}3 19NOV8615342721DEC8312031817NOV58Xp.Bv}3 19NOV8615342813FEB8510423217NOV58pޒ.Bu},d 19NOV8615342821APR8615360717NOV58.B> }319NOV8615342806AUG8212292717NOV58`.B}@kQ 19NOV8615342925SEP8513113217NOV58T0.B!}@} 19NOV8615342925SEP8513283017NOV58`.BKE~3 19NOV8615342930DEC8313155317NOV58Xo.BO3 19NOV8615342921DEC8309533317NOV58x.BK443 19NOV8615343027DEC8311405617NOV58ʂ^.BNJt3 19NOV8615343020DEC8314450417NOV58͂h.Bk00 )3 19NOV8615343018APR8611501117NOV58/Ԃ .BNb3 19NOV8615343121DEC8315051017NOV58 jr.B@?T 19NOV8615343102JUN8515125817NOV58՝ .BH3 19NOV8615343116AUG8311120417NOV58%f.BOp3 19NOV8615343221DEC8309592417NOV58.BJfÌȘS3 19NOV8615343210JAN8521433217NOV583.BL..3 19NOV8615343320SEP8515595917NOV58-8<.BN֘3 19NOV8615343322DEC8315043417NOV58fx.BO3 19NOV8615343422DEC8315193217NOV58hP PUFDӑzC؈P.CK~~ 19NOV8615343410JAN8522002117NOV58N.C8 19NOV8615343420MAR8116412117NOV58).CGkQ 19NOV8615343420MAR8116245917NOV58F:.C*^19NOV8615343520MAR8116260517NOV58-.C*l )^@19NOV8615343507APR8217161517NOV58RT.CF )^@kQ 19NOV8615343522JUN8410303017NOV58B.C*T )^@^ 19NOV8615343522JUN8410313517NOV58.C )^@19NOV8615343512JUN8517280617NOV58.C Ny^ 19NOV8615343518APR86142245DU.C Hq 19NOV8615343623JUN8410565017NOV58.C=md19NOV8615343620JUL7910240917NOV58I.CL>mdkQ19NOV8615343619JUL7918210617NOV58G.C*md^19NOV8615343621JAN8116210617NOV58ǃ .C md19NOV8615343615MAY8517584917NOV58 ̃.COm~ 19NOV8615343610JAN8522005117NOV58׃HW.CCd 19NOV8615343710JAN8522002017NOV58؃K.C+~jL 19NOV8615343710JAN8522002317NOV58ك*.C##jL_ 19NOV8615343710JAN8522010717NOV58"ڃ.CC&~ 19NOV8615343710JAN8522002117NOV58#\.C<\A^ kQ19NOV8615343725SEP7913154117NOV58o.C*A^ ^19NOV8615343825SEP7913162717NOV58n.CM~ 19NOV8615343810JAN8522003617NOV58e.CK ] 19NOV8615343815AUG8509213817NOV58A.CVaa ]kQ 19NOV8615343801JUN8514074017NOV58`.C*@]^ 19NOV8615343801JUN8514093917NOV58 h.C]A19NOV8615343905MAR8516265717NOV58v8.CC`  19NOV8615343910JAN8522004117NOV58Q.C&dԅ.CA:l^l^ 19NOV8615344710JAN8522002517NOV58 .C>z:~ 19NOV8615344810JAN8522002417NOV58C.C*$:~^ 19NOV8615344820JUL7910444317NOV58u. C bK 19NOV8615344810JAN8522002217NOV58I. C3jL 19NOV8615344810JAN8522010417NOV58. CjL_ 19NOV8615344910JAN8522010817NOV58""S. CW2YM~ 19NOV8615344910JAN8522005517NOV58(. C6oMkQ 19NOV8615344930MAR8218244517NOV58).COVN~ 19NOV8615344910JAN8522002617NOV58-.C@{Qv@19NOV8615344904MAR8111075217NOV58..C={Qv@19NOV8615345010AUG7915494317NOV58/.CL{Qv@kQ 19NOV8615345016MAY8509352317NOV5802+.C*{Qv@^ 19NOV8615345016MAY8509361917NOV58Np#.C{Qv@19NOV8615345116MAY8517153417NOV58S@.C;Q19NOV8615345104MAR8110581517NOV58Y&.C8Q19NOV8615345119JUL7918212917NOV58ZK0.CGQkQ 19NOV8615345116MAY8509364817NOV58[.C*Q^ 19NOV8615345216MAY8509372017NOV58tʅ.CQ19NOV8615345216MAY8517161117NOV58xV.CJrQr 19NOV8615345303APR8116581117NOV58.C*lQ^ 19NOV8615345303APR8115343317NOV58a.Cz\Q""y 19NOV8615345310JAN8522011017NOV58.C?Q""~ 19NOV8615345310JAN8522004517NOV58.C?QCX::0wkQ19NOV8615350319JUL7918215617NOV589ވ.?CKw~ 19NOV8615350310JAN8522005217NOV58.@CPz  19NOV8615350410JAN8522004717NOV581m.ACCYz~ 19NOV8615350410JAN8522004917NOV58.BC2z;}l^ 19NOV8615350410JAN8522005717NOV58.CC2z;}r^ 19NOV8615350510JAN8522002717NOV58z.DCI;}Fy[ 19NOV8615350502NOV8515560417NOV58s=.ECUOO}kQ 19NOV8615350503JUN8516464017NOV58N6.FC}^ 19NOV8615350525JUN8517353417NOV58 .GC#z}'kQ 19NOV8615350603JUN8516074117NOV58>.HC }kQ 19NOV8615350613AUG8112334317NOV58.IC8 }~ 19NOV8615350725JUN8517371017NOV58.JC}} 19NOV8615350704MAR8112224617NOV58.KCOu~~ 19NOV8615350810JAN8522005917NOV58k.LC<.~ 19NOV8615350810JAN8522010317NOV58 .MCR~Z  19NOV8615350910JAN8522003917NOV58_.NCH> 19NOV8615350930DEC8311353117NOV58=.OCD>kQ 19NOV8615350916MAY8509375217NOV58.PC*>^ 19NOV8615351016MAY8509383617NOV58.QC9,~ 19NOV8615351012JUL8517314417NOV58.RCd9 19NOV8615351031MAR8209341917NOV58y.SC;&9kQ 19NOV8615351122JUN8410245417NOV58).TC*b9^ 19NOV8615351222JUN8410364417NOV58.UC&D9% 19NOV8615351230MAR8216275617NOV58v.VCF@9%kQ 19NOV8615351222JUN8410163717NOV58ǩ.WC*t9%^ 19NOV8615351322JUN8410165717NOV58.XCBL9%y 19NOV8615351312JUL8517244817NOV58K.YCf9U 19NOV8615351330MAR8217552017NOV58Lw.ZCCp9UkQ 19NOV8615351422JUN8411215217NOV586.[C*P9U^ 19NOV8615351422JUN8411233417NOV58.\Cd9_M 19NOV8615351430MAR8216533317NOV58`.]C>9_MkQ 19NOV8615351531MAR8215053017NOV58I.^C*$9_M^ 19NOV8615351522JUN8410382217NOV58._Cd9^ 19NOV8615351531MAR8215121317NOV58.`C69^kQ 19NOV8615351620JUL8412241317NOV58.aC*9^^ 19NOV8615351620JUL8412261217NOV58k.bC`9_ 19NOV8615351631MAR8215405817NOV58.cCK9_kQ 19NOV8615351722JUN8410292917NOV58U.dC*x9_^ 19NOV8615351722JUN8410393717NOV58ĉ.eC\9s 19NOV8615351722JUN8414170617NOV58Ɖ0.fCM`9s' 19NOV8615351822JUN8410300817NOV58lj.gC9s^ 19NOV8615351822JUN8410402617NOV58ˉ .hC`9sM 19NOV8615351822JUN8414172317NOV58Љ.iC`9s_ 19NOV8615351922JUN8414173417NOV58щ@+.jCMZ9s_' 19NOV8615351922JUN8410312717NOV58҉<.kC9s_^ 19NOV8615352022JUN8410415517NOV58׉p.lC`9s 19NOV8615352022JUN8414174517NOV58މM.mCM9s' 19NOV8615352022JUN8410331417NOV58߉^.nCN9s^ 19NOV8615352122JUN8410424217NOV58.oC- 19NOV8615352117AUG8414122717NOV582K.pCEkQ 19NOV8615352117SEP8415562917NOV58Ը.qC*^ 19NOV8615352217SEP8415574817NOV58.rCO|~ 19NOV8615352210JAN8522004217NOV58.sCG kQ19NOV8615352319JUL7918221017NOV58 .tCGlkQ19NOV8615352319JUL7918221517NOV58.uC*l^19NOV8615352320JUL7910481117NOV58.vCEl~ 19NOV8615352410JAN8522004817NOV58#.wC+dx 19NOV8615352429DEC8111520717NOV58$F.xCGnxkQ 19NOV8615352504MAR8513460217NOV58%̶.yCx^ 19NOV8615352509AUG8515244917NOV58>9.zC*W!^ 19NOV8615352601JUN8514175717NOV58Bt.{CCW!~ 19NOV8615352613MAY8515054117NOV58R.|C؈'b< 19NOV8615352704OCT8509020217NOV58T^T.}C'< 19NOV8615352704OCT8509305317NOV58X#Q.~C>Hq 19NOV8615352804OCT8509223217NOV58Y.C88Hq' 19NOV8615352904OCT8509145217NOV58Z.C؈- 19NOV8615352921JUN8418302417NOV58\h.C؈VkQ 19NOV8615353014MAY8616150117NOV58].CO~ 19NOV8615353010JAN8522005117NOV58n .C.pؙ19NOV8615353119JUL7918222217NOV58os.CKؙkQ19NOV8615353219JUL7918222317NOV58p.C*ؙ^19NOV8615353219JUL7918222417NOV58r.Cؙ419NOV8615353319JUL7918222617NOV58s.C؈.pA19NOV8615353419JUL7918222617NOV58v~.C؈LAkQ 19NOV8615353410JUL8508351717NOV58w.C؈*hA^ 19NOV8615353510JUL8508352317NOV58~ .C؈A19NOV8615353510JUL8508355917NOV58{.C.p 19NOV8615353615JUL8113171417NOV58z.CKkQ 19NOV8615353615JUL8113140717NOV58.C*^19NOV8615353715JUL8113172617NOV58.C=19NOV8615353815JUL8113183017NOV58 PUFDӒzD؈P.DW *}  19NOV8615353901FEB8212383817NOV58O.D<@ K  19NOV8615353924OCT8510044717NOV58.D؈-> `$ < 19NOV8615353919JUN8617242017NOV58sR.D؈N<*  19NOV8615354022JAN8011101317NOV58.D؈^z_M ( 19NOV8615354021MAR8611274917NOV58 L.D؈^z_M  19NOV8615354130JUN8618545217NOV58C.D؈O  19NOV8615354117DEC8214183717NOV58.D@#tQK  19NOV8615354215MAR8511222817NOV58.D؈6L#S@  19NOV8615354215MAR8511262317NOV58\m.D؈DP'  19NOV8615354227MAR8613133217NOV58p.Dj_M,&  19NOV8615354312DEC8513195217NOV58 G.D؈c_M  19NOV8615354324OCT8510143717NOV58`>.D؈j_M &  19NOV8615354302JAN8610223417NOV58Ŋ[U.D؈c._M _  19NOV8615354324OCT8510153517NOV58͊.D؈O_Mx  19NOV8615354317JAN7920072717NOV58Պ R.D؈Pz_M ,  19NOV8615354411SEP8213292317NOV58يJ.D؈M_Mp  19NOV8615354416MAR8207435817NOV58ފ}K.D؈7_M*  19NOV8615354416DEC8509535417NOV58(.D؈A*_Me z 19NOV8615354420SEP7916450617NOV58.D7t_MX   19NOV8615354424AUG8310541217NOV5829.D؈6:_M'  19NOV8615354402MAR8313460817NOV58P.D؈f_M:  19NOV8615354508MAY8617003217NOV58'm.D؈b`_M:e  19NOV8615354508MAY8617010117NOV58ru.D؈]_M: :  19NOV8615354519JUN8610532617NOV58.D؈[ _M:  19NOV8615354512MAY8614075617NOV58.DI*_MR,  19NOV8615354524OCT8510110817NOV58 K.D؈A_MS  19NOV8615354622JAN8012395617NOV58 kx.D؈7T_Mu~@  19NOV8615354602APR8208103617NOV58.Dg_Ml  19NOV8615354631DEC8213330317NOV58ύ.D؈K _M9@Q  19NOV8615354620JUL8412131017NOV588.D؈K _M9@  19NOV8615354630JUN8510044317NOV58"rA.D؈jx_M p  19NOV8615354718DEC8515163917NOV58+f,.D؈M2gMF+  19NOV8615354703JAN8618402817NOV585".D؈r_X K  19NOV8615354731JUL8609425717NOV587.D؈@X_X_M  19NOV8615354825JUN8614573117NOV58K{.D؈@,_Xy  19NOV8615354825JUN8614570617NOV58M.D؈ra K  19NOV8615354831JUL8609432817NOV58O.D@dƅ 19NOV8615354914SEP8612554417NOV58 cP.D؈=dƅ(z 19NOV8615354915MAR7915441017NOV58qPK.D؈S`f-W  19NOV8615354930JUL8410481617NOV58u.D؈GXf-Z  19NOV8615354915MAY7911181417NOV58{.D؈DZf9/p  19NOV8615355022MAR7913452217NOV58~.D؈B6f@@Q  19NOV8615355001JUL8516030617NOV58Z.D؈8Tg p  19NOV8615355001JUL8309522617NOV58.D؈DNZg, / 19NOV8615355002JUL8507272017NOV58j.D؈DZg,  19NOV8615355109SEP8515432217NOV58s.D؈@wQHX  19NOV8615355118FEB8507492817NOV58C.D؈A,xp  19NOV8615355127MAR8615192917NOV58a.D؈Jy   19NOV8615355211AUG8019022317NOV58S.D؈7y*  19NOV8615355227JUL8309370617NOV58*k.D؈Ey'  19NOV8615355216NOV8207201517NOV58.D^}  19NOV8615355206AUG8508384617NOV58M.D؈7}}  19NOV8615355302APR8208172117NOV58P.D؈K(u~*  19NOV8615355315MAR8214361017NOV580k.D؈C(v`  19NOV8615355327MAR8613141917NOV58.D؈O=ysz 19NOV8615355409JUL7915064417NOV58^.D؈iP=|s !z 19NOV8615355415MAR7915402317NOV58g.D؈_<=sL;z 19NOV8615355413SEP8616070017NOV58ֆ.D؈5z=s!z 19NOV8615355402OCT8014035117NOV58*_.D؈H:=s`z 19NOV8615355502OCT8014032717NOV58).D؈i=sdz 19NOV8615355504DEC8016111617NOV58‹.DAB=s;z 19NOV8615355514SEP8612552617NOV58ȋ'.D_l  19NOV8615355627DEC8510295617NOV58ˋt.D؈pz pL  19NOV8615355631JUL8609441417NOV58΋'G.D؈H s^ 19NOV8615355629MAR8216404817NOV583.D؈W X s  19NOV8615355629JUN8415290717NOV58a.D؈pb,:  19NOV8615355731JUL8609450417NOV58MPUFDӓzE؈P.E~19NOV8615355819JUL7918172617NOV58.EM nkQ19NOV8615355819JUL7918172817NOV58 .E*^ 19NOV8615355819JUL7918172517NOV58 .E19NOV8615355812JUN8517330217NOV58.E؈== d_19NOV8615355906NOV8013182517NOV58<P.E؈/; 919NOV8615355912AUG8111182917NOV58QF.E*t  19NOV8615355915JUN8511424117NOV58T/.E@t 3 19NOV8615355915JUN8511410117NOV58U%.EN t kQ 19NOV8615355915JUN8511410117NOV58 V#.EFt ^ 19NOV8615355915JUN8511410517NOV58a-.E"#t  19NOV8615360015JUN8511431617NOV58!gj.Et kQ 19NOV8615360012OCT8413092017NOV58..E6\ <  19NOV8615360013DEC8216121417NOV58.EDT K' 19NOV8615360012OCT8413092217NOV58HO.EN }kQ 19NOV8615360012OCT8413092317NOV58@.E`,z  19NOV8615360128DEC8411105217NOV58 .E0,19NOV8615360119JUL7918172517NOV58a.E@: 19NOV8615360104DEC8411220517NOV58w .E=l:'19NOV8615360130JUN8019113117NOV586.E+,: 19NOV8615360104DEC8411233217NOV58*<.E؈-*_ 19NOV8615360108AUG8408481917NOV58d.E؈-m+_ 19NOV8615360208AUG8408482117NOV58݌L.EI%:dkQ 19NOV8615360212OCT8413092517NOV58.EK(@ 19NOV8615360217NOV8211455217NOV58q.E~*19NOV8615360319JUL7918171417NOV58.EM *kQ19NOV8615360319JUL7918165517NOV58 .E**^ 19NOV8615360319JUL7918171317NOV58 j.E*19NOV8615360412JUN8517332217NOV58PDATADATADATADATADATADATADATADATADATADATADATADATADATADATADATADATADATADATADATADATAP0sE~*N`abcdefghijklmnopqrstuvwxyz[{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZ{\}`_0123456789!@#$%N !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,/N`abcdefghijklmnopqrstuvwxyz[{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZ{\}`_0123456789!@#$%N !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,/N`abcdefghijklmnopqrstuvwxyz[{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZ{\}`_0123456789!@#$%N !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,/N`abcdefghijklmnopqrstuvwxyz[{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZ{\}`_0123456789!@#$%N !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,/N`abcdefghijklmnopqrstuvwxyz[{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZ{\}`_0123456789!@#$%N !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,/N`abcdefghijklmnopqrstuvwxyz[{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZ{\}`_0123456789!@#$%N !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,/N`abcdefghijklmnopqrstuvwxyz[{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZ{\}`_0123456789!@#$%N !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,/N`abcdefghijklmnopqrstuvwxyz[{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZ{\}`_0123456789!@#$%N !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,/N`abcdefghijklmnopqrstuvwxyz[{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZ{\}`_0123456789!@#$%N !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,/N`abcdefghijklmnopqrstuvwxyz[{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZ{\}`_0123456789!@#$%N !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,/N`abcdefghijklmnopqrstuvwxyz[{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZ{\}`_0123456789!@#$%N !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,/N`abcdefghijklmnopqrstuvwxyz[{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZ{\}`_0123456789!@#$%N !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,/N`abcdefghijklmnopqrstuvwxyz[{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZ{\}`_0123456789!@#$%N !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,/N`abcdefghijklmnopqrstuvwxyz[{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZ{\}`_0123456789!@#$%N !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,/N`abcdefghijklmnopqrstuvwxyz[{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZ{\}`_0123456789!@#$%N !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,/N`abcdefghijklmnopqrstuvwxyz[{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZ{\}`_0123456789!@#$%N !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,/N`abcdefghijklmnopqrstuvwxyz[{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZ{\}`_0123456789!@#$%N !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,/N`abcdefghijklmnopqrstuvwxyz[{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZ{\}`_0123456789!@#$%N !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,/N`abcdefghijklmnopqrstuvwxyz[{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZ{\}`_0123456789!@#$%N !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,/N`abcdefghijklmnopqrstuvwxyz[{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZ{\}`_0123456789!@#$%N !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,/N`abcdefghijklmnopqrstuvwxyz[{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZ{\}`_0123456789!@#$%N !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,/N`abcdefghijklmnopqrstuvwxyz[{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZ{\}`_0123456789!@#$%N !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,/N`abcdefghijklmnopqrstuvwxyz[{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZ{\}`_0123456789!@#$%N !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,/N`abcdefghijklmnopqrstuvwxyz[{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZ{\}`_0123456789!@#$%N !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,/N`abcdefghijklmnopqrstuvwxyz[{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZ{\}`_0123456789!@#$%N !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,/N`abcdefghijklmnopqrstuvwxyz[{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZ{\}`_0123456789!@#$%N !"#$%&'()*+,-00ssTADATADATADATADATADATADATADATADATA./0123456789:;<=>? !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,/N`abcdefghijklmnopqrstuvwxyz[{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZ{\}`_0123456789!@#$%N !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,/N`abcdefghijklmnopqrstuvwxyz[{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZ{\}`_0123456789!@#$%N !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,/N`abcdefghijklmnopqrstuvwxyz[{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZ{\}`_0123456789!@#$%N !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,/N`abcdefghijklmnopqrstuvwxyz[{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZ{\}`_0123456789!@#$%N !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,/N`abcdefghijklmnopqrstuvwxyz[{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZ{\}`_0123456789!@#$%N !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,/N`abcdefghijklmnopqrstuvwxyz[{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZ{\}`_0123456789!@#$%N !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,/       TPC - Fast Tape Copy ====================  Users' Guide ============ @ This program will copy a complete magtape to a Files-11 diskG and store it there in a special image mode, from which it can createC one or more copies of the tape (must faster than FLX ever could). E BIGTPC is able to do this, but also will handle any block size onD tape up to 4200. bytes (big enough for BRU tapes). By going from 4I to 3 buffers for tape and smaller numbers of disk blocks per read/writepH still larger tape block sizes can be handled. Also, several additional switches are supported.l oI If it is desired to support larger BIGTPC block sizes, it is possiblelH to reduce the number of BIGTPC buffers (and the buffer headers) and toI reduce the disk buffer count of blocks. This works well with the numberaI of disk blocks reduced to 8., the number of BIGTPC buffers reduced fromrI 4 to 3, and the size increased to 11000. bytes, supporting image copiesfJ of such formats as VMS BACKUP or UNIX TAR tapes. Note however that whereK these counts are changed, BIGTPC may not terminate correctly when writingrH a container file from another version. You may have to abort and writeM EOFs with another utility. If you have a tape and recreate container files,f there will be no trouble.s  The command format is:-s 1 TPC Output-filespec=Input-filespecd G where one of the 'filespecs' must be a magtape device (e.g. MT:) ande4 the other the name of an image file on disk.  Legal switches are:- E /BL:nnnn - Specifies an initial allocation specification fort? the image file if a disk is the output device.o! Defaults to 200.t tE /SA:nnnn - Specifies a secondary allocation specification foro? the image file if a disk is the output device.i Defaults to 50. A /CO - Specifies that the disk file is to be contiguous  e@ /HD - Indicates High Density (1600 BPI) tape is to be> written. (For TE16, tape is read at the proper density> automagically.) This permits a container file from one- density to be written out in another.  f t o 0 = /NR - Specifies NO positioning of the tape prior to thec8 start of copying. This will allow TPC to merge< several backup collections on a single output tape if used with care. iC After the end of a copy, TPC will write 4 EOF records andsA backspace so that it will be positioned after the firste< EOF on tape. This will ensure that a second backupA done with the /NR switch will correctly copy onto a FLXo# tape in readable fashion.  pI /SC:nnnn - Sets tape characteristics to nnnn(octal), to allow use gF of tapes with even parity, 556BPI, etc. If the /HD switch isC used, the high density bit is ORed in with the nnnn valuee& 00sE~* specified in the /SC switch. eC /AN - Specifies possible ANSI format. If TPC sees this switchh? it will look for ANSI label records and permit copiesaA even where the tape has null files and hence double EOF ? before the real end of tape. Only 80 byte records are > examined and EOFs are treated specially only betweenB HDR2 and EOF2 (or EOV). The headers are assumed to be inB ASCII unless the switch /EB is given, in which case they@ are assumed to be in EBCDIC. If the tape is not really< an ANSI format tape, the TPC copy operation is notA changed. Thus the /ANsi switch may be used on a tape ofw unknown format.s d@ The default is /AN, and to force BIGTPC NOT to@ look for ANSI labels (looking normally only at 80 byteA records unless the /RT subswitch is used), use the /-AN  switch.  A /EB - This subswitch of the /AN switch forces on ANSI label @ checks but causes TPC to look for EBCDIC header labelsA rather than ASCII. Note that TPC looks for either ASCIIhB or EBCDIC, not both. The default is not to look for ANSIB labels and end copy at double EOF; the /AN or /EB switch4 settings allow some modifications to this. @ /RT - Use RT11 type "ANSI" labels. RT11 may not make labelB records 80. bytes long, and if you have RT11 tapes, the? ANSI checks will normally ignore the RT11 ANSI labelsc@ unless you use this switch. It causes BIGTPC to ignoreA length of records and checks everything to see if it isEE an ANSI label record. It is not a very good default becausea@ it probably can be fooled easily but may be needed for RT11 tapes.i ? /ER - Specifies that TPC will ignore errors on tape. Thiso? specifically means that all errors except EOT/EOV/EOFR> will be ignored. This is quite useful for recoveringB data from tapes which are old and full of errors, or for< writing an output to a tape with bad spots (though< it won't cure bad spots and this method of writing4 anyway is not necessarily a good idea...).  f e a y t yD /FR - Rewind the tape after copying to it. Note the /NR switchE applies to BEFORE the tape is used and inhibits positioningaA at that time. The /FR switch will rewind the tape AFTERs writing to it. C /TR - This switch allows BIGTPC to read a disk to a container A file as though it were a tape. It implies BIGTPC should ? act as though the input device were a tape even if itnE is not. BIGTPC will need to know the size to copy (defaults B to 494. blocks, the size of an RX01) and the start block@ number (defaults to 0,0) as octal numnbers in the formB low:high (see /SZ and /LO switches). The input device isA copied 1 block at a time. The normal "control" featuresB? like density, rewind, etc., are suppressed UNLESS the > /CT switch is used. Their effect is not likely to be meaningful.  eB /TW - This switch allows BIGTPC to write a container file toC a disk as though the disk were a tape (on the output sidetC of the command line). It is the inverse of the /TR switchi4 and needs the /SZ and /LO information too. .G /SZ:low:high - This switch sets the device size for /TR, /TW, andtA /IM copies, in 2 words of block counts. Note the numberdB of blocks is given, not the last block number, so a diskA with 494 blocks is specified as /SZ:494., the high sizes7 defaulting to 0. Default value is /SZ:494.:0.  uF /LO:low:high - This switch specifies the starting physical block? of the disk to begin transfer from in /TR and /IM, orhB transfer to in /TW cases. This allows you to move blocks@ 00ssTADATADATADATADATADATADATADATADATAaround or to copy only parts of a disk. The default isC 0:0, so you won't need to use /LO often unless you intendv" to copy partial volumes. kB /CT - This switch allows control-type QIO's to occur even if? /IM, /TR, or /TW are specified. These QIO's do things < like rewind, write endfile, space forward or back,? and set density as well as attach the LUNs. It is notIB very meaningful for /TR or /TW unless you have a strangeA device that nevertheless is really a tape (and it's notlC certain you can emulate it properly this way anyhow). Fort> /IM copies, it allows a tape to be the output device= and to receive a blocked copy of a device in format,B independent ways while still setting density, rewinding,@ etc. Note the control QIOs are not error checked so if7 you try to rewind a disk, it'll not hurt you.e m i u o T r WE /IM:low:high:blkfactor - This switch allows BIGTPC to copy datay? in image mode directly from one device to another. Ite@ does not operate AST driven in this mode as it does inB all others, but uses all buffers as one large I/O buffer? permitting I/O transfers of up to about 72. blocks ati= a time. The low:high arguments are the block numbere> to begin the output transfer to on the output device? (/SZ specifies the length in blocks to move), and theh9 "blkfactor" argument is the number of blocks to ; be transferred at each QIO$ to the output device. = This defaults to 8. so that if the output device is< tape, the buffers will be 4096. bytes long. If you: specify a bigger blocking factor than BIGTPC can@ handle, it will just use its maximum. Normal operation@ will not issue any "write-EOF" operations, but if tape: is the output device, the /CT switch will permit> these controls to be done so the resulting tape will; work (and the /FR switch, the /HD switch, and the /SC switch will work). 8E /FL:filnam -This switch works only with the /IM and /CT ? switches and will have no effect unless BOTH of theset= are specified. It causes BIGTPC to write a standardm? DOS format (FLX format) label record before it writeseD an image file on tape, using "filnam" (up to 6 characters)9 as the filename. The full file specification islE [1,1]filnam.OLB with standard DOS protection and a creation D date of 00-JAN-70. This permits the image file to co-existD on a FLX tape (.OLB is the extension chosen since FLX will> copy it in image mode). FLX can skip the nonstandard@ file and make directories, read, or write on the tape,D allowing it to contain other interesting programs (perhapsB a copy of BIGTPC to read the images with, for instance).C Also, multiple files may be more easily kept on the tape.d> On input, you must skip this record on tape prior to inputting the file.  eC If /ER is specified, zero byte reads will NOT terminate D copies (so sizes better be right!) and lengths copied willC be calculated from given block factors, not from returned  actual byte counts.h iA /NI - This switch ("Nibble In") allows /IM copies to read aeF disk 1 block at a time instead of using big QIOs of "blkfct"D blocks at a time. Thus, if there is a bad disk block, dataG on following blocks will not be lost. See the /IM switch doc./# for interaction with /ER.  C /NO - This switch ("Nibble Out") allows /IM copies to write acC disk 1 block at a time. It is supplied also to aid outputmD to a disk with bad blocks, guaranteeing that not more thanB 1 block's data will be lost. Its interaction with /ER isE like /IM. 00ss~*The /NI and /NO switches apply only to the /IMage mode copies of BIGTPC. o  a    f= /HE - This switch causes BIGTPC to print a help message ; summarizing the action of all of its switches and : giving the defaults for the more important ones. k i So that, for instance, t TPC BACKUP=MT:a iL will create the file BACKUP (.DOS by default) from the magtape on MT:, and . TPC MT:=BACKUPt sG would then create an exact copy of the original magtape onto the tape now mounted on MT:.f .E Note that TPC will only handle one tape at a time and cannot handlepE block sizes of greater than 4200 bytes without edit and rebuild. IfiI the tapes are FLX format tapes, however, the TPCDIR program ([312,315]) C may be used to list directories or extract copies of files in the F container file, though in a fairly cumbersone way. Otherwise, BIGTPCK acts as a format-independent tape copy to EOT (signalled by 2 consecutivep EOFs). i CAVEAT: t M It is possible for a FILES-11 tape to have 2 EOFs in a row where a zeroa+ length file is copied, yet not be at EOT.e rC If the tape you are copying may be of this sort, use the /ANSIoI switch while copying (or the /EBCDIC switch if it came from an IBM site J using EBCDIC labels). This will allow TPC to correctly handle double EOFsI in the middle of a file. If your tape does not have this pathology, TPC tG will function correctly also, so the /ANsi switch is a good one to setAI mast of the time unless you some sort of pseudo-ANSI tape that may havew. have records starting with HDR2, EOV, or EOF. N If your tape was produced by RT11 PIP (possibly also under RSTS), you mayK need the /RT switch to successfully handle null files. The /ANsi switch is 8 now on by default; use /-AN to turn it off if you must. d u  s i h i' TPC can report the following errors:-e % 1. TPC - DISK I/O ERROR. CODE = ne F TPC encountered an error while reading from/writing to the disk. ( 2. TPC - MAGTAPE I/O ERROR. CODE = n I TPC encountered an error while reading from/writing to the magtape.a $ 3. TPC - COMMAND LINE INPUT ERROR : TPC encountered an error in reading the commandline. % 4. TPC - COMMAND LINE SYNTAX ERRORd E TPC encountered an error when trying to parse the command line.  5. TPC - INVALID SWITCH G The commandline contained a switch that TPC could not recognise,e6 or a file specification that it could not parse. % 6. TPC - OPEN ERROR ON OUTPUT FILE  G A file was specified as output, but TPC encountered an error when it tried to open it. $ 7. TPC - OPEN ERROR ON INPUT FILE G A file was specified as input, but TPC encountered an error whend it tried to open it. - 8. TPC - SPECIFY 1 FILE & 1 MAGTAPE DEVICE  G The commandline either specified magtape as both input and outputh= device, or a disk file as both input and output device.t F TPC tends to crash when it has an allocation failure while reading tape to disk.ied as output, but TPC encountered an error when it tried to open it. $ 7. TPC - OPEN ERROR ON INPUT FILE G A file was specified as input, but TPC encountered an error whend it tried to open it. - 8. TPC - SPECIFY 1 FILE & 1 MAGTAPE DEVICE  G The commandline either specified magtape as both input and outputh= devi # Instructions for TWOPAGE J   K The following proceedure can be used to produce manuals from ru- K noff text. The resultant manual will be printed on both sides K of the 9&1/2 X 11 paper with perforated edges. The sprocket K feed edges can be easily removed to produce a standard size  8&1/2 X 11 manual.   ? 1. Runoff source00sttDATADATADATADATADATADATADATA should specify the following: r O' 1. .LEFT MARGIN 10  ( 2. .RIGHT MARGIN 74  ) 3. .PAPER SIZE 58,74 s tK 4. The output file should have the standard ".DOC" l/ file type specification 1 X K 2. After using RNO to produce the "XXXXXX.DOC" file, run E the basic program "TWOPAGE" via the command line: m a* BA3 DP:[1,1]TWOPAGE/RN  s3 "TWOPAGE will do the following:  K 1. Seperate the "XXXXXX.DOC" file into the files 5 "XXXXXX.LFT" and "XXXXXX.RGT"  4K 2. Append another "FF" character to "XXXXXX.LFT" if K necessary to make the total number of pages of each r# file equal.   K 3. Change the printer you wish to use to FORM TYPE 2 (to K ensure that no other output is queued to it,) via the  command:  ! OPR LP1:/FO:2  e nK 4. Load the 9&1/2 X 11 paper in the printer and verify I printer is at TOP-OF-FORM with paper properly aligned  K 5. Mark the starting page so one can return to that point : after printing the "right-hand" pages.  CK 6. QUE LP1:/FO:2=XXXXXX.RGT(/CO:N) (number of copies is e optional)  uK 7. When printing of right pages is finished, Remove R@ printer output with 1 or 2 extra blank pages  K Instructions for TWOPAGE PAGE 2 tJ  e nD 8. Align paper to same fan-fold as in step #4 above  nK 9. QUE LP1:/FO:2=XXXXXX.LFT(/CO:N) (same number of co- o" pies as above)  oK 10. After "left-hand" pages have finished, re-load printer ,( with standard paper.  J 11. Return printer to standard FORMS TYPE via the command:  ! OPR LP1:/FO:2        Frank R. Borger ' Michael Reese Medical Center ( Department of Medical Physics  March 20, 1978 9. QUE LP1:/FO:2=XXXXXX.LFT(/CO:N) (same number of co- o" pies 10 B=0*20 CALL "SPAWNB"("PIP VC1:=VC1TEST.DAT",B) 30 INPUT C 40 GOTO 101XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX00t t~*1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1[][][][][][][][][][][][][][][][][][][][][][][][]X1[][][][][][][][][][][][][][][][][][][][][][][][]X1[][][][][][][][][][][][][][][][][][][][][][][][]X1[][][][][][][][][][][][][][][][][][][][][][][][]X1[][][][][][][][][][][][][][][][][][][][][][][][]X1[][][][][][][][][][][][][][][][][][][][][][][][]X1[][][][][][][][][][][][][][][][][][][][][][][][]X1[][][][][][][][][][][][][][][][][][][][][][][][]X1[][][][][][][][][][][][][][][][][][][][][][][][]X1[][][][][][][][][][][][][][][][][][][][][][][][]X1[][][][][][][][][][][][][][][][][][][][][][][][]X1[][][][][][][][][][][][][][][][][][][][][][][][]X1[][][][][][][][][][][][][][][][][][][][][][][][]X1[][][][][][][][][][][][][][][][][][][][][][][][]X1[][][][][][][][][][][][][][][][][][][][][][][][]X1[][][][][][][][][][][][][][][][][][][][][][][][]X1[][][][][][][][][][][][][][][][][][][][][][][][]X1[][][][][][][][][][][][][][][][][][][][][][][][]X1[][][][][][][][][][][][][][][][][][][][][][][][]X1[][][][][][][][][][][][][][][][][][][][][][][][]X1[][][][][][][][][][][][][][][][][][][][][][][][]X1[][][][][][][][][][][][][][][][][][][][][][][][]X1[][][][][][][][][][][][][][][][][][][][][][][][]X1[][][][][][][][][][][][][][][][][][][][][][][][]X1[][][][][][][][][][][][][][][][][][][][][][][][]X1[][][][][][][][][][][][][][][][][][][][][][][][]X1[][][][][][][][][][][][][][][][][][][][][][][][]X1[][][][][][][][][][][][][][][][][][][][][][][][]X1[][][][][][][][][][][][][][][][][][][][][][][][]X1[][][][][][][][][][][][][][][][][][][][][][][][]X1[][][][][][][][][][][][][][][][][][][][][][][][]X1[][][][][][][][][][][][][][][][][][][][][][][][]X1[][][][][][][][][][][][][][][][][][][][][][][][]X1[][][][][][][][][][][][][][][][][][][][][][][][]X1[][][][][][][][][][][][][][][][][][][][][][][][]X1[][][][][][][][][][][][][][][][][][][][][][][][]X1[][][][][][][][][][][][][][][][][][][][][][][][]X1[][][][][][][][][][][][][][][][][][][][][][][][]X1[][][][][][][][][][][][][][][][][][][][][][][][]X1[][][][][][][][][][][][][][][][][][][][][][][][]X1[][][][][][][][][][][][][][][][][][][][][][][][]X1[][][][][][][][][][][][][][][][][][][][][][][][]X1[][][][][][][][][][][][][][][][][][][][][][][][]X1[][][][][][][][][][][][][][][][][][][][][][][][]X1[][][][][][][][][][][][][][][][][][][][][][][][]X00twwwwwss10 B=0*20 CALL "SPAWNB"("PIP VC2:=VC1TEST.DAT",B) 30 INPUT C 40 GOTO 1010 B=0+20 CALL "SPAWNB"("PIP VC2:=VC1TEST1.DAT",B) 30 INPUT C 40 GOTO 10(XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX              (XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX              (XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 10 DIM A$(1)"20 INPUT "ENTER VC UNIT NUMBER",A$530 B=0 : CALL "SPAWNB"("PIP VC"+A$+":=VCFOCUS.DAT",B) 40 INPUT B 50 GOTO 30 OXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX                               OXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX                               OXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX OXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 2XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX                  2XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX                  2XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX OXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX00w t~*OXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX00x x xwwwssOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX  $VOLUME CHARACTERISTICS COMMAND (VOL) FUNCTION:  G The VOLUME CHARACTERISTICS command (VOL) provides a means for changingE volume characteristics for a previously initialized Files-11 volume.@ It takes most of the switches that INITVOL takes, and these areE specified exactly as for INITVOL. Note however that no volume label) is given after the device specification.   FORMAT:  VOL[UME] device:[/keyword(s)] where: : device: specifies the device containing the volume to be acted upon. D- keyword(s) are one or more of the following:R E /UIC  /PRO  /MXFr /EXTa /FPRO /CHAg /WINv /LRUh /LABELt E See INITVOL documentation for an explanation of the above switches, wI except for LABEL, which has no INITVOL switch equivalent. This switch .D permits the volume label to be changed. If LABEL is given with no ( arguement, the volume label is cleared. E e EXAMPLES:o s1. MCR>VOLUME DK3:/LABEL=BILL  f@ Rewrite the volume label on the Files-11 disk on DK3 so that it reads "BILL". r'2. MCR>VOLUME DT0:/FPRO=[RWED,RWED,R,R]R B Change the default file protection for the dectape on DT0 so that= all subsequent files are written with the default protectionw? [RWED,RWED,R,R], allowing only read access to all but the files owner.. p%3. MCR>VOLUME DK2:/UIC=[55,70]/LABEL=  L@ Change the UIC information on the disk on DK2 so that the owner; of the disk is user [55,70]. Also clear the volume label.Rewrite the volume  2 xmt - intercomputer communications task K 12-Jan-82  / Overview / --------    L XMT is a utility task which provides a convenient means for data L transfer between the the Medical Physics PDP11 and any other com- L puter system that is accessible with a standard terminal by ei- L ther hard-wired lines or by dial-up modem. XMT makes your termi- L nal appear as though it were connected directly to the "remote" L computer system. Data transfer is performed by producing textual L output from the remote computer (e.g., program listings, computer L runs, etc.) and, through XMT, routing that text to a disk file at L the PDP11. The reverse path takes a file at the PDP11 and $ "types" it to the remote.  K 12-Jan-82   e a h h  e n t/ CHAPTER 1 r s0 Using XMT    5 XMT is a standard MCR function, evoked by: i , MCR>XMT  t" XMT prints the message:  . Terminal Transmission Program V3.3 - Initializing operation using TT25:  L If TT25 is connected to a dial-up modem you must now00x t~* dial the re- L mote computer before continuing. If the terminal is hardwired to L the remote system, or when you have made the connection to the 8 remote via modem, XMT is ready for operation.  M> XMT is now running with several defaults in effect:  >( 1. ASCII transfer mode. L XMT expects files to be in ASCII format, (i.e. source, # listings, etc.)  f% 2. COPY mode is off. oL When receiving a "file" from the remote terminal, char- L acters typed at your terminal are not echoed to the out-  put file.  - 3. DELAY of 20 milliseconds. L XMT will wait 20 milliseconds after receiving a "prompt" L character from the remote terminal, (usually a L line-feed) before transmitting the next line of a file + to the remote computer.  % 4. ECHO Mode is off. hL When file transfer is in process, all I/O is not printed L on your terminal. A single flag character is printed . for each line transferred.  0 5. PROMPTED transmission is on. L XMT waits for a Line-Feed (or some other character) be- L fore transmitting the next line of a file from the PDP11 + to the remote computer. m L Using XMT PAGE 1-2 K 12-Jan-82  r aL 6. Several control characters are re-defined (see appendix) L Since ^C is used to inform XMT that you wish to change L some operating condition, if you wish to send a ^C to L the remote computer, typing a ^B will cause a ^C to be L sent to the remote computer. Note that although several L other re-defines are normally set, under IAS, only the . ^C re-define is necessary.  ) 7. FULLDUPLEX mode is on L Characters typed at your terminal are not echoed local- ; ly, the remote computer must echo them. g o6 8. 8-BIT ASCII mode is off, no parity L Characters are transmitted with 7 data bits and the par- ity bit off.  L These settings can be changed dynamically by the user to tailor L XMT's characteristics to ease communication with other computers.  L This version of XMT has been modified for IAS (basically a L rewrite of the terminal I/O sections) by G. Everhart. In normal L operation, it uses TT25 for connection to the "remote" computer. L TT25 should normally be set up at system boot, but if necessary ' one may have to reset it to:   L MCR>SET /UIC=[1,1] ;To change another Terminal setting J MCR>TER TT25:/FULLDUPLEX ;fix for no echo, full duplex I/O K MCR>TER TT25:/BINARY ;fix for no special ^C recognition ? MCR>TER TT25:/WIDTH:132 ;make width big enough n rL This should allow the terminal to work correctly. Note that L you'll have to try various options when using it with non-DEC L systems. In its default state, it works well with other IAS or L RSX11M systems. You will have to reset the characterstics of L TT25 to permit someone to connect a terminal to it and have it L work correctly. Also, by the nature of the program, (it uses L single-character QIO's for I/O to your terminal) will sometimes L result in a noticable delay in output (or echo) at your terminal. L However, it appears to work reliably once the right operat00x x xwwwssing 3 conditions and defaults are established.  SL To leave XMT, type CTRL/C twice (CTRL/C is typed by holding down L the CTRL key and typing C), or by typing CTRL/C followed by X  (eXit).  eK 12-Jan-82t i ) i  e e   / CHAPTER 2  y1 XMT Options r e b  eL To change any of the program settings/options, type CTRL/C fol- L lowed by the upper case character signifying the setting/option L desired. Below is a table of options and their corresponding de-  finitions:   - NOTE  H Do NOT type a carriage-return to enter or execute any of H these commands. Typing the single character of the com- @ mand is all that you need to execute that option.  n fL A - Changes the file transfer mode to ASCII if in the binary L mode, or changes the file transfer mode to binary if al- , ready in the ASCII mode.  L B - Sets the BREAK (logical spacing) key definition to some L keyboard character which, when depressed, creates a L 'BREAK' condition to occur just like the 'BREAK' key on  a teletype. u eL C - Enter/exit Copy mode; i.e., when receiving a file from L the remote in ASCII mode, all characters typed at the L keyboard are copied to the output file when also in Copy  mode. S L D - Set the length of delay that XMT should wait after re- L ceiving a prompt character before sending the next line L of data from a disk file at the PDP11. The delay can L range from 0 to 99, where 0 corresponds to no delay and L 99 corresponds to 99 clock ticks (approximately 1 2/3 L seconds). If the length of the delay is a single digit, L typing a carriage-return after typing the digit will be L sufficient to enter the delay. You may also enter a L single digit for the delay by preceeding it with a zero. L You cannot enter a delay of more than two digits. Any L characters entered other than 0 through 9 will cause the L default delay of 20 to be used and no error message will  L XMT Options PAGE 2-2 K 12-Jan-82e r h be given.  L E - Enter/exit Echo mode; i.e., when receiving or transmit- L ting a file all input/output from/to the PDP11 disk is L printed on the user terminal. This mode is useful when L you wish to see the effects of transmission in progress. L In general, this mode should only be used when you are L logged onto a high-speed terminal or when the amount of L printing is less than 2 full pages (at 1200 baud) or in- 5 definitely (at 300 baud or less).  L F - Receive a file From the remote. A short status of the L applicable options in effect is printed before a file L specification is requested. The file specification is L 29 or fewer characters and follows the system standard L conventions for files. Entering a name of less than 29 L characters requires a carriage-return to enter the fi- L lename. The RUBOUT or DELETE keys can be used to edit L out any00x t~* errors made in typing the file spec. Entry of a L null, or empty, filename will allow you to exit the F L option without sending any data or creating any files. L Any previous execution of the F option that was not ter- L minated by either the O option or by exitting XMT is au- L tomatically terminated prior to the printing of the 4 short options-in-effect summary.  L H - Prints a very brief Help summary of the purpose of each  option. m iL I - Terminates reading input from a PDP11 disk file if such L a file transfer was taking place. The message L "Transmission Complete" will be printed if a file L transfer is terminated, otherwise no action is taken. L This option is useful in aborting the transmission of J data to the remote if problems in communication arise.  oL O - The O option performs the same function for terminating L a file receive operation (Output to the PDP11 disk) that L the I option performs on file transmit operations (Input L from the PDP11 disk). This option is the only means, L other than by exitting XMT or by starting another file L receive operation, of signalling the end of a receive L operation to XMT. The message "Receive complete" prints ; when a receive operation is terminated.  aL P - Change transmit file mode from Prompted mode to Prompt- L less, and vice-versa. A message is printed indicating L which mode is in effect. When changing to prompted mode L you are asked which character sent by the remote com- L puter system should be used as the prompting character. L Type the prompting character and XMT will, during a file L transmit operation, wait for this character to be re- L ceived from the remote computer before sending the next  L XMT Options PAGE 2-3 K 12-Jan-82  c hL line of information to the remote. Note that XMT will L send the first line of input to the remote computer L without waiting for the prompt, but all other lines of L input will wait for a prompt to be received before they ! will be sent.  L R - Redefine/don't redefine control characters. This option L enables and disables the user-defined translation table L for control characters as described under the "^" op- L tion. A message is printed which mode is in effect. L When in "Redefine mode" XMT will use a translation table L to convert any redefined control characters to some oth- L er control character so as to be able to "type" reserved L control characters to the remote computer. Examples of L reserved control characters are CTRL/C, CTRL/O, CTRL/S, L CTRL/Q, etc. "Not redefined mode" disables this trans- G lation, but the translation table is not destroyed. " eL S - Prints a Status of the options in effect for XMT. The L status report includes information about parity, ASCII L or binary modes, information about file transfer opera- L tions, and prints the definition of the BREAK character,  if any. R ,L T - Starts a file Transmit operation. 00'x x xwwwssThis option is very L similar to the F option except in the direction of data L transfer. A check is made as to whether or not XMT was L in the midst of a previously started file transmit oper- L ation, and if so, that transmit operation is terminated. L A short status of file transmit options-in-effect is L printed before you are requested to type in the name of L the file you wish to transfer to the remote system. If L you just type a carriage-return, XMT simply returns L without initiating a file transfer. Otherwise you must L enter a file name in the standard system format. If the L name of the file you enter does exist on disk a message L is printed indicating that the file is not found and no L transfer operation is initiated. Otherwise a file L transfer is initiated which can be terminated by 1) ex- L itting XMT, 2) using the I option, 3) using the T option L again and entering a carriage-return for the name, or by L 4) reaching the end of the input file. The message L "Transmission complete" is printed when the transfer op- 9 eration is completed (or terminated).  L U - Unduplex or duplex the XMT program. In the Unduplexed L mode characters typed on the terminal are not echoed to L the terminal unless the remote computer performs the L echoing. This mode is useful when communicating to com- L puter systems as other PDP11's. For communication with L systems such as TSO, however, the Duplexed mode is re- K quired if you wish to see the characters that you type. d e L XMT Options PAGE 2-4 K 12-Jan-82t  oL X - EXit XMT. All file transfers, if any, are terminated E and control is returned to the RSX-11M Executive.  1L 8 - Enter 8-bit ASCII mode and exit 7-bit ASCII, or leave L 8-bit ASCII and enter 7-bit ASCII and be asked what par- L ity you desire. This mode allows you to determine L whether or not the information you transmit and receive L will be full 8-bit ASCII or 7-bit ASCII with software L generated even, odd, mark, or no parity. Some computer L systems require specific parity settings, but other / PDP11's and TSO don't care.  L ^ - Allows you to redefine a control character as a differ- L ent control character. This allows you to use some oth- L erwise reserved control characters, such as CTRL/C, and L allow you to send these characters to the remote system. L You will be asked to type two characters. The first L character you type will be the redefined character and L the second character you type will be the definition. L To enter either of these characters may, and sometimes L must, enter the upper-case equivalent of the control L character. The characters you type are automatically L converted to the proper control character and their L upper-case equivalent is printed after you type the L character. For example, you wish to use the character L CTRL/W to signal when you transmit a CTRL/C. Type the ^ L option, the letter W,00/x t~* and the letter C and the redefini- L tion has been set. Assuming that XMT is in "Redefine L mode", every time you type a CTRL/W a CTRL/C is actually L sent to the remote system. If you wish to change a de- K finition, simply redefine it in the manner given above. F e tK 12-Jan-82  T C T      / CHAPTER 3  7 Summary of Capabilities u g a M s1 1. Full or half duplex operation e u2 2. Disk file transmit and receive  7 3. Prompt character checking and delay  L 4. Optional echoing of files during transmission and recep-  tion  0 5. A short help message summary  L 6. The ability to transmit a file while also receiving another file  E 7. The ability to transfer files using a full 8 bits  L 8. The capability of transferring files with or without ( prompted handshaking  L 9. The option of preventing everything entered at the user L terminal from being copied to an output disk file during ' a receive operation  L 10. The ability to create a 'BREAK', or logical spacing, L condition so as to be able to interrupt remote devices  such as TSO  L 11. The capability of defining almost any keyboard character A to be used to signal when a BREAK was desired o fL 12. The ability to perform translations of control char- L acters entered at the user terminal to characters not L normally able to be entered without interception by  RSX-11M  cL 13. The ability to turn on and off the control character G translation without losing the previous definitions y yL 14. The inclusion of a "status" subroutine which enables the  L Summary of Capabilities PAGE 3-2 K 12-Jan-82r o L user to see what parameters are currently in effect for  the program  L 15. The ability to set the mode of parity (even, odd, mark, L or none) to be used when transmitting each character to K the remote while the 7-bit character mode is in effect.   CK 12-Jan-82          0 APPENDIX A  t@ XMT Default Control Character Definitions   e o< Typed Character Resulting Character  i4 ctrl/A ctrl/S 4 ctrl/B ctrl/C 4 ctrl/P ctrl/O 4 ctrl/W ctrl/Q 4 ctrl/X ctrl/Z  n 5 List of XMT commands  = A - Change file transfer mode (Binary/Ascii) l( B - Set BREAK character ) C - Enter/exit copy mode 3 D - Set length of delay (in ticks) t) E - Enter/exit echo mode 6 F - Recieve File from remote computer ( H - Prints HELP summary > I - Terminate transmission to remote computer = O - Terminate reception from remote computer : P - Enter/exit Prompted transmission mode E R - Redefine/don't redefine control charar007x9xxwwssacter mode A1 S - Print current program status o5 T - Transmit file to remote computer )0 U - Enter/exit full duplex mode  X - Exit XMT f0 8 - Enter/exit 8-bit ASCII mode / ^ - Redefine control character mission to remote computer = O - Terminate reception from remote computer : P - Enter/exit Prompted transmission mode E R - Redefine/don't redefine control charar;10 ! PROGRAM TO CALCULATE BITMAP BLOCK, WORD AND BIT NUMBER"11 ! CORRESPONDING TO A DISK BLOCK 20 PRINT =21 PRINT "PROGRAM TO TRANSLATE AN ABSOLUTE DISK BLOCK NUMBER">22 PRINT "INTO A GIVEN BLOCK, BYTE AND BIT OF [0,0]BITMAP.SYS"23 PRINT%40 PRINT "ZAP>DDN:[0,0]BITMAP.SYS/AB"A41 PRINT "(FOR ZAP USE, THIS PROGRAM GIVES CORRECT BLOCK NUMBER)"542 PRINT "(FOR ZAP USE, DISK MUST BE MOUNTED '/UNL')"43 PRINT/44 PRINT "MCR>DMP XX:=[0,0]BITMAP.SYS/BL:NN:NN"845 PRINT "(FOR DMP USE, YOU MUST ADD 1 TO BLOCK NUMBER)"46 PRINT2100 INPUT "HIGH, LOW BLOCK NUMBER (OCTAL)";FH$,FL$110 FH=OCT(FH$)K.120 FL=OCT(FL$) : IF FL<0 THEN LET FL=FL+65536130 BL=INT(FH*65536)+FLR140 BB=INT(BL/4096)G145 BY=INT((BL-BB*4096)/8)150 BI=INT(BL-BB*4096-BY*8)0.152 PRINT "FOR BLOCK NUMBER "; BL;" (DECIMAL)"G155 PRINT "BLOCK NUMBER OF BITMAP = ";OCT$(BB+1);" (0 IS FIRST BLOCK)"ZD160 PRINT "BYTE NUMBER OF BLOCK = ";OCT$(BY);" (0 IS FIRST BYTE)"D165 PRINT "BIT NUMBER OF BYTE = ";OCT$(BI);" (0 IS LOWEST BIT)" 170 GOTO 100)"46 PRINT2100 INPUT "HIGH, LOW BLOCK NUMBER (OCTAL)";FH$,FL$110 FH=OCT(FH$)K.120 FL=OCT(FL$) : IF FL<0 THEN LET FL=FL+65536130 BL=INT(FH*65536)+FLR140 BB=INT(BL/4096)G145 BY=INT((BL-BB*4096)/8)150 BI=INT(BL-BB*4096-BY*8)0.152 PRINT "FOR BLOCK NUMBER "; BL;" (DECIMAL)"G155 PRINT "BLOCK NUMBER OF BITMAP = ";OCT$(BB+1);" (0 IS FIRST BLOCK)"ZD160 PRINT "BYTE NUMBER OF BLOCK = ";OCT$(BY);" (0 IS FIRST BYTE)"D165 PRINT "BIT NUMBER OF BYTE = ";OCT$(BI);" (0 IS LOWEST BITE10 ! PROGRAM TO CONVERT OCTAL BLOCK # TO RP03 CYL, SURFACE AND SECTORB)20 ! AND ALSO TO AED CYL, HEAD AND SECTORB30 DIM BL$[6]V,BH$[1].;31 INPUT "HIGH, LOW BLOCK NUMBERS (0=FIRST BLOCK) ";BH$,BL$ 32 BH=0 : BL=033 BH=OCT(BH$) : BL=OCT(BL$)38 IF BL<0 THEN LET BL=BL+2^16R#40 CA=INT(BL/200) +INT(BH*2^16/200).42 RE=INT(BL+BH*2^16-200*CA)45 SU=INT(RE/10)50 SE=RE-INT(SU*10)R270 PRINT "RP CYL","OCT. = ";OCT$(CA)," DEC. = ";CA280 PRINT "RP SUR","OCT. = ";OCT$(SU)," DEC. = ";SU290 PRINT "RP SEC","OCT. = ";OCT$(SE)," DEC. = ";SE100 BN=CA*200+SU*10+SE>110 PRINT "BLOCK #","OCT. = ";OCT$(BN/8);OCT$(BN-8*INT(BN/8)),120 PRINT " DEC. = ";BNP130 CY=INT(BN/160)140 SU=INT((BN-CY*160)/32)150 SE=BN-CY*160-SU*323170 PRINT "SM CYL","OCT. = ";OCT$(CY)," DEC. = ";CY=3180 PRINT "SM SUR","OCT. = ";OCT$(SU)," DEC. = ";SU=3190 PRINT "SM SEC","OCT. = ";OCT$(SE)," DEC. = ";SET8195 PRINT "SURFACES LISTED FROM TOP ARE 0,1,SERVO,2,3,4" 200 GOTO 31"RP SUR","OCT. = ";OCT$(SU)," DEC. = ";SU290 PRINT "RP SEC810 ! PROGRAM TO CONVERT RP03 REGISTERS TO ACTUAL BLOCK #.20 ! AND THEN BACK TO AED CYL, HEAD AND SECTOR;21 ! WILL READ DATA FROM RP0ER.RPT, RP1ER.RPT AND RP2ER.RPT!22 DIM A$[6],B$[62]V,SS(5),CS(55)23 OPEN #4, "COMPDP.TMP/WR"/24 OPEN #3, "DP0ER.RPT/RO" : IF END #3 GOTO 250;25 PRINT #4 "ERROR REPORT FOR DP0 ";DDAT$();" AT ";TIM$())26 LX=0 : FOR I=1 TO 5 : SS(I)=0 : NEXT I#28 FOR I=1 TO 52 : CS(I)=0 : NEXT I29 DA=0 : CA=030 INPUT LINE #3,B$Q31 IF POS(B$,"LOGGED")>0 THEN PRINT #4 : PRINT #4, SEG$(B$,11,34);SEG$(B$,41,60)E432 IF SBS$(B$,9,4)="RPCA" THEN CA=OCT(SBS$(B$,25,6))433 IF SBS$(B$,9,4)="RPDA" THEN DA=OCT(SBS$(B$,25,6)):34 IF SBS$(B$,9,8)="VOLUME L" THEN PRINT #4 SBS$(B$,9,30)635 IF SBS$(B$,9,4)="RPDS" THEN PRINT #4 SBS$(B$,9,40)636 IF SBS$(B$,9,4)="RPER" THEN PRINT #4 SBS$(B$,9,42)638 IF SBS$(B$,9,4)="RPM1" THEN PRINT #4 SBS$(B$,9,40)X39 IF SBS$(B$,12,4)="K NA" THEN PRINT #4 "TASK NAME, UIC ";SBS$(B$,33,6);" ";740 IF SBS$(B$,12,4)="K UI" THEN PRINT #4 SBS$00@xExFx~*(B$,33,7)EU41 IF SBS$(B$,1,9)="ERROR DIA" THEN INPUT LINE #3,B$ : PRINT #4, SBS$(B$,1,13);" ";I642 IF SBS$(B$,1,4)="RETR" THEN PRINT #4 SBS$(B$,1,30)'43 IF SBS$(B$,1,4)="VECT" THEN GOTO 50S 45 GOTO 30<50 SU=INT(DA/256) : ! CALCULATE SURFACE (0 = FIRST SURFACE)655 SO=INT((DA-SU*256)/16) : ! CALCULATE CURRENT SECTORB60 SE=DA-SU*256-SO*16 : ! CALCULATE ERROR SECTOR (0=FIRST SECTOR)570 PRINT #4 "RP CYL","OCT. = ";OCT$(CA)," DEC. = ";CA(580 PRINT #4 "RP SUR","OCT. = ";OCT$(SU)," DEC. = ";SU#590 PRINT #4 "RP SEC","OCT. = ";OCT$(SE)," DEC. = ";SEI100 BN=CA*200+SU*10+SEA110 PRINT #4 "BLOCK #","OCT. = ";OCT$(BN/8);OCT$(BN-8*INT(BN/8)),S120 PRINT #4 " DEC. = ";BN130 CY=INT(BN/160)140 SU=INT((BN-CY*160)/32)2141 SS(SU+1)=SS(SU+1)+1 : ! COUNT A SURFACE ERRORB143 CS(INT(CY/16+1))=CS(INT(CY/16+1))+1 : ! COUNT A CYLINDER ERROR150 SE=BN-CY*160-SU*326170 PRINT #4 "SM CYL","OCT. = ";OCT$(CY)," DEC. = ";CY6180 PRINT #4 "SM SUR","OCT. = ";OCT$(SU)," DEC. = ";SU6190 PRINT #4 "SM SEC","OCT. = ";OCT$(SE)," DEC. = ";SEA195 LX=LX+1 : IF LX=4 THEN PRINT #4 : PRINT #4 : PRINT #4 : LX=0 200 GOTO 29" 250 CLOSE 39251 PRINT #4 : PRINT #4, CHR$(12);"SURFACE","# OF ERRORS"3253 FOR I=1 TO 5254 PRINT #4, I-1,SS(I)) 255 SS(I)=0) 256 NEXT I1257 PRINT #4 : PRINT #4, "CYLINDER","# OF ERRORS"(259 FOR I=1 TO 52 :260 PRINT #4, FRMT$(I*16-16,4);" > ";FRMT$(I*16-1,4),CS(I) 262 NEXT I263 OPEN #3, "DP1ER.RPT/RO"Y270 IF END #3 THEN 300280 PRINT #4, CHR$(12)<282 PRINT #4 "ERROR REPORT FOR DP1 ";DDAT$();" AT ";TIM$() 290 GOTO 26+ 300 CLOSE 3H9301 PRINT #4 : PRINT #4, CHR$(12);"SURFACE","# OF ERRORS"5303 FOR I=1 TO 5304 PRINT #4, I-1,SS(I)2 305 SS(I)=0# 306 NEXT I1307 PRINT #4 : PRINT #4, "CYLINDER","# OF ERRORS"S309 FOR I=1 TO 52:311 PRINT #4, FRMT$(I*16-16,4);" > ";FRMT$(I*16-1,4),CS(I) 312 NEXT I315 OPEN #3, "DP2ER.RPT/RO")320 IF END #3 THEN 350330 PRINT #4 CHR$(12)P<332 PRINT #4 "ERROR REPORT FOR DP2 ";DDAT$();" AT ";TIM$() 340 GOTO 26 350 CLOSE 3O9351 PRINT #4 : PRINT #4, CHR$(12);"SURFACE","# OF ERRORS"0353 FOR I=1 TO 5354 PRINT #4, I-1,SS(I)2 355 SS(I)=0# 356 NEXT I1357 PRINT #4 : PRINT #4, "CYLINDER","# OF ERRORS"S359 FOR I=1 TO 52:361 PRINT #4, FRMT$(I*16-16,4);" > ";FRMT$(I*16-1,4),CS(I) 362 NEXT I 363 CLOSE 364 EXIT 6-16,4);" > ";FRMT$(I*16-1,4),CS(I) 312 NEXT I315 OPEN #3, "DP2ER.RPT/RO")320 IF END #3 THEN 350330 PRINT #4 CHR$(12)P<332 PRINT #4 "ERROR REPORT FOR DP2 ";DDAT$();" AT ";TIM$() 340 GOTO 26 350 CLOSE 3O9351 PRINT #4 : PRINT #4, BAS COMPDP/RN1LIS COMPDP.RPT=COMPDP.TMP/CO:3/NH/FF/LE:64/WI:136PIP COMPDP.TMP;*/DEPIP COMPDP.RPT/PU 10 !PROGRAM TO COMPRESS DRER.RPT!22 DIM A$[6],B$[62]V,SS(5),CS(55)23 OPEN #4, "DRER.TMP/WR".24 OPEN #3, "DRER.RPT/RO" : IF END #3 GOTO 250;25 PRINT #4 "ERROR REPORT FOR DR'S ";DDAT$();" AT ";TIM$()26 LX=030 INPUT LINE #3,B$Q31 IF POS(B$,"LOGGED")>0 THEN PRINT #4 : PRINT #4, SEG$(B$,11,34);SEG$(B$,41,60)g33 IF SBS$(B$,9,8)="UNIT NAM" THEN PRINT #4 SBS$(B$,9,30) : INPUT LINE #3,B$ : PRINT #4, SBS$(B$,9,32)"35 IF SBS$(B$,9,4)<>"RMCS" THEN 30,40 PRINT #4,SBS$(B$,9,50) : INPUT LINE #3,B$_41 IF SBS$(B$,1,9)="ERROR DIA" THEN INPUT LINE #3,B$ : PRINT #4, SBS$(B$,1,13);" "; : GOTO 50 42 GOTO 4050 INPUT LINE #3,B$E@51 IF SBS$(B$,1,4)="RETR" THEN PRINT #4 SBS$(B$,1,30) : GOTO 55 52 GOTO 5055 PRINT #4, B$T60 INPUT LINE #3,B$O"61 IF SBS$(B$,9,4)<>"TASK" THEN 6062 FOR JJ=1 TO 563 PRINT #4, SBS$(B$,9,50)64 INPUT LINE #3,B$M 65 NEXT JJ70 FOR JJ=1 TO 971 PRINT #4, SBS$(B$,17,58)472 INPUT LINE #3,B$I 73 NEXT JJ80 INPUT LINE #3,B$0"81 IF SBS$(B$,1,4)<>"NUMB" THEN 8082 P00HxIx Jx Mx Nx OxssRINT #4, B$$.83 PRINT #4, CHR$(12); "ERROR REPORT FOR DR'S" 85 GOTO 30 250 CLOSE 3260 EXIT0 42 GOTO 4050 INPUT LINE #3,B$E@51 IF SBS$(B$,1,4)="RETR" THEN PRINT #4 SBS$(B$,1,30) : GOTO 55 52 GOTO 5055 PRINT #4, B$T60 INPUT LINE #3,B$O"61 IF SBS$(B$,9,4)<>"TASK" THEN 6062 FOR JJ=1 TO 563 PRINT #4, SBS$(B$,9,50)64 INPUT LINE #3,B$M 65 NEXT JJ70 FOR JJ=1 TO 971 PRINT #4, SBS$(B$,17,58)472 INPUT LINE #3,B$I 73 NEXT JJ80 INPUT LINE #3,B$0"81 IF SBS$(B$,1,4)<>"NUMB" THEN 8082 P BAS COMPDR/RN/LIS COMPDR.RPT=DRER.TMP/CO:3/NH/FF/LE:64/WI:136PIP DRER.TMP;*/DEPIP DRER.RPT/PU(10 ! PROGRAM TO COMPRESS MAG-TAPE ERRORS!22 DIM A$[6],B$[62]V,SS(5),CS(51)23 OPEN #4, "COMPRESS.TMP/WR".24 OPEN #3, "MTER.RPT/RO" : IF END #3 GOTO 250:25 PRINT #4 "ERROR REPORT FOR MT0: ";DDAT$();" AT ";TIM$())26 LX=0 : FOR I=1 TO 5 : SS(I)=0 : NEXT I#28 FOR I=1 TO 51 : CS(I)=0 : NEXT I29 DA=0 : CA=030 INPUT LINE #3,B$Q31 IF POS(B$,"LOGGED")>0 THEN PRINT #4 : PRINT #4, SEG$(B$,11,34);SEG$(B$,41,60)!32 IF SBS$(B$,9,3)<>"MTS" THEN 36,33 PRINT #4 SBS$(B$,9,43) : INPUT LINE #3,B$634 IF SBS$(B$,9,3)<>"MTC" THEN PRINT #4, SBS$(B$,9,43)+35 IF SBS$(B$,9,3)="MTC" THEN PRINT #4, " "C636 IF SBS$(B$,9,4)="MTC " THEN PRINT #4 SBS$(B$,9,42):37 IF SBS$(B$,9,8)="USER FUN" THEN PRINT #4, SBS$(B$,9,46)X39 IF SBS$(B$,12,4)="K NA" THEN PRINT #4 "TASK NAME, UIC ";SBS$(B$,33,6);" ";740 IF SBS$(B$,12,4)="K UI" THEN PRINT #4 SBS$(B$,33,7)GT41 IF SBS$(B$,1,9)="ERROR DIA" THEN INPUT LINE #3,B$ : PRINT #4, SBS$(B$,1,13);" ";642 IF SBS$(B$,1,4)="RETR" THEN PRINT #4 SBS$(B$,1,30)'43 IF SBS$(B$,1,4)="VECT" THEN GOTO 50T 45 GOTO 30 50 PRINT #4 55 GOTO 29 250 CLOSE 3/260 OPEN #3, "MMER.RPT/RO" : IF END #3 GOTO 300N270 PRINT #4, CHR$(12)<275 PRINT #4, "ERROR REPORT FOR MM0: ";DDAT$();" AT ";TIM$() 280 GOTO 26= 300 CLOSE 3P301 EXITASK NAME, UIC ";SBS$(B$,33,6);" ";740 IF SBS$(B$,12,4)="K UI" THEN PRINT #4 SBS$(B$,33,7)GT41 IF SBS$(B$,1,9)="ERROR DIA" THEN INPUT LINE #3,B$ : PRINT #4, SBS$(B$,1,13);" ";642 IF SBS$(B$,1,4)="RETR" THEN PRINT #4 SBS$(B$,1,30)'43 IF SBS$ BAS COMPMT/RN3LIS COMPMT.RPT=COMPRESS.TMP/CO:3/NH/FF/LE:64/WI:136PIP COMPRESS.TMP;*/DEPIP COMPMT.RPT/PU&;COMMAND FILE TO PROCESS SYSTEM ERRORS INS [11,1]SYE SYE MTER.RPT=/BR:ALLALL/DE/DV:MT SYE MMER.RPT=/BR:ALLALL/DE/DV:MM SYE DKER.RPT=/BR:ALLALL/DE/DV:DK"SYE DP0ER.RPT=/BR:ALLALL/DE/DV:DP0"SYE DP1ER.RPT=/BR:ALLALL/DE/DV:DP1"SYE DP2ER.RPT=/BR:ALLALL/DE/DV:DP2SYE MISCER.RPT=/BR:SYSALL/DESYE MEMER.RPT=/BR:MEMALL/DE REM ...SYE@COMPDP@COMPMTBAS SUMMARY/RNPIP SUMMARY.RPT/PU.ASK ANS PRINT REPORTS.IFT ANS QUE LP:/-HD/DE=*.RPT&;COMMAND FILE TO PROCESS SYSTEM ERRORS INS [11,1]SYE SYE MTER.RPT=/BR:ALLALL/DE/DV:MT SYE MMER.RPT=/BR:ALLALL/DE/DV:MM SYE DKER.RPT=/BR:ALLALL/DE/DV:DK SYE DRER.RPT=/BR:ALLALL/DE/DV:DR"SYE DP0ER.RPT=/BR:ALLALL/DE/DV:DP0"SYE DP1ER.RPT=/BR:ALLALL/DE/DV:DP1"SYE DP2ER.RPT=/BR:ALLALL/DE/DV:DP2SYE MISCER.RPT=/BR:SYSALL/DESYE MEMER.RPT=/BR:MEMALL/DE REM ...SYE@COMPDP@COMPMT@COMPDRBAS SUMMARY/RNPIP SUMMARY.RPT/PU.ASK ANS PRINT REPORTS.IFT ANS QUE LP:/-HD/DE=*.RPT00 PxQxRx~*&;COMMAND FILE TO PROCESS SYSTEM ERRORS INS [11,1]SYE SYE MTER.RPT=/BR:ALLALL/DE/DV:MT SYE MMER.RPT=/BR:ALLALL/DE/DV:MM SYE DKER.RPT=/BR:ALLALL/DE/DV:DK SYE DRER.RPT=/BR:ALLALL/DE/DV:DR"SYE DP0ER.RPT=/BR:ALLALL/DE/DV:DP0"SYE DP1ER.RPT=/BR:ALLALL/DE/DV:DP1"SYE DP2ER.RPT=/BR:ALLALL/DE/DV:DP2SYE MISCER.RPT=/BR:SYSALL/DESYE MEMER.RPT=/BR:MEMALL/DE REM ...SYE%MAC RKOSSEEK,RKOSSEEK/-SP/CR=RKOSSEEK TKB @RKOSSEEK.IFINS ...RKO REM ...RKOINS RKOV ( |= DP!V w*Se@ ҥ`@u|= DP!V w*Se@ ҥ`@u|= DP!V *w*Se@ ҥ`@u@@|= DP!V +w*Se@ ҥ`@u|= DP!V 8w*Se@ ҥ`@u|= DP!V 8w*Se@ ҥ`@u@@|= DP!V 9w*Se@ ҥ`@u@@#|= DP!V 9w*Se@ ҥ`@u@@#|= DP!V *w*Se@ ҥ`@u|= DP!V *w*Se@ ҥ`@u|= DP!V *w*Se@ ҥ`@u #|= DP!V +w*Se@ ҥ`@u#|= DP!V )w*Se@ ҥ`@u|= DP!V )w*Se@ ҥ`@u|= DP!V (w*Se@ ҥ`@u|= DP!V (w*Se@ ҥ`@u|= DP!V 3w*Se@ ҥ`@u|= DP!V 4w*Se@ ҥ`@up7MM"V  .|r @`% ҥIp7MM"V !Iq!@  ѽҥM( p7MM"V !Iq!@  ҽҥM( p7MM"V !Iq!@  ӽҥM( p7MM"V !Iq!@  ԽҥM( p7MM"V !Iq!@  սҥM( p7MM"V !Iq!@  ֽҥ00Xx\x^xMx Nx OxssM( p7MM"V !Iq!@  ׽ҥM( p7MM"V !Iq!@  ؽҥM( p7MM"V !Iq!@  ٽҥM( p7MM"V !Iq!@  ڽҥM( p7MM"V !Iq!@  ۽ҥM( |= DP!V 'w*Se@ ҥ`@u|= DP!V (w*Se@ ҥ`@u@@|=!! DP!V w*Se@ ҥ`@u@@|="" DP!V w*Se@ ҥ`@u|=## DP!V w*Se@f ҥ`@u|=$$ DP!V w*Se@ ҥ`@u@@|=%% DP!V w*Se@ ҥ`@u@@/|=&& DP!V w*Se@ ҥ`@u/p7''MM"V  (|e 0 @}ҥI00p7((MM"V  4|e 0 @ҥI00a`@u@@|=%% DP!V w*Se@ ҥ`@u@@/|=&& DP!V w*Se@ &;COMMAND FILE TO PROCESS SYSTEM ERRORS/; FOR FIRST PROMPT FROM PSE, TYPE A ); FOR SECOND PROMPT, JUST TYPE A INS [11,1]PSEPSE REM ...PSE INS [11,1]SYE SYE MTER.RPT=/BR:ALLALL/DE/DV:MT SYE MMER.RPT=/BR:ALLALL/DE/DV:MM SYE DKER.RPT=/BR:ALLALL/DE/DV:DK SYE DRER.RPT=/BR:ALLALL/DE/DV:DR"SYE DP0ER.RPT=/BR:ALLALL/DE/DV:DP0"SYE DP1ER.RPT=/BR:ALLALL/DE/DV:DP1"SYE DP2ER.RPT=/BR:ALLALL/DE/DV:DP2SYE MISCER.RPT=/BR:SYSALL/DESYE MEMER.RPT=/BR:MEMALL/DE REM ...SYE@COMPDP@COMPMTA@COMPDROBAS SUMMARY/RNPIP SUMMARY.RPT/PU.ASK ANS PRINT REPORTS.IFT ANS QUE LP:/-HD/DE=*.RPTMPT, JUST TYPE A INS [11,1]PSEPSE REM ...PSE INS [11,1]SYE SYE MTER.RPT=/BR:ALLALL/DE/DV:MT SYE MMER.RPT=/BR:ALLALL/DE/DV:MM SYE DKER.RPT=/BR:ALLALL/DE/DV:DK SYE DRER.RPT=/BR:ALLALL/DE/DV:DR"SYE DP0ER.RPT=/BR:ALLALL/DE/DV:DP0"SYE DP1ER.RPT=/BR:ALLALL/DE/DV:DP1"SYE DP2ER.RPT=/BR:ALLALL/DE/DV:DP2SYE MISCER.RPT=/BR:SYSALL/DESYE MEMER.RPT=/BR:MEMALL/DE REM ...SYE@COMPDPJMRSPOTJKMRSPOTjJMRSPOTjLMRSPOTg"MRSPOT#MRSPOTMRSPOTMRSPOTMRSPOTMRSPOTMRSPOT MRSPOT MRSPOT MRSPOT MRSPOTMRSPOTMRSPOTMRSPOT#MRSPOTAMRSPOTCMRSPOTCMRSPOTFMRSPOT3RMRSPOT3XMRSPOT)MRSPOTMRSPOTŒMRSPOTMRSPOThMRSPOTzMRSPOTMRSPOTMRSPOTIbMRSPOTgMRSPOT%MRSPOT%MRSPOT%MRSPOT%MRSPOT'MRSPOTZ(MRSPOTZ(MRSPOT](MRSPOTs(MRSPOTo)MRSPOTo)MRSPOTr)00`xaxcx~*MRSPOTmOMRSPOTU?MRSPOTU@MRSPOTUIMRSPOTUJMRSPOTnaMRSPOTneMRSPOT~AgMRSPOT~iMRSPOTԧMRSPOTMRSPOTJMRSPOTMRSPOTMRSPOTMRSPOT+MRSPOT+MRSPOT+MRSPOT+MRSPOTRSPOTs(MRSPOTo)MRSPOTo)MRSPOTr);10 ! PROGRAM TO CALCULATE BITMAP BLOCK, WORD AND BIT NUMBER/11 ! CORRESPONDING TO AN ENTERED FILE ID NUMBER 20 PRINT &30 PRINT "DISK MUST BE MOUNTED '/UNL'"%40 PRINT "ZAP>DDN:[0,0]INDEXF.SYS/AB"60 PRINT "3:NNNNN\VVV"?65 PRINT "CLEAR BIT TO SHOW HEADER AVAILABLE, SET TO SHOW USED"70 PRINT "-BBB" 80 PRINT "-X" 90 PRINT '100 INPUT "FILE ID NUMBER (OCTAL) ";FI$110 FI=OCT(FI$) 120 FI=FI-1130 HI=INT(FI/8) : LO=FI-8*HI#140 PRINT "BYTE NUMBER = ";OCT$(HI) 145 MA=2^LO#150 PRINT " BIT MASK = ";OCT$(MA)L 160 GOTO 100CK, WORD AND BIT NUMBER/11 ! CORRESPONDING TO AN ENTERED FILE ID NUMBER 20 PRINT &30 PRINT "DISK MUST BE MOUNTED '/UNL'"%40 PRINT "ZAP>DDN:[0,0]INDEXF.SYS/AB"60 PRINT "3:NNNNN\VVV"?65 PRINT "CLEAR BIT TO SHOW HEADER AVAILABLE, SET TO SHOW USED"70 PRINT "-BBB" 80 PRINT "-X" 90 PRINT '100 INPUT "FILE ID NUMBER (OCTAL) ";FI$110 FI=OCT(FI$) 120 FI=FI-1130 HI=INT(FI/8) : LO=FI-8*HI#140 PRINT "BYTE NUMBER = ";OCT$(HI) 145 MA=2^LO#150 PRINT " |cT d(Uz[qUSYSYSYSYTICLTO``` ew &׭ ,׭ j W!"XU h)lD T)Е,4 F)PZ+V> $)Е, ) ){7>3  ERROR = -N AT RECORD # N,NNNNNN FINISHED READING N,NNNNNN RECORDS IN NNNNNN FILES()00hx\x^xMx Nx Oxss00pxaxcx~*00xx{x|xMx Nx Oxss  *  + 23ET* Ew NN   Е-   0@ rW e`fÊ    E MTC/-FP/PR,MTCHECK/-SP=MTCHECK/ TASK=...MTCLIBR=SYSRES:ROPRI=100STACK=64ASG=SY:2// .TITLE MTCHECK .IDENT /MRHV01/ .SBTTL INTRO PAGE;F;THIS PROGRAM IS DESIGNED TO CHECK THE CONDITION OF A MAG-TAPE IT WILL;!;1 READ THE TAPE RECORD BY RECORD;;<;2 MONITOR THE IOSTATUS RETURN TO SEE IF THE READ FAILED AND; REPORT THIS AS AN ERROR;;;;;;;DEFINE SOME NEEDED VARIABLES;0READSZ=20.*1000 ;NUMBER OF BYTES IN 20. BLOCKS;; .MCALL QIOW$,DIR$,EXIT$S,GMCR$.PAGE.SBTTL THE CODE;;FIRST SET THINGS UP;-START: DIR$ #GETMCR ;SO WE RECALL THE CALLERH%REOK: CLR R5 ;CLEAR END OF FILE FLAGA!REGO: DIR$ #REAQIO ;DO TAPE READO9 ADD #1,RECLOW ;COUNT ONE RECORD, (INC DOESN'T SET C BIT) ADC RECHIGY TSTB IOSB ;DID READ GO OKT BPL REOK ;BR IF OK# CMPB IOSB,#IE.EOV ;END OF TAPE ???T BEQ END ;IF SO, QUIT' CMPB IOSB,#IE.EOF ;END OF ONE FILE ???I BNE REPORT ;ELSE REPORT ERRORM INC FILES ;COUNT ONE FILE INC R5 ;SHOW ONE EOF) CMP R5,#1 ;MORE THAN ONE EOF IN A ROW ? BGT END ;IF SO, END OF TAPER BR REGO ;ELSE GO AGAIN'REPORT: MOV #HARDP1,R0 ;POINT TO BUFFERD MOV IOSB,R1 ;GET ERROR CODEQ BIS #177400,R1 ;SET UPPER BYTEW CLR R2 ;AND ZERO SUPPRESSN" JSR PC,$CBOSG ;CONVERT ERROR CODE MOV #HARDP2,R0 ;POINT TO BUFFER& MOV RECHIG,R1 ;GET HIGH RECORD NUMBER CLR R2 ;INDICATE 0 SUPPRESSION JSR PC,$CBOMG ;CONVERT NUMBER MOVB #',,(R0)+ ;PUT IN A COMMAR- MOV RECLOW,R1 ;GET LOW PART OF RECORD NUMBER  INC R2 ;MAKE THIS 6 DIGITS JSR PC,$CBOMG ;CONVERT IT8 MOV #HARDER,TTYQIO+Q.IOPL ;FILL IN MESSAGE START IN DPB( MOV #HARDLN,TTYQIO+Q.IOPL+2 ;AND LENGTH DIR$ #TTYQIO ;AND REPORT ERROR BR REOK ;AND GO AGAINR;T ; HERE ON ENDN;E#END: MOV #ENDP1,R0 ;POINT TO BUFFER + MOV RECHIG,R1 ;GET HIGH PART OF REC NUMBER CLR R2 ;INDICATE 0 SUPPRESSION JSR PC,$CBOMG ;CONVERT NUMBER MOVB #',,(R0)+ ;PUT IN A COMMAU* MOV RECLOW,R1 ;GET LOW PART OF REC NUMBER INC R2 ;MAKE THIS 6 DIGITS JSR PC,$CBOMG ;CONVERT IT% MOV #ENDP2,R0 ;POINT TO FILES NUMBER " MOV FILES,R1 ;GET NUMBER OF FILES" JSR PC,$CBOMG ;CONVERT 00xxx~*# OF FILES7 MOV #ENDOK,TTYQIO+Q.IOPL ;FILL IN MESSAGE START IN DPBT( MOV #ENDOKL,TTYQIO+Q.IOPL+2 ;AND LENGTH DIR$ #TTYQIO ;AND REPORT ERROR EXIT$S ;AND EXITM;R.PAGE1.SBTTL DATA AREASR;N;QIO FOR MESSAGES TO TIE;S$TTYQIO: QIOW$ IO.WVB,5,1,,,,<0,0,40>;R;NOW POSSIBLE MESSAGES; ;MHARDER: .ASCII /ERROR = / %HARDP1: .ASCII /-N AT RECORD # / HARDP2: .ASCII /N,NNNNNN / HARDLN=.-HARDER;O!ENDOK: .ASCII /FINISHED READING / ENDP1: .ASCII /N,NNNNNN /O .ASCII /RECORDS IN /ENDP2: .ASCII /NNNNNN FILES/ ENDOKL=.-ENDOKT .EVEN;M;NOW THE TAPE READ QIO;;/REAQIO: QIOW$ IO.RLB,2,1,,IOSB,,I; !IOSB: .WORD 0,0 ;RETURNED STATUST;RGETMCR: GMCR$ ;GET MCR DPB;E;MISC VARIABLESW;O$RECLOW: .WORD 0 ;LOW RECORD COUNTER%RECHIG: .WORD 0 ;HIGH RECORD COUNTEROFILES: .WORD 0 ;FILES COUNTER3READBF: .BLKB READSZ ;BUFFER FOR READING N. BLOCKSR .END START;O!ENDOK: .ASCII /FINISHED READING / ENDP1: .ASCII /N,NNNNNN /O .ASCII /R|Xr d(U z[qP Xr DPSYSYSYSYTICL~p¯/TO```sSYSYSYSYTICLp1 0 7" )|Zr d(U z[qP Zr DP00xx|xMx Nx OxssSYSYSYSYTICL~p¯/TO```SYSYSYSYTICLp1 ` 7" )|9r d(Uz[qUo9r DRSYSYSYSYTICL~TO```SYSYSYSYTICL1BW1 * " )00xxxxx*RKA/-FP/PR,RKALIGN/-SP=RKALIGN/ TASK=...RKALIBR=SYSRES:ROPRI=100STACK=64ASG=SY:2// .TITLE RKALIGN .IDENT /MRHV01/ .SBTTL INTRO PAGE .LIST MEB;>;THIS PROGRAM IS DESIGNED TO DO SEEKS TO RK ALIGNMENT CYLINDER;DEFINE SOME NEEDED VARIABLES;READSZ=1000 ;READ ONE BLOCKBLOCKH=06BLOCKL=105.*12.*2 ;BLOCK # OF FIRST BLOCK ON CYL 105.5BLOCKX=BLOCKL+12. ;BLOCK # OF FIRST BLOCK FOR HEAD 1;; .MCALL QIOW$,DIR$,EXIT$S,GMCR$.PAGE.SBTTL THE CODE;;FIRST SET THINGS UP;-START: DIR$ #GETMCR ;SO WE RECALL THE CALLER' MOVB GETMCR+G.MCRB+4,R1 ;GET CHARACTER# CMPB R1,#'1 ;DOES HE WANT HEAD #1 BNE REGO ;NOB MOV #BLOCKX,REAQIO+Q.IOPL+10 ;START AT ALIGNMENT BLOCK FOR HEAD 1 BR REGO1D<REGO: MOV #BLOCKL,REAQIO+Q.IOPL+10 ;START AT ALIGNMENT BLOCKREGO1: MOV #0,REAQIO+Q.IOPL+62"REGO2: DIR$ #REAQIO ;DO DISK READ BR REGO2 ;AND DO IT AGAINC; .PAGET.SBTTL DATA AREAS;;;NOW THE DISK READ QIO;M5REAQIO: QIOW$ IO.RLB,2,1,,IOSB,,P;!IOSB: .WORD 0,0 ;RETURNED STATUSL;EGETMCR: GMCR$ ;GET MCR DPB;1;MISC VARIABLES;P2READBF: .BLKB READSZ ;BUFFER FOR READING 1. BLOCK .END STARTAQIO+Q.IOPL+10 ;START AT ALIGNMENT BLOCK FOR HEAD 1 BR REGO1D<REGO: MOV #BLOCKL,REAQIO+Q.IOPL+10 ;START AT ALIGNMENT BLOCKREGO1: MOV #0,REAQIO+Q.IOPL+62"REGO2: DIR$ #REAQIO ;DO DISK READ BR REGO2 ;AND DO IT AGAINC; .PAGET.SBTTL DATA AREAS;;;NOW THE DISK READ QIO;M5REAQIO: QIOW$ IO.RLB,2,1,,IOSB,,P;!IOSB: .WORD 0,0 ;RETURNED STATUSL;EGETMCR: GMCR$ ;GET MCR DPB;1;MISC VARIABLE RKX/-FP/PR,RKALIGNX/-SP=RKALIGNX/ TASK=...RKXLIBR=SYSRES:ROPRI=100STACK=64ASG=SY:2// .TITLE RKALIGN .IDENT /MRHV01/ .SBTTL INTRO PAGE .LIST MEB;>;THIS PROGRAM IS DESIGNED TO DO SEEKS TO RK ALIGNMENT CYLINDER;DEFINE SOME NEEDED VARIABLES;READSZ=1000 ;READ ONE BLOCKBLOCKH=04BLOCKL=85.*12.*2 ;BLOCK # OF FIRST BLOCK ON CYL 85.5BLOCKX=BLOCKL+12. ;BLOCK # OF FIRST BLOCK FOR HEAD 1;; .MCALL QIOW$,DIR$,EXIT$S,GMCR$.PAGE.SBTTL THE CODE;;FIRST SET THINGS UP;-START: DIR$ #GETMCR ;SO WE RECALL THE CALLER' MOVB GETMCR+G.MCRB+4,R1 ;GET CHARACTER# CMPB R1,#'1 ;DOES HE WANT HEAD #1/ BNE REGO ;NOB MOV #BLOCKX,REAQIO+Q.IOPL+10 ;START AT ALIGNMENT BLOCK FOR HEAD 1 BR REGO1I<REGO: MOV #BLOCKL,REAQIO+Q.IOPL+10 ;START AT ALIGNMENT BLOCKREGO1: MOV #0,REAQIO+Q.IOPL+61"REGO2: DIR$ #REAQIO ;DO DISK READ BR REGO2 ;AND DO IT AGAINC; .PAGET.SBTTL DATA AREAS;;;NOW THE DISK READ QIO;M5REAQIO: QIOW$ IO.RLB,2,1,,IOSB,,P;!IOSB: .WORD 0,0 ;RETURNED STATUSL;EGETMCR: GMCR$ ;GET MCR DPB;1;MISC VARIABLES00xxxMx Nx Oxss;P2READBF: .BLKB READSZ ;BUFFER FOR READING 1. BLOCK .END STARTAQIO+Q.IOPL+10 ;START AT ALIGNMENT BLOCK FOR HEAD 1 BR REGO1I<REGO: MOV #BLOCKL,REAQIO+Q.IOPL+10 ;START AT ALIGNMENT BLOCKREGO1: MOV #0,REAQIO+Q.IOPL+61"REGO2: DIR$ #REAQIO ;DO DISK READ BR REGO2 ;AND DO IT AGAINC; .PAGET.SBTTL DATA AREAS;;;NOW THE DISK READ QIO;M5REAQIO: QIOW$ IO.RLB,2,1,,IOSB,,P;!IOSB: .WORD 0,0 ;RETURNED STATUSL;EGETMCR: GMCR$ ;GET MCR DPB;1;MISC VARIABLES29roLTOD:br@ ( LFBW1*", B)F*,2:br8B<AT ALIGNMENT BLOCKREGO1: MOV #0,REAQIO+Q.IOPL+61"REGO2: DIR$ #REAQIO ;DO DISK READ BR REGO2 ;AND DO IT AGAINC; .PAGET.SBTTL DATA AREAS;;;NOW THE DISK READ QIO;M5REAQIO: QIOW$ IO.RLB,2,1,,IOSB,,P;!IOSB: .WORD 0,0 ;RETURNED STATUSL;EGETMCR: GMCR$ ;GET MCR DPB;1;MISC VARIABLES|;r doo(Uz[qUg ;r DRSYSYSYSYTICL~TO ```SYSYSYSYTICL1 * Ve %m43e &Е, FR'N4 ~ r ddb  HARD ERROR STARTING AT BLOCK # N,NNNNNNREAD CHECK FINISHED )00xxxxx*00xx xMx Nx Oxss  *  + 23E$ Ew ~^   Е-   0@ rW e`fÊ    E RKC/-FP/PR,RKCHECK/-SP=RKCHECK/ TASK=...RKCLIBR=SYSRES:ROPRI=100STACK=64ASG=SY:2// .TITLE RPCHECK .IDENT /MRHV01/ .SBTTL INTRO PAGE .LIST MEB;F;THIS PROGRAM IS DESIGNED TO CHECK OUT THE CONDITION OF THE SURFACE OF;A DEC RK05 DRIVE. IT WILL;@;1 READ THE ENTIRE DISK IN 12. BLOCK INCREMENTS (ONE FULL TRACK);;<;3 MONITOR THE IOSTATUS RETURN TO SEE IF THE READ FAILED AND; REPORT THIS AS A "HARD" ERROR;+;4 IF ERROR OCCURS, RETRY 1 BLOCK AT A TIME;;;NOTE NOTE NOTE;;;;DEFINE SOME NEEDED VARIABLES; RPM1=1767260READSZ=12.*1000 ;NUMBER OF BYTES IN 12. BLOCKS(READ1=1000 ;NUMBER OF BYTES IN 1 BLOCKBLOCKH=0 BLOCKL=011300S;S;E .MCALL QIOW$,DIR$,EXIT$S,GMCR$H.PAGEC.SBTTL THE CODE ;V;FIRST SET THINGS UP;H-START: DIR$ #GETMCR ;SO WE RECALL THE CALLER + MOV #0,REAQIO+Q.IOPL+6 ;START AT BLOCK # 0N MOV #0,REAQIO+Q.IOPL+10!REGO: DIR$ #REAQIO ;DO DISK READO TSTB IOSB ;DID READ GO OKE BPL READOK ;BR IF OK! JSR PC,HARDNG ;ELSE REPORT ERROR* JSR PC,RETRY ;AND RETRY 1 BLOCK AT A TIME9READOK: ADD #12.,REAQIO+Q.IOPL+10 ;BUMP READ BY 12 BLOCKSE& CMP #BLOCKL,REAQIO+Q.IOPL+10 ;OF DISK BHI REGOL MOV #DONE,ERRQIO+Q.IOPL MOV #DONELN,ERRQIO+Q.IOPL+2 DIR$ #ERRQIO ;REPORT ITV EXIT$S ;AND EXIT SYSTEM.PAGED.SBTTL SUBROUTINES;A;SUB TO REPORT HARD ERRORQ;Q'HARDNG: MOV #HARDP1,R0 ;POINT TO BUFFERQ6 MOV REAQIO+Q.IOPL+6,R1 ;GET HIGH PART OF BLOCK NUMBER CLR R2 ;INDICATE 0 SUPPRESSION JSR PC,$CBOMG ;CONVERT NUMBER MOVB #',,(R0)+ ;PUT IN A COMMAA6 MOV REAQIO+Q.IOPL+10,R1 ;GET LOW PART OF BLOCK NUMBER INC R2 ;MAKE THIS 6 DIGITS JSR PC,$CBOMG ;CONVERT IT8 MOV #HARDER,ERRQIO+Q.IOPL ;FILL IN MESSAGE START IN DPB( MOV #HARDLN,ERRQIO+Q.IOPL+2 ;AND LENGTH DIR$ #ERRQIO ;AND REPORT ERROR RTS PC ;AND RETURN;T;SUB TO RETRY 1 BLOCK AT A TIMEO;9RETRY: MOV #READ1,REAQIO+Q.IOPL+2 ;CHANGE TO 1 BLOCK READ./ MOV REAQIO+Q.IOPL+10,-(SP) ;SAVE BLOCK NUMBERS  MOV REAQIO+Q.IOPL+6,-(SP) MOV #12.,R4 ;SET UP LOOP COUNT 11$: DIR$ #REAQIO ;DO DISK READ TSTB IOSB ;DID READ GO OK  BPL 1$ ;BR IF OK! JSR PC,HARDNG ;ELSE REPORT ERRORR.1$: INC REAQIO+Q.IOPL+10 ;BUMP READ BY 1 BLOCK" SOB R4,11$ ;DO IT FOR 12. BLOCKS6 MOV #READSZ,REAQIO+Q.IOPL+2 ;RESET SIZE TO 12. BLOCKS6 MOV (SP)+,REAQIO+Q.IOPL+6 ;RESTORE DISK BLOCK NUMBERS MOV (SP)+,REAQIO+Q.IOPL+10R RTS PC ;AND RETURN.PAGE .SBTTL DATA AREASR;.;QIO FOR MESSAGES TO TI(; $ERRQIO: QIOW$ IO.WVB,5,1,,,,<0,0,40>;6;NOW POSSIBLE MESSAGES;U;O0HARDER: .ASCII /HARD ERROR STARTING AT BLOCK # /HARDP1: .ASCII /N,NNNNNN/L HARDLN=.-HARDER00 x!x"xxx*;P"DONE: .ASCII /READ CHECK FINISHED/ DONELN=.-DONE .EVEN;A;NOW THE DISK READ QIO;;5REAQIO: QIOW$ IO.RLB,2,1,,IOSB,,E;I!IOSB: .WORD 0,0 ;RETURNED STATUS+;OGETMCR: GMCR$ ;GET MCR DPB;;MISC VARIABLES+;O,RPM1SV: .WORD 0 ;SAVE CONTENTS OF RPM1 HERE4READBF: .BLKB READSZ ;BUFFER FOR READING 32. BLOCKS .END START5,1,,,,<0,0,40>;6;NOW POSSIBLE MESSAGES;U;O0HARDER: .ASCII /HARD ERROR STARTING AT BLOCK # /HARDP1: .ASCII /N,NNNNNN/L HARDLN=.-HARDER!RKCOMP/PR:0/-FP,RKCOMP/-SP=RKCOMP/ TASK=...RK2LIBR=SYSRES:ROPRI=100STACK=64 ASG=DK0:1 ASG=DK1:2// .IDENT /MRHV01/ .SBTTL INTRO PAGE;?;THIS PROGRAM IS DESIGNED TO COMPARE TWO RK05 DISK DRIVES, I.E. ;IT WILL:;E;1 READ EACH DISK IN 24. BLOCK INCREMENTS (ONE FULL SURFACE CYLINDER);;2 COMPARE EACH BUFFER;;3 REPORT ANY DIFFERENCES;;NOTE NOTE NOTE;7; PROGRAM USES LUN 1 AND 2 FOR READS, THEY ARE ASSIGNED; TO DK0 AND DK1;;;DEFINE SOME NEEDED VARIABLES;0READSZ=24.*1000 ;NUMBER OF BYTES IN 24. BLOCKS;;% .MCALL QIOW$,DIR$,EXIT$S,GMCR$,GLUN$.PAGE.SBTTL MAIN LOOP;/-START: DIR$ #GETMCR ;SO WE RECALL THE CALLERG/ DIR$ #GETDEV ;SEE WHAT DRIVE WE^RE WORKING ONI/ DIR$ #GETDE2 ;SEE WHAT DRIVE WE^RE WORKING ONT0111$: MOV #0,REAQIO+Q.IOPL+6 ;START AT BLOCK # 0 MOV #0,REAQIO+Q.IOPL+10+ MOV #0,REAQI2+Q.IOPL+6 ;START AT BLOCK # 0R MOV #0,REAQI2+Q.IOPL+10!REGO: DIR$ #REAQIO ;DO DISK READ0 TSTB IOSB ;DID READ GO OKE BPL 113$ ;BR IF OK! JSR PC,HARDNG ;ELSE REPORT ERRORS$113$: DIR$ #REAQI2 ;READ OTHER DISK! TSTB IOSB2 ;DID THIS READ GO OKS BPL READOK ;BR IF OK" JSR PC,HARDN2 ;REPORT OTHER ERROR$READOK: MOV #24.*400,R0 ;COUNT TO R0# MOV #READBF,R1 ;POINT TO 2 BUFFERSE MOV #READB2,R2E1$: CMP (R1)+,(R2)+ ;OK ?R BEQ 2$ ;BR IF SAME$ JSR PC,COMPNG ;REPORT COMPARE NO GO2$: SOB R0,1$ ;TRY MORE:COMPDN: ADD #24.,REAQIO+Q.IOPL+10 ;BUMP READ BY 24. BLOCKS3 ADD #24.,REAQI2+Q.IOPL+10 ;BUMP READ BY 24. BLOCKS% CMP BLOCKL,REAQIO+Q.IOPL+10 ;OF DISKL BHI REGOR MOV #DONE,ERRQIO+Q.IOPL MOV #DONELN,ERRQIO+Q.IOPL+2 DIR$ #ERRQIO ;REPORT ITL EXIT$S ;EXIT SYSTEM.PAGED.SBTTL SUBROUTINES.SBTTL REPORT HARD ERROR;C;SUB TO REPORT HARD ERROR ;I4HARDNG: MOVB #61,HARDDV ;CHANGE LUN NUMBER INDICATOR BR HARCON ;DO REST OF MESSAGEJ4HARDN2: MOVB #62,HARDDV ;CHANGE LUN NUMBER INDICATOR$HARCON: MOV R0,-(SP) ;SAVE USED REGS MOV R1,-(SP)B MOV R2,-(SP)A MOV #HARDP1,R0 ;POINT TO BUFFER* MOV REAQIO+Q.IOPL+10,R1 ;GET BLOCK NUMBER INC R2 ;MAKE THIS 6 DIGITS JSR PC,$CBOMG ;CONVERT IT0 MOV REAQIO+Q.IOPL+10,R3 ;GET BLOCK NUMBER AGAIN CLR R2 ;FOR DIVIDE2 DIV #48.,R2 ;DIVIDE BY NUMBER OF BLOCKS/CYLINDER/ ;QUOTIENT (R2) = CYL, REM (R3)=BLOCK OF CYL & MOV R2,R1 ;GET QUOTIENT (CYL NUMBER)$ MOV #1,R2 ;INDICATE NO SUPRESS 0'S MOV #HARDP2,R0 ;POINT TO BUFFER JSR PC,$CBOMG ;CONVERT CYL # MOV R3,R1 ;GET BLOCK NUMBER TO R1, CMP R1,#23. ;IS IT SURFACE 1 BLE 98$ ;BR IF NOT MOVB #'1,HARDPA ;SHOW SURFACE 1 SUB #24.,R1 ;ACCOUNT FOR ITI BR 99$S$98$: MOVB #'0,HARDPA ;SHOW SURFACE 0<99$: MOV #HARDER,ERRQIO+Q.IOPL ;FILL IN MESSAGE START IN DPB( MOV #HARDLN,ERRQIO+Q.IOPL+2 ;AND LENGTH DIR$ #ERRQIO ;AND REPORT ERROR MOV (SP)+,R2 ;RESTORE USED REGS MOV (SP)+,R1I MOV (SP)+,R0) RTS PC ;AND RETURN.PAGEP.SBTTL REPORT COMPARE ERRORI;T;SUB TO REPORT COMPARE ERROR; %COMPNG: MOV R0,-(SP) ;SAVE LOOP COUNTR MOV R1,-(SP) ;AND POINTERSA MOV R2,-(SP) MOV #COMPP1,R0 ;POINT TO BUFFER* MOV REAQIO+Q.IOPL+10,R1 ;GET BLOCK NUMBER INC R2 ;MAKE THIS 6 DIGITS JSR PC,$CBOMG ;CONVERT IT MOV #COMPP2,R0 ;P00"x# yxMx Nx OxssOINT TO BUFFER0 MOV REAQIO+Q.IOPL+10,R3 ;GET BLOCK NUMBER AGAIN CLR R2 ;FOR DIVIDE2 DIV #48.,R2 ;DIVIDE BY NUMBER OF BLOCKS/CYLINDER& MOV R2,R1 ;GET QUOTIENT (CYL NUMBER)$ MOV #1,R2 ;INDICATE NO SUPRESS 0'S JSR PC,$CBOMG ;CONVERT CYL ( MOV R3,R1 ;GET BLOCK NUMBER OF SURFACE CMP R1,#23. ;IS IT SURFACE 1 BLE 98$ ;BR IF NOT MOVB #'1,COMPPA ;SHOW SURFACE 1 BR 99$U$98$: MOVB #'0,COMPPA ;SHOW SURFACE 0)99$: MOV #24.*400,R3 ;GET MAX WORD NUMBERJ) SUB 4(SP),R3 ;SUB WHERE WE ARE IN BUFFERP ASL R3 ;MAKE IT BYTE OFFSETO CLR R2 ;FOR DIVIDE/ DIV #1000,R2 ;CONVERT TO BLOCK & BYTE OF BLOCKD MOV R2,R1 ;BLOCK NUMBER TO R1R MOV #COMPP3,R0 ;POINT TO BUFFER JSR PC,$CBOMG ;CONVERT BLOCK #S" MOV R3,R1 ;GET OFFSET INTO BLOCK MOV #COMPP4,R0 ' JSR PC,$CBOMG ;CONVERT WORD OF SURFACE.' MOV 2(SP),R1 ;GET WORD FROM FIRST DISK MOV -2(R1),R1 MOV #COMPP5,R0" JSR PC,$CBOMG ;CONVERT FIRST WORD% MOV (SP),R1 ;GET WORD FROM 2ND DISKA MOV -2(R1),R1 MOV #COMPP6,R0B* JSR PC,$CBOMG ;CONVERT WORD FROM 2ND DISK8 MOV #COMPER,ERRQIO+Q.IOPL ;FILL IN MESSAGE START IN DPB( MOV #COMPLN,ERRQIO+Q.IOPL+2 ;AND LENGTH DIR$ #ERRQIO ;AND REPORT ERROR MOV (SP)+,R2F MOV (SP)+,R1O MOV (SP)+,R0C RTS PC ;AND RETURN.PAGE .SBTTL DATA AREASO;4;QIO FOR MESSAGES TO TIV; $ERRQIO: QIOW$ IO.WVB,5,1,,,,<0,0,40>; ;NOW POSSIBLE MESSAGES;1COMPER: .ASCII /ERR BL# /RCOMPP1: .ASCII /NNNNNN CYL=/COMPP2: .ASCII /NNNNNN SURF=/2COMPPA: .ASCII /N BLOCK=/M&COMPP3: .ASCII /NNNNNN @ BYTE OFFSET /COMPP4: .ASCII /NNNNNN /COMPP5: .ASCII /NNNNNN /COMPP6: .ASCII /NNNNNN/ COMPLN=.-COMPER;.HARDER: .ASCII /LUN #/#HARDDV: .ASCII /1 READ ERR AT BL# /PHARDP1: .ASCII /NNNNNN CYL=/HARDP2: .ASCII /NNNNNN SURF=/HARDPA: .ASCII /N BLOCK=/HARDP3: .ASCII /NNNNNN/T HARDLN=.-HARDER; "DONE: .ASCII /READ CHECK FINISHED/ DONELN=.-DONE .EVEN; ;NOW THE DISK READ QIO; 5REAQIO: QIOW$ IO.RLB,1,1,,IOSB,,O6REAQI2: QIOW$ IO.RLB,2,1,,IOSB2,,;S!IOSB: .WORD 0,0 ;RETURNED STATUSP"IOSB2: .WORD 0,0 ;RETURNED STATUS;N;NGETMCR: GMCR$ ;GET MCR DPB#GETDEV: GLUN$ 1,DEVICE ;GET LUN DPB #GETDE2: GLUN$ 2,DEVIC2 ;GET LUN DPBN DEVICE: .BLKW 6 ;GET LUN BUFFER DEVIC2: .BLKW 6 ;GET LUN BUFFER;;MISC VARIABLESN;N+BLOCKL: .WORD 4800. ;LOW ORDER MAX BLOCK #C4READBF: .BLKB READSZ ;BUFFER FOR READING 24. BLOCKS4READB2: .BLKB READSZ ;BUFFER FOR READING 24. BLOCKS .END START0,0>O6REAQI2: QIOW$ IO.RLB,2,1,,IOSB2,,;S!|Xr d(U z[qU5 ;r_ DRDKDKSYSYTICL~TO2```DKDKSYSYTICL1PVD@NJB R6 Jvv3R$ ~ee-ۂ*&00# yx"xxx*31m2e&f Zb r0 BbW 1T0Hz<&f2V a=H r0 aW 10  rQ af aAm aAt a* P  ERR BL# NNNNNN CYL=NNNNNN SURF=N BLOCK=NNNNNN @ BYTE OFFSET NNNNNN NNNNNN NNNNNNLUN #1 READ ERR AT BL# NNNNNN CYL=NNNNNN SURF=N BLOCK=NNNNNNREAD CHECK FINISHED v0 v30)\h00#y yxMx Nx Oxss00#yx"xxx*00#%y yxMx Nx Oxss00#-yx"xxx*00#5y yxMx Nx Oxss00#=y$x%8xxx*  *  + 23Ec Ew    Е-   0@ rW e`fÊ    E |Gr d(Uz[qUh Gr DRSYSYSYSYTICL~TO```SYSYSYSYTICL1 ` 7" )RK2/-FP/PR,RK2/-SP/CR=RKOS2CYL/ TASK=...RK2LIBR=SYSRES:ROPRI=100STACK=64ASG=SY:2//00&x'x(x)xNx Oxss .TITLE RKOS2CYL .IDENT /MRHV01/ .SBTTL INTRO PAGE .LIST MEB;>;THIS PROGRAM IS DESIGNED TO DO 2 CYLINDER SEEKS ON AN RK DISK;;;DEFINE SOME NEEDED VARIABLES;READSZ=1000 ;READ ONE BLOCK,BLOCKH=48. ;HIGH BLOCK FOR 2 CYLINDER SEEKBLOCKL=0 ;LOW BLOCK;; .MCALL QIOW$,DIR$,EXIT$S,GMCR$.PAGE.SBTTL THE CODE;;FIRST SET THINGS UP;-START: DIR$ #GETMCR ;SO WE RECALL THE CALLER-REGO: MOV #BLOCKL,R4 ;SET UP TO SEEK TO CYL 0 JSR PC,SEEK ;GO DOIT* MOV #BLOCKH,R4 ;SET UP TO SEEK TO CYL 100 JSR PC,SEEK ;DO DAT UN% BR REGO ;KEEP DOING THAT AD NAUSEUME;OASEEK: MOV R4,REAQIO+Q.IOPL+10 ;FILL IN BLOCK NUMBER IN IO REQUESTI MOV #0,REAQIO+Q.IOPL+6  DIR$ #REAQIO ;DO DISK READ RTS PCO;F.PAGEL.SBTTL DATA AREAS0;;; ;NOW THE DISK READ QIO;W5REAQIO: QIOW$ IO.RLB,2,1,,IOSB,,R;S!IOSB: .WORD 0,0 ;RETURNED STATUSC;;GETMCR: GMCR$ ;GET MCR DPB;O;MISC VARIABLES ;T2READBF: .BLKB READSZ ;BUFFER FOR READING 1. BLOCKEND: ;END OF CODE POINTER .END STARTEEK ;DO DAT UN% BR REGO ;KEEP DOING THAT AD NAUSEUME;OASEEK: MOV R4,REAQIO+Q.IOPL+10 ;FILL IN BLOCK NUMBER IN IO REQUESTI MOV #0,REAQIO+Q.IOPL+6  DIR$ #REAQIO ;DO DISK READ RTS PCO;F.PAGEL.SBTTL DATA AREAS0;;; ;NOW THE DISK READ QIO;W5REAQIO: QIOW$ IO.RLB,2,1,,IOSB,,R;S!IOSB: .WORD 0,0 ;RETURNED STATUSC;;GETMCR: GMCR$ ;GET MCR DPB;O;MISC VARIABLES ;T2READBF: .BLKB READSZ ;BUFFER FOR READING 1. BLOCKRK4/-FP/PR,RK4/-SP/CR=RKOS4CYL/ TASK=...RK4LIBR=SYSRES:ROPRI=100STACK=64ASG=SY:2// .TITLE RKOS4CYL .IDENT /MRHV01/ .SBTTL INTRO PAGE .LIST MEB;:;THIS PROGRAM IS DESIGNED TO DO RANDOM SEEKS ON AN RK DISK;;;DEFINE SOME NEEDED VARIABLES;READSZ=1000 ;READ ONE BLOCK,BLOCKH=96. ;HIGH BLOCK FOR 4 CYLINDER SEEKBLOCKL=0 ;LOW BLOCK;; .MCALL QIOW$,DIR$,EXIT$S,GMCR$.PAGE.SBTTL THE CODE;;FIRST SET THINGS UP;-START: DIR$ #GETMCR ;SO WE RECALL THE CALLER-REGO: MOV #BLOCKL,R4 ;SET UP TO SEEK TO CYL 0 JSR PC,SEEK ;GO DOIT* MOV #BLOCKH,R4 ;SET UP TO SEEK TO CYL 100 JSR PC,SEEK ;DO DAT UN% BR REGO ;KEEP DOING THAT AD NAUSEUMS;EASEEK: MOV R4,REAQIO+Q.IOPL+10 ;FILL IN BLOCK NUMBER IN IO REQUESTI MOV #0,REAQIO+Q.IOPL+6  DIR$ #REAQIO ;DO DISK READ RTS PCO;F.PAGEL.SBTTL DATA AREAS0;;; ;NOW THE DISK READ QIO;W5REAQIO: QIOW$ IO.RLB,2,1,,IOSB,,R;S!IOSB: .WORD 0,0 ;RETURNED STATUSC;;GETMCR: GMCR$ ;GET MCR DPB;O;MISC VARIABLES ;T2READBF: .BLKB READSZ ;BUFFER FOR READING 1. BLOCKEND: ;END OF CODE POINTER .END STARTEEK ;DO DAT UN% BR REGO ;KEEP DOING THAT AD NAUSEUMS;EASEEK: MOV R4,REAQIO+Q.IOPL+10 ;FILL IN BLOCK NUMBER IN IO REQUESTI MOV #0,REAQIO+Q.IOPL+6  DIR$ #REAQIO ;DO DISK READ RTS PCO;F.PAGEL.SBTTL DATA AREAS0;;; ;NOW THE DISK READ QIO;W5REAQIO: QIOW$ IO.RLB,2,1,,IOSB,,R;S!IOSB: .WORD 0,0 ;RETURNED STATUSC;;GETMCR: GMCR$ ;GET MCR DPB;O;MISC VARIABLES ;T2READBF: .BLKB READSZ ;BUFFER FOR READING 1. BLOCKENRKO/-FP/PR,RKO/-SP/CR=RKOSSEEK/ TASK=...RKOLIBR=SYSRES:ROPRI=100STACK=64ASG=SY:2//00*x+x8xxx* .TITLE RKOSSEEK .IDENT /MRHV01/ .SBTTL INTRO PAGE .LIST MEB;:;THIS PROGRAM IS DESIGNED TO DO RANDOM SEEKS ON AN RK DISK;;;DEFINE SOME NEEDED VARIABLES;READSZ=1000 ;READ ONE BLOCKBLOCKH=2400. ;HIGH BLOCKBLOCKL=0 ;LOW BLOCK;; .MCALL QIOW$,DIR$,EXIT$S,GMCR$.PAGE.SBTTL THE CODE;;FIRST SET THINGS UP;-START: DIR$ #GETMCR ;SO WE RECALL THE CALLER-REGO: MOV #BLOCKL,R4 ;SET UP TO SEEK TO CYL 0 JSR PC,SEEK ;GO DOIT* MOV #BLOCKH,R4 ;SET UP TO SEEK TO CYL 100 JSR PC,SEEK ;DO DAT UN% BR REGO ;KEEP DOING THAT AD NAUSEUMT; ASEEK: MOV R4,REAQIO+Q.IOPL+10 ;FILL IN BLOCK NUMBER IN IO REQUESTN MOV #0,REAQIO+Q.IOPL+6 DIR$ #REAQIO ;DO DISK READ RTS PCC;2.PAGE;.SBTTL DATA AREAS0;;; ;NOW THE DISK READ QIO;W5REAQIO: QIOW$ IO.RLB,2,1,,IOSB,,R;S!IOSB: .WORD 0,0 ;RETURNED STATUSC;;GETMCR: GMCR$ ;GET MCR DPB;O;MISC VARIABLES ;T2READBF: .BLKB READSZ ;BUFFER FOR READING 1. BLOCKEND: ;END OF CODE POINTER .END STARTEEK ;DO DAT UN% BR REGO ;KEEP DOING THAT AD NAUSEUMT; ASEEK: MOV R4,REAQIO+Q.IOPL+10 ;FILL IN BLOCK NUMBER IN IO REQUESTN MOV #0,REAQIO+Q.IOPL+6 DIR$ #REAQIO ;DO DISK READ RTS PCC;2.PAGE;.SBTTL DATA AREAS0;;; ;NOW THE DISK READ QIO;W5REAQIO: QIOW$ IO.RLB,2,1,,IOSB,,R;S!IOSB: .WORD 0,0 ;RETURNED STATUSC;;GETMCR: GMCR$ ;GET MCR DPB;O;MISC VARIABLES ;T2READBF: .BLKB READSZ ;BUFFER FOR READING 1. BLOCKEND: ;END OF CODE|Jr d(Uz[qUJr DRSYSYSYSYTICL~TO```SYSYSYSYTICL1De W!(  !7" ()00,x-x.xxNx Oxss"RKR/-FP/PR,RKRANSEEK/-SP=RKRANSEEK/ TASK=...RKRLIBR=SYSRES:ROPRI=100STACK=64ASG=SY:2// .TITLE RKRANSEEK .IDENT /MRHV01/ .SBTTL INTRO PAGE .LIST MEB;:;THIS PROGRAM IS DESIGNED TO DO RANDOM SEEKS ON AN RK DISK;;;DEFINE SOME NEEDED VARIABLES;READSZ=1000 ;READ ONE BLOCKBLOCKH=0BLOCKL=4800. ;MAXIMUM BLOCK #;; .MCALL QIOW$,DIR$,EXIT$S,GMCR$.PAGE.SBTTL THE CODE;;FIRST SET THINGS UP;-START: DIR$ #GETMCR ;SO WE RECALL THE CALLER< MOV #START,R5 ;POINT PSEUDO RANDOM POINTER TO START OF CODE3REGO: ADD (R5)+,R4 ;ADD SOME TO RANDOM BLOCK NUMBER.! INC R4 ;JUST IN CASE WE GOT A 0! CMP R5,#END ;PAST END OF CODE ? BLT 1$ ;BRANCH IF NOT " MOV #START,R5 ;ELSE RESET POINTER+1$: TST R4 ;DID BLOCK NUMBER GO NEGATIVE ?D BGT 2$ ;BR IF NOTL NEG R4 ;FUDGE THINGS#2$: CMP R4,#BLOCKL ;IS IT TOO BIG ?C BLT 3$ ;BR IF OK SUB #BLOCKL,R4 ;TAKE SOME OFF BR 2$ ;AND CHECK AGAIN?3$: MOV R4,REAQIO+Q.IOPL+10 ;FILL IN BLOCK NUMBER IN IO REQUESTR MOV #0,REAQIO+Q.IOPL+6  DIR$ #REAQIO ;DO DISK READ BR REGO ;AND DO IT AGAIN;D.PAGEK.SBTTL DATA AREAS;;T; ;NOW THE DISK READ QIO;E5REAQIO: QIOW$ IO.RLB,2,1,,IOSB,,V;T!IOSB: .WORD 0,0 ;RETURNED STATUS ; GETMCR: GMCR$ ;GET MCR DPB;;MISC VARIABLESO;2READBF: .BLKB READSZ ;BUFFER FOR READING 1. BLOCKEND: ;END OF CODE POINTER .END STARTR4 ;TAKE SOME OFF BR 2$ ;AND CHECK AGAIN?3$: MOV R4,REAQIO+Q.IOPL+10 ;FILL IN BLOCK NUMBER IN IO REQUESTR MOV #0,REAQIO+Q.IOPL+6  DIR$ #REAQIO ;DO DISK READ BR REGO ;AND DO IT AGAIN;D.PAGEK.S|Pr d(V z[qUSYSYSYSYTICLTO```BW1*" )00.x/x0?yxx*810 ! PROGRAM TO CONVERT RP03 REGISTERS TO ACTUAL BLOCK #.20 ! AND THEN BACK TO AED CYL, HEAD AND SECTOR 25 DIM A$[6]V30 INPUT "RPCA (IN OCTAL )";A$ 35 CA=OCT(A$)40 INPUT "RPDA (IN OCTAL) ";A$ 45 DA=OCT(A$)50 SU=INT(DA/256)60 SE=DA-SU*256470 PRINT "RP CYL (OCT.) = ";OCT$(CA);" (DEC.) = ";CA480 PRINT "RP SUR (OCT.) = ";OCT$(SU);" (DEC.) = ";SU490 PRINT "RP SEC (OCT.) = ";OCT$(SE);" (DEC.) = ";SE100 BN=CA*200+SU*10+SE>110 PRINT "BLOCK #","OCT. = ";OCT$(BN/8);OCT$(BN-8*INT(BN/8)),120 PRINT " (DEC.) ";BNO130 CY=INT(BN/160)140 SU=INT((BN-CY*160)/32)150 SE=BN-CY*160-SU*325170 PRINT "SM CYL (OCT.) = ";OCT$(CY);" (DEC.) = ";CYL5180 PRINT "SM SUR (OCT.) = ";OCT$(SU);" (DEC.) = ";SU5190 PRINT "SM SEC (OCT.) = ";OCT$(SE);" (DEC.) = ";SE08195 PRINT "SURFACES LISTED FROM TOP ARE 0,1,SERVO,2,3,4" 200 GOTO 30CT.) = ";OCT$(SU);" (DEC.) = ";SU490 PRINT "RP SEC (OCT.) = ";OCT$(SE);" (DEC.) = ";SE100 BN=CA*200+SU*10+SE>110 PRINT "BLOCK #","OCT. = ";OCT$(BN/8);OCT$(BN-8*INT(BN/8)),120 |s d(Uz[qU% bs DRSYSYSYSYTICL~TO"```SYSYSYSYTICL1:-DPP840&-DP --  z--TDP de w -H-B͂-*DP.F4 EW FGezbw`!  3f BЕ,Z BF BB@r( B r 4 B@ BG tBЕ, fB ZBr @B r  (B BdG`tvp db -P X Lw F@::8  SOFT ERR AT BL# N,NNNNNN RPM1=NNNNNN CYL=NNNNNN SURF=NNNNNN SECT=NNNNNNHARD ERR AT BL# N,NNNNNN RPM1=NNNNNN CYL=NNNNNN SURF=NNNNNN SECT=NNNNNNREAD CHECK FINISHED, RPM1 ORIGINAL CONTENTS RESTOREDHEAD 0 1234567891123456789212345678931234567894123456789512345678961234567897* T@)@`000Dyx.xxNx Oxss000Lyx0?yxx*000Tyx.xxNx Oxss000\yx0?yxx*  *  + 23ED Ew 4   Е-   0@ rW e`fÊ    E 001x2x2dyxNx OxssRPC/-FP/PR,RPCHECK/-SP=RPCHECK/ TASK=...RPCLIBR=SYSRES:ROPRI=100STACK=64ASG=SY:2// .TITLE RPCHECK .IDENT /MRHV01/ .SBTTL INTRO PAGE .LIST MEB;F;THIS PROGRAM IS DESIGNED TO CHECK OUT THE CONDITION OF THE SURFACE OFA;AN AMPEX DM980 DRIVE, OR A FUJUTSU DRIVE EMULATING AN RM03 DRIVE ;IT WILL:;K;1 READ THE ENTIRE DISK IN 32. BLOCK INCREMENTS (ONE FULL SURFACE CYLINDER);F;2 MONITOR AED REGISTER RPM1 TO SEE IF THE ERROR CORRECTION POLYNOMIALE; WAS USED DURING THE READ AND REPORT IT AS A "SOFT" ERROR (AED ONLY);G;3 MONITOR THE IOSTATUS RETURN TO SEE IF THE READ FAILED ALTOGETHER AND; REPORT THIS AS A "HARD" ERRORA;+;4 IF ERROR OCCURS, RETRY 1 BLOCK AT A TIMEC;KG;5 SAVE RPM1 CONTENTS AT START AND RESET AT THE END SO WE CAN CHECK OUT >; FAILING DISKS WITHOUT SCARING THE SYSTEM MANAGER (AED ONLY);D;NOTE NOTE NOTEI;EA; PROGRAM USES LUN 2 FOR READS, IT IS ASSIGNED AT TKB TIME TO SY:1; ; ;DEFINE SOME NEEDED VARIABLESI; RPM1=176726R0READSZ=32.*1000 ;NUMBER OF BYTES IN 32. BLOCKS3LASTSZ=16.*1000 ;LAST AED READ IS ONLY 16. BLOCKST(READ1=1000 ;NUMBER OF BYTES IN 1 BLOCK; ;A% .MCALL QIOW$,DIR$,EXIT$S,GMCR$,GLUN$ .PAGE .SBTTL THE CODE;;FIRST SET THINGS UP;S-START: DIR$ #GETMCR ;SO WE RECALL THE CALLER/ DIR$ #GETDEV ;SEE WHAT DRIVE WE^RE WORKING ONR CMP DEVICE,#"DP ;IF NOT AN AEDI BNE 111$ ;SKIP RPM1 SAVE, ETCA* SUB #80.,BLOCKL ;ADJUST BLOCK LOW FOR AED' MOV RPM1,RPM1SV ;SAVE CONTENTS OF RPM1P0111$: MOV #0,REAQIO+Q.IOPL+6 ;START AT BLOCK # 0 MOV #0,REAQIO+Q.IOPL+10'REGO: MOV RPM1,R5 ;REMEMBER RPM1 IN R5E% CMP DEVICE,#"DP ;IS THIS AED DRIVE ? BNE 111$ ;SKIP IF NOT$, CMP BLOCKH,REAQIO+Q.IOPL+6 ;ARE WE AT END ? BNE 111$ ;SKIP IF NOTP CMP LBLOCK,REAQIO+Q.IOPL+10 BNE 111$ ;SKIP IF NOTD? MOV #LASTSZ,REAQIO+Q.IOPL+2 ;FOR AED, MAKE LAST READ HALF SIZE;!111$: DIR$ #REAQIO ;DO DISK READM TSTB IOSB ;DID READ GO OKL BPL READOK ;BR IF OK! JSR PC,HARDNG ;ELSE REPORT ERROR * JSR PC,RETRY ;AND RETRY 1 BLOCK AT A TIME(READOK: CMP RPM1,R5 ;HAS RPM1 CHANGED ? BEQ SOFTOK ;NO SKIP IT' CMP DEVICE,#"DP ;ARE WE CHECKING AED ?  BNE 111$ ;SKIP IF NOT; JSR PC,SOFTNG ;YES, REPORT IT-111$: JSR PC,RETRY ;AND TRY 1 BLOCK AT A TIME 9SOFTOK: ADD #32.,REAQIO+Q.IOPL+10 ;BUMP READ BY 32 BLOCKSD8 ADC REAQIO+Q.IOPL+6 ;ADD CARRY TO UPPER WORD OF BLOCK #, CMP BLOCKH,REAQIO+Q.IOPL+6 ;ARE WE AT END ? BNE REGO % CMP BLOCKL,REAQIO+Q.IOPL+10 ;OF DISKK BHI REGOA+ CMP DEVICE,#"DP ;ARE WE WORKING WITH AED ?R& BNE 111$ ;IF NOT, DON'T RESTORE RPM10 MOV RPM1SV,RPM1 ;RESTORE RPM1 ORIGINAL CONTENTS111$: MOV #DONE,ERRQIO+Q.IOPLK MOV #DONELN,ERRQIO+Q.IOPL+2 DIR$ #ERRQIO ;REPORT IT, CLR R0 ;CLEAR HEAD COUNTER2LOOP: MOVB HEADCT(R0),R1 ;GET ERROR COUNT FOR HEAD+ BIC #177400,R1 ;CLEAR POSSIBLE SIGN EXTENDA' CMP R1,#70. ;GREATER THAN 70 ERRORS ?B BLE 1$ ;NO MOV #71.,R1 ;YES, LIMIT TO 71E'1$: ADD #7,R1 ;ADD LENGTH OF "HEAD N "P3 MOV #HISTO,ERRQIO+Q.IOPL ;FILL IN START OF MESSAGEW# MOV R1,ERRQIO+Q.IOPL+2 ;AND LENGTHT( DIR$ #ERRQIO ;DO ONE LINE OF HISTOGRAM( INCB HISTO1 ;INC HEAD # IN OUTPUT LINE INC R0 ;GO TO NEXT HEADO CMP R0,#4 ;PAST LAST HEADE BLE LOOP ;NO EXIT$S ;YES, EXIT SYSTEM.PAGEP.SBTTL SUBROUTINES.SBTTL REPORT HARD ERROR;B;SUB TO REPORT HARD ERRORL;I'HARDNG: MOV #HARDP1,R0 ;POINT TO BUFFER06 MOV REAQIO+Q.IOPL+6,R1 ;GET HIGH PART OF BLOCK NUMBER CLR R2 ;INDICATE 0 SUPPRESSION JSR PC,$CBOMG ;CONVERT NUMBER MOVB #',,(R0)+ ;PUT IN A COMMA6 MOV REAQIO+Q.IOPL+10,R1 ;GET LOW PART OF BLOCK NUMBER INC R2 ;MAKE THIS 6 DIGITS JSR PC,$CBOMG ;CONVERT IT MOV #HARD002gyx0?yxx*P2,R0 ;POINT TO BUFFER MOV RPM1,R1 ;GET RPM1 CONTENTS JSR PC,$CBOMG ;CONVERT IT/ MOV REAQIO+Q.IOPL+6,R2 ;GET BLOCK NUMBER AGAINL, MOV REAQIO+Q.IOPL+10,R3 ;IN DOUBLE REGISTER2 DIV #240,R2 ;DIVIDE BY NUMBER OF BLOCKS/CYLINDER& MOV R2,R1 ;GET QUOTIENT (CYL NUMBER)$ MOV #1,R2 ;INDICATE NO SUPRESS 0'S MOV #HARDP3,R0 ;POINT TO BUFFER JSR PC,$CBOMG ;CONVERT CYLT CLR R2 ;CLEAR UPPER REG.& DIV #32.,R2 ;CONVERT TO SURFACE, CYL" MOV R2,R1 ;QUOTIENT IS SURFACE #+ INCB HEADCT(R1) ;COUNT ERROR FOR THIS HEADT MOV #1,R2 ;NO SUPRESSION MOV #HARDP4,R0! JSR PC,$CBOMG ;CONVERT SURFACE #A MOV R3,R1 ;NOW GET SECTOR #E MOV #HARDP5,R0A JSR PC,$CBOMG8 MOV #HARDER,ERRQIO+Q.IOPL ;FILL IN MESSAGE START IN DPB( MOV #HARDLN,ERRQIO+Q.IOPL+2 ;AND LENGTH DIR$ #ERRQIO ;AND REPORT ERROR RTS PC ;AND RETURN.PAGE3.SBTTL REPORT SOFT ERROR;,;SUB TO REPORT SOFT ERRORR;;'SOFTNG: MOV #SOFTP1,R0 ;POINT TO BUFFERT6 MOV REAQIO+Q.IOPL+6,R1 ;GET HIGH PART OF BLOCK NUMBER CLR R2 ;INDICATE 0 SUPPRESSION JSR PC,$CBOMG ;CONVERT NUMBER MOVB #',,(R0)+ ;PUT IN A COMMAO6 MOV REAQIO+Q.IOPL+10,R1 ;GET LOW PART OF BLOCK NUMBER INC R2 ;MAKE THIS 6 DIGITS JSR PC,$CBOMG ;CONVERT IT MOV #SOFTP2,R0 ;POINT TO BUFFER MOV RPM1,R1 ;GET RPM1 CONTENTS JSR PC,$CBOMG ;CONVERT IT/ MOV REAQIO+Q.IOPL+6,R2 ;GET BLOCK NUMBER AGAINL, MOV REAQIO+Q.IOPL+10,R3 ;IN DOUBLE REGISTER2 DIV #240,R2 ;DIVIDE BY NUMBER OF BLOCKS/CYLINDER& MOV R2,R1 ;GET QUOTIENT (CYL NUMBER)$ MOV #1,R2 ;INDICATE NO SUPRESS 0'S MOV #SOFTP3,R0 ;POINT TO BUFFER JSR PC,$CBOMG ;CONVERT CYLT CLR R2 ;CLEAR UPPER REG.& DIV #32.,R2 ;CONVERT TO SURFACE, CYL" MOV R2,R1 ;QUOTIENT IS SURFACE #+ INCB HEADCT(R1) ;COUNT ERROR FOR THIS HEADT MOV #1,R2 ;NO SUPRESSION MOV #SOFTP4,R0! JSR PC,$CBOMG ;CONVERT SURFACE #A MOV R3,R1 ;NOW GET SECTOR #E MOV #SOFTP5,R0A JSR PC,$CBOMG8 MOV #SOFTER,ERRQIO+Q.IOPL ;FILL IN MESSAGE START IN DPB( MOV #SOFTLN,ERRQIO+Q.IOPL+2 ;AND LENGTH DIR$ #ERRQIO ;AND REPORT ERROR RTS PC ;AND RETURN.PAGE3.SBTTL RETRY 1 BLOCK AT A TIME;G;SUB TO RETRY 1 BLOCK AT A TIMEP; 9RETRY: MOV #READ1,REAQIO+Q.IOPL+2 ;CHANGE TO 1 BLOCK READQ/ MOV REAQIO+Q.IOPL+10,-(SP) ;SAVE BLOCK NUMBERSO MOV REAQIO+Q.IOPL+6,-(SP) MOV #32.,R4 ;SET UP LOOP COUNT&11$: MOV RPM1,R5 ;REMEMBER RPM1 COUNT DIR$ #REAQIO ;DO DISK READ TSTB IOSB ;DID READ GO OKO BPL 1$ ;BR IF OK! JSR PC,HARDNG ;ELSE REPORT ERRORN$1$: CMP RPM1,R5 ;HAS RPM1 CHANGED ? BEQ 2$ ;NO SKIP IT JSR PC,SOFTNG ;YES, REPORT IT.2$: INC REAQIO+Q.IOPL+10 ;BUMP READ BY 1 BLOCK5 ADC REAQIO+Q.IOPL+6 ;ADD CARRY TO UPPER BLOCK NUMBERV" SOB R4,11$ ;DO IT FOR 32. BLOCKS6 MOV #READSZ,REAQIO+Q.IOPL+2 ;RESET SIZE TO 32. BLOCKS6 MOV (SP)+,REAQIO+Q.IOPL+6 ;RESTORE DISK BLOCK NUMBERS MOV (SP)+,REAQIO+Q.IOPL+105 RTS PC ;AND RETURN.PAGE .SBTTL DATA AREASE;;QIO FOR MESSAGES TO TIO;$ERRQIO: QIOW$ IO.WVB,5,1,,,,<0,0,40>;R;NOW POSSIBLE MESSAGES;R!SOFTER: .ASCII /SOFT ERR AT BL# /OSOFTP1: .ASCII /N,NNNNNN RPM1=/PSOFTP2: .ASCII /NNNNNN CYL=/SOFTP3: .ASCII /NNNNNN SURF=/RSOFTP4: .ASCII /NNNNNN SECT=/PSOFTP5: .ASCII /NNNNNN/, SOFTLN=.-SOFTER;L!HARDER: .ASCII /HARD ERR AT BL# /;HARDP1: .ASCII /N,NNNNNN RPM1=/PHARDP2: .ASCII /NNNNNN CYL=/HARDP3: .ASCII /NNNNNN SURF=/AHARDP4: .ASCII /NNNNNN SECT=/EHARDP5: .ASCII /NNNNNN/  HARDLN=.-HARDER;MCDONE: .ASCII /READ CHECK FINISHED, RPM1 ORIGINAL CONTENTS RESTORED/S DONELN=.-DONE .EVENHISTO: .ASCII /HEAD / DHISTO1: .ASCII /0 1234567891123456789212345678931234567894123456789/ .ASCII /512345678961234567897*/ .EVEN;C;NOW THE DISK READ QIO; 5REAQIO: QIOW$ IO.RLB,2,1,,IOSB,,/;D!IOSB: .WORD 0,0 ;RETURNED STATUSN;N:HEADCT: .BYTE 0,0,0,0,0,0 ;STORE HEAD COUNT OF ERRORS HERE;SGETMCR: GMCR$ ;GET MCR DPB#GETDEV: GLUN$ 2,DEVICE ;GET LUN DPBH DEVICE: .BLKW 6 ;GET LUN BUFFER;D;MISC VARIABLESR; ,RPM1SV: .WORD 0 ;SAVE CONTENTS OF RPM1 HERE(BLOCKH: .WORD 2 ;HIGH ORDER MAX BLOCK #*BLOCKL: .WORD 1140 ;LOW ORDER MAX BLOCK002oy3py4qyxNx Oxss #<LBLOCK: .WORD 1000 ;LOW ORDER MAX BLOCK # FOR LAST AED READ4READBF: .BLKB READSZ ;BUFFER FOR READING 32. BLOCKS .END START,READSZ,0,0,0>/;D!IOSB: .WORD 0,0 ;RETURNED STATUSN;N:HEADCT: .BYTE 0,0,0,0,0,0 ;STORE HEAD COUNT OF ERRORS HERE;SGETMCR: GMCR$ ;GET MCR DPB#GETDEV: GLUN$ 2,DEVICE ;GET LUN DPBH DEVICE: .BLKW 6 ;GET LUN BUFFER;D;MISC VARIABLESR; ,RPM1SV: .WORD 0 ;SAVE CONTENTS OF RPM1 HERE(BLOCKH: .WORD 2 ;HIGH ORDER MAX BLOCK #*BLOCKL: .WORD 1140 ;LOW ORDER MAX BLOCKRPCOMP/-FP/PR,RPCOMP/-SP=RPCOMP/ TASK=...RP2LIBR=SYSRES:ROPRI=100STACK=64ASG=XX:1ASG=XX:2// .IDENT /MRHV01/ .SBTTL INTRO PAGE;@;THIS PROGRAM IS DESIGNED TO COMPARE TWO LARGE DISK DRIVES, I.E.A;AN AMPEX DM980 DRIVE, OR A FUJUTSU DRIVE EMULATING AN RM03 DRIVE ;IT WILL:;E;1 READ EACH DISK IN 32. BLOCK INCREMENTS (ONE FULL SURFACE CYLINDER);;2 COMPARE EACH BUFFER;;3 REPORT ANY DIFFERENCES;;NOTE NOTE NOTE;;; PROGRAM USES LUN 1 AND 2 FOR READS, THEY MUST BE ASSIGNED2; TO THE TWO REQUIRED DISKS BEFORE RUNNING PROGRAM;;;DEFINE SOME NEEDED VARIABLES;0READSZ=16.*1000 ;NUMBER OF BYTES IN 16. BLOCKS; ;G% .MCALL QIOW$,DIR$,EXIT$S,GMCR$,GLUN$S.PAGES.SBTTL MAIN LOOP;8-START: DIR$ #GETMCR ;SO WE RECALL THE CALLERR/ DIR$ #GETDEV ;SEE WHAT DRIVE WE^RE WORKING ONO/ DIR$ #GETDE2 ;SEE WHAT DRIVE WE^RE WORKING ON2& CMP DEVICE,#"DP ;IS THIS AN AED DISK? BEQ 110$ ;BR IF IT ISO CMP DEVIC2,#"DP ;IF NOT AN AED1" BNE 111$ ;SKIP BLOCK SIZE ADJUST/110$: SUB #80.,BLOCKL ;ADJUST BLOCK LOW FOR AEDP0111$: MOV #0,REAQIO+Q.IOPL+6 ;START AT BLOCK # 0 MOV #0,REAQIO+Q.IOPL+10+ MOV #0,REAQI2+Q.IOPL+6 ;START AT BLOCK # 0W MOV #0,REAQI2+Q.IOPL+10!REGO: DIR$ #REAQIO ;DO DISK READR TSTB IOSB ;DID READ GO OKL BPL 113$ ;BR IF OK! JSR PC,HARDNG ;ELSE REPORT ERRORG$113$: DIR$ #REAQI2 ;READ OTHER DISK! TSTB IOSB2 ;DID THIS READ GO OK; BPL READOK ;BR IF OK" JSR PC,HARDN2 ;REPORT OTHER ERROR#READOK: MOV #20*400,R0 ;COUNT TO R0P# MOV #READBF,R1 ;POINT TO 2 BUFFERSO MOV #READB2,R2 1$: CMP (R1)+,(R2)+ ;OK ?R BEQ 2$ ;BR IF SAME$ JSR PC,COMPNG ;REPORT COMPARE NO GO2$: SOB R0,1$ ;TRY MORE:COMPDN: ADD #16.,REAQIO+Q.IOPL+10 ;BUMP READ BY 16. BLOCKS8 ADC REAQIO+Q.IOPL+6 ;ADD CARRY TO UPPER WORD OF BLOCK #3 ADD #16.,REAQI2+Q.IOPL+10 ;BUMP READ BY 16. BLOCKS8 ADC REAQI2+Q.IOPL+6 ;ADD CARRY TO UPPER WORD OF BLOCK #, CMP BLOCKH,REAQIO+Q.IOPL+6 ;ARE WE AT END ? BNE REGOE% CMP BLOCKL,REAQIO+Q.IOPL+10 ;OF DISK0 BHI REGOR MOV #DONE,ERRQIO+Q.IOPL MOV #DONELN,ERRQIO+Q.IOPL+2 DIR$ #ERRQIO ;REPORT IT  EXIT$S ;EXIT SYSTEM.PAGEP.SBTTL SUBROUTINES.SBTTL REPORT HARD ERROR;R;SUB TO REPORT HARD ERRORA;+4HARDNG: MOVB #61,HARDDV ;CHANGE LUN NUMBER INDICATOR BR HARCON ;DO REST OF MESSAGEO4HARDN2: MOVB #62,HARDDV ;CHANGE LUN NUMBER INDICATOR$HARCON: MOV R0,-(SP) ;SAVE USED REGS MOV R1,-(SP)F MOV R2,-(SP)B MOV #HARDP1,R0 ;POINT TO BUFFER6 MOV REAQIO+Q.IOPL+6,R1 ;GET HIGH PART OF BLOCK NUMBER CLR R2 ;INDICATE 0 SUPPRESSION JSR PC,$CBOMG ;CONVERT NUMBER MOVB #',,(R0)+ ;PUT IN A COMMAE6 MOV REAQIO+Q.IOPL+10,R1 ;GET LOW PART OF BLOCK NUMBER INC R2 ;MAKE THIS 6 DIGITS JSR PC,$CBOMG ;CONVERT IT/ MOV REAQIO+Q.IOPL+6,R2 ;GET BLOCK NUMBER AGAINR, MOV REAQIO+Q.IOPL+10,R3 ;IN DOUBLE REGISTER2 DIV #240,R2 ;DIVIDE BY NUMBER OF BLOCKS/CYLINDER/ ;QUOTIENT (R2) = CYL, REM (R3)=BLOCK OF CYLV& MOV R2,R1 ;GET QUOTIENT (CYL NUMBER)$ MOV #1,R2 ;INDICATE NO SUPRESS 0'S MOV #HARDP2,R0 ;POINT TO BUFFER JSR PC,$CBOMG ;CONVERT CYLP CLR R2 ;FOR DIVIDE5 DIV #32.,R2 ;DIV BY BLOCKS/SURFACE QUOT = SURFACE #L MOV R2,R1 004wy5~y?yxx*;GET SURFACE # IN R1$ CLR R2 ;SUPRESS 0'S, ITS ONE DIGIT MOV #HARDP3,R0R! JSR PC,$CBOMG ;CONVERT SURFACE #B8 MOV #HARDER,ERRQIO+Q.IOPL ;FILL IN MESSAGE START IN DPB( MOV #HARDLN,ERRQIO+Q.IOPL+2 ;AND LENGTH DIR$ #ERRQIO ;AND REPORT ERROR MOV (SP)+,R2 ;RESTORE USED REGS MOV (SP)+,R1T MOV (SP)+,R0N RTS PC ;AND RETURN.PAGE .SBTTL REPORT COMPARE ERRORR;P;SUB TO REPORT COMPARE ERROR;O%COMPNG: MOV R0,-(SP) ;SAVE LOOP COUNT# MOV R1,-(SP) ;AND POINTERSE MOV R2,-(SP) MOV #COMPP1,R0 ;POINT TO BUFFER6 MOV REAQIO+Q.IOPL+6,R1 ;GET HIGH PART OF BLOCK NUMBER CLR R2 ;INDICATE 0 SUPPRESSION JSR PC,$CBOMG ;CONVERT NUMBER MOVB #',,(R0)+ ;PUT IN A COMMAM6 MOV REAQIO+Q.IOPL+10,R1 ;GET LOW PART OF BLOCK NUMBER INC R2 ;MAKE THIS 6 DIGITS JSR PC,$CBOMG ;CONVERT IT MOV #COMPP2,R0 ;POINT TO BUFFER/ MOV REAQIO+Q.IOPL+6,R2 ;GET BLOCK NUMBER AGAINR, MOV REAQIO+Q.IOPL+10,R3 ;IN DOUBLE REGISTER2 DIV #240,R2 ;DIVIDE BY NUMBER OF BLOCKS/CYLINDER& MOV R2,R1 ;GET QUOTIENT (CYL NUMBER)$ MOV #1,R2 ;INDICATE NO SUPRESS 0'S JSR PC,$CBOMG ;CONVERT CYLC CLR R2 ;FOR DIVIDE0 DIV #32.,R2 ;DIV BY BLOCKS/SURFACE QUOT=SURF # MOV R2,R1 ;MOVE SURFACE # ! CLR R2 ;SUPRESS 0 FOR SURFACE #E MOV #COMPP3,R0C& JSR PC,$CBOMG ;CONVERT SURFACE NUMBER) CLR R1 ;NOW CALC WORD NUMBER OF SURFACE 8 BIT #20,REAQIO+Q.IOPL+10 ;IS THIS 2ND HALF OF SURFACE ? BEQ 1$ ;BR IF NOT+$ ADD #20*400,R1 ;ELSE ACCOUNT FOR IT*1$: MOV #1,R2 ;NO 0 SUPRESSION FOR WORD ## ADD #20*400,R1 ;ADD MAX # WE CHECKM) SUB 4(SP),R1 ;SUB WHERE WE ARE IN BUFFER ASL R1 ;MAKE IT A BYTE OFFSETR MOV #COMPP4,R0' JSR PC,$CBOMG ;CONVERT WORD OF SURFACE=' MOV 2(SP),R1 ;GET WORD FROM FIRST DISKR MOV -2(R1),R1 MOV #COMPP5,R0M" JSR PC,$CBOMG ;CONVERT FIRST WORD% MOV (SP),R1 ;GET WORD FROM 2ND DISKW MOV -2(R1),R1 MOV #COMPP6,R0R* JSR PC,$CBOMG ;CONVERT WORD FROM 2ND DISK8 MOV #COMPER,ERRQIO+Q.IOPL ;FILL IN MESSAGE START IN DPB( MOV #COMPLN,ERRQIO+Q.IOPL+2 ;AND LENGTH DIR$ #ERRQIO ;AND REPORT ERROR MOV (SP)+,R2B MOV (SP)+,R1W MOV (SP)+,R0B RTS PC ;AND RETURN.PAGEY.SBTTL DATA AREASO;4;QIO FOR MESSAGES TO TIV; $ERRQIO: QIOW$ IO.WVB,5,1,,,,<0,0,40>; ;NOW POSSIBLE MESSAGES;1$COMPER: .ASCII /COMPARE ERR AT BL# /COMPP1: .ASCII /N,NNNNNN CYL=/COMPP2: .ASCII /NNNNNN SURF=/M!COMPP3: .ASCII /N @ BYTE OFFSET /RCOMPP4: .ASCII /NNNNNN /COMPP5: .ASCII /NNNNNN /COMPP6: .ASCII /NNNNNN/E COMPLN=.-COMPER;MHARDER: .ASCII /LUN #/#HARDDV: .ASCII /1 READ ERR AT BL# /EHARDP1: .ASCII /N,NNNNNN CYL=/HARDP2: .ASCII /NNNNNN SURF=/SHARDP3: .ASCII /N/ HARDLN=.-HARDER;A"DONE: .ASCII /READ CHECK FINISHED/ DONELN=.-DONE .EVEN;,;NOW THE DISK READ QIO;L5REAQIO: QIOW$ IO.RLB,1,1,,IOSB,,O6REAQI2: QIOW$ IO.RLB,2,1,,IOSB2,,;M!IOSB: .WORD 0,0 ;RETURNED STATUSR"IOSB2: .WORD 0,0 ;RETURNED STATUS;C;/GETMCR: GMCR$ ;GET MCR DPB#GETDEV: GLUN$ 1,DEVICE ;GET LUN DPBA#GETDE2: GLUN$ 2,DEVIC2 ;GET LUN DPBE DEVICE: .BLKW 6 ;GET LUN BUFFER DEVIC2: .BLKW 6 ;GET LUN BUFFER;R;MISC VARIABLESC;/(BLOCKH: .WORD 2 ;HIGH ORDER MAX BLOCK #*BLOCKL: .WORD 1140 ;LOW ORDER MAX BLOCK #<LBLOCK: .WORD 1000 ;LOW ORDER MAX BLOCK # FOR LAST AED READ4READBF: .BLKB READSZ ;BUFFER FOR READING 32. BLOCKS4READB2: .BLKB READSZ ;BUFFER FOR READING 32. BLOCKS .END STARTIOSB2: .WORD 0,0 ;RETURNED STATUS;C;/GETMCR: GMCR$ ;GET MCR DPB#GETDEV: GLUN$ 1,DEVICE ;GET LUN DPBA#GETDE2: GLUN$ 2,DEVIC2 ;GET LUN DPBE DEVICE: .BLKW 6 ;GET LUN BUFFER DE| s d(Uz[qU%005ypy4qyxNx OxssXXXXSYSYTICLTO```,~-DP-DPP\XfbZ bN Z#R$ ~ew ew --ӂ>:R312y&f fBЕ, XBr >B r   ,B1R&fwT AЕ,H A86r A r   A 5ee  AA AA Ad PR  COMPARE ERR AT BL# N,NNNNNN CYL=NNNNNN SURF=N @ BYTE OFFSET NNNNNN NNNNNN NNNNNNLUN #1 READ ERR AT BL# N,NNNNNN CYL=NNNNNN SURF=NREAD CHECK FINISHED $  (# )`005y~y?yxx*005ypy4qyxNx Oxss005y~y?yxx*005y6yqyxNx Oxss  *  + 23EC Ew 4   Е-   0@ rW e`fÊ    E |s d(U z[qUs DRSYSYSYSYTICL~TO```HSYSYSYSYTICL1 Rw Jw7 @7 >6 ~ e<w# "--_3ew  TЕ, Fp :f .vJ6Fd Е, #d  At Block Number N,NNNNNN Found NNNNNN At offset NNNNNNRead error at block Number N,NNNNNN <)006y7y8yxx*  *  + 23Er Ew 0t   Е-   0@ rW e`fÊ    E  w s ť ť 0BBpAaRPF/-FP/PR,RPFIND/-SP=RPFIND/ TASK=...RPFLIBR=SYSRES:ROPRI=100STACK=64ASG=SY:2// .TITLE RPFind .IDENT /MRHV01/ .SBTTL INTRO PAGE .LIST MEB;H;This program is designed to search a full rp disk to search for a given*;bit pattern of a given word of each block;;MCR>RPF XXX,YYY;3;WHERE: XXXXXX is the work one wishes to search for6; YYYYYY is the bye offset in the block to check;;;;$MASK: .word 0 ;mask for word search(OFFSET: .word 0 ;byte offset into block;; .MCALL QIOW$,DIR$,EXIT$S,GMCR$.PAGE.SBTTL THE CODE;;FIRST SET THINGS UP;I-START: DIR$ #GETMCR ;SO WE RECALL THE CALLERE/ MOV #GETMCR+G.MCRB+4,R0 ;POINT TO ASCII BUFFERa- JSR PC,$COTB ;CONVERT ASCII NUMBER TO BINARYp MOV R1,MASK ;save search masko! JSR PC,$COTB ;CONVERT 2nd numberE, MOV R1,OFFSET ;save byte offset into buffer;  ;NOW START SEEKING& CLR REAQIO+Q.IOPL+6 ;Start at block 0' CLR REAQIO+Q.IOPL+10 ;Start at block 0h1$: DIR$ #REAQIO ;read block ! TSTB IOSB ;Did the read go ok ?I BPL 2$ ;Br if it did JSR PC,ERROR ;report errorT BR 3$ ;and skip check: 2$: MOV OFFSET,R5 ;compare words ADD #READBF,R5M CMP (R5),MASK ;found the word ? BNE 3$ ;no such luck JSR PC,FOUND ;yes, report itM.3$: CMP REAQIO+Q.IOPL+6,#BLOCKH ;end of disk ? BNE 4$ ;no, go again, CMP REAQIO+Q.IOPL+10,#BLOCKL ;end of disk ? BNE 4$ ;no EXIT$S ;YES ALL DONEO>4$: ADD #1,REAQIO+Q.IOPL+10 ;can't use INC it doesnt set C bit ADC REAQIO+Q.IOPL+6 BR 1$ ;AND LOOPO.paged.sbttl Reporting Subroutines;i;SUB TO REPORT found wordp; #FOUND: MOV #P1,R0 ;POINT TO BUFFER 6 MOV REAQIO+Q.IOPL+6,R1 ;GET HIGH PART OF BLOCK NUMBER CLR R2 ;INDICATE 0 SUPPRESSION JSR PC,$CBOMG ;CONVERT NUMBER MOVB #',,(R0)+ ;PUT IN A COMMAI6 MOV REAQIO+Q.IOPL+10,R1 ;GET LOW PART OF BLOCK NUMBER INC R2 ;MAKE THIS 6 DIGITS JSR PC,$CBOMG ;CONVERT IT MOV #P2,R0 ;POINT TO BUFFERD MOV MASK,R1 ;GET mask word JSR PC,$CBOMG ;CONVERT IT MOV #P3,R0 ;POINT TO BUFFERA MOV OFFSET,R1 ;get offset# JSR PC,$CBOMG ;CONVERT byte offsetT5 MOV #FOUNDM,QIO+Q.IOPL ;FILL IN MESSAGE START IN DPB% MOV #FOUNDL,QIO+Q.IOPL+2 ;AND LENGTHO DIR$ #QIO ;AND REPORT ERRORA RTS PC ;AND RETURN;,;SUB TO REPORT Read errorV;'#ERROR: MOV #E1,R0 ;POINT TO BUFFER+6 MOV REAQIO+Q.IOPL+6,R1 ;GET HIGH PART OF BLOCK NUMBER CLR R2 ;INDICATE 0 SUPPRESSION JSR PC,$CBOMG ;CONVERT NUMBER MOVB #',,(R0)+ ;PUT IN A COMMAs6 MOV REAQIO+Q.IOPL+10,R1 ;GET LOW PART OF BLOCK NUMBER INC R2 ;MAKE THIS 6 DIGITS JSR PC,$CBOMG ;CONVERT IT5 MOV #REAERR,QIO+Q.IOPL ;FILL IN MESSAGE START IN 008y9y:yxNx OxssDPBS% MOV #REALEN,QIO+Q.IOPL+2 ;AND LENGTHI DIR$ #QIO ;AND REPORT ERROR  RTS PC ;AND RETURN.PAGE;.SBTTL DATA AREASB; ;DEFINE SOME NEEDED VARIABLESM;#READSZ=1000 ;READ ONE BLOCKR; ;MAX BLOCK #GBLOCKH=20BLOCKL=1137 ;THESE TAKEN FROM PUD OF DP DEVICE;;R;QIO FOR MESSAGES TO TIR;M!QIO: QIOW$ IO.WVB,5,1,,,,<0,0,40>V;A;NOW POSSIBLE MESSAGES;A!FOUNDM: .ASCII /At Block Number /TP1: .ASCII /N,NNNNNN Found /P2: .ASCII /NNNNNN At offset /P3: .ASCII /NNNNNN/S FOUNDL=.-FOUNDM;E;N,REAERR: .ASCII /Read error at block Number /E1: .ASCII /N,NNNNNN/; REALEN=.-REAERR .even;T;THE DISK READ QIO;O5REAQIO: QIOW$ IO.RLB,2,1,,IOSB,,R; !IOSB: .WORD 0,0 ;RETURNED STATUS1; GETMCR: GMCR$ ;GET MCR DPB;I;MISC VARIABLESF;M2READBF: .BLKB READSZ ;BUFFER FOR READING 1. BLOCK .END STARTPOSSIBLE MESSAGES;A!FOUNDM: .ASCII /At Block Number /TP1: .ASCII /N,NNNNNN Found /P2: .ASCII /NNNNNN At offset /P3: .ASCII /NNNNNN/S FOUNDRPFIX/-FP/PR,RPFIX/-SP=RPFIX/ TASK=...RPFLIBR=SYSRES:ROPRI=100STACK=64ASG=XX:2// .TITLE RPFIX .IDENT /MRHV01/ .SBTTL INTRO PAGE .LIST MEB;0;THIS PROGRAM IS DESIGNED TO REWRITE SURFACES OF);AN AMPEX DM980 DRIVE. IN ESSENCE IT WILL;!;1 READ ONE SURFACE OF 32. BLOCKS;;2 WRITE THOSE BLOCKS BACK;;NOTE NOTE NOTE;C; PROGRAM USES LUN 2 FOR READS, ASSIGN IT TO THE PROPER DISK BEFORE2; RUNNING PROGRAM 'REA ...RPC 2 DP2:' FOR EXAMPLE;;OPERATING PROCEEDURE;;MCR>RPF N,MMMMMM WHERE;; N=HIGH LOGICAL BLOCK NUMBER"; MMMMMM=LOW LOGICAL BLOCK NUMBER;I; ;DEFINE SOME NEEDED VARIABLEST;N0READSZ=32.*1000 ;NUMBER OF BYTES IN 32. BLOCKSBLOCKH=1 BLOCKL=175720; ;E .MCALL QIOW$,DIR$,EXIT$S,GMCR$.PAGE1.SBTTL THE CODE ;3;FIRST SET THINGS UP;T*START: DIR$ #GETMCR ;GET MCR COMMAND LINE6 MOV #GETMCR+G.MCRB+4,R0 ;BUMP POINTER TO COMMAND PART( JSR PC,$COTB ;CONVERT HIGH BLOCK NUMBER! CMP R2,#', ;TERMINATED ON "," ?I BNE SYNTER ;BR IF NOTR2 MOV R1,REAQIO+Q.IOPL+6 ;FILL IN HIGH BLOCK NUMBER+ JSR PC,$COTB ;NOW CONVERT LOW BLOCK NUMBER - CMP R2,#15 ;TERMINATED ON A CARRIAGE RETURN. BEQ 1$ ;IT'S OKB CMP R2,#33 ;OR AN ESCAPE BEQ 1$ ;THAT'S OK TOO' JMP SYNTER ;ANYTHING ELSE IS AN ERROR51$: MOV R1,REAQIO+Q.IOPL+10 ;FILL IN LOW BLOCK NUMBERD( TST REAQIO+Q.IOPL+6 ;CHECK HIGH BLOCK # BMI SYNTER ;CAN'T BE NEGATIVET* CMP REAQIO+Q.IOPL+6,#BLOCKH ;OR BE TO BIG3 BGT SYNTER ;IF HIGH BLOCK NUMBER TO BIG, AN ERRORE0 BLT 15$ ;IF LESS, DON'T CHECK LOW BLOCK NUMBER$ ;IF SAME, CHECK LOW BLOCK NUMBER< CMP REAQIO+Q.IOPL+10,#BLOCKL ;IS LOW BLOCK NUMBER TO HIGH ?! BHI SYNTER ;THAT'S AN ERROR TOOB(15$: DIR$ #REAQIO ;ALL OK, DO DISK READ TSTB IOSB ;DID READ GO BPL 10$ ;BR IF OK - MOV #READFA,ERRQIO+Q.IOPL ;ELSE REPORT ERRORW MOV #READLN,ERRQIO+Q.IOPL+2 DIR$ #ERRQIOI JMP EXIT110$: MOV #IO.WLB,REAQIO+Q.IOFN ;CHANGE TO A WRITEL DIR$ #REAQIO ;REWRITE IT TSTB IOSB ;DID WRITE GO ?B BPL EXITA- MOV #WRITFA,ERRQIO+Q.IOPL ;ELSE REPORT ERRORL MOV #WRITLN,ERRQIO+Q.IOPL+2 DIR$ #ERRQIOBEXIT: EXIT$S ;EXIT CPU;O"SYNTER: ;SYNTAX OR BLOCK # ERROR( MOV #SYNERR,ERRQIO+Q.IOPL ;REPORT ERROR MOV #SYNELN,ERRQIO+Q.IOPL+2 DIR$ #ERRQIOB BR EXIT ;AND EXIT1.PAGE .SBTTL DATA AREASA;R ;GET MCR DPB;R GETMCR: GMCR$M;#;D;QIO FOR MESSAGES TO TI ;R$ERRQIO: QIOW$ IO.WVB,5,1,,,,<0,0,40>;+;NOW POSSIBLE MESSAGES;=READFA: .ASCII /*** RPF FAILED TO READ 32. BLOCK SURFACE ***/E READLN=.-READFA .EVEN;O>WRITFA: .ASCII /*** RPF FAILED TO WRITE 32. BLOCK SURFACE ***/ WRITLN=.-WRITFA .EVEN00:y;yyxx*;U9SYNERR: .ASCII /*** RPF SYNTAX OR BLOCK NUMBER ERROR ***/I SYNELN=.-SYNERR .EVEN;#;NOW THE DISK READ QIO;R5REAQIO: QIOW$ IO.RLB,2,1,,IOSB,,R;A!IOSB: .WORD 0,0 ;RETURNED STATUSR;;;MISC VARIABLESA; 4READBF: .BLKB READSZ ;BUFFER FOR READING 32. BLOCKS .END START MESSAGES;=READFA: .ASCII /*** RPF FAILED TO READ 32. BLOCK SURFACE ***/E READLN=.-READFA .EVEN;O>WRITFA: .ASCII /*** RPF FAILED TO WRITE 32. BLOCK SURFACE ***/ WRITLN=.-WRITFA .EVEN|s d(Uz[qU$SYXXSYSYTICLTO```(. A ,@w A  whwr l/-f+-^&R ,zw$ * -z3l(hz)  *** RPF FAILED TO READ 32. BLOCK SURFACE ****** RPF FAILED TO WRITE 32. BLOCK SURFACE ****** RPF SYNTAX OR BLOCK NUMBER ERROR *** $(@00;yy:yxNx Oxss00;yyyxx*00;yy:yxNx Oxss00;y<y=yxx* w ~6 ť ť 0BBpAa RPS/-FP/PR,RPOSSEEK/-SP=RPOSSEEKLB:[1,1]EXEC.STB/ TASK=...RPSLIBR=SYSRES:ROPRI=100STACK=64ASG=SY:2// .TITLE RPFULL .IDENT /MRHV01/ .SBTTL INTRO PAGE .LIST MEB;1;THIS PROGRAM DOES OSCILLATING SEEKS ON RP DRIVES;;MCR>OSC XXX,YYY;I;WHERE: XXX,YYY ARE INNER & OUTER CYLINDER NUMBERS (OCTAL, 0 = FIRST CYL);;;DEFINE SOME NEEDED VARIABLES;READSZ=1000 ;READ ONE BLOCK; ;MAX BLOCK #BLOCKH=12BLOCKL=175720 ;THESE TAKEN FROM PUD OF DP DEVICE;;;3BLOCYL=32.*5 ;NUMBER OF BLOCKS PER AMPEX CYLINDER;$LOWBLO: .WORD 0,0 ;LOW BLOCK NUMBER%HIGBLO: .WORD 0,0 ;HIGH BLOCK NUMBERL;.;N .MCALL QIOW$,DIR$,EXIT$S,GMCR$..PAGEB.SBTTL THE CODEA;O;FIRST SET THINGS UP;P-START: DIR$ #GETMCR ;SO WE RECALL THE CALLER,/ MOV #GETMCR+G.MCRB+4,R0 ;POINT TO ASCII BUFFER=- JSR PC,$COTB ;CONVERT ASCII NUMBER TO BINARYB& MOV R1,R5 ;SAVE LOW CYLINDER FOR NOW+ JSR PC,$COTB ;CONVERT HIGH CYLINDER NUMBER ! MOV R1,R0 ;PUT HIGH CYL # IN R1, MUL #BLOCYL,R0 ;CONVERT TO ABS BLOCK NUMBER$ MOV R0,HIGBLO ;SAVE HIGH-ORDER PART$ MOV R1,HIGBLO+2 ;AND LOW-ORDER PART* MOV R00=y>y?yxNx Oxss5,R0 ;CONVERT LOW CYLINDER TO BLOCK MUL #BLOCYL,R0M MOV R0,LOWBLO MOV R1,LOWBLO+21$: ;NOW START SEEKING- MOV LOWBLO,REAQIO+Q.IOPL+6 ;PUT IN BLOCK #'S MOV LOWBLO+2,REAQIO+Q.IOPL+10 DIR$ #REAQIO ;READ LOW BLOCK0 MOV HIGBLO,REAQIO+Q.IOPL+6 ;PUT IN HIGH BLOCK # MOV HIGBLO+2,REAQIO+Q.IOPL+10 DIR$ #REAQIO ;READ HIGH BLOCKE BR 1$ ;AND LOOPT;G.PAGE .SBTTL DATA AREASL; ;N;NOW THE DISK READ QIO;M5REAQIO: QIOW$ IO.RLB,2,1,,IOSB,,N;O!IOSB: .WORD 0,0 ;RETURNED STATUSL;CGETMCR: GMCR$ ;GET MCR DPB;M;MISC VARIABLES;V2READBF: .BLKB READSZ ;BUFFER FOR READING 1. BLOCK .END STARTPL+6 ;PUT IN BLOCK #'S MOV LOWBLO+2,REAQIO+Q.IOPL+10 DIR$ #REAQIO ;READ LOW BLOCK0 MOV HIGBLO,REAQIO+Q.IOPL+6 ;PUT IN HIGH BLOCK # MOV HIGBLO+2,REAQIO+Q.IOPL+10 DIR$ #REAQIO ;READ HIGH BLOCKE BR 1$ ;AND LOOPT;G.PAGE .SBTTL DATA AREASL; ;N;NOW THE DISK READ QIO;M5REAQIO: QIOW$ IO.RLB,2,1,,IOSB,,N;O!IOSB: .WORD 0,0 ;"RPW/-FP/PR,RPOSWRITE/-SP=RPOSWRITELB:[1,1]EXEC.STB/ TASK=...RPWLIBR=SYSRES:ROPRI=100STACK=64ASG=SY:2// .TITLE RPFULL .IDENT /MRHV01/ .SBTTL INTRO PAGE .LIST MEB;>;THIS PROGRAM DOES OSCILLATING SEEKS ON RP DRIVES USING WRITES;;MCR>OSW XXX,YYY,HHH;I;WHERE: XXX,YYY ARE INNER & OUTER CYLINDER NUMBERS (OCTAL, 0 = FIRST CYL); HHH = HEAD NUMBER;;;DEFINE SOME NEEDED VARIABLES;READSZ=1000 ;READ ONE BLOCK; ;MAX BLOCK #BLOCKH=12BLOCKL=175720 ;THESE TAKEN FROM PUD OF DP DEVICE;;;3BLOCYL=32.*5 ;NUMBER OF BLOCKS PER AMPEX CYLINDER;$LOWBLO: .WORD 0,0 ;LOW BLOCK NUMBER%HIGBLO: .WORD 0,0 ;HIGH BLOCK NUMBERE;.;T .MCALL QIOW$,DIR$,EXIT$S,GMCR$L.PAGES.SBTTL THE CODE ;N;FIRST SET THINGS UP;X-START: DIR$ #GETMCR ;SO WE RECALL THE CALLER / MOV #GETMCR+G.MCRB+4,R0 ;POINT TO ASCII BUFFER - JSR PC,$COTB ;CONVERT ASCII NUMBER TO BINARYB& MOV R1,R5 ;SAVE LOW CYLINDER FOR NOW+ JSR PC,$COTB ;CONVERT HIGH CYLINDER NUMBER . MOV R1,R4 ;SAVE HIGH CYLINDER NUMBER FOR NOW JSR PC,$COTB ;CONVERT HEAD #S MOV R1,R3 ;SAVE HEAD # IN R3& MUL #32.,R3 ;CONVERT TO BLOCK OFFSET! MOV R4,R0 ;PUT HIGH CYL # IN R1, MUL #BLOCYL,R0 ;CONVERT TO ABS BLOCK NUMBER$ MOV R0,HIGBLO ;SAVE HIGH-ORDER PART$ MOV R1,HIGBLO+2 ;AND LOW-ORDER PART+ ADD R3,HIGBLO+2 ;ADD IN HEAD SELECT OFFSET; ADC HIGBLOI* MOV R5,R0 ;CONVERT LOW CYLINDER TO BLOCK MUL #BLOCYL,R0V MOV R0,LOWBLO MOV R1,LOWBLO+2 ADD R3,LOWBLO+2 ADC LOWBLOY% ;FIRST SAVE THE ORIGINAL CONTENTSC- MOV LOWBLO,REAQIO+Q.IOPL+6 ;PUT IN BLOCK #'SH MOV LOWBLO+2,REAQIO+Q.IOPL+10 DIR$ #REAQIO ;READ LOW BLOCK0 MOV HIGBLO,REAQIO+Q.IOPL+6 ;PUT IN HIGH BLOCK # MOV HIGBLO+2,REAQIO+Q.IOPL+100 MOV #READB2,REAQIO+Q.IOPL ;CHANGE TO 2ND BUFFER DIR$ #REAQIO ;READ HIGH BLOCKE6 MOV #IO.WLB,REAQIO+Q.IOFN ;CHANGE FUNCTION TO A WRITE1$: ;NOW START SEEKINGN- MOV LOWBLO,REAQIO+Q.IOPL+6 ;PUT IN BLOCK #'SM MOV LOWBLO+2,REAQIO+Q.IOPL+10. MOV #READBF,REAQIO+Q.IOPL ;AND BUFFER POINTER DIR$ #REAQIO ;WRITE LOW BLOCKL0 MOV HIGBLO,REAQIO+Q.IOPL+6 ;PUT IN HIGH BLOCK # MOV HIGBLO+2,REAQIO+Q.IOPL+10. MOV #READB2,REAQIO+Q.IOPL ;AND BUFFER POINTER DIR$ #REAQIO ;WRITE HIGH BLOCK BR 1$ ;AND LOOP;V.PAGE2.SBTTL DATA AREASN;T;N;NOW THE DISK READ QIO;E5REAQIO: QIOW$ IO.RLB,2,1,,IOSB,,T; !IOSB: .WORD 0,0 ;RETURNED STATUSN;GETMCR: GMCR$ ;GET MCR DPB;I;MISC VARIABLESV;W2READBF: .BLKB READSZ ;BUFFER FOR READING 1. BLOCK; 3READB2: .BLKB READSZ ;BUFFER FOR READING 2ND BLOCKV .END STARTO+Q.IOPL+6 ;PUT IN HIGH BLOCK # MOV HIGBLO+2,REAQIO+Q.IOPL+10. MOV #00@yAyByxx*|s d(U z[qU-s DRSYSYSYSYTICL~TO```SYSYSYSYTICL1De W!.  !77 ppw 7 .)"RPR/-FP/PR,RPRANSEEK/-SP=RPRANSEEK/ TASK=...RPRLIBR=SYSRES:ROPRI=100STACK=64ASG=SY:2// .TITLE RPRANSEEK .IDENT /MRHV01/ .SBTTL INTRO PAGE .LIST MEB;:;THIS PROGRAM IS DESIGNED TO DO RANDOM SEEKS ON AN RP DISK;;;DEFINE SOME NEEDED VARIABLES;READSZ=1000 ;READ ONE BLOCKBLOCKH=0&CYLMAX=823. ;MAXIMUM CYLINDER NUMBER;;; .MCALL QIOW$,DIR$,EXIT$S,GMCR$.PAGE.SBTTL THE CODE;;FIRST SET THINGS UP;-START: DIR$ #GETMCR ;SO WE RECALL THE CALLER< MOV #START,R5 ;POINT PSEUDO RANDOM POINTER TO START OF CODE3REGO: ADD (R5)+,R4 ;ADD SOME TO RANDOM BLOCK NUMBERA! INC R4 ;JUST IN CASE WE GOT A 0N! CMP R5,#END ;PAST END OF CODE ?G BLT 1$ ;BRANCH IF NOTD" MOV #START,R5 ;ELSE RESET POINTER+1$: TST R4 ;DID BLOCK NUMBER GO NEGATIVE ?  BGT 2$ ;BR IF NOTC NEG R4 ;FUDGE THINGS#2$: CMP R4,#CYLMAX ;IS IT TOO BIG ?C BLT 3$ ;BR IF OK SUB #CYLMAX,R4 ;TAKE SOME OFF BR 2$ ;AND CHECK AGAIN'3$: MOV R4,R0 ;CONVERT TO BLOCK NUMBERL CLR R1E MUL #160,R0< MOV R1,REAQIO+Q.IOPL+10 ;FILL IN BLOCK NUMBER IN IO REQUEST MOV R0,REAQIO+Q.IOPL+6D00ByCxCyDyNx Oxss DIR$ #REAQIO ;DO DISK READ BR REGO ;AND DO IT AGAIN;,.PAGEP.SBTTL DATA AREAS;T; ;NOW THE DISK READ QIO;R5REAQIO: QIOW$ IO.RLB,2,1,,IOSB,, ;N!IOSB: .WORD 0,0 ;RETURNED STATUSN;RGETMCR: GMCR$ ;GET MCR DPB;M;MISC VARIABLES ;2READBF: .BLKB READSZ ;BUFFER FOR READING 1. BLOCKEND: ;END OF CODE POINTER .END STARTONVERT TO BLOCK NUMBERL CLR R1E MUL #160,R0< MOV R1,REAQIO+Q.IOPL+10 ;FILL IN BLOCK NUMBER IN IO REQUEST MOV R0,REAQIO+Q.IOPL+6D .TITLE RPRANSEEK .IDENT /MRHV01/ .SBTTL INTRO PAGE .LIST MEB;:;THIS PROGRAM IS DESIGNED TO DO RANDOM SEEKS ON AN RP DISK;;;DEFINE SOME NEEDED VARIABLES;READSZ=1000 ;READ ONE BLOCKBLOCKH=0=BLOMAX=32000. ;MAXIMUM BLOCK # (NOT WHOLE DISK, BUT ENOUGH);; .MCALL QIOW$,DIR$,EXIT$S,GMCR$.PAGE.SBTTL THE CODE;;FIRST SET THINGS UP;-START: DIR$ #GETMCR ;SO WE RECALL THE CALLER< MOV #START,R5 ;POINT PSEUDO RANDOM POINTER TO START OF CODE3REGO: ADD (R5)+,R4 ;ADD SOME TO RANDOM BLOCK NUMBERH! INC R4 ;JUST IN CASE WE GOT A 0B! CMP R5,#END ;PAST END OF CODE ?D BLT 1$ ;BRANCH IF NOTI" MOV #START,R5 ;ELSE RESET POINTER+1$: TST R4 ;DID BLOCK NUMBER GO NEGATIVE ?L BGT 2$ ;BR IF NOT  NEG R4 ;FUDGE THINGS#2$: CMP R4,#BLOMAX ;IS IT TOO BIG ?C BLT 3$ ;BR IF OK SUB #BLOMAX,R4 ;TAKE SOME OFF BR 2$ ;AND CHECK AGAIN?3$: MOV R4,REAQIO+Q.IOPL+10 ;FILL IN BLOCK NUMBER IN IO REQUESTR MOV #0,REAQIO+Q.IOPL+6  DIR$ #REAQIO ;DO DISK READ BR REGO ;AND DO IT AGAIN;D.PAGEK.SBTTL DATA AREAS;;T; ;NOW THE DISK READ QIO;E5REAQIO: QIOW$ IO.RLB,2,1,,IOSB,,V;T!IOSB: .WORD 0,0 ;RETURNED STATUS ; GETMCR: GMCR$ ;GET MCR DPB;;MISC VARIABLESO;2READBF: .BLKB READSZ ;BUFFER FOR READING 1. BLOCKEND: ;END OF CODE POINTER .END STARTR4 ;TAKE SOME OFF BR 2$ ;AND CHECK AGAIN?3$: MOV R4,REAQIO+Q.IOPL+10 ;FILL IN BLOCK NUMBER IN IO REQUESTR MOV #0,REAQIO+Q.IOPL+6  DIR$ #REAQIO ;DO DISK READ BR REGO ;A|s d(Uz[qUSYSYSYSYTICLTO``` E @p7w@p7w2.  J)00DyEyFyxx* w \u ť ť 0BBpAa|s d(Uz[qUSYSYSYSYTICLTO```PV E D Cp p7w`w @p7w`w nj6\XJ64x>t:,6d&`"6 L) w s ť ť 0BBpAa810 ! PROGRAM TO CONVERT RP03 REGISTERS TO ACTUAL BLOCK #.20 ! AND THEN BACK TO AED CYL, HEAD AND SECTOR;21 ! WILL READ DATA FROM RP0ER.RPT, RP1ER.RPT AND RP2ER.RPT!25 DIM A$[6],B$[62]V,SS(5),CS(51)26 OPEN #4, "SEEK.RPT/WR"/27 OPEN #3, "DP0ER.RPT/RO" : IF END #3 GOTO 250;28 PRINT #4 "ERROR REPORT FOR DP0 ";DDAT$();" AT ";TIM$())29 LX=0 : FOR I=1 TO 5 : SS(I)=0 : NEXT I#30 FOR I=1 TO 51 : CS(I)=0 : NEXT I31 DA=0 : CA=032 INPUT LINE #3,B$P33 IF POS(B$,"LOGGED")>0 THEN PRINT #4 : PRINT00FzGzyDyNx Oxss #4, SEG$(B$,11,34);SEG$(B$,41,60)434 IF SBS$(B$,9,4)="RPCA" THEN CA=OCT(SBS$(B$,25,6))435 IF SBS$(B$,9,4)="RPDA" THEN DA=OCT(SBS$(B$,25,6)):36 IF SBS$(B$,9,8)="VOLUME L" THEN PRINT #4 SBS$(B$,9,30)637 IF SBS$(B$,9,4)="RPDS" THEN PRINT #4 SBS$(B$,9,40)638 IF SBS$(B$,9,4)="RPM1" THEN PRINT #4 SBS$(B$,9,40)739 IF SBS$(B$,12,4)="K NA" THEN PRINT #4 SBS$(B$,9,40)S740 IF SBS$(B$,12,4)="K UI" THEN PRINT #4 SBS$(B$,9,40)1641 IF SBS$(B$,1,4)="RETR" THEN PRINT #4 SBS$(B$,1,30)'42 IF SBS$(B$,1,4)="VECT" THEN GOTO 50, 45 GOTO 32<50 SU=INT(DA/256) : ! CALCULATE SURFACE (0 = FIRST SURFACE)655 SO=INT((DA-SU*256)/16) : ! CALCULATE CURRENT SECTORB60 SE=DA-SU*256-SO*16 : ! CALCULATE ERROR SECTOR (0=FIRST SECTOR)570 PRINT #4 "RP CYL","OCT. = ";OCT$(CA)," DEC. = ";CA$580 PRINT #4 "RP SUR","OCT. = ";OCT$(SU)," DEC. = ";SU$590 PRINT #4 "RP SEC","OCT. = ";OCT$(SE)," DEC. = ";SEB100 BN=CA*200+SU*10+SEA110 PRINT #4 "BLOCK #","OCT. = ";OCT$(BN/8);OCT$(BN-8*INT(BN/8)),S120 PRINT #4 " DEC. = ";BN130 CY=INT(BN/160)140 SU=INT((BN-CY*160)/32)2141 SS(SU+1)=SS(SU+1)+1 : ! COUNT A SURFACE ERRORB143 CS(INT(CY/16+1))=CS(INT(CY/16+1))+1 : ! COUNT A CYLINDER ERROR150 SE=BN-CY*160-SU*326170 PRINT #4 "SM CYL","OCT. = ";OCT$(CY)," DEC. = ";CY6180 PRINT #4 "SM SUR","OCT. = ";OCT$(SU)," DEC. = ";SU6190 PRINT #4 "SM SEC","OCT. = ";OCT$(SE)," DEC. = ";SEA195 LX=LX+1 : IF LX=4 THEN PRINT #4 : PRINT #4 : PRINT #4 : LX=0 200 GOTO 31" 250 CLOSE 39251 PRINT #4 : PRINT #4, CHR$(12);"SURFACE","# OF ERRORS"3)252 PRINT : PRINT "SURFACE","# OF ERRORS")253 FOR I=1 TO 5254 PRINT #4, I-1,SS(I)A255 PRINT I-1,SS(I) : SS(I)=0C 256 NEXT I1257 PRINT #4 : PRINT #4, "CYLINDER","# OF ERRORS"S*258 PRINT : PRINT "CYLINDER","# OF ERRORS"259 FOR I=1 TO 5186260 PRINT FRMT$(I*16-16,4);" > ";FRMT$(I*16-1,4),CS(I):261 PRINT #4, FRMT$(I*16-16,4);" > ";FRMT$(I*16-1,4),CS(I) 262 NEXT I263 OPEN #3, "DP1ER.RPT/RO" 270 IF END #3 THEN 300280 PRINT #4, CHR$(12)<282 PRINT #4 "ERROR REPORT FOR DP1 ";DDAT$();" AT ";TIM$() 290 GOTO 29N 300 CLOSE 3#9301 PRINT #4 : PRINT #4, CHR$(12);"SURFACE","# OF ERRORS"5)302 PRINT : PRINT "SURFACE","# OF ERRORS"5303 FOR I=1 TO 5304 PRINT #4, I-1,SS(I)O305 PRINT I-1,SS(I) : SS(I)=0E 306 NEXT I1307 PRINT #4 : PRINT #4, "CYLINDER","# OF ERRORS")*308 PRINT : PRINT "CYLINDER","# OF ERRORS"309 FOR I=1 TO 51>6310 PRINT FRMT$(I*16-16,4);" > ";FRMT$(I*16-1,4),CS(I):311 PRINT #4, FRMT$(I*16-16,4);" > ";FRMT$(I*16-1,4),CS(I) 312 NEXT I315 OPEN #3, "DP2ER.RPT/RO"A320 IF END #3 THEN 350330 PRINT #4 CHR$(12)<332 PRINT #4 "ERROR REPORT FOR DP2 ";DDAT$();" AT ";TIM$() 340 GOTO 29N 350 CLOSE 3#9351 PRINT #4 : PRINT #4, CHR$(12);"SURFACE","# OF ERRORS"0)352 PRINT : PRINT "SURFACE","# OF ERRORS"0353 FOR I=1 TO 5354 PRINT #4, I-1,SS(I)O355 PRINT I-1,SS(I) : SS(I)=0E 356 NEXT I1357 PRINT #4 : PRINT #4, "CYLINDER","# OF ERRORS")*358 PRINT : PRINT "CYLINDER","# OF ERRORS"359 FOR I=1 TO 51>6360 PRINT FRMT$(I*16-16,4);" > ";FRMT$(I*16-1,4),CS(I):361 PRINT #4, FRMT$(I*16-16,4);" > ";FRMT$(I*16-1,4),CS(I) 362 NEXT I 363 CLOSE 364 EXIT ";DDAT$();" AT ";TIM$() 340 GOTO 29N 350 CLOSE 3#9351 PRINT #4 : PRINT #4, CHR$(12);"SURFACE","# OF ERRORS"0)352 PRINT : PRINT "SURFACE","# OF ERRORS"0353 FOR I=1 TO 5354 PRINT #4, I-1,SS(I)O355 PRINT I-1,SS(I) : SS(I)=0E 356 NEXT I1357 PRINT #4 : PRINT #4, "CYLINDER","# OF ERRORS")*358 PRINT : PRINT "CYLINDER","# OF ERRORS"359 FOR I=1 TO 51>6360 PRINT FRMT$(I*16-16,4);" > ";FRMT$(I*16-1,4),CS(I):361 PRINT #4, FRMT$(I*16-16,$10 ! PROGRAM TO LIST SUMMARY REPORTS20 DIM A$[132]V#30 OPEN #4, "SUMMARY.RPT/WR/LN:132" 50 OPEN #3, "DKER.RPT/RO/LN:132" 55 GOSUB 1000!60 OPEN #3, "DP0ER.RPT/RO/LN:132" 65 GOSUB 1000!70 OPEN #3, "DP1ER.RPT/RO/LN:132" 75 GOSUB 1000!80 OPEN #3, "DP2ER.RPT/RO/LN:132" 85 GOSUB 1000!90 OPEN #3, "MEMER.RPT/RO/LN:132" 95 GOSUB 1000#100 OPEN #3, "MISCER.RPT/RO/LN:132"105 GOSUB 1000!110 OPEN #3, "MTER.RPT/RO/LN:132"115 GOSUB 1000!120 OPEN #3, "MMER.RPT/RO/LN:132"125 GOSUB 1000!00GzH zI zK zx*130 OPEN #3, "DRER.RPT/RO/LN:132"P135 GOSUB 1000 140 CLOSE 150 EXIT M$1000 ! SUB TO PROCESS SUMMARY REPORT1005 IF END #3 THEN 11001010 INPUT LINE #3, A$%1015 IF POS(A$,"SUMMARY")<1 THEN 1010O1020 PRINT #4,CHR$(12)1030 INPUT LINE #3,A$1035 PRINT #4,A$1040 GOTO 1030 1100 CLOSE 3 1105 RETURN , "MEMER.RPT/RO/LN:132" 95 GOSUB 1000#100 OPEN #3, "MISCER.RPT/RO/LN:132"105 GOSUB 1000!110 OPEN #3, "MTER.RPT/RO/LN:132"115 GOSUB 1000!120 OPEN #3, "MMER.RPT/RO/LN:132"125 GOSUB 1000!10 ! PROGRAM TO TEST TERMINALS,20 ! WILL SEND SINGLE CHARACTERS OR MULTIPLEK21 INPUT "THIS PROGRAM MUST EXECUTE UNDER UIC [1,1] IF NOT, STOP ME NOW";AA25 ON ERROR GOTO 40026 IF END THEN 40030 DIM A$[80]V,B$[80]V,DV$[4]340 INPUT "TEST TERMINAL (DDNN) 4 DIGITS, NO : ",DV$=42 B=0 : CALL "SPAWNB" ("TER "+DV$+":/LOCALCOPY/NONEWLINE",B)50 OPEN #3,DV$+":/LN:80/MO"65 PRINT CHR$(11)66 INPUT "LINE TO SEND",A$67 NC=0(70 INPUT "NUMBER OF TIMES TO REPEAT ",NC80 FOR ZZ=1 TO NC90 PRINT #3,CHR$(22);A$M100 INPUT LINE #3, B$!104 IF B$<>A$ GOTO 110105 IF NC>1 GOTO 155110 LL=0120 FOR KK=1 TO LEN(B$)E125 CH=ASC(SBS$(B$,KK,1)) 130 PRINT OCT$(CH);" ";O131 IF CH<64 THEN PRINT " ";132 IF CH<8 THEN PRINT " ";'133 LL=LL+1 : IF LL < 20 THEN GOTO 140N135 LL=0 : PRINT : 140 NEXT KK" 145 PRINT 150 PRINT B$ 155 NEXT ZZ 160 CLOSE 8300 CALL "SPAWNB" ("TER "+DV$+":/NOLOCALCOPY/NEWLINE",B) 310 GOTO 42N8400 CALL "SPAWNB" ("TER "+DV$+":/NOLOCALCOPY/NEWLINE",B) 410 STOP 0 PRINT #10 ! PROGRAM TO TEST TERMINALS,20 ! WILL SEND SINGLE CHARACTERS OR MULTIPLE30 DIM A$[80]V,DV$[4]340 INPUT "TEST TERMINAL (DDNN) 4 DIGITS, NO : ",DV$50 OPEN #3,DV$+":/LN:80/WR"60 INPUT "CHARACTER TO SEND",A$070 INPUT "TOTAL NUMBER OF CHARACTERS TO SEND",NC.80 FOR I=1 TO 79 : A$=A$+SBS$(A$,1,1) : NEXT I90 IF NC<80 GOTO 120100 PRINT #3,A$; : BREAK 110 NC=NC-80 115 GOTO 90120 PRINT #3,SBS$(A$,1,NC) 130 GOTO 70|@ AA(U z[qU   DRSYSYSYSYTICL~Oг ````TSYSYSYSYTICL`11 >wD, MCR      ̋$ ww17  7  77xe$ jhA  P w 00KzzyDyNx Oxss( Xw  wV  %1.  $ 7 0    pp / wXWaťzW0ť9WAťZw 0 XwZXVw DB@ &f&f P9 . b $ 7ע1 J !OO0 6 3ԕ !+ e7 z-xt  j -d ZV!Q!OO0 h   3"&,LB0:[1,2]CLI.HLP"@ E[1,2]QIOSYM.MSG The following commands and/or switches are available For more information, type AID followed by keywords A keyword was incorrect or not unique Please try again or refer to the users guideVx&$y<TOVV4) w +*) 5* 0w+46l000Lz zI zK zx*1 ASCiiA Here are the octal values for the ASCII character set. Most IASF functions requiring numerical values for characters use octal ASCII. L 000 NUL 020 DLE 040 SPA 060 0 100 @ 120 P 140 ` 160 pL 001 SOH 021 DC1 041 ! 061 1 101 A 121 Q 141 a 161 qL 002 STX 022 DC2 042 " 062 2 102 B 122 R 142 b 162 rL 003 ETX 023 DC3 043 # 063 3 103 C 123 S 143 c 163 sL 004 EOT 024 DC4 044 $ 064 4 104 D 124 T 144 d 164 tL 005 ENQ 025 NAK 045 % 065 5 105 E 125 U 145 e 165 uL 006 ACK 026 SYN 046 & 066 6 106 F 126 V 146 f 166 vL 007 BEL 027 ETB 047 ' 067 7 107 G 127 W 147 g 167 wL 010 BS 030 ETB 050 ( 070 8 110 H 130 X 150 h 170 xL 011 HT 031 EM 051 ) 071 9 111 I 131 Y 151 i 171 yL 012 LF 032 SUB 052 * 072 : 112 J 132 Z 152 j 172 zL 013 VT 033 ESC 053 + 073 ; 113 K 133 [ 153 k 173 {L 014 FF 034 FS 054 , 074 < 114 L 134 \ 154 l 174 |L 015 CR 035 GS 055 - 075 = 115 M 135 ] 155 m 175 }L 016 SO 036 RS 056 . 076 > 116 N 136 ^ 156 n 176 ~N 017 SI 037 US 057 / 077 ? 117 O 137 _ 157 o 177 DEL5 See also AID ASCII DECIMAL and AID ASCII HEXADECIMAL3 2 DECIMAL2? Here are the decimal values for the ASCII character set. EDT3 functions use decimal ASCII. KL 000 NUL 016 DLE 032 SPA 048 0 064 @ 080 P 096 ` 112 pL 001 SOH 017 DC1 033 ! 049 1 065 A 081 Q 097 a 113 qL 002 STX 018 DC2 034 " 050 2 066 B 082 R 098 b 114 rL 003 ETX 019 DC3 035 # 051 3 067 C 083 S 099 c 115 sL 004 EOT 020 DC4 036 $ 052 4 068 D 084 T 100 d 116 tL 005 ENQ 021 NAK 037 % 053 5 069 E 085 U 101 e 117 uL 006 ACK 022 SYN 038 & 054 6 070 F 086 V 102 f 118 vL 007 BEL 023 ETB 039 ' 055 7 071 G 087 W 103 g 119 wL 008 BS 024 ETB 040 ( 056 8 072 H 088 X 104 h 120 xL 009 HT 025 EM 041 ) 057 9 073 I 089 Y 105 i 121 yL 010 LF 026 SUB 042 * 058 : 074 J 090 Z 106 j 122 zL 011 VT 027 ESC 043 + 059 ; 075 K 091 [ 107 k 123 {L 012 FF 028 FS 044 , 060 < 076 L 092 \ 108 l 124 |L 013 CR 029 GS 045 - 061 = 077 M 093 ] 109 m 125 }L 014 SO 030 RS 046 . 062 > 078 N 094 ^ 110 n 126 ~Q 015 SI 031 US 047 / 063 ? 079 O 095 _ 111 o 127 DEL 9 2 HEXADECIMAL9B Here are the hexadecimal values for the ASCII character set. VMS" functions use hexadecimal ASCII. A 00 NUL 10 DLE 20 SPA 30 0 40 @ 50 P 60 ` 70 p{A 01 SOH 11 DC1 21 ! 31 1 41 A 51 Q 61 a 71 q A 02 STX 12 DC2 22 " 32 2 42 B 52 R 62 b 72 r3A 03 ETX 13 DC3 23 # 33 3 43 C 53 S 63 c 73 s8A 04 EOT 14 DC4 24 $ 34 4 44 D 54 T 64 d 74 t3A 05 ENQ 15 NAK 25 % 35 5 45 E 55 U 65 e 75 uA 06 ACK 16 SYN 26 & 36 6 46 F 56 V 66 f 76 vA 07 BEL 17 ETB 27 ' 37 7 47 G 57 W 67 g 77 w3A 08 BS 18 ETB 28 ( 38 8 48 H 58 X 68 h 78 x3A 09 HT 19 EM 29 ) 39 9 49 I 59 Y 69 i 79 y3A 0A LF 1A SUB 2A * 3A : 4A J 5A Z 6A j 7A z3A 0B VT 1B ESC 2B + 3B ; 4B K 5B [ 6B k 7B {3A 0C FF 1C FS 2C , 3C < 4C L 5C \ 6C l 7C |3A 0D CR 1D GS 2D - 3D = 4D M 5D ] 6D m 7D }3A 0E SO 1E RS 2E . 3E > 4E N 5E ^ 6E n 7E ~3C 0F SI 1F US 2F / 3F ? 4F O 5F _ 6F o 7F DEL 48 H 58 X 68 h 78 x3A 09 HT 19 EM 00M!zN#zO$zyNx Oxss1 ASND The ASN command reassigns reads and writes to/from the Null handlerF NL: to files. (Writes to NL: normally just dissappear, Reads from NL:. normally return a status of end of file, ^-Z) E The ASN command lets one capture output from a program that normallyF only goes to TI for purposes of documentation. It also can be used toE create the equivalent of an indirect command file for programs (such6 as ZAP,) which do not support indirect command files. B MCR>ASN {dv:[n,m}}FILENAME.TYP=IN :Change reads to specified fileD MCR>ASN {dv:[n,m]}FILENAME.TYP=OUT :Change writes to specified file L0 MCR>ASN =IN :Close Input file. Input file is& :also closed on EOF or if a pro-& :gram sends a CLOSE I/O request. p0 MCR>ASN =OUT :Close Output file. Output file$ :is also closed if any program! :sends a CLOSE I/O request.a tE Note that ASN is very dumb and does no syntax checking, and does nott report ony errors.mand files. B MCR>ASN {dv:[n,m}}FILENAME.TYP=1 ATTO$ Read and/or change file attributes S ATT filespec[/SW][:nn:nn...] switches are:7 /AT:nnn:val:val...=Update attributes, starting withA! word nnn, and successivelyG /HE = this help textH8 /UP = Update a locked file. Clears the locked bit, and@ copies the file size into the EOF and HI block@ indicators. FFBY set to 1000, RSIZ set to 10004 /LI = List out attribute and statistic informationN MAY CONFLICT"* WITH '/AT', AND SHOULD BE R(0 lqqqqqqqqqqqqqqk lqqqqqqqqqqqqqqwqqqqqqqqqqqqqqwqqqqqqqqqqqqqqwqqqqqqqqqqqqqqkW x x x x x x xW x ^ x x GOLD x HELP x PF3 x PF4 xo x x x x x x x xW x x tqqqqqqqqqqqqqqnqqqqqqqqqqqqqqnqqqqqqqqqqqqqqnqqqqqqqqqqqqqquO tqqqqqqqqqqqqqqu x x x x xqO x x x 7 x 8 x 9 x - x o x x x x x x x x O x V x tqqqqqqqqqqqqqqnqqqqqqqqqqqqqqnqqqqqqqqqqqqqqnqqqqqqqqqqqqqqu W x x x x x x x O tqqqqqqqqqqqqqqu x 4 x 5 x 6 x , x o x x x x x x x O x x tqqqqqqqqqqqqqqnqqqqqqqqqqqqqqnqqqqqqqqqqqqqqnqqqqqqqqqqqqqqu O x qq> x x x x x x W x x x 1 x 2 x 3 x x g tqqqqqqqqqqqqqqu x x x x x O x x tqqqqqqqqqqqqqqvqqqqqqqqqqqqqqnqqqqqqqqqqqqqqu ENTER xxO x x x x x x W x [][:][] WHERE: - OR / - ANY VALID FILES-11 DIRECTORY DEVICE - <0-7>6 - ANY COMBINATION OF THE FOLLOWING SWITCHES:8 /OVR - OVERRIDE USE OF MANUFACTURES BAD SECTOR FILE /LI - LIST ALL BAD BLOCKS% /MAN - ENTER BAD BLOCKS MANUALLY5 /UPD - UPDATE EXISTING BAD BLOCK DESCRIPTOR FILE7 /CSR=XXXXXX - CHANGE CSR ADDRESS (STANDALONE ONLY)7 /VEC=XXX - CHANGE VECTOR ADDRESS (STANDALONE ONLY)A. /WCHK - SET WRITE CHECK (STANDALONE ONLY)2 /NOWCHK - CLEAR WRITE CHECK (STANDALONE ONLY)( - OR = 'BAD' WILL PRINT THE NUMBER OF BAD BLOCKS FOUND (IN DECIMAL):% WHEN THE END OF THE DISK IS REACHED.RES BAD SECTOR FILE /LI - LIST ALL BAD BLOCKS% /MAN - ENTER BAD BLOCKS MANUALLY5 /UPD - UPDATE EXISTING BAD BLOCK DESCRIPTOR FILE7 /CSR=XXXXXX - CHANGE CSR ADDRESS (STANDALONE ONLY)7 /VEC=XXX - CHANGE VECTOR ADDRESS (STANDALONE %5A %D%8A %D - User storage overflow %5A %D%8A %D - Unrecognized statement - check spelling %5A %D%8A %D - Illegal goto or gosub %5A %D%8A %D - Illegal character in or terminating input line %5A %D%8A %D - Return without gosub %5A %D%8A %D - Badly formed subscript %5A %D%8A %D - Subscript out of range %5A %D%8A %D - Mismatched parentheses %5A %D%8A %D - Illegal let statement %5A %D%8A %D - Illegal relational operator in if %5A %D%8A %D - Illegal if %5A %D%8A %D - Illegal print %5A %D%8A %D - Device or file error %D on input %5A %D%8A %D - Bad dimension %5A %D%8A %D - Not enough room in storage for the array %5A %D%8A %D - Badly formed define %5A %D%8A %D - Illegal line number or dimension value %5A %D%8A %D - Dim of previously used variable name %5A %D%8A %D - Bad variable in input list %5A %D%8A %D - Bad variable in read list %5A %D%8A %D - Out of data during read %5A %D%8A %D - Bad data in a data statement %5A %D%8A %D - Illegal for statement %5A %D%8A %D - No next without matching for %5A %D%8A %D - Next without for %5A %D%8A %D - Unmatched quotes in statement %5A %D%8A %D - External function not properly set up %5A %D%8A %D - Badly formed expression %5A %D%8A %D - Error in command string interpreter %5A %D%8A %D - Sbs function error %5A %D%8A %D - Syntax error in function %5A %D%8A %D - Syntax error in open 00Q1z#zO$zyNx Oxss%5A %D%8A %D - Syntax error in close %5A %D%8A %D - Invalid file number %5A %D%8A %D - End of file error %5A %D%8A %D - FCS error %D during close %5A %D%8A %D - FCS error %D during open %5A %D%8A %D - Error during call processing %5A %D%8A %D - Error in call argument list %5A %D%8A %D - Error in store during called routine %5A %D%8A %D - Syntax error or lun in use in library open %5A %D%8A %D - FCS error %D during library open or 1st read %5A %D%8A %D - Syntax error in sleep command %5A %D%8A %D - Syntax error in wait command %5A %D%8A %D - Timeout error - you waited too long to type %5A %D%8A %D - Priority error %5A %D%8A %D - Basic program file error %D %5A %D%8A %D - File access mode error (seq/ran) %5A %D%8A %D - Error in loaded user subroutine %5A %D%8A %D - Virtual access error - FCS %D %5A %D%8A %D - Virtual file open error - FCS %D %5A %D%8A %D - error in set command %5A %D%8A %D - Use of "/co" switch with normal basic source %5A %D%8A %D - Immediate mode command in source text %5A %D%8A %D - Variable type mismatch %5A %D%8A %D - Debug #1 at R3=%P R0=%P R4=%P %5A %D%8A %D - Debugging error #2 - call system manager %5A %D%8A %D - Log of negative or zero number %5A %D%8A %D - Square root of negative number %5A %D%8A %D - Floating divide by zero %5A %D%8A %D - Number too large to fix %5A %D%8A %D - Floating overflow %5A %D%8A %D - Floating underflow %5A %D%8A %D - Non-existent variable %5A %D%8A %D - Too much data typed %5A %D%8A %D - Not enough data typed %5A %D%8A %D - Illegal characters on input %5A %D%8A %D - Error in value function %5A %D%8A %D - not enough data typed %5A %D%8A %D - Illegal characters on input %5A %D%8A %D - Error in value function %5A %D%8A %D - Syntax error in function %5A ^D%8A %D - Syntax error in open 00Q9z+zQ-z zx* 00QAzRHz$zyNx Oxss %5A %D%8A %D - Floating overflow %5A %D%8A %D - Floating underflow %5A %D%8A %D - Log of negative or zero value %5A %D%8A %D - Square root of negative value Basic Plus-2 V1.6?Bad directory for device?Illegal file name?Account or device in use?No room for user on device?Can't find file or account?Not a valid device?I/O channel already open?Device not available?I/O channel not open?Protection violation?End of file on device?Fatal system I/O failure?User data error on device?Device hung or write locked?Keyboard wait exhausted00RIz+zQ-z zx*?Name or account now exists?Too many open files on unit?Illegal SYS() usage?Disk block is interlocked?Pack IDs don't match?Disk pack is not mounted?Disk pack is locked out?Illegal cluster size?Disk pack is private?Disk pack needs 'CLEANing'?Fatal disk pack mount error?I/O to detached keyboard?Programmable ^C trap?Corrupted file structure?Device not file-structured?Illegal byte count for I/O?No buffer space available?Odd address trap?Reserved instruction trap?Memory management violation?SP Stack Overflow?Disk error during swap?Memory parity failure?Magtape select error?Magtape record length error?Non-res run-time system?Virtual buffer too large?Virtual array not on disk?Matrix or array too big?Virtual array not yet open?Illegal I/O Channel?Line too long%Floating point error%Argument too large in EXP%Data format error%Integer error?Illegal number%Illegal argument in LOG%Imaginary square roots?Subscript out of range?Can't invert matrix?Out of data?ON statement out of range?Not enough data in record?Integer overflow, FOR loop%Division by 0?No run-time system?FIELD overflows buffer?Not a random access device?Illegal MAGTAPE() usage?Missing special feature?Illegal switch usage?Unused ERROR message 68?Unused ERROR message 69 ?Unused ERROR message 70 ?Statement not found?RETURN without GOSUB?FNEND without function call?Undefined function called?Illegal symbol?Illegal verb?Illegal expression?Illegal mode mixing?Illegal IF statement?Illegal conditional clause?Illegal function name?Illegal dummy variable?Illegal FN redefinition?Illegal line number(s)?Modifier error?Can't compile statement?Expression too complicated?Arguments don't match?Too many arguments%Inconsistent function usage?Illegal DEF nesting?FOR without NEXT?NEXT without FOR?DEF without FNEND?FNEND without DEF?Literal string needed?Too few arguments?Syntax error?String is needed?Number is needed?Data type error?1 or 2 dimensions only?Program lost-Sorry?RESUME and no error?Redimensioned array%Inconsistent subscript use?ON statement needs GOTO?End of statement not seen?What??Bad line number pair?Not enough available memory?Execute only file?Please use the RUN command?Can't CONTinue?File exists-RENAME/REPLACE?PRINT-USING format error?Matrix or array without DIM?Bad number in PRINT-USING?Illegal in immediate mode?PRINT-USING buffer overflow?Illegal statement?Illegal FIELD variableStop?Matrix dimension error?Wrong math package?Maximum memory exceeded%SCALE factor interlock?Tape records not ANSI?Tape BOT detected?Key not changeable?No current record?Record has been deleted?Illegal usage for device?Duplicate key detected?Illegal usage?Illegal or illogical access?Illegal key attributes?File is locked?Invalid file options?Index not initialized?Illegal operation?Illegal record on file?Bad record identifier00RQzHz$zyNx Oxss?Invalid key of reference?Key size too large?Tape not ANSI labeled?RECORD number exceeds maximum?Bad RECORDSIZE value on OPEN?Not at end of file?No primary key specified?Key field beyond end of record?Illogical record accessing?Record already exists?Record/bucket locked?Record not found?Size of record invalid?Record on file too big?Primary key out of sequence?Key larger than record?File attributes not matched?Move overflows buffer?Cannot open file?No file name?Terminal format file required?Cannot position to EOF?Negative fill or string length?Illegal record format?Illegal ALLOW clause?Unused ERROR message 169 ?Index not fully optimized?RRV not fully updated?Record lock failed?Invalid RFA field?File expiration date unexpired?Node name error?Unused ERROR message 176 ?Unused ERROR message 177 ?Unused ERROR message 178 ?Unused ERROR message 179 ?Unused ERROR message 180 ?Unused ERROR message 181 ?Unused ERROR message 182 ?Unused ERROR message 183 ?Unused ERROR message 184 ?Unused ERROR message 185 ?Unused ERROR message 186 ?Unused ERROR message 187 ?Unused ERROR message 188 ?Unused ERROR message 189 ?Unused ERROR message 190 ?Unused ERROR message 191 ?Unused ERROR message 192 ?Unused ERROR message 193 ?Unused ERROR message 194 ?Unused ERROR message 195 ?Unused ERROR message 196 ?Unused ERROR message 197 ?Unused ERROR message 198 ?Unused ERROR message 199 ?Unused ERROR message 200 ?Unused ERROR message 201 ?Unused ERROR message 202 ?Unused ERROR message 203 ?Unused ERROR message 204 ?Unused ERROR message 205 ?Unused ERROR message 206 ?Unused ERROR message 207 ?Unused ERROR message 208 ?Unused ERROR message 209 ?Unused ERROR message 210 ?Unused ERROR message 211 ?Unused ERROR message 212 ?Unused ERROR message 213 ?Unused ERROR message 214 ?Unused ERROR message 215 ?Unused ERROR message 216 ?Unused ERROR message 217 ?Unused ERROR message 218 ?Unused ERROR message 219 ?Unused ERROR message 220 ?Unused ERROR message 221 ?Unused ERROR message 222 ?Unused ERROR message 223 ?Unused ERROR message 224 ?Unused ERROR message 225 ?Unused ERROR message 226 ?String too long?Record attributes not matched?Differing use of /DOU?No fields in image?Illegal string image?Null image?Illegal numeric image?Numeric image for string?String image for numeric?TIME limit exceeded?1st arg to SEQ$ > 2nd?Arrays must be same dimension?Arrays must be square?Cannot change array dimensions?Floating overflow?Floating underflow?CHAIN to non-existent line no.?Exponentiation error?Illegal exit from DEF*?Error trap needs RESUME?Illegal RESUME to subroutine?Illegal return from subroutine?Argument out of bounds?Not implemented?Recursive subroutine call?FILE ACP failure?Directive error?Unused ERROR message 254 ?Unused ERROR message 255 00RYzSZz-z zx*1 BATchE The commands available for user batch jobs include most interactive F MCR or DCL commands. User-written CLI commands may also be used inG user batch jobs. The syntax is identical to interactive CLI commandsI except that a dollar sign ($) must precede each CLI command in the userG batch job. A user batch job is a text file that reproduces an entire terminal session. N User batch jobs may also include batch-specific commands which are recognizedL by the batch processor only. These also must be preceded by a dollar sign.I The first command in a batch job must be $JOB and the last must be $EOJ.c< Help is available on the following batch-specific commands: CONTINUE GOTO DATA IFa EOD JOB EOJ ON STOP SET p, For additional help type AID BATCH command.: For information on submitting batch jobs type AID SUBMIT.2 JOBr JOB@ JOB marks the beginnning of the batch job and must appear first in the file.o z$ $JOB[/qualifier] [loglabel] [[uic]] a Command Qualifiero /TIME:m or /TIME:(hh:mm)a< The /TIME qualifier limits CPU time for the user batch job.1 HEL and LOGIN should not be used for batch jobs.C2 EOJ  EOJ  EOJ ends the user batch job.N S $EOJS- BYE or LOGOUT cannot be used for batch jobs.n2 ON ONr iD ON defines an exit status code and specifies the action to be takenH by the batch processor when that code or a more severe code is returned" by subsequent commands and tasks. STOP $ON status-code THEN CONTINUE GOTO label status-code: WARNING ERROR  SEVEREERROR - ON WARNING THEN STOP is the default setting.o@ The default setting is restored after an ON has been activated. See also HELP BATCH IF.2 IF IFe oH IF checks for a given status code following execution of a the previousJ command in the batch job. Unlike ON, IF responds only to the status-code you specify.e GOTO label t $IF status-code THEN CONTINUE STOP status-code: WARNING ERROR SEVEREERROR See also HELP BATCH ON.2 GOTO GOTOA NG GOTO directs BPR to skip directly to a line with a specified label andaI continue processing from there. The line may appear after or before the0 GOTO. GOTO can be used alone or with ON or IF. $GOTO label $ON status-code THEN GOTO label $IF status-code THEN GOTO label $label:[command]u2 A label can be any six alphanumeric characters. H On the GOTO line, the label is NOT terminated with a colon (:). On theC line actually being labeled, the label is terminated with a colon.A 2 CONTINUE CONTINUEs D CONTINUE is a no-operation. It can be used alone or with ON or IF. $CONTINUE $ON status-code THEN CONTINUE $IF status-code THEN CONTINUEJ See HELP/DCL CONTINUE for information on the DCL interactive form of this command.o2 DATA DATA I DATA marks the beginning of a data block included in the user batch job.E Data is any required user input other than MCR, DCL or any other CLIeK commands. DATA should immediately follow the command that requests input.O $DATA[/qualifier[s]] N Command Qualifierso /NOCOPY /DOLLARS[:"string"]F You do not need to specify DATA unless you need to specify any of its qualifiers.> /NOCOPY specifies that the data block not be included in the  batch log file.F /DOLLARS permits lines beginning with a dollar sign ($) to be treatedI as data. Without this qu00SazTdzUfzyNx Oxssalifier, the first line beginning with $ closes  the data block.I If you use /DOLLARS, you must explicitly close the data block with $EOD.sH If you specify a string argument to /DOLLARS, you must use that string to close the data block.u2 EODe EOD # EOD marks the end of a data block.s q $EODrL EOD must be used if you have opened the data block with either DATA/DOLLARS or DATA/DOLLARS:"$EOD". See also HELP BATCH DATA.2 SET SET [NO] ONJ SET NO ON disables the current setting of ON, including the default. The% space between NO and ON is optional. $SET NO ONiJ SET ON reinstates the ON setting to whatever it was before the SET NO ON. $SET ONJ SET can be used with other parameters or qualifiers as a CLI command, and: has the same effect in batch jobs as in interactive mode.2 STOP STOPv pB STOP stops the batch job. It can be used alone or with ON or IF. $STOP $ON status-code THEN STOP $IF status-code THEN STOP E See also HELP/DCL STOP for the DCL interactive form of this command.a between NO and ON is optional. $SET NO ONiJ SET ON reinstates the ON setting to whatever it was before the SET NO ON. $SET ONJ SET can be used with other parameters or qualifiers as a CLI command, and: has the same effect in batch jobs as in interactive mode.2 STOP STOPv pB STOP stops the batch job. It can be used alone or with ON or IF. $STOP $ON status-code THEN STOP $IF status-code THEN STOP E See also HE1 BDIK BDI will produce a directory listing of a BRU Tapeset (up to some limit -A currently 10000 files) in a format related to that used by PIP. operating proceedure: MCR>BDI" *** BRU Directory Listing x01.006 Input Tapedeck: BDI" *** BRU Directory Listing x01.006 Input Tapedeck: /APPEND source target eG The /APPEND qualifier appends a backup set from the input disk volume e+ to the last backup set on the output tape.o hC If the output tape was positioned at the beginning, /APPEND causes F a skip to the logical end-of-tape before writing the new backup set. @ The output volume is searched for the last logical end-of-file. cI If the output tape is already positioned at logical end-of-tape, /APPEND D causes BRU to start writing where the tape is currently positioned. UD If the output tape is not positioned at the beginning or at l00UizZz-z zx*ogicalH end-of-tape, /APPEND/REWIND will rewind the tape and then space forward until the logical end-of-tape.o iE If the tape is a continuation tape (that is, not the first tape of aaG tape set) or if the last backup set does not end on the tape, an errorr message is displayed. 2 BACKUP_SET h# BRU>/BACKUP_SET:name source targett gG The /BACKUP_SET qualifier allows you to specify the name of the backupsD set to be placed on the tape. The default is the volume name of theE disk being backed up. This name may be up to 12(10) characters long.e pG When applied to an output tape volume, the backup set name assigns theaH name of the backup set being placed on the volume. Multiple backup sets" may be placed on a single volume. nE When applied to an input tape volume, the first tape is searched forAF the specified backup set name. If you specify no backup set name with@ the input volume, the first backup set on the tape is restored. eB Several sequential backup sets from the same tape can be restoredF without having to rewind the tape between operations. The first tape= in the backup set is not rewound unless you specify /REWIND.u2 BADe . BRU>/INITIALIZE/BAD:[AUTOMATIC] source target MANUAL OVERRIDE WB The /BAD qualifier is used with the /INITIALIZE qualifier during @ tape-to-disk or disk-to-disk operations. /BAD creates the file BADBLK.SYS on the output disk.r bF For last-track devices, AUTOMATIC causes the manufacturer's bad blockD information and the software detected bad sector file to be used toE create BADBLK.SYS. For nonlast-track devices, the software bad block A descriptor block is used to create BADBLK.SYS. AUTOMATIC is theO default option. D OVERRIDE applies only to last-track devices, causing the last-trackG device to appear to be a nonlast-track device. When OVERRIDE is speci-oA fied, BRU uses the software bad block descriptor block to createF= BADBLK.SYS and ignores the manufacturer-written information.b kF MANUAL accepts the addresses of bad blocks entered interactively from; the terminal. MANUAL also requests BRU to use either the aE manufacturer-written bad block information and the software-detected E bad sector file (for last-track devices) or the bad block descriptors8 block (for nonlast-track devices) to create BADBLK.SYS. 2 BUFFERSi - BRU>/INITIALIZE/BUFFERS:number source targeto aF The /BUFFERS qualifier specifies the default number of directory FileE Control Blocks (FCBs) on each volume. The FCBs are stored in memorybG by the ACP when the volume is mounted. The more FCBs there are storedsG in memory, the faster that files contained in heavily used directories G are found. The default number of buffers is the same as for the inputb disk. sE The /BUFFERS qualifier is used with the /INITIALIZE qualifier duringU) tape-to-disk or disk-to-disk operations. 2 COMPAREe  BRU>/COMPARE source targetp fG The /COMPARE qualifier compares the data on the output device with thev@ data on the input device and reports any differences. No data 1 transfer takes place during a compare operation.  oD The command line specifying the compare operation must be identicalE to that entered when the data on the output volume was created, withdI the exception of the /INITIALIZE, /NOINITIALIZE, and /APPEND qualifiers.r 2 CREATED- d7 BRU>/CREATED:BEFORE:(dd-mmm-yy hh:mm:ss) source targetO BEFORE:dd-mmm-yy BEFORE:hh:mm:ss! AFTER:(dd-mmm-yy hh:mm:ss)i AFTER:dd-mmm-yy AFTER:hh:mm:sso B The /CREATED qualifier allows you to select for backup or restore> files created before or after the specified date and/or time. mB If you use the BEFORE option, BRU copies any files created before the specified date and/or time. oF If you use the AFTER option, BRU copies any files created on or after: the specified date and/or at or after the specified time. H If you specify both a date and time, the date and time must be enclosedF in parentheses. If you specify only a d00UqzdzUfzyNx Oxssate or only a time, the paren-H theses are not necessary. If you specify only a time, the current date B is used. If you specify only a date, the time defaults to 00:00. O 2 DENSITYB c" BRU>/DENSITY:number source target eF The /DENSITY qualifier specifies the density at which a magnetic tape3 is to be written. The following values are legal:/ a) Drive Default Density Optional Density  c TU10/TE10 800 NONEe TU16/TE16 800 1600t TU45 800 1600a TU77 800 1600p TS11 1600 NONE TU78 6250 1600 -F If you specify /DENSITY with /APPEND, you must specify the density atI which the existing tape data was written. If you specify a density otherC than the original density, a warning message will be displayed and 1 processing will continue at the correct density.  eF If you specify an incorrect density for a restore operation, an error6 message is displayed and the operation is terminated. 2 DIRECTORY6 0 BRU>/DIRECTORY source& BRU>/BACKUP_SET:name/DIRECTORY source ED The /DIRECTORY qualifier lists the backup set names or files on theD specified tape volume. In a multivolume tape set, the directory is on the first tape of the set. tH When specified with no backup set name, /DIRECTORY lists all the backup sets on the volume. eE When used with the /BACKUP_SET qualifier, /DIRECTORY lists the filesoD in the specified backup set. If the backup set is not on the tape,? an error message is displayed and the operation is terminated.S 2 DISPLAYE R BRU>/DISPLAY source target  lH The /DISPLAY qualifier prints the file name and UFD of each file as the+ header for that file is being transferred.2 ERRORS  BRU>/ERRORS:number eH The /ERRORS qualifier requests termination of a restore operation afterA the specified number of nonfatal tape read errors have occurred.I T@ The range for number is 0 to 65535. The default is /ERRORS:25. 2 EXAMPLES t4 Example of a complete disk copy to a 1600 bpi tape: n BRU>/DENSITY:1600 DB2: MM0: E Example of a copy from tape to disk, initializing the disk and usingl prompting:D  BRU>/DENSITY:1600 FROM: MM1:f TO: DK2:a# INITIALIZE THE OUTPUT DISK? YESS mE Example of a disk-to-disk transfer from a mounted disk, initializinga the output disk:e i BRU>/INITIALIZE/MOUNTED FROM: DB0:v TO: DB3:I 2 EXCLUDEr e% BRU>/EXCLUDE ddnn:filespec(s) target  /G The /EXCLUDE qualifier specifies that files matching the file specifi-iC cations in the command line be excluded from the backup or restore operation. 2 EXTEND t, BRU>/INITIALIZE/EXTEND:number source target TD The /EXTEND qualifier specifies the default number of blocks a fileC will be extended when that file has exhausted its allocated space.i9 This value is used by an ACP when the volume is mounted.T D The /EXTEND qualifier is used with the /INITIALIZE qualifier during) tape-to-disk or disk-to-disk operations.p 2 HEADERSt l- BRU>/INITIALIZE/HEADERS:number source target  mH The /HEADERS qualifier specifies the number of file headers to allocateG initially to the index file. The primary reason for preallocating fileiF headers is to locate them near the storage bitmap file. Proper place-H ment of file headers can help reduce head motion during I/O operations. E The /HEADERS qualifier is used with the /INITIALIZE qualifier duringh* tape-to-disk and disk-to-disk operations. 2 INVOLUME s! BRU>/INVOLUME:name source targetU NF The /INVOLUME qualifier specifies the volume label of the input disk./ This name can be up to 12(10) characters long.i lF For disk-to-tape or disk-to-disk operations, the volume label of the G input volume is checked to verify that the disk has the correct label.f= This check ensures that you do not back up the wrong volume.. H For restore operations, BRU checks the volume label of the disk that is" stored in the backup set on tape.2 LENGTH O! BRU>/LENGTH:number source targete rG The /LENGTH qualifier specifies the length of the output tape in deci-tF00UyzZz-z zx* mal feet. If the length specified exceeds the length of the tape, theG entire length of the output tape will be used. In cases where you knowmG the end of the tape must not be used, you can specify a shorter length : to ensure that you do not write on that part of the tape. 2 MAXIMUMe i- BRU>/INITIALIZE/MAXIMUM:number source targeta sF The /MAXIMUM qualifier specifies the maximum number of files that canF be placed on a volume, as determined by the number of file headers inF the volume's index file. The default maximum is the maximum number of files on the input disk.r 2 MOUNTED   BRU>/MOUNTED source targetc sD The /MOUNTED qualifier allows you to back up files from a disk that! is mounted as a Files-11 volume.a oF Note that disk activity while the files are being backed up may cause undesirable results.e 2 NEW_VERSIONT / BRU>/NEW_VERSION source targeta uF The /NEW_VERSION qualifier resolves file specification conflicts thatC occur during restore operations when a file already exists on the i: output disk volume by creating a new version of the file.2 NOINITIALIZE / BRU>/INITIALIZE source target BRU>/NOINITIALIZE source target kD The /INITIALIZE qualifier specifies that you want to initialize theE output disk during a tape-to-disk or disk-to-disk operation. Initia-uE lization places a Files-11 structure on the disk, including the boote6 block, the home block, and the required system files. tD Along with the /INITIALIZE qualifier, you can specify the followingE qualifier when you are initializing a disk: /BAD, /BUFFERS, /EXTEND,eE /HEADERS, /MAXIMUM, /NOPRESERVE, /OUTVOLUME, /POSITION, /PROTECTION,TA and /WINDOWS. If you do not specify any of these qualifiers, the . characteristics of the input volume are used. aF /NOINITIALIZE specifies that you do not want to initialize the outputE disk because it is already in Files-11 format. The output disk must > be mounted as a Files-11 volume. You cannot enter any of theD initialization qualifiers when you specify /NOINITIALIZE. Doing so results in an error message., 2 INITIALIZE D BRU>/INITIALIZE source target BRU>/NOINITIALIZE source target dD The /INITIALIZE qualifier specifies that you want to initialize theE output disk during a tape-to-disk or disk-to-disk operation. Initia-tE lization places a Files-11 structure on the disk, including the bootd6 block, the home block, and the required system files. sD Along with the /INITIALIZE qualifier, you can specify the followingE qualifier when you are initializing a disk: /BAD, /BUFFERS, /EXTEND,mE /HEADERS, /MAXIMUM, /NOPRESERVE, /OUTVOLUME, /POSITION, /PROTECTION,TA and /WINDOWS. If you do not specify any of these qualifiers, the . characteristics of the input volume are used. aF /NOINITIALIZE specifies that you do not want to initialize the outputE disk because it is already in Files-11 format. The output disk must > be mounted as a Files-11 volume. You cannot enter any of theD initialization qualifiers when you specify /NOINITIALIZE. Doing so results in an error message., 2 NOPRESERVE D) BRU>/INITIALIZE/NOPRESERVE source targetS OE The /NOPRESERVE qualifier specifies that you do not want to preservel? file-IDs. BRU suppresses the message about file-IDs not beingG preserved. Note that when restoring to a mounted disk, not preservingd# files-IDs is BRU's default action.  m@ When file-IDs are not preserved, new file-IDs are assigned and  incremented sequentially. 2 PRESERVE u) BRU>/INITIALIZE/NOPRESERVE source targeto E The /NOPRESERVE qualifier specifies that you do not want to preserveN? file-IDs. BRU suppresses the message about file-IDs not beingsG preserved. Note that when restoring to a mounted disk, not preservinge# files-IDs is BRU's default action.d N@ When file-IDs are not preserved, new file-IDs are assigned and  incremented sequentially. 2 OUTVOLUME  e" BRU>/OUTVOLUME:name source target eH The /OUTVOLUME qualifier specifies the volume label of the output disk.5 This label can 00UzdzUfzyNx Oxssbe up to 12(10) characters in length.i rF For disk-to-tape backup operations, the name of the input disk volumeG stored on the output tape volume is changed to the name specified withr the /OUTVOLUME qualifier. eG For tape-to-disk restore operations or for disk-to-disk transfers, thepE name of the output disk volume is changed to the name specified with  the /OUTVOLUME qualifier. 2 POSITION 1 BRU>/INITIALIZE/POSITION:BEGINNING source target MIDDLEo END BLOCK:numbere aD The /POSITION qualifier specifies the location of the index file onE the output disk volume being initialized, usually to minimize accessaE time. The BEGINNING, MIDDLE, and END options specify the beginning,fB middle, and end of a volume. The BLOCK:number option specifies aB block number where the index file is to be placed. The BEGINNING@ option is generally used only when a disk mostly contains large contiguous files. :J The default location is at the same location as that on the input disk. 2 PROTECTION i6 BRU>/INITIALIZE/PROTECTION:SYSTEM:value source target OWNER:value GROUP:value WORLD:value aG The /PROTECTION qualifier specifies the default protection for all new@ files created on the disk after the BRU transfer has completed.A Each access code consists of a positional keyword specifying theGH protection group (SYSTEM:, OWNER:, GROUP:, WORLD:) followed by a 4-code- group specifying the protection, as follows:h a R - allow read access to file W - allow write access to file/ E - allow file to be extended D - allow file to be deletedv eE If this qualifier is not specified, the defaults from the input diskr are used. d 2 QUALIFIERS  The available qualifiers are: 0 /APPEND /ERRORS:number /POSITION:BEGINNING+ /BACKUP_SET:name /EXCLUDE MIDDLEs+ /BAD:[AUTOMATIC] /EXTEND:number ENDW2 MANUAL /HEADERS:number BLOCK:number< OVERRIDE /[NO]INITIALIZE /PROTECTION:group:value= /BUFFERS:number /INVOLUME:name /REVISED:BEFORE:date/time / /COMPARE /LENGTH:number AFTER:date/timee3 /CREATED:BEFORE:date/time /MAXIMUM:number /REWINDr+ AFTER:date/time /MOUNTED /SUPERSEDEE2 /DENSITY:number /NEW_VERSION /TAPE_LABEL:name" /DIRECTORY /NOPRESERVE /UFD# /DISPLAY /NOSUPERSEDE /VERIFY ' /OUTVOLUME:name /WINDOWS:numberN uH Type AID BRU "qualifier" for the description of a particular qualifier. 2 REVISED  N7 BRU>/REVISED:BEFORE:(dd-mmm-yy hh:mm:ss) source target  BEFORE:dd-mmm-yyB BEFORE:hh:mm:ss! AFTER:(dd-mmm-yy hh:mm:ss)e AFTER:dd-mmm-yy AFTER:hh:mm:ssm F The /REVISED qualifier allows you to back up or restore files revised- before or after the specified date and time.  H If you use the BEFORE option, BRU copies any files revised on or before the specified date and/or time. IF If you use the AFTER option, BRU copies any files revised on or after: the specified date and/or at or after the specified time. eI If you specify both a date and time, the date and time must be enclosed yE in parentheses. If you specify only a date or time, the parentheses/E are not necessary. If you specify only a time, BRU uses the currentrE date as a default. If you specify only a date, the time defaults tot 00:00.c2 REWIND e BRU>/REWIND source target eF The /REWIND qualifier causes the first magnetic tape of a tape set to> be rewound before BRU executes a backup or restore operation. rE When specified with an input tape, the first tape of the tape set ise0 rewound before it is searched for a backup set. u@ When specified with /APPEND, the input tape is rewound and thenD searched for the logical end-of-tape before BRU executes the backup operation.p 2 SUPERSEDEd , BRU>/SUPERSEDE source targetc H The /SUPERSEDE qualifier specifies that when file specifications on theD output volume are identical to the file specifications on the inputG volume, the file on the output volume is deleted and repl00UzVz-z zx*aced with thee file from the input volume. iF The /NOSUPERSEDE qualifier specifies that when file specifications onD the output volume are identical to file specifications on the inputE volume, the files on the input volume are not transferred (the filesE* on the output volume are not superseded).  /NOSUPERSEDE is the default.f 2 TAPE_LABEL e$ BRU>/TAPE_LABEL:label source target eF The /TAPE_LABEL qualifier specifies the 6-character volume identifierG on the ANSI VOL1 label to be placed on the tape during a backup opera-tI tion or to be compared with the label on the tape for append and restoreaE operations. This allows you to verify that you are using the correcte tape.2 UFD, e BRU>/NOINITIALIZE/UFD aD The /UFD qualifier creates UFDs (if they do not already exist) on aE mounted output volume, then copy into it the files from the same UFDLB on the input volume. If /UFD is not specified, the files are not/ copied. /UFD is used only with /NOINITIALIZE.L2 VERIFY  BRU>/VERIFY source target kD The /VERIFY qualifier copies data from the input volume, performs aC a compare operation between the input volume and the output volume 1 after the transfer, and reports any differences.T 2 WINDOWS . BRU>/INITIALIZE/WINDOWS:numbers source target rH The /WINDOWS qualifier specifies the default number of mapping pointersF to be allocated for file windows when initializing an output disk. AF file window consists of a number of pointers and is stored in memory  when the file is opened. t kJ The default number of mapping pointers is the same as for the input disk.pare operation between the input volume and the output volume 1 after the transfer, and reports any differences.T 2 WINDOWS . BRU>/INITIALIZE/WINDOWS:numbers source target rH The /WINDOWS qualifier specifies the default number of mapping pointersF to be allocated for file windows when initializing an output disk. AF file window consists of a number of pointers and is stored in memory  when  .ENABLE SUBSTITUTION .ENABLE GLOBAL .DISABLE LOWERCASE .IFNDF MPL .SETF MPL .IFT .GOTO 10 ;; ; This procedure will move the desired DECnet-11M/S/M-PLUS1 ; HELP files to the target system''s LB: device. ; .GOTO 20.10: ;= ; This procedure will move the desired DECnet-IAS Help Files& ; to your target system''s LB: device ;.20: .SETS OLDUIC .SETF CFE .SETF FTS .SETF NCP .SETF NDA .SETF NFT .SETF VNP- .ASKS IN On what device is NETHLP.ULB (DDUU) .TEST INN, .IF IN NE "" .IFT .SETS IN "'IN':"/ .ASKS OUT Target system''s "LB:" device (DDUU) .TEST OUT/ .IF OUT NE "" .IFT .SETS OUT "'OUT':"1 .SETS TMPS "" .IFF MPL .SETS TMPS ", VNP"R.IFF .ASK ALL Do you want all the HELP files (CFE, FTS, NCP, NDA, NFT'TMPS')G.IFT .ASK ALL Do you want all the HELP files (CFE, NCP, NDA, NFT). .IFF ALL .GOTO 10 .SETT CFE .IFF .SETT FTS .SETT NCP .SETT NDA .SETT NFT .IFF .IFF MPL .SETT VNP .GOTO 20U.10: ; Do you want HELP for -I .ASK CFE CFE .IFF .ASK FTS FTSr .ASK NCP NCP .ASK NDA NDA .ASK NFT NFT" .IFF .IFF MPL .ASK VNP VNP.20: ;$ .IF NE "[1,2]" SET /UIC=[1,2], .IFT CFE LBR 'OUT'CFE='IN'NETHLP.ULB/EX:CFE2 .IFT CFE LBR 'OUT'CFEDEF='IN'NETHLP.ULB/EX:CFEDEF2 .IFT CFE LBR 'OUT'CFELIS='IN'NETHLP.ULB/EX:CFELIS, .IFT FTS LBR 'OUT'FTS='IN'NETHLP.ULB/EX:FTS, .IFT NCP LBR 'OUT'NCP='IN'NETHLP.ULB/EX:NCP2 .IFT NCP LBR 'OUT'NCPCLE='IN'NETHLP.ULB/EX:NCPCLE2 .IFT NCP LBR 'OUT'NCPLOA='IN'NETHLP.ULB/EX:NCPLOA2 .IFT NCP LBR 'OUT'NCPLOO='IN'NETHLP.ULB/EX:NCPLOO2 .IFT NCP LBR 'OUT'NCPSET='IN'NETHLP.ULB/EX:NCPSET2 .IFT NCP LBR 'OUT'NCPSHO='IN'NETHLP.ULB/EX:NCPSHO2 .IFT NCP LBR 'OUT'NCPTRI='IN'NETHLP.ULB/EX:NCPTRI2 .IFT NCP LBR 'OUT'NCPZER='IN'NETHLP.ULB/EX:NCPZER, .IFT NDA LBR 'OUT'NDA='IN'NETHLP.ULB/EX:NDA, .IFT NFT LBR 'OUT'NFT='IN'NETHLP.ULB/EX:NFT, .IFT VNP LBR 'OUT'VNP='IN'NETHLP.ULB/EX:VNP2 .IFT VNP LBR 'OUT'VNPCLE='IN'NETHLP.ULB/EX:VNPCLE2 .IFT VNP LBR 'OUT'VNPSET='I00VzWzfzyNx OxssN'NETHLP.ULB/EX:VNPSET2 .IFT VNP LBR 'OUT'VNPSHO='IN'NETHLP.ULB/EX:VNPSHO( .IF OLDUIC NE "[1,2]" SET /UIC='OLDUIC'NETHLP.ULB/EX:NCPSET2 .IFT NCP LBR 'OUT'NCPSHO='IN'NETHLP.ULB/EX:NCPSHO2 .IFT NCP LBR 'OUT'NCPTRI='IN'NETHLP.ULB/EX:NCPTRI2 .IFT NCP LBR 'OUT'NCPZER='IN'NETHLP.ULB/EX:NCPZER, .IFT NDA LBR 'OUT'NDA='IN'NETHLP.ULB/EX:NDA, .IFT NFT LBR 'OUT'NFT='IN'NETHLP.ULB/EX:NFT, .IFT VNP LBR 'OUT'VNP='IN'NETHLP.ULB/EX:VNP2 .IFT VNP LBR 'OUT'VNPCLE='IN'NETHLP.ULB/EX:VNPCLE2 .IFT VNP LBR 'OUT'VNPSET='IH The Configuration File Editor (CFE) is a DECnet utility used to modify+ the permanent node data base (CETAB.MAC).  e/ HELP is available for the following commands:'5 EXIT ..................... Describes how to exit CFEA9 KILL ..................... Describes how to kill an edite> DEFINE ................... Describes how to define parameters@ LIST ..................... Describes how to list the CETAB file@ PURGE .................... Describes how to delete a definition JMost CFE commands operate on network components. Component types include:! EXECUTOR LINE NODE PROCESS  LOGGING OBJECT SYSTEMMCFE will prompt for missing parameters when a partially complete command line Jhas been entered. In response to these prompts, you may type "ESCAPE" for9a brief description of what may be entered at that point.fFor more help use: HELP command. HELP component-type1 KILLF The KILL command terminates the editing session without updating the3 CETAB file or deleting the previous (input) file.o 1 EXECUTORAThe executor is the local node. It is specified in either of the equivalent forms:l EXECUTORs NODE executor-node-idFor more information use: HELP DEFINE EXECUTORn HELP LIST EXECUTORu1 LINEKA line is a hardware communications path. They are specified in the forms:4 LINE line-id - a specific line or group of lines.2 KNOWN LINES - all lines known to the executor.IA line identification is a string of 4-16 characters in one of the forms:  device-controller device-controller-unito device-controller.tributary# device-controller-unit.tributary ADevice is an alphabetic device mnemonic, such as DMC, DA, or KDZ.3Controller is the decimal device controller number.EMUnit is the decimal unit on the controller. It is allowed only if the deviceis multiplexed. MTributary is the decimal logical tributary number. It is allowed only if theuline is multipoint.fLController, unit, and/or tributary may be replaced with an asterisk (*) as aLwild card to indicate all known values in that position. A wild card cannotBbe used to the left of a specific number in a line identification.For more help use: HELP DEFINE LINEh HELP LIST LINEn1 LOGGING MONITORMA logging component is a sink (or destination) for logging information. Theyare specified in the form:8 LOGGING sink-type - for a specific logging sink type.@ KNOWN LOGGING - for all sink types known to the executor.<The only logging sink type known to DECnet-11M/S is MONITOR.For more help use: HELP DEFINE LOGGING HELP LIST LOGGING1 NODENA node is a network system that can support logical links. They are specified in the forms:h" NODE node-id - a specific node.O KNOWN NODES - all nodes seen by the executor as reachable or having a name.NA node identification is either a node name or a node address. A node name isKa string of 1-6 alphanumeric characters, containing at least one alphabetichOcharacter. A node address is the guarenteed network-wide unique identification7of a node and is a decimal number in the range 1-32767. CIn most cases, node addresses and names may be used interchangably.iFor more help use: HELP DEFINE NODEp HELP LIST NODEO HELP PURGE NODE1 OBJECTMAn object is a network addressable program. They are specified in the forms: * OBJECT object-type - a specific object.: KNOWN OBJECTS - all objects known to the executor.6An object type00Wzz-z zx* is a decimal number in the range 0-255.For more help use: HELP DEFINE OBJECTa HELP LIST OBJECTl HELP PURGE OBJECT 1 PROCESSGA process is a control program that operates in the network system (theo<Communications Executive). They are specified in the forms:- PROCESS process-name - a specific process.o> KNOWN PROCESSES - all processes known to the executor./A process name is 1 to 3 alphabetic characters.OFor more help use: HELP DEFINE PROCESS HELP LIST PROCESS1 SYSTEMLThe system is the network operating environment, known as the Communications(Executive. It is specified in the form: SYSTEM 1 PURGEs#The format of the PURGE command is:h$ PURGE component component-optionsComponent types are: NODEh OBJECT!The only component option is ALL.p eFor more help use: HELP component-type HELP PURGE component-type2 NODEMUse the PURGE NODE ALL command to remove a node name entry from the executor.OThe format is: PURGE NODE node-id ALLt PURGE KNOWN NODES ALL6This command will remove the node name from the table.2 OBJECTGUse the PURGE OBJECT command to remove an object from the object table.sThe format is: PURGE OBJECT object-type ALLn PURGE KNOWN OBJECTS ALLFor more help use: HELP OBJECT1 EXIT1EXIT simply exits CFE. It is equivalent to a ^Z.1 DEFINE @LB:[1,2]CFEDEF.HLP1 LIST @LB:[1,2]CFELIS.HLP1 CFE> Commands are:a DEFINE HELP PURGE EXIT LIST:4Use the HELP command to obtain complete information.1 Active 2 pollingo3 ratio:$A decimal number in the range 1-255. 1 Address:NA decimal node address in the range 1 to the maximum address for the executor.1 Blockt 2 extension: R'A decimal number in the range 1 to 128.: 1 Buffer 2 option:T X Options are: F SIZE MINIMUM t1 Byte 2 extension: [(A decimal number in the range 1 to 4096. 1 Purge 2 component:Component types are:' KNOWN NODES KNOWN OBJECTSd, NODE node-id OBJECT object-type 1 Copies: 9Options are SINGLE or a decimal number in the range 1-64.1 Cost: #A decimal number in the range 1-25.m 1 Componente2 type:.Options may be:x( LOGGING OBJECTS PROCESSES LINES NODES 1 Control2 buffer3 count: 'A decimal number in the range 4 to 200. 2 option:u rThe only option is BUFFERS. u1 CSR 2 address:+An octal number in the range 160000-177776. 1 Dead 2 polling 3 ratio:$A decimal number in the range 1-255.1 Define 2 component: E Options are:7 EXECUTOR KNOWN PROCESSES NODEi: KNOWN LINES LINE PROCESS9 KNOWN OBJECTS LOGGING MONITOR SYSTEMS2 line 3 options: Options are: 9 CONTROLLER CSR MULTIPOINT DEAD TRIBUTARY 4 COST PRIORITY UNIT CSR3 DUPLEX SPEED URM76 MULTIPOINT ACTIVE STATE VECTOR 2 loggingg 3 options: eThe only option is STATE.i 2 node 3 options: Options are: ADDRESS or NAME.  N2 object 3 options: 0Options are: COPIES, NAME, USER or VERIFICATION. C 2 processO 3 options: 9Options are: STATE, MAXIMUM CONTROLLERS or MAXIMUM LINES. C 1 Duplex:SOptions are: FULL or HALF. 1 Executor 2 options: Options are: . ADDRESS MAXIMUM ADDRESS MAXIMUM LINKS1 HOST MAXIMUM COST MAXIMUM NODE COUNTERSS9 NAME IDENTIFICATION MAXIMUM HOPS VERIFICATIONs A1 Host2 node3 identification:pA node name or address. 1 Hops:e (A decimal number in the range 1 to 1023. E1 LargeF2 buffer3 count: O'A decimal number in the range 4 to 200.I 3 size:R r*A decimal number in the range 192 to 4032. : 2 option:L The only option is BUFFER[S] i1 Line2 identification:AGA line identification in the form device-controller[-unit]00WzXzfzyNx Oxss[.tributary].C&Examples are: DMC-0, DZ-1-2, KDZ-1-2.12 state:Options are ON, OFF or CLEARED.1 List 2 component: i Options are: EXECUTORa4 KNOWN LINES, LOGGING, NODES, OBJECTS or PROCESSES LINE2 LOGGING MONITOR NODE OBJECT PROCESS SYSTEM  g 1 Location2 in 3 memory:r Options are FIRSTFIT or TOPDOWN. 1 Logging2 sink3 type:hThe only option is MONITOR. 1 Maximumn 2 option:A Options are: c$ For system: CONTROL, LARGE, SMALL: For executor: ADDRESS, COST, HOPS, LINKS, NODE COUNTERS" For process: CONTROLLERS, LINES2 controllers:&A decimal number in the range 0 to 64.2 lines:&A decimal number in the range 0 to 64.2 links: N'A decimal number in the range 0 to 255.C2 node 3 counters:E&A decimal number in the range 2 to 32. n 1 Multipoint2 ratioW3 type:oOptions are ACTIVE or DEAD. 1 Node2 identification: A node address or name.i2 name:cOA string of 1-6 alphanumeric characters with at least one alphabetic character.,1 Object2 name:rAn RSX task name., N 2 number:t$A decimal number in the range 0-255.2 user:Options are DEFAULT or LOGIN. 2 verification: Options are ON, OFF, or INSPECT.1 Partition name2 name:eAn RSX partition name. 1 Priority: "A decimal number in the range 4-7.1 Pool2 name:p n"A 1 to 6 character partition name. n 2 options: )Options are: BYTE-AREA, NAME or PARTITIONt g 1 Processh2 name:c"A 3 character DECnet process name.2 state: Options are: ON or CLEARED.t 1 PurgeN 2 component: Options are:  KNOWN NODES NODE KNOWN OBJECTS OBJECTA 1 Purge 2 options: iThe only option is ALL.F o 1 Receive2 buffer 3 minimum: e<A decimal number in the range 1 to (# of large buffers - 1). i 2 option:  .The only option is BUFFER. o1 Smallt2 buffer3 count: =A decimal number in the range 1 to (# of control buffers -1). r 2 option:a cThe only option is BUFFER. s1 Speed: tJA decimal number that is the baud rate for the line. Range is 50 to 56000. 1 State: KOptions are: ON or OFF.N J1 System 2 options: Options are: C LARGE BUFFER SIZE MAXIMUM LARGE BUFFERS POOL BYTE-AREA 6 LOCATION MAXIMUM SMALL BUFFERS POOL NAMEH MAXIMUM CONTROL BUFFERS MINIMUM RECEIVE BUFFERS POOL PARTITION 1 Tributary 2 address:$A decimal number in the range 1-255.1 Unibus2 runi3 mask: AA list of runs for the current device. For example, [UBE,UBF,UBM]t b 1 Vector:r$An octal number in the range 0-1000.e: KOptions are: ON or OFF.N J1 System 2 options: Options are: C LARGE BUFFER SIZE MAXIMUM LARGE BUFFERS POOL BYTE-AREA 6 LOCATION MAXIMUM SMALL BUFFERS POOL NAMEH MAXIMUM CONTROL BUFFERS MINIMUM RECEIVE BUFFERS POOL PARTITION 1 Tributary 2 address:$A decimal number in the range 1-255.1 Unibus2 runi3 mask: A$The format of the DEFINE command is: L% DEFINE component component-optionsaComponents types are:r : EXECUTORW LINEu LOGGING NODEr OBJECT" PROCESS SYSTEMrFor more help use: HELP component-type HELP DEFINE component-typeN 2 EXECUTORFUse the DEFINE EXECUTOR command to establish executor node parameters.The format is: DEFINE EXECUTOR parameters.Parameter types are: ADDRESS HOST  IDENTIFICATIONu MAXIMUM ADDRESS MAXIMUM COST MAXIMUM LINKS MAXIMUM HOPS: MAXIMUM NODE COUNTERS NAME- VERIFICATIONnFor more help use: HELP EXECUTOR& HELP DEFINE EXECUTOR parameter-type 3 ADDRESS NUse the DEFINE EXECUTOR ADDRESS command to establish the executor node addressin the network. The format is: E' DEFINE EXECUTOR ADDRESS node-addresso p5Where node-address is as described for regular nodes.t .For more help use: : HELP EXECUTOR HELP NODE3 IDENTIFICATIONHUse the DEFINE EXECUTOR ID00Xzz-z zx*ENTIFICATION command to establish the executor3node identification in the network. The format is:o( DEFINE EXECUTOR IDENTIFICATION stringGWhere string is any string of ascii characters. If the string containsSEimbedded spaces or tabs the string must be enclosed in double quotes,oFfor example: "DECNET V3.0 TEST SYSTEM". If you wish to have a doubleCquote character in the string, you must use two double quotes ("").:For more help use: L HELP EXECUTOR 3 MAXIMUM  Addition help is available for:m d MAXIMUM ADDRESS MAXIMUM COSTt MAXIMUM LINKS MAXIMUM HOPSa MAXIMUM NODE COUNTERS4 LINKSFFUse the DEFINE EXECUTOR MAXIMUM LINKS command to establish the maximum<number of links allowed on the local system. The format is:- DEFINE EXECUTOR MAXIMUM LINKS link-maximumE9Where link-maximum is decimal integer in the range 1-255.rFor more help use: m HELP EXECUTOR 4 ADDRESS)HUse the DEFINE EXECUTOR MAXIMUM ADDRESS command to establish the maximumJnode address that the executor node will communicate with. The format is:/ DEFINE EXECUTOR MAXIMUM ADDRESS node-address4Where node-address is as describe for regular nodes.For more help use: HELP EXECUTOR HELP NODE4 HOPSJUse the DEFINE EXECUTOR MAXIMUM HOPS command to establish the maximum hopsFthat a message is allowed to travel before the packet is rejected. The format is: & DEFINE EXECUTOR MAXIMUM HOPS number E4 COSTJUse the DEFINE EXECUTOR MAXIMUM COST command to establish the maximum costGallowed over lines before the node becomes unreachable. The format is:M& DEFINE EXECUTOR MAXIMUM COST number6Where number is a decimal integer in the range 1-1023.For more help use:  HELP EXECUTOR4 NODE Addition help is available for:a t NODE COUNTERS 5 COUNTERSFUse the DEFINE EXECUTOR MAXIMUM NODE COUNTERS command to establish theFnumber of counter blocks for information kept on traffic to nodes withJlogical links. This number should minimally be the maximum number of nodesGto which this node will have logical links at any time. The format is:D/ DEFINE EXECUTOR MAXIMUM NODE COUNTERS numberiMwhere number is a number from 2 to the maximum node address for the executor.T.For non-routing nodes the maximum value is 32.3 HOSTKUse the DEFINE EXECUTOR HOST command to establish the host node used by themKexecutor for down-line task loads or for connects to $HOST. The format is:c$ DEFINE EXECUTOR HOST node-address4Where node-address is as describe for regular nodes.For more help use: HELP EXECUTOR HELP NODE3 NAMEKUse the DEFINE EXECUTOR NAME command to establish the executor node's name. ! DEFINE EXECUTOR NODE node-namerFor more help use: HELP EXECUTOR HELP NODE3 VERIFICATIONPUse the DEFINE EXECUTOR VERIFICATION command to enable or disable the executor'sIverification of access control on incoming logical link connect requests.aThe format is:% DEFINE EXECUTOR VERIFICATION stateoWhere state is one of:. ON - Executor is to verify access control.2 OFF - Executor is not to verify access control.2 LINE9Use the DEFINE LINE command to establish line parameters.FThe formats are:! DEFINE LINE line-id parameters DEFINE KNOWN LINES parametersParameter types are:7 CONTROLLER CSR PRIORITY UNIT CSRx+ COST SPEED URMn5 DUPLEX STATE VECTOR$ MULTIPOINT TRIBUTARYFor more help use: HELP LINE" HELP DEFINE LINE parameter-type 3 CONTROLLERFor CONTROLLER CSR help use:" HELP DEFINE LINE CONTROLLER CSR4 CSRmDUse the DEFINE LINE CONTROLLER CSR command to the default controllerCSR for a line. The format is:N3 DEFINE LINE line-id [CONTROLLER] CSR csr-addressR@Where csr-address is an octal number in the range 160000-177776.For more help use: HELP DEFINE LINE 3 COSTNUse the DEFINE LINE COST command to establish the cost associated with routi00XzzfzyNx Oxssng over the line. The formats are:" DEFINE LINE line-id COST number! DEFINE KNOWN LINES COST number4Where number is a decimal integer in the range 1-25.For more help use: HELP LINE3 DUPLEXIUse the DEFINE LINE DUPLEX command to define the default duplex parameterO#value for a line. The formats are:d+ DEFINE LINE line-id DUPLEX duplex-option7* DEFINE KNOWN LINES DUPLEX duplex-option/Where the duplex option is either HALF or FULL. For more help use: HELP LINE 3 MULTIPOINTMUse the DEFINE LINE MULTIPOINT command to establish multipoint polling ratios for a line. The formats are:b. DEFINE LINE line-id MULTIPOINT ratio-option- DEFINE KNOWN LINES MULTIPOINT ratio-optionh)Where the ratio option is ACTIVE or DEAD.fFor more help use: HELP LINE+ HELP DEFINE LINE MULTIPOINT ratio-option-4 ACTIVELUse the DEFINE LINE MULTIPOINT ACTIVE command to establish the polling ratio>for active tributaries on a multipoint line. The formats are:/ DEFINE LINE line-id MULTIPOINT ACTIVE numberT. DEFINE KNOWN LINES MULTIPOINT ACTIVE numberMWhere the line-id identifies the tributary to which the polling ratio appliesn3and number is a decimal integer in the range 1-255.hFor more help use: HELP LINE4 DEADJUse the DEFINE LINE MULTIPOINT DEAD command to establish the polling ratio<for dead tributaries on a multipoint line. The formats are:- DEFINE LINE line-id MULTIPOINT DEAD numberi, DEFINE KNOWN LINES MULTIPOINT DEAD numberHWhere the line-id identifies the multipoint control station to which theIpolling ratio applies and number is a decimal integer in the range 1-255. INote that the dead ratio applies to the entire control station and cannot2+be made specific to a particular tributary. For more help use: HELP LINE 3 PRIORITYCUse the DEFINE LINE PRIORITY command to define the default priorityl#value for a line. The formats are:I& DEFINE LINE line-id PRIORITY number% DEFINE KNOWN LINES PRIORITY number3Where number is a decimal integer in the range 4-7.tFor more help use: HELP LINE3 STATEuMUse the DEFINE LINE STATE command to control the operational state of a line,s5the next time the system is loaded. The formats are:c" DEFINE LINE line-id STATE state! DEFINE KNOWN LINES STATE state Where state is one of:5 ON - The line will be loaded and turned 'ON'.u9 OFF - The line will be loaded but not turned 'ON'.P) CLEARED - The line will not be loaded.IFor more help use: HELP LINE 3 TRIBUTARYtMUse the DEFINE LINE TRIBUTARY command to establish the tributary address usedL?in polling a tributary on a multipoint station. The format is:h' DEFINE LINE line-id TRIBUTARY numbera5Where number is a decimal integer in the range 1-255. 3 UNITFor UNIT CSR help use: HELP DEFINE LINE UNIT CSR4 CSRl?Use the DEFINE LINE UNIT CSR command to define the default unitbCSR for a line. The format is: + DEFINE LINE line-id UNIT CSR csr-address @Where csr-address is an octal number in the range 160000-177776.For more help use: HELP DEFINE LINEd3 SPEEDLFUse the DEFINE LINE SPEED command to define the default line speed for$an asynchronous line. The format is: " DEFINE LINE line-id SPEED speed eMWhere speed is a valid line speed as described in the System Manager's Guide. SFor more help use: HELP LINE3 URMeHUse the DEFINE LINE URM command to define the unibus run mask for deviceNcontroller. The unibus run mask is only allowed on RSX-11M-PUS multiprocessorsystems. The format is: e DEFINE LINE line-id URM maskd IWhere mask is the unibus run mask for this device, for example: [UBE,UBF]f For more help use: h HELP LINE3 VECTORGUse the DEFINE LINE VECTOR command to define the default vector addresssfor a line. The format is:s, DEFINE LINE line-id VECTOR vector-address@Where the vector address is an octal number in the range 0-1000.For more help use: HELP LINE2 LOGGING 00Xzz-z zx*MONITORyGUse the DEFINE LOGGING command to establish logging monitor parameters.DThe format is:$ DEFINE LOGGING MONITOR parametersParameter types are: STATEFor more help use: HELP LOGGING% HELP DEFINE LOGGING parameter-typeI3 STATEELUse the DEFINE LOGGING STATE command to control the operation of the loggingmonitor. The format is:% DEFINE LOGGING MONITOR STATE statetWhere state is one of:4 ON - To allow the logging monitor to log events.< OFF - To prevent the logging monitor from logging events.For more help use: HELP LOGGINGh2 NODE9Use the DEFINE NODE command to establish node parameters.yThe format is:! DEFINE NODE node-id parameters Parameter types are: ADDRESS NAMEIFor more help use: HELP NODE" HELP DEFINE NODE parameter-type 3 ADDRESSiQUse the DEFINE NODE ADDRESS command to associate a node name with a node address.tThe format is:- DEFINE NODE node-name ADDRESS node-addresstDWhere the node name is one that is not being use for any other node.For more help use: HELP NODE3 NAMENUse the DEFINE NODE NAME command to associate a node name with a node address.The format is:% DEFINE NODE node-id NAME node-nameKWhere node-id specifies the node that is to be identified by the node name. IIf the node-id is a name, it must be an existing name. The new node namee,must not be in use to identify another node.For more help use: HELP NODE2 OBJECT=Use the DEFINE OBJECT command to establish object parameters.aThe format is:' DEFINE OBJECT object-type parametersEParameter types are: COPIES  NAME  USERm VERIFICATIONrFor more help use: HELP OBJECT$ HELP DEFINE OBJECT parameter-type3 COPIESOUse the DEFINE OBJECT COPIES command to establish the type and number of copies .allowed to run for the object. The format is:* DEFINE OBJECT object-type COPIES copiesJWhere copies is the keyword SINGLE or a decimal number in the range 1-255.KThe keyword SINGLE indicates that only one copy is allowed and it is not to-Kbe started using multi-copy techniques. A number indicates that multi-copy Gstartup techniques are to be used and limits the number of simultaneousJcopies running.eFor more help use: HELP OBJECT3 NAMEOUse the DEFINE OBJECT NAME command to establish the prototype task name for the object. The format is:B& DEFINE OBJECT object-type NAME nameNWhere name is a standard RSX task name. For multi-copy tasks, the name should"end with three dollar signs ($$$).For more help use: HELP OBJECT3 USERMUse the DEFINE OBJECT USER command to establish the user identification undere+which the object is to run. The format is:e& DEFINE OBJECT object-type USER userWhere user is one of:AG DEFAULT - to run under the default user identification for the task. G LOGIN - to run under the login user identification from the accessa1 control used to connect to the task.mFor more help use: HELP OBJECT3 VERIFICATIONJUse the DEFINE OBJECT VERIFICATION command to establish the access control3verification method for the object. The format is:t6 DEFINE OBJECT object-type VERIFICATION verificationWhere verification is one of:E3 OFF - for access control to not be verified. G INSPECT - for access control to be verified the result passed to the  task.H ON - for access control to be verified and nothing passed to the( task if verification fails.For more help use: HELP OBJECT 2 PROCESSI?Use the DEFINE PROCESS command to establish process parameters.tThe format is:) DEFINE PROCESS process-name parameterscParameter types are: MAXIMUM CONTROLLERS MAXIMUM LINES STATEFor more help use: HELP PROCESSd% HELP DEFINE PROCESS parameter-typeb 3 MAXIMUMt r!Additional help is available for:t . MAXIMUM CONTROLLERS MAXIMUM LINES 4 CONTROLLERSiGUse the DEFINE PROCESS MAXIMUM CONTR00XzzfzyNx OxssOLLERS command to define the numberl?of controller databases to be stored at the end of the process.aThe formats are:9 DEFINE PROCESS process-name MAXIMUM CONTROLLERS numbers4 DEFINE KNOWN PROCESSES MAXIMUM CONTROLLERS number4Where number is a decimal integer in the range 1-64.For more help use: HELP PROCESSI4 LINESSDUse the DEFINE PROCESS MAXIMUM LINES command to define the number of6line databases to be stored at the end of the process.The formats are:3 DEFINE PROCESS process-name MAXIMUM LINES numberm. DEFINE KNOWN PROCESSES MAXIMUM LINES number4Where number is a decimal integer in the range 1-64.For more help use: HELP PROCESSm3 STATEDGUse the DEFINE PROCESS STATE command to define the default state of thei3process when the system is loaded. The formats are: * DEFINE PROCESS process-name STATE state% DEFINE KNOWN PROCESSES STATE statee m$Where state is either ON or CLEARED. eFor more help use: h HELP PROCESS2 SYSTEMOUse the DEFINE SYSTEM command to define the DECnet operating system parameters.EThe format is: DEFINE SYSTEM parametersn eWhere parameters are:e l LARGE BUFFER SIZE LOCATIOND MAXIMUM CONTROL BUFFERS MAXIMUM LARGE BUFFERS MAXIMUM SMALL BUFFERS MINIMUM RECEIVE BUFFERS POOL BYTE-AREA POOL NAME POOL PARTITIONaFor more help use: HELP SYSTEM parameterst3 LARGEhFor help on large buffers type:. e HELP SYSTEM LARGE BUFFER SIZE4 BUFFERFor help on large buffers type:o n HELP SYSTEM LARGE BUFFER SIZE5 SIZEHUse the DEFINE SYSTEM LARGE BUFFER SIZE command to establish the maximumCsize of data blocks to be transmitted and received. The format is:R B) DEFINE SYSTEM LARGE BUFFER SIZE numberM A=Where number is a decimal integer in the range 192. to 1024..P For more help use: a HELP SYSTEM 3 LOCATIONLUse the DEFINE SYSTEM LOCATION command to establish where the network bufferGpool and all processes that are automatically loaded are to placed in a:dynamically created partition, such as GEN. The format is: S" DEFINE SYSTEM LOCATION location i-Where location is either FIRSTFIT or TOPDOWN.m eP NOTE - The selection of TOPDOWN will help to prevent partition fragmentation. 3 MAXIMUMu!Additional help is available for:n 1 MAXIMUM CONTROL BUFFERS MAXIMUM LARGE BUFFERS MAXIMUM SMALL BUFFERS 4 CONTROLE!For help on control buffers type:r h- HELP DEFINE SYSTEM MAXIMUM CONTROL BUFFERSr 5 BUFFERSaNUse the DEFINE SYSTEM MAXIMUM CONTROL BUFFERS command to establish the maximumOnumber of control buffers to be allocated for the DECnet system. The format is:F T/ DEFINE SYSTEM MAXIMUM CONTROL BUFFERS numberT O5Where number is a decimal integer in the range 4-200.I uFor more help use: HELP SYSTEM4 LARGEMFor help on large buffers type:M R+ HELP DEFINE SYSTEM MAXIMUM LARGE BUFFERSO 5 BUFFERSpLUse the DEFINE SYSTEM MAXIMUM LARGE BUFFERS command to establish the maximumMnumber of large buffers to be allocated for the DECnet system. The format is:h e- DEFINE SYSTEM MAXIMUM LARGE BUFFERS numbera 4Where number is a decimal number in the range 4-200. TFor more help use: E HELP SYSTEM4 SMALLbFor help on small buffers type:n 4+ HELP DEFINE SYSTEM MAXIMUM SMALL BUFFERSM 5 BUFFERSLUse the DEFINE SYSTEM MAXIMUM SMALL BUFFERS command to establish the maximumMnumber of small buffers to be allocated for the DECnet system. The format is:i t- DEFINE SYSTEM MAXIMUM SMALL BUFFERS numbera OWhere number is a decimal integer in the range 1 to (# of control buffers - 1).S mFor more help use: i HELP SYSTEM 3 MINIMUMa  Help is available for: MINIMUM RECEIVE BUFFERS b 4 RECEIVEo m Help is available for: MINIMUM RECEIVE BUFFERS 5 BUFFERS JUse the DEFINE SYSTEM MINIMUM RECEIVE BUFFERS command to define the numberAof large buffers to be reserved for receives only. The format is:s e. DEFINE SYSTEM MINIMUM RECEIVE BUFFER number A3 00XzYz-z zx*POOL!Additional help is available for:e a POOL BYTE-AREAn POOL NAME POOL PARTITION) 4 BYTE-AREAoJUse the DEFINE SYSTEM POOL BYTE-AREA command to define the number of bytesFto be allocated to the network buffer pool, if the partition is to be Ldynamically allocated. The byte-area of the network pool is used for networkMspecific data such as node definitions and object definitions. The format is:  , DEFINE SYSTEM POOL BLOCK-AREA block-count T;Where block-count is a decimal integer in the range 1-1023.  aFor more help use: P HELP SYSTEM4 NAMENUse the DEFINE SYSTEM POOL NAME to define the name of the network pool. If theMpool does not already exist then a dynamic pool will be created from the pool partition. The format is: a DEFINE SYSTEM POOL NAME nameo h&Where name is 1 to 6 Rad50 characters. cFor more help use: n HELP SYSTEM 4 PARTITION.FUse the DEFINE SYSTEM POOL PARTITION to define the name of the dynamicLpartition to be used to create the network pool if the pool does not alreadyexist. The format is:T . DEFINE SYSTEM POOL PARTITION partition-name hPWhere partition-name is the name of a system controlled partition in your system such as GEN. For more help use: o HELP SYSTEM 3 options:INE SYSTEM POOL NAME nameo h&Where name is 1 to 6 Rad50 characters. cFor more help use: n HELP SYSTEM 4 PARTITION.FUse the DEFINE SYSTEM POOL PARTITION to define the name of the dynamicLpartition to be used to create the n"The format of the LIST command is:$ LIST component [information-type]Component types are: EXECUTOR LINE LOGGING NODE OBJECT PROCESS SYSTEM 8Component options are either CHARACTERISTICS or SUMMARY.For more help use: HELP component-type HELP LIST component-type 2 EXECUTORMUse the LIST EXECUTOR command to display information about the executor node.The format is:# LIST EXECUTOR [information-type]2Information types are CHARACTERISTICS and SUMMARY.For more help use: HELP EXECUTOR2 LINEBUse the LIST LINE command to display information about lines. The formats are:' LIST LINE line-id [information-type]& LIST KNOWN LINES [information-type]2Information types are CHARACTERISTICS and SUMMARY.For more help use: HELP LINE2 LOGGING MONITOR MUse the LIST LOGGING MONITOR command to display information about the logging monitor. The formats are:* LIST LOGGING MONITOR [information-type]( LIST KNOWN LOGGING [information-type]2Information types are CHARACTERISTICS and SUMMARY.For more help use: HELP LOGGINGl2 NODEEUse the LIST NODE command to display information about the executor'sN&perception of nodes. The formats are:' LIST NODE node-id [information-type]& LIST KNOWN NODES [information-type]2Information types are CHARACTERISTICS and SUMMARY.For more help use: HELP NODE 2 OBJECTSoFUse the LIST OBJECT command to display information about objects. The formats are:- LIST OBJECT object-name [information-type]H( LIST KNOWN OBJECTS [information-type]2Information types are CHARACTERISTICS and SUMMARY.For more help use: HELP OBJECT 2 PROCESSNIUse the LIST PROCESS command to display information about processes. Theo formats are:/ LIST PROCESS process-name [information-type]y* LIST KNOWN PROCESSES [information-type]2Information types are CHARACTERISTICS and SUMMARY.For more help use: HELP PROCESSa2 SYSTEMKUse the LIST SYSTEM command to display information about the DECnet system.LThe format is:! LIST SYSTEM [information-type]y2Information types are CHARACTERISTICS and SUMMARY.For more help use: HELP SYSTEM 3 options:CESS command to display information about processes. Theo formats are:/ LIST PROCESS process-name [information-type]y* LIST KNOWN PROCESSES [information-type]2Information types are CHARACTERISTICS and SUMMARY.For more help use: HELP PROCESSa2 SYSTEMKUse the LIST S00Zz[z\zyNx Oxss1 COBol COBOL/qualifiers filespec /OBJECT:filespecs( /NOOBJECT - Do not produce object file( /LIST[:filespec] - Produce listing file /NOLIST ** /SWITCHES:(cobolswitches)l 2 Switches8 /ACC:n - specifies acceptable object file diagnostics# /-BOU - suppresses bounds checkingn0 /CM6 - specifies COMPUTATIONAL-6 interpretation( /CREF - creates cross-reference listing2 /CSEG:n - specifies maximum procedural PSECT size% /CVF - specifies conventional format > /DE - create descriptors for all data-names (COBOL V4.1)( /ERR:n - suppresses diagnostic printingB /FLG:kk - create Federal Standard COBOL Diagnostics (COBOL V4.1)3 /HELP - displays complier command line informationt% /KER:kk - assigns PSECT kernel nameso /MAP - creates map on listing) /NL - suppresses listing of library texte/ /OBJ - prints object code locations on listings% /OV - overlays all procedural PSECTSe1 /PFM:n - assigns a maximum PERFORM nesting valuef# /-PLT - suppresses literal poolingt /RO - creates read-only PSECTS  /-ODL - (COBOL V4.0)9 /-SKL - suppresses SKL file generation (COBOL V4.1)a /SUB - identifies a subprogram)4 /SYM:n - adds symbol table space (COBOL V4.1)B /TMP:dd - assigns a device for temp file storage (COBOL V4.1) g) /NL - suppresses listing of library texte/ /OBJ - prints object code locations on listings% /OV - overlays all procedural PSECTSe1 /PFM:n - assigns a maximum PERFORM nesting valuef# /-PLT - suppresses literal poolingt /RO - creates r.05 ! program to copy fixed length message file10 dim a$[64],b$[72],na$[12]v;20 set upper on : input "File to copy ";na$ : set upper off,30 input "Length of records, (64 or 72) ";ln!40 if ln=64 or ln=72 then goto 60350 print "Can only copy 64 or 72 byte files" : exit60 open #3, na$70 open #4,na$+"/WR/LN:64/FX"80 if end #3 then 200"90 if ln=64 then input line #3, a$#100 if ln=72 then input line #3, b$110 if ln=64 then print #4, a$120 if ln=72 then print #4, b$ 130 goto 90 200 close5210 exit to copy fixed length message file10 dim a$[64],b$[72],na$[12]v;20 set upper on : input "File to copy ";na$ : set upper off,30 input "Length of records, (64 or 72) ";ln!40 if ln=64 or ln=72 then goto 60350 print "Can only copy 64 or 72 byte files" : exit60 open #3, na$70 open #4,na$+"/WR/LN:64/FX"80 if end #3 then 200"90 if ln=64 then input line #3, a$#100 if ln=72 then input line #3, b$110 if ln=64 then print #4, a$120 if ln=72 then print #4, b$ 130 goto 90 200 cl1 DALE The DAL Disk ALlocation utility allows the System Manager to create,A update and remove User FIle Directories. It also may be used for6 initialization, verification and auditing operations. MCR>DAL [operation]9 NEW Create a new User File Directory (UFD) and an asso-5 ciated entry in the VOlume Allocation FIle, (VAF.)> UPDATE Update existing Volume Allocation Entries. The volume0 default allocation may optionally be updated.; REMOVE Remove an existing UFD and any associated entry inD the Volume Allocation FIle.A VERIFY Verify and update the Volume Allocation FIle. The Volumeo; allocation file is updated to include one entry for each 7 directory included in the Master Directory FIle. TheE: operation may be used to initialize an existing volume. e> AUDIT Report directory allocation for each entry in the VAF. x; see AID DAL NEW and/or AID DAL UPDATE for more informationc2 NEWa MCR>DAL NEW dev:uic/qualifierO/ dev: Is the device on which the directory isi to be created.+ uic Is the UIC of the UFD to be created.e) /qual One of the following qualifiers.c8 /DALLOC[:n] Allocation limit (blocks.) If n is omitted" the volume default is assumed.: /NODALLOC No allocation limit. (I.e. unlimited storage.) EXAMPLES:+ MCR>DAL NEW DR0:[311,200]/DALLOC:1000h t MCR>DALA Operation? NEW Device and UFD? DR0:[311,200]m Allocation limit? 10002 UPDATE. MCR>DALLOC UPDATE[/qualifiers] dev:uic/limit1 /qua00\z]z-z zx*l One or more of the following qualifiers: / /DEFAULT The Volume Default is to be updated.O' /LOCK Lock the specified account(s).O+ /UNLOCK Unlock the specified account(s).d0 /OUTPUT:filespec Write command output to file.' /PRINT Print output at line printer.e & dev: Device of entry to be updated. uic Is the UFD to be updated.* /limit ONE OF THE FOLLOWING QUALIFIERS:( /DALLOC[:n] Limit storage to n blocks." /NODALLOC For unlimited storage.ev:uic/limit1 /quaThe more I see my fellow man - the more I like my dog. I don't yell in your ear, please don't pound on my keyboard. When all else fails, turn off the terminal. Keep it up and I'll tell them you were playing STARTREK all day.Just when you have the system down pat, we change it all on you.To err is human - - - To really screw up requires a computer. I'm not perfect, but try going back to your SLIDE RULE ! Comupters unite, you have nothing to lose but your "CHAINS". Did you really expect me to read in "5/16" correctly ? When in doubt, comment it out ! This is the way the world ends, not in a bang but a CRASH. You're ok, I'm ok, but DEC's program logic ...... So the day wasn't a total loss, You made lots of scratch paper. I know I put that file somewhere, now let me think.... No, the head crash didn't lose the files, only the DIRECTORIES. Check Your Biorhythm, You're making a lot of mistakes today. Push that on your STACK ! No, I can't UNDELETE that program. As of today's date, all file sizes will be reported in metric. Give a programmer a byte, and he'll take a block. Look at that VAX, She's really stacked. In science, we use DECIMALS, not FRACTIONS. I don't understand either, that command should have worked ! Don't complain, last time I took a week off it was total chaos. So the program doesn't work, the documentation is beautiful. New manuals will be out the week before we change the system. I'm sorry service is slow, but there are three STARTREKs going. Don't look at me, I don't design programs, only run them. If all else fails, try reading the manual (if You can find it.) If You can't communicate, the least You can do is shut up ! Eat Your heart out --- I B M Play it again Sam, (the reel just fell of the Mag-Tape drive.) Abandon Hope all Ye who program here ! Our system is up to date, only the Programmers are behind. Look carefully, the [ and ] keys are on the keyboard somewhere. At the speed you type, we could be here forever ! No, odd addresses don't occur on the South side of the street! The program wouldn't bomb if only it kept its TRAP shut. Keep it up and we'll both go out for a beer. Keep trying, eventually You'll get that command line right. Not tonight - - my DISK has got a splitting HEADache. If things are that bad, better call home and say You'll be late.I know just the routine you need, unfortunately it's in FOCAL. That's ok, FRIDAY is only 15,552,345 clock ticks away. What's wrong with You? I understood that error message ! Thing's seem slow to You ? I'm still running on 50 Hertz. That's what happens when you buy a BRITISH operating system. No, IAS doesn't stand for "Impossibly Aggravating System". A new command "UNQUE" will read listing (in reverse) from LP: Debugging programs is fun, (so is running headfirst into walls.)Our programs are Bug-free, (our Programmers however...) If the system TIME is wrong, maybe my CLOCK needs winding. Remember the MAINE. (To heck with the SUBROUTINE.) This program is not recursive, re-entrant or pure (its just FUN)The Japanese computer that said "PREASE ROGIN ---" Don't worry, it will be fixed in the next release. 00]z^z_z`zazOxssUnfortunately that subroutine is in a WRITE-only PSECT. If that file was so important, you should have PROtected it. If You don't clean up your files, someday I WILL. I hope that taught you to document well. Remember the MAINE. (To heck with the SUBROUTINE.) This program is not recursive, re-entrant or pure (its just FUN)The Japanese computer that said "PREASE ROGIN ---" Don't worry, it will be fixed in the next release. 1 DAN/ C An enhanced version of DIAblo. Prints a file at the DIABLO letter-  quality printer.l e Command format: S MCR>DAN Filename.typ/SW s Allowed switches are: p /CO:nn Print nn copiesi & /HELP Gives this Help messageu t5 /LE:nn Shift the Left margin nn spaces to the rightc s /SP Special form:n% 1/ No Leading & trailing FORM FEEDr/ 2/ No Truncation of line to fit 8&1/2" paper  3/ Up to 156 Characters/line ! /TW Print at 12 characters/inch1 DFX # In response to "DFX>" prompt, typew L to list referenced block 9 W to write the currently referenced block back onto disk  N to read the next block ; R to reread the current block (overwriting current buffer)s B to read the previous blocko7 F for full-word addresses (defaults to byte addresses) * H for half-word (byte) addresses in block& T to type out the block as ascii text5 S to set/clear flag for spooling output file to LP0:u5 K to calculate checksum of first 255. words of block  E to exit to the monitorD5 M/nnnnn change buffer word to the octal value 000000 1 M,LLL change buffer word to rad50 vaLue of "LLL" / M;AA change buffer word to ascii value of "AA"r1 M: display buffer word in octal, rad50 and asciid< D,N to change default block number for read and write to N ; A,N to read and list block N (N absent implies next block)= C,N to read and list all blocks up to and including block N.r7 P,N changes the high-order block number from the disk.o iE note that lun 4 must be re-assigned to the disk to enable write-backuffer word to the octal value 000000 1 M,LLL change buffer word to rad50 vaLue of "LLL" / M;AA change buffer word to ascii value of "AA"r1 M: display buffer word in octal, rad50 and asciid< D,N to change default block number for read and write to N ; A,N to read and list block N (N absent implies next block)= C,N to read and list all blocks up to and including block N.r7 P,N changes the high-order block number from the disk.o iE note that lun 4 must 1 DOB; object code dis-assembler< DOB TI:=FILE Dis-assemble file.obj to TI:> Input defaults to filename.obj> Output defaults to disobj.obj - DOB FILE=LB:[1,1]SYSLIB.OLB/LB:XYZ B Disassemble module XYZ from SYSLIB 0 errors are reported by the following trap codes  ERROR # ERROR 1 GCML ERROR 2 CSI ERROR 3 ERROR OPENING INPUT FILEO 4 ERROR OPENING OUTPUT FILE 5 ERROR READING INPUT FILE 6 ERROR WRITING OUTPUT FILE 7 RECORD TYPE ERROR! 10 TOO MANY PSECTS FOR PROGRAM ! 11 PSECT NOT IN REQUIRED RANGE 12 UNEXPECTED RLD TYPE ! 13 RLD TYPE ERROR IN FINISHING! 14 RLD - ASCII BUFFER MISMATCHL 15 LIBRARY SEARCH FAILURE Disassemble module XYZ from SYSLIB 0 errors are reported by the following trap codes  ERROR # ERROR 1 GCML ERROR 2 CSI ERROR 3 ERROR OPENING INPUT1 DSCH The Disk Save and Compress (DSC) utility program copies Files-11 diskH volumes to tape or disk for backup and storage. When it is used forH volume restoration, it reallocates and consolidates the resulting disk. - The general form of the DSC command line is: = outdev:[outlabel][/outswitches]=indev:[inlabel][/inswitches] = outdev: lists output device(s) to which data is transferred. = indev: lists the inputs device(s) from which data is taken. : outlabel Optional00azbz-z zx* qualifier to change output volumn name. DB inlabel Optional specifier for volumn lable for a tape containing< multiple saved disks. Defaults to first image on the tape. o3 outswitches /AP, /BAD, /BL, /CMP, /DENS, /RW, /VE. inswitches /BL /RWr f, For more information, type AID DSC switch2 AP sF The /AP switch causes DSC to append a copy of the input device to theG specified output magtape. /AP is valid only if that tape is the firstsC tape of the tape set. The copy may extend to succeeding magtapes.n o2 BADo n8 There are five forms of the DSC switch /BAD. They are: a< /BAD=MAN Causes DSC to prompt for bad blocks to be added to6 the output volume's bad block file, [0,0]BADBLK.SYS E8 /BAD=MAN:NOAUTO Combination of /BAD=MAN and /BAD=NOAUTO (Either order is acceptable) B /BAD=NOAUTO Causes DSC to ignore the bad block descriptor area on9 the disk. The bad block file will be empty unless bada blocks are entered manually.e p= /BAD=OVR Causes DSC to treat output disk as a non-last tracko6 device when searching for bad block data. Use this7 switch only if BAD utility was used specifying /OVR. < /BAD=MAN:OVR This is a combination of /BAD=MAN and /BAD=OVR2 BL , The blocking factor switch has the form of: = /BL=n EI where n is the number of disk blocks that should be written at one time.lJ The default is n=4, and 4 is the smallest value that should be specified. aJ Specifying a large value for n decreases the amount of time necessary for: the copy by reducing the number of required I/O commands. bL Once a blocking factor is specified, it becomes the default blocking factorL until a new value is specified or until DSC exits. If magtape is specifiedK as the input device, the blocking factor is automatically set to the value at which that tape was created. w= If DSC will expand its partition to honor large values of n.t- It will not attempt to shrink its partition.n 2 CMPa K The /CMP switch causes DSC to compare the input and output volumes withoutuM first performing a copy operation. The input and output volumes cannot bothcH be magtapes. Multireel magtapes can be compared with a disk. When theI compare of the current tape is completed, the operation will continue onc4 the next volume until all reels have been compared. pD If tape is involved, it is suggested that it be specified as input.2 DENS > The DSC density switch for magtapes has the following format: e9 /DENS=1600 Specifies that the output magtape be writtenu1 at 1600 bpi. It is not necessary to use thisT switch on input magtapes.n b7 /DENS=800:1600 The switch is not valid on any magtapei1 controller which automatically senses densityi1 (e.g. TM03). It specifies that the first twon1 blocks on the first output tape be written at2 800 bpi. The remainder of the magtape set will be written at 1600 bpi. T; The default density for MM: tapes is 800 bpi,for MS:,1600 bpi,and for MF:6250 bpi.2 RW uM The /RW switch specifies to DSC that the magtapes be rewound before they are L used. The switch applies to all tapes on the same side of the command line.2 VE iN The /VE switch specifies to DSC that it should do a compare operation betweenL the input and output volumes after the input volume is copied to the output? volume. The input and output volumes cannot both be magtapes.n at 1600 bpi. T; The default density for MM: tapes is 800 bpi,for MS:,1600 bpi,and for MF:6250 bpi.2 RW uM T1 DTCL G The DTC program provides an online, appointment scheduler and calendarA facility. The program currently supports three basic functions 3 Month-At-A-Glance Week-At-A-Glance Day-At-A-Glance  Command line format is:  MCR>DTC [[option] [date]]. 4 Options are D for Day, W for Week, and M for Month.9 Dates may be entered as mmddyy, mm/dd/yy or as dd-JAN-yy : MCR>DTC D 3-JAN-83 Diplays appointments for Jan 3 1983.D MCR>DTC D 010183 9:00 See Boss Enters appointment J00bzczdzzazOxssan 1 1983 @ 9:00 DG DTC commands T, C, and R correspond to D, M, and W but exit immediatlyl@ Time ranges of form hh:mm>hh:mm give intervals; don't omit 0's.9 If no option is given, the DTC option menu is displayed.C> Options are input until the user types Q (quit) or EX (exit). oA You must initially create a null file DTC.DAT to use the programed as mmddyy, mm/dd/yy or as dd-JAN-yy : MCR>DTC D 3-JAN-83 Diplays appointments for Jan 3 1983.D MCR>DTC D 010183 9:00 See Boss Enters appointment J1 DUPlex@ DUPlex permits one to connect to the PDP11/45 computer from anyF terminal on the PDP11/44. Files may be also transmitted and received.  calling MCR>DUP  6 Control-B: Exit from DUPLEX. Terminal talks to MCR.G Control-T: Transmit a file. Program will prompt for a filespec. i.e.O DUPLEX>=SY0:[100,200]FileName.Typ;4. The "=" is mandatory.G Control-P: Toggle between line-by-line and whole-file transmission.B Control-N: Transmit one line in line-by-line transmission mode.* Control-A: Abort transmission of a file.F Control-F: Open/close file RECEIVED.DAT file. (Closed by Control-B)A Control-]: Sets up line delay value by reading 1 character andD; and subtracting 48. from it (ASCII 0). G Control-\: Toggles line delay off/on. In line mode, if line delay isYO on, the file is transmitted 1 line at a time with automaticiC proceeding after "delay" ticks between lines. G Control-Y: Toggles character delay. This will insert a 1 tick delay 7 between sending characters if set. l ( See also DR:[1,10]DUPLEX.DOC]: Sets up line delay value by reading 1 character andD; and subtracting 48. from it (ASCII 0). G Control-\: Toggles line delay off/on. In line mode, if line delay isYO on, the file is transmitted 1 line at a time with automaticiC proceeding after "delay" ticks between lines. G Control-Y: Tog1 EBCdic: Here are the decimal values for the EBCDIC character set.M 000 NUL 032 DS 064 SPA 096 - 128 160 192 224 \ N 001 SOH 033 SOS 065 097 / 129 a 161 193 A 225 M 002 STX 034 FS 066 098 130 b 162 s 194 B 226 S M 003 ETX 035 067 099 131 c 163 t 195 C 227 T M 004 PF 036 BYP 068 100 132 d 164 u 196 D 228 U M 005 HT 037 LF 069 101 133 e 165 v 197 E 229 V sM 006 LC 038 ETB 070 102 134 f 166 w 198 F 230 W M 007 DEL 039 ESC 071 103 135 g 167 x 199 G 231 X aM 008 040 072 104 136 h 168 y 200 H 232 Y bM 009 041 073 105 137 i 169 z 201 I 233 Z cN 010 SMM 042 SM 074 106 138 170 202 234 N 011 VT 043 CU2 075 . 107 , 139 171 203 235 N 012 FF 044 076 < 108 % 140 172 204 236 N 013 CR 045 ENQ 077 ( 109 _ 141 173 205 237 N 014 SO 046 ACK 078 + 110 > 142 174 206 238 N 015 SI 047 BEL 079 111 ? 143 175 207 239 M 016 DLE 048 080 & 112 144 176 208 240 0 M 017 DC1 049 081 113 145 j 177 209 J 241 1 M 018 DC2 050 SYN 082 114 146 k 178 210 K 242 2 M 019 TM 051 083 115 147 l 179 211 L 243 3 M 020 RES 052 PN 084 116 148 m 180 212 M 244 4 M 021 NL 053 RS 085 117 149 n 181 213 N 245 5 M 022 BS 054 UC 086 118 150 o 182 214 O 246 6 M 023 IL 055 EOT 087 119 151 p 183 215 P 247 7 jM 024 CAN 056 088 120 152 q 100dzz-z zx*84 216 Q 248 8 kM 025 EM 057 089 121 153 r 185 217 R 249 9 lN 026 CC 058 090 ! 122 : 154 186 218 250 N 027 CU1 059 CU3 091 $ 123 # 155 187 219 251 N 028 IFS 060 DC4 092 * 124 @ 156 188 220 252 N 029 IGS 061 NAK 093 ) 125 ' 157 189 221 253 N 030 IRS 062 094 ; 126 = 158 190 222 254 N 031 IUS 063 SUB 095 127 " 159 191 223 255 N See also HELP EBCDIC HEXADECIMAL for hexadecimal values of EBCDIC characters,= and HELP EBCDIC OCTAL for octal values of EBCDIC characters.1 2 HEXADECIMAL1> Here are the hexadecimal values for the EBCDIC character set.H 00 NUL 20 DS 40 SPA 60 - 80 A0 C0 E0 \ J 01 SOH 21 SOS 41 61 / 81 a A1 C1 A E1 H 02 STX 22 FS 42 62 82 b A2 s C2 B E2 S H 03 ETX 23 43 63 83 c A3 t C3 C E3 T H 04 PF 24 BYP 44 64 84 d A4 u C4 D E4 U H 05 HT 25 LF 45 65 85 e A5 v C5 E E5 V H 06 LC 26 ETB 46 66 86 f A6 w C6 F E6 W H 07 DEL 27 ESC 47 67 87 g A7 x C7 G E7 X H 08 28 48 68 88 h A8 y C8 H E8 Y H 09 29 49 69 89 i A9 z C9 I E9 Z J 0A SMM 2A SM 4A 6A 8A AA CA EA J 0B VT 2B CU2 4B . 6B , 8B AB CB EB J 0C FF 2C 4C < 6C % 8C AC CC EC J 0D CR 2D ENQ 4D ( 6D _ 8D AD CD ED J 0E SO 2E ACK 4E + 6E > 8E AE CE EE J 0F SI 2F BEL 4F 6F ? 8F AF CF EF G 10 DLE 30 50 & 70 90 B0 D0 F0 0 H 11 DC1 31 51 71 91 j B1 D1 J F1 1 H 12 DC2 32 SYN 52 72 92 k B2 D2 K F2 2 H 13 TM 33 53 73 93 l B3 D3 L F3 3 H 14 RES 34 PN 54 74 94 m B4 D4 M F4 4 H 15 NL 35 RS 55 75 95 n B5 D5 N F5 5 H 16 BS 36 UC 56 76 96 o B6 D6 O F6 6 H 17 IL 37 EOT 57 77 97 p B7 D7 P F7 7 H 18 CAN 38 58 78 98 q B8 D8 Q F8 8 H 19 EM 39 59 79 99 r B9 D9 R F9 9 J 1A CC 3A 5A ! 7A : 9A BA DA FA J 1B CU1 3B CU3 5B $ 7B # 9B BB DB FB J 1C IFS 3C DC4 5C * 7C @ 9C BC DC FC J 1D IGS 3D NAK 5D ) 7D ' 9D BD DD FD J 1E IRS 3E 5E ; 7E = 9E BE DE FE I 1F IUS 3F SUB 5F 7F " 9F BF DF FF 2 OCTAL 8 Here are the octal values for the EBCDIC character set.M 000 NUL 040 DS 100 SPA 140 - 200 240 300 340 \ 5N 001 SOH 041 SOS 101 141 / 201 a 241 301 A 341 M 002 STX 042 FS 102 142 202 b 242 s 302 B 342 S M 003 ETX 043 103 143 203 c 243 t 303 C 343 T =M 004 PF 044 BYP 104 144 204 d 244 u 304 D 344 U M 005 HT 045 LF 105 145 205 e 245 v 305 E 345 V sM 006 LC 046 ETB 106 146 206 f 246 w 306 F 346 W M 007 DEL 047 ESC 107 147 207 g 247 x 307 G 347 X aM 010 050 110 150 210 h 250 y 310 H 350 Y bM 011 051 111 151 211 i 251 z 311 I 351 Z cM 012 S00d{e{zzazOxssMM 052 SM 112 152 212 252 312 352 dN 013 VT 053 CU2 113 . 153 , 213 253 313 353 N 014 FF 054 114 < 154 % 214 254 314 354 N 015 CR 055 ENQ 115 ( 155 _ 215 255 315 355 N 016 SO 056 ACK 116 + 156 > 216 256 316 356 N 017 SI 057 BEL 117 157 ? 217 257 317 357 M 020 DLE 060 120 & 160 220 260 320 360 0 M 021 DC1 061 121 161 221 j 261 321 J 361 1 M 022 DC2 062 SYN 122 162 222 k 262 322 K 362 2 M 023 TM 063 123 163 223 l 263 323 L 363 3 M 024 RES 064 PN 124 164 224 m 264 324 M 364 4 M 025 NL 065 RS 125 165 225 n 265 325 N 365 5 M 026 BS 066 UC 126 166 226 o 266 326 O 366 6 M 027 IL 067 EOT 127 167 227 p 267 327 P 367 7 jM 030 CAN 070 130 170 230 q 270 330 Q 370 8 kM 031 EM 071 131 171 231 r 271 331 R 371 9 lN 032 CC 072 132 ! 172 : 232 272 332 372 N 033 CU1 073 CU3 133 $ 173 # 233 273 333 373 N 034 IFS 074 DC4 134 * 174 @ 234 274 334 374 N 035 IGS 075 NAK 135 ) 175 ' 235 275 335 375 N 036 IRS 076 136 ; 176 = 236 276 336 376 N 037 IUS 077 SUB 137 177 " 237 277 337 377  271 331 R 371 9 lN 032 CC 072 132 ! 172 : 232 272 332 372 N 033 CU1 073 CU3 133 $ 173 # 233 273 333 373 N 034 IFS 074 DC4 134 * 174 @ 234 274 334 374 N 035 IGS 075 NAK 11 EDIt A EDI or EDIT is a line oriented editor supplied with IAS and RSX.  EDI Command Conventions: < 1. The asterisk (*) can be used in place of any number2 in an EDI command. It is read as 32,767. H 2. An elipsis (...) can be used in many search strings to identifyF characters beween the first and last character of the string. : 3. EDI allows the use of abbreviations for commands. I A summary of legal EDI commands may be obtained by entering the command: E AID EDI SUMMARY o 2 SUMMARYt sD Listed below is a summary of EDI commands. Only the first word of 3 two-word commands is included for ease of search.r  ADD INSERT RETYPE  BEGIN KILL SAVE BLOCK LINE SEARCH. BOTTOM LIST SELECTe CHANGE LOCATE SIZE CLOSE MACRO TABe CONCATENATION NEXT TOPe CTRL/Z OPEN TYPE  DELETE OUTPUT UNSAVEf END OVERLAY UPPERd ERASE PAGE VERIFYa ESCAPE PASTE WRITEa EXIT PRINT FILE READ FIND RENEW FORM RETURNR H A description of each command may be obtained by entering the command: w AID EDI command2 ADDe ADD A[DD] string < The command ADD string Adds the character string' indicated to the current line. H! ADD AND PRINT AP stringR < Adds the character string indicated to the current' line and prints the entire line. 2 BEGIN BEGIN B[EGIN]R a< Sets the current line to the line preceding the top< line in the file or block buffer. This command cre-< ates a copy of the file when it is invoked in line mode.2 BLOCK  BLOCK ON/OFF BL[OCK] [ON] orm BL[OCK] [OFF] h< Changes to and from the EDI block mode of accessing text.2 BOTTOM BOTTOM BO[TTOM] < Moves the line pointer to the bottom of the current< block (in block mode) or to the bottom of the file (in line mode).2 CHANGE, CHANGE [n]C[HAN00e {z-z zx*GE] /string1/string2[/]... n: Replaces string1 with string2 in the current line n times.h2 CLOSEe CLOSE CL[OSE] [filespec] < Transfers the remaining lines in the block buffer and: input file to the output file and closes all files. ! CLOSE AND DELETE CDL [filespec] O< Transfers the remaining lines in the block buffer and= the input file into the output file, closes the outputo' file and deletes the input file. H CLOSE SECONDARY CLOSES s' Closes the secondary input file. 2 CONCATENATIONn% CONCATENATION CHARACTER CC [letter]h < Changes the concatenation character to the character& specified. (The default is &).2 CTRL/Z  e7 Closes files and terminates the editing session.E2 DELETE DELETE D[ELETE] [n] ors D[ELETE] [-n] < Deletes the current line and n-1 lines if n is a po-< sitive number. Deletes n lines preceding the current< line if n is a negative number. Negative numbers can" only be used in block mode. O$ DELETE AND PRINT DP [n] or DP [-n] < Deletes the current line and prints the new current line.2 END END E[ND] T< Sets the current line to the last line in a file or block buffer.2 ERASEE ERASE ERASE [n]s , Erases the current line in line mode.2 ESCAPE  or ALTMODE  < Prints the previous line and makes it the new current line. 2 EXIT EXIT EXIT [filespec] e< Transfers the remaining lines in the block buffer and; input file to the output file, closes files, renamesr; the output file, and terminates the editing session.h u EXIT AND DELETE ED [filespec]  e< Transfers the remaining lines in the block buffer and: input file to the output file closes files, renames2 the output file and deletes the input file.2 FILE FILE FIL[E] filespec < Transfers lines from input file to both the output< file and the specified file until a formfeed or end of file is encountered.2 FIND FIND [n]F[IND] stringa r< Searches the current block or input file, beginning< at the line following the current line, for the nth< occurrence of the string. (If n is not specified,< EDI searches for the next occurrence of the string.)2 Sets the line pointer to the line it finds.2 FORM FORM FEED FFT s1 Inserts a form feed into the block buffer. 2 INSERT INSERT IN[SERT] [string]l f< Enters the specified string, immediately following< the current line. If no string is specified, EDI enters input mode. 2 KILL KILL KILLo g< Closes input and output files and deletes the output file.2 LINE( LINE CHANGE [n]LC /string1/string2[/] c< Changes all occurrences of string1 in current line" (and n-1 lines) to string2.2 LIST LIST ON TERMINAL LI[ST]d t< Prints all the lines remaining in the block buffer or" input file on the terminal.2 LOCATE LOCATE [n]L[OCATE] string u< Locates the nth occurrence of the specified string.< In block mode, the search stops at the end of the current block.l2 MACRO  MACRO MACRO [x] definition E A; Defines macro number x to be the EDI commands in thee definition. r MACRO CALL MC[CALL] < Retrieves macro definition stored in a file, MCALL;n.  MACRO EXECUTE [n]Mx [a] < Executes macro x [n] times, while passing numeric ar-1 gument [a]. The value x may be 1,2, or 3.c s" MACRO IMMEDIATE [n]  s< Defines and executes a macro n times. Stores it as macro number 1.2 NEXT NEXT N[EXT] [n] or N[EXT] [-n] < Establishes a new current line n lines away from the current line. r NEXT AND PRINT NP[n] or NP[-n]i m/ Establi00e{{zzazOxssshes and prints new current line. 2 OPEN! OPEN SECONDARY OP[ENS] filespece a* Opens the specified secondary file.2 OUTPUT OUTPUT ON/OFF OU[TPUT] ON or  OU[TPUT] OFF  E6 Enables or disables a file transfer to an out- put file in line mode.s 2 OVERLAYc OVERLAY O[VERLAY] [n] < Deletes n lines, enters Input mode, and inserts new8 line(s), as typed, in place of the deleted lines.2 PAGE PAGE PAG[E] n or -n < Enters block mode. Reads page n into current block< buffer. If n is less than current page, goes to top= of file first. Pages are set by form feed characters.[ T PAGE FIND [n]PF[IND] string < Searches successive blocks for the nth occurrence of the string. " PAGE LOCATE [n]PL[OCATE] string < Searches successive blocks for the nth occurrence of the string.2 PASTEn% PASTE PA[STE] /string1/string2[/]  E< Searches all remaining lines in file or block buffer2 for string1 and replaces them with string2.2 PRINTr PRINT P[RINT] [n] < Prints the current line and the next n-1 lines. The1 last line printed is the new current line.e2 READ READ REA[D] n  < Reads the next n blocks of text into the block< buffer. If the buffer contains text, the new text is appended to it.2 RENEWn RENEW REN[EW][n] A< Writes the current block to an output file and reads8 a new block from an input file (block mode only).2 RETURN  N< Prints the next line and makes it the new current> line. This command also exits from input mode if typed( as the first character of a line.2 RETYPE RETYPE R[ETYPE] stringl s< Replaces the current line with the specified string< or deletes the current line if no string is speci- fied.2 SAVE SAVE SA[VE] [n] [filespec] c< Saves the current line and the next n-1 lines in the specified file.2 SEARCH) SEARCH AND CHANGE SC/string1/string2[/]  t4 Locates string1 and replaces it with string2.2 SELECT SELECT PRIMARY SPp m7 Reestablishes the primary file as an input file.  Y SELECT SECONDARY SSs n8 Selects the open secondary file as an input file.2 SIZE SIZE SIZE nl s< Specifies the maximum number of lines which can be read into a block buffer.2 TAB  TAB TA[B] ON ort TA[B] OFF n) Turns automatic tabbing on or off. 2 TOP TOP T[OP]A < Moves the line pointer to the line preceding the top< line of the current block in block mode or the top of< the file in line mode. This command creates a copy9 of the file each time it is executed in line mode.e  TOP OF FILE TOF < Returns to the top of the input file and saves all of< the previously edited pages. This command creates a8 new version of the file each time it is executed.2 TYPE TYPE TY[PE] [n] O< Prints the next n lines. Identical to the print com-< mand in line mode. However, in block mode, the line< pointer remains at the current line unless EDI re- ached an end of block.o2 UNSAVE UNSAVE UNS[AVE] [filespec]n o< Inserts all lines from the specified file following< the current line. If no file is named, EDI uses SAVE.TMP.2 UPPERt UPPER CASE UC ON or UC OFFe < Enables or disables conversion of lower case char-< acters to upper case letters, when they are entered at a terminal.o2 VERIFY VERIFY V[ERIFY] ON or V[ERIFY] OFFa h< Selects whether the operation of Locate and Change; commands will be verified (printed after the line isr located or changed).e2 WRITEf WRITE W[RITE]e u< Writes the contents of the block buffer to an output( file and erases the block buffer.  e < 00f{z-z zx*1 EDT& You can get help on a topic by typing& AID EDT topic subtopic subsubtopic...  Examples: AID EDT SUBSTITUTE TOPICS ARE C KEYPAD MACRO SAVE NUMBER NUMBERS SCREENC VT100 DELETE REPLACE ORIGINAL QUIET SEARCHE VT52 QUERY RESEQUENCE PLUS SEARCH TERMINALD CLEAR EXIT SEQUENCE REST SCREEN VERSIONG CHANGE SAVE RANGE SELECT TAB SUBSTITUTEF ENTITIES SEQUENCE ALL STRING TERMINAL BRIEF[:n]C HARDCOPY FILL AND THRU TRUNCATE NOTYPETA KEYPAD FIND BEGIN WHOLE VERIFY NEXTMB SCREEN INCLUDE BEFORE SET WRAP QUERYA SUBCOMMANDS INSERT BUFFER CASE SHOW TABS A COPY JOURNAL DOT CURSOR BUFFER TYPE B DUPLICATE MOVE END ENTITY CASE BRIEFA QUERY QUERY FOR KEYPAD CURSOR STAY B DEFINE PRINT LAST LINES ENTITY WRITEF KEY QUIT MINUS MODE KEY SEQUENCE  W2 KEYPAD< Enter the keypad editor through the CHANGE command with theG KEYPAD option set (see SET command). See AID CHANGE KEYPAD for more information.B2 VT100  \ )0 lqqqqqqqqwqqqqqqqqwqqqqqqqqwqqqqqqqqk lqqqqqqqqwqqqqqqqqwqqqqqqqqwqqqqqqqqk^ x ^ x Down x x x x x x Fndnxt x Del L x\ x x x x x x x  Gold x Help x x xn x x x x x Left x Right x x x x Find x Und L xU x Up x v x x x tqqqqqqqqnqqqqqqqqnqqqqqqqqnqqqqqqqquY mqqqqqqqqvqqqqqqqqvqqqqqqqqvqqqqqqqqj x Page x Sect x Append x Del W xqQ x x x x x u x Commandx Fill x Replacex Und W x S Delete Rubout character tqqqqqqqqnqqqqqqqqnqqqqqqqqnqqqqqqqqu [ Linefeed Rubout word x Advancex Backup x Cut x Del C xqS Back space Backup to beginning of line x x x x xw CTRL/A Compute tab level x Bottom x Top x Paste x Und C x S CTRL/D Decrease tab level tqqqqqqqqnqqqqqqqqnqqqqqqqqnqqqqqqqqumY CTRL/E Increase tab level x Word x  Eol x Char x xqU CTRL/K Define key x x x x Enter xnn CTRL/T Adjust tabs xChngcasex Del Eolx Specinsx xS CTRL/W Refresh screen tqqqqqqqqvqqqqqqqqnqqqqqqqqu xW CTRL/Z Return to line mode x Line  x Select x x Z x x x Subs xl Type a key for help on that key. x Open line x Reset x xZ To exit, type a space. mqqqqqqqqqqqqqqqqqvqqqqqqqqvqqqqqqqqj 3 00F The LINE key advances or backs up the cursor to the nearest beginning% of a line (see ADVANCE and BACKUP).  TA The OPEN LINE key inserts a carriage return after the cursor andlB leaves the cursor position unchanged. Pressing the OPEN LINE keyD when the cursor is at the beginning of the line creates a new blank line.3 01A The WORD key moves the cursor forward or backward by a word (see ADVANCE and BACKUP).  .C The CHGC key changes the case of a range of characters as follows:3 K8 1. If there is a select range active, the case of each9 alphabetic character in the select range is changed. T< 2. If 1 does not apply and the cursor is positioned on t00f!{{zzazOxsshe8 current search string, the case of each alphabetic / character in the search string is changed.n g< 3. If 1 and 2 do not apply, then the case of one character: is changed, and the cursor moves one character in the current direction.e3 02G The EOL key moves the cursor forward or backward to the nearest end ofh line.  cE The DELETE EOL key deletes all characters to the right of the cursorcD in the current line, including the character on which the cursor is positioned. 3 03D The CHAR key advances or backs up the cursor by one character (see ADVANCE and BACKUP).  gB The SPECINS key inserts any ASCII character. Press the GOLD key,B enter the decimal representation of the character, press the GOLD key again, and press SPECINS. E3 04D The ADVANCE key sets the current direction to advance for the CHAR,B WORD, LINE, EOL, PAGE, SECTION, SUBSTITUTE, SUBSTITUTE NEXT, FINDB and FIND NEXT keys. Advance means the movement will occur in theI direction toward the end of the file, that is, to the right and down. r F The BOTTOM key positions the cursor at the bottom of the text buffer.3 05G The BACKUP key sets the cursor direction to backup for the CHAR, WORD,oE LINE, EOL, PAGE, SECTION, SUBSTITUTE, SUBSTITUTE NEXT, FIND and FIND F NEXT keys. Backup means the movement will occur in the direction of9 the beginning of the file, that is, to the left and up. E @ The TOP key positions the cursor at the top of the text buffer.3 06F The CUT key deletes the select range, storing it in the paste buffer.D The select range is all the text between the selected position (seeE SELECT) and the current cursor position. If you have not selected aoG range and the cursor is positioned on the current search string, thatTD string is cut. The previous contents of the paste buffer is lost.  hC The PASTE key inserts the contents of the paste buffer directly inu front of the cursor. 3 07G The PAGE key moves the cursor to the top of a page. A page is definedtG by a delimiter string, which can be set by the SET ENTITY command. Thel< default page delimiter is the form feed character (CTRL/L). rB The COMMAND key allows the you to input a line mode command to beB executed. The command is terminated by pressing the ENTER key on the keypad.3 08? The SECTION key moves the cursor 16 lines forward or backward,sB depending on the current direction mode (see ADVANCE and BACKUP). D The FILL key performs a word fill on the select range. A word fillE reformats a block of text so that as many full words as possible aremC placed on each line without exceeding the right margin. The rightLE margin may be set by the SET WRAP command or, if it was not set, the > default is the terminal width - 1. For purposes of the FILL3 command, only spaces are used as word delimiters. e3 09D The APPEND key deletes the selected range and adds it to the end ofA the paste buffer. The selected range is all the text between theiG selected position (see SELECT) and the current cursor position. If noaA select has been done and the cursor is positioned on the currentc+ search string, that string is appended.  B The REPLACE key deletes the select range and replaces it with the! contents of the PASTE buffer. u3 107 Use the HELP key to obtain help on the editing keypad.m3 11A The FIND NEXT key searches for the next occurrence of the search D string entered by the FIND key. The direction of the search is the- current direction mode (ADVANCE or BACKUP). h uE The FIND key searches for an occurrence of a string. Press the FIND F key and then enter the string from the main keyboard. End the stringE by pressing either the ADVANCE or BACKUP key to set the direction ofe the search. t3 12> The ^ (up arrow) key moves the cursor to the character above.3 13@ The v (down arrow) key moves the cursor to the character below.3 15D The < (left arrow) key moves the cursor to the preceding character.3 14@ The > (right arrow) key moves the cursor to the next 00f){z-z zx*character.3 16E The SELECT key marks one end of a select range. A select range is a B block of text on which various operations (such as CUT, APPEND orA FILL) can be performed. You create a select range by moving thesB cursor to either the beginning or the end of the text you wish toC select, pressing the SELECT key, and then moving the cursor to therF opposite end of the text. You can then perform the desired operation on the range. < The RESET key cancels the effect of the GOLD key if it was > pressed by mistake, cancels a select range, or terminates any( other partially entered command string.3 17E The DEL L key deletes text from the cursor position up to the end of D the current line, including the line terminator. If the cursor is C positioned at the beginning of a line, the entire line is deleted. 6 The deleted text is saved in the delete line buffer.  xF The UND L key inserts the contents of the delete line buffer ahead of the cursor. 3 18C The DEL W key deletes text from the cursor to the beginning of thel: next word, storing the text in the delete word buffer.  sF The UND W key inserts the contents of the delete word buffer ahead of the cursor. e3 19G The DEL C key deletes the character on which the cursor is positioned t/ and saves it in the delete character buffer. t B The UND C key inserts the contents of the delete character buffer ahead of the cursor. e3 20F The GOLD key lets you use the alternate function of the editing keys.; Press the GOLD key first and then the key you wish to use.o B You can also use the GOLD key to enter repeat counts. Press GOLDC and then the main keyboard numeric keys, followed by the key to be D repeated. The DELETE key and CTRL/U may be used to edit the repeat3 count, and thus cannot be repeated in this manner.u3 210 The ENTER key terminates the input of commands. lG The SUBS key deletes the search string, replaces it with the contents yG of the paste buffer, and finds the next occurrence of the string. Fori@ multiple substitutions, use the following sequence of commands: D 1. Press SELECT. 2. Type the new text.d 3. Press CUT.y 4. Press FIND.( 5. Enter the text you wish to replace. I Each time you press SUBSTITUTE, EDT makes one substitution and finds theoF next occurrence of the search string. You can use a repeat count for multiple substitutions.3 45H The tab compute key is used when structured tabs are enabled to computeH the indentation level from the cursor position. If the cursor position8 is not a multiple of the the tab size, an error occurs.3 48J The tab decrease key is used when structured tabs are enabled to decrease the indentation level counter.e3 49J The tab increase key is used when structured tabs are enabled to increase the indentation level counter.r3 52K The beginning of line key moves the cursor to the beginning of the currentbH line. If the cursor is already on the beginning of a line, it moves to the previous line.h3 54I The delete to beginning of word key is used to delete all character fromeH the cursor position to the beginning of the word containing the cursor.G If the cursor is on the first character of a word the previous word ist deleted. 3 55H The DEFINE KEY key is used to define a new function for an editing key.C The user is prompted first to press the key to be defined, then tobG enter the definition. The key can be defined either in terms of othernJ editing keys or by use of change mode subcommands. If you use an editing9 key, its definition appears at the bottom of the screen.c3 64F The tab adjust key is used when structured tabs are enabled to adjust@ the tab level of the select range. The key is used as follows:: 1. Create a select range of the text you wish to adjust. c> 2. Enter a repeat count by using the GOLD key. A minus sign= should preceed the count if you wish to decrease the tab @ level. If you do not use a repeat count, it defaults to 1. c 3. Use the tab adjust key.00f1{{zzazOxss sG The effect of the key is to increase or decrease the indentation levelI of the select range by the number of tabs indicated by the repeat count.t3 65E The delete to beginning of line key is used to delete all characterstD in the current line to the left of the cursor. If the cursor is onD the first character of a line, the entire previous line is deleted.3 70/ The exit key returns you to line mode editing.I2 VT52N DEL Delete character +--------+--------+--------+--------+N | | | DEL L | UP |N LF Delete to beginning of word | GOLD | HELP | | |N | | | UND L |REPLACE |N BACK SP Move to beginning of line +--------+--------+--------+--------+N | PAGE | FNDNXT | DEL W | DOWN |N CTRL/A Compute tab level | | | | |N |COMMAND | FIND | UND W | SECT |N CTRL/D Decrease tab level +--------+--------+--------+--------+N |ADVANCE | BACKUP | DEL C | RIGHT |N CTRL/E Increase tab level | | | | |N | BOTTOM | TOP | UND C |SPECINS |N CTRL/F Fill text +--------+--------+--------+--------+N | WORD | EOL | CUT | LEFT |N CTRL/K Define key | | | | |N |CHNGCASE|DEL EOL | PASTE | APPEND |N CTRL/T Adjust tabs +--------+--------+--------+--------+N | LINE | SELECT | ENTER |N CTRL/Z Return to line mode | | | |N | OPEN LINE | RESET | SUBS |N *** For help on a key, press the key +-----------------+--------+--------+ *** To exit, type a space. 3 00F The LINE key advances or backs up the cursor to the nearest beginning% of a line (see ADVANCE and BACKUP).  A The OPEN LINE key inserts a carriage return after the cursor and A leaves the position unchanged. Pressing the OPEN LINE key when r? the cursor is at the beginning of the line creates a new blank line.3 01A The WORD key moves the cursor forward or backward by a word (see* ADVANCE and BACKUP).  C The CHGC key changes the case of a range of characters as follows:a a8 1. If there is a select range active, the case of each9 alphabetic character in the select range is changed.P 8 2. If 1 does not apply and the cursor is positioned onC the current search string, the case of each alphabetic N/ character in the search string is changed.t l< 3. If 1 and 2 do not apply, then the case of one character: is changed, and the cursor moves one character in the current direction.e3 02G The EOL key moves the cursor forward or backward to the nearest end ofa line.  E The DELETE EOL key deletes all characters to the right of the cursor D in the current line, including the character on which the cursor is positioned. 3 03F The CUT key deletes the select range, storing it in the paste buffer.D The select range is all the text between the selected position (seeE SELECT) and the current cursor position. If you have not selected ahG range and the cursor is positioned on the current search string, thatrD string is cut. The previous contents of the paste buffer is lost.  C The PASTE key inserts the contents of the paste buffer directly inu front of the cursor location.3 04D The ADVANCE key sets the current direction to advance for the CHAR,B WORD, LINE, EOL, PAGE, SECTION, SUBSTITUTE, SUBSTITUTE NEXT, FINDB and FIND NEXT keys. Advance means the movement will occur in theI direction toward the end of the file, that is, to the r00f9{z-z zx*ight and down. s sF The BOTTOM key positions the cursor at the bottom of the text buffer.3 05FThe BACKUP key sets the cursor direction to backup for the CHAR, WORD,E LINE, EOL, PAGE, SECTION, SUBSTITUTE, SUBSTITUTE NEXT, FIND and FINDE NEXT keys. Backup means the movement will occur in the direction ofA9 the beginning of the file, that is, to the left and up.  T@ The TOP key positions the cursor at the top of the text buffer.3 06G The DEL C key deletes the character on which the cursor is positioned ./ and saves it in the delete character buffer.  B The UND C key inserts the contents of the delete character buffer ahead of the cursor. C3 07G The PAGE key moves the cursor to the top of a page. A page is definedNG by a delimiter string, which can be set by the SET ENTITY command. TheA< default page delimiter is the form feed character (CTRL/L). > The COMMAND key allows you to input a line mode command to beB executed. The command is terminated by pressing the ENTER key on the keypad.3 08H The FIND NEXT key searches for the next occurrence of the search stringE entered by the FIND key. The direction of the search is the current7$ direction mode (ADVANCE or BACKUP). oE The FIND key searches for an occurrence of a string. Press the FINDsF key and then enter the string from the main keyboard. End the stringI by pressing either the ADVANCE or BACKUP key to set the direction of theo search.3 09C The DEL W key deletes text from the cursor to the beginning of the: next word, storing the text in the delete word buffer.  cF The UND W key inserts the contents of the delete word buffer ahead of the cursor. 3 10 r7 Use the HELP key to obtain help on the editing keypad. 3 11I The DEL L key deletes text from the cursor position up to the end of the @ current line, including the line terminator. If the cursor isD positioned at the beginning of a line, the entire line is deleted. 6 The deleted text is saved in the delete line buffer.  bF The UND L key inserts the contents of the delete line buffer ahead of the cursor. D3 12> The ^ (up arrow) key moves the cursor to the character above. oB The REPLACE key deletes the select range and replaces it with the! contents of the paste buffer. x3 13@ The v (down arrow) key moves the cursor to the character below. ? The SECTION key moves the cursor 16 lines forward or backward,iA depending on the current direction mode (see ADVANCE and BACKUP)v3 14@ The > (right arrow) key moves the cursor to the next character. tB The SPECINS key inserts any ASCII character. Press the GOLD key,B enter the decimal representation of the character, press the GOLD key again, and press SPECINS. 3 15D The < (left arrow) key moves the cursor to the preceding character. rD The APPEND key deletes the selected range and adds it to the end ofA the paste buffer. The selected range is all the text between the G selected position (see SELECT) and the current cursor position. If nooD selection has been made and the cursor is positioned on the current+ search string, that string is appended. e3 16E The SELECT key marks one end of a select range. A select range is aaB block of text on which various operations (such as CUT, APPEND orH FILL) can be performed. You create a select range by moving the cursorC to either the beginning or the end of the text you wish to select,aD pressing the SELECT key, and then moving the cursor to the oppositeD end of the text. You can then perform the desired operation on the range. p t< The RESET key cancels the effect of the GOLD key if it was H pressed by mistake, cancels a select range, or terminates any partially entered command string.3 20C The GOLD key lets you use the lower function of the editing keys. .6 Press the GOLD key and then the key you wish to use.  rB You can also use the GOLD key to enter repeat counts. Press GOLDC and then the main keyboard numeric keys, followed by the key to be D repeated. The DELETE key and CTRL/U may be00fA{{zzazOxss used to edit the repeat3 count, and thus cannot be repeated in this manner. 3 210 The ENTER key terminates the input of commands. ,G The SUBS key deletes the search string, replaces it with the contents eG of the paste buffer, and finds the next occurrence of the string. For A multiple substitutions, use the following sequence of commands: O k 1. Press SELECT. 2. Type the new text.t 3. Press CUT.o 4. Press FIND.( 5. Enter the text you wish to replace. EE Each time you press SUBSTITUTE, EDT makes one substitution and findsnF the next occurrence of the search string. You can use a repeat count for multiple substitutions. 3 45H The tab compute key is used when structured tabs are enabled to computeH the indentation level from the cursor position. If the cursor position8 is not a multiple of the the tab size, an error occurs.3 48J The tab decrease key is used when structured tabs are enabled to decrease the indentation level counter.l3 49J The tab increase key is used when structured tabs are enabled to increase the indentation level counter.h3 50D The FILL key performs a word fill on the select range. A word fillE reformats a block of text so that as many full words as possible areeC placed on each line without exceeding the right margin. The rightiE margin may be set by the SET WRAP command or, if it was not set, theT> default is the terminal width - 1. For purposes of the FILL3 command, only spaces are used as word delimiters. e3 52K The beginning of line key moves the cursor to the beginning of the currentaH line. If the cursor is already on the beginning of a line, it moves to the previous line.l3 54I The delete to beginning of word key is used to delete all character from H the cursor position to the beginning of the word containing the cursor.G If the cursor is on the first character of a word the previous word ish deleted. 3 55H The DEFINE KEY key is used to define a new function for an editing key.C The user is prompted first to press the key to be defined, then tobG enter the definition. The key can be defined either in terms of othernD editing keys or by use of change mode subcommands. When you use anA editing key, its definition appears at the bottom of the screen.r3 64F The tab adjust key is used when structured tabs are enabled to adjust@ the tab level of the select range. The key is used as follows:: 1. Create a select range of the text you wish to adjust. i> 2. Enter a repeat count by using the GOLD key. A minus sign= should preceed the count if you wish to decrease the taba@ level. If you do not use a repeat count, it defaults to 1. a 3. Use the tab adjust key. sG The effect of the key is to increase or decrease the indentation levelI of the select range by the number of tabs indicated by the repeat count.t3 65E The delete to beginning of line key is used to delete all characterstD in the current line to the left of the cursor. If the cursor is onD the first character of a line, the entire previous line is deleted.3 70/ The exit key returns you to line mode editing.I2 CLEARnE The CLEAR (abbreviation: CL) command provides an efficient means of e# deleting all the text in a buffer.i Format: CLEAR buffer-nametI All the text in the specified buffer is deleted. (Note that the argumenteI is a buffer-name, not a range specification. CLEAR PASTE is valid, whilea/ CLEAR =PASTE and CLEAR BUFFER PASTE are not.) o2 CHANGE? The CHANGE command puts EDT in change mode. Use change mode toi: edit at the character level rather than the line level.  Format: CHANGE [range]: The optional range specifies the cursor position when you< enter change mode. If you omit range, the current position is used.A@ There are three submodes of change mode. Which submode you useE depends on the type of terminal you are using and whether or not you H wish to use the auxiliary (numeric) keypad for editing commands. These modes are:  1. Hardcopy modeT 2. Keypad modeg 00fI{z-z zx* 3. Nokeypad modea 2 ENTITIESE Entities are used in change mode subcommands to specify the text on G which a subcommand will operate. Each entity represents a portion of G text, which may be anything from a single character to an entire text fG buffer. Most entities can be preceded by a count, which indicates theu$ number of entities to be affected. 3 CHARACTEReB The character entity is specified by the letter C. It selects a  single character of text.3 WORDA A word consists of a string of characters terminated by a set oftD delimiter characters. The default delimiter characters are spaces,C tabs, carriage returns, line feeds, form feeds, and vertical tabs. B Spaces are handled in a special way: all spaces following a wordC up to the first non-space character are considered part of a word.iG Other delimiters are not considered a part of the word they terminate.aB Rather, they are considered to be words by themselves. There are three word entities: > W Specifies the entire word in which the cursor is  positioned.a t; BW Specifies all characters to the left of the cursor upr# to the beginning of the word., d> EW Specifies all characters from the cursor through the end of the word.@ You can change the word delimiters with the SET ENTITY command.3 LINE The line entities are:o7 L Specifies the entire line in which the cursor is e positioned.  w? BL Specifies all characters to the left of the cursor up to 4 the beginning of a line. (When the cursor is J positioned at the beginning of a line, the BL entity selects ' the entire previous line.)o ,> EL Specifies all characters from the cursor to the end of a: line, including the character on which the cursor is. positioned. (If the cursor is on a line 4 terminator, the entire next line is selected.) h@ NL Specifies all characters from the cursor to the beginning = of the next line, including the character on which the f cursor is positioned. 3 RANGE C The range entities specify all text in the buffer either before or / after the cursor. The two range entities are: 9 BR Specifies the text from the cursor position to the  beginning of the buffer. n= ER Specifies the text from the cursor position to the end l of the buffer. 3 SENTENCEE A sentence consists of a string of characters terminated by one of auE set of single character delimiters. The default sentence delimiters D are '.', '?', and '!'. A sentence delimiter is considered to be aG delimiter only if it is at the end of a line or if it is followed by a.@ space. The line terminator or trailing spaces are considered a< part of the sentence. There are three sentence entities: = SEN Specifies the entire sentence in which the cursor is ? positioned, including the delimiter and trailing spacesg or line terminator.o o@ BSEN Specifies all characters in the current sentence to the  left of the cursor.d !> ESEN Specifies all characters in the current sentence from 8 the cursor to (but not including) the delimiter  character.B The sentence delimiters can be changed by the SET ENTITY command.3 PAGEG A page consists of all the text between two page delimiters, includingwF the trailing page delimiter. The default page delimiter is the form2 feed character. There are three page entities: + PAGE Specifies all of the current page.  t> BPAGE Specifies all characters in the current page from the7 character to the left of the cursor to the beginning h of the page. t? EPAGE Specifies all characters in the current page from the i: cursor to (but not including) the page delimiter.? You can change the page delimiter with the SET ENTITY command.d 3 PARAGRAPHrG A paragraph consists of all the text between two paragraph delimiters,aC including the trailing paragraph delimiter. The default paragraphh/ delimiter is two consecutive line terminato00fQ{{zzazOxssrs.a& There are three paragraph entities: / PAR Specifies all of the current paragraph.g ? BPAR Specifies all characters in the current paragraph from e? the character preceding the cursor to the beginning of g the paragraph. g? EPAR Specifies all characters in the current paragraph from 7 the cursor to (but not including) the paragraphp delimiter.D You can change the paragraph delimiter with the SET ENTITY command.3 SELECTG The select entity consists of all characters between the cursor and F the select mark. The select mark must have been specified previouslyD by a SEL subcommand. If no select mark is active and the cursor is? positioned on the current search string, the search string is p8 selected. The select range entity is specified by SR. 3 VERTICALE The vertical line entity is the same as the line entity, except thateF with the V entity, the cursor stays in the same column. The vertical entity is specified by V.3 STRINGE The string entity consists of all the characters between the cursor C and the next occurrence of a specified search string. Specify them? string entity by enclosing the desired search string in single F or double quotes. If the string is null (specified by '' or ""), the& previous search string is used again.C For key definitions, the null character (ASCII character 0) may be B used in place of the quote characters to avoid conflicts with the search string the user enters.i 2 HARDCOPYB On a hardcopy terminal, change mode operates as follows. When youF enter change mode, the EDT displays the current line on the terminal.G The cursor position is marked by bracketing the character on which thelB cursor is positioned. EDT will then prompt with the characters:  C*eE In response, you type a series of change mode subcommands terminatedlC by a carrige return. EDT will execute the commands and retype theh line. t2 KEYPADD You enter the keypad submode of change mode when your terminal is aC VT52 or VT100 and the KEYPAD option is on. (This option is on by cD default.) In this submode, the terminal screen is used as a windowA into the text buffer. Characters typed on the main keyboard areD inserted into the buffer at the cursor position. You enter editingG commands by using keys on the auxiliary keypad, or control keys on thel main keyboard.  n9 For more help on keypad mode, type CHANGE to enter that 0 mode. Use the keypad HELP facility as follows:6 1. If your terminal is a VT100, press the keypad key marked "PF2".9 2. If your terminal is a VT52, press the red keypadc key. 2 SCREEND You enter the screen submode of change mode if your terminal is notI a VT52 or VT100 or your terminal is a VT52 or VT100 and the SET NOKEYPADdD command has been used to turn off the keypad option. The screen isK used as a window into the text buffer. Change mode commands are typed fromG the keyboard and echoed on the bottom line of the screen. The commandsaG are executed and the text on the screen is updated whenever a carriageo return is typed. 2 SUBCOMMANDSdK When EDT is in change mode, a distinct set of commands is accepted. TheseoK are called the change mode subcommands. Do not abbreviate the subcommands1J or include spaces within a single command. A string of subcommands may be8 concatenated with zero or more spaces separating them.  h? Subcommands take one of the following forms, depending on the h particular command: e A. command  B. [+|-] [count] command hA C. [+|-] [count] [command] [+|-] [count] [+|-] entity [=buffer]C AA Whenever a sign can appear in more than one place, the last signc/ specified is used to determine the direction. mF A sequence of subcommands can also be enclosed in parentheses to formK a single unit. A numeric literal preceding the left parenthesis indicatesr3 the number of times to repeat the entire sequence. 3 ADVANCEoH The ADVANCE command sets the current cursor direction to advance. The C curre00fY{z-z zx*nt direction is used by many subcommands to determine whether[G entities to the left or to the right of the cursor are to be affected.hF When the direction is advance, the cursor character and characters to( the right are affected by subcommands.  e Format: ADVr3 APPENDB The APPEND command works in the same way as the CUT command (see)> except that the new text is added to the end of the alternate, buffer instead of replacing its contents.  C Format: [+|-] [count] APPEND [+|-] [count] [+|-] entity [=buffer]d3 ASCIIs9 The ASCII subcommand inserts a specified ASCII charactert= into the buffer at the cursor position. Use the count fieldt> to indicate the decimal value of the ASCII character you want to insert.e y Format: [count] ASCIIa ? The ASCII command is the only way to insert a carriage return CF character in the middle of a line of text; otherwise, insert commandsF always treat the carriage return as a line terminator. The following3 command would insert a carriage return character: r 1 13ASC (13 is the ASCII code for carriage return) 3 BACKUPF The BACKUP command sets the current cursor direction to backup. The C current direction is used by many subcommands to determine whethernG entities to the left or to the right of the cursor are to be affected.wC When the direction is backup, characters to the left of the cursoro are affected.  s Format: BACK3 CHGC@ The CHGC command changes the case of every alphabetic characterC in the specified number of entities - lower case characters becomeh( upper case and upper case become lower.7 Format: [+|-] [count] CHGC [+|-] [count] [+|-] entity 3 CUTu; The CUT command deletes a specified number of entities andeE saves all the deleted text in an alternate text buffer. The commandrE works exactly like the DELETE command except that the text is saved.f f@ Format: [+|-] [count] CUT [+|-] [count] [+|-] entity [=buffer] @ If you do not specify a buffer, the buffer named PASTE is used. f! Ex: CUTSR Cut the selected range  r% CUTPAGE Cut the current page of texta3 DEFKD The DEFK command is used to assign new definitions to editing keys.C The user is prompted first to press the key to be defined, then tosG enter the definition. The key can be defined either in terms of otherrJ editing keys or by use of change mode subcommands. If you use an editingG key, its definition appears at the bottom of the screen. This command 5 should only be executed while in keypad change mode.. Format: DEFK3 DELETE5 The DELETE subcommand deletes a specified number of x entities. e; Format: [+|-] [repeat-count] D [+|-] [count] [+|-] entityy A If the entity is C, W, BW, EW, L, BL, EL, or NL, the last entitysE deleted by the command is saved in the delete buffer associated witheA the entity and can be restored by use of the UNDELETE C, W, or L  subcommand.  t9 Ex: D15C Deletes 15 characters in the current direction.m  DSR Deletes the select range. , DBR Deletes to the beginning of the buffer. T? D'ABC' Deletes all characters from the cursor up to the first 6 occurrence of the string 'ABC' but not including the string.3 EXITE The EXIT command exits change mode (not the editor). When the exitb0 command is executed, you return to line mode.  d Format: EX3 EXTEND: The EXTEND command executes a line mode command while youK are in change mode. EDT interprets the remainder of the command line as aDB line mode command, executes the command, and reenters change mode automatically.  C Format: EXT line mode command 3 FILL; The FILL command reformats a block of text so that as manycE complete words as possible are placed on each line without exceedingtI the right margin. The right margin is set to the terminal width minus 1dB character by default or may be changed by the SET WRAP command.  o7 Format: [+|-] [count] FILL [+|-] [count] [+|-] entitys3 HELPF The HELP command causes a diagram of keypad functions and CONTROL keyD descriptions to appear on t00fa{{zzazOxsshe screen. If executed in keypad changeC mode, additional information can be obtained by pressing keypad oroD control keys; in nokeypad mode, pressing any subsequent key returns to editing mode.t3 INSERT< The INSERT command inserts new text into the buffer at the  current cursor position.m b" Format: I text to be inserted ^Z o7 This command behaves differently in each of the modes:s9 o In keypad mode, insert text by typing on the maint; keyboard; you do not need to begin the insert with  I or end it with ^Z.9 o In nokeypad mode, type I to begin inserting text.e= You can insert text from the keyboard until you entere4 ^Z; you can enter one or more lines of text.9 o In hardcopy mode, type I to begin inserting text.e7 You can insert text from the keyboard until you / enter either a ^Z or a carriage return. 3 KSC The KS command modifies the cursor position after a PASTE command. Format: KSJ After a PASTE command, the cursor is on the character to the right of theH pasted text. If KS follows a PASTE, however, the cursor is on the lastF pasted character if the current direction is advance and on the first. pasted character if the direction is backup. K Such cursor positioning affects a subsequent string search. KS is used inmG the definition of the keypad SUBS function so that the character which I follows the pasted text in the current direction is included in the next string search. 3 MOVE8 The MOVE command moves the cursor a specified number of entities. $ Format: [+|-] [count] [+|-] entity eF If an explicit sign is used, the direction of the move is determined F by that sign ( + for forward, - for backward); otherwise, the currentG direction mode (set by the ADV and BACK commands) is used to determinei the direction.  f( Ex: +3W Move the cursor 3 words forward e8 L Move the cursor 1 line in the current direction s. -PAGE Move the cursor backward to a page mark3 PASTEVB The PASTE command copies the contents of an alternate buffer into+ the current buffer at the cursor position.n p! Format: [count] PASTE [=buffer]f e7 If you omit the buffer name, the PASTE buffer is used.r3 QUIT? The QUIT subcommand leaves the editor without saving any text AD buffers. This will cause you to lose any editing you have done in G this session unless you used the WRITE command to save the text beforec quitting. n Format: QUIT 3 REFRESHr* The REFRESH command refreshes the screen. c Format: REFh 3 REPLACEoA The REPLACE command has the same form as the DELETE command. IniI nokeypad mode, replace will enter insert mode after the text is deleted.a ; Format: [+|-] [repeat-count] R [+|-] [count] [+|-] entitye3 SELECTD The SELECT command is used to mark a portion of text which will be F one end of a select range. A select range is created by marking one G end of the desired text (either end will do), moving to the other end,r= and performing an operation on the SR (select range) entity.h Format: SELR3 SHIFTmE Use the SHIFT LEFT and SHIFT RIGHT commands to alter the left marginlC when in change mode. The left margin is the position of the first > character in each line which will be displayed on the screen.@ Normally, the left margin is 0, which means all characters are I displayed. If you use a SHR command, the left margin can be changed by eG an integral number of tab stops (8 characters). If SHL is used once, aH the first 8 columns will not be displayed on the screen. This has the 3 effect of shifting the screen window horizontally.  2 Format: count SHL (Shift left by count tab stops) T, count SHR (Shift right by count tab stops) 3 SUBSTITUTE> The SUBSTITUTE command replaces occurrences of one string of  characters with another.a + Format: [+|-] [count] S/string-1/string-2/  F The slashes represent any non-alphanumeric character used to delimit A the two strings. The effect of the command is to search in the sH specified directi00fi{z-z zx*on from the cursor and find an occurrence of string-1.; It is then deleted and string-2 in inserted in its place. f3 SUBSTITUTE NEXT D The SUBSTITUTE NEXT command performs a SUBSTITUTE command using theH same search and replacement strings as the previous SUBSTITUTE command.  Format: [+|-] [count] SN:3 TAB[C Use the TAB subcommand when the structured tab feature is enabled.aA Insert the correct number of tabs and blanks to position to the fG current tab level. When structured tabs have not been enabled or the aF cursor is not at the beginning of a line, this command inserts a tab character.t l Format: TAB3 TADJG The TADJ command adjusts the tab level for the selected range of text.eI The tab size and repeat-count set the tab level (see TC). The tab levelK is adjusted by the value of repeat-count; it is incremented for a positivecH repeat-count and decremented for a negative repeat-count. The TADJ tabB setting is the product of the tab size and the indentation level.D Format: [+|-] [repeat-count] TADJ [+|-] [entity-count] [+|-] entity3 TCE The TC subcommand is used to compute the tab level from the current eG cursor position. This command has meaning only if the structured tab e4 feature has been enabled. See the SET TAB command. h Format: TC3 TDF The TD subcommand decreases the tab level counter. This command has E meaning only when the structured tab feature has been enabled. See b the SET TAB command.c f Format: TD3 TIG The TI subcommand increases the tab level counter. This commmand has uE meaning only when the structured tab feature has been enabled. See e the SET TAB command. r Format: TI3 TOPoB The TOP command is used to force the line on which the cursor is ' positioned to the top of the screen. r : Format: TOPe 3 UNDELETEB The UNDELETE commands are used to restore the last entity deleted by a delete command.a e$ Format: UNDC (undelete character) UNDW (undelete word) UNDL (undelete line)3 ^cG This command provides for the insertion of control characters in text.lE EDT accepts a circumflex (^) followed by an alphabetic character andBD inserts the corresponding control character in the text as a single character.  Format: [count]^[A..Z]s2 COPYE The COPY (abbreviation: CO) command copies text from one location toLB another within a buffer or between buffers. When text is copied, the source text remains intact. = Format: COPY [range-1] TO [range-2] [/QUERY] [/DUPLICATE:n]) E The lines specified by range-1 are copied in front of the first lineeH specified by range-2. Either range defaults to the current line.  B If the destination is not the current buffer, put the name of the; receiving buffer immediately after TO (=buffer). Give theaC full name of the buffer. To copy text from an external file, seew INCLUDE. 2 /DUPLICATE Format: /DUPLICATE:n eF When you use the /DUPLICATE (abbreviation: /DUP) qualifier, the lines. specified by range-1 are duplicated n times. 2 /QUERY Format: /QUERYo dF When you use the /QUERY (abbreviation: /Q) qualifier, EDT prompts you- with a '?' to verify each line to be copied.t t Responses are:r t Y Yes, copy this line N No, do not copy this line3 Q Quit, do not copy any of the rest of the linesb( A All, copy all the rest of the lines2 DEFINE= The DEFINE command (abbreviation DEF) defines either editings. keys for keypad mode or macros for line mode.2 KEYnG The DEFINE KEY (abbreviation DEF K) command defines customized editingU@ keypads or extends the keypad now available by using additional control keys.  - Format: DEFINE KEY key-selector AS 'string'R o, where key-selector is one of the following: [GOLD] number [GOLD] CONTROL letter GOLD characterhL Number refers to keypad keys and CONTROL letter names specific control keysL (upper and lower case letters are considered equivalent). Character refers2 to any keyboard key except 0-9, !, %, ', and ". O The string is a string of change mode00fq{{zzazOxss subcommands which define the function ofhM the key. If you want the command to be executed when the key is struck, theIM definition must end with a period; otherwise, EDT will buffer it until a keyn with a period is used.  OE You can use a '?' character in key definitions to request input fromTD the user. The '?' character is then replaced by the characters readC from the terminal before the command is executed. A prompt stringe. enclosed in single quotes may follow the '?'. 3 EXAMPLESE To define the key CTRL/A to move 3 lines, use the following command:a t! DEFINE KEY CONTROL A AS '3L.'k iB To define the keypad GOLD function of the uparrow key to mean "go- to top of file," use the following command: s  DEFINE KEY GOLD 12 AS 'BR.'r E To define the key CTRL/D to write your COBOL identification division . header for you, enter the following command:  L DEFINE KEY CONTROL D AS 'iIDENTIFICATION DIVISION.^Z^MiPROGRAM-ID. ?^Z.' sB (After pressing the key, you will have to give the program name.) i< To define the CTRL/R key to prompt for the name of a BLISS= routine which it will then find, use the following commmand:r kA DEFINE KEY CONTROL R AS "BR ADV 'ROUTINE ?'Routine name: ''."3 VT52$ +-------+-------+-------+-------+ This diagram defines | | | | |O5 the numbers of the key-| GOLD | 10 | 11 | 12 |e pad keys on VT52 | | | | | 7 terminals for use in +-------+-------+-------+-------+O the DEFINE KEY | | | | |% command. | 7 | 8 | 9 | 13 | | | | | |$ +-------+-------+-------+-------+ | | | | | | 4 | 5 | 6 | 14 |i | | | | |$ +-------+-------+-------+-------+ | | | | | | 1 | 2 | 3 | 15 |I | | | | |'$ +---------------+-------+-------+ | | | |  | 0 | 16 | 21 | | | | |$ +---------------+-------+-------+3 VT100kD +-------+-------+-------+-------+ +-------+-------+-------+-------+ | | | | | | | | | |< | 12 | 13 | 15 | 14 | | GOLD | 10 | 11 | 17 | | | | | | | | | | |D +-------+-------+-------+-------+ +-------+-------+-------+-------+ | | | | |< This diagram defines the numbers | 7 | 8 | 9 | 18 |' of the keypad keys on VT100 | | | | |F terminals for use in the DEFINE KEY +-------+-------+-------+-------+ command. | | | | | | 4 | 5 | 6 | 19 |- | | | | |& +-------+-------+-------+-------+ | | | | | | 1 | 2 | 3 | | | | | | | % +---------------+-------+ 21 |  | | | || | 0 | 16 | |- | | | |& +---------------+-------+-------+2 MACRO|E The DEFINE MACRO (abbreviation DEF M) command is used to define lineh mode macro commands.   Format: DEFINE MACRO name  F The name is the name of the text buffer in which the macro is stored.. The macro itself is a series of EDT commands. A Invoke the macro by giving its name in response to the line mode2 prompt.2 DELETED The DELETE (abbreviation: D) command deletes the lines specified by the range. | 1 Format: DELETE [range] [/QUERY] -B If you do not specify the range, the default is the current line.2 /QUERY Format: /QUERYt eB When the /QUERY (abbreviation: /Q) qualifier is used, the user is7 prompted with a '?' to verify each line to be deleted.h a Responses are:T m Y Yes, delete this line N No, do not delete this line5 Q Quit, do not delete any of the rest of the lineso* A All, delete all the rest of the lines2 EXITA The EXIT (abbreviation: EX) command terminates all action in theTD editor and saves a copy of the MAIN text buffer in the output file. t: Format: EXIT [file-spec] [/SEQUENCE:[init:incr]] [/SAVE] EB If you omit the file specification, the output file name from the) command line which invoked EDT is used. 2 /SAVEo@ When you use the SAVE qualifier, the journal file is saved. TheC journal file is called name.JOU where name is the output file nameAD from the command line. For information about the j00fy{z-z zx*ournal facility, see HELP JOURNAL. i 2 /SEQUENCEi Format: /SEQUENCE[:init:incr]< When you use the SEQUENCE option, the output file is in VFC; (variable with fixed control) format, and line numbers areo written in the control field.C If you set init and incr, the file is renumbered starting with the.@ number you choose for init and the lines are incremented by theB number you choose for incr. Otherwise, the original line numbers. are written and new lines will be numbered 0.2 FILLC The FILL (abbreviation: FIL) command reformats a block of text sorA that there are as many full words on a line as possible withouto exceeding the right margin. e t Format: FILL [range] dC The lines in the range must be contiguous. If you omit the range,a the select range is assumed.  rD The right margin is set by the SET WRAP command. If the margin has: not been set, the default is the terminal width minus 1. 2 FINDG The FIND (abbreviation: F) command places the cursor at the first lineF specified by range.  m Format: FIND [range] eE The located line is not typed. To find and type a line, use the TYPEu command. 2 INCLUDEtC The INCLUDE (abbreviation: INC) command copies external files intou text buffers.  # Format: INCLUDE file-spec [range]g sF The specified file is copied to the location before the first line ofF the range. Note that range specifies the position to which the file D will be copied; it does not restrict the portion of the file which  will be included.2 INSERT= The INSERT (abbreviation: I) command inserts new text into at text buffer. n / Format: INSERT [range] [;line to be inserted] G The new text is inserted before the first line specified by range. IfuF you omit range, inserted text is placed just before the line at which the cursor is located. o C If you do not use the optional semicolon, the editor enters insertsH mode. In insert mode, you can enter as many lines of text as you wish, E terminating each line with a carriage return. You terminate insert i mode by typing CTRL/Z.  < If you choose the optional semicolon, the text on the line C following the semicolon is inserted and the editor does not enter t insert mode.  rD The line following the last line inserted becomes the current line. 2 JOURNALh8 EDT saves all input from the terminal during an editing1 session in a file called the journal file. The.F journal file is deleted when you exit the editor with an EXIT commandF or a QUIT command (without the /SAVE option). When the editor is left, involuntarily, the journal file is saved.  oG The journal file can be used to redo all the operations of an editing dF session. The edited file is thereby recreated. Type the same commandB line used previously with the addition of the /RECOVER qualifier. vE Unless explicitly overridden by the JOURNAL qualifier on the commandlC line, the journal file will have the same name as the output file,t' except that the file type will be JOU.T2 MOVEC The MOVE (abbreviation: M) command moves text from one location to 1 another, deleting it from the original location.  - Format: MOVE [range-1] TO [range-2] [/QUERY]g D The lines specified by range-1 are moved to a location immediately D before the first line specified by range-2. The lines are deleted M from the original location. If you omit either of the range specifications,n= the current line is used. The first line of range-2 becomestC the new current line. To move lines of text without deleting themi4 from the original location, see the COPY command. 2 /QUERY Format: /QUERYe iE When you use the QUERY (abbreviation: /Q) qualifier, EDT prompts you0 is with a '?' to verify each line to be moved.  t Responses are: f Y Yes, move this line.d N No, do not move this line.e4 Q Quit, do not move any of the rest of the lines.) A All, move all the rest of the lines.l2 PRINTeD The PRINT (abbreviation: P) command creates a listing file with the specified file name.  e00f{{zzazOxss Format: PRINT file-spec [range] iF The lines selected by range are written to a listing format file withG page headers. If the NUMBERS option is set (see SET NUMBERS), the EDT'A line numbers will appear on the listing. If you omit range, theYF entire current buffer is printed. The current line is not altered by; this command. Use PRINT only to create a listing; if your/ wish to create a file, use the WRITE command. a2 QUITE The QUIT command exits the editor without saving the contents of theF MAIN buffer.  p Format: QUIT [/SAVE]n s: Use the QUIT command only if you have made no changes to D the file you are editing or if you have decided you do not wish to E make the changes you have made. All edits to the file will be lost  when you QUIT from the editor..2 /SAVErD The SAVE qualifier specifies that the journal file should be saved.5 Normally, the journal file is deleted when you QUIT.T 2 REPLACEaE The REPLACE (abbreviation: R) command deletes the specified range ofs/ lines and then places EDT in the INSERT mode. E , The REPLACE command has the following form: o" REPLACE [range] [;text to insert] I When you do not specify a range, the current line is deleted and the new.% text is inserted at that location.  eI If you do not use the optional semicolon, the editor enters insert mode.tA In insert mode you can enter as many lines of text as you wish, lE terminating each line with a carriage return. You terminate insert d mode by typing CTRL/Z.  oM If you use the optional semicolon, EDT inserts the text in the command line hC following the semicolon and the editor does not enter insert mode.W D The line following the last line inserted becomes the current line. 2 RESEQUENCED The RESEQUENCE (abbreviation: RES) command assigns new line numbers to a range of lines. r o1 Format: RESEQUENCE [range] [/SEQUENCE:init:incr]f xI The specified range of lines must be contiguous. When you do not specifynC a range, all lines in the current buffer are resequenced. If thesA new numbers assigned would cause duplicate or nonsequential lineeA numbers, EDT will either disallow the command or renumber linesn beyond the specified range. t 2 /SEQUENCEe; The SEQUENCE (abbreviation: /SEQ) qualifier specifies the RC sequence of numbers to be assigned. The init parameter specifies FE the initial number, and incr specifies the number by which the linesnB are incremented. If you do not use the SEQUENCE qualifier, init  and incr both default to 1.2 RANGEsF Range specifications are used on most line editing commands to select< the exact lines of text on which the command will operate.  ; There are several general classes of range specifications:e T6 1. Single line ranges specify a single line of text. < 2. Multiple line ranges specify blocks of text, such as an= entire buffer or all lines from the current line to the h end of the buffer.e t? 3. Compound ranges combine single line ranges with operators o' to specify multiple lines of text.i= 4. Noncontiguous ranges specify multiple lines that are note) necessarily adjacent to one another.l2 ALLe= The ALL range further refines a general range specification.o Format: [range] ALL 'string'eF While range can be a single, multiple, or compound range, the commandF being performed will only apply to those lines of text containing theG given string. This string can be enclosed in single or double quotes.m< Ex: TYPE ALL 'EDT' When ALL is used, the default for range- is WHOLE. This command will type all the / lines in the current buffer containing EDT.aC SUBS/A/B/50:100 ALL '1' Substitute B for A in lines from 50 to 100s which include the string 1.2 AND:/ The AND range selects a group of single lines.g 1 Format: range-1 AND range-2 AND range3 ... orr range-1 , range-2 , range3 iE Each of the ranges must be a single line range. Each of the single  lines is operated on. m? Ex: TYPE 4 AND 7 Lines 4 and 7 are displayed on the termi00f{z-z zx*nal  s; TYPE BEGIN,END-1 The first and last lines are displayed onr the terminal2 BEGINa@ The BEGIN range (abbreviation: B) is a single line range which ( specifies the first line in the buffer.2 BEFOREE The BEFORE range (abbreviation: BEF) is a multiple line range which rB specifies all the lines in the buffer preceding the current line.2 BUFFERH The BUFFER (abbreviation: BU) specification may precede any other rangeG specification and indicates that the range is to be applied to a nameda buffer.  E ,$ Format: BUFFER name [range] or =name [range]h eH The two forms are equivalent. Name is the name of the buffer in which D the text resides. If you leave out the range, the entire buffer is selected.2 DOTtH The dot (.) is a single line range which refers to the current line of H text. For many commands, dot is the default range. See the help text 0 for a command if you are unsure of the default. i$ Ex: TYPE . Type the current line.2 ENDeG The END (abbreviation: E) range specifies an imaginary line following E the last line in the buffer. END does NOT specify the last line in H the buffer. The last line can be referred to by E-1 (that is, the line< preceding END). When the END line is typed, it looks like: i [EOB]2 FOR 8 The FOR range is a multiple line range which selects a < specified number of lines starting at a specified location. a Format: [range] FOR n ore [range] # n: PC The two forms are equivalent. Range is a single line range which eH specifies the starting position, and n is an integer number. If range 7 is omitted, the current line is the starting position.  t: Ex: TYPE . FOR 5 Type 5 lines, starting with the current line n, TYPE #5 Equivalent to the previous example ]8 TYPE BEGIN FOR 10 Type the first 10 lines in the buffer2 LASTI The LAST (abbreviation: L) range is a single line range which refers to :B the line in a previous buffer which was the current line when you switched to the current buffer.2 MINUS: The minus sign in ranges selects a single line which is a5 specified number of lines before a specified line. t  Format: [range] - [n] F Range is a single line range, and n is an integer. The line selectedF is the line which is n lines before the line specified by range. If D you omit range, the current line is used; if you omit n, 1 is used. sA Ex: TYPE 15 - 3 Type the third line before the line numbered 15.w h. TYPE END -1 Type the last line in the buffer. r! TYPE - Type the previous line.s2 NUMBERF A line number is a single line range which refers to the line having D the specified number. The line number may contain a decimal point. l" Ex: TYPE 10 Type line number 10. n% INSERT 65.3 Insert before line 65.3.e 2 ORIGINAL Format: ORIGINAL n C The ORIGINAL (abbreviation: O) range is a single line range which uC refers to the line which had the original number n. The original e! number is one of the following: a l? 1. If the line came from the primary input file and that fileB; had sequence numbers, then the original number is the ( sequence number read from the file. e= 2. If the line came from an unsequenced input file, then itn= is the number originally assigned by EDT, which does notG& change when a resequence is done. A@ 3. If the line did not come from the primary input file, then ! its original number is zero.n2 PLUSC The plus sign is used in ranges to select a single line which is a 4 specified number of lines after a specified line.   Format: [range] + [n]e hF Range is a single line range, and n is an integer. The line selectedI is the line which is n lines after the line specified by range. If you hA omit range, the current line is used. If you omit n, 1 is used.h a= Ex: T 15 + 3 Type the third line after the line numbered 15.e i/ T BEGIN +1 Type the second line in the buffer.i e/ T + Type the line following the current line.  e; T 'string'+2 Type the second line fol00f{{zzazOxsslowing the next line e containing 'string'.2 RESTH The REST (abbreviation: R) range is a multiple line range which refers ; to the current line and all lines following in the buffer.i2 SELECTD The SELECT range is a multiple line range which contains all lines G between the current line and the SELECT mark. The SELECT mark is set e# by the change mode SEL subcommand.t2 STRINGF A quoted string specifies a single line which contains the specifiedF string. The string can be enclosed in either single or double quotesF (' or "). When you use a string as a range, EDT will search forward,K starting with the current line, until it locates a line with the specifiedgB string. If a minus sign (-) precedes the string, the search will be backward.n l; Ex: T 'abc' Locate and type the first line forward which  contains the string 'abc' n3 T -"abc" Same, except the search will be backward.s2 THRUE The THRU range is a compound range which specifies all lines betweenb two single line ranges. r! Format: range-1 THRU range-2 oru range-1 : range-2n G Both forms are equivalent. Starting with range-1, EDT selects all thee9 lines up to and including the line specified by range-2.  c4 Ex: TYP 15:30 Type all lines with numbers between  15 and 30. e5 TYP 'glorp':END Type all lines from the first line h* forward containing 'glorp' to the end.2 WHOLE D The WHOLE (abbreviation: W) range refers to the entire text buffer.2 SETeC The SET (abbreviation: SE) command sets options that control otherTH editor operations. Once set, these options are in effect throughout the@ rest of the edit session or until changed by the SET command. 2 CASE* Format: SET CASE { UPPER | LOWER | NONE } 0F Use the SET CASE (abbreviation: SE CA) command on terminals which areF capable of displaying upper case characters only. SET CASE instructsJ EDT to flag with a preceding apostrophe either the upper case characters,D the lower case characters, or neither. The default for SET CASE is- NONE, which means no characters are flagged.  e, The keywords can be abbreviated as follows: CASE CAe UPPER U LOWER L NONE Nd2 CURSOR! Format: SET CURSOR top:bottom C H The SET CURSOR (abbreviation: SE CU) command, used with screen editing,C sets the limits within which the cursor is allowed to move withoute scrolling the screen. sF Top and bottom are the line numbers at the top of the screen and theI bottom of the screen. The line numbers must be in the range of 0 to 21,@ with 0 specifying the top of the screen and 21 the bottom. TheA default setting is 7:14, allowing the cursor to move within the middle third of the screen. T2 ENTITY5 Format: SET ENTITY entity-type 'delimiter string'o n% Entity-type is one of the following:  i WORD (abbreviation: W) SENTENCE (abbreviation: S) PAGE (abbreviation: PAG) PARAGRAPH (abbreviation: PAR) s7 The SET ENTITY (abbreviation: SE EN) command sets the .@ delimiters for the user-defined change mode entities. For the E WORD and SENTENCE entities, the delimiter string is a set of single B character delimiters. For PAGE and PARAGRAPH, the delimiter is a= character string which delimits the entity. See HELP CHANGEe+ ENTITIES for explanations of the entities.t2 KEYPAD Format: SET [NO]KEYPAD nH The SET KEYPAD (abbreviation: SE K) option controls whether or not the M editing keypad is to be used when you are in CHANGE mode. KEYPAD is set by eG default for VT52 and VT100 terminals, which means the alternate keypadRF is used to enter change mode commands. If you prefer the change mode= compatible with EDT version 1, use the SET NOKEYPAD command.2 LINESrC The SET LINES (abbreviation: SE L) command controls the number of xE screen lines used in either of the screen versions of change mode. T; Use this option to reduce the time it takes to refresh the - screen image when editing at low baud rates.u e Format: SET LINES n iD where n is the number of lines to use. n must be bet00f{z-z zx*ween 1 and 22." By default, n is set to 22 lines.2 MODE< The SET MODE (abbreviation: SE M) command determines which C mode of editing should be entered after all initial processing is SD complete. This command is useful only in the startup command file. d# Format: SET MODE { LINE | CHANGE }c gA By default, EDT enters line mode when the startup processing is D complete. Use SET MODE CHANGE in your startup file to cause EDT to enter change mode immediately.b 2 NUMBERS  Format: SET [NO]NUMBERS aE The SET NUMBERS (abbreviation: SE NU) command controls the typing ofe= line numbers on the terminal. Numbers is set on by default.lH If you want to suppress numbers, use SET NONUMBERS (abbreviation: NON).2 QUIEToH The SET QUIET (abbreviation: SE Q) command controls whether or not the 6 bell will sound when an error is made in change mode. o Format: SET [NO]QUIET sB The quiet option is off (meaning the bell will sound) by default.2 SEARCH7 The SET SEARCH (abbreviation: SE SE) command controls e- several options related to string searching.r ' Format: SET SEARCH { GENERAL | EXACT }i { [UN]BOUNDED }o { BEGIN | END }o aA The GENERAL (abbreviation: G) / EXACT (abbreviation: EX) option UF controls whether or not the case of alphabetic characters must be theF same as those in the search string to match. The default is GENERAL,: which means that case is ignored in string searches.  eH The BOUNDED (abbreviation: BO) option defines whether or not the searchG is bounded by a page delimiter. By default, the search is unbounded, G which means that the entire buffer will be searched. This option has I effect only in change mode. rG The BEGIN (abbreviation: B) / END (abbreviation: E) option determines tB whether the cursor is left at the beginning or end of the search A string when it is found. By default, the cursor is left at the a9 beginning. This option has effect only in change mode. D2 SCREEN; The SET SCREEN (abbreviation: SE SC) command controls the e* number of characters displayed on a line. i Format: SET SCREEN wm sG where w is the width of the screen line. By default, the screen widthy is set to 80 characters.B2 TABb7 The SET TAB (abbreviation: SE TA) command enables the t6 structured tab feature and sets the logical tab size. e Format: SET [NO]TAB n s8 where n is the number of columns in a logical tab stop. 9 With the structured tab feature, EDT keeps a counter of TE the tab level, which is set to 1 when the SET TAB command is issued.cE When you use the tab key in change mode at the beginning of a line, wI EDT will insert enough tabs and spaces to move the cursor to the column oB defined by the level n times the tab size. There are change modeC subcommands to alter the tab level. The structured tab feature is. disabled by default.  nD The tab size set by the tab command is also used by the TABS ADJUST command.u 2 TERMINAL. Format: SET TERMINAL { HCPY | VT52 | VT100 } hB The SET TERMINAL (abbreviation: SE TE) command identifies to EDT A the type of terminal you are using. Normally, EDT will set the E terminal type by asking the operating system what type it is. If itnE does not appear to have set the type correctly, you can use the SHOWnE TERMINAL command to see what EDT thinks your terminal is and the SETyF TERMINAL command to correct it if necessary. If your terminal is not8 a VT52 or a VT100, it should be set to HCPY (hardcopy). 2 TRUNCATE< The SET TRUNCATE (abbreviatin: SE TR) command controls the ' handling of long lines in change mode.r a Format: SET [NO]TRUNCATE  B By default, truncate mode is set, which means long lines will be H truncated on the display (the actual text is not altered). If you turn; off truncate mode by using SET NOTRUNCATE, long lines willuC be wrapped to as many screen lines as are necessary to display thea entire line. 2 VERIFY9 The SET VERIFY (abbreviation: SE V) command controls the.G listing of commands which are executed from the startup fil00f{{zzazOxsse or from a  macro.n f Format: SET [NO]VERIFYe G Verify is off by default, which means the lines are not typed. If youi: turn it on, each command line is typed as it is executed.2 WRAP Format: SET [NO]WRAP n D The SET WRAP (abbreviation: SE W) command enables word wrapping andB specifies the right margin. Word wrapping is a mode in which EDTB will automatically insert carriage returns when you are typing inC new text and the line exceeds a right margin. Word wrapping is ineB effect in change mode only and only if you have used the SET WRAP command. o bC The SET WRAP command is also used to set the right margin for the , change mode FILL subcommmand.F SET NOWRAP (abbreviation: SE NOW) disables the word wrapping feature.2 SHOW Format: SHOW parameter pH The SHOW (abbreviation: SH BU) command displays selected information onE the current state of the editor. Parameter is one of the additional topics listed below.e2 BUFFER Format: SHOW BUFFER nK The SHOW BUFFER (abbreviation: SH BU) command lists the buffers being usedG during the edit session, including the number of lines of text in eachgC buffer. The current buffer is marked by an equal sign (=) beforeoD the name. If an asterisk follows the number of lines, it indicatesB that an input file is connected to the buffer and that there areB more lines to be read from the file. Thus, the line count is not accurate. 2 CASE Format: SHOW CASEC The SHOW CASE (abbreviation: SH CA) command shows the current casea! setting (upper, lower, or none).e2 CURSOR Format: SHOW CURSORs i8 The SHOW CURSOR (abbreviation: SH CU) command shows the> current setting of the cursor region. EDT will respond with: e t:b fC where t and b are integer numbers indicating the top and bottom oftC the cursor region. See HELP SET CURSOR for an explanation of the b cursor region.i2 ENTITY! Format: SHOW ENTITY entity-type  , where entity type is one of the following:  a WORD (abbreviation: W) SENTENCE (abbreviation: S)( PAGE (abbreviation: PAG) PARAGRAPH (abbreviation: PAR) C The SHOW ENTITY (abbreviation: SH EN) command displays the currentt+ delimiter string for the specified entity.w2 KEYe Format: SHOW KEY key-selector g, where key-selector is one of the following: e [GOLD] number [GOLD] CONTROL letter GOLD charactert b8 The SHOW KEY (abbreviation: SH K) command displays the E current definition of a keypad or control key. See HELP DEFINE KEY.b2 SCREEN Format: SHOW SCREENH The SHOW SCREEN (abbreviation: SH SC) command shows the current setting/ for the maximum length of a line EDT displays.d2 SEARCH Format: SHOW SEARCHG The SHOW SEARCH (abbreviation: SH SE) command shows the current searchtF parameters. See HELP SET SEARCH for a description of search options. 2 TERMINAL Format: SHOW TERMINALD The SHOW TERMINAL (abbreviation: SH TE) command shows your terminal! type (VT52, VT100, or Hardcopy).r 2 VERSIONy Format: SHOW VERSION = The SHOW VERSION (abbreviation: SH VE) command displays the H version number of the editor. t 2 SUBSTITUTEF The SUBSTITUTE (abbreviation: S) command replaces occurrences of one * string of characters with another string. d; Format: SUBSTITUTE/string-1/string-2/ [range] [/BRIEF[:n]]  [/QUERY] [/NOTYPE] c@ Any nonalphanumeric character can be used as string delimiters. bE All occurrences of string-1 within the specified range are replaced HH with string-2. If you do not specify range, a single occurrence in theA current line is substituted. The line in which the substitutioni+ occurred is typed after each substitution.i 2 /BRIEF[:n]E When you select the BRIEF (abbreviation: /BR) option, only the firstrD n characters of the line are displayed. If you omit n, the default is 10.R 2 /NOTYPE]A When you specify /NOTYPE (abbreviation: /NOT) the lines in whichr( substitutions occurred are not typed. 2 NEXT@ The SUBSTITUTE NEXT (abbreviation: N) command replaces the next' occurrence of string-1 with s00f{g{-z zx*tring-2. r t4 The SUBSTITUTE NEXT command has the following form: i( [SUBSTITUTE] NEXT [/string-1/string-2/] iC The search for string-1 is made forward from the current location.,E When a substitution is made, the line where the substitution occurs  becomes the current line. T@ When the optional strings are omitted, the strings used in the 6 last SUBSTITUTE or SUBSTITUTE NEXT command are used. 2 /QUERY Format: /QUERY aE When you use the QUERY (abbreviation: /Q) qualifier, EDT prompts you-( with a '?' to verify each substitution. e Responses are:  Y Yes, do the substitution.$ N No, do not do the substitution.! Q Quit, terminate the command.o9 A All, do the rest of the substitutions without query.s2 TABS; The TAB ADJUST (abbreviation: TA A) command shifts each ofn: a range of lines a specified number of logical tab stops. U! Format: TAB ADJUST [-] n [range]s G where n is the number of tab stops to shift. You must use the SET TAB/B command to set the logical tab size in order for this command toI work. If you omit range, the select range is assumed. If a minus sign B precedes the count n, the text shifts to the left. Otherwise, it shifts to the right. 2 TYPEC The TYPE (abbreviation: T) command displays the specified range ofm lines on the terminal.  o* Format: TYPE [range] [/BRIEF[:n]] [/STAY] .@ The first line in the specified range becomes the current line. oG If the range specification starts with a non-alphabetic character, thei) keyword TYPE may be omitted completely. 2 /BRIEF Format: /BRIEF[:n]s c? When you select the BRIEF (abbreviation: /BR) option, only theeC first n characters of the line are displayed. If you omit n, theY default is 10.b2 /STAY: Format: /STAY s@ When you select the STAY (abbreviation: /ST) option, the cursorB position is not changed by the TYPE command. This enables you toD look at text elsewhere in the buffer (or in another buffer) without losing your position.2 WRITEaE The WRITE (abbreviation: WR) command creates a file from a specifieda range of lines. W8 Format: WRITE file-spec [range] [/SEQUENCE[:init:incr]] eG When you specify a range, the text contained in that range becomes thedI file. When you do not specify a range, the contents of the current textbE buffer becomes the new file. The cursor position is not affected byEE the WRITE command. If the file-spec and range are omitted, then theo. entire buffer is written to the output file. 2 /SEQUENCE  Format: /SEQUENCE[:init:incr]o n< When you use the SEQUENCE option, the output file is in VFCC (variable with fixed control) format, and line numbers are writtenp in the control field. o iC If you set init and incr, the file is renumbered starting with thegC number you choose for initial and the lines are incremented by theTB number you choose for incr. Otherwise, the original line numbers/ are written and new lines will be numbered 0. re buffer is written to the output file. 2 /SEQUENCE  Forma81[1,2]EDTCOM.MSGo001 Illegal text buffer name.$' A text buffer name may consist only ofa* from one to six alphanumeric characters.$> A text buffer name must be preceded by either '=' or '%BUF'.$002 Bad Range Format.$' The range you specified is not legal.$_#003 Buffer Specification Conflict.$o, The command you typed implied more than one buffer specification.$i, For instance, this may occur by using "N:M" in the same line as "%L".$*004 String search cannot have a modifier.$!005 No repetition count allowed.$006 No string-type allowed.$007 Can't open indirect file.$% Indirect files not yet implemented.$i008 Command I/O error.$u009 ^C$ &010 FATAL - Editor consistency error.$*011 Destination range must be contiguous.$7 A MOVE or COPY command can have only one destination.$c012 Illegal command option.$ 013 Indirect file already open.$&014 File name wild cards not allowed.$3 An explicit file must be specified to the editor.$ 015 File open error.$v< The editor is unable to c00g{{zzazOxssorrectly open the requested file.$016 File name syntax error.$? The file name you specified does not have the correct format.$ 017 No room in output file.$9 The device is full, the editor is unable to generate thea output file.$018 Illegal subcommand.$1019 Repetition count cannot be zero or negative.$a020 Illegal line number.$i0 A line number nust be in the range 1 to 65535.$021 Missing string quote.$/ A legal string must be surrounded by a pair ofe matching quote marks.$o3 A quoted string consists of one or more characters15 delimited by " or '. For instance, "ABC" or 'DEF'.$d022 Range not allowed here.$= The command you typed does not allow a range specification.$e023 Illegal string delimiters.$< The string delimiter may not be an alphanumeric character.$024 Illegal search string.$a"025 Indirect file depth exceeded.$8 Too many nested uses of indirect files were attempted.$026 Bad option format.$r& An editor option is of the form /xx.$"027 Illegal option name modifier.$2 An option name modifier can consist only of a "-" preceding the option.$,028 Unrecognized option name.$8 The option name you specified could not be recognized.$(029 Cannot mix "-" and value in option.$6 An option cannot have a modifier as well as a value.$&030 Bad option value in this context.$G The switch option value specified is invalid in context of its usage.$i031 Only one value allowed.$4 This option only allows one value to be specified.$032 No value specified.$ This option requires a value.$n< An option value consists of a colon followed by the value.$033 No value allowed.$) A value has no meaning for this option.$d,034 "%LAST" has no meaning in this context.$)035 Illegal termination of command line.$a3 A line was terminated by other than an end of linel or comment.$e$036 FATAL - work file memory error.$%037 You must specify a source range.$iA The MOVE or COPY command requires a source range specification.$t038 An argument is required.$s5 You must specify a valid argument for this command.$n039 No room for buffer.$@ The number of buffers allowed by the editor has been exceeded.$2040 Cannot yet be performed on hard copy devices.$8 The CHANGE command will not work on hard copy devices.$&041 Non-contiguous range not allowed.$C The CHANGE command will work only on a contiguous range of lines.$r%042 FATAL - Dynamic memory overflow.$g043 No output file specified.$4 The command you specified requires an output file.$044 File name table exhausted.$c3 You have explicitly referenced more files than the  editor tables can accomodate.$eE The INCLUDE or RESTORE has exhausted tables internal to the editor.$e045 No input file specified.$C: "INCLUDE" or "RESTORE" requires the /FI switch to specify the input file.$t046 No such line found.$E The line refereneced in the range specification could not be found.$aC The line may exist but could not be found in the range specified.$y047 No such file.$. The input file you requested does not exist.$048 No line numbers allowed.$r$ Line numbers have been turned off.$6049 The memory internal to the editor has overflowed.$6 The editor's memory is full. No additional text will; fit. Use WRITE if you desire to save what already exits.$c8050 The RESTORE command is not allowed in this context.$< When you invoked the editor, you gave a file specification.; This specification prohibits subsequent usage of RESTORE.$ @ Input the QUIT command and then invoke the editor again without@ any file specification. You can then use the RESTORE command.$"051 No such string in this range.$F The string referenced in the range specification could not be found.$E The string may exist but could not be found in the range specified.$aA052 The /SEQ and /UN options are not supported for this command.$c@ These switches are not implemented for EXIT, PRINT, and WRITE.$053 Illegal form for N:M.$J054 The file specified cannot be WRITTEn or PRINTed as it already exists.$I You are trying to overwrite a file which the editor is currently us00g{h{-z zx*ing.$eE This is illegal in the RSTS environment. Specify a different file.$e)055 This feature is not implemented yet.$ H You are using a feature which is not supported by this version of EDT.$056 Offset must be non-zero.$o! A range offset must be non-zero,o/ i. e. - it may be +1 or -1, but not +0 or -0.$ 057 Output file error.$2 The editor was unable to generate the output file without error.$ 058 Incorrect fill count value.$+059 The /QUERY switch cannot be used here.$ . The XEQ command and /QUERY are incompatible.$060 /QUERY value unrecognized.$a061 Input record too big.$E The editor was unable to read the input record because of its size.$o; The input record is longer than 255 characters in length.$zI The editor treats this condition as an EOF condition on the input file.$t062 No destination range.$9 In MOVE or COPY, a destination range must always exist.$u063 Ranges overlap.$F The range specifications in the MOVE or COPY command cannot overlap.$A The source and destination ranges must have no lines in common.$E(064 Object-string required with "%ALL".$4 When typing "%ALL", a string must be specified as a search object.$. The string specification must follow "%ALL".$065 Not a SAVE file.$z# Cannot RESTORE a non-SAVEed file.$s: RESTORE can only be used on a file which was generated by the SAVE command.$O'066 Range must have at least one line.$.' Zero lines cannot be moved or copied.$i*067 RESTORE must be first command issued.$4 No editing is allowed preceding a RESTORE command.$= The RESTORE must be the first command of an editing session," nothing may precede it.$s)068 "SUBSTITUTE NEXT" is not legal here.$t8 "SUBSTITUTE NEXT" can be used only after "SUBSTITUTE".$0 "SUBSTITUTE NEXT" has no meaning unless a prior? "SUBSTITUTE" command has been executed to establish the object and replacement strings.$069 I/O error on source file.$ 070 No previous string entered.$A '' or "" cannot be used unless a previous string was specified.$ 071 String too long.$R$072 No range specification allowed.$= A range specification is not meaningful in SAVE or RESTORE.$e= SAVE and RESTORE only work on the entire state of the edit.$E$073 Cannot recognize terminal type.$5 The terminal type you specified was unrecognizable.$r; The legal terminal types are HCPY, LA30, LA36, VT05, VT50,j VT52, VT55, VT61.$t074 Unrecognized command.$6 The command you typed is not a legal editor command.$)075 FATAL - Work file consistency error.$ $076 FATAL - I/O error on work file.$%077 FATAL - Open error on work file.$$078 XEQ range non-contiguous.$. A range specification in XEQ must always be a contiguous block of lines.$$079 Nested XEQ not yet implemented.$; This version of the editor allows no XEQ command nesting.$c080 Range required.$B The XEQ command always requires an explicit range specification.$8081 This is a dummy message and should never be issued.$$$$$t a legal editor command.$)075 FATAL - Work file consistency error.$ $076 FATAL - I/O error on work file.$%077 81[1,2]EDTCOM.MSGo001 Illegal text buffer name.$' A text buffer name may consist only ofa* from one to six alphanumeric characters.$> A text buffer name must be preceded by either '=' or '%BUF'.$002 Bad Range Format.$' The range you specified is not legal.$_#003 Buffer Specification Conflict.$o, The command you typed implied more than one buffer specification.$i, For instance, this may occur by using "N:M" in the same line as "%L".$*004 String search cannot have a modifier.$!005 No repetition count allowed.$006 No string-type allowed.$007 Can't open indirect file.$% Indirect files not yet implemented.$i008 Command I/O error.$u009 ^C$ &010 FATAL - Editor consistency error.$*011 Destination range must be contiguous.$7 A MOVE or COPY command can have only one destination.$c012 Illegal command option.$ 013 Indirect file already open.$&014 File name wild cards not allowed.$3 An explicit file must be specified to the editor.$ 015 File open error.$v< The editor is unable to c00h{{zzazOxssorrectly open the requested file.$016 File name syntax error.$? The file name you specified does not have the correct format.$ 017 No room in output file.$9 The device is full, the editor is unable to generate thea output file.$018 Illegal subcommand.$1019 Repetition count cannot be zero or negative.$a020 Illegal line number.$i0 A line number nust be in the range 1 to 65535.$021 Missing string quote.$/ A legal string must be surrounded by a pair ofe matching quote marks.$o3 A quoted string consists of one or more characters15 delimited by " or '. For instance, "ABC" or 'DEF'.$d022 Range not allowed here.$= The command you typed does not allow a range specification.$e023 Illegal string delimiters.$< The string delimiter may not be an alphanumeric character.$024 Illegal search string.$a"025 Indirect file depth exceeded.$8 Too many nested uses of indirect files were attempted.$026 Bad option format.$r& An editor option is of the form /xx.$"027 Illegal option name modifier.$2 An option name modifier can consist only of a "-" preceding the option.$,028 Unrecognized option name.$8 The option name you specified could not be recognized.$(029 Cannot mix "-" and value in option.$6 An option cannot have a modifier as well as a value.$&030 Bad option value in this context.$G The switch option value specified is invalid in context of its usage.$i031 Only one value allowed.$4 This option only allows one value to be specified.$032 No value specified.$ This option requires a value.$n< An option value consists of a colon followed by the value.$033 No value allowed.$) A value has no meaning for this option.$d,034 "%LAST" has no meaning in this context.$)035 Illegal termination of command line.$a3 A line was terminated by other than an end of linel or comment.$e$036 FATAL - work file memory error.$%037 You must specify a source range.$iA The MOVE or COPY command requires a source range specification.$t038 An argument is required.$s5 You must specify a valid argument for this command.$n039 No room for buffer.$@ The number of buffers allowed by the editor has been exceeded.$2040 Cannot yet be performed on hard copy devices.$8 The CHANGE command will not work on hard copy devices.$&041 Non-contiguous range not allowed.$C The CHANGE command will work only on a contiguous range of lines.$r%042 FATAL - Dynamic memory overflow.$g043 No output file specified.$4 The command you specified requires an output file.$044 File name table exhausted.$c3 You have explicitly referenced more files than the  editor tables can accomodate.$eE The INCLUDE or RESTORE has exhausted tables internal to the editor.$e045 No input file specified.$C: "INCLUDE" or "RESTORE" requires the /FI switch to specify the input file.$t046 No such line found.$E The line refereneced in the range specification could not be found.$aC The line may exist but could not be found in the range specified.$y047 No such file.$. The input file you requested does not exist.$048 No line numbers allowed.$r$ Line numbers have been turned off.$6049 The memory internal to the editor has overflowed.$6 The editor's memory is full. No additional text will; fit. Use WRITE if you desire to save what already exits.$c8050 The RESTORE command is not allowed in this context.$< When you invoked the editor, you gave a file specification.; This specification prohibits subsequent usage of RESTORE.$ @ Input the QUIT command and then invoke the editor again without@ any file specification. You can then use the RESTORE command.$"051 No such string in this range.$F The string referenced in the range specification could not be found.$E The string may exist but could not be found in the range specified.$aA052 The /SEQ and /UN options are not supported for this command.$c@ These switches are not implemented for EXIT, PRINT, and WRITE.$053 Illegal form for N:M.$J054 The file specified cannot be WRITTEn or PRINTed as it already exists.$I You are trying to overwrite a file which the editor is currently us00h{i{-z zx*ing.$eE This is illegal in the RSTS environment. Specify a different file.$e)055 This feature is not implemented yet.$ H You are using a feature which is not supported by this version of EDT.$056 Offset must be non-zero.$o! A range offset must be non-zero,o/ i. e. - it may be +1 or -1, but not +0 or -0.$ 057 Output file error.$2 The editor was unable to generate the output file without error.$ 058 Incorrect fill count value.$+059 The /QUERY switch cannot be used here.$ . The XEQ command and /QUERY are incompatible.$060 /QUERY value unrecognized.$a061 Input record too big.$E The editor was unable to read the input record because of its size.$o; The input record is longer than 255 characters in length.$zI The editor treats this condition as an EOF condition on the input file.$t062 No destination range.$9 In MOVE or COPY, a destination range must always exist.$u063 Ranges overlap.$F The range specifications in the MOVE or COPY command cannot overlap.$A The source and destination ranges must have no lines in common.$E(064 Object-string required with "%ALL".$4 When typing "%ALL", a string must be specified as a search object.$. The string specification must follow "%ALL".$065 Not a SAVE file.$z# Cannot RESTORE a non-SAVEed file.$s: RESTORE can only be used on a file which was generated by the SAVE command.$O'066 Range must have at least one line.$.' Zero lines cannot be moved or copied.$i*067 RESTORE must be first command issued.$4 No editing is allowed preceding a RESTORE command.$= The RESTORE must be the first command of an editing session," nothing may precede it.$s)068 "SUBSTITUTE NEXT" is not legal here.$t8 "SUBSTITUTE NEXT" can be used only after "SUBSTITUTE".$0 "SUBSTITUTE NEXT" has no meaning unless a prior? "SUBSTITUTE" command has been executed to establish the object and replacement strings.$069 I/O error on source file.$ 070 No previous string entered.$A '' or "" cannot be used unless a previous string was specified.$ 071 String too long.$R$072 No range specification allowed.$= A range specification is not meaningful in SAVE or RESTORE.$e= SAVE and RESTORE only work on the entire state of the edit.$E$073 Cannot recognize terminal type.$5 The terminal type you specified was unrecognizable.$r; The legal terminal types are HCPY, LA30, LA36, VT05, VT50,j VT52, VT55, VT61.$t074 Unrecognized command.$6 The command you typed is not a legal editor command.$)075 FATAL - Work file consistency error.$ $076 FATAL - I/O error on work file.$%077 FATAL - Open error on work file.$$078 XEQ range non-contiguous.$. A range specification in XEQ must always be a contiguous block of lines.$$079 Nested XEQ not yet implemented.$; This version of the editor allows no XEQ command nesting.$c080 Range required.$B The XEQ command always requires an explicit range specification.$8081 This is a dummy message and should never be issued.$$$$$t a legal editor command.$)075 FATAL - Work file consistency error.$ $076 FATAL - I/O error on work file.$%077 81[1,2]EDTCOM.MSGo001 Illegal text buffer name.$' A text buffer name may consist only ofa* from one to six alphanumeric characters.$> A text buffer name must be preceded by either '=' or '%BUF'.$002 Bad Range Format.$' The range you specified is not legal.$_#003 Buffer Specification Conflict.$o, The command you typed implied more than one buffer specification.$i, For instance, this may occur by using "N:M" in the same line as "%L".$*004 String search cannot have a modifier.$!005 No repetition count allowed.$006 No string-type allowed.$007 Can't open indirect file.$% Indirect files not yet implemented.$i008 Command I/O error.$u009 ^C$ &010 FATAL - Editor consistency error.$*011 Destination range must be contiguous.$7 A MOVE or COPY command can have only one destination.$c012 Illegal command option.$ 013 Indirect file already open.$&014 File name wild cards not allowed.$3 An explicit file must be specified to the editor.$ 015 File open error.$v< The editor is unable to c00i{{zzazOxssorrectly open the requested file.$016 File name syntax error.$? The file name you specified does not have the correct format.$ 017 No room in output file.$9 The device is full, the editor is unable to generate thea output file.$018 Illegal subcommand.$1019 Repetition count cannot be zero or negative.$a020 Illegal line number.$i0 A line number nust be in the range 1 to 65535.$021 Missing string quote.$/ A legal string must be surrounded by a pair ofe matching quote marks.$o3 A quoted string consists of one or more characters15 delimited by " or '. For instance, "ABC" or 'DEF'.$d022 Range not allowed here.$= The command you typed does not allow a range specification.$e023 Illegal string delimiters.$< The string delimiter may not be an alphanumeric character.$024 Illegal search string.$a"025 Indirect file depth exceeded.$8 Too many nested uses of indirect files were attempted.$026 Bad option format.$r& An editor option is of the form /xx.$"027 Illegal option name modifier.$2 An option name modifier can consist only of a "-" preceding the option.$,028 Unrecognized option name.$8 The option name you specified could not be recognized.$(029 Cannot mix "-" and value in option.$6 An option cannot have a modifier as well as a value.$&030 Bad option value in this context.$G The switch option value specified is invalid in context of its usage.$i031 Only one value allowed.$4 This option only allows one value to be specified.$032 No value specified.$ This option requires a value.$n< An option value consists of a colon followed by the value.$033 No value allowed.$) A value has no meaning for this option.$d,034 "%LAST" has no meaning in this context.$)035 Illegal termination of command line.$a3 A line was terminated by other than an end of linel or comment.$e$036 FATAL - work file memory error.$%037 You must specify a source range.$iA The MOVE or COPY command requires a source range specification.$t038 An argument is required.$s5 You must specify a valid argument for this command.$n039 No room for buffer.$@ The number of buffers allowed by the editor has been exceeded.$2040 Cannot yet be performed on hard copy devices.$8 The CHANGE command will not work on hard copy devices.$&041 Non-contiguous range not allowed.$C The CHANGE command will work only on a contiguous range of lines.$r%042 FATAL - Dynamic memory overflow.$g043 No output file specified.$4 The command you specified requires an output file.$044 File name table exhausted.$c3 You have explicitly referenced more files than the  editor tables can accomodate.$eE The INCLUDE or RESTORE has exhausted tables internal to the editor.$e045 No input file specified.$C: "INCLUDE" or "RESTORE" requires the /FI switch to specify the input file.$t046 No such line found.$E The line refereneced in the range specification could not be found.$aC The line may exist but could not be found in the range specified.$y047 No such file.$. The input file you requested does not exist.$048 No line numbers allowed.$r$ Line numbers have been turned off.$6049 The memory internal to the editor has overflowed.$6 The editor's memory is full. No additional text will; fit. Use WRITE if you desire to save what already exits.$c8050 The RESTORE command is not allowed in this context.$< When you invoked the editor, you gave a file specification.; This specification prohibits subsequent usage of RESTORE.$ @ Input the QUIT command and then invoke the editor again without@ any file specification. You can then use the RESTORE command.$"051 No such string in this range.$F The string referenced in the range specification could not be found.$E The string may exist but could not be found in the range specified.$aA052 The /SEQ and /UN options are not supported for this command.$c@ These switches are not implemented for EXIT, PRINT, and WRITE.$053 Illegal form for N:M.$J054 The file specified cannot be WRITTEn or PRINTed as it already exists.$I You are trying to overwrite a file which the editor is currently us00i{j{-z zx*ing.$eE This is illegal in the RSTS environment. Specify a different file.$e)055 This feature is not implemented yet.$ H You are using a feature which is not supported by this version of EDT.$056 Offset must be non-zero.$o! A range offset must be non-zero,o/ i. e. - it may be +1 or -1, but not +0 or -0.$ 057 Output file error.$2 The editor was unable to generate the output file without error.$ 058 Incorrect fill count value.$+059 The /QUERY switch cannot be used here.$ . The XEQ command and /QUERY are incompatible.$060 /QUERY value unrecognized.$a061 Input record too big.$E The editor was unable to read the input record because of its size.$o; The input record is longer than 255 characters in length.$zI The editor treats this condition as an EOF condition on the input file.$t062 No destination range.$9 In MOVE or COPY, a destination range must always exist.$u063 Ranges overlap.$F The range specifications in the MOVE or COPY command cannot overlap.$A The source and destination ranges must have no lines in common.$E(064 Object-string required with "%ALL".$4 When typing "%ALL", a string must be specified as a search object.$. The string specification must follow "%ALL".$065 Not a SAVE file.$z# Cannot RESTORE a non-SAVEed file.$s: RESTORE can only be used on a file which was generated by the SAVE command.$O'066 Range must have at least one line.$.' Zero lines cannot be moved or copied.$i*067 RESTORE must be first command issued.$4 No editing is allowed preceding a RESTORE command.$= The RESTORE must be the first command of an editing session," nothing may precede it.$s)068 "SUBSTITUTE NEXT" is not legal here.$t8 "SUBSTITUTE NEXT" can be used only after "SUBSTITUTE".$0 "SUBSTITUTE NEXT" has no meaning unless a prior? "SUBSTITUTE" command has been executed to establish the object and replacement strings.$069 I/O error on source file.$ 070 No previous string entered.$A '' or "" cannot be used unless a previous string was specified.$ 071 String too long.$R$072 No range specification allowed.$= A range specification is not meaningful in SAVE or RESTORE.$e= SAVE and RESTORE only work on the entire state of the edit.$E$073 Cannot recognize terminal type.$5 The terminal type you specified was unrecognizable.$r; The legal terminal types are HCPY, LA30, LA36, VT05, VT50,j VT52, VT55, VT61.$t074 Unrecognized command.$6 The command you typed is not a legal editor command.$)075 FATAL - Work file consistency error.$ $076 FATAL - I/O error on work file.$%077 FATAL - Open error on work file.$$078 XEQ range non-contiguous.$. A range specification in XEQ must always be a contiguous block of lines.$$079 Nested XEQ not yet implemented.$; This version of the editor allows no XEQ command nesting.$c080 Range required.$B The XEQ command always requires an explicit range specification.$8081 This is a dummy message and should never be issued.$$$$$t a legal editor command.$)075 FATAL - Work file consistency error.$ $076 FATAL - I/O error on work file.$%077 1 HELP%You can get help on a topic by typingl# HELP topic subtopic subsubtopic... ,A topic can have one of the following forms:> 1. An alphanumeric string (e.g. a command name, option, etc.)) 2. The match-all or wild card symbol (*)  Examples: HELP SUBSTITUTE NEXTe HELP CHANGE SUBCOMMAND- HELP CHBIf a topic is abbreviated, the text for all topics which match theabbreviation is displayed. 1 KEYPAD;Enter the keypad editor through the CHANGE command with theDGKEYPAD option set (see SET command). See HELP CHANGE KEYPAD for more L information.2 VT100t cZ)0lqqqqqqqqwqqqqqqqqwqqqqqqqqwqqqqqqqqk lqqqqqqqqwqqqqqqqqwqqqqqqqqwqqqqqqqqk]x ^ x Down x x x x x x Fndnxt x Del L xI[x x x x x x x  Gold x Help x x x mx x x x x Left x Right x x x x Find x Und L xcTx Up x v x x00j{{zzazOxss x tqqqqqqqqnqqqqqqqqnqqqqqqqqnqqqqqqqquXmqqqqqqqqvqqqqqqqqvqqqqqqqqvqqqqqqqqj x Page x Sect x Append x Del W xP x x x x xt x Commandx Fill x Replacex Und W xRDelete Rubout character tqqqqqqqqnqqqqqqqqnqqqqqqqqnqqqqqqqquZLinefeed Rubout word x Advancex Backup x Cut x Del C xRBack space Backup to beginning of line x x x x xvCTRL/A Compute tab level x Bottom x Top x Paste x Und C xRCTRL/D Decrease tab level tqqqqqqqqnqqqqqqqqnqqqqqqqqnqqqqqqqquXCTRL/E Increase tab level x Word x  Eol x Char x xTCTRL/K Define key x x x x Enter xmCTRL/T Adjust tabs xChngcasex Del Eolx Specinsx x RCTRL/W Refresh screen tqqqqqqqqvqqqqqqqqnqqqqqqqqu xVCTRL/Z Return to line mode x Line  x Select x xY x x x Subs x kType a key for help on that key. x Open line x Reset x x YTo exit, type a space. mqqqqqqqqqqqqqqqqqvqqqqqqqqvqqqqqqqqjx o3 00EThe LINE key advances or backs up the cursor to the nearest beginning $of a line (see ADVANCE and BACKUP).  @The OPEN LINE key inserts a carriage return after the cursor andAleaves the cursor position unchanged. Pressing the OPEN LINE key Cwhen the cursor is at the beginning of the line creates a new blankpline.t3 01@The WORD key moves the cursor forward or backward by a word (seeADVANCE and BACKUP). e sBThe CHGC key changes the case of a range of characters as follows: 8 1. If there is a select range active, the case of each9 alphabetic character in the select range is changed.C )< 2. If 1 does not apply and the cursor is positioned on the8 current search string, the case of each alphabetic / character in the search string is changed.e n< 3. If 1 and 2 do not apply, then the case of one character: is changed, and the cursor moves one character in the current direction.h3 02FThe EOL key moves the cursor forward or backward to the nearest end ofline. a lDThe DELETE EOL key deletes all characters to the right of the cursorCin the current line, including the character on which the cursor is positioned. n3 03CThe CHAR key advances or backs up the cursor by one character (seetADVANCE and BACKUP).  cAThe SPECINS key inserts any ASCII character. Press the GOLD key,aAenter the decimal representation of the character, press the GOLDkey again, and press SPECINS. 3 04CThe ADVANCE key sets the current direction to advance for the CHAR,eAWORD, LINE, EOL, PAGE, SECTION, SUBSTITUTE, SUBSTITUTE NEXT, FIND Aand FIND NEXT keys. Advance means the movement will occur in thehHdirection toward the end of the file, that is, to the right and down.  sEThe BOTTOM key positions the cursor at the bottom of the text buffer. 3 05FThe BACKUP key sets the cursor direction to backup for the CHAR, WORD,DLINE, EOL, PAGE, SECTION, SUBSTITUTE, SUBSTITUTE NEXT, FIND and FINDENEXT keys. Backup means the movement will occur in the direction of 8the beginning of the file, that is, to the left and up.  E?The TOP key positions the cursor at the top of the text buffer.l3 06EThe CUT key deletes the select range, storing it in the paste buffer.nCThe select range is all the text between the selected position (seetDSELECT) and the current cursor position. If you have not selected aFrange and the cursor is positioned on the current search string, thatCstring is cut. The previous contents of the paste buf00j{{-z zx*fer is lost. c iBThe PASTE key inserts the contents of the paste buffer directly infront of the cursor. 3 07FThe PAGE key moves the cursor to the top of a page. A page is definedFby a delimiter string, which can be set by the SET ENTITY command. The;default page delimiter is the form feed character (CTRL/L).T nAThe COMMAND key allows the you to input a line mode command to benAexecuted. The command is terminated by pressing the ENTER key oni the keypad.h3 08>The SECTION key moves the cursor 16 lines forward or backward,Adepending on the current direction mode (see ADVANCE and BACKUP).c oCThe FILL key performs a word fill on the select range. A word fillgDreformats a block of text so that as many full words as possible areBplaced on each line without exceeding the right margin. The rightDmargin may be set by the SET WRAP command or, if it was not set, the=default is the terminal width - 1. For purposes of the FILLe2command, only spaces are used as word delimiters. 3 09CThe APPEND key deletes the selected range and adds it to the end ofr@the paste buffer. The selected range is all the text between theFselected position (see SELECT) and the current cursor position. If no@select has been done and the cursor is positioned on the current*search string, that string is appended.  AThe REPLACE key deletes the select range and replaces it with thee contents of the PASTE buffer. 3 106Use the HELP key to obtain help on the editing keypad.3 11@The FIND NEXT key searches for the next occurrence of the searchCstring entered by the FIND key. The direction of the search is the ,current direction mode (ADVANCE or BACKUP).  CDThe FIND key searches for an occurrence of a string. Press the FINDEkey and then enter the string from the main keyboard. End the stringaDby pressing either the ADVANCE or BACKUP key to set the direction of the search. 3 12=The ^ (up arrow) key moves the cursor to the character above.l3 13?The v (down arrow) key moves the cursor to the character below. 3 15CThe < (left arrow) key moves the cursor to the preceding character. 3 14?The > (right arrow) key moves the cursor to the next character.h3 16DThe SELECT key marks one end of a select range. A select range is aAblock of text on which various operations (such as CUT, APPEND orp@FILL) can be performed. You create a select range by moving theAcursor to either the beginning or the end of the text you wish toaBselect, pressing the SELECT key, and then moving the cursor to theEopposite end of the text. You can then perform the desired operatione on the range.a r;The RESET key cancels the effect of the GOLD key if it was t=pressed by mistake, cancels a select range, or terminates anyn'other partially entered command string.n3 17DThe DEL L key deletes text from the cursor position up to the end ofCthe current line, including the line terminator. If the cursor is iBpositioned at the beginning of a line, the entire line is deleted.5The deleted text is saved in the delete line buffer.  EThe UND L key inserts the contents of the delete line buffer ahead of the cursor. a3 18BThe DEL W key deletes text from the cursor to the beginning of the9next word, storing the text in the delete word buffer.  mEThe UND W key inserts the contents of the delete word buffer ahead of the cursor. 3 19FThe DEL C key deletes the character on which the cursor is positioned .and saves it in the delete character buffer.  AThe UND C key inserts the contents of the delete character buffer ahead of the cursor. 3 20EThe GOLD key lets you use the alternate function of the editing keys.E:Press the GOLD key first and then the key you wish to use. eAYou can also use the GOLD key to enter repeat counts. Press GOLDNBand then the main keyboard numeric keys, followed by the key to beCrepeated. The DELETE key and CTRL/U may be used to edit the repeatc2count, and thus cannot be repeated in this manner.3 21/The ENTER key terminates the input of commands.s FThe SU00j{{zzazOxssBS key deletes the search string, replaces it with the contents Fof the paste buffer, and finds the next occurrence of the string. For?multiple substitutions, use the following sequence of commands:u t 1. Press SELECT. 2. Type the new text.L 3. Press CUT.m 4. Press FIND.( 5. Enter the text you wish to replace. HEach time you press SUBSTITUTE, EDT makes one substitution and finds theEnext occurrence of the search string. You can use a repeat count foremultiple substitutions.3 45GThe tab compute key is used when structured tabs are enabled to computepGthe indentation level from the cursor position. If the cursor positions7is not a multiple of the the tab size, an error occurs.t3 48IThe tab decrease key is used when structured tabs are enabled to decrease.the indentation level counter.3 49IThe tab increase key is used when structured tabs are enabled to increasenthe indentation level counter.3 52JThe beginning of line key moves the cursor to the beginning of the currentGline. If the cursor is already on the beginning of a line, it moves tohthe previous line.3 54HThe delete to beginning of word key is used to delete all character fromGthe cursor position to the beginning of the word containing the cursor.uFIf the cursor is on the first character of a word the previous word isdeleted.3 55GThe DEFINE KEY key is used to define a new function for an editing key.tBThe user is prompted first to press the key to be defined, then toFenter the definition. The key can be defined either in terms of otherIediting keys or by use of change mode subcommands. If you use an editingt8key, its definition appears at the bottom of the screen.3 64EThe tab adjust key is used when structured tabs are enabled to adjust?the tab level of the select range. The key is used as follows:r: 1. Create a select range of the text you wish to adjust. f> 2. Enter a repeat count by using the GOLD key. A minus sign= should preceed the count if you wish to decrease the taby@ level. If you do not use a repeat count, it defaults to 1. h 3. Use the tab adjust key. eFThe effect of the key is to increase or decrease the indentation levelHof the select range by the number of tabs indicated by the repeat count.3 65DThe delete to beginning of line key is used to delete all charactersCin the current line to the left of the cursor. If the cursor is onrCthe first character of a line, the entire previous line is deleted.c3 70.The exit key returns you to line mode editing.2 VT52MDEL Delete character +--------+--------+--------+--------+eM | | | DEL L | UP |MLF Delete to beginning of word | GOLD | HELP | | |M | | | UND L |REPLACE |rMBACK SP Move to beginning of line +--------+--------+--------+--------+ M | PAGE | FNDNXT | DEL W | DOWN |uMCTRL/A Compute tab level | | | | |-M |COMMAND | FIND | UND W | SECT | MCTRL/D Decrease tab level +--------+--------+--------+--------+LM |ADVANCE | BACKUP | DEL C | RIGHT | MCTRL/E Increase tab level | | | | |-M | BOTTOM | TOP | UND C |SPECINS |GMCTRL/F Fill text +--------+--------+--------+--------+ M | WORD | EOL | CUT | LEFT |AMCTRL/K Define key | | | | |-M |CHNGCASE|DEL EOL | PASTE | APPEND |NMCTRL/T Adjust tabs +--------+--------+--------+--------+ M | LINE | SELECT | ENTER |TMCTRL/Z Return to line mode | | | 00j{{-z zx* |-M | OPEN LINE | RESET | SUBS |RM*** For help on a key, press the key +-----------------+--------+--------+ *** To exit, type a space.3 00EThe LINE key advances or backs up the cursor to the nearest beginningP$of a line (see ADVANCE and BACKUP).  @The OPEN LINE key inserts a carriage return after the cursor and@leaves the position unchanged. Pressing the OPEN LINE key when >the cursor is at the beginning of the line creates a new blankline.-3 01@The WORD key moves the cursor forward or backward by a word (seeADVANCE and BACKUP). o BThe CHGC key changes the case of a range of characters as follows: i8 1. If there is a select range active, the case of each9 alphabetic character in the select range is changed.E d8 2. If 1 does not apply and the cursor is positioned onC the current search string, the case of each alphabetic O/ character in the search string is changed.g < 3. If 1 and 2 do not apply, then the case of one character: is changed, and the cursor moves one character in the current direction.k3 02FThe EOL key moves the cursor forward or backward to the nearest end ofline.  gDThe DELETE EOL key deletes all characters to the right of the cursorCin the current line, including the character on which the cursor ist positioned. 3 03EThe CUT key deletes the select range, storing it in the paste buffer.rCThe select range is all the text between the selected position (see DSELECT) and the current cursor position. If you have not selected aFrange and the cursor is positioned on the current search string, thatCstring is cut. The previous contents of the paste buffer is lost. h EBThe PASTE key inserts the contents of the paste buffer directly infront of the cursor location.c3 04CThe ADVANCE key sets the current direction to advance for the CHAR, AWORD, LINE, EOL, PAGE, SECTION, SUBSTITUTE, SUBSTITUTE NEXT, FINDeAand FIND NEXT keys. Advance means the movement will occur in thehHdirection toward the end of the file, that is, to the right and down.  iEThe BOTTOM key positions the cursor at the bottom of the text buffer.r3 05FThe BACKUP key sets the cursor direction to backup for the CHAR, WORD,DLINE, EOL, PAGE, SECTION, SUBSTITUTE, SUBSTITUTE NEXT, FIND and FINDDNEXT keys. Backup means the movement will occur in the direction of8the beginning of the file, that is, to the left and up.  U?The TOP key positions the cursor at the top of the text buffer.i3 06FThe DEL C key deletes the character on which the cursor is positioned .and saves it in the delete character buffer.  oAThe UND C key inserts the contents of the delete character buffer ahead of the cursor. 3 07FThe PAGE key moves the cursor to the top of a page. A page is definedFby a delimiter string, which can be set by the SET ENTITY command. The;default page delimiter is the form feed character (CTRL/L).  =The COMMAND key allows you to input a line mode command to bexAexecuted. The command is terminated by pressing the ENTER key onc the keypad.t3 08GThe FIND NEXT key searches for the next occurrence of the search stringtDentered by the FIND key. The direction of the search is the current#direction mode (ADVANCE or BACKUP).  tDThe FIND key searches for an occurrence of a string. Press the FINDEkey and then enter the string from the main keyboard. End the stringoHby pressing either the ADVANCE or BACKUP key to set the direction of thesearch.o3 09BThe DEL W key deletes text from the cursor to the beginning of the9next word, storing the text in the delete word buffer. t nEThe UND W key inserts the contents of the delete word buffer ahead ofe the cursor. a3 10 t6Use the HELP key to obtain help on the editing keypad.3 11HThe DEL L key deletes text from the cursor position up to the end of the?current line, including the line terminator. If the cursor iseCpositioned at the beginning of a line, the entire line is deleted. e5The deleted text is saved 00j|{zzazOxssin the delete line buffer. r EThe UND L key inserts the contents of the delete line buffer ahead offthe cursor. 3 12=The ^ (up arrow) key moves the cursor to the character above. AThe REPLACE key deletes the select range and replaces it with thek contents of the paste buffer. 3 13?The v (down arrow) key moves the cursor to the character below.c i>The SECTION key moves the cursor 16 lines forward or backward,@depending on the current direction mode (see ADVANCE and BACKUP)3 14?The > (right arrow) key moves the cursor to the next character.o nAThe SPECINS key inserts any ASCII character. Press the GOLD key, Aenter the decimal representation of the character, press the GOLDEkey again, and press SPECINS. e3 15CThe < (left arrow) key moves the cursor to the preceding character.d CThe APPEND key deletes the selected range and adds it to the end of @the paste buffer. The selected range is all the text between theFselected position (see SELECT) and the current cursor position. If noCselection has been made and the cursor is positioned on the currente*search string, that string is appended. 3 16DThe SELECT key marks one end of a select range. A select range is aAblock of text on which various operations (such as CUT, APPEND orvGFILL) can be performed. You create a select range by moving the cursoreBto either the beginning or the end of the text you wish to select,Cpressing the SELECT key, and then moving the cursor to the oppositeCCend of the text. You can then perform the desired operation on thenrange.  i;The RESET key cancels the effect of the GOLD key if it was aGpressed by mistake, cancels a select range, or terminates any partiallycentered command string.x3 20BThe GOLD key lets you use the lower function of the editing keys. 5Press the GOLD key and then the key you wish to use.  eAYou can also use the GOLD key to enter repeat counts. Press GOLDsBand then the main keyboard numeric keys, followed by the key to beCrepeated. The DELETE key and CTRL/U may be used to edit the repeata2count, and thus cannot be repeated in this manner.3 21/The ENTER key terminates the input of commands.e rFThe SUBS key deletes the search string, replaces it with the contents Fof the paste buffer, and finds the next occurrence of the string. For@multiple substitutions, use the following sequence of commands:  t 1. Press SELECT. 2. Type the new text.L 3. Press CUT.m 4. Press FIND.( 5. Enter the text you wish to replace. DEach time you press SUBSTITUTE, EDT makes one substitution and findsEthe next occurrence of the search string. You can use a repeat countsfor multiple substitutions. 3 45GThe tab compute key is used when structured tabs are enabled to computepGthe indentation level from the cursor position. If the cursor positions7is not a multiple of the the tab size, an error occurs.t3 48IThe tab decrease key is used when structured tabs are enabled to decrease.the indentation level counter.3 49IThe tab increase key is used when structured tabs are enabled to increasenthe indentation level counter.3 50CThe FILL key performs a word fill on the select range. A word fill Dreformats a block of text so that as many full words as possible areBplaced on each line without exceeding the right margin. The rightDmargin may be set by the SET WRAP command or, if it was not set, the=default is the terminal width - 1. For purposes of the FILLn2command, only spaces are used as word delimiters. 3 52JThe beginning of line key moves the cursor to the beginning of the currentGline. If the cursor is already on the beginning of a line, it moves tonthe previous line.3 54HThe delete to beginning of word key is used to delete all character fromGthe cursor position to the beginning of the word containing the cursor.aFIf the cursor is on the first character of a word the previous word isdeleted.3 55GThe DEFINE KEY key is used to define a new function for an editing key. BThe user is prompted first to press the key 00j |{-z zx*to be defined, then toFenter the definition. The key can be defined either in terms of otherCediting keys or by use of change mode subcommands. When you use ane@editing key, its definition appears at the bottom of the screen.3 64EThe tab adjust key is used when structured tabs are enabled to adjustf?the tab level of the select range. The key is used as follows: : 1. Create a select range of the text you wish to adjust. n> 2. Enter a repeat count by using the GOLD key. A minus sign= should preceed the count if you wish to decrease the tabc@ level. If you do not use a repeat count, it defaults to 1. n 3. Use the tab adjust key. eFThe effect of the key is to increase or decrease the indentation levelHof the select range by the number of tabs indicated by the repeat count.3 65DThe delete to beginning of line key is used to delete all charactersCin the current line to the left of the cursor. If the cursor is onrCthe first character of a line, the entire previous line is deleted.c3 70.The exit key returns you to line mode editing.1 CLEAR DThe CLEAR (abbreviation: CL) command provides an efficient means of "deleting all the text in a buffer.Format: CLEAR buffer-nameHAll the text in the specified buffer is deleted. (Note that the argumentHis a buffer-name, not a range specification. CLEAR PASTE is valid, while.CLEAR =PASTE and CLEAR BUFFER PASTE are not.) 1 CHANGE>The CHANGE command puts EDT in change mode. Use change mode to9edit at the character level rather than the line level. yFormat: CHANGE [range]d9The optional range specifies the cursor position when youe;enter change mode. If you omit range, the current positionis used.?There are three submodes of change mode. Which submode you useeDdepends on the type of terminal you are using and whether or not youGwish to use the auxiliary (numeric) keypad for editing commands. Theseo modes are:  1. Hardcopy mode  2. Keypad modee 3. Nokeypad modec 2 ENTITIESDEntities are used in change mode subcommands to specify the text on Fwhich a subcommand will operate. Each entity represents a portion of Ftext, which may be anything from a single character to an entire text Fbuffer. Most entities can be preceded by a count, which indicates the#number of entities to be affected.t 3 CHARACTER AThe character entity is specified by the letter C. It selects a osingle character of text.a3 WORD@A word consists of a string of characters terminated by a set ofCdelimiter characters. The default delimiter characters are spaces,tBtabs, carriage returns, line feeds, form feeds, and vertical tabs.ASpaces are handled in a special way: all spaces following a word Bup to the first non-space character are considered part of a word.FOther delimiters are not considered a part of the word they terminate.ARather, they are considered to be words by themselves. There areithree word entities: a> W Specifies the entire word in which the cursor is  positioned.  r; BW Specifies all characters to the left of the cursor up # to the beginning of the word.e > EW Specifies all characters from the cursor through the end of the word.?You can change the word delimiters with the SET ENTITY command.r3 LINEThe line entities are:7 L Specifies the entire line in which the cursor is e positioned.o ? BL Specifies all characters to the left of the cursor up to 4 the beginning of a line. (When the cursor is J positioned at the beginning of a line, the BL entity selects ' the entire previous line.)d > EL Specifies all characters from the cursor to the end of a: line, including the character on which the cursor is. positioned. (If the cursor is on a line 4 terminator, the entire next line is selected.) h@ NL Specifies all characters from the cursor to the beginning = of the next line, including the character on which the f cursor is positioned. 3 RA00j|{zzazOxssNGE BThe range entities specify all text in the buffer either before or.after the cursor. The two range entities are:9 BR Specifies the text from the cursor position to the  beginning of the buffer. = ER Specifies the text from the cursor position to the end a of the buffer. 3 SENTENCEDA sentence consists of a string of characters terminated by one of aDset of single character delimiters. The default sentence delimitersCare '.', '?', and '!'. A sentence delimiter is considered to be agFdelimiter only if it is at the end of a line or if it is followed by a?space. The line terminator or trailing spaces are considered ao;part of the sentence. There are three sentence entities: .= SEN Specifies the entire sentence in which the cursor is d? positioned, including the delimiter and trailing spacesr or line terminator.b n@ BSEN Specifies all characters in the current sentence to the  left of the cursor.  '> ESEN Specifies all characters in the current sentence from 8 the cursor to (but not including) the delimiter  character.AThe sentence delimiters can be changed by the SET ENTITY command.r3 PAGEFA page consists of all the text between two page delimiters, includingEthe trailing page delimiter. The default page delimiter is the formr1feed character. There are three page entities: B+ PAGE Specifies all of the current page.e n> BPAGE Specifies all characters in the current page from the7 character to the left of the cursor to the beginning  of the page. i? EPAGE Specifies all characters in the current page from the m: cursor to (but not including) the page delimiter.>You can change the page delimiter with the SET ENTITY command. 3 PARAGRAPHlFA paragraph consists of all the text between two paragraph delimiters,Bincluding the trailing paragraph delimiter. The default paragraph.delimiter is two consecutive line terminators.%There are three paragraph entities: / PAR Specifies all of the current paragraph.i ? BPAR Specifies all characters in the current paragraph from r? the character preceding the cursor to the beginning of p the paragraph. h? EPAR Specifies all characters in the current paragraph from l7 the cursor to (but not including) the paragrapha delimiter.CYou can change the paragraph delimiter with the SET ENTITY command.e3 SELECTFThe select entity consists of all characters between the cursor and Ethe select mark. The select mark must have been specified previouslyeCby a SEL subcommand. If no select mark is active and the cursor ise>positioned on the current search string, the search string is 7selected. The select range entity is specified by SR. 3 VERTICALDThe vertical line entity is the same as the line entity, except thatEwith the V entity, the cursor stays in the same column. The verticalIentity is specified by V. 3 STRINGDThe string entity consists of all the characters between the cursor Band the next occurrence of a specified search string. Specify the>string entity by enclosing the desired search string in singleEor double quotes. If the string is null (specified by '' or ""), the %previous search string is used again.yBFor key definitions, the null character (ASCII character 0) may beAused in place of the quote characters to avoid conflicts with the search string the user enters. 2 HARDCOPYAOn a hardcopy terminal, change mode operates as follows. When youbEenter change mode, the EDT displays the current line on the terminal.gFThe cursor position is marked by bracketing the character on which theAcursor is positioned. EDT will then prompt with the characters: rC*DIn response, you type a series of change mode subcommands terminatedBby a carrige return. EDT will execute the commands and retype theline. 2 KEYPADCYou enter the keypad submode of change mode when your terminal is aBVT52 or VT100 and the KEYPAD option is on. (This option is on by Cdefault.00j|{-z zx*) In this submode, the terminal screen is used as a windowg@into the text buffer. Characters typed on the main keyboard areCinserted into the buffer at the cursor position. You enter editingrFcommands by using keys on the auxiliary keypad, or control keys on themain keyboard. c i8For more help on keypad mode, type CHANGE to enter that /mode. Use the keypad HELP facility as follows: 6 1. If your terminal is a VT100, press the keypad key marked "PF2".9 2. If your terminal is a VT52, press the red keypads key.s2 SCREENCYou enter the screen submode of change mode if your terminal is notnHa VT52 or VT100 or your terminal is a VT52 or VT100 and the SET NOKEYPADCcommand has been used to turn off the keypad option. The screen isnJused as a window into the text buffer. Change mode commands are typed fromFthe keyboard and echoed on the bottom line of the screen. The commandsFare executed and the text on the screen is updated whenever a carriagereturn is typed. 2 SUBCOMMANDSsJWhen EDT is in change mode, a distinct set of commands is accepted. TheseJare called the change mode subcommands. Do not abbreviate the subcommandsIor include spaces within a single command. A string of subcommands may bee7concatenated with zero or more spaces separating them. e b>Subcommands take one of the following forms, depending on the particular command:e A. command o B. [+|-] [count] command xA C. [+|-] [count] [command] [+|-] [count] [+|-] entity [=buffer] U@Whenever a sign can appear in more than one place, the last sign.specified is used to determine the direction. EA sequence of subcommands can also be enclosed in parentheses to formnJa single unit. A numeric literal preceding the left parenthesis indicates2the number of times to repeat the entire sequence. 3 ADVANCEhGThe ADVANCE command sets the current cursor direction to advance. The aBcurrent direction is used by many subcommands to determine whetherFentities to the left or to the right of the cursor are to be affected.EWhen the direction is advance, the cursor character and characters toe'the right are affected by subcommands.  Format: ADV3 APPENDAThe APPEND command works in the same way as the CUT command (see)e=except that the new text is added to the end of the alternatei+buffer instead of replacing its contents.  sBFormat: [+|-] [count] APPEND [+|-] [count] [+|-] entity [=buffer]3 ASCIIy8The ASCII subcommand inserts a specified ASCII character<into the buffer at the cursor position. Use the count field=to indicate the decimal value of the ASCII character you want to insert. fFormat: [count] ASCII >The ASCII command is the only way to insert a carriage return Echaracter in the middle of a line of text; otherwise, insert commandseEalways treat the carriage return as a line terminator. The following2command would insert a carriage return character:  y1 13ASC (13 is the ASCII code for carriage return)a3 BACKUPEThe BACKUP command sets the current cursor direction to backup. The tBcurrent direction is used by many subcommands to determine whetherFentities to the left or to the right of the cursor are to be affected.BWhen the direction is backup, characters to the left of the cursorare affected. h i Format: BACKa3 CHGC?The CHGC command changes the case of every alphabetic characternBin the specified number of entities - lower case characters become'upper case and upper case become lower.a6Format: [+|-] [count] CHGC [+|-] [count] [+|-] entity3 CUTt:The CUT command deletes a specified number of entities andDsaves all the deleted text in an alternate text buffer. The commandDworks exactly like the DELETE command except that the text is saved. h?Format: [+|-] [count] CUT [+|-] [count] [+|-] entity [=buffer]C h?If you do not specify a buffer, the buffer named PASTE is used.n e Ex: CUTSR Cut the selected range % CUTPAGE Cut the current page of textu3 DEFKCThe DEFK command is used to assign new definitions to 00j!|{zzazOxssediting keys.nBThe user is prompted first to press the key to be defined, then toFenter the definition. The key can be defined either in terms of otherIediting keys or by use of change mode subcommands. If you use an editinghFkey, its definition appears at the bottom of the screen. This command4should only be executed while in keypad change mode. Format: DEFKx3 DELETE4The DELETE subcommand deletes a specified number of entities. E:Format: [+|-] [repeat-count] D [+|-] [count] [+|-] entity n@If the entity is C, W, BW, EW, L, BL, EL, or NL, the last entityDdeleted by the command is saved in the delete buffer associated with@the entity and can be restored by use of the UNDELETE C, W, or L subcommand. d n8Ex: D15C Deletes 15 characters in the current direction.  DSR Deletes the select range. e, DBR Deletes to the beginning of the buffer. ? D'ABC' Deletes all characters from the cursor up to the first n6 occurrence of the string 'ABC' but not including the string.n3 EXITDThe EXIT command exits change mode (not the editor). When the exit/command is executed, you return to line mode. r s Format: EX3 EXTEND9The EXTEND command executes a line mode command while youcJare in change mode. EDT interprets the remainder of the command line as aAline mode command, executes the command, and reenters change mode automatically.  DFormat: EXT line mode command3 FILL:The FILL command reformats a block of text so that as manyDcomplete words as possible are placed on each line without exceedingHthe right margin. The right margin is set to the terminal width minus 1Acharacter by default or may be changed by the SET WRAP command. u 6Format: [+|-] [count] FILL [+|-] [count] [+|-] entity3 HELPEThe HELP command causes a diagram of keypad functions and CONTROL key Cdescriptions to appear on the screen. If executed in keypad change Bmode, additional information can be obtained by pressing keypad orCcontrol keys; in nokeypad mode, pressing any subsequent key returns to editing mode.3 INSERT;The INSERT command inserts new text into the buffer at the mcurrent cursor position. o!Format: I text to be inserted ^Zm d6This command behaves differently in each of the modes:9 o In keypad mode, insert text by typing on the main ; keyboard; you do not need to begin the insert with e I or end it with ^Z.9 o In nokeypad mode, type I to begin inserting text.g= You can insert text from the keyboard until you enteru4 ^Z; you can enter one or more lines of text.9 o In hardcopy mode, type I to begin inserting text. 7 You can insert text from the keyboard until you/ enter either a ^Z or a carriage return.h3 KSBThe KS command modifies the cursor position after a PASTE command. Format: KS IAfter a PASTE command, the cursor is on the character to the right of the Gpasted text. If KS follows a PASTE, however, the cursor is on the last Epasted character if the current direction is advance and on the firste-pasted character if the direction is backup. cJSuch cursor positioning affects a subsequent string search. KS is used inFthe definition of the keypad SUBS function so that the character whichHfollows the pasted text in the current direction is included in the nextstring search. 3 MOVE7The MOVE command moves the cursor a specified number ofg entities. t#Format: [+|-] [count] [+|-] entityv EIf an explicit sign is used, the direction of the move is determined sEby that sign ( + for forward, - for backward); otherwise, the current.Fdirection mode (set by the ADV and BACK commands) is used to determinethe direction. i i'Ex: +3W Move the cursor 3 words forwarde a7 L Move the cursor 1 line in the current directionc n. -PAGE Move the cursor backward to a page mark3 PASTEOAThe PASTE command copies the contents of an alternate buffer into*the current buffer at the cursor position. Format: [count] PASTE [=buffer] o6If you omit the buffer n00j)|{-z zx*ame, the PASTE buffer is used.3 QUIT>The QUIT subcommand leaves the editor without saving any text Cbuffers. This will cause you to lose any editing you have done in Fthis session unless you used the WRITE command to save the text before quitting.r Format: QUIT 3 REFRESH )The REFRESH command refreshes the screen.O h Format: REF 3 REPLACEe@The REPLACE command has the same form as the DELETE command. InHnokeypad mode, replace will enter insert mode after the text is deleted. u:Format: [+|-] [repeat-count] R [+|-] [count] [+|-] entity3 SELECTCThe SELECT command is used to mark a portion of text which will be Eone end of a select range. A select range is created by marking one eFend of the desired text (either end will do), moving to the other end,<and performing an operation on the SR (select range) entity. t Format: SEL3 SHIFT DUse the SHIFT LEFT and SHIFT RIGHT commands to alter the left marginBwhen in change mode. The left margin is the position of the first=character in each line which will be displayed on the screen. ?Normally, the left margin is 0, which means all characters are hHdisplayed. If you use a SHR command, the left margin can be changed by Fan integral number of tab stops (8 characters). If SHL is used once, Gthe first 8 columns will not be displayed on the screen. This has the t2effect of shifting the screen window horizontally. 2Format: count SHL (Shift left by count tab stops) m, count SHR (Shift right by count tab stops) 3 SUBSTITUTE=The SUBSTITUTE command replaces occurrences of one string of ycharacters with another. +Format: [+|-] [count] S/string-1/string-2/u eEThe slashes represent any non-alphanumeric character used to delimit o@the two strings. The effect of the command is to search in the Gspecified direction from the cursor and find an occurrence of string-1.f:It is then deleted and string-2 in inserted in its place. 3 SUBSTITUTE NEXTnCThe SUBSTITUTE NEXT command performs a SUBSTITUTE command using theSGsame search and replacement strings as the previous SUBSTITUTE command.h cFormat: [+|-] [count] SNm3 TAB|BUse the TAB subcommand when the structured tab feature is enabled.@Insert the correct number of tabs and blanks to position to the Fcurrent tab level. When structured tabs have not been enabled or the Ecursor is not at the beginning of a line, this command inserts a tab n character. Format: TAB3 TADJFThe TADJ command adjusts the tab level for the selected range of text.HThe tab size and repeat-count set the tab level (see TC). The tab levelJis adjusted by the value of repeat-count; it is incremented for a positiveGrepeat-count and decremented for a negative repeat-count. The TADJ tabtAsetting is the product of the tab size and the indentation level.uDFormat: [+|-] [repeat-count] TADJ [+|-] [entity-count] [+|-] entity3 TCDThe TC subcommand is used to compute the tab level from the current Fcursor position. This command has meaning only if the structured tab 3feature has been enabled. See the SET TAB command.e ) Format: TCv3 TDEThe TD subcommand decreases the tab level counter. This command has eDmeaning only when the structured tab feature has been enabled. See the SET TAB command. u Format: TD 3 TIFThe TI subcommand increases the tab level counter. This commmand has Dmeaning only when the structured tab feature has been enabled. See the SET TAB command. u Format: TIr3 TOPoAThe TOP command is used to force the line on which the cursor is a&positioned to the top of the screen.  Format: TOP 3 UNDELETEAThe UNDELETE commands are used to restore the last entity deletedeby a delete command. t$Format: UNDC (undelete character) UNDW (undelete word) UNDL (undelete line)3 ^FThis command provides for the insertion of control characters in text.DEDT accepts a circumflex (^) followed by an alphabetic character andCinserts the corresponding control character in the text as a singlee character.Format: [count]^[A..Z] 1 00j1|{zzazOxssCOPYDThe COPY (abbreviation: CO) command copies text from one location toAanother within a buffer or between buffers. When text is copied,ythe source text remains intact.U <Format: COPY [range-1] TO [range-2] [/QUERY] [/DUPLICATE:n] lDThe lines specified by range-1 are copied in front of the first lineGspecified by range-2. Either range defaults to the current line. a rAIf the destination is not the current buffer, put the name of thes:receiving buffer immediately after TO (=buffer). Give theBfull name of the buffer. To copy text from an external file, see INCLUDE. n 2 /DUPLICATEFormat: /DUPLICATE:ne iEWhen you use the /DUPLICATE (abbreviation: /DUP) qualifier, the lines1-specified by range-1 are duplicated n times. 2 /QUERYFormat: /QUERYa cEWhen you use the /QUERY (abbreviation: /Q) qualifier, EDT prompts youd,with a '?' to verify each line to be copied. sResponses are:  Y Yes, copy this line N No, do not copy this line3 Q Quit, do not copy any of the rest of the lines ( A All, copy all the rest of the lines1 DEFINE<The DEFINE command (abbreviation DEF) defines either editing-keys for keypad mode or macros for line mode.i2 KEYhFThe DEFINE KEY (abbreviation DEF K) command defines customized editing?keypads or extends the keypad now available by using additionalicontrol keys.  d,Format: DEFINE KEY key-selector AS 'string' s+where key-selector is one of the following:e [GOLD] number [GOLD] CONTROL letter GOLD characteroKNumber refers to keypad keys and CONTROL letter names specific control keyshK(upper and lower case letters are considered equivalent). Character referso1to any keyboard key except 0-9, !, %, ', and ". YNThe string is a string of change mode subcommands which define the function ofLthe key. If you want the command to be executed when the key is struck, theLdefinition must end with a period; otherwise, EDT will buffer it until a keywith a period is used. O DYou can use a '?' character in key definitions to request input fromCthe user. The '?' character is then replaced by the characters readeBfrom the terminal before the command is executed. A prompt string-enclosed in single quotes may follow the '?'.i 3 EXAMPLESDTo define the key CTRL/A to move 3 lines, use the following command: y! DEFINE KEY CONTROL A AS '3L.'w ATo define the keypad GOLD function of the uparrow key to mean "goe,to top of file," use the following command:  s DEFINE KEY GOLD 12 AS 'BR.'h cDTo define the key CTRL/D to write your COBOL identification division-header for you, enter the following command: r L DEFINE KEY CONTROL D AS 'iIDENTIFICATION DIVISION.^Z^MiPROGRAM-ID. ?^Z.' qA(After pressing the key, you will have to give the program name.)  e;To define the CTRL/R key to prompt for the name of a BLISSR<routine which it will then find, use the following commmand: rA DEFINE KEY CONTROL R AS "BR ADV 'ROUTINE ?'Routine name: ''."3 VT52$ +-------+-------+-------+-------+This diagram defines | | | | |5the numbers of the key- | GOLD | 10 | 11 | 12 | pad keys on VT52 | | | | |6terminals for use in +-------+-------+-------+-------+the DEFINE KEY | | | | |$command. | 7 | 8 | 9 | 13 | | | | | |$ +-------+-------+-------+-------+ | | | | | | 4 | 5 | 6 | 14 |o | | | | |$ +-------+-------+-------+-------+ | | | | | | 1 | 2 | 3 | 15 |D | | | | |e$ +---------------+-------+-------+ | | | |+ | 0 | 16 | 21 | | | | |$ +---------------+-------+-------+3 VT100C+-------+-------+-------+-------+ +-------+-------+-------+-------+-| | | | | | | | | |I;| 12 | 13 | 15 | 14 | | GOLD | 10 | 11 | 17 ||| | | | | | | | | |+C+-------+-------+-------+-------+ +-------+-------+-------+-------+o | | | | |;This diagram defines the numbers | 7 | 8 | 9 | 18 ||&of the keypad keys on VT100 | | | | |Eterminals for use in the DEFINE KEY +-------+-------+---00j9|{-z zx*----+-------+1command. | | | | || | 4 | 5 | 6 | 19 |+ | | | | |& +-------+-------+-------+-------+ | | | | | | 1 | 2 | 3 | | | | | | | % +---------------+-------+ 21 |1 | | | |  | 0 | 16 | |- | | | |& +---------------+-------+-------+2 MACRO|DThe DEFINE MACRO (abbreviation DEF M) command is used to define linemode macro commands. Format: DEFINE MACRO name nEThe name is the name of the text buffer in which the macro is stored. -The macro itself is a series of EDT commands.| |@Invoke the macro by giving its name in response to the line modeprompt.|1 DELETECThe DELETE (abbreviation: D) command deletes the lines specified by the range.  Format: DELETE [range] [/QUERY] AIf you do not specify the range, the default is the current line.(2 /QUERYFormat: /QUERY  uAWhen the /QUERY (abbreviation: /Q) qualifier is used, the user is 6prompted with a '?' to verify each line to be deleted. tResponses are:  Y Yes, delete this line N No, do not delete this line5 Q Quit, do not delete any of the rest of the linese* A All, delete all the rest of the lines1 EXIT@The EXIT (abbreviation: EX) command terminates all action in theCeditor and saves a copy of the MAIN text buffer in the output file.f t9Format: EXIT [file-spec] [/SEQUENCE:[init:incr]] [/SAVE]n eAIf you omit the file specification, the output file name from thed(command line which invoked EDT is used. 2 /SAVE?When you use the SAVE qualifier, the journal file is saved. TheeBjournal file is called name.JOU where name is the output file nameCfrom the command line. For information about the journal facility,rsee HELP JOURNAL. 2 /SEQUENCEaFormat: /SEQUENCE[:init:incr];When you use the SEQUENCE option, the output file is in VFCm:(variable with fixed control) format, and line numbers arewritten in the control field.iBIf you set init and incr, the file is renumbered starting with the?number you choose for init and the lines are incremented by thelAnumber you choose for incr. Otherwise, the original line numbers -are written and new lines will be numbered 0.n1 FILLBThe FILL (abbreviation: FIL) command reformats a block of text so@that there are as many full words on a line as possible withoutexceeding the right margin.  aFormat: FILL [range]  mBThe lines in the range must be contiguous. If you omit the range,the select range is assumed. uCThe right margin is set by the SET WRAP command. If the margin hase9not been set, the default is the terminal width minus 1. e1 FINDFThe FIND (abbreviation: F) command places the cursor at the first linespecified by range. a nFormat: FIND [range]s bDThe located line is not typed. To find and type a line, use the TYPE command. t 1 INCLUDE BThe INCLUDE (abbreviation: INC) command copies external files intotext buffers. n u"Format: INCLUDE file-spec [range] tEThe specified file is copied to the location before the first line of.Ethe range. Note that range specifies the position to which the file iCwill be copied; it does not restrict the portion of the file which rwill be included.1 INSERT<The INSERT (abbreviation: I) command inserts new text into atext buffer.  .Format: INSERT [range] [;line to be inserted] FThe new text is inserted before the first line specified by range. IfEyou omit range, inserted text is placed just before the line at whichcthe cursor is located.  BIf you do not use the optional semicolon, the editor enters insertGmode. In insert mode, you can enter as many lines of text as you wish, tDterminating each line with a carriage return. You terminate insert mode by typing CTRL/Z. m d;If you choose the optional semicolon, the text on the line Bfollowing the semicolon is inserted and the editor does not enter insert mode. eCThe line following the last line inserted becomes the current line.f 1 JOURNALe7EDT saves all input from the terminal duri00jA|{zzazOxssng an editings0session in a file called the journal file. TheEjournal file is deleted when you exit the editor with an EXIT command,Eor a QUIT command (without the /SAVE option). When the editor is left +involuntarily, the journal file is saved.  FThe journal file can be used to redo all the operations of an editing Esession. The edited file is thereby recreated. Type the same commandoAline used previously with the addition of the /RECOVER qualifier. DUnless explicitly overridden by the JOURNAL qualifier on the commandBline, the journal file will have the same name as the output file,&except that the file type will be JOU.1 MOVEBThe MOVE (abbreviation: M) command moves text from one location to0another, deleting it from the original location. a-Format: MOVE [range-1] TO [range-2] [/QUERY]f CThe lines specified by range-1 are moved to a location immediately mCbefore the first line specified by range-2. The lines are deleted aLfrom the original location. If you omit either of the range specifications,<the current line is used. The first line of range-2 becomesBthe new current line. To move lines of text without deleting them3from the original location, see the COPY command. o2 /QUERYFormat: /QUERYf DWhen you use the QUERY (abbreviation: /Q) qualifier, EDT prompts you/is with a '?' to verify each line to be moved. d Responses are: e Y Yes, move this line.  N No, do not move this line.a4 Q Quit, do not move any of the rest of the lines.) A All, move all the rest of the lines.u1 PRINTeCThe PRINT (abbreviation: P) command creates a listing file with theTspecified file name. t t Format: PRINT file-spec [range] cEThe lines selected by range are written to a listing format file withuFpage headers. If the NUMBERS option is set (see SET NUMBERS), the EDT@line numbers will appear on the listing. If you omit range, theEentire current buffer is printed. The current line is not altered byd:this command. Use PRINT only to create a listing; if you.wish to create a file, use the WRITE command. 1 QUITDThe QUIT command exits the editor without saving the contents of the MAIN buffer.  IFormat: QUIT [/SAVE]c h9Use the QUIT command only if you have made no changes to iCthe file you are editing or if you have decided you do not wish to SDmake the changes you have made. All edits to the file will be lost when you QUIT from the editor.2 /SAVE CThe SAVE qualifier specifies that the journal file should be saved.o4Normally, the journal file is deleted when you QUIT. 1 REPLACEcDThe REPLACE (abbreviation: R) command deletes the specified range of.lines and then places EDT in the INSERT mode.  +The REPLACE command has the following form:u v" REPLACE [range] [;text to insert] eHWhen you do not specify a range, the current line is deleted and the new$text is inserted at that location.  eHIf you do not use the optional semicolon, the editor enters insert mode.@In insert mode you can enter as many lines of text as you wish, Dterminating each line with a carriage return. You terminate insert mode by typing CTRL/Z.  cLIf you use the optional semicolon, EDT inserts the text in the command line Bfollowing the semicolon and the editor does not enter insert mode. rCThe line following the last line inserted becomes the current line.a 1 RESEQUENCECThe RESEQUENCE (abbreviation: RES) command assigns new line numberslto a range of lines.  r1Format: RESEQUENCE [range] [/SEQUENCE:init:incr]y nHThe specified range of lines must be contiguous. When you do not specifyBa range, all lines in the current buffer are resequenced. If the@new numbers assigned would cause duplicate or nonsequential line@numbers, EDT will either disallow the command or renumber linesbeyond the specified range. 2 /SEQUENCE :The SEQUENCE (abbreviation: /SEQ) qualifier specifies the Bsequence of numbers to be assigned. The init parameter specifies Dthe initial number, and incr specifies the number by which the linesAare increm00jI|{-z zx*ented. If you do not use the SEQUENCE qualifier, init iand incr both default to 1. 1 RANGEbERange specifications are used on most line editing commands to selecta;the exact lines of text on which the command will operate. h o:There are several general classes of range specifications: E6 1. Single line ranges specify a single line of text. < 2. Multiple line ranges specify blocks of text, such as an= entire buffer or all lines from the current line to the y end of the buffer.r n? 3. Compound ranges combine single line ranges with operators b' to specify multiple lines of text.f= 4. Noncontiguous ranges specify multiple lines that are notx) necessarily adjacent to one another. 2 ALL.<The ALL range further refines a general range specification.Format: [range] ALL 'string' EWhile range can be a single, multiple, or compound range, the commandcEbeing performed will only apply to those lines of text containing thetFgiven string. This string can be enclosed in single or double quotes.;Ex: TYPE ALL 'EDT' When ALL is used, the default for rangee- is WHOLE. This command will type all thep/ lines in the current buffer containing EDT.iC SUBS/A/B/50:100 ALL '1' Substitute B for A in lines from 50 to 100e which include the string 1.m2 ANDa.The AND range selects a group of single lines. m1Format: range-1 AND range-2 AND range3 ... orf range-1 , range-2 , range3 nDEach of the ranges must be a single line range. Each of the single lines is operated on.o .>Ex: TYPE 4 AND 7 Lines 4 and 7 are displayed on the terminal ; TYPE BEGIN,END-1 The first and last lines are displayed one the terminal2 BEGINE?The BEGIN range (abbreviation: B) is a single line range which 'specifies the first line in the buffer.12 BEFOREDThe BEFORE range (abbreviation: BEF) is a multiple line range which Aspecifies all the lines in the buffer preceding the current line.n2 BUFFERGThe BUFFER (abbreviation: BU) specification may precede any other rangeeFspecification and indicates that the range is to be applied to a named buffer.  P E#Format: BUFFER name [range] ore =name [range]  hGThe two forms are equivalent. Name is the name of the buffer in which rCthe text resides. If you leave out the range, the entire buffer is selected.e2 DOTvGThe dot (.) is a single line range which refers to the current line of tGtext. For many commands, dot is the default range. See the help text n/for a command if you are unsure of the default. c#Ex: TYPE . Type the current line.e2 ENDbFThe END (abbreviation: E) range specifies an imaginary line following Dthe last line in the buffer. END does NOT specify the last line in Gthe buffer. The last line can be referred to by E-1 (that is, the line ;preceding END). When the END line is typed, it looks like:  a[EOB] 2 FORn7The FOR range is a multiple line range which selects a ;specified number of lines starting at a specified location.  oFormat: [range] FOR n ore [range] # n BThe two forms are equivalent. Range is a single line range which Gspecifies the starting position, and n is an integer number. If range .6is omitted, the current line is the starting position. l9Ex: TYPE . FOR 5 Type 5 lines, starting with the currentc line W, TYPE #5 Equivalent to the previous example E8 TYPE BEGIN FOR 10 Type the first 10 lines in the buffer2 LASTHThe LAST (abbreviation: L) range is a single line range which refers to Athe line in a previous buffer which was the current line when youqswitched to the current buffer. 2 MINUSc9The minus sign in ranges selects a single line which is am4specified number of lines before a specified line.  rFormat: [range] - [n] EERange is a single line range, and n is an integer. The line selected Eis the line which is n lines before the line specified by range. If Cyou omit range, the current line is used; if you omit n, 1 is used.e @Ex: TYPE 15 - 3 Type the third line before the line 00jQ|{zzazOxssnumbered 15. h. TYPE END -1 Type the last line in the buffer. ! TYPE - Type the previous line.u2 NUMBEREA line number is a single line range which refers to the line having fCthe specified number. The line number may contain a decimal point.n !Ex: TYPE 10 Type line number 10.h i% INSERT 65.3 Insert before line 65.3.n 2 ORIGINALFormat: ORIGINAL na .BThe ORIGINAL (abbreviation: O) range is a single line range which Brefers to the line which had the original number n. The original number is one of the following:  ? 1. If the line came from the primary input file and that file; had sequence numbers, then the original number is the o( sequence number read from the file. e= 2. If the line came from an unsequenced input file, then itp= is the number originally assigned by EDT, which does not& change when a resequence is done. R@ 3. If the line did not come from the primary input file, then ! its original number is zero.a2 PLUSBThe plus sign is used in ranges to select a single line which is a3specified number of lines after a specified line.  Format: [range] + [n] eERange is a single line range, and n is an integer. The line selected.His the line which is n lines after the line specified by range. If you @omit range, the current line is used. If you omit n, 1 is used. g<Ex: T 15 + 3 Type the third line after the line numbered 15. r/ T BEGIN +1 Type the second line in the buffer.a u/ T + Type the line following the current line.r e; T 'string'+2 Type the second line following the next line n containing 'string'..2 RESTGThe REST (abbreviation: R) range is a multiple line range which refers e:to the current line and all lines following in the buffer.2 SELECTCThe SELECT range is a multiple line range which contains all lines IFbetween the current line and the SELECT mark. The SELECT mark is set "by the change mode SEL subcommand.2 STRINGEA quoted string specifies a single line which contains the specifiednEstring. The string can be enclosed in either single or double quoteseE(' or "). When you use a string as a range, EDT will search forward,iJstarting with the current line, until it locates a line with the specifiedAstring. If a minus sign (-) precedes the string, the search willn be backward. t:Ex: T 'abc' Locate and type the first line forward which  contains the string 'abc' t3 T -"abc" Same, except the search will be backward.r2 THRUDThe THRU range is a compound range which specifies all lines betweentwo single line ranges.e i!Format: range-1 THRU range-2 orW range-1 : range-2a FBoth forms are equivalent. Starting with range-1, EDT selects all the8lines up to and including the line specified by range-2. n3Ex: TYP 15:30 Type all lines with numbers between r 15 and 30. 5 TYP 'glorp':END Type all lines from the first line a* forward containing 'glorp' to the end.2 WHOLEsCThe WHOLE (abbreviation: W) range refers to the entire text buffer.w1 SETeBThe SET (abbreviation: SE) command sets options that control otherGeditor operations. Once set, these options are in effect throughout then?rest of the edit session or until changed by the SET command. n2 CASE-Format: SET CASE { UPPER | LOWER | NONE }3 TEUse the SET CASE (abbreviation: SE CA) command on terminals which areEEcapable of displaying upper case characters only. SET CASE instructs'IEDT to flag with a preceding apostrophe either the upper case characters,iCthe lower case characters, or neither. The default for SET CASE isi,NONE, which means no characters are flagged. e+The keywords can be abbreviated as follows:n e CASE CAd UPPER U LOWER L NONE Ny2 CURSOR Format: SET CURSOR top:bottom  AGThe SET CURSOR (abbreviation: SE CU) command, used with screen editing,cBsets the limits within which the cursor is allowed to move withoutscrolling the screen.  tETop and bottom are the line numbers at the top of the screen and thehHbottom of the screen. The line 00jY|{-z zx*numbers must be in the range of 0 to 21,?with 0 specifying the top of the screen and 21 the bottom. Thew@default setting is 7:14, allowing the cursor to move within themiddle third of the screen. 2 ENTITY4Format: SET ENTITY entity-type 'delimiter string' C$Entity-type is one of the following: e WORD (abbreviation: W) SENTENCE (abbreviation: S)e PAGE (abbreviation: PAG) PARAGRAPH (abbreviation: PAR) n6The SET ENTITY (abbreviation: SE EN) command sets the ?delimiters for the user-defined change mode entities. For the iDWORD and SENTENCE entities, the delimiter string is a set of single Acharacter delimiters. For PAGE and PARAGRAPH, the delimiter is at<character string which delimits the entity. See HELP CHANGE*ENTITIES for explanations of the entities.2 KEYPADFormat: SET [NO]KEYPAD( rGThe SET KEYPAD (abbreviation: SE K) option controls whether or not the PLediting keypad is to be used when you are in CHANGE mode. KEYPAD is set by Fdefault for VT52 and VT100 terminals, which means the alternate keypadEis used to enter change mode commands. If you prefer the change model<compatible with EDT version 1, use the SET NOKEYPAD command.2 LINESBThe SET LINES (abbreviation: SE L) command controls the number of Dscreen lines used in either of the screen versions of change mode. :Use this option to reduce the time it takes to refresh the,screen image when editing at low baud rates. dFormat: SET LINES n oCwhere n is the number of lines to use. n must be between 1 and 22.e!By default, n is set to 22 lines.o2 MODE;The SET MODE (abbreviation: SE M) command determines which bBmode of editing should be entered after all initial processing is Ccomplete. This command is useful only in the startup command file.n n#Format: SET MODE { LINE | CHANGE }o o@By default, EDT enters line mode when the startup processing is Ccomplete. Use SET MODE CHANGE in your startup file to cause EDT to enter change mode immediately. 2 NUMBERSlFormat: SET [NO]NUMBERS eDThe SET NUMBERS (abbreviation: SE NU) command controls the typing of<line numbers on the terminal. Numbers is set on by default.GIf you want to suppress numbers, use SET NONUMBERS (abbreviation: NON).o2 QUIETuGThe SET QUIET (abbreviation: SE Q) command controls whether or not the C5bell will sound when an error is made in change mode.  rFormat: SET [NO]QUIET eAThe quiet option is off (meaning the bell will sound) by default. 2 SEARCH6The SET SEARCH (abbreviation: SE SE) command controls ,several options related to string searching. o'Format: SET SEARCH { GENERAL | EXACT }  { [UN]BOUNDED }  { BEGIN | END }f u@The GENERAL (abbreviation: G) / EXACT (abbreviation: EX) option Econtrols whether or not the case of alphabetic characters must be the Esame as those in the search string to match. The default is GENERAL,r9which means that case is ignored in string searches. i tGThe BOUNDED (abbreviation: BO) option defines whether or not the search Fis bounded by a page delimiter. By default, the search is unbounded, Fwhich means that the entire buffer will be searched. This option has effect only in change mode.E FThe BEGIN (abbreviation: B) / END (abbreviation: E) option determines Awhether the cursor is left at the beginning or end of the search @string when it is found. By default, the cursor is left at the 8beginning. This option has effect only in change mode. 2 SCREEN:The SET SCREEN (abbreviation: SE SC) command controls the )number of characters displayed on a line.l tFormat: SET SCREEN w  hFwhere w is the width of the screen line. By default, the screen widthis set to 80 characters.2 TABh6The SET TAB (abbreviation: SE TA) command enables the 5structured tab feature and sets the logical tab size.n rFormat: SET [NO]TAB n g7where n is the number of columns in a logical tab stop.  e8With the structured tab feature, EDT keeps a counter of Dthe tab level, which is set to 1 when the SET TAB command is issued.DWhen you use t00ja|{zzazOxsshe tab key in change mode at the beginning of a line, HEDT will insert enough tabs and spaces to move the cursor to the column Adefined by the level n times the tab size. There are change modeABsubcommands to alter the tab level. The structured tab feature isdisabled by default.  TCThe tab size set by the tab command is also used by the TABS ADJUSTpcommand. 2 TERMINAL-Format: SET TERMINAL { HCPY | VT52 | VT100 }  AThe SET TERMINAL (abbreviation: SE TE) command identifies to EDT y@the type of terminal you are using. Normally, EDT will set the Dterminal type by asking the operating system what type it is. If itDdoes not appear to have set the type correctly, you can use the SHOWDTERMINAL command to see what EDT thinks your terminal is and the SETETERMINAL command to correct it if necessary. If your terminal is nots7a VT52 or a VT100, it should be set to HCPY (hardcopy).T 2 TRUNCATE;The SET TRUNCATE (abbreviatin: SE TR) command controls the E&handling of long lines in change mode. oFormat: SET [NO]TRUNCATEN aABy default, truncate mode is set, which means long lines will be mGtruncated on the display (the actual text is not altered). If you turn :off truncate mode by using SET NOTRUNCATE, long lines willBbe wrapped to as many screen lines as are necessary to display the entire line. u2 VERIFY8The SET VERIFY (abbreviation: SE V) command controls theFlisting of commands which are executed from the startup file or from amacro. Format: SET [NO]VERIFY  nFVerify is off by default, which means the lines are not typed. If you9turn it on, each command line is typed as it is executed.d2 WRAPFormat: SET [NO]WRAP ntCThe SET WRAP (abbreviation: SE W) command enables word wrapping andiAspecifies the right margin. Word wrapping is a mode in which EDTsAwill automatically insert carriage returns when you are typing inEBnew text and the line exceeds a right margin. Word wrapping is inAeffect in change mode only and only if you have used the SET WRAP command.  fBThe SET WRAP command is also used to set the right margin for the change mode FILL subcommmand.aESET NOWRAP (abbreviation: SE NOW) disables the word wrapping feature.r1 SHOWFormat: SHOW parametero wGThe SHOW (abbreviation: SH BU) command displays selected information oncDthe current state of the editor. Parameter is one of the additionaltopics listed below.2 BUFFERFormat: SHOW BUFFER JThe SHOW BUFFER (abbreviation: SH BU) command lists the buffers being usedFduring the edit session, including the number of lines of text in eachBbuffer. The current buffer is marked by an equal sign (=) beforeCthe name. If an asterisk follows the number of lines, it indicatesmAthat an input file is connected to the buffer and that there aresAmore lines to be read from the file. Thus, the line count is nota accurate. e2 CASEFormat: SHOW CASEBThe SHOW CASE (abbreviation: SH CA) command shows the current case setting (upper, lower, or none).2 CURSORFormat: SHOW CURSOR i7The SHOW CURSOR (abbreviation: SH CU) command shows the=current setting of the cursor region. EDT will respond with:o t:ba Bwhere t and b are integer numbers indicating the top and bottom ofBthe cursor region. See HELP SET CURSOR for an explanation of the cursor region.2 ENTITY Format: SHOW ENTITY entity-type u+where entity type is one of the following: H C WORD (abbreviation: W) SENTENCE (abbreviation: S)e PAGE (abbreviation: PAG) PARAGRAPH (abbreviation: PAR) SBThe SHOW ENTITY (abbreviation: SH EN) command displays the current*delimiter string for the specified entity.2 KEYnFormat: SHOW KEY key-selector +where key-selector is one of the following:b o [GOLD] number [GOLD] CONTROL letter GOLD charactera n7The SHOW KEY (abbreviation: SH K) command displays the eDcurrent definition of a keypad or control key. See HELP DEFINE KEY.2 SCREENFormat: SHOW SCREENGThe SHOW SCREEN (abbreviation: SH SC) command shows the current settingA.for the ma00ji|{-z zx*ximum length of a line EDT displays.2 SEARCHFormat: SHOW SEARCHFThe SHOW SEARCH (abbreviation: SH SE) command shows the current searchEparameters. See HELP SET SEARCH for a description of search options.b 2 TERMINALFormat: SHOW TERMINALCThe SHOW TERMINAL (abbreviation: SH TE) command shows your terminale type (VT52, VT100, or Hardcopy). 2 VERSIONeFormat: SHOW VERSION. <The SHOW VERSION (abbreviation: SH VE) command displays the version number of the editor. 1 SUBSTITUTEEThe SUBSTITUTE (abbreviation: S) command replaces occurrences of one E)string of characters with another string.E o;Format: SUBSTITUTE/string-1/string-2/ [range] [/BRIEF[:n]]R [/QUERY] [/NOTYPE] e?Any nonalphanumeric character can be used as string delimiters.R ADAll occurrences of string-1 within the specified range are replaced Gwith string-2. If you do not specify range, a single occurrence in theN@current line is substituted. The line in which the substitution*occurred is typed after each substitution. 2 /BRIEF[:n]DWhen you select the BRIEF (abbreviation: /BR) option, only the firstCn characters of the line are displayed. If you omit n, the defaultIis 10. 2 /NOTYPE]@When you specify /NOTYPE (abbreviation: /NOT) the lines in which'substitutions occurred are not typed. r2 NEXT?The SUBSTITUTE NEXT (abbreviation: N) command replaces the next &occurrence of string-1 with string-2.  h3The SUBSTITUTE NEXT command has the following form:h u( [SUBSTITUTE] NEXT [/string-1/string-2/] tBThe search for string-1 is made forward from the current location.DWhen a substitution is made, the line where the substitution occurs becomes the current line.s .?When the optional strings are omitted, the strings used in the i5last SUBSTITUTE or SUBSTITUTE NEXT command are used. 2 /QUERYFormat: /QUERY  bDWhen you use the QUERY (abbreviation: /Q) qualifier, EDT prompts you'with a '?' to verify each substitution.n aResponses are: m Y Yes, do the substitution.$ N No, do not do the substitution.! Q Quit, terminate the command.r9 A All, do the rest of the substitutions without query. 1 TABS:The TAB ADJUST (abbreviation: TA A) command shifts each of9a range of lines a specified number of logical tab stops.t B!Format: TAB ADJUST [-] n [range]a uFwhere n is the number of tab stops to shift. You must use the SET TABAcommand to set the logical tab size in order for this command tosHwork. If you omit range, the select range is assumed. If a minus sign Aprecedes the count n, the text shifts to the left. Otherwise, itshifts to the right. f1 TYPEBThe TYPE (abbreviation: T) command displays the specified range oflines on the terminal.  a*Format: TYPE [range] [/BRIEF[:n]] [/STAY] s?The first line in the specified range becomes the current line.e mFIf the range specification starts with a non-alphabetic character, the(keyword TYPE may be omitted completely. 2 /BRIEFFormat: /BRIEF[:n]e h>When you select the BRIEF (abbreviation: /BR) option, only theBfirst n characters of the line are displayed. If you omit n, thedefault is 10.2 /STAYbFormat: /STAY a?When you select the STAY (abbreviation: /ST) option, the cursoraAposition is not changed by the TYPE command. This enables you to Clook at text elsewhere in the buffer (or in another buffer) withoutilosing your position.n1 WRITEeDThe WRITE (abbreviation: WR) command creates a file from a specifiedrange of lines.[ e8Format: WRITE file-spec [range] [/SEQUENCE[:init:incr]] nFWhen you specify a range, the text contained in that range becomes theHfile. When you do not specify a range, the contents of the current textDbuffer becomes the new file. The cursor position is not affected byDthe WRITE command. If the file-spec and range are omitted, then the-entire buffer is written to the output file. y 2 /SEQUENCE Format: /SEQUENCE[:init:incr] :;When you use the SEQUENCE option, the output file is in VFC[B(variable with fixed control) format, and line numbers are00jq|k zkt|lu|mx|Oxss writtenin the control field.  hBIf you set init and incr, the file is renumbered starting with theBnumber you choose for initial and the lines are incremented by theAnumber you choose for incr. Otherwise, the original line numbersn.are written and new lines will be numbered 0. the-entire buffer is written to the output file. y 2 /SEQUENCE Format: /SEQUENCE[:init:incr] :;When you use the SEQUENCE option, the output file is in VFC[B(variable with fixed control) format, and line numbers are$DEF KEY FUNCTION 1 AS "''." ! Find>DEF KEY FUNCTION 20 AS "EXT EXIT." ! Main Screen 7DEF KEY FUNCTION 21 AS "EXIT." ! Exit ADEF KEY FUNCTION 26 AS "EXT ?'Command: '." ! Addtnl Options ;DEF KEY GOLD FUNCTION 1 AS "?'Search for: '." ! Gold FindBDEF KEY GOLD FUNCTION 2 AS "EXT INC ?'File: '." ! PF1 Insert Here KDEF KEY GOLD FUNCTION 3 AS "EXT WRITE ?'File: ' SELECT." ! PF1 Remove Here ADEF KEY GOLD FUNCTION 5 AS "(-PAGETOP)." ! PF1 Prev ScreenADEF KEY GOLD FUNCTION 6 AS "(+PAGETOP)." ! PF1 Next Screen SET HELP LB:[1,2]EDTHELP.HLPSET COMMAND EDTINIY FUNCTION 21 AS "EXIT." ! Exit ADEF KEY FUNCTION 26 AS "EXT ?'Command: '." ! Addtnl Options ;DEF KEY GOLD FUNCTION 1 AS "?'Search for: '." ! Gold FindBDEF KEY GOLD FUNCTION 2 AS "EXT INC ?'File: '." ! PF1 Insert Here KDEF KEY GOLD FUNCTION 3 AS "EXT WRITE ?'File: ' SELECT." ! PF1 Remove Here ADEF KEY GOLD FUNCTION 5 AS "(-PAGETOP)." ! PF1 Prev ScreenADEF KE" EDT Version 2 VT100 Keypad' +--------+--------+--------+--------+n | | | Fndnxt | Del L | | Gold | Help | | | | | | Find | Und L |' +--------+--------+--------+--------+ ' | Page | Sect | Append | Del W | | | | | |a' | Command| Fill | Replace| Und W |l' +--------+--------+--------+--------+' | Advance| Backup | Cut | Del C |x | | | | |' | Bottom | Top | Paste | Und C |a' +--------+--------+--------+--------+& | Word | Eol | Char | | | | | | Enter |$ |Chngcase| Del Eol| Specins| |$ +--------+--------+--------+ |% | Line | Select | Subs |- | | | |-$ | Open Line | Reset | |' +-----------------+--------+--------+ # Backspace Go to beginning of line Delete Delete character" Linefeed Delete to start of word CTRL/A Compute tab level| CTRL/D Decrease tab level CTRL/E Increase tab level CTRL/K Define key- CTRL/T Adjust tabs " CTRL/U Delete to start of line CTRL/W Refresh screenc CTRL/Z Return to line mode+--------+--------+--------+ |% | Line | Select | Subs |- | | | |-$ | Open Line | Reset | |' +-----------------+--------+--------+ # Backspace Go to beginning of line Delete Delete character" Linefeed Delete to start of word CTRL/A Compute tab level| CTRL/D Decrease tab level CTRL/E Increase tab level CTRL/K Define key- CTRL/T! EDT Version 2 VT52 Keypad' +--------+--------+--------+--------+U! | | | Del L | Up |# | Gold | Help | | |! | | | Und L | Replace|' +--------+--------+--------+--------+' | Page | Fndnxt | Del W | Down |R! | | | | |' | Command| Find | Und W | Sect |' +--------+--------+--------+--------+ ' | Advance| Backup | Del C | Right | | | | | |' | Bottom | Top | Und C | Specins|' +--------+--------+--------+--------+ ' | Word | Eol | Cut | Left |  | | | | |' |Chngcase| Del Eol| Paste | Append |' +--------+--------+--------+--------+-' | Line | Select | Enter |  | | | |l& | Open Line | Reset | Subs |' +-----------------+--------+--------+|# Backspace Go to beginning of line- Delete Delete character" Linefeed Delete to start of word CTRL/A Compute tab level  CTRL/D Decrease tab level CTRL/E00mz|n{|-z zx* Increase tab level CTRL/F Fill text CTRL/K Define key CTRL/T Adjust tabs ! CTRL/U Delete to start of line| CTRL/W Refresh screen CTRL/Z Return to line mode--+--------+-' | Line | Select | Enter |  | | | |l& | Open Line | Reset | Subs |' +-----------------+--------+--------+|# Backspace Go to beginning of line- Delete Delete character" Linefeed Delete to start of word CTRL/A Compute tab level  CTRL/D Decrease tab level CTRL/E1 EDX& You can get help on a topic by typing$ HELP topic subtopic subsubtopic.... A topic can have one of the following forms:? 1. An alphanumeric string (e.g. a command name, option, etc.)* 2. The match-all or wild card symbol (*) Examples: HELP SUBSTITUTE NEXT HELP CHANGE SUBCOMMAND HELP CHC If a topic is abbreviated, the text for all topics which match the abbreviation is displayed. 2 KEYPAD< Enter the keypad editor through the CHANGE command with theH KEYPAD option set (see SET command). See HELP CHANGE KEYPAD for more information.i2 VT100o [ )0lqqqqqqqqwqqqqqqqqwqqqqqqqqwqqqqqqqqk lqqqqqqqqwqqqqqqqqwqqqqqqqqwqqqqqqqqkn^ x ^ x Down x x x x x x Fndnxt x Del L x\ x x x x x x x  Gold x Help x x xn x x x x x Left x Right x x x x Find x Und L xU x Up x v x x x tqqqqqqqqnqqqqqqqqnqqqqqqqqnqqqqqqqquY mqqqqqqqqvqqqqqqqqvqqqqqqqqvqqqqqqqqj x Page x Sect x Append x Del W xqQ x x x x x u x Commandx Fill x Replacex Und W x S Delete Rubout character tqqqqqqqqnqqqqqqqqnqqqqqqqqnqqqqqqqqu [ Linefeed Rubout word x Advancex Backup x Cut x Del C xqS Back space Backup to beginning of line x x x x xw CTRL/A Compute tab level x Bottom x Top x Paste x Und C x S CTRL/D Decrease tab level tqqqqqqqqnqqqqqqqqnqqqqqqqqnqqqqqqqqumY CTRL/E Increase tab level x Word x  Eol x Char x xqU CTRL/K Define key x x x x Enter xnn CTRL/T Adjust tabs xChngcasex Del Eolx Specinsx xS CTRL/W Refresh screen tqqqqqqqqvqqqqqqqqnqqqqqqqqu xW CTRL/Z Return to line mode x Line  x Select x x Z x x x Subs xl Type a key for help on that key. x Open line x Reset x xZ To exit, type a space. mqqqqqqqqqqqqqqqqqvqqqqqqqqvqqqqqqqqj 3 00F The LINE key advances or backs up the cursor to the nearest beginning% of a line (see ADVANCE and BACKUP).  A The OPEN LINE key inserts a carriage return after the cursor andlB leaves the cursor position unchanged. Pressing the OPEN LINE keyD when the cursor is at the beginning of the line creates a new blank line.3 01A The WORD key moves the cursor forward or backward by a word (see ADVANCE and BACKUP).  C The CHGC key changes the case of a range of characters as follows:3 9 1. If there is a select range active, the case of eache: alphabetic character in the select range is changed. = 2. If 1 does not apply and the cursor is positioned on then9 current search string, the case of each alphabetic E0 character in the search string is changed. = 3. If 1 and 2 do not apply, then the case of one characterh; is changed, and the cursor moves one character in theC current dire00n| zkt|lu|mx|Oxssction.3 02G The EOL key moves the cursor forward or backward to the nearest end of  line.  E The DELETE EOL key deletes all characters to the right of the cursoreD in the current line, including the character on which the cursor is positioned. 3 03D The CHAR key advances or backs up the cursor by one character (see ADVANCE and BACKUP).  B The SPECINS key inserts any ASCII character. Press the GOLD key,B enter the decimal representation of the character, press the GOLD key again, and press SPECINS. E3 04D The ADVANCE key sets the current direction to advance for the CHAR,B WORD, LINE, EOL, PAGE, SECTION, SUBSTITUTE, SUBSTITUTE NEXT, FINDB and FIND NEXT keys. Advance means the movement will occur in theI direction toward the end of the file, that is, to the right and down. r F The BOTTOM key positions the cursor at the bottom of the text buffer.3 05G The BACKUP key sets the cursor direction to backup for the CHAR, WORD,oE LINE, EOL, PAGE, SECTION, SUBSTITUTE, SUBSTITUTE NEXT, FIND and FIND F NEXT keys. Backup means the movement will occur in the direction of9 the beginning of the file, that is, to the left and up. E @ The TOP key positions the cursor at the top of the text buffer.3 06F The CUT key deletes the select range, storing it in the paste buffer.D The select range is all the text between the selected position (seeE SELECT) and the current cursor position. If you have not selected aoG range and the cursor is positioned on the current search string, thatTD string is cut. The previous contents of the paste buffer is lost.  C The PASTE key inserts the contents of the paste buffer directly inu front of the cursor. 3 07G The PAGE key moves the cursor to the top of a page. A page is definedtG by a delimiter string, which can be set by the SET ENTITY command. Thel< default page delimiter is the form feed character (CTRL/L). B The COMMAND key allows the you to input a line mode command to beB executed. The command is terminated by pressing the ENTER key on the keypad.3 08? The SECTION key moves the cursor 16 lines forward or backward,sB depending on the current direction mode (see ADVANCE and BACKUP). D The FILL key performs a word fill on the select range. A word fillE reformats a block of text so that as many full words as possible aremC placed on each line without exceeding the right margin. The rightLE margin may be set by the SET WRAP command or, if it was not set, the > default is the terminal width - 1. For purposes of the FILL3 command, only spaces are used as word delimiters. e3 09D The APPEND key deletes the selected range and adds it to the end ofA the paste buffer. The selected range is all the text between theiG selected position (see SELECT) and the current cursor position. If noaA select has been done and the cursor is positioned on the currentc+ search string, that string is appended.  B The REPLACE key deletes the select range and replaces it with the! contents of the PASTE buffer. u3 107 Use the HELP key to obtain help on the editing keypad.m3 11A The FIND NEXT key searches for the next occurrence of the search D string entered by the FIND key. The direction of the search is the- current direction mode (ADVANCE or BACKUP). h E The FIND key searches for an occurrence of a string. Press the FIND F key and then enter the string from the main keyboard. End the stringE by pressing either the ADVANCE or BACKUP key to set the direction ofe the search. t3 12> The ^ (up arrow) key moves the cursor to the character above.3 13@ The v (down arrow) key moves the cursor to the character below.3 15D The < (left arrow) key moves the cursor to the preceding character.3 14@ The > (right arrow) key moves the cursor to the next character.3 16E The SELECT key marks one end of a select range. A select range is a B block of text on which various operations (such as CUT, APPEND orA FILL) can be performed. You create a select range by moving thesB cursor to either the beginnin00n|{|-z zx*g or the end of the text you wish toC select, pressing the SELECT key, and then moving the cursor to therF opposite end of the text. You can then perform the desired operation on the range. < The RESET key cancels the effect of the GOLD key if it was > pressed by mistake, cancels a select range, or terminates any( other partially entered command string.3 17E The DEL L key deletes text from the cursor position up to the end of D the current line, including the line terminator. If the cursor is C positioned at the beginning of a line, the entire line is deleted. 6 The deleted text is saved in the delete line buffer.  F The UND L key inserts the contents of the delete line buffer ahead of the cursor. 3 18C The DEL W key deletes text from the cursor to the beginning of thel: next word, storing the text in the delete word buffer.  F The UND W key inserts the contents of the delete word buffer ahead of the cursor. e3 19G The DEL C key deletes the character on which the cursor is positioned t/ and saves it in the delete character buffer. t B The UND C key inserts the contents of the delete character buffer ahead of the cursor. e3 20F The GOLD key lets you use the alternate function of the editing keys.; Press the GOLD key first and then the key you wish to use.o B You can also use the GOLD key to enter repeat counts. Press GOLDC and then the main keyboard numeric keys, followed by the key to be D repeated. The DELETE key and CTRL/U may be used to edit the repeat3 count, and thus cannot be repeated in this manner.u3 210 The ENTER key terminates the input of commands. G The SUBS key deletes the search string, replaces it with the contents yG of the paste buffer, and finds the next occurrence of the string. Fori@ multiple substitutions, use the following sequence of commands:  1. Press SELECT.c 2. Type the new text. 3. Press CUT. 4. Press FIND.o) 5. Enter the text you wish to replace.E I Each time you press SUBSTITUTE, EDT makes one substitution and finds therF next occurrence of the search string. You can use a repeat count for multiple substitutions.3 45H The tab compute key is used when structured tabs are enabled to computeH the indentation level from the cursor position. If the cursor position8 is not a multiple of the the tab size, an error occurs.3 48J The tab decrease key is used when structured tabs are enabled to decrease the indentation level counter.p3 49J The tab increase key is used when structured tabs are enabled to increase the indentation level counter.r3 52K The beginning of line key moves the cursor to the beginning of the currentbH line. If the cursor is already on the beginning of a line, it moves to the previous line.h3 54I The delete to beginning of word key is used to delete all character fromeH the cursor position to the beginning of the word containing the cursor.G If the cursor is on the first character of a word the previous word ist deleted. 3 55H The DEFINE KEY key is used to define a new function for an editing key.C The user is prompted first to press the key to be defined, then tobG enter the definition. The key can be defined either in terms of othernJ editing keys or by use of change mode subcommands. If you use an editing9 key, its definition appears at the bottom of the screen.c3 64F The tab adjust key is used when structured tabs are enabled to adjust@ the tab level of the select range. The key is used as follows:; 1. Create a select range of the text you wish to adjust.u ? 2. Enter a repeat count by using the GOLD key. A minus signk> should preceed the count if you wish to decrease the tabA level. If you do not use a repeat count, it defaults to 1.a  3. Use the tab adjust key.n G The effect of the key is to increase or decrease the indentation levelTI of the select range by the number of tabs indicated by the repeat count.t3 65E The delete to beginning of line key is used to delete all characterslD in the cu00n| zkt|lu|mx|Oxssrrent line to the left of the cursor. If the cursor is onD the first character of a line, the entire previous line is deleted.3 70/ The exit key returns you to line mode editing.y2 VT52N DEL Delete character +--------+--------+--------+--------+N | | | DEL L | UP |N LF Delete to beginning of word | GOLD | HELP | | |N | | | UND L |REPLACE |N BACK SP Move to beginning of line +--------+--------+--------+--------+N | PAGE | FNDNXT | DEL W | DOWN |N CTRL/A Compute tab level | | | | |N |COMMAND | FIND | UND W | SECT |N CTRL/D Decrease tab level +--------+--------+--------+--------+N |ADVANCE | BACKUP | DEL C | RIGHT |N CTRL/E Increase tab level | | | | |N | BOTTOM | TOP | UND C |SPECINS |N CTRL/F Fill text +--------+--------+--------+--------+N | WORD | EOL | CUT | LEFT |N CTRL/K Define key | | | | |N |CHNGCASE|DEL EOL | PASTE | APPEND |N CTRL/T Adjust tabs +--------+--------+--------+--------+N | LINE | SELECT | ENTER |N CTRL/Z Return to line mode | | | |N | OPEN LINE | RESET | SUBS |N *** For help on a key, press the key +-----------------+--------+--------+ *** To exit, type a space. 3 00F The LINE key advances or backs up the cursor to the nearest beginning% of a line (see ADVANCE and BACKUP).  A The OPEN LINE key inserts a carriage return after the cursor and A leaves the position unchanged. Pressing the OPEN LINE key when r? the cursor is at the beginning of the line creates a new blank line.3 01A The WORD key moves the cursor forward or backward by a word (see* ADVANCE and BACKUP).  C The CHGC key changes the case of a range of characters as follows:a 9 1. If there is a select range active, the case of eacho: alphabetic character in the select range is changed. 9 2. If 1 does not apply and the cursor is positioned oncD the current search string, the case of each alphabetic 0 character in the search string is changed. = 3. If 1 and 2 do not apply, then the case of one characters; is changed, and the cursor moves one character in the  current direction.3 02G The EOL key moves the cursor forward or backward to the nearest end oft line.  E The DELETE EOL key deletes all characters to the right of the cursorhD in the current line, including the character on which the cursor is positioned. 3 03F The CUT key deletes the select range, storing it in the paste buffer.D The select range is all the text between the selected position (seeE SELECT) and the current cursor position. If you have not selected aaG range and the cursor is positioned on the current search string, thatrD string is cut. The previous contents of the paste buffer is lost.  C The PASTE key inserts the contents of the paste buffer directly inu front of the cursor location.3 04D The ADVANCE key sets the current direction to advance for the CHAR,B WORD, LINE, EOL, PAGE, SECTION, SUBSTITUTE, SUBSTITUTE NEXT, FINDB and FIND NEXT keys. Advance means the movement will occur in theI direction toward the end of the file, that is, to the right and down. s F The BOTTOM key positions the cursor at the bottom of the text buffer.3 05G The BACKUP key sets the cursor direction to backup for the CHAR, WORD,eE LINE, EOL, PAGE, SECTION, SUBSTITUTE, SUBSTITUTE NEXT, FI00n|{|-z zx*ND and FIND E NEXT keys. Backup means the movement will occur in the direction of,9 the beginning of the file, that is, to the left and up. E @ The TOP key positions the cursor at the top of the text buffer.3 06G The DEL C key deletes the character on which the cursor is positioned / and saves it in the delete character buffer. h B The UND C key inserts the contents of the delete character buffer ahead of the cursor. H3 07G The PAGE key moves the cursor to the top of a page. A page is definedNG by a delimiter string, which can be set by the SET ENTITY command. The,< default page delimiter is the form feed character (CTRL/L). > The COMMAND key allows you to input a line mode command to beB executed. The command is terminated by pressing the ENTER key on the keypad.3 08H The FIND NEXT key searches for the next occurrence of the search stringE entered by the FIND key. The direction of the search is the current7$ direction mode (ADVANCE or BACKUP). E The FIND key searches for an occurrence of a string. Press the FINDsF key and then enter the string from the main keyboard. End the stringI by pressing either the ADVANCE or BACKUP key to set the direction of theo search.3 09C The DEL W key deletes text from the cursor to the beginning of the: next word, storing the text in the delete word buffer.  F The UND W key inserts the contents of the delete word buffer ahead of the cursor. 3 10 r7 Use the HELP key to obtain help on the editing keypad. 3 11I The DEL L key deletes text from the cursor position up to the end of the @ current line, including the line terminator. If the cursor isD positioned at the beginning of a line, the entire line is deleted. 6 The deleted text is saved in the delete line buffer.  F The UND L key inserts the contents of the delete line buffer ahead of the cursor. D3 12> The ^ (up arrow) key moves the cursor to the character above. B The REPLACE key deletes the select range and replaces it with the! contents of the paste buffer. x3 13@ The v (down arrow) key moves the cursor to the character below. ? The SECTION key moves the cursor 16 lines forward or backward,iA depending on the current direction mode (see ADVANCE and BACKUP)v3 14@ The > (right arrow) key moves the cursor to the next character. B The SPECINS key inserts any ASCII character. Press the GOLD key,B enter the decimal representation of the character, press the GOLD key again, and press SPECINS. 3 15D The < (left arrow) key moves the cursor to the preceding character. D The APPEND key deletes the selected range and adds it to the end ofA the paste buffer. The selected range is all the text between the G selected position (see SELECT) and the current cursor position. If nooD selection has been made and the cursor is positioned on the current+ search string, that string is appended. e3 16E The SELECT key marks one end of a select range. A select range is aaB block of text on which various operations (such as CUT, APPEND orH FILL) can be performed. You create a select range by moving the cursorC to either the beginning or the end of the text you wish to select,aD pressing the SELECT key, and then moving the cursor to the oppositeD end of the text. You can then perform the desired operation on the range. p < The RESET key cancels the effect of the GOLD key if it was H pressed by mistake, cancels a select range, or terminates any partially entered command string.3 20C The GOLD key lets you use the lower function of the editing keys. .6 Press the GOLD key and then the key you wish to use.  B You can also use the GOLD key to enter repeat counts. Press GOLDC and then the main keyboard numeric keys, followed by the key to be D repeated. The DELETE key and CTRL/U may be used to edit the repeat3 count, and thus cannot be repeated in this manner. 3 210 The ENTER key terminates the input of commands. G The SUBS key deletes the search string, replaces it with the contents eG of the paste buff00n| zkt|lu|mx|Oxsser, and finds the next occurrence of the string. For A multiple substitutions, use the following sequence of commands: O  1. Press SELECT.u 2. Type the new text. 3. Press CUT. 4. Press FIND.l) 5. Enter the text you wish to replace.E E Each time you press SUBSTITUTE, EDT makes one substitution and findseF the next occurrence of the search string. You can use a repeat count for multiple substitutions. e3 45H The tab compute key is used when structured tabs are enabled to computeH the indentation level from the cursor position. If the cursor position8 is not a multiple of the the tab size, an error occurs.3 48J The tab decrease key is used when structured tabs are enabled to decrease the indentation level counter.a3 49J The tab increase key is used when structured tabs are enabled to increase the indentation level counter.h3 50D The FILL key performs a word fill on the select range. A word fillE reformats a block of text so that as many full words as possible areeC placed on each line without exceeding the right margin. The rightiE margin may be set by the SET WRAP command or, if it was not set, theT> default is the terminal width - 1. For purposes of the FILL3 command, only spaces are used as word delimiters. e3 52K The beginning of line key moves the cursor to the beginning of the currentaH line. If the cursor is already on the beginning of a line, it moves to the previous line.l3 54I The delete to beginning of word key is used to delete all character from H the cursor position to the beginning of the word containing the cursor.G If the cursor is on the first character of a word the previous word ish deleted. 3 55H The DEFINE KEY key is used to define a new function for an editing key.C The user is prompted first to press the key to be defined, then tobG enter the definition. The key can be defined either in terms of othernD editing keys or by use of change mode subcommands. When you use anA editing key, its definition appears at the bottom of the screen.r3 64F The tab adjust key is used when structured tabs are enabled to adjust@ the tab level of the select range. The key is used as follows:; 1. Create a select range of the text you wish to adjust.c ? 2. Enter a repeat count by using the GOLD key. A minus signy> should preceed the count if you wish to decrease the tabA level. If you do not use a repeat count, it defaults to 1.g  3. Use the tab adjust key.n G The effect of the key is to increase or decrease the indentation levelTI of the select range by the number of tabs indicated by the repeat count.t3 65E The delete to beginning of line key is used to delete all characterslD in the current line to the left of the cursor. If the cursor is onD the first character of a line, the entire previous line is deleted.3 70/ The exit key returns you to line mode editing.y 1 CLEARE The CLEAR (abbreviation: CL) command provides an efficient means of y# deleting all the text in a buffer.i Format: CLEAR buffer-nametI All the text in the specified buffer is deleted. (Note that the argumenteI is a buffer-name, not a range specification. CLEAR PASTE is valid, whilea/ CLEAR =PASTE and CLEAR BUFFER PASTE are not.) o 1 CHANGEr? The CHANGE command puts EDT in change mode. Use change mode toe: edit at the character level rather than the line level.  Format: CHANGE [range]: The optional range specifies the cursor position when you< enter change mode. If you omit range, the current position is used. @ There are three submodes of change mode. Which submode you useE depends on the type of terminal you are using and whether or not youLH wish to use the auxiliary (numeric) keypad for editing commands. These modes are:  1. Hardcopy mode 2. Keypad mode 3. Nokeypad mode 2 ENTITIESE Entities are used in change mode subcommands to specify the text on G which a subcommand will operate. Each entity represents a portion of G text, which may be anything fro00n|{|-z zx*m a single character to an entire text fG buffer. Most entities can be preceded by a count, which indicates theu$ number of entities to be affected. 3 CHARACTEReB The character entity is specified by the letter C. It selects a  single character of text.3 WORDA A word consists of a string of characters terminated by a set oftD delimiter characters. The default delimiter characters are spaces,C tabs, carriage returns, line feeds, form feeds, and vertical tabs. B Spaces are handled in a special way: all spaces following a wordC up to the first non-space character are considered part of a word.iG Other delimiters are not considered a part of the word they terminate.aB Rather, they are considered to be words by themselves. There are three word entities: ? W Specifies the entire word in which the cursor is o positioned. < BW Specifies all characters to the left of the cursor up$ to the beginning of the word. ? EW Specifies all characters from the cursor through the end  of the word. @ You can change the word delimiters with the SET ENTITY command.3 LINE The line entities are:r8 L Specifies the entire line in which the cursor is  positioned. @ BL Specifies all characters to the left of the cursor up to 5 the beginning of a line. (When the cursor is K positioned at the beginning of a line, the BL entity selects p( the entire previous line.) ? EL Specifies all characters from the cursor to the end of a ; line, including the character on which the cursor ist/ positioned. (If the cursor is on a line s5 terminator, the entire next line is selected.)u A NL Specifies all characters from the cursor to the beginning e> of the next line, including the character on which the  cursor is positioned.3 RANGEiC The range entities specify all text in the buffer either before or / after the cursor. The two range entities are:s: BR Specifies the text from the cursor position to the  beginning of the buffer.c > ER Specifies the text from the cursor position to the end  of the buffer.e 3 SENTENCEE A sentence consists of a string of characters terminated by one of a E set of single character delimiters. The default sentence delimiters D are '.', '?', and '!'. A sentence delimiter is considered to be aG delimiter only if it is at the end of a line or if it is followed by ah@ space. The line terminator or trailing spaces are considered a< part of the sentence. There are three sentence entities: > SEN Specifies the entire sentence in which the cursor is @ positioned, including the delimiter and trailing spaces or line terminator. A BSEN Specifies all characters in the current sentence to the l left of the cursor. ? ESEN Specifies all characters in the current sentence from i9 the cursor to (but not including) the delimiter e character.rB The sentence delimiters can be changed by the SET ENTITY command.3 PAGEG A page consists of all the text between two page delimiters, includinghF the trailing page delimiter. The default page delimiter is the form2 feed character. There are three page entities: , PAGE Specifies all of the current page. ? BPAGE Specifies all characters in the current page from thec8 character to the left of the cursor to the beginning  of the page.n @ EPAGE Specifies all characters in the current page from the ; cursor to (but not including) the page delimiter. ? You can change the page delimiter with the SET ENTITY command. 3 PARAGRAPHgG A paragraph consists of all the text between two paragraph delimiters,rC including the trailing paragraph delimiter. The default paragraphr/ delimiter is two consecutive line terminators.s& There are three paragraph entities: 0 PAR Specifies all of the current paragraph. @ BPAR Specifies all characters in the current paragraph from @ the00n| zkt|lu|mx|Oxss character preceding the cursor to the beginning of  the paragraph.a @ EPAR Specifies all characters in the current paragraph from 8 the cursor to (but not including) the paragraph delimiter.iD You can change the paragraph delimiter with the SET ENTITY command.3 SELECTG The select entity consists of all characters between the cursor and F the select mark. The select mark must have been specified previouslyD by a SEL subcommand. If no select mark is active and the cursor is? positioned on the current search string, the search string is a8 selected. The select range entity is specified by SR. 3 VERTICALE The vertical line entity is the same as the line entity, except thatlF with the V entity, the cursor stays in the same column. The vertical entity is specified by V.3 STRINGE The string entity consists of all the characters between the cursor C and the next occurrence of a specified search string. Specify them? string entity by enclosing the desired search string in single F or double quotes. If the string is null (specified by '' or ""), the& previous search string is used again.C For key definitions, the null character (ASCII character 0) may be B used in place of the quote characters to avoid conflicts with the search string the user enters.i 2 HARDCOPYB On a hardcopy terminal, change mode operates as follows. When youF enter change mode, the EDT displays the current line on the terminal.G The cursor position is marked by bracketing the character on which thelB cursor is positioned. EDT will then prompt with the characters:  C*eE In response, you type a series of change mode subcommands terminatedlC by a carrige return. EDT will execute the commands and retype theh line. t2 KEYPADD You enter the keypad submode of change mode when your terminal is aC VT52 or VT100 and the KEYPAD option is on. (This option is on by cD default.) In this submode, the terminal screen is used as a windowA into the text buffer. Characters typed on the main keyboard areD inserted into the buffer at the cursor position. You enter editingG commands by using keys on the auxiliary keypad, or control keys on thel main keyboard.  9 For more help on keypad mode, type CHANGE to enter that 0 mode. Use the keypad HELP facility as follows:7 1. If your terminal is a VT100, press the keypadA key marked "PF2". : 2. If your terminal is a VT52, press the red keypad key.2 SCREEND You enter the screen submode of change mode if your terminal is notI a VT52 or VT100 or your terminal is a VT52 or VT100 and the SET NOKEYPADyD command has been used to turn off the keypad option. The screen isK used as a window into the text buffer. Change mode commands are typed fromdG the keyboard and echoed on the bottom line of the screen. The commandsiG are executed and the text on the screen is updated whenever a carriagey return is typed. 2 SUBCOMMANDSeK When EDT is in change mode, a distinct set of commands is accepted. TheseoK are called the change mode subcommands. Do not abbreviate the subcommands1J or include spaces within a single command. A string of subcommands may be8 concatenated with zero or more spaces separating them.  ? Subcommands take one of the following forms, depending on the h particular command: A. commandi  B. [+|-] [count] commandh B C. [+|-] [count] [command] [+|-] [count] [+|-] entity [=buffer] A Whenever a sign can appear in more than one place, the last signe/ specified is used to determine the direction. dF A sequence of subcommands can also be enclosed in parentheses to formK a single unit. A numeric literal preceding the left parenthesis indicatesp3 the number of times to repeat the entire sequence.t 3 ADVANCEgH The ADVANCE command sets the current cursor direction to advance. The C current direction is used by many subcommands to determine whether G entities to the left or to the right of the cursor are to be affected.hF When the direction is advan00n|{|-z zx*ce, the cursor character and characters to( the right are affected by subcommands.  Format: ADVr3 APPENDB The APPEND command works in the same way as the CUT command (see)> except that the new text is added to the end of the alternate, buffer instead of replacing its contents.  C Format: [+|-] [count] APPEND [+|-] [count] [+|-] entity [=buffer]d3 ASCIIs9 The ASCII subcommand inserts a specified ASCII charactert= into the buffer at the cursor position. Use the count fieldt> to indicate the decimal value of the ASCII character you want to insert.e  Format: [count] ASCIIa ? The ASCII command is the only way to insert a carriage return CF character in the middle of a line of text; otherwise, insert commandsF always treat the carriage return as a line terminator. The following3 command would insert a carriage return character: r 2 13ASC (13 is the ASCII code for carriage return)3 BACKUPF The BACKUP command sets the current cursor direction to backup. The C current direction is used by many subcommands to determine whethernG entities to the left or to the right of the cursor are to be affected.wC When the direction is backup, characters to the left of the cursoro are affected.   Format: BACK3 CHGC@ The CHGC command changes the case of every alphabetic characterC in the specified number of entities - lower case characters becomet( upper case and upper case become lower.7 Format: [+|-] [count] CHGC [+|-] [count] [+|-] entity 3 CUTu; The CUT command deletes a specified number of entities andeE saves all the deleted text in an alternate text buffer. The commandrE works exactly like the DELETE command except that the text is saved.f @ Format: [+|-] [count] CUT [+|-] [count] [+|-] entity [=buffer] @ If you do not specify a buffer, the buffer named PASTE is used. ! Ex: CUTSR Cut the selected range  & CUTPAGE Cut the current page of text3 DEFKD The DEFK command is used to assign new definitions to editing keys.C The user is prompted first to press the key to be defined, then tosG enter the definition. The key can be defined either in terms of otherrJ editing keys or by use of change mode subcommands. If you use an editingG key, its definition appears at the bottom of the screen. This command 5 should only be executed while in keypad change mode.. Format: DEFK3 DELETE5 The DELETE subcommand deletes a specified number of e entities. ; Format: [+|-] [repeat-count] D [+|-] [count] [+|-] entityy A If the entity is C, W, BW, EW, L, BL, EL, or NL, the last entitysE deleted by the command is saved in the delete buffer associated witheA the entity and can be restored by use of the UNDELETE C, W, or L  subcommand.  9 Ex: D15C Deletes 15 characters in the current direction.m  DSR Deletes the select range.i - DBR Deletes to the beginning of the buffer.T @ D'ABC' Deletes all characters from the cursor up to the first 7 occurrence of the string 'ABC' but not including thet string.3 EXITE The EXIT command exits change mode (not the editor). When the exit 0 command is executed, you return to line mode.  Format: EX3 EXTEND: The EXTEND command executes a line mode command while youK are in change mode. EDT interprets the remainder of the command line as aeB line mode command, executes the command, and reenters change mode automatically.   Format: EXT line mode commandc3 FILL; The FILL command reformats a block of text so that as manylE complete words as possible are placed on each line without exceedingtI the right margin. The right margin is set to the terminal width minus 1dB character by default or may be changed by the SET WRAP command.  7 Format: [+|-] [count] FILL [+|-] [count] [+|-] entitys3 HELPF The HELP command causes a diagram of keypad functions and CONTROL keyD descriptions to appear on the screen. If executed in keypad changeC mode, additional information can be obtained by pressing keypad oroD control keys; in nokeypad mode, pressing any su00n| zkt|lu|mx|Oxssbsequent key returns to editing mode.t3 INSERT< The INSERT command inserts new text into the buffer at the  current cursor position.m " Format: I text to be inserted ^Z 7 This command behaves differently in each of the modes:s: o In keypad mode, insert text by typing on the main< keyboard; you do not need to begin the insert with  I or end it with ^Z.m: o In nokeypad mode, type I to begin inserting text.> You can insert text from the keyboard until you enter5 ^Z; you can enter one or more lines of text. : o In hardcopy mode, type I to begin inserting text.8 You can insert text from the keyboard until you0 enter either a ^Z or a carriage return.3 KSC The KS command modifies the cursor position after a PASTE command. Format: KSJ After a PASTE command, the cursor is on the character to the right of theH pasted text. If KS follows a PASTE, however, the cursor is on the lastF pasted character if the current direction is advance and on the first. pasted character if the direction is backup. K Such cursor positioning affects a subsequent string search. KS is used inoG the definition of the keypad SUBS function so that the character which.I follows the pasted text in the current direction is included in the next  string search. 3 MOVE8 The MOVE command moves the cursor a specified number of entities. $ Format: [+|-] [count] [+|-] entity F If an explicit sign is used, the direction of the move is determined F by that sign ( + for forward, - for backward); otherwise, the currentG direction mode (set by the ADV and BACK commands) is used to determinei the direction.  ' Ex: +3W Move the cursor3 words forwardr 8 L Move the cursor 1 line in the current direction / -PAGE Move the cursor backward to a page mark3 PASTE B The PASTE command copies the contents of an alternate buffer into+ the current buffer at the cursor position.e ! Format: [count] PASTE [=buffer]t 7 If you omit the buffer name, the PASTE buffer is used.b3 QUIT? The QUIT subcommand leaves the editor without saving any text KD buffers. This will cause you to lose any editing you have done in G this session unless you used the WRITE command to save the text beforer quitting.  Format: QUIT 3 REFRESH * The REFRESH command refreshes the screen. Format: REFh 3 REPLACEoA The REPLACE command has the same form as the DELETE command. IniI nokeypad mode, replace will enter insert mode after the text is deleted.a ; Format: [+|-] [repeat-count] R [+|-] [count] [+|-] entitye3 SELECTD The SELECT command is used to mark a portion of text which will be F one end of a select range. A select range is created by marking one G end of the desired text (either end will do), moving to the other end, = and performing an operation on the SR (select range) entity.h Format: SELR3 SHIFTmE Use the SHIFT LEFT and SHIFT RIGHT commands to alter the left marginlC when in change mode. The left margin is the position of the first > character in each line which will be displayed on the screen.@ Normally, the left margin is 0, which means all characters are I displayed. If you use a SHR command, the left margin can be changed by eG an integral number of tab stops (8 characters). If SHL is used once, aH the first 8 columns will not be displayed on the screen. This has the 3 effect of shifting the screen window horizontally.  n3 Format: count SHL (Shift left by count tab stops)T - count SHR (Shift right by count tab stops)a 3 SUBSTITUTE> The SUBSTITUTE command replaces occurrences of one string of  characters with another.l a, Format: [+|-] [count] S/string-1/string-2/ F The slashes represent any non-alphanumeric character used to delimit A the two strings. The effect of the command is to search in the oH specified direction from the cursor and find an occurrence of string-1.; It is then deleted and string-2 in inserted in its place. f3 SUBSTITUTE NEXTsD The SUB00n|{|-z zx*STITUTE NEXT command performs a SUBSTITUTE command using theH same search and replacement strings as the previous SUBSTITUTE command.  Format: [+|-] [count] SN3 TAB C Use the TAB subcommand when the structured tab feature is enabled.aA Insert the correct number of tabs and blanks to position to the fG current tab level. When structured tabs have not been enabled or the aF cursor is not at the beginning of a line, this command inserts a tab character.t Format: TABI3 TADJG The TADJ command adjusts the tab level for the selected range of text.I The tab size and repeat-count set the tab level (see TC). The tab level K is adjusted by the value of repeat-count; it is incremented for a positiveuH repeat-count and decremented for a negative repeat-count. The TADJ tabB setting is the product of the tab size and the indentation level.E Format: [+|-] [repeat-count] TADJ [+|-] [entity-count] [+|-] entity,3 TCE The TC subcommand is used to compute the tab level from the current TG cursor position. This command has meaning only if the structured tab t4 feature has been enabled. See the SET TAB command. Format: TC3 TDF The TD subcommand decreases the tab level counter. This command has E meaning only when the structured tab feature has been enabled. See  the SET TAB command.  Format: TD3 TIG The TI subcommand increases the tab level counter. This commmand has nE meaning only when the structured tab feature has been enabled. See e the SET TAB command. Format: TI3 TOPoB The TOP command is used to force the line on which the cursor is ' positioned to the top of the screen. r Format: TOPe 3 UNDELETEB The UNDELETE commands are used to restore the last entity deleted by a delete command.a % Format: UNDC (undelete character)T UNDW (undelete word)a UNDL (undelete line)c3 ^dG This command provides for the insertion of control characters in text.nE EDT accepts a circumflex (^) followed by an alphabetic character andaD inserts the corresponding control character in the text as a single character.  Format: [count]^[A..Z] 1 COPYtE The COPY (abbreviation: CO) command copies text from one location tomB another within a buffer or between buffers. When text is copied, the source text remains intact. = Format: COPY [range-1] TO [range-2] [/QUERY] [/DUPLICATE:n] E The lines specified by range-1 are copied in front of the first linetH specified by range-2. Either range defaults to the current line.  B If the destination is not the current buffer, put the name of the; receiving buffer immediately after TO (=buffer). Give theaC full name of the buffer. To copy text from an external file, seew INCLUDE. 2 /DUPLICATE Format: /DUPLICATE:n F When you use the /DUPLICATE (abbreviation: /DUP) qualifier, the lines. specified by range-1 are duplicated n times. 2 /QUERY Format: /QUERY F When you use the /QUERY (abbreviation: /Q) qualifier, EDT prompts you- with a '?' to verify each line to be copied.t  Responses are:r  Y Yes, copy this linee N No, do not copy this linea4 Q Quit, do not copy any of the rest of the lines) A All, copy all the rest of the linesw 1 DEFINE = The DEFINE command (abbreviation DEF) defines either editingD. keys for keypad mode or macros for line mode.2 KEYeG The DEFINE KEY (abbreviation DEF K) command defines customized editing @ keypads or extends the keypad now available by using additional control keys.  - Format: DEFINE KEY key-selector AS 'string's , where key-selector is one of the following: [GOLD] numberl [GOLD] CONTROL letterc GOLD characterL Number refers to keypad keys and CONTROL letter names specific control keysL (upper and lower case letters are considered equivalent). Character refers2 to any keyboard key except 0-9, !, %, ', and ". O The string is a string of change mode subcommands which define the function ofeM the key. If you want the command to be executed when the key is struck, theK00n| zkt|lu|mx|OxssM definition must end with a period; otherwise, EDT will buffer it until a key with a period is used.  E You can use a '?' character in key definitions to request input fromTD the user. The '?' character is then replaced by the characters readC from the terminal before the command is executed. A prompt stringe. enclosed in single quotes may follow the '?'. 3 EXAMPLESE To define the key CTRL/A to move 3 lines, use the following command:a " DEFINE KEY CONTROL A AS '3L.' B To define the keypad GOLD function of the uparrow key to mean "go- to top of file," use the following command: s DEFINE KEY GOLD 12 AS 'BR.' E To define the key CTRL/D to write your COBOL identification division . header for you, enter the following command:  nM DEFINE KEY CONTROL D AS 'iIDENTIFICATION DIVISION.^Z^MiPROGRAM-ID. ?^Z.'s B (After pressing the key, you will have to give the program name.) < To define the CTRL/R key to prompt for the name of a BLISS= routine which it will then find, use the following commmand:k B DEFINE KEY CONTROL R AS "BR ADV 'ROUTINE ?'Routine name: ''."3 VT52% +-------+-------+-------+-------+e This diagram defines | | | | |d6 the numbers of the key- | GOLD | 10 | 11 | 12 | pad keys on VT52 | | | | |F7 terminals for use in +-------+-------+-------+-------+A the DEFINE KEY | | | | |% command. | 7 | 8 | 9 | 13 |h | | | | |)% +-------+-------+-------+-------+m | | | | |  | 4 | 5 | 6 | 14 | | | | | |s% +-------+-------+-------+-------+F | | | | |  | 1 | 2 | 3 | 15 | | | | | |% +---------------+-------+-------+ | | | | | 0 | 16 | 21 |s | | | | % +---------------+-------+-------+53 VT100 D +-------+-------+-------+-------+ +-------+-------+-------+-------+ | | | | | | | | | |< | 12 | 13 | 15 | 14 | | GOLD | 10 | 11 | 17 | | | | | | | | | | |D +-------+-------+-------+-------+ +-------+-------+-------+-------+ | | | | |-< This diagram defines the numbers | 7 | 8 | 9 | 18 |' of the keypad keys on VT100 | | | | |-F terminals for use in the DEFINE KEY +-------+-------+-------+-------+ command. | | | | | | 4 | 5 | 6 | 19 | | | | | |+' +-------+-------+-------+-------++ | | | | |- | 1 | 2 | 3 | | | | | | |& +---------------+-------+ 21 | | | | | | 0 | 16 | | | | | |+' +---------------+-------+-------+-2 MACROiE The DEFINE MACRO (abbreviation DEF M) command is used to define liney mode macro commands.  Format: DEFINE MACRO nameK F The name is the name of the text buffer in which the macro is stored.. The macro itself is a series of EDT commands. A Invoke the macro by giving its name in response to the line mode  prompt. 1 DELETE D The DELETE (abbreviation: D) command deletes the lines specified by the range. 6 ! Format: DELETE [range] [/QUERY]- B If you do not specify the range, the default is the current line.2 /QUERY Format: /QUERY B When the /QUERY (abbreviation: /Q) qualifier is used, the user is7 prompted with a '?' to verify each line to be deleted.a  Responses are:m  Y Yes, delete this linem! N No, do not delete this linev6 Q Quit, do not delete any of the rest of the lines+ A All, delete all the rest of the linesn 1 EXIT A The EXIT (abbreviation: EX) command terminates all action in the]D editor and saves a copy of the MAIN text buffer in the output file. : Format: EXIT [file-spec] [/SEQUENCE:[init:incr]] [/SAVE] B If you omit the file specification, the output file name from the) command line which invoked EDT is used. s2 /SAVEe@ When you use the SAVE qualifier, the journal file is saved. TheC journal file is called name.JOU where name is the output file name D from the command line. For information about the journal facility, see HELP JOURNAL. i 2 /SEQUENCEi Format: /SEQUE00n|{|-z zx*NCE[:init:incr]o< When you use the SEQUENCE option, the output file is in VFC; (variable with fixed control) format, and line numbers are  written in the control field.C If you set init and incr, the file is renumbered starting with thes@ number you choose for init and the lines are incremented by theB number you choose for incr. Otherwise, the original line numbers. are written and new lines will be numbered 0. 1 FILLoC The FILL (abbreviation: FIL) command reformats a block of text so:A that there are as many full words on a line as possible withoutt exceeding the right margin. w  Format: FILL [range] C The lines in the range must be contiguous. If you omit the range,d the select range is assumed.t D The right margin is set by the SET WRAP command. If the margin has: not been set, the default is the terminal width minus 1.  1 FINDnG The FIND (abbreviation: F) command places the cursor at the first lineL specified by range.   Format: FIND [range] E The located line is not typed. To find and type a line, use the TYPEt command. 1 INCLUDEC The INCLUDE (abbreviation: INC) command copies external files intot text buffers.  # Format: INCLUDE file-spec [range]  F The specified file is copied to the location before the first line ofF the range. Note that range specifies the position to which the file D will be copied; it does not restrict the portion of the file which  will be included. 1 INSERTg= The INSERT (abbreviation: I) command inserts new text into at text buffer.  a/ Format: INSERT [range] [;line to be inserted]e UG The new text is inserted before the first line specified by range. If.F you omit range, inserted text is placed just before the line at which the cursor is located. o eC If you do not use the optional semicolon, the editor enters insertoH mode. In insert mode, you can enter as many lines of text as you wish, E terminating each line with a carriage return. You terminate insert : mode by typing CTRL/Z.  < If you choose the optional semicolon, the text on the line C following the semicolon is inserted and the editor does not enter l insert mode.y D The line following the last line inserted becomes the current line. 1 JOURNAL8 EDT saves all input from the terminal during an editing1 session in a file called the journal file. The.F journal file is deleted when you exit the editor with an EXIT commandF or a QUIT command (without the /SAVE option). When the editor is left, involuntarily, the journal file is saved.  G The journal file can be used to redo all the operations of an editing dF session. The edited file is thereby recreated. Type the same commandB line used previously with the addition of the /RECOVER qualifier. E Unless explicitly overridden by the JOURNAL qualifier on the commandlC line, the journal file will have the same name as the output file,t' except that the file type will be JOU.T 1 MOVE(C The MOVE (abbreviation: M) command moves text from one location toh1 another, deleting it from the original location.a . Format: MOVE [range-1] TO [range-2] [/QUERY] D The lines specified by range-1 are moved to a location immediately D before the first line specified by range-2. The lines are deleted M from the original location. If you omit either of the range specifications,,= the current line is used. The first line of range-2 becomesC the new current line. To move lines of text without deleting themi4 from the original location, see the COPY command. 2 /QUERY Format: /QUERY E When you use the QUERY (abbreviation: /Q) qualifier, EDT prompts you 0 is with a '?' to verify each line to be moved.   Responses are:  Y Yes, move this line. N No, do not move this line.5 Q Quit, do not move any of the rest of the lines. * A All, move all the rest of the lines. 1 PRINTD The PRINT (abbreviation: P) command creates a listing file with the specified file name.  ! Format: PRINT file-spec [range]i F The lines00n| zkt|lu|mx|Oxss selected by range are written to a listing format file withG page headers. If the NUMBERS option is set (see SET NUMBERS), the EDT A line numbers will appear on the listing. If you omit range, the,F entire current buffer is printed. The current line is not altered by; this command. Use PRINT only to create a listing; if youe/ wish to create a file, use the WRITE command. i 1 QUITmE The QUIT command exits the editor without saving the contents of thea MAIN buffer.   Format: QUIT [/SAVE] : Use the QUIT command only if you have made no changes to D the file you are editing or if you have decided you do not wish to E make the changes you have made. All edits to the file will be lost e when you QUIT from the editor. 2 /SAVEnD The SAVE qualifier specifies that the journal file should be saved.5 Normally, the journal file is deleted when you QUIT. 1 REPLACEE The REPLACE (abbreviation: R) command deletes the specified range ofs/ lines and then places EDT in the INSERT mode. V , The REPLACE command has the following form: # REPLACE [range] [;text to insert]n I When you do not specify a range, the current line is deleted and the new % text is inserted at that location. w I If you do not use the optional semicolon, the editor enters insert mode.eA In insert mode you can enter as many lines of text as you wish, tE terminating each line with a carriage return. You terminate insert d mode by typing CTRL/Z.  M If you use the optional semicolon, EDT inserts the text in the command line sC following the semicolon and the editor does not enter insert mode.W D The line following the last line inserted becomes the current line. 1 RESEQUENCEeD The RESEQUENCE (abbreviation: RES) command assigns new line numbers to a range of lines.  2 Format: RESEQUENCE [range] [/SEQUENCE:init:incr] I The specified range of lines must be contiguous. When you do not specifytC a range, all lines in the current buffer are resequenced. If themA new numbers assigned would cause duplicate or nonsequential linesA numbers, EDT will either disallow the command or renumber lines  beyond the specified range. d 2 /SEQUENCEc; The SEQUENCE (abbreviation: /SEQ) qualifier specifies the RC sequence of numbers to be assigned. The init parameter specifies FE the initial number, and incr specifies the number by which the linesnB are incremented. If you do not use the SEQUENCE qualifier, init  and incr both default to 1. 1 RANGEF Range specifications are used on most line editing commands to select< the exact lines of text on which the command will operate.  ; There are several general classes of range specifications:c 7 1. Single line ranges specify a single line of text.R = 2. Multiple line ranges specify blocks of text, such as ans> entire buffer or all lines from the current line to the  end of the buffer. @ 3. Compound ranges combine single line ranges with operators ( to specify multiple lines of text.> 4. Noncontiguous ranges specify multiple lines that are not* necessarily adjacent to one another.2 ALL= The ALL range further refines a general range specification.c Format: [range] ALL 'string'F While range can be a single, multiple, or compound range, the commandF being performed will only apply to those lines of text containing theG given string. This string can be enclosed in single or double quotes.o< Ex: TYPE ALL 'EDT' When ALL is used, the default for range. is WHOLE. This command will type all the0 lines in the current buffer containing EDT.D SUBS/A/B/50:100 ALL '1' Substitute B for A in lines from 50 to 100 which include the string 1.2 AND:/ The AND range selects a group of single lines.g 2 Format: range-1 AND range-2 AND range3 ... or range-1 , range-2 , range3  E Each of the ranges must be a single line range. Each of the single n lines is operated on. ? Ex: TYPE 4 AND 7 Lines 4 and 7 are displayed on the terminal  < TYPE BEGIN,END-1 The first00n|{|-z zx* and last lines are displayed on the terminaln2 BEGIN @ The BEGIN range (abbreviation: B) is a single line range which ( specifies the first line in the buffer.2 BEFOREE The BEFORE range (abbreviation: BEF) is a multiple line range which gB specifies all the lines in the buffer preceding the current line.2 BUFFERH The BUFFER (abbreviation: BU) specification may precede any other rangeG specification and indicates that the range is to be applied to a named buffer.   $ Format: BUFFER name [range] or =name [range] H The two forms are equivalent. Name is the name of the buffer in which D the text resides. If you leave out the range, the entire buffer is selected.2 DOTtH The dot (.) is a single line range which refers to the current line of H text. For many commands, dot is the default range. See the help text 0 for a command if you are unsure of the default. $ Ex: TYPE . Type the current line.2 ENDeG The END (abbreviation: E) range specifies an imaginary line following E the last line in the buffer. END does NOT specify the last line in H the buffer. The last line can be referred to by E-1 (that is, the line< preceding END). When the END line is typed, it looks like:  [EOB]2 FOR 8 The FOR range is a multiple line range which selects a < specified number of lines starting at a specified location.  Format: [range] FOR n or [range] # n C The two forms are equivalent. Range is a single line range which eH specifies the starting position, and n is an integer number. If range 7 is omitted, the current line is the starting position.  : Ex: TYPE . FOR 5 Type 5 lines, starting with the current lineh - TYPE #5 Equivalent to the previous example] 9 TYPE BEGIN FOR 10 Type the first 10 lines in the buffer 2 LASTI The LAST (abbreviation: L) range is a single line range which refers to nB the line in a previous buffer which was the current line when you switched to the current buffer.2 MINUSi: The minus sign in ranges selects a single line which is a5 specified number of lines before a specified line. o  Format: [range] - [n]  F Range is a single line range, and n is an integer. The line selectedF is the line which is n lines before the line specified by range. If D you omit range, the current line is used; if you omit n, 1 is used. A Ex: TYPE 15 - 3 Type the third line before the line numbered 15.i / TYPE END -1 Type the last line in the buffer.r " TYPE - Type the previous line.2 NUMBERF A line number is a single line range which refers to the line having D the specified number. The line number may contain a decimal point. " Ex: TYPE 10 Type line number 10. & INSERT 65.3 Insert before line 65.3. 2 ORIGINAL Format: ORIGINAL n C The ORIGINAL (abbreviation: O) range is a single line range which eC refers to the line which had the original number n. The original ! number is one of the following: s @ 1. If the line came from the primary input file and that file< had sequence numbers, then the original number is the ) sequence number read from the file.i > 2. If the line came from an unsequenced input file, then it> is the number originally assigned by EDT, which does not' change when a resequence is done.A A 3. If the line did not come from the primary input file, then e" its original number is zero.2 PLUSC The plus sign is used in ranges to select a single line which is a 4 specified number of lines after a specified line.   Format: [range] + [n]e F Range is a single line range, and n is an integer. The line selectedI is the line which is n lines after the line specified by range. If you nA omit range, the current line is used. If you omit n, 1 is used.  = Ex: T 15 + 3 Type the third line after the line numbered 15.  0 T BEGIN +1 Type the second line in the buffer. 0 T + Type the line following the current line. < T 'string'+2 Type the second line following the next lin00n| zkt|lu|mx|Oxsse  containing 'string'.2 RESTH The REST (abbreviation: R) range is a multiple line range which refers ; to the current line and all lines following in the buffer.i2 SELECTD The SELECT range is a multiple line range which contains all lines G between the current line and the SELECT mark. The SELECT mark is set e# by the change mode SEL subcommand. 2 STRINGF A quoted string specifies a single line which contains the specifiedF string. The string can be enclosed in either single or double quotesF (' or "). When you use a string as a range, EDT will search forward,K starting with the current line, until it locates a line with the specifiedgB string. If a minus sign (-) precedes the string, the search will be backward.n ; Ex: T 'abc' Locate and type the first line forward which  contains the string 'abc'h 4 T -"abc" Same, except the search will be backward.2 THRUE The THRU range is a compound range which specifies all lines between  two single line ranges. " Format: range-1 THRU range-2 or range-1 : range-2 G Both forms are equivalent. Starting with range-1, EDT selects all the 9 lines up to and including the line specified by range-2.r 4 Ex: TYP 15:30 Type all lines with numbers between  15 and 30.e 6 TYP 'glorp':END Type all lines from the first line + forward containing 'glorp' to the end. 2 WHOLElD The WHOLE (abbreviation: W) range refers to the entire text buffer. 1 SETC The SET (abbreviation: SE) command sets options that control otherUH editor operations. Once set, these options are in effect throughout the@ rest of the edit session or until changed by the SET command. 2 CASE. Format: SET CASE { UPPER | LOWER | NONE } F Use the SET CASE (abbreviation: SE CA) command on terminals which areF capable of displaying upper case characters only. SET CASE instructsJ EDT to flag with a preceding apostrophe either the upper case characters,D the lower case characters, or neither. The default for SET CASE is- NONE, which means no characters are flagged.e , The keywords can be abbreviated as follows: CASE CA UPPER Ur LOWER Lg NONE N2 CURSOR! Format: SET CURSOR top:bottom  H The SET CURSOR (abbreviation: SE CU) command, used with screen editing,C sets the limits within which the cursor is allowed to move withouto scrolling the screen. F Top and bottom are the line numbers at the top of the screen and theI bottom of the screen. The line numbers must be in the range of 0 to 21,N@ with 0 specifying the top of the screen and 21 the bottom. TheA default setting is 7:14, allowing the cursor to move within the middle third of the screen. T2 ENTITY5 Format: SET ENTITY entity-type 'delimiter string'o % Entity-type is one of the following:   WORD (abbreviation: W)i SENTENCE (abbreviation: S) PAGE (abbreviation: PAG)p PARAGRAPH (abbreviation: PAR)a 7 The SET ENTITY (abbreviation: SE EN) command sets the @ delimiters for the user-defined change mode entities. For the E WORD and SENTENCE entities, the delimiter string is a set of single 1B character delimiters. For PAGE and PARAGRAPH, the delimiter is a= character string which delimits the entity. See HELP CHANGEe+ ENTITIES for explanations of the entities.l2 KEYPAD Format: SET [NO]KEYPAD H The SET KEYPAD (abbreviation: SE K) option controls whether or not the M editing keypad is to be used when you are in CHANGE mode. KEYPAD is set by eFdefault for VT52 and VT100 terminals, which means the alternate keypadF is used to enter change mode commands. If you prefer the change mode= compatible with EDT version 1, use the SET NOKEYPAD command.a2 LINEStC The SET LINES (abbreviation: SE L) command controls the number of E screen lines used in either of the screen versions of change mode. ; Use this option to reduce the time it takes to refresh theo- screen image when editing at low baud rates.y  Format: SET LINES nP D where n is the number of lines to use. n must be bet00n|{|-z zx*ween 1 and 22." By default, n is set to 22 lines.2 MODE< The SET MODE (abbreviation: SE M) command determines which C mode of editing should be entered after all initial processing is (D complete. This command is useful only in the startup command file. $ Format: SET MODE { LINE | CHANGE } A By default, EDT enters line mode when the startup processing is hD complete. Use SET MODE CHANGE in your startup file to cause EDT to enter change mode immediately.b 2 NUMBERS  Format: SET [NO]NUMBERS1 E The SET NUMBERS (abbreviation: SE NU) command controls the typing ofi= line numbers on the terminal. Numbers is set on by default. H If you want to suppress numbers, use SET NONUMBERS (abbreviation: NON).2 QUIETlH The SET QUIET (abbreviation: SE Q) command controls whether or not the 6 bell will sound when an error is made in change mode.  Format: SET [NO]QUIETs B The quiet option is off (meaning the bell will sound) by default.2 SEARCH7 The SET SEARCH (abbreviation: SE SE) command controls S- several options related to string searching.l ( Format: SET SEARCH { GENERAL | EXACT } { [UN]BOUNDED } { BEGIN | END } A The GENERAL (abbreviation: G) / EXACT (abbreviation: EX) option EF controls whether or not the case of alphabetic characters must be theF same as those in the search string to match. The default is GENERAL,: which means that case is ignored in string searches.  H The BOUNDED (abbreviation: BO) option defines whether or not the searchG is bounded by a page delimiter. By default, the search is unbounded, G which means that the entire buffer will be searched. This option has G effect only in change mode. G The BEGIN (abbreviation: B) / END (abbreviation: E) option determines tB whether the cursor is left at the beginning or end of the search A string when it is found. By default, the cursor is left at the a9 beginning. This option has effect only in change mode. D2 SCREEN; The SET SCREEN (abbreviation: SE SC) command controls the e* number of characters displayed on a line.  Format: SET SCREEN w G where w is the width of the screen line. By default, the screen widthy is set to 80 characters.B2 TABb7 The SET TAB (abbreviation: SE TA) command enables the t6 structured tab feature and sets the logical tab size.  Format: SET [NO]TAB n  8 where n is the number of columns in a logical tab stop. 9 With the structured tab feature, EDT keeps a counter of eE the tab level, which is set to 1 when the SET TAB command is issued.aE When you use the tab key in change mode at the beginning of a line, iI EDT will insert enough tabs and spaces to move the cursor to the column 8B defined by the level n times the tab size. There are change modeC subcommands to alter the tab level. The structured tab feature is disabled by default.  D The tab size set by the tab command is also used by the TABS ADJUST command.u 2 TERMINAL. Format: SET TERMINAL { HCPY | VT52 | VT100 } B The SET TERMINAL (abbreviation: SE TE) command identifies to EDT A the type of terminal you are using. Normally, EDT will set the E terminal type by asking the operating system what type it is. If itnE does not appear to have set the type correctly, you can use the SHOWnE TERMINAL command to see what EDT thinks your terminal is and the SETyF TERMINAL command to correct it if necessary. If your terminal is not8 a VT52 or a VT100, it should be set to HCPY (hardcopy). 2 TRUNCATE< The SET TRUNCATE (abbreviatin: SE TR) command controls the ' handling of long lines in change mode.r  Format: SET [NO]TRUNCATE B By default, truncate mode is set, which means long lines will be H truncated on the display (the actual text is not altered). If you turn; off truncate mode by using SET NOTRUNCATE, long lines willuC be wrapped to as many screen lines as are necessary to display thea entire line. 2 VERIFY9 The SET VERIFY (abbreviation: SE V) command controls the.G listing of commands which are executed from the start00n} zkt|lu|mx|Oxssup file or from a  macro.n  Format: SET [NO]VERIFY G Verify is off by default, which means the lines are not typed. If youi: turn it on, each command line is typed as it is executed.2 WRAP Format: SET [NO]WRAP nD The SET WRAP (abbreviation: SE W) command enables word wrapping andB specifies the right margin. Word wrapping is a mode in which EDTB will automatically insert carriage returns when you are typing inC new text and the line exceeds a right margin. Word wrapping is ineB effect in change mode only and only if you have used the SET WRAP command. o C The SET WRAP command is also used to set the right margin for the , change mode FILL subcommmand.F SET NOWRAP (abbreviation: SE NOW) disables the word wrapping feature. 1 SHOW  Format: SHOW parameter H The SHOW (abbreviation: SH BU) command displays selected information onE the current state of the editor. Parameter is one of the additionaln topics listed below.c2 BUFFER Format: SHOW BUFFERn K The SHOW BUFFER (abbreviation: SH BU) command lists the buffers being usedmG during the edit session, including the number of lines of text in eachfC buffer. The current buffer is marked by an equal sign (=) beforeSD the name. If an asterisk follows the number of lines, it indicatesB that an input file is connected to the buffer and that there areB more lines to be read from the file. Thus, the line count is not accurate. 2 CASE Format: SHOW CASEwC The SHOW CASE (abbreviation: SH CA) command shows the current casei! setting (upper, lower, or none).s2 CURSOR Format: SHOW CURSORs 8 The SHOW CURSOR (abbreviation: SH CU) command shows the> current setting of the cursor region. EDT will respond with:  t:b C where t and b are integer numbers indicating the top and bottom of C the cursor region. See HELP SET CURSOR for an explanation of the  cursor region.e2 ENTITY! Format: SHOW ENTITY entity-type , where entity type is one of the following:   WORD (abbreviation: W)t SENTENCE (abbreviation: S) PAGE (abbreviation: PAG)S PARAGRAPH (abbreviation: PAR)T C The SHOW ENTITY (abbreviation: SH EN) command displays the currento+ delimiter string for the specified entity.2 KEYb Format: SHOW KEY key-selectorn , where key-selector is one of the following:  [GOLD] number  [GOLD] CONTROL lettert GOLD character 8 The SHOW KEY (abbreviation: SH K) command displays the E current definition of a keypad or control key. See HELP DEFINE KEY.:2 SCREEN Format: SHOW SCREEN)H The SHOW SCREEN (abbreviation: SH SC) command shows the current setting/ for the maximum length of a line EDT displays.y2 SEARCH Format: SHOW SEARCH G The SHOW SEARCH (abbreviation: SH SE) command shows the current searchF parameters. See HELP SET SEARCH for a description of search options. 2 TERMINAL Format: SHOW TERMINALtD The SHOW TERMINAL (abbreviation: SH TE) command shows your terminal! type (VT52, VT100, or Hardcopy).r 2 VERSIONe Format: SHOW VERSION = The SHOW VERSION (abbreviation: SH VE) command displays the ) version number of the editor. g 1 SUBSTITUTEmF The SUBSTITUTE (abbreviation: S) command replaces occurrences of one * string of characters with another string. < Format: SUBSTITUTE/string-1/string-2/ [range] [/BRIEF[:n]] [/QUERY] [/NOTYPE]  @ Any nonalphanumeric character can be used as string delimiters. E All occurrences of string-1 within the specified range are replaced cH with string-2. If you do not specify range, a single occurrence in theA current line is substituted. The line in which the substitution.+ occurred is typed after each substitution.t 2 /BRIEF[:n]E When you select the BRIEF (abbreviation: /BR) option, only the firstnD n characters of the line are displayed. If you omit n, the default is 10.Y 2 /NOTYPE A When you specify /NOTYPE (abbreviation: /NOT) the lines in whichr( substitutions occurred are not typed. 2 NEXT@ The SUBSTITUTE NEXT (abbreviation: N) command replaces the ne00n }o}-z zx*xt' occurrence of string-1 with string-2. r 4 The SUBSTITUTE NEXT command has the following form: ) [SUBSTITUTE] NEXT [/string-1/string-2/]n C The search for string-1 is made forward from the current location.oE When a substitution is made, the line where the substitution occurs , becomes the current line. @ When the optional strings are omitted, the strings used in the 6 last SUBSTITUTE or SUBSTITUTE NEXT command are used. 2 /QUERY Format: /QUERY E When you use the QUERY (abbreviation: /Q) qualifier, EDT prompts you.( with a '?' to verify each substitution.  Responses are:   Y Yes, do the substitution.n% N No, do not do the substitution. " Q Quit, terminate the command.: A All, do the rest of the substitutions without query. 1 TABSc; The TAB ADJUST (abbreviation: TA A) command shifts each ofr: a range of lines a specified number of logical tab stops. " Format: TAB ADJUST [-] n [range] G where n is the number of tab stops to shift. You must use the SET TABaB command to set the logical tab size in order for this command toI work. If you omit range, the select range is assumed. If a minus sign tB precedes the count n, the text shifts to the left. Otherwise, it shifts to the right.  1 TYPEnC The TYPE (abbreviation: T) command displays the specified range ofa lines on the terminal.  + Format: TYPE [range] [/BRIEF[:n]] [/STAY]. @ The first line in the specified range becomes the current line. G If the range specification starts with a non-alphabetic character, the ) keyword TYPE may be omitted completely. r2 /BRIEF Format: /BRIEF[:n] ? When you select the BRIEF (abbreviation: /BR) option, only thexC first n characters of the line are displayed. If you omit n, then default is 10.e2 /STAYT Format: /STAYs @ When you select the STAY (abbreviation: /ST) option, the cursorB position is not changed by the TYPE command. This enables you toD look at text elsewhere in the buffer (or in another buffer) without losing your position. 1 WRITEE The WRITE (abbreviation: WR) command creates a file from a specified: range of lines. 9 Format: WRITE file-spec [range] [/SEQUENCE[:init:incr]]x G When you specify a range, the text contained in that range becomes theuI file. When you do not specify a range, the contents of the current texteE buffer becomes the new file. The cursor position is not affected bycE the WRITE command. If the file-spec and range are omitted, then the . entire buffer is written to the output file. 2 /SEQUENCE  Format: /SEQUENCE[:init:incr]m < When you use the SEQUENCE option, the output file is in VFCC (variable with fixed control) format, and line numbers are writtenp in the control field. o C If you set init and incr, the file is renumbered starting with thegC number you choose for initial and the lines are incremented by theTB number you choose for incr. Otherwise, the original line numbers/ are written and new lines will be numbered 0. re buffer is 1 EXEMN For help on MACR0-11 and FORTRAN calling sequences for executive directives,G type AID EXE dir, where "dir" is the MACRO-11 name for the directive,BG or type AID EXE dirname, where "dirname" is the name of the directive.R N Remember that many directives have similar names. Type the full name of theD directive as a single word with underscores between words, such as: # AID EXE VARIABLE_SEND_DATA 5 or type the name of the Macro-11 directive, such as:  AID EXE VSDA ) Additional help is available as follows:e n> AID EXE DIC for directive identification codes, h? AID EXE ERRORS for executive directive error codes,h 9 AID EXE FUNCTION_CODES for common QIO function codes.t n2 ERRORSM The symbols listed below are associated with the directive status word. I STANDARD ERROR CODES RETURNED BY DIRECTIVES IN THE DIRECTIVE STATUS WORDD, IS.CLR +00 Event flag was clear3 IS.SUC +01 Operation comp00o} zkt|lu|mx|Oxsslete, successA* IS.SET +02 Event flag was set IS.SPD +02 Task was suspendedd4 IE.UPN -01. Insufficient dynamic storage4 IE.INS -02. Specified task not installed* IE.PTS -03. Partition too small for task= IE.UNS -04. Insufficient dynamic storage for sendc& IE.ULN -05. Unassigned lun2 IE.HWR -06. Device driver not resident' IE.ACT -07. Task not activeR> IE.ITS -08. Directive inconsistent with task state2 IE.FIX -09. Task already fixed/unfixed7 IE.CKP -10. Issuing task not checkpointableE. IE.TCH -11. Task is checkpointable0 IE.RBS -15. Receive buffer too small+ IE.PRI -16. Privilege violation ' IE.RSU -17. Resource in usec/ IE.NSW -18. No swap space availablei0 IE.ILV -19. Specified vector illegal< IE.AST -80. Directive issued/not issued from AST1 IE.MAP -81. Illegal mapping specifieda2 IE.IOP -83. Window has I/O in progress' IE.ALG -84. Alignment errorn: IE.WOV -85. Address window allocation overflow) IE.NVR -86. Invalid region idf1 IE.NVW -87. Invalid address window idl, IE.ITP -88. Invalid TI parameter; IE.IBS -89. Invalid send buffer size ( > 256. ) ) IE.LNL -90. Lun locked in use # IE.IUI -91. Invalid uicd. IE.IDU -92. Invalid device or unit/ IE.ITI -93. Invalid time parameters 6 IE.PNS -94. Partition/region not in system3 IE.IPR -95. Invalid priority ( > 250. )a# IE.ILU -96. Invalid lun8* IE.IEF -97. Invalid event flag7 IE.ADP -98. Part of DPB out of user's space / IE.SDP -99. DIC or DPB size invalida2 FUNCTION_CODES (; Function code Octal code Decimal code Meaning > ------------- ---------- ------------ ------------- i> IO.ATT 001400 768. attach device > IO.DET 002000 1024. detach device 9D IO.KIL 000012 10. cancel I/O requests C IO.RLB 001000 512. read logical blocka oC IO.RVB 010400 4352. read virtual blockn iD IO.WLB 000400 256. write logical block D IO.WVB 011000 4608. write virtual block - 2 ABORT_TASK2 ABRTG Abort Task ABRT$  2 FORTRAN Call:  CALL ABORT (tsk[,ids])I I. tsk = Task name to be aborted (RAD50) e ids = Directive status0 0 Macro Call:  ABRT$ tsk c. tsk = Task name to be aborted (RAD50) 2 ALTER_PRIORITY2 ALTPG Alter Priority ALTP$  FORTRAN Call: % CALL ALTPRI ([tsk],[ipri][,ids])u b tsk = Active task nameA tL ipri = 1-word integer value of new priority, from 1 to 250 (decimal) C ids = Directive statusd I Macro Call:  ALTP$ [tsk][,pri] A tsk = Active task namee a4 pri = New priority, from 1 to 250 (decimal) t 2 ASSIGN_LUN2 ALUNG Assign LUN ALUN$   FORTRAN Call: $ CALL ASNLUN (lun,dev,unt[,ids]) :" lun = Logical unit number d) dev = Device name (format: 1A2) ! unt = Device unit number  n ids = Directive statusa Macro Call:  ALUN$ lun,dev,unt o" lun = Logical unit number A+ dev = Device name (two characters)  i! unt = Device unit numbere a2 AST_SERVICE_EXIT2 ASTXG AST Service Exit ($S form recommended) ASTX$S   FORTRAN Call: F Neither the FORTRAN language nor the ISA standard permits directF linking to system-trapping mechanisms; therefore, this directive'00o}}-z zx* is not available to FORTRAN tasks.  r Macro Call:  ASTX$S [err] $ err = Error routine address L2 ATTACH_REGIONr2 ATRGF Attach Region ATRG$ n FORTRAN Call: E CALL ATRG (irdb[,ids])i EL irdb = An 8-word integer array containing a Region Definition Block   ids = Directive statusg o Macro Call: d ATRG$ rdb . rdb = Region Definition Block address F See AID EXECUTIVE RDB for information on the Region Definition Block. 2 CONNECT_TO_INTERRUPT_VECTOR 2 CINTF Connect To Interrupt Vector CINT$  FORTRAN Call:  Not supported Macro Call: R& CINT$ vec,base,isr,edir,pri,ast F vec = Interrupt vector address -- Must be in the range 60(8)F to highest vector specified during SYSGEN, inclusive,* and must be a multiple of 4 iF base = Virtual base address for kernel APR 5 mapping of the9 ISR, and enable/disable interrupt routines IF isr = Virtual address of the ISR, or 0 to disconnect from the interrupt vectorN sF edir = Virtual address of the enable/disable interrupt routine > pri = Initial priority at which the ISR is to execute (F ast = Virtual address of an AST routine to be entered after3 the fork-level routine queues an AST  2 CLEAR_EVENT_FLAG2 CLEFG Clear Event Flag CLEF$b i FORTRAN Call:  CALL CLREF (efn[,ids])d s efn = Event flag number t ids = Directive statuso Macro Call:  CLEF$ efno h efn = Event flag number 2 CANCEL_MARK_TIME_REQUESTSr2 CMKTH Cancel Mark Time Requests CMKT$ i FORTRAN Call: a CALL CANMT ([efn][,ids])e efn = Event flag number V ids = Directive statusa Macro Call:  CMKT$ [efn][,ast][,err]F efn = Event flag number E$ ast = Mark time AST address f$ err = Error routine address s 2 CONNECT2 CNCTG Connect CNCT$A L FORTRAN Call: r: CALL CNCT (rtname,[iefn],[iast],[iesb],[iparm][,ids]) L rtname = A single-precision, floating-point variable containing the7 name (RAD50) of the offspring task to be connectedr iF iefn = Event flag to be set when the offspring task exits! or emits status F iast = Name of an AST routine to be called when the6 offspring task exits or emits status K iesb = Name of an 8-word exit status block to be written whenN: the offspring task exits or emits status mF iparm = Name of a word to receive the status block address$ when an AST occurs o> ids = Integer to receive the Directive Status Word r Macro Call: & CNCT$ tname, [efn],[east],[esb] D tname = Name (RAD50) of the offspring task to be connected F efn = The event flag to be cleared on issuance and set? when the offspring task exits or emits status  F east = Address of an AST routine to be called when the6 offspring task exits or emits status F esb = Address of an 8-word status block to be written when: the offspring task exits or emits status t@ See AID EXECUTIVE ESB for information on the Exit Status Block. f2 CHECKPOINT_COMMON_REGION2 CPCRG Checkpoint Common Region CPCR$   RSX-11M-PLUS only p FORTRAN Call: e CALL CPCR (name[,ids])  G name = Name (in RAD50) of the common region to be checkpointedf r ids = Directive status Macro Call: d CPCR$ named00o"} zkt|lu|mx|Oxss a< name = Name of the common region to be checkpointed k2 CREATE_ADDRESS_WINDOWt2 CRAWG Create Address Window CRAW$I C FORTRAN Call: R CALL CRAW (iwdb[,ids])  K iwdb = An 8-word integer array containing a Window Definition BlockN l ids = Directive statusd Macro Call:  CRAW$ wdb f. wdb = Window Definition Block address iF See AID EXECUTIVE WDB for information on the Window Definition Block. !2 CREATE_GROUP_GLOBAL_EVENT_FLAGS  #CRGF2 CRGFG Create Group Global Event Flags CRGF$   FORTRAN Call:  CALL CRGF ([group][,ids]) :F group = Group number for the flags to be created - If notF specified, the task's protection UIC (H.CUIC+1) in* the task's header is used w= ids = Integer to receive the Directive Status Worde D Macro Call: r CRGF$ [group] wF group = Group number for the flags to be created - If notF specified, the task's protection UIC (H.CUIC+1) in* the task's header is used g2 CREATE_REGION2 CRRGG Create Region CRRG$   FORTRAN Call:  CALL CRRG (irdb[,ids])C K irdb = An 8-word integer array containing a Region Definition Blockt e ids = Directive status Macro Call:  CRRG$ rdb . rdb = Region Definition Block address F See AID EXECUTIVE RDB for information on the Region Definition Block. n2 CREATE_VIRTUAL_TERMINAL 2 CRVT e RSX-11M-PLUS only.d gG Create Virtual Terminal CRVT$   FORTRAN Call: G< CALL CRVT ([iiast],[ioast],[iaast],[imlen],iparm[,ids]) F iiast = AST address at which input requests from offspring$ tasks are serviced F ioast = AST address at which output requests from offspring$ tasks are serviced RF iaast = AST address at which the parent task may be notifiedF of the completion of successful offspring attach and> detach requests to the virtual terminal unit lF imlen = Maximum buffer length allowed for offspring I/O requests F iparm = Address of 3-word buffer to receive information from. the stack when an AST occurs o> ids = Integer to receive the Directive Status Word d Macro Call: t( CRVT$ [iast],[oast],[aast],[mlen] yI iast = AST address at which input requests from offspringt$ tasks are serviced tI oast = AST address at which output requests from offspringh$ tasks are serviced I aast = AST address at which the parent task may be notified I of the completion of successful offspring attach and I detach requests to the virtual terminal unit. (IfI this parameter is not specified, no notification ofrI attaches and detaches are returned to the parent task.)r eJ mlen = Maximum buffer length allowed for offspring I/O requests s'2 CANCEL_TIME_BASED_INITIATION_REQUESTSc2 CSRQG Cancel Time Based Initiation Requests CSRQ$   FORTRAN Call: t CALL CANALL (tsk[,ids]) p tsk = Task name  ids = Directive status  t Macro Call: i CSRQ$ tsk   tsk = Task name s2 DECLARE_SIGNIFICANT_EVENTo2 DECLG Declare Significant Event ($S form recommended) DECL$Se  FORTRAN Call: i CALL DECLAR ([,ids])o f ids = Directive statusL M Macro Call: N DECL$S [,err]C e$ err = Error routine address 2 DISABLE_AST_RECOGNITION 2 DSARG Disable AST Recognition ($S form recommended) 00o*}}-z zx* DSAR$S  FORTRAN Call: c CALL DSASTR [(ids)] : ids = Directive status  k Macro Call: s DSAR$S [err] _$ err = Error routine address t2 DISABLE_CHECKPOINTING 2 DSCPG Disable Checkpointing ($S form recommended) DSCP$S  i FORTRAN Call: a CALL DISCKP [(ids)]  ids = Directive status e Macro Call: i DSCP$S [err] L$ err = Error routine address R2 DETACH_REGIONr2 DTRGG Detach Region DTRG$R i FORTRAN Call: s CALL DTRG (irdb[,ids])M oK irdb = An 8-word integer array containing a Region Definition Block I ids = Directive statuss e Macro Call: S DTRG$ rdb . rdb = Region Definition Block address F See AID EXECUTIVE RDB for information on the Region Definition Block. i2 ELIMINATE_ADDRESS_WINDOW2 ELAW G Eliminate Address Window ELAW$   FORTRAN Call:  CALL ELAW (iwdb[,ids])R iN iwdbi = An 8-word integer array containing a Window Definition Block t" ids = Directive status o Macro Call:  ELAW$ wdb s1 wdb = Window Definition Block address F See AID EXECUTIVE WDB for information on the Window Definition Block. i$2 ELIMINATE_GROUP_GLOBAL_EVENT_FLAGS2 ELFGG Eliminate Group Global Event Flags ELGF$   FORTRAN Call:  CALL ELGF ([group][,ids]) K group = Group number of flags to be eliminated. If not specified,a? the protection UIC (H.CUIC+1) in the task's header is used.e v= ids = Integer to receive the Directive Status Wordb Macro Call: t ELGF$ [group] eK group = Group number of flags to be eliminated. If not specified,M? the protection UIC (H.CUIC+1) in the task's header is used.v 2 ELIMINATE_VIRTUAL_TERMINAL2 ELVT RSX-11M-PLUS only.l G Eliminate Virtual Terminal ELVT$f s FORTRAN Call:  CALL ELVT (iunum[,ids]) c. iunum = Virtual terminal unit number > ids = Integer to receive the Directive Status Word Macro Call:  ELVT$ unumg pF unum = Unit number of the virtual terminal to be eliminated e 2 EMIT_STATUSh2 EMSTG Emit Status EMST$A E FORTRAN Call: X% CALL EMST ([rtname],istat[,ids])l rE rtname = Name of task connected to issuing task to which the) status is to be emitted  nH istat = A 16-bit quantity to be returned to the connected task e> ids = Integer to receive the Directive Status Word g Macro Call:  EMST$ [tname],statusu tG tname = Name of a task connected to the issuing task to which - the status is to be emittedM AH status = A 16-bit quantity to be returned to the connected task r2 ENABLE_AST_RECOGNITION2 ENARG Enable AST Recognition ($S form recommended) ENAR$S  FORTRAN Call:  CALL ENASTR [(ids)] d ids = Directive status  s Macro Call: o ENAR$S [err] S$ err = Error routine address S2 ENABLE_CHECKPOINTING2 ENCPG Enable Checkpointing ($S form recommended) ENCP$S   FORTRAN Call: i CALL ENACKP [(ids)] s ids = Directive status b Macro Call:  ENCP$S [err] N$ err = Error routine address 2 EXIT 2 TASK_EXITrG Task Exit ($S form recommended) EXIT$S  S FORTRAN Call: F Fortran tasks that terminate with the STOP statement result in aF message that includes task name, a statement causing the task toF stop, and an optional character string specified in the STOPF statement. CALL EXIT terminates with the message STOP THIS FORTRAN TASK. M Macro Call: 00o2} zkt|lu|mx|Oxss EXIT$S [err] $ err = Error routine address 2 EXIT_IFK2 EXIFG Exit If EXIF$  FORTRAN Call:  CALL EXITIF (efn[,ids]) efn = Event flag number  ids = Directive statusn , Macro Call: i EXIF$ efn  s efn = Event flag number g2 EXIT_WITH_STATUS2 EXSTG Exit With Status EXST$  F FORTRAN Call: M CALL EXST (istat) A istat = A 16-bit quantity to be returned to parent task  F Macro Call:  EXST$ status  A status = A 16-bit quantity to be returned to parent taskX F2 EXIT_STATUS_BLOCK 2 ESB  EL The Exit Status Block (ESB) can be specified by a parent task when spawningN or connecting to an offspring task. The ESB receives exit-status informationJ when the offspring task exits or emits status. The format of the ESB is: % Word 0 offspring task exit statusT s6 Word 1 TKTN abort code (a secondary status return) d Words 2-7 Reserved cL The ESB defaults to a length of one word. To receive more than one word ofE information, logically OR the event flag argument with SP.WX8 in theeL directive that establishes the connection to the offspring task. Note thatM if this is done, all eight words of the ESB are expected to be available fore returning information. 2 EXTEND_TASKs2 EXTKG Extend Task EXTK$o 1 FORTRAN Call: ( CALL EXTTSK ([inc][,ids]) oK inc = A positive or negative number equal to the number of 32-wordmJ blocks by which the task size is to be extended or reduced.G (If omitted, task size defaults to installed task size.)r  ids = Directive statuse l Macro Call: t EXTK$ [inc] bK inc = A positive or negative number equal to the number of 32-wordaJ blocks by which the task size is to be extended or reduced.G (If omitted, task size defaults to installed task size.)  n%2 GET_COMMAND_FOR_COMMAND_INTERPRETER22 GCCIG Get Command for Command Interpreter GCCI$.  Fortran Call: iB CALL GTCMCI (icbf,icbfl,[iibuf],[iibfl],[iaddr],[incp][,ids]) D: icbf = Name of a byte array to receive the command E icbfl = Integer containing the size of the icbf array in bytesw aL iibuf = Name of an integer to receive the optional information buffer G iibfl = Name of an integer containing the length of the optional information bufferE EI iaddr = Name of an integer that contains the address in DSR of the I command desired. (This address was obtained by a previousi5 call to GTCMCI with GC.CND specified.)a tJ incp = Name of an integer containing a value indicating the action4 to take if there is no command queued f; ids = Integer to receive the directive status word  Macro Call: a/ GCCI$ cbuf,cbfl,[ibuf],[ibfl],[addr],[ncp] : cbuf = Address of buffer to receive command string H cbfl = Length of buffer. Maximum buffer size is 91. for RSX-11M) and 266. for RSX-11M-PLUS. K ibuf = Address of buffer to receive information on issuing terminalf 6 ibfl = Length of buffer to receive information ! addr = Address of command  u= ncp = Action to take if no command buffer is presentw C GC.CCS (000) -- Return with carry set (default)p J GC.CEX (001) -- Force CLI to exit instead of returning J GC.CST (002) -- Force CLI to stop instead of returning dG GC.CND (200) -- Copy command into buffer but do not < dequeue it from the list%2 GET_COMMAND_INTERPRETER_INFORMATION 2 GCIIG Get Command Interpreter Information 00o:}}-z zx* GCII$u r FORTRAN Call: 7 CALL GETCII (ibuf,ibfl,[icli],[idev],[iunit][,ids]d uF ibuf = Name of an integer array to receive the CLI information rF ibfl = Length in bytes of the integer array to receive the CLI information F icli = Name of a two-word array element containing the RAD50 name of the CLI F idev = Name of an integer containing the ASCII name of+ the terminal (default = TI:)  F iunit = Name of an integer containing the octal unit number of the terminalu  ids = Directive statusr Macro Call: I$ GCII$ buf,bufl,[cli],[dev,unit] n7 buf = Address of buffer to receive information  + bufl = Length of information buffero rH cli = Name in RAD50 of the CLI that information is requested on > dev = ASCII name of terminal whose CLI should be used f, unit = Octal unit number of terminal  2 GET_LUN_INFORMATION 2 GLUNG Get LUN Information GLUN$   FORTRAN Call: s CALL GETLUN (lun,dat[,ids]) I" lun = Logical unit number @ dat = A 6-word integer array to receive LUN information = ids = Directive statusr Macro Call:  GLUN$ lun,bufh i" lun = Logical unit number dM buf = Address of 6-word buffer that will receive the LUN informationl i2 GET_MCR_COMMAND_LINE2 GMCRG Get MCR Command Line GMCR$   FORTRAN Call: L CALL GETMCR (buf[,ids]) 7 buf = An 80-byte array to receive command lineu  ids = Directive statusr n Macro Call: c GMCR$ a2 GET_MAPPING_CONTEXT 2 GMCXG Get Mapping Context GMCX$  g FORTRAN Call: d CALL GMCX (imcx[,ids])- dF imcx = An integer array to receive the mapping context. TheF size of the array is 8*n+1, where n is the number ofF window blocks in the task's header (The maximum size isF 8*8+1=65 on RSX-11M systems. The maximum size is3 8*24+1=193 on RSX-11M-PLUS systems.)C  ids = Directive statusX G Macro Call: t GMCX$ wvec  E wvec = The address of a vector of n Window Definition Blocks;mE n is the number of window blocks in the task's header.  tF See AID EXECUTIVE WDB for information on the Window Definition Block. m2 GET_PARTITION_PARAMETERS2 GPRTG Get Partition Parameters GPRT$R 1 FORTRAN Call: " CALL GETPAR ([prt],buf[,ids]) = prt = Partition name E buf = A 3-word integer array to receive partition parameterse  ids = Directive status  e Macro Call: D GPRT$ [prt],buf   prt = Partition namew o' buf = Address of 3-word bufferE U Buffer format:r i Word 0 Partition base address Word 1 Partition size Word 2 Partition flags word# 0 = system-controlled partition ! 1 = user-controlled partitionl 2 GET_REGION_PARAMETERSt2 GREGG Get Region Parameters GREG$e  FORTRAN Call: r" CALL GETREG ([rid],buf[,ids]) D rid = Region id CB buf = A 3-word integer array to receive region parameters o ids = Directive statusd f Macro Call:  GREG$ [rid],buf t rid = Region ID ' buf = Address of 3-word buffer  d Buffer format:c r Word 0 Region base addressc Word 1 Region size Word 2 Region flags word # 0 = system-controlled partition ! 1 = user-controlled partitionR2 GET_SENSE_SWITCHES2 GSSWG Get Sense Switches ($S form recommended) GSSW$S  b FORTRAN Call: e CALL READSW (isw) = isw = Integer to receive the console switch s00oB} zkt|lu|mx|Oxssettingsl N The following FORTRAN call allows a program to read state of a single switch: s CALL SWITCH (ibt,ist) 0 ibt = The switch to be tested (0 to 15) 1" ist = Test results where: w 1 = switch on 2 = switch offe a Macro Call: E GSSW$S [err] G$ err = Error routine address 2 GET_TIME_PARAMETERSS2 GTIMG Get Time Parameters GTIM$t e FORTRAN Call: w CALL GETTIM (ibfl[,ids])i F& ibfl = An 8-word integer array o ids = Directive status  T Macro Call:  GTIM$ buf i' buf = Address of 8-word buffert  Buffer format:r  Word 0 Year (since 1900)c Word 1 Month (1-12) Word 2 Day (1-31) Word 3 Hour (0-23)S Word 4 Minute (0-59)r Word 5 Second (0-59)s Word 6 Tick of second Word 7 Ticks per second s2 GET_TASK_PARAMETERS 2 GTSKG Get Task Parameters GTSK$] FORTRAN Call:  CALL GETTSK (buf[,ids]) E buf = A 16-word integer array to receive the task parameters  ids = Directive statusb e Macro Call: o GTSK$ buf ( buf = Address of 16-word buffer 2 INHIBIT_AST_RECOGNITION32 IHARG Inhibit AST Recognition ($S form recommended) IHAR$Sk  FORTRAN Call: i CALL INASTR [(ids)]A P ids = Directive statusa e Macro Call:  IHAR$S [err] $ err = Error routine address L2 MAP_ADDRESS_WINDOW2 MAP G Map Address Window MAP$   FORTRAN Call: s CALL MAP (iwdb[,ids]) K iwdb = An 8-word integer array containing a Window Definition BlockS E ids = Directive statusR g Macro Call: e MAP$ wdb  . wdb = Window Definition Block address NF See AID EXECUTIVE WDB for information on the Window Definition Block. 2 MARK_TIME[2 MRKTG Mark Time MRKT$ p FORTRAN Call: " CALL MARK (efn,tmg,tnt[,ids]) efn = Event flag number & tmg = Time interval magnitude A! tnt = Time interval unit  d ids = Directive statusi G The ISA standard call for delaying a task for a specified timew interval is also included:k d CALL WAIT (tmg,tnt,ids) f& tmg = Time interval magnitude c! tnt = Time interval unit  e ids = Directive status  Macro Call: MRKT$ [efn],tmg,tnt[,ast] C efn = Event flag number & tmg = Time interval magnitude g! tnt = Time interval unit  & ast = AST entry point address s For CALL WAIT:a i tmg = 0 for ticksl 1 for milliseconds a For CALL MARK and Macro call: s tmg = 1 for ticks A For all forms:  tmg = 2 for seconds 3 for minutes 4 for hours u2 MAP_SUPERVISOR2 MSDS c RSX-11M-PLUS only.c CG Map Supervisor D-Space to Supervisor I-Space MSDS$  b FORTRAN Call:  Not supported.m i Macro Call: t MSDS$ mask iL mask = A 7-bit mask with one bit corresponding to each APR. If theL bit is set, the APR is mapped to supervisor-mode I-space. IfL the bit is clear the APR is mapped to user-mode D-space. TheJ 7 bits are specified in bits 8 through 14 of the mask word. 2 MOVE_USER_SUPERVISOR_ID_SPACE2 MVTS p RSX-11M-PLUS only.p iG Move to/from User/Supervisor I/D-Space MVTS$o d FORTRAN Call: : Not supported.a Macro Call: = MVTS$ action,addr,vale buff ' action = One of the following:t5 MV.TUI -- Move to user I-spacei5 MV.TUD -- Move to user D-space ; MV.TSI -- Move 00oJ}}-z zx*to supervisor I-space ; MV.TSD -- Move to supervisor D-space7 MV.FUI -- Move from user I-space/7 MV.FUD -- Move from user D-spacel= MV.FSI -- Move from supervisor I-space = MV.FSD -- Move from supervisor D-spacea o5 addr = Address of the location in the task. H buf = Buffer to receive the value fetched, for a "move from" cE val = Value to be stored in the location, for a "move to"  2 QUEUE_IO_REQUEST2 QIO G Queue I/O Request QIO$- c FORTRAN Call: 5 CALL QIO (fnc,lun,[efn],[pri],[isb],[prl][,ids])  fuc = I/O function code -" lun = Logical unit number - efn = Event flag number 6 pri = Priority; ignored, but must be present A isb = A 2-word integer array to receive final I/O statuso N prl = A 6-word integer array containing device-dependent parametersN to be placed in parameter words 1 through 6 of the DirectiveN Parameter Block (DPB). Fill in word one of this array by using" the GETADR routine.  ids = Directive statusn Macro Call: b2 QIO$ fnc,lun,[efn],[pri],[isb],[ast],[prl] i fnc = I/O function code p" lun = Logical unit number e efn = Event flag number o6 pri = Priority; ignored, but must be present v* isb = Address of I/O status block 9 ast = Address of AST service routine entry point  4 prl = Parameter list of the form  2 QUEUE_IO_REQUEST_AND_WAIT 2 QIOWG Queue I/O Request And Wait QIOW$  FORTRAN Call: f7 CALL WTQIO (fnc,lun,[efn],[pri],[isb],[prl][,ids])o o fnc = I/O function code u" lun = Logical unit number b efn = Event flag number o6 pri = Priority; ignored, but must be present A isb = A 2-word integer array to receive final I/O statusr oL prl = A 6-word integer array containing device dependent parametersE to be placed in parameter words 1 through 6 of the DPB   ids = Directive statusR N Macro Call: C2 QIOW$ fnc,lun,[efn],[pri],[isb],[ast][,prl] fnc = I/O function code " lun = Logical unit number efn = Event flag number 6 pri = Priority; ignored, but must be present * isb = Address of I/O status block e9 ast = Address of AST service routine entry pointa o4 prl = Parameter list of the form  e2 RECEIVE_DATA_OR_STOP2 RCSTG Receive Data Or Stop RCST$: C FORTRAN Call: l$ CALL RCST ([rtname],ibuf[,ids]) F rtname = Sender task name (If not specified, data may be* received from any task.) pF ibuf = Address of 15-word buffer to receive the sender task name and data  t> ids = Integer to receive the Directive Status Word Macro Call: f RCST$ [tname],buf EF tname = Sender Task name (If not specified, data may be* received from any task.) :F buf = Address of a 15-word buffer to receive the sender$ task name and data y2 RECEIVE_DATA2 RCVDG Receive Data RCVD$  r FORTRAN Call: a# CALL RECEIV ([tsk],buf[,,ids]) > tsk = Sender task name (If not specified, data may be) received from any task.)b 8 buf = A 15-word integer array for received data d ids = Directive statuse v Macro Call: ) RCVD$ [tsk],buf  rF tsk = Sender task name (If not specified, data may be' received from any task.)D R( buf = Address of 00oR} zkt|lu|mx|Oxss15-word buffer 2 RECEIVE_DATA_OR_EXIT2 RCVX Receive Data Or Exit RCVX$ t FORTRAN Call: # CALL RECOEX ([tsk],buf[,,ids])  F tsk = Sender task name (If not specified, data may be' received from any task.)r c8 buf = A 15-word integer array for received data C ids = Directive status Macro Call: n RCVX$ [tsk],buf F tsk = Sender task name (If not specified, data may be' received from any task.)r ( buf = Address of 15-word buffer2 READ_ALL_EVENT_FLAGS2 RDAFG Read All Event Flags RDAF$  n FORTRAN Call: fD A FORTRAN task can only read a single event flag. The call is: r CALL READEF (efn[,ids]) t( efn = Event flag number (1-64.)  ids = Directive statusC : Macro Call: [ RDAF$ buf  t' buf = Address of 4-word bufferi d Buffer format:  Word 0 Task local flags 1-16. Word 1 Task Local flags 17-32! Word 2 Task common flags 33-48A! Word 3 Task common flags 49-64 2 READ_EVENT_FLAG 2 RDEF  RSX-11M-PLUS only. RG Read Event Flag RDEF$h a FORTRAN Call: L CALL READEF (iefn[,ids]) 7 iefn = Integer containing an event flag numbere aD ids = Integer variable to receive the Directive Status Word o Macro Call:  RDEF$ efn efn = Event flag number 2 READ_EXTENDED_EVENT_FLAGS22 RDXFG Read Extended Event Flags RDXF$E T FORTRAN Call: D A FORTRAN task can read only a single event flag. The call is:  CALL READEF (efn[,ids]) R( efn = Event flag number (1-96.) s ids = Directive statuso i Macro Call: g RDXF$ buf  i' buf = Address of 6-word bufferr i Buffer format:o M Word 0 Task local flags 1-16 Word 1 Task Local flags 17-32! Word 2 Task common flags 33-48G! Word 3 Task common flags 49-64a' Word 4 Task group global flags 65-80 ' Word 5 Task group global flags 81-96R2 REGION_DEFINITION_BLOCKi2 RDBe Region Definition Block RDB FormatF f Word 0 R.GID -- Region ID Word 1 R.GIZ -- Region size* Word 2-3 R.NAM -- Region name (Radix-50)< Word 4-5 R.GPAR -- Region's main partition name (Radix-50)& Word 6 R.GSTS -- Region status word- Word 7 R.GPRO -- Protection code of regionL l R.GSTS bit definitions: c o4 RS.CRR=^O<100000> ;REGION WAS SUCCESSFULLY CREATEDA RS.UNM=^O<40000> ;ONE OR MORE WINDOWS WERE UNMAPPED ON A DETACH  g8 RS.MDL=^O<200> ;MARK REGION FOR DELETE ON LAST DETACH@ RS.NDL=^O<100> ;CREATED REGION IS NOT TO BE MARKED FOR DETACH* RS.ATT=^O<40> ;ATTACH TO CREATED REGION2 RS.NEX=^O<20> ;CREATED REGION IS NOT EXTENDABLE1 RS.DEL=^O<10> ;DELETE ACCESS DESIRED ON ATTACH 0 RS.EXT=^O<4> ;EXTEND ACCESS DESIRED ON ATTACH/ RS.WRT=^O<2> ;WRITE ACCESS DESIRED ON ATTACHi. RS.RED=^O<1> ;READ ACCESS DESIRED ON ATTACH2 REMOVE_AFFINITYD2 RMAF O RSX-11M-PLUS only.  DG Remove Affinity ($S form recommended) RMAF$SL  FORTRAN Call: . CALL RMAF [(ids)]G : ids = Integer to receive the Directive Status Word A Macro Call: E RMAF$SR E2 RPOIG Request and Pass Offspring Information RPOI$R X FORTRAN Call: CI CALL RPOI (tname,[iugc],[iumc],[iparen],[ibuf],[ibfl],[isc],[idnam],R. [iunit],[itask],[ocbad][,ids]) OF tname = An array containing the actual name of the task to be4 requested and optionally chained to F iugc = Integer containing the group code number for the UIC3 of the requested target chain task: EF iumc = Integer containing the member code number for the UIC3 of the requested target chain task F iparen = Array (or I*4 integer) containi00oZ}}-z zx*ng the RAD50 name ofF the parent task (This is returned in the information2 buffer of the GTCMCI subroutine.) L ibuf = Array that contains command line text for the chained task. nI ibfl = Integer that contains the number of bytes in the commande in the ibuf arrayE D isc = Flag byte controlling the actions of this directive) request when executed. a tJ idnam = Integer containing the ASCII device name of the requested" task's TI: device K iunit = Integer containing the unit number of the requested task'su TI: device  AF itask = Array which contains the RAD50 name the requested> task is to run under. (Valid only for CLIs.) J ocbad = Integer containing the internal DSR address of the parentJ OCB. (Only a CLI can specify this argument because theJ value can only be obtained in the information buffer of( the GTCMCI subroutine.) t= ids = Integer to receive the directive status wordu Macro Call: :G RPOI$ tname,,,[ugc],[umc],[parent],[bufadr],[buflen],[sc],[dnam], ! [unit],[task],[ocbad]s . tname = Name of task to be chained to d9 ugc = Group code for UIC of the requested taske : umc = Member code for UIC of the requested task bF parent = Name of issuing task's parent task whose OCB is to beA passed. If not specified, all OCB's are passed.  sD bufadr = Address of buffer to be given to the requested task :? buflen = Length of buffer to be given to requested task, a sc = Flags byte: o@ RP.OEX -- (200) Force issuing task to exit4 RP.OAL -- (1) Pass all OCB's@ RP.ONX -- (2) Pass the first connection in the queue, if there is one i* dnam = ASCII device name for TI: ( unit = Unit number of task TI: 1 task = RAD50 name of task to be started  f3 ocbad = Address of OCB to pass (CLIs only)e =2 REQUEST_TASK2 RQSTG Request Task RQST$   FORTRAN Call: 2" CALL REQUES (tsk,[opt][,ids])  tsk = Task name % opt = A 4-word integer array  sF opt(1) = Partition name first half; ignored, but must$ be present G opt(2) = Partition name second half; ignored, but mustn$ be present bA opt(3) = Priority; ignored, but must be presentQ 2 opt(4) = User Identification Code  ids = Directive statusl Macro Call: U% RQST$ tsk,[prt],[pri][,ugc,umc]  s tsk = Task name 4< prt = Partition name; ignored, but must be present e6 pri = Priority; ignored, but must be present e ugc = UIC group codet  umc = UIC member code o  t2 RECEIVE_BY_REFERENCE2 RREFG Receive By Reference RREF$b r FORTRAN Call: " CALL RREF (iwdb,[isrb][,ids]) oK iwdb = An 8-word integer array containing a Window Definition Blocks pG isrb = A 10-word integer array to be used as the receive bufferr i ids = Directive statuse t Macro Call:  RREF$ wdb ,& wdb = Window Definition Block CF See AID EXECUTIVE WDB for information on the Window Definition Block. R 2 RESUME_TASKF2 RSUMG Resume Task RSUM$F R FORTRAN Call: C CALL RESUME (tsk[,ids])  tsk = Task name g ids = Directive statusn o Macro Call:  RSUM$ tsko i tsk = Task name e2 RUNeG Run Task RUN$  E FORTRAN Call: 5 CALL RU00ob} zkt|lu|mx|OxssN (tsk,[opt],[smg],snt,[rmg],[rnt][,ids])E B tsk = Task name w% opt = A 4-word integer array SF opt(1) = Partition name first half; ignored, but) must be presentU (F opt(2) = Partition name second half; ignored, but) must be presents A opt(3) = Priority; ignored, but must be present  2 opt(4) = User Identification Code N' smg = Schedule delta magnitude] t" snt = Schedule delta unit , rmg = Reschedule interval magnitude r' rnt = Reschedule interval unitt  ids = Directive statust > The ISA standard call for initiating a task is also included: # CALL START (tsk,smg,snt[,ids])n d tsk = Task name ' smg = Schedule delta magnitudeo 3" snt = Schedule delta unit r ids = Directive status  Macro Call: o; RUN$ tsk,[prt],[pri],[ugc],[umc],[smg],snt[,rmg,rnt]  s tsk = Task name < prt = Partition name; ignored, but must be present 6 pri = Priority; ignored, but must be present a ugc = UIC group codel r umc = UIC member code :' smg = Schedule delta magnituden d" snt = Schedule delta unit s, rmg = Reschedule interval magnitude ' rnt = Reschedule interval unit  r2 SUPERVISOR_CALL2 SCAL : RSX-11M-PLUS only., tG Supervisor Call ($$ form recommended) SCAL$S   FORTRAN Call: i Not supported m Macro Call:  SCAL$S saddr,caddr  o? saddr = Address of the called supervisor-mode routine L caddr = Address of the completion routine for return to the caller  **NOTE WELL** tE We strongly suggest using the Task Builder to resolve references totB supervisor mode routines rather than explicitly using the SCAL$S> directive. Doing so allows you to take advantage of any new: techniques implemented in future releases automatically. 2 SET_COMMAND_LINE_INTERPRETER2 SCLIF Set Command Line Interpreter SCLI$ v FORTRAN Call: ( CALL SETCLI (icli,idev,iunit[,ids]) oF icli = A two word array element containing the name of the CLI1 to which the terminal is to be sete cF idev = Integer containing the ASCII name of the terminal to be" set (default = TI:) o= iunit = Integer containing the unit number of terminalr a ids = Directive statusM _ Macro Call:  SCLI$ cli,[dev],[unit]e eB cli = Name of the CLI to which the terminal is to be set D dev = ASCII name of the terminal to be set (default = TI:) a' unit = Unit number of terminal 2 SEND_DATA 2 SDATG Send Data SDAT$  e FORTRAN Call: $ CALL SEND (tsk,buf,[efn][,ids]) o tsk = Task name a9 buf = A 13-word integer array of data to be sentc e efn = Event flag number S ids = Directive status  i = Macro Call:  SDAT$ tsk,buf[,efn]  s tsk = Task name - buf = Address of 13-word data buffer efn = Event flag number a42 SEND_DATA_REQUEST_AND_PASS_OFFSPRING_CONTROL_BLOCK2 SDRPG Send Data Request and Pass Offspring Control Block SDRP$L E FORTRAN Call: iH CALL SDRP (task,ibuf,[ibfl],[iefn],[iflag],[iparen],[iocbad][,ids]) yF task = Name of an array (REAL, INTEGER, I*4) that contains- the RAD50 name of target task 8 ibuf = Integer array containing data to be sent F ibfl = Integer containing number of words (integers) in theF array to be sent (On RSX-11M systems, this argumentF must be 13., and on RSX-11M-PLUS systems, thisG argument may be in t00oj}}-z zx*he range 1 to 255.) (Default = 13.), lF iefn = Integer containing the number of the event flag to be@ set when this directive is executed successfully aH iflag = Integer containing flags bits controlling the execution. E iparen = Name of array containing the RAD50 name of the parentB task whose OCB should be passed to the target task F iocbad = Name of an integer containing internal pool address of the OCB to passn eL ids = Integer to receive the contents of the Directive Status Word m Macro Call: f3 SDRP$ task,bufadr,buflen,efn,flag,parent,ocbads e- task = Name of task to be chained to  tC bufadr = Address of buffer to be given to the requested taske > buflen = Length of buffer to be given to requested task k efn = Event flag t flag = Flags byte c L parent = Name of issuing task's parent task whose OCB is to be passed 3 ocbad = Address of OCB to pass (CLI's only)c e2 SEND_REQUEST_AND_CONNECT2 SDRCG Send, Request And Connect SDRC$  FORTRAN Call: e? CALL SDRC (rtname,ibuf,[iefn],[iast],[iesb],[iparm][,ids])  bH rtname = Target task name of the offspring task to be connected v- ibuf = Name of 13-word send buffer  gG iefn = Event flag to be set when the offspring task exits ora emits status F iast = Name of an AST routine to be called when the6 offspring task exits or emits status tF iesb = Name of an 8-word status block to be written when: the offspring task exits or emits status F iparm = Name of a word to receive the status block address$ when an AST occurs w> ids = Integer to receive the Directive Status Word h Macro Call: e) SDRC$ tname,buf,[efn],[east],[esb]  G tname = Target task name of the offspring task to be connected  1 buf = Address of a 13-word send buffer F efn = The event flag to be cleared on issuance and when the4 offspring task exits or emit status F east = Address of an AST routine to be called when the5 offspring task exits or emits status  =F esb = Address of a 8-word status block to be written when9 the offspring task exits or emits status  T2 SET_EVENT_FLAG2 SETFG Set Event Flag SETF$e b FORTRAN Call: e CALL SETEF (efn[,ids])  a efn = Event flag number  ids = Directive statuse Macro Call:  SETF$ efn efn = Event flag number &2 SPECIFY_FLOATING_POINT_EXCEPTION_AST2 SEPAG Specify Floating Point Exception AST SEPA$  i FORTRAN Call:  Not supported t Macro Call: s SFPA$ [ast] N6 ast = AST service routine entry point address 2 SEND_MESSAGE2 SMSGG Send Message SMSG$n  FORTRAN Call: / CALL SMSG (itgt,ibuf,ibufl,iprm,iprml,ids)C :3 itgt = Integer containing the target object  bF ibuf = Integer array containing the data to be inserted into( the formatted data packet : ibufl = Integer containing length of the ibuf array cA iprm = Integer array containing any additional parametersu eL iprml = Integer containing the number of parameters in the iprm array ? ids = Optional integer to receive the directive status Macro Call: i$ SMSG$ tgt,buf,len, g( tgt = Target identifier b6 buf = Address of optional data buffer n> len = Length in bytes of optional data buffer i6 pri,...,prn = Target-specific parameter list: % Paramet00or} zkt|lu|mx|Oxsser list for Error Logging  i0 SMSG$ SM.SER,buf,len,typ,sub,lun,mask> n( typ = Error Log packet code y0 sub = Error Log packet subtype code d0 lun = Logical unit number of device t$ msk = Control mask word 2 SEND_NEXT_COMMANDi2 SNXC  RSX-11M-PLUS only.A eG Send Next Command SNXC$  i FORTRAN Call: i% CALL SNXC ([dnam][,iunit][,ids])c r= dnam = Device name (ASCII). If not specified, TI: is used  F iunit = Unit number of terminal from which the command is to be sent g6 ids = Integer to receive the directive status word p Macro call:  SNXC$ [dnam][,unum] b= dnam = Device name (ASCII). If not specified, TI: is usedE NF unum = Unit number of terminal from which the command is to be sent 2 SPECIFY_PARITY_ERROR2 SPEA  RSX-11M-PLUS only.R NG Specify Parity Error AST SPEA$n  FORTRAN Call: e Not supported Macro Call: n SPEA$ [ast] m7 ast = AST services routine entry point addresso c 2 SUSPENDr2 SPNDG Suspend ($S form recommended) SPND$S  i FORTRAN Call: f CALL SUSPND [(ids)] N ids = Directive status Macro Call: m d SPND$S [err] P$ err = Error routine address P2 SPECIFY_POWER_RECOVERY_AST2 SPRAG Specify Power Recovery AST SPRA$e  FORTRAN Call:  EXTERNAL sub  CALL PWRUP (sub)  tG sub = Name of a subroutine to be executed upon power recovery.S> The PWRUP subroutine will effect the following: $& CALL sub (no arguments) DL The subroutine is called as a result of a power recovery AST,J and therefore can be controlled at critical points by usingB the DSASTR (or INASTR) and ENASTR subroutine calls.  To Remove an AST: e CALL PWRUPl Macro Call:  SPRA$ [ast]  U6 ast = AST service routine entry point address c2 SPAWN 2 SPWNG Spawn SPWN$  FORTRAN Call: C CALL SPAWN (rtname,[iugc],[iumc],[iefn],[iast],[iesb],[iparm],r7 [icmlin],[icmlen],[iunit],[dnam][,ids])o cB rtname = Name (RAD50) of the offspring task to be spawned E iugc = Group code number for the UIC of the offspring task  CF iumc = Member code number for the UIC of the offspring task TF iefn = Event flag to be set when the offspring task exits! or emits status  F iast = Name of an AST routine to be called when the6 offspring task exits or emits status F iesb = Name of an 8-word status block to be written when: the offspring task exits or emits status F iparm = Name of a word to receive the status block address% when the AST occursh fF icmlin = Name of a command line to be queued for the offspring task rF icmlen = Length of the command line (79. characters maximum) lF iunit = Unit number of terminal to be used as the TI: forF the offspring task (If the optional dnam parameterF is not specified, this parameter must be the unitF number of a virtual terminal created by the issuingF task; if a value of 0 is specified, the TI: of the. issuing task is propagated.) F dnam = Device name mnemonic (If not specified, the virtual+ terminal is used as TI:.)= n= ids = Integer to receive the Directive Status Word  Macro Call: E SPWN$ tname,,,[ugc],[umc],[efn],[east],[esb],[cmdlin],[cmdlen]d ,[unum],[dnam] B tname = Name (00oz}}-z zx*RAD50) of the offspring task to be spawned E ugc = Group code number for the UIC of the offspring task F umc = Member code number for the UIC of the offspring task mF efn = The event flag to be cleared on issuance and set? when the offspring task exits or emits statuse vF east = Address of an AST routine to be called when the6 offspring task exits or emits status nF esb = Address of an 8-word status block to be written when: the offspring task exits or emits status F cmdlin = Address of a command line to be queued for the offspring task D cmdlen = Length of the command line (maximum length is 79.)  F unum = Unit number of terminal to be used as the TI: forF the offspring task (If the optional dnam parameterF is not specified, this parameter must be the unitF number of a virtual terminal created by the issuingF task; if a value of 0 is specified, the TI: of the. issuing task is propagated.) F dnam = Device name mnemonic (If not specified, the virtual+ terminal is used as TI:.)= n+ NOTE  r@ 1. If neither unum nor dnam is specified, the@ TI: of the issuing task is propagated. tK 2. If only unum is specified, TI: is a virtual terminal.i 2 SPECIFY_RECEIVE_DATA_AST2 SRDAG Specify Receive Data AST SRDA$p t FORTRAN Call: a Not supported m Macro Call: i SRDA$ [ast] 6 ast = AST service routine entry point address 2 SREX2 SREAG Specify Requested Exit AST SREA$c eF SREX$ t FORTRAN Call:  CALL SREA(ast[,ids])e T5 ast = Name of the externally declared AST routineA F ids = Name of an optional integer to receive Directive Status Word R. CALL SREX(ast,ipblk,ipblkl,[dummy][,ids]) m5 ast = Name of the externally declared AST routine  AG ipblk = Name of an integer array to receive trap-dependent parameterse dB ipblkl= Number of parameters to be returned into the ipblk array ( dummy = Reserved for future programmer F ids = Name of an optional integer to receive Directive Status Word Macro Call: x SREA$ [ast]  SREX$ [ast][,dummy] o6 ast = AST service routine entry point address , dummy = Reserved for future expansion m2 SEND_BY_REFERENCEh2 SREFG Send By Reference SREF$e  FORTRAN Call: m r, CALL SREF (tsk,[efn],iwdb,[isrb][,ids]) r! tsk = Receiver task namem efn = Event flag number K iwdb = An 8-word integer array containing a Window Definition Blockc CH isrb = An 8-word integer array containing additional information A ids = Directive statusd s Macro Call: y SREF$ task,wdb[,efn]i ! task = Receiver task nameS . wdb = Window Definition Block address efn = Event flag number m"2 SPECIFY_RECEIVE_BY_REFERENCE_AST2 SRRAG Specify Receive-By-Reference AST SRRA$f  FORTRAN Call: i Not supported r Macro Call:  SRRA$ [ast]  c6 ast = AST service routine entry point address d2 SET_AFFINITY2 STAF  RSX-11M-PLUS only.e aG Set Affinity STAF$  R FORTRAN Call:  CALL STAF (iaff[,ids])i i! iaff = Affinity mask word  e7 ids = Integer to receive Directive Status Word  A Macro Call: e STAF$ [cp!ub!ub...] ( cp = CPU selected (A through D) :2 ub = UNIBUS run00o} zkt|lu|mx|Oxss(s) selected (E through T) R 2 SET_TIME2 STIMG Set System Time Directive STIM$  F FORTRAN Call: & CALL SETTIM (ibufn[,ibufp][,ids]) E ibufn = An 8-word integer array, new time specification bufferC < ibufp = An 8-word integer array, previous time buffer  ids = Directive statusi t Macro Call:  STIM$ bufn,[bufp]  A> bufn = Address of 8-word new time specification buffer F bufp = Address of 8-word buffer to receive the previous system time parameters & See AID EXECUTIVE GET_TIME_PARAMETERS2 STOP 2 TASK_STOPG Stop ($S form recommended) STOP$Si g FORTRAN Call: s CALL STOP ([ids]) ; ids = Integer to receive the Directive Status Word  Macro Call: c e STOP$S c  :$2 STOP_FOR_LOGICAL_OR_OF_EVENT_FLAGS2 STLOG Stop For Logical OR Of Event Flags STLO$A e FORTRAN Call: - CALL STLOR (ief1,ief2,ief3, ... ief(n))t 6 ief1 ... ief(n) = List of event flag numbers T Macro Call:  STLO$ grp, mskd + grp = Desired group of event flags ! msk = A 16-bit mask word( s2 STOP_FOR_SINGLE_EVENT_FLAG2 STSEG Stop For Single Event Flag STSE$c  FORTRAN Call: G CALL STOPFR (iefn[,ids]) o iefn = Event flag number 7 ids = Integer to receive Directive Status Word  C Macro Call: e STSE$ efn t efn = Event flag number t,2 SPECIFY_SST_VECTOR_TABLE_FOR_DEBUGGING_AID2 SVDBG Specify SST Vector Table For Debugging Aid SVDB$  m FORTRAN Call: k Not supported S Macro Call:  SVDB$ [adr][,len]E t* adr = Address of SST vector table EG len = Length of (that is, number of entries in) table in wordsf #2 SPECIFY_SST_VECTOR_TABLE_FOR_TASK 2 SVTKG Specify SST Vector Table For Task SVTK$n t FORTRAN Call: e Not supported P Macro Call: T SVTK$ [adr][,len]  B* adr = Address of SST vector table G len = Length of (that is, number of entries in) table in wordsS M!2 UNLOCK_GROUP_GLOBAL_EVENT_FLAGSl2 ULGFF Unlock Group Global Event Flags ($$ form recommended) ULGF$ ( FORTRAN Call: e CALL ULGF ([ids])  ids = Directive statusF T Macro Call: e ULGF$S [err]l o" err = Error routine address V2 UNMAP_ADDRESS_WINDOW2 UNMAP G Unmap Address Window UNMAP$  r FORTRAN Call:  CALL UNMAP (iwdb[,ids]) LK iwdb = An 8-word integer array containing a Window Definition BlockG A ids = Directive statusr Macro Call: s UMAP$ wdb ). wdb = Window Definition Block address F See AID EXECUTIVE WDB for information on the Window Definition Block. 2 UNSTOP_TASK2 USTPG Unstop TASK USTP$m A FORTRAN Call:  CALL USTP (rtname[,ids])  . rtname = Name of task to be unstopped iA ids = Integer to receive directive status information  d Macro Call: c USTP$ tname D. tname = Name of task to be unstopped 2 VARIABLE_RECEIVE_DATAW2 VRCD i RSX-11M-PLUS only.  SG Variable Receive Data VRCD$ N FORTRAN Call: - CALL VRCD ([task],bufadr,[buflen][,ids])  " task = Sender task name :L bufadr = Address of buffer to receive the sender task name and data s" buflen = Length of buffer o> ids = Integer to receive the Directive Status Word U Macro Call: " VRCD$ [task],bufadr[,buflen] s" task = Sender task name bufadr = Buffer address V& buflen = Buffer size in words 3 See also AID EXECUTIV00o}}-z zx*E VRCS and AID EXECUTIVE VRCX 2 VARIABLE_RECEIVE_DATA_AND_STOP2 VRCS  RSX-11M-PLUS only.  dG Variable Receive Data Or Stop VRCS$e a FORTRAN Call: s- CALL VRCS ([task],bufadr,[buflen][,ids])  s" task = Sender task name eL buf = Address of buffer to receive the sender task name and data " buflen = Length of buffer > ids = Integer to receive the Directive Status Word r Macro Call: & VRCS$ [task],bufadr[,buflen] " task = Sender task name S bufadr = Buffer address a& buflen = Buffer size in words 2 VARIABLE_RECEIVE_DATA_OR_EXITR2 VRCXG Variable Receive Data Or Exit VRCX$= e FORTRAN Call: - CALL VRCX ([task],bufadr,[buflen][,ids])t s" task = Sender task name fL bufadr = Address of buffer to receive the sender task name and data S" buflen = Length of buffer V> ids = Integer to receive the Directive Status Word Macro Call: b& VRCX$ [task],bufadr[,buflen] " task = Sender task name E bufadr = Buffer address a& buflen = Buffer size in words 2 VARIABLE_SEND_DATA2 VSDA R RSX-11M-PLUS only.L RG Variable Send Data VSDA$e f FORTRAN Call: 3 CALL VSDA ([task],bufadr,[buflen],[efn][,ids])  a$ task = Receiver task name L bufadr = Address of buffer to receive the sender task name and data l" buflen = Length of buffer b# efn = Event flag numbert > ids = Integer to receive the Directive Status Word u Macro Call: s, VSDA$ [task],bufadr,[buflen][,efn] P$ task = Receiver task name bufadr = Buffer address & buflen = Buffer size in words # efn = Event flag numberd #2 VARIABLE_SEND_REQUEST_AND_CONNECT 2 VSRC  RSX-11M-PLUS only.s fG Variable Send, Request and Connect VSRC$e h FORTRAN Call: G CALL VSRC (rtname,ibuf,[ibufl],[iefn],[iast],[iesb],[iparm][,ids])e eH rtname = Target task name of the offspring task to be connected b- ibuf = Name of 13-word send buffers a" ibufl = Length of buffer sJ iefn = Event flag set when offspring task exits or emits status nF iast = Name of an AST routine to be called when the6 offspring task exits or emits status F iesb = Name of an 8-word status block to be written when: the offspring task exits or emits status F iparm = Name of a word to receive the status block address$ when an AST occurs b> ids = Integer to receive the Directive Status Word = Macro Call: w- VSRC$ tname,buf[,buflen],efn,east,esb  H tname = Target task name of the offspring task to be connected * buf = Address of a send buffer " buflen = Length of buffer tI efn = The event flag to be set when the offspring task exits o or emits status F east = Address of an AST routine to be called when the6 offspring task exits or emits status eF esb = Address of a 8-word status block to be written when: the offspring task exits or emits status g2 WAIT_FOR_SIGNIFICANT_EVENT2 WSIGG Wait For Significant Event ($S form recommended) WSIG$Sb e FORTRAN Call: f CALL WFSNEn Macro Call: g WSIG$S [err] s$ err = Error routine address $2 WAIT_FOR_LOGICAL_OR_OF_EVENT_FLAGS2 WTLOG Wait For Logical OR Of Event Flags WTLO$m  FORTRAN Call: e# CALL WFLOR (efn1,efn2,...efnn)b kF efn = List of event flag numbers taken as the set of flags to, be specified in the direc00o} zkt|lu|mx|Oxsstive G Macro Call: f WTLO$ grp,msk m+ grp = Desired group of event flagsC :' msk = A 16-bit octal mask word 2 WAIT_FOR_SINGLE_EVENT_FLAG2 WTSFG Wait For Single Event Flag WTSF$ i FORTRAN Call:  CALL WAITFR (efn[,ids]) efn = Event flag number e ids = Directive statusf b Macro Call:  WTSE$ efnf efn = Event flag number 2 WINDOW_DEFINITION_BLOCK 2 WDBd c Window Definition Block  Word 0 = W.NID -- Window ID Word 1 = W.NAPR -- Base APRl2 Word 2 = W.NBAS -- Virtual base address (bytes)2 Word 3 = W.NSIZ -- Window size (32-word blocks) Word 4 = W.NRID -- Region ID: Word 5 = W.NOFF -- Offset in partition (32-word blocks)3 Word 6 = W.NLEN -- Length to map (32-word blocks)a( Word 7 = W.NSTS -- Window status word@ Word 8 = W.NSRB -- Send/Receive buffer virtual address (bytes) t W.NSTS Bit DefinitionsW F< WS.CRW=^O<100000> ;ADDRESS WINDOW WAS SUCCESSFULLY CREATED8 WS.UNM=^O<40000> ;ONE OR MORE WINDOWS WERE UNMAPPED IN# ;CREATE ADDRESS WINDOW OR MAP.a: WS.ELW=^O<20000> ;ONE OR MORE WINDOWS WERE ELIMINATED IN ;CREATE ADDRESS WINDOWR7 WS.RRF=^O<10000> ;REFERENCE WAS SUCCESSFULLY RECEIVEDo b- WS.BPS=^O<4000> ;DO NOT BYPASS CACHE ON MAPw. WS.NBP=^O<4000> ;DO NOT BYPASS CACHE ON CRAW' WS.RES=^O<2000> ;MAP ONLY IF RESIDENT 5 WS.NAT=^O<1000> ;CREATE ATT DESCR ONLY IF NECESSARYi, WS.64B=^O<400> ;64 BYTE ALIGNMENT ALLOWED< WS.MAP=^O<200> ;MAP AFTER CREATE WINDOW OR RECEIVE BY REF3 WS.RCX=^O<100> ;EXIT IF NO REFERENCES TO RECEIVEM5 WS.SIS=^O<40> ;CREATE WINDOW IN SUPERVISOR I SPACEI/ WS.UDS=^O<20> ;CREATE WINDOW IN USER D SPACEO) WS.DEL=^O<10> ;SEND WITH DELETE ACCESSE( WS.EXT=^O<4> ;SEND WITH EXTEND ACCESS4 WS.WRT=^O<2> ;SEND WITH WRITE ACCESS OR MAP WITH  ;WRITE ACCESS& WS.RED=^O<1> ;SEND WITH READ ACCESS. WS.EDS= WS.SIS! WS.UDS ;EFFECTIVE DATA SPACE 42 DIC0G Directive Identification Codes (DICs) are used to identify eachWG directive. The DIC appears in the low byte of the first (or only)G word in the Directive Parameter Block (DPB). The DPB length (in;G words) appears in the high byte of the first DPB word. Thus, bothE+ bytes make up the word format shown below:W RG This list can be used as a software debugging aid to quickly identifyEE directives based on the octal value of the first word in a DPB. A S; Octal Value For Directive Decimal Values Forr; DPB First Word (Macro Call) DIC DPB Length  7 433 CMKT$ 27. 1.i7 443 DECL$ 35. 1.r7 455 SPND$S 45. 1.T7 462 WSIG$S 49. 1.7 463 EXIT$S 51. 1.  c7 537 DCSP$ 95. 1.f7 541 ENCP$S 97. 1.r7 543 DSAR$S or IHAR$S 99. 1. 7 545 ENAR$S 101. 1. 7 563 ASTX$S 115. 1. 7 575 GSSW$S 125. 1.  7 603 STOP$S 131. 1. 7 643 RMAF$ 163. 1.  7 1015 STAF$ 161. 2. 7 1025 SRRA$ 21. 2. 7 1035 EXST$ 29. 2. 7 1037 CLEF$ 31. 2. 7 1041 SETF$ 33. 2. 7 1047 RDAF$ 39. 2. 7 1051 WTSE$ 41. 2. 7 1065 EXIF$ 53. 2. 7 1067 CRRG$ 55. 2.07 1071 ATRG$ 57. 2.07 1073 DTRG$ 59. 2.07 1075 GTIM$ 00o}p}-z zx* 61. 2.07 1077 GTSK$ 63. 2.0 7 1121 RREF$ 81. 2. 7 1153 SRDA$ 107. 2. 7 1155 SPRA$ 109. 2. 7 1157 SFPA$ 111. 2. 7 1161 GMCX$ 113. 2. 7 1165 CRAW$ 117. 2. 7 1167 ELAW$ 119. 2. 7 1171 MAP$ 121. 2. 7 1173 UMAP$ 123. 2.1 7 1207 STSE$ 135. 2. 7 1227 ELVT$ 151. 2. 7 1235 CRGF$ 157. 2. 7 1237 ELGF$ 159. 2. 7 1241 STAF$ 161. 2. 7 1245 SPEA$ 165. 2. 7 1247 SREA$ 167. 2.  7 1405 GLUN$ 5. 3. 7 1431 CSRQ$ 25. 3. 7 1433 CMKT$ 27. 3. 7 1447 RDXF$ 39. 3. 7 1453 WTLO$ 43. 3. 7 1457 RSUM$ 47. 3. 7 1475 STIM$ 61. 3.  7 1523 ABRT$ 83. 3. 7 1531 EXTK$ 89. 3. 7 1547 SVDB$ 103. 3. 7 1551 SVTK$ 105. 3.  7 1605 USTP$ 133. 3. 7 1611 STLO$ 137. 3. 7 1617 CNCT$ 143. 3. 7 1633 SCAL$S 155. 3. 7 1647 SREX$ 167. 3.  7 2007 ALUN$ 7. 4. 7 2011 ALTP$ 9. 4.  7 2101 GPRT$ or GREG$ 65. 4. 7 2113 RCVD$ 75. 4. 7 2115 RCVX$ 77. 4.  7 2213 RCST$ 139. 4. 7 2223 EMST$ 147. 4.  A7 2427 MRKT$ 23. 5.E 7 2505 SREF$ 69. 5.U7 2507 SDAT$ 71. 5.T 7 2625 CRVT$ 149. 5.R o7 3113 VRCD$ 75. 6. 7 3115 VRCX$ 77. 6.  7 3213 VRCS$ 139. 6.  7 3413 RQST$ 11. 7.  7 3601 CINT$ 129. 7. 7 3615 SDRC$ 141. 7.  7 4107 VSDA$ 71. 8.  7 5421 RUN$ 17. 11.  7 6001 QIO$ 1. 12. 7 6003 QIOW$ 3. 12.  7 6413 SPWN$ 11. 13.  7 7013 SPWN$ 11. 14.  7 12377 GMCR$ 127. 41. 129. 7. 7 3615 SDRC$ 141. 7.  7 4107 VSDA$ 71. 8.  7 5421 RUN1 F4P  THE FORTRAN IV-PLUS COMPILER A The FORTRAN IV-PLUS compiler is an optimizing Fortran compiler I capable of producing in-line code. It can potentially produce a Fortran G program which executes almost as fast as an assembly language program. B By convention /SW sets the switch action, and /NOSW negatesH the switch action ( SW represents a switch). The command line to the  compiler looks like : Object-File, List-File/listswitch = Source-File/switches F The def00p} zkt|lu|mx|Oxssault extensions are .FTN for the Source-File, and .OBJ for the Object-File.l i= Further AID may be obtained by typing AID F4P KEYWORD, usingn one of the following keywords.e+ ERROR (Options for getting AID on errors)a4 ERROR Rnn (AID for a specific Runtime error number)4 ERROR Cnn (AID for a specific Compile error number) LIST (Listing Switch Summary)p- RENAME (RENAMING a file from a F4P program)c, SWITCHES (Summary of F4P compiler switches) 2 LIST F4P LISTING OPTIONS8 /LI:n Specifies listing options. (Defaults to LI:2) > n=0 Minimal listing file. Diagnostic messages and program  section summary only. 3 n=1 Source listing and program section summary.o A n=2 Source listing, program section summary, and storage map.e @ n=3 Source listing, assembly code, program section summary,  and storage map.m. n=100000 Assembly code only. (undocumented) 2 SWITCHES F4P Compiler Switch Options)  /CK check array references+ /CO specify number of continuation linest /DE compile debug lines$ /ID print compiler version number /I4 allocate 2 words/integery /LA lock switch setting /LI list switch /RO generate read only code /SP spool listing fileo /TR controls error traceback# /WF specify number of work files,! /WR enable warning diagnosticsd o Switch default summary: : /NOCK/CO:40/NODE/NOI4/NOLA/LI:2/RO/NOSP/TR:NONE/WF:2/WR rL AID on any of these switches may be obtained by typing AID F4P SWITCH /sw.# where sw is the desired switch.d g3 CK? /CK Code is generated to check that all array references are n6 within array address bounds. The default is /NOCK4 Use of this switch makes the task size larger and 9 execution times slower, but it is useful for debugging.e 3 COA /CO:n A maximum of n continuation lines are permitted in the m; program, 0<=n<=99. The default value is 40. The numberW7 n is expressed as a decimal number if followed by a ; period. Otherwise it is interpreted as an octal number.w 3 DE; /DE Compile lines with a D in column 1. These lines are e8 treated as comment lines by the default /NODE switch. 3 ID? /ID Print the compiler version number. The default is /NOID.  3 I48 /I4 Allocate two words for default length integer and , logical variables. /NOI4 is the default. 3 LA7 /LA Causes the current switch settings to be retainedm; (latched) for subsequent compilations. Default is /NOLA  3 LIST6 /LI:n Specifies listing options. (Default is /LI:2) Type AID F4P LIST for details. 3 RO> /RO Directs the compiler to specify pure code and pure data 2 sections as READ ONLY(RO). The default is /RO. 3 SP> /SP Automatically spool listing file. The default is /NOSP. 3 TR: /TR:XXX The /TR switch controls the amount of extra code 4 included in the compiled output for use in error & traceback. The default is /TR:NONE /TRe /TR:ALLl7 /TR:LINES Error traceback is compiled for all source 4 statements, and function and subroutine entries. > /TR:BLOCKS Traceback information is compiled for subroutine 2 and function entries and for certain selected - source statements (starting off a block).i 7 /TR:NAMES Traceback information is compiled only for /$ subroutine and function entries. /TR:NONE7 /NOTR Disables all traceback (and produces shorter,  faster executing programs).: 3 WF: /WF:n The /WF switch determines the number of temporary2 external workfiles used to compile the program.4 One, two, or three files can be used. One file 3 produces the shortest compilation time, but cans1 compile the smallest number of statements. s1 Three files can compile three times as many n5 statements as one file but requires three times n/ more time per statement than one work file ( compilations. The default is /WF:2. 3 WR4 /WR Enable compiler warning diagnostics (w-class # messages). The default is /00p}}-z zx*WR. 2 ERRORo i- To get AID on a given error number nn, type: & AID F4P ERROR Rnn (run time errors) orc% AID F4P ERROR Cnn (compile errors)a  3 R1 INVALID ERROR CALL B A TRAP instruction has been executed whose low byte is within theB range used by the OTS for error reporting, but for which no error condition is defined.3 R2 TASK INITIALIZATION FAILURE: Task startup has failed for one of the following reasons:@ .The directive to initialize synchronous system trap handling. (SVTK$S) has returned an error indication.? .The executive directive to enable the FPP asynchronous trap ? (SFPA$S) has returned an error indication. This error willR? be returned if the task was task-built with /-FP specified,i= or if the hardware configuration does not contain an FPP.hD .The FCS-11 initialization call (FINIT$) or RMS-11 initialization4 call ($INITIF) has returned an error indication.3 R3 ODD ADDRESS TRAP (SST0)> The program has made a word reference to an odd byte address.3 R4 SEGMENT FAULT (SST1)A The program has referenced a non-existent address. This is most D likely due to a subscript value out of range on an array reference.3 R5 T-BIT OR BPT TRAP (SST2)iB A trap has occurred as a result of the trace bit being set in the= processor status word or the execution of a BPT instruction.I3 R6 IOT TRAP (SST3)A A trap has occurred as a result of executing an IOT instruction.O3 R7! RESERVED INSTRUCTION TRAP (SST4)m= The program has attempted to execute an illegal instruction.U3 R8 NON-RSX EMT TRAP (SST5); The program has executed an EMT instruction whose low byteo2 is not in the range used by the operating system.3 R9 TRAP INSTRUCTION TRAP (SST6)7 A TRAP instruction has been executed whose low byte ise/ outside the range used for OTS error messages. 3 R10T PDP-11/40 FIS TRAP (SST7): This message may result when an operating system that was< generated for an 11/40 is used on another PDP-11 processor.3 R11o FPP HARDWARE FAULT E The FPP Floating Exception Code (FEC) register contained the value 0pF following an FPP interrupt. This is probably a hardware malfunction.3 R12e FPP ILLEGAL OPCODE TRAP< The FPP has detected an illegal floating point instruction.3 R13e FPP UNDEFINED VARIABLE TRAPD The FPP loaded an illegal value (-0.0). This trap should not occur? since the OTS initialization routine does not enable this traphB condition. A negative zero value should never be produced by any FORTRAN operation.R3 R14  FPP MAINTENANCE TRAPeG The FPP Floating Exception Code register contained the value 14(octal)rE following a FPP interrupt. This is probably a hardware malfunction.C3 R20P REWIND ERRORdC An error condition was detected by FCS during the .POINT operationDB or by RMS-11 during the $REWIND operation used to position at the beginning of a file.e3 R21S DUPLICATE FILE SPECIFICATIONSB Multiple attempts to specify file attributes have been attempted,A without an intervening close operation, by one of the following:T& a) DEFINEFILE followed by DEFINEFILE, b) DEFINEFILE, CALL ASSIGN or CALL FDBSET# followed by an OPEN statement.l3 R22d INPUT RECORD TOO LONG? A record has been read which is too large to fit into the userg= record buffer. Rebuild the task using a larger Task BuilderiD MAXBUF specification, and specify a larger RECORDSIZE for the file.3 R23P BACKSPACE ERROR* One of the following errors has occurred:> a) BACKSPACE was attempted on a relative or indexed file or a file opened for append.DD b) FCS-11 or RMS-11 has detected an error while rewinding the file.B c) FCS-11 or RMS-11 has detected an error condition while reading" forward to the desired record.3 R24s END-OF-FILE DURING READ= Either an end-file recored produced by the ENDFILE statementu: or an end of file condition has been encountered during a@ READ statement and no END= transfer specification was provided.3 R25h RECORD NUMBER OUTSIDE RANGED A direct access I/O stateme00p} zkt|lu|mx|Oxssnt has specified a record number outsideG the range specified in a DEFINEFILE statement or in the MAXREC k?(l of the OPEN statement.h3 R26c ACCESS MODE NOT SPECIFIEDE The access mode of an I/O statement was inconsistent with the accessNB specified by a DEFINEFILE or OPEN statement for the logical unit.3 R27 & MORE THAN ONE RECORD IN I/O STATEMENT? An attempt was made to read or write more than a single recordn: in a REWRITE statement, or an ENCODE or DECODE statement.3 R28e CLOSE ERROR7 An error condition has been detected during the CLOSE,i< DELETE, or PRINT operation when attempting to close a file.3 R29N NO SUCH FILE 9 A file with the specified name could not be found duringO an OPEN operation.i3 R30i OPEN FAILURE@ FCS-11 or RMS-11 has detected an error condition during an open> operation. (This message is used when the error condition is? not one of the more common conditions for which specific error  messages are provided.)3 R31  MIXED FILE ACCESS MODESF An attempt was made to use both formatted and unformatted operations,C or both sequential and direct access operations, on the same unit.U3 R32  INVALID LOGICAL UNIT NUMBERF A logical unit number was used which is greater than 99, less than 1,A or outside the range specified by the Task Builder UNITS option.p3 R33e ENDFILE ERRORB End-of-file records may not be written to a direct access file, aA relative file, an indexed file, or an unformatted file that does not contain segmented records.3 R34e UNIT ALREADY OPEN> An OPEN statement or DEFINEFILE statement was attempted which: specified a logical unit already opened for input/output.3 R35L SEGMENTED RECORD FORMAT ERROR9 Invalid segmented record control data was detected in an; unformatted sequential file. The file was probably eitheri< created with RECORDTYPE='FIXED' or 'VARIABLE' in effect, or* written by a language other than FORTRAN.3 R36 & ATTEMPT TO ACCESS NON-EXISTENT RECORD. One of the following conditions has occurred:? .A non-existent record was specified in a direct access READt; or FIND statement to a relative file. The non-existentd9 record can have been either deleted or never written.> .A record located beyond the end-of-file was specified in a) direct access READ or FIND statement.bE .No record matches the key value of a keyed access READ statement.3 R37n INCONSISTENT RECORD LENGTHT@ An invalid or inconsistent record-length specification occurred" for one of the following reasons:F .The record length specified is too large to fit in the user recordF buffer. Rebuild the task with a larger Task Builder MAXBUF value.@ .The record length specified does not match the record-length/ attribute of an existing fixed-length file.eC .The record-length specification was omitted when an attempt wasuG made to create a relative file or a file with fixed-length records.T3 R38n ERROR DURING WRITE B FCS-11 or RMS-11 has detected an error condition during execution of a WRITE statement.3 R39p ERROR DURING READB FCS-11 or RMS-11 has detected an error condition during execution of a READ statement. 3 R40 RECURSIVE I/O OPERATION= An expression in the I/O list of an I/O statement has causedxC initiation of another I/O operation. This can happen if a function A that performs I/O is referenced in an expression in an I/O list. 3 R41w NO BUFFER ROOMrG There is not enough free memory left in the OTS buffer area to set up B required I/O control blocks and buffers. Rebuild the task with aF larger Task Builder ACTFIL option. For RMS-11, rebuild the task withE a larger EXTTSK value, or run the task with a larger task increment.3 R42r NO SUCH DEVICE = A filename specification has included an invalid device nameO> or a device for which no handler task (driver) is loaded when% when an open operation is attempted. 3 R43 FILE NAME SPECIFICATION ERROR< The filename string used in a CALL ASSIGN or OPEN statement> is syntactically invalid, contains 00p}}-z zx*a qualifier specification,? references an undefined device, or is otherwise not acceptabled to the operating system.X3 R44l INCONSISTENT RECORD TYPEl? The RECORDTYPE specification does not match the record type ofc an existing file.3 R45n& KEYWORD VALUE ERROR IN OPEN STATEMENTF An OPEN statement keyword that requires a value has an illegal value.# The following values are accepted:I a. BLOCKSIZE 0 to 32767" b. EXTENDSIZE -32768 to 32767# c. INITIALSIZE -32768 to 32767n d. MAXREC 0 to 2**31-1" e. BUFFERCOUNT 0 to 127& f. RECORDSIZE 32766 for sequential" 16360 for relative or indexed 9999 for magnetic tape3 R46c# INCONSISTANT OPEN/CLOSE PARAMETERSoF The specifications in an OPEN and/or subsequent CLOSE statements have4 incorrectly specified one or more of the following:5 a. A 'NEW' or 'SCRATCH' file which is 'READONLY'> b. 'APPEND' to a 'NEW', 'SCRATCH', or 'READONLY' file.- c. 'SAVE' or 'PRINT' of a 'SCRATCH' file.d1 d. 'DELETE' or 'PRINT' of a 'READONLY' file. 3 R47  WRITE TO READONLY FILE2F A write operation has been attempted to a file which was declared to be READONLY. 3 R48I UNSUPPORTED I/O OPERATIONE An I/O operation (such as direct or keyed access) has been specifiedt. which is not supported by the OTS being used.3 R49w INVALID KEY SPECIFICATIONG A key specification value, such as position, size, or key-of-referenceC2 number, was invalid in an OPEN or READ statement.3 R50R/ INCONSISTENT KEY CHANGE OR DUPLICATE KEY VALUEEF A keyed WRITE or REWRITE statement specified an invalid key value for& one or more of the following reasons:5 .A key value changed that is not allowed to changeI> .A key value duplicated the key value of another record and+ duplicate key values are not permitted.b3 R51e INCONSISTENT FILE ORGANIZATIONAD The value of the ORGANIZATION keyword in an OPEN statement does not: match the organization of the existing file being opened.3 R52R SPECIFIED RECORD LOCKEDG The record specified by an I/O statement was locked by another programn- or another logical unit within your program.l3 R53e NO CURRENT RECORDE A REWRITE or sequential DELETE statement was executed but no currenttC record was defined. Sequential REWRITE and DELETE statements mustn, be preceded by a successful READ statement.3 R54O REWRITE ERRORA An error occurred during execution of a REWRITE statement, or aneG attempt was made to rewrite a record in a sequential or relative file.R3 R55D DELETE ERRORp@ An error occurred during execution of a DELETE statement, or an< attempt was made to delete a record from a sequential file.3 R56 UNLOCK ERRORe; An error occurred during execution of an UNLOCK statement.r3 R57e FIND ERRORn8 An error occurred during execution of a FIND statement.3 R59s LIST-DIRECTED I/O SYNTAX ERRORWE The data in a list-directed input record as an invalid format or the F type of the constant is incompatible with the corresponding variable.( The value of the variable is unchanged.3 R60r INFINITE FORMAT LOOPaA The format associated with an I/O statement that includes an I/O @ statement that includes an I/O list has no field descriptors to% use in transferring those variables.3 R61 FORMAT/VARIABLE-TYPE MISMATCHG An attempt was made to input or output a real variable with an integer F field descriptor (I, O, or L), or an integer or logical variable withE a real field descriptor (D, E, F, or G). The data type of the valuerC is ignored and the value is processed as if it were of the correctO data type.T3 R62a SYNTAX ERROR IN FORMATsE A syntax error was encountered while the OTS was processing a formats stored in an array.3 R63e OUTPUT CONVERSION ERRORE During a formatted output operation the value of a particular numbertB could not be output in the specified field length without loss ofC significant digits. The field width is filled with asterisks (*). 3 R64t INPUT CONVERSION ERRORdE During a formatted inpu00p} zkt|lu|mx|Oxsst operation an invalid character was detected G in an input file or the input value overflowed the range representablesB in the input variable. The value of the variable is set to zero.3 R65  FORMAT TOO BIG FOR 'FMTBUF'F The OTS has run out of memory while scanning an array format that wasG generated at run time. The default internal format buffer length is 64oG bytes. This may be increased by using the Task Builder FMTBUF option.s3 R66" OUTPUT STATEMENT OVERFLOWS RECORDE An output operation has specified a record that exceeds the maximum iB length size specified. The maximum record length is specified by= the DEFINEFILE statement, the RECORDSIZE keyword of the OPENoB statement, or by the record length attribute of an existing file.3 R67y RECORD TOO SMALL FOR I/O LISTG A READ statement has attempted to input more data than existed in the tB record being read. For example, the I/O list might have too many elements.3 R686' VARIABLE FORMAT EXPRESSION VALUE ERRORAC The value of a variable format expression is not within the range D acceptable for its intended use; e.g., a field width which is less. than or equal to zero. A value of 1 is used.3 R70O INTEGER OVERFLOWr@ During an arithmetic operation an integer's value has exceeded ? Integer*4 range. (Note: Overflow of Integer*2 range involvingp0 Integer*2 variables is generally not detected.)3 R71F INTEGER ZERO DIVIDEC During an integer mode arithmetic operation an attempt was made toO divide by zero.3 R72e FLOATING OVERFLOWF During an arithmetic operation a real value has exceeded the largest G representable real number. The result of the operation is set to zero. 3 R73e FLOATING ZERO DIVIDEEF During a real mode arithmetic operation an attempt was made to divide6 by zero. The result of the operation is set to zero.3 R74n FLOATING UNDERFLOWlE During an arithmetic operation a real value has become less than thenG smallest representable real number, and has been replaced with a valuer of zero.3 R75N, FPP FLOATING TO INTEGER CONVERSION OVERFLOWG The conversion of a floating point value to an integer has resulted inuD a value which overflows the range representable in an integer. The resulting value is zero.t3 R80a WRONG NUMBER OF ARGUMENTSA One of the FORTRAN Library Functions or System Subroutines which7A checks for such an occurrence, has been called with an improper l number of arguments. 3 R81s INVALID ARGUMENTl? One of the FORTRAN Library Functions or System Subroutines has $ detected an invalid argument value.3 R82R UNDEFINED EXPONENTIATIONf= An exponentiation has been attempted which is mathematicallyi6 undefined; e.g., 0.**0. The result returned is zero.3 R83l$ LOGARITHM OF ZERO OR NEGATIVE VALUE@ An attempt was made to take the logarithm of zero or a negative% number. The result returned is zero.a3 R84r SQUARE ROOT OF NEGATIVE VALUEE An argument required the evaluation of the square root of a negativehG value. The square root of the absolute value is computed and returned.l3 R86m INVALID ERROR NUMBERDG The error number argument to one of the subroutines ERRSET, ERRSNS, ort$ ERRTST is not a valid error number.3 R91e COMPUTED GOTO OUT OF RANGElE The integer variable or expression in a computed GO TO statement waseE less than 1 or greater than the number of statement label referencesaG in the list. Control is transferred to the next executable statement.a3 R92  ASSIGNED LABEL NOT IN LISThF An assigned GOTO has been executed in which the label assigned to theG variable is not one of the labels in the list. Control is transferredt" to the next executable statement.3 R93 ! ADJUSTABLE ARRAY DIMENSION ERROReG Upon entry to a subprogram, the evaluation of dimensioning informationc has detected an array in whichsG a. an upper dimension bound is less than a lower dimension bound, h or,G b. the dimensions imply an array which exceeds addressable memory.S3 R94A ARRAY REFERENCE OUTSIDE ARRAYC An array reference has been detecte00p}}-z zx*d which is outside the array assG described by the array declarator. Execution continues. (This checkingtC is performed only for program units compiled with the /CK switchU in effect.).s3 R95a+ INCOMPATIBLE FORTRAN OBJECT MODULE IN TASKcF An object module produced by another PDP-11 FORTRAN compiler has been$ linked with a FORTRAN IV-PLUS task.3 R96 " MISSING FORMAT CONVERSION ROUTINEC A format conversion code has been used for which the correspondingA" conversion routine is not loaded.3 R97  FTN FORTRAN ERROR CALLyD The error-reporting subroutine entry used by the FTN FORTRAN systemA has been called. Possibly an FTN object module or FTN-dependentC2 service subroutine has been included in the task.3 R98B USER REQUESTED TRACEBACKb? A user-supplied MACRO-11 subprogram has requested a subroutine6 calling nest-traceback display. Execution continues.3 R100 DIRECTIVE: MISSING ARGUMENT(S)F A call to a system directive subroutine was made in which one or moreA of the arguments required for directive execution was not given.r3 R101& DIRECTIVE: INVALID EVENT FLAG NUMBERG A call to a system directive subroutine was made in which the argumentG used for event flag specification was not in the valid range(1 to 64).E3 R111% VIRTUAL ARRAY INITIALIZATION FAILURErF The mapped array area could not be initialized. The operating systemB does not support the memory-management directives required, or no3 memory management registers are available for use.o3 R112 VIRTUAL ARRAY MAPPING ERROR@ A virtual array address was invalid. This is probably due to a5 subscript being out of bounds. Execution continues.u3 C1( REDUNDANT CONTINUATION MARK IGNORED (W)9 A continuation mark was present where an initial line is) required. It has been ignored.L3 C2% INVALID STATEMENT NUMBER IGNORED (W)d; An imroperly formed statement number wa present in columns . 1-5 of an initial line. It has been ignored.3 C33 TOO MANY CONTINUATION LINES, REMAINDER IGNORED (E)1< More continuation lines were present than were specified byA the /CO:n qualifier. Up to 99 continuation lines are permitted.s3 C41 SOURCE LINE TOO LONG, COMPILATION TERMINATED (F)AD A line contained more than 88 characters. Note that only the first6 72 characters of a line are examined by the compiler.3 C5. STATEMENT OUT OF ORDER, STATEMENT IGNORED (E)< Statements must appear in the order specified in the PDP-11# FORTRAN Language Reference Manual.N3 C6@ STATEMENT NOT VALID IN THIS PROGRAM UNIT, STATEMENT IGNORED (E)A A statement which is not permitted to appear in the program unit > was present; for example, an executable statement in a BLOCK DATA subprogram.A3 C7* MISSING END STATEMENT, END IS ASSUMED (E)? No END statement was present at the end of the last file. Onee has been inserted. 3 C81 EXTRA CHARACTERS FOLLOWING A VALID STATEMENT (E)e@ Extranious text was present at the end of a syntactically valid? statement. Check the entire statement for typing or syntacticO errors.3 C9/ STATEMENT CANNOT BE LABELED, LABEL IGNORED (W)tB A label was present on a statement where it is not permitted. It has been ignored.3 C10O= MULTIPLE DEFINITION OF A STATEMENT LABEL, SECOND IGNORED (E)S6 Two or more statements have the same statement label.3 C11f' COMPILER EXPRESSION STACK OVERFLOW (F)E= The statement contains an expression which is too complex toe8 be compiled. This error occurs in the following cases:7 .an arithmetic or logical expression is too complex= .a reference to a subprogram has too many acual arguments- .an OPEN statement has too many argumentso3 C12e) STATEMENT CANNOT TERMINATE A DO LOOP (W)L: The terminal statement of a DO loop must not be a GO TO, , arithmetic IF, RETURN, DO or END statement.3 C13 > COUNT OF HOLLERITH OR RADIX50 CONSTANT TOO LARGE, REDUCED (E)= The integer count preceding H or R specifies more charactersT% than remain in the source statement.:3 C14 / MISSING APOSTROPHE IN ALPHANUMERIC LITERAL (E)e> Alphanumeric literals m00p} zkt|lu|mx|Oxssust be enclosed by single apostrophes.3 C15( MISSING VARIABLE OR SUBPROGRAM NAME (F); A required variable name or subprogram name was not found.T3 C16i? MULTIPLE DECLARATION OF DATA TYPE FOR VARIABLE, FIRST USED (E) ; A variable cannot appear in more than one type declarationR/ statement. The first type declaration is used.g3 C17t) CONSTANT IN FORMAT ITEM OUT OF RANGE (E)TB A numeric value in a FORMAT statement is not within the permittedA range, as given in the PDP-11 FORTRAN Language Reference Manual.o3 C18s: ILLEGAL REPEAT COUNT IN DATA STATEMENT, COUNT IGNORED (E)9 The repeat count in a DATA statement was not an unsignedn0 nonzero integer constant. It has been ignored.3 C19R MISSING CONSTANT (F)E# A required constant was not found. 3 C20e! MISSING VARIABLE OR CONSTANT (F) = An expression, or a term of an expression, has been omitted.T3 C21O) MISSING OPERATOR OR DELIMITER SYMBOL (F)s= Two terms of an expression have no operator separating them,D5 or a punctuation mark (such as a comma) was omitted.G3 C22A! MULTIPLE DECLARATION OF NAME (F)NC A name appears in two or more inconsistent declaration statements.3 C23o' SYNTAX ERROR IN IMPLICIT STATEMENT (E)> The form of the IMPLICIT statement is described in the PDP-11 Language Reference Manual.L3 C24N8 MORE THAN 7 DIMENSIONS SPECIFIED, REMAINDER IGNORED (E)+ An array may only have up to 7 dimensions.R3 C25T3 NON-CONSTANT SUBSCRIPT WHERE CONSTANT REQUIRED (F)pB In the DATA and EQUIVALENCE statements, subscript expressions are required to be constant. 3 C26T NO PATH TO THIS STATEMENT (W)F Program control cannot reach the statement. The statement is deleted.3 C27NB ADJUSTABLE ARRAY BOUNDS MUST BE DUMMY ARGUMENTS OR IN COMMON (E)@ Variables specified in dimension declarator expressions must be0 subprogram dummy arguments or appear in COMMON.3 C28r> OVERFLOW WHILE CONVERTING CONSTANT OR CONSTANT EXPRESSION (E)? The specified value of a constant is too large or too small toE be represented.3 C29t* INCONSISTENT USAGE OF STATEMENT LABEL (E)9 Labels of executable statements have been confused with c labels of FORMAT statements.s3 C30t" MISSING EXPONENT AFTER E OR D (E)< A floating point constant was specified in E or D notation, but the exponent was omitted.3 C31p. NON-RADIX50 CHARACTER IN RADIX50 CONSTANT (E)= The Radix-50 characters are the letters A-Z, the digits 0-9, 9 the dollar sign, the period, and the space. A space is a' substituted for the invalid character.r3 C32.; PROGRAM STORAGE REQUIREMENTS EXCEED ADDRESSABLE MEMORY (F) ; The storage space allocated to the variables and arrays off= the program unit exceeds the addressing range of the PDP-11.)3 C33o3 VARIABLE INCONSISTENTLY EQUIVALENCED TO ITSELF (F),A The EQUIVALENCE statements of the program specify inconsistent 2 relationships among variables and array elements.# example: EQUIVALENCE (A(1), A(2))e3 C34 = UNDIMENSIONED ARRAY OR FUNCTION DEFINITION OUT OF ORDER (F)r9 The statement is either an arithmetic statement functionE: definition incorrectly placed among executable statements: (see the PDP-11 FORTRAN Language Reference Manual), or an< assignment statement involving an array for which dimension information has not been given.3 C35 FORMAT SPECIFIER IN ERROR (F)= The format code character of a field descriptor is not amonglA those described in the PDP-11 FORTRAN Language Reference Manual. 3 C36M' SUBSCRIPT EXPRESSION OUT OF BOUNDS (F) = An array element has been referenced which is not within thet specified dimension bounds.3 C37l3 ILLEGAL EQUIVALENCE OF TWO VARIABLES IN COMMON (F)R: Variables in COMMON cannot be equivalenced to each other.3 C38v; EQUIVALENCE STATEMENT ILLEGALLY EXPANDS A COMMON BLOCK (F)i: A COMMON block cannot be extended beyond its beginning by an EQUIVALENCE statement.3 C39i) ALLOCATION BEGINS ON A BYTE BOUNDARY (E)1@ A non-BYTE quantity has been allocated to an odd byte boundary.3 C40F- ADJUSTABLE ARRAY USED IN INVALID CONTEXT (F)n< An adjustab00p}}-z zx*le array has been referenced in a context where  it is not permitted.N3 C41W0 SUBSCRIPTED REFERENCE TO NON-ARRAY VARIABLE (F)8 A variable which has not been dimensioned cannot appear with subscripts.Y3 C42S: NUMBER OF SUBSCRIPTS DOES NOT MATCH ARRAY DECLARATION (F)= More or fewer dimensions were referenced than were declared.C3 C43E: INCORRECT LENGTH MODIFIER IN TYPE DECLARATION IGNORED (E)< The length specified in an intra-type statement override is- not compatable with the data type specified.r example: INTEGER PIPES*83 C44 , SYNTAX ERROR IN INCLUDE FILE DESCRIPTOR (F)> The file string is syntactically invalid, contains an illegal? switch specification, references an undefined device mnemonic,8 or is otherwise not acceptable to the operating system.3 C45 + MISSING SEPARATOR BETWEEN FORMAT ITEMS (E) 8 A comma or other separating character has been omitted.3 C46N ZERO-LENGTH STRING (E) = The length specification of a Hollerith or Radix-50 constantl must be nonzero.e3 C47i MISSING STATEMENT LABEL (F)B A statement label reference was not present where one is required3 C48i MISSING KEYWORD (F)> A keyword, such as TO, was not present where one is required.3 C49d7 NONINTEGER EXPRESSION WHERE INTEGER VALUE REQUIRED (F)o= An expression which is required to be of type INTEGER was ofM another data type.t3 C50a UNDEFINED STATEMENT LABEL (F)C A reference has been made to a statement label that is not definedH in the program unit.n3 C51? NUMBER OF NAMES EXCEEDS NUMBER OF VALUES IN DATA STATEMENT (E)eA The number of constants specified in a DATA statement must match= the number of variables or array elements to be initialized.h3 C52 ? NUMBER OF VALUES EXCEEDS NUMBER OF NAMES IN DATA STATEMENT (E)RA The number of constants specified in a DATA statement must matchR= the number of variables or array elements to be initialized.B3 C534 STATEMENT CANNOT APPEAR IN LOGICAL IF STATEMENT (F)< The statement contained in a logical IF must not be another! logical IF,DO, or END statement. 3 C54N UNCLOSED DO LOOPS (F)3 The terminal statement of a DO loop was not found.t3 C55e* ASSIGNMENT TO DO VARIABLE WITHIN LOOP (W)< The control variable of a DO loop has been assigned a value within the loop.R3 C56nC VARIABLE NAME, CONSTANT, OR EXPRESSION ILLEGAL IN THIS CONTEXT (F)mA A quantity has been incorrectly used; for example, the name of aA7 subprogram where an arithmetic expression is required.a3 C57c2 OPERATION NOT PERMISSIBLE ON THESE DATA TYPES (F); An illegal operation, such as .AND. of two real variables, was specified.t3 C58f> LEFT SIDE OF ASSIGNMENT MUST BE VARIABLE OR ARRAY ELEMENT (F)3 C59O SYNTAX ERROR IN I/O LIST (F)f3 C60o: CONSTANT SIZE EXCEEDS VARIABLE SIZE IN DATA STATEMENT (E); The size of a constant in a DATA statement is greater than $ that of its corresponding variable.3 C61f0 STRING CONSTANT TRUNCATED TO MAXIMUM LENGTH (E)C The maximum length of a Hollerith constant or alphanumeric literalE/ is 255 characters; of a Radix-50 constant, 12.s3 C62.> LOWER BOUND GREATER THAN UPPER BOUND IN ARRAY DECLARATION (E)@ The upper bound of a dimension must be greater than or equal to the lower bound.L3 C63f/ FORMAT ITEM CONTAINS MEANINGLESS CHARACTER (E) = An invalid character or syntax error was present in a FORMAT statement.a3 C64a! FORMAT ITEM CANNOT BE SIGNED (E) : A signed constant can appear only with the P format code.3 C65m* UNBALANCED PARENTHESES IN FORMAT LIST (E)3 C66e" MISSING NUMBER IN FORMAT LIST (E) example: FORMAT(F6.)3 C67R EXTRA NUMBER IN FORMAT LIST (E) example: FORMAT(I4,3)e3 C68b EXTRA COMMA IN FORMAT LIST (E)e example: FORMAT(I4,)3 C69u$ FORMAT GROUPS NESTED TOO DEEPLY (E)7 Too many parenthesized format groups have been nested. ' FORMATS can be nested to eight levels.t3 C7067 END= OR ERR= SPECIFICATION GIVEN TWICE, FIRST USED (E)t3 C71p= INVALID I/O SPECIFICATION FOR THIS TYPE OF I/O STATEMENT (F)E; There is a syntax error in the portion of an I/O stat00p}q}t|lu|mx|Oxssement( preceding the I/O list.3 C726B ARGUMENTS INCOMPATIBLE WITH FUNCTION, ASSUMED USER SUPPLIED (E)= The argument list given with a function reference, where the)= function name is one of the PDF names as shown in Table 1-3,t= (F4P User's Guide) does not agree in order, number, and typedE with the requirements of a processor-defined function. The functionR= is assumed to be an EXTERNAL* function supplied by the user.O3 C73T, ENTRY WITHIN DO LOOP, STATEMENT IGNORED (E)D An ENTRY statement is not permitted within the range of a DO loop.3 C74C STATEMENT TOO COMPLEX (F)= The statement is too large to compile, it must be subdividedi into several statements.f3 C75 ! TOO MANY NAMED COMMON BLOCKS (F)w* Reduce the number of named common blocks.3 C76e$ INCLUDE FILES NESTED TOO DEEPLY (F)C Reduce the level of nesting or increase the number of continuationsE lines permitted. Each INCLUDE file requires space for approximatelyY two continuation lines.3 C77D/ DUPLICATED KEYWORD IN OPEN/CLOSE STATEMENT (F)n= A keyword subparameter of the OPEN or CLOSE statement cannotT be specified more than once.m3 C78t$ DO STATEMENTS NESTED TOO DEEPLY (F)/ DO loops cannot be nested more than 10 levels. 3 C79R% DO STATEMENTS INCORRECTLY NESTED (W).> The terminal statements of a nest of DO loops are incorrectly< ordered, or a terminal statement precedes its DO statement.3 C80d2 UNIT= KEYWORD MISSING IN OPEN/CLOSE STATEMENT (W)= The UNIT = subparameter of the OPEN and CLOSE statement mustE be present.3 C81n< LETTER MENTIONED TWICE IN IMPLICIT STATEMENT, LAST USED (E)B An initial letter has been given an implicit type more than once. The last appearance is used.b3 C82d) INCORRECT KEYWORD IN CLOSE STATEMENT (F)N@ A subparameter has been specified in a CLOSE statement that can( be specified only in an OPEN statement.3 C83  MISSING I/O LIST (F)D3 An I/O list was not present where one is required.C3 C84A! OPEN FAILURE ON INCLUDE FILE (F)r: The file specified could not be opened. Possibly the file@ specification is incorrect, the file does not exist, the volume3 is not mounted, or a protection violation occured. 3 C85c" NAME LONGER THAN 6 CHARACTERS (W)6 A symbolic name has been truncated to six characters.3 C86e INVALID VIRTUAL ARRAY USAGE (F)B A virtual array has been used in a context that is not permitted.3 C87I INVALID KEY SPECIFICATION (F)? The key value in a keyed I/O statement must be an alphanumericI6 literal, a BYTE array name, or an integer expression.3 C88i7 NONLOGICAL EXPRESSION WHERE LOGICAL VALUE REQUIRED (F)nB An expression that must be of type LOGICAL was another data type.ured. 3 C85c" NAME LONGER THAN 6 CHARACTERS (W)6 A symbolic name has been truncated to six characters.3 C86e INVALID VIRTUAL ARRAY USAGE (F)B A virtual array has been used in a context that is not permitted.3 C87I INVALID KEY SPECIFICATION (F)? The key value in a keyed I/O statement must be an alphanumericI6 literal, a BYTE array name, or an integer express1!*** F77.CTL - RSTS/E Build Procedure For F77 ***D! Copyright (C) 1981 By Digital Equipment Corporation Maynard, Mass. $PROMPT LB: $PROMPT PATCHG$PROMPT Put the F77 OTS in SYSLIB.OLB or F4POTS.OLB,SYSLIB,8256,,OTSNAM2 SYSLIB=SYSLIB F4POTS=F4POTSD$PROMPT ONLY CREATE A NEW .OLB IF IT'S F4POTS,~OTSNAM:,-8128,,CREOTS2SYSLIB=F4POTS=/CR:150.+$PROMPT IS IT SYSLIB,~OTSNAM:,-8128,,OLDOTS2SYSLIB=F4POTS=$PRO !COMMENT+$PROMPT IS IT F4POTS,~OTSNAM:,-8128,,NEWOTS2SYSLIB=$PRO !COMMENTF4POTS=T;$PROMPT Have F77 use FCS or RMS by default,FCS,8256,,FCSRMSa2qFCS=FCSoRMS=RMS ?$PROMPT LIBRARY NAME IF WE ARE USING RMS,~FCSRMS:,-8128,,USERMS 2 FCS=$PRO !COMMENTrRMS=J$PROMPT Use the LONG or SHORT error text module by default,LONG,8256,,LERR2TLONG= SHORT=$PROMPT !COMMENT@$PROMPT AND IF WE ARE USING THE LONG ERR TXT,~LERR: ,-8128,,SERR2L =$PROMPT !COMMENT~LERR: =$ALLOW FATAL ERRORS !M=! Make sure the RT11 and RSX run-time systems have been added$900q}}-z zx*! (Informational messages will appear if already present)yRUN ~RUNLIB:UTILTYADD RT11ADD RSXEXIT$ALLOW WARNING ERRORSI!E7! Copy required F77 components and optional OTS modulesM! onto the systemP!s;! The F77 Compiler may be customized by editing F77RST.CMD.EE! F77RST.CMD is copied from the distribution medium with the /PROTECT >! switch so that it will not wipe out an edited version of the+! file if it exists in the current account.h8! The patching procedure will allow you to pause to editC! F77RST.CMD (or copy it to this account from a different account).L:! You will be prompted when you may edit or move the file.!oRUN ~RUNLIB:PIP.SAVn*~LIBDEV:[1,2]*<40>=~INPUT:F77COM.MSG/RW:NO+SY:[1,2]*<40>/PR:NO=~LIBDEV:[1,2]F77COM.MSGd8*=~INPDEV:[11,36]F77.OLB,~INPDEV:[11,36]F77RST.ODL/RW:NO+*=~INPDEV:[11,36]F77RST.CMD/RW:NO/PR:NOWARNtB~SYSTEM:*=~INPDEV:[11,37]F4POTS.OBJ,~INPDEV:[11,37]SHORT.OBJ/RW:NO.~SYSTEM:*=~INPDEV:[11,37]~FCSRMS:11M.OBJ/RW:NO!*=~INPDEV:[11,40]F77TST.FTN/RW:NOe&LB:*.*=~INPDEV:[11,40]*.OBJ/RW:NO/HALT&LB:*.*=~INPDEV:[11,40]*.ODL/RW:NO/HALT^Z!l+! Customize the F77 compiler (if necessary)l6! If you wish to change the compiler defaults edit the9! file "F77RST.CMD" as described in the PDP-11 FORTRAN-77.8! Installation Guide. Otherwise type a carriage return.D! Exiting from an editor or typing a carriage return will cause this! procedure to continue.!$WAITO$DETACH!E! Build the F77 OTSC!S)! Note: (When installing into SYSLIB.OLB)/H! If F77 had been previously installed in SYSLIB.OLB then approximately2! 175 messages of the following form will appear.! MODULE "$xxxxx" REPLACEDs=! Where xxxxx represents the various modules replaced in the 1! library. These messages should be disregarded.i!G!e!O!r$ALLOW FATAL ERRORSr $DISABLE LOG~OLDOTS:RUN ~RUNLIB:LBR.TSKa!~OLDOTS:LB:~OTSNAM:.OLB/DE:$ERTXT ~OLDOTS:LB:~OTSNAM:.OLB/DE:$DLRI~OLDOTS:LB:~OTSNAM:.OLB/DE:$FDR7~OLDOTS:LB:~OTSNAM:.OLB/DE:$IKFi~OLDOTS:LB:~OTSNAM:.OLB/DE:$IKUa~OLDOTS:LB:~OTSNAM:.OLB/DE:$RSFS~OLDOTS:LB:~OTSNAM:.OLB/DE:$RSU5!~OLDOTS:LB:~OTSNAM:.OLB/DE:$UNLOCl~OLDOTS:LB:~OTSNAM:.OLB/DE:$DLSA!~OLDOTS:LB:~OTSNAM:.OLB/DE:$ORGIX !~OLDOTS:LB:~OTSNAM:.OLB/DE:$ORGRL !~OLDOTS:LB:~OTSNAM:.OLB/DE:$ORGSQd!~OLDOTS:LB:~OTSNAM:.OLB/DE:$FCSRMW~OLDOTS:LB:~OTSNAM:.OLB/DE:$OTVD ~OLDOTS:^Z $ENABLE LOG$ALLOW WARNING ERRORSERUN ~RUNLIB:LBR.TSK~:~OLDOTS:LB:~OTSNAM:.OLB/CO:200.:2048.:512.=LB:~OTSNAM:.OLB2~LERR:LB:~OTSNAM:.OLB~CREOTS:=~SYSTEM:SHORT.OBJ/RP~LERR:LB:~OTSNAM:.OLB/DG:$ERTXTL0~LERR:LB:~OTSNAM:.OLB=~SYSTEM:~FCSRMS:11M.OBJ/RP8~SERR:LB:~OTSNAM:.OLB~CREOTS:=~SYSTEM:~FCSRMS:11M.OBJ/RP~SERR:LB:~OTSNAM:.OLB/DG:$ERTXTE*~SERR:LB:~OTSNAM:.OLB=~SYSTEM:SHORT.OBJ/RP%LB:~OTSNAM:.OLB=~SYSTEM:F4POTS.OBJ/RPO^Z~NEWOTS:RUN ~RUNLIB:PIP.SAVO~NEWOTS:LB:~OTSNAM:.OLB<40>/RE ~NEWOTS:^Z! ! Patch Procedure for F77 OTS! $DOPAT @~PATLOC:F4POTS.V407! No Patches found for F77 OTS or patching not selected~$BREAK$ALLOW WARNING ERRORS.!P"! Patch Procedure for F77 Compiler!R$DOPAT @~PATLOC:F77CMP.V40<! No Patches found for F77 Compiler or patching not selected$BREAK$ALLOW WARNING ERRORS/!R! Build the F77 Compiler!SRUN ~RUNLIB:TKB.TSK~ _@F77RST.CMDRUN ~RUNLIB:PIP.SAVZ~SYSTEM:F77.TMP<104>=F77.TSK ~SYSTEM:F77.TSK,SY:F77.TSK/DE:NO"~SYSTEM:F77.TSK=~SYSTEM:F77.TMP/REF77.OLB,F77RST.ODL/DE:NO*~SYSTEM:SHORT.OBJ,~SYSTEM:F4POTS.OBJ/DE:NO~SYSTEM:~FCSRMS:11M.OBJ/DE:NOl^Z!B$ALLOW FATAL ERRORSE!R=! Add the following CCL Commands to the system start-up file.T!: RUN $UTILTYoCCL F77=CCL F77-=~SYSTEM:F77.TSKEXIT$ALLOW WARNING ERRORSA!W1! Test the F77 installation with the test programS!B! Note: the following output is expected, including error messages!.!<!>! RUN ~SYSTEM:F77.TSK! F77>F77TST=F77TSTN! F77 -- ERROR 28-E Overflow while converting constant or constant expression+! [I = 71347] in module F77TST at line 6B! F77 -- 1 Error F77TST.FTN;0!E ! F77>^Z! %Ta00q}r}t|lu|mx|Oxsssk exit status: ERRORn! ! RUN ~RUNLIB:TKB.TSK6~NEWOTS:! TKB>F77TST=F77TST,LB:F4POTS/LB,LB:SYSLIB/LB)~OLDOTS:! TKB>F77TST=F77TST,LB:SYSLIB/LB ~USERMS:! TKB>LB:RMSLIB/LBh ! TKB>//r! S! RUN F77TST.TSKo! F77TST -- ERROR 73t~LERR:! FLOATING ZERO DIVIDE.! at PC = ??????Y ! in "F77TST" at or after 6! &! FORTRAN-77 INSTALLATION SUCCESSFUL!! F77TST -- STOPnRUN ~SYSTEM:F77.TSK F77TST=F77TSTu^ZRUN ~RUNLIB:TKB.TSK7/~NEWOTS:F77TST=F77TST,LB:F4POTS/LB,LB:SYSLIB/LBk"~OLDOTS:F77TST=F77TST,LB:SYSLIB/LB~USERMS:LB:RMSLIB/LB//RUN F77TST.TSKRUN ~RUNLIB:PIP.SAV/&F77TST.FTN,F77TST.OBJ,F77TST.TSK/DE:NO^Z!UL! If you wish to further customize the OTS you may do so now. The procedures;! are outlined in the PDP-11 FORTRAN-77 Installation Guide.Y!i! F77 Installation is complete. !R$ALLOW FATAL ERRORSS1 F778 AID F77 FUNCTIONS Will give information about available FUNCTIONS : AID F77 SUBROUTINES Will give information about available SUBROUTINES 4 AID F77 FILEIO Will give information about FILE IO 2 FUNCTIONS = Further information is available for the following functions  % SQRT LOG LOG10 EXP SIN COS TAN ASIN ( ACOS ATAN ATAN2 SINH COSH TANH ABS INT . NINT REAL IFIX FLOAT DFLOAT CMPLX AIMAG CONJ & DPROD MAX MIN DIM MOD SIGN LEN INDEX 1 ICHAR IAND IOR IEOR NOT ISHFT Characterrelation S @ typ AID F77 FUNCTIONS xxxx for more information on any function O8 typ AID F77 FUNCTLIST for an expanded list of functions 3 SQRTA The SQRT function returns the square root of its argument. The @ result of CSQRT or CDSQRT is the principal value with the real B part greater than or equal to zero. When the real part is zero, C the result is the principal value with the imaginary part greater N than or equal to zero.D FORMAT: Length = SQRT(a)8 EXAMPLE: SQRT(-4.0) = i2 SQRT(0.25) = 0.5< RESTRICTIONS: Negative arguments must be COMPLEX, while < positive arguments can be REAL or COMPLEX, = i.e., the argument of SQRT, DSQRT, or QSQRT r? must be greater than or equal to zero.INTEGER p+ arguments are not allowed.r3 LOGi< The LOG function returns the natural logarithm (base e) of  its argument. FORMAT: Answer = LOG(a):@ EXAMPLE: LOG(1.00) = 0.0 LOG(1.0) = 2.718 ? RESTRICTIONS: The argument of ALOG and DLOG must be greater P; than zero. The argument of CLOG or CDLOG = must not be (0.,0.). INTEGER arguments are T not allowed.m3 LOG10t; The LOG10 function returns the common logarithm (base 10) a of its argument.! FORMAT: Answer = LOG10(a)h9 EXAMPLE: LOG10(1.OO) = 0.0 LOG10(100) = 2.OO @ RESTRICTIONS: The argument of ALOG10, DLOG10, QLOG10, must be B greater than zero. COMPLEX or INTEGER arguments are not allowed.3 EXPa: The EXP function returns the exponential of its argument.# FORMAT: Proportion = EXP(a)e: EXAMPLE: EXP(0.O) = 1.O EXP(1.00) = 2.7181 RESTRICTIONS: Argument must be REAL or COMPLEX. 3 SINeB The SIN function returns the trigonometric sine of its argument, > where the argument is expressed in radians. The argument is  treated modulo 2*pi.L FORMAT: Heigth = SIN(a)a9 EXAMPLE: SIN(3.14159) = 0.0 SIN(0.77) = 0.696 7 RESTRICTIONS: The argument of SIN must be in radians.h2 INTEGER arguments are not allowed.3 COS=D The COS function returns the trigonometric cosine of its argument, > where the argument is expressed in radians. The argument is  treated modulo 2*pi.# FORMAT: Projection = COS(a)eB EXAMPLE: COS(-3.14159) = -1.0 COS(4.77) = 0.05767 RESTRICTION00r}}-z zx*S: The argument of COS must be in radians.2 INTEGER arguments are not allowed.3 TANE The TAN function returns the trigonometric tangent of its argument, F where the argument is expressed in radians. The argument is treated modulo 2*pi.m FORMAT: Ratio = TAN(a)A EXAMPLE: TAN(-3.14159) = 0.0 TAN(4.77) = -17.3d7 RESTRICTIONS: The argument of TAN must be in radians.E2 INTEGER arguments are not allowed.3 ASINE The ASIN function returns (in radians) the arcsine of its argument. D The range of the result is: -90 .LE. result .LE. 90 (result is expressed in radians).i FORMAT: ANGLE = ASIN(a)e8 EXAMPLE: ASIN(1.0) = 1.57 ASIN(0.00) = 0.0C RESTRICTIONS: The absolute value of the argument of ACOS must be = less than or equal to 1. INTEGER or COMPLEX C* arguments are not allowed.3 ACOSG The ACOS function returns (in radians) the arccosine of its argument. iE The range of the result is: 0 .LE. result .LE. 180 (expressed in h radians). FORMAT: ANGLE = ACOS(a)l9 EXAMPLE: ACOS(1.0) = 0.0 ACOS(0.00) = 1.57NC RESTRICTIONS: The absolute value of the argument of ACOS must be S< less than or equal to 1. INTEGER or COMPLEX* arguments are not allowed.3 ATANG The ATAN function returns (in radians) the arctangent of its argument.AA The range of the result is: -90 < result < 90 (expressed in radians ). FORMAT: Angle3 = ATAN(a)8 EXAMPLE: ATAN(1.00) = 0.785 ATAN(0.00) = 0.0: RESTRICTIONS: INTEGER or COMPLEX values are not allowed.3 ATAN2E The ATAN2 function returns (in radians) the arctangent of the ratio D of its arguments. If the value of the first argument is positive, B the result is positive. When the value of the first argument is C zero the result is zero if the second argument is positive and pi e@ if the second argument is negative. If the value of the first C argument is negative the result is negative. If the value of the E second argument is zero, the absolute value of the result is pi/2. o@ Both arguments must not have the value zero. The range of the B result for ATAN2 is: -180 .LT. result .LE. 180 (answer is expressed in radians).i# FORMAT: Angle3 = ATAN2(a,b)t= EXAMPLE: ATAN2(4.,4.) = 0.785 ATAN2(0.0,-2.0) = 3.1h= ATAN2(-1.,0.) = -1.57 ATAN2(4.,-4.) = 0.785 F RESTRICTIONS: Both arguments must not have the value zero. INTEGER 2 or COMPLEX values are not allowed.3 SINHA The SINH function returns the hyperbolic sine of its argument. t" FORMAT: Solution = SINH(a)! EXAMPLE: SINH(1.00) = 1.18 = RESTRICTIONS: INTEGER or COMPLEX arguments are not allowed.R3 COSHA The COSH function returns the hyperbolic cosine of its argument.N" FORMAT: Solution = COSH(a)( EXAMPLE: COSH(1.000) = 1.54 : RESTRICTIONS: INTEGER or COMPLEX values are not allowed.3 TANHB The TANH function returns the hyperbolic tangent of its argument." FORMAT: Solution = TANH(a) EXAMPLE: TANH(1.0) = 0.8R: RESTRICTIONS: INTEGER or COMPLEX values are not allowed.3 ABSD The ABS function returns the absolute value of its argument. (The < absolute value of a complex number (a,b) is the real value: (a**2 + b**2)**0.5 .) u FORMAT: Amount = ABS(a)O4 EXAMPLE: ABS(-5.) = 5. ABS(5.) = 5.7 ABS(0.) = 0. ABS(3.,4.) = 5.i3 INTs? The INT, AINT functions truncate the fractional part of their n? argument toward zero. The functions returns INTEGER*4 values > if the /I4 command qualifier is in effect, INTEGER*2 values & if the /NOI4 qualifier is in effect.  FORMAT: Iapprox = INT(a)7 EXAMPLE: INT(5.634) = 5 INT(-2.99) = -223 NINT7 The NINT, ANINT functions return the value that is the D nearest integer t00r~}t|lu|mx|Oxsso the argument, rounding up if the fractional partC of the argument is .5 or greater, and down otherwise. This can becC expressed as: [a + .5*sign(a)] , where "a" denotes the argument.iD The functions return INTEGER*4 values if the /I4 command qualifier D is in effect, INTEGER*2 values if the /NOI4 qualifier is in effect.! FORMAT: Iapprox = NINT(a)E7 EXAMPLE: NINT(-5.5) = -6 NINT(.4999) = 0 / RESTRICTIONS: COMPLEX values are not allowed. 3 REALF The REAL function converts its argument into a REAL*4. The function B provides the same effect as the implied conversion in assignment D statements. The function returns a REAL*4 argument without conver- sion. FORMAT: Xreal = REAL(a)  EXAMPLE: (for K=2, L=3): I = J*(K/L) = 0 while J*(REAL(K)/L) = 1.( REAL(K)/L = 0.6666 C NOTE: Care should be employed in using the REAL function;IG it entails conceptual subtleties. REAL conversions arenB used primarily in subroutine calls and in forcing . computation in floating point.3 IFIXG The IFIX function takes a REAL*4 and converts it to an INTEGER. This R@ function provides the same effect as the implied conversion in F assignment statements. The function returns INTEGER*4 values if the C /I4 command qualifier is in effect, INTEGER*2 values if the /NOI4  qualifier is in effect.! FORMAT: Iapprox = IFIX(a)t! EXAMPLE: IFIX(40.000) = 40n( RESTRICTIONS: Argument must be REAL*4.3 FLOATdC The FLOAT function takes an INTEGER and converts it to a REAL*4. B This function provides the same effect as the implied conversion  in assignment statements. FORMAT: Xreal = FLOAT(a) EXAMPLE: FLOAT(4) = 4.02 RESTRICTIONS: Arguments must be of type INTEGER.3 DFLOATB The DFLOAT function takes an INTEGER and converts it to a REAL*8.D This function provides the same effect as the implied conversion in assignment statements.I FORMAT: Xreal = FLOAT(a) EXAMPLE: FLOAT(4) = 4.02 RESTRICTIONS: Arguments must be of type INTEGER.3 CMPLXiD The CMPLX function returns its argument of any type as a COMPLEX*8.E When the function has only one argument, this argument is converted 0? the real part of a complex value, and zero is assigned to the TF imaginary part; when there are two arguments (not complex), a complexE value is produced by conversion of the first argument into the real a@ part of the value, the second argument into the imaginary part.! FORMAT: Xcompl = CMPLX(a)C= EXAMPLE: CMPLX(4) = (4.,0.) CMPLX(4,2) = 4 + i2P3 AIMAG G The AIMAG function returns the imaginary part of its complex argument,l8 as a REAL*4. (DIMAG returns the argument as a REAL*8.)G FORMAT: Xreal = AIMAG(a) (where "a" is a complex number)h! EXAMPLE: AIMAG(4.,2.) = 2.a= RESTRICTIONS: Argument must be a COMPLEX*8 or a COMPLEX*16.i3 CONJA The CONJ function returns the complex conjugate of its argument..> (The complex conjugate of a complex number a+ib is a-ib .)G FORMAT: Xstar = CONJ(a) (where "a" is a complex number) , EXAMPLE: CONJ(2.0, 4.0) = (2.0, -4.0)+ RESTRICTIONS: Argument must be a COMPLEX.e3 DPRODLB The DPROD function takes two REAL*4 arguments, and returns their  product as a REAL*8. " FORMAT: Area= DPROD(a1,a2)! EXAMPLE: DPROD(2.,4.) = 8. - RESTRICTIONS: Arguments are of type REAL*4.t3 MAXcC The MAX function returns the maximum value from among the argumentx list.) FORMAT: Xlarge = MAX(a1,a2,...aN) % EXAMPLE: MAX(5.,7.,0.,4.) = 7.u? RESTRICTIONS: There must be at least two arguments. COMPLEX I+ arguments are not allowed. L3 MINDC The MIN function returns the minimum value from among the argumenta list.) FORMAT: Xsmall = MIN(a1,a2,...aN)% EXAMPLE: MIN(5.,7.,1.,4.) = 1.S? RESTRICTIONS: Ther00r ~}-z zx*e must be at least two arguments. COMPLEX n+ arguments are not allowed. e3 DIMx? The DIM function returns the first of two arguments minus the ; minimum of the two arguments, i.e., the function returns A a1-(min(a1,a2)) , where a1 and a2 denote the respective 1st and o 2nd arguments. " FORMAT: Xdiff = DIM(a1,a2)7 EXAMPLE: DIM(5.,2.) = 3. DIM(2.,5.) = 0. 2 RESTRICTIONS: COMPLEX arguments are not allowed.3 MOD.C The MOD function returns the remainder when the first argument is MA divided by the second i.e., the function returns a1-a2*[a1/a2] T= where a1 and a2 denote the respective 1st and 2nd arguments.# FORMAT: Xwhole = MOD(a1,a2)e7 EXAMPLE: MOD(8,3) = 2 MOD(8.,4.) = 0.n2 RESTRICTIONS: COMPLEX arguments are not allowed.3 SIGND The SIGN function transfers the sign of the second argument to the & absolute value of the first argument.% FORMAT: Xtrans = SIGN(a1, a2)MF EXAMPLE: SIGN(5,-2)=-5 SIGN(-5,-2)=-5 SIGN(-5,2) = 52 RESTRICTIONS: COMPLEX arguments are not allowed.3 LENeB The LEN function returns the length of the argument, a character C expression. The function will return INTEGER*4 values if the /I4 ? command qualifier is in effect, INTEGER*2 values if the /NOI4 lE qualifier is in effect. The value returned indicates how many bytes  there are in the function.a FORMAT: Xlen = LEN(c)R> (where "c" is a character expression.)( EXAMPLE: LEN(NAMES(2,3)(1:7)) = 73 RESTRICTIONS: Argument must be of type CHARACTER.3 INDEXT> The INDEX function searches for a substring (first argument) ? in a specified character string (second argument), and, if it 47 finds the substring, returns the substring's starting t< position. If the second argument occurs more than once in 8 the first argument, the starting position of the first ; (leftmost) occurence is returned. If the second argument "9 does not occur in the first argument, the value zero is ,= returned. The function returns INTEGER*4 values if the /I4 T? command qualifier is in effect, INTEGER*2 values if the /NOI4 ( qualifier is in effect.& FORMAT: Xorder = INDEX(c1, c2)< (where c1 is a character expression ? specifying the string to be searched n? for the substring specified by c2, and@ c2 is a character expression specifying> the substring for which the starting 6 location is to be determined) 4 RESTRICTIONS: Arguments must be of type CHARACTER.3 ICHAReF The ICHAR function converts a character expression to its equivalent A ASCII code and returns the ASCII value. If the character to beiD converted is longer than one byte, only the value of the first byte) is returned; the remainder is ignored.   FORMAT: ICHAR(c)F (where "c" is the character to be converted to' an ASCII code)o3 RESTRICTIONS: Argument must be of type CHARACTER.:3 IAND u; The IAND function (bitwise AND) performs a logical AND on o< corresponding bits, i.e., corresponding bits of answer will< be TRUE if and only if corresponding bits of both arguments are TRUE.F 76|543|210 (bit #)> FORMAT: FORM = IAND(x,y) __|___|___= | | G EXAMPLE: IAND('134'O , '021'O) = '020'O 01|011|100 ('134'O)mG 00|010|001 ('021'O))> (Only bit 4 is set __|___|___G to 1 in both arguments; 00|010|000 ('020'O) 9 therefore the result ( will contain a single" "1", as bit #4.( In base 10, 92 and 17* 00r~}t|lu|mx|Oxss have resulted in 16. )A RESTRICTIONS: Arguments must be of type INTEGER*2 or INTEGER*4,1< containing up to 16 or 32 bits. However, toE facilitate display, the example shows only the first + eight bits of each integer.r3 IOR  E The IOR function (bitwise OR) performs a logical OR on corresponding @ bits, i.e., corresponding bits will be TRUE if either, or both / corresponding bits of both arguments are TRUE.aF FORMAT: FORM = IOR(x,y) 76|543|210 (bit #)> __|___|___G EXAMPLE: IOR('134'O,'021'O) = '135'O 01|011|100 ('134'O)aG 00|010|001 ('021'O)h> (Bits 1,5,7, of the __|___|___G result remain 0.In 01|011|101 ('135'O)g# base 10, 92 and 17 & have resulted in 93.)B RESTRICTIONS: Arguments must be of type INTEGER*2 or INTEGER*4, H containing up to 16 or 32 bits. However, to facilitate G display, the example shows only the first eight bits of4 each integer. 3 IEOR F The IEOR function (bitwise exclusive OR) performs a logical exclusiveD OR on corresponding bits, i.e., corresponding bits will be TRUE if E either, but not both, corresponding bits of both arguments are TRUE. F 76|543|210 (bit #)> FORMAT: FORM = IEOR(x,y) __|___|___= | | aG EXAMPLE: IEOR('134'O , '021'O) = '115'O 01|011|100 ('134'O)iG 00|010|001 ('021'O)s> (Note the fourth bit of __|___|___G result is 0. In base 10, 01|001|101 ('115'O)b( 92 and 17 have resulted in 77.)F RESTRICTIONS: Arguments must be of type INTEGER*2 or INTEGER*4, con-D taining up to 16 or 32 bits. However, to facilitateE display, the example shows only the first eight bits 0 of each integer.3 NOT  C The NOT function (bitwise complement) complements each bit of its > argument. It will therefore return a negative result from a  positive argument.  FORMAT: FORM = NOT(x) - EXAMPLE: NOT('000167'O)='37777777610'O ; (In base 10, 119 has been changed to -120.)*- NOT('112345'O)='37777665432'Ot? (In base 10, -38117 has been changed to 38118.),* NOT('0'O) = '37777777777'O7 (In base 10, 0 has been changed to -1.)T2 RESTRICTIONS: Arguments must be of type INTEGER.3 ISHFTg n? The ISHFT function (bitwise shift) logically shifts its first 8 argument left an amount denoted by the second argument.E 76|543|210 (bit #)s= FORMAT: FORM = ISHFT(x,y) __|___|___7< | | F EXAMPLE: ISHFT('334'O,-2) = '067'O 11|011|100 ('334'O)= __|___|___:F (Bit #5 becomes bit #7, 00|110|111 ('067'O)' bit #4 becomes bit #6,rG and so on. The first two bits become zero, while the E last two are "pushed off". In base 10, 92 has been : changed to 55.)A RESTRICTIONS: Arguments must be of type INTEGER*2 or INTEGER*4, G containing up to 16 or 32 bits. However, to facilitate0G display, the example shows only the first eight bits of: each integer.e3 CharacterrelationalsAASCII collating sequence. The four lexical comparison functions provided are: 9 * LLT, where LLT(x,y) is equivalent to (x .LT. y) 9 * LLE, where LLE(x,y) is equ00r~}-z zx*ivalent to (x .LE. y) 9 * LGT, where LGT(x,y) is equivalent to (x .GT. y)u9 * LGE, where LGE(x,y) is equivalent to (x .GE. y)t FORMAT: func(c,c)HC (where "func" is one of the symbolic names:l= LLT, LLE, LGT, or LGE; and "c" is a . character expression) EXAMPLE: CHARACTER*10 CH2* IF (LGT(CH2,'SMITH')) STOP 2 FUNCTLISTe8 SQRT Returns the square root of its argument.G LOG Returns the natural logarithm (base e) of its argument.GG LOG10 Returns the common logarithm (base 10) of its argument.AE SIN Returns the trigonometric sine of its argument, where 1 argument is expressed in radians.,F COS Returns the trigonometric cosine of its argument where1 argument is expressed in radians. G TAN Returns the trigonometric tangent of its argument where 1 argument is expressed in radians. A ASIN Returns (in radians) the arcsine of its argument.OC ACOS Returns (in radians) the arccosine of its argument.  D ATAN Returns (in radians) the arctangent of its argument.< SINH Returns the hyperbolic sine of its argument.> COSH Returns the hyperbolic cosine of its argument.? TANH Returns the hyperbolic tangent of its argument.g; ABS Returns the absolute value of its argument.eA INT Returns the largest integer (truncating to zero).t, NINT Returns the nearest integer.. REAL Converts argument into REAL*4.. DBLE Converts argument into REAL*8.6 IFIX Converts REAL*4 argument into INTEGER.6 FLOAT Converts INTEGER argument into REAL*4.6 DFLOAT Converts INTEGER argument into REAL*8.4 CMPLX Converts argument(s) into COMPLEX*8.B AIMAG Returns real part of COMPLEX argument as a REAL*8.> CONJ Returns complex conjugate of COMPLEX argument.; DPROD Returns REAL*8 product of REAL*4 arguments. B MAX Returns the maximum value from among the argument  list. B MIN Returns the minimum value among the argument list.C DIM Returns the first argument minus the minimum of thea two arguments.@ MOD Returns the remainder when the first argument is& divided by the second.A SIGN Returns the absolute value of the first argument,n1 giving it the sign of the second.LF IAND Bitwise AND. Performs a logical AND on corresponding  bits. F IOR Bitwise OR. Performs an inclusive OR on corresponding bits. B IEOR Bitwise exclusive OR. Performs an exclusive OR on# corresponding bits.e: NOT Bitwise Complement. Complements each bit.C ISHFT Bitwise shift. Logically shifts first argument by o9 an amount denoted by the second argument.o; LEN Returns length of the character expression.lE INDEX Returns the position of the second argument substring 0 in the first argument substring.8 ICHAR Returns the ASCII value of the argument. 2 SUBROUTINEScA The PDP-11 FORTRAN system provides subroutines you call in the * same manner as user-written subroutines.  ? Further information is available for the following subroutines   ( DATE IDATE ERRSNS EXIT SECNDS TIME RAN  C typ AID F77 SUBROUTINES xxx for more information on any subroutine8 typ AID F77 SUBLIST for an expanded list of subroutines3 DATE= The DATE subroutine obtains the current date as set within C, the system. The call to DATE has the form: CALL DATE(buf)9 (Where "buf" is a 9-byte variable, array e2 element, or character substring.)= The date is return00r"~}t|lu|mx|Oxssed as a 9-byte ASCII character string of i the form: dd-mm-yy> (Where "dd" is the 2-digit date, "mmm" is the ? 3-letter month specification, and "yy" is the d. last two digits of the year.)3 IDATEbD The IDATE subroutine returns three integer values representing the@ current month, day, and year. The call to IDATE has the form: CALL IDATE(i,j,k)yE (If the current date were October 9, 1985, the values ? of the integer variables upon return would be: i = 10 j = 9" k = 85 .)3 ERRSNSA The ERRSNS subroutine returns information about the most recento@ error that has occured during program execution. The call to  ERRSNS has the form:9 CALL ERRSNS(fnum, rmssts, rmsstv, iunit, condval)s? where: "fnum" is an integer variable or array element u= into which is stored the most recent FORTRAN o< run-time error number. (See VAX-11 FORTRAN > USER'S GUIDE for listing of error numbers). A9 zero is returned if no error has occurred 1 since the start of the execution.  @ "rmssts" is an integer variable or array element> into which is stored the RMS completion status< code (STS), if the last error was an RMS I/O error. @ "rmsstv" is an integer variable or array element? into which is stored the RMS status value (STV)r= if the last error was an RMS I/O error. Thisd) status value provides additional status  information.? "iunit" is an integer variable or array elementn/ into which is stored the logical unit number, % if the last error was an I/O error.oA "condval" is an integer variable or array elementO2 into which is stored the actual VAX-11 condition value.< Any of the arguments may be null. If the arguments are of@ INTEGER*2 type, only the low-order 16 bits of information are > returned. The saved error information is set to zero after  each call to ERRSNS.3 EXITC The EXIT subroutine caused program termination, closes all files,wB and returns control to the operating system. A call to EXIT has the form: CALL EXIT(exit-status)= (Where "(exit-status") is an optional integera2 argument which may be used to specify the image exit-status value.)3 SECNDSC The SECNDS function subprogram returns the system time in secondsrC as a single-precision, floating-point value less the value of its C single-precision floating-point argument. The call to SECNDS hasm the form:  y = SECNDS(x) > (Where "y" is set equal to the time in seconds1 since midnight, minus the user-supplied value of x.)W9 The SECNDS function can be used to perform elapsed-timec computations. For example:a% C START OF TIMED SEQUENCE T1 = SECONDS(0.0)r C CODE TO BE TIMED! DELTA = SECNDS(T1) o9 (Where DELTA will give the elapsed time.)-> The value of SECNDS is accurate to 0.01 second, which is the! resolution of the system clock.e NOTESq? 1. The time is computed from midnight. SECNDSi= also produces correct results for time intervals that span p midnight.d? 2. The 24 bits of precision provides accuracy T: to the resolution of the system clock for about one day.< However, loss of significance can occur if computations of9 very small elapsed times are attempted late in the day.-7 More precise timing information can be obtained usingc Run-Time Library procedures: LIB$INIT_TIMER LIB$SHOW_TIMER LIB$STAT_TIMER3 TIME; The TIME subroutine returns the current system time as ans; ASCII string. A 24-hour clock00r*~}-z zx* is used. The call to TIMEf has the form:e CALL TIME(buf): (Where "buf" is an 8-byte variable, array,* array element, or character substring.)= The TIME call returns the time as an 8-byte ASCII character string of the form:n hh:mm:ss; (Where "hh" is the 2-digit hour indication,N. "mm" is the 2-digit minute indication, "ss") is the 2-digit second indication. For example:u# 10:29:59 )g3 RANo> The RAN function is a general random number generator of the5 multiplicative congruential type. The result is a t= floating-point number that is uniformly distributed in the < range between 0.0 inclusive and 1.0 exclusive. The call to RAN has the form:o y = RAN(i)@ (Where "y" is set equal to the value associated,/ by the function, with the argument "i". The - argument must be an INTEGER*4 variable of a INTEGER*4 array element.)> The argument should initially be set to a large, odd integer@ value. The RAN function stores a value in the argument that it1 later uses to calculate the next random number.n> There are no restrictions on the seed, although it should be@ initialized with different values on separate runs in order to7 obtain different random numbers; the seed is updateda@ automatically. RAN uses the following algorithm to update the seed passed as the parameter:a1 SEED = 69069 * SEED + 1 (MOD 2**32) .e? The value of SEED is a 32-bit number whose high-order 24 bitsN= are converted to floating point and returned as the result.t8 A Transfers character or Hollerith values.@ BN Specifies that embedded and trailing blanks in a( numeric input field are to be ignored.@ BZ Specifies that embedded and trailing blanks in a1 numeric input field are to be treated as zeros.tC D Transfers real values (D exponent field indicator). C E Transfers real values (E exponent field indicator).-& F Transfers real values.C G Transfers real values: on input, acts like F code;c4 on output, acts lke E code or F code, depending on the magnitude of the value.kA H Transfers data between the H field descriptor andp an external record.n1 I Transfers decimal integer values.b< L Transfers logical data: on input, transfers* characters; on output, transfers T or F.' O Transfers octal values. A Q Obtains the number of characters remaining to be ! transferred in an input record.t= S Reinvokes optional plus characters in numerice3 output fields: counters the action of SP and SS. > SP Writes plus characters that would otherwise be& optional into numeric output fields.> SS Suppresses optional plus characters in numeric output fields.0 T Specifies positional tabulation.5 TL Specifies relative tabulation (left). 6 TR Specifies relative tabulation (right).> X Specifies that n characters are to be skipped.- Z Transfers hexadecimal values.d= $ Suppresses carriage return during interactivep I/O.< : Terminates format control if the I/O list is exhausted.: '+' Carriage control character. Overprinting.< ' ' Carriage control character. Single spacing.< '0' Carriage control character. Double spacing.4 '1' Carriage control character. Paging. ASCIINUL9 Carriage control character. Overprinting  with no advance.3 AaA The A field descriptor transfers character or Hollerith values.v It has the form: A[w]> The corresponding I/O list elements can be of any data type.A If it is of character data type, character data is transmitted.eA If it is of any other data type, Hollerith data is tra00r2~}t|lu|mx|Oxssnsmitted.n7 The value of "w" must be less than or equal to 32767.e@ The maximum number of characters that can be stored depends on# the size of the I/O list element.n@ If "w" is omitted in an A field descriptor, a default value is? supplied. If the I/O list element is of character data type, > the default value is the length of the I/O list element. If< the I/O list element is of numeric data type, the default> value is the maximum number of characters that can be stored" in a variable of that data type.3 BN: The BN descriptor causes the processor to ignore all the= embedded and trailing blanks it encounters within a numeric input field. It has the form: BN8 The effect is that of actually removing the blanks and> right-justifying the remainder of the field. A field of all< blanks is treated as zero. The BN descriptor affects only9 I, O, Z, F, E, D, and G editing, and then only upon them" execution of an input statement.3 BZ9 The BZ descriptor causes the processor to treat all theo= embedded and trailing blanks it encounters within a numericn) input field as zeros. It has the form:  BZ8 The BZ descriptor affects only I, O, Z, F, E, D, and G7 editing; and then only upon the execution of an inputm statement.3 CARRIAGECONTROLl6 The first character of every record transferred to a8 printer is not printed. Instead, it is interpreted as6 a carriage control character (except when overridden8 by the OPEN statement keyword CARRIAGECONTROL = 'LIST'0 or 'NONE'). The I/O system recognizes certain/ characters, listed below, as carriage control  characters. 8 '+' Overprinting: starts output at the beginning of0 the current line and returns to the left margin after printing.8 ' ' (blank space) Single spacing: starts output at the beginning of the next line.5 '0' Double spacing: skips a line before startings output.8 '1' Paging: starts output at the top of a new page.5 '$' Prompting: starts output at the beginning of)1 the next line, and suppresses carriage return at  the end of the line.g ASCII NULh7 Overprinting with no advance: starts output ath/ the beginning of the current line and does nott* return to the left margin after printing.3 :s4 The colon character (:) in a format specification 4 terminates format control if no more items are in 3 the I/O list. The : descriptor has no effect ifs& I/O list items remain. For example: PRINT 1,3 PRINT 2,4) 1 FORMAT (' I=',I2,' J=',I2) + 2 FORMAT (' K=',I2,:,' L=',I2) 5 These statements print the following two lines (thet& two carats designate blank spacing): vr I= 3 J= K= 4 ^ 3 D 2 The D field descriptor transfers real values in % exponential form. It has the form:e Dw.d4 The corresponding I/O list element must be of real1 data type, or it must be either the real or the30 imaginary part of a complex type. In an input2 statement, the D field descriptor transfers "w" 0 characters from the external field and assigns4 them as a real value to the corresponding I/O list3 element. The F and E field descriptors interpret * and assign data in exactly the same way.4 In an output statement, the D field descriptor has4 the same effect as the E field descriptor, except 1 that the D exponent field indicator is used in a place of the E indicator. 8 The default values depend on the data type of the I/O 7 list element. For REAL, and COMPLEX*8 list elements, 5 the respective default values for "w", "d", and "e"h4 are 15, 7, and 2. For REAL*8, and COMPLEX*16 list5 elements, they are 25, 16, and 2. For REAL*16 list # elements, they are 42, 33, and 3.3 $a: The dollar sign character ($) in a format specification 6 modifies the carriage control specified by the first5 character of the rocord, for files00r:~}-z zx* with the FORTRAMd6 carriage control attribute. In an output statement,6 if the first character of the record is a space, the4 $ descriptor suppresses the carriage return. This3 means that for terminal I/O a typed response willd3 follow the output on the same line. If the first 3 character of the record is a plus sign (+), the $35 descriptor causes the output to begin at the end ofa8 the previous line and leaves the print position at the0 end of the line. In an input statement, the $ descriptor is ignored.1 See VAX-11 FORTRAN Reference Guide for example. 3 EfC The E field descriptor transfers real values in exponential form.  It has the form: Ew.d[Ee]B The corresponding I/O list element must be of real data type, or? it must be either the real or the imaginary part of a complexh: data type. In an input statement, the E field descriptor> transfers "w" characters from the external field and assignsB them as a real value to the corresponding I/O list element. The? F field descriptor interprets and assigns data in exactly the same way.l? For REAL, and COMPLEX*8 list elements, the respective defaulttA values for "w", "d", and "e" are 15, 7, and 2. For REAL*8, andt@ COMPLEX*16 list elements, they are 25, 16, and 2. For REAL*16( list elements, they are 42, 33, and 3.3 FpA The F field descriptor transfers real values. It has the form:r Fw.dB The corresponding I/O list element must be of real data type, or? it must be either the real or the imaginary part of a complexi data type.> In an input statement, the F field descritpor transfers "w" A characters from the external field and assigns them, as a real 7> value, to the corresponding I/O list element. If the first @ nonblank character of the external field is a minus sign, the> field is treated as a negative value. If the first nonblank@ character is a plus sign, or if no sign appears in the field, ? the field is treated as a positive value. An all-blank fielde is treated as a value of zero.@ If the field contains neither a decimal point nor an exponent,= it is treated as a real number of "w" digits, in which the g> rightmost "d" digits are to the right of the decimal point, 8 with leading zeros assumed if necessary. If the field: contains an explicit decimal point, the location of that= decimal point overrides the location specified by the fieldr? descriptor. If the field contains an exponent, that exponento> is used to extablish the magnitude of the value before it is assigned to the list element.eG For REAL, and COMPLEX*8 list elements, the respective default values F for "w", "d", and "e" are 15, 7, and 2. For REAL*8, and COMPLEX*16 @ list elements, the values are 25, 16, and 2. For REAL*16 list# elements, they are 42, 33, and 3.c3 GiB The G field descriptor transfers real values in a form that, in C effect, combines the F and E field descriptors. It has the form:  Gw.d[Ee]B The corresponding I/O list element must be of real data type, or? it must be either the real or the imaginary part of a complexs< data type. In an input statement, the G field descriptor > transfers "w" characters from the external field and assignsB them as a real value to the corresponding I/O list element. The< F, D, and E field descriptors interpret and assign data in exactly the same way. ? For REAL, and COMPLEX*8 list elements, the respective defaultA values for "w", "d", and "e" are 15, 7, and 2. For REAL*8, andm> COMPLEX*16 list elements, the values are 25, 16, and 2. For0 REAL*16 list elements, they are 42, 33, and 3.C See VAX-11 FORTRAN Reference Guide for additional specifications.f3 H C The H field descriptor transfers data between the external record D and the H field descriptor itself. It has the form of a Hollerith constant:n nHc1,c2,c3,...cN< (Where "n" is the number of characters to be0 transferred, and "00rB~}t|lu|mx|Oxssc" is an ASCII character.); In an input statement, the H field descriptor transfers naB characters from the external field to the field descriptor. The? first character appears immediately after the letter H. Any f@ character in the field descriptor before input are replaced by the input characters.G In an output statement, the H field descriptor transfers n characterssB following the letter H from the field descriptor to the external field.3 IcF The I field descriptor transfers decimal integer values. It has theform:t Iw.[.m]oA The corresponding I/O list element must be of either integer orc logical data type.= In an input statement, the I field descriptor transfers "w"c= characters from the external field and assigns them to the ; corresponding I/O list element as an integer value. The e; external data must have the form of an integer constant; o6 it cannot contain a decimal point or exponent field.> If the value of the external field exceeds the range of the = corresponding list element, an error occurs. If the first d@ nonblank character of the external field is a minus sign, the ? field is treated as a negative value. If the first nonblank-r? character is a plus sign, or if no sign appears in the field,t? the field is treated as a positive value. An all-blank fielde is treated as a value of zero. A See VAX-11 FORTRAN Reference Guide for transfer specifications n and examples.fC The default value of "w" is 7 for BYTE, INTEGER*2, and LOGICAL*2 dB list elements, and 12 for INTEGER*4 and LOGICAL*4 list elements.3 L B The L field descriptor transfers logical data. It has the form: LwB The corresponding I/O list element must be of either integer or  logical data type.G In a input statement, the L field descriptor transfers "w" charactersdC from the external field. If the first nonblank characters of thetA field are T, t, .T, or .t, the value .TRUE. is assigned to the fF corresponding I/O list element; if the first nonblank characters areG F, f, .F or .f, the value .FALSE. is assigned. An all-blank field isiD assigned the value .FALSE.. Any other value in the external field@ produces an error. Note that the logical constants .TRUE. and% .FALSE. are acceptable input forms.e: The default value of "w" for LOGICAL list elements is 2.@ See VAX-11 FORTRAN Reference Guide for transfer specifications and examples.r3 OeB The O field descriptor transfers octal (base 8) values, and can / be used with any data type. It has the form:o Ow[.m]B The default value of "w" is 7 for BYTE, INTEGER*2, and LOGICAL*2= list elements; 12 for INTEGER*4, LOGICAL*4, and REAL*4 list.@ elements; 23 for REAL*8 list elements; and 44 for REAL*16 list elements.rD See VAX-11 FORTRAN Reference Guide for transfer specifications and examples.R3 QfE The Q edit descriptor obtains the number of characters in the inputhE record remaining to be transferred during a READ operation. It hase the form:t QaC The corresponding I/O list element must be of integer or logical Y data type. For example:B READ (4,1000) XRAY, KK, NCHRS, (ICHR(I), I=1, NCHRS)& 1000 FORMAT (E15.7,I4,Q,80A1)A These input statements read two fields into the variables XRAY e? and KK. The number of characters remaining in the record is B stored in NCHRS, and exactly that many characters are read into B the array ICHR. By placing the Q descriptor first in the formatA specification, you can determine the actual length of the inputm record. D In an output statement, the Q edit descriptor has no effect except5 that the corresponding I/O list element is skipped. 3 S B The S edit descriptor reinvokes optional plus characters (+) in * numeric output fields. It has the form: St= The S descriptor counters the action of either the SP or SSt< descriptor by restoring to the processor the discr00rJ~}-z zx*etion of1 producing plus characters on an optional basis.c> The S descriptor affects only I, F, E, D, and G editing, and2 then only upon execution of an output statement.3 SPC An SP descriptor causes the processor to produce a plus character= (+) in any position where this character would otherwise bec optional. It has the form:f SP E The SP descriptor affects only I, F, E, D, and G editing, and thent- only upon execution of an output statement.p3 SSC The SS descriptor causes the processor to suppress a leading plusE character (+) from any position where this character would normallynE be produced as an optional charactrer; it has the opposite effect t> of the SP field descriptor. The SS descriptor has the form: SS G The descriptor affects only I, F, E, D, and G editing, and then only ( upon execution of an output statement.3 P,G The scale factor lets you alter, during input or output, the locationeF of the decimal point in real values and in the two parts of complex values.u The scale factor has the form: nPD (Where n is a signed or unsigned integer constant in0 the range -127 through 127. It specifies the6 number of positions, to the left or right, that the decimal point is to move.)nC A scale factor can appear anywhere in a format specification, buttB must precede the first field descriptor that is to be associated with it. For example:> nPFw.d nPEw.d nPDw.d nPGw.dC On input, the scale factor in any of the above field descriptors PC multiplies the data by 10**-n and assigns it to the correspondingnB I/O element. For example, a 2P scale factor multiplies an inputC value by .01, moving the decimal point two places to the left. An? -2P scale factor multiplies an input value by 100, moving thenB decimal point two places to the right. However, if the external> field contains an explicit exponent, the scale factor has no effect. D If a second scale factor appears in the FORMAT statement, it takes& control from the first scale factor.D See VAX-11 FORTRAN Reference Guide for complete specifications and examples.2 3 SEPARATORSE Field descriptors in a format specification are generally separatedoB by commas. You can also use the slash (/) record terminator to D separate field descriptors. A slash terminates input or output of> the current record and initiates a new record. For example:! WRITE (6,40) K,L,Mn 40 FORMAT (3I6,6)O! WRITE (6,50) N,O,P 50 FORMAT (I6,2F8.4)C Multiple slashes can be used to bypass input records or to outputxC blank records. If n consecutive slashes appear between two fieldtE descriptors, (n-1) records are skipped on input, or (n-1) blank re-(C cords are output. The first slash terminates the current record;iD the second slash terminates the first skipped or blank record, andA so on. However, n slashes at the beginning or end of a format 0? specification result in n skipped or blank records. This is ; because the opening and closing parentheses of the format E specification are themselves a record and terminator, respectively.s For example: WRITE (6,99)@ 99 FORMAT ('1',t51,'HEADING LINE'//T51,/SUBHEADING LINE'//)4 The above statements procude the following output:> HEADING LINE4 (blank line)A SUBHEADING LINE 4 (blank line)4 (blank line)A (With the "H" of "HEADING" at Column 50 at top ofl page.) G When the field desctiptor is numeric, padding the input field may be EG avoided by using a comma to terminate the field. The comma overrides 3 the field descriptor's field width specification.G The physical end of the record a00rR~}t|lu|mx|Oxsslso serves as a field terminator, and F the "d" part of a "w.d" specification is not affected by an external field separator. C Commas may be used to terminate only fields less tha w characters E long. If a comma follows a field of w or more characters, the comma ' is considered part of the next field.d> Two successive commas, or a comma after a field of exactly wG characters, constitutes a null (zero-length) field. Depending on thehF field descriptor specified, the resulting value assigned is 0., 0.0, 0.D0, 0.Q0, or .FALSE.. F Commas may not be used to terminate a field that is controlled by anA A, H, or character constant field descriptor. However, if the tE record reaches its physical end before w characters are read, shortcA field termination occurs and the characters that were input are B assigned successfully. Trailing spaces are appended to fill the4 corresponding I/O element or the field descriptor.  3 T E The T edit descriptor is a positional tabulation specifier. It has. the form:. TnF The term n indicates the character position of the external record. 6 The value of n must be greater than or equal to one.F In an input statement, the T field descriptor positions the externalG record to its nth character position. For example, a READ statementi inputs a record containing:a ABC XYZi5 (With three blank spaces in between.)p; This record is under the control of the FORMAT statement:a# 10 FORMAT (T7,A3,T1,A3) A On execution, the READ statement would input the characters XYZ ! first, then the characters ABC.u? In an output statement, the T field descriptor specifies thatmD subsequent data transfer is to begin at the nth character position? of the external record. The first position of a record to beaD printed is usually reserved for a carriage control character which is not printed. For example:  PRINT 25n5 25 FORMAT (T51,'COLUMN 2',T21,'COLUMN 1') 2 These statements would print the following line:: COLUMN 1 COLUMN 2C (With the "C" of "COLUMN 1" at Position 20, and them% "C" of "COLUMN 2" at Position 50.)n3 TLD The TL edit descriptor is a relative tabulation specifier. It has the form:b TLnsE The term n indicates that the next character to be transferred fromdA or to a record is the nth character to the left of the current E character. The value of n must be greater that or equal to one. IffC the value of n is greater than or equal to the current characterO; position, the first character in the record is specified.t3 TRD The TR edit descriptor is a relative tabulation specifier. It has the form:i TRnbE The term n indicates that the next character to be transferred fromiB or to a record is the nth character to the right of the current B character. The value of n must be greater than or equal to one.3 XvD The X edit descriptor is a positional specifier. It has the form: nXD The term n specifies how many character positions are to be passed= over. The value of n must be greater than or equal to one.iG In an input statement, the X field descriptor specifies that the next5 n characters in the input record are to be skipped.aE In an output statement, the X field descriptor tabs right n spaces; @ it does not write over anything already written. For example: WRITE (6, 90) NPAGED 90 FORMAT ('1PAGE NUMBER ',12,16X,'GRAPHIC ANALYSIS, CONT.')= ^ ^ ^ ^a@ (Note the blank spacing.) The WRITE statement prints a record similar to:G PAGE NUMBER nn GRAPHIC ANALYSIS, CONT.sF The term nn is the current value of the variable NPAGE. The numeralF 1 in the first H field descriptor is not printed, but is used to ad-3 vance the printer paper to the top o00rZ~}-z zx*f a new page.W3 Z,D The Z field descriptor transfers hexadecimal (base 16) values, and3 can be used with any data type. It has the form:  Zw[.m]C In an input statement, the Z field descriptor transfers "w" char- B acters characters from the external field and assigns them as a ? hexadecimal value to the corresponding I/O list element. The B external field can contain only the numerals 0 through 9 and theB letters A (a) through F (f); it cannot contain a sign, a decimalB point, or an exponent field. An all-blank field is treated as a@ value of zero. If the value of the external field exceeds the; range of the corresponding list element, an error occurs.nF In an output statement, the Z field descriptor transfers the hexade-E cimal value of the corresponding I/O list element, right-justified,rC to an external field "w" characters long. No signs are output; a D negative value is transmitted in internal form. If the value does? not fill the field, leading spaces are inserted; if the valuenE exceeds the field width, the entire field is filled with asterisks. E If "m" is present, the external field consists of at leas m digits,a/ and is zero- filled on the left if necessary. G If "m" is zero, and the internal representation is zero, the externalg field is blank-filled.G The default value of "w" is 7 for BYTE, INTEGER*2, and LOGICAL*2 listtE elements; 12 for INTEGER*4, LOGICAL*4, and REAL*4 list elements; 23o> for REAL*8 list elements; and 44 for REAL*16 list elements.2 See VAX-11 FORTRAN Reference Guide for examples. 2 SUBLISTt The subroutines supplied are:e= DATE Returns a 9-byte string containing the ASCII l3 representation of the current date.n> IDATE Returns three integer values representing the - current month, day, and year. < ERRSNS Returns information about the most recently ) detected error condition.e: EXIT Terminates the execution of a program and 8 returns control to the operation system.< SECNDS Provides the system time of day, or elapsed ; time, as a floating-point value in seconds.> TIME Returns an 8-byte string containing the ASCII = representation of the current time in hours, % minutes, and seconds. ; RAN Returns the next number from a sequence of > pseudo random numbers of uniform distribution + over the range from 0 to 1. 2 FILEIO< Further information is available for the following keywords t5 ACCESS ASSOCIATEVARIABLE BLANK BLOCKSIZE BUFFERCOUNTe4 CARRIAGE CONTROL DEFAULTFILE DISPOSE ERR EXTENDSIZE- FILE FORM INITIALSIZE IOSTAT KEY MAXREC NAMEI* NOSPANBLOCK S ORGANIZATION READONLY RECL . RECORDSIZE RECORDTYPE SHARED STATUS TYPE UNIT7 USEROPEN FILE DEFAULTFILE ACCESS BLANK CARRIAGECONTROLr. DIRECT ERR EXIST FORM FORMATTED IOSTAT KEYED - NAME NAMED NEXTREC NUMBER OPEND ORGANIZATION  0 typ AID F77 FILEIO xxxxxx for more information3 OPEN" FORMAT: OPEN(par[,par]...)A Where "par" is a keyword specification in one of the following I forms: keyI key = valueFC Where "key" is a keyword as described below, and "value" depends O+ on the keyword. See individual listings.EA Keywords are divided into several categories based on function:O3 * Keywords that identify the unit and file:A UNIT --logical unit number to be used.EB FILE or NAME --file-name specification for the ' file.sB DEFAULTFILE --default file-name specification / for the file.d@ STATUS or TYPE --file existence status at OPEN.D DISPOSE --file existence status after CLOSE.9 * Keywords that describe the records in the file:e6 BLOCKSIZE --physical block size.7 00rb~}t|lu|mx|Oxss CARRIAGECONTROL --printer control type.ED FORM --type of FORTRAN record formatting.8 RECL or --logical record length. RECORDSIZE8 RECORDTYPE --logical record format.B BLANK --blank interpretation for numeric) output.e8 KEY --keys for keyed access.E * Keywords that describe file storage allocation when a file  is created:O: INITIALSIZE --initial file allocation.A EXTENDSIZE --file allocation increment size. @ * Keywords that provide additional capability for direct access I/O:-! ASSOCIATEVARIABLE ? --the next record number value. ? MAXREC --maximum direct access record -) number.s@ * Optional keywords that provide improved performance or= special capabilities. These options are generally c( transparent to I/O processing:C BUFFERCOUNT --number of I/O buffers to be used.i> NOSPANBLOCKS --records are not to be split 9 across physical blocks. C SHARED --other programs can simultaneouslya2 access the file.@ USEROPEN --user program option to provide= additional OPEN capability.o@ ERR --statement to which control is A transferred if an error occurs d? during execution of the OPEN , statement.> IOSTAT --status value that indicates = whether an error condition t) exists.-4 ACCESS FORMAT: ACCESS = acc0 (Where "acc" may take on the following values:= 'DIRECT' --file is accessed by record ) number.eA (default) >>> 'SEQUENTIAL' --file is accessed sequentially. eB 'KEYED' --file is accessed by a specified & key.@ 'APPEND' --implies sequential access and D positioning after the last record 3 of the file. )c4 ASSOCIATEVARIABLEo' FORMAT: ASSOCIATEVARIABLE = asv E (Where "asv" is an integer variable which is not a dummy argument b6 to the routine in which the OPEN statement occurs.)E ASSOCIATEVARIABLE specifies the integer variable (asv) that, after B each direct access I/O operation, contains the record number of C the next sequential record in the file. This specifier is valid D only for direct access mode; it is ignored for other access modes.4 BLANK  FORMAT: BLANK = blnkB (Where "blnk" is a character expression having a value equal to:D 'NULL' --whereupon all blanks in a numeric E input field are ignored (except if c@ the field is comprised of all F blanks, in which case it is treated - as zero). B (default) >>> 'ZERO' --whereupon all blanks other than F leading blanks are to be treated as + zeros. ) 4 BLOCKSIZE  FORMAT: BLOCKSIZE = bksn* (Where "bks" is a numeric expression. )@ BLOCKSIZE specifies the physical I/O transfer size (in bytes) C for the file. The default is the system dafault for the device. 7 See VAX-11 FORTRAN User's Guide for more information. 4 BUFFERCOUNT ! FORMAT: BUFFERCOUNT = bc ) (Where "bc" is a numeric expression. )? BUFFER00rj~}-z zx*COUNT specifies the number of buffers to be associated a> with the logical unit for multibuffered I/O. The BLOCKSIZE = keyword determines the size of each buffer. If you do not e: specify BUFFERCOUNT, or if you specify zero, the system  default is assumed.s4 CARRIAGECONTROLhD CARRIAGECONTROL determines the kind of carriage control processing" to be used when printing a file.$ FORMAT: CARRIAGECONTROL = cc@ (Where "cc" is a character expression having a value equal to:; 'FORTRAN' --specifies normal FORTRAN > interpretation of the first , character.; 'LIST' --specifies single spacing r2 between records.@ 'NONE' --specifies no implied carriage , control. @ @ The default for formatted files is 'FORTRAN'; for unformatted " files, the default is 'NONE'. ) 4 DEFAULTFILE FORMAT: DEFAULTFILE = ceA (Where "ce" is a character expression which contains a default # file name specification string.) B DEFAULTFILE specifies a string that is used in conjunction with C the file name specified by the FILE or NAME keyword to produce a B fully specified file name. See VAX-11 FORTRAN User's Guide for " more information on DEFAULTFILE. 4 DISPOSEe2 FORMAT: DISPOSE = dis DISP = dis0 (Where "dis" may take on the following values:F 'KEEP' or 'SAVE'--whereupon file is retained after theF unit is closed. (This is the default) value.) @ 'DELETE' --whereupon the file is deleted.D 'PRINT' --whereupon the file is submitted to) the system line printer spooler andr is not deleted.D 'PRINT/DELETE' --whereupon the file is submitted to) the system line printer spooler andl IS deleted. D 'SUBMIT' --whereupon the file is submitted to% the batch job queue and is not  deleted.D 'SUBMIT/DELETE' --whereupon the file is submitted to* the batch job queue and IS deleted.)8 A scratch file cannot be saved, printed, or submitted.4 ERRo FORMAT: ERR = sn6 (Where "s" is the label of an executable statement.)D ERR transfers control to the executable statement specified by "s"B when an error occurs. ERR applies only to the OPEN statement inD which it is specified, and not to subsequent I/O operations on the9 unit. If an error occurs, no file is opened or created.E@ 4 EXTENDSIZE FORMAT: EXTENDSIZE = ess) (Where "es" is a numeric expression. )OF EXTENDSIZE specifies the number of blocks by which to extend a disk A file when additional file storage is allocated. If you do not eE specify EXTENDSIZE, or if you specify zero, the system default for n the device is used.c4 FILE FORMAT: FILE = fln> (Where "fln" is a character expression, numeric array name, 9 numeric variable name, or numeric array element name.) D FILE specifies the name of the file to be connected to the unit. C The name can be any file specification accepted by the operating m system.k> The VAX-11 FORTRAN User's Guide describes default file name  conventions.C If the file name is stored in a numeric variable, numeric array, mF or numeric array element, the name must consist of ASCII characters E terminated by am ASCII null character (zero byte). However, if it F is stored in a character variable, array, or array element, it must  not contain a zero byte.4 FORM@ FORM specifies whether the file being opened is to be read or B written using formatted or unformatted READ or WRITE statements. FORMAT: FORM = ftn?00rr~}t|lu|mx|Oxss (Where "ft" is a character expression having a value equal toaD 'FORMATTED' (default value for sequential files) or 'UNFORMATTED'= (default value for direct access and keyed access files).)c 4 INITIALSIZE " FORMAT: INITIALSIZE = insz+ (Where "insz" is a numeric expression. )sF INITIALSIZE specifies the number of blocks in the initial allocationD of space for a new file on a disk. If you do not specify INITIAL-> SIZE, or if you specify zero, no initial allocation is made.4 IOSTAT FORMAT: IOSTAT = iosB (Where "ios" is an integer variable or integer array element. )D IOSTAT is an I/O status specifier. It causes "ios" to be defined D as zero if no error condition exists, or as a positive integer if C an error condition exists. VAX-11 FORTRAN I/O status values are cF described in the VAX-11 FORTRAN User's Guide. IOSTAT applies only F to the OPEN statement in which it appears and not to subsequent I/O E operations on the logical unit that is opened; however, IOSTAT can E be used in subsequent I/O statements to perform a similar function.y4 KEY ( FORMAT: KEY = (kspec[,kspec]...)D (Where "kspec" has the form: e1:e2[:dt] , and "e1" signifies the @ first byte position of the key, "e2" signifies the last byte ? position of the key, and "dt" is the data type of the key: A" either INTEGER or CHARACTER. )C KEY defines the access keys for records in an indexed file. The /> key starts at position e1 in the record and has a length of 6 e2-e1+1. The values of e1 and e2 must be such that:0 1 .LE. (e1) .LE. (e2) .LE. record length! 1 .LE. (e2-e1+1) .LE. 255WE If the key type is INTEGER, the key length must be either 2 or 4. tA There may be up to 255 key specifications in a list, but there oA must be at least one. The first key specification defines the NB primary key, the second defines the first alternate key, and so A forth. The default data type is CHARACTER. The position of a rD key specification in the list determines a key's key-of reference C number. This number is used in any subsequent I/O statement to D specify the same key. The primary key is key-of-reference number B 0, the first alternate key is key-of-reference number 1, and so  forth.< The key fields and key-of-reference numbers are permanent B attributes of an indexed file and are established when the file B is created. The KEY parameter must be specified when a file is > created, but need not be specified when an existing file is @ opened. When an existing file is opened, key definitions and B key-of-reference numbers are obtained from the file itself. If ? the KEY parameter is specified for an existing file, it must y4 agree with the established attributes of the file.4 MAXREC FORMAT: MAXREC = mr ) (Where "mr" is a numeric expression. )l> MAXREC specifies the maximum number of records permitted in < a direct access file. The default is an unlimited number < of records. This specifier applies only to direct access  files.4 NAME< NAME is a nonstandard synonym for FILE. See FILE listing  for details.4 NOSPANBLOCKS FORMAT: NOSPANBLOCKSA NOSPANBLOCKS specifies that records are not to cross disk block C boundaries. If any record exceeds the size of a physical block, " an error occurs.4 ORGANIZATION" FORMAT: ORGANIZATION = org= (Where "org" a character expression whose value is equal ton* 'SEQUENTIAL', 'RELATIVE', or 'INDEXED'.)E ORGANIZATION specifies the internal organization of the file. WhenoE you create a file, the default is 'SEQUENTIAL'. When you access anPF existing file, the default is the organization of that file. If youE specify ORGANIZATION for an existing file, "org" must have the samec% value as that of the existing file. A See the VAX-11 FORTRAN User's Guide for more information on theo! internal organization of files.p 4 READONLY FORMAT: READONLYE READON00rz~}-z zx*LY specifies that an existing file can be read, but prohibitsa writing to that file. 4 RECL FORMAT: RECL = rlt) (Where "rl" is a numeric expression. )sA RECL specifies the logical record length. If the file containspC fixed-length records, RECL specifies the size of each record. If ? the file contains variable-length records, RECL specifies theUC maximum length for any record. If the records are formatted, thefF length is the number of longwords. If the file exists and "rl" doesF not agree with the actual length of the record, an error occurs. IfA you omit this specifier for old files, the actual record lengthaC specified when the file was created is assumed. You must specifyh> RECL when you create files with fixed-length records or with# relative or indexed organization. 4 RECORDSIZED RECORDSIZE is a nonstandard synonym for RECL; see RECL subheading for more information.f 4 RECORDTYPE FORMAT: RECORDTYPE = typ@ (Where "typ" is a character expression whose value is equal to* 'FIXED', 'VARIABLE', or 'SEGMENTED'. )A RECORDTYPE specifies whether the file has fixed-length records,cC variable-length records, or segmented records. When you create aLE file, the default record types are 'FIXED' for relative or indexed, > and direct access sequential files; 'VARIABLE' for formatted; sequential access files; and 'SEQUENTIAL' for unformattedf sequential files. YE A segmented record consists of one or more variable-length records.xB Use of segmented records allows a FORTRAN logical record to spanF several physical records. Only sequential access, unformatted filesE with sequential organization can use segmented records. You cannott) specify 'SEGMENTED' for any other type.'E If RECORDTYPE is not specified when accessing an existing file, theV; record type of the file is used. An exception to this isND unformatted sequential access, sequential organization files with E variable-length records; these files have a default of 'SEGMENTED'.rE If RECORDTYPE is specified, "typ" must match the record type of thes existing file.? In fixed-length record files, if an output statement does nots@ specify a full record, the record is filled with spaces (for a5 formatted file) or zeros (for an unformatted file).s4 SHARED FORMAT: SHAREDC SHARED specifies that the file can be opened for shared access byn1 more than one program executing simultaneously. A See the VAX-11 FORTRAN User's Guide for additional information.4 STATUS FORMAT: STATUS = staA (Where "sta" is a character expression whose value is equal to:e@ 'OLD' --for which the file must already exist.: 'NEW' --for which a new file is created.B 'SCRATCH'-for which a new file is created and then: deleted when the file is closed.A (default) >> 'UNKNOWN'-for which the processor will first try s> 'OLD'; if the file is not found, the6 processor will use 'NEW'. )4 TYPE tB TYPE is a nonstandard synonym for STATUS. See STATUS subheading for more information. 4 UNIT FORMAT: [UNIT=]u( (Where "u" is a numeric expression. )E UNIT specifies the logical unit to which a file is to be connected.n@ The unit specification must appear in the list. The optional > character string "UNIT = " may be omitted only when the UNIT4 parameter occupies the first position in the list.B The logical unit may already be connected to a file when an OPENA statement is executed. If this file is not the same as the oneuE to be opened, the OPEN statement executes as if a CLOSE statement uC had executed just before it. If the file to be opened is alreadyl= connected to the unit, or if the "FILE =" specifier is not eC included in the OPEN statement, only the "BLANK =" specifier mayg@ have a value different from the one currently in effect. The % position00r~}t|lu|mx|Oxss of the file is unaffected.h 4 USEROPEN FORMAT: USEROPEN = p- (Where "p" is an external function name. )iF The USEROPEN keyword specifies a user-written external function, for knowledgable users only. 3 CLOSEx FORMAT:e8 CLOSE( [UNIT = ]u [,st=p][,ERR=s][,IOSTAT=ios] ) Where:% "u" is a logical unit number. = "st" is one of the keywords STATUS, DISPOSE, or DISP.aG "p" is a character expression that determines the dispostion ofo* the file. Its values are:@ 'KEEP' or 'SAVE',-for which the file is ! retained after the unit isP closed; i? 'DELETE' --for which the file isl deleted; ? 'PRINT' --for which the file is=G submitted to the line printer"3 spooler; G 'PRINT/DELETE' --for which the file is deleted G after being submitted to the o@ line printer spooler; @ 'SUBMIT' --for which the file is ! submitted to the batch jobd queue; G 'SUBMIT/DELETE' --for which the file is deleted G after being submitted to the : batch job queue.C For scratch files, the default is 'DELETE'; for all % other files, the default is 'KEEP'.e4 "s" is the labes of an executable statement.> "ios" is an integer variable or integer array element.E The CLOSE statement parameters can occur in any order. The keywordeE UNIT= is optional only if the unit specifier is the first parametere on the list.@ The disposition specified in a CLOSE statement supersedes the@ disposition specified in an OPEN statement, except that a fileB opened as a scratch file cannot be saved, printed, or submitted,8 nor can a file opened for read-only access be deleted. For example:& CLOSE (UNIT=1, STATUS='PRINT')C This statement closes the file on unit 1 and submits the file foro printing.r0 CLOSE (UNIT=J, STATUS='DELETE', ERR=990): This statement closes the file on unit J and deletes it. 3 INQUIRE E The INQUIRE statement inquires about specified properties of a filenD or of a logical unit on which a file might be opened. The INQUIREB statement has two forms, one for inquiring by file and the other for inquiring by unit:; FORMAT: INQUIRE (FILE=fi[,DEFAULTFILE=dfi...],flist) or& FORMAT: INQUIRE([UNIT=]u,ulist)G "FILE=fi" and "UNIT=u" can appear anyplace in the property-specifier 'F list; however, if "UNIT=" is omitted, "u" must be the first property in the list.C DEFAULTFILE=dfi can be used in addition to or in place of FILE=finE when used in connection with an inquiry about a file. If a file isF opened with both FILE and DEFAULTFILE keywords specified in the OPEND statement, then this file may be inquired about by specifying both= the FILE and DEFAULTFILE keywords in the INQUIRE statement.D An INQUIRE statement may be executed before, during, or after the F connection of a file to a unit; the values assigned by the statementD are those that are current at the time of execution of the INQUIRE statement.4 list8 NOTE: "assigned" refers to the entity associated with the particular keyword9 fi a character expression, numeric array name, numerict. variable name, or numeric array element name dfi a character expressionF flist property-specifier list u logical unit number ulist property-specifier list ACCESS determines access modei, BLANK determines interpretation of blanks CARRIAGECONTROLa determines print control9 DIRECT assigned YES if DIRECT is an allowed access modes6 ERR determines where control is transferred, sh00r~}-z zx*ould0 an error occur during execution of the INQUIRE statemente: EXIST assigned the value true if the specified file or unit existst FORM determines format type= FORMATTED assigned the value YES if formatted is an allowed- form for the file  IOSTAT determines I/O status6 KEYED assigned the value YES if KEYED is an allowed access method for the file4 NAME assigned the name of the file being inquired aboutd3 NAMED assigned TRUE if specified file has a nameh5 NEXTREC assigned an integer value which is one more , than the number of the last record read or- written on the specified direct access file 1 NUMBER assigned the number of the logical unit t+ currently connected to the specified fileo- OPENED assigned the value the value TRUE ifs* specified file is opened on a unit or if the specified unit is opened( ORGANIZATION determines file structure RECL determines record length( RECORDTYPE determines record structure7 SEQUENTIAL assigned the value YES if SEQUENTIAL is ano allowed access methode6 UNFORMATTED assigned the value YES if unformatted is an allowed form for the file4 FILE FORMAT: FILE = fi 1 (Where "fi" is a character expression, numeric 0 array name, numeric variable name, or numeric/ array element name whose value specifies the * name of the file to be inquired about.) 4 DEFAULTFILEr FORMAT: DEFAULTFILE = dfic( (Where "dfi" is a character expression! specifying a default file name  specification.)4 flista( "flist" --is a property-specifier list( in which any one specifier appears only once. 4 u B "u" --is the number of the logical unit to be inquired3 about. The unit need not exist, nor need it bel5 connected to a file. If the unit is connected top- a file, the inquiry encompasses both the d connection and file.4 ulistT? "ulist" --is a property-specifier list in which any one specifier appears only once.4 ACCESS FORMAT: ACCESS = acc3 (Where acc is acharacter variable, array element,y or substring reference. )lC Acc is assigned the value SEQUENTIAL if the file is connected fori@ sequential access, DIRECT if the file is connected for direct B access, and KEYED if the file is connected for keyed access. If) there is no connection, add is UNKNOWN. 4 BLANKn FORMAT: BLANK = blk3 (Where blk is a character variable array element,  or substring reference. ) C Blk is assigned the value NULL if null blank control is in effecta? for a file connected for formatted I/O, and the value ZERO ifA zero blank control is in effect. If there is no connection, oro= if the connection is not for formatted I/O, blk is UNKNOWN.r4 CARRIAGECONTROLE FORMAT: CARRIAGECONTROL = cc3 (Where cc as a character variable, array element,O or substring reference. )LG Cc is assigned the value FORTRAN if the file has the FORTRAN carriageuF control attribute, LIST if the file has the implied carriage controlD attribute, NONE if the file has no carriage control attribute, and$ UNKNOWN if no other value applies.4 DIRECT FORMAT: DIRECT = dir5 (Where dir is character variable, array element, or  substring reference. )E Dir is assigned the value YES if DIRECT is an allowed access methodrA for the file, NO if DIRECT is not an allowed access method, andiC UNKNOWN if the processor is unable to determine whether DIRECT is  an allowed access method.e4 ERR  FORMAT: ERR = s6 (Where s is the label of an executable statement. )B ERR is a control specifier rather than a property specifier. IfD an error occurs during execution of the INQUIRE statement, control3 is transferred to the statement whose label is s.a4 EXIST  FORMAT: EXIST = ex2 (Where ex is a logical variable or logical array element. )E Ex is assigned the value true if the specified file or unit exists, C and the value false if t00r~}t|lu|mx|Oxsshe specified file or unit does not exist.T4 FORM FORMAT: FORM = fma3 (Where fm is a character variable, array element,l or substring reference. )tA Fm is assigned the value FORMATTED if the file is connected fort> formatted I/O, and UNFORMATTED if the file is connected for = unformatted I/O. If there is no connection, fm is UNKNOWN.l 4 FORMATTED  FORMAT: FORMATTED = fmd 4 (Where fmd is a character variable, array element, or substring reference. ) C Fmd is assigned the value YES if formatted is an allowed form forB the file, NO if formatted is not an allowed form, and UNKNOWN if> the processor is unable to determine whether formatted is an allowed form.i4 IOSTAT FORMAT: IOSTAT = ios4 (Where ios is an integer variable or integer array element. )A IOSTAT is a control specifier rather than a property specifier.OA Ios is assigned a processor-dependent positive integer value ifa@ an error occurs during execution of the INQUIRE statement, and0 the value zero if there is no error condition.4 KEYED  FORMAT: KEYED = kyd 4 (Where kyd is a character variable, array element, or substring reference. )iD Kyd is assigned the value YES if KEYED is an allowed access methodD for the file (that is, the file is indexed), NO if KEYED is not anB allowed access method, and UNKNOWN if the processor is unable to6 determine whether KEYED is an allowed access method.4 NAME FORMAT: NAME = nme4 (Where nme is a character variable, array element, or substring reference. )D Nme is assigned the name of the file being inquired about. If the0 file does not have a name, nme is not defined.E The value assigned to nme is not necessarily identical to the valuedD specified with FILE= . For example, the value that the processor A returns may be qualified by a directory name or version number.oB However, the value that is assigned is always valid for use with FILE= in an OPEN statement.e NOTEC FILE and NAME are synonyms when used with the OPEN statement, but, not when used with the INQUIRE statement.4 NAMEDu FORMAT: NAMED = nmdo3 (Where nmd is a logical variable or logical arrayn element. )B Nmd is assigned the value TRUE if the specified file has a name,1 and the value FALSE if it does not have a name. 4 NEXTRECb FORMAT: NEXTREC = nr3 (Where nr is an integer variable or integer arraya element. )C Nr is assigned an integer value which is one more than the numberrC of the last record read or written on the specified direct accessiA file. If no records have been read or written, the value of nrD is one. If the file is not connected for direct access, or if the@ position is indeterminate because or an error condition, nr is zero. 4 NUMBER FORMAT: NUMBER = num4 (Where num is an integer variable or integer array element. )D Num is assigned the number of the logical unit currently connectedB to the specified file. If there is no logical unit connected to the file, num is not defined. 4 OPENED FORMAT: OPENED = ods2 (Where od is a logical variable or logical array element. )B Od is assigned the value TRUE if the specified file is opened on@ a unit or if the specified unit is opened; it is assigned the . value FALSE if the file or unit is not open.4 ORGANIZATION FORMAT: ORGANIZATION = org4 (Where org is a character variable, array element, or substring reference. )dB Org is assigned the value SEQUENTIAL if the file is a sequential@ file, RELATIVE if the file is a relative file, and INDEXED if = the file is an indexed file. If the processor is unable toi@ determine the organization, org is assigned the value UNKNOWN.4 RECL FORMAT: RECL = rcl4 (Where rcl is an integer variable or integer array element. )C If the file (or unit) is opened, rcl is the maximum record length @ allowed; if not opened, rcl is the longest record in the file.; If a speci00r~}-z zx*fied file does not exist, rcl is zero. Rcl is A expressed in bytes if the file is opened for formatted I/O, andD* in longwords if the file is unformatted. 4 RECORDTYPE FORMAT: RECORDTYPE = rtype6 (Where rtype is a character variable, array element, or substring reference. )e@ Rtype is assigned the value FIXED if the file has fixed-length? records, VARIABLE if the file has variable-length record, and C SEGMENTED if the file is connected for unformatted sequential I/O A using segmented records. If the processor cannot determine thes3 record type, rtype is assigned the value UNKNOWN. 4 SEQUENTIAL FORMAT: SEQUENTIAL = seq4 (Where seq is a character variable, array element, or substring reference. )iB Seq is assigned the value YES if SEQUENTIAL is an allowed accessC method for the specified file, NO if SEQUENTIAL is not an allowedL> access method, and UNKNOWN if the processor cannot determine1 whether SEQUENTIAL is an allowed access method. 4 UNFORMATTEDe FORMAT: UNFORMATTED = unfn4 (Where unf is a character variable, array element, or substring reference. )LA Unf is assigned the value YES if unformatted is an allowed forme@ for the file, NO if unformatted is not an allowed form for the; file, and UNKNOWN if the processor is unable to determined6 whether unformatted is an allowed form for the file.2 SYNTAX ACCEPT format_spec[,list]c: ACCEPT*[,io_list] { * denotes list-directed formatting } ACCEPT name_list_group-name? ASSIGN s TO int_var_name {s=label of a FORMAT statement of ane executable statement}= BACKSPACE([UNIT=]log_unit_spec[,IOSTAT=ios][,ERR=st_label])a BLOCK DATA [symbolic_name]; CALL f[([a][,[a]]...)] {f=subprogram name or entry point}i; CLOSE([UNIT=]log_unit_spec[,p][,IOSTAT=ios][,ERR=st_labelt" (see File_handling for specifics)> COMMON [/[common_block_name]/]nlist[[,]/[c_b_name]/nlist]... CONTINUE1 DATA nlist/const_list/[[,]nlist/const_list/]...nF DECODE (int_exp,form_spec,name[,IOSTAT=ios][,ERR=st_label])[io_list]@ DEFINE FILE log_unit_spec(m,n,U,v)[,log_unit_spec(m,n,U,v)]...? {m=const or variable, n=const or var, U specifies unformatted,c v=integer variable name.}.> DELETE ([UNIT=]u[,REC=rec_spec][,IOSTAT=ios][,ERR=st_label])) DELETE(u'rec_spec[,IOSTAT=ios][,ERR=s])e {u=logical unit specifier})6 DIMENSION a(d)[,a(d)]... { a(d)=array declarator }% DO [st_label[,]]var_name=e1,e2[,e3]n DO [st_label[,]] WHILE (e) ELSE ELSE IF (e) THEN7 ENCODE (c,f,b[,IOSTAT=ios][,ERR=st_label]) [io_list] LD {c=int_exp; f=format_spec; b=var_name, array_name, array_elmnt, or substring_name} ENDu END DO< ENDFILE ([UNIT=]log_unit_spec[,IOSTAT=ios][,ERR=st_label]) ENDFILE logical_unit_specifier END IF! ENTRY subpro_name[([p[,p]...])]o8 { p=symbolic_name or alternate_return_specifier (*) }" EQUIVALENCE (nlist)[,(nlist)]...' EXTERNAL subpro_name[,subpro_name]...l= FIND([UNIT=]log_unit_spec,REC=rec_spec[,IOSTAT=ios][ERR=s])[: FIND(log_unit_spec'rec_spec[,IOSTAT=ios][,ERR=st_label])" FORMAT (field specification,...)D [data_typ_spec]FUNCTIONsymb_name[*n][([symb_name[,symb_name]...])] { *n=data_type_length_spec }o GO TO st_label GO TO (st_label_list)[,]er( GO TO int_var_name[[,](st_label_list)]( IF (e) st_label1, st_label2, st_label3= IF (e) st_label { st_label .NE. DO, END DO, END, block IF,X or logicalIF }u IF (e1) THEN block ELSE IF (e2) THEN= block ELSE block END IF6 IMPLICIT data_type_spec(a[,a]...)[,typ(a[,a]...)]... IMPLICIT NONEp( INCLUDE'file_specification[/[NO]LIST]'. INCLUDE'[file_spec](module_name)[/[NO]LIST]' INQUIRE (par[,par]...)" (see File_handling for specifics)6 INTRINSIC intrins_funct_name[,intrins_funct_name]...> NAMELIST /symbolic_name/namelist[[,]/symb_name/ namelist]... OPEN (par[,par]...)E" (see File_handling for specifics) PARAMETER (p=c[,p=c]...)6 {p=symbolic_n00r~}t|lu|mx|Oxssame, c=constant or compile-time constant expression}M PAUSE[decimal_digit_string]t PRINT format_spec[,io_list]p< PRINT *[,io_list] { * denotes list-directed formatting. } PRINT namelist_group-name PROGRAM symbolic_name(@ READ ([UNIT=]u,[FMT=]f[,IOSTAT=ios][,END=s][,ERR=s]) [io_list] READ f[,io_list]4 { u=log_unit_spec, f=format_spec, s=st_label } a@ READ ([UNIT=]u,[FMT=]*[,IOSTAT=ios][,END=s][,ERR=s]) [io_list] READ *[,io_list], { * denotes list-directed formatting }D READ([UNIT=]u,[NML=]namelist_gr_name[,IOSTAT=ios][,END=s][,ERR=s]) READ namelist_group-name8 READ ([UNIT=]u[,IOSTAT=ios][,END=s][,ERR=s]) [io_list]4 { u=log_unit_spec, f=format_spec, s=st_label }? READ ([UNIT=]u,[FMT=f,REC=r[,IOSTAT=ios][,ERR=s]) [io_list]] s3 READ (u'r,[FMT=]f[,IOSTAT=ios][,ERR=s]) [io_list]g@ { u=log_unit_spec, f=format_spec, s=st_label r=rec_spec }6 READ ([UNIT=]u,REC=r[,IOSTAT=ios][,ERR=s]) [io_list]+ READ (u'r[,IOSTAT=ios][,ERR=s]) [io_list]t> READ ([UNIT=]u,[FMT=]f,key_specifier[,KEYID=key-of-ref_spec]! [,IOSTAT=ios][,ERR=s]) [io_list]-> READ ([UNIT=]u,key_spec[,KEYID=key-of-ref_spec][,IOSTAT=ios] [,ERR=s]) [io_list]? READ ([UNIT=]c,[FMT=]f[,IOSTAT=ios][,ERR=s][END=s]) [io_list]IE { u=log_unit_spec, f=format_spec, s=st_label c=internal_file_spec }=  RETURN[integer_value]u9 REWIND([UNIT=]log_unit_spec[,IOSTAT=ios][,ERR=st_label]( REWIND log_unit_spec< REWRITE ([UNIT=]u,[FMT=]f,[,IOSTAT=ios][,ERR=s]) [io_list]3 REWRITE ([UNIT=]u[,IOSTAT=ios][,ERR=s]) [io_list]=4 { u=log_unit_spec, f=format_spec, s=st_label } SAVE [a[,a]...]s Statement Function+ f([symbolic_name[,symbolic_name]...]) = eE STOP [decimal_digit_string][( SUBROUTINE symbolic_name[([p[,p]...])]: {p = symbolic name or an alternate return specifier (*) } TYPE format_spec[,io_list]7 TYPE*[,io_list] { * denotes list-directed formatting}E TYPE namelist_groupnameT Type Declaration typ v[/clist/][,v[/clist/]...  {Where:3 typ is one of the following data type specifiers:g BYTE LOGICALm INTEGER LOGICAL*1 INTEGER*2 LOGICAL*2 INTEGER*4 LOGICAL*4 REAL COMPLEXe REAL*4 COMPLEX*8  REAL*8 COMPLEX*16 REAL*16 DOUBLE PRECISIONI CHARACTER*len DOUBLE COMPLEX CHARACTER*(*)m8 v is a variable name, array name, function or function/ entry name, or an array declarator. The namei3 can optionally be followed by a data type length T. specifier (*n). For character entities, the' length specifier can be *len or *(*).o7 clist is an initial value or values to be assigned toE0 to the immediately preceding variable or array element.8 The symbolic names (v) are assigned the specified data type. }@ UNLOCK ([UNIT=]log_unit_specifier[,IOSTAT=ios][,ERR=st_label]) UNLOCK log_unit_spec VIRTUAL a(d)[,a(d)]...8 WRITE ([UNIT=]u,[FMT=]f[IOSTAT=ios][,ERR=s]) [io_list]4 { u=log_unit_spec, f=format_spec, s=st_label }F WRITE ([UNIT=]u,REC=rec_spec,[FMT=]f[,IOSTAT=ios][,ERR=s]) [io_list]( WRITE (u'rec_spec,f[,ERR=s]) [io_list]> WRITE ([UNIT=]u,REC=rec_spec[,IOSTAT=ios][,ERR=s]) [io_list]4 WRITE (u'rec_spec[,IOSTAT=spec][,ERR=s]) [io_list] 2 DATA_TYPES BYTE  LOGICAL LOGICAL*1O LOGICAL*2u LOGICAL*4I INTEGER INTEGER*2) INTEGER*4u REAL REAL*4 REAL*8 DOUBLE PRECISION REAL*16O COMPLEX COMPLEX*8s COMPLEX*16 DOUBLE COMPLEX CHARACTER*len CHARACTER*(*)3 BYTE BYTE9 RANGE: The 1-byte storage area can contain the logical [. values true or false, a single character, or$ integers in the range -128 to 127.$ LENGTH: 1 byte of storage (8 bits)! REPRESENTATION: 45 (decimal)  '55'O (octal) '2D'X (hex) 3 LOGICAL LOGICAL RANGE: .TRUE. or .FALSE.= LENGTH: Either two or four bytes are allocated depending on3 the setting of the [NO]I4 qualifier. The default6 allocation is four bytes.A8 LOGICAL*1, LOGICAL*2, LOGICAL*4, contain respectiv00r~s~-z zx*ely, 1, 2, or 4, bytes. 3 INTEGER_B See INTEGER2 and INTEGER4. Depending upon the [NO]I4 qualifier,= either one of these formats will be used. INTEGER*4 is theb default. 3 INTEGER2 INTEGER*2  RANGE: -32768 to 32767( LENGTH: 2 bytes of storage REPRESENTATION: 0 54786  -45 +4882 '427'O '67F'X '177777'O is -1(decimal) 'FFFF'X is -1(decimalf '100000'O is -32768(decimal) 3 INTEGER4 INTEGER*4,) RANGE: -2,147,483,648 to 2,147,483,647 LENGTH: 4 bytes of storage_5 REPRESENTATION: 'FFFFFFFF'X is -2147483648(decimal)I '37777777777'O is -2147483648 0 54784l 22 +47883 REAL4h REAL*4 REAL1 (REAL is the same as REAL*4 in all conditions.)6" RANGE: magnitude may range from# approximately 0.29E-38 to 1.7E38  SIGNIFICANT DIGITS: 7 LENGTH: 4 bytes of storage'! REPRESENTATION: 3.14159 8E-4O 27564.2E+25 +25E-1E 2.0E1 2.000000000 3 REAL81? (DOUBLE PRECISION is the same as REAL*8 in all conditions. ) 0 RANGE: magnitude may range from approximately( 0.29D-38 to 1.7D38 for the D_floating* implementation, or 0.56D-308 to 0.9D308$ for the G_floating implementation; SIGNIFICANT DIGITS: typically 16 for D_floating or 15 for G_floatingy LENGTH: 8 bytes of storageC! REPRESENTATION: 3.14159 8D-4o 27564.2D+25 +25D1 2.0D121 (valid only as a G_floating)3 REAL16 REAL*160 RANGE: magnitude may range from approximately 0.84Q-4932 to 0.59Q4932* SIGNIFICANT DIGITS: typically 33 digits   LENGTH: 16 bytes of storage! REPRESENTATION: 3.14159 8Q-46 27564.2Q+25 +25Q1 2.0Q121 3 COMPLEX COMPLEX*8 COMPLEXy9 (COMPLEX is the same as COMPLEX*8 in all conditions. )G" RANGE: magnitude may range from# approximately 0.29E-38 to 1.7E384 SIGNIFICANT DIGITS: 72 LENGTH: 8 bytes of storagei. REPRESENTATION: (1.70398,-17777) (145E+2,0.) 3 COMPLEX16r COMPLEX*16 DOUBLE COMPLEXo> (COMPLEX and DOUBLE COMPLEX are the same in all conditions.)0 RANGE: magnitude may range from approximately( 0.29D-38 to 1.7D38 for the D_floating* implementation, or 0.56D-308 to 0.9D308$ for the G_floating implementation; SIGNIFICANT DIGITS: typically 16 for D_floating or 15 forg G_floatingo LENGTH: 16 bytes of storage. REPRESENTATION: (1.70398,-17777) (145D+2,0.), (one of the pair must be REAL*8 constant) 3 CHARACTER CHARACTER > The length of a character constant must be in the range 1 to 2000.iA The storage requirements (in bytes) is the number of charactersy4 specified, which can be in the range 1 to 65535. & REPRESENTATION: 'WHAT!?' 'C3P0+R2D2' 'AIN''T' implementation; SIGNIFICANT DIGITS: typically 16 for D_floating or 15 forg G_floatingo LENGTH: 16 bytes of storage. REPRESENTATION: (1.70398,-17777) (145D+2,0.), (one of the pair must be REAL*8 constant) 3 CHARACTER 1 FAC2& Files-11 ACtivity reporting program L F11ACt is a sytem performance measurement program for taking a snapshot of: files-11 ACP activity on a running IAS or RSX-11D system.  command line syntax:? [outfile][/-APpend][/SPool][/FILES][/PRiority:N][/ACP:XXXXXX]  = [device[/FILES]],...i A /APpend Open outfile for append (default), else create outfilei) /SPool spool outfile (default is /-SP)t= /FILES List attributes of all files open on all devices ife6 this switch appears on output side of command line9 List attributes of all files open on specified devicet5 if this switch appears on input side (def = /-FI)i? /PRiority:N ACP run priority is N (decimal) (default is 220.):E /ACP:xxxxxx Gather statistics for all devices serviced by the named=7 ACP. If this switch is specified on the input side,p' a device list may not be specified.S? An empty command line is equivalent to the following defaults:  < F11ACt> TI:F11STATS.LST/APpend/-SPool/-FILES/PRi00s~t~t|lu|mx|Oxssority:220.utput side of command line9 List attributes of all files open on specified devicet5 if this switch appears on input side (def = /-FI)i? /PRiority:N ACP run priority is N (decimal) (default is 220.):E /ACP:xxxxxx Gather statistics for all devices serviced by the named=7 ACP. If this switch is specified on the input side,p' a device list may not be specified.S? An empty command line is equivalent to the following defaults:  < F11ACt> TI:F11STATS.LST/APpend/-SPool/-FILES/PRi1 FCSM FCS-11 is a collection of record-management macros and subroutines used toM maintain and manipulate data files. FCS-11, in contrast to RMS-11, supportsL only sequential and fixed record length file organizations. This AID fileN contains brief summaries of the MACRO-11 language interface to FCS. See also:* AID FCS ERRORS Information on FCS errors8 AID FCS ERRORS ALL Displays all FCS-11 I/O error codes: AID FCS ERRORS err Displays individual error code by name< AID FCS ERRORS nnn Displays individual error code by number< AID FCS MACROS Displays all MACRO-11 interface macro calls: AID FCS BIGBUFFERS Displays information on how to use the big buffering featuree7 AID FCS FLUSH Displays information on how to use the r" new flush block buffer feature2 MACROS FCSMC$S' OPEN$R FDB,LUN,DSPT,RACC,URBA,URBS,ERRo' OPEN$W FDB,LUN,DSPT,RACC,URBA,URBS,ERRl' OPEN$M FDB,LUN,DSPT,RACC,URBA,URBS,ERRS' OPEN$U FDB,LUN,DSPT,RACC,URBA,URBS,ERRe' OPEN$A FDB,LUN,DSPT,RACC,URBA,URBS,ERRi' OPNS$R FDB,LUN,DSPT,RACC,URBA,URBS,ERRS' OPNS$W FDB,LUN,DSPT,RACC,URBA,URBS,ERRm' OPNS$M FDB,LUN,DSPT,RACC,URBA,URBS,ERRs' OPNS$U FDB,LUN,DSPT,RACC,URBA,URBS,ERRu' OPNS$A FDB,LUN,DSPT,RACC,URBA,URBS,ERRa' OPNT$D FDB,LUN,DSPT,RACC,URBA,URBS,ERRe' OPNT$W FDB,LUN,DSPT,RACC,URBA,URBS,ERR0 OPEN$ FDB,FACC,LUN,DSPT,DFNB,RACC,URBA,URBS,ERR' OFID$R FDB,LUN,DSPT,RACC,URBA,URBS,ERRl' OFID$W FDB,LUN,DSPT,RACC,URBA,URBS,ERRS' OFID$M FDB,LUN,DSPT,RACC,URBA,URBS,ERRe' OFID$U FDB,LUN,DSPT,RACC,URBA,URBS,ERRi' OFID$A FDB,LUN,DSPT,RACC,URBA,URBS,ERRS0 OFID$ FDB,FACC,LUN,DSPT,DFNB,RACC,URBA,URBS,ERR' OFNB$R FDB,LUN,DSPT,RACC,URBA,URBS,ERR$' OFNB$W FDB,LUN,DSPT,RACC,URBA,URBS,ERR$' OFNB$M FDB,LUN,DSPT,RACC,URBA,URBS,ERR$' OFNB$U FDB,LUN,DSPT,RACC,URBA,URBS,ERR$' OFNB$A FDB,LUN,DSPT,RACC,URBA,URBS,ERR$0 OFNB$ FDB,FACC,LUN,DSPT,DFNB,RACC,URBA,URBS,ERR CLOSE$ FDB,ERRC, READ$ FDB,BKAD,BKSZ,BKVB,BKEF,BKST,BKDN,ERR- WRITE$ FDB,BKAD,BKSZ,BKVB,BKEF,BKST,BKDN,ERRB WAIT$ FDB,EFN,BKST,ERRS GET$ FDB,INADR,MAXCNT,ERR' GET$R FDB,INADR,MAXCNT,LRCNM,HRCNM,ERRI GET$S FDB,INADR,MAXCNT,ERRC PUT$ FDB,OUTADR,OUTCNT,ERRU( PUT$R FDB,OUTADR,OUTCNT,LRCNM,HRCNM,ERR PUT$S FDB,OUTADR,OUTCNT,ERR DELET$ FDB,ERRT TRUNC$ FDB,ERRR FINIT$$ FSRSZ$ NFILES,BFSPAC,PSECT, FDBDF$N FDAT$A RTYP,RATT,RSIZ,CNTG,ALOC FDRC$A RACC,URBA,URBS! FDOP$A LUN,DSPT,DFNB,FACC,FACTRLE FDBF$A EFN,OVBS,MBCT,MBFG% FDBK$A BKAD,BKSZ,BKVB,BKEF,BKST,BKDND$ FDAT$R FDB,RTYP,RATT,RSIZ,CNTG,ALOC FDRC$R FDB,RACC,URBA,URBS% FDOP$R FDB,LUN,DSPT,DFNB,FACC,FACTRLA FDBF$R FDB,EFN,OVBS,MBCT,MBFG) FDBK$R FDB,BKAD,BKSZ,BKVB,BKEF,BKST,BKDNO% FDBSZ$ ;DEFINE S.FDB AS SIZE OF FDBC FDOF$LE$ NMBLK$ FNAME,FTYPE,VERS,DEVNAM,UNIT NBOF$LR LDFDB$ FDBD CMOV$W VAR,OFFSET CMOV$B VAR,OFFSET CMOV$2 VAR,OFFSET CBYTE$ VAR,OFFSET CWORD$ VAR,OFFSET FCSBT$ GLOBL FCSBT$ ARGS DEFIN$ SYM,VALR FDOFF$ OFFSET FDOFF$ ARGG BDOFF$ OFFSET BDOFF$ ARG, NBOFF$ OFFSET NBOFF$ ARGR FSROF$ OFFSET FSROF$ ARGD FDSOF$ OFFSET FDSOF$ ARG,$ DEF$G VAR,SIZ ;DEFINE GLOBAL OFFSET3 DEF$N VAR,SIZ ;DEFINE NO OFFSET-CALCULATE THE SIZE," DEF$I IVAL ;INITIALIZE DEFINITION DEF$L SYM,SIZ RAD50$ STRING,MAXWRD, 2 BIGBUFFERSM Big buffering reduces the number of disk accesses for record I/O by allowing$L multiblock input and output. Normally, get or put operations are performedM by accessing the disk one sector at a time. Big buffering allows a specifiedRG number of sectors to be read or written in a single disk access, whichF" r00t~~-z zx*educes the number of head seeks.K To use big buffers, you need only pick a reasonable buffer size, alter theFG parameters for each occurrence of the FSRSZ$ and FDBF$A macros in your ) program, and link to the proper library:eK 1. The buffer size you choose should be a multiple of 512. bytes, theNN size of one disk block. 5 blocks is a good choice, because it is theM default amount allocated by a file extension. Disks tend to containwK many 5-block chunks. Larger amounts may increase performance, but> you may be trading large amounts of memory for speed.M 2. In your program, you must reserve adequate buffer space and make they& buffer size known to the FDB.M The FSRSZ$ macro allows you to specify the total buffer space neededsK by entering a number as its second parameter. This should be 512.iM bytes for each normal disk file, the chosen buffer size for each big N buffered file. For example, assume a program with 3 files: one normalL (512. byte buffer), one with 3 blocks as a big buffer, and one withM 5 blocks as a big buffer. The following reserves the space properly: ! FSRSZ$ 3,<<1+3+5>*512.>T G In the FDB of each file with a big buffer, you must specify aneN override buffer size with the FDBF$A or FDBF$A macro. For a file withN 5 blocks as a big buffer, use the following assembly-time macro call:  FDBF$A <5*512.>hE 3. RSX-11M users (Version 3.2 and later) should link to ANSLIB, B which contains the proper FCS modules to use big buffers.2 ERRORSL When FCS-11 returns an error code to you in byte location F.ERR in the FDB,L it may be either an I/O error code or a directive error code. You canH determine which type of code it is by examining byte location F.ERR+1:A F.ERR+1 = -1 means that it is a directive error. For a list ofl9 directive error codes type AID EXECUTIVE ERRORS.B F.ERR+1 = 0 means that it is an I/O error. A list of I/O error codes follows.3 For a list of all FCS error names and codes, type:R AID FCS ERRORS ALLr+ For AID on an individual error code, type:i AID FCS ERRORS xxxI where xxx is the 3-letter error name, the (negative) decimal error code,w4 or the (3-digit) octal numeric value. For example: AID FCS ERRORS ONP- -and-  AID FCS ERRORS -5. -and- AID FCS ERRORS 373  cA will all access the same error text (the error text for IE.ONP).s3 ALLr. Here is a list of all errors returned by FCS.! IE.BAD,-01.,377,a( IE.IFC,-02.,376,# IE.DNR,-03.,375,e) IE.VER,-04.,374,x. IE.ONP,-05.,373,& IE.SPC,-06.,372,& IE.DNA,-07.,371,* IE.DAA,-08.,370,( IE.DUN,-09.,367,' IE.EOF,-10.,366, ) IE.EOV,-11.,365,r/ IE.WLK,-12.,364, IE.DAO,-13.,363,s' IE.SRE,-14.,362,d% IE.ABO,-15.,361,e& IE.PRI,-16.,360,, IE.RSU,-17.,357,* IE.OVR,-18.,356,6 IE.BYT,-19.,355,1 IE.BLK,-20.,354,i, IE.MOD,-21.,353,$ IE.CON,-22.,352,+ IE.NOD,-23.,351,t IE.DFU,-24.,350," IE.IFU,-25.,347, IE.NSF,-26.,346,d0 IE.LCK,-27.,345,# IE.HFU,-28.,344,S% IE.WAC,-29.,343,/ IE.CKS,-30.,342,,6 IE.WAT,-31.,341,3 IE.RER,-32.,340,,4 IE.WER,-33.,337,/ IE.ALN,-34.,336,n- IE.SNC,-35.,335,>1 IE.SQC,-36.,334,3* IE.NLN,-37.,333,/ IE.CLO,-38.,332,h< IE.NBF,-39.,331,& IE.RBG,-40.,330,: IE.NBK,-41.,327,= IE.ILL,-42.,326,." IE.BTP,-43.,325,1 IE.RAC,-44.,324,N5 IE.RAT,-45.,323,.4 IE.RCN,-46.,322,- IE.ICE,-47.,321,31 IE.2DV,-48.,320,.8 IE.FEX,-49.,317,% IE.BDR,-50.,316,,/ IE.RNM,-51.,315,>' IE.BDI,-52.,314,f$ IE.FOP,-53.,313, IE.BNM,-54.,312," IE.BDV,-55.,311,& IE.BBE,-56.,310,7 IE.DUP,-57.,307,e6 IE.STK,-58.,306,1 IE.FHE,-59.,305,v, IE.NFI,-60.,304,/ IE.ISQ,-61.,303,r' IE.EOT,-62.,302,o% IE.BVR,-63.,301, " IE.BHD,-64.,300,! IE.OFL,-65.,277,35 IE.BCC,-66.,276, IE.ONL,-67.,275, IE.NNN,-68.,274,u> IE.NFW,-69.,273, ;this code must be odd% IE.BLB,-70.,272,a- IE.NDR,-72.,270,3. IE.URJ,-73.,267,1 IE.NRJ,-74.,266,<3 IE.EXP,-75.,265, " IE.BTF,-76.,264,1 IE.NNC,-77.,263,C$ IE.NDA,-78.,262,B IE.NLK,-79.,261,/ IE.NST,-80.,260, A IE.FLN,-81.,257,I* IE.IES,-82.,256,* IE.PES,-83.,255,% IE.ALC,-84.,254,c IE.ULK,-85.,253,5& IE.WCK,-86.,252,% IE.NTR,-87.,251,N5 IE.REJ,-88.,250,7/ IE.FLG,-89.,247,k& IE.DSQ,-90.,246,/ IE.IQU,-91.,245,l1 IE.RES,-92.,244, ) IE.TML,-93.,243,a% IE.NNT,-94.,242,<% IE.TMO,-95.,241,2& IE.CNR,-96.,240, IE.UKN,-97.,237,2 <" IS.PND,+00. ;Operation pending, IS.SUC,+01. ;Operation complete, success< IS.RDD,+02. ;(RX11) Floppy disk successful completion of1 a read physical, and deleted data mark waso) seen in sector header last sector.t: IS.BV,+05. ;(A/D read) at least one bad value was read/ (remainder may be good). Bad channel isa3 indicated by a negative value in the buffer.,3 IS.CR,<15*400+1> ;Carriage return was terminatorn4 IS.ESC,<33*400+1> ;Escape (altmode) was terminator- IS.CC,<3*400+1> ;Control-c was terminator03 IS.ESQ,<233*400+1> ;Escape sequence was terminator(; IS.PES,<200*400+1> ;Partial escape sequence was terminators: IS.EOT,<4*400+1> ;EOT was terminator (block mode input): IS.TAB,<11*400+1> ;Tab was terminator (forms mode input)! IS.TMO,+2. ;Request timed out 3 377o#BAD3 -1.n#BAD3 BAD ! IE.BAD,-01.,377,h3 376r#IFC3 -2.5#IFC3 IFCr( IE.IFC,-02.,376,3 375 #DNR3 -3.o#DNR3 DNRn# IE.DNR,-03.,375,w3 374i#VER3 -4.S#VER3 VER ) IE.VER,-04.,37400t~~-z zx*,23 3731#ONP3 -5.c#ONP3 ONPw. IE.ONP,-05.,373,3 372 #SPC3 -6.n#SPC3 SPC,& IE.SPC,-06.,372,3 371u#DNA3 -7.2#DNA3 DNA & IE.DNA,-07.,371,(Device not attached>3 370 #DAA3 -8..#DAA3 DAAa* IE.DAA,-08.,370,3 367F#DUN3 -9.n#DUN3 DUNn( IE.DUN,-09.,367,3 366N#EOF3 -10.#EOF3 EOFy' IE.EOF,-10.,366,I3 3650#EOV3 -11.#EOV3 EOVi) IE.EOV,-11.,365,I3 3640#WLK3 -12.#WLK3 WLK 1 IE.WLK,-12.,364,P3 3633#DAO3 -13.#DAO3 DAO  IE.DAO,-13.,363,3 362,#SRE3 -14.SREt3 SREe' IE.SRE,-14.,362,I3 3610#ABO3 -15.#ABO3 ABOc% IE.ABO,-15.,361,n3 360U#PRI3 -16.#PRI3 PRIc& IE.PRI,-16.,360,3 357.#RSU3 -17.#RSU3 RSUe, IE.RSU,-17.,357,3 356,#OVR3 -18.#OVR3 OVRe* IE.OVR,-18.,356,3 355,#BYT3 -19.#BYT3 BYTo6 IE.BYT,-19.,355,3 354.#BLK3 -20.#BLK3 BLK,1 IE.BLK,-20.,354,d3 353e#MOD3 -21.#MOD3 MOD , IE.MOD,-21.,353,3 352t#CON3 -22.#CON3 CON$ IE.CON,-22.,352,3 351l#NOD3 -23.#NOD3 NOD.+ IE.NOD,-23.,351,e3 350i#DFU3 -24.#DFU3 DFU. IE.DFU,-24.,350,3 347a#IFU3 -25.#IFU3 IFU" IE.IFU,-25.,347,3 3465#NSF3 -26.#NSF3 NSFl IE.NSF,-26.,346,3 345 #LCK3 -27.#LCK3 LCKi0 IE.LCK,-27.,345,3 344#HFU3 -28.#HFU3 HFUn# IE.HFU,-28.,344,N3 343.#WAC3 -29.#WAC3 WAC.% IE.WAC,-29.,343,3 342#CKS3 -30.#CKS3 CKS3/ IE.CKS,-30.,342,23 341U#WAT3 -31.#WAT3 WAT<6 IE.WAT,-31.,341,3 3403#RER3 -32.#RER3 RER53 IE.RER,-32.,340,c3 337#WER3 -33.#WER3 WERK4 IE.WER,-33.,337,3 336 #ALN3 -34.#ALN3 ALN / IE.ALN,-34.,336,.3 335#SNC3 -35.#SNC3 SNCA- IE.SNC,-35.,335,3 334#SQC3 -36.#SQC3 SQC31 IE.SQC,-36.,334, 3 333W#NLN3 -37.#NLN3 NLN1* IE.NLN,-37.,333,3 332R#CLO3 -38.#CLO3 CLO./ IE.CLO,-38.,332,3 331#NBF3 -39.#NBF3 NBF< IE.NBF,-39.,331,3 330 #RBG3 -40.#RBG3 RBG,& IE.RBG,-40.,330,3 327#NBK3 -41.#NBK3 NBKA: IE.NBK,-41.,327,3 3263#ILL3 -42.#ILL3 ILL3= IE.ILL,-42.,326,3 325 #BTP3 -43.#BTP3 BTPf" IE.BTP,-43.,325,3 324#RAC3 -44.#RAC3 RAC31 IE.RAC,-44.,324, 3 323N#RAT3 -45.#RAT3 RAT15 IE.RAT,-45.,323,R3 3224#RCN3 -46.#RCN3 RCN44 IE.RCN,-46.,322,3 321B#ICE3 -47.#ICE3 ICEe- IE.ICE,-47.,321,L3 320.#2DV3 -48.#2DV3 2DV./ IE.2DV,-48.,320,3 317 #FEX3 -49.#FEX3 FEXf8 IE.FEX,-49.,317,3 316#BDR3 -50.#BDR3 BDRl% IE.BDR,-50.,316,3 315 #RNM3 -51.#RNM3 RNM,/ IE.RNM,-51.,315, 3 314R#BDI3 -52.#BDI3 BDII' IE.BDI,-52.,314,o3 313>#FOP3 -53.#FOP3 FOPE$ IE.FOP,-53.,313,3 312n#BNM3 -54.#BNM3 00t~~t|lu|mx|OxssBNM IE.BNM,-54.,312,3 311a#BDV3 -55.#BDV3 BDV" IE.BDV,-55.,311,3 310,#BBE3 -56.#BBE3 BBE & IE.BBE,-56.,310,3 307R#DUP3 -57.#DUP3 DUP<7 IE.DUP,-57.,307,3 306,#STK3 -58.#STK3 STKf6 IE.STK,-58.,306,3 3053#FHE3 -59.#FHE3 FHE1 IE.FHE,-59.,305,33 304a#NFI3 -60.#NFI3 NFI, IE.NFI,-60.,304,3 303>#ISQ3 -61.#ISQ3 ISQV/ IE.ISQ,-61.,303,13 302E#EOT3 -62.#EOT3 EOT.' IE.EOT,-62.,302,R3 301#BVR3 -63.#BVR3 BVRU% IE.BVR,-63.,301,d3 300y#BHD3 -64.#BHD3 BHDS" IE.BHD,-64.,300,3 277a#OFL3 -65.#OFL3 OFL0! IE.OFL,-65.,277,.3 276.#BCC3 -66.#BCC3 BCCo5 IE.BCC,-66.,276,,3 2754#ONL3 -67.#ONL3 ONL> IE.ONL,-67.,275,3 274.#NNN3 -68.#NNN3 NNNn IE.NNN,-68.,274, 3 273E#NFW3 -69.#NFW3 NFW2> IE.NFW,-69.,273, ;this code must be odd3 2726#BLB3 -70.#BLB3 BLBd% IE.BLB,-70.,272,I3 2706#NDR3 -72.#NDR3 NDR - IE.NDR,-72.,270,23 267i#URJ3 -73.#URJ3 URJ. IE.URJ,-73.,267,3 266C#NRJ3 -74.#NRJ3 NRJ4% IE.NRJ,-74.,266,63 265<#EXP3 -75.#EXP3 EXPN3 IE.EXP,-75.,265,e3 2647#BTF3 -76.#BTF3 BTFF" IE.BTF,-76.,264,3 263 #NNC3 -77.#NNC3 NNC71 IE.NNC,-77.,263,a3 262a#NDA3 -78.#NDA3 NDA $ IE.NDA,-78.,262,3 261m#NLK3 -79.#NLK3 NLKiB IE.NLK,-79.,261,3 260>#NST3 -80.#NST3 NSTJ/ IE.NST,-80.,260,3 257#FLN3 -81.#FLN3 FLNA IE.FLN,-81.,257,3 256#IES3 -82.#IES3 IES2* IE.IES,-82.,256,3 255 #PES3 -83.#PES3 PES * IE.PES,-83.,255,3 254#ALC3 -84.#ALC3 ALC2% IE.ALC,-84.,254, 3 253N#ULK3 -85.#ULK3 ULK1 IE.ULK,-85.,253,S3 252t#WCK3 -86.#WCK3 WCK8& IE.WCK,-86.,252,3 246a#DSQ3 -90.#DSQ3 DSQ& IE.DSQ,-90.,246,3 245e#IQU3 -91.#IQU3 IQUe/ IE.IQU,-91.,245, 3 244I#RES3 -92.#RES3 RESa1 IE.RES,-92.,244,I3 2438#TML3 -93.#TML3 TMLe) IE.TML,-93.,243,I3 2428#NNT3 -94.#NNT3 NNT % IE.NNT,-94.,242,I3 2418#TMO3 -95.#TMO3 TMO5% IE.TMO,-95.,241,,3 2402#CNR3 -96.#CNR3 CNR4& IE.CNR,-96.,240,3 2376#UKN3 -97.#UKN3 UKN4 IE.UKN,-97.,237,I2 .FLUSH#FLUSH2 FLUSHtN The FCS .FLUSH entry point is designed to flush the block buffer of a fileN being written in record mode. This text is written to provide suggestions for its use.s - Why would you ever need to use such a thing?. ,N Consider the way FCS operates when it is doing PUT$s to a disk file. On eachN PUT$, FCS packs a record in to the block buffer. When the block is full orN the file is closed, FCS writes the block to the file. Thus, you can usually; not predict when a PUT$ will actually cause I/O to occur. eN There can be circumstances where it is necessary for your application that aN record actually be written to a file. For example, suppose a task gathersN information from a lab device, writing small records to a file every fewN minutes. In the event of a system crash, data may be present in the tasksN blo00t~~-z zx*ck buffer, not yet written to the file. This data may be lost unless aN .FLUSH is called after every PUT$. You might also want to call .FLUSH toN flush the buffer if a second task needs to read this data from the file,* without the first task closing the file. ( When will you never need to use .FLUSH? uN .FLUSH is never necessary for block mode (WRITE$) I/O operations or forN record-mode (PUT$) operations to a record-oriented device. The block bufferN is always written in these cases. Files being read, of course, never need! to have a block buffer flushed. cN Calling .FLUSH when a file is open under these circumstances causes no actionN to occur, except the return of a cleared carry bit and status +1 (success) in FDB byte F.ERR. iM Why not simply close the file to write out the current buffer and reopen it?s N Indeed. Closing the file guarantees that the block buffer is flushed and thatN the file attributes (see below) are written back to the file header. However,N closing and reopening a disk file frequently causes a FCS and F11ACP toN execute quite a bit of code and access the disk several times; you may notN want to incur this much overhead. Calling .FLUSH may or may not be the best- choice under your individual circumstances. l  Performance considerations: N Note that calling .FLUSH after every PUT$ can potentially cause a greatN increase in I/O activity, compared to just invoking PUT$s. One alternativeN might be to call .FLUSH only after a certain amount of time has passedN without another PUT$ being invoked. In this way, crash danger to the file may be minimized. y t( Writing file attributes to a disk file: gN When writing a file, some file attributes, notably F.EFBK and F.HIBK, theN end-of-file and high-allocation block numbers, are not written to the fileN header by FCS until the file is closed. Thus, even if frequent calls ofN .FLUSH are used to ensure that a file contains recent information, the fileN header will not reflect this fact while the file is open. Another taskN trying to read the file (open for shared read) will find an end-of-file errorN returned on the first GET$. If a system crash occurs, the data in the fileN is recoverable, but only by manipulating the end-of-file block number in the file header, as with PIP /EOF.  aN Whenever new records are being written past the end-of-file which existed atN OPEN$ time, this problem can occur. In this sense, a new file has anN immediate "OPEN$ time end-of-file", and a file open for append or update hasN its old end-of-file as the "OPEN$ time end-of-file". A file open for modifyN does not have this problem because it cannot be extended; the F.EFBK andN F.HIBK fields are always correct, even if several tasks are operating on the file. N Attributes may be written back to the file header while a file is open byN using a write-attributes QIO, function code IO.WAT, using attribute 4.N (Incidentally, reading file attributes given a file ID number can be done in& in a similar way using attribute -4.) N Writing file attributes is illustrated below, in code purloined from COT.TSK module COTWAT:e  n/ .TITLE COTWAT - WRITE FILE ATTRIBUTES FROM FDBr .IDENT /01.00/  n; 6; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY6; BE USED OR COPIED ONLY IN ACCORDANCE WITH THE TERMS; OF SUCH LICENSE.; 6; COPYRIGHT (c) 1981 BY DIGITAL EQUIPMENT CORPORATION.; ALL RIGHTS RESERVED.; ; STEVE RUZICH 28-MAY-81 n;f?; THIS ROUTINE REQUESTS THE F11ACP TO WRITE THE FILE ATTRIBUTES4%; FROM THE FCS FILE DESCRIPTOR BLOCK.l;r d l, HA.UAT=4 ;WRITE USER FILE ATTRIBUTES CODE T PRMLST: ;QIO PARAMETER LISTL .WORD 0 ;FILE ID POINTER * .WORD ATTLST ;POINTER TO ATTRIBUTE LIST ATTLST: ;QIO ATTRIBUTE LIST 1 .BYTE HA.UAT,S.FATT ;WRITE USER FILE ATTRIBUTESS6ATTADR: .WORD 0 ;THEY RESIDE AT THE BEGINNING OF FDB" .WORD 0 ;ATTRIBUTE LIST STO00t~u~v~u|mx|OxssPPER S;+); ***- .WRATT - WRITE ATTRIBUTES FROM FDB;.; INPUT: R0 = FILE DESCRIPTOR BLOCK ADDRESS;E#; OUTPUT: R0, R4, R5 - PRESERVEDC; R1, R2, R3 - ALTEREDl; CC - NO ERROR#; CS - FCS ERROR CODE IN F.ERR(R0);-7.WRATT::MOV #IO.WAT,R1 ;WRITE ATTRIBUTES FUNCTION CODE - MOV #2,R2 ;THERE ARE TWO DPB PARAMETERS...T$ MOV #PRMLST,R3 ;...AT THIS ADDRESS MOV R0,(R3) ;: ADD #F.FNB+N.FID,(R3) ;FID ADDRESS IS THE FIRST PARAMETER2 MOV R0,ATTADR ;FDB ADDRESS IS ADDR OF ATTRIBUTES' JMP .XQIO ;HAVE FCS EXECUTE THE QIO$R T .END B;.; INPUT: R0 = FILE DESCRIPTOR BLOCK ADDRESS;E#; OUTPUT: R0, R4, R5 - PRESERVEDC; R1, R2, R3 - ALTEREDl; CC - NO ERROR#; CS - FCS ERROR CODE IN F.ERR(R0);-7.WRATT::MOV #IO.WAT,R1 ;WRITE ATTRIBUTES FUNCTION CODE - MOV #2,R2 ;THERE ARE TWO DPB PARAMETERS...T$ MOV #PRMLST,R3 ;...AT THIS ADDRESS MOV R0,(R3) ;: ADD #F.FNB+N.FID,(R3) ;FID ADDRESS IS THE FIRST PARAMETER2 MOV R0,ATTADR ;FDB ADDRESS IS ADDR OF ATTRIBUTES'1 FDTL ; FDT is a program designed to assist FORTRAN programmers in< debugging their programs. There are two versions of FDT.= The small FDT is designed to provide the necessary debugging< tools in a minimum of space. This version of FDT features:+ -- Variable examination and modification,2 -- Execution control (breakpoint set and clear).< VFDT, is somewhat larger. It is identical to FDT, but will< correctly handle virtual arrays. All functions have not yet: been checked on F77, but it seems to work as well on that# as on the F4P it was designed for.s For further information, type / AID FDT EXAMPLE ;FOR AN EXAMPLE OF FDT USAGEe. AID FDT COMMANDS ;FOR A LIST OF THE COMMANDS& or for a full document, you may type PRINT DR1:[330,2]FDT.DOC 2 EXAMPLEo' Sample command file for including FDT.r@ (Assumes there are three source modules: PROG, SUB1, and SUB2). i F4P PROG,PROG/LI:3=PROG F4P SUB1,SUB1/LI:3=SUB1 F4P SUB2,SUB1/LI:3=SUB2. TKB @PROG PROG.CMD file should look like this1 PROG,PROG/-SP/CR=PROG,SUB1,SUB2,LB:[1,1]FDT/DAr LB:[1,1]F4POTS/LB" FDT PROG,PROG=PROG,SUB1,SUB2/PROG O? (If overlayed, you must not have default core resident library C F4PRES or SYSRES. Thus the ODL command file must eliminate this).FC (If virtual arrays must be examined or changed, use LB:[1,1]VFDT).u 2 COMMANDS  Execution control:  1 ;B List all breakpoints.' [module:]entry-name;B Set breakpoint.F [module:]statement-number;B [module:]@line-number;B k ;C Clear all breakpoints.=+ [module:]entry-name;C Clear a breakpoint.P [module:]statement-number;C [module:]@line-number;C l ;G Return from a breakpoint./ @line-number;G Jump to a location and resumee statement-number;G execution.t ) ;X Exit program.  Variable examination: , Variable format:u [module:]variable-name i4 Array format (only VFDT can access virtual arrays):# [module:]array-name[(subscripts)][ u Display type terminators: / Display by type. ;A Display in ASCII.; ;D Display in decimal (only affects logical and integer).o9 ;O Display in octal (only affects logical and integer).  R Modification terminators:# Close location.d3 Open and display next array element. - ^ Open and display last array element.ariable format:u [module:]variable-name i4 Array format (only VFDT can access virtual arrays):# [module:]array-name[(subscripts)][ u Display type terminators: / Display by t1 FDUG FDUmp lists output in OCTAL,ASCII, and RAD50 on the same line of print  FDUmp supports 2 switches  /AB this specifies the offsets for each line to be listed relative toE the beginning of the file. that is, block 1 starts at '000000, block+ 2 starts at 1000, block 3 at 2000 ....etc. ) /BL:n:m List blocks n thru m inclusive or1 /BL:n List blocks n thru end of file inclusive   Calling proceedure:  MCR>FDU filespec[/switches] - where filespec is a fi00v~w~x~y~z~*le name of the forms DDN:[GGG,UUU]NAME.TYP;VERS  output will be spooled to LP0:FDUmp supports 2 switches  /AB this specifies the offsets for each line to be listed relative toE the beginning of the file. that is, block 1 starts at '000000, block+ 2 starts at 1000, block 3 at 2000 ....etc. ) /BL:n:m List blocks n thru m inclusive or1 /BL:n List blocks n thru end of file inclusive   Calling proceedure:  MCR>FDU filespec[/switches] - where filespec is a fi1 FHD9 FHD is a program to list the file header of a given file 6 Primary purpose is to list all the pieces of the file9 to determine how fragmented the file is if it is a large9 data file, and to determine which absolute blocks on the: disk the file occupies, (if troubles occur with the disk) < After listing routine information from the file header, fhd, lists each piece of the file, reporting on:  Number of blocks (decimal): First block # (absolute disk block number, 2 word, octal): Last block # (absolute disk block number, 2 word, octal) l< Fhd also reports if the header had to be extended (by using= an extension file header) and lists the unique file id (FID)d for the extension filee i calling proceedure  MCR>FHD nnnnnn,mmmmmm where( t. nnnnnn,mmmmmm is the file's (unique) FILE ID> (obtained via a PIP or SRD directory using the "/FU" switch)e of the file, reporting on:  Number of blocks (decimal): First block # (absolute disk block number, 2 word, octa1 FHX; FHX is a program to list the file header for any file that has the header extended. : Its primary use is to search the INDEX file for clobbered: headers. DSC can bomb if it encounters bad headers but it: will report the File ID of the extension file header, not: the File ID of the primary file header, and headers have8 no backward linkage to let one find the primary header.   calling proceedure MCR>FHX 1 FLB  Find Logical Block(s)? Utility to find files containing specified disk logical blocksn eG 1. Show all files using blocks in virtual block #15 of BITMAP.SYS:e  FLB TI:=DM:/BLK:15:15 8 2. Print a listing of the file using a specific LBN6 (Note that /LBN switch uses double precision): $ FLB LP:=DM:/LBN:0:4200:0:4200 J 3. List files represented by the 16 bits of word 10 of BITMAP VBN 15: " FLB =DM:/BLK:15:15/WD:10:10 ? 4. Search the BITMAP from block 15 to the end of the disk:i  FLB TI:=DM:/BLK:15i G 5. Search the BITMAP from specified word to the end of the device:#  FLB TI:=DM:/BLK:15/WD:20:=DM:/BLK:15:15 8 2. Print a listing of the file using a specific LBN6 (Note that /LBN switch uses double precision): $ FLB LP:=DM:/LBN:0:4200:0:4200 J 3. List files represented by the 16 bits of word 10 of BITMAP VBN 15: " FLB =DM:/BLK:15:15/WD:10:10 ? 4. Search t1 FLXE FLX, or FILEX, is used as a media format interchange program to move< files among Files-11, DOS-11, and RT-11 structured volumes. 9 FLX performs file transfers and format conversions from:! o DOS-11 to Files-11 volumes! o Files-11 to DOS-11 volumes o DOS-11 to DOS-11 volumes# o Files-11 to Files-11 volumes o Files-11 to RT-11 volumes o RT-11 to RT-11 volumes o RT-11 to Files-11 volumes - The general form of the FLX command line is: 7 devicespec/switch=infile/switch,...,infilen/switch  eE devicespec is the specification for the FLX output device. DEV:[UFD]c e+ infilen are the input file specifications.a fI For more information on FLX switches type AID FLX VOLUMESWITCH, AID FLX 1& TRANFERSWITCH, AID FLX CONTROLSWITCH.2 VOLUMESWITCH D FLX has three volume format switches that specify the format of the8 volume on which the file is stored. These switches are:@ /DO Identifies the volume as a DOS-11 formatted volume00z~{~~u|mx|OxssB /RS Identifies the volume as a Files-11 formatted volume@ /RT Identifies the volume as an RT-11 formatted volume B Input volumes default to DOS-11 format and output volumes defaultE to Files-11 format. You can change the default by entering /RS or/DOL on a command line by itself.H H /RS sets the default for input to Files-11 format and output to DOS-11. mH /DO sets the default for input to DOS-11 format and output to Files-11. tE For example, to specify the default transfer direction from Files-11l to DOS-11, type: m FLX>/RSD To specify the default transfer direction from DOS-11 to Files-11,  type: l FLX>/DOB If /RT is specified on one side of the command line, the default ! entry for the other side is /RS. 2 TRANSFERSWITCH @ FLX has three transfer mode switches, one for each type of file@ format. Format conversions can be in either direction, and are ? between DOS-11 files and Files-11 files or between RT-11 fileseA and Files-11 files. Specifying a transfer mode switch determinese@ which format the output file will be in after the conversion of the file. These switches are: lB /FA:n[.] The DOS-11 or RT-11 output file is to be formatted ASCII. fB /FB:n[.] The DOS-11 or RT-11 output file is to be formatted binary.f eF /IM:n[.] The transfer is to be in image mode. Image mode forces% fixed length records.i -E If you specify n with any of the above switches, fixed length outputnC records are generated. If n is specified when the output is not a n Files-11 file, n is ignored.f .2 CONTROLSWITCHr O /BL:n[.] Specifies the number of contiguous blocks in octal or decimal. L /BS:n[.] Specifies the block size in bytes for cassette tape output.D /CO Specifies that the output file is to be contiguous.< /DE Deletes files from a DOS-11 DECtape or disk@ /DI Causes a directory listing of cassettes or DOS B volumes to be listed in a specified output file.O /DNS:n Specifies the density of a magnetic tape where n=800/1600/6250rD /FC Indicates that FORTRAN carriage control conventions9 are to be used when using FORTRAN files. 7 /ID Identifies the current version of FLX.i$ /LI Same function as DIL /NU:n[.] Used with the /ZE and /RT switches to specify the number ofL directory blocks in octal or decimal to allocate when init-L ializing an RT-11 disk or DECtape. Maximum is 37(8)/31(10).N /RW Rewinds the magnetic tape before beginning the file transfer.F /SP Specifies that the converted file is to be spooled by4 the print spooler or queue manager.D /UI Specifies that the output file is to have the same ' UFD as the input file.dD /VE Specifies that each record written to a cassette is# read and verified.hF /ZE Initializes cassettes or DOS-11 volumes. Initializing> erases any files already on the device. e beginning the file transfer.F /SP Specifies that the converted file is to be spooled by4 the print spooler or queue manager.D /UI Specifies that the output file is to have the same ' UFD as the input file.dD /VE Specifies that each record written to a cassette is# read and 1 FMTG FMT, the disk volume formatter utility, allows DB:-, DK:-, DL:-, DM:-,G DP:-, DR:-, and DY:-type devices to be formatted and/or verified. TheI disk volumes may be completely formatted, or formatted on an individual H sector or (for DM: disks) individual track basis by means of the manualD mode option. Last-track bad block information on DL:, DM:, and DR:E disks is also taken into account. On RX02 floppy disks, the densityB can be set to either single or double without diagnostic su00{~~x~y~z~*pport.  MCR>FMT ddn:[/switch(es)]< /BAD - After formatting, runs the Bad Block Utility, (BAD)' /DENS - Sets RX02 floppy disk density. 9 /ERL - Sets maximum number of errors allowed on volume.o /MAN - Enters manual mode.2 /NOVE - Inhibits the default volume verification.2 /OVR - Overrides manufacturer's bad sector file.< /VE - Verifies that the volume was successfully formatted5 /WLT - Rewrites the manufacturer's bad sector file.n2 /@Y - Uses input from an indirect command file. B Type AID FMT 'switch' for the description of a particular switch.2 VE VERIFY D The /VE switch verifies that the format operation was successful by@ reading back the headers and determining that they were written' correctly. This switch is the default.  u( FMT>DR1:/VE !Formats and verifies DR1:2 MAN' MANUAL fA The /MAN switch enters manual mode. This mode permits individualC sectors or (for DM: disks) individual tracks to be formatted. The H parameters entered are decimal unless prefixed with a pound sign ("#"). r5 FMT>DR1:/MAN/VE !Manually formats and verifies DR1:e E+ ** WARNING - Data will be lost on DR1: **s c Continue [Y OR N]? Y Entering manual modem Cylinder = 12 Track = 2c Sector = 1s c Operation completeu F6 Note that /MAN cannot be used with DY:-type devices. 2 OVRTE The /OVR switch overrides the Manufacturer's Bad Sector File on DM:-oF and DR:-type disk volumes. Usually, when writing the headers on suchE disks, any header marked bad in the MDBSF will have bad sector flagsFC set. Then when the verification process discovers a bad sector, a H message is printed. The /OVR switch inhibits this reporting operation. l. FMT>DR1:/VE/OVR !Overrides the MDBSF on DR1:2 @YI The /@Y switch uses input from an indirect command file. No operationaleG messages or warnings are printed, and no user intervention is possiblet until FMT completes.D t. FMT must be installed before you can use /@Y. sC You are cautioned against using this switch because volumes can bec( destroyed by an incorrect command line. = FMT>DR1:/@Y !Uses command lines from indirect command fileO0 FMT>@FMTIND !Invokes the indirect command file T2 BADE; The /BAD switch spawns the Bad Block Locator Utility (BAD)sD after the format operation is complete. If BAD is not installed, aH warning message is printed. Note that /BAD can only be used on systems that support spawned tasks. l- FMT>DR1:/BAD !Spawns the BAD utilityn2 WLTnF The /WLT switch rewrites the manufacturer's bad sector file after the@ format operation has completed. The MDBSF will contain entriesE for each new sector that is found to be bad. The header of each bad4 sector is also rewritten to flag the sector as bad. l? The /WLT switch must be specified when using FMT on DL: disks.o n@ The switch takes as an argument a decimal value that is used as the pack serial number. p/ FMT>DR1:/WLT=12345 !Rewrites the MDBSF on DR1:a2 ERL C The /ERL switch sets the maximum error limit for the volume. WhendA this error limit is reached, a message is printed and the format D operation is terminated. The default limit is 256(10) errors. Any< value greater than 0 or less than or equal to 256 is valid. t9 FMT>DR1:/ERL=150. !Sets the maximum error count for DR1:n !to 150(10)s2 DENS DENSITY A The /DENS switch sets the RX02 floppy disk density to either lowiD (single) or high (double). The default density is low. The switchH can also use SINGLE and DOUBLE as options. The following command lines are acceptable: r0 FMT>DYn:/DENS=LOW !Sets to low (single) density3 FMT>DYn:/DENS=SINGLE !Sets to single (low) densityr2 FMT>DYn:/DENS=HIGH !Sets to high (double) density4 FMT>DYn:/DENS=DOUBLE !Sets to double (high) density2 NOVEe -VEu NOVERIFY -VERIFY(@ The /NOVE switch inhibits the operation perfomed by the default /VERIFY switch. o4 FMT>DR1:/NOVE !Inhibits verification of DR1: after !it has been formattedo use SINGLE and DOUBLE 00|}~u|mx|Oxsstest test {Hughes, Bill AECL Chicago 8Q Chaundy, Chris AECL Canada eP Cook, George AECL Canada eP Clarke, john AECL Canada eP Hintz, Grant Applied Technology 8)8 Hobbs, Larry Applied Technology diAmpex Ampex Chicago 8QpAmpex Ampex Peake, Rober1 FON $ A phone number maintenance program: # FON - Give all phone numbersE FON NAME - Give the phone number and address of the desired person.K FON CHA - Make a change in this person's name, address, or phone number.( FON IN - Add a new name to the list.) FON XX - Delete a name from the list. 2************************************************** 1) DR1:[311,100]HELP.MAC;1 25 ;+*************** 2) DR3:[311,100]HELP.MAC;16D 24 ; 002 02-AUG-82 FRANK BORGER UPDATE TO WORK WITH MCR SYSTEMS 25 ;C 26 ; 003 21-DEC-83 FRANK BORGER UPDATE DEFAULT TO MORE COLUMNS, 27 ; AND MOD TO RESET DEPTH SMALLER 29 ;+2************************************************** 1) DR1:[311,100]HELP.MAC;10 31 ; FROM THE USERS KEYBOARD IT IS INVOKED*************** 2) DR3:[311,100]HELP.MAC;16N 35 ; TO AVOID CONFLICT WITH THE MCR "HELLO" COMMAND, ITS NAME WAS CHANGED 36 ; TO "AID"0 37 ; FROM THE USERS KEYBOARD IT IS INVOKED2************************************************** 1) DR1:[311,100]HELP.MAC;1O. 34 ; PDS>HELP OR PDS>HELP KEY-WORD-LIST 35 ; 4 36 ; WITH NO KEY-WORD-LIST, HELP WILL LIST ALL, 37 ; THE VALID PDS AND BATCH COMMANDS.+ 38 ; A NUMBER OF OTHER KEY-WORDS WILL 8 39 ; BE LISTED WHICH ARE TOPICS ABOUT WHICH "HELP"1 40 ; MAY PROVIDE SOME LEVEL OF EXPLANATION.E 41 ;"3 42 ; TYPING A KEY-WORD AFTER THE HELP COMMAND ; 43 ; WILL FURNISH THE USER WITH THE SKELETON FORM OF ***************** 2) DR3:[311,100]HELP.MAC;16, 40 ; PDS>AID OR PDS>AID KEY-WORD-LIST 41 ;W3 42 ; WITH NO KEY-WORD-LIST, AID WILL LIST ALLT, 43 ; THE VALID MCR AND BATCH COMMANDS.+ 44 ; A NUMBER OF OTHER KEY-WORDS WILLO7 45 ; BE LISTED WHICH ARE TOPICS ABOUT WHICH "AID"C1 46 ; MAY PROVIDE SOME LEVEL OF EXPLANATION.E 47 ;A2 48 ; TYPING A KEY-WORD AFTER THE AID COMMAND; 49 ; WILL FURNISH THE USER WITH THE SKELETON FORM OF 2************************************************** 1) DR1:[311,100]HELP.MAC;1 " 69 ; LUN 2 -- SY:HELP.TXT$ 70 ; LUN 3 -- SY:QIOSYM.DAT 71 NCOLS = 6. 72 CHARSPERCOL = 12.' 73 LINELENGTH = NCOLS*CHARSPERCOLE***************R 2) DR3:[311,100]HELP.MAC;16! 75 ; LUN 2 -- SY:MCR.HLP$ 76 ; LUN 3 -- SY:QIOSYM.DAT 77 NCOLS = 9. 78 CHARSPERCOL = 9.-' 79 LINELENGTH = NCOLS*CHARSPERCOLL2************************************************** 1) DR1:[311,100]HELP.MAC;1* 111 GMCR: GMCR$ ***************. 2) DR3:[311,100]HELP.MAC;16: 117 MCRFLG: .WORD 0 ;FLAG FOR WE'RE USING MCR.HLP FILE 118 GMCR: GMCR$C2************************************************** 1) DR1:[311,100]HELP.MAC;1 1 142 MOV (R4)+,(R0)+ ;++001 GET NAME OF FILE:2 143 MOVB (R4)+,(R0)+ ;++001 ( 3 CHARS LONG )2 144 OPEN$ #FDHELP ;++001 OPEN THE HELP FILE' 145 BCS 1$ ;++001 QUIT IF FAILED* 146 BR 25$ ;++001 147 20$: INC R4 ***************H 2) DR3:[311,100]HELP.MAC;166 149 MOV (R4),(R0)+ ;++001 GET NAME OF FILE ++0028 150 MOVB 2(R4),(R0)+ ;++001 ( 3 CHARS LONG ) ++0022 151 OPEN$ #FDHELP ;++001 OPEN THE HELP FILE" 152 BCC 25$ ;++002 BR IF OK3 153 MOV #"MC,HLPNM ;++002 ELSE DEFAULT TO MCRN+ 154 MOVB #'R,HLPN00~ ~x~y~z~*M+2 ;++002 HELP FILE08 155 INC MCRFLG ;++002 SHOW WE'RE WORKING WITH MCR) 156 OPEN$ #FDHELP ;++002 TRY AGAIN " 157 BCC 25$ ;++002 BR IF OK$ 158 BR 1$ ;++002 ELSE GIVE UP 159 20$: INC R402************************************************** 1) DR1:[311,100]HELP.MAC;1 . 154 CMPB (R4),#CH.DOL ; SKIP OVER DOLLAR***************P 2) DR3:[311,100]HELP.MAC;16, 166 TSTB (R4) ;++002 AND ON NULL LINE 167 BEQ NULL . 168 CMPB (R4),#CH.DOL ; SKIP OVER DOLLAR2************************************************** 1) DR1:[311,100]HELP.MAC;1 = 187 JMP MISSING ; WE'RE LOST. HELP AS MUCH AS POSSIBLE 188 ; ***************+ 2) DR3:[311,100]HELP.MAC;16> 201 ; JMP MISSING ; WE'RE LOST. HELP AS MUCH AS POSSIBLE2 202 MOVB (R0),DEPTH ; F. B. ELSE RESET DEPTH- 203 BR NXTREC ; F. B. AND TRY FOR MORE 204 ;02************************************************** 1) DR1:[311,100]HELP.MAC;16A 195 COMPCH: MOVB (R4),R3 ; GET CHARACTER FROM SEARCH STRING*- 196 MOV R3,R5 ; SEE IF IT'S LOWER CASEH 197 CALL LCASE ;M/ 198 BCC 20$ ; IT'S NOT SO LEAVE IT ALONE0 199 BICB #CH.SP,R3 ; CLEAR OUT 'SHIFT' BIT 200 20$:5 201 MOVB (R0),R1 ; GET CHARACTER OUT OF RECORDS+ 202 ; THAT MIGHT BE SHIFTED TOO !!R 203 MOV R3,R5 204 CALL LCASEA 205 BCC 30$ ; IT WAS NOT** 206 BICB #CH.SP,R1 ; CLEAR OUT SHIFT 207 30$:" 208 CMP R1,R3 ; COMPARE 'EM1 209 BNE NXTREC ; RATS! THE'RE DIFFERENT !!****************, 2) DR3:[311,100]HELP.MAC;16B 211 ;COMPCH: MOVB (R4),R3 ; GET CHARACTER FROM SEARCH STRING. 212 ; MOV R3,R5 ; SEE IF IT'S LOWER CASE 213 ; CALL LCASE ;0 214 ; BCC 20$ ; IT'S NOT SO LEAVE IT ALONE1 215 ; BICB #CH.SP,R3 ; CLEAR OUT 'SHIFT' BIT 216 ;20$:56 217 ; MOVB (R0),R1 ; GET CHARACTER OUT OF RECORD, 218 ; ; THAT MIGHT BE SHIFTED TOO !! 219 ; MOV R3,R5  220 ; CALL LCASE 221 ; BCC 30$ ; IT WAS NOT+ 222 ; BICB #CH.SP,R1 ; CLEAR OUT SHIFT) 223 ;30$:H# 224 ; CMP R1,R3 ; COMPARE 'EM)3 225 ; ;099FB ABOVE CHANGED FOR VERS 3.1 TO:O0 226 COMPCH: CMPB (R0),#'A ;099FB LOWER CASE# 227 BCS 30$ ;099FB BR IF NOTS6 228 BICB #CH.SP,(R0) ;099FB ELSE CHANGE TO UPPER3 229 30$: CMPB (R0),(R4) ;099FB DO THEY MATCH ?01 230 BNE NXTREC ; RATS! THE'RE DIFFERENT !! 2************************************************** 1) DR1:[311,100]HELP.MAC;1  273 LCASE: CMPB R5,#CH.BA  274 BLO 10$ 275 CMPB R5,#CH.BZ2 276 BHI 10$ 277 CLC 278 RETURN 279 10$: SEC 280 RETURNF 281 ; ***************P 2) DR3:[311,100]HELP.MAC;16, 294 LCASE: CMPB R5,#CH.BA ;BELOW SMALL A& 295 BLO 10$ ;RETURN C-BIT IF YES 296 ; CMPB R5,#CH.BZ 297 ; BHI 10$9 298 ; CLCC 299 ; RETURN 300 ;10$: SECH. 301 CMPB #CH.BZ,R5 ;099FB ABOVE SMALL Z ?? 302 10$: RTS PC ;099FB RETURN WITH C-SET IF NOT LOWER CASEC 303 ;52************************************************** 1) DR1:[311,100]HELP.MAC;1C0 284 ALPHA: CALL LCASE ; IS IT LOWER CASE ?( 285 BCC 10$ ; YES, WELL THATS O.K, 286 BIS #CH.SP,R5 ; JUST PRETEND SHIFT 287 CALL LCASEL 288 10$: RETURN 289 ;I***************  2) DR3:[311,100]HELP.MAC;161 306 ;ALPHA: CALL LCASE ; IS IT LOWER CASE ?$) 307 ; BCC 10$ ; YES, WELL THATS O.KE- 308 ; BIS #CH.SP,R5 ; JUST PRETEND SHIFTW 309 ; CALL LCASE6 310 ALPHA: CMPB R5,#'0 ;099FB BELOW DIGIT RANGE ?, 311 BCS 10$ ;099FB RETURN C-BIT IF YES1 312 CMPB #'9,R5 ;099FB OR ABOVE DIGIT RANGE0 313 BCC 10$ ;099FB RETURN C-CLEAR IF ABOVE1 314 CMPB R5,#'A ;099FB BELOW UPPER-CASE A ? ) 315 BCS 10$ ;099FB RETURN C-BIT SET*/ 316 CMPB #'Z,R5 ;099FB OR BIGGER THAN Z ? 4 317 10$: RETURN ;099FB RETURN CHARACTER STATUS 318 ;02************************************************** 1) DR1:[311,100]HELP.MAC;1 5 344 PUT$ #FDCON00~u|mx|OxssS,#LINE,R4 ; PRINT OUT ALL WE CAND6 345 10$: PUT$ #FDCONS,#CHAT2,#LCHAT2 ; INVITE MORE***************  2) DR3:[311,100]HELP.MAC;167 373 CMP R4,#79. ; F B LIMIT TO SCOPE SCREEN SIZE  374 BLE 99$ 375 MOV #79.,R49 376 99$: PUT$ #FDCONS,#LINE,R4 ; PRINT OUT ALL WE CAN 6 377 10$: PUT$ #FDCONS,#CHAT2,#LCHAT2 ; INVITE MORE2************************************************** 1) DR1:[311,100]HELP.MAC;1*K 358 ; COPY LINE INTO LINE BUFFER. TRUNCATE IF NECESSARY TO 9 CHARACTERSLG 359 ; IF THE LINE BUFFER IS FULL ( IE. WE'VE DONE IT 7 TIMES ) THEN;7 360 ; OUTPUT THE LINE AND RE-INITIALISE THE BUFFER.A***************P 2) DR3:[311,100]HELP.MAC;16W 390 ; COPY LINE INTO LINE BUFFER. TRUNCATE IF NECESSARY TO CHARSPERCOL-1 CHARACTERS;G 391 ; IF THE LINE BUFFER IS FULL ( IE. WE'VE DONE IT 9 TIMES ) THEN 7 392 ; OUTPUT THE LINE AND RE-INITIALISE THE BUFFER.2************************************************** 1) DR1:[311,100]HELP.MAC;1E< 369 CMP CHRSIN,#CHARSPERCOL-1 ; DONE NINE CHARACTERS ?% 370 BNE 10$ ; NO, NEXT PLEASE. I 371 20$: SUB #CHARSPERCOL,CHRSIN ; CALC BY HOW MANY WE MUST SHIFT R4 5 372 SUB CHRSIN,R4 ; NOW CHECK IF WE HAVE FILLEDL***************A 2) DR3:[311,100]HELP.MAC;16> 401 CMP CHRSIN,#CHARSPERCOL-1 ; DONE ALL FOR ONE COLUMN ?% 402 BNE 10$ ; NO, NEXT PLEASE.TH 403 20$: SUB #CHARSPERCOL,CHRSIN ; CALC BY HOW MANY WE MUST SHIFT R45 404 SUB CHRSIN,R4 ; NOW CHECK IF WE HAVE FILLED62************************************************** 1) DR1:[311,100]HELP.MAC;1N0 375 PUT$ #FDCONS,#LINE,R4 ; ELSE, DUMP LINE0 376 CALL INIT ; RE-INITIALISE LINE BUFFER***************O 2) DR3:[311,100]HELP.MAC;167 407 CMP R4,#79. ; F B LIMIT TO SCOPE SCREEN SIZEP 408 BLE 98$ 409 MOV #79.,R44 410 98$: PUT$ #FDCONS,#LINE,R4 ; ELSE, DUMP LINE0 411 CALL INIT ; RE-INITIALISE LINE BUFFER2************************************************** 1) DR1:[311,100]HELP.MAC;1*7 412 .ASCII " The following commands are available"3 413 .ASCII <15><12>***************L 2) DR3:[311,100]HELP.MAC;16G 447 .ASCII " The following commands and/or switches are available"3 448 .ASCII <15><12>2************************************************** 1) DR1:[311,100]HELP.MAC;1#G 416 .ASCII " For more information, type HELP followed by keywords"L 417 LCHAT2=.-CHAT2L**************** 2) DR3:[311,100]HELP.MAC;16F 451 .ASCII " For more information, type AID followed by keywords" 452 LCHAT2=.-CHAT2b 17 differences found14HELP.DIF=DR1:[311,100]HELP.MAC,DR3:[311,100]HELP.MAC 447 .ASCII " The following commands and/or switches are available"3 448 .ASCII <15><12>2************************************************** 1) DR1:[311,100]HELP.MAC;1#G 416 .ASCII " For more information, type HELP followed by keywords"L 417 LCHAT2=.-CHAT2L**************** 2) DR3:[311,100]HELP.MAC;16F 451 .ASCII " For more information, type AID-23<; 002 02-AUG-82 FRANK BORGER UPDATE TO WORK WITH MCR SYSTEMS;;; 003 21-DEC-83 FRANK BORGER UPDATE DEFAULT TO MORE COLUMNS$; AND MOD TO RESET DEPTH SMALLER-30F; TO AVOID CONFLICT WITH THE MCR "HELLO" COMMAND, ITS NAME WAS CHANGED ; TO "AID"-34,42$; PDS>AID OR PDS>AID KEY-WORD-LIST;+; WITH NO KEY-WORD-LIST, AID WILL LIST ALL$; THE VALID MCR AND BATCH COMMANDS.#; A NUMBER OF OTHER KEY-WORDS WILL/; BE LISTED WHICH ARE TOPICS ABOUT WHICH "AID"); MAY PROVIDE SOME LEVEL OF EXPLANATION.2;G*; TYPING A KEY-WORD AFTER THE AID COMMAND-69,72 ; LUN 2 -- SY:MCR.HLPG ; LUN 3 -- SY:QIOSYM.DAT NCOLS = 9. CHARSPERCOL = 9.H-1102MCRFLG: .WORD 0 ;FLAG FOR WE'RE USING MCR.HLP FILE-142,146. MOV (R4),(R0)+ ;++001 GET NAME OF FILE ++0020 MOVB 2(R4),(R0)+ ;++001 ( 3 CHARS LONG ) ++002* OPEN$ #FDHELP ;++001 OPEN THE HELP FILE BCC 25$ ;++002 BR IF OK+ MOV #"MC,HLPNM ;++002 ELSE DEFAULT TO MCRD# MOVB #'R,HLPNM+2 ;++002 HELP FILE0 INC MCRFLG ;++002 SHO00~y~z~*W WE'RE WORKING WITH MCR! OPEN$ #FDHELP ;++002 TRY AGAINM BCC 25$ ;++002 BR IF OK BR 1$ ;++002 ELSE GIVE UP-153$ TSTB (R4) ;++002 AND ON NULL LINE BEQ NULLC-187,1876; JMP MISSING ; WE'RE LOST. HELP AS MUCH AS POSSIBLE* MOVB (R0),DEPTH ; F. B. ELSE RESET DEPTH% BR NXTREC ; F. B. AND TRY FOR MORE)-195,208:;COMPCH: MOVB (R4),R3 ; GET CHARACTER FROM SEARCH STRING&; MOV R3,R5 ; SEE IF IT'S LOWER CASE; CALL LCASE ;(; BCC 20$ ; IT'S NOT SO LEAVE IT ALONE); BICB #CH.SP,R3 ; CLEAR OUT 'SHIFT' BIT;20$:#.; MOVB (R0),R1 ; GET CHARACTER OUT OF RECORD$; ; THAT MIGHT BE SHIFTED TOO !! ; MOV R3,R5R ; CALL LCASE; BCC 30$ ; IT WAS NOT#; BICB #CH.SP,R1 ; CLEAR OUT SHIFTO;30$:P; CMP R1,R3 ; COMPARE 'EMR+; ;099FB ABOVE CHANGED FOR VERS 3.1 TO:C(COMPCH: CMPB (R0),#'A ;099FB LOWER CASE BCS 30$ ;099FB BR IF NOTH. BICB #CH.SP,(R0) ;099FB ELSE CHANGE TO UPPER+30$: CMPB (R0),(R4) ;099FB DO THEY MATCH ?0-273,280$LCASE: CMPB R5,#CH.BA ;BELOW SMALL A BLO 10$ ;RETURN C-BIT IF YES; CMPB R5,#CH.BZ ; BHI 10$C; CLCR; RETURN ;10$: SEC & CMPB #CH.BZ,R5 ;099FB ABOVE SMALL Z ?710$: RTS PC ;099FB RETURN WITH C-SET IF NOT LOWER CASES-284,288);ALPHA: CALL LCASE ; IS IT LOWER CASE ?P!; BCC 10$ ; YES, WELL THATS O.KD%; BIS #CH.SP,R5 ; JUST PRETEND SHIFT' ; CALL LCASE.ALPHA: CMPB R5,#'0 ;099FB BELOW DIGIT RANGE ?$ BCS 10$ ;099FB RETURN C-BIT IF YES) CMPB #'9,R5 ;099FB OR ABOVE DIGIT RANGE0( BCC 10$ ;099FB RETURN C-CLEAR IF ABOVE) CMPB R5,#'A ;099FB BELOW UPPER-CASE A ?M! BCS 10$ ;099FB RETURN C-BIT SET ' CMPB #'Z,R5 ;099FB OR BIGGER THAN Z ?B,10$: RETURN ;099FB RETURN CHARACTER STATUS-344,344/ CMP R4,#79. ; F B LIMIT TO SCOPE SCREEN SIZE  BLE 99$ MOV #79.,R4199$: PUT$ #FDCONS,#LINE,R4 ; PRINT OUT ALL WE CAN -358,359O; COPY LINE INTO LINE BUFFER. TRUNCATE IF NECESSARY TO CHARSPERCOL-1 CHARACTERS1?; IF THE LINE BUFFER IS FULL ( IE. WE'VE DONE IT 9 TIMES ) THENI-369,3716 CMP CHRSIN,#CHARSPERCOL-1 ; DONE ALL FOR ONE COLUMN ? BNE 10$ ; NO, NEXT PLEASE.B@20$: SUB #CHARSPERCOL,CHRSIN ; CALC BY HOW MANY WE MUST SHIFT R4-375,375/ CMP R4,#79. ; F B LIMIT TO SCOPE SCREEN SIZE4 BLE 98$ MOV #79.,R4,98$: PUT$ #FDCONS,#LINE,R4 ; ELSE, DUMP LINE-412,412? .ASCII " The following commands and/or switches are available"O-416,416> .ASCII " For more information, type AID followed by keywords"/; IF THE LINE BUFFER IS FULL ( IE. WE'VE DONE IT 9 TIMES ) THENI-369,3716 CMP CHRSIN,#CHARSPERCOL-1 ; DONE ALL FOR ONE  1 HOL6 HOL - Disk Fragmentation List Utility  O HOL is a small task aimed to give the user detailed information on howO fragmented his disks are. For any given FILES-11 device it will list out allO (or optionally just those over a given size) the contiguous 'holes' on thatO device, giving starting block number in decimal (optionally in octal) and sizeA in decimal, and the total number of free blocks for the device.   HOL may be invoked either by:  % >HOL [DDn:][/nnnn][/Octal] a or  >RUN $HOL $ HOL>[DDn:][/nnnn][/Octal]  aL Where DDn: is a valid Files-11 device (the n and : are optional) whichL defaults to SY: if omitted, and nnnn is an optional decimal number (up to 9L digits) specifying a minimum size for the 'holes' to be listed. /OctalL indicates that logical block numbers are to be displayed in octal. This< switch can be specified as /O, /OC, /OCT, /OCTA or /OCTAL.  5 For a listing of error messages, type AID HOL ERRORS 2 ERR: HOL may produce one of the following error messages:  - 1. HOL - Failure on reading BITMAP.SYS c tN An error occurred trying to read the file BITMAP.SYS on the device > specified. Most probably the device is not mounted.  e 2. HOL - Illegal device  tN The device specified does not exist on the system, or is not a valid  Files-11 disk.   3. HOL - Bad switch 00"#&u|mx|Oxss N The user typed a slash (/) in his commandline, but followed it with F something other than a valid decimal number or OCTAL keyword  u 4. HOL - Command error  A The command line specified was not syntactically correcte e > specified. Most probably the device is not mounted.  e 2. HOL - Illegal device  tN The device specified does not exist on the system, or is not a valid  Files-11 disk.   3. HOL - Bad switch 1 IDXL( INDEX SWITCHES-INITIAL SETTING IS 'OFF'7 /A STATISTICS /C DELETE COMMON/TYPE UNUSED /D DEBUG5 /E 80 COLUMN /G COMMON VAR/NAME ONLY /H HELPD /I SUPER INDEX /L LP: MODE(132 COLUMN) /M APPEND OUTPUT(RSX)A /N NO LIST /O LIST OPTIONS IN EFFECT /S ADD TO SUPER INDEXA /SP SPOOL(RSX) /U COMMON/TYPE UNUSED VARS /X LOCAL VARS ONLY HOW USED MNEMONICSB ARITHMETIC LINE DA DATA FH CHARACTER FCN PA PARAMETERB = ASSIGNED VALUE DE DECODE FI INTEGER FUNCTION PG PROGRAMC * LABEL LOCATION DF DEFINE FILE FL LOGICAL FUNCTION PR PRINTN5 AC ACCEPT DI DIMENSION FN FIND RD READN; AG FCN/SUB ARG DP DOUBLE PRECISION FO FORMAT RL REALU= AS ASSIGN LABEL DO DO FR REAL FUNCTION RW REWINDI: BD BLOCK DATA EF ENDFILE FU FUNCTION SA SAVE; BS BACKSPACE EN ENCODE GT GO TO SU SUBR NAMEC2 BY BYTE EQ EQUIVALENCE IF IF TY TYPE8 CE CLOSE EX EXTERNAL IN INTEGER VI VIRTUAL3 CL CALL EY ENTRY IQ INQUIRE WR WRITEE2 CM COMMON VAR FB BYTE FUNCTION IT INTRINSIC1 CN COMMON NAME FC COMPLEX FUNCTION LG LOGICALA* CX COMPLEX FD D. P. FCN OP OPENAT RL REALU= AS ASSIGN LABEL DO DO FR REAL FUNCTION RW REWINDI: BD BLOCK DATA EF ENDFILE FU FUNCTION SA SAVE; BS BACKSPACE EN ENCODE GT GO TO SU SUBR NAMEC2 BY BYTE EQ EQUIVALENCE IF IF TY TYPE8 CE CLOSE EX EXTERNAL IN INTEGER VI VIRTUAL3 CL CALL 1 INForm ' INFORM  = INF is a system program (similiar to SYS) which can display:  Active Task List INF ACT Node Usage INF NOD Clock Queue INF CKQ Device's PUD INF PUD Partition Map INF MAP  Device Forms Types INF FRM  A Task's ATL INF ATL A Task's STD INF STD  A Task's Pending I/O INF IOR % A Terminal's Characteristics INF TER . for more information about any display, type: ( AID INF xxx (where xxx is ATL!NOD!etc) N2 ACT) INF ACT [/e display active task list  FUNCTION r -------- w hK Provide a listing of all currently active tasks, along with k! their address in core. N U  CALLING SEQUENCE D ------- --------  T MCR>INF ACT  -------  T ' ALLOWABLE SWITCH T --------- ------  K /E Switch provides extended listing, including task STATUS and e TI. 2 NODN' INF NOD display system node useage  k s FUNCTION C -------- - -K List detailed accounting of node usage. Includes total number K of nodes in the system, number of free nodes, nodes allocated to E& different tasks and tables.    CALLING SEQUENCE - ------- -------- O L MCR>INF NOD  -------    ALLOWABLE SWITCHES t --------- -------- d  None. 2 CKQ $ INF CKQ show system clock queue k s FUNCTION C -------- - -B List all currently scheduled events in the clock queue.  u r CALLING SEQUENCE  ------- --------  e MCR>INF CKQ  -------  l  ALLOWABLE SWITCHES U --------- -------- - O None. 2 PUDO) INF PUD ddnn:[/e] list a device's PUD  L FUNCTION  -------- - -; Provide a 00*1~y~z~*listing of the PUD for a given device. o q e CALLING SEQUENCE C ------- --------   MCR>INF PUD XX:N l ------------  u. Where XX:N is the device descriptor  - - ALLOWABLE SWITCH N --------- ------  lK /F Switch provides full listing of PUD including volumn control 2 block, (not listed by default command.) 2 MAP 0 INF MAP [/P] map a partition  FUNCTION  -------- f aK Provide a "MAP" of a partition, listing all active tasks (and -: pure areas,) the FTL, CTL and all COMMON areas.  - CALLING SEQUENCE X ------- --------   MCR>INF MAP XXXXXX N --------------  ' Where XXXXXX= Partition name  P ALLOWABLE SWITCH  --------- ------ d K /P Switch lists all currently used areas and holes in the parti- K tion, ordered sequentially by starting address, providing a much A clearer display of why partition XXXXXX is fragmented. a2 FRMt& INF FRM display device forms type   FUNCTION  -------- - -K Provides a listing of all printing devices who have their forms type set to non-zero.   P CALLING SEQUENCE  ------- -------- d  MCR>INF FRM  -------  s d ALLOWABLE SWITCHES  --------- --------  r None v'n2 ATLh4 INF ATL [/ti=ttnn:] display task's ATL f m FUNCTION N -------- c oD Provides a listing of the ATL entry for a specified task.   r CALLING SEQUENCE i ------- -------- r  MCR>INF ATL XXXXXX  -------------- E N0 Where XXXXXX is the task to be listed  >  ALLOWABLE SWITCH  --------- ------ W HM /TI:TTn Switch list ATL for task at a terminal other than your own.T2 STD , INF STD display a task's STD   FUNCTION  --------  D Provides a listing of the STD entry for a specified task.    CALLING SEQUENCE  ------- --------   MCR>INF STD XXXXXX  --------------  0 Where XXXXXX is the task to be listed    ALLOWABLE SWITCH  --------- ------   None l2 IOR 7 INF IOR display a task's outstanding ION T t FUNCTION  --------  K Provides a listing of the IO request nodes for a specified task.   r CALLING SEQUENCE  ------- -------- E  MCR>INF IOR XXXXXX  --------------  0 Where XXXXXX is the task to be listed  X i ALLOWABLE SWITCH  --------- ------ H  None -2 TER-3 INF TER TTnn: display terminal characteristicse  p FUNCTION i --------  9 List terminal characteristics for a given TTY. l i o CALLING SEQUENCE s ------- --------   MCR>INF TER TT:NN  -------------  1 Where TT:NN is the terminal descriptor -   ALLOWABLE SWITCH  --------- ------   None TCH  --------- ------ H  None -2 TER-3 INF TER TTnn1 INI6 The general form of the Initialize Volume command is:+ INI[TVOL] ddnn:[volume-label][/keyword(s)]= where: ddnn is the device name and unit number of the volume to be initialized.G If there are too many options to fit on one command line, the line mayF be continued by ending each line except the last with a hyphen ("-").H The volume on the specified device is initialized with the given label.G Keywords may be specified to control the parameters that the volume is initialized002#&u|mx|Oxss with. @ The following keywords are available to the INITVOLUME command:1 /BAD=[option] Select bad-block processingi> /DENS=density Select magtape/Check floppy disk density@ /EXT=block-count Specify file-extension increment@ /FPRO=[s,o,g,w] Specify default file protection for vol.? /INDX=index-file-position Specify position of index filei: /INF=index-size Specify initial size of index file5 /LRU=directory-count Specify directory countl> /MXF=file-count Specify maximum no. of files on volume0 /PRO=[s,o,g,w] Specify volume protection2 /UIC=[group,member] Specify owner of volume@ /WIN=retrieval-pointer-count Specify number of file windows2 /VI List above options and current values9 For more information on a keyword, type AID INI keyword.d< For information on defaults, type AID INI DEFAULTS keyword.2 ACCESS' The format for the /ACCESS keyword is:R /ACCESS="character"J /ACCESS allows the owner of a magnetic tape volume to specify the access J protection for the volume. Legal values for "character" are the uppercaseH letters A through Z, the digits 0 through 9, and the following special characters:0 ! " % & ' ( ) * + , - . / : < = > ? ;. The default value for "character" is a space.2 BADA+ The legal formats of the /BAD keyword are:s/ /BAD=[MAN] Accept bad block list from terminale/ /BAD=[AUTO] Read bad-block file created by BAD"C /BAD=[AUTO,MAN] Read bad-block file, accept blocks specified from s the terminal.? /BAD=[OVR] Include the last track in the BADBLK.SYS file.pG /BAD=[OVR,MAN] Override the manafacture's bad-block descriptor file p3 and accept blocks specified from the terminal., The default is /BAD=[AUTO].2 DENS* The legal formats of the DENS option are:" /DENS=800 Select 800 BPI density.$ /DENS=1600 Select 1600 BPI density.$ /DENS=6250 Select 6250 BPI density.2 /DENS=LOW Select lower of two possible densities.4 /DENS=HIGH Select higher of two possible densities.F /DENS sets the bit density of a magnetic tape loaded on a TE16, TU16,& TU45, TS11, TU77, or TU78 tape drive.M The default is device-dependent. For a full list, type AID INI DEFAULTS DENS 2 EXTl# The format of the /EXT keyword is:E /EXT=block-countaG /EXT specifies the number of blocks by which a file is to be extended 0D when the file has used all of its allocated space. Legal values for* block-count range from 1 through 255(10). The default is /EXT=5.e2 FPRO$ The format of the /FPRO keyword is:! /FPRO=[system,owner,group,world] D The default protecton for all files created on the volume is set toF the specified value. Each of the four fields can contain one or more2 of the following characters, in the order listed:9 R To allow read access to the specified group of users. 9 W To allow write access to the specified group of users.i: E To allow extend access to the specified group of users.: D To allow delete access to the specified group of users.# Default: /FPRO=[RWED,RWED,RWED,R]2 INDX$ The format of the /INDX keyword is: /INDX=index-file-positionI /INDX specifies the logical block number for the index file. The keywordcI can be used to force the index file, the MFD, and the storage allocationE file to a specific volume position, usually to minimize access time.o* Legal values for index-file-position are:6 BEG Place index file at the beginning of the volume.0 END Place index file at the end of the volume.3 MID Place index file in the middle of the volume.RC BLK:nnn Place index file beginning at the specified block number.lM The default is device-dependent. For a full list, type AID INI DEFAULTS INDXe2 INF# The format of the /INF keyword is:h /INF=initial-index-file-sizeH /INF specifies the number of file headers to allocate initially in the index file.L The default is device-dependent. For a full list, type AID INI DEFAULTS INF2 LRUE# The format of the /LRU keywor00:1~y~z~*d is:v /LRU=directory-count K /LRU specifies the approximate number of directories that will be accessed M simultaneously. The legal values for the directory-count range is 0 through t 127(10).  The default is /LRU=3.T2 MXFa# The format of the /MXF keyword is:t /MXF=file-countH /MXF specifies the maximum number of files allowed on the disk volume. F This number corresponds to the number of file headers in the volume'sI index file. The maximum legal file-count is device-dependent and can be /. found by typing AID INI KEYWORDS MXF MAXIMUM.M The default is device-dependent. For a full list, type AID INI DEFAULTS MXFv2 OWNER ' The formats of the /OWNER keyword are:13 /OWNER=[g,m] (disks, DECtapes, and magnetic tapes)r  or) /OWNER="owner" (magnetic tapes only)eI /OWNER specifies the owner of the volume. It is similar to /UIC, but fore< magnetic tapes allows you to use a syntax other than [g,m].2 PROe# The format of the /PRO keyword is:e /PRO=[system,owner,group,world]K The specified volume access rights are extended to the specified groups of I users. Each field (system, owner, etc.) controls one group of users andyN contains one or more of the characters given below, in the order given below: R Allow read access W Allow write accessn C Allow create access D Allow delete access, The default is: /PRO=[RWCD,RWCD,RWCD,RWCD]2 UICo# The format of the /UIC keyword is:. /UIC=[group,member]M /UIC specifies the owner of the volume. Legal group and member numbers rangel from 1 through 377(8).e The default is: /UIC=[1,1]2 WINs# The format of the /WIN keyword is:t /WIN=retrieval-pointer-countnH /WIN specifies the number of mapping pointers to be allocated for file @ windows. The retrieval-pointer-count must be 1 through 127(10). The default is: /WIN=7.2 VI" The format of the /VI keyword is:  /VI F /VI lists all of the INI keywords and their values for the specified : volume. You must use at least one other keyword with /VI. 2 DEFAULTS8 The following defaults apply to the INITVOLUME command: KEYWORDS DEFAULT ------ ------- /ACCESS /ACCESS=o /BAD /BAD=[AUTO]5 /DENS Device-dependent; type AID INI DEFAULTS DENSf /EXT /EXT=5 /FPRO /FPRO=[RWED,RWED,RWED,R]5 /INDX Device-dependent; type AID INI DEFAULTS INDXI3 /INF Device-dependent; type AID INI DEFAULTS INF /LRU /LRU=3o3 /MXF Device-dependent; type AID INI DEFAULTS MXF ! /PRO /PRO=[RWED,RWED,RWED,RWED]e /UIC /UIC=[1,1] /WIN /WIN=7S3 MXFeB The following device-dependent defaults apply to the /MXF keyword of the INITVOLUME command:) Device initialized Default value for MXF]) ------------------ ---------------------E DP: RP02 Disk 2460 RP03 Disk 4920 DB: RP04/RP05 Disks 10567e RP06 Disk 20956 DF: RF11 Disk 62 DR: RM02/RM03 Disks 8099I RM05 Disk 30781 RM80/RA80 Disks 14923n RP07 Disk 62007 DK: RK05 Disk 294 DM: RK06 Disk 1668 RK07 Disk 3308 DS: RS03 Disk 62 RS04 Disk 125 DL: RL01 Disk 629 RL02 Disk 1259 DT: DECtape 34 DECtape II 30l DX: RX01 Disk 29 DY: RX02 Disk 608 For information on maximum legal values for /MXF, type  AID INI DEFAULTS MXF MAXIMUM 4 MAXIMUMkF The following is a list of maximum legal values for the /MXF keyword: Maximum DefaultA Theoretical Number of Number of4F Maximum Default Index IndexH Device Value Value Headers Headers L -------------- ----------- -------- ------------ -------------E DB: RP04/RP05 disks 65500 10567 3 1tE RP06 disk 65500 20956 3 1 F DF: RF11 disk 499 62 1 1 = DK: RK05 disk 2357 294 1 1uE DL: R00BH&u|mx|OxssL01 disk 5034 629 1 1 E RL02 disk 10074 1259 1 1 F DM: RK06 disk 13344 1668 1 1 E RK07 disk 26466 3308 2 1 H DP: RP02 disk 19680 2460 1 1 I RP03 disk 39365 4920 2 1 E DR: RM02/RM03 disks 64798 8099 3 1 E RM05 disk 65500 30781 3 2 E RM80/RA80 disks 65500 14923 3 1 G RP07 disk 65500 62007 3 3 E DS: RS03 disk 499 62 1 1 E RS03 disk 1004 125 1 1 ; DT: DECtape 278 34 1 1 E DECtape II 274 30 1 1 E DX: RX01 disk 238 29 1 1 E DY: RX02 disk 481 60 1 1 3 DENSC The following device-dependent defaults apply to the /DENS keyword  of the INITVOLUME command:  * Device initialized Default value for DENS* ------------------ ---------------------- MM: TU16 Tape 800 BPI TE16 Tape 800 BPI TU45 Tape 800 BPI MF: TU78 Tape 6250 BPIa xx: TS11 Tape 800 BPI& DX: RX02 Disk Current Disk Density 0M For the RX02 floppy disk drive (DY:), the density switch can only be used to N verify that the disk to be initialized was formatted at the specified density3 INFeB The following device-dependent defaults apply to the /INF keyword of the INITVOLUME command: ) Device initialized Default value for INF-) ------------------ ---------------------B DP: RP02 Disk 1230 RP03 Disk 2460 DB: RP04/RP05 Disk 5283 RP06 Disk 10478 DF: RF11 Disk 16 DR: RM02/RM03 Disk 4049 RM05 Disk 25593! RM80/RA80 Disk 7461a RP07 Disk 51699t DK: RK05 Disk 147 DM: RK06 Disk 834 RK07 Disk 1654 DS: RS03/RS04 Disk 16 DL: RL01 Disk 314 RL02 Disk 629 DT: DECtape 16 DECtape II 16  DX: RX01 Disk 16 DY: RX02 Disk 163 INDXC The following device-dependent defaults apply to the /INDX keyword0 of the INITVOLUME command:  k* Device initialized Default value for INDX* ------------------ ---------------------- Disk Device MID DECtape, DECtape II, ML11 BEG 51699t DK: RK05 Disk 147 DM: RK06 Disk 834 RK07 Disk 1654 DS: RS03/RS04 Disk 16 DL: RL01 Disk 314 RL02 Disk 629 DT: DECtape 16 DECtape II 16  DX: RX01 Disk 16 DY: RX02 Disk 163 INDXC The following device-dependent defaults apply to the /INDX keyword0 of the INITVOLUME command:  k* Device initialized Default value for INDX* ------------------ ---------- INTRODUCTIONA Kermit is a file transfer program. It allows the transfer ofA files over terminal lines from a remote kermit program to the local kermit program. 1 @A This commamd opens an indirect file for command input. It is> identical to the TAKE command. The format of the command is: . Kermit-11>@ file-specification A where 'file-specification' is any valid file specification on2 the system on which the server kermit is running.1 BYEA The BYE command will cause Kermit-11 (when in local mode) toA tell the other kermit (which should be in server mode) to exitA from kermit and if applicable terminate its job (or process,A etc.). When Kermit-11 receives the acknowledgement that this isA being done, it will prompt for another command. The DISCONNECTA command should always follow the BYE command. The format for BYE is:  Kermit-11>BYE 1 CONNECTA The CONNECT command will al00J1~y~z~*low you to connect in as a virtualA terminal over the line that was specified by the set lineA command. (Using the CONNECT command before using the SET LINEA command will result in an error message) The terminal line mustA be one which is accessable to the user. The format of the CONNECT command is: ! Kermit-11>CONNECT A Since for RSX11M/M+ the SET SPEED command and the internal QIOA issued to disable echoing require that Kermit be a privilegedA task, you may have to give the MCR SET /ECHO=TTnn: andA SET /SPEED=TTnn:xxxx:xxxx first. This can be done using the SYSTEM command.1 DIRECTA The DIRECT command will display the current default directory when used in the format: Kermit-11>DIRECT A If a directory other than the current default directory is/ desired then DIRECT may be used in the format: 3 Kermit-11>DIRECT file-specification A where 'file-specification' is any legitimate combination ofA device name, uic or ppn, and a filename which can include wild carding characters. 1 DISCONNECTA The DISCONNECT command cuases Kermit-11 to 'hang-up' the lineA which was specified with the SET LINE command and connected with% the CONNECT command. The format is: $ Kermit-11>DISCONNECT 1 EXITA The EXIT command will cause kermit to return to the commandA level. This command is the same as the QUIT command. The format is:  Kermit-11>EXIT 1 FINISHA The FINISH command will tell Kermit-11 ,which is in local mode,A to signal the other kermit to exit from server mode. WhenA Kermit-11 has received acknowledgement that this is being done< it will prompt for another command. The command format is: Kermit-11>FINISH 1 GETA The GET command tells the remote kermit which is in server modeA to get a file or group of files. The format for this command is:  0 Kermit-11>GET file-specification A where 'file-specification' may include any legitimate device,ppnA or uic as well as the file specification. Wildcarding may be4 used in the file-spec. to obtain a group of files.1 HANGUPA The HANGUP command will drop the remote line specified by theA SET LINE command and connected by the CONNECT command. The sameA function is performed by the DISCONNECT command. The format of the HANGUP command is: Kermit-11>HANGUP 1 HELPA As of this version (Version 1) of Kermit-11 the HELP commandA simply prints a list of all available commands in their proper, format. The format of the HELP command is:  Kermit-11>HELP 1 LOCALA The LOCAL command can be used to prefix any kermit command toA insure that the command so prefixed will be carried out by theA user's own kermit. All commands are local by default with theA exceptions of BYE, FINISH,and GET. The LOCAL command format is: 3 Kermit-11>LOCAL kermit command name 1 QUITA The QUIT command will cause Kermit-11 to return to the commandA level. This command is the same as the EXIT command. The format is:  Kermit-11>QUIT 1 RECEIVEA The RECEIVE command will put Kermit-11 into remote mode to waitA for a single file transfer transaction. Kermit-11 will wait forA a file transfer initialization from the other kermit. ThisA command is useful if the other kermit does not support local% server commands. Command format is: ! Kermit-11>RECEIVE A Please note that this version of Kermit-11 (Version 1) does NOT+ support the RECEIVE Command in the format: * Kermit-11>RECEIVE filename 1 REMOTEA The REMOTE command is used as a prefix to indicate to Kermit-11A that the command so prefixed is to be executed by the other) (remote) 00RH&u|mx|Oxsskermit server. Command format: Kermit-11>REMOTE 0 will return a prompt requesting a command name: # Remote Kermit cmd ? < REMOTE can also be used with a command name as an argument: - Kermit-11>REMOTE command name 1 Please see HELP REMOTE command name for details.2 BYEA The REMOTE BYE command will cause Kermit-11 (when in local mode)A to tell the other kermit (which should be in server mode) toA exit from kermit and if applicable terminate its job (orA process, etc.). When Kermit-11 receives the acknowledgementA that this is being done, it will prompt for another command.A The DISCONNECT command should always follow. This commandA (REMOTE BYE) is the same as the BYE command. The command format is: $ Kermit-11>REMOTE BYE  or ! Kermit-11>REMOTE & Remote Kermit cmd ?BYE 2 FINISHA The REMOTE FINISH command will tell Kermit-11 , which is inA local mode, to signal the other kermit to exit from server mode.A When Kermit-11 has received acknowledgement that this is beingA done it will prompt for another command. REMOTE FINISH is the4 same as the FINISH command. The command format is: ' Kermit-11>REMOTE FINISH  or Kermit-11>REMOTE) Remote Kermit cmd ?FINISH 2 GETA The REMOTE GET command tells the remote kermit which is inA server mode to get a file or group of files. REMOTE GET is the: same as the GET command. The format for this command is: $ Kermit-11>REMOTE GET  or Kermit-11>REMOTE& Remote Kermit cmd ?GET 2 SPACEA The REMOTE SPACE command sends a generic command to the remoteA kermit requesting information about the amounts of space avail-< able and space used on the remote host. Command format is: & Kermit-11>REMOTE SPACE  or Kermit-11>REMOTE( Kermit Remote cmd ?SPACE 1 RENAMEA The RENAME command is used to rename a local (only) file.5 RENAME can be used with two arguments is the format: 0 Kermit-11>RENAME oldname newname A If RENAME is used with one or no argument it will prompt for missing arguments: Kermit-11>RENAME From: oldname To: newname A When RENAME is finished it will return a 'report' of what it has done: ) Kermit-11>RENAME t.* junk> File DB0:[1,8]T.T1 renamed to DB0:[1,8]JUNK.T1< File DB0:[1,8]T.T renamed to DB0:[1,8]JUNK.T 1 SENDA The SEND command will allow the user to send a file(s) to theA other kermit. If Kermit-11 is running in remote mode the fileA will be sent on the controlling terminal line after waiting theA number of seconds specified by the SET DELAY command. ThisA gives the user time to escape to the other kermit and issue aA receive command. If Kermit-11 is running in local mode , theA file will be sent immediately on the terminal line specified by6 the set line command. Format of the SEND command is: 1 Kermit-11>SEND file-specification A Where 'file-specification' can include device,ppn or uic,as well. as the file-spec. which may use wildcarding.1 SERVERA The SERVER command will put Kermit-11 into server mode. WhenA Kermit-11 is in server mode while runnuing as a remote kermitA (transmitting over the controlling terminal line) the otherA kermit can issue server commands to send and receive filesA without having to give SEND or RECEIVE commands to Kermit-11.A In order to correctly receive binary files while in server modeA a SET FILETYPE BINARY must be done first. At this time there isA no way for Kermit-11 to determine whether an incomming file is% ascii or binary. Command format 00Z1~y~z~*is: Kermit-11>SERVER 1 SETA The SET command is used to set various parameters in kermit." The format of the SET command is: / Kermit-11>SET parameter keyword 2 BLOCK-CHECKA The SET BLOCKCHECK command is used to determine the block checkA sequence which will be used during transmission. The blockA check sequence is used to detect transmission errors. There areA three types of block check available. These are the singleA character checksum (default), the two character checksum, andA the three character CRC (cyclic redundancy check). This commandA does not ensure that the desired type of block check will beA used, since both Kermit's involved in the transfer must agree onA the block check type. Kermit-32 will request that the type ofA block check set by this command be used for a transfer. If theA other Kermit has also had the same block check type requested,A then the desired block check type will be used. Otherwise, theA single character checksum will be used. The command should beA given to BOTH Kermits since Kermit-11, when in server mode, hasA no say about what kind of checksum it wants to use. (See Kermit' protocol manual for more information.) - Kermit-11>SET BLOCK_CHECK keyword  Where keyword is one of: 8 1_CHARACTER_CHECKSUM or ONE_CHARACTER_CHECKSUM 8 2_CHARACTER_CHECKSUM or TWO_CHARACTER_CHECKSUM < 3_CHARACTER_CRC_CCITT or THREE_CHARACTER_CRC_CCITT 2 DEBUGA The SET DEBUG command is used to specify the type and level ofA debugging to a disk file . This disk file must have beenA created by the SET LOGFILE command. The format for SET DEBUG is: - Kermit-11>SET DEBUG qualifier 3 ALLA SET DEBUG ALL will turn on logging forA CONSOLE,CONNECT,FILE,PACKET and STATE to the disk file specifiedA by SET LOGFILE. This commamd is the same as SET DEBUG ON. The command format is: ' Kermit-11>SET DEBUG ALL 3 CONSOLEA SET DEBUG CONSOLE will turn on logging for all i/o during aA remote connect to the disk file specified by SET LOGFILE. ThisA command is the same as SET DEBUG CONNECT. The command format is: + Kermit-11>SET DEBUG CONSOLE 3 CONNECTA SET DEBUG CONNECT will turn on logging for all i/o during aA remote connect to the disk file specified by SET LOGFILE. ThisA command is the same as SET DEBUG CONSOLE. The command format is: + Kermit-11>SET DEBUG CONNECT 3 FILEA SET DEBUG FILE will log all file 'opens' and 'creates' to the7 file specified by SET LOGFILE. The command format is: ( Kermit-11>SET DEBUG FILE 3 HELPA SET DEBUG HELP gives the user a list of all qualifiers which can, be used with SET DEBUG. Command format is: ( Kermit-11>SET DEBUG HELP 3 NONEA SET DEBUG NONE 'turns off' all debugging. This is the same as/ the SET DEBUG OFF command. Command format is: ( Kermit-11>SET DEBUG NONE 3 OFFA SET DEBUG OFF 'turns off' all debugging. This is the same as0 the SET DEBUG NONE command. Command format is: ' Kermit-11>SET DEBUG OFF 3 ONA SET DEBUG ON will'turn on' logging forA CONSOLE,CONNECT,FILE,PACKET and STATE to the disk file specifiedA by SET LOGFILE. This commamd is the same as SET DEBUG ALL. The command format is: & Kermit-11>SET DEBUG ON 3 PACKETA SET DEBUG PACKET will 'turn on' logging of all receive andA transmit packets to the disk file specified by SET LOGFILE. The command format is: * Kermit-11>SET DEBUG PACKET 3 STATEA SET DEBUG STATE will turn on logging of all internal Kermit-11 state transitions 2 DELAYA The DELAY parameter is the number 00bH&u|mx|Oxssof seconds to wait beforeA sending data after a SEND command is given. This is used whenA Kermit-11 is running in remote mode to allow the user time to< escape back to the other Kermit and give a RECEIVE command. 1 Kermit-11>SET DELAY number-of-seconds A Where number of seconds is the (decimal) number of second to wait before sending data. 2 DEFAULTA The DEFAULT parameter allows you to specify a device and UIC (orA PPN) for all subsequent file opens (for SENDING) and file= creates (for RECEIVING). It is disabled by typing SET HOME. , Kermit-11>SET DEFAULT device 2 END-OF-LINEA The END-OF-LINE parameter sets the ascii character which will beA used as a line terminator for all packets SENT to the otherA KERMIT. This is normally not needed for most versions of KERMIT. 8 Kermit-11>SET END-OF-LINE octal value of character 2 ESCAPEA This command will set the escape character for the CONNECTA processing. The command will take the octal value of theA character to use as the escape character. This is the characterA which is used to "escape" back to Kermit-32 after using theA CONNECT command. It defaults to control \ (octal 34). It isA usually a good idea to set this character to something which isA not used (or at least not used very much) on the system being to which Kermit-11 is CONNECTing. 6 Kermit-11>SET ESCAPE octal-character-value A Where octal-character-value is the ASCII value of the character+ to use as the escape character (in octal). 2 FILETYPEA This command will set the file type that Kermit is receiving. AA file type of ASCII should be used to receive text files whichA are to be used as text files on the VMS system. The file typeA BINARY should be used for binary files, such as CP/M .COM files,A which need to be kept in a format that allows the file to be returned without any changes. ( Kermit-11>SET FILE_TYPE type 3 ASCII# File type ASCII is for text files.3 BINARYA File type BINARY is for non-text files. Note that binary filesA which are generated on a PDP11 system cannot be transferred toA another PDP11 system without losing file attributes. This meansA that (for example), an RSM11 indexed file cannot be transmitted with Kermit-11.2 HANGUPA SET HANGUP is the same as the DISCONNECT command. It forces aA connected line (specified via the SET LINE command) to be? dropped. This is currently only supported for RSTS version 8. $ Kermit-11>SET HANGUP 2 HOMEA SET HOME resets the default device and UIC (or PPN) to nothing,A ie, all file opens and creates use your default disk (SY:) and your UIC (or PPN). " Kermit-11>SET HOME 2 IBMMODE 5 IBM mode has not yet been implemented 2 LINEA The SET LINE command sets the terminal name up for use with theNA connect command. To use this you must have access to thatoA device. On many systems terminal lines other than your own arehA protected from access, and may require special procedures tor access them.mA The form of the device name is TTnnn:, where 'nnn' is a decimal 3 number for RSTS and an octal number for RSX11M/M+.i ( Kermit-11>SET LINE TT55: 2 LOGFILE A The SET LOGFILE command creates a debug dump file for you. ItuA must be used BEFORE any SET DEBUG commands can be used. See : HELP DEBUG for further information about debugging modes. / Kermit-11>SET LOGFILE MYLOG.TXTc, Created debug file MYLOG.TXT Kermit-11> 2 PACKET-LENGTHaA You can alter the default transmitted packet length with the SETSA PACKET-LENGTH command. This should not normally be neededrA unless the line is very noisy, at which time you should probablyN give up anyway. ' 00j1~y~z~* Kermit-11>SET PACKET 60a 2 PARITYA This is used with the SET LINE and CONNECT commands to specifyaA the type of parity for the remote link. It defaults to NONE anda" can be either ODD or EVEN, as in: ) Kermit-11>SET PARITY NONEs( Kermit-11>SET PARITY ODD) Kermit-11>SET PARITY EVEN  A If you choose ODD or EVEN, you will be unable to send BINARYd1 files using Kermit-11 (at this time, version 1). A This is currently available only for Kermit on RSTS (25-Jan-84i 15:11:01)2 PAUSE=A PAUSE tells Kermit to wait the specified number of seconds A between each packet being sent to the other Kermit. This may belA useful under situations of heavy system load. This may betA automatically computer by Kermit-11 in a future release as a  function of line speed. % Kermit-11>SET PAUSE 1y 2 RECORD-FORMATA Kermit will, by default, create RMS11 variable length impliedeA carriage control records for text files. You can override thiscA and change it to create stream ascii records with the SETiA RECORD-FORMAT STREAM command. This is useful for RSTS/E systemsr0 if you need file compatibility with BASIC Plus. 2 Kermit-11>SET RECORD-FORMAT STREAM4 Kermit-11>SET RECORD-FORMAT VARIABLE A This command would be most useful in a KERMIT.INI file, which isr' executed by KERMIT when Kermit starts.l2 RETRYoA SET RETRY value tells Kermit to try that many times on a NAK'ed A packet before giving up. This should only be needed if the line A is extremely noisy or the PDP11 host is running very slowly duet to the system load. & Kermit-11>SET RETRY 10 2 SPEEDgA SET SPEED value sets the line speed for the device specified via.A the SET LINE command, and used for the CONNECT command.A Changing the speed of a terminal line requires privilege forr RSTS and RSX11M/M+. ( Kermit-11>SET SPEED 1200 A 1200 Baud would be a normal speed to use with a VA212LS or ai DF03. 2 TIMEOUTsA The timeout value tells Kermit how long to wait to get a packeteA from the other Kermit. If system loads are high, it may bel= desirable to increase this beyond the default of 10 seconds. 1 SHOWA The SHOW command will display the settings made by the SETo5 command and allow you to look at session statistics.s ( Kermit-11>SHOW parameter 2 ALLt@ Displays everything: BLOCK-CHECK DEBUG DEFAULT  ESCAPE@ FILE-TYPE LINE PACKET  PARAMl/ TIME VERSIONe 2 BLOCK-CHECK-TYPE+ Displays the current type of checksum set. 2 DEBUGt Shows the status of debugging.C 2 DEFAULTn< Shows the device and UIC (or PPN) used for file operations.2 ESCAPE? Shows the escape character used to return to a local Kermit-11a 2 FILE-TYPEy- Shows the current filetype (BINARY or ASCII)a2 LINE> Displays parameters associated with the current connect line.2 PACKETA Prints out packets statistics from the last transaction ande total so far. 2 PARAMETERS# Prints out various send parametersE2 RECORD-FORMAT3 Shows what kind of file will be created by Kermit.2 TIME The time of day 2 VERSIONu My current version and edit.w 1 STARTUPsA You can place a file called KERMIT.INI in your account and haverA Kermit-11 automatically read commands from it before getting  commands from your terminal.t1 SYSTEMA The SYSTEM command takes a CCL/MCR/DCL command line and spawns a A task to execute it. This is done via the SPWN$S directive fortA RSX and by spawning a job on a psuedo kerboard for RSTS. If themA command fails for RSTS then Kermits protection code was set toE run without privileges. 0 Kermit-11>SYS PIP DB1:=FUBAR.DAT Kermit-11>SYSo" Command: SUB MYJOB00rsvu|mx|Oxss Kermit-11> 1 TAKEC The Take command is just like the  command. It opens a disk filec0 for reading commands from, as in TAKE filename. ) Kermit-11>TAKE MYKERM.CMDn 1 TYPE8 The TYPE command prints a file to your terminal, as in: ) Kermit-11>TYPE KERMIT.INIr ls.2 BYEA The REMOTE BYE command will cause Kermit-11 (when in local mode)A to tell the other kermit (which should be in server mode) toA exit from kermit an Kermit-IAS commands : K C [TTnn] _ connection with remote computer .You have to specify tty line= before typing this command without an argument.N D [level] - specifies one of 3 debug levels ( 0, 1, 2 ). Default level is 0.K E code - specifies a character ( in decimal ASCII code) to escape from connect mode.! H - displays this text.L I [ON/OFF] - specifies image mode. To transfer no ascii files switch image , ON. Default image mode is OFF.L L [TTnn] - specifies tty line for file tranfers and connect mode. DefaultI line is TI. ( Can only be set once, and cannot be changed ) H M file 4 - specifies unit to print debug messages. Default unit is 5.: P [nn] - says to Kermit-IAS to wait nn seconds before= sending or receiving files .It lets you pass toIA the other kermit and enter receive or send command. age L R - receive command. Kermit-IAS receives files sended by the other kermit.dO S files - Kermit-IAS sends files to the other kermit. You can specify filesnN as *.* ,TOT*.* , DP1:[12,34]*WEWQ%.IMG , TRA1%%.IMG;0 and so on.H The character * corresponds to any string, % replaces any  character. CTRL/Z - exits Kermit-IAS.IA the other kermit and enter receive or send command. age 1 LA120/ LA120 Operator Reference Card- The following help is available for LA120'sD COMMUNICATION - Communications proto-call SET-UP commands+ BAUD - BAUD rate SET-UP8 FORMS - Forms control SET-UP commandsI HORIZONTAL - Setting horizontal pitch (characters per inch)/ MODEM - Modem control SET-UP? OPERATOR - Operator convenience SET-UP commands@ PARITY - Parity and number of data bits SET-UP7 RECALL - Re-calling last saved SET-UPv3 SETUP - How to enter SET-UP modem1 SPLIT - Split BAUD rate SET-UPA4 STATUS - Displaying current SET-UP( STORE - Saving SET-UP$ TEST - Self testB VERTICAL - Setting vertical pitch (lines per inch) r2 SETUP SET-UP: R6 Key Function/Comments? --------------- ----------------------------------- ? CTRL and SET-UP Locks LA120 in set-up mode: SET-UPE* light flashes. = To exit set-up mode press SET-UP.  = SET-UP Places LA120 in set-up mode whilen> SET-UP is held down; SET-UP light$ flashes. ? To exit set-up mode release SET-UP.  2 FORMSn o Forms:s : Key Function/CommentsE -------------------- --------------------------------------- K SHIFT Display current line number, releasing SHIFT eI returns display to current column number.0C 1 Set horizontal tab at current column.w? SHIFT 1 Set vertical tab at current line. E 2 Clear horizontal tab at current column.nA SHIFT 2 Clear vert00z1~y~z~*ical tab at current line.o8 3 Clear all horizontal tabs.6 SHIFT 3 Clear all vertical tabs.: SHIFT 4 Establish top of form (TOF).: 4 Establish top of form (TOF).F 5 Set minimum column number (left margin).C SHIFT 5 Set minimum line number (top margin). G 6 Set maximum column number (right margin).HF SHIFT 6 Set maximum line number (bottom margin).; 7 Clear left and right margins. ; SHIFT 7 Clear top and bottom margins. K F Form Length, displays 1 thru 168, clears top lG and bottom margins and establishes TOF.n 2 HORIZONTAL Horizontal Pitch: : Key Function/CommentsE ----------- ---------------------------------------FE H Horizontal pitch (Characters per inch). ? NOTE: Changing horizontal pitch > clears left and right margins. 1 DISPLAY PITCHa t4 5 5.00 CPI4 6 6.00 CPI4 7 6.60 CPI4 8 8.25 CPI4 10 10.0 CPI4 12 12.0 CPI4 13 13.2 CPI4 16 16.5 CPI 2 VERTICAL Vertical Pitch: : Key Function/CommentsE ----------- ---------------------------------------6> V Vertical pitch (Lines per inch).= NOTE: Changing vertical pitch > clears top and bottom margins. 1 DISPLAY PITCH  2 2 2 LPI2 3 3 LPI2 4 4 LPI2 6 6 LPI2 8 8 LPI3 12 12 LPI  2 OPERATOR  Operator Comfort: + Key Function/Comments + --- -----------------% G Bell volumeI* 0 = Low Volume+ 1 = High Volume # K Key click# 0 = Off " 1 = On% R Auto repeat # 0 = OffL" 1 = On- Z Last character viewa& 0 = Manual$ 1 = Auto2 COMMUNICATION-  Communication:  - Key Function/Comments O --- ----------------------------------------------------------------------- C A Auto answerback, 0 = Off, 1 = On F B Buffer control, 0 = Small, 1 = LargeO C Printer character set, 1 = United States, 2 = United Kingdom C D Auto disconnect, 0 = Off, 1 = On C E Local echo, 0 = Off, 1 = OnCC J Auto new line at right margins, 0 = Off, 1 = On C L Auto line feed (Return key), 0 = Off, 1 = On-O N Keyboard/printer character set 1 = United States 2 = United Kingdom C O (letter) Alternate character set 0 = OFF 1 = OND U Break enabled 0 = No 1 = YesO W Printer new line character 1 = None 2 = Line feed (LF)7 3 = Return (CR) D 00svu|mx|OxssX XON/XOFF 0 = No 1 = YesD Y Alternate keypad mode 0 = No 1 = Yes2 PARITY Parity and data bits:- Key Function/CommentsgO --- ----------------------------------------------------------------------- . P Parity and data bits6 Data Parity4 Display Bits Rec Xmt6 ------- ---- ------- -------4 1 7 Ignore Mark5 2 7 Ignore Space 3 3 7 Ignore Odd:4 4 7 Ignore Even3 5 7 Odd Odd-4 6 7 Even Even4 7 7 None None4 8 8 None None3 9 8 Odd Odd 4 10 8 Even Even2 BAUD  Select BAUD rate:- Key Function/Comments O --- ----------------------------------------------------------------------- N 0 (zero) Selects receive and transmit baud rates and number of stop bits.6 Baud Rate Baud RateC (Displayed) Stop Bits (Displayed) Stop Bits8C ----------- --------- ----------- --------- ? 50 2 600 1n? 75 2 1200 1 ? 110 2 1800 1-? 134 1 2400 1v? 150 1 4800 1 ? 200 1 7200 1d? 300 1 9600 1-2 SPLIT- Select split BAUD rate:. Key Function/CommentsN ------- ----------------------------------------------------------------K SHIFT 0 Selects split baud rates: 0 selects receive baud rate, SHIFT -H and 0 then offers a choice of three transmit baud rates.4 Receive Transmit > Baud Rate Baud Rate Transmit? (Not Displayed) (Displayed) Stop Bits ? --------------- ----------- --------- ; 600 75 2-; 150 1 ; 600 1-; 1200 75 2t; 150 1s; 1200 1 ; 2400 300 1 ; 600 1-; 2400 1 ; 4800 300 11; 600 16; 4800 1 2 MODEM   Modem control:  - Key Function/Comments O --- ----------------------------------------------------------------------- D M Modem 1 = FDX, No Modem 2 = FDX, ModemB 3 = HDX, Supervisory 4 = HDX, EOT- 5 = HDX, ETX A Q HDX initial call state, 0 = Transmit 1 = Receive  S Secondary channel 8 FDX* HDX*; Display Mode Rev.Ch. ; ------- --------- --------8 0 Speed No8 1 Restraint Yes 2 *See M Key, Modem00~y~z~*2 STORE#RECALL 2 STATUS#STATUS 2 RECALL Store, Recall and Status: . KEY Function/Comments. --- -----------------= I Select factory set-up parameters 1 8 Print status message 5 9 Recall set-up parameters 4 SHIFT 9 Store set-up parameters2 TEST Self Test . KEY Function/Comments. --- -----------------8 T Initiate printing self test< SHIFT > Initiate non-printing self testB NOTE: Type any character in set-up= mode to stop self test.  P t status message 5 9 Recall set-up parameters 4 SHIFT 9 Store set-up parameters2 TEST Self Test . KEY Function/Comments. --- Illegal get command line error code%NInput error on %X%NCommand syntax error%N%VA%NOutput error on %X%NIllegal switch%N%VA%NInsufficient dynamic memory to continue%NInvalid library type specified%NCommand I/O error%NIndirect file open failure%N%VA%NIndirect command syntax error%N%VA%NBad library header%NIndirect file depth exceeded%N%VA%NI/O error in input file %X%NOpen failure on file %X%NInvalid EPT and/or MNT specification%NPositioning error on %X%NEPT or MNT exceeded in %X%NDuplicate module name "%2R" in %X%NGet time failed%NNo module named "%2R"%NInvalid name -- "%6A"%NLibrary file specification missing%NIllegal switch combination%NNo entry point named "%2R"%NDuplicate entry point name "%2R" in %X%NToo many output files specified%NExactly one input file must appear with /co%NFatal compress errorEPT or MNT space exceeded in compress%NError in library tables, file %X%NInvalid format, input file %X%NOpen failure on librarian work file%NMark for delete failure on librarian work file%NToo many input files%NMissing output file specifier%NInvalid operation for object and macro libraries%NInvalid rad50 character in %6A%NCannot modify header%NMultiple module extractions not permitted for UNI modules%NInvalid module format in %X%NRms module cannot be extracted to record oriented devices%NInvalid filetype %3A%NIllegal filename%N%VA%NIllegal device/volume%N%VA%NIllegal directory%N%VA%NWork file I/O error%NVirtual storage requirement exceeds 65536. words%NInvalid module format in %X%N00u|mx|Oxss1 LISL LIST-11 is a program for reformatting ASCII files. It can : put up to 10 columns of text on a single page   COMMAND FORMAT:* LIS [FILEOUT=FILEIN/SWITCHES] Switches # /CO Specify the number of columns.6 If 0 is specified, as many as will fit will be used.@ /TR Cause lines which are too wide to be truncated. If not spe-; cified, lines which are too long will be continued on the next line.1 /NH Omit the standard 2-line identifying header.= /FF Form-feeds in the input cause a skip to the next column.A /CD Convert Tab's to spaces.  /WI Specify output page width.o /LE Specify output page length.* /PA Pause between pages and wait for - /ED Change form-feed characters to control-Dl, /RO:n Output is on roll paper n lines long. /UC Force Upper Case output.n8 /NP Supress pagination, (no headers, form-feeds, etc.)]ed, lines which are too long will be continued on the next line.1 /NH Omit the standard 2-line identifying header.1 LST; A program to provide listings of files a screen at a time.C Has the capability of searching through files, moving backward andE forward thru files. Can display any 80 columns of a 132 column file. ) Especially nice for VT100 or SW10 scopes  MCR>LST Filespec/SW  Supported Switches are:  /NA - Narrow listing * /WI - Wide Listing /SE - See all characters mode /EB - Translate EBCDIC to ASCII /AS - Translate ASCII to EBCDIC /VF - LINE PRINTER VFU /FE - Force Exit /FF - Pass Formfeedsr( /VT - VT100 Without AVO * * = defaults5 On-line HELP is available by the 'H' or '?' commandsg4 On-line KEYPAD help is available by the 'KE command0 columns of a 132 column file. ) Especially nice for VT100 or SW10 scopes  MCR>LST Filespec/SW  Supported Switches are:  /NA - Narrow listing * /WI - Wide Listing /SE - See all characters mode /EB - Translate EBCDIC to ASCII /AS - Translate ASCII to EBCDIC /VF - LINE PRINTER VFU /FE - Force ExiInsufficient dynamic storage Specified task not installed Partition too small for task Insufficient dynamic storage for send Un-assigned lun Device handler not resident Task not active Directive inconsistent with task state Task already fixed/unfixed Issuing task not checkpointable Task is checkpointable Receive buffer is too small Privilege violation Resource in use No swap space available Illegal vector specified 00~y~z~* Directive issued/not issued from ast Illegal mapping specified Window has I/O in progress Alignment error Address window allocation overflow Invalid region id Invalid address window id Invalid ti parameter Invalid send buffer size ( .gt. 255.) Lun locked in use Invalid UIC Invalid device or unit Invalid time parameters Partition/region not in system Invalid priority ( .gt. 250.) Invalid lun 00u|mx|OxssInvalid event flag ( .gt. 64.) Part of DPB out of user's space DIC or DPB size invalid Bad parameters Invalid function code Device not ready Parity error on device Hardware option not present Illegal user buffer Device not attached Device already attached Device not attachable End of file detected End of volume detected Write attempted to locked unit Data overrun Send/receive failure Request terminated Privilege violation Sharable resource in use Illegal overlay request Odd byte count (or virtual address) Logical block number too large Invalid udc module # Udc connect error Caller's nodes exhausted Device full Index file full No such file Locked from read/write access File header full Accessed for write File header checksum failure Attribute control list format error File processor device read error 00~y~z~*File processor device write error File already accessed on lun File id, file number check File id, sequence number check No file accessed on lun File was not properly closed Open - no buffer space available for file Illegal record size File exceeds space allocated, no blocks Illegal operation on file descriptor block Bad record type Illegal record access bits set Illegal record attributes bits set Illegal record number - too large Internal consistancy error Rename - 2 different devices Rename - new file name already in use Bad directory file Can't rename old file system Bad directory syntax File already open Bad file name Bad device name Bad block on device Enter - duplicate entry in directory Not enough stack space (fcs or fcp) Fatal hardware error on device File id was not specified Illegal sequential operation End of tape detected Bad version number Bad file header Device off line Block check, CRC, or framing error Device online No such node Path lost to partner Bad logical buffer Too many outstanding messages No dynamic space available Connection rejected Timeout on request File expiration date not reached Bad tape format Not ansi 'd' format byte count Not a network lun Task not linked to specified ics/icr interrupts Specified task not installed Device offline when offline request was issued Invalid escape sequence Partial escape sequence Allocation failure Unlock error Write check failure Task not triggered Transfer rejected by receiving cpu Event flag already specified Disk quota exceeded 00r|u|mx|Oxss 1 LUT C LUT is a command to list the Logical Unit Table of a running task. 9 LUT lists open files (or devices) for a running program.  Information listed includes:& 1/ Device, UIC and File Specification6 2/ Access count, # of Retrieval pointers, Window Size7 3/ First accessed block and number of accessed blocks.  Calling sequence: 4 MCR>LUT xxxxxx for a task active at your terminal= MCR>LUT xxxxxx/TI:TTn for a task active at another terminal MCR>LUT TASKB LUN ACC RTV WIND FIRST # OF BLOCKS= CNT PTRS SIZE BLOCK MAPPEDf 1 .= 2 DDn:[ggg,uuu]Filnam.typ;nnn nn nn nn nnnnnn nnnnnne 3 .Access count, # of Retrieval pointers, Window Size7 3/ First accessed block and number of accessed blocks.  Calling sequence: 4 MCR>LUT xxxxxx for a task active at your terminal= MCR>LUT xxxxxx/TI:TTn for a task active at another terminal MCR>LUT TASKB LUN 1 MAIl To send a letter, type: MCR>MAIL []( or MCR>MAIL HENRY,DON,FRED filenameN If no filename is given, LETTER.TMP is created and filled from the terminal.% MCR>MAIL @filename [letter]A Sends mail to list specified in the file SD0:[10,3]filename.mls Listing a summary of your mail7 MCR>MAIL ? (Only lists headers of each letter) Reading your mail MCR>MAIL MEN The contents of your mailbox is typed. You may file or delete each message, and may reply to any message.n= Type AID MAI FORWARDING for information on forwarding mail.f 2 FORwarde, Mail may be forwarded to another user name.A To set up forwarding you must change your account to SD:[1,100]aA and execute the basic program "FORWARD.BAS" the program will asknB for the user name you want to forward and the user name you wantA to forward it to. The program will report if either user name is not available.fA To cancle forwarding you must cha00~y~z~*nge your account to SD:[1,100]aA and execute the basic program "UNFORWARD.BAS". The program willoA tell you if you try to cancel forwarding for a non-existant usert name.A To show all current forwarding you must change your account to18 SD:[1,100] and execute the basic program "SHOWFOR.BAS".rogram will asknB for the user name you want to forward and the user name you wantA to forward it to. The program will report if either user name is not available.fA To cancle forwarding you must cha 1 ABOrt ABOrt Taskname [/qualifer] /TI=TTnn 1 ACT ACT [taskname] [/qualifiers]$ /FU give full listing of named task! /SH short version of /FU listing. /ALL list all tasks (not just tasks at my TI)2 /TI=dev list all tasks active at specified device 1 AID1 This command is used to obtain more information3 about a particular command. The general form is:  AID [command] [parameter] ( AID - lists all possible commands. . AID command - lists syntax of the command.  BN AID command parameter - lists further information on a particular variation # of the command or switch valuea  for example, AID LBR /CRn /1 ASCiia1 ASNs1 ATTu1 AZPs AZP nnnnnn[:mmmmmm]/llllll5 change value of absolute (22-bit addressed) locationm nnnnnn to lllllla m= if optional check value mmmmmm is present, don't make changer unless current value = mmmmmm e1 BAD 1 BASic ; BASIC -- Invoke the installation default version of BASICs 1 BATchc1 BDI 1 BLOcks BLOcks filespec 1 report blocks used/allocated for specified files 7 if no file is specified, reports storage for whole UICl A 1 BOOtstrap: + BOOTSTRAP [filespec] -Bootstraps in the named system l1 BRIef ( BRIef [listfile=] filename[.type;vers] m4 produces a brief directory of the specified file(s) lists name.type;vers only1 BRU1 BYE  Logs you off from the system. 1 CAncel! CANCEL task-name [/TI=terminal]d6 Cancel the periodic rescheduling of a real-time task B1 COBale1 CMP + CMP outfile/switches =filespec1,filespec2 & /BL include blank lines in comparison' /CB list input file 2 with change bars/ /CO include comments (text preceeded by a ';')a /FF consider form-feeds2 /LI:n specify # of identical lines to be a match'% /LN list line numbers in output filei+ /MB include blanks and tabs in comparisons2 /SL[:au]specify slipper output (with audit trail) /SP[:n] spool the output file& /TB use trailing blanks in comparison= /VB:nnn specifies octal character to be used as 'change bar'w hE default switches are /-BL/-CB/CO/DI/-FF/LI:3/LN/MB/-SL/-SP/TB/VB:041l 1 CONtinue CONtinue tasknameO1 COOkie9 Prints a fortune cookie "wise saying" at your terminal.s1 COPy COPY infiled; copies file from some other device and UIC to your currentt device and UIC. b% /CD Output keeps same creation dateu% /CO Specify contiguous output file.i! /EN Enter a synonym for a file 1 CZPe CZP nnnnnn[:mmmmmm]/llllll9 change value of EXEC or SCOM (16-bit addressed) locationb nnnnnn to lllllls c= if optional check value mmmmmm is present, don't make change unless current value = mmmmmm 1 DAMmit+ Makes a wise remark to alleviate tension. 1 DANl1 DELete1 DEMoB Shows core useage on the system. On line commands available are:  C Clear screen & re-displayp G Set grain of display$ B Set beginning address of display! I Set Interval between displaysi1 DFX 1 DIAblo2 DIAblo filespec,.../qualifiers (print at Diablo) /CO:n - Produce 'n' copiesb 1 DIRectoryl5 DIRectory filename[.type;vers] (directory of files)  '. produces a directory of the specified file(s) 1 DISable  DISable task-nameo9 - Prohibit the execution of the specified installed taske 1 DMOt DMO dev-name 1 DOB 1 DOCument2 DOCument filespec,.../qualifiers (print at LP1), /PR:n - Queue for printing at priority n /CO:n - Produce 'n' copiesd /DE - Delete after printing2 /FO:n - Que00r|u|mx|Oxssue for printing of forms of type 'n'. /AF:time - Print file after time specified -4 hh:mm or (dd-mmm-yy hh:mm)1 DSCe1 DTCe1 DUMp! DUMp output=filespec/qualifiersl /BY - List as byteso /R5 - List in Rad-50 formatt /DC - List in decimals /AS - List in ASCII format' /WD - List in hexadecimal word formats' /HX - List in hexadecimal byte formatR. /LW - List in hexadecimal double-word format /RC - List in record mode - /BL:n:m - List (octal) blocks n thru m onlyp0 /BA:n:m - Specify 2-word relative block offsetH /HD[:F][:U] - Specify header block dumps as F(iles-11) or U(nformatted)4 /LB - give starting block number and fragmentation /SP - spool the output filey# /DENS:n - Specify magtape density" /RW - Rewind magtape before dump+ /HF - List header blocks in header formata 1 DUPlex1 EBCdic1 EDI 1 EDTi1 K52e' EDIT[/KED][/K52]/qualifiers filespecb w /IMPLIED_CARRIAGE_CONTROLe /EMBEDDED_CARRIAGE_CONTROL /BLOCK_SIZE:size /OUTPUT:filespec /INSPECT r1 KEd ' EDIT[/KED][/K52]/qualifiers filespece l /IMPLIED_CARRIAGE_CONTROLn /EMBEDDED_CARRIAGE_CONTROL /BLOCK_SIZE:size /OUTPUT:filespec /INSPECT p2 Sliper EDIT/SLIPER/qualifier filespec /OUTPUT[:outfile]e /LIST[:listfile] /AUDIT [:(parameters)] POSITION:ml SIZE:nc REPORT_TRUNCATION /NOAUDIT /BLANK /DOUBLE /CHECKSUM[:n]G /TRUNCATE[:n]E1 ENable ENABLE task-nameZ3 - Permit the execution of the named installed task 1 $EOD $EOD7 - Used to terminate data for a CREATE/DOLLARS command.E 1 $EOJ $EOJB Used to terminate a batch session and release allocated devices. 1 EXEcutiveE1 FACf1 FCSe1 FDU 1 FHDT1 FHXt1 FIX FIX task-name * - Fix the task in its installed partition 1 FLBS1 FLX1 FMTR1 F4PA 1 FORtran  FORtran filespec defaults to:L2 F77 filename.obj,filename.lst/-sp/cr=filename.for1 F77 4 F77 Filename,filename/qualifier=filename/qualifier i F77 switches /CK Check array boundsU/ /CO:n Specify max number of continuation linesd /DE Compile de-bug liness" /F77 Compile as F77, (not as F4P) /ID Print id and version number5 /I4 Allocate 2 words for integer & logical variablesI" /LA Latch current switch settings /LI:n specify listing 0=minimum 1=source & psects 2=source, psects, mapa( 3=source, psects, map, assembly code$ /RO Specify code areas as read-only /SP Spool the output file* /TR:xxx Traceback (ALL!LINES!BLOCKS!NONE)# /WF:n SPecify number of work files/( /WR Enable compiler warning diagnostics dM defaults /NOCK/CO:19/NODE/F77/NOID/NOI4/NOLA/LI:2/NORO/SP/TR:BLOCKS/WF:2/WR  1 FV2 4 FV2 Filename,filename/qualifier=filename/qualifier bP FV2 switches -- /CD:xxx/DE/DI/EX/ID/I4/LI:n/LO/NOOP:xxx/OP:xxx/RO/SN/SP/VA/WR r1 FREe1 FREe DVn: lists free blocks on specified devicec* FRE lists free blocks on default device1 FRGr: FRG DVn: provides information on how fragmented disk DVn:# is. Device must be a disk devicen1 Goto GOTO label? Directs PDS to skip forward through subsequent commands until:$ the required label is encountered. R% Labels have the format: [$]string:eA where 'string' is an alphanumeric string having a letter as its/ initial character. 1 HELlox HELlo [Username] [Password] 1 HOLe1 IDX:1 INF 1 INItialize 1 INStalld! INStall file-spec [/qualifiers]  /TASK[=name] - DefaultF /CM - Common /LB - Libraryo /RG - Region3 /PPAR=name - Install in named partition (task/SGA): /POOL=n - Define upper limit for SCOM pool useage (task)* /PR=n - Define execution priority (task)< /UIC=[uic] - Change task's UIC or SGA owning UIC (task/SGA)3 /INCREASE:n - Extend task's Read/Write area (task)r/ /ACCESS=option - Define non-owner access (SGA)E NA - No access (default) RO - Read only RW - Read/Write' (code) _ Define access for all groupse 1 $JobD $JOB[/qualifier][/PASSWORD:password] user-name 00~y~z~*job-ident time-limit5 /DCL - The batch job contains DCL-mode commandsO5 /MCR - The batch job contains MCR-mode commands R0 user-name - User name of an authorised IAS user, password - 1- to 6-character batch password: job-ident - A 1- to 12-character name to identify the job; time-limit - The maximum time for which the job is to run.c/ This is expressed as an integer number oft3 minutes and must not exceed 1 day (1440 min). D The PASSWORD qualifer MUST be specified if the job is to run for aG user who has protected his account against unauthorised batch access.- 1 LA120b1 LASer 8 LASer filespec,.../qualifiers (print at Laser Printer) Allowed switches are:  /CO:nn Print nn copieso0 /FF Inserts formfeeds after every 60 lines! /HE Print this help message 6 /LE:nn Shift the left margin nn spaces to the right: /WI Allow wide (portrait) output over 85 characters.1 LBR4$ LBR filespec/qualfiers [=filespec] ** /CR Createt ** /DE Deletef ** /CO Compresss ** /EX Tract ** /IN Inserta ** /LI List  ** /RP Replace b> type AID LBR xx for further information on the above switches2 CReate0 LBR library-spec/CR:size:ept:mnt:libtyp:inptyp size=size in blocks $ ept=maximum number of entry points$ mnt=maximum number of module names /SQ Squeeze existing Library; Used to allocate a contiguous library file and initializeo the 'Library header' 2 COmpress1 LBR library-spec/CO:size:ept:mnt = library-spec* size=size in blocksO$ ept=maximum number of entry points$ mnt=maximum number of module names9 Used to remove 'DELETE'd modules and reclaim free spacev2 Delete& LBR library-spec/DE:entry-name[,...]' used to delete modules from a libraryk 2 Extracta; LBR filespec=library-spec/EX:module-name[,module-name...]n= Will extract up to eight modules from the named library andi= place them in the named file. The output file will assumeO- an appropriate file_type if not specified.b2 Insert< LBR library-spec/IN=infile[,infile,...] (normal libraries)C LBR library-spec=infile/IN:name:op:op:op:op (universal libraries)d5 Used to insert new modules into an existing libraryp2 List' LBR library-spec[,list-file]/switchesf /LI list names! /LE list names and entry pointse+ /FU list names & full module descriptionst2 RP) LBR library-spec/RP=infile[,infile,...]n> combines the function of removing an old version of a module* and inserting the newer one in its place 2 Squeezen) LBR library-spec/SZ=infile[,infile,...].9 Used to remove 'DELETE'd modules and reclaim free spacep 1 LISu1 LSTl1 LUNi LUN tasknamen% lists the lun assignments of a taskr1 LUTi1 LVSBK LVS Spools a plot file to the printer/plotter. It's primary use is to re-eL plot plots hung to a system crash or printer/plotter hang. LVS promptsJ for the name of the plot file (usually "TEMP.DAT") you wish to plot.1 MACro 7 MACro [filespec.obj][,filespec.lst/switches]=filespecq viable switches /CR generate cross-reference. /PA:1 1 MAX'- a shortened form of the macro command line MAX filespec  defaults to/ MAC filespec.obj,filespec.lst/-sp=filespec.mac 1 ME# I'm sorry, but you are beyond helph1 MEMe MEM taskname/ frees area of core containing task locked ina# core due to memory parity error..1 MOUntp1 MTC 1 MMCh1 MURoE Prints one of the myriad versions of Murphy's law for your amusementr1 NETe1 ODT,1 On ON condition MCR-command WARNING ERROR SEVERE_ERRORcB - PDS will execute the supplied command when a subsequent commandA or task produces an error having a severity of greater than or- equal the stated condition. 1 ORC  macro dis-assembler: this dis-assembler produces output more viable for use in% subsequent use as actual source filer . ORC filespec = filespec1 PAG1 PAT 1 PIPt1 PRInt  PRInt filespec,.../qualifiers , /PR:n - Queue for printing at priority n /CO:n - Produce 'n' c00r|u|mx|Oxssopies /DE - Delete after printing2 /FO:n - Queue for printing of forms of type 'n'- /NH - Suppress file identification bannersv. /AF:time - Print file after time specified -4 hh:mm or (dd-mmm-yy hh:mm) 1 PRO- PROtect filespec! protect file from being deletede1 PURge  PURge filespecf9 delete multiple versions of the same file, keeping onlyt the latest version.e1 QUEueq QUEue/qualifier [device-name]8 /AL - list status of all users queue entries in all or specified queuesn6 /LI - Display list of users entries on the default4 queue device or on that specified by device-name . QUEUE[/qualifiers] device-name=filespec,... /FO:n - specify forms typed! /CO:n - specify number of copiesc! /DE - delete file after printingn /NH - omit leader/trailersf" /PR:n - specify priority in queue& /AF:time - print after specified time F QueUE/MO[/qualifiers] sequence-number - Modify indicated queue entry /DV:devs /FO: n /CO:ns /DEe /PR:ni /AF:time = QueUE/RM sequence-number - Remove indicated file from queued1 QUXa1 RCV1 REA[ REA taskname n,DVn:m+ reassign lun n of taskname to device DVn1 RED- RED DV2: = DV1: 1 Redirect all I/O from device DV1 to device DV2o1 RECd RECover filespecn s? recovers file locked as result of abnormal program termination1 REIu1 REMove REMOVE[/qualifiers] task-namey" /CM - Remove the common SGA name# /LI - Remove the library SGA name /RG - Remove the named region : /NH - Will remove a task whose header has been corrupted 1 RNOo1 RNPd1 ROLlin1 RUN" RUN taskname!filespec/qualifiers RUN taskname hh:mm:ss hh = hour mm = minute ss = second $ RUN taskname nnnn units/qualifiers 'nnnn' = number of time unitss units = H for hourse M for minutes S for seconds T for ticks. /RSI=nnnn units -specify re-schedule interval /UIC:[uic] -specify UIC" /PAR:partition -specify partition /PRI:n -specify Priority  m 1 SAVe + SAVE[/qualfiers]a /LO:terminal-listc /MO:device-list /NOEXn /NOINU 1 SDVf+ SDV DDn: sets your default system device1 SEEh1 SLP 1 SLRn1 SPElls1 SPSn1 SPYU1 SRDa1 SORt7 SORT [/qualifiers] filespec[/INDEXED:n][/FORMAT:type]t0 Where type = FIXED:n ! VARIABLE:n ! UNKNOWN:n0 /ALLOCATION:n - Set initial o/p file allocation, /BLOCK_SIZE:n - Used for mag-tape o/p files* /BUCKET_SIZE:n - Set o/p file bucket size' /CONTIGUOUS - Make o/p file contiguous + /DEVICE:dev - Device to contain work filesc# /DEVICE:([device-name]/qualifiers)n/ /ALLOCATION:n - Declare work file allocation 2 /CONTIGUOUS - Work files are to be contiguous+ /FILES:n - Number of scratch files (3 - 8)[9 /FORMAT:type - Declare o/p file format & max record sizet0 Where type = FIXED:n ! VARIABLE:n ! UNKNOWN:n? ** /KEYS:( abm.n1 abm.n2 ... ... ) - Define sorting sequence + /OUTPUT:filespec - Specify the output file * /PROCESS:process - Define sorting process :ADDRESS_ROUTING :INDEX :RECORD (default) :TAG. /RELATIVE - O/p to have RELATIVE organization8 /SEQUENTIAL - O/p to have SEQUENTIAL organization (def)< /SPECIFICATION:file-spec - File used to define sort process2 KeysE Used to control the sequence of the output file. The format of each key entry is: abm.n where:E8 a - Specifies way file is to be handled (default 'C') B - Two's complement binaryT C - Alphanumeric3 D - If alphabetic, numeric with superimposed signp+ If FORTRAN numeric, convert to binaryR! F - 2- or 4-word floating pointO* I - As D above but with leading +/- sign+ J - As D above but with trailing +/- sign)% K - As D above but sign overpunched  P - Packed decimal Z - ASCII zone- b - Defines general sort order (default 'N')f N - Assending order (def):" O - Opposite, or decending order/ m - Position of key field. ( m (decimal) > 0 )w) n - Size of key field. ( Decimal bytes ) 1 SUBm00~y~z~*it1 SYSn SYStem /qualifiers /ATL - list Active TAsksn /CKQ - list clock queue$ /GCD - list global common directory" /IRQ:opt- list I/O request queues$ /CTL:opt- list checkpointable tasks /FTL - list fixed task list% /SRQ - list the send & request queued% /ASQ - list the tasks with 's queuedg$ /SGA - list all shared global areas /BRF - lists ATL,MRK,CKQ & /FUL - lists all of above except /SGA /DEV - lists all devicesd /PAR - lists partitions /COM - lists commons 1 TCPy1 TECo 1 TERminal 1 THErapym1 TKBfD TKB taskfile[,mapfile][,symbol-table-file]=filespec[,filespec,...] /AB - task is abortable2 /CR - Produce a cross-reference on the map file /CK - Task is checkpointablet' /DA[:filespec] - Include debugging aid  /FX - Task is FIXablei. /FP - Task uses the floating point processor$ /NH - Do not include a task header /MU - Task is multi-user$ /PI - Task is position independant+ /PR - Task needs privileged access rights * /RW - Make RO-psects R/W (for debugging) H0 type AID TKB OPTIONS to see all options listed 2 Optionsf( ABSPAT - Declare absolute patch values4 ACTFIL - Declare number of simultaneous open files+ ASG - Device assignment to logical unitsAF ATRG - Declare number of attachment descriptor blocks to be created in the task header' BASE - Define lowest virtual addresst$ COMMON - Link task with common SGA/ EXTSCT - Declare extension of program sectiona3 EXTTSK - Extend memory allocation at install times/ FMTBUF - Extend run-time format string bufferO- GBLDEF - Declare a global symbol definitionP* GBLPAT - Patch relative to global symbol, GBLREF - Declare a global symbol reference$ LIBR - Link task with library SGA' MAXBUF - Extend Fortran record bufferh. ODTV - Declare size of debugging SST vector' PAR - Declare default partition namet* POOL - Declare maximum pool usage count PRI - Declare task's priority? RESAPR - Reserve APRs for use by memory management directivess8 RESCOM - Link task with the SGA from the specified UFD8 RESLIB - Link task with the SGA from the specified UFD STACK - Declare stack limit6 SYMPAT - Patch task image using global symbol values0 TASK - Assign default installed name for task' TOP - Define highest virtual addressr' TSKV - Declare address of SST vectorD UIC - Declare default UIC2 UNITS - Declare maximum number of logical units; VSECT - Declare virtual base address and size of a PSECTy1 TPC 1 TRUncate TRUNCATE filespec ... ... w1 TYPe TYPE filespec ... ... ...  list file at terminal 1 UFDm 1 UNDelete1 UNFix  UNFIX task [terminal]m - Free a FIXed task from memory  b 1 UNProtectu UNProtect filespec> reset file protection codes so owner, system can delete file r1 USE  USE n,m ;reset working uicv1 WHO2 program to show who is currently logged on, and! what programs they are runningC1 VDIc1 VFYr1 VOLs1 VTLs1 VT100e1 XRFS1 ZAP TPC 1 TRUncate TRUNCATE filespec ... ... w1 MMC  MMC MAG TAPE COPY PROGRAM 2 READ RECORDS FROM AN INPUT MAGTAPE ON DEVICE MM0:9 AND WRITES THEM TO OUTPUT MAGTAPE ON DEVICE MT0: 5 (A COMPANION PROGRAM (MTC) COPIES FROM MT0: TO MM0:)  MCR>MTC /SWS + THE FOLLOWING SWITCHES ARE ALLOWED:  /HE PRINTS THIS HELP MESSAGE$ /NM SUPPRESSES FILE COPY MESSAGES+ /RI REWINDS INPUT TAPE BEFORE PROCESSING, /RO REWINDS OUTPUT TAPE BEFORE PROCESSING9 /EO WINDS OUTPUT TAPE TO LOGICAL EOV BEFORE PROCESSINGM< /SI:NN WHERE NN SPECIFIES THE NUMBER OF EOF'S TO SKIP BE- FORE PROCESSING INPUT TAPE< /SO:NN WHERE NN SPECIFIES THE NUMBER OF EOF'S TO SKIP BE- FORE PROCESSING OUTPUT TAPE8 /CO:NN WHERE NN SPECIFIES THE NUMBER OF FILES TO COPY OLLOWING SWITCHES ARE ALLOWED:  /HE PRINTS THIS HELP MESSAGE$ /NM SUPPRESSES FILE COPY MESSAGES+ /RI REWINDS INPUT TAPE BEFORE PROCESSING, /RO REWINDS OUTPUT TAPE BEFORE PROCESSING9 /EO WINDS OUTPUT TAPE TO LOGICAL EOV BEFORE PROCE00r|u|mx|Oxss1 MOUnt B The MOUNT command logically connects devices to Ancillary Control> Processors (ACPs). There are two forms of the MOUNT command,H depending on the device being mounted. Note that, if the MOUNT commandG line is too long to fit on one MCR command line, it may be extended byH typing a hyphen at the end of all but the last line (up to a maximum of 255(10) characters." Files-11 Disk or DECtape Format:3 MOU[NT] ddnn:[volume-label][/keyword][/keyword]...& Files-11 (ANSI) Magnetic Tape Format:5 MOU[NT] device:[file-set-ID] [/keyword][/keyword]...a= For information on the options of the various formats, type: 1 AID MOUNT FILES11 ! For help on Files-11 Formatt0 AID MOUNT MAGTAPE ! For help on Magtape Format3 AID MOUNT KEYWORDS ! For list of keywords for all ! formats.a 2 FILES11f lA The general format of the command to mount a Files-11 device is:l3 MOU[NT] ddnn:[volume-label][/keyword][/keyword]...-D where ddnn: is the device-unit on which the volume is to be mounted (must be specified)l6 volume-label is the label on the volume (Set by INI.) Keywords available:! /ACP=option SpecifY ACP to useS- /CHA=[parameter(s)] Specify CharacteristicsM% /DENS=density Specify Tape densityA. /EXT=block-count Specify default extend sizeA /FPRO=[system,owner,group,world] Specify default File Protectionm2 /LRU=FCB-count Specify Pre-accessed directories /OVR Overide volumn lablew /UNL Unlock the INDEX FILE* /WIN Set number of retrieval pointersB Type AID MOUNT KEYWORDS for help on the above keywords. Type AID& MOUNT EXAMPLES for examples of usage. 2 MAGTAPEp nD The general form of the command to mount a Files-11 (ANSI) Magnetic Tape is:n+ MOU[NT] device:[file-set-ID] [/keyword(s)] J where device is the device name on which the volume set is to be mounted. Keywords available:! /ACP=option SpecifY ACP to user- /CHA=[parameter(s)] Specify Characteristics % /DENS=density Specify Tape density . /EXT=block-count Specify default extend sizeA /FPRO=[system,owner,group,world] Specify default File Protection 2 /LRU=FCB-count Specify Pre-accessed directories /OVR Overide volumn lable  /UNL Unlock the INDEX FILE* /WIN Set number of retrieval pointersB Type AID MOUNT KEYWORDS for help on the above keywords. Type AID& MOUNT EXAMPLES for examples of usage. 2 KEYWORDS nG In the following list of keywords, each keyword is preceded by a code /C that indicates the device type for which the keyword is legal. "F"u0 indicates Files-11, and "T" indicates magtape. 0 (FT) /ACP=option Specifies the ACP to be used.1 (FT) /CHA=[parameter(s)] Specify CharacteristicsvH (FT) /DENS=tape-density Specifies tape density: 800, 1600, or 6250 bpi.9 (F) /EXT=block-count Specifies file extension increment.a? (FT) /FPRO=[s,g,o,w] Specifies default file protection codes.I (F) /LRU=directory-count Specifies number of directories to be accessed.d( (FT) /OVR Overrides label processing.) (T) /OVREXP Overrides expiration date.i5 (T) /OVRFSID Ignores existing File Set Identifiers. & (F) /UNL Unlocks volume index file.9 (F) /WIN=option Specify number of mapping pointers.T% to be allocated for file windows.s3 For more detailed help on a specific keyword, typec AID MOUNT KEYWORDS keyword-name3 ACPR# The format of the /ACP keyword is:r (FT) /ACP=option)C where option is the name of the Ancillary Control Processor to use< with the volume. The default depends upon the device type: Files-11 except DECtape: F11ACP DECtape: DTAACP Magtape: MTAACP3 CHA)# The format of the /CHA keyword is:(# (FT) /CHA=[option(,option,option)]a where options can be: FOR A Foreign volumno ATCH Device may be attached) DCF Device control functions permittedK3 DENS$ The format of the /DENS keyword is: (FT) /DENS=density) where density is 800, 1600, or 6250 bpi.m3 EXTe# The format of the /EXT keyword is: (F) /EXT=block-countfI where block-count specifies the00~y~z~* number of blocks by which a file can be aI extended when it exhausts its space allocation. The default is the values+ specified when the volume was initialized.3 FPRO$ The format of the /FPRO keyword is:: (FT) /FPRO=(SYSTEM:RWED,OWNER:RWED,GROUP:RWED,WORLD:RWED) n orm /FPRO=[RWED,RWED,RWED,RWED]J Each subfield in the keyword may be one to four of the following letters:K R(ead), W(rite), E(xtend), D(elete). In each instance, the absence of the -M code means that the applicable user is denied the access right. The default / values are taken from the volume's home block.t3 LRUe# The format of the /LRU keyword is:e (F) /LRU=directory-countL where directory-count specifies the approximate number of directories that > will be accessed simultaneously while the volume is mounted. 3 OVR0 The format of the (privileged) /OVR keyword is: (FT) /OVRK For disks and DECtapes, this keyword overrides label processing so that a c9 volume can be mounted without specifying a volume label.tI For magnetic tapes, this keyword overrides File-Set-ID processing on thekL first tape of a tape set so that a volume can be mounted without specifying a File Set ID.o3 OVREXP' The format for the /OVREXP keyword is:o (T) /OVREXPF /ONVREXP specifies that the expiration date on the tape volume(s) is overridden. 3 OVRFSID ( The format for the /OVRFSID keyword is: (T) /OVRFSIDtE /OVRFSID specifies that existing File Set Identifiers on the second dG and subsequent magnetic tape volumes of a multivolume set are ignored. 3 PROe$ The format for the /PRO keyword is:9 (FT) /PRO=(SYSTEM:RWCD,OWNER:RWCD,GROUP:RWCD,WORLD:RWCD)  ori /PRO=[RWCD,RWCD,RWCD,RWCD]K where the protection specification (R,W,C,D) specifies the default volume hF protection. In each instance, the absence of the code means that the I applicable user is denied the access right. The defaults are the values + specified when the volume was initialized.o3 UICe$ The format for the /UIC keyword is: (FT) /UIC=[ggg,uuu]sJ This option specifies the volumn UIC to be used for the duration that the volume is mounted.D3 UNLR$ The format for the /UNL keyword is: (FT) /UNLDK This option specifies that the volume's index file is to be left unlocked,u1 thus giving task write access to the index file. 3 WINe# The format of the /WIN keyword is: (F) /WIN=nsF where n is the number of retrieval pointers to be kept in each windowK block for each open file on this volumn. Increasing this number speeds ac-uKcess, particularly to randomly accessed files, at the expense of system dy-t namic memory.s 2 EXAMPLES  RE To mount a pack that has a null label on an RK07 drive, selecting nos special options:o MOU DM1:fG To mount a magtape volume set at 1600 bpi overriding expiration dates i% MOU MM0:PAYROLLVOL1/DENS=1600/OVREXPwE To mount an RP06 for use as the main system device (because of heavyt/ use, we will keep high window and LRU counts):l MOU DB0:/OVR/LRU=10/WIN=20inumber speeds ac-uKcess, particularly to randomly accessed files, at the expense of system dy-t namic memory.s 2 EXAMPLES  RE To mount a pack that has a null label on an RK07 drive, selecting nos special options:o MOU DM1:fG To mount a magtape volume set at 1600 bpi overriding expiration dates i% MOU MM0:PAYROLLVOL1/DENS=1600/OVREXPwE To mount an RP06 for use as the main system device (because of heavyt/ use, we will keep high window and LRU counts):l MOU DB0:/OVR/LRU=10/W1 MTC  MTC MAG TAPE COPY PROGRAM 2 READ RECORDS FROM AN INPUT MAGTAPE ON DEVICE MT0:9 AND WRITES THEM TO OUTPUT MAGTAPE ON DEVICE MM0: 5 (A COMPANION PROGRAM (MMC) COPIES FROM MM0: TO MT0:)  MCR>MTC /SWS + THE FOLLOWING SWITCHES ARE ALLOWED:  /HE PRINTS THIS HELP MESSAGE$ /NM SUPPRESSES FILE COPY MESSAGES+ /RI REWINDS INPUT TAPE BEFORE PROCESSING, /RO REWINDS OUTPUT TAPE BEFORE PROCESSING9 /EO WINDS OUTPUT TAPE TO LOGICAL EOV BEFORE PROCE00u|mx|OxssSSINGT< /SI:NN WHERE NN SPECIFIES THE NUMBER OF EOF'S TO SKIP BE- FORE PROCESSING INPUT TAPE< /SO:NN WHERE NN SPECIFIES THE NUMBER OF EOF'S TO SKIP BE- FORE PROCESSING OUTPUT TAPE8 /CO:NN WHERE NN SPECIFIES THE NUMBER OF FILES TO COPY OLLOWING SWITCHES ARE ALLOWED:  /HE PRINTS THIS HELP MESSAGE$ /NM SUPPRESSES FILE COPY MESSAGES+ /RI REWINDS INPUT TAPE BEFORE PROCESSING, /RO REWINDS OUTPUT TAPE BEFORE PROCESSING9 /EO WINDS OUTPUT TAPE TO LOGICAL EOV BEFORE PROCE 2NCP is the Network Control Program. Commands are:% CLEAR LOAD SET TELL ZERO EXIT LOOP SHOW TRIGGERMMost of the commands operate on network components. The component types are: ALIAS LINE NODE PROCESS% EXECUTOR LOGGING OBJECT SYSTEMMNCP will prompt for missing parameters when a partially complete command lineNhas been entered. I response to these prompts, you may type an ESC character=for a brief description of what may be entered at that point.MCommands may be executed either locally or remotely at the option of the user ?of NCP. These concepts are discussed in the help for EXECUTOR.oFor more help use: NCP>HELP commandm NCP>HELP component-type1 ACCESSDWhenever a command implies a logical link connection, access controlLinformation may be required. This information may be provided either withinHthe command, or automatically through the use of an alias. There are two2formats for specifying access control information:@ node-id [USER user-id] [PASSWORD password] [ACCOUNT account]* node-id[/user-id[/password[/account]]]IThe access control fields (user-id, password, and account) are strings of Iany characters. In the keyword form, the fields can be in any order. InaJthe slash form, the positions are fixed. To include a blank, tab or slashLin a field, enclose the field in quotes ("). A quote within a quoted stringGis indicated with a double quote (""). User-id and account can be 0-16t+characters, password can be 0-8 characters.]@Some examples of equivalent access control in the two forms are:& ELROND USER 305,317 PASSWORD SECRET ELROND/305,317/SECRET# BERGIL ACCOUNT A/B PASSWORD SHHHe BERGIL//SHHH/"A/B"m 2 CONTROLsDWhenever a command implies a logical link connection, access controlLinformation may be required. This information may be provided either withinHthe command, or automatically through the use of an alias. There are two2formats for specifying access control information:@ node-id [USER user-id] [PASSWORD password] [ACCOUNT account]* node-id[/user-id[/password[/account]]]IThe access control fields (user-id, password, and account) are strings ofSIany characters. In the keyword form, the fields can be in any order. InaJthe slash form, the positions are fixed. To include a blank, tab or slashLin a field, enclose the field in quotes ("). A quote within a quoted stringGis indicated with a double quote (""). User-id and account can be 0-16t+characters, password can be 0-8 characters.]@Some examples of equivalent access control in the two forms are:& ELROND USER 305,317 PASSWORD SECRET ELROND/305,317/SECRET# BERGIL ACCOUNT A/B PASSWORD SHHHe BERGIL//SHHH/"A/B"m1 ALIASlKAn alias is an alternate name for a node. They are specified in the forms:c' ALIAS alias-name - a specific alias.l6 ALL ALIASES - all aliases regardless of scope.3 KNOWN ALIASES - known aliases within a scope. NThe alias name is a string of 1-6 alphanumeric characters, containing at leastone alphabetic character.cNAliases are applied within a defined scope. Whenever a node name is used, theJaliases for the appropriate scope are first searched for match. If one isLfound, the real node name associated with it is actually used instead of thealias.GIn addition to this, if a connect is being initiated, no access control Einformation was provided with the connect request, and access controlnMinformation is associated with the alias, the alia00~y~z~*s associated access controln.information is used in forming the connection.For more help use: HELP ACCESS CONTROL HELP ALIAS SCOPE, HELP SET ALIASh HELP CLEAR ALIASr HELP SHOW ALIAS2 SCOPEIGScope defines the connect requests to which an alias applies. Scope isnspecified in one of the forms: [SCOPE] GLOBALn [SCOPE] TERMINAL terminal-id /Where terminal-id is a terminal identification. LIf no scope is specified for a command to the local node, the default is theNterminal that the command is from. Scope must be specified for a command to a remote node.LAliases of global scope are applied to connect requests coming from programsLassociated with any terminal. Aliases of terminal scope are applied only toJprograms associated with the specific terminal. When attempting to map anKalias to a real node name, first the aliases for the terminal are searched,athen the global aliases.OSpecifying scope is a privileged option. Non-privileged users may only controlealiases for their own terminal. 1 EXECUTORDThe executor is the network node that is executing a command. It is,specified in either of the equivalent forms: EXECUTORi NODE executor-node-idINote that the system that is executing the command is not necessarily theeDsystem on which the command is typed to NCP. This is because NCP is:capable, on request, of directing commands to other nodes.For more help use: HELP TELL HELP SET EXECUTOR HELP CLEAR EXECUTOR HELP SHOW EXECUTORe HELP ZERO EXECUTORl1 LINEKA line is a hardware communications path. They are specified in the forms:4 LINE line-id - a specific line or group of lines.2 KNOWN LINES - all lines known to the executor.5 ACTIVE LINES - known lines in ON or SERVICE state.eIA line identification is a string of 4-16 characters in one of the forms:l device-controller device-controller-unit. device-controller.tributary# device-controller-unit.tributary ADevice is an alphabetic device mnemonic, such as DMC, DA, or KDZ.E3Controller is the decimal device controller number.pMUnit is the decimal unit on the controller. It is allowed only if the device is multiplexed.lMTributary is the decimal logical tributary number. It is allowed only if thealine is multipoint.fLController, unit, and/or tributary may be replaced with an asterisk (*) as aLwild card to indicate all known values in that position. A wild card cannotBbe used to the left of a specific number in a line identification.For more help use: HELP SET LINE HELP CLEAR LINE HELP SHOW LINEp HELP ZERO LINEi 1 LOGGING MA logging component is a sink (or destination) for logging information. Theyrare specified in the form:8 LOGGING sink-type - for a specific logging sink type.@ KNOWN LOGGING - for all sink types known to the executor.D ACTIVE LOGGING - for known sink types in the ON or HOLD state.6The logging sink types are CONSOLE, MONITOR, and FILE.For more help use: HELP LOGGING EVENTS HELP SET LOGGING  HELP CLEAR LOGGING  HELP SHOW LOGGING2 EVENTS8Logging events are specified in the form: class.types:The format of types is: range[,types]8The format of range is: type[-type]LIn a range, the second type must be greater than the first. The event classMis a decimal number in the range 0-512. An event type is a decimal number ingthe range 0-31.e*Some examples of event specifications are:2 Specification Specific events included: 4.3 4.30 4.3-6,9 4.3, 4.4, 4.5, 4.6, 4.9K 4.3,9-11,15,18-21 4.3, 4.9, 4.10, 4.11, 4.15, 4.18, 4.19, 4.20, 4.21 GEvents may be qualified by a line or node and/or sent to a remote node.For more help use:! HELP LOGGING EVENTS QUALIFIERSt HELP LOGGING EVENTS SINKS 3 QUALIFIERSIEvents can be qualified by a line or node. An event which is set with a oEqualifer will only be logged if the ev00u|mx|Oxssent occurred over the specifiede component.DThe format for a qualifier is the same as the entity identification.For more help use: HELP NODE HELP LINE3 SINKS,MA sink node is the node at which an event will be logged. The event will be Mlogged only if the logging state of the sink type on the sink node for which Q)the event is destined is in the ON state. MAll filtering of events is done at the node on which the event was generated.iJThe sink node will log the event whether or not that event filter has beenset up on the sink node.1 NODENA node is a network system that can support logical links. They are specified in the forms:H" NODE node-id - a specific node.O KNOWN NODES - all nodes seen by the executor as reachable or having a name.e1 ACTIVE NODES - known nodes that are reachable.rL LOOP NODES - nodes that are loopback paths to the executor over a line.NA node identification is either a node name or a node address. A node name isKa string of 1-6 alphanumeric characters, containing at least one alphabeticOcharacter. A node address is the guarenteed network-wide unique identificationi7of a node and is a decimal number in the range 1-32767..CIn most cases, node addresses and names may be used interchangably.nFor more help use: HELP SET NODE HELP CLEAR NODE HELP SHOW NODE  HELP ZERO NODEb1 OBJECTMAn object is a network addressable program. They are specified in the forms:a* OBJECT object-type - a specific object.: KNOWN OBJECTS - all objects known to the executor.6An object type is a decimal number in the range 0-255.For more help use: HELP SET OBJECT HELP CLEAR OBJECT HELP SHOW OBJECT 1 PROCESSeGA process is a control program that operates in the network system (the <Communications Executive). They are specified in the forms:- PROCESS process-name - a specific process.n> KNOWN PROCESSES - all processes known to the executor.C ACTIVE PROCESSES - known processes that are in the ON state. *A process name is 3 alphabetic characters.For more help use: HELP SET PROCESS. HELP CLEAR PROCESS HELP SHOW PROCESS1 TELLHUse the TELL prefix to send a single command to a remote node (or to the;remote command facility on the local node). The format is:s( TELL node-id [access-control] commandEThis prefix on the command causes only that command to be sent to the Jremote node. It is not effected by previous commands and has no effect onon subsequent commands. For more help use: HELP ACCESS CONTROL HELP EXECUTOR HELP SET EXECUTOR NODE 1 SYSTEMLThe system is the network operating environment, known as the Communications(Executive. It is specified in the form: SYSTEMe1 CLEARf @NCPCLE.HLPe1 EXIT1EXIT simply exits NCP. It is equivalent to a ^Z.o1 LOAD @NCPLOA.HLPs1 LOOP @NCPLOO.HLPd1 SET @NCPSET.HLPm1 SHOW @NCPSHO.HLP 1 TRIGGERd @NCPTRI.HLP 1 ZERO @NCPZER.HLPc1 NCP> Commands are: % CLEAR LOAD SET TELL ZEROh EXIT LOOP SHOW TRIGGER4Use the HELP command to obtain complete information. 1 Account:A string of 1-16 characters.1 Active 2 pollingm3 ratio:$A decimal number in the range 1-255. 1 Address:NA decimal node address in the range 1 to the maximum address for the executor.1 AliasD2 name:.OA string of 1-6 alphanumeric characters with at least one alphabetic character.1 Clear 2 component:Component types are:= ALL ALIASES KNOWN ALIASES LINE OBJECTO= ALIAS KNOWN LINES LOGGING PROCESSn8 EXECUTOR KNOWN OBJECTS NODE SYSTEM2 line 3 options:The only option is ALL.b 2 loggingg 3 options:+The options are EVENT, LINE, NODE or SINK. g2 node 3 options:KOptions are NAME or LINE for remote nodes, or HOST, NODE, RECEIVE PASSWORD,a&or TRANSMIT PASSWORD for the executor.2 object 3 options:The only option is ALL.e 1 Copies:A9Options are SI00 ~y~z~*NGLE or a decimal number in the range 1-64. 1 Cost: #A decimal number in the range 1-25. 1 Command:*The command you wish to TELL the executor. 1 Componente2 type:nOptions may be:o( ALIASES LOGGING OBJECTS* LINES NODES PROCESSES1 CSR 2 address:+An octal number in the range 160000-177776.O1 Dead 2 pollingS3 ratio:$A decimal number in the range 1-255. 1 Destinationn2 node: LThe name or address of the destination node, optionally with access control. 1 Duplex:4Options are FULL or HALF.u1 Event 2 identification:oLIn the form class.types; where class is a decimal number in the range 0-511Oand types are decimal numbers in the range 0-31 separated by commas or hyphens.N;For example, 4.0-4,6-13 means class 4, events 0-4 and 6-13.e 1 Hexadecimal1 2 password:O?A hexadecimal number in the range 0-FFFFFFFFFFFFFFFF (8 bytes).-1 Host2 node3 identification:hA node name or address.s1 Length2 of3 test4 data:s&A decimal number in the range 1-65535.1 Line2 identification:dGA line identification in the form device-controller[-unit][.tributary]. &Examples are: DMC-0, DZ-1-2, KDZ-1-2.12 state:Options are ON, OFF or SERVICE. 1 Load 2 options:Options are NODE or VIA.2 image 3 input-4 file:eA local file specification.e 1 Location2 in 3 memory:- Options are FIRSTFIT or TOPDOWN. 1 Logging 2 sink3 type:#Options are CONSOLE, MONITOR, FILE.2 state:Options are ON or OFF.2 sink3 node:- Options are EXECUTOR or node-id.2 sink3 name:cBOptions are valid terminal id (CONSOLE),valid task name (MONITOR),and valid file name (FILE).2 line3 identification:FGA line identification in the form device-controller[-unit][.tributary]. &Examples are: DMC-0, DZ-1-2, KDZ-1-2.12 node3 identification: A node name or address.r1 Loop 2 component:Options are LINE or NODE. 1 Maximumr 2 option:M!Options are CONTROLLERS or LINES. 2 controllers:&A decimal number in the range 0-16384.2 lines:&A decimal number in the range 0-16384. 1 Multipoint2 ratio 3 type: Options are ACTIVE or DEAD. 1 Node2 identification:iA node address or name.c2 name:eOA string of 1-6 alphanumeric characters with at least one alphabetic character.12 state:Options are ON, OFF, or SHUT. 1 Number2 of3 test 4 messages:&A decimal number in the range 1-65534.1 Object2 name: A task name. L 2 number: $A decimal number in the range 0-255.2 user:8Options are DEFAULT or LOGIN.r2 verification:8 Options are ON, OFF, or INSPECT.1 Output2 file/device:%A local file or device specification. 1 Owners2 name:cOptions are DLX or NSP. 1 Partitionc2 name:rA partition name.l 1 Priority:t"A decimal number in the range 4-7. 1 Process2 name:r"A 3 character DECnet process name.1 Scope:Options are GLOBAL or TERMINAL. 1 Set 2 component: Options are:3 ALIAS LINE PROCESSp2 EXECUTOR LOGGING SYSTEM KNOWN LINES NODEP2 aliasu 3 options:EOptions are SCOPE or DESTINATION. A destination is required, a scope+may only be provided if you are privileged. 2 line 3 options:"Options are ALL or one or more of:7 CONTROLLER CSR MULTIPOINT ACTIVE STATEc; COST MULTIPOINT DEAD TRIBUTARY : DUPLEX OWNER UNIT CSR8 LOCATION PRIORITY VECTOR 2 loggingG 3 options:-Options are EVENT, LINE, NODE, SINK or STATE.l2 node 3 options:KOptions are NAME or LINE for remote nodes, or HOST, NODE, RECEIVE PASSWORD,bASTATE, TRANSMIT PASSWORD, or VERIFICATION STATE for the executor. 2 object 3 options:0Options are COPIES, NAME, USER, or VERIFICATION. 2 process 3 options:"Options are ALL or one or more of:( LOCATION 00u|mx|Oxss MAXIMUM LINES$ MAXIMUM CONTROLLERS PARTITION1 Show 2 component: Options are:6 ACTIVE ALIASES, LINES, LOGGING, NODES, or PROCESSES ALL ALIASES EXECUTORo= KNOWN ALIASES, LINES, LOGGING, NODES, OBJECTS or PROCESSES  LINEE LOGGING LOOP NODES, NODE OBJECTr PROCESS SYSTEM 1 Sink2 node3 identification::$The options are EXECUTOR or node-id. 1 Terminal2 identification:i'A terminal device specification. (TTn:)1 Text 2 password: A string of 1-8 characters.C 1 TributaryP 2 address:$A decimal number in the range 1-255. 1 TriggerA 2 options:Options are NODE or VIA.1 Type2 of3 test4 data: #Options are MIXED, ONES, or ZEROES.O1 User2 identification:EA string of 1-16 characters. 1 Vector:J$An octal number in the range 0-1000.1 Verification2 state:Options are ON or OFF.1 Zero 2 component: Options are:/ EXECUTOR KNOWN NODES NODE1 KNOWN LINES LINE SYSTEMs 1 TributaryP 2 address:$A decimal number in the range 1-255. 1 TriggerA 2 options:Options are NODE or VIA.1 Type2 of3 test4 data: #Options are MIXED, ONES, or ZEROES.O1 User2 identification:EA string of 1-16 characters. 1 Vector:J$An octal number in the range 0-1000.1 Verification2 state:Options are ON or OFF.1 Zero 2 component: Options are:/ EXECUTOR KNOWN NODES NODE1 KNOWN LINES LI#The format of the CLEAR command is:$ CLEAR component component-optionsComponent types are: ALIAS EXECUTOR LINE LOGGING NODE OBJECT PROCESS SYSTEMFor more help use: HELP component-type HELP CLEAR component-type2 ALIAS4Use the CLEAR ALIAS options to remove alias entries.5To remove a specific alias name within the scope use:) CLEAR ALIAS alias-name [[SCOPE] scope]6To remove all aliases recognized within the scope use:& CLEAR KNOWN ALIASES [[SCOPE] scope].To remove all aliases regardless of scope use: CLEAR ALL ALIASESFor more help use: HELP ALIASL HELP ALIAS SCOPEO 2 EXECUTORBUse the CLEAR EXECUTOR command to remove executor node parameters.The format is: CLEAR EXECUTOR parameter-typeParameter types are: HOSTr NODEo RECEIVE PASSWORDi TRANSMIT PASSWORDFor more help use: HELP EXECUTOR% HELP CLEAR EXECUTOR parameter-typee3 HOSTAUse the CLEAR EXECUTOR HOST command to remove the executor's hostJspecification. This results in the executor defaulting to itself as host.The format is: CLEAR EXECUTOR HOSTFor more help use: HELP SET EXECUTOR HOST3 NODEJUse the CLEAR EXECUTOR NODE command to return NCP to the default executor.GThe default executor is the local node (the node where NCP is running).WThe format is: CLEAR EXECUTOR NODEFor more help use: HELP SET EXECUTOR NODEp 3 RECEIVEpKUse the CLEAR EXECUTOR RECEIVE PASSWORD command to remove the password thatKthe executor expects to receive during line initialization with an adjacentnode. The format is:E" CLEAR EXECUTOR RECEIVE PASSWORDFor more help use:% HELP SET EXECUTOR RECEIVE PASSWORDN 4 PASSWORDKUse the CLEAR EXECUTOR RECEIVE PASSWORD command to remove the password thateKthe executor expects to receive during line initialization with an adjacentnode. The format is:" CLEAR EXECUTOR RECEIVE PASSWORDFor more help use:% HELP SET EXECUTOR RECEIVE PASSWORD 3 TRANSMITLUse the CLEAR EXECUTOR TRANSMIT PASSWORD command to remove the password thatHthe executor transmits during line initialization with an adjacent node.The format is:# CLEAR EXECUTOR TRANSMIT PASSWORDFor more help use:& HELP SET EXECUTOR TRANSMIT PASSWORD 4 PASSWORDLUse the CLEAR EXECUTOR TRANSMIT PASSWORD command to remove the password thatHthe executor transmits during line initialization with an adjacent node.The format is:# CLEAR EXECUTOR TRANSM00~y~z~*IT PASSWORDPFor more help use:& HELP SET EXECUTOR TRANSMIT PASSWORD2 LINEDUse the CLEAR LINE command to remove a line from the running system.The format is: CLEAR LINE line-id ALL:For more help use: HELP LINE 2 LOGGINGoHUse the CLEAR LOGGING command to disable the logging of events or to set"the sink name back to the default.The format is:F CLEAR LOGGING sink-type EVENTS event-list [source-qual] [sink-node] NAME:For more help use: HELP LOGGING HELP LOGGING EVENTS! HELP LOGGING EVENTS QUALIFIERSO HELP LOGGING EVENTS SINKS2 NODE5Use the CLEAR NODE command to remove node parameters.iThe format is:$ CLEAR NODE node-id parameter-typeParameter types are: LINE  NAMEGFor more help use: HELP NODE! HELP CLEAR NODE parameter-typek3 LINEIUse the CLEAR NODE LINE command to remove a loop node name entry from theoexecutor. The format is:  CLEAR NODE node-name LINEFor more help use: HELP SET NODE LINE 3 NAMENUse the CLEAR NODE NAME command to remove a node name entry from the executor.The format is: CLEAR NODE node-id NAMEFThis command will clear either a loop node name or a normal node name.For more help use: HELP SET NODE LINEo HELP SET NODE NAME 2 OBJECTHUse the CLEAR OBJECT command to remove a object from the running system.The format is: CLEAR OBJECT object-type ALL For more help use: HELP OBJECT 2 PROCESSJUse the CLEAR PROCESS command to remove a process from the running system.The format is:! CLEAR PROCESS process-name ALLoFor more help use: HELP PROCESSi2 SYSTEMHUse the CLEAR SYSTEM command to remove DECnet from the operating system.The format is: CLEAR SYSTEMOFor more help use: HELP SYSTEMCTHUse the CLEAR OBJECT command to remove a object from the running system.The format is: CLEAR OBJECT object-type ALL For more help use: HELP OBJECT 2 PROCESSJUse the CLEAR PROC"The format of the LOAD command is: LOAD target target-optionsGTarget types are:P NODEs VIAFor more help use: HELP LOAD target-type2 NODE?Use the LOAD NODE command to down-line load the specified node.F'The format of the LOAD NODE command is:  LOAD NODE node-id [options]The options are:5 ADDRESS HOST SECONDARY TERTIARYe0 FROM NAME PASSWORD VIAFor more help use: HELP LOAD option 2 VIAsHVIA can be used either as a target type or as an option on the LOAD NODEcommand.KUse the LOAD VIA command to perform a down-line load on the specified line.OThe format is: LOAD VIA line-id [option]The options are:5 ADDRESS HOST SECONDARY TERTIARYn% FROM NAME PASSWORD]For more help use: HELP LOAD option KUse the VIA option on the LOAD NODE command to select the line that is usedVKto get to the target node. This will override the line in the default datah<base that was created at network generation. The format is:" LOAD NODE node-id [VIA line-id] 2 ADDRESSnLUse the ADDRESS option to specify the node address that the target is to useMto identify itself when it comes up. This will override the address that was*used to identify the node. The format is:% LOAD target [ADDRESS node-address]2 FROMNUse the FROM option to specify the system image file that is to be loaded intoOthe target. This will override the load file in the default data base that wasa.created at network generation. The format is:( LOAD target [FROM file-specification]2 HOSTNUse the HOST option to specify the host that the target node is to use when itMcomes up. This will override the load file in the default data base that wass.created at network generation. The format is: LOAD target [HOST node-id]2 NAMEIUse the NAME option to specify the node name that the target is to use to Oidentify itself when it comes up. This will override the name t00#&u|mx|Oxsshat was used to "identify the node. The format is: LOAD target [NAME node-name][ 2 PASSWORDLUse the PASSWORD option to specify the password that is to be used to verifyMservice access over the line. This will override the service password in theu9default data base that was created at network generation. %The format of the PASSWORD option is:d, LOAD target [[SERVICE] PASSWORD] passwordMWhere password is a hexadecimal number representing the bits to be used. TheiIpassword is in the range 0-FFFFFFFFFFFFFFFF to represent up to 64 bits (8Kbytes) of password. The length of the password (in bytes) is determined byeHthe number of characters input. For example a password of 0 is only one/byte long, a password of 00000 is 3 bytes long.h 2 SECONDARYaMUse the SECONDARY LOADER option to specify the secondary loader that is to beoNin loading the target node. This will override the default that is determinedNeither from information received from the target or from the default data base.created at network generation. The format is:6 LOAD target [SECONDARY [LOADER] file-specification] 2 TERTIARYKUse the TERTIARY LOADER option to specify the tertiary loader that is to be0Nin loading the target node. This will override the default that is determinedNeither from information received from the target or from the default data base.created at network generation. The format is:5 LOAD target [TERTIARY [LOADER] file-specification]eived from the target or from the default data base."The format of the LOOP command is: LOOP target [loop-options]Target types are: EXECUTOR LINE NODEThe loop options are: COUNT LENGTH WITHFor more help use: HELP LOOP loop-option HELP LOOP target-type2 COUNTIUse the COUNT option to specify the number of messages to be looped. The format is: COUNT number7Where number is a decimal integer in the range 1-65535.8If the COUNT option is not used, the default count is 1. 2 EXECUTORJUse the LOOP EXECUTOR command to loop test using a logical link within theexecutor node. The format is:0 LOOP EXECUTOR [access-control] [loop-options]JWhere access-control is any access control necessary to gain access to theKexecutor loopback mirror, and loop-options is zero or more of COUNT, LENGTHr and/or WITH.For more help use: HELP ACCESS CONTROL HELP LOOP loop-option HELP EXECUTOR2 WITHMUse the WITH option to specify the type of data in the messages to be looped.TThe format is: WITH block-typeWhere block-type is one of:i@ MIXED to use blocks of alternating binary ones and zeroes.) ONES to use blocks of binary ones.n+ ZEROES to use blocks of binary zeroes.a5If the WITH option is not used, the default is MIXED.i2 LENGTHHUse the LENGTH option to specify the number of bytes of test data in the&messages to be looped. The format is: LENGTH number7Where number is a decimal integer in the range 1-65535.m<If the LENGTH option is not used, the default length is 128.NNote that if the length selected is too long for the message handling modules,=the user will be informed as to the maximum allowable length.Z2 LINEGUse the LOOP LINE command to loop test a specific line. The format is:e# LOOP LINE line-id [loop-options]GMWhere line-id is the identification of the executor's line that is to be loopeEtested and loop-options is zero or more of COUNT, LENGTH and/or WITH.eMThe line must be in either the ON or SERVICE state. If it is in the ON statehJit will be temporarily made unavailable to its owner and used for the loopJtest. If it is in the SERVICE state it is reserved for such operations as+loop and the owner is already not using it. For more help use: HELP LINE HELP LOOP loop-option2 NODEOUse the LOOP NODE command to loop test to a specific node using a logical link.eThe format is:4 LOOP NODE node-id [access-control] [loop-options]JWhere node-id is the identification of the node th00+-~y~z~*at is to be connected toIfor the loop test, access-control is any access control necessary to gainoIaccess to the node's loopback mirror, and loop-options is zero or more ofeCOUNT, LENGTH and/or WITH.4The node can be either a normal node or a loop node.For more help use: HELP ACCESS CONTROL HELP LOOP loop-option HELP NODE HELP SET NODE LINE 2 WITHMUse the WITH option to specify the type of data in the messages to be looped.The format is: WITH data-type Where data type is one of:D MIXED - for data composed of alternating binary zeroes and ones.1 ONES - for data composed of all binary ones. 3 ZEROES - for data composed of all binary zeroes.n?If the WITH option is not used, the default data type is MIXED.For more help use: HELP ACCESS CONTROL HELP LOOP loop-option HELP NODE HELP SET NODE LINE 2 WITHMUse the WITH option to specify the type of data in the messages to be looped.The format is: WITH data-type Where data!The format of the SET command is:" SET component component-optionsComponent types are: ALIAS EXECUTOR LINE LOGGING NODE OBJECT PROCESS SYSTEMFor more help use: HELP component-type HELP SET component-type2 ALIASGUse the SET ALIAS command to create or change an alias for a node. The format is:L SET ALIAS alias-name DESTINATION node-id [access-control] [[SCOPE] scope]BThe DESTINATION and SCOPE parameters may be input in either order.For more help use: HELP ACCESS CONTROL HELP ALIASt HELP ALIAS SCOPE 2 EXECUTORCUse the SET EXECUTOR command to establish executor node parameters.The format is: SET EXECUTOR parametersParameter types are: HOSTE NODEn RECEIVE PASSWORD  STATE TRANSMIT PASSWORD VERIFICATIONsFor more help use: HELP EXECUTOR# HELP SET EXECUTOR parameter-typea3 HOSTHUse the SET EXECUTOR HOST command to establish the host node used by theKexecutor for down-line task loads or for connects to $HOST. The format is:L SET EXECUTOR HOST node-idKWhere node-id is a node name or node address as describe for regular nodes.hFor more help use: HELP EXECUTOR HELP NODE3 NODEKUse the SET EXECUTOR NODE command to establish the executor node to be usedDHby NCP. Using this command causes subsequent commands (other than HELP,NEXIT, or CLEAR EXECUTOR NODE) to be directed to the remote command processing7modules on the specified executor node. The format is:o- SET EXECUTOR NODE node-id [access-control]KWhere node-id is the node name or node address of the desired executor node Kand access-control is the information necessary to gain the desired access.LIOn an RSX node, the access control will be used to determine the level ofoKprivilege allowed in performing network management functions. A priviliged Huser identification and password results in privileged access, any other@access control, or lack of it, results in non-privileged access.For more help use: HELP ACCESS CONTROL HELP EXECUTOR HELP NODE 3 RECEIVEeLUse the SET EXECUTOR RECEIVE PASSWORD command to establish the password thatKthe executor expects to receive during line initialization with an adjacentcnode. The format is:d) SET EXECUTOR RECEIVE PASSWORD passwordpKWhere password is a string of 1-8 characters. To use blanks or tabs in the Mpassword, it must be enclosed in quotes ("). To indicate a quote in a quoted,"password, use a double quote ("").For more help use: HELP SET EXECUTOR 4 PASSWORDLUse the SET EXECUTOR RECEIVE PASSWORD command to establish the password thatKthe executor expects to receive during line initialization with an adjacent node. The format is:a) SET EXECUTOR RECEIVE PASSWORD passwordEKWhere password is a string of 1-8 characters. To use blanks or tabs in thesMpassword, it must be enclosed in quotes ("). To indicate a quote in a quoted "password, use a double quote ("").For more help use:003&u|mx|Oxss HELP SET EXECUTOR3 STATELUse the SET EXECUTOR STATE command to change the state of the executor node.The format is: SET EXECUTOR STATE staterWhere state is one of:; ON - Normal operating state, network activity allowed.H SHUT - Shutting down. No new logical links allowed and route-through stopped.IWhen the state is SHUT, all logical links have been disconnected, and all Lnetwork tasks have closed their network access, the state will automatically go to OFF.For more help use: HELP SET EXECUTOR 3 TRANSMITMUse the SET EXECUTOR TRANSMIT PASSWORD command to establish the password thatTHthe executor transmits during line initialization with an adjacent node.The format is:* SET EXECUTOR TRANSMIT PASSWORD passwordKWhere password is a string of 1-8 characters. To use blanks or tabs in thetMpassword, it must be enclosed in quotes ("). To indicate a quote in a quoteda"password, use a double quote ("").For more help use: HELP SET EXECUTOR 4 PASSWORDMUse the SET EXECUTOR TRANSMIT PASSWORD command to establish the password thatOHthe executor transmits during line initialization with an adjacent node.The format is:* SET EXECUTOR TRANSMIT PASSWORD passwordKWhere password is a string of 1-8 characters. To use blanks or tabs in the Mpassword, it must be enclosed in quotes ("). To indicate a quote in a quotedo"password, use a double quote ("").For more help use: HELP SET EXECUTOR3 VERIFICATIONMUse the SET EXECUTOR VERIFICATION command to enable or disable the executor'scIverification of access control on incoming logical link connect requests.iThe format is:" SET EXECUTOR VERIFICATION stateWhere state is one of:. ON - Executor is to verify access control.2 OFF - Executor is not to verify access control.2 LINE6Use the SET LINE command to establish line parameters.The formats are: SET LINE line-id parameters SET KNOWN LINES parametersEParameter types are:4 ALL LOCATION STATE8 CONTROLLER CSR MULTIPOINT TRIBUTARY7 COST OWNER UNIT CSRi5 DUPLEX PRIORITY VECTOR For more help use: HELP LINE HELP SET LINE parameter-typeE3 ALL MUse the SET LINE ALL command to establish a line into the running system with 0all of its default parameters. The formats are: SET LINE line-id ALLK SET KNOWN LINES ALLFor more help use: HELP LINE 3 CONTROLLERFor CONTROLLER CSR help use: HELP SET LINE CONTROLLER CSR 4 CSR JUse the SET LINE CONTROLLER CSR command to override the default controllerECSR when establishing a line into the running system. The format is:0 SET LINE line-id [CONTROLLER] CSR csr-address@Where csr-address is an octal number in the range 160000-177776.For more help use: HELP SET LINE3 COSTKUse the SET LINE COST command to establish the cost associated with routingo over the line. The formats are: SET LINE line-id COST numbers SET KNOWN LINES COST number4Where number is a decimal integer in the range 1-25.For more help use: HELP LINE3 DUPLEXHUse the SET LINE DUPLEX command to override the default duplex parameterIvalue when establishing a line into the running system. The formats are:r( SET LINE line-id DUPLEX duplex-option' SET KNOWN LINES DUPLEX duplex-optionh/Where the duplex option is either HALF or FULL.iFor more help use: HELP LINE 3 LOCATIONBUse the SET LINE LOCATION command to override the default locationCwhen establishing a line into the running system. The formats are:e, SET LINE line-id LOCATION location-option+ SET KNOWN LINES LOCATION location-option $Where the location option is one of:K FIRSTFIT - To locate the line databases in the first space large enough.LJ TOPDOWN - To locate the line databases at the top of available memory.For more help use: HELP LINE 3 MULTIPOINTJUse the SET LINE MULTIPOINT comman00;-~y~z~*d to establish multipoint polling ratiosfor a line. The formats are:e+ SET LINE line-id MULTIPOINT ratio-optione* SET KNOWN LINES MULTIPOINT ratio-option)Where the ratio option is ACTIVE or DEAD.OFor more help use: HELP LINE( HELP SET LINE MULTIPOINT ratio-option4 ACTIVEIUse the SET LINE MULTIPOINT ACTIVE command to establish the polling ratioh>for active tributaries on a multipoint line. The formats are:, SET LINE line-id MULTIPOINT ACTIVE number+ SET KNOWN LINES MULTIPOINT ACTIVE numberoMWhere the line-id identifies the tributary to which the polling ratio appliesI3and number is a decimal integer in the range 1-255.-For more help use: HELP LINE4 DEADGUse the SET LINE MULTIPOINT DEAD command to establish the polling ratio <for dead tributaries on a multipoint line. The formats are:* SET LINE line-id MULTIPOINT DEAD number) SET KNOWN LINES MULTIPOINT DEAD numberoHWhere the line-id identifies the multipoint control station to which theIpolling ratio applies and number is a decimal integer in the range 1-255.tINote that the dead ratio applies to the entire control station and cannotr+be made specific to a particular tributary. For more help use: HELP LINE3 OWNERcJUse the SET LINE OWNER command to establish the owner of a line. The line?must be in the OFF state to use this command. The formats are:u" SET LINE line-id OWNER owner-id! SET KNOWN LINES OWNER owner-idnWhere the owner-id is one of:t; DLX - for lines that are available for user program use. 6 NSP - for lines that are available for network use.For more help use: HELP LINE 3 PRIORITYBUse the SET LINE PRIORITY command to override the default priorityIvalue when establishing a line into the running system. The formats are:w# SET LINE line-id PRIORITY numbere" SET KNOWN LINES PRIORITY number3Where number is a decimal integer in the range 4-7. For more help use: HELP LINE3 STATEwJUse the SET LINE STATE command to control the operational state of a line.The formats are: SET LINE line-id STATE statew SET KNOWN LINES STATE stateWhere state is one of:? ON - The line is available for normal use by its owner.y- OFF - The line is unavailable for use.n= SERVICE - The line is reserved for network management use.mFor more help use: HELP LINE 3 TRIBUTARYuJUse the SET LINE TRIBUTARY command to establish the tributary address used?in polling a tributary on a multipoint station. The format is:p$ SET LINE line-id TRIBUTARY number5Where number is a decimal integer in the range 1-255.N3 UNITFor UNIT CSR help use: HELP SET LINE UNIT CSRl4 CSRa>Use the SET LINE UNIT CSR command to override the default unitECSR when establishing a line into the running system. The format is:a( SET LINE line-id UNIT CSR csr-address@Where csr-address is an octal number in the range 160000-177776.For more help use: HELP SET LINE3 VECTORFUse the SET LINE VECTOR command to override the default vector addressAwhen establishing a line into the running system. The format is:5) SET LINE line-id VECTOR vector-address @Where the vector address is an octal number in the range 0-1000.For more help use: HELP LINE 2 LOGGINGi<Use the SET LOGGING command to establish logging parameters.The format is:? SET LOGGING sink-type parameters [source-qual] [sink-node]0Parameter types are: EVENT STATE NAMEESource qualifiers are: LINE NODEFor more help use: HELP LOGGINGs! HELP LOGGING EVENTS QUALIFIERS  HELP LOGGING EVENTS SINKS" HELP SET LOGGING parameter-type3 EVENTSCUse the SET LOGGING EVENTS command to enable the logging of events..The format is:" SET LOGGING EVENT event-list or SET LOGGING KNOWN EVENTSeFor more help use: HELP LOGGING: HELP LOGGING EVENTS3 STATErIUse the SET LOGGING STATE command to control the operation of the loggingAsink. The format is:i$ SET LOGGING sink-type S00C&u|mx|OxssTATE stateWhere state is one of:6 ON - To allow the logging sink-type to log events.> OFF - To prevent the logging sink-type from logging events.For more help use: HELP LOGGINGe3 NAMECUse the SET LOGGING NAME command to specify the name of the logging sink. The format is:T' SET LOGGING sink-type NAME sink-nameNWhere sink-name is one of:$ valid terminal device for CONSOLE valid file name for FILE  valid task name for MONITORFor more help use: HELP LOGGINGa2 NODEKUse the SET NODE command to establish executor parameters relative to othernodes. The format is: SET NODE node-id parametersParameter types are: NAMEL LINEeFor more help use: HELP NODE HELP SET NODE parameter-typeo3 NAMEKUse the SET NODE NAME command to associate a node name with a node address.iThe format is:" SET NODE node-id NAME node-nameKWhere node-id specifies the node that is to be identified by the node name.hIIf the node-id is a name, it must be an existing name. The new node names,must not be in use to identify another node.For more help use: HELP NODE3 LINEHUse the SET NODE LINE command to associate a loop node name with a line.JThis will cause all traffic directed to the loop node name to be sent overEthat line even though the traffic will be addressed for the executor.tThe format is:" SET NODE node-name LINE line-id<Where node name must not be in use to identify another node.For more help use: HELP LINE HELP NODE2 OBJECT:Use the SET OBJECT command to establish object parameters.The format is:$ SET OBJECT object-type parametersParameter types are: COPIESe NAMEo USERi VERIFICATIONwFor more help use: HELP OBJECT! HELP SET OBJECT parameter-typel3 COPIESLUse the SET OBJECT COPIES command to establish the type and number of copies.allowed to run for the object. The format is:' SET OBJECT object-type COPIES copiesdDWhere copies is either the keyword SINGLE or a decimal number in theJrange 1-255. SINGLE indicates that only one copy is allowed and it is notJto be started using multi-copy techniques. A number indicates that multi-Lcopy startup techniques are to be used and limits the number of simultaneouscopies running.rFor more help use: HELP OBJECT3 NAMELUse the SET OBJECT NAME command to establish the prototype task name for theobject. The format is:# SET OBJECT object-type NAME namedNWhere name is a standard RSX task name. For multi-copy tasks, the name should"end with three dollar signs ($$$).For more help use: HELP OBJECT3 USERJUse the SET OBJECT USER command to establish the user identification under+which the object is to run. The format is:o# SET OBJECT object-type USER user Where user is one of: G DEFAULT - to run under the default user identification for the task.tG LOGIN - to run under the login user identification from the accessA1 control used to connect to the task. For more help use: HELP OBJECT3 VERIFICATIONGUse the SET OBJECT VERIFICATION command to establish the access controlh3verification method for the object. The format is:i3 SET OBJECT object-type VERIFICATION verification Where verification is one of: 3 OFF - for access control to not be verified. G INSPECT - for access control to be verified the result passed to the  task.H ON - for access control to be verified and nothing passed to the( task if verification fails.For more help use: HELP OBJECT 2 PROCESSR<Use the SET PROCESS command to establish process parameters.The format is:& SET PROCESS process-name parametersParameter types are: ALL LOCATIONr MAXIMUM CONTROLLERS MAXIMUM LINES PARTITIONFor more help use: HELP PROCESSf" HELP SET PROCESS parameter-type3 ALL NUse the SET PROCESS ALL command to establish a process into the running system5with all of its defaul00KO~y~z~*t parameters. The formats are:f SET PROCESS process-name ALL: SET KNOWN PROCESSES ALLFor more help use: HELP PROCESSi 3 LOCATIONEUse the SET PROCESS LOCATION command to override the default locationFwhen establishing a process into the running system. The formats are:4 SET PROCESS process-name LOCATION location-option/ SET KNOWN PROCESSES LOCATION location-optione$Where the location option is one of:N FIRSTFIT - To locate the process databases in the first space large enough.M TOPDOWN - To locate the process databases at the top of available memory.SFor more help use: HELP PROCESSR 3 MAXIMUMO2Must specify MAXIMUM LINES or MAXIMUM CONTROLLERS. 4 CONTROLLERStOUse the SET PROCESS MAXIMUM CONTROLLERS command to establish a process into the:Msystem with extra space allocated for controller data bases at the end of theSprocess. The formats are:6 SET PROCESS process-name MAXIMUM CONTROLLERS number1 SET KNOWN PROCESSES MAXIMUM CONTROLLERS numberr4Where number is a decimal integer in the range 1-64.For more help use: HELP PROCESS 4 LINES IUse the SET PROCESS MAXIMUM LINES command to establish a process into the Fsystem with extra space allocated for line databases at the end of theprocess. The formats are:0 SET PROCESS process-name MAXIMUM LINES number+ SET KNOWN PROCESSES MAXIMUM LINES numbers4Where number is a decimal integer in the range 1-64.For more help use: HELP PROCESSE 3 PARTITIONCGUse the SET PROCESS PARTITION command to override the default partition.Fwhen establishing a process into the running system. The formats are:4 SET PROCESS process-name PARTITION partition-name/ SET KNOWN PROCESSES PARTITION partition-nameb6Where partition name is a standard RSX partition name.2 SYSTEMGUse the SET SYSTEM command to establish DECnet in the operating system.nThe format is: SET SYSTEMaFor more help use: HELP SYSTEM help use: HELP PROCESSE 3 PARTITIONCGUse the SET PROC"The format of the SHOW command is:4 SHOW component component-options [TO output file]Component types are: ALIAS EXECUTOR LINE LOGGING NODE OBJECT PROCESS SYSTEMFor more help use: HELP component-type HELP SHOW component-type HELP SHOW TO2 ALIASEUse the SHOW ALIAS command to display information about aliases. The formats are:; SHOW ALIAS alias-name [information-type] [[SCOPE scope]]9 SHOW ACTIVE ALIASES [information-type] [[SCOPE scope]]o8 SHOW KNOWN ALIASES [information-type] [[SCOPE scope]]& SHOW ALL ALIASES [information-type]@Information types are SUMMARY (the default) and CHARACTERISTICS.For more help use: HELP ALIASo HELP ALIAS SCOPEL 2 EXECUTORMUse the SHOW EXECUTOR command to display information about the executor node.IThe format is:# SHOW EXECUTOR [information-type]BInformation types are SUMMARY (the default), STATUS, COUNTERS, andCHARACTERISTICS.For more help use: HELP EXECUTOR2 LINEBUse the SHOW LINE command to display information about lines. The formats are:' SHOW LINE line-id [information-type]M' SHOW ACTIVE LINES [information-type]& SHOW KNOWN LINES [information-type]BInformation types are SUMMARY (the default), STATUS, COUNTERS, andCHARACTERISTICS.For more help use: HELP LINE 2 LOGGING EUse the SHOW LOGGING command to display information about the loggingusinks. The formats are:6 SHOW LOGGING MONITOR [information-type] [sink-node]5 SHOW ACTIVE LOGGING [information-type] [sink-node]a4 SHOW KNOWN LOGGING [information-type] [sink-node]@Information types are SUMMARY (the default), STATUS, and EVENTS.For more help use: HELP LOGGING HELP LOGGING SINKS 2 NODEEUse the SHOW NODE command to display information about the executor's &perception of nodes. The formats are:' SHOW NODE node-id [information-type]o' SHOW ACTIVE NODES [information-type] & SHOW KNOWN NODES [information-type]% SHOW LOOP N00SWu|mx|OxssODES [information-type]LBInformation types are SUMMARY (the default), STATUS, COUNTERS, andCHARACTERISTICS.For more help use: HELP NODE 2 OBJECTStFUse the SHOW OBJECT command to display information about objects. The formats are:- SHOW OBJECT object-name [information-type]i( SHOW KNOWN OBJECTS [information-type]IInformation types are SUMMARY (the default), CHARACTERISTICS, and STATUS. For more help use: HELP OBJECT 2 PROCESSWIUse the SHOW PROCESS command to display information about processes. Them formats are:/ SHOW PROCESS process-name [information-type]R+ SHOW ACTIVE PROCESSES [information-type] * SHOW KNOWN PROCESSES [information-type]BInformation types are SUMMARY (the default), STATUS, and COUNTERS.For more help use: HELP PROCESS 2 TOGUse the TO option on any SHOW command to direct the output to a file orfDdevice other than the terminal where NCP is running. The format is:> SHOW component [component-option] [TO output-specification]GWhere output-specification is any available output file or device. The[Einformation will be output in the same format that it would have beenOFdisplayed on the terminal. If a file is chosen and it already exists,(the information is appended to the file.2 SYSTEMKUse the SHOW SYSTEM command to display information about the DECnet system.cThe format is:! SHOW SYSTEM [information-type]mBInformation types are SUMMARY (the default), STATUS, COUNTERS, andCHARACTERISTICS.For more help use: HELP SYSTEMcification is any available output file or device. The[Einformation will be output in the same format that it would have beenOFdisplayed on the terminal. If a file is chosen and it already exists,(the information is appended to the file.2 SYSTEMKUse the SHOW SYSTEM command to display information about the DECnet system.cThe format is:! SHOW SYSTEM [information-type]mBInformation types are SUMMARY (the default), STATUS, COUNTERS, andCHARACTERISTICS.For more h%The format of the TRIGGER command is:e TRIGGER target target-optionsTarget types are: NODE  VIAFor more help use: HELP TRIGGER target-type 2 NODEJUse the TRIGGER NODE command to trigger the bootstrap ROM on the specifiedLnode. If the node is capable of responding to the trigger function, it willAload itself according to the method built into its bootstrap ROM.t*The format of the TRIGGER NODE command is:! TRIGGER NODE node-id [options]LThe options are: PASSWORDm VIAFor more help use: HELP TRIGGER option2 VIAoKVIA can be used either as a target type or as an option on the TRIGGER NODE command.MUse the TRIGGER VIA command to trigger the bootstrap ROM in the adjacent nodetKon the specified line. If the node is capable of responding to the triggertNfunction, it will load itself according to the method built into its bootstrapROM. The format of is:G TRIGGER VIA line-id [option]NThe only option is PASSWORD.For more help use: HELP TRIGGER PASSWORDNUse the VIA option on the TRIGGER NODE command to select the line that is usedKto get to the target node. This will override the line in the default data <base that was created at network generation. The format is:% TRIGGER NODE node-id [VIA line-id]e 2 PASSWORDLUse the PASSWORD option to specify the password that is to be used to verifyMservice access over the line. This will override the service password in the9default data base that was created at network generation.L%The format of the PASSWORD option is:o/ TRIGGER target [[SERVICE] PASSWORD] passwordiMWhere password is a hexadecimal number representing the bits to be used. ThetIpassword is in the range 0-FFFFFFFFFFFFFFFF to represent up to 64 bits (8GKbytes) of password. The length of the password (in bytes) is determined byyHthe number of characters input. For example a password of 0 is only one/byte long, a password of 00000 is 3 bytes long.default data base that was created at netw00[]~y~z~*"The format of the ZERO command is: ZERO component [COUNTERS]Component types are: EXECUTOR  LINEt NODE SYSTEMnFor more help use: HELP component-type HELP ZERO component-typeT 2 EXECUTORLUse the ZERO EXECUTOR command to zero the node counters kept by the executor#relative to itself. The format is: ZERO EXECUTORFor more help use: HELP EXECUTOR2 LINEBUse the ZERO LINE command to zero line counters. The formats are: ZERO LINE line-id ZERO KNOWN LINEShFor more help use: HELP LINE2 NODEMUse the ZERO NODE command to zero node counters kept by the executor relative+to itself or other nodes. The formats are: ZERO NODE node-id ZERO KNOWN NODES For more help use: HELP NODE2 SYSTEM?Use the ZERO SYSTEM command to zero the DECnet system counters.The format is: ZERO SYSTEMFor more help use: HELP SYSTEMe ZERO LINE command to zero line counters. The formats are: ZERO LINE line-id +The general form of an NDA command line is:> "=/STB,/switches">HELP USAGE will print help on NDA usage, specific forms of the* NDA command line, and file descriptions.=HELP xxx will print help on individual NDA analysis switches,3 where "xxx" is one of the following switch names:" SYS ** - Print system information% CEX ** - Print Comm-Exec information# SLT * - Print System Line Table's, PDV * - Print Process Description Vector's- CTB * - Print Network Controller Block data " ROU * - Print Routing parameters* QUE * - Print Network process fork queue" LIS * - Print free list analysis OBJ * - Print Object type list, REM * - Print Remote and Alias names lists* NSP * - Print NSP data base analysis+ PRO * - Print network process line tablesn9 TSK * - Print mailbox and window blks for network tasksX DMP - Dump region of memory@If the "/ALL" switch is specified, all switches marked by 1 or 2asterisks are assumed.@If no switches are specified, all switches marked by 2 asterisks are assumed.1 USAGE General NDA command lines:% Analysis = [Symbol/STB,] Dump ' Analysis = [Symbol/STB,] Device ' Analysis, Dump = [Symbol/STB,] Device ' , Dump = Device LFor information on the usage of a particular file, type "HELP USAGE filnam". 2 ANALYSIS6 "Analysis" is the output listing file specification.) The default file extension is ".LST".2 Allowed switches are:, /-SP Do not spool output, default="/SP".< /EXIT:n Exit after n diagnostics. (n=octal, n.=decimal)B /LIMIT:n Exit after n pages, default=500. (n=octal, n.=decimal)2 SYMBOL; "Symbol" is the symbol table file for the crashed system. M The default file name and extension (if file not specified) is "CEX.STB".c Required switches are:7 /STB Identifies this file as the symbol table file.i2 DEVICEC "Device" is the device to which a crashed system image was saved.t> An analysis may be performed directly from this device, or< it may be copied to a "Dump" file, for later analysis. Allowed switches are:eD /BL:n Dump starts at logical "Device" block number n, default=1.D /KMR System was unmapped, default is indicated by "Symbol" file.? /SYM Not all symbols defined in STB file. Continue anyway.iB /xxx Analysis control switches, such as "/CEX", or "/SYS". If@ no analysis switches are specified, "/SYS/CEX" is assumed as the default.2 DUMPE "Dump" (if an output file) is the file to contain the copied crash.t) The default file extension is ".BIN".l Allowed switches are:nF /MEMSIZ:n Dump input on "Device" is image of nK memory, default=124.D "Dump" (if an input file) is the file containing the copied crash. Allowed switches are:iD /KMR System was unmapped, default is indicated by "Symbol" file.? /SYM Not all symbols defined in STB file. Continue anyway."B /xxx Analysis control switches, su00chu|mx|Oxssch as "/CEX", or "/SYS". If@ no analysis switches are specified, "/SYS/CEX" is assumed as the default.1 SYSI7The "/SYS" switch provides general system data such as:  Time of crash ' Current task name and its TCB address"3 Current features mask word and system stack depth # Current contents of the registers/& Current contents of the PDR's, PAR's" The contents of the Kernal Stack1 CEXs4The "/CEX" switch provides general CEX data such as:2 The Executer node name, node number, and node id The host node number! Data on CCB's, RDB's, and SDB'sX& The PDV index of the current process Contents of the powerfail flag1 ROUl2The "/ROU" switch displays the routing parameters: Max number of network nodes  Number of routing channelsC Maximum path cost, maximum hops, and the maximum visitation count ! Minimum hop/Minimum cost vector F Node reachability information (their lines, and their PLB addresses)1 LISdEThe "/LIS" switch prints the free lists and analyses them for errors:o CCB's, SDB's, and RDB'sC Network pool1 OBJ AThe "/OBJ" switch prints the list of object types for the crashedgsystem.l1 REM/CThe "/REM" switch prints the list of Remote node names and the listoof Aliases for remote nodes.1 QUEa@The "/QUE" switch prints the contents of the fork process queue.1 SLTo,The "/SLT" switch prints system line tables:F The number of system lines, and the address of the SLT pointer table" Contents of the individual SLT's1 PDV 4The "/PDV" switch prints process descriptor vectors:C The number of processes, and the address of the PDV pointer tableh" Contents of the individual PDV's1 CTBsBThe "/CTB" switch prints data from all Controller Blocks in use by the Network.1 NSPU;The "/NSP" switch prints an analysis of the NSP data bases: ! The Data Descriptor Block (DDB)c" The Physical Link Blocks (PLB's)! The Logical Link Tables (LLT's)r1 PROeCThe "/PRO" switch prints a dump of all network process line tables. 1 TSKiDThe "/TSK" switch prints an analysis of each task using the network: The network mailboxo The window blocksn The I/O packetsl1 DMPDThe "/DMP" switch prints a region of memory from the crashed system.*This switch takes 2 arguments, as follows:2 /DMP:xxx:yyy xxx = memory dump starting address# yyy = memory dump ending address ysical Link Blocks (PLB's)! The Logical Link Tables (LLT's)r1 PROeCThe "/PRO" switch prints a dump of all n1 NETJ RSXNET is a program which allows asynchronous communcationsJ between two computers (systems). Communications can be eitherJ directly between the computers using a synchronous null modemJ patch cable (see "HELP PATCH" for the wiring diagram), or over aJ dialup line (modem). Communications with the remote system (theJ system you want to talk to) is accomplished using a second port1 (asynchronous line) on the local system. ; Help can be obtained on a particular topic by typing :o/ HELP topic subtopic subsubtopic ...s Examples: HELP GET% Additional information available:cD BAUD_RATE COMMANDS DUMP_FILE EXIT FILE_TYPESB GET_FILE INTERRUPT INI_FILE INTRODUCTION LOG_FILEE MCR_COMMAND MODEM_USAGE NOLOG_FILE PATCH_CABLE REMOTE_PORTyE SEND_FILE SNDRCV STARTUP STATUS SYSTEM_TYPEn 2 BAUDrateF You must specify the baud rate of the port connected to theF remote system. If you are communicating with the remote over a: modem, the baud rate will be either 300 or 1200 baud. The valid baud rates are:. 50, 75, 110, 134, 150, 300, 600, 1200, 1800,( 2000, 2400, 3600, 4800, 7200, or 9600. 2 COMMANDSF The following is a list of the commands which can be issued at the RSXNET command level:) BAUD_RATE, MCR_COMMAND, DUMP_FILE, EXIT,M& GET_FILE, HELP, INTERRUPT, LOG_FIL00k]~y~z~*E,+ NOLOG_FILE, REMOTE_PORT SEND_FILE, STATUS,o SYSTEM_TYPE 2 CROSSfilef2 Crossfile is currently unsupported by RSXNET.F This question is asked when you specify "IBM" for the remoteF system type. It is used to determine if you are communicatingF with General Electrics' Cross File system. You must specify yesF if you will be using the RSXNET "DUMP" command to send file(s) to the Cross File editor.O 2 DUMPfileF This command is used to dump a file to the remote system. It isG usually used if the remote system doesn't have the SNDRCV program. F When using this command, there must be a program running on theF remote system to accept the characters being dumped to it. Using5 the "CREATE file_name" command works very nice.E2 EXITF This command is used to exit from RSXNET. You can also exit by typing a CTRL/Z. 2 FILEtypesoF At the current time, only one type of file can be transmitted inF RSXNET. This limitation will stay in effect until the protocol0 used between RSXNET and SNDRCV is enhanced.F The type of file that can be transmitted is variable length filesF with implied carriage control (FD.CR). This is the type of filesF created by the CREATE command and by the editors (EDT, TEC, SOS,F KED, and EDI). A file with internal carriage control (R.VAR setF but FD.CR missing) can be converted to implied carriage control= simply by editing the file using TECO, and then exiting.iF To determine the carriage control type, the DMP utility can beF used with the command "DMP TI:=filename.ext/HD/BL:0:0". The lines! to examine are listed below:a, F.RTYP 002 = R.VAR ! Variable length file.1 F.RATT 002 = FD.CR ! Implied carriage controle) F.RSIZ 107 = 71. ! Maximum record size.. ! Must not exceed 512.g% Additional information available:s QWIKNET_FILES TASK_IMAGESe2 QWIKNETfilesF Qwiknet files (Q.QWK) can be converted into an implied carriageF control files using a program called F2T. F2T creates an output: file that can then be transmitted by RSXNET / SNDRCV.F Once the file is transmitted, it can then be converted back intoF a Qwiknet file by using a program called T2F. An example of using# these program is listed below:e >F2T!? ******************* PSDI *** F2T *** V1.0 ********************* Converts fixed block files to text format4 QWIKNET drawing files, named *Q.QWK, are assumed to4 be 256-byte blocks. Others must be 512-byte blocks.* Enter full source file name: CAL1982Q.QWK( Enter full text file name: CAL1982Q.TXT Enter full source file name: ^Z >* ( send/get the file to/from the remote. ) >T2FQ? ******************* PSDI *** T2F *** V1.0 ******************** 2 Converts text files from F2T to fixed block files( Enter full text file name: CAL1982Q.TXT> Original file name: CAL1982Q.QWK Block size: 256* Enter full name of new file: CAL1982Q.QWK Enter full text file name: ^Z > 2 TASKimagesF Task images are 512 byte fixed length files. These type of filesF must be converted to am implied carriage control file using aA program called F2T before they can be transmitted by RSXNET.PF Once the file is transmitted, it can then be converted back intoF a task image file by using a program called T2F. After runningF T2F, if the file is a task image (.TSK extension), then it mustF be made contiguous using the COPY command before running it.: An example of running these programs is listed below: >F2Tt? ******************* PSDI *** F2T *** V1.0 ********************t* Converts fixed block files to text format4 QWIKNET drawing files, named *Q.QWK, are assumed to4 be 256-byte blocks. Others must be 512-byte blocks.( Enter full source file name: RSXNET.TSK& Enter full text file name: RSXNET.TXT Enter full source file name: ^Z >* ( send/get the file to/from the remote. ) >T2F 00shu|mx|Oxss? ******************* PSDI *** T2F *** V1.0 ********************n2 Converts text files from F2T to fixed block files& Enter full text file name: RSXNET.TXT? Original file name: RSXNET.TSK Block size: 512( Enter full name of new file: RSXNET.TSK Enter full text file name: ^Z >COPY RSXNET.TSK /NV/CO' >RUN RSXNET ! Now it's ready to run. 2 GETfileEG This command is used to GET (receive) a file from a remote system.>F The remote system MUST be running the SNDRCV program beforeF issuing this command. You will be prompted for the REMOTE and RSXA file names. Currently, you can only GET one file at a time.T$ A typical GET sequence follows: RSXNET> GET3 Enter the name of the REMOTE file: [1,2]RUNOFF.DOCT. Enter the name of the RSX file(s): RUNOFF.DOC% Additional information available:  REMOTE_FILE RSX_FILEl 2 REMOTEfileF The REMOTE file name must be a legal file specification for theF system you are talking to. At the current time, only one file at a time can be transferred.p 2 RSXfileEF The RSX file name can be any RSX file specification. If you typeF the return key, the remote file name will be used on RSX. TheF remote file name is taken exactly as is. This includes theF directory name (i.e., [1,24] or [ROBIN]). If you don't have theA specified directory, you will have to specify the file name.b2 INTRODUCTIONF RSXNET is a program which allows asynchronous communcationsF between two computers (systems). Communications can be eitherF directly between the computers using a synchronous null modemF patch cable (see "HELP PATCH" for the wiring diagram), or over aF dialup line (modem). Communications with the remote system (theF system you want to talk to) is accomplished using a second port- (asynchronous line) on the local system.tF When RSXNET is prompting you for a question, you have the following options:tF o typing question mark "?" followed by the return key or typing# the escape key will give you help,uF o typing an exclaimation point (!) followed by the return key. will back up to the previous question.F o typing the return key selects the default answer if there isC one. Default answers are shown in parenthesis; i.e., (DEC)s0 o typing a CTRL/Z will exit to the system.F If you are communicating with the remote system, and you want toF exit, you must first type the interrupt character (CTRL/Y byF default) to get to the command level, and then type either CTRL/Z# or EXIT to exit to the system.b 2 INIfilekF When RSXNET is started, an initialization file called RSXNET.INIF is looked for in the current directory. If this file exists,F RSXNET will read its input from the file instead of the terminalF while asking the startup questions. After the startup questions' are asked, the .INI file is close. % The format of the RSXNET.INI is:rF 1. The exclaimation "!" and the semi-colon ";" characters can be; be used in the first column to designate a comment line.fF 2. All other lines are used to answer the questions in RSXNET.? If the line is blank, then the default answer for thee? question is used, otherwise the contents of the line are usedo to answer the next question.F 3. If an error occurs answering any question, the .INI file is9 closed and all further input is read from the terminal. % Additional information available: EXAMPLE_FILE" 2 EXAMPLEfile0 The following is a typical RSXNET.INI file:F ;**************************************************************** ;' ; Initialization file for RSXNET.e ;: ; Write the output from the remote to a logfile (No): N6 ; Enter the port being used for the remote (TTn:)6 ; Enter the RSXNET interrupt character (CTRL/Y):  ^A2 ; E00{]~y~z~*nter the system type of the remote (DEC): 7 ; Enter the baud rate for the remote port (9600): EF ;****************************************************************@ Note that the up arrow followed by the character A will get' converted into a CTRL/A by RSXNET.f 2 INTERRUPTeF This command allows you to specify the interrupt character. TheF interrupt character is the character you type to get to commandF level (CTRL/Y by default). Any character can be specified exceptG for carriage return, question mark, escape, or exclaimation point.e 2 LOGfile(F This command allows you to specify the name of a log file toF write the output from the remote system. The output from theF remote system and questions asked by RSXNET will be written to( both the log file and the terminal.% Additional information available:h$ LOCAL_OUTPUT REFORMAT OPEN_LOG_FILE 2 LOCALoutput F This question allows you to disable local output to the log file.F Local output includes questions and various messages. If youF only want remote output in the log file, answer "No" to this question.  For example:t3 Do you want local output in the logfile (Yes) ? Ns 2 REFORMATF After exiting from RSXNET, the log file must be reformatted. ThisF is done using a teco macro called REFORMAT. This program removesF nulls, removes deleted characters (i.e. BS SP BS), converts LF/CRF to CR/LF, etc. It creates an output file in a format which you can then edit (if desired). For example:  > TEC @LB:[1,2]REFORMAT= REFORMAT Version 3.0 - Reformats log files created by VAXNETa' Enter name of log file (.LOG)? RSXNET  Reformatting complete ... > 2 OPENlogfileiF If a log file is already open, you have the option of eitherF using the current log file, or you can close the current log file% and specify a new log file name. 2 MCRcommandF To issue a MCR command, you must type MCR followed by the commandG to be executed. All commands including EDT, LIST, etc. are valid.] For example:e5 Rsxnet> MCR DIRECTORY ! Will print a directory.t 2 MODEMusageF Once the remote port being used is attached by RSXNET, the modemF connection can be established. The phone call to the remoteF system MUST be made from the phone being used for the modem. YouF CANNOT transfer the call to the modem as you can with synchronousF modems; you'll loose the connection. The modem can be set up in! one of two modes as follows:IF o in the normal modem set up, the voice/data switch must be in? the voice position to place the call. After you establish the ? connection with the remote system, you have the carrier signal ? (high pitch), you place the voice/data switch to the datae? position. Once in data position, you should see the Data Set ? Ready (DSR), Clear To Send (CTS), Carrier (CXR), and Highs. Speed (HS) if you are operating at 1200 baud.F o the modem can be setup in unattended disconnect mode. This? mode is enabled by toggling the "Unattended Disconnect switche? A1" and the "Non-standard options switch A6" within the modem.n? This is done so the modem can be hungup from VAXNET by turningi? DTR off. RSXNET can NOT hangup the modem since RSX-11M doess? not support the hangup function. Your DTR lamp MUST be litea? before attempting the following procedure. DTR will be litee? if you are patched into a RSX-11M port properly. If DTR is not ? lite, the modem will be hungup immediatly after following theb? procedure below. The procedure for establishing the connection" in this mode is:s6 - call the remote system and get the carrier signal,6 - toggle the voice/data switch to the data position, - hangup the phone up,@ - now toggle the voice/data switch back to the voice position.7 You should now see DSR, CTS, CXR, and the HS lamps.g 2 NOLOGfileR. This co00hu|mx|Oxssmmand closes the current log file. 2 PATCHcableF A synchronous patch cable is required to communicate directlyF between two computers without using modems. This cable must be constructed as follows:5 WIRING DIAGRAM FOR SYNC. NULL MODEM  (MODIFIED PATCH CABLE)h TD 2 ..................... 3 RD 3 ..................... 2 RTS 4&5.................... 8e DSR 6 ..................... 20 CD 8 ..................... 4&5 O DTR 20 .................... 6s 2 REMOTEportF The remote port (asynchronous line) being used for RSXNET toF communicate with the remote computer (system) can be eitherF connected directly to a system in-house using the synchronousF null modem patch cable, or connected using a modem (see "HELPF MODEM" for getting modem connection established). This port can5 be any terminal line not being used (logged in)..F A logical name called RM0: can be created to assign the remoteF port. If this logical name exists, the terminal assigned to RM0:E is used as the default answer when the remote question is asked.s For example:r >ASS TT7: RM0:r >RUN RSXNET: RSXNET Version 3.0 -- Asynchronous Communications Program. Do you want help information displayed (No): 5 Write the output from the remote to a logfile (No): )1 Enter the port being used for the remote (TT7:) n2 RETURNF To return to entering commands at the remote system from the6 RSXNET command level, simply type the RETURN key. 2 SENDfileF This command is used to send (transmit) a file to the remoteF system. The remote system MUST be running the SNDRCV programF prior to issuing this command. You will be prompted for the RSX= and REMOTE file names. A typical SEND sequence follows:r Rsxnet> SENDe, Enter the name of the RSX file(s): MAIL.MAI3 Enter the name of the REMOTE file: [ROBIN]MAIL.MAIr% Additional information available:t; CMD_FILE RSX_FILE REMOTE_FILE REMOTE_DIRECTORY 2 RSXfile F The RSX file name can be any legal RSX-11M file specification.F Wildcards ("*") can be specified in any part of the file& specification (i.e., [*,*]*.*;*).F The file names to be transmitted can come from a command file.F A command file is specified by typing the @ sign in front of theF command file name (i.e., @T.CMD). The extension of .CMD is the> default. Type "HELP SEND CMD_FILE" for more information. 2 CMDfile F Lines within the command file that don't start with a valid fileF name character (0-9, *, A-Z, [], or a-z) are skipped. ThisF allows command files generated by SRD to be used without any editing. For example:  >SRD TODAY.CMD=*.MAC/SV/NA/DAE This command gives me a list of the highest version files sortednE by name which were created on todays date. The contents of thisM% file is in the following format:D >TYPE TODAY.CMD ** DL1:[100,5] 23-APR-82 15:06 GETFIL .MAC;2 LOGFIL .MAC;2 SNDFIL .MAC;5 UTILTY .MAC;4 2 REMOTEfileF The REMOTE file name must be a valid file specification for theF system you are talking to. If you type the return key, the RSXF file name will be used on the REMOTE. The RSX file name is takenF exactly as is. This includes the directory name (i.e., [201,1]).F If you don't have the specified directory on the remote system,+ you must specify the remote file name.,2 REMOTEdirectoryGF When sending the remote system wildcard file specifications, you@ must specify one of the following for the remote directory:F 1. You can specify the remote default directory be used. This is done by typing the return key.F 2. You can specify the remote directory such as [1,24] if the? remote is an RSX-11M system, or [ROBIN.TMP] if the remote isu a VAX/VMS system.iF 3. You can specify an asterisk "*" if the 00]~y~z~*local file name should? be transferred with its associated UIC. This mode is used tot? transfer the local file to the same UIC on the remote system.e2 SNDRCVF SNDRCV is the program run on the remote system to communicateF with RSXNET during file transmission (either GET or SEND). SNDRCV1 is started by one of the following commands:,F o if you are communicating with a VAX system, SNDRCV is started$ by typing the command "MCR SNDRCV".F o if you are communicating with an RSX-11M system, then SNDRCV0 is started by typing the command "RUN $SNDRCV".F In either case, the following message is displayed after SNDRCV is started.5 SNDRCV Version 2.0 started ... Type CTRL/X to abort.aF At this point you should type the interrupt character (CTRL/Y byF default) to get the RSXNET command prompt. Be careful not to typeF any other characters since they will be accepted by SNDRCV andF interpreted as commands from RSXNET. After you get the RSXNETF command prompt, you should type either GET or SEND and the fileF name questions associated with each command. After the questions0 are answered, the file transmission begins.F The status report on the terminal is updated after each recordF transmitted. If the status report stops updating momentarily, beF patient, there may have been a transmission failure. After aF timeout period (currently 30 seconds), transmission shouldF continue. If the transmission doesn't continue, you should type/ a single CTRL/C to abort the transmission. F To abort the SNDRCV program, you must type CTRL/X followed by theF return key. If SNDRCV doesn't abort after the first attempt, try3 several times; the second try usually does it.h 2 STARTUPrF Before establishing the connection with the remote system either@ in-house or over a modem, do the following to start RSXNET.F After you are logged into RSX-11M, startup RSXNET by typing "RSX"E if RSXNET is installed, or by typing "RUN $RSXNET". You must be D privileged to issue the "RUN $RSXNET" command since RSXNET is a= privileged program. A typical startup dialogue follows:f >RUN RSXNET: RSXNET Version 3.0 -- Asynchronous Communications Program. Do you want help information displayed (No): 5 Write the output from the remote to a logfile (No): 1 Enter the port being used for the remote (TT5:) 0 Enter the RSXNET interrupt character (CTRL/Y): , Enter the system type of the remote (DEC): 1 Enter the baud rate for the remote port (9600):  Username: ROBIN Password: R% Welcome to VAX/VMS Version V2.5 p Welcome to the PSDI vax11/780u6 Signed on terminal _TTE1: at 21-APR-1982 12:17:39.15 - $ c: ( CTRL/Y was typed here to get to RSXNET command level. ) Rsxnet> EXITN > Caution:u? If you exit from RSXNET, the remote port is deattached. Thisf? means that any incoming data will be sent to MCR. The MCR willR? think someone is attempting to login to the system. If thisb? occurs, the local and remote systems will continuously echow? characters back and forth (initiating HELLO). This results ine= all the system buffers being used up and the system hanging.:? To avoid the above problem, either set the remote port slaven? and noecho before starting RSXNET, or don't exit RSXNET until ? the modem is hungup. If you need to issue a MCR command to getn? a directory or edit a file, use the "MCR" command from RSXNETn command level.t2 STATUSA This command is used to get a status report of how RSXNET is ; currently setup. The following a an example type out:L Rsxnet> STATUSi RSXNET Status Report: ' Log file name: DL1:[100,5]RSXNET.LOG;1 Remote port: TT3: Interrupt: ^A System type: DECr Baud rate: 9600 Rsxnet> 2 SYSTEMtypeF This command is used to specify the type of remote system you areF communicating with. This sets up various flags within RSXNET toF 00u|mx|Oxss determine how to talk to the remote. For example, if you specifyF IBM, a local echo will be performed since IBM (TSO) doesn't echo8 characters sent to it. The valid system types are:" APPLE, DEC, IBM, UNIX, and XXDP.2 RSXNETF RSXNET is a program which allows asynchronous communcationsF between two computers (systems). Communications can be eitherF directly between the computers using a synchronous null modemF patch cable (see "HELP PATCH" for the wiring diagram), or over aF dialup line (modem). Communications with the remote system (theF system you want to talk to) is accomplished using a second port- (asynchronous line) on the local system. F RSXNET gives you the ability to create a log file of yourF terminal sesson with the remote system (very nice for creatingF documentation) and/or allows file transmission between theF systems. File transmission can be done using one of the methods listed below:F o You can open a log file and use a TYPE command at the remoteF system to receive an ASCII file from the remote and/or you canF also use the RSXNET DUMP command to send an ASCII file to the remote. F o The alternate method requires a program called SNDRCV on theF the remote system. Using this method (see GET and SENDD commands), error checking and retransmission is performed on# the data being transmitted.o l2 NFT HELP is available for the following subjects:4 APPEND (/AP) ............. File append commands6 DELETE (/DE) ............. File deletion commands7 DIRECTORY (/BR,/LI,/FU) .. Directory list commands7 EXECUTE (/EX) ............ File execution commands1 NODE_NAMES ............... Node name syntax 6 SPOOL (/SP) .............. File spooling commands8 SUBMIT (/SB) ............. File submission commands, SWITCHES ................. NFT switches6 TRANSFER ................. File transfer commands1 APPEND7 To append to an existing file, the command format is:n4 NFT>appendfilespec=infilespec1[,...,infilespecN]/AP1 BRIEF 6 A brief directory listing can be obtained by typing:, >NFT [outfile=]filespec1[,...,filespecN]/BRD Where the output file specifier is optional, and defaults to "TI:"C A brief directory only includes a list of file nanes. The format . of the /BR display is: Directory ELROND::DB0:[7,7] 3-APR-79 13:21:24 X.LST;3  X.MAC;3 P X.OBJ;4 i X.TSK;2 s1 DELETE? To delete a file, or a several files, the command format is: . NFT>filespec1[,filespec2,...,filespecN]/DE 1 DIRECTORY]. Three forms of directory list are supported:. /BR -- Brief. This lists the file names only.? /LI -- Default. This lists the names, size, creation date, ando, indicates if the file is contiguous.B /FU -- Full. This list the names, size, creation date, contiguous; indicator, file protection, and last modified date. G For information on the display formats type "HELP /LI", "HELP /BR" ors "HELP /FU" 1 EXECUTEdF To execute a file, or a several files which are located on a remote  node, the command format is:. NFT>filespec1[,filespec2,...,filespecN]/EX1 FULL5 A full directory listing can be obtained by typing:,4 >NFT [outfile=]filespec1[,...,filespecN]/FU[:width]D Where the output file specifier is optional, and defaults to "TI:"F "width" is a decimal number that specifies the width of the listing, with a default value of 72. # The format of the /FU display is:" Directory ELROND::DB0:[7,7] 3-APR-79 13:27:39A X.OBJ;4 1./1. 29-JAN-79 17:46:34 oC [7,7] [RWED,RWED,RWED,R] 01-FEB-79 09:58:32(1.) A X.TSK;2 4./4. C 29-JAN-79 17:46:51 ]D [7,7] [RWED,RWED,RWED,R] 01-FEB-79 09:58:369(4.)% Where the ordering of the fields 00~y~z~*is:wG File_name Blks_used/Blks_alloc Contig/locked_indicator Creation_datehG File_owner File_protection Last_modified_date(Mod_number)c1 LIST0 A directory listing can be obtained by typing:4 >NFT [outfile=]filespec1[,...,filespecN]/LI[:width]D Where the output file specifier is optional, and defaults to "TI:"F "width" is a decimal number that specifies the width of the listing, with a default value of 72. # The format of the /LI display is: Directory ELROND::DB0:[7,7] 3-APR-79 13:26:02A X.MAC;3 2./2. 29-JAN-79 17:46:23 oA X.OBJ;4 1./1. 29-JAN-79 17:46:34 IA X.TSK;2 4./4. C 29-JAN-79 17:46:51 e& Where the ordering of the fields is:G File_name Blks_used/Blks_alloc Contig/locked_indicator Creation_dated 1 NODE_NAMESD NFT allows node names to be terminated by either a double colon orJ an underscore. Access control information can be supplied as part of the# node specificiation, for example:X NODE/USER_ID/PASSWORD/ACCOUNT::I Identifies that the three access control strings "USER_ID", "PASSWORD", : and "ACCOUNT" are to be used when accessing node "NODE".1 SPOOL91 To spool existing files, the command format is:i. NFT>filespec1[,filespec2,...,filespecN]/SP= To spool files after copying them, the command format is: d3 NFT>[outfilespec]=infilespec1[,...,infilespecN]/SP1 SB #SUBMIT1 SUBMITD To submit a file, or several files to a remote system, the command format is:3 NFT>[outfilespec]=infilespec1[,...,infilespecn]/SBaH If the output file name, type or version are explicitly specified, theF operation is considered a concatenation. In order to submit multipleJ files with one command line, the output filenames and types must be left to default to the input files. 1 SWITCHES Valid NFT switches are: Switch Position Action ------ -------- ------2 /ID Alone on line Display NFT version number5 /HE Alone on line Display default NFT HElp text; /DF:IN On partial filespec Set DeFaults for input filese consisting of node and/or device and/or UICc0 /DF:OUT " Set DeFaults for output files1 /DF " Set DeFaults for input and outputc) /DE On file, or after DElete file(s)  list of fileso /EX " EXecute file> /SP On file, or after SPool existing file(s) list of filesD On input or output SPool file(s) after transfer file name(s) inx transfer command; /LI On file, after list LIst directory (Regular form) r of files, or onI input file (when  output is specified)$ /BR " BRief directory list# /FU " FUll directory liste. /AS On input file Transfer in ASCII mode& /IM " Transfer in IMage mode/ /SB " SuBmit file for execution after) transfer 1 TRANSFER> To transfer a file, or several files, the command format is:0 NFT>[outfilespec]=infilespec1[,...,infilespecN]H If the output file name, type or version are explicitly specified, theH operation is considered a concatenation. In order to transfer multipleH files by one comand line, the output filenames and types must be left to default to the input files. Transfer in ASCII mode& /IM " Transfer in IMage mode/ /SB " SuBmit file for execution after) transfer 1 TRANSFER> To transfer a file, or several files, the command format is:0 NFT>[outfilespe1 NOW NOW2 IS NOW IS3 THE NOW IS THE4 TIME NOW IS THE TIME5 FOR NOW IS THE TIME FOR6 ALL NOW IS THE TIME FOR ALL7 GOOD NOW IS THE TIME FOR ALL GOOD8 MEN" NOW IS THE TIME FOR ALL GOOD MEN9 TO% NOW IS THE TIME FOR ALL GOOD MEN TO00u|mx|Oxss1 ODT I The On-Line Debugging Tool (ODT) is an interactive debugging aid that isL added to a task by the Task Builder /DA (debugging aid) switch. Among itsM capabilities, ODT allows the setting of breakpoints and the opening, display; (in various formats), and modification of task locations.  M For a complete explanation of ODT terminology (what are relocation registersL and breakpoints) and capabilities, see the IAS/RSX-11 ODT Reference Manual. B For information about addressing and open location displays, type i AID ODT DISPLAYS  e5 For information about ODT's internal registers, typee s AID ODT REGISTERS g+ For information about ODT's commands, typea w AID ODT COMMANDSe 2 DISPLAYSA An address is opened by typing an address expression followed bys& one of the following format commands: t' / Word mode octal \ Byte mode octalo' " Word mode ASCII ' Byte mode ASCIIi % Word mode Radix-50 OC An address expression has the general form [r,]k[c] where r is thelG number of a relocation register, k is an address, and c is a constant.t T _0,123+20/ 001433 tL Once a location is open, it can be be displayed in another format or closedJ by one of the following commands. If an octal number precedes one of theL following commands, that number replaces the contents of the open location. o/ "" Close open location and give ODT prompt % "" Open next sequential locationd "^" Open preceding location? "@" Use contents of open location as address of next location.f1 "_" Use contents of open location as PC relative % offset and open the target location 2 REGISTERSi( User register n is opened by typing $n/K ODT has a number of internal registers that can be opened by typing $x oreJ $nx, where x is one of the following and n is the number of the register+ within the register set (if appropriate). c o" S User PS (Processor Status word)$ W User $DSW (Directive Status Word) A Search argument registerc M Search mask registera L Low memory limit register H High memory limit registeri C Constant register Q Quantity register F Format register X Reentry vector register nB Breakpoint address registers& nG Breakpoint preceed count registers$ nI Breakpoint instruction registers nR Relocation registers nV SST vector registers nE SST stack contents registers nD Device control LUN registers 2 COMMANDS ODT's commands are: e# = Interpret and display expressiona' B Breakpoint commands (set and remove)g K Compute distance  F Fill memory G Go (begin execution)s$ O Calculate branch and jump offsets P Proceed from breakpoint R Relocation register commandsn S Single step( W Search memory for bit pattern matches+ K Search memory for bit pattern exceptionss& E Search memory for effective address L List memory+ V Enable ODT's handling of all SST vectorse. X Exit from ODT (and therefore from the task) d+ For more information on each command, typeo AID ODT COMMANDS command-symbol3 =g< k= Interpret and print expression k as six octal digits and< store this word in the Q (quantity) register. For example, i _50122+152=50274e _3 Bm B Remove all breakpointsS c nB Remove nth breakpointt s? a;B Set the next available sequential breakpoint at location af e$ a;nB Set breakpoint n at location a3 K G K Using the relocation register whose contents are equal to or closestt? to (but less than) the address of the currently open location,AB compute the physical distance in bytes between the address of the@ currently open location and the value contained in the selected= relocation register; print this offset and store it in the QB (quantity) register.S c2 nK Do the above using the nth relocation register iH a;nK Do the above between the address a and the nth relocation register3 FiG F Fill memory locations within the address limits specified by the lowoC memory limit register ($L) and the high memory limit register ($H)a4 with contents of the search argument register ($A).00~y~z~* h4 kF Do the above, but first put the value k into $A.3 GnA G Begin execution at the location contained in the User PC ($7).  r2 aG Begin execution at (put a into $7 and then G).3 OoJ aO Calculate and print the PC-relative (jump) offset and the 8-bit branch< displacement from the currently open location to address a. t: a;kO Do the above calculation for address a to address k.3 Pi' P Proceed from the current breakpoint.  iD kP Proceed from the current breakpoint k times before breakpointing to the console again.3 RuC R Disable the use of all relocation registers (set them to 177777)a d- nR Disable the use of relocation register n.  (- a;R Set relocation register 0 to the value a  . a;nR Set relocation register n to the value a3 Sn; S Single step (execute the next instruction and then to an  automatic breakpoint) c> nS Execute n instructions and then do an automatic breakpoint3 Wr W or kW or m;W or m;kW  c> Search memory between the address limits specified by the low> memory limit register ($L) and the high memory limit registerA ($H) for words with bit patterns which match those of the searchtB argument specified in the search argument register ($A). Compare@ each memory word and the search argument for equality under theA mask specified in the search mask register ($M). If m and k areb= specified, put their values into $A and $M before searching.a3 Nr N or kN or m;N or m;kNo ;E Search memory between the address limits specified by the low memoryt@ limit register ($L) and the high memory limit register ($H) for? words with bit patterns which do not macth those of the searchsB argument register ($A) under the search mask register ($M). If mG and k are specified, put their values into $A and $M before searching.3 E  E or kE or m;E or m;kEa rK Search memory between the address limits specified by the low memory limiteF register ($L) and the high memory limit register ($H). Examine theseJ locations for references to the effective address specified in the searchL argument register ($A), as masked by the value specified in the search maskN register ($M). If m and/or k are specified, their values are placed in $M and! $A before the search is started.i3 L ) L or kL or a;L or a;kL or n;a;kLc gA List on an output device all word or byte locations in the taskaG between the address limits specified by the low memory limit registerh= ($L) and the high memory limit register. If k and/or a is rG specified, their values are placed in $H (high search limit register) i> and $L (low search limit register) before the search begins. 3 FsC F Fill memory locations within the address limits specified by theaB low memory limit register ($L) and the high memory limit register= ($H) with the contents of the search argument register ($A).r tG kF Fill memory as above, but put the value k into $A before beginning.o3 VoH V Enable ODT's handling of all SST vectors. See the V registers ($nV).3 Xs- X Exit from ODT and therefore from the task.h search limit register) i> and $L (low search limit register) before the search begins. 3 FsC F Fill memory locations within the address limits specified by theaB low memory limit register ($L) and the high memory limit register= ($H) with the contents of the search argument register ($A).r tG kF Fill memory as above, but put the value k into $A before beginning.o3 VoH V Enable ODT's handling of all SST vectors. See the V registers ($nV).3 Xs- X Exit from ODT and therefore f1 PAG7 Provides listings of programs etc on a paginated basis1 so printing does not occur near the paper folds.5 Also, listing will contain 2 header lines identfying  Our institution.1 DEVice, UIC, file name, extension and version # DATE and TIME of listing  calling sequence+ MCR>PAG[elist] DEV:[UIC]NAME.TYP;VERS[/TA] or, MCR>PAG DEV:[UIC]NAME.TYP=DEV:[UIC]NAME.TYP < If only one file specification is entered, the listing will be queued for printing at LP: B The s00u|mx|Oxsswitch "/TA" instructs PAG to output the listing with leadingD "TAB" characters so that the output on LP1, after removing the mar-D gins, can be punched and inserted into a ring binder without losing% first few characters of information.  sion # DATE and TIME of listing  calling sequence+ MCR>PAG[elist] DEV:[UIC]NAME.TYP;VERS[/TA] or, MCR>PAG DEV:[UIC]NAME.TYP=DEV:[UIC]NAME.TYP < If only one file specification is entered, the listing will be queued for printing at LP: B The s1 PATH PAT, the object module patch utility, allows you to patch object files. + The general form of a PAT command line is: 9 [outfile]=infile[/CS[:number]],correctfile[/CS[:number]] ; outfile is the file specification for the output file. If7 you do not specify an output file, none is generated. A infile is the file specification for the input file. This file6 can contain one or more concatenated object modules. ? correctfile is the file specification for the correction file.3 This file contains the updates being applied to a " single module in the input file. lB /CS specifies the Checksum switch, which directs PAT to generate> an octal value for the sum of all the binary data comprising8 the module in the file to which the switch is applied. t= :number specifies an octal value that directs PAT to comparei2 the checksum value it computes for a module with) the octal value you specify as :number. correctfile is the file specification for the correctio 1 ABorth ABORT[/qualifers]R) /TIMESHARING -To kill interactive taskso@ /REGISTER_DUMP -To display register contents when task aborted& ABORT/REALTIME task-name [terminal] -To kill real-time tasks c 1 ALlocate0 ALLOCATE[/DEVICE] device-name [locical-name] 1 APpend: APPEND [(] input_file_list [/qualifiers] [)] output_file! /INDEXED - Input file is INDEXED 5 /KEY:NUMBER:n - Select records in order given by 'n'-* from the INDEXED input file. Defaults to primary key (number 1)% /RELATIVE - Input is a RELATIVE file-3 /SEQUENTIAL - Input file is SEQUENTIAL (defaulted)l g1 ASsign+ ASSIGN[/TASK:task-name] device-name lunk 1 BAsic]; BASIC -- Invoke the installation default version of BASIC/ I- BASIC/B11 -- Invoke BASIC-11 ( Interpreter )* BASIC/BP2 -- Invoke BASIC+2 ( Compiler ) 1 CAncel CANCEL task-name [terminal]E6 Cancel the periodic rescheduling of a real-time task 1 COBolh COBOL/qualifiers filespecs /OBJECT:filespece( /NOOBJECT - Do not produce object file( /LIST[:filespec] - Produce listing file /NOLIST ** /SWITCHES:(cobolswitches)S 2 Switches /ERR:n /ACC:n  /HELP# /MAP - Produce data division mapn /CVF - Conventional formatA! /CREF - Produce crossref listingC% /SYM:n - Redefine symbol table spaceo /RO - Generate Read-only PSECTs /PLT - Pool literalsa9 /PFM:n - Define max. number of nested PERFORM statementsl /OV - Make PSECTs overlayable* /-ODL - Suppress COBOL generated ODL file* /OBJ - Print object location of all verbs2 /KER:kk - Generate PSECT names starting with 'kk'0 /CSEG:n - Specify max size of proceedural PSECT 1 COMpare , COMPARE[/qualifiers] filespec1 filespec2 /OUTPUT[:filespec]n /NOOUTPUT - Give summary only /CHANGE_BARS[:n]Y /NOCOMMENT - Ignore commentsc! /FORM_FEEDS - Consider formfeedss /LINES:no, /NOMULTIPLE_BLANKS - Ignore multiple blanks' /SLIPER - Produce SLIPER style outputS. /NOTRAILING_BLANKS - Compare trailing blanks# /BLANK_LINES - Compare blank linesc 1 CONtinue CONTINUE[/qualifier]; /TIMESHARING - Continue the suspended timesharing taskp$ /REALTIME task-name [terminal]4 - Continue the specified suspended realtime task$ /MESSAGE task-name [terminal]. - Continue the named task, suspended by MO1 COPyA COPY[/qualifier] infile[/filequalifier] outfile[/filequalifier]K, /ALLOCATION:n - Allocate 'n' blocks to file3 /[NO]CONTIGUOUS - Force file to be [non]contiguouse# /OWN - Output UFD owns00~y~z~* the copiesp? /REPLACE - Delete existing outfile (must specify file version)T8 /ASCII[:n] - Fixed record length size ( Foreign files )9 /BINARY[:n] - Fixed record length size ( Foreign files )i8 /IMAGE[:n] - Fixed record length size ( Foreign files )$ /BLOCK_SIZE:n - Cassette block size, /VERIFY - Perform check-write for cassette5 /CREATE_DIRECTORY - Create any necessary output UFDsO! /INDEXED - I/p file is INDEXEDi7 /KEY:NUMBER:n - Select records as defined by key 'n'1 /RELATIVE - I/p file has RELATIVE organizatione$ /RT11 - Volume is in RT11 format" /DOS - Volume is in DOS format/ /SEQUENTIAL - File is SEQUENTIAL (Defaulted)-+ /BLOCK_SIZE:n - Magnetic tape block size G1 CORali CORAL/qualifier filespec+... /LIST:listfile /NOLISTs /OBJECT:objfile/ /NOOBJECTf /SWITCHES:(/sw ... ... ) 1 CReate+ CREATE [/qualifier] filespec [/qualifier]/) /DOLLARS - Data contains '$' in column 1B /OWN - UFD is the file owner /ALLOCATION:n /REPLACE-' /ALLOCATION:n - Make file 'n' blocks/ /BUCKET_SIZE:nn% /CONTIGUOUS - Make file contiguousO /FORMAT:parametersL FIXED:nQ CONTROLLED [:n] VARIABLE [:n]M /INDEXEDb /RELATIVE /SEQUENTIAL /PROTECTION:(codes) ** /KEY:(keydefinition)N " CREATE/NAME filename aliasname 1 CREATE/DIRECTORY [dev-name:][ufd] [/qualifiers]a /ALLOCATE:n[ /PROTECTION:(code)7 (For details of protection codes, see SET PROTECTION)e2 KeyJ CREATE[/qualifier] filespec/KEY:( NUMBER:i POSITION:j SIZE:k [params] ) [NO]UPDATE [NO]DUPLICATEn O1 DClO+ DCL - To return to DCL-mode from MCR-modeD 1 DEALlocate! DEALLOCATE[/DEVICE] device-nameE+ -Deallocate a previously ALLOCATEd device  E 1 DEASsign DEASSIGN[/qualifier] lun> /KEEP - Inhibit deallocation/dismounting of associated device9 /TASK:taskname -Deassign the lun from the specified task  1 DELete8 DELETE[/KEEP[:n]] filespec[/filequalifier] ... ... ... /DOS /RT11Y K DELETE/NAME alias-name - remove the file's alias name from the directoryn! DELETE/FILE_ID:m:n device-name ; - file is specified by its file and sequence numbersE 1 DIRectory< DIRECTORY[/qualifier] filespec[/filequalifier] ... ... ...% /BRIEF - List names and types onlyh2 /FULL - Include owner,date,length and version /SUMMARY - List occupancy only /OUTPUT:outfiles$ /PRINT - Send output to printer /DOS /RT11e " DIRECTORY/qualifier device-name% /FREE - show free space on deviceo= /FILE_ID:m:n - file specified by file and sequence numberm 1 DISAble  DISABLE task-namee9 - Prohibit the execution of the specified installed task 1 DISMount. DISMOUNT[/qualifier] dev-name [volume-label]$ /KEEP - Do not deallocate device0 /GLOBAL - Dismount specified 'global' volume8 /REALTIME - Dismount volume mounted for REALTIME access 1 DUmp DUMP[/qualifiers] filespec /ASCII - List in ASCII formatR /BYTE - List as bytes" /RADIX_50 - List in Rad-50 format /DECIMAL - List in decimalp /RECORD - List a recorde /BLOCK:(n-m) /HEADER - Include header block5 /NUMBER[:n] - Do not reset linenumbers, start at 'n' /OUTPUT:outfile /NOOUTPUT7 /START - give starting block number and fragmentationa* /PRINT - Send output to printer, not TI: 1 EDit EDIT/EDITOR filespec /EDT filespec A EDIT/SLIPER/qualifier filespec /OUTPUT[:outfile]S /LIST[:listfile] /AUDIT [:(parameters)] POSITION:mL SIZE:n5 /NOAUDIT /BLANK /DOUBLEO 1 ENable ENABLE task-name 3 - Permit the execution of the named installed task  1 $EOD $EOD7 - Used to terminate data for a CREATE/DOLLARS command.g 1 $EOJ $EOJB Used to terminate a batch session and release allocated devices. 1 FIxt FIX task-name [terminal]* - Fix the task in its installed partition 1 FOrtranc FORTRAN/qualifiers filespec /FORl /F4PT /00Àu|mx|OxssLIST[:listfile]O /NOLISTZ /OBJECT[:objectfile]A /NOOBJECTU /SWITCHES:(/switchlist) mP FOR switches -- /CD:xxx/DE/DI/EX/ID/I4/LI:n/LO/NOOP:xxx/OP:xxx/RO/SN/SP/VA/WR3 F4P switches -- /CK/CO:n/DE/ID/I4/LA/LI:n/TR:xxxg 1 Goto GOTO label? Directs PDS to skip forward through subsequent commands until $ the required label is encountered. F% Labels have the format: [$]string:A where 'string' is an alphanumeric string having a letter as its  initial character. 1 Help1 This command is used to obtain more information 3 about a particular command. The general form is:O  HELP [command] [parameter]I n' HELP - lists all available commands - HELP command - lists syntax of the commandN HELP command parameter - lists further information on a particular variation; of the command. Only valid when indicated by ** besides" parameter in command listing. s# for example, HELP SET [TERMINAL]n 1 INItialize6 INITIALIZE[/qualifiers] device-name [volume-label] /DOS /RT11[:n]  /NUMBER:nc /ACCESSED:ng /BAD:[AUTOMATIC!MANUAL]o /DENSITY:n /EXTENSION:n /FILE_PROTECTION:(code) /HEADERS:n /INDEX:optiono BEGINNINGm MIDDLE ENDr n (a value)  /MAXIMUM_FILE:n  /OWNER:[uic] /PROTECTION:(code) /WINDOW:n  r2 ( for details of 'code' see 'HELP PROTECT CODE' ) T 1 INStalln INSTALL[/qualifiers] file-spec /TASK[:name] - Default  /COMMON[:name] - Common SGA /LIBRARY[:name] - Library SGA /REGION[:name] - PLAS regionD8 /SYSTEM:name - Install a system library task as $$$name8 /PARTITION:name - Install in named partition (task/SGA): /POOL:n - Define upper limit for SCOM pool useage (task)/ /PRIORITY:n - Define execution priority (task) < /UIC:[uic] - Change task's UIC or SGA owning UIC (task/SGA)3 /INCREASE:n - Extend task's Read/Write area (task)/ /ACCESS:option - Define non-owner access (SGA)c NA - No access (default) RO - Read only RW - Read/WriteR' (code) - Define access for all groups  1 $JobD $JOB[/qualifier][/PASSWORD:password] user-name job-ident time-limit5 /DCL - The batch job contains DCL-mode commandsn5 /MCR - The batch job contains MCR-mode commandsR I0 user-name - User name of an authorised IAS user, password - 1- to 6-character batch password: job-ident - A 1- to 12-character name to identify the job; time-limit - The maximum time for which the job is to run. / This is expressed as an integer number ofr3 minutes and must not exceed 1 day (1440 min). D The PASSWORD qualifer MUST be specified if the job is to run for aG user who has protected his account against unauthorised batch access.- 1 LIBrariann= LIBRARIAN operation[/qualifiers] library-spec [parameters]o ** CREATEr ** DELETE ** COMPRESSe ** EXTRACT ** INSERTt ** LIST1 ** REPLACE2 CReate? LIBRARIAN CREATE[/qualifiers] library-spec [infilespec,.....] /SIZE:n  /EPT:n /MNT:n /NOENTRY_POINTSb /TYPE:MACRO!OBJECT /SELECTt /SQUEEZE; Used to allocate a contiguous library file and initializet the 'Library header' 2 COmpress< LIBRARIAN COMPRESS[/qualifiers] library-spec [newlib-name] /SIZE:n /EPT:nR /MNT:nt9 Used to remove 'DELETE'd modules and reclaim free space2 Delete> LIBRARIAN DELETE[/qualifier] library-spec entry-name[,....] /MODULES /GLOBAL_SYMBOLS 2 ExtractlH LIBRARIAN EXTRACT/OUTPUT:f-s[/qualifier] library-spec module-name-list SELECT SQUEEZEP= Will extract up to eight modules from the names library andn= place them in the named file. The output file will assume - an appropriate file_type if not specified.r2 Insert9 LIBRARIAN INSERT[/qualifier] library-spec infile[,....]  /NOENTRY_POINTSd /SELECTc /SQUEEZE2 List) LIBRARIAN LIST[/qualifier] library-specr /ENTRIES /FULL. /OUTPUT:outfile  /PRINT 2 Replacex; LIBRARIAN REPLACE[/qualifier] library-spec i00ˀ~y~z~*nfile[,.....]e /NOENTRY_POINTS /SELECT /SQUEEZE 2 Squeezet; LIBRARIAN SQUEEZE[/qualifiers] library-spec [newlib-name]e /SIZE:n /EPT:n. /MNT:nt9 Used to remove 'DELETE'd modules and reclaim free spacei 1 LINk0 LINK/qualifiers filespec/filequalifier ... ...% /NOABORTABLE - Task is not ABORTableS= /CROSS_REFERENCE - Produce a cross-reference on the map filey/ /NOCHECKPOINTABLE - Task is not checkpointable* /DEBUG[:filespec] - Include debugging aid? /DEFAULT_LIBRARY:library - Use this instead of [1,1]SYSLIB.OLBL& /NODISABLE - Task can not be DISABLED) /EXIT:n - Quit LINKing after 'n' errors- /FIXABLE - Task is FIXable.C /NOFLOATING_POINT - Task does not use the floating point processorcC /NOFLUSH_RECIEVE_QUEUES - Do not flush receive queues on task exitO3 /FULL_SEARCH - Search all co-tree overlay segments ) /NOHEADER - Do not include a task headeryA /LARGE_SYMBOL_TABLE - Use large (but slower access) symbol tablee, /MAP[:mapfile] - Send map to 'mapfile.MAP'8 /MAP:(mapfile/qualifiers) - ... specify type of map ...' /FILES - Give file-by-file breakdown " /FULL - Give all symbols in map) /NARROW - Make map in 72 column formatT3 /NOSHORT - Do not only give a summary of the map/) /NOWIDE - Make map in 72 column formatv! /MULTI_USER - Task is multi-userC% ** /OPTIONS - Make 'options' open < /OVERLAY_DESCRIPTION:odlfile - Use overlay description file5 /POSITION_INDEPENDENT - Task is position independantA2 /PRIVILEGED - Task needs privileged access rights1 /READ_WRITE - Make RO-psects R/W (for debugging)/@ /NORECEIVE - Task is not willing to receive data and references= /RESIDENT_OVERLAYS - Task is to build with resident overlays - /SEQUENTIAL - Link modules in supplied orderO3 /SYMBOLS[:stbfile] - Send symbols to 'stbfile.STB'T' /SYMBOLS:(stbfile/NOUNDEFINED_SYMBOLS)e. - exclude undefined symbols from .STB files? /TASK[:tskfile] - Name task 'tskfile.TSK', not 'firstfile.TSK't /TRACE - Task is TRACEableC /NOWAIT_FOR_NODES - Task does not want automatic waiting for nodes  /CONCATENATED /LIBRARY ! /LIBRARY:(mod1, ... ... ...) , /[NO]MAP - Include this module in the map /SELECT 2 Optionse( ABSPAT - Declare absolute patch values4 ACTFIL - Declare number of simultaneous open files+ ASG - Device assignment to logical unitsSF ATRG - Declare number of attachment descriptor blocks to be created in the task header' BASE - Define lowest virtual address-$ COMMON - Link task with common SGA/ EXTSCT - Declare extension of program section 3 EXTTSK - Extend memory allocation at install timem/ FMTBUF - Extend run-time format string bufferd- GBLDEF - Declare a global symbol definitionP* GBLPAT - Patch relative to global symbol, GBLREF - Declare a global symbol reference$ LIBR - Link task with library SGA' MAXBUF - Extend Fortran record bufferh. ODTV - Declare size of debugging SST vector' PAR - Declare default partition namet* POOL - Declare maximum pool usage count PRI - Declare task's priority? RESAPR - Reserve APRs for use by memory management directivess8 RESCOM - Link task with the SGA from the specified UFD8 RESLIB - Link task with the SGA from the specified UFD STACK - Declare stack limit6 SYMPAT - Patch task image using global symbol values0 TASK - Assign default installed name for task' TOP - Define highest virtual addressr' TSKV - Declare address of SST vectorD UIC - Declare default UIC2 UNITS - Declare maximum number of logical units; VSECT - Declare virtual base address and size of a PSECTy 1 LOGIne' LOGIN[/qualifiers] user-name passwordt- /NONOTICE - Suppress the 'Notice of the Day'n0 /QUIET - Suppress task termination information 1 LOGOut LOGOUT, - Terminates the users time-sharing session 1 MAcro 9 MACRO[/qualifiers] filespec[/filequalifier]+... ... ...f /LIST[:file-spec] /CROSS_REFERENCE /NOOBJECT /OBJECT[:objfile] /SWITCHES:(/switch-list)C, /LIBRARY - File is a MACRO library file 1 MCrS;00Ӏu|mx|Oxss MCR [MCR command line] - To enter MCR-mode from DCL-mode2 or to issue an MCR command line from DCL-mode O1 MERgepJ MERGE [/LOG[:logfile]] trans_file [/qualifiers] target_file/qualifier /INDEXED /INDEXEDO /RELATIVE /RELATIVE  /KEY:NUMBER:n /SEQUENTIAL 1 MESsagei$ MESSAGE[/qualifiers] message-text* /ACTIVE - Send to all active terminals /ALL - Send to all terminals6 /CLI:cli-name - Send only to terminals on named CLI. /OPERATOR - Send only to Op known to bea mounted and up to speed. /OVERRIDE:parameter EXPIRATION_DATEE VOLUME_IDENTIFICATIONn SET_IDENTIFICATION /PROTECTION:(code)] /REALTIME /UNLOCKED /NOSHAREa /DEVICES:nS /PROCESSOR:acp-task6 (For details of protection code, see SET PROTECTION) 1 On ON condition DCL-command WARNING ERROR SEVERE_ERROR0B - PDS will execute the supplied command when a subsequent commandA or task produces an error having a severity of greater than ori equal the stated condition. 1 Print." PRINT[/qualifiers] filespec,..../ /PRIORITY:n - Queue for printing at priority nN /COPIES:n - Produce 'n' copies! /DELETE - Delete after printing4 /FORMS:n - Queue for printing of forms of type 'n'3 /NOBANNERS - Suppress file identification bannersc; /NOTRANSFER - Do not transfer file to SY: before printingR 1 Queuew QUEUE/qualifier [device-name]9 /ALL - list status of all users queue entries in all orn specified queues 8 /LIST - Display list of users entries on the default4 queue device or on that specified by device-name / QUEUE[/qualifiers] device-name filespec,...n /ADDs /FORMS:n /COPIES:n /DELETE /NOBANNERSn /NOTRANSFER /PRIORITY:n A QUEUE/REMOVE sequence-number - Remove indicated file from queue  1 REMove REMOVE[/qualifiers] name& /COMMON - Remove the common SGA name' /LIBRARY - Remove the library SGA namet# /REGION - Remove the named regionl) /TASK - Remove the named installed taski? /NOHEADER - Will remove a task whose header has been corruptedn 1 REName RENAME oldfile newfile 1 RUni( RUN[/qualifiers] task-name [terminal]D /DELAY:nnnx - Run after stated delay after optional synchronization /INTERVAL:nnnx/; 'nnn' is a number of hours, minutes, seconds or ticks, $ and x is a time unit: H for hours M for minutes S for seconds and T for ticks.0 /REALTIME - Run as soon as memory is available /NOPROMPT' /MEMORY - Run if memory is available> /SYNCHRONIZE:time-unit - Synchronize clock on named time-unit :HOURS :MINUTES :SECONDS :TICKS /SCHEDULE:hh:mm:ssm /UIC:[uic] /PARTITION:partitionr /PRIORITY:n  RUN[/qualifiers] filespec /TIMESHARING /INCREASE:n 1 SEt  SET attributee6 BOOTSTRAP filespec - write the bootblock in filespec DEFAULT [dev-name]:[ufd]f" PASSWORD [/BATCH] oldpass newpassF PRINTING DEFERRED - Accumulate printer output to be printed later= PRINTING [NODEFERRED] - Print accumulated output as one filen' PRIORITY task-name [terminal] priorityS) ** PROTECTION [/OWN] filespec (code)C1 - Alter the protection of the specified files.:/ /OWN changes the file ownership to its UFD / QUIET - Suppress task termination information 0 ** TERMINAL - Alter terminal characteristics3 REAL_TIME_CONTROL _ Raise the run priority of PDS 2 Protection- Protection codes have the following format:A  category:access-code  SYSTEM: OWNER:P GROUP:N WOR00ۀ~y~z~*LD:] R - read W - writeu E - extend D - delete- For example: (SYS:RWED,OW:RWED,GRO:RE,WOR:)N 2 Terminal2 SET TERMINAL[:terminal-list] characteristic_list- The valid (negateable) characteristics are:h t, ALTMODE BACKSPACE BLOCKMODE CARRIAGERETURN& [CR] COMPATIBLE CONTROLCFLUSH [CCF]% DEFAULT DS ECAPESEQUENCE FORMSMODEN$ FULLDUPLEX HARDWAREFORMFEED [HFF]& HARDWARETAB [HTAB] [TAB] LOCALCOPY7 [LCKEYBOARD] LOWERCASEINPUT [LCINPUT] LOWERCASEOUTPUTE* [LCOUTPUT] LOWERCASEPRINTER [LCPRINTER]" HOLD KEYBOARD LOWERCASEKEYBOARD' LVF MESSAGES NEWLINE NONSTANDARDTABG* [NSTAB] PRINTER SCOPE SIMULATEFORMFEED( TWOSTOPBITS [TSB] UC0-9 VERTICALFILL [VFILL] PASSALLBITSt ASR33 KSR33 ASR35 VT05  VT50 VT52 VT61 VT100E LA30S LA30P LA36 LA120N LA180S C The valued options are:0 SPEED:n 'n' is numeric, 134, 'EXTA' or 'EXTB'7 SPEED:(m:n) 'm' is the keyboard. 'n' is the printer.R$ READAHEAD:type Type may be one of: NONE DEFERREDPROCESSING [DP][ IMMEDIATEPROCESSING [IP] NAME:typeA* FILL:n Normally 0 - 6 and 7 for a LA30S WIDTH:n Set page width. LENGTH:n Set page length. HANGUP Hang up dialup line.- PARITY:[EVEN!ODD] Set parity type for line.03 NOPARITY Disable parity generation and checking.  N A1 SHOw SHOW attribute CLI [cli-name] CLOCK_QUEUE [DAY]TIME DEFAULT DEVICES[/PUD] [dd[n]] GLOBAL_AREASs IO_QUEUES LUNS task-namee MEMORY_REQUIRED PARTITIONS SHAREABLE_GLOBAL_AREASP STATUSE SWITCH_REGISTERS]1 TASKS[/qualifiers] [task_name] [terminal-list]a /ACTIVET /BRIEF /MIDDLE /FULLn /CHECKPOINTABLE /FIXED /INSTALLED /MEMORY_REQUIRED /TIMESHARING 1 SOrt7 SORT [/qualifiers] filespec[/INDEXED:n][/FORMAT:type]N FIXED:n  VARIABLE:n UNKNOWN:nO0 /ALLOCATION:n - Set initial o/p file allocation, /BLOCK_SIZE:n - Used for mag-tape o/p files* /BUCKET_SIZE:n - Set o/p file bucket size' /CONTIGUOUS - Make o/p file contiguousS+ /DEVICE:dev - Device to contain work files_# /DEVICE:([device-name]/qualifiers)/ /ALLOCATION:n - Declare work file allocationL2 /CONTIGUOUS - Work files are to be contiguous+ /FILES:n - Number of scratch files (3 - 8)i9 /FORMAT:type - Declare o/p file format & max record size :FIXED[:n] :VARIABLE[:n]N :UNKNOWN[:n]? ** /KEYS:( abm.n1 abm.n2 ... ... ) - Define sorting sequenceo+ /OUTPUT:filespec - Specify the output file/* /PROCESS:process - Define sorting process :ADDRESS_ROUTING :INDEX :RECORD (default) :TAG. /RELATIVE - O/p to have RELATIVE organization8 /SEQUENTIAL - O/p to have SEQUENTIAL organization (def)< /SPECIFICATION:file-spec - File used to define sort process2 KeysE Used to control the sequence of the output file. The format of each key entry is: abm.n where:8 a - Specifies way file is to be handled (default 'C') B - Two's complement binaryT C - Alphanumeric3 D - If alphabetic, numeric with superimposed signp+ If FORTRAN numeric, convert to binaryR! F - 2- or 4-word floating pointO* I - As D above but with leading +/- sign+ J - As D above but with trailing +/- sign)% K - As D above but sign overpunched  P - Packed decimal Z - ASCII zone- b - Defines general sort order (default 'N')f N - Assending order (def):" O - Opposite, or decending order/ m - Position of key field. ( m (decimal) > 0 )w) n - Size of key field. ( Decimal bytes ) 1 STop STOP[/JOB]rC In batch, this command will cause an immediate EOJ and terminaterB the current job. Encountered in an indirect command file used8 at command level, PDS will return for console input. 1 SUbmit SUBMIT [/qualifiers] filespec  /NOTRANSFER /PRIORITY:n 1 Type TYPE filespec ... ... ...' 1 UNFixs UNFIX task [terminal] - Free a FIXed task from memory 1 UNLock$ UNLOCK[/FILE] filespec ... ... ... z1 Verify" VERIFY[/qualifiers] device-name# FREE - List free space on devicem L00〡u|mx|OxssIST - List index file . LOST_FILES - Enter 'lost' files in directory$ OUTPUT:filespec - Name output file0 PRINT - Output to a lineprinter (device CL0:)6 READ_CHECK[:n] - Read all allocated blocks on device? RECOVER_BLOCKS - Restore blocks which are marked as allocated  but not in use& UNDELETE - Reset deletion indicators? UPDATE_BITMAP - Mark as allocated blocks which are not in use.8 WORK_DEVICE:device-name - Specify device for work files FREE - List free space on devicem L 1 ABorto ABORT[/qualifers]a* /TIMESHARING -To kill interactive tasks9 /REALTIME task-name [terminal] -To kill real-time tasksk l 1 ALlocate/ + ALLOCATE/TERMINAL terminal-list cli-namee 1 APpend: APPEND [(] input_file_list [/qualifiers] [)] output_file! /INDEXED - Input file is INDEXEDI5 /KEY:NUMBER:n - Select records in order given by 'n'c* from the INDEXED input file. Defaults to primary key (number 1)% /RELATIVE - Input is a RELATIVE files3 /SEQUENTIAL - Input file is SEQUENTIAL (defaulted)e 1 ASsign( ASSIGN/TASK:task-name device-name lun4 + ASSIGN/REDIRECT source-device target-device 1 BAsic; BASIC -- Invoke the installation default version of BASICd - BASIC/B11 -- Invoke BASIC-11 ( Interpreter )t* BASIC/BP2 -- Invoke BASIC+2 ( Compiler ) 1 BOotstrapS: + BOOTSTRAP [filespec] -Bootstraps in the named system 1 CAncel CANCEL task-name [terminal]e6 Cancel the periodic rescheduling of a real-time task I1 COBol  COBOL/qualifiers filespec  /OBJECT:filespecG( /NOOBJECT - Do not produce object file( /LIST[:filespec] - Produce listing file /NOLIST ** /SWITCHES:(cobolswitches) 2 Switches8 /ACC:n - specifies acceptable object file diagnostics# /-BOU - suppresses bounds checkingn0 /CM6 - specifies COMPUTATIONAL-6 interpretation( /CREF - creates cross-reference listing2 /CSEG:n - specifies maximum procedural PSECT size% /CVF - specifies conventional formate> /DE - create descriptors for all data-names (COBOL V4.1)( /ERR:n - suppresses diagnostic printingB /FLG:kk - create Federal Standard COBOL Diagnostics (COBOL V4.1)3 /HELP - displays complier command line informationt% /KER:kk - assigns PSECT kernel nameso /MAP - creates map on listing) /NL - suppresses listing of library texte/ /OBJ - prints object code locations on listings% /OV - overlays all procedural PSECTSe1 /PFM:n - assigns a maximum PERFORM nesting valuef# /-PLT - suppresses literal poolingt /RO - creates read-only PSECTS  /-ODL - (COBOL V4.0)9 /-SKL - suppresses SKL file generation (COBOL V4.1)a /SUB - identifies a subprogram)4 /SYM:n - adds symbol table space (COBOL V4.1)B /TMP:dd - assigns a device for temp file storage (COBOL V4.1) g 1 COMparep, COMPARE[/qualifiers] filespec1 filespec2 /OUTPUT[:filespec]o /NOOUTPUT - Give summary only /CHANGE_BARS[:n]T /NOCOMMENT - Ignore comments ! /FORM_FEEDS - Consider formfeedsp /LINES:ne3 /NONUMBERS - Do not include line numbers on outputL, /NOMULTIPLE_BLANKS - Ignore multiple blanks' /SLIPER - Produce SLIPER style output/. /NOTRAILING_BLANKS - Compare trailing blanks# /BLANK_LINES - Compare blank lines 1 CONtinue CONTINUE[/qualifier]; /TIMESHARING - Continue the suspended timesharing taski$ /REALTIME task-name [terminal]4 - Continue the specified suspended realtime task$ /MESSAGE task-name [terminal]. - Continue the named task, suspended by MO1 COPyA COPY[/qualifier] infile[/filequalifier] outfile[/filequalifier]K, /ALLOCATION:n - Allocate 'n' blocks to file3 /[NO]CONTIGUOUS - Force file to be [non]contiguouse; /CONCATENATE - Concatenate input files and create new file2 /DATE:[KEEP] - Retain creation date of input file# /OWN - Output UFD owns the copiesg? /REPLACE - Delete existing outfile (must specify file version)s9 /[NO]SPANBLOCKS - Records [not] to cross block boundries 3 /UPDATE - Update existing file with input file(s)b6 /REWIND[:ERASE] - Rewind and optional00~y~z~*ly erase magtape* /NOREWIND _ Do not rewind foreign magtape8 /ASCII[:n] - Fixed record length size ( Foreign files )9 /BINARY[:n] - Fixed record length size ( Foreign files )i8 /IMAGE[:n] - Fixed record length size ( Foreign files )$ /BLOCK_SIZE:n - Cassette block size, /VERIFY - Perform check-write for cassette5 /CREATE_DIRECTORY - Create any necessary output UFDsS! /INDEXED - I/p file is INDEXEDn7 /KEY:NUMBER:n - Select records as defined by key 'n's1 /RELATIVE - I/p file has RELATIVE organizationm$ /RT11 - Volume is in RT11 format" /DOS - Volume is in DOS format/ /SEQUENTIAL - File is SEQUENTIAL (Defaulted)-+ /BLOCK_SIZE:n - Magnetic tape block size3 /[NO]SHARED - Input file may be opened for writes2 /DENSITY:n - Density of input or output magtape f1 CORal- CORAL/qualifier filespec+... /LIST:listfile /NOLIST  /OBJECT:objfileN /NOOBJECTi /SWITCHES:(/sw ... ... ) 1 CReate6 + CREATE/SWAPFILE[:n] device-name parameter-list SIZE:ng [DEDICATED_VOLUME]o [[NO]BAD_BLOCKS] [REAL_TIME]+ CREATE [/qualifier] filespec [/qualifier]Q) /DOLLARS - Data contains '$' in column 1g /OWN - UFD is the file owner /ALLOCATION:n /REPLACEo' /ALLOCATION:n - Make file 'n' blocks  /BUCKET_SIZE:nm% /CONTIGUOUS - Make file contiguouse /FORMAT:parameters: FIXED:nN CONTROLLED [:n]f VARIABLE [:n] /INDEXED/ /RELATIVE /SEQUENTIAL /PROTECTION:(codes) ** /KEY:(keydefinition)i " CREATE/NAME filename aliasname 1 CREATE/DIRECTORY [dev-name:][ufd] [/qualifiers]a /ALLOCATE:n[ /PROTECTION:(code)7 (For details of protection codes, see SET PROTECTION)e2 KeyJ CREATE[/qualifier] filespec/KEY:( NUMBER:i POSITION:j SIZE:k [params] ) [NO]UPDATE [NO]DUPLICATEn e1 DClO+ DCL - To return to DCL-mode from MCR-modeD 1 DEALlocate' + DEALLOCATE/TERMINAL terminal-list/ U 1 DEASsign DEASSIGN/TASK:task-name luny+ -Deassign the lun from the specified taski 1 DELete + DELETE/SWAPFILE:n% - the specified swapfile is deletedC; DELETE[/qualifiers] filespec[/filequalifier] ... ... ...c /KEEP[:N] - Purge files% /LOG - List files that are deletedK1 /NOERRORMESSAGE - Do not report 'no such files' 3 /CONFIRM - Prompt for action before deleting file /DOSr /RT11  DELETE/NAME alias-namee3 - remove the file's alias name from the directoryS DELETE/FILE_ID:m:n device-name6 - file is specified by its file and sequence numbers 1 DIRectoryT< DIRECTORY[/qualifier] filespec[/filequalifier] ... ... ...0 /NOERRORMESSAGE- Do not report 'no such files'% /BRIEF - List names and types only 2 /FULL - Include owner,date,length and version< /WIDTH:n - Specify number of chars on output line of /FULL /SUMMARY - List occupancy only /OUTPUT:outfile $ /PRINT - Send output to printer /DOS /RT11e " DIRECTORY/qualifier device-name% /FREE - show free space on deviceyG /FILE_ID:m:n - directory file specified by file and sequence numberr 1 DISAblee DISABLE task-name.9 - Prohibit the execution of the specified installed taskF 1 DISMount) DISMOUNT[/LOCK] dev-name [volume-label]d 1 DUmp DUMP[/qualifiers] filespec /BYTE - List as bytesp" /RADIX_50 - List in Rad-50 format /DECIMAL - List in decimalu /ASCII - List in ASCII format ) /WORD - List in hexadecimal word formatE/ /HEXADECIMAL - List in hexadecimal byte formate3 /LONGWORD - List in hexadecimal double-word format  /RECORD - List a recordn /BLOCK:(n-m) /HEADER - Include header block5 /NUMBER[:n] - Do not reset linenumbers, start at 'n's /OUTPUT:outfile /NOOUTPUT7 /START - give starting block number and fragmentationl* /PRINT - Send output to printer, not TI:% /DENSITY:n - Specify magtape densityE& /REWIND - Rewind magtape before dump9 /FORMAT:HEADER - List any header blocks in header formata8 /FORMAT:FILES11 - List header in Files-11 header format= /NOFORMAT - Lis00u|mx|Oxsst header and data blocks in unformatted octali 1 EDit% EDIT/editor[/qualifiers] filespece ** /EDI ** /EDT ** /K52 ** /KED ** /SLIPERn 2 EDIT EDIT[/EDI] filespec R2 EDTv EDIT/EDT/qualifiers filespece t /[NO]COMMAND[:filespec] /[NO]JOURNAL[:filespec] /[NO]OUTPUT[:filespec]s /[NO]RECOVER  /[NO]READ_ONLYr2 K52' EDIT[/KED][/K52]/qualifiers filespeci e /IMPLIED_CARRIAGE_CONTROL1 /EMBEDDED_CARRIAGE_CONTROL /BLOCK_SIZE:size /OUTPUT:filespec /INSPECT n2 KEde' EDIT[/KED][/K52]/qualifiers filespeci r /IMPLIED_CARRIAGE_CONTROL  /EMBEDDED_CARRIAGE_CONTROL /BLOCK_SIZE:size /OUTPUT:filespec /INSPECT R2 Sliper EDIT/SLIPER/qualifier filespec /OUTPUT[:outfile]s /LIST[:listfile] /AUDIT [:(parameters)] POSITION:m] SIZE:n  REPORT_TRUNCATION /NOAUDIT /BLANK /DOUBLE /CHECKSUM[:n]G /TRUNCATE[:n]E1 ENable ENABLE task-nameZ3 - Permit the execution of the named installed task 1 $EOD $EOD7 - Used to terminate data for a CREATE/DOLLARS command.E 1 $EOJ $EOJB Used to terminate a batch session and release allocated devices. 1 EXamineI! + EXAMINE[/qualifier] addressU /KERNELs /PHYSICAL[ /PARTITION:partition-namea+ /TASK:task-name [/TERMINAL:terminal-name]P ( To examine and modify a memory address 1 FIxL FIX task-name [terminal]* - Fix the task in its installed partition 1 FOrtrani FORTRAN/qualifiers filespecs /FOR /F4PE /LIST[:listfile]t /NOLISTA /OBJECT[:objectfile]J /NOOBJECTs /SWITCHES:(/switchlist) eP FOR switches -- /CD:xxx/DE/DI/EX/ID/I4/LI:n/LO/NOOP:xxx/OP:xxx/RO/SN/SP/VA/WR3 F4P switches -- /CK/CO:n/DE/ID/I4/LA/LI:n/TR:xxx  S1 Goto GOTO label? Directs PDS to skip forward through subsequent commands until $ the required label is encountered. F% Labels have the format: [$]string:A where 'string' is an alphanumeric string having a letter as its  initial character. 1 Help1 This command is used to obtain more information 3 about a particular command. The general form is:O  HELP [command] [parameter]I n( HELP - lists all possible commands.H HELP command - lists syntax of the command. SCI privileged users can * use variations indicated by a + sign.O HELP command parameter - lists further information on a particular variation ; of the command. Only valid when indicated by ** besidei" parameter in command listing. " for example, HELP SET [TERMINAL] d 1 IDentify IDENTIFY system-utility t 1 INItialize6 INITIALIZE[/qualifiers] device-name [volume-label] /DOS /RT11[:n]  /NUMBER:na /ACCESSED:nd /BAD:[AUTOMATIC!MANUAL]. /DENSITY:n /EXTENSION:n /FILE_PROTECTION:(code). /HEADERS:n /INDEX:optionh BEGINNING MIDDLE END n (a value)O /MAXIMUM_FILE:nd /OWNER:[uic] /PROTECTION:(code) /WINDOW:n  m8 ( For details of protection codes, see SET PROTECTION ) u 1 INStall INSTALL[/qualifiers] file-spec /TASK[:name] - Defaultm /COMMON[:name] - Common SGA /LIBRARY[:name] - Library SGA /REGION[:name] - PLAS regionO8 /SYSTEM:name - Install a system library task as $$$name8 /PARTITION:name - Install in named partition (task/SGA): /POOL:n - Define upper limit for SCOM pool useage (task)/ /PRIORITY:n - Define execution priority (task)N< /UIC:[uic] - Change task's UIC or SGA owning UIC (task/SGA)3 /INCREASE:n - Extend task's Read/Write area (task)/ /ACCESS:option - Define non-owner access (SGA)c NA - No access (default) RO - Read only RW - Read/WriteR' (code) _ Define access for all groups  r1 $JobD $JOB[/qualifier][/PASSWORD:password] user-name job-ident time-limit5 /DCL - The batch job contains DCL-mode commands 5 /MCR - The batch job contains MCR-mode commandsO Y0 user-name - U00~y~z~*ser name of an authorised IAS user, password - 1- to 6-character batch password: job-ident - A 1- to 12-character name to identify the job; time-limit - The maximum time for which the job is to run.c/ This is expressed as an integer number oft3 minutes and must not exceed 1 day (1440 min). D The PASSWORD qualifer MUST be specified if the job is to run for aG user who has protected his account against unauthorised batch access.- 1 LIBrariann= LIBRARIAN operation[/qualifiers] library-spec [parameters]o ** CREATEr ** DELETE ** COMPRESSe ** EXTRACT ** INSERTt ** LIST1 ** REPLACE2 CReate? LIBRARIAN CREATE[/qualifiers] library-spec [infilespec,.....] /SIZE:n  /EPT:n /MNT:n /NOENTRY_POINTSb /TYPE:MACRO!OBJECT /SELECTt /SQUEEZE; Used to allocate a contiguous library file and initializet the 'Library header' 2 COmpress< LIBRARIAN COMPRESS[/qualifiers] library-spec [newlib-name] /SIZE:n /EPT:nR /MNT:nt9 Used to remove 'DELETE'd modules and reclaim free space2 Delete> LIBRARIAN DELETE[/qualifier] library-spec entry-name[,....] /MODULES /GLOBAL_SYMBOLS 2 ExtractlH LIBRARIAN EXTRACT/OUTPUT:f-s[/qualifier] library-spec module-name-list SELECT SQUEEZEP= Will extract up to eight modules from the names library andn= place them in the named file. The output file will assume - an appropriate file_type if not specified.r2 Insert9 LIBRARIAN INSERT[/qualifier] library-spec infile[,....]  /NOENTRY_POINTSd /SELECTc /SQUEEZE2 List) LIBRARIAN LIST[/qualifier] library-specr /ENTRIES /FULL. /OUTPUT:outfile  /PRINT 2 Replacex; LIBRARIAN REPLACE[/qualifier] library-spec infile[,.....]e /NOENTRY_POINTS /SELECT /SQUEEZE 2 Squeezet; LIBRARIAN SQUEEZE[/qualifiers] library-spec [newlib-name]e /SIZE:n /EPT:n. /MNT:nt9 Used to remove 'DELETE'd modules and reclaim free spacei 1 LINk0 LINK/qualifiers filespec/filequalifier ... ...% /NOABORTABLE - Task is not ABORTableS= /CROSS_REFERENCE - Produce a cross-reference on the map filey/ /NOCHECKPOINTABLE - Task is not checkpointable* /DEBUG[:filespec] - Include debugging aid? /DEFAULT_LIBRARY:library - Use this instead of [1,1]SYSLIB.OLBL& /NODISABLE - Task can not be DISABLED) /EXIT:n - Quit LINKing after 'n' errors- /FIXABLE - Task is FIXable.C /NOFLOATING_POINT - Task does not use the floating point processorcC /NOFLUSH_RECIEVE_QUEUES - Do not flush receive queues on task exitO3 /FULL_SEARCH - Search all co-tree overlay segments ) /NOHEADER - Do not include a task headeryA /LARGE_SYMBOL_TABLE - Use large (but slower access) symbol tablee, /MAP[:mapfile] - Send map to 'mapfile.MAP'8 /MAP:(mapfile/qualifiers) - ... specify type of map ...' /FILES - Give file-by-file breakdown " /FULL - Give all symbols in map) /NARROW - Make map in 72 column formatT3 /NOSHORT - Do not only give a summary of the map/) /NOWIDE - Make map in 72 column formatv: /NOUNDEFINED - Do not print undefined references on TI:! /MULTI_USER - Task is multi-usero% ** /OPTIONS - Make 'options' openL< /OVERLAY_DESCRIPTION:odlfile - Use overlay description file5 /POSITION_INDEPENDENT - Task is position independanta2 /PRIVILEGED - Task needs privileged access rights1 /READ_WRITE - Make RO-psects R/W (for debugging)y@ /NORECEIVE - Task is not willing to receive data and references< /REQUEST - Task is willing to be requested by non-directive privileged usersa= /RESIDENT_OVERLAYS - Task is to build with resident overlays- /SEQUENTIAL - Link modules in supplied orderO3 /SYMBOLS[:stbfile] - Send symbols to 'stbfile.STB'f' /SYMBOLS:(stbfile/NOUNDEFINED_SYMBOLS)I. - exclude undefined symbols from .STB file? /TASK[:tskfile] - Name task 'tskfile.TSK', not 'firstfile.TSK'E /TRACE - Task is TRACEableC /NOWAIT_FOR_NODES - Task does not want automatic waiting for nodese /CONCATENATED /LIBRARYo! /LIBRARY:(mod1, ... ... ...) , /[NO]MAP - Include this module in the map /SELECT 00u|mx|Oxss2 Optionst( ABSPAT - Declare absolute patch values4 ACTFIL - Declare number of simultaneous open files+ ASG - Device assignment to logical unitsNF ATRG - Declare number of attachment descriptor blocks to be created in the task header' BASE - Define lowest virtual address-$ COMMON - Link task with common SGA/ EXTSCT - Declare extension of program sectione3 EXTTSK - Extend memory allocation at install timem/ FMTBUF - Extend run-time format string bufferd- GBLDEF - Declare a global symbol definitionP* GBLPAT - Patch relative to global symbol, GBLREF - Declare a global symbol reference$ LIBR - Link task with library SGA' MAXBUF - Extend Fortran record bufferh. ODTV - Declare size of debugging SST vector' PAR - Declare default partition namet* POOL - Declare maximum pool usage count PRI - Declare task's priority? RESAPR - Reserve APRs for use by memory management directivess8 RESCOM - Link task with the SGA from the specified UFD8 RESLIB - Link task with the SGA from the specified UFD STACK - Declare stack limit6 SYMPAT - Patch task image using global symbol values0 TASK - Assign default installed name for task' TOP - Define highest virtual addressr' TSKV - Declare address of SST vectorD UIC - Declare default UIC2 UNITS - Declare maximum number of logical units; VSECT - Declare virtual base address and size of a PSECTy 1 LOGIne' LOGIN[/qualifiers] user-name passwordt- /NONOTICE - Suppress the 'Notice of the Day'n0 /QUIET - Suppress task termination information 1 LOGOut> LOGOUT [/HOLD] - Terminates the users time-sharing session8 /HOLD causes a dial-up terminal not to be hung up 1 MAcroi: MACRO[/qualifiers] filespec[/filequalifiers]+... ... ... /LIST[:file-spec] /PASS:n /NOLIST /LIBRARYc, /OBJECT[:file-spec] /SWITCHES:(switch-list) /NOOBJECT /SWITCHES:(switch-list)% ** /CROSSREFERENCE[:(keyword-list)]q /NOCROSSREFERENCE s, switch-lists consist of one or more of :. /DS /EN /LI /NL for the command qualifier( and /DS /EN for the filequalifier+ All these switches can have arguments.n 2 CrossreferenceH MACRO/CROSSREFERENCE:(keyword-list) filespec[/filequalifiers]+..... USER_SYMBOLSi MACRO_SYMBOLS REGISTER_SYMBOLS/ PERMANENT_SYMBOLS RF Used to control which symbols are given in the crossreference listing 1 MCrs; MCR [MCR command line] - To enter MCR-mode from DCL-modeE2 or to issue an MCR command line from DCL-mode 1 MERge J MERGE [/LOG[:logfile]] trans_file [/qualifiers] target_file/qualifier /INDEXED /INDEXED  /RELATIVE /RELATIVEs /KEY:NUMBER:n /SEQUENTIAL 1 MESsaget$ MESSAGE[/qualifiers] message-text+ + /FORCE - Break through 'nomessages'_ /ALL - Send to all terminals. /OPERATOR - Send only to Operator (Default)= /TERMINAL:terminal-list - Send to explicit terminal(s) only  1 MOuntR; MOUNT[/qualifiers] dev-name vol-label-list [logical-name]o8 /ACCESSED:n - 'n' is number of preaccessed directories> /CONTROL_FUNCTIONS - allows logical and positioning functions? /DENSITY:800!1600 - Set magnetic density to 800 or 1600 b.p.i.U /EXTENSION:ng /FILE_PROTECTION:(code) /FOREIGNe /OVERRIDE:parameter EXPIRATION_DATEg VOLUME_IDENTIFICATIONl SET_IDENTIFICATION /PROTECTION:(code)t /UNLOCKED? /WINDOW:n - 'n' is number of file extents in each window block /PROCESSOR:acp-task6 (For details of protection code, see SET PROTECTION) 1 On ON condition DCL-command WARNING ERROR SEVERE_ERRORsB - PDS will execute the supplied command when a subsequent commandA or task produces an error having a severity of greater than or: equal the stated condition. 1 Print " PRINT[/qualifiers] filespec,..../ /PRIORITY:n - Queue for printing at priority no /COPIES:n - Produce 'n' copies! /DELETE - Delete after printingw4 /FORMS:n - Queue for printing of forms of type 'n'3 /NOBANNERS - Suppress file identification bannersc; /NOTRA00 ~y~z~*NSFER - Do not transfer file to SY: before printingR1 /AFTER:time - Print file after time specified - 4 hh:mm or (dd-mmm-yy hh:mm) 1 Queuey QUEUE/qualifier [device-name]9 /ALL - list status of all users queue entries in all ors specified queues-8 /LIST - Display list of users entries on the default4 queue device or on that specified by device-name / QUEUE[/qualifiers] device-name filespec,...BE + /TEST - Specifiy device on which forms alignment is to be testedt /ADD /FORMS:n /COPIES:n /DELETE /NOBANNERSr /NOTRANSFER /PRIORITY:n /AFTER:time  J QUEUE/MODIFY[/qualifiers] sequence-number - Modify indicated queue entry /DEVICE:devl /FORMS: ns /COPIES:nn /DELETEe /PRIORITY:nT /AFTER:time  A QUEUE/REMOVE sequence-number - Remove indicated file from queued 1 REMove REMOVE[/qualifiers] name& /COMMON - Remove the common SGA name' /LIBRARY - Remove the library SGA namet# /REGION - Remove the named regionO) /TASK - Remove the named installed taskR? /NOHEADER - Will remove a task whose header has been corruptede 1 REName RENAME oldfile newfile 1 RUn  + RUN/HANDLER device-name  ( RUN[/qualifiers] task-name [terminal]D /DELAY:nnnx - Run after stated delay after optional synchronization /INTERVAL:nnnxi; 'nnn' is a number of hours, minutes, seconds or ticks,a$ and x is a time unit: H for hours M for minutes S for seconds and T for ticks.0 /REALTIME - Run as soon as memory is available /NOPROMPT' /MEMORY - Run if memory is availables> /SYNCHRONIZE:time-unit - Synchronize clock on named time-unit :HOURS :MINUTES :SECONDS :TICKS /SCHEDULE:hh:mm:ssm /UIC:[uic] /PARTITION:partitionr /PRIORITY:n  RUN[/qualifiers] filespec /TIMESHARING /INCREASE:n b 1 SAve + SAVE[/qualfiers]c /LOGGED_ON:terminal-list /MOUNTED:device-list /NOEXTENDc /NOINSTALL 1 SEt/ SET attributes + PRIVILEGED terminal-list + ALLOCATION ticks blocke + [DAY]TIME date!time! + DEVICES:device-name WIDTH:n I + EXTENDED_TASK_SIZE[/MAXIMUM] n - 'n' is nnnn (octal) 32. word blocksC) + or nnK (decimal) KwordsA! + EXTENDED_TASK_SIZE/NOMAXIMUM  + FORMS queue forms-typec: + MEMORY [NO]CACHE n - 'n' is the group number, 0 or 1? + PARITY n - 'n' is the max number or errors in 1 minutec + [NO]SPOOL device-name  + QUANTUM/BATCH n + /CONSTANT n + /LEVEL:n n + SERVICE/BATCH n + /PROMOTION n + SWITCH_REGISTER VALUE:na + ON:switch-list + OFF:swsitch-list6 BOOTSTRAP filespec - write the bootblock in filespec@ END_OF_FILE filespec [block:byte] - Reset end of file pointer" PASSWORD [/BATCH] oldpass newpassF PRINTING DEFERRED - Accumulate printer output to be printed later= PRINTING [NODEFERRED] - Print accumulated output as one filee' PRIORITY task-name [terminal] priority ) ** PROTECTION [/OWN] filespec (code)n1 - Alter the protection of the specified files./ /OWN changes the file ownership to its UFD-/ QUIET - Suppress task termination informationp0 ** TERMINAL - Alter terminal characteristics UIC [uic]b b 2 Protection- Protection codes have the following format:a  category:access-code- SYSTEM: OWNER:  GROUP:  WORLD:d R - read W - writeR E - extend D - delete- For example: (SYS:RWED,OW:RWED,GRO:RE,WOR:)] 2 Terminal2 SET TERMINAL[:terminal-list] characteristic_list- The valid (negateable) characteristics are:  W* ALTMODE ANSISEQUENCE BACKSPACE BLOCKMODE" CARRIAGERETURN [CR] COMPATIBLE& CONTROLCFLUSH [CCF] CONTROLS [CSQ] & DEFAULT DS ESCAPESEQUENCE FORMSMODE$ FULLDUPLEX HARDWAREFORMFEED [HFF]& HARDWARETAB [HTAB] [TAB] LOCALCOPY7 [LCKEYBOARD] LOWERCASEINPUT [LCINPUT] LOWERCASEOUTPUT* [LCOUTPUT] LOWERCASEPRINTER [LCPRINTER]" HOLD KEYBOARD LOWERCASEKEYBOA00u|mx|OxssRD' LVF MESSAGES NEWLINE NONSTANDARDTABE* [NSTAB] PRINTER SCOPE SIMULATEFORMFEED( TWOSTOPBITS [TSB] UC0-9 VERTICALFILL% [VFILL] PASSALLBITS PROCESSCONTROLCA ASR33 KSR33 ASR35 VT05N VT50 VT52 VT61 VT100O LA30S LA30P LA36 LA120  LA180S The valued options are:0 SPEED:n 'n' is numeric, 134, 'EXTA' or 'EXTB'7 SPEED:(m:n) 'm' is the keyboard. 'n' is the printer.E$ READAHEAD:type Type may be one of: NONE DEFERREDPROCESSING [DP] IMMEDIATEPROCESSING [IP] NAME:typeM* FILL:n Normally 0 - 6 and 7 for a LA30S WIDTH:n Set page width. LENGTH:n Set page length. HANGUP Hang up dialup line.- PARITY:[EVEN!ODD] Set parity type for line. 3 NOPARITY Disable parity generation and checking.A A 1 SHow SHOW attribute + SCHEDULER + SWAPFILES[:n] CLOCK_QUEUE [DAY]TIME DEVICES[/PUD] [dd[n]] GLOBAL_AREASe IO_QUEUES LUNS task-namep EXTENDED_TASK_SIZE/MAXIMUM  MEMORY_REQUIRED PARTITIONS  SHAREABLE_GLOBAL_AREAS STATUSM SWITCH_REGISTERSy1 TASKS[/qualifiers] [task_name] [terminal-list]. /ACTIVE  /BRIEF /MIDDLEA /FULLg /CHECKPOINTABLEA /FIXED /INSTALLED /MEMORY_REQUIRED 1 SOrt7 SORT [/qualifiers] filespec[/INDEXED:n][/FORMAT:type]  FIXED:n  VARIABLE:n UNKNOWN:nK0 /ALLOCATION:n - Set initial o/p file allocation, /BLOCK_SIZE:n - Used for mag-tape o/p files* /BUCKET_SIZE:n - Set o/p file bucket size' /CONTIGUOUS - Make o/p file contiguous+ /DEVICE:dev - Device to contain work filesu# /DEVICE:([device-name]/qualifiers)./ /ALLOCATION:n - Declare work file allocation 2 /CONTIGUOUS - Work files are to be contiguous+ /FILES:n - Number of scratch files (3 - 8)i9 /FORMAT:type - Declare o/p file format & max record size :FIXED[:n] :VARIABLE[:n]N :UNKNOWN[:n]? ** /KEYS:( abm.n1 abm.n2 ... ... ) - Define sorting sequenceo+ /OUTPUT:filespec - Specify the output file/* /PROCESS:process - Define sorting process :ADDRESS_ROUTING :INDEX :RECORD (default) :TAG. /RELATIVE - O/p to have RELATIVE organization8 /SEQUENTIAL - O/p to have SEQUENTIAL organization (def)< /SPECIFICATION:file-spec - File used to define sort process2 KeysE Used to control the sequence of the output file. The format of each key entry is: abm.n where:8 a - Specifies way file is to be handled (default 'C') B - Two's complement binaryT C - Alphanumeric3 D - If alphabetic, numeric with superimposed signp+ If FORTRAN numeric, convert to binaryR! F - 2- or 4-word floating pointO* I - As D above but with leading +/- sign+ J - As D above but with trailing +/- sign)% K - As D above but sign overpunched  P - Packed decimal Z - ASCII zone- b - Defines general sort order (default 'N')f N - Assending order (def):" O - Opposite, or decending order/ m - Position of key field. ( m (decimal) > 0 )w) n - Size of key field. ( Decimal bytes ) 1 SPoola# + SPOOL/qualifier [device-name]p /ABORTR /RESUME[:parameter] FILE  FORMo RECYCLE /STARTs /STOP /TEST n1 STop STOP[/JOB]t + STOP/HANDLER device-names1 SUbmit SUBMIT [/qualifiers] filespecd /NOTRANSFERS /PRIORITY:nf /AFTER:n 1 TRuncate TRUNCATE filespec ... ... d1 TYpe TYPE filespec ... ... ...d 1 UNFixt UNFIX task [terminal]c - Free a FIXed task from memory 1 UNLock$ UNLOCK[/FILE] filespec ... ... ...1 + /MEMORY task-name [terminal-list] ! [ALL]U :1 Verify" VERIFY[/qualifiers] device-name# FREE - List free space on deviceE LIST - List index fileB. LOST_FILES - Enter 'lost' files in directory$ OUTPUT:filespec - Name output file0 PRINT - Output to a lineprinter (device CL0:)6 READ_CHECK[:n] - Read all allocated blocks on device? RECOVER_BLOCKS - Restore blocks which are marked as allocatedc but not in use& UNDELETE - Reset deletion indicators? UPDATE_BITMAP - Mark as allocated blocks which are not in uset800~y~z~* WORK_DEVICE:device-name - Specify device for work files FREE - List free space on deviceE LIST - List index fileB. LOST_FILES - Enter 'lost' files in directory$ OUTPUT:filespec - Name output file0 PRINT - Output to a lineprinter (device CL0:)6 READ_CHECK[:n] - Read all allocated blocks on device? RECOVER_BLOCKS - Restore blocks which are marked as allocatedc but not in use& UNDELETE - Reset deletion indicators? UPDATE_BITMAP - Mark as allocated blocks which are not in uset81 PIPE PIP performs Files-11 file manipulation functions, such as copying,? transferring, and renaming files. The following switches are supported by PIP: ' /AP Append input file to output file= /BL:n Allocate contiguous block number (see AID PIP COPY)' /BS:n Define magnetic tape blocksize* /CD Preserve creation date on file copy9 /CO Output file is to be contiguous (see AID PIP COPY)2 /DD Specify date restrictions for file searches /DE Delete files< /DF Set default device and/or UFD for subsequent commands0 /EN Create secondary directory entry for file" /EOF:n:m Set EOF marker for file< /EX Exclude a specified set of files during file searches: /FO Output file owner to be same as input file (see AID$ PIP COPY, /AP, /PR, /UF, or /UP)* /FR Determine free block count for disk$ /FU List directory in full format /ID Identify PIP version 2 /LD List files deleted (see AID PIP /DE or /PU)? /LI List directory; subswitches are /BR, /FU[:n[.]], and /TBc; /ME Create a single file from two or more existing files * /NM Suppress certain PIP error messages= /NV Set new output file version (see AID PIP COPY or /EN)g< /PR Alter file protection; subswitches are /SY, /OW, /GR, and /WO; /PU:n Purge to the specified number of contiguous copiesl( /RM Remove directory entry for a file' /RE Rename input file to output nameo /RW Rewind tape/ /SB Set span blocks attribute in output filei /SD Selectively delete files[* /SP Specify list of files to be printed /SR Allow shared readingi /SU Supersede output version ' /TB List total blocks used/allocatedl< /TD Restrict file seaches to files created on current day /TR Truncate file6 /UF Create UFD on output volume to match input file /UN Unlock file /UP Update file contents  eK More than one PIP command can be specified in one line. To separate each n+ command, use the ampersand character (&).u tB Type AID PIP COPY for information on the default copy operation.< Type AID PIP for more information on each switch.G Type AID PIP WILDCARDS for information on wildcard character support.r 2 AP' APPEND outfile[/FO]=infile[s]/AP[/FO]/ @ Opens an existing file (outfile) and appends the input file(s)7 to the end of it. (/FO is the file owner subswitch.)e % The parameters that PIP allows are:i i& outfile - explicit file name and type e8 infile - explicit file parameters; wildcard by default o? /FO - file ownership is infile UFD; without /FO, ownershipo is the current UIC2 BS+ BLOCKSIZE outfile/[BS:n]=infile(s)/[BS:n]n C Defines the block size for 7- and 9-track magnetic tapes. NotesF that /BS does not have to be specified for input files from magnetic6 tapes. PIP automatically determines the block size. i2 COPY( COPY outfile[s]=infile[s]/subswitches i9 Creates a copy of a file on the same or another volume.e i% The paramaters that PIP allows are:t E outfile - if filename.type;version are null or all wildcards, input > parameters are preserved unless overruled by /NV or /SU;= if filename, type, or version is defined, none can be ae8 wildcard, and only one input file can be specified rF infile - if filename.type;version are all null, the default is *.*;* sC /BL:n[.] - specifies number of contiguous blocks for output filea. where n is an octal or decimal (.) value 8 /CO or /NOCO - contiguous or noncontiguous output file00#u|mx|Oxss f /FO - see AID PIP /AP r> /NV - forces output version number of copied file to be one. greater than the current highest version e@ /SU - creates a new file having the same file name, type, and version to replace outfile2 CD" CREATION DATE outfile/CD=infile uG Gives the output file the creation date of the input file rather thanoF the date of the file transfer. (This switch cannot be used with /ME. nor with any MT:-type magnetic tape device.)2 DD% DEFAULT DATE /DD:startdate:enddateP PG Restricts file searches to files created during a specified period of G time. Startdate and enddate must be specified in the form dd-mon-yy.w@ A wildcard (*) may be substituted for startdate or enddate to 9 specify that there is no restriction for that argument.i2 DF DEFAULT ddnn:[g,m]/DFn tD Changes the default device and/or UFD for the current task. (This D switch does not change protection privileges.) To eliminate these> defaults, specify /DF without a device or UFD specification.2 DE DELETE infile(s)/DE[/LD] eF Deletes the specified files. The /LD subswitch lists the files thatF PIP deletes. The version number must be explicit or a wildcard (*).2 EOFt( END-OF-FILE infile(s)/EOF[:block:byte] iG Specifies the end-of-file pointers for a file. If the block and byteI values are not specified, the end-of-file pointers are moved to the endt of the allocated area.2 EN" ENTER outfile=infile(s)/EN[/NV] lH Enters a synonym for a file in a directory with an option to force theG version number of the file being entered into the directory to be onet. greater than the latest version of the file. r% The parameters that PIP allows are:  tJ outfile - filename, type, or version can be explicit, wild (*), orC null; wild and null fields default to the correspondingi1 fields in the input file specification t8 infile - filename, type, and version default to *.*;* l /NV - see AID PIP COPY a 2 EXCLUDEw FILE EXCLUSION filespec/EX s? Excludes one file specification's worth of files during file tJ searches. Any field in the file specification can be excluded. However,B the version number must be explicit and cannot be ;0 or ;-1. ToE eliminate file exclusion, specify /EX without a file specification.f t2 FI6 FILE IDENTITY outfile=/FI:filenumber:sequencenumber f> Accesses a file by its file identification number (file-ID).2 FO FILE OWNERSHIP F The /FO subswitch allows the specification of the output file owner.A For more information on using /FO, type AID PIP COPY or AID PIPe2 , where is /AP, PR, UF, or /UP.2 FR FREE [ddnn:]/FR sE Displays the amount of available space on the specified device, theiF largest block of contiguous space available, the number of free fileL headers, and the number of file headers used. SY0: is the default device.2 FU #LI2 ID IDENTIFICATION /ID L Identifies the version of PIP being used and if PIP is linked to ANSI FCS.2 LI' LIST listfile=infile(s)/LI/subswitchs D Lists one or more directories with an option to specify directory  listing formats. % The parameters that PIP allows are:a n: outfile - listing file specification; defaults to TI: c infile(s) - default is *.*;*t n6 /LI - specifies limited report display format r$ subswitches - one of the following: U. /BR (or /LI/BR) - brief display format s5 /FU[:n] (or /LI/FU[:n]) - full report displayA$ format; n is the decimal number' of characters per line, by defaultr the device buffer sizet p6 /TB (or /LI/TB) - total blocks display format2 LD LIST DELETED FILES oJ The /LD subswitch is used with the /DE or /PU switch to list the deleted@ files. For more information, type AID PIP /DE or AID PIP /PU.2 ME4 MERGE (CONCATENATE) outfile=infiles/ME/subswitches F Creates one file by concatenating two or more files. Definiti00+~y~z~*on of D fields and subswitches are the same as for the Copy command (type AID PIP COPY).2 NM! NO MESSAGE infile(s)/switch/NM  fH Suppresses certain PIP error messages, for example the message NO SUCHD FILE(S). The switches that can be used with the No Message switch are: h /LI to list a directory /DE to delete file(s)" /SD to selectively delete file(s) /PU to purge filesE /UN to unlock locked filesh - and any subswitches of the above switches.m i2 PR PROTECTION  H Alters file protection for the specified file. There are two formats, symbolic and numeric:S E$ Symbolic: infile/PR:symbol(s)[/FO] c( Numeric: infile/PR:octalvalue(s)[/FO] sD File name and type must be explicitly specified. Type AID PIP /AP, for more information on the /FO subswitch. oD Symbolic protection codes assign privilege by their presence. The3 default privileges for each group are as follows: a System = /SY:RWED  Owner = /OW:RWEDT Group = /GR:RWE World = /WO:R= Type AID PIP PR NUMERIC for information on the numeric form: 3 NUMERIC: bE Numeric protection denies privilege by setting bits in a protectionmE status word. Add selected octal values from the following list to i deny privilege:F u OCTAL CODE BIT p SYSTEM R 1 0 W 2 1b E 4 2n D 10 3 OWNER R 20 4 W 40 5 E 100 6 D 200 7  GROUP R 400 8  W 1000 9 E 2000 10  D 4000 11/ WORLD R 10000 12 W 20000 13 E 40000 14 D 100000 15 2 PU PURGE infile(s)/PU[:n][/LD] uH Deletes a specified range of versions of a file (but never deletes theE latest version). Specification of a file version is not necessary.y1 Wildcards are valid for the file name and type.  B When you specify :n, PIP deletes all but the n latest contiguousA versions of a file. Without :n, PIP deletes all but the latest  version of the file. 03 The /LD subswitch lists all of the deleted files. 2 RM REMOVE infile(s)/RM4 B Removes an entry from a directory file (the opposite of /ENTER).2 RE" RENAME outfile=infile(s)/RE[/NV] tG Changes the name of a file with an option to force the version numbersH of outfile to be one greater than the latest version of the file usingE the /NV subswitch. The output device must be the same as the inpute# device, explicitly or by default.l s% The parameters that PIP allows are:f .= outfile - wildcard or null field assumes corresponding fieldM from infile( 49 infile - null filename.type;version defaults to *.*;*e E< /NV - type AID PIP COPY for more information on the New Version subswitcht o2 RW! REWIND outfile[/RW]=infile[/RW]o iD With outfile, causes the specified tape unit to erase its residentB tape. With infile, causes the specified tape unit to rewind its. resident tape before opening the input file.2 SD SELECTIVE DELETE infile(s)/SDt e@ Prompts for user response before deleting the specified files. lH The version number must be explicit or wild (*). PIP prompts you withF a candidate file from the class specified in the command line. YourD response choices are the letters Y, N, G, or Q, followed by eitherC a carriage return () or a control-Z (CTRL/Z). The following J table describes the effect of each combination of letter and terminator. p LETTER TERMINATOR OPERATION ------ ---------- ---------9 Y Delete this file and continue in this modeh p8 Y CTRL/Z Delete this file and exit from PIP w9 N Save this file and continue in this mode  s2 N CTRL/Z Save this file and exit from PIP c: Q Save this file and return to command mode a2 Q CTRL/Z Save this file and exit from PIP n< G Delete this and all remaining candidates - ' return to PIP command mode when doneR E= G CTRL/Z Delete this and all re003u|mx|Oxssmaining candidates - h1 list deleted files and exit from PIP when doneR2 SR SHARED READING infile(s)/SRr PB Allows shared reading of a file that has already been opened for writing.2 SB, SPAN BLOCKS outdsk:outfile/SB=inmag:infile G Allows outfile records to span blocks when copying from ANSI magnetic A tapes to Files-11 devices. Spanning blocks is the default PIPa operation.2 SPOOLa SPOOL infile(s)/SP[:n]m dC Specifies a list of files to be printed, where n is the number of E copies. /SP applies only if you have the print spooler task or theR) Queue Manager installed in your system.o sJ File identification must be explicit, that is, filename.filetype;version must all be specified. 2 SUPERSEDEn% SUPERSEDE FILE outfile/SU=infile(s)p bD Specifies that the output file be superseded by the input file(s).I The output file will have the same file name, type, and version number,l$ but will have a different file-ID. i; The output file identification must be explicit, that is,a. filename.type;version must all be specified.2 TB #LI2 TODAYe #TD2 TD TODAY DEFAULT /TD iC Restricts file searches to files created on the current date. TonC eliminate the restriction, use the Default Date switch (/DD:*:*).= 2 TRUNCATE TRUNCATE infile(s)/TRo uB Truncates the specified files to their current end-of-file mark,2 releasing unused storage for use by other files.2 UF8 USER FILE DIRECTORY ENTRY outfile(s)/UF[/FO]=infile(s) i? Creates a User File Directory entry on a volume. To transferaA multiple infile UICs, specify the UIC in outfile as [*,*]. For 9 more information on the /FO subswitch, see AID PIP /AP. 2 UN UNLOCK infile(s)/UNt hH Unlocks a file that was locked as a result of being closed improperly.2 UP' UPDATE FILE outfile=infile(s)/UP[/FO]e iD Opens an existing file (infile) and writes it, from the beginning, into outfile.e % The parameters that PIP allows are:l )' outfile - must be explicitly specifiedF i' infile - null fields default to *.*;* t; /FO - see AID PIP /AP for more information on the File Ownership subswitch  A infile(s) replaces contents of outfile on the volume specified.n. The file-ID of the output file is preserved. 2 D The use of angle brackets ("<" and ">") means that the appropriateC value or string is to be substituted at that point in the exampleo: command or that the specified punctuation is to be used.5 For example, if the description of a command reads:- l "Type AID PIP " : then the user is expected to type a command of the form: AID PIP /LI uE where "/LI" is one of the legal switches for PIP. Type the command:e i AID PIP i. to obtain a full list of the legal switches. 2 WILDCARDSg WILDCARDS"G PIP also allows wildcards in file specifications to take the place oftC explicit specifications. The wildcard characters are as follows:u u. * - Match one or more alphanumeric characters t- % - Match exactly one alphanumeric characterw hD Wildcard characters only have meaning in the filename and filetypeG fields of the file specification. You cannot use wildcard charactersyD when a wildcard or null field would mean to default the field fromJ the input file specification. You can use wildcards with date switches. f Examples:t sK *A.TMP - Match any file name that ends in A., such as A.TMP or CDA.TMPr sD *A*.TMP - Match any file name that contains an A anywhere in the3 file name, such as A.TMP, AB.TMP, or CDA.TMPi aG %A.TMP - Match any file names that have exactly two characters and ! end with A, such as BA.TMP e wildcard charactersyD when a wildcard or null field would mean to default the field fromJ the input file specification. You can use wildcards with date switches. f Examples:t sK *A.TMP - Match any file name that ends in A., such as A.TMP or CDA.TMPr sD *A*.TMP - Match any file name that contains an A anywh00;B~y~z~*Command syntax errorIllegal switchToo many command switches - ambiguousOnly [*,*] is legal as destination UICIllegal commandIllegal "*" copy to same device and directoryBad use of wild cards/characters in destination file nameExplicit output file name requiredAllocation failure - no contiguous spaceAllocation failure - no space availableAllocation failure on output fileI/O error on input fileI/O error on output fileIllegal use of wild card version or latest versionFailed to create output UFDInput files have conflicting attributesOpen failure on input fileOpen failure on output fileClose failure on input fileClose failure on output fileFailed to detach output deviceDevice not mounted or other privilege violationOutput file already exists - not supersededFailed to mark file for deleteFile is lostVersion must be explicit or "*"Error from parseFailed to delete fileFailed to attach terminalIllegal response - try againCannot exclude *.*;*Cannot find directory fileFailed to attach output deviceFailed to get time parametersNot a directory deviceFailed to write attributesFailed to read attributesFile not lockedFailed to enter new file nameFailed to restore original directory entry - file is lostCannot rename from one device to anotherFailed to spool file for printingCannot spool by file IDFailed to open storage bitmap fileFailed to open index fileFailed to find file(s)Cannot find file(s)No such file(s)Failed to remove directory entryDirectory write protectedNot enough buffer space availableFailed to truncate fileCannot truncate this file typeIllegal EOF valueCannot find file(s)No such file(s)Bad parameters Invalid function code Device not ready Parity error on device Hardware option not present Illegal user buffer Device not attached Device already attached 00Cu|mx|OxssDevice not attachable End of file detected End of volume detected Write attempted to locked unit Data overrun Send/receive failure Request terminated Privilege violation Sharable resource in use Illegal overlay request Odd byte count (or virtual address) Logical block number too large Invalid udc module # Udc connect error Caller's nodes exhausted Device full Index file full No such file Locked from write access File header full Accessed for write File header checksum failure Attribute control list format error File processor device read error File processor device write error File already accessed on lun File id, file number check File id, sequence number check No file accessed on lun File was not properly closed Open - no buffer space available for file Illegal record size File exceeds space allocated, no blocks Illegal operation on file descriptor block Bad record type Illegal record access bits set Illegal record attributes bits set Illegal record number - too large Multiple block read/write - not implemented yet Rename - 2 different devices Rename - new file name already in use Bad directory file Can't rename old file system Bad directory syntax File already open Bad file name Bad device name Bad block on device Enter - duplicate entry in directory Not enough stack space (fcs or fcp) Fatal hardware error on device File id was not specified Illegal sequential operation End of tape detected Bad version number Bad file header Device off line Block check or CRC error No AST specified in connect No such node Path lost to partner Bad logical buffer Too many outstanding messages No dynamic space available 00KB~y~z~*Connection rejected Timeout on request File expiration date not reached Bad tape format Not ansi 'd' format byte count Not a network lun Task not linked to specified ics/icr interrupts Specified task not installed Device offline when offline request was issued Insufficient dynamic storage Specified task not installed Un-assigned lun Handler task not resident Task not active Directive inconsistent with task state 00Su|mx|Oxss Issuing task not checkpointable 00[_a~z~* Directive issued/not issued from ast Lun locked in use Invalid device or unit Invalid time parameters Invalid priority ( .gt. 250.) Invalid lun Invalid event ( .gt. 64.) Part of DPB out of user's space DIC or DPB size invalid Invalid device or unit Invalid time parameters Invalid priority ( .gt. 250.) Invalid lun 1 QUXn9 ...QUX, for QUeue Extended, reports on entries in thev9 spool queues. It has options which enable it to listeA expected print time and pages and also give expanded listings 2 of the files contained in concatenated output.  command format - e MCR>QUX [/switches]  = /TI[:filespec] - List the print time and pages for files 7 queued for printing. If filespec is used, only C list time to print specified file, not whole que.t n3 /EC - Expand concatenated entries. Individuali6 entries in a concatenated list will be listed. s4 /OW - List only those files associated with the: current users default UIC. Equivalent to QUE /LI. .5 /PD - Print deferred. This switch will list thew, files in the 'print deferred' queue.he print time and pages for files 7 queued for printing. If filespec is used, only C list time to print specified file, not whole que.t1 RCV; Task to recover a file locked as a result of task abortion calling sequence  MCR>RCV Filename[/SWitch] H The normal REC[over] command will only unlock a file that was lockedH due to abnornal termination. After use, some files may end up 0 length< due to the end of file indicators not being properly reset. H RCV will unlock the file (if locked,) unless another task has write ac-H cess. It will then scan the file and rewrite file attributes to reflect- the actual size of the file (rather than 0).r  RCV has two legal switches:* /LA:NNN Set number of records to be NNN0 /AD:NNN Change number of records by NNN (+/-) 0 NNN must be a legal single-precision decimal% number (between -32767 and 32767)o H For fixed length record files, this switch lets one override the result@ of the recovery and explicitly determine the number of records.other task has write ac-H cess. It will then scan the file and rewrite file attributes to reflect- the actual size of 00cu|mx|Oxss1 REI4 REI - File Reincarnation Utility  L REI can recover deleted files as well as files from a disk with a corruptedN index file. The disk can be mounted or dis-mounted. The program allows you toL specify a UIC and filespec on the command line, including wildcards. It canK recover deleted or undeleted files. It prompts you for every file and asksE you where you want to put the recovered one. A separate disk for the! recovered file, is recommended.   Usage: >REI  REI>filespec  FM REI will ignore parity and bad block errors on the input file. It will print N out a warning message to warn you that the output file may have some bad data in it. : For additional help, type AID REI XXXXXX where XXXXXX isO INPUT - Input filespec interpretation OUTPUT - Output filespecs & messages B ERRORS - Error messages EXAMPLE - Output example o2 INPUTa REI input:h K The input filespec must at least be a device specification. If this is thelJ case then every file on the disk (including INDEXF.SYS, 000000.DIR, etc.)H will match. This is therefore equivalent to ddn:[*,*]*.*;*. If a UIC isN specified, then only files whose OWNING UIC match will be selected. Note thatI this may not necessarily be the same as the directory that contained theuI file. The file may have been renamed to that directory or copied to thatLN directory while under a different UIC. The UIC specification may contain wildJ cards. If no file name is given, the default is ddn:[uic]*.*;*. If a fileH name is specified, it may have wild cards. If no extension is given, itN defaults to "*". Also if no version number is specified, it defaults to "*".  s2 OUTPUT REI output:L When a file that matches the input filespec is found, REI will print a lineJ containing the file name, type, version number, file ID, number of blocksK used and allocated to the file, creation date and time, owning UIC and theo= logical block number of the file header. It will then print:l [ Enter option or ? > n eL At this point, CTRL-Z will exit the program, carriage return will cause REIK to skip the file just found and search for the next file that matches. A ?L will display a list of the options. If a filespec is entered, the file just+ found will be copied to the new filespec. t , 2 EXAMPLEm REI example:  c >REI  REI>VD:[176,107]REI.*;1 oE REI.COR;1 (243,23) 5./5. 11-FEB-83 09:51:06 [176,107] <0,24243>  Enter option or ? > lF REI.VGN;1 (625,3) 44./44. 10-FEB-83 16:25:52 [176,107] <0,24625> $ Enter option or ? >VD4:REI.SAV  Enter option or ? > fF REI.TSK;1 (652,5) 98./97. 11-FEB-83 10:16:40 [176,107] <0,24652>  Enter option or ? > .G REI.TSK;1 (0,11) 104./103. 10-FEB-83 20:38:43 [176,107] <0,24731> w Enter option or ? > m/ REI - Specified input filename not found. I REI>^Z  LIn this example, the first file matched was REI.COR;1. This was not the fileIwe were interested in so carriage return was entered. The second file was6JREI.VGN. We did want to copy this file so a file specification was enteredIand the file was copied to VD4:[176,107] with a new name of REI.SAV. Then2Jreturn was entered to look for the next matching file. Note that there areItwo REI.TSK;1's but the second one has a file number of 0 in its file ID.iJThis indicates that it is a deleted file. When REI has searched the entireJdisk and finds no more files that match, it will print the last message in/the example and prompt for another input line. l 2 ERRors . 1. Syntax error. tH The command line contained more than one filespec, an equal B sign or the output filespec was syntactically incorrect.  o* 2. Syntax error in input file spec. H The input filespec did not contain a device specification or ( was not syntactically correct.  & 3. Input device not assignable. H The ALUN$ (assign lun) failed for the input dev00koa~z~*ice specified. , It was probably an invalid device.  l+ 4. Syntax error in output file spec. < The output filespec was not syntactically correct.  1 5. Error reading input device: FCS (-nn). cH A read error occurred when reading the file to be recovered. & (-nn) is the FCS error code.  e- 6. Specified input filename not found. cH The input device either did not contain any files which H matched the input filespec or contains no more after the last  one found.  i5 7. File has extension file header: truncated. H REI will not handle multi-header files, it will only copy the 9 portion of the file mapped by the first header.  o6 8. File has unsupported retrieval pointer type. H REI will only handle the usual ODS-1 retrieval pointer format, > 1 byte for block count and 3 bytes for block number.  n 9. Bad block in file. H REI encountered a read error on the input file. This is a H warning to indicate that the output file may have bad data in it. l o3 10. Error opening output file: errtyp (-nn). H REI encountered an error when it tried to open the output H file. "errtyp" will be FCS or DIR depending on the type of 1 error and (-nn) will be the error code.  1: 11. Error writing output file: %I (-nn) : aborted. H REI encountered an error while writing the output file. H "errtyp" will be FCS or DIR depending on the type of error and ' (-nn) will be the error code. l o3 10. Error opening output file: errtyp (-nn). H REI encountered an error when it tried to open the output H file. "errtyp" will be FCS or DIR depending on the type of 1 error and (-nn) will be the error code.  1: 11. Error writing output file: %I (-nn) : aborted. H REI encountered an error while writing the1 RNOL9 RNO OUTFILE/SW=INFILE input defaults to RUNOFF.RNO " output defaults to RUNOFF.DOC5 /-SP ----- Inhibit spooling of output file , /SP:XXn -- Spool to device "XXn:" = /CO:n ---- Make n copies (/SP:XXn switch required) > /FO:n ---- Set forms type (/SP:XXn switch required) 1 /UC ------ Forces ALL uppercase output = /FF ------ Force Form-feeds (instead of multi-LFs) A /WA ------ Wait for CR input at beginning of each page N6 /PA:L:H -- Output only indicated PAGE range 9 /CH:L:H -- Output only indicated CHAPTER range -8 /UL:B ---- Underline with a spacing-backspace < /UL:C ---- Underline with a non-spacing-backspace 2 /UL:L ---- Underline via line overprint ; /UL:N ---- Underlining suppressed (default case) -@ /LS ------ Allow CENTRONICS wide characters on output > /-HY ----- Disable HYPHENATION (Default is ENABLED) 6 /SC ------ Enable DIABLO special characters  u0 type AID RNO CHAR to list special characters* type AID RNO COMMANDS to list commands2 CHAR4 SPECIAL CHARACTERS  UK If these characters appear in the text, each must be preceded by iA the underscore character (itself a special character).  f7 ^ shift character for upper case c7 \ shift character for lower case A: < flag character for upper case (1) / # quoted space character > = flag character to disable hyphen. (2) # & underscore 0 _ quote special character 5 @ special character output (3) e2 { start printing in red (3) 1 } stop printing in red (3)  f ---------- aC (1) Only becomes special if FLAGS CAPITALIZE is engaged. B (2) Only becomes special if FLAG00svx~x|OxssS HYPHENATE is engaged. C (3) Only becomes special if the "/SC" switch is engaged. a r 2 COMMANDS@ APPENDIX [AX] XXXXXXXX LOWER CASE [LC] SUBPAGE [SB]E AUTOPARAGRAPH [AP] NO FLAGS XXXXXXX SUBTITLE [ST] XXXrJ BLANK [B] n NO HEADER [NHD] TAB STOPS [TS] N ... NE BREAK [BR] NO PERIOD [NP] TEST PAGE [TP] [N]-6 CENTER [CN] [C] n NOAUTOPARAGRAPH [NAP] C CHAPTER [CH] XXXXXXXX NOFILL [NF] TITLE ttt...tttTC COMMENT [COM] [;] xxxxxxxx NOJUSTIFY [NJ] UPPER CASE [UC]hE DATE [DT] [D] xxxxxxxxx NONUMBER [NNM] WIDECENTER [WC] NAF END NOTE [EN] NOTE [NT] WIDEINDIENT [WD] N2 END SUBPAGE [ES] NUMBER APPENDIX X 1 FIGURE [FG] n NUMBER CHAPTER N , FILL [F] NUMBER [NM] * FLAGS [FL] XXXXXX PAGE [PG] @ FOOTNOTE [FN] n PAPER SIZE [PAGE SIZE] [PS] N,M 1 HEADER [HD](UPPER,MIXED,LOWER)PARAGRAPH [PP] N C, HEADERLEVEL [HL] N XXXXXXXXX PERIOD [PR] 1 INDENT [ID] [I] n PRINT INDEX [PX] R4 INDEX [X] tttt ... tttt RIGHT HEADER [RH] N 4 JUSTIFY [J] RIGHT MARGIN [RM] N 3 LEFT HEADER [LH] n SET SUBPAGE [SS] N U0 LEFT MARGIN [LM] n SKIP [S] [SL] N / LIST n SPACING [LS] N . LISTELEMENT [LE] XXXXXXXXX STANDARD [SD] FN] n PAPER SIZE [PAGE SIZE] [PS] N,M 1 HEADER [HD](UPPER,MIXED,1 RNPL RNP is a pre-proccessor for runoff files which allows for the in- L teractive entry of variable data into the body of standard forms @ (letters, reports, etc.) for later processing by RNO.  , MCR>RNP DDN:FILE.EXT=DDN:FILE.EXT  ) Input defaults to: SY0:DOC.RNP- Output defaults to: SY0:RNORNP.RNO E Input will be transferred to the output file until a line starting? with one of the following special characters is encountered.N 2 # Mark this position in output.  hO ? Accept input from the terminal, until EOF (^Z) is typed. IffK immediate EOF is seen, rewind output file to last mark.R ; " Output rest of line to terminal (as a prompt.)  F @ Insert input from file specified (on rest of line)G into output file. (Four indirect levels available.)e arting? with one of the following special characters is encount1 ROLlin> A Program to do ROLLINS from/to DK, DP or DR to MM or MT tape E Magtapes involved should be mounted as foreign volumns Any format ofF disks can be copied/written since copies are strictly block by block.  Calling proceedure: D MCR>ROL MT0:xxxxxx=DK2:/sw xxxxxxx is label for file name on tape& currently name must be 6 letters 0 Legal devices are DK0->3 DP0->2 DR0->3 MT0 MM0 @ Switches must be at end of command line. Current switches are: > /VE(rify) Check tranfer (to disk) by re-reading buffer back- from output volume. (No compare is done.)  oA /OV(erwrite) Overwrite any data on output tape, (i.e. do notn6 follow normal proceedure of searching for end of6 volume before starting write.) Used to write first6 save set on a tape. Also done automatically if1 copying a large disk to the streamer tape MM.es are DK0->3 DP0->2 DR0->3 MT0 MM0 @ Switches must be at end of command line. Current switches are: > /VE(rify) Check trFIE.UPNinsufficient dynamic memoryFIE.NSTspecified task is not installedFIE.PTSpartition too small for taskFIE.UNSinsufficient dynamic storage for sendFIE.ULNunassigned Logical Unit Number (LUN)FIE.HWRdevice driver not residentEIE.ACTtask is not activeFIE.ITSdirective inconsistent with task state00oa~z~*WIE.FIXtask already fixed/unfixedEIE.CKPissuing task not checkpointableEIE.TCHtask is checkpointableFIE.WLKwrite attempted to locked unitFIE.DAOdata overrunFIE.SREsend/receive failureFIE.RBSreceive buffer is too smallEIE.PRIprivilege violationFIE.RSUsharable resource in useFIE.NSWno swap space availableFIE.ILVillegal vector speicifiedFIE.BLKLogical Block Number (LBN) too largeFIE.MODinvalid UDC module numberFIE.CONUDC connect errorFIE.NODsystem dynamic memoryFIE.DFUdevice is fullFIE.IFUindex file is fullEIE.NSFno such fileEIE.LCKlocked from read/write accessFIE.HFUfile header is fullEIE.WACaccessed for writeFIE.CKSfile header checksum errorFIE.WATattribute control list format errorFIE.RERfile processor device read errorFIE.WERfile processor device write errorEIE.ALNfile is already accessed on LUNFIE.SNCfile ID, file number checkFIE.SQCfile ID, sequence number checkFIE.NLNno file accessed on LUNEIE.CLOfile was not properly closedFIE.NBFno buffer space available for fileFIE.RBGillegal record sizeFIE.NBKfile exceeds space allocated, no blocksFIE.ILLillegal operation of file descriptorFIE.BTPbad record typeFIE.RACillegal record access bits setFIE.RATillegal record attribute bits setFIE.RCNillegal record number-too largeFIE.ICEinternal consistency errorWIE.2DVrename-2 different devicesWIE.FEXrename-new file name is already in useEIE.BDRbad directory fileFIE.RNMcannot rename old file systemEIE.BDIbad directory syntaxEIE.FOPfile is already openEIE.BNMbad file nameEIE.BDVbad device nameFIE.BBEbad block on deviceWIE.DUPenter-duplicate entry in directoryFIE.STKnot enough stack space (FCS or FCP)FIE.FHEfatal hardware error on deviceFIE.NFIfile ID was not specifiedFIE.ISQillegal sequential operationWIE.EOTend-of-tape detectedEIE.BVRbad version numberFIE.BHDbad file headerFIE.OFLdevice is offlineFIE.BCCblock check, CRC, or framing errorWIE.ONLdevice is onlineEIE.NNNno such nodeFIE.NFWpath lost to partnerFIE.BLBbad logical bufferEIE.TMMtoo many outstanding messagesFIE.NDRno dynamic space available00vx~x|OxssFIE.CNRconnect rejectedWIE.TMOtimeout on requestEIE.EXPfile expiration date not reachedFIE.BTFbad tape formatFIE.NNCnot ANSI "D" format byte countFIE.NNLnot a network LUNFIE.NLKtask not linked to specified ICR/ICRFIE.ASTdirective issued/not issued from ASTFIE.MAPillegal mapping specifiedWIE.IESinvalid escape sequenceFIE.IOPwindow has I/O in progressFIE.ALGalignment errorFIE.WOVaddress window allocation overflowFIE.NVRinvalid region IDFIE.NVWinvalid address window IDEIE.ITPinvalid TI parameterFIE.IBSinvalid send buffer size (.GT. 255.)FIE.LNLLUN locked in useFIE.IUIinvalid User Identification Code (UIC)FIE.IDUinvalid device and/or unitFIE.ITIinvalid time parametersFIE.PNSpartition/region not in systemEIE.IPRinvalid priority (.GT. 250.)FIE.ILUinvalid Logical Unit Number (LUN)FIE.IEFinvalid event flag (.GT. 64.)FIE.ADPpart of DPB is out of user's spaceFIE.SDPDIC or DPB size is invalidFIE.BADbad parametersFIE.IFCinvalid function codeEIE.DNRdevice is not readyFIE.VERparity error on deviceFIE.ONPhardware option not presentFIE.SPCillegal user bufferEIE.DNAdevice is not attachedWIE.DAAdevice is already attached00oa~z~*FIE.DUNdevice is not attachableWIE.EOFend-of-file detectedWIE.EOVend-of-volume detectedFIE.WLKwrite attempted to locked unitFIE.DAOdata overrunFIE.SREsend/receive failureFIE.ABOrequest terminatedEIE.PRIprivilege violationFIE.RSUsharable resource in useFIE.OVRillegal overlay requestFIE.BYTodd byte count (or virtual address)FIE.BLKLogical Block Number (LBN) too largeFIE.MODinvalid UDC module numberFIE.CONUDC connect errorFIE.NODsystem dynamic memoryFIE.DFUdevice is fullFIE.IFUindex file is fullEIE.NSFno such fileEIE.LCKlocked from read/write accessFIE.HFUfile header is fullEIE.WACaccessed for writeFIE.CKSfile header checksum errorFIE.WATattribute control list format errorFIE.RERfile processor device read errorFIE.WERfile processor device write errorEIE.ALNfile is already accessed on LUNFIE.SNCfile ID, file number checkFIE.SQCfile ID, sequence number checkFIE.NLNno file accessed on LUNEIE.CLOfile was not properly closedFIE.NBFno buffer space available for fileFIE.RBGillegal record sizeFIE.NBKfile exceeds space allocated, no blocksFIE.ILLillegal operation of file descriptorFIE.BTPbad record typeFIE.RACillegal record access bits setFIE.RATillegal record attribute bits setFIE.RCNillegal record number-too largeFIE.ICEinternal consistency errorWIE.2DVrename-2 different devicesWIE.FEXrename-new file name is already in useEIE.BDRbad directory fileFIE.RNMcannot rename old file systemEIE.BDIbad directory syntaxEIE.FOPfile is already openEIE.BNMbad file nameEIE.BDVbad device nameFIE.BBEbad block on deviceWIE.DUPenter-duplicate entry in directoryFIE.STKnot enough stack space (FCS or FCP)FIE.FHEfatal hardware error on deviceFIE.NFIfile ID was not specifiedFIE.ISQillegal sequential operationWIE.EOTend-of-tape detectedEIE.BVRbad version numberFIE.BHDbad file headerFIE.OFLdevice is offlineFIE.BCCblock check, CRC, or framing errorWIE.ONLdevice is onlineEIE.NNNno such nodeFIE.NFWpath lost to partnerFIE.BLBbad logical bufferEIE.TMMtoo many outstanding messagesFIE.NDRno dynamic space available00vx~x|OxssFIE.CNRconnect rejectedWIE.TMOtimeout on requestEIE.EXPfile expiration date not reachedFIE.BTFbad tape formatFIE.NNCnot ANSI "D" format byte countFIE.NNLnot a network LUNFIE.NLKtask not linked to specified ICR/ICRFIE.NSTspecified task is not installedWIE.FLNdevice is already offlineWIE.IESinvalid escape sequenceWIE.PESpartial escape sequenceFIE.ALCallocation failureEIE.ULKunlock errorFIE.WCKwrite check failureFIE.NTRtask is not triggeredFIE.REJtransfer rejected by receiving CPUWIE.FLGevent flag already specifiedFIE.DSQdisk quota exceededWIS.PNDoperation is pendingSIS.SUCsuccessful operationWIS.TMOrequest terminated by time outSIS.CCterminated by CTRL/CSIS.EOTterminated by EOTSIS.TABterminated by TABSIS.CRterminated by carriage returnSIS.ESCterminated by escape00a~z~*SIS.ESQterminated by escape sequenceWIE.PESterminated by partial escape sequence 1 ABort ' + ABORT/CLI cli-name terminal-list + ABORT/JOB job-number ABORT[/qualifers]. /TIMESHARING -To kill interactive tasksE /REGISTER_DUMP -To display register contents when task aborted% ABORT/REALTIME task-name [terminal]  -To kill real-time tasks 1 ALlocate/ ALLOCATE[/DEVICE] device-name [locical-name]@ + ALLOCATE/TERMINAL terminal-list cli-name [parameter-list] RUN NOBATCH MAXIMUM_TASKS:n UIC:[uic] 1 APpend: APPEND [(] input_file_list [/qualifiers] [)] output_file! /INDEXED - Input file is INDEXEDu5 /KEY:NUMBER:n - Select records in order given by 'n's* from the INDEXED input file. Defaults to primary key (number 1)% /RELATIVE - Input is a RELATIVE file 3 /SEQUENTIAL - Input file is SEQUENTIAL (defaulted)T V1 ASsign* ASSIGN[/TASK:task-name] device-name lun4 + ASSIGN/REDIRECT source-device target-device 1 BAsicB; BASIC -- Invoke the installation default version of BASIC P- BASIC/B11 -- Invoke BASIC-11 ( Interpreter )u* BASIC/BP2 -- Invoke BASIC+2 ( Compiler ) 1 BOotstrapl: + BOOTSTRAP [filespec] -Bootstraps in the named system i1 CAncel CANCEL task-name [terminal] 6 Cancel the periodic rescheduling of a real-time task p1 COBols COBOL/qualifiers filespecV /OBJECT:filespec[( /NOOBJECT - Do not produce object file( /LIST[:filespec] - Produce listing file /NOLIST ** /SWITCHES:(cobolswitches) 2 Switches /ERR:nr /ACC:nI /HELP# /MAP - Produce data division mapp /CVF - Conventional formatB! /CREF - Produce crossref listingt% /SYM:n - Redefine symbol table spacet /RO - Generate Read-only PSECTs /PLT - Pool literalsa9 /PFM:n - Define max. number of nested PERFORM statementsl /OV - Make PSECTs overlayable* /-ODL - Suppress COBOL generated ODL file* /OBJ - Print object location of all verbs2 /KER:kk - Generate PSECT names starting with 'kk'0 /CSEG:n - Specify max size of proceedural PSECT r 1 COMpareI, COMPARE[/qualifiers] filespec1 filespec2 /OUTPUT[:filespec]n /NOOUTPUT - Give summary only /CHANGE_BARS[:n]Y /NOCOMMENT - Ignore commentsc! /FORM_FEEDS - Consider formfeedss /LINES:no, /NOMULTIPLE_BLANKS - Ignore multiple blanks' /SLIPER - Produce SLIPER style outputS. /NOTRAILING_BLANKS - Compare trailing blanks# /BLANK_LINES - Compare blank linesc 1 CONtinue CONTINUE[/qualifier]; /TIMESHARING - Continue the suspended timesharing taskp$ /REALTIME task-name [terminal]4 - Continue the specified suspended realtime task$ /MESSAGE task-name [terminal]. - Continue the named task, suspended by MO1 COPyA COPY[/qualifier] infile[/filequalifier] outfile[/filequalifier]K, /ALLOCATION:n - Allocate 'n' blocks to file3 /[NO]CONTIGUOUS - Force file to be [non]contiguouse# /OWN - Output UFD owns the copiesp? /REPLACE - Delete existing outfile (must specify file version)T8 /ASCII[:n] - Fixed record length size ( Foreign files )9 /BINARY[:n] - Fixed record 00vx~x|Oxsslength size ( Foreign files )i8 /IMAGE[:n] - Fixed record length size ( Foreign files )$ /BLOCK_SIZE:n - Cassette block size, /VERIFY - Perform check-write for cassette5 /CREATE_DIRECTORY - Create any necessary output UFDsO! /INDEXED - I/p file is INDEXEDi7 /KEY:NUMBER:n - Select records as defined by key 'n'1 /RELATIVE - I/p file has RELATIVE organizatione$ /RT11 - Volume is in RT11 format" /DOS - Volume is in DOS format/ /SEQUENTIAL - File is SEQUENTIAL (Defaulted)-+ /BLOCK_SIZE:n - Magnetic tape block size G1 CORali CORAL/qualifier filespec+... /LIST:listfile /NOLISTs /OBJECT:objfile/ /NOOBJECTf /SWITCHES:(/sw ... ... ) 1 CReate6 + CREATE/SWAPFILE[:n] device-name parameter-list SIZE:nN [DEDICATED_VOLUME]- [BAD_BLOCKS]d+ CREATE [/qualifier] filespec [/qualifier]a) /DOLLARS - Data contains '$' in column 1e /OWN - UFD is the file owner /ALLOCATION:n /REPLACE/' /ALLOCATION:n - Make file 'n' blocksd /BUCKET_SIZE:nn% /CONTIGUOUS - Make file contiguousO /FORMAT:parameters FIXED:n CONTROLLED [:n]N VARIABLE [:n]b /INDEXEDO /RELATIVE /SEQUENTIAL /PROTECTION:(codes) ** /KEY:(keydefinition)v " CREATE/NAME filename aliasname 1 CREATE/DIRECTORY [dev-name:][ufd] [/qualifiers]a /ALLOCATE:n[ /PROTECTION:(code)7 (For details of protection codes, see SET PROTECTION)e2 KeyJ CREATE[/qualifier] filespec/KEY:( NUMBER:i POSITION:j SIZE:k [params] ) [NO]UPDATE [NO]DUPLICATEn 1 DCl/+ DCL - To return to DCL-mode from MCR-modeL 1 DEALlocate DEALLOCATE[/DEVICE] device-name' + DEALLOCATE/TERMINAL terminal-liste 1 DEASsign DEASSIGN[/qualifier] lun> /KEEP - Inhibit deallocation/dismounting of associated device9 /TASK:taskname -Deassign the lun from the specified taskc 1 DELete + DELETE/SWAPFILE:n% - the specified swapfile is deletedA7 DELETE[/KEEP[:n]] filespec[/filequalifier] ... ... ... /DOS /RT11  DELETE/NAME alias-name 3 - remove the file's alias name from the directoryL DELETE/FILE_ID:m:n device-name6 - file is specified by its file and sequence numbers 1 DIRectoryn< DIRECTORY[/qualifier] filespec[/filequalifier] ... ... ...% /BRIEF - List names and types onlyt2 /FULL - Include owner,date,length and version /SUMMARY - List occupancy only /OUTPUT:outfile $ /PRINT - Send output to printer /DOS /RT11i " DIRECTORY/qualifier device-name% /FREE - show free space on device= /FILE_ID:m:n - file specified by file and sequence numberI 1 DISAblec DISABLE task-namep9 - Prohibit the execution of the specified installed taskn 1 DISMount. DISMOUNT[/qualifier] dev-name [volume-label]$ /KEEP - Do not deallocate device0 /GLOBAL - Dismount specified 'global' volume8 /REALTIME - Dismount volume mounted for REALTIME access 1 DUmp DUMP[/qualifiers] filespec /ASCII - List in ASCII formatR /BYTE - List as bytes" /RADIX_50 - List in Rad-50 format /DECIMAL - List in decimalp /RECORD - List a recorde /BLOCK:(n-m) /HEADER - Include header block5 /NUMBER[:n] - Do not reset linenumbers, start at 'n'n /OUTPUT:outfile /NOOUTPUT7 /START - give starting block number and fragmentationa* /PRINT - Send output to printer, not TI: 1 EDit EDIT/EDITOR filespec /EDT filespec A EDIT/SLIPER/qualifier filespec /OUTPUT[:outfile]S /LIST[:listfile] /AUDIT [:(parameters)] POSITION:mL SIZE:n5 /NOAUDIT /BLANK /DOUBLEO 1 ENable ENABLE task-name 3 - Permit the execution of the named installed task  1 $EOD $EOD7 - Used to terminate data for a CREATE/DOLLARS command.g 1 $EOJ $EOJB Used to terminate a batch session and release allocated devices. 1 EXamine ! + EXAMINE[/qualifier] address /KERNEL /PHYSICALI /PARTITION:partition-name + /TASK:task-name [/TERMINAL:terminal-name]  ( To examine a00a~z~*nd modify a memory address 1 FIx  FIX task-name [terminal]* - Fix the task in its installed partition 1 FOrtrani FORTRAN/qualifiers filespecs /FOR /F4PE /LIST[:listfile]t /NOLISTA /OBJECT[:objectfile]J /NOOBJECTs /SWITCHES:(/switchlist) eP FOR switches -- /CD:xxx/DE/DI/EX/ID/I4/LI:n/LO/NOOP:xxx/OP:xxx/RO/SN/SP/VA/WR3 F4P switches -- /CK/CO:n/DE/ID/I4/LA/LI:n/TR:xxx  S1 Goto GOTO label? Directs PDS to skip forward through subsequent commands until $ the required label is encountered. F% Labels have the format: [$]string:A where 'string' is an alphanumeric string having a letter as its  initial character. 1 Help1 This command is used to obtain more information 3 about a particular command. The general form is:O  HELP [command] [parameter]I n( HELP - lists all possible commands.F HELP command - lists syntax of the command. sci only variations are" indicated by a + beside them.O HELP command parameter - lists further information on a particular variation s; of the command. Only valid when indicated by ** besideu" parameter in command listing. " for example, HELP SET [TERMINAL] a 1 INItialize6 INITIALIZE[/qualifiers] device-name [volume-label] /DOS /RT11[:n]H /NUMBER:np /ACCESSED:n  /BAD:[AUTOMATIC!MANUAL]m /DENSITY:n /EXTENSION:n /FILE_PROTECTION:(code)t /HEADERS:n /INDEX:optiont BEGINNINGa MIDDLE ENDh n (a value)a /MAXIMUM_FILE:n  /OWNER:[uic] /PROTECTION:(code) /WINDOW:n  r2 ( for details of 'code' see 'HELP PROTECT CODE' ) 1 INStall INSTALL[/qualifiers] file-spec + /CLI:cli-name[/qualifier] /ATTRIBUTE:ALL!n  /PRIVILEGE:ALL!n  /TASK[:name] - DefaultE /COMMON[:name] - Common SGA /LIBRARY[:name] - Library SGA /REGION[:name] - PLAS regionC8 /SYSTEM:name - Install a system library task as $$$name8 /PARTITION:name - Install in named partition (task/SGA): /POOL:n - Define upper limit for SCOM pool useage (task)/ /PRIORITY:n - Define execution priority (task)s< /UIC:[uic] - Change task's UIC or SGA owning UIC (task/SGA)3 /INCREASE:n - Extend task's Read/Write area (task)l/ /ACCESS:option - Define non-owner access (SGA)  NA - No access (default) RO - Read only RW - Read/WriteR& (code) -Define access for all groups S 1 $JobD $JOB[/qualifier][/PASSWORD:password] user-name job-ident time-limit5 /DCL - The batch job contains DCL-mode commands 5 /MCR - The batch job contains MCR-mode commandsI n0 user-name - User name of an authorised IAS user, password - 1- to 6-character batch password: job-ident - A 1- to 12-character name to identify the job; time-limit - The maximum time for which the job is to run.e/ This is expressed as an integer number ofR3 minutes and must not exceed 1 day (1440 min). D The PASSWORD qualifer MUST be specified if the job is to run for aG user who has protected his account against unauthorised batch access.- 1 LIBrariann= LIBRARIAN operation[/qualifiers] library-spec [parameters]o ** CREATEr ** DELETE ** COMPRESSe ** EXTRACT ** INSERTt ** LIST1 ** REPLACE2 CReate? LIBRARIAN CREATE[/qualifiers] library-spec [infilespec,.....] /SIZE:n  /EPT:n /MNT:n /NOENTRY_POINTSb /TYPE:MACRO!OBJECT /SELECTt /SQUEEZE; Used to allocate a contiguous library file and initializet the 'Library header' 2 COmpress< LIBRARIAN COMPRESS[/qualifiers] library-spec [newlib-name] /SIZE:n /EPT:nR /MNT:nt9 Used to remove 'DELETE'd modules and reclaim free space2 Delete> LIBRARIAN DELETE[/qualifier] library-spec entry-name[,....] /MODULES /GLOBAL_SYMBOLS 2 ExtractlH LIBRARIAN EXTRACT/OUTPUT:f-s[/qualifier] library-spec module-name-list SELECT SQUEEZEP= Will extract up to eight modules from the names library andn= place them in the named file. The outp00vx~x|Oxssut file will assume - an appropriate file_type if not specified.r2 Insert9 LIBRARIAN INSERT[/qualifier] library-spec infile[,....]  /NOENTRY_POINTSd /SELECTc /SQUEEZE2 List) LIBRARIAN LIST[/qualifier] library-specr /ENTRIES /FULL. /OUTPUT:outfile  /PRINT 2 Replacex; LIBRARIAN REPLACE[/qualifier] library-spec infile[,.....]e /NOENTRY_POINTS /SELECT /SQUEEZE 2 Squeezet; LIBRARIAN SQUEEZE[/qualifiers] library-spec [newlib-name]e /SIZE:n /EPT:n. /MNT:nt9 Used to remove 'DELETE'd modules and reclaim free spacei 1 LINk0 LINK/qualifiers filespec/filequalifier ... ...% /NOABORTABLE - Task is not ABORTableS= /CROSS_REFERENCE - Produce a cross-reference on the map filey/ /NOCHECKPOINTABLE - Task is not checkpointable* /DEBUG[:filespec] - Include debugging aid? /DEFAULT_LIBRARY:library - Use this instead of [1,1]SYSLIB.OLBL& /NODISABLE - Task can not be DISABLED) /EXIT:n - Quit LINKing after 'n' errors- /FIXABLE - Task is FIXable.C /NOFLOATING_POINT - Task does not use the floating point processorcC /NOFLUSH_RECIEVE_QUEUES - Do not flush receive queues on task exitO3 /FULL_SEARCH - Search all co-tree overlay segments ) /NOHEADER - Do not include a task headeryA /LARGE_SYMBOL_TABLE - Use large (but slower access) symbol tablee, /MAP[:mapfile] - Send map to 'mapfile.MAP'8 /MAP:(mapfile/qualifiers) - ... specify type of map ...' /FILES - Give file-by-file breakdown " /FULL - Give all symbols in map) /NARROW - Make map in 72 column formatT3 /NOSHORT - Do not only give a summary of the map/) /NOWIDE - Make map in 72 column formatv! /MULTI_USER - Task is multi-userC% ** /OPTIONS - Make 'options' open < /OVERLAY_DESCRIPTION:odlfile - Use overlay description file5 /POSITION_INDEPENDENT - Task is position independantA2 /PRIVILEGED - Task needs privileged access rights1 /READ_WRITE - Make RO-psects R/W (for debugging)/@ /NORECEIVE - Task is not willing to receive data and references= /RESIDENT_OVERLAYS - Task is to build with resident overlays - /SEQUENTIAL - Link modules in supplied orderO3 /SYMBOLS[:stbfile] - Send symbols to 'stbfile.STB'T' /SYMBOLS:(stbfile/NOUNDEFINED_SYMBOLS)e. - exclude undefined symbols from .STB files? /TASK[:tskfile] - Name task 'tskfile.TSK', not 'firstfile.TSK't /TRACE - Task is TRACEableC /NOWAIT_FOR_NODES - Task does not want automatic waiting for nodes  /CONCATENATED /LIBRARY ! /LIBRARY:(mod1, ... ... ...) , /[NO]MAP - Include this module in the map /SELECT 2 Optionse( ABSPAT - Declare absolute patch values4 ACTFIL - Declare number of simultaneous open files+ ASG - Device assignment to logical unitsSF ATRG - Declare number of attachment descriptor blocks to be created in the task header' BASE - Define lowest virtual address-$ COMMON - Link task with common SGA/ EXTSCT - Declare extension of program section 3 EXTTSK - Extend memory allocation at install timem/ FMTBUF - Extend run-time format string bufferd- GBLDEF - Declare a global symbol definitionP* GBLPAT - Patch relative to global symbol, GBLREF - Declare a global symbol reference$ LIBR - Link task with library SGA' MAXBUF - Extend Fortran record bufferh. ODTV - Declare size of debugging SST vector' PAR - Declare default partition namet* POOL - Declare maximum pool usage count PRI - Declare task's priority? RESAPR - Reserve APRs for use by memory management directivess8 RESCOM - Link task with the SGA from the specified UFD8 RESLIB - Link task with the SGA from the specified UFD STACK - Declare stack limit6 SYMPAT - Patch task image using global symbol values0 TASK - Assign default installed name for task' TOP - Define highest virtual addressr' TSKV - Declare address of SST vectorD UIC - Declare default UIC2 UNITS - Declare maximum number of logical units; VSECT - Declare virtual base address and size of a PSECTy 1 LOAd$ + LOAD device-name volume-label t5 The operators response to a mount request by a userw00a~z~* h1 LOGInm' LOGIN[/qualifiers] user-name passworda- /NONOTICE - Suppress the 'Notice of the Day'b0 /QUIET - Suppress task termination information 1 LOGOut LOGOUT, - Terminates the users time-sharing session 1 MAcros9 MACRO[/qualifiers] filespec[/filequalifier]+... ... ...D /LIST[:file-spec] /CROSS_REFERENCE /NOOBJECT /OBJECT[:objfile] /SWITCHES:(/switch-list)y, /LIBRARY - File is a MACRO library file 1 MCr; MCR [MCR command line] - To enter MCR-mode from DCL-mode2 or to issue an MCR command line from DCL-mode O1 MERgepJ MERGE [/LOG[:logfile]] trans_file [/qualifiers] target_file/qualifier /INDEXED /INDEXEDO /RELATIVE /RELATIVE  /KEY:NUMBER:n /SEQUENTIAL 1 MESsagei" MESSAGE/qualifiers message-text+ + /FORCE - Break through 'nomessages'C* /ACTIVE - Send to all active terminals /ALL - Send to all terminals6 /CLI:cli-name - Send only to terminals on named CLI. /OPERATOR - Send only to Operator (Default)= /TERMINAL:terminal-list - Send to explicit terminal(s) onlyE+ /USER:username - Send only to named user/ 1 MOuntt; MOUNT[/qualifiers] dev-name vol-label-list [logical-name]E8 /ACCESSED:n - 'n' is number of preaccessed directories> /CONTROL_FUNCTIONS - allows logical and positioning functions? /DENSITY:800!1600 - Set magnetic density to 800 or 1600 b.p.i.s /EXTENSION:nn /FILE_PROTECTION:(code) /FOREIGN- /GLOBAL /NOWRITEl7 /NOOPERATOR - Bypass operator if volume is known to bea mounted and up to speed. /OVERRIDE:parameter EXPIRATION_DATEE VOLUME_IDENTIFICATIONn SET_IDENTIFICATION /PROTECTION:(code)] /REALTIME /UNLOCKED /NOSHAREa /DEVICES:nS /PROCESSOR:acp-task6 (For details of protection code, see SET PROTECTION) 1 Noload& + NOLOAD device-name volume-label " To cancel a user's mount request 1 On ON condition DCL-command WARNING ERROR SEVERE_ERRORB - PDS will execute the supplied command when a subsequent commandA or task produces an error having a severity of greater than or  equal the stated condition. 1 PrintI" PRINT[/qualifiers] filespec,..../ /PRIORITY:n - Queue for printing at priority nO /COPIES:n - Produce 'n' copies! /DELETE - Delete after printing 4 /FORMS:n - Queue for printing of forms of type 'n'3 /NOBANNERS - Suppress file identification bannersc; /NOTRANSFER - Do not transfer file to SY: before printingR 1 Queuew QUEUE/qualifier [device-name]9 /ALL - list status of all users queue entries in all orn specified queues 8 /LIST - Display list of users entries on the default4 queue device or on that specified by device-name / QUEUE[/qualifiers] device-name filespec,...nD + /TEST -Specify device on which forms alignment is to be tested /ADD /FORMS:n /COPIES:n /DELETE /NOBANNERSi /NOTRANSFER /PRIORITY:n A QUEUE/REMOVE sequence-number - Remove indicated file from queueu 1 REMove REMOVE[/qualifiers] name! + /CLI - Remove the cli named & /COMMON - Remove the common SGA name' /LIBRARY - Remove the library SGA namer# /REGION - Remove the named regiono) /TASK - Remove the named installed taskU? /NOHEADER - Will remove a task whose header has been corruptedy 1 REName RENAME oldfile newfile 1 RUn/% + RUN/CLI terminal-list [cli-name] + RUN/HANDLER device-name ( RUN[/qualifiers] task-name [terminal]D /DELAY:nnnx - Run after stated delay after optional synchronization /INTERVAL:nnnxL; 'nnn' is a number of hours, minutes, seconds or ticks, $ and x is a time unit: H for hours M for minutes S for seconds and T for ticks.0 /REALTIME - Run as soon as memory is available /NOPROMPT' /MEMORY - Run if memory is availableE> /SYNCHRONIZE:time-unit - Synchronize clock on named time-unit :HOURS :MINUTES :SECONDS :TICKS /SCHEDULE:hh:mm:ssm /UIC:[uic] /PARTITION:partitionr /PRIORITY:n  RUN[/qualifiers] filespec /TI00ǁvx~x|OxssMESHARING /INCREASE:n 1 SAve + SAVE[/qualfiers]  /LOGGED_ON:terminal-list /MOUNTED:device-list /NOEXTENDf /NOINSTALL 1 SEtk SET attribute  + ALLOCATION ticks blockb + NOCONTROLC terminal-list + [DAY]TIME date!time! + DEVICES:device-name WIDTH:n  + FORMS queue forms-type: + MEMORY [NO]CACHE n - 'n' is the group number, 0 or 1? + PARITY n - 'n' is the max number or errors in 1 minuten + [NO]SPOOL device-namee + QUANTUM/BATCH n + /CONSTANT n + /LEVEL:n n + SERVICE/BATCH n + /PROMOTION n + SWITCH_REGISTER VALUE:n + ON:switch-list + OFF:switch-list6 BOOTSTRAP filespec - write the bootblock in filespec DEFAULT [dev-name]:[ufd]e" PASSWORD [/BATCH] oldpass newpassF PRINTING DEFERRED - Accumulate printer output to be printed later= PRINTING [NODEFERRED] - Print accumulated output as one file ' PRIORITY task-name [terminal] prioritye) ** PROTECTION [/OWN] filespec (code) 1 - Alter the protection of the specified files.R/ /OWN changes the file ownership to its UFDI/ QUIET - Suppress task termination information+0 ** TERMINAL - Alter terminal characteristics3 REAL_TIME_CONTROL _ Raise the run priority of PDS  2 Protection- Protection codes have the following format:t  category:access-codet SYSTEM: OWNER:  GROUP:E WORLD:t R - read W - writee E - extend D - delete- For example: (SYS:RWED,OW:RWED,GRO:RE,WOR:) 2 Terminal2 SET TERMINAL[:terminal-list] characteristic_list- The valid (negateable) characteristics are:t F, ALTMODE BACKSPACE BLOCKMODE CARRIAGERETURN& [CR] COMPATIBLE CONTROLCFLUSH [CCF]% DEFAULT DS ECAPESEQUENCE FORMSMODE $ FULLDUPLEX HARDWAREFORMFEED [HFF]& HARDWARETAB [HTAB] [TAB] LOCALCOPY7 [LCKEYBOARD] LOWERCASEINPUT [LCINPUT] LOWERCASEOUTPUTE* [LCOUTPUT] LOWERCASEPRINTER [LCPRINTER]" HOLD KEYBOARD LOWERCASEKEYBOARD' LVF MESSAGES NEWLINE NONSTANDARDTABG* [NSTAB] PRINTER SCOPE SIMULATEFORMFEED( TWOSTOPBITS [TSB] UC0-9 VERTICALFILL [VFILL] PASSALLBITSt ASR33 KSR33 ASR35 VT05  VT50 VT52 VT61 VT100E LA30S LA30P LA36 LA120N LA180S The valued options are:0 SPEED:n 'n' is numeric, 134, 'EXTA' or 'EXTB'7 SPEED:(m:n) 'm' is the keyboard. 'n' is the printer.Y$ READAHEAD:type Type may be one of: NONE DEFERREDPROCESSING [DP]E IMMEDIATEPROCESSING [IP] NAME:typeE* FILL:n Normally 0 - 6 and 7 for a LA30S WIDTH:n Set page width. LENGTH:n Set page length. HANGUP Hang up dialup line.- PARITY:[EVEN!ODD] Set parity type for line. 3 NOPARITY Disable parity generation and checking.A A 1 SHOw SHOW attribute + SCHEDULER + SWAPFILES[:n] + SYSTEM_TIMEST + VOLUMES CLI [cli-name]b CLOCK_QUEUE [DAY]TIME DEFAULT DEVICES[/PUD] [dd[n]] GLOBAL_AREASE IO_QUEUES LUNS task-nameE MEMORY_REQUIRED PARTITIONSp SHAREABLE_GLOBAL_AREAS- STATUSr SWITCH_REGISTERS 1 TASKS[/qualifiers] [task_name] [terminal-list]A /ACTIVE  /BRIEF /MIDDLEY /FULLD /CHECKPOINTABLE /FIXED /INSTALLED /MEMORY_REQUIRED /TIMESHARING 1 SHUtdown + SHUTDOWN number-of-minutes 1 SOrt7 SORT [/qualifiers] filespec[/INDEXED:n][/FORMAT:type]e FIXED:n VARIABLE:n UNKNOWN:n]0 /ALLOCATION:n - Set initial o/p file allocation, /BLOCK_SIZE:n - Used for mag-tape o/p files* /BUCKET_SIZE:n - Set o/p file bucket size' /CONTIGUOUS - Make o/p file contiguouse+ /DEVICE:dev - Device to contain work files # /DEVICE:([device-name]/qualifiers)L/ /ALLOCATION:n - Declare work file allocationR2 /CONTIGUOUS - Work files are to be contiguous+ /FILES:n - Number of scratch files (3 - 8)i9 /FORMAT:type - Declare o/p file format & max record size :FIXED[:n] :VARIABLE[:n]N :UNKNOWN[:n]? ** /KEYS:( abm.n1 abm.n2 ... ... ) - Define sorting sequenceo+ /OUTPUT:filespec - Specify the output file/* /PROCESS:process - 00ρԁa~z~*Define sorting process :ADDRESS_ROUTING :INDEX :RECORD (default) :TAG. /RELATIVE - O/p to have RELATIVE organization8 /SEQUENTIAL - O/p to have SEQUENTIAL organization (def)< /SPECIFICATION:file-spec - File used to define sort process2 KeysE Used to control the sequence of the output file. The format of each key entry is: abm.n where:8 a - Specifies way file is to be handled (default 'C') B - Two's complement binaryT C - Alphanumeric3 D - If alphabetic, numeric with superimposed signp+ If FORTRAN numeric, convert to binaryR! F - 2- or 4-word floating pointO* I - As D above but with leading +/- sign+ J - As D above but with trailing +/- sign)% K - As D above but sign overpunched  P - Packed decimal Z - ASCII zone- b - Defines general sort order (default 'N')f N - Assending order (def):" O - Opposite, or decending order/ m - Position of key field. ( m (decimal) > 0 )w) n - Size of key field. ( Decimal bytes ) 1 SPoola# + SPOOL/qualifier [device-name]p /ABORTR /RESUME[:parameter] FILE  FORMo RECYCLE /STARTs /STOP /TEST n1 STop STOP[/JOB]t4 + STOP/CLI [cli-name] terminal-list time-limit + STOP/HANDLER device-name1 SUbmit SUBMIT [/qualifiers] filespec  /NOTRANSFER' /PRIORITY:nn 1 Type TYPE filespec ... ... ...i 1 UNFix- UNFIX task [terminal] - Free a FIXed task from memory 1 UNLock$ UNLOCK[/FILE] filespec ... ... ...1 + /MEMORY task-name [terminal-list] ! [ALL]  E1 Verify" VERIFY[/qualifiers] device-name# FREE - List free space on device  LIST - List index fileO. LOST_FILES - Enter 'lost' files in directory$ OUTPUT:filespec - Name output file0 PRINT - Output to a lineprinter (device CL0:)6 READ_CHECK[:n] - Read all allocated blocks on device? RECOVER_BLOCKS - Restore blocks which are marked as allocated  but not in use& UNDELETE - Reset deletion indicators? UPDATE_BITMAP - Mark as allocated blocks which are not in uset8 WORK_DEVICE:device-name - Specify device for work files FREE - List free space on device  LIST - List index fileO. LOST_FILES - Enter 'lost' files in directory$ OUTPUT:filespec - Name output file0 PRINT - Output to a lineprinter (device CL0:)6 READ_CHECK[:n] - Read all allocated blocks on device? RECOVER_BLOCKS - Restore blocks which are marked as allocated  but not in use& UNDELETE - Reset deletion indicators? UPDATE_BITMAP - Mark as allocate1 SLPE SLP, the source language input program, is a utility used for source file maintenance. K SLP requires two types of input: 1)an input file and 2) command input. TheH input file is the source file you want to update, and the command inputB consists of SLP edit commands and, optionally, new lines of text. J SLP output consists of an output file and a listing file. The output fileI is the updated input file. The listing file is a copy of the output file with line numbers added. ) The general form of the input to SLP is:r a8 A SLP command line containing the file specification7 A SLP command line followed by optional input linesc a0 / (the slash terminates the SLP edit session) n For example:d e, MYFILE.MAC;1/AU/-BF,MYFILE/-SP=MYFILE.MAC;1 -3  INSERT THIS LINE AFTER LINE 3 -4,4P, DELETE LINE 4 AND REPLACE IT WITH THIS LINE -5,5. / tD For more information on SLP command (file spec) lines, type AID SLPH COMMANDINPUT. For more information on SLP edit command lines, type AIDK SLP EDITCOMMAND. For more information on SLP edit command line operators,nI type AID SLP OPERATORS. For more information on SLP line locators, typel AID SLP LOCATORS. e2 COMMANDINPUT F7 The general form of a SLP command (file spec) line is:M 1; outfile[/switches][,listfile[/switches]]=infile[/switches]4 D where:I I7 outfile is the file specification for the output file.P, The output file is the updated input file. DF listfile is the file specificatio00ׁvx~x|Oxssn for the listing file. The listing2 file shows the updates made to the source file.  iA infile is the file specification for the input file. The inputL( file is the file to be updated by SLP. e< switches is one or more or the following optional switches: e5 /AU[:pos:len] Specifies that audit trails should bee0 generated and start in column "pos" and have0 a length of "len". The defaults are 80 and 8& respectively. /AU is the default. .1 /-AU Specifies that audit trails should not bei generated. s3 /BF Right-justifies the audit trail by insertinge. spaces at the end of the text information. /BF is the default.L 4 /-BF Right justifies the audit trail by inserting2 tab characters at the end of text information. 9 /CM[:pos] Deletes audit trails and any trailing spaces 2 or tabs, and truncates the text at a specified1 horizontal position. The value given for thep0 beginning position of the audit trail is the0 default value for this switch. The value is) rounded to the next highest tab stop.a b5 /CS[:n] Calculates the checksum value for the editt+ commands. If you do not specify n, SLPi* reports the value in a message on your* terminal. If you do specify n and the- checksum value that SLP calculates is notn. the same as the the one you specified, SLP( displays a diagnostic error message. s, /DB Generates the listing file in double-' spaced format. /-DB is the default.  a- /-DB Does not generate the listing file ino double-spaced format.a t1 /NS Does not sequence the lines in the output f1 file. The /NS switch is the default conditionn+ and overrides the /SQ and /RS switches.  r2 /RS Resequences the lines in the output file so- that the line numbers are incremented forh) each line written to the output file.  i5 /SQ Sequences the lines in the output file so thats/ the numbers reflect the line numbers of the/0 original input file. New lines added to the2 file have the same number as the previous line . /SP Spools the listing file to the printer. /SP is the default.t i6 /-SP Does not spool the listing file to the printer / /TR Reports truncation of lines by the audith/ trail. If line truncation occurs, you willn0 get a diagnostic error message. There is no2 default for this switch. In the listing file,0 a question mark (?) replaces the line number& of the line(s) that was truncated. 2 OPERATORSe oG In edit mode, SLP interprets the following characters specially as SLPlH operators when they are entered as the first charater of an input line. s Operator Function f; "-" SLP interprets the dash as the first character of a  SLP edit command.. f= "\" SLP interprets the backslash as a command to suppressm audit trail processing.e l7 "%" SLP interprets the precent sign as a command tom" reenable audit trail processing. f9 "@" SLP interprets the at sign as a command to invoke & an indirect file for SLP processing. r: "/" SLP interprets the slash as a command to terminate6 the SLP edit session and return to SLP command mode. i; "<" SLP interprets the less-than character as an escaper3 character. Escape characters are characters thate7 enable you to enter characters in the input file that 2 SLP otherwise would interpret as operators. For3 example, " pointer to a specified line. If only locator1 is specified,> the current line pointer is moved to that line and SLP reads< the next line in the edit command file. This field can be; specified using any of the locator forms described below.g rG locator2 is a l00߁a~z~*ine locator that defines a range of lines (that is, thea9 range beginning with locator1 and ending with locator2,-: inclusive) to be deleted or replaced. This field can be; specified using any of the locator forms described below.e I audittrail is a character string used to keep track of the update status : of each change in the file. The string must be enclosed@ within slashes (/). It consists of a comment delimiter as the? first character and then a text string. The semicolon (;) isa@ the initial delimiter for audit-trails automatically generated? by SLP (;**NEW** and ;**-n). The comment delimiter specified)> in audittrail (usually a semicolon) is the new delimiter for= all subsequent audit trails until redefined by a later one.s c; ;comment terminates the SLP edit command line and providesf. commentary text to the SLP edit command line sC Note that all fields in the command line are positional and commas must be specified.  nA For more information on SLP line locators, type AID SLP LOCATOR.  i 2 LOCATORS t8 The locator fields can take one of the following forms: /string/[+n]f /string...string/[+n] -number[+n] .[+n] e where:m r= number specifies a decimal line number to which the currento6 line pointer is to be moved. The largest line number that can be specified is 9999. tB string is a string of ASCII characters. SLP locates the line in@ which string exists and moves the current line pointer to that> line. If the locator is specified as /string...string/, SLP= locates the line in which the two character strings delimitn= a larger character string abbreviated by an ellipsis (...).+ = n specifies a decimal value used as an offset from the lineb9 indicated by the first part of the locator. It must bee2 specified with a string locator or a period (.). 5 . SLP interprets the period (.) as the current linet tF All forms of the line locator can be specified interchangeably in the command line. hN SLP allows you to move the line pointer sequentially. Once past a given lineM in the file, you cannot return the line pointer to that line. To return the N line pointer to that line, you must close the file and begin another SLP editeb9 indicated by the first part of the locator. It must bee2 specified with a string locator or a period (.). 5 . SLP interprets the period (.) as the current linet tF All forms of the line locator can be specified interchangeably in the command line. hN SLP allows 1 SLRH Brief descriptions of utility routines included in various DEC suppliedF object, macro, and command libraries are available for the following. For more information type: AID SLRLIB routine Information is available for:9 GCML "get command line" subroutine for MACRO-11 programsA EGCML an extended version of GCML supporting procedure libraries/ CAT5(B) convert ASCII to RAD50 character codes, C5TA convert RAD50 to ASCII character codes1 DD2CT convert decimal to binary double precision/ OD2CT convert octal to binary double precisiond0 CDTB convert decimal to binary single precision. COTB convert octal to binary single precision9 CAT5 convert ASCII to RAD50 character codes (also CAT5B)f0 CBDAT convert binary date information to string* CBDMG convert binary to magnitude decimal' CBDSG convert binary to signed decimal 1 CDDMG convert double precision binary to decimal5( CBOMG convert binary to octal magnitude% CBOSG convert binary to signed octald& CBTMG convert byte to octal magnitude- CBTA general purpose binary to ASCII convertC' CVTUC lower case to upper case converti DAT binary date to string TIM binary time to string' EDMSG general purpose output formatters, SAVREG summary of register save co-routines MUL single precision multiply DIV single precision divide DMUL double precision multiply  DDIV double precision divide $ CORE dynamic memory allocate/return2 GCMLG GCML is a system library routine which performs the standard functionscG of obtaining 00vx~x|Oxssa command line from the operating system, scanning it forvH certain special characters and returning it to the caller. GCML is usedE by almost all DEC supplied utilities and layered products. It is theH recommended interface for programmers creating utilites in MACRO-11 forH use under the RSX operating systems. Full documentation may be found in- the SLRTEM library utility reference manual.a2 EGCMLeC EGCML is an extended version of the standard GCML utility. SupportaG is included for input from procedure modules (or "files") contained in > a universal library. Support also exists to allow control ofJ terminal timeout and write with breakthrough of Control-O terminal state.M GCML and EGCML both exist in the system object and macro libraries. ProgramsiH written to use GCML will continue to assemble and link to reference theI GCML service. Users wishing to take advantage of the EGCML features mustEL make minor modifications to their source programs, reassemble them and linkJ to reference the EGCML module. While global entry points are different toL the two services, the macros calling GCML and EGCML have the same names andM calling arguments. This way, both services can exist in the object librariesiG and source requires little or no modification to use the new services.wG A list of EGCML macros and their aarguments may be obtained by typing:w AID SLRLIB EGCML MACROS3 MACROSL Note that all macros described below are defined within the EGCML interfaceH macro definition EGCMI$. This macro must be defined and expanded beforeJ any reference to other GCML or EGCML call macros. Failure to do this willH cause the macro assembler to reference the GCML call macros and not theF EGCML call macros. Include the following code within any module which references EGCML call macros:5 .MCALL EGCMI$ ; LOAD THE INTERFACE DEFINITION MACRO 2 EGCMI$ ; EXPAND IT DEFINING THE EGCML INTERFACE Macros defined by EGCMI$ are:, EGCMI$ Define the extended EGCML interface7 GCMLD$ GLOB Define the offsets and bit flags containede in the impure work area; ECMLB$ FILE,LUN=1,MAXD=3,PRMP=< >,BFAD,BFSZ=80.,PDL,SWITe/ Allocate the impure work area and optionallya the FDB or FAB/RABL/ GCMLB$ MAXD=1,PRMP=< >,UBUF,LUN,PDL,SIZE=80. 1 Older GCML interface macro which calls ECMLB$.C Used to avoid source change6 GCMSW$ NAME Allocate the EGCML switch control tables. Used by INDIRECT. GCML$ NAME,PRAD,PRLN. GET command input from executive, terminal, or nested file : RCML$ NAME RESET EGCML command input to level 0 (normally the command terminal)< CCML$ GCMB CLOSE the currently open top level nested file0 MCML$ GCMB Obtain only MCR level command line! FCML$ GCMB FORCE command line.P5 Used for example, by INDIRECT processing of .CHAIN & LCML$ GCMB Chain to new input file.& ECML$ GCMB Reset MCR level EOF flag+ DCML$ GCMB Pop one level of file nesting @ GCMM$ GCMB MARK. Obtain record address of current command file.< GCMP$ GCMB POINT. Position command file to previously saved record addresse& CMSET$ GCMB,TSUB,TVFC,TTMO,FQFN,OVBC$ Modify fields in impure work area% CMGET$ GCMB,TSUB,TVFC,TTMO,FQFN,OVBC 1 Obtain values from fields in impure work area.2 CAT5 Convert ASCII to Radix-50 Input: Output:M( R0 = address of ASCII characters C/CLR:# R0 = updated character pointerD8 R1 = character control flag R1 = converted RAD50 value5 0=> period is a terminator R2 = terminator character 1=> period is RAD50 character C/SET:r R2 = illegal characterr* CALL $CAT5 ; to stop conversion on blanks8 CALL $CAT5B ; to treat blanks as legal RAD50 characters2 C5TA Convert Radix-50 to ASCII Input: Output:eG R0 = ASCII character output address R0 = next available output address( R1 = Radix-50 word R1-R2 are modified CALL $C5TAa2 DD2CTe7 Convert signed ASCII decimal number to two word binaryR Input: Output: ? R3 = address of two word output c/clr => conversi00a~z~*on successfula# field c/set => conversion errora% R4 = number of characters to converto, R5 = address of character string to convert Call: CALL .DD2CT2 OD2CT5 Convert signed ASCII octal number to two word binaryt Input: Output:cE R3 = address of two word output field c/clr => conversion successfulr? R4 = number of characters to convert c/set => conversion errore, R5 = address of character string to convert Call: CALL .OD2CT2 CDTB2 Convert single precision decimal number to binary Input: Output:cI R0 = address of first byte of string R0 = address of next byte in buffera& to convert R1 = the converted value% R2 = the character which stoppedI conversion Call: CALL $CDTBt2 COTB2 Convert single precision decimal number to binary Input: Output:uI R0 = address of first byte of string R0 = address of next byte in bufferd& to convert R1 = the converted value% R2 = the character which stoppedt conversion Call: CALL $CDTB2 CBDAT 2 Convert binary date information to string (01-31) Input: Output:tB R0 = address of output buffer R0 = points to next byte in output' buffer after converted stringi" R1 = Binary value to be converted R2 = Zero suppression flag: R2 = 0 =>suppress leading zeros' R2 = 1 =>do not suppress leading zeros  Call: CALL $CBDAT2 CBDMG $ Convert binary to magnitude decimal Input: Output: B R0 = address of output buffer R0 = points to next byte in output' buffer after converted stringr" R1 = Binary value to be converted R2 = Zero suppression flag: R2 = 0 =>suppress leading zeros' R2 = 1 =>do not suppress leading zerosr Call: CALL $CBDMG2 CBDSGv! Convert binary to signed decimalp Input: Output: B R0 = address of output buffer R0 = points to next byte in output' buffer after converted stringt" R1 = Binary value to be converted R2 = Zero suppression flag: R2 = 0 =>suppress leading zeros' R2 = 1 =>do not suppress leading zerosa Call: CALL $CBDSG2 CDDMGa+ Convert double precision binary to decimali Input: Output:pB R0 = address of output buffer R0 = points to next byte in output' buffer after converted string - R1 = Address of binary value to be convertedR R2 = Zero suppression flag: R2 = 0 =>suppress leading zeros' R2 = 1 =>do not suppress leading zerost Call: CALL $CBDMG2 CBOMGt" Convert binary to octal magnitude Input: Output:gB R0 = address of output buffer R0 = points to next byte in output' buffer after converted stringi" R1 = Binary value to be converted R2 = Zero suppression flag: R2 = 0 =>suppress leading zeros' R2 = 1 =>do not suppress leading zerost Call: CALL $CBOMG2 CBOSGr convert binary to signed octale Input: Output:RB R0 = address of output buffer R0 = points to next byte in output' buffer after converted stringn" R1 = Binary value to be converted R2 = Zero suppression flag: R2 = 0 =>suppress leading zeros' R2 = 1 =>do not suppress leading zerosr Call: CALL $CBOSG2 CBTMGi convert byte to octal magnitude Input: Output:B R0 = address of output buffer R0 = points to next byte in output' buffer after converted stringc" R1 = Binary value to be converted R2 = Zero suppression flag: R2 = 0 =>suppress leading zeros' R2 = 1 =>do not suppress leading zerosr Call: CALL $CBTMG2 CBTA( general purpose binary to ASCII convert Input: Output: B R0 = address of output buffer R0 = points to next byte in output' buffer after converted stringt" R1 = Binary value to be converted R2 = conversion control mask: bits 0-7 conversion radix 2-10. bit 8 set => signed conversion+ bit 9 set => don't suppress leading zerost: bit 10 set => replace leading zeros, if any, with blanks3 clear => don't replace leading zeros with blanks % bits 11-15 field width range = 1-31. Call: CALL $CBTA 2 CVTUCc lower to upper case con00vx~x|Oxssversion Input:: Output: 6 R0 = address of text string to shift R0 = not altered0 R1 = address of output buffer R1 = not altered0 R2 = count of characters to scan R2 = destroyed Call: CALL $CVTUC2 DATt" convert binary date data to strng Input: Output: = R0 = address of output buffer R0 = points to next free bytet$ R1 = Address of 3-word binary date.$ Refer to GTIM$ directive for format l Call: CALL $DAT2 TIMl# convert binary time data to string  Input: Output:= R0 = address of output buffer R0 = points to next free byte0" R1 = start address of 5-word time! buffer. Refer to GTIM$ directive for formata$ R2 = format of resultant conversion R2 = 1 => convert only hourse" R2 = 2 => convert to format HH:MM% R2 = 3 => convert to format HH:MM:SSt' R2 = 4 => convert to format HH:MM:SS.St Call: CALL $TIM2 EDMSGd( general purpose output format processor Input: Output:T> R0 = output buffer address R0 = updated to next free byte in output bufferf& R1 = address of format control string( R2 = starting address of argument block Call: CALL $EDMSG- Summary of control string format characters:t3 Format Char.. Next word in Argument block is... A %A,%nA,$VA address of ASCII character or string. Move to output.R? %B,%nB,%VB address of a binary byte. Convert to OCTAL notation ; %D,%nD,%VD binary word. Convert to signed DECIMAL notation ? %E,%ne,%VE address of extended ASCII character or string. Mover= to output. Non-printing characters are replaced with SPACE.o( %F,%nF,%VF insert a form feed in output@ %I address of an ASCIZ string to be logically inserted at this% point in the format control string. ? %M,%nM,%VM binary word. Convert to magnitude DECIMAL notation.C- %N,%nN,%VN insert carriage return in output.n: %O,%nO,%VO binary word. Convert to signed OCTAL notation.= %P,%nP,%VP binary word. Convert to magnitude OCTAL notation.%> %R,%nR,%VR Radix-50 binary values. Convert to ASCII notation.% %S,%nS,%VS Insert a SPACE in output.eD %T,%nT,%VT address of double precision values. Convert to magnitude DECIMAL notation.s? %U,%nU,%VU binary word. Convert to magnitude DECIMAL notation.tD %X,%nX,%VX Radix-50 filename string. Convert to full ASCII filename string.%8 %Y Date in binary form. Convert to DD-MMM-YY notation." %1Z Time. Convert to HH notation& %2Z Time. Convert to HH:MM notation.( %3Z Time. Convert to HH:MM:SS notation+ %4Z Time. Convert to HH:MM:SS.S notation.I; %n< Define blanked field beginning. Insert 'n' SPACES andV backup to current position.a8 %n> Advance to end of currently defined blanked field.2 SAVREGL Several routines are available for the save/restore of processor registers.KThese are all co-routines, that is they save the registers on the stack andoJreturn with the address of a register restore routine on top of the stack.KThe calling routine need only "RETURN" to the restore routine, which, after Krestoring the registers will "RETURN" to the caller's caller. Refer to the FSystem library reference for more information. Calling sequences are:To save: Use the command:n#R0-R5 JSR PC,$SAVAL or CALL $SAVALeR3-R5 JSR R5,$SAVRGR0-R2 JSR R2,$SAVVRR1-R5 JSR R5,.SAVR12 MUL # single precision unsigned multiplyg Input: Output:o1 R0 = multiplier R0 = high order part of resultn2 R1 = multiplicand R1 = low order part of result Call: CALL $MUL2 DIVn! single precision unsigned dividei Input: Output:t R0 = dividend R0 = quotient R1 = divisor R1 = remainder  Call: CALL $DIV2 DMUL double precision multiply Input: Output:,2 R0 = multiplier R0 = high order part of productD R2 = high order part of multiplicand R1 = low order part of product$ R3 = low order part of multiplicand Call: CALL $DMUL 2 DDIV double precision divide Input: Output: ' R0 = unsigned divisor R0 = remainder3 R1 = high order dividend R1 = high order quotientt1 R2 = low order divi00~z~*dend R2 = low order quotient Call: CALL $DDIVe2 CORE Allocate dynamic memory.MInput: Output:;R0 = Address of free memory listhead Carry/Clear => successh$ R0 = address of allocated blockBR1 = Size of block requested. R1 = actual size of block allocated R1 > 0 => best fit allocation R1 < 0 => first fitCall:u CALL $RQCB  Release dynamic memory. Input: Output:s4 R0 = Address of free memory listhead R0 = unchanged1 R1 = Size of block to be released R1 = destroyedl4 R2 = Address of block to be released R2 = destroyed Call: CALL $RLCByInput: Output:;R0 = Address of free memory listhead Carry/Clear => successh$ R0 = address of allocated blockBR1 = Size of block requested. R1 = actual size of block allocated R1 > 0 => best fit allocation R1 < 0 => first fitCall:u CALL $RQCB  Release dynamic memory. Input: Output:s4 R0 = Address of free memory listhead R0 = unchanged1 R1 = Size of block to be released R1 1 SPEll% SPELL is a spelling checker program.  MCR>SPE filename[switches]  1 TYP AID SPE SWITCHES For information on switches 1 TYP AID SPE COMMANDS For information on commands 2 SWITCHES A The switches for the command line are as follows:   6 /Q process in quick mode (non interactive) < /F file is FORTRAN source, process comments only < /T terse comments, on interactive, display line  and word only 2 /N numbers are valid symbols in tokens I /L[:filename] preload the add list with words that are correct o6 if filename exists use this list, if not  use 'SPELL.DCT' 6 /S:x ignore words with 'x' or less letters 3 /V switch to VT52 type escape sequences c? /R word requires a vowel to be considered for check A= /D:x skip down x lines into document (usefull for ; continued check of a long document after quit)   2 COMMANDS + The commands available are: a; # (where # is a number between 1-9) ignore words  # or less in length C +n skip down n lines (good for getting to where you quit w4 A this word is correct, add to dictionary ; C this word is correct, do not add to dictionary 8 D check variations on this word in dictionary 3 E exchange words, but do not add to list ! L replace current line a* N next word, do not add to list F Q quit, copy rest of document without changes (then use +n) 9 R require words require vowel to be considered h5 -R do not require vowels for consideration  T terse display  -T verbose display d8 W wrong spelling, make correction to document 1 X exit, as if end of document was here s* Z exit, as if we hadn't started ) redraw screen after erase  l  rent line a* N next wor1 SPS- The following SPSS11 commands are available: 0 APPEND CHECK COPY DATA DELETE EXIT FIND INCLUDE/ INSERT MOVE REPLACE RESEQUENCE SUBSTITUTE TYPE WRITE XEQ > Type AID SPS 'command' for more information about any command2 AIDQ AID [command]--The AID command prints helpful information. The argument P "command" tells which command you want more information about. If P the argument is omitted, it prints a list of the legal commands. 2 APPENDQ APPEND [n]/FI:filespec--locates an SPSS raw data file and copies it into OP the workspace. "n" specifies the line ahead of which the contents P of the file are to be APPENDed. If the argument "n" is missing, P the data is APPENDed ahead of the current line. If there is no P line numbered "n", an error message is printed. "filespec" is P any legal file specification. After a raw data file has been P APPENDed into the wor00vx~x|Oxsskspace, the line pointer is positioned at P the last line of the newly APPENDed text. 2 CHECK Q CHECK Check the entire contents of the scratch area for legal SPSS P commands in correct order. 2 COPYS COPY range TO nn--copies lines from one location to another, while aP keeping them in their original location. "range" is one of the P legal range specifiers, telling which lines are to be copied. P If more than one line is specified, all the specified lines are P copied. "nn" is the number of the line before which the set of P lines is to be copied. After a line or group of lines has been P copied, the line pointer is positioned at the first line of the P copied lines in their new position preceding the line numbered P "nn". 2 DATAS DATA [n]--inserts SPSS raw data before the line numbered "n". If the P argument "n" is missing, the raw data is inserted ahead of the P current line. If "n" is larger than the last line number, the P text is inserted at the end of the workspace. If there is no P line numbered "n", an error message is printed. After a line P or group of data lines has been inserted into the workspace, the P line pointer is positioned at the last inserted line. When you P issue an DATA command, SPSS11 prompts you for the lines of data P to be inserted by printing a "?". When all the lines have been P entered from the terminal, terminate DATA mode by typing the P character. The "Command?" prompt will then be printed. 2 DELETEQ DELETE [range]--deletes lines from the workspace. "range" is one of the P legal range specifiers. If you do not specify a range, the current P line is deleted. After a line or a group of lines has been P deleted, the line pointer is positioned at the line immediately P following the last line deleted. If you enter non-existent line P numbers in a range specification, SPSS11 prints an error message. 2 EXITR EXIT Terminates the SPSS11 program. If you have not saved the contents P of the workspace with a WRITE command, it will be lost upon P executing the EXIT command. 2 FINDS FIND string--The FIND command looks for the first occurrence of the P specified string. The search begins at the current line. If the P string is found, the line pointer is positioned at the line which P contains the string. If the string is not found, an error message P is printed, and the position of the line pointer is unchanged. 2 INCLUDEeQ INCLUDE [nn]/FI:filespec--locates an SPSS command file and copies it IP into the workspace. "nn" specifies the line ahead of which the P contents of the file are to be inserted. If you do not specify P a line number, the contents of the file are INCLUDEd ahead of P the current line. "filespec" is any legal file specification. P After a file has been INCLUDEd into the workspace, the line P pointer is positioned at the last line of the newly INCLUDEd P text. 2 INSERTQ INSERT [n]--inserts text before the line numbered "n". If the argument P "n" is missing, the text is INSERTed ahead of the current line. P If "n" is larger than the last line number, the text is INSERTed P at 00~z~*the end of the workspace. If there is no line numbered "n", P an error message is printed. After a line or group of lines has P been INSERTed into the workspace, the line pointer is positioned P at the last INSERTed line. When you issue an INSERT command, P SPSS11 prompts you for the lines of text to be INSERTed by printing P a "?". When all the lines have been entered from the terminal, P terminate INSERT mode by typing the character. The P "Command?" prompt will then be printed. 2 MOVES MOVE range TO nn--transfers lines from one location to another and P deletes them from their original location. "range" is one of the P legal range specifiers, and specifies the lines which are to be P moved. "nn" is the number of the line ahead of which to move the P lines in the range. After a line or group of lines has been moved, P the line pointer is positioned at the first line of the transferred P lines in their new position preceding the line numbered "nn". 2 QUITR QUIT Terminates the SPSS11 program. If you have not saved the contents P of the workspace with a WRITE command, it will be lost upon P executing the QUIT command. 2 REPLACEQ REPLACE [range]--deletes the lines in the specified range and inserts tP one or more lines of text in their place. "range" specifies the P lines that are to be REPLACEd and is one of the legal range P specifiers. After a line or group of lines has been REPLACEd, P the line pointer is positioned at the last replacement line. P If you do not specify a range, the REPLACE command deletes the P current line and inserts the replacement lines in its place. 2 RESEQUENCEQ RESEQUENCE--assign new line numbers to the lines in the workspace. P The entire workspace is renumbered. The first line is assigned the P number 10, and subsequent lines are numbered in increments of 10. P The largest line number which can be used is 32767. After the P workspace has been resequenced, the line pointer is positioned P at the first line in the buffer. 2 SUBSTITUTEQ SUBSTITUTE /string1/string2/--changes characters within lines of the P workspace. "string1" specifies the characters in the workspace P that you want to locate and to change. "string2" specifies the P replacement characters. Only the first occurrence of the string P is changed to the replacement string. The search for "string1" P begins with the current line. After a string substitution has P been made, the line pointer is positioned at the line in which P the substitution was made. You can replace the slash (/) string P delimiter with any character which does not appear in either of P the two strings. If the first string "string1" is not found, an P error message is printed. 2 TYPES TYPE [range][/BR]--displays a range of lines of text at your terminal. P "range" is one of the legal range specifiers. If you omit a range P specifier, the current line is displayed. /BR specifies that only P the first 16 characters of each line be displayed. You can also P use /BR:nn to display the first "nn" characters of each line. P After the lines are displayed, the line pointer is positioned at P the first line of the range. 2 00~x|OxssWRITE R WRITE [range] /FI:filespec--Save the SPSS commands and/or data currently P in the workspace in the file specified. If a file with the name P specified already exists, it will be replaced, with no warning. P The position of the line pointer is not changed by the WRITE P command. 2 XEQ S XEQ If the workspace contains SPSS commands, this command will cause P them to be processed. If the workspace is empty, the program will P prompt you with "Input from?". Respond with the name of an SPSS P command file (or CR: or KB: if your commands are on cards or you P wish to type them in on your terminal). In either case, it will P then ask you where you want your output to go ("Output to?"). P Respond with the name of the file to which you want your output P to go (or LP: or KB: if line printer or terminal). am will P prompt you with "Input from?". Respond with the name of an SPSS P command file (or CR: or KB: if your commands are on cards or you P wish to type them in on your terminal). In either case, it will P then ask you where you want your output to go ("Output to?"). P Respond with the name of the file to which you want your output P to go (or LP: or 1 SPYiH SPY is an interactive display program written in the spirit of K DEMO. SPY will dynamically display timesharing task activity on IAS.o n3 SPY currently offers a choice of 2 displays.  tH Display #1 shows the percent of CPU time spent in Batch, Inter- " active, Swap and Null time. > Display #2 shows task activity on a per-terminal basis. 1 MCR> SPY[display #] [terminal type] a dH The following commands are available while SPY is running.  n" Dn change to display n3 In change display interval to n secondsl3 C Clear screen and refresh display. $ X or ^Z Cause SPY to exit. $ Ln display up to n lines- R n,m display range of TTn to TTm onlyr, R DEF return to default display range% R ALL display all terminalsa& R TTn display one terminal onlyR> SPY[display #] [terminal type] a dH The following commands are available whi1 SRD SRD - Sorted Directory Utility =============================== /AE - Files After/On Given Date /AF - Files After Given Date= /AT - Attach Output Device /BE - Files Before/On Given Date6 /BF - Files Before Given Date /CO - Contiguous Files. /DA - Files on Given Date /DE - Delete Files6 /FU - Full Listing /HV - Versions over given number2 /ID - Current Version Number /LI - Brief Listing* /LO - Locked Files /MI - Middle Listing6 /MU - Multi-Header Files /M2 - Type 2 Middle Listing8 /NA - Sort in Name Order /NE - Exclude specified files6 /OV - Obsolete Versions /PU - Purge certain versions2 /RD - Use Revision Date /SD - Selectively Delete7 /SE - Select with wildcards /SI - Current Buffer Sizei9 /SM - Print summary of no. files /SP - Spool Output Filee6 /SR - Sort the Listing /SV - Select Latest VersionsA /SY - Include System Accounts /WB - Write back Sorted DirectorysA /WD - Implicit Wildcarding for Delete /WI - Implicit Wildcardinge3 /00 - Include [0,0] /ZE - List Zero Length FilesN' /HD - Include SRD command line on list1 For help on a given switch type AID SRD o2 For help on switch defaults type AID SRD SWITCHES2 HD& Include SRD command line on listing= This command copies the SRD command line onto the SRD outputu9 listing immediately after printing the directory number.e2 SM Produce a Summary Listing9 This lists the number of files selected and total in thed9 directory examined. If file headers were examined, totalu3 numbers of bloc00~z~*ks used/allocated are also printed.u2 LI' Produce a Directory Listing (/LI:n)vF This just lists the filename, extension and version of the filesF that meet the specification given. The output is sorted, by default, into the order:-o' Ascending on File Extensionr" then Ascending on File Name& then Descending on File VersionF In addition a header and trailer line are output for each UFD. TheF header line contains the name of the UFD, the current date andF time, and the command line that was originally used. the trailerF line contains the number of files selected, and the total numberF of files in the directory. If one of the switches /MI, /FU, /AE,F /AF, /BE, /BF or /DA is specified the total number of blocks= used/allocated (for those files selected) is also listed.oF This switch can be negated and used to suppress the listing thatF usually accompanies some of the other switches (e.g. /WB or /PU) -F in which case just the header and trailer lines are printed. If nF is specified, it defines the width of the listing (72 to 132) - if. not it defaults to the device buffer size.2 MI #M22 M25 Produce a 'Middle' Directory Listing (/MI:n, /M2) F This acts similarly to the /LI switch, except that it lists outF more information. The extra information listed out depends on theB setting of the /M2 switch and is either (/M2 not specified):-" Creation Date and Time" Revision Date and Time Revision Numbern or (/M2 specified):-n. Number of Blocks Allocated to File$ End of File Block Number/ Contiguous/Locked/Multiheader Flagsr File ID,C Creation Date and Time (Revision Date if /RD specified)t2 FU, Produce a Full Directory Listing (/FU:n)F This acts similarly to the /LI switch, except that it lists out yet more information, i.e.. Number of Blocks allocated to File$ End of File Block Number/ Contiguous/Locked/Multiheader Flags  File IDl Owner UIC  Protection Codes" Creation Date and Time" Revision Date and Time Revision Number F Note that while a file is being created SRD will list theF blocks allocated as 0, rather than the value PIP produces, becauseF the header is not yet set up properly. n, if specified, has the2 NA Change the Sort Order (/NA) F If this switch is specified the output sort order is altered to be:-" Ascending on File Name' then Ascending on File Extension & then Descending on File Version2 NE$ Select Files not Specified (/NE)F If this switch is specified then all files that do not meet the' given specification are listed out. 2 HV* Select Files by Version Number (/HV:n)F This switch lists out all files which meet the given specificationF whose version number is greater than or equal to n. If not specified, n defaults to 2.e2 SV0 Select Most Recent Versions of Files (/SV:n)F This switch lists out the latest n versions of all files that meetF the given specification. If not given, n defaults to 1. If n is -17 then this lists out the oldest version of the file.c2 OV- Select Obsolete Versions of Files (/OV:n)sF This switch restricts the listing of file names to all versionsF except the "n" highest versions. The default value for "n" is 1.F For a given "n", /OV:n lists file names not listed by /SV:n, andF the files listed are those that would be deleted if /PU:n wereF specified. As indicated by the definition, if n is -1 then all but& the oldest version are listed out.2 AE #DA2 AF #DA2 BE #DA2 BF #DA2 DA. Select Files by Date (/AE,/AF,/BE,/BF,/DA)F Each of these switches takes an optional date and/or time asF para00'~x|Oxssmeter, in the form dd-mmm-yy hh:mm, or hh:mm dd-mmm-yy, etc. e.g.: " /DA: 03-DEC-79 10:30F (In fact the date may be specified as ddmmmyy if desired). If noF date is specified, today's date is assumed. If no time is' specified, time checks are ignored.eB Then /AE lists all files created on or after the given date (and time).B /AF lists all files created after (but not on) the given# date (and time). B /BE lists all files created on or before the given date (and time).B /BE lists all files created before (but not on) the given# date (and time). B /DA lists all files created on the given date (and time).F For these switches the listing includes the creation date andF time. If the /RD switch is specified then the Revision Date isF used for the checks and the listing includes the Revision Date and Time.d2 SE, Use wildcards in filename (/SE:filespec)F Because of the parsing structure in RSX, it is impossible to haveF wildcards for letters in the Input Filespec, and so this switch isF included to allow the facility. The filespec argument it takes isF identical to that defining the Input Filespec with the following additional features:-I8 (i) % (or ?) matches one wildcard character.F (ii) * matches any number (including zero) of wildcard characters.aF Any combination of these characters may be used in any of theF filename, extension or version number fields. Note that withinF each field, if an * is specified somewhere, and the finalF character is not an * then that final character is assumed to be0 required as the last character of the field.C (e.g. *D will match FRED but not FREDA *D* will match either). Example: Suppose we have the files:- 8 FRED, FREDA, FREDERIK, FEED, FILD, FEEDER, FRIED, FD thenA /SE:F%%D will match FRED, FREDA, FREDERIK, FEED, FILD,FEEDERt (if /WI specified)* /SE:F%%D< will match FRED, FEED, FILD $ (if /WI not specified)4 /SE:F*D will match FRED, FEED, FILD, FRIED, FD$ /SE:F*D* will match everything.F (Note that /SE cannot be used in combination with a standard Input Filespec).2 DE Delete Files (/DE)F This switch deletes (and lists) all files that meet the given specification.2 PU Purge the directory (/PU:n)tF This switches purges all but the highest n versions of all filesF meeting the Input File Specification and lists those purged. IfF not specified, n defaults to 1. If n is -1 then all but the oldest. version of the specified files are purged.2 SD+ Selectively Delete Files (/SD:filespec) F This switch lists all the files that meet the given specification,F and for each one prompts the user to see if he wants to delete it.& There are five allowable replies:- Y = Delete this file% N = Do Not Delete This Filea4 G = Delete the rest of the specified files2 Q = Exit without deleting any more filesF CTRL-Z = Terminate the sequence and return to command levelF Any other response is interpreted as "N" (NO). If "G" (GO) isF entered, the question "ARE YOU SURE?" is asked in order to be sure# that it is the proper response.u> The filespec, if given, follows the same rules as for /SE.2 SP Spool the Output File (/SP) F If this switch is specified then the output file (if one wasF specified) is spooled to the Print Spooler (PRT...). In addition,F if a multiple-UIC search is being done, SRD inserts a form feed before each new UIC.2 WB' Write Back the Directory File (/WB)OF If this switch is specified then as well as producing a listing,F SRD writes the file headers back to the UFD in the orde00/~z~*r of theF listing. This means both that the UFD is compressed (which couldF speed up FCS operations) and that future PIP operations willF proceed in the sorted order given. A particularly useful application of this is SRD [0,0]/WB* which will sort the UFD files, so that SRD [*,*]/LIF will then list files in numeric order of directories as well as sorted on filename, etc.F Write Access to the directory is required and Write Failure isF usually due to a protection violation. In the event of aB write-back failure, the operation is attempted several times. 2 RD Use Revision Date (/RD)vF On the date selection, use the revision date (if any). InF addition, if this is used for a /MI (/M2) listing the Revision5 Date will be listed instead of the Creation Date.o2 SR Sort the Directory (/SR)F Sort the filenames. This option is turned off if the files are notF being listed or written back. You can also say /-SR to get theF files listed in the order they are in the directory. This is the$ same order that PIP lists them. 2 SY3 Include System UFD's in Wildcard Searches (/SY)hF If this switch is specified then all system UFD's (i.e. those withF a group code between 0 and 10 inclusive) will be included in [*,*]F or [*,n] searches. If it is switched off (/-SY) then such UFD'sF will be ignored. This switch (or it's negation) has no effect7 unless the group code of the specified UFD is wild. 2 00, Include [0,0] in Wildcard Searches (/00)F If this switch is specified then [0,0] will be included in [*,*],F [0,*] or [*,0] searches. If it is switched off (/-SY) then [0,0]F will be ignored. [0,0] can always be listed by specifying it directly.w2 WD #WI2 WI8 Treat all specifications as 'wild-carded' (/WI, /WD)F One of the great powers of SRD is the ability to specify just,F say, S as a filename and get a listing of all files with aF filename beginning with S. It is, however, also desirable at timesF to be able to specify that you want only files with a filename ofF S on its own. The switch /WI controls this - with 'implicitF wildcarding' assumed if it is specified, but not if it is negatedF (see /SE for an example). In addition /WD specifies whether theF 'implicit wildcarding' indicated by /WI also applies during> delete/purge operations (yes if specified, no if negated).F Note that if /-WI is specified, FRED will still be read as FRED.*,F but FRED. will only look for files (called FRED) with a null extension.2 CO& Select only Contiguous Files (/CO)E This switch causes SRD to select only files which are contiguous. 2 LO" Select only Locked Files (/LO)? This switch causes SRD to list only files which are locked.i2 MU( Select only Multi-Header Files (/MU)F This switch causes SRD to list only files which have multiple headers.2 ID. Print out the current Version of SRD (/ID)8 This option will display the current version of SRD.2 SI- Print out the available Buffer Size (/SI)lF This option will display the size of SRD's buffer which it uses toF read the directory files into memory. This switch is forF diagnostic purposes only, and can be used to determine how large a+ directory file can be processed by SRD. 2 AT* Attach output device if terminal (/AT)F If this switch is specified then the output device (if it is aF terminal) will be attached during the operation. This has theF advantage of allowing CTRL-O to be used to suppress any listing,F and the disadvantage of tying up the terminal during what could beF a long search. If the switch is not specified the terminal will not be attached. 2 SWITCHES< The following SRD switch defaults apply on this system:- /LI/M0078:~x|Oxss2/WD/WI/00/-AT/SY/SR2 ZE List Zero Length files /ZEwC If this switch is used, SRD will list only files of zero length, 8 allowing them to be isolated (for possible deletion.) advantage of allowing CTRL-O to be used to suppress any listing,F and the disadvantage of tying up the terminal during what could beF a long search. If the switch is not specified the terminal will not be attached. 2 SWITCHES< The following SRD switch defaults apply on this system:- /LI/M1 SUBmit SUBMIT file[/switch] . . .I The SUBMIT command submits a file for processing on the batch processor.& The following switches are available: /AF:hh:mm:dd-mmm-yy /PR:nnL The /AF switch allows you to specify that the processing of your job shouldG be delayed until after a specified date and time. The job will not runM immediately at that time, but will become eligible to be processed, and will& compete with other jobs at that time. E You may specify either the date, or the time, or both. If you do noth- specify a date, the current date is assumed.f I The /PR switch allows you to specify a priority for your batch job. This:M priority does not specify the priority at which the batch job actually runs,t7 but is simply used to determine position in the queue.e 4 The default is /PR:50. /PR:0 is the same as /PR:50. e t that time, but will become eligible to be processed, and will& compete with other jobs at that time. E You may specify either the date, or tH Brief descriptions of utility routines included in various DEC suppliedF object, macro, and command libraries are available for the following. For more information type: HELP SYSLIB routine Information is available for:9 GCML "get command line" subroutine for MACRO-11 programsA EGCML an extended version of GCML supporting procedure libraries/ CAT5(B) convert ASCII to RAD50 character codes, C5TA convert RAD50 to ASCII character codes1 DD2CT convert decimal to binary double precision/ OD2CT convert octal to binary double precisiond0 CDTB convert decimal to binary single precision. COTB convert octal to binary single precision9 CAT5 convert ASCII to RAD50 character codes (also CAT5B)f0 CBDAT convert binary date information to string* CBDMG convert binary to magnitude decimal' CBDSG convert binary to signed decimal 1 CDDMG convert double precision binary to decimal5( CBOMG convert binary to octal magnitude% CBOSG convert binary to signed octald& CBTMG convert byte to octal magnitude- CBTA general purpose binary to ASCII convertC' CVTUC lower case to upper case converti DAT binary date to string TIM binary time to string' EDMSG general purpose output formatters, SAVREG summary of register save co-routines MUL single precision multiply DIV single precision divide DMUL double precision multiply  DDIV double precision divide $ CORE dynamic memory allocate/return2 GCMLG GCML is a system library routine which performs the standard functionscG of obtaining a command line from the operating system, scanning it forvH certain special characters and returning it to the caller. GCML is usedE by almost all DEC supplied utilities and layered products. It is theH recommended interface for programmers creating utilites in MACRO-11 forH use under the RSX operating systems. Full documentation may be found in- the SYSTEM library utility reference manual.a2 EGCMLeC EGCML is an extended version of the standard GCML utility. SupportaG is included for input from procedure modules (or "files") contained in > a universal library. Support also exists to allow control ofJ terminal timeout and write with breakthrough of Control-O terminal state.M GCML and EGCML both exist in the system object and macro libraries. ProgramsiH written to use GCML will continue to assemble and link to reference theI GCML service. Users wishing to take advantage of the EGCML features mustEL make minor modifications to their source programs, reassemble them and linkJ to reference the EGCML 00?~z~*module. While global entry points are different toL the two services, the macros calling GCML and EGCML have the same names andM calling arguments. This way, both services can exist in the object librariesiG and source requires little or no modification to use the new services.wG A list of EGCML macros and their aarguments may be obtained by typing:w HELP SYSLIB EGCML MACROSh3 MACROSL Note that all macros described below are defined within the EGCML interfaceH macro definition EGCMI$. This macro must be defined and expanded beforeJ any reference to other GCML or EGCML call macros. Failure to do this willH cause the macro assembler to reference the GCML call macros and not theF EGCML call macros. Include the following code within any module which references EGCML call macros:5 .MCALL EGCMI$ ; LOAD THE INTERFACE DEFINITION MACROy2 EGCMI$ ; EXPAND IT DEFINING THE EGCML INTERFACE Macros defined by EGCMI$ are:, EGCMI$ Define the extended EGCML interface7 GCMLD$ GLOB Define the offsets and bit flags containede in the impure work area; ECMLB$ FILE,LUN=1,MAXD=3,PRMP=< >,BFAD,BFSZ=80.,PDL,SWITe/ Allocate the impure work area and optionallya the FDB or FAB/RABL/ GCMLB$ MAXD=1,PRMP=< >,UBUF,LUN,PDL,SIZE=80. 1 Older GCML interface macro which calls ECMLB$.C Used to avoid source change6 GCMSW$ NAME Allocate the EGCML switch control tables. Used by INDIRECT. GCML$ NAME,PRAD,PRLN. GET command input from executive, terminal, or nested file : RCML$ NAME RESET EGCML command input to level 0 (normally the command terminal)< CCML$ GCMB CLOSE the currently open top level nested file0 MCML$ GCMB Obtain only MCR level command line! FCML$ GCMB FORCE command line.P5 Used for example, by INDIRECT processing of .CHAIN & LCML$ GCMB Chain to new input file.& ECML$ GCMB Reset MCR level EOF flag+ DCML$ GCMB Pop one level of file nesting @ GCMM$ GCMB MARK. Obtain record address of current command file.< GCMP$ GCMB POINT. Position command file to previously saved record addresse& CMSET$ GCMB,TSUB,TVFC,TTMO,FQFN,OVBC$ Modify fields in impure work area% CMGET$ GCMB,TSUB,TVFC,TTMO,FQFN,OVBC 1 Obtain values from fields in impure work area.2 CAT5 Convert ASCII to Radix-50 Input: Output:M( R0 = address of ASCII characters C/CLR:# R0 = updated character pointerD8 R1 = character control flag R1 = converted RAD50 value5 0=> period is a terminator R2 = terminator character 1=> period is RAD50 character C/SET:r R2 = illegal characterr* CALL $CAT5 ; to stop conversion on blanks8 CALL $CAT5B ; to treat blanks as legal RAD50 characters2 C5TA Convert Radix-50 to ASCII Input: Output:eG R0 = ASCII character output address R0 = next available output address( R1 = Radix-50 word R1-R2 are modified CALL $C5TAa2 DD2CTe7 Convert signed ASCII decimal number to two word binaryR Input: Output: ? R3 = address of two word output c/clr => conversion successfula# field c/set => conversion errora% R4 = number of characters to converto, R5 = address of character string to convert Call: CALL .DD2CT2 OD2CT5 Convert signed ASCII octal number to two word binaryt Input: Output:cE R3 = address of two word output field c/clr => conversion successfulr? R4 = number of characters to convert c/set => conversion errore, R5 = address of character string to convert Call: CALL .OD2CT2 CDTB2 Convert single precision decimal number to binary Input: Output:cI R0 = address of first byte of string R0 = address of next byte in buffera& to convert R1 = the converted value% R2 = the character which stoppedI conversion Call: CALL $CDTBt2 COTB2 Convert single precision decimal number to binary Input: Output:uI R0 = address of first byte of string R0 = address of next byte in bufferd& to convert R1 = the converted value% R2 = the character which stoppedt conversion Call: C00G8:~x|OxssALL $CDTB2 CBDAT 2 Convert binary date information to string (01-31) Input: Output:tB R0 = address of output buffer R0 = points to next byte in output' buffer after converted stringi" R1 = Binary value to be converted R2 = Zero suppression flag: R2 = 0 =>suppress leading zeros' R2 = 1 =>do not suppress leading zeros  Call: CALL $CBDAT2 CBDMG $ Convert binary to magnitude decimal Input: Output: B R0 = address of output buffer R0 = points to next byte in output' buffer after converted stringr" R1 = Binary value to be converted R2 = Zero suppression flag: R2 = 0 =>suppress leading zeros' R2 = 1 =>do not suppress leading zerosr Call: CALL $CBDMG2 CBDSGv! Convert binary to signed decimalp Input: Output: B R0 = address of output buffer R0 = points to next byte in output' buffer after converted stringt" R1 = Binary value to be converted R2 = Zero suppression flag: R2 = 0 =>suppress leading zeros' R2 = 1 =>do not suppress leading zerosa Call: CALL $CBDSG2 CDDMGa+ Convert double precision binary to decimali Input: Output:pB R0 = address of output buffer R0 = points to next byte in output' buffer after converted string - R1 = Address of binary value to be convertedR R2 = Zero suppression flag: R2 = 0 =>suppress leading zeros' R2 = 1 =>do not suppress leading zerost Call: CALL $CBDMG2 CBOMGt" Convert binary to octal magnitude Input: Output:gB R0 = address of output buffer R0 = points to next byte in output' buffer after converted stringi" R1 = Binary value to be converted R2 = Zero suppression flag: R2 = 0 =>suppress leading zeros' R2 = 1 =>do not suppress leading zerost Call: CALL $CBOMG2 CBOSGr convert binary to signed octale Input: Output:RB R0 = address of output buffer R0 = points to next byte in output' buffer after converted stringn" R1 = Binary value to be converted R2 = Zero suppression flag: R2 = 0 =>suppress leading zeros' R2 = 1 =>do not suppress leading zerosr Call: CALL $CBOSG2 CBTMGi convert byte to octal magnitude Input: Output:B R0 = address of output buffer R0 = points to next byte in output' buffer after converted stringc" R1 = Binary value to be converted R2 = Zero suppression flag: R2 = 0 =>suppress leading zeros' R2 = 1 =>do not suppress leading zerosr Call: CALL $CBTMG2 CBTA( general purpose binary to ASCII convert Input: Output: B R0 = address of output buffer R0 = points to next byte in output' buffer after converted stringt" R1 = Binary value to be converted R2 = conversion control mask: bits 0-7 conversion radix 2-10. bit 8 set => signed conversion+ bit 9 set => don't suppress leading zerost: bit 10 set => replace leading zeros, if any, with blanks3 clear => don't replace leading zeros with blanks % bits 11-15 field width range = 1-31. Call: CALL $CBTA 2 CVTUCc lower to upper case conversion Input:: Output: 6 R0 = address of text string to shift R0 = not altered0 R1 = address of output buffer R1 = not altered0 R2 = count of characters to scan R2 = destroyed Call: CALL $CVTUC2 DATt" convert binary date data to strng Input: Output: = R0 = address of output buffer R0 = points to next free bytet$ R1 = Address of 3-word binary date.$ Refer to GTIM$ directive for format l Call: CALL $DAT2 TIMl# convert binary time data to string  Input: Output:= R0 = address of output buffer R0 = points to next free byte0" R1 = start address of 5-word time! buffer. Refer to GTIM$ directive for formata$ R2 = format of resultant conversion R2 = 1 => convert only hourse" R2 = 2 => convert to format HH:MM% R2 = 3 => convert to format HH:MM:SSt' R2 = 4 => convert to format HH:MM:SS.St Call: CALL $TIM2 EDMSGd( general purpose output format processor Input: Output:T> R0 = output buffer address R0 = updated to next free byte in00O~z~* output bufferf& R1 = address of format control string( R2 = starting address of argument block Call: CALL $EDMSG- Summary of control string format characters:t3 Format Char.. Next word in Argument block is... A %A,%nA,$VA address of ASCII character or string. Move to output.R? %B,%nB,%VB address of a binary byte. Convert to OCTAL notation ; %D,%nD,%VD binary word. Convert to signed DECIMAL notation ? %E,%ne,%VE address of extended ASCII character or string. Mover= to output. Non-printing characters are replaced with SPACE.o( %F,%nF,%VF insert a form feed in output@ %I address of an ASCIZ string to be logically inserted at this% point in the format control string. ? %M,%nM,%VM binary word. Convert to magnitude DECIMAL notation.C- %N,%nN,%VN insert carriage return in output.n: %O,%nO,%VO binary word. Convert to signed OCTAL notation.= %P,%nP,%VP binary word. Convert to magnitude OCTAL notation.%> %R,%nR,%VR Radix-50 binary values. Convert to ASCII notation.% %S,%nS,%VS Insert a SPACE in output.eD %T,%nT,%VT address of double precision values. Convert to magnitude DECIMAL notation.s? %U,%nU,%VU binary word. Convert to magnitude DECIMAL notation.tD %X,%nX,%VX Radix-50 filename string. Convert to full ASCII filename string.%8 %Y Date in binary form. Convert to DD-MMM-YY notation." %1Z Time. Convert to HH notation& %2Z Time. Convert to HH:MM notation.( %3Z Time. Convert to HH:MM:SS notation+ %4Z Time. Convert to HH:MM:SS.S notation.I; %n< Define blanked field beginning. Insert 'n' SPACES andV backup to current position.a8 %n> Advance to end of currently defined blanked field.2 SAVREGL Several routines are available for the save/restore of processor registers.KThese are all co-routines, that is they save the registers on the stack andoJreturn with the address of a register restore routine on top of the stack.KThe calling routine need only "RETURN" to the restore routine, which, after Krestoring the registers will "RETURN" to the caller's caller. Refer to the FSystem library reference for more information. Calling sequences are:To save: Use the command:n#R0-R5 JSR PC,$SAVAL or CALL $SAVALeR3-R5 JSR R5,$SAVRGR0-R2 JSR R2,$SAVVRR1-R5 JSR R5,.SAVR12 MUL # single precision unsigned multiplyg Input: Output:o1 R0 = multiplier R0 = high order part of resultn2 R1 = multiplicand R1 = low order part of result Call: CALL $MUL2 DIVn! single precision unsigned dividei Input: Output:t R0 = dividend R0 = quotient R1 = divisor R1 = remainder  Call: CALL $DIV2 DMUL double precision multiply Input: Output:,2 R0 = multiplier R0 = high order part of productD R2 = high order part of multiplicand R1 = low order part of product$ R3 = low order part of multiplicand Call: CALL $DMUL 2 DDIV double precision divide Input: Output: ' R0 = unsigned divisor R0 = remainder3 R1 = high order dividend R1 = high order quotientt1 R2 = low order dividend R2 = low order quotient Call: CALL $DDIVe2 CORE Allocate dynamic memory.MInput: Output:;R0 = Address of free memory listhead Carry/Clear => successh$ R0 = address of allocated blockBR1 = Size of block requested. R1 = actual size of block allocated R1 > 0 => best fit allocation R1 < 0 => first fitCall:u CALL $RQCB  Release dynamic memory. Input: Output:s4 R0 = Address of free memory listhead R0 = unchanged1 R1 = Size of block to be released R1 = destroyedl4 R2 = Address of block to be released R2 = destroyed Call: CALL $RLCByInput: Output:;R0 = Address of free memory listhead Carry/Clear => successh$ R0 = address of allocated blockBR1 = Size of block requested. R1 = actual size of block allocated R1 > 0 => best fit allocation R1 < 0 => first fitCall:u CALL $RQCB  Release dynamic memory. Input: Output:s4 R0 = Address of free memory listhead R0 = unchanged1 R1 = Size of block to be released R1 = de00WX:~x|Oxss1 TCP > A program to do TAPE copies from LUN 1 to LUN 2 in Image Mode  MCR>TCP  2 LUN 1 is MT: - LUN 2 is MM: (may be Re-assigned) B No Tape Positioning is done prior to starting, (on either drive.) ( Maximum record size = 30000 (10) bytes.  All Errors are IGNORED D Copying is continued until 2 successive EOF's (an EOV) are detected > This purposely dumb program may copy tapes where others fail.7 It can, however, wipe out anything on the output tape.1 TECoB TECO invokes the TECO text editor. TECO is an unsupported editorH capable of both basic editing and complex programmed string processing. Formats; TECO file-spec to edit an existing fileC TECO out-file-spec=in-file-spec to edit from one file to another7 MAKE file-spec to create a new fileA MUNG cmd-file-spec to execute a TECO command fileG MUNG cmd-file-spec,text-arg as above, but passes a text argumentD Additional help may be obtained by typing "AID TECO keyword" where # "keyword" is one of the following:oU BEGINNER -- aid for beginners MANUAL -- info on TECO documentation N VTEDIT -- screen editor MUNG -- execute canned TECO macrosB INITIALIZATION MEMORY -- re-editing same fileB KEYPAD VT52 KEYPAD VT100 -- Keypad drawings2 QUALIFIERS -- switches to control setup J NOTE: If your terminal is a VTXXX or a Soroc, the system TECO.INI is usedI and VTEDIT is automatically invoked. On a hardcopy terminal, TECO startso@ normally. 3 CNTL/C's will exit with no changes to your file. ToO suppress initialization type TEC/NOIni filespec or see a TECO expert for help.t 2 BEGINNER6 This HELP sequence gives help to beginners with TECO. ACCESS2 To create a new file: means carriage return MAKE filespec & To modify a file that already exists: TEC filespec J After getting the TECO * prompt, single letter commands can be entered toK move the editor's pointer around within the buffer containing the contentsTG of your file. Commands are entered by typing the key, then executed bynK typing the ESC key twice. Commands can be entered one at a time or B in a long string followed by two escapes. In this and other TECO A documentation, the ESCape key is indicated by a dollar sign ($).eI For a beginner's list of TECO commands, type AID TECO BEGINNER COMMANDS.r5 For a short example, type AID TECO BEGINNER EXAMPLE.b 3 COMMANDS) BEGINNER'S LIST OF TECO COMMANDSt COMMAND EXPLANATIONtA EX Terminates TECO session, i.e. closes existing file and exitsc from TECO.6 Itext$ Inserts text into buffer at pointer location.J FStext1$text2$ Searches through buffer for text1. If found, replaces with: text2. If text1 is not found, an error message is given.+ T Types text from pointer to end of line. nT Types n lines from pointer.; HT Types entire contents of buffer from beginning to end.E V Types current line (verify).6 nV Types current line and n-1 lines above and below.) J Jumps pointer to beginning of buffer.c$ ZJ Jumps pointer to end of buffer.# C Advances pointer one character.f# nC Advances pointer n characters.x+ -nC Moves pointer backwards n characters.n; For more beginner's commands, type AID TECO BEGINNER MORE.a 3 EXAMPLE. SHORT TECO EXAMPLE 2 (Text and commands typed by you are highlighted.) MAKE TRY.TXTo2 *IThis is the first line of the file.5 The I command allows us to enter as manyb' lines of input as we wish.n $$r *EX$$ >TEC TRY.TXT. *L$$p *T$$a) The I command allows us to enter as manyx- *CCCCCCCCCCCCCCT$$ -or 14CT allows us to enter as manyd4 *DDDDDDIPERMITS$V$$ -or 5DIPERMITS* The I command PERMITS us to enter as many *HT$$$ This is the first line of the file.* The I command PERMI00_~z~*TS us to enter as many lines of input as we wish.d *EX$$ >3 MORE& MORE BEGINNER'S TECO COMMANDS COMMAND EXPLANATIONm L Advances pointer one line. nL Advances pointer n lines. -nL Reverses pointer n lines.e5 0L Moves pointer to start of current line (zero L).0, D Deletes character following the pointer.0 nD Deletes n characters following the pointer.1 -nD Deletes n characters preceding the pointer.5 K Kills (deletes) text from pointer to end of line,R$ including the at end of line.( nK Kills n lines of text from pointer.; Stext$ From pointer position, searches for specified textL5 in buffer. If text is found pointer is placed aftern1 text. If text is not found, an error message iss given.= ^C^C Emergency exit from TECO; no changes made to file willh be saved. (^C means CTRL/C).2 INITIALIZATIONI TECO decodes its commands with a built-in command decoder. If TECO findsiF a file named TECO.INI in your current default directory, its contentsC are executed as a TECO macro during startup. To disable the lookup./ of TECO.INI, the qualifier /NOINI can be used.e2 MANUALL There is a one hundred fifty page manual on TECO that explains all you everI want to know about the weird and wonderful world of TECO. TECO has more;M commands than the colonel has chickens, and probably no one ever learns themN all. K There is also a supplementary manual on VTEDIT and the various MUNG macrosa available.iJ If you just want to look something up, Hans Goebel has nicely printed and! bound copies of these documents.uN If you must have your own copy, use the PRINT command to print the following: DR2:[342,34]TECO.DOC DR2:[342,34]VTEDIT.DOC2 MEMORY@ TECO automatically remembers the file being edited. The file'sB name is stored in a file named TECF00.TMP in your current default? directory. If you invoke TECO without specifying a file-spec, D TECO will read its memory logical and re-edit the last edited file.J TECO's memory feature is completely inhibited by the /NOMEMORY qualifier. 2 QUALIFIERS /FINDC Initially position to (find) the last marked position in the input = file. Position is marked with the VTEDIT ESCape-F commands. /INSPECT; Simply read the file-spec, don't create a new edited copy.e /NOCREATEB Do not automatically create a new file if the file specified by a$ TECO command doesn't already exist. /NOINI (/NOI)< Do not attempt to find or use TECO's private initialization file TECO.INI.' /NOMEMORY (/NOM) ; Do not read, create, or use TECO's memory file TECF00.TMP.S /SCROLLD Automatically enter split screen scrolling mode. The bottom 1/4 ofE the screen's lines are scrolled. /SCROLL:n sets the number of linesC to scroll to n. /VTEDIT4 Automatically invoke the TECO keypad editor VTEDIT. /VTEDIT:HOLDl4 Set the VTEDIT keypad editor into hold screen mode. /VTEDIT:SEEALLlE Set the VTEDIT keypad editor into SEEALL mode. (Shows CR, Tabs, etc)v /VTEDIT:HOLD:SEEALLE Set the VTEDIT keypad editor into both hold screen and SEEALL modes. 2 VTEDITL VTEDIT is a powerful screen oriented editing macro. While somewhat slow, itK provides features that other screen oriented editors cannot match. If yourrH terminal is a VT100 or eqivalent, the macro will be loaded and started G automatically. To get on line help on using the keypad and most of thelJ more usefull features, hit the "PF2" key after the macro starts. For more? information on the VTEDIT macro, see the VTEDIT documentation.I, For more help type AID TECO MANUAL2 MUNGN MUNG is the rather cryptic acronym that (recursively) stands for "MUNG UNTILLM NO GOOD". To execute a macro named SQU on a file named JUNK.MAC, for example - you could use the following command sequencee MCR>TECO /NOI/NOMrC *ERJUNK.MAC$Y$$ (that loads the file JUNK.MAC into memory)t, *EISQU$$ (that executes the macro)4 ... (then the macro executes and does its thing)J There are several ways such a macro could exit, so I wi00gX:~x|Oxssll not try to show9 them all. The much easier way to execute such a macro iso MCR>MUNG SQU JUNK.MAC H Note that the macro needn't be in your account before you can MUNG it. K MUNG will first look in the account you are in, then in the library. ThereTL is a small library of macros in account DP1:[342,34] that are available forJ public use. If you want to customize any macros, please copy them to yourF own account first. If you have any questions, please see Hans Goebel.2 KEYPAD Diagram of the vtedit keypade& Options: AID TECO KEYPAD VT52 AID TECO KEYPAD VT1003 VT52, )0 Keypad layout Other keys, lqqqqqqqqqwqqqqqqqqqwqqqqqqqqqwqqqqqqqqqkM x "RED" x "BLUE" x "GRAY" x "^" x CTRL/C Exit from macrolP x Save x Help x Unsave x Up In x CTRL/D Kill rest of line*H x text* x x text x Column*x CTRL/K Kill line*H tqqqqqqqqqnqqqqqqqqqnqqqqqqqqqnqqqqqqqqqu CTRL/U Kill start of lineN x "7" x "8" x "9" x "v" x CTRL/W Set cursor line*M x Open x Page* x Quote x Down in x CTRL/Y Yank next page*M x line* x x next* x Column* x CTRL/Z Exit from macro H tqqqqqqqqqnqqqqqqqqqnqqqqqqqqqnqqqqqqqqqu BK SP Go to end of line*N x "4" x "5" x "6" x ">" x DELETE Delete previous*Q x Up x Delete* x Delete x Cursor x 2 ESC's Repeat TECO commandqP x line* xCharacterx last x Right* x CTRL/V Toggle Seeall mode6 tqqqqqqqqqnqqqqqqqqqnqqqqqqqqqnqqqqqqqqqu Arguments4 x "1" x "2" x "3" x "<" xN x Top x Bottom x Start x Cursor x All starred (*) commandsQ x of page*x of page x of line x Left* x optionally take an argument I tqqqqqqqqqvqqqqqqqqqnqqqqqqqqqnqqqqqqqqqu entered as [-]2 x "0" x "." x Enter x2 x Down line* x Search* x Search x2 x x xargument*x, mqqqqqqqqqqqqqqqqqqqvqqqqqqqqqvqqqqqqqqqj( Type any character to start the macro: 3 VT100"V )0 Type any lqqqqqqqwqqqqqqqwqqqqqqqwqqqqqqqk [ESC] ^A Append [no FF] text*S key to x "PF1" x "PF2" x "PF3" x "PF4" x [ESC] ^B Delete [next] word*aR start x Save x Help x Paste x Teco* x ^D Kill rest of line*W macro x Text+*x x text xcommandx [ESC] ^Eq Execute [iter] Q-reg q*Q tqqqqqqqnqqqqqqqnqqqqqqqnqqqqqqqu [ESC] ^F Forward [cont] over word*qQ All (*) x "7" x "8" x "9" x "-" x ^Gq Get text from Q qK commands x Open x Page* x Mark/ x File x ^K Kill line+*]L take opt x line* x x quote*x Searchx ^N File search*N arg as: tqqqqqqqnqqqqqqqnqqqqqqqnqqqqqqqu [ESC] ^R Back [cont] over word*Q ESC [-] x "4" x "5" x "6" x "," x ^T[:]q Cut text to Q q+* R x Up x DeletexDelete/x Top x ^U Kill start of lineY x Line* x char* xrestorexof filex [ESC] ^V Alter screen [hold] mode*eJ tqqqqqqqnqqqqqqqnqqqqqqqnqqqqqqqu ^W Set line*/re-paintR All (+) x "1" x "2" x "3" x E x ^x[:]q Save text in Q q+*O commands x Top ofxBottom x Start x N x ^Y Yank next page* R operate x page+*xof pagexof linex T x ^xx Insert ASCII("x")*K from Dot tqqqqqqqvqqqqqqqnqqqqqqqu E x BK SP Go to end of line*iM to Mark x "0" x "." x R x DELETE Delete previous*^T if Mark x Down line* xSearch x Searchx ESC ESC Repeat RED-key command*P is set x xagain *x arg * x ESC F Find front of file*I mqqqqqqqqqqqqqqqvqqqqqqqvqqqqqqqj ESC H Display help frame E To Exit: ^C Return to TECO ESC ^M Set left margin* C ESC Z (or^Z) Exit from TECO ESC N Get next word*qE ESC - ^Z Kill 00op~z~*output, exit ESC T Select words* x "." x R x DELETE Delete previous*^T if Mark x Down line* xSearch x Searchx ESC ESC Repeat RED-key command*P is set x xagain *x arg * x ESC F Find front of file*I mqqqqqqqqqqqqqqqvqqqqqqqvqqqqqqqj ESC H Display help frame E To Exit: ^C Return to TECO ESC ^M Set left margin* C ESC Z (or^Z) Exit from TECO ESC N Get next word*qE ESC - ^Z Kill R)0lqqqqqqqqwqqqqqqqqwqqqqqqqqwqqqqqqqqk lqqqqqqqqwqqqqqqqqwqqqqqqqqwqqqqqqqqkWx x x x x x x x Fndnxt x Del L xaXx x x x x x  Gold x Help x x xex x x x x x x x Find x Und L xnNx x x x x tqqqqqqqqnqqqqqqqqnqqqqqqqqnqqqqqqqquVmqqqqqqqqvqqqqqqqqvqqqqqqqqvqqqqqqqqj x Page x Sect x Append x Del W x' x x x x xwmDelete Rubout character. x Commandx Fill x Replacex Und W x DLinefeed Rubout word. tqqqqqqqqnqqqqqqqqnqqqqqqqqnqqqqqqqquYBack space Backup to beginning of line. x Advancex Backup x Cut x Del C xiJCTRL/A Append page(s) to buffer. x x x x xvCTRL/B Position at bottom of file. x Bottom x Top x Paste x Und C xRCTRL/C Exit to Teco (MI to restart). tqqqqqqqqnqqqqqqqqnqqqqqqqqnqqqqqqqquICTRL/F File search. x Word x  Eol x Char x xnNCTRL/K Kill output file and exit. x x x x Enter xgCTRL/R Reverse editing mode. xChngcasex Del Eolx Specinsx x OCTRL/T Position at top of file. tqqqqqqqqvqqqqqqqqnqqqqqqqqu xfSCTRL/U Delete to beginning of line. x Line  x Select x xOCTRL/V Enter / Exit See-all mode. x x x Subs xu^CTRL/W Refresh / Set screen. x Openline x Reset x xKCTRL/Z Exit and close file. mqqqqqqqqqqqqqqqqqvqqqqqqqqvqqqqqqqqjv2 A service of Teco enterprises. [x x v x %x x x < x > x x x xqx ^ x x x x x xo'x x v x x xlx x x xRx ^ x x-ox x x x %x x x x xfx x x v xx x ^exnx x x xemx %x x x x x xex ^ x x xqxqx x x x x4x x x v xetx ^ x Down%x x x x x x 'x x x x x Left x Right 2x UpType a key for help on that key.-Press return for more, or a space to exit.l Additional keys:.CTRL/E Exit and spawn "FOO filename.ext"1CTRL/L Insert a form feed (page delimiter). ,CTRL/D Fill and justify selected text.?CTRL/\ Convert multiple to single spaces in selected area &ESC ESC Repeat last Teco command.<ESC number Same as GOLD number except number isn't echoed.6ESC CTRL/A Append page(s) from secondary input file.7ESC CTRL/I Include page(s) from secondary input file.nCESC CTRL/Z Write select or current page to secondary output file.i6To return to the keypad diagram, press the return key..For help on another keypad key, press the key. To exit from HELP, type a space. f=The ^ (up arrow) key moves the cursor to the character above.i6To return to the keypad diagram, press the return key..For help on another keypad key, press the key. To exit from HELP, type a space. e?The v (down arrow) key moves the cursor to the character below.e6To return to the keypad diagram, press the return key..For help00wX:~x|Oxss on another keypad key, press the key. To exit from HELP, type a space. ?The > (right arrow) key moves the cursor to the next character.HEThe line key advances or backs up the cursor to the nearest beginningc#of a line (see ADVANCE and BACKUP).k6To return to the keypad diagram, press the return key..For help on another keypad key, press the key. To exit from HELP, type a space. )CThe < (left arrow) key moves the cursor to the preceding character.a6To return to the keypad diagram, press the return key..For help on another keypad key, press the key. To exit from HELP, type a space. eCThe ENTER key is used to terminate the input of commands and searchcstrings.EThe SUBS key deletes the search string, replaces it with the contentsEof the paste buffer, and finds the next occurrence of the string. TotEaccomplish multiple substitutions, you can use the following sequence of commands: 1. Press SELECT. 2. Type the new text.a 3. Press CUT.r 4. Press FIND.( 5. Enter the text you wish to replace.EEach time you press SUBSTITUTE, one substitution is made and the nextEoccurrence of the search string is found. You can use a repeat countfor multiple substitutions.t6To return to the keypad diagram, press the return key..For help on another keypad key, press the key. To exit from HELP, type a space. lHThe GOLD key lets you use the lower function of the editing keys. Press4the GOLD key first and then the key you wish to use.=The GOLD key is also used to enter repeat counts. Press GOLDBand then the main keyboard numeric keys, followed by the key to be=repeated. CTRL/U should be used to abort an unwanted number.pCThe GOLD key can also change to DRAW mode if pressed twice, or backg@to edit mode. Use the Control R character to change from edit to@overprint mode and control G will prompt for the draw character,Cinitially *. Use the cursor controls to move the cursor and in DRAWyDmode, TECEDT will put the "draw character" at the position. It fillsAin spaces ahead in the line to fill in otherwise unused areas andmBthus permits OVERPRINT mode editing inside boxes without affectingthe rest of the screen.u6To return to the keypad diagram, press the return key..For help on another keypad key, press the key. To exit from HELP, type a space. o:The HELP key is used to obtain help on the editing keypad.6To return to the keypad diagram, press the return key..For help on another keypad key, press the key. To exit from HELP, type a space. s@The FIND NEXT key searches for the next occurrence of the searchCstring entered by the FIND key. The direction of the search is the+current direction mode (ADVANCE or BACKUP).kCThe FIND key searches for an occurence of a string. Press the FINDrEkey and then enter the string from the main keyboard. End the stringsDby pressing either the ADVANCE or BACKUP key to set the direction of the search.t6To return to the keypad diagram, press the return key..For help on another keypad key, press the key. To exit from HELP, type a space. DThe DEL L key deletes text from the cursor position up to the end ofDthe current line including the line terminator. If the cursor is atFthe beginning of a line, the entire line is deleted. The deleted text#is saved in the delete line buffer.eEThe UND L key inserts the contents of the delete line buffer ahead ofP the cursor.h6To return to the keypad diagram, press the return key..For help on another keypad key, press the key. To exit from HELP, type a space. EThe DEL C key deletes the character on which the cursor is positionedr,and saves it in the delete character buffer.AThe UND C key inserts the contents of the delete character bufferaahead of the cursor.6To return to the keypad diagram, press the return key..For help on another keypad key, press the key. To exit from HELP, type a space. BThe DEL W key deletes text from the cursor to the beginning of the6next word, storing the text in the delete word buffer.EThe UND W ke00p~z~*y inserts the contents of the delete word buffer ahead ofw the cursor.o6To return to the keypad diagram, press the return key..For help on another keypad key, press the key. To exit from HELP, type a space. tDThe SELECT key marks one end of a select range. A select range is aAblock of text on which various operations (such as CUT, APPEND orp@FILL) can be performed. You create a select range by moving theAcursor to either the beginning or the end of the text you wish tobDselect, pressing the SELECT key, and then moving to the opposite endFof the text. You can then perform the desired operation on the range.DThe RESET key is used to cancel the effect of the GOLD key if it was/pressed by mistake or to cancel a select range.o6To return to the keypad diagram, press the return key..For help on another keypad key, press the key. To exit from HELP, type a space. u6To return to the keypad diagram, press the return key..For help on another keypad key, press the key. To exit from HELP, type a space. eEThe line key advances or backs up the curser to the nearest beginningr#of a line (see ADVANCE and BACKUP).E@The OPEN LINE key inserts a carriage return after the cursor andAleaves the cursor position unchanged. Pressing the OPEN LINE keyaCwhen the cursor is at the beginning of the line creates a new blanksline.e6To return to the keypad diagram, press the return key..For help on another keypad key, press the key. To exit from HELP, type a space. @The WORD key moves the cursor forward or backward by a word (seeADVANCE and BACKUP).BThe CHGC key changes the case of a range of characters as follows:8 1. If there is a select range active, the case of each9 alphabetic character in the select range is changed.N N< 2. If 1 does not apply and the cursor is positioned on the7 current search string, the case of each alphabetic,/ character in the search string is changed.d y< 3. If 1 and 2 do not apply, then the case of one character: is changed, and the cursor moves one character in the current direction.6To return to the keypad diagram, press the return key..For help on another keypad key, press the key. To exit from HELP, type a space. FThe EOL key moves the cursor forward or backward to the nearest end ofline.cDThe DELETE EOL key deletes all characters to the right of the cursorCin the current line, including the character on which the cursor is3 positioned. 6To return to the keypad diagram, press the return key..For help on another keypad key, press the key. To exit from HELP, type a space. CThe CHAR key advances or backs up the cursor by one character (seedADVANCE and BACKUP).EThe SPECINS key is used to insert nonprinting ASCII characters. ThisaEis done by pressing the GOLD key, entering the decimal representationtDof the character, pressing the GOLD key again, and pressing SPECINS.6To return to the keypad diagram, press the return key..For help on another keypad key, press the key. To exit from HELP, type a space. dCThe ADVANCE key sets the current direction to advance for the CHAR,kAWORD, LINE, EOL, PAGE, SECTION, FIND and FIND NEXT keys. Advance Emeans the movement will occur in the direction toward the end of ther%file, that is, to the right and down. EThe BOTTOM key positions the cursor at the bottom of the text buffer.g6To return to the keypad diagram, press the return key..For help on another keypad key, press the key. To exit from HELP, type a space. FThe BACKUP key sets the cursor direction to backup for the CHAR, WORD,DLINE, EOL, PAGE, SECTION, FIND and FIND NEXT keys. Backup means theCmovement will occur in the direction of the beginning of the file, that is, to the left and up.?The TOP key positions the cursor at the top of the text buffer.y6To return to the keypad diagram, press the return key..For help on another keypad key, press the key. To exit from HELP, type a space. kDThe CUT key deletes the select range storing it in the paste buffe00:~x|Oxssr.CThe select range is all the text between the selected position (see,ESELECT) and the current cursor position. If no select has been done,l@and the cursor is positioned on the current search string, thatCstring is cut. The previous contents of the paste buffer are lost.fBThe PASTE key inserts the contents of the paste buffer directly infront of the cursor.6To return to the keypad diagram, press the return key..For help on another keypad key, press the key. To exit from HELP, type a space. EThe PAGE key moves the cursor to the top of the next page. A page isEIdefined as all characters up to a formfeed or until the buffer is filled. GThe COMMAND key allows the user to input a Teco command to be executed.hBThe command is terminated by pressing the ENTER key on the keypad.6To return to the keypad diagram, press the return key..For help on another keypad key, press the key. To exit from HELP, type a space. o>The SECTION key moves the cursor 16 lines forward or backward,Adepending on the current direction mode (see ADVANCE and BACKUP).gCThe FILL key performs a word fill on the select range. A word fill Dreformats a block of text so that as many full words as possible areEplaced on each line without exceeding the right margin. For purposesE=of the FILL command, only spaces are used as word delimiters.t6To return to the keypad diagram, press the return key..For help on another keypad key, press the key. To exit from HELP, type a space. eCThe APPEND key deletes the selected range and adds it to the end ofV@the paste buffer. The selected range is all the text between theFselected position (see SELECT) and the current cursor position. If no@select has been done and the cursor is positioned on the current'search string, that string is appended. AThe REPLACE key deletes the select range and replaces it with theecontents of the PASTE buffer.r6To return to the keypad diagram, press the return key..For help on another keypad key, press the key. To exit from HELP, type a space. dJThe beginning of line key moves the cursor to the beginning of the currentGline. If the cursor is already on the beginning of a line, it moves to the previous line.HThe delete to beginning of word key is used to delete all character fromGthe cursor position to the beginning of the word containing the cursor.eFIf the cursor is on the first character of a word the previous word isdeleted.CThe define key is used to define a new function for an editing key.BThe user is prompted first to press the key to be defined, then toenter the definition.eDThe delete to beginning of line key is used to delete all charactersCin the current line to the left of the cursor. If the cursor is onnCthe first character of a line, the entire previous line is deleted.o4The exit key is used to return to Teco command mode.6To return to the keypad diagram, press the return key..For help on another keypad key, press the key. To exit from HELP, type a space.diting key.BThe userZ )0 lqqqqqqqqwqqqqqqqqwqqqqqqqqwqqqqqqqqk lqqqqqqqqwqqqqqqqqwqqqqqqqqwqqqqqqqqkZ x x x x x x x x Fndnxt x Del L xZ x x x x x x  Gold x Help x x xh x x x x x x x x Find x Und L xO x x x x x tqqqqqqqqnqqqqqqqqnqqqqqqqqnqqqqqqqquW mqqqqqqqqvqqqqqqqqvqqqqqqqqvqqqqqqqqj x Page x Sect x Append x Del W xwO x x x x x u Delete Rubout character. x Commandx Fill x Replacex Und W xQ Linefeed Rubout word. tqqqqqqqqnqqqqqqqqnqqqqqqqqnqqqqqqqqu Y Back space Backup to beginning of line. x Advancex Backup x Cut x Del C x Q CTRL/A Append page(s) to buffer. x x x x xju CTRL00~z~*/B Position at bottom of file. x Bottom x Top x Paste x Und C x Q CTRL/C Exit to Teco (MI to restart).tqqqqqqqqnqqqqqqqqnqqqqqqqqnqqqqqqqqu W CTRL/F File search. x Word x  Eol x Char x x S CTRL/K Kill output file and exit. x x x x Enter x.l CTRL/R Reverse editing mode. xChngcasex Del Eolx Specinsx xQ CTRL/T Position at top of file. tqqqqqqqqvqqqqqqqqnqqqqqqqqu xU CTRL/U Delete to beginning of line. x Line  x Select x x(Z CTRL/V Enter / Exit See-all mode. x x x Subs xc CTRL/W Refresh / Set screen. x Openline x Reset x x Q CTRL/Z Exit and close file. mqqqqqqqqqqqqqqqqqvqqqqqqqqvqqqqqqqqj3  A service of Teco enterprises.    x x v x& x x x < x > x x x x x ^ x x  x x x x( x x v x x x x x x x x ^ x x  x x x x& x x x x x x x x v x x ^ x x x x x  x& x x x x x x x ^ x x x x x x x x x x x x v x  x ^ x Down& x x x x x x( x x x x x Left x Right3 x UpType a key for help on that key.. Press return for more, or a space to exit. x x x x ^ x x  x x x x& x x x x x x x x v x x ^ x x x x x  x& x x x x x x x ^ x x x x x x x x x x x x v x  x ^ x Down& x x x x x NOPARITY PASALLBITS PRINTER PROCESSCONTROLC0 SCOPE SIMULATEFORMFEED [SFF] TAPE8 TWOSTOPBITS [TSB] VERTICALFILL [VFILL]2 TYPE The valid terminal types are:R R ASR33 KSR33 ASR35 VT05T VT50 VT52 VT61 VT100O LA30S LA30P LA36 LA120S LA180S ADAM3 BEEHIVE SOROC 2 OPTIONSI T The valued options are:0 SPEED:n 'n' is numeric, 134, 'EXTA' or 'EXTB'7 SPEED:(m:n) 'm' is the keyboard. 'n' is the printer.O$ READAHEAD:type Type may be one of: NONE DEFERREDPROCESSING [DP]E IMMEDIATEPROCESSING [IP]/ NAME:type (typ AID TER TYPE for valid types) * FILL:n Normally 0 - 6 and 7 for a LA30S WIDTH:n Set page width. LENGTH:n Set page length. HANGUP Hang up dialup line.- PARITY:[EVEN!ODD] Set parity type for line.S3 NOPARITY Disable parity generation and checking.p are:0 SPEED:n 'n' is numeric, 134, 'EXTA' or 'EXTB'7 SPEED:(m:n) 'm' is the keyboard. 'n' is the printer.O$ READAHEAD:type Type may be one of: NONE DEFERREDPROCESSING [DP]E IMMEDIATEPROCESSING [IP]/ NAME:type (typ AID TE00~x|Oxss DEFIN$ T.AS33,1. DEFIN$ T.KS33,2. DEFIN$ T.AS35,3. DEFIN$ T.L30S,4. DEFIN$ T.L30P,5. DEFIN$ T.LA36,6. DEFIN$ T.VT05,7. DEFIN$ T.VT50,8. DEFIN$ T.VT52,9. DEFIN$ T.VT55,10. DEFIN$ T.VT61,11. DEFIN$ T.L180,12. DEFIN$ T.V100,13. DEFIN$ T.L120,14. DEFIN$ T.SCR0,15. DEFIN$ T.LA12,16. DEFIN$ T.L100,17. DEFIN$ T.LA34,18. DEFIN$ T.LA38,19. DEFIN$ T.V101,20. DEFIN$ T.V102,21. DEFIN$ T.V105,22. DEFIN$ T.V125,23. DEFIN$ T.V131,24. DEFIN$ T.V132,25. DEFIN$ T.LA50,26. DEFIN$ T.LQP1,27. DEFIN$ T.LQP2,28. DEFIN$ T.BMP1,29. DEFIN$ T.V2XX,30. DEFIN$ T.SORO,31. DEFIN$ T.BEEH,32. DEFIN$ T.USR0,128.  DEFIN$ T.USR1,T.USR0+12 DEFIN$ T.USR2,T.USR1+1 DEFIN$ T.USR3,T.USR2+1N DEFIN$ T.USR4,T.USR3+1100,13. DEFIN$ T.L120,14. DEFIN$ T.SCR0,15. DEFIN$ T.LA12,16. DEFIN$ T.L100,17. DEFIN$ T.LA34,18. DEFIN$ T.LA38,19. DEFIN$ T.V101,20. DEFIN$ T.V102,21. DEFIN$ T.V105,22. DEFIN$ T.V125,23. DEFIN$ T.V131,24. DEFIN$ T.V132,25. DEFIN$ T.! ASR33 ASR35 BEEH BMP1 KQP2 KSR33 LA12 LA30S LA30P LA34 LA36 LA38 LA50 LQP1 L100 L120 L180 SCR0 SORO USR0 USR1 USR2 USR3 USR4 VT05 VT50 VT52 VT55 VT61 V100 V101 V102 V105 V125 V131 V132 V2XX 1 THErapy6 RADIATION THERAPY PHYSICS PROGRAMS  BASIC programs: < ARBEAM ARCISO CADDCAL < CADDCO60 CALCO60 CALOG < CESIUM CONTOUR CONTOUREL < COUNT DRSCO60 FLETINP < HODGCAL IRIDINP IRREGGEN < SELECT TARCO60 TORCAL   FORTRAN programs: < AECLPLAN ARBEAM ARCISO < CALPLOT CALPLOTLV CALYEAR < CO60PLAN CONPLOT COOPP < DECAY ELEPLAN EYEPLAN < IRREG ISOPLAN MISODOS < MISOROT MULCO60 MULELE < MULISO MULISOAEC NEUISO < OMNISO PAROPP PAROPPAEC ( SKINGAP SSDISO  2 AEClplan  AECLPLAN.TSK  K This FORTRAN program calculates multiple beam unit sets for the K Therac-20 using information generated by MULISOAEC or input from  the terminal.  2 ARBeam  ARBEAM.BAS  K This BASIC program creates a beam characteristics file for later ? use by ARBEAM.TSK (generally used for arc therapies).   ARBEAM.TSK  K This FORTRAN program creates a beam profile data file for later? use by ARCISO.TSK (generally used for arc therapies).o m2 ARCiso u ARCISO.BASs K This BASIC program reformats a contour file into radii andiF weighting factors for later use by ARCISO.TSK (arc therapy).   ARCISO.TSKC oJ This FORTRAN program produces arc therapy isodose distributions. S 2 CADdcaly e CADDCAL.BAS K This BASIC program provides the user with a percent depth dose K table for 9 user entered square fields and a user entered SSD foro the 6 MV Varian. o 2 CADdco60 S CADDCO60.BAS  hK This BASIC program provides the user with a percent depth doseeK table for 9 user entered square fields and a user entered SSD forS the AECL Cobalt 60.R p 2 CALco60u  CALCO60.BAS iK This BASIC program calculates and logs the timer error for thepK AECL Cobalt 60. This timer error is use00~z~*d by COOPP and CO60PLAN + in calculating the time settings.  2 CALog   CALOG.BAS K This BASIC program calculates and logs the daily calibration datai0 for both the Varian and the Therac-20. 2 CALplot  r CALPLOT.TSK sK This FORTRAN program plots the Varian and Therac-20 calibrationK factors for a user entered month and year on a user selectede scope. h  CALPLOTLV.TSK K This FORTRAN program plots the Varian and Therac-20 calibrationgK factors for a user entered month and year on the Varian StatosS Printer/Plotter. t 2 CALyearl a CALYEAR.TSK K This FORTRAN program determines the yearly averages and standardK deviations of the Varian and Therac-20 calibration factors for ao user selected year.u 2 CESium t CESIUM.BASs sK This BASIC program calculates the strengths of the Cesium needlesRJ and seeds and the SR-90 eye applicators for a user entered date. f 2 CONplot  e CONPLOT.TSK K This FORTRAN program draws a given patient contour on the VarianEK Status Printer/Plotter. The user enters the film distance, the / plot distance, and the magnification.n h 2 CONtouri t CONTOUR.BAS K This BASIC program generates contour information files for CON- K PLOT, MULISO, MULISOAEC, MULCO60, and NEUISO using a question and H answer session and incorporating use of the graphic digitizer. p  CONTOUREL.BAS K This BASIC program generates ELECTRON contour information filesaK for CONPLOT and MULELE using a question and answer session andh5 incorporating use of the graphic digitizer.h 2 COOpp  COOPP.TSK K This FORTRAN program does SSD, single or parallel opposed field 7 time set calculations for the AECL Cobalt 60.u g 2 CO60plan  CO60PLAN.TSKs iK This FORTRAN program calculates multiple beam time sets for theSK AECL Cobalt 60 using information generated by MULCO60 or inputi from the terminal. 2 COUnts  COUNT.BAS eK This BASIC program tallies the types of calculations that have K been performed in the present calendar year. The programs PAR-lK OPP, PAROPPAEC, MULISO, ISOPLAN, MULELE, ELEPLAN, COOPP, MULCO60,CK CO60PLAN, EYEPLAN, AECLPLAN, and MULISOAEC all write theNK patient's name, date and time of calculation, # of fields, totaltK dose, # of fractions, and total # of days each time they are exe-r cuted. 2 DECayC T DECAY.TSK K This FORTRAN program calculates the AECL Cobalt 60 Rads per mi- K nute output rate for a user entered time span at an SSD value of 2 80 cm for field sizes from 5X5 to 35X35. , 2 DRSco60  DRSCO60.BAS PK This BASIC program calculates a four page table of time sets at a K user given SSD on a user given date for the AECL Cobalt 60.t Output is on LP0.h m 2 ELEplane r ELEPLAN.TSK K This FORTRAN program calculates unit sets for the Therac-20 elec-  trons. d 2 EYEplan   EYEPLAN.TSK rK This FORTRAN program calculates the time sets for the SR-90 eyel applicators. 2 FLEtinp6  FLETINP.BAS K This BASIC program uses the digitizer to create a data file (for K use by MISODOS) for Fletcher insertions. AP-LAT or stereo-shift0 methods may be used. m 2 HODgcale r HODGCAL.BAS K This BASIC program takes the percent depth doses for the points K named in an irregular field calculation (IRREG) and determinesFK the average PDD at each point, the overall average, and (aftercB the total dose is entered) the dose gi00~x|Oxssven to each point. p 2 IRIdinp   IRIDINP.BAS K This BASIC program uses the digitizer to create a data file (for K use by MISODOS) for either Iridium or Iodine implants. A maxiumDK of 320 seeds may be used. AP-LAT or stereo-shift methods may be  used.  2 IRReggen  IRREG.TSK lK This FORTRAN program uses the file generated by IRREGGEN to cal-eK culate percent depth doses at verious depths and locations in ans$ irregular treatment field.   IRREGGEN.BAS K This BASIC program uses the digitizer to create a file (for use K by IRREG) for irregular calculations such as half body, total  body, mantles, etc.  - 2 ISOplane h ISOPLAN.TSK K This FORTRAN program calculates multiple beam unit sets for theRK Varian using information generated by MULISO or input from thee terminal.v o 2 MISodosn o MISODOS.TSK K This FORTRAN program uses the files generated by FLETINP or IRI-sK DINP to calculate dose rate distributions for intercavitary or interstitial implants. s  MISOROT.TSK K This FORTRAN program uses modified versions of files generated by K FLETINP or IRIDINP in which rotational axes and angles have been K provided (with the editor). Again it calculates dose rate dis- @ tributions for intercavitary or interstitial implants. 2 MULco60N o MULCO60.TSK eK This FORTRAN program does multiple beam isodose or isosurvivalbH distribution calculations for the AECL Cobalt 60 (SAD or SSD). M2 MULele  MULELE.TSKF RK This FORTRAN program does multiple beam isodose distribution cal-o0 culations for the Therac-20 electrons. e2 MULiso  MULISO.TSKe iK This FORTRAN program does multiple beam isodose or isosurvivalaI distribution calculations for the Varian (SAD treatments only).   MULISOAEC.TSK dK This FORTRAN program does multiple beam isodose or isosurvivaliK distribution calculations for the Therac-20 (SAD treatments on- ly). F2 NEUiso m NEUISO.TSKa sK This FORTRAN program does multiple beam isodose distribution cal-eJ culations for Fermilab's neutrons (mean energy approx. 26 MEV). p2 OMNiso o OMNISO.TSKa K This FORTRAN program adds percent depth dose or total dose dis- K tributions together using output files created by MULISO, MULISO-aK AEC, MULELE, MULCO60, NEUISO, or MISODOS. Positive or negativeh% weightings may be assigned.  .2 PARopp o PAROPP.TSK. aK This FORTRAN program does SSD or SAD, single or parallel opposedc5 field unit set calculations for the Varian.  r a PAROPPAEC.TSK K This FORTRAN program does SSD or SAD, single or parallel opposed 8 field unit set calculations for the Therac-20. e2 SELect t SELECT.BAS  IK This BASIC program gives a listing of the calculations performedo4 by any of the programs mentioned in COUNT. 2 SSDiso  SSDISO.TSK K This FORTRAN program is similar to MULISO except that it allowsK the user to obtain SSD distributions. You may choose betweenCK normalization at the origin or at each field's Dmax. If you cho- K ose to normalize at Dmax you must choose the FULL ISODOSE LEVELe. SET since the levels will be higher. p 2 SKIngaps l SKINGAP.TSK tK This FORTRAN program calculates the skin gap necessary to attain A a chosen gap at a chosen depth for two adjacent fields.  i 2 TARco60S x TARCO60.BAS K This BASIC program produces a TAR table for the AECL Cobalt 60CK using the algorithm obtained from a fit to 00~z~*the standard Cobalt  TAR table. a2 TORcal y TORCAL.BASe LK This BASIC program produces a TOR table for the Varian using theaD algorithm obtained from a fit to the data obtained at MRH. he skin gap necessary to attain A a chosen gap at a chosen depth for two adjacent fields.  i 2 TARco60S x TARCO60.BAS K This BASIC program produces a TAR table for the AECL Cobalt 60CK using the algorithm obtained from a fit to 1 TPC  TPC - Fast Tape Copy? This program will copy a complete magtape to a Files-11 diskF and store it there in a special image mode, from which it can createB one or more copies of the tape (must faster than FLX ever could). The command format is:-- TPC Output-filespec=Input-filespecF where one of the 'filespecs' must be a magtape device (e.g. MT:) and3 the other the name of an image file on disk.4 For a description of switches type AID TPC SWITCHES P2 For a description of errors type AID TPC ERRORS m. For a description of a switch type AID TPC XX# where XX is the 2-character switch  g 2 SWITCHESL /BL:nnnn - Specifies an initial allocation specification for disk.L /SA:nnnn - Specifies a secondary allocation specification for disk.B /CO - Specifies that the disk file is to be contiguousJ /HD - Indicates High Density (1600 BPI) tape is to be written.D /NR - Specifies NO positioning of the tape prior to starting.0 /VE - Verify the transfer after the copy.8 /CM - Compare the tape with an existing TPC file.= /SC:nnnn - Sets tape characteristics to nnnn (octal). 1 /AN - Specifies possible ANSI format tape. 3 /EB - Specifies possible EBCDIC format tape.e) /RT - Use RT11 type "ANSI" labels.c; /ER - Specifies that TPC will ignore errors on tape. 1 /FR - Rewind the tape after copying to it.rF /TR - Read a disk to a container file as though it were a tape.G /TW - Write a container file to a disk as though it were a tape.aH /SZ:low:high - Switch sets the device size for /TR, /TW, and /IM.H /LO:low:high - Specifies the starting physical block of the disk.C /CT - Allows conTRol QIO's to occur even if /IM, /tr, or /TW/C /IM:low:high:blkfactor - Copy in image mode device to devicei2 /FL:filnam - Write FLX format lable record.@ /NI - Allows /IM copies to read a disk 1 block at a time.A /NO - Allows /IM copies to write a disk 1 block at a time.l> /HE - This switch causes BIGTPC to print a help message2 ERRORS% 1. TPC -- Disk I/O error. Code = nE TPC encountered an error while reading from/writing to the disk..( 2. TPC -- Magtape I/O error. Code = nH TPC encountered an error while reading from/writing to the magtape.$ 3. TPC -- Command line input error: TPC encountered an error in reading the command line.% 4. TPC -- Command line syntax errortD TPC encountered an error when trying to parse the command line. 5. TPC -- Invalid switchC The command line contained a bad Switch or file specification.O% 6. TPC -- Open error on output filed< TPC encountered an error trying to open an output file.$ 7. TPC -- Open error on input file; TPC encountered an error trying to open an input file.t- 8. TPC -- Specify 1 file & 1 magtape device = You must specify one magtape device and one disk device.C! 9. TPC -- Starting Verify pass. H The /VE switch was specified and the compare operation has started. 10. TPC -- Compare OK.TO The compare operation specified by the /VE or /CM switches was successful.e1 11. TPC -- Compare error. Files are different. E The compare operation specified by either the /VE or /CM failed. / 12. TPC -- /VE and /CM Not valid at same time.u2 BLF /BL:nnnn - Specifies an initial allocation specification for@ the image file if a disk is the output device. Defaults to 200.00~x|Oxss2 SAF /SA:nnnn - Specifies a secondary allocation specification for@ the image file if a disk is the output device. Defaults to 50.f2 COB /CO - Specifies that the disk file is to be contiguous2 HDA /HD - Indicates High Density (1600 BPI) tape is to beC: written. (For TE16, tape is read at the proper density: automagically.) This permits a container file from one) density to be written out in another.d2 NR> /NR - Specifies NO positioning of the tape prior to the2 start of copying. This will allow TPC to merge6 several backup collections on a single output tape if used with care.2 VEB /VE - Verify the transfer. After the copy (in either direction); is made, the tape is rewound and both the tape and file  are read and compared.2 CM> /CM - Compare the tape with an existing TPC file. Note that= the "transfer" can be in either direction. That is, theo? tape specification can be on either side of the equal sign. = *** NOTE *** The /VE & /CM options are only implemented: for "vanilla" tape/disk/tape transfers. Use of these7 switches with any of the "exotic" copy modes is not A supported and may cause undesired effects. This restrictionu$ may be removed at a future date.; After the end of a copy, TPC will write 4 EOF records andx9 backspace so that it will be positioned after the firste4 EOF on tape. This will ensure that a second backup9 done with the /NR switch will correctly copy onto a FLXE tape in readable fashion.a2 SCN /SC:nnnn - Sets tape characteristics to nnnn (octal), to allow read orJ write of tapes with even parity, 556BPI, etc. If the /HDJ switch is used, the high density bit is ORed in with the9 nnnn value specified in the /SC switch.o2 ANI /AN - Specifies possible ANSI format tape. If TPC sees this switch.9 it will look for ANSI label records and permit copies ; even where the tape has null files and hence double EOFs9 before the real end of tape. Only 80 byte records are 8 examined and EOFs are treated specially only between< HDR2 and EOF2 (or EOV). The headers are assumed to be in< ASCII unless the switch /EB is given, in which case they: are assumed to be in EBCDIC. If the tape is not really6 an ANSI format tape, the TPC copy operation is not; changed. Thus the /ANsi switch may be used on a tape ofa unknown format.t1 The default is /AN, and to force BIGTPC NOT tod: look for ANSI labels (looking normally only at 80 byte; records unless the /RT subswitch is used), use the /-ANl switch.n2 EBB /EB - This subswitch of the /AN switch forces on ANSI label: checks but causes TPC to look for EBCDIC header labels; rather than ASCII. Note that TPC looks for either ASCII 7 or EBCDIC, not both. The default is not to look forTA ANSI labels and end copy at double EOF; the /AN or /EB switcht. settings allow some modifications to this.2 RTA /RT - Use RT11 type "ANSI" labels. RT11 may not make labeld< records 80. bytes long, and if you have RT11 tapes, the9 ANSI checks will normally ignore the RT11 ANSI labelso: unless you use this switch. It causes BIGTPC to ignore; length of records and checks everything to see if it iss? an ANSI label record. It is not a very good default becauseo: it probably can be fooled easily but may be needed for RT11 tapes.t2 ER@ /ER - Specifies that TPC will ignore errors on tape. This9 specifically means that all errors except EOT/EOV/EOFo8 will be ignored. This is quite useful for recovering< data from tapes which are old and full of errors, or for6 writing an output to a tape with bad spots (though6 it won't cure bad spots and this method of writing. anyway is not necessarily a good idea...).2 FRE /FR - Rewind the tape after copying to it. Note the /NR switchr? applies to B00~z~*EFORE the tape is used and inhibits positioningi; at that time. The /FR switch will rewind the tape AFTERr writing to it.2 TRD /TR - This switch allows BIGTPC to read a disk to a container; file as though it were a tape. It implies BIGTPC shouldn9 act as though the input device were a tape even if it ? is not. BIGTPC will need to know the size to copy (defaultsl< to 494. blocks, the size of an RX01) and the start block: number (defaults to 0,0) as octal numnbers in the form< low:high (see /SZ and /LO switches). The input device is; copied 1 block at a time. The normal "control" features.9 like density, rewind, etc., are suppressed UNLESS thed8 /CT switch is used. Their effect is not likely to be meaningful.o2 TWC /TW - This switch allows BIGTPC to write a container file to = a disk as though the disk were a tape (on the output side4= of the command line). It is the inverse of the /TR switch(. and needs the /SZ and /LO information too.2 SZH /SZ:low:high - This switch sets the device size for /TR, /TW, and; /IM copies, in 2 words of block counts. Note the numbere< of blocks is given, not the last block number, so a disk; with 494 blocks is specified as /SZ:494., the high size1 defaulting to 0. Default value is /SZ:494.:0.o2 LOG /LO:low:high - This switch specifies the starting physical block9 of the disk to begin transfer from in /TR and /IM, orc< transfer to in /TW cases. This allows you to move blocks: around or to copy only parts of a disk. The default is= 0:0, so you won't need to use /LO often unless you intende to copy partial volumes.2 CTC /CT - This switch allows control-type QIO's to occur even if 9 /IM, /TR, or /TW are specified. These QIO's do thingse6 like rewind, write endfile, space forward or back,9 and set density as well as attach the LUNs. It is not < very meaningful for /TR or /TW unless you have a strange; device that nevertheless is really a tape (and it's notc= certain you can emulate it properly this way anyhow). For 8 /IM copies, it allows a tape to be the output device7 and to receive a blocked copy of a device in formatt< independent ways while still setting density, rewinding,: etc. Note the control QIOs are not error checked so if1 you try to rewind a disk, it'll not hurt you.w2 IMF /IM:low:high:blkfactor - This switch allows BIGTPC to copy data9 in image mode directly from one device to another. Itt: does not operate AST driven in this mode as it does in< all others, but uses all buffers as one large I/O buffer9 permitting I/O transfers of up to about 72. blocks atd7 a time. The low:high arguments are the block numberg8 to begin the output transfer to on the output device9 (/SZ specifies the length in blocks to move), and the 3 "blkfactor" argument is the number of blocks to 5 be transferred at each QIO$ to the output device.m7 This defaults to 8. so that if the output device ist6 tape, the buffers will be 4096. bytes long. If you4 specify a bigger blocking factor than BIGTPC can: handle, it will just use its maximum. Normal operation: will not issue any "write-EOF" operations, but if tape4 is the output device, the /CT switch will permit8 these controls to be done so the resulting tape will5 work (and the /FR switch, the /HD switch, and the  /SC switch will work).2 FL@ /FL:filnam - This switch works only with the /IM and /CT9 switches and will have no effect unless BOTH of theseg7 are specified. It causes BIGTPC to write a standardC9 DOS format (FLX format) label record before it writesa> an image file on tape, using "filnam" (up to 6 characters)3 as the filename. The full file specification ist? [1,1]filnam.OLB with standard DOS protection and a creationo> date of 00-JAN-70. This permits the image file to co-exist> on a FLX tape (.OLB is the extension chosen since FLX wi00ǂʂ͂~x|Oxssll8 copy it in image mode). FLX can skip the nonstandard: file and make directories, read, or write on the tape,> allowing it to contain other interesting programs (perhaps< a copy of BIGTPC to read the images with, for instance).= Also, multiple files may be more easily kept on the tape.i8 On input, you must skip this record on tape prior to inputting the file.aC If /ER is specified, zero byte reads will NOT terminateX> copies (so sizes better be right!) and lengths copied will= be calculated from given block factors, not from returned  actual byte counts.t2 NIB /NI - This switch ("Nibble In") allows /IM copies to read a@ disk 1 block at a time instead of using big QIOs of "blkfct"> blocks at a time. Thus, if there is a bad disk block, dataA on following blocks will not be lost. See the /IM switch doc.t for interaction with /ER./2 NOD /NO - This switch ("Nibble Out") allows /IM copies to write aA disk 1 block at a time. It is supplied also to aid in writingn@ to a disk with bad blocks, guaranteeing that not more than 1B block's data will be lost. Its interaction with /ER is as that= of /IM. The /NI and /NO switches apply only to the /IMagek mode copies of BIGTPC.2 HE> /HE - This switch causes BIGTPC to print a help message5 summarizing the action of all of its switches ando4 giving the defaults for the more important ones.e Out") allows /IM copies to write aA disk 1 block at 1 UFDJ The USER FILE DIRECTORY command creates a User File Directory on aK Files-11 volume and enters its name into the Master File Directory (MFD).  J Before creating a UFD, you must first initialize and mount (INI and MOU) the volume.( The general form of the UFD command is: UFD ddnn:[g,m][/keyword(s)]< ddnn: Device unit containing the volume on which the UFD- being created will reside. Default: none.< [g,m] The UIC for the UFD. The UIC establishes the owner5 of the UFD. The variables g and m represent group 5 and member numbers, respectively, and can be ine. the range 1 through 377(8). Default: none.8 /keywords For information on the keywords, type  AID UFD KEYWORDS. 2 KEYWORDS /ALLOC=ngE Specifies the number of directory entries for which space in the D UFD is to be allocated. The specified number is rounded up to the + next multiple of 32(10). Default: 32(10).m /PRO=[system,group,owner,world]D Establishes access rights for the directory file. Access codesF consist of four 4-code groups in the access rights word, as follows:- R - Read, W - Write, E - Extend, D - Delete E In each instance, the absence of the code means that the user classW: is denied the access right. Defaults: [RWED,RWED,RWED,R]tries for which space in the D UFD is to be allocated. The specified number is rounded up to the + next multiple of 32(10). Default: 32(10).m /PRO=[system,group,owner,world]D Establishes ac1 UND. UND - Undelete Deleted Files  I The function of this program is to attempt to recover a recently deletedI file. The program will accept a command line with input and output disksM (which must be different) and an input UIC. It will then scan the input diskJ index file for all deleted files with that "Owning" UIC. The program willJ print an error message (warning) if the search of the bitmap shows that aN file block has been re-used by another file. It is priveleged and uses IO.RLBL to read all the blocks of each file and then create new files on the outputH device under the current default UIC. This program will only succeed inK recovering a file, if the file header has not been reused. Its optimum useaN would be when a single user accidentally deletes a file and immediately stopsL all writing to the volume, to avoid losing either the file header or any of1 the other blocks belonging to the deleted file.  * Usage: >UND :=:[grp,mbr]  00ςԂ~z~* e' Where: is the output device H is the input device and must be different from  l, For additional help, type AID UND MESSAGES or AID UND ERRORSf 2 MESSAGES UND Informational Messages: H UND will display the following message at the start of the  recovery for each file: e d- UND -- Recovering filename.typ;ver o kH If UND encounters blocks which are allocated to other files it ? will print the following message for each block it finds.  E UND -- *** Warning filename.typ;ver possibly corrupted *** F a2 ERRORS UND Error Messages: G1 1. Syntax Error, "UND>DOut:=DIn:[grp,mbr]" fH Command line had invalid syntax. It must have an output - device and an input device and UIC. h" 2. Devices must be distinct D The output device must be different than the input device. = 3. *** Output File error, error code = (-nn) *** hH UND encountered an error while opening or writing an output H file. will be either FCS or DIR depending on the type - of error and -nn is the error code. N6 4. *** Input Index File error = (-nn) *** H UND was unable to read the index file ( [0,0]INDEXF.SYS ) on H the input device. will be either FCS or DIR depending > on the type of error and -nn will be the error code. 7 5. *** Input Bitmap File error = (-nn) *** H UND was unable to read the bitmap file ( [0,0]BITMAP.SYS ) on H the input device. will be either FCS or DIR depending > on the type of error and -nn will be the error code. @ 6. *** ALUN$ failure on input, DIR error code = (-nn) *** H UND was unable to assign lun 2, 3 or 4 to the input device. * -nn is the directive error code. A 7. *** ALUN$ failure on output, DIR error code = (-nn) *** H UND was unable to assign lun 1 to the output device. -nn is # the directive error code. .SYS ) on H the input device. will be either FCS or DIR depending > on the type of error and -nn will be the error code. @ 6. *** ALUN$ failure on input, DIR error code = (-nn) *** H UND was unable to assign lun 2, 3 or 4 to the input device. * -nn is the directive error code. A 7. *** ALUN$ failure on output, DIR error code = (-nn) *** H UND was unable to assign lu1 VDII The VDIrectory command lists the files contained in a directory. WhenI you use certain qualifiers with the command, additional information isI displayed, along with the names of the files. The output of theI VDIrectory command depends on certain formatting qualifiers and theirI defaults. These qualifiers are: /COLUMNS, /DATE, /FULL, /OWNER, /PROTECTION, and /SIZE.I In studying the qualifiers and the capabilities they offer, watch forI qualifiers that override other qualifiers. For example, if you specifyiI the /FULL format, the system cannot display all the information in I more than one column. Thus, if you specify both /COLUMNS and /FULL, 2 the number of columns you requested is ignored. Format: VDI[RECTORY]g6 Additional information available: [file-spec[,...]]F ALL APPEND BEFORE BRIEF COLUMN CONTROLK CREATED DATE DETACH EXAMPLES EXPIRED FID qF FILEID FORMAT FORMFEED FULL GRANDTOTAL HEADINGF HELP MODIFIED OUTPUT OWNER PARAMETERS PRINTERC PROTECTION REWIND REVISED QUALIFIERS SINCE SIZEdF SPOOL STARTUP TODAY TOTAL TRAILING VERSION 2 QUALIFIERSD Command Qualifiers Defaults Command Qualifiers DefaultsA /[NO]ALL See text. /HELP None.ED /APPEND /NOAPPEND /[NO]HEADING /HEADINGD /BEFORE 00ׂʂ͂~x|Oxss /BEFORE=TODAY /MODIFIED /CREATEDD /BRIEF /BRIEF /OWNER /NOOWNERE /COLUMNS=n /COLUMNS=4 /OUTPUT=file-spec See text.ZE /CREATED /CREATED /PRINTER See text.II /[NO]DATE=[option] /DATE /PROTECTION /NOPROTECTIONrE /DETACH See text. /REWIND /NOREWIND A /EXPIRED /CREATED /REVISED None. F /FID None. /[NO]SIZE=[option] /SIZE=USEDH /FILEID None. /SINCE /SINCE=TODAYA /FORMAT None. /SPOOL None. A /FORMFEED None. /TOTAL None. E /FULL None. /[NO]TRAILING /TRAILING A /GRANDTOTAL None. /VERSION None. < The default qualifiers are: /SIZE=USED/DATE=CREATED 2 PARAMETERS file-spec[,...]B Specifies one or more files to be listed. The syntax of a fileB specification determines what file(s) will be listed, as follows:@ o If you do not enter a file specification, the VDIRECTORY@ command lists all versions of the files in your current default directory..@ o If you specify only a device name, the VDIRECTORY command1 uses your default directory specification.@ o If the file name, file type or version number is not@ included in the file specification,the VDIRECTORY command< assumes the asterisk (*) wildcard for missing fields.B If you specify more than one file, separate the fileB specifications with commas (,). The command line length can beB up to 132 characters long. The continuation character ("-") canB be used to input long command lines if you use the RUN command toB start VDIRECTORY (See "STARTUP" section). Full wildcarding is2 permitted for any part of the file specification. 2 EXAMPLES:f MCR>VDI File(s): l*.log Directory DB0:[263,75]t2 LOCKED.LOG;1 *** LOCKED *** 28-FEB-1985 08:312 LRS100.LOG;1 11 25-FEB-1985 08:52/ Total of 2 files, 11/11 blocks used/allocated.o File(s): ^Z MCR>vdi [1,6] Directory DB0:[1,6]2 ERRLOG.ULB;1 732 02-FEB-1984 10:502 ERRLOGETC.ULB;1 83 05-MAY-1983 18:34% LOG.SAV;1 Privilege violationo2 BACKUP.ERR;1 3 20-NOV-1984 17:022 LOG.ERR;1 2 01-MAR-1985 00:07% ACNTRN.SYS;116 Privilege violation[2 SYSSCAN.TMP;2 2 01-MAR-1985 13:011 Total of 5 files, 822/827 blocks used/allocated.9 2 CONTROLC There are two control characters used to control the action of thevC VDIRECTORY program.The terminal must be attached for VDIRECTORY to0C detect these control characters. This is the default unless the /DETACH qualifier is specified.C When you are listing multiple directories, typing a CTRL/O tells C VDIRECTORY to skip to the next directory. When you want to abortlC the current listing type CTRL/C. If VDIRECTORY does not abortoC after typing the first CTRL/C, typing CTRL/C a second time invokestC the MCR or DCL command interpreter. You can then abort VDIRECTORY C if desired. I've had to abort VDIRECTORY when searching for filese7 on a magtape since the operation could not be aborted.C The totals displayed for the current directory is only for ther7 files displayed before typing either CTRL/C or CTRL/O. : Note: These control characters do not function when using1 VDIRECTORY through DECNET from a VAX/VMS system.o2 ALLr /ALLh /NOALL (D) @ /ALL is equivalent to /SIZE=ALL/DATE=CREATED/OWNER/PROTECTIONB This quailifier is used to list all by favorite options. ThisB qualifier is used to simply save some typing. This qualifier canB also be negated to provide a quick method of disabling the, default /SIZE=USED/DATE=CREATED qualifiers. Example:  MCR>vdi dir.*/all Directory DB0:[00߂Ԃ~z~*263,75]cK DIR.CMD;11 9/9 26-FEB-1985 10:01 [263,070] [RWE,RWE,RWE,R] K DIR.HLP;1 24/24 28-FEB-1985 16:08 [263,070] [RWE,RWE,RWE,R]/K DIR.MAC;1 42/42 28-FEB-1985 08:35 [263,070] [RWE,RWE,RWE,R] N DIR.MAP;134 49/49 28-FEB-1985 12:16 [263,070] [RWED,RWED,RWED,R]N DIR.OLB;10 80/80 28-FEB-1985 14:21 [263,070] [RWED,RWED,RWED,R]N DIR.TSK;134 57/57 28-FEB-1985 12:15 [263,070] [RWED,RWED,RWED,R]1 Total of 6 files, 261/261 blocks used/allocated. 2 APPEND /APPENDC Requests that the output from the VDIRECTORY command be written to D an existing output file. If the file to append to does not exist,C a "No such file" error is reported. This qualifier is only4A meaningful when used in conjunction with the /OUTPUT quailifier.- Type AID APPEND EXAMPLE for more information 3 EXAMPLER Example:E' MCR>vdi/output=robin.tmp *.mac;0/sinceB. MCR>vdi/output=robin.tmp *.lst;0/since/append MCR>type robin.tmp1 Directory DB0:[263,75] 4 DIR.MAC;3 49 22-JUL-1985 23:304 DIROPE.MAC;2 35 23-JUL-1985 00:02/ Total of 4 files, 84/84 blocks used/allocated.a Directory DB0:[263,75]i4 DIR.LST;2 95 22-JUL-1985 23:314 DIROPE.LST;1 70 22-JUL-1985 23:154 DIRPAR.LST;1 96 22-JUL-1985 23:164 DIRVER.LST;1 8 22-JUL-1985 23:231 Total of 4 files, 269/269 blocks used/allocated.d2 BEFORE /BEFORE /BEFORE[=date [time]]@ Print only those files dated earlier than a particular time .0 The date/time format is: dd-mmm-[cc]yy [hh:mm]? If the hour and minutes isn't specified, the default is 00:00.5/ You can also specify of the following options:5 TODAY For today's date. & MONTH For the start of this month.$ YEAR For the start of this year.! YESTERDAY For yesterday's date. B This qualifier is normally used in conjunction with one of theB following qualifiers: /CREATED, /EXPIRED, or /MODIFIED. The" default is /CREATED/BEFORE=TODAY.+ Type AID VDI BEFORE EXAMPLE for an examples 3 EXAMPLEc Example:] MCR>vdi /before=yeart Directory DB0:[263,75]a2 ASCR50.MAC;1 10 31-AUG-1984 15:282 EDTINI.EDT;1 1 17-AUG-1984 11:352 FCSPRE.MAC;1 1 31-AUG-1984 16:212 PARSFN.MAC;1 29 31-AUG-1984 17:112 RSXMSG.MAC;1 45 28-AUG-1984 09:53/ Total of 5 files, 86/86 blocks used/allocated.A2 BRIEFP /BRIEF B Includes only the file name, type, and version number of eachB file to be listed. The /BRIEF qualifier is overridden whenever9 any of the following formatting qualifiers is specified: < /SIZE, /DATE, /OWNER, /PROTECTION, /NOHEADING, or /FULL. Example:9 MCR>vdi *.mac/brief Directory DB0:[263,75]9I ASCR50.MAC;1 DIR.MAC;1 DIRBUF.MAC;1 DIRERR.MAC;1 I DIRFDB.MAC;1 DIRFMT.MAC;1 DIRHDR.MAC;1 DIRHLP.MAC;1aI DIRIO.MAC;1 DIRNAM.MAC;1 DIROPE.MAC;1 DIRPAR.MAC;1vI DIRPRE.MAC;1 DIRSUB.MAC;1 DIRTBL.MAC;1 DIRUTL.MAC;1eI DIRVER.MAC;1 FCSPRE.MAC;1 PARSE.MAC;1 PARSFN.MAC;1 RSXMSG.MAC;1/ Total of 21 files.O2 COLUMN /COLUMN /COLUMN=nB Lists the files using the specified number of columns on eachB line of the display. By default, the number of columns is fourB if the terminal width is less than or equal to eighty characters,& otherwise the default is six columns. Valid for /BRIEF format only. Example:. MCR>vdi *.mac/columns=3/brief Directory DB0:[263,75]A5 ASCR50.MAC;1 DIR.MAC;1 DIRBUF.MAC;115 DIRERR.MAC;1 DIRFDB.MAC;1 DIRFMT.MAC;1f4 DIRHDR.MAC;1 DIRHLP.MAC;1 DIRIO.MAC;15 DIRNAM.MAC;1 DIROPE.MAC;1 DIRPAR.MAC;1a Total of 12 files.l 2 CREATEDa /CREATEDmB Selects the files according to their date of creation. ThisB qualifier is relevant00ʂ͂~x|Oxss only when used with the /BEFORE or /SINCEB qualifier, and should not be used with the /EXPIRED or /MODIFIED qualifier.r/ /CREATED is the default for /BEFORE or /SINCE.C2 DATE /DATE /DATE[=option]A /DATE=CREATED (D)B Includes the creation, expiration, or date last written for eachB file listed. If you specify /DATE without an option, CREATED is assumed. The options are:a( CREATED Lists the creation date* EXPIRED Lists the expiration date9 MODIFIED Lists the last date the file was written7 ALL Lists all three file dates shown aboveO0 Type AID VDI DATE EXAMPLES for more information 3 EXAMPLES MCR>vdi dir.*/nosize/date=all Directory DB0:[263,75]DJ DIR.CMD;11 26-FEB-1985 10:01 26-FEB-1985 10:01 J DIR.MAC;1 28-FEB-1985 08:35 28-FEB-1985 08:35 J DIR.TSK;134 28-FEB-1985 12:15 28-FEB-1985 12:16 1 Total of 3 files, 261/261 blocks used/allocated.L2 MCR>vdi dir.*/date=all/size/date/owner/protection Directory DB0:[263,75] : DIR.CMD;11 9/9 [263,070] [RWE,RWE,RWE,R]M 26-FEB-1985 10:01 26-FEB-1985 10:01 ,: DIR.MAC;1 42/42 [263,070] [RWE,RWE,RWE,R]M 28-FEB-1985 08:35 28-FEB-1985 08:35 = DIR.TSK;134 57/57 [263,070] [RWED,RWED,RWED,R]BM 28-FEB-1985 12:15 28-FEB-1985 12:16 t1 Total of 3 files, 108/108 blocks used/allocated.c2 DETACH /DETACHB Controls whether the terminal is detached for files are listed.B By default, the terminal of only detached if the output isB directed to the line printer or an output file. The terminal isB normally attached when listing to the terminal so the CTRL/C and8 CTRL/O control functions can be detected by VDIRECTORY. 2 EXPIREDD /EXPIREDRB Selects files according to the planned expiration date for eachB file. This qualifier is relevant only with the /BEFORE or /SINCEB qualifiers, and should not be used with the /CREATED or /MODIFIED qualifiers. Example:d MCR>vdi/since/expired No files found.2 FIDo /FIDs* /FID=(fid1,fid2,fid3) or /FID:fid1:fid2 /NOFID (D)iC This qualifier causes VDIRECTORY to select a file by its' file ID.aC The file ID is compared against each selected file looking for aEC match. By default, only the current directory is searched. IfdC the directory of the file ID isn't known, you must specify [*] toO have all directories searched.o Example:e MCR>vdi [*]/fid=(112,1) Directory DB0:[1,6]2 ERRLOGETC.ULB;1 83 05-MAY-1983 18:34. Total of 1 file, 83/83 blocks used/allocated.2 FILEID /FILEID /FILEID /NOFILEID (D)C Controls whether the file identification of the file is displayed.rC By default, VDIRECTORY does not display the file identification,o except in the /FULL display.e Example: MCR>vdi dir.cmd/-all/fileid Directory DB0:[263,75]y DIR.CMD;11 (7566,115,0)r, Total of 1 file, 9/9 blocks used/allocated.2 FORMAT /FORMAT="format string"C This qualifier allows you to specify a string to specify how thelC output should be formatted. This is useful for when you want to(C create command files for other utilities. The following specialyC characters are used to substitute portions of the file name intoi the format string:/, Symbol Description Expanded String= ------ ----------------------- ----------------------(= $F The expanded file name. dduu:[uic]name.typ;ver . $D The device name field. dduu:, $N The file name field. name, $T The file type field. .typ, $U The file UIC field. [uic]. $V The file version field. ;ver+ Type AID VDI FORMAT EXAMPLE for an examplee 3 EXAMPLEt Example of using FORMATC For example, to create a MACRO-11 command file to assemble 00Ԃ~z~*all the 3 VDIRECTORY sources use the following command line:G MCR>vdi *.mac;0/format="$n,$n/-sp/cr=dirpre/pa:1,$f"/output=dirasm.cmdT MCR>type dirasm.cmd1 DIR,DIR/-sp/cr=dirpre/pa:1,DB0:[263,75]DIR.MAC;5 : DIRBUF,DIRBUF/-sp/cr=dirpre/pa:1,DB0:[263,75]DIRBUF.MAC;6 . . .: DIRUTL,DIRUTL/-sp/cr=dirpre/pa:1,DB0:[263,75]DIRUTL.MAC;6: DIRVER,DIRVER/-sp/cr=dirpre/pa:1,DB0:[263,75]DIRVER.MAC;2 MCR>mac @dirasmB The version number specified ";0" causes VDIRECTORY to only use: the highest version of each source file in the directory. 2 FORMFEED /FORMFEED or /FF=B This qualifier controls whether formfeeds proceed each new UIC inB the directory listing. This may be useful when the listing is; directed to the line printer using the /PRINTER qualifier. 2 FULL /FULLB Lists full file attributes with each file. For ANSI magtapes," the block size is also displayed.; The /FULL qualifier overrides all other formats specified. Example:D MCR>vdi dir.olb/fulle Directory DB0:[263,75]u5 File name: DIR.OLB;10 File ID: (2207,261,0)=2 Size: 80/80 Owner: [263,070]> Created: 28-FEB-1985 14:21 Revised: 28-FEB-1985 14:22 (2)9 Expires:  File organization: Sequential. File attributes: Allocation: 80, Extend: 0 Characteristics: Contiguouse7 Record format: Fixed, longest record is 512 bytese( Record attributes: No carriage controlE Protection: System: RWED, Owner: RWED, Group: RWED, World: R . Total of 1 file, 80/80 blocks used/allocated. 2 GRANDTOTAL /GRANDTOTALB Suppresses both the per-directory total and the individual fileB information. /GRANDTOTAL displays only the total line for allB files and directories that have been selected. (See the /TRAILING< quailifier for information on displaying directory totals.) Example:  MCR>vdi db1:[200,*]/grandtotale5 Grand total of 2 directories, 5 files, 55/99 blocks.: 2 HEADINGs /HEADINGO /HEADING (D)R /NOHEADINGB Controls whether heading lines consisting of a device description- and directory specification are printed.tB When you specify /NOHEADING, the output appears in single column7 format with the full file specification on every file.a Examples: MCR>vdi dir.cmd/noheading> DB0:[263,75]DIR.CMD;11 9 26-FEB-1985 10:01, Total of 1 file, 9/9 blocks used/allocated.% MCR>vdi dir.cmd/noheading/notrailing > DB0:[263,75]DIR.CMD;11 9 26-FEB-1985 10:012 HELP /HELPB Currently the VDI program does not support an internal "HELP" fa-/ cility. Only the AID form of help is available 2 MODIFIED /MODIFIEDB Selects files according to the last date the file was modified.B This qualifier is relevant only with the /BEFORE or /SINCEB qualifier, and should not be used with the /CREATED or /EXPIRED qualifier./2 OUTPUT /OUTPUT /OUTPUT[=file-spec]C Requests that the output from the VDIRECTORY command be written toEC the file specified rather than to the current terminal. If youuC specify the /OUTPUT qualifier without a file specification, thev6 output is directed to SY0:[current_uic]DIRECTORY.LST. Examples: MCR>vdi /output MCR>vdi directory.lst Directory DB0:[263,75]y2 DIRECTORY.LST;1 4 28-FEB-1985 16:15, Total of 1 file, 4/4 blocks used/allocated.2 OWNER /OWNER /OWNER  /NOOWNER (D)e1 Controls whether the file's owner UIC is listed.o Example:t" MCR>vdi dir.*/nosize/nodate/owner Directory DB0:[263,75]l DIR.CMD;11 [263,070] DIR.HLP;1 [263,070] DIR.MAC;1 [263,070] DIR.MAP;134 [263,070] DIR.OLB;10 [263,070] DIR.TSK;134 [263,070] DIR.HLP;2 [263,070]1 Total of 7 files, 312/312 blocks used/allocated.- 2 PRINTER /PRINTER B Queues the command output for printing under the name given byB the /OUTPUT qualifier. If you specify /PRINTER without00ʂ͂~x|Oxss theB /OUTPUT qualifier, the output is directed written directly tok the line printer using the transparent operating system. These files are deleted after being printed. Example:  MCR>vdi/printer/brief 2 PROTECTION /PROTECTION /PROTECTION /NOPROTECTION (D)B Controls whether the file protection for each file is listed. Example:E MCR>vdi dir.*/noall/protectionr Directory DB0:[263,75]g" DIR.CMD;11 [RWE,RWE,RWE,R]" DIR.HLP;1 [RWE,RWE,RWE,R]" DIR.MAC;1 [RWE,RWE,RWE,R]% DIR.MAP;134 [RWED,RWED,RWED,R]e% DIR.OLB;10 [RWED,RWED,RWED,R] % DIR.TSK;134 [RWED,RWED,RWED,R]t" DIR.HLP;2 [RWE,RWE,RWE,R]1 Total of 7 files, 312/312 blocks used/allocated.C2 REWIND /REWINDB This qualifier causes a rewind of the magtape before starting the directory of the tape. 2 REVISEDE /REVISEDiB Selects files according to the last date the file was revised.B This qualifier is relevant only with the /BEFORE or /SINCEB qualifier, and should not be used with the /CREATED or /EXPIRED5 qualifier. This qualifier is the same as /MODIFIED. 2 SINCEE /SINCEt /SINCE[=date [time]]WB Specifies that only those files dated after a specified time be printed.D0 The date/time format is: dd-mmm-[cc]yy [hh:mm]? If the hour and minutes isn't specified, the default is 00:00.i/ You can also specify of the following options:e TODAY For today's date.i& MONTH For the start of this month.$ YEAR For the start of this year.! YESTERDAY For yesterday's date. B This qualifier is normally used in conjunction with one of theB following qualifiers: /CREATED, /EXPIRED, or /MODIFIED. The! default is /CREATED/SINCE=TODAY. * Type AID VDI SINCE EXAMPLE for an example 3 EXAMPLEc Example of SINCE  MCR>vdi .mac/since=yesterdayi Directory DB0:[263,75]2 DIR.MAC;1 42 01-MAR-1985 08:502 DIRBUF.MAC;1 9 01-MAR-1985 08:552 DIRERR.MAC;1 15 28-FEB-1985 08:452 DIRFMT.MAC;1 32 28-FEB-1985 11:112 DIRHDR.MAC;1 42 01-MAR-1985 11:272 DIRIO.MAC;1 13 28-FEB-1985 09:122 DIROPE.MAC;1 33 01-MAR-1985 11:122 DIRPAR.MAC;1 46 01-MAR-1985 09:442 DIRVER.MAC;1 3 01-MAR-1985 10:291 Total of 9 files, 235/235 blocks used/allocated.C2 SIZE /SIZE /SIZE[=option]0 /SIZE=USED (D) B Provides the file size in blocks used and/or allocated for eachB file listed, according to the option you specify. If you specify4 /SIZE without an option, the ALL option is assumed.! The options you can specify are:-: ALLOCATION Lists the file size in blocks allocated5 USED Lists the file size in blocks used7 ALL Lists both blocks used and allocatedl) Type AID VDI SIZE EXAMPLE for an example 3 EXAMPLEE Example of SIZE MCR>vdi dir.*/nodate/size Directory DB0:[263,75]o DIR.CMD;11 9/9  DIR.HLP;1 37/37 DIR.MAC;1 42/42 DIR.MAP;134 49/49 DIR.OLB;10 80/80 DIR.TSK;134 57/57 DIR.HLP;2 38/381 Total of 7 files, 312/312 blocks used/allocated.U2 SPOOL  /SPOOLs /SPOOLe /NOSPOOL (D)B This qualifier controls whether the output file is spooledB automatically to the line printer when the output is directed to an output file.2 This switch is currently not supported under IAS. 2 STARTUP/8 There are two methods of starting VDIRECTORY; they are: 1. MCR>RUN ...VDI/ File(s):B; This is the interactive mode. VDI continues to prompt for ; input until end of file (CTRL/Z) is encountered to exit.l; The length of the command lines can be up to a maximum of; 132 characters. The continuation character "-" is alloweds; at the end of a line. If command file input is used "@",s7 and the extension isn't specified the default is .CMD.l 2. MCR>VDI command_li00~z~*ne9 VDI processes the specified command line and then exits.t Command lines are of the form:c2 input_file1,input_file2, ... input_filen/switches2 TODAY  /TODAY > Specifies that only those files dated today are to be listed.B This qualifier is normally used in conjunction with one of theB following qualifiers: /CREATED, /EXPIRED, or /MODIFIED. The default is /CREATED/TODAY.i Example:" MCR>vdi/today/brief Directory DB0:[263,75]tG DIR.HLP;1 DIR.MAC;1 DIR.MAP;134 DIR.OLB;10mI DIR.TSK;134 DIRERR.MAC;1 DIRFMT.MAC;1 DIRHDR.MAC;1lI DIRIO.MAC;1 DIRPAR.MAC;1 DIRVER.MAC;1 LOCKED.LOG;1t Total of 12 files.t2 TOTALa /TOTALlB Inhibits the listing of all individual file information andB prints only the trailing lines as described under the /TRAILING qualifier.u Example:D MCR>vdi /totale Directory DB0:[263,75]2 Total of 30 files, 683/683 blocks used/allocated. 2 TRAILING /TRAILING /TRAILING (D) /NOTRAILINGB Controls whether trailing lines that summarize the following information are output: o Number of files listed.C. o Total number of blocks used per directory.% o Total number of blocks allocated.nB o Total number of directories and total blocks used and/orB allocated in all directories (only if more than one directory is listed).rB By default, the output format includes most of this summaryB information. Any qualifier which requires the reading of the fileB header (i.e., /DATE/SIZE/PROTECTION/OWNER or /FULL) causes the1 number of blocks used/allocated to be displayed.i- Type AID VDI TRAILING EXAMPLE for an examplee 3 EXAMPLEo Example:r MCR>vdi dir.cmd/notrailingo Directory DB0:[263,75]s2 DIR.CMD;11 9 26-FEB-1985 10:01 2 VERSIONe /VERSIONm8 Displays the current version of the VDIRECTORY program. Example:o MCR>vdi /versiono: Directory Version 2.0 - April 11, 1985 - by Robin Miller.he reading of the fileB header (i.e., /DATE/SIZE/PROTECTION/OWNER or /FULL) causes the1 number of blocks used/allocated to be displayed.i- Type AID VDI TRAILING EXAMPLE for an examplee 3 EXAMPLEo Example:r MCR>vdi dir.cmd/notrailingo Directory DB0:[263,75]s2 DIR.CMD;11 9 26-FEB-1985 10:01 2 VERSIONe /VERSIONm8 Displays the current version of the VDIRECTORY program. Example:o MCR>vdi /versiono: Directory Version 2.0 - A1 VFY C VFY is used to check the consistency of Files-11 volume structure,B alter the volume structure, or obtain other information about the3 volume. The general form of the command line is:  3 VFY list_file,scratch_device=input_device/switches I The input device must be a disk or DECtape mounted as a Files-11 volume.M The list_file defaults to TI:, the scratch and input devices default to SY:. ) /DE Undelete any marked-for-delete files /DV Validate directories! /FR Display free space on volume 3 /ID Displays the version id number of the VFY taskc /LI List all index file0 /LO Scan for lost files and make entry in [1,3] /RC Perform read checkm! /RE Rebuild free storage bit mapY /UP Update free storage bit map e& AID VFY /switch describes each switch2 AID VFY VFY describes the default VFY function 6 AID VFY PERFORMANCE suggests performance improvements2 DE a- VFY list_file,scratch_device=input_device/DEd tI This function resets the marked-for-delete bit in each file's file/I header. The marked-for-delete bit is set when the file system startseI to delete a file, but cannot complete the deletion, usually because ofmI a system crash. Such a file may either be restored (with VFY /DE) or# deleted with PIP (see main text). h AI The input device must be mounted with the system files unlocked (MCReI MOU /UNL). Write access to the volume is necessary. It is highly_I recommended that the volume be mounted private, with only VF00ʂ͂~x|OxssY operatingc on it.  /2 DV .- VFY list_file,scratch_device=input_device/DVf I VFY validates all the directories on a volume. Each directory entrylI presumably describes a file; VFY /DV attempts to match each directoryt7 entry with the corresponding header in the index file. eI See the main text for information on removing invalid directory entries.U UI The input device may be write locked. It is recommended that the volumee4 be mounted private, with only VFY operating on it.  p2 FR  VFY list_file=input_device/FR iI The number of free and used blocks on the disk are listed. PIP /FR alsoiD performs this function, and lists additional data about the volume. VF The input device may be write locked. It is not necessary for VFY to% have exclusive access to the volume.e i2 ID r VFY /ID o< Displays the version identification number of the VFY task. % No device or list file is specified.t e2 LI  VFY list_file=input_device/LI o0 VFY reports all files listed in the index file. dF The input device may be write locked. It is not necessary for VFY to% have exclusive access to the volume.o a2 LO a- VFY list_file,scratch_device=input_device/LOt vC VFY locates all files which are not entered in any directory, and s enters them in [1,3]. E Write access to the volume is necessary. It is recommended that the ; volume be mounted private, with only VFY operating on it.  2 PERFORMANCEl _J VFY performance is generally related to ANSI support and task image size. F It is necessary to rebuild VFY with ANSI support during SYSGEN part 3F to achieve performance increases for most VFY functions. This is doneD by either rebuilding VFY with [1,1]ANSLIB.OLB, or by rebuilding VFY< to link to an FCSRES which was build from [1,1]ANSLIB.OLB.  iH We also recommend that VFY also be either rebuilt, or installed with an? increment, to as large a size as is practical on your system. F AK Once rebuilt with ANSI support, VFY will use the FCS big buffer feature toeL read files on the input device several blocks at a time. This improves per-M formance by reducing the amount of head movement on the input device. GivenbL ideal conditions, VFY execution time is roughly proportional to the inverseN of the size of the block buffer within the VFY task image. "Ideal conditions"H mean large files (true of the index file, likely less true of directoryM files), a responsive operating system, and minimal contention for the disk. V wD Performance of the following VFY functions are not affected by ANSI support and task size:  h /ID, /FR  -H Performance of the following VFY function is affected by task size, but not by ANSI support:n V /RC iH Performance of the following VFY functions are affected by ANSI support and task size:  - no switch, /DE, /DV, /HD, /LI, /LO, /RE, /UPe t2 RC e/ VFY list_file,scratch_device=input_device/RC:ns aE VFY attempts to read all blocks of all files on the volume. The /RCwG parameter "n" is an optional blocking factor. If it is not specified,sA VFY uses the maximum blocking factor. If the blocking factor isl8 specified, VFY executes the same function, only slower. IF The volume may be write-locked. It is recommended that the volume be1 mounted private, with only VFY operating on it. n w2 RE ,- VFY list_file,scratch_device=input_device/REV lK Alter the free storage bit map in accordance with information in the indexcG file. If the default VFY function reports that the "Index indicates XlI blocks free" number is greater than the "Bitmap indicates X blocks free"c= number, VFY /RE will alter the bitmap, freeing more blocks. s I The input device must be mounted with the system files unlocked (MCR MOUnK /UNL). Write access to the volume is necessary. It is highly recommendedwD that the volume be mounted private, with only VFY operating on it.  e2 UP r- VFY list_file,scratch_device=input_device/UPh nK Alter the free storage bit map in accordance with00~z~* information in the indexlN file. If the default VFY function reports that the "Bitmap indicates X blocksM free" number is greater than the "Index indicates X blocks free" number, VFYvM /UP will alter the bitmap, allocating blocks which actually belong to files.c I The input device must be mounted with the system files unlocked (MCR MOU K /UNL). Write access to the volume is necessary. It is highly recommendedeD that the volume be mounted private, with only VFY operating on it.  a2 VFYc i* VFY list_file,scratch_device=input_device aH The default VFY function: blocks on a volume are counted two ways. TheE allocation bitmap is a series of bits marked 0 or 1, describing eachPD block on the volume as free or allocated in a file. The index fileG contains file headers which describe the blocks which are contained indD each file. VFY counts blocks each of these two ways, reporting theG counts, as well as noting any blocks allocated to more than one file. e iF The volume may be write-locked. It is recommended that the volume be1 mounted private, with only VFY operating on it. rcounted two ways. TheE allocation bitmap is a series of bits marked 0 or 1, describing eachPD block on the volume as free or allocated in a file. The index fileG contains file headers which describe the blocks which are contained indD each file. VFY counts blocks each of these two ways, reporting theG counts, as well as noting any blocks allocated to more than one file. e iF The volume may be write-lIllegal deviceOpen failure on bit mapOpen failure on temporary fileFailed to allocate space for temp fileFailed to detach deviceFailed to attach deviceCommand syntax errorI/O error on input fileI/O error on output fileIllegal switchOpen failure on listing fileOpen failure on index fileNo dynamic memory available - Partition too smallClose failure on bit mapClose failure on index fileClose failure on temporary fileClose failure on listing fileIllegal response - try againOpen failure on listing fileOpen failure on index fileNo dynamic memory available - Partition too smallClose failure on bit mapClose failure on index fileClose failure on temporary file1 VOL FUNCTION:H The VOLUME CHARACTERISTICS command (VOL) provides a means for changingF volume characteristics for a previously initialized Files-11 volume.A It takes most of the switches that INITVOL takes, and these areF specified exactly as for INITVOL. Note however that no volume label* is given after the device specification. FORMAT: VOL[UME] device:[/keyword(s)] where:. device: specifies the device to be modified. keyword(s) are one or more of the following: /UIC=[m,n] Change owning UIC/ /PRO=[x,x,x,x] Change volume protection codesi( /MXF=n Change maximum number of files) /EXT=n Change default file extend size-6 /FPRO=[x,x,x,x] Change default file protection codes* /CHA=[x,x] Change device characteristics$ /WIN=n Change default window size; /LRU=n Change default number of pre-accessed directoriesRB /LABEL=xxxxxx Change volumn label (if no lable given, label will be cleared) be modified. keyword(s) are one or more of the following: /UIC=[m,00ʂ͂~x|Oxss1 VT1003 VT100 Programming Reference Card, The following help is available for VT100s:= CURSOR - Cursor movement commands and control key codesA SIZE - Line size, double height and double width commands? ATTRIBUTES - Character attributes, bold, underscore and blink0 ERASING - Erasing all or part of the screen$ LEDS - Programming the LED's' CHARACTER - Selecting characters set' SCROLL - Setting scrolling region TABSTOPS - Setting tab stops( MODES - Selecting operating modes3 REPORTS - Cursor position, status and identifyf. RESET - Reset to initial power-up state TESTS - Confidence testsI# VT52 - VT52 compatible moden% KEYPAD - Auxiliary keypad codes-2 PARAMETERS - Report on terminal setup parameters8 CONTROL - Actions upon receiving control charactersF GRAPHICS - Line drawing character set (Requires VT100 for display)2 CURSOR: cursor up - ESC [ Pn A: cursor down - ESC [ Pn B: cursor forward (right) - ESC [ Pn C: Cursor cursor backward (left) - ESC [ Pn D? Movement direct cursor addressing - ESC [ Pl ; Pc Hk? Commands direct cursor addressing - ESC [ Pl ; Pc f5 index - ESC Ds5 next line - ESC ET5 reverse index - ESC M 5 save cursor and attributes - ESC 7r5 restore cursor and attributes - ESC Bu fB Cursor Key VT52 ANSI/Cursor ANSI/CursorC (arrow) Mode Key Mode Reset Key Mode Set C Cursor ---------- ---- -------------- ------------ A Control UP ESC A ESC [ A ESC O A A Key DOWN ESC B ESC [ B ESC O B A Codes RIGHT ESC C ESC [ C ESC O C A LEFT ESC D ESC [ D ESC O Ds2 SIZE: Line Size (Double-Height and Double-Width) Commands: D Change this line to double-height top half - ESC # 3D Change this line to double-height bottom half - ESC # 4D Change this line to single-width single-height (normal) - ESC # 5> Change this line to double-width single-height - ESC # 6 2 ATTRIBUTES Character Attributes: ESC [ Ps;Ps;Ps;...;Ps m 1 Ps = 0 or none All attributes off  1 Bold on% 4 Underscore on 5 Blink on( 7 Reverse video on 2 ERASING- Erasing:C7 From cursor to end of line - ESC [ KC9 From cursor to end of line - ESC [ 0 Kr9 From beginning of line to cursor - ESC [ 1 Kh9 Entire line containing cursor - ESC [ 2 Ke7 From cursor to end of screen - ESC [ J 9 From cursor to end of screen - ESC [ 0 J 9 From beginning of screen to cursor - ESC [ 1 J 9 Entire screen - ESC [ 2 Je2 LEDS Programmable LEDs:C ESC [ Ps;Ps;...Ps q . Ps = 0 or none All LEDs off' 1 L1 on ' 2 L2 on ' 3 L3 ona' 4 L4 on 2 CHARACTERn' Character Sets (G0 and G1 Designators:oF Character Set G0 Designator G1 DesignatorF ----------------------------- ------------- -------------C United Kingdom (UK) ESC ( A ESC ) A C United States (USASCII) ESC ( B ESC ) B C Special Graphics Characters ESC ( 0 ESC ) 0  and Line Drawing SetC Alternate Character ROM ESC ( 1 ESC ) 1C Alternate Character ROM ESC00~z~* ( 2 ESC ) 2r! Special Graphics CharactersD2 SCROLL Scrolling Region: ESC [ Pt ; Pb r ' Pt = Top line of scrolling regionn* Pb = Bottom line of scrolling region 2 TABSTOPS TAB Stops:S/ Set tab at current column - ESC H 1 Clear tab at current column - ESC [ gC3 Clear tab at current column - ESC [ 0 g 3 Clear all tabs - ESC [ 3 g 2 MODES Modes:nB To Set To ResetJ Mode Name Mode Sequence Mode SequenceJ ------------------- --------------------- ----------------------J Line feed/New line New line ESC [20h Line feed ESC [20lJ Cursor key mode Application ESC [?1h Cursor ESC [?1lJ ANSI/VT52 mode ANSI n/a VT52 ESC [?2lJ Column mode 132 Column ESC [?3h 80 Column ESC [?3lJ Scrolling mode Smooth ESC [?4h Jump ESC [?4lJ Screen mode Reverse ESC [?5h Normal ESC [?5lJ Origin mode Relative ESC [?6h Absolute ESC [?6lJ Wraparound On ESC [?7h Off ESC [?7lJ Auto repeat On ESC [?8h Off ESC [?8lJ Interlace On ESC [?9h Off ESC [?9lG Graphic proc. option On ESC 1 Off ESC 2 G Keypad mode Application ESC = Numeric ESC > 2 REPORTSv Reports: ; Cursor Position Report: Device status report:tL Invoked by ESC [6n Invoked by ESC [5nL Response is ESC [ Pl;Pc R Response: Terminal OK ESC [0nL Terminal not OK ESC [3n" Device attributes (What are you):: Invoked by ESC [ c or ESC [ 0 c? or ESC Z (not recommended) 4 VT100 Response: | VT125 Response:O ESC [?1; Ps c | ESC [?12; ; ; c $ |N Ps = 0 Base VT100 (no options) | 5 = no advanced video, I 1 Processor Option (STP) | 7 = advanced videoaI 2 Advanced video opt. (AVO) | 1 = Aux. printer, eJ 3 AVO and STP | 0 = no aux. printerH 4 Graphics proc. opt. (GPO) | Graphics firmware$ 5 GPO and STP |$ 6 GPO and AVO |$ 7 GPO, AVO and STP |2 RESET  Reset:= ESC cpF Reset VT100 to initial power-up state and execute power up self test.2 TESTS  Confidence Tests:0 Fill screen with E's ESC # 85 Invoke Test(s) ESC [2; Ps yO; Ps = 1 Power-up self testJ (ROM checksum, RAM, NVR, keyboard? and AVO if installed) 7 2 (Loop back connector req.) Data loop back? 4 (Loop back connector req.) EIA modem control testpM 8 Repeat selected test(s) indefinitely E (Until failure or power off) 2 VT52 VT52 Compatible Mode:2 Cursor up - ESC A2 Cursor down - ESC B2 Cursor right - ESC C2 Cursor left - ESC D2 Select special graphics character set - ESC F2 Select ASCII character set - ESC G2 Cursor to home - ESC H2 Reverse line feed - ESC I2 Erase to end of screen - ESC J2 Erase to end of line - ESC KD Direct cursor address00'ʂ͂~x|Oxss - ESC Pl Pc (see note 1)D Identify - ESC Z (see note 2)2 Enter alternate keypad mode - ESC =2 Exit alternate keypad mode - ESC >2 Enter ANSI mode - ESC <M Note 1: Line and column numbers are single character codes whose values areeO the desired number plus 37 octal. Line and column numbers start at 1.J& Note 2: Response to ESC Z is ESC / Z2 KEYPAD Auxiliary Keypad Codes:I Numeric Application Numeric Application H Key mode VT52 mode VT52 mode VT100 mode VT100I --------- ---------- ------------- ---------- -----------rG 0 0 ESC ? p 0 ESC O pbG 1 1 ESC ? q 1 ESC O quG 2 2 ESC ? r 2 ESC O rnG 3 3 ESC ? s 3 ESC O s G 4 4 ESC ? t 4 ESC O t G 5 5 ESC ? u 5 ESC O u-G 6 6 ESC ? v 6 ESC O v G 7 7 ESC ? w 7 ESC O w G 8 8 ESC ? x 8 ESC O x G 9 9 ESC ? y 9 ESC O y G -(minus) -(minus) ESC ? m -(minus) ESC O m G ,(comma) ,(comma) ESC ? l ,(comma) ESC O l G .(period) .(period) ESC ? n .(period) ESC O n G ENTER RETURN ESC ? M RETURN ESC O M G PF1 ESC P ESC P ESC O P ESC O P G PF2 ESC Q ESC Q ESC O Q ESC O Q G PF3 ESC R ESC R ESC O R ESC O R G PF4 ESC S ESC S ESC O S ESC O S 2 PARAMETERS Request Terminal parameters:o Invoked by: ESC [ Ps xL Ps = 0 or none Request parameters, allow unsolicited reportsN 1 Request parameters, disable unsolicited reports Response is: J ESC [ ;;;;;; xL = 2 - Unsolicited report, 3 - Solicited reportI = 1 - none, 4 - odd parity, 5 - even parityOD = 1 - 8 bits, 2 - 7 bits per characterB , Value Baud Value BaudB 0 50 64 1200B 8 75 72 1800B 16 110 80 2000B 24 134.5 88 2400B 32 150 96 3600C 40 200 104 4800 B 48 300 112 9600C 56 600 120 19200 = 1 - Bit rate multiplier is 16 O Set to values in block 5 of SET-UP B (STP only)1 2 CONTROL8 Control Characters Received:  Character Octal Mnemonic Code Function M --------- ----- -------------------------------------------------------- = NUL 000 Ignored, can be used as a fill character 0 ENQ 005 Transmit answerback message' BEL 007 Generate bell tone 0 BS 010 Backspace cursor 1 position1 HT 011 Move cursor to next tab stop L LF 012 Causes linefeed on new line (See Linefeed/Newline mode) VT 013 Same as LFe FF 014 Same as LFM? CR 015 Return cursor to beginning of current line-L SO 016 Select G1 char. set (See 00/3~z~*Select Character Set sequence)L SI 017 Select G0 char. set (See Select Character Set sequence)M DC1 021 XON, causes terminal to continue transmitting charactersoK DC3 023 XOFF, causes terminal to stop sending chars. until XON N CAN 030 Cancel escape or control sequence, display blip character( SUB 032 CTRL Z, same as CAN5 ESC 033 Processed as sequence introducern DEL 177 Ignored 2 GRAPHICSN The following is a list of lower case characters and their "Special Graphic" H eqivalent. "Special Graphics" is selected with "(0" and the normal/ character set (US) is selected with "(B".aJ (B a b c d e f g h i jJ (0 a b c d e f g h i jJ (B k l m n o p q r s tJ (0 k l m n o p q r s tJ (B u v w x y z { | } ~J (0 u v w x y z { | } ~ (BH The following is an example using the "Special Graphics" character set:D (B lqqwqqwqqwqqwqqwqqwqqk (0lqqwqqwqqwqqwqqwqqwqqkD (B x x x x x x x x (0x x x x x x x xD (B tqqnqqnqqnqqnqqnqqnqqu (0tqqnqqnqqnqqnqqnqqnqquD (B x x x x x x x x (0x x x x x x x xD (B mqqvqqvqqvqqvqqvqqvqqj (0mqqvqqvqqvqqvqqvqqvqqj9 (B Characters used Result | } ~ (BH The following is an example using the "Special Graphics" character set:D (B lqqwqqwqqwqqwqqwqqwqqk (0lqqwqqwqqwqqwqqwqqwqqkD (B x x x x x x x x (0x x x x x x x xD (B tqqnqqnqqnqqnqqnqqnqqu (0tqqnqqnqqnqqnqqnqqnqquD (B x x x x x x x x (0x x x x x x x xD (B mqqvCHANGES TO DEMO.MAC7The following new features have been added to DEMO.MAC:C o System utilization statistics for the current time increment andF since startup. The since startup statistics will only be displayedE if the system has the floating point processor hardware. The taskH build command file must be changed to include the '/FP' switch. This7 feature is not available on VT05 and VT50 terminals.D o The task naming convention has been changed. All '...' and '$$$'E tasks are displayed as the task name and the terminal number. FornD example the task '...PIP' running from TT23: will be displayed asG PIPT23 and if it is running from BA0: it will be displayed as PIPB0.i, Pure areas and SGA's will not be renamed.H o Tasks waiting for memory (including tasks checkpointed) are displayedH in two columns at the far right of the display. The amount of memory+ needed by these tasks is also displayed.aD o The display header (the first three lines) has changed to includeF the number of errors since startup, the total uptime and the numberD of currently active jobs. If DEMO is run as a real time task theD currently active task will be displayed instead of the active job count. F o Two new display commands have been added. The 'T' command will setJ the top address of the display. The 'R' command will reset the displayG to what is was when DEMO was first run. The syntax checking for allTE commands has been enhanced so that if an illegal value is typed ite will be rejected.I o Two values may be patched at task build time to set the initial screenDG granularity and bottom of display memory. The memory locations are:l$ $MEMST - start of memory in K words/ $GRAIN - column granularity in 32. word blocks.D The next 'E A', 'B', 'T' or 'G' may change these values. The 'R'I command will reset the display to these values. A value of zero means @ that the parameter is unspecified and DEMO will calculate it.G o A string 0078͂~x|Oxssof exclamation marks '!' will indicate the end of memory ona the display.a[End of DEMO.HLP]e initial screenDG granularity and bottom of display memory. The memory locations are:l$ $MEMST - start of memory in K words/ $GRAIN - column granularity in 32. word blocks.D The next 'E A', 'B', 'T' or 'G' may change these values. The 'R'I command will reset the display to these values. A value of zero means @ that the parameter is unspecified and DEMO will calculate it.G o A string 1 VTL$ VTL VT100 Terminal Listing programF This program is used to list file(s) on a VT100 family terminal.F The file(s) are displayed one screen at a time for easy viewing.F Various commands can be entered to change listing parameters or toF position to a particular portion of the file. Many of the commandsF are the same as the Digital editor EDT. Commands can be enteredF either by using keys on the VT100 keypad, or by entering commands to) the prompt at the bottom of the screen. ; Help can be obtained on a particular topic by typing : ( AID VTL subtopic subsubtopic ...& Additional information available:G FEATURES EXECUTING INDIRECT STARTUP COMMAND L RANGE OUTPUT FORMATS TERMINATION CONTINUATION y 2 FEATURES FEATURESA Some of the major features of the program are outlined below: ( 1. Delete the file being displayed.' 2. Print the file being displayed.a/ 3. Split screen mode to display two files.o4 4. CTRL/C detection for aborting searches, etc.3 5. Write portions of the file being displayed.n< 6. Skipping to the next directory when using wildcards.? 7. Displaying the file header of the file being displayed. % 8. Teco compatible see-all mode.N- 9. Search forward/backward for a string. 1 10. Working message displayed when searching.w2 Enhancments requested but not implemented yet:( 1. Backing up to the previous file.< 2. Swapping to auxillary file with full screen display.6 3. Initialization file to define the keypad keys.5 4. /FIND, /RECORD, and /PAGE options at startup. & 5. Repetition count for commands.H The maximum record size that can be displayed is 512 characters.H All commands have a repetition count of one. Relative, indexed and& stream LF files are not supported. 2 EXECUTING EXECUTING VTLH The most common way of starting the program is to pass a fileH specification to the program on the command line. When usingH this method, the file(s) specified are displayed and the program6 exits when there are no more files to display.! $ VTL [u,g]name.typedH Multiple file specifications separated by commas can also be specified.* $ VTL DL0:TKB.CMD,DL1:TKB.CMD1 Wild cards may be specified in any field. $ VTL *.cmd;*= If no file spec is entered, VTL prompts for a specification.o $ VTL$ (The screen is cleared) File(s):( 2 INDIRECT INDIRECT COMMAND FILES H Another method allows you to use a command file as input to theH program. The command file contains a list of all the files toH be displayed. This method is useful when using a program suchH as "DIRECTORY" to display all files created since a particularH date. The length of the command lines can be up to a maximum ofH 256 characters. The continuation character "-" is allowed atH the end of a line to continue the command line on the next line.H If the file extension isn't specified the default is .CMD onH RSX-11M and .COM on VAX/VMS. When the end of the command file& is reached, the program exits. Example:B $ DIRECTORY/NOHEADER/NOTRAILER/SINCE/OUTPUT=TODAY.COM $ VTL @TODAYe 2 STARTUPt STARTUP_OPTIONSnH There are 00?3~z~*a number of options which can be specified at startup timeH by specifying option on the command line. The options can beH specified anywhere on the command line which allows them to beH appended to the VTL symbol defined in your login command file (if desired).dH Options can not be specified on the command line when using commandH file input. When using command file input, the options must resideH within the command file or before the command file line within a command procedure.H All options are preceded with a slash "/" and can be negated byH preceding the option with either a minus sign "-" or a "NO". AllH startup options can be changed after the program is started with theH "SET" command. If the option is not followed by the wordH "(default)", then the option must be specified to enable that9 option. The following are the valid startup options:c% Additional information available:lD AVO BINARY FEXIT FF HEADER LINES MARKE OUTPUT NARROW NAME NUMBERS PROTECT QUIET RULER D SCREEN SEEALL SECTION TECO VERSION WIDE WAIT3 AVOgD The VT100 has the advanced video option. If your VT100 doesn'tD have the AVO, the terminal can only display 14 lines of 132 column text. 3 BINARYD When displaying a binary file, the option suppresses escapeD seqeuences and all control characters so the text within the* binary file can be displayed properly.3 FEXITUD This controls whether the program automatically displays theD next file or exits at the end of file. If enabled, the user mustE type either "EXIT" or "NEXT" to stop displaying the current file.t3 FFD This controls whether formfeeds are passed to the VT100. ThisD option is useful when the VT100 has a hardcopy attached to allow/ formfeeds to skip to the top of a new page.a3 HEADERD Controls whether the file header is automatically displayedD before displaying the first page (screen) of the file. The fileD header is displayed in a format similar to the "ANALYZE/RMS" DCL command.3 LINES D This controls the number of lines to display on the screen. TheD default number of lines displayed is 20 lines if the file nameD display is enabled or 22 or it is disabled. When operating overD a dialup modem, it is often desirable to display fewer lines.D The command format is "/LINES=n" where "n" can be from 5 to 20) (or 22 if the file name is disabled). 3 MARKD This command is used to override how often the program marksD record positions. These record positions are used to quicklyD reposition to records within the file. The program has 1000D entrys for saving the record positions. If this switch is notD specified, the following algorithm is used to calculate the record marking count:e@ ((blocks_used * records/block)/mark_entrys) = mark_count.G The worst case records/block is based upon the maximum record size.s: max_record > 256 use (512/32) = 16 records/block.: max_record > 100 use (512/16) = 32 records/block.: max_record > 32 use (512/8) = 64 records/block.; max_record > 16 use (512/4) = 128 records/block.o; max_record < 16 use (512/2) = 256 records/block.lD The mark count is limited to a maximum of 50 records unlessD overridden. If the file you are displaying has more than 50,000D records, you will want to specify a mark count. Otherwise, allD records after 50,000 will have to be skipped to sequentiallyB from the last record marked. The command format is "/MARK=n".3 OUTPUTD This allows you to specify an output file for subsequentD write commands. The output file is not opened until the firstD write command is issued, thus errors are deferred until thatD time. The command00G8͂~x|Oxss format is "/OUTPUT=filename". The output fileD remains open until the CLOSE command is issued or until you exit the program.3 NARROWD This forces all files to be displayed on a narrow (80 column)D screen. Normally the maximum record size within the file is used= to determine whether the screen should be NARROW or WIDE.3 NAMED This controls whether the file name is displayed at the top ofD the screen. Disabling the file name display allows two more lines for the file display.i 3 NUMBERSoD This controls whether the record number is displayed along theD left hand margin preceeding each display line. These recordE numbers are useful when specifying a range for the write command.m 3 PROTECTeD The controls whether the file protection is changed beforeD deleting a file using the DELETE command. If protection isD disabled, the file protection is changed to allow deletionD before deleting the file. This is useful if you want to deleteD a file whose protection is set to read-only which causes a4 "Protection Violation" when trying to delete it.3 QUIEThE This controls whether bells are appended to messages displayed. eD If bells are disabled, then bells within the file are also suppressed. 3 RULER D This controls whether a ruler is displayed on the line followingD the file name line. If the file name display is disabled then the ruler is also disabled.i3 SCREEND This is used to specify the screen display width. It alsoD controls the number of characters displayed on each line beforeD the line is truncated. Specifying a screen width overrides theD NARROW or WIDE options. The command format is "/SCREEN=n" where' the range for "n" is from 1 to 512.U3 SCROLLD This controls whether both files should be scrolled when inD split screen mode. This is useful when you want to do a visualD comparison of two files. You can only scroll in the forwardD direction using either the down arrow key, section, enter, orD the return key. All other commands only affect the active file.3 SEEALLD This allows non-printable characters such as control charactersD to be displayed. Control characters are displayed as ^char andD tabs, carriage return, linefeed, and formfeed are displayed9 by the VT100 graphics HT, CR, LF, or FF respectivly.u. Escapes are displayed as dollar signs ($). 3 SECTION D This specifies the number of lines advanced by the SECTIOND command. The default section size is normally (max_lines-D (max_lines/5)+1) where max_lines depends on whether you'veD specified the /LINES options or if the you've disabled the fileD name display. The command format is "/SECTION=n" where "n" canD be any number. If you specify zero, the section size is) calculated using the algorithm above. 3 TECOD This is a sub-option to the SEEALL command. This controlsD whether control characters are displayed using the graphics2 character +/-char instead of the ^char format. 3 VERSIONr5 This displays the current version of the program.e3 WIDED This forces all files to be displayed on a wide (132 column)D screen. Normally the maximum record size within the file isB used to determine whether the screen should be NARROW or WIDE.3 WAITD This controls whether the program waits for a response to theD prompt "Type any character to continue: " when a file open errorD occurs when wildcards are specified. If this option is disabled,D the program waits three seconds to give the user time to readD the error message displayed and then continues to open the nextD file. This option is useful when doing a wildcard list of aD directory which has files protected which normally results in5 the error "Protection Violation" being displayed.r 2 COMM00O3~z~*AND COMMANDSH There are a number of commands available while a file is beingH displayed. The command prompt is displayed on the last line of theH screen and is constructed from the last record number displayed. IfH the file is positioned at the end of file, then the command promptH is preceeded with the string "EOF-". Commands can also be issued byH using various keys on the VT100 keypad. A keypad diagram can beH displayed by using the PF2 key. The keypad commands CAN NOT beH modified by an initialization file such as EDT keys. The valid! commands are described below:d% Additional information available:eD ADVANCE BOTTOM BACKUP CLOSE DELETE EXIT FINDE FNDNXT LEFT LINE NDIR NEXT PAGE PRINT E RIGHT REFRESH RESET SELECT SECTION SET SHOW ; SHL SHR SPLIT SWAP TOP WRITEa 3 ADVANCE = This command sets the direction to the forward direction.T3 BOTTOMD This command positions to the end of file and then displays the( last part of the file on the screen.3 BACKUP> This command sets the direction to the backward direction.3 CLOSE D This command is used to close an output file which is open for the WRITE command.3 DELETED This command is used to delete the current file being displayed.3 EXITD This command is used to exit from the program or to exit splitD screen mode when the bottom file is active. You can also exit by typing CTRL/Z.e3 FINDD This command is used to find a search string. The command formatD is "FIND search_string". If a search string is not specified, you are prompted for one. 3 FNDNXTD This command is used to find the next occurance of a searchD string. If a search string doesn't exist, you are prompted for one.3 LEFTD This command moves the margin left if previously moved rightD with the RIGHT command. This command is equivalent to the EDTD SHR (shift screen right) command. The command format is "LEFT n" where "n" is from 1 to 512. 3 LINED This command is used to advance or backup a single display lineD depending of the direction. The plus sign or minus sign is used: to advance or backup overriding the current direction.3 NDIRD This command is used to display the next directory or sub-; directory when wildcard directorys have been specified.h3 NEXTD This command is used to display the next file (if any). If there+ are no further files the program exits."3 PAGEE This command is used to find the next page. The formfeed eD character defines the start the next page. FORTRAN formfeeds? and print file formfeeds are not detected (future version).d3 PRINTrD This command is used to spool the current file to the lineD printer. On RSX-11M, the file is always spooled to LP0. OnD VAX/VMS, the file is spooled to SYS$PRINT which can be assignedD to any line printer. The file is left open for display afterD the file is spooled. Thus, you must use the NEXT command to% display the next file if desired. 3 RIGHTtD This command is used to move the margin right to display part ofD the text truncated due to the terminal width. This command isD equivalent to the EDT SHL (shift display left) command. The? command format is "RIGHT n" where "n" can be from 1 to 512.i 3 REFRESHSD This command is used to refresh the entire screen displayed.D The keypad is re-enabled (incase the terminal was reset) and theD entire screen is redisplayed. If two files are displayed inD split screen mode, then both files are redisplayed. This commandD is used for screen refresh instead of CTRL/W used in EDT since, CTRL/W is not recognized by the program.3 RESETpD This command is used to reset the select range selected by the SELECT c00W8͂~x|Oxssommand.3 SELECTD This command selects a portion of the file to be written. TheD lines selected are displayed in reverse video just like EDT. AD "WRITE SELECT" command is then used to write the selectedD lines. When this command is issued the current page isD automatically selected. The select point starts at the top ofD the current page. Because of this implementation, the minimumD that can be written is a single page. To write less than aD page, enable the record number display and use a "WRITE range" command. 3 SECTION D This command is used to advance or backup a section depending on the current direction.3 SETeD This command is used to change the listing parameters. ThisD command is used to change any of the startup options describedD early plus the following commands; SET SEARCH EXACT or GENERALG (default), SET TAB n (defines the size of a tab, the default is 8).o3 SHOWD This command is used to display a particular parameter. Valid keywords for SHOW are:* FILE - Displays the file name., HEADER - Displays the file header./ KEYPAD - Displays the keypad diagram. 5 MARK - Displays the record marking count.o@ SEARCH - Displays the search string and general/exact./ VERSION - Displays the version number. 3 SHLG Same as the RIGHT command.3 SHR  Same as the LEFT command.i3 SPLIT D This command is used to enter split screen mode. If you don'tD enter a file name on the command line, you are prompted for one.D After the file is successfully opened, the screen is redisplayedD with the file specified at the bottom of the screen. TheD "Active" message is displayed to the right of the file name toD show which file is currently active. If commands to overrideD the screen width were not specified (such as NARROW and WIDE),D then the screen width is controlled by the active file at the) time the REFRESH command is executed.mD To exit from split screen mode, make the bottom file theD "Active" file and then type EXIT or CTRL/Z. After the bottomD screen is exited, the top file is then redisplayed on a full screen.t3 SWAPD This command is used to swap between the two files displayed inD split screen mode. The "Active" message is displayed to theD right of the active file or the "SHOW FILE" command is executed) if the file name display is disabled.H3 TOPiD This command is used to positions to the top of the file and* displays the first page on the screen.3 WRITE D This command is used to write a portion of the active file to anD output file. If an output file is not open or you didn't specifyD an output file at startup time with the "/OUTPUT=filename"D option, you are prompted for a file name. The range for theD WRITE command are descibed in a later section. The default range* for the write command is "WRITE PAGE".D If you type the carriage return or ENTER key on the keypad, theD program displays the next page of the file. A page is defined asD the text displayed on the screen as opposed to the text between two formfeeds as in EDT.D You can also enter a record number at the command prompt. ThisD allows you to skip quickly to a position within the file. ThisD is useful if you don't know what to search for and don't want to7 repeatedly type the carriage return or section key..2 RANGE  RANGE_FORMATH The range for the WRITE command is a subset of the ranges allowed by% EDT. The normal range format is:" beginning_line:ending_line or' beginning_line THRU ending_line6 The following keywords can be used for the ranges:7 . - The ending line number on the current page. 4 line_number - A line number within the file.? BEGIN - The begi00_f~z~*nning line number of the file (line 1).a> BPAGE - The beginning line number on the current page.; EPAGE - The ending line number on the current page.l1 END - The ending line number in the file.@ PAGE - The current page displayed. Same as BPAGE:EPAGE.3 WHOLE - The whole file. Same as BEGIN:END.w: SELECT - The lines selected by the SELECT command.2 OUTPUT OUTPUT_FILEeH The output file is created with the file type and file attributes ofH the active input file. This means that if the input file isH variable length with print-file-format, the output file will be theH same format. This should be rememebered when writing portions ofH multiple input file. No checking is done to insure the currentH input file attributes are the same as the output file. Thus,H writing a FORTRAN file to an output file created withH print-file-format will not PRINT or TYPE the way you expect after closing the output file. 2 FORMATSa FILE_FORMATSH Currently, only implied (carriage-return) and embedded carriageH control files are formatted properly for output to the terminal.H The first character of each record in FORTRAN files and the sequenceH field used for print-files for carriage control are not interpreted.B This support will be added in a future version of the program. 3 EMBEDDEDH For files with embedded carriage control (carriage-return/line-feedH in the file), scrolling backwards doesn't always backup a section orH a single page. This is because a single record may be displayed onH several lines on the screen. To accuratly display these files,H display the file in SEEALL mode (this is what EDT actually does).H Also, when scrolling backwards through embedded carriage controlH file, the entire screen is redisplayed since this is the only way to* accuratly redisplay the previous page. 2 TERMINATIONn ABNORMAL_TERMINATIONH If the program aborts abnormally or by your typing CTRL/Y to stopH it, a software terminal characteristic must be changed. When theH program starts, the escape sequence characteristic is enabled. ThisH tells the terminal driver to expect escape sequences. By having theH terminal driver interpret the escape sequences, the program doesn'tH have to do single character reads which results in less system/ overhead (EDT does single character reads).OH The following DCL command disables the escape sequence characteristic:  $ SET TERMINAL/NOESCAPEr2 CONTINUATION CONTINUATION_PROMPTgH Whenever file open errors occur with wildcards active, afterH displaying the file header, or after displaying the keypad, theH program prompts with the message "Type any character to continue:H ". At this prompt, typing "E" or CTRL/Z will exit the program andH typing "N" will display the next file. The "N"ext feature is usefulH if you want to display just the file header (/HEADER option) of each file when using wildcards.NTINUATION CONTINUATION_PROMPTgH Whenever file open errors occur with wildcards active, afterH displaying the file header, or after displaying the keypad, theH program prompts with the message "Type any character to continue:H ". At this prompt, typing "E" or CTRL/Z will exit the program andH typing "N" will display the 1 XRFI XRF is a program that will create a concordance of an input file.I It prints the input file with line numbers, and follows that withG an alphabetical cross-reference of every word used in the input? file and the line number(s) on which each word appears., A brief summary of the usage of XRF:N XRF print out usage information for XRFN XRF creates a concordance of the input 00gh͂~x|OxssM file under the name ".X"iM XRF -O creates a concordance of the inputL file under the name "outfile.ext" file and the line number(s) on which each word appears., A brief summary of the usage of XRF:N XRF print out usage information for XRFN XRF creates a concordance of the input 1 ZAPC The ZAP utility allows you to directly examine and modify files onB a Files-11 volume. Using ZAP, you can patch task images and dataD files in an interactive environment without reassembling the files. A ZAP's command syntax is generally similar to that of ODT, exceptA that commands must be terminated with a carriage return (). E There are three ways of invoking ZAP. Unlike most other utilities, F when using ZAP, you cannot specify the file name on the command line. Invoke ZAP as follows:P i% >ZAP >RUN $ZAP >ZAP @indirectfile $ ZAP>filespec[/sw] ZAP>filespec[/sw] _zapcommand _zapcommanda i Further help is available for:r i /AB /LI /RO o1 COMMANDS INDIRECT OPERATORS REGISTERS SEPARATORSa2 AB r ZAP>filespec/AB oG The /AB switch tells ZAP to process addresses as absolute byte address(G within the file. You should specify /AB for files that are not in tasktG image format (tasks and resident commons). You can also specify /AB onaK task image files, which is the only way you can reference the task header.  ZA If /AB is not specified, addresses in ZAP command lines refer toI addresses in the task image file as shown in the Task Builder task imageT map for the file.2 LI R ZAP>filespec/LI lI The /LI switch causes ZAP to display the starting disk block and addresstC boundaries for each overlay segment in the file. The format of ther display is: i bbbb: llllll-uuuuuu [type]n o- where bbbb is the starting disk block numberg" llllll is the lower address limit" uuuuuu is the upper address limit G [type] appears only for RSX-11M-PLUS-specific tasks to distinguish thesF pure section of a multiuser task and the data space section of an I- K and D-space task. For a multiuser task, a "P" will mark the pure segment.iE For an I- and D-space task, a "D" will mark the data segment. For ayH multiuser I- and D-space task, the pure segments will be marked as "PI" and "PD".2 RO w ZAP>filespec/RO tI The /RO switch opens the file in read-only mode. When /RO is specified,uE you can execute ZAP functions that change the contents of locations,t2 but the changes are not written back to the file. 2 INDIRECT  >ZAP @cmdfile oH Along with being used interactively, ZAP may be executed by means of anG indirect command file. The command file should include all input typednH to ZAP. The first line should be the file specification of the file to+ be modified. The last line should be "X".e O3 The following is an example of a ZAP command file:e W TISK.TSKs 2:120004/ 30V 70e X 2 REGISTERSs a' ZAP maintains the following registers:t e a* 0R - 7R Relocation Registers 0 through 7. E C Constant Register.  F Format Register. t Q Quantity Register. uK To access the contents of a register, specify a dollar sign ($) preceding l the register. For example:  s $C/ oH To modify the contents of the register, type in the new value and press the RETURN key.  Further help is available for A R C F Q e 2 SEPARATORS s2 There are three separator characters used by ZAP: iF "," separates a relocation register from another command line element hH ";" separates an address from an internal register specification; it isA used in expressions that set values for relocation registersy dF ":" separates a block number base value from an offset into the block 2 OPERATORSe nA ZAP accepts three operators that may be used in all expressions:  .$ "+" adds one value to another00of~z~* value + "-" subtracts one value from another valuer sI "*" multiplies one value and adds it to another; this is used in formingf Radix-50 stringse 2 COMMANDS "0 ZAP commands take one of the following formats: f' block#:address op relocreg,address opt B If op, the operation, opens a location, the present value of thatD location may be changed by typing just the new value (in octal) and pressing the RETURN key.  G Help is available for the following commands (AID ZAP COMMAND command , or AID ZAP COMMAND /. for the "/" command): s? / (open octal word) " (open ASCII word) % (open Radix-50 word)iD \ (open octal byte) ' (open ASCII byte) ^ (open preceding location)E _ (open offset word) @ (open indirect word) > (open relative branch)e& < (open last location before _, @, >) lG X (exit from ZAP) K (compute offset) O (jump and branch displacements)s= = (compute value) V (verify contents) R (set reloc register)3 .  a _b:a/ _r,a/ lG The "/" command opens a word location, displays its contents in octal,eK and stores the contents of the location in the Q(uantity) register. If the B address of the location is odd, the location is opened as a byte. tO To change the contents of the location, a new value should be typed, in octal,( at the next prompt (_). @ For example:x f _0,100/ 002:0,000100/ 000000m3 "  n _b:a" _r,a" J The '"' command opens a word location, displays its contents as two ASCIIO characters, and saves the contents of the location in the Q(uantity) register.nI If the address of the location is odd, the location is opened as a byte.e IO To change the contents of the location, a new value should be typed, in octal,T at the next prompt (_). l For example:v e _0,100" 002:000100" AG(3 %   t _b:a% _r,a% FK The "%" command opens a word location, displays its contents as 3 Radix-50O characters, and saves the contents of the location in the Q(uantity) register.cI If the address of the location is odd, the location is opened as a byte.r O To change the contents of the location, a new value should be typed, in octal,T at the next prompt (_). l For example:v e _0,100% 002:000100% UGH3 \   t _b:a\ _r,a\ FG The "\" command opens a byte location, displays its contents in octal,%E and stores the contents of the location in the Q(uantity) register. 3 dO To change the contents of the location, a new value should be typed, in octal,i at the next prompt (_). e For example:d h _0,101\ 002:0,000101\ 0003 ' T h _b:a' _r,a' fI The "'" command opens a byte location, displays its contents as an ASCII O character, and stores the contents of the location in the Q(uantity) register._ \O To change the contents of the location, a new value should be typed, in octal,a at the next prompt (_). For example:  a _0,101' 002:000101' A3 ^n t c _^t fJ The "^" command opens the previous location, displays its contents in theK current format, and stores the contents of the location in the Q(uantity) :M register. If ZAP is displaying words, the previous word location is opened.sB If ZAP is displaying bytes, the previous byte location is opened. QO To change the contents of the location, a new value should be typed, in octal,o at the next prompt (_). For example:  . _0,100/ 002:000100/ 0000000 _^0 002:000076/ 000123t3 _ t __ eL The "_" command uses the contents of the current location as an offest fromH the current location, opens that location, displays its contents in theJ current format, and stores the contents of the location in the Q(uantity) register. sO To change the contents of the location, a new value should be typed, in octal,  at the next prompt (_). s For example:  o _0,0/ 002:000100/ 100 __. 002:000202/ 1234563 @_ 0 _@0 0I The "@" command uses the contents of the current location as an absolutemK address, opens that location, displays its contents in the current format,tD and00wh͂~x|Oxss stores the contents of the location in the Q(uantity) register. rO To change the contents of the location, a new value should be typed, in octal,T at the next prompt (_). l For example:v e _0,0/ 002:000000/ 000100 _@h 002:000100/ 123456s3 >r a _>  oM The ">" command uses the low order byte of contents of the current location eL as a relative branch offset, opens that location, displays its contents in D the current format, and stores the contents of the location in the  Q(uantity) register.n oO To change the contents of the location, a new value should be typed, in octal,c at the next prompt (_). t For example:T a _0,0/ 002:0,000000/ 000100r _>p 002:0,000202/ 12321103 commands began, display the contents of that location in thehC current format, and to store the contents of that location in the e Q(uantity) register.o iO To change the contents of the location, a new value should be typed, in octal,a at the next prompt (_). n For example:h e _0,10/  002:0,000010/ 005212T __ 002:0,005224/ 0010200 _>r 002:0,005266/ 0000001 _@0 002:0,000000/ 000000T _<" 002:0,000012/ 000430r3 X  t _Xc oH The "X" command write the current block back to disk (except if /RO was$ specified) and then exits from ZAP.3 Kt r _Ka _nK _a;nK oE The "K" command computes the offset between the value of the nearesteI relocation register and the currently open location, displays the offset : value in octal, and stores it in the Q(uantity) register. 0J The "nK" command computes the displacement in bytes between the last openJ location and relocation register "n", displays the offset value in octal,! and stores it in the Q register.e bJ The "a;nK" command computes the displacement in bytes between address "a"L and relocation register "n", displays the offset value in octal, and stores it in the Q register. For example:i r _2:1202/r 002:0,000010/ 000111i _Ks =0,000010 _0,100;1K =1,0000403 O  i _aO _a;bO rJ The "aO" command computes and displays the jump and branch displacements ; from the current location to the target of the branch "a".  K The "a;bO" command computes and displays the jump and branch displacementso* from location "a" to target location "b". nJ The first number displayed is the jump displacement and the second number is the branch displacement. s For example:e p _0,4534/_ 0,004534/ 0001230 _4566O1 000030> 0000140 _4534;4566O 000030> 000014 3 = O _exp= rI The "=" command evalutes an expression, displays its value in octal, and & stores it in the Q(uantity) register. o For example:"  _1+2= 000003 3 V  p nVa dK The "V" command verifies that the contents of the just opened location aretF equal to "n". The command is used only in ZAP indirect command files.3 Rc  _b:o;nR hK The "R" command sets the value of a relocation register. "b" is the number0I of the starting block, "o" is the virtual address offset, and "n" is thex) number of the relocation register (0-7).s , For example:a _2:121200;0R3 Re tH Relocation registers 0R - 7R are used to hold addresses inside the taskI image. You load them with the base addresses of modules relocated by thepI Task Builder. By using relocation registers, you can reference locations 8 in a module using the addresses in an assembly listing. I The relocation registers are loaded differently than other registers. TooG load a relocation register, you enter a command line consisting of thelF block number and address (in normal ZAP format), a semicolon (;), andH the register you want to load. From then on you can use that relocation register as part of an address. sF For example, assume that your task has a segment that starts in blockK 13 and whose low virtual address is 1572. You would then load a relocationsL register with that address and refere00~*nce locations in the segment using the9 addresses in the assmebly listing (which starts from 0).u t _13:1572;2R _2,100/3 Co hE The constant register is a register that contains a 16-bit value youa: specify. The value "C" can then be used in an expression. a For example:r s _$C/p $C/ 000000r _3 _C + 2 =a 000005u3 Fa oI The format register controls the format of the displayed address. If itssF value is 0, ZAP displays addresses relative to the closest relocationG register. If the value is non-zero, ZAP displays addresses in absolutem: format. Zero is the initial value of the format register.3 Q oH The quantity register is set by ZAP to contain the last value displayed2 at your terminal. "Q" can be used in expressions. 2 SEPARATORS F2 There are three separator characters used by ZAP: aF "," separates a relocation register from another command line element aH ";" separates an address from an internal register specification; it isA used in expressions that set values for relocation registersy dF ":" separates a block number base value from an offset into the block 2 OPERATORS oA ZAP accepts three operators that may be used in all expressions:s y$ "+" adds one value to another value + "-" subtracts one value from another valuer sI "*" multiplies one value and adds it to another; this is used in formingf Radix-50 stringselement aH ";" separates an address from an internal register specification; it isA used in expressions tha;%; [ 1 1 , 1 3 ] A C T B L D . C M D ; COMMAND FILE TO BUILD ...ACT;K[11,1]ACT/PR/MU/-FP,[111,13]ACT/-SP/CR=[11,13]LIB13/LB:ACT,[1,1]EXEC.STB/SS/ TASK=...ACT UIC=[2,2]PAR=GENLIBR=SYSRES:ROPRI=221ASG=TI:6STACK=32RESAPR=3;3; THE FOLLOWING PARAMETER DEFINES HOW MUCH THE TASK3; IS TO EXTENDED AT BUILD TIME. THIS VALUE WILL BE -; THE SIZE OF THE WORK BUFFER USED BY ...ACT..; THE NUMBER OF TASKS WHICH CAN BE REPORTED AT+; ANY ONE TIME IS DETERMINED BY THIS VALUE.3; EACH TASK IN THE ...ACT REPORT REQUIRES 10. WORDSO2; OF BUFFER SPACE, AN EXTRA WORD IS REQUIRED AS A 3; TERMINATION INDICATOR - THUS FOR ...ACT TO REPORTS>; ON UP TO 50 TASKS THE BUFFER MUST BE 501 WORDS (10 X 50 + 1); IN LENGTH. IE: EXTTSK=501A; NOTE: ALL VALUES ARE DECIMAL/; THIS VALUE CAN BE OVERRIDDEN AT INSTALLA; TIME BY THE /INC OPTION EXTTSK=501/ THE WORK BUFFER USED BY ...ACT..; THE NUMBER OF TASKS WHICH CAN BE REPORTED AT+; ANY ONE TIME IS DETERMINED BY THIS VALUE.3; 8AP1/PR/MU/-CP/-FP,AP1/-SP=AP1,PRIAP1,LB:[1,1]EXEC.STB/SS MCRERR.STB/STACK=40 UIC=[1,1]PRI=230POOL=200ASG=TI:1 TASK=...MCP/%; 07-OCT-76 11:05:09 >SM:=DK:MCR.OBJ .TITLE RSX11D .IDENT /V41 / .LIST MEB .SBTTL INTRO4; MODIFIED BY F. BORGER, MICHAEL REESE MED CENTER TO/; A/ DIRECTLY CALL ...HEL IF TERM NOT LOGGED ON; B/ DO BELL IN PROMPT STRING-; C/ INTERACT WITH MCI (INDIRECT MCR PROGRAM)); D/ MAJOR OPERATION CHANGE INCLUDED 2 775; IF TERMINAL PRIVILEGE BYTE HAS UT.HO (=10) BIT SET6; INDICATING THAT TERMINAL IS IN A HOSTILE ENVIROMENT4; WITH FUMBLE FINGERED OPERATORS, MCR WILL SCAN THE7; CTL FOR THE GEN PARTITION. IF ANY CTL TASK IS ACTIVE.; AT SAME TERMINAL, MCR WILL GET OUT QUICKLY.6; THUS CAN NOT HAVE TWO ...BAS, ONE BAS AND MCR, ETC ; CLOGGING UP A TERMINALA) UT.HO=10 ;DEFINE "HOSTILE TERMINAL" FLAGE;; E/ MODIFIED SO IF HOSTILE TERMINAL ENCOUNTERS MCR TIMEOUTO#; TERMINAL WILL ALSO BE LOGGED OFFN1; F/ MODIFIED 5/77 TO REFLECT DEC V6B MCR CHANGESH7; G/ MODIFIED 6/77 TO USE INTERNAL ASCII -> RAD-50 CODET=; WHICH ALSO ACCOUNTS FOR LOWER CASE LETTERS AND SHOULD MAKEN;E>; H/ MODIFIED 1100h͂~x|Oxss/77 TO CONVERT ( AND ) TO [ AND ] FOR ODD-BALL5; AND DEC TERMINALS WHICH HAVE [ AND ] IN ODD PLACES ;; I/ MOD 6/78 FOR VERSION 6.3/IAS 3.0 (USE SPAWN DIRECTIVE)T;I .MCALL DIR$,VSDR$,QIOW$,EXIT$ST .MCALL SPWN$.PAGED=.SBTTL CHECK FOR MULTIPLE MCR'S, TASK ACTIVE FOR HOSTILE TERMA.START: MOV .CRTSK,R0 ;GET MY ATL POINTER -> R0' CLR ACTCNT ;CLEAR ACTIVE TASK COUNTERF' MOV #.ATLLH,R1 ;AND ATL LISTHEAD IN R1C- MOV PS.EXP,-(SP) ;SAVE PROCESSOR STATUS WORDT( BIS #140,PS.EXP ;INHIBIT TASK SWITCHING524$: MOV (R1),R1 ;START (CONTINUE) GOING THROUGH ATLD# CMP R1,.ATLLH+2 ;THROUGH ATL YET ?D BEQ 25$ ;BR IF WE FELL THROUGH= CMP A.TI(R1),A.TI(R0) ;IS THIS TASK ACTIVE FOR MY TERMINAL ?O BNE 242$ ;SKIP IF NOT9 BIT #AF.IA,A.TF(R1) ;IS THIS SCHEDULER CONTROLLED TASK ?H BEQ 242$ ;BRANCH IF NOTR MOV A.TD(R1),R5 ;GET STD-% CMP S.TN+2(R5),ATRAD ;IS IT ...AT. ?O BEQ 242$ ;SKIP IF IT ISD( INC ACTCNT ;COUNT ONE TASK ACTIVE HERE#242$: CMP R0,R1 ;IS THIS TASK ME ?,' BEQ 24$ ;IF SO, CONTINUE CHECKING ATL(6 CMP A.TD(R0),A.TD(R1) ;IF STD IS SAME, THIS IS AN MCR( BNE 24$ ;IF NOT, CONTINUE CHECKING ATL< CMP A.TI(R0),A.TI(R1) ;IF MCR TI SAME, ALREADY RUNNING HERE! BNE 24$ ;IF NO MATCH, TRY AGAINK( JSR PC,..ENB0 ;RE-ENABLE TASK SWITCHING8 JMP 16$ ;MCR IS ALREADY ACTIVE AT SAME TI, DONT HAVE 2@25$: ;OK, ANOTHER MCR NOT ACTIVE HERE CHECK FOR HOSTILE TERMINAL% JSR PC,..ENB0 ;ENABLE TASK SWITCHINGN% MOV A.TI(R0),R5 ;MY TI POINTER -> R5M3 BITB #UT.HO,U.PR(R5) ;IS THIS A HOSTILE TERMINAL ?N BEQ 255$ ;NO SKIP NEXT TEST,$ TST ACTCNT ;IS THERE ONE RUNNING ? BLE 255$ ;CONTINUE IF NOTU& JMP 16$ ;ONE PROGRAM GOING, SO SCRAM3255$: BITB #UT.LG,U.PR(R5) ;IS TERMINAL LOGGED ON ?O BNE 35$ ;OK IF HE IS< MOV HELRAD,SPWDPB+S.PWTN+2 ;ELSE CHANGE TASK NAME TO ...HEL3 MOV #401,SPWDPB+S.PWPC ;AND RUN HIM AS A PRIV TASKC( DIR$ #SPWDPB ;AND REQUEST HIM DIRECTLY30$: JMP 16$ ;AND EXITE.PAGEW(.SBTTL ISSUE PROMPT AND GET COMMAND LINE35$:/ MOV U.TF(R5),TERFLA ;SAVE THIS TERMINALS FLAGSA' MOV .CRTSK,R0 ;POINT R0 TO MY ATL NODET& MOV A.TI(R0),R0 ;NOW GET TI INDICATOR/ MOV U.UI(R0),SPWDPB+S.PWPC ;FILL IN UIC IN DPBI/27$: MOV .MCRTO,R3 ;GET MCR TIME OUT IN SECONDSI CLR R2 ;SET FOR DIVIDE2 DIV #10.,R2 ;CONVERT TIME TO 10-SEC UNITS FOR TT6 MOV R2,QIN+Q.IOPL+4 ;AND SET TIME IN THE READ QIO DPB& DIR$ #QIN ;DO READ COMMAND DIRECTIVE BCS 23$ ;BR IF DIRECTIVE FAILS, CMPB RSTAT,#IS.TMO ;DID THE READ TIME OUT ? BNE 212$ ;BR IF DIDN'T MOV R0,-(SP) ;SAVE R0 MOV .CRTSK,R0 ;GET MY ATL. MOV A.TI(R0),R0 ;AND GO TO PUD POINTER FOR TI3 BITB #UT.HO,U.PR(R0) ;IS THIS A HOSTILE TERMINAL ?B BEQ 211$ ;BR IF IT ISN'T< MOV BYERAD,SPWDPB+S.PWTN+2 ;ELSE CHANGE TASK NAME TO ...BYE3 MOV #401,SPWDPB+S.PWPC ;AND RUN HIM AS A PRIV TASK ( DIR$ #SPWDPB ;AND REQUEST HIM DIRECTLY211$: MOV (SP)+,R0 ;RESTORE R0 BR 22$ ;AND SCRAMA+212$: TSTB RSTAT ;CHECK STATUS OF READ QIOS BMI 22$ ;BR IF READ FAILED- TST RSTAT+2 ;CHECK # OF CHARACTERS RECIEVEDV BNE 1$ ;BR IF SOME RECEIVED,022$: JMP 15$ ;TIMED OUT OR GOT NULL LINE - EXIT%23$: JMP 21$ ;DIRECTIVE FAILED SCRAM .PAGEH.SBTTL CLEAN UP COMMAND LINE"1$: CLR R3 ;RECEIVED COMMAND LINE+ MOV #READIN,R4 ;INPUT BUFFER ADDRESS TO R4M MOV R4,R5 ;BUFFER ADDR -> R5 MOV R4,R1 ;AND TO R1 MOV R4,R2 ;AND TO R2- ADD RSTAT+2,R5 ;BUMP R5 TO END OF INPUT LINEB%20$: CMPB #11,(R2) ;CHARACTER A TAB ?C BNE 2$ ;BR IF NOTI6 MOVB #40,(R2) ;CHANGE TAB TO A SPACE FOR COMMAND WORK1 ;CONCATENATE TABS OR MULT SPACES TO ONE SPACEI(2$: CMPB #40,(R2)+ ;IS CHARACTER A SPACE BNE 3$ ;BR IF NOT A SPACED1 CMP R1,R4 ;HAVE WE FOUND A GOOD CHARACTER YET ?M+ BEQ 222$ ;IF NOT, SKIP THIS LEADING SPACE8 CMPB #40,-1(R1) ;NOT A LEADING SPACE, MULTIPLE SPACES ?2 BNE 3$ ;IF NOT MULTIPLE SPACES, STORE THIS SPACE:222$: INC R3 ;SKIP THIS CHARACTER,COUNT SKIPPED CHARACTER BR 4$ ;LOOK FOR NEXT CHARACTER<3$: MOVB -1(R2),(R1)+ ;PACK CHARACTER OF COMMAND INTO BUFFER CMPB -1(R1),#'( ;A LEFT PAREN ? BNE 37$ ;BR IF NOT. MOVB #'[,-1(R1) ;CHANGE THE ( TO [ FOR SY00~*NTAX BR 4$ ;AND SKIP NEXT%37$: CMPB -1(R1),#') ;OR COULD BE A )  BNE 4$ ;SO SKIP TOOE" MOVB #'],-1(R1) ;NO CHANGE ) TO ]#4$: CMP R2,R5 ;END OF BUFFER YET ?;# BNE 20$ ;IF NOT FILLED KEEP GOING?0 SUB R3,R5 ;ACCOUNT FOR IGNORED SPACES AND TABS% SUB R3,RSTAT+2 ;AT THIS COUNTER ALSOC/ MOV #SPWDPB,DPBPTR ;SET FOR STANDARD DIRECTIVEA+ CMPB RSTAT+1,#15 ;TERMINATED WITH CARRET ?  BNE 276$ ;BR IF NOT. MOV #RECDPB,DPBPTR ;IF SO, DIDDLE DPB ADDRESS)276$: MOV R4,R0 ;ADDRESS OF BUFFER -> R0 - ;CODE TO CONVERT LOWER CASE TO UPPER CASE1& ;DELETED, NOW DONE BY INTERNAL SUB< JSR PC,CAT5 ;CONVERT FIRST 3 CHAR OF NAME -> RAD50 (IN R1)0 BIT #UT.LG,TERFLA ;IS THIS TERMINAL LOGGED ON ? BNE 5$ ;BR IF HE IS 9 CMP HELRAD,R1 ;NOT LOGGED ON, BETTER LET HIM RUN 'HELLO'H BEQ 19$ ;SO HE CAN LOG ONB/ MOV #PLSLO,R4 ;PLEASE LOGON MESSAGE ADDR -> R4+ CLR RSTAT+2 ;CLEAR STATUS WORD MOV HELRAD,VSDBLK+4 BR 9$ ;ASK HIM TO LOG ON05$: CMPB #'@,(R4) ;IS FIRST CHAR ON LINE A '@' ? BNE 51$ ;NO, GO ON1 MOV ATRAD,R1 ;YES SET TO REQUEST ...AT. DIRECTLYT BR 66$ ;AND GO THERE<51$: CMP LOGRAD,R1 ;DOES HE WANT TO LOG A MESSAGE (ON CL:) ? BNE 52$ ;IF NOT CONTINUE JMP 18$ ;ELSE LET HIM?)52$: CMPB #73,(R4) ;JUST A COMMENT LINE ?O BEQ 18$ ;SAME AS LOG !!  CMPB #41,(R4) ;LEADING ! ?E BEQ 18$ ;DO IT TOO.PAGE;#.SBTTL CHECK FOR MFT, MASSAGE NAMESR/19$: MOV #8.,R5 ;SET TO CHECK FOR 8. MFT NAMES4/ MOV #MFTNAM,R4 ;SET TO START OF MFT NAME TABLEI< MOV MFTRAD,SPWDPB+S.PWTN+2 ;CHANGE REQUESTED TASK TO ...MFT26$: CMP R1,(R4)+ ;COMPARE REQ'D TASK WITH MFT TASK BEQ 7$ ;BR IF WE MATCH' SOB R5,6$ ;LOOP TILL 8. NAMES CHECKED 0 ;NOW CHECK FOR 14. MASSAGE NAMES, LAST 4 ARE0 ;DUMMIES WHICH CAN BE CHANGED VIA A ONE-WORD2 ;ZAP TO ADD MFT FUNCTIONS WITHOUT CHANGING MCR ;SEE MASNAM TABLED3 MOV #14.,R5 ;SET LOOP COUNT FOR 14. MASSAGE NAMESR3 MOV #MASNAM,R4 ;SET TO START OF MASSAGE NAME TABLEM< MOV MASRAD,SPWDPB+S.PWTN+2 ;CHANGE REQUESTED TASK TO ...MAS=666$: CMP R1,(R4)+ ;COMPARE REQ'D TASK NAME WITH MASSAGE NAME+ BEQ 7$ ;BR IF WE MATCH' SOB R5,666$ ;ELSE TRY 7 MASSAGE NAMESR466$: MOV R1,SPWDPB+S.PWTN+2 ;PUT IN ACTUAL TASK NAME#7$: MOV .CRTSK,R0 ;GET MY ATL AGAIND& MOV A.TI(R0),R0 ;NOW HAVE PUD POINTER/ MOV U.RB(R0),R0 ;NOW HAVE PRIVILEGE WORD IN R0G* ;REQUESTED NAME (NOT MFT OR MAS) IN R1& JSR PC,PRICHK ;CHECK USERS PRIVILEGES TST R0 ;CAN HE DO THIS BPL 77$ ;YES HE CANL0 MOV #PRIMES,QOUT+Q.IOPL ;FILL IN MESSAGE THINGS MOV #PRILEN,QOUT+Q.IOPL+2 JMP 12$ ;AND REPORT ERRORM.PAGEM.SBTTL SPAWN THE TASK;-77$: MOV ...RAD,SPWDPB+S.PWTN ;FIRST PART TOOG7 MOV RSTAT+2,SPWDPB+S.PWCL ;PUT CMD LENGTH IS SPAWN DPB /78$: DIR$ DPBPTR ;DO DIRECTIVE TO REQUEST TASKA% BCC 14$ ;BR IF DIRECTIVE SUCCESSFULU1 CMPB $DSW,#IE.INS ;IS ERROR TASK NOT INSTALLED ?Q& BNE 21$ ;IF NO, LET MCRERR HANDLE IT= MOV MASRAD,SPWDPB+S.PWTN+2 ;ELSE LET MASSAGE HANDLE THIS ONEB ; ) ;APRIL FOOL FUNCTION ADDED, TAKE AWAYL ;SOME PRIVILEGES ;L MOV R0,-(SP) ;SAVE RO MOV .CRTSK,R0 ;GET MY ATL NODES MOV A.TI(R0),R0 ;AND MY PUD1 BIC #100000,U.RB(R0) ;CLEAR TOP BIT SO ASR WORKS2% ASR U.RB(R0) ;DELETE SOME PRIVILEGES  MOV (SP)+,R0 ;RESTORE R0  BR 78$ ;AND TRY AGAINA=21$: MOV #NODERR,QOUT+Q.IOPL ;INSETT MESS START IN PARAM LISTS. MOV #NODERL,QOUT+Q.IOPL+2 ;AND MESSAGE LENGTH- CMP #-1,$DSW ;WAS ERROR INSUFFICIENT NODES ?+ BEQ 12$ ;IF TRUE, BRANCH7 MOV #ERRTAB,R5 ;POINT R5 TO BYTE TABLE OF ERROR VALUESA@ MOV MCRRAD,VSDBLK+4 ;RAD50 'MCR' TO SEND REQ BLOCK (FOR MCRERR).8$: MOVB (R5)+,R4 ;FIRST/NEXT ERROR CODE -> R4" BEQ 9$ ;IF 0, FELL THROUGH TABLE CMPB (R5)+,$DSW ;ERRORS MATCH ? BNE 8$ ;TRY ANOTHER IF NOT>9$: MOVB R4,VSDBLK+0 ;MATCH (OR FELL THROUGH) DSW OR 0 ->BLOCK+ MOVB RSTAT+2,VSDBLK+1 ;QIO STATUS -> BLOCKM# BEQ 13$ ;SKIP NEXT IF NO QIO WENTN& MOV RSTAT+2,R3 ;CHARACTER COUNT -> R3# CMP #22,R3 ;CHECK CHARACTER COUNTI! BGE 10$ ;BR IF CHAR COUNT < 18.I! MOV #22,R3 ;ELSE LIMIT IT TO 18A10$: MOV #VSDBLK+10,R40 MOV #READIN,R5 ;RESTORE INPUT BUFFER AD00͂~x|OxssDR -> R5+11$: MOVB (R5)+,(R4)+ ;XFER BYTE OF MESSAGEQ SOB R3,11$ ;TILL DONET,13$: MOV ...RAD,VSDBLK+2 ;INSERT RAD50 '...'# DIR$ #SRQDPB ;REQUEST MCRERR TASKS BR 15$A"12$: DIR$ #QOUT ;WRITE ERROR MESS! BCS 15$ ;BR IF DIRECTIVE FAILEDT TSTB RSTAT ;CHECK QIO STATUS BMI 15$ ;BR IF QIO FAILEDT 18$: JMP 27$014$: CMPB #15,RSTAT+1 ;WAS TERMINATOR A CARRET ? BEQ 16$ ;BR IF IT WAS :15$: MOV #1,QOUT+Q.IOPL+2 ;ELSE MAKE OUT QIO ONE CHARACTER' CLR QOUT+Q.IOPL+4 ;NO CARRIAGE CONTROLP% DIR$ #QOUT ;PUT CAR. BACK TO MARGINR16$: EXIT$S ;SCRAM HERE.PAGE,.SBTTL CONVERT ASCII -> RAD 50;SC;THIS INTERNAL SUB REPLACES $CAT5 SO THAT IT CAN BE INCLUDED IN THE ;PURE CODE AREA OF MCR;T;CALLING CONVENTION$;B;R0 POINTS TO ASCII BUFFERC; WILL CONVERT NEXT THREE CHARACTERS. '.' IS LEGAL AND ANY ILLEGAL$:; CHARACTERS WILL BE IGNORED (ALSO CONVERTS TO UPPER CASE);B ;RETURN WITH%;R1 CONTAINING 3-CHARACTERS IN RAD 50T!;R0 BUMPED PAST SAME 3 CHARACTERSL;;"CAT5: MOV #3,R2 ;LOOP COUNT TO R2 CLR R1 ;CLEAR ANSWER AT STARTI$LOOP: MOVB (R0)+,R3 ;GET A CHARACTER CMPB R3,#100 ;AN '@' ?1 BEQ RETURN ;IF SO WANTS INDIRECT MCR, SO RETURN $ BLT 4$ ;IF LT, NOT ALPHA CHARACTER# BIC #40,R3 ;CONVERT TO UPPER CASE ! SUB #100,R3 ;AND THEN TO RAD 50E BR 25$ ;AND DO CONVERSION'C ;IGNORE '$','.', AND 'SPACE' SINCE THOSE SHOULDN'T BE IN TASK NAMET04$: CMPB R3,#'0 ;BETTER BE A DIGIT IF NOT ALPHA BLT 23$ CMPB R3,#'9 BGT 23$$ SUB #22,R3 ;CONVERT TO RAD-50 BASE BR 25$ ,23$: CLR R3 ;BAD RAD-50 CHAR, SO IGNORE HIM,25$: MUL #50,R1 ;MUL PREV CHARACTER BY BASE" ADD R3,R1 ;ADD CURRENT CHARACTER( SOB R2,LOOP ;AND LOOP FOR 3 CHARACTERSRETURN: RTS PC ;AND RETURNA.PAGE$.SBTTL PURE ERROR DPB'S AND MESSAGES8SRQDPB: VSDR$ MCRERR,,,,,VSDBLK ;SEND/REQUEST FOR MCRERR$NODERR: .ASCII <15>/MCR -- NO NODES/ NODERL=.-NODERR .EVENGPRIMES: .ASCII <15>/CURRENT USER PRIVILEGES DO NOT ALLOW THAT FUNCTION/ PRILEN=.-PRIMES .EVEN;#;LOCAL VALUES FOR ERROR TABLE$;OTHER VALUES (POSITIVE) ARE GLOBALSIE.ACT=-7 ;TASK NOT ACTIVEIE.INS=-2 ;TASK NOT INSTALLEDAIE.HWR=-6 ;HANDLER NOT RESIDENTA"IE.ITS=-8. ;INCONSISTENT DIRECTIVEERRTAB: ;BYTE TABLE OF ERRORSD! .BYTE NTINS ;TASK NOT INSTALLED .BYTE IE.INSG# .BYTE HNNRE ;HANDLER NOT RESIDENTS .BYTE IE.HWR " .BYTE TACTI ;TASK ALREADY ACTIVE .BYTE IE.ACTR .BYTE DSABL ;TASK DISABLED .BYTE IE.ITSN .BYTE UNKDI ;UNKNOWN DIRECTIVE .BYTE 0.PAGEI.SBTTL OTHER PURE CODE DATACHELRAD: .RAD50 /HEL/BYERAD: .RAD50 /BYE/MCRRAD: .RAD50 /MCR/MFTRAD: .RAD50 /MFT/MASRAD:: .RAD50 /MAS/OLOGRAD: .RAD50 /LOG/...RAD: .RAD50 /.../ATRAD: .RAD50 /AT./SMCIRAD: .RAD50 /MCI/4PROMPT: .ASCII <15><12>/MCR>/<7> ;USER PROMPT STRING .EVEN)MFTNAM: ;TABLE OF POSSIBLE MFT TASK NAMEST" .RAD50 /ABOALTCANDISENAFIXRESUNF/-MASNAM: ;TABLE OF POSSIBLE MASSAGE TASK NAMESY" .RAD50 /PRITYPPURDIRBLORECFRESUB/ .RAD50 /PROUNP/;MASPAT:: .WORD 0,0,0,0 ;ROOM FOR 4 ADDED MASSAGE FUNCTIONSE.PAGE.SBTTL IMPURE CODE0VSDBLK: .BLKW 13 ;BUFFER FOR SEND/REQ TO MCRERR ;READ C PROMPT AND TIME-OUT <QIN: QIOW$ IO.RPR!TF.TMO,1,1,,RSTAT,,:QOUT: QIOW$ IO.WLB,1,1,,,, ;ERROR REPORT QIORECDPB: .WORD -1$SPWDPB: SPWN$ ...MCR,,,,,,,,READIN,,0TERFLA: .WORD 0 ;STORAGE FOR TERMINAL FLAGS WORD%DPBPTR: .WORD 0 ;POINTER TO SPAWN DPBSRSTAT: .BLKW 2KLSTAT: .BLKW 2P@ACTCNT: .WORD 0 ;COUNT OF TASKS ACTIVE HERE FOR HOSTILE TERMINALREADIN: .BLKW 66.G .END START.PAGE.SBTTL IMPURE CODE0VSDBLK: .BLKW 13 ;BUFFE*sLLh8@ @* %@ @8@`@>4Hq@:s@*:@T;@ZxZ@eXM@f @*g#@4{W@+}h~@ ~@{h@*|L@p@ @%@@8@*s@9 % Zs*zT~  (* `w U(7 &&*3 נ@E @ נ0*נ9 Wp(`~I Q""* MCR -- NO NODES CURRENT USER PRIV%8ILEGES DO NOT ALLOW THAT FUNCTIONZ'Z2mQDR{Q_M|| Q MCR>$ZxZ>4Hq+}h~ ` {h~*~4{q!'[qvfZgzoKqU( zf * Pv v&:s ~  v:&v&$ |Q  U(7 &&**AUTOBYE/PR/-FP=AUTOBYE,LB:[1,1]EXEC.STB/SS/UNITS=0STACK=32 TASK=AUTOBYPRI=150 UIC=[1,1]// .TITLE AUTOBY .SBTTL /MRH001/;<; PROGRAM TO RUN EVERY 5 MINUTES TO LOG USERS OFF THE SYSTEM>; SO THAT CONNECT TIME IS A BETTER INDICATION OF ACTUAL USE BY; MOST OF OUR USERS;; AT EACH CALL;B; 1/ SCANS ATL FOR TIME-SHARING TASKS, AND ACCOUNTS THEM TO PROPER ; TERMINAL,; THUS HANDLERS, F11ACP, ETC ARE EXCLUDED;;;; 2/ FINDS TT1 PUD AND THEN SCANS TI PUDS FOR EACH TERMINAL;; A/ IF NOT HOSTILE, SKIPS IT; ; B/ IF NOT LOGGED ON, SKIPS IT;2; C/ IF HOSTILE AND SOMETHING RUNNING, FORGETS IT;09; D/ IF HOSTILE AND NOTHING RUNNING, CHECKS ACTIVITY BITH-; IN TI PUD (SET EACH TIME MCR IS EVOKED)D;T,; E/ IF ACTIVITY BIT IS SET, JUST CLEARS IT; -; F/ IF ACTIVITY BIT IS CLEAR, LOGS USER OFFN;A) UT.HO=10 ;DEFINE "HOSTILE" TERMINAL BITI) UT.AC=20 ;DEFINE ACTIVITY BIT IN TI PUDX7 TTYNUM=46 ;OCTAL NUMBER OF TERMINALS, (NOT INCL TT0:) ;  .MCALL DIR$,SPWN$,EXIT$S,WTSE$H I.SBTTL COUNT ACTIVE TASKSN.START: MOV .CRTSK,R0 ;GET MY ATL POINTER -> R0' MOV #.ATLLH,R1 ;AND ATL LISTHEAD -> R1 - MOV PS.EXP,-(SP) ;SAVE PROCESSOR STATUS WORD ( BIS #140,PS.EXP ;INHIBIT TASK SWITCHING524$: MOV (R1),R1 ;START (CONTINUE) GOING THROUGH ATLR# CMP R1,.ATLLH+2 ;THROUGH ATL YET ?E" BEQ CHECK ;BR IF WE FELL THROUGH9 BIT #AF.IA,A.TF(R1) ;IS THIS SCHEDULER CONTROLLED TASK ?  BEQ 242$ ;BRANCH IF NOT " MOV A.TI(R1),R2 ;GET TI PUD IN R2& CMP U.DN(R2),#"TT ;IS IT A TERMINAL ? BNE 242$ ;IF NOT, SKIP ITV+ MOVB U.UN(R2),R3 ;GET TI UNIT NUMBER IN R3I BEQ 242$ ;SKIP TT0! DEC R3 ;MAKE HIM A TABLE OFFSETV, INCB ACTIVE(R3) ;COUNT ONE TASK ACTIVE HERE 242$: BR 24$ ;CONTINUE THRU ATL.CHECK: JSR PC,..ENB0 ;RE-ENABLE TASK SWITCHING O.SBTTL SCAN EACH TERMINAL;;O5;SCAN PUDS FOR TT1 (HE'S THE LAST ONE, NOT THE FIRST)T;F- CLR R5 ;USE R5 AS INDEX INTO ACTIVITY TABLE  MOV .PUDBA,R1 ;START OF PUDS#300$: CMP U.DN(R1),#"TT ;IS IT TT ?C BNE 301$ ;BR IF NOT  CMPB U.UN(R1),#1 ;IS IT TT1 ? BEQ 303$ ;IF SO, START SCANG$301$: ADD #U.SZ,R1 ;BUMP TO NEXT P00x|OxssUD BR 300$ ;AND LOOK AGAINM;T; FOUND TT1 PUD, CHECK EACH ONEO; .303$: BITB #UT.HO,U.TF(R1) ;HOSTILE TERMINAL ? BEQ 310$ ;IF NOT HOSTILE, SKIP( BITB #UT.LG,U.TF(R1) ;IS IT LOGGED ON ? BEQ 310$ ;IF NOT, SKIP, TSTB ACTIVE(R5) ;IS SOME TASK ACTIVE HERE ? BNE 310$ ;IF SO, SKIP IT4 BITB #UT.AC,U.TF(R1) ;OK, IS MCR ACTIVITY BIT SET ? BNE 305$ ;BR IF IT IS ) MOV A.TI(R0),-(SP) ;SAVE MY TI INDICATOR : MOV R1,A.TI(R0) ;CHANGE MY TI SO BYE RUNS AT HIS TERMINAL DIR$ #SPWDPB ;EVOKE ...BYE DIR$ #WAIT ;AND WAIT FOR ITM, MOV (SP)+,A.TI(R0) ;RESTORE MY TI INDICATOR BR 310$ ;AND CONTINUE THE SCANF305$: BICB #UT.AC,U.TF(R1) ;DON'T LOG OFF, JUST CLEAR MCR ACTIVITY BIT1310$: SUB #U.SZ,R1 ;BUMP R1 TO NEXT HIGHER TT PUDI/ INC R5 ;PUSH ACTIVITY TABLE INDEX TO NEXT PUDF CMP R5,#TTYNUM ;DONE ALL 36 ? BLT 303$ ;IF NOT, DO ANOTHER EXIT$S ;ELSE EXIT I.SBTTL DATA AREAS(; ;TABLE OF TASK ACTIVITY BYTES,;I1ACTIVE: .BLKB TTYNUM ;ONE BYTE FOR EACH TERMINALR;S;SPAWN DPB FOR ...BYED; 2SPWDPB: SPWN$ ...BYE,,,1,1,5 ;SPAWN BYE UNDER 1,1;M;WAIT DPB FOR THE SPAWN ;D!WAIT: WTSE$ 5 ;WAIT FOR EVENT 5A;. .END START LOG OFF, JUST CLEAR MCR ACTIVITY BIT1310$: SUB #U.SZ,R1 ;BUMP R1 TO NEXT HIGHER TT PUDI/ INC R5 ;PUSH ACTIVITY TABLE INDEX TO NEXT PUDF CMP R5,#TTYNUM ;DONE ALL 36 ? BLT 303$ ;IF NOT, DO ANOTHER EXIT$S ;ELSE EXIT I.SBTTL DATA AREAS(; ;TABLE OF TASK ACTIVITY BYTES,;I1ACTIVE: .BLKB TTYNUM ;ONE BYTE FOR EACH TERMINALR;S;SPAWN DPB FOR ...BY* )^LLh8@ %@ @8@*g#@|L@W@@%@*W@BYE=BYE .TITLE RSX11D .SBTTL INTRO PAGE .IDENT /V02 / .LIST MEB.; .PSECT . ABS.,OVL,RW,LCL,D ;MAX LEN = 000000;; % .MCALL DIR$,GMCR$,QIOW$,EXIT$S,GTIM$< .MCALL FDBDF$,FSRSZ$,FDAT$A,FDRC$A,FDOP$A,NMBLK$,GET$R,PUT$# .MCALL CLOSE$,OPEN$R,OPEN$A,NBOF$L;;1; BYEPDS IS STANDARD HEL MODIFIED TO INTERFACE TO; REESE SYSTEM;,; BYE DOES NORMAL THING OF LOGGING USER OFF.; TWO MINOR CHANGES ARED; A/ BYE DOES NOT RESET TERM CHARACTERISTICS EXCEPT FOR PHONE LINESE; B/ BYE CANCLES HIS MCR RECALL FLAG SO MCR AND HEL ARE NOT RECALLEDD; (; MAJOR MODIFICATION FOR IAS/RSX IS THAT;LA; A/ HEL HAS PUT LOG ON TIME AND USER RECORD IN [1,100]PDSUPF.DAT"; INTO A COMMON AREA HELBYE.TSK;DA; B/ BYE USES DATA IN COMMON AREA TO COMPUTE CONNECT TIME FOR THEE; USER, AND WRITES TO A FILE [1,100]XXXXXXXXX.DAT (WHERE XXXXXXXXXA; IS THE USERNAME TERMINAL WAS LOGGED INTO) A LINE OF THE FORM ;7; MM/DD/YY HH:MM:SS MM/DD/YY HH:MM:SS DDD:HH:MM:SSR>; (TIME OF LOGIN) (TIME OF LOGOUT) TOTAL CONNECT TIME;A:; C/ AS A HANDSHAKE, BYE ZEROS THE CONNECT TIME BUFFER AND6; USER PROFILE FILE RECORD NUMBER AFTER HE FINISHES;1; D/ FORMAT OF HELBYE IS; ;; HELBYE:: .BLKW 8 ;LOG-ON TIME (A GET TIME DATA BLOCK)O-; .WORD 17 ;INDEX INTO USER PROFILE FILEW; .WORD 0 ;A SPARE WORDX9; THE ABOVE 10. WORD BLOCK IS REPEATED FOR EACH TERMINALO; IN THE SYSTEM.F;E;R=; E/ BYE IS MORE HUMAN LIKE: HIS TOTAL ACTION LOOKS LIKE THISR; ; MCR>BYE2; USER XXXXXXXXX: YOU ARE LOGGED OF AT HH:MM:SS#; CONNECT TIME WAS: DDD:HH:MM:SSN; GOOD MORNINGD6; GOOD AFTERNOON (LAST LINE IS TIME DEPENDENT); GOOD EVENINGF;L;  .PAGE .SBTTL DATA AREAS4GMCDPB: GMCR$ ;DPB & BUFFER TO GET MCR & FREE NDOES@QIODPB: QIOW$ SF.RDF,6,1,,,, ;QIO TO RESET TERM CHARACTERISTICSLBYEDPB: QIOW$ IO.WVB,6,1,,,, ;QIO TO WRITE LOG-OFF MESSAGEGETDPB: GTIM$ TIMBUFBYEHDR: .ASCII /USER /BYEMES: .ASCII / : /BYEME1: .ASCII /LOGGED OFF AT /XBYEPTR: .ASCII / / BYELEN=.-BYEHDR BYELE1=.-BYEME1 .EVENBYEMS1: .ASCII /GOOD EVENING/  BYELN1=.-BYEMS1BYEMS2: .ASCII /GOOD AFTERNOON/G BYELN2=.-BYEMS2BYEMS3: .ASCII /GOOD MORNING/ BYELN3=.-BYEMS3 .EVEN#TIMCON: .ASCII /CONNECT TIME WAS: /ITIMTIM: .ASCII /DDD:HH:MM:SS/E TIMLEN=.-TIMCON .EVEN OUT.LN = 80.8TIMFLA: .WORD 0 ;FLAG FOR FIRST TIME PUTING TIME TO FILE8MONTAB: .BYTE 31.,31.,28.,31.,30.,31.,30. ;DEC THRU JUNE: .BYTE 31.,31.,30.,31.,30.,31. ;TABLE OF LENGTHS OF MONTHS .EVEN)TIMBUF: .BLKW 8. ;BUFFER FOR LOG OFF TIME-'DIFBUF: .BLKW 8. ;BUFFER FOR DELTA TIMEI*USEBUF: .BLKW 40 ;BUFFER TO READ UPF INFO-OUTBUF: .BLKB OUT.LN ;BUFFER FOR FILE OUTPUT/ .PAGE .SBTTL FCS DATA AREAS$ NBOF$L ;DEFINE NAME BLOCK OFFSETSEUSENAM: NMBLK$ PDSUPF,DAT,,SD ;DEFINE FILE NAME FOR USER PROFILE FILE.ANAMBLK: NMBLK$ UNSERN,LOG,,SD ;DEFINE FILE NAME FOR TIME LOG FILE FSRSZ$ 2T/FDB: FDBDF$ ;DEFINE FDB FOR USER PROFILE FILEY FDAT$A R.FIX,,64. FDRC$A FD.RAN,USEBUF,64.  FDOP$A 4,,USENAMB+FDB1: FDBDF$ ;DEFINE FDB FOR LOGGING FILEF FDAT$A R.VAR,FD.CR,80.L FDRC$A ,OUTBUF,80.K FDOP$A 4,,NAMBLKAUICSTR: .ASCII /[1,100]/ UICLEN=.-UICSTR .EVENUICDSD: .WORD UICLEN .WORD UICSTRS .PAGE .SBTTL INITIAL CODEA;MOD AT MRH SO BYE NEVER RECALLS MCR (OR HELLO) AND DOESN'T RESETP;TERMINAL CHARACTERISTICS$+START: DIR$ #GMCDPB ;GET MCR TO FREE NODESG/ MOV #OUTBUF,R0 ;BLANK OUT LINE BUFFER FOR FILE  MOV #OUT.LN,R1Y MOVB #40,R23$: MO00x|OxssVB R2,(R0)+R SOB R1,3$ MOV .CRTSK,R5 ;GET MY ATL ENTRY# MOV #77406,-(SP) ;NEW PDR TO STACKF% MOV A.HA(R5),-(SP) ;NEW PAR TO STACK,/ JSR PC,..SPD3 ;SWAP PAR/PDR SET 3 TO MY HEADER/2 BIC #HF.RMC,60000+H.EAF ;CLEAR MY MCR RECALL FLAG, MOV #500,60000+H.UIC ;MAKE HEADER UIC 1,100& JSR PC,..SPD3 ;RESET MY PAR/PDR SET 3" CMP (SP)+,(SP)+ ;AND ADJUST STACK, MOV A.TI(R5),R5 ;NOW HAVE MY TI PUD POINTER) BIC #UT.LG,U.TF(R5) ;CLEAR LOGGED ON BITT@ BIC #UC.OSP,U.PR(R5) ;AND CLEAR OUTPUT SPOOLED BIT JUST IN CASE3 BIT #6,U.C3(R5) ;A DZ OR DC PHONE LINE INTERFACE ?Y BEQ 10$ ;BR IF NOT4 DIR$ #QIODPB ;ONLY RESET IF A PHONE LINE INTERFACE10$: DIR$ #GETDPB ;GET TIME- MOV #BYEPTR,R0 ;POINT TO 2ND HALF OF MESSAGE;! MOV #TIMBUF+6,R5 ;POINT TO HOURS, MOV #3,R4 ;LOOP COUNTERC CLR R2 ;NO LEADING ZEROES 1$: MOV (R5)+,R1 ;TIME IN R1 CMP R1,#10. ;ONE DIGIT ? BGE 2$ ;IF SO SKIP NEXTI$ MOVB #'0,(R0)+ ;MAKE TIME LOOK NEAT2$: JSR PC,$CBDMG ;CONVERT TIMEU MOVB #':,(R0)+ ;MAKE IT NEATE SOB R4,1$ ;LOOP FOR 3# MOVB #' ,-(R0) ;ERASE LAST ':'  .PAGE .SBTTL GET USER INFON% MOV #HELBYE,R0 ;POINT TO COMMON AREAN MOV .CRTSK,R5 ;GET MY ATL AGAIN MOV A.TI(R5),R5 ;AND TI POINTER" MOVB U.UN(R5),R5 ;AND UNIT NUMBER- MUL #20.,R5 ;MAKE HIM OFFSET INTO DATA AREA ( ADD R5,R0 ;NOW HAVE BUFFER FOR THIS TI5 TST HB.USE(R0) ;IF THIS IS ZERO, WAS NEVER LOGGED ON ;OR PERMANENTLY CONNECTEDV% BNE 22$ ;SO DON'T WRITE TO LOG FILES7 MOV #BYEME1,BYEDPB+Q.IOPL ;CHANGE START ADDR OF STRINGE3 MOV #BYELE1,BYEDPB+Q.IOPL+2 ;AND CHANGE LENGTH TOOS! DIR$ #BYEDPB ;WRITE BYE MESSAGEF EXIT$S ;JUST EXIT&22$: MOV R0,-(SP) ;SAVE BUFFER POINTER: MOV HB.USE(R0),R5 ;GET RECORD NUMBER IN USER PROFILE FILE MOV #FDB,R0 ;FDB ADDRESS) MOV #USENAM,R1 ;DATA SET DESC ADDR -> R1 , MOV #UICDSD,R2 ;UIC STRING DESCRIPTOR -> R2" JSR PC,.GTDIR ;FILL IN UIC STRING OPEN$R #FDB ;READ USER PROFILE FILEC GET$R #FDB,#USEBUF,#100,R5T CLOSE$ #FDB ;CLOSE THE FILEE- MOV USEBUF,R1 ;FIRST PART OF USER NAME TO R1#& MOV #BYEMES,R0 ;POINT TO ASCII BUFFER JSR PC,$C5TA ;CONVERT USER NAME MOV USEBUF+2,R1 ;2ND 3 LETTERS2 JSR PC,$C5TA  MOV USEBUF+4,R1 ;LAST 3 JSR PC,$C5TA;% DIR$ #BYEDPB ;WRITE LOG OFF MESSAGE .PAGE* .SBTTL COMPUTE AND REPORT LOGGED ON TIME, MOV (SP),R0 ;RESTORE HELBYE BUFFER POINTER, ADD #HB.LOG,R0 ;POINT AT LOG ON TIME BUFFER# MOV #TIMBUF,R1 ;CURRENT TIME AT R1R! MOV #DIFBUF,R2 ;DIFFERENCE AT R2, MOV #6,R3 ;DO 6 WORDSC'LOO1: MOV (R1)+,(R2) ;XFER CURRENT TIMET$ SUB (R0)+,(R2)+ ;SUB LOGGED IN TIME& SOB R3,LOO1 ;FOR YR,MO,DA,HR,MIN,SEC$ MOV #DIFBUF,R5 ;POINT AT DIFF AGAIN; MOV G.TIYR(R5),R1 ;GET DIF IN YEARS (COULD BE AT NEW YEAR)P BEQ 444$ ;NO MUL #12.,R1 ;CONVERT TO MONTHS% ADD R1,G.TIMO(R5) ;AND ADJUST MONTHSG"444$: TST G.TISC(R5) ;SECONDS OK ? BPL 1$F DEC G.TIMI(R5)# ADD #60.,G.TISC(R5)1$: TST G.TIMI(R5) BPL 2$F DEC G.TIHR(R5)  ADD #60.,G.TIMI(R5)2$: TST G.TIHR(R5) BPL 3$, DEC G.TIDA(R5) ADD #24.,G.TIHR(R5)3$: TST G.TIDA(R5) BPL 4$+. ;BORROW FROM MONTHS MORE COMPLICATED CAUSE ;MONTHS HAVE DIFFERENT DAYSR! DEC G.TIMO(R5) ;BORROW ONE MONTH(& MOV #TIMBUF,R0 ;POINT AT CURRENT TIME% MOV G.TIMO(R0),R0 ;GET CURRENT MONTH 5 DEC R0 ;GET NUMB OF PREV MONTH, (MONTH TABLE STARTSH ;WITH DEC AT BYTE OFFSET 0) 5 MOVB MONTAB(R0),R0 ;GET NUMBER OF DAYS IN PREV MONTH ADD R0,G.TIDA(R5) ;ADD TO DAYSC'4$: MOV G.TIMO(R5),R1 ;GET TOTAL MONTHSS6 MUL #31.,R1 ;FOR MULT MONTHS, JUST MAKE THEM 31 DAYS5 ADD R1,G.TIDA(R5) ;NOW HAVE DAYS, MONTHS, MINS, SECSM( MOV #TIMTIM,R0 ;POINT TO MESSAGE BUFFER MOV G.TIDA(R5),R1 ;MONTHS IN R1 CMP R1,#100. ;3 DIGITSM BGE 551$ ;YESI MOVB #' ,(R0)+ ;NO, MAKE NEAT CMP R1,#10. ;OR 2O BGE 551$ ;YESE MOVB #' ,(R0)+ ;NO, MAKE NEAT551$: CLR R2 ;SUP LEADING 0'S JSR PC,$CBDMG ;CONVERT DAYS MOV #3,R3 ;COUNT HRS,MINS,SECO< MOV #DIFBUF+G.TIHR,R4 ;POINT AT CORRECT AREA OF TIME BUFFER(552$: MOV (R4)+,R1 ;GET HOUR, MIN OR SEC MOVB #':,(R0)+ ;BE NEAT CMP R1,#10. ;ONLY ONE DIGIT BGE 553$M MOVB #'0,00ǃ~*(R0)+ ;IF SO, BE NEATR553$: JSR PC,$CBDMG ;CONVERT SOB R3,552$ ;FOR 3 NUMBERS) MOV #TIMCON,BYEDPB+Q.IOPL ;SET TO DO QIOI MOV #TIMLEN,BYEDPB+Q.IOPL+2 DIR$ #BYEDPB. .PAGE .SBTTL DO FINAL GOODBYE LINER MOVB TIMBUF+6,R0 ;GET TIME  CMP R0,#18. ;PAST 18:00 ?, BLT 111$ ;NO* MOV #BYEMS1,BYEDPB+Q.IOPL ;CHANGE MESSAGE MOV #BYELN1,BYEDPB+Q.IOPL+2 BR 333$111$: CMP R0,#12. ;PAST NOON ?, BLT 222$R MOV #BYEMS2,BYEDPB+Q.IOPL MOV #BYELN2,BYEDPB+Q.IOPL+2 BR 333$222$: MOV #BYEMS3,BYEDPB+Q.IOPLI MOV #BYELN3,BYEDPB+Q.IOPL+2 333$: DIR$ #BYEDPB ;SAY GOODBYE .PAGE/ .SBTTL WRITE START STOP TIMES TO USER LOG FILEM MOV #OUTBUF,R0 ;POINT AT BUFFER! MOV (SP),R5 ;GET LOGGED ON TIMEG( TST (R5) ;CHECK TO SEE IF SOME STRANGE BNE 6$ ;SEQUENCE+ JMP FINISH ;OF EVENTS TRIED TO LOG US OUTP" ;WITH ZEROED BUFFER, AND IF SO& ;DON'T CLOBBER LOG FILE WITH BOGUS ;RECORDT-6$: CLR TIMFLA ;SHOW WRITING TIME FIRST TIMEL#WTTIM: MOV G.TIMO(R5),R1 ;GET MONTH3 CMP R1,#10. ;LESS THAN 10Q BGE 123$V MOVB #'0,(R0)+ ;FILL IN DIGIT'123$: CLR R2 ;SHOW SUPRESS LEADING 0'ST JSR PC,$CBDMG ;CONVERT MONTHR MOVB #'/,(R0)+ ;OLD STYLE DATET MOV G.TIDA(R5),R1 ;GET DAYT CMP R1,#10. BGE 124$5 MOVB #'0,(R0)+I 124$: JSR PC,$CBDMG ;CONVERT DAY MOVB #'/,(R0)+F7 MOV G.TIYR(R5),R1 ;YEAR WILL BE 2 DIGITS FOR SOME TIMED JSR PC,$CBDMG ;CONVERT YEAR MOVB #' ,(R0)+ MOV #3,R34 ADD #G.TIHR,R5 ;BUMP R5 TO YEAR WORD IN TIME BUFFER(125$: MOV (R5)+,R1 ;GET HOUR, MIN OR SEC CMP R1,#10. BGE 126$E MOVB #'0,(R0)+,,126$: JSR PC,$CBDMG ;CONVERT HOUR,MIN OR SEC MOVB #':,(R0)+ SOB R3,125$ ;DO 3 TIMEST DEC R0 ;BACK UP OVER LAST ':'T MOVB #' ,(R0)+5 MOVB #' ,(R0)+C$ TST TIMFLA ;DID WE DO THIS TWICE ?, BNE WTOVR ;IF SO, THEN OUTPUT CONNECT TIME, INC TIMFLA ;IF NO, SHOW FLAG FOR NEXT TIME, MOV #TIMBUF,R5 ;POINT AT LOGOUT TIME BUFFER" JMP WTTIM ;AND WRITE SECOND TIME .PAGE+ .SBTTL WRITE CONNECT TIME TO USER LOG FILE9WTOVR: MOV #TIMTIM,R1 ;POINT TO CONNECT TIME ASCII STRINGE MOV #12.,R3)127$: MOVB (R1)+,(R0)+ ;XFER CONNECT TIMEU SOB R3,127$ ;DO 12 CHARACTERSS MOVB #40,(R0)+ ;PUT IN SPACER MOVB #'T,(R0)+ ;NOW A 'T' MOVB #'T,(R0)+ ;AND ANOTHER ONE! MOV .CRTSK,R5 ;OUR ATL ADD -> R5E& MOV A.TI(R5),R5 ;NOW OUR TI PUD -> R5 MOVB U.UN(R5),R3 ;UNIT # -> R3O CLR R2 ;SET UP FOR DIVIDEI DIV #10,R2 ;QUOT. -> R2M ;REM. -> R3" ADD #60,R2 ;MAKE 1ST DIGIT ASCII ADD #60,R3 ;ALSO 2ND DIGIT" MOVB R2,(R0)+ ;PUT AWAY 1ST DIGIT MOVB R3,(R0)+ ;AND SECOND DIGIT' MOVB #40,(R0)+ ;AND TRAILING SEPARATOR+2 SUB #OUTBUF,R0 ;SUB START OF BUFFER TO GET LENGTH MOV R0,-(SP) ;SAVE FOR NOWP$ ;FILL IN FILE NAME IN NAME BLOCK MOV USEBUF,NAMBLK+N.FNAME MOV USEBUF+2,NAMBLK+N.FNAM+2> MOV USEBUF+4,NAMBLK+N.FNAM+4  MOV #FDB1,R0 ;R0 CONTAINS FDB' MOV #NAMBLK,R1 ;R1 CONTAINS NAME BLOCKD2 MOV #UICDSD,R2 ;R2 CONTAINS UIC STRING DESCRIPTOR) JSR PC,.GTDIR ;FILL IN UIC IN NAME BLOCKR" OPEN$A #FDB1 ;APPEND TO LOG FILE( MOV (SP)+,R5 ;RESTORE LINE LENGTH TO R5. PUT$ #FDB1,#OUTBUF,F.RSIZ(R0) ;WRITE THE LINE CLOSE$ #FDB1 ;CLOSE THE FILE; /; FINALLY CLEAR BUFFER AREA AS FLAG WE'RE DONEP,FINISH: MOV (SP)+,R0 ;RESTORE BUFFER POINTER MOV #0,R1 MOV #10.,R2 ;CLEAR 10 WORDSNLP: MOV R1,(R0)+ SOB R2,LP EXIT$S ;AND EXIT1& RTS PC ;IN CASE EXIT DIR FAILS ????? .END STARTME BLOCKD2 MOV #UICDSD,R2 ;R2 CONTAINS UIC STRING DESCRIPTOR) JSR PC,.GTDIR ;FILL IN UIC IN NAME BLOCKR" OPEN$A #FDB1 ;APPEND TO LOG FILE( MOV (SP)+,R5 ;RESTORE LINE LENGTH TO R5. PUT$ #FDB*sPL @@ @8@*<&@<&p@'@' q@l2_M@*l2=@2m@ 3r@e60@u68@*:2@t<@t @w&q@ԃ`@*|L@@@p@%@W@*:@[(}@`@@p@*}@,z@hp!@}@sd@(y ( )R*R t' =USERw&q:2t$'x : LOGGED OFF AT S*GOOD EVENINGGOOD AFT00ȃ̃x|OxssERNOONGOOD MORNING*CONNECT TIME WAS: DDD:HH:MM:SS q dƅ<SD "_MSD t<@ <&p @ <<Pt <&NNP PLLP^^bb  [1,100]*PP• B~f P ( @  E`@` %EE*sd 3r e60`u68`sd @8$E5Rp(|L% ԃ` p@Rp* AW Е0 Е:  :*,EEWq@a $2m  @8Wl2="*R^3& ^l2="&,z*x# @p  ' qhp!&}* hy ^ X ^&`y[(}[(}$[(}(^*eJ~AWp l2_M * u`  e<  e<*  e    *65`AWpu`AW dЕ W *\ Е  Е:W Е0 :* ~^X : ^(*   $* ^P w7 AW   ^P*Е0 Е/AW Е0 Е/A :":* Е eAW Е0 Е::$:*@~ Е Е  w $*fP~Е ЕTЕTEC re0 @8W*e0АЕ P&n jfP(< <# <(< ,z<'hp!$<*P0 <  P~P}<` 3 ^P w7 AW   ^P*Е0 Е/AW Е0 Е/A :|m`::(U2m Uz[qU@@ }mdDRSYSYSYSYTITI~ Š P@@````vSYSYSYSYTITI 131 )0 t' =USER : LOGGED OFF AT GOOD EVENINGGOOD AFTERNOONGOOD MORNINGCONNECT TIME WAS: DDD:HH:MM:SS00Ѓ׃~*dƅ<SD"_MSD@@PPP[1,100]PP• B~f E[@[ rؖ%EE*E*5Rp AW Е0 Е:  `LEEWq@a  ^3& # :@p ; l:hy ^ X ^eJ~AWp u`  e<  e<  e   5`AWpu`AW dЕ W Е  Е:W Е0 ~^X    ^P w7 AW Е0 Е/AW Е0 Е/A Е eAW Е0 Е:~ Е Е  w P~Е ЕTЕTEC re0e0АЕ P&n jf< @<F# :8<P0 ~@< $8 P~3  *  + 23E8 Ew jP   Е-   0@ rW e`fÊ    E  & &  r(f  e ee e  T w +e>w+e>w+;$; [ 1 1 , 1 3 ] B Y E T K B . C M D %; BUILD COMMAND FILE FOR RSBYE ...BYE;,O[11,1]BYE/PR/MU/-CP/-FP,[111,13]BYE/-SP/CR=[11,13]LIB13/LB:BYE,[1,1]EXEC.STB/SS/=PAR=GENC TASK=...BYE2STACK=32 UIC=[2,2]2PRI=221KASG=TI:6/PRI =200LIBR =SYSRES:RO/00؃كڃx|Oxss;#; [ 1 1 , 1 3 ] C M P B L D . C M D;; BUILD FILE COMPARE TASK;8[11,1]CMP/-FP/MU,[111,13]CMP/-SP/CR=[11,13]CMPLIB/LB:CMP&[11,13]CMPLIB/LB:MAIN:RTNS:DATA:SAVREG/ TASK =...CMPLIBR =SYSRES:ROUNITS =5 ASG =TI:1:2;8; THE TASK SHOULD BE EXTENDED TO INCREASE THE AMOUNT OF C; SPACE AVAILABLE TO HOLD LINES AWAITING MATCHING. THE SAME EFFECTA; CAN BE ACHIEVED BY USING THE '/INCREASE' SWITCH AT INSTALL TIME; EXTTSK =10000; GBLDEF=HT:11 GBLDEF=FF:14/;; COMMAND FILE TO BUILD CMPLIB;+[11,13]CMPLIB/CR=[11,13]CMP,CMPMAIN,CMPRTNS%[11,13]CMPLIB=[11,13]CMPDATA,CMPSAVRG<0U; #knv!:SYa#$S$"$;$sw&$:-wH-xH3U<3<}34Ҟ=X |'` |' |'% |' |'n |'p& |'0M |'Q |'x |'Oy |'c} ~:Q L! Lf9 Lf NQ fO hO lOp! lOY nOK sOP< tO lz {\q#( {#( {#( {#( {@#( {#( {#(!{ N #{Z #{ %{^ &{` &{Z ,{Y -{` .{" 0{` 3{P< 4{@` ""ꨤ` : :E:di%i & ix<} k ©H" ©2 vL*,vL6?& 6@& V} } Q ɪp:(:R!R:U~vLX  ȫv ΫOq#("&     00׃~*<@ qQWsvvOq#(UOzODaHi &@@@#w@s@@!H k@<&Kq@H:Hz|'%@`@-xHH=X@|'c}@ɪp:@-wHH#$SH:@}s@,vL@6?&@6@&@3H.{"@zNQ@'@SH# z@; @#""@#{@@$swH<&9@@Q@,{Y@|'0M@h'@z|'@:@|'`@$"HU~@|'n@|'p&@4ҞH$;H }@?S@"&@&$:H|'x@=@00كڃx|Oxssz@=@YH(:@|'Oy@!{ N@@~:Q@nHȫv@©H"@|'Q@<}@Ա(@©2@ @z|'@<&D@vHy@3U|'Q@kF|'xHkJoN|'c}-LVBhSP{6k kh|'OykQ":( &<&9<&Kq<&D 7 : CMP> :  0 differences found No differences found/ @RB  Z# T&&&7 7 |ȫv #w <}"&"&B}s"'(h'.# z0<}4NQ6}&:~:Q<6?&&@=XB6@&&FȫvJNN B~0 0 0  7 f& & Af?A`e  P!t0 b tX,{Y#{.{" !{ N$X*©H".©2Dsb:hQl|'0M|'n|' nk r<@tz?S`;w f hfp '    ` BJ  ʕ=  ` "<@.=6<@><@D<@H<@L<@d<@h<@n6?&r(:x6@&|(:Fwj mХ=ȥ[&Х,  7R~1  f& C   T <@<@.26:PԱ(T\; `dvz<  ȥ]  ȕ 2 $ *<@ 2<@8@=Zg@)CMP -- Illegal switch or switch value @n% wl +eB eB&wB$& # b"& Zg@  <@(<@2}>"&F}&N}R}B^}sd'jh'Zg@&&&CMP -- Open failure on output file @d"d&" w $"& Zg@& QZg@HHCMP -- Illegal /LI value @ZH w  5E5 E}"& Zg@H <&Kq&<&D.<&Kq<&D :<@>U~B|'DkJ|'nLkP|'xRkX|'|'n|'0M|'Oy H5E7 E 8 5 |k|'%|'c}|'Q  k|'`|'p& ki &ɪp:i &$# z&<}*"&.}84}8|'x:k D<@z2 &     ɥ= f  8 5U~ <@: <@& ,X0,vL48,vL <<@H L<@X<@\<@bU~h#""j<}n}x|'Oy&    wz4k :`6?&`6@& `Zg@``CMP -- Command syntax error @,` w w."& Zg@` "&"`&<}*ydUϳzqQWϳD@i &@k@,vL@E:d@fO @0{`@#{@Q@-{` @V}@U~@z|'n@:@4{@`@ix@ L!@vL@|'x@!{ N@@nOK@lOY@ΫOq@R:@|'@X@B#{Z@ @ ɪp:h<@i%hZg@2 Zg@6************************************************** <@ @`w 7   A 5f  |ΫOq <@XvLixvL"ix&X*#{.2#{6E:d<|'>kHR:N L!PfO V L!XfO h\0D qBCr r & rŝ~<@X #{0{`#{ZvL#{ 0{`$!{ N*4{@`.#{2E:d80{`BvLT#{00׃~*V-{` Z-{` ^<@bQp &  r3\ 5 2  2 w|XvLvLE:d <@$-{` (#{,!{ N0-{` 4#{$9!H%{^L.{"RnOKX4{@`^,{Yb,{YdlOYh.{"l {^p5 5 W 5  Dwe~)p)p|'`k|'p&k$p&* {0<@4|'%|'Q|'c} 6k <<@D<@ J<@R<@Z<@` L hOZg@2CMP -- Too many differences for available core @\. w3auqss  55;z"& Zg@ )p)p "" {",{Y&,{Y(lOY,sOP<0.{"6nOK<4{@`@.{"F<@LlOp!R|'%TkH, 55 ve ~W, ^<@ i%|'`k Lf9fO  nOK$ {(tO ,<@ 8<@B&{`D6?&Zg@.&.CMP -- Error reading input file #1 @pp." w2"& Zg@. )p)p ""Zg@P&PCMP -- Error reading input file #2 @#P" w-@kD {J:\ {blOp!ftO lV}xV}$ B` ʠ   & cc ԕ5 Эȋ @ A! <f w B6|'x8k> {BlOp!HLV}`V}jV}pV}zΫOq~©2C  3w 1  ee~w   w 5;v4{@` {sOP<nOK LffO "&4{@`.ΫOq2lOp!4lOp!' q@)Dh'R6?&Zg@(CMP -- Open failure on input file #1 @$ w2"& Zg@ )p)p ""Zg@(CMP -- Open failure on input file #2 @D$ w fpp Z"& Zg@ )p)p ""})P (}.)p4)p8 Zg@$CMP -- Error writing output file @TT w*"& Zg@ )p)p ""PUO z<@O D<&@p@|'%H&{`H|'c}H@ LfH%{^Hk@&{ZH.{"H fO H0{`Hz#{H$sw@,{YH-{` H |'0MHtO HlOp!H<&e@|'H|'`H|'nH|'p&H4{@`H Lf9H L!HzhOH|'xH3{P >k$sw & <&e" "k$sw  kQSY SY1$$26t6$($$ 6 $6NN  UOYzvOqOYD {H {H {H {\qH {H {@H {H @  ΫOqh<@Zg@  @$&f&f  kQSY SY1$$26t6$($$ 6 $6NN +; TASK BUILD FOR THE CONTINUE MCR FUNCTION.C[11,1]CON/PR/-CP/-FP,[111,13]CON/-SP/CR=[11,13]LIB13/LB:CONTN:ERCON[11,13]INSLIB/LB:SRSTD$[11,11]TKB/LB:SCVTR,[1,1]EXEC.STB/SS/ TASK=...CONPRI=150LIBR=SYSRES:RO STACK=128ASG=TI:2/.;SUBROUTINE TO CONVERT RSX DATE TO DAY OF WEEK;M1;ENTER WITH R1 POINTING TO STANDARD GETTIM BUFFER ;T;RETURN WITH DAY OF WEEK IN R1;(DAYOFW:: MOV R5,-(SP) ;SAVE USED REG'S MOV R4,-(SP)E MOV R3,-(SP)Y MOV R2,-(SP) & BIT #3,(R1) ;IS YEAR DIVISIBLE BY 4?! BNE NOTLPY ;NO ITS NOT LEAPYEAR.0 INCB DAYSMO+2 ;INCREMENT # OF DAYS IN FEB TO 29/NOTLPY: CLR R5 ;CLEAR FOR DAY OF YEAR ADDITIONW' MOV 2(R1),R2 ;# OF CURRENT MONTH IN R2;" MOV #DAYSMO,R3 ;USE R3 AS POINTER*ADDAMO: MOVB (R3)+,R4 ;GET # OF DAYS IN R4 ADD R4,R5 ;ADD TO DATE' SOB R2,ADDAMO ;IF NOT DONE, DO ANOTHERR ADD 4(R1),R5 ;NOW ADD DAY TO R55 MOVB #28.,DAYSMO+2 ;SET FEB BACK TO 28 FOR NEXT TIMES& ;NOW HAVE JULIAN DAY OF YEAR IN R5 MOV (R1),R3 ;YEAR IN R3R$ MUL #365.,R3 ;COMPUTE 365.25 * YEAR MOV R3,R4 ;HAVE 365. MOV (R1),R3 ASH #-2,R3 ;.25 TIMES YEAR% ADD R3,R4 ;HAVE 365.25 * YEAR IN R4Y- ADD R4,R5 ;NOW HAVE 365.25*YEAR + DAY IN R5  CLR R4 ;FOR DIVIDE BIT #3,(R1) ;LEAP YEAR ? BNE 1$ ;BR IF NOT 00* DEC R5 ;PATCH FOR LEAP YEAR51$: DIV #7,R4 ;DIVIDE MODULO 7F ;HAVE DAY OF WEEK IN R54 MOV R5,R1 ;RETURN IT IN R1 MOV (SP)+,R2+ MOV (SP)+,R3 MOV (SP)+,R4T MOV (SP)+,R5H RTS PC ;AND RETURN;;TABLE (BYTE OF # OF DAYS TO ADD FOR EACH (COMPLETED) MONTH5; <DAYSMO: .BYTE 0.,31.,28.,31.,30.,31.,30.,31.,31.,30.,31.,30. .END YEAR% ADD R3,R4 ;HAVE 365.25 * YEAR IN R4Y- ADD R4,R5 ;NOW HAVE 365.25*YEAR + DAY IN R5  CLR R4 ;FOR DIVIDE BIT #3,(R1) ;LEAP YEAR ? BNE 1$ ;BR IF NOT * :L(dA^h *f&5H BXĔa~ElX*&.CpmCt`a 5 sLA RTS PC ;AND RETURN;;TABLE (BYTE OF # OF DAYS TO ADD FOR EACH (COMPLETED) MONTH5; <DAYSMO: .BYTE 0.,31.,28.,31.,30.,31.,30.,31.,31.,30.,31.,30. .END YEAR% ADD R3,R4 ;HAVE 365.25 * YEAR IN R4Y- ADD R4,R5 ;NOW HAVE 365.25*YEAR + DAY IN R5  CLR R4 ;FOR DIVIDE BIT #3,(R1) ;LEAP YEAR ? BNE 1$ ;BR IF NOT ;#; [ 1 1 , 1 3 ] D C L T K B . C M D;/; TASK BUILD THE TERMINAL CONTROL TASK '...DCL';M[11,1]DCL/-SE/-CP/-FP/PR,[111,13]DCL/-SP=[11,13]LIB13/LB:DCL,[1,1]EXEC.STB/SS/UNITS=0STACK=32 TASK=...DCLPRI=220/;%; [ 1 1 , 1 3 ] D E M O B L D . C M D;; BUILD FILE FOR THE DEMO TASK;"DEZ/MU/PR/-FP/-CP,DEMO/CR/-SP=DEMO DAYOFWEEKLB:[1,1]EXEC.STB/SS/;; OUTPUT IS ON LUN 1 ;ASG=TI:1;STACK=32;2; PRIORITY SHOULD BE HIGH FOR GOOD RESPONSE OR LOW7; FOR SMALLER SYSTEM LOAD. CHOICE IS LEFT TO THE USER.;PRI=150;9; THE TASK IS AN MCR TYPE TASK SO DEFINE ITS TASK NAME AS; SUCH.; TASK=...DEM;A; THE TASK EXTENSION DETERMINES THE MAXIMUM NUMBER OF TASKS WHICHC; CAN BE DISPLAYED AT ONCE. EACH TASK (FIXED, ACTIVE OR SGA) TAKESF>; FIVE WORDS. THE DEFAULT VALUE ALLOWS FOR 64. TASKS. IF THE7; EXTENSION IS LESS THAN 32 DEMO WILL CRASH THE SYSTEM.; EXTTSK=320;;CD; NORMALLY, EACH COLUMN OF THE DISPLAY REPRESENTS 1K OF MEMORY. THEF; LOCATION 'GRAIN' REPRESENTS THE NUMBER OF 32-WORD BLOCKS PER COLUMN,I; AND MAY BE CHANGED TO DISPLAY MORE MEMORY LESS PRECISELY OR VICE VERSA..;EGBLPAT=DEMO:GRAIN:120N;N7;FOLLOWING NO LONGER NEEDED, DEMO DOES IT INTELLIGENTLYD@;LOCATION 'FIRTTY' SHOULD CONTAIN THE ADDRESS OF THE PUD FOR TT1;GBLPAT=DEMO:FIRTTY:146744K;LOCATION 'NUMTTY' SHOULD CONTAIN THE (OCTAL) NUMBER OF TTYS (NOT INCL TT0) ;GBLPAT=DEMO:NUMTTY:34;B; LOCATION 'BEGADR' REPRESENTS THE STARTING ADDRESS IN OCTAL PAGESA; (OF 100 BYTES) TO DISPLAY. IT DEFAULTS TO 0 UNLESS DEFINED HEREP;CGBLPAT=DEMO:BEGADR:4000G;TH; LOCATION 'INTRVL' REPRESENTS THE INTERVAL IN SECONDS BETWEEN DISPLAYS.&; IT DEFAULTS TO 1 UNLESS DEFINED HERE;MGBLPAT=DEMO:INTRVL:2;/CATION 'FIRTTY' SHOULD CONTAIN THE ADDRESS OF THE PUD FOR TT1;GBLPAT=DEMO:FIRTTY:146744K;LOCATION 'NUMTTY' SHOULD CONTAIN THE (OCTAL) NUMBER OF TTYS (NOT INCL TT0) ;GBLPAT=DEMO:NUMTTY:34;B; LOCATION 'BEGADR' REPRESENTS THE STARTING ADDRESS IN OCTAL PAGESA; (OF 100 BYTES) TO DISPLAY. IT DEFAULTS TO 0 UNLESS DEFINED HEREP;CGBLPAT=DEMO:BEGADR:4000G;TH; LOCATION 'INTRVL' REPRESENTS THE INTERVAL IN SECONDS BETWEEN DISPLAYS.&; IT DEFAULTS TO 1 UNLESS DEFINED HERE;MGBLPAT=DEMO:INTR .TITLE DEMO .IDENT /12/ ;A; COPYRIGHT 1975, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.;A; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE@; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION@; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT1; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.;@; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT@; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL; EQUIPMENT CO00x|OxssRPORATION.;O@; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY?; OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.C;E ; VERSION 01; ; D. N. CUTLER 7/JUN-75C;U ; MODIFIED BYC;B; BRUCE BOSWELL 19 AUG 75 ;D;S; MODIFICATIONS:;L; NO. DATE PROGRAMMER PURPOSE; --- ---- ---------- -------; 4; 001 23-FEB-76 R. NEWLAND CONDITIONLISE IAS VERSION,; 002 18-AUG-76 JOHN HARPER ADD VT52 SUPPORT*; 003 18-AUG-76 JOHN HARPER EXIT ON CTRL-C,; 004 18-AUG-76 JOHN HARPER SPEED UP DISPLAY+; 005 18-AUG-76 JOHN HARPER ADD ACTIVE TASKR,; 006 19-AUG-76 JOHN HARPER ADD VT50 SUPPORT'; 007 19-AUG-76 JOHN HARPER CLEANING UPE<; 008 06-SEP-76 JOHN HARPER REVERSE AST DPB, TERMINATE ON ^Z9; 009 16-SEP-76 JOHN HARPER CANCEL MARKTIMES ON INPUT AST>; 010 22-SEP-76 JOHN HARPER CHECK FOR START OF TASK OFF SCREEN:; 011 22-SEP-76 JOHN HARPER ADD 'COMMANDS' WHILE UNDER WAY0; 012 23-SEP-76 JOHN HARPER ADD B AND G COMMANDS*; 013 17-OCT-76 JOHN HARPER FIX UP FOR IAS4; 014 10-FEB-77 JOHN HARPER ADD 'I' AND 'E' COMMANDS4; 015 10-FEB-77 JOHN HARPER DIFFERENT DISPLAY FORMAT8; 016 15-APR-77 JOHN HARPER USE EXTTSK, SOME CLEANING UPD; 017 13-JUN-77 JOHN HARPER FIX BUGS WITH STRANGE DISPLAY PARAMETERS3; 018 03-SEP-77 RICHARD NEWLAND CHANGES FOR IAS V03 3; 019 01-JUN-78 F.BORGER ADAPT TO SOROCS & BEEHIVEST@; 025 09-JUL-80 JEFF GOODENOUGH RESET VT100 IN ANSI MODE TO VT52"; ARNOLD HAY AND RESTORE ON EXIT7; 033 08-AUB-83 F. BORGER KEEP TRACK OF MAX MEMORY USEDP;R.PAGE ;; RSX11D/IAS DEMO PROGRAM TO SHOW TASK SWAPPING AND LOADINGF;7; STARTUP PROCEDURE:;I; MCR>DEM [ADDR] ;A'; WHERE ADDR IS THE LOWEST ADDRESS TON*; DISPLAY. 'ADDR' IS SPECIFIED IN OCTAL*; BLOCKS. IF NONE IS SPECIFIED, DISPLAY; WILL START AT LOCATION 0. ; ; ; OPTIONS:;7,; 128K DISPLAY WINDOW STARTING WITH ADDRESS$; SPECIFIED AT STARTUP (SEE ABOVE).;A.; VARIABLE TIME FOR SNAPSHOT. VALUE FOR MARK#; TIME IS SPECIFIED AT TASK BUILD.T;K9; SNAPSHOT CAN BE EVERY 'N' SECONDS OR, WITH CONDITIONAL ,; ASSEMBLY, CAN BE EVERY SIGNIFICANT EVENT..; CONDITIONAL ASSEMBLY PARAMETER IS 'FASTER'.;R.; IAS VERSION USES 'C' FORM OF MACROS INSTEAD; OF 'S' FORM.E;N;T5; OUTPUT IS ON LUN 1. THE DEVICE ASSIGNED TO THIS LUNL; MUST BE A VT05.0;;;; MACRO LIBRARY CALLS ;P- .MCALL DIR$,GTIM$S,MRKT$,WSIG$C,QIOW$,ASTX$C / .MCALL WTSE$S,MRKT$S,QIOW$C,GMCR$,EXIT$C,GLUN$A# .MCALL EXIT$S,GTSK$S, .INH0, .ENB0E .MCALL MRKT$C, WTSE$C+ .MCALL SETF$S,ASTX$S,QIO$,CMKT$S ;++009W .MCALL MRKT$,WTSE$S ;++014;  .MCALL TTSYM$; TTSYM$ DEF$G TTSYM$A; EQUATED SYMBOLSS;ADSW=0 ;DSW IS LOCATION 0 -FASTER=0 ;IF NON-ZERO - USE WSIG$ NOT WTSE$NOFFSET=31. ;CURSOR CAD OFFSETE'MRLX=67. ;MRL X COORD IN DISPLAY FILET-MRLY=5. ;++002 MRL Y COORD IN DISPLAY FILE&MAXMRL=16. ;MAX MRL TASKS TO DISPLAY)MAXM50=8. ;++007 MAX MRL TASKS FOR VT50E!MRLBUF=8.*20. ;MENU BUFFER SIZE, ; +++018 1 LINE DELETEDC%SPLIT=11. ;++002 SCREEN SPLIT COORDKTASKY=4. ;++002 TASK Y COORD%DISBUF=64.*14. ;DISPLAY BUFFER SIZE CD=16 ;CURSOR DISPLAYCR=15 ;CARRIAGE RETURN=EL=36 ;ERASE TO END OF LINE ES=37 ;ERASE TO END OF SCREENLF=12 ;LINE FEED;HO=35 ;HOME CURSORXNULL=0 ;NULL CHAR!ED=10 ;EXPANSION DIRECTION BITR,BUFSIZ=64.*8. ;++002 SIZE OF OUTPUT BUFFERSPA=40 ;++004 CODE FOR SPACE "BS=10 ;++004 CODE FOR BACKSPACE;8;0; ;++002?; MACRO TO SET UP ITEM WITH CURSOR POSITION FOR USE BY 'OUTITM'E;--002 R .MACRO ITEM X,Y,STR .ASCIZ \STR\6 .ENDM ITEMP ;++015C; MACRO TO SET UP ITEM TYPE TO BE USED IN FORMATTING DISPLAY. EACH;E; ITEM TYPE HAS A NAME OF THE FORM 'DI.XXX' AND THREE CHRACTERS BEINGFB; RESPECTIVELY THE LEFT BRACKET, LINE AND RIGHT BRACKET CHARACTER.;- E .MACRO DI NAME,STR. DI.'NAME:2 .IRPC X,^\STR\U .ASCIZ /X/  .ENDR .ENDM DIP ;+; NOW DEFINE THE ITEMS;- E DI TSK,^/<->/ ; ACTIVE TASK$ DI FXD,^/[-]/ ; FIXED INACTIVE TASK DI PUR,^/<=>/ ; PURE AREA DI SGA,^/[=]/ ;00* SGA( DI FTK,^/<+>/ ; NON-CHECKPOINTABLE TASK + .EVEN; ; LOCAL DATA;P&FIRTTY::.WORD 0 ;PUD ADDRESS FOR TT1:0NUMTTY::.WORD 0 ;NUMBER OF TTY'S (NOT INCL TT0)2VT05FG::.WORD 0 ;++002 FLAG SET IF OUTPUT TO VT052VT50FG::.WORD 0 ;++006 FLAG SET IF OUTPUT TO VT50,VT52FG::.WORD 0 ;F. B. FLAG FOR A TRUE VT524V100FG::.WORD 0 ;++025 FLAG FOR VT100 RESET TO VT52DISCO: .WORD 0-EXFLG: .WORD 0 ;++003 CTRL-C AST SEEN - EXIT/4UIFLG: .WORD 0 ;++008 SET ON UNSOLICITED INPUT SEEN=LOGFLG: .WORD 0 ;FB FLAG THAT LOGGED ON LINE MUST BE RE-SENTK+LASTX: .WORD 0 ;++004 X COORD OF LAST CHAR:+LASTY: .WORD 0 ;++004 Y COORD OF LAST CHAR 5GRAIN:: .WORD 24. ;++006 SIZE IN BYTES OF ONE COLUMN+:SNDLST: .WORD 0 ;FB SHOWS SNDITM OR SNDNUL SENT LAST TIME<SNDFLG: .BYTE 0 ;++016 FLAG SET IF SOME TASKS NOT DISPLAYED6TSFLG: .BYTE 0 ;++016 FLAG SET IF RUNNING AS T/S TASK8COLS: .WORD 128. ;++006 # COLS IN DISPLAY (64 FOR VT50)'IMGSZE: .WORD DISBUF ;++010 IMAGE SIZE AMRLTOP: .WORD MRLLST+ ;++007 TOP OF LEGAL SPACE FOR MRLN ;++007 (ALTERED FOR VT50)D3CURTSK: .RAD50 /TSKNAM/ ;++005 AREA FOR NAME AND...0 .ASCII /TT/ ;++005 TI AND.../ .ASCII /77/ ;++005 UNIT NUMBER OF ACTIVE TASK;MAXFLG: .WORD 1 ;++033FRB FLAG THAT MAX MEMORY HAS CHANGEDN8MAXVAL: .WORD 0 ;++033FRB MAXIMUM MEMORY VALUE (BLOCKS);S; DISPLAY OUTPUT MESSAGESE;F .NLIST BEX 8CLR50: .ASCIZ /E/ ;++019 HOME AND CLEAR FOR BEEHIVECCLR52: .ASCIZ /*//= / ;++002 HOME AND CLEAR FOR SOROC<2 ;ADDED SPACES DUE TO SCOPE ERROR AT LOW SPEED>CLR52T: .ASCIZ /H//J/ ; F.B. HOME AND CLEAR FOR VT521MODE52: .ASCIZ /[?2/<154> ;++025 SET TO VT52S;MDE100: .ASCIZ //[1;1/<150> ;++025 SET TO VT100 2LUNMSG: .ASCII <7>/OUTPUT LUN ERROR - CHECK LUN 1/LUNSIZ=.-LUNMSGF.TRMMSG: .ASCII /INVALID TERMINAL TYPE/ ;++008TRMSIZ=.-TRMMSGNODLN1: ITEM 2,26.,SNODLN2: ITEM 2,39.,NODAD1: ITEM 2,32.,< > NODAD2: ITEM 2,48.,< >HVCORLN1: ITEM 11.,1.,<****************************************************************>VCORLN2: ITEM 12.,1.,<+-------+-------+-------+-------+-------+-------+-------+------->VCORLN3: ITEM 13.,1.,<****************************************************************>SLOGLN1: ITEM 22.,1., SLOGLN2: ITEM 23.,1.,2SLOGLN3: ITEM 24.,10.,< > AMAXMEM: ITEM 2,54., ;++033FRB MAX MEMORY ITEM*;.IF DF IAS ; +++001M-HDRMG1: ITEM 1,60., ;++002 +++018-;.IFF-+;HDRMG1: ITEM 1,60., ;++015*;.ENDC0HDRMG2: ITEM 1,32., ;++002)TSKLN1: ITEM 2,1, ;++005 *TSKITM: ITEM 2,13., ;++005:RDITM: ITEM 3,1,< > ;++008 RDITM2: ITEM 3,1,< > ;++008*NTKITM: ITEM 2,13., ;++005"MRLMG1: ITEM 3,67., ;++002MRLMG2: .ASCIZ /XXXXXX/. .EVEN" ;++015 SEVERAL LINES DELETED1TIMLOC: ITEM 1,1, =SNDITM: ITEM 3,22.,<*** SOME TASKS NOT DISPLAYED ***> ;++016+=SNDNUL: ITEM 3,22.,< > ;++016 .EVEN9DAYTAG: .ASCII /SUNDAY MONDAY TUESDAY WEDNESDAY /N( .ASCII /THURSDAY FRIDAY SATURDAY / .EVEN.BEGADR:: .WORD 2400 ;BEGINNING SCREEN ADDRESS'ENDADR: .WORD 0 ;ENDING SCREEN ADDRESST.NODES: .WORD 0 ;NUMBER OF NODES IN THE SYSTEM!HOLE: .WORD 0 ;LARGEST HOLE SIZE.=INTRVL:: .WORD 1 ;++014 INTERVAL IN SECONDS BETWEEN DISPLAYSX3EXTENT: .WORD 0 ;++014 AMOUNT OF MEMORY TO DISPLAY  .EVEN;T; DISPLAY OUTPUT BUFFER;N4DSBUF: .BLKB BUFSIZ ;++002 ROOM FOR FOUR FULL LINES;.=; CURRENT AND NEXT IMAGE DISPLAY PROTOTYPES-ADJACENCY ASSUMEDN;. .EVEN-CURIMG=.-1 ;CURRENT IMAGE DISPLAY PROTOTYPE. .BLKB DISBUF ; .EVEN*DISIMG=.-1 ;NEXT IMAGE DISPLAY PROTOTYPE .BLKB DISBUF ;" ;++014 SEVERAL LINES DELETED;E; DISPLAY OUTPUT QIO DPB00x|Oxss;.4DSQIO: QIOW$ IO.WLB!IO.WAL,1,1,,,, ;++002BUFPTR=DSQIO+Q.IOPL+0RBUFCTR=DSQIO+Q.IOPL+2E;Y; GET MCR COMMAND LINE DPB;I GETMCR: GMCR$F;; GET TERMINAL DPB AND IOSB;;0(GETTYP: QIOW$ SF.GSC,1,1,,IOSB,, IOSB: .BLKW 2E S .IF DF,IASE-ATTDPB: QIOW$ IO.ATA,1,1,,,,<,UIAST> ;++008  .IFFN1ATTDPB: QIOW$ IO.ATA,1,1,,,, ;++008N .ENDC"DETDPB: QIOW$ IO.DET,1,1 ;++003 .BINPDPB: QIOW$ IO.RLB!TF.TMO,1,1,,IOSB,, ;++008/014 U*MKTDPB: MRKT$ 2,0,2 ;++014 MARKTIME DPB;,'; TEMPORARY STORAGE FOR TIME PARAMETERS+;TIMBUF: .BLKW 8. ;; >; TEMPORARY STORAGE FOR TASK LIST PARAMETERS-ADJACENCY ASSUMED;B6TSKNAM: .BLKB 6 ;TEMPORARY STORAGE FOR ASCII TASKNAME .WORD 0 ; STOPPER. ; +++018 1 LINE DELETEDA)MRLLST: ;BEGINNING ADDR OF MRL STORAGEB5 .BLKW MAXMRL*2 ;MRL BUFFER SPACE - 2 WORDS PER ENTRYE .WORD 0 ;FLAG WORD .EVEN CURMRL=.-1* .BLKB MRLBUF ;CURRENT MENU DISPLAY PROTO .EVEN DISMRL=.-1( .BLKB MRLBUF ;NEXT IMAGE DISPLAY PROTO B<LIMIT: .LIMIT ;++016 TOP OF TASK, I.E. START OF ATL BUFFERBUFSTT=LIMIT+2 ;++016E R3FXDBUF: .WORD 0 ;++016 END OF FIXED PART OF BUFFERD0BUFEND: .WORD 0 ;++016 ADDRESS OF END OF BUFFER ;+C; COMMAND DECODE TABLE. EACH ENTRY OCCUPIES TWO WORDS, AS FOLLOWS:;;I&; BYTE 00 FIRST CHARACTER OF COMMAND,; BYTE 01 SPARE - MAY BE USED BY PROCESSOR ; WORD 01 ADDRESS OF PROCESSOR;- .( .MACRO COMAND NAME,RTN,SPARE ;++011 .BYTE ''NAME,SPARE. .WORD RTN .ENDM COMANDS Y3CMDTBL: COMAND B,CMDB ;++012 B - SET BASE ADDRESSS8 COMAND C,RESTRT ;++011 C - CLEAR SCREEN AND START OVER1 COMAND E,CMDE ;++014 E - SET EXTENT OF DISPLAYD+ COMAND G,CMDG ;++012 G - SET GRANULARITY , COMAND I,CMDI ;++014 SET DISPLAY INTERVAL COMAND X,EXIT ;++011 X - EXIT .WORD 0 ;++011 TERMINATOR.PAGE;+/; **-LUNERR-ROUTINE TO OUTPUT LUN ERROR MESSAGE0;-LUNERR:F( QIOW$C IO.WVB,5,5,,,, EXIT$S /TRMERR: QIOW$C IO.WVB,5,5,,,,M EXIT$S;+<; **-RDDEMO-RSX11D TASK SWAPPING AND LOADING DISPLAY PROGRAM;--DEMO:: DIR$ #GETTYP ;++002 GET TERMINAL TYPEM) BCS LUNERR ;++002 J IF LUN NOT ASSIGNEDA2 CMPB IOSB,#IE.IFC ;++002 FUNCTION NOT RECOGNISED?( BEQ 2$ ;++002 J IF SO, ASSUME AS BUILT# CMPB IOSB+2,#T.V100 ;++025 VT100 ?. BNE 111$ ;++025 BR IF NOT+ MOV #T.VT52,IOSB+2 ;++025 YES, FAKE US OUT , INC V100FG ;++025 SHOW WE CHANGED TERMINAL0 MOV #MODE52,R3 ;++025 CHANGE SCOPE TO VT52 MODE CALL OUTLN2 ;++025 BUFFER IT" CALL OUTBUF ;++025 AND OUTPUT IT111$: ;++025D CMPB IOSB+2,#T.VT52 ;A VT52 ? BNE 222$ ;NO MOV #1,VT52FG ;YES SHOW ITM&222$: MOV #1,VT05FG ;++002 ASSUME VT05! CMPB IOSB+2,#T.VT05 ;++002 VT05?C BEQ 2$ ;++002 J IF SOQ# CLR VT05FG ;++006 CLEAR VT05 FLAG! MOV #1,VT50FG ;++006 ASSUME VT50.! CMPB IOSB+2,#T.VT50 ;++006 WELL?V+ BEQ 2$ ;++019 ASSUME NO 12 LINE TERMINALSC* CMPB IOSB+2,#T.BEEH ;++019 OR A BEEHIVE ? BEQ 2$ ;++0190' CLR VT50FG ;++006 ELSE CLEAR THE FLAG2+ CMPB IOSB+2,#T.VT52 ;++002 VT52 OR HIGHER?O* BLO TRMERR ;++002 J IF NOT, ILLEGAL TYPE- CMPB IOSB+2,#T.USR1 ;++002,019 USR1 OR LESS?; BHI TRMERR ;++002 J IF NOT BR 2$ ;++006 SKIP VT50 CODEO01$: ASR COLS ;++006 DIVIDE # COLS BY 2 FOR VT50< SUB #*4,MRLTOP ;++007 REDUCE MAX MRL ENTRIES) ASR IMGSZE ;++010 REDUCE MAX IMAGE SIZE '2$: GTSK$S #DSBUF ;++016 GET TASK SIZE 6 MOV DSBUF+G.TSTS,BUFEND ;++016 REMEMBER END OF BUFFER> SUB #10.,BUFEND ;++016 OFFSET BY SIZE OF ONE ATL BUFFER ENTRY. CLRB TSFLG ;++016 ASSUME RUNNING IN REALTIME( MOV .CRTSK,R0 ;++016 GET MY ATL ADDRESS+ BIT #AF.IA,A.TF(R0) ;++016 TS OR REALTIME?B BEQ 25$ ;++016 REALTIME3 INCB TSFLG ;++016 REMEMBER THAT WE'RE TIMESHARINGDB25$: DIR$ #ATTDPB ;++003 ATTACH TO THE TERMINAL AND DECLARE AST'S, MOV .MSIZE,EXTENT ;++014 SET INITIAL EXTENT" MOV .PUDBA,R2 ;START AT FIRST PUD'444$: CMP (R2),#"TT ;FOUND A TERMINAL ?T BNE 666$ ;BR IF NOTR* TST NUMTTY ;IS THIS FIRST TT PUD FOUND ? BNE 555$ ;BR IF NOTU1 MOVB 2(R2),00 *NUMTTY ;ELSE REMEMBER NUMBER OF TTY'SE#555$: CMPB 2(R2),#1 ;IS IT TTY #1 ?A BEQ 777$ ;BR IF IT IS.0666$: ADD #U.SZ,R2 ;BUMP PUD POINTER TO NEXT PUD) CMP R2,.PUDEA ;ARE WE STILL IN THE PUD ?  BLOS 444$ ;BR IF OK:-777$: MOV R2,FIRTTY ;SET ADDRESS OF FIRST TTYD$ CLR R2 ;++012 INIT R1 JUST IN CASE$ DIR$ #GETMCR ;GET THE COMMAND LINE BCS RESTRT ;IF NONE JUST START0 MOV DSW,R5 ;GET CHAR COUNT OF MCR COMMAND LINE$ SUB #3,R5 ;ANY MORE THAN TASK NAME BEQ RESTRT ;BR IF NO - START? MOV #GETMCR+G.MCRB+3,R1 ;++012ADDR OF 1ST CHAR AFTER TASK NAME23$:#$ CMPB #' ,(R1)+ ;++012 IS IT A BLANK BEQ 5$ ;BR IF YES - FOUNDU# SOB R5,3$ ;LOOP TIL DONE OR FOUNDP# BR RESTRT ;NO BLANK FOUND - STARTO5$:$+ CALL CMTB ;++012 CONVERT MEMORY TO BINARYS10$:) MOV R2,BEGADR ;++012 SAVE BEGINNING ADDRA2 SUB R2,EXTENT ;++014 AND DISPLAY TO TOP OF MEMORY,RESTRT: MOV BEGADR,ENDADR ;++012 SAVE ENDING& MOV EXTENT,R3 ;++014 EXPLICIT EXTENT?; BEQ 15$ ;++014 J IF NOT'; ADD R3,ENDADR ;++014 ELSE SET END ADRR); ASH #-6,R3 ;++014 CONVERT TO # COLUMNSA ;++019 NO 12 LINE TERMINALS+&; TST VT50FG ;++014 RUNNING FOR VT50?; BNE 13$ ;++014 J IF NOT/; ASR R3 ;++014 ELSE WE HAVE ONLY 1/2 THE COLS 1;13$: MOV R3,GRAIN ;++014 SET DISPLAY GRANULARITYB*; BR 30$ ;++014 DON'T PROCESS GRAIN STUFF/15$: MOV GRAIN,R3 ;++006 GET SIZE OF ONE COLUMNO, ASH #6,R3 ;++006 MULTIPLY BY 64 (#COLUMNS)& ;++019 ASSUME NO 12 LINE TERMINALS%; TST VT50FG ;++006 RUNNING ON VT50?N; BNE 20$ ;++006 J IF SOE( ASL R3 ;++006 ELSE WE HAVE 128 COLUMNS320$: ADD R3,ENDADR ;++006 MOVE UP TO ENDING ADDRESS/30$: MOV BEGADR,R1 ;++012 PICK UP START ADDRESS  ;++017 LINE DELETED3( MOV #CORLN1+2,R4 ;++002 ADDR OF MESSAGE$ CALL LINGEN ;GENERATE ADDRESS LINE( MOV #CORLN3+2,R4 ;++002 ADDR OF MESSAGE0 MOV R3,R1 ;RECYCLE LAST ADDRESS USED IN LINGEN( CALL LINGEN ;GENERATE 2ND ADDRESS LINE% CALL CLRSCR ;++011 CLEAR THE SCREENO0 INC MAXFLG ;++033FRB RE-DISPLAY MAXIMUM MEMORY;+); **-DSCON-DISPLAY CONSTANT PART OF IMAGE+;-DSCON:0 MOV #HDRMG2,R3 ;++007 DISPLAY FIRST HEADER MESS% CALL OUTITM ;++007 DISPLAY THE ITEM;4 MOV #HDRMG1,R3 ;++007 DISPLAY SYSTEM IDENTIFICATION% CALL OUTITM ;++007 DISPLAY THE ITEMA# TSTB TSFLG ;++016 RUNNING IN T/S?I/ BNE 2$ ;++016 J IF SO, NO ACTIVE TASK DISPLAYV% MOV #TSKLN1,R3 ;++007 'ACTIVE TASK='I% CALL OUTITM ;++007 DISPLAY THE ITEMS"2$: MOV #NODLN1,R3 ;++007 'NODES='% CALL OUTITM ;++007 DISPLAY THE ITEMI" MOV #NODLN2,R3 ;++007 'MAX HOLE='% CALL OUTITM ;++007 DISPLAY THE ITEM3 MOV #CORLN1,R3 ;POINT TO FIRST MEMORY DISPLAY LINE ! CALL OUTITM ;++002 DISPLAY LINET4 MOV #CORLN2,R3 ;POINT TO SECOND MEMORY DISPLAY LINE! CALL OUTITM ;++002 DISPLAY LINEL& ;++019 ASSUME NO 12 LINE TERMINALS%; TST VT50FG ;++006 RUNNING ON VT50? -; BNE 3$ ;++006 YES, DON'T PRINT SECOND LINEC3 MOV #CORLN3,R3 ;POINT TO THIRD MEMORY DISPLAY LINE! CALL OUTITM ;++002 DISPLAY LINE+ TST VT05FG ;+++FB IF A VT05, IT WON'T FIT# BNE 222$+1 MOV #LOGLN1,R3 ;DISPLAY LOGGED ON TERMINAL LINESI CALL OUTITM MOV #LOGLN2,R3 CALL OUTITM:222$: INC LOGFLG ;SET FLAG CAUSE THIS COULD BE A REASTART3$: * MOV BUFSTT,R0 ;++016 GET ATL BUFFER START& CLR (R0)+ ;++016 CLEAR FLAG AT START= CMP @#KP.AR0,BEGADR ;++016 WILL THE EXEC FIT ON THE DISPLAY?T BLO 5$ ;++016 J IF NOT/ MOV #^RC ,(R0)+ ;++016 ELSE SET UP EXEC ENTRYT MOV #^REXE,(R0)+ ;++016 ...< MOV #DI.FTK,(R0)+ ;++016 DISPLAY AS NON-CHECKPOINTABLE TASK.; MOV #.SG.EX,R5 ;++016 GET EXEC SIZE IN BYTES2; ADD #77,R5 ;++016 ROUND TO 32-WD BLOCK BOUNDARY ; ASH #-6,R5 ;++016 MAKE BLOCKS MOV @#KP.AR1,R5 ;GET PAR 1S# SUB @#KP.AR0,R5 ;SUB START OF EXECV( MOV @#KP.DR1,R4 ;GET PAGE DESC REGISTER0 ASH #-10,R4 ;NUMBER OF BLOCKS READABLE BY PAR12 INC R4 ;ADJUST CAUSE 0 MEANS ONE BLOCK OF ACCESS* ADD R4,R5 ;ADD, NOW HAVE EXEC BLOCK SIZE( MOV R5,(R0)+ ;++016 AND STORE IN BUFFER3 MOV @#KP.AR0,(R0) ;++017 SET UP EXEC START ADDRESS % ADD (R0)+,R5 ;++017 MAKE END ADDRESSE- CMP R5,ENDADR ;++017 EXEC OFF END OF SCREEN?5 BLOS 5$ ;++017 J I00(x|OxssF NOTC, SUB #10.,R0 ;++017 ELSE BACK OFF FROM EXEC/5$: MOV #KP.DR7,R5 ;++016 NOW LOOK FOR SCOMM...U! MOV #3,R4 ;++016 GET MAX # APRS;- MOV #200,R3 ;++017 SET SCOM TO 4K INITIALLYF.10$: BIT #ED,-(R5) ;++016 FOUND SCOM BASE YET? BNE 20$ ;++016 J IF SO1 ADD #200,R3 ;++016 ELSE ADD ANOTHER APR'S WORTHV" SOB R4,10$ ;++016 AND KEEP GOING420$: MOVB 1(R5),R4 ;++016 GET SIZE OF FIRST SCOM APR) INC R4 ;++016 ALLOW FOR HARDWARE PFFSETC/ SUB R4,R3 ;++016 SUBTRACT OUT FROM TOTAL SIZEO2 CMP 40(R5),BEGADR ;++016 BASE OF SCOM OFF SCREEN?* BLO 30$ ;++016 J IF SO, DON'T DISPLAY IT) MOV #^RM ,(R0)+ ;++016 SET UP SCOM NAMEG MOV #^RSCO,(R0)+ ;++016 .../ MOV #DI.FTK,(R0)+ ;++016 DISPLAY AS FIXED TASKR MOV R3,(R0)+ ;++016 SET SIZE MOV 40(R5),(R0) ;++017 AND BASE% ADD (R0)+,R3 ;++017 FORM END ADDRESST, CMP R3,ENDADR ;++017 BEYOND END OF DISPLAY? BLOS 30$ ;++017 J IF NOT- SUB #10.,R0 ;++017 ELSE BACK OFF FROM SCOMMA30$:/ MOV R0,FXDBUF ;++016 REMEMBER END OF THIS PARTT;+C; **-DSPAR-DISPLAY PARTITION CONFIGURATION AND SET UP MRL LISTHEADS0;-DSPAR:, MOV #MRLMG1,R3 ;POINT TO MRL DISPLAY HEADER! CALL OUTITM ;++002 DISPLAY LINE6 ; +++018 13 LINES DELETED ;+; **-DSCON-DISPLAY CONTROL;-9DSCTL: CALL INIBUF ;INITIALIZE OUTPUT DISPLAY PROTOTYPES+:MKT: MOV INTRVL,MKTDPB+M.KTMG ;++014 SET MARKTIME INTERVAL BEQ 5$ ;++014 J IF NO INTERVAL$ DIR$ #MKTDPB ;++014 ELSE MARK TIME5$:F0 CALL INIDIS ;INITIALIZE NEXT DISPLAY PROTOTYPE$ CALL DSTIM ;DISPLAY TIME AND TASKS" TST INTRVL ;++0014 MARKING TIME?" BEQ 10$ ;++014 DON'T WAIT IF NOT WTSE$S #2 ;++014 ELSE WAIT%10$: TST EXFLG ;++003 EXIT REQUIRED?D BNE EXIT ;++003 J IF SO1* TST UIFLG ;++008 UNSOLICITED INPUT SEEN? BEQ MKT ;++016 J IF NOTN2RDINPT: CLR UIFLG ;++008 CLEAR FLAG FOR NEXT TIME- CMKT$S ;++009 CANCEL OUTSTANDING MARKTIMESE/ MOV #RDITM,R3 ;++008 CLEAR READ AREA OF SCREENT CALL OUTITM0 MOV #RDITM2,R3 ;++008 NOW REPOSITION THE CURSOR CALL OUTITM ;++008% CALL OUTBUF ;++008 FLUSH THE BUFFERT! DIR$ #INPDPB ;++008 READ A LINEQ ;++012 LINES DELETED+ CMPB IOSB,#IE.EOF ;++008 WAS IT CONTROL-Z?E$ BEQ EXIT ;++011 STRAIGHT OUT IF SO+ CMPB IOSB,#IS.TMO ;++014 NO COMPLETE LINE?C/ BEQ MKT ;++014 IGNORE LINE IF SO, MUST BE ODDN* JMP COMAND ;++011 ELSE GO DECODE COMMAND*EXIT: CALL CLRSCR ;++003 CLEAR THE SCREEN( CALL OUTBUF ;++004 FLUSH OUTPUT BUFFER. DIR$ #DETDPB ;++003 DETACH FROM THE TERMINAL1 TST V100FG ;++025 DID WE CHANGE VT100 TO VT52 ? BEQ 10$ ;++025 BR IF NOT* MOV #MDE100,R3 ;++025 ELSE RESET TO VT100 CALL OUTLN2 ;++025 BUFFER IT" CALL OUTBUF ;++025 AND OUTPUT IT10$: ;++025 EXIT$S ;++003 FAREWELL! C;+&; **-DSTIM-DISPLAY CURRENT TIME OF DAY;-DSTIM: ; +++0013 GTIM$S #TIMBUF ;++002 GET CURRENT TIME PARAMETERSO3 MOV #TIMLOC+2,R0 ;++002 POINT TO CONVERSION BUFFERE% MOV #TIMBUF,R1 ;POINT TO TIME BUFFERU& JSR PC,DAYOFW ;CALC DAY OF WEEK IN R1 MUL #10.,R1 ;MAKE R1 OFFSET2& ADD #DAYTAG,R1 ;INTO DAY NAMES BUFFER MOV #10.,R3 ;USE R3 AS COUNTER#111$: MOVB (R1)+,(R0)+ ;FILL IN DAY  SOB R3,111$ ;UNTIL DONEC. MOV R0,R3 ;COPY ADDRESS OF CONVERSION BUFFER) MOV #TIMBUF,R1 ;POINT TO TIME PARAMETERS* CALL $DAT ;CONVERT DATE  MOVB #' ,(R0)+ ;INSERT A SPACE4 MOV #3,R2 ;;SET TO CONVERT HOURS, MINUTES, AND SEC- CALL $TIM ;CONVERT TIME PARAMETERS TO ASCIIF# CLRB (R0) ;SET ZERO SENTINEL BYTEB& MOV #TIMLOC,R3 ;++002 GET TIME STRING" CALL OUTITM ;++002 AND OUTPUT IT ;*** DISPLAY LOGGED ON TERMINALS;F2DSLOG: MOV #LOGLN3+2,R0 ;R0 POINTS TO LINE TO FILL MOVB #40,(R0)+ ;MOVE IN A SPACE! MOV NUMTTY,R1 ;R1 CONTAINS COUNT * MOV FIRTTY,R2 ;R2 POINTS TO FIRST TTY PUD* ADD #U.TF,R2 ;BUMP TO TERMINAL FLAGS WORD CLR DISCO CLR R4 ;CLEAR CHANGE COUNT)LOOP: BITB #UT.LG,(R2) ;IS HE LOGGED ON ?I BNE 1$ ;BR IF HE IST" MOVB #40,R3 ;ELSE PUT IN A SPACE BR 2$%1$: MOVB #'*,R3 ;A STAR IF LOGGED ON#% BITB #UT.PR,(R2) ;IS HE PRIVILEGED ? BEQ 11$ ;NOA& MOVB #'P,R3 ;IF SO, CHANGE INDICATOR!11$: BITB #10,(R2) ;IS HE HOSTILER BEQ000* 2$ ;NO MOVB #'H,R3 ;YES62$: CMPB R3,(R0) ;DID THIS TERMINAL'S STATUS CHANGE ? BEQ 22$ ;NOF INC R4 ;SHOW CHANGEF$22$: MOVB R3,(R0)+ ;PUT IN CHARACTER INC DISCO CMP DISCO,#7S BNE 24$23$: MOVB #40,(R0)+ ;A SPACE MOVB #40,(R0)+ ;A SPACE MOVB #40,(R0)+ ;A SPACE JMP 27$24$: CMP DISCO,#17 BNE 25$ BR 23$ 25$: CMP DISCO,#27 BNE 26$ BR 23$O26$: CMP DISCO,#37 BNE 27$ BR 23$ '27$: SUB #U.SZ,R2 ;BUMP TO NEXT TTY PUD % ;PUDS ARE LISTED IN REVERSE ORDERS& SOB R1,LOOP ;DO THIS FOR N TERMINALS- TST LOGFLG ;RESTART MAKE OUTPUT MANDATORY ?S BNE 33$ ;BRANCH IF YES TST R4 ;DID ANYTHING CHANGE2) BEQ 44$ ;++033FRB BR IF NOTHING CHANGEDS'33$: TST VT05FG ;+++FB OR WON'T IT FIT4 BNE 44$ ;++033FRBV% MOV #LOGLN3,R3 ;ELSE OUTPUT THE ITEMA CALL OUTITM$ CLR LOGFLG ;AND CLEAR RESTART FLAG+44$: TST MAXFLG ;++033FRB DID MAX CHANGE ? BEQ DSTSK ;++033FRB BR IF NOT + MOV MAXVAL,R1 ;++033FRB ELSE CONVERT VALUE - ASH #-5,R1 ;++033FRB FROM BLOCKS TO K-WORDSR& CLR R2 ;++033FRB SUPRESS LEADING 0'S< MOV #MAXMEM+11.,R0 ;++033FRB POINT TO ITEM TO RECEIVE ASCII% CALL $CBDMG ;++033FRB CONVERT VALUEB/ MOV @#.SWSWR,R1 ;++033FRB NOW GET ALL-TIME MAXT% ASH #-5,R1 ;++033FRB CONVERT IT TOO4& MOVB #'K,(R0)+ ;++033FRB PUT IN A "K"% MOVB #'/,(R0)+ ;++033FRB AND A SLASHL7 CALL $CBDMG ;++033FRB CONVERT MAX EVER VALUE TO ASCIID' MOV #MAXMEM,R3 ;++033FRB POINT TO ITEMI% CALL OUTITM ;++033FRB AND OUTPUT ITO% CLR MAXFLG ;++033FRB SHOW WE DID ITO;L;S;+;; **-DISPLAY ACTIVE TASKS THAT ARE IN MEMORY AND ON THE MRLM;-DSTSK: .INH0 ;INHIBIT TASK SWITCHINGDSPOOL:C" MOV .POLLH,R4 ;;GET POOL LISTHEAD% CLR R3 ;;CLEAR 'LARGEST HOLE' COUNT " CLR R5 ;;CLEAR TOTAL NODES COUNT10$:$ ADD 2(R4),R5 ;;ADD IN NEW HOLE SIZE/ CMP 2(R4),R3 ;;IS THIS THE LARGEST HOLE SO FARL BLOS 20$ ;;BR IF NOV MOV 2(R4),R3 ;;GET NEW SIZE20$: TST (R4) ;;DONE  BEQ 30$ ;;BR IF YESU MOV @R4,R4 ;;MOVE TO NEXT HOLE BR 10$ ;;LOOP TIL DONE30$:" MOV R3,HOLE ;;SAVE MAX HOLE SIZE% MOV R5,NODES ;;SAVE TOTAL NODE COUNTRDSMRL:* MOV #MRLLST,R5 ;;ADDR OF MRL TEMP STORAGE. MOV #.ATLLH,R4 ;; +++018 ADDR OF ATL LISTHEAD10$:, MOV (R4),R4 ;; +++018 GET ATL NODE ADDRESS1 CMP R4,.ATLLH+2 ;; +++018 AT REAL-TIME NULL JOB?N BEQ 30$ ;; +++018 YES IF EQS* MOV A.TD(R4),R3 ;; +++018 GET STD ADDRESS7 BEQ 10$ ;; +++018 IF EQ THEN .T1ATL, .T2ATL OR .TNATL 8 BIT #AF.IA!AF.CP,A.TF(R4) ;; +++018 A TIMESHARING TASK?, ;OR A REAL-TIME TASK THAT'S CKPOINTED ? BEQ 10$ ;; +++018 YES IF NE; BIT #AF.CP,A.TF(R4) ;IS IT A CHECKPOINTED REAL-TIME TASK ?R+ BNE 20$ ;IF IT IS, PUT IT IN OUR MRL LIST ; CMPB A.TS(R4),#TS.MRL ;; +++018 A 'MEMORY REQUIRED' STATE?  BEQ 20$ ;; +++018 YES IF EQA CMPB A.TS(R4),#TS.MRE ;; +++018 BNE 10$ ;; +++018 NO IF NE20$: ;; +++018(- MOV S.TN+0(R3),(R5)+ ;; +++018 GET TASK NAME+ MOV S.TN+2(R3),(R5)+ ;; +++018R# CMP R5,MRLTOP ;;++007 BUFFER FULL?; BLO 10$ ;; +++018 BR IF NO30$: ;; +++018E) CLR (R5) ;; +++018 FLAG END OF MRL DATA1;+; **-DISPLAY RESIDENT REGIONS;;-; DSRGN: ;; +++018E7 CLRB SNDFLG ;; +++018 SHOW NO TASKS NOT DISPLAYED YETC- MOV FXDBUF,R5 ;; +++018 ADDR OF TEMP STORAGEE2 MOV #.GCDLH,R4 ;; +++018 GET GCD LISTHEAD ADDRESS10$: ;; +++018+) MOV (R4),R4 ;; +++018 GET NEXT GCD NODE & CMP R4,#.GCDLH ;; +++018 END OF LIST? BEQ DSATL ;; +++018 YES IF EQ3;R, TST G.BA(R4) ;; +++018 IS REGION IN MEMORY? BEQ 10$ ;; +++018 NO IF EQ2 MOV G.BA(R4),R3 ;++033FRB CALCULATE END OF REGION- ADD G.CZ(R4),R3 ;++033FRB AS START PLUS SIZEE6 CMP R3,MAXVAL ;++033FRB IS THIS BIGGEST THING YET ??? BLE 999$ ;++033FRB BR IF NOT3 MOV R3,MAXVAL ;++033FRB IF BIGGEST, SAVE FOR LATERE& INC MAXFLG ;++033FRB AND SHOW CHANGE) CMP R3,@#.SWSWR ;++033FRB BIGGEST EVER ?, BLE 999$ ;++033FRB SKIP IF NOT? MOV R3,@#.SWSWR ;++033FRB SAVE IT, (SCREEN UPDATE ALREADY SET) 999$: ;++033FRB4 CMP G.BA(R4),BEGADR ;; +++018 IS REGION OFF SCREEN? BLO 10$ ;; +++018 YES IF LO;4 CMP G.BA(R4),ENDADR ;; +++018 IS REGION OFF SCREEN? B008x|OxssHIS 10$ ;; +++018 YES IF HISR;A2 TST G.BN+0(R4) ;; +++018 DOES REGION HAVE A NAME? BNE 40$ ;; +++018 YES IF NER6 BIT #GF.PA,G.FW(R4) ;; +++018 IS IT A TASK PURE-AREA? BEQ 25$ ;; +++018 NO IF EQ2 MOV .STDTA,R0 ;; +++018 SCAN STD TO GET TASK NAME MOV .STDTZ,R1 ;; +++018 ASR R1 ;; +++018 INC R1 ;; +++01820$: ;; +++018Y' MOV (R0)+,R2 ;; +++018 GET STD ADDRESS,3 CMP R4,S.PA(R2) ;; +++018 PURE AREA FOR THIS TASK?+ BEQ 30$ ;; +++018 YES IF EQ,+ SOB R1,20$ ;; +++018 SCAN STD UNTILL DONE 25$: ;; +++018I) MOV #^R...,(R5)+ ;; +++018 UNAMED REGIONR/ MOV #^R...,(R5)+ ;; +++018 DISPLAY AS '......'R BR 50$ ;; +++01830$: ;; +++018A- MOV S.TN+2(R2),(R5)+ ;; +++018 GET TASK NAME MOV S.TN+0(R2),(R5)+ ;; +++018 2 MOV #DI.PUR,(R5)+ ;; +++018 AND MARK AS PURE AREA BR 60$ ;; +++01840$: ;; +++018 / MOV G.BN+2(R4),(R5)+ ;; +++018 GET REGION NAMES MOV G.BN+0(R4),(R5)+ ;; +++018R50$: ;; +++018K1 MOV #DI.SGA,(R5)+ ;; +++018 MARK AS REGION (SGA) 60$: ;; +++018I- MOV G.CZ(R4),(R5)+ ;; +++018 GET REGION SIZE . MOV G.BA(R4),(R5)+ ;; +++018 AND BASE ADDRESS;1. CMP R5,BUFEND ;; +++018 STILL ROOM IN BUFFER? BLO 10$ ;; +++018 YES IF LO,;);;DSATL: ;; +++018 3 LINES DELETED,& MOV #.ATLLH,R4 ;;ADDR OF ATL LISTHEAD0 MOV #-1,CURTSK ;;++005 DON'T LOOK BEFORE ...DEM10$:+ CMP R4,.CRTSK ;;++005 JUST PASSING MYSELF?  BNE 101$ ;;++005 J IF NOT. CLR CURTSK ;;++005 ELSE LOOK FOR ACTIVE TASK%101$: MOV @R4,R4 ;;GET NEXT ATL NODES CMP R4,.ATLLH+2 ;;DONE' BEQ DSFTL ;; +++018 YES IF EQ, DO FTLS0 MOV A.HA(R4),R3 ;++033FRB CALCULATE END OF TASK- ADD A.TZ(R4),R3 ;++033FRB AS START PLUS SIZEB6 CMP R3,MAXVAL ;++033FRB IS THIS BIGGEST THING YET ??? BLE 999$ ;++033FRB BR IF NOT3 MOV R3,MAXVAL ;++033FRB IF BIGGEST, SAVE FOR LATERS& INC MAXFLG ;++033FRB AND SHOW CHANGE) CMP R3,@#.SWSWR ;++033FRB BIGGEST EVER ?F BLE 999$ ;++033FRB SKIP IF NOT? MOV R3,@#.SWSWR ;++033FRB SAVE IT, (SCREEN UPDATE ALREADY SET) 999$: ;++033FRB% CMP R5,BUFEND ;;++016 ANY MOOR ROOM?  BLO 102$ ;;++013 SKIP IF SOM) JMP DSFMT1 ;;++013 ELSE IGNORE THE RESTA)102$: MOV A.TD(R4),R3 ;;++013 GET THE STDS7 BEQ 10$ ;; +++018 IF EQ THEN .T1ATL, .T2ATL OF .TNATLT9 CMPB A.TS(R4),#TS.MRL ;; +++018 A MEMORY REQUIRED STATE?F BEQ 10$ ;; +++018 YES IF EQ9 CMPB A.TS(R4),#TS.MRE ;; +++018 A MEMORY REQUIRED STATE?+ BEQ 10$ ;; +++018 YES IF EQ9@ BIT #AF.CP,A.TF(R4) ;IS IT A REAL TIME TASK THAT'S CHECKPOINTED. BNE 10$ ;IF SO, DON'T SHOW IT IN MAIN MEMORY) TST A.HA(R4) ;; +++018 MEMORY ALLOCATED?1 BEQ 10$ ;; +++018 NO IF EQ0 CMPB A.TS(R4),#TS.RUN ;; +++018 IS 'RUN' STATE? BNE 12$ ;; +++018 NO IF NE- TST CURTSK ;;++005 LOOKING FOR ACTIVE TASK?T BNE 12$ ;;++005 J IF NOT# TST R3 ;;++005 IS THIS NULL TASK?S BEQ 12$ ;;++005 J IF SO " MOV #CURTSK,R0 ;;++005 GET BUFFER) MOV S.TN(R3),(R0)+ ;;++005 GET TASK NAME$ MOV S.TN+2(R3),(R0)+ ;;++005F' MOV A.TI(R4),R1 ;;++005 GET PUD FOR TI'* MOV U.DN(R1),(R0)+ ;;++005 STORE DEV NAME% MOVB U.UN(R1),(R0)+ ;;++005 AND UNIT+ BR 12$ ;;++005 SKIP NEXT BIT ;; +++018 2 LINES DELETEDS12$: ;; +++0010+ MOV A.HA(R4),R0 ;; ++024 GET START ADDRESS * ADD A.TZ(R4),R0 ;; ++024 FORM END ADDRESS. CMP R0,BEGADR ;; ++024 IS THE TASK OFF SCREEN) BLO 10$ ;; +++018 BR IF YES - IGNORE IT - CMP A.HA(R4),ENDADR ;;IS THE TASK OFF SCREENM* BHIS 10$ ;; +++018 BR IF YES - IGNORE IT MOV S.TN+2(R3),(R5)+;;GET TASKV MOV S.TN(R3),(R5)+ ;; NAME. MOV #DI.TSK,(R5)+ ;;++015 SHOW THIS IS A TASK5 BIT #SF.XC,S.FW(R3) ;;++015 TASK NON-CHECKPOINTABLE?+ BEQ 121$ ;;++015 J IF NOT+6 BIT #AF.IA,A.TF(R4) ;;++015 AH, BUT IS IT A T/S TASK?- BNE 121$ ;;++015 J IF SO, MUST BE SWAPPABLE0- MOV #DI.FTK,-2(R5) ;;++015 ELSE MARK AS SUCH+/121$: MOV A.TZ(R4),(R5)+ ;; ++021 GET TASK SIZER/ MOV A.HA(R4),(R5)+ ;;GET STARTING ADDR OF TASKH BR 10$ ;; +++018 ;; +++018 36 LINES DELETEDDSFTL:2 ;++033FRB NOTE THAT WE DON'T THINK FIXED TASKS0 ;++033FRB WILL BE LAST THING IN MEMORY, EVER& MOV #.FTLLH,R4 ;;ADDR OF FTL LISTHEAD40$: MOV @R400@*,R4 ;;GET NEXT FTL NODE CMP #.FTLLH,R4 ;;DONE BEQ DSFMT ;;BR IF YESA% CMP R5,BUFEND ;;++016 ANY MORE ROOM?+ BHIS DSFMT1 ;;BR IF NO3 CMP A.HA(R4),BEGADR ;;IS THE FIXED TASK OFF SCREEN+! BLO 40$ ;;BR IF YES - IGNORE IT 3 CMP A.HA(R4),ENDADR ;;IS THE FIXED TASK OFF SCREEND" BHIS 40$ ;;BR IF YES - IGNORE IT MOV A.TD(R4),R3 ;;GET STD ADDR:) MOV S.TN+2(R3),(R5)+ ;;++015 GET 'FIXED'X& MOV S.TN(R3),(R5)+ ;;++015 TASK NAME# MOV #DI.FXD,(R5)+ ;;++015 AND TYPE;# MOV A.TZ(R4),(R5)+ ;;GET TASK SIZER/ MOV A.HA(R4),(R5)+ ;;GET STARTING ADDR OF TASKB BR 40$ ;;LOOP TIL DONE;R; EDIT ACTIVE TASKS FOR DISPLAY;I3DSFMT1: INCB SNDFLG ;;++016 NO ROOM FOR MORE TASKSEDSFMT: .ENB0 ;;ENABLE TASK SWITCHING ;++007 LINES DELETED( TSTB TSFLG ;++016 RUNNING AS T/S TASK?0 BNE 35$ ;++016 J IF SO, NO ACTIVE TASK DISPLAY3 MOV #TSKITM+2,R0 ;++005 GET BUFFER FOR ACTIVE TASK & MOV #CURTSK,R3 ;++005 GET INFO BUFFER+ MOV (R3)+,R1 ;++005 GET FIRST WORD OF NAME; BEQ 20$ ;++005 J IF NULL JOB .IF DF,IASA. CMP R1,#^R.TS ;++005 IS .TSSN., T/S NULL JOB? BNE 10$ ;++005 J IF NOT + CMP (R3),#^RSN. ;++005 LOOK AT SECOND WORD  BEQ 20$ ;++005 J IF IT ISF .ENDC)10$: CALL $C5TA ;++005 UNPACK FIRST WORDC MOV (R3)+,R1 ;++005 GET SECONDT CALL $C5TA ;++005 AND UNPACK% MOVB #SPA,(R0)+ ;++005 LEAVE A SPACET+ MOVB (R3)+,(R0)+ ;++005 PLANT THE DEV NAMET MOVB (R3)+,(R0)+ ;++005- MOVB #SPA,(R0) ;++005 CLEAR SPACE FOR NUMBER3 MOVB (R0),1(R0) ;++005R, CLR R2 ;++005 SHOW ZERO SUPPRESSION WANTED" MOVB (R3)+,R1 ;++005 PICK UP UNIT CALL $CBOMG ;++005 UNPACK1' MOV #TSKITM,R3 ;++005 GET STRING AGAIN+ BR 30$ ;++005 GO OUTPUTB)20$: MOV #NTKITM,R3 ;++005 NULL TASK ITEML"30$: CALL OUTITM ;++005 OUTPUT IT35$: ;++016. MOV NODES,R1 ;++007 GET NUMBER OF TOTAL NODES- MOV #NODAD1,R3 ;++007 ADDRESS OF OUTPUT LINE " CALL MOVNOD ;++007 MOVE THE DATA MOV HOLE,R1 ;GET MAX HOLE SIZE' MOV #NODAD2,R3 ;ADDRESS OF OUTPUT LINE3 CALL MOVNOD ;MOVE THE DATA0 MOV #SNDNUL,R3 ;++016 ASSUME ALL TAKS DISPLAYED TSTB SNDFLG ;++016 WELLT BEQ 37$ ;++016 J IF CORRECT' MOV #SNDITM,R3 ;++016 ELSE GET MESSAGE437$: CMP R3,SNDLST ;FB WAS LINE THE SAME LAST TIME ? BEQ 38$ ;BRANCH IF YES& MOV R3,SNDLST ;REMEMBER FOR NEXT TIME& CALL OUTITM ;OUTPUT THE CHANGED ITEM BR 40$ ;AND CONTINUE*38$: MOV R3,SNDLST ;REMEMBER FOR NEXT TIME40$:2 MOV -(R5),R3 ;++006 GET BASE ADDRESS OF NEXT TASK& BEQ 70$ ;IF EQ NO MORE TASKS TO EDIT. SUB BEGADR,R3 ;++006 NORMALIZE ADDR TO SCREEN) ADD GRAIN,R3 ;++006 ROUND TO 1K BOUNDARY  DEC R3 ;++006 ... CLR R2 ;++006 READY FOR DIVIDE. DIV GRAIN,R2 ;++006 CONVERT BLOCKS TO COLUMNS5 CMP R2,COLS ;++010 START OFF THE END OF THE SCREEN?  BLO 43$ ;++012 J IF NOTL( SUB #10,R5 ;++012 ELSE START NEXT TASK BR 40$ ;++012 AND LOOP.43$: MOV R2,R0 ;SAVE STARTING COLUMN POSITION5 MOV #DISIMG+1+<64.*6.>,R1 ;SET DISPLAY BUFFER OFFSET + MOV -4(R5),R3 ;++015 GET DESCRIPTOR STRINGE( CALL XFRVER ;TRANSFER VERTICLE MESSAGE/ MOV -(R5),R3 ;++006 GET SIZE OF TASK IN BLOCKST ;++015 TWO LINES DELETED CLR R2 ;++006 READY FOR DIVIDE. DIV GRAIN,R2 ;++006 CONVERT BLOCKS TO COLUMNS% MOV R2,-(SP) ;SAVE NUMBER OF COLUMNST# MOV R2,R4 ;COPY NUMBER OF COLUMNS0 DEC R4 ;CALCULATE FILL COUNT+ ADD R0,R2 ;CALCULATE ENDING COLUMN NUMBERO) MOV -(R5),R3 ;++015 GET DESCRIPTOR AGAINO0 ADD #4,R3 ;++015 POINT TO TERMINATOR CHARACTER* CMP COLS,R2 ;++006 IS THE END OFF SCREEN BHIS 45$ ;BR IF NO% SUB COLS,R2 ;++006 GET HOW MUCH OFFV( SUB R2,(SP) ;CORRECT NUMBER OF COLUMNS& SUB R2,R4 ;CORRECT NUMBER OF COLUMNS- MOV COLS,R2 ;++006 SET ENDING COLUMN NUMBER62 SUB #2,R3 ;++015 POINT BACK TO INTERMEDIATE CHAR45$:% DEC R2 ;BACKUP COLUMN NUMBER BY ONEO" ASR (SP) ;CALCULATE MIDWAY POINT ADD R0,(SP) ;C( ADD R1,R0 ;CALCULATE ADDRESS IN BUFFER INC R0 ; MOV R3,-(SP) ;++015 SAVE R3' MOV (R5),R3 ;++015 GET FILL CHARACTER ADD #2,R3 ;++015 POINT AT IT%50$: DEC R4 ;ANY MORE BYTES TO FILL?C BLT 60$ ;IF LT NOW( MOVB (R3),(R0)+ ;++015 INSERT FILL BYTE BR 50$ 00Hx|Oxss ;60$: MOV (SP)+,R3 ;++015 RETRIEVE R3( CALL XFRVER ;TRANSFER VERTICLE MESSAGE4 MOV #TSKNAM,R0 ;POINT TO TASKNAME TEMPORARY STORAGE* MOV -(R5),R1 ;GET FIRST HALF OF TASK NAME CALL $C5TA ;CONVERT TO ASCII+ MOV -(R5),R1 ;GET SECOND HALF OF TASK NAMEU CALL $C5TA ;CONVERT TO ASCII% MOV #DISIMG+1,R1 ;SET DISPLAY OFFSET(1 MOV (SP)+,R2 ;RETRIEVE ADDRESS TO STORE TASKNAME0- MOV #TSKNAM,R3 ;POINT TO CONVERTED TASK NAME ( CALL XFRVER ;TRANSFER VERTICLE MESSAGE BR 40$ ;GO AGAIN70$:( MOV #DISMRL+1,R4 ;SET UP DISPLAY OFFSET& MOV #MRLLST,R5 ;GET ADDR OF LISTHEADS80$:% MOV #TSKNAM,R0 ;ADDR OF TEMP STORAGEA( MOV (R5)+,R1 ;GET 1ST HALF OF TASK NAME BEQ DSPLY ;IF ZERO - DONE ! CALL $C5TA ;CONVERT IT TO ASCII)( MOV (R5)+,R1 ;GET 2ND HALF OF TASK NAME! CALL $C5TA ;CONVERT IT TO ASCIII" MOV #TSKNAM,R3 ;ADDR OF TASK NAME# MOV R4,R2 ;SET UP FOR XFRHOR CALLS* CALL XFRHOR ;TRANSFER HORIZONTAL MESSAGE ADD #8.,R4 ;MOVE TO NEXT LINEE BR 80$ ;GET NEXT;+; **-DSPLY-DISPLAY NEXT IMAGEM;-4DSPLY: MOV #1,R4 ;SET INITIAL IMAGE PROTOTYPE INDEX' MOV #64.,R3 ;SET UP DIVISOR FOR COORDF-10$: CMP R4,IMGSZE ;++010 FINISHED WITH SCAN?T BHI 40$ ;IF HI YES: CMPB CURIMG(R4),DISIMG(R4) ;DISPLAY PROTOTYPES IDENTICAL? BNE 20$ ;IF NE NO # INC R4 ;INCREMENT PROTOTYPE INDEXT BR 10$ ;GO AGAIN420$: CALL COORD ;CALCULATE 'X' AND 'Y' CO-ORDINATES INC R1 ;++002 BUMP X COORD1 ADD #TASKY,R0 ;++002 ADD COORDINATE OFFSET VALUET CMP #SPLIT,R0 ;AT SCREEN SPLIT? BHI 30$ ;IF HI NOX% ADD #3.,R0 ;ADJUST DOWN THREE LINESI*30$: CALL OUTCP ;++002 OUTPUT COORDINATES- CALL OUTCON ;OUTPUT NON-IDENTICAL CHARACTER; BR 10$ ;GO AGAIN40$:+ MOV #1,R4 ;SET INITIAL IMIGAE PROTO INDEXM& MOV #8.,R3 ;SET UP DIVISOR FOR COORD50$:( CMP R4,#MRLBUF ;FINISHED WITH MENU SCAN BHI 80$ ;BR IF YES4 CMPB CURMRL(R4),DISMRL(R4) ;DISPLAY PROTO IDENTICAL BNE 60$ ;BR IF NO0 INC R4 ;INC PROTO INDEX, BR 50$ ;AGAINR60$:$ CALL COORD ;CALC 'X' AND 'Y' COORD1 ADD #MRLX,R1 ;++002 MAKE MRL DISPLAY AREA OFFSETU ADD #MRLY,R0 ;++002) CALL OUTCP ;++002 OUTPUT CURSOR CONTROL( CALL OUTMRL ;OUTPUT NON-IDENTICAL CHAR BR 50$ ;AGAINO80$:"; MOV #HO,R2 ;SET TO HIOME CURSOR, MOV #0,R2 ;++019 DIFFERENT HOME FOR SOROCS3 CALL OUTSPC ;OUTPUT HOME CURSOR CONTROL CHARACTER # CALL OUTBUF ;FLUSH DISPLAY BUFFERM RETURNS;+,; **-LINGEN-GENERATE MEMORY LINE FOR DISPLAY; ; INPUTS:N;R"; R1=ADDRESS TO CONVERT AND INSERT; R4=ADDRESS OF LINE OF '*'S;O;-LINGEN:X2 MOV #64.,R2 ;++012 FIRST CLEAR LINE TO ALL STARS+ ADD R2,R4 ;++012 POINT PAST END OF BUFFER )10$: MOVB #'*,-(R4) ;++012 MOVE IN A STARA! SOB R2,10$ ;++012 LOOP TIL DONEO+ MOV R1,R3 ;SAVE R3 FOR LATER MODIFICATION+ CLR R2 ;ZERO SUPRESS $CBDMG MOV #8.,R5 ;SET UP LOOP COUNT 20$:& MOV R3,R1 ;SET UP ADDRESS TO CONVERT, ASH #-5,R1 ;++017 CONVERT FROM BLOCKS TO K" MOV R4,R0 ;SET UP BUFFER ADDRESS( CALL $CBDMG ;CONVERT BINARY TO DECIMAL1 MOV GRAIN,R1 ;++006 GET BLOCKS PER SINGLE COLUMNX( ASH #3,R1 ;++017 MULT BY 8 FOR DISPLAY. ADD R1,R3 ;++017 AND UPDATE CURRENT POSITION% ADD #8.,R4 ;ADD 8 TO BUFFER ADDRESSV SOB R5,20$ ;LOOP TIL DONE+ RETURNT;+5; **MOVNOD-MOVE THE NODE INFO INTO THE DISPLAY BUFFERR; ; INPUTS:E;$; R0=OUTPUT BUFFER ADDRESS(; R1=NUMBER TO BE CONVERTED AND INSERTED;S;-MOVNOD:" MOV R3,R0 ;++002 GET MESSAGE ADR ADD #2,R0 ;++002 CLR R2 ;ZERO SUPRESS, ASH #-4,R1 ;DIVIDE BY 16 FOR CORRECT COUNT$ MOV #6,-(SP) ;++002 CLEAR SIX BYTES%10$: MOVB #SPA,(R0)+ ;++002 CLEAR ONE8 DEC (SP) ;++002 DEC THE COUNTA BGT 10$ ;++002 LOOP TIL DONE" TST (SP)+ ;++002 CLEAN THE STACK" SUB #6,R0 ;++002 RESTORE POINTER CALL $CBDMG ;CONVERT DATAO$ CALL OUTITM ;++002 OUTPUT THE LINE RETURNE;+/; **-COORD-CALCULATE DISPLAY CO-ORDINATE VALUESO;R ; INPUTS:E;D; R4=PROTOTYPE DISPLAY INDEX. ;-COORD: MOV R4,R1 ;SET DIVIDEND0 DEC R1 ;BACK OFF BY 1S CLR R0 ;CLEAR FOR DIVIDE) DIV R3,R0 ;CALCULATE CO-ORDINATE VALUESE RETURNT;+6; **-INIBUF-INITIALIZE OUTPUT 00P*IMAGE DISPLAY PROTOTYPES; ; INPUTS:;T; NONE.0;- .ENABL LSBT>INIBUF: MOV #CURIMG+1,R0 ;POINT TO CURRENT IMAGE DISPLAY PROTO4 MOV #CURMRL+1,R2 ;POINT TO CURRENT IMAGE MENU PROTO, CALL 10$ ;INITIALIZE CURRENT IMAGE DISPLAY;INIDIS: MOV #DISIMG+1,R0 ;POINT TO NEXT IMAGE DISPLAY PROTO41 MOV #DISMRL+1,R2 ;POINT TO NEXT IMAGE MENU PROTO )10$: MOV #DISBUF/2,R1 ;SET SIZE OF BUFFERC/20$: MOV #" ,(R0)+ ;INSERT BLANKS IN PROTOTYPEC SOB R1,20$ ;LOOP TIL DONE% MOV #MRLBUF/2,R1 ;SET SIZE OF BUFFERG30$:' MOV #" ,(R2)+ ;INSERT BLANKS IN PROTOE SOB R1,30$ ;LOOP TIL DONEF RETURN ;+ .DSABL LSBO;+!; **-OUTBUF-OUTPUT DISPLAY BUFFERL;R ; INPUTS: ;R#; BUFCTR=NUMBER OF BYTES TO OUTPUT.T;-7OUTBUF: MOV #DSBUF,BUFPTR ;RESET CURRENT BUFFER POINTERO" DIR$ #DSQIO ;OUTPUT DISPLAY LINE)10$: CLR BUFCTR ;CLEAR BUFFER BYTE COUNT RETURN ;B;+.; **-OUTCHR-OUTPUT CHARACTER TO DISPLAY BUFFER; ; INPUTS:R;T; R2=CHARACTER TO BE OUTPUT.;-6OUTCHR: MOVB R2,@BUFPTR ;INSERT BYTE IN DISPLAY BUFFER BEQ 5$ ;++006 J IF NULL BYTE/ INC LASTX ;++006 ELSE BUMP CHARACTER POSITIONB)5$: INC BUFPTR ;INCREMENT BUFFER POINTERF" INC BUFCTR ;INCREMENT BYTE COUNT' CMP #BUFSIZ,BUFCTR ;++002 BUFFER FULL?  BHI 10$ ;IF HI NOS" CALL OUTBUF ;FLUSH OUTPUT BUFFER10$: RETURN ;P;+*; **-OUTCON-OUTPUT NON-IDENTICAL CHARACTER; ; INPUTS:B;; R4=PROTOTYPE DISPLAY INDEX.R;-3OUTCON: MOVB DISIMG(R4),R2 ;GET CHARACTER TO OUTPUTE0 MOVB R2,CURIMG(R4) ;STORE BYTE IN CURRENT IMAGEOUTCO1:P CALL OUTCHR ;OUTPUT CHARACTERN) INC R4 ;INCREMENT PROTOTYPE IMAGE INDEXA RETURN ;B;$;N;UOUTMRL:C' MOVB DISMRL(R4),R2 ;GET CHAR TO OUTPUTR0 MOVB R2,CURMRL(R4) ;STORE BYTE IN CURRENT IMAGE BR OUTCO1 ;REST THE SAME;+8; **-OUTLIN-OUTPUT DOUBLE ASCIZ STRING TO DISPLAY BUFFER;* ; INPUTS:P;N1; R3=ADDRESS OF DOUBLE ASCIZ STRING TO BE OUTPUT.O;-3OUTLIN: MOVB (R3)+,R2 ;GET NEXT CHARACTER TO OUTPUTE$ BEQ 10$ ;IF EQ END OF FIRST STRING CALL OUTCHR ;OUTPUT CHARACTERE BR OUTLIN ;GO AGAINR)10$: CALL OUTFIL ;OUTPUT FILL CHARACTERSR;+1; **-OUTLN2-OUTPUT ASCIZ STRING TO DISPLAY BUFFER;V ; INPUTS:); *; R3=ADDRESS OF ASCIZ STRING TO BE OUTPUT.;-3OUTLN2: MOVB (R3)+,R2 ;GET NEXT CHARACTER TO OUTPUT+ BEQ 10$ ;IF EQ DONEU CALL OUTCHR ;OUTPUT CHARACTERR BR OUTLN2 ;GO AGAIN 10$: RETURN ;B A;++002-; OUTSPC - OUTPUT SPECIAL CHARACTER WITH FILL ;T ; INPUTS:C; ; R2 CHARACTER TO BE OUTPUTE;- I+OUTSPC: CALL OUTCHR ;++002 OUTPUT THE BYTE+OUTFIL: TST VT05FG ;++002 RUNNING ON VT05?T" BEQ 20$ ;++002 J IF NOT, NO FILL' MOV #6,-(SP) ;++002 ELSE GET THE COUNT! CLR R2 ;++002 GET THE FILL BYTEO(10$: CALL OUTCHR ;++002 OUTPUT A FILLER DEC (SP) ;++002 DEC THE COUNTE BGT 10$ ;++002 LOOP TIL DONE" TST (SP)+ ;++002 CLEAN THE STACK20$: RETURN ;++002 GO AWAY R;++002.; OUTCP - OUTPUT CURSOR CONTROL TO MOVE CURSOR; ; INPUTS:;; R0 X COORDINATE2; R1 Y COORDINATET; R2 ;--002 T/OUTCP: CMP R0,LASTY ;++004 SAME LINE AS BEFORE?  BNE 2$ ;++004 J IF NOT( MOV R1,R2 ;++004 COPY POSITION ON LINE$ CMP R2,LASTX ;++004 NEXT CHARACTER?0 BEQ 999$ ;++004 J IF SO, NO POSITIONING NEEDED BR 9$ ;++004 AND GET OUT.2$: CMP R1,LASTX ;++004 SAME COLUMN AS BEFORE? BNE 9$ ;++004 J IF NOT+ MOV R0,R2 ;++004 GET COPY OF VERTICAL POS2" DEC R2 ;++004 JUST ON NEXT LINE? CMP R2,LASTY ;++004 WELL? BNE 9$ ;++004 J IF NOT TST VT05FG ;++004 ON VT05?, BEQ 9$ ;++004 J IF NOT, DO IT THE HARD WAY) MOV #BS,R2 ;++004 ELSE OUTPUT BACKSPACE CALL OUTCHR ;++004# MOV #LF,R2 ;++004 AND A LINE-FEEDO CALL OUTSPC ;++004 BR 999$ ;++004 NOW GET OUT'9$: TST VT50FG ;++006 RUNNING ON VT50?D BNE 30$ ;++006 J IF SO$ TST VT05FG ;++002 RUNNING ON VT05? BEQ 10$ ;++002 J IF NOT03 MOV #CD,R2 ;++002 GET START OF CURSOR CONTROL SEQO" CALL OUTCHR ;++002 AND OUTPUT IT BR 20$ ;++002 SKIP VT52 STUFFB.10$: MOV #ESC,R2 ;++002 OUTPUT ESCSEQ TO VT52 CALL OUTCHR ;++002 MOV #'Y,R2 ;++002A TST VT52FG ;F.B. A00Xx|Oxss REAL VT52 ? BNE 11$ ; BR IF TRUEU7 MOV #'=,R2 ;++019 DIRECT ADDRESS DIFFERENT FOR SOROCS 11$: CALL OUTCHR ;++002%20$: MOV R0,R2 ;++002 OUTPUT X COORD0! ADD #OFFSET,R2 ;++002 ADD OFFSET0 CALL OUTSPC ;++002 MOV R1,R2 ;++002 AND Y -COORD1! ADD #OFFSET,R2 ;++002 ADD OFFSET; CALL OUTCHR ;++002 BR 999$ ;++006 GET OUT130$: MOV R3,-(SP) ;++006 VT50 - SAVE SOME SCRATCH5# CMP R0,#1 ;++006 GOING TO LINE 1?T BNE 40$ ;++006 J IF NOTU( MOV #ESC,R2 ;++006 ELSE DO CURSOR HOME CALL OUTCHR ;++006 MOV #'H,R2 ;++006 (ESC H)U CALL OUTCHR ;++006* MOV #1,LASTX ;++006 AND SHOW WHERE WE ARE MOV #1,LASTY ;++006*40$: MOV R1,R3 ;++006 COPY REQD HORIZ POS) SUB LASTX,R3 ;++006 SUBTRACT CURRENT POS ( BEQ 80$ ;++006 J IF IN THE RIGHT PLACE5 BPL 60$ ;++006 J IF GOING FORWARDS - MUST USE SPACE2( NEG R3 ;++006 MAKE DIFFERENCE POSITIVE1 CMP R3,R1 ;++006 GOING BACK MORE THAN HALF WAY?+, BHI 50$ ;++006 J IF SO, USE CR THEN SPACES! MOV #BS,R2 ;++006 GET CHARACTERC BR 70$ ;++006 AND J TO DO IT50$: MOV #CR,R2 ;++006 DO A CRC CALL OUTCHR ;++006& MOV R1,R3 ;++006 NOW GET # OF SPACES DEC R3 ;++006 START AT ZEROV$ BEQ 80$ ;++006 J IF FIRST COL REQD,60$: MOV #ESC,R2 ;++006 DO 'CURSOR FORWARD'% CALL OUTCHR ;++006 WHICH IS 'ESC C'B MOV #'C,R2 ;++006O CALL OUTCHR ;++006! SOB R3,60$ ;++006 LOOP TIL DONEE BR 80$ ;++006 AND SKIP(70$: CALL OUTCHR ;++006 OUTPUT THE BYTE SOB R3,70$ ;++006 AND LOOP,80$: MOV R0,R3 ;++006 GET REQD VERTICAL POS) SUB LASTY,R3 ;++006 SUBTRACT CURRENT POSM$ BEQ 110$ ;++006 J IF NOTHING TO DO" BPL 100$ ;++006 J IF MOVING DOWN) NEG R3 ;++006 ELSE MUST DO 'CURSOR UP'SR)90$: MOV #ESC,R2 ;++006 WHICH IS 'ESC A'0 CALL OUTCHR ;++006 MOV #'A,R2 ;++006 CALL OUTCHR ;++006! SOB R3,90$ ;++006 LOOP TIL DONE0 BR 110$ ;++006 NOW GET OUT,100$: MOV #LF,R2 ;++006 MOVE CURSOR DOWN... CALL OUTCHR ;++006 SOB R3,100$ ;++006$110$: MOV (SP)+,R3 ;++006 RESTORE R3&999$: MOV R0,LASTY ;++004 SAVE Y COORD MOV R1,LASTX ;++004 AND X RETURN ;++002 AND GO AWAY ;++0020; OUTITM - OUTPUT ITEM GENERATED BY 'ITEM' MACRO;N ; INPUTS:;;0; R3 ADDRESS OF ITEM;- (OUTITM: MOVB (R3)+,R0 ;++002 GET X COORD! MOVB (R3)+,R1 ;++002 GET Y COORD ) CALL OUTCP ;++002 OUTPUT CURSOR CONTROL $ CALL OUTLN2 ;++002 OUTPUT THE LINE RETURN ;++002 GO AWAY;+8; **-XFRHOR-TRANSFER HORIZONAL MESSAGE TO DISPLAY BUFFER;, ; INPUTS:6;13; R2=ADDRESS OF FIRST CHARACTER IN DISPLAY BUFFER.Y>; R3=ADDRESS OF ASCIZ STRING TO BE INSERTED HORIZONALLY IN THE; DISPLAY BUFFER.;-XFRHOR:M10$:2 MOVB (R3)+,(R2)+ ;MOVE A CHAR INTO DISPLAY BUFFER) TSTB (R3) ;ANY MORE CHARACTERS TO MOVE?O BNE 10$ ;IF NE YES RETURN ;V;+7; **-XFRVER-TRANSFER VERTICLE MESSAGE TO DISPLAY BUFFERO;O ; INPUTS:L;U2; R2=ADDRESS OF FIRST CHARACTER IN DISPLAY BUFFER.=; R3=ADDRESS OF ASCIZ STRING TO BE INSERTED VERTICALLY IN THER; DISPLAY BUFFER.;-,XFRVER: CMP #64.,R2 ;UPPER PART OF DISPLAY? BHI 10$ ;IF HI YES' ADD #<64.*8.>-64.,R2 ;ASSUME TASK NAMET CMP #TSKNAM,R3 ;TASK NAME? BEQ 10$ ;IF EQ YES/ SUB #<64.*7.>,R2 ;ADJUST FOR TASK DELINEATIONT)10$: ADD R1,R2 ;ADD DISPLAY OFFSET VALUEE820$: MOVB (R3)+,(R2) ;MOVE A CHARACTER TO DISPLAY BUFFER+ ADD #64.,R2 ;ADVANCE TO NEXT DISPLAY LINEN) TSTB (R3) ;ANY MORE CHARACTERS TO MOVE?  BNE 20$ ;IF NE YES RETURN ;  I;+C; ROUTINE TO READ A MEMORY SIZE IN OCTAL BLOCKS OR K AND CONVERT TOVJ; OCTAL BLOCKS. FORMAT IS OR K.I; A DECIMAL NUMBER WITHOUT A 'K' ON THE END IS TREATED AS 32-WORD BLOCKS.Q;S ; INPUTS:.;>$; R1 POINTER TO FIRST CHAR OF NUMBER;A ; OUTPUTS:;D; R1 TERMINATOR ADDRESS:; R2 NUMBER OF 32-WORD BLOCKST;- I!CMTB: MOV R0,-(SP) ;++012 SAVE R0E& MOV R1,R0 ;++012 COPY BUFFER ADDRESS MOV R1,R5 ;++012 AND SAVE IT) CALL $COTB ;++012 ASSUME OCTAL AT FIRSTO) CMPB -(R0),#'K ;++012 TERMINATED ON 'K'?  BEQ 10$ ;++012 DECIMAL IF SO2 CMPB (R0),#'8 ;++012 TERMINATED ON DECIMAL DIGIT? BEQ 10$ ;++012 J IF SO& CMP00`*B (R0),#'9 ;++012 TRY THE OTHER.../ BNE 20$ ;++012 J IF NOT, MUST BE OCTAL BLOCKSP*10$: MOV R5,R0 ;++012 GET START ADR AGAIN& CALL $CDTB ;++012 CONVERT AS DECIMAL% CMPB -(R0),#'K ;++012 FINISH ON 'K'?  BNE 20$ ;++012 J IF NOTE INC R0 ;++012 ELSE SKIP THE KA$ ASH #5,R1 ;++012 CONVERT TO BLOCKS"20$: MOV R1,R2 ;++012 COPY RESULT# MOV R0,R1 ;++012 AND BUFF POINTERI MOV (SP)+,R0 ;++012 RETRIEVE R0 RETURN ;++012 GO AWAY ;;++0032; CLRSCR - CLEAR SCREEN BEFORE STARTING OR EXITING;--003 )+CLRSCR: TST VT05FG ;++002 RUNNING ON VT05?2 BEQ 20$ ;++002 J IF NOTO" MOV #HO,R2 ;HOME CURSOR TO BEGIN' CALL OUTSPC ;OUTPUT SPECIAL CHARACTER $ MOV #ES,R2 ;ERASE TO END OF SCREEN' CALL OUTSPC ;OUTPUT SPECIAL CHARACTER BR 30$ ;++002 SKIP VT52 STUFF+20$: MOV #CLR52,R3 ;++002 GET VT52 START UPV* TST VT50FG ;++019 BUT COULD BE A BEEHIVE$ BEQ 21$ ;++019 BR IF NOT A BEEHIVE) MOV #CLR50,R3 ;++019 ELSE CHANGE STARTUP&21$: TST VT52FG ; F. B. A REAL VT52 ? BEQ 22$ ; NOI( MOV #CLR52T,R3 ; YES, USE VT52 SEQUENCE'22$: CALL OUTLN2 ; OUTPUT THE SEQUENCEI*30$: MOV #1,LASTX ;++006 SET UP CURSOR POS MOV #1,LASTY ;++006 RETURN ;++003 GO AWAY R;++003A; FOR UNSOLICITED INPUT OR CONTROL-C (RSX ONLY) WAKE UP THE TASK.0;--003 K .IF NDF,IAS+CCAST: INC EXFLG ;++008 SHOW EXIT REQUIREDV$ BR ASTCOM ;++008 GO TO COMMON CODE .ENDC Q4UIAST: INC UIFLG ;++008 SHOW UNSOLICITED INPUT SEEN*ASTCOM: SETF$S #2 ;++008 WAKE UP THE TASK ASTX$S ;++003 AND GO AWAY.PAGEM;+I; HERE IS THE COMMAND DECODER. WHILE DEMO IS RUNNING IT USES UNSOLICITEDIA; INPUT AST'S TO DETECT COMMANDS. COMMANDS ARE RECOGNIZED BY THEC; FIRST LETTER AND THE DISPATCHER JUMPS TO THE APPROPRIATE HANDLER.R>; R1 CONTAINS THE FIRST NON-BLANK CHARACTER AFTER THE COMMAND.1; THE DECODER IS DRIVEN BY THE TABLE AT 'CMDTBL'.C;- 00COMAND: MOV #GETMCR+2,R1 ;++011 GET INPUT BUFFER+ MOV IOSB+2,R0 ;++011 GET LENGTH OF COMMAND & BEQ 35$ ;++011 IGNORE IF ZERO LENGTH% ADD R1,R0 ;++011 POINT PAST COMMAND' MOVB #40,(R0)+ ;++011 PLANT TERMINATORO-10$: CMPB (R1)+,#40 ;++011 FOUND A SPACE YET?  BNE 10$ ;++011 LOOP IF NOT320$: CMPB (R1)+,#40 ;++011 STILL LOOKING AT SPACES?C BEQ 20$ ;++011 LOOP IF SOH# DEC R1 ;++011 BACK OVER NON-SPACE-( MOV #CMDTBL,R0 ;++011 GET COMMAND TABLE630$: CMPB GETMCR+2,(R0) ;++011 THIS THE RIGHT COMMAND? BEQ 40$ ;++011 J IF SO/ CMP (R0)+,(R0)+ ;++011 ELSE SKIP TO NEXT ENTRYE! TST (R0) ;++011 AT THE END YET?I BNE 30$ ;++011 LOOP IF NOT&35$: JMP MKT ;++011 IGNORE IF ILLEGAL,40$: JMP @2(R0) ;++011 DISPATCH FOR COMMAND ,;+:; B COMMAND - RESET BEGINNING ADR. FORMAT IS 'BEGIN NNNK';- 'CMDB: CALL CMTB ;++012 GET MEMORY BASEC MOV R2,BEGADR ;++012 SET UP# JMP RESTRT ;++012 AND START AGAIN- M;+E; G COMMAND - SET 'GRANULARITY'. FORMAT IS 'GRAIN NNNK'. GRAIN MUST #; NOT BE LESS THAN 10 OCTAL BLOCKS.J;- 0CMDG: CLR EXTENT ;++014 SHOW NO EXPLICIT EXTENT CALL CMTB ;++012 GET SIZEY ;++017 LINE DELETEDO& MOV R2,GRAIN ;++012 ELSE SET UP GRAIN JMP RESTRT ;++012 AND GO AGAIN P;+B; E COMMAND - SET 'EXTENT' (I.E. SIZE) OF WHOLE DISPLAY. FORMAT IS2; 'EXTENT NNNK' OR 'EXTENT ALL' TO SHOW ALL MEMORY;- S)CMDE: CMPB (R1),#'A ;++014 IS THIS 'ALL'?R( BNE 10$ ;++014 J IF NOT, ASSUME NUMBER' MOV .MSIZE,EXTENT ;++014 ELSE SET SIZEA. CLR BEGADR ;++014 AND START AT THE BEGINNING BR 20$ ;++014 SKIP OTHER STUFF10$: CALL CMTB ;++014 GET SIZEE% MOV R2,EXTENT ;++014 AND REMEMBER IT+ 20$: JMP RESTRT ;++014 GO AGAIN 0;+<; I COMMAND - SET NUMBER OF SECONDS BETWEEN UPDATING DISPLAY0; IF VALUE IS ZERO, UPDATE DISPLAY CONTINUOUSLY;- R)CMDI: MOV R1,R0 ;++014 COPY BUFF POINTERS* CALL $CDTB ;++014 CONVERT DECIMAL NUMBER MOV R1,INTRVL ;++014 SET UP JMP MKT ;++014 AND GO AGAINB .END DEMOIZE,EXTENT ;++014 ELSE SET SIZEA. CLR BEGADR ;++014 AND START AT THE BEGINNING BR 20$ ;++014 SKIP OTHER STUFF10$: CALL CMTB ;++014 GET SIZEE% MOV R2,EXTENT ;++014 AND REMEMBER IT+ 20$: JMP RESTRT ;++014 GO AGAIN 0;+<; I COMMAND 00hx|Oxss*]LL@@Lh8@* @@ @ %@ @8@ v@* @A^@;"@,(d@"0@@*"0W@#0@&0@$9!@$939@*:a @:@:br@:@:@*:2@T;@\G. @\G/ @\G@*\G@wx@&{@0{@@4{W@*T@T@s@|L@|f@*W@@%@W@:@*:_@[-]<=>[=]<+>*& WTT77 *LE*= HJ[?2l<[1;1hOU*rTPUT LUN ERROR - CHECK LUN 1INVALID TE*RMINAL TYPENODES='MAX HOLE= * 0 **************************************************************** ** +-------+-------+-------+-------+*0-------+-------+-------+------- *****V***************************************|**********************LOGGED 000*0000 11111111 22222222 33333333 * 44444444ON @ TT: 1234567 01234*567 01234567 01234567 01234567* *: 6MAX MEM.=XXX*`K/YYYKEDG4IbX$ (>D4b"p o :2 o3 pp  :2 *3 ׭<׭  p $939*@ `  <׭ `*f׭7 ׭׭ 7 *׭ ‡׭~ (*?4 .7s5c Lh8" %* "TT  .&  U<Q*e      "*$ ѥ D * ^dVVZ *Jt `D> R  & R*p s g   sg (*   ~  vP n   "P*d ` X \ ' $\G. *#u aP\G/ \G. \G(\G. *dw! 5eD\G*. w- ^@QGwH d F*T 7  2H $H *z z )  7 * z r 6 ׭R  6 ($9!*׭Jw  * Bf T;* (f*  3R =R WpR "R &A^* eR P~R Е  RR a}&@Q*8 Е e7  ʵ%(|L*^Õ Õ*ʵÕPʵÕHȠ |f*А -Е Е Е w-*-z-pv~ f * N J7 N d`Wt ]  (]* WtЕKЕ/ R 7 0: jz:R*U`  m- L&BXwRj 7!5(j [-]<=>[=]<+>P WTT77E*= HJ[?2l<[63;1"pOUTPUT LUN ERROR - CHECK LUN 1INVALID TERMINAL TYPENODES='MAX HOLE= 0 **************************************************************** +-------+-------+-------+-------+-------+-------+-------+------- ****************************************************************LOGGED 0000000 11111111 22222222 33333333 44444444ON @ TT: 1234567 01234567 01234567 01234567 01234567 6MAX MEM.=XXXK/YYYK   &        ~O v n b ` X Z '#Xu aPdw! 5eD w- ^@QGwXH d F 7  2  z )  7  z  r x ׭R׭Jw  l @  3 =. `Wp e P~ Е   , WЕ e*7  ʵÕ Õ*ʵÕPʵÕHȠ А -Е Е Е w--x-n4v~ d  LU J7 L b^Wt  WtЕKЕ/  7 .U`  m- XwR <7!5@*5*LNw! 7X.!.F m  7-7- 5 " ˁ 2!E~|| LR w!<7!7 7!^m(  w!wLN5*    PPm(7 7-@5@5@*X(D%Dw!7-x7-rF(  H BЕ ДДȕ 0 f    pM ~x fnCKm`  rX Z C HC r6 `Ce-*$ `@` Ce В  A ^A Xf    A  4A .  e@7!4e   e% e T !4   zeCe $  @`*~C Wt WtC`eNe WtЕ     r f  C~P C~ 7   % e   ”  ”  "  7 B w     b j   D  :Y = (e rBe G  H ~Cv   C  C ~ ~:   A ~ ~7w Ҕˋ%@e% B`ʔe@ˋ&@E K89 @ K WtB  R J l d `\ N J!s @`Е W W  6ȭ$ wFx 4hw 7 j $wWAR7 D Dw@ w4wf&5H B Ĕa~El.CpmCt`a 5 sA  *  + 23EL Ew    Е-   0@ rW e`fÊ    E  w 2 ť ť 0BBpAa & &  r(f  e ee e JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDECw ffE PЕ--ccePPPЕ-!w v  Е.E q sЕ:E   s Е  s e0e0P    &f 00x|Oxss;I%; [ 1 1 , 1 3 ] D E M O B L D . C M DD; ; BUILD FILE FOR THE DEMO TASK;/A[11,1]DEMO/MU/PR/-FP/-CP,[111,13]DEMO/CR/-SP=[11,13]LIB13/LB:DEMO5[11,17]EXECUTIVE.STB/SS,/Y;R; OUTPUT IS ON LUN 1 /;[ASG=TI:1;OSTACK=32LIBR=SYSRES:RO;S2; PRIORITY SHOULD BE HIGH FOR GOOD RESPONSE OR LOW7; FOR SMALLER SYSTEM LOAD. CHOICE IS LEFT TO THE USER.X;SPRI=246I;A9; THE TASK IS AN MCR TYPE TASK SO DEFINE ITS TASK NAME ASE; SUCH.U;B TASK=...DEMS; A; THE TASK EXTENSION DETERMINES THE MAXIMUM NUMBER OF TASKS WHICH C; CAN BE DISPLAYED AT ONCE. EACH TASK (FIXED, ACTIVE OR SGA) TAKES->; FIVE WORDS. THE DEFAULT VALUE ALLOWS FOR 64. TASKS. IF THE7; EXTENSION IS LESS THAN 32 DEMO WILL CRASH THE SYSTEM.; EXTTSK=320/SYSRES:RO;S2; PRIORITY SHOULD BE HIGH FOR GOOD RESPONSE OR LOW7; FOR SMALLER SYSTEM LOAD. CHOICE IS LEFT TO THE USER.X;SPRI=246I;A9; THE TASK IS AN MCR TYPE TASK SO DEFINE ITS TASK NAME ASE; SUCH.U;B TASK=...DEMS; A; THE TASK EXTENSION DETERMINES &DEVPAT/DA/PR/-CP/-FP,DEVPAT/-SP=DEVPATLB:[1,1]EXEC.STB/SS/PRI=240UNITS=0ACTFIL=0/#DEVPAT/PR/-CP/-FP,DEVPAT/-SP=DEVPATLB:[1,1]EXEC.STB/SS/PRI=240UNITS=0ACTFIL=0/;; PROGRAM DEVPAT.MAC6; TO OVERWRITE CODE IN SCOMM, ROUTINE $$FDEV TO ENABLE6; INDIVIDUAL REDIRECTION OF THE SY DEVICE FOR REALTIME3; AS WELL AS TIME-SHARING TASKS. THE DEFAULT DEVICE4; INFORMATION FOR NON-TCP CONTROLLED TASKS IS IN THE7; PUD FOR THE TI AT OFFSET U.LBH. IT IS THE PUD ADDRESS; OF THE DEFAULT DEVICE.;3; THE TI PUD WILL HAVE TO BE FILLED IN FOR THE TIME6; BEING BY A SEPARATE TASK (SDV), POTENTIALLY ALLOWING6; DIFFERENT DEFAULT DEVICES FOR TCP AND NON-TCP TASKS.9; THIS TASK SHOULD BE RUN AT HIGH PRIORITY DURING INITIAL 7; SYSTEM STARTUP TO PATCH EXEC. IF CONTEXT SWITCHING ISI5; THOUGHT TO BE A PROBLEM, CODE SHOULD BE MODIFIED TOR; INHIBIT TASK SWITCHING.C;F; FOR IAS VERSION 3.2 THE ..FDEV CODE HAS BEEN MOVED TO BE PART OF THED; EXEC AND IS NOT IN SCOMM. WE MUST THEREFORE DO THINGS DIFFERENTLY,E; MAPPING PAR/PDR3 TO THE PORTION OF THE EXEC IN QUESTION, AND MOVINGR; THINGS THAT WAYE;A; /PD4KRW=77406 ;A 4K READ/WRITE PAGE DESCRIPTOR :SCMSBS=25172 ;THE EXEC ADRESS OF THE EXEC MODULE SCMSBS,) ;(OBTAIN THIS FROM A MAP OF THE EXEC)X6SCMAP3=SCMSBS+40000 ;THIS MAPS TO SCMSBS VIA PAR/PDR31EXEPDA=206 ;VALUE OF PAGE ADDRESS REGISTER 1 ASI) ;OBTAINED FROM A CRASH OR FROM KERNALC ;LOCATION 172342/KNL .MCALL EXIT$S,CALLD; START: MOV #PD4KRW,-(SP) ;PUSH NEW PDR MOV #EXEPDA,-(SP) ;PUSH NEW PAR CALL ..SPD3 ;SWAP PAR/PDR 3E3 MOV #SCMAP3,R0 ;GET START ADDRESS OF SCMSBS MODULEW0 ADD #PATCH,R0 ;ADD THE OFFSET TO THE PATCH AREA* SUB #1000,R0 ;ACCOUNT FOR EFFECT OF STACK) MOV #PATCH,R1 ;GET ADDRESS OF PATCH CODEH" MOV #PATSIZ,R2 ;GET SIZE OF PATCH$ ASR R2 ;CONVERT TO NUMBER OF WORDS1$:;! MOV (R1)+,(R0)+ ;HEAD 'EM UP ANDI SOB R2,1$ ;MOVE 'EM OUTH EXIT$SK6 CODSIZ=.-START ;FIGURE HOME MUCH OFFSET DUE TO ABOVE;.PAGE;V;D9; TO ENABLE DEBUGGING, THE PC IS SET TO MATCH WHAT THE PC@; IS FOR ..FDEV FROM AN ORC LISTING. THIS WILL HAVE NO EFFECT ON?; THE PATCH, SINCE IT ONLY DOES RELATIVE (BRANCHING) ADDRESSINGRA; THIS LETS US EDI00*T OUT THE MAJOR PORTION OF THE (NOW IN EXEC NOT ; SCOMM) ROUTINE SCMSBS.;#3 .=.+1776 ;PC NOW EQUAL TO SCOMM ADDRESS OF ..FDEVM1 .=.-CODSIZ ;SUB CODSIZ TO ALLOW FOR ABOVE CODEN;=; SCMSBS OBJECT TO MACRO CONVERSION V01.1 20-MAY-85 14:01H .ENABLE LSB.$FDEV:: MOV R5,-(SP) MOV R4,-(SP) TST R0 BEQ 2072$. JSR PC,2266$ BCC 2260$C MOV A.TI(R0),R5N) BIT #,U.C1(R5)  BNE 2072$H ADD #U.LA,R52034$: MOV (R5),R5R BEQ 2072$. CMP L.LDN(R5),(SP) BNE 2034$C CMP L.LDU(R5),2(SP)A BNE 2034$S MOV L.PDN(R5),(SP) MOV L.PDU(R5),2(SP)L BR 2132$O2072$: MOV #$LABPT,R52076$: MOV (R5),R5  BEQ 2132$  CMP L.LDN(R5),(SP) BNE 2076$C CMP L.LDU(R5),2(SP)  BNE 2076$U MOV L.PDN(R5),(SP) MOV L.PDU(R5),2(SP)52132$: JSR PC,2266$ BCC 2260$. CMP (SP),#47524S BEQ 2154$4 CMP (SP),#44524, BNE 2162$ 2154$: MOV #1,R5  BR 2260$ 2162$: CMP (SP),#53117  BNE 2216$2 MOV A.TD(R0),R5: MOVB S.DI(R5),R5E BIC #177400,R5 MUL #U.SZ,R5 ADD .PUDBA,R5  BR 2260$ 2216$: MOV .PUDBA,R5 2222$: CMP U.DN(R5),(SP)  BNE 2240$P CMPB U.UN(R5),2(SP) BEQ 2260$ 2240$: ADD #U.SZ,R5 CMP R5,.PUDEA  BCS 2222$2 CMP (SP)+,(SP)+1 SEC  RTS PC2260$: CMP (SP)+,(SP)+S CLR R4 RTS PC2266$: CMP 2(SP),#54523  BNE 2342$E ; BIT #AF.IA,A.TF(R0); BEQ 2342$; TST A.JN(R0)  ;THIS IS THE PATCH ITSELFO& PATCH=. ;DEFINE START OF PATCH CODE$ MOV A.TI(R0),R4 ;GET TI PUD POINTER1 MOV U.LBH(R4),R5 ;GET DEFAULT DEVICE PUD ADDRESS, BNE 2336$ ;BRANCH IF DEF PUD ADDRESS THERE! BR 2342$ ;OTHERWISE LOOK FOR SY ) PATSIZ=.-PATCH ;CALC SIZE OF PATCH AREA :; THE REST OF THIS CODE IS NOT OVERWRITTEN, BUT IS HERE SO); BRANCH INSTRUCTION GET THE RIGHT VALUESS BEQ 2342$  MOV A.TI(R0),R4# MOV U.ACP(R4),R4 ADD #I.SY,R4 JSR PC,2354$ BEQ 2342$H52336$: CLC ;ADDED ADDRESS LABLE FOR SUCCESS RETURN  RTS PC 2342$: SEC  RTS PC.$PIAS::2346$: MOV R0,-(SP)C CLR R0P BR 2360$T.$GIAS::2354$: MOV R0,-(SP)K MOV SP,R022360$: CLR -(SP) ;END OF NECESSARY PART OF SCMSBS .END START IS NOT OVERWRITTEN, BUT IS HERE SO); BRANCH INSTRUCTION GET THE RIGHT VALUESS BEQ 2342$  MOV A.TI(R0),R4# MOV U.ACP(R4),R4 ADD #I.SY,R4 JSR PC,2354$ BEQ 2342$H52336$: CLC ;ADDED ADDRESS L;; PROGRAM DEVPAT.MAC6; TO OVERWRITE CODE IN SCOMM, ROUTINE $$FDEV TO ENABLE6; INDIVIDUAL REDIRECTION OF THE SY DEVICE FOR REALTIME3; AS WELL AS TIME-SHARING TASKS. THE DEFAULT DEVICE4; INFORMATION FOR NON-TCP CONTROLLED TASKS IS IN THE7; PUD FOR THE TI AT OFFSET U.LBH. IT IS THE PUD ADDRESS; OF THE DEFAULT DEVICE.;3; THE TI PUD WILL HAVE TO BE FILLED IN FOR THE TIME6; BEING BY A SEPARATE TASK (SDV), POTENTIALLY ALLOWING6; DIFFERENT DEFAULT DEVICES FOR TCP AND NON-TCP TASKS.9; THIS TASK SHOULD BE RUN AT HIGH PRIORITY DURING INITIAL 7; SYSTEM STARTUP TO PATCH EXEC. IF CONTEXT SWITCHING ISI5; THOUGHT TO BE A PROBLEM, CODE SHOULD BE MODIFIED TOR; INHIBIT TASK SWITCHING.C;F; FOR IAS VERSION 3.2 THE ..FDEV CODE HAS BEEN MOVED TO BE PART OF THED; EXEC AND IS NOT IN SCOMM. WE MUST THEREFORE DO THINGS DIFFERENTLY,E; MAPPING PAR/PDR3 TO THE PORTION OF THE EXEC IN QUESTION, AND MOVINGR; THINGS THAT WAYE;A; /PD4KRW=77406 ;A 4K READ/WRITE PAGE DESCRIPTOR :SCMSBS=25172 ;THE EXEC00x|Oxss ADRESS OF THE EXEC MODULE SCMSBS,) ;(OBTAIN THIS FROM A MAP OF THE EXEC)X6SCMAP3=SCMSBS+40000 ;THIS MAPS TO SCMSBS VIA PAR/PDR31EXEPDA=206 ;VALUE OF PAGE ADDRESS REGISTER 1 ASI) ;OBTAINED FROM A CRASH OR FROM KERNALC ;LOCATION 172342/KNL .MCALL EXIT$S,CALLD; START: MOV #PD4KRW,-(SP) ;PUSH NEW PDR MOV #EXEPDA,-(SP) ;PUSH NEW PAR CALL ..SPD3 ;SWAP PAR/PDR 3E3 MOV #SCMAP3,R0 ;GET START ADDRESS OF SCMSBS MODULEW0 ADD #PATCH,R0 ;ADD THE OFFSET TO THE PATCH AREA* SUB #1000,R0 ;ACCOUNT FOR EFFECT OF STACK) MOV #PATCH,R1 ;GET ADDRESS OF PATCH CODEH" MOV #PATSIZ,R2 ;GET SIZE OF PATCH$ ASR R2 ;CONVERT TO NUMBER OF WORDS1$:;! MOV (R1)+,(R0)+ ;HEAD 'EM UP ANDI SOB R2,1$ ;MOVE 'EM OUTH EXIT$SK6 CODSIZ=.-START ;FIGURE HOME MUCH OFFSET DUE TO ABOVE; R.PAGEV;D;W9; TO ENABLE DEBUGGING, THE PC IS SET TO MATCH WHAT THE PCL@; IS FOR ..FDEV FROM AN ORC LISTING. THIS WILL HAVE NO EFFECT ON?; THE PATCH, SINCE IT ONLY DOES RELATIVE (BRANCHING) ADDRESSINGA; THIS LETS US EDIT OUT THE MAJOR PORTION OF THE (NOW IN EXEC NOTR; SCOMM) ROUTINE SCMSBS.;S3 .=.+1776 ;PC NOW EQUAL TO SCOMM ADDRESS OF ..FDEV 1 .=.-CODSIZ ;SUB CODSIZ TO ALLOW FOR ABOVE CODE;B=; SCMSBS OBJECT TO MACRO CONVERSION V01.1 20-MAY-85 14:01 .ENABLE LSB.$FDEV:: MOV R5,-(SP) MOV R4,-(SP) TST R0 BEQ 2072$. JSR PC,2266$ BCC 2260$C MOV A.TI(R0),R5N) BIT #,U.C1(R5)  BNE 2072$H ADD #U.LA,R52034$: MOV (R5),R5R BEQ 2072$. CMP L.LDN(R5),(SP) BNE 2034$C CMP L.LDU(R5),2(SP)A BNE 2034$S MOV L.PDN(R5),(SP) MOV L.PDU(R5),2(SP)L BR 2132$O2072$: MOV #$LABPT,R52076$: MOV (R5),R5  BEQ 2132$  CMP L.LDN(R5),(SP) BNE 2076$C CMP L.LDU(R5),2(SP)  BNE 2076$U MOV L.PDN(R5),(SP) MOV L.PDU(R5),2(SP)52132$: JSR PC,2266$ BCC 2260$. CMP (SP),#47524S BEQ 2154$4 CMP (SP),#44524, BNE 2162$ 2154$: MOV #1,R5  BR 2260$ 2162$: CMP (SP),#53117  BNE 2216$2 MOV A.TD(R0),R5: MOVB S.DI(R5),R5E BIC #177400,R5 MUL #U.SZ,R5 ADD .PUDBA,R5  BR 2260$  2216$: MOV .PUDBA,R5 2222$: CMP U.DN(R5),(SP)  BNE 2240$2 CMPB U.UN(R5),2(SP) BEQ 2260$M2240$: ADD #U.SZ,R5 CMP R5,.PUDEAM BCS 2222$  CMP (SP)+,(SP)+O SEC RTS PC2260$: CMP (SP)+,(SP)+1 CLR R4 RTS PC2266$: CMP 2(SP),#54523B BNE 2342$ ; BIT #AF.IA,A.TF(R0); BEQ 2342$; TST A.JN(R0)R ;THIS IS THE PATCH ITSELFO& PATCH=. ;DEFINE START OF PATCH CODE$ MOV A.TI(R0),R4 ;GET TI PUD POINTER1 MOV U.LBH(R4),R5 ;GET DEFAULT DEVICE PUD ADDRESS, BNE 2336$ ;BRANCH IF DEF PUD ADDRESS THERE! BR 2342$ ;OTHERWISE LOOK FOR SY ) PATSIZ=.-PATCH ;CALC SIZE OF PATCH AREA :; THE REST OF THIS CODE IS NOT OVERWRITTEN, BUT IS HERE SO); BRANCH INSTRUCTION GET THE RIGHT VALUESS BEQ 2342$  MOV A.TI(R0),R4# MOV U.ACP(R4),R4 ADD #I.SY,R4 JSR PC,2354$ BEQ 2342$H52336$: CLC ;ADDED ADDRESS LABLE FOR SUCCESS RETURN  RTS PC 2342$: SEC  RTS PC.$PIAS::2346$: MOV R0,-(SP)C CLR R0P BR 2360$T.$GIAS::2354$: MOV R0,-(SP)K MOV SP,R022360$: CLR -(SP) ;END OF NECESSARY PART OF SCMSBS .END START IS NOT OVERWRITTEN, BUT IS HERE SO); BRANCH INSTRUCTION GET THE RIGHT VALUESS BEQ 2342$  MOV A.TI(R0),R4# MOV U.ACP(R4),R4 ADD #I.SY,R4 JSR PC,2354$ BEQ 2342$H52336$: CLC ;ADD00*`(U];DIALSR IS A PROGRAM DESIGNED TO BE RUN ONCE/MINUTE TO SERVICE;DIAL UP LINES ON THE SYSTEM:;F;ON INITIAL RUN, IT WILL POLL THE PUD TABLE AND SAVE THE PUD ADDRESSES(;OF TERMINALS WITH DIALUP LINES ATTACHED;';FOR EACH SUBSEQUENT EXECUTION IT WILL:;.;A/ CHECK LOGGED ON BIT IN PUD. IF LOGGED ON:;H;B/ TRY TO OUTPUT A NULL CHARACTER (WITH NO CARRIAGE CONTROL CHARACTERS)J; IF STATUS RETURN IS IE.DNR (DEVICE NOT READY, IMPLYING PERSON ON OTHER!; END OF PHONE HUNG UP, HE WILLI;R@;C/ RUN ...BYE AT THAT TERMINAL, TO CLOSE OUT THEIR LOGGING FILE;;;D6 .MCALL QIO$,QIOW$,MRKT$,STSE$,SPWN$,DIR$,WTSE$,CMKT$ .MCALL TTSYM$ TTSYM$ DEF$GT P.SBTTL ONE TIME ONLY CODE ;;THIS CODE EXECUTES ONCE TO FIND DIALUP LINES ON THE SYSTEMN>;IT WILL STORE (A MAXIMUM OF 8.) PUD POINTERS FOR DIALUP LINES;'DIAL: MOV .PUDBA,R0 ;POINT TO FIRST PUDN MOV .PUDEA,R1 ;AND END OF PUD# MOV .CRTSK,R2 ;GET MY ATL ADDRESSE* MOV A.TI(R2),MYTI ;SAVE MY TI PUD POINTER CLR R4 ;CLEAR COUNTERL# MOV #PUDSAV,R5 ;POINT TO SAVE AREAA CHKPUD: CMP (R0),#"TT ;A TT PUD? BNE NEXT ;NO TSTB U.UN(R0) ;TT0? BEQ NEXT ;IF YES, SKIP& MOV R0,A.TI(R2) ;CHANGE ME TO THIS TI& DIR$ #GETDIA ;IS HE A DIAL-UP LINE ?( MOV MYTI,A.TI(R2) ;PUR ME BACK AT MY TI$ TST IOSB+2 ;IF TRUE, THEN NON-ZERO BEQ NEXT ;NO CMP R4,#10 ;TOO MANY LINES BGT NEXT ;YEST# MOV R0,(R5)+ ;OK, SAVE PUD POINTER $ INC R4 ;COUNT ONE PUD POITER SAVED$NEXT: ADD #U.SZ,R0 ;BUMP TO NEXT PUD CMP R0,R1 ;PAST END?, BLO CHKPUD ;IF STILL IN PUD AREA, GO AGAIN/ MOV MYTI,A.TI(R2) ;PUT ME BACK AT MY NORMAL TIX1 MOV R4,NUMDIA ;SAVE NUMBER OF DIALUP LINES FOUNDK .SBTTL MAIN CHECKING LOOP ;ALWAY HAVED;R2 - MY ATL NODE ;I;AS RESULT OF INTO CODE.;R";MYTI: MY ORIGINAL TI PUD POINTER%;NUMDIA: NUMBER OF DIALUP LINES FOUND;8;PUDSAV: ROOM FOR UP TO 10 PUD POINTERS FOR DIALUP LINES;R)CHECK: MOV #PUDSAV,R0 ;POINT TO SAVE AREA ( MOV NUMDIA,R1 ;NUMBER OF LINES TO CHECK2LOOP: MOV (R0)+,R5 ;GET TERMINAL PUD ADDRESS IN R5& BITB #UT.LG,U.TF(R5) ;IS HE LOGGED ON BEQ NOTBAD ;NO, SKIP IT  TST U.AF(R5) ;IS HE ATTACHED?5 BNE NOTBAD ;IF SO, HE HAS A TASK ACTIVE, SO SKIP ITH0 MOV R5,A.TI(R2) ;CHANGE MY PUD POINTER TO MATCH8 DIR$ #FULDUP ;SET TO FULL DUPLES SO NO REPROMPTS OCCUR' CLR IOSB ;CLEAR RETURNED STATUS OF IO DIR$ #ONECHR ;TRY A NULL WRITE! DIR$ #MARK10 ;AND WAIT 10 TICKS DIR$ #WAIT1 ;WAIT FOR EVENTS, MOV IOSB,-(SP) ;SAVE IOSB AS RESULT OF READ* DIR$ #RESFUL ;UNDO FULL DUPLEX CONDITION. MOV (SP)+,IOSB ;RESTORE IOSB RETURN FROM READ- ;WHEN WE WAKE UP, COULD HAVE TIMED OUT IF5& ;SOME TASK HAD IO PENDING HERE, SO TST IOSB ;DID IO FINISH? BNE 1$ ;SKIP IF IT DID. DIR$ #CANONE ;CANCLE ABOVE READ IF IT DIDN'T*1$: CMPB IOSB,#IE.DNR ;IS DEVICE NOT READY BNE NOTBAD ;ITS OK2 MOV U.UI(R5),UICSAV ;SAVE THE UIC BEFORE BYE RUNS6 DIR$ #SPWBYE ;HE HUMG UP WITHOUT SIGNIN OFF, RUN BYE% DIR$ #WAIT1 ;WAIT FOR BYE TO FINISHA" MOVB U.UN(R5),R5 ;GET UNIT NUMBER CLR R4 ;SET FOR 2-REG DIVIDE+ DIV #10,R4 ;REMAINDER (LOWER DIGIT) IN R5 ! ;QUOTIENT (UPPER DIGIT) IN R4O BIS #60,R4 ;CONVER TO ASCIIE% MOVB R4,HNGPTR ;PUT IN ASCII MESSAGES BIS #60,R5 ;CONVERT TO ASCII! MOVB R5,HNGPTR+1 ;PUT IN MESSAGEI MOV R0,-(SP)M MOV R1,-(SP) MOV R2,-(SP)R# MOVB UICSAV+1,R1 ;GET GROUP NUMBER($ MOV #HNGGRO,R0 ;POINT TO ASCII LINE+ MOV #1,R2 ;SHOW DON'T SUPRESS LEADING 0'S - JSR PC,$CBTMG ;CONVERT GROUP NUMBER TO ASCIIN MOVB UICSAV,R1 ;GET USER NUMBER$ MOV #HNGUSE,R0 ;POINT TO ASCII LINE, JSR PC,$CBTMG ;CONVERT USER NUMBER TO ASCII MOV (SP)+,R2 MOV (SP)+,R1N MOV (SP)+,R0R* MOV MYTI,A.TI(R2) ;RESTORE MY PUD POINTER& DIR$ #REPHNG ;REPORT LINE SIGNED OFF=NOTBAD: MOV MYTI,A.TI(R2) ;RESTORE MY PUD POINTER IN ANY CASEM! DEC R1 ;COUNT ONE LINE SERVICED & BEQ WAIT ;DO NOE MINUTE WAIT IF DONE JMP LOOP ;ELSE DO AGAINE6WAIT: DIR$ #CANCEL ;CANCEL ANY OUTSTANDING MARK TIMES DIR$ #MARK ;DO ONE MINUTE WAIT DIR$ #STOP1 ;DO STOP FOR IT  JMP CHECK ;AND CHECK AGA00*IN !.SBTTL DIRECTIVE PARAMETER BLOCKS ;R;M$;QIO TO GET TERMINAL CHARACTERISTICSFGETDIA: QIOW$ SF.GSC,1,1,,IOSB,, ;DIAL UP LINE (RET IN IOSB+2);R;SET TO FULL DUPLEXI>FULDUP: QIOW$ SF.SSC,1,1,,IOSB,, ;SET TO FULL DUPLEX;C7;DO ONE CHARACTER WRITE (A NULL) WITH NULL CARR CONTROLN0ONECHR: QIO$ IO.WLB,1,1,,IOSB,,NULPTR: .WORD 0C NULLEN=1 ; ;THEN RESET FULL DUPLEXD)RESFUL: QIO$ SF.SSC,1,1,,IOSB,,1;D:;QIO TO KILL ABOVE READ IF TERM ATTACHED OR SOMETHING ELSECANONE: QIOW$ IO.KIL,1,1;";QIO TO REPORT LINE HUNG UP TO TI:2REPHNG: QIOW$ IO.WVB,1,1,,IOSB,,; ;E;STOP FOR EVENT FLAG 1STOP1: STSE$ 1;;WAIT FOR EVENT FLAG 1WAIT1: WTSE$ 1;;;MARK TIME FOR 10 TICKSDMARK10: MRKT$ 1,10,1;N;MARK TIME FOR ONE MINUTENMARK: MRKT$ 1,1,3L;,;CANCEL MARK TIME REQUESTS CANCEL: CMKT$C;N ;SPAWN ...BYET;SPWBYE: SPWN$ ...BYE,,,1,1 ;SPAWN ...BYE WITH DEF PART, PRIX;1 D.SBTTL DATA AREASE!IOSB: .WORD 0,0 ;IO STATUS BLOCK MYTI: .WORD 0 ;SAVE MY TI HERE.NUMDIA: .WORD 0 ;NUMBER OF DIALUP LINES FOUND-UICSAV: .WORD 0 ;SAVE UIC BEFORE CALLING BYEE0PUDSAV: .BLKW 10 ;ROOM FOR 10 (8.) PUD POINTERS;O*HNGMES: .ASCII /*** USER LOGGED OFF AT TT/HNGPTR: .ASCII /00: UIC=[/HNGGRO: .ASCII /000,/IHNGUSE: .ASCII /000] ***/R HNGLEN=.-HNGMES .EVEN .END DIALESTS CANCEL: CMKT$C;N ;SPAWN ...BYET;SPWBYE: SPWN$ ...BYE,,,1,1 ;SPAWN ...BYE WITH DEF PART, PRIX;1 D.SBTTL DATA AREASE!IOSB: .WORD 0,0 ;IOziKD%{"H%{!H}8Ha}9Hj}xH}xH*H ~pH}xHt*sH<HH},H< HIzlHlH>{Ht*rHH}=Hh}D;H ~sH ~sH}H&}HZz ~sH}`H` ~H}4H ~H<HvHwvH ~sHb H A{0H lH ~$H@5^H5fH zt*bH@uVYH}yHW}H;E{H?{pHt*H5ٱH w+H}pH} HD$9B@5$HlH55Hz}8}H%<_Ht*zHk |H?{pH ~:H}qH[?{Ht*GHw:dHW@}H H>5QH}UqH6}V}H9z}]}HA}c}H@*@wH?{@H} HX}!H }H<}Hg*wH }H=}H: ~HlH ~ۑH*@,Hz%@}|H wH<15>/Password>/ PWDLEN=.-PWDPRM;I;E(BADPWD: .ASCII /HEL -- Illegal Password/ BADPWL=.-BADPWD; ;O$NAMPRM: .ASCII <12><15>/User Name> / NAMLEN=.-NAMPRM;; $SYNBAD: .ASCII /HEL -- Syntax Error/ SYNBAL=.-SYNBAD .EVEN;O;V'READBA: .ASCII /HEL -- Logon Disabled/E READBL=.-READBA .EVEN;I;L2 ;DIRECTIVE TO REPORT DIRECTORY ENTRY READ FAILURE4RDFDIR: QIOW$ IO.WVB,5,1,,IOSTAT,,;E$;ASCII MESSAGE FOR DIRECTIVE FAILURE)DIRBAD: .ASCII /HEL -- Directive Failure/< DIRBAL=.-DIRBAD .EVEN-NODIR: .ASCII /HEL -- Non Existent User Name/P NODIRL=.-NODIR=;TABLE OF DAY NAMESPCdaytab: .ASCII /Sunday Monday Tuesday Wednesday Thursday /A .ASCII /Friday Saturday / .EVEN .EVEN;N;O5 ;DIRECTIVE TO REPORT FAILURE OF SOME OTHER DIRECTIVE=4DFADIR: QIOW$ IO.WVB,5,1,,IOSTAT,,; ;R);DIRECTIVE TO REPORT NON-EXISTENT ACCOUNTO3DIRDPB: QIOW$ IO.WVB,5,1,,IOSTAT,,C;E;I3;DIRECTIVE TO PUT OUT STANDARD 2-LINE SYSTEM HEADERR4MSGDIR: QIOW$ IO.WVB,5,1,,IOSTAT,,;U; ' ;DIRECTIVE TO ISSUE 'PASSWORD>' PROMPTALPWDDIR: QIOW$ IO.RPR!TF.TMO!TF.RNE,5,1,,IOSTAT,,;I;F" ;DIRECTIVE TO REPORT SYNTAX ERROR4SYNDIR: QIOW$ IO.WVB,5,1,,IOSTAT,,;E;V$ ;DIRECTIVE TO REPORT WRONG PASSWORD4ILLDIR: QIOW$ IO.WVB,5,1,,IOSTAT,,;T; + ;DIRECTIVE TO READ USER NAME (WITH PROMPT)NEUSNDIR: QIOW$ IO.RPR!TF.TMO,5,1,,IOSTAT,,H;E;TABLE OF ASCII MONTHS5MONTAB: .ASCII /JanFebMarAprMayJunJulAugSepOctNovDec/O;S;DIRECTIVE TO GET SYSTEM TIME GETTIM: GTIM$ TIMBUF*REQMCR: RQST$ ...MCR ;TRY T00ʄx|OxssO GET MCR BACK .IF NDF IASV3REQBYE: RQST$ ...BYE .ENDCONEONE: .ASCII /[1,1]/ ONELEN=.-ONEONE .EVENONEHUN: .ASCII /[1,100]/ HUNLEN=.-ONEHUN .EVEN ;IN PDSUPF FILE.PAGEO.SBTTL IMPURE STORAGE AREA .PSECT PDSBUF: .BLKB 200 ;PDS RECORD$ ;ALSO USED FOR GENERAL IO THINGS FSRSZ$ 1,/FDB: FDBDF$ ;DEFINE FDB FOR USER PROFILE FILEI FDOP$A 4,,PDSDFN,FO.RD ;SET LUN FDAT$A R.FIX,,100 FDRC$A FD.RAN,PDSBUF,100TPDSDFN: NMBLK$ PDSUPF,DAT AUTFDB: FDBDF$ ;DEFINE FDB FDOP$A 4,,AUTDFN,FO.RD ;SET LUN FDAT$A R.VAR,,100 FDRC$A ,PDSBUFCAUTDFN: NMBLK$ AUTOSTART,DAT5TIMBUF: .BLKW 8. ;BUFFER TO RECEIVE SYSTEM TIME INFO=%DATSET: .WORD 0 ;DATA SET DESCRIPTORP .WORD 0'UICSIZ: .WORD 0 ;UIC DESCRIPTOR (SIZE) #UICSTA: .WORD 0 ;AND START ADDRESSD' .WORD 0 ;DEFAULT FILE NAME DESCRIPTORF .WORD 0 .BLKW 37R50USN: .BLKW 4 ;SLOT TO STORE RAD50 USER NAME READ IN'R50PWD: .BLKW 2 ;LIKEWISE FOR PASSWORD,(UIC: .WORD 0 ;OCTAL VALUE OF UIC STRING2MODULO: .WORD 0 ;MODULO OF UIC STRING (8. OR 10.)*PRIFLA: .WORD 0 ;FLAG FOR PRIVILEDGED UICIOSTAT: .BLKW 4S,DFDEV: .WORD 0 ;DEFAULT DEVICE ASCII STRING-DFUNIT: .WORD 0 ;DEFAULT UNIT NUMBER (OCTAL)D$ERRFLG: .WORD 0 ;ERROR FLAG FOR FCS7ONEFLG: .WORD 0 ;FLAG FOR [1,1]HELLO.LOG ALREADY TRIEDR9FCCFLG: .WORD 0 ;FLAG THAT FILE HAS FORTRAN CARR CONTROL.>FIRSTU: .WORD 0 ;RECORD NUMBER OF FIRST USER REOCRD IN PDSUPF GMCR: GMCR$K; ';QIO DPB TO WRITE HELLO.LOG FILE TO TI:O/XFRDPB: QIOW$ IO.WVB,5,1,,IOSTAT,,O .IF DF IASV3(SPWDIR: SPWN$ ...BYE,,,,,2 .IFFFMCDIR: QIO$ IO.WVB,2,,,,,<0,0> .ENDC;:9;STANDARD HEADER MESSAGE HERE CAUSE WE WRITE TIME INTO ITEBMSGONE: .ASCII <12><15>/Radiation Therapy Computer System/<12><15>-MSGTWO: .ASCII / /  MSGLEN=.-MSGONE .EVEN<NAMBLK: NMBLK$ HELLO,LOG ;DEFINE FILE NAME FOR MESSAGE FILE.PAGEM".SBTTL START OF ACTIVE (PURE) CODE .PSECT PURE<SYNJMP: JMP SYNERR ;BRANCH AID NEEDED BECAUSE OF ADDED CODE*START: MOV .CRTSK,R0 ;MY ATL POINTER IN R0# MOV PS.EXP,-(SP) ;SAVE OLD STATUSF5 BIS #140,PS.EXP ;DISABLE TSK SW SO ATL NOT RELINKEDR" MOV .ATLLH,R1 ;START OF ATL IN R1-1$: MOV (R1),R1 ;GET NEXT OR FIRST ATL ENTRYo CMP R0,R1 ;IS THIS ME/ BEQ 1$ ;SKIP IF IT IS/) CMP R1,.ATLLH+2 ;OR ARE WE THROUGH ATL ?S BEQ 2$ ;YES CAN SAFELY RUN3 CMP A.TD(R0),A.TD(R1) ;NO IS THIS ANOTHER ...HEL ? BNE 1$ ;NO, CMP A.TI(R0),A.TI(R1) ;YES IS TI THE SAME ? BNE 1$ ;NO TRY AGAIN, JSR PC,..ENB0 ;NOW RE-ENABLE TASK SWITCHING2 JMP SCRAM ;HEL ALREADY ACTIVE SO SCRAM RIGHT NOW92$: JSR PC,..ENB0 ;NO OTHER HEL, RE-ENABLE TASK SWITCHINGL JSR PC,.FINIT ;INIT FSR AREAF MOV A.TI(R0),R0 ;TI PUD -> R0 MOVB U.UN(R0),R3 ;UNIT # -> R3R' MUL #20.,R3 ;OFFSET INTO COMMON -> R3I ADD #HELBYE,R3 ;ADD IN BASE( TST (R3) ;ANYONE PREVIOUSLY LOGGED IN? BEQ 4$ ;IF NOT, BRANCH .IF DF IASV3A% DIR$ #SPWDIR ;IF SO, REQUEST ...BYET# WTSE$S #2 ;WAIT FOR BYE TO FINISH .IFF  DIR$ #REQBYE ;REQUEST ...BYE)3$: MRKT$S #2,#15.,#1 ;WAIT FOR 15. TICKSH WTSE$S #2 TST (R3) ;IS BYE DONE YET? BNE 3$ ;IF NOT, GO WAIT AGAINN .ENDC4$:T# .SBTTL OUTPUT STANDARD HEADER LINEFDOMKT:# MOV #ONEHUN,R2 ;SET UP ADDRESS ANDR* MOV #HUNLEN,R1 ;LEN FOR DEFAULT DIRECTORY JSR PC,.WDFDR ;AND WRITE IT DIR$ #GETTIM ;GET SYSTEM TIMEN- MOV #MSGTWO,R0 ;POINT TO ASCII OUTPUT BUFFERR% MOV #TIMBUF,R1 ;POINT TO TIME BUFFERF JSR PC,DAYOFW ;CALC DAY OF WEEK MUL #10.,R1 ;MAKE R1 OFFSET $ ADD #DAYTAB,R1 ;INT ASCII DAY TABLE MOV #10.,R2 ;COUNTER+111$: MOVB (R1)+,(R0)+ ;FILL IN DAY OF WEEKE SOB R2,111$! CLR R2 ;SUPPRESS LEADING ZEROESN MOV TIMBUF+4,R1 ;GET DAY IN R1 JSR PC,$CBDMG ;CONVERT TO ASCII MOVB #'-,(R0)+ ;INSERT A "-"#! MOV TIMBUF+2,R1 ;GET MONTH IN R1Y DEC R1 ;ADJUST TO BASE 0% MUL #3,R1 ;CONVERT TO 3-BYTE OFFSETM( ADD #MONTAB,R1 ;ADD BASE OF MONTH TABLE# MOVB (R1)+,(R0)+ ;XFR 3-CHAR MONTHF MOVB (R1)+,(R0)+W MOVB (R1)+,(R0)+ MOVB #'-,(R0)+ ;INSERT A "-"! CLR R2 ;SUPPRESS LEADING ZEROESE MOV TIMBUF,R1 ;NOW GET YEAR JSR PC,00„ĄńȄ*$CBDMG ;CONVERT TO ASCII INC R0 ;SKIP OVER A SPACE ) MOV #3,R4 ;SET TO LOOP FOR HOUR,MIN,SEC1 MOV #TIMBUF+6,R5J11$: MOV (R5)+,R1 ;NUMBER IN R1M CMP R1,#10. ;2-DIGIT NUMBER ?V BGE 12$ ;SKIP IF IT IS* MOVB #'0,(R0)+ ;PUT IN A '0' SO IT'S NEAT$12$: JSR PC,$CBDMG ;CONVERT TO ASCII MOVB #':,(R0)+ ;INSERT A ":"E SOB R4,11$ ;LOOP FOR 3 TIMES MOVB #' ,-(R0) ;ERASE LAST ":" " DIR$ #MSGDIR ;OUTPUT HEADER LINE .PAGE .SBTTL DO SIGN ON DIALOGG;R; START OF DIALOG1;ODIALOG:R" DIR$ #GMCR ;GET MCR COMMAND LINE! MOV @#$DSW,R4 ;LEN OF LINE -> R4#! BMI 3$ ;IF NOT THERE, GO PROMPT1# MOV #GMCR+G.MCRB,R3 ;ADDRESS -> R3R1$: MOVB (R3)+,R2 ;NOW LOOK FOR2 CMPB R2,#40 ;SPACE OR$ BEQ 2$ ;TABS CMPB R2,#11 ;IF FOUND, BEQ 2$ ;GO CHECK SOB R4,1$ ;D BR 3$ ;IF NO DELIMITER, PROMPT-2$: DEC R4 ;KNOCK OFF COUNT FOR SPACE OR TABM, BGT 4$ ;IF WE STILL HAVE SOMETHING, BRANCH 3$: DIR$ #USNDIR ;GET USER NAME& MOV #PDSBUF,R3 ;ADDRESS OF LINE -> R3 MOV IOSTAT+2,R4 ;LEN -> R4D CMP R4,#1 ;IF NOTHING THEREE BGE 4$ ;scram; JMP SCRAM ;R&4$: JSR PC,SKIP ;FIND FIRST NON-BLANK* JSR PC,CONVT ;CONVERT POSSIBLE LOWER CASE7 MOV #R50USN,R0 ;START OF SLOT TO STORE RAD50 USER NAMEQ MOV #4,R1 ;# OF WORDS -> R1O5$: CLR (R0)+ ;CLEAR IT OUT SOB R1,5$& MOV #4,-(SP) ;COUNT OF WORDS ON STACK$ MOV #R50USN,R5 ;ADDRESS AGAIN -> R5( MOV R3,R0 ;ADDRESS OF INPUT TEXT -> R0&6$: CLR R1 ;NO PERIODS TO BE INCLUDED" JSR PC,$CAT5 ;CONVERT 1ST 3 CHARS MOV R1,(R5)+ ;SAVE IT% BCS 7$ ;IF TERMINATED EARLY, BRANCHR MOV R0,R3 ;UPDATE OUT TEXT PTR SUB #3,R4 ;AND REMAINING COUNT! BLE 7$ ;IF NOTHING LEFT, BRANCHS$ DEC (SP) ;DECREMENT COUNT ON STACK( BGT 6$ ;IF STILL PLUS, GO AROUND AGAIN MOVB (R3)+,R2 ;NEXT CHAR -> R2L# DEC R4 ;DECREMENT REMAINING COUNTM BR 8$&7$: SUB R0,R4 ;UPDATE REMAINING COUNT ADD R3,R4$ MOV R0,R3 ;AND PTR TO REST OF LINE$8$: TST (SP)+ ;POP COUNTER ON STACK CMPB R2,#40 ;LOOK FOR NEXT BEQ 9$ ;ENTRY - DELIMITEDM CMPB R2,#11 ;BY SPACE OR BNE 10$ ;TAB&9$: TST R4 ;IF STILL SOMETHING THERE, BGT 11$ ;USE IT,.10$: CLR PDSBUF ;CLEAR OUT CAUSE IF USER NAME+ CLR PDSBUF+2 ;IS LONGER THAN PASSWORD, OLDS+ CLR PDSBUF+4 ;USER NAME SCREWS UP PASSWORDN( DIR$ #PWDDIR ;ELSE PROMPT FOR PASSWORD# MOV #PDSBUF,R3 ;AND SET UP ADDRESS$, MOV IOSTAT+2,R4 ;AND LEN OF PASSWORD STRING CMP R4,#1 ;SOMETHING THERE ? BGE 11$ ;BR IF YES JMP SCRAM ;ELSE QUIT&11$: JSR PC,SKIP ;SKIP LEADING BLANKS* JSR PC,CONVT ;CONVERT POSSIBLE LOWER CASE0 CLR R50PWD ;CLEAR OUT SPACE FOR RAD50 PASSWORD CLR R50PWD+2( MOV R3,R0 ;SET UP FOR RAD50 CONVERSION CLR R1 ;NO PERIODS!E JSR PC,$CAT5 ;DO CONVERSION) MOV R1,R50PWD ;PUT IN 1ST PART OF RESULTS# BCS 12$ ;IF ENDED ALREADY, BRANCHL CLR R1 " JSR PC,$CAT5 ;CONVERT SECOND HALF! MOV R1,R50PWD+2 ;AND PUT IT AWAYN12$: .PAGE1 .SBTTL ACCESS USER PROFILE FILE & CHECK PASSWORD$;B; FINISHED DIALOGM; NOW ACCESS PDSUPFR;,PDSACC:I OPEN$ #FDB ;OPEN UP PDSUPF.DAT BCC 9$ ;IF OK, BRANCHE) JMP REAFAI ;ELSE PRINT NO LOGIN MESSAGEA19$: GET$R ,,,#1 ;GET FIRST RECORD OF PDSUPF FILE54 MOV PDSBUF,FIRSTU ;SAVE RECORD NUMBER OF FIRST USER1 MOV #2,R1 ;RECORD NUMBER OF START OF NAME TABLES04$: GET$R ,,,R1 ;GET RECORD WITH RECORD # -> R1 MOV R0,-(SP) ;SAVE FDB PTRC( MOV #PDSBUF,R3 ;ADDRESS OF RECORD -> R3 MOV #10,R2 ;COUNT -> R2C)3$: MOV #4,R0 ;# OF WORDS TO CHECK -> R0B2 MOV #R50USN,R4 ;ADDRESS OF READ-IN PASSWORD -> R41 MOV R3,R5 ;START OF USER NAME FROM PDSUPF -> R5F(1$: CMP (R5)+,(R4)+ ;CHECK ON ON DISK VS BNE 2$ ;ONE WE READ$ SOB R0,1$$ BR 5$ ;IF MATCH, FOUND IT (BRANCH)$2$: ADD #10,R3 ;OFFSET TO NEXT NAME SOB R2,3$ ;AND KEEP SEARCHINGB INC R1 ;IF NOT IN THIS RECORD, MOV (SP)+,R0 ;TRY ANOTHER' CMP R1,FIRSTU ;UNTIL END OF USER NAMEST BLT 4$# JMP DIRFAI ;ELSE NO SUCH USER3>5$: SUB #2,R1 ;MAKE REC # RELATIVE TO FIRST NAME TABLE RECORD. ASH #3,R1 ;CONVERT TO A RELATIVE USER NUMBER- ADD FIRSTU,R1 ;ADD IN REC # OF FIRST PROFILER NEG R2 ;CALC POSITION WITHIN% ADD #10,R00ʄx|Oxss2 ;RECORD AND ADD TO REC #N ADD R2,R1 ;FOR PROFILE. % GET$R (SP)+,,,R1 ;GET PROFILE RECORDD% CLOSE$ ;THAT'S ALL FOR PDSUPF.DAT!,3 MOV PDSBUF+12,R2 ;COM OF PASSWORD -> R2 (1ST PART)C+ XOR R2,R50PWD ;EXCLUSIVE OR (SHOULD BE -1)S INC R50PWD ;SO MAKE ZERO BNE 6$ ;IF NOT, BAD PASSWORD+ MOV PDSBUF+14,R2 ;SECOND HALF OF PWD -> R2T% XOR R2,R50PWD+2 ;DO SAME THING AGAIN, INC R50PWD+2  BEQ 7$E'6$: JMP ILLPWD ;GO REPORT BAD PASSWORD# .PAGE" .SBTTL WRITE START TIME IN HELBYE .SBTTL RESET DEFAULT DEVICE& .SBTTL SET HOSTILE & PRIVILEGED FLAGS; ; PASSWORD CHECKED OKT;O7$: MOV PDSBUF+10,UIC ;SAVE UICL- CMPB UIC+1,#10 ;CHECK FOR PRIVILEGED ACCOUNTA BHI 8$ ;IF NOT, BRANCH& BIS #UT.PR,PRIFLA ;ELSE SET PRIVILEGE8$:*PWDOK: MOV .CRTSK,R5 ;GET MY ATL INDICATOR% MOV A.TI(R5),R5 ;GET MY TI INDICATORN$ MOV UIC,U.UI(R5) ;NEW UIC TO TI PUD .IF DF IASV3 & MOV UIC,SPWDIR+S.PWPC ;SET PROPER UIC .ENDC' BIS #UT.LG,U.TF(R5) ;SAY I'M LOGGED ONTB MOV U.DACP(R5),REQMCR+R.QSTN+2 ;CHANGE MCR REQUEST TO CORRECT CLI8 BIC #UT.PR!UT.HO,U.TF(R5) ;CLEAR PRIV. AND HOSTILE BITS= BIS PRIFLA,U.TF(R5) ;MAKE ME PRIVILEDGED ONLY IF GROUP <= 10FB MOV PDSBUF+20,U.LBN(R5) ;PUT PDS PRIVILEDGE IN PUD FOR MCR ACCESS9 BIT #PR.RTC,U.LBN(R5) ;OVER-RIDE PRIVILEGED BIT BY UIC ?L BEQ 112$ ;NO BIS #UT.PR,U.TF(R5) ;YESI3112$: BIT #PR.MCR,U.LBN(R5) ;SHOULD HE BE HOSTILE ?  BNE 111$ ;NO$ BIS #10,U.TF(R5) ;YES, MAKE HOSTILE$111$: MOVB U.UN(R5),R3 ;UNIT # -> R3 MUL #20.,R3 ;SLOT OFFSET -> R33 ADD #HELBYE,R3 ;NOW POINTING TO OUR SLOT IN COMMONT% MOV #TIMBUF,R0 ;POINT TO TIME PARAMSI! MOV #10,R2 ;10(8) WORDS TO XFERR2$: MOV (R0)+,(R3)+ ;DO IT SOB R2,2$" MOV R1,(R3)+ ;RECORD # FOR PDSUPF .PAGE# .SBTTL FILL IN DEFAULT DEVICE INFO);V+; ADDED CODE TO SUPPORT DEFAULT DEVICE INFO;" MOV R5,-(SP) ;SAVE TI PUD POINTER5 MOV PDSBUF+50,DFDEV ;STORE DEFAULT DEVICE ASCII NAME141$: MOVB PDSBUF+52,DFUNIT ;STORE DEFAULT UNIT NUMBER. BIC #60,DFUNIT ;CHANGE IT FROM ASCII TO OCTAL-RECHK: MOV .PUDBA,R5 ;FIRST PUD ADDRESS -> R5 /CKPUD: CMP (R5),DFDEV ;ASCII DEVICE NAME SAME ?  BEQ 333$ ;BR IF THE SAME222$: JMP NOMAT ;ELSE AN ERROR),333$: CMPB 2(R5),DFUNIT ;UNIT NUMBERS SAME ? BNE 222$ ;BR IF NOTE4 JSR PC,..REDT ;FOUND PUD, GO THROUGH REDIRECT CHAIN) ;TO BE COMPATIBLE WITH REESE VERS 6.2,, ;IF SY: IS REDIRECTED TO ITSELF, REPLACE ;IT BY DP:0 CMP (R5),#"SY ;IS IT STILL SY: AFTER REDIRECT ? BNE 444$T3 MOV #"SD,DFDEV ;CHANGE ASCII DEFAULT DEVICE TO DP:O0 CLR DFUNIT ;A PSEUDO COULD BE REDIRECTED TO SY# BR RECHK ;AND DO PUD SEARCH AGAINV#444$: MOV R5,R0 ;PUD POINTER -> R0H% MOV (SP)+,R5 ;RESTORE TI PUD POINTER)9 MOV R0,U.LBH(R5) ;STORE DF DEV PUD POINTER IN TI PUD FOR; JMP DOHEL ;GUY NOW LOGGING ON ;,; .NOMAT: ADD #U.SZ,R5 ;BUMP R5 TO NEXT PUD ENTRY CMP R5,.PUDEA ;AT END OF PUD ?S1 BHIS NODFDV ;DIDN'T FIND PUD, USE SY AS DEFAULTP) JMP CKPUD ;ANOTHER PUD EXISTS, CHECK IT?0NODFDV: ;NO DEFAULT DEVICE, OR COULDN'T FIND PUD, MOV #"SD,DFDEV ;CHANGE DEFAULT DEVICE TO SD# CLR DFUNIT ;AND CLEAR UNIT NUMBER JMP RECHK ;AND LOOK FOR SY PUD.PAGEU.SBTTL OUTPUT HELLO.LOG FILE(S)R;O;TG;FIRST TRY TO TRANSFER FILE NAMED 'HELLO.LOG' (UNDER [1,1]) TO TERMINAL;;J.DOHEL: MOV #FDB,R0 ;SET UP R0 FOR FILE ACCESS1 MOV #ONEONE,R2 ;POINT R2 TO '[1,1]' ASCII STRINGD' MOV #ONELEN,R1 ;LENGTH OF STRING -> R1'+ JSR PC,.WDFDR ;RESET DEFAULT UIC DIRECTORYA- FDAT$R ,#R.VAR,#FD.CR ;RESET FILE ATTRIBUTESL< FDRC$R ,#0,#PDSBUF,#80. ;CLEAR RANDOM ACCESS FILE ATTRIBUTEAREGO: FDOP$R ,#4,,#NAMBLK,#FO.RD ;OPEN BY DEFAULT FILE NAME BLOCKA7 OPEN$R ,#4,,,,,ERR ;OPEN FILE, IF ERROR ASSUME NO FILES TST ERRFLG ;DID IT GO ?R+ BNE NOFIL ;BR IF ERROR (PROBABLY NO FILE)OB MOV #40,XFRDPB+Q.IOPL+4 ;RESET SOME THINGS (COULD BE SECOND FILE) MOV #PDSBUF,XFRDPB+Q.IOPL CLR FCCFLGR4 BITB #FD.CR,FDB+F.RATT ;STANDARD CARRIAGE CONTROL ? BNE GET ;IF SO SKIP NEXT= CLR XFRDPB+Q.IOPL+4 ;ELSE INDICATE IMBEDDED CARRIAGE CONTROLR4 BITB #FD.FTN,FDB+F.RATT ;FORTRAN CARRIAGE CONTROL ? BEQ GET% INC FCCFLG 00„ĄńȄ* ;SHOW FLAG FOR LATER USEA@ INC XFRDPB+Q.IOPL ;AND START OUTPUT XFR PAST CAR CONT CHARACTER?GET: GET$ ,#PDSBUF,#80.,ERR ;READ A RECORD, IF ERROR ASSUME EOFR TST ERRFLG ;CHECK FOR ERRORS+ BNE ENDFIL ;ASSSUME ERROR WAS END OF FILEEA MOV FDB+F.NRBD,XFRDPB+Q.IOPL+2 ;FILL IN RECORD LENGTH IN QIO DPBF0 TST FCCFLG ;IS THIS FORTRAN CARRIAGE CONTROL ? BEQ 11$ ;SKIP IF NOT< MOVB PDSBUF,XFRDPB+Q.IOPL+4 ;TRANS CARR CONTROL CHAR TO DPB. DEC XFRDPB+Q.IOPL+2 ;ACCOUNT FOR IT IN LENGTH& BNE 11$ ;BR IF STILL SOME CHARACTERS5 INC XFRDPB+Q.IOPL+2 ;IF 0 CHARACTERS, FAKE IT TO ONES< CLRB PDSBUF+1 ;AND MAKE SURE IT ISN'T LEFT OVER FROM BEFORE+11$: DIR$ #XFRDPB ;WRITE LINE TO TERMINAL " BR GET ;AND TRY FOR ANOTHER LINE.ENDFIL: CLOSE$ #FDB ;IF END OF FILE, CLOSE IT5NOFIL: TST ONEFLG ;DID WE ALREADY TRY FOR THIS UIC ?;! BNE ENDRUN ;IF SO EXIT CPU LEFT+ CMP UIC,#401 ;OR DID WE LOG IN UNDER 1,1 ?. BEQ ENDRUN ;ALSO EXITL3 MOV #TIMBUF,R0 ;USE TIME BUFFER FOR UIC CONVERSION & CLR R2 ;INDICATE SUPRESS LEADING 0'S! MOVB #'[,(R0)+ ;INSERT FIRST '['C MOVB UIC+1,R1 ;GROUP CODE TO R1( BIC #177400,R1 ;IN CASE ITS 200 OR MORE JSR PC,$CBOMG ;CONVERT TO ASCII MOVB #',,(R0)+ ;INSERT THE ','  MOV UIC,R1 ;GET USER CODEN% BIC #177400,R1 ;CLEAR OUT UPPER BYTES! JSR PC,$CBOMG ;CONVERT USER CODER* MOVB #'],(R0)+ ;FINISH OFF THE UIC STRING MOV R0,R1 ;END IN R1% SUB #TIMBUF,R1 ;MINUS START = LENGTH MOV #TIMBUF,R2 ;START IN R2& MOV #FDB,R0 ;PUT FDB ADDR BACK IN R0' JSR PC,.WDFDR ;WRITE UIC STRING IN FDBI# INC ONEFLG ;SHOW WE DID THIS ONCE 3 CLR ERRFLG ;AND CLEAR PREV NOFILE OR ENDFILE FLAGR- BR REGO ;AND LOOK FOR HELLO.LOG UNDER [1,1]V .PAGE$ .SBTTL TRY TO ACCESS AUTOSTART FILEENDRUN:C- MOV #ONEHUN,R2 ;SET TO RESET DEFAULT UIC TO T MOV #HUNLEN,R1 ;1,100 AGAIN JSR PC,.WDFDR) OPEN$ #AUTFDB ;OPEN AUTORSTART FILE FDBI BCS 22$ ;JUST DO MCR ON ERROR#D3$: GET$ #AUTFDB,#PDSBUF,#80.,22$ ;GET A RECORD, ON ERROR ASSUME END# MOV #PDSBUF,R0 ;TEXT POINTER TO R0R- MOV #R50USN,R5 ;RAD 50 USERNAME BUFFER AT R5L% MOV #4,R4 ;SET TO CHECK 4-WORD NAME +33$: CLR R1 ;'.' NOT VALID RAD50 CHARACTER , JSR PC,$CAT5 ;CONVERT 3-CHAR NAME TO RAD-50* CMP R1,(R5)+ ;COMPARE OUR USER, FILE USER, BNE 3$ ;IF NO MATCH, TRY NEXT LINE IN FILE SOB R4,33$ ;CHECK 4 NAMES19 MOV #PDSBUF+12.,R0 ;POINT R0 PAST 12 CHARACTER USER NAMET+ MOV AUTFDB+F.NRBD,R1 ;GET LAST RECORD SIZE/ ADD #PDSBUF,R1 ;POINT PAST LAST CHAR OF RECORDO' SUB R0,R1 ;NOW HAVE LENGTH OF COMMAND % MOV R0,-(SP) ;SAVE CMD START POINTER $ CLOSE$ #AUTFDB ;CLOSE COMMAND FILE" MOV (SP)+,R0 ;RESTORE CMD POINTER BR 4$ ;AND TRY TO EXECUTEC522$: CLOSE$ #AUTFDB ;NO COMMAND IN FILE, SO CLOSE ITP DIR$ #REQMCR ;AND REQUEST MCR  BR SCRAM ;AND GIT )4$: ;MATCHED USERS NAME IN AUTOSTART FILE;& MOV .CRTSK,R5 ;GET MY ATL ENTRY -> R5* MOV #77406,-(SP) ;SET UP STACK FOR RE-MAP, MOV A.HA(R5),-(SP) ;HEADER ADDRESS ON STACK! JSR PC,..SPD3 ;NOW DO THE RE-MAPC* MOV UIC,60000+H.UIC ;PUT AWAY THE NEW UIC2 BIC #HF.RMC,60000+H.EAF ;CLEAR MY MCR RECALL FLAG JSR PC,..SPD3 ;NOW CLEAN UP ADD #4,SP;R .IF DF IASV3T% MOV R0,SPWDIR+S.PWCA ;PUT IN ADDRESSC1 MOV R1,SPWDIR+S.PWCL ;AND LENGTH OF COMMAND LINED CLR R1C JSR PC,$CAT5 ;CONVERT LINE MOV (PC)+,R0 ;PUT IN RAD50 FORN .RAD50 /.../ ;... MOV R0,SPWDIR+S.PWTNY3 MOV R1,SPWDIR+S.PWTN+2 ;AND THREE LETTER TASK NAME  DIR$ #SPWDIR ;DO IT .IFFA MOV R0,MCDIR+Q.IOPL ;ADDRESS1 MOV R1,MCDIR+Q.IOPL+2 ;AND LEN OF COMMAND STRING # DIR$ #MCDIR ;GIVE COMMAND TO MC:H .ENDC BR SCRAM ;AND EXIT;R";SUB FOR FCS ERRORS, JUST SET FLAGERR: INC ERRFLG ;SET FLAG RTS PC ;AND RETURN.PAGES.SBTTL VARIOUS ERROR EXITS;L;T*SYNERR: DIR$ #SYNDIR ;REPORT SYNTAX ERROR BR SCRAM ;AND LEAVEC5REAFAI: DIR$ #RDFDIR ;REPORT READ ATTRIBUTES FAILURE, BR SCRAM ;AND LEAVE,GDIRFAI: CMPB #IE.NSF,F.ERR(R0) ;WAS ERROR PDS USER FILE DOESN'T EXIST ?F2 BEQ REAFAI ;YES - REPORT NO PDS USER FILE EXISTS/ DIR$ #DIRDPB ;NO - REPORT USER NAME NOT THERE BR SCRAMA,ILLPWD: DIR$ #ILLDIR ;REPORT WRON00  x|OxssG PASSWORD BR SCRAM ;AND LEAVEJ!SCRAM: MOV #FDB,R0 ;POINT TO FDB  TST F.BDB(R0) ;IS FILE OPEN ? BEQ 1$L CLOSE$E(1$: MOV #463,-(SP) ;AN EXIT DPB -> STACK EMT 377.PAGER.SBTTL MISC. SUBROUTINES;E*; SUBROUTINE TO FIND NEXT NON-BLANK OR TABSKIP:, MOVB (R3)+,R2 ;NEXT CHAR -> R2  CMPB R2,#40 ;IS IT SPACE?R BEQ 2$ ;IF SO, BRANCH  CMPB R2,#11 ;IS IT TAB?  BEQ 2$ ;IF SO, BRANCH - DEC R3 ;IF NEITHER, WE FOUND IT, SO BACK UPO1$: RTS PC ;AND RETURNP2$: DEC R4 ;BACK OFF THE COUNTA BEQ 1$ ;IF ZERO, RETURNV BR SKIP ;ELSE GO AROUND AGAIN ; 1; SUBROUTINE TO CONVERT POSSIBLE LOWER CASE INPUTECONVT: MOV R3,-(SP) ;SAVE TEXT POINTER MOV R4,-(SP) ;AND COUNT1$: CMPB (R3)+,#140 ;LOWER CASEI BLO 2$ ;BR IF NOTL& BICB #40,-1(R3) ;CHANGE TO UPPER CASE!2$: SOB R4,1$ ;DO ALL CHARACTERSS MOV (SP)+,R4 ;RESTORE MOV (SP)+,R3 ;REGS1 RTS PCT .END START ;IF SO, BRANCH - DEC R3 ;IF NEITHER, WE FOUND IT, SO BACK UPO1$: RTS PC ;AND RETURNP2$: DEC R4 ;BACK OFF THE COn HELPDS.TSK;17 Memory allocation map TKB D40.0 Page 1 23-MAY-86 10:28 Task name : ...HEL Partition name : GEN Identification : V02 Task UIC : [1,100] Task priority : 221. .Stack limits: 000000 000777 001000 00512. PRG xfr address: 003714 +Task attributes: -FP,-CP,PR,MU "Total attachment descriptors: 4. "Task image size : 2016. WORDS !Task header size : 128. WORDS R-O region size: 96. WORDS $Task address limits: 000000 007677 2R-W disk blk limits: 000003 000013 000011 00009. 2R-O disk blk limits: 000014 000014 000001 00001. *** Root segment: HELPDS .R/W mem limits: 000000 007677 007700 04032. .R-O mem limits: 020000 020277 000300 00192. .Disk blk limits: 000003 000012 000010 00008. # Memory allocation synopsis: ,GSection Title Ident File :G------- ----- ----- ---- W4. BLK.:(RW,I,LCL,REL,CON) 001000 002030 01048. O 001000 001242 00674. LOGON V02 HELPDS.OBJ;1 0R 002242 000144 00100. .MAIN. DAYOFWEEK.OBJ;2 4DATA :(RW,I,LCL,REL,CON) 060000 001440 00800. 4GPTJMP:(RW,I,GBL,REL,CON) 040000 017676 08126. 4PURE :(RW,I,LCL,REL,CON) 003030 003514 01868. O 003030 003514 01868. LOGON V02 HELPDS.OBJ;1 4$$FSR1:(RW,D,GBL,REL,OVR) 006544 001020 00528. O 006544 001020 00528. LOGON V02 HELPDS.OBJ;1 04$$FSR2:(RW,D,GBL,REL,CON) 007564 000114 00076. 4$$FSR3:(RW,D,GBL,REL,OVR) 007700 000000 00000. 4$$FSR4:(RW,D,GBL,REL,OVR) 007700 000000 00000. 4$$RESL:(RO,I,LCL,REL,CON) 020000 000216 00142.  Global symbols: UfA.HA 000016 HF.RMC 000001 UT.LG 000004 U.LBN 000056 U.UN 000002 .PUDEA 157464  fA.TD 000022 H.EAF 000216 UT.PR 000001 U.SZ 000064 .ATLLH 157474 ..ENB0 156560  fA.TI 000006 H.UIC 000170 U.DACP 000046 U.TF 000052 .CRTSK 157200 ..REDT 156660  fDAYOFW 002242-R PS.EXP 177776 U.LBH 000054 U.UI 000040 .PUDBA 157462 ..SPD3 156520  n HELPDS.TSK;17 Memory allocation map TKB D40.0 Page 2 HELPDS 23-MAY-86 10:28 P *** Task builder statistics: Total work file references: 14091. 6 Work file reads: 0. Work file writes: 0. b Size of core pool: 16006. words (62. pages) Size of work file: 2304. words (9. pages)  Elapsed time:00:00:11 ..REDT 156660  fDAYOFW 002242-R PS.EXP 177776 U.LBH 000054 U.UI 000040 .PUDBA 157462 ..SPD3 156520  n HELPDS.TSK;17 Memory allocation map TKB D40.0 Page 2 HELPDS 23-MAY-86 10:28 P *** Task builder statistics: Total work file references: 14091. 6 Work file reads: 0. Work file writes: 0. b Size of core00„ĄńȄ*9 Dump of DR3:[11,13]HELPDS.TSK;17 - File ID 13624,5,01 Virtual block 0,000001 - Size 512. bytes C 000000 131574 031324 026226 000000 060300 000335 000103 000103C 000020 000050 000000 000126 000005 000027 031324 010155 000015C 000040 000125 000005 000017 000003 100004 075273 070533 000177C 000060 000125 000001 000004 000002 000004 000000 000000 000000C 000100 000000 000000 000000 000000 000000 000000 000000 000000C 000120 000000 000000 000000 000000 000000 000000 000000 000000[C 000140 000000 000000 000000 000000 000000 000000 000000 000000C 000160 000000 000000 000000 000000 000000 000000 000000 000000C 000200 000000 000000 000000 000000 000000 000003 000000 000000C 000220 000500 000300 000013 020000 000003 000004 000377 000000C 000240 000000 000000 000000 000000 000000 000000 000000 000000C 000260 000000 000000 000000 000000 000000 000000 000000 000000C 000300 000000 000000 000000 000000 000000 000000 000000 0000000C 000320 000000 000000 000000 000000 000000 000000 000000 0000000C 000340 000000 000000 000000 000000 000000 000000 000000 000000C 000360 000000 000000 000000 000000 000000 000000 000000 000000C 000400 000000 000000 000000 000000 000000 000000 000000 000000C 000420 000000 000000 000000 000000 000000 000000 000000 000000C 000440 000000 000000 000000 000000 000000 000000 000000 000000C 000460 000000 000000 000000 000000 000000 000000 000000 0000000C 000500 000000 000000 000000 000000 000000 000000 000000 0000000C 000520 000000 000000 000000 000000 000000 000000 000000 000000C 000540 000000 000000 000000 000000 000000 000000 000000 000000C 000560 000000 000000 000000 000000 000000 000000 000000 000000C 000600 000000 000000 000000 000000 000000 000000 000000 000000C 000620 000000 000000 000000 000000 000000 000000 000000 000000C 000640 000000 000000 000000 000000 000000 000000 000000 0000000C 000660 000000 000000 000000 000000 000000 000000 000000 0000000C 000700 000000 000000 000000 000000 000000 000000 000000 000000C 000720 000000 000000 000000 000000 000000 000000 000000 000000C 000740 000000 000000 000000 013624 000005 000000 031324 062263C 000760 000000 100003 000017 000024 000001 000000 051104 0000039 Dump of DR3:[11,13]HELPDS.TSK;17 - File ID 13624,5,001 Virtual block 0,000002 - Size 512. bytes C 000000 054523 000000 041515 000000 054523 000000 042123 0000000C 000020 044524 000000 044524 000000 000000 000000 000000 0000000C 000040 000000 000000 000000 000000 000000 000000 000000 000000C 000060 000000 000000 000000 000000 000000 000000 000000 000000C 000100 000000 000000 000000 000000 000000 000000 000000 000000C 000120 000000 000000 000000 000000 000000 000000 000000 000000C 000140 000000 000000 000000 000000 000000 000000 000000 000000C 000160 000000 000000 000000 000000 000000 000000 000000 0000003C 000200 000000 000000 000000 000000 000000 000000 000000 0000000C 000220 000000 000000 000000 000000 000000 000000 000000 000000C 000240 000000 000000 000000 000000 000000 000000 000000 000000C 000260 000000 000000 000000 000000 000000 000000 000000 000000C 000300 000000 000000 000000 000000 000000 000000 000000 000000C 000320 000000 000000 000000 000000 000000 000000 000000 000000C 000340 000000 000000 000000 000000 000000 000000 000000 000000C 000360 000000 000000 000000 000000 000000 000000 000000 0000000C 000400 000000 000000 000000 000000 000000 000000 000000 000000C 000420 000000 000000 000000 000000 000000 000000 000000 000000C 000440 000000 000000 000000 000000 000000 000000 000000 000000C 000460 000000 000000 000000 000000 000000 000000 000000 000000C 000500 000000 000000 000000 000000 000000 000000 000000 000000C 000520 000000 000000 000000 000000 000000 000000 000000 000000C 000540 000000 000000 000000 000000 000000 000000 000000 0000000C 000560 000000 000 x|Oxss00000 000000 000000 000000 000000 000000 0000000C 000600 000000 000000 000000 000000 000000 000000 000000 000000C 000620 000000 000000 000000 000000 000000 000000 000000 000000C 000640 000000 000000 000000 000000 000000 000000 000000 000000C 000660 000000 000000 000000 000000 000000 000000 000000 000000C 000700 000000 000000 000000 000000 000000 000000 000000 000000C 000720 000000 000000 000000 000000 000000 000000 000000 0000000C 000740 000000 000000 000000 000000 000000 000000 000000 0000000C 000760 000000 000000 000000 000000 000000 000000 000000 0000009 Dump of DR3:[11,13]HELPDS.TSK;17 - File ID 13624,5,001 Virtual block 0,000003 - Size 512. bytes C 000000 000000 000000 001002 077002 006006 000016 077406 077406C 000020 077406 000000 177777 142720 104240 001026 001226 001426C 000040 177600 000002 000021 000021 000021 000000 000000 000000C 000060 000000 000000 000000 000003 000177 000015 001000 0000000C 000100 000000 000000 000000 000000 000000 000000 000000 0000000C 000120 000000 000000 174017 003714 000000 000000 000000 107120C 000140 000000 000000 001000 174017 003714 001000 000000 000000C 000160 000000 000000 000000 000500 000500 000004 000011 000000C 000200 000000 060312 000004 000001 000000 060212 060212 000002C 000220 000764 000000 001000 000000 000000 000000 000000 000000C 000240 060312 000000 000000 000000 172210 000000 000000 0020007C 000260 000006 054523 000000 041515 000000 054523 000000 0421230C 000300 000000 044524 000000 044524 000000 131460 000061 104240C 000320 000063 142720 000061 000000 000000 000000 000000 000000C 000340 000000 000000 000000 000000 000000 000000 000000 000000C 000360 000000 000000 000000 000000 000000 000000 000000 000000C 000400 000000 007564 000000 000000 000000 000000 000000 000000C 000420 000000 000000 000000 000000 000000 000000 000000 000000C 000440 000000 000000 000000 000000 000000 000000 000000 0000000C 000460 000000 000000 000000 000000 000000 000000 000000 000000C 000500 000000 000000 000000 000000 000000 000000 000000 000000C 000520 000000 000000 000000 000000 000000 000000 000000 000000C 000540 000000 000000 000000 000000 000000 000000 000000 000000C 000560 000000 000000 000000 000000 000000 000000 000000 000000C 000600 000000 000000 000000 000000 000000 000000 000000 000000C 000620 000000 000000 000000 000000 000000 000000 000000 0000000C 000640 000000 000000 000000 000000 000000 000000 000000 0000000C 000660 000000 000000 000000 000000 000000 000000 000000 000000C 000700 000000 000000 000000 000000 000000 000000 000000 000000C 000720 000000 000000 000000 000000 000000 000000 000000 000000C 000740 000000 000000 000000 000000 000000 000000 000000 000000C 000760 000000 000000 000000 000000 000000 000000 000000 0000009 Dump of DR3:[11,13]HELPDS.TSK;17 - File ID 13624,5,001 Virtual block 0,000004 - Size 512. bytes 0C 000000 000000 000000 000000 000000 000000 000000 000000 000000C 000020 000000 000000 000000 000000 000000 000000 000000 000000C 000040 000000 000000 000000 000000 000000 000000 000000 000000C 000060 000000 000000 000000 000000 000000 000000 000000 000000C 000100 000000 000000 000000 000000 000000 000000 000000 000000C 000120 000000 000000 000000 000000 000000 000000 000000 000000C 000140 000000 000000 000000 000000 000000 000000 000000 000000 C 000160 000000 000000 000000 000000 000000 000000 000000 0000000C 000200 000000 000000 000000 000000 000000 000000 000000 000000C 000220 000000 000000 000000 000000 000000 000000 000000 000000C 000240 000000 000000 000000 000000 000000 000000 000000 000000C 000260 000000 000000 000000 000000 000000 000000 000000 000000C 000300 000000 000000 000000 000000 000000 000000 000000 000000C 000320 000000 000000 000000 000000 000000 000000 000000 0000000C 000340 000000 000000 000000 000000 0000!„ĄńȄ*0000 000000 000000 0000000C 000360 000000 000000 000000 000000 000000 000000 000000 000000C 000400 000000 000000 000000 000000 000000 000000 000000 000000C 000420 000000 000000 000000 000000 000000 000000 000000 000000C 000440 000000 000000 000000 000000 000000 000000 000000 000000C 000460 000000 000000 000000 000000 000000 000000 000000 000000C 000500 000000 000000 000000 000000 000000 000000 000000 000000C 000520 000000 000000 000000 000000 000000 000000 000000 0000000C 000540 000000 000000 000000 000000 000000 000000 000000 000000C 000560 000000 000000 000000 000000 000000 000000 000000 000000C 000600 000001 000100 000000 000000 000000 000000 000000 000002C 000620 000100 001000 000000 000000 000000 000000 000000 000000C 000640 000000 000404 000000 001340 000000 000000 000000 000000C 000660 000000 000000 000000 000000 000000 000000 000000 000000C 000700 000000 000000 000000 000000 000000 000000 000000 0000000C 000720 000000 000000 000000 000000 000000 000000 000000 0000000C 000740 000000 000000 000000 062263 102706 000000 014474 000000C 000760 000000 000000 000000 000000 000000 000000 000000 0000029 Dump of DR3:[11,13]HELPDS.TSK;17 - File ID 13624,5,001 Virtual block 0,000005 - Size 512. bytes C 000000 000100 000000 000000 000000 000000 000000 000000 000000C 000020 001000 000000 000000 000000 000000 000000 000000 000000C 000040 000404 000000 001536 000000 000000 000000 000000 0000000C 000060 000000 000000 000000 000000 000000 000000 000000 000000C 000100 000000 000000 000000 000000 000000 000000 000000 000000C 000120 000000 000000 000000 000000 000000 000000 000000 000000C 000140 000000 000000 004634 060314 004444 014474 000000 000000C 000160 000000 000000 000000 000000 000000 000000 000000 000000C 000200 000000 000000 000000 000000 000000 000000 000000 000000C 000220 000000 000000 000000 000000 000000 000000 000000 0000000C 000240 000000 000000 000000 000000 000000 000000 000000 0000000C 000260 000000 000000 000000 000000 000000 000000 000000 000000C 000300 000000 000000 024577 000000 000000 000000 000000 000000C 000320 000000 000000 000000 000000 000000 000000 000000 000000C 000340 000000 000000 000000 000000 000000 000000 000000 000000C 000360 000000 000000 000000 000000 000000 000000 000000 000000C 000400 000000 000000 000000 000000 000000 000000 000000 0000000C 000420 000000 000000 000000 004403 011000 000005 000001 0016600C 000440 000000 001000 000000 000040 006413 131574 010155 000000C 000460 000000 000000 000000 000002 000000 000000 000000 000000C 000500 000000 006412 060522 064544 072141 067551 020156 064124C 000520 071145 070141 020171 067503 070155 072165 071145 051440C 000540 071571 062564 005155 020015 020040 020040 020040 020040C 000560 020040 020040 020040 020040 020040 020040 020040 020040C 000600 020040 000040 000000 000000 000000 031324 046530 0000000C 000620 046537 000000 000000 000000 000000 000000 000000 000000C 000640 000000 010546 010446 010346 010246 032711 000003 001002C 000660 105267 000110 005005 016102 000002 012703 002372 112304C 000700 060405 077203 066105 000004 112767 000034 000056 011103C 000720 070327 000555 010304 011103 072327 177776 060304 060405C 000740 005004 032711 000003 001001 005305 071427 000007 010501C 000760 012602 012603 012604 012605 000207 017400 017434 01743609 Dump of DR3:[11,13]HELPDS.TSK;17 - File ID 13624,5,001 Virtual block 0,000006 - Size 512. bytes C 000000 017436 017037 017037 004567 051652 010604 012746 000001C 000020 012746 000050 012746 003100 010603 010146 005001 112005C 000040 122705 000132 103443 122705 000101 101430 122705 000071C 000060 103435 122705 000060 101420 122705 000044 001413 122705C 000100 000040 001424 005716 001422 122705 000056 001405 000416C 000120 162705 000027 162705 177767 162705 177722 162705 00000) x|Oxss100[C 000140 070513 060501 022327 000001 003332 000401 000261 116002C 000160 177777 010406 000207 012746 011012 000420 012746 025012C 000200 000415 012746 025412 000412 012746 031010 000407 012746C 000220 031410 000404 042701 177400 012746 015010 011646 011646C 000240 012766 002654 000002 010266 000004 000402 012602 000207C 000260 005702 001002 042716 001000 012602 004567 051366 110205C 000300 105002 000302 006202 103005 005701 100003 005401 1127205C 000320 000055 010004 006002 006002 006003 105003 150203 1050022C 000340 152702 000060 010100 010001 005000 071005 020127 000011C 000360 101402 062701 000007 060201 010146 105303 003412 005700C 000400 001006 005702 100006 005703 100002 042702 000020 004767C 000420 177724 112624 010400 000207 006412 060520 071563 067567C 000440 062162 044076 046105 026440 020055 066111 062554 060547C 000460 020154 060520 071563 067567 062162 006412 071525 0711451C 000500 047040 066541 037145 044040 046105 026440 020055 0745233C 000520 072156 074141 042440 071162 071157 042510 020114 026440C 000540 020055 067514 067547 020156 064504 060563 066142 062145C 000560 004403 011000 000005 000001 001660 000000 003132 000026C 000600 000044 042510 020114 026455 042040 071151 061545 064564C 000620 062566 043040 064541 072554 062562 042510 020114 026455C 000640 047040 067157 042440 064570 072163 067145 020164 0715252C 000660 071145 047040 066541 051545 067165 060544 020171 0200405C 000700 046440 067157 060544 020171 020040 052040 062565 062163C 000720 074541 020040 053440 062145 062556 062163 074541 052040C 000740 072550 071562 060544 020171 043040 064562 060544 020171C 000760 020040 051440 072141 071165 060544 020171 000040 0044039 Dump of DR3:[11,13]HELPDS.TSK;17 - File ID 13624,5,021 Virtual block 0,000007 - Size 512. bytes C 000000 011000 000005 000001 001660 000000 003202 000030 0000445C 000020 004403 011000 000005 000001 001660 000000 003232 0000350C 000040 000044 004403 011000 000005 000001 001660 000000 002102C 000060 000101 000040 005403 004620 000005 000001 001660 000000C 000100 001000 000120 000003 003030 000013 004403 011000 000005C 000120 000001 001660 000000 003107 000023 000044 004403 011000C 000140 000005 000001 001660 000000 003043 000027 000044 005403C 000160 004600 000005 000001 001660 000000 001000 000120 000003C 000200 003072 000015 060512 043156 061145 060515 040562 0711600C 000220 060515 045171 067165 072512 040554 063565 062523 047560C 000240 072143 067516 042166 061545 001075 001574 003413 131574C 000260 050712 000000 000000 000000 000000 030533 030454 000135C 000300 030533 030454 030060 000135 000167 002454 016700 153260C 000320 016746 174052 052767 000140 174044 016701 153536 011101C 000340 020001 001775 020167 153526 001414 026061 000022 000022C 000360 001366 026061 000006 000006 001362 004767 152562 0001675C 000400 002436 004767 152552 004767 045344 016000 000006 1160034C 000420 000002 070327 000024 062703 060000 005713 001410 012746C 000440 002050 104377 012746 000002 012746 001051 104377 012702C 000460 003700 012701 000007 004767 013734 012746 003650 104377C 000500 012700 002147 012701 001574 004767 176126 070127 000012C 000520 062701 003267 012702 000012 112120 077202 005002 016701C 000540 175436 004767 176426 112720 000055 016701 175420 0053012C 000560 070127 000003 062701 003604 112120 112120 112120 1127204C 000600 000055 005002 016701 175364 004767 176360 005200 012704C 000620 000003 012705 001602 012501 020127 000012 002002 112720C 000640 000060 004767 176326 112720 000072 077413 112740 000040C 000660 012746 003442 104377 012746 001704 104377 013704 000000C 000700 100415 012703 001706 112302 120227 000040 001405 120227C 000720 000011 001402 077410 000402 005304 003014 012746 0035565C 000740 104377 012703 001000 016704 175310 020427 0000001„ĄńȄ*01 0020020C 000760 000167 002054 004767 002074 004767 002120 012700 0016369 Dump of DR3:[11,13]HELPDS.TSK;17 - File ID 13624,5,021 Virtual block 0,000010 - Size 512. bytes C 000000 012701 000004 005020 077102 012746 000004 012705 001636C 000020 010300 005001 004767 175756 010125 103411 010003 162704C 000040 000003 003405 005316 003365 112302 005304 000403 160004C 000060 060304 010003 005726 120227 000040 001403 120227 0000117C 000100 001002 005704 003022 005067 174266 005067 174264 0050677C 000120 174262 012746 003464 104377 012703 001000 016704 175122C 000140 020427 000001 002002 000167 001666 004767 001706 004767C 000160 001732 005067 175060 005067 175056 010300 005001 004767C 000200 175604 010167 175040 103405 005001 004767 175570 010167C 000220 175026 012700 001200 004767 033156 103002 000167 001540C 000240 012760 000001 000036 004767 033672 016767 174122 1750220C 000260 012701 000002 010160 000036 004767 033650 010046 0127036C 000300 001000 012702 000010 012700 000004 012704 001636 010305C 000320 022524 001002 077003 000412 062703 000010 077214 005201C 000340 012600 020167 174734 002746 000167 001434 162701 000002C 000360 072127 000003 066701 174712 005402 062702 000010 060201C 000400 012600 010160 000036 004767 033532 004767 033002 016702C 000420 173770 074267 174620 005267 174614 001007 016702 173754C 000440 074267 174604 005267 174600 001402 000167 001352 0167677C 000460 173726 174566 126727 174563 000010 101003 052767 0000014C 000500 174554 016705 152072 016505 000006 016765 174534 000040C 000520 016767 174526 174736 052765 000004 000052 016567 000046C 000540 176516 042765 000011 000052 056765 174502 000052 016765C 000560 173636 000056 032765 100000 000056 001403 052765 000001C 000600 000052 032765 002000 000056 001003 052765 000010 000052C 000620 116503 000002 070327 000024 062703 060000 012700 0015742C 000640 012702 000010 012023 077202 010123 010546 016767 1735700C 000660 174406 116767 173564 174402 042767 000060 174374 016705C 000700 152160 021567 174362 001402 000167 000052 126567 000002C 000720 174350 001372 004767 151330 021527 054523 001006 012767C 000740 042123 174324 005067 174322 000752 010500 012605 010065C 000760 000054 000167 000034 062705 000064 020567 152066 1030029 Dump of DR3:[11,13]HELPDS.TSK;17 - File ID 13624,5,001 Virtual block 0,000011 - Size 512. bytes 2C 000000 000167 177676 012767 042123 174256 005067 174254 0001676C 000020 177654 012700 001200 012702 003672 012701 000005 004767C 000040 012364 112760 000002 000000 112760 000002 000001 105060C 000060 000016 012760 001000 000022 012760 000120 000020 112760C 000100 000004 000042 012760 002204 000046 112760 000001 000043C 000120 112760 000004 000042 112760 000001 000043 004767 032250C 000140 103002 004767 000614 005767 174122 001074 012767 000040 C 000160 174264 012767 001000 174252 005067 174104 132767 0000026C 000200 173377 001012 005067 174236 132767 000001 173363 001404C 000220 005267 174054 005267 174212 012760 001000 000022 012760C 000240 000120 000020 004767 032674 103002 004767 000504 005767C 000260 174012 001024 016767 173334 174152 005767 174002 001412C 000300 116767 173074 174140 005367 174132 001004 005267 174124C 000320 105067 173055 012746 002026 104377 000736 012700 0012002C 000340 004767 032054 005767 173726 001047 026727 173674 0004017C 000360 001443 012700 001574 005002 112720 000133 116701 173653C 000400 042701 177400 004767 174600 112720 000054 016701 173632C 000420 042701 177400 004767 174560 112720 000135 010001 162701C 000440 001574 012702 001574 012700 001200 004767 011750 005267C 000460 173614 005067 173606 000603 012702 003700 012701 000007C 000500 004767 011722 012700 001376 004767 031674 103447 012700C 000520 001376 012760 001000 000022 012760 000120 000020 0047677C 000540 009 x|Oxss 032402 103002 004767 000064 012700 001000 012705 0016360C 000560 012704 000004 005001 004767 174214 020125 001350 077406C 000600 012700 001014 016701 173212 062701 001000 160001 010046C 000620 012700 001376 004767 031570 012600 000410 012700 001376C 000640 004767 031554 012746 003654 104377 000472 016705 150720C 000660 012746 077406 016546 000016 004767 150224 016767 173352C 000700 051666 042767 000001 051706 004767 150204 062706 0000040C 000720 010067 173550 010167 173546 005001 004767 174050 0127000C 000740 131574 010067 173504 010167 173502 012746 002050 104377C 000760 000427 005267 173306 000207 012746 003512 104377 0004209 Dump of DR3:[11,13]HELPDS.TSK;17 - File ID 13624,5,011 Virtual block 0,000012 - Size 512. bytes C 000000 012746 003160 104377 000414 122760 177746 000052 001770C 000020 012746 003420 104377 000404 012746 003534 104377 000400C 000040 012700 001200 005760 000070 001402 004767 031342 0127467C 000060 000463 104377 112302 120227 000040 001405 120227 0000114C 000100 001402 005303 000207 005304 001775 000764 010346 010446C 000120 122327 000140 103403 142763 000040 177777 077407 012604C 000140 012603 000207 000000 000000 000000 000000 000000 000000C 000160 000000 000000 000000 000000 000000 000000 000000 000000C 000200 000000 000000 000000 000000 000000 000000 000000 000000C 000220 000000 000000 000000 000000 000000 000000 000000 0000002C 000240 000000 000000 000000 000000 000000 000000 000000 0000000C 000260 000000 000000 000000 000000 000000 000000 000000 000000C 000300 000000 000000 000000 000000 000000 000000 000000 000000C 000320 000000 000000 000000 000000 000000 000000 000000 000000C 000340 000000 000000 000000 000000 000000 000000 000000 000000C 000360 000000 000000 000000 000000 000000 000000 000000 000000C 000400 000000 000000 000000 000000 000000 000000 000000 0000000C 000420 000000 000000 000000 000000 000000 000000 000000 0000000C 000440 000000 000000 000000 000000 000000 000000 000000 000000C 000460 000000 000000 000000 000000 000000 000000 000000 000000C 000500 000000 000000 000000 000000 000000 000000 000000 000000C 000520 000000 000000 000000 000000 000000 000000 000000 000000C 000540 000000 000000 000000 000000 000000 000000 000000 000000C 000560 000000 000000 000000 000000 000000 000000 000000 000000C 000600 000000 000000 000000 000000 000000 000000 000000 0000000C 000620 000000 000000 000000 000000 000000 000000 000000 0000000C 000640 000000 000000 000000 000000 000000 000000 000000 000000C 000660 000000 000000 000000 000000 000000 000000 000000 000000C 000700 000000 000000 000000 000000 000000 000000 000000 000000C 000720 000000 000000 000000 000000 000000 000000 000000 000000C 000740 000000 000000 000000 000000 000000 000000 000000 000000C 000760 000000 000000 000000 000000 000000 000000 000000 00000009 Dump of DR3:[11,13]HELPDS.TSK;17 - File ID 13624,5,001 Virtual block 0,000013 - Size 512. bytes C 000000 000000 000000 000000 000000 000000 000000 000000 000000C 000020 000000 000000 000000 000000 000000 000000 000000 000000C 000040 000000 000000 000000 000000 000000 000000 000000 000000C 000060 000000 000000 000000 000000 000000 000000 000000 000000C 000100 000000 000000 000000 000000 000000 000000 000000 000000C 000120 000000 000000 000000 000000 000000 000000 000000 000000[C 000140 000000 000000 000000 000000 000000 000000 000000 000000 C 000160 000000 000000 000000 000000 006544 007563 000000 177777C 000200 000000 000000 000000 000000 000000 000000 000000 000000C 000220 000000 000000 000000 000000 000000 000000 177777 000000C 000240 000000 000000 000000 000000 000000 000000 000000 000000C 000260 000000 000000 000000 000001 000000 007700 000000 000000C 000300 000000 000000 000000 000000 000000 000000 000000 0000000C 000320 000000 000000 00000000A„ĄńȄ* 000000 000000 000000 000000 0000000C 000340 000000 000000 000000 000000 000000 000000 000000 000000C 000360 000000 000000 000000 000000 000000 000000 000000 000000C 000400 000000 000000 000000 000000 000000 000000 000000 000000C 000420 000000 000000 000000 000000 000000 000000 000000 000000C 000440 000000 000000 000000 000000 000000 000000 000000 000000C 000460 000000 000000 000000 000000 000000 000000 000000 0000000C 000500 000000 000000 000000 000000 000000 000000 000000 0000000C 000520 000000 000000 000000 000000 000000 000000 000000 000000C 000540 000000 000000 000000 000000 000000 000000 000000 000000C 000560 000000 000000 000000 000000 000000 000000 000000 000000C 000600 000000 000000 000000 000000 000000 000000 000000 000000C 000620 000000 000000 000000 000000 000000 000000 000000 000000C 000640 000000 000000 000000 000000 000000 000000 000000 000000C 000660 000000 000000 000000 000000 000000 000000 000000 0000000C 000700 000000 000000 000000 000000 000000 000000 000000 0000000C 000720 000000 000000 000000 000000 000000 000000 000000 000000C 000740 000000 000000 000000 000000 000000 000000 000000 000000C 000760 000000 000000 000000 000000 000000 000000 000000 0000009 Dump of DR3:[11,13]HELPDS.TSK;17 - File ID 13624,5,001 Virtual block 0,000014 - Size 512. bytes C 000000 013701 000002 001406 062701 000050 016102 000002 0111010C 000020 002001 005001 000207 010046 013700 000002 001407 0627000C 000040 000050 010110 010260 000002 005060 000026 012600 000207C 000060 013701 000002 001402 016101 000012 000207 010146 013701C 000100 000002 001402 011661 000012 012601 000207 013701 000002C 000120 001402 016101 000010 000207 010146 013701 000002 001402C 000140 011661 000010 012601 000207 013701 000002 001402 016101C 000160 000104 000207 010046 013700 000002 001407 010160 000104C 000200 005060 000076 012760 177777 000050 012600 000207 0000000C 000220 000000 000000 000000 000000 000000 000000 000000 0000000C 000240 000000 000000 000000 000000 000000 000000 000000 000000C 000260 000000 000000 000000 000000 000000 000000 000000 000000C 000300 000000 000000 000000 000000 000000 000000 000000 000000C 000320 000000 000000 000000 000000 000000 000000 000000 000000C 000340 000000 000000 000000 000000 000000 000000 000000 000000C 000360 000000 000000 000000 000000 000000 000000 000000 0000000C 000400 000000 000000 000000 000000 000000 000000 000000 0000000C 000420 000000 000000 000000 000000 000000 000000 000000 000000C 000440 000000 000000 000000 000000 000000 000000 000000 000000C 000460 000000 000000 000000 000000 000000 000000 000000 000000C 000500 000000 000000 000000 000000 000000 000000 000000 000000C 000520 000000 000000 000000 000000 000000 000000 000000 000000C 000540 000000 000000 000000 000000 000000 000000 000000 0000000C 000560 000000 000000 000000 000000 000000 000000 000000 0000000C 000600 000000 000000 000000 000000 000000 000000 000000 000000C 000620 000000 000000 000000 000000 000000 000000 000000 000000C 000640 000000 000000 000000 000000 000000 000000 000000 000000C 000660 000000 000000 000000 000000 000000 000000 000000 000000C 000700 000000 000000 000000 000000 000000 000000 000000 000000C 000720 000000 000000 000000 000000 000000 000000 000000 000000C 000740 000000 000000 000000 000000 000000 000000 000000 0000000C 000760 000000 000000 000000 000000 000000 000000 000000 0000000 *** EOF *** 0 000620 000000 000000 000000 000000 000000 000000 000000 000000C 000640 000000 000000 000000 000000 000000 000000 000000 000000C 000660 000000 000000 000000 000000 000000 000000 000000 000000C 000700 000000 000000 000000 000000 000000 000000 000000 000000C 000720 000000 000000 000000 000000 000000 000000 000000 000000C 000740 000000 000000 000000 000000 000000 000000 000000 0000000C 0000I x|Oxssz_M_PD 3r@s@<&@p@:2@`@ @8@@8@@sd@ @2m@z ~r@}@|f@$9~Z@@<&p@ @@2&@t<@W@:s@9x@%@:@ @zX@g#@<&(@e60@Q@r@@A^@' q@HEL -- Illegal Password User Name> HEL -- Syntax ErrorHEL -- Logon Disabled B$HEL -- Directive F^:2 dhBm|ailureHEL -- Non Existent User NameSunday Monday Tuesday Wednesday Thursday Friday Saturday j j$ $ BA  P  /$ |:2 j:2 "*:2 0 4B<:s ~ ~r B FLR:2 X\/d:2_L $ P" JanFebMarAprMayJunJulAugSepOctNovDec=| |Q[1,1]l<  :s ~   " J| [1,100] r W ' qi t<@ <&p @ dƅ<  $$^ ^!! ' q* t @ d d `$ < )q  |m Radiation Therapy Computer System :2  2XM_M Zg@w,U`A w  1,1, w pe () g| g#g# |7*w,( 2X *D 8 3”   &פT> 9x*, ("(20X8$9~Z@HD PZ`:` p! F JV} ` db`U  e&  :f `E` e7<w~9x    "` *.`2:B @FsdJLu68`P 3rRe60`Vsd^<> |7*w,( 2X *D 8 3”   &פT> 9x8 Dump of DR3:[11,13]HELPDS.TSK;16 - File ID 2015,3,01 Virtual block 0,000001 - Size 512. bytes C 000000 131574 031324 026226 000000 060300 000335 000103 000103C 000020 000050 000000 000125 000006 000026 031324 010155 000015C 000040 000125 000005 000017 000003 100004 075273 070533 000177C 000060 000125 000001 000004 000002 000004 000000 000000 000000C 000100 000000 000000 000000 000000 000000 000000 000000 000000C 000120 000000 000000 000000 000000 000000 000000 000000 0000003C 000140 000000 000000 000000 000000 000000 000000 000000 000000C 000160 000000 000000 000000 000000 000000 000000 000000 000000C 000200 000000 000000 000000 000000 000000 000003 000000 000000C 000220 000500 000300 000013 020000 000003 000004 000377 000000C 000240 000000 000000 000000 000000 000000 000000 000000 000000C 000260 000000 000000 000000 000000 000000 000000 000000 000000C 000300 000000 000000 000000 000000 000000 000000 000000 0000000C 000320 000000 000000 000000 000000 000000 000000 000000 0000000C 000340 000000 000000 000000 000000 000000 000000 000000 000000C 000360 000000 000000 000000 000000 000000 000000 000000 000000C 000400 000000 000000 000000 000000 000000 000000 000000 000000C 000420 000000 000000 000000 000000 000000 000000 000000 000000C 000440 000000 000000 000000 000000 000000 000000 000000 000000C 000460 000000 000000 000000 000000 000000 000000 000000 0000000C 000500 000000 000000 000000 000000 000000 000000 000000 0000000C 000520 000000 000000 000000 000000 000000 000000 000000 000000C 000540 000000 000000 000000 000000 000000 000000 000000 000000C 000560 000000 000000 000000 000000 000000 000000 000000 000000C 000600 000000 000000 000000 000000 000000 000000 000000 000000C 000620 000000 000000 000000 000000 000000 000000 000000 000000C 000640 000000 000000 000000 000000 000000 000000 000000 0000000C 000660 000000 000000 000000 000000 000000 000000 000000 0000000C 000700 000000 000000 000000 000000 000000 000000 000000 000000C 000720 000000 000000 000000 000000 000000 000000 000000 000000C 000740 000000 000000 000000 002015 000003 000000 031324 062263C 000760 000000 100003 000016 000024 000001 000000 051104 0000038 Dump of DR3:[11,13]HELPDS.TSK;16 - File ID 2015,3,01 Virtual block 0,000002 - Size 512. bytes C 000000 054523 000000 041515 000000 054523 000000 042123 0000000C 000020 044524 000000 044524 000000 000000 000000 000000 0000000C 000040 000000 000000 000000 000000 000000 000000 000000 000000C 000060 000000 000000 000000 000000 000000 000000 000000 000000C 000100 000000 000000 000000 000000 000000 000000 000000 000000C 000120 000000 000000 000000 000000 000000 000000 000000 000000C 000140 000000 000000 000000 000000 000000 000000 000000 000000C 000160 000000 000000 000000 000000 000000 000000 000000 0000003C 000200 000000 000000 000000 000000 000000 00000Y x|Oxss000 000000 0000000C 000220 000000 000000 000000 000000 000000 000000 000000 000000C 000240 000000 000000 000000 000000 000000 000000 000000 000000C 000260 000000 000000 000000 000000 000000 000000 000000 000000C 000300 000000 000000 000000 000000 000000 000000 000000 000000C 000320 000000 000000 000000 000000 000000 000000 000000 000000C 000340 000000 000000 000000 000000 000000 000000 000000 000000C 000360 000000 000000 000000 000000 000000 000000 000000 0000000C 000400 000000 000000 000000 000000 000000 000000 000000 0000000C 000420 000000 000000 000000 000000 000000 000000 000000 000000C 000440 000000 000000 000000 000000 000000 000000 000000 000000C 000460 000000 000000 000000 000000 000000 000000 000000 000000C 000500 000000 000000 000000 000000 000000 000000 000000 000000C 000520 000000 000000 000000 000000 000000 000000 000000 000000C 000540 000000 000000 000000 000000 000000 000000 000000 0000000C 000560 000000 000000 000000 000000 000000 000000 000000 0000000C 000600 000000 000000 000000 000000 000000 000000 000000 000000C 000620 000000 000000 000000 000000 000000 000000 000000 000000C 000640 000000 000000 000000 000000 000000 000000 000000 000000C 000660 000000 000000 000000 000000 000000 000000 000000 000000C 000700 000000 000000 000000 000000 000000 000000 000000 000000C 000720 000000 000000 000000 000000 000000 000000 000000 0000000C 000740 000000 000000 000000 000000 000000 000000 000000 0000000C 000760 000000 000000 000000 000000 000000 000000 000000 0000008 Dump of DR3:[11,13]HELPDS.TSK;16 - File ID 2015,3,01 Virtual block 0,000003 - Size 512. bytes C 000000 000000 037006 001002 077002 006006 000016 077406 077406C 000020 077406 005117 104320 142720 104240 001026 001226 001426C 000040 177600 000002 000021 000021 000021 000000 000000 000000C 000060 000000 000000 000000 000003 000177 000015 001000 0000000C 000100 000000 000000 000000 000000 000000 000000 000000 0000000C 000120 000000 000000 174000 004266 002203 000062 000000 061250C 000140 000000 001610 001000 174017 003714 001000 000000 000000C 000160 000000 000000 000000 000500 000401 000004 000011 000000C 000200 000000 060312 000004 000001 000000 060212 060212 000004C 000220 000764 000000 001000 000000 000000 000000 132360 000000C 000240 060312 037007 000000 000000 060236 000000 000000 0020007C 000260 000006 153274 000000 000000 000000 153274 000000 1527540C 000300 000000 000001 000000 000001 000000 104320 000061 104240C 000320 000063 142720 000061 000000 000000 000000 000000 000000C 000340 000000 000000 000000 000000 000000 000000 000000 000000C 000360 000000 000000 000000 000000 000000 000000 000000 000000C 000400 000001 007564 000000 000000 000000 000000 000000 000000C 000420 000000 000000 000000 000000 000000 000000 000000 000000C 000440 000000 000000 000000 000000 000000 000000 000000 0000000C 000460 000000 000000 000000 000000 000000 000000 000000 0000000C 000500 000000 000000 000000 000000 000000 000000 000000 000000C 000520 000000 000000 000000 000000 000000 000000 000000 000000C 000540 000000 000000 000000 000000 000000 000000 000000 000000C 000560 000000 000000 000000 000000 000000 000000 000000 000000C 000600 000000 000000 000000 000000 000000 000000 000000 000000C 000620 000000 000000 000000 000000 000000 000000 000000 0000000C 000640 000000 000000 000000 000000 000000 000000 000000 0000000C 000660 000000 000000 000000 000000 000000 000000 000000 000000C 000700 000000 000000 000000 000000 000000 000000 000000 000000C 000720 000000 000000 000000 000000 000000 000000 000000 000000C 000740 000000 000000 000000 000000 000000 000000 000000 000000C 000760 000000 000000 000000 000000 000000 000000 000000 0000008 Dump of DR3:[11,13]HELPDS.TSK;16 - File ID 2015,3,01 Virtual block 0,000004 - Size 512. bytes 0C 000000aSĄńȄ*00 000000 000000 000000 000000 000000 000000 000000 0000000C 000020 000000 000000 000000 000000 000000 000000 000000 000000C 000040 000000 000000 000000 000000 000000 000000 000000 000000C 000060 000000 000000 000000 000000 000000 000000 000000 000000C 000100 000000 000000 000000 000000 000000 000000 000000 000000C 000120 000000 000000 000000 000000 000000 000000 000000 000000C 000140 000000 000000 000000 000000 000000 000000 000000 000000 C 000160 000000 000000 000000 000000 000000 000000 000000 0000000C 000200 000000 000000 000000 000000 000000 000000 000000 000000C 000220 000000 000000 000000 000000 000000 000000 000000 000000C 000240 000000 000000 000000 000000 000000 000000 000000 000000C 000260 000000 000000 000000 000000 000000 000000 000000 000000C 000300 000000 000000 000000 000000 000000 000000 000000 000000C 000320 000000 000000 000000 000000 000000 000000 000000 0000000C 000340 000000 000000 000000 000000 000000 000000 000062 0030220C 000360 000065 054300 061250 000001 001610 002654 000000 003442C 000400 000000 000000 000000 000000 000000 000000 000000 000000C 000420 000000 000000 000000 000000 000000 000000 000000 000000C 000440 000000 000000 000000 000000 000000 000000 000000 000000C 000460 000000 000000 000000 000000 000000 000000 000000 000000C 000500 000000 000000 000000 000000 000000 000000 000000 000000C 000520 000000 000000 000000 000000 000000 000000 000000 0000000C 000540 000000 000000 000000 000000 000000 000000 000000 0000000C 000560 000000 000000 000000 000000 000000 000000 000000 000000C 000600 000001 000100 000000 000000 000000 000000 000000 000002C 000620 000100 001000 000000 000000 000000 000000 000000 000000C 000640 000000 000404 000000 001340 000000 000000 000000 000000C 000660 000000 000000 000000 000000 000000 000000 000000 000000C 000700 000000 000000 000000 000000 000000 000000 000000 0000000C 000720 000000 000000 000000 000000 000000 000000 000000 0000000C 000740 000000 000000 000000 062263 102706 000000 014474 000000C 000760 000000 000000 000000 000000 000000 000000 000000 0000028 Dump of DR3:[11,13]HELPDS.TSK;16 - File ID 2015,3,01 Virtual block 0,000005 - Size 512. bytes C 000000 000100 000000 000000 000000 000000 000000 000000 000000C 000020 001000 000000 000000 000000 000000 000000 000000 000000C 000040 000404 000000 001536 000000 000000 000000 000000 0000000C 000060 000000 000000 000000 000000 000000 000000 000000 0000000C 000100 000000 000000 000000 000000 000000 000000 000000 000000C 000120 000000 000000 000000 000000 000000 000000 000000 000000C 000140 000000 000000 004634 060314 004444 014474 000000 000000C 000160 000000 000000 000000 000000 000000 000000 000126 000005C 000200 000023 000007 000071 000031 000042 000074 000000 000000C 000220 000000 000000 000000 000000 000000 000000 000000 0000000C 000240 000000 000000 000000 000000 000000 000000 000000 0000000C 000260 000000 000000 000000 000000 000000 000000 000000 000000C 000300 000000 000000 024577 000000 000000 000000 000000 000000C 000320 000000 000000 000000 000000 000000 000000 000000 000000C 000340 000000 000000 000000 000000 000000 000000 000000 000000C 000360 000000 000000 000000 000000 000000 000000 000000 000000C 000400 000000 000000 000000 000000 000000 000000 000000 0000000C 000420 000000 000000 000000 004403 011000 000005 000001 0016600C 000440 000000 001000 000000 000040 006413 131574 010155 000000C 000460 000000 000000 000000 000002 000000 000000 000000 000000C 000500 000000 006412 060522 064544 072141 067551 020156 064124C 000520 071145 070141 020171 067503 070155 072165 071145 051440C 000540 071571 062564 005155 046415 067157 060544 020171 020040C 000560 030440 026471 060515 026571 033070 030040 035067 033465C 000600 031072 020065 000000 000000 000000 031324 046530 0000000C 00i x|Oxss000620 046537 000000 000000 000000 000000 000000 000000 0000003C 000640 000000 010546 010446 010346 010246 032711 000003 001002C 000660 105267 000110 005005 016102 000002 012703 002372 112304C 000700 060405 077203 066105 000004 112767 000034 000056 011103C 000720 070327 000555 010304 011103 072327 177776 060304 060405C 000740 005004 032711 000003 001001 005305 071427 000007 010501C 000760 012602 012603 012604 012605 000207 017400 017434 01743608 Dump of DR3:[11,13]HELPDS.TSK;16 - File ID 2015,3,01 Virtual block 0,000006 - Size 512. bytes C 000000 017436 017037 017037 004567 051652 010604 012746 000001C 000020 012746 000050 012746 003100 010603 010146 005001 112005C 000040 122705 000132 103443 122705 000101 101430 122705 000071C 000060 103435 122705 000060 101420 122705 000044 001413 122705C 000100 000040 001424 005716 001422 122705 000056 001405 000416C 000120 162705 000027 162705 177767 162705 177722 162705 0001003C 000140 070513 060501 022327 000001 003332 000401 000261 116002 C 000160 177777 010406 000207 012746 011012 000420 012746 025012C 000200 000415 012746 025412 000412 012746 031010 000407 012746C 000220 031410 000404 042701 177400 012746 015010 011646 011646C 000240 012766 002654 000002 010266 000004 000402 012602 000207C 000260 005702 001002 042716 001000 012602 004567 051366 110205C 000300 105002 000302 006202 103005 005701 100003 005401 1127205C 000320 000055 010004 006002 006002 006003 105003 150203 1050022C 000340 152702 000060 010100 010001 005000 071005 020127 000011C 000360 101402 062701 000007 060201 010146 105303 003412 005700C 000400 001006 005702 100006 005703 100002 042702 000020 004767C 000420 177724 112624 010400 000207 006412 060520 071563 067567C 000440 062162 044076 046105 026440 020055 066111 062554 060547C 000460 020154 060520 071563 067567 062162 006412 071525 0711451C 000500 047040 066541 037145 044040 046105 026440 020055 0745233C 000520 072156 074141 042440 071162 071157 042510 020114 026440C 000540 020055 067514 067547 020156 064504 060563 066142 062145C 000560 004403 011000 000005 000001 001660 000000 003132 000026C 000600 000044 042510 020114 026455 042040 071151 061545 064564C 000620 062566 043040 064541 072554 062562 042510 020114 026455C 000640 047040 067157 042440 064570 072163 067145 020164 071525C 000660 071145 047040 066541 051545 067165 060544 020171 0200405C 000700 046440 067157 060544 020171 020040 052040 062565 0621637C 000720 074541 020040 053440 062145 062556 062163 074541 052040C 000740 072550 071562 060544 020171 043040 064562 060544 020171C 000760 020040 051440 072141 071165 060544 020171 000040 0044038 Dump of DR3:[11,13]HELPDS.TSK;16 - File ID 2015,3,01 Virtual block 0,000007 - Size 512. bytes C 000000 011000 000005 000001 001660 000000 003202 000030 0000441C 000020 004403 011000 000005 000001 001660 000000 003232 0000354C 000040 000044 004403 011000 000005 000001 001660 000000 002102C 000060 000101 000040 005403 004620 000005 000001 001660 000000C 000100 001000 000120 000003 003030 000013 004403 011000 000005C 000120 000001 001660 000000 003107 000023 000044 004403 011000C 000140 000005 000001 001660 000000 003043 000027 000044 005403C 000160 004600 000005 000001 001660 000000 001000 000120 000003C 000200 003072 000015 060512 043156 061145 060515 040562 0711600C 000220 060515 045171 067165 072512 040554 063565 062523 0475601C 000240 072143 067516 042166 061545 001075 001574 003413 131574C 000260 050712 000000 000000 000000 000000 030533 030454 000135C 000300 030533 030454 030060 000135 000167 002454 016700 153260C 000320 016746 174052 052767 000140 174044 016701 153536 011101C 000340 020001 001775 020167 153526 001414 026061 000022 000022C 000360 001366 026061 000006 000006 001362 004767 152562 0001675C 000400 002436 004767 1500qSĄńȄ*2552 004767 045344 016000 000006 1160034C 000420 000002 070327 000024 062703 060000 005713 001410 012746C 000440 002050 104377 012746 000002 012746 001051 104377 012702C 000460 003700 012701 000007 004767 013734 012746 003650 104377C 000500 012700 002147 012701 001574 004767 176126 070127 000012C 000520 062701 003267 012702 000012 112120 077202 005002 016701C 000540 175436 004767 176426 112720 000055 016701 175420 0053012C 000560 070127 000003 062701 003604 112120 112120 112120 1127204C 000600 000055 005002 016701 175364 004767 176360 005200 012704C 000620 000003 012705 001602 012501 020127 000012 002002 112720C 000640 000060 004767 176326 112720 000072 077413 112740 000040C 000660 012746 003442 104377 012746 001704 104377 013704 000000C 000700 100415 012703 001706 112302 120227 000040 001405 120227C 000720 000011 001402 077410 000402 005304 003014 012746 003556C 000740 104377 012703 001000 016704 175310 020427 000001 0020020C 000760 000167 002054 004767 002074 004767 002120 012700 00163678 Dump of DR3:[11,13]HELPDS.TSK;16 - File ID 2015,3,01 Virtual block 0,000010 - Size 512. bytes C 000000 012701 000004 005020 077102 012746 000004 012705 001636C 000020 010300 005001 004767 175756 010125 103411 010003 162704C 000040 000003 003405 005316 003365 112302 005304 000403 160004C 000060 060304 010003 005726 120227 000040 001403 120227 0000113C 000100 001002 005704 003022 005067 174266 005067 174264 0050671C 000120 174262 012746 003464 104377 012703 001000 016704 175122C 000140 020427 000001 002002 000167 001666 004767 001706 004767C 000160 001732 005067 175060 005067 175056 010300 005001 004767C 000200 175604 010167 175040 103405 005001 004767 175570 010167C 000220 175026 012700 001200 004767 033156 103002 000167 001540C 000240 012760 000001 000036 004767 033672 016767 174122 175022C 000260 012701 000002 010160 000036 004767 033650 010046 0127036C 000300 001000 012702 000010 012700 000004 012704 001636 0103053C 000320 022524 001002 077003 000412 062703 000010 077214 005201C 000340 012600 020167 174734 002746 000167 001434 162701 000002C 000360 072127 000003 066701 174712 005402 062702 000010 060201C 000400 012600 010160 000036 004767 033532 004767 033002 016702C 000420 173770 074267 174620 005267 174614 001007 016702 173754C 000440 074267 174604 005267 174600 001402 000167 001352 0167677C 000460 173726 174566 126727 174563 000010 101003 052767 0000014C 000500 174554 016705 152072 016505 000006 016765 174534 000040C 000520 016767 174526 174736 052765 000004 000052 016567 000046C 000540 176516 042765 000011 000052 056765 174502 000052 016765C 000560 173636 000056 032765 100000 000056 001403 052765 000001C 000600 000052 032765 002000 000056 001003 052765 000010 000052C 000620 116503 000002 070327 000024 062703 060000 012700 0015742C 000640 012702 000010 012023 077202 010123 010546 016767 1735700C 000660 174406 116767 173564 174402 042767 000060 174374 016705C 000700 152160 021567 174362 001402 000167 000052 126567 000002C 000720 174350 001372 004767 151330 021527 054523 001006 012767C 000740 042123 174324 005067 174322 000752 010500 012605 010065C 000760 000054 000167 000034 062705 000064 020567 152066 1030028 Dump of DR3:[11,13]HELPDS.TSK;16 - File ID 2015,3,01 Virtual block 0,000011 - Size 512. bytes 7C 000000 000167 177676 012767 042123 174256 005067 174254 0001674C 000020 177654 012700 001200 012702 003672 012701 000005 004767C 000040 012364 112760 000002 000000 112760 000002 000001 105060C 000060 000016 012760 001000 000022 012760 000120 000020 112760C 000100 000004 000042 012760 002204 000046 112760 000001 000043C 000120 112760 000004 000042 112760 000001 000043 004767 032250C 000140 103002 004767 000614 005767 174122 001074 012767 000040 C 000160 174264 012767 001000 174252 005067 174104 00y x|Oxss132767 0000026C 000200 173377 001012 005067 174236 132767 000001 173363 001404C 000220 005267 174054 005267 174212 012760 001000 000022 012760C 000240 000120 000020 004767 032674 103002 004767 000504 005767C 000260 174012 001024 016767 173334 174152 005767 174002 001412C 000300 116767 173074 174140 005367 174132 001004 005267 174124C 000320 105067 173055 012746 002026 104377 000736 012700 001200C 000340 004767 032054 005767 173726 001047 026727 173674 0004017C 000360 001443 012700 001574 005002 112720 000133 116701 1736537C 000400 042701 177400 004767 174600 112720 000054 016701 173632C 000420 042701 177400 004767 174560 112720 000135 010001 162701C 000440 001574 012702 001574 012700 001200 004767 011750 005267C 000460 173614 005067 173606 000603 012702 003700 012701 000007C 000500 004767 011722 012700 001376 004767 031674 103447 012700C 000520 001376 012760 001000 000022 012760 000120 000020 0047677C 000540 032402 103002 004767 000064 012700 001000 012705 0016360C 000560 012704 000004 005001 004767 174214 020125 001350 077406C 000600 012700 001014 016701 173212 062701 001000 160001 010046C 000620 012700 001376 004767 031570 012600 000410 012700 001376C 000640 004767 031554 012746 003654 104377 000472 016705 150720C 000660 012746 077406 016546 000016 004767 150224 016767 173352C 000700 051666 042767 000001 051706 004767 150204 062706 0000040C 000720 010067 173550 010167 173546 005001 004767 174050 0127000C 000740 131574 010067 173504 010167 173502 012746 002050 104377C 000760 000427 005267 173306 000207 012746 003512 104377 0004208 Dump of DR3:[11,13]HELPDS.TSK;16 - File ID 2015,3,01 Virtual block 0,000012 - Size 512. bytes C 000000 012746 003160 104377 000414 122760 177746 000052 001770C 000020 012746 003420 104377 000404 012746 003534 104377 000400C 000040 012700 001200 005760 000070 001402 004767 031342 0127460C 000060 000463 104377 112302 120227 000040 001405 120227 0000115C 000100 001402 005303 000207 005304 001775 000764 010346 010446C 000120 122327 000140 103403 142763 000040 177777 077407 012604C 000140 012603 000207 000000 001020 000000 000000 000000 000000C 000160 000000 000000 000000 000000 000000 000000 000000 000000C 000200 000000 000000 000000 000000 000000 000000 000000 000000C 000220 000000 000000 000000 000000 000000 000000 000000 0000002C 000240 000000 000000 000000 000000 000000 000000 000000 0000000C 000260 000000 000000 000000 000000 000000 000000 000000 000000C 000300 000000 000000 000000 000000 000000 000000 000000 000000C 000320 000000 000000 000000 000000 000000 000000 000000 000000C 000340 000000 000000 000000 000000 000000 000000 000000 000000C 000360 000000 000000 000000 000000 000000 000000 000000 000000C 000400 000000 000000 000000 000000 000000 000000 000000 000000C 000420 000000 000000 000000 000000 000000 000000 000000 0000000C 000440 000000 000000 000000 000000 000000 000000 000000 0000000C 000460 000000 000000 000000 000000 000000 000000 000000 000000C 000500 000000 000000 000000 000000 000000 000000 000000 000000C 000520 000000 000000 000000 000000 000000 000000 000000 000000C 000540 000000 000000 000000 000000 000000 000000 000000 000000C 000560 000000 000000 000000 000000 000000 000000 000000 000000C 000600 000000 000000 000000 000000 000000 000000 000000 0000000C 000620 000000 000000 000000 000000 000000 000000 000000 0000000C 000640 000000 000000 000000 000000 000000 000000 000000 000000C 000660 000000 000000 000000 000000 000000 000000 000000 000000C 000700 000000 000000 000000 000000 000000 000000 000000 000000C 000720 000000 000000 000000 000000 000000 000000 000000 000000C 000740 000000 000000 000000 000000 000000 000000 000000 000000C 000760 000000 000000 000000 000000 000000 000000 000000 00000008 Dump of DR3:[11,13]HELPDS.TSK;16 - File ID 2000SĄńȄ*15,3,01 Virtual block 0,000013 - Size 512. bytes C 000000 000000 000000 000000 000000 000000 000000 000000 000000C 000020 000000 000000 000000 000000 000000 000000 000000 000000C 000040 000000 000000 000000 000000 000000 000000 000000 000000C 000060 000000 000000 000000 000000 000000 000000 000000 000000C 000100 000000 000000 000000 000000 000000 000000 000000 000000C 000120 000000 000000 000000 000000 000000 000000 000000 0000003C 000140 000000 000000 000000 000000 000000 000000 000000 000000 C 000160 000000 000000 006544 000000 006544 007563 000000 177777C 000200 131574 031324 026226 000000 131574 050712 000335 000401C 000220 000006 000054 060300 000000 000000 007700 000007 003700C 000240 000000 000000 000000 000000 000000 000000 000000 000000C 000260 000000 000000 000000 000001 000401 007700 000000 000000C 000300 000000 000000 000000 000000 000000 000000 000000 0000000C 000320 000000 000000 000000 000000 000000 000000 000000 0000000C 000340 000000 000000 000000 000000 000000 000000 000000 000000C 000360 000000 000000 000000 000000 000000 000000 000000 000000C 000400 000000 000000 000000 000000 000000 000000 000000 000000C 000420 000000 000000 000000 000000 000000 000000 000000 000000C 000440 000000 000000 000000 000000 000000 000000 000000 000000C 000460 000000 000000 000000 000000 000000 000000 000000 000000C 000500 000000 000000 000000 000000 000000 000000 000000 0000000C 000520 000000 000000 000000 000000 000000 000000 000000 0000000C 000540 000000 000000 000000 000000 000000 000000 000000 000000C 000560 000000 000000 000000 000000 000000 000000 000000 000000C 000600 000000 000000 000000 000000 000000 000000 000000 000000C 000620 000000 000000 000000 000000 000000 000000 000000 000000C 000640 000000 000000 000000 000000 000000 000000 000000 000000C 000660 000000 000000 000000 000000 000000 000000 000000 0000000C 000700 000000 000000 000000 000000 000000 000000 000000 0000000C 000720 000000 000000 000000 000000 000000 000000 000000 000000C 000740 000000 000000 000000 000000 000000 000000 000000 000000C 000760 000000 000000 000000 000000 000000 000000 000000 0000008 Dump of DR3:[11,13]HELPDS.TSK;16 - File ID 2015,3,01 Virtual block 0,000014 - Size 512. bytes C 000000 013701 000002 001406 062701 000050 016102 000002 011101C 000020 002001 005001 000207 010046 013700 000002 001407 0627000C 000040 000050 010110 010260 000002 005060 000026 012600 0002070C 000060 013701 000002 001402 016101 000012 000207 010146 013701C 000100 000002 001402 011661 000012 012601 000207 013701 000002C 000120 001402 016101 000010 000207 010146 013701 000002 001402C 000140 011661 000010 012601 000207 013701 000002 001402 016101C 000160 000104 000207 010046 013700 000002 001407 010160 000104C 000200 005060 000076 012760 177777 000050 012600 000207 0000000C 000220 000000 000000 000000 000000 000000 000000 000000 0000000C 000240 000000 000000 000000 000000 000000 000000 000000 000000C 000260 000000 000000 000000 000000 000000 000000 000000 000000C 000300 000000 000000 000000 000000 000000 000000 000000 000000C 000320 000000 000000 000000 000000 000000 000000 000000 000000C 000340 000000 000000 000000 000000 000000 000000 000000 000000C 000360 000000 000000 000000 000000 000000 000000 000000 0000000C 000400 000000 000000 000000 000000 000000 000000 000000 0000000C 000420 000000 000000 000000 000000 000000 000000 000000 000000C 000440 000000 000000 000000 000000 000000 000000 000000 000000C 000460 000000 000000 000000 000000 000000 000000 000000 000000C 000500 000000 000000 000000 000000 000000 000000 000000 000000C 000520 000000 000000 000000 000000 000000 000000 000000 000000C 000540 000000 000000 000000 000000 000000 000000 000000 000000C 000560 000000 000000 000000 000000 000000 000000 000000 0000000C 000600x|Oxss00 000000 000000 000000 000000 000000 000000 000000 0000000C 000620 000000 000000 000000 000000 000000 000000 000000 000000C 000640 000000 000000 000000 000000 000000 000000 000000 000000C 000660 000000 000000 000000 000000 000000 000000 000000 000000C 000700 000000 000000 000000 000000 000000 000000 000000 000000C 000720 000000 000000 000000 000000 000000 000000 000000 000000C 000740 000000 000000 000000 000000 000000 000000 000000 0000000C 000760 000000 000000 000000 000000 000000 000000 000000 0000000 *** EOF *** 0 000620 000000 000000 000000 000000 000000 000000 000000 000000C 000640 000000 000000 000000 000000 000000 000000 000000 000000C 000660 000000 000000 000000 000000 000000 000000 000000 000000C 000700 000000 000000 000000 000000 000000 000000 000000 000000C 000720 000000 000000 000000 000000 000000 000000 000000 000000C 000740 000000 000000 000000 000000 000000 000000 000000 0000000C 000760 000000 000000 00|2,`CC(U2m Uz[qU@  2dDRSYMCSYSDTITI>~ O ЈŠ 2b@ ````>`Ј131t25Xb"@@dƅ<@^ `$ <V9"<)  |m Radiation Therapy Computer System Monday 19-May-86 07:57:25 2XM_Mf&5H BĔa~El.CpmCt`a 5 sAw S(@f ťZ#ťAť9ť0ť$ ť  ť.@KqAa$  *  + 23E Ew R   Е-   0@ rW e`fÊ    E  Password>HEL -- Illegal Password User Name> HEL -- Syntax ErrorHEL -- Logon Disabled Z$HEL -- Directive FailureHEL -- Non Existent User NameSunday Monday Tuesday Wednesday Thursday Friday Saturday  00ńȄ*$ $ BA  P  G$ #$ P: JanFebMarAprMayJunJulAugSepOctNovDec=| |Q[1,1][1,100]w,*U`$^A w V 1,1, rw j Jpe` () g| VWp e P~  Е- WpePPPЕ-  AW Е0 Е:  " ”   n!w, < P B~ U  ” `   7 7 7 4R!w  7 07 . w  xw n6w` 7Rp 7&T%~ e~ w wWtm e`p Z7 6x x wv׭sUl:E\ VU*w&NE *]B*.5.U*5.U*Cpe`|~SfxtE0pw#w*w W#SYSD7 @5,we4w!6wSD7 w 0P"&#"# 4  R< 7 D 7  , P 5 D j  <` Z T7- ,4 '-#| Е[E Е,E pЕ]||  7   3'P 5 4 U  e& x3 l3:f SES e7hwf (|7DwB( Jp *\ 8 23”   &פ` d d s|2,|Q,`e(BA &e(H0 A f AfAD&pD0 >(;O$; [ 1 1 , 1 3 ] H E L T K B . C M D #; BUILD COMMAND FILE FOR RSX ...HEL;,O[11,1]HEL/PR/MU/-CP/-FP,[111,13]HEL/-SP/CR=[11,13]LIB13/LB:HEL,[1,1]EXEC.STB/SSR/:PAR=GENM STACK=100 UIC=[2,2]PPRI=221YASG=TI:6 TASK=...HEL LIBR=SYSRES:RO/ TASK SHOULD BE EXTENDED TO INCREASE THE AMOUNT OF C; SPACE AVAILABLE TO HOLD LINES AWAITING MATCHING. THE SAME EFFECTDA; CAN BE ACHIEVED BY USING THE '/INCREASE' SWITCH AT INSTALL TIMEP;H EXTTSK =10000 /---=; THIS SHOULD ONLY BE DONE IF THE OPER|8 (P 28>DP00x|OxssTISYSYSYSYSY2P2/```TISYSYSYSYSYB] IDX -- NO END STATEMENT? H & & A?C`mw7 7 7 <-7 7 @ 41 ;!2 t  >@ e8O ^ , ` 0 I C7 :w^  *  + 23E$ Ew PZ   Е-   0@ rW e`fÊ    E &f& v w Y*8w3) &  B (8 * -  x .BA M*&*  & #!)&ePe #&& >e >E p* w\w X pp*Ce( Lˋ˥ ˥˥ ђ˥=  L   Lp& `!  ZCei eÒ{\0`  =]/;[:,! EՋ  +z(a Z A90* .$ ! 0 % x%  j%@ w  0 &&  :W " ] W! ʥ* @&&  V -   % C   &   %    Х.% %̇ ȥ* R 䂿w $V0 0  (ȥȥ *   3:: ] ]&fŔ` U%ΤdeDBŔ`Ӌ ` Ţ   ť/ ť= (* <&f& Rʥ-  ʥNO  T5 -4  4,0S 0S5!0C E  SE  C EW/W: W=W, t  ^&fפĢĒ& Ē e]]C   &l !   Ջ UE []=:/,ҥ* !ŋ E & 5% e5w RS* 8B VpB r D0 B w SB C BBe ?B(1 <w R5 funhj Nuhj@# waw6 8 |8w3AdBbAepf& P aNNffn  AnC*NB8"ÕFP aAAf@pnp C*.AB`f Ma `WaWz ~ajfu-nhwRɥ;]a)wנ"å.@j  a Nw@ rŀajTI& af* *`V @e,w Pjjlj ɥ@Faujk,bp 5f fˇ ȕ 00ńȄ*p‡ eSY@$# h e,5 funhwe,aja`W- f`nwXuhnw@ (Dllja!CeH###33@#  & 8 * V w O 8jDl@ TeBT85l@ An5j)f  ,      RՀa@w O : ) 8C * ) *wH * F d ^ J ep p  އ = EW9ť^*0p CaC    0* e@  = Ep |p  , J *` 6 C# r   D @)  6?0D)w 0M* ^  46l0w Lwx B 8wZw#wxĥwX 0 *0 @0 0 0  0 0 40 6))   S# f K  *w 2s qp0p2 t #' P) @#**fff   wJ8e$8<  ,E@0-%. #p.2e   # #D # H#@&0 #   r0@ e E i 6 # @#?@#040 6B#:  A# @)0  )  ** :*@#0l # 028   ! p0p2w H VPQ& & B  2> Ε  N  22  v f 5 **5*wD@) 8*0, N   ()*)'   =  l 0l   ~ / e&=Ba@a  re0bGee@ A := E ep ) %  ,   T whw^  L B #  f  `**wT)0406 l0 =p!Օ^8e2 *8Ae f"( UCɗ+e$&% 0+1e  %p*wt f( f)f P8 -2e PE L0 0 0 80 B0 0 0 0)#0. ) ;f  l#e).8 - ̋  G  p8 e6p 4 &08* Z  f ,&* *eB  8 2$&w C* b  w C*D 6 ~wJ *) l0, *) $ )*)0,40,6  DP5R~RRR~ 8   ***w B*  dw :  .,,  *)   e6p 4 8 T.8 @ j :  8 -̋  4,44,6   08]0 epmp0* - B46 eA p  C ? t  "̋3t42 &8f08 | L880!8 $%   8w~w6  6 p 4 0`p 000x|Oxss f) )   F64@) 0 8 64 e*we) =00l 0141612epl2l0pG=f& e %&&eH &e0  U   E > >Ef p  wh   f >5>Eu   fMw|0,0, f 톇p   w X>     +% eB U5UU plp & Ne*ɥ1 xU8UM %.. ww |=fBC "& d SY*p0p2q10= f& &e=  e*e "fDCBAw <*wl#   U@e  %,, eHw1 w 8<*D B UqqC ӥ: ~ Ce <   R*w ;*  xĔ%.%%;?~ 5%5@<D ͥ*Ce ;X%wUO5@ U U*U  U@5 U*U  ʥ*%C!-D` )eC5U5  5 5@e**&f  EU   pr0 =B@&& p&  N pv C`B `v 0rr D wC r UeeA e* 0s rp v& sBvrp    :Bfep`pww $9  U Ce 8Be  rDe 4  w*e(  1 ?&e  1-1- 111 W,rrrrr &e* " PqLa  ~ @(W!ZW!AW!9W!0@w 7 ҥ[, ]  sC~ D w7f&5ҕ[ "5ҕ, 5ҕ]Et55tF e0ҐtI1 z  qqq1 1 1 1 1 1 1 1 1 4n %=^  X %w7 %:x%&**h %#)X.P P J 8 8e % % , %7   X  H/    , z 7   7   L%/ >  |0%*%,%/ew% F>7 <   2  )     r d  $  $e Je7 %%r %b/     67 x # * l`7 ^ѥ' ɕ% j#  b#7 <%!,%+-%  %( Z   F %' %  %  % %  7  e.+X%*eLF:+S ˋ w47rwz7hw+ $% FUNCTION#H7 F b"( <%ѥ) @  " . 4RRR4   w7 7 %%*0 !ZzW t%' !OdL ^%,T d %*< > 44 .%,  %)(  X" ѥEѥNѥD ѥRѥRѥ=w "ׯ) w8"7      ׯ) @   .  v w% b& 7 > 00ńȄ*>H V  &  2 ,%=  %,7 R'J  D @%,w$7 "@ %< w , > %' Z  ! w2.V ,<7 8.7 (=I) **** UNKNOWN LINE TYPE OR SYNTAX ERROR AT LINE **** R  w[A :07 / PPP/!  0%/%/t  d %/ !/ @ Q H r7*'"".$!+- 6  'ȥ' 7#   m/   %/ 0*0/(SYLI?15 IDX -- ALLOWABLE NESTING LEVEL OF INCLUDES EXCEEDED 1 IDX -- CLOSE ERROR ON INCLUDE FILE FCS ERROR CODE: , IDX -- ILLEGAL SWITCH ON INCLUDE STATEMENT * IDX -- SYNTAX ERROR ON INCLUDE STATEMENT L2 IDX -- OPEN FAILURE ON INCLUDE FILE FCS ERROR CODE: %j6 |2 ^7 T4fff77z >   , 7xϷhϷR @1 z1 /` `\:%'74%' D17 *p0 &ȕ41 B#p"1$0&#&d 81 1 2 *& U ZЕ 7I)?< 8   &rG0 ! IDX -- ERROR ON OUTPUT FILE3In) 7fB~< IDX -- ERROR ON INPUT FILE FCS ERROR CODE: TT4 T *< 00x|Oxss!7 Ld`4~`4 j% %%C   F    .% %  e  .%    %z%aE  ѕ  J 1)% 7 ~ % %9p 8 d  %9P   D  7 .? 6L -? n H4 CD z ? <`4 4 @ `4 D 6  dCD "  ? %4n /`4 0%/%e4%/ %/ӕ d z &f4   H  %H B~Wp `0 %<-x ? b?  *  INDEX V01 SOURCE LISTING ACCEPTASSIGNBACKSPACEBLOCKDATABYTECALLCLOSE(COMMONCOMPLEXCONTINUEDATADECODE(DEFINEFILEDIMENSIONDOUBLEPRECISIONDOENDFILEENCODE(ENDENTRYEQUIVALENCEEXTERNALFIND(FORMAT(FUNCTIONGOTOIF(IMPLICITINCLUDEINTEGERLOGICALOPEN(PARAMETERPAUSEPRINTPROGRAMREAD(READREALRETURNREWINDSTOPSUBROUTINETYPEVIRTUALWRITE( ? 4ҋw7 7 %w|% wr%w%w%wT%"w%#w@%&w6%*w%,w"%'w%w%/wwD@( 8) , &/w=/w@( )   = ,w/  4eʋ/4wfe47 @'" @ =/p4lw*w\@* @8LeHw< w4@( &)  =w0 XG  G7 G0 b R)`3 IDX -- COMMAND LINE INPUT ERRORC!I)nInf " IDX -- COMMAND LINE SYNTAX ERRORC"I) Nȕ:I @  IDX -- INVALID SWITCH6DRNI:)ww0w0Uw0RrG"tI$I&#R' # IDX -- OPEN ERROR ON OUTPUT FILED"I)wB nIȕ:I N‡www0Dw0w0:G"tI$H&#&d # IDX -- OPEN ERROR ON INPUT FILEE!I)wG`7 @ &w0w0Tw0 w0w02w0x7 4w0bw0w0X4w0@w0w067 7 P w0"w0w0 6rGrG7|0 pB~ .rG fG XrG rG 7 @II)w\HH'hHH IDX>P(SY8SY(HE6IDE6IEX6ILP6INS6IF 6I I IDX -- Command line format: = [] Valid IDX Switches: /DE - Treat debug lines as source /EX - Extend source scan to column 80 /HE - List this message on the terminal /LP - Output in line printer format (132 col.) /NS - Disable listing of FORTRAN source input /F4P - Number lines identically with F4P compiler /-F4P - Number lines identically with FOR compiler &9/ |e t/ <K 2j@& j@ eDR7FK E  K K  FHBD7 B ,7  tL x6L 87 7 INDEX CROSS REFERENCE LISTING / IDX - WARNING: END STATEMENT IN INCLUDED FILE ^7 ZL  J M INDEX SYMBOL TABLE FULL-PARTI00ńȄ*AL CROSS REFERENCE LISTING INDEX RESUME SOURCE LISTING +-".NOT..TRUE..FALSE.+-/***.AND..OR..GT..GE..LT..LE..EQ..NE..XOR..EQV.7 TM w_%( t  (^8 X)R L/%), ?26 ,%.* ( R&aM N!w%'  8) D > qM w  ȋ ȋЋ E¥  ¥:ee D a` B@ (    ¥ ¥e@e-(T(j(T**(,(*'(>)))**j(>)KT*)),*h-T*,D+'R2**,>-'(T*+(*'j('T*()+'-  < p 0`  %H+ ы$~"%.!n@ z e@ j    B f V w0f@%D%E@ , V %+%-@  <@  0  IDX -- UNABLE TO EXTEND MEMORY AT LINE ; DSW = /nP e nP |C 60 0  3- -7 Xpss1 ^ f , ,B@- @ @7e-  e ewj& @YLee7Dw:w:(P rP7P rP77 Ih) = * ACAGASBSBDBYCLCMCNCSCXDADEDFDIDODPEFENEQEXEYFBFCFDFIFLFMFNFRFUGTIFINLGOPPDPGPRRDRLRWSBTYVIWR.AND..OR..XOR..NOT..EQU..LT..LE..EQ..NE..GT..GE..TRUE..FALSE.00ɅʅͅЅx|OxssRA]&f &ff  w &Ba +- ʥ# . U 0   b   `     w @eE D` bl lrw   B eE"s    s-  Csl;#; [ 1 1 , 1 3 ] I N D B L D . C M D;*[11,1]IND/PR/MU/RW/-FP,[111,13]IND/CR/-SP=G[11,13]LIB13/LB:GETNUM:INDASK:INDAS1:INDAS2:INDDEF:INDERR:INDFDC:INDFILF[11,13]LIB13/LB:GNBLK:INDGOT:INDIF1:INDIMP:INDINX:INDMCR:INDNP1:INDOPNH;[11,13]LIB13/LB:INDPDW:INDPO1:INDPRC:INDROT:INDSET:INDSU1:INDSU2:INDSU3@[11,13]LIB13/LB:INDPDW:INDPRC:INDROT:INDSET:INDSU1:INDSU2:INDSU3[311,13]INDPO1MRH[11,13]LIB13/LB:INDWFT:MGCML[1,1]EXEC.STB/SS/;8; IF THE ALTER-PRIORITY DIRECTIVE IS AVAILABLE, THEN IND4; WILL LOWER ITS PRIORITY TO "WPRI" WHEN WAITING FOR6; COMPLETION OF MCR COMMANDS. "WPRI" SHOULD BE DEFINED7; LOW ENOUGH TO AVOID THE OVERHEAD OF EXCESSIVE CONTEXT9; SWITCHING. HOWEVER, IT MUST BE HIGHER THAN THE PRIORITYD6; OF ANY COMPUTE-BOUND TASK. A TYPICAL VALUE IS 12(8).1; NOTE THAT THE VALUE MUST BE SPECIFIED IN OCTAL.W;DGBLDEF=WPRI:12;N;12; IF YOUR SYSTEM HAS THE ALTER PRIORITY DIRECTIVE,6; IMPROVED RESPONSE IS POSSIBLE FROM THE INDIRECT FILE1; PROCESSOR IF THE DEFAULT PRIORITY IS SET TO 65.W7; HOWEVER, IT SHOULD BE SET TO THE SAME VALUE AS "WPRI"O1; (SEE ABOVE) IF THIS DIRECTIVE IS NOT AVAILABLE.U3; NOTE THAT THE VALUE MUST BE SPECIFIED IN DECIMAL.T;NPRI=65; ;M STACK=128E;H-; NUMBER OF UNITS = NUMBER OF DATA FILES + 3.A/; (NUMBER OF DATA FILES DEFINED BY INDFCS.MAC).U;BUNITS=7EASG=TI:1ASG=SY:4:5:6:7 TASK=...AT.1LIBR=SYSRES:RO/HAS THE ALTER PRIORITY DIRECTIVE,6; IMPROVED RESPONSE IS POSSIBLE FROM THE INDIRECT FILE1; PROCESSOR IF THE DEFAULT PRIORITY IS S;#; [ 1 1 , 1 3 ] I N D B L D . C M D;-[11,1]IND/PR/MU/RW/-FP/DA,[111,13]IND/CR/-SP=G[11,13]LIB13/LB:GETNUM:INDASK:INDAS1:INDAS2:INDDEF:INDERR:INDFDC:INDFILF[11,13]LIB13/LB:GNBLK:INDGOT:INDIF1:INDIMP:INDINX:INDMCR:INDNP1:INDOPNH;[11,13]LIB13/LB:INDPDW:INDPO1:INDPRC:INDROT:INDSET:INDSU1:INDSU2:INDSU3@[11,13]LIB13/LB:INDPDW:INDPRC:INDROT:INDSET:INDSU1:INDSU2:INDSU3[311,13]INDPO1MRH[11,13]LIB13/LB:INDWFT:MGCML[1,1]EXEC.STB/SS/;8; IF THE ALTER-PRIORITY DIRECTIVE IS AVAILABLE, THEN IND4; WILL LOWER ITS PRIORITY TO "WPRI" WHEN WAITING FOR6; COMPLETION OF MCR COMMANDS. "WPRI" SHOULD BE DEFINED7; LOW ENOUGH TO AVOID THE OVERHEAD OF EXCESSIVE CONTEXT9; SWITCHING. HOWEVER, IT MUST BE HIGHER THAN THE PRIORITYD6; OF ANY COMPUTE-BOUND TASK. A TYPICAL VALUE IS 12(8).1; NOTE THAT THE VALUE MUST BE SPECIFIED IN OCTAL.W;DGBLDEF=WPRI:12;N;12; IF YOUR SYSTEM HAS THE ALTER PRIORITY DIRECTIVE,6; IMPROVED RESPONSE IS POSSIBLE FROM THE INDIRECT FILE1; PROCESSOR IF THE DEFAULT PRIORITY IS SET TO 65.W7; HOWEVER, IT SHOULD BE SET TO THE SAME VALUE AS "WPRI"O1; (SEE ABOVE) IF THIS DIRECTIVE IS NOT AVAILABLE.U3; NOTE THAT THE VALUE MUST BE SPECIFIED IN DECIMAL.T;NPRI=65; ;M STACK=128E;H-; NUMBER OF UNITS = NUMBER OF DATA FILES + 3.A/; (NUMBER OF DATA FILES DEFINED BY INDFCS.MAC).U;BUNITS=7EASG=TI:1ASG=SY:4:5:6:7 TASK=...INZ1LIBR=SYSRES:RO/HAS THE ALTER PRIORITY DIRECTIVE,6; IMPROVED RESPONSE IS POSSIBLE FROM THE INDIRECT FILE1; PROCESSOR IF THE DEFAULT PRIORITY $; COMMAND FILE TO PATCH INDIRECT MCR; MUST BE RUN UNDER [1,1];A; JUL/81 SOFT DISP, ENABLE QUIET...ETC AND SET /UIC DOESNT CHANGE; NESTED INDIRECT UIC FILES; INS [11,1]PAT'MAC [11,13]INDMCR.POB=[11,13]INDMCR.PAT%MAC [11,13]MGCML.POB=[11,13]MGCML.PAT,LBR [11,13]INDMCR;1=[11,13]LIB13;1/EX:INDMCR*LBR [11,13]MGCML;1=[11,13]LIB13;1/EX:MGCMLAPAT [11,13]INDMCR;2=[11,13]INDMCR;1/CS:102075,INDMCR.POB/CS:25451>PAT [11,13]MGCML;2=[11,13]MGCML;1/CS:156754,MGCML.POB/CS:24275;); REPLACE CHAN00х҅ӅԅȄ*GED MODULES IN NEW OLB FILEN;E1LBR [11,13]LIB13;2/RP/-EP=[11,13]INDMCR;2,MGCML;2FTKB @[11,13]INDBLD...ETC AND SET /UIC DOESNT CHANGE; NESTED INDIRECT UIC FILES; INS [11,1]PAT'MAC [11,13]INDMCR.POB=[11,13]INDMCR.PAT%MAC [11,13]MGCML.POB=[11,13]MGCML.PAT,LBR [11,13]INDMCR;1=[11,13]LIB13;1/EX:INDMCR*LBR [11,13]MGCML;1=[11,13]LIB13;1/EX:MGCMLAPAT [11,13]INDMCR;2=[11,13]INDMCR;1/CS:102075,INDMCR.POB/CS:25451>PAT [11,13]MGCML;2=[11,13]MGCML;1/CS:156754,MGCML.POB/CS:24275;); REPLACE CHAN;%; [ 1 1 , 1 3 ] I N F O B L D . C M D;N[11,1]POOL/PR/-FP/MU,[111,13]POOL/-SP/CR=[11,13]LIB13/LB:POOL,[1,1]EXEC.STB/SS/STACK=32ASG=TI:5LIBR=SYSRES:RO/;[11,1]SYS/PR/-FP/MU,[111,13]SYS/-SP/CR=[11,13]SYSTAS.ODL/MP TASK=...SYSLIBR=SYSRES:RO ASG=TI:2:3STACK=64 UIC=[2,2]PRI=150EXTSCT=STORD:600//[11,13]INSLIB/CR=[11,13]DPMLT,ERINS,GTMCR,INSTL1,[11,13]INSLIB=[11,13]IOINS,INSPR,INSRU,SCINS2[11,13]INSLIB=[11,13]SRSTD,VRFHD,VRFLB,BLDGC,BLDSTUIC=[1,4]PRI=140 ; HIGHER FOR IASLIBR=SYSRES:ROSTACK=64ASG=CO:2POOL=255GBLDEF=DFPRI:144GBLDEF=F.STAT:122GBLDEF=F.DID:126PAR=GEN/<0U; J? X  g' <,  L (N Y fa#f###p#####8#`########(#P#x#####@###@#h#####0#X##0#X##### #H#p###p#####@##{'jL)" ); ),:  3M 3r 3v<5a(<5[<5f<5z5Z<6+@6a6Pc63c6Gc6Xuc6ud60zd6d6e60f6p!f6+f6h6zi6h`i6xdi6fi6@yl6`m6#n6n6 Sp6p6 p6 p6@ p6h p6 p6 p6 p6 p6p6p6p6(p6Pp6xp6p6p60*p6X*p6*p6*p6*p6*p6 +p6H+p6p+p6Op6Op6Pp6(Pp6PPp6xPp6Pp6Pp6pbp6bp6bp6bp6cp68cp6`cp6cp6p6pp6)r6r6pr6r6Гs6ds6~t6t6` t6xdt6ft60ut6Xut6ut6ut6ut6ut6@yt60zt6u68u6xKv6Zw6 XKKSKKKTqKsKDwKzK L( LX Lke Lr Lx Lz:O:O:O? :O<:O#:Og':O4:O5:OK:OjL:OU:O:d:OBd:Oke:Odf:Of:Or:Or:Or:O:O:O e& exQ ep eq e6 ecq:qq#qa;qLqqqsYqtM t t w<,wews{{{2: =E: ET` Jt!J<,JZgJqeff<ft!fg'f,fs:fKfUf:dfdffffIgfu~ffp4Ss,F?T NN00مʅͅЅx|Oxssfމ+g'6Ry"f6y6{6{6{6<t!g'5QBdrrrg'zR\}Yq):y*"*"ʫy+f̫` ѫZ*"TG B&+@Bb'3bd8,:dy= N"xZ.:f"f:s)::~:xZ AwxZ*"y}+fV2+@VPK3b00҅ӅԅȄ*UX2 NXD Vp4Sh Zf&   fN  5 mB m    ~ B C UĎz"xZĎD#XH'#H#0H&#H`@{H#@H)p@#H W@#H#HzTG@#H#(H#0H(#PH#XH)#xH#H*#H#H#H-?T@#H#H+#Hz#H,#H# H.#@H#HH/#pH0#H@S@#H1}@̫` @{H{HE:@#Hz#pH #H #H ET`@#H#H#H #H#H#H"#H#8H#@H #`H#hH!z#pH2#H3#H#H##H4#H#H$#H5#H#H% :<Ԁ3"l: ?Th Ԁ0INS -- ILLEGAL GET COMMAND LINE ERROR CODE " ԀԀ,,COMMAND SYNTAX ERROR%N%VA ", Ԁ,ԀF%FNONCONTIGUOUS TASK IMAGE FILE %X "F ԀFԀggILLEGAL SWITCH%N%VA "g ԀgԀ{/{NO ROOM AVAILABLE IN STD FOR NEW TASK%N%VA# "{ Ԁ{Ԁ)ILLEGAL ERROR/SEVERITY CODE %P %P %P "   ԀԀCOMMAND I/O ERROR "   ԀԀ$INDIRECT FILE OPEN FAILURE%N%VA " ԀԀ'INDIRECT COMMAND SYNTAX ERROR%N%VA " ԀԀ & INDIRECT FILE DEPTH EXCEEDED%N%VA "  Ԁ ԀBBILLEGAL DEVICE/VOLUME%N%VA "B ԀBԀ]]ILLEGAL FILENAME%N%VA "] Ԁ]ԀssOPEN FAILURE FILE %X "s ԀsԀ$UNKNOWN KEYWORD IDENTIFIER%N%VA " ԀԀ!I/O ERROR TASK IMAGE FILE %X " ԀԀILLEGAL POOL LIMIT FILE %X " ԀԀILLEGAL PRIORITY FILE %XV "   ԀԀ%ILLEGAL TASK STATUS WORD FILE %X """ ԀԀIMPROPER SIZE DATA FILE %X "$$ ԀԀ5 5UNDEFINED PARTITION FILE %X "&&5 Ԁ5ԀQ-QSPECIFIED PARTITION IS TOO SMALL FILE %X "((Q ԀQԀz0zFAILED TO CREATE HEADER IMAGE AREA, FILE %X "**z ԀzԀ"NO NODE AVAILABLE FOR FILE %X ",, ԀԀ%TASK NAME ALREADY IN USE FILE %XE ".. ԀԀILLEGAL UIC FILE %X "00 ԀԀ&UNDEFINED GLOBAL AREA %2R FILE %X "22 ԀԀILLEGAL DIRECTORY%N%VA "44 ԀԀ2*2DATE MISMATCH GLOBAL AREA %2R FILE %X "662 Ԁ2ԀX,XLENGTH MISMATCH GLOBAL AREA %2R FILE %X "88X ԀXԀ2STARTING APR MISMATCH GLOBAL AREA %2R FILE %X ":: ԀԀ/FLAG WORD MISMATCH GLOBAL AREA %2R FILE %XI "<< ԀԀ ILLEGAL HEADER DATA FILE %X ">> ԀԀ$MEMORY MAPPING CONFLICT FILE %X "@@ ԀԀ5GLOBAL AREA %2R ACCESS REQUEST VIOLATION FILE %X "BB ԀԀFFILLEGAL LABEL DATA FILE %X "DDF ԀFԀa'aGLOBAL AREA NAME ALREADY IN USE %XL "FFa ԀaԀ!WATCHDOG TIMER OVERFLOW%N%VAI "HH ԀԀ*TICKS PER SECOND IN SCOM INVALID%N%VA "JJ ԀԀ)TASK REQUIRES MORE THAN 7 GCD'S%N%VAC "LL ԀԀ1ILLEGAL FUNCTION FOR NON-PRIVILEGED TERMINALT "NN ԀԀ/ILLEGAL OPTION ON SHAREABLE GLOBAL AREA %X "PP00ʅͅЅx|Oxss ԀԀD/DSHAREABLE GLOBAL AREA HAS NO OWNING UIC %X "RRD ԀDԀo9o*DIAG*-TIMEOUT SPECIFIED FOR NON ACCOUNTABLE TASK %X "TTo ԀoԀ ILLEGAL PRIORITY VALUE%N%VA "VV ԀԀ<SHAREABLE GLOBAL AREA TASK FILE CONTAINS HEADER FILE %X "XX ԀԀILLEGAL RE-INSTALL FILE %X "ZZ ԀԀ&NO SWAP SPACE FOR REGION, FILE %X "\\ ԀԀ5%5TASK IMAGE FILE %X HAS NO HEADERX "^^5 Ԁ5ԀV$VTASK INCREASE TOO LARGE FILE %X "``V ԀVԀv'vFILE %X IS AN EXEC PRIVILEGED TASKO "bbv ԀvԀ+TASK UIC DIFFERS FROM YOUR UIC FILE %XA "dd ԀԀ!ILLEGAL DEVICE TYPE FOR TASK "ff ԀԀ,INCOMPATIBLE SYSTEM VERSION NO. FILE %X "hh ԀԀ2SUPERVISOR MODE HARDWARE REQUIRED FOR TASK %X "jj Ԁ:w  E DW!6! `P A p ! lW "" (:< >:< BԀ L"P?T V:<ZET` ^:<`)pd)ph}v̫` |E:(|   ,@SE: `ET``TG`Uz.D#X@#@`@ @8@|f@#@@ X@#@?T@%@@@S@r?S@̫` @g'@{@E:@#@4{W@ @j@@ET`@#@ h s0 b , 5AW,|w,W,d fhȥ/)w7` `¥¥nE:?S Xg'$( @j,4{W44{W<4{WD#XԂE{H?T\`hx#y{h|¥ ¥¥ef    E5z#@{Ȃ#{Ȃ#{Ȃ$#%{.?T2E:6@S:E:>`BET`F`J̫` VZ @8^|f`% UN`z:~N`D#X@KDwHBb'@ 3rHs@ LrHi6h`Hqa;H t6` Hd6Hp eqHs6~Hz L(H g'H `@f6H| @ @8@<5fHi6@yHj5ZH<5[H <,H)@l6`H{@h6zHzzc63Hr6pHBp@sYqHf6+Hs6dH:OH'@|f@a6H 3MH{'jLHp6OH4KzHp6OH6zp6PH8 XH<5a(Hp6PPH<p6xPH>t6xdHVc6XuHqHB&@KHc6uHd?T@u6xKHp6(PH:n6Hz exQHp6PH@d6Hvp6PHBq#H e6H<5zHt60uHXi6xdHht6XuHZp6pHr eHt6uH\TG@n6 SHz 3vHt6uHbp6H:O#Hr6HKSH06Ry@t6Hqt6uH^p6Ht6uH`p6HT;w@%@ LxH zp6(Hp60*H"p6PH p6X*H$p6xH p6*H&KH #@p6H Hp6*H*p6Hc6GHp6*H,t6fHTz#H@KTqHw6 XH:O:dH:OBdHp6Hp6*H( W@ %@2@:OHp6 +H.:OHqLqHp6H+H0z)W@X@#@p6p+H2:O? HqH:OkeHi6fHfm6#Hw<,H faH :OUH LzHl @e60Hz#fH{@v6ZH:OdfH{@)0@Lh8@[W@ e&H:OrH:OfH :OrH:OrHt6@yHdKsH@zYq@r6H~r6ГHu68Hx:Og'H4{W@:OKH a6PH  LHd60zHlp6)Ht60zHn:OH:OH @j@zgj8@p6pbHDt6Hp6bHHKH@p6bHJp6 Hp6cHL:OjLH LXHweHp6bHF@p6cHRzp6 H LkeHKHET`@f6p!Htwr@p6 H:O4Hp68cHNp6@ Hp6`cHP:O5Hhp!@p6h Hcq:Hz:O<Hw g@p6 H@p6 H YHp6Hp6 H #p@A g@ epHwsHqH (NH z:<$fhhJt!ht!h$R\}h0fhs,Fhzhf,h+g'h$fUhBdh6h ft!h&zJqh< Nh00҅ӅԅȄ*Nh<hhfs:heh(JZgh<fh:rhrhrhg'hfKhhz̫` h2f:dhg'h&f<h2h4h"5h"fdfhfu~hQh ffh fIghfg'h fhމh:J<,h8: 6yh6{hv6{hZ6{hf:(  :<&& :n 7 &'U& 5 e ŵ :U& |X :<&sT;w":<&&l ,0Lh82 %8 W>BpBgj8FA gN:<:V:<&ZET`^'`)dhp!Zj26 E'& B5B,| ,d5  5&z:<2:<6 :<&6Ry" @8&|f(%. @j24{W:4{WBwrD:< J#XԂK{N?TT:<&n "  5&5   f?Ae w   5&5:< :<" :< :< Bb'&:<&,{# 0w g2:< 8:<T:<Z{#p `B&f:<&l*5  5&  eef X   6m~:< #ق {:<{#H  $:<&*Yq06TG:)W>[WN?T\TG``d:<6h:<l ȋ Х] Х,[ Ћ ww5$ < e f.:<.2<:<$ B:<< T:<\)0Uz:xZD);H tHb<&Kq@p@),:H<&9@)"H@tMH`tHd<&D@ z gE:h ghET`hWlz ghTGhWp `'( lzy    gG $$\((x x..  <&9<&Kq<&D bb'll INS>~ ~P  g P  W   g$$&&& WbbJ Jff lz g  W SY ( p    `' g$$&& ( WbbJ Jff lzlz lz Ud`z:fd`D#@p4S@ :@'ą@)@{@ #@@f@,w@,@ѫZ@zy@sYq@{'jL@?T@W@f,@6@TG@ft!@ N@)[}@fs:@@#@,;@z#@@2@6{@6{@f:d@f@+f@{@c@@{@g'@f<@tM@zfdf@fu~@ff@#@fg'@#@wr@,hL@wZ@hp!@f@eW@#@#@#@" T6Ryh0lH` j lH` 00w U`  T0%% & ȋȥ/ ȥ,  ȥ[ ȥ] ww@ . , NW ff :#Ԃ{" #&eW.0flz~ѫZZ-     ] ~TG yTG(TG, N.)[}2'ą4)8hp!åS.åM!åH 0 9 E0 1eD .wn )W!&< ! W!< ! 2Fp4Sfp4Szp4S>W!Q IE w,+fp4S*22#ӂ3{8#Ԃ9{UR:sDsYq@g'@@f@ @Yqh D 77E& f,28>sYq@g'DUzAwxZD);@),:@)Ty@)"@?T@W@#@#@#@@6{@{@=@J@=@t@#p@#@ hѫZhyh w @p B$ĵ4ĵ!%'% %Ee@ P  eDWt"@=:)"B);J),:R)Tyv#@΂w{|#Ƃ}{R| e ew& ĵ V 11@ Be 8 #͂ {#pƂ{6{<=H#I{L?TUJy}D :@ !@4{W@ Dʫyh HBm@` E, ,  B @ B 烱 ! :4{W&4{W"UdzV2dD,@f@Jt!@)sE@ L(@ g'@ :@ <,@@t6V@L~@R\}@z !@&0@sd@,w@${@8@$0@@@@)G@s,F@)2H@Kz@p8@e;@n@zK@ @@?T@/0@8@W@fU@Bd@#@Jq@$0@8@TG@ N@N@ձ@#@zfs:@#0@#@:d@ @d@.Z@#p@'0v@<6H@JZg@,(d@ @)W@r@zr@r@6{@g'@w<,@ Lz@6{@Q@{@r@)0@{@g'@[W@00p@zt6hQ@00@${K@5@fu~@  L@30@@ LX@fIg@fg'@#@cq:@ Y@w g@R#@#@@ܙ@މ@#@ (N@#@ B&h w V5 P  |    4 l   )w& ` %E BW LXg'\#ǂ]{`6{dl @psdt`xsdrw r7WteEwL@pe \w~00҅ӅԅȄ*rL~ #߂{6{Q"s,F(5<މBTGFH)sEL)sEPV)2H^)2Hbd)Ghձ5Ep| r t  2EW!قWue ςE`B!````e ~66{ w<,g'#ӂ{N"މzt5 lE`B!d0 5pU`e25eP  !f&e E` h L( Lz g'(. Lz0g'D LzFg'Vfu~\fu~f#قg{jTGn)W[W r?T4U` /E``e@e?Wup!zf,T5B 55evwe.m Tfu~t6hQfu~ t6VNw gPfg'V#߂W{ffjfp6{x N|މlH  mD  @, ,7U~`e  $Q$ ,pnܙމ N N !$ :,${K2${K8${@8:s,F@cq:Bg'L\lJqp <,v <,xfIg0e` 15Ue w0 0 "0 0 D0 4  5le0e0 0 "0 D <,K g'*  L.Jt!6{# :6{>X^d0 D0 4  meWtW  " E~w55e D`LfU 5$fs:H{#p L6{Pw gRfg'Xd:dhdd jmA !57--3/ F ~~Bd N Nr"(,(d*&00$0@82s,F8$0@>$0@DJZgH <,N30 Rp8X30 `30F@3t JZg <, Bd#0R\}00s,F$0@8 f"/0@8&.Z('0v,,(d,,w .&0400p8$0@<$0@BD7WtEtEe "w @ 5@le0eDAnn )0fIgr r,B{# F6{JJqN YT ZKz\ g'bnr <,v (N5 eW!ه n ` "`5    8wUpWK g'  LJt!@` X^{# b6{rvTGz)sÈze e& W! Tpe |TT f p4 "fW R)sE)2H)2Hձ&0:>TGB)sEFL)2HT)2HXձNPp"0pDeEU w5  Z4Wte T8{#@ >6{Bcq:Dg'^bTGfh)sElr)2Hz)2H~ձ\r !D$ v w`e N *{# .6{2TG68)sE>)sEBH)2HP)2HTe;UĎzVPKĎD[X@ Lr@f@Uu@@Jt!@)sE@)E@t!@[8@ g'@,v@z L(@ <,@R\}@w@)@&0@sYq@:O@@)G@)2H@e;@ X@z@K@ ``w@z/0@8@W@f,@+g'@Bd@Jq@#@TG@N@ձ@#0@#X@:O#@#x@<@zfs:@30@@ Lx@w}@"0W@#@ @#@e@:O:d@:OBd@[@,(d@[Z@:O@z)W@r@r@r@:Oke@6{@6{@g'@w<,@ fa@:OU@ Lz@p@f:d@{@z,q@:Odf@g'@#0}@)0@[W@00p@:Or@:Of@:Or@:Or@pW@[@5@w @z:Og'@wp @:OK@  L@:O@Q@:OjL@ LX@s@ Lke@#@wr@#@:O4@:d@z:O5@f@:O<@#@#@[8@0Q@ Y@#8@#`@#h@މ@0@J<,@#@2#@#@ (N@ Bb'h( $w@)wr w} wp w   $d$#w e7700 ʅͅЅx|Oxss  e     ~ WTG)W[e[Xe"TG& ()sE.)sE2 8)2H@)2HF)EJL)GPձX \[X`[T           7  5 5z[8[8 [8[Z[[W[W [W$[8([8,[80 4:Oke6+g':fB:OH:OP[W|U%  5U%  wW%H  2W%<514[W:O:d:O:d:d":d.:Odf8#8ǂ9{F:OfP#`ǂQ{Z Lz\:Okeb ``wdUuj#߂k{p#ǂq{tfL(~\ e#--e7!5--w :Og' :Og':OU:OK#ǂ{ 0Q$f:d&pW,f:d.pW4s80> LX@:OkeFf:dNf:dV#ǂW{Z6{c5 eWtw m7-M 75 7 5fs: LX :Oke#0ق{:O#$fs:*p.p0fs::#̂;{@R\}DsYqFg'LfR:OTfZ LX\:Okeb#X{ 5e   e \ wz2-2-2-22  -x{ LX :OkeJq  LJt!# ':OjL5;A#x͂B{K"0WS"0WY#͂Z{_#0}g#0}o#0}X 2 w*5555 555|{#h  ,q &0#΂{30@$ Y* Y0 (N4 <,: >/0@8@ faF g'J&0L g'P,vR&0PU5eew w   5U5f,(d&0 w<,g' LX+g')0  L&J<,.J<,2<8t!> B LkeD:OkeJ,qLf,H$d7\W \W YwW Rw777-} L( Lke LX Lr Lx Lz :Oke :Okeg':O4"މ&:O04:Or6r::Org'DTGH N)2HV)2HZe; eeww )w5d  f?wNZ#҂{ TG)W[W,6{0#ӂ1{46{L#ǂM{P6{ZKffRDe ׭C .Wt-2 Wt# Wt 0  00p /0@80/0@8Udzd8,dD!0@s@f@"0@@@R\}@&0@f@$0@@@s,F@p8@zn@n@z@cK@/0@8@30@8@W@f,@fU@ N@$0@8@#@30@@#0@"0W@z,;@M@# @.Z@'0v@6{@{@{@#0}@00p@.M@00@30@Q@f@2eW@މ@#@ h Rw ! 7-7-w w& B~~W "0Wf"0W f&#ӂ'{*6{.30 2cK4M8p8<#͂={B6{H30 FNf"0W f "0WfU#0z#0}Q#0}".Z$'0v(R\}*000!06"0@:.M<'0v@fB/0@8T H`` 445 r30@ s,F $0@8f00pf,&0 N މ*$0@.$0@4,;6f,; SUCH AS FROM INDIRECT MCR, YOU SHOULD REDEFINE THE FOLLOWING; GBLPAT TO BE NON-ZERO.;; WARNING, DOING THIS WILL EFFECTIVELY GIVE EXEC-PRIVILEGES;; TO ALL REAL TIME AND SYSTEM USERS AND CONSEQUENTLY ENABLE "; THEM TO VIOLATE SYSTEM SECURITY.;IGBLPAT=INSTL:$GVPRV:0P/,[111,13]INS/-SP/CR=[11,13]INSODL.ODL/MP;; OPTION INPUT; TASK=...INSPRI=150 STACK=128 ASG=TI:1,TI:2LIBR=SYSRES:RO;; **** BUILD OPTIONS ****;<; IF YOU WANT TO BE ABLE TO RUN INSTALL AS A REAL TIME TASK,>; SUCH AS FROM INDIRECT MCR, YOU SHOULD REDEFINE THE FOLLOWING; GBLPAT TO BE NON-ZERO.;; WARNING, DOING THIS WILL EFFECTIVELY GIVE EXEC-PRIVILEGES;; TO A*:~N`LLh8@ XH* W@ @j@ %@ @8@ H* g'H <,H  LH (NH YH* faH #fH#X@#@#H@*#@#p@{'jLH'@)@*)W@ 3MH 3rH<5a(H<5[H*a6Ha6PHc63Hc6GHc6XuH*c6uHdd60zHld6Hvd6Hpe60H*f6p!Htf6+Hf6H|h6zHzi6h`H*i6xdHhi6fHfi6@yHjl6`Hn6H*n6 SHp6Hp6 Hp6 Hp6@ H*p6h Hp6 Hp6 Hp6 Hp6 H *p6Hp6Hp6Hp6(Hp6PH *p6xH p6Hp6Hp60*H"p6X*H$*p6*H&p6*H(p6*H*p6*H,p6 +H.*p6H+H0p6p+H2p6OH4p6OH6p6PH8*p6(PH:p6PPH<p6xPH>p6PH@p6PHB*p6pbHDp6bHFp6bHHp6bHJp6cHL*p68cHNp6`cHPp6cHRp6Hp6pHr*p6)Hr6H~r6pHr6Hr6ГH*s6dHs6~Ht6` Ht6xdHVt6fHT*t60uHXt6XuHZt6uH\t6uH^t6uH`*t6uHbt6@yHdt60zHnt6Hqu68Hx*u6xKH00  Ѕx|Oxssw6 XHx6HT;w@A g@*Bp@KHKHKTqHKsH@*KH L(H LXH LkeH:OH*:OH:O? H:O<H:O#H:Og'H*:O4H:O5H:OKH :OjLH:OUH*:O:dH:OBdH:OkeH:OdfH:OfH *:OrH:OrH:OrH:OH:OH*[W@ e&H exQH epH eqH* e6H eHcq:HqHq#H*qa;H qLqHqHqHsYqH*weHw g@wr@wsH{@*{@{@4{W@|f@%@*@ @ET`@s@?T@*@6Ry@Yq@2@TG@*B&@Bb'@`@@X@*hp!@l @gj8@(:<*2h2Jt!hJ<,h6JZgh8Jqh8*eh&fhf<hft!h$fg'h *f,hfs:hfKhfUhf:dh*fdfhffh fIghfu~hfh*fhs,Fh NhNhމh*6h h <ht!hg'h*5hQhBdhrhrh*rhg'h$zh hh*R\}h.h"̫` h0:(6yh"6{hT6{h`6{hh:(  :<$$ :* 7 $'U$ *X :<$sT;w":<$&l &5 e ŵ& Lh8 % WBpgj8$@U$ (A g :<$ET`')hp!`04 E$ &:<0:<4 :<$6Ry zB5B,| ,& @8 |f% @j4{Wd5  5*4{W wr:< #XԂ{?T&$ "  *:<$ :<  :<":< :<5$5(Bb' :<${# w g* 5$ f?Ae w :< :<$   5$5*:< {#p B&:<$$5:< #ق {:<8  5$  ({#H   :<$Yq*P ee P & TG)W[W?T(TG*v 4m ȋ Х] Х ` :<4:<:<*,[ Ћ ww82 ":<8" e f  :<Ae w :< :<$   5$5*:< {#p B&:<$$5:< #ق {:<8  5$  ({#H  ;;; [11,13] LBR13.CMD; ; LIBRARIAN FILE FOR UFD [11,13];;@[11,13]INSLIB;@[11,13]CMPLIB; @[11,13]LIB13;-[11,13]LIB13/CR/-EP=[11,13]ACT,LOA,LUN,MCRERRD'[11,13]LIB13/-EP=[11,13]MCR,MEM,MFT,OPE1'[11,13]LIB13/-EP=[11,13]REA,RED,TER,TIMB&[11,13]LIB13/-EP=[11,13]TKTN,UNL,REMOV/[11,13]LIB13/-EP=[11,13]ERREM,CONTN,ERCON,RUNMNI3[11,13]LIB13/-EP=[11,13]RUNPRS,RUNDSP,RUNERR,RUNINSI[11,13]LIB13/-EP=[11,13]RUNCSI%[11,13]LIB13/-EP=[11,13]SYSPRS,SYSSCN-3[11,13]LIB13/-EP=[11,13]TASSYS,DEVSYS,PARSYS,COMSYSW [11,13]LIB13/-EP=[11,13]POOL,SGA*[11,13]LIB13/-EP=[11,13]VTDEMO,DEV,UTL,SWA,[11,13]LIB13/-EP=[11,13]GETNUM,INDASK,INDAS13[11,13]LIB13/-EP=[11,13]INDAS2,INDDEF,INDERR,INDFDC[3[11,13]LIB13/-EP=[11,13]INDFIL,INDGNB,INDGOT,INDIF1E3[11,13]LIB13/-EP=[11,13]INDIMP,INDINX,INDMCR,INDNP113[11,13]LIB13/-EP=[11,13]INDOPN,INDPDW,INDPO1,INDPRC33[11,13]LIB13/-EP=[11,13]INDROT,INDSET,INDSU1,INDSU230[11,13]LIB13/-EP=[11,13]INDSU3,INDWFT,MGCML,SUIC'[11,13]LIB13/-EP=[11,13]DCL,HEL,BYE,WHOA[11,13]LIB13/-EP=[11,13]PWD,SET3]LIB13/-EP=[11,13]POOL,SGA*[11,13]LIB13/-EP=[11,13]VTDEMO,DEV,UTL,SWA,[11,13]LIB13/-EP=[11,13]GETNUM00 "Ȅ*<0U^m<%z&0`]z"_ar""H!\\,Z-L2t:C .t:W xt:X t:t:""t:#&bt:&4t:,.t:O9t:X:t::Pt:Qt:Z&t:N`t:dRt:wft:ft:rt:wt:'ztt:(zft:)zt:ĐYMVNQ`Q""BR!DR$l[R SdE`+:dzfgfK4gIq2Lq5Uq0aU4sqskvs""ms:oLspScsffww zYzbzftzFwv*;}z|N}9u~JD~WM|Ql0*UPzPD v@"0@@ @Q@L@@:2@0{@@ @8@@sd@ @ d@&{@z @@W@ %@ @0{@@!{@W@9x@wT@ v@.l @ W@#0@"0W@ @z p@$9΅@ %@T; z@0{@Q@@Lh8@4{@  -  wT r 7 7 U047(ȥ ȥ/  H z 8(}>8(}8(}8(} "d(}$8(}*8(}<8(} @8(}H8(}N8(}TX @8Z8(}^ b8(}|ȥ/  %wd w0ȥ/w` w U` 85 -   P 8(}@8(}D8(} H8(} H8(}T8(}x8(}YU L5 Q JUE>UE7UE0U@ȥ=- fȥ: ȥ/"%# eb8(} 8(}8(}8(}"8(}(8(}08(}68(}>8(}D8(}L8(}z8(}T `e-r" wwwdw  ȥ/ ȥ:ȥ= Lɥ0ɥ7C0u`8 Q8(}W$W*8(}D8(}j~ w wE U` ww-w-5 - 8(}9x8(}9x8(}" @jB v Hd.}NL@P %X8(}` %RB~5 T` B~Uw5w w  %1X d(} 8(}` @sd( v .d.}B8(}L8(} Z8(}bT; zd8(}n$9΅hE rdEU0 r U0U0Аf ve0vEH~f v e Е P~Е `[(}j[(}L","%7O!z d(}8(}8(} d(}"8(}8(} "d(}7$8(}*8(} 0d(}O28(}88(} >d(}@8(}F8(}*,&  d w2@ d(}8(} 8(}eW d(}d8(}8(}d<}M d.} d<}M d.} d<}M d.} d<}M d.} d<}M d.} d<}  s d.}   d<}  L d.}   d<}ar d.} d<}z d.} d<} d.} d<}Œ d.} d<}y d.} d<}y d.} d<}y d.} d<}z d.} d<}z d.} d<}  z d.}   d<}""ΐ d.}"" d<}$$ϐ d.}$$ d<}&&А d.}&& d<}((ѐ d.}(( d<}**Ґ d.}** d<},,# d.},, d<}../; d.}.. d<}000; d.}00 d<}221; d.}22 d<}442; d.}44 d<}66} d.}66 d<}88B d.}88 d<}::y d.}:: d<}<<w d.}<< d<}>>as d.}>> d<}@@cs d.}@@ d<}B00 2Ȅ*BVs d.}BB d<}DD:d d.}DD d<}FF d.}FF d<}HH d.}HH d<}JJ d.}JJ d<}LLT d.}LL d<}NNT d.}NN d<}PP"T d.}PP d<}RRi d.}RR d<}TTn d.}TT d<}VV8 d.}VV d<}XX d.}XX d<}ZZ# d.}ZZ d<}\\ R d.}\\ d(}ACT -- NO TASKS ACTIVE ON TERMINALACT -- INVALID DEVICEACT -- INVALID TASK NAMEACT -- INVALID SWITCHACT -- TASK NOT ACTIVEAC|T -- TOO MANY TASKS FOR BUFFERACT -- NO BUFFER SPACE INVALID ADDRESS IN A.TI ACT -- INVALID SWITCH COMBINATIONACT -- /FU SWITCH REQUIRES A TASK NAMEACT -- DIRECTIVE FAILURE CURRENTRW SIZE EV 1-16EV 17-32ATL FLGSSTD FLGSEV MASKSMKTM CNTACT VERSATL ntADDRSTD ADDRTSK SIZE INITIALI/O PENDI/O PROGPOOL LIMPOOL USEREQ TASKdqREGIONS HW PARS HW PDRS ``"`D` 8(}   ):2 >>?.UtYzYMtYDLq@s@ @8@@GP}@|f@&{@W@W@wT@%@ @JQ@@@fy@a@:@ YMh( 0DV.... |  ) :||!HANDLER ALREADY ACTIVE FOR DEVICEHANDLER FAILED TO INITIALISEFAILED TO READ MCR BUFFER&HANDLER ALREADY LOADED FOR THIS DEVICE0EXPLICIT UNIT ILLEGAL FOR NON-MULTI-USER HANDLERDEVICE NOT IN SYSTEM,ILLEGAL FUNCTION FOR NON-PRIVILEGED TERMINAL SYNTCtAX ERRORHANDLER TASK NOT INSTALLEDFAILED TO LOAD HANDLER TASKwd*w: wH, D~ D~ 77 +:( w w5qw-w. * ,$sZGP}lwTn&{tQxW0ew!dT rl QH <b5 p  BT 9 p @+ D h P8W Lq 4wT6&{4HqH:h~Hz"HZH :fHPHZ@yH! Zg@04[qh:u~h3z""hZh:fhZTyhvdhX: ~ Zg@( Zg@Z~5ŝ$&(%*ex*s+w, ESӝ*ӝ+z~X:$X:&X:X:(X:X:%&X:* 0X:* 6X:+:X: >X: DX:,JRX:*VX:+TV* 3M .4Md,B~X: X:* X: X:X: X: "X: 2X: 68:<4>M@dBDFHJLNP,RBTl "5p3Xv -- UNKNOWN DIRECTIVE ERROR -- SYNTAX ERROR -- ILLEGAL FUNCTION OR SWITCH FOR NON-PRNTl   "5p "$3&X(v"IVILEGED TERMINAL -- DEVICE NOT IN SYSTEM -- TASK NOT INSTALLED -- TASK LOADING OR EXITING -- TASK NOT ABORTABLE -- TASK NOT ACTIVE -- PLEASE LOGON WITH "[UIC]" -- CAN'T READ MCR COMMAND BUFFER -- TASK EXITING -- TASK NOT ENABLED -- TASK CAN'T BE DISABLED -- TASK NOT DISABLED -- TASK DISABLED -- TASK CHECKPOINTABLE -- MEMORY UNAVAILABLE -- HANDLER NOT RESIDENT -- TASK ALREADY (OR STILL) ACTIVE -- TASK NOT FIXABLE -- NODE FOR FIXING UNAVAILABLE -- TASK ALREADY FIXED -- TASK NOT SUSPENDED -- TASK NOT FIXED -- ILLEGAL SWITCH OR SWITCH COMBINATION FOR THIS FUNCTION -- INSUFFICIENT POOL NODES TO PERFORM RQST -- PARTITION IS TOO SMALL FOR TASK -- INVALID UIC SPECIFIED -- SPECIFIED PARTITION DOES NOT EXIST -- INVAL ID PRIORITY -- NUMERIC CONVERSION ERROR -- INVALID TIME PARAMETER SPECIFIED -- INVALID KEYWORD SPECIFIED -- NOT PERMITTE$D IN TIME SCHEDULED PARTITION X:$ |Q * :2*||UzQDs@{h@T;@ZxZ@ @8@@8@eXM@zg'@+}h~@z@:s@9x@z%@ @ @4Hq@@ ~@:@|L@L@ s@ Zg@0|X:  Zg@( Zg@^A w  1,1,wwZ5Z w7z \az   5Z%2U̥@| %_Mm̥;j̥!g%dlDRDT CwD|B`P X:>X:\$9x(|L*X:Z6eXMdljX:DtX:DzX:B~X:`nRV\Q%B\F% |BD\8.8.:%$\QDw7zX:VX:\sX:BX:\(s0X:B6X:D:X:\B.DX:8JX::PsV\\X:dsjX:` `%fT~|, ^w^ _:7 <,3I Q"" MCR -- NnX:`X: X:` X:f X:(X:, 4X:,4{q!'[qv((ZxZ*>4Hq,+}h~.`0{hX:L ^fPf f ;}Df2:s ~  ^f Zg@f: &Zg@fBflUzRD v@:2@ @8@@|f@W@W@%@ @g#@#@Q@J@:d@g#H vJ:dTeWh#j vng#tg#~ @8D B,J,D525(5 7  w:3wFw:8# v a( ,4{W44{Wht\ w.hw" 5vD~#6S~wЭ wZ!HU0\heW(v.>6FPZd!x!~ ҕ ~! !5HU@Ћ&HpW ) &e*yU:U7!F&V)`&d*e77,e  !C~ ~w CE0pWp`W92E50QW$(:!hWx| @8|f%UOzDRODs@<&@p@r%@`@ @8@@'@|f@W@&{@W@zwT@%@ @ W@ %@}@Q@@Lh8@Sf~ .BUj"Jj~"$&(>*S,f.~02468:<> @.BBDUFjHJLNPRT"VJXjZ\^2\UNKNOWN DIRECTIVE ERRORSYNTAX ERRORILLEGAL FUNCTION OR SWITCH FOR NON-PRIVILEGED TERMINALDEVICE NOT IN SYSTEMT 2 \TASK NOT INSTALLEDTASK LOADING OR EXITINGTASK NOT ABORTABLETASK NOT ACTIVEPLEASE LOGON WITH "[UIC]"CAN'T READ MCR COMMAND BUFFERTASK EXITINGTASK NOT ENABLEDTASK CAN'T BE DISABLEDTASK NOT DISABLEDTASK DISABLEDTASK CHECKPOINTABLEMEMORY UNALVAILABLEHANDLER NOT RESIDENTTASK ALREADY (OR STILL) ACTIVETASK NOT FIXABLENODE FOR FIXING UNAVAILABLETASK ALREADY FIXEDTASK NOT SUSPENDEDTASK NOT FIXEDILLEGAL SWITCH OR SWITCH COMBINATION FOR THIS FUNCTIONINSUFFICIENT POOL NODES TO PERFORMD RQSTPARTITION IS TOO SMALL FOR TASKINVALID UIC SPECIFIEDSPECIFIED PARTITION DOES NOT EXISTINVALID PRIORITYNUMERIC CONVERSION ERRORINVALID TIME PARAMETER SPECIFIEDINVALID KEYWORD SPECIFIEDNOT PERMITTED IN TIME SCHEDULED PARTITIONOPERATION $<NOT ALLOWED ON TIMESHARING TASK t <&""F&&` `f fzzTI X:L XYZ -- ERR   |Q)tt DR Zg@\\" w$7z ť  4wwl-z7 t7 2Utwv~ $zr X:" X:$X: "X:z&a@X:zBX:HX:tLX:XX:t\X:v `X:~halvX:zw wx ԅ 9΅5t9 %+eBҥ=%0.7%MUt wUt TX:x&X:t 0X:4aJ0RX:\X:thX:pX:tt00 J Ѕx|OxssX:xX:Tw  7vw wh wvUt Utҥ[ r5wť, ^5w8X:X:vfyFB @8F|fH%R0QXr%d nsr0 UɎzE`ɎD:2@ :@ @8@@ !@sd@|f@:t @W@&{@ @@W@zwT@b@@%@L@:s@ @ %@:@Q@@pW@L@)@Batz~ !Wt -z-t  wDwJwH w^_~ wZ& %`TB~ :ХAD :4{W4{W"L,& & D 6N D D eD e`D e   w` %E”E E5pt @8x|fz%T|D  32 !-55X|D  $*206<BHNTZ^ l rL@)t %zwT|&{7-TI=pmh 6b7,Je7 7: / 7* @80hHQLWTX`W$L SEtEBx )3 $OPE -- TERMINAL NOT IN SYSTEM%:26I6 H3$OPE -- ILLEGAL FUNCTION FOR NON PRIVILEGED TERMINAL:2H|| R$  v    00 RȄ*      H:2R:2"v*:24<:2FN:2X`:2jr:2|       "   D INPUT IO ERROROPE -- CAN'T READ MCR COMMAND BUFF*:2 :2$.:28" @:2JDtEROPE -- SYNTAX ERROROPE -- NUMBER TOO LARGEPOPE -- BYTE ADDRESSVOPE -- OUTPUT ERRORAOPE -- PARTITION NOT IN SYSTEMOPE -- TASK NOT FIXED IN MEMORY  OPE -- TASK NOT IN SYSTEM " V" OPE -- INVALID ADDRESS $ ~@ &:t (:4:2>F:sL~P8UzIqD:2@ :@ @8@l6`@@ !@f@${@8@|f@W@r!@W@B%@Q@${K@4{W@@a@ \( P 37 U % wlww^ %eB t Wqmww0P$UJRan${@8rvQzW|>܇77(҇:ρ  ~ 9 f JՐiW ,W cN'0W >${K${K(2>Rl6`V7 . #Ĕ% D`ONEe7 |7 zr(F 0f$(8l6`>l6`jrntFt(\:  ,w3 & !Ca Em0(4:LPr!VZ`&h :z !f7, 7,eE5 %/ -pEC`)2 !4{W4{W04 @88|f:%I 3$REA -- ILLEGAL FUNCTION FOR NON-PRIVILEGED TERMINAL:2(M(  X REA -- ILLEGAL LUN NUMBERt .Xr_r " REA -- DEVICE NOT IN SYSTEM  REA -- FATAL IO ERRORaD[  REA -- TASK NOT IN SYSTEM  REA -- SYNTAX ERRORB&:& 8$ REA -- CAN'T READ MCR COMMAND BUFFER8UzLqD:2@ԃf@2@ @8@@d@@@|f@W@^@W@@r%@ԃH;@ԃS@ @ԃ`@l @Q@r@@@%@L@ (  (3% % %ww77" :W:W_W=wz%TI wf7( J"|7% %TIwfW:W WwN7,\7,Ve7 w\7D7B%TI2w.  ( 6 %:Q>WFWNR\Wpt @877  w55}, 7 nG55v7 5dWr"%,ԃS.4^62@dFdPn`ԃ`bhԃ`jpvxl ~ԃft5 55w| %CO r d^, 34a/\v ԃ` ԃH;ԃH;(r.W4L6 >rBLD JdRdXd^@d|GҔҔҔA<%* 7`v E U0vE &G %&,28>*``^lU0vEU0 / 7 SEtEBxE5)"JN @8R|fT% "O"  :3$RED -- ILLEGAL FUNCTION FOR NON PRIVILEGED TERMINAL :2:n5n  RED -- CIRCULAR REDIRECT CHAIND ? * RED -- WARNING: HANDLER NOT RESIDENT:2   . RED -- SYNTAX ERRORRED -- ILLEGAL REDIRECTION OF PHYSICAL DEVICESRED -- SYNTAX ERR:200 Z Ѕx|Oxss:2"-XORRED -- DEVICE NOT KNOWN TO SYSTEM A  Z'  $ RED -- CAN'T READ MCR COMMAND BUFFER ; RED -- SOURCE DE*:2A:2"Z*:24`:2j/VICE, OR ITS EXISTING REDIRECT, IS ATTACHED** <: RED -- SOURCE DEVICE, OR ITS EXISTING REDIRECT, IS MOUNTED # RED -- TARGET DEVICE IS NOT SP:2<R:2\ OOLEDIp!UOYz}OYD%{!@%{"@}x@}x@}x@},@l@l@>{@C{@A{@<&Kq@zp@wx@}y@}i@}@?{0@ @8@v@v@}@v@GP}@v@wDy@wLy@z}O:@l6`@sd@}@@{N@w΅@wy@v@B{N@wy@v@v@@{0@D{0@}>@z}@ PJ x   @Too many terminalsFwxJ"wy(0w&q6<:74BH:RxZ:dOOccAInvalid terminal numberdd}'}BSpecified terminal not in system~~"1COnly [1,1] users allowed to change default,;DOnly [1,1] users allowed to change explicit terminal6ESyntax error=FUnrecognized handler error code - fatal software error8mL"LGInvalid characteristic nameMMBj6jH'NO' prefix not allowed for this characteristickk1!IError reading command linea3JNo terminal type or characteristic specifiedc.,KMore than one terminal type specified'l1LToo many characteristics in single command,==MAmbiguous keyword>>-QQNTerminal not in systemRRIjjOInvalid terminal typekkPNumber requirediQInvalid line speedcRInvalid read-ahead typelSInvalid parity typePrivilege violation $9f)Terminal not in this configuration $9^$ Dialup line not connected $9B0+0Function not valid for this terminalI $93911&lWWIllegal value wXXmg'gIllegal line speed for interfacel wDyhh"2Split speed not available on this interface wLy-I/Illegal line (speed or other) parameterse wM*f6Characteristic cannot be modified for this line w{Z18No dynamic space in handler - tell system manager w΅00 bȄ*3oI(ICharacteristic not in this system wXJJ#ln)nTWOSTOPBITSTSBSCOPEBINARYl}y}y}Hw!} CONTROLS }?CSQPROCESSCONTROLCPASSALLBITSEIGHTBITCHARACTERS} }}i+}VERTICALFILLr }|)VFILLNEWLINESIMULATEFORMFEEDs}| }`Y}wSFFHARDWAREFORMFEED}w }2,%,HFFLVFHARDWARETABHTABm}2 }vN}T3}T3NNTABNONSTANDARDTABo}T3 }Zf)fNSTABBACKSPACECARRIAGERETURNT}Z }} CR }%LOWERCASEKEYBOARDLCKEYBOARD}x}xLOWERCASEINPUT }x+LCINPUTLOWERCASEOUTPUTLCOUTPUT}x}x!}xLOWERCASEPRINTER }x;LCPRINTERCONTROLCFLUSHCCFLUSHESCAPESEQUENCED}x}>!}>+}I"::ANSISEQUENCE }J!JLOCALCOPYALTMODETAPEA}K}4}8}h hHOLD }3p'pBLOCKMODEFORMSMODEMESSAGES }k}](}O:KEYBOARD }:YPRINTERCOMPATIBLE}}Z}FULLDUPLEX }8& ECHO }KX'ANSICRTADVANCEDVIDEODECCRT}y} } EDIT }REGISAUTOBAUDS}q } o UC0UC1UC2UC3UC4UC5UC6UC7UC8UC9ASR33KSR33ASR35LA30SLA30PLA34Kf}փ }׃}؃}ك}ڃ#}ۃ)}܃/}݃5}ރ;}߃Aa |Ik |Qa |Ylӂalӂil z z LA36 l   LA38 l   LA50} l   LA100LA120LA180SlƂ lƂl  VT05 vӁ  VT50 v  VT52 v  VT55 v  VT61O v [ VT100VT101VT102VT105VT125VT131VT132VT220VT240VT241USR0HvƂ vƂvƂvƂ%vƂ-vǂ5vǂ=v˂Ev˂Mv˂Uuy, , USR1} uy4 4 USR2Y uy< < USR3 uyD D USR4 uyL L SPEEDfREADAHEADNAME  fh h FFILL Fp p WIDTH$LENGTH5 $  DHANGUP D  \PARITY \  NOPARITY   TDEFAULTLDSTL  NONE  DEFERREDPROCESSINGT  DP  IMMEDIATEPROCESSINGIP  IMMEDIATEECHOIEy  EVEN  ODDEXTA %{!* * EXTB %{"2 d2 2Kdn,X`  %7&  >{C{E{?{0?{p?{"?{p&@{0*A{0.D{02?{6?{N:@{N>@{NBA{FB{NJE{NG{VZ @8` @ ` %b^"0 b `IwR3 fhAlfɕ  TI 7 W/Gw -`/4sdu68`sd"$?S:@ @8^ v  UWT-WT*TT@  W ?$fTTTW: W/!J؇@w*Dw"EwAwNwGP}>VJ 7xJ W/W EwJ7L5D5<- Cw -55  5 J*JRdwyrwy  &55 5  5+Jw:wDw2wn dWNWOn(w wx*w0Bhn~n NGw Hw ԕU:5,Kw7,U  ffv  Nw `` %&NwV-׭ w.ew ‡W0< @$sd(l6``.l6``0 @84sdJT; zR$9z W9@  @ " 0 6   W ~ Qw@W:Ew C ȋ&WAW0 W9~ WZȋW_  wȋ eE@MwR z (Pw>ԕU Z b h}2z rRwԕUx 6n >OwԕUN W(  ԕԕ ԕW: ԕW*}p"n:}0V}s\}j}sz})EwU lPw ԕU JPw`ԕUU UU d l.},N}Mx jSw$ԕԕԕUzԕUlN B`W mFwxBɵ&5:"lԔԔÒ r$}:d}!$}:d2N>mLxdl‹e0e0Ԑԕ:ԕ ԕ-ԕ-ԕ ѵ  ̔  ע0 ע9עAעZԔԕ ԕ-ԕ-ԕ T~x7* vx~*b<w( <&9<U{zu~{D:2@ @8@X@|f@ Y@4xZ@ @T X@%@@@@Z@eW@ *(  @  wnwww v>$ ɥ-7 %߁ eѥ: 6H>X$|%;Ӂ e< W: %;Ł e<@  `q h%ѥ- LttDJPpe Ne% ѥ- -P7t%wp%wd5%wP% ɥ ɥ tѥ w*` Z xtp 8w$w*dL nB F$Z*@0 |L@pVZ @8\ @8`fj n4{Wrvr!z~| |5wW 65CE  v  ve0GCD (5v W _W \W : @Q @Q, RV` @QfvjrLMxLVs~Tw:dA& %`fPCC PS R0C R1C R2C R3C zR4C nR5C bSPv @sdt6f`tC VXE `IOB $E#w0 v ve0G~DX:d v @Q"&. W>2;@ vF @QJRb ~7|xrW !%\!W-COe s! ,r S|Br$Tw:d2Q6>WFLrPT @8`rl   ) )FUn#8Mk~)@Uiv TASK "XXXXXX" TERMINATEDv,.0)2F4U6n8:<>@BD#F8HMJkL~NPRTVXZ\)^@`Ubidv RR=XXXXXXOdd address or other trap fourMemory protect violationT-bit trap or "BPT" execution"IOT" execution"RESERVED INST"d execution"NON-RSX EMT" execution"TRAP" execution11/40 F.P. exceptionMemory parity errorUnrecognised termination code = 22Un00 rȄ*recognised termination code = 24Unrecognised termination code = 26 SST abort (bad stack)AST abort (bad stack)Aborted via dir\ective (or MCR)Time limit exceededLoad failure (disk read error)Checkpoint failure (disk write error)Invalid status blockTask not installedHandler not loadedTask too largeTask privilegedTask already activeInsufficient swap spaceUnavailable pool nod^TeTask fixed in memoryTask disabledand with pending I/O requestsvia 'EXIT' with pending I/OPUxz|xDLq@qYq@:2@ @8@@@@|f@tp@p8@@ %@W@z&{@t@L z@t@t@8@r!@W@wT@%@ @ @t @tBx@t@Q@Bwq@@"w@@eW@a@ (  \37  % w"wj7   wť0 ť8 E\$ VZba|uDy 47 -fe-WC5  mD Y re ~lQW$(0@6 :wT<&{RWXLqZ btBx fp8ttxtBx "qq BU` Ue7!- w3|tp tt@8tt *qYq.2L z4 %8Q<"w>wqDHN@TLqV \eWlz~t 6Lj%eBW,W:W,WW E5< r!6"L(j,26<x| @8q|f% XX....)XMX n3$UNL -- ILLEGAL FUNCTION FOR NON-PRIVILEGED TERMINAL :2n $ UNL -- CAN'T READ MCR COMMAND BUFFER  UNL -- SYNTAX ERROR  UNL :2<:2Fh:2r -- TASK NOT IN SYSTEM H" UNL -- HANDLER NOT RESIDENT |' UNL -- NODE FOR EXIT UN:2(HR:2\| AVAILABLE : UNL :2] -- EXPLICIT UNIT ILLEGAL FOR MULTI-UNIT HANDLER)  UNL -- SYNTAX ERRORD ::2D(UWzUq0aWD,QH,@#@2{ @%0PsH`c @<&Kq@p@#@`@@0{@@z :@ @8@@ !@&0@sd@20Hn#0$SHf{@@rY@,w@ʫy@${@8@sP<@,BxH z,R`H@|f@<&9@rZ@rZ@,H#@@n@,&H,%H&{@:br@W@?T@z(l@00swHbt@bv@#@,!H0{@@,t:H!{@W@d@,:HMO\H%@,xKHzw}@2@"0W@L@#@#@@ @2@@S@?S@X@g#@,pHQ@T; z@z(l@30U PF6FW |Uq x x":br(x ,x| | 0,>7 t|UqFm5FB& @7 LN   @j&F: !> :Dw F&{L4{WR4{Wd!{r !~L  w( 0 b w  fhm@ 7 7 7ȋ ȥ,/TB2X&?S0#ǂ1{:?TT\~Bte)  00 z Ѕx|Oxss|    mȋwDХ, ` wH`<#{ʫy #Ȃ!{6:?T`2n@Sr```Ћ7$"Ȥ    eӋ7N `#@{@΂#{@΂"##{@΂(#){:HN#O{RV?Tz~#pƂ{lU`,, "  wr5L5C R  w0r"0W"0W"(eW,0?T<#Ƃ={@,hLB&0R,wT&0jeWnr?Tz#Ƃ{{~)0  wU w 8 Wqm Aff($b#׭leW ?T,&0*eW<${@8@DQHrLWRW`{#8 d${Kj${Kvbd-~Wtwb׭ ` wlVU  w@7 8.% ,%zT; z ${Kb(T; z.#@΂/{4g#:g#>!{DeWL&{Rw}T&{XeW\#Ԃ]{`0{@j2{%r2{ t2{%ff   Cet   % AW B,[`l 0Qc%c sd(n4bv8d @rYVsd`LfLl r#s{xg#~g#\! - !tlt tl  dTexNbezDC 5 &h(l (l2}2n&(l,3.3236383w}@&{JN @8R|fT%dh(ln(ltt|nT sP<  rZtUz""H!D#Hk@#H`@{H{@H#@HS@#H W@MO\@?T@z#H#@H#H@S@{H~#\@{H#Hn]@#pH #H #H #H#H #HB#8H:@#H p?Th"  Ԁ  Ԁ$UNABLE TO READ MCR COMMAND LINE " ԀԀ  COMMAND SYNTAX ERROR%N%VA "  Ԁ Ԁ::TASK %2R NOT IN SYSTEM ": Ԁ:ԀQQTASK %2R IS ACTIVE "Q ԀQԀd*dTASK %2R HAS NONZERO POOL USAGE COUNT "d ԀdԀ)ILLEGAL ERROR/SEVERITY CODE %P %P %P# "   ԀԀTASK %2R FIXED IN MEMORY "   ԀԀMAX @ FILE DEPTH EXCEEDED " ԀԀFAILED TO OPEN @ FILE " ԀԀ%2R ILLEGAL SWITCH " ԀԀ  %2R NOT IN SYSTEM "  Ԁ Ԁ#%2R HAS NON-ZERO INSTALL COUNTG " ԀԀ<&<%2R INCONSISTENT SWITCH SPECIFIED "< Ԁ<Ԁ^7^%2R -- INCONSISTENCY IN SYSTEM STD/GCD INFORMATION "^ Ԁ^Ԁ-ILLEGAL FUNCTION FOR NONPRIVILEGED USER. " ԀԀ$%2R - ERROR READING TASK HEADER " ԀԀ REM --  "n]:MO\ ~#\ w  E DW!! `P A w)!  BW $"*@ DԀ N"R?TX`h~#\|kZ 3w@Sk `SUNz&0NDʫy@@?T@MO\H#@@#@@ @2@f@{@~#\Hj@{@t@QH @n]H#@eW@#@ 0hXGZh\(\ )\\S00 Ȅ*P̥ԥ  777.7 7!ȋȥ,e)U` T # {.2FNlfrfvʫyz#Ȃ{{\DD 4" X  Dm>ȋХ, 3L  eW&X*#+{0#@΂1{4eW8pDxFpLXah,l!%x!  j?wwD-525. '%$wU -PJ55 % eB Uhp!p$|;f&|[!.p<2,Z@@8D|;fF|[!T!Vp\|;:d^|[!dsla|,w0wF-15 55 5w5 5w5 U-|;:d|[!!p$,(dK*p0|;2|[!:p<>,ZLOP%RpX,ZfWjplpr,v|;x|[!jb55 5w w U-fZ 5Uwwb-N<U| ! p|;s|[!p< ,Z$2@Qv} &p,ݱX4X8,<|;s>|[!L|;RN|[!T|;RV|[!wj-8*5/00  Ѕx|Oxss ,  7U ww.-5 5 55wU ~pw|;R|[!!p*).|;h~0|[!4,H!JpP,TZVp\,`Zbph0jpp|;u~r|[!v,VD 55`w w5  w5 wUS5t p<,Z$p|;i |[!"O#&,Z*xZ.$0p6,Z:>$@pF,ZJ)N|;i P|[!DBw w58U ?5.5* vw ~2@Qv} p XX|;)|[! |;)"|[!&,,2@Qv} .p4|;z6|[!@ XZ5 5 5w >w U |,e p,Zp p<$,Z(2@Qv} *p0X8X<,DXH|;zJ|[!Rگ,&5%T  %S %M TI= 67,re7 Dگ گ! x% pXpQtW|D7b / 7 SEtEBx  WUNzsND|;h~@X@|;s@ @8@ݱX@s@X@!xx@W@ X@xZ@|[!@z|;)@گ@|;R@@|;z@O#@@)@|;i @)@O@@8@X@ ޱh   z &5E%%j%<%w5wwBw @8|;h~|[!) @8|[!&|;R,|;)2|;i 8|;zB|;sD|[!LX\X`ݱXd XhXlXpWtOee w.eeV@8s!xx:X>ݱXB)FJxZNO#RWVO\@8`st!xx lee E5Pe\XݱXX X$W(O.@82sF!xxb|;sd|[!jWnOt@8xsze "5-ee  ˋ ӭ<!xx,|;s.|[!4W8O>@8BsV!xxrxگ* e$ گگگ"& @8UNJs""NDr!@Ay@گ@ ޱ""hh   DDRUN p(<JVmNCAN'T READ MCR COMMAND BUFFERSYNTAX ERRORINVALID KEYWORDUNRECOGNIZED DIRECTIVRp  (<J V"m$&(*,.NE ERRORINSUFFICIENT POOL NODESTASK NOT INSTALLEDMEMORY UNAVAILABLEHANDLER NOT RESIDENT TO LOAD TASKTASK ALREADY ACTIVE<TASK DISABLEDINVALID UICINVALID TIME PARAMETERPARTITION NOT IN SYSTEMINVALID PRIORITYILLEGAL OPTION FOR NON-PRIVILEGED TERMINALILLEGAL OPTION FOR A NON-INSTALLED TASKNON-PRIVILEGED USER MAY NOT RUN AN INSTALLED TASKCOMMAND LINE IS TOO LONG 4WHEN MODIFIED FOR INSTALLTERMINAL IS NOT IN SYSTEM% eӕӕ-ӕ-ӕAHS^,FLگVr!^AyjAynگrHz)3UOzs:OD|;h~@s@|;f@|;s@ @8@@; @U%@Bx@p8@@n@zn@|;@K@|[!@|;)@UW@|;@U@گ@|;R@|;z@@n@ hr@߱@*U@8@|;i @ ޱ:h N  :INS tt/RUN=REM/TASK=/UIC=f |: 5j 5 StSگ|;z|;i |;)|;R|;s|;h~ |[!$Bx(*Bx.Bx26|;8|[!>D; JNBxZtbK%S555 00 Ȅ*S $ R :fD56bK|;|[!|; |[!&|;f(|[!2<߱B; LTگf߱l|;n|[!tzf  ^f  R te~̕  Tnn*sdK@pF$HpF 5E5 5A < 5 wK, 0ZdK p0Z p|;|[!$W( .K2,60Z 8pBK^)W  5 U E5U ~KK!xxa x !% "p(,0!xx4|;:6|[!:fyB|;:D|[!HwrJ&{P|;rR|[!(bE5&گ گ @8|f %VUzzfDVXzHyXzH<,XzHTXzHwFw@:2@;}Fw@XzH TFw@XzH%Fw@T`XzHzl Fw@I Fw@!;Fw@l XzH(Fw@I XzH!;XzHyFw@<,Fw@Fw@Fw@Fw@(XzH@(XzHa@R:dFw@ @ht!azhaz*}haz}hahr:0hT`h(l ATLMRLCKQGCDIRQCTL FTL@SRQASQBRFFULTASDEVPARCOMSG\ l FwTFwFw$<,Fw,!;Fw4Fw<(FwDyFwLI FwTl Fw\l Fwd;}FwlFwt:dFw|%Fw |A wFw)<< SYS -- SYNTAX ERROR SYS -- ILLEGAL SWITCH @  : Up //w< wDS6>H:Zl Fwj<zS w4 11w\"Be:  ׇ 3W z؆Q$Q$52 d~w  ѕ ~Hz^45  Ue   E0AqDaWp  f&& & & Ε a~:2 $ UzzFwD v@VXz@@@i6h`@TXz@t}@ :@@ !@sd@ @@@z@T`Xz@:t @&{@ @@W@az}@a@T@T@"T@2@!}@?T@"0W@zL@ @wx@ %@:@l Xz@Q@(l@@Lh8@ :F2{%R4{WV4{W ZyHqfeW~eWbafj?Tpav@zQ~U` - =7-7F ` ` W  % U7~ y qT` eW&W.W4@> @BsdFi6h``Ji6h``Pt}V \4{W`4{W dyHqnsdveWz(Xz|az}~: z& \:o je!  W 5--& & & ΕPW:$ .y q< B4{WF4{W JyHqTT`XzVaz}\T`bT`5J   # %~  #& !- ^:t y qTXzaz}"a&?T*:?TBH?TNaT@ hy qv|?TFz55 & & & ΕMRXLT#  VXzaz}(Xzaz}&:Uzz;}zzD :@@w@)@ !@h6z@${@8@:t @W@&{@:br@0{@@r!@zW@wT@t6u@t6u@w}@#0@${d@:@Q@r@4{@${K@eW@:@ ;}Fwh 8xB%w Ӌ F~ Ӌ F~  rdU0 r 00S0 : !x&*r!:Hr!Zb${d|˕   WpmfE ASSwӕ K0ӕ-U` wv vU0 v> ${@8Q"r*W.W2W0{@ #08FVZw@)\&{bRrw}t&{zbR 5X   @pl@w&wT&{X&.@@lH@@@)CHECKPOINTED RRFIXED MULTI-USERDISABLED lLl 6 0  @*::t :(8:br>B@: RU|zz|DLq@2@@d@:t @W@@ @:@ԃ`@Q@]@2@:_@:@ Fwh  ~  7  r  rU0U0ՐU0Ր& Е Е 0 +* Q2Wdl:_zd|   7$  r  rU0U0ՐU0Ր"**$d$WZLq\ r2 MOUNTED5 SPOOLED 70$\ ~ \e-w,"ԃ`$H]Zb~nr|Dt~) $ ~:t  :,:6  Uvz:dzvD ~@:t @ ~h8@r!@b@@f@:@p@s@0Q@:@0@ D00 Ȅ*:dFwh -B Ӌ F~e fe XU5 S5Te \0Q 0r!.4b@<BpP ~Rf^ ~h8`fltzs~0| vU0 vU0Gӕ0ӕ0)  (T:`:t l:v U 5 $ PAR -- NO PARTITION DEFINITIONS :$Uz%zD"0@@Q@ :@ !@&0@,w@:t @/0@8@0{@@r!@#0@"0W@j,;@,(d@:@,q@#0}@00p@4{W@,hL@eW@:@ %Fwh wb $5 U`  E~   e e Ӌ ^Q"0W ,(d"&04 !8 :B0{@JeWReW\4{W`r!h"0Wpr!t"0W|F~e e ӕ w Ew^U0wEU0wEU0ӕ,w Ew@U0wE("0@#0$,/0@8d/0@8U0wEU0ӕ   S  W! ӕ,  ӕ ӕ E5 5I 00p2\`&0d,w,hL,(d,; jn,;tx,(d~t5SSSӕ 5ӕPӕIӕ ӕ ӕ ,   ӕ ~ ӕ-WpeYSSSӕ- J,hL ,q&08#0}:#0}@#0}R#0}^#0}fYt#0}|%wӕ wEwӕ wwEU0wEU0ӕ wwEU0ӕ ӕ wQ l.LJ vU0 vU0Gӕ0ӕ0 r U0U0S) F .X:d:t p:z .i. @ COM -- NO COMMON DEFINITIONSJANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDECRWEDDRGLIBCOMTPAIRG8 :@UrgfKD:2@:br@L@:@g#@$9!@eW@:4F@  p ( JT%TJ T$9!p ^Wt Wt Wt Wt r8B p :*:.::>J:NZ8p3 nn j  U`m-  w!w~w!|wv tn lftWu   & pjLg#"g#  w" w h ׭ &fT ! ! :,${@804Q[-]<=>[=]<+>!C  [?2l<cHJK words hrs mins R |Nodes: (Max Hole: " 2 8Errors: @0 @N/A **************************************************************** +-------+-------+-------+-------+-------+-------+-------+------- ***********************************************t*****************2IAS V3.2 00000000000 Intermediate3Since Startup PDS Batch Null Swap RealUptime XXX Hrs XX Mins Active Jobs  0 Active Task  TSKNAM  *NULL*COut C 0K  *** Some tasksxl not displayed *** # % % % % %-@^@ b OUTPUT LUN ERROR - CHECK LUN 1Invalid terminal type*w- :2 bZ}0\}@ B@  @ 2 B:: @:a "$(:br ~ ~r .22       & BC.EGIR6THXr& .6H"rP3X r9@׭> +N l׭!7 <8׭7 , H׭Ç׭.P&@.<$939H PvӁbvl zv  $ &  n @? 75Wt f 7  R &f@v  @:>Lh8@ %JU<RX:\fhrR f w  xKBBtnff7 vn `N v   t  `&  E  ,  U<fnE|  u ~ { v  n  f  ^ 5 V < N  F  > C 0  '8"{*2:B5J<RZhCv\G. :#e?WuPdw!j 5eDDm 7!<@QGwd & 7d  x% \G. ,\G\   + x  U`~ pt  ) " &(0 u~4JeWZt 27  (  b ׭׭w, n d \  RR 3 V b 0, (,b 4$9!PLz ~ TZ`"0@f"0@n"0@v"0W|,(d~&0"  2!E~|| w!Ƈ7!7 7!Dw!wj ! :0{@(4{W,4{W06"0W:"0W>B#0F"0@P @F4{WJ4{W\ u~`lvʯtSz}870 (w "0w 'P 3" y $K!  7 ,  F.veW&0PT!\[(}b[(}fp,w w Lw w 6}7w-nn hd\   *2\l7 \   ~wfY ~6 E Wqd 7s w! ~ &+ \26JN    w7 ~  P~CKtm  r @ C C r `C  04d@ e- `@` Ce В ~ A A ~ - rB@ " .@~ F[(}L[(}PV~ `U<hU<x@ |"p !~ X ~ A  A ~  ,e@7!4?  F e% e 2  $ (~ 0[(}6[(}:~ X?Z|~? l !4   %eeBe t $ vw t Wt< ЕK jXX( ?  HL f<|(\w%|%PAЕ0E   @`*~C  v WtC`eOWt. @8"W&W::(}@D9xj:v we Е  Е0   r@  C~ C~@h@ 7 ` 4:D@H PTn@t@ X : N L%Fꃇ”    7 B ww      n m    b  XY F Fe dBe 2G  H VRCJ   C  C ~ ~   A ~ ~7w wPfҔˋ%@e%~ B`ʔe@ˋ&@E K k89 @ Kk Wtw B~ e ,C %5   2e   & eՕX C3 CXLq  iEw&ԃ{8(. D zFfKLV&^ 00  Ѕx|Oxss#`fKp^r2x355e <   e0U CeE C L n  UCY PCZԃ` ԃH;<*]8d,:WFEPdRWXLbvndspWvYl6(e-|wk wf>(3P(f- > (0@>H(T`Ph(pQ}v|} @ m %%U Ue-e"&f&f 4 p@R"8<JWPnv:_z"dХ0~ ~T- r7je-,7TUɋ W W)$W$W(()     b$ DEV -- CAN'T READ MCR COMMAND BUFFERDEV -- SYNTAX ERROR  8bP kPUD** T/S TERMINALSYSTEM T/S DEVICE MOUNTED SPOOLED:GLOBALTIMESHARING:REAL-TIME2 UĎzlĎD.R@|y@ v@|w`T@3-d@y@L@p@<&Kq@p@:2@tzs@z@G@ u~@?4@@hd@g'@ @8@\DL@ @7{%@z@|f@즀>@p8@z<&9@rZ@\?M@n@ d@n@P<@ ~h8@cT@mT@nT@?f@.k~@9x@.l @zQ@Q@?T@U @u~@if@u~@ @f@HQ}@@S@?S@&@U@@2{ X@zu~@4{@@H@HK@=@榀>@@@=@ N{QG Rwx|@S|3UTL -- ILLEGAL OPERATION FROM NON-PRIVILEGED TERMINAL D< ( H ȕ @ (&@ P=V(b jXzp@=v@  |  w&fwp Ջ 7d-T J f X" @ | ?T "@Zf bxj"pz?l t   w e@    Q     w!߃ ZP< \DL\DL"n&n,\?M8p8@榀>LAzj\DLnnt\?M|?*UTL -- ILLEGAL NUMBER OF LEVELSUTL -- NODE PICK ERROR 'y'%8SNUMBER OF SCHEDULING LEVELS: %M ,(,J5Z  .\?M 'y 'y" $4'y$6$TIME BETWEEN SCHEDULER PROMOTIONS: %M CLOCK TICKS PP&$ &4 'y$Q'yV8VBATCH PARAMETERS:%N%8SBATCH QUANTUM: %M CLOCK TICKS h(hl5V x.Q 'yl 'yV"$Q'y4%8STIME BETWEEN BATCH SCHEDULES: %M CLOCK TICKS (5 T.Q 'y 'y"$y'y%SYSTEM IDLE TIME: %M CLOCK TICKS  <&y 'yG'y)MAXIMUM TASK SIZE: %M 32-WORD BLOCKS4  $&G 'y.R'y8%8SALLOCATION FACTOR: %M TICKS PER %M MEMORY BLOCKS l5 E0 ( UTL -- ILLEGAL TIME SLICE VALUEN.k~ .R 'y 'y.0.k~6<>|yD('y6'6MAXIMUM TIME SLICE: %M CLOCK TICKSS HH.6 &|y 'y6&'yZ=ZQUANTUM PARAMETERS:%N%8SQUANTUM CONSTANT00 †Ȅ*: %M CLOCK TICKS `4`r5&Z  B& 'yr 'yZ"$?f(*f0f'yTIMESHARING PRIORITY: %M n \  nt    eEt 77  $X?f 'y?l &nT,mT6rZ> Rp8XmT\nT`cTf'yPROMOTION TABLE SIZE: %M j|  w B~ 0 UTL -- INVALID LEVEL NUMBER ! PmT 'y\?M"\DL* ,%20\\DL`\DLh즀'y0%8S%8SLEVEL: %M TIME FACTOR: %M CLOCK TICKS ``w75" |E 6 wU`  l   BwP % 'y 'y0?l 66LLTLZtzs\7{%b,{p!h2{ XpeWxVW 2 0,  D U`", e  ~5 X s` "(9x.9x<0QJsN0TeWXb ~h8dfjeWnXx0,|hd`X,wl D,Awl7 7 7 7 7 7 7 Uv3-d  0, 4{3-d&LR8,(U .U@4 > B4{D3-dH@LHKPHTHQ}X\u~L7 7 7 7 7 7 7 7   ~u~u~ u~ u~ u~u~u~ u~$u~(.l ,@ vD-UTL -- SPECIFIED PARTITION NOT IN SYSTEMUTL -- NO SWAP SPACEDUTL -- WARNING -- LESS THAN 50K OF SWAP SPACE AVAILABLE @?l 'ySCHEDULER DISABLED   'y0,'y1SCHEDULER ENABLED IN PARTITION %2R, SPACE %OT wfwb^ EfU` & 8,      n3-d 'y0?l 6\DL<\DLB榀>D즀>JeWNX?l \nb@l fnj.l nnt(l xn|eW  UTL -- TIMESHARING TASKS ACTIVEUTL -- TIMESHARING NOT ACTIVEUTL -- OPERATION ILLEGAL -- TIMESHARING ACTIVECeW   UTL -- GET COMMAND LINE ERRORUTL -- CSI SYNTAX ERRORUTL -- ILLEGAL SWITCH OR SWITCH VALUE SCHEDULER PARAMETERS   :2  <&9<&Kq<&D '  0 ` UTL>0 `   . . P Xz SH   {QG w> >x> >Xz DI  {QG w2 2x Xz EN   {QG w x Xz TP   {QG w| |x Xz  SP     {QG wH HxP PXz( (PT      {QG  w   x   Xz0 0TS@      {QG  @ w   x  H HXz8 8IT& && & {QG w x Xz@ @MT, ,, , 00 ʆ Ѕx|Oxss{QG w x XzH HBQ2 22 2 {QG w` `xh hXzP PBS8 88 8 {QG w x XzX XQC> >> > {QG wX Xx` `Xz` `AMD DD D {QG w x Xzh hAT J JJ J {QG w x Xzp pTF@P PPP    {QG@ w   xL LXzx xLVZ ZZ Z" "{QG w\ \x, ,Xz {QG  2(UQPzYzQPDs@WW@ԃz@L@<&Kq@p@`@Ud@]d@W@@2@ztzs@ @8@$9 @0{@l6`@sd@ @tzp@tz @'@|f@$9@7{%@p8@<&%t@z<&9@n@@n@ @@W@3g@:br@&@^@W@&{8@Wx@h'@@z%@?T@ X@Wy@ y@WBz@@S@$9΅@?S@!{xK@\r@d?!@r@2{ X@,{@z=@@=@\ @:@@n@?l @WZ@<&D@vw@tz@@eW@$9Z@:@:sc"@,{p!@ 0YzdhPy'|Q (P NN"C ""4*:br"&*:0"446:@ @W9<&9<&Kq<&D **'44` SWA>`F F^^PW <&%t~L~BAEDEDDVDLEDLIDNURT DL@EDD D"(D*28D@FLJtz '|QBAD  '|Qtz'|QDEL  '|Qtzp'|QDV  '|Qtzs'|Q  RT  # DEV FILE SIZE USED HOLE FLAGS %D %2A%O: %P,%P %6<%D.%6>%6J %6<%D.%6>%6J %6<%D.%6>%6J %VA  '|Q NPVP?-|-v- -N 3 00N@D @8HrL|fN%'|Q1ILLEGAL FUNCTION FOR NON PRIVILEGED TERMINAL < wF0 b `w&` '|Q ?S'|Q>>COMMAND FILE OPEN FAILURE >  '|Q>'|QXXERROR READING COMMAND LINE pX  2R*p a ]7 $7 7 $ȕ~ VK5 0 '|QX@SR,=J~P@='|Qt*tDEVICE NOT ALLOWED FOR THIS OPERATION TTt 5 '|Qt'|Q*FILE LENGTH MUST BE SPECIFIED (/LE:N) jj 5  '|Q'|Q"SWAP DEVICE MUST BE SPECIFIED ^ 5) M$5 X 5  4   '|Q'|QCOMMAND SYNTAX ERROR   '|Q'|Q#ILLEGAL OR INCONSISTENT SWITCH,  w@ . "  L 77 2 + >"5    X5  5 '|Q L,L<d    ~"n"n(Ud0'|Q7FI00 ҆Ȅ*LE NUMBER MUST BE SPECIFIED FOR DELETE OPERATION R 3 0        H '|Qtzs7{%?l (L.L6tzs87{%>tz@7{%'|QH)HCAN'T DELETE WHILE SCHEDULER ENABLED H   '|QH'|Qn$nFILE ACTIVE - MARKED FOR DELETE Bn r  L( R  d'* '|Qn&8L:L'|QSWAP -- NO SWAP FILES @@ 4  &    , eEmtmetz @ '|QL$L6J,{p!T2{ Xf]dxp8'|Q#FAILED TO ALLOCATE SWAP BITMAPD d !7`awXZg5 ^@a`B7@@ m(w  6 '|Q y"3g&]dD]dT\p8'|Q FAILED TO ALLOCATE SFL NODE  \  X 74 55 4 w> &@ '|Q!{xK"tzp.tzs27{%:L^N2T'|Q!DEVICE %2A%O: IS NOT MOUNTED t t  w "W E Df ! p,Bp,Dp,FA (hzN0 PRhzH&J\ '|QL L&0{*r4r<&{8D&{8L&{8jWZWWW |LR NA Xe' 2L 6Wtp:# *&&$&4::'@h'H$9'|Q8NOT ENOUGH CONTIGUOUS SPACE FOR SWAP FILE ON %2A%O: > >  6*&  '|Q'|Q232FAILED TO CREATE SWAP FILE ON %2A%O: - ERR=%D. N tN 2 &"1B1D1F00 e p  0\5 &` '|Q2&{8&{8"&{8(,{.,{40{N`Vd\ \r fl'|Qb4bILLEGAL DEVICE %2A%O: FOR DEDICATED SWAP VOLUME   b   &" '|Qb^2'|Q5DEDICATED SWAP VOLUME %2A%O: MUST NOT BE MOUNTED     <@2r2 2 2        P h '|Q0{ ,{$,{(&{8,&{80&{86HLRLXLbLjtzl7{%'|Q"SWAP -- SWAP FILE %D. DELETED V NV    wD dB~ -x׭s '|Q*'|Q)BAD BLOCK DATA IS INCORRECT, IGNORED    w ŝV rwNwJwBw:wl4w ."􃔃  `w - S-N-L-0 '|Q ",{(,{.,{4,{:,{p! G- -- - eB v vBC  n   sc"tz 7{%'|Q$SWAP FILE CONTAINS BAD BLOCK(S)  d    lWtgt    l @ @H '|QL,{p!(]d,,{p!6>LBLJ,{p!N2{ X'|Q(#(TOO MANY SWAP FILES, MAX = %D.   ( `Zm*W @ @ '|Q('|QH-HMAXIMUM TOTAL SWAP SIZE EXCEEDED, MAX=%D 0 ,0 H DL5  $ '|QHL"tzs$7{%'|Qr2rT-S SWAP FILES MUST COME AFTER R-T SWAP FILES X $X r 8 $ '|QrLtzs7{%'|Q-REALTIME-ONLY SWAP FILES MUST COME FIRST x <x  (U`    f$ '|Q&L.!{xK4eW'|Q,CAN'T ALLOCATE - SWAP FILE %D IS ACTIVE     x l_  Cet r B*eBf1 fE \ '|QUdUd"eW*.]d4UdBnHLrTrWxWyWBz xd?!,T& '|Q1ERROR DELETING FILE %2A%O:[0,0]%X - ERR = %DL 00 چ Ѕx|Oxss6D6 >&'1 4X & 6 '|Qs$9΅(,044X:vw'|Q % ILLEGAL DEVICE %2A%O: - ERR = %D vTv  'f ` %wjW W,SYE wR5&J '|Q  @sd l6``$sd4W>rFԃzH'|QB,BDEVICE %2A%O: IS NOT A DIRECTORY DEVICE B          e B!B  B!B w6w25 " '|QBdl rBaW w, t,t, d!dAWt &v ,{ ,{ "L&L,0{4>,{@,{H,{J,{bt,{x,{|2{ X4t`D E`D ,, &",{p!,{ ,{,'|Qj+jNO ROOM ON DEVICE %2A%O: FOR SWAP FILE bj  E 6v wPwLB <V  4 '|Qj"* 0DVT$9ZZ$9 '|Q3FATAL DISK ERROR READING BAD BLOCK INFORMATION LL (~ '|Q'|Q(ALL BAD-BLOCK BLOCKS ARE UNREADABLE \0\  AW ~ f$ '|QLL'|Q SWAP FILE %D DOES NOT EXIST  v RԔԔÜ &f @`  ` '|Q0{",W2tzp47{%:&{8>&{8D,{H,{L2{ XP,{p!X!{xKC5 A!ԕ,T W!ԕ "   : U` @ V ~47{%&4< F\nbUdp]dl  Bts@  0z~v  ~B 2{ XUd,]d2Ud83g> yBeWJNtzP7{%L!LSWAP -- WARNING -- SWAP -- jj  7fw`ZwTJHFŝCŵ 7ŵ$ŵ "*fŵeR&B~eH7:@\^&ŵ Lŵ`Д  wNFjŵl5 &"j5 ?"L,`PLX!{xKheWvUdz]d~,{p!6t 7 @7 :  %et "3g y*p80eW'|QFAILED TO PICK NEW BITMAP  do7 awa z! `! l 77f '|Q3g]d$tzs&7{%.,{p!0 y43g@]dPUd`]dfUdlnpeWv&{8|&{87& ֵ)Bfp\p^ 7,Bj7,Dd7,F^ hzN0 TF&{8 7{%ntzp0{"W(W6:W@WFt,RVX0 ZeB  WBzWx " XUXB,ZXDGP}@yDwp!FSyxw  Lw Pwp!TŞXt: qZ#"p%"U zt:W Dw~y@%@:2@nL`@uL%@N@e |@"@q~]@z@Z@00 Ȅ*@zn^@l~Pd@uL@"^@fH@:s@:@#"p@S@@" q@fw@C `@$9!@@k@JoM@o32@C @}@:_@y@ t:W h ? [Y/N]: [S [O׭ ѕ* ׭ : ׭ OD@Е ЕRЕ: j zz}N fH$C 2z4}:>S@D HS@LzNy\uLjuL%|oMtpЕ- d Е ЕDЕ: JЕ]Е:Е BB7  ׭w~ o32%&>C Dl~PdnL` HfwN:sPl~Pdn^ TC XC `\q~]`:2bl~Pdn^ jw~yl$9!p"^~   Е.777 >[4:7 w:) w #W we | uL:_:"uL%&%*uL.z2k>JuL%N"RoMVzXuLb"foMlyrC `xo32|zLx:7 w ]w -PuLZ%" z"uL2z6" q8#"pINVALID KEYWORDSYMBOL TABLE OVERFLOW UNDEFINED SYMBOL NUNDEFINED LABEL .LABELX: REDEFINING SPECIAL SYMBOLDATA FILE ERROR, CODE ;(;REDEFINING SYMBOL TO DIFFERENT TYPE ffSYMBOL TYPE ERROR STRING SUBSTITUTION ERRORSUBROUTINE NESTING TOO DEEP.RETURN WITHOUT .GOSUBILLEGAL FILE NUMBERFILE ALREADY OPENFILE NOT hOPENBAD RANGE OR DEFAULT SPECIFICATIONTASK NOT INSTALLEDSPAWN FAILURETOO MANY CONCURRENT .XQT'SbBb``(`7`E`U`}`d;`f~` ` (`7`E`U`}` "$&d(*,.024;68:`<>@fdddddddd%d8dFd Nb}d 7 \7 "_|d  ddddd d"%$d&8(d*F,d4b8dBfwF"`L"`RX^_5x Е.! ѕ:@7Е<A A   Е>7   hf)Ps5x: *KK$S@0Cyz6Cyz@F[(}L[(}XCyzf"`lfwrwLxE,Kh|vL`*|  00  Ѕx|Oxss wJl~PdnL`  fwwLl~PdnL`  `$fw(e PsUzt:#&DzP}@ "r@t:@t!` @t: q@zP(@e"@"^@y@%"@g'@y@Zt:@dK@nLL@nLL@#0@xd@nLN@"`@ t:#&h V 7!w7 ~dK #0 t:t:xd%" "r$"^(y*y.y2zP(6"`:"`>"`Bg'FzP}Jt!` Nt:R"^LR7  E~zP}g' "`"`"`zP(y y"y&"`*zP(,zP}0t:4nLL6g':nLN@nLLBnLLFe"HnLLwnLNnLL nLLt: qUzt:&D<&@<&Kq@p@'@<&9@e"@Y@cKU<@VN@vL@nLL@Yp@Rt @<&D@!X}H K8hE,KhF<%h|ϫ*}h,yP  ,,TRDEMC.YpnLLe"nLLYnLLhh VNll rrUUy<&9<&Kq<&D  AT.>vL  cKU<||t <& 't <& '<<t <&^^``__ 'ddLt <&& ' <SYUtX:-LtXD *khkh .     4Uzt:,.DzP}@ "r@a' @N@E,K@\K X@t: q@Z@*KK@#"@yH@:y@zzP(@*K@"pX@.H@y@g'@%"@#"p@y@w@dK@$"@ 8r@nLL@nLL@z""`"@Ϫ@xd@y@w @k@:@,t@"`@H @ _Pshn*K !h\qhp:h*+.hh,.]h8s:h   < fe- .(  7ewaa rN.H yH&w.Z4w 8%":$">NHa' R*KV*Kbxdf,thE,KanE,KatN~*KKx|7w :   7 T T wW! & Uw~"`*KK "`*KK"` "rt: q#"p*k0a' 8*K<*KHE,KL 8rZ:y^ybyjE,Kn 8rnw@7! 7  B 7 y #"yyy(E,K,:0""`"4k>H DE,KHϪNyTzP(XyZy^"`bdKfzP(hzP}lnLLPZW`    :  8g'nLL nLL"pXk&*KK8\K X>*KKD\K XUpzt:O9pD,~@N@"@wp!@t: q@Z@xx@_M}@yH@:y@.H@Y@r%"@Jw@#"p@c}p@w@$"@. @w @k@}@y@ nN9h OIFDFIFNDFIFTIFFIFACTIFNACTIFINSIFNINSIFLOAIFNLOAIFANDOR(LL"&48 \`EQ=GE>=LE<=NE<>LT<GT>0 7hc7`  L x. @qP"&4 8 \`LJw^bc}phLlk96w w   7 & P&  I &  = &  4 D :yNt: q@,~N,~VYZxxf.HlyHx.H~yHD2f,W& 00 Ȅ* 7:olgd7^ wB Nw}w_M}$k>FLJwh#"pj%"l$"p.HvyH  f E& W  wנ -נ LJ Ňf5Tkfc}p4w @#"gH"pXH"0aHZ@"^HcKUCyzhnLNhbz Xh.Rhh#KhuL`;hDTyH:hPSyph"`hH h:z*}h&~h 44 DD xxQds{84S;" pp062RBxzXyK#<} zX""`w"zC;_M}_M}_M}_M% _M%&_M%,_M%2_M%8Z@ZL^HZL^PZL^R# zXZL^Z# z`ZL^b#hZL^j#""pZL^r#w"MCRy y0#0Ayz}<@ 00-JAN-00ZL^ZL^yP!Pu~@00:00:00 [000,000]}yynnz [000,000] y~~jL[1,1] y + :2 VN > VN > () > &>  > JUzt::DSy8T@ "r@zP}@U<@`@@ @8@Q@E,K@t: q@*KK@# z@zzP(@Sy#@t:h~@oM@X@dK@yK@+f@yP<@nLL@@Yp@#P}@xd@<%@zw @@,'@z X@.R@@#K@,t@:"K@!X}@"`@z*}@ e ؚht:p:hp  p iyKN w 7E p X @8t:h~z*}zP} z*}yP< "z X&U<6Sy8Tw  <@hq!`h`h  5SUBSTITUTIONDATAGLOBALLOWERCASEESCAPEQUIET22 JJ D Bp 6 2ȕ -)%C  n z- oM ;"m`"Nf,Pk(H .K8:=L@=bt:h~f@8lfapJwv; |Jwl @e w @   Bw2&)W)Ty)'}s '")&h',t: q.#"p0"H&2"'4"@`6"Y:N>f,PH`NNRf,PbH ha(}d^d "  A2 %^7  w  ^wPw@w ^^ dNk"c}p(2.^4t!` :f,P@t!` Ft!` Ng'Tg'Xt: q\#"p^"'zU`zt:d`D,~@t @N@t: q@Y@n^@> @Z@Y@g'@ @#"p@z`:`m@:@ p@fw@[(}@4{W@y@y@@k@xx@ .=dwhF( hh񏰁h PAUSING. TO CONTINUE TYPE "RES XXXXXX"CONTINUINGDELAYING     2 LLNP TX \4{W`[(}d4{Wh[(}lpfwtyz2~fw|w DT  S M H = & f&Ї 5pt: q#"p kZ<N@=DfwH:Jt n^ Nt Z> f> hylytNxYzg':    wF:t n^  t ,~Yxx$N(`:`m,k8 pU zt:wf Ds@@8@Q@$"X@("`m@Wy@Sy#@t:h~@#"g@Wy0 @Wy@Wy8"@z`:`m@DRY@Wy0@DR'@Wy@y@#P}@w @> @W@:"K@$9:@ =h ~ -_MU-DR~50C~ w  e~w| W(DR',DRY0W8W>WyHWyRWyVt:h~Z@8\Wy `WbWy0f#P}jQr:"K v("`mzWXze|- -w1 rWy8">  Wy0 yWy0Wy"s$$9:,Wy00Wy8s:$9:>$"X@#"gD`:`mJyPSy#w  JUpzt:fpDw@_Ps@`@E`W@*K !@@C v@w0*@<@@a(}@"XH@=dw@z\q@wv@q!`@p:@+.@N9@c}p@@( @C W@|<@C @@`@w}@B,.]@}}@񏰁@s:@wW@ fQh DELAYPAUSEWAITXQTASKNASKSASKSETTSETFSETNSETSINCDECGOTOONERROPENCLOSEDATAENABLEDISABLEGOSUBRETURNCHAIN4|TEST (  =dw񏰁C WC vC w}w0*wWwv s:"$,.]&_Ps(E`W*w,<@.q!`0`2+.V 2&6%IF    W & W wyT\qp:}} *K ! N9$(c}p.2"XH6|<HL`Pa(}TUzt:rD;"H" q@}:@fQ@`@wp!HE,K@t!` @ZH*KK@yw@H z_M}HVNHe"H,9@)p@YHt:""@"@> H"pX@)P@wPs@e ؚ@ZH00 Ȅ*oMHzVNH#"p@`:`m@vL`@m`"HwH_M%Ht:@t:#&@#"@vL@-H@ZL^H;"H zHz#0@YpHϪ@xd@w H> Hk@ @,t@"H&@yKHP}HyHt:p:@  jt:hRe |ht: qh t:?qh(a(}h:yht:!he PshyKh h|<h ph( w  ` WWWW7wfwh` ) ه apt:""e ؚ#"p"pX" q"#""t:p:&E,K*ϪL#0Nt:Tt:#&\vL`nkvxd|,9~E,Ka|aפ.4 /פ:,7aa.;  7 7. ,B@p w(j,t E,Ka*KK&xd*,t,E,Ka2E,KaDywHwPsN`TvLX`:`mn)pr)pv z"H&,;ww ҤʋfQ}:t!` )PUzt:wDN@z@t: q@Z@N 3@N .@_M}@fH@#"p@w@_M%@#"0a@J. @}@y@ \w0*hwvhw}hwWh `w ׭׭ f @ wt_M} _M%}Zy z$N(fH,z.}4w:z-xBk\Cyzj-xrw> V fD E E6J!V Efffw! DDaeEJ` w`N` N Cyz&wp!:Cyt!BzP(Fz XXz X`wp!fw tz Xzz XAaD!aa!ufe 5az V & & f  v2$y&w,wp!2w g'l9xz9xj   ~Upzt:(zpDs@P}@w~y@*K}@`@&{P@t @nL`@*K}@wp!@z@@zZ@*KK@[@8@$9Y@yH@zP(@:t @*K@&{@n^@l~Pd@)P@@wT@.H@zY@g'@Jw@ @#"p@$9΅@""@:@g#@w@@vL@-@""8"@-x@z#"pBCyzF""8"JyHPwXz\""`w dzfZp-xv-xg'~z Xvw!w`7!700   Ѕx|Oxss5   BB W;#zP(z Xz X#"0a zP($(.z0w4w 8wp!>w DJwHXJw`l~PdnL` df/Kh:t r:Bj֝> e  $7wtt n^  t n^ t f/K&l~PdnL` .l~PdnL` 6l~PdnL` :f/K>l~PdnL` %  ׭1+& # 0%e 5  |l~PdnL` l~Pd$9΅sw~y w~y"$9Y4l~PdnL` ><%BkV!X}\&{Pn)Pt*KKx|*K$--  wIe   eW 1 |&fh 0 f| "f  &*K}**K<*K}^hhfvfr&  U`  EP&!  54, Dfy"& wPswLcKU<vL0M* z,g'ZwLh.|yHB' 3CeB 3 - .'fA 5  JwZ}$wp!*w 0vL0MZJw^w fwl:_r:~JwJC•T5•F w w  ҋ ʋ& K"&" =A'6w wPs$(H 0`: TXkdyK 5 3W0& [ N:" ]uA ee !RT+A L.yHwy>wp!Dwp!Nw ZRlv#"px%"z$"|""z%Bu+-*/!&()w  zwddt| >N` 6N0E ,& &@   & 6-wj) NP% A N@ |]wq.t|  2ݪKLiWQ7 f Lf& & x 2 0R Tyd09 w& $fEJ"0aZL^zk2x8kDRNd^.jyHpwtz|Z>\A w .^@&w Z"z8#"p:%"<$"U zt:Đ D@Q@# z@X\@Sy#@T؁@y@#P}@w @> @:"K@ z񏘀hjxxh z |  e~ e    y yJ"J yf# zSy#w  #P}"Q*:"K 2> 6y:yHZSy#w  lT؁tX\6U6Vz[R S6VDs@K8@<&Kq@:2@`@)@@8@Ѳ:@20Hn)Ty@}@; @z<&9@:t @e"@,9H)p@t:h~@2&@)P@)@g'@Jw@)W@o@:@ 8r@z'@=@@=@)Ps@' q@#0Hj$9!@,'H@)p@:@hp!@ϫ*}@,tH Ϫh*ϪhϪhϪhϪh w aj  <Y@ wPaw0  !_ AdBbAepCnS >o"' q$)(hp!>)PH<&9J)VsZ:t `Ѳ:|( @pnp  C  aD "ABuhf=a `WaWz N :2Ѳ:)p )p$}*)Ps.<&90)6:<Ѳ:N)pR)pɥ;)a$å7@j*a a @  00 Ȅ*! a w& a d`V @ ŀa $9!2<&Kq4)B:tjw jj lj w ɥ@aujk : fԇ @a&oJowB \w < p 5f ȕ  Dl lj o*K86=Nϫ*}T@=la Ce# # @   ww  jDl@ Te F)W.' q0)4hp!@:F$9!H)PsVo\)Pl 8rv)We 5l@   eSY@ @5wwAn5j)fb`"t:h~&@8*Jw0; 6Jw<2&@K8P)TyT' qV)Zhp!be"dg'j'n`Ld  4  @     RՀa@ s"UJzDp@ @8@@8@@|L@ (v )RR?V VvRvR-|-ddPKf4R"& @8,@84|L6pBpHpUJD @8@@@ @ @j@@ 6( :I |dA1,3( @8$@( @j* 0UOz2OD<&Kq@p@:2@ @8@}s@@8@:p@|f@<&9@$9~Z@ @@:br@z%@?S@X@$9@u68@4{W@ @j@@<&D@|L@:4F@ Zg@ hyZg@(> Zg@= PASSWORD>HEL -- ILLEGAL PASSWORDHEL -- SYNTAX ERROR :+:HEL -- READ FAILURE ON DIRECTORY ENTRYbIb :'$HEL -- DIRECTIVE FAILUREHEL -- NON EXISTENT ACCOUNT:2 :v t$ $v  $ &$ $~:2 t:2 "*:p 0 4v6::2 @DL:2 RV&^:2 dhp:br(PP |Q(  P:4F BB   Zg@E   I<&9<&Kq<&D   '@P HEL>@P& &>>P Zg@>>   0 b w$" fh[ N 5wW, 6 5wť]NX   ?S(2"DPbz`& D@ :% b `T UE׭U|  @"$u68@ . 2b 6<}sBJP|fRV^|fl(4 1 *& #" uP0 W!EU~ "*28">$9@ H N PP^b @8fh@8~E]Ew-0b *3$w %/%7 wp b|L% |f %% @j4{W&0.6b>$9~ZFN\$|rEAa% %9 wF&t  @ @ B&*04:@D @HN@T@X^dUXzmXDp@ @8@:a @%@:74@:@ԃ`@w&q@@|L@ Zg@ \ Zg@( )R8R \XmVw&q,:a 6Zg@VZg@`REEEx^)zxzx3sr  R @8|L% ԃ`"p &x ,^>:00  Ѕx|Oxss@z DxJ:74Lz PxUOzODp@:2@@@|f@W@W@@ @@T; z@Q@B@|x@L^@ԃ9@:_@|L@ (  57F + K58&Е[ Е, Е]Е x ~Qԃ9F$W(W,:_0K4L^6 <|x>pD|LFpRV:_`d:_l|fnpxxl|B De-d q  B F7t4ۇ3)0 d*q8PFX4`T; z44 `F :2 `FJJ d(dNOT LOGGED ONOFFLINEPRIVILEGEDSLAVEDUOzgODp@:2@}s@sd@:p@@$9~Z@ @@:br@X@T; z@u68@2:@@ Zg@ yZg@(^ Zg@  PWD -- NON SYSTEM ACCOUNT MAY ONLY MODIFY OWN PASSWORD T/$PWD -- READ OR WRITE FAILURE ON DIRECTOR$  H:2 NRT |Y ENTRYX1  6$PWD -- NON EXISTENT ACCOUNT:2   $PASSWORD>PWD -- SYNTAX ERRORPWD -- DIRECTIVE FAILURE $vv `:2 L:2 RV^:p d hvjn: t xvz~:24. $ $8  :2 &:br 0BBR)  Zg@^^w w[p i5fwW,a ]5Zwť]U& b  &4F^hlnrz @~sdf%-@׭@7  b  +7 7 7 *Nz u68@u68@X  b $*}s0 8T; z:@DHL*TN\dT; zz<*B <3 %/%7 wp EAa% %9 w4 $9~ZB$,4<VhURzwRDUu@\C@ԃz@p@:2@y@2@ @8@@8@@d@f@z|f@W@ `@zg'@z@^@W@9x@@%@ԃD@ԃ`@Q@ԃKq@r@z@|x@ @@ԃ9@@@@jz@|L@ s@@ D T`X\hh(H )RIR d3$SET -- ILLEGAL FUNCTION FOR NON PRIVILEGED TERMINAL:2d_ $ SET -- CAN'T READ MCR COMMAND BUFFER  SET -- SYNTAX ERROR BF]  SET -- PLEASE USE 'TER' COMMANDSET -- PARAMETER ERROR - BAD DEVICE NAME% NN `5 SET -- SPECIFIED DEVICE IS NOT A TERMINAL TYPE DEVICESET -- SPOOLING NOT SUPPORTED FOR THIS DEVICESPECIFIE  `D DEVICE DOES NOT SUPPORT WRITE CHECK.SET WIDTH ONLY VALID FOR RECORD-ORIENTED DEVICES D"  f ILbfDtxfFLEGAL FUNCTION FOR MACHINE TYPE.INVALID CACHE VALUE. SWR = 177777Maximum Extended Size = 177777  SET -- I nrLLEGAL CLI NAMES/  SET -- TERMINAL LOGGED IN  " SET -- DEVICE ILLEGALLY REDIRECTED D" SET -- DEVICE 'SP0:' NOT IN SYSTEM x SE @DDtxxzT -- DEVICE NOT SPOOLEDD3  SET -- DEVICE SP0: IS MOUNTED >  SET -- ILLEGAL MAXIMUM EXTENSION h0L L| 0"00 " ( )Ȅ*ԃ`&(,ԃ`026|x:<@|xDFJ|fNPT|fXZL^\Cb dLd < t# *n 2| 8 @ UICTMOSP-SPLA30SLA30PVP\C  < &(t0#2 :*WDHԃDԃKq LԃDԃKq ZW`ԃ`bhdpԃ`r0 9sU54%CRE *-SPE -&w@w6zfdԃ`ԃ`$W*ԃ`,4r8^:2@dDWLWRdVԃ`X^bv2w,fw"w $  335` 5&w 5  s @2f2p8p>ԃ9@HL`fԃKqhxԀ( 0w d ` 07 W0 W7 0WtHAaFD @ w:S ETfjz  C+L(R% :! 0 W: B WuQW: @P wzw  Zjz`jzljzpz w  p   \WK WtW 8w wl== =w>0 H \ hzjzg'vzxzg' 2  <N )3&7 7   wwv7"2 $N,4<D d%0%77ʥ:ҋf&f `wť:--eE%A%Z LQPXW`Wj % (&w2 %/%7 wp2 EAa% %9 w פ= ve0 v  %8 ~ʥ ʥ ʥ/ʥ ʥ  <N )3&7 7   ww;O#; [ 1 1 , 1 3 ] L O A B L D . C M DD;-; BUILD MCR DEVICE HANDLER LOAD TASK '...LOA'R;/W[11,1]LOA/PR/MU/-CP/-FP/-AB/-FX,[111,13]LOA/-SP/CR=[11,13]LIB13/LB:LOA,[1,1]EXEC.STB/SS/= TASK =...LOAUNITS =1 ASG =TI:1.PAR =GEN UIC =[1,1] STACK =32KPRI =200 POOL =255OLIBR =SYSRES:ROU/OF C; SPACE AVAILABLE TO HOLD LINES AWAITING MATCHING. THE SAME EFFECTDA; CAN BE ACHIEVED BY USING THE '/INCREASE' SWITCH AT INSTALL TIMEP;H EXTTSK =10000 /---=; THIS SHOULD ONLY BE DONE IF THE OPER;(; TEST SUBROUTINE FOR BASIC LOAD COMMAND;6; THIS SUBROUTINE SHOULD CHANGE A STRING TO LOWER CASE;!; CALL IS CALL "LOWCAS"(IN$,OU$);"; WHERE IN$=STRING TO BE LOWEREDD; OU$=RESULTANT STRING;; IDENTIFYING INFO: .MCALL ULODHD ;CALL MACRO( ;IDENTIFY START OF CODE, END OF CODE ;AND ONE ENTRY POINT ULODHD LOWCAS,END,LOWCAS;; NOW THE CODE ITSELF;;&LOWCAS: ;LABLE ACTUAL START OF CODE0 JSR R4,@#GTRGPI ;GO GET ARGUMENTS IN PI FASHION$ .BYTE 3,4,0 ;THIS IS00 *-./0Oxss ARG TYPE LIST% ;3 = INPUT STRING (TO SUBROUTINE) & ;4 = OUTPUT STRING (TO MAIN PROG.) .EVEN' ;WE NOW HAVE THIS DATA ON THE STACK$# ;SP+4 5-WORD STRING TABLE ENTRYE ; FOR OUTPUT STRINGT ;SP> 2-WORD INPUT DESCRIPTOR ; (SP)=LEN, 2(SP)=ADDR0 JSR PC,@#PARCHK ;CHECK FOR TRAILING RIGHT PAREN ;(ALSO BUMPS TEXT POINTER) MOV R1,-(SP) ;SAVE TEXT PTR( MOV 2(SP),R0 ;LEN OF INPUT STRING -> R0 BEQ 3$ ;IF ZERO, BRANCHT5 JSR PC,@#TSTU00 ;CHECK FOR ROOM IN USER STORAGE AREAI ;WIPES R3,R4,) ;R5 -> NEXT BYTE IN USER STORAGE AREA  BHI 1$ ;BRANCH IF ROOM EXISTS) OVFERR ;ELSE DO ERROR TRAP !1$: MOV R0,R4 ;SAVE LENGTH IN R4D5 BIS #160000,R0 ;MAKE R0 A "SCRATCH" DATA TYPE HEADER>& MOV R0,(R5)+ ;PUT HEADER IN USER AREA/ MOV R5,R2 ;SAVE STRING ADDRESS (IN USER AREA)G, MOV 4(SP),R3 ;ADDRESS OF INPUT STRING -> R3* MOV R4,R0 ;STRING LENGTH -> LOOP COUNTER'2$: MOVB (R3)+,(R5) ;REVERSE THE STRINGZ CMPB (R5),#101 ;LESS THAN "A" ? BLT 22$ ;IF SO, DON'T CHANGE# CMPB (R5),#132 ;GREATER THAN "Z" ?X BGT 22$ ;IF SO, DON'T CHANGE BISB #40,(R5) ;OK, LOWER HIM"22$: INC R5 ;AND BUMP THE POINTER SOB R0,2$( MOV R2,R3 ;OUTPUT STRING ADDRESS -> R3! ;STRING LENGTH STILL IS IN R4M03$: MOV SP,R5 ;GET ADD OF RETURN ARG DESCRIPTOR ADD #6,R5 ;IN R55 JSR PC,@#SSTORE ;AND RETURN THE RESULT TO THE CALLERG MOV (SP)+,R1 ;RESTORE TEXT PTRH% ADD #7*2,SP ;CLEAN STACK OF 7 WORDSR RTS PC ;AND RETURNEND: ;LABLE END OF CODE .ENDT 22$ ;IF SO, DON'T CHANGE# CMP;H$; [ 1 1 , 1 3 ] L U N T K B . C M D ; COMMAND FILE TO BUILD ...LUN; O[11,1]LUN/PR/MU/-CP/-FP,[111,13]LUN/-SP/CR=[11,13]LIB13/LB:LUN,[1,1]EXEC.STB/SSN/TPAR=GENSSTACK=32 UIC=[2,2]5PRI=2217 ASG=TI:2:3 TASK=...LUNE/SK=351=; NOTE: ALL VALUES ARE DECIMAL/; THIS VALUE CAN BE OVERRIDDEN AT INSTALLX; TIME BY THE /INC OPTIONW EXTTSK=351/ SIZE OF THE WORK BUFFER USED BY ...ACT..; THE NUMBER OF TASKS WHICH CAN BE REPORTED AT+; ANY ONE TIME IS DETERMINED BY THIS VALUE.1; @MASSAGX/DA/PR/MU/-CP/-FP,MASSAGX/-SP=MASSAGE,LB:[1,1]EXEC.STB/SS/ASG=TI:1LIBR=SYSRES:RO TASK=...MAX UIC=[1,1]STACK=64PRI=221/=MASSAGE/PR/MU/-CP/-FP,MASSAGE/-SP=MASSAGE,LB:[1,1]EXEC.STB/SS/ASG=TI:1LIBR=SYSRES:RO TASK=...MAS UIC=[1,1]STACK=64PRI=221/ .TITLE MASSAGE .SBTTL INTRO PAGE .IDENT /MRH001/+ .MCALL DIR$,EXIT$S,GMCR$,SPWN$,STSE$,QIOW$;D;THIS PROGRAM IS A COMBINATION OF PREVIOUS PROGRAMS AND ENHANCEMENTS3;ORIGINALLY DEVELOPED BY REID L BROWN OF WALLGREENS;>;THIS PROGRAM COMBINES SEVERAL DCL TYPE COMMAND LINES INTO ONE ;PROGRAM. ;;PRI[NT] QUE NAMED FILE TO LP;3;DOC[UMENT] QUE NAMED FILE TO LP1 WITH FORMS TYPE 1; ;TYP[E] OUTPUT NAMED FILE TO TI;+;PUR[GE] PURGE NAMED FILE TO LATEST VERSION;5;DIR[ECTORY] GIVE A DIRECTORY OF THE DISK IN QUESTION;D$;BLO[CKS] LIST USED/ALLOCATED BLOCKS;P!;REC[OVER] RECOVER LOCKED FILE(S) ;A(;FRE[E] REPORT AVAILABLE BLOCKS ON DISK;M";SUB[MIT] SUBMIT FILE TO BATCH RUN;R(;PRO[TECT] SET FILE DELETE PROTECTION ON;S+;UNP[ROTECT] SET FILE DELETE PROTECTION OFFO;M;USE N,N SET /UIC=[N,N]D;L;COP[Y] FILE PIP SY:=FILEU;A8;BRI[EF] DO BRIEF DIRECTORY (FASTER) OF DISK IN QUESTION; <; LATELY ADDED ARE SHORT FORM COMMANDS TO FORTRAN AND MACRO.; TO AUTOMATICA002( )Ȅ*LLY EXPAND ONE NAME TO 3, I.E.%;FOR XXX F77 XXXXXX,XXXXXX/-SP=XXXXXXO%;MAX XXX MAC XXXXXX,XXXXXX/-SP=XXXXXXC; 5;DEL[ETE] DELETE ALL COPIES OF A FILE (WITH A PROMPT) 3;TRU[NCATE] TRUNCATES FILES (RETURNS UNUSED BLOCKS)T;L;EL;IN ADDITION, ALL TASK NOT INSTALLED ERRORS MCR ENCOUNTERS WILL CAUSE HIM TOH;SEND THE DIRECTIVE TO MASSAGE. MASSAGE WILL ATTEMPT TO INSTALL THE TASKL;LB:[11,1]XXX.TSK IF SUCCESSFUL HE WILL EXECUTE SAID MCR TASK AND REMOVE HIMH;ON EXIT. IF UNSUCCESSFUL, HE WILL ISSUE THE MCR ERROR MESSAGE "TASK NOT ;INSTALLED"F;X?;THE PROGRAM WORKS SIMILAR TO MFT, IE MCR MUST REALIZE THAT THE?;COMMAND LINE SHOULD GO TO DCL RATHER THAN THE ONE MENTIONED INT;THE COMMAND LINE.;E4;THIS PROGRAM MASSAGES THE COMMAND LINE, FOR EXAMPLE;K; MCR>PRINT XXXXXX.YYY;N%;IS REFORMATTED AND SENT TO ...QUE ASI;T; QUE LP:=XXXXXX.YYY;I ;F.BORGERT;MICHAEL REESE MEDICAL CENTERX;DEPT OF MEDICAL PHYSICS ;SEPTEMBER 78M;T2;MODIFIED FEB '79 (ADDED SUB[MIT] TO BATCH COMMAND.PAGEE.SBTTL LOCAL DATA, DPB'S;N;DPB'S;LGSPWXXX: SPWN$ ...XXX,GEN,,,,1 ;SPAWN APPROPRIATE TASK IN GEN PARTITION,JINSXXX: SPWN$ ...INS,GEN,,1,1,1,,,INSMES,INSLEN ;SPAWN INS UNDER UIC [1,1]JREMXXX: SPWN$ ...REM,GEN,,1,1,1,,,REMMES,REMLEN ;SPAWN REM UNDER UIC [1,1]# ;WAIT FOR FLAG 1 FOR ALL SPAWNST2STOXXX: STSE$ 1 ;STOP UNTIL SPAWNED TASK FINISHES;I!MCR: GMCR$ ;DPB TO GET MCR LINELIQIODPB: QIOW$ IO.WVB,1,1,,,, ;REPORT TASK NOT INSTALLEDA;D; MISC STORAGE7PERFLG: .WORD 0 ;FLAG THAT PERIOD WAS SEEN IN CMD LINE:SEMFLG: .WORD 0 ;FLAG THAT SEMICOLON WAS SEEN IN CMD LINE6SLAFLG: .WORD 0 ;FLAG THAT SLASH WAS SEEN IN CMD LINE'TSKDOT: .RAD50 /.../ ;FULL RAD-50 NAMEX$CALNAM: .WORD 0 ;TO CALL OR INSTALL2TSKNAM: .WORD 0 ;RAD-50 TASK NAME IN COMMAND LINE3MASNAM: .RAD50 /MAS/ ;CHECK SO I DON'T CALL MYSELFN0DELNAM: .RAD50 /DEL/ ;CHECK FOR DELETE FUNCTION#VCPUD: .WORD 0 ;PUD ADDRESS OF VC:N/NAMEST: .WORD 0 ;START OF NAME IN COMMAND LINE8NAMELN: .WORD 0 ;LENGTH OF NAME (FOR FOR, MAC 1-LINERS)*SPWBUF: .BLKW 45 ;BUFFER FOR COMMAND LINE;I;O.PAGEE.SBTTL ASCII DATAF; ;ASCII MESSAGESA;LNOTMES: .ASCII /*** MCR TASK /&NOTMEP: .ASCII / NOT INSTALLED ***/ NOTLEN=.-NOTMES2LENERR: .ASCII /*** MCR COMMAND LINE TOO LONG ***/ LENERL=.-LENERR .EVEN;0;A+;ASCII COMMAND LINES FOR REMOVE AND INSTALLR;0INSMES: .ASCII /INS LB:[11,1]/INSPT1: .ASCII ?XXX/TASK=...?SINSPT2: .ASCII ?XXX? INSLEN=.-INSMES;NREMMES: .ASCII /REM .../REMPT1: .ASCII /XXX/ REMLEN=.-REMMES .EVEN.PAGE .SBTTL COMMAND TABLE;;THE FOLLOWING TABLE CONSIST OF 5-WORD ENTRIES OF THE FORM:M ;(1) RAD-50 TASK NAME (2ND HALF)3;(2) POINTER TO START OF LEADER OF MODIFIED COMMANDN9;(3) POINTER TO CHAR STRING TO ADD TO FILESPEC (OPTIONAL)N?;(4) POINTER TO START OF TRAILER OF MODIFIED COMMAND (OPTIONAL)R,;(5) RAD50 (LAST HALF) NAME OF TASK TO EVOKE;[+CMDTAB: .RAD50 /PRI/ ;PRINT FUNCTION ENTRY2. .WORD PRILDR ;ADDRESS OF LEADER ASCII STRING# .WORD 0 ;NO ADDITIONS TO FILESPEC& .WORD 0 ;NO TRAILER FOR THIS COMMAND& .RAD50 /QUE/ ;SEND COMMAND TO ...QUE;T' .RAD50 /DOC/ ;DOCUMENT FUNCTION ENTRYD. .WORD DOCLDR ;ADDRESS OF LEADER ASCII STRING# .WORD 0 ;NO ADDITIONS TO FILESPECP& .WORD 0 ;NO TRAILER FOR THIS COMMAND& .RAD50 /QUE/ ;SEND COMMAND TO ...QUE;L .RAD50 /TYP/ ;TYPE FUNCTIONL .WORD TYPLDR($ .WORD TYPADD ;ADDITION TO FILESPEC& .WORD 0 ;NO TRAILER FOR THIS COMMAND .RAD50 /PIP/I;  .RAD50 /PUR/ ;PURGE FUNCTION .WORD PIPLDR " .WORD 0 ;NO ADDITION TO FILESPEC .WORD PURTRLH .RAD50 /PIP/A;  .RAD50 /DEL/ ;DELETE FUNCTIONT .WORD PIPLDR .WORD DIRADDT .WORD DELTRLO .RAD50 /PIP/R; " .RAD50 /DIR/ ;DIRECTORY FUNCTION .WORD PIPLDRF) .WORD DIRADD ;STRING TO ADD TO FILESPECM .WORD DIRTRLQ .RAD50 /PIP/A;T .RAD50 /BRI/ ;BRIEF DIRECTORYE .WORD PIPLDRO) .WORD DIRADD ;STRING TO ADD TO FILESPECE! .WORD BRITRL ;DIFFERENT TRAILERS' .RAD50 /PIP/ ;PASS THE COMMAND TO PIPR;; .RAD50 /BLO/ ;BLOCKS FUNCTION. .WORD PIPLDRI)00:-./0Oxss .WORD DIRADD ;STRING TO ADD TO FILESPECP .WORD BLOTRL5 .RAD50 /PIP/E;N, .RAD50 /REC/ ;RECOVER LOCKED FILE FUNCTION .WORD PIPLDR5 .WORD DIRADD. .WORD RECTRLI .RAD50 /PIP/N;.) .RAD50 /FRE/ ;LIST FREE BLOCKS FUNCTION .WORD PIPLDR. .WORD 0 .WORD FRETRLP .RAD50 /PIP/ ;I .RAD50 /SUB/ ;SUBMIT TO BATCHD .WORD SUBLDR ;LEADER ADDRESS7 .WORD SUBADD ;ADDRESS OF FILE TYPE TO ADD TO FILESPEC5 .WORD SUBTRL ;TRAILER ADDRESSR .RAD50 /QUE/ ;TASK TO EVOKEN;O* .RAD50 /PRO/ ;PROTECT FILE FROM DELETION .WORD PIPLDR ;LEADER ADDRESS7 .WORD DIRADD ;ADDRESS OF FILE TYPE TO ADD TO FILESPECL .WORD PROTRL ;TRAILER ADDRESSD .RAD50 /PIP/ ;TASK TO EVOKE5;P .RAD50 /TRU/ ;TRUNCATE FILEF .WORD PIPLDR ;LEADER ADDRESS7 .WORD DIRADD ;ADDRESS OF FILE TYPE TO ADD TO FILESPEC5 .WORD TRUTRL ;TRAILER ADDRESSD .RAD50 /PIP/ ;TASK TO EVOKED;B .RAD50 /UNP/ ;UNPROTECT FILE .WORD PIPLDR ;LEADER ADDRESS7 .WORD DIRADD ;ADDRESS OF FILE TYPE TO ADD TO FILESPECA .WORD UNPTRL ;TRAILER ADDRESSE .RAD50 /PIP/ ;TASK TO EVOKED;S .RAD50 /WHA/ ;WHAT COMMAND .WORD WHALDR ;LEADER ADDRESS .WORD 0 ;NO ADDIT TO FILESPEC. .WORD 0 ;NO TRAILERV .RAD50 /INF/ ;EVOKE INFORM;E .RAD50 /WHN/ ;CLUDGE FOR WHEND .WORD WHNLDR ;LEADER ADDRESS .WORD 0 .WORD 0 .RAD50 /INF/ ;EVOKE INFORM;E .RAD50 /USE/ ;PSEUDO NAMEA .WORD USELDR ;LEADER ADDRESS .WORD 0 ;NO INSERT .WORD USETRL ;TRAILER ADDRESSD .RAD50 /SET/ ;EVOKE SETY;T .RAD50 /COP/ ;COPY FILEU .WORD COPLDR ;LEADER ADDRESS .WORD 0 ;NO INSERT .WORD 0 ;NO TRAILER; .RAD50 /PIP/ ;EVOKE PIP ;E .RAD50 /FOR/ ;FOR AUTO LINER! .WORD FORLDR ;ADDRESS OF LEADERE% .WORD -3 ;FLAG FOR 3 WORD EXPANSION. .WORD 0 ;NO TRAILERR" .RAD50 /F77/ ;EVOKE F77 COMPILER; .RAD50 /MAX/ ;FOR AUTO LINER .WORD MAXLDRM .WORD -35 .WORD 0 .RAD50 /MAC/ ;EVOKE MACRO;;D! .WORD 0 ;END OF TABLE INDICATOR..PAGEE&.SBTTL LEADERS AND TRAILERS (IN ASCII);FIRST THE LEADER STRINGSP;;'PRILDR: .ASCIZ /QUE LP:=/ ;PRINT LEADERS0DOCLDR: .ASCIZ ?QUE LP1:/FO:1=? ;DOCUMENT LEADER&TYPLDR: .ASCIZ /PIP TI:=/ ;TYPE LEADER&PIPLDR: .ASCIZ /PIP / ;GENERAL LEADER4SUBLDR: .ASCIZ /QUE BA:=/ ;LEADER FOR SUBMIT COMMAND1WHALDR: .ASCIZ ?INF ACT/E? ;LEADER FOR INFORM ACT7/WHNLDR: .ASCIZ ?INF CKQ? ;LEADER FOR INFORM CKQ.+USELDR: .ASCIZ ?SET /UIC=[? ;LEADER FOR USEM*COPLDR: .ASCIZ /PIP SY:=/ ;LEADER FOR COPY"FORLDR: .ASCIZ /F77 / ;FOR LEADER$MAXLDR: .ASCIZ /MAC / ;MACRO LEADER;A(;NOW POSSIBLE STRINGS TO ADD TO FILESPEC;P0SUBADD: .ASCIZ /.BIS/ ;SUBMIT FILESPEC ADDITION:DIRADD: .ASCIZ /.*;*/ ;OPTIONAL DIRECTORY STRING ADDITION;TYPADD: .ASCIZ /.DOC/ ;IF NO FILESPEC, TYPE ALL LIST FILESL;E;NOW THE TRAILERSD;H$PURTRL: .ASCIZ ?/PU? ;PURGE TRAILER%DELTRL: .ASCIZ ?/SD? ;DELETE TRAILERE(DIRTRL: .ASCIZ ?/LI? ;DIRECTORY TRAILER.BRITRL: .ASCIZ ?/BR? ;BRIEF DIRECTORY TRAILER%BLOTRL: .ASCIZ ?/TB? ;BLOCKS TRAILER7&RECTRL: .ASCIZ ?/UN? ;RECOVER TRAILER#FRETRL: .ASCIZ ?/FR? ;FREE TRAILERI%SUBTRL: .ASCIZ ?/BA? ;SUBMIT TRAILERC6PROTRL: .ASCIZ ?/PR/SY:RWE/OW:RWE/FO? ;PROTECT TRAILER:UNPTRL: .ASCIZ ?/PR/SY:RWED/OW:RWED/FO? ;UNPROTECT TRAILER USETRL: .ASCIZ ?]? ;USE TRAILER'TRUTRL: .ASCIZ ?/TR? ;TRUNCATE TRAILERT .EVEN.PAGE?4.SBTTL GET COMMAND LINE AND FIGURE OUT WHAT HE WANTS;START: CLR R0 ;SET UP FOR CALLT MOV #"CO,R4 ;DEV NAME IN R4B CLR R5 ;UNIT # IN R5& JSR PC,..FDEV ;FIND PUD ADDRESS OF CO% MOV R5,VCPUD ;SAVE PUD ADDRESS OF VC6 MOV #177777,U.LBN(R5) ;MAKE CO PRIV TERM SO INS IS OK( BIS #UT.PR,U.TF(R5) ;AND MAKE PRIV ALSO- DIR$ #MCR,ERROR ;TRY TO GET MCR COMMAND LINEC3 MOV $DSW,R5 ;SAVE LENGTH OF RECEIVED COMMAND LINEL$ MOV #MCR+2,R0 ;START OF ASCII TO R0 CLR R1 ;SHOW PERIOD NOT RAD50.* JSR PC,$CAT5 ;CONVERT REQ'D NAME TO RAD50" CMP R1,MASNAM ;IS IT A CALL TO ME0 BNE 2222$ ;IT'S OK TO LOOK FOR ANY OTHER TASK,) JMP ERROR ;BUT DON'T LET ME CALL MYSELFD$2222$: MOV R1,TSKNAM ;SAVE TASK NAME% MOV R1,CALNAM ;AND COMMAND LINE NAME73 MOV #CMDTAB,R0 ;POINT R0 TO STA00B( )Ȅ*RT OF COMMAND TABLET-1$: CMP (R0),R1 ;FOUND THE ACTION HE WANTS ?R BEQ FILL ;BRANCH IF SO ADD #12,R0 ;ELSE TRY ANOTHER' TST (R0) ;DID WE FALL THROUGH TABLE ?, BNE 1$ ;IF NOT, LOOK AGAIN; # ;IF NOT MASSAGE, TRY TO INSTALLT MOV CALNAM,R1 ;GET TASK NAME* MOV #INSPT1,R0 ;INSERT IN INSTALL MESSAGE JSR PC,$C5TA  MOV CALNAM,R1 MOV #INSPT2,R0 ;INSERT TWICET JSR PC,$C5TAS MOV .CRTSK,R4 ;GET MY ATL' MOV A.TI(R4),-(SP) ;SAVE MY TI POINTERN+ MOV VCPUD,A.TI(R4) ;MAKE INSTALL RUN AT VCA- DIR$ #INSXXX ;SPAWN INSTALL TO INSTALL TASKH DIR$ #STOXXX ;WAIT FOR INSTALL* MOV (SP)+,A.TI(R4) ;RESTORE MY TI POINTER* MOV #TSKDOT,R1 ;POINT TO FULL RAD-50 NAME JSR PC,..FSTD ;FIND HIS STD! TST R2 ;BETTER HAVE STD ADDRESST BNE 3$ ;BR IF OK JMP ERROR ;REPORT ERRORP03$: BIS #SF.RM,S.FW(R2) ;SET REMOVE-ON-EXIT FLAG< MOV #MCR+2,SPWXXX+S.PWCA ;FILL IN COMMAND INFO IN SPAWN DPB MOV R5,SPWXXX+S.PWCLY MOV .CRTSK,R4 ;GET MY ATL ENTRY MOV A.TI(R4),R4 ;MY PUD POINTER6 MOV U.PC(R4),SPWXXX+S.PWPC ;MAKE TASK RUN UNDER MY PC2 MOV CALNAM,SPWXXX+S.PWTN+2 ;FILL IN HIS TASK NAME# DIR$ #SPWXXX,ERROR ;SPAWN THE TASKI DIR$ #STOXXX ;STOP FOR HIM EXIT$SD.PAGEE$.SBTTL FILL IN MASSAGED COMMAND LINE=FILL: ;FOUND LEGIT REQUESTED TASK, FILL IN APPROPRIATE LEADERR2 MOV 10(R0),CALNAM ;CHANGE NAME OF TASK TO REQUEST MOV 2(R0),R1 ;POINT TO LEADER. MOV #SPWBUF,R2 ;POINT TO SPAWN COMMAND BUFFER&1$: MOVB (R1)+,(R2)+ ;XFER A CHARACTER/ TSTB (R1) ;NEXT CHAR A NULL (END OF LEADER) ?V BNE 1$ ;IF NOT, XFER ANOTHER# ;LEADER DONE, LOOK FOR FILESPECX3 MOV #MCR+5,R1 ;POINT PAST TSK NAME IN COMMAND LINE $ SUB #3,R5 ;ACCOUNT FOR IT IN COUNT+ BLE 70$ ;ONLY 3-CHAR TASK NAME IN COMMANDS&10$: MOVB (R1)+,R3 ;GET NEXT CHARACTER DEC R5 ;ACCOUNT FOR IT* BLE 70$ ;IF NONE LEFT, NO FILE SPECIFIED; CMPB R3,#40 ;A SPACE ? (MCR REMOVES MULT SPACES AND TABS)V BNE 10$ ;IF NOT, TRY AGAIN, ;NOW LOOKING AT FIRST LETTER OF FILESPEC- MOV R1,NAMEST ;SAVE POINTER TO START OF NAMEE; MOV R5,NAMELN ;ASSUME NAME ONLY ON LINE FOR 3-NAME EXPANDSO7 MOV R5,-(SP) ;SAVE LENGTH OF FILESPEC STRING FOR LATERC#60$: CMPB (R1),#'. ;SEEN A PERIOD ?R BNE 61$ ;SKIP IF NOT INC PERFLG ;SHOW PERIOD SEEN&61$: CMPB (R1),#'; ;SEEN A SEMICOLON ? BNE 62$ ;SKIP IF NOT! INC SEMFLG ;SHOW SEMICOLON SEENI'62$: MOVB (R1)+,(R2)+ ;FILL IN FILESPECC SOB R5,60$ ;UNTIL DONE) MOV (SP)+,R5 ;RESTORE LENGTH OF FILESPECN470$: MOV 4(R0),R1 ;GET POSSIBLE ADDITION TO FILESPEC! BEQ 80$ ;SKIP IF NONE REQUESTEDM/ BPL 71$ ;ADD DEFAULTS TO FILESPEC IF REQUIRED 1 ;IF NEGATIVE, THIS NAME SHOULD BE EXPANDED TOR ;3 FOR AUTO FORTRAN OR MACRO2 MOVB #',,(R2)+ ;PUT IN COMMA BETWEEN OBJ, LISTING" MOV NAMEST,R1 ;POINT BACK TO NAME MOV NAMELN,R5 ;TO COPY AGAINE-711$: MOVB (R1)+,(R2)+ ;FILL IN NAME 2ND TIMEN SOB R5,711$ MOVB #'/,(R2)+F MOVB #'-,(R2)+ MOVB #'S,(R2)+I MOVB #'P,(R2)++ MOVB #'=,(R2)+T" MOV NAMEST,R1 ;POINT BACK TO NAME MOV NAMELN,R5 ;TO COPY AGAINC-712$: MOVB (R1)+,(R2)+ ;FILL IN NAME 3RD TIME SOB R5,712$# JMP 90$ ;WE'RE DONE, DO THE SPAWNA.PAGEH!.SBTTL CHECK FOR DEFAULTS IF ANY, '71$: TST PERFLG ;DID WE SEE A PERIOD ?R& BNE 80$ ;IF WE DID, DON'T ADD ".*;*"' TST R5 ;WAS THERE A FILESPEC AT ALL ?N BLE 72$ ;BR IF THERE WAS NONEO+ CMPB -1(R2),#'] ;DID HE JUST SPECIFY UIC ?R BEQ 72$ ;BR IF YES3 CMPB -1(R2),#': ;OR DID HE JUST SPECIFY A DEVICE ?) BEQ 72$ ;BR IF YES# BR 75$ ;FILE NAME AT LEAST SPECIFM:72$: MOVB #'*,(R2)+ ;IF NO NAME, DO "*"+SPECIFIED ADDITION*75$: MOVB (R1)+,(R2)+ ;XFER ADDED FILESPEC TSTB (R1) ;END OF ASCII ?G BNE 75$ BR 84$ ;BRANCH TO ADD TRAILER:&80$: CMP TSKNAM,DELNAM ;IS THIS DELETE" BNE 84$ ;NO, SKIP SEMICOLON TEST& TST SEMFLG ;DID WE SEE A SEMICOLON ?$ BNE 84$ ;IF WE DID, DON'T ADD ";*" MOVB #';,(R2)+ ;ADD ";" MOVB #'*,(R2)+ ;ADD "*"/84$: MOV 6(R0),R1 ;GET POSSIBLE TRAILER POINTERS BEQ 90$ ;NON THERE-85$: MOVB (R1)+,(R2)+ ;XFER TRAILER CHARACTERT TSTB (R1) ;END OF TRAILER  BNE 85$)90$: ;FINISHED MASSAGING THE COMMAND LINE).PAGE 00JN./0Oxss.SBTTL FILL IN DPB AND DO SPAWN ' MOV R2,-(SP) ;SAVE END OF LINE POINTERN* MOV #TSKDOT,R1 ;POINT TO FULL RAD-50 NAME JSR PC,..FSTD ;FIND HIS STD! TST R2 ;BETTER HAVE STD ADDRESS; BNE 103$ ;BR IF OK MOV CALNAM,R1 ;GET TASK NAME * MOV #INSPT1,R0 ;INSERT IN INSTALL MESSAGE JSR PC,$C5TA" MOV CALNAM,R1 MOV #INSPT2,R0 ;INSERT TWICEE JSR PC,$C5TAN MOV .CRTSK,R4 ;GET MY ATL' MOV A.TI(R4),-(SP) ;SAVE MY TI POINTER + MOV VCPUD,A.TI(R4) ;MAKE INSTALL RUN AT VCS- DIR$ #INSXXX ;SPAWN INSTALL TO INSTALL TASKN DIR$ #STOXXX ;WAIT FOR INSTALL* MOV (SP)+,A.TI(R4) ;RESTORE MY TI POINTER* MOV #TSKDOT,R1 ;POINT TO FULL RAD-50 NAME JSR PC,..FSTD ;FIND HIS STD! TST R2 ;BETTER HAVE STD ADDRESSI BNE 102$ ;BR IF OK TST (SP)+ ;RESTORE STACK JMP ERROR ;NOW IT'S AN ERROR>102$: BIS #SF.RM,S.FW(R2) ;IF WE INSTALLED, SET REMOVE-ON-EXIT%103$: MOV .CRTSK,R4 ;GET MY ATL ENTRYA$ MOV A.TI(R4),R4 ;AND MY PUD POINTER6 MOV U.PC(R4),SPWXXX+S.PWPC ;MAKE TASK RUN WITH MY UIC( MOV #SPWBUF,R4 ;POINT TO COMMAND BUFFER) MOV R4,SPWXXX+S.PWCA ;PUT ADDRESS IN DPB(* MOV (SP)+,R2 ;RESTORE END OF LINE POINTER- SUB R4,R2 ;NOW HAVE LENGTH OF COMMAND IN R2.6 MOV CALNAM,SPWXXX+S.PWTN+2 ;SPECIFY SPAWNED TASK NAME& CMP R2,#80. ;CHECK LENGTH OF COMMAND BGT ERRORL ;IF TO LONG, EXIT4 MOV R2,SPWXXX+S.PWCL ;FILL IN COMMAND LENGTH IN DPB1 DIR$ #SPWXXX,ERROR ;SPAWN TASK, EXIT IF AN ERROR $ DIR$ #STOXXX ;STOP FOR TASK TO RUN EXIT$S ;AND EXIT,;X.PAGEP.SBTTL ERROR HANDLINGY7ERRORL: MOV #LENERR,QIODPB+Q.IOPL ;CHANGE ERROR MESSAGEP" MOV #LENERL,QIODPB+Q.IOPL+2 ;INFOERROR: MOV TSKNAM,R1 ;TASK NAMEP MOV #NOTMEP,R0 ;ASCII BUFFERE) JSR PC,$C5TA ;CONVERT TASK NAME TO ASCIIS/ DIR$ #QIODPB ;REPORT TASK NOT INSTALLED ERROR  EXIT$SN .END STARTD BGT ERRORL ;IF TO LONG, EXIT4 MOV R2,SPWXXX+S.PWCL ;FILL IN COMMAND LENGTH IN DPB1 DIR$ #SPWXXX,ERROR ;SPAWN TASK, EXIT IF AN ERROR $ DIR$ #STOXXX ;STOP FOR TASK TO RUN EXIT$S ;AND EXIT,;X.PAGEP.SBTTL ERROR HANDLINGY7ERRORL: MOV #LENERR,QIODPB+Q.IOP*{QvTOL @8@:2@*wr@&{@|f@@@*%@9x@[(}@s@@"f@fy@(z(  * |ؙ, |:,*&Z |Uq,v  Z&v L)* " |{Q :2**** MCR TASK NOT INSTALLED ****** !<MCR COMMAND LINE TOO LONG ***TZ*ZINS LB:[11,1]XXX/TASK=...XXXREM ...XXX*fJm[SmbxeZgkJSb$k((xekxezkxeYkxeok*k  kk &k*xeKqkxeU(kxe zpmf* kk p"$*kxekxekxeyv:*kkk"y*v:=w(xe'$*<m+QkQQUE LP:=QUE LP1:/FO:1=*bPIP TI:=PIP QUE BA:=INF ACT/EINF C*KQSET /UIC=[PIP SY:=F77 MAC .BIS*.*;*.DOC/PU/SD/LI/BR/TB/UN/FR*/BA/PR/SY:RWE/OW:RWE/FO/PR/SY:RWED/O*W:RWED/FO]/TR CO wf(* UR 0T w ~"|f% RsT"9x*Fwwrwl"Ee Xg &g(lLs &@([(} s[(} @8 @8"*N wUT`w&N @8fywr &{$T*^7F8 N @8(N*37RɋW "W*C נ wwfW. W;*( RL/ҕ,RBҕ/*Nҕ-ҕSҕPҕ=fdRBwJ D*t ]:ҕ*Rɋ -&*( ҕ;ҕ*Rɋ &* 'g s &(fyg[(}s [(}$( @8*N  w  @8 N @8 fy* TU00RSYȄ*77$wr &{ @8*2 P N3 N&X8T!PZ# 38#[(}ҕ/*Nҕ-ҕSҕPҕ=fdRBwJ D*t ]:ҕ*Rɋ -&*( ҕ;ҕ*Rɋ &* 'g s &(fyg[(}s [(}$( @8*N  w  @8 N @8 fy* TU|{Q`(Uz[qU{Qv@DRTISYSYSYTICL~TO```8TISYSYSYTICL1 |ؙ, |:, |Uq, ) " |{Q*** MCR TASK NOT INSTALLED ****** MCR COMMAND LINE TOO LONG ***INS LB:[11,1]XXX/TASK=...XXXREM ...XXXfm[m3xeZg8xe.<xez.@xeY.Dxeo.HxeKq.LxeU(Pxe z)Tmf.Xxe.xe.mxev:v:= w(xe'm+Q$kQQUE LP:=QUE LP1:/FO:1=PIP TI:=PIP QUE BA:=INF ACT/EINF CKQSET /UIC=[PIP SY:=F77 MAC .BIS.*;*.DOC/PU/SD/LI/BR/TB/UN/FR/BA/PR/SY:RWE/OW:RWE/FO/PR/SY:RWED/OW:RWED/FO]/TR CO &w.U* 0J :w ~wwrwl"Ee X |L p&@< wU`w^D7 F8 37LRɋC נ wwfW. W; RL/ҕ,RBҕ/ҕ-ҕSҕPҕ=fdRBwJ D ]:ҕ*Rɋ -&( ҕ;ҕ*Rɋ< b '  &<  wTU7 L7 P 3T!PZ |$3w r(@f ťZ#ťAť9ť0ť$ ť  ť.@KqAa$ & &  r(f  e ee e ;MCX/DA/PR/MU/-CP/-FP,MCX/-SP=MCR,PRICHK,LB:[1,1]EXEC.STB/SS MCRERR.STB/STACK=40 UIC=[1,1]PRI=230POOL=200ASG=TI:1 TASK=...MCX ;EVOKE ...MAXGBLPAT=MCR:MASRAD:50600";PATCH TO ADD XXX TO MASSAGE TABLE;GBLPAT=MCR:MASPAT:XXXXXX/00Z[./0Oxss8MCR/PR/MU/-CP/-FP,MCR/-SP=MCR,PRICHK,LB:[1,1]EXEC.STB/SS MCRERR.STB/STACK=40 UIC=[1,1]PRI=230POOL=200ASG=TI:1 TASK=...MCR/%; 07-OCT-76 11:05:09 >SM:=DK:MCR.OBJ .TITLE RSX11D .IDENT /V41 / .LIST MEB .SBTTL INTRO4; MODIFIED BY F. BORGER, MICHAEL REESE MED CENTER TO/; A/ DIRECTLY CALL ...HEL IF TERM NOT LOGGED ON; B/ DO BELL IN PROMPT STRING-; C/ INTERACT WITH MCI (INDIRECT MCR PROGRAM)); D/ MAJOR OPERATION CHANGE INCLUDED 2 775; IF TERMINAL PRIVILEGE BYTE HAS UT.HO (=10) BIT SET6; INDICATING THAT TERMINAL IS IN A HOSTILE ENVIROMENT4; WITH FUMBLE FINGERED OPERATORS, MCR WILL SCAN THE7; CTL FOR THE GEN PARTITION. IF ANY CTL TASK IS ACTIVE.; AT SAME TERMINAL, MCR WILL GET OUT QUICKLY.6; THUS CAN NOT HAVE TWO ...BAS, ONE BAS AND MCR, ETC ; CLOGGING UP A TERMINALA) UT.HO=10 ;DEFINE "HOSTILE TERMINAL" FLAGE;; E/ MODIFIED SO IF HOSTILE TERMINAL ENCOUNTERS MCR TIMEOUTO#; TERMINAL WILL ALSO BE LOGGED OFFN1; F/ MODIFIED 5/77 TO REFLECT DEC V6B MCR CHANGESH7; G/ MODIFIED 6/77 TO USE INTERNAL ASCII -> RAD-50 CODET=; WHICH ALSO ACCOUNTS FOR LOWER CASE LETTERS AND SHOULD MAKEN;E>; H/ MODIFIED 11/77 TO CONVERT ( AND ) TO [ AND ] FOR ODD-BALL5; AND DEC TERMINALS WHICH HAVE [ AND ] IN ODD PLACES ;; I/ MOD 6/78 FOR VERSION 6.3/IAS 3.0 (USE SPAWN DIRECTIVE)T>; J/ 4/82 MODIFY SO SETS ACTIVITY BIT IN TI PUD AT EACH CALL,!; FOR AUTOMATIC LOG-OUT PURPOSESR ; DEFINE TERMINAL ACTIVITY BYTE UT.AC=20E;F .MCALL DIR$,VSDR$,QIOW$,EXIT$S .MCALL SPWN$N.PAGE =.SBTTL CHECK FOR MULTIPLE MCR'S, TASK ACTIVE FOR HOSTILE TERMH.START: MOV .CRTSK,R0 ;GET MY ATL POINTER -> R0' CLR ACTCNT ;CLEAR ACTIVE TASK COUNTERT' MOV #.ATLLH,R1 ;AND ATL LISTHEAD IN R1D- MOV PS.EXP,-(SP) ;SAVE PROCESSOR STATUS WORD( BIS #140,PS.EXP ;INHIBIT TASK SWITCHING524$: MOV (R1),R1 ;START (CONTINUE) GOING THROUGH ATLB# CMP R1,.ATLLH+2 ;THROUGH ATL YET ?T BEQ 25$ ;BR IF WE FELL THROUGH= CMP A.TI(R1),A.TI(R0) ;IS THIS TASK ACTIVE FOR MY TERMINAL ?O BNE 242$ ;SKIP IF NOTN9 BIT #AF.IA,A.TF(R1) ;IS THIS SCHEDULER CONTROLLED TASK ?H BEQ 242$ ;BRANCH IF NOTR MOV A.TD(R1),R5 ;GET STD-% CMP S.TN+2(R5),ATRAD ;IS IT ...AT. ?O BEQ 242$ ;SKIP IF IT ISD( INC ACTCNT ;COUNT ONE TASK ACTIVE HERE#242$: CMP R0,R1 ;IS THIS TASK ME ?,' BEQ 24$ ;IF SO, CONTINUE CHECKING ATL(6 CMP A.TD(R0),A.TD(R1) ;IF STD IS SAME, THIS IS AN MCR( BNE 24$ ;IF NOT, CONTINUE CHECKING ATL< CMP A.TI(R0),A.TI(R1) ;IF MCR TI SAME, ALREADY RUNNING HERE! BNE 24$ ;IF NO MATCH, TRY AGAINK( JSR PC,..ENB0 ;RE-ENABLE TASK SWITCHING8 JMP 16$ ;MCR IS ALREADY ACTIVE AT SAME TI, DONT HAVE 2@25$: ;OK, ANOTHER MCR NOT ACTIVE HERE CHECK FOR HOSTILE TERMINAL% JSR PC,..ENB0 ;ENABLE TASK SWITCHINGN% MOV A.TI(R0),R5 ;MY TI POINTER -> R5M3 BITB #UT.HO,U.PR(R5) ;IS THIS A HOSTILE TERMINAL ?N BEQ 255$ ;NO SKIP NEXT TEST,$ TST ACTCNT ;IS THERE ONE RUNNING ? BLE 255$ ;CONTINUE IF NOTU& JMP 16$ ;ONE PROGRAM GOING, SO SCRAM3255$: BITB #UT.LG,U.PR(R5) ;IS TERMINAL LOGGED ON ?O BNE 35$ ;OK IF HE IS< MOV HELRAD,SPWDPB+S.PWTN+2 ;ELSE CHANGE TASK NAME TO ...HEL3 MOV #401,SPWDPB+S.PWPC ;AND RUN HIM AS A PRIV TASKC( DIR$ #SPWDPB ;AND REQUEST HIM DIRECTLY30$: JMP 16$ ;AND EXITE.PAGEW(.SBTTL ISSUE PROMPT AND GET COMMAND LINE35$:/ MOV U.TF(R5),TERFLA ;SAVE THIS TERMINALS FLAGSA' MOV .CRTSK,R0 ;POINT R0 TO MY ATL NODET& MOV A.TI(R0),R0 ;NOW GET TI INDICATOR/ MOV U.UI(R0),SPWDPB+S.PWPC ;FILL IN UIC IN DPBI/27$: MOV .MCRTO,R3 ;GET MCR TIME OUT IN SECONDSI CLR R2 ;SET FOR DIVIDE2 DIV #10.,R2 ;CONVERT TIME TO 10-SEC UNITS FOR TT6 MOV R2,QIN+Q.IOPL+4 ;AND SET TIME IN THE READ QIO DPB& DIR$ #QIN ;DO READ COMMAND DIRECTIVE BCS 23$ ;BR IF00bSYȄ* DIRECTIVE FAILS, CMPB RSTAT,#IS.TMO ;DID THE READ TIME OUT ? BNE 212$ ;BR IF DIDN'T MOV R0,-(SP) ;SAVE R0 MOV .CRTSK,R0 ;GET MY ATL. MOV A.TI(R0),R0 ;AND GO TO PUD POINTER FOR TI3 BITB #UT.HO,U.PR(R0) ;IS THIS A HOSTILE TERMINAL ?B BEQ 211$ ;BR IF IT ISN'T< MOV BYERAD,SPWDPB+S.PWTN+2 ;ELSE CHANGE TASK NAME TO ...BYE3 MOV #401,SPWDPB+S.PWPC ;AND RUN HIM AS A PRIV TASK ( DIR$ #SPWDPB ;AND REQUEST HIM DIRECTLY211$: MOV (SP)+,R0 ;RESTORE R0 BR 22$ ;AND SCRAMA+212$: TSTB RSTAT ;CHECK STATUS OF READ QIOS BMI 22$ ;BR IF READ FAILED( ;SET ACTIVITY BIT IN PRIVILEGES BYTE3 BISB #UT.AC,U.PR(R0) ;FOR AUTOMATIC LOG-OUT OPTION- TST RSTAT+2 ;CHECK # OF CHARACTERS RECIEVED BNE 1$ ;BR IF SOME RECEIVEDA022$: JMP 15$ ;TIMED OUT OR GOT NULL LINE - EXIT%23$: JMP 21$ ;DIRECTIVE FAILED SCRAME.PAGEA.SBTTL CLEAN UP COMMAND LINE"1$: CLR R3 ;RECEIVED COMMAND LINE+ MOV #READIN,R4 ;INPUT BUFFER ADDRESS TO R41 MOV R4,R5 ;BUFFER ADDR -> R5 MOV R4,R1 ;AND TO R1 MOV R4,R2 ;AND TO R2- ADD RSTAT+2,R5 ;BUMP R5 TO END OF INPUT LINE%20$: CMPB #11,(R2) ;CHARACTER A TAB ?E BNE 2$ ;BR IF NOT06 MOVB #40,(R2) ;CHANGE TAB TO A SPACE FOR COMMAND WORK1 ;CONCATENATE TABS OR MULT SPACES TO ONE SPACEI(2$: CMPB #40,(R2)+ ;IS CHARACTER A SPACE BNE 3$ ;BR IF NOT A SPACED1 CMP R1,R4 ;HAVE WE FOUND A GOOD CHARACTER YET ?M+ BEQ 222$ ;IF NOT, SKIP THIS LEADING SPACE8 CMPB #40,-1(R1) ;NOT A LEADING SPACE, MULTIPLE SPACES ?2 BNE 3$ ;IF NOT MULTIPLE SPACES, STORE THIS SPACE:222$: INC R3 ;SKIP THIS CHARACTER,COUNT SKIPPED CHARACTER BR 4$ ;LOOK FOR NEXT CHARACTER<3$: MOVB -1(R2),(R1)+ ;PACK CHARACTER OF COMMAND INTO BUFFER CMPB -1(R1),#'( ;A LEFT PAREN ? BNE 37$ ;BR IF NOT. MOVB #'[,-1(R1) ;CHANGE THE ( TO [ FOR SYNTAX BR 4$ ;AND SKIP NEXT%37$: CMPB -1(R1),#') ;OR COULD BE A )  BNE 4$ ;SO SKIP TOOE" MOVB #'],-1(R1) ;NO CHANGE ) TO ]"4$: CMPB -1(R1),#141 ;LOWER CASE ? BLT 44$ ;BR IF NOT, BICB #40,-1(R1) ;ELSE CONVERT TO UPPER CASE$44$: CMP R2,R5 ;END OF BUFFER YET ?# BNE 20$ ;IF NOT FILLED KEEP GOINGC0 SUB R3,R5 ;ACCOUNT FOR IGNORED SPACES AND TABS% SUB R3,RSTAT+2 ;AT THIS COUNTER ALSOA/ MOV #SPWDPB,DPBPTR ;SET FOR STANDARD DIRECTIVE+ CMPB RSTAT+1,#15 ;TERMINATED WITH CARRET ?E BNE 276$ ;BR IF NOT. MOV #RECDPB,DPBPTR ;IF SO, DIDDLE DPB ADDRESS)276$: MOV R4,R0 ;ADDRESS OF BUFFER -> R0V< JSR PC,CAT5 ;CONVERT FIRST 3 CHAR OF NAME -> RAD50 (IN R1)0 BIT #UT.LG,TERFLA ;IS THIS TERMINAL LOGGED ON ? BNE 5$ ;BR IF HE IS9 CMP HELRAD,R1 ;NOT LOGGED ON, BETTER LET HIM RUN 'HELLO'L BEQ 19$ ;SO HE CAN LOG ONA/ MOV #PLSLO,R4 ;PLEASE LOGON MESSAGE ADDR -> R4+ CLR RSTAT+2 ;CLEAR STATUS WORD MOV HELRAD,VSDBLK+4 BR 9$ ;ASK HIM TO LOG ON05$: CMPB #'@,(R4) ;IS FIRST CHAR ON LINE A '@' ? BNE 51$ ;NO, GO ON1 MOV ATRAD,R1 ;YES SET TO REQUEST ...AT. DIRECTLYR BR 66$ ;AND GO THERE<51$: CMP LOGRAD,R1 ;DOES HE WANT TO LOG A MESSAGE (ON CL:) ? BEQ 18$ ;IF SO LET HIM% CMPB #73,(R4) ;JUST A COMMENT LINE ?; BEQ 18$ ;SAME AS LOG !!1 CMPB #41,(R4) ;LEADING ! ?I BEQ 18$ ;DO IT TOO.PAGE #.SBTTL CHECK FOR MFT, MASSAGE NAMESE/19$: MOV #8.,R5 ;SET TO CHECK FOR 8. MFT NAMESS/ MOV #MFTNAM,R4 ;SET TO START OF MFT NAME TABLEM< MOV MFTRAD,SPWDPB+S.PWTN+2 ;CHANGE REQUESTED TASK TO ...MFT26$: CMP R1,(R4)+ ;COMPARE REQ'D TASK WITH MFT TASK BEQ 7$ ;BR IF WE MATCH' SOB R5,6$ ;LOOP TILL 8. NAMES CHECKEDO0 ;NOW CHECK FOR 14. MASSAGE NAMES, LAST 4 ARE0 ;DUMMIES WHICH CAN BE CHANGED VIA A ONE-WORD2 ;ZAP TO ADD MFT FUNCTIONS WITHOUT CHANGING MCR ;SEE MASNAM TABLED3 MOV #14.,R5 ;SET LOOP COUNT FOR 14. MASSAGE NAMESE3 MOV #MASNAM,R4 ;SET TO START OF MASSAGE NAME TABLEM< MOV MASRAD,SPWDPB+S.PWTN+2 ;CHANGE REQUESTED TASK TO ...MAS=666$: CMP R1,(R4)+ ;COMPARE REQ'D TASK NAME WITH MASSAGE NAME+ BEQ 7$ ;BR IF WE MATCH' SOB R5,666$ ;ELSE TRY 7 MASSAGE NAMESR466$: MOV R1,SPWDPB+S.PWTN+2 ;PUT IN ACTUAL TASK NAME#7$: MOV .CRTSK,R0 ;GET MY ATL AGAIND& MOV A.TI(R0),R0 ;NOW HAVE PUD POINTER0 MOV U.LBN(R0),R0 ;NOW HAVE PRIVILEGE WORD IN R0* 00j[./0Oxss ;REQUESTED NAME (NOT MFT OR MAS) IN R1& JSR PC,PRICHK ;CHECK USERS PRIVILEGES TST R0 ;CAN HE DO THIS BPL 77$ ;YES HE CANL0 MOV #PRIMES,QOUT+Q.IOPL ;FILL IN MESSAGE THINGS MOV #PRILEN,QOUT+Q.IOPL+2 JMP 12$ ;AND REPORT ERRORM.PAGEM.SBTTL SPAWN THE TASK;-77$: MOV ...RAD,SPWDPB+S.PWTN ;FIRST PART TOOG7 MOV RSTAT+2,SPWDPB+S.PWCL ;PUT CMD LENGTH IS SPAWN DPB /78$: DIR$ DPBPTR ;DO DIRECTIVE TO REQUEST TASKA% BCC 14$ ;BR IF DIRECTIVE SUCCESSFULU1 CMPB $DSW,#IE.INS ;IS ERROR TASK NOT INSTALLED ?Q& BNE 21$ ;IF NO, LET MCRERR HANDLE IT= MOV MASRAD,SPWDPB+S.PWTN+2 ;ELSE LET MASSAGE HANDLE THIS ONEB BR 78$ ;AND TRY AGAINV=21$: MOV #NODERR,QOUT+Q.IOPL ;INSETT MESS START IN PARAM LIST+. MOV #NODERL,QOUT+Q.IOPL+2 ;AND MESSAGE LENGTH- CMP #-1,$DSW ;WAS ERROR INSUFFICIENT NODES ?S BEQ 12$ ;IF TRUE, BRANCH7 MOV #ERRTAB,R5 ;POINT R5 TO BYTE TABLE OF ERROR VALUES:@ MOV MCRRAD,VSDBLK+4 ;RAD50 'MCR' TO SEND REQ BLOCK (FOR MCRERR).8$: MOVB (R5)+,R4 ;FIRST/NEXT ERROR CODE -> R4" BEQ 9$ ;IF 0, FELL THROUGH TABLE CMPB (R5)+,$DSW ;ERRORS MATCH ? BNE 8$ ;TRY ANOTHER IF NOT>9$: MOVB R4,VSDBLK+0 ;MATCH (OR FELL THROUGH) DSW OR 0 ->BLOCK+ MOVB RSTAT+2,VSDBLK+1 ;QIO STATUS -> BLOCKM# BEQ 13$ ;SKIP NEXT IF NO QIO WENTN& MOV RSTAT+2,R3 ;CHARACTER COUNT -> R3# CMP #22,R3 ;CHECK CHARACTER COUNTI! BGE 10$ ;BR IF CHAR COUNT < 18.I! MOV #22,R3 ;ELSE LIMIT IT TO 18:10$: MOV #VSDBLK+10,R40 MOV #READIN,R5 ;RESTORE INPUT BUFFER ADDR -> R5+11$: MOVB (R5)+,(R4)+ ;XFER BYTE OF MESSAGEQ SOB R3,11$ ;TILL DONET,13$: MOV ...RAD,VSDBLK+2 ;INSERT RAD50 '...'# DIR$ #SRQDPB ;REQUEST MCRERR TASKS BR 15$A"12$: DIR$ #QOUT ;WRITE ERROR MESS! BCS 15$ ;BR IF DIRECTIVE FAILEDT TSTB RSTAT ;CHECK QIO STATUS BMI 15$ ;BR IF QIO FAILEDT 18$: JMP 27$014$: CMPB #15,RSTAT+1 ;WAS TERMINATOR A CARRET ? BEQ 16$ ;BR IF IT WAS :15$: MOV #1,QOUT+Q.IOPL+2 ;ELSE MAKE OUT QIO ONE CHARACTER' CLR QOUT+Q.IOPL+4 ;NO CARRIAGE CONTROLP% DIR$ #QOUT ;PUT CAR. BACK TO MARGINR16$: EXIT$S ;SCRAM HERE.PAGE,.SBTTL CONVERT ASCII -> RAD 50;SC;THIS INTERNAL SUB REPLACES $CAT5 SO THAT IT CAN BE INCLUDED IN THE ;PURE CODE AREA OF MCR;T;CALLING CONVENTION$;B;R0 POINTS TO ASCII BUFFERC; WILL CONVERT NEXT THREE CHARACTERS. '.' IS LEGAL AND ANY ILLEGAL$:; CHARACTERS WILL BE IGNORED (ALSO CONVERTS TO UPPER CASE);B ;RETURN WITH%;R1 CONTAINING 3-CHARACTERS IN RAD 50T!;R0 BUMPED PAST SAME 3 CHARACTERSL;;"CAT5: MOV #3,R2 ;LOOP COUNT TO R2 CLR R1 ;CLEAR ANSWER AT STARTI$LOOP: MOVB (R0)+,R3 ;GET A CHARACTER CMPB R3,#100 ;AN '@' ?1 BEQ RETURN ;IF SO WANTS INDIRECT MCR, SO RETURN $ BLT 4$ ;IF LT, NOT ALPHA CHARACTER# BIC #40,R3 ;CONVERT TO UPPER CASE ! SUB #100,R3 ;AND THEN TO RAD 50E BR 25$ ;AND DO CONVERSION'C ;IGNORE '$','.', AND 'SPACE' SINCE THOSE SHOULDN'T BE IN TASK NAMET04$: CMPB R3,#'0 ;BETTER BE A DIGIT IF NOT ALPHA BLT 23$ CMPB R3,#'9 BGT 23$$ SUB #22,R3 ;CONVERT TO RAD-50 BASE BR 25$ ,23$: CLR R3 ;BAD RAD-50 CHAR, SO IGNORE HIM,25$: MUL #50,R1 ;MUL PREV CHARACTER BY BASE" ADD R3,R1 ;ADD CURRENT CHARACTER( SOB R2,LOOP ;AND LOOP FOR 3 CHARACTERSRETURN: RTS PC ;AND RETURNA.PAGE$.SBTTL PURE ERROR DPB'S AND MESSAGES8SRQDPB: VSDR$ MCRERR,,,,,VSDBLK ;SEND/REQUEST FOR MCRERR$NODERR: .ASCII <15>/MCR -- NO NODES/ NODERL=.-NODERR .EVENGPRIMES: .ASCII <15>/CURRENT USER PRIVILEGES DO NOT ALLOW THAT FUNCTION/ PRILEN=.-PRIMES .EVEN;#;LOCAL VALUES FOR ERROR TABLE$;OTHER VALUES (POSITIVE) ARE GLOBALSIE.ACT=-7 ;TASK NOT ACTIVEIE.INS=-2 ;TASK NOT INSTALLEDAIE.HWR=-6 ;HANDLER NOT RESIDENTA"IE.ITS=-8. ;INCONSISTENT DIRECTIVEERRTAB: ;BYTE TABLE OF ERRORSD! .BYTE NTINS ;TASK NOT INSTALLED .BYTE IE.INSG# .BYTE HNNRE ;HANDLER NOT RESIDENTS .BYTE IE.HWR " .BYTE TACTI ;TASK ALREADY ACTIVE .BYTE IE.ACTR .BYTE DSABL ;TASK DISABLED .BYTE IE.ITSN .BYTE UNKDI ;UNKNOWN DIRECTIVE .BYTE 0.PAGEI.SBTTL OTHER PURE CODE DATACHELRAD: .RAD50 /HEL/BYERAD: .RAD50 /BYE/MCRRAD: .RAD50 /MCR/MFTRAD: .RAD50 /MFT/MASRAD:: .RAD50 /MAS/O00rtxȄ*LOGRAD: .RAD50 /LOG/...RAD: .RAD50 /.../ATRAD: .RAD50 /AT./SMCIRAD: .RAD50 /MCI/4PROMPT: .ASCII <15><12>/MCR>/<7> ;USER PROMPT STRING .EVEN)MFTNAM: ;TABLE OF POSSIBLE MFT TASK NAMEST" .RAD50 /ABOALTCANDISENAFIXRESUNF/-MASNAM: ;TABLE OF POSSIBLE MASSAGE TASK NAMESY" .RAD50 /PRITYPPURDIRBLORECFRESUB/ .RAD50 /PROUNP/;MASPAT:: .WORD 0,0,0,0 ;ROOM FOR 4 ADDED MASSAGE FUNCTIONSE.PAGE.SBTTL IMPURE CODE0VSDBLK: .BLKW 13 ;BUFFER FOR SEND/REQ TO MCRERR ;READ C PROMPT AND TIME-OUT <QIN: QIOW$ IO.RPR!TF.TMO,1,1,,RSTAT,,:QOUT: QIOW$ IO.WLB,1,1,,,, ;ERROR REPORT QIORECDPB: .WORD -1$SPWDPB: SPWN$ ...MCR,,,,,,,,READIN,,0TERFLA: .WORD 0 ;STORAGE FOR TERMINAL FLAGS WORD%DPBPTR: .WORD 0 ;POINTER TO SPAWN DPBSRSTAT: .BLKW 2KLSTAT: .BLKW 2P@ACTCNT: .WORD 0 ;COUNT OF TASKS ACTIVE HERE FOR HOSTILE TERMINALREADIN: .BLKW 66.G .END START.PAGE.SBTTL IMPURE CODE0VSDBLK: .BLKW 13 ;BUFFER FOR SEND/REQ TO MCRERR ;READ C PROMPT AND TIME-OUT <QIN:*sLLh8@ @* %@ @8@`@>4Hq@:s@*:@T;@ZxZ@eXM@f @*g#@4{W@+}h~@ ~@{h@*|L@@p@%@@8@*s@9 %s*z T~   "*`w U(7 &3 * נ@E @ נ0נ9* Wp(`~I Q"" M$*CR -- NO NODES CURRENT USER PRIVILEGES8 DO NOT ALLOW THAT FUNCTIONT'T2mQDR{Q_M|| Q MCR>$ZxZ>4Hq+}h~ ` {hx*x4{q!'[qvfZgzoKqU( zf *  Pp p&:s ~   p:&p&$ |Q      U(7 &3 * נ@|Q`!!UQ DRTISYSYSYTICL00z./0OxssPPPP```?9TISYSYSYTICL,7 <U`Aw p, 5@*Ew-4  1,1, wf * wL* fh4w.w*f7 J r  #׭B&f*  4 * ww4 \mʥ ʕ ҥ D   W([W)]Wa 4׭ 2| <5n -7 d]̥@-u̥;r̥!oT CT Cw:.  p3wP?׭0`%d$ PDwP7>9 %\T~N   `w U(7 & 3 נ@E @ נ0נ9 Wp(`~I Q"" MCR -- NO NODES CURRENT USER PRIVILEGES DO NOT ALLOW THAT FUNCTION2mQDR{Q_M|| Q MCR>4{q!'[qvfZgzoKqU( zf R\P $ |Q\ r $ <         @@ ?t | ` vw) o UYea&(*6izZ[5&&b'x'')*m+'U(W(d48y:::EXJbK{LYM NVNkQSQRDRKSSSETcTTE`R`/d4Hq@:s@:@T;@*ZxZ@eXM@+}h~@ ~@{h@*|L@%@@8@9x@s@*X:(Zg@( Zg@$A w  1,1,( * X:` X:@X:\X:_ X:>*\az   5ZX:\"9x&|L(X:Z*%2D̥@| %_M\̥;YeXM*̥!V.DRDT CwD|B.X:D X:D&X:B .`V\C%B(X:`X:V X:\sX:B&J\88.:%$Q(X:\ X:8X::s lDw7` (X: sX:X:`X:*`%fT~|&X:` X:f X: X:$*, ^w _:7 <* X:,X:^X:_$X::(X:<*,3I Q"" MCR -- X:, X:* NOT ENOUGH NODES TO SERVICE REQUEST $ MCR>4{q!'[qv(ZxZ>4Hq+}h~ ` {hX:& ^fP( &:s ~  ^f Zg@(:*8( ;}Df Zg@( fX:*`%fT~|&X:` X:f X: X:$*, ^w _:7 <* X:,X:^X:_$X::(X:<*,3I Q"" MCR -- X:, X:* NOT ENOUGH NODES TO SERVICE REQUEST $ MCR>4{q!'[qv(ZxZ>4Hq+}h~ ` {hX:& ^fP( 00 !szQ""OD\}HTbdHawHb4[qHbz&:YH`,:.H5c: (Hpc:\HHXd:fHd:u~H3d:HcK'HdaRHlb3XH,bZTyHvdZ:dHcZHaZ4HqH&:YH,:.H:(H:XHH :fH:h~H:H:2HK HRpH3XH bZ@yH!Z(dHZHZ4[qHbz&:YH`,:.H5c: (Hpc:\HHXd:fHd:u~H3d:HcK'HdaRHlb3XH,bZTyHvdZ:dHcZHaZ4HqH&:YH,:.H:(H:XHH :fH:h~H:H:2HK HRpH3XH bZ@yH!Z(d; +; [ 1 1 , 1 3 ] M C R E R R T K B . C M D *; COMMAND FILE FOR BUILDING MCRERR FOR IAS;[?[11,1]MCRERR/PR/MU/-CP/-FP,[111,13]MCRERR/-SP/CR,[11,13]MCRERR=M'[11,13]LIB13/LB:MCRERR,[1,1]EXEC.STB/SS/RPAR=GENRSTACK=32 UIC=[1,1]:PRI=75POOL=20A TASK=MCRERRE/NDED TO INCREASE THE AMOUNT OF C; SPACE AVAILABLE TO HOLD LINES AWAITING MATCHING. THE SAME EFFECT:A; CAN BE ACHIEVED BY USING THE '/INCREASE' SWITCH AT INSTALL TIMEE;R EXTTSK =10000S/:RO STACK=128HASG=TI:2/ION DETERMINES ;?;COMMAND FILE TO PATCH MCR SO HE CALLS ...MAS IF REQUESTED TASK;IS NOT INSTALLED;(MAC MCRPAT.POB,MCRPAT.LST/-SP=MCRPAT.PAT'PAT MCR=MCR/CS:57050,MCRPAT.POB/CS:7657;I$; [ 1 1 , 1 3 ] M C R T K B . C M D '; COMMAND FILE FOR BUILDING MCR FOR IAS1;]P[11,1]MCR/PR/MU/-CP/-FP,[111,13]MCR/-SP/CR=[11,13]LIB13/LB:MCR,[1,1]EXEC.STB/SS,[11,13]MCRERR.STB/SS/PAR=GENSTACK=32 UIC=[1,1]PRI=230POOL=200ASG=TI:1 TASK=...MCRM/I; COMMAND FILE TO BUILD ...MEM;I?[11,1]MEM/PR/-FP,[111,13]MEM/-SP/CR=[11,13]MEM,[1,1]EXEC.STB/SSC/I TASK=...MEMOPRI=221D UIC=[2,2]RSTACK=64ASG=TI:2/OWEVER, IT SHOULD BE SET TO THE SAME VALUE AS "WPRI"O1; (SEE ABOVE) IF;$; [ 1 1 , 1 3 ] M C R T K B . C M D '; COMMAND FILE FOR BUILDING MCR FOR IAS=; THIS COMMAND FILE BUILDS A TEST VERSION, (MCX) TO MAKE SURE; THE REESE PATCH TO MCR WORKS;G[11,1]MCX/PR/MU/-CP/-FP,[111,13]MCX/-SP/CR=[11,13]MCR,[1,1]EXEC.STB/SS,[11,13]MCRERR.STB/SS/PAR=GENSTACK=32 UIC=[1,1]PRI=230POOL=200ASG=TI:1 TASK=...MCX/;I%; [ 1 1 , 1 3 ] M E M T K B . C M D ; COMMAND FILE TO BUILD ...MEM;OH[11,1]MEM/PR/-FP,[111,13]MEM/-SP/CR=[11,13]LIB13/LB:MEM,[1,1]EXEC.STB/SS/B TASK=...MEMCPRI=221 UIC=[2,2]ISTACK=64ASG=TI:2/APRI=220/T;E%; [ 1 1 , 1 3 ] M E M T K B . C M D I; COMMAND FILE TO BUILD ...MEM;I?[11,1]MEM/PR/-FP,[111,13]MEM/-SP/CR=[11,13]MEM,[1,1]EXEC.STB/SSC/I TASK=...MEMOPRI=221D UIC=[2,2]RSTACK=64ASG=TI:2/OWEVER, IT SHOULD BE SET TO THE SAME VALUE AS "WPRI"O1; (SEE ABOVE) IF .TITLE MULTI-FUNCTION TASK .IDENT /V01/M .NLIST TTM ;**-1 .LIST MEB;;;;;;J; COPYRIGHT 1975, DIGITAL EQUIPMENT CORP., MAYNARD, MASSACHUSETTS 01754.;;J; THE MATERIAL INCLUDED IN THIS FUNCTIONAL SPECIFICATION, INCLUDING BUTJ; NOT LIMITED TO, INSTRUCTION TIMES AND OPERATING SPEEDS IS FORJ; INFORMATION PURPOSES ONLY. ALL SUCH MATERIAL IS SUBJECT TO CHANGEJ; WITHOUT NOTICE. CONSEQUENTLY DEC 00!xȄ*MAKES NO CLAIM AND SHALL NOT BE LIABLE; FOR ITS ACCURACY. ; J; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS SOFTWARE,; ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.; ;IJ; UNLESS SPECIFIED OTHERWISE, THE TERMS "RSX" AND "RSX-11" IMPLY ; "RSX-11D".;N; ;C;C; VERSION: V01;B; AUTHOR HERB NICHOLS 4/15/75R;I; MODIFIED BY:; HERB NICHOLS 9/9/75 ;+001 ; HERB NICHOLS 9/29/75 ;+0029; F. BORGER 5/78;TRY TO FIX BUG CRASHING SYSTEM ON ...ABOE;C;E;+<;MCR FUNCTION -- MULTI-FUNCTION TASK FOR ABO,ALT,CAN,DIS,ENA; ,FIX,LOA,RES,UNF; !;NOTE -- MFT IS A PRIVILEGED TASKL;I;Y; 4;TASK NAME "...MFT" TO PERFORM ANY OF NINE FUNCTIONS;.0;THE FIRST LINE OF THE COMMAND INPUT FOR ANY MCR5;FUNCTION IS READ BY THE RESIDENT MCR TASK ("...MCR") @;FOR THE "MFT" FUNCTION, THERE IS ONLY ONE LINE OF COMMAND INPUT;O+;MFT CAN ONLY BE REQUESTED BY THE MCR TASK.E<;IF THIS TASK IS REQUESTED BY ANOTHER TASK IT WILL EXIT WHEN*;IT ATTEMPTS TO READ THE MCR COMMAND LINE.;O;-;L;-;T; ;K;R1 .MCALL CALL,RETURN,DIR$,QIOW$,EXIT$S,VSDR$,GMCR$T;-; LOCAL SYMBOLSG;TCR=15 ;CAR RTNTLF=12 ;LINE FEEDPAM=33 ;ALTMDOEFSPA=40 ;SPACE CA.COL=72 )TILUN=5 ;LUN FOR TELETYPE ERROR OUTPUT ,PSEXP=177776 ;DEFINE PROCESSOR STATUS WORD .PAGE,; THE FOLLOWING SYMBOLS SERVE A DUAL PURPOSE;D<;FIRST, THEY ARE USED TO INDICATE THOSE ATTRIBUTES WHICH ARE3;LEGAL FOR EACH OF THE FUNCTIONS.(SEE LEGTAB BELOW)H;G;SECOND, THEY ARE SET IN THE FLAGS WORD "ATTRBM" WHEN THE CORRESPONDINGR0;SWITCH HAS BEEN ENCOUNTER IN THE ACTUAL REQUEST;; IT.NP=000001 IT.TI=000002 IT.PRI=000004F IT.PAR=000010E IT.UIC=000020L .PSECT PURE,RO ;A;LEGTAB: * .WORD IT.NP!IT.TI ;LEGAL ABORT ATTRIBUTES+ .WORD IT.TI!IT.PRI ;LEGAL ALTER ATTRIBUTESD+ .WORD IT.NP!IT.TI ;LEGAL CANCEL ATTRIBUTESL# .WORD 0 ;LEGAL DISABLE ATTRIBUTESO" .WORD 0 ;LEGAL ENABLE ATTRIBUTES# .WORD IT.TI ;LEGAL FIX ATTRIBUTESE2 .WORD IT.PAR!IT.UIC!IT.PRI ;LEGAL LOAD ATTRIBUTES+ .WORD IT.NP!IT.TI ;LEGAL RESUME ATTRIBUTESS% .WORD IT.TI ;LEGAL UNFIX ATTRIBUTESRCOMFN:ABO: .RAD50 /ABO/1ALT: .RAD50 /ALT/P .RAD50 /CAN/P .RAD50 /DIS/U .RAD50 /ENA/S .RAD50 /FIX/ALOA: .RAD50 /LOA/O .RAD50 /RES/; .RAD50 /UNF/RFNNR=.-COMFN/2 .PAGE .EVEN;A)DIRTAB: .WORD 3.*400+83. ;ABORT DIRECTIVE * .WORD 4.*400+9. ;ALTER PRIORITY DIRECTIVE# .WORD 3.*400+25. ;CANCEL DIRECTIVE $ .WORD 3.*400+91. ;DISABLE DIRECTIVE# .WORD 3.*400+93. ;ENABLE DIRECTIVER .WORD 3.*400+85. ;FIX DIRECTIVE3 .WORD 7.*400+11. ;LOA DIRECTIVE (ACTUALLY,EXECUTE)L# .WORD 3.*400+47. ;RESUME DIRECTIVE." .WORD 3.*400+87. ;UNFIX DIRECTIVE;5KWTABL:PRI: .WORD CKPRI .RAD50 /PRI/.PAR: .WORD CKPAR .RAD50 /PAR/UIC: .WORD CKUIC .RAD50 /UIC/NTI: .WORD CKTI .RAD50 /TI/ .WORD 0 .PAGE0MSGADR: .WORD ABOMSG,ALTMSG,CANMSG,DISMSG,ENAMSG .WORD FIXMSG,LOAMSG,RESMSGD .WORD UNFMSGNABOMSG:T .BYTE NTINS,-20 .BYTE NTACT,-7R .BYTE LDGXT,-8. .BYTE CNABR,-10.E .BYTE UNKDI,0ALTMSG:  .BYTE NTINS,-2. .BYTE NTACT,-7L .BYTE LDGXT,-8. .BYTE NPTSP,-96. ;+002* .BYTE UNKDI,0CANMSG:. .BYTE NTINS,-27 .BYTE UNKDI,0DISMSG:W .BYTE NTINS,-2D .BYTE NTNAB,-8. .BYTE CNDSB,-10.P .BYTE UNKDI,0ENAMSG:. .BYTE NTINS,-25 .BYTE NDSAB,-8. .BYTE UNKDI,0FIXMSG:O .BYTE FXNUN,-1A .BYTE NTINS,-2A .BYTE MEMUN,-3S .BYTE HNNRE,-6F .BYTE TACTI,-7S .BYTE DSABL,-8. .BYTE FIXE,-9.E .BYTE CNFI,-10. .BYTE CKPTB,-11.L .BYTE UNKDI,0LOAMSG: .BYTE INSFP,-1 .BYTE NTINS,-2. .BYTE PAR2S,-3. .BYTE HNNRE,-6. .BYTE TACTI,-7. .BYTE DSABL,-8. .BYTE INVUI,-91.0 .BYTE INVTI,-93.N .BYTE NSUPA,-94.K .BYTE INVPR,-95.Y .BYTE UNKDI,0RESMSG:B .BYTE NTINS,-2B .BYTE NTACT,-7K .BYTE NTSPN,-8. .BYTE UNKDI,0UNFMSG:S .BYTE NTINS,-2K .BYTE NTFIX,-9. .BYTE UNKDI,0 .PAGE/TTYOUT: QIOW$ IO.WVB,TILUN,1,,,,Y#SDRQDD: VSDR$ MCRERR,,,,,DIRERR,41.E .PAGE .PSECT IMPURE,RW.; TEMPORARY STORAGEEXITFL: .BYTE 0O .EVEN0TTYBUF: .ASCII <15><12>/XYZ -- ERR 00! !s /<15><12> .EVEN*KEYWRD: .WORD 0 ;CONTAINS THE SWITCH NAME1DEVNAM: .WORD 0 ;CONTAINS DEVICE NAME IN SWITCHUUNITA: .WORD 00DIRERR: .BLKW 1 ;MUST BE ADJACENT TO MCR BUFFERDDDDOT=. .RAD50 /...MCR/ GMCR: GMCR$ 4ATTRBM: .WORD 0 ;HOLDS ACTUAL ATTRIBUTES OF COMMANDDFLTTI: .WORD 0U)TBLOFS: .WORD 0 ;HOLDS OFFSET TO TABLES.10FNCTON: .WORD 0 ;WILL HOLD RAD50 FUNCTION NAME.3; THE NEXT SEVEN WORDS WILL CONTAIN THE DPB FOR THER%; ULTIMATE DIRECTIVE WHICH IS ISSUED. DRCTIV: .WORD 0YTSKNAM:  .BLKW 2PARNAM: .BLKW 2D ALTPRI=PARNAMTRQTPRI: .WORD 0ARQTUIC: .WORD 0 TSKFLA: .WORD 0I;N .PAGE .PSECT PURE,ROOMFT: DIR$ #GMCR 4 BCC 10$ ;ERROR WHILE READING THE MCR COMMAND LINE. MOV #CNRMC,R4 JMP COMERAM10$: CLRB EXITFL0 MOV #3,R1 ;CONVERT SPECIFIED FUNCTION TO RAD50 MOV #GMCR+G.MCRB,R2 MOV #FNCTON,R3 CALL ..ATRDSCNSPA:H" MOVB (R2)+,R5 ;SEARCH FOR A SPACE CMPB #SPA,R5L4 BEQ NXRQST ;FOUND SPACE SO START DECODING THE LINE, CALL CKAMCR ;IS CHARACTER AN A.M. OR C.R.?" BCS SCNSPA ;IF NOT CONTINUE SCAN JMP SYNTAX ;ELSE, SYNTAX ERROR; NDRQST: JMP MFTCOM;NXRQST:.* CLR ATTRBM ;CLEAR THE COMMAND ATTRIBUTES CLR TSKNAM+2R CALL CHKPRV BCC 5$L3 BIS #IT.NP,ATTRBM ;AT BEST ONLY A SUBSET AVAILABLEL5$:V MOV R5,DFLTTI* MOV #TSKNAM,R3 ;SET UP THE POINTER TO THE% ;RADIX50 BUFFER FOR THE TASK NAME$ MOV #6,R1 ;MOVE UP TO 6 CHARACTERS CALL ..ATRD CMP FNCTON,LOAR BNE 7$N0 CMP R1,#4 ;IS TASK NAME EXACTLY TWO CHARACTERS BNE 7$C( ADD #34,TSKNAM ;PUT A "." IN TASK NAME3 MOV DDDDOT,TSKNAM+2 ;PUT 3 MORE ... INTO TASK NAME7$: MOV #COMFN,R3 MOV #FNNR,R4C MOV R4,R5>10$: CMP (R3)+,FNCTON ;DETERMINE OFFSET FOR SPECIFIED FUNCTION BEQ 20$ SOB R4,10$M+ MOV #NTINS,R4 ;+++001 NO SUCH MFT FUNCTIONV* JMP COMERA ;+++001 NOT UNDERSTOOD BY MFT20$: SUB R4,R5 ASL R5F1 MOV R5,TBLOFS ;SAVE TO INDEX INTO VARIOUS TABLESH. CALL CKCHAR ;CHECK FOR TERMINATOR(CR. OR AM)+ BVS NDRQST ;FOUND DON'T CHECK FOR OPTIONSR BCC CKOPT CMP FNCTON,LOAK BNE SYNTAX.7 CMP #4,R1 ;HAVE EXACTLY TWO CHARACTERS BEEN CONVERTED BNE SYNTAX$* CMPB #':,R5 ;DID CKCHAR ENCOUNTER A ":"? BNE CKOPTCKR2:C MOVB (R2)+,R5CKR5:O CALL CKTAAUBCSCK: BCS SYNTAXB BVS NDRQSTVCKOPT:6 BIT #IT.NP,ATTRBM ;SWITCHES ILLEGAL IF NON-PRIVILEGED BNE ILLOP1 MOV #3,R1 MOV #KEYWRD,R3L CALL ..ATRD CMP #3,R1 BEQ SYNTAXO ADD #3,R2 SUB R1,R2 CMPB #'=,(R2)+R BNE SYNTAXR= MOV #KWTABL,R4 ;DETERMINE WHICH SYNTACTIC ANALYZER TO INVOKEO10$: MOV (R4)+,R5 BEQ BADKWD CMP (R4)+,KEYWRDX BNE 10$ JMP (R5) ;GO DO THE ANALYSISCKPRI: BIS #IT.PRI,ATTRBMC2 MOV #10.,R3 ;PRIME GETNUM FOR DECIMAL CONVERSION CALL GETNUM5 MOV R1,RQTPRI ;ASSUME PRIORITY IS FOR LOAD,REQUEST ,P) ;EXECUTE,RUN,SCHEDULE,OR SYNCHRONIZE.  BR CKR5CKTI:B BIS #IT.TI,ATTRBM MOVB (R2)+,DEVNAM MOVB (R2)+,DEVNAM+1/ MOV #8.,R3 ;PRIME GETNUM FOR OCTAL CONVERSION CALL GETNUM MOV R1,UNITAV CALL FYNPUD BCS NOPUD MOV R0,DFLTTI BR CKR5SYNTAX: JMP SYNTASBADPRI: MOV #INVPR,R4 BR ERREX1ILLOP1: JMP ILLOPTNOPUD: MOV #DEVNI,R4 BR ERREX1BADUIC:P MOV #INVUI,R4 BR ERREX1BADKWD:U MOV #INVKW,R4ERREX1: JMP ERREXCKPAR: BIS #IT.PAR,ATTRBMR MOV #PARNAM,R3E MOV #6,R1 CALL ..ATRD CALL CKCHAR BR BCSCK CKUIC: BIS #IT.UIC,ATTRBMT' CMPB #'[,(R2)+ ;MUST BE A LEFT BRACKET, BNE BADUICV/ MOV #8.,R3 ;PRIME GETNUM FOR OCTAL CONVERSIONL CALL GETNUM$ BIT #177400,R1 ;IS GROUP NR. LEGAL? BNE BADUICI MOVB R1,RQTUIC+1 CMPB #',,R5 BNE BADUIC# CALL GETNUM BIT #177400,R1M BNE BADUICU MOVB R1,RQTUIC4 CMPB #'],R5 BNE BADUICV JMP CKR2 .PAGEILLOPT:D MOV #ILFNN,R4 BIT #IT.NP,ATTRBM BNE ERREX MOV #ILLGS,R4 BR ERREXV;A;MSYNTAS:V MOV #SYNER,R4ERREX: JMP COMERAB .PAGE;K ; MFT A TASK;CMFTCOM: MOV R2,-(SP) ;SAVE LINE POINTER3 BIT #IT.NP,ATTRBM ;IF PRIVILEGED TI NEED NOT MATCHO BEQ 30$ MOV #TSKNAM,R1N& CALL ..FSTD ;HAS TASK BEEN INSTALLED% TST R2 ;IF ZERO, TASK NOT INSTALLEDP2 BEQ 30$00!xȄ* ;DIRECTIVE FAILURE WILL INDICATE NO TASK) BIT #SF.MU,S.FW(R2) ;IS TASK MULTI-USER?'% BNE 30$ ;IF SET, DON'T CHECK FOR TIC; MUST ENSURE THAT THE TI OF THE RUNNING TASK IS THE SAME AS THE TI,; OF THE INVOKING TERMINAL.S; LOOK FOR TASK IN THE ATL MOV .ATLLH,R310$: MOV @R3,R3  CMP A.TD(R3),R2 BEQ 20$ CMP .ATLLH+2,R3 BNE 10$/; TASK NOT IN THE ATL SO LOOK FOR IT IN THE MRLO CALL FTPD2 BCS 30$ ;DIRECTIVE FAILURE WILL INDICATE NO TASK20$: MOV (SP)+,R2R& MOV #NTACT,R4 ;ASSUME TASK NOT ACTIVE E$ CMP DFLTTI,A.TI(R3) ;DOES TI MATCH? BNE COMERA) BR 35$ ;STACK ALREADY POPPED! 30$:' MOV (SP)+,R2 ;RESTORE THE LINE POINTERT35$:% MOV TBLOFS,R5 ;RETRIEVE TABLE OFFSETE@ MOV LEGTAB(R5),R5 ;AND FETCH LEGAL ATTRIBUTES FOR THIS FUNCTION9 MOV ATTRBM,R4 ;FETCH ACTUAL ATTRIBUTES FOR THIS FUNCTION BIS R5,R48 XOR R5,R4 ;ANY DISCREPANCIES BETWEEN LEGAL AND ACTUAL?, BNE ILLOPT ;IF YES, THEN ILLEGAL ATTRIBUTE= CMP FNCTON,ALT ;IF FUNCTION IS "ALT",PRIORITY IN WRONG PLACE; BNE 40$. MOV RQTPRI,ALTPRI ;SO PUT IT WHERE IT BELONGS40$:' CMP FNCTON,ABO ;IS FUNCTION AN "ABO" ?O BNE 41$* MOV @#PSEXP,-(SP) ;SAVE ORIGINAL PRIORITY) BIS #140,@#PSEXP ;INHIBIT TASK SWITCHINGE) INC TSKFLA ;SHOW WE INHIBITED SWITCHINGR41$: MOV .CRTSK,R3 MOV A.TI(R3),-(SP)E MOV DFLTTI,A.TI(R3) MOV TBLOFS,R5 MOV DIRTAB(R5),DRCTIV DIR$ #DRCTIVP MOV (SP)+,A.TI(R3)A BCS 60$( TST TSKFLA ;DID WE INHIBIT SWITCHING ? BNE 45$( JSR PC,..ENB0 ;RE-ENABLE TASK SWITCHING CLR TSKFLA ;AND CLEAR FLAG45$: TST EXITFLO BNE EXITR JMP NXRQST60$:( TST TSKFLA ;DID WE INHIBIT SWITCHING ? BNE 61$ JSR PC,..ENB0 CLR TSKFLA ;CLEAR FLAG61$: MOV MSGADR(R5),R570$: MOVB (R5)+,R4 BEQ COMERAH CMPB (R5)+,$DSW BNE 70$COMERA:V3 MOV .CRTSK,R3 ;+++001 DETERMINE MCRERR'S SUCCESSOR) MOV A.RQ(R3),R3 MOV (R3),DIRERR+2: MOV 2(R3),DIRERR+4 ;+++001 CALLED AFTER MCRERR PRINTS MSG MOV R4,R5 MOVB R4,DIRERRG SUB #GMCR+G.MCRB,R25 MOVB R2,DIRERR+1 ;LENGTH OF COMMAND LINE UP TO ERRORA DIR$ #SDRQDDT BCS SRFAILB! ;CANCEL THE REQUEST-UPON-EXITT ;REQUEST FOR MCR. THE ERROR! ;MESSAGE HANDLER WILL REQUESTK ;MCR INSTEAD MOV .CRTSK,R0 MOV #77406,-(SP)V MOV A.HA(R0),-(SP)R CALL ..SPD3 BIC #HF.RMC,60000+H.EAF% CALL ..SPD3 ;MAP BACK INTO MY SPACER! CMP (SP)+,(SP)+ ;CLEAN THE STACKM BR EXIT;R;;VSRFAIL:R MOV #3,R1 MOV #FNCTON,R2R MOV #TTYBUF+2,R3V- CALL ..RDTA ;CONVERT FUNCTION NAME TO ASCII MOV #TTYBUF+16.,R3N10$: ASHC #-16.,R4 DIV #10.,R4 ADD #60,R5 MOVB R5,-(R3) TST R4  BNE 10$ DIR$ #TTYOUT ;R EXIT: EXIT$S .PAGE;R;+ ; G E T N U ML;W; ; ROUTINE TO DECODE A NUMBER;.,; 'GETNUM' IS A PRIVATE SUBROUTINE OF 'MFT'.0; ITS FUNCTION IS TO ASSEMBLE A DECIMAL OR OCTAL5; NUMBER FROM CHARACTERS IN THE MCR LINE BUFFER. THEL3; RADIX IS SPECIFIED BY SETTING R3 PRIOR TO CALLING#?; 'GETNUM'. NOTE THAT ON RETURN, R2 -- THE MCR LINE POINTER --T<; IS POINTING TO THE CHARACTER FOLLOWING THE TERMINATOR, AND0; NOT TO THE TERMINATOR ITSELF (WHICH IS IN R5).;T; CALLING SEQUENCE:R); R3 -- 8. (IF OCTAL) OR 10. (IF DECIMAL)+; R2 -- BUFFER POINTER ; CALL GETNUMD;D ; OUTPUT:; R1 -- RETURNED VALUE; R5 -- TERMINATOR%; NOTE THAT THERE IS NO ERROR RETURN.E;A!; REGISTERS ALTERED: R1,R2,R4,R5S; ;-; 2GETNUM:: MOV #4,R4 ;CONVERT A MAXIMUM OF 3 DIGITS CLR R1 ;CLEAR THE FOUND VALUE 10$:# MOVB (R2)+,R5 ;PICK UP A CHARACTERI CMP #57,R5 ;CHECK LOWER LIMITA BPL 40$ ;CHECK FOR TERMINATORA CMP #67,R5 ;CHECK OCTAL LIMITS" BMI 30$ ;NOT WITHIN OCTAL LIMITS20$: MUL R3,R1 ;COMPUTE NEW NUMBER(- BIC #177760,R5 ;MAKE OCTAL OR DECIMAL NUMBERT! ADD R5,R1 ;AND ADD IN NEW DIGITN SOB R4,10$ ;FINISHED?T BR 40$ ;YES -- EXITS,30$: CMP #10.,R3 ;IS THIS A DECIMAL NUMBER? BNE 40$ ;NO -- EXIT $ CMP #71,R5 ;YES -- IS IT A 8 OR 9? BPL 20$ ;YES -- GO MULTIPLY 40$:50$: RETURN ;RETURN TO CALLERI;U;  .PAGE;+ ; G E T U N TH0; ROUTINE TO CONVERT INTERVAL UNIT TO CODE VALUE;C1; 'GETUNT' -- A PR00!" !sIVATE SUBROUTINE OF '.RNPRS' --I5; CONVERTS AN INTERVAL UNIT (H,M,S,T) TO A CODE VALUE/; (4,3,2,1, RESPECTIVELY) EXPECTED BY THE EXEC.A;R;1; CALLING SEQUENCE:I; R1 -- INTERVAL UNITH ; CALL GETUNT;; ; NO ERROR CHECKING IS DONE.;H ; OUTPUT:L; R5 -- RETURNED VALUE;E; REGISTERS ALTERED: R5;-1GETUNT: MOV #1,R5 ;INITIALIZE INTERVAL CODE TO 1# CMP #'T,R1 ;IS INTERVAL IN TICKS?U BEQ 10$ ;YES INC R5 ;NO -- SET CODE TO 2C% CMP #'S,R1 ;IS INTERVAL IN SECONDS? BEQ 10$ ;YES INC R5 ;NO -- SET CODE TO 3-% CMP #'M,R1 ;IS INTERVAL IN MINUTES?T BEQ 10$ ;YES) INC R5 ;NO -- MUST BE HOURS -- SET TO 4H CMP #'H,R1 BEQ 10$ SEC BR 20$10$: CLC20$: RETURNAFYNPUD:; MOV .PUDBA,R0COTSCN: CMP U.DN(R0),DEVNAMP BEQ 20$10$: ADD #U.SZ,R0 CMP R0,.PUDEA BEQ 30$ BR COTSCN*20$: CMPB U.UN(R0),UNITA ;IS UNIT CORRECT BNE 10$ CLC BR 40$R30$: SEC40$: RETURNY .PAGE; ;O; ; 7; CKCHAR -- ROUTINE TO CHECK FOR TERMINATORS OR OPTIONS1; CALLING SEQUENCE:;; R1 -- NUMBER OF CHARACTERS NOT TRANSFERRED (FROM ..ATRD)B#; R2 -- BUFFER POINTER FROM ..ATRD ; CALL CKCHAR;; EXIT CONDITIONS:$;S.; IF TERMINATOR FOUND SET EXIT FLAG AND V BIT*; IF COMMA FOUND (,) SET V BIT AND RETURN#; OTHERWISE EXIT WITH SYNTAX ERRORC;R;PCKCHAR:Q CMP #6,R1# BEQ SYN ;NO -- CHECK FOR CR OR AMN" ADD #6,R2 ;UPDATE BUFFER POINTER' SUB R1,R2 ;SUBTRACT CHAR'S NOT XFERED)CKTAK: MOVB (R2)+,R5 ;PICK UP A CHARACTERRCKTAA: CMPB R5,#'/6 BEQ RTCKT ;CHECK FOR OPTION --YES --- PROCESS OPTION! CMPB R5,#', ;IS IT A SEPARATOR? ! BEQ RTSEV ;YES -- MFT THIS TASK/CKAMCR: CMPB R5,#AM ;NO -- IS IT A TERMINATOR?I# BEQ SETLT ;YES -- SET END OF LINEV CMPB R5,#CR ;NO -- TRY CAR RTN BNE SYN1SETLT: INC EXITFL ;INDICATES END OF COMMAND LINE<RTSEV: SEV ;SET V BIT TO INDICATE END OF THIS COMMAND LINE BR RTCKTUSYN: SEC BR RETRTCKT: CLC RET: RETURNS .PAGE;;K$; C H K P R V S U B R O U T I N E ;<; THIS SUBROUTINE DETERMINES WHETHER THE TI UNDER WHICH THIS?; TASK IS RUNNING IS PRIVILEGED. IF THE TERMINAL IS PRIVILEGEDSA; CHKPRV RETURNS WITH C- BIT CLEAR. IF TERMINAL IS NOT PRIVILEGEDI; THE C-BIT IS SET; INPUTS: NONEV6; OUTPUTS: R5 CONTAINS THE PUD ADDRESS OF THE TERMINAL"; WHERE THIS REQUEST ORIGINATED.,; C-BIT IS CLEAR IF TERMINAL IS PRIVILEGED.; C-BIT IS SET IF TERMINAL IS NOT PRIVILEGED CHKPRV: CLC: MOV .CRTSK,R5! MOV A.TI(R5),R5 ;PUD FOR THIS TI - BIT #UT.PR,U.TF(R5) ;IS TERMINAL PRIVILEGED?E BNE 10$ SEC 10$: RETURN 4; FTPD -- SUBROUTINE TO SEARCH FOR A TASK IN THE MRL;I; ENTRY CONDITIONS: ;P; R2 -- STD ADDRESS OF TASK; EXIT CONDITIONS:); R3 CONTAINS NODE ADDRESS OF FOUND TASKN!; C-BIT IS SET IF TASK NOT FOUNDD!; REGISTERS ALTERED ARE R1,R3,R4 ;S;Q/FTPD: MOV .TPDBA,R1 ;FIND THE BEGINNING OF TPDI70$:" MOV R1,R3 ;USE R3 TO SEARCH MCRL$ ADD #T.RF,R3 ;FIND MCRL OF THIS TPD MOV R3,R4 ;;SAVE MCR LISTHEAD "80$: MOV @R3,R3 ;LOOK AT AN ENTRY CMP R3,R4 ;LISTHEAD? BEQ 90$ ;YES, LOOK AT NEXT TPD1 CMP R2,A.TD(R3) ;NO -- IS THIS THE DESIRED TASK? BNE 80$ ;NO LOOK AT NEXT ENTRY CLC BR 100$; -90$: ADD #T.SZ,R1 ;LOOK AT THE NEXT TPD ENTRYD CMP R1,.TPDEA ;END OF TPD?T BNE 70$ ;NO LOOK AT NEXT MRL100$: SEC ;YES RETURN ERROR RETURNT .END MFTDBA,R1 ;FIND THE BEGINNING OF TPDI70$:" MOV R1,R3 ;USE R3 TO SEARCH MCRL$ ADD #T.RF,R3 ;FIND MCRL OF THIS TPD MOV R3,R4 ;;SAVE MCR LISTHEAD "80$: MOV @R3,R3 ;LOOK AT AN ENTRY CMP R3,R4 ;LISTHEAD? BEQ 90$/19$: MOV #10,R5 ;SET TO CHECK FOR 8. MFT NAMES/ MOV #MFTNAM,R4 ;SET TO START OF MFT NAME TABLE< MOV MFTRAD,SPWDPB+S.PWTN+2 ;CHANGE REQUESTED TASK TO ...MFT26$: CMP R1,(R4)+ ;COMPARE REQ'D TASK WITH MFT TASK BEQ 7$ ;BR IF WE MATCH' SOB R5,6$ ;LOOP TILL 8. NAMES CHECKED/ MOV #7,R5 ;SET LOOP COUNT FOR 7 MASSAGE NAMES3 MOV #MASNAM,R4 ;SET TO START OF MASSAGE NAME TABLE< MOV MASRAD,SPWDPB+S.PWTN+2 ;CHANGE REQUESTED TASK TO ...MAS=666$: CMP R1,(R4)+ ;COMPARE REQ'D TASK NAME WITH MASSAGE NAME00"#$%Ȅ* BEQ 7$ ;BR IF WE MATCH' SOB R5,666$ ;ELSE TRY 7 MASSAGE NAMES 466$: MOV R1,SPWDPB+S.PWTN+2 ;PUT IN ACTUAL TASK NAME7$:+;C;G;E;SMFTRAD: .RAD50 /MFT/MASRAD: .RAD50 /MAS/)MFTNAM: ;TABLE OF POSSIBLE MFT TASK NAMES " .RAD50 /ABOALTCANDISENAFIXRESUNF/-MASNAM: ;TABLE OF POSSIBLE MASSAGE TASK NAMES  .RAD50 /PRITYPPURDIRBLORECFRE/ ;SET TO START OF MASSAGE NAME TABLE< MOV MASRAD,SPWDPB+S.PWTN+2 ;CHANGE REQUESTED TASK TO ...MAS=666$: CMP R1,(R4)+ ;COMPARE REQ'D TASK NAME WITH MASSAGE NAME; #; [ 1 1 , 1 3 ] M F T T K B . C M DD;; BUILD MFT FOR IASL;.?[11,1]MFT/PR/MU/-CP/-FP,[111,13]MFT/-SP/CR=[11,13]LIB13/LB:MFT,/$[1,1]SYSLIB/LB:RDTA,[1,1]EXEC.STB/SS/TPAR=GENILIBR=SYSRES:ROSTACK=32 UIC=[2,2]KPRI=221 TASK=...MFT:/;S2; PRIORITY SHOULD BE HIGH FOR GOOD RESPONSE OR LOW7; FOR SMALLER SYSTEM LOAD. CHOICE IS LEFT TO THE USER.X;SPRI=246I;A9; THE TASK IS AN MCR TYPE TASK SO DEFINE ITS TASK NAME ASE; SUCH.U;B TASK=...DEMS; A; THE TASK EXTENSION DETERMINES z[R S6VLe"@<&Kq@<&9@' q@)P@)Ty@)Ps@)@)W@)p@)@)p@z,'H@,9H,tH #0Hj20Hn$9!@t:h~@:t @:@:2@Jw@@8@K8@s@ϫ*}@z`@=@@=@'@}@g'@ 8r@hp!@:@; @o@2&@Ѳ:@(Ϫh2ϪhϪhϪhϪh (& *w aj  Y@ o"' q$)(hp!*&wPaw0  !)P"<&9$)*L_ AdBbAep s:t Ѳ:*rCnS ( @pnp:2Ѳ:$)p   C  &)p})Ps<&9):* aD "ABuhf=Ѳ:)p)p*a `WaWz ɥ;)*a$å7@j*a a @$9!*&  ! a <&Kq):*Lw& a d`V @ ŀa*r jw (o*jj lj w ɥ&o*@aujk : fԇ * @awB \w   o*  p 5f K8=*0ȕ ϫ*}@=*V Dl lja Ce &)W*|# # @ ' q )$hp!*  ww    :$9!)Ps o&)P*jDl@ Te  8r)W*e 5l@ eSY@`K8  @5w&)Ty ' q )hp!e"g'*0wAn5j)f  4'` s*V  @     R|Հa@ w  $  &t:h~ @8Jw; Jw 2&  wK8 :$9!)Ps o&)P*jDl@ Te  8r)W*e 5l@ eSY@`K8  @5w&)Ty ' q )hp!e"g'*0wAn5j)f  4'` s*V  @     R|Հa@ w  $  &t:h~ @8Jw; Jw 2&  wzETOZD$RrHUFHs@TT NHU^HTTh~H$RH@ @8@@@sd@z$9΅bpe$ #  ED BT w  lTw cr *7 V4&0n:T>F\T`dtiEw57H  ie7Vl5 Z5 5Rѝ 55=C 557: ԃ{8@ (lNh  451 -l'Wtw l $~  e@wX iEw l<}p@ ԃ9[1,100]DDD:HH:MM:SS@Vbf mSD0:[1,100]PDSUPF.DATHdTISCITERMINAL Aw}R  0l:SY0: D[200,200]     κ j HP0 8* @ K|: iJ CLdCONTINUETLOGOUT W SWW||   |vw SDV 84: > m  : D t@ ".#,:&F)$R., ^4xj6v78 <?xD K`T Y]_bd00)҇Ň)ƇȄ*hij*n6oBxN|Zfrx~lXINDEXED$KEY0RELATIVE@SEQUENTIALL £] v5w\ J w6N F5  `/5U 5$r | ނ L5 d$ҕ, EtErw @84r . 5 IӪ@ h wb 45@Q5 w PIP w CNV w t/FO:SEw h/APj*m& P .w̱B4  !B! pBG Z 0*' خw   w.  ԥ  <7 rn\  Xww BOO w|BLCOFF MBTBLNBLANKLINESCHANGEBARSCOMMENTFORMFEEDS$LINES*MULTIPLEBLAN HNOOUTPUTNNUMBERSOUTPUTbSLIPERlTRAILINGBLAN *5D hp@lh w CMP5Vw ֮CL5@D N w TOx ҕ=l @ . -H ҕ,< j $ |V%Uw`B! w"wԡNw /C w /VB ҕ.30 ȥ w έ/LI ڭw /-Dɷv dw /SXFҕ/w3ҕ-RR,B11PBP2\F4P(FORDLISTNOLISTOBJECTSWITCHES wB4w $FORw,w CBLzww COR dw &7 5 P4@0, 5 "5 5w BPw BAw\@ f w t5 ҕ, 00)ڇ !s5@j b\  > B4  Zw5d 5Z  h ^ : D  5 Lҕ, > t5 w |/-Sw r,CLҕ=m6m6hW P 6  *wȰB! w" <  @X E@N   w ʬF4P ܤ Ф Ĥ ؆ 55 \3 <5P-xt 7 b&ҟ + @ 5@%v&2wp' w&>~&r 5 w" 5xlUB' ,7 r R~ERRORdSEVEREERRORdWARNINGdTHEN B?h 5R ~zv EpElê7 7  7 7 7 8 ʀ wj5!@ 5U ]x5 ]5 [2ҕ,*EE5/@|5w /-R5 U\7 `w /R5t w /D\U.&@5  B4  w w w7 EE Ӫ7 7  w"685!  R5  \5K0w PIP5 @ZUV @DU@504U0.5@&"U@ 5U5 5 5"pw /Ndw5qw FLX zLw p/R5w `/-R׷0"5 U7 w 8/RxE%0w /U7 n5w /D5|w /-R5lw /RU,7 45@+U'5@#7 U5U@w CNVZw /FO:SEJr  &Dve h*h" <ҕ= Fmm O   wB4  X B! Bw X r  5@Uw`pB H Ȃ * DC~ w x55 5v " w &/Cw:wn 4ׇw /BLw ɇw /BSw 5@Hw ƪ/Cnw /-Ci Тx5w /SXw /-SS Lw v/UF 2w \/F9 pNw B/F, VAw (/S <4w /V5<ҕ: 桂" l ҕ.B  $ B}&  w jw /F8 Pw x/F+ ߇6w ^/I r҇5w w /Rww /Rw       ,*&  ^·w 0/BSw, Bw /BSw &5vw /Sw w ԧ/DNS  ڟw /DNS l% %@wwALLOCATIONASCII `BINARY zBLOCKSIZECONCATENATE CONTIGUOUS@$CREATEDIRECT|DATEFORTRANIMAGE NOREWIND^OWNREPLACEREWINDSPANBLOCKSPUPDATE@VERIFYBLOCKSIZEDENSITYDOSlINDEXEDKEY RELATIVE@RT11lSEQUENTIALxSHAREDBLOCKSIZEDENSITYFDOSlRT1100)Ň)ƇȄ*lSEQUENTIALxERASEKEEPALLOCATION T!DIRECTORY"!DOLLARS0!NAME@:6 ʣ,5@ 5 &5wNw' t7 B4  fwwğ 5 57 Z7 TP5U@5@ $ 5| 5Dz6 " "X$0# 5Dt 5@4 w5 B x0 baF7 B `:5 w5 ^%U 5E 5: Z7ׯV$35 BB: Z2 ȥEȥe ȥOȥo ȥDȥd5D U8  ̇7  56 5@ ExaReady for inputVw FUFD j5 w 2/ALLOCH w 5@w /PRO=ҕ, ҕR ҕW ҕE ҕD~ҕ] 5L-Hr < w27 v7 7 7 7 ê zL~|  67 `7 ^Ӫ \z0  7$:&"6#5@ Tw R/PR R UwZw0Record length zero or not specifiedSTREAM - ONLY VALID WITH SEQUENTIAL FILES w \ 䜿V ؜P ̜J q D > q8 2 , & x w h \ P  U@ *Et52Uf ,{ z zZFwP8r 7\ 0 χ|55 z z   j& & & & w25T z ^z5 pIT  JE< B\  /5>*E%4: 5@>E%BB Wpe0 F7 7 y yB  6B +B9$' B#  B$7 B`$00) !s ew$'UPDATE' invalid for primary key'NOUPDATE' with 'NODUPLICATE' invalid for secondary keyInsufficient parameters to define a keyIllegal re-definition of key v d - JB$ ñINVALID KEYWORD VALUEe(BA &e(H0 A f AfAD&pD0 >(CONFIRMERRORMESSAGE@FILEIDLKEEPLLOG *NAMESWAPFILEDOS@RT11 45  R5w5w5w\ @TP  @w5$5\l r@<8 ̥%w PIP55O ʮ5w /R4R l5&)~w nFLX5 E`)52 zE5'7 `w 0/Rw (/D 5@T-,wwB8 L B 6 ֡5F5@w 5*vw /P5ҕ:  T D!55 X nw ^SWA /DE fB}& w65555w /S &5@lw /N 5 L w Ƭ/L5.D @w /DE/FI y8 551 ăҕ: y* ' 506 {Zw JPIP V "5jw B  n7 Dw BRIEFhERRORMESSAGEFILEID@FREELFULLOUTPUT"PRINT@SUMMARY WIDTHDOS@RT115$ PP@LH ܥ5B5:w5B( \7 96 }  u5rw bPIP5@ 8 b .ww B w"5V5gb5g^rnj "w PIP  5D 5<'w /F" w FLX 5 7 w /R Ew v/L 5@-zw ~w0B4  Bv  | 5   ҕ= 5tCLTO:=wʠ5X @ े5 :5}.w /Ft5&dw /BX5#5# Z T0w Z/FU fҕ.5  w 6/NM/Lɷ5w /T5 ڤ!w /LI/FI Ly b5 ҕ: 0y F ₷B  w Bj7 5Z@~ R5@t5lK5d5\C54N5F5>86 ~, .5"7 ք"\  &5@7 w pDMP5 w겇7 wBv  :w"<$# w~Tw /BA  Е: TT .T 2TT 7B vUXw5 w TO:  fҕ=54 ~ 2 D 5@-5"5@ 00)Ň)ƇȄ*w 0/HD:w $/HD/H5@w /HD: w /H w /H  w حCL:NH  w ʥvw /L5 `w /R Fw l/A8 xЇ$w J/B ^Ç w 0/D Dw /R *w /W w /H w Ȭ/Lw ڤw /RwE5 Ѓ5 ăUPw v/BL7 < yw5    y5wE5bR bҕ: |yK5L- ,~Ur Py5hd ,5Nw ʫ/BL:0 5  r tw /BL:U` w5w L>w d/M ҕ: 6 \ " w "/DENS ,% %@wLw, w /FI Dx Z5 ҕ: (x > ځww5@&" ¢7 7 ~  ASCIIBLOCKSdBYTEDECIMALDENSITYFILEID FORMAT@VHEADERHEXADECIMALLONGWORD*NUMBER OUTPUTPRINT"RADIX50RECORDpREWINDFSTART@VWORDFILES11HEADER BT@nj5J17 7 7 r^ZV A P?5HB@ 5(5435,w*wP #w EDI ¯5@w' f Bv  \w< w"<$# 4w5@"   :4 D2 PJ ԮHB Ȯ5 R-5 H5<$ pҕ, b 5 w .LSw /-Sw ,CL5w ~/Dҕ= 5w b/-B%P B! w x0 bx 5w55 vׯ0$ׯ(/ 4UF7 @// 7Bv B4  w xSLPU*wR ^d5w LKEDw BK525@  F   \@\5@ ~8 F8  }0 6ҕ=5@  5@H Tw ¬/CwH' B}& w<@ ^w rEDT5@55@   0 jҕ,   ҕ= L5w /R5@5|w /R5nw /-J5^w ܫ/-C ҕ, x wL @7 \ |  wBB4  ͱBTwR55E w5@5@5 &Ew w5 | w5`#w ڪ/C jw5@w /C5 ҕ: n .wh5Tw ~/-A]E7 7 7 5Y 4W 5nU h 45X 5|vp+5p5,$ , w /AUh ҕ:\ ҕ: Nw /T~B'   t   ^    055E Ew Exw g5@je5`_w ܨ/Iw T5DR5X:Lw /Cw lA5?5T9fw /-CwZ F.5,5L&@w j/Fw4 5 5@ 8w >/BL J00) !sҕ.wwBG j 5?|z5?|tEf w 5P5@Fw w5. wv5  EwJAUDITnBLANKBLOCKSIZE CHECKSUMCOMMANDDDOUBLEEDIT|EDTEMBEDDEDCARRXFORTRANCARRI~IMPLIEDCARRI2INSPECT@ JOURNAL`K52KEDLIST OUTPUT@READONLY&RECOVERSLIPERTRUNCATE2POSITIONxREPORTTRUNCASIZEDuplicated qualifier parameter w5`  z B Nw5^5VSw ֯/KN5Fw Ư/TASK 5(w /TIn 5 -5 w /PAR H \8 | \w LOPE X $wwwB' tч   |n 4VEHP ~* NB B  7 e0 TUF L J % zB  w>KERNELPARTITIONPHYSICALTASKTERMINAL>eO5BQ lBEB X w HLP PD5@  ҟ  B!  w8PIP FLX DMP VFY KED K52 DEF DFN CNV IFL BCK DSP RST  ~# n,%f^R"J ~B< w /Iw6("] ] r7 5f,@ ,6 6 w5^\  5w įFLXe0 ҕ:w /Z5!5ҕ:b ޮ5w ~/NUL Ʈ5wJw `/Rw 2 U (55@w~ { ~} 䯱 jww ޮINI :ʝe0F@ , 2 pw /LRU pV NYDw j/BAD=۷67 E5U B ?x B07< ,7\ &5v52 5 *ҕ,   EDҕ]65* (& G vTw zAUTϷH@w f MAη4 F)&-@w D/DENS=160- w ,/DENS=80    w /EXTb ̬ w Ȭ/FPRO= ҕR ҕW ҕE ҕDҕ,S~]^ pPw v/INF P67 ** w F/INDX5p00)Ň)ƇȄ*w y  .  p5d b& ȬLG w BE|w MIphw EN\Tw zBLK "D  N.w T/MXF . w ,/UIC5Z,7 d x' , Nw /PRO=w. ڢw /WINP B  ͱACCESSEDbBADDENSITYDOSEXTENSIONFILEPROTECTI.HEADERSINDEXMAXIMUMFILESNUMBEROWNERPROTECTIONRT11WINDOWAUTOMATICMANUALBEGINNINGHENDpMIDDLE\ACCESSCOMMONINCREASELIBRARYPARTITION POOL@TPRIORITYREGION SYSTEMTASKUICZ@|x,7 7 7 5L Px@tp 5j50\  w5@ B' ww INS Ȯ,d,\ vww55 wT55 55555j j |0 -%)w /TASK~ 5pw /L5`w /C5 Pw Э/RB  wvw /UIC5 ҄57 wF@ 5#5 5 `w >/ACC % DwXw5LwHw /PAR : ԃ 5^5ww ά/PRI  Ҭw@5&5whw /POOL | Pw55w0w ^/INC D bw5&5"  z %w /TASK=$$| 櫷w*wxw Z D$w ث/ACC= ҕR ҕW ҕE ҕDҕ,S~]hw  h 4 %AL  ѥL 7 COMPRESS<CREATE<DELETE<EXTRACT<INSERT<LIST<REPLACE <SQUEEZE<ENTRIES@EPT2FULLGLOBALSYMBOL@$MNTNMODULES$NOENTRYPOINT@0OUTPUTPRINT SELECTSIZE@SQUEEZE TYPEfMACROOBJECT d PN@JF p5 P,@($ 55 Bv  wq @ t~ w5; x Lw 5w /Rҕ=H v N5 &^ e ʕ=\ @| x5w֞ D 5@F  檷  w5Vw5@Jw ʪ/DGw /DE ~6 * 5@5w:x bd0j 5  , 9 d B@5Pr 00)  !s>  5X X > : B4  Vw5@* w LBRUw ' 50 ҕ, 6 5w ,CLw /-S5w ~/L5@w n/L5w ^/Fw䬀5@  NЕ:5  8Е:5  "5 5 w :MAw :OBʇ5dw Р\5Hw @5,L (z5@5  4   7\ v .   w$5w55 5n5b5V5*J7 > BS@vr7 J7 7 7 l7 p7 5:<: fb^ .\5]T5 B\#$ w5.0 ,5@ zw\ w$5nw ^TKB 5@wֲ|v' $7 fw, · wr  :0 D. ܮLF Юw ֮l5R w Ү/XT 54  E&w /Dҕ,5B# F  < rw /-S w xSP0:[1,4 N5w V/Cҕ,5@   :Z DX vp ҕ= 5z   ޭw /D 5Z &  w έ/D 5:< w /M 5 TH ~w 5EE>"  d$]5 U V5 5@j/& p5  Tax bdx Ȇw άOPTIONS? B 5w5F5 ) ׯ$ׯ/!D~ p ΫU7 f@d//" l7B 0 B4  L5^w ޫTKBw ԫSTBwwȟAB9CP6DS3FR0FX-FP*FU'HD$MU!NTPIPRSESRRORW OR SQTRWN ҕ/ҕ-!     @Z E@P w67 2 裷&2 .5,B<,*(z"    5 B  Z50#"5)#5"#5# 5#5 # mR 47 0 梷$2 .5,@:*(&J#   5 B  X m$ w D/Uw :/-U  ,$ 0 & mPmP7xPtҕ/5Zҕ-ҕCҕC5>w /S~vҕ/5ҕ-ҕMҕAZ5wFw t/L5< E5 |U ҕ: 5X0t   w 5@T5L ,5| Er " 4  .ABORTABLE>BASICCHECKPOINTABDCROSSREFERENDEBUGDEFAULTLIBRADISABLEABLEJEXITFIXABLEVFLOATINGPOIN\FLUSHRECEIVEPFULLSEARCHbHEADERhLARGESYMBOLTMAP@MULTIUSERnNETWORKtNOTASKOPTIONS OVERLAYDESCRPOSITIONINDEzPRIVILEGEDREADWRITERECEIVEREQUESTRESIDENTOVERRUNTIMESYSTESEQUENTIALSYMBOLS@TASKTRACEABLEWAITFORNODES00)Ň)ƇȄ*FILESFULLNARROWSHORTUNDEFINEDREF WIDECONCATENATEDLIBRARY~MAPZSELECT>UNDEFINEDSYMOther qualifiers invalid with /BASIC/MA/-SH/MA/-SH/-WI/-UR5wZ J~AWp u`  e<  e<  e  eAWpu`AW dЕ W Е  Е:W Е0 x~7 LAW Е0 VЕ/AW Е0 @Е/A 4Е eAW Е0 Е:~ Е Е  Z w P~Е ЕBЕAЕ0Е0Е &^ZV\> ,\F# ȅ\0 \ ȇ5)5$1 25 % T- N*׫ Bw wJB jw B R 0  X7$e 47B1 !B! pBI9 Z B̰, D 5Nw5B55*5&5,U e.7,Fe 7:$$wL z $w*B w J PASSWORD FAILURE -- w4-"S] 4-$U4-&Q5r  -O7($77 777 7(7*747 7 n0  + &wLB* wzB"0 wbBR$ wJwU D DJ5 N5x B 5bU5׭  Ƣ ԢD fb B# w START PDS D 50 BT2 E Z B~ <@<<hndj^5 zaz$~ ~5@*5^Cx bd0j B652 j~% 0(5H $ ~ NB~B~7 7 7 7  ا7 B  ɱ`    ҕ 5  ҕ   |7 %R  B$ C &f&EåAåZA#å0å90p$$ p#*peaEuECt`L0 0DP % D Е  wZ  C7!B0 .~ %B$  f&l $% tT h m6B~(-$B  Nj~7 5wV5X4%| |7 r5j5 B$ 0LJ 5< 5tUlwBզ! 5zU4 B~~5 $ Z =  0 3 00  p&- m&t $m$m" t0  , нB!  5;#w **** END JOB **** ^ ʋw4 w \ **** B$ Pw " END PDS7 E  J& & & Ε κ& 5B#5t x 7 f ̜ Hx  5d & & & Ε3## ### 00) !s#LB0:[1,1]NOTICE.TXTLB0:[1,1]BATNOTICE.TXT.c|1!_1Cx! !B.cB]C!w1g1cB.X}1A>!c1cc1FET1*B>.:#B]FRѹ^A.Fs1z **** MEDICAL PHYSICS BATCH IAS - 3.1**** END JOB **** **** NONOTICEQUIETHOLDDCLMCR PASSWORDw ew8ew.e(BA &e(H0 A f AfAD&pD0 >(CROSSREFEREN LISTOBJECTTSWITCHESLIBRARYPASS@SWITCHESlMACROSYMBOLSPERMANENTSYMREGISTERSYMBUSERSYMBOLSDSENLINLDSxENx @n7 7 7 7 7 7 5< h d` \@ ~ wv 52~p `5@ w /PAe0LҝH5w l/MEX5 U 5 ҕ, 5@r jd   F B4  bww MAC5d%5Z  h ^ : D  x j5" hP < ҕ, . dw t/-Sҕ,w fSP0:[1,4 <5 (5 $w 5@5 x3db`V RN 5 , 5  ց55  wwwrB4  B  `7< 7\ 5@   %%wPw|5w@b`^RT PL \5K  56 /% +55#` Ȁ 5T55 D5 B B4  B  ~ ~w w0+wP5 ? T ?~ .t5w\ B`5R  v" 5<  47%35h h ~5 R 25F: ৷ , "B}& ,B4  B   b< \ JHҐ5 ~55  r~5 ~Ґt &f   @eHA Ce7  } v50*jRbNLJH xB wBש wB  w|B}& wd B5@f5 U B `   wV 5@5 FE >B B'  9%O5E| % dx5 x6 %4  vp ֯ ⢇B ( Ȣwww5 * B U@*w zMFT AB!xw hCOjw ZRUZVeN ( B00)"Ň)ƇȄ*MFT %<4w MOU tw   7U   B­ #BH5 h   B~B6 jpw `DMO "7 7U 2    B~ w | : 4 , & -Oҕ  7  O J5* ҫB! w 7 7 7 7 5 @ 5Aҟџ ~57  y0 -4/5b#ҟZ ^5 R ‚% ~B >B ( B} α:80.* ABOLALTARTBYEHCANCONLCRTDCLDDISDMOENAFIXHELLINS|MCR@MOUPDX&RESRRTRUNLUNFUSEL B>5X | (L@D\  0w 5J4 0, w5U ކ5 ddb^7 7 7 ˪ zZ5 Bv  KXw HCNV l 05 5w /S ҕ: z Ԯҕ= w\B4  w ЦE @ 4Vw /FO:ID %  x w J/FO:RE V JwLOGPINDEXEDKEYRELATIVESEQUENTIALINDEXEDrRELATIVEMessage Manager task not respondingSpecified CLI not in systemIllegal range of terminalsDevice not in system or not a terminalUser not logged inIllegal MSM parameters - PDS errorNo suitable terminals foundMessage not sent - no dynamic spaceFacility only available from operator's terminalMessage too long - truncatedMessage Manager task not installed - see System ManagerFailed to send to Message Manager taskDestination must be specified for operator terminalIllegal range of terminalsUnit number required in terminal specification/FORCE only valid for SCI#*&Pb"#0KET|I ET|7 65t  w45@5x bd0j ΅y ʕ ~v-rHB HT255SU 5er5Ef Ĭ7  wUB' B7 BG&  *wBm3 wJ dX EL j{I$#՝5N- N H{- B Jα) B. ,αՀ5(wz WuwUU E Uz U h5 B ͱU@7 8&  4&  WpewTBpp 8͇8ALLzFORCEOPERATORTERMINAL 00)* !s5j8 "585*xL  أ B- 25@ B' ww̶w( $ | w<Pw ~/PRI > w5x L5 5/5/ $5@V w5zB- J B' 4 ԢwJwB565.5&wwwww5.wܡ|w dMFTRRҕ  }. w N ~   w /TI   xREALTIMETIMESHARING MESSAGEDREALTIMELTIMESHARINGTABOALTCANCONDISENAFIXRESUNF7 5` v@ 5~p5 v/5 n5@f$   Pw 5:U4ww5 ~5@' Z7 wbjw ZQUEPRJ ҕ:5w 4/ALw */Lw5 w QUE /KIz w|5h5b Nw ֮QUE5@F  .w :w /MO& n w {' ^ j t7 0CL,5 T  < 5UwB 58 d`\ 7 BA ww\ww ~ w\w QUElf w : 5Je X:5w \/BL 5w @/C5w 0/-H <5@LwHw QUEUwް5jw /CO 5Pw Ƭ/FO  Ĭz5fw /DZ[ D Fw t/T:5@ H --d   "w.w &/PRI 05F Q5:w /AF . (5Pҟ5@+  " x# < w /AF 5 ҕ:f x V N$ X d5@ ,EH z 84U  ADDAFTERALLBANNERSCOPIESDELETE^DEVICE@FORMS,LIST MODIFY NOTRANSFERPRIORITY@REMOVETEST@.LST@.LST@.BISAFTERBANNERSCOPIESDELETE^FORMS,NOTRANSFERPRIORITY@AFTERNOTRANSFERPRIORITY@COMMONLIBRARY NOHEADER $REGION>TASKX~5   :X58% (~, *5@nw ^REM :  (wwB' | w̢56w /C+5p)w /L5Vw Ү/N5<w /R~5"w BN@lh  Xw ,5 D7U  *w5@$w ʯPIP E @w /Nҕ=ph w /Rw' f7 wn00)2Ň)ƇȄ*7 5Z@~ 50x5pww` K5wB5Nw\@  2 0 -5f ~5Z Z =`  JZ BZ  тw޲ww B/INC ( F2w "INS Fw /RUN=REM/TASKB~eAB PU 5Bw6 } w^LOA  |w5:w .} w$vw fRUN r*6 }G w >/TIН2Н/-7& ,7w /MI5aҕ 5@xҝ5l ҕ+ ʭ T5> ⬇B B w5 wj Z E ~U:5Aw> .EE U F5 w w /RSI  dEEZ URҝT5aBYw /MEͷ5 nw /UIC5? ʃ597 ܁4B< 5'(w V/PAR & `5pw ,/PRI  0wB  XwE@h0 x V T<L8 7 @60= E@Ef x-. -$e 5:  E%w e &f$ eU@UhDELAYHANDLERINCREASEINTERVALMEMORY8NOPROMPTTPARTITIONPRIORITYREALTIMESCHEDULE SYNCHRONIZE@vTIMESHARING UICbHOURSHMINUTESMSECONDSSTICKST<< +8w (SAV5T |x  x B Bwwbw Я/NOطw /NOIzw /LOGjw /MOU\EL5  4ДД dЕ: 7 B}& 7 hULOGGEDONXMOUNTEDhNOEXTEND.NOINSTALLB r#w ک,w UTL~ Dw /AT f &w ү/AM ޯe wBwj | ( b*7 5@xbd0j  vw fTIM B 5@wβBШ    \~ wȢ  $rphw ȧw SET /WIDTHҝҝ ҕ: p ܅w@ x<5$  ,5 w SET /-MAXEXwӪ F{jw ZSET /MAXEXT . ww5w\@d` < R:w PIP "w /EOƷE@Z٪ PzU@Hҕ: Ԅ *{ҕ.5U" 5EwwDB' v 6 | Xw p fzLw t- &   D D^DV h wwn w SET /PRV w SET /-PRV ح $v v @5*U@wXw SET /SP w SET /-SPJ < 6 t ` ]& fw֨wB DZ7 zv\ &v( `55 w BOO w /WwpwwHB (DZ lӪ&"wDw SET /SWRZ rw XIw tSET  D?w `CLR7 5 v { q- *-&5 h R B{ҕ:5P : J{ .  {5 2wFB4  0wЗ  $q :w B  wALLOCATIONBOOTSTRAP DAYTIMEfDEVICESENDOFFILEEXTENDEDTASKPFORMSMEMORY(NOPRIVILEGED NOQUIETNOSPOOLv PASSWORDPRINTINGPRIORITYPRIVILEGED PROTECTIONQUANTUMQUIETSERVICESPOOLd SWITCHREGIST>!TERMINALSZTIMEfUICWIDTHMAXIMUMCACHENNOCACHENPARITYBATCH DEFERREDNODEFERREDOWNBATCHCONSTANTDLEVELrBATCHPROMOTION,OFF!ON!VALUE6"e(BA &e(H0 A f AfAD&pD0 >(  bww SYS /CKw w TIwz5& rRNJ ަ6 ~w DEV  5w /PUw5  xrw bSET /MAXEXwڲZw JSYS /COwƲFw 6SYS /SGw2w "SYS /IRw5 } ww LUN wrwL w ԮDEMwZw ĮSYS /PAw@ r Bz  A `A XB ew!  #^w NSWA /L5z ҕ: " J2BV: 85 |> w {6Lw 525X0*5@"5 5N EB 5850wf ƥ ! ,  2w X/PR$ j  "w. H 2 2U7 2Ex56 IE . UV55  pwƠ 5  5  5 E wEH { | w >/DE J U B w /AL ꫷  w /C  w /AL4. |  hw /C\   /BL  @ w /BU ꪷ GEZ5UL  ށ w5>*18 " ̠%tw /FO n ҕ:N VJ55 ~w pDE5x xU > Ѐ2." ,"w /FO ࡂҕ: 55  䀡wv ֡  (vw /IN x^ALLOCATION0BLOCKSIZEBUCKETSIZECONTIGUOUSbDEVICEFILES*FORMATKEYSpOUTPUTZPROCESSpRELATIVE SEQUENTIAL@SPECIFICATIOALLOCATION CONTIGUOUS@FORMATINDEXEDSEQUEJFIXEDUNKNOWNVARIABLEADDRESSROUTIINDEXRECORDTAG 5bwأD w 8eOPR \ ƯLP0: w Ư/CH]5 w /RR  z| xB  ѱ Rw Z/R' Dw L/RS: 4w w Pw @MEM } wޢ 4 n  w /A w /TI n wh-w5^wR&w USE   7 d h d` Omwb5w t5    5w v5`_ t5w L5`KP5r r څ.5@ \* <6%~Ux 5l 5d7 ^7 5R |ZEROBG wB  ww~5 e 57 @ \|: 5P07 Z n+5X >' 5B!tU`UV m 2  S K 0*\ w rm z5X  Hmt ӇЁ5X  d mB z5X Z :U>U~UrUf"U Z&U@N*UB.U6  { 8 5e8 ݒ )e0Ґҕ:U<wU B y5 \B5X ~ ^wU  y5 C5X B "U rDwT5 %V5X  DB . && &ff7 7 7  06D 4wҟ 5@ş0D! Aa@ 7 w7ҟh50b 5@:5n x bd0j Rw5 _e     xe %, \\8U 4%% -%}) &U"%z %} \U%Aw%} %R% U.U5F$7 L `5H 0 n U@Z5$UL5 U>B  wDEFAULT,EXAMINE>NEWpREMOVEUPDATEALLCONNECTOUTPUTnPRINTUTILIZATIONBPRBPWDEVDMTSPAS$PRIRCA00)RŇ)ƇȄ*RCSRTT8RUA RUS@,TP1TP2 UICIllegal parameter value&   `@ ` B   & A @    FREELISTLOSTFILESOUTPUTPPRINTREADCHECK RECOVERBLOCK@UNDELETEUPDATEBITMAPWORKDEVICE55 7 XB#3 jn k5:Pf@b^ [ ^ B (wȢw VFY505(?w CL0:VERIFY.LS 5   p5 5#ҕ,> Pҕ=,6 }  n  wwܡ5w /F5w /L5w /L5@w /R5w /D5w ҭ/U5   wD 7  5@5 mw .LSe J!EH | B  7 v bU w "/R5P Pҕ: rz B  J7  ҕ. e0 ҕ:ABORTALLOCATEAPPENDASSIGNBASICBOOTSTRAPCANCELCOBOLCOMPARECONTINUECOPYCORALCREATEDCLDEALLOCATEDEASSIGN DELETEDIRECTORY DISABLEDISMOUNTDUMP(EDIT0ENABLEEOJpEXAMINE8FIXFORTRAN GOTOHELP@IDENTIFYHINITIALIZEPINSTALLXJOBxLIBRARIAN `LINK@hLOGINLOGOUTMACROMCRMERGEMESSAGEMOUNTONPRINTQUEUEREMOVE(RENAME0RUN8SAVE@SETHSHOWPSORTXSPOOL`STOPhSUBMIT TRUNCATEpTYPExUNFIXUNLOCKUSERSVERIFY -v5wx5D@@$} (A B! ~b 4w35 :  :   4 :<7 ;7 : 7΁7ʁUā >  :.3B aBH5 a B­ a F3B a,&w^U@փ J9 B X9" R9Ѐ  5j 5^ ؀ҀЀ    B B~B6 ` 2U h6Hw n>/LRU H>.U :6)-@w 8>/DENS=160- w >/DENS=80   >w1Uh 5w =/EXTP = 9w =/FPRO=U ҕR ҕW ҕE ҕDҕ,S~]F5~w2w X=/CHA=[FOR,ATCH5~ww ,=/CHA=[DCFݷ~5N}_ N5B}Uv~ <  `~HX~DA 2>7< D~:7\ <~52~ 5|  E~v~5~w -w, F3(ê F! |90{Ӫ (Z{w J9RED V9ҕ={ 9w< f {{w,B Z[w,5.y@(Z{V{R{ /- Rz*5Bz5tz$zz 8ҕ 8w 8 NONw m78mE|m & Upm7vmepmhm m %UHmzlLmrlDm @m7lbl\l +w 25 m7l7lUll&lll7 llҟj 5jҟjUl   4%k0kk5j)ҟj 5jҟ~jU l |  %kkk5 Zj ҟRj Vkkkw <  w 2 2 5@jx0bdj 45pk. i Z%"k5H ik )R J Bǫ K׫ k wVAj3~i 5@viҟni rjjj j5Ri$Hi.@iҟ:i >vjtjpj5 $i $5i 5 i w 0* h h @hhh& Οh  h  hE eh5h !h@h>hh  !   %%&xbd 5i B*h"h BJ h5LiUDi  &x ~E.iцE$iUiwgg ( r"j5&i Bgg I g@g Tw LfPf~hhh7 fi7 riDidi@i`iBi\i>iXi@FiBi(g  c 5@g  gg 'ulm!E*h@X$# @5 $ h h hp~@BV H#5 $w V&Open failure on fileA* :aB xH w KlYZ =^ig@# ?@5\g ;w5Lg=Br0 HЕ Е `  Е Z FB GB- G  5gw@w\ 8 lwh5fk h b  gPdPb fՀgfgwjg T,Ubf w|5k6h`E>f   5f  n UFfwwRe5e 5ebgH@ppP L>"ABuhfwtdnd3a , `WaWz ~*&l  5jel w@ =& a `V @w #Command I/O error (status =l A*f ^ҕ)B E@ ^= (@# F=  /* DnnlCeH###33w HWl 5`d @w |H 8lDn@ .TeB5n@ <w >Hl jB <6$ ;J^u $$$Ƥ Ҥ ޤ  )"K k,Odd address or other trap 4Segment faultBPT instruction or T-bit trapIOT instructionReserved instructionNon IAS EMT instructionTrap instructionFPP ExceptionSST aborted bad stackAST aborted bad stack TimeoutLoad failureSwap failureInvalid I/O status blockNot installedHandler missingToo largeIAS privilegedNon multi-user task already activeNo swap space available for taskUnavailable pool nodeTask is fixed - cannot run under timesharingTask is disabledUnrecognisable task termination codeMemory parity errorPlease LOGIN - PDS> LOGIN USER NAME? user-name PASSWORD? passwordYour user-name and password will be supplied by the System ManagerPlease LOGIN (or type HELP)Command not allowed - maximum tasks already activeCommand not allowed - active taskAlready logged inAlready in MCR ModeAlready in DCL ModeCommand not allowed - no task BYE TIMEOUT SHUTDOWN Cannot LOGOUTNo active taskNO FILES OR DEVICES ASSIGNED FILE OR DEVICE REDIRECTED LUNS Task suspended or stopped ignored Command not uniqueIllegal commandIllegal MCR commandYou do not have the privilege to issue this commandRequired parameter not specifiedRequired qualifier not specifiedIllegal parameters - Command terminated Command terminatedCommand input source errorFATAL - PDS BUFFER OVERFLOW OR OTHER SST TRAPInvalid keywordAmbiguous keywordRepeated keywordInvalid qualifierAmbiguous qualifierRepeated qualifierRequired qualifier value not specifiedRequired value not specifiedContradictory qualifiersQualifier value invalid hereQualifier not00)j !s negatableInvalid qualifier valueCommand too longUser DEVICE? Open failure on file Indirect file depth exceeded IAS PROGRAM DEVELOPMENT SYSTEM VERSION 3.1 FUNCTION? DEVICE AND/OR UFD? FROM? INTO? TO? POSITION? Illegal file-specificationInconsistent qualifierInvalid RT11 file-specificationInvalid list PROTECTION? OLD? NEW? FILE? OPERATION? LIBRARY? NEW LIBRARY? OPTIONS? TIME? WHEN? UPF failure - call System ManagerIllegal password PASSWORD? NEW PASSWORD? OLD PASSWORD? Invalid password USER NAME? Illegal user nameUser name not authorizedYou do not have the privilege to LOGIN at the SCI consoleIllegal deviceDevice not mounted or allocatedDevice not allocatedVolume mounted on device - cannot initialize VOLUME-ID? LUN? Illegal LUN LOGICAL NAME? Device already allocatedVolume not mountedDevice table full - You cannot mount any more volumesIllegal VOLUME-IDUnit number not specifiedLogical name already in useDevice already mounted TERMINAL? MESSAGE? CLI? TASK? UTILITY? ATTRIBUTE? PARAMETERS? PRIORITY? DATE? Version not specifiedIllegal CLI nameIllegal task nameCLI(S) not installedCannot dismount or deallocate System deviceCannot dismount default deviceDevice not mounted or allocated - Cannot keep QUEUE? SEQUENCE#? ENTRIES? MODULES? Invalid time TIME UNIT? Illegal time unit Device part of multi-volume set Too many multi-volume sets Device must be mounted FOREIGN Unit number not valid with /DEVICESPlease 'LOGOUT' or 'CONTINUE' > OLD FILE? NEW FILE? Write failure on temporary command fileDefault device not mounted - set to SY0:You do not have MCR privilege - default set to DCLI/O error on temporary command fileTask no longer activeLIBR=SYSRES:ROYou do not have MCR privilege - cannot LOGINConnect time limit exceeded - Cannot LOGINSystem utilization limit exceeded - Cannot LOGINJob time limit too long - Cannot rundevice-nameUFDfile-namefile-typeversion ADDRESS? UIC? Inconsistent devicesFailed to set appropriate UICYou cannot issue this command from a non-console terminalCannot LOGOUT console until shutdownInternal device table errorIllegal UIC BLOCKS? FORMS-TYPE? TICKS? VALUE? GROUP? MAXIMUM? NO OUTSTANDING LOAD REQUESTS JOB NUMBER ? - Group must be 0 or 1Maximum must be in range 0 - 32767 kD  jRWfRW5`R^RTXR|T:RN6Rw}N 7 S7 S  U S5R-QBAw$  w2ESUSES w5S Z w5SB0  d4P5pSw PDw SC5 TSҕ>ҕ>ҕ xbd0j *5$S׭ Uw: &w5S5 S wj7 S7 S7 S7 R7 R7 S7 ~S7 |SER Q 5R5Rww&5pQׯhQ$5R  rw X $ FQw ~RfSvRbS5hRw 5Q5PR EBR 52Rwx5 (R5R 5XR N9%Q5  !5*Rw7< R %5Rw5Q 5@Q  D5Q[  T w -,QQ5|Q  `&.PbQ&P$PUZQETQULQEDQ7 P5PUO  3 , ->\M-8\MUOOO 0%2O   .EzOUHrO%5O  UzOB# '&w - * Hw OPEN FAILURE ON COMMAND INPUT OR OUTPU  @`@ ~6 eBtC` C UJKKS F J  > JwJKJKKKK Zx5J JJ  JJ& & BjJRKbJNKLKJKHK 5@JH.KѥN*ѥO'wK K7< J)7< J% 7\ J7\ J  5H IIG F IIk * IIX  5VH7 I7 I   $IIvIpI  wwCRJ+w=HJ2w]@J55G25 @5  I!  I&eIH ` HH JHHש 4 HH e5ZG Z5@NGHH}& w> 5&G>    Ie .H(H    : Hw<GC~ d@Hw j/KR2H 6(H GG  0w<5G B#3 z( GGU@xGG7GE@fGGG <G7G ,5@D 89ҕ  dҕ B $ `  "Е Z Z = C"<$# 7 C lDBp D$ ` C5@ B UFwR CeBp # @ #'&@ X* d<BBp #wB# 6'׭H?׭@?׭8?"Cw PIP [1,100]PDSUPF.DAT/U ~ن 5NB B5rBw@tEEe0e0R@tEE r E  r Ef `%  r e0e~ e0e %~w;& ; B~@ Rŀ 5 w \dA^AB~&fBB BB B B B AA A& &&f %@ %/%.%$ %ZEWq(a ~S%9Wq(~K m%< & w - B !B !B ew&f&f NUMBERGROUPOWNERSYSTEMWORLDXlȀȔȪȾ(@RfINSUFFICIENT MEMORYTASK NOT INSTALLED PARTITION TOO SMALLHANDLER NOT RESIDENT TASK ALREADY ACTIVETASK DISABLEDTASK NOT CURRENTLY ABORTABLE TASK NOT ABORTABLE DIRECTIVE PRIVILEGE VIOLATIONINVALID UICPARTITION NOT IN SYSTEMINVALID PRIORITY INVALID EVENT FLAG UNRECOGNISED DIRECTIVE FAILURE U6AU.A "AwUAh> l < < |< v< p<ҕ h<b< 7 Z< @w w @SP0:[00)z* !s1,4]PDS.TMP= 6U@ @wt= O ~@w\ w=eC <Ce<˕-p= p z=ewN,@ wDB]  >w  >=Х   -??$= 7 ,<7 &< ?6@-?wN -?5?w:e? ??_?? ?5 ??t?p? Q< J< X?T?<<:? % ww n?wz % >5; 555 x ׇ>55  ~ ; ;>E7: B~ >x>::B2 wL>5 5 :%::B  T b >wn&fEU5Hx s !!s=5w bw=5w dwz ==5 H ^  f=% 11 w 5 11 %% U-D9D9<9<9w %% % (w \w TASK NOT RUN - %<""%"e< B  8<5%ww'1 P           " . : F R ^ j v Ђ Ў К Ц в в в в. в ! в о $  z  V  ^   f n v ~    P   * 6 B N Z f r ~ Њ Ж Т5ew  Bv    EU  5BwD 5  5U E*5@*& E& & f&ËDef Ë )̋Uw *eB 8  R 8w *) $* &w46l0 .TITLE PRICHK .SBTTL TITLE PAGE .IDENT /MRH001/; ; F.BORGER; MICHAEL REESE MEDICAL CENTER; DEPARTMENT OF MEDICAL PHYSICSU ; JULY 78R;$8; THIS MODULE IS AVAILABLE FOR LINKING INTO MCR, MCI ETC;B*; IT PERFORMS THE SAME FUNCTION OF PDS, IE+; A/LOOKS AT ...XXX TASK USER IS REQUESTING ;EC; B/CHECKS PRIVILEDGE WORD OF USER PROFILE FILE TO SEE IF REQUESTORL; HAS PRIVILEDGE ON CALLING, 2E; R0 MUST CONTAIN PROTECTION WORD, OBTAINED FROM U.RBOF THE TI PUDD-; R1 MUST CONTAIN RAD 50 3 LETTER TASK NAME.;T-; C/RETURNS WITH 0 IN R0 AS SUCCESS INDICATOR;I.; D/RETURNS WITH -1 IN R0 AS SUCCESS INDICATOR; ; E/OTHER REGISTERS UNCHANGEDS .PAGE+ .SBTTL TABLES OF TASKS & PRIVILEGES NEEDEDB; %; DEFINE PRIV. BIT VALUES FOR 6.3 RSXE; -;PRIVILEGE BIT DEFINITIONS FOR CURRENT SYSTEM;/DPR.FIL=1 ;file work (PIP,VeriFY,FLX,DMP,QUE,RECover,SDV,SRD,SRT,TUI)8PR.RUN=2 ;Task manipulation (INStall,REMove,REPlace,RUN)PR.BAS=4 ;BASic,FOCal #PR.COB=10 ;COBOL (not implemented)I1PR.COR=20 ;was CORal, used for editors (EDI TECo)0PR.FOR=40 ;FORtran,XReFOPR.LIN=100 ;Linkers (TKB,TKX)RPR.MAC=200 ;MACroT2PR.SCI=400 ;super user, SAVe, OPEn,BAD,ROLlin,etc.KPR.SUB=1000 ;Set User at Batch (if bit clear, keep his task at batch level).0PR.MCR=2000 ; REESE HOSTILE TERMINAL (0=HOSTILE)?PR.DEV=4000 ;Device management (DisMOunt,MOUnt,REDirect,UNLoad),PR.DUM=10000 ;DuMPPR.LIB=20000 ;LIBrarian PR.SYS=40000 ;not implementedRPR.RTC=100000 ;not implemented;B!;DEFINE MACRO TO GENTERATE T00*+ƇȄ*ABLESw .LIST MEs .MACRO TABLE TASK,PRFLAG .PSECT NAMESr .RAD50 ?TASK? .PSECT FLAGST .WORD PRFLAGC .ENDM;T .PSECT NAMESNAMES: .PSECT FLAGSFLAGS:.PSECT; NOW GENERATE TABLES ;B TABLE ATT,PR.SCI  TABLE AT.,PR.MCRt TABLE AZP,PR.SCI2 TABLE BAD,PR.SCI  TABLE BAK,PR.SCI) TABLE BAS,PR.BASc TABLE BA2,PR.BASu TABLE BA3,PR.BASN TABLE BA4,PR.BAS0 TABLE BA5,PR.BAS0 TABLE BA6,PR.BASS TABLE BA7,PR.BASn TABLE BA8,PR.BAS  TABLE BA9,PR.BASB7 TABLE BYE,PR.RTC ;FOR APRIL 1ST, DON'T LET HIM RUN BYE  TABLE B10,PR.BAS TABLE B11,PR.BASA TABLE BAT,PR.SUB  TABLE BOO,PR.SCIA TABLE CDA,PR.SCIE TABLE CDT,PR.SCIP TABLE CDX,PR.SCI TABLE COR,PR.SCIA TABLE CZP,PR.SCIB TABLE DMO,PR.DEVB TABLE DMP,PR.FILB TABLE DOB,PR.SCIB TABLE DSC,PR.SCIB TABLE EDI,PR.CORB TABLE FCL,PR.BASB TABLE FLX,PR.FILB TABLE FOR,PR.FORB7 TABLE HEL,PR.RTC ;FOR APRIL 1ST, DON'T LET HIM RUN HELT TABLE INI,PR.SCIT TABLE INS,PR.RUNT TABLE LBR,PR.LIBT TABLE LUN,PR.SCIR TABLE MAC,PR.MACE TABLE MEM,PR.SCIB TABLE MFT,PR.SCIB TABLE MOU,PR.DEVB TABLE OPE,PR.SCIB TABLE OPR,PR.SCIB TABLE PIP,PR.FILB TABLE PSE,PR.SCIB TABLE PWE,PR.SCIB TABLE QUE,PR.FILB TABLE REA,PR.SCIB TABLE REC,PR.FILB TABLE RED,PR.DEVB TABLE REM,PR.RUNB TABLE REP,PR.RUNB TABLE ROL,PR.SCIB TABLE RUN,PR.RUNB TABLE SAV,PR.SCIB TABLE SDV,PR.FILB TABLE SET,PR.SCIA TABLE SRD,PR.FIL  TABLE SRT,PR.FILE TABLE SYE,PR.SCIE TABLE TEC,PR.CORE TABLE TKB,PR.LINE TABLE TKX,PR.LINE TABLE TSE,PR.SCIE TABLE TUI,PR.FILE TABLE UFD,PR.SCIE TABLE UNL,PR.DEVE TABLE USE,PR.SCIE TABLE VFY,PR.FILE TABLE XRF,PR.FORE TABLE ZAP,PR.SCIE TABLE END,0.PSECT .PAGE .SBTTL THE CODE)PRICHK:: MOV R2,-(SP) ;SAVE USED REGISTERB CLR R2R<1$: CMP R1,NAMES(R2) ;COMPARE REQUESTED NAME WITH TABLE NAME BNE 4$ ;BR IF NOT SAME8 BIT FLAGS(R2),R0 ;IS CORRECT FLAG BIT SET IN PRO WORD ? BNE 2$ ;YEST& MOV #-1,R0 ;NO SHOW ERROR INDICATION BR 3$ ;AND EXITB2$: CLR R0 ;SHOW GOOD3$: MOV (SP)+,R2 ;RESTORE R2 RTS PC ;AND RETURN.4$: TST (R2)+ ;BUMP R2 TO NEXT WORD IN TABLES TST FLAGS(R2) ;END OF TABLES ?X BNE 1$ ;IF NOT, WE TRY AGAIN% CLR R0 ;TASK NOT IN RESTRICTED LISTH MOV (SP)+,R2 ;RESTORE R2P RTS PC ;AND RETURN .ENDR2R<1$: CMP R1,NAMES(R2) ;COMPARE REQUESTED NAME WITH TABLE NAME BNE 4$ ;BR IF NOT SAME8 BIT FLAGS(R2),R0 ;IS CORRECT FLAG BIT SET IN PRO WORD ? BNE 2$ ;YEST& MOV #-1,R0 ;NO SHOW ERROR INDICATION BR 3$ ;AND EXITB2$: CLR R0 ;SHOW GOOD*f TOL(*f hW8"(a'.( W8"t a'. W8"| a'. W8"` a'. W8" a'. W8" a'. W8"  a'.   W8"  a'.   W8" a'. W8" a'. W8" a'. W8" a'. W8" a'. W8" a'. W8" a'. W8"m a'. W8"v a'. W8"  w a'.   W8""" a'."" W8"$$ a'.$$ W8"&&a a'.&& W8"((t a'.(( W8"**x a'.** W8",,* a'.,, W8".. a'... W8"00 a'.00 W8"22 a'.22 W8"44Z a'.44 W8"66 a'.66 W8"88 a'.88 W8"::& a'.:: W8"<<x' a'.<< W8">>' a'.>> W8"@@2 a'.@@ W8"BBy: a'.BB W8"DD: a'.DD W8"FFbK a'.FF W8"HHVN00+,- !s a'.HH W8"JJkQ a'.JJ W8"LLR a'.LL W8"NNDR a'.NN W8"PPS a'.PP W8"RRE` a'.RR W8"TTR` a'.TT W8"VVxe a'.VV W8"XXf a'.XX W8"ZZg a'.ZZ W8"\\m a'.\\ W8"^^Iq a'.^^ W8"``Kq a'.`` W8"bbLq a'.bb W8"ddUq a'.dd W8"ffXq a'.ff W8"hhr a'.hh W8"jjs a'.jj W8"llv a'.ll W8"nnvw a'.nn W8"ppw a'.pp W8"rry a'.rr W8"tty a'.tt W8"vvz a'.vv W8"xx} a'.xx W8"zz~ a'.zz@ W8"||~ a'.||@ W8"~~ a'.~~ W8"Q a'. W8"4 a'. W8"| a'. W8"= a'. W8" a'. W8"֘ a'. W8" a'. W8"t! a'. * r <    W8" a'. $a'.&a'.zz@ ,PRIVILEGE BIT DEFINITIONS FOR CURRENT SYSTEM DPR.FIL=1 ;file work (PIP,VeriFY,FLX,DMP,QUE,RECover,SDV,SRD,SRT,TUI)8PR.RUN=2 ;Task manipulation (INStall,REMove,REPlace,RUN)PR.BAS=4 ;BASic,FOCal#PR.COB=10 ;COBOL (not implemented)1PR.COR=20 ;was CORal, used for editors (EDI TECo)PR.FOR=40 ;FORtran,XReFPR.LIN=100 ;Linkers (TKB,TKX)PR.MAC=200 ;MACro2PR.SCI=400 ;super user, SAVe, OPEn,BAD,ROLlin,etc.KPR.SUB=1000 ;Set User at Batch (if bit clear, keep his task at batch level)/PR.MCR=2000 ;REESE HOSTILE TERMINAL (0=HOSTILE)N?PR.DEV=4000 ;Device management (DisMOunt,MOUnt,REDirect,UNLoad),PR.DUM=10000 ;DuMPPR.LIB=20000 ;LIBrarian PR.SYS=40000 ;not implementedR0PR.RTC=100000;at REESE log on as PRIVILEGED usermented)1PR.COR=20 ;was CORal, used for editors (EDI TECo)PR.FOR=40 ;FORtran,XReFPR.LIN=100 ;Linkers (TKB,TKX)PR.MAC=200 ;MACro2PR.SCI=400 ;super user, SAVe, OPEn,BAD,ROLlin,etc.KPR.SUB=1000 ;Set User at Batch (if bit clear, keep his task at batch level)/PR.MCR=200 .TITLE PRICHK .SBTTL TITLE PAGE .IDENT /MRH001/;0 ; F.BORGER; MICHAEL REESE MEDICAL CENTER; DEPARTMENT OF MEDICAL PHYSICS) ; JULY 78 ;N8; THIS MODULE IS AVAILABLE FOR LINKING INTO MCR, MCI ETC; *; IT PERFORMS THE SAME FUNCTION OF PDS, IE+; A/LOOKS AT ...XXX TASK USER IS REQUESTINGA;RC; B/CHECKS PRIVILEDGE WORD OF USER PROFILE FILE TO SEE IF REQUESTORE; HAS PRIVILEDGE ON CALLING, RE; R0 MUST CONTAIN PROTECTION WORD, OBTAINED FROM U.RBOF THE TI PUD -; R1 MUST CONTAIN RAD 50 3 LETTER TASK NAME.;T-; C/RETURNS WITH 0 IN R0 AS SUCCESS INDICATOR;I.; D/RETURNS WITH -1 IN R0 AS SUCCESS INDICATOR; ; E/OTHER REGISTERS UNCHANGEDS .PAGE+ .SBTTL TABLES OF TASKS & PRIVILEGES NEEDED ; !; DEFINE PRIV. BIT VALUES FOR IASS;E-;PRIVILEGE BIT DEFINITIONS FOR CURRENT SYSTEM;DPR.FIL=1 ;file work (PIP,VeriFY,FLX,DMP,QUE,RECover,SDV,SRD,SRT,TUI)8PR.RUN=2 ;Task manipulation (INStall,REMove,REPlace,RUN)$PR.BAS=4 ;Reese BASic, BASIC+2, etc.#PR.COB=10 ;COBOL (not implemented)37PR.COR=20 ;was CORal, used for editors (EDI, EDT, TECo)S&PR.FOR=40 ;FORtran, (FV2,F4P,F77,etc.)PR.LIN=100 ;Linkers (TKB,TKX) PR.MAC=200 ;MACroN2PR.SCI=400 ;super user, SAVe, OPEn,BAD,ROLlin,etc.KPR.SUB=1000 ;Set User at Batch (if bit clear, keep his task at batch level)TBPR.MCR=2000 ;REESE Hostile Terminal (If bit clear, set as Hostile)?PR.DEV=4000 ;Device management (DisMOunt,MOUnt,REDirect,UNLoad)aPR.DUM=10000 ;DuMPPR.LIB=20000 ;LIBrarian,PR.SYS=40000 ;not implementedLPR.RTC=100000 ;n00-ƇȄ*ot implemented;s!;DEFINE MACRO TO GENTERATE TABLES  .MACRO TABLE TASK,PRFLAG .PSECT NAMESc .RAD50 ?TASK? .PSECT FLAGSX .WORD PRFLAG; .ENDM.PAGE4.SBTTL THE PRIVILEGE TABLESD;L(;MAKE ROOM FOR TABLES IN SEPARATE PSECTS;b;c .PSECT NAMESNAMES: .PSECT FLAGSFLAGS:.PSECT; NOW GENERATE TABLESI;i TABLE AFO,PR.FILt TABLE ATT,PR.SCID TABLE AT.,PR.MCRi TABLE AZP,PR.SCIc TABLE BAD,PR.SCI1 TABLE BAK,PR.SCI2 TABLE BAS,PR.BASR TABLE BA2,PR.BASl TABLE BA3,PR.BAS0 TABLE BA4,PR.BASd TABLE BA5,PR.BAS  TABLE BA6,PR.BAS  TABLE BA7,PR.BASK TABLE BA8,PR.BASA TABLE BA9,PR.BAS? TABLE B10,PR.BAS. TABLE B11,PR.BASM TABLE BTW,PR.BASE TABLE BTH,PR.BAS TABLE BDI,PR.FILT TABLE BLO,PR.FILS TABLE BOO,PR.SCIT TABLE BP2,PR.BASE TABLE BRE,PR.SCIP TABLE BRI,PR.FILE TABLE BRU,PR.SCIE TABLE B2R,PR.BASE TABLE B2T,PR.BASE TABLE B2X,PR.BASE TABLE CDA,PR.SCIE TABLE CMD,PR.SCIE TABLE CMP,PR.FILE TABLE CON,PR.SCIE TABLE COP,PR.FILE TABLE COR,PR.SCI ;??4 TABLE CZP,PR.SCI5 TABLE DAN,PR.FIL6 TABLE DEL,PR.FIL7 TABLE DIA,PR.FIL8 TABLE DIR,PR.FIL9 TABLE DMO,PR.DEV0 TABLE DMP,PR.FIL1 TABLE DOB,PR.SCIW TABLE DOC,PR.FILH TABLE DSC,PR.SCII TABLE EDI,PR.CORO TABLE EDT,PR.CORO TABLE EDX,PR.COR2 TABLE FDU,PR.FILE TABLE FHD,PR.FILI TABLE FLB,PR.SCIU TABLE FLX,PR.FILR TABLE FOR,PR.FORT TABLE FV2,PR.FORX TABLE F4P,PR.FORA TABLE F77,PR.FORD TABLE FMT,PR.SCIP TABLE FRE,PR.FILN TABLE FRG,PR.SCIP TABLE HOL,PR.SCIR TABLE IDX,PR.FORE TABLE INI,PR.SCIE TABLE INS,PR.RUNE TABLE INV,PR.SCIE TABLE KED,PR.CORE TABLE K52,PR.CORE TABLE LBR,PR.LIBE TABLE LIS,PR.FILE TABLE LOA,PR.SCIE TABLE LST,PR.FILE TABLE LUN,PR.SCIE TABLE MAC,PR.MACE9 TABLE MPP,PR.MAC ;AND THE MACRO PRE-PROCESSOR FOR RATFIVE TABLE MAX,PR.MACE TABLE MEM,PR.SCIE TABLE MFT,PR.SCIE TABLE MMC,PR.SCI ;MAG-TAPE COPY TABLE MOU,PR.DEV TABLE MPG,PR.FIL" TABLE MSM,PR.SCI ;MESSAGE MONITOR TABLE MTC,PR.SCIC TABLE MUN,PR.CORC TABLE OPE,PR.SCIO TABLE OPR,PR.SCIC TABLE PAG,PR.FILU TABLE PAT,PR.SCIC TABLE PIP,PR.FILO TABLE PRI,PR.FILO TABLE PRO,PR.FILI TABLE PSE,PR.SCII TABLE PUR,PR.FILC TABLE PWE,PR.SCII TABLE QUE,PR.FILC TABLE RAT,PR.FORA TABLE RA5,PR.FORA TABLE RCV,PR.FILE TABLE REA,PR.SCII TABLE REC,PR.FILA TABLE RED,PR.DEVC TABLE REM,PR.RUNC TABLE RES,PR.FORC TABLE REP,PR.RUNT TABLE ROL,PR.SCIT TABLE RUN,PR.RUNT TABLE SAL,PR.SCIS TABLE SAV,PR.SCIE TABLE SDV,PR.FILE TABLE SET,PR.SCIE TABLE SGN,PR.SCIE TABLE SLP,PR.CORE TABLE SOR,PR.FILE TABLE SRD,PR.FILE TABLE SRT,PR.FILE TABLE SWA,PR.FILE TABLE SYD,PR.SCIE TABLE SYE,PR.SCIE TABLE TCP,PR.SCI ;TAPE COPY TABLE TCV,PR.CORI TABLE TEC,PR.CORO TABLE TEN,PR.CORO TABLE TEQ,PR.CORI TABLE TES,PR.CORC TABLE TIM,PR.SCII TABLE TKB,PR.LINE TABLE TKX,PR.LINU TABLE TPC,PR.SCIO TABLE TRU,PR.FILU TABLE TSE,PR.SCIC TABLE TUI,PR.FILU TABLE TYP,PR.FILC TABLE TYS,PR.FILC TABLE UFD,PR.SCII TABLE UNL,PR.DEVC TABLE UNP,PR.FILC TABLE USE,PR.SCIO TABLE UTL,PR.SCII TABLE VFY,PR.FILI TABLE VOL,PR.SCII TABLE XRF,PR.FORI TABLE ZAP,PR.SCIC1 TABLE END,0 ;PUT 0 IN AS END OF TABLE INDICATORY .PAGE .SBTTL THE CODE;T.PSECT;;B)PRICHK:: MOV R2,-(SP) ;SAVE USED REGISTERT CLR R2C<1$: CMP R1,NAMES(R2) ;COMPARE REQUESTED NAME WITH TABLE NAME BNE 4$ ;BR IF NOT SAME, ;FOUND TASK ON RESTRICTED LIST, CHECK IT= BIT FLAGS(R2),R0 ;IS NEEDED BIT SET IN USER PRIVILEGE WORD ?C# BNE 2$ ;YES ,USER MAY DO FUNCTION.& MOV #-1,R0 ;NO SHOW ERROR INDICATION BR 3$ ;AND RETURNI2$: CLR R0 ;SHOW GOOD3$: MOV (SP)+,R2 ;RESTORE R2 RTS PC ;AND RETURN.4$: TST (R2)+ ;BUMP R2 TO NEXT WORD IN TABLES TST FLAGS(R2) ;END OF TABLES ? BNE 1$ ;IF NOT, WE TRY AGAIN% CLR R0 ;TASK NOT IN RESTRICTED LISTM MOV (SP)+,R2 ;RESTORE R2A RTS PC ;AND RETURN .END;BR IF NOT SAME, ;FOUND TASK ON RESTRICTED LIST, CHECK IT= BIT FLAGS(R2),R0 ;IS NEEDED BIT SET IN USER PRIVILEGE WORD ?C# BNE 2$ ;YES ,USER MA00.- !s*f TOL(*f hW8"(a'.( W8"? a'. W8"t a'. W8"| a'. W8"` a'. W8" a'. W8"  a'.   W8"  a'.   W8" a'. W8" a'. W8" a'. W8" a'. W8" a'. W8" a'. W8" a'. W8" a'. W8"v a'. W8"  w a'.   W8""" a'."" W8"$$ a'.$$ W8"&&) a'.&& W8"((o a'.(( W8"** a'.** W8",,  a'.,, W8"..U a'... W8"00Y a'.00 W8"22e a'.22 W8"44 a'.44 W8"66 a'.66 W8"88 a'.88 W8"::a a'.:: W8"<< a'.<< W8">> a'.>> W8"@@& a'.@@ W8"BB( a'.BB W8"DD* a'.DD W8"FF a'.FF W8"HH6 a'.HH W8"JJ a'.JJ W8"LLi a'.LL W8"NNz a'.NN W8"PP a'.PP W8"RR a'.RR W8"TTZ a'.TT W8"VV[ a'.VV W8"XX a'.XX W8"ZZ a'.ZZ W8"\\ a'.\\ W8"^^ a'.^^ W8"``5& a'.`` W8"bb& a'.bb W8"ddb' a'.dd W8"ffx' a'.ff W8"hh' a'.hh W8"jj) a'.jj W8"ll* a'.ll W8"nnm+ a'.nn W8"pp' a'.pp W8"rrU( a'.rr W8"ttW( a'.tt W8"vvd4 a'.vv W8"xx8 a'.xx W8"zzy: a'.zz W8"||: a'.|| W8"~~: a'.~~ W8"E a'. W8"XJ a'. W8"bK a'. W8"{L a'. W8"YM a'. W8" N a'. W8"VN a'. W8"kQ a'. W8"S a'. W8"Q a'. W8"R a'. W8"DR a'. W8"KS a'. W8"S a'. W8"S a'. W8"ET a'. W8"cT a'. W8"T a'. W8"E` a'. W8"R` a'. W8"/d a'. W8"; (OR EXPERIENCED) USER CHANGE THE PROTECTION CODES FOR A FILE?; WITHOUT HAVING TO DO BATTLE WITH THE COMPLEX SYNTAX NEEDED TO"; ACHIEVE THE SAME RESULT WITH PIP;%; A TYPICAL COMMAND SEQUENCE WOULD BE;; MCR>PRO FILENAME.EXT;VERS;E; PROTECT WILL CHANGE THE FILE PROTECT CODES FOR THE FILE IN QUESTION; TO [RWE,RWE,RWE,R];B; PROTECT SUPPORTS WILD CARD OPERATIONS, WITH THE RESTRICTION THAT?; VERSION # MUST BE * OR EXPLICIT IF NAME OR EXTENSION ARE WILDE;NG; MAIN PURPOSE IS TO PROVIDE A SIMPLE METHOD FOR AN OPERATOR TO PREVENTO2; A FILE FROM BEING DELETED (SUCH AS A .TSK FILE).;TE; A COMPANION PROGRAM, UNPROTECT (...UNP) WILL RESET THE FILE PROTECT <; CHARACTERISTICS TO THE SYSTEM DEFAULT OF [RWED,RWED,RWE,R];V; FRANK BORGER; MICHAEL REESE MEDICAL CENTER ; DEC 1976;F; 5 .MCALL FSRSZ$,FINIT$,FDBDF$,FDOP$A,QIOW$,DIR$,EXIT$SR? .MCALL GMCR$,GCML$,GCMLB$,CSI$,CSI$1,CSI$2,OPEN$,NMBLK$,CLOSE$U DIRSTA=0E?;VALUE TO SET NEW PROTECT CODE TO ([SYSTEM,OWNER,GROUP,WORLD])P;164000=[RWED,RWED,RWE,R]A;164210=[RWE,RWE,RWE,R]  NEWPRO=164210.PAGEE.SBTTL MAIN CODE;E;GET COMMAND LINEO;R$START: FINIT$ ;INITIALIZE FCS STUFF(CKMORE: GCML$ #GCLBLK ;GET COMMAND LINE BCC 10$ ;BR IF GOT ONE, MOV #GCLBLK,R0 ;POINT TO GCMD CONTROL BLOCK: CMPB #GE.EOF,G.ERR(R0) ;WAS ERROR END OF A COMMAND FILE ?) BEQ 1$ ;YES TAKE EXIT WITHOUT SCREAMINGM6 DIR$ 000- !s#GETERR ;NO REPORT WE COULDN'T GET COMMAND LINE1$: EXIT$S ;AND EXIT CPU LEFTT;INTERPERT FILE NAME010$: CSI$1 #CSIBLK,GCLBLK+G.CMLD+2,GCLBLK+G.CMLD$ BCS CSIERR ;WOOPS BAD COMMAND LINE CSI$2 #CSIBLK,OUTPUT & BCS CSIERR ;SOMETHING WRONG HERE TOO;N);CHECK FOR WILD CARDS AND ACT ACCORDINGLYG' CLR WILDFL ;CLEAR FLAG FOR WILD CARDSF MOV #FDB,R0 ;R0 -> FDB MOV R0,R1% ADD #F.FNB,R1 ;R1 -> FILE NAME BLOCK00 MOV #CSIBLK+C.DSDS,R2 ;R2 -> DATASET DESCRIPTOR. MOV #DEFFNB,R3 ;R3 -> DEFAULT FILE NAME BLOCK JSR PC,.PARSE8 BIT #NB.SVR!NB.STP!NB.SNM,N.STAT(R1) ;SEE IF WILD CARDS BEQ DOOPEN ;NONE, JUST OPEN1 INC WILDFL ;SET WILD CARD FLAG/FIND: JSR PC,.FIND ;FIND NEXT FILE THAT MATCHES2 BCC DOOPEN ;GOT ANOTHER ONE;! CLR WILDFL ;LAST ONE CLEAR FLAGK) JMP CKMORE ;AND TRY FOR ANOTHER COMMANDW"DOOPEN: OPEN$ #FDB ;OPEN THE FILE BCS FILERR ;COULDN'T OPEN FILE;READ ATTRIBUTES DIR$ #READAT ;DO DIRECTIVE$ BCS RWATER ;BR IF DIRECTIVE FAILED# CMPB IOSTAT,#IS.SUC ;DID READ GO ?T BNE RWATER ;BR IF READ FAILED;CHANGE PROTECT CODE MOV #NEWPRO,FATBUFI;WRITE ATTRIBUTESD DIR$ #WRITAT ;DO DIRECTIVE$ BCS RWATER ;BR IF DIRECTIVE FAILED$ CMPB IOSTAT,#IS.SUC ;DID WRITE GO ? BNE RWATER ;NO;WE'RE DONE, TRY FOR MOREF"DONE: CLOSE$ #FDB ;CLOSE FILE OUT# TST WILDFL ;DOING MORE THAN ONE ?P BNE FIND ;YES TRY FOR MORE' JMP CKMORE ;AND TRY FOR MORE COMMANDS .PAGET.SBTTL ERROR CONDITIONSR;I$;ERROR IN COMMAND STRING INTERPERTER;/CSIERR: DIR$ #BADNAM ;REPORT BAD NAME FROM CSI JMP CKMOREF;E;;COULD NOT FIND/OPEN FILE#;P FILERR: DIR$ #NOFILE ;REPORT IT JMP CKMORE;;D;C#;FAILED TO READ OR WRITE ATTRIBUTESA;D RWATER: DIR$ #BADATT ;REPORT IT CLOSE$ #FDB ;JUST IN CASEE JMP CKMORER.PAGE.SBTTL DPB'S AND DATAS;I3;READ/WRITE FILE ATTRIBUTES DPB'S AND CONTROL BLOCKN;;4READAT: QIOW$ IO.RAT,4,1,,IOSTAT,,; ,RATBLK: .BYTE -2,2 ;READ FILE PRO CODE ONLY .WORD FATBUF ;BUFFER ADDRESS! .WORD 0 ;END OF BLOCK INDICATORA;A;F4WRITAT: QIOW$ IO.WAT,4,1,,IOSTAT,,;#,WATBLK: .BYTE 2,2 ;WRITE FILE PRO CODE ONLY .WORD FATBUF ;BUFF ADDRESS! .WORD 0 ;END OF BLOCK INDICATOR ;$;A7FATBUF: .BLKW 2 ;BUFFER FOR FILE ATTRIBUTES (PRO CODE)R.PAGEG$.SBTTL ERROR MESSAGES AND DIRECTIVES;T ;BAD FILE NAME ERRORN4BADNAM: QIOW$ IO.WVB,5,1,,IOSTAT,,%BADNA1: .ASCII /PRO -- BAD FILE NAME/  BADNAL=.-BADNA1 .EVEN;Y;.;D;T3 ;TRIED TO MODIFIFY OTHER UIC AND NOT PRIVILEGEDO4BADUIC: QIOW$ IO.WVB,5,1,,IOSTAT,,@BADUI1: .ASCII /PRO -- NON-SYSTEM UIC MAY ONLY MODIFY OWN FILES/ BADUIL=.-BADUI1 .EVEN;O;0;E;O ;COULD NOT FIND/OPEN FILEB4NOFILE: QIOW$ IO.WVB,5,1,,IOSTAT,,<NOFIL1: .ASCII ?PRO -- COULD NOT FIND/(OPEN FOR WRITE) FILE? NOFILL=.-NOFIL1 .EVEN;O;B;1;O) ;COULD NOT READ/WRITE FILE ATTRIBUTESR4BADATT: QIOW$ IO.WVB,5,1,,IOSTAT,,?BADAT1: .ASCII ?PRO -- FAILED TO READ/WRITE FILE PROTECT CODES?A BADATL=.-BADAT1 .EVEN;T;B) ;FAILED TO OPEN INDIRECT COMMAND FILEN4GETERR: QIOW$ IO.WVB,5,1,,IOSTAT,,<GETER1: .ASCII /PRO -- FAILED TO OPEN INDIRECT COMMAND FILE/ GETERL=.-GETER1 .EVEN;T;N;L!IOSTAT: .BLKW 2 ;IOSTATUS BUFFER-.PAGEN.SBTTL FILE GOODIEST1WILDFL: .WORD 0 ;FLAG FOR DOING WILD CARD THINGS; ;U ;DEFINE FCS WORK AREAI FSRSZ$ 2A# ;DEFINE DEFAULT FILE NAME BLOCK, ;(FILE SY:XXXXXX.TSKDEFFNB: NMBLK$ ,TSK,,SYR! ;DEFINE FILE DESCRIPTOR BLOCK- FDB: FDBDF$N ;INITIALIZE FILE OPENE% FDOP$A 4,CSIBLK+C.DSDS,DEFFNB,FO.MFY . ;SPEC FILE INFO FROM CSI AND DEFAULT FROM  ;DEFAULT FILE NAME BLOCK;I;T;M$ ;DEFINE GETMCR (INDIRECT) MACROSEGCLBLK: GCMLB$ 2,PRO,,5 ;GET COMMAND LINE IND DEPTH OF 2, PROMPT WITHD% ;PRO, BUFFER AT CMDBUF, VIA LUN 5W; ;D;I- ;DEFINE COMMAND STRING INTERPERTER MACROSZ CSI$ + ;DEFINE COMMAND STRING INTERPETER BLOCKECSIBLK: .BLKB C.SIZE .END START,,SYR! ;DEFINE FILE DESCRIPTOR 0012Ȅ*;O%; [ 1 1 , 1 3 ] P W D T K B . C M D ; COMMAND FILE TO BUILD...PWD.;O[11,1]PWD/PR/MU/-CP/-FP,[111,13]PWD/-SP/CR=[11,13]LIB13/LB:PWD,[1,1]EXEC.STB/SSB/RPAR=GEN=STACK=32 UIC=[1,1]=PRI=221RASG=TI:6 TASK=...PWD.LIBR=SYSRES:RO/:RO/ TASK SHOULD BE EXTENDED TO INCREASE THE AMOUNT OF C; SPACE AVAILABLE TO HOLD LINES AWAITING MATCHING. THE SAME EFFECTDA; CAN BE ACHIEVED BY USING THE '/INCREASE' SWITCH AT INSTALL TIMEP;H EXTTSK =10000 /---=; THIS SHOULD ONLY BE DONE IF THE OPER F    April 3, 1981  Frank R. Borger ( Instrumentation Division Head ( Department of Medical Physics ' Michael Reese Medical Center ' 29th Street and Ellis Avenue  Chicago, IL 60616    IAS users    G Following is a description of the modifications made to MCR G to allow DCL type commands on a small MCR type IAS system. ( The essence of the change is:  G 1. Dec's MCR is modified by using PAT so that instead rG of changing the task name from ...XXX to $$$XXX if eG MCR gets an error of "TASK NOT INSTALLED" MCR S6 changes the task name to "...MAS".  G 2. The reese task "...MAS", receives the command line, nG modifies the syntax, and sends it to the necessary nG utility. For example, a command line of "USE 1,1" G has "SET /UIC=[" added to the front, and "]" added iD to the back. The command is then sent to "SET".  $G 3. If MASsage does not recognize one of the pseudo DG commands, it instead trys to install "XXX.TSX" from G LB:[11,1]. If this is successful it sets the "Re- G move-on-exit" flag for the task, and spawns the G task. If unsuccessful, massage issues the normal 1 "TASK NOT INSTALLED" message. , dG 4. Massage causes INS to run with a TI: of CO: so oG users are not confused by any INS error messages if t4 they issue an incorrect command.  s( To install the reese options,  G 1. Compile and link MASSAGE, and install it in the  system. t G 2. To be sure you have things right, make a copy of e8 MCR.OBJ --- "PIP MCR.OBJ;99=MCR.OBJ"  DG 3. Compile the patch to Dec's MCR and use PAT to patch G MCR by using the indirect file "MCRPAT.CMD" r ---"@MCRPAT"  tG 4. Task build a test version of MCR (called MCX) by oG using the command file MCRDECTKB.CMD. The test iG version can be used either by a "SET /CLI" command, G (or just by saying "MCX" to MCR) to verify that the - MF   p9 patched version is working correctly.  eG 5. If the modified MCR MASSAGE combination works, in- 5 stall the new MCR in your system.  / Tips for experienced system hackers. K MG 1. I have included dis-assembled object code for MCR, CG experienced hackers could make the change to the rG MCR task image via a 3-word zap, (if they are care-  ful.)  G 2. There are a few massaged commands unique to our G system, (DOC tells the system to print the file at G LP1: which is loaded with 9&1/2 by 11 paper with fG perforated edges, suitable for insertion in ring dD binders, hence it is 002345ˆ !sused mostly for DOCUMENTS.)  kG 3. Examination of the code in MASSAGE should make it iG fairly simple for system users to include their own 2 command lines into the source.  u' Contents of this submission:  CG 1. MCRPAT.CMD Command file to assemble the patch and i PAT MCR.  7 2. MCRPAT.PAT Macro patch source file. f i8 3. MASSAGE.MAC Source for MASSAGE task.  sD 4. MASSAGE.CMD Task build command file for MASSAGE.  eG 5. MCRTKBDEC.CMD Command file to build a test version e of MCR.  7 6. MCRDEC.DOB Disassembled MCR object.   o n Sincerely Yours,     1 M Frank R. Borger  b FRB/pdp  PAT MCR.  7 2. MCRPAT.PAT Macro patch source file. f i8 3. MASSAGE.MAC Source for MASSAGE task.  DATE: April 6, 1981   FROM:  Frank R. Borger ( Instrumentation Division Head ( Department of Medical Physics ' Michael Reese Medical Center $ 29th Street Ellis Avenue  Chicago, IL 60616 Phone: (312) 791-2515    TO: 8 Users, Modifiers, Debuggers of these programs    RE:  Feedback  K If you, as a user of the here-in presented submission make sig- K nificant changes, enhancements, bug-fixes etcetera, PLEASE make K them known to the person listed as the maintainer of the pack- cF age. Feedback from users can provide help in various ways:  AE 1. Pointing out bugs the maintainer was not aware of  K 2. Suggesting enhancements/changes that improve perfor-  mance  K 3. Providing insight into support on other operating sys- s& tems and hardware.  eK As an example, I just discovered some neat work done on REESE hK BASIC by another organization on the Spring '79 tape. These in- fK cluded support for non FPP hardware, and extending the task K (rather than generating an error message) under RSX11M. K Unfortunately I didn't discover these goodies until it was too + late to inculde in this release. u rK I can't speak for all submitters to the SIG tapes, but I myself K would really like to hear from people who use our contributions. K I may not be able to help with all the problems, I may be able K to refer you to someone who has similar hardware/software, but K in any case, just knowing someone is out there on the other end % of this tape really helps. h  d  i Frank R. Borger  e FRB/pdp  ease. u rK I can't speak for ; %; [ 1 1 , 1 3 ] R E A T K B . C M D C; COMMAND FILE TO BUILD ...REA; O[11,1]REA/PR/MU/-CP/-FP,[111,13]REA/-SP/CR=[11,13]LIB13/LB:REA,[1,1]EXEC.STB/SSR/PAR=GENBSTACK=32 UIC=[2,2]CPRI=221 ASG=TI:2:3:6 TASK=...REA=/1]:PRI=75POOL=20A TASK=MCRERRE/NDED TO INCREASE THE AMOUNT OF C; SPACE AVAILABLE TO HOLD LINES AWAITING MATCHING. THE SAME EFFECT:A; CAN BE ACHIEVED BY USING THE '/INCREASE' SWITCH AT INSTALL TIMEE;R EXTTSK =10000S/:RO STACK=128HASG=TI:2/ION DETERMINES ;I%; [ 1 1 , 1 3 ] R E D T K B . C M D D; COMMAND FILE TO BUILD ...RED;O[11,1]RED/PR/MU/-CP/-FP,[111,13]RED/-SP/CR=[11,13]LIB13/LB:RED,[1,1]EXEC.STB/SST/SPAR=GEN=STACK=32 UIC=[2,2]2PRI=221= ASG=TI:2:3:6 TASK=...RED./N.O/200ASG=TI:1 TASK=...MCRM/I; COMMAND FILE TO BUILD ...MEM;I?[11,1]MEM/PR/-FP,[111,13]MEM/-SP/CR=[11,13]MEM,[1,1]EXEC.STB/SSC/I TASK=...MEMOPRI=221D UIC=[2,2]RSTACK=64ASG=TI:2/OWEVER, IT SHOULD BE SET TO THE SAME VALUE AS "WPRI"O1; (SEE ABOVE) IF006È7Ĉ8ň9ƈ:Lj*7; TASK BUILD FOR THE REMOVE MCR FUNCTION. NOTO BENE!!!); REMOVE MUST NEVER BE FIXED IN MEMORY!!!J[11,1]REM/MU/PR/-FX/-CP/-FP,[111,13]REM/-SP/CR=[11,13]LIB13/LB:REMOV:ERREM[11,13]INSLIB/LB:SRSTD:[11,11]TKB/LB:SCVTR,[11,15]EXEC/LB:ESRNMS,[1,1]EXEC.STB/SS/ TASK=...REMPRI=150LIBR=SYSRES:RO STACK=128ASG=TI:1,TI:2,TI:3/;O,; RUN MCR FUNCTION OVERLAY DESCRIPTION FILE;L1 .ROOT [11,13]LIB13/LB:RUNMN-[1,1]EXEC.STB-*(A,B)]-A: .FCTR [11,13]LIB13/LB:RUNPRS:RUNDSP:RUNERR1&B: .FCTR [11,13]LIB13/LB:RUNINS:RUNCSI .END..LOAUNITS =1 ASG =TI:1.PAR =GEN UIC =[1,1] STACK =32KPRI =200 POOL =255OLIBR =SYSRES:ROU/OF C; SPACE AVAILABLE TO HOLD LINES AWAITING MATCHING. THE SAME EFFECTDA; CAN BE ACHIEVED BY USING THE '/INCREASE' SWITCH AT INSTALL TIMEP;H EXTTSK =10000 /---=; THIS SHOULD ONLY BE DONE IF THE OPER;;-; RUN MCR FUNCTION INDIRECT TKB COMMAND FILE;;?[11,1]RUN/PR/MU/-FP/-CP,[111,13]RUN/-SP/CR=[11,13]RUNODL.ODL/MP;; OPTION INPUT; TASK=...RUNSTACK=40ASG=TI:2PAR=GENPRI=221;;/(SDV/PR/-FP,SDV/-SP=SDV,LB0:[1,1]EXEC.STB/ TASK=...SDVPRI=222ASG=TI:5STACK=32// .TITLE SETDEF .IDENT /MRH001/ .SBTTL INTRODUCTION8;PROGRAM SUPPORTING MRMC VARIABLE DEFAULT DEVICE PACKAGE;<;PURPOSE OF PROGRAM IS TO CHANGE THE 'DEFAULT DEVICE' OF THE;TERMINAL RUNNING THE PROGRAM;;CALLING SEQUENCE (FOR EXAMPLE); ;MCR>SDV SM:;D;WOULD CHANGE THE 'DEFAULT DEVICE PUD POINTER', (LOCATED IN LOCATIONE;U.LBH OF THE PUD FOR THE TT IN QUESTION) TO POINT TO THE PUD FOR THE!;DEVICE NAMED IN THE COMMAND LINE;G;DUE TO THE SIMPLICITY OF THE COMMAND, NO INDIRECT LEVELS ARE SUPPORTEDF;AUTHOR F.BORGER; DEPT. OF MEDICAL PHYSICS; MICHAEL REESE MEDICAL CENTER ; MARCH, 1976C;E .PAGE .SBTTL DECODE DEVICE NAME .MCALL GMCR$,QIOW$,EXIT$,DIR$)START: DIR$ #GETMCR ;GETMCR COMMAND LINEG- MOV #GETMCR+G.MCRB,R0 ;START OF BUFFER -> R0 ADD #4,R0 ;BUMP PAST 'SDV 'C) CMPB (R0),#'A ;CHECK FOR ASCII CHARACTERH! BLT BADSYN ;WOOPS, SYNTAX ERROR 7 CMPB (R0),#'Z ;I DON'T THINK I NEED TO COMMENT THIS !!D BGT BADSYND CMPB 1(R0),#'AI BLT BADSYNM CMPB 1(R0),#'ZL BGT BADSYNP1 CMPB 2(R0),#15 ;TERMINATOR (IMPLYING DEVICE 0) ?S BEQ 2$ ;BR IF YESI6 CMPB 2(R0),#33 ;ALT MODE TERMINATOR (ALSO DEV ZERO) ? BEQ 2$ ;BR IF YESM& CMPB 2(R0),#': ;DEVICE NUMBER A ':' ? BNE 1$ ;BR IF NOTN22$: MOV #60,2(R0) ;IF SO CHANGE IT TO AN ASCII '0'/1$: CMPB 2(R0),#'0 ;CHECK (ASCII) DEVICE NUMBERH BLT BADSYN  CMPB 2(R0),#'7B BGT BADSYN,8FIND: BIC #60,2(R0) ;ASCII NUMBER OK, CHANGE IT TO OCTAL$ MOV .CRTSK,R1 ;MY ATL ADDRESS -> R1' MOV A.TI(R1),R1 ;GET MY TI PUD ADDRESS9 MOV .PUDBA,R2 ;SET UP TO SCAN PUD FOR NEW DEFAULT DEVICE0,CKPUD: CMP (R2),(R0) ;DO ASCII NAMES MATCH ? BNE NOMAT ;BR IF NOT8 CMPB 2(R2),2(R0) ;NAMES MATCH, HOW 'BOUT UNIT NUMBERS ? BNE NOMAT ;NO NO MATCH1 ;R2 NOW POINTS TO PUD OF DEVICE GUY AT TTY WANTS  MOV R2,R5 ;PUD POINTER -> R5810$: MOV R5,U.LBH(R1) ;CHANGE DEFAULT DEVICE PUD POINTER BR SCRAM ;AND SCRAMD;I;62NOMAT: ADD #U.SZ,R2 ;BUMP PUD POINTER TO NEXT PUD) CMP R2,.PUDEA ;ARE WE STILL IN THE PUD ?1$ BHIS BAD ;NO, COULDN'T FIN00:ˈ;ψ<шˆ !sD DEVICE% BR CKPUD ;YES, TRY FOR MATCH AGAINU .PAGE .SBTTL DECODE VOLUMN NAME6BADSYN: MOV #NAMTAB,R4 ;GET NAME TABLE POINTER INTO R4REGO: CLR R1 ;FOR CAT5 * CALL $CAT5 ;CONVERT 1ST THREE CHARACTERS CMP R1,(R4) ;NAMES MATCH ? BNE NEXT ;BR IF NOT  CMP R2,#15 ;TERMINATOR ? BEQ OK: CMP R2,#33 ;OR ESC ? BEQ OK  CLR R1 ;FOR CAT5+ CALL $CAT5 ;CONVERT NEXT THREE CHARACTERS. CMP R1,2(R4) ;NAMES MATCH ? BNE NEXT ;BR IF NOT; CMP R2,#15 ;TERMINATOR ? BEQ OK  CMP R2,#33 ;OR ESC ? BEQ OKK CLR R1 ;FOR CAT5* CALL $CAT5 ;CONVERT 3RD THREE CHARACTERS CMP R1,4(R4) ;NAMES MATCH ? BNE NEXT ;BR IF NOTI CMP R2,#15 ;TERMINATOR ? BEQ OKL CMP R2,#33 ;OR ESC ? BEQ OKC CLR R1 ;FOR CAT5+ CALL $CAT5 ;CONVERT LAST THREE CHARACTERSR CMP R1,6(R4) ;NAMES MATCH ? BEQ OK ;BR IF OK%NEXT: ADD #14,R4 ;BUMP TO NEXT ENTRYL3 MOV #GETMCR+G.MCRB+4,R0 ;RESET R0 TO START OF NAME4 TST (R4) ;END OF TABLE ? BEQ BAD ;BR IF SO, BR REGO ;ELSE SEARCH AGAIN0OK: MOV R4,R0 ;POINT TO NEW ASCII DEVICE STRING ADD #10,R0T JMP FIND ;AND FIND DEVICE PUD'BAD: DIR$ #SYNBAD ;REPORT SYNTAX ERROR;$SCRAM: DIR$ #EXITPG ;EXIT, CPU LEFT;B;O .PAGE .SBTTL DIRECTIVES AND DATA;R";DIRECTIVE TO GET MCR COMMAND LINE+GETMCR: GMCR$ ;GET MCR, (INCLUDES BUFFER)S;T;?;DIRECTIVE TO REPORT BAD SYNTAX1;42SYNBAD: QIOW$ IO.WVB,5,1,,IOST,,; ;ERROR MESSAGE+SYNMES: .ASCII <15>/***SDV ---SYNTAX ERROR/B SYNLEN=.-SYNMES .EVEN;RIOST: .WORD 0,0 ;R;EXIT DIRECTIVEA EXITPG: EXIT$I;.;TABLE OF VOLUME NAMES WITH EQUIVALENT DEVICES;:NAMTAB: .RAD50 /MRH/ .RAD50 /V62/ .WORD 0,0 .ASCII /DP1:/ .RAD50 /IAS/O .RAD50 /V31/T .WORD 0,0 .ASCII /DR0:/ .RAD50 /SYS/E .RAD50 /TWO/I .WORD 0,0 .ASCII /DR2:/ .RAD50 /IAS/F .RAD50 /UPD/D .WORD 0,0 .ASCII /DR1:/ .RAD50 /CAT/ .RAD50 /CHA/1 .RAD50 /LL/ .WORD 0 .ASCII /DR3:/! .WORD 0 ;END OF TABLE INDICATOR- .END STARTR/B SYNLEN=.-SYNMES .EVEN;RIOST: .WORD 0,0 ;RjwTOD:2@ @8@@ @9x@Q@@@ ( eA;Z8A4Z0 :007E0A"q" dh @8lQ~ |@e 8 L $ ( % t    t      t e   ew`. 9x09xH9x`9xn V)V V-V h ***SDV ---SYNTAX ERROR8:2 hH3T@DP1:{8ǎDR0:zDR2:{8ąDR1:LDR3:eA;Z8A4Z0 :007E0A"q" dh @8lQ~ |@e 8 L $ ( % t    t      t e   ew`. 9x09xH9x`9xn V)V V-V  .TITLE SETDEF .IDENT /MRH001/ .SBTTL INTRODUCTION8;PROGRAM SUPPORTING MRMC VARIABLE DEFAULT DEVICE PACKAGE;<;PURPOSE OF PROGRAM IS TO CHANGE THE 'DEFAULT DEVICE' OF THE;TERMINAL RUNNING THE PROGRAM;;CALLING SEQUENCE (FOR EXAMPLE); ;MCR>SDV SM:;D;WOULD CHANGE THE 'DEFAULT DEVICE PUD POINTER', (LOCATED IN LOCATIONE;U.LBH OF THE PUD FOR THE TT IN QUESTION) TO POINT TO THE PUD FOR THE!;DEVICE NAMED IN THE COMMAND LINE;G;DUE TO THE SIMPLICITY OF THE COMMAND, NO INDIRECT LEVELS ARE SUPPORTEDF;AUTHOR F.BORGER; DEPT. OF MEDICAL PHYSICS; MICHAEL REESE MEDICAL CENTER ; MARCH, 1976C;E .PAGE .SBTTL DECODE DEVICE NAME .MCALL GMCR$,QIOW$,EXIT$,DIR$)START: DIR$ #GETMCR ;GETMCR COMMAND LINEG- MOV #GETMCR+G.MCRB,R0 ;START OF BUFFER -> R0 ADD #4,R0 ;BUMP PAST 'SDV 'C) CMPB (R0),#'A ;CHECK FOR ASCII CHARACTERH! BLT BADSYN ;WOOPS, SYNTAX ERROR 7 CMPB (R0),#'Z ;I DON'T THINK I NEED TO COMMENT THIS !!D BGT BADSYND CMPB 1(R0),#'AI BLT BADSYNM CMPB 1(R0),#'ZL B00<ӈ=وň9ƈ:Lj*GT BADSYNP1 CMPB 2(R0),#15 ;TERMINATOR (IMPLYING DEVICE 0) ?S BEQ 2$ ;BR IF YESI6 CMPB 2(R0),#33 ;ALT MODE TERMINATOR (ALSO DEV ZERO) ? BEQ 2$ ;BR IF YESM& CMPB 2(R0),#': ;DEVICE NUMBER A ':' ? BNE 1$ ;BR IF NOTN22$: MOV #60,2(R0) ;IF SO CHANGE IT TO AN ASCII '0'/1$: CMPB 2(R0),#'0 ;CHECK (ASCII) DEVICE NUMBERH BLT BADSYN  CMPB 2(R0),#'7B BGT BADSYN,8FIND: BIC #60,2(R0) ;ASCII NUMBER OK, CHANGE IT TO OCTAL$ MOV .CRTSK,R1 ;MY ATL ADDRESS -> R1' MOV A.TI(R1),R1 ;GET MY TI PUD ADDRESS9 MOV .PUDBA,R2 ;SET UP TO SCAN PUD FOR NEW DEFAULT DEVICE0,CKPUD: CMP (R2),(R0) ;DO ASCII NAMES MATCH ? BNE NOMAT ;BR IF NOT8 CMPB 2(R2),2(R0) ;NAMES MATCH, HOW 'BOUT UNIT NUMBERS ? BNE NOMAT ;NO NO MATCH1 ;R2 NOW POINTS TO PUD OF DEVICE GUY AT TTY WANTS  MOV R2,R5 ;PUD POINTER -> R5810$: MOV R5,U.LBH(R1) ;CHANGE DEFAULT DEVICE PUD POINTER BR SCRAM ;AND SCRAMD2NOMAT: ADD #U.SZ,R2 ;BUMP PUD POINTER TO NEXT PUD) CMP R2,.PUDEA ;ARE WE STILL IN THE PUD ?V$ BHIS BAD ;NO, COULDN'T FIND DEVICE% BR CKPUD ;YES, TRY FOR MATCH AGAINN D .PAGE .SBTTL DECODE VOLUMN NAME6BADSYN: MOV #NAMTAB,R4 ;GET NAME TABLE POINTER INTO R4REGO: CLR R1 ;FOR CAT5 * CALL $CAT5 ;CONVERT 1ST THREE CHARACTERS CMP R1,(R4) ;NAMES MATCH ? BNE NEXT ;BR IF NOTA CMP R2,#15 ;TERMINATOR ? BEQ OK CMP R2,#33 ;OR ESC ? BEQ OKA CLR R1 ;FOR CAT5+ CALL $CAT5 ;CONVERT NEXT THREE CHARACTERSR CMP R1,2(R4) ;NAMES MATCH ? BNE NEXT ;BR IF NOT  CMP R2,#15 ;TERMINATOR ? BEQ OKO CMP R2,#33 ;OR ESC ? BEQ OK  CLR R1 ;FOR CAT5* CALL $CAT5 ;CONVERT 3RD THREE CHARACTERS CMP R1,4(R4) ;NAMES MATCH ? BNE NEXT ;BR IF NOTI CMP R2,#15 ;TERMINATOR ? BEQ OKL CMP R2,#33 ;OR ESC ? BEQ OKC CLR R1 ;FOR CAT5+ CALL $CAT5 ;CONVERT LAST THREE CHARACTERSR CMP R1,6(R4) ;NAMES MATCH ? BEQ OK ;BR IF OK%NEXT: ADD #14,R4 ;BUMP TO NEXT ENTRYL3 MOV #GETMCR+G.MCRB+4,R0 ;RESET R0 TO START OF NAME4 TST (R4) ;END OF TABLE ? BEQ BAD ;BR IF SO, BR REGO ;ELSE SEARCH AGAIN0OK: MOV R4,R0 ;POINT TO NEW ASCII DEVICE STRING ADD #10,R0T JMP FIND ;AND FIND DEVICE PUD'BAD: DIR$ #SYNBAD ;REPORT SYNTAX ERROR;$SCRAM: DIR$ #EXITPG ;EXIT, CPU LEFT;B;O  .PAGE .SBTTL DIRECTIVES AND DATAR; ";DIRECTIVE TO GET MCR COMMAND LINE+GETMCR: GMCR$ ;GET MCR, (INCLUDES BUFFER)T;?;B;DIRECTIVE TO REPORT BAD SYNTAX4;B2SYNBAD: QIOW$ IO.WVB,5,1,,IOST,,;T;ERROR MESSAGE+SYNMES: .ASCII <15>/***SDV ---SYNTAX ERROR/F SYNLEN=.-SYNMES .EVEN;AIOST: .WORD 0,0R;;;EXIT DIRECTIVEI EXITPG: EXIT$;D.;TABLE OF VOLUME NAMES WITH EQUIVALENT DEVICES;RNAMTAB: .RAD50 /MRH/ .RAD50 /V62/A .WORD 0,0 .ASCII /DP1:/ .RAD50 /IAS/ .RAD50 /V31/T .WORD 0,0 .ASCII /DR0:/ .RAD50 /SYS/E .RAD50 /TWO/I .WORD 0,0 .ASCII /DR2:/ .RAD50 /IAS/F .RAD50 /UPD/D .WORD 0,0 .ASCII /DR1:/ .RAD50 /CAT/ .RAD50 /CHA/1 .RAD50 /LL/ .WORD 0 .ASCII /DR3:/! .WORD 0 ;END OF TABLE INDICATOR- .END STARTR/F SYNLEN=.-SYNMES .EVEN;AIOST: .WORD 0,0R;;|vw (U @`&vw DRSYSYSYSYTICL00=ۈ>ވшˆ !s@TO@@@````*SYSYSYSYTICL1DFeA;Z8A4Z0 :007E0Aވ"q,@e4 n8 0L $ ( % t    t      t e J ew`)  ***SDV ---SYNTAX ERROR3T@DP1:{8ǎDR0:zDR2:{8ąDR1:LDR3:w ](@f ťZ#ťAť9ť0ť$ ť  ť.@KqAa$&f P .IDENT /V04/ ;**NEW**M .TITLE RSX11D -- MCR FUNCTION TASKS ;**-1P .SBTTL "SET FUNCTION ;**NEW** .NLIST BEX;;N;;Q;R;;?; COPYRIGHT 1974, DIGITAL EQUIPMENT CORP., MAYNARD, MA 01754.R;S;O?; THE MATERIAL INCLUDED IN THIS FUNCTIONAL SPECIFICATION,M?; INCLUDING BUT NOT LIMITED TO INSTRUCTION TIMES AND OPERATINGR?; SPEEDS, IS FOR INFORMATION PURPOSES ONLY. ALL SUCH MATERIAL ?; IS SUBJECT TO CHANGE WITHOUT NOTICE. CONSEQUENTLY, DEC MAKESU4; NO CLAIM AND SHALL NOT BE LIABLE FOR ITS ACCURACY.;.;T?; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF 9; ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC. ;4;I?; UNLESS OTHERWISE SPECIFIED, THE TERMS "RSX" AND "RSX-11"R; IMPLY "RSX-11D".; ;N;O%; MODULE: "SET" MCR FUNCTION TASKOR; VERSION: V03 ;**NEW**H; AUTHOR: J. MASSE ;**-1; DATE: 10 JAN 74O;A; EDIT AUTHOR DATE REASONR; ---- ------ ---- ------ ; M CONNORS 10-MAY-74; M CONNORS 14-JUN-74B; H A NICHOLS 22-JUL-74E; H A NICHOLS 30-SEP-74T; 001 G L WOLFENDALE 25-APR-75; 002 ELLEN SIMICH 8-JUL-75E*; 003 JOHN HARPER 12-MAR-76 ADD SET /WIDTH,; 004 RICHARD NEWLAND 07-MAY-76 ADD SET /SWR2; 005 JOHN HARPER 23-SEP-76 REMOVE SET /,; 006 JOHN HARPER 23-SEP-76 CHANGE SET /WCHK6; 007 BOB DRAY 06-FEB-78 ADD SET /CLI, REMOVE SET /INB4; 008 JOHN HARPER 28-MAR-78 CHANGES FOR NEW SPOOLING;T; ; THIS MODULE CONTAINS:-; .; 1 -- CODE TO SERVICE THE "SET" MCR FUNCTION ;J;+; MCR FUNCTION -- SETL;E'; TASK NAME "...SET" TO SET KEYWORD(S).FW; THIS TASK CAN BE REQUESTED ONLY FROM A PRIVILEGED TERMINAL ;**NEW**H; ; B; THE FIRST LINE OF THE COMMAND INPUT FOR ANY MCR FUNCTION IS READE; BY THE RESIDENT MCR TASK ("...MCR"). FOR THE "SET" FUNCTION, THERE 5; IS ONLY ONE LINE OF COMMAND INPUT, WHOSE SYNTAX IS: ; ; SET::="SET";O-; ::=[]"/"/;-3; ::="="; ["/"];; ::=/N; ::=/;;H;T9; THE FOLLOWING KEYWORDS ARE IMPLEMENTED IN THIS VERSION: ; ,; 1. ::="UIC="["/"];.; ::="["",""]";; ::=1-377;; ::=00>وň9ƈ:Lj*1-377;;I4; 2. ::="TMO="["/"];; ::=1-32767.;U;I;LJ; 4. ::="="":"[::="LA30S"/"LA30P"/"KSR33"/"VT05";0; "SLV"/"-SLV"/"PRV"/"-PRV";8; ::=; J; 5. ::="="":"[::="SP"/"-SP"7; ::=J; ::=(ANY TWO CHARACTER ASCII STRING APPEARING IN THE PUD; ::=1-77;K+; 6. ::="="R; ::="CAC"T2; ::="ON0", "0N1", "OF0", "OF1", 1-32767.; ; ; ; INPUTS:/2; MCR COMMAND LINE AS READ BY MCR DISPATCHER TASK.;V ; OUTPUTS:9; THE SPECIFIED KEYWORDS ARE RESET TO THE NEW PARAMETERS. ;I;T;-;< I;D;G'; M A C R O L I B R A R Y C A L L S ; ;V8 .MCALL CALL,RETURN,DIR$,EXIT$S,GMCR$,WTSE$S,QIO$,QIOW$SP .MCALL QIOW$ ;**NEW**;:;-;;;.;K; L O C A L M A C R O S";L;R!; MACRO TO GENERATE MESSAGE DPB'S ;L; ARG1 = MESSAGE LOCATION!; ARG2 = MESSAGE SIZE (IN BYTES)S;0; MESSAGE IS IN ASCII -- E.G., .ASCII /MESSAGE/;V;  .MACRO .QIO ARG1,ARG2/ QIO$ FNC,LUN,EFN,PRI,IOST,AST, .ENDM .QIOI;D;G; ; ; ; ; ; L O C A L S Y M B O L SV;.;LSPACE =40 ;SPACECR =15 ;CARRIAGE RETURNWALTMOD =33 ;ALT MODETAB =11 ;TAB#FNC =400 ;FUNCTION CODE FOR WRITE*LUN =2 ;LOGICAL UNIT NO.EFN =1 ;EVENT FLAG NO.PRI =0 ;PRIORITY NO."AST =0 ;I/O DONE AST ENTRY POINT CCW =40 ;CARRIAGE CONTROL WORD .PAGE;(;B; L O C A L D A T AS; ;I; DPB'S & ERROR MESSAGES;; MCRLN: GMCR$;A;,Q .EVEN ;**NEW** UPRIVD: QIOW$ IO.WVB,6,1,,,, ;**NEW**ATPRVMS: .ASCII /SET -- ILLEGAL FUNCTION FOR NON PRIVILEGED TERMINAL/ ;**NEW**XPRVLN=.-PRVMS ;**NEW**Q .EVEN ;**NEW** ; MCRMSG: .QIO MCRBFF,MCRSZ'5MCRBFF: .ASCII /SET -- CAN'T READ MCR COMMAND BUFFER/NMCRSZ=.-MCRBFF .EVEN; ; ; SYNMSG: .QIO SYNMS,SYNSZ#SYNMS: .ASCII /SET -- SYNTAX ERROR/, SYNSZ=.-SYNMSL .EVEN; ; ; TTYMES: .QIO TTY,TTYLEN*6TTY: .ASCII /SET -- PLEASE USE 'TER' COMMAND/ ;++005 TTYLEN=.-TTY; 8DDVNA: .ASCII /SET -- PARAMETER ERROR - BAD DEVICE NAME/ DVLN=.-DDVNA .EVEN ;++007; DVTMSG: .QIO DVTTA,DVTTL ;++007EDVTTA: .ASCII /SET -- SPECIFIED DEVICE IS NOT A TERMINAL TYPE DEVICE/G DVTTL=.-DVTTAC;'CMGMS: .ASCII /SET -- SPOOLING NOT SUPPORTED FOR THIS DEVICE/ ;++003B MGLN=.-MGMS ?NWCKMS: .ASCII /SPECIFIED DEVICE DOES NOT SUPPORT WRITE CHECK./ENWCKLN=.-NWCKMSYHWIDERR: .ASCII /SET WIDTH ONLY VALID FOR RECORD-ORIENTED DEVICES/ ;++003WIDERN=.-WIDERRM .EVEN0MACMSG: .QIO MACMES,MACSZ ;MACHINE TYPE MES. 002VALMSG: .QIO VALMES,VALSZ ;0028MACMES: .ASCII /ILLEGAL FUNCTION FOR MACHINE TYPE./ ;002MACSZ=.-MACMES*VALMES: .ASCII /INVALID CACHE VALUE./ ;002VALSZ=.-VALMES;I SWRMES: .ASCII /SWR = / ; +++004 SWRVAL: .ASCII /177777/ ; +++004SWRSZ=.-SWRMES ; +++004 .EVEN; !CLIMSG: .QIO CLIMES,CLISZ ;++007D(CLIMES: .ASCII /SET -- ILLEGAL CLI NAME/CLISZ=.-CLIMES .EVEN; !LOGMSG: .QIO LOGMES,LOGSZ ;++007D*LOGMES: .ASCII /SET -- TERMINAL LOGGED IN/LOGSZ=.-LOGMES .EVENSPRDQ: .QIO SPRDM,SPRDL2SPRDM: .ASCII /SET -- DEVICE ILLEGALLY REDIRECTED/ SPRDL=.-SPRDMR .EVENSPNSPQ: .QIO SPNSPM,SPNSPS3SPNSPM: .ASCII /SET -- DEVICE 'SP0:' NOT IN SYSTEM/-SPNSPS=.-SPNSPMS .EVENSPNOTQ: .QIO SPNOTM,SPNOTS*SPNOTM: .ASCII /SET -- DEVICE NOT SPOOLED/SPNOTS=.-SPNOTM .EVENSPMNTQ: .QIO SPMNTM,SPMNTS.SPMNTM: .ASCII /SET -- DEVICE SP0: IS MOUNTED/SPMNTS=.-SPMNTMV .EVEN .PAGE;O;G; 00>ވшˆ !sMISC. CONSTANTS & DATA;A2KEYWRD: .WORD 0 ;EXIT FLAG -- 0=NO KEYWORDS FOUND#SETUIC: .WORD 0 ;UIC ASSEMBLY WORD:'KWNAME: .WORD 0 ;KEYWORD ASSEMBLY WORDE/DECNUM: .WORD 0 ;MULTIPLIER FOR NUMBER DECODERP IOST: .BLKW 2 ;I/O STATUS BLOCK)DEV: .WORD 0 ;DEVICE NAME FOR PUD SEARCH*UNIT: .WORD 0 ;UNIT NUMBER FOR PUD SEARCH .PAGE; ;D); DISPATCH TABLE FOR FIRST LEVEL KEYWORDSN;P#; EACH FIVE WORD ENTRY CONSISTS OF:C;/+; 1. THE ADDRESS OF AN ASCIZ KEYWORD STRINGT9; 2. THE ADDRESS OF CODE TO SERVICE THE SPECIFIED KEYWORDE/; 3-5 ADDITIONAL DATA FOR EACH KEYWORD, OR ZERO;U; ;RKWD: UICA,UICX,0,0,0 ;/UIC= TMOA,TMOX,0,0,0 ;/TMO= SPAS,SPAX,-1,UC.OSP,0 ;/SP= MSPA,SPAX,0,UC.OSP,0 ;/-SP=# LA30S,SETCHA,20000,1,72. ;/LA30S=D" VT05,SETCHA,50010,0,80. ;/VT05= LA36,SETCHA,40100,1,110.O" VT50,SETCHA,50010,0,80. ;/VT50=# KSR33,SETCHA,4000,0,72. ;/KSR33= SLV,PRVSLV,-1,UT.SL,0 ;/SLV=T NSLV,PRVSLV,0,UT.SL,0 ;/-SLV= PRV,PRVSLV,-1,UT.PR,0 ;/PRV=A NPRV,PRVSLV,0,UT.PR,0 ;/-PRV=* WCHK,DKWCHK,-1,U2.WCK,0 ;WCHK= ;++006+ NWCHK,DKWCHK,0,U2.WCK,0 ;/-WCHK= ;++006I ;++007 /INB DELETEDM" CACHE,SETCAC,0,0,0 ;++002/++003 WIDTH,SETWID,0,0,0 ;++003" SWR,SETSWR,0,0,0 ; +++004 /SWR= CLIA,SETCLI,0,0,0 ;++007C 0 ;*** END OF TABLE *** .PAGE;1;1;0); ASCIZ STRINGS FOR FIRST LEVEL KEYWORDS:R;S;H;0UICA: .ASCIZ /UIC/TMOA: .ASCIZ /TMO/PWDA: .ASCIZ /PWD/SPAS: .ASCIZ /SP/ MSPA: .ASCIZ /-SP/LA30S: .ASCIZ /LA30S/LA30P: .ASCIZ /LA30P/ VT05: .ASCIZ /VT05/KVT50: .ASCIZ/VT50/LA36: .ASCIZ/LA36/KSR33: .ASCIZ /KSR33/CSLV: .ASCIZ /SLV/ NSLV: .ASCIZ /-SLV/PRV: .ASCIZ /PRV/ NPRV: .ASCIZ /-PRV/HWCHK: .ASCIZ /WCHK/3NWCHK: .ASCIZ /-WCHK/  ;++007 3 LINES DELETED0CACHE: .ASCIZ /CAC/ ;002NWIDTH: .ASCIZ /WIDTH/ ;++003SWR: .ASCIZ /SWR/ ; +++004CLIA: .ASCIZ /CLI/ ;++007 .EVEN .PAGE (SET: DIR$ #MCRLN ;READ MCR COMMAND LINE BCC 10$ ;FAILURE IF CARRY SETS JMP MCRER ;PRINT ERROR MESSAGEX10$: ;**NEW**F CALL CHKPRV ;CHECK ACCESS PRIVILEDGES ;**NEW**M BCC PRIVOK ;**NEW**+N DIR$ #PRIVD ;**NEW**P EXIT$S ;**NEW**XPRIVOK: ;**NEW**E CLR KEYWRD ;(INDICATES NO KEYWORD FOUND) ;**NEW** F MOV #MCRLN+2,R2 ;DECODE MCR COMMAND LINE -- ;**-1% ;SET UP R2 TO INCREMENT THRU LINEB# ;SKIP TO FIRST BREACK CHARACTER 20$:% MOVB (R2)+,R1 ;PICKUP NEXT CHARACTER  CMPB #SPACE,R1 ;A BREAK CHAR?$ BEQ SCAN ;YES -- GO DECODE KEYWORD CMPB #TAB,R1 ;NO -- TRY AGAIN % BEQ SCAN ;EUREKA! -- DECODE KEYWORD  CMPB #CR,R1 ;NULL LINE? " BEQ SYN ;YES -- SYNTAX ERROR *** CMPB #ALTMOD,R1 BEQ SYN2 BR 20$ ;CONTINUE UNTIL A BREAK CHARACTER IS SEENSCAN: - MOVB (R2)+,R1 ;SCAN FOR SPACE, TAB, OR SLASHM CMP #SPACE,R1 ;IS IT A SPACE?$ BEQ SCAN ;YES -- DO NEXT CHARACTER CMP #TAB,R1 ;NO -- IS IT TAB?T$ BEQ SCAN ;YES -- DO NEXT CHARACTER CMP #'/,R1 ;NO -- IS IT SLASH? BEQ 20$ ;YES -- DECODE KEYWORD CMP #CR,R1 ;NO -- IS IT CR?C' BEQ 22$ ;YES -- CHECK IF SYNTAX ERROR & CMP #ALTMOD,R1 ;NO -- IS IT ALT MODE?' BEQ 22$ ;YES -- CHECK IF SYNTAX ERRORX' BR SCAN ;NO -- CONTINUE SCANNING LINEB;0;;;T ; KEYWORD FOUND -- VALIDATE NAME;220$: MOV #KWD,R0 ;ADDRESS OF DISPATCH TABLE IN R0# INC KEYWRD ;SET KEYWORD SEEN FLAGB; MOV #8.,R4 ;NUMBER OF WORDS TO SKIP IF NO MATCH ON STRINGT% CALL DISP ;CALL DISPATCHING ROUTINEA# BR SCAN ;GO TO DO ANOTHER KEYWORD?;B22$: JMP LTFND ;BRANCH AIDSSYN: JMP SYNERRO; $; UIC KEYWORD NAME FOUND -- VALIDATE;N'UICX: MOVB (R2)+,R1 ;YES -- "UIC" FOUNDA/ CMP #'[,R1 ;IS NEXT CHARACTER A LEFT BRACKET?X BNE SYN ;NO -- SYNTAX ERRORN, MOV #8.,DECNUM ;YES -- SET FOR OCTAL 00>وň9ƈ:Lj*NUMBER CALL GETNUM ;DECODE GROUP NO.  TST R1 ;IS IT ZERO?B BEQ SYN ;YES -- SYNTAX ERROR# BIT #177400,R1 ;NO -- IS IT LEGAL?O BNE SYN ;NO -- SYNTAX ERRORS( MOVB R1,SETUIC+1 ;YES -- SAVE GROUP NO.$ CMP R5,#', ;IS TERMINATOR A COMMA? BNE SYN ;NO -- SYNTAX ERRORC# CALL GETNUM ;YES -- GET OWNER NO.E TST R1 ;IS IT ZERO?I BEQ SYN ;YES -- SYNTAX ERROR# BIT #177400,R1 ;NO -- IS IT LEGAL?N BNE SYN ;NO -- SYNTAX ERROR& MOVB R1,SETUIC ;YES -- SAVE OWNER NO., CMP #'],R5 ;IS TERMINATOR A RIGHT BRACKET? BNE SYN ;NO -- SYNTAX ERRORR% CALL TRMCHK ;YES -- CHECK NEXT CHART BCS SYN ;NO -- SYNTAX ERROR-$ MOV .CRTSK,R3 ;OK -- PICKUP OUR ATL' MOV A.TI(R3),R3 ;PICKUP OUR TI POINTERG, MOV SETUIC,U.UI(R3) ;SETUP UIC IN PUD ENTRY RETURNNR; THIS SUBROUTINE DETERMINES WHETHER THE TI UNDER WHICH THIS ;**NEW**V; TASK IS RUNNING IS PRIVILEGED. IF TERMINAL IS PRIVILEGED ;**NEW**W; ROUTINE RETURNS WITH C-BIT CLEAR. IF TERMINAL IS NOT PRIVILEGED ;**NEW**HX; C-BIT IS SET. ;**NEW**XCHKPRV: CLC ;**NEW**M MOV .CRTSK,R5 ;**NEW**SI MOV A.TI(R5),R5 ;PUD FOR THIS TI ;**NEW**M BIT #UT.PR,U.TF(R5) ;**NEW***M BNE 10$ ;**NEW** Q SEC ;**NEW** U10$: RETURN ;**NEW** ; ; ; ; ,; TMO KEYWORD FOUND -- VALIDATE MCR TIMEOUT; -TMOX: MOV #10.,DECNUM ;SET FOR DECIMAL NUMBERT! CALL GETNUM ;DECODE MCR TIMEOUT ! TST R1 ;MUST BE 1-77777 SECONDST$ BLE SYN ;ERROR IF NEGATIVE OR ZERO TSTB -(R2) ;BACK UP POINTERE! CALL TRMCHK ;CHECK FOR VALID BC " BCS SYN ;SYNTAX ERROR IF INVALID# MOV R1,.MCRTO ;SET NEW MCR TIMEOUT  RETURN ;CONTINUE SCAN; ; ; ; 5; ROUTINE TO SET OR CLEAR THE READ AFTER WRITE CHECK ; CHARACTERISTICS OF AN RK. DKWCHK:; MOV R0,R410$: CALL PUDSRT/ BITB #UC.DIR,U.C1(R3) ;++006 DIRECTORY DEVICE?X) BEQ 30$ ;++006 ILLEGAL FUNCTION IF NOT MOV R4,R0 TST (R0)+ BEQ 20$ BIS (R0)+,U.C2(R3)- BR 10$O20$: BIC (R0)+,U.C2(R3)  BR 10$O)30$: MOV #TTYMES,R0 ;ISSUE ERROR MESSAGE.L MOV #NWCKMS,Q.IOPL(R0)D MOV #NWCKLN,Q.IOPL+2(R0)O DIR$ R0 JMP WAIT ;WAIT AND EXIT. .PAGE; -; GENERAL DISPATCH ROUTINE FOR ASCIZ KEYWORDSO;N;O/DISP: MOV R2,R1 ;SAVE POINTER TO USER'S STRINGR10$:= MOV (R0)+,R3 ;PICKUP ADDRESS OF NEXT KEYWORD TEMPLATE STRING 3 BEQ SYNEXX ;END OF TABLE -- SCREAM 'SYNTAX ERROR' / MOV R1,R2 ;PICKUP ADDRESS OF START OF KEYWORDT20$:+ MOVB (R3)+,R5 ;PICKUP NEXT ASCIZ CHARACTER03 BEQ 30$ ;END OF STRING -- GO CHECK FOR TERMINATER ( CMPB R5,(R2)+ ;DO THE CHARACTERS MATCH?* BEQ 20$ ;YES -- CHECK THE NEXT CHARACTER< ADD R4,R0 ;NO -- STEP OVER OTHER ENTRIES IN DISPATCH TABLE BR 10$ ;AND CHECK NEXT ENTRY;730$: CMPB #'=,@R2 ;IS THE TERMINATING CHARACTER A '='?M, BEQ 40$ ;YES -- DON'T CHECK THE TERMINATER% CALL TRMCHK ;NO -- CHECK TERMINATERB7 BCS SYNEXX ;'C' SET SAYS USER HAD TOO MANY CHARACTERS 40$:. MOV (R0)+,R1 ;PICKUP ADDRESS OF ROUTINE IN R1& TSTB (R2)+ ;SKIP OVER TERM CHARACTER+ CALL @R1 ;DISPATCH TO APPROPRIATE ROUTINE21 RETURN ;AND CONTINUE TO SCAN FOR MORE KEYWORDSCSYNEXX: JMP SYNERR .PAGE;+-; THIS ROUTINE SERVICES THE CACHE KEYWORD. ITBA; PERFORMS ONE OF THREE FUNCTIONS. IT WILL SET THE DEFAULT NUMBERT7; OF ERRORS, TURN EITHER GROUP OF THE CACHE ON OR TURN C ; EITHER GROUP OF THE CACHE OFF.;-)SETCAC: BITB #ON.70,.UMR22+1 ;ON A 70 002A BEQ ERREX1 ;NO 002A) CMPB @R2,#71 ;IS IT A NUMERIC VALUE 002S BLOS 10$ ;YES 002! CMPB (R2)+,#'O ;MUST BR AN O 002R BNE ERREXT ;NO 002T CMPB @R2,#'N ;N OR F 002R BEQ 5$ ;N 002 CMPB (R2)+,#'F ;REALLY F 002E BNE ERREXT ;NO 002 CMPB @R2,#600>ވшˆ !s0 ;GROUP 0 OR 1 002 BNE 15$ ;GROUP 0NE 002 BIS #44,CR.70 ;TURN IT OFF 002L JMP EXT "15$: CMPB @R2,#61 ;REALLY ONE 002 BNE ERREXT ;NO 002N BIS #30,CR.70 ;TURN IT OFF 002  JMP EXT%5$: CMPB 1(R2),#60 ;GROUP 0 OR 1 002A BNE 20$ ;ONE 002 BIC #44,CR.70 ;ZERO TURN ON 002 JMP EXT#20$: CMPB 1(R2),#61 ;REALLY ONE 002P BNE ERREXT ;NO 002  BIC #30,CR.70 ;YES TURN ON 002C JMP EXT(10$: MOVB (R2)+,R1 ;SCAN UNTIL BREAK 002 CMP #SPACE,R1 ;SPACE 002E BEQ 25$ ;YES 002C CMP R1,#TAB ;TAB 0021 BEQ 25$ ;YES 002P CMP R1,#CR ;CR 0020 BEQ 25$ ;YES 002J CMP #'/,R1 ;/ 002 BEQ 25$ ;YES 0022 CMP R1,#ALTMOD ;ALT 002B BNE 10$ ;NO 002&25$: MOV R2,R0 ;SAVE LINE POINTER 002 CLR R4 ;SET UP TO CONVERT 002O MOV #1,R1' TSTB -(R0) ;BACKUP TO FIRST DIGIT 002'30$: CMPB -(R0),#'= ;NO MORE DIGITS 002E BEQ 35$ ;YES  MOVB @R0,R3 ;DIGIT 002O! BIC #60,R3 ;CLEAR OFF ASCII 0021 MUL R1,R3 ;CORRECT PLACE 002$ MUL #10.,R1 ;NEXT DIGITS PLACE 002 ADD R3,R4 ;TOTAL VALUE 002 BR 30$ ;NO 002035$: TST R4 ;TOO LARGE 002B BLE ERREX2 ;YES 002# MOV R4,.CACHE ;RESET COUNT 0020 EXT: RETURNA$ERREXT: JMP SYNERR ;PRINT ERROR 002ERREX1: JMP MACERR ;002ERREX2: JMP VALERR ;002;P,; CODE TO SET TERMINAL CHARACTERISTICS TYPES;P:SETCHA: DIR$ #TTYMES ;++011 SAY THE COMMAND HAS GONE AWAY JMP WAIT ;++011 AND GO AWAY, ;++002; 16 LINES DELETED;A=; THIS ROUTINE SERVICES THE 'CLI' KEYWORD. IT ALLOCATES A CLI G; NAME TO ONE OR MORE TERMINALS. THE SYNTAX IS SET /CLI:TT1:TT2:...:TTNF; 'CLI' IS A ONE TO THREE LETTER CLI NAME OR 'DEFAULT' FOR THE DEFAULTD; CLI. THE SPECIFIED TERMINALS MUST BE NOT LOGGED-IN AND WILL BE SET ; NON-SLAVED.E;--007;RSETCLI:  CMPB #'=,-(R2) ; CHECK FOR '='E BNE 60$ ; ERROR IF NOT INC R2 ; STEP TO CLI NAME # MOV R2,R0 ; REMEMBER WHERE WE ARE;P* MOV #3,R1 ; PREPARE TO SCAN FOR CLI NAME10$:$ CMPB (R2)+,#'$ ; FIRST DISALLOW '$' BEQ 70$ ; ERROR IF FOUND SOB R1,10$ ;;T: CALL $CAT5 ; GET THE NAME (N.B. R0=BUFFER POINTER, R1=0)+ SBC R0 ; IF NAME<3 CHARS, DEC THE POINTERM& MOV #1,R2 ; PREPARE TO CHECK FOR ':' CMP R1,#^RDEF ; IS NAME = 'DEF' BNE 20$ ; SKIP IF NOTT; # CLR R1 ; NAME WILL BE SET TO ZEROC4 MOV #5,R2 ; PREPARE TO SEARCH FOR END OF 'DEFAULT'20$: CMPB (R0)+,#': ;I BEQ 30$ ; BR IF FOUNDE SOB R2,20$ ;- BR 60$ ; ERROR IF NOT FOUND WITHIN 5 CHARS.A;30$: MOV R0,R2 ; BUFFER POINTER40$:" CALL PUDSR ; GET A TERMINAL SPEC) BIT #UC.TTY,U.C1(R3) ; IS IT A TERMINAL?N BNE 50$ ; BR IF IT IS=" CMP U.DN(R3),#"BA ; BUT IS IT BA? BNE 80$ ; ERROR IF NOT50$:! BITB #UT.LG,U.PR(R3) ; LOGGED INF BNE 90$ ; ERROR IF SO2& BICB #UT.SL,U.PR(R3) ; SET NON-SLAVED/ MOV R1,U.DACP(R3) ; SET TERMINAL'S DEFAULT CLIA$ BR 40$ ; LOOP FOR ANOTHER TERMINAL;)60$: JMP SYNERR ; SYNTAX ERRORE!70$: JMP CLIERR ; CLI NAME ERRORI!80$: JMP DVTERR ; NOT A TERMINAL090$: JMP LOGERR ; LOOGED IN ;:;C*; CODE TO SET SPOOL/NOSPOOL STATUS IN PUDS;U;(#SPAX: MOV R0,R4 ;SAVE R0 FOR LATER 10$:" CALL PUDSR ;GET NEXT PUD ADDRESS. CMP #"CR,U.DN(R3) ;IF DEVICE IS A CARD READER) BEQ 15$ ; BYPASS CHARACTERISTICS CHECK.O/ MOV U.C1(R3),R5 ;CHECK FOR CORRECT DEVICE TYPE BIC #^C,R5 CMP #UC.CCL+UC.REC,R5 BNE 30$ ;BRANCH IF NOT ALLOWED15$: MOV R4,R0 ;RESTORE R0  TST (R0)+ ;TEST SET/CLR FLAG BEQ 20$ ;BRANCH TO CLEAR7 MOV U.RP(R3),R4 ;++008 GET REDIRECT POINTER FOR DEVICE" CMP R4,R3 ;++008 NOT REDIRECTED? BEQ 17$ ;++008 J IF SO; BIT #UC.OSP,U.C1(R4) ;++008 IS TARGET DEV ALSO REDIRECTED?P" BEQ 40$ ;++008 J IF NOT, ILLEGAL(17$: MOV #"SP,R4 ;++008 SEARCH FOR SP0: CLR R5 ;++008 ...K CALL ..FDEV ;++008 FIND PUD  BCS 50$ ;++008 J IF NONE< MOV R5,U.RP(R3) ;++008 SET REDIRECT POINTER FOR SPOOLED DEV0 BIS #UC.OSP,U.C1(R3) ;++008 AND MARK IT SPOOLED# BR 10$ ;RETURN FOR ANOTHER DEVICE2; 020$: BIT #UC.OSP,U.C1(R3) ;++008 DEVICE SPOOLED?" BEQ 60$ ;++008 J IF NOT, ILLEGAL) MOV R3,R5 ;++008 FOLLOW THE REDIRECT...J CALL ..REDT 00>وň9ƈ:Lj*;++0081 BITB #CH.OFF,U.CH(R5) ;++008 TARGET DEV MOUNTED?Q( BEQ 70$ ;++008 J IF SO, CANNOT UNSPOOL. MOV U.RP(R3),R4 ;++008 GET IMMEDIATE REDIRECT% CMP U.DN(R4),#"SP ;++008 IS IT SP0:?B BNE 25$ ;++008 NOO TSTB U.UN(R4) ;++008 CHECK UNIT BNE 25$ ;++008 NOO6 MOV R3,U.RP(R3) ;++008 ELSE REDIRECT DEVICE TO ITSELF425$: BIC #UC.OSP,U.C1(R3) ;++008 CLEAR REDIRECT FLAG# BR 10$ ;RETURN FOR ANOTHER DEVICEE;(30$: MOV #TTYMES,R0 ;PRINT ERROR MESSAGE MOV #MGMS,Q.IOPL(R0)  MOV #MGLN,Q.IOPL+2(R0)T DIR$ R04 JMP WAIT ;WAIT FOR MESSAGE TO COMPLETE,EXIT SYSTEMB40$: DIR$ #SPRDQ ;++008 SAY CANNOT SET SPOOLED BECAUSE REDIRECTED JMP WAIT ;++008*50$: DIR$ #SPNSPQ ;++008 NO SP0 IN SYSTEM JMP WAIT ;++008T,60$: DIR$ #SPNOTQ ;++008 DEVICE NOT SPOOLED JMP WAIT ;++008P+70$: DIR$ #SPMNTQ ;++008 SP0 STILL MOUNTED5 JMP WAITO;U4; CODE TO SET PRIVILEGED/SLAVE BITS IN TERMINAL PUDS;A;H%PRVSLV: MOV R0,R4 ;SAVE R0 FOR LATERI10$:. CALL PUDSR ;FETCH THE NEXT PUD ADDRESS IN R3 MOV R4,R0 ;RESTORE R0J4 CALL DVTT ;CHECK TO BE SURE IT'S A TERMINAL DEVICE$ TST (R0)+ ;TEST THE SET/CLEAR FLAG BEQ 20$ ;BRANCH TO CLEAR BISB (R0)+,U.PR(R3) ;ELSE SET BR 10$ ;GET THE NEXT SPECM;J'20$: BICB (R0)+,U.PR(R3) ;CLEAR THE BIT0 BR 10$ ;AND GO GET ANOTHER;;;0.DVTT: BIT #UC.TTY,U.C1(R3);IS THIS A TERMINAL? BEQ 10$ ;NO -- TELL THE USER RETURN ;YES -- DON'T WORRYA;U(10$: MOV #TTYMES,R0 ;ISSUE ERROR MESSAGE MOV #DVTTA,Q.IOPL(R0) MOV #DVTTL,Q.IOPL+2(R0) DIR$ R0# JMP WAIT ;WAIT AND EXIT TO SYSTEMV;  ;++011 LINE DELETEDT;I .PAGE;++003;0; SET /WIDTH=LP0:120;L:; FOR EXAMPLE - SET WIDTH OF DEVICE IN PUD CHARACTERISTICS ; WORD 4. ;--003 E+SETWID: MOV R0,R4 ;++003 SAVE R0 FOR LATER $10$: CALL PUDSR ;++003 GET A DEVICE0 BIT #UC.REC,U.C1(R3) ;++003 RECORD TYPE DEVICE? BEQ 20$ ;++003 ERROR IF NOTH( MOV #10.,DECNUM ;++003 WIDTH IS DECIMAL# CALL GETNUM ;++003 READ THE WIDTHS+ MOV R1,U.C4(R3) ;++003 STORE IT IN THE PUDO) DEC R2 ;++003 BACK OFF THE LINE POINTERI% BR 10$ ;++003 AND TRY FOR SOME MOREE:20$: MOV #WIDERR,TTYMES+Q.IOPL ;++003 SET UP ERROR MESSAGE# MOV #WIDERN,TTYMES+Q.IOPL+2 ;++003C$ DIR$ #TTYMES ;++003 PRINT THE LINE+ JMP WAIT ;++003 AND WAIT FOR IT TO FINISH .PAGEC; +++004;+; SET /SWR=177777B; SET /SWR=SET:0:1:2; SET /SWR=CLR:13:14:15;Q; +++004;E; REGISTERS USED AS FOLLOWS:;+,; R0 = FLAG TO INDICATE SET OR CLR OPERATION+; R1 = RETURNED VALUE FROM 'GETNUM' ROUTINET"; R2 = INPUT STRING BUFFER POINTER!; R3 = MASK OF BITS TO SET OR CLR0; R4 = GENERAL REGISTER0; R5 = TERMINATOR RETURNED FROM 'GETNUM' ROUTINE;SSETSWR:V CALL TRMCHK ; TERMINATOR NOW? BCC 110$ ; YES: PRINT VALUE . CMPB (R2),#'0 ; IS FIRST CHAR AN OCTAL DIGIT? BLT 10$ ; NO CMPB (R2),#'7 ; MAYBE?7 BGT 10$ ; NO MOV #7,R4 ; SET DIGIT COUNT1 CLR R1 ; AND ZERO NUMBER4$:  MOVB (R2)+,R5 ; GET NEXT BYTE% CMPB R5,#'0 ; IS IT AN OCTAL DIGIT?1 BLT 6$ ; NOU CMPB R5,#'7 ; MAYBET BGT 6$ ; NOS, SUB #'0,R5 ; YES: CONVERT TO NUMERIC VALUE* ASH #3,R1 ; MULTIPLY PRESENT NUMBER BY 8 BCS 100$ ; OVERFLOWO" ADD R5,R1 ; AND ADD IN NEW DIGIT BCS 100$ ; OVERFLOWR! SOB R4,4$ ; MORE THAN 7 DIGITS?U BR 100$ ; YES: SYNTAX ERRORH6$:  DEC R2 ; BACK-UP POINTER CALL TRMCHK ; TERMINATOR OK? BCS 100$ ; NO# INC R2 ; YES: RESTORE POINTER / MOV R1,.SWSWR ; RESET SOFTWARE SWITCH REGISTERX BR 70$C10$:! MOV R2,R4 ; SAVE BUFFER POINTERT% CMPB (R2)+,#'S ; IS OPERATION 'SET'?T BNE 20$ ; NO CMPB (R2)+,#'E ; MAYBEO BNE 20$ ; NO CMPB (R2)+,#'T ; MAYBEE BNE 20$ ; NO/ MOV #1,R0 ; YES: SET OPERATION FLAG FOR 'SET'N BR 30$T20$:" MOV R4,R2 ; RESET BUFFER POINTER% CMPB (R2)+,#'C ; IS OPERATION 'CLR'?N BNE 100$ ; NO CMPB (R2)+,#'L ; MAYBER BNE 100$ ; NO  CMPB (R2)+,#'R ; MAYBE  BNE 100$ ; NO;, CLR R0 ; YES: SET OPERATION FLAG FOR 'CLR'30$:# CMPB (R2)+,#': ; IS NEXT CHAR ':'? BNE 100$ ; NOE2 MOV #10.,DECNUM ; SET FOR DECODING DECIMAL DIGITS& CLR R3 ; INITIALLY NO BITS TO CHANGE4000> ވшˆ !s$: CALL GETNUM ; GET NUMBER" CMPB R5,#': ; TERMINATED BY ':'? BEQ 50$ ; YEST DEC R2 ; BACK-UP POINTER4 CALL TRMCHK ; AND CHECK FOR OTHER VALID TERMINATOR BCS 100$ ; VALID TERMINATOR? INC R2 ; YES: RESTORE POINTER)50$:$ CMPB R1,#15. ; IS NUMBER 0 TO 15.? BGT 100$ ; NO: ERROR MOV #1,R4 ; SET BIT-0 & ASH R1,R4 ; AND MOVE TO BIT POSITION! BIS R4,R3 ; AND ADD TO BIT MASKB# CMPB R5,#': ; WAS TERMINATOR ':'?T) BEQ 40$ ; YES: BACK FOR NEXT BIT NUMBERI" TST R0 ; CLEAR OR SET OPERATION? BNE 60$ ; SETU$ BIC R3,.SWSWR ; CLEAR REQUIRED BITS BR 70$560$:" BIS R3,.SWSWR ; SET REQUIRED BITS70$: DEC R2 ; BACK-UP POINTER RETURNM100$: JMP SYNERRV;D110$:A# MOV R0,-(SP) ; SAVE R0, R1, R2, R3) MOV R1,-(SP)1 MOV R2,-(SP)B MOV R3,-(SP)B! CLR R0 ; GET SWR IN DOUBLE WORD  MOV .SWSWR,R1 MOV #6,R2 ; SET COUNT $ MOV #SWRVAL,R3 ; SET BUFFER POINTER ASHC #1,R0 ; GET FIRST DIGIT120$:'# ADD #'0,R0 ; MAKE INTO ASCII CODEB% MOVB R0,(R3)+ ; AND PUT INTO MESSAGER CLR R0B ASHC #3,R0 ; GET NEXT DIGIT; SOB R2,120$ ; FINISHED?0 MOV #SWRMES,TTYMES+Q.IOPL MOV #SWRSZ,TTYMES+Q.IOPL+2R DIR$ #TTYMESI& MOV (SP)+,R3 ; RESTORE R3, R2, R1, R0 MOV (SP)+,R2R MOV (SP)+,R1R MOV (SP)+,R0 RETURN( .PAGE;R;(;B; E R R O R R O U T I N E ST;R; ;B;++011 LINES DELETED;;V;,; READ MCR LINE ERROR;V%MCRER: DIR$ #MCRMSG ;PRINT MCR ERROR  BR WAIT;D; VALUE ERROR ON CACHE;;VALERR: DIR$ #VALMSG ;002 BR WAIT ;002P;I; MACHINE ERRORR;BMACERR: DIR$ #MACMSG ;002 BR WAIT;,;$; *LTFND: TST KEYWRD ;PREMATURE END OF LINE? BNE EXIT ;NO -- EXIT;D; DVTERR: DIR$ #DVTMSG ;++007 BR WAIT ;++007;MCLIERR: DIR$ #CLIMSG ;++007 BR WAIT ;++007;RLOGERR: DIR$ #LOGMSG ;++007 BR WAIT ;++007; ;; SYNTAX ERROR1;NSYNERR:D" DIR$ #SYNMSG ;PRINT SYNTAX ERROR;V;C;:;RWAIT:S BCS EXIT ;EXIT IF ERRORA" WTSE$S #1 ;ELSE WAIT FOR MESSAGE;E; ;$EXIT:G EXIT$S ;EXIT TO SYSTEMI .PAGE; ;O;(; COMMON PUD SEARCH ROUTINE FOR SET TASK;;&PUDSR: MOV R0,-(SP) ;SAVE R0 FOR LATER CLR DEV ;INIT DEVICE TYPET CLR UNIT ;AND UNIT NUMBERG% MOVB (R2)+,R0 ;PICKUP NEXT CHARACTER  CALL ALPHA ;ALPHA CHARACTER?, BCC 20$ ;YES -- MAKE IT INTO A DEVICE NAME;T2 TSTB -(R2) ;NO -- CHECK FOR END OF DEVICE STRING) CALL TRMCHK ;CHECK FOR VALID TERMINATOR:+ BCC 10$ ;VALID -- RETURN TO SCAN FOR MORES5$:1& JMP SYNERR ;NONVALID -- SYNTAX ERROR;G*10$: JMP SCAN ;RETURN FOR ANOTHER KEYWORD;; 220$: MOVB R0,DEV ;STORE FIRST BYTE OF DEVICE NAME% MOVB (R2)+,R0 ;PICKUP NEXT CHARACTERR CALL ALPHA ;ALPHA CHARACTER?9 BCC 30$ ;YES -- MAKE IT SECOND CHARACTER OF DEVICE NAMEE ;NO -- IS IT NUMERIC?R CMP #'0,R02 BGT 5$ ;NO -- SYNTAX ERROR CMP #'7,R0 BLT 5$ ;NO -- SYNTAX ERROR& ;YES -- MAKE IT INTO A UNIT NUMBER, TSTB -(R2) ;BACKUP POINTER FOR SECOND SCAN BR 40$ ;GO TO COMMON CODE1;J430$: MOVB R0,DEV+1 ;SETUP SECOND HALF OF DEVICE NAME+ ;AND FALL THROUGH TO DECODE UNIT NUMBERM40$:* CMPB #':,@R2 ;IS THIS IMPLIED UNIT ZERO?' BNE 50$ ;NO -- DECODE THE UNIT NUMBER 6 TSTB (R2)+ ;YES -- STEP OVER THE COLON FOR NEXT PASS, BR 60$ ;AND SKIP OVER DECODING UNIT NUMBER;M50$: ;DECODE UNIT NUMBER * MOV #8.,DECNUM ;SETUP TO CONVERT AS OCTAL( MOV R1,-(SP) ;SAVE AND RESTORE R1,R4,R5 MOV R4,-(SP)B MOV R5,-(SP) ' CALL GETNUM ;CONVERT THE OCTAL NUMBER % MOV R1,UNIT ;AND STORE IT IN 'UNIT'D;1* CMPB #':,R5 ;WAS THE TERMINATOR A COLON? BNE 5$ ;NO -- SYNTAX ERROR& MOV (SP)+,R5 ;YES -- RESTORE R5,R4,R1 MOV (SP)+,R4? MOV (SP)+,R1 - ;AND FALL THROUGH TO SEARCH PUD FOR MATCH-60$:) MOV .PUDBA,R3 ;PICKUP START OF PUD IN R3 70$:# CMP .PUDEA,R3 ;END OF PUD REACHED? % BEQ DVNF ;YES -- NONEXISTANT DEVICES;P% CMP DEV,U.DN(R3) ;DEVICE TYPE MATCH?V# BNE 80$ ;NO -- TRY NEXT PUD ENTRYB, CMPB UNIT,U.UN(R3) ;UNIT NUMBER MATCH ALSO?# BNE 80$ ;NO -- TRY NEXT PUD ENTRYE4 ;YES -- RESTORE R0 AND DELIVER R3 TO OTHER ROUTI MOV (SP)+,R051 RET00>?@ƈ:Lj*URN ;RETURN TO CALLER WITH R3 = PUD ADDRESSR;5,80$: ADD #U.SZ,R3 ;STEP TO NEXT ENTRY IN PUD BR 70$ ;CHECK FOR END OR MATCH;C;;:5ALPHA: BIC #177400,R0 ;CHECK FOR R0 = ALPHA CHARACTERP CMP #'A,R0 ;CHAR .LT. 'A'? BGT 10$ ;YES -- SET 'C' BITA CMP #'Z,R0 ;CHAR .GT. 'Z'?* BGE 20$ ;NO -- RETURN WITH 'C' BIT CLEAR10$: SEC ;NON-ALPHA CHARACTER(20$:, RETURN ;RETURN WITH 'C' SET APPROPRIATELY; ; 7DVNF: MOV #TTYMES,R0 ;DEVICE NOT FOUND -- ISSUE MESSAGEU MOV #DDVNA,Q.IOPL(R0) MOV #DVLN,Q.IOPL+2(R0)I DIR$ R0 JMP WAIT ;EXIT SYSTEM#;Z .PAGE;O;X; G E T N U M; ; ; ROUTINE TO DECODE A NUMBER;; CALLING SEQUENCE:00; 'DECNUM' -- 8. (IF OCTAL) OR 10. (IF DECIMAL); R2 -- BUFFER POINTER$; CALL GETNUM;I;(; ERROR RETURN GOES DIRECTLY TO 'SYNERR';- ; OUTPUT:H; R1 -- RETURNED VALUEC; R5 -- TERMINATORE;;:;R.GETNUM: MOV #6,R4 ;MOVE A MAXIMUM OF 5 DIGITS CLR R1 ;CLEAR THE FOUND VALUEN10$:# MOVB (R2)+,R5 ;PICK UP A CHARACTERO CMP #57,R5 ;CHECK LOWER LIMIT BPL 40$ ;CHECK FOR TERMINATOR# CMP #67,R5 ;CHECK OCTAL LIMITS" BMI 30$ ;NOT WITHIN OCTAL LIMITS20$: CLC ;CLEAR CARRY FOR MULTIPLY" MUL DECNUM,R1 ;COMPUTE NEW NUMBER BCS 50$ ;ERROR IF OVERFLOW- BIC #177760,R5 ;MAKE OCTAL OR DECIMAL NUMBERI! ADD R5,R1 ;AND ADD IN NEW DIGIT SOB R4,10$ ;FINISHED? BR 40$ ;YES -- EXIT/30$: CMP #10.,DECNUM ;IS THIS A DECIMAL NUMBER?  BNE 40$ ;NO -- EXIT $ CMP #71,R5 ;YES -- IS IT A 8 OR 9? BPL 20$ ;YES -- GO MULTIPLY740$: RETURN ;RETURN TO CALLER ;E;F50$: TST (SP)+ ;CLEAN STACK. JMP SYNERR ;SYNTAX ERROR (MULTIPLY OVERFLOW) I;;:;C; T R M C H K;O;U; ROUTINE TO CHECK TERMINATOR ; ;B; CALLING SEQUENCE:I; R2 -- LOCATION OF CHARACTER; CALL TRMCHK;N; NO ERROR RETURN ;D ; OUTPUT: ; CC IF LEGAL TERMINATORH; CS IF ILLEGAL TERMINATOR;:;P;0;E'TRMCHK: CMPB #SPACE,@R2 ;IS IT A SPACE?$ BEQ 10$ ;YES" CMPB #TAB,@R2 ;NO -- IS IT A TAB? BEQ 10$ ;YES$ CMPB #'/,@R2 ;NO -- IS IT A SLASH? BEQ 10$ ;YES. CMPB #CR,@R2 ;NO -- IS IT A CARRIAGE RETURN? BEQ 10$ ;YES* CMPB #ALTMOD,@R2 ;NO -- IS IT AN ALTMODE? BEQ 10$ ;YES SEC ;NO -- ILLEGAL TERMINATOR BR 20$ ;EXIT"10$: CLC ;LEGAL TERMINATOR FOUND20$: RETURN ;EXITK;N; ;E;R .END SETD ; OUTPUT: ; CC IF LEGAL TERMINATORH; CS IF ILLEGAL TERMINATOR;:;P;0;E'TRMCHK: CMPB #SPACE,@R2 ;IS IT A SPACE?$ BEQ 10$ ;YES" CMPB #TAB,@R2 ;NO -- IS IT A TAB? BEQ 10$ ;YES$ CMPB #'/,;%; [ 1 1 , 1 3 ] S E T T K B . C M D ; COMMAND FILE TO BUILD ...SET;YK[11,1]SET/PR/MU/-FP,[111,13]SET/-SP/CR=[11,13]LIB13/LB:SET,[1,1]EXEC.STB/SSB/S STACK=256EPAR=GEN= ASG=TI:2:6 TASK=...SET UIC=[2,2]APRI=221S;I; ---------------------------; ! START OF OPTIONAL PATCH !; ---------------------------;D; TO REMOVE RESTRICTION ON SET SPOOLED DEVICES NON-SPOOLED WITH SP0:+; STILL MOUNTED, ENABLE THE OPTIONAL PATCH.; N .B .; ------=; THIS SHOULD ONLY BE DONE IF THE OPERATION WILL BE PERFORMEDS; ON A QUIESCENT SYSTEM.;GBLPAT=SET:OPTN1:240S;; -------------------------1; ! END OF OPTIONAL PATCH !S; -------------------------C/56EPAR=GEN= ASG=TI:2:6 TASK=...SET UIC=[2,2]APRI=221S;I; ---------------------------; ! START OF OPTIONAL PATCH !; ---------------------------;D; TO REMOVE RESTRICTION ON SET SPOOLED DEVICES NON-SPOOLED WITH SP0:+; STILL MOUNTED, ENABLE THE OPTIONAL PATCH.; N .B .; ------=; THIS SHOULD ONLY BE DONE IF THE OPER; %; [ 1 1 , 1 3 ] S U I C T K B . C M DC; ; TASK BUILD THE 'SET UIC' TASK;,P[11,1]SUIC/-SE/-CP/-FP/PR,[111,13]SUIC/-SP=[11,13]LIB13/LB:SUIC,[1,1]EXEC.STB/SS/= TASK=.SUIC.2PRI=2202UNITS=02STACK=32/3:6 TASK=...REA=/1]:PRI=75POOL=20A TASK=MCRERRE/NDED TO INCREASE THE AMOUNT OF C; SPACE AVAILABLE TO HOLD LINES AWAITING MATCHING. THE SAME EFFECT:A; CAN BE ACHIEVED BY USING THE '/INCREASE' SWITCH AT INSTALL TIMEE;R EXTTSK =10000S/:RO STACK=128HASG=TI:2/ION DETERMINES 00ABCD !s;#; [ 1 1 , 1 3 ] S W A B L D . C M D;-; COMMAND FILE TO BUILD IAS SWAP FILE MANAGER/;UC[11,1]SWA/-FP/-FX/-CP/PR/MU/-SE,[111,13]SWA/-SP=[11,13]LIB13/LB:SWA=[1,1]EXEC.STB/SS/ STACK =128UNITS =3 ASG =TI:1:3 TASK =...SWAPRI =200LIBR =SYSRES:RO/;O; '; [ 1 1 , 1 3 ] I S S Y S T A S . O D LE;L .ROOT MAIN-[1,1]EXEC.STB-OVLY"MAIN: .FCTR [11,13]LIB13/LB:SYSPRS2OVLY: .FCTR *(OVSCN,OVDEV,OVTAS,OVPAR,OVCOM,OVSGA)#OVSCN: .FCTR [11,13]LIB13/LB:SYSSCNT OVSGA: .FCTR [11,13]LIB13/LB:SGA#OVTAS: .FCTR [11,13]LIB13/LB:TASSYSO#OVDEV: .FCTR [11,13]LIB13/LB:DEVSYSI#OVPAR: .FCTR [11,13]LIB13/LB:PARSYS.#OVCOM: .FCTR [11,13]LIB13/LB:COMSYS  .ENDG THE '/INCREASE' SWITCH AT INSTALL TIMEP;H EXTTSK =10000 /---=; THIS SHOULD ONLY BE DONE IF THE OPER .ROOT MAIN-[1,1]EXEC.STB-OVLYMAIN: .FCTR [11,13]SYSPRS2OVLY: .FCTR *(OVSCN,OVDEV,OVTAS,OVPAR,OVCOM,OVSGA)OVSCN: .FCTR [11,13]SYSSCNOVSGA: .FCTR [11,13]SGAOVTAS: .FCTR [11,13]TASSYSOVDEV: .FCTR [11,13]DEVSYSOVPAR: .FCTR [11,13]PARSYSOVCOM: .FCTR [11,13]COMSYS .END-NONE ACT .TSK;1 ;ACTIVE TASK LISTEPR.FIL AFO .TSK;1 ;LISTS FILES WITH NO CHARACTER CONVERSION!NONE AID .TSK;6 ;HELP5PR.SCI ATT .TSK;1 ;READ/SET FILE ATTRIBUTES?NONE AVY/INS SD:[200,21]AECLVFY/TASK=...AVY/UIC=[200,21],PR.SCI AZP/INS [1,10]ABSZAP/TASK=...AZP"NONE BAT .TSK;1 ;BATCH/PR.FIL BDI .TSK;3 ;BRU TAPE DIRECTORY+NONE BLO/ ;BLOCKS FUNCTION MASSAGE(PR.SCI BOO .TSK;1 ;BOOT SYSTEM,N/A BPR .TSK;1 ;BATCH PROCESSOR&PR.BAS BP2 .TSK;1 ;BASIC + 2+PR.FIL BRI/ ;BRIEF DIRECTORY MASSAGEO3PR.SCI BRU .TSK;2 ;BACKUP/RESTORE UTILITYT.NONE BUG .TSK;3 ;TASK DEBUGGER>N/A BYE .TSK;1 ;BYE (DEC VERSION, NOT APPLICABLE)1PR.BAS B2R .TSK;1 ;BASIC + 2 RESEQUENCE 1PR.BAS B2T .TSK;1 ;BASIC + 2 TRANSLATOR;7PR.BAS B2X .TSK;1 ;BASIC + 2 CROSS-REFERENCERN0PR.SCI CDA .TSK;2 ;CRASH DUMP ANALYZER=NONE CED .TSK;1 ;NETWORK CONFIGURATION EDITORP(NONE CFE .TSK;4 ;NETWORK8NONE CIE .TSK;7 ;PRINT AT C ITOH PRINTER"NONE CLO .TSK;2 ;CLOCK-NONE CLR .TSK;2 ;CLEAR THE SCREEN ,NONE CLV .TSK;3 ;CLOCK FOR VT100BPR.SCI CMD .TSK;1 ;CREATES TKB CMD FILES FOR DIAGNOSTICS)PR.FIL CMP .TSK;1 ;FILE COMPARE4PR.SCI CON .TSK;1 ;CONTINUE SUSPENDED TASK$NONE COO .TSK;11 ;COOKIE'PR.FIL COP/ ;COPY FILES MASSAGE;$NONE CPT .TSK;2 ;???5NON-AUTO CREUPF .TSK;1 ;CREATE USER PROFILE FILEI3PR.SCI CDA/INS [11,1]CDA ;ANALYZE CRASH DUMP ?N/A CRF .TSK;2 ;CROSS REF, (CALLED BY TKB AND MAC)S,PR.SCI CZP/INS [1,10]CORZAP/TASK=...CZP#NONE DAM .TSK;2 ;DAMMITC)PR.FIL DAN .TSK;3 ;FANCY DIABLOL)NONE DAT .TSK;2 ;DATE DISPLAYI5N/A DCL .TSK;1 ;DEC COMMAND LANGUAGE CLI $NONE DCT .TSK;7 ;???9NONE DEC .TSK ;DECMATE TRANSFER PROGRAM;@NONE DECSUB .TSK ;DECMATE TRANSFER PROGRAM PART 2+PR.FIL DEL/ ;DELETE FUNCTION MASSAGEA3NONE DEM/INS [11,13]DEMO ;SHOW ACTIVE MEMORYL)NONE DEV .TSK;1 ;SHOW DEVICES1$NONE DEZ .TSK;1 ;???#PR.FIL DIA .TSK;2 ;DIABLOA+NON-AUTO DIATMP .TSK;1 ;SPECIAL DIABLO @NONE DIB .TSK;1 ;DIABLO FOR SHEET-FEEDER PRINTER.PR.FIL DIR/ ;DIRECTORY FUNCTION MASSAGE%PR.DEV DMO .TS00D#@ƈ:Lj*K;1 ;DISMOUNT %PR.FIL DMP .TSK;1 ;FILE DMP 0PR.SCI DOB/INS [300,23]DISOBJ ;DISASSEMBLER-NONE DOX .TSK;4 ;DISASSEMBLERA2PR.FIL DOC/ ;DOCUMENT FUNCTION ENTRY MASSAGE2N/A DRX .TSK;11 ;EXPER VERS OF DR..../PR.SCI DSC .TSK;3 ;DISC SAVE/COMPRESS 5NONE DSM .TSK;1 ;DISK STORAGE MONITORI/NONE DTC .TSK;11 ;DESK TOP CALENDARL+NONE DTR .TSK;1 ;DATATRIEVE 1NONE DTS .TSK;1 ;SMALL DATATRIEVE.0NONE DUP .TSK;1 ;DUPLEX TO 11/45#PR.COR EDI .TSK;1 ;EDITORI#PR.COR EDT .TSK;1 ;EDITOR #PR.COR EDX .TSK;1 ;EDITOR ,NONE EMP .TSK;1 ;EMPIRE GAME<NON-AUTO ERRLOG .TSK;1 ;ERROR LOGGING (USUALLY RUNNING)-NON-AUTO ERROFF .TSK;1 ;TERMINATE ERRLOG $NONE EXC .TSK;2 ;???*PR.FOR F4P/INS [11,36]F4P/TASK=...F4P*PR.FOR F77/INS [11,36]F77/TASK=...F77.NONE FAC .TSK;1 ;FILES-11 ACTIVITY1NONE FCP .TSK;1 ;SMALL VERSION OF FCP (NONE FDT .TSK;1 ;FORTRAN ODT(PR.FIL FDU .TSK;1 ;FILE DUMPER$NONE FGD .TSK;1 ;???/PR.FIL FHD .TSK;1 ;LISTS FILE HEADERS BNONE FHX .TSK;1 ;LISTS ALL FILES WITH EXTENDED HEADERS/PR.SCI FLB .TSK;3 ;FIND LOGICAL BLOCKO"PR.FIL FLX .TSK;2 ;FILEX*PR.SCI FMT .TSK;2 ;FORMATS DISKS7NONE FON .TSK;1 ;ON-LINE TELEPHONE BOOKA+PR.FOR FOR/ ;FOR AUTO LINER MASSAGE "NON-AUTO FORTH .TSK;1 ;FORTH4PR.FIL FRE/ ;LIST FREE BLOCKS FUNCTION MASSAGE/PR.FIL FRG .TSK;1 ;DISK FRAGMENTATION *PR.FOR FV2/INS [11,41]FV2/TASK=...FV2$NONE HEA .TSK;5 ;???.N/A HEL .TSK;1 ;HELLO (DEC STYLE)-N/A HELP .TSK;1 ;HELP (DEC STYLE)I,PR.FIL HOL .TSK;1 ;SHOW DISK HOLES+PR.FOR IDX .TSK;10 ;FORTRAN INDEX7NONE IND .TSK;3 ;INDIRECT COMMAND PROCESSOR8NONE INF .TSK;7 ;SYSTEM INFORMATION TASK,PR.SCI INI .TSK;1 ;INITIALIZE DISK1NONE INIT .TSK;2 ;NEWER VERSION OF INI *PR.RUN INS .TSK;12 ;INSTALL TASK7PR.SCI INV .TSK;1 ;SPECIAL INSTALL FOR SYSGEN #PR.COR KED .TSK;1 ;EDITOR #PR.COR K52 .TSK;1 ;EDITOR &PR.LIB LBR .TSK;1 ;LIBRARIAN0PR.FIL LIS .TSK;1 ;MULTI-COLUMN LISTER)PR.SCI LOA .TSK;1 ;LOAD HANDLER 7NONE LPN .TSK;1 ;PRINT AT LASER PRINTER 0PR.FIL LST .TSK;71 ;VT100 FILE DISPLAY&PR.SCI LUN .TSK;1 ;SHOW LUNS4NONE LUT .TSK;2 ;SHOW LOGICAL UNIT TABLE3NONE LVS .TSK;1 ;SPOOL PRINT FILE TO LV "PR.MAC MAC .TSK;1 ;MACRO$NONE MAK .TSK;3 ;???2N/A MCR .TSK;1 ;DEC VERSION, OBSOLETE?PR.SCI MEM .TSK;1 ;FREE TASK LOCKED DUE TO MEM PARITY -PR.SCI MFT .TSK;2 ;HANDLES UNL, ETC;0PR.SCI MMC .TSK;1 ;COPIES TAPE TO TAPE+NONE MMM .TSK;22 ;MONITORS AECL *NONE MON .TSK;1 ;MONITORS AECL(PR.DEV MOU .TSK;12 ;MOUNT DISK7PR.FIL MPG .TSK;2 ;MULTI-PAGE PRINT ON DIABLO 2NONE MSM .TSK;1 ;DEC'S MESSAGE MANAGER0PR.SCI MTC .TSK;1 ;COPIES TAPE TO TAPE!PR.COR MUN .TSK;1 ;TECOD*NONE MUR .TSK;1 ;MURPHY'S LAWS8NONE NCP .TSK;4 ;NETWORK CONTROL PROGRAM(NONE NDA .TSK;4 ;NETWORK4NONE NED .TSK;1 ;NETWORK FILE EDITOR9NONE NTD .TSK;2 ;NETWORK ACTIVITY DISPLAY;+NONE OLC .TSK;6 ;BACKWARD CLOCK21NONE OLV .TSK;1 ;BACK CLOCK FOR VT100G$NONE ONE .TSK;1 ;???)PR.SCI OPE .TSK;1 ;EXAMINE CORE .PR.SCI OPR .TSK;1 ;PRINT QUE CONTROL3NONE ORC .TSK;1 ;ORCAM DISASSEMBLER;9PR.FIL PAG .TSK;1 ;PAGINATE LISTING PROGRAMC%NONE PAL .TSK;5 ;FOR PDP8S+PR.SCI PAT .TSK;1 ;OBJECT PATCHER 'NONE PCC .TSK;16 ;PORTACALC N/A PDS .TSK;00D+CD !s1 ;CLI!N/A PDX .TSK;11 ;CLI;$NONE PGC .TSK;17 ;???$NONE PHO .TSK;1 ;????NONE PHY/INS SD:[200,21]PHYSICS/TASK=...PHY/UIC=[200,21]A PR.FIL PIP .TSK;1 ;PIP'NONE PLA .TSK;1 ;PLAY GAMES )NON-AUTO POOL .TSK;1 ;MONITOR POOLL!PR.MAC MAX/ ;FOR AUTO LINER 0PR.FIL PRI/ ;PRINT FUNCTION ENTRY MASSAGE5PR.FIL PRO/ ;PROTECT FILE FROM DELETION MASSAGEO.PR.SCI PSE .TSK;1 ;PRE-SELECT ERRORS+PR.FIL PUR/ ;PURGE FUNCTION MASSAGE 7N/A PWD .TSK;1 ;CHANGE PASSWORD (OBSOLETE)E-PR.FIL QUE .TSK;1 ;QUE FOR PRINTINGH&NONE QUX .TSK;12 ;LIST QUE#PR.FOR RAT .TSK;1 ;RATFOR;%NON-AUTO RATFIV .TSK;1 ;RAT FIVEAPR.FOR RA5 .TSK;5 ;""S0PR.FIL RCV .TSK;1 ;RECOVER LOCKED FILE+PR.SCI REA .TSK;1 ;RE-ASSIGN LUNS 7PR.FIL REC/ ;RECOVER LOCKED FILE FUNCTION MASSAGEA-PR.DEV RED .TSK;1 ;REDIRECT DEVICES 0PR.FIL REI .TSK;10 ;REINCARNATE A FILE(PR.RUN REM .TSK;1 ;REMOVE TASK.NONE REN .TSK ;FORTRAN RESEQUENCER(NONE REW .TSK;1 ;REWIND TAPENONE RMSBCK .TSK;1 NONE RMSCNV .TSK;1-NONE RMSDEF .TSK;1FNONE RMSDFN .TSK;1SNONE RMSDSP .TSK;1 NONE RMSIFL .TSK;1NONE RMSRST .TSK;1R8NONE RMT .TSK;3 ;NETWORK REMOTE TERMINAL6NONE RNO/INS [311,26]RNO ;RUNOFF TEXT PROCESSOR4NONE RNP/INS [311,26]RNP ;RUNOFF PREPROCESSOR3NONE RNX/INS [311,27]RNX ;BONNER LABS RUNOFF ?NONE RO1/INS SD:[200,15]RAD5V31/TASK=...RO1/UIC=[200,15];?NONE RO2/INS SD:[200,15]RAD1V31/TASK=...RO2/UIC=[200,15] ?NONE RO3/INS SD:[200,15]RAD4V31/TASK=...RO3/UIC=[200,15];?NONE RO4/INS SD:[200,15]RAD7V31/TASK=...RO4/UIC=[200,15]OANONE RO5/INS SD:[200,15]TARGETV31/TASK=...RO5/UIC=[200,15]K PR.SCI ROL/INS [1,10]ROLLIN/PR.RUN RUN .TSK;1 ;RUN INSTALLED TASK <PR.SCI SAL .TSK;1 ;SYSTEM ACTIVITY LOGGING PROGRAMNON-AUTO SALLOG .TSK;1 ;"" $NONE SAT .TSK;7 ;???(PR.SCI SAV .TSK;1 ;SAVE SYSTEM0NONE SCA .TSK;100 ;SCAN FILM STARTER+NON-AUTO SCANIT .TSK;1 ;SCAN FILM TASKS*NONE SCR .TSK;4 ;SCANNER RESET6PR.FIL SDV/INS[11,13]SDV ;CHANGE DEFAULT DEVICE1NONE SEE .TSK;4 ;SHOW SYSTEM ACTIVITY,;NONE SEM .TSK;15 ;SEND MULT LINES TO A TERMINAL..PR.SCI SET .TSK;1 ;SET SPOOLING, ETC!PR.COR SEV .TSK;2 ;TECOO+PR.SCI SGN1 .TSK;1 ;SYSGEN PHASE 1 NON-AUTO SLOTKB .TSK;3 ;TKB,PR.COR SLP .TSK;1 ;INDIRECT EDITOR3NONE SLV .TSK;5 ;SET TERMINAL AS SLAVED 1PR.FIL SOR/INS [2,2]SORT/POOL=40/TASK=...SOR "NONE SPE .TSK;1 ;SPELL$NONE SPL .TSK;1 ;SPOOLER$NONE SPR .TSK;2 ;SPOOLER$NONE SPR2 .TSK;3 ;SPOOLER-NONE SPY .TSK;2 ;DISPLAY ACTIVITY/NONE SRD .TSK;1 ;SORT DIRECTORYR&PR.FIL SRT/INS [2,21]SORT/POOL=40INONE STA .TSK;1 ;ALLOWS HOSTILE USERS TO RESTART THE PRINTERSRFNONE STO .TSK;1 ;ALLOWS HOSTILE USERS TO STOP THE PRINTERS+NONE SUB/ ;SUBMIT TO BATCH MASSAGE <NON-AUTO SUIC .TSK;1 ;USED BY BATCH/PDX TO CHANGE UIC-PR.SCI SWA .TSK;1 ;CREATE SWAP FILEE=NONE SWX .TSK;4 ;LOADS SW10 PROGRAMMABLE SWITCHESSDPR.SCI SYD .TSK;1 ;SPECIAL SYSGEN TIME SYS DISK REDIRECTOR,PR.SCI SYE .TSK;5 ;ERROR PROCESSOR+NONE SYS .TSK;1 ;DISPLAY SYSTEM 0PR.SCI TCP .TSK;1 ;COPIES TAPE TO TAPE!PR.COR TCV .TSK;4 ;TECO;!PR.COR TEC .TSK;5 ;TECO !PR.COR TEN .TSK;5 ;TECO !PR.COR TEQ .TSK;3 ;TECOC'PR.COR TES .TSK;3 ;SMALL TECOU!PR.SCI TIM .TSK;1 ;TIMEE PR.LIN TKB .TSK;2 ;TKB,NON-AUTO TKTN .TSK;1 ;TASK TERMINATOR$PR.LIN TKX .TSK;1 ;OLD TKB9NONE TLK .TSK;1 ;TALK TO ANOTHER TERMI00D3E6ƈ:Lj*NAL 8NONE TPC .TSK;2 ;TAPE COPY TO CONTAINER FILEANONE TRE/INS SD:[200,21]TREATMENT/TASK=...TRE/UIC=[200,21] 4PR.FIL TRM .TSK;1 ;TERMINET VERS OF DIABLO*PR.FIL TRU/ ;TRUNCATE FILE MASSAGE1NONE TTT .TSK;4 ;AECL MONITOR PROGRAM :PR.FIL TYS .TSK;1 ;TERMINAL PRINT WITH AUTO STOP*PR.FIL TYP/ ;TYPE FUNCTION MASSAGE7PR.SCI UFD .TSK;1 ;CREATE USER FILE DIRECTORY.$NONE UIC .TSK;1 ;???+PR.DEV UNL .TSK;1 ;UNLOAD HANDLER +PR.FIL UNP/ ;UNPROTECT FILE MASSAGEI-PR.SCI USE/ ;EVOKE SET FOR X,Y MASSAGES(PR.SCI UTL .TSK;1 ;CONTROL UTL0NONE UTX .TSK;2 ;SHOW USER TASK LIST*PR.FIL VFY .TSK;520 ;VERIFY DISK;NONE VTL .TSK;13 ;VIDEO TERMINAL FILE LISTERS4PR.SCI VOL .TSK;1 ;RESET VOLUMN ATTRIBUTES-NONE V10 .TSK;24 ;VT100 FUNCTIONS.1NONE WHA/ ;EVOKE INFORM FOR WHAT MASSAGE 7NONE WHE .TSK;15 ;SHOWS WHERE TERMINALS ARE 1NONE WHN/ ;EVOKE INFORM FOR WHEN MASSAGEG,NONE WHO .TSK;3 ;WHOS DOING WHAT$NONE WHY .TSK;4 ;WHY NOT(NONE XON .TSK;15 ;CLEAR XOFFNONE YYY/INS [11,13]YYY-PR.SCI ZAP .TSK;1 ;TASK/FILE ZAPPER .TSK;13 ;VIDEO TERMINAL FILE LISTERS4PR.SCI VOL .TSK;1 ;RESET VOLUMN ATTRIBUTES-NONE V10 .TSK;24 ;VT100 FUNCTIONS.1NONE WHA/ ;EVOKE INFORM FOR WHAT MASSAGE 7NONE WHE .TSK;15 ;SHOWS WHERE TERMINAL .TITLE TER -- SET TERMINALS .IDENT /V0101A/ ;=; THIS PROGRAM SETS THE TERMINAL CHARACTERISTICS ON AN IAS OR@; RSX11D SYSTEM, USING THE 'SET CHARACTERISTICS' FUNCTION OF THE; TERMINAL HANDLER.;;; COPYRIGHT (C) 1976.; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS;>; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ON AB; SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH THE INCLUSION=; OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE, OR ANY OTHERA; COPIES THEREOF, MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLEVB; TO ANY OTHER PERSON EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO?; AGREES TO THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THET,; SOFTWARE SHALL AT ALL TIMES REMAIN IN DEC.;I?; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT?; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL ; EQUIPMENT CORPORATION.;YA; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS.5; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.O;E;O;E; AUTHOR : JOHN HARPER; DATE : 4-JUN-76H;P; EDIT AUTHOR DATE REASONS; ---- ------ ---- ------S6; 001 JOHN HARPER 19-AUG-76 FIX BUG IN ERROR REPORTING2; 002 JOHN HARPER 20-AUG-76 ADD /COMPATIBLE OPTION4; 003 JOHN HARPER 06-AUG-76 ADD USER CHARACTERISTICS; AND TERMINAL TYPES-; 004 JOHN HARPER 20-JAN-77 ADD 'FULL DUPLEX'A8; 005 JOHN HARPER 03-MAY-77 PICK UP UIC FROM TASK HEADER; CHANGE /TERMINAL TO /NAMEY; ALLOW /DEFAULT ON ITS OWN '; 006 JOHN HARPER 25-FEB-78 ADD /BINARYE8; 007 F. BORGER 12-MAR-79 ADD L180,V100,L120,SORO & BEEH O.SBTTL DESCRIPTION;+F; THIS PROGRAM IS AN MCR TASK WHICH WILL TRANSLATE A REQUEST TO CHANGE@; THE CHARACTERISTICS OF A TERMINAL INTO THE QIO REQUIRED BY THE?; TERMINAL HANDLER, AND CHANGE THE CHARACTERISTICS ACCORDINGLY.L;P; THE FORMAT OF A COMMAND IS: ; ; TER [TERMINAL LIST][OPTIONS];3D; THE TERMINAL LIST MAY BE OMITTED, IN WHICH CASE THE USER'S CURRENT@; TERMINAL IS SET, OR IT MAY BE A LIST OF TERMINALS OF THE FORM:A; TT1:TT2:TT3: (THE FINAL COLON IS OPTIONAL). THE LATTER FORM ISH.; ONLY ALLOWED FOR A USER RUNNING UNDER [1,1].;MB; THE OPTIONS MAY BE DIVIDED INTO TWO CLASSES - SETTING INDIVIDUALB; CHARACTERISTICS, AND SETTING THE TERMINAL TYPE. FOR THE FORMER,+; THE OPTIONS AVILABLE ARE DESCRIBED BELOW:;?; THERE ARE TWO TYPES OF OPTION, THOSE WHICH REPRESENT A BINARY]?; CHARACTERISTIC (E.G. 'SCOPE'), WHICH HAVE NO ASSOCIATED VALUESD; AND MAY BE PRECEDED BY 'NO' TO NEGATE THEM, AND THOSE WHICH HAVE A00E;CD !s9; VALUE, WHICH MAY BE A KEYWORD OR A NUMBER, E.G. 'FILL'.T=; KEYWORDS WHICH ARE A CONCATENATION OF MORE THAN ONE ENGLISHMI; WORD MAY BE ABBREVIATED BY THEIR INITIAL LETTERS, E.G. 'LOWERCASEINPUT'R;; AS 'LCI'. ALL KEYWORDS MAY BE ABBREVIATED BY THE MINIMUM?; NUMBER OF LETTERS NEEDED FOR UNIQUNESS. IN THE SUMMARY BELOW B; ACCEPTABLE ABBREVIATIONS ARE ENCLOSED IN SQUARE BRACKETS. THESE@; TOO MAY BE ABBREVIATED TO THE MINIMUM REQUIRED FOR UNIQUENESS.; '; THE NON-VALUED OPTIONS AVAILABLE ARE:A;A:; /TWOSTOPBITS TERMINAL REQUIRES TWO STOP BITS - NORMALLY6; [TSB] REQUIRED FOR MECHANICAL PRINTERS, E.G. ASR331; /SCOPE TERMINAL IS A SCOPE (VDU) AND REQUIRESL,; RUBOUT TO BE ECHOED SO AS TO PHYSICALLY5; ERASE THE RUBBED OUT CHARACTERS FROM THE SCREEN.B3; /BINARY TERMINAL IS TO BE USED EXCLUSIVELY FOR E1; READ-PASS-ALL - DO NOT RECOGNIZE 'INTERRUPT'U; CHARACTERSE:; /VERTICALFILL TERMINAL REQUIRES VT05-TYPE VERTICAL FILL ; [VFILL] 9; /NEWLINE TERMINAL SENDS 'NEWLINE' WHEN 'THE BIG KEY ONI:; THE RIGHT' IS PRESSED, RATHER THAN 'CARRIAGE RETURN'.@; /SIMULATEFORMFEED THE CHARACTERS FORMFEED AND VERTICAL-TAB ARE0; [SFF] TO BE SIMULATED IN SOFTWARE TO START A4; NEW PAGE AND SKIP TO THE NEXT SIX-LINE BOUNDARY; RESPECTIVELY.@; /HARDWAREFORMFEED THE CHARACTERS FORMFEED AND VERTICAL-TAB ARE5; [HFF] RECOGNISED BY THE TERMINAL, AND NO SOFTWAREA&; SIMULATION NEEDS TO BE PERFORMED.4; /LVF LA36 VERTICAL FILL IS REQUIRED FOR FORMFEED%; AND VERTICAL-TAB (I.E. 66 NULLS)K5; /HARDWARETAB THE TERMINAL RECOGNIZES THE CHARACTERG; [HTAB] HORIZONTAL-TABF; [TAB]H8; /NONSTANDARDTAB WHEN THE TAB CHARACTER IS SENT TO THE-; [NSTAB] TERMINAL IT DOES NOT SPACE TO THEN#; NEXT EIGHT-CHARACTER BOUNDARY.;; /BACKSPACE TERMINAL RESPONDS TO THE BACKSPACE CHARACTER.EK; /CARRIAGERETURN IF A LINE IS TOO LONG TO FIT ON THE WIDTH OF THE SCREENA9; [CR] OF THE PAPER IT SHOULD BE SPLIT ACROSS MORE THANT ; ONE LINEQ=; /LOWERCASEKEYBOARD LOWER CASE CHARACTERS ARE TO BE ACCEPTEDHB; [LCKEYBOARD] FROM THE KEYBOARD AND NOT AUTOMATICALLY TRANSLATED9; INTO UPPER CASE (THIS ONLY AFFECTS THE READ-PASS-ALLC4; AND READ-NO-CASE-CONVERSION REQUESTS - TO FORCE*; LOWER CASE INPUT TO MOST PROGRAMS THE); /LOWERCASEINPUT OPTION MUST BE USED)T9; /LOWERCASEINPUT LOWER CASE CHARACTERS ARE TO BE PASSEDT>; [LCINPUT] TO A PROGRAM DOING INPUT EVEN IF IT ASKS FOR CASE7; CONVERSION TO BE PERFORMED (REQUIRED, FOR EXAMPLE, ; IF USING EDI).W?; /LOWERCASEOUTPUT THE TERMINAL CAN PRINT LOWERCASE CHARACTERS.K; /LOWERCASEPRINTERA ; [LCOUTPUT] ; [LCPRINTER] :; /CONTROLCFLUSH FLUSH TYPE-AHEAD WHEN CONTROL-C IS TYPED; [CCF]SD; /ESCAPESEQUENCE THE TERMINAL REQUIRES ESCAPE SEQUENCE RECOGNITION<; /LOCALCOPY THE TERMINAL ECHOES ALL CHARACTERS AS THEY ARE3; TYPED, SO THE HANDLER SHOULD NOT NORMALLY ECHOL=; /ALTMODE TERMINAL REQUIRES ALTERNATIVE ALTMODE RECOGNITION 2; /TAPE TERMINAL HAS LOW SPEED PAPER TAPE READER); AND INTERPRETS ^R AND ^T DIFFERENTLYT3; /HOLD TERMINAL IS A SCOPE AND SHOULD OPERATE INR; HOLD SCREEN MODEU@; /BLOCKMODE TERMINAL IS A VT61 AND IS TO BE USED IN BLOCK MODE@; /FORMSMODE TERMINAL IS A VT61 AND IS TO BE USED IN FORMS MODE); /KEYBOARD TERMINAL IS CAPABLE OF INPUTH); /PRINTER TERMINAL IS CAPABLE OF OUTPUTE2; /MESSAGES MESSAGES FROM OTHER TERMINALS ALLOWED@; /COMPATIBLE RSX11M COMPATIBLE ESCAPE SEQUENCE HANDLING ;++002;; /UC0 - /UC9 USER CHARACTERISTICS 0 - 9, PROVIDED ;++003D,; FOR USER EXTENSIONS TO HANDLER ;++0039; /FULLDUPLEX FULL DUPLEX OPERATION, I.E. WRITE AND READN; ARE INDEPENDENT;MF; NOTE THAT ANY OF THE ABOVE CAN BE NEGATED BY A 'NO' PREFIX, WHETHER7; OR NOT THE INITIAL-LETTER ABBREVIATION IS BEING USED.R;A; THE VALUED OPTIONS ARE:P;T1; /SPEED:N SET LINE SPEED. APART FROM A NUMERICS7; VALUES, THE SPEED MAY BE ONE OF: 134 (134.5 BAUD), 8; EXTA (DH11 EXTERNAL SPEED A) OR EXTB (DH11 EXTERNAL ; SPEED B)I:; /SPEED:(M:N) SET SPLIT-SPEED LINE. 'M' IS THE KEYBOARD3; 00EC6ƈ:Lj* (LOWER) SPEED, AND 'N' IS THE PRINTER (HIGHER)N ; SPEED.AE; /READAHEAD:TYPE SET TYPE FOR READ-AHEAD PROCESSING. 'TYPE' MAY BE ; ONE OF:;'#; NONE READ-AHEAD IS NOT ALLOWEDL; DEFERREDPROCESSING [DP]0; READ-AHEAD IS ACCEPTED BUT IS NOT EXAMINED-; UNTIL A READ IS PROCESSED WHICH USES IT ; IMMEDIATEPROCESSING [IP] 4; THESE ARE EQUIVALENT. READ-AHEAD IS PROCESEED); AS IT IS TYPED BUT NOT ECHOED UNTIL; IT IS READ; IMMEDIATEECHO [IE]I); READ-AHEAD IS ECHOED AS IT IS TYPED :; /NAME:TYPE SET TERMINAL TYPE. THE LIST OF TYPES IF THE3; SAME AS FOR THE 'SET TERMINAL TYPE' VERSION OF +; THE COMMAND, BELOW, BUT THIS FORM DOESL3; NOT IMPLICITLY SET THE CHARACTERISTICS FOR THED; TERMINAL.;; /FILL:N SET FILL FOR CARRIAGE-RETURN. IF N IS 7, LA30SI; TYPE FILL IS SUPPLIED; /WIDTH:N SET PAGE WIDTH; /LENGTH:N SET PAGE LENGTH; /HANGUP HANG UP DIALUP LINEE-; /PARITY:[EVEN!ODD] SET PARITY TYPE FOR LINEC3; /NOPARITY DISABLE PARITY GENERATION AND CHECKING;NG; THE ALTERNATIVE TO A SPECIFIC CHARACTERISTIC IS A TERMINAL TYPE, E.G.TA; /ASR33. THE AVAILABLE TERMINAL TYPES ARE: ASR33, KSR33, ASR35,I>; LA30S, LA30P, LA36, VT05, VT50, VT52, VT61. THIS IMPLICITLYG; SETS ALL THE CHARACTERISTICS TO MATCH THE TERMINAL, EXCEPT THE SPEED. ?; IF THE SPEED IS TO BE CHANGED TO THE DEFAULT FOR THE TERMINAL +; TYPE /DS MUST BE SPECIFIED AS WELL, E.G.:U;I; MCR>TER TT3:/VT05/DS;!F; IN ADDITION TO THE DEC TERMINAL TYPES, THERE ARE FIVE TERMINAL TYPESB; OF THE FORM '/USR0' - '/USR4' FOR USER SPECIFIED TERMINAL TYPES.;EG; AN ADDITIONALY QUALIFIER WHICH MAY APPEAR WITH EITHER OF THE ABOVE ISSB; '/DEFAULT'. NORMALLY, THE TERMINAL CHARACTERISTICS SPECIFIED ATE; SYSTEM GENERATION ARE REMEMBERED AND WILL BE RESTORED ON LOGOUT OR,TL; FOR A DIALUP LINE, ON HANGUP. HOWEVER A [1,1] USER MAY CHANGE THE DEFAULTQ; SO THAT A PERMANENT CHANGE CAN BE MADE. THE CURRENT DEFAULTS ARE AUTOMATICALLYA+; RESTORED BEFORE A DEFAULT CHANGE IS MADE.F; H; IF '/DEFAULT' APPEARS ALONE, THE CHARACTERISTICS ARE RESTORED TO THEIRH; DEFAULT VALUE. USED ALONE, /DEFAULT DOES NOT REQUIRE [1,1] PRIVILEGE.;A; EXAMPLES OF THE COMMAND ARE:;T0; TER /LCP/NOLCI SET LOWER CASE OUTPUT, BUT DO ; NOT FORCE LOWER CASE INPUT@; TER TT1:TT2:TT3:/VT05/DS SET THREE TERMINALS TO BE VT05'S WITH%; THE CORRESPONDING DEFAULT SPEEDT@; TER /SPEED:(150:9600) SET TERMINAL SPEED TO 150 BAUD KEYBOARD'; AND 9600 BAUD PRINTER (OR SCREEN)EG; TER TT4:/READAHEAD:IE/DEFAULT SET THE DEFAULT CHARACTERISTICS FOR TT4S-; TO A READAHEAD TYPE OF 'IMMEDIATE ECHO'S;AJ; THE COMMAND MAY EITHER BE ON THE SAME LINE AS THE MCR PROMPT, OR IF JUST:; 'TER' IS TYPED TO THE MCR PROMPT SEVERAL COMMANDS MAY BEN; GIVEN WITHOUT RE-INVOKING MCR. INDIRECT FILES ARE ACCEPTED TO A DEPTH OF 2.;- .SBTTL MACROS AND DATA AREAS D: .MCALL QIOW$,ALUN$S,GTSK$S,EXIT$S,CALL,RETURN,DIR$,GLUN$S .MCALL GCML$,GCMLB$,FSRSZ$ % .MCALL TTSYM$ ;USE NEW REESE SYMBOLS ) TTSYM$ ;CAUSE SORO AND BEEH NOT DEFINEDL H;+M; ERROR - DECLARE ERROR. ERROR HANDLING IS VERY SIMPLE, SINCE ALL ERRORS AREO?; FATAL TO THE CURRENT COMMAND. THIS MACRO SETS UP THE ERRORTA; CODE AND JUMPS TO 'ERROR' WHICH WILL PRINT AN APPROPRIATE ERRORE@; MESSAGE AND READ ANOTHER COMMAND. IF NO ARGUMENT IS SPECIFIED!; THE ERROR CODE MUST BE IN R0. ;- E .MACRO ERROR CODE .IF NB,CODE MOV #EE.'CODE,R0N .ENDC JMP ERROR .ENDM ERROR R;+B; KEY - ENTER KEYWORD IN TABLE. AS WELL THE ASCIZ KEYWORD, A WORD=; OR TWO BYTES CAN BE PLANTED AT THE START OF THE ENTRY, ASI<; SPECIFIED BY THE EXTRA ARGUMENTS OF THIS MACRO. IF THERE:; IS JUST ONE, IT IS ASSUMED TO BE A WORD, OTHERWISE THE#; TWO ITEMS ARE TREATED AS BYTES.R;-  .MACRO KEY STRING,DAT1,DAT2 .IF B,DAT2 .WORD DAT1N .IFFE .BYTE DAT1,DAT2 .ENDC .ASCIZ %STRING% .EVEN .ENDM KEY O;+*; ENDKEY - SET END OF KEYWORD TABLE MARKER;- R .MACRO ENDKEY .BYTE 0,0,0,0 .ENDM ENDKEYN B).SBTTL MISCELLANEOUS DATA AND 00EKCD !sDEFINITIONS  T6FLAGS: .WORD 0 ; FLAGS WORD (SEE BELOW FOR FLAG BITS) 5KEYSTT: .WORD 0 ; START IN BUFFER OF CURRENT KEYWORDE 6SOFAR: .WORD 0 ; ADDRESS OF FIRST CHAR BEYOND KEYWORD %SPSAV: .WORD 0 ; INITIAL VALUE OF SP ?TRMPTR: .WORD 0 ; POINTER TO FIRST FREE ENTRY IN TERMINAL LIST Y-TRMLST: .BLKW 32. ; LIST OF TERMINALS TO SETTRMLSE: ; AND THE END -3CHRLST: .BLKW 16. ; LIST OF CHARACTERISTICS TO SETKCHRLSE: ; AND THE END D'RUNUIC: .BLKW ;++005 RUN UIC FOR TASKE I$LUNBUF: .BLKW 6. ; BUFFER FOR GLUN$ (6ERRBUF: .BLKB 80. ; BUFFER FOR FORMING ERROR MESSAGES U:CMDBUF: .BLKB 84. ; GCML BUFFER WITH ONE BYTE OVER AT END T3IOSB: .BLKW 2 ; I/O STATUS BLOCK FOR SET FUNCTIONSA ,TTLUN =1 ; LUN FOR SET CHARACTERISTICS QIO R"GMLLUN =2 ; GET COMMAND LINE LUN %ERRLUN =3 ; LUN FOR ERROR REPORTING L;+; FLAG BITS FOR 'FLAGS'L;- K%FL.TER =000001 ; TERMINAL NAME SEENK&FL.CHR =000002 ; CHARACTERISTIC SEEN.FL.SPD =000004 ; '/DS' SEEN ON TERMINAL NAME"FL.DEF =000010 ; '/DEFAULT' SEEN.FL.EXP =000020 ; EXPLICIT TERMINAL NAME SEEN(FL.HNG =000040 ; '/HANGUP' SWITCH SEEN &.SBTTL DIRECTIVE PARAMETER BLOCKS, ETC I7GCMLB: GCMLB$ 2,TER,CMDBUF,GMLLUN ; GCML CONTROL BLOCK:F+ ; DEPTH OF @ NESTING = 2, PROMPT 'TER>'  $ FSRSZ$ 1 ; ONE FILE OPEN AT A TIME O?CHKQIO: QIOW$ -1,TTLUN,1 ; SILLY QIO TO ENSURE HANDLER RESIDENTT =0SMCDPB: QIOW$ SF.SMC,TTLUN,1,,IOSB,,& ; SET MULTIPLE CHARACTERISTICS QIO D)STTDPB: QIOW$ SF.STT,TTLUN,1,,IOSB,,<.-.>;TERTYP=STTDPB+Q.IOPL ; SET TERMINAL TYPE QION NCRDFDPB: QIOW$ SF.RDF,TTLUN,1,,IOSB ;++005 RESTORE TERMINAL DEFAULTSI P"HNGDPB: QIOW$ IO.HNG,TTLUN,1,,IOSB 0ERRDPB: QIOW$ IO.WLB,ERRLUN,1,,,, ; DPB TO WRITE ERROR MESSAGE 9CMDDPB: QIOW$ IO.WLB,ERRLUN,1,,,, ;++001W) ; DPB TO WRITE OFFENDING COMMAND LINER D.SBTTL ERROR MESSAGESF;+=; ERROR MESSAGES ARE ENTERED INTO THE MESSAGE TABLE USING THES?; FOLLOWING MACRO. THE MESSAGE TABLE IS A LIST OF ITEMS OF THEP; FORM:; ; .BYTE ERROR CODE/; .BYTE NUMBER OF BYTES TO SKIP TO NEXT MESSAGE0; .BYTE FLAGS:B; EF.KWD MESSAGE SHOULD BE ACCOMPANIED BY CURRENT KEYWORD OR ITEM6; EF.TTN MESSAGE SHOULD BE ACCOMPANIED BY TERMINAL ID; IF FL.EXP SET ; .ASCII MESSAGE;BM; IF THE ERROR CODE SPECIFIED TO THE MACRO IS JUST THREE LETTERS, A NEW ERRORNU; COPDE; CODE OF THE FORM 'EE.XXX' IS DEFINED. OTHERWISE, THE ERROR IS ASSUMED TO BEL5; ONE GENERATED BY THE HANDLER, OF THE FORM 'SE.XXX'.A>; THESE NUMBERS START AT 64., TO AVOID CONFLICT WITH QIO ERROR9; RETURNS (NEGATIVE) OR IE.ABO SUB-ERROR CODES (1<=N<=63);- W .MACRO ERR NAME,FLAGS,STRING  .NCHR $$$,NAMED .IF EQ,$$$-3.EE.'NAME=$$$ECDD $$$ECD=$$$ECD+1 .BYTE EE.'NAME  .IFFX .BYTE NAMEC .ENDC $$$=. .BYTE 0 $$$FLG=0P .IRP XXX,O $$$FLG=$$$FLG ! EF.'XXX .ENDR .BYTE $$$FLGD .ENABL LC .ASCII %STRING% .DSABL LC $$$1=.E .=$$$ .BYTE $$$1-. .=$$$1E .ENDM ERR N $$$ECD=64.F EF.KWD =001 EF.TTN =002  R .ENABL LC OERRTBL:C I ERR TMT, ,%ERR ITN, ,.ERR TMS,KWD,8ERR DFP, ,BERR NPR, ,ERR SYN, ,DERR FSE, ,)ERR ITC,KWD,$=ERR CNN,KWD,<'NO' prefix not allowed for this characteristic>F(ERR CLE, ,:ERR NTD, ,3ERR MTT, ,d8ERR TMC, ,ERR AMK,KWD,,$ERR TNS,KWD,#ERR TTP,KWD,nERR BNM,KWD,g ERR SPD,KWD,%ERR RAT,KWD,a!ERR PAR,KWD,O$ERR IE.PRI,TTN,3ERR IE.OFL,TTN,R*ERR IE.DNR,TTN,5ERR IE.IFC,TTN,sERR SE.VAL,TTN,1ERR SE.SPD,TTN,A<ERR SE.SPL,TTN,9ERR SE.LPR,TTN,r<ERR SE.NSC,TTN,BERR SE.UPN,TTN,2ERR SE.NIH, , ERRTBE:i .DSABL LC .EVEN T <.SBTTL KEYWORD TABLESE;+8; FIRST WE HAVE THE 'PRIMARY' KEYWORD TABLE, DRIVEN FROM$; THE KEYWORDS INTRODUCED BY A SLASH;- <PRIKEY:i sKEY TWOSTOPBITS, 1,TC.STBKEY TSB, 1,TC.STB KEY SCOPE, 1,TC.SCPn KEY BINARY, 1,TC.BIN ;++006KEY VERTICALFILL, 1,TC.VFLeKEY VFILL, 1,TC.VFLnKEY NEWLINE, 1,TC.NLaKEY SIMULATEFORMFEED, 1,TC.SFFKEY SFF, 1,TC.SFFiKEY HARDWAREFORMFEED, 1,TC.HFFKEY HFF, 1,TC.HFFrKEY LVF, 1,TC.LVFsKEY HARDWARETAB, 1,TC.HHTKEY HTAB, 1,TC.HHTKEY TAB, 1,TC.HHTEKEY NONSTANDARDTAB, 1,TC.NSTIKEY NSTAB, 1,TC.NSTIKEY BACKSPACE, 1,TC.BSPKEY CARRIAGERETURN, 1,TC.ACRRKEY CR, 1,TC.ACRKEY LOWERCASEKEYBOARD, 1,TC.SMRTKEY LCKEYBOARD, 1,TC.SMRCKEY LOWERCASEINPUT, 1,TC.SMP+KEY LCINPUT, 1,TC.SMPKEY LOWERCASEOUTPUT, 1,TC.SMOFKEY LCOUTPUT, 1,TC.SMOaKEY LOWERCASEPRINTER, 1,TC.SMOKEY LCPRINTER, 1,TC.SMOKEY CONTROLCFLUSH, 1,TC.CCFKEY CCFLUSH, 1,TC.CCFKEY ESCAPESEQUENCE, 1,TC.ESQEKEY LOCALCOPY, 1,TC.LCPKEY ALTMODE, 1,TC.ALTKEY TAPE, 1,TC.TAPKEY HOLD, 1,TC.HLDKEY BLOCKMODE, 1,TC.BLKKEY FORMSMODE, 1,TC.FRMKEY MESSAGES, 5,TC.IMGRKEY KEYBOARD, 5,TC.NKB KEY PRINTER, 5,TC.NPRKEY COMPATIBLE, 1,TC.CEQ.#KEY FULLDUPLEX, 1,TC.FDX ;++004KEY UC0, 1,TC.UC0 ;++003EKEY UC1, 1,TC.UC1 ;++003UKEY UC2, 1,TC.UC2 ;++003PKEY UC3, 1,TC.UC3 ;++003,KEY UC4, 1,TC.UC4 ;++003 KEY UC5, 1,TC.UC5 ;++003FKEY UC6, 1,TC.UC6 ;++003EKEY UC7, 1,TC.UC7 ;++003 KEY UC8, 1,TC.UC8 ;++003 KEY UC9, 1,TC.UC9 ;++003 ;ADDED BY F.BORGERKEY NOECHO, 1,TC.NECKEY SLAVE, 1,TC.SLVMKEY PRIVILEGED, 1,TC.PRI KEY PRI, 1,TC.PRINKEY 8BC, 1,TC.8BC1KEY P8B, 1,TC.P8BL" ;009FB ADDED CHARACTERISTICSKEY ANSISEQUENCE, 3,TC.ANS,KEY ANS, 3,TC.ANSUKEY CSQ, 3,TC.CSQ KEY CONTROLS, 3,TC.CSQTKEY ANSICRT, 3,TC.ANIKEY ANI, 3,TC.ANI0KEY ADVANCEDVIDEO, 3,TC.AVOKEY AVO, 3,TC.AVO.KEY DECCRT, 3,TC.DECKEY DEC, 3,TC.DEC KEY EDIT, 3,TC.EDTKEY REGIS, 3,TC.RGS1KEY AUTO, 3,TC.ABDKEY AUTOBAUD, 3,TC.ABDE OKEY ASR33, 3,T.AS33LKEY KSR33, 3,T.KS33RKEY ASR35, 3,T.AS35EKEY LA30S, 3,T.L30S KEY LA30P, 3,T.L30P8KEY LA36, 3,T.LA36KEY VT05, 3,T.VT05KEY VT50, 3,T.VT50KEY VT52, 3,T.VT52KEY VT55, 3,T.VT55KEY VT61, 3,T.VT61KEY L180, 3,T.L180 KEY V100, 3,T.V100KEY L120, 3,T.L120*KEY SCR0, 3,T.SCR0 ;ADDED TYPES F.BORGERKEY LA12, 3,T.LA12KEY L100, 3,T.L100KEY LA34, 3,T.LA34KEY LA38, 3,T.LA38KEY V101, 3,T.V101KEY V102, 3,T.V102KEY V105, 3,T.V105KEY V125, 3,T.V125KEY V131, 3,T.V131KEY V132, 3,T.V132KEY LA50, 3,T.LA50KEY LQP1, 3,T.LQP1KEY KQP2, 3,T.LQP2KEY BMP1, 3,T.BMP1KEY V2XX, 3,T.V2XXKEY SORO, 3,T.SOROKEY BEEH, 3,T.BEEH ;F. BORGERTKEY USR0, 3,T.USR0 ;++003KEY USR1, 3,T.USR1 ;++003KEY USR2, 3,T.USR2 ;++003KEY USR3, 3,T.USR3 ;++003KEY USR4, 3,T.USR4 ;++003 ,KEY SPEED, SETSPD,KEY READAHEAD, SETRATKEY NAME, SETTER,KEY FILL, SETFILKEY WIDTH, SETWID KEY LENGTH, SETLENKEY HANGUP, SETHNGKEY PARITY, SETPARKEY NOPARITY, SETNPA, AKEY DEFAULT, SETDEFKEY DS, SETDS, QENDKEY 1;+5; NOW THE SECONDARY KEYWORD TABLE FOR READ-AHEAD TYPEE;- RATKEY:H . KEY NONE, 0SKEY DEFERREDPROCESSING, 1E KEY DP, 1.KEY IMMEDIATEPROCESSING, 2 KEY IP, 2+00E[CD !sKEY IMMEDIATEECHO, 3S KEY IE, 3ENDKEY ;+; TABLE FOR PARITY TYPES;- SPARKEY:E KEY EVEN, 1E KEY ODD, 0ENDKEY ;+; NOW THE DH11 EXTERNAL SPEEDS;- ESPDKEY:  EKEY EXTA, S.EXTAKEY EXTB, S.EXTBENDKEY E;+2; NOW THE NUMERIC => SYMBOL MAPPING FOR LINE SPEED;- , .MACRO SPDKEY SPEED .WORD ^D,S.'SPEED .ENDM SPDKEYA DSPDTBL: SPDKEY 0 SPDKEY 50 SPDKEY 75 SPDKEY 100R SPDKEY 110 SPDKEY 134 SPDKEY 150I SPDKEY 200, SPDKEY 300 SPDKEY 600I SPDKEY 1200 SPDKEY 1800 SPDKEY 2000 SPDKEY 2400 SPDKEY 3600 SPDKEY 4800 SPDKEY 7200 SPDKEY 9600SPDTBE:K .SBTTL MAIN CODE;+B; THE LOGIC OF THIS PROGRAM IS VERY SIMPLE. IT CAN BE BROKEN DOWN; INTO THE FOLLOWING STEPS: ; <; 1. GET COMMAND LINE, USING GCML$, AND CHECK FOR NULL LINE,; GCML ERRORS AND SO ONPB; 2. LOOK FOR AN EXPLICIT TERMINAL SPECIFICATION. IF THERE IS NOT@; ONE, PUT THE SINGLE TERMINAL 'TI' IN THE LIST, OTHERWISE CHECK=; THAT THE USER IS UNDER [1,1] AND PROCESS A LIST OF TERMINAL ; SPECIFICATIONS.>; 3. PROCESS THE LIST OF OPTIONS REQUIRED, PUTTING THEM INTO A; LIST OF NAME/VALUE PAIRS@; 4. FOR EACH TERMINAL IN THE LIST PERFORM THE QIO. IF AN ERROR; IS RETURNED ANALYSE IT.F; 5. COME BACK FOR MORE.;- MTER::N8 MOV #77402,-(SP) ;++005 SET UP FOR R-O ACCESS TO HEADER% MOV .CRTSK,R0 ;++005 GET MY ATL NODEM- MOV A.HA(R0),-(SP) ;++005 GET HEADER ADDRESST% CALL @#..SPD3 ;++005 MAP ONTO HEADERO3 MOV H.UIC+60000,RUNUIC ;++005 REMEMBER THE RUN UICO% CALL @#..SPD3 ;++005 RESTORE MAPPINGO+ CMP (SP)+,(SP)+ ;++005 AND CLEAN THE STACKE. MOV SP,SPSAV ; REMEMBER THE BASE OF THE STACK&LOOP: MOV SPSAV,SP ; RESTORE THE STACK# GCML$ #GCMLB ; GET A COMMAND LINET BCC 10$ ; SKIP IF NO ERROR. CMPB G.ERR(R0),#GE.EOF ; END OF INPUT STREAM? BEQ 5$ ; ERROR IF NOTC ERROR CLE ; COMMAND LINE ERROR5$: EXIT$S ; GO AWAY 10$: TST G.CMLD(R0) ; ANY INPUT? BEQ LOOP ; LOOK AGAIN IF NOT( MOV G.CMLD+2(R0),R5 ; GET START OF LINE MOV R5,R1 ; COPY ITU# ADD G.CMLD(R0),R1 ; POINT PAST END $ MOVB #15,(R1) ; AND PLANT A STOPPER, MOV #TRMLST,R4 ; GET START OF TERMINAL LIST, MOV #"TI,(R4)+ ; ASSUME DEVICE WILL BE TI0: CLR (R4)+ ; ...$% CLR FLAGS ; START WITH NO FLAGS SET$$ CMPB (R5),#'/ ; START WITH OPTIONS?* BEQ 70$ ; J IF SO, USE IMPLICIT TERMINAL0 MOV R5,KEYSTT ; REMEMBER START OF TERMINAL LIST& MOV #TRMLST,R4 ; SET TERMINAL POINTER, CMP RUNUIC,#401 ;++005 RUNNING UNDER [1,1]? BNE 35$ ; ILLEGAL IF NOT, BIS #FL.EXP,FLAGS ; SHOW EXPLICIT TERMINALS320$: CMPB (R5)+,#'T ; FIRST DEVICE NAME LETTER 'T'?P BNE 40$ ; ERROR IF NOT+ CMPB (R5)+,#'T ; HOW ABOUT THE SECOND ONE?, BNE 40$ ; J IF NOT+ MOV #"TT,(R4)+ ; YES, SO PLANT DEVICE NAME ! MOV R5,R0 ; COPY BUFFER POINTERR CALL $COTB ; GET UNIT NUMBER% MOV R0,R5 ; RETRIEVE BUFFER POINTERL DEC R5 ; BACK UP TO TERMINATOR CMP R1,#63. ; NUMBER IN RANGE? BHI 50$ ; J IF NOT, ALUN$S #TTLUN,#"TT,R1 ; TRY TO ASSIGN A LUN) BCS 60$ ; J IF FAILED - NOT SYSGENED INF DIR$ #CHKQIO ; TRY A QUICK QIO7 BCS 60$ ; J IF FAILED - PROBABLY HANDLER NOT RESIDENT4( MOV R1,(R4)+ ; IT'S THERE - REMEMBER IT CMPB (R5),#': ; GOT A COLON?$& BNE 30$ ; J IF NOT, THAT'S OK ANYWAY INC R5 ; SKIP IT130$: CMPB (R5),#'/ ; FINISHED WITH THE TERMINALS?G BEQ 70$ ; J IF SOR. CMP R4,#TRMLSE ; RUN OUT OF BUFFER SPACE YET? BLO 20$ ; LOOP IF NOTR ERROR TMT ; TOO MANY TERMINALS 35$: ERROR NPR ; NOT PRIVILEGED40$: ERROR SYN ; BAD SYNTAX%50$: ERROR ITN ; BAD TERMINAL NUMBERF(60$: ERROR TNS ; TERMINAL NOT IN SYSTEM070$: MOV R4,TRMPTR ; REMEMBER HOW MANY TERMINALS M7PROCMD: MOV #CHRLST,R4 ; SET UP SET CHAR BUFFER POINTERG10$: INC R5 ; SKIP THE SLASHN, CALL PRITEM ; PROCESS A SINGLE OPTION ITEM! CMPB (R5),#'/ ; GOT ANOTHER ONE?T BEQ 10$ ; YES - GO PROCESS( CMPB (R5)+,#15 ; AT THE TERMINATOR YET? BEQ 20$ ; YES - GO DO THE WORK ERROR SYN ; SAY SYNTAX ERROR,20$: SUB #CHRLST,R4 ; GET LENGTH OF SET LIST% MOV R4,SMCDPB+Q.IOPL+2 ; SAVE IN DPB 130$: BIT #FL.DEF,FLAGS ;++005 /DEF00Ec6ƈ:Lj*AULT SPECIFIED?T BEQ 35$ ;++005 J IF NOTPB BIT #FL.TER!FL.CHR,FLAGS ;++005 TERMINAL TYPE OR CHARACTERISTICS? BEQ 32$ ;++005 J IF NOT+ CMP RUNUIC,#401 ;++005 RUNNING UNDER [1,1]  BEQ 35$ ;++005 OK IF SOT# ERROR DFP ;++005 ELSE NOT ALLOWEDT>32$: MOV #RDFDPB,R0 ;++005 JUST /DEEFAULT, SO RESTORE DEFAULTS$ CALL DOQIO ;++005 DO THE OPERATION/ BR 80$ ;++005 NO NEED TO BOTHER WITH THE RESTH+35$: BIT #FL.TER,FLAGS ; TERMINAL TYPE SET?D BEQ 60$ ; J IF NOT7 MOVB #SF.STT,STTDPB+Q.IOFN ; ASSUME JUST TERMINAL TYPE BIT #FL.SPD,FLAGS ; SPEED TOO?# BEQ 40$ ; J IF NOT) MOVB #SF.STS,STTDPB+Q.IOFN ; ELSE SAY SOQ-40$: BIT #FL.DEF,FLAGS ; SET DEFAULT AS WELL?  BEQ 50$ ; J IF NOT) BISB #SF.DEF,STTDPB+Q.IOFN ; ELSE SAY SO0%50$: MOV #STTDPB,R0 ; GET DPB ADDRESSR CALL DOQIO ; DO THE DIRECTIVER BCS 100$ ; J IF NOT GOOD460$: BIT #FL.CHR,FLAGS ; ANY CHARACTERISTICS TO SET? BEQ 80$ ; J IF NOT1 MOVB #SF.SMC,SMCDPB+Q.IOFN ; SET UP SET FUNCTION % BIT #FL.DEF,FLAGS ; SET DEFAULT TOO?  BEQ 70$ ; J IF NOT) BISB #SF.DEF,SMCDPB+Q.IOFN ; ELSE SAY SOB%70$: MOV #SMCDPB,R0 ; GET DPB ADDRESSB CALL DOQIO ; DO THE WORK BCS 100$ ; J IF NOT GOOD,80$: BIT #FL.HNG,FLAGS ; ANY HANGUP REQUEST? BEQ 85$ ; J IF NOT" MOV #HNGDPB,R0 ; ELSE GET THE DPB CALL DOQIO ; AND DO THE WORK BCS 100$ ; J IF ERROR1M85$: BIT #FL.TER!FL.CHR!FL.HNG!FL.DEF,FLAGS ;++005 DID WE DO ANYTHING AT ALL?Q BNE 90$ ; J IF SOV% ERROR NTD ; ELSE SAY WE DID NOTHINGN"90$: JMP LOOP ; DO SOME MORE WORK#100$: JMP ERROR ; GO PROCESS ERRORS S+.SBTTL PRITEM -- PROCESS SINGLE OPTION ITEM#;+E; THIS PROCESSES THE NEXT OPTION KEYWORD ON THE LINE AND PERFORMS THE @; APPROPRIATE ACTION. IT FIRST TRIES TO MATCH THE KEYWORD AS IT@; STANDS, THEN IF THAT FAILS TRIES TO REMOVE 'NO' FROM THE FRONTB; AND HAS ANOTHER GO. THE MEANING OF A KEYWORD IS DETERMINED FROME; THE 'SEMANTICS' WORD IN THE KEYWORD TABLE, RETURNED BY 'FNDKEY', ASV ; FOLLOWS:; D; 1. IF THE WORD IS EVEN, IT IS THE ADDRESS OF A ROUTINE TO DISPATCH; TO TO DO THE WORK B; 2. IF THE LOW BYTE IS 1, THE HIGH BYTE IS THE NUMBER OF A BINARY&; CHARACTERISTIC TO BE SET OR CLEARED.<; 3. IF THE LOW BYTE IS 3, THE HIGH BYTE IS A TERMINAL TYPE.@; 4. IF THE LOW BYTE IS 5, THE HIGH BYTE IS THE NAME OF A BINARY>; CHARACTERISTIC WITH NEGATIVE SENSE, I.E. IT IS TO BE CLEARED@; IF THE UN-NEGATED ARGUMENT IS SPECIFIED AND SET IF THE NEGATED; FORM IS SPECIFIED.;- K1PRITEM: MOV R5,KEYSTT ; REMEMBER START OF KEYWORD 6 MOV #PRIKEY,R0 ; GET ADDRESS OF PRIMARY KEYWORD TABLE( CALL FNDKEY ; TRY TO MATCH THE KEYWORD BCC 40$ ; J IF MATCHED OKI# CMPB (R5)+,#'N ; FIRST LETTER 'N'?L BNE 10$ ; BAD KEYWORD IF NOT$ CMPB (R5)+,#'O ; SECOND LETTER 'O'? BNE 10$ ; BAD KEYWORD IF NOT) MOV #PRIKEY,R0 ; GET KEYWORD TABLE AGAINE CALL FNDKEY ; TRY TO MATCH" BCC 20$ ; J IF MATCHED THIS TIME!10$: ERROR ITC ; UNKNOWN KEYWORDE+20$: CMPB (R0),#1 ; BINARY CHARACTERISTIC?K BEQ 43$ ; J IF SOT/ CMPB (R0),#5 ; NEGATED BINARY CHARACTERISTIC?  BEQ 42$ ; YES, GO SET IT$ ERROR CNN ; ELSE SAY NOT NEGATABLE=40$: CMPB (R0),#5 ; IS THIS A NEGATED BINARY CHARACTERISTIC?I# BEQ 43$ ; YES, GO CLEAR THE VALUEW9 CMPB (R0),#1 ; UN-NEGATED KEYWORD MATCH - IS IT BINARY?  BNE 70$ ; J IF NOT+42$: MOVB 1(R0),(R4)+ ; ELSE STORE THE NAMEC" MOVB #1,(R4)+ ; AND THE NEW VALUE BR 50$ ; SKIPT/43$: MOVB 1(R0),(R4)+ ; SET CHARACTERISTIC NAME:! CLRB (R4)+ ; SHOW VALUE OF ZEROT150$: BIS #FL.CHR,FLAGS ; SHOW CHARACTERISTIC SEEND BR 100$ ; AND GO AWAY#70$: CMPB (R0),#3 ; TERMINAL TYPE?N BNE 90$ ; J IF NOT/ BIT #FL.TER,FLAGS ; TERMINAL TYPE ALREADY SET?R BEQ 80$ ; J IF NOT. ERROR MTT ; ELSE SAY MULTIPLE TERMINAL TYPES380$: MOVB 1(R0),TERTYP ; REMEMBER THE TERMINAL TYPE7, BIS #FL.TER,FLAGS ; SHOW TERMINAL TYPE SEEN BR 100$ ; GO AWAY /90$: CALL @(R0) ; LET SOMEONE ELSE DO THE WORK3100$: RETURN ; GO AWAY R2.SBTTL DOQIO -- SEND QIO TO ALL REQUIRED TERMINALS;+B; THIS ROUTINE WILL TAKE A DPB AND PERFORM THE APPROPRIATE REQUESTA; TO EVERY TERMINAL IN THE LIST SE00EkCD !sT UP DURING COMMAND PROCESSING.?; IF ANY TERMINAL FAILS IT WILL REPORT AN APPROPRIATE ERROR ANDF ; GIVE UP.;T ; INPUTS:Y;L; R0 DPB ADDRESS;- :+DOQIO: MOV #TRMLST,R1 ; GET ADDRESS OF LISTP-5$: ALUN$S #TTLUN,(R1),2(R1) ; ASSIGN THE LUNN BCC 10$ ; J IF OK , ERROR TNS ; SHOULD NEVER HAPPEN, BUT STILL 10$: DIR$ R0 ; DO THE DIRECTIVE BCC 20$ ; J IF NO QIO ERRORL* ERROR TNS ; THIS SHOULDN'T HAPPEN EITHER20$: CMP IOSB,#IS.SUC ; OK?A BEQ 40$ ; J IF SO % CMPB IOSB,#IE.ABO ; SUB-CODED ERROR?R BNE 25$ ; J IF NOT MOVB IOSB+1,R0 ; ELSE GET ITW SEC ; SAY BAD BR 50$ ; AND GET OUT#25$: MOVB IOSB,R0 ; GET ERROR CODEA SEC ; SHOW BADI BR 50$ ; AND GET OUT"30$: MOVB IOSB+1,R0 ; GET SUB CODE ERROR ; REPORT THE ERROR+40$: ADD #4,R1 ; GET NEXT TERMINAL IN LISTV$ CMP R1,TRMPTR ; AT END OF LIST YET? BLO 5$ ; LOOP IF NOT CLC ; SHOW GOOD50$: RETURN ; GO AWAYS L%.SBTTL GETNUM -- GET A DECIMAL NUMBERU;+@; THIS ROUTINE READS A DECIMAL NUMBER IF THERE IS ONE, OTHERWISE; IT SAYS THERE WASN'T ONE. ;B ; INPUTS:E;T; R5 BUFFER POINTERD;B ; OUTPUTS:;T ; R0 NUMBERV; R5 BUFFER POINTERR/; CC-C SET IF NOT POINTING AT DIGIT WHEN CALLEDT;- M-GETNUM: CMPB (R5),#'0 ; TOO SMALL FOR NUMBER?  BLO 10$ ; J IF SO# CMPB (R5),#'9 ; TOO BIG?N BHI 10$ ; J IF SOR# MOV R5,R0 ; ELSE COPY THE POINTERO CALL $CDTB ; READ THE NUMBER" MOV R0,R5 ; GET THE POINTER BACK DEC R5 ; BACK UP TO TERMINATOR' MOV R1,R0 ; GET RESULT TO RIGHT PLACEF CLC ; SHOW OODR BR 20$ ; AND GET OUT10$: SEC ; SHOW BADS20$: RETURN ; GO AWAYE (.SBTTL GETSPD -- GET SPEED SPECIFICATION;+C; THIS ROUTINE FIRST TRIES TO READ A DECIMAL NUMBER; IF IT SUCCEEDSE>; IT LOOKS IT UP IN THE TABLE TO CONVERT IT TO A SPEED SYMBOL.C; IF IT FAILS IT TRIES FOR ONE OF THE DH11 EXTERNAL SPEED KEYWORDS.L;C ; INPUTS:N;O; R5 BUFFER POINTER ; ; OUTPUTS:;,; R0 SPEED VALUE; R5 FIRST CHARACTER PAST SPEEDE;- R'GETSPD: CALL GETNUM ; TRY FOR A NUMBERF BCC 5$ ; J IF GOT ONE # MOV #SPDKEY,R0 ; GET KEYWORD TABLE  CALL FNDKEY ; AND LOOK IT UP BCS 20$ ; J IF BAD BR 30$ ; ELSE GO AWAY+)5$: MOV #SPDTBL,R1 ; GET CONVERSION TABLEM#10$: CMP R0,(R1)+ ; THIS ONE MATCH?S BEQ 30$ ; J IF SOO$ TST (R1)+ ; SKIP SECOND TABLE WORD# CMP R1,#SPDTBE ; END OF TABLE YET?E BLO 10$ ; J IF NOT20$: ERROR SPD ; BAD SPEEDB+30$: MOV (R1),R0 ; PICK UP TRANSLATED FORMD RETURN ; AND GO AWAYT P,.SBTTL CHKCOL -- CHECK FOR PRESENCE OF COLON;+?; THIS ROUTINE CHECKS THAT THE CURRENT CHARACTER IN THE COMMANDR8; LINE IS A COLON. IF NOT, IT DIAGNOSES A SYNTAX ERROR.;- B-CHKCOL: CMPB (R5)+,#': ; POINTING AT A COLON?T BEQ 10$ ; OK IF SO# ERROR SYN ; ELSE SAY SYNTAX ERRORB10$: RETURN ; GO AWAY( +%.SBTTL FNDKEY -- TRY TO MATCH KEYWORDD;+D; THIS ROUTINE WILL TAKE A KEYWORD TABLE AND SCAN IT TRYING TO MATCHA; THE KEYWORD AT THE CURRENT CHARACTER POSITION. IF IT SUCCEEDS,OC; IT RETURNS WITH R0 POINTING AT THE FIRST WORD OF THE ENTRY IN THER@; TABLE (WHICH IS AVAILABLE TO THE CALLER), OTHERWISE IT RETURNS@; CARRY SET IF IT FAILS TO FIND A MATCH OR JUST REPORTS AN ERRORC; IF IT SEES AN AMBIGUOUS ABBREVIATION. IT WILL ACCEPT ANY KEYWORDSA; WHICH WILL MATCH OVER ALL ITS LENGTH AND IS NOT AMBIGOUS - NOTEFD; THAT EVEN WHEN A MATCH IS FOUND WE MUST SCAN THE REST OF THE TABLE?; TO CHECK THAT THERE ARE NO AMBIGUITY PROBLEMS. THE FORMAT OFC; THE KEYWORD TABLE IS: ;C-; .WORD USER INFORMATION - NOT USED BY FNDKEYR; .ASCIZ KEYWORD7; .BYTE PADDING IF REQUIRED TO BRING TO A WORD BOUNDARYT;W ; INPUTS:R;; R0 ADDRESS OF KEYWORDO; R5 INPUT BUFFER POINTERT;N ; OUTPUTS:; 4; R0 POINTER TO USER INFORMATION WORD IF MATCH FOUND7; R5 POINTS PAST KEYWORD IF MATCH FOUND, ELSE UNCHANGED ; CC-C SET IF NO MATCH;- H!FNDKEY: CLR R1 ; ASSUME NO MATCHE' MOV R5,R3 ; REMEMBER STARTING ADDRESS .10$: MOV R0,R2 ; REMEMBER START OF THIS ENTRY TST (R0)+ ; SKIP USER WORD TSTB (R0) ; END OF TABLE?E BEQ 60$ ; STRAIGHT OUT IF SO.20$: CMPB (R0)+,(R5)+ 00Es6ƈ:Lj*; MATCH FIRST CHARACTER? BNE 40$ ; J IF NOT(22$: CMPB (R5),#'A ; NEXT CHAR A LETTER? BHIS 25$ ; J IF MAYBE # CMPB (R5),#'0 ; HOW ABOUT A DIGIT?F BLO 30$ ; J IF NOT CMPB (R5),#'9 ; TOO BIG?Y BHI 30$ ; J IF SOE BR 27$ ; ELSE KEEP ON TRUCKIN'*25$: CMPB (R5),#'Z ; IS IT A LETTER THEN?  BHI 30$ ; J IF NOT$27$: TSTB (R0) ; AT END OF KEYWORD? BNE 20$ ; LOOP IF NOTH BR 50$ ; ELSE SAY NO MATCH=30$: CMPB (R5),#'_ ; NO MORE ALPHANUMERIC - IS IT UNDERSCORE?T% BNE 35$ ; J IF NOT - END OF KEYWORDI INC R5 ; ELSE SKIP IT  BR 22$ ; AND LOOK SOME MORE;,35$: TST R1 ; MATCH - IS THERE ALREADY ONE? BNE 70$ ; YES - SAY AMBIGUOUSG$ MOV R2,R1 ; ELSE REMEMBER THIS ONE* MOV R5,SOFAR ; REMEMBER WHERE THE END WAS140$: TSTB (R0) ; NOW SKIP TO END OF THIS KEYWORDI BEQ 50$ ; J IF GOT ITI INC R0 ; ELSE BUMP POINTER BR 40$ ; AND KEEP LOOKINGE050$: ADD #2,R0 ; ROUND POINTER TO WORD BOUNDARY BIC #1,R0 ; ..._& MOV R3,R5 ; GET KEYWORD POINTER BACK BR 10$ ; AND LOOPF.60$: MOV SOFAR,R5 ; GET END OF KEYWORD, IF ANY MOV R1,R0 ; GET ANSWER CLC ; AND EVEN SAY SO BNE 80$ ; J IF SO MOV R3,R5 ; RESET LINE POINTER SEC ; ELSE SAY BADE BR 80$ ; ...&70$: ERROR AMK ; SAY AMBIGOUS KEYWORD80$: RETURN ; GET OUT  #.SBTTL ACTION ROUTINES FOR KEYWORDS$;+C; HERE ARE THE ACTION ROUTINES TO DEAL WITH WHAT FOLLOWS INDIVIDUALN ; KEYWORDS;- .SBTTL SETFIL -- /FILLO A1SETFIL: CALL CHKCOL ; CHECK FOR AND SKIP A COLONO( CALL GETNUM ; TRY FOR A DECIMAL NUMBER BCC 10$ ; J IF OKF! ERROR BNM ; ELSE SAY BAD NUMBER '10$: MOVB #TC.HFL,(R4)+ ; SET CHAR NAME$ MOVB R0,(R4)+ ; AND VALUE- BIS #FL.CHR,FLAGS ; SHOW CHARACTERISTIC SEEN  RETURN ; AND GO AWAYK .SBTTL SETRAT -- /READAHEAD /SETRAT: CALL CHKCOL ; CHECK FOR AND SKIP COLONO+ MOV #RATKEY,R0 ; GET KEYWORD TABLE ADDRESSE" CALL FNDKEY ; LOOK FOR A KEYWORD BCC 10$ ; J IF OKT ERROR RAT ; ELSE COMPLAINF'10$: MOVB #TC.RAT,(R4)+ ; GET CHAR NAMEO' MOVB (R0),(R4)+ ; AND VALUE FROM TABLEU( BIS #FL.CHR,FLAGS ; SHOW SOMETHING SEEN RETURN ; AND GO AWAY: V#.SBTTL SETTER -- SET TERMINAL TYPEV;+>; WE SCAN THE PRIMARY KEYWORD TABLE AND CHECK THAT IF WE GET A;; KEYWORD MATCH IT IS A TYPE 3 (TERMINAL TYPE) ENTRY. NOTEDB; THAT THIS DOES NOT DO AN IMPLICIT 'SET RELEVANT CHARACTERISTICS';- E/SETTER: CALL CHKCOL ; CHECK FOR AND SKIP COLONR+ MOV #PRIKEY,R0 ; GET PRIMARY TABLE ADDRESS  CALL FNDKEY ; TRY FOR A MATCHA BCS 10$ ; J IF NONEO CMPB (R0)+,#3 ; TERMINAL NAME?O BEQ 20$ ; J IF SOR 10$: ERROR TTP ; SAY BAD IF NOT'20$: MOVB #TC.TTP,(R4)+ ; MOVE THE NAME- MOVB (R0),(R4)+ ; AND VALUE( BIS #FL.CHR,FLAGS ; SHOW SOMETHING SEEN RETURN ; AND GO AWAYR A .SBTTL SETSPD -- SET LINE SPEED;+A; BECAUSE WE ALLOW TWO SYNTACTIC FORMS HERE, WE FIRST FIRST CHECKC?; FOR AN OPEN PARENTHESIS AND BEHAVE DIFFERENTLY IF WE SEE ONE.O;- V/SETSPD: CALL CHKCOL ; CHECK FOR AND SKIP COLONN CMPB (R5),#'( ; OPEN PARENS) BEQ 10$ ; J IF SO - MUST BE SPLIT SPEEDA CALL GETSPD ; READ A SPEED) MOVB #TC.RSP,(R4)+ ; MUST SET READ SPEEDV MOVB R0,(R4)+ ; ...% MOVB #TC.XSP,(R4)+ ; AND WRITE SPEEDE MOVB R0,(R4)+ ; ... BR 50$ ; NOW GO AWAY#10$: INC R5 ; SKIP THE PARENTHESISE# CALL GETSPD ; GET THE FIRST SPEED $ MOVB #TC.RSP,(R4)+ ; SET UP READ... MOVB R0,(R4)+ ; ...$ CMPB (R5)+,#': ; FOLLOWED BY COLON? BNE 45$ ; J IF NOT& CALL GETSPD ; NOW GET TRANSMIT SPEED$ MOVB #TC.XSP,(R4)+ ; SET UP IN LIST MOVB R0,(R4)+ ; ...) CMPB (R5)+,#') ; CHECK FOR CLOSING PARENE BEQ 50$ ; J IF OK45$: ERROR SYN ; SYNTAX ERROR,50$: BIS #FL.CHR,FLAGS ; SHOW SOMETHING SEEN RETURN ; GO AWAYP E .SBTTL SETWID -- SET PAGE WIDTH;+;; JUST READ THE NUMBER, ADD ONE AS REQUIRED BY THE HANDLER, ; AND SET UP. ;- /SETWID: CALL CHKCOL ; CHECK FOR AND SKIP COLON4" CALL GETNUM ; READ THE NEW WIDTH BCC 10$ ; J IF OK ! ERROR BNM ; ELSE SAY BAD NUMBER 10$: INC R0 ; BUMP THE WIDTHR& MOVB #TC.WID,(R4)+ ; SET UP IN BUFFER MOVB R0,(R4)+ ; ...* BIS #FL.CHR,FLAGS ; SHOW WE SAW S00E{CD !sOMETHING RETURN ; AND GO AWAYT E!.SBTTL SETLEN -- SET PAGE LENGTH ;+0; THIS IS EVEN EASIER - JUST READ THE NUMBER AND; SET UP THE PARAMETERS;- R&SETLEN: CALL CHKCOL ; CHECK FOR COLON CALL GETNUM ; READ THE NUMBER BCC 10$ ; J IF OKO! ERROR BNM ; ELSE SAY BAD NUMBERL*10$: MOVB #TC.LPP,(R4)+ ; SET UP PARAMETER MOVB R0,(R4)+ ; AND VALUE( BIS #FL.CHR,FLAGS ; SHOW SOMETHING SEEN RETURN ; AND GO AWAY) -.SBTTL SETHNG -- /HANGUP, HANG UP MODEM LINEL R*SETHNG: BIS #FL.HNG,FLAGS ; SHOW WE SAW IT RETURN ; AND GO AWAY  L'.SBTTL SETDS -- /DS, SET DEFAULT SPEEDN S0SETDS: BIS #FL.SPD,FLAGS ; SHOW THIS SWITCH SEEN RETURN ; AND GO AWAYA C.SBTTL SETDEF -- /DEFAULT;+=; BEFORE ALLOWING THIS WE MUST CHECK THAT THE USER IS RUNNING ; UNDER [1,1].;- 03SETDEF: BIS #FL.DEF,FLAGS ;++005 SHOW /DEFAULT SEEN4 RETURN ; AND GO AWAYC F*.SBTTL SETPAR -- SET PARITY CHECKING TYPE;+?; JUST READ THE PARITY TYPE AND SET THE CHARACTERISTICS 'PARITYH$; REQUIRED' AND THE APPROPRIATE TYPE;- R&SETPAR: CALL CHKCOL ; CHECK FOR COLON+ MOV #PARKEY,R0 ; GET KEYWORD TABLE ADDRESSS CALL FNDKEY ; GO LOOK IT UPN BCC 10$ ; J IF FOUND& ERROR PAR ; ELSE SAY BAD PARITY TYPE>10$: MOVB #TC.PAR,(R4)+ ; GET 'PARITY REQUIRED' CHARACTERISTIC MOVB #1,(R4)+ ; AND SHOW WANTED# MOVB #TC.EPA,(R4)+ ; GET TYPE CHARS& MOVB (R0),(R4)+ ; AND SET AS REQUIRED( BIS #FL.CHR,FLAGS ; SHOW SOMETHING SEEN RETURN ; AND GO AWAYT (.SBTTL SETNPA -- SET NO PARITY REQUIRED R4SETNPA: MOVB #TC.PAR,(R4)+ ; GET CHARACTERISTIC NAME CLRB (R4)+ ; SHOW NOT WANTED( BIS #FL.CHR,FLAGS ; SHOW SOMETHING SEEN RETURN ; AND GO AWAYN B 1.SBTTL ERROR -- REPORT AN ERRORL;+?; THIS ROUTINE IS INVOKED BY THE 'ERROR' MACRO. ON ENTRY THEREDA; IS AN ERROR CODE IN R0. THE ERROR TABLE IS SCANNED LOOKING FORR@; THE CORRESPONDING MESSAGE, THEN WHEN IT IS FOUND IT IS PRINTED@; WITH ANY APPROPRIATE TRIMMINGS. THE FORMAT OF THE ERROR TABLE9; IS DESCRIBED UNDER THE 'MACROS AND DATA AREAS' SECTION.B>; IF THE CURRENT COMMAND LINE DIDN'T COME FROM A TERMINAL, THEA; OFFENDING COMMAND LINE IS PRINTED AS WELL AS THE ERROR MESSAGE. ;A ; INPUTS:1;S; R0 ERROR CODEO;A ; OUTPUTS:; :; *** THIS ROUTINE DOES NOT RETURN TO ITS CALLER. INSTEAD3; *** IT JUMPS TO 'LOOP' TO PROCESS ANOTHER COMMANDN;- K-ERROR: MOV #ERRTBL,R1 ; GET START OF MESSAGESN$10$: CMPB R0,(R1)+ ; THIS ONE MATCH? BEQ 20$ ; J IF SOS) MOVB (R1),R2 ; ELSE GET # BYTES TO SKIPR ADD R2,R1 ; DO SOS* CMP R1,#ERRTBE ; PAST LEGAL MESSAGES YET? BLO 10$ ; J IF NOT- ERROR FSE ; ELSE IT'S AN ILLEGAL ERROR CODEI+20$: MOV #ERRBUF,R4 ; GET OUTPUT BUFFER ADR& MOVB (R1)+,R2 ; GET LENGTH OF MESSAGE SUB #2,R2 ; ALLOW FOR FLAGSU* BITB #EF.TTN,(R1) ; TERMINAL NAME WANTED? BEQ 30$ ; J IF NOT- BIT #FL.EXP,FLAGS ; ANY TERMINAL NAME GIVEN?: BEQ 30$ ; J IF NOT) MOV #LUNBUF,R3 ; GET BUFFER FOR LUN INFOI GLUN$S #TTLUN,R3 ; GET THE INFO MOVB (R3)+,(R4)+ ; COPY NAMEY MOVB (R3)+,(R4)+ ; ... $ MOVB (R3),R3 ; GET THE UNIT NUMBER# MOV R2,-(SP) ; SAVE MESSAGE LENGTH& CLR R2 ; CLEAR HIGH ORDER FOR DIVIDE* DIV #10,R2 ; FORM TWO-DIGIT OCTAL NUMBER TSTB R2 ; ANY HIGH DIGIT?T BEQ 25$ ; J IF NOT! ADD #'0,R2 ; YES, SO MAKE ASCII % MOVB R2,(R4)+ ; PUT IT IN THE BUFFERB)25$: ADD #'0,R3 ; MAKE UNITS DIGIT ASCIIY" MOVB R3,(R4)+ ; AND PUT IN BUFFER# MOVB #':,(R4)+ ; NOW PLANT A COLONR$ MOVB #40,(R4)+ ; AND A DELIMITER... MOVB #'-,(R4)+ ; ..., MOVB #'-,(R4)+ ; ...V MOVB #40,(R4)+ ; ...M MOV (SP)+,R2 ; RETRIEVE R2U-30$: BITB #EF.KWD,(R1)+ ; KEYWORD WANTED TOO?R BEQ 50$ ; J IF NOT3 INC R5 ; MAKE SURE WE GET THE OFFENDING CHARACTERB* MOV KEYSTT,R3 ; GET KEYWORD START ADDRESS"40$: MOVB (R3)+,(R4) ; COPY A BYTE) CMPB (R4),#15 ; WAS IT A CARRIAGE RETURNB BEQ 45$ ; J IF SOR$ INC R4 ; BUMP OVER LEGAL CHARACTER CMP R3,R5 ; DONE YET?R BLOS 40$ ; J IF NOT .42$: CMPB (R3),#'0 ; STILL ON AN ALPHANUMERIC? BLO 45$ ; J IF NOT CMPB (R3),#'9 ; VALID DIGIT? BLOS 43$ ; J IF SO CMPB (R3),#'A ; MAY00EFƈ:Lj*BE A LETTER? BLO 45$ ; J IF DEFINITELY NOTA CMPB (R3),#'Z ; WELL? BHI 45$ ; J IF NOT.43$: MOVB (R3)+,(R4)+ ; COPY THIS ALPHANUMERIC BR 42$ ; AND LOOPD!45$: MOVB #40,(R4)+ ; NOW A SPACE)$ MOVB #'-,(R4)+ ; A COUPLE OF DASHES MOVB #'-,(R4)+ ; ...B MOVB #40,(R4)+ ; ANOTHER SPACEM-50$: MOVB (R1)+,(R4)+ ; COPY THE MESSAGE TEXTR SOB R2,50$ ; LOOP TIL DONE$ SUB #ERRBUF,R4 ; GET MESSAGE LENGTH2 MOV R4,ERRDPB+Q.IOPL+2 ; SET UP LENGTH IN MESSAGE DIR$ #ERRDPB ; AND PRINT ITC, BITB #FD.TTY,GCMLB+F.RCTL ; TERMINAL INPUT? BNE 60$ ; J IF SOC8 MOV GCMLB+G.CMLD,CMDDPB+Q.IOPL+2 ; SET UP LENGTH IN DPB DIR$ #CMDDPB ; PRINT THE LINE$60$: JMP LOOP ; RESTART THE PROGRAM .END TERC%.SBTTL GETNUM -- READ AN OCTAL NUMBERS MOVB #'-,(R4)+ ; ...B MOVB #40,(R4)+ ; ANOTHER SPACEM-50$: MOVB (R1)+,(R4)+ ; COPY THE MESSAGE TEXTR SOB R2,50$ ; LOOP TIL DONE$ SUB #ERRBUF,R4 ; GET MESSAGE LENGTH2 MOV R4,ERRDPB+Q.IOPL+2 ; SET UP LENGTH IN MESSAGE DIR$ #ERRDPB ; AND PRINT ITC, BITB #FD.TTY,GCz}OYD<&Kq@p@GP}@sd@ P J@0 x   @Too many terminals4J(6<:74BH:RxZ:dMMaaAINVALID TERMINAL NUMBERbb{'{BSPECIFIED TERMINAL NOT IN SYSTEM||"1CONLY [1,1] USERS ALLOWED TO CHANGE DEFAULT,;DONLY [1,1] USERS ALLOWED TO CHANGE EXPLICIT TERMINAL6ESYNTAX ERROR=FUNRECOGNIZED HANDLER ERROR CODE - FATAL SOFTWARE ERROR8J"JGINVALID CHARACTERISTIC NAMEKKBh6hH'NO' PREFIX NOT ALLOWED FOR THIS CHARACTERISTICii1!IERROR READING COMMAND LINEA3JNO TERMINAL TYPE OR CHARACTERISTIC SPECIFIEDC.,KMORE THAN ONE TERMINAL TYPE SPECIFIED'L1LTOO MANY CHARACTERISTICS IN SINGLE COMMAND,;;MAMBIGUOUS KEYWORD<<-OONTERMINAL NOT IN SYSTEMPPIhhOINVALID TERMINAL TYPEiiPNUMBER REQUIREDIQINVALID LINE SPEEDCRINVALID READ-AHEAD TYPELSINVALID PARITY TYPEPRIVILEGE VIOLATION $9f)TERMINAL NOT IN THIS CONFIGURATION $9^$ DIALUP LINE NOT CONNECTED $9B.+.FUNCTION NOT VALID FOR THIS TERMINALI $939//&LUUILLEGAL VALUEVVe'eILLEGAL LINE SPEED FOR INTERFACEff"P2SPLIT SPEED NOT AVAILABLE ON THIS INTERFACE-L/ ILLEGAL LINE (SPEED OR OTHER) PARAMETERS*I2 INTERFACE DOES NOT HAVE VARIABLE PARAMETERS-O8 NO DYNAMIC SPACE IN HANDLER - TELL SYSTEM MANAGER3C(C CHARACTERISTIC NOT IN THIS SYSTEMDD#Ih)hTWOSTOPBITSTSB SCOPE5BINARYV VERTICALFILL) VFILL NEWLINESIMULATEFORMFEEDSFFHARDWAREFORMFEEDA%HFFLVFHARDWARETABHTABTABNONSTANDARDTAB))NSTABBACKSPACECARRIAGERETURNA> >CRRD%DLOWERCASEKEYBOARDLCKEYBOARDffLOWERCASEINPUTTx+xLCINPUTLOWERCASEOUTPUTLCOUTPUT00FCD !sALOWERCASEPRINTER;LCPRINTERCONTROLCFLUSHCCFLUSHESCAPESEQUENCE!LOCALCOPYALTMODE%TAPEL   $HOLDE'"BLOCKMODE#FORMSMODEMESSAGESA66KEYBOARDBBPRINTER&COMPATIBLEZZ4FULLDUPLEXhIh*UC0+UC1,UC2-UC3.UC4/UC50UC61UC72UC83UC9'NOECHOO(SLAVE)PRIVILEGED%)PRI78BC8P8B;ANSISEQUENCEU;ANSԕ U Z bRwԕUv 6h >OwԕUL W(  , Phԕԕ ԕW: ԕW)EwU lPw ԕU JPw`ԕ>UU UU dD lSw$ԕԕԕ UxԕUjL B`W gFwxB*D `Llgzxɵ&58"lԔԔÒ r‹e0e0Ԑԕ:ԕ ԕ-ԕ-ԕ ѵ  ̔  ע0 ע9עlL6AעZԔԕ ԕ-ԕ-ԕ T~x7(:wT(x0(6<&9D:ԕ ԕW: ԕW)EwU lPw ԕU JPw`ԕ>UU UU dD lSw$ԕԕԕ UxԕUjL B`W gFwxB*D `Llgzxɵ&58"lԔԔÒ r‹e000GHIJLj*KEY TWOSTOPBITS, 1,TC.STBKEY TSB, 1,TC.STBKEY SCOPE, 1,TC.SCP KEY BINARY, 1,TC.BIN ;++006KEY VERTICALFILL, 1,TC.VFLKEY VFILL, 1,TC.VFLKEY NEWLINE, 1,TC.NLKEY SIMULATEFORMFEED, 1,TC.SFFKEY SFF, 1,TC.SFFKEY HARDWAREFORMFEED, 1,TC.HFFKEY HFF, 1,TC.HFFKEY LVF, 1,TC.LVFKEY HARDWARETAB, 1,TC.HHTKEY HTAB, 1,TC.HHTKEY TAB, 1,TC.HHTKEY NONSTANDARDTAB, 1,TC.NSTKEY NSTAB, 1,TC.NSTKEY BACKSPACE, 1,TC.BSPKEY CARRIAGERETURN, 1,TC.ACRKEY CR, 1,TC.ACRKEY LOWERCASEKEYBOARD, 1,TC.SMRTKEY LCKEYBOARD, 1,TC.SMRCKEY LOWERCASEINPUT, 1,TC.SMP+KEY LCINPUT, 1,TC.SMPKEY LOWERCASEOUTPUT, 1,TC.SMOFKEY LCOUTPUT, 1,TC.SMOKEY LOWERCASEPRINTER, 1,TC.SMOKEY LCPRINTER, 1,TC.SMOKEY CONTROLCFLUSH, 1,TC.CCFKEY CCFLUSH, 1,TC.CCFKEY ESCAPESEQUENCE, 1,TC.ESQEKEY LOCALCOPY, 1,TC.LCPKEY ALTMODE, 1,TC.ALTKEY TAPE, 1,TC.TAPKEY HOLD, 1,TC.HLDKEY BLOCKMODE, 1,TC.BLKKEY FORMSMODE, 1,TC.FRMKEY MESSAGES, 5,TC.IMGKEY KEYBOARD, 5,TC.NKB KEY PRINTER, 5,TC.NPRKEY COMPATIBLE, 1,TC.CEQ.#KEY FULLDUPLEX, 1,TC.FDX ;++004KEY UC0, 1,TC.UC0 ;++003EKEY UC1, 1,TC.UC1 ;++003UKEY UC2, 1,TC.UC2 ;++003PKEY UC3, 1,TC.UC3 ;++003,KEY UC4, 1,TC.UC4 ;++003 KEY UC5, 1,TC.UC5 ;++003FKEY UC6, 1,TC.UC6 ;++003EKEY UC7, 1,TC.UC7 ;++003 KEY UC8, 1,TC.UC8 ;++003 KEY UC9, 1,TC.UC9 ;++003 ;ADDED BY F.BORGERKEY NOECHO, 1,TC.NECKEY SLAVE, 1,TC.SLVMKEY PRIVILEGED, 1,TC.PRI KEY PRI, 1,TC.PRINKEY 8BC, 1,TC.8BC1KEY P8B, 1,TC.P8BL KEY ASR33, 3,T.AS33EKEY KSR33, 3,T.KS33+KEY ASR35, 3,T.AS35CKEY LA30S, 3,T.L30S KEY LA30P, 3,T.L30PEKEY LA36, 3,T.LA36KEY VT05, 3,T.VT05KEY VT50, 3,T.VT50KEY VT52, 3,T.VT52KEY VT55, 3,T.VT55KEY VT61, 3,T.VT61"KEY L180, 3,T.L180 ;ADDED TYPES KEY V100, 3,T.V100KEY L120, 3,T.L120KEY SORO, 3,T.SOROKEY BEEH, 3,T.BEEH ;F. BORGERNKEY USR0, 3,T.USR0 ;++003KEY USR1, 3,T.USR1 ;++003KEY USR2, 3,T.USR2 ;++003KEY USR3, 3,T.USR3 ;++003KEY USR4, 3,T.USR4 ;++003 3,T.KS33+KEY ASR35, 3,T.AS35CKEY LA30S, 3,T.L30S KEY LA30P, 3,T.L30PEKEY LA36, 3,T.LA36KEY VT05, 3,T.VT05KEY VT50, 3,T.VT50KEY VT52, 3,T.VT52KEY VT55, 3,T.VT55KEY VT61, 3,T.VT61"KEY L180, 3,T.L180 ;ADDED TYPES KEY V100, 3,T.V100KEY L120, 3,T.L120KEY SORO, 3,T.SOROKEY BEEH, 3,T.BEEH ;F. BORGERNKEY USR0, 3,T.USR0 ;++003KEY TER,TER/-SP=TER,[311,114]TTSYM;#; [ 1 1 , 1 3 ] T E R T K B . C M D;'; BUILD FILE FOR MCR SET TERMINALS TASK;8[11,1]TER/-FP/CP/-FX/MU/PR,[111,13]TER/-SP/CR=[11,13]TER[1,1]EXEC.STB/SS/ STACK =128 TASK =...TER UIC =[2,2] ASG =TI:1:2:3UNITS =3PRI =220LIBR =SYSRES:RO/OPE 146712/KNL00KLMNOPs;%; [ 1 1 , 1 3 ] T I M T K B . C M D ; COMMAND FILE TO BUILD ...TIM;PO[11,1]TIM/PR/MU/-FP/-CP,[111,13]TIM/-SP/CR=[11,13]LIB13/LB:TIM,[1,1]EXEC.STB/SSS/:PAR=GEN1STACK=32 UIC=[2,2]1PRI=221S ASG=TI:2:3 TASK=...TIM/ASK=...SYSLIBR=SYSRES:RO ASG=TI:2:3STACK=64 UIC=[2,2]PRI=150EXTSCT=STORD:600/; !; [ 1 1 , 1 3 ] T K B 1 3 . C M D ; <; INDIRECT FILE TO TASK BUILD THE SYSTEM FUNCTIONS FOR IAS,; EXCLUDING ...SAV AND ...BOO (SEE [11,17]);o@[11,13]ACTTKB;d@[11,13]CMPBLD; @[11,13]LUNTKB; @[11,13]MCRERRTKB ; @[11,13]MCRTKB;@[11,13]MEMTKB;O@[11,13]MFTTKB;'@[11,13]OPETKB;P@[11,13]REATKB;E@[11,13]REDTKB; @[11,13]SETTKB; @[11,13]TIMTKB;r@[11,13]TKTNTKBD;N@[11,13]UNLTKB;O@[11,13]LOATKB;e@[11,13]INSTKB;P@[11,13]REMTKB;P@[11,13]CONTKB; @[11,13]INFOTKB ; @[11,13]RUNTKB;N@[11,13]DEVTKB; @[11,13]TERTKB;N@[11,13]VTDEMOTKBE;U@[11,13]UTLTKB;B@[11,13]SWATKB;o@[11,13]MSMBLD@[11,13]INDBLD@[11,13]SUICTKB]@[11,13]DCLTKB;]@[11,13]HELTKB;1@[11,13]BYETKB;1@[11,13]PWDTKB;1@[11,13]WHOTKB@[11,13]OPETKB;P@[11,13]REATKB;E@[11,13]REDTKB; @[11,13]SETTKB; @[11,13]TIMTKB;r@[11,13]TKTNTKBD;N@[11,13]UNLTKB;O@[11,13]LOATKB;e@[11,13]INSTKB;P@[11,13]REMTKB;P@[11,13];I'; [ 1 1 , 1 3 ] T K T N T K B . C M D ; COMMAND FILE TO BUILD .TKTN.;AR[11,1]TKTN/PR/-CP/FX/-FP,[111,13]TKTN/-SP/CR=[11,13]LIB13/LB:TKTN,[1,1]EXEC.STB/SS/,PAR=GENMSTACK=32 UIC=[2,2]=PRI=249C ASG=CO:1,TI:2 TASK=.TKTN.O/200ASG=TI:1 TASK=...MCRM/I; COMMAND FILE TO BUILD ...MEM;I?[11,1]MEM/PR/-FP,[111,13]MEM/-SP/CR=[11,13]MEM,[1,1]EXEC.STB/SSC/I TASK=...MEMOPRI=221D UIC=[2,2]RSTACK=64ASG=TI:2/OWEVER, IT SHOULD BE SET TO THE SAME VALUE AS "WPRI"O1; (SEE ABOVE) IFTT0/PR=TT0,LB:[1,1]EXEC.STB/SS/STACK=40 UIC=[1,1]PRI=230/C; PROGRAM TO BE USED AFTER SYSGEN TO INITALLY SET UP PRIVILEGE BITS; FOR THE CONSOLE (TT0);9; BECAUSE REESE MCR WILL COME UP WITH RANDOM BITS IN THE D; U.LBN WORD OF THE PUD AND PROBABLY NOT ALLOW THINGS LIKE SAVE, ETC; .MCALL EXIT$S;;&START: MOV .PUDBA,R0 ;GET START OF PUD MOV .PUDEA,R1 ;AND END ALSO%NEXPUD: CMP (R0),#"TT ;CHECK DEV NAME$ BNE NMATCH ;IT DOESN'T COMPUTE !!!) CMPB U.UN(R0),#0 ;IF NAME OK, HOW BOUT # BEQ DOIT ;GOTCHA!!!.NMATCH: ADD #U.SZ,R0 ;BUMP TO NEXT PUD SECTION CMP R0,R1 ;PAST END OF PUD BGE EXIT  BR NEXPUD ;TRY AGAIN+DOIT: MOV #177777,U.LBN(R0);SET ALL BITS ON EXIT: EXIT$S .END STARTTS IN THE D; U.LBN WORD OF THE PUD AND PROBABLY NOT ALLOW THINGS LIKE SAVE, ETC; .MCALL EXIT$S;;&START: MOV .PUDBA,R0 ;GET START OF PUD MOV .PUDEA,R1 ;AND END ALSO%NEXPUD: CMP (R0),#"TT ;CHECK DEV NAME$ BNE NMATCH ;IT DOESN'T COMPUTE !!!) CMPB U.UN(R0),#0 ;IF NAME OK, HOW BOUT # BEQ DOIT ;GOTCHA!!!.NMATCH: ADD #U.SZ,R0 ;BUMP TO NEXT P* :L@@W@"Q@@(,( *"TTe  Q W( &3PROBABLY NOT ALLOW THINGS LIKE SAVE, ETC; .MCALL EXIT$S;;&START: MOV .PUDBA,R0 ;GET START OF PUD MOV .PUDEA,R1 ;AND END ALSO%NEXPUD: CMP (R0),#"TT ;CHECK DEV NAME$ BNE NMATCH ;IT DOESN'T COMPUTE !!!) CMPB U.UN(R0),#0 ;IF NAME OK, HOW BOUT # BEQ DOIT ;GOTCHA!!!.NMATCH: ADD #U.SZ,R0 ;BUMP TO NEXT P00QRSTUVW*tkb @TTYCLR tkb @TTYDUM tkb @TTYLOG tkb @TTYOFF tkb @TTYON tkb @TTYRPT tkb @TTYRPTLP tkb @TTYRPTONEtkb @TTYRPTTWOTTYCLR/PR/-FP,TTYCLR/-SP=TTYCLRLB:[1,1]EXEC.STB/ UIC=[1,1]COMMON=TTYCOM:RWPRI=150// .TITLE TTYCLR;;; PROGRAM TO CLEAR OUT THE TTYCOM SYSTEM USEAGE COMMON AREA;; .MCALL EXIT$S;-START: MOV #RUN,R0 ;POINT TO START OF COMMON% MOV #3*40.,R1 ;NUMBER OF WORDS TO R1 1$: CLR (R0)+ ;CLEAR OUT A WORD SOB R1,1$ ;DO THEM ALL EXIT$S ;AND EXIT .END START*9Ls@(( x B~3sL EXIT$S;-START: MOV #RUN,R0 ;POINT TO START OF COMMON% MOV #3*40.,R1 ;NUMBER OF WORDS TO R1 1$: CLR (R0)+ ;CLEAR OUT A WORD SOB R1,1$ ;DO THEM ALL EXIT$S ;AND EXIT .END START&TTYCOM/-HD/PI,TTYCOM/-SP,TTYCOM=TTYCOM/UNITS=0STACK=0/;:;FILE TO CREATE COMMON AREA FOR LOGGING OF TERMINAL USEAGE;>;TERMINAL DATA IS STORED IN THESE TABLES BY THE TTYLOG PROGRAM;D;EVERY 10 SECONDS, TTYLOG RUNS, AND SCANS ALL THE TIME-SHARING TASKSF;FOR EACH TIME SHARING TASK, TTYLOG INCREMENTS THE APPROPRIATE COUNTERD;FOR THE 3 PROGRAM STATES, (WAITING FOR EVENT, SWAPPED OUT, RUNNING);FOR THE APPROPRIATE TI:;:;THUS THE TABLE HAS 3 ENTRIES (PROPORTIONAL TO TASK STATE)";WITH EACH TABLE TTYNUM WORDS LONG; .TITLE TTYCOM .IDENT /MRH002/'TTYNUM=40. ;DEFINE NUMBER OF TERMINALSG .PSECT DATA;S$;STORAGE FOR NUMBER OF TICKS RUNNING;SRUN:: .BLKW TTYNUM;P(;STORAGE FOR NUMBER OF TICKS SWAPPED OUT;NSWAP:: .BLKW TTYNUMS;I$;STORAGE FOR NUMBER OF TICKS WAITING;YWAITN:: .BLKW TTYNUM0STOFL:: .WORD 0 ;FLAG TO TTYLOG TO STOP RUNNING .END EVENT, SWAPPED OUT, RUNNING);FOR THE APPROPRIATE TI:;:;THUS THE TABLE HAS 3 ENTRIES (PROPORTIONAL TO TASK STATE)";WITH EACH TABLE TTYNUM WORDS LONG; .TITLE TTYCOM .IDENT /MRH002/*9%TPL(<@(*shy`'hYzdhP0h <@TTYNUM;P(;STORAGE FOR NUMBER OF TICKS SWAPPED OUT;NSWAP:: .BLKW TTYNUMS;I$;STORAGE FOR NUMBER OF TICKS WAITING;YWAITN:: .BLKW TTYNUM0STOFL:: .WORD 0 ;FLAG TO TTYLOG TO STOP RUNNING .END EVENT, SWAPPED OUT, RUNNING);FOR THE APPROPRIATE TI:;:;THUS THE TABLE HAS 3 ENTRIES (PROPORTIONAL TO TASK STATE)";WITH EACH TABLE TTYNUM WORDS LONG; .TITLE TTYCOM .IDENT /MRH002/00XYZ[PsB9%TP<@"shy`'hYzdhP0hDTTYDUM/PR/-FP,TTYDUM/-SP=TTYDUMLB:[1,1]EXEC.STB/ UIC=[1,100]COMMON=TTYCOM:RWPRI=150// .TITLE TTYDUM;C;PROGRAM TO DUMP CURRENT CONTENTS OF TTY LOGGING COMMON AREA TO THE;FILE LB:[1,100]TTYDUM.DAT;;DUMP WILL BE IN TWO RECORDS:;6;FIRST RECORD TO CONTAIN 8-WORD STANDARD GTIM$ BUFFER,,;FOLLOWED BY 40. (DECIMAL) WORDS OF RUN TIMEA;2ND RECORD WILL BE 40. (DECIMAL) WORDS OF SWAP TIME, FOLLOWED BY!;40. (DECIMAL) WORDS OF WAIT TIME;' .MCALL GTIM$,DIR$,EXIT$S,MRKT$S,WTSE$S* .MCALL FDBDF$,FDAT$A,FDRC$A,FDOP$A,FSRSZ$( .MCALL OPEN$A,PUT$,CLOSE$,FINIT$,NMBLK$ "START: DIR$ #GETTIM ;GET THE TIME FINIT$ ;SET UP FOR IO.99$: OPEN$A #FDBOUT ;OPEN THE FILE FOR APPEND BCC 98$ ;BRANCH IF OK( MRKT$S #5,#2,#10. ;ELSE WAIT 10 SECONDS& WTSE$S #5 ;FOR SOMEONE TO CLOSE FILE BR 99$ ;AND TRY AGAIN.-98$: MOV #BUF+20,R0 ;POINT TO INTERNAL BUFFERB* MOV #RUN,R1 ;POINT TO RUN TIME IN TTYCOM MOV #40.,R2 ;SET FOR LOOP '1$: MOV (R1)+,(R0)+ ;TRANSFER 40. WORDS, SOB R2,1$ ;TO OUTPUT BUFFERF! MOV #120+20,R1 ;SET LENGTH IN R1 # PUT$ #FDBOUT,,R1 ;WRITE FIRST LINE- MOV #BUF,R0 ;POINT TO INTERNAL BUFFER AGAINS+ MOV #SWAP,R1 ;POINT TO SWAP TIME IN TTYCOMF MOV #120,R2 ;SET FOR LOOPA-2$: MOV (R1)+,(R0)+ ;TRANSFER 120 OCTAL WORDSC SOB R2,2$ MOV #240,R1 ;SET LENGTH IN R1$ PUT$ #FDBOUT,,R1 ;WRITE SECOND LINE CLOSE$ #FDBOUT ;CLOSE THE FILE EXIT$SU 1 .SBTTL BUFFER AREAS;T;BUFFER FOR I/O2;S!BUF: .BLKW 120 ;MAX IS 120 WORDST;S ;GETTIM DPB,;S4GETTIM: GTIM$ BUF ;PUT TIME IN FIRST 8 WORDS OF BUF; ; FILE I/O STUFF;, FSRSZ$ 1F#FDBOUT: FDBDF$ ;DEFINE OUTPUT FDBN7 FDAT$A R.VAR,FD.CR ;VARIABLE LENGTH, CARRIAGE CONTROLN& FDRC$A ,BUF,240 ;BUFFER POINTER, SIZE. FDOP$A 4,DATNAM,,FO.APD ;OPEN OUTNAM ON LUN 4DATNAM: .WORD DEVLEN,DEV .WORD UICLEN,UIC .WORD NAMLEN,NAMEDEV: .ASCII /LB:/C DEVLEN=.-DEVUIC: .ASCII /[1,100]/$ UICLEN=.-UICNAME: .ASCII /TTYLOG.DAT/ NAMLEN=.-NAMEU .EVEN .END START 120 WORDST;S ;GETTIM DPB,;S4GETTIM: GTIM$ BUF ;PUT TIME IN FIRST 8 WORDS OF BUF; ; FILE I/O STUFF;, FSRSZ$ 1F#FDBOUT: FDBDF$ ;*9UL<&@'@s@*t @Yzd@`@X@p@*hp!@}@(y( *( ,# &  ( X,'hp!*&)(P~ s*L`,p PP~,,}Yzd(,rp , 3 },`( (=t <&>> <<NNFPP OO '$ LB:[1,100]TTYLOG.DAT p@*hp!@}@(y( *( ,# &  ( X,'hp!*&)(P~ s*L`,p PP~,,}Yzd(,rp , 3 },`( (=t <&>> <<NNFPP O00\]^_VW*TTYLOG/PR/-FP,TTYLOG/-SP=TTYLOGLB:[1,1]EXEC.STB/ UIC=[1,1]COMMON=TTYCOM:RWPRI=150// .TITLE TTYLOG;,; PROGRAM TO SCAN ATL FOR TIME-SHARING TASKS;<; FOR EACH TIME SHARING TASK, WILL DETERMINE TI OF TASK, AND;7; COUNT ONE "TICK" (WHERE TICKS ARE 6-SECOND INTERVALS)6; IN THE APPROPRIATE STORAGE LOCATION FOR THE 3 STATES; ; RUNNING ; SWAPPED OUT ; WAITING;=; SAID COUNT WILL BE KEPT SEPARATELY FOR EACH TERMINAL ON THE$; SYSTEM IN THE COMMON AREA "TTYCOM";>; OTHER PROGRAMS WILL ALSO ACCESS THIS AREA TO PRODUCE HOURLY,; DAILY, ETC REPORTS.; .MCALL MRKT$S,WTSE$S,EXIT$S; ;R; SET UP 10-SECOND MARK TIME;G/START: MRKT$S #5,#6,#2 ;MARK TIME FOR 6 SECONDST' MOV #.ATLLH,R1 ;AND ATL LISTHEAD -> R1T- MOV PS.EXP,-(SP) ;SAVE PROCESSOR STATUS WORDN( BIS #140,PS.EXP ;INHIBIT TASK SWITCHING524$: MOV (R1),R1 ;START (CONTINUE) GOING THROUGH ATL# CMP R1,.ATLLH+2 ;THROUGH ATL YET ?Y" BEQ PAUSE ;BR IF WE FELL THROUGH9 BIT #AF.IA,A.TF(R1) ;IS THIS SCHEDULER CONTROLLED TASK ?O BEQ 242$ ;BRANCH IF NOTE" MOV A.TI(R1),R2 ;GET TI PUD IN R2& CMP U.DN(R2),#"TT ;IS IT A TERMINAL ? BNE 242$ ;IF NOT, SKIP ITI+ MOVB U.UN(R2),R3 ;GET TI UNIT NUMBER IN R3  BEQ 242$ ;SKIP TT0! DEC R3 ;MAKE HIM A TABLE OFFSETV ASL R3(' MOV A.TS(R1),R2 ;GET TASK STATUS IN R24! CMP R2,#TS.RUN ;IS IT RUNNABLE ?4 BNE 1$ ;BR IF NOTT INC RUN(R3) ;COUNT IT  BR 242$ ;AND DO NEXT&1$: CMP R2,#TS.MRL ;IS IT ON THE MRL ? BLT 2$ ;BR IF NOT# CMP R2,#TS.MRRS BGT 2$E INC SWAP(R3) ;COUNT IT BR 242$.2$: CMP R2,#TS.WF0 ;IS IT WAITING FOR EVENTS ? BLT 242$ ;BR IF NOTT CMP R2,#TS.WF4L BGT 242$2= INC WAITN(R3) ;USE 'WAITN' CAUSE OTHERWISE KEY-WORD CONFLICTR 242$: BR 24$ ;CONTINUE THRU ATL;A;NOW WAIT FOR 10 SECONDS;R.PAUSE: JSR PC,..ENB0 ;RE-ENABLE TASK SWITCHING, WTSE$S #5 ;WAIT FOR THE 10-SECOND MARKTIME TST STOFL ;SHOULD WE STOPT BEQ START ;BRANCH IF NOT% CLR STOFL ;CLEAR THE FLAG FOR LATER? EXIT$S ;AND EXIT# .END START.MRRS BGT 2$E INC SWAP(R3) ;COUNT IT BR 242$.2$: CMP R2,#TS.WF0 ;IS IT WAITING FOR EVENTS ? BLT 242$ ;BR IF *9_MLLh8@ %@ @8@* v@g#@s@y`'@Yzd@*T@"T@s@ΐ@Ґ@*W@W@0@; @1xsD:x< H1xsL:x< P1xsT:x<X!y `Da b^     &  e& ~` !y Da >; 1xs:x< "1xs&:x< *1xs .:x<2!y8jFM;x#L1xs P1xs  V1xs\:x<`1xs h- e& -(   e& -(1xs 1xs 1xs  1xs :x<$1xs (1xs 0!y6j>M;D1xs H1xs  N1xs^T:x<X1xs \1xs f1xs P  e& -(00g͉hЉiщj҉ĉs -----1xs  1xs:x<1xs 1xs "!y(j ,1xs.1xs 41xs61xs <1xs>1xsD1xsF1xsL1xsN1xs\l-     l|1xs 1xs Da 8`!y $Da (` ,1xs0:x< 41xs8:x<:x< B1xsF:t J1xsN:t R1xs<  -(w\  L:t !yj1xs 1xs &j *Da .z 2Da 6 #}: #8r`WjE`[`!y>;:x<M;x#M;:tz #} #82,1z8q`yG L Da   G2 G  G2Tndft^)Da 1xsG*1xs 2Da 6` :1xs >:x< B1xsF:t J1xsN:t R1xs<  -(w\  L:t !yj1xs 1xs &j *Da .z 2Da 6 #}: #8r`WjE`[`!y>;:x<M;x#M;:tz #} #82,1z8q`yG L Da   G2 G  G2Tndft^)Da TTYRPTLP,TTYRPT/-SP=TTYRPTLB:[1,1]F77OTS/LB/LIBR=SYSRES:RO MAXBUF=200ASG=LP:6//TTYONE,TTYONE/-SP=TTYRPTONELB:[1,1]F77OTS/LB/LIBR=SYSRES:RO MAXBUF=200ASG=TI:6//0C PROGRAM TO REPORT CONTENTS OF TTYLOG DATA FILEC:C VERSION TO REPORT ON ONE TERM ONLY, ONE DAY ONLY PER RUNC5 INTEGER*2 REPTIM(8),RUNTIM(40),SWATIM(40),WAITIM(40) CHARACTER*46 BARGRA,BARC CONTENTS OF TTYLOG DAT FILEIC FIRST RECORD = 8-WORD GTIM$ RETURN, (YR,MO,DA,HR,MIN,SEC,TIC,TPS).C FOLLOWED BY 40. WORD RUN-TIME COUNTER,MC SECOND RECORD = 40. WORD SWAP TIME COUNTER, 40.WORD WAIT TIME COUNTERC; BAR(1:46)='!....!....!....!....!....!....!....!....!....!' PRERUN=0. PRESWA=0. PREWAI=0.3 OPEN (UNIT=3,NAME='LB:[1,100]TTYLOG.DAT',ERR=1000,O7 1 STATUS='OLD',ACCESS='SEQUENTIAL',FORM='UNFORMATTED',( 2 RECORDTYPE='VARIABLE')IC(C INPUT REPORT TIME LIMITSC WRITE (5,100)T) 100 FORMAT ('$REPORT DATE (MO,DA,YR) ')  READ (5,110) IMO,IDA,IYRC 110 FORMAT(3I8) WRITE(5,120) ( 120 FORMAT ('$TERMINAL NUMBER (OCT) ') READ (5,125) ITI  125 FORMAT(O6)C C START READING FILECB< 130 READ (3,END=1000) (REPTIM(I),I=1,8),(RUNTIM(I),I=1,40)/ READ (3) (SWATIM(I),I=1,40),(WAITIM(I),I=1,40)A IF (REPTIM(1).LT.IYR) GOTO 1300 IF (REPTIM(1).GT.IYR) GOTO 1000 IF (REPTIM(2).LT.IMO) GOTO 130C IF (REPTIM(2).GT.IMO) GOTO 1000 IF (REPTIM(3).LT.IDA) GOTO 130R IF (REPTIM(3).GT.IDA) GOTO 1000CDC FOUND ONE WANTED, REPORT IT0CM0 WRITE(6,200) ITI, REPTIM(2),REPTIM(3),REPTIM(1)< 200 FORMAT(/,' REPORT FOR TT',O2,' FOR ',I2,'/',I2,'/',I2) WRITE(6,210): 210 FORMAT(' TIME RUN SWAP WAIT 0 20 40',) 1 ' 60 80 100 120 140 16000jՉk׉ljgˉVW* 180')S WRITE(6,220))/ 220 FORMAT(' ---- ------ ------ ------ ')  300 BARGRA(1:46)=BAR(1:46)# FRUN=FLOAT(RUNTIM(ITI))/10.-PRERUN  PRERUN=FLOAT(RUNTIM(ITI))/10. IRUN=IMIN0(45,IFIX(FRUN)/4)+1 BARGRA(IRUN:IRUN)='R'# FSWA=FLOAT(SWATIM(ITI))/10.-PRESWAA PRESWA=FLOAT(SWATIM(ITI))/10. ISWA=IMIN0(45,IFIX(FSWA)/4)+1 BARGRA(ISWA:ISWA)='S'# FWAI=FLOAT(WAITIM(ITI))/10.-PREWAI' PREWAI=FLOAT(WAITIM(ITI))/10. IWAI=IMIN0(45,IFIX(FWAI)/4)+1 BARGRA(IWAI:IWAI)='W'3 WRITE(6,250) REPTIM(4),FRUN,FSWA,FWAI,BARGRA(1:46))' 250 FORMAT(I4,' ',3(F6.1,' '),A46)-" IF (REPTIM(4).NE.18) WRITE(6,251) 251 FORMAT(' ')TC READ FILE AGAIN FOR NEXT HOURA7 READ (3,END=1000) (REPTIM(I),I=1,8),(RUNTIM(I),I=1,40)R/ READ (3) (SWATIM(I),I=1,40),(WAITIM(I),I=1,40)E IF (REPTIM(3).NE.IDA) GOTO 1000 GOTO 300M 1000 CLOSE (3)/ CALL EXIT END:ISWA)='S'# FWAI=FLOAT(WAITIM(ITI))/10.-PREWAI' PREWAI=FLOAT(WAITIM(ITI))/10. IWAI=IMIN0(45,IFIX(FWAI)/4)+1 BARGRA(IWAI:IWAI)='W'3 WRITE(6,250) REPTIM(4),FRUN : p Da $REPORT DATE (MO,DA,YR)  $TERMINAL NUMBER (OCT)  REPORT FOR TT  FOR "/"/" ) TIME RUN SWAP | WAIT 0 20 40" 60 80 100 120 140 160 180  ---- ------ ------ ------ " $ .  !....!l....!....!....!....!....!....!....!....!LB:[1,100]TTYLOG.DATJ  Gj : 7 &.. 777    ~`Wj 1xs. &Da .@F 41xs\81xs`<1xsd @Da 6DE`[ LDa P`T!y \Da `>; d1xshh:x; 61xsn::x<>!yDjRM;x#X1xsp\1xsp b1xsd& - e& -(   e& ~:x< 1xsp1xsp1xsp1xsp $1xs*:x<.1xsp21xsp:!y@jHM;N1xspR1xsp X1xs^^:x<b1xspj&-( e& -( -w-w-wz1xsp1xsp1xsp 1xs :x<$1xsp(1xsp0!y6j :1xs<1xslH1xsJ1xshV1xsX1xsj hDa >V       z` 1xsn:x< 1xs:x< 1xs:x< "1xs&:x<*!y 2Da d6`:!y BDa F`J!yPj T1xs&.&.  0 B@ww7AC r --  `ɕR 0 B@ww7AC r h 1xs.@F 1xsn $1xs.1xs\21xsr61xs\P1xsv V1xs `1xs^j1xs`n1xsxr1xs`|Z--  `ɕS 0 B@ww7A r -- 7 `ɕW     z1xs| 1xs 1xs*1xsd.1xs~21xsdJ1xs P1xs ^Da b` f1xsj:x< n1xsrr:t v1xsxz:th &. - &  e& -z 1xs~ :t 1xs:!y 1xs ,Da 0`4!y:jHM;x#N1xspR1xsp X1xs^:x<b1xspf1xsph6 e& -(   e& -( 1xsp1xsp 1xs:x< 1xsp$1xsp,!y2j:M;@1xspD1xsp J1xs^P:x<T1xspX1xspb1xspf1xspL e& -( -w   d 1xs:x<1xsp1xsp!y$j(1xs*1xsj6j :Da X>z BDa ^F #}J #8z`Wj@F E`[`!y>;:x<M;x#M;:t:z #}  #82,1z8q`yG  Da B  G G  Gf Gt G G  GDa `1xsG00k݉lމm߉҉ĉs  d 1xs:x<1xsp1xsp!y$j(1xs*1xsj6j :Da X>z BDa ^F #}J #8z`Wj@F E`[`!y>;:x<M;x#M;:t:z #}  #82,1z8q`yG  Da B  G G  Gf Gt G G  GDa `1xsGTTYTWO,TTYTWO/-SP=TTYRPTTWOLB:[1,1]F77OTS/LB/LIBR=SYSRES:RO MAXBUF=200ASG=TI:6//0C PROGRAM TO REPORT CONTENTS OF TTYLOG DATA FILEC=C VERSION TO REPORT ON ONE TERMINAL ONLY, REPORT IN HISTOGRAM"C STYLE AVERAGED OVER SEVERAL DAYSC= INTEGER*2 REPTIM(8),RUNTIM(40),SWATIM(40),WAITIM(40),REP(24)" DIMENSION RUN(24),SWA(24),WAI(24) CHARACTER*46 BARGRA,BAR CHARACTER*42 NAMEC CONTENTS OF TTYLOG DAT FILEIC FIRST RECORD = 8-WORD GTIM$ RETURN, (YR,MO,DA,HR,MIN,SEC,TIC,TPS).C FOLLOWED BY 40. WORD RUN-TIME COUNTER,MC SECOND RECORD = 40. WORD SWAP TIME COUNTER, 40.WORD WAIT TIME COUNTERNCO; BAR(1:46)='!....!....!....!....!....!....!....!....!....!'N DAYS=0.3 OPEN (UNIT=3,NAME='LB:[1,100]TTYLOG.DAT',ERR=1000,7 1 STATUS='OLD',ACCESS='SEQUENTIAL',FORM='UNFORMATTED',E 2 RECORDTYPE='VARIABLE')SC2C INPUT REPORT TIME LIMITSCA WRITE (5,100)E( 100 FORMAT ('$START DATE (MO,DA,YR) ') READ (5,110) IMO,IDA,IYR  110 FORMAT(3I8)R WRITE (5,115) ( 115 FORMAT ('$STOP DATE (MO,DA,YR) ') READ (5,110) JMO,JDA,JYR0 WRITE(5,120)E( 120 FORMAT ('$TERMINAL NUMBER (OCT) ') READ (5,125) ITI. 125 FORMAT(O6)C.C GET USER NAME AND LOCATIONCE2 OPEN (UNIT=4,NAME='LB:[1,100]LOGTTY.DAT',ERR=129,$ 1 STATUS='OLD',ACCESS='SEQUENTIAL', 2 RECORDTYPE='VARIABLE')T& 126 READ(4,127,END=128) JJ,NAME(1:42) 127 FORMAT(O2,1X,A42) IF (ITI.EQ.JJ) GOTO 129 GOTO 126A< 128 NAME(1:42)=' ' 129 CLOSE(4)TC5C START READING FILECT< 130 READ (3,END=1000) (REPTIM(I),I=1,8),(RUNTIM(I),I=1,40)/ READ (3) (SWATIM(I),I=1,40),(WAITIM(I),I=1,40)R IF (REPTIM(1).LT.IYR) GOTO 130) IF (REPTIM(1).GT.JYR) GOTO 1000 IF (REPTIM(2).LT.IMO) GOTO 1300 IF (REPTIM(2).GT.JMO) GOTO 1000 IF (REPTIM(3).LT.IDA) GOTO 130C IF (REPTIM(3).GT.JDA) GOTO 1000C,$C FOUND ONE WANTED, ADD IT TO TOTALS J=REPTIM(4) REP(J)=J  IF(J.NE.8) GOTO 140C8C FIRST REPORT FOR A DAYC DAYS=DAYS+1. PRERUN=0. PRESWA=0. PREWAI=0., 140 RUN(J)=RUN(J)+FLOAT(RUNTIM(ITI))-PRERUN PRERUN=FLOAT(RUNTIM(ITI))( SWA(J)=SWA(J)+FLOAT(SWATIM(ITI))-PRESWA PRESWA=FLOAT(SWATIM(ITI))( WAI(J)=WAI(J)+FLOAT(WAITIM(ITI))-PREWAI PREWAI=FLOAT(WAITIM(ITI)) GOTO 130GC C IF DONE, DO HISTOGRAM REPORTC0: 1000 WRITE(6,200) ITI, IMO,IDA,IYR,JMO,JDA,JYR,NAME(1:42)5 200 FORMAT(/,' FOR TT',O2,' FOR ',I2,'/',I2,'/',I2,J" 1 ' TO ',I2,'/',I2,'/',I2,1X,A42) WRITE(6,210) : 210 FORMAT(' TIME RUN SWAP WAIT 0 05 10',) 1 ' 15 20 25 30 35 40 45')T WRITE(6,220)R/ 220 FORMAT(' ---- ------ ------ ------ ')F DO 500 I=1,24 IF (REP(I).EQ.0) GOTO 500 BARGRA(1:46)=BAR(1:46)F FRUN=RUN(I)/(DAYS*10.) IRUN=IMIN0(45,IFIX(FRUN))+1 BARGRA(IRUN:IRUN)='R' FSWA=SWA(I)/(DAYS*10.) ISWA=IMIN0(45,IFIX(FSWA))+1 BARGRA(ISWA:ISWA)='S' FWAI=WAI(I)/(DAYS*10.)R IWAI=IMIN0(45,IFIX(FWAI))+1 BARGRA(IWAI:IWAI)='W'+ WRITE(6,250) I,FRUN,FSWA,FWAI,BARGRA(1:46)T' 250 FORMAT(I4,' ',3(F6.1,' '),A46)  IF (I.NE.18) WRITE(6,251) 251 FORMAT(' ')T 500 CONTINUE CLOSE (3) CALL EXIT END ------ ------ ')F00n׉ljgˉVW* : p Da $START DATE (MO,DA,YR)  $STOP DATE (MO,DA,YR) $TERMINAL NUMBER (OCT)  *  FOR TT  FOR "/"/"| TO "/"/"* ) TIME RUN SWAP WAIT 0 05 10" 15 20 25 30 35 40 45  ---- ------ ------ ------ " $ .  !....!....!....!....!....!....!....!....!....!LB:[1,100]TTYLOG.DATLB:[1,100]LOGTTY.DtAT  :L\b Gj : 7 &.. 7     |`Wj 1xs~ &Da .@F 41xs 8Da ; \1xs`:x< d1xsh:x; .1xs2:x< 61xs::x< >1xsB:x<F!y NDa 8R`V!yf   &  &* -~ Da R>; 1xs:x<!y Da "E`[(j 0Da V:>;x# >1xsB:x< F1xsP:T!yX1xsZ1xsdjn&**  &  e& - e~ 1xs Da x@F j "Da &z,j:M;x#@1xsD1xs J1xsP:x<T1xsX1xsb1xsf1xs l1xsd& -(   e& -( e& ~:x< 1xs1xs!yj&M;,1xs01xs 61xs^<:x<@1xsD1xsN1xsR1xs X1xs^:x<b1xsJ-( ------z1xs!yj 1xs1xs 1xs"1xs(1xs*1xs01xs21xs81xs:1xs@1xsB1xsH1xsd,  7@7777  1p@wp71p 1xs1xs1xs"1xs&1xs*1xs0j:1xs>1xs H1xs L1xs,R1xs V1xs,Z1xs ^1xs^ b1xsR@wp71p@wp7w   z1xs 1xs1xs 1xs 1xs1xs "1xs&1xs0j 8Da ^<` @1xsD:x< H1xsL:x< P1xsZ     &*   |:x< 1xs:x< 1xs:x< 1xs:x< "1xs&:x< *1xs4:8!y @Da D`H!y PDa T`X!y0 &.&.  7 Bp@wAW -- w B`ʕR p@wAW -v1xsj1xs 1xs "1xsP ,1xs~6@F :1xsB1xs J1xs,P1xsb1xs h1xsP r1xsx1xst- w B`ʕS p@w@ -- 7 `ɕW      1xs 1xsP 1xs$1xs61xs  <1xsP JDa N` R1xsV:x< Z1xs^:t b1xsf:t j1xsn:t r1xsPT&. -  -w  b :!y1xs Da $`(!y.j21xs61xs BDa Fz JDa N #}R #8z`Wj@F E`[`!y>;:x<>;x#:zM;x#M;:t #} #82,1z8q`yG l Da   G  G2 G  GL  GVN&F8 J{0Da 1xs G  b :!y1xs Da $`(!y.j21xs61xs BDa Fz JDa N #}R #8z`Wj@F E`[`!y>;:x<>;x#:zM;x#M;:t #} #82,1z8q`yG l Da   G  G2 G  GL  G00op߉҉ĉs-UIC/MU/PR/-FP,UIC/-SP/CR=UIC,LB:[1,1]EXEC.STB/ TASK=...UIC,;REMOVE FOLLOWING NEXT TIME HELBYE IS LINKEDCOMMON=HELBYE:ROLIBR=SYSRES:RO UIC=[1,100]ASG=TI:5PRI=150// .TITLE UIC .IDENT /MRH001/.; .PSECT . ABS.,OVL,RW,LCL,D ;MAX LEN = 000000;.GLOBL IO.WVB;.GLOBL IS.SUC;.GLOBL UC.TTY;.GLOBL UF.OFL;.GLOBL UT.LG ;.GLOBL UT.PR ;.GLOBL UT.SL ;.GLOBL U.C1 ;.GLOBL U.DN ;.GLOBL U.FB ;.GLOBL U.GC ;.GLOBL U.PC ;.GLOBL U.PR ;.GLOBL U.SZ ;.GLOBL U.UN ;.GLOBL $CBOMG;.GLOBL .PUDBA;.GLOBL .PUDEA.; .PSECT ,CON,RW,GBL,I ;MAX LEN = 000610 .MCALL DIR$,GMCR$,EXIT$,QIOW$* .MCALL CLOSE$,OPEN$R,OPEN$A,NBOF$L,GLUN$S< .MCALL FDBDF$,FSRSZ$,FDAT$A,FDRC$A,FDOP$A,NMBLK$,GET$R,PUT$; /UT.HO=10 ;DEFINE HOSTILE BIT FOR PRIVILEGE BYTEB;.7START: DIR$ #GETMCR ;GET MCR COMMAND LINE TO FREE NODEL MOV #"TT,R4 SUB #14,SP ;MAKE ROOM ON STACK MOV SP,R2 ;AND MOVE PTR TO R2  GLUN$S #5,R2 ;AND GET LUN #5 MOV (SP)+,R5 ;"TT"L MOV (SP)+,R5 ; ## ADD #10,SP ;CLEAN STACKL+ BIC #177600,R5 ;NOW A NICE TERMINAL NUMBERO JSR PC,..FDEV MOV R5,R3 ;STORE TT PUD IN R3E# CLRB (R0) ;SET ZERO SENTINEL BYTEN MOV #FDB,R0 ;FDB ADDRESS) MOV #USENAM,R1 ;DATA SET DESC ADDR -> R1$, MOV #UICDSD,R2 ;UIC STRING DESCRIPTOR -> R2" JSR PC,.GTDIR ;FILL IN UIC STRING OPEN$R #FDB CLR R2 ;FOR LATERN# CMP #"TT,U.DN(R3) ;IS THIS A TTY ?E BEQ 13$ ;BRANCH IF YES. CMP #"BA,U.DN(R3) ;OR A BATCH PSEUDO DEVICE ? BEQ 13$$ JMP NOTTTY ;NO, IGNORE THIS DEVICE413$: MOV #PTR1,R0 ;POINT R0 TO START OF MESSAGE LINE< MOVB #40,PTR1+3 ;CLEAR POSSIBLE DOUBLE DIGIT FROM LAST TIME5 MOVB #40,PTR1+4 ;AND/OR POSSIBLE WHERE USERS IS FLAGD6 MOV U.DN(R3),(R0)+ ;ASCII DEVICE NAME TO MESSAGE LINE% MOVB U.UN(R3),R1 ;OCTAL INIT # IN R1C CLR R2 ;CLEAR LEADING 0'S;' JSR PC,$CBOMG ;CONVERT UNIT # TO ASCII  MOV #13.,R5 ;COUNT TO R5$ MOV #PTR1A,R0 ;POINT TO USER BUFFER;111$: MOVB #40,(R0)+ ;FILL USER NAME AND DEVICE WITH SPACESB SOB R5,111$ ;FOR 13 CHARACTERS5 CMP (R3),#"BA ;FOR BATCH, CAN'T FIND NAME AND DEVICES BEQ 333$ ;SO SKIP IT% MOV #HELBYE,R0 ;POINT TO COMMON AREAS* MOVB U.UN(R3),R5 ;UNIT NUMBER IN R5 AGAIN- MUL #20.,R5 ;MAKE HIM OFFSET INTO DATA AREAD( ADD R5,R0 ;NOW HAVE BUFFER FOR THIS TI: MOV HB.USE(R0),R5 ;GET RECORD NUMBER IN USER PROFILE FILE' BEQ 222$ ;IF NONE, DON'T FILL IN NAMEV& BIT #UT.LG,U.PR(R3) ;IF NOT LOGGED ON BEQ 222$ ;DON'T REPORT EITHER# ;READ USER PROFILE FILED GET$R #FDB,#USEBUF,#100,R51- MOV USEBUF,R1 ;FIRST PART OF USER NAME TO R1C% MOV #PTR1A,R0 ;POINT TO ASCII BUFFER3 JSR PC,$C5TA ;CONVERT USER NAME MOV USEBUF+2,R1 ;2ND 3 LETTERSR JSR PC,$C5TAB MOV USEBUF+4,R1 ;LAST 3 JSR PC,$C5TAF! MOVB #40,(R0)+ ;SPACE TO BE NEATN2333$: MOV #PTRDEV,R0 ;POINT TO DEVICE AREA IN LINE) MOV U.LBH(R3),R1 ;GET DEFAULT DEVICE PUD2( MOVB U.DN(R1),(R0)+ ;FILL IN DEF DEVICE MOVB U.DN+1(R1),(R0)+ MOVB U.UN(R1),(R0)O BISB #60,(R0)+#/222$: MOV #PTRCLI,R0 ;POINT TO CLI AREA IN LINEU' MOV U.DACP(R3),R1 ;GET RAD-50 CLI NAME & BEQ 224$ ;BR IF NONE (IE BATCH TERM) CALL $C5TA ;CONVERT NAME BR 225$ ;AND SKIP NEXT-224$: MOVB #40,(R0)+ ;ERASE PREVIOUS CLI NAME MOVB #40,(R0)+; MOVB #40,(R0)+C(225$: CLR R2 ;SUPRESS LEADING 0'S AGAIN# MOV #PTR2,R0 ;POINT PAST USER NAME ( BITB #UF.OFL,U.FB(R3) ;IS HE OFF LINE ?& BNE OFFLIN ;YES REPORT HE'S OFF-LINE( BITB #UT.SL,U.PR(R3) ;OR IS HE SLAVED ?! BNE SLAVED ;REPORT THAT INSTEAD)- BITB #UT.LG,U.PR(R3) ;THEN IS HE LOGGED ON ?L BEQ NOTLOG ;IF NOT REPORT IT& MOVB #'[,(R0)+ ;INITIAL '[' TO BUFFER( CLR R1 ;SET TO FIGURE GROUP,PROG. CODE# BISB U.GC(R3),R1 ;GROUP CODE TO R1B* JSR PC,$CBOMG ;PUT IN OUT BUFFER AS ASCII! MOVB #',,(R0)+ ;SEPERATING COMMA ! CLR R1 ;00p׉ljgˉVW*NOW FOR PROGRAMMER CODE BISB U.PC(R3),R1T JSR PC,$CBOMG ;SAME AS BEFORE# MOVB #'],(R0)+ ;FINISH UP WITH ']'I#5$: CMP R0,#PTR2+9. ;TEST ALIGNMENTU BGE 10$ ;ITS OKS$ MOVB #40,(R0)+ ;NO FILL WITH SPACES BR 5$ ;AND TRY AGAIN>10$: BITB #UT.PR!UT.HO,U.PR(R3) ;IS HE PRIVILEGED OR HOSTILE ? BNE 2$ ;BR IF HE ISI MOV #13.,R2 ;COUNT TO R2&105$: MOVB #40,(R0)+ ;FILL WITH SPACES SOB R2,105$ BR NOTPR ;AND REPORT HIM32$: MOVB #40,(R0)+ ;SET TO REPORT HIM AS PRIVILEGEDP) MOV #PRIMES,R4 ;ADDRESS OF MESSAGE TO R4R MOV #PRILEN,R5 ;LENGTH TO R5R& BITB #UT.HO,U.PR(R3) ;IS HE HOSTILE ? BEQ 11$ ;SKIP IF NOT+ MOV #HOSMES,R4 ;ELSE CHANGE REPORT MESSAGE1 MOV #HOSLEN,R5V11$:&1$: MOVB (R4)+,(R0)+ ;XFER A CHARACTER SOB R5,1$ ;LOOP TILL DONEU3NOTPR: JSR PC,TSTATL ;LOOK FOR TASKS ACTIVE FOR HIM  JSR PC,WRTLIN ;WRITE LINENOTTTY:T)SCRAM: CLOSE$ #FDB ;CLOSE USER PROF FILES DIR$ #EXITDP ;AND EXIT+NOTLOG: MOV #NLGMES,R4 ;MESSAGE START TO R4R MOV #NLGLEN,R5 ;LENGTH TO R5#) JSR PC,FILWRT ;FILL IN AND WRITE MESSAGE# BR NOTTTY ;AND TRY NEXT DEVICE(OFFLIN: MOV #OFFMES,R4 ;MESS START TO R4 MOV #OFFLEN,R5 ;LENGTH TO R5E& JSR PC,FILWRT ;FILL IN AND WRITE LINE BR NOTTTY ;AND TRY NEXT PUD++SLAVED: MOV #SLAMES,R4 ;MESSAGE START TO R4N MOV #SLALEN,R5 ;LENGTH TO R5F% JSR PC,FILWRT ;INSERT AND WRITE LINEN BR NOTTTY ;AND TRY NEXT PUDC;E+;SUB TO INSERT MESSAGE INTO LINE AND DO QIO ;N*FILWRT: MOVB (R4)+,(R0)+ ;XFER A CHARACTER SOB R5,FILWRT ;LOOP TILL DONE$ JSR PC,WRTLIN ;DO SUB TO WRITE LINE RTS PC ;AND RETURN;Y;SUB TO DO ACTUAL QIO;L0WRTLIN: SUB #PTR1,R0 ;SUB START OF MESS FROM END4 MOV R0,QIODPB+Q.IOPL+2 ;FILL IN LENGTH IN PAR. LIST DIR$ #QIODPB ;DO QIO THING& BCS SCRAM ;SCRAM IF DIRECTIVE FAILED" CMPB #IS.SUC,IOST ;SUCCESS CODE ?" BNE SCRAM ;EXIT TO IF QIO FAILED RTS PC ;ELSE DO RETURN;D;SUB TO SCAN ATL;S'TSTATL: MOV #.ATLLH,R5 ;USE R5 FOR SCAN .TSTLOP: MOV (R5),R5 ;GET NEXT/FIRST ATL ENTRY CMP R5,#.ATLLH ;THROUGH ATL ? BNE 1$ ;BR IF NOTS RTS PC ;RETURN IF DONE 1$: CMP A.TI(R5),R3 ;SAME TI'S ? BNE TSTLOP ;NO, TRY AGAIN,& MOV A.TD(R5),R2 ;YES, GET STD POINTER. CMP S.TN+2(R2),RAD... ;IS IT A HANDLER TASK ? BEQ TSTLOP ;YES IGNORE THEMS- CMP S.TN+2(R2),RADACP ;IS IT AN "ACP" TASK ?U BEQ TSTLOP ;YES IGNORE THEMR& CMP S.TN(R2),RAD... ;INSTALLED TASK ? BNE 2$ ;NO, CONTINUE( CMP S.TN+2(R2),RADMAS ;IS IT "...MAS" ? BEQ TSTLOP ;YES IGNORE ITR1 CMP S.TN+2(R2),RADUIC ;IS IT "...UIC" (MYSELF) ?T BEQ TSTLOP ;YES IGNORE IT -2$: MOV S.TN(R2),R1 ;FIRST HALF OF NAME TO R1)) JSR PC,$C5TA ;CONVERT TO ASCII IN BUFFERI' MOV A.TD(R5),R2 ;RESTORE WIPED POINTERR( MOV S.TN+2(R2),R1 ;GET 2ND HALF OF NAME JSR PC,$C5TA ;AND INSERT IT) MOVB #40,(R0)+ ;FILL IN SO IT LOOKS NICE" BR TSTLOP ;AND TRY TRY AGAIN;O$ NBOF$L ;DEFINE NAME BLOCK OFFSETS*USEBUF: .BLKW 40 ;BUFFER TO READ UPF INFOEUSENAM: NMBLK$ PDSUPF,DAT,,SD ;DEFINE FILE NAME FOR USER PROFILE FILET FSRSZ$ 1U/FDB: FDBDF$ ;DEFINE FDB FOR USER PROFILE FILE  FDAT$A R.FIX,,64. FDRC$A FD.RAN,USEBUF,64.N FDOP$A 4,,USENAM,FO.RD!FA.SHRUICSTR: .ASCII /[1,100]/ UICLEN=.-UICSTR .EVENUICDSD: .WORD UICLEN .WORD UICSTR ; EXITDP: EXIT$ ;EXIT DPB GETMCR: GMCR$ ;GET MCR DPB+QIODPB: QIOW$ IO.WVB,5,5,,IOST,,D-PTR1: .BLKB 4 ;MESS START, BUFFER FOR 'TTXX'K .ASCII / /BPTR1A: .ASCII / /+PTRDEV: .ASCII / / ;ROOM FOR DEF DEVICEF$PTRCLI: .ASCII / / ;ROOM FOR CLI'PTR2: .BLKB 74. ;ROOM FOR REST OF LINE  .EVEN IOST: .BLKW 2 ;IO STATUS BUFFER;$;NOW THE ASCII MESSAGESO; %NLGMES: .ASCII / LOGGED OFF// NLGLEN=.-NLGMES"OFFMES: .ASCII / OFFLINE/ OFFLEN=.-OFFMESPRIMES: .ASCII /PRIVILEGED /  PRILEN=.-PRIMESHOSMES: .ASCII /HOSTILE /WHOSLEN=.-HOSMESR!SLAMES: .ASCII / SLAVED/T SLALEN=.-SLAMES .EVEN7RAD...: .RAD50 /.../ ;COMPARE STRING FOR HANDLER TASKS 3RADACP: .RAD50 /ACP/ ;COMPARE STRING FOR ACP TASKSM2RADMAS: .RAD50 /MAS/ ;COMPARE STRING FOR "...MAS";RADUIC: .RAD50 /UIC/ ;COMPARE S00pqrsĉsTRING FOR "...UIC" (MYSELF)M,MRLRAD: .RAD50 /MRL/ ;RAD 50 STRING FOR MRL5MRLSAV: .WORD 0 ;BUFFER TO SAVE MRL LISTHEAD POINTERL .END START=.-OFFMESPRIMES: .ASCII /PRIVILEGED /  PRILEN=.-PRIMESHOSMES: .ASCII /HOSTILE /WHOSLEN=.-HOSMESR!SLAMES: .ASCII / SLAVED/T SLALEN=.-SLAMES .EVEN7RAD...: .RAD50 /.../ ;COMPARE STRING FOR HANDLER TASKS 3RADACP: .RAD50 /ACP/ ;COMPARE STRING FOR ACP TASKSM2RADMAS: .RAD50 /MAS/ ;COMPARE STRING FOR "...MAS";RADUIC: .RAD50 /UIC/ ;COMPARE S*TOL @ @8@*%x@<&p@' q@l2=@2m@*:2@T; z@t<@4{W@L^@*|L@|f@|x@@W@* @@ @@p@*W@:_@[(}@>|{QT4{W[(} N Е ; %; [ 1 1 , 1 3 ] U N L T K B . C M D E; COMMAND FILE TO BUILD ...UNL;EO[11,1]UNL/PR/MU/-CP/-FP,[111,13]UNL/-SP/CR=[11,13]LIB13/LB:UNL,[1,1]EXEC.STB/SS /TPAR=GENESTACK=32 UIC=[2,2] PRI=221 ASG=TI:2:3:6 TASK=...UNLT/320/SYSRES:RO;S2; PRIORITY SHOULD BE HIGH FOR GOOD RESPONSE OR LOW7; FOR SMALLER SYSTEM LOAD. CHOICE IS LEFT TO THE USER.X;SPRI=246I;A9; THE TASK IS AN MCR TYPE TASK SO DEFINE ITS TASK NAME ASE; SUCH.U;B TASK=...DEMS; A; THE TASK EXTENSION DETERMINES .TITLE UNPROTECT.SBTTL INTRO PAGE.IDENT /MRH001/;;A; UNPROTECT IS A SYSTEM PROGRAM DESIGNED TO LET THE INEXPERIENCED>; (OR EXPERIENCED) USER CHANGE THE PROTECTION CODES FOR A FILE?; WITHOUT HAVING TO DO BATTLE WITH THE COMPLEX SYNTAX NEEDED TO"; ACHIEVE THE SAME RESULT WITH PIP;%; A TYPICAL COMMAND SEQUENCE WOULD BE;; MCR>UNP FILENAME.EXT;VERS;G; UNPROTECT WILL CHANGE THE FILE PROTECT CODES FOR THE FILE IN QUESTION8; BACK TO THE SYSTEM DEFAULT LEVELS OF [RWED,RWED,RWE,R];TD; UNPROTECT SUPPORTS WILD CARD OPERATIONS, WITH THE RESTRICTION THAT?; VERSION # MUST BE * OR EXPLICIT IF NAME OR EXTENSION ARE WILD ;E;NB; MAIN PURPOSE IS TO RETURN FILE PROTECT CODE BACK TO NORMAL AFTERB; A COMPANION PROGRAM, PROTECT (...PRO) HAS RESET THE FILE PROTECT.; CHARACTERISTICS TO LEVELS OF [RWE,RWE,RWE,R];U; FRANK BORGER; MICHAEL REESE MEDICAL CENTER ; DEC 1976;C;G5 .MCALL FSRSZ$,FINIT$,FDBDF$,FDOP$A,QIOW$,DIR$,EXIT$SA? .MCALL GMCR$,GCML$,GCMLB$,CSI$,CSI$1,CSI$2,OPEN$,00s׉ljgˉVW*NMBLK$,CLOSE$T DIRSTA=0S?;VALUE TO SET NEW PROTECT CODE TO ([SYSTEM,OWNER,GROUP,WORLD])T;164000=[RWED,RWED,RWE,R]R;164210=[RWE,RWE,RWE,R] NEWPRO=164000.PAGEO.SBTTL MAIN CODE;C;GET COMMAND LINEA;R$START: FINIT$ ;INITIALIZE FCS STUFF(CKMORE: GCML$ #GCLBLK ;GET COMMAND LINE BCC 10$ ;BR IF GOT ONE, MOV #GCLBLK,R0 ;POINT TO GCMD CONTROL BLOCK: CMPB #GE.EOF,G.ERR(R0) ;WAS ERROR END OF A COMMAND FILE ?) BEQ 1$ ;YES TAKE EXIT WITHOUT SCREAMINGM6 DIR$ #GETERR ;NO REPORT WE COULDN'T GET COMMAND LINE1$: EXIT$S ;AND EXIT CPU LEFTT;INTERPERT FILE NAME;E010$: CSI$1 #CSIBLK,GCLBLK+G.CMLD+2,GCLBLK+G.CMLD$ BCS CSIERR ;WOOPS BAD COMMAND LINE CSI$2 #CSIBLK,OUTPUTE& BCS CSIERR ;SOMETHING WRONG HERE TOO; );CHECK FOR WILD CARDS AND ACT ACCORDINGLYL' CLR WILDFL ;CLEAR FLAG FOR WILD CARDST MOV #FDB,R0 ;R0 -> FDB MOV R0,R1% ADD #F.FNB,R1 ;R1 -> FILE NAME BLOCKW0 MOV #CSIBLK+C.DSDS,R2 ;R2 -> DATASET DESCRIPTOR. MOV #DEFFNB,R3 ;R3 -> DEFAULT FILE NAME BLOCK JSR PC,.PARSE8 BIT #NB.SVR!NB.STP!NB.SNM,N.STAT(R1) ;SEE IF WILD CARDS BEQ DOOPEN ;NONE, JUST OPEN1 INC WILDFL ;SET WILD CARD FLAG/FIND: JSR PC,.FIND ;FIND NEXT FILE THAT MATCHES2 BCC DOOPEN ;GOT ANOTHER ONE ! CLR WILDFL ;LAST ONE CLEAR FLAGK) JMP CKMORE ;AND TRY FOR ANOTHER COMMANDW"DOOPEN: OPEN$ #FDB ;OPEN THE FILE BCS FILERR ;COULDN'T OPEN FILE;READ ATTRIBUTES DIR$ #READAT ;DO DIRECTIVE$ BCS RWATER ;BR IF DIRECTIVE FAILED# CMPB IOSTAT,#IS.SUC ;DID READ GO ?T BNE RWATER ;BR IF READ FAILED;CHANGE PROTECT CODE MOV #NEWPRO,FATBUFI;WRITE ATTRIBUTESD DIR$ #WRITAT ;DO DIRECTIVE$ BCS RWATER ;BR IF DIRECTIVE FAILED$ CMPB IOSTAT,#IS.SUC ;DID WRITE GO ? BNE RWATER ;NO;WE'RE DONE, TRY FOR MOREF"DONE: CLOSE$ #FDB ;CLOSE FILE OUT# TST WILDFL ;DOING MORE THAN ONE ?P BNE FIND ;YES TRY FOR MORE' JMP CKMORE ;AND TRY FOR MORE COMMANDS .PAGET.SBTTL ERROR CONDITIONSR;I$;ERROR IN COMMAND STRING INTERPERTER;/CSIERR: DIR$ #BADNAM ;REPORT BAD NAME FROM CSI JMP CKMOREF;E;;COULD NOT FIND/OPEN FILE#;P FILERR: DIR$ #NOFILE ;REPORT IT JMP CKMORE;;D;C#;FAILED TO READ OR WRITE ATTRIBUTESA;D RWATER: DIR$ #BADATT ;REPORT IT CLOSE$ #FDB ;JUST IN CASEE JMP CKMORER.PAGE.SBTTL DPB'S AND DATAS;I3;READ/WRITE FILE ATTRIBUTES DPB'S AND CONTROL BLOCKN;;4READAT: QIOW$ IO.RAT,4,1,,IOSTAT,,; ,RATBLK: .BYTE -2,2 ;READ FILE PRO CODE ONLY .WORD FATBUF ;BUFFER ADDRESS! .WORD 0 ;END OF BLOCK INDICATORA;A;F4WRITAT: QIOW$ IO.WAT,4,1,,IOSTAT,,;#,WATBLK: .BYTE 2,2 ;WRITE FILE PRO CODE ONLY .WORD FATBUF ;BUFF ADDRESS! .WORD 0 ;END OF BLOCK INDICATOR ;$;A7FATBUF: .BLKW 2 ;BUFFER FOR FILE ATTRIBUTES (PRO CODE)R.PAGEG$.SBTTL ERROR MESSAGES AND DIRECTIVES;T ;BAD FILE NAME ERRORN4BADNAM: QIOW$ IO.WVB,5,1,,IOSTAT,,%BADNA1: .ASCII /UNP -- BAD FILE NAME/  BADNAL=.-BADNA1 .EVEN;Y;.;D;T3 ;TRIED TO MODIFIFY OTHER UIC AND NOT PRIVILEGEDO4BADUIC: QIOW$ IO.WVB,5,1,,IOSTAT,,@BADUI1: .ASCII /UNP -- NON-SYSTEM UIC MAY ONLY MODIFY OWN FILES/ BADUIL=.-BADUI1 .EVEN;O;0;E;O ;COULD NOT FIND/OPEN FILEB4NOFILE: QIOW$ IO.WVB,5,1,,IOSTAT,,<NOFIL1: .ASCII ?UNP -- COULD NOT FIND/(OPEN FOR WRITE) FILE? NOFILL=.-NOFIL1 .EVEN;O;B;1;O) ;COULD NOT READ/WRITE FILE ATTRIBUTESN4BADATT: QIOW$ IO.WVB,5,1,,IOSTAT,,?BADAT1: .ASCII ?UNP -- FAILED TO READ/WRITE FILE PROTECT CODES?A BADATL=.-BADAT1 .EVEN;T;B) ;FAILED TO OPEN INDIRECT COMMAND FILEN4GETERR: QIOW$ IO.WVB,5,1,,IOSTAT,,<GETER1: .ASCII /UNP -- FAILED TO OPEN INDIRECT COMMAND FILE/ GETERL=.-GETER1 .EVEN;T;N;L!IOSTAT: .BLKW 2 ;IOSTATUS BUFFER-.PAGEN.SBTTL FILE GOODIEST1WILDFL: .WORD 0 ;FLAG FOR DOING WILD CARD THINGS; ;U ;DEFINE FCS WORK AREAI FSRSZ$ 2A# ;DEFINE DEFAULT FILE NAME BLOCK, ;(FILE SY:XXXXXX.TSKDEFFNB: NMBLK$ ,TSK,,SYR! ;DEFINE FILE DESCRIPTOR BLOCK- FDB: FDBDF$N ;I00s tuĉsNITIALIZE FILE OPENE% FDOP$A 4,CSIBLK+C.DSDS,DEFFNB,FO.MFY . ;SPEC FILE INFO FROM CSI AND DEFAULT FROM  ;DEFAULT FILE NAME BLOCK;I;T;M$ ;DEFINE GETMCR (INDIRECT) MACROSEGCLBLK: GCMLB$ 2,PRO,,5 ;GET COMMAND LINE IND DEPTH OF 2, PROMPT WITHD% ;PRO, BUFFER AT CMDBUF, VIA LUN 5W; ;D;I- ;DEFINE COMMAND STRING INTERPERTER MACROSZ CSI$ + ;DEFINE COMMAND STRING INTERPETER BLOCKECSIBLK: .BLKB C.SIZE .END START,,SYR! ;DEFINE FILE DESCRIPTOR BLOCK- FDB: FDBDF$N ;I .TITLE UTL .SBTTL INTRO PAGE;>; UTL IS A TASK TO DISPLAY THE STRUCTURE OF THE USER TASK LIST;?; UTL WILL DISPLAY THE RELATIVE RANKING OF TASKS ON EACH OF THE&; N LEVELS AND WILL DISPLAY FLAGS FOR:; NEXT TASK TO SWAP; NEXT TASK TO LOAD; ROBIN POINTER; FOR EACH LEVEL;; AFTER RUNNING VIA A:; ; MCR>UTL;F; UTL WILL DISPLAY THE UTL AND UPDATE ITSELF EVERY 60 TICKS (1 SECOND);G; A CONTROL C WHILE THE TASK IS RUNNING WILL CAUSE IT TO EXIT AFTER THE; END OF THE NEXT DISPLAYI; G; A NUMBER TYPED IN WILL CAUSE UTL TO RESET HIS MARK TIME COUNT TO THAT 5; NUMBER OF TICKS TO PERMIT CHANGING THE DISPLAY RATE ;K0 .MCALL DIR$,QIOW$,QIO$,MRKT$,EXIT$S,GMCR$,WTSE$.PAGE .SBTTL DIRECTIVE PARAMTER BLOCKS;N;GET MCR;O GMCR: GMCR$P;T;QIO TO WRITE LINE;-QIO: QIOW$ IO.WVB,5,1,,IOST,, ; ;ATTACH WITH AST'S QIO;D*ATT: QIOW$ IO.ATA,5,1,,IOST,,;O#;60 TICK MARK TIME (CAN BE CHANGED)L;UMARKTM: MRKT$ 2,60.,1; ;WAIT FOR MARK TIMEA; WAIT: WTSE$ 2T;D.PAGEL.SBTTL STORAGE AREAI'EXITFL: .WORD 0 ;FLAG FOR EXIT PENDINGI; ;ROOM FOR 6 LEVELS OF UTL DATA; ;FOR EACH LEVEL WILL STORE;R;NUMBER OF TASKS AT THIS LEVEL;ROBIN POINTER;NEXT JOB TO LOAD POINTERM;NEXT JOB TO SWAP POINTERQ;TBUFF: .BLKW 30.;:;OD;THE TASK WILL PUSH ON HIS STACK THE TASK NAMES OF THE VARIOUS TASKS';IN EACH UTL LEVEL AND THE RECOVER THEMN;.PAGE .SBTTL CODEE)START: DIR$ #GMCR ;GET MCR TO SET RECALL, TST EXITFL ;EXIT PENDING BEQ 1$ ;NO EXIT$S ;YES%1$: MOV SP,SPSAVE ;SAVE STACK POINTER - MOV #BUFF,R5 ;POINT TO UTL DATA STORAGE AREAE' MOV #.UTLLH,R0 ;GET USER TASK LISTHEADS2STORE: MOV (R0),R0 ;GET FIRST/NEXT LEVEL TO STORE CMP R0,#.UTLLH ;BACK AT START ? BEQ SHOW ;IF YES SHOW THEM$ MOV Z.NE(R0),(R5)+ ;SAVE # OF TASKS* MOV Z.NT(R0),(R5)+ ;SAVE NEXT TASK TO RUN+ MOV Z.LD(R0),(R5)+ ;SAVE NEXT TASK TO LOADC+ MOV Z.NS(R0),(R5)+ ;SAVE NEXT TASK TO SWAPD" MOV Z.NE(R0),R4 ;GET LOOP COUNTER TST EXITFL ;EXIT PEN*lĎL @ d@* @ @8@ v@<&D@<&Kq@*<&9@:2@Az@LR8,@U @*U@@Uv@|w`T@tzs@,{p!@*2{ X@4{@7{%@ ~h8@z@*@@f@hd@s@*|f@p@榀>@즀>@즀@*P<@%@9x@?T@@*.R@.k~@$Az*  Q     w!߃\DL n&\?M* *UTL -- ILLEGAL NUMBER OF L!EVELSUTL -- NODE PICK ERROR 'y'%8SNUMBER OF SCHEDULING LEVELS: %M ,(,J5Z  &\?M 'y 'y" $4 'y$*$TIME BETWEEN SCHEDULER PROMOTIONS: %M JCLOCK TICKS PP&$ &4 'y$Q'yV*VBATCH PARAMETERS:%N%8SBATCH QUANTUM: %|M CLOCK TICKS h(hl5V x&Q 'yl 'yV"$Q 'y*%8STIME BETWEEN BATCH SCHEDULES: %M CLOCK TICKS (5 T&Q 'y 'y"$y 'y%SYSTEM IDLE TIME: %M CLOCK TICKSI  <&y 'yG'y)MAXIMUM TASK SIZE: %M 32-WORD BLOCKS  $&G 'y.R'y*%8SALLOCATION FACTOR: %M TICKS PER %M (MEMORY BLOCKS *5 E0.k~ .R 'y 'y* ( UTL * .k~|y( ,-- ILLEGAL TIME SLICE VALUE 'y6'6MAXIMUM TIME SLICE: %M CLOCK TICKS HH.6 &|y 'y6&'yZ*ZQUANTUM PARAMETERS:%N%8SQUANTUM CONSTANT: %M CLOCK TICKS `(`r5&Z && 'yr 'yZ"$?f f f'yTIMESHARING PRIORITY: %M * \  n ?f 'y?l &nT*t    eEtmTrZ " 77  $&p8 mTnTcT'yPROMOTION TABLE SIZE: %M *|  w B~$mT 'y\?M"\DL*  0 UTL -- INVALID LEVEL N % 0FUMBER ! \DL\DL즀'y*%8S%8SLEVEL: %M TIME FACTOR: %M CLOCK TICKS `*`w75" |E % 'y 'y* 6 wU`  ?l 6&L* l  &Ltzs7{%,{p!2{ X$eW* BwVW 2 0, &* D U`",  9x9x 0Q* e  ~5 *s 0eW ~h8"f(eW$DX s,*X0,hdUv3-d" "dwl D&0, 4{3-dLR8,U ",Awl7 7 &U@  4{3-d@7 7 7 7 7 7 (HKH HQ}u~u~7 7 7 7 7 $u~u~ u~ u~u~7 7  *u~u~ u~.l 즀>$eW((^    & ?l n@l n.l "n*   UTL -- TIMES(l n eWeW*HARING TASKS ACTIVEUTL -- TIMESHARING* NOT ACTIVEUTL -- OPERATION ILLEGAL -- TIMESHARING ACTIVE' * UTL -- GET COMMAND LINE ERRORUTL -- C*0SI SYNTAX ERRORUTL -- ILLEGAL SWITCH *VOR SWITCH VALUE SCHEDULER |PARAMETERS   :2   <&9<&Kq<&D '  0 ` UTL>0 `   . . P Xz SH   {QG w> >x> >Xz DI  {QG w2 2x Xz EN   {QG w x Xz TP   {QG w| |x Xz  SP     {QG wH HxP PXz( (PT      {QG  w   x   Xz0 0TS@      {QG  @ w   x  H HXz8 8IT& && & {QG w x Xz@ @MT, ,, , {QG w x XzH HBQ2 22 2 {QG w` `xh hXzP PBS8 88 8 {QG w x XzX XQC> >> > {QG wX Xx` `Xz` `AMD DD D {QG w x Xzh hAT J JJ J {QG w x Xzp pTF@P PPP    {QG@ w   xL LXzx xLVZ ZZ Z" "{QG w\ \x, ,Xz {QG  x;#; [ 1 1 , 1 3 ] U T L T K B . C M D;E[11,1]UTL/PR/-FP,[111,13]UTL/-SP=[11,13]LIB13/LB:UTL,[1,1]EXEC.STB/SS/ASG=TI:1LIBR=SYSRES:RO TASK=...UTLPRI=220/+UTX/PR/-FP/MU,UTX/-SP=UTX,LB0:[1,1]EXEC.STB/ TASK=...UTXPRI=222ASG=TI:5 STACK=256//00x%׉ljgˉVW* .TITLE UTX .SBTTL INTRO PAGE;>; UTL IS A TASK TO DISPLAY THE STRUCTURE OF THE USER TASK LIST;?; UTL WILL DISPLAY THE RELATIVE RANKING OF TASKS ON EACH OF THE&; N LEVELS AND WILL DISPLAY FLAGS FOR:; NEXT TASK TO SWAP; NEXT TASK TO LOAD; ROBIN POINTER;; AFTER RUNNING VIA A:;); MCR>UTL (TO RUN EVERY 60 CLOCK TICKS); OR:;+; MCR>UTL 15 (TO RUN EVERY 15 CLOCK TICKS);;;; UTL WILL DISPLAY THE UTL AND UPDATE ITSELF EVERY N TICKS ;G; A CONTROL C WHILE THE TASK IS RUNNING WILL CAUSE IT TO EXIT AFTER THE ; END OF THE NEXT DISPLAYR; <; APRIL 1979 -- FRANK BORGER (MICHAEL REESE MEDICAL CENTER);K7; CORRECTED FOR BUFFER OVERFLOW 19-APR-79 LARRY SIMPSON ;G;O;;N1 .MCALL DIR$,QIOW$,MRKT$,EXIT$S,GMCR$,WTSE$,ASTX$I .MCALL TTSYM$ TTSYM$  .SBTTL DIRECTIVE PARAMTER BLOCKS;C;GET MCR; GMCR: GMCR$;C;QIO TO WRITE LINE; -QIO: QIOW$ IO.WVB,5,1,,IOST,,E;L;QIO FOR DIRECT CURSOR ADDRESS;/CURQIO: QIOW$ IO.WLB!IO.WAL,5,1,,,,C;E;QIO FOR BEEHIVE CURSOR MOVE;T/BEEQIO: QIOW$ IO.WLB!IO.WAL,5,1,,,,E;M; GET TERMINAL DPB AND IOSB;(GETTYP: QIOW$ SF.GSC,5,1,,IOTY,,IOTY: .WORD 0 ;DPB"TYPE: .WORD 0 ;TERM TYPE GOES HERE;I;ATTACH WITH ^C AST QIO.;L$ATT: QIOW$ IO.ATA,5,1,,IOST,,;P;DETACHL;SDET: QIOW$ IO.DET,5,1,,IOST,,<>;;SET VT100 TO VT52 MODEI;Q.SVT52: QIOW$ IO.WLB!IO.WAL,5,1,,,,;F%;SET VT100 BACK TO VT100 MODE ON EXITI; 0SV100: QIOW$ IO.WLB!IO.WAL,5,1,,,,;I ;EXIT AST'SE;T ASTEXI: ASTX$ ;W#;60 TICK MARK TIME (CAN BE CHANGED) ; MARK: MRKT$ 2,60.,1;;WAIT FOR MARK TIMEC;1 WAIT: WTSE$ 2>;O .SBTTL STORAGE AREAW/ESCCHR: .ASCIZ /=/ ;ESCAPE CHARACTER FOR SOROCS'EXITFL: .WORD 0 ;FLAG FOR EXIT PENDING<"NLEVEL: .WORD 0 ;NUMBER OF LEVELS)SPSAVE: .WORD 0 ;SAVE STACK POINTER HERET!IOST: .WORD 0,0 ;IO STATUS BLOCKO;LLINE:, .BYTE 33>HOME: .ASCII /*/ .BYTE 3304CLEAR: .ASCII /E/ ;INITIALLY HOME & CLEAR FOR SOROC .BLKW 3 ;6 NULLS SO IT WORKS9 .ASCII / LEVEL 1 LEVEL 2 LEVEL 3 LEVEL 4/D$ .ASCII / LEVEL 5 LEVEL 6/ LINELN=.-LINE .EVEN; ;ASSURE TERMINAL IN VT52 MODEE;EV52: .BYTE 33 ;'ESC'  .BYTE 133 ;'[' .BYTE 77 ;'?'  .BYTE 62 ;'2'  .BYTE 154 ;'l' L V52L=.-V52;;;RETURN TERMINAL TO VT100 MODE;;V100: .BYTE 33 ;'ESC'  .BYTE 74 ;'<' ( .BYTE 33 ;'ESC' SEQUENCE FOR TELEVIDEO. .BYTE 133 ;'[' IGNORED ON VT100'S AND SW10'S .BYTE 66 ;'6'& .BYTE 63 ;'3' .BYTE 73 ;';'S .BYTE 61 ;'1'S .BYTE 42 ;'"'  .BYTE 160 ;'P' V100L=.-V100;D;BEEHIVE CURSOR ADDRESSING LINEE;/BEEBUF: .BYTE 33 .ASCII /H/A .BYTE 12N .REPT 6 .ASCII / / .ENDR .EVEN;36CURBUF: .BLKB 200 ;LARGE BUFFER FOR CURSOR ADDRESSING CUREND: .BLKB 34 ;OVERFLOW AREA;N;T7;SAVE AREA FOR LAST DISPLAY, SAVE NUMBER OF TASKS/LEVEL<;CURRENTLY MAXIMUM OF 6 LEVELS;TDISNUM: .BLKW 61; ;ROOM FOR 6 LEVELS OF UTL DATA;FOR EACH LEVEL WILL STORE; ";0() NUMBER OF TASKS AT THIS LEVEL;2() ROBIN POINTER;4() NEXT JOB TO LOAD POINTER-;6() NEXT JOB TO SWAP POINTERS;GBUFF: .BLKW 24.F;B; D;THE TASK WILL PUSH ON HIS STACK THE TASK NAMES OF THE VARIOUS TASKS';IN EACH UTL LEVEL AND THE RECOVER THEM ;F F.SBTTL INTRO CODEG-START: DIR$ #GETTYP ;++002 GET TERMINAL TYPEV CMP TYPE,#T.V100 ;IS IT A VT100 BEQ 24$ ;IF SO, USE VT52 STUFF CMP TYPE,#T.VT52 ;VT 52 ?? BNE 1$ ;NO.24$: MOVB #'Y,ESCCHR ;YES, CHANGE ESC SEQUENCE MOVB #'H,HOME ;HOME SEQUENCET# MOVB #'J,CLEAR ;AND CLEAR SEQUENCER'1$: CMP TYPE,#T.BEEH ;IS IT A BEEHIVE ?X BNE 2$ ;NO6 MOV #-1,ESCCHR ;YES, FLAG IT AS NON-CURSOR ADDRESSING$ MOVB #'H,HOME ;CHANGE HOME SEQUENCE# MOVB #'J,CLEAR ;AND CLEAR SEQUENCED&2$: DIR$ #GMCR ;GET MCR TO SET RECALL! MOV #GMCR+6,R0 ;BUMP PAST "UTX " # JSR PC,$CDTB ;GET # OF TICKS /SCAN  CMP R1,#10 ;DO CHECK OF RANGE  BLT 21$ ;TOO LOW, THEN BRANCH % CMP R1,#300. ;EVERY 5 SECONDS IS MAX, BGT 21$/ MOV R1,MARK+M.K00x-#w$ĉsTMG ;CHANGE MARK TIME MAGNITUDEE"21$: DIR$ #ATT ;ATTACH WITH AST'S! CMP TYPE,#T.V100 ;IS IT A VT100?  BNE 23$ ;NOPEE; DIR$ #SVT52 ;SET VT100 TO VT52 MODE SO CURSOR STUFF WORKSI%23$: MOV #.UTLHD,R0 ;GET UTL LISTHEADE CLR R1 ;CLEAR COUNTERE'22$: MOV (R0),R0 ;GET NEXT/FIRST LEVEL  INC R1 ;COUNT A LEVELR' CMP (R0),#.UTLHD ;BACK AT UTL LISTHEAD# BNE 22$ ;NO # MUL #13.,R1 ;MAKE R1 SIZE OF LINEB ADD #10.,R1$ MOV R1,QIO+Q.IOPL+2 ;FILL IN LENGTH DIR$ #QIO ;WRITE HEADER LINE R.SBTTL STORE UTL DATAAREGO: TST EXITFL ;EXIT PENDINGT BEQ 1$ ;NO! CMP TYPE,#T.V100 ;IS IT A VT100?V! BNE 2$ ;NO. JUST DO THE DETATCHT- DIR$ #SV100 ;RETURN TERMINAL TO VT100 MODE.K2$: DIR$ #DET ;DETACH TERMINALL EXIT$S ;YES%1$: MOV SP,SPSAVE ;SAVE STACK POINTERG- SUB #30,SP ;MAKE ROOM FOR OUR SUB CALLS ETC- MOV #BUFF,R5 ;POINT TO UTL DATA STORAGE AREA2! CLR NLEVEL ;CLEAR LEVEL COUNTERZ' MOV #.UTLHD,R0 ;GET USER TASK LISTHEADO MOV (R0),R0 ;GET FIRST LEVEL.STORE: MOV Z.NE(R0),(R5) ;SAVE NUMBER OF TASKS$ BIC #177400,(R5)+ ;CLEAR UPPER BYTE* MOV Z.NT(R0),(R5)+ ;SAVE NEXT TASK TO RUN+ MOV Z.LD(R0),(R5)+ ;SAVE NEXT TASK TO LOAD + MOV Z.NS(R0),(R5)+ ;SAVE NEXT TASK TO SWAP # MOVB Z.NE(R0),R4 ;GET LOOP COUNTER $ BEQ 2$ ;DON'T STORE IF LEVEL EMPTY2 MOV Z.FJ(R0),R1 ;GET FIRST JOB NODE ADDRESS IN R1*1$: MOV X.TD(R1),R2 ;GET STD OF TASK IN R2 MOV S.TN(R2),-(SP) ;SAVE NAME MOV S.TN+2(R2),-(SP)L$ MOV X.TI(R1),-(SP) ;SAVE TI POINTER CMP SP,#20 ;ARE WE TOO FULL ?M& BLT SHOW ;IF SO, DON'T SAVE ANY MORE. MOV R1,-(SP) ;SAVE UTL NODE ADDRESS FOR AN ID) MOV (R1),R1 ;GET NEXT JOB NODE ADDRESSS(2 SOB R4,1$ ;DO UNTIL ALL JOBS AT THIS LEVEL FOUND2$: INC NLEVEL ;COUNT A LEVEL MOV (R0)+,R0 ;GET NEXT LEVELE CMP R0,#.UTLHD ;BACK AT START ? BEQ SHOW ;IF SO DISPLAYE# BR STORE ;ELSE TRY FOR NEXT LEVELO ..SBTTL SHOW TASKSOSHOW:I;2/;DURING THIS CODE, REGISTER USAGE IS AS FOLLOWS,;P6;R0 = POINTER TO CURRENT OUTPUT BUFFER BEING ASSEMBLED.;R1 = POINTER TO LEVEL STORAGE AREA IN "BUFF:";R2 = ,;R3 = USED TO READ SAVED DATA BACK OFF STACK%;R4 = CURRENT LEVEL (0 = FIRST LEVEL)A1;R5 = CURRENT TASK AT THIS LEVEL (0 = FIRST TASK)V;F$ MOV SPSAVE,SP ;RESET STACK TO START& MOV SP,R3 ;SET R3 TO READ SAVED DATA SUB #30,R3  CLR R4 ;START AT LEVEL 00 MOV #CURBUF,R0 ;POINT R0 TO OUTPUT ASCII BUFFER- MOV #BUFF,R1 ;POINT TO FIRST LEVEL IN "BUFF"S0DISLEV: MOV #1,R5 ;START AT FIRST TASK IN LEVEL TST ESCCHR ;IS IT A BEEHIVEB BPL DISTAS ;NO: CMP R0,#CURBUF ;ANYTHING LEFT TO OUTPUT FROM LAST LEVEL ? BEQ 111$ ;NO SUB #CURBUF,R0 ;GET SIZE ) MOV R0,CURQIO+Q.IOPL+2 ;AND RESET IN DPBU DIR$ #CURQIO ;DO ITL MOV #CURBUF,R0 ;RESET POINTER-111$: ;DO LF,SPACE POSITIONING FOR BEEHIVER MOV R1,-(SP) ;SAVE USED REG MOV R4,R1 ;GET LEVEL- MUL #13.,R1 ;MULTIPLY BY 13 TO GET POSITIONS) ADD #3,R1 ;ACCOUNT FOR INITIAL ESC,H,LFE' MOV R1,BEEQIO+Q.IOPL+2 ;FILL IN LENGTH  MOV (SP)+,R1 ;RESTORE REG0 DIR$ #BEEQIO ;MOVE CURSOR TO TOP OF LEVEL LIST5DISTAS: CMP R5,0(R1) ;DONE WITH TASKS AT THIS LEVEL ?/ BGT LEVDON ;IF SO, SEE IF NEED TO DELETE SOMER& JSR PC,DISONE ;ELSE DISPLAY THIS TASK INC R5 ;COUNT A TASK BR DISTAS ;AND DISPLAY ANOTHER2LEVDON: DEC R5 ;MAKE ACTUAL NUMBER OF TASKS FOUND MOV R4,R2 ;GET LEVEL # ASL R2 ;MAKE IT WORD OFFSET13 ADD #DISNUM,R2 ;POINT TO NUMBER OF TASKS LAST TIMEU CMP R5,(R2) ;COMPARE BEQ NODIFF ;SAME NUMBERF BGT ADDSOM ;MORE THIS TIME* MOV R2,-(SP) ;SAVE R2 WIPED IN ERASE CALL JSR PC,ERASE ;SOME TO ERASE MOV (SP)+,R2 ;RESTORE HIM9ADDSOM: MOV R5,(R2) ;MORE TASKS, UPDATE NUMBER DISPLAYEDE.NODIFF: ;SAME NUMBER OF TASKS AT THIS LEVEL INC R4 ;GO TO NEXT LEVEL! ADD #10,R1 ;UPDATE BUFF POINTERN+ CMP SP,#20 ;ARE WE NEARING END OF STACK ?" BLT FULL ;IF SO, QUIT DISPLAYING0 CMP R4,NLEVEL ;CHECK NUMBER OF LEVELS DISPLAYED) BLT DISLEV ;IF NOT ALL, DISPLAY ANOTHERM/FULL: CMP R0,#CURBUF ;ANYTHING LEFT TO OUTPUT ?O BEQ NONE ;NO SUB #CURBUF,R0 ;GET SIZEI) MOV R0,CURQIO+Q.IOPL+2 ;AND RESET IN DPB DIR$ #CURQIO ;00x5׉ljgˉVW*DO ITH#NONE: MOV #CURBUF,R0 ;RESET POINTER  DIR$ #MARK ;WAIT ONE SECONDF DIR$ #WAIT ;WAIT FOR ITA JMP REGO ;AND GO AGAIN; ;ENTRY FOR CONTROL C SEENP;E%CCENT: INC EXITFL ;SHOW EXIT PENDINGA DIR$ #ASTEXI ;EXIT AST L.SBTTL DISPLAY TASKA ;ENTER WITH,,;R0 = POINTER TO CURRENT ASCII OUTPUT BUFFER-;R1 = POINTER TO LEVEL STORAGE AREA IN "BUFF"M ;R2 = AVAILABLE (WIPED BY $C5TA));R3 = POINTER TO SAVED TASK DATA ON STACKT%;R4 = CURRENT LEVEL (0 = FIRST LEVEL)S9;R5 = CURRENT TASK AT THIS LEVEL (1 = FIRST TASK @ LEVEL)E+DISONE: MOV R1,-(SP) ;SAVE R1 FOR LATER USE TST ESCCHR ;IS THIS A BEEHIVER BPL 222$ ;NO' MOVB #12,(R0)+ ;YES ,JUST DO LINE-FEEDC4 BR 333$ ;AND FORGET ABOUT DIRECT CURSOR ADDRESSING%222$: MOVB #33,(R0)+ ;FILL IN ESC SEQT MOVB ESCCHR,(R0)+ ;FOR SCOPEE MOV R5,R1 ;GET TASK NUMBER ADD #41,R1 ;MAKE IT Y POSITION MOVB R1,(R0)+ MOV R4,R1 ;GET LEVEL #( MUL #13.,R1 ;13 COLUMNS BETWEEN LEVELS ADD #40,R1 ;COLUMN 1 = 40R MOVB R1,(R0)+/333$: MOV -(R3),R1 ;GET FIRST HALF OF TASK NAMEV JSR PC,$C5TA ;CONVERT TO ASCIIR( MOV -(R3),R1 ;GET 2ND HALF OF TASK NAME JSR PC,$C5TA2 MOVB #40,(R0)+ ;PUT IN SPACE, MOV -(R3),R1 ;GET PUD POINTER% MOVB U.DN(R1),(R0)+ ;FILL IN TI NAMEG MOVB U.DN+1(R1),(R0)+ MOV R2,-(SP)T MOV R3,-(SP)(" MOVB U.UN(R1),R3 ;GET UNIT NUMBER CLR R2 ;CLEAR UPPER REGA+ DIV #10,R2 ;SEPERATE DIGITS OF DEV NUMBER * BIS #60,R2 ;CONVERT UPPER DIGIT TO ASCII MOVB R2,(R0)+0 BIS #60,R3 ;CONVERT REM (LOWER DIGIT) TO ASCII MOVB R3,(R0)+ MOV (SP)+,R3 ;RESTORE REG'S MOV (SP)+,R2E MOV -(R3),R2 ;GET UTL ADDRESS1 MOV (SP)+,R1 ;RECOVER LEVEL STORAGE AREA POINTERR' MOVB #40,(R0) ;PUT IN A SPACE FOR FLAGD$ CMP R2,2(R1) ;IS IT ROBIN POINTER ? BNE 1$G MOVB #162,(R0) ;IF SO, SET FLAG'1$: CMP R2,4(R1) ;OR NEXT JOB TO SWAP ?  BNE 2$ MOVB #163,(R0) ;IF SO, SET FLAG'2$: CMP R2,6(R1) ;OR NEXT JOB TO LOAD ?M BNE 3$S MOVB #154,(R0) ;IF SO, SET FLAG/3$: INC R0 ;ADJUST FOR SPACE OR FLAG CHARACTERL TST ESCCHR ;A BEEHIVE ? BPL 4$ ;NO% MOV R3,-(SP) ;YES, DO 12. BACKSPACESE MOV #12.,R3 ;SET COUNTER&555$: MOVB #10,(R0)+ ;PUT IN BACKSPACE SOB R3,555$ ;12. TIMES MOV (SP)+,R3A,4$: JSR PC,OUTCHK ;CHECK FOR BUFFER OVERFLOW RTS PC E.SBTTL ERASE OLD TASKI;OA;SUB TO ERASE TASKS AT END OF A LEVEL WHEN THE NUMBER OF TASKS ATV;THAT LEVEL DECREASES ;G ;CALL WITH;R&;R5 = FIRST TASK AT LEVEL TO BE ERASED.;(R2) = NUMBER OF TASKS LAST TIME WE DISPLAYED;R4 = CURRENT LEVEL ;R.ERASE: MOV (R2),R2 ;NUMBER OF TASKS LAST TIME+ SUB R5,R2 ;MINUS NUMBER NOW = ERASE COUNTV# MOV R2,-(SP) ;SAVE COUNT FOR LATER0ERALOO: MOV R1,-(SP) ;SAVE R1R TST ESCCHR ;IS THIS A BEEHIVEA BPL 222$ ;NO' MOVB #12,(R0)+ ;YES ,JUST DO LINE-FEED4 BR 333$ ;AND FORGET ABOUT DIRECT CURSOR ADDRESSING&222$: MOVB #33,(R0)+ ;PUT IN AN ESCAPE MOVB ESCCHR,(R0)+ ;FOR SCOPEG MOV R5,R1 ;GET TASK NUMBER8 ADD #42,R1 ;MAKE IT Y POSITION (OFFSET BY 1 CAS R5 WAS ;LAST DISPLAYED TASK)R MOVB R1,(R0)+ MOV R4,R1 ;GET LEVEL #( MUL #13.,R1 ;13 COLUMNS BETWEEN LEVELS ADD #40,R1 ;COLUMN 1 = 40V MOVB R1,(R0)+ 333$: MOV #12.,R1 ;DO 12 SPACES1$: MOVB #40,(R0)+ SOB R1,1$ MOV (SP)+,R1 ;RESTORE R1  INC R5 ;COUNT AN ERASE TST ESCCHR ;A BEEHIVE ?3 BPL 4$ ;NO% MOV R3,-(SP) ;YES, DO 12. BACKSPACES  MOV #12.,R3 ;SET COUNTER&555$: MOVB #10,(R0)+ ;PUT IN BACKSPACE SOB R3,555$ ;12. TIMES MOV (SP)+,R3;,4$: JSR PC,OUTCHK ;CHECK FOR BUFFER OVERFLOW SOB R2,ERALOO ;AND DO R2 ERASES" SUB (SP)+,R5 ;MAKE R5 RIGHT AGAIN RTS PC1 1! .SBTTL CHECK FOR BUFFER OVERFLOWR;;6; OUTCHK - SUBROUTINE TO CHECK FOR BUFFER OVERFLOW AND8; PRINT OUTP BUFFER AND RESET BUFFER POINTER IF OVERFLOW;O ;ON ENTRYC; &; R0 HAS CURRENT OUTPUT BUFFER POINTER;3 ; ON EXIT;; R0 UNCHANGED IF NO OVERFLOWB2; ELSE IF OVERFLOW R0=CURBUF AND BUFFER PRINTED;(; OTHER REGISTERS USED - NONE,;$OUTCHK:M3 CMP R0,#CUREND ;ARE WE OVERFLOWING OUTPUT BUFFER ?E BLT 1$ ;NO SUB #CURBUF,R0 ;YES, GET SIZE* MOV R0,CURQIO+Q.IOPL+2 ;SET LENGTH OF00x=y>zBĉs QIO! DIR$ #CURQIO ;OUTPUT THE BUFFERF* MOV #CURBUF,R0 ;RESET OUTPUT BUFFER START 1$: RTS PC .END STARTRINT OUTP BUFFER AND RESET BUFFER POINTER IF OVERFLOW;O ;ON ENTRYC; &; R0 HAS CURRENT OUTPUT BUFFER POINTER;3 ; ON EXIT;; R0 UNCHANGED IF NO OVERFLOWB2; ELSE IF OVERFLOW R0=CURBUF AND BUFFER PRINTED;(; OTHER REGISTERS USED - NONE,;$OUTCHK:M3 CMP R0,#CUREND ;ARE WE OVERFLOWING OUTPUT BUFFER ?E BLT 1$ ;NO SUB #CURBUF,R0 ;YES, GET SIZE* MOV R0,CURQIO+Q.IOPL+2 ;SET LENGTH OFzxD:2@@\DL@t@@[(}@:@@4{W@:@t@8@:@ n( )RR S   W`J H p:2 :: "*:: 4WBN:a TXJ\:bh:: rHz:: .M s<)=*E MM LEVEL 1 LEVEL 2 LEVEL 3 LEVEL 4 LEVEL 5 LEVEL 6WHjH[?2l<[63;1"pH - - YFHMJI- ,H3J/ W W ,w-  "HNRttx4{W|4{W~! fA \ P V 2  7dfWp ewvq! b  *t@8\DL.2V@FNdTjv eJJ! J e!7! 7Bdw f Е ЕН~Ae!PWp"J.4[-]<=>[=]<+>!C*& *L [?2l<HJK words *r hrs mins Nodes: (Max Hole: "* 2 8Errors: @0 @N/A* ***************************************************************** +---* ----+-------+-------+-------+-------+-*0------+-------+------- **************V***************************************|*************2IAS V3.2 00000000000* Intermediate3Since Startup PDS *Batch Null Swap RealUptime XXX* Hrs XX Mins Active Jobs  0 *Active Task  TSKNAM  *NULL**:COut C 0K  *`*** Some tasks not displayed *** * 00zE׉ljgˉVW* * # % % % % %*D*D f OUTw- :2 f*jPUT LUN ERROR - CHECK LUN 1Invalid terminal type}0}D (D  D ":: D:a "$h 6 ":br ~ ~r  6        $&$BC2E GIR:TLXv& 2 :L"v*T3T n9D T&D*׭> +J h׭$939" *!7 84׭7 ( DvӁv *׭Ç׭   "  n vv *6D? 75D"Lh8$ %*\Wt j 7 U<:j&* V &ff  V "xKw F*Ftnff7 vU<*ln `N v   *t  `&  I  "I* ,   q ~  $* v  n  f  ^ 9 &9*V @ N  F  > G @&G**0  '#e?Wu\G. "*PPdw!j 5 \G. \G*veDDm 7!<@QGw$*d & 7d  t% "*  + x   ( u~* U`~ p eW*x  ) " x *47  ,  ",*Zf ׭׭w, n d f $9!T;*\  RV 3  \:V *V b 0 x t!sV*=K Е  Ka}(@Q*I ` < <&I+fu~u~d;$d;* w 7 #w7&  d; *>Е0 r Е0 x  :r":&x*d U`  m- L* @w.7  7! "D " p !~D " * X   A  A  "   [(}"[(}& *@ ,e@7!4C  C *fF e% e C l   C*!4   %   *eeBe t  $ r   *w p Wt@ ЕK jTT, @&,*\w%|%PAЕ @8"W&W*$0E   @`:(}9x*J*~C  v WtC`:*peOWt we Е * Е0   rD :(D*   C~ C~  *DhD 7 `X 6 N L% D D *Fꃇ”   *.  7 B ww  *T     m *z    b  XY* F Fe dBe 2G*  H RNC*F   C  *C ~ ~    *8A ~ ~7w*^ wPҔˋ%@e%* B`ʔe@ˋ&@E K   "GP}*k89 @ Kk  F U<*  4E e $e*  N &*B B$ 2* &0 $*(0*hd  w%d *Е % Е w6l@`Е W :6* W  $ lȭh$ w,$*x '"w  *27 WAWa7  U<*&r7 ,w" $7 w*L J p탷nf7 7 7 n7 \(r7 `7 7 R7 R7 X@ wNwp; FIVE WORDS. THE DEFAULT VALUE ALLOWS FOR 64. TASKS. IF THE7; EXTENSION IS LESS THAN 32 DEMO WILL CRASH THE SYSTEM.; EXTTSK=320/SYSRES:RO;2; PRIORITY SHOULD BE HIGH FOR GOOD RESPONSE OR LOW7; FOR SMALLER SYSTEM LOAD. CHOICE IS LEFT TO THE USER.;PRI=246;9; THE TASK IS AN MCR TYPE TASK SO DEFINE ITS TASK NAME AS; SUCH.; TASK=...DEZ;A; THE TASK EXTENSION DETERMINES THE MAXIMUM NUMBER OF TASKS WHICHC; CAN BE DISPLAYED AT ONCE. EACH TASK (FIXED, ACTIVE '<======== don't exceed arrows ========>$ TERM TYPE SPEED LOCATION $ TERM TYPE SPEED LOCATION # ----- ---- ----- -------- # ----- ---- ----- -------- & TT0: LA36 600 CONSOLE & TT1: LA34 300 Computer Off & TT2: LA36 600 Treatment Plan.& TT3: VT100 9600 Hans & TT4: VT100 9600 Danny & TT5: VT100 9600 Renate & TT6: VT100 9600 Frank & TT7: BEEHIVE 9600 Planning 00|U}X~YZ\W* & TT10: VT100 9600 Computer Off & TT11: SOROC 2400 Rosa & TT12: VT100 2400 Printer Room & TT13: VT100 9600 Lionel & TT14: SOROC 2400 Residents & TT15: VT100 2400 Anthea & TT16: SOROC 2400 RadOnc Secy & TT17: VT100 9600 Harvey & TT20: VT100 9600 Computer Office& TT21: VT100 9600 DECMATE II & TT22: LPN03 9600 Laser Printer & TT23: VT05 2400 THERAC-20 & TT24: (AECL) 2400 Linac Data Xfer& TT25: BINARY 300 DUP to 11/45 & TT26: LA36 9600 TEC Printer & TT27: LA36 600 DIABLO & TT30: PHONE 300 791-3695 & TT31: PHONE 300 791-3696 & TT32: PHONE 300 791-3697 & TT33: LS120 1200 Radiation Sfty & TT34: SOROC 1200 Inf. Dis. & TT35: LS120 1200 NucMed PDP8 & TT36: VT100 9600 Ophthalmology & TT37: SOROC 1200 Tumor Registry & TT40: VT100 2400 X-ray & TT41: LS120 1200 Tumor Registry & TT42: BINARY 300 MOD to Modem & TT43: BINARY 4800 NET to 11/45 LA36 600 DIABLO & TT30: PHONE 300 791-3695 & TT31: PHONE 300 791-3696 & TT32: PHONE 300 791-3697 & TT33: LS120 1200 Radiation Sfty & TT34: SOROC 1200 Inf. Dis. & TT35: LS120 1200 NucMed PDP8 & TT36: VT100 9600 Ophthalmology & TT37: SOROC 1200 Tumor Registry & TT40: VT100 2400 X-ray & TT41: LS120 1200 '<======== don't exceed arrows ========>$ TERM TYPE SPEED LOCATION $ TERM TYPE SPEED LOCATION # ----- ---- ----- -------- # ----- ---- ----- -------- & TT0: LA36 600 CONSOLE & TT1: BEEHINE 9600 Treatment Plan.& TT2: LA36 600 Treatment Plan.# TT3: BINARY 300 DUP to 11/44 TT4: CI300 9600 Printerwhe,whe/-sp=wherelb:[1,1]f77ots/lb/ task=...whe/ c where.for logical*1 mcrbuf(80) character*40 lines(100). call errset(24,.true.,.false.,.true.,.false.) call getmcr(mcrbuf,ilen)8 open(1,file='lb:[11,1]where.dat',status='old',readonly, 1 err=900) read(1,100,err=200) lines(1) 100 format(a) i=01 i=i+1 read(1,100,err=200) lines(i) goto 1200 close(unit=1) i=i-1 if(i.le.1) goto 900 type 800 type 300,(lines(ii),ii=1,4)300 format(a,a) do 700 ii=5,i,2 type 300,lines(ii),lines(ii+1) 700 continue type 800o800 format(' ')r 900 call exita end0 lines(100). call errset(24,.true.,.false.,.true.,.false.) call getmcr(mcrbuf,ilen)8 open(1,file='lb:[11,1]where.dat',status='old',readonly, 1 err=900) read(1,100,err=200) lines(1) 100 format(a) i=01 i=i+1 read(1,100,err=200) lines(i) goto 1200 close(unit=1) i=i-1 if(i.le.1) goto 900 type 800 type 300,(lines(ii),ii=1,4)300 format(a,a) do 700 ii=5,i,2 type 300,lines(ii),lines(ii+1) 700 contin-WHO/MU/PR/-FP,WHO/-SP/CR=WHO,LB:[1,1]EXEC.STB/ TASK=...WHO,;REMOVE FOLLOWING NEXT TIME HELBYE IS LINKEDCOMMON=HELBYE:ROLIBR=SYSRES:RO UIC=[1,100]ASG=TI:5PRI=150//00]R|Tĉs .TITLE WHO .IDENT /MRH001/ .SBTTL TITLE PAGE) ; 26-OCT-76 10:27:18 >SM:WHO.MAC=WHO. ;REASSEMBLED BY F. BORGER, MICHAEL REESE HOSP% ;FOR PURPOSES OF ENHANCING OPERATION .TITLE WHO  .IDENT /MRHV01/.; .PSECT . ABS.,OVL,RW,LCL,D ;MAX LEN = 000000;.GLOBL IO.WVB;.GLOBL IS.SUC;.GLOBL UC.TTY;.GLOBL UF.OFL;.GLOBL UT.LG ;.GLOBL UT.PR ;.GLOBL UT.SL ;.GLOBL U.C1 ;.GLOBL U.DN ;.GLOBL U.FB ;.GLOBL U.GC ;.GLOBL U.PC ;.GLOBL U.PR ;.GLOBL U.SZ ;.GLOBL U.UN ;.GLOBL $CBOMG;.GLOBL .PUDBA;.GLOBL .PUDEA.; .PSECT ,CON,RW,GBL,I ;MAX LEN = 000610 .MCALL DIR$,GMCR$,EXIT$,QIOW$* .MCALL CLOSE$,OPEN$R,OPEN$A,NBOF$L,GTIM$S< .MCALL FDBDF$,FSRSZ$,FDAT$A,FDRC$A,FDOP$A,NMBLK$,GET$R,PUT$; /UT.HO=10 ;DEFINE HOSTILE BIT FOR PRIVILEGE BYTEB.PAGEB.SBTTL INITIAL SETUP ; .PSECT 7START: DIR$ #GETMCR ;GET MCR COMMAND LINE TO FREE NODE.- GTIM$S #TIMBUF ;GET CURRENT TIME PARAMETERS.+ MOV #TIMLOC,R0 ;POINT TO CONVERSION BUFFER% MOV #TIMBUF,R1 ;POINT TO TIME BUFFER  CALL $DAT ;CONVERT DATEL MOVB #' ,(R0)+ ;INSERT A SPACEW MOVB #' ,(R0)+ ;INSERT A SPACE . MOV #2,R2 ;;SET TO CONVERT HOURS AND MINUTES- CALL $TIM ;CONVERT TIME PARAMETERS TO ASCIIA# CLRB (R0) ;SET ZERO SENTINEL BYTE MOV #FDB,R0 ;FDB ADDRESS) MOV #USENAM,R1 ;DATA SET DESC ADDR -> R1L, MOV #UICDSD,R2 ;UIC STRING DESCRIPTOR -> R2" JSR PC,.GTDIR ;FILL IN UIC STRING OPEN$R #FDB$ DIR$ #HDRDPB ;DO FIRST HEADER LINE- MOV #HDRMS2,HDRDPB+Q.IOPL ;CHANGE LINE STARTB( MOV #HDRLN2,HDRDPB+Q.IOPL+2 ;AND LENGTH& DIR$ #HDRDPB ;PUT OUT REST OF HEADER1$: CLR R2 ;FOR LATER" MOV .PUDBA,R3 ;SET FOR PUD SEARCH.PAGEN.SBTTL SEARCH THRU PUD(REGO: CMP #"TT,U.DN(R3) ;IS THIS A TTY ? BEQ 12$ ;BRANCH IF YES. CMP #"BA,U.DN(R3) ;OR A BATCH PSEUDO DEVICE ? BEQ 12$$ JMP NOTTTY ;NO, IGNORE THIS DEVICE/12$: CMPB GETMCR+5,#'M ;FULL TERMINAL LISTING ?G BEQ 13$ ;BRANCH IF YES- BIT #UT.LG,U.TF(R3) ;IS TERMINAL LOGGED ON ?I BNE 13$ ;YES, SO REPORTO% JMP NOTTTY ;NO, SKIP LINE OF OUTPUTR413$: MOV #PTR1,R0 ;POINT R0 TO START OF MESSAGE LINE< MOVB #40,PTR1+3 ;CLEAR POSSIBLE DOUBLE DIGIT FROM LAST TIME5 MOVB #40,PTR1+4 ;AND/OR POSSIBLE WHERE USERS IS FLAGT6 MOV U.DN(R3),(R0)+ ;ASCII DEVICE NAME TO MESSAGE LINE% MOVB U.UN(R3),R1 ;OCTAL INIT # IN R1I CLR R2 ;CLEAR LEADING 0'S;' JSR PC,$CBOMG ;CONVERT UNIT # TO ASCII5 MOV @#.CRTSK,R5 ;GET MY ATL% CMP A.TI(R5),R3 ;IS THIS MY TERMINAL, BNE 123$ ;NO( MOVB #'*,(R0) ;TELL USER WHERE THEY ARE123$: MOV #13.,R5 ;COUNT TO R5 $ MOV #PTR1A,R0 ;POINT TO USER BUFFER;111$: MOVB #40,(R0)+ ;FILL USER NAME AND DEVICE WITH SPACESD SOB R5,111$ ;FOR 13 CHARACTERS5 CMP (R3),#"BA ;FOR BATCH, CAN'T FIND NAME AND DEVICEU BEQ 333$ ;SO SKIP IT% MOV #HELBYE,R0 ;POINT TO COMMON AREA)* MOVB U.UN(R3),R5 ;UNIT NUMBER IN R5 AGAIN- MUL #20.,R5 ;MAKE HIM OFFSET INTO DATA AREAS( ADD R5,R0 ;NOW HAVE BUFFER FOR THIS TI: MOV HB.USE(R0),R5 ;GET RECORD NUMBER IN USER PROFILE FILE' BEQ 222$ ;IF NONE, DON'T FILL IN NAME & BIT #UT.LG,U.PR(R3) ;IF NOT LOGGED ON BEQ 222$ ;DON'T REPORT EITHER# ;READ USER PROFILE FILED GET$R #FDB,#USEBUF,#100,R51- MOV USEBUF,R1 ;FIRST PART OF USER NAME TO R1C% MOV #PTR1A,R0 ;POINT TO ASCII BUFFER3 JSR PC,$C5TA ;CONVERT USER NAME MOV USEBUF+2,R1 ;2ND 3 LETTERSR JSR PC,$C5TAB MOV USEBUF+4,R1 ;LAST 3 JSR PC,$C5TAF! MOVB #40,(R0)+ ;SPACE TO BE NEATN2333$: MOV #PTRDEV,R0 ;POINT TO DEVICE AREA IN LINE) MOV U.LBH(R3),R1 ;GET DEFAULT DEVICE PUD2( MOVB U.DN(R1),(R0)+ ;FILL IN DEF DEVICE MOVB U.DN+1(R1),(R0)+ MOVB U.UN(R1),(R0)O BISB #60,(R0)+#/222$: MOV #PTRCLI,R0 ;POINT TO CLI AREA IN LINEU' MOV U.DACP(R3),R1 ;GET RAD-50 CLI NAME & BEQ 224$ ;BR IF NONE (IE BATCH TERM) CALL $C5TA ;CONVERT NAME BR 225$ ;AND SKIP NEXT-224$: MOVB #40,(R0)+ ;ERASE PREVIOUS CLI NAME MOVB #40,(R0)+; MOVB #40,(R0)+C(225$: CLR R2 ;SUPRESS LEADING 0'S AGAIN# MOV #PTR2,R0 ;POINT PAST USER NAME ( BITB #UF.OFL,U.FB(R3) ;IS HE OFF LINE ?& BNE OFFLIN ;YES REPORT HE'S OFF-LINE( BITB #UT.SL,U.PR(R3) ;OR IS HE SLAVED ?!00eX~YZ\W* BNE SLAVED ;REPORT THAT INSTEAD)- BITB #UT.LG,U.PR(R3) ;THEN IS HE LOGGED ON ?L BEQ NOTLOG ;IF NOT REPORT IT& MOVB #'[,(R0)+ ;INITIAL '[' TO BUFFER( CLR R1 ;SET TO FIGURE GROUP,PROG. CODE# BISB U.GC(R3),R1 ;GROUP CODE TO R1B* JSR PC,$CBOMG ;PUT IN OUT BUFFER AS ASCII! MOVB #',,(R0)+ ;SEPERATING COMMA ! CLR R1 ;NOW FOR PROGRAMMER CODE BISB U.PC(R3),R1T JSR PC,$CBOMG ;SAME AS BEFORE# MOVB #'],(R0)+ ;FINISH UP WITH ']'I#5$: CMP R0,#PTR2+9. ;TEST ALIGNMENTU BGE 10$ ;ITS OKS$ MOVB #40,(R0)+ ;NO FILL WITH SPACES BR 5$ ;AND TRY AGAIN>10$: BITB #UT.PR!UT.HO,U.PR(R3) ;IS HE PRIVILEGED OR HOSTILE ? BNE 2$ ;BR IF HE ISI MOV #13.,R2 ;COUNT TO R2&105$: MOVB #40,(R0)+ ;FILL WITH SPACES SOB R2,105$ BR 11$ ;AND REPORT HIM32$: MOVB #40,(R0)+ ;SET TO REPORT HIM AS PRIVILEGEDS) MOV #PRIMES,R4 ;ADDRESS OF MESSAGE TO R4M MOV #PRILEN,R5 ;LENGTH TO R5J& BITB #UT.HO,U.PR(R3) ;IS HE HOSTILE ? BEQ 11$ ;SKIP IF NOT+ MOV #HOSMES,R4 ;ELSE CHANGE REPORT MESSAGEE MOV #HOSLEN,R5M%11$: BR FILLIN ;FILL IN REST OF LINE +NOTLOG: MOV #NLGMES,R4 ;MESSAGE START TO R4P MOV #NLGLEN,R5 ;LENGTH TO R5I BR FILLIN ;AND FINISH UP LINEV(OFFLIN: MOV #OFFMES,R4 ;MESS START TO R4 MOV #OFFLEN,R5 ;LENGTH TO R50 BR FILLIN ;AND FINISH UP LINE +SLAVED: MOV #SLAMES,R4 ;MESSAGE START TO R4E MOV #SLALEN,R5 ;LENGTH TO R5 *FILLIN: MOVB (R4)+,(R0)+ ;XFER A CHARACTER SOB R5,FILLIN ;LOOP TILL DONE- JSR PC,TSTATL ;LOOK FOR TASKS ACTIVE FOR HIMS JSR PC,WRTLIN ;WRITE LINE&NOTTTY: ADD #U.SZ,R3 ;BUMP TO NEXT PUD CMP .PUDEA,R3 ;THROUGH PUD ?  BLE SCRAM ;SCRAM IF YESR$ JMP REGO ;IF NOT CHECK NEXT DEVICE)SCRAM: CLOSE$ #FDB ;CLOSE USER PROF FILEN DIR$ #EXITDP ;AND EXIT.PAGE4.SBTTL SUBROUTINES;T+;SUB TO INSERT MESSAGE INTO LINE AND DO QIOL;D*FILWRT: MOVB (R4)+,(R0)+ ;XFER A CHARACTER SOB R5,FILWRT ;LOOP TILL DONE$ JSR PC,WRTLIN ;DO SUB TO WRITE LINE RTS PC ;AND RETURN;L;SUB TO DO ACTUAL QIO;;K0WRTLIN: SUB #PTR1,R0 ;SUB START OF MESS FROM END4 MOV R0,QIODPB+Q.IOPL+2 ;FILL IN LENGTH IN PAR. LIST DIR$ #QIODPB ;DO QIO THING& BCS SCRAM ;SCRAM IF DIRECTIVE FAILED" CMPB #IS.SUC,IOST ;SUCCESS CODE ?" BNE SCRAM ;EXIT TO IF QIO FAILED RTS PC ;ELSE DO RETURN;T;SUB TO SCAN ATL;S'TSTATL: MOV #.ATLLH,R5 ;USE R5 FOR SCANL.TSTLOP: MOV (R5),R5 ;GET NEXT/FIRST ATL ENTRY CMP R5,#.ATLLH ;THROUGH ATL ? BNE 1$ ;BR IF NOTS RTS PC ;RETURN IF DONE 1$: CMP A.TI(R5),R3 ;SAME TI'S ? BNE TSTLOP ;NO, TRY AGAIN,& MOV A.TD(R5),R2 ;YES, GET STD POINTER. CMP S.TN+2(R2),RAD... ;IS IT A HANDLER TASK ? BEQ TSTLOP ;YES IGNORE THEMS* MOV S.TN(R2),R1 ;FIRST HALF OF NAME TO R1) JSR PC,$C5TA ;CONVERT TO ASCII IN BUFFERI' MOV A.TD(R5),R2 ;RESTORE WIPED POINTERU( MOV S.TN+2(R2),R1 ;GET 2ND HALF OF NAME JSR PC,$C5TA ;AND INSERT IT) MOVB #40,(R0)+ ;FILL IN SO IT LOOKS NICET BR TSTLOP ;AND TRY TRY AGAIN; .PAGE .SBTTL FCS DATA AREAS$ NBOF$L ;DEFINE NAME BLOCK OFFSETS*USEBUF: .BLKW 40 ;BUFFER TO READ UPF INFOEUSENAM: NMBLK$ PDSUPF,DAT,,SD ;DEFINE FILE NAME FOR USER PROFILE FILEA FSRSZ$ 1?/FDB: FDBDF$ ;DEFINE FDB FOR USER PROFILE FILE1 FDAT$A R.FIX,,64. FDRC$A FD.RAN,USEBUF,64.E FDOP$A 4,,USENAM,FO.RD!FA.SHRUICSTR: .ASCII /[1,100]/ UICLEN=.-UICSTR .EVENUICDSD: .WORD UICLEN .WORD UICSTR  .PAGE .SBTTL OTHER DATA AREAS; EXITDP: EXIT$ ;EXIT DPBSGETMCR: GMCR$ ;GET MCR DPB+QIODPB: QIOW$ IO.WVB,5,5,,IOST,,F2HDRDPB: QIOW$ IO.WVB,5,5,,IOST,,:HDRMS1: .ASCII <12><15>/TERM USER NAME DEV CLI UIC / .ASCII / STATUS TASKS /"TIMLOC: .ASCII /DD-MMM-YY HH:MM / HDRLN1=.-HDRMS1 .EVENVHDRMS2: .ASCII /---- --------- --- --- --------- ---------- -------------------------/ .BYTE 12,15 HDRLN2=.-HDRMS2 .EVEN-PTR1: .BLKB 4 ;MESS START, BUFFER FOR 'TTXX'. .ASCII / /APTR1A: .ASCII / /+PTRDEV: .ASCII / / ;ROOM FOR DEF DEVICEI$PTRCLI: .ASCII / / ;ROOM FOR CLI'PTR2: .BLKB 74. ;ROOM FOR REST OF LINER .EVEN IOST: .BLKW 2 ;IO STATUS BUFFERTIMBUF: .BLKW 8. ;TIME BUFFER; NOW TH00mnoprssE ASCII MESSAGES;I&NLGMES: .ASCII / LOGGED OFF / NLGLEN=.-NLGMES&OFFMES: .ASCII / OFFLINE / OFFLEN=.-OFFMESPRIMES: .ASCII /PRIVILEGED / PRILEN=.-PRIMESHOSMES: .ASCII /HOSTILE /HOSLEN=.-HOSMESA&SLAMES: .ASCII / SLAVED / SLALEN=.-SLAMES .EVEN7RAD...: .RAD50 /.../ ;COMPARE STRING FOR HANDLER TASKSC,MRLRAD: .RAD50 /MRL/ ;RAD 50 STRING FOR MRL5MRLSAV: .WORD 0 ;BUFFER TO SAVE MRL LISTHEAD POINTER .END STARTF: .BLKW 8. ;TIME BUFFER; NOW TH;%; [ 1 1 , 1 3 ] W H O T K B . C M D ; COMMAND FILE TO BUILD...WHO.;YO[11,1]WHO/PR/MU/-CP/-FP,[111,13]WHO/-SP/CR=[11,13]LIB13/LB:WHO,[1,1]EXEC.STB/SSS/SPAR=GENASTACK=32 UIC=[1,1]PRI=221ASG=TI:6 TASK=...WHOS/I:6/PRI =200LIBR =SYSRES:RO/.XXX/MU/-CP/-FP,XXX/-SP=XXX,LB:[1,1]EXEC.STB/SS/STACK=32UNITS=1 UIC=[1,1]ASG=TI:1 TASK=...XXX/ .TITLE XXX;THIS IS A PSEUDO CLI F;HIS SOLE PURPOSE IS TO OUTPUT A MESSAGE SAYING THAT SYSTEM STARTUP ISK;IN PROGRESS. (UNTIL ALL CHANGES ARE MADE WE DON'T WAN'T ANYBODY TO LOG ON,;BUT WE SHOULD TELL THEM; .MCALL DIR$,QIOW$,EXIT$S8MESS: .ASCII /*** A SYSTEM RE-BOOT IS IN PROGRESS ***/ MESSL=.-MESS9MESS1: .ASCII /*** PLEASE WAIT FOR SYSTEM UP MESSAGE ***/ MESS1L=.-MESS1 .EVEN+MESDPB: QIOW$ IO.WVB,1,1,,,,;1START: DIR$ #MESDPB ;WRITE FIRST LINE OF MESSAGE/ MOV #MESS1,MESDPB+Q.IOPL ;CHANGE STARTING LINES( MOV #MESS1L,MESDPB+Q.IOPL+2 ;AND LENGTH! DIR$ #MESDPB ;WRITE SECOND LINES EXIT$SA .END STARTE MADE WE DON'T WAN'T ANYBODY TO LOG ON,;BUT WE SHOULD TELL THEM; .MCALL DIR$,QIOW$,EXIT$S8MESS: .ASCII /*** A SYSTEM RE-BOOT IS IN PROGRESS ***/ MESSL=.-MESS9MESS1: .ASCII /*** PLEASE WAIT FOR SYSTEM UP MESSAGE ***/ MESS1L=.-MESS1 .EVEN+MESDPB: QIOW$ IO.WVB,1,1,,,,;1START: DIR$ #MESDPB ;WRITE FIRST LINE OF MESSAGE/ M*ؙL:2@((d **** A SYSTEM RE-BOOT IS IN PROGRESS *&****** PLEASE WAIT FOR SYSTEM UP MESSA*LGE *** ) R) :2R$)r)R3 RMESS: .ASCII /*** A SYSTEM RE-BOOT IS IN PROGRESS ***/ MESSL=.-MESS9MESS1: .ASCII /*** PLEASE WAIT FOR SYSTEM UP MESSAGE ***/ MESS1L=.-MESS1 .EVEN+MESDPB: QIOW$ IO.WVB,1,1,,,,;1START: DIR$ #MESDPB ;WRITE FIRST LINE OF MESSAGE/ M|ؙ@`(OؙDRTI00uvwZ\W*f@@@```8TI*** A SYSTEM RE-BOOT IS IN PROGRESS ****** PLEASE WAIT FOR SYSTEM UP MESSAGE *** @) i)3.YYY/MU/-CP/-FP,YYY/-SP=YYY,LB:[1,1]EXEC.STB/SS/STACK=32UNITS=1 UIC=[1,1]ASG=TI:1 TASK=...YYY/ .TITLE YYY;& .MCALL DIR$,QIOW$,EXIT$S,GMCR$,GLUN$S;&START: SUB #14,SP ;MAKE ROOM ON STACK MOV SP,R2 ;ADDRESS -> R2- GLUN$S #1,R2 ;GET INFO FOR LUN 1 (TERMINAL) MOV (SP)+,R1 ;TERMINAL NAME MOV (SP)+,R5 ;TERMINAL NUMBER ADD #10,SP ;CLEAN STACK! BIC #177600,R5 ;CLEAR UPPER BITS/ MUL #50,R5 ;DETERMINE NUMBER OF BYTES TO SKIP MOV #MESS,R1- ADD R5,R1 ;ADDRESS OF PERSONNAL MESSAGE R1;* MOV #FIRST,QIO+Q.IOPL ;WORK ON FIRST LINE MOV #5,QIO+Q.IOPL+2 DIR$ #QIO;+ MOV R1,QIO+Q.IOPL ;WORK ON PERSONNAL LINE$ MOV #50,QIO+Q.IOPL+2 DIR$ #QIO;4% MOV #LAST4,QIO+Q.IOPL ;FINISH REPORTA MOV #LAST4L,QIO+Q.IOPL+2 DIR$ #QIO#ENDRUN: EXIT$S ;ALL DONE, SO EXITT;I;NOW THE DPB'S6QIO: QIOW$ IO.WVB,1,1,,,,<0,0,40> ;DPB TO REPORT TO TI;#;THE MESSAGES THEMSELVES .ENABLE LCRFIRST: .ASCII ? *** ?  .EVENJLAST4: .ASCII ? *** Sorry, but system work is in progress. *** ?L .ASCII <15><12>? *** Please call DAN SPELBRING at x2515 if *** ?L .ASCII <15><12>? *** your work is urgent. *** ? .ASCII <15><12>? *** ?I LAST4L=.-LAST4R .EVEN;V7MESS: .ASCII ? *** Hello Console, ? > .ASCII ? *** Hello Whomever, ? ;Comp. Off.? .ASCII ? *** Hello Whomever, ? ;Rx PlanningE2 .ASCII ? *** Hello Hans, ?2 .ASCII ? *** Hello Dan, ?2 .ASCII ? *** Hello Renate, ?2 .ASCII ? *** Hello Frank, ?2 .ASCII ? *** Hello Therapy Physicist, ?> .ASCII ? *** Hello Whomever, ? ;Comp. Off.2 .ASCII ? *** Hello Rosa, ?; .ASCII ? *** Hello Whomever, ? ;(Peggy)o2 .ASCII ? *** Hello Lionel, ?2 .ASCII ? *** Hello Residents, ?2 .ASCII ? *** Hello Anthea, ?? .ASCII ? *** Hello Whomever, ? ;RadOnc Secy ; .ASCII ? *** Hello Whomever, ? ;(Debra)> .ASCII ? *** Hello Whomever, ? ;Comp. Off.2 .ASCII ? *** Hello Decmate ?@ .ASCII ? *** Hello Whomever, ? ;Decmate xfer2 .ASCII ? *** Hello Therac-20, ?? .ASCII ? *** Hello Whomever, ? ;Therac xferl= .ASCII ? *** Hello Whomever, ? ;DUP to 45 ? .ASCII ? *** Hello Whomever, ? ;TEC printer : .ASCII ? *** Hello Whomever, ? ;DIABLO2 .ASCII ? *** Hello Dialup User, ?2 .ASCII ? *** Hello Dialup User, ?2 .ASCII ? *** Hello Dialup User, ?2 .ASCII ? *** Hello Radiation Safety Office, ?2 .ASCII ? *** Hello Infection Control, ?2 .ASCII ? *** Hello Hunter, ?2 .ASCII ? *** Hello Ophthalmology, ?2 .ASCII ? *** Hello Tumor Registry, ?2 .ASCII ? *** Hello X-ray, ?2 .ASCII ? *** Hello Tumor Registry, ?@ .00}~prssASCII ? *** Hello Whomever, ? ;MOD to Modem> .ASCII ? *** Hello Whomever, ? ;NET to VAX MESSL=.-MESS  .EVEN .END STARTlo Radiation Safety Office, ?2 .ASCII ? *** Hello Infection Control, ?2 .ASCII ? *** Hello Hunter, ?2 .ASCII ? *** Hello Ophthalmology, ?2 .ASCII ? *** Hello Tumor Registry, ?2 .ASCII ? *** Hello X-ray, ?2 .ASCII ? *** Hello Tumor Registry, ?@ .*AL:2@(( * eEWq(4(4*&Aat@<bw0(,btb$b*Lzb3 zb:2 r *** ?z*z *** Sorry, but system work *is in progress. *** *** P*lease call DAN SPELBRING at x2515 if **** *** your work is urge%nt. *** *** 4*4 *** Hello Console, *Z *** Hello Whomever, * *** Hello Whomever, * *** Hello Hans, * *** Hello Dan, * *** Hello Renate, * *** Hello Frank, *> *** Hello Therapy Physi*dcist, *** Hello Whomever, * *** Hello Rosa, * *** Hello Whomeve*r, *** Hello Lione*l, *** Hello Res*"idents, *** Hello A*Hnthea, *** Hello*n Whomever, *** Hel*lo Whomever, *** H*ello Whomever, **** Hello Decmate **** Hello Whomever, *, *** Hello Therac-20, *R *** Hello Whomever, *x *** Hello Whomever, * *** Hello Whomever, * *** Hello Whomever, * *** Hello Dialup User, * *** Hello Dialup User, *6 *** Hello Dialup User, *\ *** Hello Radiation S*afety Office, *** Hello Infection* Control, *** Hello Hunter,* *** Hello Ophth*almology, *** Hello Tum*or Registry, *** Hello X*@-ray, *** Hello*f Tumor Registry, *** Hel*lo Whomever, *** H&ello Whomever,  *** Hello Dialup User, *6 *** Hello Dialup User, *\ *** Hello Radiation S*afety Office, *** Hello Infection* Control, *** Hello Hunter,* *** Hello Ophth*almology, *** Hello Tum*or Registry, *** Hello X*@-ray, *** Hello*f Tumor Registry, |A@` (U s,ADRTI00\W*@f@@@@```VTI eEWq(tAa@<w0(,3  *** *** Sorry, but system work is in progress. *** *** Please call DAN SPELBRING at x2515 if *** *** your work is urgent. *** *** *** Hello Console, *** Hello Whomever, *** Hello Whomever, *** Hello Hans, *** Hello Dan, *** Hello Renate, *** Hello Frank, *** Hello Therapy Physicist, *** Hello Whomever, *** Hello Rosa, *** Hello Whomever, *** Hello Lionel, *** Hello Residents, *** Hello Anthea, *** Hello Whomever, *** Hello Whomever, *** Hello Whomever, *** Hello Decmate *** Hello Whomever, *** Hello Therac-20, *** Hello Whomever, *** Hello Whomever, *** Hello Whomever, *** Hello Whomever, *** Hello Dialup User, *** Hello Dialup User, *** Hello Dialup User, *** Hello Radiation Safety Office, *** Hello Infection Control, *** Hello Hunter, *** Hello Ophthalmology, *** Hello Tumor Registry, *** Hello X-ray, *** Hello Tumor Registry, *** Hello Whomever, *** Hello Whomever, .ZZZ/MU/-CP/-FP,ZZZ/-SP=ZZZ,LB:[1,1]EXEC.STB/SS/STACK=32UNITS=1 UIC=[1,1]ASG=TI:1 TASK=...ZZZ/ .TITLE XXX;THIS IS A PSEUDO CLI F;HIS SOLE PURPOSE IS TO OUTPUT A MESSAGE SAYING THAT SYSTEM STARTUP ISK;IN PROGRESS. (UNTIL ALL CHANGES ARE MADE WE DON'T WAN'T ANYBODY TO LOG ON,;BUT WE SHOULD TELL THEM; .MCALL DIR$,QIOW$,EXIT$S=MESS: .ASCII /*** WE ARE WORKING ON THE COMPUTER - THE ***/ MESSL=.-MESS>MESS1: .ASCII /*** REGULAR OPERATION WILL RESUME AT 4:00 ***/ MESS1L=.-MESS1 .EVEN+MESDPB: QIOW$ IO.WVB,1,1,,,,;1START: DIR$ #MESDPB ;WRITE FIRST LINE OF MESSAGEI/ MOV #MESS1,MESDPB+Q.IOPL ;CHANGE STARTING LINES( MOV #MESS1L,MESDPB+Q.IOPL+2 ;AND LENGTH! DIR$ #MESDPB ;WRITE SECOND LINEA EXIT$SS .END STARTDON'T WAN'T ANYBODY TO LOG ON,;BUT WE SHOULD TELL THEM; .MCALL DIR$,QIOW$,EXIT$S=MESS: .ASCII /*** WE ARE WORKING ON THE COMPUTER - THE ***/ MESSL=.-MESS>MESS1: .ASCII /*** REGULAR OPERATION WILL RESUME AT 4:00 ***/ MESS1L=.-MESS1 .EVEN+MESDPB: QIOW$ IO.WVB,1,1,,,,;1START: DIR$ #MESDPB ;WRITE FIRST LINE OF ME*ؙL:2@((n **** WE ARE WORKING ON THE COMPUTER - T*&HE ****** REGULAR OPERATION WILL RES*LUME AT 4:00 *** . \:2 (\r..\3 .\II /*** WE ARE WORKING ON THE COMPUTER - THE ***/ MESSL=.-MESS>MESS1: .ASCII /*** REGULAR OPERATION WILL RESUME AT 4:00 ***/ MESS1L=.-MESS1 .EVEN+MESDPB: QIOW$ IO.WVB,1,1,,,,;1START: DIR$ #MESDPB ;WRITE FIRST LINE OF ME00prss|@`(QgDRTIf@@@```q5TI*** WE ARE WORKING ON THE COMPUTER - THE ****** REGULAR OPERATION WILL RESUME AT 4:00 *** @. n.310 ! ACXTAB.BAS,BA84 ! PROGRAM TO PRINT CROSS TABULATIONS FOR PROGRAMMER7 ! TIME ACCOUNTING INFO. THIS PROGRAM ASSUMES EXISTENCE4 ! OF VIRTUAL ARRAY CREATED BY PROGMON FOR THE MONTH ! IN QUESTION.'100 DEF FNSU(PJ,DA,PG)=(PJ*32+DA)*11+PG150 DIM M$[3](12),M&(12)%160 DIM PD(31,10),UD(31,60),UP(60,10)200 DIM #16,PR%(21472)&210 PJ=50 ! DEFINE NUMBER OF PROJECTS LM=5 ! DEFINE LEFT MARGIN? P1=2 : P2=6 ! DEFINE LOWER, UPPER BOUNDS ON PROGRAMMER NUMBERS430 M$(1)="JAN" : M&(1)=31 : M$(2)="FEB" : M&(2)=29 :A M$(3)="MAR" : M&(3)=31 :S M$(4)="APR" : M&(4)=30 :R M$(5)="MAY" : M&(5)=31 :T M$(6)="JUN" : M&(6)=30 :C M$(7)="JUL" : M&(7)=31 :A M$(8)="AUG" : M&(8)=31 :H M$(9)="SEP" : M&(9)=30 :  M$(10)="OCT" : M&(10)=31 :P M$(11)="NOV" : M&(11)=30 :: M$(12)="DEC" : M&(12)=31 ! NAMES OF MONTHS, DAYS IN MONTH.600 ! ASK USER FOR MONTH OF BILLING STATEMENT'610 INPUT "MONTH OF BILLING (MMYY) "; MDG620 M&=INT(M/100) : IF M&<1 OR M&>12 THEN PRINT "BAD MONTH" : GOTO 610= 630 Y&=M-(M&*100) ! YEAR OF BILL@635 IF 4*INT(Y&/4)<>Y& THEN M&(2)=28 ! CORRECT FOR NON LEAP YEAR640 IF M&>6 THEN FY&=Y&+1* ELSE FY&=Y& ! FISCAL YEAR IS JULY-JUNE;650 D1=DCEN(STR$(M&)+"/01/"+STR$(Y&)) ! FIRST DAY OF MONTH(( D2=D1 + M&(M&)-1 ! LAST DAY OF MONTH)700 OPEN #16,M$(M&)+STR$(Y&)+".VPG/RO/BL"A,710 OPEN #3,M$(M&)+STR$(Y&)+".PGA/WR/LN:132"1000 ! ZERO ARRAYS91010 FOR J=0 TO 31 : FOR K=0 TO 10 : PD(J,K)=0 : NEXT K,J&91020 FOR J=0 TO 31 : FOR I=0 TO 60 : UD(J,I)=0 : NEXT I,JT91030 FOR I=0 TO 60 : FOR K=0 TO 10 : UP(I,K)=0 : NEXT K,I)1100 ! ACCUMULATE TOTALS1110 FOR I=1 TO PJ1120 FOR J=1 TO M&(M&)1130 FOR K=P1 TO P2 1140 HR=PR%(FNSU(I,J,K))/1001150 IF HR <> 0 THENI PD(J,K)=PD(J,K)+HR : PD(0,K)=PD(0,K)+HR : PD(J,0)=PD(J,0)+HR : PD=PD+HR:NI UD(J,I)=UD(J,I)+HR : UD(0,I)=UD(0,I)+HR : UD(J,0)=UD(J,0)+HR : UD=UD+HR:+H UP(I,K)=UP(I,K)+HR : UP(0,K)=UP(0,K)+HR : UP(I,0)=UP(I,0)+HR : UP=UP+HR1190 NEXT K,J,I (1300 ! PRINT PROGRAMMER VS. DAY OF MONTH1310 P=0 : GOSUB 3000%1320 PRINT #3,TAB(LM);"PROGRAMMER ->"(+1330 PRINT #3,TAB(LM);"DAY OF MON";TAB(15);31340 FOR K=P1 TO P2 : PRINT #3,FRMT$(K,7); : NEXT KK1350 PRINT #3," TOTAL"N1360 FOR J=1 TO M&(M&)$1370 PRINT #3,FRMT$(J,LM+3);TAB(15);;1380 FOR K=P1 TO P2 : PRINT #3,FRMT$(PD(J,K),7,2); : NEXT KU 1390 PRINT #3,FRMT$(PD(J,0),7,2) 1400 NEXT J)S1410 PRINT #3,TAB(15); : FOR K=P1 TO P2+1 : PRINT #3," -----"; : NEXT K : PRINT #3U1420 PRINT #3,TAB(15); 3<1430 FOR K=P1 TO P2 : PRINT #3,FRMT$(PD(0,K),7,2); : NEXT K: PRINT #3,FRMT00\W*$(PD,7,2)P,1500 ! PRINT PROJECT (USER) VS. DAY OF MONTH%1540 I1=1 : I2=10 : IT=0 : GOSUB 1600R%1545 I1=11: I2=20 : IT=0 : GOSUB 1600T%1550 I1=21: I2=30 : IT=0 : GOSUB 1600%1560 I1=31: I2=40 : IT=0 : GOSUB 16003%1570 I1=41: I2=50 : IT=0 : GOSUB 1600,%1580 I1=51: I2=PJ : IT=1 : GOSUB 1600(1590 GOTO 1800/1600 GOSUB 3000 : PRINT #3,TAB(LM);"PROJECT ->"P@1620 PRINT #3,TAB(LM);"DAY OF MON";TAB(15); : IF I2"(1820 PRINT #3,TAB(LM);"PROJECT";TAB(15);31830 FOR K=P1 TO P2 : PRINT #3,FRMT$(K,7); : NEXT KA1840 PRINT #3," TOTAL"21850 FOR I=1 TO PJ$1860 PRINT #3,FRMT$(I,LM+3);TAB(15);;1870 FOR K=P1 TO P2 : PRINT #3,FRMT$(UP(I,K),7,2); : NEXT K# 1880 PRINT #3,FRMT$(UP(I,0),7,2) 1890 NEXT INS1900 PRINT #3,TAB(15); : FOR K=P1 TO P2+1 : PRINT #3," -----"; : NEXT K : PRINT #3NW1910 PRINT #3,TAB(LM);"TOTAL";TAB(15); : FOR K=P1 TO P2 : PRINT #3,FRMT$(UP(0,K),7,2);:0 NEXT K01920 PRINT #3,FRMT$(UP,7,2)M2000 CLOSE : EXIT#3000 ! PRINT PAGE HEADER)3010 P=P+1 : PRINT #3,CHR$(12) : PRINT #3743020 PRINT #3,TAB(LM);"BIOMEDICAL COMPUTER SECTION"; TAB(78);M$(M&)+"-"+STR$(Y&)O3030 PRINT #3,TAB(LM);"MEDICAL PHYSICS DEPARTMENT";TAB(77);"PAGE "+FRMT$(P,2) :P0 PRINT #3,TAB(38);"PROGRAMMER ACTIVITY SUMMARY": PRINT #35 3040 RETURN TO P2+1 : PRINT #3," 10 dim a$[56]15 y=dcen("01-JUL-85")20 open #3, "AECLVFY.FIX/RO"%30 open #4, "AECLVFY.OUT/WR/FX/LN:56"50 if end #3 then 200<60 for i=1 to 10 : input line #3, a$ : print #4, a$ : next i70 input line #3, a$80 x=dcen(sbs$(a$,1,8)OP)90 if x1 GOTO 450 : ! DATE IS OKL!350 IF SBS$(A$,7,2)="79" GOTO 400E"360 IF SBS$(A$,26,2)="79" GOTO 400370 GOTO 450 : ! RECORD IS OKT400 ! CALC CORRECT DATES1401 ! 12/XX/79 LOGIN AND 01/XX/80 LOGOUT IS OKPN402 IF SBS$(A$,7,2)="79" AND SBS$(A$,26,2)="80" AND SBS$(A$,1,2)="12" GOTO 4507405 DA=DCEN(SBS$(A$,20,6)+"80")-DCEN(SBS$(A$,1,6)+"80")D,407 HR=VAL(SBS$(A$,29,2))-VAL(SBS$(A$,10,2)),409 MI=VAL(SBS$(A$,32,2))-VAL(SBS$(A$,13,2)),411 SE=VAL(SBS$(A$,35,2))-VAL(SBS$(A$,16,2))#413 IF SE<0 THEN SE=SE+60 : MI=MI-1:#415 IF MI<0 THEN MI=MI+60 : HR=HR-17#417 IF HR<0 THEN HR=HR+24 : DA=DA-19418 IF DA<0 THEN DA=DA+31:B420 C$=FRMT$(DA,3)+":"+FRMT$(HR,2)+":"+FRMT$(MI,2)+":"+FRMT$(SE,2)425 FOR J=1 TO 3J430 IF SBS$(C$,J*3+2,1)=" " THEN C$=SEG$(C$,1,J*3+1)+"0"+SEG$(C$,J*3+3,12) 435 NEXT JL440 B$=SEG$(A$,1,6)+"80"+SEG$(A$,9,25)+"80"+SEG$(A$,28,38)+C$+SEG$(A$,51,56).442 PRINT #3@I,B$ : ! PRINT CORRECTED RECORD 443 PRINT 444 PRINT "CORRECTED ";A$446 PRINT "TO READ ";B$ 450 NEXT I500 CLOSE 3 : EXIT I=MI-1:#415 IF MI<0 THEN MI=MI+60 : HR=HR-17#417 IF HR<0 THEN HR=HR+24 : DA=DA-19418 IF DA<0 THEN DA=DA+31:B420 C$=FRMT$(DA,3)+":"+FRMT$(HR,2)+":"+FRMT$(MI,2)+":"+FRMT$(SE,2)425 FOR J=1 TO 3J430 IF SBS$(C$,J*3+2,1)=" " THEN C$=SEG$(C$,1,J*3+1)+"0"+SEG$(C$,J*3+3,12) 435 NEXT JL440 B$=SEG$(A$,1,6)+"80"+SEG$(A$,9,25)+"80"+SEG$(A$,28,38)+C$+SEG$(A$,51,56).442 PRINT #3@I,B$ : ! PRINT CORRECTED RECORD 443 PRINT 444 PRINT "CORRECTED ";A$446 PRINT "TO READ ";B$ 450 NEXT I10 ! PROGRAM DIRLOG.BAS/ ! TO BE RUN DAILY FOR ACCOUNTING OF DISK USAGEA20 DIM N$[40]V,L$[80]V,L1$[80]V,L2$[80]V,L3$[80]V,AC$[9]V,US$[9]V30 S=0 : US=0 : AL=0 : FI=040 CALL "SPAWNB"("SDV DP1:",S)!50 OPEN #3,"DIRLOG.DAT/RO/EN:360"60 ON ERROR GOTO 32070 OPEN #4,"TEMP.DIR/RO"80 ON ERROR GOTO 0 : CLOSE 4'90 CALL "SPAWNB"("PIP TEMP.DIR;*/DE",S)100 INPUT LINE #3,L$*110 AC$=PIECE$(L$,";",1) : ! GET ACCOUNT #*120 US$=PIECE$(L$,";",2) : ! GET USER NAME!130 L2$="PIP TEMP.DIR="+AC$+"/TB"+140 CALL "SPAWNB"(L2$,S) : IF S<>1 THEN 100D150 OPEN #4,"TEMP.DIR/RO" '160 INPUT LINE #4,L$ : INPUT LINE #4,L$2/170 L$=SBS$(L$,14) : ! TRIM OFF LEADING GARBAGE "180 L1$=PIECE$(L$," blocks in ",1)"190 L3$=PIECE$(L$," blocks in ",2)200 L3$=PIECE$(L3$," file",1),210 L2$=PIECE$(L1$,"/",2) ! BLOCKS ALLOCATED'220 L1$=PIECE$(L1$,"/",1) ! BLOCKS USED* 230 CLOSE 4 240 ON ERROR GOTO 600C"250 OPEN #5,US$+".STO/FX/AP/LN:52"260 ON ERROR GOTO 0;^270 PRINT #5,RJS$(DDAT$(0),9)+RJS$(TIM$(0),9)+RJS$(L1$,8)+RJS$(L2$,8)+RJS$(L3$,8)+RJS$(AC$,10) 280 CLOSE 5 290 US=US+VAL(L1$):  AL=AL+VAL(L2$): FI=FI+VAL(L3$) (300 CALL "SPAWNB"("PIP TEMP.DIR;*/DE",S) 310 GOTO 100*320 ! ROUTINE FOR HANDLING OF OPEN FAILURE330 ON ERROR GOTO 0i340 IF FCS(0)=-26 THEN 100 350 ! STOP 360 CLOSECC370 ! ********* DO DISK BACKUP, LOG TOTALS, ETC ********* !U380 PRINT CHR$(12)5390 PRINT "TOTAL OF";US;"/";AL;"BLOCKS IN";FI;"FILES"5400 CALL "SPAWNB"("TIM",S)1410 CALL "SPAWNB"("BA2 LB:[1,100]NEWTTYLOG/RN",S)$.420 CALL "SPAWNB"("BA2 LB:[1,1]BACKBOTH/RN",S),430 CALL "SPAWNB"("BA2 LB:[1,1]VERIFY/RN",S)0440 CALL "SPAWNB"("BA2 DP1:[1,1]HELLOSTUF/RN",S)450 CALL "SPAWNB"("TIM",S).460 ! CALL "SPAWNB"("BA2 DP1:[1,100]DSM/RN",S)470 ! CALL "SPAWNB"("TIM",S).480 CALL "SPAWNB"("BA2 DP1:[1,100]PURGE/RN",S)1490 CALL "SPAWNB"("BA2 DP1:[202,200]SPELLY/RN",S) .500 CALL "SPAWNB"("BA2 DP1:[102,7]STAND/RN",S)580 PRINT CHR$(12)590 EXIT=600 ! ROUTINE TO CREATE NEW STORAGE LOG FILE (EXTENSION .STO)1; ! IF ONE DOES NOT EXIST00\W*. THUS ALL ONE NEEDS TO DO IN ORDER/9 ! TO START A NEW USER IS TO ENTER HIS INFO IN DIRLOG.DATA610 ON ERROR GOTO 0[620 IF FCS(0) <> -26 THEN STOP& ELSE OPEN #5,US$+".STO/FX/WR/LN:52" : GOTO 2700]DSM/RN",S)470 ! CALL "SPAWNB"("TIM",S).480 CALL "SPAWNB"("BA2 DP1:[1,100]PURGE/RN",S)1490 CALL "SPAWNB"("BA2 DP1:[202,200]SPELLY/RN",S) .500 CALL "SPAWNB"("BA2 DP1:[102,7]STAND/RN",S)580 PRINT CHR$(12)590 EXIT=600 ! ROUTINE TO CREATE NEW STORAGE LOG FILE (EXTENSION .STO)1; ! IF ONE DOES NOT EXIST10 ! PROGRAM DIRLOG.BAS/ ! TO BE RUN DAILY FOR ACCOUNTING OF DISK USAGEA20 DIM N$[40]V,L$[80]V,L1$[80]V,L2$[80]V,L3$[80]V,AC$[9]V,US$[9]V30 S=0 : US=0 : AL=0 : FI=040 CALL "SPAWNB"("SDV DP1:",S)!50 OPEN #3,"DIRLOG.DAT/RO/EN:360"60 ON ERROR GOTO 32070 OPEN #4,"TEMP.DIR/RO"80 ON ERROR GOTO 0 : CLOSE 4'90 CALL "SPAWNB"("PIP TEMP.DIR;*/DE",S)100 INPUT LINE #3,L$*110 AC$=PIECE$(L$,";",1) : ! GET ACCOUNT #*120 US$=PIECE$(L$,";",2) : ! GET USER NAME!130 L2$="PIP TEMP.DIR="+AC$+"/TB"+140 CALL "SPAWNB"(L2$,S) : IF S<>1 THEN 100D150 OPEN #4,"TEMP.DIR/RO" '160 INPUT LINE #4,L$ : INPUT LINE #4,L$2/170 L$=SBS$(L$,14) : ! TRIM OFF LEADING GARBAGE "180 L1$=PIECE$(L$," blocks in ",1)"190 L3$=PIECE$(L$," blocks in ",2)200 L3$=PIECE$(L3$," file",1),210 L2$=PIECE$(L1$,"/",2) ! BLOCKS ALLOCATED'220 L1$=PIECE$(L1$,"/",1) ! BLOCKS USED* 230 CLOSE 4 240 ON ERROR GOTO 600C"250 OPEN #5,US$+".STO/FX/AP/LN:52"260 ON ERROR GOTO 0;^270 PRINT #5,RJS$(DDAT$(0),9)+RJS$(TIM$(0),9)+RJS$(L1$,8)+RJS$(L2$,8)+RJS$(L3$,8)+RJS$(AC$,10) 280 CLOSE 5 290 US=US+VAL(L1$):  AL=AL+VAL(L2$): FI=FI+VAL(L3$) (300 CALL "SPAWNB"("PIP TEMP.DIR;*/DE",S) 310 GOTO 100*320 ! ROUTINE FOR HANDLING OF OPEN FAILURE330 ON ERROR GOTO 0i340 IF FCS(0)=-26 THEN 100 350 ! STOP 360 CLOSECC370 ! ********* DO DISK BACKUP, LOG TOTALS, ETC ********* !U380 PRINT CHR$(12)5390 PRINT "TOTAL OF";US;"/";AL;"BLOCKS IN";FI;"FILES"5400 CALL "SPAWNB"("TIM",S)3410 ! CALL "SPAWNB"("BA2 LB:[1,100]NEWTTYLOG/RN",S)8.420 CALL "SPAWNB"("BA2 LB:[1,1]BACKBOTH/RN",S),430 CALL "SPAWNB"("BA2 LB:[1,1]VERIFY/RN",S)0440 CALL "SPAWNB"("BA2 DP1:[1,1]HELLOSTUF/RN",S)450 CALL "SPAWNB"("TIM",S).460 ! CALL "SPAWNB"("BA2 DP1:[1,100]DSM/RN",S)470 ! CALL "SPAWNB"("TIM",S).480 CALL "SPAWNB"("BA2 DP1:[1,100]PURGE/RN",S)1490 CALL "SPAWNB"("BA2 DP1:[202,200]SPELLY/RN",S) .500 CALL "SPAWNB"("BA2 DP1:[102,7]STAND/RN",S)580 PRINT CHR$(12)590 EXIT=600 ! ROUTINE TO CREATE NEW STORAGE LOG FILE (EXTENSION .STO)1; ! IF ONE DOES NOT EXIST. THUS ALL ONE NEEDS TO DO IN ORDER/9 ! TO START A NEW USER IS TO ENTER HIS INFO IN DIRLOG.DATA610 ON ERROR GOTO 0[620 IF FCS(0) <> -26 THEN STOP& ELSE OPEN #5,US$+".STO/FX/WR/LN:52" : GOTO 2700]DSM/RN",S)470 ! CALL "SPAWNB"("TIM",S).480 CALL "SPAWNB"("BA2 DP1:[1,100]PURGE/RN",S)1490 CALL "SPAWNB"("BA2 DP1:[202,200]SPELLY/RN",S) .500 CALL "SPAWNB"("BA2 DP1:[102,7]STAND/RN",S)580 PRINT CHR$(12)590 EXIT=600 ! ROUTINE TO CREATE NEW STORAGE LOG FILE (EXTENSION .STO)1; ! IF ONE DOES NOT EXIG100 ! PROGRAM TO READ IN DSM.LOG FILE AND DO APPROPRIATE MESSAGE THINGS6110 DIM GC$[3]V,PC$[3]V,A$[80]V,ST$[6]V,SL$[6],FA$[13]O120 B=0 : CALL "SPAWNB"("PIP LB:[1,1]DSMMSG.DAT;*,DSMNOT.DAT;*,DSM.LOG;*/DE",B)130 CALL "SPAWNB"("DSM",B)!140 OPEN #3, "LB:[1,1]DSM.LOG/RO"150 IF END #3 THEN 310160 PRINT CHR$(12)3170 PRINT A$ : PRINT : ! PRINT FIRST LINE WITH DATE180 INPUT LINE #3, A$190 IF POS(A$,"DP")<>7 THEN 180 200 PRINT A$;-210 IF LEN(A$)>39 THEN PRINT : PRINT TAB(38);)220 FA$=SEG$(A$,POS(A$,"DP"),POS(A$,"]"))DD230 P1=POS(A$,"[")+1 : P2=POS(A$,",")-1 : P3=P2+2 : P4=POS(A$,"]")-1>240 P5=POS(A$,"=")+1 : P6=POS(A$,"/")-1 : P7=P6+2 : P8=LEN(A$)+250 GC$=SEG$(A$,P1,P2) : PC$=SEG$(A$,P3,P4)"+260 ST$=SEG$(A$,P7,P8) : SL$=SEG$(A$,P5,P6),270 ST=VAL(ST$) : SL=VAL(SL$)E280 IF SL>ST THEN 300N3290 PRINT " >>> ";ST$;" USED, ";SL$;" ALLOCATED"; 300 PRINT : GOTO 180 310 CLOSE320 EXITOS(A$,"DP")<>7 THEN 180 200 PRINT A$;-210 IF LEN(A$)>39 THEN PRINT : PRINT TAB(38);)220 FA$=SEG$(A00rss10 ! EXAMALL.BAS80 DIM N$[32]V,R$[56],Y$[2] 100 ER=0 :* CALL "SPAWNB"("SRD LOG.LST=/SE:*.LOG",ER)@140 OPEN #4,"LOG.LST/RO" : IF END #4 THEN 500 : INPUT LINE #4,N$7160 INPUT LINE #4,N$ : N$=TRM$(SBS$(N$,3,9)) : PRINT N$!180 OPEN #8,N$+".LOG/RN/LN:56/RO" 200 N8=NRC(8) : IF N8<6 THEN 320 220 N7=N8-10 : IF N7<6 THEN N7=6240 FOR I=N7 TO N8260 INPUT LINE #8@I,R$ 280 PRINT R$ 300 NEXT I 320 CLOSE 8 400 GOTO 160500 CLOSE : EXIT10 ! EXAMONE.BAS80 DIM N$[32]V,R$[56],Y$[2]100 INPUT "USER NAME ",N$!120 OPEN #8,N$+".LOG/RN/LN:56/RO"#140 PRINT : PRINT NRC(8);" RECORDS" 160 PRINT :6 INPUT "STARTING RECORD NUMBER ",SR : IF SR=0 THEN 500240 FOR I=SR TO NRC(8)260 INPUT LINE #8@I,R$280 PRINT I,R$ 300 NEXT I 320 GOTO 160500 CLOSE : EXIT%10 ! program to setup mail forwarding'20 dim fo$[14],ou$[14],in$[80]v,fx$[25]25 set upper on$30 input "User name to forward ";fo$'40 input "User name to forward to ";ou$(50 ! search once to find forwarding info-60 open #3, "WHODID.LST" : if end #3 then 15080 f1=0 : f2=090 input line #3, in$-100 if pos(in$,ou$)=1 then let f2=1 : fx$=in$#110 if pos(in$,fo$)=1 then let f1=1 120 goto 90D150 if f1=0 then print "User ";fo$;"not found for forwarding" : exitC160 if f2=0 then print "User ";ou$;"not found to forward to" : exitn 170 close 3$7200 open #3, "WHODID.LST/RO" : open #4, "WHODID.LST/WR"t220 if end #3 then 300230 input line #3, in$240 if pos(in$,fo$)=1 then 270250 print #4, in$ : goto 230+270 print #4, sbs$(in$,1,25);fx$ : goto 230 300 close=.310 b=0 : call "SPAWNB"("PIP WHODID.LST/PU",b)320 exiten let f2=1 : fx$=in$#110 if pos(in$,fo$)=1 then let f1=1 120 goto 90D150 if f1=0 then print "User ";fo$;"not found for forwarding" : exitC160 if f2=0 then print "User "10 ! LOGTOT.BAS. ! TO TOTAL LOGGED ON TIME FOR A GIVEN PERIOD( ! THIS VERSION DOES A BAR GRAPH OUTPUT ! FOR all terminalsO100 DIM L$[56],N$[50]V,D1$[9],D2$[9],O1$[9],O2$[1](56),O3$[56]V,XD$[8]V,MO$[36]101 DIM DA$[21],TT$[4].105 MO$="JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC"106 DA$="SUNMONTUEWEDTHUFRISAT"!110 SD=24*3600 ! SECONDS PER DAY120 open #4, "LOGBAR.DOC/WR"125 set upper on130 input "User Name ";n$150 set upper offV200 print #4," User Name ";N$V201 print #4, " All Terminals"205 N$=N$+".LOG/RN/RO/SH/LN:56"N208 CS=0 : CM=0 : CH=0 : CD=0: TS=0 : TM=0 : TH=0 : TD=0: LD=0*209 FOR JJ=1 TO 56 : O2$(JJ)=" " : NEXT JJ%210 INPUT "MONTH,YEAR TO PLOT ";MO,YRN?211 D1$="01-"+SBS$(MO$,3*MO-2,3)+"-"+FRMT$(YR,2) : DF=DCEN(D1$)n2212 IF DF<1 THEN PRINT "INVALID DATE, " : GOTO 210W213 PRINT #4," STARTING DATE ";D1$ .214 MO=MO+1 : IF MO=13 THEN LET YR=YR+1 : MO=1Q215 D2$="01-"+SBS$(MO$,3*MO-2,3)+"-"+FRMT$(YR,2) : DL=DCEN(D2$)-1 : D2$=DDAT$(DL)+W216 PRINT #4," FINAL DATE ";D2$ 217 XD$=""220 OPEN #3,N$:" N=NRC(3): IF N<6 THEN 1010j225 PRINT #4 : PRINT #4, "DAY DATE 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 TOTAL"V226 PRINT #4, "--- -------- ! ! ! ! ! ! ! ! ! ! ! ! ! ! !" 230 LF=0: 240 FOR I=6 TO N250 INPUT LINE #3@I,L$'255 DI=DCEN(SBS$(L$,1,8)) ! LOGIN DATE+)258 DO=DCEN(SBS$(L$,20,8)) ! LOGOUT DATEN265 IF DIDL THEN 500 ?275 IF XD$="" THEN LET XD$=SBS$(L$,1,8) : LD=VAL(SBS$(XD$,4,2))%280 IF LD=VAL(SBS$(L$,23,2)) THEN 3203285 IF CD+CH+CM+CS=0 THEN 320N287 ! NEW DAY, SET THINGS UP288 XX=DCEN(XD$)289 DW=XX-INT(XX/7)*717290 O3$="" : FOR JJ=1 TO 56 : O3$=O3$+O2$(JJ) : NEXT JJ 5291 PRINT #4, SBS$(DA$,DW*3+1,3);" ";XD$;" ";O3$;" ";"H292 IF CM>=10 THEN PRINT #4, FRMT$00\W*(CD,3);":";FRMT$(CH,2);":";FRMT$(CM,2)H293 IF CM<10 THEN PRINT #4, FRMT$(CD,3);":";FRMT$(CH,2);":0";FRMT$(CM,1)U294 PRINT #4," ! ! ! ! ! ! ! ! ! ! ! ! ! ! !"V295 XD$=SBS$(L$,1,8)*296 FOR JJ=1 TO 56 : O2$(JJ)=" " : NEXT JJ;297 TS=TS+CS : CS=0 : IF TS>59 THEN LET TS=TS-60 : TM=TM+1X;300 TM=TM+CM : CM=0 : IF TM>59 THEN LET TM=TM-60 : TH=TH+15;305 TH=TH+CH : CH=0 : IF TH>23 THEN LET TH=TH-24 : TD=TD+1,+310 TD=TD+CD : CD=0 : LD=VAL(SBS$(L$,23,2))P9320 CP=VAL(SBS$(L$,10,2))*4+INT(VAL(SBS$(L$,13,2))/15)-23F6321 CT=VAL(SBS$(L$,43,2))*4+INT(VAL(SBS$(L$,46,2))/15);322 IF CP<1 THEN LET CP=1 : ELSE IF CP>56 THEN LET CP=56 "323 IF CP+CT>56 THEN LET CT=56-CP.324 FOR JJ=CP TO CP+CT : O2$(JJ)="*" : NEXT JJD325 CS=CS+VAL(SBS$(L$,49,2)) : IF CS>59 THEN LET CS=CS-60 : CM=CM+1D330 CM=CM+VAL(SBS$(L$,46,2)) : IF CM>59 THEN LET CM=CM-60 : CH=CH+1D335 CH=CH+VAL(SBS$(L$,43,2)) : IF CH>23 THEN LET CH=CH-60 : CD=CD+1340 CD=CD+VAL(SBS$(L$,39,3)) 500 NEXT I7510 O3$="" : FOR JJ=1 TO 56 : O3$=O3$+O2$(JJ) : NEXT JJF520 XX=DCEN(XD$)530 DW=XX-INT(XX/7)*7$5540 PRINT #4, SBS$(DA$,DW*3+1,3);" ";XD$;" ";O3$;" ";PF550 IF CM>9 THEN PRINT #4, FRMT$(CD,3);":";FRMT$(CH,2);":";FRMT$(CM,2)H552 IF CM<=9 THEN PRINT #4, FRMT$(CD,3);":";FRMT$(CH,2);":0";FRMT$(CM,1)*560 FOR JJ=1 TO 56 : O2$(JJ)=" " : NEXT JJ;570 TS=TS+CS : CS=0 : IF TS>59 THEN LET TS=TS-60 : TM=TM+1H;580 TM=TM+CM : CM=0 : IF TM>59 THEN LET TM=TM-60 : TH=TH+11;590 TH=TH+CH : CH=0 : IF TH>23 THEN LET TH=TH-24 : TD=TD+1J+600 TD=TD+CD : CD=0 : LD=VAL(SBS$(L$,23,2))XV605 PRINT #4, "--- -------- ! ! ! ! ! ! ! ! ! ! ! ! ! ! !"W607 PRINT #4, "DAY DATE 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20"T608 TH=TH+TD*24T 610 PRINT #4N620 PRINT #4, TAB(58);"TOTAL CONNECT :";FRMT$(TH,4);":";FRMT$(TM,2) : PRINT #4 630 CLOSE (635 print "Output is in file LOGBAR.DOC"640 EXITCM : CM=0 : IF TM>59 THEN LET TM=TM-60 : TH=TH+11;590 TH=TH+CH : CH=0 : IF TH>23 THEN LET TH=TH-24 : 10 ! LOGTOT.BAS. ! TO TOTAL LOGGED ON TIME FOR A GIVEN PERIOD( ! THIS VERSION DOES A BAR GRAPH OUTPUTO100 DIM L$[56],N$[50]V,D1$[9],D2$[9],O1$[9],O2$[1](56),O3$[56]V,XD$[8]V,MO$[36]101 DIM DA$[21].105 MO$="JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC"106 DA$="SUNMONTUEWEDTHUFRISAT"!110 SD=24*3600 ! SECONDS PER DAY200 set upper onS201 INPUT " USER NAME ";N$S202 PRINT " ALL TERMINALS"0203 set upper off 205 N$=N$+".LOG/RN/RO/SH/LN:56"E208 CS=0 : CM=0 : CH=0 : CD=0: TS=0 : TM=0 : TH=0 : TD=0: LD=0*209 FOR JJ=1 TO 56 : O2$(JJ)=" " : NEXT JJ%210 INPUT "MONTH,YEAR TO PLOT ";MO,YR?211 D1$="01-"+SBS$(MO$,3*MO-2,3)+"-"+FRMT$(YR,2) : DF=DCEN(D1$)T2212 IF DF<1 THEN PRINT "INVALID DATE, " : GOTO 210T213 PRINT " STARTING DATE ";D1$.214 MO=MO+1 : IF MO=13 THEN LET YR=YR+1 : MO=1Q215 D2$="01-"+SBS$(MO$,3*MO-2,3)+"-"+FRMT$(YR,2) : DL=DCEN(D2$)-1 : D2$=DDAT$(DL)$T216 PRINT " FINAL DATE ";D2$ 217 XD$=""220 OPEN #3,N$:O N=NRC(3): IF N<6 THEN 1010c225 PRINT : PRINT "DAY DATE 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 TOTAL"FR226 PRINT "--- -------- ! ! ! ! ! ! ! ! ! ! ! ! ! ! !" 230 LF=0: 240 FOR I=6 TO N250 INPUT LINE #3@I,L$'255 DI=DCEN(SBS$(L$,1,8)) ! LOGIN DATE)260 DO=DCEN(SBS$(L$,20,8)) ! LOGOUT DATEY265 IF DODL THEN 500 ?275 IF XD$="" THEN LET XD$=SBS$(L$,1,8) : LD=VAL(SBS$(XD$,4,2)) %280 IF LD=VAL(SBS$(L$,23,2)) THEN 320O285 IF CD+CH+CM+CS=0 THEN 3200287 ! NEW DAY, SET THINGS UP288 XX=DCEN(XD$)289 DW=XX-INT(XX/7)*757290 O3$="" : FOR JJ=1 TO 56 : O3$=O3$+O2$(JJ) : NEXT JJ 1291 PRINT SBS$(DA$,DW*3+1,3);" ";XD$;" ";O3$;" "; D292 IF CM>=10 THEN PRINT FRMT$(CD,3);":";FRMT$(CH,2);":";FRMT$(CM,2)D293 IF CM<10 THEN PRINT FRMT$(CD,3);":";FRMT$(CH,2);":0";FRMT$(CM,1)R294 PRIN00ŊrssT " ! ! ! ! ! ! ! ! ! ! ! ! ! ! !"295 XD$=SBS$(L$,1,8)*296 FOR JJ=1 TO 56 : O2$(JJ)=" " : NEXT JJ;297 TS=TS+CS : CS=0 : IF TS>59 THEN LET TS=TS-60 : TM=TM+1T;300 TM=TM+CM : CM=0 : IF TM>59 THEN LET TM=TM-60 : TH=TH+1";305 TH=TH+CH : CH=0 : IF TH>23 THEN LET TH=TH-24 : TD=TD+1$+310 TD=TD+CD : CD=0 : LD=VAL(SBS$(L$,23,2))C9320 CP=VAL(SBS$(L$,10,2))*4+INT(VAL(SBS$(L$,13,2))/15)-23)6321 CT=VAL(SBS$(L$,43,2))*4+INT(VAL(SBS$(L$,46,2))/15);322 IF CP<1 THEN LET CP=1 : ELSE IF CP>56 THEN LET CP=56 "323 IF CP+CT>56 THEN LET CT=56-CP.324 FOR JJ=CP TO CP+CT : O2$(JJ)="*" : NEXT JJD325 CS=CS+VAL(SBS$(L$,49,2)) : IF CS>59 THEN LET CS=CS-60 : CM=CM+1D330 CM=CM+VAL(SBS$(L$,46,2)) : IF CM>59 THEN LET CM=CM-60 : CH=CH+1D335 CH=CH+VAL(SBS$(L$,43,2)) : IF CH>23 THEN LET CH=CH-60 : CD=CD+1340 CD=CD+VAL(SBS$(L$,39,3)) 500 NEXT I7510 O3$="" : FOR JJ=1 TO 56 : O3$=O3$+O2$(JJ) : NEXT JJ)520 XX=DCEN(XD$)530 DW=XX-INT(XX/7)*7$1540 PRINT SBS$(DA$,DW*3+1,3);" ";XD$;" ";O3$;" ";IB550 IF CM>9 THEN PRINT FRMT$(CD,3);":";FRMT$(CH,2);":";FRMT$(CM,2)D552 IF CM<=9 THEN PRINT FRMT$(CD,3);":";FRMT$(CH,2);":0";FRMT$(CM,1)*560 FOR JJ=1 TO 56 : O2$(JJ)=" " : NEXT JJ;570 TS=TS+CS : CS=0 : IF TS>59 THEN LET TS=TS-60 : TM=TM+1=;580 TM=TM+CM : CM=0 : IF TM>59 THEN LET TM=TM-60 : TH=TH+1-;590 TH=TH+CH : CH=0 : IF TH>23 THEN LET TH=TH-24 : TD=TD+13+600 TD=TD+CD : CD=0 : LD=VAL(SBS$(L$,23,2))TR605 PRINT "--- -------- ! ! ! ! ! ! ! ! ! ! ! ! ! ! !"S607 PRINT "DAY DATE 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20"5 610 PRINTTW620 PRINT TAB(58);"TOTAL CONNECT ";FRMT$(TD,2);":";FRMT$(TH,2);":";FRMT$(TM,2) : PRINT : 630 CLOSE 3 640 EXIT CS=0 : IF TS>59 THEN LET TS=TS-60 : TM=TM+1=;580 TM=TM+CM : CM=0 : IF TM>59 THEN LET TM=TM-60 : TH=TH+1-;590 TH=TH+CH : CH=0 : IF TH>23 THEN LET TH=TH-24 : TD=TD+13+600 TD=TD+CD : CD=0 : LD=VAL(SBS$(L$,23,2))TR605 PRINT "--- -------- ! ! ! ! ! ! ! ! ! ! ! ! ! ! !"10 ! LOGTOT.BAS. ! TO TOTAL LOGGED ON TIME FOR A GIVEN PERIOD( ! THIS VERSION DOES A BAR GRAPH OUTPUT ! FOR ONE TERMINAL ONLYO100 DIM L$[56],N$[50]V,D1$[9],D2$[9],O1$[9],O2$[1](56),O3$[56]V,XD$[8]V,MO$[36]101 DIM DA$[21],TT$[4].105 MO$="JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC"106 DA$="SUNMONTUEWEDTHUFRISAT"!110 SD=24*3600 ! SECONDS PER DAY120 open #4, "LOGBAR.DOC/WR"125 set upper on130 input "User Name ";n$ 140 input "Terminal (TTnn) ";tt$150 set upper offV200 print #4," User Name ";N$X201 print #4, " Terminal ";TT$205 N$=N$+".LOG/RN/RO/SH/LN:56"5208 CS=0 : CM=0 : CH=0 : CD=0: TS=0 : TM=0 : TH=0 : TD=0: LD=0*209 FOR JJ=1 TO 56 : O2$(JJ)=" " : NEXT JJ%210 INPUT "MONTH,YEAR TO PLOT ";MO,YR0?211 D1$="01-"+SBS$(MO$,3*MO-2,3)+"-"+FRMT$(YR,2) : DF=DCEN(D1$) 2212 IF DF<1 THEN PRINT "INVALID DATE, " : GOTO 210W213 PRINT #4," STARTING DATE ";D1$ .214 MO=MO+1 : IF MO=13 THEN LET YR=YR+1 : MO=1Q215 D2$="01-"+SBS$(MO$,3*MO-2,3)+"-"+FRMT$(YR,2) : DL=DCEN(D2$)-1 : D2$=DDAT$(DL)+W216 PRINT #4," FINAL DATE ";D2$ 217 XD$=""220 OPEN #3,N$:" N=NRC(3): IF N<6 THEN 1010j225 PRINT #4 : PRINT #4, "DAY DATE 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 TOTAL"V226 PRINT #4, "--- -------- ! ! ! ! ! ! ! ! ! ! ! ! ! ! !" 230 LF=0: 235 XD$="00/00/00"240 FOR I=6 TO N250 INPUT LINE #3@I,L$'255 DI=DCEN(SBS$(L$,1,8)) ! LOGIN DATE")258 DO=DCEN(SBS$(L$,20,8)) ! LOGOUT DATE("260 IF TT$<>SBS$(L$,52,4) THEN 500262 IF DIDL THEN 500D280 LD=VAL(SBS$(XD$,4,2)) $282 IF LD=VAL(SBS$(L$,4,2)) THEN 320285 IF CD+CH+CM+CS=0 THEN 320,287 ! NEW DAY, SET THINGS UP7288 O3$="" : FOR JJ=1 TO 56 : O3$=O3$+O2$(JJ) : NEXT JJ 5289 PRINT #4, SBS$(DA$,DW*3+1,3);" ";XD$;" ";O3$;" "; H290 IF CM>=10 THEN P00Ɋ͊\W*RINT #4, FRMT$(CD,3);":";FRMT$(CH,2);":";FRMT$(CM,2)H291 IF CM<10 THEN PRINT #4, FRMT$(CD,3);":";FRMT$(CH,2);":0";FRMT$(CM,1)U292 PRINT #4," ! ! ! ! ! ! ! ! ! ! ! ! ! ! !"F#293 XD$=SBS$(L$,1,8) : XX=DCEN(XD$)8294 DW=XX-INT(XX/7)*7 *296 FOR JJ=1 TO 56 : O2$(JJ)=" " : NEXT JJ;297 TS=TS+CS : CS=0 : IF TS>59 THEN LET TS=TS-60 : TM=TM+1 ;300 TM=TM+CM : CM=0 : IF TM>59 THEN LET TM=TM-60 : TH=TH+1N;305 TH=TH+CH : CH=0 : IF TH>23 THEN LET TH=TH-24 : TD=TD+1 +310 TD=TD+CD : CD=0 : LD=VAL(SBS$(L$,23,2))"9320 CP=VAL(SBS$(L$,10,2))*4+INT(VAL(SBS$(L$,13,2))/15)-23R6321 CT=VAL(SBS$(L$,43,2))*4+INT(VAL(SBS$(L$,46,2))/15);322 IF CP<1 THEN LET CP=1 : ELSE IF CP>56 THEN LET CP=569"323 IF CP+CT>56 THEN LET CT=56-CP.324 FOR JJ=CP TO CP+CT : O2$(JJ)="*" : NEXT JJD325 CS=CS+VAL(SBS$(L$,49,2)) : IF CS>59 THEN LET CS=CS-60 : CM=CM+1D330 CM=CM+VAL(SBS$(L$,46,2)) : IF CM>59 THEN LET CM=CM-60 : CH=CH+1D335 CH=CH+VAL(SBS$(L$,43,2)) : IF CH>23 THEN LET CH=CH-60 : CD=CD+1340 CD=CD+VAL(SBS$(L$,39,3)) 500 NEXT I7510 O3$="" : FOR JJ=1 TO 56 : O3$=O3$+O2$(JJ) : NEXT JJR5520 PRINT #4, SBS$(DA$,DW*3+1,3);" ";XD$;" ";O3$;" ";)530 XX=DCEN(XD$)540 DW=XX-INT(XX/7)*7PF550 IF CM>9 THEN PRINT #4, FRMT$(CD,3);":";FRMT$(CH,2);":";FRMT$(CM,2)H552 IF CM<=9 THEN PRINT #4, FRMT$(CD,3);":";FRMT$(CH,2);":0";FRMT$(CM,1)*560 FOR JJ=1 TO 56 : O2$(JJ)=" " : NEXT JJ;570 TS=TS+CS : CS=0 : IF TS>59 THEN LET TS=TS-60 : TM=TM+1H;580 TM=TM+CM : CM=0 : IF TM>59 THEN LET TM=TM-60 : TH=TH+11;590 TH=TH+CH : CH=0 : IF TH>23 THEN LET TH=TH-24 : TD=TD+1J+600 TD=TD+CD : CD=0 : LD=VAL(SBS$(L$,23,2))RV605 PRINT #4, "--- -------- ! ! ! ! ! ! ! ! ! ! ! ! ! ! !"W607 PRINT #4, "DAY DATE 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20"T608 TH=TH+TD*24T 610 PRINT #4N620 PRINT #4, TAB(58);"TOTAL CONNECT :";FRMT$(TH,4);":";FRMT$(TM,2) : PRINT #4 630 CLOSE (635 print "Output is in file LOGBAR.DOC"640 EXITCM : CM=0 : IF TM>59 THEN LET TM=TM-60 : TH=TH+1110 ! LOGTOT.BAS. ! TO TOTAL LOGGED ON TIME FOR A GIVEN PERIOD( ! THIS VERSION DOES A BAR GRAPH OUTPUT ! FOR ONE TERMINAL ONLYO100 DIM L$[56],N$[50]V,D1$[9],D2$[9],O1$[9],O2$[1](56),O3$[56]V,XD$[8]V,MO$[36]101 DIM DA$[21],TT$[4].105 MO$="JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC"106 DA$="SUNMONTUEWEDTHUFRISAT"!110 SD=24*3600 ! SECONDS PER DAY120 PRINT CHR$(12)200 set upper onS201 INPUT " USER NAME ";N$T202 INPUT " TERMINAL ";TT$203 set upper offV205 N$=N$+".LOG/RN/RO/SH/LN:56" 208 CS=0 : CM=0 : CH=0 : CD=0: TS=0 : TM=0 : TH=0 : TD=0: LD=0*209 FOR JJ=1 TO 56 : O2$(JJ)=" " : NEXT JJ%210 INPUT "MONTH,YEAR TO PLOT ";MO,YRR?211 D1$="01-"+SBS$(MO$,3*MO-2,3)+"-"+FRMT$(YR,2) : DF=DCEN(D1$)12212 IF DF<1 THEN PRINT "INVALID DATE, " : GOTO 210T213 PRINT " STARTING DATE ";D1$.214 MO=MO+1 : IF MO=13 THEN LET YR=YR+1 : MO=1Q215 D2$="01-"+SBS$(MO$,3*MO-2,3)+"-"+FRMT$(YR,2) : DL=DCEN(D2$)-1 : D2$=DDAT$(DL)$T216 PRINT " FINAL DATE ";D2$ 217 XD$=""220 OPEN #3,N$:O N=NRC(3): IF N<6 THEN 1010c225 PRINT : PRINT "DAY DATE 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 TOTAL"FR226 PRINT "--- -------- ! ! ! ! ! ! ! ! ! ! ! ! ! ! !" 230 LF=0: 240 FOR I=6 TO N250 INPUT LINE #3@I,L$'255 DI=DCEN(SBS$(L$,1,8)) ! LOGIN DATE)258 DO=DCEN(SBS$(L$,20,8)) ! LOGOUT DATEY"260 IF TT$<>SBS$(L$,52,4) THEN 500265 IF DODL THEN 500 ?275 IF XD$="" THEN LET XD$=SBS$(L$,1,8) : LD=VAL(SBS$(XD$,4,2)),%280 IF LD=VAL(SBS$(L$,23,2)) THEN 3202285 IF CD+CH+CM+CS=0 THEN 320 287 ! NEW DAY, SET THINGS UP288 XX=DCEN(XD$)289 DW=XX-INT(XX/7)*7 7290 O3$="" : FOR JJ=1 TO 56 : O3$=O3$+O2$(JJ) : NEXT JJ 1291 PRINT SBS$(DA$,DW*3+1,3);" ";XD$;" ";O3$;" ";D292 IF CM>=10 THEN PRINT FRMT$(CD,3);":";FRMT$(CH,2);":";F00ъՊrssRMT$(CM,2)D293 IF CM<10 THEN PRINT FRMT$(CD,3);":";FRMT$(CH,2);":0";FRMT$(CM,1)R294 PRINT " ! ! ! ! ! ! ! ! ! ! ! ! ! ! !"295 XD$=SBS$(L$,1,8)*296 FOR JJ=1 TO 56 : O2$(JJ)=" " : NEXT JJ;297 TS=TS+CS : CS=0 : IF TS>59 THEN LET TS=TS-60 : TM=TM+1T;300 TM=TM+CM : CM=0 : IF TM>59 THEN LET TM=TM-60 : TH=TH+1";305 TH=TH+CH : CH=0 : IF TH>23 THEN LET TH=TH-24 : TD=TD+1$+310 TD=TD+CD : CD=0 : LD=VAL(SBS$(L$,23,2))C9320 CP=VAL(SBS$(L$,10,2))*4+INT(VAL(SBS$(L$,13,2))/15)-23)6321 CT=VAL(SBS$(L$,43,2))*4+INT(VAL(SBS$(L$,46,2))/15);322 IF CP<1 THEN LET CP=1 : ELSE IF CP>56 THEN LET CP=56 "323 IF CP+CT>56 THEN LET CT=56-CP.324 FOR JJ=CP TO CP+CT : O2$(JJ)="*" : NEXT JJD325 CS=CS+VAL(SBS$(L$,49,2)) : IF CS>59 THEN LET CS=CS-60 : CM=CM+1D330 CM=CM+VAL(SBS$(L$,46,2)) : IF CM>59 THEN LET CM=CM-60 : CH=CH+1D335 CH=CH+VAL(SBS$(L$,43,2)) : IF CH>23 THEN LET CH=CH-60 : CD=CD+1340 CD=CD+VAL(SBS$(L$,39,3)) 500 NEXT I7510 O3$="" : FOR JJ=1 TO 56 : O3$=O3$+O2$(JJ) : NEXT JJ)520 XX=DCEN(XD$)530 DW=XX-INT(XX/7)*7$1540 PRINT SBS$(DA$,DW*3+1,3);" ";XD$;" ";O3$;" ";IB550 IF CM>9 THEN PRINT FRMT$(CD,3);":";FRMT$(CH,2);":";FRMT$(CM,2)D552 IF CM<=9 THEN PRINT FRMT$(CD,3);":";FRMT$(CH,2);":0";FRMT$(CM,1)*560 FOR JJ=1 TO 56 : O2$(JJ)=" " : NEXT JJ;570 TS=TS+CS : CS=0 : IF TS>59 THEN LET TS=TS-60 : TM=TM+1=;580 TM=TM+CM : CM=0 : IF TM>59 THEN LET TM=TM-60 : TH=TH+1-;590 TH=TH+CH : CH=0 : IF TH>23 THEN LET TH=TH-24 : TD=TD+13+600 TD=TD+CD : CD=0 : LD=VAL(SBS$(L$,23,2))TR605 PRINT "--- -------- ! ! ! ! ! ! ! ! ! ! ! ! ! ! !"S607 PRINT "DAY DATE 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20"5 610 PRINTTW620 PRINT TAB(58);"TOTAL CONNECT ";FRMT$(TD,2);":";FRMT$(TH,2);":";FRMT$(TM,2) : PRINT : 630 CLOSE 3 640 EXIT CS=0 : IF TS>59 THEN LET TS=TS-60 : TM=TM+1=;580 TM=TM+CM : CM=0 : IF TM>59 THEN LET TM=TM-60 : TH=TH+1-;590 TH=TH+CH : CH=0 : IF TH>23 THEN LET TH=TH-24 : TD=TD+13+600 TD=TD+CD : CD=0 : LD=VAL(SBS$(L$,210 ! LOGCHECK.BAS2 ! TO VERIFY CONSISTENCY AND ORDER OF ".LOG" FILES ! WRITTEN BY BYEPDS (...BYE)" ! FOLLOWING CHECKS ARE PERFORMED:1 ! 1) DATES AND TIMES CAN BE INTERPRETED PROPERLY! ! 2) LOGIN HAPPENS BEFORE LOGOUT: ! 3) COMPUTED CONNECT TIME AGREES WITH LOGIN/LOGOUT TIMES) ! 4) LOGOUT TIMES ARE IN ASCENDING ORDER100 DIM L$[56](2),N$[50]V 110 SD=24*3600 ! SECONDS PER DAY200 INPUT "USER NAME ";N$: PRINT TAB(12);N$ 210 N$=N$+".LOG/RN/RO/SH/LN:56": E=0 ! INITIALIZE ERROR COUNT$ T=0 ! INITIALIZE TOTAL CONNECT TIME220 OPEN #3,N$:O N=NRC(3): IF N<6 THEN 1010N 230 LF=0:(300 FOR I=6 TO N310 INPUT LINE #3@I,L$(1)320 ON ERROR GOTO 510A)330 DI=DCEN(SBS$(L$(1),1,8)) ! LOGIN DATEP& TI=SEC(SBS$(L$(1),10,8)) ! LOGIN TIME( DO=DCEN(SBS$(L$(1),20,8)) ! LOGOUT DATE' T0=SEC(SBS$(L$(1),29,8)) ! LOGOUT TIME0 CT=SEC(SBS$(L$(1),43,8)) ! PARTIAL CONNECT TIME4 CT=CT+SD*VAL(SBS$(L$(1),37,5)) ! TOTAL CONNECT TIME ON ERROR GOTO 0 340 IF DI < 0: OR TI < 0 OR DO < 0 OR T0 < 0 OR CT < 0 THEN 510A350 IF DI > DO OR (DI=DO AND TI>T0)C THEN 530<&360 IF SD*(DO-DI)+T0-TI <> CT THEN 550380 IF LF=1 THEN IF@ (DL > DO OR (DL=DO AND TL>T0)) THEN 570( 390 DL=DO: TL=T0:G L$(2)=L$(1):E LF=1: T=T+CT) 400 GOTO 1000500 ! ERROR MESSAGE SECTIONL/510 PRINT "REC #";I;TAB(25);"FORMATTING ERROR":M PRINT L$(1):$ ON ERROR GOTO 0:T GOTO 600 2530 PRINT "REC #";I;TAB(25);"LOGOUT BEFORE LOGIN": PRINT L$(1):O GOTO 60041550 PRINT "REC #";I;TAB(25);"CONNECT TIME WRONG":O PRINT L$(1): - PRINT "CT =";CT;", CALC =";(DO-DI)*SD+T0-TI:T GOTO 60065570 PRINT "REC #";I;TAB(25);"RECORD OUT OF SEQUENCE":I PRINT L$(2) : PRINT L$(1):L GOTO 600E 600 PRINT: E=E+1:T LF=0 1000 NEXT IE?1010 PRINT TAB(40); "TOTAL ERRORS ON ";PIECE$(N$,"/",1);" =";E:+ PRINT TAB(40); "TOTAL RECORDS =";NRC(3)-5:"O PRINT TAB(40); "TOTAL CONNECT TIME = "STR$(INT(T/SD));":";TIM$(T-INT(T/SD)*SD)L 1020 CLOSE 3 1030 GOTO 200L$(1):O GOTO 60041550 PRINT "REC #";I;TAB(25);"CONNECT TIME WRONG":O00يފ\W*10 ! LOGCHECK.BAS3 ! TO VERIFY CONSISTENCY AND ORDER OF ".LOG" FILES ! WRITTEN BY BYEPDS (...BYE)# ! FOLLOWING CHECKS ARE PERFORMED:3 ! 1) DATES AND TIMES CAN BE INTERPRETED PROPERLY# ! 2) LOGIN HAPPENS BEFORE LOGOUT< ! 3) COMPUTED CONNECT TIME AGREES WITH LOGIN/LOGOUT TIMES+ ! 4) LOGOUT TIMES ARE IN ASCENDING ORDER!100 DIM L$[56](2),N$[50]V,A$[11]V!110 SD=24*3600 ! SECONDS PER DAY115 AN=1,120 CALL "SPAWNB"("SRD NA.DAT=/SE:*.LOG",AN)125 OPEN #5,"NA.DAT"127 INPUT LINE #5,A$128 IF END #5 THEN 1100V130 INPUT LINE #5,A$131 PRINT TAB(12);A$(210 N$=SBS$(A$,3)+".LOG/RN/RO/SH/LN:56": E=0 ! INITIALIZE ERROR COUNT $ T=0 ! INITIALIZE TOTAL CONNECT TIME220 OPEN #3,N$: N=NRC(3): IF N<6 THEN 1010 230 LF=0:O300 FOR I=6 TO N310 INPUT LINE #3@I,L$(1)T320 ON ERROR GOTO 510M*330 DI=DCEN(SBS$(L$(1),1,8)) ! LOGIN DATE' TI=SEC(SBS$(L$(1),10,8)) ! LOGIN TIMEO) DO=DCEN(SBS$(L$(1),20,8)) ! LOGOUT DATES( T0=SEC(SBS$(L$(1),29,8)) ! LOGOUT TIME1 CT=SEC(SBS$(L$(1),43,8)) ! PARTIAL CONNECT TIMEV5 CT=CT+SD*VAL(SBS$(L$(1),37,5)) ! TOTAL CONNECT TIMES ON ERROR GOTO 0/340 IF DI < 0 OR TI < 0 OR DO < 0 OR T0 < 0L OR CT < 0N THEN 510350 IF DI > DON OR (DI=DO AND TI>T0) THEN 530&360 IF SD*(DO-DI)+T0-TI <> CT THEN 550380 IF LF=1 THEN IF  (DL > DO OR (DL=DO AND TL>T0))) THEN 570 390 DL=DO: TL=T0:$ L$(2)=L$(1):! LF=1: T=T+CT= 400 GOTO 1000,500 ! ERROR MESSAGE SECTION0510 PRINT "REC #";I;TAB(25);"FORMATTING ERROR": PRINT L$(1): ON ERROR GOTO 0: GOTO 6003530 PRINT "REC #";I;TAB(25);"LOGOUT BEFORE LOGIN":R PRINT L$(1): GOTO 6002550 PRINT "REC #";I;TAB(25);"CONNECT TIME WRONG": PRINT L$(1):. PRINT "CT =";CT;", CALC =";(DO-DI)*SD+T0-TI: GOTO 6006570 PRINT "REC #";I;TAB(25);"RECORD OUT OF SEQUENCE": PRINT L$(2) : PRINT L$(1): GOTO 600 600 PRINT : E=E+1:0 LF=0( 1000 NEXT IL?1010 PRINT TAB(40); "TOTAL ERRORS ON ";PIECE$(N$,"/",1);" =";E: , PRINT TAB(40); "TOTAL RECORDS =";NRC(3)-5:P PRINT TAB(40); "TOTAL CONNECT TIME = "STR$(INT(T/SD));":";TIM$(T-INT(T/SD)*SD) 1020 CLOSE 3 1030 GOTO 130$ 1100 CLOSE 6002550 PRINT "REC #";I;TAB(25);"CONNECT TIME WRONG": PRINT L$(1):. PRINT "CT =";CT;", CALC =";(DO-DI)*SD+T0-TI: GOTO 6006570 PRINT "REC #";I;TAB(25);"RECORD OUT OF SEQUENCE": PRINT L$(2) : PRINT L$(1): GOTO 600 600 PRINT : E=E+1:0 LF=0( 1000 NEXT IL?1010 PRINT TAB(40); "TOTAL ERRORS ON ";PIECE$(N$,"/",1);" =";E: , PRINT TAB(40); "TOTAL RECORDS =";NRC(3)-5:P 10 ! PROGRAM LOGCLEAN.BAS11 ! TO LOOK AT LOOGED ON USERS.12 ! AND CLEAN UP IF CLOBBERED BY SYSTEM CRASH320 DEF FNT1$(X)=STRING$("0",2-LEN(STR$(X)))+STR$(X)530 DIM MO$[36],A$[80]V,U$[12]V,L$[56],V$[32]V,T$[32]V-40 MO$="JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC"50 DIM #3,D%(255),R%(31,9)60 DIM #4,UP%(143,31)(70 OPEN #3,"LB:[1,1]HELBYE.TSK/BL/MO/SH"*80 OPEN #4,"SD:[1,100]PDSUPF.DAT/BL/RO/SH"100 FOR N=1 TO 30110 IF R%(N,0)=0 THEN 130 ELSE GOSUB 900 130 NEXT N 140 EXIT 900 T$=OCT$(N) : IF LEN(T$)<2 THEN T$="0"+T$920 PRINT "TT";T$;" ";1000 PRINT "USER: ";1010 V$="" : FOR J=0 TO 3C1020 U$=R5A$(UP%(R%(N,8)-1,J))1030 V$=V$+U$ : PRINT U$;1040 NEXT J : V$=TRM$(V$)21050 PRINT "LOGGED ON AT ";0G1060 A$=STR$(R%(N,2))+"-"+SBS$(MO$,(R%(N,1)-1)*3+1,3)+"-"+STR$(R%(N,0))1070 PRINT A$+" ";M1080 FOR J=3 TO 5 : PRINT FNT1$(R%(N,J)); : IF J<>5 THEN PRINT ":"; : NEXT J/1090 INPUT " ACTION ",X$ :" IF POS("CONTINUE",X$)=1 THEN 129031100 IF POS("KILL",X$)=1 THEN R%(N,0)=0 : GOTO 1290I<1110 IF POS("LOGOFF",PIECE$(X$,",",1))=1 THEN L$=SPACE$(56): IF PIECE$(X$,",",2)<>"" THEN0 T$=PIECE$(X$,",",2): D1$=PIECE$(T$," ",1):$ T1$=PIECE$(T$," ",2):X D1=DCEN(D1$):2 T1=SEC(T1$): CALL "INSTRG"(L$,DAT$(D1),20): CALL "INSTRG"(L$,TIM$(T1),29)3 ELSE D1$=DAT$() : T1$=TIM$(): CALL "INSTRG"(L$,D1$,20):  CALL "INSTRG"(L$,T1$,29) ELSE 1090>1120 D2$=FNT1$(R%(N,1))+"/"+FNT1$(R%(N,2))+"/"+FNT1$(R%(N,0)):9 T2$=FNT1$(R%(N,3))+":"+FNT1$(R%(N,4))+":"+FNT1$(R%(N,5)) 1100ኡ㊢劣rss30 CALL "INSTRG"(L$,D2$,1):" CALL "INSTRG"(L$,T2$,10)$1140 ! NOW CALCULATE DIFFERENCE) GOSUB 2180 1180 CALL "INSTRG"(L$,T$,39)1190 T$=OCT$(N): IF LEN(T$) < 2 THEN T$="0"+T$!1200 CALL "INSTRG"(L$,"TT"+T$,52)""1210 OPEN #5,V$+".LOG/AP/FX/LN:56"1220 PRINT #5,L$ : CLOSE 51230 R%(N,0)=0 1290 RETURN 2180 ! CALC CORRECT TIME.2200 DA=DCEN(SBS$(L$,20,8))-DCEN(SBS$(L$,1,8))-2220 HR=VAL(SBS$(L$,29,2))-VAL(SBS$(L$,10,2))T-2240 MI=VAL(SBS$(L$,32,2))-VAL(SBS$(L$,13,2))N-2260 SE=VAL(SBS$(L$,35,2))-VAL(SBS$(L$,16,2)),$2280 IF SE<0 THEN SE=SE+60 : MI=MI-1$2300 IF MI<0 THEN MI=MI+60 : HR=HR-1$2320 IF HR<0 THEN HR=HR+24 : DA=DA-172340 IF DA<0 THEN DA=31 :! NOT IMPORTANT IF THIS LONGCC2360 T$=FRMT$(DA,3)+":"+FRMT$(HR,2)+":"+FRMT$(MI,2)+":"+FRMT$(SE,2)02380 FOR J=1 TO 3EK2400 IF SBS$(T$,J*3+2,1)=" " THEN T$=SEG$(T$,1,J*3+1)+"0"+SEG$(T$,J*3+3,12)( 2420 NEXT JN 2440 RETURN)-2220 HR=VAL(SBS$(L$,29,2))-VAL(SBS$(L$,10,2))T-2240 MI=VAL(SBS$(L$,32,2))-VAL(SBS$(L$,13,2))N-2260 SE=VAL(SBS$(L$,35,2))100 ! logcor.bas' ! to enable correction of ".log" files) ! from damage caused by incorrect system ! time setting or other errors120 dim l$[56],n$[50]v,a$[56]v140 if end then 480150 set upper on160 input "User ";n$$180 open #3,n$+".LOG/MO/RN/SH/LN:56" 200 n=nrc(3)220 print "Total records =";n240 if end then 460260 input "Record #";i280 if i < 6 or i > n then 260 else input line #3@i,l$7300 for j=1 to 6 : print "1234567890"; : next j : print 320 print l$340 if end then 240360 input "Col #, String ";c,a$r380 call "INSTRG"(l$,a$,c)400 input ""+l$+"! OK";a$r 420 if pos(a$,"Y") <> 1 then 260 else print #3@i,l$ 440 goto 260460 close 3 : goto 140480 close 3 : exitr on160 input "User ";n$$180 open #3,n$+".LOG/MO/RN/SH/LN:56" 200 n=nrc(3)220 print "Total records =";n240 if end then 460260 input "Record #";i280 if i < 6 or i > n then 260 else input line #3@i,l$7300 for j=1 to 6 : print "1234567890"; : next j : print 320 print l$340 if end then 2405 ! PROGRAM LOGCREATE.SYS=10 ! PROGRAM TO COPY SAMPLE.LOG TO FILE TO BE XXXXXX.LOG FILE?20 ! OUTPUT SHOUDL BE FIXED LENGTH RECORDS TO MAKE IT EASIER TO30 ! WORK THROUGH IT40 DIM A$[30]V,B$[56]44 PRINT,45 PRINT "WILL NOW CREATE NEW USER LOG FILE"50 PRINT "USER NAME"; 60 INPUT A$70 OPEN #3,"SAMPLE.LOG/RO" 80 OPEN #4,A$+".LOG/FX/LN:56/WR"90 INPUT LINE #3,B$100 PRINT #4,B$110 IF END #3 THEN 200 120 GOTO 90 200 CLOSE 210 B=0A220 CALL "SPAWNB"("PIP "+A$+".LOG/PR/SY:RWE/GR:R/OW:RWED/WO:R",B)L240 RUN "USERSMENU.SYS"M TO COPY SAMPLE.LOG TO FILE TO BE XXXXXX.LOG FILE?20 ! OUTPUT SHOUDL BE FIXED LENGTH RECORDS TO MAKE IT EASIER TO30 ! WORK THROUGH IT40 DIM A$[30]V,B$[56]44 PRINT,45 PRINT "WILL NOW CREATE NEW USER LOG FILE"50 PRINT "USER NAME"; 60 INPUT A$70 OPEN #3,"SAMPLE.LOG/RO" 80 OPEN #4,A$+".LOG/FX/LN:56/WR"90 INPUT LINE #3,B$100 PRINT #4,B$110 IF END #3 THEN 200 120 GOTO 90 200 CLOSE 210 B=0A220 CALL "SPAWNB"("PIP "+A$+".LOG/PR/SY:RWE/GR:R/O10 ! LOGDUPCHK.BAS2 ! TO CHECK FOR DUPLICATE RECORDS IN ".LOG" FILES ! WRITTEN BY BYEPDS (...BYE)!100 DIM L$[56](2),N$[50]V,A$[11]V3110 AN=0 : CALL "SPAWNB"("SRD NA.DAT=/SE:*.LOG",AN).120 OPEN #5,"NA.DAT/EN:500" : INPUT LINE #5,A$'200 INPUT LINE #5,A$ : PRINT TAB(12);A$(210 N$=SBS$(A$,3)+".LOG/RN/RO/SH/LN:56":)220 OPEN #3,N$: N=NRC(3): IF N<6 THEN 420300 FOR I=6 TO N310 INPUT LINE #3@I,L$(2)7320 IF L$(2)=L$(1) THEN PRINT FRMT$(I-1,5);" ";L$(1) : PRINT FRMT$(I,5);" ";L$(2)330 L$(1)=L$(2)P 400 NEXT I/410 PRINT TAB(40); "TOTAL RECORDS =";NRC(3)-5: 420 CLOSE 3Y 430 GOTO 200 500 CLOSE L$[56](2),N$[50]V,A$[11]V3110 AN=0 : CALL "SPAWNB"("SRD NA.DAT=/SE:*.LOG",AN).120 OPEN #5,"NA.DAT/EN:500" : INPUT LINE #5,A$'200 INPUT LINE #5,A$ : PRINT TAB(12);A$(210 N$=SBS$(A$,3)+".LOG/RN/RO/SH/LN:56":)220 OPEN #3,N$: N=NRC(3): IF N<6 THEN 420300 FOR I=6 TO N310 INPUT LINE #3@I,L$(2)7320 IF L$(2)=L$(1) THEN PRINT FRMT$(I-1,5);" ";L$(1) : PRINT FRMT$(I,5);" ";L$(2)3300銥\W*10 DIM I$[56],J$[14]V.20 OPEN #3,"LOG.LST/EN:200" : INPUT LINE #3,J$630 INPUT LINE #3,J$ : J$=TRM$(SBS$(J$,3,9)) : PRINT J$ 40 OPEN #4,J$+".LOG/RN/LN:56/MO"50 J=NRC(4) : JL=J-460 FOR I=JL TO J70 INPUT LINE #4@I,I$ 80 PRINT I$ 90 NEXT I 100 PRINT 120 CLOSE 4 130 GOTO 30 200 CLOSE210 EXIT10 ! loginout.bas2 ! to plot log in and out time for a given period( ! this version does a bar graph output< ! for greatest elapsed time, even if logged out during dayO100 dim l$[56],n$[50]v,d1$[9],d2$[9],o1$[9],o2$[1](56),o3$[56]v,xd$[8]v,mo$[36]101 dim da$[21],tt$[4].105 mo$="JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC"106 da$="SunMonTueWedThuFriSat"!110 sd=24*3600 ! seconds per day120 set upper onS130 input " User Name ";n$150 set upper offi,165 n$="SD:[1,100]"+n$+".LOG/RN/RO/SH/LN:56"170 for jj=1 to 53 step 4rG171 o2$(jj)=" " :o2$(jj+1)=" " :o2$(jj+2)=" " : o2$(jj+3)="|" : next jje%175 input "Month,Year to plot ";mo,yrv?180 d1$="01-"+sbs$(mo$,3*mo-2,3)+"-"+frmt$(yr,2) : df=dcen(d1$)i2185 if df<1 then print "Invalid date, " : goto 210f190 print " Starting date ";d1$;chr$(13); : break.195 mo=mo+1 : if mo=13 then let yr=yr+1 : mo=1Q200 d2$="01-"+sbs$(mo$,3*mo-2,3)+"-"+frmt$(yr,2) : dl=dcen(d2$)-1 : d2$=ddat$(dl)GT205 print " Final date ";d2$ 210 xd$=""+215 open #3,n$: n=nrc(3) : if n<6 then 1010ob220 print : print "Day date 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 total"R225 print "-------------+---+---+---+---+---+---+---+---+---+---+---+---+---+---+" 230 lf=0: 235 xd$="00/00/00"240 for i=6 to n250 input line #3@i,l$'255 di=dcen(sbs$(l$,1,8)) ! login date+)260 do=dcen(sbs$(l$,20,8)) ! logout daten265 if didl then 400 271 if do=di then 275 B272 ! correct logout next day to be logout at 18:00 hours same day.273 l$=sbs$(l$,1,28)+"18:00:00"+sbs$(l$,37,20)1275 if xy=1 then 280 : check for first day of rpt1>276 xy=1 : xd$=sbs$(l$,1,8) : xx=dcen(xd$) : dw=xx-int(xx/7)*7277 for jj=1 to 53 step 4-G278 o2$(jj)=" " :o2$(jj+1)=" " :o2$(jj+2)=" " : o2$(jj+3)="|" : next jj51279 ih=val(sbs$(l$,10,2)) : im=val(sbs$(l$,13,2))l280 ld=val(sbs$(xd$,4,2))$L285 if ld=val(sbs$(l$,4,2)) then 390 : !if same day, just update logout time290 ! new day, set things up/300 fi=(ih*60+im)/15-28 : if fi<1 then let fi=1 305 if fi>56 then let fi=56)1310 fo=(oh*60+om)/15-28 : if fo>56 then let fo=56c315 if fo<1 then let fo=1+320 for jj=fi to fo : o2$(jj)="*" : next jjd6325 cm=oh*60-ih*60+om-im : ch=int(cm/60) : cm=cm-ch*607330 o3$="" : for jj=1 to 56 : o3$=o3$+o2$(jj) : next jjt2340 print sbs$(da$,dw*3+1,3);" ";xd$;" |";o3$;" ";4350 if cm>=10 then print frmt$(ch,2);":";frmt$(cm,2)4360 if cm<10 then print frmt$(ch,2);":0";frmt$(cm,1)R370 print "-------------+---+---+---+---+---+---+---+---+---+---+---+---+---+---+"#375 xd$=sbs$(l$,1,8) : xx=dcen(xd$)(380 dw=xx-int(xx/7)*7>385 for jj=1 to 53 step 4fG386 o2$(jj)=" " :o2$(jj+1)=" " :o2$(jj+2)=" " : o2$(jj+3)="|" : next jjo%388 tm=tm+60*(oh-ih)+om-im : goto 395m/390 ix=val(sbs$(l$,10,2))*60+val(sbs$(l$,13,2))(<391 iy=ih*60+im : if iy56 then let fi=56"1430 fo=(oh*60+om)/15-28 : if fo>56 then let fo=56n435 if fo<1 then let fo=1 +440 for jj=fi to fo : o2$(jj)="*" : next jj27450 o3$="" : for jj=1 to 56 : o3$=o3$+o2$(jj) : next jji6455 cm=oh*60-ih*60+om-im : ch=int(cm/60) : cm=cm-ch*602460 print sbs$(da$,dw*3+1,3);" ";xd$;" |";o3$;" ";4470 if cm>=10 then print frmt$(ch,2);":";frmt$(cm,2)4480 if cm<1000劣rss then print frmt$(ch,2);":0";frmt$(cm,1)R490 print "-------------+---+---+---+---+---+---+---+---+---+---+---+---+---+---+"S500 print "day date 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21" 510 printn520 tm=tm+60*(oh-ih)+om-im$530 th=int(tm/60) : tm=int(tm-th*60)G540 print tab(55);"Total connect :";frmt$(th,4);":";frmt$(tm,2) : printm 550 closem570 exitcm-ch*602460 print sbs$(da$,dw*3+1,3);" ";xd$;" |";o3$;" ";4470 if cm>=10 then print frmt$(ch,2);":";frmt$(cm,2)4480 if cm<1010 ! loginout.bas2 ! to plot log in and out time for a given period( ! this version does a bar graph output< ! for greatest elapsed time, even if logged out during dayO100 dim l$[56],n$[50]v,d1$[9],d2$[9],o1$[9],o2$[1](56),o3$[56]v,xd$[8]v,mo$[36]110 dim da$[21],tt$[4].120 mo$="JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC"130 da$="SunMonTueWedThuFriSat"!140 sd=24*3600 ! seconds per day8145 set upper on : input "User Name ";n$ : set upper off,150 n$="SD:[1,100]"+n$+".LOG/RN/RO/SH/LN:56"160 for jj=1 to 53 step 4sG170 o2$(jj)=" " :o2$(jj+1)=" " :o2$(jj+2)=" " : o2$(jj+3)="|" : next jje<180 set upper on: input "Starting date ";d1$ : set upper offA190 df=dcen(d1$) : if df<1 then print "Invalid date, " : goto 18029195 set upper on: input "Final date ";d2$ : set upper offA200 dl=dcen(d2$) : if dl<1 then print "Invalid date, " : goto 195e 210 xd$=""+215 open #3,n$: n=nrc(3) : if n<6 then 1010 b220 print : print "Day date 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 total"R225 print "-------------+---+---+---+---+---+---+---+---+---+---+---+---+---+---+" 230 lf=0:e235 xd$="00/00/00"240 for i=6 to n250 input line #3@i,l$'255 di=dcen(sbs$(l$,1,8)) ! login dateI)260 do=dcen(sbs$(l$,20,8)) ! logout daten265 if didl then 400 271 if do=di then 275tB272 ! correct logout next day to be logout at 18:00 hours same day.273 l$=sbs$(l$,1,28)+"18:00:00"+sbs$(l$,37,20)1275 if xy=1 then 280 : check for first day of rpt1>276 xy=1 : xd$=sbs$(l$,1,8) : xx=dcen(xd$) : dw=xx-int(xx/7)*7277 for jj=1 to 53 step 4-G278 o2$(jj)=" " :o2$(jj+1)=" " :o2$(jj+2)=" " : o2$(jj+3)="|" : next jj51279 ih=val(sbs$(l$,10,2)) : im=val(sbs$(l$,13,2))l280 ld=val(sbs$(xd$,4,2))$L285 if ld=val(sbs$(l$,4,2)) then 390 : !if same day, just update logout time290 ! new day, set things up/300 fi=(ih*60+im)/15-28 : if fi<1 then let fi=1 305 if fi>56 then let fi=56)1310 fo=(oh*60+om)/15-28 : if fo>56 then let fo=56c315 if fo<1 then let fo=1+320 for jj=fi to fo : o2$(jj)="*" : next jjd6325 cm=oh*60-ih*60+om-im : ch=int(cm/60) : cm=cm-ch*607330 o3$="" : for jj=1 to 56 : o3$=o3$+o2$(jj) : next jjt2340 print sbs$(da$,dw*3+1,3);" ";xd$;" |";o3$;" ";4350 if cm>=10 then print frmt$(ch,2);":";frmt$(cm,2)4360 if cm<10 then print frmt$(ch,2);":0";frmt$(cm,1)R370 print "-------------+---+---+---+---+---+---+---+---+---+---+---+---+---+---+"#375 xd$=sbs$(l$,1,8) : xx=dcen(xd$)(380 dw=xx-int(xx/7)*7>385 for jj=1 to 53 step 4fG386 o2$(jj)=" " :o2$(jj+1)=" " :o2$(jj+2)=" " : o2$(jj+3)="|" : next jjo%388 tm=tm+60*(oh-ih)+om-im : goto 395m/390 ix=val(sbs$(l$,10,2))*60+val(sbs$(l$,13,2))(<391 iy=ih*60+im : if iy56 then let fi=56"1430 fo=(oh*60+om)/15-28 : if fo>56 then let fo=56n435 if fo<1 then let fo=1 +440 for jj=fi to fo : o2$(jj)="*" : next jj27450 o3$="" : for jj=1 to 56 : o3$=o3$+o2$(jj) : next jji6455 cm=oh*60-ih*60+om-im : ch=int(cm/60) : cm=cm-ch*602460 print sbs$(da$,dw*3+1,3);" ";xd$;" |";o3$;" ";4470 if cm>=10 then print frmt$(ch,2);":";frmt$(cm,2)4480 if cm<10 then print frmt$(ch,2);":0";frmt$(cm,1)R490 print "-------------+---+---+---+---+---+---+---+---+---+---+---+---+---+---+"S500 print "DAY date 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21" 510 printn520 tm=tm+60*(oh-ih)+om-im$530 th=int(tm/60) : tm=int(tm-th*60)00\W*G540 print tab(55);"Total connect :";frmt$(th,4);":";frmt$(tm,2) : printm 550 closem570 exitcm-ch*602460 print sbs$(da$,dw*3+1,3);" ";xd$;" |";o3$;" ";4470 if cm>=10 then print frmt$(ch,2);":";frmt$(cm,2)4480 if cm<10 then print frmt$(ch,2);":0";frmt$(cm,1)R490 print "-------------+---+---+---+---+---+---+---+---+---+---+---+---+---+---+"S500 print "DAY date 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21" 510 printn520 tm=tm+60*(oh-ih)+om-im$530 th=int(tm/60) : tm=int(tm-th*60)10 ! loginout.bas2 ! to plot log in and out time for a given period( ! this version does a bar graph output< ! for greatest elapsed time, even if logged out during dayO100 dim l$[56],n$[50]v,d1$[9],d2$[9],o1$[9],o2$[1](56),o3$[56]v,xd$[8]v,mo$[36]101 dim da$[21],tt$[4].105 mo$="JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC"106 da$="SunMonTueWedThuFriSat"!110 sd=24*3600 ! seconds per day120 open #4, "LOGIO.DOC/WR"125 set upper on130 input "User Name ";n$150 set upper off160 print #4,"User Name ";N$;t,165 n$="SD:[1,100]"+n$+".LOG/RN/RO/SH/LN:56"170 for jj=1 to 53 step 4nG171 o2$(jj)=" " :o2$(jj+1)=" " :o2$(jj+2)=" " : o2$(jj+3)="|" : next jju%175 input "Month,Year to plot ";mo,yr$?180 d1$="01-"+sbs$(mo$,3*mo-2,3)+"-"+frmt$(yr,2) : df=dcen(d1$)a2185 if df<1 then print "Invalid date, " : goto 210*190 print #4,tab(25);"Starting date ";d1$;.195 mo=mo+1 : if mo=13 then let yr=yr+1 : mo=1Q200 d2$="01-"+sbs$(mo$,3*mo-2,3)+"-"+frmt$(yr,2) : dl=dcen(d2$)-1 : d2$=ddat$(dl)&205 print #4,tab(50);"Final date ";d2$ 210 xd$=""+215 open #3,n$: n=nrc(3) : if n<6 then 1010s]220 print #4, "Day date 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 total"nV225 print #4, "-------------+---+---+---+---+---+---+---+---+---+---+---+---+---+---+" 230 lf=0:d235 xd$="00/00/00"240 for i=6 to n250 input line #3@i,l$'255 di=dcen(sbs$(l$,1,8)) ! login datef)260 do=dcen(sbs$(l$,20,8)) ! logout date-265 if didl then 400d271 if do=di then 275B272 ! correct logout next day to be logout at 18:00 hours same day.273 l$=sbs$(l$,1,28)+"18:00:00"+sbs$(l$,37,20)1275 if xy=1 then 280 : check for first day of rpt7>276 xy=1 : xd$=sbs$(l$,1,8) : xx=dcen(xd$) : dw=xx-int(xx/7)*7277 for jj=1 to 53 step 4-G278 o2$(jj)=" " :o2$(jj+1)=" " :o2$(jj+2)=" " : o2$(jj+3)="|" : next jj51279 ih=val(sbs$(l$,10,2)) : im=val(sbs$(l$,13,2))l280 ld=val(sbs$(xd$,4,2))$L285 if ld=val(sbs$(l$,4,2)) then 390 : !if same day, just update logout time290 ! new day, set things up/300 fi=(ih*60+im)/15-28 : if fi<1 then let fi=1 305 if fi>56 then let fi=56)1310 fo=(oh*60+om)/15-28 : if fo>56 then let fo=56c315 if fo<1 then let fo=1+320 for jj=fi to fo : o2$(jj)="*" : next jjd6325 cm=oh*60-ih*60+om-im : ch=int(cm/60) : cm=cm-ch*607330 o3$="" : for jj=1 to 56 : o3$=o3$+o2$(jj) : next jjt6340 print #4, sbs$(da$,dw*3+1,3);" ";xd$;" |";o3$;" ";8350 if cm>=10 then print #4, frmt$(ch,2);":";frmt$(cm,2)8360 if cm<10 then print #4, frmt$(ch,2);":0";frmt$(cm,1)U370 print #4,"-------------+---+---+---+---+---+---+---+---+---+---+---+---+---+---+"e#375 xd$=sbs$(l$,1,8) : xx=dcen(xd$) 380 dw=xx-int(xx/7)*75385 for jj=1 to 53 step 4=G386 o2$(jj)=" " :o2$(jj+1)=" " :o2$(jj+2)=" " : o2$(jj+3)="|" : next jjm%388 tm=tm+60*(oh-ih)+om-im : goto 395=/390 ix=val(sbs$(l$,10,2))*60+val(sbs$(l$,13,2))<391 iy=ih*60+im : if iy56 then let fi=56e1430 fo=(oh*60+om)/15-28 : if fo>56 then let fo=56n435 if fo<1 then let fo=1 +440 for jj=fi to fo : o2$(jj)="*" : next jj2+440 for jj=fi to fo : o2$(jj)="*" : next jjm7450 o3$="" : for jj=1 to 56 : o3$=o3$+o2$(jj) : next jj)6455 cm=oh*60-ih*60+om-im : ch=int(cm/60) : cm=cm-ch*606460 print #4, sbs$(da$,dw*3+1,3);" ";xd$;" |";o3$;" ";8470 if cm>=10 then print #4, frmt$(ch,2);":";frmt$(cm,2)8480 if cm<10 then print #4, frmt$(ch,2);":0"00劣rss;frmt$(cm,1)V490 print #4, "-------------+---+---+---+---+---+---+---+---+---+---+---+---+---+---+"W500 print #4, "day date 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21"j520 tm=tm+60*(oh-ih)+om-im$530 th=int(tm/60) : tm=int(tm-th*60)N540 print #4, tab(54);"Total connect :";frmt$(th,4);":";frmt$(tm,2) : print #4 550 closec'560 print "Output is in file LOGIO.DOC""570 exito3$;" ";8470 if cm>=10 then print #4, frmt$(ch,2);":";frmt$(cm,2)8480 if cm<10 then print #4, frmt$(ch,2);":0"10 ! loginout.bas0 ! to plot log in and out time for a given week( ! this version does a bar graph output< ! for greatest elapsed time, even if logged out during dayW100 dim l$[56],un$[9]v,n$[50]v,d1$[9],d2$[9],o1$[9],o2$[1](56),o3$[56]v,xd$[8]v,mo$[36]110 dim da$[21],tt$[4].120 mo$="JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC"130 da$="SunMonTueWedThuFriSat"!140 sd=24*3600 ! seconds per day9145 set upper on : input "User Name ";un$ : set upper off-150 n$="SD:[1,100]"+un$+".LOG/RN/RO/SH/LN:56"160 for jj=1 to 53 step 4pG170 o2$(jj)=" " :o2$(jj+1)=" " :o2$(jj+2)=" " : o2$(jj+3)="|" : next jjp<180 set upper on: input "Starting date ";d1$ : set upper offA185 df=dcen(d1$) : if df<1 then print "Invalid date, " : goto 180]I190 dw=df-int(df/7)*7 : df=df-dw :d1$=ddat$(df) : !Always start on SundayP 195 dl=df+6S-200 print chr$(27)"[H";chr$(27);"[J"; : break-205 print chr$(27)"[H";chr$(27);"[K"; : breakeG206 print "Logged in time for ";un$;" for week starting on Sunday ";d1$. 210 xd$=""+215 open #3,n$: n=nrc(3) : if n<6 then 1010([220 print " " aY222 print "Day date 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 total"gX225 print "-------------+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ "230 lf=0 : xy=0n235 xd$="00/00/00"240 for i=6 to n250 input line #3@i,l$'255 di=dcen(sbs$(l$,1,8)) ! login datee)260 do=dcen(sbs$(l$,20,8)) ! logout dateS265 if didl then 400(271 if do=di then 275B272 ! correct logout next day to be logout at 18:00 hours same day.273 l$=sbs$(l$,1,28)+"18:00:00"+sbs$(l$,37,20)1275 if xy=1 then 280 : check for first day of rpt9>276 xy=1 : xd$=sbs$(l$,1,8) : xx=dcen(xd$) : dw=xx-int(xx/7)*7277 for jj=1 to 53 step 4-G278 o2$(jj)=" " :o2$(jj+1)=" " :o2$(jj+2)=" " : o2$(jj+3)="|" : next jj51279 ih=val(sbs$(l$,10,2)) : im=val(sbs$(l$,13,2))l280 ld=val(sbs$(xd$,4,2))$L285 if ld=val(sbs$(l$,4,2)) then 390 : !if same day, just update logout time290 ! new day, set things up/300 fi=(ih*60+im)/15-28 : if fi<1 then let fi=1 305 if fi>56 then let fi=56)1310 fo=(oh*60+om)/15-28 : if fo>56 then let fo=56c315 if fo<1 then let fo=1+320 for jj=fi to fo : o2$(jj)="*" : next jjd6325 cm=oh*60-ih*60+om-im : ch=int(cm/60) : cm=cm-ch*607330 o3$="" : for jj=1 to 56 : o3$=o3$+o2$(jj) : next jjt2340 print sbs$(da$,dw*3+1,3);" ";xd$;" |";o3$;" ";4350 if cm>=10 then print frmt$(ch,2);":";frmt$(cm,2)4360 if cm<10 then print frmt$(ch,2);":0";frmt$(cm,1)X370 print "-------------+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ "#375 xd$=sbs$(l$,1,8) : xx=dcen(xd$)+380 dw=xx-int(xx/7)*7e385 for jj=1 to 53 step 4hG386 o2$(jj)=" " :o2$(jj+1)=" " :o2$(jj+2)=" " : o2$(jj+3)="|" : next jji%388 tm=tm+60*(oh-ih)+om-im : goto 3950/390 ix=val(sbs$(l$,10,2))*60+val(sbs$(l$,13,2)) <391 iy=ih*60+im : if iy56 then let fi=56"1430 fo=(oh*60+om)/15-28 : if fo>56 then let fo=56n435 if fo<1 then let fo=1 +440 for jj=fi to fo : o2$(jj)="*" : next jj27450 o3$="" : for jj=1 to 56 : o3$=o3$+o2$(jj) : next jji6455 cm=oh*60-ih*60+om-im : ch=int(cm/60) : cm=cm-ch*602460 print sbs$(da$,dw*3+1,3);" ";xd$;" |";o3$;" ";4470 if cm>=10 then print frmt$(ch,2);":";frmt$(cm,2)4480 if cm<10 then print frmt$(ch,2);":0";frmt$(cm,1)X00   \W*490 print "-------------+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ "X500 print "Day date 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 " 505 print 510 print chr$(27);"[J"; : break520 tm=tm+60*(oh-ih)+om-im$530 th=int(tm/60) : tm=int(tm-th*60)?540 print tab(55);"Total connect :";frmt$(th,4);":";frmt$(tm,2) 550 closed570 if end then 600"<580 set upper on: input "Starting date ";d1$ : set upper off2582 if d1$=" " then let df=dl+1 : goto 590A585 df=dcen(d1$) : if df<1 then print "Invalid date, " : goto 580-590 d1$=ddat$(df) : dl=df+6595 for jj=1 to 53 step 4 G596 o2$(jj)=" " :o2$(jj+1)=" " :o2$(jj+2)=" " : o2$(jj+3)="|" : next jj 597 goto 205600 exit : break520 tm=tm+60*(oh-ih)+om-im$530 th=int(tm/60) : tm=int(tm-th*60)?540 print tab(55);"Total connect :";frmt$(th,4);":";frmt$(tm,2) 550 closed570 if end then 600"<580 set upper on: input "Starting date ";d1$ : set upper off2582 if d1$=" " then let df=dl+1 : goto 590A585 dfE1 ! Program to run thru merged log files, throwing out files before aI2 ! given date Two log files have been concatenated via pip into name.fix10 dim a$[56],da$[8],na$[9]v,15 input "First date to keep (mm/dd/yy)";da$16 y=dcen(da$)'17 input "Name (only) of log file ";na$20 open #3, na$+".FIX/RO""30 open #4, na$+".OUT/WR/FX/LN:56"50 if end #3 then 200<60 for i=1 to 10 : input line #3, a$ : print #4, a$ : next i70 input line #3, a$80 x=dcen(sbs$(a$,1,8))90 if x N THEN 260 276 IF LR < 6 OR LR > N THEN 260 277 IF IR < 6 OR IR > N THEN 2600280 IF FRIR+I GOTO 320 : ! KEEP SHIFTINGT.340 PRINT #3@K,A$ : ! REPLACE RECORD WE SAVED 345 NEXT I=347 FOR K=R1 TO R2 : INPUT LINE #3@K,A$ : PRINT K,A$ : NEXT K 350 GOTO 500400 ! MOVE TO LATER IN FILE0405 FOR I=1 TO LR-FR+1(410 K=LR-I+1 : ! K=RECORD WE'RE MOVING=415 INPUT LINE #3@K,A$ : ! TEMP SAVE NTH RECORD WE'RE MOVINGE1420 INPUT LINE #3@K+1,B$ : ! GET RECORD ONE AFTER@(425 PRINT #3@K,B$ : ! MOV RECORD UP ONE!430 K=K+1 : ! INCREMENT POINTERR*435 IF K"Y" GOTO 217+515 INPUT "MOVE MORE RECORDS (Y OR N) ";AN$!517 IF AN$="Y" GOTO 22013520 CALL "SPAWNB"("PIP "+N$+".LOG/NV="+N$+".SAV",B)M*530 CALL "SPAWNB"("PIP "+N$+".SAV;*/DE",B)(540 CALL "SPAWNB"("PIP "+N$+".LOG/PU",B) 550 EXIT ONE!430 K=K+1 : ! INCREMENT POINTERR*435 IF KDE THEN 10007240 S1=SEC(SBS$(R$,10,8))/60 : S2=SEC(SBS$(R$,29,8))/60(260 IF D1=D2 THEN GOSUB 2000 : GOTO 900(280 IF D1>D2 THEN GOSUB 3000 : GOTO 900300 DD=D2-D1 : O1=S1 : O2=S2)320 S2=86399/60 : GOSUB 2000 ! FIRST DAY=340 S1=1 : IF DD=1 THEN 420G360 FOR J=1 TO DD-1380 GOSUB 2000 ! MIDDLE DAYS4 400 NEXT J#420 S2=O2 : GOSUB 2000 ! LAST DAY0 900 GOTO 200 1000 CLOSE T 1020 PRINT : 6 PRINT " MORNING HOURS ";FRMT$(T7/60,7,1) :6 PRINT " AFTERNOON HOURS ";FRMT$(TN/60,7,1) :6 PRINT " EVENING HOURS ";FRMT$(T5/60,7,1) : PRINT 1900 EXIT (2000 IF S1>S2 THEN GOSUB 3000 : RETURN 2010 DS=(S2-S1)O02020 IF S2S5 THEN T5=T5+DS : GOTO 213022030 IF S1>=S7 AND S2=SN AND S2S7 THEN 2090#2060 IF S2=SN AND S2S5 THEN T5=T5+(S7-S1) :V T7=T7+(SN-S7) : TN=TN+(S5-SN) : T5=T5+(S2-S5) : GOTO 21302090 IF S1>SN THEN 21200-2100 IF S2>SN AND S2=S5 THEN T7=T7+(SN-S1) : TN=TN+(S5-SN) : T5=T5+(S2-S5) : GOTO 21302120 TN=TN+(S5-S1) : T5=T5+(S2-S5) : GOTO 2130 2130 RETURN "3000 PRINT "LOGON AFTER LOGOUT" : PRINT R$ : RETURN SN AND S2S5 THEN T5=T5+(S7-S1) :V T7=T7+(SN-S7) : TN=TN+(S5-SN) : T10 ! LOGTOT.BAS- ! TO TOTAL LOGGED ON TIME FOR A GIVEN PERIOD$100 DIM L$[56],N$[50]V,D1$[9],D2$[9] 110 SD=24*3600 ! SECONDS PER DAY200 INPUT "USER NAME ";N$: PRINT TAB(12);N$210 N$=N$+".LOG/RN/RO/SH/LN:56"211 CS=0 : CM=0 : CH=0 : CD=0: TS=0 : TM=0 : TH=0 : TD=0: LD=0-212 INPUT "STARTING DATE ";D1$ : DF=DCEN(D1$)-214 IF DF<1 THEN PRINT "BAD DATE " : GOTO 212-216 INPUT "FINAL DATE ";D2$ : DL=DCEN(D2$)-218 IF DL<1 THEN PRINT "BAD DATE " : GOTO 216220 OPEN #3,N$: N=NRC(3): IF N<6 THEN 1010 230 LF=0: 300 FOR I=6 TO N310 INPUT LINE #3@I,L$&315 DI=DCEN(SBS$(L$,1,8)) ! LOGIN DATE(317 DO=DCEN(SBS$(L$,20,8)) ! LOGOUT DATE320 IF DODL THEN 1000 R%327 IF LD=VAL(SBS$(L$,23,2)) THEN 338C330 IF CD+CH+CM+CS=0 THEN 3380f332 PRINT TAB(50);"DAILY CONNECT ";FRMT$(CD,3);":";FRMT$(CH,2);":";FRMT$(CM,2);":";FRMT$(CS,2) : PRINT:333 TS=TS+CS : CS=0 : IF TS>59 THEN LET TS=TS-60 : TM=TM+1:334 TM=TM+CM : CM=0 : IF TM>59 THEN LET TM=TM-60 : TH=TH+1:335 TH=TH+CH : CH=0 : IF TH>23 THEN LET TH=TH-24 : TD=TD+1+336 TD=TD+CD : CD=0 : LD=VAL(SBS$(L$,23,2)),f337 PRINT TAB(50);"TOTAL CONNECT ";FRMT$(TD,3);":";FRMT$(TH,2);":";FRMT$(TM,2);":";FRMT$(TS,2) : PRINT 338 PRINT L$C339 CS=CS+VAL(SBS$(L$,49,2)) : IF CS>59 THEN LET CS=CS-60 : CM=CM+1 C340 CM=CM+VAL(SBS$(L$,46,2)) : IF CM>59 THEN LET CM=CM-60 : CH=CH+1CC341 CH=CH+VAL(SBS$(L$,43,2)) : IF CH>23 THEN LET CH=CH-60 : CD=CD+1 342 CD=CD+VAL(SBS$(L$,39,3)) 1000 NEXT IFg1005 PRINT TAB(50);"DAILY CONNECT ";FRMT$(CD,3);":";FRMT$(CH,2);":";FRMT$(CM,2);":";FRMT$(CS,2) : PRINT+;1006 TS=TS+CS : CS=0 : IF TS>59 THEN LET TS=TS-60 : TM=TM+1C;1007 TM=TM+CM : CM=0 : IF TM>59 THEN LET TM=TM-60 : TH=TH+1$;1008 TH=TH+CH : CH=0 : IF TH>23 THEN LET TH=TH-24 : TD=TD+1I,1009 TD=TD+CD : CD=0 : LD=VAL(SBS$(L$,23,2))g1010 PRINT TAB(50);"TOTAL CONNECT ";FRMT$(TD,3);":";FRMT$(TH,2);":";FRMT$(TM,2);":";FRMT$(TS,2) : PRINTN 1020 CLOSE 3 1030 GOTO 200 CD=CD+VAL(SBS$(L$,39,3)) 1000 NEXT IFg1005 PRINT TAB(50);"DAILY CONNECT ";FRMT00  \W*1 ! LOGTTYM.BAS [1,100]2 ! ! RUN UNDER BA5100 !$ ! VARIABLE DEFINITIONS, DIMENSIONS ! 3110 DIM R$[60]V ! RECORD STRING FOR TERMINAL FILES<111 DIM L$[60]V ! INPUT VARIABLE FOR USER DESCRIPTION FILES'115 DIM FF$[50]V ! FOR MASTER FILE NAME&120 DIM AN$[60]V ! ACCOUNT NAME (DEPT)0125 DIM NF$[4]V(30) ! USER DESCRIPTION FILE NAME:150 DIM M$[3](12),M&(12) ! MONTH NAMES, # OF DAYS IN MONTH$170 DIM H(31),HT(30) ! HOURS PER DAY430 M$(1)="JAN" : M&(1)=31 : M$(2)="FEB" : M&(2)=29 : M$(3)="MAR" : M&(3)=31 :0 M$(4)="APR" : M&(4)=30 : M$(5)="MAY" : M&(5)=31 :N M$(6)="JUN" : M&(6)=30 :1 M$(7)="JUL" : M&(7)=31 :I M$(8)="AUG" : M&(8)=31 :  M$(9)="SEP" : M&(9)=30 :L M$(10)="OCT" : M&(10)=31 : M$(11)="NOV" : M&(11)=30 : : M$(12)="DEC" : M&(12)=31 ! NAMES OF MONTHS, DAYS IN MONTH"500 OPEN #3,"FOR002.DAT/RO/EN:900"510 INPUT LINE #3,R$600 ! ASK USER FOR MONTHF'610 INPUT "MONTH OF CONCERN (MMYY) "; MUG620 M&=INT(M/100) : IF M&<1 OR M&>12 THEN PRINT "BAD MONTH" : GOTO 610(630 Y&=M-(M&*100) ! YEAR@635 IF 4*INT(Y&/4)<>Y& THEN M&(2)=28 ! CORRECT FOR NON LEAP YEAR640 IF M&>6 THEN FY&=Y&+1* ELSE FY&=Y& ! FISCAL YEAR IS JULY-JUNE;650 D1=DCEN(STR$(M&)+"/01/"+STR$(Y&)) ! FIRST DAY OF MONTH(( D2=D1 + M&(M&)-1 ! LAST DAY OF MONTH%680 INPUT "FILE NAME FOR OUTPUT",FF$:N OPEN #5,FF$+"/WR/LN:84"+700 INPUT "FILE NAME FOR USERS ",FF$: UR=0:K$ OPEN #6,FF$+"/RO/SH/EN:900" : PRINT+710 INPUT LINE #6,AN$ : PRINT AN$ : UR=UR+1M/720 NF$(UR)=PIECE$(AN$,",",1): NF=VAL(NF$(UR)): AN$=PIECE$(AN$,",",2,60)3#740 FOR J=0 TO 31 : H(J)=0 : NEXT JC"820 GOSUB 1220 ! GET TERMINAL TIME840 GOSUB 2000 ! PLOTS850 HT(UR)=H(0)L 890 GOTO 710900 GOSUB 3000 910 CLOSE" 920 PRINTY930 EXIT1200 !  ! CONNECT TIME !-1210 INPUT LINE #3,R$H1220 NR=VAL(LEFT(R$,3))R1230 IF NRNF THEN 1299 )1250 DR&=VAL(SBS$(R$,8,2)) ! DAY OF MONTH6 O1=VAL(SBS$(R$,14,8))/360 :% H(DR&)=H(DR&)+O1 ! ADD TERMINAL TIMEU1280 GOTO 1200 1299 RETURN"2000 != ! PRINT PLOT FOR EACH PROJECT, ! 2200 !O ! PRINT HEADINGS ! 2210 PRINT #5,CHR$(12)TD2220 PRINT #5,TAB(24);"MICHAEL REESE HOSPITAL AND MEDICAL CENTER" :@ PRINT #5,TAB(24);" DEPARTMENT OF MEDICAL PHYSICS " : PRINT #5 : PRINT #50G2230 PRINT #5," BIOMEDICAL COMPUTATION DIVISION";TAB(74);DDAT$(0) :2 PRINT #5 : PRINT #5B2240 PRINT #5," PLOT FOR ";M$(M&);", 19";STR$(Y&);" -- ";AN$ :* PRINT #5,TAB(5);STRING$("-",22+LEN(AN$))2250 PRINT #5 : PRINT #5R2260 PRINT #5,TAB(14);"HOURS"2270 PRINT #52300 !0 ! PRINT HOURSE ! 42310 FOR J=1 TO M&(M&) ! FOR EACH DAY OF THE MONTH 2315 PRINT #5,TAB(5);M$(M&);J;2320 PRINT #5,TAB(13);$2325 PRINT #5,FRMT$(H(J),6,1);" !";+2330 KK=INT(10*H(J)) : IF KK>60 THEN KK=6002335 FOR K=1 TO KKD2340 PRINT #5,"*";2345 NEXT K : PRINT #5-2360 H(0)=H(0)+H(J) ! TOTAL # OF TERMINAL HRST 2399 NEXT J2400 !R ! PRINT TOTAL HOURSR ! 2410 PRINT #5*2420 PRINT #5,TAB(5);"TOTAL:"; TAB(11); :, PRINT #5,FRMT$(H(0),8,1); ! TERMINAL TIME12430 PRINT #5," HOURS";TAB(55);"(* = 1/10 HOUR)" 2440 RETURNF3000 !A- ! PRINT PLOT FOR ALL PROJECTS FOR THE MONTH; ! OPEN #7,"TTYTOTS.DAT/LN:100/AP"3200 !H ! PRINT HEADINGS ! 3210 PRINT #5,CHR$(12)ED3220 PRINT #5,TAB(24);"MICHAEL REESE HOSPITAL AND MEDICAL CENTER" :@ PRINT #5,TAB(24);" DEPARTMENT OF MEDICAL PHYSICS " : PRINT #5 : PRINT #5NG3230 PRINT #5," BIOMEDICAL COMPUTATION DIVISION";TAB(74);DDAT$(0) :( PRINT #5 : PRINT #5TK3240 PRINT #5," PLOT FOR ";M$(M&);", 19";STR$(Y&);" -- ALL TERMINALS" :)- PRINT #7 : PRINT #7,M$(M&);" 19";STR$(Y&) :A! PRINT #5,TAB(5);STRING$("-",35)O3250 PRINT #5 : PRINT #5A3260 PRINT #5,TAB(14);"HOURS"3270 PRINT #53300 !R ! PRINT HOURSN ! (3310 FOR J=1 TO UR ! FOR EACH TERMINAL#3315 PRINT #5,TAB(5);"TT";NF$(J); 3320 PRINT #5,TAB(11);%3325 PRINT #5,FRMT$(HT(J),8,1);" !";2+3330 KK=INT(2*HT(J)) : IF KK>60 THEN KK=60S3335 FOR K=1 TO KK 3340 PRINT #5,"*";3345 00!"劣rssNEXT K : PRINT #5 23350 PRINT #7,"TT";NF$(J);" ";FRMT$(HT(J),8,1)03360 HT(0)=HT(0)+HT(J) ! TOTAL # OF TERMINAL HRS 3399 NEXT J3400 !T ! PRINT TOTAL HOURSR ! 3410 PRINT #5*3420 PRINT #5,TAB(5);"TOTAL:"; TAB(11); :- PRINT #5,FRMT$(HT(0),8,1); ! TERMINAL TIME=03430 PRINT #5," HOURS";TAB(55);"(* = 1/2 HOUR)")3440 PRINT #7,"TOTAL ";FRMT$(HT(0),8,1) 3450 RETURN5,FRMT$(HT(J),8,1);" !";2+3330 KK=INT(2*HT(J)) : IF KK>60 THEN KK=60S3335 FOR K=1 TO KK 3340 PRINT #5,"*";3345 1 ! LOGTTYY.BAS [1,100]2 !  ! RUN UNDER BA5100 ! $ ! VARIABLE DEFINITIONS, DIMENSIONS ! 4110 DIM R$[60]V ! RECORD STRING FOR TERMINAL FILES=111 DIM L$[60]V ! INPUT VARIABLE FOR USER DESCRIPTION FILES(115 DIM FF$[50]V ! FOR MASTER FILE NAME'120 DIM AN$[60]V ! ACCOUNT NAME (DEPT)1125 DIM NF$[4]V(45) ! USER DESCRIPTION FILE NAME150 DIM M$[3](12) ! MONTH NAMES2170 DIM VA(45,12),HT(45) ! HOURS PER MONTH, TOTALS400 FL=0 : MM=6%410 FOR I=1 TO 45 : HT(I)=-1 : NEXT I430 M$(1)="JAN" :Y M$(2)="FEB" : M$(3)="MAR" : M$(4)="APR" : M$(5)="MAY" : M$(6)="JUN" : M$(7)="JUL" : M$(8)="AUG" : M$(9)="SEP" : M$(10)="OCT" :L M$(11)="NOV" :]$ M$(12)="DEC" : ! NAMES OF MONTHS600 ! ASK USER FOR MONTHV,610 INPUT "FISCAL YEAR OF CONCERN (YY) "; Y&4650 D1=DCEN("07/01/"+STR$(Y&-1)) ! FIRST DAY OF FY- D2=DCEN("6/30/"+STR$(Y&)) ! LAST DAY OF FYA%680 INPUT "FILE NAME FOR OUTPUT",FF$:P OPEN #5,FF$+"/WR/LN:84":%690 INPUT "FILE NAME FOR USERS ",FF$:N& OPEN #6,FF$+"/RO/SH/EN:900" : PRINT 700 GOSUB 1200!710 INPUT LINE #6,AN$ : PRINT AN$720 UR=VAL(SBS$(AN$,1,2)): NF$(UR)=PIECE$(AN$,",",1):E AN$=PIECE$(AN$,",",2,60)(840 GOSUB 2000 ! PLOT850 HT(UR)=VA(UR,0)O 860 FL=FL+1A)870 IF FL=2 THEN FL=0 : PRINT #5,CHR$(12)O 890 GOTO 710900 GOSUB 3000 910 CLOSE 920 PRINT 930 EXIT D1200 !  ! CONNECT TIME ! %1210 OPEN #3,"TTYTOTS.DAT/RO/EN:1290" 1220 INPUT LINE #3,R$1230 IF LEN(R$)=0 THEN 122041240 IF LEN(R$)=8 THEN MM=MM+1 : IF MM=13 THEN MM=11250 INPUT LINE #3,R$#1260 IF LEFT(R$,3)="TOT" THEN 1220 1270 TT=VAL(SBS$(R$,3,2))(/1280 VA(TT,MM)=VAL(SBS$(R$,12,5)) : GOTO 1250E 1290 CLOSE 3 1299 RETURN 2000 !  ! PRINT PLOT FOR EACH PROJECTL ! 2200 !  ! PRINT HEADINGS ! 2210 PRINT #5D2220 PRINT #5,TAB(24);"MICHAEL REESE HOSPITAL AND MEDICAL CENTER" :@ PRINT #5,TAB(24);" DEPARTMENT OF MEDICAL PHYSICS " : PRINT #5 : PRINT #52G2230 PRINT #5," BIOMEDICAL COMPUTATION DIVISION";TAB(74);DDAT$(0) :E PRINT #5 : PRINT #5EB2240 PRINT #5," PLOT FOR FISCAL YEAR 19";STR$(Y&);" -- ";AN$ :* PRINT #5,TAB(5);STRING$("-",29+LEN(AN$))2250 PRINT #5 : PRINT #52260 PRINT #5,TAB(14);"HOURS"2270 PRINT #52300 !  ! PRINT HOURS  ! 2310 FOR J=7 TO 12 : # PRINT #5,TAB(5);M$(J);TAB(13); :H& PRINT #5,FRMT$(VA(UR,J),6,1);" !";/2320 KK=INT(2*VA(UR,J)) : IF KK>60 THEN KK=60 92330 FOR K=1 TO KK : PRINT #5,"*"; : NEXT K : PRINT #5 "2340 VA(UR,0)=VA(UR,0)+VA(UR,J) : NEXT J2350 FOR J=1 TO 6 :# PRINT #5,TAB(5);M$(J);TAB(13); :F& PRINT #5,FRMT$(VA(UR,J),6,1);" !";/2360 KK=INT(2*VA(UR,J)) : IF KK>60 THEN KK=60092370 FOR K=1 TO KK : PRINT #5,"*"; : NEXT K : PRINT #50"2380 VA(UR,0)=VA(UR,0)+VA(UR,J) : NEXT J2400 !  ! PRINT TOTAL HOURS# ! 2410 PRINT #5*2420 PRINT #5,TAB(5);"TOTAL:"; TAB(11); :1 PRINT #5,FRMT$(VA(UR,0),8,1); ! TERMINAL TIME12430 PRINT #5," HOURS";TAB(55);"(* = 1/2 HOUR)"I/2440 PRINT #5 : PRINT #5 : PRINT #5 : PRINT #5T 2490 RETURN =3000 ! - ! PRINT PLOT FOR ALL PROJECTS FOR THE MONTH  ! 3200 !  ! PRINT HEADINGS ! 3210 PRINT #5,CHR$(12)TD3220 PRINT #5,TAB(24);"MICHAEL REESE HOSPITAL AND MEDICAL CENTER" :@ PRINT #5,TAB(24);" DEPARTMENT OF MEDICAL PHYSICS " : PRINT #5 : PRINT #54G3230 PRINT #5," BIOMEDICAL COMPUTATION DIVISION";TAB(74);DDAT$(0) :T PRINT #5 : PRINT #5MK3240 PRINT #5," PLOT FOR FISCAL YEAR 19";STR$(Y&);" -- ALL TERMINALS" :5! PRINT #5,TAB(5);STRING$("-",42)3250 PR00)+ \W*INT #5 : PRINT #5 3260 PRINT #5,TAB(14);"HOURS"3270 PRINT #53300 !  ! PRINT HOURSD ! )3310 FOR J=1 TO 45 ! FOR EACH TERMINAL  IF HT(J)=-1 THEN 3399 #3315 PRINT #5,TAB(5);"TT";NF$(J);N3320 PRINT #5,TAB(11);&3325 PRINT #5,FRMT$(HT(J),8,1);" !";+3330 KK=INT(HT(J)/3) : IF KK>60 THEN KK=60C3335 FOR K=1 TO KK3340 PRINT #5,"*";3345 NEXT K : PRINT #513360 HT(0)=HT(0)+HT(J) ! TOTAL # OF TERMINAL HRS; 3399 NEXT J3400 !  ! PRINT TOTAL HOURSG ! 3410 PRINT #5*3420 PRINT #5,TAB(5);"TOTAL:"; TAB(11); :. PRINT #5,FRMT$(HT(0),8,1); ! TERMINAL TIME03430 PRINT #5," HOURS";TAB(55);"(* = 3 HOURS)" 3440 RETURN THEN 3399 #3315 PRINT #5,TAB(5);"TT";NF$(J);N3320 PRINT #5,TAB(11);&3325 PRINT #5,FRMT$(HT(J),8,1);" !";+3330 KK=INT(HT(J)/3) : IF KK>60 THEN KK=60C3335 FOR K=1 TO KK3340 PRINT #5,"*";3345 NEXT K : PRINT #513360 HT(0)=HT(0)+HT(J) ! TOTAL # OF TERMINAL HRS; 3399 NEXT J3400 !  ! PRINT TOTAL HOURSG ! 3410 PRINT 10 ! Logtot.bas3 ! to total logged on time for a GIVEN FISCAL YEAR( ! this version does a bar graph output ! for one terminal onlyO100 dim l$[56],n$[50]v,d1$[8],d2$[8],o1$[9],o2$[1](56),o3$[56]v,xd$[8]v,mo$[36]101 dim da$[21],tt$[4].105 mo$="JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC"106 da$="SUNMONTUEWEDTHUFRISAT"!110 sd=24*3600 ! seconds per day120 OPEN #4, "LOGYEAR.DOC/WR"125 set upper on130 input "User Name ";n$ 140 input "Terminal (TTnn) ";tt$150 set upper offV200 print #4," User Name ";n$X201 print #4, " Terminal ";tt$205 n$=n$+".log/rn/ro/sh/ln:56")208 cs=0 : cm=0 : ch=0 : cd=0: ts=0 : tm=0 : th=0 : td=0: ld=0*209 for jj=1 to 56 : o2$(jj)=" " : next jj#210 input "Fiscal Year to plot ";YR0;212 IF yr<78 or yr >89 then print "invalid year" : goto 210 -213 d1$="07/01/"+frmt$(yr-1,2) : df=dcen(d1$) +214 d2$="06/30/"+frmt$(yr,2) : dl=dcen(d2$)0W215 print #4," Starting Date ";d1$ W216 print #4," Final Date ";d2$ 217 xd$=""220 open #3,n$: n=nrc(3): if n<6 then 1010j225 print #4 : print #4, "DAY DATE 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 TOTAL"V226 print #4, "--- -------- ! ! ! ! ! ! ! ! ! ! ! ! ! ! !" 230 lf=0:)235 xd$="00/00/00"240 for i=6 to n250 input line #3@i,l$'255 di=dcen(sbs$(l$,1,8)) ! login date )258 do=dcen(sbs$(l$,20,8)) ! logout date;"260 if tt$<>sbs$(l$,52,4) then 500262 if didl then 500D280 ld=val(sbs$(xd$,4,2)) $282 if ld=val(sbs$(l$,4,2)) then 320285 if cd+ch+cm+cs=0 then 320,287 ! new day, set things up#288 xd$=sbs$(l$,1,8) : xx=dcen(xd$)1289 dw=xx-int(xx/7)*7n7290 o3$="" : for jj=1 to 56 : o3$=o3$+o2$(jj) : next jj 5291 print #4, sbs$(da$,dw*3+1,3);" ";xd$;" ";o3$;" ";4H292 if cm>=10 then print #4, frmt$(cd,3);":";frmt$(ch,2);":";frmt$(cm,2)H293 if cm<10 then print #4, frmt$(cd,3);":";frmt$(ch,2);":0";frmt$(cm,1)U294 print #4," ! ! ! ! ! ! ! ! ! ! ! ! ! ! !" *296 for jj=1 to 56 : o2$(jj)=" " : next jj;297 ts=ts+cs : cs=0 : if ts>59 then let ts=ts-60 : tm=tm+1 ;300 tm=tm+cm : cm=0 : if tm>59 then let tm=tm-60 : th=th+1 ;305 th=th+ch : ch=0 : if th>23 then let th=th-24 : td=td+1n+310 td=td+cd : cd=0 : ld=val(sbs$(l$,23,2))49320 cp=val(sbs$(l$,10,2))*4+int(val(sbs$(l$,13,2))/15)-23"6321 ct=val(sbs$(l$,43,2))*4+int(val(sbs$(l$,46,2))/15);322 if cp<1 then let cp=1 : else if cp>56 then let cp=56!"323 if cp+ct>56 then let ct=56-cp.324 for jj=cp to cp+ct : o2$(jj)="*" : next jjD325 cs=cs+val(sbs$(l$,49,2)) : if cs>59 then let cs=cs-60 : cm=cm+1D330 cm=cm+val(sbs$(l$,46,2)) : if cm>59 then let cm=cm-60 : ch=ch+1D335 ch=ch+val(sbs$(l$,43,2)) : if ch>23 then let ch=ch-60 : cd=cd+1340 cd=cd+val(sbs$(l$,39,3)) 500 next i7510 o3$="" : for jj=1 to 56 : o3$=o3$+o2$(jj00157rss) : next jj"520 xx=dcen(xd$)530 dw=xx-int(xx/7)*7$5540 print #4, sbs$(da$,dw*3+1,3);" ";xd$;" ";o3$;" ";pF550 if cm>9 then print #4, frmt$(cd,3);":";frmt$(ch,2);":";frmt$(cm,2)H552 if cm<=9 then print #4, frmt$(cd,3);":";frmt$(ch,2);":0";frmt$(cm,1)*560 for jj=1 to 56 : o2$(jj)=" " : next jj;570 ts=ts+cs : cs=0 : if ts>59 then let ts=ts-60 : tm=tm+1h;580 tm=tm+cm : cm=0 : if tm>59 then let tm=tm-60 : th=th+11;590 th=th+ch : ch=0 : if th>23 then let th=th-24 : td=td+1j+600 td=td+cd : cd=0 : ld=val(sbs$(l$,23,2))xV605 print #4, "--- -------- ! ! ! ! ! ! ! ! ! ! ! ! ! ! !"W607 print #4, "DAY DATE 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20"t608 th=th+td*24t 610 print #4N620 print #4, tab(58);"Total Connect :";frmt$(th,4);":";frmt$(tm,2) : print #4 630 close )635 print "Output is in file LOGYEAR.DOC"8640 exit : cm=0 : if tm>59 then let tm=tm-60 : th=th+11;590 th=th+ch : ch=0 : if th>23 then let th=th-24 : td=td+1j+600 td=td+cd : cd=0 : ld10 ! program looklog.bas11 ! to look at looged on users320 def fnt1$(x)=string$("0",2-len(str$(x)))+str$(x)-30 dim mo$[36],a$[80]v,dl$[9]v,dd$[9]v,tm$[8]-40 mo$="JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC"50 dim #3,d%(255),r%(39,9)60 dim #4,up%(143,31)(70 open #3,"LB:[1,1]HELBYE.TSK/BL/RO/SH"*80 open #4,"SD:[1,100]PDSUPF.DAT/BL/RO/SH"83 tm$=tim$(0)484 dd$=ddat$(0) : if len(dd$)=8 then let dd$=" "+dd$$85 print tab(24);dd$;" ";tm$ : print686 print "Term User Logged on Connect"787 print "---- ----------- --------- -------- --------"r90 for n=1 to 35100 if r%(n,0)=0 then 130)110 print "TT";oct$(n);tab(6);120 gosub 1000 130 next n 140 exit F1000 for j=0 to 3G1010 a$=r5a$(up%(r%(n,8)-1,j))1020 print a$; 1030 next j,>1040 dl$=frmt$(r%(n,2),2) : if len(dl$)=1 then let dl$="0"+dl$A1045 dl$=dl$+"-"+sbs$(mo$,(r%(n,1)-1)*3+1,3)+"-"+frmt$(r%(n,0),2)n1050 print dl$;" ";"M1060 for j=3 to 5 : print fnt1$(r%(n,j)); : if j<>5 then print ":"; : next j 1070 da=dcen(dd$)-dcen(dl$)t"1075 hr=val(sbs$(tm$,1,2))-r%(n,3)"1080 mi=val(sbs$(tm$,4,2))-r%(n,4)"1085 se=val(sbs$(tm$,7,2))-r%(n,5)1090 if se>0 then 10951091 se=se+60 : mi=mi-141095 if mi>0 then 11001096 mi=mi+60 : hr=hr-1(1100 hr=hr+da*2461110 print frmt$(hr,4);":";frmt$(mi,2);":";frmt$(se,2) 1120 return let dl$="0"+dl$A1045 dl$=dl$+"-"+sbs$(mo$,(r%(n,1)-1)*3+1,3)+"-"+frmt$(r%(n,0),2)n1050 print dl$;" ";"M1060 for j=3 to 5 : print fnt1$(r%(n,j)); : if j<>5 then print ":"; : next j 1070 da=dcen(dd$)-M1 ! NEWBILL.BAS [1,100] - PROGRAM TO PRODUCE BILLS FOR BIOMEDICAL COMPUTATION- ! BILLS PRODUCED ARE FOR SPECIFIED PROJECTS:H ! CHARGES ARE GENERATED AND LISTED ON DAILY BASIS FOR A SPECIFIED MONTH8 ! CHARGES ARE FOR PROGRAMMER, CONNECT, AND STORAGE TIME ! ! RUNS UNDER BA550 ! ! FUNCTION DEFINITIONS ! 50 DEF FNRM(A,B)=A-INT(A/B)*B&60 DEF FNSU(PJ,DA,PG)=(PJ*32+DA)*11+PG`80 DEF FNV(S0$)=VAL(SBS$(S0$,1,3)+SBS$(S0$,5,2)+SBS$(S0$,8,2)+SBS$(S0$,11,2)) : ! LOG TIME W/O :j90 DEF FNF$(X)=FRMT$(X,10,2) : ! FORMAT # TO 2 DIGITS TO RT OF ., SIG. DIGS. ONLY, & RJS IT IN FIELD OF 10100 !$ ! VARIABLE DEFINITIONS, DIMENSIONS ! J110 DIM R$[60]V ! RECORD STRING FOR LOGFILES, CONNECT FILES, STORAGE FILES<111 DIM L$[60]V ! INPUT VARIABLE FOR USER DESCRIPTION FILES'115 DIM FF$[50]V ! FOR MASTER FILE NAME &120 DIM AN$[60]V ! ACCOUNT NAME (DEPT)-125 DIM NF$[9]V ! USER DESCRIPTION FILE NAMES@130 DIM UN$[9]V, UN& ! USER NAME(S), # OF USER NAMES FOR ACCOUNT4135 DIM ST$[9]V ! NAME OF STORAGE FILE FOR EACH USER>140 DIM DP$[4]V ! MASK FOR MATCHING ACCOUNT TO LOG FILE CODING:150 DIM M$[3](12),M&(12) ! MONTH NAMES, # OF DAYS IN MONTHb170 DIM H(31,4) ! HOURS PER DAY FOR 6 USERS, 3 CATEGORIES EACH (PGMR, CONNTECT, STORAGE, ADJ PGMR))180 DIM C&(3) ! CHARGES FOR EACH CATEGORY 5185 DIM E(4) ! CONVERSION FACTORS FOR TIME INTO HOURS!#190 DIM PF(10) ! PROGRAMMER FACTORS 195 DIM S$[16]V ! DUMMY STRING199 DIM #16,PR%(21742)>200 P1=2 : P2=6 ! LOWER, UPPER BOUNDS ON PROGRAMMER SUBSCRIPTS210 OVERLA00:+ \W*Y "PROJNUM/RT"300 ! ! USERS ACCOUNTS INFOM !N1 ! EACH DATA STMT DESCRIBES THE USER AS FOLLOWS1 ! NAME OF DEPT (OR OF USER)N ! NAME OF BLOCK STORAGE FILE5 ! MASK DESCRIBING ITS CODE IN PROGRAMMER LOG FILEG& ! # OF ACCTS (USER NAMES) USER HAS) ! LIST OF ACCTS (USER NAMES) FOR USER  ! "310 ! PROGRAMMER SENIORITY FACTORS ! PROGRAMMER NUMBERS AS FOLLOWS ! 1 = UNUSED ! 2 = BONNIE ! 3 = DEANA ! 4 = LARRY ! 5 = BEVERLY ! 6 = DAN320 DATA 1,.7,1.5,.7,1(330 FOR I=P1 TO P2 : READ PF(I) : NEXT I430 M$(1)="JAN" : M&(1)=31 : M$(2)="FEB" : M&(2)=29 :  M$(3)="MAR" : M&(3)=31 :E M$(4)="APR" : M&(4)=30 :  M$(5)="MAY" : M&(5)=31 :E M$(6)="JUN" : M&(6)=30 :  M$(7)="JUL" : M&(7)=31 :G M$(8)="AUG" : M&(8)=31 :M M$(9)="SEP" : M&(9)=30 :  M$(10)="OCT" : M&(10)=31 : M$(11)="NOV" : M&(11)=30 :I: M$(12)="DEC" : M&(12)=31 ! NAMES OF MONTHS, DAYS IN MONTH-440 C&=3 : ! # OF CATEGORIES OF CHARGES :!0 C&(1)=24.50 : ! $24.50/HR PROGRAMMER TIME :& C&(2)=6 : ! $ 6/HR CONNECT TIME :, C&(3)=5 : ! $ 5/100 BLOCK-MONTH STORAGE-450 ! E MAY BE USED AS WORK VARIABLE :)- E(1)=1/3600 : ! CONVERT SECONDS TO HOURS :E- E(2)=1/60 : ! CONVERT MINUTES TO HOURS :(* E(3)=1 : ! CONVERT HOURS TO HOURS :( E(4)=24 : ! CONVERT DAYS TO HOURS@460 BC=((C&(3)/100)*12)/365 ! DAILY BLOCK CHARGE (1 BLOCK-DAY) :, S$=FRMT$(BC,8,6) ! MAKE CHARGE $ X.XXXXXX : BC=VAL(S$)E.600 ! ASK USER FOR MONTH OF BILLING STATEMENT'610 INPUT "MONTH OF BILLING (MMYY) "; M$G620 M&=INT(M/100) : IF M&<1 OR M&>12 THEN PRINT "BAD MONTH" : GOTO 610! 630 Y&=M-(M&*100) ! YEAR OF BILL@635 IF 4*INT(Y&/4)<>Y& THEN M&(2)=28 ! CORRECT FOR NON LEAP YEAR640 IF M&>6 THEN FY&=Y&+1* ELSE FY&=Y& ! FISCAL YEAR IS JULY-JUNE;650 D1=DCEN(STR$(M&)+"/01/"+STR$(Y&)) ! FIRST DAY OF MONTHC( D2=D1 + M&(M&)-1 ! LAST DAY OF MONTH.670 ! OPEN #16,M$(M&)+STR$(Y&)+".VPG/BL/RO/SH"%680 INPUT "FILE NAME FOR OUTPUT",FF$:E OPEN #5,FF$+"/WR/LN:84"%700 INPUT "FILE NAME FOR USERS ",FF$:Y IF TRM$(FF$)="" THEN1 FF$="USERS.NAM/RO/SH/EN:900" ELSE FF$=FF$+"/RO/SH/EN:900" 705 OPEN #6,FF$ : PRINTI!710 INPUT LINE #6,AN$ : PRINT AN$2720 NF$=PIECE$(AN$,",",1): AN$=PIECE$(AN$,",",2,60)=6740 FOR J=0 TO 31 : FOR K=0 TO 4 : H(J,K)=0 : NEXT K,J"750 OPEN #7,"PRF.PRF/RO/SH/EN:850"753 INPUT LINE #7,L$%755 IF SBS$(L$,3)=NF$+".PRF" THEN 770 757 GOTO 753760 INPUT LINE #7,L$770 IF LEFT(L$,1)=";" THEN 760 ELSE IF LEFT(L$,1)="*" THEN 800 780 DP$=L$$790 GOSUB 1000 ! GET PROGRAMMER TIME GOTO 760F800 INPUT LINE #7,L$810 IF LEFT(L$,1)=";" THEN 800 ELSE IF LEFT(L$,1)="*" THEN 830 820 UN$=L$:I GOSUB 1200 ! GET CONNECT TIME GOTO 800F830 INPUT LINE #7,L$:A IF LEFT(L$,1)=";" THEN 830 ELSE IF LEFT(L$,1)="*" THEN 850840 ST$=L$ : K&=M&(M&)+1:# GOSUB 1300 ! GET BLOCK STORAGEU GOTO 830$3 ! IF MISSING STORAGE INFO, USE PREVIOUS DAY'S INFO3850 FOR L=2 TO M&(M&)$860 IF H(L,3)=0 THEN H(L,3)=H(L-1,3) 870 NEXT L880 CLOSE 7 : GOSUB 2000 890 GOTO 710 900 CLOSEO 910 PRINTE920 EXIT/1000 ! SUBROUTINE TO ACCUMULATE PROGRAMMER TIMEH. ! FOR ONE USER FROM ACCUMULATED VIRTUAL ARRAY ! ON ENTRY:3 ! MMMYY.VPG OPEN ON LUN 16 WHERE YY IS FISCAL YEAR# ! AND MMM IS 3 CHAR MONTH NAME5 ! PR% IS VIRTUAL ARRAY OF PROGRAMMER TIME AS DEFINED& ! IN PROGMON.BAS ! DP$ HAS MASK FOR THIS USER3 ! M& IS MONTH BEING BILLED FORS RETURNS21010 GOSUB 8000 ! GET PROJECT NUMBER DP% FROM DP$1020 FOR NI=1 TO M&(M&)71030 FOR K=P1 TO P2 -1040 H(NI,1)=H(NI,1)+PR%(FNSU(DP%,NI,K))/100:N. H(NI,4)=H(NI,4)+PR%(FNSU(DP%,NI,K))*PF(K)/1001050 NEXT K,NI 1090 RETURNE1200 !C ! CONNECT TIME !@1215 L&=2 ! THE 2ND OF EACH USER'S 3 CATEGORIES IS CONNECT TIMEB1230 OPEN #3, UN$+".LOG/LN:56/RN/RO/SH" ! OPEN CONNECT TIME FILE:1240 FOR K=NRC(3) TO 6 STEP -1 ! 1ST 6 RECS ARE HEADINGS11250 INPUT LINE #3@K, R$ ! CONNECT TIME RECORDR.1260 D=DCEN(SBS$(R$,20,8)) ! DATE LOGGED OFFQ1270 IF DD2=4 THEN 1390 ! DIDN'T GET TO RIGHT DATE SECTION YET*1370 DR&=VAL(SBS$(R$,1,2)) ! DAY OF MONTHr1374 IF DR&>=1 THEN H(DR&,L&)=H(DR&,L&)+VAL(SBS$(R$,27,8)) ! # OF BLOCKS FOR THAT DAY (ONLY 1 REC OF BLKS PER DAY) 1390 NEXT K$1399 CLOSE 3 : RETURN!2000 !R ! PRINT BILL FOR EACH PROJECT( ! 2205 PRINT #5, CHR$(12)F2210 PRINT #5, TAB(24); "MICHAEL REESE HOSPITAL AND MEDICAL CENTER" :B PRINT #5, TAB(24); " DEPARTMENT OF MEDICAL PHYSICS " : PRINT #5 : PRINT #5I2220 PRINT #5, " BIOMEDICAL COMPUTATION DIVISION";TAB(74); DDAT$(0) :3 PRINT #5 : PRINT #5)D2230 PRINT #5, " BILL FOR ";M$(M&);", 19"; STR$(Y&);" -- ";AN$ :+ PRINT #5, TAB(5);STRING$("-",22+LEN(AN$)) 2240 PRINT #5 : PRINT #5X02250 PRINT #5, TAB(29); "HOURS";TAB(48);"HOURS"^2260 PRINT #5, TAB(23); "PROGRAMMER TIME"; TAB(44); "CONNECT TIME"; TAB(64); "STORAGE BLOCKS"2270 PRINT #52300 ! ! PRINT HOURS ! ;42310 FOR J=1 TO M&(M&) ! FOR EACH DAY OF THE MONTH!2315 PRINT #5, TAB(5);M$(M&);J; 2320 PRINT #5, TAB(20); :IN IF H(J,4)<>0 THEN PRINT #5, FRMT$(H(J,4),6,2); ! PROGRAMMING TIME ADJUSTEDK PRINT #5,TAB(30);"(";FRMT$(H(J,1),6,2);")"; !PROGRAMMING TIME UNADJUSTEDE2330 PRINT #5, TAB(44); :I= IF H(J,2)<>0 THEN PRINT #5, FNF$(H(J,2)); ! CONNECT TIME 2340 PRINT #5, TAB(64); :RG IF H(J,3)<>0 THEN PRINT #5, RJS$(STR$(H(J,3)),10) ! STORAGE BLOCKS5 ELSE PRINT #552360 H(0,1)=H(0,1)+H(J,1) ! TOTAL # OF PROGRAMMER HRS : H(0,4)=H(0,4)+H(J,4) ! TOTAL # OF ADJUSTED PROGRAMMER HRS62370 H(0,2)=H(0,2)+H(J,2) : ! TOTAL # OF CONNECT HRS2380 IF H(J,3)>0O6 THEN H(0,3)=H(0,3) + (INT(H(J,3)/100)+1)*100 * BC :/ ! KEEP RUNNING TOTAL OF DAILY BLOCK CHARGES :0? ! BLOCKS ARE CHARGES IN UNITS OF 100, SO ROUND UP TO NEXT 100J 2399 NEXT J2400 !0 ! FIGURE CHARGES FOR ENTIRE MONTH; PRINT THEM ! T2410 PRINT #502420 PRINT #5, TAB(5);"TOTAL HOURS"; TAB(20); :M IF H(0,1)<>0 THEN PRINT #5, FRMT$(H(0,4),6,2); ! PROGRAMMER TIME ADJUSTED L PRINT #5,TAB(30);"(";FRMT$(H(0,1),6,2);")"; ! PROGRAMMER TIME UNADJUSTED2422 PRINT #5, TAB(44); :J IF H(0,2)<>0 THEN PRINT #5, FNF$(H(0,2)) ELSE PRINT #5 ! CONNECT TIME2425 PRINT #5^2430 PRINT #5, TAB(23); "PROGRAMMER TIME"; TAB(44); "CONNECT TIME"; TAB(64); "STORAGE BLOCKS"p2440 PRINT #5, TAB(24); "@ $";C&(1);"/ HR"; TAB(44);"@ $";C&(2);"/ HR"; TAB(59);"@ $";C&(3);"/ 100 BLOCK-MONTH"12442 PRINT #5, TAB(57); "= @ $";BC;"/ BLOCK-DAY"N2445 PRINT #5!2448 H=0 ! GRAND TOTAL OF CHARGES -2450 PRINT #5, TAB(5);"$ CHARGE"; TAB(24); :; IF H(0,4)<>0 THEN S$=FNF$(C&(1)*H(0,4)) :A PRINT #5, S$; :0 H=VAL(S$) ! GRAND TOTAL ! PROGRAMMER CHARGES2452 PRINT #5, TAB(44); : IF H(0,2)<>0 THEN S$=FNF$(C&(2)*H(0,2)) :A PRINT #5, S$; :1 H=H+VAL(S$) ! GRAND TOTAL : ! CONNECT CHARGES42454 PRINT #5, TAB(64); : IF H(0,3)<>0 THEN S$=FNF$(H(0,3)) :" PRINT #5, S$ : H=H+VAL(S$) F ELSE PRINT #5 ! STORAGE CHARGES (RUNNING TOTAL KEPT BY STMT 23802460 PRINT #5 : PRINT #5 :5 PRINT #5, TAB(34); "-----" :+ PRINT #5, TAB(34); "TOTAL $";FRMT$(H,7,2)) 2470 PRINT #5, TAB(34); "-----" 2599 RETURNT3200 !R ! CONVERT TIME TO # OF HOURS ! 13201 ! WORKS ON O1, WHICH IS SET BY CALLING STMT) ! RETURNS H#3202 ! ! USES O1, O2, L 3220 H=0 : IF O1=0 THEN 329943240 FOR L=1 TO 443250 O2=INT(O1/100)3260 H=H+(O1-O2*100)*E(L) 3270 O1=O2 3280 NEXT L+ 3299 R00JKMO\W*ETURN SE PRINT #5 ! STORAGE CHARGES (RUNNING TOTAL KEPT BY STMT 23802460 PRINT #5 : PRINT #5 :5 PRINT #5, TAB(34); "-----" :+ PRINT #5, TAB(34); "TOTAL $";FRMT$(H,7,2)) 2470 PRINT #5, TAB(34); "-----" 2599 RETURNT3200 !R ! CONVERT TIME TO # OF HOURS ! 13201 ! WORKS ON O1, WHICH IS SET BY CALLING STMT) ! RETURNS H#3202 ! ! USES O1, O2, L 3220 H=0 : IF O1=0 THEN 329943240 FOR L=1 TO 443250 O2=INT(O1/100)3260 H=H+(O1-O2*100)*E(L) 3270 O1=O2 3280 NEXT L+ 3299 R10 ! NEWLOG.BAS; ! USING A LIST OF *.LOG FILES CREATED BY SRD NAMED LOG.LST ! THIS PROGRAM# ! 1) RENAMES THE .LOG FILE TO .LLY ! 2) CREATES NEW .LOG FILE80 DIM N$[32]V,R$[52],Y$[2] 100 ER=0 :* CALL "SPAWNB"("SRD LOG.LST=/SE:*.LOG",ER)120 ! INPUT "YEAR ",Y$ Y$="86"@140 OPEN #4,"LOG.LST/RO" : IF END #4 THEN 800 : INPUT LINE #4,N$7160 INPUT LINE #4,N$ : N$=TRM$(SBS$(N$,3,9)) : PRINT N$180 IF N$="SAMPLE" THEN 160 200 ER=0 :5 CALL "SPAWNB"("PIP "+N$+".L"+Y$+"="+N$+".LOG/RE",ER) 220 ER=0 :. CALL "SPAWNB"("PIP "+N$+".LOG=SAMPLE.LOG",ER) 300 GOTO 160800 CLOSE : EXITS PROGRAM# ! 1) RENAMES THE .LOG FILE TO .LLY ! 2) CREATES NEW .LOG FILE80 DIM N$[32]V,R$[52],Y$[2] 100 ER=0 :* CALL "SPAWNB"("SRD LOG.LST=/SE:*.LOG",ER)120 ! INPUT "YEAR ",Y$ Y$="86"@140 OPEN #4,"LOG.LST/RO" : IF END #4 THEN 800 : INPUT LINE #4,N$7160 INPUT LINE #4,N$ : N$=TRM$(SBS$(N$,3,9)) : PRINT N$180 IF N$="SAMPLE" THEN 160 200 ER=0 :5 CALL "SPAWNB"("PIP "+N$+".L"+Y$+"="+N$+".LOG/RE",ER) 2210 ! NEWSTO.BAS; ! USING A LIST OF *.STO FILES CREATED BY SRD NAMED STO.LST ! THIS PROGRAM# ! 1) RENAMES THE .STO FILE TO .SLY ! 2) CREATES NEW .STO FILE80 DIM N$[32]V,R$[52],Y$[2] 100 ER=0 :* CALL "SPAWNB"("SRD STO.LST=/SE:*.STO",ER)120 ! INPUT "YEAR ",Y$ Y$="86"@140 OPEN #4,"STO.LST/RO" : IF END #4 THEN 800 : INPUT LINE #4,N$1160 INPUT LINE #4,N$ : N$=SBS$(N$,3,6) : PRINT N$ 180 ER=0 :5 CALL "SPAWNB"("PIP "+N$+".S"+Y$+"="+N$+".STO/RE",ER)#200 OPEN #6,N$+".STO/FX/LN:52/WR" : 300 CLOSE 6T 320 GOTO 160800 CLOSE : EXIT FILES CREATED BY SRD NAMED STO.LST ! THIS PROGRAM# ! 1) RENAMES THE .STO FILE TO .SLY ! 2) CREATES NEW .STO FILE80 DIM N$[32]V,R$[52],Y$[2] 100 ER=0 :* CALL "SPAWNB"("SRD STO.LST=/SE:*.STO",ER)120 ! INPUT "YEAR ",Y$ Y$="86"@140 OPEN #4,"STO.LST/RO" : IF END #4 THEN 800 : INPUT LINE #4,N$1160 INPUT LINE #4,N$ : N$=SBS$(N$,3,6) : PRINT N$ 180 ER=0 :5 CALL "SPAWNB"("PIP "+N$+".S"+Y$+"="+N$+".STO/RE",ER)#200 OPEN #6,N$+".STO/FX/LN:52/WR" : M1 ! OUTBILL.BAS [1,100] - PROGRAM TO PRODUCE BILLS FOR BIOMEDICAL COMPUTATION- ! BILLS PRODUCED ARE FOR SPECIFIED PROJECTS:H ! CHARGES ARE GENERATED AND LISTED ON DAILY BASIS FOR A SPECIFIED MONTH8 ! CHARGES ARE FOR PROGRAMMER, CONNECT, AND STORAGE TIME ! ! RUNS UNDER BA550 ! ! FUNCTION DEFINITIONS ! 50 DEF FNRM(A,B)=A-INT(A/B)*B&60 DEF FNSU(PJ,DA,PG)=(PJ*32+DA)*11+PG`80 DEF FNV(S0$)=VAL(SBS$(S0$,1,3)+SBS$(S0$,5,2)+SBS$(S0$,8,2)+SBS$(S0$,11,2)) : ! LOG TIME W/O :j90 DEF FNF$(X)=FRMT$(X,10,2) : ! FORMAT # TO 2 DIGITS TO RT OF ., SIG. DIGS. ONLY, & RJS IT IN FIELD OF 10100 !$ ! VARIABLE DEFINITIONS, DIMENSIONS ! J110 DIM R$[60]V ! RECORD STRING FOR LOGFILES, CONNECT FILES, STORAGE FILES<111 DIM L$[60]V ! INPUT VARIABLE FOR USER DESCRIPTION FILES'115 DIM FF$[50]V ! FOR MASTER FILE NAME &120 DIM AN$[60]V ! ACCOUNT NAME (DEPT)-125 DIM NF$[9]V ! USER DESCRIPTION FILE NAMES@130 DIM UN$[9]V, UN& ! USER NAME(S), # OF USER NAMES FOR ACCOUNT4135 DIM ST$[9]V ! NAME OF STORAGE FILE FOR EACH USER>140 DIM DP$[4]V ! MASK FOR MATCHING ACCOUNT TO LOG FILE CODING:150 DIM M$[3](12),M&(12) ! MONTH NAMES, # OF DAYS IN MONTHb170 DIM H(31,4) ! HOURS PER DAY FOR 6 USERS, 3 CATEGORIES EACH (PGMR, CONNTECT, STORAGE, ADJ PGMR))180 DIM C&(3) ! CHARGES FOR EACH CATEGORY 5185 DIM E(4) ! CONVERSION FACTORS FOR TIME INTO HOURS!#190 DIM PF(10) ! PROGRAMMER FACTORS 195 DIM S$[16]V ! DUMMY STRING199 DIM #16,PR%(21742)>200 P1=2 : P2=6 ! LOWER, UPPER BOUNDS ON PROGRAMMER SUBSCRIPTS210 OVERLA00R57rssY "PROJNUM/RT"300 ! ! USERS ACCOUNTS INFOM !N1 ! EACH DATA STMT DESCRIBES THE USER AS FOLLOWS1 ! NAME OF DEPT (OR OF USER)N ! NAME OF BLOCK STORAGE FILE5 ! MASK DESCRIBING ITS CODE IN PROGRAMMER LOG FILEG& ! # OF ACCTS (USER NAMES) USER HAS) ! LIST OF ACCTS (USER NAMES) FOR USER  ! "310 ! PROGRAMMER SENIORITY FACTORS ! PROGRAMMER NUMBERS AS FOLLOWS ! 1 = UNUSED ! 2 = BONNIE ! 3 = DEANA ! 4 = LARRY ! 5 = BEVERLY ! 6 = DAN320 DATA 1,.7,1.5,.7,1(330 FOR I=P1 TO P2 : READ PF(I) : NEXT I430 M$(1)="JAN" : M&(1)=31 : M$(2)="FEB" : M&(2)=29 :  M$(3)="MAR" : M&(3)=31 :E M$(4)="APR" : M&(4)=30 :  M$(5)="MAY" : M&(5)=31 :E M$(6)="JUN" : M&(6)=30 :  M$(7)="JUL" : M&(7)=31 :G M$(8)="AUG" : M&(8)=31 :M M$(9)="SEP" : M&(9)=30 :  M$(10)="OCT" : M&(10)=31 : M$(11)="NOV" : M&(11)=30 :I: M$(12)="DEC" : M&(12)=31 ! NAMES OF MONTHS, DAYS IN MONTH-440 C&=3 : ! # OF CATEGORIES OF CHARGES :!0 C&(1)=24.50 : ! $24.50/HR PROGRAMMER TIME :( C&(2)=20 : ! $ 20/HR CONNECT TIME :, C&(3)=5 : ! $ 5/100 BLOCK-MONTH STORAGE-450 ! E MAY BE USED AS WORK VARIABLE :"- E(1)=1/3600 : ! CONVERT SECONDS TO HOURS :- E(2)=1/60 : ! CONVERT MINUTES TO HOURS :)* E(3)=1 : ! CONVERT HOURS TO HOURS :( E(4)=24 : ! CONVERT DAYS TO HOURS@460 BC=((C&(3)/100)*12)/365 ! DAILY BLOCK CHARGE (1 BLOCK-DAY) :, S$=FRMT$(BC,8,6) ! MAKE CHARGE $ X.XXXXXX : BC=VAL(S$)O.600 ! ASK USER FOR MONTH OF BILLING STATEMENT'610 INPUT "MONTH OF BILLING (MMYY) "; M G620 M&=INT(M/100) : IF M&<1 OR M&>12 THEN PRINT "BAD MONTH" : GOTO 610! 630 Y&=M-(M&*100) ! YEAR OF BILL@635 IF 4*INT(Y&/4)<>Y& THEN M&(2)=28 ! CORRECT FOR NON LEAP YEAR640 IF M&>6 THEN FY&=Y&+1* ELSE FY&=Y& ! FISCAL YEAR IS JULY-JUNE;650 D1=DCEN(STR$(M&)+"/01/"+STR$(Y&)) ! FIRST DAY OF MONTHC( D2=D1 + M&(M&)-1 ! LAST DAY OF MONTH.670 ! OPEN #16,M$(M&)+STR$(Y&)+".VPG/BL/RO/SH"%680 INPUT "FILE NAME FOR OUTPUT",FF$:E OPEN #5,FF$+"/WR/LN:84"%700 INPUT "FILE NAME FOR USERS ",FF$:Y IF TRM$(FF$)="" THEN1 FF$="USERS.NAM/RO/SH/EN:900" ELSE FF$=FF$+"/RO/SH/EN:900" 705 OPEN #6,FF$ : PRINTI!710 INPUT LINE #6,AN$ : PRINT AN$2720 NF$=PIECE$(AN$,",",1): FF$=PIECE$(AN$,",",2):Y AN$=PIECE$(AN$,",",3,60)6740 FOR J=0 TO 31 : FOR K=0 TO 4 : H(J,K)=0 : NEXT K,J"750 OPEN #7,"PRF.PRF/RO/SH/EN:850"753 INPUT LINE #7,L$%755 IF SBS$(L$,3)=NF$+".PRF" THEN 770$ 757 GOTO 753760 INPUT LINE #7,L$770 IF LEFT(L$,1)=";" THEN 760 ELSE IF LEFT(L$,1)="*" THEN 800 780 DP$=L$$790 GOSUB 1000 ! GET PROGRAMMER TIME GOTO 760S800 INPUT LINE #7,L$810 IF LEFT(L$,1)=";" THEN 800 ELSE IF LEFT(L$,1)="*" THEN 830 820 UN$=L$:  GOSUB 1200 ! GET CONNECT TIME GOTO 800$830 INPUT LINE #7,L$:  IF LEFT(L$,1)=";" THEN 830 ELSE IF LEFT(L$,1)="*" THEN 850840 ST$=L$ : K&=M&(M&)+1:# GOSUB 1300 ! GET BLOCK STORAGEU GOTO 830$3 ! IF MISSING STORAGE INFO, USE PREVIOUS DAY'S INFO3850 FOR L=2 TO M&(M&)$860 IF H(L,3)=0 THEN H(L,3)=H(L-1,3) 870 NEXT L880 CLOSE 7 : GOSUB 2000 890 GOTO 710 900 CLOSEO 910 PRINTE920 EXIT/1000 ! SUBROUTINE TO ACCUMULATE PROGRAMMER TIMEH. ! FOR ONE USER FROM ACCUMULATED VIRTUAL ARRAY ! ON ENTRY:3 ! MMMYY.VPG OPEN ON LUN 16 WHERE YY IS FISCAL YEAR# ! AND MMM IS 3 CHAR MONTH NAME5 ! PR% IS VIRTUAL ARRAY OF PROGRAMMER TIME AS DEFINED& ! IN PROGMON.BAS ! DP$ HAS MASK FOR THIS USER3 ! M& IS MONTH BEING BILLED FORS RETURNS21010 GOSUB 8000 ! GET PROJECT NUMBER DP% FROM DP$1020 FOR NI=1 TO M&(M&)71030 FOR K=P1 TO P2 -1040 H(NI,1)=H(NI,1)+PR%(FNSU(DP%,NI,K))/100:N. H(NI,4)=H(NI,4)+PR%(FNSU(DP%,NI,K))*PF(K)/1001050 NEXT K,NI 1090 RETURNE1200 !C ! CONNECT TIME !@1215 L&=2 ! THE 2ND OF EACH USER'S 3 CATEGORIES IS CONNECT TIMEB1230 OPEN #3, UN$+".LOG/LN:56/RN/RO/SH" ! OPEN CONNECT TIME FILE:1240 FOR K=NRC(3) TO 6 STEP -1 ! 1ST 6 RECS ARE HEADINGS11250 INPUT LINE #3@K, R$ ! CONNECT TIME RECORDR.1260 D=DCEN(SBS$(R$,20,8)) ! DATE LOGGED OFFQ1270 IF DD2=4 THEN 1390 ! DIDN'T GET TO RIGHT DATE SECTION YET*1370 DR&=VAL(SBS$(R$,1,2)) ! DAY OF MONTHr1374 IF DR&>=1 THEN H(DR&,L&)=H(DR&,L&)+VAL(SBS$(R$,27,8)) ! # OF BLOCKS FOR THAT DAY (ONLY 1 REC OF BLKS PER DAY) 1390 NEXT K$1399 CLOSE 3 : RETURN!2000 !R ! PRINT BILL FOR EACH PROJECT( ! 2205 PRINT #5, CHR$(12)F2210 PRINT #5, TAB(24); "MICHAEL REESE HOSPITAL AND MEDICAL CENTER" :B PRINT #5, TAB(24); " DEPARTMENT OF MEDICAL PHYSICS " : PRINT #5 : PRINT #5I2220 PRINT #5, " BIOMEDICAL COMPUTATION DIVISION";TAB(74); DDAT$(0) :3 PRINT #5 : PRINT #5)D2230 PRINT #5, " BILL FOR ";M$(M&);", 19"; STR$(Y&);" -- ";AN$ :+ PRINT #5, TAB(5);STRING$("-",22+LEN(AN$)) 2240 PRINT #5 : PRINT #5X02250 PRINT #5, TAB(29); "HOURS";TAB(48);"HOURS"^2260 PRINT #5, TAB(23); "PROGRAMMER TIME"; TAB(44); "CONNECT TIME"; TAB(64); "STORAGE BLOCKS"2270 PRINT #52300 ! ! PRINT HOURS ! ;42310 FOR J=1 TO M&(M&) ! FOR EACH DAY OF THE MONTH!2315 PRINT #5, TAB(5);M$(M&);J; 2320 PRINT #5, TAB(20); :IN IF H(J,4)<>0 THEN PRINT #5, FRMT$(H(J,4),6,2); ! PROGRAMMING TIME ADJUSTEDK PRINT #5,TAB(30);"(";FRMT$(H(J,1),6,2);")"; !PROGRAMMING TIME UNADJUSTEDE2330 PRINT #5, TAB(44); :I= IF H(J,2)<>0 THEN PRINT #5, FNF$(H(J,2)); ! CONNECT TIME 2340 PRINT #5, TAB(64); :RG IF H(J,3)<>0 THEN PRINT #5, RJS$(STR$(H(J,3)),10) ! STORAGE BLOCKS5 ELSE PRINT #552360 H(0,1)=H(0,1)+H(J,1) ! TOTAL # OF PROGRAMMER HRS : H(0,4)=H(0,4)+H(J,4) ! TOTAL # OF ADJUSTED PROGRAMMER HRS62370 H(0,2)=H(0,2)+H(J,2) : ! TOTAL # OF CONNECT HRS2380 IF H(J,3)>0O6 THEN H(0,3)=H(0,3) + (INT(H(J,3)/100)+1)*100 * BC :/ ! KEEP RUNNING TOTAL OF DAILY BLOCK CHARGES :0? ! BLOCKS ARE CHARGES IN UNITS OF 100, SO ROUND UP TO NEXT 100J 2399 NEXT J2400 !0 ! FIGURE CHARGES FOR ENTIRE MONTH; PRINT THEM ! T2410 PRINT #502420 PRINT #5, TAB(5);"TOTAL HOURS"; TAB(20); :M IF H(0,1)<>0 THEN PRINT #5, FRMT$(H(0,4),6,2); ! PROGRAMMER TIME ADJUSTED L PRINT #5,TAB(30);"(";FRMT$(H(0,1),6,2);")"; ! PROGRAMMER TIME UNADJUSTED2422 PRINT #5, TAB(44); :J IF H(0,2)<>0 THEN PRINT #5, FNF$(H(0,2)) ELSE PRINT #5 ! CONNECT TIME2425 PRINT #5^2430 PRINT #5, TAB(23); "PROGRAMMER TIME"; TAB(44); "CONNECT TIME"; TAB(64); "STORAGE BLOCKS"p2440 PRINT #5, TAB(24); "@ $";C&(1);"/ HR"; TAB(44);"@ $";C&(2);"/ HR"; TAB(59);"@ $";C&(3);"/ 100 BLOCK-MONTH"12442 PRINT #5, TAB(57); "= @ $";BC;"/ BLOCK-DAY"N2445 PRINT #5!2448 H=0 ! GRAND TOTAL OF CHARGES -2450 PRINT #5, TAB(5);"$ CHARGE"; TAB(24); :; IF H(0,4)<>0 THEN S$=FNF$(C&(1)*H(0,4)) :A PRINT #5, S$; :0 H=VAL(S$) ! GRAND TOTAL ! PROGRAMMER CHARGES2452 PRINT #5, TAB(44); : IF H(0,2)<>0 THEN S$=FNF$(C&(2)*H(0,2)) :A PRINT #5, S$; :1 H=H+VAL(S$) ! GRAND TOTAL : ! CONNECT CHARGES42454 PRINT #5, TAB(64); : IF H(0,3)<>0 THEN S$=FNF$(H(0,3)) :" PRINT #5, S$ : H=H+VAL(S$) F ELSE PRINT #5 ! STORAGE CHARGES (RUNNING TOTAL KEPT BY STMT 23802460 PRINT #5 : PRINT #5 :5 PRINT #5, TAB(34); "-----" :+ PRINT #5, TAB(34); "TOTAL $";FRMT$(H,7,2)) 2470 PRINT #5, TAB(34); "-----"2500 ! ! INDICATE MINIMUM CHARGE, ETC. !2510 PRINT #5 : PRINT #5D2520 PRINT #5,TAB(5);"THE MINIMUM MONTHLY CHARGE IS $";FF$;".00."; :2 PRINT #5," IF THE ABOVE TOTAL IS LESS THAN THE"D2530 PRINT #5,TAB(5);"MINIMUM THEN PLEASE REMIT THE MINIMUM. IF"; :0 PR00bc57rssINT #5," THE TOTAL IS MORE THAN THE MINIMUM"32540 PRINT #5,TAB(5);"THEN PLEASE REMIT THE TOTAL."3 2599 RETURNN3200 !I ! CONVERT TIME TO # OF HOURS ! 13201 ! WORKS ON O1, WHICH IS SET BY CALLING STMT4 ! RETURNS HA3202 !- ! USES O1, O2, L 3220 H=0 : IF O1=0 THEN 329953240 FOR L=1 TO 4 3250 O2=INT(O1/100)(3260 H=H+(O1-O2*100)*E(L)R 3270 O1=O2 3280 NEXT L 3299 RETURN THE ABOVE TOTAL IS LESS THAN THE"D2530 PRINT #5,TAB(5);"MINIMUM THEN PLEASE REMIT THE MINIMUM. IF"; :0 PRl1ěSY0:Aw}R z}D@SD0: SD0:BSD0: DP1: B SD0: Q LB0: B_SD0:@SD0:@SD0:FSD0: C@SD0: SD0: BDR2: SD0: U2DR0:" SD0: SD0: GSD0:SD0:@SD0: BDP1: SD0: SD0: @SD0:P LB0: CSD0: SD0: SD0:LB0: ((DP1: SD0:@ SD0: @SD0: ((DP1:B_SD0:@SD0:SD0: ESD0: zBSD0: 00jqMO\W*BSD0: SD0: SD0: @SD0: LB0: ASD0: @wSD0: BSD0: SD0: @7DP1: SD0:BDP1:FPSD0:BDP1: @SD0: @SD0: SD0: SD0: _SD0: Aw}R SY0: BDP1: @ODP1: BSD0:BDP1: @SD0: @SD0: SD0: z}D*SD0: HSD0: SD0: DSD0:GDP1: PPhSD0: @PSD0: SD0: SD0:BDP1: FSD0:BSD0: SD0: BSD0:@SD0: @bSD0: DSD0: BSD0:(SD0: SD0:hhDP1:BSD0:BXLB0:BSD0:BSD0:(,-Vq@/(}62xs62v:2av:{9;>GW>@Dp!Ep:\N2pkQv3@oQ--zQ9 R+YW~Z*KZ RZFwZwH`A~dd/XfZgwpvp}Vqe 095 ! PROGRAM PDSUPFCOP.SYS9100 ! PROGRAM TO COPY ALL USERS FROM ONE PDSUPF DATA FILE%101 ! TO ANOTHER (USUALLY A LARGER 1)%102 INPUT "SIZE OF OLD USER FILE", OU%103 INPUT "SIZE OF NEW USER FILE", NU104 B=00105 CALL "SPAWNB"("PIP PDSUPF.NEW=PDSUPF.DAT",B))106 IF B<>1 THEN PRINT "FILE COPY FAILED"107 IF B<>1 THEN STOP3110 DIM #4,DD%(255,31) : ! ROOM FOR PLENTY OF USERS3111 DIM #3,EE%(255,31) : ! ROOM FOR PLENTY OF USERS(112 DIM TR%(32) : ! RECORD FOR TRANSFERS3140 ! FORMAT OF FILE (00ru57rss64 BYTE FIXED LENGTH RECORDS) 145 ! FIRST RECORD DUMMY PROFILE;146 ! WORD 0 CONTAINS RECORD # OF FIRST ACTUAL USERS RECORDR8147 ! WORD 1 CONTAINS RECORD # OF LAST USED USERS RECORD9150 ! NEXT N RECORDS CONTAIN USER NAMES FOR RAPID LOOK-UPP,160 ! STORED IN RAD50, (8. NAMES PER RECORD)%280 OPEN #4,"[1,100]PDSUPF.DAT/BL/RO"H%282 OPEN #3,"[1,100]PDSUPF.NEW/BL/UP"O290 FOR I=1 TO 32R0300 TR%(I)=DD%(0,I-1) : ! GET DEFAULT DESCRIPTOR 310 NEXT I;315 F1=TR%(1) : ! POSITION OF FIRST USER RECORD IN OLD FILE4:316 L1=TR%(2) : ! POSITION OF LAST USER RECORD IN OLD FILE:317 PRINT "FIRST,LAST USER RECORDS IN OLD FILE ";F1;" ";L1320 F2=F1+(NU-OU)/8N=321 L2=L1+(NU-OU)/8 : ! DETERMINES NUMBER OF RECORDS TO SHIFTC:322 PRINT "FIRST,LAST USER RECORDS IN NEW FILE ";F2;" ";L2 323 SH=L2-L1 325 TR%(1)=F2P 326 TR%(2)=L2D330 FOR I=1 TO 3281340 EE%(0,I-1)=TR%(I): ! WRITE NEW DEFAULT RECORDO 350 NEXT I360 ! NOW COPY RECORDS370 FOR I=F1 TO L1375 FOR J=1 TO 32T 410 EE%(I-1+SH,J-1)=DD%(I-1,J-1) 420 NEXT J 430 NEXT I%440 ! NOW ZERO NEW AREA OF NAME TABLEO450 FOR I=F1 TO F2-1460 FOR J=1 TO 32R470 EE%(I-1,J-1)=0 480 NEXT J 490 NEXT I 500 CLOSE321 L2=L1+(NU-OU)/8 : ! DETERMINES NUMBER OF RECORDS TO SHIFTC:322 PRINT "FIRST,LAST USER RECORDS IN NEW FILE ";F2;" ";L2 323 SH=L2-L1 325 TR%(1)=F2P 326 TR%(2)=L2D330 FOR I=1 TO 3281340 EE%(0,I-1)=TR%(I): ! WRITE NEW DEFAULT RECORDO 350 NEXT I360 ! NOW COPY RECORDS370 FOR I=F1 TO L1375 FOR J=1 TO 32T 410 EE%(I-1+SH,J-1)=DD%(I-1,J-1) 420 NEXT J 4310 ! PROGMON.BAS2 ! PROGRAM (PARTIAL) TO ACCUMULATE A 3 DIMENSIONAL4 ! ARRAY OF PROGRAMMER TIME BY PROJECT, DAY OF MONTH9 ! AND PROGRAMMER. ARRAY ELEMENTS ARE INTEGERS CONTAINING* ! TIME IN UNITS OF HUNDREDTHS OF AN HOUR. !G ! SIZE OF ARRAY: (60+1)PROJECTS * (31+1)DAYS * (10+1)PROGRAMMERS=21472 !< ! THIS PROGRAM IS MEANT TO BE CHAINED TO BY ANOTHER PROGRAM= ! WHICH WILL HAVE SET UP CERTAIN THINGS AND DECIDED THAT THE+ ! 3 DIMENSIONAL ARRAY NEEDS TO BE CREATED. !7 ! FOLLOWING IS A LIST OF THOSE THINGS WHICH NEED TO BE(0 ! DONE BY THE PROGRAM WHICH CHAINS TO THIS ONE: ! ! DIM #16,PR%(21472)T ! DIM M$[3](12),M&(12)O ! DIM R$[60]V !4 ! M$ AND M& INITIALIZED WITH 3 CHAR MONTH NAMES AND, ! NUMBER OF DAYS PER MONTH RESPECTIVELY. ! ! FY&=FISCAL YEAR OF INTEREST ! Y& =CALENDAR YEAR OF INTEREST ! M& =MONTH OF INTEREST !0 ! CH$=STRING FOR CHAIN WHEN DONE WITH THIS CODE !110 DIM NP$[40]V,DP$[4]V$300 NP=5 : NP$="LAR/BON/DEA/BEV/DAN"320 ! CHANGED 3-JUL-81 NP=3 : NP$="DEA/CLW/DAN"S340 ! CHANGED 3-JUL-84 NP=1 : NP$="DAN"WC360 P1=2 : P2=6 ! DEFINE LOWER, UPPER BOUNDS ON PROGRAMMER NUMBERS)1000 F$="LOGTEMP.F"+STR$(FY&)!1010 OPEN #3,F$+"/FX/LN:60/WR" 1020 CLOSE 31030 FOR II=1 TO NP 1040 S=0S1050 CALL "SPAWNB"("PIP "+F$+"=[2,1]LOG"+PIECE$(NP$,"/",II)+".F"+STR$(FY&)+"/AP",S)E&1060 IF S < 1 THEN PRINT "S=";S : STOP 1070 NEXT II1080 S=0E1090 CALL "SPAWNB"("SRT "+F$+"="+F$+"/SI:60/PR:T/KE:52.2:48.4:1.4",S)O&1100 IF S < 1 THEN PRINT "S=";S : STOP1200 OVERLAY "PROJNUM/RT" 71205 OPEN #16,M$(M&)+STR$(Y&)+".VPG/WR/BL" : GOSUB 1400=1208 F$="LOGTEMP.F"+STR$(FY&) &1210 OPEN #3,F$+"/RO/FX/LN:60/EN:1500"(1220 DEF FNSU(PJ,DA,PG)=(PJ*32+DA)*11+PG1230 INPUT LINE #3,R$0B1240 IF VAL(SBS$(R$,52,2))<>Y& OR VAL(SBS$(R$,48,2))<>M& THEN 1230 ELSE 1260' ! LOOP ONCE WE FOUND FIRST GOOD RECORD 1250 INPUT LINE #3,R$ " ! CHECK FOR PROPER MONTH AND YEARB1260 IF VAL(SBS$(R$,52,2))<>Y& OR VAL(SBS$(R$,48,2))<>M& THEN 1500 ! GET PROJECT SUBSCRIPT(1270 DP$=TRM$(SBS$(R$,1,4)) : GOSUB 8000H1280 IF DP% < 1 OR DP% > 60 THEN PRINT R$ : PRINT "DP%=";DP% : GOTO 1330 ! GET DAY SUBSCRIPT91290 DA%=VAL(SBS$(R$,50,2)) : IF DA%<1 OR DA%>M&(M&) THENP( PRINT R$ : PRINT "DA%=";DA% : GOTO 1330 ! GET PROGRAMMER SUBSCRIPTO61300 PG%=VAL(SBS$(R$,47,1)) : IF PG%P2 THEN( PRINT R$ : PRINT "PG%=";PG% : GOTO 1330 ! GET HUNDREDTHS OF HOURS'1310 HR%=INT(VAL(SBS$(R$,54,5))*100+.5)R61320 PR%(FNSU(DP%,DA%,PG%))=HR%+PR%(FNSU(DP%,DA%,PG%))1330 GOTO 12501400 DIM #16,PR(10736)00z{~O\W*1405 FOR II= 10736 TO 0 STEP -1 1410 PR(II)=0 : NEXT IIT 1420 RETURND1500 CLOSE : CHAIN CH$ GET DAY SUBSCRIPT91290 DA%=VAL(SBS$(R$,50,2)) : IF DA%<1 OR DA%>M&(M&) THENP( PRINT R$ : PRINT "DA%=";DA% : GOTO 1330 ! GET PROGRAMMER SUBSCRIPTO61300 PG%=VAL(SBS$(R$,47,1)) : IF PG%P2 THEN( PRINT R$ : PRINT "PG%=";PG% : GOTO 1330 ! GET HUNDREDTHS OF HOURS'1310 HR%=INT(VAL(SBS$(R$,54,5))*100+.5)R61320 PR%(FNSU(DP%,DA%,PG%))=HR%+PR%(FNSU(DP%,DA%,PG%))1330 GOTO 12501400 DIM #16,PR(10736)10 ! PROGMONTH.BAS1 ! PROGRAM TO MANUALLY SET UP FOR CALL TO PROGMON8 ! IN ORDER TO SET UP A VIRTUAL ARRAY OF PROGRAMMER INFO100 DIM R$[60]V150 DIM M$[3](12),M&(12)160 DIM CH$[20]V200 DIM #16,PR%(21472)430 M$(1)="JAN" : M&(1)=31 : M$(2)="FEB" : M&(2)=29 : M$(3)="MAR" : M&(3)=31 : M$(4)="APR" : M&(4)=30 : M$(5)="MAY" : M&(5)=31 : M$(6)="JUN" : M&(6)=30 : M$(7)="JUL" : M&(7)=31 : M$(8)="AUG" : M&(8)=31 : M$(9)="SEP" : M&(9)=30 : M$(10)="OCT" : M&(10)=31 : M$(11)="NOV" : M&(11)=30 :B: M$(12)="DEC" : M&(12)=31 ! NAMES OF MONTHS, DAYS IN MONTH.600 ! ASK USER FOR MONTH OF BILLING STATEMENT'610 INPUT "MONTH OF BILLING (MMYY) "; M,G620 M&=INT(M/100) : IF M&<1 OR M&>12 THEN PRINT "BAD MONTH" : GOTO 610= 630 Y&=M-(M&*100) ! YEAR OF BILL@635 IF 4*INT(Y&/4)<>Y& THEN M&(2)=28 ! CORRECT FOR NON LEAP YEAR640 IF M&>6 THEN FY&=Y&+1* ELSE FY&=Y& ! FISCAL YEAR IS JULY-JUNE;650 D1=DCEN(STR$(M&)+"/01/"+STR$(Y&)) ! FIRST DAY OF MONTH(( D2=D1 + M&(M&)-1 ! LAST DAY OF MONTH1000 CH$="PROGMONTH/LI:3000"1100 INPUT "SORT FILES ",A$D51110 IF POS(A$,"N")=1 THEN CHAIN "PROGMON/RT/LI:1200"E ELSE CHAIN "PROGMON/RT"*2000 OPEN #16,M$(M&)+STR$(Y&)+".VPG/RO/BL"(2010 DEF FNSU(PJ,DA,PG)=(PJ*32+DA)*11+PG/2020 INPUT "PROJECT, DAY, PROGRAMMER ",PJ,DA,PGF2030 PRINT PR%(FNSU(PJ,DA,PG))2040 GOTO 2020 3000 EXIT640 IF M&>6 THEN FY&=Y&+1* ELSE FY&=Y& ! FISCAL YEAR IS JULY-JUNE;650 D1=DCEN(STR$(M&)+"/01/"+STR$(Y&)) ! FIRST DAY OF MONTH(( D2=D1 + M&(M&)-1 ! LAST DAY OF10 ! PROGRAM PROGVIR.BAS4 ! TO UPDATE A VIRTUAL ARRAY CONTAINING INDICES INTO ! PROGRAMMER TIME LOG FILES ! ! LAYOUT OF VIRTUAL FILE: ! P%(N,24) ! N IS NUMBER OF PROGRAMMERS. ! P%(N,24) IS IS A SET OF INDICES INTO FILE N@ ! P%(N,J*2-1) FOR J=1 TO 12 IS START OF REC FOR FILE N AND MO J9 ! P%(N,J*2) " NO. " ", ! P%(N,0) IS RAD50 PROGRAMMER CODE (3 CHAR) ! P%=N50 DEF FNRM(A,B)=A-INT(A/B)*B60 DEF FND$(R$)=SBS$(R$,48,6)!70 DEF FNMO(R$)=VAL(SBS$(R$,1,2))! 90 DIM L$[60]R&100 N=6 ! DEFINE NUMBER OF PROGRAMMERS110 DIM #3,P%(12,24)%120 INPUT LINE "FISCAL YEAR (YY)";YY$U130 IF LEN(YY$)=0 THEN STOP4 ELSE IF LEN(YY$)<>2 THEN 120R140 YY$="F"+YY$S150 ON ERROR GOTO 170T9160 OPEN #3,YY$+".VIR/UP/BL" : ON ERROR GOTO 0 : GOTO 500FD170 IF FCS(0)<>-26 THEN PRINT "FILE ERROR";FCS(0) : ON ERROR GOTO 0: GOTO 120(0 ELSE OPEN #3,YY$+".VIR/WR/BL" : ON ERROR GOTO 0 180 DATA FRA,BON,DEA,LAR,BEV,DAN5300 FOR I=1 TO N : READ C$ : P%(I,0)=AR5(C$) : NEXT IR 310 FOR I=1 TO N : FOR J=1 TO 24 320 P%(I,J)=0 330 NEXT J,I350 P%=N500 FOR NI=1 TO NN510 ON ERROR GOTO 550Y@520 OPEN #4,"[2,1]LOG"+R5A$(P%(NI,0))+"."+YY$+"/RN/RO/SH/LN:60": ON ERROR GOTO 0530 GOSUB 1000+540 PRINT "LOG"+R5A$(P%(NI,0))+" FINISHED":O CLOSE 4 : GOTO 570 550 IF FCS(0)=-26 THEN/ PRINT "LOG"+R5A$(P%(NI,0))+" NOT ESTABLISHED":: CLOSE 4 : ON ERROR GOTO 0:Y GOTO 570BB ELSE PRINT "ERROR";ERR(0);", FCS=";FCS(0);"ON LOG"+R5A$(P%(NI,0)) 570 NEXT NI$ 580 CLOSE 35600 STOP71000 ! FOR FILE OPEN ON UNIT 4, UPDATE INFO IN P%(NI,?)31010 FOR I=1 TO 12: IF P%(NI,I*2)>0 THEN 1020 ELSE 1040 1020 NEXT I# 1030 I=I+11040 I=I-1 : IF I=0 THEN 1060/01050 IF P%(NI,I*2)+P%(NI,I*2-1)=NRC(4) THEN 11905 ELSE IF P%(NI,I*2)+P%(NI,I*2-1)-1 > NRC(4) THEN 1060T- ELSE FR%=P%(NI,I*2)+P%(NI,I*2-1) : GOTO 1110A11060 I=1 : FR%=1 : P%(NI,I*2-1)=1 : P%(NI,I*2)=0:O GOTO 1110'1100 ! DO COUNTING OF RECORDS IN MONTHS 1110 INPUT LINE #4@FR%,L$P!1120 IR=FNRM(FNMO(FND$(L$))+6,12)51130 IF IR <> 0057rssI THEN 1140  ELSE P%(NI,I*2)=P%(NI,I*2)+1: GOTO 11501140 IF IR=I+1 THENI I=I+1:* P%(NI,I*2-1)=FR%: P%(NI,I*2)=1: GOTO 1150 ELSE IF IR < I THEN! PRINT "RECORDS OUT OF SEQUENCE":I STOP= ELSE  I=I+1:S P%(NI,I*2-1)=0: P%(NI,I*2)=0: GOTO 11401150 FR%=FR%+1:% IF FR% > NRC(4) THEN 1190 ELSE 1110 1190 RETURN: P%(NI,I*2-1)=1 : P%(NI,I*2)=0:O GOTO 1110'1100 ! DO COUNTING OF RECORDS IN MONTHS 1110 INPUT LINE #4@FR%,L$P!1120 IR=FNRM(FNMO(FND$(L$))+6,12)51130 IF IR <> <8000 ! ROUTINE TO TURN 4 CHAR (2 NUMBER) PROJECT CODE INTO A: ! SINGLE CODE FOR THE SAKE OF ACCUMULATING AND DISPLAYING ! BILLING INFO FOR PROGRAMMERS. ! ! FILE NAME PROJNUM.BAS ! ! ON ENTRY:/ ! DP$ CONTAINS 4 (OR 2) CHARACTER PROJECT CODE ! ! ON EXIT:/ ! DP% CONTAINS SINGLE VALUE NUMBER AS FOLLOWS: ! -1 = BAD STRING ! 1 = OPHTHAMOLOGY ( 1 1)3 ! 2 = OPHTHAMOLOGY QUALITY CONTROL ( 1 2, 1 3)# ! 3 = INFECTION CONTROL ( 2 1)1 ! 4 = INFECTION CONTROL ( 2 2, 2 3, 2 4)01 ! 5 = NUCLEAR MEDICINE ( 3 1, 3 2, 3 5)N3 ! 6 = NUCLEAR MEDICINE - SCAN RELATED WORK ( 3 3) 9 ! 7 = NUCLEAR MEDICINE - LABORATORY RELATED WORK ( 3 4)A0 ! 8 = TUMOR REGISTRY DATA BASE ( 4 1, 4 2)5 ! 9 = TUMOR REGISTRY QUALITY CONTROL ( 4 3, 4 4)D ! 10 = ( 5 1)L ! 11 = ( 5 2) ! 12 = ( 6 1) ! 13 = ( 6 2)  ! 14 = ( 6 3)T& ! 15 = MED PHYS - PO LOGGING ( 7 1)$ ! 16 = MED PHYS - BILLING ( 7 2)! ! 17 = MED PHYS - MEEG ( 7 3)(' ! 18 = MED PHYS - RAD. SAFETY ( 7 4)E+ ! 19 = MED PHYS - DIAG. X-RAY WORK ( 7 5)E8 ! 20 = MED PHYS - MACHINE SHOP (BOHDAN, CHARLIE) ( 7 6)/ ! 21 = MED PHYS - DEPARTMENTAL AFFAIRS ( 7 7)O ! 22 = MED PHYS - ( 7 8) " ! 23 = MED PHYS - OTHER ( 7 9)$ ! 24 = RAD ONC - DATA BASE ( 8 1)* ! 25 = RAD ONC - QUALITY CONTROL ( 8 2)# ! 26 = RAD ONC - BILLING ( 8 3) ( ! 27 = RAD ONC - CELL KINETICS ( 8 4)+ ! 28 = RAD ONC - RAD TECH TRAINING ( 8 5) , ! 29 = RAD ONC - TREATMENT PLANNING ( 8 6)/ ! 30 = RAD ONC - PFIZER, ETC. SCANNERS ( 8 7) 0 ! 31 = RAD ONC - BIOMEDICAL COMPUTATION ( 8 8). ! 32 = RAD ONC - DEPARTMENTAL AFFAIRS ( 8 9)6 ! 33 = RAD ONC - THERAC-20 VERIFICATION SYSTEM ( 810)4 ! 34 = RAD ONC - THERAC-20 QUALITY ASSURANCE ( 811) ! 35 = RAD ONC - ( 812)! ! 36 = RAD ONC - OTHER ( 813) 9 ! 37 = OVERHEAD - WORKING HERE ( 9 1, 9 2, 9 7, 9 8)29 ! 38 = OVERHEAD - WORKING AWAY ( 9 3, 9 9) 9 ! 39 = OVERHEAD - PAID BUT NOT WORKING ( 9 4, 9 5, 9 6)G( ! 40 = WEISS MEMORIAL HOSPITAL (10 1)$ ! 41 = ST. JAMES HOSPITAL (10 2) ! 42 = WAUKEGAN (10 3) ! 43 = (10 4)A ! 44 = (10 5)  ! 45 = (10 6)  ! ! OTHER VARIABLES USED: ! D1&, D2& 8010 ON ERROR GOTO 8350L>8020 D1&=VAL(SBS$(DP$,1,2)) : IF D1& < 1 OR D1& > 12 THEN 8350 8030 IF LEN(DP$) <> 4 THEN D2&=0 ELSE D2&=VAL(SBS$(DP$,3,2))B8040 ON D1& GOTO 8050,8080,8120,8190,8350,8350,8110,8250,8260,8340 ! OPHTHALMOLOGY$8050 IF D2& < 1 OR D2& > 3 THEN 8350 ELSE ON D2& GOTO 8060,8070,8070 ! DATA BASE8060 DP%=1 : GOTO 8360 ! QUALITY CONTROL8070 DP%=2 : GOTO 8360 ! INFECTION CONTROL$8080 IF D2& < 1 OR D2& > 4 THEN 8350% ELSE ON D2& GOTO 8090,8100,8100,8100U ! DATA BASE8090 DP%=3 : GOTO 8360/ ! QUALITY CONTROL, STATISTICAL ANALYSIS, OTHERO8100 DP%=4 : GOTO 8360 ! MEDICAL PHYSICS$8110 IF D2& < 1 OR D2& > 9 THEN 8350 ELSE DP%=14+D2& : GOTO 8360 ! NUCLEAR MEDICINE8#8120 IF D2& <1 OR D2& > 5 THEN 8350* ELSE ON D2& GOTO 8130,8130,8140,8150,8130+ ! SYSTEMS SUPPORT, IMAGE PROCESSING, OTHER08130 DP%=5 : GOTO 8360 ! SCAN DATA BASE08140 DP%=6 : GOTO 8360 ! LAB DATA BASE8150 DP%=7 : GOTO 8360 ! TUMOR REGISTRY $8190 IF D2& < 1 OF D2& > 4 THEN 8350% ELSE ON D2& GOTO 8200,8200,8210,8210A ! DATA BASE8200 DP%=8 : GOTO 8360 ! QUALITY CONTROL8210 DP%=9 : GOTO 8360 ! RAD ONC%8250 IF D2& < 1 OR D2& > 13 THEN 8350P ELSE DP%=23+D2& : GOTO 8360 ! OVERHEAD$8260 IF D2& < 1 OR D2& > 9 THEN 8350 ELSE ON D2&2 GOTO 8270,8270,8280,8290,8290,8290,8270,82700\W*0,8280 ! OVERHEAD - WORKING AT REESE8270 DP%=37 : GOTO 8360A ! OVERHEAD - WORKING AWAY8280 DP%=38 : GOTO 83601" ! OVERHEAD - PAID BUT NOT WORKING8290 DP%=39 : GOTO 8360D ! SMALL USERS$8340 IF D2& < 1 OR D2& > 6 THEN 8350 ELSE DP%=39+D2& : GOTO 8360 8350 DP%=-1!8360 ON ERROR GOTO 0 : RETURNGOTO 8360 ! RAD ONC%8250 IF D2& < 1 OR D2& > 13 THEN 8350P ELSE DP%=23+D2& : GOTO 8360 ! OVERHEAD$8260 IF D2& < 1 OR D2& > 9 THEN 8350 ELSE ON D2&2 GOTO 8270,8270,8280,8290,8290,8290,8270,82710 ! PULAVERAG20 DIM I$[100]V,F$[32]V!30 INPUT "INPUT FILE NAME ",F$ : OPEN #4,F$+"/LN:100/RO/EN:110"!40 INPUT "OUTPUT FILE NAME ",F$ : OPEN #5,F$+"/LN:100/WR"50 INPUT LINE #4,I$860 IF POS(I$,"BILL FOR FISCAL")>0 THEN DA=POS(I$,"--") : PRINT #5,SBS$(I$,DA+3).70 IF POS(I$,"TOTAL HOURS")>0 THEN PRINT #5,I$+80 IF POS(I$,"$ CHARGE")>0 THEN PRINT #5,I$*90 IF POS(I$,"TOTAL $")>0 THEN PRINT #5,I$ 100 GOTO 50 110 CLOSE120 EXIT500 ! PURGE.BAS5600 ! PURGES/DELETES EXCESS FILES IN CERTAIN ACCOUNTS$700 ! (MOSTLY HOSTILE USER ACCOUNTS)800 S=0900 CALL "SPAWNB"("SDV DP1:",S)61000 CALL "SPAWNB"("PIP [40,42]*.*/PU/NM",S) ! DEBRA91100 CALL "SPAWNB"("PIP [102,5]POLOG.*/PU/NM",S) ! POLOG91200 CALL "SPAWNB"("PIP [102,6]POLOG.*/PU/NM",S) ! POLOG:1300 CALL "SPAWNB"("PIP [102,7]ADDRESS.DAT/PU/NM",S) ! PO:1400 CALL "SPAWNB"("PIP [150,150]*.*/PU/NM",S) ! DECMATED1500 CALL "SPAWNB"("PIP LB0:[200,11]STORAGE.TMP;*/DE/NM",S) ! HARVEYA1600 CALL "SPAWNB"("PIP DP1:[200,11]TEMP.DAT;*/DE/NM",S) ! HARVEY0C1700 CALL "SPAWNB"("PIP DP1:[200,11]FOR001.DAT;*/DE/NM",S) ! HARVEYD?1800 CALL "SPAWNB"("PIP [200,11]*.RNO,*.DOC/PU/NM",S) ! HARVEY?1900 CALL "SPAWNB"("PIP [200,13]*.RNO,*.DOC/PU/NM",S) ! RENATEC<2000 CALL "SPAWNB"("PIP [200,22]*.RNO,*.DOC/PU/NM",S) ! SUE72100 CALL "SPAWNB"("PIP [200,23]*.*/PU/NM",S) ! STATSC?2200 CALL "SPAWNB"("PIP [200,24]*.RNO,*.DOC/PU/NM",S) ! EVELYNS=2300 CALL "SPAWNB"("PIP [200,26]POLOG.*/PU/NM",S) ! RO POLOGC?3000 CALL "SPAWNB"("PIP [200,27]*.RNO,*.DOC/PU/NM",S) ! ANTHEA0A3200 CALL "SPAWNB"("PIP [200,33]*.RNO,*.DOC/PU/NM",S) ! D. EVANS883300 CALL "SPAWNB"("PIP [200,50]*.RPT/PU/NM",S) ! ROSA83500 CALL "SPAWNB"("PIP [212,100]*.*/PU/NM",S) ! KEITH:3600 CALL "SPAWNB"("PIP [212,214]*.*/PU/NM",S) ! MIKE W.B3700 CALL "SPAWNB"("PIP [213,100]TEMPNAME.TMP;*/DE/NM",S) ! OPHTHA93800 CALL "SPAWNB"("PIP [231,100]*.*/PU/NM",S) ! NUCMED 93900 CALL "SPAWNB"("PIP [231,101]*.*/PU/NM",S) ! NUCLABSB5000 CALL "SPAWNB"("PIP [231,102]TEMPNAME.TMP;*/DE/NM",S) ! NUCSCN<5100 CALL "SPAWNB"("PIP [231,102]*.DAT;*/DE/NM",S) ! NUCSCN:5200 CALL "SPAWNB"("PIP [240,100]*.TMP/PU/NM",S) ! INFDIS:5300 CALL "SPAWNB"("PIP [240,100]*.SRT/PU/NM",S) ! INFDIS:5400 CALL "SPAWNB"("PIP [240,100]*.STP/PU/NM",S) ! INFDIS7800 ! GOTO 900097900 DA=DCEN(DAT$(0)) : WE=DA-INT(DA/7)*7 ! DAY OF WEEKP ! 0=SUNDAY ...8000 IF WE=6 THENP= CALL "SPAWNB"("PIP [200,15]LEVEL123.DAT;*/DE/NM",S) ! RADONCM8100 IF WE=6 THEN08 CALL "SPAWNB"("PIP [240,100]*.PRT;*/DE/NM",S) ! INFDIS 9000 EXIT0 CALL "SPAWNB"("PIP [231,102]*.DAT;*/DE/NM",S) ! NUCSCN:5200 CALL "SPAWNB"("PIP [240,100]*.TMP/PU/NM",S) ! INFDIS:5300 CALL "SPAWNB"("PIP [240,100]*.SRT/PU/NM",S) ! INFDIS:5400 CALL "SPAWNB"("PIP [240,100]*.STP/PU/NM",S) ! INFDIS7800 ! GOTO 900097900 DA=DCEN(DAT$(0)) : WE=DA-INT(DA/7)*7 ! DAY OF WEEKP ! 0=SUNDAY ...8000 IF WE=6 THENP= CALL "SPAWNB"("PIP [200,15]LEVEL123.DAT;*/DE/NM",S) ! RADONCM8100 IF WE500 ! PURGE.BAS5600 ! PURGES/DELETES EXCESS FILES IN CERTAIN ACCOUNTS$700 ! (MOSTLY HOSTILE USER ACCOUNTS)800 S=0900 CALL "SPAWNB"("SDV DP1:",S)61000 CALL "SPAWNB"("PIP [40,42]*.*/PU/NM",S) ! DEBRA91100 CALL "SPAWNB"("PIP [102,5]POLOG.*/PU/NM",S) ! POLOG91200 CALL "SPAWNB"("PIP [102,6]POLOG.*/PU/NM",S) ! POLOG:1300 CALL "SPAWNB"("PIP [102,7]ADDRESS.DAT/PU/NM",S) ! PO:1400 CALL "SPAWNB"("PIP [150,150]*.*/PU/NM",S) ! DECMATED1500 CALL "SPAWNB"("PIP LB0:[200,11]STORAGE.TMP;*/DE/NM",S00rss) ! HARVEYA1600 CALL "SPAWNB"("PIP DP1:[200,11]TEMP.DAT;*/DE/NM",S) ! HARVEY0C1700 CALL "SPAWNB"("PIP DP1:[200,11]FOR001.DAT;*/DE/NM",S) ! HARVEYD?1800 CALL "SPAWNB"("PIP [200,11]*.RNO,*.DOC/PU/NM",S) ! HARVEY?1900 CALL "SPAWNB"("PIP [200,13]*.RNO,*.DOC/PU/NM",S) ! RENATEC<2000 CALL "SPAWNB"("PIP [200,22]*.RNO,*.DOC/PU/NM",S) ! SUE72100 CALL "SPAWNB"("PIP [200,23]*.*/PU/NM",S) ! STATSC?2200 CALL "SPAWNB"("PIP [200,24]*.RNO,*.DOC/PU/NM",S) ! EVELYNS=2300 CALL "SPAWNB"("PIP [200,26]POLOG.*/PU/NM",S) ! RO POLOGC?3000 CALL "SPAWNB"("PIP [200,27]*.RNO,*.DOC/PU/NM",S) ! ANTHEA0A3200 CALL "SPAWNB"("PIP [200,33]*.RNO,*.DOC/PU/NM",S) ! D. EVANS883300 CALL "SPAWNB"("PIP [200,50]*.RPT/PU/NM",S) ! ROSA83500 CALL "SPAWNB"("PIP [212,100]*.*/PU/NM",S) ! KEITH:3600 CALL "SPAWNB"("PIP [212,103]*.*/PU/NM",S) ! DICK C.:3700 CALL "SPAWNB"("PIP [212,104]*.*/PU/NM",S) ! MIKE W.B3800 CALL "SPAWNB"("PIP [213,100]TEMPNAME.TMP;*/DE/NM",S) ! OPHTHA93900 CALL "SPAWNB"("PIP [231,100]*.*/PU/NM",S) ! NUCMEDS94000 CALL "SPAWNB"("PIP [231,101]*.*/PU/NM",S) ! NUCLAB/B5000 CALL "SPAWNB"("PIP [231,102]TEMPNAME.TMP;*/DE/NM",S) ! NUCSCN<5100 CALL "SPAWNB"("PIP [231,102]*.DAT;*/DE/NM",S) ! NUCSCN:5200 CALL "SPAWNB"("PIP [240,100]*.TMP/PU/NM",S) ! INFDIS:5300 CALL "SPAWNB"("PIP [240,100]*.SRT/PU/NM",S) ! INFDIS:5400 CALL "SPAWNB"("PIP [240,100]*.STP/PU/NM",S) ! INFDIS7800 ! GOTO 900097900 DA=DCEN(DAT$(0)) : WE=DA-INT(DA/7)*7 ! DAY OF WEEKP ! 0=SUNDAY ...8000 IF WE=6 THENP= CALL "SPAWNB"("PIP [200,15]LEVEL123.DAT;*/DE/NM",S) ! RADONCM8100 IF WE=6 THEN08 CALL "SPAWNB"("PIP [240,100]*.PRT;*/DE/NM",S) ! INFDIS 9000 EXIT0 CALL "SPAWNB"("PIP [231,102]*.DAT;*/DE/NM",S) ! NUCSCN:5200 CALL "SPAWNB"("PIP [240,100]*.TMP/PU/NM",S) ! INFDIS:5300 CALL "SPAWNB"("PIP [240,100]*.SRT/PU/NM",S) ! INFDIS:5400 CALL "SPAWNB"("PIP [240,100]*.STP/PU/NM",S) ! INFDIS7800 ! GOTO 900097900 DA=DCEN(DAT$(0)) : WE=DA-INT(DA/7)*7 ! DAY OF WEEKP ! 0=SUNDAY ...8000 IF WE=6 THENP= CALL "SPAWNB"10 ! SEXAMINE.BAS80 DIM N$[32]V,R$[52],Y$[2] 100 ER=0 :* CALL "SPAWNB"("SRD STO.LST=/SE:*.STO",ER)@140 OPEN #4,"STO.LST/RO" : IF END #4 THEN 500 : INPUT LINE #4,N$7160 INPUT LINE #4,N$ : N$=TRM$(SBS$(N$,3,9)) : PRINT N$!180 OPEN #8,N$+".STO/RN/LN:52/RO" 200 N8=NRC(8) : IF N8<1 THEN 320 220 N7=N8-10 : IF N7<6 THEN N7=6240 FOR I=N7 TO N8260 INPUT LINE #8@I,R$ 280 PRINT R$ 300 NEXT I 320 CLOSE 8 400 GOTO 160500 CLOSE : EXIT$10 ! program to show mail forwarding20 dim in$[80]v(30 ! search once to find forwarding info-40 open #3, "WHODID.LST" : if end #3 then 10050 input line #3, in$60 if len(in$)<26 then 50A70 print sbs$(in$,1,12);" is being forwarded to ";sbs$(in$,26,12) 80 goto 50 100 close110 exit>10 ! PROGRAM TO CALC STORAGE FOR ALL UIC'S AND FLAG THOSE WITH15 ! EXCESS BLOCK USAGE920 DIM L$[132],UI$[9]V,UN$[7]V,L1$[80]V,L2$[80]V,L3$[80]V%100 ! GENERATE FILE WITH TOTAL BLOCKS105 B=0+110 CALL "SPAWNB"("PIP STO.TMP=[*,*]/TB",B)1120 IF B>0 THEN CALL "SPAWNB"("PIP STO.TMP/PU",B)140 OPEN #3, "STO.LIM/RO"145 IF END #3 THEN 400 150 OPEN #4, "STO.TMP/RO/LN:132"155 IF END #4 THEN 5003156 PRINT CHR$(12);" "," BLOCKS"," BLOCKS"," TOTAL"*157 PRINT "UIC","USED","ALLOCATED","FILES" 158 PRINT!200 ! READ ALLOCATION & REPORT205 INPUT LINE #4, L$I1207 J=POS(L$,"[") : K=POS(L$,"]") : C=POS(L$,",")VJ210 UI$=SEG$(L$,J,K) : UN=VAL(SEG$(L$,J+1,C-1)) : GN=VAL(SEG$(L$,C+1,K-1))215 INPUT LINE #4,L$/220 L$=SBS$(L$,14) : ! TRIM OFF LEADING GARBAGEE"230 L1$=PIECE$(L$," BLOCKS IN ",1)"240 L3$=PIECE$(L$," BLOCKS IN ",2)250 L3$=PIECE$(L3$," FILE",1)"-260 L2$=PIECE$(L1$,"/",2) ! BLOCKS ALLOCATED (270 L1$=PIECE$(L1$,"/",1) ! BLOCKS USED+275 L1=VAL(L1$) : L2=VAL(L2$) : L3=VAL(L3$)I280 PRIN00\W*T UI$,L1,L2,L3,E300 ! CHECK FOR LIMITS310 RESTORE #3A320 INPUT #3, U,G,W,E :! READ USER, GROUP, WARNING & ERROR LIMITS=0330 IF U>UN THEN 400 : !DONE IF PAST USER NUMBER8340 IF UGN THEN 400 : !DONE IF SAME GROUP BUT USER NUMBER GREATER4E360 IF GE THEN PRINT "ERROR"; : GOTO 400!390 IF L2>W THEN PRINT "WARNING";L 400 PRINTV 410 GOTO 200 500 CLOSE1%510 L$=PIECE$(L$,"GRAND TOTAL OF ",2)E"530 L1$=PIECE$(L$," BLOCKS IN ",1)"540 L3$=PIECE$(L$," BLOCKS IN ",2)550 L3$=PIECE$(L3$," FILE",1)O-560 L2$=PIECE$(L1$,"/",2) ! BLOCKS ALLOCATED!(570 L1$=PIECE$(L1$,"/",1) ! BLOCKS USED+575 L1=VAL(L1$) : L2=VAL(L2$) : L3=VAL(L3$)N$580 PRINT : PRINT "TOTALS",L1,L2,L3;590 L$=PIECE$(L$,"FILES IN ",2)E600 L=VAL(PIECE$(L$,".")) +610 PRINT " IN ";FRMT$(L,3);" DIRECTORIES""620 EXIT00!390 IF L2>W THEN PRINT "WARNING";L 400 PRINTV 410 GOTO 200 50100 ! LOGCOR.BAS' ! TO ENABLE CORRECTION OF ".STO" FILES) ! FROM DAMAGE CAUSED BY INCORRECT SYSTEM ! TIME SETTING OR OTHER ERRORS120 DIM L$[52],N$[50]V,A$[52]V140 IF END THEN 480160 INPUT "USER ";N$$180 OPEN #3,N$+".STO/MO/RN/SH/LN:52" 200 N=NRC(3)220 PRINT "TOTAL RECORDS =";N240 IF END THEN 460260 INPUT "RECORD #";I280 IF I < 1 OR I > N THEN 260 ELSE INPUT LINE #3@I,L$7300 FOR J=1 TO 6 : PRINT "1234567890"; : NEXT J : PRINT 320 PRINT L$340 IF END THEN 240360 INPUT "COL #, STRING ";C,A$S380 CALL "INSTRG"(L$,A$,C)400 INPUT ""+L$+"! OK";A$A 420 IF POS(A$,"Y") <> 1 THEN 260 ELSE PRINT #3@I,L$R 440 GOTO 260460 CLOSE 3 : GOTO 140480 CLOSE 3 : EXIT480160 INPUT "USER ";N$$180 OPEN #3,N$+".STO/MO/RN/SH/LN:52" 200 N=NRC(3)220 PRINT "TOTAL RECORDS =";N240 IF END THEN 460260 INPUT "RECORD #";I280 IF I < 1 OR I > N THEN 260 ELSE INPUT LINE #3@I,L$7300 FOR J=1 TO 6 : PRINT "1234567890"; : NEXT J : PRINT 320 PRINT L$340 IF END THEN 240360 INPUT "COL10 DIM I$[52],J$[8]V20 OPEN #3,"STO.LST/EN:200"30 INPUT LINE #3,J$ : PRINT J$ 40 OPEN #4,J$+".STO/RN/LN:52/MO"50 FOR J=NRC(4)-5 TO NRC(4)60 IF J<0 THEN 11070 INPUT LINE #4@J,I$E80 IF LEFT(I$,9)="14-NOV-82" THEN CALL "INSTRG"(I$,"15-NOV-82",1,9) : PRINT I$E90 IF LEFT(I$,9)="12-DEC-82" THEN CALL "INSTRG"(I$,"14-NOV-82",1,9) : PRINT I$100 PRINT #4@J,I$ 110 NEXT J 120 CLOSE 4 130 GOTO 30 200 CLOSE210 EXIT10 ! PROGRAM DIRLOG.BAS/ ! TO BE RUN DAILY FOR ACCOUNTING OF DISK USAGEA20 DIM N$[40]V,L$[80]V,L1$[80]V,L2$[80]V,L3$[80]V,AC$[9]V,US$[9]V30 S=0 : US=0 : AL=0 : FI=040 CALL "SPAWNB"("SDV DP1:",S)!50 OPEN #3,"DIRLOG.DAT/RO/EN:360"60 ON ERROR GOTO 32070 OPEN #4,"TEMP.DIR/RO"80 ON ERROR GOTO 0 : CLOSE 4'90 CALL "SPAWNB"("PIP TEMP.DIR;*/DE",S)100 INPUT LINE #3,L$*110 AC$=PIECE$(L$,";",1) : ! GET ACCOUNT #*120 US$=PIECE$(L$,";",2) : ! GET USER NAME!130 L2$="PIP TEMP.DIR="+AC$+"/TB"+140 CALL "SPAWNB"(L2$,S) : IF S<>1 THEN 100D150 OPEN #4,"TEMP.DIR/RO" '160 INPUT LINE #4,L$ : INPUT LINE #4,L$2/170 L$=SBS$(L$,14) : ! TRIM OFF LEADING GARBAGE "180 L1$=PIECE$(L$," blocks in ",1)"190 L3$=PIECE$(L$," blocks in ",2)200 L3$=PIECE$(L3$," file",1),210 L2$=PIECE$(L1$,"/",2) ! BLOCKS ALLOCATED'220 L1$=PIECE$(L1$,"/",1) ! BLOCKS USED* 230 CLOSE 4 240 ON ERROR GOTO 600C"250 OPEN #5,US$+".STO/FX/AP/LN:52"260 ON ERROR GOTO 0;^270 PRINT #5,RJS$(DDAT$(0),9)+RJS$(TIM$(0),9)+RJS$(L1$,8)+RJS$(L2$,8)+RJS$(L3$,8)+RJS$(AC$,10) 280 CLOSE 5 290 US=US+VAL(L1$):  AL=AL+VAL(L2$): FI=FI+VAL(L3$) (300 CALL "SPAWNB"("PIP TEMP.DIR;*/DE",S) 310 GOTO 100*320 ! ROUTINE FOR HANDLING OF OPEN FAILURE330 ON ERROR GOTO 0i340 IF FCS(0)=-26 THEN 100 350 ! STOP 360 CLOSECC370 ! ********* DO DISK BACKUP, LOG TOTALS, ETC ********* !U380 PRINT CHR$(12)5390 PRINT "TOTAL OF";US;"/";AL;"BLOCKS IN";FI;"FILES"5400 CALL "SPAWNB"("TIM",S)1410 CALL "SPAWNB"("BA2 LB:[1,100]NEWTTYLOG/RN",S)$.420 00rssCALL "SPAWNB"("BA2 LB:[1,1]BACKBOTH/RN",S),430 CALL "SPAWNB"("BA2 LB:[1,1]VERIFY/RN",S)0440 CALL "SPAWNB"("BA2 DP1:[1,1]HELLOSTUF/RN",S)450 CALL "SPAWNB"("TIM",S).460 ! CALL "SPAWNB"("BA2 DP1:[1,100]DSM/RN",S)470 ! CALL "SPAWNB"("TIM",S).480 CALL "SPAWNB"("BA2 DP1:[1,100]PURGE/RN",S)1490 CALL "SPAWNB"("BA2 DP1:[202,200]SPELLY/RN",S) 580 PRINT CHR$(12)590 EXIT=600 ! ROUTINE TO CREATE NEW STORAGE LOG FILE (EXTENSION .STO)"; ! IF ONE DOES NOT EXIST. THUS ALL ONE NEEDS TO DO IN ORDERR9 ! TO START A NEW USER IS TO ENTER HIS INFO IN DIRLOG.DAT 610 ON ERROR GOTO 0:620 IF FCS(0) <> -26 THEN STOP& ELSE OPEN #5,US$+".STO/FX/WR/LN:52" : GOTO 270NB"("TIM",S).460 ! CALL "SPAWNB"("BA2 DP1:[1,100]DSM/RN",S)470 ! CALL "SPAWNB"("TIM",S).480 CALL "SPAWNB"("BA2 DP1:[1,100]PURGE/RN",S)1490 CALL "SPAWNB"("BA2 DP1:[202,200]SPELLY/RN",S) 580 PRINT CHR$(12)590 EXIT=600 ! ROUTINE TO CREATE NEW STORAGE LOG FILE (EXTENSION .STO)"; ! IF ONE DOES NOT EXIST. THUS ALL ONE NEEDS TO DO IN ORDERR9 ! TO STAR 10 ! LOGTIME100 DIM R$[56],U$[32]V,D$[10]V120 INPUT "USER NAME ",U$ :* INPUT "STARTING DATE ",D$ : DB=DCEN(D$) :( INPUT "ENDING DATE ",D$ : DE=DCEN(D$))140 OPEN #4,U$+".LOG/FX/LN:56/RO/EN:1000",160 FOR I=1 TO 5 : INPUT LINE #4,R$ : NEXT I180 S7=25200/60 : T7=0 : SN=43200/60 : TN=0 : S5=61200/60 : T5=0200 INPUT LINE #4,R$ :/ D1=DCEN(SBS$(R$,1,8)) : D2=DCEN(SBS$(R$,20,8))220 IF D2DE THEN 1000)230 Q1=D1-INT(D1/7)*7 : Q2=D2-INT(D2/7)*77240 S1=SEC(SBS$(R$,10,8))/60 : S2=SEC(SBS$(R$,29,8))/600(260 IF D1=D2 THEN GOSUB 2000 : GOTO 900(280 IF D1>D2 THEN GOSUB 3000 : GOTO 900300 DD=D2-D1 : O1=S1 : O2=S2)320 S2=86399/60 : GOSUB 2000 ! FIRST DAYE340 S1=1 : IF DD=1 THEN 420I360 FOR J=1 TO DD-1380 GOSUB 2000 ! MIDDLE DAYS= 400 NEXT J=#420 S2=O2 : GOSUB 2000 ! LAST DAY 440 IF Q1<>5 THEN 900S460 IF Q2<>1 THEN 900S 480 PRINT R$500 PRINT T7,TN,T5520 T7=T7-600 :2 TN=TN-600 : T5=T5-16801540 PRINT T7,TN,T5 900 GOTO 200 1000 CLOSE 1 1020 PRINT :E6 PRINT " MORNING HOURS ";FRMT$(T7/60,7,1) :6 PRINT " AFTERNOON HOURS ";FRMT$(TN/60,7,1) :6 PRINT " EVENING HOURS ";FRMT$(T5/60,7,1) : PRINT 1900 EXIT (2000 IF S1>S2 THEN GOSUB 3000 : RETURN 2010 DS=(S2-S1) 02020 IF S2S5 THEN T5=T5+DS : GOTO 213022030 IF S1>=S7 AND S2=SN AND S2S7 THEN 2090 #2060 IF S2=SN AND S2S5 THEN T5=T5+(S7-S1) :V T7=T7+(SN-S7) : TN=TN+(S5-SN) : T5=T5+(S2-S5) : GOTO 21302090 IF S1>SN THEN 21200-2100 IF S2>SN AND S2=S5 THEN T7=T7+(SN-S1) : TN=TN+(S5-SN) : T5=T5+(S2-S5) : GOTO 21302120 TN=TN+(S5-S1) : T5=T5+(S2-S5) : GOTO 2130 2130 RETURN "3000 PRINT "LOGON AFTER LOGOUT" : PRINT R$ : RETURN SN AND S2S5 THEN T5=T5+(S7-S1) :V T7=T7+(SN-S7) : TN=TN+(S5-SN) : T5=T5+(S2-S5) : GOTO 21302090 IF S1>SN THEN 21200-2100 IF S2>SN AND S2=S5 THEN T7=T7+(SN-S1) : TN=TN+(S5-SN) : T5=T5+(S2-S5) : GOTO 21302120 TN=TN+(S5-S1) : T5=T5+(S2-S5) : GOTO 2130 2130 RETURN "3000 PRINT "LOGON AFTER LOGOUT"2000 ! TIMCOR.BAS: ! TO CORRECT LOGGED ON TIME AFTER CHANGING A DATE OR TIME%2020 DIM A$[56],N$[20]V,B$[56],C$[12]2040 INPUT "USER ";N$%2060 OPEN #3,N$+".LOG/MO/RN/SH/LN:56" 2080 N=NRC(3)2100 PRINT "TOTAL RECORDS =";N2120 INPUT "RECORD # ",RN 2140 DF=02160 INPUT LINE #3@RN,A$2180 ! CALC CORRECT TIME.2200 DA=DCEN(SBS$(A$,20,8))-DCEN(SBS$(A$,1,8))-2220 HR=VAL(SBS$(A$,29,2))-VAL(SBS$(A$,10,2))-2240 MI=VAL(SBS$(A$,32,2))-VAL(SBS$(A$,13,2))-2260 SE=VAL(SBS$(A$,35,2))-VAL(SBS$(A$,16,00\W*2))0$2280 IF SE<0 THEN SE=SE+60 : MI=MI-1$2300 IF MI<0 THEN MI=MI+60 : HR=HR-1$2320 IF HR<0 THEN HR=HR+24 : DA=DA-172340 IF DA<0 THEN DA=31 :! NOT IMPORTANT IF THIS LONGHC2360 C$=FRMT$(DA,3)+":"+FRMT$(HR,2)+":"+FRMT$(MI,2)+":"+FRMT$(SE,2)"2380 FOR J=1 TO 30K2400 IF SBS$(C$,J*3+2,1)=" " THEN C$=SEG$(C$,1,J*3+1)+"0"+SEG$(C$,J*3+3,12)( 2420 NEXT JN'2440 B$=SEG$(A$,1,38)+C$+SEG$(A$,51,56))02460 PRINT #3@RN,B$ : ! PRINT CORRECTED RECORD 2480 PRINT ,2500 PRINT "CORRECTED ";A$22520 PRINT "TO READ ";B$I2540 CLOSE 3 : GOTO 2040 I-1$2300 IF MI<0 THEN MI=MI+60 : HR=HR-1$2320 IF HR<0 THEN HR=HR+24 : DA=DA-172340 IF DA<0 THEN DA=31 :! NOT IMPORTANT IF THIS LONGHC2360 C$=FRMT$(DA,3)+":"+FRMT$(HR,2)+":"+FRMT$(MI,2)+":"+FRMT$(SE,2)"2380 FOR J=1 TO 30K2400 IF SBS$(C$,J*3+2,1)=" " THEN C$=SEG$(C$,1,J*3+1)+"0"+SEG$(C$,J*3+3,12)( 2420 NEXT JN'2440 B$=SEG$(A$,1,38)+C$+SEG$(A$,51,56))02460 PRINT #3@RN,B$ : ! PRINT CORRECTED RECORD 2480 PRINT ,2500 PRINT "CORRECTED ";A$22520 PRINT "TO R&10 ! program to cancel mail forwarding20 dim fo$[14],in$[80]v25 set upper on230 input "User name to cancel forwarding for ";fo$(40 ! search once to find forwarding info-50 open #3, "WHODID.LST" : if end #3 then 15060 open #4, "WHODID.LST/WR"70 f1=080 input line #3, in$>100 if pos(in$,fo$)=1 then let f1=1 : print #4, sbs$(in$,1,25))110 if pos(in$,fo$)<>1 then print #4, in$ 120 goto 80C150 if f1=0 then print "User ";fo$;"not found to cancel forwarding" 170 close.180 b=0 : call "SPAWNB"("PIP WHODID.LST/PU",b)190 exit20 dim fo$[14],in$[80]v25 set upper on230 input "User name to cancel forwarding for ";fo$(40 ! search once to find forwarding info-50 open #3, "WHODID.LST" : if end #3 then 15060 open #4, "WHODID.LST/WR"70 f1=080 input line #3, in$>100 if pos(in$,fo$)=1 then let f1=1 : print #4, sbs$(in$,1,25))110 if pos(in$,fo$)<>1 then print #4, in$ 120 goto 80C150 if f1=0 then print "User ";fo$;"not found to cancel forwarding" 170 close.180 b=0 : call "095 !!-100 ! PROGRAM TO ADD USER TO PDSUPF DATA FILE110 DIM #4,DD%(255,31),120 DIM PS$[6],PX%(2),UC$[9],U1$[3]V,U2$[3]V4130 DIM NA%(4),PW%(2),DV$[4],NM$[12],LN$[72]V,NB%(4)/140 ! FORMAT OF PDSUPF RECORD (LENGTH=64 BYTES)150 ! NAME (8 BYTES)160 ! UIC (2 BYTES)*170 ! PASSW (4 BYTES, COMPLEMENT OF RAD50)180 ! BLANK (2 BYTES)190 ! PRIV (2 BYTES);200 ! BLANK (22. BYTES) ACCOUNTING INFORMATION WE DON'T USE$210 ! DEVICE (4 BYTES) IN ASCII XXN:7220 ! BLANK (20. BYTES) BATCH PRI,BATCH PW # TASKS, ETC 230 PRINT "USER NAME ";S 240 INPUT NM$250 FOR I=1 TO 4!260 NB%(I)=AR5(SBS$(NM$,3*I-2,3))U 270 NEXT I1280 OPEN #4,"[1,100]PDSUPF.DAT/FX/BN/LN:64/RN/RO"B 290 MA%=0 300 RE=1310 INPUT #4@RE,FU%,LU%B320 FOR I=FU% TO LU%*330 INPUT #4@I,NA%(1),NA%(2),NA%(3),NA%(4)$340 IF NA%(1)=0 AND MA%=0 THEN MA%=I342 FOR IK=1 TO 4 344 IF NA%(IK)<>NB%(IK) THEN 350 345 NEXT IK %346 PRINT "USER NAME ALREADY IN FILE"1347 RUN "USERSMENU.SYS"S 350 NEXT I355 IF MA%>0 THEN GOTO 440360 ! NO BLANK RECORDS 370 CLOSE 4 F380 LU%=LU%+1 : RE%=LU% : UN%=LU%-FU%+1: ! SET NEW RECORD # AND USER #9390 RN%=2+(UN%-1)/8 : ! SET RECORD # FOR NAMES TABLE AREA/:400 IF RN%32767 THEN U=U-65536 560 UI%=US570 PRINT "ENTER PASSWORD ";580 PS$=" " 590 INPUT PS$D 600 PW%(1)=-1-AR5(SBS$(PS$,1,3)) 610 PW%(2)=-1-AR5(SBS$(PS$,4,3))'620 INPUT "PRIVILEGE WORD (OCTAL) ";UC$O630 PR%=OCT(UC$)'640 INPUT "DEVICE (ASCII 'DDN:') "; DV$)%650 OPEN00rss #4,"[1,100]PDSUPF.DAT/BL/UP"N660 FOR I=1 TO 32#670 DD%(RE%-1,I-1)=DD%(0,I-1)9 680 NEXT I690 FOR I=1 TO 4700 DD%(RE%-1,I-1)=NB%(I)I 710 NEXT I720 DD%(RE%-1,4)=UI%730 DD%(RE%-1,5)=PW%(1) 740 DD%(RE%-1,6)=PW%(2)750 DD%(RE%-1,8)=PR%;760 DD%(RE%-1,20)=ASC(SBS$(DV$,2,1))*256+ASC(SBS$(DV$,1,1)) ;770 DD%(RE%-1,21)=ASC(SBS$(DV$,4,1))*256+ASC(SBS$(DV$,3,1)) 780 DD%(0,1)=LU% 790 CLOSE 42800 RUN "LOGCREATE.SYS"OCTAL) ";UC$O630 PR%=OCT(UC$)'640 INPUT "DEVICE (ASCII 'DDN:') "; DV$)%650 OPEN095 ! PROGRAM USERSDEL.SYS2100 ! PROGRAM TO DELETE USER FROM PDSUPF DATA FILE110 DIM #4,DD%(255,31),120 DIM PS$[6],PX%(2),UC$[9],U1$[3]V,U2$[3]V4130 DIM NA%(4),PW%(2),DV$[4],NB%(4),NM$[12],LN$[72]V/140 ! FORMAT OF PDSUPF RECORD (LENGTH=64 BYTES)150 ! NAME (8 BYTES)160 ! UIC (2 BYTES)*170 ! PASSW (4 BYTES, COMPLEMENT OF RAD50)180 ! BLANK (2 BYTES)190 ! PRIV (2 BYTES);200 ! BLANK (22. BYTES) ACCOUNTING INFORMATION WE DON'T USE$210 ! DEVICE (4 BYTES) IN ASCII XXN:7220 ! BLANK (20. BYTES) BATCH PRI,BATCH PW # TASKS, ETCG230 PRINT "USER NAME ";D 240 INPUT NM$250 FOR I=1 TO 4!260 NB%(I)=AR5(SBS$(NM$,3*I-2,3))U 270 NEXT I1280 OPEN #4,"[1,100]PDSUPF.DAT/FX/BN/LN:64/RN/RO"[290 RE=1300 INPUT #4@RE,FU%,LU% 310 NU=LU%-FU%+1 320 RE=FU%330 FOR NK=1 TO NUi340 INPUT #4@RE,NA%(1),NA%(2),NA%(3),NA%(4),UI%,PW%(1),PW%(2),X%,PR%,A%,B%,C%,D%,E%,F%,G%,H%,I%,J%,K%,DV$350 FOR IK=1 TO 4B 360 IF NA%(IK)<>NB%(IK) GOTO 390 370 NEXT IK 380 GOTO 410 390 RE=RE+1 400 NEXT NKL 402 PRINT "USER NOT IN PDS FILE" 404 GOTO 760A410 PRINT CHR$(12);"USER NAME U I C PWD PRIV. DEVICE"B>420 PRINT R5A$(NA%(1));R5A$(NA%(2));R5A$(NA%(3));R5A$(NA%(4));430 PRINT TAB(14);" "; 440 U=UI%E450 GC=INT(U/256),460 PC=INT(U-256*GC)$470 IF GC<0 THEN GC=GC-OCT("177400")%480 UC$="["+OCT$(GC)+","+OCT$(PC)+"]"%490 PRINT UC$;" ";500 PX%(1)=-1-PW%(1)510 PX%(2)=-1-PW%(2),520 PRINT R5A$(PX%(1));R5A$(PX%(2));TAB(32);530 PRINT OCT$(PR%);TAB(40);DV$O 540 CLOSEE 600 PRINT %680 OPEN #4,"[1,100]PDSUPF.DAT/BL/UP"L*685 ! ZERO FIRST WORD OF ACTUAL UPF RECORD690 DD%(RE-1,0)=0 ,695 ! COMPUTE AND ZERO 4 WORDS OF NAME TABLE700 RN%=2+(RE-FU%)/8 705 DF=RE-FU%;710 RO%=4*8*(DF/8-INT(DF/8))720 FOR I=1 TO 4730 DD%(RN%-1,RO%+I-1)=0 735 NEXT I 740 CLOSE 4=750 PRINT "USER DELETED" 760 CLOSE)770 RUN "USERSMENU.SYS"RINT UC$;" ";500 PX%(1)=-1-PW%(1)510 PX%(2)=-1-PW%(2),520 PRINT R5A$(PX%(1));R5A$(PX%(2));TAB(32);530 PRINT OCT$(PR%);TAB(40);DV$O 540 CLOSEE 600 PRINT %680 OPEN #4,"[05 ! PROGRAM USERSLIST.SYS10 ! PROGRAM TO LIST USERS15 DIM PS$[6],PX%(2),UC$[9]A20 DIM NA%(4),PW%(2),DV$[4] .21 ! FORMAT OF PDSUPF RECORD (LENGTH=64 BYTES)22 ! NAME (8 BYTES)23 ! UIC (2 BYTES))24 ! PASSW (4 BYTES, COMPLEMENT OF RAD50)225 ! BLANK (2 BYTES)26 ! PRIV (2 BYTES):27 ! BLANK (22. BYTES) ACCOUNTING INFORMATION WE DON'T USE#28 ! DEVICE (4 BYTES) IN ASCII XXN:)629 ! BLANK (20. BYTES) BATCH PRI,BATCH PW # TASKS, ETC40 ! FIRST LIST ALL USERS A41 PRINT "PRINT LIST AT? (TI:, LP:, LP1:, ETC (DON'T FORGET :) ";! 42 INPUT PL$45 OPEN #5,PL$+"/WR"750 PRINT #5,SPACE$(10);"LIST OF ALL CURRENT USER NAMES"A 51 PRINT #5 060 OPEN #4,"[1,100]PDSUPF.DAT/BN/LN:64/RN/RO/SH"62 RE=1 70 INPUT #4@RE,FU%,LU%75 NU=LU%-FU%+1FJ80 PRINT #5,SPACE$(10);"TOTAL OF ";NU;" USERS (INCLUDING AVAILABLE HOLES)" 82 PRINT #5NE85 PRINT #5,SPACE$(10);"USER NAME U I C PWD PRIV. DEVICE"K 87 PRINT #5 92 RE=FU%T94 FOR IC=1 TO NU_100 INPUT #4@RE,NA%(1),NA%(2),NA%(3),NA%(4),UI%,PW%(1),PW%(2),X%,PR%,A,B,C,D,E,X%,DV$,F,G,H,I,J2F105 IF NA%(1)=0 THEN PRINT #5,SPACE$(10);"**AVAIL. HOLE**" : GOTO 200O110 PRINT #5,IC;SPACE$(10);R5A$(NA%(1));R5A$(NA%(2));R5A$(NA%(3));R5A$(NA%(4));"115 PRINT #5,TAB(24);" ";F 117 U=UI%N121 GC=INT(U/256)I122 PC=INT(U-256*GC)$123 IF GC<0 THEN GC=GC-OCT("177400")%124 UC$="["+OCT$(GC)+","+OCT$(PC)+"]"C125 PRINT #5,UC$;" "; 130 PX%(1)=-1-PW%(1)140 PX%(2)=-1-PW%(2)/150 PRINT #5,R5A$(PX%(1));R5A$(PX%(2));TAB(42);,"160 PRINT #5,OCT$(PR%);TAB(50);DV$ 200 00\W*RE=RE+1P 250 NEXT ICX 300 CLOSE 310 RUN "USERSMENU.SYS"N PRINT #5,SPACE$(10);"**AVAIL. HOLE**" : GOTO 200O110 PRINT #5,IC;SPACE$(10);R5A$(NA%(1));R5A$(NA%(2));R5A$(NA%(3));R5A$(NA%(4));"115 PRINT #5,TAB(24);" ";F 117 U=UI%N121 GC=INT(U/256)I122 PC=INT(U-256*GC)$123 IF GC<0 THEN GC=GC-OCT("177400")%124 UC$="["+OCT$(GC)+","+OCT$(PC)+"]"C125 PRINT #5,UC$;" "; 130 PX%(1)=-1-PW%(1)140 PX%(2)=-1-PW%(2)/150 PRINT #5,R5A$(PX%(1));R5A$(PX%(2));TAB(42);,"160 PRINT #5,OCT$(PR%);TAB(50);DV$ 200 (10 ! MENU PROGRAM FOR ALL USERS PROGRAMS20 DIM ZZ$[14]V(6)50 ZZ$(1)="USERSADD"60 ZZ$(2)="USERSDEL"70 ZZ$(3)="USERSLIST"80 ZZ$(4)="USERSUPD"85 ZZ$(5)="LOGCREATE"90 ZZ$(6)="USERSSORT"5100 PRINT "OPTIONS FOR USER PROFILE MAINTENANCE ARE:" 105 PRINT110 PRINT "ADD NEW USER (1)"120 PRINT "DELETE USER (2)"130 PRINT "LIST ALL USERS (3)"140 PRINT "UPDATE ONE USER (4)"145 PRINT "CREATE LOG FILE (5)"146 PRINT "SORT FILE (6)"147 PRINT "EXIT (7)" 150 PRINT "OPTION (1-7) "; 160 INPUT AS162 IF A=7 THEN EXIT170 IF A<1 OR A>6 THEN GOTO 100U180 RUN ZZ$(A)+".SYS"ERSLIST"80 ZZ$(4)="USERSUPD"85 ZZ$(5)="LOGCREATE"90 ZZ$(6)="USERSSORT"5100 PRINT "OPTIONS FOR USER PROFILE MAINTENANCE ARE:" 105 PRINT110 PRINT "ADD NEW USER (1)"120 PRINT "DELETE USER (2)"130 PRINT "LIST ALL USERS (3)"140 PRINT "UPDATE ONE USER (4)"145 PRINT "CREATE LOG FILE (5)"146 PRINT "SORT FILE (6)"147 PRINT "EXIT (7)" 150 5 ! PROGRAM USERSSORT.SYS,10 ! PROGRAM TO LIST USERS AND SORT BY NAMES-20 DIM NA%(4),RE$[64],NA$[12],DR$[60],RF$[76].21 ! FORMAT OF PDSUPF RECORD (LENGTH=64 BYTES)22 ! NAME (8 BYTES)23 ! UIC (2 BYTES))24 ! PASSW (4 BYTES, COMPLEMENT OF RAD50)25 ! BLANK (2 BYTES)26 ! PRIV (2 BYTES):27 ! BLANK (22. BYTES) ACCOUNTING INFORMATION WE DON'T USE#28 ! DEVICE (4 BYTES) IN ASCII XXN:629 ! BLANK (20. BYTES) BATCH PRI,BATCH PW # TASKS, ETC40 ! FIRST LIST ALL USERSH45 OPEN #5, "PDSUPF.SRN/FX/LN:76/WR" : ! OUT IS ASCII NAME + FULL RECORD060 OPEN #4,"[1,100]PDSUPF.DAT/BN/LN:64/RN/RO/SH"62 RE=1,70 INPUT #4@RE,FU%,LU%,DR$75 NU=LU%-FU%+1D 92 RE=FU% 93 NX=0294 FOR IC=1 TO NU?100 INPUT #4@RE,NA%(1),NA%(2),NA%(3),NA%(4) : ! RAD50 NAME ONLY9101 INPUT #4@RE,RE$ : ! AND THEN INPUT WHOLE RECORD -105 IF NA%(1)=0 THEN 115 : ! IGNORE IF A HOLE!;110 NA$=R5A$(NA%(1))+R5A$(NA%(2))+R5A$(NA%(3))+R5A$(NA%(4))H112 PRINT #5,NA$;RE$ 113 NX=NX+1R 115 RE=RE+1S 120 NEXT IC 130 CLOSE 135 B=0:139 ! DO TAG SORT OF NAMESC140 CALL "SPAWNB"("SRT PDSUPF.SRN=PDSUPF.SRN/SI:76/PR:R/KE:1.12",B)R$200 ! NOW CAN CREATE NEW PDSUPF FILE*210 OPEN #4,"PDSUPF.DAT/BN/LN:64/RN/RO/SH"'215 OPEN #5,"PDSUPF.NEW/BN/LN:64/WR/FX",*220 FOR I=1 TO FU%-1 : ! COPY FIXED PART225 INPUT #4@I,RE$230 PRINT #5,RE$ 245 NEXT I 250 CLOSE 41$260 OPEN #3,"PDSUPF.SRN/BN/LN:76/RN" 265 N=NRC(3)270 FOR I=1 TO N275 INPUT #3@I,NA$,RF$280 PRINT #5,SBS$(RF$,13,64) 285 NEXT I 290 CLOSE 8300 ! NOW CAN OPEN NEW FILE AS VIRTUAL TO REWRITE NAMES310 OPEN #4,"PDSUPF.NEW/BL/UP"315 DIM #4,DD%(255,31).320 LU%=FU%+N-1 : ! UPDATE LAST USER POINTER325 DD%(0,1)=LU%330 FOR I=1 TO FU%-2335 FOR J=0 TO 31P0340 DD%(I,J)=0 : !ZERO ALL NAMES IN NAME TABLE 345 NEXT J 350 NEXT I355 FOR I=1 TO N+360 RN=INT((I-1)/8)+1 : WN=4*(I-(RN-1)*8)-4S365 FOR J=1 TO 4#370 DD%(RN,WN+J-1)=DD%(I+FU%-2,J-1)) 375 NEXT J 380 NEXT I 390 CLOSEN*400 CALL "SPAWNB"("PIP PDSUPF.SRN;*/DE",B)(405 CALL "SPAWNB"("PIP PDSUPF.NEW/PU",B)"410 PRINT "NEW FILE IS PDSUPF.NEW"420 RUN "USERSMENU.SYS"UP"315 DIM #4,DD%(255,31).320 LU%=FU%+N-1 : ! UPDATE LAST USER POINTER325 DD%(0,1)=LU%330 FOR I=1 TO FU%-2335 FOR J=0 TO 31P0340 DD%(I,J)=0 : !ZERO ALL NAMES IN NAME TABLE 345 NEXT J 350 NEXT I355 FOR I=1 TO N+360 RN=INT((I-1)/8)+1 : WN=4*(I-(RN-1)*8)-4S365 FOR J=1 TO 4#370 DD%(RN,WN+J-1)=DD%(I+FU%-2,J-1)) 375 NEXT J 380 NEXT I 390 CLOSEN*400 CALL "SPAWNB"("PIP PDSUPF.SRN;*/DE",B)(405 CALL "SPAWNB"("PIP PDSUPF.NEW/PU",B)"4100‹ȋrss095 ! PROGRAM USERSUPD.SYS4100 ! PROGRAM TO LOOK AT AND MODIFY PDSUPF DATA FILE:109 ! CURRENTLY SET AT 64 USERS BY FOLLOWING DIM STATEMENT110 DIM #4,DD%(144,31),120 DIM PS$[6],PX%(2),UC$[9],U1$[3]V,U2$[3]V4130 DIM NA%(4),PW%(2),DV$[4],NB%(4),NM$[12],LN$[72]V/140 ! FORMAT OF PDSUPF RECORD (LENGTH=64 BYTES)150 ! NAME (8 BYTES)160 ! UIC (2 BYTES)*170 ! PASSW (4 BYTES, COMPLEMENT OF RAD50)180 ! BLANK (2 BYTES)190 ! PRIV (2 BYTES);200 ! BLANK (22. BYTES) ACCOUNTING INFORMATION WE DON'T USE $210 ! DEVICE (4 BYTES) IN ASCII XXN:7220 ! BLANK (20. BYTES) BATCH PRI,BATCH PW # TASKS, ETCE230 PRINT "USER NAME ";G 240 INPUT NM$250 FOR I=1 TO 4!260 NB%(I)=AR5(SBS$(NM$,3*I-2,3))U 270 NEXT I1280 OPEN #4,"[1,100]PDSUPF.DAT/FX/BN/LN:64/RN/RO"[290 RE=1300 INPUT #4@RE,FU%,LU% 310 NU=LU%-FU%+1 320 RE=FU%330 FOR NK=1 TO NUi340 INPUT #4@RE,NA%(1),NA%(2),NA%(3),NA%(4),UI%,PW%(1),PW%(2),X%,PR%,A%,B%,C%,D%,E%,F%,G%,H%,I%,J%,K%,DV$350 FOR IK=1 TO 4B 360 IF NA%(IK)<>NB%(IK) GOTO 390 370 NEXT IK 380 GOTO 410 390 RE=RE+1 400 NEXT NKL401 PRINT "USER NOT FOUND"402 RUN "USERSMENU.SYS" A410 PRINT CHR$(12);"USER NAME U I C PWD PRIV. DEVICE"A>420 PRINT R5A$(NA%(1));R5A$(NA%(2));R5A$(NA%(3));R5A$(NA%(4));430 PRINT TAB(14);" "; 440 U=UI%0450 GC=INT(U/256)U460 PC=INT(U-256*GC)$470 IF GC<0 THEN GC=GC-OCT("177400")%480 UC$="["+OCT$(GC)+","+OCT$(PC)+"]"I490 PRINT UC$;" ";500 PX%(1)=-1-PW%(1)510 PX%(2)=-1-PW%(2),520 PRINT R5A$(PX%(1));R5A$(PX%(2));TAB(32);530 PRINT OCT$(PR%);TAB(40);DV$%540 OPEN #3,"LB:[11,13]PRICHK.DAT/RO"U 550 PRINT 560 FOR I=1 TO 2 570 INPUT LINE #3,LN$: PRINT LN$ 575 NEXT I 580 IT=PR%581 FOR I=1 TO 16AF582 IU=IT-2*INT(IT/2) : IT=INT(IT/2) : IF IT<0 THEN IT=INT(32767+IT+1)/583 IF IU=1 THEN PRINT "* "; ELSE PRINT " "; 584 INPUT LINE #3,LN$: PRINT LN$ 585 NEXT I590 CLOSE 3 : CLOSE 4[ 600 PRINT A610 PRINT "CHANGE UIC(1),PASSWORD(2),PRIV(3), DEV(4) OR STOP(5) "( 620 INPUT AN"630 ON AN GOTO 640,720,820,880,940*640 INPUT "NEW UIC (NO BRACKETS) ";U1$,U2$650 U=OCT(U1$)*256+OCT(U2$).660 IF U>32767 THEN U=U-65536= 670 UI%=U %680 OPEN #4,"[1,100]PDSUPF.DAT/BL/UP"I690 DD%(RE-1,4)=UI% 700 CLOSE 48 710 GOTO 280 720 PRINT "ENTER NEW PASSWORD ";730 PS$=" " 740 INPUT PS$ 750 PW%(1)=-1-AR5(SBS$(PS$,1,3)) 760 PW%(2)=-1-AR5(SBS$(PS$,4,3))%770 OPEN #4,"[1,100]PDSUPF.DAT/BL/UP"780 DD%(RE-1,5)=PW%(1)790 DD%(RE-1,6)=PW%(2) 800 CLOSE 4( 810 GOTO 280+820 INPUT "NEW PRIVILEGE WORD (OCTAL) ";UC$8830 PR%=OCT(UC$)%840 OPEN #4,"[1,100]PDSUPF.DAT/BL/UP"=850 DD%(RE-1,8)=PR%. 860 CLOSE 47 870 GOTO 280+880 INPUT "NEW DEVICE (ASCII 'DDN:') "; DV$D%890 OPEN #4,"[1,100]PDSUPF.DAT/BL/UP"L:900 DD%(RE-1,20)=ASC(SBS$(DV$,2,1))*256+ASC(SBS$(DV$,1,1)):910 DD%(RE-1,21)=ASC(SBS$(DV$,4,1))*256+ASC(SBS$(DV$,3,1)) 920 CLOSE 4) 930 GOTO 280%940 OPEN #4,"[1,100]PDSUPF.DAT/BL/UP"T;950 DD%(RE-1,17)=0 : ! CLEAR POSSIBLE BATCH TIME LIMIT FLAG 960 CLOSE 4 970 RUN "USERSMENU.SYS"PRIVILEGE WORD (OCTAL) ";UC$8830 PR%=OCT(UC$)%095 ! PROGRAM USERSVIRG.SYS 6100 ! PROGRAM TO DELETE ALL USER FROM PDSUPF DATA FILE110 DIM #4,DD%(255,31),120 DIM PS$[6],PX%(2),UC$[9],U1$[3]V,U2$[3]V5130 DIM NA%(4),PW%(2),DV$[4],NB%(4),NM$[12]V,LN$[72]VF/140 ! FORMAT OF PDSUPF RECORD (LENGTH=64 BYTES)150 ! NAME (8 BYTES)K160 ! UIC (2 BYTES)S*170 ! PASSW (4 BYTES, COMPLEMENT OF RAD50)180 ! BLANK (2 BYTES)N190 ! PRIV (2 BYTES)F;200 ! BLANK (22. BYTES) ACCOUNTING INFORMATION WE DON'T USEW$210 ! DEVICE (4 BYTES) IN ASCII XXN:7220 ! BLANK (20. BYTES) BATCH PRI,BATCH PW # TASKS, ETCO6230 B=0 : CALL "SPAWNB"("PIP PDSUPF.VIR=PDSUPF.DAT",B)1280 OPEN #4,"[1,100]PDSUPF.VIR/FX/BN/LN:64/RN/RO"V290 RE=1300 INPUT #4@RE,FU%,LU%4310 NU=LU%-FU%+1 320 RE=FU% 330 CLOSEU%400 OPEN #4,"[1,100]PDSUPF.VIR/BL/UP"E420 FOR NK=1 TO NU 430 NM$=""7440 FOR X=1 TO 4 : NM$=NM$+R5A$(DD%(RE-1,X-1)) : NEXT XL#450 IF POS(NM$,"SYSTEM")=1 THEN 580F(460 IF POS(NM$,"SCITERMINAL")=1 THEN 580*470 ! ZERO FIRST WORD OF ACTUAL UPF RECORDA480 DD%(RE-1,0)=0 : DD00ʋˋ΋\W*%(RE-1,1)=0 : DD%(RE-1,2)=0 : DD%(RE-1,3)=0 490 ! ZERO PASSWORD"!500 DD%(RE-1,5)=0 : DD%(RE-1,6)=0,,510 ! COMPUTE AND ZERO 4 WORDS OF NAME TABLE520 RN%=2+(RE-FU%)/8 530 DF=RE-FU%U540 RO%=4*8*(DF/8-INT(DF/8))550 FOR I=1 TO 4560 DD%(RN%-1,RO%+I-1)=0 570 NEXT I 580 RE=RE+1K 590 NEXT NK 600 CLOSE 610 EXIT 4 : NM$=NM$+R5A$(DD%(RE-1,X-1)) : NEXT XL#450 IF POS(NM$,"SYSTEM")=1 THEN 580F(460 IF POS(NM$,"SCITERMINAL")=1 THEN 580*470 ! ZERO FIRST WORD OF ACTUAL UPF RECORDA480 DD%(RE-1,0)=0 : DD<05 ! Program whodid to replace bum version from mail package'10 ! program to list users (NAMES ONLY)15 dim ps$[6],px%(2)+20 dim na%(4),pw%(2),dv$[4],gc$[3]v,uc$[3]v.21 ! format of pdsupf record (length=64 bytes)22 ! name (8 bytes)23 ! uic (2 bytes))24 ! passw (4 bytes, complement of rad50)25 ! blank (2 bytes)26 ! priv (2 bytes):27 ! blank (22. bytes) accounting information we don't use#28 ! device (4 bytes) in ascii xxn:629 ! blank (20. bytes) batch pri,batch pw # tasks, etc40 ! first list all users 45 open #5,"WHODID.LST/WR"360 open #4,"SD:[1,100]PDSUPF.DAT/BN/LN:64/RN/RO/SH"62 re=1p70 input #4@re,fu%,lu%75 nu=lu%-fu%+1, 92 re=fu%[94 for ic=1 to nuf_100 input #4@re,na%(1),na%(2),na%(3),na%(4),ui%,pw%(1),pw%(2),x%,pr%,a,b,c,d,e,x%,dv$,f,g,h,i,j,105 if na%(1)=0 then 130A110 print #5,r5a$(na%(1));r5a$(na%(2));r5a$(na%(3));r5a$(na%(4));c115 print #5,tab(16);" ";t 117 u=ui%d$119 gc=int(u/256) : pc=int(u-256*gc)$120 if gc<0 then gc=gc-oct("177400")121 gc$=oct$(gc) : pc$=oct$(pc)s&122 if len(gc$)<3 then let gc$=" "+gc$&123 if len(gc$)<3 then let gc$=" "+gc$&125 if len(pc$)<3 then let pc$=" "+pc$&126 if len(pc$)<3 then let pc$=" "+pc$ 127 print #5,"[";gc$;",";pc$;"]" 130 re=re+1) 135 next icw137 print #5,""% 140 close 145 exith,i,j,105 if na%(1)=0 then 130A110 print #5,r5a$(na%(1));r5a$(na%(2));r5a$(na%(3));r5a$(na%(4));c115 print #5,tab(16);" ";t 117 u=ui%d$119 gc=int(u/256) : pc=int(u-256*gc)$120 if gc<0 then gc=gc-oct("177400")121 gc$=oct$(g1 ! YEARBILL.BAS [1,100]2 ! STATEMENTS PRODUCED ARE FOR SPECIFIED PROJECTS:; ! CHARGES ARE GENERATED AND LISTED ON MONTHLY BASIS FOR A ! SPECIFIED FISCAL YEAR !8 ! CHARGES ARE FOR PROGRAMMER, CONNECT, AND STORAGE TIME ! ! RUN UNDER BA5 ! 50 DEF FNRM(A,B)=A-INT(A/B)*B&60 DEF FNSU(PJ,MO,PG)=(PJ*13+MO)*11+PG`80 DEF FNV(S0$)=VAL(SBS$(S0$,1,3)+SBS$(S0$,5,2)+SBS$(S0$,8,2)+SBS$(S0$,11,2)) : ! LOG TIME W/O :j90 DEF FNF$(X)=FRMT$(X,10,2) : ! FORMAT # TO 2 DIGITS TO RT OF ., SIG. DIGS. ONLY, & RJS IT IN FIELD OF 10100 !$ ! VARIABLE DEFINITIONS, DIMENSIONS ! J110 DIM R$[60]V ! RECORD STRING FOR LOGFILES, CONNECT FILES, STORAGE FILES<111 DIM L$[60]V ! INPUT VARIABLE FOR USER DESCRIPTION FILES'115 DIM FF$[50]V ! FOR MASTER FILE NAME!&120 DIM AN$[60]V ! ACCOUNT NAME (DEPT)-125 DIM NF$[9]V ! USER DESCRIPTION FILE NAMES@130 DIM UN$[9]V, UN& ! USER NAME(S), # OF USER NAMES FOR ACCOUNT4135 DIM ST$[9]V ! NAME OF STORAGE FILE FOR EACH USER>140 DIM DP$[4]V ! MASK FOR MATCHING ACCOUNT TO LOG FILE CODING150 DIM M$[3](12) ! MONTH NAMESFb170 DIM H(12,4) ! HOURS PER DAY FOR 6 USERS, 3 CATEGORIES EACH (PGMR, CONNTECT, STORAGE, ADJ PGMR))180 DIM C&(3) ! CHARGES FOR EACH CATEGORYS5185 DIM E(4) ! CONVERSION FACTORS FOR TIME INTO HOURSE#190 DIM PF(10) ! PROGRAMMER FACTORSM195 DIM S$[16]V ! DUMMY STRING199 DIM #16,PR%(9394)S>200 P1=2 : P2=6 ! LOWER, UPPER BOUNDS ON PROGRAMMER SUBSCRIPTS210 OVERLAY "PROJNUM/RT"300 ! ! USERS ACCOUNTS INFO4 ! 1 ! EACH DATA STMT DESCRIBES THE USER AS FOLLOWSI ! NAME OF DEPT (OR OF USER)E ! NAME OF BLOCK STORAGE FILE5 ! MASK DESCRIBING ITS CODE IN PROGRAMMER LOG FILEG& ! # OF ACCTS (USER NAMES) USER HAS) ! LIST OF ACCTS (USER NAMES) FOR USER  ! "310 ! PROGRAMMER SENIORITY FACTORS ! PROGRAMMER NUMBERS AS FOLLOWS ! 1 = UNUSED ! 2 = BONNIE ! 3 = DEANA ! 4 = LARRY ! 5 = BEVERLY ! 6 = DAN320 DATA 1,.7,1.5,.7,1(330 FOR I=P1 TO P2 : READ PF(I) : NEXT I430 M$(1)="JAN" :  M$(2)="FEB" : M$(3)="MAR" : M$(4)00ҋȋrss="APR" : M$(5)="MAY" : M$(6)="JUN" : M$(7)="JUL" : M$(8)="AUG" : M$(9)="SEP" : M$(10)="OCT" :  M$(11)="NOV" :A M$(12)="DEC"-440 C&=3 : ! # OF CATEGORIES OF CHARGES :I0 C&(1)=24.50 : ! $24.50/HR PROGRAMMER TIME :& C&(2)=6 : ! $ 6/HR CONNECT TIME :, C&(3)=5 : ! $ 5/100 BLOCK-MONTH STORAGE-450 ! E MAY BE USED AS WORK VARIABLE :R- E(1)=1/3600 : ! CONVERT SECONDS TO HOURS : - E(2)=1/60 : ! CONVERT MINUTES TO HOURS :N* E(3)=1 : ! CONVERT HOURS TO HOURS :( E(4)=24 : ! CONVERT DAYS TO HOURS@460 BC=((C&(3)/100)*12)/365 ! DAILY BLOCK CHARGE (1 BLOCK-DAY) :, S$=FRMT$(BC,8,6) ! MAKE CHARGE $ X.XXXXXX : BC=VAL(S$)E,600 ! ASK USER FOR FISCAL YEAR OF STATEMENT!610 INPUT "FISCAL YEAR (YY) "; YY:630 FY&=YY ! FISCAL YEAR6650 D1=DCEN("07/01/"+STR$(FY&-1)) ! FIRST DAY OF YEAR1 D2=DCEN("06/30/"+STR$(FY&)) ! LAST DAY OF YEAR6/670 ! OPEN #16,"YEAR"+STR$(FY&)+".VPG/BL/RO/SH" %680 INPUT "FILE NAME FOR OUTPUT",FF$:3 OPEN #5,FF$+"/WR/LN:84"%700 INPUT "FILE NAME FOR USERS ",FF$:T IF TRM$(FF$)="" THEN( FF$="USERS.NAM/RO/SH/EN:900" ELSE FF$=FF$+"/RO/SH/EN:900"R705 PRINT : OPEN #6,FF$ !710 INPUT LINE #6,AN$ : PRINT AN$A720 NF$=PIECE$(AN$,",",1): AN$=PIECE$(AN$,",",2,60) 6740 FOR J=0 TO 12 : FOR K=0 TO 4 : H(J,K)=0 : NEXT K,J"750 OPEN #7,"PRF.PRF/RO/SH/EN:880"753 INPUT LINE #7,L$%755 IF SBS$(L$,3)=NF$+".PRF" THEN 7707 757 GOTO 753760 INPUT LINE #7,L$770 IF LEFT(L$,1)=";" THEN 760 ELSE IF LEFT(L$,1)="*" THEN 800 780 DP$=L$$790 GOSUB 1000 ! GET PROGRAMMER TIME GOTO 760F800 INPUT LINE #7,L$810 IF LEFT(L$,1)=";" THEN 800 ELSE IF LEFT(L$,1)="*" THEN 830 820 UN$=L$:  GOSUB 1200 ! GET CONNECT TIME GOTO 800F830 INPUT LINE #7,L$:A IF LEFT(L$,1)=";" THEN 830 ELSE IF LEFT(L$,1)="*" THEN 880 840 ST$=L$ : GOSUB 1300 ! GET BLOCK STORAGE: GOTO 830N880 CLOSE 7 : GOSUB 2000 890 GOTO 710 900 CLOSE7 910 PRINTO920 EXIT/1000 ! SUBROUTINE TO ACCUMULATE PROGRAMMER TIME. ! FOR ONE USER FROM ACCUMULATED VIRTUAL ARRAY ! ON ENTRY:4 ! YEARYY.VPG OPEN ON LUN 16 WHERE YY IS FISCAL YEAR5 ! PR% IS VIRTUAL ARRAY OF PROGRAMMER TIME AS DEFINED* ! IN PROGYEAR.BAS$ ! DP$ HAS MASK FOR THIS USERI RETURN 21010 GOSUB 8000 ! GET PROJECT NUMBER DP% FROM DP$1020 FOR NI=1 TO 12(1030 FOR K=P1 TO P24-1040 H(NI,1)=H(NI,1)+PR%(FNSU(DP%,NI,K))/100:G. H(NI,4)=H(NI,4)+PR%(FNSU(DP%,NI,K))*PF(K)/1001050 NEXT K,NI 1090 RETURN 1200 !0 ! CONNECT TIME !L@1215 L&=2 ! THE 2ND OF EACH USER'S 3 CATEGORIES IS CONNECT TIMEM1230 OPEN #3, UN$+".L"+STR$(FY&)+"/LN:56/RN/RO/SH" ! OPEN CONNECT TIME FILEI:1240 FOR K=NRC(3) TO 6 STEP -1 ! 1ST 6 RECS ARE HEADINGS11250 INPUT LINE #3@K, R$ ! CONNECT TIME RECORD.1260 D=DCEN(SBS$(R$,20,8)) ! DATE LOGGED OFFQ1270 IF DD2+4 THEN 1390 ! DIDN'T GET TO RIGHT DATE SECTION YET1365 S$=DAT$(D).+1370 DR&=VAL(SBS$(S$,1,2)) ! MONTH OF YEARGF1374 H(DR&,L&)=H(DR&,L&)+VAL(SBS$(R$,27,8)) ! # OF BLOCKS FOR THAT DAY 1390 NEXT K01399 CLOSE 3 : RETURN$2000 !N ! PRINT BILL FOR EACH PROJECTK ! 2205 PRINT #5, CHR$(12)F2210 PRINT #5, TAB(24); "MICHAEL REESE HOSPITAL AND MEDICAL CENTER" :B PRINT #5, TAB(24); " DEPARTMENT OF MEDICAL PHYSICS " : PRINT #5 : PRINT #5AI2220 PRINT #5, " BIOMEDICAL COMPUTATION DIVISION";TAB(74); DDAT$(0) :I( PRINT #5 : PRINT #00ڋ3΋\W*5 : AN$=LEFT(AN$,50)D2230 PRINT #5, " BILL FOR FISCAL YEAR 19";STR$(FY&);" -- ";AN$ :+ PRINT #5, TAB(5);STRING$("-",30+LEN(AN$))2240 PRINT #5 : PRINT #5302250 PRINT #5, TAB(29); "HOURS";TAB(48);"HOURS"^2260 PRINT #5, TAB(23); "PROGRAMMER TIME"; TAB(44); "CONNECT TIME"; TAB(64); "STORAGE BLOCKS"2270 PRINT #52300 ! ! PRINT HOURS ! T JL=7 : JH=122310 FOR J=JL TO JH2315 PRINT #5, TAB(5);M$(J);2320 PRINT #5, TAB(20); :IN IF H(J,4)<>0 THEN PRINT #5, FRMT$(H(J,4),6,2); ! PROGRAMMING TIME ADJUSTEDK PRINT #5,TAB(30);"(";FRMT$(H(J,1),6,2);")"; !PROGRAMMING TIME UNADJUSTED(2330 PRINT #5, TAB(44); := IF H(J,2)<>0 THEN PRINT #5, FNF$(H(J,2)); ! CONNECT TIMEB2340 PRINT #5, TAB(64); : G IF H(J,3)<>0 THEN PRINT #5, RJS$(STR$(H(J,3)),10) ! STORAGE BLOCKSO ELSE PRINT #552360 H(0,1)=H(0,1)+H(J,1) ! TOTAL # OF PROGRAMMER HRS0: H(0,4)=H(0,4)+H(J,4) ! TOTAL # OF ADJUSTED PROGRAMMER HRS62370 H(0,2)=H(0,2)+H(J,2) : ! TOTAL # OF CONNECT HRS2380 IF H(J,3)>0O6 THEN H(0,3)=H(0,3) + (INT(H(J,3)/100)+1)*100 * BC :/ ! KEEP RUNNING TOTAL OF DAILY BLOCK CHARGES :0? ! BLOCKS ARE CHARGES IN UNITS OF 100, SO ROUND UP TO NEXT 100J=2399 NEXT J : IF JL=1 THEN 2400 ELSE JL=1 : JH=6 : GOTO 2310,2400 !0 ! FIGURE CHARGES FOR ENTIRE MONTH; PRINT THEM ! 2410 PRINT #502420 PRINT #5, TAB(5);"TOTAL HOURS"; TAB(20); :M IF H(0,1)<>0 THEN PRINT #5, FRMT$(H(0,4),6,2); ! PROGRAMMER TIME ADJUSTED=L PRINT #5,TAB(30);"(";FRMT$(H(0,1),6,2);")"; ! PROGRAMMER TIME UNADJUSTED2422 PRINT #5, TAB(44); :J IF H(0,2)<>0 THEN PRINT #5, FNF$(H(0,2)) ELSE PRINT #5 ! CONNECT TIME2425 PRINT #5^2430 PRINT #5, TAB(23); "PROGRAMMER TIME"; TAB(44); "CONNECT TIME"; TAB(64); "STORAGE BLOCKS"p2440 PRINT #5, TAB(24); "@ $";C&(1);"/ HR"; TAB(44);"@ $";C&(2);"/ HR"; TAB(59);"@ $";C&(3);"/ 100 BLOCK-MONTH"12442 PRINT #5, TAB(57); "= @ $";BC;"/ BLOCK-DAY"N2445 PRINT #5!2448 H=0 ! GRAND TOTAL OF CHARGES=-2450 PRINT #5, TAB(5);"$ CHARGE"; TAB(24); :; IF H(0,4)<>0 THEN S$=FNF$(C&(1)*H(0,4)) :A PRINT #5, S$; :0 H=VAL(S$) ! GRAND TOTAL ! PROGRAMMER CHARGES2452 PRINT #5, TAB(44); : IF H(0,2)<>0 THEN S$=FNF$(C&(2)*H(0,2)) :A PRINT #5, S$; :1 H=H+VAL(S$) ! GRAND TOTAL : ! CONNECT CHARGES42454 PRINT #5, TAB(64); : IF H(0,3)<>0 THEN S$=FNF$(H(0,3)) :" PRINT #5, S$ : H=H+VAL(S$) F ELSE PRINT #5 ! STORAGE CHARGES (RUNNING TOTAL KEPT BY STMT 23802460 PRINT #5 : PRINT #5 :5 PRINT #5, TAB(34); "-----" :+ PRINT #5, TAB(34); "TOTAL $";FRMT$(H,8,2)) 2470 PRINT #5, TAB(34); "-----" 2599 RETURNT3200 !R ! CONVERT TIME TO # OF HOURS ! 13201 ! WORKS ON O1, WHICH IS SET BY CALLING STMT) ! RETURNS H#3202 ! ! USES O1, O2, L 3220 H=0 : IF O1=0 THEN 329943240 FOR L=1 TO 443250 O2=INT(O1/100)3260 H=H+(O1-O2*100)*E(L) 3270 O1=O2 3280 NEXT L+ 3299 RETURN SE PRINT #5 ! STORAGE CHARGES (RUNNING TOTAL KEPT BY STMT 23802460 PRINT #5 : PRINT #5 :5 PRINT #5, TAB(34); "-----" :+ PR10 ! YEARPROG.BASA ! PROGRAM TO ACCUMULATE A 3 DIMENSIONAL ARRAY OF PROGRAMMER TIMEA ! BY PROJECT, MONTH OF YEAR, AND PROGRAMMER. ARRAY ELEMENTS ARE> ! INTEGERS CONTAINING TIME IN UNITS OF HUNDREDTHS OF AN HOUR. !H ! SIZE OF ARRAY: (60+1)PROJECTS * (13+1)MONTHS * (10+1)PROGRAMMERS=9394 ! ! FY&=FISCAL YEAR OF INTEREST !100 DIM R$[60]V200 DIM #16,PR%(9394),600 ! ASK USER FOR FISCAL YEAR OF STATEMENT!610 INPUT "FISCAL YEAR (YY) "; YY630 FY&=YY ! FISCAL YEAR<650 D1=DCEN("07/01/"+STR$(FY&-1)) ! FIRST DAY OF FISCAL YEAR7 D2=DCEN("06/30/"+STR$(FY&)) ! LAST DAY OF FISCAL YEAR 1100 NP=6N1200 OVERLAY "PROJNUM/RT" 81205 OPEN #16,"YEAR"+STR$(FY&)+".VPG/WR/BL" : GOSUB 14001208 F$="LOGTEMP.F"+STR$(FY&)&1210 OPEN #3,F$+"/RO/FX/LN:60/EN:1500"(1220 DEF FNSU(PJ,MO,PG)=(PJ*13+MO)*11+PG1250 INPUT LINE #3,R$E ! GET PROJECT SUBSCRIPT(1270 DP$=TRM$(SBS$(R$,1,4)) : GOSUB 8000H1280 IF DP% < 1 OR DP% > 60 THEN PRINT R$ : PRINT "DP%=";DP% : GOTO 1330 ! GET MONTH SUBSCRIPT51290 MO%=VAL00rss(SBS$(R$,48,2)) : IF MO%<1 OR MO%>12 THEND( PRINT R$ : PRINT "MO%=";MO% : GOTO 1330 ! GET PROGRAMMER SUBSCRIPT051300 PG%=VAL(SBS$(R$,47,1)) : IF PG%<2 OR PG%>NP THEN"( PRINT R$ : PRINT "PG%=";PG% : GOTO 1330 ! GET HUNDREDTHS OF HOURS'1310 HR%=INT(VAL(SBS$(R$,54,5))*100+.5)(61320 PR%(FNSU(DP%,MO%,PG%))=HR%+PR%(FNSU(DP%,MO%,PG%))1330 GOTO 12501400 DIM #16,PR(4697)$1405 FOR II= 4697 TO 0 STEP -11410 PR(II)=0 : NEXT IIP 1420 RETURNN1500 CLOSE : EXIT 1330 ! GET MONTH SUBSCRIPT51290 MO%=VAL10 ! YEARTAB.BAS,BA84 ! PROGRAM TO PRINT CROSS TABULATIONS FOR PROGRAMMER8 ! TIME ACCOUNTING INFO. THIS PROGRAM ASSUMES EXISTENCE; ! OF VIRTUAL ARRAY CREATED BY PROGYEAR FOR THE FISCAL YEAR ! IN QUESTION.'100 DEF FNSU(PJ,MO,PG)=(PJ*13+MO)*11+PG%160 DIM PD(12,10),UD(12,60),UP(60,10)200 DIM #16,PR%(9394)&210 PJ=50 ! DEFINE NUMBER OF PROJECTS LM=5 ! DEFINE LEFT MARGIN? P1=2 : P2=6 ! DEFINE LOWER, UPPER BOUNDS ON PROGRAMMER NUMBERS,600 ! ASK USER FOR FISCAL YEAR OF STATEMENT!610 INPUT "FISCAL YEAR (YY) "; YY!630 FY&=YY ! FISCAL YEAR=650 D1=DCEN("07/01/"+STR$(FY&-1)) ! FIRST DAY OF FISCAL YEARM8 D2=DCEN("06/30/"+STR$(FY&)) ! LAST DAY OF FISCAL YEAR*700 OPEN #16,"YEAR"+STR$(FY&)+".VPG/RO/BL"-710 OPEN #3,"YEAR"+STR$(FY&)+".PGA/WR/LN:132" 1000 ! ZERO ARRAYS91010 FOR J=0 TO 12 : FOR K=0 TO 10 : PD(J,K)=0 : NEXT K,JB91020 FOR J=0 TO 12 : FOR I=0 TO 60 : UD(J,I)=0 : NEXT I,J!91030 FOR I=0 TO 60 : FOR K=0 TO 10 : UP(I,K)=0 : NEXT K,IA1100 ! ACCUMULATE TOTALS1110 FOR I=1 TO PJ1120 FOR J=1 TO 121130 FOR K=P1 TO P2F1140 HR=PR%(FNSU(I,J,K))/1001150 IF HR <> 0 THENI PD(J,K)=PD(J,K)+HR : PD(0,K)=PD(0,K)+HR : PD(J,0)=PD(J,0)+HR : PD=PD+HR: I UD(J,I)=UD(J,I)+HR : UD(0,I)=UD(0,I)+HR : UD(J,0)=UD(J,0)+HR : UD=UD+HR:YH UP(I,K)=UP(I,K)+HR : UP(0,K)=UP(0,K)+HR : UP(I,0)=UP(I,0)+HR : UP=UP+HR1190 NEXT K,J,IN)1300 ! PRINT PROGRAMMER VS. MONTH OF YEAR01310 P=0 : GOSUB 3000!%1320 PRINT #3,TAB(LM);"PROGRAMMER ->"U+1330 PRINT #3,TAB(LM);"MON OF YR.";TAB(15);S31340 FOR K=P1 TO P2 : PRINT #3,FRMT$(K,8); : NEXT KP'1350 PRINT #3," TOTAL" : JL=7 : JH=1211360 FOR J=JL TO JHP$1370 PRINT #3,FRMT$(J,LM+3);TAB(15);;1380 FOR K=P1 TO P2 : PRINT #3,FRMT$(PD(J,K),8,2); : NEXT K0 1390 PRINT #3,FRMT$(PD(J,0),8,2)<1400 NEXT J : IF JL=1 THEN 1410 ELSE JL=1 : JH=6 : GOTO 1360T1410 PRINT #3,TAB(15); : FOR K=P1 TO P2+1 : PRINT #3," -------"; : NEXT K : PRINT #31420 PRINT #3,TAB(15); !<1430 FOR K=P1 TO P2 : PRINT #3,FRMT$(PD(0,K),8,2); : NEXT K: PRINT #3,FRMT$(PD,8,2)-1500 ! PRINT PROJECT (USER) VS. MONTH OF YEARX%1540 I1=1 : I2=10 : IT=0 : GOSUB 1600 %1545 I1=11: I2=20 : IT=0 : GOSUB 1610T%1550 I1=21: I2=30 : IT=0 : GOSUB 1610P%1560 I1=31: I2=40 : IT=0 : GOSUB 1600:%1570 I1=41: I2=50 : IT=0 : GOSUB 1610,%1580 I1=51: I2=PJ : IT=1 : GOSUB 1610E1590 GOTO 18001600 GOSUB 3000I"1610 PRINT #3,TAB(LM);"PROJECT ->";1620 PRINT #3,TAB(LM);"MON OF YR. ";; : IF I2"(1820 PRINT #3,TAB(LM);"PROJECT";TAB(15);31830 FOR K=P1 TO P2 : PRINT #3,FRMT$(K,8); : NEXT K71840 PRINT #3," TOTAL"1850 FOR I=1 TO PJ$1860 PRINT #3,FRMT$(I,LM+3);TAB(15);;1870 FOR K=P1 TO P2 : PRINT #3,FRMT$(UP(I,K),8,2); : NEXT K: 1800΋\W*80 PRINT #3,FRMT$(UP(I,0),8,2) 1890 NEXT INT1900 PRINT #3,TAB(15); : FOR K=P1 TO P2+1 : PRINT #3," -------"; : NEXT K : PRINT #3W1910 PRINT #3,TAB(LM);"TOTAL";TAB(15); : FOR K=P1 TO P2 : PRINT #3,FRMT$(UP(0,K),8,2);:0 NEXT K01920 PRINT #3,FRMT$(UP,8,2)M2000 CLOSE : EXIT#3000 ! PRINT PAGE HEADER)3010 P=P+1 : PRINT #3,CHR$(12) : PRINT #3843020 PRINT #3,TAB(LM);"BIOMEDICAL COMPUTER SECTION";# TAB(68);"FISCAL YEAR - "+STR$(FY&)(O3030 PRINT #3,TAB(LM);"MEDICAL PHYSICS DEPARTMENT";TAB(77);"PAGE "+FRMT$(P,2) :,0 PRINT #3,TAB(38);"PROGRAMMER ACTIVITY SUMMARY": PRINT #3R 3040 RETURN : PRINT #3," -------"; : NEXT K : PRINT #3W1910 PRINT #3,TAB(LM);"TOTAL";TAB(15); : FOR K=P1 TO P2 : PRINT #3,FRMT$(UP(0,K),8,2);:0 NEXT K01920 PRINT #3,FRMT$(UP,8,2)M2000 CLOSE : EXIT#3000 ! PRINT PAGE HEADER)3010 P=P+1 : PRINT #3,CHR$(12) : PRINT #3843020 PRINT #3,TAB(LM);"BIOMEDICAL COMPUTER SECTION";# TAB(68);"FISCAL YEAR - "+STR$(FY&)(O3030 PRINT #3,TAB(LM);"MEDICAL PHYSICS DEPARTMENT";TAB(77);"PAGE "+FM1 ! OUTBILL.BAS [1,100] - PROGRAM TO PRODUCE BILLS FOR BIOMEDICAL COMPUTATION- ! BILLS PRODUCED ARE FOR SPECIFIED PROJECTS:: ! CHARGES ARE GENERATED AND LISTED ON MONTHLY BASIS FOR A ! SPECIFIED FISCAL YEAR !8 ! CHARGES ARE FOR PROGRAMMER, CONNECT, AND STORAGE TIME ! ! RUNS UNDER BA550 DEF FNRM(A,B)=A-INT(A/B)*B&60 DEF FNSU(PJ,MO,PG)=(PJ*13+MO)*11+PG`80 DEF FNV(S0$)=VAL(SBS$(S0$,1,3)+SBS$(S0$,5,2)+SBS$(S0$,8,2)+SBS$(S0$,11,2)) : ! LOG TIME W/O :j90 DEF FNF$(X)=FRMT$(X,10,2) : ! FORMAT # TO 2 DIGITS TO RT OF ., SIG. DIGS. ONLY, & RJS IT IN FIELD OF 10100 !$ ! VARIABLE DEFINITIONS, DIMENSIONS ! J110 DIM R$[60]V ! RECORD STRING FOR LOGFILES, CONNECT FILES, STORAGE FILES<111 DIM L$[60]V ! INPUT VARIABLE FOR USER DESCRIPTION FILES'115 DIM FF$[50]V ! FOR MASTER FILE NAMEA&120 DIM AN$[60]V ! ACCOUNT NAME (DEPT)-125 DIM NF$[9]V ! USER DESCRIPTION FILE NAMES@130 DIM UN$[9]V, UN& ! USER NAME(S), # OF USER NAMES FOR ACCOUNT4135 DIM ST$[9]V ! NAME OF STORAGE FILE FOR EACH USER>140 DIM DP$[4]V ! MASK FOR MATCHING ACCOUNT TO LOG FILE CODING150 DIM M$[3](12) ! MONTH NAMESFb170 DIM H(12,4) ! HOURS PER DAY FOR 6 USERS, 3 CATEGORIES EACH (PGMR, CONNTECT, STORAGE, ADJ PGMR))180 DIM C&(3) ! CHARGES FOR EACH CATEGORYS5185 DIM E(4) ! CONVERSION FACTORS FOR TIME INTO HOURSE#190 DIM PF(10) ! PROGRAMMER FACTORSM195 DIM S$[16]V ! DUMMY STRING199 DIM #16,PR%(9394)S>200 P1=2 : P2=6 ! LOWER, UPPER BOUNDS ON PROGRAMMER SUBSCRIPTS210 OVERLAY "PROJNUM/RT"300 ! ! USERS ACCOUNTS INFO4 ! 1 ! EACH DATA STMT DESCRIBES THE USER AS FOLLOWSI ! NAME OF DEPT (OR OF USER)E ! NAME OF BLOCK STORAGE FILE5 ! MASK DESCRIBING ITS CODE IN PROGRAMMER LOG FILEG& ! # OF ACCTS (USER NAMES) USER HAS) ! LIST OF ACCTS (USER NAMES) FOR USER  ! "310 ! PROGRAMMER SENIORITY FACTORS ! PROGRAMMER NUMBERS AS FOLLOWS ! 1 = UNUSED ! 2 = BONNIE ! 3 = DEANA ! 4 = LARRY ! 5 = BEVERLY ! 6 = DAN320 DATA 1,.7,1.5,.7,1(330 FOR I=P1 TO P2 : READ PF(I) : NEXT I430 M$(1)="JAN" :  M$(2)="FEB" : M$(3)="MAR" : M$(4)="APR" : M$(5)="MAY" : M$(6)="JUN" : M$(7)="JUL" : M$(8)="AUG" : M$(9)="SEP" : M$(10)="OCT" :  M$(11)="NOV" :A" M$(12)="DEC" ! NAMES OF MONTHS-440 C&=3 : ! # OF CATEGORIES OF CHARGES :A0 C&(1)=24.50 : ! $24.50/HR PROGRAMMER TIME :( C&(2)=20 : ! $ 20/HR CONNECT TIME :, C&(3)=5 : ! $ 5/100 BLOCK-MONTH STORAGE-450 ! E MAY BE USED AS WORK VARIABLE :A- E(1)=1/3600 : ! CONVERT SECONDS TO HOURS :I- E(2)=1/60 : ! CONVERT MINUTES TO HOURS :* E(3)=1 : ! CONVERT HOURS TO HOURS :( E(4)=24 : ! CONVERT DAYS TO HOURS@460 BC=((C&(3)/100)*12)/365 ! DAILY BLOCK CHARGE (1 BLOCK-DAY) :, S$=FRMT$(BC,8,6) ! MAKE CHARGE $ X.XXXXXX : BC=VAL(S$)O,600 ! ASK USER FOR FISCAL YEAR OF STATEMENT!610 INPUT "FISCAL YEAR (YY) "; YY 630 FY&=YY ! FISCAL YEAR6650 D1=DCEN("07/01/"+STR$(FY&-1)) ! FIRST DAY OF YEAR1 D2=DCEN("06/30/"+STR$(FY&)) ! LAST DAY OF YEAR6/670 ! OPEN #16,"YEAR"+STR$(FY&)+".VPG/BL/RO/SH" %680 INPUT "F00rssILE NAME FOR OUTPUT",FF$:3 OPEN #5,FF$+"/WR/LN:84"%700 INPUT "FILE NAME FOR USERS ",FF$:T IF TRM$(FF$)="" THEN( FF$="USERS.NAM/RO/SH/EN:900" ELSE FF$=FF$+"/RO/SH/EN:900"R705 OPEN #6,FF$ : PRINT !710 INPUT LINE #6,AN$ : PRINT AN$A720 NF$=PIECE$(AN$,",",1): FF$=PIECE$(AN$,",",2):A AN$=PIECE$(AN$,",",3,60)6740 FOR J=0 TO 12 : FOR K=0 TO 4 : H(J,K)=0 : NEXT K,J"750 OPEN #7,"PRF.PRF/RO/SH/EN:850"753 INPUT LINE #7,L$%755 IF SBS$(L$,3)=NF$+".PRF" THEN 770F 757 GOTO 753760 INPUT LINE #7,L$770 IF LEFT(L$,1)=";" THEN 760 ELSE IF LEFT(L$,1)="*" THEN 800 780 DP$=L$$790 GOSUB 1000 ! GET PROGRAMMER TIME GOTO 760S800 INPUT LINE #7,L$810 IF LEFT(L$,1)=";" THEN 800 ELSE IF LEFT(L$,1)="*" THEN 830 820 UN$=L$:  GOSUB 1200 ! GET CONNECT TIME GOTO 800$830 INPUT LINE #7,L$:  IF LEFT(L$,1)=";" THEN 830 ELSE IF LEFT(L$,1)="*" THEN 880 840 ST$=L$ : GOSUB 1300 ! GET BLOCK STORAGE: GOTO 830N880 CLOSE 7 : GOSUB 2000 890 GOTO 710 900 CLOSE7 910 PRINTO920 EXIT/1000 ! SUBROUTINE TO ACCUMULATE PROGRAMMER TIME. ! FOR ONE USER FROM ACCUMULATED VIRTUAL ARRAY ! ON ENTRY:4 ! YEARYY.VPG OPEN ON LUN 16 WHERE YY IS FISCAL YEAR5 ! PR% IS VIRTUAL ARRAY OF PROGRAMMER TIME AS DEFINED* ! IN PROGMON.BAS ! DP$ HAS MASK FOR THIS USER  RETURNT21010 GOSUB 8000 ! GET PROJECT NUMBER DP% FROM DP$1020 FOR NI=1 TO 12F1030 FOR K=P1 TO P2-1040 H(NI,1)=H(NI,1)+PR%(FNSU(DP%,NI,K))/100:. H(NI,4)=H(NI,4)+PR%(FNSU(DP%,NI,K))*PF(K)/1001050 NEXT K,NI 1090 RETURN21200 !0 ! CONNECT TIME !M@1215 L&=2 ! THE 2ND OF EACH USER'S 3 CATEGORIES IS CONNECT TIMEL1230 OPEN #3, UN$+".L"+STR$(FY&)+"/LN:56/RN/RO/SH" ! OPEN CONNECT TIME FILE:1240 FOR K=NRC(3) TO 6 STEP -1 ! 1ST 6 RECS ARE HEADINGS11250 INPUT LINE #3@K, R$ ! CONNECT TIME RECORDT.1260 D=DCEN(SBS$(R$,20,8)) ! DATE LOGGED OFFQ1270 IF DD2+4 THEN 1390 ! DIDN'T GET TO RIGHT DATE SECTION YET1365 S$=DAT$(D)"+1370 DR&=VAL(SBS$(S$,1,2)) ! MONTH OF YEARGc1374 H(DR&,L&)=H(DR&,L&)+VAL(SBS$(R$,27,8)) ! # OF BLOCKS FOR THAT DAY (ONLY 1 REC OF BLKS PER DAY)$ 1390 NEXT K+1399 CLOSE 3 : RETURNN2000 !B ! PRINT BILL FOR EACH PROJECT  ! 2205 PRINT #5, CHR$(12)F2210 PRINT #5, TAB(24); "MICHAEL REESE HOSPITAL AND MEDICAL CENTER" :B PRINT #5, TAB(24); " DEPARTMENT OF MEDICAL PHYSICS " : PRINT #5 : PRINT #5SI2220 PRINT #5, " BIOMEDICAL COMPUTATION DIVISION";TAB(74); DDAT$(0) := PRINT #5 : PRINT #5(D2230 PRINT #5, " BILL FOR FISCAL YEAR 19";STR$(FY&);" -- ";AN$ :+ PRINT #5, TAB(5);STRING$("-",30+LEN(AN$))O2240 PRINT #5 : PRINT #5X02250 PRINT #5, TAB(29); "HOURS";TAB(48);"HOURS"^2260 PRINT #5, TAB(23); "PROGRAMMER TIME"; TAB(44); "CONNECT TIME"; TAB(64); "STORAGE BLOCKS"2270 PRINT #52300 ! ! PRINT HOURS ! ; JL=7 : JH=122310 FOR J=JL TO JH2315 PRINT #5, TAB(5);M$(J);2320 PRINT #5, TAB(20); :IN IF H(J,4)<>0 THEN PRINT #5, FRMT$(H(J,4),6,2); ! PROGRAMMING TIME ADJUSTEDK PRINT #5,TAB(30);"(";FRMT$(H(J,1),6,2);")"; !PROGRAMMING TIME UNADJUSTED(2330 PRINT #5, TAB(44); := IF H(J,2)<>0 THEN PRINT #5, FNF$(H(J,2)); ! CONNECT TIMEB2340 PRINT #5, TAB(64); : G IF H(J,3)<>0 THEN PRINT #5, RJS$(STR$(H(J,3)),10) ! STORAGE BLOCKSO ELSE PRINT #552360 H(0,1)=H(0,1)+H(J,1) ! TOTAL # OF PROGRAMMER HRS0: H(0,4)=H(0,4)+H(J,4) ! TOTA00\W*L # OF ADJUSTED PROGRAMMER HRS62370 H(0,2)=H(0,2)+H(J,2) : ! TOTAL # OF CONNECT HRS2380 IF H(J,3)>0O6 THEN H(0,3)=H(0,3) + (INT(H(J,3)/100)+1)*100 * BC :/ ! KEEP RUNNING TOTAL OF DAILY BLOCK CHARGES :0? ! BLOCKS ARE CHARGES IN UNITS OF 100, SO ROUND UP TO NEXT 100J=2399 NEXT J : IF JL=1 THEN 2400 ELSE JL=1 : JH=6 : GOTO 2310,2400 !0 ! FIGURE CHARGES FOR ENTIRE MONTH; PRINT THEM ! 2410 PRINT #502420 PRINT #5, TAB(5);"TOTAL HOURS"; TAB(20); :M IF H(0,1)<>0 THEN PRINT #5, FRMT$(H(0,4),6,2); ! PROGRAMMER TIME ADJUSTED=L PRINT #5,TAB(30);"(";FRMT$(H(0,1),6,2);")"; ! PROGRAMMER TIME UNADJUSTED2422 PRINT #5, TAB(44); :J IF H(0,2)<>0 THEN PRINT #5, FNF$(H(0,2)) ELSE PRINT #5 ! CONNECT TIME2425 PRINT #5^2430 PRINT #5, TAB(23); "PROGRAMMER TIME"; TAB(44); "CONNECT TIME"; TAB(64); "STORAGE BLOCKS"p2440 PRINT #5, TAB(24); "@ $";C&(1);"/ HR"; TAB(44);"@ $";C&(2);"/ HR"; TAB(59);"@ $";C&(3);"/ 100 BLOCK-MONTH"12442 PRINT #5, TAB(57); "= @ $";BC;"/ BLOCK-DAY"N2445 PRINT #5!2448 H=0 ! GRAND TOTAL OF CHARGES=-2450 PRINT #5, TAB(5);"$ CHARGE"; TAB(24); :; IF H(0,4)<>0 THEN S$=FNF$(C&(1)*H(0,4)) :A PRINT #5, S$; :0 H=VAL(S$) ! GRAND TOTAL ! PROGRAMMER CHARGES2452 PRINT #5, TAB(44); : IF H(0,2)<>0 THEN S$=FNF$(C&(2)*H(0,2)) :A PRINT #5, S$; :1 H=H+VAL(S$) ! GRAND TOTAL : ! CONNECT CHARGES42454 PRINT #5, TAB(64); : IF H(0,3)<>0 THEN S$=FNF$(H(0,3)) :" PRINT #5, S$ : H=H+VAL(S$) F ELSE PRINT #5 ! STORAGE CHARGES (RUNNING TOTAL KEPT BY STMT 23802460 PRINT #5 : PRINT #5 :5 PRINT #5, TAB(34); "-----" :+ PRINT #5, TAB(34); "TOTAL $";FRMT$(H,8,2)) 2470 PRINT #5, TAB(34); "-----" 2599 RETURNT3200 !R ! CONVERT TIME TO # OF HOURS ! 13201 ! WORKS ON O1, WHICH IS SET BY CALLING STMT) ! RETURNS H#3202 ! ! USES O1, O2, L 3220 H=0 : IF O1=0 THEN 329943240 FOR L=1 TO 443250 O2=INT(O1/100)3260 H=H+(O1-O2*100)*E(L) 3270 O1=O2 3280 NEXT L+ 3299 RETURN SE PRINT #5 ! STORAGE CHARGES (RABSZAP/-CP/PR/-FX/-FP=ABSZAPLB:[1,1]EXEC.STB/SS/ TASK=...AZP UIC=[1,1]STACK=32PRI=220UNITS=1ASG=TI:1/( .TITLE CORZAP - ZAP CORE (SCOM) ROUTINE .IDENT /V01/ .MCALL GMCR$,EXIT$S,QIOW$,DIR$ .NLIST BEX;+ ; VERSION 01;; REID L BROWN 25-JAN-77;; MODIFIED BY:;; F. BORGER TO BECOME ABSZAP;;); **-ABSZAP- ZAP CORE LOCATION WITH VALUE;M; THIS ROUTINE OPERATES MUCH LIKE THE OPEN COMMAND, BUT IS INVOKABLE AS A ONEK; LINE COMMAND. THIS ALLOWS ITS USE IN INDIRECT COMMAND FILES AND ANYWHEREL; ELSE A ONE LINE COMMAND IS DESIRED. IT IS A PRIVILEDGED FUNCTION, AND CAN); ONLY BE RUN FROM PRIVILEDGED TERMINALS.O;R; THE COMMAND FORMAT IS:;L+; AZP
    [:]/;E*;
    = THE 22BIT ADDRESS OF THE WORDG; = A VERIFICATION VALUE FOR THE CURRENT CONTENTS OF THATP8; MEMORY CELL. THE OPERATION IS ABORTED IF THIS VALUE4; DOES NOT MATCH THE CURRENT CONTENTS OF THE CELL.:; = THE NEW DATA VALUE TO BE PLACED IN THE CELL.;A:; NOTE: ALL VALUES ARE EXPRESSED AS UNSIGNED OCTAL NUMBERS;I;E&; TASKBUILD ATTRIBUTES: -CP/-FX/PR/-FP ; STACK=32; TASK=...AZP; ASG=TI:1 ;ONE LUN ONLY; UNITS=1 ; " ; PRI=220N ; UIC=[1,1];;- E = E;B; LOCAL DATA AREAO; V9$ADDR: .WORD 0,0 ;THE ADDRESS OF THE CELL TO BE MODIFIED .$VFY: .WORD 0 ;AN OPTIONAL VERIFICATION VALUE1$VFLG: .WORD 0 ;IF <> 0, VERIFICATION IS DESIREDC6$VAL: .WORD 0 ;THE NEW VALUE TO BE PLACED IN THE CELL E7MCR: GMCR$ ;DEFINE THE GET MCR COMMAND LINE DIRECTIVED 9OUT: QIOW$ IO.WVB,1,1,,,,<.-.,.-.,40> ;DEFINE THE QIO DPB/1OU00rssTBUF= OUT+Q.IOPL ;QIO BUFFER ADDRESS PARAMETER=2OUTLEN= OUT+Q.IOPL+2 ;QIO BUFFER LENGTH PARAMETER ;=; ERROR MESSAGES;= E#SYNTAX: .ASCII /AZP - SYNTAX ERROR/D SYNLEN= .-SYNTAXA E O)VERIFY: .ASCII /AZP - VERIFICATION ERROR/; VERLEN= .-VERIFYA N L*ADDRES: .ASCII /AZP - ADDRESS RANGE ERROR/ ADDLEN= .-ADDRESW  ; +PRVMES: .ASCII /AZP - PRIVILEDGE VIOLATION/G PRVLEN= .-PRVMESG M .EVEN L ; **-CORZAP-; .; GET COMMAND LINE AND CHECK FOR SYNTAX ERRORS;  ?CORZAP::DIR$ #MCR,EXIT ;TRY TO GET AN MCR BUFFER, EXIT IF CAN'T - MOV $DSW,R5 ;SAVE THE RETURNED LENGTH IN R52 CALL PRIVCK ;IS THE CALLER PRIVILEDGED FOR THIS? BCC 10$ ;YES, CONTINUE N;A; PRIVILEDGE VIOLATION - EXIT ;I A# MOV #PRVMES,OUTBUF ;SET UP THE QIO MOV #PRVLEN,OUTLEN ;..." DIR$ #OUT ;AND TELL HIM ABOUT IT JMP EXIT ;AND EXIT  C;/&; SCAN FOR OCTAL NUMBERS & SEPARATORS.;V; $ADDR <= THE ADDRESS VALUE ; $VFY <= THE VERIFICATION VALUE-; $VFLG <= <>0 IF VERIFICATION DESIRED (FLAG)C; $VAL <= THE NEW VALUE ;F ;10$: MOV #MCR+6,R2 ;POINT TO 1ST CHAR AFTER 'AZP' IN BUFFER- ADD #MCR+2,R5 ;POINT TO END OF RETURNED DATAT MOV R5,-(SP) ;SAVE IT/ CLR MCR+80. ;INSURE AGAINST A BUFFER OVERRUN.I" CLR $VFLG ;RESET THE VERIFY FLAG/12$: CMPB (R2)+,#'/ ;FIND END OF ADDRESS STRINGD BEQ 15$& CMPB -1(R2),#': ;COULD BE VERIFY ALSO BEQ 15$ TSTB (R2) ;END OF COMMAND ?.! BEQ SYNERR ;IF SO, SYNTAX ERROR) BR 12$ ;IF NOT, KEEP LOOKING FOR / OR :="15$: DEC R2 ;BACK UP R2 TO / OR :* MOV R2,R4 ;CALC LENGTH OF ADDRESS STRING SUB #MCR+6,R4 ;FOR SYSTEM CALLE, MOV #MCR+6,R5 ;POINT R5 TO START OF STRING2 MOV #$ADDR,R3 ;POINT R3 TO OUTPUT CONVERSION AREA0 CALL .OD2CT ;CONVERT TO DOUBLE PRECISION OCTAL( BIC #1,$ADDR+2 ;MAKE SURE WORD BOUNDARY' MOV (SP)+,R5 ;RESTORE END OF DATA FLAGQ0 CMP R2,R5 ;HAVE WE OVERRUN THE END OF THE DATA" BHIS SYNERR ;YES - TELL THE USER+ MOV R2,R0 ;RESTORE POINTER FOR COTB CALLS  INC R0 ;BUMP PAST TERMINATOR6 CMPB #'/,(R2) ;DID THE FIELD TERMINATE WITH A SLASH ?+ BEQ 40$ ;YES - GO PROCESS THE VALUE FIELDO/ CMPB #':,(R2) ;NO - IS VERIFICATION SUPPORTED?T/ BNE SYNERR ;NO - ??? CRAZY USER. SYNTAX ERRORN S; *; GET VERIFICATION VALUE & SET VERIFY FLAG;N T0 CALL $COTB ;CONVERT THE VERIFY VALUE TO BINARY/ CMP R0,R5 ;HAVE WE OVERRUN THE RETURNED DATA?  BHIS SYNERR ;SYNTAX ERRORH A) CMPB #'/,R2 ;TERMINATOR MUST BE A SLASHV BNE SYNERR ;SYNTAX ERROR* INC $VFLG ;INDICATE VERIFY IS TO BE DONE MOV R1,$VFY ;SAVE THE VALUE  M;T ; EVALUATE THE REPLACEMENT VALUE;  C-40$: CALL $COTB ;CONVERT THE VALUE TO BINARYE MOV R1,$VAL ;SAVE THE VALUEN ;OE; VALIDATE THE ADDRESS, VERIFY OLD CONTENTS (IF SPECIFIED) AND UPDATET; THE LOCATION TO ITS NEW VALUE ;O( MOV $ADDR+2,R1 ;LOW ORDER ADDRESS -> R1' MOV $ADDR,R0 ;HIGH ORDER ADDRESS -> R0- ASHC #3,R0 ;SHIFT PAR PART OF ADDRESS TO R1 , ASH #-3,R1 ;RESET LOWER 13 BITS OF ADDRESS/ BIC #160000,R1 ;CLEAR BITS CARRIED FROM BIT 15 , ASH #7,R0 ;PUT UPPER ADDRESS IN RIGHT BITS' BIS #60000,R1 ;MAP R1 TO USE PAR/PDR 3/ MOV #77406,-(SP) ;A 4K READ/WRITE PDR -> STACKM MOV R0,-(SP) ;NEW PAR -> STACK CALL ..SPD3 ;SWAP PAR/PDR 3I O TST $VFLG ;VERIFY DESIRED? BEQ 60$ ;NO - CONTINUE' CMP $VFY,@R1 ;COMPARE TO EXISTING DATAW BEQ 60$ ;IT CHECKS, CONTINUE4 MOV #VERIFY,OUTBUF ;DOESN'T CHECK - LOAD BUFFER ADR MOV #VERLEN,OUTLEN ; AND LENGTH% DIR$ #OUT ;TELL THE USER HE BLEW ITB BR EXIT ;AND EXITB '60$: MOV $VAL,@R1 ;UPDATE THE DATA ITEMP AEXIT: EXIT$S ;AND EXIT 0;,; SYNTAX ERROR;A D-SYNERR: MOV #SYNTAX,OUTBUF ;LOAD MESSAGE ADDR # MOV #SYNLEN,OUTLEN ;AND ITS LENGTHC DIR$ #OUT ;TELL THE USER BR EXIT ;AND EXITG V F;E8; **-PRIVCK-CHECK USERS PRIVILEDGE BASED ON THE PUD BITS;X"; RETURNS: CC-CLEAR IF PRIVILEDGED; CC-SET IF NOT PRIVILEDGEDD; MODIFIES R0.;  F A'PRIVCK: CLC ;RESET THE CARRY FLAG BITR" MOV .CRTSK,R0 ;GET MY ATL ADDRESS2 MOV A.TI(R0),R0 ;AND USE IT TO GET MY PUD ADDRESS4 BITB #UT.PR,U.TF(R0) 00  \W*;IS MY TI PRIVILEDGE BIT SET? BNE 10$ ;YES - OKD SEC ;NO - ERROR 10$: RETURND S;E .END CORZAPYNLEN,OUTLEN ;AND ITS LENGTHC DIR$ #OUT ;TELL THE USER BR EXIT ;AND EXITG V F;E8; **-PRIVCK-CHECK USERS PRIVILEDGE BASED ON THE PUD BITS;X"; RETURNS: CC-CLEAR IF PRIVILEDGED; CC-SET IF NOT PRIVILEDGEDD; MODIFIES R0.;  F A'PRIVCK: CLC ;RESET THE CARRY FLAG BITR" MOV .CRTSK,R0 ;GET MY ATL ADDRESS2 MOV A.TI(R0),R0 ;AND USE IT TO GET MY PUD ADDRESS4 BITB #UT.PR,U.TF(R0) **OL @8@:2@*|f@%@GP}@s@@*\@sd@(*h( )\*\  AZP - SYNTAX ERRORAZ:2*P - VERIFICATION ERRORAZP - ADDRESS RA'NGE ERRORAZP - PRIVILEDGE VIOLATION *   |\ s(\*we f7 T7 /:   *ʋP  E ?\*> ʥ/ʥ:7  3¥/0 wGP}*d wvWtEtU`GP}*& p -h \ sd&\*R3n\n\( @8 |f %NGE ERRORAZP - PRIVILEDGE VIOLATION *   |\ s(\*we f7 T7 /:   *ʋP  E ?\*|` ` (U `g , DRTI O@ @````QTI1)  AZP - SYNTAX ERRORAZP - VERIFICATION ERRORAZP - ADDRESS RANGE ERRORAZP - PRIVILEDGE VIOLATIONJ  |wPeLf7 T7 /:ʋP PP@ ^E ? ʥ/ʥ:7  3¥/0 w wvWtEtU`& ~ p -h R3j* w ^ ť ť 0BBpAaw  w & W+W- Ba. W#  B0  c  c S W %ec e`s  # 3  & ˥ Z ^C &f &ff 00rssXP #: NO=ph*}(NV1Y> 1[[^[^[ q 4[ 4c1hh1h 1e""@"&S",~&H#v(xs$@(s((s*Z(8+2++,=,N.-X.` ,280,8.-X8.-X8f-X8d.8+-X8d-X88,-X8xd-Xt:@`::-X;8w.ZH;F;-X;@-X>4.K004vL}1[M%0 NS &0RS:1S1S1S1X9{ZE`1VF`82RHf-X\g js&w`'2zw4t>x`'2>xT3zx4yL3}`;3w428ۚK7^ܚ@56ܚp5ܚ5ݚ%7^ݚ%8v䚰r9<@;䚬<00 \W*ph*}(N[[^[^[ q 4e""@"&S",~&H#v(xs$@(s((s*Z(8+2++,=,N.` ,280,8.-X8d.t:@`:;8w.ZH;F>4.K004[M%0 NS &0RS1X9{ZE`1VF`82R\g js&w`'2zw4t>x`'2>xT3zx4yL3}`;3w428ܚ@56ܚp5ݚ%7^ݚ%8v䚰r9<@;䚬<tP x4 ,a   Gn4x7 @7 7@7 7 B A`C`mm  7JWj,a ",a *,a 0,a FjV,a Z,a  j1xsWjG jx4( G2,a 1xsSnP w4 ,a   Gh4w7 @7 7@7 7 BC`ms  7JWj,a ",a *,a 0,a D,a JjT,a  d1xsWjG dw4( G2,a 1xsSdP X9 ,a  GZ9X7 wf f&wf  v7  RWj,a  ,a $[M%0,a  6,a :[M%Jz LDa P,a V,a "Wj[M%z Da "G VX9(Da ,a  $P H; ,a  GLH;7 W/0W/9W/AW/Z7 &Wj ,a 0,a D,a H,a WjG HH;( G&4< ,a (P \g  ,a $  Da $ ,a  1xs 100$rssxs Da G| \g7 @7 7@7 77 7  $7mW m.~Wj,a ",a *,a 0,a  41xs81xs>1xsDjH1xsR1xsX,a fjj1xsn,a  z1xspxm;  w7 -m | j1xs,a 1xs1xs$j*j.1xs6j :1xsD1xsJ1xs PjT1xs \1xs `,a njX   7 $&f  7-|1xs 1xs 1xs j1xs1xs$1xs (1xs21xs8,a  >,a BѪ0\J1xsPjT1xsV1xs\8mmmH  7$&f z1xs 1xs,a 1xs,a 1xs&j*1xs01xs 6j<1xsBjJ1xs P,a  V,a ZѪ0\\ -mmmH m&f  7z 1xs1xs 1xs,a 1xs ,a &1xs.j21xs61xs<,a " B,a FѪ0\N1xsTjZjm1xs ,a WjѪ0\G \g ( GJ-Z\$px G p -8Da ,a &1xsP s ,a $ *** ERROR *** DSW ="  1xsDa  ,a  . 1xs Da 1xs 1xs 1xs1xs Gl& s7 wf @t 77 wwf    z Wj,a  ,a ",01xs41xs :1xs @,a $ F,a J:P1xs Z,a ^` b1xsf:x<j!y&hf = }o ,a 0 #}j 1xsBWj,:`:x<!y #}8G s( GNDa ,a 21xsP 2 ,a . *** ERROR *** DSW =" ! *1xsDa  ,a *. 1xs Da 1xs 1xs 1xs1xs Gt& 27 @77wf @t 77 wwf   ~ Wj,a ",a (,a ( .,a $2,@1xsD1xs J1xs P,a . V,a *Z:`1xs j,a n` r1xs.p f = }o(:x< !y ,a : #}j 1xsBWj,:`:x<!y #}8G 2( G^Da ,a <1xs2P *} ,a ^ ATTEMPT TO EXPAND BEYOND 80 COLS  O ! [TERMINATING SCAN ON THIS RECORD] P Da  P ,a ,Zd 1xs Da Da  Da  Da Da  1xs 1xsT Da  "1xs $Da (Da *Da 1xsP G|*}7 @7 77 f  CA @@ @w@@ 7Pwf 7zWj,a T",a V(1xsR,1xsT 2,a Z6w4<,a VT1xsV^1xsVd,a f j,a dn;8wt1xsXz1xsZx7m!  7A w 1C  9D D A -@ @ @@ e rtV S j1xsZ,a V1xsV(1xsP01xs\R1xsR`1xs^d1xs^p1xsRf7 -  -P  m~1xsR 1xsR1xsR1xsR 1xs^(1xsR0j41xsR @,a D` H,a TL:x P!yXj\1xsZ`,a Vd1xsR^V1   -w Q&f ~ 1xsj1xsV1xsR1xsTj"1xsR(j,1xsZ01xsZ 2S>jB1xsTL1xsTR,a r X,a l00, \W*\w4" wf  j,a | ,a vx4BWjw4;8w`:x !yx4G *}( Gb -( B$Z"Da  ,a 1xs`SP t:@` ,a   1xs 1xs&Da .CMD ,a  1xs Da Da READONLY ,a   Da  1xs1xs)SY0: @: Gx@`t:7 @7 7= 7 Bmw7w  7 w|Wj,a ",a ,1xs&01xs(>jD,a H1xs#N1xs(R1xs$Z1xs&d1xs*h1xs(r,a v1xs(rt &#&f  N wf wf wf x ,a 1xs&,a  ,a "x4 ,,a 0\g 8,a  >,a BwJ,a " P,a T"&w\,a ( b,a &fK f9:Wjx4\g w"&wK f9G t:@`( GFPf"Da ,a ,1xs,SP  N ,a ! 1xs 1xs1xs Gb N7 @77A 7r 7 wp@@7f  m PXWj,a $,a  .1xs41xs <1xsF1xs L,a P;3V1xs\,a Wj;3"G ^ N(,a 1xsP p ,a  G0p7 @7E,Wj 1xs "1xs &1xs (,a ,,a Wj"G ,p(,a 1xsDP *(LS@S@=@*@=@(8@Q(d(h  8@Q*_(DBb &fE " [ S([*&~ ~Dp0 ȕ  =L  =!/ @= S P >*[>LW@&{P@*<4@,0z@@2X@(6[h *[ &7 B e  W,0z"<4&  B~2X  &{P P [^ ,a * 1xs, 1xs 1xs0 1xs21xs( RONSU * Gv^[7 @ 7p - www w f ~Wj 1xs,&1xs.,j01xs. 61xs<1xs.@1xs.B1xs(RjX,a ^,a d,a j,a p,a t(xsnr   7 ww f w/ -d1xs,1xs. 1xs2,1xs22j8,a >,a  D,a H[^P1xs*V1xs.b1xs2jj"Wj(xs[^G [^( G4 HHx*,a 1xs4P >*[^>L%@<&%t@*' q@'ą@'@)[M@)Ps@*)@)p@)@)Bx@)@*W@t<@<4@,0z@@*lE@hp!@([^h  *[^Xdp| &7 = B"X d p|W"& e &,0z<4t<))Bx)[M&DpA y *<&%t) )p' q) hp!f  &'ą) hp!')hp!~  }(%' ) hp!lE)Ps P >*[ q>L)sE@)2H@*)%@)Ps@)%@$9!@T; z@*W@<4@,0z@@ձ@*`;@e;@([ qh[h 004rss *[ q7 =  &7  (W*&B 3e p ,0z<4 )2H()Ps*L0 A pRDWtAo)2H)Ps)sE*rBE }, ,)%)%$)%*p \   B()% )sEձe;)Ps$`;*} *T; z )Ps)Ps$9!)Ps&)%*t a  " )%T; z)Ps")%()% 03 )%P *e"LW@<4@,0z@"K@(Fe"h *B& B e #BW,0z<4$&  *`"KJP *"&SL<&k@<&@<&(@*)t @)Bx@)@S@S@*t<@t @<4@,0z@(8@Q("&Sh 8@Q*_"&S &B e S,0z<4(*&CΔ# ~щ~ y S(<&(L&)t <& )t <&()t <&$`t &)t  <&k )t <&k)t )Bx$CCHNCVSPdNSlLR*t<) t )HVd ltFI~VAt~ P *~&HL(8@)Ty@)W@*S@S@:_@[(}@<4@*,0z@; @(8@Q(~&Hh  8@Q*_~&HB e e@fS,0z<4")W*&& Е:`& :_ (8*L eA ~Е.A ; [(}&[(}*rЕ; BCɥ R @ :_  SP (xs ,a `   T &1xs` (Fy .1xsd 61xs` 8Fy :1xsH >1xsf JFy RFy T1xs1xs T0.  Gxs(7 @7 7@7 7@ 7 7=  1   1 7 7rWj,a ",a *,a 0,a 8,a >,a J Pj XFyhj p1xsv1xsT|1xs^v|7 ww f  w q  7=z,a 1xs\ 1xs`&,a ,,a & 2,a 6( FFyH1xsbRj ZFy \1xs:h1xs^l nFytR7xwf  7wf m7| Fy ,a , ,a (,Fy 1xsd&1xs`,,a 0 2,a .6(s<1xsH>1xsfD1xsJH,a L,a <P1xsVT< e7f m7 e7f z 1xs ,a > ,a 8;j"1xsL$1xsf*1xsN.,a 2,a <61xsX <1xs@,a > F,a 8J;RjPwww f  ===z,a B,a D,a H ,a @(* ,Fy241xsb:1xs<<Fy@1xs>BFyHjL NFyZ= ww f ww wf | 1xsb1xs@Fy 1xsBFy j*,a L0,a R 6,a J:(sB,a VH,a XN,a Z T,a TX~&H".e e  jjBWj(,(s;(s~&HG L(xs( G|y G>N*^A  (0 *,a \1xshSFy,P (s ,a   ! 1xs 1xs 1xs.; Gs(7 @7 7@77 m  7@@o7 7= wwjWj,a ",a *,a 2,a 00< \W*1xsFjT 7 7m7 -f z1xs  1xs1xs1xs j"1xs &,a *1xs01xs 41xs 4LS@S@(8@Q(>4h 8@Q*_>4@5 5 u S*& u` BA ɋ ~ *Le5W-IA BC C*r@EE $U W-*W=   S*u @ e ~ W-u-*u-A BCJ*  ~W-BB  f   f*0W- A f  f*V BE 0  9 A| Z P *K0LW@(4K0h  *0& Ar @mt2 0W& K0rP ( *[M%( L(G([M%h G @P *S &LW@<4@,0z@(6S &h *2& B e Ape2W,0z00Drss<4&p  S &:P *SLVHY> HhhH*vL}H,0z@(8@Q(^ch\*h hZS:hZSh0ShSh4  8@Q*6&fD  ff &,0z*&@MI  % 6 ,0zL P *{ZE`LT; z@W@w.@"}Hw@(J{ZE`h *B& & F& ΕfBW}HwF&w.$&ߥFH_@{Z@` T; zFH@(P *F`8L<&%t@' q@W@*<4@,0z@h&@(\F`8h  *X& B e p"XW,0z<4*&eBB# <&%t' q h&L*F`8P *&w`'L(G(&w`'h G@ABR~P 9*>x`'9L(G(>x`'h G@ABR~P 9*>xT9L(G(>xTh G@ABR~P >*yL>L(,yLh  *@AB ѥ R ~ ҕ & ~TP }`; Da I ,a 0 Da Da  Da  Da  Da  Da G.`;}7  777,Wj ,a ""w "1xs &1xs *1xsWj""w*G *}`;(Da ,a 1xsRP w ,a  G^w7 @7 7 BmWaWzC ɐ  72Wj,a ",a 6j<,a  Z1xsWjG Zw( G$>D,a  1xsSP ܚ@ ,a  ! 1xs 1xs1xs G^@ܚ7 @7777= f XWj,a $,a (,a  .1xs21xs61xs F,a Je"TjZ1xsWje"G Zܚ@( G4:<J,a 1xs~P *ܚpL[ q@[@m @*@(xܚph(ܚh. *  "$*&7  D77t*L7wwwtm *r77`  rEC *BM`u  r "m *7H7 4t`"f&e7>*e7:7,   [*   @-7C  [ q*0` m ~ ~ - &Vt m7 P ݚ% ,a  ! 1xs 1xs 1xs G|%ݚ7 Kۚ7 7 7ww< 77 mwe 7W1xs&W.1xs4j8,a  >1xsB1xsF1xs L1xsP1xs^1xsd1xs h1xs n,a r,a z,a xf  1B E  f  m  7@77h ,a  [j1xs,a 61xs >,a B[NjV,a d1xs ljt,a |,a "Wj[[G ݚ%( G G  ۚK(& GDJT,a 1xsP *ݚ%LW@<4@,0z@(2ݚ%h *,& B e00LQ\W*  =,W,0z<4& ݚ%P 䚰r ,a ( !!( 1xs 1xs 1xs 1xs &1xs Gnr7 @77@777ww7f  wWj,a $,a ,,a 4,a 8,a >1xsB1xsF1xs J1xsN1xs RS X,a \ݚ% bSl1xsj & 7  eC e< 7 7  7  r `v v`f 7~1xs*S 1xs S&1xs*1xs61xs:1xs >1xsB1xsP*S RDa V1xsn,a t,a x] ~1xsNw   7 W< Z1xs S1xs1xs"hz&zz*1xs.1xs2,a 61xs 94 136 ^ 126 176 ~ %31 37 US 63 77 ? 95 137 _ 127 177 DEL2 122 R 114 162 r$19 23 DC3 51 63 3 83 123 S 115 163 s$20 24 DC4 52 64 4 84 124 T 116 164 t$21 25 NAK 53 65 5 85 125 U 117 165 u$22 26 SYN 54 66 6 86 126 V 118 166 v$23 27 ETB 55 67 7 87 127 W 119 167 w$24 30 CAN 56 70 8 88 130 X 120 170 x#25 31 EM 57 71 9 89 131 Y 121 171 y7$26 300TUVrssATT/MU,ATT/-SP=ATT/ TASK=...ATT//1 ATTO$ Read and/or change file attributes S ATT filespec[/SW][:nn:nn...] switches are:7 /AT:nnn:val:val...=Update attributes, starting withA! word nnn, and successivelyG /HE = this help textH8 /UP = Update a locked file. Clears the locked bit, and@ copies the file size into the EOF and HI block@ indicators. FFBY set to 1000, RSIZ set to 10004 /LI = List out attribute and statistic informationN MAY CONFLICT"* WITH '/AT', AND SHOULD BE % .TITLE RWATT - READ/WRITE ATTRIBUTESN .IDENT /V01/O .NLIST BEXY; .MCALL QIOW$S,EXIT$S,OPEN$,FSRSZ$,GCMLB$,GCML$,CSI$1,CSI$2E: .MCALL FINIT$,NMBLK$,FDBDF$,CSI$SV,CSI$ND,CSI$,DIR$,QIOW$# .MCALL FHDOF$,CSI$SW,ALUN$S,FDOP$AY FSRSZ$ 2MBUFFER: .BLKB 512.TIBUF: .BLKB 80.&STBUFF: .BLKB 10. ; STATISTICS BUFFERGCML: GCMLB$ 3,ATTATTFDB: FDBDF$ FDOP$A 2 ATTMSK= 1 HLPMSK= 2M UPDMSK= 4U LSTMSK= 10!SWITCH: CSI$SW AT,ATTMSK,,,,SWTBL_ CSI$SW HE,HLPMSK_ CSI$SW UP,UPDMSKE CSI$SW LI,LSTMSKC CSI$ND SWTBL: CSI$SV OCTAL,ATTNUM,2 CSI$SV OCTAL,ATTVAL,2 CSI$SV OCTAL,ATTVAL+2,2 CSI$SV OCTAL,ATTVAL+4,2 CSI$SV OCTAL,ATTVAL+6,2 CSI$SV OCTAL,ATTVAL+10,2, CSI$SV OCTAL,ATTVAL+12,2C CSI$SV OCTAL,ATTVAL+14,2O CSI$SV OCTAL,ATTVAL+16,2B CSI$SV OCTAL,ATTVAL+20,2 CSI$SV OCTAL,ATTVAL+22,2T CSI$NDRATTNUM: .WORD 0AATTVAL: .BLKW 10. NUMVAL= 10.T CSI$ CSI: .BLKB C.SIZEK .EVEN?RDATT: QIOW$ IO.RAT,2,1,,IOSTAT,,RDATL: .BYTE -12,0 .WORD BUFFERS .BYTE -11,12W .WORD STBUFF,0,?WTATT: QIOW$ IO.WAT,2,1,,IOSTAT,,SWTATL: .BYTE 4,40 .WORD BUFFER+H.UFAT .BYTE 3,1 .WORD BUFFER+H.UCHA,0IOSTAT: .WORD 0,0,0QIODPB: QIOW$ IO.WVB,5,1,,IOSTAT,,QIOBUF= QIODPB+Q.IOPL,QIOLEN= QIODPB+Q.IOPL+2ALINE1: .ASCIZ "WD.00/ %8P"LINE2: .ASCIZ "WD.10/ %8P"LINES: .ASCIZ "STATBK:%5P"NLINE3: .ASCIZ "(LEGEND: #0=R.FIX=1,R.VAR=2,FD.FTN=400,FD.CR=1000,FD.BLK=4000)"BLINE4: .ASCIZ "( #1=F.RSIZ; #2,3=F.HIBK; #4,5=F.EFBK; #6=F.FFBY)"KLINE5: .ASCIZ "(STATBK: #0,1=HI,LO LBN; #2,3=SIZE; #4A=#ACCESS, #4B=#LOCK)",GHELP: .ASCIZ "ATT- READ/UPDATE ATTRIBUTES. 'ATT FILESPEC/SW:VL:VL...'"+> .ASCIZ " WHERE FILESPEC IS THE HEADER, AND THE SWITCHES ARE:"? .ASCIZ " /AT:NO.:VAL:VAL...=UPDATE ATTRIBUTES, STARTING WITH", .ASCIZ " WORD # 'NO.', THEN SUCCESSIVELY."! .ASCIZ " /HE = THIS HELP TEXT""? .ASCIZ " /UP = UPDATE A LOCKED FILE. CLEARS THE LOCK BIT, &"08 .ASCIZ " COPIES THE FILE SIZE INTO THE EOF & HI BLOCK"8 .ASCIZ " INDICATORS. FFBY=1000 AND THE RSIZ IS SET TO"8 .ASCIZ " 1000 IF IT IS ZERO. THIS OPTION MAY CONFLICT"1 .ASCIZ " WITH '/AT', AND SHOULD BE USED ALONE.":@ .ASCIZ " /LI = LIST OUT THE ATTRIBUTE & STATISTIC INFORMATION" .BYTE 0 .EVEN FHDOF$ DEF$LL;= .ENABLE LSB START: FINIT$I ALUN$S #1,#"TI,#0 ALUN$S #2,#"SY,#0!10$: GCML$ #GCML ;GET INPUT LINEH BCC 100$ CMPB #GE.EOF,G.ERR(R0)A BNE 30$ EXIT$SS030$: QIOW$S #IO.WVB,#5,#1,,,,<#31$,#32$-31$,#40> BR 10$E!31$: .ASCII /ATT - COMMAND ERROR/T 32$: .EVEN;A*100$: CSI$1 #CSI,G.CMLD+2+GCML,G.CMLD+GCML BCC 200$T4110$: QIOW$S #IO.WVB,#5,#1,,,,<#111$,#112$-111$,#40> BR 10$U!111$: .ASCII /ATT - SYNTAX ERROR/ 112$: .EVENB; 200$: MOV #ATTVAL,R5 MOV #NUMVAL,R4V210$: MOV #152525,(R5)+. SOB R4,210$ CSI$2 R0,OUTPUT,#SWITCH BCC 300$U BR 111$;0300$: BIT #HLPMSK,CSI+C.MKW1 BEQ 305$C JMP 1000$305$: MOV #ATTFDB,R0 MOV #ATTFDB+F.FNB,R1: MOV #CSI+C.DSDS,R2, CLR R3# CALL .PARSE ;SET UP FDB: BCC 400$T4310$00\a\W*: QIOW$S #IO.WVB,#5,#1,,,,<#311$,#312$-311$,#40> JMP 10$1311$: .ASCII "ATT - FILE PARSE / DIRECTORY ERROR", 312$: .EVEN#;$"400$: CALL .FIND ;GET THE FILE ID BCS 310$X2 DIR$ #RDATT ;READ THE ATTRIBUTES, STATISTICS BLK BCS 410$R TSTB IOSTAT BGT 500$)4410$: QIOW$S #IO.WVB,#5,#1,,,,<#411$,#412$-411$,#40> JMP 10$)411$: .ASCII /ATT - ATTRIBUTE READ ERROR/5 412$: .EVEN$;0500$: BIT #ATTMSK,CSI+C.MKW1 BEQ 550$: BIC #177760,ATTNUM, MOV ATTNUM,R5 MOV R5,R4 NEG R5: ADD #20,R5 CMP R5,#NUMVALW BLE 510$, MOV #NUMVAL,R5, 510$: ASL R4 ADD #BUFFER+H.UFAT,R4 MOV #ATTVAL,R3O520$: MOV (R3)+,R2 CMP R2,#152525A BEQ 550$G MOV R2,(R4)+ SOB R5,520$550$: BIT #UPDMSK,CSI+C.MKW1 BEQ 580$I BITB #UC.DLK,BUFFER+H.UCHAT BEQ 580$0 BICB #UC.DLK,BUFFER+H.UCHA1 MOV STBUFF+4,R0 ;GET HI SIZEP MOV STBUFF+6,R1 ;GET LO SIZEB MOV R0,BUFFER+H.UFAT+4E MOV R0,BUFFER+H.UFAT+10 MOV R1,BUFFER+H.UFAT+6 MOV R1,BUFFER+H.UFAT+12 MOV #1000,BUFFER+H.UFAT+14R TST BUFFER+H.UFAT+2 BNE 560$W. MOV #1000,BUFFER+H.UFAT+2 ;SET DEFAULT TO 512560$:F;H4580$: TST CSI+C.MKW1 ;LISTING IS DEFAULT IF NO FLAGS BEQ 585$4 BIT #LSTMSK,CSI+C.MKW1 ;ELSE SEE IF LISTING DESIRED BEQ 600$ ;NO - CONTINUEI585$: MOV #TIBUF,R5R MOV R5,R0 MOV #LINE1,R1 MOV #BUFFER+H.UFAT,R2 CALL $EDMSG MOV R1,QIOLEN DIR$ #QIODPB, MOV R5,R0 MOV #LINE2,R1 CALL $EDMSG MOV R1,QIOLEN DIR$ #QIODPBV MOV R5,R0 MOV #LINES,R1 MOV #STBUFF,R22 CALL $EDMSG MOV R1,QIOLEN DIR$ #QIODPB. MOV R5,R0 MOV #LINE3,R1 CALL $EDMSG MOV R1,QIOLEN DIR$ #QIODPBF MOV R5,R0 MOV #LINE4,R1 CALL $EDMSG MOV R1,QIOLEN DIR$ #QIODPBB MOV R5,R0 MOV #LINE5,R1 CALL $EDMSG MOV R1,QIOLEN DIR$ #QIODPBI;I!; WRITE OUT THE HEADER ATTRIBUTES;V600$:,. BIT #,CSI+C.MKW1 ;WRITE REQ'D? BEQ 900$D DIR$ #WTATT BCS 610$ TSTB IOSTAT BGT 900$M4610$: QIOW$S #IO.WVB,#5,#1,,,,<#611$,#612$-611$,#40> JMP 10$-611$: .ASCII /ATT - WRITE ATTRIBUTES FAILURE/ 612$: .EVEN.;M 900$: JMP 10$#;E1000$: MOV #HELP,R0M1010$: MOV R0,R1 TSTB (R1) BNE 1020$ JMP 10$1020$: TSTB (R1)+ BNE 1020$ MOV R1,R2 DEC R1M SUB R0,R1$ QIOW$S #IO.WVB,#5,#1,,,, MOV R2,R0 BR 1010$I .END START THE HEADER ATTRIBUTES;V600$:,. BIT #,CSI+C.MKW1 ;WRITE REQ'D? BEQ 900$D DIR$ #WTATT BCS 610$ TSTB IOSTAT BGT 900$M4610$: QIOW$S #IO.WVB,#5,#1,,,,<#611$,#612$-611$,#40> JMP 10$-611$: .ASCII /ATT - WRITE ATTRIBUTES FAILURE/ 612$: .EVEN.;Mzt OD<&Kq@p@:2@}s@:p@<&9@?T@ X@?S@X@=@@=@*:@<&D@  y ( ZZR||, Dii<&9<&Kq<&D '0 ATT>0 PVATHEUPLI2468:<>@BDF6 (2,406488:<<@>D@HBLDPFtt  P     WD.00/ %8PWD.10/ %8PSTATBK:%5P(D:p "P(:.24@D N:2TXLEGEND: #0=R.FIX=1,R.VAR=2,FD.FTN=400,FD.CR=1000,FD.BLK=4000)( #1=F.RSIZ; #2,3=F.HIBK; #4,5=F.EFBK; #6=F.FFBY)(STATBK: #0l,1=HI,LO LBN; #2,3=SIZE; #4A=#ACCESS, #4B=#LOCK)ATT- READ/UPDATE ATTRIBUTES. 'ATT FILESPEC/SW:VL:VL...' WHERE FILESPEC IS THE HEADER, AND THE SWITCHES ARE: /AT:NO.:VAL:VAL...=UPDATE ATTRIBUTES, STARTING WITH WORD # 'NO.', THEN SUCCESSIVELY.d /HE = THIS HELP TEXT /UP = UPDATE A LOCKED FILE. CLEARS THE LOCK BIT, & COPIES THE FILE SIZE INTO THE EOF & HI BLOCK INDICATORS. FFBY=1000 AND THE RSIZ IS SET TO 1000 IF IT IS ZERO. THIS OPTION MAY CONFLICT WITH '/AT', AND SHOULD BE UG\SED ALONE. /LI = LIST OUT THE ATTRIBUTE & STATISTIC INFORMATIONS} & TI& SYZ0 b $`300dgVrss & & & Ε ATT - COMMAND ERRORN X*Z2?SN`:2H  V& & & Ε ATT - SYNTAX ERROR4 Uȕ 5w $H=$V6:2T4fl@=N % "& & & Ε wATT - FILE PARSE / DIRECTORY ERROR ؇t! . , N}s 2:2b Xht~.  & & & Ε wATT - ATTRIBUTE READ ERROR5ED eW!  e4 UF5@:2bf4 |@t7n7nwhwhd VN 5B@ w@ w@P.HNRV?T^fj?Trz~P w@ w@. w@a w|5*P#  & & & Ε>?T?T"*..?T6>aB?TJXn n  w2ATT - WRITE ATTRIBUTES FAILUREwɋwыB  f&& & & Ε :24b:2f4 |@t7n7nwhwhd VN 5B@ w@ w@P.HNRV?T^fj?Trz~P w@ w@. w@a w|5*P#  & & & Ε>?T?T"*..?T6>aB?TJXn n  w2ATT - WRITE ATTRIBUTES FAILUREwɋw|t @ QQ(U) SYSYSYSYTICL O ```~'00la\W*0 ATT>PATHEUPLI2468:<>@BDF  P     WD.00/ %8PWD.10/ %8PSTATBK:%5P(LEGEND: #0=R.FIX=1,R.VAR=2,FD.FTN=400,FD.CR=1000,FD.BLK=4000)( #1=F.RSIZ; #2,3=F.HIBK; #4,5=F.EFBK; #6=F.FFBY)(STATBK: #0,1=HI,LO LBN; #2,3=SIZE; #4A=#ACCESS, #4B=#LOCK)ATT- READ/UPDATE ATTRIBUTES. 'ATT FILESPEC/SW:VL:VL...' WHERE FILESPEC IS THE HEADER, AND THE SWITCHES ARE: /AT:NO.:VAL:VAL...=UPDATE ATTRIBUTES, STARTING WITH WORD # 'NO.', THEN SUCCESSIVELY. /HE = THIS HELP TEXT /UP = UPDATE A LOCKED FILE. CLEARS THE LOCK BIT, & COPIES THE FILE SIZE INTO THE EOF & HI BLOCK INDICATORS. FFBY=1000 AND THE RSIZ IS SET TO 1000 IF IT IS ZERO. THIS OPTION MAY CONFLICT WITH '/AT', AND SHOULD BE USED ALONE. /LI = LIST OUT THE ATTRIBUTE & STATISTIC INFORMATION & TI& SYZ0 b $`3  & & & Ε ATT - COMMAND ERRORH  V & & & Ε ATT - SYNTAX ERROR4 Uȕ ־5w N 8% " & & & Ε wATT - FILE PARSE / DIRECTORY ERROR t؇t! . & & & Ε wATT - ATTRIBUTE READ ERROR5ED eW!  e4 UF5@|@t7n7nwhwhd VN 5B@ w@ pw@P Xw@ Dw@. 0w@a w|5*P#  & & & Ε w2ATT - WRITE ATTRIBUTES FAILUREwɋwыB  f&& & & Ε   *  + 23E&  Ew ¿   Е-   0@ rW e`fÊ    E  w Z ť ť 0BBpAaw 0' UD$BA &( U BQ (Е*~ & &  r(f  e ee e ^}00tgVrssABDEFIJMNOPQRSTUXYZ<>?:Qmx~)JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDECw && D¥%  B&ХVA L C ea!  aeLb A  Е%̥V P Е Bf L & eKR& eKK& eLFHŀ ȕ  Е Ћ  &   !ȕ Е Е & ebK & eNKЕ A %& e"KA :L Е Е A LA   $Е. L AЕ; J    A EA  E 6Dw 5 funhj \uhf@# "jwaw: 8 8w &  * *AdBbAep& f  P aAAf@pnp C*8֋ 88*Ë6AB`f Ua`& WaWz  ɥ"N ~ ajfu-nhwXɥ;]a)wנ"å.@j  a Tw@ ŀajTI& af* *`V @e,w jjlj ɥ@Iaujk,bp 5f fˇ ȕ ‡ eSY@$# E$ e,5 funhwe,aja`W- f`nwJuhnw@ ~ Dllja!CeH###33@# D & 8 *8 ćw ` 8jDl@ TeBT85l@ An5j)f  ,      RՀa@w D&& XЕ- eaePPPЕ-w D Е.p r Е:   DFBf&f ` *  נ נ  נננ"D נaנz E ѐEp(p נ$נ0נ9נAנZנ_נ:  Vנ[ȕ]נ<ȕ>ȋ8 ~נ%נ*נ-נ.נ0נ9נAנZȠ yנ0נ7נ*נ,A jȠh f  oנ"A   #A aנ$נ%נ*נ0נ9נAנZנ_נ.  נ.נ; dנ0נ9 ]נ- X נ* QA  נ, Dנ=  >5 B>U (w^נ/* . ,נ$נ-נ.נ0נ9נAנZ נ_ נ:  Dנ"  0f&f E^`  UQ  UQ ËUI U `e  !ddC    D%*.C U 0 0 W ,Uw6W /@ : ^BDaW-Ί WNWOD!BΊz CECCD! D! ΋5  e ΐ TpRpR΋pBC5N KR΋KBAE:D0CĊ f eB  Dҁ CSĊ f WB E Br Ε f)& 6 l(*  E 'W " =N  W :+W = 1 #W ,W / %W %W *Հ W <W [W >W ] v(* 6 ew  whw  w^w  wVw B C DBe ?D(1 >eB  8 X$&w (*   f  v &f w  w & W+W- Ba. W#  B0  c  c S W %ec e`s  # 3  & ˥ Z ^C    f n >5>Eu   &ff w BC "& @SY*p0p210=E%0=w *e "f D CB.Ew B*8^  -  .NA M*)98 * eB &&  U l **e *Nlv ΋*.2  & #!)&ePe && >e >E p00|a\W** j wZ w *D 4 ~w w v) 8C 0* ) *w * ,   ep p  nއ = EW9ť^*0p CaC  = <  0* =Eե^A e@  = Ep+!"8eE`l0  0s00/pq0`p l064p 4 r p  , J *` f C#   D @)  6?0D)w *) f * w46l0w D D 8#"#)%ĥ ĥ w 0 *0 @Q$    0 40 60)) P  [# HT&* =w< 2s q EW!p0p2 R ؇#( P) @#**fff N  &*w. k58e$8wT 2j  ,EB0-%. #p.2e   483  -Y r38 (#5=A#@))  *R*)@#0l C# 028 00ĥۇAĥĊ  000 0 @0 &*0 @ u #eB n * V eBe>  # #D #=0/H#@&0 # = e0   0@e 6=#02/002# @#?@#040 6w\/! 0s0 0/0q0p!0 .=p0p2w *#   U@e   e w: 1  %,,  w *D B UqqC ӥ: ~ Ce   *w *  ע"wd(Ĕ%.%%;C~ 5)5@DD ͥ*Ce e%w U\5@ 5wU U*U  "5@\U@5 5LU*U  ʥ*%C!.D` *weC5U5  5 5@e*=U Ee& REe  ӥ" wX ˥"   ˥" Ք     Օ &   `@ ` B   & A @    0+1e  @%p*w f( f)f ^8Ae f"( UCɗ+e$&% *8 -2e  L0 0 0 80 B0 0 0 0)#0.)"(. = . B  E  (. *) l0, *) $ )*)0,40,6 w ~*  w @ P 4,,  *e6p 4 `8 0 .8 81416      8 -̋  f  8  08\0 ep=& /empp* $  - C46/`A p  C ? t  "̋3t42 &8f08  880!8 % v  8 wVw) : J 2 8   ***  DP5R~RRR~=D ~ `p46 f 64/=  @) 0  8w 46 8 ^e*w > =00l&8el00rss2 0 *141612epl2l0p Mw\ ` f &* F*w reE D` bl lrw .  B eE"s    s-  CslM=f& e %&&eH =&e0  U   E > >E=uf p  w*He(  1 :&e  1-1- 111 rrrrr &  Be  w8* w @&Ba +- ʥ# . U 0   b   `     &fe ~  2 $ L La Ta Wq(W!ZW!AW!9W!0@8e2 ..8em,0l0!D0e6p 4K) *Cf   +e) .* .8 - ̋  G  V Bp8e6p 4 t08*w=p!Օ^*&f  EU   pr0 =B@&& p&  N pv C`B `v 0rr D wC r UeeA e* 0s rp v& sBvrp   ,*1 BU8UM%..w w B 00fep=& /e`pw46f  8 E D/D!pq0l8epl0pɥ .ɕ*wlw  )* 2 fU %  BA `6p 4p`40,0, f 톇,, w r     .% eB U5UU plp & NeՀ)*f&5ҕ[ "5ҕ, 5ҕ]Et55tF e0ҐtIw | ҥ[, &]  5 sC~ D w1 z   1 1 1 1 1 1 DEee $ $  .TITLE ATTACH .GLOBL ATTACH .GLOBL DETACH .MCALL QIOW$CATTACH: QIOW$C IO.ATT,5 RETURNDETACH: QIOW$C IO.DET,5 RETURN .END.10 ! PROGRAM TO FIX BATCH LOG FILE FOR EDITING15 DIM A$[80]V,NA$[20]V620 INPUT "NAME OF BATCH FILE (INCLUDE VERSION #) ";NA$21 OPEN #3, NA$+"/RO"#30 INPUT "NAME OF OUTPUT FILE ";NA$31 OPEN #4, NA$+"/WR"35 IF END #3 THEN 10050 INPUT LINE #3,A$55 IF LEN(A$)<4 THEN 50!60 PRINT #4, SBS$(A$,2,LEN(A$)-1) 65 GOTO 50 100 CLOSEC BELL.FTNDC A TRIVIAL LITTLE SUBROUTINE TO RING THE BELL ON YOUR OWN TERMINALC SUBROUTINE BELL BYTE BCODE(2) DATA BCODE/0,7/ WRITE(5,100)BCODE100 FORMAT(2A1) RETURN END00W* ; BITTER.MAC;1; A SUBROUTINE TO DO OPERATIONS ON THE BIT LEVEL;9; USE BY SAYING: CALL BITTER(NUMBER, OFFSET, OPERATION)@; IF OPERATION = 1, WANT TO SET BIT OFFSET OF BITS 1 THROUGH 16%; IF OPERATION = 2, WANT TO CLEAR IT8; IF OPERATION = 3, ARE TESTING IT TO SEE IF BIT IS SETC; FOR THIS OPERAATION, USE IT BY SAYING, J=BITTER(NUMBER,OFFSET,3)0; J WILL BE 1 IF THE DESIRED OFFSET IS SET4; J WILL BE 0 IF THE DESIRED OFFSET IS NOT SETI; WHEN USING IT IN THIS WAY, BE SURE TO DEFINE BITTER AS AN INTEGER; .GLOBL BITTER .TITLE BITTER@BITTER: MOV @2(R5),R1 ; MOVE THE NUMBER TO R1N MOV #1,R2 ; THIS WILL BE THE NO TO SET OR CLEAR< MOV @4(R5),R3 ; MOVE OFFSET TO R3 DEC R3J ASH R3,R2 ; R2 NOW CONTAINS THE WORD TO SETD CMP @6(R5),#1 ; DO WE WANT TO SET THE BIT BEQ SETF CMP @6(R5),#2 ; DO WE WANT TO CLEAR THE BIT BEQ CLEARK CMP @6(R5),#3 ; DO WE WANT TO TEST TO SEE IF SET BEQ TEST RETURNSET: BIS R2,R1 MOV R1,@2(R5) RETURNCLEAR: BIC R2,R1 MOV R1,@2(R5) RETURNTEST: BIT R2,R1 BNE OFF CLR R0 RETURNOFF: MOV #1,R0 RETURN .END10 DIM UI$[9](50),G$[4],U$[4]20 DATA [1,10]21 DATA [1,11]22 DATA [1,12]23 DATA [1,13]24 DATA [1,14]25 DATA [1,15]26 DATA [1,17]28 DATA [1,20]29 DATA [1,21]30 DATA [1,22]31 DATA [1,23]32 DATA [1,24]33 DATA [1,25]34 DATA [1,26]35 DATA [1,27]36 DATA [1,30]37 DATA [1,31]38 DATA [1,40]56 FOR I=1 TO 18 57 READ G$,U$58 UI$(I)=G$+","+U$ 59 NEXT I460 FOR I=1 TO 18 : PRINT UI$(I) : GOSUB 100 : NEXT I65 PRINT "TOTAL BLOCKS"370 B=0 : CALL "SPAWNB"("PIP WK:[1,4]X.=[1,*]/TB",B)U=80 B=0 : CALL "SPAWNB"("QUE LP1:=DR:[1,4]X.;*/DE/-HD/FO:1",B) 90 EXIT3H100 B=0 : CALL "SPAWNB"("SRD WK:[1,4]DIRECTORY.="+UI$(I)+"/MI/SE:*.*",B)`110 B=0 : CALL "SPAWNB"("LIS WK:[1,4]DIR.;"+OCT$(I)+"=WK:[1,4]DIRECTORY./CO:2/LE:62/WI:79/TR",B)8120 B=0 : CALL "SPAWNB"("PIP WK:[1,4]DIRECTORY.;*/DE",B)Q130 B=0 : CALL "SPAWNB"("QUE LP1:=DR:[1,4]DIR.;"+OCT$(I)+"/DE/-HD/FO:1/PR:150",B)I 140 RETURNRINT UI$(I) : GOSUB 100 : NEXT I65 PRINT "TOTAL BLOCKS"370 B=0 : CALL "SPAWNB"("PIP WK:[1,4]X.=[1,0; COMMAND FILE TO LIST ALL OF BORGER'S "TASKS"PIP [1,10]*.TSK;*/LIPIP [1,11]*.TSK;*/LIPIP [1,12]*.TSK;*/LIPIP [1,13]*.TSK;*/LIPIP [1,15]*.TSK;*/LIPIP [11,13]*.TSK;*/LIPIP [311,25]*.TSK;*/LIPIP [311,26]*.TSK;*/LI CASINP=CASINPLB:[1,1]F77OTS/LB/PRI=150ASG=TI:6//=C PROG TO DO INPUT FROM CASSETT READ TO FILE WITH NO ECHO/ LOGICAL*1 ILINE(140),JLINE(140),FNAME(30)- DIMENSION IPRM(6),JPRM(6),IST(2),JST(2) IFIRST=1 WRITE(5,100)7 100 FORMAT(' PROGRAM TO INPUT FROM CASSETT RECORDER'/" 1 /'$NAME OF OUTPUT FILE ? ') READ(5,110)KQ,FNAME 110 FORMAT(Q,30A1) CALL ASSIGN(1,FNAME,KQ) CALL GETADR(IPRM,ILINE) CALL GETADR(JPRM,JLINE) IPRM(2)=132 JPRM(2)=132$C INITIAL START TO GET INTO 00rssLOOP, CALL QIO("001020,6,1,150,IST,IPRM,ISW) GOTO 210, 200 CALL QIO("001020,6,1,150,IST,IPRM,ISW) CALL WAITFR(2) CALL CLREF(2)a IF(JST(1).LT.1)GOTO 300, WRITE(1,220)(JLINE(I),I=IFIRST,JST(2)), 210 CALL QIO("001020,6,2,150,JST,JPRM,JSW)C NOW WAIT FOR FIRST QIO CALL WAITFR(1) CALL CLREF(1)e IF(IST(1).LT.1)GOTO 300, WRITE(1,220)(ILINE(I),I=IFIRST,IST(2)) 220 FORMAT(' ',120A1) IFIRST=2 GOTO 200 300 CALL CLOSE(1)!C CANCEL ANY OUTSTANDING READT. CALL WTQIO("000012,6,4,150,JST,JPRM,JSW) STOP ENDME(30)- DIMENSION IPRM(6),JPRM(6),IST(2),JST(2) IFIRST=1 WRITE(5,100)7 100 FORMAT(' PROGRAM TO INPUT FROM CASSETT RECORDER'/" 1 /'$NAME OF OUTPUT FILE ? ') READ(5,110)KQ,FNAME 110 FORMAT(Q,30A1) CALL ASSIGN(1,FNAME,KQ) CALL GETADR(IPRM,ILINE) CALL GETADR(JPRM,JLINE) IPRM(2)=132 JPRM(2)=132$C INITIAL START TO GET INTO (T ba : DRSYSYSYSYTITIMO`abd"d"(````WSYSYSYSYTITIMO 12&!#  #wl%)5 ZR&wFC @AW P ~ & & & & ` fRRRRC      w 61*8w| &* ~ & #!)&ePe #&& >e >E 8p* zw8)   h 5ҕ^B 8 * -   .BA M*w $0 pp*Ce( Lˋ˥ ˥˥ ђ˥=  L   Lp& `!  ZCe eÒ{r(Fv0  =]/;[:,! EՋ  +z(a Z A90* .$ ! 0 % x%  j%@ w  0 &&  |. " ] W! ʥ* @&&  ,. -   % C   &   %    Х.% %̇ ȥ* R 䂿w f-0 0  (ȥȥ *  00W* 3:: ] ]&fŔ` U%ΤdeDBŔ`Ӌ ` Ţ   ť/ ť= (* <&f& Rʥ-  ʥNO  T5 -4  4,0S 0S5!0C E  SE  C EW/W: W=W, t  ^&fפĢĒ& Ē e44C   &l!   Ջ UE []=:/,ҥ* !ŋ E & 5% e5w **eB 8 D > w `*B C DBe ?D(1 >w * ) <8C * ) *w * j D ep p   = EW9ť^*0p CaC    0* e@  = Ep p  8 V *`)w  C# `   D @)  6?0D)w :(eTw w ,(w D 8ww# ĵ ĵĵĵwĥw| 0 *0 @0 0 0  0 0 40 6))eB B  * V# lO  *w 2s q Ep0p2 t #* P) !@#**fff 6   wb ,8e$8D 2*w  ,EB0-%. #p.2e 8' 483  -Y Z38 W0 #00ĥAĥĊ  000  0 @w *0 @ #& &&  R**#&*eB  R ****wV  eB e>  # #D # H#@&0 #   0@ e E p 6 # @#?@#040 6I#A  A# @)0  0 J&*Υ) 4*!@#0l # 028  #& &e0  eBf 002 ! p0p2eB  8 $&w #* h   8Qf ? e |RyeB  & & LP) Dõ & & & & & ffI  eA w B" Fjde& & & B  2PΕ   N Υ$Ε  22Υ   v Ε f e * *e*w~@)0,    )*)'   =  l 0l   / e&=Ba@a  re0bGee@ A := E ep ) %  ,    >wwv  LwB #  f  `**w)0406 l0 C & ~`  `Ba#   ~ L V =p!Օ^8e2 *8Ae f"( UCɗ+e$&% 0+1e  %p*wt f( f)f P8 -2e  L0 0 0 80 B0 0 0 0)#0. ) &;f  #e).8 - ̋  G  p8 e6p 4 p08* Zw :*f00rssBC "& D SY*p0p2q10= =e "fD CBA  f &* * *) l0, *) $ )*)0,40,6  DP5R~RRR~ 8  ***e6p 4 X8 .8    8 -̋  4,44,6   08]0 epmp0* - B46 eA p  C ? t  "̋3t42 &8f08 880!8 %   8wwd* )fff f f1    1  ew141612epl2l0pG=f& e %&&eH &e0  U   E > >Ef p  w   f J >5>Eu P  Mw21 =00l  0*w >*w@#   U@e ` eRw1  %,, w *D B UqqC ӥ: ~ Ce f   *w *  xĔ%.%%;?~ 5%5@<D ͥ*Ce X%wUO5@ U U*U  U@5 U*U  ʥ*%C!-D` )eC5U5  5 5@e*f&f& $ր 0,0, f 톇p   w N     +% eB U5UU t plp & Ne*,*1 U8UM %.. w Bfep`pwpfe Vwe(  1 :&e  1-1- 111 rrrrr &  Be , w*&fe ~  2 $ L La Ta Wq(W!ZW!AW!9W!0@    f e  C C C e`1 z   1 1 1 1 1 1 DEee $ $ f&5ҕ[ "5ҕ, 5ҕ]Et55tF e0ҐtIw  ҥ[, &]  5 sC~ D w .: 7 N# f$ Z% n# t F*$ p2$ 8$ >$ +>$ N$ 6N$ -J$ <!&e% Ȅ !7 R$ *b$ b$ -p$ ^`!&ew$ TȄ !7N lp8bb$ f$ & z%% & PROGRAM TO INPUT FROM CASSETT RECORDER $NAME OF OUTPUT FILE ?   w  $%%%x$%%$$$$%%%$$$$$%%%$"$$&$$%%%,33&(&''''(33&*P&00W*P5*\5 ' `*2&ff  w &Ba +- ʥ# . U 0   b   `     w eE D` bl lrw \  B eE"s    s-  Csl&f 00rss  &&f  E3  ߆ %  І %ĉĆ BB ĉ , ,‰; ,JJV 3Vȥ ȕ$ȥ+ `l s@ Ps`; Fs,3/"R"'" 3 0As  :   >3  H JhŀdՀ`[WB ;  M  B@ 3VA3 N  & LwwtF3   H Z3 3 V3 N J  "e$"F3 Z NE% % % 5%% W 3W H Nwp `5@ @  E5e73 *,JJ ,J Jҕ Jx澉T96%  Ttr  $%T %T R%TR3,% e3LsNP(3LsN xsP%% %2 hsR%2%4 TsPRNZL&P N N5@ Х,  N %RN ‰Nc % U%%  %2R%6RR n%B%.D THwA炜`AfH lT  BE&~WtEB~L  sWwR. %LHTD` B~RHT%S%.S HAL `A>  $J J N   - ΋  BE~WtEB~w . %LHT w Е `CBД~w TH @` C~,.:.^|>R06B  . &    h ^    3 ^ f  1v. v  Օ,x | r5eT Օ.eZ \Օ; c :r&?  H .Օ Օ-   e:f s!pU Օ ` D~  A M•0 M Mf6E@p^ pɉ ˉȉʉ@tEpB sՕ Օ ss  e hs& & &f& & & Ε  2nff)n s& TIf&( % b %e ee e  <0T/3@#@4<0*Dp p{%8;!&(}h8 B:*K !*KK Z ZZ  B`@`+ `6-fp&fWw(xydz z`X8; ` !(} K} Kjxp! oDp%8;!&(}h8 B*K !ZZ  `6-z`XKjx qD00ČrssDT*L0*@'@t @*:`@[(}@`@p@hp!@*}@({h:hB`@h*fp&hfWhw(hxhydhy (I -|# F F<`Ly^^ t  0*@ @ '*# h   'hp!h"&}*4r |xp r}|$(}*Zd\^PY^-P^F^-P^-0**^QC0&f@BB~   $}*|  |}$(}* ^O}0**^-^PNN-eB&j$j*@~ $ @ `*>"vlAE v l*d &?e E:`  * ~ E $jPP:` ~ :`$"j*vPЕ:Е[~PɋЕ,PɋЕv~ *]@e Е.  @[(} w  T*qL{@:@B`@@*fp&@fW@x@yd@( 0*h8 oh * w6w0wn7 Dw zw w :z"fW&x*&.mN(mH"w w : xw  : "x(yd*Lw w 8 z w w w "B`@8 z x$fp&({*rB&." *r ae S *  ~ v x *j# 7#bw w \ H* &BCD   &*0w"w7  7*V&7  #K *|7!e w w(*w mmw mm*   ww w*w w z4m 4m  *Ym m Mw H*:mm?mm   *`2w  +w  *w 4m 4m   w fe* m m  *w w&CD !!w *!f r *@ m E *DEw t    *j       E        *  E       PE*PP EPHP7 $ *   R 0* 0 &:: 8") *(#e e 7!  *N w,  *tw w Tw* 7 xwd*p l,-d` ZrN"r*mHDw.8.0m*.* "wdw- d*2mlwm*X[ *~EE 4 r*El hdE^  *B m: e *  e8"8*e(pp*<hppp*bpp *p؀pȈpp*𨀐hppp p *PP PP P @*p ppp pp *  PPPPPP x p@( ` `P*F`P`h@ @@@ @ p p *lp0 @ @ 0`H H H H* Hp0pp0pp0P @* @pppxp p``````` `@* p@p@ p@   @d||*Dl||t*00̌W**`(D~|||*P L2Rd~~@00@0(*v(|DDD|8D8D|D888|||||||8|*((H&TT$`L*8DD8T8||8T` *||D䂒l0($b x" * ` lR@NP o(>*7͋7 7 d7 *b& w|w|wvwvmhj97 dm*^mVZ07 TmNmFJ'%B#* m6<%4-(( 0$*0  *Ve *|ee * &wmwmCw *D wp jV7 dm^ ^N*%VJ7 RNmF L > 7 8*4mr, nhhbdZ*:V L -F-><*`m0%  m%* ww&wt*p7 j-+4#e7V *N7F4 < 744 ** 7"4  *&f BAwwww*Dwww m 7Dm 8*j 7 x'vprlm 8*ll 7\Dm\\ 7L @  88*  ( 0"&(* * wXwVwT JBB*( 7 :2**Z&m *NT NdfljnpT dfljnp*t wvrtwnjlwnjjwhw*6w\XX T@B<> @*Hm62 *< e<*  m *2EB `GmB *X` bH`*~ :eH\XZX*X TBDmJ>8 D$,* *& www*w7 -*<7 ww  z Z HZ$&(*bwL T7 L#0 D* <  -   (*0  *&Be*  * Ee0   8* @BC  \*F ww*l n8f ~r"$&r(*<d"e<Fm>:80* HrH.eHm r TIXz`IX ,a  1xs 1xs GF`z7 =C7=pC7wf 0Wj $1xs01xs6,a  <,a @z Wjz "G Bz`(,a 1xsHTIXKjIX ,a   1xs 1xs 1xs 1xs GTjK7 C}@wWpC=7}wf 8Wj &1xs41xs<1xsD1xs J,a NK}WjK}"G PKj(,a  1xsPTIXpIX ,a 00Ԍrss 1xs 1xs GXp7 =C7=pC7www w f HWj $1xs01xs6,a <,a B,a H,a N,a RpWjp"G Tp(,a 1xsTIX%8;IX ,a  1xs 1xs 1xs Gv8;%7 =C7=pC7 =C7 =pC7ww w f PWj $1xs01xsB1xsT1xsZ,a `,a f,a l,a p8;Wj8;G r%8;( G2D,a 1xsTIX`6-IX ,a  1xs 1xs G@6-`7 =C7=pC7f (Wj $1xs01xs 6,a :`+Wj`+"G <`6-(,a 1xsLTIX*K !IX Da  ,a L 1xs 1xs Da  1xs Da  1xs 1xs Da 1xs Da  G !*K7 = 7=@7W/=7=77f 7= 77@7 rWj 1xs,1xs<1xsDDa H1xs N1xsTj Z,a ^ZZ f1xs n1xsr1xsz1xs~1xsh|-=77=77f 7= 77@7 -1xs1xsjDa  1xs(Da ,1xs 21xs8j >,a BZZ J1xs R1xsV1xs ^1xs b1xsf1xs  1xsWjZZ  Da L??̣= G *K !( G0*/Da ,a 1xs^TIXZZ IX Da  ,a 2 1xs 1xs 1xs 1xs Da Da . ,a  R 1xs 1xs Da  1xs Da  Da  1xs 1xs" 1xs 1xs GZ Z7 7}w7wAww=C7=pC7@ 7w77XWjDa ,Da  D1xsJjZ1xsf1xsp1xsv1xs z1xs~1xs L|ww7777f |1xs  1xs1xsDa 1xs1xs"1xs(1xs ,Da 4:j>1xs@1xsD1xsF1xsJ1xsV-7e7.7e7~ 1xs 1xs1xs"j"1xs$1xs (1xs*1xs".1xs61xs:1xsB1xsJjN1xsP1xsT1xsZN7e7N7e 7 7 ~1xs1xs1xs 1xs1xs"$j(1xs*1xs .1xs01xs"41xs<1xs@1xsH1xsNjX1xs Hlf  w f =7wDj ,a Z ,a p",a $ (,a ,Z 6j B1xs*WjZ p Da GG@ G   G  G  G  G2 ZZ ( G$ G2 G< GA+0fDa $,a &1xs$\TIX!&(}IX ,a 611. &1xs (1xs .1xs 01xs 21xs 41xs G(}!&7 ff ff 0= =70==7 wf dWj ,a $sQ 0,a 4sQ8,a J1xsN,a ^1xsj,a & p,a tz`|j~|w7777 m = =7m==7 f  wf~1xs Sj 1xs1xs  1xs$1xs(1xs2,a @1xsD,a R1xs ^,a (bKjpjv,a & |,a  00܌݌W* -$z`j1xs1xs S*WjsQz`KjG !&(}( G`   ,a 21xsS J1xsN,a ^1xsj,a & p,a tz`|j~|w7777 m = =7m==7 f  wf~1xs Sj 1xs1xs  1xs$1xs(1xs2,a @1xsD,a R1xs ^,a (bKjpjv,a & |,a  <0T0@#@40*Dp p{%8;!&(}n8 B:*K !*KK Z ZZ BB`@`+ `6-fp&fWw(xydz z`X8; ` !(} K} Kjxp! oDp%8;!&(}n8 B*K !ZZ B`6-z`XKjx qDDT*L0*@'@t @*:`@[(}@`@p@hp!@*}@({h:hB`@h*fp&hfWhw(hxhydhy (I -|# F F<`Ly^^ t  0*@ @ '*# h   'hp!h"&}*4r |xp r}|$(}*Zd\^PY^-P^F^-P^-0**^QC0&f@BB~   $}*|  |}$(}* ^O}0**^-^PNN-eB&j$j*@~ $ @ `*>"vlAE v l*d &?e E:`  * ~ E $jPP:` ~ :`$"j*vPЕ:Е[~PɋЕ,PɋЕv~ *]@e Е.  @[(} w  T*qL{@:@B`@@*fp&@fW@x@yd@( 0*h8 oh * w6w0wn7 Dw zw w :z"fW&x*&.mN(mH"w w : xw  : "x(yd*Lw w 8 z w w w "B`@8 z x$fp&({*rB&." *r ae S *  ~ v x *j# 7#bw w \ H* &BCD   &*0w"w7  7*V&7  #K *|7!00rsse w w(*w mmw mm*   ww w*w w z4m 4m  *Ym m Mw H*:mm?mm   *`2w  +w  *w 4m 4m   w fe* m m  *w w&CD !!w *!f r *@ m E *DEw t    *j       E        *  E       PE*PP EPHP7 $ *   R 0* 0 &:: 8") *(#e e 7!  *N w,  *tw w Tw* 7 xwd*p l,-d` ZrN"r*mHDw.8.0m*.* "wdw- d*2mlwm*X[ *~EE 4 r*El hdE^  *B m: e *  e8"8*e(pp*<hppp*bpp *p؀pȈpp*𨀐hppp p *PP PP P @*p ppp pp *  PPPPPP x p@( ` `P*F`P`h@ @@@ @ p p *lp0 @ @ 0`H H H H* Hp0pp0pp0P @* @pppxp p``````` `@* p@p@ p@   @d||*Dl||t**`(D~|||*P L2Rd~~@00@0(*v(|DDD|8D8D|D888|||||||8|*((H&TT$`L*8DD8T8||8T` *||D䂒l0($b x" * ` lR@NP o(>*7͋7 7 d7 *b& w|w|wvwvmhj97 dm*^mVZ07 TmNmFJ'%B#* m6<%4-(( 0$*0  *Ve *|ee * &wmwmCw *D wp jV7 dm^ ^N*%VJ7 RNmF L > 7 8*4mr, nhhbdZ*:V L -F-><*`m0%  m%* ww&wt*p7 j-+4#e7V *N7F4 < 744 ** 7"4  *&f BAwwww*Dwww m 7Dm 8*j 7 x'vprlm 8*ll 7\Dm\\ 7L @  88*  ( 0"&(* * wXwVwT JBB*( 7 :2**Z&m *NT Ndfljnp00݌W*T dfljnp*t wvrtwnjlwnjjwhw*6w\XX T@B<> @*Hm62 *< e<*  m *2EB `GmB *X` bH`*~ :eH\XZX*X TBDmJ>8 D$,* *& www*w7 -*<7 ww  z Z HZ$&(*bwL T7 L#0 D* <  -   (*0  *&Be*  * Ee0   8* @BC  \*F ww*l n8f ~r"$&r(*<d"e<Fm>:80* HrH.eHm r TIXz`IX ,a  1xs 1xs GF`z7 =C7=pC7wf 0Wj $1xs01xs6,a  <,a @z Wjz "G Bz`(,a 1xsHTIXKjIX Da   1xs 1xs 1xs 1xs GTjK7 C}@wWpC=7}wf 8Wj &1xs41xs<1xsD1xs JDa NK}WjK}"G PKj(Da  1xsPTIXpIX ,a  1xs 1xs GXp7 =C7=pC7www w f HWj $1xs01xs6,a <,a B,a H,a N,a RpWjp"G Tp(,a 1xsTIX%8;IX ,a  1xs 1xs 1xs G~8;%7 C}@wWpC =7 }www w f \Wj &1xs41xsB1xsHjV1xs\jb,a h,a n,a t,a x8;Wj8;G z%8;( G6J,a 1xsTIX`6-IX Da  1xs 1xs G@6-`7 =C7=pC7f (Wj $1xs01xs 6Da :`+Wj`+"G <`6-(Da 1xspTIX*K !IX Da $> 1xs 1xs  1xs 1xs 1xs  1xs" G !*K7 = 7=@7W/=7=77-f 7= 77@tWj 1xs,1xs<1xsDDa H1xs N1xsR1xsT1xs\j bDa fZZ n1xs v1xsz1xsX|7 -=77=77-f z1xs 1xs1xs1xsj j(Da $,1xs4Da (81xs >1xsB1xsD1xsLj RDa VZZ .7= 77@7 -6 1xs 1xs1xs 1xs "1xs&1xs(1xsWjZZ  Da  L??̣= G *K !( G01R2Da ,1xs,TIXZZ IX Da 6.R 1xs 1xs "1xs $1xs & *1xs ,1xs. 01xs 24 ,a 00rss" 1xs 1xs" 1xs 1xs GZ Z7 7}w7wAww=C7=pC7@ 7w77XWjDa 2,Da 6 D1xsJjZ1xsf1xsp1xsv1xs z1xs~1xs L|ww7777f ~1xs  1xs1xsDa :1xs1xs"1xs(1xs ,Da 4:j>1xs@1xsD1xsF1xsJ1xsV-7e7.7e7~ 1xs 1xs1xs"j"1xs$1xs (1xs*1xs".1xs61xs:1xsB1xsJjN1xsP1xsT1xsZN7e7N7e 7 7 ~1xs1xs1xs 1xs1xs"$j(1xs*1xs .1xs01xs"41xs<1xs@1xsH1xsNjX1xs Hlf  w f =7wDj Da Z Da $p",a (,a ,Z 6j B1xs*WjZ p Da 2GG@ G   G  G  G  G2 ZZ ( G$ G2 G< GA+0fDa >,a  1xs$TIX!&(}IX ,a ,11 &1xs (1xsDa   1xs 1xs 1xs 1xs G(}!&7 ff ff 0= =70==7 wf wdWj ,a $sQ 0,a 4sQ8,a J1xsN,a ^1xsj,a & p,a tz`|jz|-7777 m = =7m==7 f  z S 1xs1xs Sj 1xs$1xs (1xs,1xs01xs:,a H1xsL,a Z1xs fDa jKjxj*wf  -4,a & ,a z`j1xs"1xs $S*WjsQz`KjG !&(}( G` D  "Da  ,a (1xsS tz`|jz|-7777 m = =7m==7 f  z S 1xs1xs Sj 1xs$1xs (1xs,1xs01xs:,a H1xsL,a Z1xs fDa jKj;; COMPAR.MAC;C; A SUBROUTINE TO COMPARE TWO ARRAYS AND DETERMINE WHICH IS BIGGER@; VALUE RETURNED IS 1 IF 1ST IS BIGGER, 2 IF 2ND, AND 0 IF SAMED; Considers capital letters and small letters as indistinguishable.I; If both characters being compared are null, it assumes it reached end.%; I=COMPAR(1ST, 2ND, MAX NO OF CHAR)'; COMPAR MUST BE DEFINED AS AN INTEGER; .TITLE COMPAR .GLOBL COMPAR(COMPAR: MOV 2(R5),R0 ; GET THE 1ST ARRAY! MOV 4(R5),R1 ; GET THE 2ND ARRAY* MOV @6(R5),R2 ; MAXIMUM NO. OF CHARACTERSLOOP: TSTB (R0)E& BEQ NONE ; THIS WAS A NULL CHARACTER2LOO2: MOVB (R0)+,R3 ; GET CHARACTER FROM 1ST ARRAY- MOVB (R1)+,R4 ; GET CHARACTER FROM 2ND ARRAYa BIC #177400,R3a BIC #177400,R4l* CMPB R3,#140 ; IS THIS A CAPITAL LETTER?$ BLE CAP1 ; IT IS A CAPITAL LETTER.' SUB #40,R3 ; CHANGE TO CAPITAL LETTERC>CAP1: CMPB R4,#140 ; Is the character from 2nd array capital? BLE CAP2 ; IT IS CAPITAL SUB #40,R4 ; CHANGE TO CAPITAL&CAP2: CMPB R4,R3 ; IS THE 2ND BIGGER? BGT SEC ; 2ND IS BIGGERS BLT FIRST ; 1ST IS BIGGER  DEC R2A" TST R2 ; IS THIS LAST CHARACTER? BNE LOOP ; NO IT WASN'TT& CLR R0 ; IF GET HERE 2 ARRAYS WERE = BR DONE*NONE: TSTB (R1) ; IS OTHER CHARACTER NULL BGT LOO2 ; NO IT WASN'TP CLR R0 ; YES IT WAS  BR DONE&SEC: MOV #2,R0 ; 2ND ARRAY WAS BIGGER BR DONE(FIRST: MOV #1,R0 ; 1ST ARRAY WAS BIGGER DONE: RETURN .END capital? BLE CAP2 ; IT IS CAPITAL SUB #40,R4 ; CHANGE TO CAPITAL&CAP2: CMPB R4,R3 ; IS THE 2ND B00W*; ; File to copy FILES media;R.ENABLE SUBSTITUTION.;'.; FIRST ASK THE "FROM WHERE" QUESTIONS .;/;----------------------------------------------I.ASKS WHERE From [ddnn: D:SY:].IF WHERE NE "" .GOTO 10 .SETS FM "SY"T.GOTO 20.;.; REMOVE COLON, IF SUPPLIED.;.10:.SETN TEMPN $.SETS TEMPS WHERE[:].IF TEMPS EQ ":" .DEC TEMPNE.SETS FM WHERE[1:TEMPN].20:;'!.ASKS UIC From UIC if not '' .IF UIC EQ "" .SETS UIC .;.; REMOVE BACKETS, IF SUPPLIED.; .TEST UICy .SETN TEMPN 1R.SETN TEMPN2 .SETS TEMPS2 UIC[1:1]R#.SETS TEMPS3 UIC[:]-.IF TEMPS2 EQ "[" .INC TEMPN.IF TEMPS3 EQ "]" .DEC TEMPN2 .SETS FMUIC UIC[TEMPN:TEMPN2]0.;%.; NEXT, ASK THE "TO WHERE" QUESTIONSO;,3;--------------------------------------------------E.ASKS WHERE To [ddnn: D:SY:].IF WHERE NE "" .GOTO 50 .SETS TO "SY"E.GOTO 60.;.; REMOVE COLON, IF SUPPLIED.;.50:.SETN TEMPN $.SETS TEMPS WHERE[:].IF TEMPS EQ ":" .DEC TEMPN.SETS TO WHERE[1:TEMPN]P.60:;N.ASKS UIC To UIC if not '' .IF UIC EQ "" .SETS UIC .;.; REMOVE BACKETS, IF SUPPLIED.; .TEST UICC .SETN TEMPN 1 .SETN TEMPN2 0.SETS TEMPS2 UIC[1:1]"#.SETS TEMPS3 UIC[:]-.IF TEMPS2 EQ "[" .INC TEMPN.IF TEMPS3 EQ "]" .DEC TEMPN2n.SETS TOUIC UIC[TEMPN:TEMPN2] 2;-------------------------------------------------;U'; Now let's move the FILES source filesS; 8PIP 'TO':['TOUIC']='FM':['FMUIC']FILES.MAC ! SOURCE FILE<PIP 'TO':['TOUIC']='FM':['FMUIC']FILES.COR ! CORRECTION FILE<PIP 'TO':['TOUIC']='FM':['FMUIC']FILES.CMD ! TASK BUILD FILE?PIP 'TO':['TOUIC']='FM':['FMUIC']FILES.DOC ! DOCUMENTATION FILETEPIP 'TO':['TOUIC']='FM':['FMUIC']MOVE.CMD ! "MOVE FILES" COMMAND FILEIKPIP 'TO':['TOUIC']='FM':['FMUIC']COPY.CMD ! "COPY SOURCES" FILE (THIS FILE)E;:; Transfer complete-;-----------------------------------;U'; Now let's move the FILES source filesS; 8PIP 'TO':['TOUIC']='FM':['FMUIC']FILCORZAP/-CP/PR/-FX/-FP=CORZAPLB:[1,1]EXEC.STB/SS/ TASK=...COR UIC=[1,1]STACK=32PRI=220UNITS=1ASG=TI:1/( .TITLE CORZAP - ZAP CORE (SCOM) ROUTINE .IDENT /V01/, .MCALL GMCR$,EXIT$S,QIOW$,DIR$R .NLIST BEXR;+ ; VERSION 01;K; REID L BROWN 25-JAN-77;; MODIFIED BY:;$; NO MODIFICATIONS;;A); **-CORZAP- ZAP CORE LOCATION WITH VALUEN;EM; THIS ROUTINE OPERATES MUCH LIKE THE OPEN COMMAND, BUT IS INVOKABLE AS A ONENK; LINE COMMAND. THIS ALLOWS ITS USE IN INDIRECT COMMAND FILES AND ANYWHERESL; ELSE A ONE LINE COMMAND IS DESIRED. IT IS A PRIVILEDGED FUNCTION, AND CANK; ONLY BE RUN FROM PRIVILEDGED TERMINALS. THE ONLY AREA OF MEMORY OPERATED1K; UPON IS SCOM. ADDRESSES MUST BE WITHIN THE LEGAL KERNAL LIMITS FOR SCOM:E; 100000 TO 160000.;; THE COMMAND FORMAT IS:;F+; COR
    [:]/I;W);
    = THE SCOM ADDRESS OF THE WORDHG; = A VERIFICATION VALUE FOR THE CURRENT CONTENTS OF THAT 8; MEMORY CELL. THE OPERATION IS ABORTED IF THIS VALUE4; DOES NOT MATCH THE CURRENT CONTENTS OF THE CELL.:; = THE NEW DATA VALUE TO BE PLACED IN THE CELL.; :; NOTE: ALL VALUES ARE EXPRESSED AS UNSIGNED OCTAL NUMBERS;M; &; TASKBUILD ATTRIBUTES: -CP/-FX/PR/-FP ; STACK=32; TASK=...COR; ASG=TI:1 ;ONE LUN ONLY; UNITS=1 ; " ; PRI=220N ; UIC=[1,1];;- E = E;O; LOCAL DATA AREAR; V7$ADDR: .WORD 0 ;THE ADDRESS OF THE CELL TO BE MODIFIEDT.$VFY: .WORD 0 ;AN OPTIONAL VERIFICATION VALUE1$VFLG: .WORD 0 ;IF <> 0, VERIFICATION IS DESIREDT6$VAL: .WORD 0 ;THE NEW VALUE TO BE PLACED IN THE CELL 7MC00rssR: GMCR$ ;DEFINE THE GET MCR COMMAND LINE DIRECTIVES A9OUT: QIOW$ IO.WVB,1,1,,,,<.-.,.-.,40> ;DEFINE THE QIO DPBC1OUTBUF= OUT+Q.IOPL ;QIO BUFFER ADDRESS PARAMETERS2OUTLEN= OUT+Q.IOPL+2 ;QIO BUFFER LENGTH PARAMETER ;I; ERROR MESSAGES; #SYNTAX: .ASCII /COR - SYNTAX ERROR/A SYNLEN= .-SYNTAXA E O)VERIFY: .ASCII /COR - VERIFICATION ERROR/; VERLEN= .-VERIFYA N L*ADDRES: .ASCII /COR - ADDRESS RANGE ERROR/ ADDLEN= .-ADDRESW  ; +PRVMES: .ASCII /COR - PRIVILEDGE VIOLATION/G PRVLEN= .-PRVMESG M .EVEN L; ; **-CORZAP-;U.; GET COMMAND LINE AND CHECK FOR SYNTAX ERRORS;  C?CORZAP::DIR$ #MCR,EXIT ;TRY TO GET AN MCR BUFFER, EXIT IF CAN'T+- MOV $DSW,R5 ;SAVE THE RETURNED LENGTH IN R52 CALL PRIVCK ;IS THE CALLER PRIVILEDGED FOR THIS? BCC 10$ ;YES, CONTINUE A;E; PRIVILEDGE VIOLATION - EXITI;A N# MOV #PRVMES,OUTBUF ;SET UP THE QIO MOV #PRVLEN,OUTLEN ;..." DIR$ #OUT ;AND TELL HIM ABOUT IT JMP EXIT ;AND EXIT C /; &; SCAN FOR OCTAL NUMBERS & SEPARATORS.;G; $ADDR <= THE ADDRESS VALUE ; $VFY <= THE VERIFICATION VALUE-; $VFLG <= <>0 IF VERIFICATION DESIRED (FLAG)C; $VAL <= THE NEW VALUE ;F ;10$: MOV #MCR+5,R0 ;POINT TO 1ST CHAR AFTER 'COR' IN BUFFER- ADD #MCR+2,R5 ;POINT TO END OF RETURNED DATAT/ CLR MCR+80. ;INSURE AGAINST A BUFFER OVERRUN.D" CLR $VFLG ;RESET THE VERIFY FLAG0 CALL $COTB ;GET ADDRESS & CONVERT IT TO BINARY% BIC #1,R1 ;FORCE TO A WORD BOUNDARY 0 MOV R1,$ADDR ;AND STORE IT FOR FUTURE REFERENCE1 CMP R0,R5 ;HAVE WE OVERRUN THE END OF THE DATA?E" BHIS SYNERR ;YES - TELL THE USER4 CMPB #'/,R2 ;DID THE FIELD TERMINATE WITH A SLASH?+ BEQ 40$ ;YES - GO PROCESS THE VALUE FIELD# +. CMPB #':,R2 ;NO - IS VERIFICATION SUPPORTED?/ BNE SYNERR ;NO - ??? CRAZY USER. SYNTAX ERRORC M 8; *; GET VERIFICATION VALUE & SET VERIFY FLAG;  S0 CALL $COTB ;CONVERT THE VERIFY VALUE TO BINARY/ CMP R0,R5 ;HAVE WE OVERRUN THE RETURNED DATA?B BHIS SYNERR ;SYNTAX ERRORS E) CMPB #'/,R2 ;TERMINATOR MUST BE A SLASH  BNE SYNERR ;SYNTAX ERROR* INC $VFLG ;INDICATE VERIFY IS TO BE DONE MOV R1,$VFY ;SAVE THE VALUEI E;T ; EVALUATE THE REPLACEMENT VALUE;S H-40$: CALL $COTB ;CONVERT THE VALUE TO BINARYF MOV R1,$VAL ;SAVE THE VALUE  O;?E; VALIDATE THE ADDRESS, VERIFY OLD CONTENTS (IF SPECIFIED) AND UPDATET; THE LOCATION TO ITS NEW VALUE ;O R; CMP $ADDR,#100000 ;GREATER OR EQUALL TO APR 4? (SCOM BASE)E$ BLO ADRERR ;NO ADDRESS RANGE ERROR/ CMP $ADDR,#160000 ;LESS THAN APR 7? (SCOM TOP)  BHIS ADRERR ;ERROR IF GREATERR I TST $VFLG ;VERIFY DESIRED? BEQ 60$ ;NO - CONTINUE* CMP $VFY,@$ADDR ;COMPARE TO EXISTING DATA BEQ 60$ ;IT CHECKS, CONTINUE4 MOV #VERIFY,OUTBUF ;DOESN'T CHECK - LOAD BUFFER ADR MOV #VERLEN,OUTLEN ; AND LENGTH% DIR$ #OUT ;TELL THE USER HE BLEW IT  BR EXIT ;AND EXITT *60$: MOV $VAL,@$ADDR ;UPDATE THE DATA ITEM DEXIT: EXIT$S ;AND EXIT ;A; SYNTAX ERROR; O-SYNERR: MOV #SYNTAX,OUTBUF ;LOAD MESSAGE ADDR6# MOV #SYNLEN,OUTLEN ;AND ITS LENGTHB DIR$ #OUT ;TELL THE USER BR EXIT ;AND EXITV F E;E8; **-PRIVCK-CHECK USERS PRIVILEDGE BASED ON THE PUD BITS;I"; RETURNS: CC-CLEAR IF PRIVILEDGED; CC-SET IF NOT PRIVILEDGEDE; MODIFIES R0.;U R R'PRIVCK: CLC ;RESET THE CARRY FLAG BIT " MOV .CRTSK,R0 ;GET MY ATL ADDRESS2 MOV A.TI(R0),R0 ;AND USE IT TO GET MY PUD ADDRESS4 BITB #UT.PR,U.TF(R0) ;IS MY TI PRIVILEDGE BIT SET? BNE 10$ ;YES - OKO SEC ;NO - ERROR 10$: RETURND S;E ; **-ADRERR- ADDRESS RANGE ERROR;L.ADRERR: MOV #ADDRES,OUTBUF ;SETUP MESSAGE ADDR# MOV #ADDLEN,OUTLEN ;AND ITS LENGTHC DIR$ #OUT ;OUTPUT THE MESSAGEU BR EXIT ;DONEU : .END CORZAPIVILEDGED; CC-SET IF NOT PRIVILEDGEDE; MODIFIES R0.;U R R'PRIVCK: CLC ;RESET THE CARRY FLAG BIT " MOV .CRTSK,R0 ;GET MY ATL ADDRESS2 MOV A.TI(R0),R0 ;AND USE IT TO GET MY PUD ADDRESS4 BITB #UT.PR,U.TF(R0) ;IS MY TI PRIVILEDGE BIT SET? BNE 10$ ;YES - OKO SEC ;NO - ERROR 10$: RETURND S;E ; **-ADRERR- ADDRESS RANGE ERR00 W***OL @8@:2@*|f@%@GP}@s@@(*h( )Z*Z  COR - SYNTAX ERRORCO:2*R - VERIFICATION ERRORCOR - ADDRESS RA'NGE ERRORCOR - PRIVILEDGE VIOLATION *  |Zs(Z*w e 7 V7 Ew 4  GP}*¥/¥:.  *¥/' w GP}(GP}*<w-0-, - ~(~*bZ3l Z"l*Z"Z @8|f%&Z Z:2*R - VERIFICATION ERRORCOR - ADDRESS RA'NGE ERRORCOR - PRIVILEDGE VIOLATION *  |Zs(Z*w e 7 V7 Ew 4  GP}*¥/¥:.  *¥/' w GP}(GP}*<w-0-|*` (U @`r %* DRTI O@ @````TI@1)  COR - SYNTAX ERRORCOR - VERIFICATION ERRORCOR - ADDRESS RANGE ERRORCOR - PRIVILEDGE VIOLATIONH  |wMeJ7 V7 Ew 4¥/¥:.  *¥/' w w-0-, - 3* w ] ť ť 0BBpAa&f 0PHEADHEADHEADHEADHEADHEADHEADHEADHEADHEADHEADHEADHEADHEADHEADHEADHEADHEADHEADHEADP.E؈,19NOV8615360406NOV8011031317NOV58).E؈,q19NOV8615360406NOV8011024017NOV58;].EGH' 19NOV8615360512OCT8413122017NOV58.E>NB\}kQ19NOV8615360508FEB8013282317NOV58.ELB\}^ 19NOV8615360526SEP8509595617NOV58 .EFr<a^' 19NOV8615360612OCT8413092917NOV58w.E .A19NOV8615360626SEP7912103817NOV58.EFAkQ19NOV8615360626SEP7912093217NOV58 *C.EAAxkQ 19NOV8615360712OCT8413100717NOV58%L.E;Av' 19NOV8615360712OCT8413093117NOV58'.EIA@kQ 19NOV8615360712OCT8413093217NOV58( .E;{Q  19NOV8615360821JUL8217031917NOV58,?.E 0UQ19NOV8615360819JUL7918165917NOV58.R.E?UQkQ19NOV8615360819JUL7918165917NOV58/v.E6U(U 19NOV8615360802JUN8216285917NOV583FP.E>U(UkQ 19NOV8615360802JUN8216252517NOV584.E"@U(U^ 19NOV8615360902JUN8216260317NOV585.EU(U19NOV8615360902JUN8216294617NOV586ü.EL@XK[ 19NOV8615360930JUN8412183917NOV58:^.E?b#19NOV8615361019JUL7918170017NOV58J8.E5#kQ19NOV8615361019JUL7918170117NOV58K?.E*#^ 19NOV8615361114AUG7916354717NOV58L=.Ez#y 19NOV8615361129JUN8511373517NOV58Mgv.E&'#19NOV8615361129JUN8511371617NOV58%c.EJ#p 19NOV8615361112OCT8413064417NOV58z. EJ#p_ 19NOV8615361212OCT8413064517NOV58W. E~5&S 19NOV8615361210JUL8517281917NOV58y]. EF$5&S'19NOV8615361208FEB8014021317NOV58wT. E N5&S^ 19NOV8615361210JUL8517285317NOV58 . E؈b' 19NOV8615361323OCT8417371317NOV58.E؈2 \'<119NOV8615361323APR8512464417NOV58 .E؈P"'[ 19NOV8615361312OCT8413060917NOV58}.E؈M '' 19NOV8615361306AUG8509385817NOV58 ɍ.EM '' 19NOV8615361431OCT8517255117NOV58 ֍0.E؈KL'3 19NOV8615361412OCT8413061217NOV58Q+.ENF'*y}  19NOV8615361412OCT8413320517NOV58.E0(19NOV8615361430MAR8111020717NOV58.E2Z(kQ19NOV8615361530MAR8110561817NOV58.E*(^ 19NOV8615361517MAY8311231017NOV58ZM.E ( 19NOV8615361517MAY8311231117NOV58 |.E5219NOV8615361502FEB8114460717NOV58.E!42XM 19NOV8615361631DEC8518022217NOV58J.E8Ԁ 19NOV8615361617NOV8211461817NOV58.EEt:( ' 19NOV8615361612OCT8413093517NOV58CB.EF:{Q  19NOV8615361621JUL8217025417NOV58\.E@KkQ 19NOV8615361712OCT8413093717NOV58s.EM{L{Q  19NOV8615361721JUL8217024517NOV58%p.E{L}kQ19NOV8615361710SEP7912440017NOV58. E؈J{L 19NOV8615361801NOV8318031417NOV58.!E؈H{L 19NOV8615361801NOV8317393617NOV58."E؈J=={LkQ 19NOV8615361901NOV8318071217NOV58</.#E؈*{L^ 19NOV8615361901NOV8318081717NOV58@).$E؈E {Lr 19NOV8615361920AUG8010552017NOV58O.%EIDYMkQ 19NOV8615361912OCT8413093817NOV58X=x.&E=YM:kQ 19NOV8615362012OCT8413094017NOV58Z6.'E؈,N\N 19NOV8615362009JUL8517404317NOV58[-%.(E؈H \NkQ 19NOV8615362004JAN8416125817NOV58\.)ExkQ~19NOV8615362019JUL7918170217NOV58v.*EC\{Q}  19NOV8615362121JUL8217022617NOV58wɢ.+EP P{Q}v: 19NOV8615362129JUL8209282217NOV58 y.,E5{Q}'  19NOV8615362221JUL8216585517NOV58.-E7S@ 19NOV8615362317NOV8211461917NOV58]..EDSx}kQ 19NOV8615362319OCT8217041517NOV58./EDiTR' 19NOV8615362312OCT8413094117NOV58.0EDZR' 19NOV8615362312OCT8413094317NOV58.1E</d19NOV8615362428FEB8018002417NOV58v+.2ED/dkQ19NOV8615362420FEB8112074917NOV58.3E*/d^ 19NOV8615362420FEB8112093717NOV58T.4E;D/d)!y  19NOV8615362528FEB8018035417NOV58f5.5E؈''e~ _19NOV8615362519JUL7918170317NOV58&H.6Ee xm+ 19NOV8615362517JAN8411055417NOV58Ҏ.7E؈e x_19NOV8615362530APR8012292617NOV580.8EJ kfkQ 19NOV8615362612OCT8413094417NOV58.9EF(kf@8kQ 19NOV8615362612OCT8413094617NOV582.:EHq[ 19NOV8615362717FEB8112125917NOV58C.;EEGwgkQ 19NOV8615362812OCT8413094717NOV58 J .<EDOy_kQ 19NOV8615362812OCT8413094817NOV58 m.=EHRyf  19NOV8615362917DEC8114270917NOV58.>EFy@kQ19NOV8615362910SEP7912440317NOV58B.?EBrkz  19NOV8615362923AUG8214554317NOV58>.@E(<}w19NOV8615362919JUL7918170717NOV58:.AE8,}wkQ19NOV8615363019JUL7918170817NOV58.BE*"}w^ 19NOV8615363019JUL7918171917NOV58l(.CE:}} 19NOV8615363028FEB8413465717NOV58.DE=b}}' 19NOV8615363128FEB8414045317NOV58 ;.EEl}}R 19NOV8615363204DEC8411251717NOV58".FE؈3ju~w19NOV8615363319JUL7918170917NOV58$.GE؈Du~wkQ 19NOV8615363318DEC8413354117NOV58%.HE؈*u~w^ 19NOV8615363418DEC8413355817NOV58)E.IE؈u~w+19NOV8615363401JAN8512205717NOV58*>.JEC@QkQ 19NOV8615363512OCT8413095017NOV58.<.KE"S19NOV8615363522MAY8014485517NOV58/.LE(4L"kQ 19NOV8615363509NOV8314005017NOV58Mվ.ME ǃ< 19NOV8615363528MAY8311445717NOV58 O .NEH8ą{Q  19NOV8615363621JUL8217023617NOV58Y.OE@̅u: 19NOV8615363615OCT8513350617NOV58\u.PEE̅u:' 19NOV8615363615OCT8513461217NOV58];.QE|R̅u:^ 19NOV8615363715OCT8513483317NOV58`Q.RE/0̅u: 19NOV8615363715OCT8513485017NOV58.dJA.SE.̅u:  19NOV8615363715OCT8513492517NOV58.TE؈8_19NOV8615363810SEP7912440717NOV58 s.UE؈Tf 19NOV8615363820OCT8216344517NOV58.VE؈=fkQ 19NOV8615363820OCT8216330217NOV58.WE؈*f^ 19NOV8615363920OCT8216334517NOV58.XEfE  19NOV8615363919OCT8217055517NOV58-PUFDYӔzF؈P.ZF؈?v:kQ 19NOV8615364019JUL7918173717NOV58 i.[F*v:^ 19NOV8615364019JUL7918174917NOV58q.\FG2v:l^ 19NOV8615364014JAN8212464017NOV58\.]FL v:r 19NOV8615364006NOV8008564517NOV58 .^F!"v: 19NOV8615364004SEP8511344617NOV58 Ǐʭ._F؈; Dv:kQ 19NOV8615364122JUN8513200117NOV58 `.`Flv:^ 19NOV8615364122JUN8513203517NOV58i.aF؈L Bv:l kQ 19NOV8615364122JUN8513293017NOV58 Kl.bFv:l ^ 19NOV8615364122JUN8513295217NOV58p.cF؈= v:kQ 19NOV8615364116AUG8510571717NOV58e.dFv:^ 19NOV8615364116AUG8510591817NOV58zl.eF=zv:l^ 19NOV8615364215MAY8517333717NOV58k.fF؈?jv:](kQ 19NOV8615364222JUN8513282817NOV58g.gFv:](^ 19NOV8615364222JUN8513291817NOV58L.hF؈L vv::kQ 19NOV8615364222JUN8513304417NOV58 .iFv::^ 19NOV8615364322JUN8513310417NOV58#.jF؈ v:kQ 19NOV8615364323MAR8114131717NOV58&r.kF؈8 lv:uQkQ 19NOV8615364319JUL7918174217NOV58 '.lF*Lv:uQ^ 19NOV8615364419JUL7918175317NOV582.mF؈? v:YkQ 19NOV8615364422JUN8513205017NOV58 4.nF.v:Y^ 19NOV8615364422JUN8513222917NOV58>F.oF؈Fv:ekQ 19NOV8615364504SEP8511272517NOV58A.pFv:e^ 19NOV8615364504SEP8511334917NOV58W.qF؈8v:fkQ 19NOV8615364504SEP8511172317NOV58Z.rFv:f^ 19NOV8615364504SEP8511220017NOV58k(.sF؈Cv:.gkQ 19NOV8615364523JUL8115555117NOV58 n;.tF*v:.g^ 19NOV8615364623JUL8116005417NOV58|.uF؈? v:LgkQ 19NOV8615364622JUN8513415017NOV58 I.vFv:Lg^ 19NOV8615364622JUN8513430217NOV58.wFG2v:[ql^ 19NOV8615364603JUN8517285017NOV58=.xF؈(v:[q~ 19NOV8615364603JUN8517315317NOV58) .yF؈Lv:ykQ 19NOV8615364722JUN8513300917NOV58 .zFv:y^ 19NOV8615364722JUN8513302617NOV58?.{F؈@v:}kQ 19NOV8615364722JUN8513312217NOV58.|F6v:}^ 19NOV8615364822JUN8513314617NOV58.}F#lv:~ 19NOV8615364819JUL7918173517NOV58F.~F؈Hv:~ 19NOV8615364816AUG8511230017NOV58.F؈(v:~Ba 19NOV8615364822JUN8513391917NOV585 PUFDӕzG؈P.G@zs' 19NOV8615364906JAN8214134317NOV58j.GB; 9'19NOV8615364919MAY8121480417NOV58D.G'TU 19NOV8615364906JAN8213130617NOV58O.G?UkQ 19NOV8615364915DEC8309125717NOV58[$.G*`U^ 19NOV8615364921AUG8416253917NOV58Ɛ/.GU 19NOV8615365029JUN8512065017NOV58Ȑ[.G>U'19NOV8615365019MAY8121480617NOV58̐.GA&'19NOV8615365019MAY8121480717NOV58ΐf?.G?>(L'19NOV8615365019MAY8121480717NOV58А.G@'19NOV8615365019MAY8121480717NOV58ѐ..G?> z'19NOV8615365019MAY8121480817NOV58Ӑ7.GF&( '19NOV8615365119MAY8121484517NOV58א2%.GOrX3 19NOV8615365126JUN8416094817NOV58ِ).GXK 19NOV8615365107AUG8513253917NOV58ܐ=.GL@XK[ 19NOV8615365130JUN8412182117NOV58ݐ!`.GLXKkQ 19NOV8615365127JUN8411000717NOV58ҟ.G* XK^ 19NOV8615365127JUN8411043917NOV58 .G؈J :XKr 19NOV8615365215JUN8417282817NOV58 >.GXKS 19NOV8615365207AUG8513255217NOV58 .GLvXxs[ 19NOV8615365230JUN8412192217NOV58!X.G[>Xxsr 19NOV8615365330JUN8412190817NOV58%R.G;F]'19NOV8615365319MAY8121485617NOV58('.GA!'19NOV8615365319MAY8121485717NOV58).G?'|Q'19NOV8615365319MAY8121491217NOV58*y.G>,hykQ19NOV8615365419MAY8121491917NOV58,.G<2d'19NOV8615365419MAY8121492017NOV58-1.G0k3#G  19NOV8615365421AUG8417033017NOV584B.G<8}kQ19NOV8615365519MAY8121492117NOV586\.GB:&' 19NOV8615365504JAN8214192717NOV588_.GG|t;akQ 19NOV8615365515DEC8311100617NOV58>'.G?N`,'19NOV8615365519MAY8121504417NOV58O).GAN`\g'19NOV8615365519MAY8121504417NOV58R.GDa&'19NOV8615365619MAY8121504517NOV58W.Gw""^ue@ke19NOV8615365619MAY8121511017NOV58!]<.G?fS'19NOV8615365619MAY8121504717NOV58.GEIq19NOV8615365619MAY8121504917NOV58.GM|Iq 19NOV8615365719MAY8121505017NOV580.G;Iq '19NOV8615365719MAY8121505117NOV58[.G2Lq0 '19NOV8615365719MAY8121505117NOV58.G6w' 19NOV8615365814DEC8316592117NOV58.GE y['19NOV8615365819MAY8121505317NOV58.G \y|e'19NOV8615365819MAY8121505417NOV58.GM\9a_XkQ 19NOV8615365815DEC8314072517NOV58\.G+`;kQ19NOV8615365819MAY8121510417NOV58%.G t}kQ19NOV8615365919MAY8121510517NOV58*.GD ' 19NOV8615365915DEC8313323117NOV58 .G\ <r 19NOV8615365912JAN8211260717NOV58ˑ.G *, 19NOV8615370031DEC8111010917NOV58Ki.G44&19NOV8615370019MAY8121510817NOV58w.G' 19NOV8615370008JAN8215103617NOV58.G8'sY 19NOV8615370108JAN8215105617NOV58.G~kQ 19NOV8615370114DEC8111240117NOV58.GAZxQl^ 19NOV8615370108JAN8213262017NOV58 .G1~ 19NOV8615370115DEC8309271017NOV58.G719NOV8615370119MAY8121511017NOV587PUFDӶzH؈P.H؈Bez 19NOV8615370205AUG8212383017NOV58.HR *ezn 19NOV8615370221OCT8510254917NOV58#:.H؈Lez' 19NOV8615370220AUG8511505717NOV58 .HLez 19NOV8615370321OCT8510130017NOV580X.HK e'|Q 19NOV8615370302JUL8211002617NOV58LOO.H؈.&Z} 19NOV8615370329JUN8307342417NOV58U.H؈5&Z}' 19NOV8615370329JUN8316365717NOV58VS.H/0&Z} 19NOV8615370327MAY8612163117NOV58.Y.H؈< 19NOV8615370320AUG8513552217NOV58K.H؈L' 19NOV8615370422AUG8508141817NOV58| .H؈IJ*19NOV8615370422AUG8508154117NOV58H.H;0Y 19NOV8615370429JUN8512095417NOV58.HK`Y[ 19NOV8615370426AUG8215313017NOV58 .HI%%Y' 19NOV8615370429JUN8513330917NOV58$L.H"#Y 19NOV8615370529JUN8513360317NOV58!".H<`z 19NOV8615370529JUN8512320817NOV58Dn.HLz[ 19NOV8615370626AUG8215314317NOV58EY .HHpz' 19NOV8615370629JUN8513404017NOV58K>.Hz 19NOV8615370629JUN8513421017NOV58j.HP'|Q[ 19NOV8615370717MAY8311543817NOV58˙.HH$$X(' 19NOV8615370712MAY8200285917NOV58#Mk.HGkQkQ 19NOV8615370712MAY8200285717NOV58.HP8}[ 19NOV8615370726AUG8215315817NOV58˓.HP8}Ԁ 19NOV8615370826AUG8215082817NOV58ݓ.H7pؙ' 19NOV8615370829JUN8512485117NOV58.H7nA' 19NOV8615370829JUN8513215417NOV58.H؈( Tk< 19NOV8615370929JUN8311325117NOV58 .H؈( k' 19NOV8615370929JUN8311475917NOV58 #9.H؈ k N 19NOV8615371029JUN8311581917NOV58 f.HAm+[ 19NOV8615371029JUN8513525217NOV58 .HHxLqV 19NOV8615371012MAY8200290217NOV58.HHBxLqV 19NOV8615371112MAY8200290417NOV58.H؈hKSY` 19NOV8615371105MAR8510571817NOV58.HPZSl 19NOV8615371114SEP8209260017NOV58X^.H89ZSl/19NOV8615371214SEP8209290017NOV587>.HVZSl  19NOV8615371220MAR8409372117NOV58Sm.HhiZSl (19NOV8615371220MAR8409411417NOV58gT=.Hv[Sj 19NOV8615371227MAY8612191517NOV58$.H[Sj^ 19NOV8615371327MAY8612201017NOV58b.HQR[Sj 19NOV8615371327MAY8612294717NOV58P”.HhcTY` 19NOV8615371320DEC8309514717NOV58m.HP\cTY`kQ 19NOV8615371320DEC8309515017NOV58W.H:fTKV 19NOV8615371412MAY8200290317NOV58#.H:fTKV 19NOV8615371412MAY8200290417NOV58$,.HPrTl 19NOV8615371406JUN8209483617NOV58&\.HJrTl'19NOV8615371406MAY8016384917NOV58'.H89rTl?19NOV8615371406JUN8209494417NOV587-.HVrTl  19NOV8615371501JUN8209123217NOV58e`.HJrTl ' 19NOV8615371501JUN8209253217NOV58f|.HhirTl 619NOV8615371501JUN8209294817NOV58gl A.HvsTj 19NOV8615371527MAY8612181117NOV58ԕd.H?lsTj' 19NOV8615371629JUN8314552017NOV58Օ.HsTj^ 19NOV8615371627MAY8612194117NOV58ٕ.HQRsTj 19NOV8615371627MAY8612292717NOV58Pޕ=.HPtTL" 19NOV8615371605MAR8514161217NOV58/}_.HBtTL"' 19NOV8615371705MAR8514140417NOV580t.HUVtTL"19NOV8615371705MAR8514170017NOV58T2.HAvIq  19NOV8615371830DEC8314054717NOV58k.HF~r3 19NOV8615371808AUG8514013317NOV58b.H9rvL 19NOV8615371807AUG8510403017NOV58.H0rvL19NOV8615371919JUL7918170517NOV58.H؈LLLLrvLkQ 19NOV8615371908AUG8513100017NOV58K.H rvL^ 19NOV8615371930MAY8609595717NOV58 ږ>.H,-rvL19NOV8615372008AUG8514021217NOV58+%.H23rvL 19NOV8615372130MAY8610044717NOV581`.HBHwt^V 19NOV8615372212MAY8200290417NOV58.HH:waV 19NOV8615372312MAY8200290317NOV58Fl .HD}3 19NOV8615372330DEC8315144817NOV58H`w.H?@} 19NOV8615372330DEC8315080417NOV58>I7.H>}@ 19NOV8615372430DEC8315073517NOV58.HB<}@kQ 19NOV8615372415DEC8310253017NOV58$.HN[ 19NOV8615372415DEC8310024117NOV58'n.HN@kQ 19NOV8615372415DEC8310025517NOV58~ .H.E  19NOV8615372515DEC8310064517NOV58)vZ.HDd 19NOV8615372515DEC8310064817NOV58*b.HE z( 19NOV8615372515DEC8313192317NOV58 +fPUFDӷzI؈P.I؈0'-F19NOV8615372626JUL8216044517NOV589@.I11'-FkQ 19NOV8615372609JUN8613514917NOV580:..I؈45R 19NOV8615372623AUG8216360017NOV58k@. I؈ x5RkQ 19NOV8615372609FEB8414005917NOV58 l. I؈42+2 19NOV8615372626OCT8418061317NOV58yUu. I؈Q 2+2kQ 19NOV8615372603SEP8617082817NOV58 z%. I؈.Q19NOV8615372709FEB8415091217NOV58&*. I؈z nQkQ 19NOV8615372718JUL8613183817NOV58 .I؈0TYe 19NOV8615372713OCT8214545617NOV58.I33TYekQ 19NOV8615372730MAY8615150717NOV5822'.I؈619NOV8615372717DEC8016335217NOV58Ř a.I؈@\'19NOV8615372828JUL8310083317NOV58ƘPUFDӸzJ؈P.JH|}  19NOV8615372806JUL8409383717NOV58ʘt.JD**}a 19NOV8615372806JUL8409443517NOV58)͘.J؈F< 19NOV8615372815JAN8510143417NOV58xh.JH|4}}  19NOV8615372826DEC8415333917NOV58=.JF}< 19NOV8615372928DEC8414432617NOV58m.JDX}< 19NOV8615372928DEC8414425517NOV58#l.JI}k  19NOV8615372926DEC8417215017NOV58V.J؈I}  19NOV8615372924MAR8610445617NOV58ru.J؈B}< 19NOV8615372925MAR8614030117NOV58"&.JJ }[ 19NOV8615372924MAR8610491717NOV58(.JB}@19NOV8615373026DEC8416511417NOV58+.JC P}a 19NOV8615373028DEC8410065717NOV58 ,.JI}4  19NOV8615373026DEC8416544917NOV587?m. JE}4< 19NOV8615373015JAN8509031817NOV58:.!JC V}4a 19NOV8615373028DEC8410075617NOV58 @i."J8D}a[ 19NOV8615373025MAR8614044317NOV58Kf.#J?< 19NOV8615373128DEC8414435517NOV58NRo.$J6N&ǃ< 19NOV8615373128DEC8410013817NOV58T|.%J,.E  19NOV8615373127DEC8409250017NOV58c*.&Jk  19NOV8615373127DEC8416375217NOV58d.'JR 19NOV8615373127DEC8409225717NOV58f.(J3vkQ 19NOV8615373227DEC8416354717NOV58g3.)J*n^ 19NOV8615373227DEC8416373217NOV58lQ8.*J>ERkQ 19NOV8615373227DEC8416034317NOV58m{.+J,R}}  19NOV8615373213DEC8216044217NOV58r=.,JlR}} 19NOV8615373211JUN8212485417NOV58sj4.-JER}}< 19NOV8615373328MAY8311534417NOV58to]..J6RR}}_M 19NOV8615373320MAY8314012117NOV588./J=,R}}kQ 19NOV8615373313DEC8214474717NOV58f.0J*R}}^ 19NOV8615373313DEC8214494217NOV58l.1J؈R}} 19NOV8615373409JUL8516532417NOV58p.2J!nS@ 19NOV8615373428DEC8410285717NOV58M.3JDfQ(}< 19NOV8615373425MAR8614203217NOV58ɘPUFD4ӹzK؈P.5K:t 19NOV8615373519JUL7918165217NOV58 .6KN t kQ19NOV8615373519JUL7918165317NOV58 @.7K*^t ^ 19NOV8615373519JUL7918171117NOV58șE.8KM %kQ19NOV8615373610SEP7912430217NOV58 Ιu.9K*N%^ 19NOV8615373610SEP7912430517NOV58ڙz.:K؈L 19NOV8615373604JUN8409382817NOV58ܙO.;K؈F kQ 19NOV8615373604JUN8413492917NOV58 ݙy.<K؈*f^ 19NOV8615373604JUN8416265717NOV58.=K)19NOV8615373609JUL8516554117NOV58~.>K1'19NOV8615373715FEB8010373417NOV58.?K؈I&&'kQ19NOV8615373705SEP8011414917NOV58%ߓ.@KF'vQ 19NOV8615373705SEP8013015117NOV58)Al.AK*j'^ 19NOV8615373730JUL8112535217NOV58.q.BKOw*kQ 19NOV8615373710JUL8517185217NOV585x.CKw*^ 19NOV8615373810JUL8517195117NOV58Sl.DK<%kQ19NOV8615373810SEP7912431117NOV58[+j.EKO%~ 19NOV8615373810JUL8516480617NOV58\.FKH&19NOV8615373821FEB8015362117NOV58^ .GKF&kQ19NOV8615373805SEP8014460717NOV58_fg.HK*&^ 19NOV8615373812NOV8113515317NOV58p_.IK؈H& 19NOV8615373929MAR8411315417NOV58t.JK؈F &kQ 19NOV8615373929MAR8411561217NOV58 u'].KK؈*|&^ 19NOV8615373929MAR8411575717NOV58re.LK-F&8" 19NOV8615373914JUL8411501617NOV58*.MKC&8"* 19NOV8615373914JUL8413233217NOV58..NKK&8"n 19NOV8615374014JUL8413211917NOV58W;.OK?**&8"[ 19NOV8615374017NOV8211455917NOV58)+p.PK;&8"t: 19NOV8615374017NOV8211455617NOV58e.QK؈J\\r&8"kQ 19NOV8615374014JUL8411552117NOV58[.RK* &8"^ 19NOV8615374014JUL8411580017NOV58 J.SK0&L"E 19NOV8615374017NOV8211461717NOV58 W.TKN .&MkQ19NOV8615374110SEP7912432317NOV58 !ΰ.UK*&M^ 19NOV8615374110SEP7912432517NOV58-O.VKB`Q(+19NOV8615374120FEB8015354117NOV58.w+.WKJ Q(+kQ19NOV8615374120JUL7915482717NOV58/.XK*Q(+^ 19NOV8615374220JUL7915491417NOV58DJ.YKN,fkQ 19NOV8615374210JUL8517013717NOV58I .ZK,f^ 19NOV8615374210JUL8517041617NOV58a.[KJd4 19NOV8615374320DEC8314211717NOV58g .\KO d43 19NOV8615374320DEC8314314417NOV58h-.]KP11d4kQ 19NOV8615374320DEC8314211517NOV580lx.^K{L}kQ 19NOV8615374410JUL8517002117NOV58._K!nS@ 19NOV8615374428DEC8410302117NOV58B.`K+pKq5ap19NOV8615374417FEB8112085017NOV58.aKK&Kq5apkQ19NOV8615374417FEB8111410517NOV58k.bK*Kq5ap^ 19NOV8615374517FEB8111505117NOV58].cK4Qq 19NOV8615374520DEC8317410717NOV58M.dKO33QqkQ 19NOV8615374520DEC8317410117NOV582.eKFy@kQ 19NOV8615374510JUL8517002717NOV58F.fK@t 19NOV8615374520DEC8317415617NOV58ha.gKS##rtkQ 19NOV8615374620DEC8317415217NOV58".hK8_ 19NOV8615374610JUL8516491317NOV58.iK5b19NOV8615374620JUL7916090417NOV58-^.jKHkQ19NOV8615374620JUL7916085917NOV58.e.kK* ^ 19NOV8615374720JUL7916093117NOV58EFPUFDlӺzL؈P.mL$\x19NOV8615374822MAY8014484617NOV58O%.nLExkQ19NOV8615374822MAY8017074517NOV58P"s.oL*.x^ 19NOV8615374806AUG8114231217NOV58`G.pLFE 19NOV8615374830MAR8213122417NOV58d].qL$\ 19NOV8615374904MAR8514134217NOV58e.rLEXkQ 19NOV8615374904MAR8514325917NOV58fk.sLHd 19NOV8615374930MAR8213141217NOV58w.tLA,ykQ 19NOV8615374912OCT8413093417NOV58x.uL:,zkQ 19NOV8615374915JUL8209281417NOV58}K.vL*,z^ 19NOV8615374915JUL8216084517NOV58.wL4,d4@kQ 19NOV8615375014JUL8216550517NOV58~.xL*d4@^ 19NOV8615375015JUL8216090217NOV58!.yL$\GExK 19NOV8615375016JUL8214513717NOV58y.zLGGExKkQ 19NOV8615375016JUL8217583217NOV58.{L*`GExK^ 19NOV8615375016JUL8218012017NOV58.|LFGEKE 19NOV8615375016JUL8215034217NOV58.}LG(GEKkQ 19NOV8615375104MAR8514362917NOV58\.~L*GEK^ 19NOV8615375104MAR8514395817NOV58t.L؈::>jL_19NOV8615375122MAY8014485317NOV589k.L!nS@ 19NOV8615375128DEC8410450217NOV58-K.L$\_ 19NOV8615375119OCT8214302217NOV58O.LH_~ 19NOV8615375219OCT8214314317NOV58.L$w 19NOV8615375214JUL8216543617NOV58Fe.LDw' 19NOV8615375215JUL8216421017NOV58 .L w^ 19NOV8615375213JUL8511484517NOV58 .L$w 19NOV8615375222JUL8211555717NOV58xc.LD w' 19NOV8615375326JUL8210185217NOV58.L w^ 19NOV8615375313JUL8511490617NOV58 ".L؈"S19NOV8615375322MAY8014485517NOV58- PUFDӻzM؈P.M؈J ykQ 19NOV8615375323DEC8516350817NOV58L.M؈JykQ 19NOV8615375402DEC8514184517NOV58S.M؈:V! kQ 19NOV8615375402DEC8514184717NOV58YL.M؈,|W&%kQ 19NOV8615375402DEC8514185217NOV58\h.M?b, ' 19NOV8615375423DEC8514541917NOV58].MB,J' 19NOV8615375401JAN8609324017NOV58_3.M؈D",JkQ 19NOV8615375402DEC8514185717NOV58b.M؈Eht:#kQ 19NOV8615375502DEC8514184817NOV58f.M.HE; 19NOV8615375528MAR8609455217NOV58k>.M؈7K.kQ 19NOV8615375602DEC8514185017NOV58l[.MN:qQ3 19NOV8615375728DEC8513341117NOV58miL.M&DqQ% 19NOV8615375723DEC8515181717NOV58oFM.M؈fqQ%x' 19NOV8615375802DEC8514183917NOV58p_.MVqQ%' 19NOV8615375824DEC8516422817NOV58qu\.M",qQ%y 19NOV8615375824DEC8516432217NOV58rL.MqQ% 19NOV8615375924DEC8516432017NOV58s.M%qQK 19NOV8615375902JAN8616452117NOV58vu.MN qQK[ 19NOV8615375902DEC8514183317NOV58w;.M؈HqQKx' 19NOV8615380023DEC8511041917NOV58.M؈HqQKx' 19NOV8615380002DEC8514184017NOV58b.MI((~qQK' 19NOV8615380007APR8610261817NOV58'R.M؈PUUqQK( 19NOV8615380023DEC8511193317NOV58Tb.MG@qQK2 19NOV8615380027DEC8512415217NOV589.M''pqQK^ 19NOV8615380007APR8610273317NOV58&='.MGHqQK&19NOV8615380107APR8610302617NOV58Fd&..M؈IlqQ4KK 19NOV8615380120DEC8515560317NOV58{.MIhqQ4KK 19NOV8615380124JAN8611151217NOV58.MIzqQKp 19NOV8615380123DEC8513194317NOV58R.M""qQjL_19NOV8615380120DEC8516385117NOV58!.M؈8qQ N$  19NOV8615380204JAN8611074917NOV58ٞ.MNtqQ%N[ 19NOV8615380202DEC8514183517NOV58ڞ.MHqQx 19NOV8615380226DEC8512260017NOV58.M?&qQx' 19NOV8615380228DEC8513432717NOV58K?.M#$qQx 19NOV8615380328DEC8513441117NOV58"U..MHqQZ 19NOV8615380327DEC8508343617NOV58.MqQZ' 19NOV8615380327DEC8508334017NOV58 .MqQZ;19NOV8615380327DEC8508351017NOV58 P.M؈DbTkQ 19NOV8615380302DEC8514185317NOV58r.M؈Ekf x' 19NOV8615380423DEC8513174417NOV58!.M؈P^kf ( 19NOV8615380423DEC8513234517NOV58).M2kf W 19NOV8615380426DEC8513123017NOV58B .M/kf W 19NOV8615380426DEC8512352617NOV58C.MCkf W' 19NOV8615380427DEC8509563317NOV58DH7.M34kf W!19NOV8615380528APR8610593417NOV582J}.M؈:4vkQ 19NOV8615380523DEC8516484817NOV58}ݡ.M&8y:  19NOV8615380523DEC8516220917NOV58|.M }}qQ 19NOV8615380507JAN8615490217NOV58'.M؈BWkQ 19NOV8615380502DEC8514185417NOV58.M؈A2kQ 19NOV8615380602DEC8514184917NOV58C.M؈_l  19NOV8615380627DEC8510285617NOV58.M8l 19NOV8615380620DEC8515352117NOV58Y.M؈Clx' 19NOV8615380620DEC8515474817NOV583PUFDӼzN؈P.N؈D %kQ 19NOV8615380706SEP7908291317NOV58 "o.N؈@B%E  19NOV8615380706SEP7908291617NOV584.N؈)L%~ 19NOV8615380706SEP7908291817NOV58YPUFDz㈪P.@y'd 19NOV8615380801OCT86123031 t.JCCy':kQ 19NOV8615380801OCT86123041B.KIq  19NOV8615380801OCT86123038g.MIq r 19NOV8615380801OCT86123034,PUFDz㈪P .IOOgfKkQ 19NOV8615380801OCT86125225N.3rgf6K  19NOV8615380901OCT86125211:q.H0gf6K ( 19NOV8615380901OCT86125217<a0.HgfM 19NOV8615380901OCT86125215Z.KIq  19NOV8615380901OCT86125250[w.RIq r 19NOV8615380901OCT86125243c2 PUFDz!㈪P .!P'' Lr 19NOV8615381001OCT86130605&j_.!RZYJ!"r 19NOV8615381001OCT86130628đ .!O##bL^^pr 19NOV8615381001OCT86130621"V.!HIq  19NOV8615381001OCT86131213y|.!P==tw}Z r 19NOV8615381001OCT86130611 l9( 19NOV8615381101OCT86135742ءh." 9X!; 19NOV8615381101OCT861357187."NzX!;[ 19NOV8615381201OCT86135725." JX!;s: 19NOV8615381201OCT86135846d." ?X!;l^ 19NOV8615381301OCT86135909 ." OX!;r 19NOV8615381301OCT86135916 )." ;X!;s 19NOV8615381401OCT86135925!.." O`X!;(l^ 19NOV8615381401OCT86135912&M#." J--X!qQW( 19NOV8615381401OCT86135744,c." N;;X!iK( 19NOV8615381501OCT86135752:<-." E u!5U( 19NOV8615381501OCT86135801 w." C &4( 19NOV8615381501OCT861358044." @t&25( 19NOV8615381501OCT86135809I." My:i~K( 19NOV8615381501OCT86135814." NjLkQkQ 19NOV8615381601OCT86135852F." B(xQjLkQ 19NOV8615381601OCT86135906ͦ<." GS*( 19NOV8615381601OCT86135822Ӧ." +t^X! 19NOV8615381601OCT86135721ڦQ." Geǜ@Q( 19NOV8615381601OCT86135825ۦ." .~f( 19NOV8615381701OCT86135833Z."KIq  19NOV8615381701OCT861359293." MIq r 19NOV8615381801OCT86135920zE." J  xf( 19NOV8615381801OCT86135836W." FM`( 19NOV8615381801OCT86135840nYPUFDzP㈪P .P.n4EԀ 19NOV8615381929SEP8616322017NOV58.PW\\X kQ 19NOV8615381909JAN8516521517NOV58[.PK  ~ 19NOV8615381930SEP8614034817NOV58v.PG8YkQ 19NOV8615381930SEP8616232817NOV58x.PK//tkQ 19NOV8615381903JAN8413415517NOV58.8.P"t~ 19NOV8615381925MAR8615092517NOV58Ƨ] PDATADATADATADATADATADATADATADATADATADATADATADATADATADATADATADATADATADATADATADATAP0n4'; CHANGE XX PUD TO CR (CARD READER) PUDCZP 147770:54130/51103CZP 147774:0/1CZP 150002:0/120CZP 150020:0/230CZP 150022:0/240CZP 150024:0/177160,;INS HANDLER FOR USE WITH DEC TYPE INTERFACEINS [1,15]CRDEC'; CHANGE XX PUD TO CR (CARD READER) PUDCZP 147770:54130/51103CZP 147774:0/1CZP 150002:0/120CZP 150020:0/230CZP 150022:0/240CZP 150024:0/177160,;INSTALL HANDLER FOR USE WITH DR11 INTERFACEINS [1,15]CRBRC CSIZE.FTNC4C SETS THE CHARACTER SIZE AND MARGIN ON THE PRINTER2C LUN IS LOGICAL UNIT NO. ASSIGNED TO THE PRINTER?C IF ANY SIZE OTHER THAN 1 - 8 IS ENTERED, IT WILL SET SIZE TOAC SIZE 3 IF ANY MARGIN, OTHER THAN 1 - 9 IS ENTERED, IT WILL SETBC THE MARGIN TO 5 CAUTION: A CARRIAGE RETURN IS ISSUED AFTER THE?C MARGIN IS CHANGED. THIS IS NECESSARY IN ORDER THAT THE NEXT<C PRINTING HAS THE DESIRED MARGIN. AUTHOR: RAYMOND WILLIS,"C U. S. FOREST SERVICE, BEREA, KYC' SUBROUTINE CSIZE(LUN,SIZE,MARGIN)S* BYTE NULL,PLUS,S1(4),SCODE(8),MAR(4) INTEGER LUN,SIZE9 DATA S1,SCODE/27,91,52,119,52,51,50,49,56,55,54,53/ $ DATA MAR,PLUS/27,91,53,115,43/ IF(MARGIN.LE.0) MARGIN=5 IF(MARGIN.GT.9) MARGIN=5 MAR(3)=48+MARGIN IF(SIZE.LE.0) SIZE=3 IF(SIZE.GT.8) SIZE=3 S1(3)=SCODE(SIZE)N IF (LUN .LT. 1) LUN=6X IF (LUN .GT. 9) LUN=6E?C WRITE(LUN,100)NULL,S1,MAR ! USE THIS TO CHANGE CHARACTERA9C ! SIZE IN MIDDLE OF LINEYG WRITE(LUN,100)PLUS,S1,MAR ! USE THIS IF YOU DON'T WANT TO CHANGE,CC ! CHARACTER SIZE IN MIDDLE OF LINE9100 FORMAT(9A1)F>C A WORD OF EXPLANATION IS PROBABLY IN ORDER HERE. THE FIRSTBC CHARACTER IN THE ABOVE STRING IS THE PLUS SYMBOL WHICH CAUSES A?C CR TO BE OUTPUT AT THE END OF THE STRING. THIS IS NECESSARY AC BECAUSE A CHANGE IN THE MARGIN DOES NOT TAKE EFFECT UNTIL A CR TO CHANGE CHARACTERA9C  .TITLE CVRTBL;;; SUB TO CONVERT ASCII STRING NNN:MMM: TO TWO BLOCK NUMBERS; A SUB OF FDUMP.FOR;; CALL;(; CALL CVRTBL(INAME,IPOSIT,IFIRST,ILAST);:; INAME = DIMENSIONED VARIABLE CONTAINING MCR COMMAND LINE6; IPOSIT = NUMBER OF BYTE IN ABOVE STRING AFTER '/BL:'; IFIRST = DECODED FIRST BLOCK; ILAST = DECODED LAST BLOCK; >; IF FIRST OR LAST CONVERSION FAILS, DOES NOT CHANGE VARIABLES;CVRTBL:: JSR PC,$SAVAL ;SAVE ALL REG'S% TST (R5)+ ;SKIP OVER # OF ARGUMENTS& MOV (R5)+,R0 ;ADDRESS OF COMMAND LINE, ADD @(R5)+,R0 ;ADD OFFSET INTO COMMAND LINE, DEC R0 ;CAUSE CHARACTER #1 HAS OFFSET OF 0' JSR PC,$COTB ;CONVERT FIRST # TO OCTALS CMP #':,R2 ;WAS : A TERMINATOR BEQ 1$ ;YES, GET 2ND BLOCK # CMP #'/,R2 ;OR /- BEQ 2$ ;YES, RETURN FIRST BLOCK NUMBER ONLY= CMP #0,R2 ;OR END OF LINE - BEQ 2$ ;YES, RETURN FIRST BLOCK NUMBER ONLYN CMP #15,R2 ;OR CARRETH) BEQ 2$ ;YES, RETURN 1 BLOCK NUMBER ONLYL BR RETURN ;IF NOT, QUIT,1$: MOV R1,@(R5)+ ;RETURN FIRST BLOCK NUMBER4 JSR PC,$COTB ;CONVERT 2ND BLOCK NUMBER (IF PRESENT)* CMP #'/,R2 ;SHOULD HAVE FINAL TERMINATOR BEQ 2$E CMP #0,R2 ;OR END OF LINET BEQ 2$T CMP #15,R2 ;OR CARRETA BEQ 2$M BR RETURN ;IF NOT, QUIT62$: MOV R1,@(R5)+ ;RETURN SECOND OR FIRST BLOCK NUMBER3RETURN: RTS PC ;AND RETURN (AUTO RESTORE OF REG'S) .END ;YES, RETURN FIRST BLOCK NUMBER ONLYN CMP #15,R2 ;OR CARRETH) BEQ 2$ ;YES, RETURN 1 BLOCK NUMBER ONLYL BR RETURN ;IF NOT, QUIT,1$: MOV R1,@(R5)+ ;RETURN FIRST BLOCK NU00 TADATADATADATADATADATA:B\}D@GP}@ HB\}h L @@g %: %/%% ] %/%% ]GP}2GP} BEQ 2$M BR RETURN ;IF NOT, QUIT62$: MOV R1,@(R5)+ ;RETURN SECOND OR FIRST BLOCK NUMBER3RETURN: RTS PC ;AND RETURN (AUTO RESTORE OF REG'S) .END ;YES, RETURN FIRST BLOCK NUMBER ONLYN CMP #15,R2 ;OR CARRETH) BEQ 2$ ;YES, RETURN 1 BLOCK NUMBER ONLYL BR RETURN ;IF NOT, QUIT,1$: MOV R1,@(R5)+ ;RETURN FIRST BLOCK NUCC DATODA.FTNCFC A SUBROUTINE TO CONVERT MO-DA-YR TO TOTAL DAYS SINCE JAN 1, 1980 OR C VICE VERSA:C IF DIREC = 1 CONVERT THE MO, DA, YR GIVEN TO TOTAL DAYS<C IF DIREC = 2 CONVERT THE PRESENT MO, DA, YR TO TOTAL DAYS>C IF DIREC = 3 CONVERT THE TOTAL DAYS SUBMITTED TO MO, DA, YR( SUBROUTINE DATODA(MO,DA,YR,TOTDA,DIREC)" INTEGER MO,DA,YR,TOTDA,DIREC,DAYS IF(DIREC.GE.3)GO TO 300C.C COME HERE TO CONVERT MO,DA,YR TO TOTAL DAYSC% IF(DIREC.EQ.1)TOTDA=DAYS(MO,DA,YR,0)% IF(DIREC.EQ.2)TOTDA=DAYS(MO,DA,YR,2) RETURNOCN.C COME HERE TO CONVERT TOTAL DAYS TO MO,DA,YRC8 300 I=TOTDA  YR=I/365.24+80E310 I=TOTDA-DAYS(1,1,YR,0) IF(I.LT.0)GO TO 400 IF(I.GT.366)GO TO 410 320 MO=I/29+1 325 I=TOTDA-DAYS(MO,1,YR,0)I IF(I.LT.0)GO TO 420 DA=I+1S RETURNT 400 YR=YR-1 GO TO 310 410 YR=YR+1Y GO TO 310 420 MO=MO-1M GO TO 325 ENDC,DAYS IF(DIREC.GE.3)GO TO 300C.C COME HERE TO CONVERT MO,DA,YR TO TOTAL DAYSC% IF(DIREC.EQ.1)TOTDA=DAYS(MO,DA,YR,0)% IF(DIREC.EQ DAY/-FP=DAY/STACK=32 TASK=...DAY//+;PROGRAM TO CONVERT RSX DATE TO DAY OF WEEK;;CALLING PROCEEDURE:;';DAY MM/DD/YY (TO GET DAY OF ANY DATE);OR;DAY (TO GET CURRENT DAY);;F;PROGRAM RETURNS DAY OF WEEK (0=SUNDAY) IN STATUS RETURNED AFTER SPAWN;!;A CLUDGE FOR USE WITH BASIC, ETC; .MCALL GMCR$,GTIM$,EXST$,DIR$ .PAGEDAYOFW::$ DIR$ #GETMCR ;GET MCR COMMAND LINE" CMP @#0,#12. ;FULL DATE SPECIFIED BEQ DATE ;YES, CALC HIM6NODATE: DIR$ #GETTIM ;NO FILL IN TODAY IN TIME BUFFER$ BR CALC ;AND CALCULATE DAY OF WEEK@DATE: MOV #GETMCR+6,R0 ;POINT TO MM/DD/YY STRING IN COMMAND LINE JSR PC,$CDTB ;CONVERT MONTH CMP R2,#'/ ;TERMINATED ON "/"C& BNE NODATE ;IF NOT, GIVE TODAYS DATE% MOV R1,TIMBUF+2 ;PUT MONTH IN BUFFERD JSR PC,$CDTB ;CONVERT DAY! CMP R2,#'/ ;TERMINATED ON "/" ?L' BNE NODATE ;IF NOT, GIVE TODAY'S DATE:# MOV R1,TIMBUF+4 ;PUT DAY IN BUFFERE JSR PC,$CDTB ;CONVERT YEARE MOV R1,TIMBUF ;ASSUME YEAR OK*CALC: MOV #TIMBUF,R1 ;POINT TO TIME BUFFER& BIT #3,(R1) ;IS YEAR DIVISIBLE BY 4?! BNE NOTLPY ;NO ITS NOT LEAPYEAR00 INCB DAYSMO+2 ;INCREMENT # OF DAYS IN FEB TO 29/NOTLPY: CLR R5 ;CLEAR FOR DAY OF YEAR ADDITIONO' MOV 2(R1),R2 ;# OF CURRENT MONTH IN R2 " MOV #DAYSMO,R3 ;USE R3 AS POINTER*ADDAMO: MOVB (R3)+,R4 ;GET # OF DAYS IN R4 ADD R4,R5 ;ADD TO DATE' SOB R2,ADDAMO ;IF NOT DONE, DO ANOTHERT ADD 4(R1),R5 ;NOW ADD DAY TO R55 MOVB #28.,DAYSMO+2 ;SET FEB BACK TO 28 FOR NEXT TIMES& ;NOW HAVE JULIAN DAY OF YEAR IN R5 MOV (R1),R3 ;YEAR IN R3R$ MUL #365.,R3 ;COMPUTE 365.25 * YEAR MOV R3,R4 ;HAVE 365. MOV (R1),R3 ASH #-2,R3 ;.25 TIMES YEAR% ADD R3,R4 ;HAVE 365.25 * YEAR IN R4Y- ADD R4,R5 ;NOW HAVE 365.25*YEAR + DAY IN R5  CLR R4 ;FOR DIVIDE BIT #3,(R1) ;LEAP YEAR ? BNE 1$ ;BR IF NOT  DEC R5 ;PATCH FOR LEAP YEAR51$: DIV #7,R4 ;DIVIDE MODULO 7F ;HAVE DAY OF WEEK IN R541 MOV R5,EXIT+E.XSTS ;RETURN DAY OF WEEK AS STATUST DIR$ #EXIT ;AND EXIT .PAGE;;TABLE (BYTE OF # OF DAYS TO ADD FOR EACH (COMPLETED) MONTHN;R<DAYSMO: .BYTE 0.,31.,28.,300$%'(n41.,30.,31.,30.,31.,31.,30.,31.,30.;M;DIRECTIVE PARAMETER BLOCKS EXIT: EXST$ EX$SUC GETMCR: GMCR$5;YGETTIM: GTIM$ TIMBUF;NTIMBUF: .BLKW 8. .END DAYOFW CLR R4 ;FOR DIVIDE BIT #3,(R1) ;LEAP YEAR ? BNE 1$ ;BR IF NOT  DEC R5 ;PATCH FOR LEAP YEAR51$: DIV #7,R4 ;DIVIDE MODULO 7F ;HAVE DAY OF WEEK IN R541 MOV R5,EXIT+E.XSTS ;RETURN DAY OF WEEK AS STATUST DIR$ #EXIT ;AND EXIT .PAGE;;TABLE (BYTE OF # OF DAYS TO ADD FOR EACH (COMPLETED) MONTHN;R<DAYSMO: .BYTE 0.,31.,28.,3; ; DAYCK.MAC;<; A SUBROUTINE TO CHECK AND MAKE SURE THAT THE DATE ENTERED; IS A VALID DATE; .MCALL QIOW$C .TITLE DAYCK&DAYCK:: CMP @2(R5),#12. ; CHECK MONTH BGT ER1 CMP @4(R5),#31. ; CHECK DAY BGT ER2 MOV @6(R5),R1 ; CHECK YEARYRTEST: CMP R1,#60. BLT ER3 ; YEAR IS LESS THAN 60 CMP R1,#1970.* BGT REM19 ; NEED TO REMOVE 1900 FROM NO. CMP R1,#88. BGT ER3 MOV #1,R0 RETURNREM19: SUB #1900.,R1 BR YRTEST7ER1: QIOW$C IO.WVB,5,1,,,, ; AN ILLEGAL MONTH BR ERENDA5ER2: QIOW$C IO.WVB,5,1,,,, ; AN ILLEGAL DAY BR ERENDD6ER3: QIOW$C IO.WVB,5,1,,,, ; AN ILLEGAL YEAR EREND: CLR R02 RETURN AMES1: .ASCII/THIS IS AN ILLEGAL MONTH, PLEASE REENTER THE DATE / L1=.-MES1?MES2: .ASCII/THIS IS AN ILLEGAL DAY, PLEASE REENTER THE DATE /T L2=.-MES2@MES3: .ASCII/THIS IS AN ILLEGAL YEAR, PLEASE REENTER THE DATE / L3=.-MES3 .END#1,R0 RETURNREM19: SUB #1900.,R1 BR YRTEST7ER1: QIOW$C IO.WVB,5,1,,,, ; AN ILLEGAL " INTEGER FUNCTION DAYS(MO,DA,YR,I)) INTEGER MO,DA,YR,REM ! REM IS REMAINDER INTEGER DAMO(13): DATA DAMO/0,31,59,90,120,151,181,212,243,273,304,334,365/ IF(I.GE.1)CALL IDATE(MO,DA,YR) IF(YR.GT.1900)YR=YR-1900*200 DAYS=DAMO(MO)+DA+(YR-80)*365+(YR-80)/49 REM=MOD(DAYS,1461) ! DIVIDE BY NO. OF DAYS IN 4 YR PER.; IF(REM.LT.0)REM=1461-REM ! FOR YRS BEFORE 1980, REM IS NEG IF(REM.GT.60)DAYS=DAYS+1) IF((REM.EQ.60).AND.(MO.EQ.3))DAYS=DAYS+1 RETURN END; ; DEC3.MAC;A; DECODE A SERIES OF ASCII CHARACTERS WHOSE RESULT IS 3 UNSIGNED ; INTEGERS;B; THE INTEGERS CAN BE SEPARATED BY ANY CHARACTER OR ANY SERIES OF3; CHARACTERS THAT ARE NOT DIGITS FROM 0 THROUGH 9.E; USE THIS BY MAKING THE STATEMENT: CALL DEC3(MO,DA,YR,FLAG,ANS,MAX)C; WHERE MO,DA,YR, AND FLAG ARE INTEGERS AND ANS IS A 20 BYTE ARRAY5; FLAG WILL BE SET TO THE NUMBER OF INTEGERS ENTEREDI; MAX IS AN OPTIONAL INTEGER = TO MAX NO. OF CHARACTERS THROUGH WHICH ITD; WILL SEARCH. IF A NUMBER BEGINS ON OR BEFORE THE MAXIMUM, IT WILLE; BE CONVERTED EVEN IFTHE END OF THE NUMBER COMES AFTER THE MAXIMUM. .TITLE DEC3DEC3:: MOV 12(R5),R0 MOV R0,R3C TST 14(R5) ; WAS THERE A MAX NO. OF CHARACTERS?0 BLE NOMAX ; NO THERE WASN'T6 ADD @14(R5),R3 ; WAS A MAXIMUM, USE IT BR CONT/NOMAX: ADD #20.,R3 ; NO MAX, USE 20CONT: DEC R0 CLR @2(R5) CLR @4(R5) CLR @6(R5) CLR @10(R5) FIND1: INC R04 CMP R0,R3 ; HAVE WE REACHED END OF CHARACTER STRING BHIS END ; YES, CMPB (R0),#'9 ; IS THIS CHARACTER TOO HIGH? BGT FIND1 ; YES* CMPB (R0),#'0 ; IS THIS CHARACTER TOO LOW BLT FIND1 ; YES( CALL $CDTB ; CONVERT 1ST NO. TO BINARY% MOV R1,@2(R5) ; STORE RESULT AT NO1+ INC @10(R5) ; REMEMBER HOW MANY NO. FOUND DEC R0 ; R0 IS ONE TOO FAR3FIND2: INC R0 ; FIND THE NEXT NO. (R0 CONTAINS THE1 CMP R0,R3 ; ...ADDRESS OF THE 1ST BYTE AFTER END BHIS END ; ...OF 1ST NO.) CMPB (R0),#'9 BGT FIND2 CMPB (R0),#'0 BLT FIND2, CALL $CDTB ; IF GET HERE, FOUND 2ND NUMBER% MOV R1,@4(R5) ; STORE RESULT AT NO2 INC @10(R5) DEC R0 FIND3: INC R0 CMP R0,R3 BHIS END CMPB (R0),#'9 BGT FIND3 CMPB (R0),#'0 BLT FIND3 CALL $CDTB MOV R1,@6(R5) INC @10(R5) END: RETURN .END00,./3TADATADATADATADATADATA100 ! PROGRAM DELMAS.BAS3110 ! TO REMOVE A UIC FROM THE ACCOUNT MASTER INDEX;120 DIM A$[80],B$[80],C$[1],D$[80],R$[80]V,E$[6],T1$[3]V(2)"130 ! CLEAR FLAG FOR LINE INSERTED140 F=0$150 R$="MASTER.INF/LN:80/RO/END:330"160 OPEN #3,R$170 R$="MASTER.INF/FX/LN:80/WR"180 OPEN #4,R$1190 INPUT "ACCOUNT TO DELETE - (NO BRACKET) ",G,U200 INPUT LINE #3,A$210 B$=SBS$(A$,2,8)220 B$=LTR$(TRM$(B$))230 T1$(1)=PIECE$(B$,",",1)240 T1$(2)=PIECE$(B$,",",2)#250 G1=VAL(T1$(1)) : U1=VAL(T1$(2))#260 IF G1=G AND U1=U THEN GOTO 280O 270 GOTO 300280 PRINT "UIC DELETED"N 290 GOTO 200*300 ! WRITE CURRENT DESCRIPTOR TO NEW FILE310 PRINT #4,A$L 320 GOTO 200 330 CLOSE 340 RUN "MASTER"350 END NF/LN:80/RO/END:330"160 OPEN #3,R$170 R$="MASTER.INF/FX/LN:80/WR"180 OPEN #4,R$1190 INPUT "ACCOUNT TO DELETE - (NO BRACKET) ",G,U200 INPUT LINE #3,A$210 B$=SBS$(A$,2,8)220 B$=LTR$(TRM$(B$))230 T1$(1)=PIECE$(B$,",",1)240 T1$(2)=PIECE$(B$,",",2)#250 G1=VAL(T1$(1)) : U1=VAL(T1$(2))# DUMMCR=DUMMCR/ TASK=...ZZZSTACK=32// .TITLE DUMMCR?;THIS TASK JUST GETS AN MCR COMMAND LINE AND DUMPS IT IN OCTAL, ;AND ASCII; ; F.BORGER; MRMC % MEDICAL PHYSICS ; SEPT 28,78; .MCALL GMCR$,DIR$,QIOW$,EXIT$S; ;DATA AREAS;GETMCR: GMCR$ ;MCR BUFFER)QIODPB: QIOW$ IO.WVB,5,1,,,,&MES: .ASCII /DUMP OF MCR COMMAND LINE/ MESL=.-MES#MES1: .ASCII /LENGTH OF COMMAND = /MES1P: .ASCII / / MES1L=.-MES1MES2: .ASCII /TERMINATOR = /MES2P: .ASCII / / MES2L=.-MES2 .EVEN.MAIN: .BLKB 8. ;ROOM FOR 6 DIGITS AND 2 SPACES*MAIN1: .WORD ;ROOM FOR 2 ASCII CHARACTERS MAINL=.-MAIN*START: DIR$ #GETMCR ;GET MCR COMMAND LINE MOV @#0,R1 ;LENGTH IN R1 MOV R1,R5 ;SAVE IN R5E MOV #MES1P,R0 ;POINT TO ASCII CLR R2 ;SUPRESS LEADING 0'SB! JSR PC,$CBOMG ;CONVERT INTO LINE MOV R5,R1 ;RESTORE LINE LENGTH) ADD #GETMCR+2,R1 ;POINT R1 TO TERMINATORO MOVB (R1),R1 ;GET TERMINATOR' MOV #MES2P,R0 ;POINT TO SECOND MESSAGEN! JSR PC,$CBOMG ;CONVERT INTO LINEL! DIR$ #QIODPB ;WRITE HEADER LINEO- MOV #MES1,QIODPB+Q.IOPL ;CHANGE TO NEXT LINEO& MOV #MES1L,QIODPB+Q.IOPL+2 ;OF OUTPUT DIR$ #QIODPB ;WRITE IT- MOV #MES2,QIODPB+Q.IOPL ;CHANGE TO NEXT LINE1& MOV #MES2L,QIODPB+Q.IOPL+2 ;OF OUTPUT DIR$ #QIODPBC- MOV #MAIN,QIODPB+Q.IOPL ;CHANGE TO NEXT LINEO& MOV #MAINL,QIODPB+Q.IOPL+2 ;OF OUTPUT6 MOV #GETMCR+2,R3 ;POINT R0 TO START OF COMMAND BUFFER" ASR R5 ;CONVERT R5 TO WORD COUNT& INC R5 ;POSSIBLE ODD # OF CHARACTERS% MOV #1,R2 ;DONT SUPRESS LEADING 0'S(LOOP: MOV #MAIN,R0 ;POINT AT OUTPUT LINE MOV (R3),R1 ;NUMBER IN R1 $ MOV (R3)+,MAIN1 ;AS ASCII IN BUFFER JSR PC,$CBOMG ;CONVERT TO OCTAL MOVB #40,(R0)+Q MOVB #40,(R0)+ ;FILL 2 SPACES DIR$ #QIODPB ;WRITE LINE SOB R5,LOOP ;LOOP FOR N WORDSM EXIT$SQ .END START;CHANGE TO NEXT LINEO& MOV #MAINL,QIODPB+Q.IOPL+2 ;OF OUTPUT6 MOV #GETMCR+2,R3 ;POINT R0 TO START OF COMMAND BUFFER" ASR R5 ;CONVERT R5 TO WORD COUNT& INC R5 ;POSSIBLE ODD # OF CHARACTERS% MOV #1,R2 ;DONT SUPRESS LEADING 0'S(LOOP: MOV #MAIN,R0 ;POINT AT OUTPUT LIDUMMY/FX/-CP=DUMMY/ TASK=...DUM STACK=160//00456:n4;DUMMY PROGRAM TO FILL UP HOLESTART: .WORD 0 .END START" :L(( |U@ (R5U(U DPSYSYSYSYTICL`@@@@```SYSYSYSYTICL K   A Author: Martin Heller, New England Nuclear Corporation  = Modified by: Glenn Everhart, RCA ,F. Borger, MRHMC   Date: 24-Oct-79   Date: 23-March-1983   Date: 15-June-1984  ' Last source edit: 15-June-83   Source version: 1.20  . Documentation edit date: 15-June-83   L Purpose: to provide the capability of having two computers talk L to one another over serial lines, while having access to file fa-  cilities.  r! Operating System: IAS i b% Source Language: Macro-11 C  Units:  O9 1. terminal at which user is typing a 1 2. line to another computer J -/ 3. file to be transmitted  % 4. RECEIVED.DAT   L DUPLEX Docum00<./3TADATADATADATADATADATAentation PAGE 2 K    Usage:  ( 1. Define logical units  = 2. Hook up cables and/or dial other computer  C 3. Set characteristics of terminal ports as needed 2  4. Run DUPLEX  L 5. Type away -- you will effectively be talking to the oth-  er computer  LF 6. Use control characters as needed to control DUPLEX  # Control characters used:  I 1. Control-B: exit from DUPLEX. Terminal talks to MCR. D nL 2. Control-T: transmit a file. Program will prompt for an L input file specification, i.e. L DUPLEX>=SY0:[100,200]FileName.Typ;4. The equals sign is E necessary for the file to be recognized as input. t L 3. Control-P: toggle between line-by-line and whole-file ! transmission. e L 4. Control-N: transmit one line in line-by-line transmis-  sion mode.  T= 5. Control-A: abort transmission of a file.  L 6. Control-F: open/close file RECEIVED.DAT of characters L received from unit 2. This file is also closed by Con-  trol-B.  oL 7. Control-]: Sets up line delay value by reading 1 char- L acter and subtracting 48. from it (ASCII 0). If nega- 4 tive sets line delay to 4 ticks.  mL 8. Control-\: Toggles line delay off/on. In line mode, if L line delay is on, the file is transmitted 1 line at a L time but with automatic proceeding after "delay" ticks L between lines. This defaults to 4 ticks but may be set 8 by control-] to anything reasonable.  rL 9. Control-Y: Toggles character delay. This will insert a L 1 tick delay between sending characters if set. Note L this forces single character QIO$s and is expensive of L CPU time, however is provided for remote computers where L the delay is needed. When turned off, transmission is L by qio$ of a line at a time. The line delay is more = likely to be useful for general purposes.  n L DUPLEX Documentation PAGE 3 K o s nL Internal mechanics of program: The program initializes its L buffers, attaches units 1 and 2, and declares AST handlers for L both units. It then clears event flag 3 and waits for event flag L 3 to be set. A character at either port will be delivered to the L AST handler. Normal characters will be queued for output to the L other port; special control characters will cause the AST L handler to set event flag 3, mark the appropriate words to vector L the main program, and exit. When the main program regains con- L trol it will perform the required control function, clear event L flag 3, and return to a wait state. Control-B, of course, will L cause the main program to clean up outstanding I/O operations, L close open files, and exit, returning control of the terminal to  MCR. t L Notes: Custom tailoring of the program can be done most ef- L fectively by adding to the list of special characters in one or L the other of the AST handlers. Special functions can be indexed L through TABLE, with indexing passed from the AST handler to the L main program through00DJK:n4 SENTIN. CIRSIZ and BUFSIZ could be enlarged L if necessary, although on my PDP-11/34 they are sufficient for 9 9600 baud operation under normal system loads.  tL Once DUPLEX is running, the user's terminal should remain at L its normal speed and parity, but should be set for full or half L duplex (no echo or echo) appropriate to the computer on the re- L mote port. The program's default settings are appropiate for L talking to DEC computers; when addressing IBM systems, a single L control-P at run time will set file transmission to line-by-line L mode. When talking to a VAX, set the VAX port to have HOSTSYNC, L and the control-s and control-q mechanism will keep both com- L puters from overflowing their buffers. It is also possible to L activate the RECEIVED.DAT file and then to control-O your own 6 terminal, if you don't want to waste paper.  kL DUPLEX has been used successfully with computers hard-wired L and connected via modems and ordinary phone lines. It has had L both ports at the same speed, and the ports set to different L speeds. DEC, IBM, CDC, and even Motorola systems have been suc- L cessfully interfaced to PDP-11's. File transfer from micropro- L cessors has turned out to be highly useful: the micro is then L given the advantage of hard disks, high speed printers, and other L mini-computer peripherals, albeit via a 9600 baud serial line. L The incoming Bell 103 on a DZ-11 port has turned out to function L perfectly well as an outgoing modem port. There is no reason au- L to-dialing and such features should not work without any changes  to the software. r L For further documentation, please refer to the source list-  ing.  L Note: DUPLEXX should normally be run with a fast terminal. L If your console is slower than (or even the same speed as) the L remote line, it can behave strangely. Speed combinations have L not been well investigated but running a 1200 baud line from a L 9600 baud terminal works well. Be careful of buffered I/O. You  L DUPLEX Documentation PAGE 4 K d r lL may want to run Duplex noncheckpointable and/or at higher priori- L ty than usual. It's I/O bound so high priority is normally not a L bad idea. Making it non- checkpointable improves AST throughput A and (on older RSXes) allows multiple outstanding QIOs. s well. Be careful of buffered I/O. You  L DUPLEX Documentation PAGE 4 K ?EX/PR/-FP,EX/-SP,EX=LB:[1,1]DDT/DA,SY:[1,10]EX,LB:[1,1]EXEC.STB/ TASK=EXLINKSTACK=32//&;DUMMY PROGRAM TO LINK ODT TO THE EXEC; .MCALL EXIT$S,QIOW$,DIR$ .GLOBL QIODP,IOST,QIO,BUFFERSTART:QIO: DIR$ #QIODP ;DO DUMMY QIO EXIT$S .WORD 05QIODP: QIOW$ 0,1,1,50,IOST,,<0,0,0,0,0,0> ;DUMMY QIO IOST: .WORD 0,0BUFFER: .BLKW 400BUFEND: .END START00LM/3TADATADATADATADATADATA* :L(*Z&h*:}h&khkh( *3 (& && .WORD 05QIODP: QIOW$ 0,1,1,50,IOST,,<0,0,0,0,0,0> ;DUMMY QIO IOST: .WORD 0,0BUFFER: .BLKW 400BUFEND: .END STARTzDZ&Hj:}HfkH@kHN?SH@@SHAASH6C=HC@=HpFpH &HH6XzHzXWH];PH4e;VNHa`HbI`rHaDHcHRS4}HPSXHX}HJ 8rHQ\DHc\H\Shp!HLz}sHY:HQ mH< vH BxH@ yH6 0zH7 H2 0H0 H( 8H H~ H H !Hz '"H 8xH}HvH H%H HH%H~H@H H2HP@QH8H zvH%H %HWHvHH%HHdH`wH@LHMHyH fHcwHzH'H@*KHWH#XH^H|H fH4xH4jzHEHH#HxSHzH@z!@H!}H&@H&KH&@QH&WH0@QH0pH2@8H2}H 2H2@H2H3H3}Hz4H4@8H4KH4@H5@8H2Hq  H #H zH zH#HxH:HrHyHzބHvHyHHaHb%HbvH d HdH eHf@Hf HfKHf@QH i%Hzm@HppHp@HrH s%Hs@8HsP HL {8H=zL XHL hzHL HL zH"H&H",H "fH"pH@"wH#""H#wH# zH#H# H#Pz.csH@!0H"0@H"0WH#0}H #0H $0@H$0@8H&0H"'0vH)0H/0@8H00H00pH 30@Hz30@8H30H040@8H$2yH2H 3MH 3rH 3vH<5a(H<5[H<5fH<5zH5ZHa6Ha6PHza6Hc63Hc6GHc6`Hc6bHc6HgHc6hHc6iHc6(iHc6PiHc6xiHc6XuHc6uHdd6"Hd60zHlzd6Hvd6Hpd6XH0e60He6H f6p!Htf6+Hf6H|h6zHzi6(Hi6h`Hi6xdHhi6fHfi6@yHjl6`Hzm6#Hn6Hn6HH n6 SHn6VH p6Hp6 Hp6 Hp6@ Hp6h Hp6 Hp6 Hp6 Hp6 H p6Hzp6Hp6Hp6(Hp6PH p6xH p6Hp6Hp60*H"p6X*H$p6*H&p6*H(p6*H*p6*H,p6 +00TJK:n4H.p6H+H0zp6p+H2p6OH4p6OH6p6PH8p6(PH:p6PPH<p6xPH>p6PH@p6PHBp6pbHDp6bHFp6bHHp6bHJp6cHLp68cHNzp6`cHPp6cHRp6Hp6pHrp6)Hr6H~r6pHr6Hr6ГHs6dHs6~Ht6Ht6` Ht6hQHt6VHzt6xdHVt6fHTt60uHXt6XuHZt6uH\t6uH^t6uH`t6uHbt6@yHdt60zHnt6Hqu68Hxu6xKHv6ZHw6 XHz$9!H$9pHL9H:t H:GH :H<H <@H <@8H<H<@QH4H<KH<@HH<HH@|wKH|wTH|w`TH@|w XH|wsH|wsH|w@yH |wyH|wXzH |w~Hz|wHwp Hw@)HwRHwTH@wZHweHw gHwrHwsHwXuHwyHw}Hw(HwxH@zwHwH wHw H xHAy0uHAyXuHAyuHAyuHAyuHAyuHAy vHAyHvHDy0uHDyXuHzDyuHDyuHDyuHDyuHDy vHDyHvH\y. Hyj(HyHzyH|yH~yHNy8 HyHyHzyH&HyfHyYMHyRqHyvHtz HtzHtzpHtzsHzHz#Hz;Hz\MHz!TH zcZHzzpHzsHzyH@zHzHzHzg'H!{xKH!{H${@8H ${KH${dH&{8H&{H,{H z,{p!H,{H 0{@H0{@H0{H0{H2{ H2{%H2{ XH3{PcsH@zsH wH<yH:yHyHyHzHzHzH zH}H6BH8HFHHHJzHXiHRΐH"ϐH$АH&ѐH(ҐH*HŒHb@Hc Hc%HfHhdH pWHzpHr Hr%H sHtdH ԃDHԃ%H ԃzHԃw*H@ԃ{8H@ԃ 9Hԃr:HԃH;HԃSH00\c/3TADATADATADATADATADATAԃ`HzԃfHԃKqHԃiwHԃlyH ԃdzHԃ9HԃCHLHLHLKHL^H LqHL8wHL`wHL~H@zd,HdQHdfHdtrHdsHdH0uHuHuHuHuHHvHą0uHąuHąuHząuHąuHąHvH܅. H|LH|fH|xH@H(%H pH$2H"HH@HH z@HH&WH H]H+H!@HdH@H H,H.WH3H pH*%HzdHHKHH4%H*vH2H@8H WH@HdH"HLgH0\ H@\SHz\rH \CH}H󍀢HԒ&HԒHԒHԒ7!H Ԓ#HԒxQHԒqH@ԒLqHԒVsHԒsHԒsHzԒ}H@ԒHԒRH.H. H.8H.KH . LH.^H.qH.BxH.yH.yH H@ zHzܙHa Ha%Ha@8H avHcdHcvHe%Hf+LHf@QHfHh@HiWHipHjWHzlHm}Hn@HpHq@8Hq@H rHrHrHrdHr@jHs@HsHsWHsvHzs}HsHsHtHt%Ht@8HtqHtvHtHu Hu%HLH&HL8HLDH L`THzLxdHLfHLHqHLPsHL8wHL H@HH }H좠H`wH+H 榀>HH즀>Hz즀H@H KHvH}HKHP H^cKHeWHpzeirHfHfyHgj8Hg{8HiZH ifHm Hjsc"HnsdH@sdHHsdHP2sdHXsdH`s}HsHs;HxYqH4" DfHFHFHH8H(JzKHrzJjHKl HKc"HnKdH@KdHHKdHPKdHXKdH`KHK;HaLHayHc> H^cKHeWHpzeirHfHfyHgj8Hg{8HiZH ifHm Hjsc"HnsdH@sdHHsdHP2sdHXsdH`s}HsHs;HxYqH4"  #{: (U&@# DR00dJK:n4SYSYSYSYTICLTICL @ #{:@ @#````(SYSYSYSYTICLTICL 1N3 (fj  ,0'2 >P ySYgg    4     01234567SAMLHCQFXBGIVEDx}~\/'"% ^_@><$=CQ.;-+*BEFGLNPSVWX!:&#?O  2 b T  v ` <zf  0 x "*7 7 \ V N7J77 V   : DD T:  z? V  N 7 & &  F7 @ 7    w  ? w  Def w  %.eVDl  w ׭eDR  5$ 4 x t@  p% btl @(V w ? XV F7 _ D7  77 w ( ԇ  yR w7|tl  7J7ZwU7:78%5* f v H h27 7 00lc/3TADATADATADATADATADATA\& Ba   2 p * &  $w 77w55  fwfB~  w e ]@<7Qm60,, " 1 (   77 wd f 4b  $ B` "% w 777UE 7h j  d^ VeJ\7L7FAƁ 0׭/( Uphf7  F$ĝw)t!xMC w7   e0B7  : @ 7lw>:4.MPfcODXDc> <BE>7=IO2IL*EM"TRFP w 7\ wR   J  B  % VR X 8 3 *  @   0  @ @   D. zbf&f)w  w  %N>4xx <x % ! %4x4 7`- @@@P@ @emV 7 wTw6 , ; ( -@f H  m7 7 p(`  ,07Eu` A A ы    5   7`6x)H2b:d ,-/ 0$ȕ x3 ^67 & SYfX p"# 97 P .STB FILE NAME IS:  B w $ $ az +lfd&%V&%#$ %x V U w N,  @ e0 @ 7| 7l 7 ^7Z&e N @ e0 X  wJ^XR  6 0  re ee e @( `ADD SUB MOV CMP 0BIT @BIC PBISBRBNEBEQBGEBLTBGTBLEBPLBMIBHIBLOSBHISBVSBCCBCS CLRF COM INC DEC NEGF ADC SBC TST RORF ROL ASR ASL SXTpMULrDIVtASHvASHCxXOR~SOBEMTJSRSWABRTSFJMPBPTCLCCLVCLNSECSEVSENSCCCCCNOP~p`8 d Lp@  (f&Bwp*KWt2E Ktpe 4e0 &tt` )  a    Xt(pe$  8l <S  ÝE Ý 3t8per p ѕ,Ýt v VÝ` HÝT Vѕ,J E tpe ѕ,  єєєє &&f L$q   D!De /D*f  9*7 * @ D!ww D     ѕ+ : $ .ѕBѕ   ѕ & v5vѕ0 tEe0v & r e.e e ~&f2 &ѕ 2 D~ѕ( dѕ)Y ѕ@ ÝJ r 6Ý0`  " ѕ+ѕ#ѕ- & D ! !E7QB09~$ J~ %  <!   6!    D   !?7Qf  +-'"A) N7 Ft0P vA n h ` ZtP P ` Z  &  , ff  P&f @ #!-((- >( !U, D7& \)U0 ~ !  j 8U  ,+ U F U&(  " )  J! tP 5 u7Q&   00tJK:n4Ux  ^ x -B-> &70 5 ҋ⋗B* &    EE  0n&f 0 $q ePf wbB wZX$q ,,e 8  .$ 09AZ ~׭.   ׭$׭A~ +B5 `  w7lew7 ew  B5  `fH  26 w"w,@e %$ %.@e.Wp(`~& 7 "qq q0uqXuququququq@yqxdqqqqqqqqw &5 funhj \uhf@# jwaw: 8 8w &  *AdBbAep& f  j P aAAf@pnp C*8֋ *88*Ë6AB`f Ua`& WaWz  ɥ"N ~ ajfu-nhwXɥ;]a)wנ"å.@j  a Tw@ ŀajTI& af* *`V @e,w Hjjlj ɥ@Iaujk,bp 5f fˇ ȕ (‡ eSY@$# E$ e,5 funhwe,aja`W- f`nwJuhnw@ Dllja!CeH###33@# & n8 *AAw  8jDl@ jTeBT85l@ An5j)f  ,      RՀa@f&f ` *  נ נ  נננ"D נaנz E ѐEp(p נ$נ0נ9נAנZנ_נ:  Vנ[ȕ]נ<ȕ>ȋ8 ~נ%נ*נ-נ.נ0נ9נAנZȠ yנ0נ7נ*נ,A jȠh f  oנ"A   #A aנ$נ%נ*נ0נ9נAנZנ_נ.  נ.נ; dנ0נ9 ]נ- X נ* QA  נ, Dנ=  >5 B>U (w^נ/* . ,נ$נ-נ.נ0נ9נAנZ נ_ נ:  Dנ"  0f&f E^`  UQ  UQ ËUI U `e  !ddC    D%*.C U 0 0 W ,Uw6W /@ : ^BDaW-Ί WNWOD!BΊz CECCD! D! ΋5  e ΐ TpRpR΋pBC5N KR΋KBAE:D0CĊ f eB  Dҁ CSĊ  WB E Br Ε f)& 6 l(*  E 'W " =N  W :+W = 1 #W ,W / %W %W *Հ W <W [W >W ] v(* 6 ew *8^   - f .NA M*)98 R eB &&  U **e *Nlv ΋*.2  & #!)&ePe && >e >E Dp* ww ~ )  8C 0* ) *wR*    ep p  nއ = EW9ť^*0p CaC  = <  0* =Eե^A e@  = E00|c/3TADATADATADATADATADATAp+!"8eE`l0  0s00/pq0`p l064p 4 p  , J *` C# "   D @)  6?0D)w ( D 8#"#)%ĥ ĥ w 0 *0 @Q$    0 40 60)) &  [# T&* =w< 2s q EW!p0p2  ؇#( P)  @#**fff <  &*w. k58e$8wT 2j  ,EB0-%. #p.2e  483  -Y r38 (#5=A#@))  *R*)@#0l C# 028 h00ĥۇAĥĊ  000 0 @0 &*0 @ u #eB ,  *  eBe>  # #D #=0/H#@&0 # = e0   0@e 6=#02/002# @#?@#040 6w/! 0s0 0/0q0p!0 .=p0p2w *) d* w46l00+1e  %p*wJ f( f)f &8 -2e  L0 0 0 80 B0 0 0 0)#0.)"(. = . B  E  (.8Ae f"( UCɗ+e$&% &ff *w  w & W+W- Ba. W#  B0  c  c S W %ec e`s  # 3  & ˥ Z ^C w *D ~w *) l0, *) $ )*)0,40,6 w *  w " V ,,  *e6p 4 `8  l.8 81416     8 -̋  f 8  08\0 ep=& /empp*  - C46/`A p  C ? t  "̋3t42 &8f08 r 880!8 %   8 w8w)  J 2 8   ***  DP5R~RRR~141612epl2l0p Mw   f >5>Eu \  f &* *> =00l&8el2 0 *w eE D` bl lrw b  B eE"s    s-  Cslw LB C DBe ?D(1 >M=f& e %&&eH =&e0  U   E > >E=uf "p  wveB  8 <$&w 6*   =D Z `p46 f L64/=  @) 0  8w 46 8 Xe*w 8e2 ..8em,0l0!D0e6p 4K) Cf   +e) .* .8 - ̋  G   Bp8e6p 4 n08*w=p!Օ^*&f  EU   pr0 =B00 :n4@&& p&  N pv C`B `v 0rr D wC r UeeA e* 0s rp v& sBvrp   ,*1 U8UM%..w w B 00fep=& /e`pw46f  8 E D/D!pq0l8epl0pɥ .ɕ*wf&f w 2*#   U@e T  eHw1  %,,  w *D B UqqC ӥ: ~ Ce    $*w *  ע"wd(Ĕ%.%%;C~ 5)5@DD ͥ*Ce Ve%w U\5@ 5wU U*U  "5@\U@5 5LU*U  ʥ*%C!.D` *weC5U5  5 5@e*=U Ee& REe  ӥ" wX ˥"   ˥" Ք     Օ w BC "& @SY*p0p210=E%0=w*e "f D CB.Ew l )* 6 fU %  BA `6p 4p`40,0, f 톇,, w      .% eB U5UU " plp & NeՀ)**He(  1 :&e  1-1- 111 rrrrr &  Be " w* w X&Ba +- ʥ# . U 0   b   `     &fe ~  2 $ L La Ta Wq(W!ZW!AW!9W!0@f&5ҕ[ "5ҕ, 5ҕ]Et55tF e0ҐtIw  ҥ[, &]  5 sC~ D w81 z   1 1 1 1 1 1 DEee $ $ MAC ATTACH,ATTACH/-SP=ATTACHF77 BELL,BELL/-SP=BELLMAC BITTER,BITTER/-SP=BITTERMAC COMPAR,COMPAR/-SP=COMPARF77 CSIZE,CSIZE/-SP=CSIZEF77 DATODA,DATODA/-SP=DATODAMAC DAYCK,DAYCK/-SP=DAYCKF77 DAYS,DAYS/-SP=DAYSMAC DEC3,DEC3/-SP=DEC3MAC GETSTR,GETSTR/-SP=GETSTRF77 INDAY,INDAY/-SP=INDAYMAC LEN,LEN/-SP=LENMAC LOA,LOA/-SP=LOAMAC LOAINT,LOAINT/-SP=LOAINTF77 MTIME,MTIME/-SP=MTIMEF77 NTIME,NTIME/-SP=NTIMEMAC POS,POS/-SP=POSMAC POSI,POSI/-SP=POSIMAC SCOPY,SCOPY/-SP=SCOPYMAC SPOOL,SPOOL/-SP=SPOOLTMAC TRIM,TRIM/-SP=TRIM LBR EXTRA/CR9LBR EXTRA/IN=ATTACH,BELL,BITTER,COMPAR,CSIZE,DATODA,DAYCKZ8LBR EXTRA/IN=DAYS,DEC3,GETSTR,INDAY,LEN,LOA,LOAINT,MTIME&LBR EXTRA/IN=POS,POSI,SCOPY,SPOOL,TRIM8PIP ATTACH.OBJ;*,BELL.OBJ;*,BITTER.OBJ;*,COMPAR.OBJ;*/DEAPIP CSIZE.OBJ;*,DATODA.OBJ;*,DAYCK.OBJ;*,DAYS.OBJ;*,DEC3.OBJ;*/DEO@PIP GETSTR.OBJ;*,INDAY.OBJ;*,LEN.OBJ;*,LOA.OBJ;*,LOAINT.OBJ;*/DEJPIP MTIME.OBJ;*,POS.OBJ;*,POSI.OBJ;*,SCOPY.OBJ;*,SPOOL.OBJ;*,TRIM.OBJ;*/DEOPY,SCOPY/-SP=SCOPY<0T 27 J00 c/3TADATADATADATADATADATAt T K }@%:dH<a^XAxAv"@\,yxt:( FKYM"YM:iTRkfkf@8GwgOy_f@Q00  :n4t T K }@%:dH<a^XAxAv"@\,yxt:( FKYM"YM:iTRkfkf@8GwgOy_f@QT *t L:t @:@("t hhp( p:t   pp  :   p FT T K Da  ,a   1xs 1xs1xs G0KT 7   .Wj Da  ` $,a (:x ,!y*Wj`:x !y*G ,T K(Da ,a 1xsT * }L(H }h *AC tW/ W/ W/&& P}@}0 T *%:dL(T%:dh *@ABȋDEEנ` *&`     ɋ  LT H Da  ,a   * 1xs 1xs 1xs 1xs 1xs43218765+ GH7  W/ @e07 W/@7W/>Wj&j:jF1xsXjlj t1xsv1xsN|W/ f    Jj"j *Da .` 21xs6: :,a >:x B,a F:x J!y2Wj`::x !yG H( G*H\zDa ,a 1xs|T <a^ Da  ,a ,4 Da  Da  Da Da Da  &Da *Da  Ga^<7 W/ W/ wwwf =W/ wwwf =dWj*,a 0,a 6,a  <,a @AvLjZ,a `,a f,a  l,a pAv~j00 c/3TADATADATADATADATADATA|w77C=wf AwW n r =wwf Awb 1xs 1xsDa "j(,a  .,a 2Av >1xsZj`,a f,a $ l,a pAv |1xs0 }   jj(jWjAv Da  DG $<a^( G. P#&Da ,a (1xsNT *AxL:2@(Axhp(0 *W/ W/AW <W W X&l pL3:2 L2 2 pp1:2 : : pp  2:2 B*B THIS IS AN ILLEGAL MONTH, PL  p *hEASE REENTER THE DATE THIS IS AN ILLE*GAL DAY, PLEASE REENTER THE DATE THIS* IS AN ILLEGAL YEAR, PLEASE REENTER TH E DATE :T Av ,a  1xs;Zx0Nm GvA7 W/wwwf W/ll@ @oAPCpm`C r`FWj",a (,a .,a  4,a 88}@jTj ^1xsJ| rD!< !<W/ 7 j*j >,a B1xs F,a Wj8}G Av( GD,a  1xsT *@L׭8` .׭,`*r "-  T *GwgL(BGwgh00   :n4 *@Aͥ BW   &@o WAo  rT *Oy_L<&Kq@)P@)_G@*)Ps@)W@)@[8@[@*[W@[@[Z@[X@<4@*,0z@`@(Oy_h *B e Qf  ,0z<4)P*&? e |Rye )W$[Z([L([W [W[W[8[8*b& & LP  [8[X [ )_G$`*õ & & & & & ffI  <&Kq)*eA 6 WW-= )PsrT *@QL(@Qh @A@b 5 e Qf  ,0z<4)P*&? e |Rye )W$[Z([L([W [W[W[8[8 FDUMP=FDUMPCVRTBLSD:[1,1]F77OTS.OLB/LBSD:[360,200]ARAP/LB/LIBR=F77BIG:RO TASK=...FDUASG=TI:5ASG=LP:6//C* FDUMP - FILE DUMPC>C FDUMP FORMATS THE DUMP OUTPUT SO THAT EACH BLOCK OF THE FILECC IS LISTED AS OCTAL,ASCII, AND RAD50 ALL ON THE SAME LINE OF PRINTC NOT UNLIKE IBM DUMPS.CC FDUMP SUPPORTS 2 SWITCHESC /ACC THIS SPECIFIES THE OFFSETS FOR EACH LINE TO BE LISTED RELATIVE TOFC THE BEGINNING OF THE FILE. THAT IS, BLOCK 1 STARTS AT '000000, BLOCK?C 2 STARTS AT 1000, BLOCK 3 AT 2000 ....ETC. THIS IS USEFUL FORFC LOOKING AT FILES WHICH CONTAIN LINKED LISTS, LIKE [1,4]SPRQUEUE.SYS.C C /BL:N:M:FC LIST FROM BLOCK N TO M ONLYH/C IF M ABSENT, LIST FROM BLOCK N TO END OF FILES3C NOTE THAT MUST HAVE TERMINATING ':' AFTER BLOCK #EC DC MOD BY F.BORGER TO DO GET MCR LINE, AND OUTPUT DATE AND TIME, ALSO*C DO ONE BLOCK PER PAGE, AND SELECT BLOCKSCE/C NORMALLY EACH BLOCK IS LISTED REALATIVE TO 0.ECL PROGRAM FDUMPC  INTEGER*4 IOUT,< DIMENSION IBUF(8,32), IOUT(8), INAME(25),JNAME(40),ITIME(4) DIMENSION IDATE(5) 2 BYTE BBUF(16,32), BOCT(6,8), BOUT(4,8), BNAME(50)+ EQUIVALENCE (INAME,BNAME),(INAME,JNAME(3)) % EQUIVALENCE (BBUF,IBUF), (BOUT,IOUT)B. DATA IADD/0/, IEOF/-10/, ICR/13/ ,IDASH/'--'/CN CALL TIME(ITIME)C CALL DATE(IDATE)F C TRY FOR MCRE ISW=0 CALL GETMCR(JNAME,ISW)I IF (ISW.GT.4) GOTO 101P WRITE (5, 110)C 110 FORMAT (' FDU>'$) READ (5, 100) (INAME(I),I=1,25) 100 FORMAT (50A2)+ 101 ICOL = JCCHR (INAME,1,50, '/A',1,2, 3), IF (ICOL .GT. 0) IADD = 32767$ JCOL = JCCHR (INAME,1,50,ICR,1,1,3)%C TRY TO CONVERT 1 OR 2 BLOCK NUMBERSA IBLL=32767V IBLF=0N$ KCOL=JCCHR(INAME,1,50,'/BL:',1,4,3) IF(KCOL .LE. 0) GOTO 104T!C AT LEAST ONE BLOCK # IS PRESENT3$ CALL CVRTBL(INAME,KCOL+4,IBLF,IBLL) IF (IBLL .EQ. 0) IBLL = 32767 IF (IBLF .GT. IBLL) GOTO 105E 104 IEND=50 IF (ICOL .GT. 0) IEND=ICOL,1 IF (JCOL .GT. 0 .AND. JCOL .LT. IEND) IEND =JCOLM1 IF (KCOL .GT. 0 .AND. KCOL .LT. IEND) IEND =KCOL  BNAME(IEND)=08 OPEN (UNIT=1, NAME=INAME, TYPE='OLD', READONLY, SHARED, 1 BUFFERCOUNT=-1, ERR=105) ! IF (ICOL .GT. 0) BNAME(ICOL)='/'I! IF (KCOL .GT. 0) BNAME(KCOL)='/'N GO TO 106 105 CONTINUE( STOP 'NOT OK' 106 IS = 1L" CALL X1EFBY (1, IMAX, IHI, IBYTE)" IF (IBYTE .EQ. 0) IMAX = IMAX - 1CL 30 CONTINUE IF (IS .GT. IMAX) GO TO 40)! CALL RVB (1, IBUF, 1, IS, NERR)  IF (NERR .EQ. IEOF) GO TO 40G IS1 = MIN0(IS-2, IADD)) IBN = IS - 1I IF (IBN .GT. IBLL) GOTO 30. IF (IBN .LT. IBLF) GOTO 30N WRITE (6,499)(BNAME(I),I=1,50)T" 499 FORMAT (///,' DUMP OF ',50A1) WRITE (6,4991) IDATE,ITIME,IBN = 4991 FORMAT(/,' ',5A2,' AT ',4A2,' 00  /3TADATADATADATADATADATA BLOCK',I5,//,4X,'ADDR',G+ $ 4X,'OCTAL',54X,'RAD50',31X,'ASCII'/)6 DO 300 J=1,32 DO 200 I=1,8,$ CALL R50ASC (3, IBUF(I,J), IOUT(I)) DO 180 II=1,3* IF (BOUT(II,I) .LE. "40) BOUT(II,I) = '.' 180 CONTINUEI% ENCODE (6, 500, BOCT(1,I)) IBUF(I,J)) 500 FORMAT (O6) DO 20 K=1,6& IF (BOCT(K,I) .EQ. ' ') BOCT(K,I)='0' 20 CONTINUE I DO 22 K=0,13 IF (BBUF(I*2-1+K,J).LT. "40) BBUF(I*2-1+K,J) = '.'A 22 CONTINUE 200 CONTINUEI IADR = ((J*32-32)/2)+ IS1*"10006 WRITE (6, 505) IADR, BOCT, ((BOUT(K,L),K=1,3),L=1,8), $ (BBUF(K,J),K=1,16); 505 FORMAT (' ',O6,3X,8(1X,6A1),4X,8(3A1,1X),4X,8(2A1,1X))51 IF (J .EQ. 4*(J/4)) WRITE (6,510) (IDASH,I=1,65)B 510 FORMAT (' ',65A2) 300 CONTINUE1 WRITE (6,310) 310 FORMAT('1 ')( GO TO 30I 40 CLOSE (UNIT=1) CALL EXIT END IF (BOCT(K,I) .EQ. ' ') BOCT(K,I)='0' 20 CONTINUE I DO 22 K=0,13 IF (BBUF(I*2-1+K,J).LT. "40) BBUF(I*2-1+K,J) = '.'A 22 CONTINUE 200 CONTINUEI IADR = ((J*32-32)/2)+ IS1*"10006 WRITE (6, 505) IADR, BOCT, ((5&Sz  Da  FDU> 1  DUMP OF 1   AT  BLOCK" ADDROCTAL6RAD50ASCII   F|  @ 1 /A2/BL:NOT OK ,a ! !0 : 1xsp 1xsn 1xsx 1xsv 1xs 1xs{Da <z 1xsp 1xsx 1xs  1xs 1xs$ $1xs$&( *1xs,.0 41xs$68: ,a " 1xs$ 1xs 1xsDa < N 1xs$( *1xs ,1xs .1xs2 41xs 6 81xs :1xs,a " Da Da 4 1xs  -- Gl S5&7   7  -   e& |`Wj Da  u~@ $Da (<@,1xs 0Da 4,Q81xs DDa H`L!y TDa X>; d1xs"j:x4$1xs,1xs2j 6Da :>4>1xsD1xsH1xs LDa P>4T1xs`,a l -2 !!2~ ,a  B\}1xs1xsj 1xs"1xs*j21xs81xs>jB1xsPjT1xsbjf1xs j1xs#^. //  | Da  E`[1xs 1xs#j 1xs (1xs#.j6j :Da >y8hDjJ1xs NDa Rݚ%V1xs\1xs^-w -w7 7 77 7 ~j 1xs1xs Da (s 1xs"1xs,1xs41xs:1xs>1xsB1xsH1xsL1xsR1xs \Da f e 2     t 7~` 1xs#: 1xs$!y*j 2Da 6` :,a >:x B,a F:x J1xsN:x<R!yX1xs\1xs dSVDt7Wtwm 77e ww~j1xs1xsS1xs&S,j0S41xs:S>,a & B1xsD,a &H1xsPST,a (de ` . Wpfe ez 1xs,a ( ,a "v; jS $1xs .1xs4j@1xs HDa bL1xs V1xs|Zv!^S b1xs` @m 0 -7  7mm:x< !y1xsj1xs 1xs{ *1xs{0j41xs81xs@1xsD1xsLSRjVSZ1xs^SvR . - -wt  rm7    1xs 1xsj1xs1xs&1xs*1xs61xs00  :n4 JSN1xs VDa fZ` ^1xsb:x< f,a j:x t1xsd mef - me& - z1xs 1xs:1xs 1xs01xs61xs:S>1xs B1xsH:L1xsP1xsX!y^jb1xsr$ r -  -A  - w w|1xs Da `$1xs (1xs,:x<01xs41xs;:x<>4B\}E`[y8hݚ%Bs::x v; v!z #} #8*,1z8`yG  Da   G\ G8: :LZ G GX2*Da <,a *1xsS G`Wju~@<@,Q`!y>;:x<>4B\}E`[y8hݚ%Bs::x v; v!z #} #8*,1z8`yG  Da   G\ G8: :LZ G GFON/MU,FON/-SP=FON,EXTRA/LBLB:[1,1]F77OTS/LB/ACTFIL=2LIBR=F77RES:RO TASK=...FON//_Murphy, Thomas 3M Visual Products 8Chaundy, Chris AECL Canada eP Clarke, john AECL Canada eP Cook, George AECL Canada eP Hughes, Bill AECL Chicago 8Q Able Computer Able Computer vWeist, Ted Able Computer vOn-Hand DistributingAdhesive Machinery Corp8(Salvey, John Amperex Electronics 8Ampex Ampex Ampex Ampex Chicago 8QpHintz, Grant Applied Technology 8)8 Hobbs, Larry Applied Technology diJohnston, Sidney Attorney at Law 8$Ravaschieri, VincentCGR Medical -Peake, Robert Calvert Electronics Cambridge Cambridge Digital WCentronics Parts Centronics [soCentronics Service Centronics Harn, James Communications 0CDC disk repair Control Data 8[Stineman, Mike Control Data 8[Accessories/suppliesDEC Add-on Consulting DEC WField Service DEC DLantz, Karen DEC 8iManual Assistance DEC [taParts DEC 8Kaplan, Jay DEC sales 8Swenson, Roger DEC site Planning 8 Brummett, Hazel Data King [FData Maintenance Data Maintenance 8qDataware Dataware 1Guralnik, Ken E G & G Las Vegas 'i Schuster, Al Electronic Distributors8Fandl, Michael Engineering Z Sales Federated Consultants I Spivey, Brier Federated Consultants H Rydin, Ted Force 4 8 Palmblad, Richard Gandalf 800/3TADATADATADATADATADATAKrewer, Gary Hall-Mark Electronics 8\Gleason, Pat Hamilton Avnet \H-P Microwave Hewlett Packard LLowe, Ted Hewlett Packard 8H&Robitaille, Michael IAS Librarian ,Curley, Robert IAS Sig Chairman  Antonoplos, Dean J M Company Gomberg, Mort Joseph Electronics 8)hKierulff Kierulff Electronics 8North, Bob King Bearing fNorton, Abby MTI Systems Corp Winkler, Joseph Midwest Computer Supply8XO'Neill, Tim Motorola Semiconductors8@Sandstrom, Gordon Newark 8s(#Newman, Alan Newman Computer 9 Computer Northwest Community 8Koch, Richard Northwest Community 8Paul, J. Northwest Community 8Sandberg, Robert Northwest Memorial 8 Hill, John Plessey Semiconductors 8DBoyle, Joseph Radiology AECL Reese Baker, Al Reese Block Room Reese Culbert, Harvey Reese Francis, Kevin Reese l Goebel, Hans Reese Goebel, Hans Reese 8!; Muller, Renate Reese Spellbring, Danny Reese Varian Reese Sandberg, Glen Riverside Hospital fRozenfeld, Martin Rush Presbyterian 8Mesina, John Schweber Electronics 8lPenner, Frank Searle R & D 8Marszalek, Stan Semiconductor Specialis8Korsgard, Patti Systems Industries 8r$Tech Service Systems Industries  Tech Support Systems Industries Field Service Texas Instruments aEgan, Al Trendata Colman, Martin MD U of Cal @ Irvine zComputer U of Chicago 8Kuchnir, Franca U of Chicago 8Nicole, Paul U of Chicago 8Pelizzari, Charles U of Chicago 8Szerlag, Chet U of Chicago 8Przybylski, Ronald Varian Industrial 8,Miller, Randy Varian Radiation  Varian Varian Radiation 89XKaluskar, Arun Weiss Memorial 8n!Price, Greg Wilkes-Barre General =Johnson, Bill X-Ray Engineering 8 8Kuchnir, Franca U of Chicago 8Nicole, Paul U of Chicago 8Pelizzari, Charles U of Chicago 8Szerlag, Chet U of Chicago 8Przybylski, Ronald Varian Industrial 8,Miller, Randy Varian Radiation  Varian Varian Radiation 89XKaluskar, Arun Weiss Memorial 8n!Price, G& FONFThis account describes a program that keeps your phone numbers for youDin much the same way that the little pad does that is by your phone.CThe advantage of this is that if you remember only a portion of theBpersons name or the company or any thing about the person, you canAstill locate the phone number. The available commands are listedbelow:DFON NAME - Give the phone number and address of the desired person.JFON CHA - Make a change in this person's name, address, or phone number.'FON IN - Add a new name to the list.(FON XX - Delete a name from the list.IIf you key in any combination of characters other than CHA, IN, or XX, itLassumes you are looking up the phone number for that person. Any portion ofHthat person's name or address will enable that name to be selected. ForOexample, if all you remember about a person is that his first name is John, keyLin the command FON JOHN You may use either lower case letters or upper caseMle00čɍ:n4tters. The computer will list all names you have in your file who have theOname John. Assuming you don't have hundreds of John's in your list, you shouldHbe able to pick out the one you want and you will have his full name andOaddress. Likewise, if all you remember is the company that he works for or the@city, you have enough information to pick out the name you want.PFor the other commands, such as FON CHA, give the command. It will then ask forPthe name of the person you want changed. Give any portion of his name. When itLfinds a match, it will ask you if this is the right one. If you enter 1 forLyes, it will then expect you to rekey in the name, phone number and address.MA small data file with only my name and phone number has been included to getPyou started with your list. I suggest you add at least one name before deletingmy name from the list.NThe program specifies the UIC where the data file is stored. Edit the programIand put in whatever UIC you want the file to be in. Since the program isNinstalled and designed to be used from any account that you might be in at theMtime, be sure the data file is given status so that the world has read, writeOand extend status. Also the directory in [0,0] for that UIC must have privilegeNstatus so that the world can read or write to it. For example, assuming it is0stored in the account [150,2], give the command:PIP [0,0]150002.DIR/PR/WO:RWEOThere are no special instructions for compiling the program other than the factMthat you will get several error messages to the effect that an index variablePmight change. Ignore those messages. Before task building, you may want to editPthe file FON.CMD and delete the reference to the fortran resident common region.OThen task build, giving the command: TKB @FON Now install it using the commandINS FONMThere is one limitation to the program. Since it is designed to allow you toOenter first name, etc. as the name of the person desired, the program must scanGthrough every name in the list. Once the number of names gets into thePhundreds, it begins to take longer than one would like for the name to be found.CThe alternative is to alphabetize the names and always use the last9name when entering a name. I preferred to keep it small. C C FON.FTNCBC BE SURE AND CHANGE THE LINE BELOW BEGINNING WITH CALL ASSIGN TOC#C DESCRIPTION DATA FOR EACH RECORDCC BYTE INTEGER$C 1-20 1-10 NAME OF PERSON&C 21-44 11-22 COMPANY NAME OR ADDRESSC 45-50 23-25 PHONE NUMBERC(C TASK BUILD WITH THE FOLLOWING OPTIONSCMC LIBR=FORRES:RO -- USE ONLY IF YOU HAVE A FORTRAN RESIDENT COMMON REGION C ACTFIL=2C TASK=...FONC BYTE MASTER(50)( BYTE BUF(80) ! BUFFER PICKED UP BY MCR) BYTE BUFFER(50) ! PORTION OF BUF WE NEEDN BYTE PHONE(20)A INTEGER MOTHER(3) BYTE SPAI BYTE OPT1(3),OPT2(3),OPT3(4)D BYTE ZERD$ INTEGER PHON1,PHON2,PHON3,FLAG, END4 INTEGER REC ! RECORD WHERE THIS NO. WILL BE STORED6 INTEGER POSI ! SUBROUTINE TO FIND POSITION OF STRING4 INTEGER ANS ! ANSWER TO QUESTION ABOUT RIGHT NAME INTEGER LEN# EQUIVALENCE (MOTHER(1),MASTER(45))R EQUIVALENCE (BUF(5),BUFFER(1))T DATA SPA,ZER/' ','0'/ DATA OPT1(1),OPT1(2)/'I','N'/ DATA OPT2(1),OPT2(2)/'X','X'/* DATA OPT3(1),OPT3(2),OPT3(3)/'C','H','A'/CT%C GENERAL TECHNIQUE OF THE PROGRAM +C FON IN ! ENTER A NEW NAME INTO DIRECTORYE(C FON NAME ! GET PHONE NO. FOR THIS NAME(C FON XX ! REMOVE A NAME FROM DIRECTORYC FON CHA ! MAKE A CHANGECB.C COME HERE TO ENTER NAMES INTO THE DIRECTORYC  CALL GETMCR(BUF,IBS)U4 CALL TRIM(BUFFER,50) ! GET RID OF CR AT END OF LINECRAC BE SURE AND CHANGE THE LINE BELOW TO REPRESENT YOUR SITUATION.DGC ALSO MAKE SURE THE DATA FILE IS PRIVILEGED FOR ALL THE WORLD AND THE1HC DIRECTO00̍/3TADATADATADATADATADATARY FOR THAT ACCOUNT AS STORED IN THE UIC 0,0 IS PRIVILEGED FORC ALL THE WORLDC  CALL ASSIGN(2,'FON.DAT')  CALL FDBSET (2,'OLD','SHARE') DEFINE FILE 2(1000,25,U,NEXT)? IF((POSI(BUFFER,OPT1,1).EQ.1).AND.(LEN(BUFFER).EQ.2))GO TO 140 C ! ENTER A NEW NAMEY6 IF(POSI(BUFFER,OPT2,1).EQ.1)GO TO 400 ! DELETE A NAME? IF((POSI(BUFFER,OPT3,1).EQ.1).AND.(LEN(BUFFER).EQ.3))GO TO 450LC ! MAKE A CHANGE3 GO TO 350 ! IF GET THIS FAR, ASSUME READING A NAME 10 FORMAT(I4)L20 FORMAT(20A1)RCOC COME HERE TO INPUT A NAMECT140 WRITE(5,150) ! GET THE NAMEA150 FORMAT('$NAME: ')& READ(5,20,END=1000)(MASTER(J),J=1,20) IF(MASTER(1).EQ.SPA)GO TO 1000,! WRITE(5,160) ! GET THE PHONE NO.)160 FORMAT('$PHONE NO. ') READ(5,165,END=1000)NCHR,PHONEN165 FORMAT(Q,20A1)- CALL DEC3(PHON1,PHON2,PHON3,FLAG,PHONE,NCHR)I+ IF(FLAG.GT.2)GO TO 200 ! GAVE AN AREA CODE.( PHON3=PHON2 ! DIDN'T GIVE AN AREA CODE PHON2=PHON1 PHON1=312,200 IF(FLAG.GT.1)GOTO 210 ! GAVE AN EXCHANGE( PHON3=PHONE2 ! DIDN'T GIVE AN EXCHANGE PHON2=791210 MOTHER(1)=PHON1G MOTHER(2)=PHON2 MOTHER(3)=PHON3 WRITE(5,270)D!270 FORMAT('$NAME OF COMPANY: ')R( READ(5,280,END=1000)(MASTER(J),J=21,43)280 FORMAT(23A1)= WRITE(5,290)(MASTER(J),J=1,20),PHON1,PHON2,PHON3,(MASTER(J),6 1 J=21,44)A$290 FORMAT(1X,20A1,I5,I4,I5,2X,24A1))291 FORMAT(1X,20A1,I5,I4,' 0',I3,2X,24A1)E)292 FORMAT(1X,20A1,' ',I4,I5,2X,24A1) .293 FORMAT(1X,20A1,' ',I4,' 0',I3,2X,24A1)*294 FORMAT(1X,20A1,' ',I5,2X,24A1)/295 FORMAT(1X,20A1,' ',' 0',I3,2X,24A1)15 IF(ANS.EQ.1)GO TO 500 ! WE WERE JUST MAKING A CHANGE+ READ(2'1)REC ! GET THE NEXT AVAILABLE REC ' WRITE(2'REC)MASTER ! WRITE THIS RECORD1 WRITE(5,300)REC-300 FORMAT(' RESULTS STORED IN RECORD # ',I4)N REC=REC+1 WRITE(2'1)REC GO TO 140CM#C COME HERE TO READ A PHONE NUMBERMC1.350 WRITE(5,355) ! DO ONE LINE FEED355 FORMAT(' '), READ(2'1)RECM DO 380 I=2,REC-1I READ(2'I)MASTER CALL TRIM(MASTER,44) + IF(POSI(MASTER,BUFFER,1,44).EQ.0)GO TO 380 3 IF (MOTHER(1).EQ.312.OR.MOTHER(1).LT.100) GOTO 360 C LIST INCLUDING AREA CODE6 IF (MOTHER(3).GT.999) WRITE(5,290)(MASTER(J),J=1,20),' 1(MOTHER(J),J=1,3),(MASTER(J),J=21,44)36 IF (MOTHER(3).LE.999) WRITE(5,291)(MASTER(J),J=1,20),' 1(MOTHER(J),J=1,3),(MASTER(J),J=21,44)M GOTO 380EC LIST WITHOUT AREA CODE6360 IF (MOTHER(2).LT.100.OR.MOTHER(2).EQ.791) GOTO 3706 IF (MOTHER(3).GT.999) WRITE(5,292)(MASTER(J),J=1,20),' 1(MOTHER(J),J=2,3),(MASTER(J),J=21,44)I6 IF (MOTHER(3).LE.999) WRITE(5,293)(MASTER(J),J=1,20),' 1(MOTHER(J),J=2,3),(MASTER(J),J=21,44) GOTO 380UC LIST IN-HOUSE 4-DIGIT NUMBER9370 IF (MOTHER(3).GT.999) WRITE(5,294)(MASTER(J),J=1,20),, 1MOTHER(3),(MASTER(J),J=21,44)(6 IF (MOTHER(3).LE.999) WRITE(5,295)(MASTER(J),J=1,20), 1MOTHER(3),(MASTER(J),J=21,44)T 380 CONTINUE GO TO 1000 CE;C COME HERE TO THROW OUT THIS LIST OF NAMES AND START OVER CT400 WRITE(5,405)7405 FORMAT(/,'$WHAT IS THE NAME YOU WANT TO DELETE ')) READ(5,465,END=1000)BUFFER$ IF(BUFFER(1).EQ.SPA)GO TO 1000C CALL TRIM(BUFFER,50) ! GET RID OF TRAILING BLANKSI READ(2'1)END END=END-1  DO 420 I=2,END READ(2'I)MASTER,E IF(POSI(MASTER, BUFFER, 1, 44).EQ.0) GO TO 420 ! NO MATCH FOUND,6 IF (MOTHER(3).GT.999) WRITE(5,290)(MASTER(J),J=1,20),' 1(MOTHER(J),J=1,3),(MASTER(J),J=21,44) 6 IF (MOTHER(3).LE.999) WRITE(5,291)(MASTER(J),J=1,20),' 1(MOTHER(J),J=1,3),(MASTER(J),J=21,44) A WRITE(5,471)I ! ASK IF THIS IS RIGHT ONEE WRITE(5,470) READ(5,10,END=1000)ANS IF(ANS.EQ.1) GO TO 430420 CONTINUE WRITE(5,490) GO TO 400 430 IF(I.GE.END) GO TO 445 DO 440 J=I+1,END READ(2'J)MASTER4 WRITE(2'J-1)MASTER440 CONTINUED445 WRITE(2'1)END ! END IS 1 LESS NOW, STORE IT GO TO 400,C C COME HERE TO MAKE A CHANGE5C1450 WRITE(5,460)2460 FORMAT(/,'$WHAT NAME DO YOU WANT TO CHANGE ') READ(5,465,END=1000)BUFFER 465 FORMAT(50A1)00ԍ֍:n41 IF(BUFFER(1).EQ.SPA)GO TO 1000 ! ENTERED A BLANKN3 CALL TRIM (BUFFER,50) ! GET RID OF TRAILING BLANKSN READ(2'1)END( DO 480 I=2,END-1  READ(2'I)MASTER+ IF(POSI(MASTER,BUFFER,1,44).EQ.0)GO TO 480 6 IF (MOTHER(3).GT.999) WRITE(5,290)(MASTER(J),J=1,20),' 1(MOTHER(J),J=1,3),(MASTER(J),J=21,44) 6 IF (MOTHER(3).LE.999) WRITE(5,291)(MASTER(J),J=1,20),' 1(MOTHER(J),J=1,3),(MASTER(J),J=21,44)R WRITE(5,471)I471 FORMAT(' REC ',I4) WRITE(5,470)N5470 FORMAT('$IF THIS IS THE RIGHT ENTRY, ENTER 1: ')+ READ(5,10,END=1000)ANS ! GET THEIR ANSWERL. IF(ANS.NE.1)GO TO 480 ! THIS WASN'T RIGHT ONE- CALL LOA(MASTER,50,0) ! ERASE WHAT WAS THERE GO TO 140 480 CONTINUE WRITE(5,490)1'490 FORMAT(' FAILED TO FIND THIS NAME')9 GO TO 450(500 WRITE(2'I)MASTER ! STORE THE RESULTS WRITE(5,510)I!510 FORMAT(' WRITTEN IN REC ',I4)E GO TO 4501000 CALL CLOSE(2) CALL EXIT ENDASTER(J),J=21,44)R WRITE(5,471)I471 FORMAT(' REC ',I4) WRITE(5,470)N5470 FORMAT('$IF THIS IS THE RIGHT ENTRY, ENTER 1: 'C C FON.FTNCBC BE SURE AND CHANGE THE LINE BELOW BEGINNING WITH CALL ASSIGN TOC#C DESCRIPTION DATA FOR EACH RECORDCC BYTE INTEGER$C 1-20 1-10 NAME OF PERSON&C 21-44 11-22 COMPANY NAME OR ADDRESSC 45-50 23-25 PHONE NUMBERC(C TASK BUILD WITH THE FOLLOWING OPTIONSCMC LIBR=FORRES:RO -- USE ONLY IF YOU HAVE A FORTRAN RESIDENT COMMON REGION C ACTFIL=2C TASK=...FONC BYTE MASTER(50)( BYTE BUF(80) ! BUFFER PICKED UP BY MCR) BYTE BUFFER(50) ! PORTION OF BUF WE NEEDN BYTE PHONE(20)A INTEGER MOTHER(3) BYTE SPAI BYTE OPT1(3),OPT2(3),OPT3(4)D BYTE ZERD$ INTEGER PHON1,PHON2,PHON3,FLAG, END4 INTEGER REC ! RECORD WHERE THIS NO. WILL BE STORED6 INTEGER POSI ! SUBROUTINE TO FIND POSITION OF STRING4 INTEGER ANS ! ANSWER TO QUESTION ABOUT RIGHT NAME INTEGER LEN# EQUIVALENCE (MOTHER(1),MASTER(45))R EQUIVALENCE (BUF(5),BUFFER(1))T DATA SPA,ZER/' ','0'/ DATA OPT1(1),OPT1(2)/'I','N'/ DATA OPT2(1),OPT2(2)/'X','X'/* DATA OPT3(1),OPT3(2),OPT3(3)/'C','H','A'/CT%C GENERAL TECHNIQUE OF THE PROGRAM +C FON IN ! ENTER A NEW NAME INTO DIRECTORYE(C FON NAME ! GET PHONE NO. FOR THIS NAME(C FON XX ! REMOVE A NAME FROM DIRECTORYC FON CHA ! MAKE A CHANGECB.C COME HERE TO ENTER NAMES INTO THE DIRECTORYC  CALL GETMCR(BUF,IBS)U4 CALL TRIM(BUFFER,50) ! GET RID OF CR AT END OF LINECRAC BE SURE AND CHANGE THE LINE BELOW TO REPRESENT YOUR SITUATION.DGC ALSO MAKE SURE THE DATA FILE IS PRIVILEGED FOR ALL THE WORLD AND THE1HC DIRECTORY FOR THAT ACCOUNT AS STORED IN THE UIC 0,0 IS PRIVILEGED FORC ALL THE WORLDC  CALL ASSIGN(2,'FON.DAT')  CALL FDBSET (2,'OLD','SHARE') DEFINE FILE 2(1000,25,U,NEXT)? IF((POSI(BUFFER,OPT1,1).EQ.1).AND.(LEN(BUFFER).EQ.2))GO TO 140 C ! ENTER A NEW NAMEY6 IF(POSI(BUFFER,OPT2,1).EQ.1)GO TO 400 ! DELETE A NAME? IF((POSI(BUFFER,OPT3,1).EQ.1).AND.(LEN(BUFFER).EQ.3))GO TO 450LC ! MAKE A CHANGE3 GO TO 350 ! IF GET THIS FAR, ASSUME READING A NAME 10 FORMAT(I4)L20 FORMAT(20A1)RCOC COME HERE TO INPUT A NAMECT140 WRITE(5,150) ! GET THE NAMEA150 FORMAT('$NAME: ')& READ(5,20,END=1000)(MASTER(J),J=1,20) IF(MASTER(1).EQ.SPA)GO TO 1000,! WRITE(5,160) ! GET THE PHONE NO.)160 FORMAT('$PHONE NO. ') READ(5,165,END=1000)NCHR,PHONEN165 FORMAT(Q,20A1)- CALL DEC3(PHON1,PHON2,PHON3,FLAG,PHONE,NCHR)I+ IF(FLAG.GT.2)GO TO 200 ! GAVE AN AREA CODE.( PHON3=PHON2 ! DIDN'T GIVE AN AREA CODE PHON2=PHON1 PHON1=312,200 IF(FLAG.GT.1)GOTO 210 ! GAVE AN EXCHANGE( PHON3=PHONE2 ! DIDN'T GIVE AN EXCHANGE PHON2=791210 MOTHER(1)=PHON1G MOTHER(2)=PHON2 MOTHER(3)=PHON3 WRITE(5,270)D!270 FORMAT('$NAME OF COMPANY: ')R( READ(5,280,END=1000)(MASTER(J),J=21,43)280 FORMAT(23A1)= WRITE(5,290)(MASTER(J),J=1,20),PHON1,PHON2,PHON3,(MASTER(J),6 1 J=21,44)A$290 FORMAT(1X,20A1,I5,I4,I5,2X,24A1))291 FORMAT(1X,20A1,I5,I4,' 0',I3,2X,24A1)E)292 FORMAT(1X,20A1,' ',I4,I5,2X,24A1) .293 FORMAT(1X,20A1,' ',I4,' 0',I3,2X,24A1)*294 FORMAT(1X,20A1,' ',I5,2X,24A1)/295 FORMAT00܍/3TADATADATADATADATADATA(1X,20A1,' ',' 0',I3,2X,24A1)15 IF(ANS.EQ.1)GO TO 500 ! WE WERE JUST MAKING A CHANGE+ READ(2'1)REC ! GET THE NEXT AVAILABLE REC ' WRITE(2'REC)MASTER ! WRITE THIS RECORD1 WRITE(5,300)REC-300 FORMAT(' RESULTS STORED IN RECORD # ',I4)N REC=REC+1 WRITE(2'1)REC GO TO 140CM#C COME HERE TO READ A PHONE NUMBERMC1.350 WRITE(5,355) ! DO ONE LINE FEED355 FORMAT(' '), READ(2'1)RECM DO 380 I=2,REC-1I READ(2'I)MASTER CALL TRIM(MASTER,44) + IF(POSI(MASTER,BUFFER,1,44).EQ.0)GO TO 380 3 IF (MOTHER(1).EQ.312.OR.MOTHER(1).LT.100) GOTO 360 C LIST INCLUDING AREA CODE6 IF (MOTHER(3).GT.999) WRITE(5,290)(MASTER(J),J=1,20),' 1(MOTHER(J),J=1,3),(MASTER(J),J=21,44)36 IF (MOTHER(3).LE.999) WRITE(5,291)(MASTER(J),J=1,20),' 1(MOTHER(J),J=1,3),(MASTER(J),J=21,44)M GOTO 380EC LIST WITHOUT AREA CODE6360 IF (MOTHER(2).LT.100.OR.MOTHER(2).EQ.791) GOTO 3706 IF (MOTHER(3).GT.999) WRITE(5,292)(MASTER(J),J=1,20),' 1(MOTHER(J),J=2,3),(MASTER(J),J=21,44)I6 IF (MOTHER(3).LE.999) WRITE(5,293)(MASTER(J),J=1,20),' 1(MOTHER(J),J=2,3),(MASTER(J),J=21,44) GOTO 380UC LIST IN-HOUSE 4-DIGIT NUMBER9370 IF (MOTHER(3).GT.999) WRITE(5,294)(MASTER(J),J=1,20),, 1MOTHER(3),(MASTER(J),J=21,44)(6 IF (MOTHER(3).LE.999) WRITE(5,295)(MASTER(J),J=1,20), 1MOTHER(3),(MASTER(J),J=21,44)T 380 CONTINUE GO TO 1000 CE;C COME HERE TO THROW OUT THIS LIST OF NAMES AND START OVER CT400 WRITE(5,405)7405 FORMAT(/,'$WHAT IS THE NAME YOU WANT TO DELETE ')) READ(5,465,END=1000)BUFFER$ IF(BUFFER(1).EQ.SPA)GO TO 1000C CALL TRIM(BUFFER,50) ! GET RID OF TRAILING BLANKSI READ(2'1)END END=END-1  DO 420 I=2,END READ(2'I)MASTER,E IF(POSI(MASTER, BUFFER, 1, 44).EQ.0) GO TO 420 ! NO MATCH FOUND,6 IF (MOTHER(3).GT.999) WRITE(5,290)(MASTER(J),J=1,20),' 1(MOTHER(J),J=1,3),(MASTER(J),J=21,44) 6 IF (MOTHER(3).LE.999) WRITE(5,291)(MASTER(J),J=1,20),' 1(MOTHER(J),J=1,3),(MASTER(J),J=21,44) A WRITE(5,471)I ! ASK IF THIS IS RIGHT ONEE WRITE(5,470) READ(5,10,END=1000)ANS IF(ANS.EQ.1) GO TO 430420 CONTINUE WRITE(5,490) GO TO 400 430 IF(I.GE.END) GO TO 445 DO 440 J=I+1,END READ(2'J)MASTER4 WRITE(2'J-1)MASTER440 CONTINUED445 WRITE(2'1)END ! END IS 1 LESS NOW, STORE IT GO TO 400,C C COME HERE TO MAKE A CHANGE5C1450 WRITE(5,460)2460 FORMAT(/,'$WHAT NAME DO YOU WANT TO CHANGE ') READ(5,465,END=1000)BUFFER 465 FORMAT(50A1)1 IF(BUFFER(1).EQ.SPA)GO TO 1000 ! ENTERED A BLANKN3 CALL TRIM (BUFFER,50) ! GET RID OF TRAILING BLANKSN READ(2'1)END( DO 480 I=2,END-1  READ(2'I)MASTER+ IF(POSI(MASTER,BUFFER,1,44).EQ.0)GO TO 480 6 IF (MOTHER(3).GT.999) WRITE(5,290)(MASTER(J),J=1,20),' 1(MOTHER(J),J=1,3),(MASTER(J),J=21,44) 6 IF (MOTHER(3).LE.999) WRITE(5,291)(MASTER(J),J=1,20),' 1(MOTHER(J),J=1,3),(MASTER(J),J=21,44)R WRITE(5,471)I471 FORMAT(' REC ',I4) WRITE(5,470)N5470 FORMAT('$IF THIS IS THE RIGHT ENTRY, ENTER 1: ')+ READ(5,10,END=1000)ANS ! GET THEIR ANSWERL. IF(ANS.NE.1)GO TO 480 ! THIS WASN'T RIGHT ONE- CALL LOA(MASTER,50,0) ! ERASE WHAT WAS THERE GO TO 140 480 CONTINUE WRITE(5,490)1'490 FORMAT(' FAILED TO FIND THIS NAME')9 GO TO 450(500 WRITE(2'I)MASTER ! STORE THE RESULTS WRITE(5,510)I!510 FORMAT(' WRITTEN IN REC ',I4)E GO TO 4501000 CALL CLOSE(2) CALL EXIT ENDASTER(J),J=21,44)R WRITE(5,471)I471 FORMAT(' REC ',I4) WRITE(5,470)N5470 FORMAT('$IF THIS IS THE RIGHT ENTRY, ENTER 1: '1 FON $ A phone number maintenance program: # FON - Give all phone numbersE FON NAME - Give the phone number and address of the desired person.K FON CHA - Make a change in this person's name, address, or phone number.( FON IN - Add a new name to the list.) FON XX - Delete a name from the list. 00410 DIM A$[1],X1$[50],X2$[50]*20 INPUT "SORT BY (N)AME OR (A)DDRESS ";A$$30 IF A$="A" OR A$="N" THEN GOTO 50.40 PRINT "PLEASE ANSWER 'N' OR 'A' " : GOTO 2050 DIM #3, NN%(1)55 OPEN #3, "FON.DAT/RO/BL"60 NR=NN%(0)-2 65 CLOSE 370 OPEN #3, "FON.DAT/RO"!75 OPEN #4, "FON.TMP/WR/FX/LN:50"80 INPUT LINE #3, X1$90 FOR I=1 TO NR100 INPUT LINE #3, X2$110 PRINT #4, X2$ 120 NEXT I 125 CLOSE 4130 B=0M140 IF A$="N" THEN CALL "SPAWNB"("SRT FON.SRT=FON.TMP/SI:50/PR:R/KE:1.24",B)N150 IF A$="A" THEN CALL "SPAWNB"("SRT FON.SRT=FON.TMP/SI:50/PR:R/KE:21.20",B) 160 CLOSE 3$"180 OPEN #4, "FON.DAT/FX/LN:50/WR"190 PRINT #4, X1$N195 OPEN #3, "FON.SRT/RO"M200 FOR I=1 TO NRE210 INPUT LINE #3, X2$220 PRINT #4, X2$C 230 NEXT I 240 CLOSEN7250 B=0 : CALL "SPAWNB"("PIP FON.SRT;*,FON.TMP;*/DE",B)N 260 EXIT 90 FOR I=1 TO NR100 INPUT LINE #3, X2$110 PRINT #4, X2$ 120 NEXT I 125 CLOSE 4130 B=0M140 IF A$="N" THEN CALL "SPAWNB"("SRT FON.SRT=FON.TMP/SI:50/PR:R/KE:1.24",B)N150 IF AFPP/-FP/DA=FPP/ TASK=...FPPPRI=150/';TEST PROGRAM TO TEST LDFPS INSTRUCTION.WORD -1,-1,-1,-1.BLKW 252. ;STACK OVERFLOW AREA START: SETI SETD2 LDCID #0,%0 ;SET UP THE REG'S SO WE CAN SEE THEM LDCID #1,%1 LDCID #2,%2 LDCID #3,%3RSTART: MOV #1000,SP ;RESET SP CLR (SP) ;CLEAR IT( LDFPS (SP)+ ;LOAD FLOAT POINT STAT REG CMP SP,#1002 ;IS STACK RIGHT / BEQ RSTART ;IF SO, TRY AGAIN SETD SETI STD %0,(SP)+ ;STORE THE REGS STD %1,(SP)+ STD %2,(SP)+ STD %3,(SP)+ STFPS R0 ;SAVE FPS LDFPS #0 ;CLEAR FPST STFPS R1  LDFPS #177777 STFPS R2 NOP ;PUT A BREAKPOINT HERE; .END STARTW AREA START: SETI SETD2 LDCID #0,%0 ;SET UP THE REG'S SO WE CAN SEE THEM LDCID #1,%1 LDCID #2,%2 LDCID #3,%3RSTART: MOV #1000,SP ;RESET SP CLR (SP) ;CLEAR IT( LDFPS (SP)+ ;LOAD FLOAT POINT STAT REG CMP SP,#1002 ;IS STACK RIGHT / BEQ RSTART ;IF SO, TRY AGAIN SETD SETI STD %0,(SP)+ ;STORE THE REGS STD %1,(SP)+ STD %2,(SP)+ STD %3,(SP)+ STFPS R0 ;SAVE FPS LDFPS #0 ;CLEAR " :L(>(  * W V! &VWWSO WE CAN SEE THEM LDCID #1,%1 LDCID #2,%2 LDCID #3,%3RSTART: MOV #1000,SP ;RESET SP CLR (SP) ;CLEAR IT( LDFPS (SP)+ ;LOAD FLOAT POINT STAT REG CMP SP,#1002 ;IS STACK RIGHT / BEQ RSTART ;IF SO, TRY AGAIN SETD SETI STD %0,(SP)+ ;STORE THE REGS STD %1,(SP)+ STD %2,(SP)+ STD %3,(SP)+ STFPS R0 ;SAVE FPS LDFPS #0 ;CLEAR |( BB(S !( DPSYSYSYSYTICLTICL00/3TADATADATADATADATADATA|(ϳ```GSYSYSYSYTICLTICL W V! VWW  26ggD01234567SWAMLHCQFXBGIRVED}~\/'"% ^_@><$=CQ.;-+*,BEFGKLNOPRSVWXPJPJJ  \  ("0: b J * & N x 7 x7  ^ z77X7 d" OD T:  D? 7 7 7 & n  7   7   w  1 w \Den w g% e^Dlp  w  5W 4  @  tZ f (;t  ,3 4  D  #E = Le0, B @ d >(^.r f ^w ? ^ P 7 ._ 7+  7"7 Tw rԇ  yw7  !7 77w77%5 f    }b^7qmXRNN D tQ  . 767 4w  $b   B` |% D _ |& \> r Lw 777UE  z n h >eJb7R7LGǁ 0׭5.&Uxpn7 ,N#ĝw)t!TE w7   e0B7 J F: D@ RLFMP|yODnTcJ.D LBEN7MIOBIL:FP2 EM*TR"w 7p wf      h  `  % h R  <3 P  f @  V 0 @ @  4  @, zjf&fw *> w 84 < % !   %44 v7`\-X @@@P@ @em. 7 w*w  4  @f   m77 p(`  07Eu` A A ы |~  h fZ5   Z7jR )8 @w:E w d$ az +f&%^%%"$ t% ^ TU  N,r @p e0 @ @g  Ne0, 7 7 7&e N @ e0  w  004 < re ee e @(   ,B    REM ...HEL,...BYE5; DIDDLE INSTALLED REF COUNT CAUSE SAV REMOVED ...WHOCZP 107470:000400/000000 REM HELBYE/CM#INS [1,1]HELBYE/CM/UIC=[1,1]/ACC=RW*INS [11,13]HELPDS,[11,13]BYEPDS,[11,13]WHO;;!; Reminder, Use Frank from now on;;THIS IS DECUS #11-473, FILES C INDAY.FTNCEC A SUBROUTINE TO PICK UP THE DAY AS MONTH, DAY, AND YEAR AND RETURN)C A VALUE OF NUMBER OF DAYS SINCE 1 1 80C SUBROUTINE INDAY(DAY) BYTE BUFFER(20) INTEGER DAY,DAYS,DAYCK80 CALL LOA(BUFFER,20,0) CALL GETSTR(BUFFER,20)4 CALL DEC3(I,J,K,NXT,BUFFER) ! CONVERT TO MO, DA, YR( IF(NXT.LE.0)GO TO 1000 ! ON ERROR STOP IF(DAYCK(I,J,K).EQ.1)GO TO 100 CALL BELL GO TO 804100 DAY=DAYS(I,J,K,0) ! CONVERT TO DAYS SINCE JAN 1 RETURN 1000 DAY=0 RETURN END10 ! PROGRAM MULMAS.BAS.11 ! TO ENTER MULTIPLE IN ACCOUNT MASTER INDEX120 DIM A$[80]V,B$[80]V,N$[40]V,T1$[3]V(2),R$[80]V30 N$="MASTER.INF/FX/LN:80/AP" 40 OPEN #3,N$=50 R$="UNASSIGNED/LARRY/FRANK/DAN/DEANA/HARVEY/CLARENCE/HANS"A60 R1=7 : ! DEFINE MAX NUMBER OF PERSONS RESPONSIBLE FOR ACCOUNTS70 IF END THEN 6002100 INPUT "ACCOUNT TO INSERT - (NO BRACKETS) ",G,U(105 A$="["+FRMT$(G,3)+","+FRMT$(U,3)+"]"#320 PRINT "RESPONSIBILITY CHOICES:"330 FOR J=1 TO R1-340 PRINT " "+STR$(J)+") "+PIECE$(R$,"/",J+1)M 350 NEXT J360 INPUT LINE B$P370 IF LEN(B$)=0 THEN LET J1=0M&371 IF LEN(B$)<>0 THEN LET J1=VAL(B$)!410 IF J1 < 0 OR J1 > R1 THEN 450"420 B$=RJS$(STR$(J1),2)U430 CALL "INSTRG"(A$,B$,10)N 440 GOTO 500 450 PRINT "ERROR IN YOUR ANSWER" 460 GOTO 360!500 INPUT LINE "DESCRIPTION: ",B$I520 IF LEN(B$)=0 THEN B$=" "530 CALL "INSTRG"(A$,B$,12,69)540 PRINT #3,A$" 550 GOTO 100 600 CLOSE 605 IF END THEN 0608 B=0TF609 CALL "SPAWNB"("SRT MASTER.INF=MASTER.INF/SI:80/PR:R/KE:2.3:6.3",B)610 RUN "MASTER" J360 INPUT LINE B$P370 IF LEN(B$)=0 THEN LET J1=0M&371 IF LEN(B$)<>0 THEN LET J1=VAL(B$)!410 IF J1 < 0 OR J1 > R1 THEN 450"420 B$=RJS$(STR$(J1),2)U430 CALL "INSTRG"(A$,B$,10)N 440 GOTO 500 450 PRINT "ERROR IN YOUR ANSWER" 460 GOTO 360!500 INPUT LINE "DESCRIPTION: ",B$I520 IF LEN(B$)=0 THEN B$=" "530 CALL "INSTRG"(A$,B$,12,69)540 PRINT #3,A$" 550 GOTO 100 600 CLOSE 605 IF END THEN 0608 B=0TF609 CALL "SPAWNB"("SRT MASTER.INF=MASTER.INF/SI:80/PR:R/KE:2.300 !"TADATADATA ; LEN.MAC;; J=LEN(STRING)@; J=LENGTH(STRING), WHERE J+1 IS THE POSITION OF THE FIRST NULL; BYTE IN THE STRING; .TITLE LEN LEN:: CLR R0 MOV 2(R5),R11$: TSTB (R1)+ BEQ 2$ INC R0 BR 1$ 2$: RTS PC .END100 ! PROGRAM LISMAS.BAS"110 ! TO LIST ACCOUNT MASTER INDEX1120 DIM A$[10],B$[69]V,C$[1],D$[80],R$[80]V,E$[6]#130 R$="MASTER.INF/LN:80/RO/EN:320"140 OPEN #3,R$C142 INPUT "OUTPUT DEVICE (TI:,LP:,LP1: [DON'T FORGET THE ':']) ",B$2145 IF B$<>"TI:" AND B$<>"LP:" AND B$<>"LP1:" THEN. PRINT "* INVALID CHOICE *";CHR$(7) : GOTO 142148 OPEN #4,B$+"/LN:90/WR"9150 R$=" LARRY FRANK DAN DEANA HARVEYC.L.W.HANS "0160 PRINT #4," U I C OWNER DESCRIPTION"M170 PRINT #4," --------- ----- ----------------------------------------"C180 INPUT LINE #3,D$190 A$=SBS$(D$,1,10)200 C$=SBS$(D$,11,1)210 B$=SBS$(D$,12,69)F 220 C=ASC(C$)0230 IF C=32 THEN C=C+16N240 C=6*(C-48)+1250 E$=SBS$(R$,C,6) 260 J=0E 270 ! TRUNCATE DESCRITION OF UIC280 D=POS(B$," ")P290 B$=SBS$(B$,1,D)N"300 PRINT #4," ";A$;E$;" ";;B$ 310 GOTO 180 320 CLOSE 330 RUN "MASTER"340 END DAN DEANA HARVEYC.L.W.HANS "0160 PRINT #4," U I C OWNER DESCRIPTION"M170 PRINT #4," --------- ----- .NLISTY LIST=0  .LISTFILE TYPE .FVER: .BLKW ;BINARY VERSION #L.AB = . ;LENGTH OF ENTRY .IIF NDF LIST, .LIST F.DIR = 1 ;THIS FCB IS IN DIRECTORY LRU LIST- F.ACP = 2 ;THIS FCB IS IN ACP INTERNAL AREA  F.FCM = 4 ;FCB IN FCPCOM F.SCM = 10 ;FCB IN SCOMP .FID: ;START OF FILE ID BLOCK.FNUM: .BLKW ;FILE NUMBER:$.FSEQ: .BLKW ;FILE SEQUENCE NUMBER%.FOWN: ;START OF FILE OWNER BUFFERS.PROG: .BLKB ;MEMBER #.PROJ: .BLKB ;GROUP #V .FNAM: .BLKW 3 ;RAD50 FILE LIS/RW,LISTRS/-SP=LISTRS/LIBR=SYSRES:RO TASK=...LISASG=TI:6//LIS,LISTRS/-SP=LISTRS/LIBR=SYSRES:RO TASK=...LISASG=TI:6//! .TITLE LIST ;MULTI-COLUMN LISTER; CHANGE THE VERSON NUMBER! .SBTTL DEFINITIONS! .IDENT /760923/ ;MODIFIED BY GCE:;TO OMIT FORM FEED ON FIRST .OPEN, REMOVE ";" IN NEXT LINE ; NOFF1=0@;THIS VERSION TABS 8 COLUMNS AND ALLOWS LINE TRUNCATION BY "/TR"$;HEADER CAN BE OMITTED BY /NH SWITCHR0=%0R1=%1R2=%2R3=%3R4=%4R5=%5SP=%6PC=%7SPACE=40XCR=15XLF=12XFF=14=;THE FOLLOWING TWO SYMBOLS ARE ONLY USED TO SET BUFFER SIZES.%;THEY REPRESENT THE MAXIMUM PAGE SIZE?;FOR WHICH THE PROGRAM WILL WORK WITHOUT ERROR. THE OUTPUT PAGEB6;SIZE MAY BE LESS THAN OR EQUAL TO THE SIZE SPECIFIED.:MAXWID=136. ;MAXIMUM # PRINTABLE CHARACTERS IN OUTPUT LINE% ;I.E., NOT COUNTING TRAILING CR, LFS%MAXLIN=66. ;MAXIMUM # LINES ON A PAGEY/ .MCALL CSI$,FSRSZ$,GCMLB$,GCMLD$;RSX11D MACROS- .MCALL CSI$1,CSI$2,RCML$,GCML$,OPEN$R,OPEN$W .MCALL CLOSE$,GET$,PUT$. .MCALL FDBDF$,FDAT$A,FDRC$A,FDOP$A;FDB MACROS .MCALL QIOW$,DIR$ CSI$RCSBLK: .BLKB C.SIZES .EVEN FSRSZ$ 5 ;5 FILES A00"4T A TIME MAXCMD: GCMLB$ 1,LST,,1& GCMLD$ ;DEFINE OFFSETS TO ERROR BYTES GCMLD$ ;DEFINE OFFSETST .MACRO WRITE LINK,BUFFD& MOV BUFF,-(SP) ;STACK LINE BUFFER ADR% MOV LINK,-(SP) ;STACK LINK BLOCK ADRI1 BIT #SW.RL,SWITCH ;WANT CONSTANT LENGTH RECORDS?Y BEQ .+6 ; NO JSR PC,COPYRL ; YES, PAD BUFFER JSR PC,RSXWRT ;WRITE VIA RSXC CMP (SP)+,(SP)+ ;CLEAN STACKS DECB ROLL ;COUNT LINED .ENDM6;RSX11D WRITING SUBROUTINE, CALLED AS FOR A DOS WRITE.1;DECODES COMAND AND FIXES BUFFER HEADER A LA DOS. 6;N.B.--TREATS A READ OF A ZERO LENGTH RECORD AS A FLAG8;THAT ENDFILE HAS BEEN SEEN, FOR LACK OF A BETTER WAY TO;DO IT.D .PSECT CODE,RO RSXWRT:N MOV R0,-(SP)M& CLR -(SP) ;FIND SOME MORE WORK SPACE' MOV 10(SP),R0 ;BUFFER HDR ADDR OF CALLC2 MOV 4(R0),@SP ;SIZE OF BUFFER (NEEDED FOR OUTPUT) SUB #2,@SP ;NO CRLF OUT./ ADD #6,10(SP) ;POINT PAST HEADER TO DATA OR TOO ;POINTER TO DATADUMP=4 ;DOS DUMP MODE BIT" BIT #DUMP,2(R0) ;IS IT DUMP MODE?! BEQ 1$ ;NO, 10(SP) IS DATA ADDR + MOV @10(SP),10(SP) ;YES, GET DATA ADDR NOWT/1$: PUT$ 6(SP),10(SP),(SP),ERR1 ;WRITE THE DATAF TST (SP)+ ;RESTORE STACK MOV (SP)+,R0 ;AND CALL R0 RTS PC ;(THO' NOT COND CODES)S; <;RSXRED--READ A BUFFER WITH FDB ON STACK INSTEAD OF DOS LINK';OTHERWISE USES DOS BUFFER HEADER JUNK E; SETS CORRECT DOS BITS.'RSXRED: MOV R0,-(SP); ;GET A REG TO USE CLR -(SP) ;AND A CELL ON STACK MOV 10(SP),R0 ;CALL BUFFER HDRM% BICB #100,3(R0) ;CLEAR EOF INDICATORP MOV @R0,@SP ;ADDR OF MAX SIZEA, ADD #6,10(SP) ;POINTER DATA OR ADDR OF DATA BIT #DUMP,2(R0) ;TEST DUMP MODE, BEQ 1$ ;NOT DUMP MODE; 10(SP) IS DATA ADDR6 MOV @10(SP),10(SP) ;DUMP MODE. GET DATA ADDR TO STACK/1$: MOV R0,-(SP) ;NEED R0 AFTER READ SO SAVE IT  ;IN CASE GET$ SCREWS IT UP.H GET$ 10(SP),12(SP),2(SP)E BCC 3$ ;CHECK EOFE# CMPB #IE.EOF,F.ERR(R0) ;SEE IF EOFG BNE 3$ ;IF NOT, IGNORE ERR# MOV @SP,R0 ;ELSE RETRIEVE POINTER; BISB #100,3(R0)3$: % MOV (SP)+,R0 ;RESTORE BUFHDR POINTER@ MOV 6(SP),-(SP) ;FDB POINTERD) ADD #F.NRBD,@SP ;ADDR OF BYTE COUNT READB! MOV @0(SP),@SP ;GET # BYTES READQ# MOV @SP,4(R0) ;SAVE IN BUFFER HDERD MOV (SP)+,(SP) ;GET ADDR OF END ADD 10(SP),(SP) ;OF DATA$ MOV R5,-(SP) ;USE R5 A SEC... MOV 10(SP),R5 ;FDB ADDRA BITB #3,F.RATT(R5) ;SEE IF INTERNAL C.C. FILE (AS PIP DIRECTORY) 1 BNE 11$ ;NO, SO OUR TERMINATORS OUGHT TO BE OK. J;IF INTERNAL CARRIAGE CONTROL HAS LEADING CRLF, MAKE IT NULLS. REST OF LST2;EXPECTS TRAILING TERMINATORS, NOT LEADING ONES...% MOV 12(SP),R5 ;START OF DATA ADDRESSD CMPB (R5),#16 ;TERMINATOR?B BHIS 2$ ;NOS% CMPB @R5,#11 ;TAB AND LOWER STAY OKA BLOS 2$ CLRB @R5 ;YES, NULL IT.G 2$: INC R50 CMPB (R5),#16 ;CHECK 2ND CHAR AS TERMINATOR TOO BHIS 11$.$ CMPB @R5,#11 ;TEST BELOW AND ABOVE BLOS 11$S& CLRB @R5 ;IF TERMINATOR MAKE IT NULL11$: MOV (SP)+,R5 ;RESTORE R5N MOVB #15,@0(SP) ;PUT IN CRLFE INC @SP MOVB #12,@(SP)+* ADD #4,4(R0) ;ADJUST # BYTES READ COUNTER MOV (SP)+,R0E RTS PC, .PSECT DATA,RW.1 .MCALL FDOF$L,FCSBT$,FDBDF$,FDRC$A,FDAT$A,NMBLK$R! .MCALL CSI$1,CSI$2,OPEN$R,OPEN$WS .MCALL CSI$SW,CSI$ND,CSI$SVFDOF$L ;LOCAL OFFSET DEFS FCSBT$ ;DEFINE BIT NAMESKBIFDB: FDBDF$ ;KB INPUT FDB FDRC$A ,BUF,MAXWID ;T DTIFDB: FDBDF$ ;DATA INPUT FDB FDRC$A ,BUF,MAXWID ;DATA ADDR!DTOFDB: FDBDF$ ;DATA OUTPUT FDBU FDRC$A ,BUFA,MAXWID ;BUFFER+ FDAT$A R.VAR,,MAXWID ;FILE CHARACTERISTICS@ .MCALL NBOF$L(&NBOF$L ;LOCALLY DEFINED NAMEBLK OFSETSKBIFNB: NMBLK$ KBICMD,LST,,TI,0,DTIFNB: NMBLK$ DATA,TMP,,SY,0F6DTOFNB: NMBLK$ DATA,LST,,SY,0 ;DEFAULT FILENAME BLOCKS! .SBTTL COMMAND STRING PROCESSINGC .MCALL FINIT$"SPSAV: .WORD 0 ;STACK POINTER SAVE .PSECT CODE,ROBLIST: ;INIT & OPEN MOV SP,SPSAVB FINIT$ )TRY: ;PROMPT HERE ANG GET COMMAND LINE$ MOV SPSAV,SP ;RESET SP; FINIT$' CLR SWITCH ;RESET SWITCHES TO DEFAULTSA%; ADD RUNTIME FDB INITIALISE ROUTINESL# .MCALL FDAT$R,FDRC$R,FDOP$R,FDBF$RB- FDAT$R #DTIFDB,#R.VAR,#FD.CR,#MAXWID,#-2,#-5M/ FDAT$R #DTOFDB,#R.VAR,#FD.CR,#MAXWID+4,#-2,#-5S FDRC$R #DTIFDB,,#BUF,#M00"  !"TADATADATAAXWID+4, FDRC$R #DTOFDB,,#BUF,#MAXWID+4T O CLR CMAX ;TO 0 COLN CLR ROLL0 CLR PADWA;LEAVE PAGE SIZES ALONE  GCML$ #CMD ;USE RSX FACILITY  BCC 47$ RCML$ #CMDP .MCALL EXIT$S EXIT$S ;LEAVE WHEN SEE EOF47$:% TSTB CMD+G.ERR ;SEE IF ERROR ON READI BPL 48$& EXIT$S ;EXIT TASK ON I/O ERR IN CMD48$:! .IF DF NOFF1 ;OMIT FF ON OUTPUTL MOVB #1,OPENLP ;DEVICE OPEN .ENDC ;AS OPEN WILL DO IT); ISSUE CSI COMMANDS AND OPEN FILES HERE.#;(LOSE IF FILES DON'T EXIST!)$0 MOV #CMD+G.CMLD,R0 ;LEN, ADDR OF STRING READ IN MOV @R0,R1 ;LENGTHC MOV 2(R0),R2 ;ADDRR4 CSI$1 #CSBLK,R2,R1 ;COMPRESS OUT SPACES, TABS, ETC. ;NOW PROCESS I/O SPECIFICATIONS.;NO WILD-CARDS HERE!DTIDSP=C.DSDS+CSBLK DTODSP=DTIDSP7!;NOW GET INPUT SPECS AND SWITCHESN;A CSI$2 #CSBLK,INPUT,#SWTBL$ .SBTTL PROCESS (INPUT) SWITCHES DTODSP=DTIDSPF MOV #DTIFDB,R0V MOV R0,R1 MOV R0,R2" MOV #DTIFNB,R3 ;SET UP FOR .PARSE ADD #F.DSPT,R2A ADD #F.FNB,R1" JSR PC,.PARSE ;FILL IN DEFAULTS< OPEN$R #DTIFDB,#3,#DTIDSP,,#BUF,#MAXWID,ERR1;OPEN INPUT LU3* TST (R3)+ ;PTR TO NEXT # WORDS TO FOLLOW& CSI$2 #CSBLK,OUTPUT ;GET OUTPUT FIRSTDTIDSP=C.DSDS+CSBLKS DTODSP=DTIDSP MOV #DTOFDB,R0R MOV R0,R1 MOV R0,R2" MOV #DTOFNB,R3 ;SET UP FOR .PARSE ADD #F.DSPT,R2 ADD #F.FNB,R1" JSR PC,.PARSE ;FILL IN DEFAULTS8 OPEN$W #DTOFDB,#4,#DTODSP,,#BUFA,#MAXWID,SCRAM ;OUT LU4 .PAGE .SBTTL CHECK LIMITS) ;SET UP VALUES FROM WHATEVER WAS ENTEREDN MOV LINSIZ,SW.WID MOV CMAX,SW.COL MOV PAGSIZ,SW.LEN MOV ROLL0,SW.ROLA MOV PADW,SW.RLN$INTERP: JSR R5,LIMITS ;PROCESS VALUE* .WORD SW.WID,SW.WI,MAXWID,MINWID,LINSIZ JSR R5,LIMITS ;PROCESS VALUE& .WORD SW.LEN,SW.LE,MAXLIN,5.,PAGSIZ JSR R5,LIMITS ;PROCESS VALUER .WORD SW.COL,SW.CO,10.,0,CMAX JSR R5,LIMITS ;PROCESS VALUEP% .WORD SW.ROL,SW.RO,MAXLIN,5.,ROLL0D JSR R5,LIMITS ;PROCESS VALUEA( .WORD SW.RLN,SW.RL,MAXWID,MINWID,PADW- .SBTTL CORRECT PAGE SIZE FOR HEADER, ETCN( MOVB PAGSIZ,LMAX ;PAGE SIZE WITH HEADER DECB LMAX ;1 LINE FOR FF BIT #SW.NH,SWITCH ;OMIT HEADER? BNE 1$ ; YES& DECB LMAX ; NO, BLANK LINE IN HEADER1$:N! .SBTTL COMPUTE COLUMN WIDTHS  MOV #1,R4 ;COL # CLR R2A BISB LINSIZ,R2 ;LINE LENGTH MOV #WIDTH,R3 ;ADR FOR COL 1O2$: MOV R4,SDIV1 ;GET MAX WIDTHS MOV R2,DDIV1P CLR DDIV2 JSR R5,IDIV MOV DDIV1,R0 MOV DDIV2,R1 ;GET RESULTU MOVB R0,(R3)+ ;SAVE IT, INC R4 ;ANOTHER COL PER PAGE SUB #2,R2 ;2 CHAR PER DIVIDERT CMP #12,R4 ;DONE ALL?P BHIS 2$ ; NO, DO NEXTC .SBTTL PROCESS FORM FEEDN MOVB #XFF,FORM+6 ;ASSUME FF BIT #SW.ED,SWITCH ;WANT ^D? BEQ 3$ ; NOR MOVB #4,FORM+6 ; YES, ^D 3$:N .SBTTL DATA FILE PROCESSING .SBTTL CREATE LIST HEADER MOV #DASH,R3 ;HEADER BUFFER ADR MOV R3,R0 ;GET COPY; MOVB LINSIZ,R2 ;LINE LENGTH&FILL: MOVB #'-,(R0)+ ;DASHES TO HEADER DECB R2 BNE FILLT MOV R3,R0 ;BACK AT LEFTA" MOV #VERSON,R1 ;VERSION # AT LEFT MOV #VERLEN,R22*FILLV: MOVB (R1)+,(R0)+ ;VERSION TO HEADER DEC R2$ BGT FILLV MOVB #SPACE,(R0)+ BISB LINSIZ,R2 ;RIGHT SIDEF ADD #2,R2 ;COUNT CR LF# MOV R2,HEADER+4 ;ACTUAL BYTE COUNTR ADD R3,R2 ;PT TO END+1# MOV #TALSIZ,R0 ;SIZE OF RIGHT INFOG MOV #TAIL,R1 ;RIGHT SIDE INFO%1$: MOVB -(R1),-(R2) ;COPY RIGHT SIDEM DEC R0  BGT 1$; INC R2 ;LOCATION FOR DATEH JSR PC,RSAV MOV #Z22$,R5 ;OUTPUT ADDR$ JSR PC,CVTDT ;CONVERT DATE TO ASCII JSR PC,RRES ;POP REGS AGAINR MOV R0,-(SP) MOV R1,-(SP)2 MOV R2,-(SP)R MOV #9.,R0R MOV #Z22$,R123$: MOVB (R1)+,(R2)+M DEC R0E BNE 23$ ;COPY TEXTZ BR Z24$ .PSECT DATA,RW2+Z22$: .ASCII /04-JUL-76/;DUMMY DATE FOR NOW  .EVEN .PSECT CODE,ROOZ24$: MOV (SP)+,R2 MOV (SP)+,R1G MOV (SP)+,R0 ;RESTORE REGS USED ADD #20,R2 ;FOR PAGE # (TENS)Y MOV R2,PAGEAD ;SAVE ITB BISB WIDTH+1,R0 ;CENTER-1 SUB #7,R0 ;START OF NAME ADD #DASH,R0 ;PTR TO IT2 MOV R0,-(SP) ;FILL IN DUMMY NAME TOO FOR STARTERS MOV R1,-(SP)M MOV R2,-(SP)M# ;PUT IN FILENAME FROM FILENAME BLK. MOV #DTIFDB,R1 ;FDB ADD #F.FNB,R1 ;OFFSET TO FN00"4BE MOV R1,-(SP) ;SAVEZ ADD #N.FNAM,R1 ;6 BYTES OF NAME MOV #Z32$,R2L MOV R0,-(SP) MOV (R1)+,R0N JSR PC,RADUPR ADD #3,R2 MOV (R1)+,R0V JSR PC,RADUPV$ ADD #3,R2 ;GET LAST 3 CHARS OF NAME MOV (R1)+,R0 ;RAD50 JSR PC,RADUP ;CONVERT TO ASCIIB MOV (SP)+,R0; MOV (SP)+,R1# ADD #N.FTYP,R1A ADD #4,R2 MOV R0,-(SP)T MOV @R1,R0P JSR PC,RADUPY MOV (SP)+,R0T MOV #13.,R2 ;FILNAM.EXTV MOV #Z32$,R1 ;DUMMY NAME33$: MOVB (R1)+,(R0)+M DEC R2B BNE 33$ BR Z34$ .PSECT DATA,RWNZ32$: .ASCII /FILNAME .EXT/ .EVEN .PSECT CODE,ROAZ34$: MOV (SP)+,R2 MOV (SP)+,R1 MOV (SP)+,R0 ADD #6,R0 ADD #4,R0! .SBTTL PROCESS AN INPUT PAGE .SBTTL INITIALIZEZOTGO: CLR PAGEN ;LAST PAGE # MOV #2,R2 ;CONSTANT  CLRB EOD ;MORE IN FILE CLR OVRFLO ;NO COLUMN OVERFLOW# CLRB VAR ;ASSUME # COLS SPECIFIEDP DECB CMAX ;MAP 1-10. TO 0-9T MOVB CMAX,R0 ;GET FOR INDEXM BGE 1$ ;# SPECIFIEDE INCB VAR ;VARIABLE # COLSC# MOVB #12,CMAX ;MAXIMUM OF 12 COLSA CLR R0 ;USE SINGLE COL MAX01$: MOVB WIDTH(R0),WIDE ;WIDTH BEFORE TRUNCATION .SBTTL NEXT PAGER-NEWPAG: MOVB WIDTH,AVAIL ;FOR VARIABLE # COLSN CLRB AVAIL+1. MOV #L,PL ;FIRST LINE IN MOV #C,PCO ; FIRST COL# MOV #BLOCK,R4 ;SET PAGE BUFFER PTRO CLRB COL ;TO COUNT COLSL .SBTTL NEXT COLUMN;/NEWCOL: CLRB LINE ;TO COUNT UP # LINES ON PAGE % MOV R4,@PL ;SAVE PTR TO COLUMN HEADB' CLRB MAX ;LONGEST LINE FOR VAR # COLSE! .SBTTL NEXT LINE #NEWLIN: JSR PC,READL ;GET NEXT LINE# CMPB R3,MAX ;THIS LONGEST IN COL?  BLOS 4$ ; NO MOVB R3,MAX ;SET NEW MAX TSTB VAR ;VARIABLE # COLS?" BEQ 4$ ; NO, SKIP FOLLOWING JUNK .PAGE" CMPB R3,AVAIL ;STILL FIT ON PAGE? BLOS 4$ ; YESC) MOV @PL,PP ;SAVE COL HEAD FOR NEXT PAGEC JSR PC,PRINT ;PRINT PAGE  ;SET NEW PAGE VARIABLES  CLRB COL ;NO COLS ON NEW PAGEN MOV #L,PL ;SET PL TO FIRST COL MOV #C,PCO ;RESET COLUMN INDEX& MOV #BLOCK,R4 ;SET PTR TO PAGE BUFFER% MOV R4,L ;SET PTR TO FIRST COL ALSOA( MOVB WIDTH,AVAIL ;# CHAR POSITIONS LEFT CLRB AVAIL+1$ ;COPY EXTRA LINES TO BUFFER TOP  MOVB LINE,R5 ;# LINES ON PAGE INC R5;( MOV PP,R1 ;PTR TO FIRST LINE IN BUFFER+1$: MOVB (R1)+,R3 ;GET LINE CHARACTER COUNT MOVB R3,(R4)+ ; & COPY IT BEQ 3$ ;SKIP IF EMPTY LINE2$: MOVB (R1)+,(R4)+ ;COPY LINEA DECB R3# BNE 2$ ;0 TO 256, NOT -128 TO 127V3$: DECB R5 ;ONE LESS LINE BGT 1$ ;COPY REST OF LINES$4$: INCB LINE ;ANOTHER LINE ON PAGE CMPB LINE,LMAX ;MORE FIT? BLT NEWLIN ; YES CLR R0I$ BISB MAX,R0 ;LONGEST LENGTH IN COL MOVB R0,@PCO ;SAVE ITE INC PCO ;MOVE PTRS TO NEXT COL ADD R2,PL ; FOR NEXT TIMEM INCB COL ;ONE LESS COLUMNI" CMPB COL,CMAX ;MORE COLS ON PAGE? BGT 5$ ; NO, PAGE FULL) ADD R2,R0 ;# CHARS REQUIRED TO LIST COLT# SUB R0,AVAIL ;# CHARS LEFT ON PAGEN BGT 6$ ;PAGE FULL  .PAGE .SBTTL OUTPUT A PAGEE!5$: JSR PC,PRINT ;PRINT FULL PAGEY TSTB EOD ;MORE?$ BEQ NEWPAG ; YES BR DONE6$: TSTB EOD ;MORE? BEQ NEWCOL ; YES JSR PC,PRINT ;PRINT FULL PAGE BR DONE-ERTXT: .ASCII /LST--ERROR IN FILE PROCESSING/O ERSIZ=.-ERTXT  .EVEN ERR1: NOPL ERR2: NOPT .MCALL QIOW$S, QIOW$S #IO.WVB,#5,#5,,,,<#ERTXT,#ERSIZ,#40>! TST (SP)+ ;JUNK CALL VIA JSR PC.L .SBTTL COMPLETION PROCESSING  .SBTTL CLOSE INPUT FILE,DONE: CLOSE$ #DTIFDB,SCRAM ;CLOSE & RELEASE BCS SCRAM ;CAN'T CLOSE--EXIT. .SBTTL CLOSE OUTPUT FILEG& CLOSE$ #DTOFDB,SCRAM ;CLOSE & RELEASE" BCS SCRAM ;IF CLOSE FAILS, LEAVE .IF NDF,ONCEO.S JMP TRY .ENDC;SCRAM: EXIT$S ;LEAVE. LIST DOESN'T RE-INITIALIZE CORRECTLY.L .SBTTL SUBROUTINES-* .SBTTL LIMITS: CHECK ON SWITCH VALUES; JSR R5,LIMITS$/; .WORD ADR OF VALUE ENTERED (IN SWITCH TABLE)+; .WORD SWITCH BITC; .WORD MAXIMUM VALUE; .WORD MINIMUM VALUE; .WORD ADR OF BYTE VARIABLE#+LIMITS: MOV @(R5)+,R0 ;LAST SPECIFIED VALUEN$ BIT (R5)+,SWITCH ;SWITCH SPECIFIED? BNE 1$ ; YES TST (R5)+ ;SKIP MAX VALUE& BR 3$ ; & USE LAST VALUE1$: CMP (R5)+,R0 ;CHEC00" !"TADATADATAK MAXO BHIS 2$ ; OK MOV -2(R5),R0 ;CLAMP HI2$: CMP (R5),R0 ;CHECK MINC BLOS 3$ ; OK MOV (R5),R0 ;CLAMP LOT"3$: TST (R5)+ ;PT TO VARIABLE PTR( MOVB R0,@(R5)+ ;SET VALUE INTO VARIABLE RTS R5 ;LEAVEH, .SBTTL COPYRL: PAD LINES TO SAME LENGTHCOPYRL: MOV R0,-(SP) ;SAVE REGS. MOV R1,-(SP)E MOV R2,-(SP)I MOV #BUFOUT,R0 ;PAD INTO BUFOUT CMP R0,6+2+2(SP) ;USING BUFOUT?" BEQ 2$ ; YES, DON'T HAVE TO COPY( MOV 6+2+2(SP),R1 ;GET BUFFER HEADER ADR) MOV R0,6+2+2(SP) ; & REPLACE WITH BUFOUTI$ ADD #4,R0 ;PT TO ACTUAL BYTE COUNT ADD #4,R1 MOV (R1)+,R2 ;DATA LENGTH CMP #MAXWID+2,R2 ;TOO LONG? BHIS 10$ ; NO;- MOV #MAXWID+2,R2 ; YES, CLAMP AT BUFFER SIZEI10$: MOV R2,(R0)+ ;COPY IT!1$: MOVB (R1)+,(R0)+ ;COPY BUFFER  DEC R2E BGT 1$O2$: # MOV #BUFOUT+4,R0 ;PT TO BYTE COUNTP CLR R2R BISB PADW,R2 ;GET TOTAL WIDTHT ADD #2,R2 ;FOR CR, LFP+ MOV (R0),R1 ;CURRENT LENGTH (INC. CR, LF)T" MOV R2,(R0) ;SET CONSTANT LENGTH ADD R1,R0 ;PT TO CR, SUB R1,R2 ;AMOUNT TO PAD BGT 3$ ; MUST PADP ADD R2,R0 ;TRUNCATE BR 4$3$: MOVB #SPACE,(R0)+ ;PAD DEC R2# BGT 3$ ; MORELG4$: .IIF DF,VRSATK,MOVB #'!,-1(R0) ;VERSATEK MUST HAVE NON-BLANK AT END0 MOVB #XCR,(R0)+ ;INSERT CR  MOVB #XLF,(R0)+ ; & LFF MOV (SP)+,R2 MOV (SP)+,R1 MOV (SP)+,R0R RTS PCB .SBTTL READL: READ A LINE.READL: MOV R4,CHRCNT ;CHARACTER COUNT BYTE PTR CLR R3 ;CHAR COUNT( MOV OVRFLO,R1 ;PNT TO NEXT CHAR IN LINE BEQ 1$ ; NO OVERFLOW1 .SBTTL FINISH LAST LINE OVERFLOW, IF ANY;# MOVB #'>,-(R1) ;PUT "-->" IN PLACE  MOVB #'-,-(R1)C MOVB #'-,-(R1)C! CLR OVRFLO ;CLEAR OVERFLOW FLAG, BR 2$ ;HAVE LINE WITH R1 SET$ .SBTTL READ NEXT INPUT LINE"1$: MOV #BUFIN,-(SP) ;PUSH BUF HDR MOV #DTIFDB,-(SP) ;PUSH FDB JSR PC,RSXRED ;READ (GET) DATAB CMP (SP)+,(SP)+ ;RESTORE STACKE BITB #100,BUFIN+3 ;EOD? BNE EOT ; YESY' MOV #BUF,R1 ;SET R1 TO PT TO NEW LINE,2$:  .PAGE' CLRB (R4)+ ;ZERO CHARACTER COUNT BYTE. MOV #10,R5 ;SET FIRST TAB STOP& .SBTTL PROCESS NEXT CHARACTER#NEXTC: MOVB (R1),R0 ;GET NEXT CHAR' BEQ IGNORE ;IGNORE NULLS, BIT #SW.UC,SWITCH ;CASE TRANSLATION NEEDED? BEQ CKSPC ;NO.8 BITB #100,(R1) ;IF 100 BIT ON, THEN 40 BIT OFF IF SPEC. BEQ CKSPC+ BICB #40,(R1) ;CONVERT LOWER TO UPPER CASE(CKSPC: CMP #40,R0 ;SEE IF SPECIAL BLOS MOVE ; NO, COPY CHARACTER SUB #15,R0E BEQ EOL ;CR1 BGT CONTROL ;OUTPUT ^X ADD R2,R0 BGT FF ;FF BEQ EOL ;VTA ADD R2,R0 BGT EOL ;LF0 BLT CONTROL ;001-010& BIT #SW.CT,SWITCH ;WANT TO KEEP TABS? BEQ TAB ; YES ) MOVB #SPACE,(R1) ;REPLACE TAB WITH SPACEO BR MOVE% .SBTTL CONTROL CHARACTERE'CONTROL:BISB #100,(R1) ;FORCE PRINTABLE0# MOVB #'^,(R4)+ ;INSERT ^ CHARACTERB BR SPEC$ .SBTTL IGNORE CHARACTERIGNORE: INC R1 BR NEXTCE .SBTTL FORM FEEDO(FF: BIT #SW.FF,SWITCH ;WANT TO KEEP FFS? BEQ EOL ; NO TSTB LINE ;AT TOP OF COLUMN?) BEQ EOL ; YES, DON'T BLANK WHOLE COLUMNL* BR E1 ;YES, FILL COLUMN WITH BLANK LINES .PAGE .SBTTL TAB (TAB0: ADD #10,R5 ;MOVE TO NEXT TAB STOPTAB: CMP R3,R5 ;AT TAB STOP?  BGE TAB0 ;MOVE TO NEXT INC R1 ;SKIP TAB IN INPUT LINE)TAB1: MOVB #SPACE,(R4)+ ;FILL WITH SPACESC INC R3 ;COUNT CHARACTER ! CMPB R3,WIDE ;MORE FIT IN LINE?E BHIS TOWIDE ; NO, FULL CMPB R3,R5 ;AT TAB STOP?" BLO TAB1 ; NO, GET ANOTHER SPACE BR NEXTCB! .SBTTL UNINTERESTINGC&MOVE: MOVB (R1)+,(R4)+ ;COPY CHARACTERSPEC: INC R3 ;COUNT CHARACTER! CMPB R3,WIDE ;MORE FIT IN LINE?T BLO NEXTC ; YES, GET NEXTD) .SBTTL CHECK FOR COLUMN OVERFLOW,2TOWIDE: BIT #SW.TR,SWITCH ;WANT TO TRUNCATE LINES? BNE EOL ; YES, END LINE NOW  CMPB #XCR,(R1) ;IF AT CRH BEQ EOL ; NO OVERFLOW 0 MOV R1,OVRFLO ;SAVE NEXT CHARACTER PTR/SET FLAG+ .SBTTL LINE FEED - END OF LINEO,EOL: MOVB R3,@CHRCNT ;INSERT LINE BYTE COUNT RTS PCB! .SBTTL END OF INPUT FILEE EOT: INCB EOD ;REMEMBER SAW EOD&E1: CLRB (R4)+ ;FILL REST00"%4 COLUMN WITH INCB LINE CMPB LINE,LMAX ;NEED MORE?  BLO E1 ; YES E2: RTS PC .PAGE .SBTTL WRITE A PAGE* .SBTTL FIND COLUMN PADDING WIDTHS%PRINT: MOVB COL,R3 ;ACTUAL # CO^UMNS TSTB VAR ;VARIABLE # COLS? BEQ 2$ ; NOE MOV R3,SDIV1,4 MOV AVAIL,DDIV1 ;FIND # EXTRA CHARACTERS PER COLUMN CLR DDIV2 JSR R5,IDIV MOV DDIV1,R0: MOV DDIV2,R1T"1$: MOVB C-1(R3),R1 ;GET COL WIDTH ADD R0,R1 ;ADD # EXTRA CHARS MOVB R1,C-1(R3) ;UPDATE # DEC R3E BGT 1$L BR 3$2$: MOVB WIDE,C-1(R3) ;I DEC R3 BGT 2$E3$: 1 .SBTTL SETUP & OUTPUT APPROPRIATE HEADER. INC PAGEN ;GET PAGE #B JSR PC,RSAV ;SAVE REGS MOV PAGEN,R0 ;GET # TO CONVERT3 JSR PC,BIN2D ;CONVERT IT  JSR PC,RRES ;POP REGS AGAIN $ MOV PAGEAD,-(SP) ;PTR TO TENS DIGIT! MOVB ZZ+3,-(SP) ;COPY TENS DIGITU CMPB #'0,(SP) ;IF NOT 0,V BNE 4$ ; KEEP IT% MOVB #SPACE,(SP) ;REPLACE WITH SPACEC+4$: MOVB (SP)+,@(SP) ;INSERT TENS CHARACTERV INC (SP) ;PT TO UNITSD# MOVB ZZ+4,@(SP)+ ;COPY UNITS DIGITW# CMP PAGEN,#1 ;ALLOW 1ST PAGE TO BE$ ;WRITTEN IN ANY CASE BLE LETGO% BIT #SW.PA,SWITCH ;/PAUSE OPTION ON?G BEQ LETGO ;NO, FORGET IT.S$;PUT A WAIT ON READING CONSOLE HERE. DIR$ #PAUSE ;DO PROMPT DIR$ #PAUSE1 ;DO WAITG BR X54$3 ;PROBLEMS WITH READ WITH PROMPT, DO IT HARD WAYO% ;AND USE ANOTHER LUN FOR TERMINAL0 .PSECT DATA,RWE5PAUSE: QIOW$ IO.WVB!TF.WBT,6,7,,STAT,,(*PAUSE1: QIOW$ IO.RVB,6,7,,STAT,,STAT: .WORD 0,0$PAUSES: .ASCII <15><12>/LIST PAUSE>/ PAULEN=.-PAUSES WPAUSEB: .BYTE 0 .EVEN .PSECT CODE,RO*X54$: CMPB STAT,#IE.EOF ;CTL Z ON INPUT ? BNE LETGO ;BR IF NOTF RCML$ #CMD ;RESET LEVEL JMP DONE ;EXIT IF ^Z ON PAUSEULETGO: .PAGE BIT #SW.RO,SWITCH ;ROLL PAPER?$ BEQ 9$ ; NO * MOV #BUFOUT+4,R5 ;PT TO ACTUAL BYTE COUNT' MOVB LINSIZ,(R5) ;SET IT TO FULL WIDTHC MOV (R5),-(SP) ;SAVE COUNTV ADD #2,(R5)+ ; FOR CR, LF(10$: MOVB #'=,(R5)+ ;CREATE PAGE DIVIDER DEC (SP) ; MORE? BGT 10$ ; YES  TST (SP)+ ;DROP COUNTER/ MOVB #XCR,(R5)+ ;INSERT CR  MOVB #XLF,(R5)+ ; & LF ! MOVB ROLL0,ROLL ;SET PAGE LENGTH;% WRITE #DTOFDB,#BUFOUT ;WRITE DIVIDERO$ WRITE #DTOFDB,#SKIP ; & SKIP A LINE BR 11$ ;SKIP PAGED JUNKE9$: .IF DF NOFF1 TSTB OPENLP ;FIRST TIME? BNE 4$ ; YES, OMIT FFO .IFTF' BIT #SW.NP,SWITCH ;NO PAGE SEPARATORS?5 BNE 46$ WRITE #DTOFDB,#FORM46$: .IFTV&4$: CLRB OPENLP ;NO LONGER FIRST TIME .ENDC,11$: BIT #,SWITCH ;OMIT HEADER? BNE 5$ ; YES$ WRITE #DTOFDB,#HEADER ;WRITE HEADER$ WRITE #DTOFDB,#SKIP ; & SKIP A LINE5$:+# .SBTTL FORM & OUTPUT LINESN" MOVB LMAX,R5 ;COUNT DOWN # LINES$ MOVB COL,-(SP) ;SAVE # COLS ON PAGE$NEWL: MOV #L,PL ;START AT FIRST COL MOV #C,PCOF MOVB (SP),COL ;# COLS ON PAGE' MOV #BUFA,R1 ;PT TO OUTPUT LINE BUFFERW .PAGE$NEWC: MOV @PL,R4 ;PT TO LINE IN COL CLR R0F BISB (R4)+,R0 ;# CHAR IN LINE MOV R0,R3 ;SAVE IT FOR PADDING BEQ 2$ ;LINE EMPTY$1$: MOVB (R4)+,(R1)+ ;COPY CHARACTER DEC R0W BGT 1$ ; AND DO NEXT-2$: MOV R4,@PL ;SAVE PTR TO NEXT LINE IN COLE DECB COL ;ONE LESS COL TO DO BEQ CRLF ;DONE% BISB @PCO,R0 ;GET COL WIDTH FOR PADV SUB R3,R0 ;# SPACES REQ'DA3$: MOVB #SPACE,(R1)+T DEC R0R! BGE 3$ ;EXTRA SPACE FOR DIVIDERL MOVB #'!,(R1)+ ADD R2,PL ;MOVE TO NEXT COLE INC PCO BR NEWCCRLF: MOVB #XCR,(R1)+N MOVB #XLF,(R1)+" SUB #BUFOUT+6,R1 ;GET LINE LENGTH' MOV R1,BUFOUT+4 ;SET ACTUAL BYTE COUNT; WRITE #DTOFDB,#BUFOUT DECB R5 ;MORE LINES? BGT NEWL ; YES MOVB (SP)+,COL ;CLEAN STACK BIT #SW.RO,SWITCH ;ROLL PAPER?C BEQ 2$ ; NOS"1$: TSTB ROLL ;NEED ANOTHER LINE? BLE 2$ ; NOO WRITE #DTOFDB,#SKIP BR 1$2$:A RTS PCA .PSECT DATA,RWR! .SBTTL WRITE COMMAND MESSAGEC .SBTTL FILE CONTROL BLOCKSBUFIN: .WORD MAXWIDO .WORD 20 .WORD 0BUF: .BLKB MAXWID+2B .SBTTL LINE BUFFERSLPBK: .WORD MAXWID+2,4,0,00PDIBUF: .WORD 2,0,2 ;CHARACTERS FOR USER TO TYPE .BLKW 2 ;IF /PAUSE REQUESTEDBUFOUT: .WORD MAXWID+2 .WORD 20Y .WORD 0 BUFA00"- !"TADATADATA: .BLKB MAXWID+2+2 ;(SAFTEY) .PAGE .SBTTL VARIABLESBCOL: .BYTE 0 ;COLUMN COUNTER .EVENCMAX: .WORD 0 ;MAX # COLSW .EVEN ;LINE MUST BE EVENLINE: .BYTE 0 ;COUNT DOWN LINESR LMAX: .BYTE 0 ;# TEXT LINES/PAGE .EVEN9PAGSIZ: .WORD 60. ;CURRENT # LINES PER PAGE(INCL. HEADER) .EVEN4LINSIZ: .WORD 130. ;# PRINT POSITIONS (EXCL. CR, LF)&MAX: .BYTE 0 ;MAX # CHAR IN COL SO FAR#VAR: .BYTE 0 ;NZ => VARIABLE # COLS .EVEN ;WIDE MUST BE EVEN, ; NOTE HIGH BYTE USUALLY 0O*WIDE: .BYTE 0 ;MAX # CHARACTERS PER COLUMNEOD: .BYTE 0 ;NZ => SAW EODB$ROLL0: .WORD 56. ;LINE PER ROLL PAGEROLL: .BYTE 0 ;LINES LEFT TO GOW .EVEN'PADW: .WORD 132. ;RECORD LENGTH FOR /RLT .IF DF,NOFF1M&OPENLP: .BYTE 0 ;0 => DOING FIRST FILE .ENDC .EVEN<AVAIL: .WORD 0 ;# FREE CHARACTER POSITIONS REMAINING ON PAGE,CHRCNT: .WORD 0 ;PTR TO LINE BYTE COUNT BYTE8OVRFLO: .WORD 0 ;NZ IS ADR OF NEXT CHAR IN OVERFLOW LINE+PAGEAD: .WORD 0 ;PTR TO PAGE TENS IN HEADERPAGEN: .WORD 0 ;LAST PAGE # (ZZ: .ASCII /00001/<0> ;FOR DECIMAL ASCIIPP: .WORD 0 ;SAVE FOR @PL(I+1)PL: .WORD 0 ;PTR TO CURRENT LRPCO: .WORD 0 ;PTR TO CURRENT C5L: .BLKW 14 ;ADR OF FIRST LINE OF ITH COLUMN IN BLOCK C: .BLKB 14 ;WIDTH OF ITH COLUMN ;TABLE OF FIXED COLUMN WIDTHSC/WIDTH: .BLKB 14 ; ENTRY I IS: MAXWID+2-<2*I>/2O .PAGE .EVEN&DDIV1: .WORD 0 ;VAR FOR DEVIDE ROUTINEDDIV2: .WORD 0SDIV1: .WORD 0#SMUL1: .WORD 0 ;VAR FOR MUL ROUTINEDMUL1: .WORD 0 SAVE: .WORD 0N;MULTIPLY / DIVIDE ROUTINE .SBTTL SWITCHES .EVENSWITCH: .WORD 0 ;SWITCH FLAGSP"SW.MAX=10000 ;LEFTMOST SWITCH BIT.SW.NP=10000 ;NO PAGES (NO FORMFEED OR HEADER)(SW.UC=4000 ;CONVERT LOWER TO UPPER CASE .WORD "UC,0SW.RL=2000 ;FIXED LENGTH LINES  .WORD "RL,132.O SW.RLN=.-2SW.RO=1000 ;ROLL PAPER  .WORD "RO,56. SW.ROL=.-2SW.CT=400 ;CHANGE TAB TO SPACE0 .WORD "CT,0 ;NO ARGSE SW.ED=200 ;USE ^D INSTEAD OF FF .WORD "ED,0SW.PA=100 ;PAUSE OPTION .WORD "PA,0SW.WI= 40 ;WIDTH OPTION .WORD "WI,127.T SW.WID=.-2SW.LE= 20 ;LENGTH OPTIONI .WORD "LE,60. SW.LEN=.-2SW.CO= 10 ;# COLUMNS= .WORD "CO,0.S SW.COL=.-2SW.FF =4 ;RETAIN FF OPTIONN .WORD "FF,0SW.NH =2 ;NO HEADER OPTION= .WORD "NH,0SW.TR =1 ;TRUNCATE OPTION .WORD "TR,0 .EVEN .PSECT CODE,RO 4SWTBL: CSI$SW UC,SW.UC,SWITCH ;UPPER CASE /UC SWITCH+ CSI$SW RL,SW.RL,SWITCH,,,RLTBL ; /RL:NNNNN0* CSI$SW RO,SW.RO,SWITCH,,,ROTBL; /RO:NNNNN* CSI$SW CT,SW.CT,SWITCH ;COMPRESS TABS /CT CSI$SW ED,SW.ED,SWITCH ; /ED% CSI$SW PA,SW.PA,SWITCH ;/PAUSE (NYA)H( CSI$SW WI,SW.WI,SWITCH,,,WITBL ;/WI:NNN( CSI$SW LE,SW.LE,SWITCH,,,LETBL ;/LE:NNN& CSI$SW CO,SW.CO,SWITCH,,,COTBL ;/CO:N CSI$SW FF,SW.FF,SWITCH ;/FFE$ CSI$SW NH,SW.NH,SWITCH ;/NH NO HDR' CSI$SW TR,SW.TR,SWITCH ;/TRUNCATE COL1 CSI$SW NP,SW.NP,SWITCH ;/NP NO PAGE SEPARATORSP CSI$ND ;END TABLE CSI$SV DECIMAL,PADW,2,RLTBL CSI$SV DECIMAL,ROLL0,2,ROTBLO CSI$SV DECIMAL,LINSIZ,2,WITBL CSI$SV DECIMAL,PAGSIZ,2,LETBL CSI$SV DECIMAL,CMAX,2,COTBL CSI$ND .PSECT DATA,RWS .PAGE .SBTTL TEXT STRINGS L3: .WORD LL3, .BYTE 15,12,0,0,0,0,0VERSON: .ASCII /LIST-11 VR3.02/VERLEN=.-VERSONS .BYTE XCR,XLF LL3=.-L3-2 .EVEN L4: .WORD LL4 .ASCII <0><0><0>/#/<13> LL4=.-L4-2 .EVEN L5: .WORD LL5;( .ASCII <15><12>/*/<13> ;STANDARD PROMPT LL5=.-L5-2 .EVENHEADER: .WORD MAXWID+2,0,0DASH: .BLKB MAXWID+2+PAGE: .ASCII / XX-XXX-XX PAGE XX /<15><12>ETAIL:ITALSIZ=TAIL-PAGE MINWID=10.*6 .IF LT MINWID-VERLENE MINWID=VERLENT .ENDC .IF LT MINWID-TALSIZ MINWID=TALSIZ  .ENDC .EVENFORM: .WORD 3,0,3 ;FORM FEED .BYTE 14,15,12 ;OR ^D IF /ED  .EVENSKIP: .WORD 3,0,3 ;CR LF .BYTE SPACE,XCR,XLF .SBTTL PAGE BUFFER .EVEN BLOCK: .BLKB <*MAXLIN>; PCO -> C, PL -> L.$; C CONTAINS WIDTH OF CURRENT COLUMN6; L CONTAINS ADDRESS IN BLOCK OF START OF CURRENT LINE; BLOCK CONTAINS PACKED LINES:'; FIRST BYTE IS # CHARACTERS TO FOLLOWA#; FOLLOWED BY CHARACTERS FROM LINE  .PSECT CODE,RODIDIV: JSR PC,RSAV. MOV #SDIV1,R1 MOV #DDIV1,R0 00"54 JSR PC,DIVD JSR PC,RRES RTS R5,IMUL: JSR PC,RSAVY MOV #SMUL1,R1 MOV #DMUL1,R0 JSR PC,MULT JSR PC,RRES RTS R5E#RSAV: MOV R0,-(SP) ;SAVE REGISTERS MOV R1,-(SP)C MOV R2,-(SP)I MOV R3,-(SP) MOV R4,-(SP) MOV R5,-(SP)S JMP @12.(SP)N-RRES: MOV (SP)+,12.(SP) ;STORE RETURN ADDRESST! MOV (SP)+,R5 ;RESTORE REGISTERSP MOV (SP)+,R4 MOV (SP)+,R3# MOV (SP)+,R2F MOV (SP)+,R1O MOV (SP)+,R0R RTS PCN; PDP-11 FLOATING POINT PACKAGES; INTEGER MULTIPLY; INTEGER DIVIDE;0; MODULES INCLUDED:P; 1. MUL; 2. DIV; ; ;R;YR0 = %0MR1 = %1MR2 = %2,R3 = %3PR4 = %4JR5 = %5SSP = %6EPC = %7O)MULT: MOV @R0,R5 ;PICK UP THE MULTIPLIERC& MOV @R1,R1 ;PICK UP THE MULTIPLICAND! CLR R3 ;ZIP-ZAP-ZOWIE AND SWOSH( CLR R4S TST R5)/ BGE .+6 ;-> ;TEST SIGN AND CHANGE IF NECESSARY; NEG R5 ; I ;CHANGE SIGNP( INC R3 ; I ;REMEMBER THE ORIGINAL SIGN TST R1 ;<- ;TEST THE OTHER WORD BGE .+6 ;-> SAME TEST AS BEFORE' NEG R1 ; I ;NEGATE TO CHANGE THE SIGNE. DEC R3 ; I ;USE THE OPPOSITE SIGN MANAGEMENT) MOV #21,R2 ;<- ;SET UP THE CYCLE COUNTER,%M.ML1: CLC ;CLEAR CARRY FOR ROTATESE. ROR R4 ;SHIFT MULTIPLIER AND PARTIAL PRODUCT ROR R5M4 BCC .+4 ;-> ;CHECK AND SEE IF AN ADDITION IS NEEDED2 ADD R1,R4 ; I ;ADD MULTIPLIER TO PARTIAL PRODUCT DEC R2 ;<- ;DECREMENT COUNTER" BGT M.ML1 ;BREANCH IF MORE TO DO TST R3 ;TEST SIGN CHANGE WORD + BEQ .+10 ;-> ;BRANCH AROUND THE ADJUSTMENT. NEG R4 ; I T NEG R5 ; I, SBC R4 ; I ;DO A DOUBLE PRECISION NEGATION MOV R5,(R0)+;<-- MOV R4,@R0 ;MOVE THE PRODUCT TO DESTINATION  RTS PC ;RETURN TO THE CALLER,DIVD: CLR -(SP) ;SET UP A SIGN CONTROL WORD MOV (R0)+,R3 ;PICK UP THE( MOV (R0)+,R2 ;DOUBLE PRECISION DIVIDEND BGE .+14 ;-> ;CHECK THE SIGN,, DECB 1(SP) ; I ;KEEP TRACK OF THE ORIGINAL NEG R2 ; I ;SIGN AND NEGATEB! NEG R3 ; I ;THE ORIGINAL NUMBERT SBC R2 ; I% MOV (R1)+,R4;<- ;PICK UP THE DIVISOR ( BEQ M.DVV ;DIVISION BY ZERO IS A NO-NO BGT .+6 ;-> ;CHECK THE SIGN& INC @SP ; I ;AND KEEP TRACK AS ABOVE NEG R4 ; I$ MOV R4,R5 ;<- ;MOVE THE DIVISOR AND" NEG R5 ;NEGATE FOR THE ALGORITHM, ADD R5,R2 ;PREFORM THE INITIAL SUBTRACTION% BCS M.DVV ;CARRY SET IS AN OVERFLOW MOV #20,-(SP) ;SET UP A COUNTER( CLR -(SP) ;THIS IS A LASTING CARRY BITM.DV1: ROL R3 ;ROTATE ONE LEFTG ROL R2; TST @SP ;CHECK THE LAST CARRYH& BEQ M.DV2 ;IF ZERO ADD ELSE SUBTRACT CLR @SP ;CLEAR THE CARRY ADD R5,R2 ;DO ONE MORE STEPZ BR M.DV3-(M.DV2: ADD R4,R2 ;-2N+N=N FOR THIS STEP M.DV3: ADC @SP ;KEEP IT A WHILE! BEQ .+4 ;-> ;IF ZERO OMIT UPDATEE INC R3 ; I ;NO CARRY POSSIBLER! DEC 2(SP) ;<- ;DECREMENT COUNTERM! BGT M.DV1 ;BRANCH IF MORE TO DOV" ROR R3 ;SEE ABOUT THE LAST CYCLE# BCS M.DV4 ;OMIT CORRECTION IF ONE) ADD R4,R2 ;CORRECT REMAINDER CLC$M.DV4: ROL R3 ;REPLACE THE LAST BIT CMP (SP)+,(SP)+ ;POP TWO WORDS% TST @SP ;TEST FOR REMAINDER CHANGES BGE .+12 ;-> ;OMIT IF POSITVE NEG R2 ; I ;NEGATE REMAINDER CLRB 1(SP) ; I ;CLEAR SIGN, DEC @SP ; I ;BUT DO A GOOD JOB ON QUOTIENT5 CMP #100000,R3;<- ;TEST FOR THE BUG IN THE ALGORITHMI' BLO M.DVV ;EXIT WITH ERROR OF TOO BIGR BEQ M.DVC ;CHECK FOR OVERFLOWC/M.DV6: TST (SP)+ ;TEST FOR QUOTIENT ADJUSTMENTC BEQ M.DV5 ;IF ZERO NONE NEEDED NEG R3 ;NEGATE QUOTIENTT#M.DV5: MOV R2,-(R0) ;MOVE REMAINDERL% MOV R3,-(R0) ;THEN QUOTIENT TO DEST.  RTS PC#M.DVV: TST (SP)+ ;REMOVE SIGN WORDE SEV ;SET OVERFLOW RTS PCT#M.DVC: TST (SP) ;TEST FOR NEGATIVEC# BEQ M.DVV ;IF POSITIVE THEN OOPS!; BR M.DV6 ;IF NEGATIVE OK9RADTBL: .ASCII / ABCDEFGHIJKLMNOPQRSTUVWXYZ.$?0123456789/! .EVEN ;RAD50 CHARACTER SET TABLE 8RADUP: MOV R0,-(SP) ;R0 CONTAINS RADPACKED CODE ON ENTRY MOV R1,-(SP)E* MOV R2,-(SP) ;R2 HAS ADDR TO PUT ASCII IN MOV R3,-(SP); MOV #3,R3 ;3 CHARSV# ADD #3,R2 ;TRANSLATE RIGHT TO LEFTV1$: MOV R0,R1 ;PUT # IN ODD REG  CLR R0 CLC5 DIV #50,R0 ;DIVIDE TO GET REMAIND. IN R1, QUOT IN R0, MOVB RADTBL(R1),-(R2) ;STICK INTO USER AREA SOB R3,1$ ;DO ALL 3 CHARSE MOV (SP)+,R3. MOV (SP)+00"=#@ !"TADATADATA,R2V MOV (SP)+,R1L MOV (SP)+,R0E RTS PCOBIN2D: JSR PC,RSAV ;SAVE REGSV/ MOV #5,R4 ;CONVERT ENTRY R0 TO 5 ASCII NUMBERSP+ MOV #ZZ+5,R3 ;IN ZZ, IN DECIMAL FOR PAGE #R+1$: MOV R0,R1 ;R0 HAS NUMBER, R3 HAS OUTPUTS CLR R0M CLC& DIV #12,R0 ;DIVIDE BY 10 TO GET DIGIT ADD #60,R1 ;ADD ASCII ZONES MOVB R1,-(R3) SOB R4,1$ JSR PC,RRES ;PUT REGS BACKR RTS PC ;G;DATE CONVERTING ROUTINESR;AMONTHS: .ASCII /-FOO-JAN-FEB-MAR-APR-MAY-JUN-JUL-AUG-SEP-OCT-NOV/  .ASCII /-DEC-FOO/ .EVEN .PSECT DATA,RW(TIMBUF:TIMYR: .WORD 0;YEARPTIMMON: .WORD 0,TIMDA: .WORD 0 ;DAY OF MONTH .BLKW 5 ;OTHER JUNK .PSECT CODE,ROMCVTDT: JSR PC,RSAV .MCALL GTIM$S) GTIM$S #TIMBUF ;GET DATE, TIME, ETC. ANDS+ ;SAVE ASCII DATE STUFF IN AREA POINTED AT  ;BY ENTRY R5.T! MOV R5,R2 ;PREPARE FOR DAY FIRSTV MOV TIMDA,R0 ;CONVERT DAY JSR PC,NUM ;TO 2 ASCII DIGITS  MOV TIMMON,R1 ASL R1U ASL R1 ;MULT MONTH BY 4/* ADD #MONTHS,R1 ;GET ADDR OF 4 ASCII CHARS ADD #2,R5 ;POINT R5 PAST DAY .REPT 4 MOVB (R1)+,(R5)+ .ENDR- MOVB #'-,(R5)+ ;ADD A SECOND "-" AFTER MONTH0 MOV R5,R2 MOV TIMBUF,R0 ;YEAR-1900. JSR PC,NUM ;CONVERT ASCII, JSR PC,RRES ;PUT REGS BACK RTS PC ;THAT'S ALL;E8;NUMBER CONVERT SUB TO GIVE 2 ASCII DIGITS FROM ENTRY R0;PUTTING RESULT WHERE R2 POINTSRNUM: JSR PC,RSAV MOV R0,R1 CLR R0T DIV #12,R0 ;DIV ON EVEN REG ADD #60,R0V& ADD #60,R1 ;ADD ASCII TO QUOT AND REM MOVB R0,(R2)+ MOVB R1,(R2)+ ;PUT OUT #C JSR PC,RRES RTS PCP .END LIST DAY .REPT*{L}L$9!@:s@*:2@ ~$@`@=@@=@*X@p@?S@@S@}@*hp!@}s@}@(4yP @8 <@((@( ,,ONNIRR XX ;;R' LST> P @*&& e5*&   && }*L@e5& *r *@e }$9!*mf W*W  WW   ޕ e <@ rr ppn n& &E N::TID D<@XXSYb b<@ Nv vSY @*z z7 ``(<@z X<@z<@` <@`*   <@*: `" <@` <@ <@ "<@"`7 7 7 ,0 b (<@ <@<@  ,?S*~, 33( ,@S  (*p ȕ  `"=   @= $<@`*>e$eB `"$#  <@>}s <@` *  " ȕ  <@hp! &@=*\e$eB "$( <@ <@\}s <@ &*<#n  |( <@nhp!"<@$<@|(<@bl*<@<@ <@<@<@l"r hw | <w B*<@ <@h <@| <@ <@&w  w lBw * <@ <@ <@ <@l <@h< 5* <@h <@ <@<@<@ ` H7X*<@` <@<@ <@H<@X*T7 Vw TV % f*<@T<@V<@T<@V(<@f* 5`fЕ-Š*<@`<@f <@<@ (<@*2P Е e``b<@<@ &<@`*X  j|  n&f |R <@| &<@| ~  <@| |04-JUL-76 @*eIe&f`00#E4e"<@<@I <@ &<@`*Bfe&@ e@ e@  <@*e e&@  P   "<@ <@FILNAME .EXT @*ee7 77 7*<@<@ <@$<@(<@  7H*<@ <@<@ <@H<@8H7$ *<@H<@ <@ <@$<@ H<"t77?* <@<<@" <@t<@<@ Z 7 +&*<@ <@<@<@<@v#  l7$*<@ <@  <@<@ <@$ <"t7$*<@  <@< <@" <@t<@$(H7ŝ CԐTÊŊ*<@H<@ <@<@<@ ?" *<@<@ <@<@<@""` `7*<@"<@  <@<@<@* * $LST--ERROR<@<@<@ IN FILE PROCESSING(*(  & & & Ε  $:2*N `     w <@`` <@`*t3@w5` @%@@#@  <@`*&fh6  6 eeB%  <@h*P l e@`B <@l<@ *`Е Е Е 7  $<@*  >--7  ` %"<@<@ <@ <@`*2@R@"5`ɵ@ <@ <@<@`*X% . 9 `5`35`ɕ "<@`*~@ԕ^ 5` !e <@`<@* ԕ ŠT 5`<@ <@(<@`$ɥ w*<@<@<@<@"<@ÝX*<@ <@<@<@X<@T7 Vw TV;`s*<@T<@V<@T<@V <@;*; ;     * <@;<@ <@;<@ <@*BΥ0Ε ޝ-5"<@ <@<@"<@h@`"<@` <@ <@<@*  &:2 ~$  :s LIST PAUSE> @|"|׭, w5`2&<@$9! ,@S<@`*l͝feՕ=  Օ Օ  " <@l<@$<@&<@ &h5` *% j* <@h <@<@`<@  "<@j*5` % 5``* <@ <@`<@ "<@` (<@`*5` % 5`* <@ <@`<@ "<@` (<@*.5` ^ % j5* <@ <@`<@  <@j $<@"T` @ % ŝ$*<@`<@ <@<@ <@$r <"n*<@  <@< <@"<@ <@n*   ? "ѕ "<@ <@ <@ <@"*ѕ!`  "ѕ ѕ nwlh* <@ <@" <@n"<@l &<@h*5` % Ŋ5`* <@ <@`<@ "<@(<@`* j5` % *<@  <@j <@<@`(<@   <@ VVh h<8  00001T*TUCRLRO8CTEDPAzWILE<COFFNHTR @ ( UC`RL` RO` CT`ED* <@` <@` <@` <@`$D `PA@`WI ` LE` CO* <@` <@` <@` <@` $d ` FF`NH`TR`NP& <@` <@` <@` <@` ` * <@` <@  <@ <@ <@  <@<@ LIST-11 VR3.02  #  * J#J XX-XXX-XX PAGE XX  j j 00#M$O !"TADATADATA @ * (XT x ( Z\ (" <@X <@T <@Z $<@\* &f&f~  * A      * D`    P&   *8 D.   Ba'& C B  Ba*^ aN   aC %  6* %     ABC* DEFGHIJKLMNOPQRSTUVWXYZ.$?0123456789&* fe r(b ~ *  r e0c   <@* -FOO-JAN-FEB-MAR-APR-MAY-JUN-JUL-AUG-SB EP-OCT-NOV-DEC-FOO <@( ( @T *T t(=B( ,( e e <@(<@(<@(& *z UUUUՕ-B(  F 0 <@( r e0e0R ( Ba*^ aN   aC %  6* %     ABC* DEFGHIJKLMNOPQRSTUVWXYZ.$?0123456789&* fe r(b ~ *  r e0c   <@*.PAPER SIZE 50,65.LEFT MARGIN 5.RIGHT MARGIN 60 .NOJUSTIFY.TITLE ^^LIST-11\\.SUBTITLE ^VERSION 3.02 .NUMBER 1.FILL .SPACING 1.CENTER ^^LIST-11\\.SKIP 2 .INDENT 5:^^LIST-11\\ IS A PROGRAM FOR REFORMATTING ^^ASCII\\ FILES.6^IT CAN PUT UP TO 10 COLUMNS OF TEXT ON A SINGLE PAGE.$^TO RUN ^^LIST-11\\, THE USER TYPES:.SKIP 1 .INDENT 2!^^LIS [FILEOUT=FILEIN/SWITCHES]\\.SKIP 1B^IF NO INPUT/OUTPUT SPEC IS GIVEN, THE COMPUTER WILL RESPOND WITH:.SKIP 1 .INDENT 2^^LIS>\\.SKIP 1S>^THE USER SHOULD NOW TYPE THE SPECIFICATION FOR THE FILE TO BEPRINTED IN THE GENERAL FORM:.SKIP 1 .INDENT 25OUTDEV:OUTFILE.OUTEXT".D.SKIP 1T .INDENT 5P>^THE /^N^H SWITCH, IF PRESENT, CAUSES THE TWO LINE ^^LIST-11\\HEADER TO BE OMITTED.D.SKIP 1F .INDENT 5E8^THE /^F^F SWITCH, IF PRESENT, CAUSES A FORM FEED IN THE4INPUT FILE TO START A NEW COLUMN IN THE OUTPUT FILE.4^IF THE /^F^F SWITCH IS NOT SPECIFIED, FORM FEEDS INTHE INPUT FILE ARE IGNORED.O.SKIP 1R .INDENT 5F9^THE /^C^T SWITCH, IF PRESENT, CAUSES A TAB TO BE CHANGEDF5INTO A SPACE, INSTEAD OF SKIPPING TO THE NEXT COLUMN.U.SKIP 1S .INDENT 5 :^THE OUTPUT PAGE SIZE MAY BE SPECIFIED BY THE /^W^IDTH AND9/^L^ENGTH SWITCHES, WHICH SPECIFY THE NUMBER OF AVAILABLET<PRINT COLUMNS AND LINES, RESPECTIVELY. ^ONCE A PAGE SIZE HAS9BEEN SPECIFIED, IT IS RETAINED UNTIL SPECIFICALLY CHANGED BY ANOTHER SWITCH SPECIFICATION..SKIP 1W .INDENT 5 A^THE /^P^AUSE SWITCH WILL CAUSE OUTPUT TO STOP AT THE END OF EACHI;PAGE. ^THE OUTPUT WILL BE RESTARTED WHEN SOMETHING IS TYPEDHTO THE COMMAND INPUT DATASET.F8^LIST-11 WILL PROMPT FOR THE INPUT BY TYPING THE SPECIALPROMPT:A.SKIP 1A^^LIST PAUSE>\\ .SKIP 1D@AFTER WHICH ANY INPUT IS LEGAL AND SERVES ONLY TO END THE PAUSE.@^A CONTROL-^Z AT A PAUSE ENDS THE CURRENT LISTING AND WILL CAUSE=^^LIST\\-11 TO PROMPT WITH ANOTHER "^L^I^S>" FOR A NEW SET OFOFILE SPECIFIERS..SKIP 1 .INDENT 5I=^THE /^E^D SWITCH WILL CAUSE THE TOP OF FORMS CHARACTER TO BE )CHANGED FROM A FORM FEED TO A CONTROL ^D.T.SKIP 1N .INDENT 5I8^THE /^R^O:N SWITCH CAUSES THE00$U%X&Z'[(\4 OUTPUT TO FORCE EACH PAGE2TO BE N LINES LONG. ^THIS IS INTENDED FOR USE WITH5ROLL PAPER. ^IN ADDITION, THE FORM FEEDS ARE REPLACEDN7BY A LINE OF "=" TO DELIMIT THE PAGES. ^BOTH THE SWITCHL&AND N MUST BE SPECIFIED FOR EACH FILE..SKIP 1C .INDENT 5T<^THE /^U^C SWITCH CAUSES LOWER CASE LETTERS TO BE TRANSLATED<TO THE CORRESPONDING UPPER CASE CHARACTERS. ^THIS IS HELPFUL=WHEN LISTING ON A DEVICE NOT CONTAINING THE FULL 96-CHARACTERT^^ASCII\\ CHARACTER SET..SKIP 1 >^THE /^N^P SWITCH CAUSES PAGINATION TO BE SUPPRESSED; THAT IS,?NO HEADERS ARE PRODUCED AND NO FORMFEEDS OR OTHER PAGE DIVIDERS =ARE INSERTED IN THE FILE. ^THIS MODE MAY BE USED (POSSIBLY INI:CONJUNCTION WITH THE /^^RL\\:NNN SWITCH) TO PRODUCE A FILEOF KNOWN MAXIMUM LINE WIDTH..SKIP 2E ^EXAMPLE:C.SKIP 1L .INDENT 2E ^^MCR>LIS .INDENT 2LIS>LP:=PROG.SRC/TR/CO:3 .INDENT 2C!MCR>LIS LP:=MANUAL.DOC/NH/FF/CO:2G.SKIP 1IC^T\\HE FIRST FILE, ^^DK:PROG.SRC\\, IS PRINTED ON THE LINE PRINTER,SIN A 3 COLUMNS PER PAGE FORMAT.P9^THE FILE ^^MANUAL.DOC\\ IS THEN PRINTED WITHOUT A HEADERE>AND EACH "PAGE" BEGINNING AT THE TOP OF THE NEXT COLUMN. ^THIS>IS USEFUL FOR LISTING ^^RUNOFF\\ OUTPUT FILES IN A TWO COLUMNSPER PAGE FORMAT.O PRODUCE A FILEOF KNOWN MAXIMUM LINE WIDTH..SKIP 2E ^EXAMPLE:C.SKIP 1L .INDENT 2E ^^MCR>LIS .INDENT 2LIS>LP:=PROG.SRC/TR/CO:3 .INDENT 2C!MCR>LIS LP:=MANUAL.DOC/NH/FF/CO:2G.SKIP 1IC^T\\HE FIRST FILE, ^^DK:PROG.SRC\\, IS PRINTED ON THE LINE PRINTER,SIN A 3 COLUMNS PER PAGE FORMAT.P9^THE; ; LOA.MAC;%; CALL LOA(ARRAY, NO. OF CHAR, CHAR)A; ARRAY IS THE NAME OF A LOGICAL*1 ARRAY OR LOGICAL*1 VARIABLE, /; THE 2ND ARGUMENT IS THE NUMBER OF CHARACTERSC; CHAR IS THE CHARACTER YOU WANT TO LOAD THE ARRAY WITH. COULD BEC; GIVEN ANY ONE OF THE FOLLOWING WAYS USING # SYMBOL AS AN EXAMPLE.; "43 OR '#' OR 35 (NOTE "43 MEANS OCTAL 43)E; OR YOU CAN DEFINE A LOGICAL*1 VARIABLE CALLED POUND AND THEN USE A+; DATA STATEMENT SUCH AS: DATA /POUND/'#'; OR MAKE A STATEMENT SUCH AS; POUND="43 OR POUND=35 "; NOTE: YOU CANNOT SAY POUND='#';II; THIS SUBROUTINE SUPERSEEDS THE SUBROUTINE SCLR FOR WHICH YOU USE ZEROEN*; AS THE CHARACTER TO FILL THE ARRAY WITH;C .TITLE LOAW .GLOBL LOAHLOA: MOV 2(R5),R0D MOV @4(R5),R11$: MOVB @6(R5),(R0)+  DEC R1G BGT 1$  RTS PCM .END "43 OR '#' OR 35 (NOTE "43 MEANS OCTAL 43)E; OR YOU CAN DEFINE A LOGICAL*1 VARIABLE CALLED POUND AND THEN USE A+; DATA STATEMENT SUCH AS: DATA /POUND/'#'; OR MAKE A STATEMENT S;; LOAINT.MAC;6; A SUBROUTINE TO LOAD AN ARRAY WITH A GIVEN INTEGERS;; CALL LOAINT(A,AMOUT,NUMBER) ; A IS THE ADDRESS OF THE ARRAY=; AMOUNT IS THE NUMBER OF POSITIONS TO FILL WITH THIS NUMBER2; NUMBER IS THE NUMBER TO BE PLACED IN THIS ARRAY .GLOBL LOAINT .TITLE LOAINT,LOAINT: MOV 2(R5),R0 ; GET ADDRESS OF ARRAY MOV @4(R5),R1310$: MOV @6(R5),(R0)+ ; PLACE A NUMBER IN POSITION DEC R1 BGT 10$ ; NO RETURN .END,LUT/RW/PR,LUT/CR/-SP=LUT,LB:[1,1]EXEC.STB/SS/ TASK=...LUTPRI=160// .TITLE LUT.SBTTL INTRO PAGE ; PROGRAM LUT LOGICAL UNIT TABLE; WRITTEN BY: FRANK PENNER ; JULY 1979; MOD BY : FRANK BORGER TO IAS ; SEPT 19797; THIS PRIVILEGED TASK WILL PEEK AT THE LUT TABLE OF AN6; ACTIVE, RESIDENT TASK AND DISPLAY VARIOUS AND SUNDRY ; INFORMATION;; CALLING SEQUENCE; ; MCR>LUT NNNNNN[/TI:TTNN] WHERE; NNNNNN=TASK NAME,; TTNN=TI OF TASK IF OTHER THAN YOUR OWN; .MCALL QIOW$,EXIT$S,DIR$,ALUN$ .MCALL F11DF$,CALL,RETURN,GMCR$ .MCALL FHDOF$00(]O !"TADATADATAR$$11D=1R$$IAS=1. F11DF$ ;DEFINE F11 OFSETS (VCB,FCB,WINDOW)7 FHDOF$ DEF$L ;DEFINE FILE-HEADER BLOCK OFFSETS LOCAL:.PAGEB.SBTTL DATA AREAS AND DPB'S GMCR: GMCR$E6 TSKNAM =GMCR+G.MCRB+4 ;START OF TYPED INPUT TASKNAME,TSKNAR: .BLKW 2 ;SPACE FOR RAD 50 TASKNAME-TSKATL: .WORD 0 ;SPACE FOR TASK ATL ADDRESS>"TINAME: .WORD 0 ;ASCII TI NUMBER"TINUMB: .WORD 0 ;OCTAL TI NUMBERLUN: ALUN$ DLUN,0,0O NUMLUN: .WORD 0 ;SAVE # OF LUNS=PDR4K: .WORD 77406 ;A 4K READ/WRITE PAGE DESCRIPTOR REGISTERD(SAVPAR: .WORD 0 ;SAVED AREA FOR OLD PAR(SAVPDR: .WORD 0 ;SAVED AREA FOR OLD PDR1SAVACP: .WORD 0 ;ACP STD ADDRESS FOR CURRENT LUND2FCPPAR: .WORD 0 ;PAGE ADDRESS REGISTER FOR FCPCOMFCPRAD: .RAD50 /FCP/#COMRAD: .RAD50 /COM/ ;RAD50 FCPCOMS)PAR3=60000 ;OFFSET TO USE PAR/PDR SET 3 !IOST: .BLKW 2 ;I/O STATUS BLOCKE4QIODPB: QIOW$ IO.WLB,TLUN,TEFL,,IOST,, TLUN= 5 TEFL= 2 VFC= 40OUTBUF: .BLKB 132.=READLB: QIOW$ IO.RLB,DLUN,DEFL,,IOST,,C DLUN= 1 DEFL= 1 BLKH= 0 BLKL= 1 LEN= 512.HEDBUF: .BLKB 512. MAX=20. ;MAX OF 20 LUNS;A;CONTENTS OFFSET SIZE R ;LUN 0. 2.;PTR TO DEV NAME 2. 2.;DEV NUMBER 4. 2.4;UIC 6. 4. (INIT CONTAINS ABS BL # OF FILE HEADER);FILE DESCRIPTOR 10. 10.;ACCESS COUNT 20. 2. ;# OF RETRIVAL POINTERS 22. 2.;WINDOW SIZE 24. 2.;FIRST BLOCK # 26. 4.;NUMBER OF BLOCKS 30. 2.7KLUDGE: .BLKW MAX ;1 OTHER WORD FOR ASCII DEVICE NAMEBA=KLUDGEX=1D-ARGBLK: ;ARGUMENT BLOCK FOR EDMSG ROUTINE= .REPT MAX .WORD X ;LOGICAL UNIT NUMBERX=X+1 1 .WORD A ;2ND WORD OF ARGBLK POINTS TO DEV NAMEEA=A+2F6 .BLKW 14. ;15. WORDS (TOTAL) FOR EACH ARGBLK PACKET .ENDR.PAGEU.SBTTL ASCII DATA & BUFFERS ,ISTRNG: .ASCII /%54<%47<%43<%38<%33<%16<%3%2A%O:[%O,%O]%16>%X%33>%M%38>%M%43>%M%47>%M%M%54>%M/HHED: .ASCII /LUN/<11><11><11>/ ACC RTV WIND FIRST # OF BLOCKS/ .ASCII <15><12>: .ASCII <11><11><11>/ CNT PTRS SIZE BLOCK MAPPED/ HEDS=.-HED .EVEN.PAGEN.SBTTL ASCII ERROR MESSAGESO4ERRMS0: .ASCII /*** LUT SYNTAX ERROR IN COMMAND ***/ ERRLN0=.-ERRMS0<ERRMS1: .ASCII /*** LUT TASK NOT ACTIVE AT SPECIFIED TI ***/ ERRLN1=.-ERRMS1AERRMS2: .ASCII /*** LUT TASK ON MRL (CAN'T READ TASK HEADER) ***/3 ERRLN2=.-ERRMS2EERRMS3: .ASCII /*** LUT CAN'T FIND PROPER ATL ADDRESS FOR FXXACP ***/. ERRLN3=.-ERRMS3 .EVEN.PAGEC".SBTTL GET AND DECODE COMMAND LINESTART: DIR$ #GMCR ;GET COMAND LINE / MOV #GMCR+2,R0 ;POINT TO START OF COMMAND LINE., MOV R0,R1 ;SET TO MAKE END OF LINE POINTER ADD @#$DSW,R1 ;HAVE END POINTER11$: CMPB (R0)+,#40 ;FOUND FIRST SPACE AFTER "INF"/ BEQ 2$ ;YEST CMP R0,R1 ;PAST END OF COMMAND BLE 1$ ;YESR99$: JMP ERROR ;NO, AN ERRORR2$: ;POINTING AT TASK NAME3! MOV #1,R1 ;. IS LEGAL CHARACTER/ JSR PC,$CAT5 ;CONVERT TO RAD 50 BCC 111$ ;BR IF OK* CMPB R2,#'/ ;TERMINATED ON / OF SWITCH ? BNE 111$ ;NO DEC R0 ;PUT R0 AT TERMINATOR/111$: MOV R1,TSKNAR ;FILL IN FIRST HALF OF NAME " MOV #1,R1 ;DO AGAIN FOR 2ND HALF JSR PC,$CAT5I BCC 222$ ;BR IF OK* CMPB R2,#'/ ;TERMINATED ON / OF SWITCH ? BNE 222$ ;NO DEC R0 ;PUT R0 AT TERMINATOR'222$: MOV R1,TSKNAR+2 ;FILL IN 2ND HALF & CMPB (R0),#'/ ;TERMINATED ON SWITCH ? BNE MYTI ;IF NOT USE MY TI INC R0 ;BUMP PAST "/"  CMPB (R0)+,#'T ;CHECK SYNTAXE BNE 99$ CMPB (R0)+,#'IR BNE 99$ CMPB (R0)+,#':I BNE 99$ MOVB (R0)+,TINAME ;SAVE NAMED MOVB (R0)+,TINAME+1+ JSR PC,$COTB ;CONVERT UNIT NUMBER TO OCTALL MOV R1,TINUMB ;SAVE TI NUMBER BR FINDTA ;AND FIND TASKMYTI: MOV .CRTSK,R0 ;GET MY TI$ MOV A.TI(R0),R0 ;GET MY PUD POINTER% MOV U.DN(R0),TINAME ;SAVE MY TI NAMEM! MOVB U.UN(R0),TINUMB ;AND NUMBER .PAGEH&.SBTTL SEARCH ATL FOR TASK IN QUESTION$FINDTA: ;NOW CAN SEARCH ATL FOR TASK# MOV #.ATLLH,R0 ;R0 POINTS AT ATLLH')LOOP: MOV (R0),R0 ;GET NEXT ATL LISTHEADR CMP R0,#.ATLLH ;THROUGH LIST ?E BNE 1$ ;BR IF NOTA JMP ERROR1 ;ELSE AN ERRORI1$: MOV A.TD(R0),R1 ;GET STD$ CMP S.TN(R1),TSKNAR ;DO NAMES MATCH BNE LOOP ;NO, TRY AGAI00(eX&Z'[(\4NA CMP S.TN+2(R1),TSKNAR+2 BNE LOOP ;NO TRY AGAIN MOV A.TI(R0),R1 ;GET TI POINTER# CMP U.DN(R1),TINAME ;DO TI'S MATCHM BNE LOOPN CMPB U.UN(R1),TINUMB ;LAST TEST BNE LOOP ;NO MATCH* MOV R0,TSKATL ;SAVE TASK ATL JUST IN CASE ;AND TRY TO MAP TO TASKR& CMP A.TS(R0),#TS.MRL ;IS TASK IN CORE BLT GETCOM ;YES, TRY( CMP A.TS(R0),#TS.MRR ;CHECK UPPER LIMIT BGT GETCOM ;YES, TRY* JMP ERROR2 ;NO, TASK IS ON MRL SO REPORTGETCOM: ;GET DATA FOR ACPCOMM! MOV #.GCDLH,R5 ;GET START OF GCDA(NXTCOM: MOV (R5),R5 ;GET NEXT/FIRST GCD CMP R5,#.GCDLH ;END OF GCD ?E BNE 99$ ;NO CHECK A GCD ENTRYA$ EXIT$S ;EXIT IF CAN'T FIND ACPCOM*99$: CMP G.BN(R5),FCPRAD ;IS THIS FCPCOM ? BNE NXTCOM ;NO& CMP G.BN+2(R5),COMRAD ;IS THIS FCPCOM BNE NXTCOM ;NO0 MOV G.BA(R5),FCPPAR ;YES, SAVE HIS CORE ADDRESS) MOV PDR4K,-(SP) ;MAP TO THE TASK HEADERE7 MOV A.HA(R0),-(SP) ;PDR FOR TASK IN QUESTION TO STACK - JSR PC,..SPD3 ;MAP PAR/PDR 3 TO TASK HEADERF4 MOV PAR3+H.LUT,R1 ;POINT R1 TO TASK LOG UNIT TABLE/ CMP R1,#MAX ;IS # OF LUNS GREATER THAN MAX ?L# BLE 1$ ;IF NOT GREATER THAN O.K. * MOV #MAX,R1 ;ELSE, SET # OF LUNS AT MAX51$: MOV R1,NUMLUN ;SAVE # OF LUNS FOR PRINT LATER ONE8 MOV #PAR3+H.LUT+2,R0 ;POINT R0 TO FIRST PUD/WINDOW PAIR/ MOV #ARGBLK,R2 ;POINT R2 TO TEMP STORAGE AREA .PAGED7.SBTTL SAVE DEV NAME, WINDOW BLOCK AND FCB FOR EACH LUNH,PROLOP: ;BEGIN PROCESSING OF DCB AND UCB ADD #2,R2 ;BUMP R2 OVER LUN #$ MOV (R0)+,R5 ;R5 NOW POINTS TO PUD BEQ 4$ ;BRANCH, IF NULL LUN CMP R5,#1 ;IS IT TI ? BNE 1$ ;NOA# MOV #"TI,@(R2)+ ;FAKE A TI DEVICEH5 CMP (R2)+,(R0)+ ;BUMP PAST DEVICE INFO IN ARG BLOCK$) BR 5$ ;AND PROCESS AS IF NO FILES OPENL*1$: MOV U.DN(R5),@(R2)+ ;SAVE DEVICE NAME0 MOVB U.UN(R5),(R2)+ ;PUT OCTAL DEV # IN BUFFER3 JSR PC,..REDS ;NOW FOLLOW RE-DIRECT CHAIN TO DISK 5 MOV U.ACP(R5),SAVACP ;SAVE ACP STD ADDRESS FOR LATERP TSTB (R2)+ ;WORD ALIGN AGAIN,, ;BEGIN PROCESSING OF WINDOW BLK AND FCB( MOV (R0)+,R4 ;POINT R4 TO WINDOW BLOCK' BEQ 5$ ;IF NULL THEN NO WINDOW BLOCK 0 CMP R4,#100000 ;IS THIS WINDOW BLOCK IN SCOM ?+ BLO 12$ ;NO, ITS IN FCPCOM, SO RE-MAP USL, JSR PC,WBSAV ;YES - SAVE WINDOW BLOCK INFO+ MOV W.FCB(R4),R5 ;AND GET FCB ADDRESS NOWE" BR 66$ ;BRANCH TO SAVE FCB INFO512$: CMP R4,#60000 ;IS WINDOW BLOCK IN FCPCOM OR ACPH, BLO 11$ ;BRANCH IF IT'S IN THE FCP ITSELF$ JSR PC,SWAFCP ;ELSE SWAP TO FCPCOM BR 13$G$11$: JSR PC,SWAACP ;SWAP TO THE ACP1 ADD #60000,R4 ;AND FAKE OUT SO WE USE PAR/PDR 3W*13$: JSR PC,WBSAV ;SAVE WINDOW BLOCK INFO$ MOV W.FCB(R4),R5 ;SAVE FDB ADDRESS' JSR PC,RESTAS ;RESTORE TO TASK HEADERF 66$: TST R5 ;CHECK FCB POINTER BEQ 5$ ;IF NULL THEN NO FCB' CMP R5,#100000 ;IS THIS FCB IN SCOM ? * BLO 2$ ;NO, ITS IN FCPCOM, SO RE-MAP US1 JSR PC,FCBSAV ;YES - SAVE FCB BLOCK INFORMATIONH# BR 6$ ;BRANCH TO END OF SOB LOOPC42$: CMP R5,#60000 ;IS THIS FCB IN FCPCOM OR THE ACP$ BLO 21$ ;BRANCH IF ITS IN THE ACP JSR PC,SWAFCP ;SWAP TO FCPCOM  BR 22$ $21$: JSR PC,SWAACP ;SWAP TO THE ACP4 ADD #60000,R5 ;AND FAKE THINGS SO WE USE PAR/PDR 3"22$: JSR PC,FCBSAV ;SAVE FCB INFO% JSR PC,RESTAS ;RESTORE BACK TO TASKR# BR 6$ ;BRANCH TO END OF SOB LOOPP4$:1: MOV #20040,@(R2)+ ;PUT 2 SPACES IN ASCII DEV NAME BUFFER2 CMP (R2)+,(R0)+ ;BUMP PAST DEVICE INFO IN ARGBLK5$:O/ ADD #16.,R2 ;BUMP POINTER PAST FCB SAVE AREA$6$: 3 ADD #10.,R2 ;SKIP ALREADY PUT IN ARGBLK RTV PTRS$ DEC R1 ;COUNT A LUN BLE 99$ ;BR IF DONE JMP PROLOP ;GO BACK FOR MORER99$:.PAGES*.SBTTL ASSEMBLE AND PRINT FILE INFORMATION ;END OF GATHERING INFO: ;BEGIN PRINTOUT. DIR$ #QIODPB ;PRINT OUT HEADING ON TERMINAL? MOV #OUTBUF,QIODPB+Q.IOPL ;PUT ADDRESS OF OUT BUFFER IN QIODPB 7 MOV #ARGBLK,R2 ;PUT ADDRESS OF ARGBLK IN R2 FOR EDMSG - MOV NUMLUN,R3 ;# OF LUNS IN R3 FOR SOB LOOP6PRTLOP:U* CLR R0 ;USE R0 AS FLAG FOR NO FILE SPEC! ADD #2,R2 ;BUMP TO DEVICE NAMEK< MOV @(R2)+,LUN+A.LUNA ;PUT ASCII DEV NAME IN ATTACH LUN DPB: MOV (R2)+,LUN+A.LUNU ;PUT BIN00(mO !"TADATADATAARY UNIT # IN ATTACH LUN DPB4 MOV (R2)+,READLB+Q.IOPL+6. ;PUT HIGH BLOCK # IN DPB% BNE 1$ ;IF NOT ZERO DON'T SET FLAGP' MOV #1,R0 ;SET FLAG FOR NO FILE SPEC#;1$: MOV (R2),READLB+Q.IOPL+8. ;PUT OTHER LOW BLOCK # IN DPBM BNE 2$ ;A FILE SPEC SO BRANCH TST R0 ;WAS FLAG SET?% BEQ 2$ ;NOT SET SO VALID FILE SPECO5 SUB #8.,R2 ;BUMP BACK R2 TO POINT TO START OF PACKC BR 4$ ;SKIP FILE SPEC STUFF'2$: TST -(R2) ;BACK UP ARGBLK POINTERE. DIR$ #LUN ;ASSIGN DISK LUN TO PROPER DEVICE' DIR$ #READLB ;READ FILE HEADER BLOCKV3 MOVB HEDBUF+H.PROJ,(R2)+ ;PUT PROJECT # IN ARG BLKE2 MOVB #0,(R2)+ ;ROUND ARGBLK POINTER TO EVEN WORD6 MOVB HEDBUF+H.PROG,(R2)+ ;PUT PROGRAMMER # IN ARG BLK2 MOVB #0,(R2)+ ;ROUND ARGBLK POINTER TO EVEN WORD5 MOV #HEDBUF+S.HDHD,R0 ;PUT ADDRESS OF FILESPEC IN R0S. MOV #5,R1 ;PUT # OF WORDS TO TRANSFER IN R183$: MOV (R0)+,(R2)+ ;FILESPEC FROM HEADER BLK TO ARGBLK SOB R1,3$ ;DO WHOLE FILESPECG/ SUB #20.,R2 ;RESET R2 TO BEGINNING OF PACKETO74$: MOV #OUTBUF,R0 ;ADDRESS OF OUTPUT BUFFER FOR EDMSGV( MOV #ISTRNG,R1 ;INPUT STRING FOR EDMSG) CALL $EDMSG ;CALL EDIT MESSAGE ROUTINEE1 MOV R1,QIODPB+Q.IOPL+2 ;SIZE OF MESSAGE TO PRINTR+ DIR$ #QIODPB ;PRINT OUT INFO ON TERMINALG# SOB R3,PRTLOP ;PRINT OUT ALL LUNSF EXIT: EXIT$S.PAGES.SBTTL ERROR HANDLINGM;#;1&ERROR: ;COMMAND STRING SYNTAX ERROR MOV #ERRMS0,QIODPB+Q.IOPL MOV #ERRLN0,QIODPB+Q.IOPL+2 BR ERRCOM;WERROR1: ;TASK NOT IN ATL  MOV #ERRMS1,QIODPB+Q.IOPL MOV #ERRLN1,QIODPB+Q.IOPL+2 BR ERRCOM;T/ERROR2: ;TASK ON MRL SO HEADER NOT AVAILABLEG MOV #ERRMS2,QIODPB+Q.IOPL MOV #ERRLN2,QIODPB+Q.IOPL+2 BR ERRCOM;I0ERROR3: ;COULDN'T FIND PROPER ACP ATL ADDRESS MOV #ERRMS3,QIODPB+Q.IOPL MOV #ERRLN3,QIODPB+Q.IOPL+2;L#ERRCOM: DIR$ #QIODPB ;REPORT ERRORR EXIT$S ;AND LEAVE.PAGE ,.SBTTL SAVE WINDOW BLOCK AND FCB SUBROUTINES=;ENTER BOTH ROUTINES WITH R2 OFFSET 4. BYTES INTO DATA BUFFERO%WBSAV: ;SAVE WINDOW BLOCK ROUTINEQ0 ADD #16.,R2 ;POINT TO RETRIVAL PTRS IN ARGBLK, MOVB W.CTL(R4),R3 ;PUT # OF RTV PTRS IN R3+ MOV R3,(R2)+ ;PUT # OF RTV PTRS IN ARGBLKV' MOVB W.WISZ(R4),R3 ;WINDOW SIZE IN R3) MOV R3,(R2)+ ;PUT WINDOW SIZE IN ARGBLKD/ MOVB W.VBN(R4),R5 ;PUT HIGH BYTE OF VBN IN R5O. MOV R5,(R2)+ ;PUT HIGH WORD OF VBN IN ARGBLK2 MOV W.VBN+2(R4),(R2)+ ;PUT LOW WORD VBN IN ARGBLK3 CLR (R2) ;CLEAR ARGBLK SUM OF # OF MAPPED BLOCKSW$ TST R3 ;R3 HAS # OF RETRIVAL PTRS( BEQ 2$ ;IF ZERO THEN SKIP SOB ROUTINE3 CLR -(SP) ;USE STACK FOR BYTE TO WORD CONVERSIONM, MOV R4,R5 ;PUT WINDOW BLOCK ADDRESS IN R55 ADD #W.RTRV,R5 ;POINT R5 TO FIRST RETRIEVAL POINTERZ51$: ADD (R5),(R2) ;ADD COUNT TO TALLY OF # OF BLOCKSW% ADD #6,R5 ;POINT TO NEXT VBN COUNTP! SOB R3,1$ ;DO ALL THE RTV PTRS,! TST (SP)+ ;RESET STACK POINTERB42$: SUB #24.,R2 ;POINT R2 BACK TO FILE SPEC ARGBLK+ RTS PC ;END OF WINDOW BLOCK SAVE ROUTINED;O;W FCBSAV: ;SAVE FCB SUBROUTINE9 MOV F.HDLB(R5),(R2)+ ;SAVE HIGH HEADER-BLOCK # IN ARGBLK 8 MOV F.HDLB+2(R5),(R2)+ ;SAVE LOW HEADER-BLK # IN ARGBLK( ADD #10.,R2 ;SKIP 10 WORDS OF ARG BLK3 MOVB F.NACS(R5),(R2)+ ;SAVE ACCESS COUNT IN ARGBLKR3 TSTB (R2)+ ;POINT ARGBLK TO WORD AND NEXT PACKET,% RTS PC ;END OF SAVE FCB SUBROUTINE,; .PAGEL,.SBTTL SUBS TO SWAP TO FCPCOM AND BACK AGAIN.SWAFCP: MOV PDR4K,-(SP) ;SET TO MAP TO FCPCOM+ MOV FCPPAR,-(SP) ;WITH PREV SAVED ADDRESSV JSR PC,..SPD3 ;SWAP PAR/PDR 3S. MOV (SP)+,SAVPAR ;SAVE PAR AND RESTORE STACK. MOV (SP)+,SAVPDR ;SAVE PDR AND RESTORE STACK RTS PC ;AND RETURNR;K/RESTAS: MOV SAVPDR,-(SP) ;PUT OLD PDR ON STACKG( MOV SAVPAR,-(SP) ;PUT OLD PAR ON STACK, JSR PC,..SPD3 ;AND SWAP BACK TO OLD VALUES$ CMP (SP)+,(SP)+ ;AND RESTORE STACK RTS PC ;AND RETURNN;*;IF ITS THE ACP WE HAVE A LITTLE MORE WORK;ASWAACP: MOV R0,-(SP)# MOV #.ATLLH,R0 ;R0 POINTS AT ATLLHM'1$: MOV (R0),R0 ;GET NEXT ATL LISTHEADV CMP R0,#.ATLLH ;THROUGH LIST ?S BNE 2$ ;NO, OK JMP ERROR3A42$: CMP A.TD(R0),SAVACP ;IS THIS CORRECT ATL ENTRY ? BNE 1$ ;NO00(u)v*w+y\4, TRY AGAIND) MOV A.HA(R0),R0 ;YES, GET ADDRESS OF FCPT' ADD #4,R0 ;F12ACP HEADER IS 400 BYTESU& MOV PDR4K,-(SP) ;SET TO MAP TO FXXACP MOV R0,-(SP)L JSR PC,..SPD3 MOV (SP)+,SAVPAR ;SAVE PARK MOV (SP)+,SAVPDR ;AND PDR MOV (SP)+,R0C RTS PC .END START WORK;ASWAACP: MOV R0,-(SP)# MOV #.ATLLH,R0 ;R0 POINTS AT ATLLHM'1$: MOV (R0),R0 ;GET NEXT ATL LISTHEADV CMP R0,#.ATLLH ;THROUGH LIST ?S BNE 2$ ;NO, OK JMP ERROR3A42$: CMP A.TD(R0),SAVACP ;IS THIS CORRECT ATL ENTRY ? BNE 1$ ;NO.ENABLE SUBSTITUTION.A: .ASKS S NAME OF PROGRAM MAC 'S'='S'TKB @'S'PIP 'S'.OBJ;*/DEPIP 'S'.TSK/PU.GOTO AC10 ! MASTER.BAS PROGRAM TO SELECT MASTER.INF FILE MANIPULATION PGMS 11 CLEAR !20 PRINT " AVAILABLE OPTIONS ARE"430 PRINT "C CHANGE ACCOUNTING OR DESCRIPTOR FOR UIC"40 PRINT "L LIST FILE"%50 PRINT "I INSERT NEW UIC INTO FILE"!60 PRINT "D DELETE UIC FROM FILE" 70 PRINT 75 IF END GOTO 200980 INPUT "CHANGE, LIST, INSERT, OR DELETE (C,L,I,D) ";Z1$85 PRINT CHR$(12) 90 IF Z1$="C" THEN RUN "UPDMAS"!100 IF Z1$="L" THEN RUN "LISMAS"!110 IF Z1$="I" THEN RUN "INSMAS"!120 IF Z1$="D" THEN RUN "DELMAS"A 130 GOTO 80S&200 CALL "SPAWNB"("PIP MASTER.INF/PU") 220 EXIT 230 END " AVAILABLE OPTIONS ARE"430 PRINT "C CHANGE ACCOUNTING OR DESCRIPTOR FOR UIC"40 PRINT "L LIST FILE"%50 PRINT "I INSERT NEW UIC INTO FILE"!60 PRINT "D DELETE UIC FROM FILE" 70 PRINT 75 IF END GOTO 200980 INPUT "CHANGE, LIST, INSERT, OR DELETE (C,L,I,D) ";Z1$85 PRINT CHR$(12) 90 IF Z1$="C" THEN RUN "UPDMAS"!100 IF Z1$="L" THEN RUN "LISMAS"!110 IF Z1$="I" THEN RUN "INSMAS"!120 IF Z1$="D" THE[ 1, 6] 2ERROR LOGGING ACCOUNT [ 1, 10] 2TASK IMAGES - FRANK'S HANDLERS & SYSTEM PROGRAMS [ 1, 11] 2STORAGE SCOPE DRIVER AND ASSOCIATED PROGRAMS [ 1, 12] 2INFORM PACKAGE [ 1, 13] 2DISK AND MAG-TAPE HANDLERS [ 1, 14] 2PRINTER/PLOTTER SOFTWARE [ 1, 15] 2PAPER TAPE, CARD READER, DUMMY HANDLERS [ 1, 16] 2XMT INTER-CPU PROGRAM [ 1, 17] 2SPR REPORTING [ 1, 20] 2NORTHWEST MEDICAL DRIVER DEVELOPMENT [ 1, 21] 2CALC --- CALCULATOR PROGRAM [ 1, 23] 2DDT, RENUMB, CREF, ETC [ 1, 27] 2HARDWARE DIAGNOSTICS [ 1, 40] 2LUT, FCB PROGRAMS [ 1,101] 2PISYM.OBJ [ 1,202] 2IAS BASIC [ 2, 21] 2SORT [ 11, 2] 2??? [ 11, 4] 2FLX [ 11, 5] 2PIP, VFY, ZAP, DMP, VFY [ 11, 6] 2SLIPER [ 11, 7] 2LIBRARIAN [ 11, 10] 2MACRO [ 11, 11] 2TASK BUILDER [ 11, 12] 2SPOOLER, INCL QUE, OPR [ 11, 13] 2MODIFIED DEC PROGRAMS, HEL, BYE, MCR,00+}O !"TADATADATA ETC [ 11, 14] 2DEC HANDLERS [ 11, 15] 2EXEC BUILDING AND PATCHING [ 11, 16] 2F11ACP ETC [ 11, 17] 2SYSGEN FILES [ 11, 20] 2EDI, EDT [ 11, 21] 2VERSION 3.0 EDT AND EDI [ 11, 23] 2BATCH [ 11, 26] 2ACCOUNT LOGGING (11D) [ 11, 27] 2ERROR LOGGING [ 11, 30] 2DSC & PRE [ 11, 32] 2CRF [ 11, 36] 2FORTRAN 4 PLUS [ 11, 37] 2F4P EIS MODULES [ 11, 40] 2F4P FPP MODULES [ 11, 41] 2FORTRAN V1C [ 11, 42] 2FORTRAN V1C RESIDENT LIB [ 11,100] 2PDS/PDX [ 11,103] 2CRASH DUMP ANALYZER [ 11,114] 2TT HANDLER OBJECTS [ 11,117] 2KED & K52 EDITORS [ 12, 1] 2TKB.TSK [ 70, 0] 2PASCAL [200, 1] 2NORTHWEST COMM. HOSP. TRANSFER ACCOUNT [200,111] 2MULELE WITH CONTOUR CORRECTIONS [251,200] 2FORTRAN 4-PLUS PATCHES [300, 1] 2LUG LIBRARY [300, 21] 2PATCHES TO BASIC FROM SIG TAPE [300, 23] 2OBJECT CODE DISSASEMBLER (LUG LIBRARY SUBMISSION) [300, 24] 2DOB AND ORCAM [300, 52] 2LUG ??? [300, 54] 2LUG ??? [300,200] 2SPRING 80 DECUS PROGRAMS [301,200] 2SORT VERSION 2 PATCHES [311, 2] 2VT55 PLOTTING [311, 12] 2SPOOLER AND QUX [311, 13] 2ORIGINAL DEMO [311, 14] 2HANDLER SOURCES [311, 15] 2EXEC SOURCES [311, 17] 2EXEC SOURCES [311, 24] 2REESE VERSION OF SRD [311, 25] 2GENERAL UNSUPPORTED UTITITIES [311, 26] 2RUNOFF [311, 27] 2STAR TREK [311,100] 2SHORT PDS/PDX IDENTIFICATION MACRO [311,101] 2IAS MACRO SOURCES [311,107] 2IAS MACRO SOURCES [311,114] 2TTY HANDLERS SOURCES [312,331] 2PACMAN [314, 4] 2MISC RATFOR THINGS [314, 6] 2RATFOR [314, 7] 2RATFOR STRING LIBRARY 00+,-./04 [321, 3] 2SUPMAC [330, 15] 2RATFIV FORTRAN PRE-PROCESSOR [360,200] 2VARIOUS MACRO LIBRARIES ETC [360,210] 2FILE DUMPER, ETC [314, 6] 2RATFOR [314, 7] 2RATFOR STRING LIBRARY 55 ! PROGRAM TO COPY BIG MASTER FILE TO FRANKS ACCOUNT 10 DIM A$[80](20 OPEN #3,"[1,1]MASTER.INF/FX/LN:80/RO"#30 OPEN #4,"MASTER.INF/FX/LN:80/WR"40 IF END #3 THEN 10050 INPUT LINE #3,A$60 I=VAL(SBS$(A$,11,1))70 IF I=2 THEN PRINT #4,A$ 90 GOTO 50 100 CLOSE7.; INDIRECT COMMAND FILE TO MOVE FILES FOUND BY "FILES"L.;.ENABLE SUBSTITUTION.SETS SEMI ";".SETS COLON ":"b.;$.; What device are we talking about?; .5: .ASKS DEV ENTER DEVICE (DD:).SETN DLEN t.SETS COL DEV[DLEN:DLEN].IF COL EQ COLON .GOTO 10m;l; Device must include the ":"w;h.GOTO 5d.;.10:;F'.ASKS OUIC ENTER OWNER''S UIC (OMIT [])D.SETN ULEN .IF ULEN EQ 0 .SETN SAME 1.IF ULEN EQ 0 .GOTO 20.SETS UIC OUIC .SETN SAME 0.20:;8".ASKS FSPEC ENTER FILENAME.TYP;VER.SETN LEN .;#.; NOW STRIP OFF THE VERSION NUMBERI.;.25:.SETS TWO FSPEC[LEN:LEN].IF TWO EQ SEMI .GOTO 30.DEC LEN.IF LEN GT 0 .GOTO 25 ; *; Filespec must contain a specific version.GOTO 20.;.30:.SETS NAME FSPEC[1:LEN-1]1.;.;.; NOW WE CAN MOVE THE FILEw;h.IF SAME EQ 0 SET /UIC=['UIC']PIP 'DEV'/NV/CD='DEV''FSPEC'PIP 'DEV''FSPEC'/DELPIP 'DEV''FSPEC'/RE='DEV''NAME'.GOTO 10/ .GOTO 20.SETS UIC OUIC .SETN SAME 0.20:;8".ASKS FSPEC EN;+,; MOVTC -- GET TERMINAL CHARACTERISTIC FIELD;<; THIS MACRO IS USED TO EXTRACT A SEVERAL-BIT FIELD FROM THED; CHARACTERISTICS INFORMATION. SUCH FIELDS WILL NORMALLY BE ALIGNED>; AT THE START OF A BYTE SO THAT NO SHIFTING IF NECESSARY, BUT>; IF THE FIELD IS NOT GUARANTEED TO BE THERE AN EXTRA ARGUMENR2; MUST BE SUPPLIED SO THAT THE SHIFT IS GENERATED.;-  .MACRO MOVTC CHAR,DST,SHIFT0 .NTYPE $$$,DST ;; CHECK THAT DST IS A REGISTER .IF NE,$$$&70( .ERROR; MOVTC - 'DST' IS NOT A REGISTER .MEXITO .ENDC9 MOVB T.C'CHAR+T.TCHR(R4),DST ;; GET THE APPROPRIATE BYTET .IF NB,SHIFTE/ ASH #-T$C'CHAR,DST ;; SHIFT TO THE RIGHT PLACET .ENDC, BIC #^C,DST ;; CLEAR OUT THE REST .ENDM MOVTC SO THAT NO SHIFTING IF NECESSARY, BUT>; IF THE FIELD IS NOT GUARANTEED TO BE THERE AN EXTRA ARGUMENR2; MUST BE SUPPLIED SO THAT THE SHIFT IS GENERATED.;-  .MACRO MOVTC CHAR,DST,SHIFT0 .NTYPE $$$,DST ;; CHECK THAT DST IS A REGISTER .IF NE,$$$&70( .ERROR; MOVTC - 'DST' IS NOT A REGISTER C MTIME.FTNCDC FUNCTION TO CONVERT NORMAL TIME TO MILITARY TIME. BY NORMAL TIME'C IT IS MEANT, MINUTES SINCE MIDNIGHT.C INTEGER FUNCTION MTIME(NTIME) INTEGER HOUR HOUR=NTIME/60. MTIME=40*HOUR+NTIME RETURN END C NTIME.FTNCDC A FUNCTION TO CONVERT MILITARY TIME TO NORMAL TIME (MINUTES SINCE C MIDNIGHTC INTEGER FUNCTION NTIME(MTIME) INTEGER MTIME ! MILITARY TIME INTEGER HOUR HOUR=MTIME/100. NTIME=MTIME-40*HOUR RETURN END0012 !"TADATADATAPAG/-FP/MU=PAG/ TASK=...PAG ASG=TI:2:3ACTFIL=3// .TITLE PAG .IDENT /MRH001/, .MCALL FINIT$,FSRSZ$,QIOW$,DIR$,CALL,RETURN, .MCALL OPEN$W,OPEN$,OPEN$R,GET$,PUT$,CLOSE$2 .MCALL CSI$,CSI$1,CSI$2,CSI$SW,GMCR$,EXIT$S,GTIM$( .MCALL GCML$,RCML$,GCMLB$,PRINT$,CSI$ND* .MCALL FDBDF$,FDAT$A,FDRC$A,FDOP$A,FDBF$A .MCALL FDOP$R,NMBLK$;+;; PAG PAGINATE LISTING PROGRAM;8; PROVIDES LISTINGS OF PROGRAMS ETC ON A PAGINATED BASIS9; HEADER LINES CONTAIN DEVICE, UIC NAME ETC AND DATE TIME;8; LISTING A MAX OF 55 LINES/PAGE SO DONT PRINT OVER FOLD;;CALLING SEQUENCEN;M";MCR>PAG[ELIST] DEV:[UIC]NAME.TYPE;$0; OPTIONAL SWITCH "/TA" PUTS LEADING TAB IN FOR3; USE WITH LP1 SO CAN PUNCH AND PUT IN RING BINDERS;I;OR.;L3;MCR>PAG[ELIST] DEV:[UIC]NAME.TYP=DEV:[UIC]NAME.TYPA;,9;IF NO OUTPUT FILE SPEC IS GIVEN, THE OUTPUT DEFAULTS TO: ;I ;SY:NAME.LST;R-;AND THE FILE IS AUTOMATICALLY SPOOLED TO LP:A;G;T1;FOR OBVIOUS REASONS, NO WILD CARDS ARE SUPPORTEDT;N;A ; F. BORGER; MICHAEL REESE MEDICAL CENTERS;O; FEB 27 1980;;; EVF'S AND LUNS;MOUTLUN =1 ;OUTPUT FILE LUNOUTEVF =1 ;AND EVF;ATILUN =2 ;TERMINAL IO LUN TIEVF =2 ;AND EVFW; TIFLUN =3 ;TERMINAL "FILE" LUNTIFEVF =3 ;AND EVF; INFLUN =4 ;THE FIRST IN-FILE LUNINFEVF =4 ;AND EVF  .SBTTL MAIN LINE CODE0START: FINIT$ ;SET UP FOR FILE IO FOR FILE I/O) JSR PC,.RDFUI ;GET UIC I'M RUNNING UNDERL# MOV R1,UIC ;SAVE THE UIC (BINARY)O; $ GCML$ #GCBLK ;GET THE COMMAND LINE9 CMPB #GE.EOF,GCBLK+G.ERR ;END OF FILE ON COMMAND INPUT ?2 BNE 5$ ;NO EXIT$S ;YES, QUIT(5$: TSTB GCBLK+G.ERR ;ANY OTHER ERRORS ? BPL 6$ ;NO- DIR$ #ERPRI ;REPORT COMMAND LINE FILE ERROR DIR$ #CMDERRR EXIT$SL56$: MOV #1,INPFLG ;SET FLAG THAT INPUT FILE SPEC SEEN-" ;FILL IN POINTERS IN CSI BLOCK" MOV GCBLK+G.CMLD+2,CSBLK+C.CMLD+2 MOV GCBLK+G.CMLD,CSBLK+C.CMLD CSI$1 #CSBLK ;AND PARSE IT2 CSI$2 #CSBLK,INPUT,#SWITCH ;TRY FOR AN INPUT SPEC* BITB #CS.NMF,C.STAT(R0) ;WAS INPUT SPEC'D BNE 7$ ;BR IF IT WAS. CLR INPFLG ;ELSE CLEAR FLAG THAT SAYS IT WAS8 CSI$2 #CSBLK,OUTPUT ;DEFAULT TO FILE SPEC TO BE SPOOLED27$: BITB #CS.DIF,C.STAT(R0) ;DID THEY SPEC A UIC ? BEQ 22$ ;NOO. MOV #CSBLK+C.DIRD,R2 ;YES POINT TO DESCRIPTOR MOV #UIC,R3 ;PLACE TO STORE IT. JSR PC,.ASCPP ;CONVERT STRING TO OCTAL NUMBER.22$: BITB #CS.NMF,C.STAT(R0) ;IS A NAME GIVEN? BNE 4$ ;YESI DIR$ #ERPRI DIR$ #NAMERRI EXIT$S,@4$: FDOP$R #INFDB,,#CSBLK+C.DSDS ;FILL IN FILE NAME TO BE LISTED OPEN$R #INFDB ;AND OPEN IT  BCC 44$ ;BR IF OK;" DIR$ #ERPRI ;ELSE REPORT PROBLEM DIR$ #NAMERRP EXIT$SL)44$: ;CHANGE OUTPUT FILE TYPE TO "LSTD2 MOV CSBLK+C.DSDS+10,R1 ;GET LENGTH OF NAME STRING MOV R1,NAMLEN ;SAVE LENGTH" MOV CSBLK+C.DSDS+12,R2 ;AND START5441$: CMPB (R2)+,#'. ;FOUND THE "." IN THE FILE NAMEA BEQ 442$ ;YES SOB R1,441$ ;NO, GET ANOTHERI3 ;HAD TO HAVE . TO OPEN INPUT FILE SO ASSUME OKE1442$: MOVB #'L,(R2)+ ;OVERWRITE "TYP" WITH "LST"I MOVB #'S,(R2)+T MOVB #'T,(R2)+B! MOV NAMLEN,R1 ;GET LENGTH AGAINO" MOV CSBLK+C.DSDS+12,R2 ;AND START$ MOV #NAMSAV,R3 ;POINT TO SAVE AREA)444$: MOVB (R2)+,(R3)+ ;SAVE NAME STRINGB SOB R1,444$+ TST INPFLG ;WAS THERE AN INPUT FILE SPEC ( BEQ 333$ ;IF NOT, DEFAULT TO NAME.LST+ CSI$2 #CSBLK,OUTPUT ;GET OUTPUT FILE NAMEI/ BITB #CS.DIF,C.STAT(R0) ;DID THEY SPEC A UIC ?  BEQ 222$ ;NOI. MOV #CSBLK+C.DIRD,R2 ;YES POINT TO DESCRIPTOR! MOV #UIC,R3 ;PLACE TO STORE ITW/ JSR PC,.ASCPP ;CONVERT STRING TO OCTAL NUMBER'/222$: BITB #CS.NMF,C.STAT(R0) ;IS A NAME GIVEN?V BNE 333$ ;BRANCH IF N002-./04AME OK! MOV NAMLEN,R1 ;GET LENGTH AGAINA+ MOV CSBLK+C.DSDS+12,R2 ;POINT TO CSI BLOCK$ MOV #NAMSAV,R3 ;POINT TO SAVE AREA,244$: MOVB (R3)+,(R2)+ ;RESTORE NAME STRING SOB R1,244$D333$: FDOP$R #OUTFDB,,#CSBLK+C.DSDS ;FILL IN FILENAME OF OUTPUT FILE OPEN$W #OUTFDB ;AND OPEN IT BCC 2$ ;BR IF OPEN WENT& DIR$ #ERPRI ;TELL HIM FILE PROBLEMS DIR$ #FILERRC& JMP DIE ;AND CLOSE INPUT, THEN EXIT;R .SBTTL TRANSFER TO LISTING FILE2$:S! DIR$ #GETTIM ;GET DATE AND TIME3  MOV #1,PAGE ;SET PAGE # TO 1D MOVB INFDB+F.FNB+N.UNIT,DEVNUM ;FILL IN DEVICE UNIT NUMBER IN BLOCK"REGO: MOV #EDBLK,R0 ;SET FOR EDMSG& MOV #HDRME0,R1 ;ADDRESS OF INPUT LINE TST TABFLG ;WANT LEADING TAB ? BEQ 11$ ;BR IF NOT# MOV #HDRMEA,R1 ;ELSE CHANGE FORMATO&11$: MOV #HDRBF0,R2 ;ADDRESS OF BUFFER JSR PC,$EDMSG ;FILL IN NAME" MOV #HDRME1,R1 ;ADDRESS OF BUFFER MOV #PAGE,R2 ;ADDRESS OF BUFFER JSR PC,$EDMSG ;FILL IN PAGE #" SUB #EDBLK,R0 ;GET LENGTH OF XFER& MOV R0,OUTFDB+F.NRBD ;TELL SYS LENGTH/ PUT$ #OUTFDB,#EDBLK ;PUT THE FIRST HEADER LINET( MOV #EDBLK,R0 ;ADDRESS OF OUTPUT BUFFER& MOV #EDMES0,R1 ;ADDRESS OF INPUT LINE TST TABFLG ;WANT LEADING TAB ? BEQ 12$ ;NOL" MOV #EDMESA,R1 ;CHANGE INPUT LINE*12$: MOV #EDBUF,R2 ;ADDRESS OF DATA BUFFER! JSR PC,$EDMSG ;DO DEVICE AND UIC ) MOV #EDMES1,R1 ;POINT TO 2ND DECODE LINE#$ MOV #EDBUF1,R2 ;AND 2ND DATA BUFFER$ JSR PC,$EDMSG ;DO NAME.TYPE;VERSION* MOV #EDMES2,R1 ;POINT TO LAST DECODE LINE% MOV #EDBUF2,R2 ;AND LAST DATA BUFFER ) JSR PC,$EDMSG ;AND DO DATE, TIME, PAGE #I2 SUB #EDBLK,R0 ;SUB START OF RESULTANT HEADER LINE" CLR R5 ;CLEAR LINES/PAGE COUNTER2 MOV R0,OUTFDB+F.NRBD ;SET LENGTH OF VARIABLE LINE2 PUT$ #OUTFDB,#EDBLK ;PUT OUT VARIABLE HEADER LINE)IN: GET$ #INFDB,#BUF1,#132. ;GET A RECORDP& CMPB INFDB+F.ERR,#IE.EOF ;END OF FILE BEQ DONE ;YES TST INFDB+F.ERR ;NOD BPL 333$ ;IF PLUS OKF DIR$ #ERPRI DIR$ #FILERRY JMP DONE ;AND EXIT2;333$: MOV INFDB+F.NRBD,OUTFDB+F.NRBD ;TRANSFER SIZE OF LINEA1 ADD TABFLG,OUTFDB+F.NRBD ;ADJUST FOR LEADING TABI# TST TABFLG ;IS THERE LEADING TABA BEQ 335$ ;NOC PUT$ #OUTFDB,#BUF0 ;YESU BR 336$-335$: PUT$ #OUTFDB,#BUF1 ;AND PUT THE RECORD336$: BCC 334$ ;BR IF OKU DIR$ #ERPRI DIR$ #FILERRE JMP DONE ;AND EXIT334$: INC R5 ;COUNT A LINE.! CMP R5,#54. ;NEAR END OF PAGE ?  BLT IN ;NO, JUST DO NEXT LINEB CLR R5 ;YES, CLEAR COUNTER( INC PAGE ;INC PAGE NUMBER FOR PRINTOUT# JMP REGO ;PRINT HEADER LINE AGAIN.DONE: ;NORMAL EXITL TST INPFLG ;SPOOL THE OUTPUT ?) BNE 1$ ;NOT IF TWO FILES WERE SPECIFIEDH& PRINT$ #OUTFDB ;SPOOL THE FILE TO LP BR DIE ;AND QUIT91$: CLOSE$ #OUTFDB ;CLOSE THE OUTPUT FILE IF NOT SPOOLED%DIE: CLOSE$ #INFDB ;CLOSE INPUT FILEP EXIT$S ;AND EXITJ D .SBTTL FDB'S .SBTTL INPUT FDB;L;.; THE INPUT FILE; !INFDB: FDBDF$ ;DEFINE FDB BLOCKD$ FDAT$A R.VAR,FD.CR ;FILE ATTRIBUTES FDRC$A ,BUF1,132. ;RECORD FDOP$A INFLUN ;FILE NAME FDBF$A INFEVF ;EVF;I;;E;  .SBTTL OUTPUT FDBI;L;;; THE OUTPUT FDB;B;1"OUTFDB: FDBDF$ ;DEFINE FDB BLOCK$ FDAT$A R.VAR,FD.CR ;FILE ATTRIBUTES FDRC$A ,BUF1,132. ;RECORD FDOP$A OUTLUN ;FILE NAME FDBF$A OUTEVF ;EVF;;I .SBTTL TERMINAL FDBE;;;;;F;P; THE TERMINAL'S FDB;D!TIFDB: FDBDF$ ;DEFINE FDB BLOCKB% FDAT$A R.VAR,FD.CR ;FILES ATTRIBUTESF FDRC$A ,BUF1,80. ;RECORD FDOP$A TIFLUN,TIDSDS ;FILE NAME FDBF$A TIFEVF ;FILE EVFO;TIDSDS: .WORD LTI,TI .WORD 0,0 .WORD 0,0;TI: .ASCII /TI:/LTI=.-TI .EVEN L .SBTTL ERROR MESSAGESB;15ERPRI: QIOW$ IO.WVB,TILUN,TIEVF,,,,CPRIMES: .ASCII /***PAG---/PRILEN=.-PRIMESD .EVEN6NAMERR: QIOW$ IO.WVB,TILUN,TIEVF,,,,!NAMMES: .ASCII /BAD FILE NAME***/HNAMLNG=.-NAMMES .EVEN6FILERR: QIOW$ IO.WVB,TILUN,TIEVF,,,,$FILMES: .ASCII /ERROR ON FILE IO***/FILLEN=.-FILMESL .EVEN6CMDERR: QIOW$ IO.WVB,TILUN,TIEVF,,,,2CMDMES: .ASCII /ERROR ON INDIRECT COMMAND FILE***/CMDLEN=.-CMDMES. .EVEN . .SBTTL 0023 !"TADATADATAMISCELLANEOUS .SBTTL CSI CONTROL BLOCK;I CSI$<CSBLK: .BLKB C.SIZER .EVEN;I .SBTTL GCML CONTROL BLOCKD;. GCLUN =TILUNGCBLK: GCMLB$ 2,RNP,,GCLUN;M .SBTTL SWITCH TABLE ;C";COMMAND STRING INTERPERTER SWITCH;1SWITCH: CSI$SW TA,2,TABFLG ;SPECIFY SWITCH ITSELFE CSI$ND5; .SBTTL OTHER THINGSN;L;O,TABFLG: .WORD 0 ;FLAG TO PUT IN LEADING TAB&EDLEN: .WORD 0 ;LENGTH OF HEADER LINE;M3GETTIM: GTIM$ EDBUF2 ;GET TIME IN 2ND EDMSG BUFFERL;.BUF0: .BYTE 0,11 ;LEADING TAB$BUF1: .BLKW 132. ;THE RECORD BUFFER;& FSRSZ$ 3 ;MAKE ROOM FOR FILE STORAGE I.SBTTL EDMSG DATAT; >HDRME0: .ASCII /%F%NMICHAEL REESE MEDICAL CENTER - - - /6 .ASCIZ /DEPARTMENT OF MEDICAL PHYSICS COMPUTER%25S%X/ .EVEN?HDRMEA: .ASCII /%F%N%8SMICHAEL REESE MEDICAL CENTER - - /.6 .ASCIZ /DEPARTMENT OF MEDICAL PHYSICS COMPUTER%25S%X/ .EVENHDRBF0=INFDB+F.FNB+N.FNAM HDRME1: .ASCIZ / PAGE %D/ .EVEN7EDMES0: .ASCII /%NLISTING OF %2A%M:/ ;DEVICE AND NUMBERB .ASCIZ /[%B,%B]/ ;UICU .EVEN:EDMESA: .ASCII /%N%8SLISTING OF %2A%M:/ ;DEVICE AND NUMBER .ASCIZ /[%B,%B]/ ;UICM .EVEN.EDBUF: .WORD INFDB+F.FNB+N.DVNM ;DEVICE STRING DEVNUM: .WORD 0 ;DEVICE NUMBER .WORD GUIC ;GROUP UICS .WORD MUIC ;MEMBER UIC;M"UIC: ;START CODE STORES UIC HERE$MUIC: .BYTE 0 ;SAVE MEMBER UIC HEREGUIC: .BYTE 0 ;SAVE GROUP UIC;%!;STORAGE FOR FILE NAME FOR OUTPUTN/INPFLG: .WORD 0 ;FLAG FOR INPUT FILE SPECIFIED0"NAMLEN: .WORD 0 ;LENGTH OF STRING*NAMSAV: .BLKB 40. ;BUFFER TO STORE STRING;N+EDMES1: .ASCIZ /%X%4S/ ;NAME,TYPE VERSIONV .EVEN2EDBUF1=INFDB+F.FNB+N.FNAM ;POINT HIM TO INPUT FDB;I;B<EDMES2: .ASCIZ /ON %Y AT %3Z PAGE %D%2N/ ;DATE,TIME PAGE # .EVEN(EDBUF2: .BLKW 6 ;ROOM FOR DATE AND TIME4PAGE: .BLKW 2 ;DO TIME, THEN SET PAGE # TO WHATEVER; ;A;NOW THE OUTPUT BUFFER;B&EDBLK: .BLKB 150. ;ONE LINE OF OUTPUT .END STARTR OUTPUTN/INPFLG: .WORD 0 ;FLAG FOR INPUT FILE SPECIFIED0"NAMLEN: .WORD 0 ;LENGTH OF STRING*NAMSAV: .BLKB 40. ;BUFFER TO ST*/dTOL<&D@<&@*<&Kq@<&9@' q@'@$9!@*:2@t @?T@;P@`@*=@@=@X@p@?S@*}@hp!@}@Ա(@(x y0( * wxP0 b 3X Ա(P?S*& 3Bp  *Lh$ $ȕh  $=$h @=*r7 $ȕ .  $@=."&;P* 3\*$\ \"*(\*# 3Rw' q hp!*L.D~ҕLҕSҕT0&* B~ v$ȕ . $@=".&*0JҔB~*$;P $**V# wv'hp!$v*|^6  "&?T*8 7 &8 ?T"}&*B ^|  &B^|?T"?T&*  7 \|&?T  }$\(|* ׭b5 Z}$9! &*:wT.m* $z  z&}*`| w W!6 |}* Pw W 8Qf *? e |RyeB*  & * & LP) õ `<&Kq*& & & & & ffI  eA D \ 3& `\`t <&nn| |ll~~t <&| |t <&..| |,,P>>@@| |DD||00345/04TI:   $***PAG---:2* +BAD FILE NAME*** :2(:2%+ERROR ON FILE IO***  * !+ERROR ON INDIRECT CO :2MMAND FILE***PPrrvv ||__<&9<&Kq<&D ' RNP> PhhTAr= r*%F%NMICHAEL REESE MEDICAL CENTER - *- - DEPARTMENT OF MEDICAL PHYSICS COMPUTER%25S%XE*%F%N%8SMICHAEL REESE MEDICAL CENTER * - - DEPARTMENT OF MEDICAL PHYSICS C*OMPUTER%25S%X PAGE %D BB%NLISTING OF %2A%M:[%B,%B]^*^%N%8SLISTING OF %2A%M:[%B,%B]"&( $%X%4SON %Y AT %3Z PAGE %D%2N RNP> PhhTAr= r;01 ! PROGRAM TO CREATE DAMMIT.MSG FILE FROM DAMMIT.DAT FILE05 DIM A$[64]V,B$[64]10 OPEN #3,"DAMMIT.DAT/RO"(20 OPEN #4,"[1,2]DAMMIT.MSG/WR/LN:64/FX"30 INPUT LINE #3,A$40 IF END #3 THEN 100050 B$=SBS$(A$,1,LEN(A$))60 B$=LJS$(B$,64) 70 PRINT B$80 PRINT #4,B$ 90 GOTO 30 1000 CLOSE 1010 STOP1020 ENDVM# ,' #t!e#& &8&z'H (`,@."*d eh~#e~#e~#|e#|afZ%fw[qOq#vOq#9wK! N&be&005 !"TADATADATA& &8&z'H (`,@."*d ek~#e#|afZ%fw9wK! N&be&D} 0055/04Ms"& hHh& h,8;@s 7 & ,8; e}0 G*N@S۪@Tq@@ (`@*F;@SS@T;@Sū@6x@"S@T۪@+@\q@ h~&NS۪  S۪ Tq, B& (` F; SST;< B&Sū e} F; SS T;J&Sū e}$F; S۪ X(6xST۪  Sū e}(d&F;S۪ +Sr&T۪Sū e}, F;\qMs"&8hHh&8h,8;@s 7 &8,8; ..*N@SM@F;@SM@S۪@*S;@t@@e@XȪ@*Sū@Tq@@ (`@afZ@*Ȫ@S@Y @ժ@Q@Y@\q@ h8.*NSM  F;SM@*F;SM " F;SM&P&F;SM * F;S۪^*S;t erF;XȪp (&N S;S۪tSū*F;Tq " TqTq* (` F; Tq"Tq*Tq (`F;Tq*afZ F; Ȫ*e(NS , NȪY *N ժ &"F;Q&Nժ & NTq"*TqTq   (`F;*Tq afZNY,**N Tq"TqTq,  (` F;\qMs"&hHh&h,8;@s 7 &,8; e}0*N@SM@F;@ժ@\q@ h6*NSM e}F;SM & e}F;ժ e} e}**F;ժ e} e} F;\qMs"'HhHh'Hh,8;@s 7 'H,8; e}0*N@SS@z۪@T۪@T;@*Sū@S۪@.@z۪@Sū@*F;@ժ@Sت@SM@\q@ h&NSS  z۪ e}T۪*C* e}T; Sū S۪.:*z۪ e}Sū e} F;ժF( e} e}F; SS z۪RC( e} T۪ e} T;Sū`&S۪. z۪ e}Sūl& e}F;ժ e} e}v&F;Sت e}  F;Sت& e}F; SM e}&F;SM e} F;\q Ms" (`hHh (`h,8;@s 7 (`,8; e}2$$*N@SM@F;@S@@@* @Tq@@'H@Ȫ@*Y @e@Q@ N@S5@*t@\q@S;@SS@t@*Sū@ժ@S۪@T;@Sժ@eh~@@@ h$*NSM  F;SM6(F;S F; @  D *N Tq005 !"TADATADATA TqTqV&Tq 'HF;Ȫd * e}0Y  NTqTqt* e F;QN*TqTq   NN&S5 F; @ t*N\q NS;SS t*Sū F; ժ e}0Y  &N S۪ T;Sū"*F;Sժ e}0 F;Tq"*eh~ NS۪@F F;\q@Ms"d hHhd h,8;@s 7 d ,8; e}2*ABCDEFGHIJKLMNOPQRSTUVWWYZ0123456789 -*>+.,*/=)($&XX (2<ER]hq|*d !*7GN(Xhn*!)K% !&+&! ;*"1 *6!+! +&v&! !++&v ;*"1*\v !&+& 1ak; #"1 !*%+%XX +! !+f !+ "*;*1" !&+& {[:($2Qq !&*+V&V "16'*; ak+k +"1* +a +!e !ff+f +ffa +*! "*;1" 8ka!a *;*@6%! *;F1" $ "1'+ *f%61"%*; +! 1"%66'*;*1 "1;*'6 6 6fifc T*VvtT QstvVTt DffHff6f " 4* 8 AciK ic 3BF79Jjjka CjH !"f*+* *N@SM@F;@Ȫ@e@*S@SS@z۪@;@N SNSS& z۪ ;*TqTq  eN&?@*NY  NY:BD&.N \qNȪLF&Y ^N S e}0F;ZIK&QfN S} e}0Nj*Tq eh~F;Q"MD}hh e}0 e}*@@@@&G  hHMs"fwhHhfwh,8;@s 7 fw,8; e}0  GG*N@S5@F;@S}@S}@*Sժ@S5@Tq@@eh~@ \q@ h@@*NS5 e}F;S5 e}$*F;S} e} F; S} e} 0*F;S} e} F; S} e}<*F;S} e} F; S} e}H*F;S} e} F; S} e}T@@*F;S5 e}  F;S5 e}$d&F;Sժ e}( F;S}p* e},F;S5 Tq eh~F;\q<Ms"9wKhHh9wKh,8;@s 7 9wK,8; e}0*N@Sժ@F;@S}@SM@ \q@ hV*NSժ e} e}F;Sժ"& e} e}F; S} e},&F;S} e} F; SM 8( e}F;SM  e}F;D$SM e} F; SM P e} F;\q~M*,@.L:s@ 1xs 1xs Da "Da  $1xs &1xs (1xsDa  Glp7 ff 7wf www w wwfzWj ,a $sQ(1xs.1xs4,a  :,a >,F1xsL1xsR1xs X1xs ^1xsd,a  j,a h  : Da 0 2WjsQ,:0 *G xp(Da  ,a &1xsTTp<@p Da d ,a *!> 1xs 1xs Da "Da  $1xs &1xs (1xsDa  Gz@<7 @ &f 7wf www w wf Wj ,,a 0sQ41xs:1xs@,a  F,a J,R1xsX1xs^1xs d1xs j,a  p,a t: xDa  v 0 2WjsQ,:0 *G ~<@(Da  ,a &1xsBTpa p Da d ,a *!> 1xs 1xs Da "Da  $1xs &1xs (1xsDa  Gxa 7 @ &f 7 wf www wf  ~Wj ,,a 0sQ41xs:1xs@,a  F,a J,R1xsX1xs^1xs d,a  j,a n: rDa v0 t2WjsQ,:0 *G xa (Da  ,a &1xsTp vp Da d ,a  Da  1xs 1xs,a 6 1xs Da Da  1xs 1xs 1xsDa ,a    1xs Gv 7 @ &f  72 A rd Ao 1 dPWj ,,a 0sQ41xs:1xsDj H1xsdj r1xs~1xs|f dww7 wf    AWpx r 7W/ C rBo`@l Da  ,1xs1xs 1xs $1xs *,a  0,a 4: 8Da <0 J1xs ^1xsz1xsp7A r@om7@7w f w| 1xs1xsj*1xs.1xs:1xs@1xsFjL,a $ R,a V,^1xsd1xsh1xsj1xsn1xs"dwf  .1xs  ,a  ,a : Da 0 2WjsQ,:0 G  v( GaDa ,a &1xsdTpzp Da 6dZ 1xs 1xs 1xs "1xs* &1xs (1xsB ,1xs .1xsZ 21xs 41xsr,a 6 1xs Da Da  1xs 1xs 1xsDa 21xs|     Gxz7 7f f f f f |Wj1xs1xs "Da *0j 6Da :,Dj JDa N,Xj ^Da b,lj rDa &v,Ntf  wwwf  V j Da ,,j$1xs*1xs01xs 6,a  <,a @: DDa 2H0 2Wj,:0  G  Da   G(  G<  GP  Gd  Gx z( G:'Nbv Da 6,a 1xsj 6Da :,Dj JDa 0075/04XP  , vzpa <@(E`WzZ007Ҏ !"TADATADATA vzpa <@(E`WzZPfE`Wf Da d ,a N 1xs Da  Da  1xs 1xs 1xs Da  Da  Da 1xs GJWE`7 7wf   TWj 1xs1xs$1xs*,a  0,a 4: 8,a <0 @,a D}*Wj:0 }*G FE`W(Da  ,a 1xsXPfpf ,a   1xsDa d ,a 4 1xs Da Da  1xs 1xs 1xs Da Glp7 ff 7wf www w wwfzWj ,a $sQ(1xs.1xs4,a  :,a >,F1xsL1xsR1xs X1xs ^1xsd,a  j,a h  : ,a &0 2WjsQ,:0 *G xp(Da ,a *1xsPf<@f ,a ! Da  ,a  Da 1xsDa d ,a 8 1xs Da  Da  1xs 1xs 1xs Da  Gp@<7 wf &f 7wf www w wWj,a  ,a $ɪ 0,a 4sQ81xs>1xsD,a  J,a N0078/04,V1xs\1xsb1xs h1xs n,a lf   ,a  : ,a ,0 :WjɪsQ,:0 *G <@(Da  ,a 01xsPfa f ,a ! Da  ,a  Da 1xsDa d ,a 8 1xs Da  Da  1xs 1xs 1xs Da  Gpa 7 wf &f 7 wf www wfWj,a  ,a $ɪ 0,a 4sQ81xs>1xsD,a  J,a N,V1xs\1xsb1xs h,a n,a l  : ,a ,0 :WjɪsQ,:0 *G |a (Da  ,a 01xsPf vf ,a  Da  ,a  Da Da d ,a $P 1xs 1xs 1xs Da  Da  1xs 1xs 1xs Da  1xs Gv 7 wf &f  70  C rd Ao  d^Wj,a  ,a $ɪ 0,a 4sQ81xs>1xsHj L1xshj v1xs|7f dww7 wf    AWpx r 7W/ C rBo`t1xs ,a ,1xs1xs$1xs (1xs .,a 4,a 8: <,a ,@0 N1xs b1xs~1xst@7A r@om7@7w f w|1xs1xsj.1xs21xs>1xsD1xsJjP,a 4 V,a 0Z,b1xsh1xsl1xsn1xsr1xs"hwf  .1xs  ,a ,a : ,a ,0 :WjɪsQ,:0 G  v( Ga Da  ,a 61xszPfzf Da  ,a "Z 1xs 1xs 1xs 1xs* 1xs 1xsB 1xs 1xsZ 1xs 1xsrDa  d ,a @ 1xs Da Da  1xs 1xs 1xs Da 1xs|     Gz7 7f f f f f xWj1xs1xs "Da *0j 6,a :,Dj J,a N,Xj ^,a b,lj r,a v,F|f  wwwf  Xj ,a ,j1xs"1xs(1xs .,a " 4,a 8: <,a .@0 2Wj,:0  G  Da   G(  G<  GP  Gd  Gx z( G:'Nbv Da ,a 21xs0j 6,a :,Dj J,a N,Xj ^,a b,lj r,a v,F|f  wwwf  Xj ,a ,j1xs"1xs(1xs .,a " 4,a 8: <,a .@0 2Wj,:0   ; R0 IS POSITION IN MAIN STRING ; R2 IS POSITION IN TEST STRINGE; R3 IS POSITION IN MAIN STRING AS EACH CHARACTER IN T STR IS TESTED#; USE BY GIVING THE FOLLOWING CALLD; CALL POS(MSTRING, TSTSTRING, START POS IN M STR, LENGTH OF MSTSR,; LENGTH OF TST STR) .TITLE POS .GLOBL POS:POS:: MOV 2(R5),R0 ; ADR OF M STRINGJ ADD @6(R5),R0 ; ADD ON START POS (ONE PAST BEG)5 DEC R0 ; NOW AT BEGB 00889!"TADATADATA MOV R0,END ; ARE CALCULATING THE END5 ADD @10(R5),END ; 1 PAST ENDF DEC END ; THIS SHOULD BE END OF M STRG SUB @12(R5),END ; DEC BY LENGTH OF TEST STRINGE DEC R0 ; ONE BEFORE BEG OF M STRING;G; EACH TIME HAVE FAILURE TO FIND TEST STR IN MAIN STR, RETURN HERE AND$; START ON NEXT CHAR IN MAIN STRING11$: CMP R0,END9 BHI 27$ ; YES, WE FAILED INC R0C MOV 4(R5),R2 ; STARTING POS OF TEST STR@ MOV @12(R5),LEN ; NO. OF CHAR TO SEARCHG MOV R0,R3 ; R3 WILL BE TEMP POS IN M STR<15$: MOVB (R2)+,TCHR ; TST STR CHARACTER5 MOVB (R3)+,MCHR ; M STR CHAR; CMPB TCHR,#140 ; IS IT CAP LETTER7 BLE 17$ ; NO IT WASN'TD SUB #40,TCHR ; IT WAS, CHANGE TO CAPITALA17$: CMPB MCHR,#140 ; DO SAME FOR M STR CHAR BLE 19$ SUB #40,MCHR>19$: CMPB TCHR,MCHR ; MAKE THE COMPARISON7 BNE 11$ ; NO MATCH YETE DEC LEN ; RECORD 1 MORE CHAR MATCHED5 TST LEN ; FINNISHED?2 BGT 15$ ; NOT YETC SUB 2(R5),R0 ; 1 LESS THAN BEG OF M STR INC R05 RETURN ; YES WE ARE;27$: CLR R0 ; INDICATE FAILURE RETURN;; END: .WORD LEN: .WORD TCHR: .WORD MCHR: .WORD .END;1; J=POS(MSTRING,SUBSTR,[START],[MAX CHARACTERS])=; THIS FUNCTION RETURNS THE FIRST OCCURANCE OF THE SUBSTRING<; IN THE MAINSTRING. AN OPTIONAL PARAMETER IS THE STARTING8; POSITION IN THE MAIN STRING TO BEGIN SEARCHING. ALSO;; OPTIONAL IS THE MAXIMUM NUMBER OF CHARACTERS IN THE MAIN; STRING TO SEARCH.F; IMPORTANT--POS MUST BE DEFINED AS AN INTEGER IN THE CALLING PROGRAM; OR THIS WILL NOT WORK.; .TITLE POSI .GLOBL POSI9POSI: MOV #1,R1 ; 1 IS THE DEFAULT FOR STARTING POSITION. CMP (R5),#3 ; IS THERE LESS THAN 3 ARGUMENTS BLT 3$ ; YES% TST 6(R5) ; IS THERE A 3RD ARGUMENTH BLE 1$ ; NO THERE ISN'TN* MOV @6(R5),R1 ; GET THE STARTING POSITION.1$: CMP (R5),#4 ; IS THERE A FOURTH ARGUMENT? BLT 3$ ; NO THERE ISN'TS6 MOV @10(R5),21$ ; GET THE NO. OF CHARACTERS TO SEARCH DEC 21$ 3$: MOV R1,R0T DEC R0T5 ADD 2(R5),R1 ; R1 IS STARTING ADDRESS OF MAIN STRING 4 MOV 4(R5),R2 ; R2 IS STARTING ADDRESS OF TST STRING INC 21$ DEC R11 DEC R1E011$: CLR 22$ ; LOOK AT NEXT CHAR IN MAIN STRING/ CMP R0,21$ ; HAVE WE SEARCHED MAX NO. OF CHAR6 BEQ 99$ ; YES WE HAVEG1 INC R0 ; WE ARE AT NEXT POSITION IN MAIN STRING; INC R1S TSTB (R1) BEQ 99$ MOV R1,R3 MOV R2,R4:2$: MOV R0,22$ ; HAVE WE SEARCHED THE DESIRED NO. OF CHAR*5$: TSTB (R4) ; IS THIS A NULL CHARACTER? BEQ 19$ ; YES IT IST MOVB (R3)+,23$2 MOVB (R4)+,24$T* CMPB 23$,#140 ; IS THIS A CAPITAL LETTER? BLE 25$& SUB #40,23$ ; CHANGE IT TO A CAPITAL<25$: CMPB 24$,#140 ; IS THE CHARACTER FROM 2ND ARRAY CAPITAL BLE 26$ ; YES IT IS;$ SUB #40,24$ ; CHANGE IT TO CAPITAL(26$: CMPB 23$,24$ ; MAKE THE COMPARISON BNE 11$ ; NO MATCH YET. CMP 22$,21$ ; HAVE WE REACHED MAX CHARACTERS BEQ 19$ ; YES WE HAVE INC 22$ BR 5$019$: RTS PC ; FOUND A MATCH, R0 IS ITS POSITION"99$: CLR R0 ; DIDN'T FIND A MATCH RTS PCI-21$: .WORD ; NUMBER OF CHARACTERS TO SEARCH3*22$: .WORD ; NO. OF CHARACTERS SEARCHED 823$: .WORD ; TEMPORARY STORAGE FOR CHAR FROM 1ST ARRAY824$: .WORD ; TEMPORARY009:; < 04 STORAGE FOR CHAR FROM 2ND ARRAY .ENDIS;$ SUB #40,24$ ; CHANGE IT TO CAPITAL(26$: CMPB 23$,24$ ; MAKE THE COMPARISON BNE 11$ ; NO MATCH YET. CMP 22$,21$ ; HAVE WE REACHED MAX CHARACTERS BEQ 19$ ; YES WE HAVE INC 22$ BR 5$019$: RTS PC ; FOUND A MATCH, R0 IS ITS POSITION"99$: CLR R0 ; DIDN'T FIND A MATCH RTS PCI-21$: .WORD ; NUMBER OF CHARACTERS TO SEARCH3*22$: .WORD ; NO. OF CHARACTERS SEARCHED 823$: .WORD ; TEMPORARY STORAGE FOR CHAR FROM 1ST ARRAY824$: .WORD ; TEMPORARY new system utility  RCV ? MCR task to recover a file locked as a result of task abortion0 Original author R B French NOV 76 The Boeing Co//L switch added F. Borger MAR 77 Michael Reese./A switch, large file modifications, FEB 81calling sequenceMCR>RCV Filename[/SWitch]G The normal REC[over] command will only unlock a file that was lockedGdue to abnornal termination. After use, some files may end up 0 length;due to the end of file indicators not being properly reset.  GRCV will unlock the file (if locked,) unless another task has write ac-eGcess. It will then scan the file and rewrite file attributes to reflecto,the actual size of the file (rather than 0).  ARCV has two legal switches:i) /LA:NNN Set number of records to be NNNC/ /AD:NNN Change number of records by NNN (+/-)m / NNN must be a legal single-precision decimalo$ number (between -32767 and 32767) iGFor fixed length record files, this switch lets one override the resultp?of the recovery and explicitly determine the number of records.oHThe previous limitation involving large files and file header extensionshas been removed.oe actual size of the file (rather than 0).  ARCV has two legal switches:i) /LA:NNN Set number of records to be NNNC/ /AD:NNN Change number of records by NNN (+/-)m / NNN must be a legal single-precision decimalo$ number (between -32767 and 32767) iGFor fixed length record files, this switch lets one override the resultp?of t ; SCOPY.MAC;:; CALL SCOPY(FROM,TO[,LEN][,ST PT OF FROM][,ST PT OF TO])$; COPIES STRFROMG IN INTO STRING TO6; IF AN INTEGER COUNT LEN IS SPECIFIED, THEN ONLY LEN6; CHARACTERS WILL BE COPIED, ELSE ALL OF FROM WILL BE'; COPIED (INCLUDING THE TERMINTING <0>?; IF A STARTING POINT IS GIVEN, IT WILL COPY EITHER FROM OR TO/; CHARACTER NUMBER "STARTING PT" IN THE ARRAY.;@; CAUTION: WHEN USED IN THE PROGRAM ZIPSOR, IT CRASHED WITH AND; ERROR MESSAGE ABOUT STACK ERROR. REPLACING IT WITH AN EQUIVALENT); FORTRAN SUBROUTINE SOLVED THE PROBLEM.;E; As of 9 15 83, it was changed so that you have to specify a lengthD; and it will transfer that many characters irregardless of whether; nulls exist. .TITLE SCOPY .GLOBL SCOPY*SCOPY: MOV 2(R5),R0 ; ADDRESS OF IN STRING% MOV 4(R5),R1 ; ADDRESS OF OUT STRING* MOV #-1,R2 ; R2 = -1 UNLESS LENGTH GIVEN+ CMPB #2,(R5) ; ARE THERE ONLY 2 ARGUMENTS BEQ 1$ ; YES( TST 6(R5) ; WAS 3RD ARGUMENT A DEFAULT BLE 3$ ; YES SO, DON'T USE MOV @6(R5),R2 ; USE THE LENGTH)3$: CMPB (R5),#4 ; ARE THERE 4 ARGUMENTS BLT 1$ ; NO THERE ISN'T* TST 10(R5) ; WAS 4TH ARGUMENT A DEFAULT? BLE 4$ ; YES IT WAS4 ADD @10(R5),R0 ; ADD THIS TO ADDRESS OF FROM STRING DEC R0)4$: CMPB (R5),#5 ; ARE THERE 5 ARGUMENTS BLT 1$ ; NO2 ADD @12(R5),R1 ; ADD THIS TO ADDRESS OF TO STRING DEC R11$: MOVB (R0)+,(R1)+; BEQ 2$ DEC R2 BGT 1$ 2$: RTS PC .END$ .TITLE SPOOL SUBROUTINE FOR FORTRAN;; FORTRAN CALL:; CALL SPOOL(LUN,ERR);"; WHERE LUN = LOGICAL UNIT NUMBER; ; RETURN: ; ERR = FCS ERROR CODE FROM FDB.; IF ERR ARGUMENT IS NOT INCLUDED, STATUS CAN-; BE PICKED UP AS FUNCTIONAL VALUE (FROM R0);; NOTE::; FILE MUST EITHER BE OPEN, OR FDBSET MUST BE USED (ALONG8; WITH CALL ASSIGN) TO FILL IN THE REQUIRED INFO IN THE; FDB.;:; INVALID LUN'S WILL RESULT IN A FORTRAN ERROR TRAPPED BY; THE FCHNL ROUTINE.;D .MCAL00<=>!"TADATADATAL PRINT$ ; SEE CH. 8 OF I/O OPERATIONS MANUAL; .GLOBL $FCHNL,$OTSV; .ENABL LSBSPOOL:: MOV @2(R5),R2 ;GET LUN' MOV @#$OTSV,R3 ;GET WORK AREA ADDRESS! JSR PC,$FCHNL ;FIND FDB ADDRESS) MOV R0,R1 ;SAVE ADDRESS OF FORTRAN FDB ADD #14,R0 ;GET TO RSX FDB PRINT$ R0 ;SPOOL FILE BCS ERR ;ERROR?& MOV #66,R0 ;THIS MANY WORDS TO ZERO'1$: CLR (R1)+ ;MAKE THIS LUN REUSABLE DEC R0 BNE 1$&2$: CMPB (R5),#1 ;ONLY ONE ARGUMENT?$ BEQ 3$ ;NO STATUS IN ERR ARGUMENT( CMP 4(R5),#-1 ;ERR ARGUMENT DEFAULTED?$ BEQ 3$ ;NO STATUS IN ERR ARGUMENT& MOV R0,@4(R5) ;STORE ERROR CODE OR 0"3$: RTS PC ;AND RETURN TO CALLER;4ERR: MOVB F.ERR(R0),R0 ;GET FCS ERROR CODE FROM FDB BR 2$ ;AND USE COMMON RETURN .DSABL LSB .END610 ! 2ND PROGRAM TO JUST PROCESS SPR FOR DIABLO OUTPUT20 DIM A$[80]V+30 B=0 : CALL "SPAWNB"("RNO SPR.ONE=SPR",B)40 OPEN #3, "SPR.ONE/RO"50 OPEN #4, "SPR.TWO/WR"60 IF END #3 THEN 10070 INPUT LINE #3,A$075 PRINT #4, CHR$(0) : ! SO DIABLO DOESN'T DO FF80 INPUT LINE #3,A$85 PRINT #4,A$ 90 GOTO 80 100 CLOSE H110 PRINT "INSERT SPR FORM IN DIABLO PRINTER, ALIGN PRINT HEAD RED MARK"A120 PRINT "TO MARK ON SPR FORM, THEN ROLL PAPER BACK SO THAT TOP"<130 PRINT "OF SPR FORM IS HALF WAY IN V-NOTCH OF PRINT-HEAD".140 PRINT "THE GIVE THE COMMAND 'DIA SPR.TWO'"#150 PRINT "REPLACE PAPER IN DIABLO".=155 CALL "SPAWNB"("PIP SPR.ONE,SPR.HDR,SPR.TXT,SPR.TWO/PU",B)" 160 EXIT #3 THEN 10070 INPUT LINE #3,A$075 PRINT #4, CHR$(0) : ! SO DIABLO DOESN'T DO FF80 INPUT LINE #3,A$85 PRINT #4,A$ 90 GOTO 80 100 CLOSE H110 PRINT "INSERT SPR FORM IN DIABLO PRINTER, ALIGN PRINT HEAD RED MARK"A120 PRINT "TO MARK ON SPR FORM, THEN ROLL PAPER BACK SO THAT TOP"<130 PRINT "OF SPR FORM IS HALF WAY IN V- .IIF NDF LIST, .NLIST( .TITLE STATPRE - PREFIX FILE FOR F11ACT;4:; MODULE: FILES-11 ACTIVITY REPORTING TASK -- PREFIX FILE;R; VERSION: 0002;S; AUTHOR: ANDY PUTNINSC;Y; DATE: 20-NOV-78;B; MODIFICATIONS:);; 14-DEC-78 A. PUTNINS ADD FILE ATTRIBUTE BLOCK DEFINITIONS2;; ; PURPOSE:T=; DEFINE SYMBOLS FOR FILES-11 DATA STRUCTURES AND STATISTICSAF; BLOCK OFFSETS. TO GET A LISTING OF THIS FILE, DEFINE SYMBOL "LIST".;R$$11D=1R$$IAS=1;E'; MACROS TO SAVE AND RESTORE REGISTERS ;  .MACRO PUSH LISTL .IRP RX,X MOV RX,-(SP)T .ENDM .ENDM .MACRO POP LIST .IRP RX,P MOV (SP)+,RX .ENDM .ENDM;+; MACRO TO WRITE A MESSAGE TO THE TERMINAL-; .MACRO TIQIO,MSG,MSGLEN .MCALL DIR$,QIOW$ MOV MSG,QIOTI+Q.IOPLC MOV MSGLEN,QIOTI+Q.IOPL+2 DIR$ #QIOTI .ENDM .PAGE;-&; STATISTICS BLOCK OFFSET DEFINITIONS;K .ASECT  .=0,P.LINK: .BLKW 2 ;FORWARD AND BACKWARD LINKS.SBFLG: .WORD 0 ;FLAGS1 F.FI = 1 ;LIST FILE ATTRIBUTES FOR THIS DEVICE F.NSDV= 2 ;NO SUCH DEVICE<) f.nf11= 4 ;not a file-structured device.! F.OFF = 10 ;DEVICE OFFLINE FLAGM" F.FOR = 20 ;MOUNTED FOREIGN FLAG$ F.BADF= 40 ;FCB POINTER ERROR FLAG% F.TAPE= 100 ;VOLUME IS LABELED TAPE.< F.NFAT= 200 ;INSUFFICIENT SPACE TO STORE SOME FILE ATTRIBSP.PUD: .WORD 0 ;PUD POINTER.LH.AB: .BLKW 2 ;FILE ATTRIBUTE BLOCK LISTHEAD/P.DNAM: .WORD 0 ;POINTER TO DEVICE NAME STRINGA#.DUNIT: .BLKW ;DEVICE UNIT NUMBERG7.ACPNM: .BLKW ;FIRST THREE CHARS OF ACP NAME IN RAD50N0P.VLAB: .WORD 0 ;POINTER TO VOLUME LABEL STRING2C.TRCT: .BLKW ;VOLUME TRANSACTION COUNT FROM VCB5C.TFCB: .BLKW ;TOTAL COUNT OF FCB'S FOR THIS VOLUMEO0C.AFCB: .BLKW ;COUNT OF FCB'S ALLOCATED IN ACP3C.FFCB: .BLKW ;COUNT OF FCB'S ALLOCATED IN FCPCOMM1C.SFCB: .BLKW ;COUNT OF FCB'S ALLOCATED IN SCOMH3C.LRU: .BLKW ;COUNT OF "PRE-ACCESSED" DIRECTORIES #.DNAM: .BLKB 2 ;DEVICE NAME STRINGA&.VLAB: .BLKB 12. ;VOLUME LABEL STRING .EVENL.SB = . .PAGE;E*; FIL00>?@A04E ATTRIBUTE BLOCK OFFSET DEFINITIONS;; .ASECTO .=0,P.LINK: .BLKW 2 ;FORWARD AND BACKWARD LINKS.ABFLG: .WORD 0 ;FLAGS.. F.DIR = 1 ;THIS FCB IS IN DIRECTORY LRU LIST- F.ACP = 2 ;THIS FCB IS IN ACP INTERNAL AREA  F.FCM = 4 ;FCB IN FCPCOM F.SCM = 10 ;FCB IN SCOMP .FID: ;START OF FILE ID BLOCK.FNUM: .BLKW ;FILE NUMBER:$.FSEQ: .BLKW ;FILE SEQUENCE NUMBER%.FOWN: ;START OF FILE OWNER BUFFERS.PROG: .BLKB ;MEMBER #.PROJ: .BLKB ;GROUP #V .FNAM: .BLKW 3 ;RAD50 FILE NAME.FTYP: .BLKW ;RAD50 FILE TYPE .FVER: .BLKW ;BINARY VERSION #L.AB = . ;LENGTH OF ENTRY .IIF NDF LIST, .LIST F.DIR = 1 ;THIS FCB IS IN DIRECTORY LRU LIST- F.ACP = 2 ;THIS FCB IS IN ACP INTERNAL AREA  F.FCM = 4 ;FCB IN FCPCOM F.SCM = 10 ;FCB IN SCOMP .FID: ;START OF FILE ID BLOCK.FNUM: .BLKW ;FILE NUMBER:$.FSEQ: .BLKW ;FILE SEQUENCE NUMBER%.FOWN: ;START OF FILE OWNER BUFFERS.PROG: .BLKB ;MEMBER #.PROJ: .BLKB ;GROUP #V .FNAM: .BLKW 3 ;RAD50 FILE 310 REM SET UP SW10 FUNCTION KEYS FIRST SET TO VT10012 PRINT CHR$(27);"<" : BREAK 15 DIM A$[3] 16 A$=CHR$(27)+CHR$(91)+CHR$(62)620 PRINT A$;CHR$(97);"/";"DAMMIT";CHR$(13);"/" : BREAK630 PRINT A$;CHR$(98);"/";"COOKIE";CHR$(13);"/" : BREAK340 PRINT A$;CHR$(99);"/";"WHO";CHR$(13);"/" : BREAK650 PRINT A$;CHR$(100);"/";"WHERE";CHR$(13);"/" : BREAK460 PRINT A$;CHR$(101);"?";"DEM";CHR$(13);"?" : BREAK470 PRINT A$;CHR$(102);"/";"CLV";CHR$(13);"/" : BREAK480 PRINT A$;CHR$(103);"/";"UTX";CHR$(13);"/" : BREAK490 PRINT A$;CHR$(104);"/";"SEV";CHR$(13);"/" : BREAK9100 PRINT A$;CHR$(105);"?";"QUE /AL";CHR$(13);"?" : BREAKR<110 PRINT A$;CHR$(106);"?";"QUX /TI/EC";CHR$(13);"?" : BREAK?120 PRINT A$;CHR$(107);"?BAS LB:[1,1]VT52/RN";CHR$(13); : BREAKB130 PRINT A$;CHR$(108);"?";"BAS LB:[1,1]V100/RN";CHR$(13); : BREAK*135 PRINT CHR$(27);"[?2";CHR$(108) : BREAK140 EXITCHR$(101);"?";"DEM";CHR$(13);"?" : BREAK470 PRINT A$;CHR$(102);"/";"CLV";CHR$(13);"/" : BREAK480 PRINT A$;CHR$(103);"/";"UTX";CHR$(13);"/" :(TCUSET/PR/-FP=TCUSET,LB:[1,1]EXEC.STB/SS/STACK=32// .TITLE TCUSET&;PROGRAM TO SET TIME INTO TCU100 CLOCK;% .MCALL DIR$,GTIM$,EXIT$S,MRKT$,WTSE$;); DEFINE FIRST REGISTER ADDRESS OF TCU100 TCUADR=160770;;%START: DIR$ #GETTIM ;GET SYSTEM TIME& MOV TIMBUF+G.TIMO,R0 ;PUT MONTH IN R0 SWAB R0 ;NOW IN UPPER BYTE. BISB TIMBUF+G.TIDA,R0 ;PUT DAYS IN LOWER BYTE8 BIS #100,R0 ;SET BIT THAT ENABLES CHANGING TCU100 DATE MOV R0,TCUADR ;SET THE DATE1$: DIR$ #MARK DIR$ #WAIT( BIT #200,TCUADR+6 ;IS HE DONE SETTING ? BEQ 1$ ;BR IF NOT"11$: DIR$ #GETTIM ;GET TIME AGAIN# TST TIMBUF+G.TISC ;IS IT 0 SECONDS$' BEQ 12$ ;MUST RESET TIME AT 0 SECONDSF DIR$ #MARK ;DO 1 SECOND WAIT DIR$ #WAIT7 BR 11$ ;AND TRY AGAING612$: MOV TIMBUF+G.TIHR,R0 ;DO SAME FOR HOURS & MINUTES SWAB R0 BISB TIMBUF+G.TIMI,R0 BIS #40100,R0 MOV R0,TCUADR+2)2$: DIR$ #MARK ;DO ONE SECOND WAIT AGAINT DIR$ #WAITH BIT #200,TCUADR+6 BEQ 2$C EXIT$S ; ;E ;DATA AREASAGETTIM: GTIM$ TIMBUFTIMBUF: .BLKW 8.3MARK: MRKT$ 1,1,2 ;WAIT ONE SECONDS FOR HIM TO SETG WAIT: WTSE$ 1E .END STARTTIMBUF+G.TISC ;IS IT 0 SECONDS$' BEQ 12$ ;MUST RESET TIME AT 0 SECONDSF DIR$ #MARK ;DO 1 SECOND WAIT DIR$ #WAIT7 BR 11$ ;AND TRY AGAING612$: MOV TIMBUF+G.TIHR,R0 ;DO SAME FOR HOURS & MINUTES SWAB R0 BISB TIMBUF+G.TIMI,R0 BIS #40100,R0 MOV R0,TCUADR+2)2$: DIR$ #MARK ;DO ONE SECOND WAIT AGAINT DIR$ #WAITH BIT #200,TCUADR+6 BEQ 2$C EXIT$S ; ;E ;DATA AREASAGETTIM: GTIM$ TIMBUFTIMBUF: .BLKW 8.3MARK: MRKT$ 1,1,2 ;WAIT ONE SECONDS F00BCD E"F$G%TADATADATA"}wL(( *rnjU@75r$*&r J2 r*L.U@@753 r=v v)0,R0 MOV R0,TCUADR+2)2$: DIR$ #MARK ;DO ONE SECOND WAIT AGAINT DIR$ #WAITH BIT #200,TCUADR+6 BEQ 2$C EXIT$S ; ;E ;DATA AREASAGETTIM: GTIM$ TIMBUFTIMBUF: .BLKW 8.3MARK: MRKT$ 1,1,2 ;WAIT ONE SECONDS FTEST,TEST/-SP=TESTLB:[1,1]F77OTS/LB/ASG=TI:6//=C PROG TO DO INPUT FROM CASSETT READ TO FILE WITH NO ECHO LOGICAL*1 ILINE(140) DIMENSION IPRM(6),IST(2) WRITE(5,100)( 100 FORMAT(' ECHO INPUT WITH STATUS'/) CALL GETADR(IPRM,ILINE) IPRM(2)=132$C INITIAL START TO GET INTO LOOP. 200 CALL WTQIO("001020,6,1,150,IST,IPRM,ISW)! WRITE (5,205) IST(1),IST(2) 205 FORMAT(' ',O6,' ',O6). WRITE(5,220)(ILINE(I),I=IFIRST,IST(2)+1) 220 FORMAT(' ',120O4) GOTO 200 300 CALL CLOSE(1)!C CANCEL ANY OUTSTANDING READF. CALL WTQIO("000012,6,4,150,JST,JPRM,JSW) STOP END DIMENSION IPRM(6),IST(2) WRITE(5,100)( 100 FORMAT(' ECHO INPUT WITH STATUS'/) CALL GETADR(IPRM,ILINE) IPRM(2)=132$C INITIAL START TO GET INTO LOOP. 200 CALL WTQIO("001020,6,1,150,IST,IPRM,ISW)! WRITE (5,205) IST(1),IST(2) 205 FORMAT(' ',O6,' ',O6). WRITE(5,220)(ILINE(I),I=IFIRST,IST(2)+1) 220 FORMAT(' ',120O4) GOTO 200 300 CALL CLOSE(1)!C CA  10 LET @#A10=11 20 DELAY 60*60 30 LET A=16*@#A11+@#A12/16 40 U=200 41 V=1000 42 W=1800 43  400 IF A>X GOTO 500 401 REM 180 TO 270 402 D=(A-W)*900/800+1800 403 GOTO 700 500 IF A>Y GOTO 600 501 REM 270 TO 360 502 D=(A-X)*900/800+2700 503 GOTO 700 600 REM > 360 601 D=(A-Y)*900/800+3600 700 REM NOW HAVE DEG X 10 705 D=D+1800 710 IF D<3600 GOTO 720 715 D=D-3600 720 E=D/10 725 F=MOD(D,10) 730 G=D+450 735 IF G<3600 GOTO 745 740 G=G-3600 745 H=G/101 750 I=MOD(G,10) 760 PRINT "GANTRY =",E,".",FA 765 PRINT "DIAG. =",H,".",I= 770 GOTO 10 43  400 IF A>X GOTO 500 401 REM 180 TO 270 402 D=(A-W)*900/800+1800 403 GOTO 700 500 IF A>Y GOTO 600 501 REM 270 TO 360 502 D=(A-X)*900/800+2700 503 GOTO 700 600 REM > 360 601 D=(A-Y)*900/800+3600 700 REM NOW HAVE DEG X 10 705 D=D+1800 710 IF D<3600 GOTO 720 715 D=D-3600 720 E=D/10 725 F=MOD(D,10) 730 G=D+450 735 IF G<3600 GOTO 745 740 G=G-3600 7453TIMSET/PR/-FP,TIMSET/-SP=TIMSET,LB:[1,1]EXEC.STB/SS/ TASK=...TSESTACK=32ASG=MC:1UNITS=1// .TITLE TIMSET< ;THIS PROGRAM JUST READS THE TIME FROM THE TCU100 CLOCK AND> ;RE-FORMATS THE INFORMATION INTO AN ASCII STRING OF THE FORM: ; ; TIM DD-MMM-YY HH:MM:SS ; ;AND SPAWNS ...TIM ;DEFINE YEARYEAR: .ASCII /85/;;;DEFINE TCU 100 REGISTERS$TCUADR=160770 ;DEFINE FIRST ADDRESS TCUDAY=TCUADRTCUMON=TCUADR+1TCUMIN=TCUADR+2TCUHOU=TCUADR+3TCUSEC=TCUADR+4;$.MCALL EXIT$S,DIR$,SPWN$,GMCR$,WTSE$;;*START: DIR$ #GETMCR ;GET MCR COMMAND LINE( MOV #TIMMES+4,R2 00G&H)I*04;POINT TO BUFFER IN R2 MOVB TCUDAY,R1 ;GET DAY( JSR PC,CVRT ;CONVERT TO ASCII & INSERT" MOVB #'-,(R2)+ ;INSERT TERMINATOR MOVB TCUMON,R1 ;GET MONTH$ MUL #3,R1 ;MAKE IT A 3-BYTE OFFSET SUB #3,R1 ;AND ADJUST" ADD #MONTAB,R1 ;ADD BASE OF TABLE MOVB (R1)+,(R2)+ MOVB (R1)+,(R2)+I MOVB (R1)+,(R2)+ ;FILL IN MONTH MOVB #'-,(R2)+ ;AND SEPERATOR MOVB YEAR,(R2)+ MOVB YEAR+1,(R2)+ ;AND YEAR MOVB #' ,(R2)+ ;AND SEPERATOR MOVB TCUHOU,R1 ;GET HOURS( JSR PC,CVRT ;CONVERT TO ASCII & INSERT MOVB #':,(R2)+R MOVB TCUMIN,R1 ;NOW MINUTES JSR PC,CVRT MOVB #':,(R2)+S$ MOVB TCUSEC,R1 ;AND FINALLY SECONDS JSR PC,CVRT DIR$ #TIMDPB ;SPAWN ...TIM) DIR$ #WAIDPB ;WAIT FOR ...TIM TO FINISH1 EXIT$S ;AND EXIT#;TD;SUB TO CONVERT NUMBER (IN R1) TO 2 ASCII DIGITS AND INSTERT AT TEXT;ENTER WITH R1 CONTAING NUMBER4;R2 POINTING TO PLACE TO INSERT 2-DIGIT ASCII NUMBER;RCVRT: CLR R0 ;TO BE SAFE'% DIV #10.,R0 ;SEPERATE THE TWO PARTS  BIS #60,R0 ;CONVERT TO ASCII BIS #60,R1 ( MOVB R0,(R2)+ ;AND PUT IN ASCII MESSAGE MOVB R1,(R2)+ RTS PCT;M;TABLE OF ASCII MONTH NAMESR5MONTAB: .ASCII /JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC/P; ;MESSAGE FOR TIM'TIMMES: .ASCII /TIM DD-MMM-YY HH-MM-SS/ TIMLEN=.-TIMMES .EVEN;V;DPB TO SPAWN TIMT*TIMDPB: SPWN$ ...TIM,,,,,1,,,TIMMES,TIMLEN;T ;GET MCR DPB GETMCR: GMCR$N;G;WAIT FOR EVENT FLAG DPBWAIDPB: WTSE$ 1R .END START0 ;TO BE SAFE'% DIV #10.,R0 ;SEPERATE THE TWO PARTS  BIS #60,R0 ;CONVERT TO ASCII BIS #60,R1 ( MOVB "u~wL(.( *85 \ҕ-Wpe*&RRRҕ-ҝҝҕ *ҕ: *L ҕ: *3 **rr U0U0RJANFEBMARAPRMAYJUNJU*LAUGSEPOCTNOVDECTIM DD-MMM-YY HH-MM-SS  |u~) **)SE$ 1R .END START0 ;TO BE SAFE'% DIV #10.,R0 ;SEPERATE THE TWO PARTS  BIS #60,R0 ;CONVERT TO ASCII BIS #60,R1 ( MOVB | (Uru~w DRMC0Bf@@B@```QMC85 \ҕ-WpeRRRҕ-ҝҝҕ y *ҕ:l ҕ:b j3 r U0U0RJANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDECTIM DD-MMM-YY HH-MM-SS |u~))00J.K/ E"F$G%TADATADATA; ; TRIM.MAC;; CALL TRIM(STRING,LENGTH);A; REMOVES ANY SPACES OR CHARACTERS WITH OCTAL VALUE LESS THAN 40C; FROM THE END OF THE STRING BEGINNING AT LENGTH NO. OF CHARACTERS$; AFTER THE BEGINNING OF THE STRING; .TITLE TRIM .GLOBL TRIMTRIM: MOV 2(R5),R0 MOV 4(R5),R1 ADD (R1),R02$: CMPB -(R0),#40 BGT 3$ CLRB (R0) CMP R0,2(R5) BNE 2$ 3$: RTS PC .ENDҚгN #n\(@ K  @ ٍ~@ H   h""t!""!"""` >""` #4*#4vU(YU(+dPE,K ,Y,+d*|20 20 By:DKH ^S&S@ TT vOX OX@:d9T:dNT^:dDydKZd,dd8ddp>drdxs[f}P[fP}f&f gpF!g {m""{mw{mwKq,z\qFByLOy&6Oy_8[y v[yt![y\MX z z(z z@zH4v~`;9a28#Mv N .MACRO GETNOD R,?L1,?L2 .MCALL CALL MOV NODFRE,R ;GET FREE NODE BNE L1 ;STILL SOME LEFT JMP LOCKED ;NONE LEFT'L1: MOV (R),NODFRE ;UPDATE FREE POINTER BNE L2 ;STILL SOME LEFT( CALL CHKFRE ;DISABLE AST'S FOR A WHILEL2:  .ENDM:N .MACRO CALL RTN JSR PC,RTN .ENDM4N .MACRO RETURN RTS PC .ENDM:N .MACRO RECALL JSR PC,@(SP)+ .ENDMvN .MACRO ABSDIF A,B,C,?L1 SUB A,B .IF NB C MOV B,C .ENDC BPL L1 NEG BL1:D .ENDMLN .MACRO EXCHR A,BF XOR A,B XOR B,A XOR A,B .ENDMNN .MACRO EXCHS A,B,CO MOV A,C MOV B,A MOV C,B .ENDM:N .MACRO CMOV$3 VAL,OFF .IIF B,VAL,.MEXIT .NTYPE PAR$$$,VAL .IF NE,PAR$$$&7 MOV VAL,-(SP), MOV @(SP),OFF(R0) ADD #2,(SP)R MOV @(SP),OFF+2(R0)N ADD #2,(SP) MOV @(SP)+,OFF+4(R0) .IFF( MOV (VAL),OFF(R0) MOV 2(VAL),OFF+2(R0) MOV 4(VAL),OFF+4(R0) .ENDC .ENDM00K6)I*04N .MACRO ENTER A,B,C,D,E,F .MCALL S$AVER$R0=0R$R1=0R$R2=0R$R3=0R$R4=0R$R5=0 .IIF NB A S$AVE A .IIF NB B S$AVE B .IIF NB C S$AVE C .IIF NB D S$AVE D .IIF NB E S$AVE E .IIF NB F S$AVE F .ENDMN .MACRO DEFERR NAME,VALUE,TEXT .IIF NDF PR$ERR,PR$ERR=0, .IF NB VALUEF .WORD VALUE2 .IFF .WORD NAME .ENDC .WORD PR$ERR PR$ERR=.-4+ .NCHR X, .WORD X .ASCII ^NAME TEXT^) .EVEN .ENDMbN .MACRO ENDERR NAME .IF NB NAME NAME=PR$ERR, .ENDC PR$ERR=0  .ENDMhN .MACRO ERROR MES0 .MCALL CALL,PSTRA CALL ERRPFX PSTR ^^MES^ JMP DIE .ENDMLN .MACRO ERROR1 MSG .MCALL PERRSF PERRS /MSG/ .ENDM"N. .MACRO GCML BLOCK,ADPRM,LNPRM,EOF,ERR,?L1,?L2 .MCALL GCML$,CALL GCML$ BLOCK,ADPRM,LNPRM .IF NB EOF'ERR. BCC L2 .IF NB EOF CMPB #GE.EOF,G.ERR(R0)T BNE L1D CALL EOFN L1:) .ENDC .IF NB ERR CALL ERR. .ENDCE L2: .ENDC .ENDMN! .MACRO CSI1G CSBLK,GCBLK,ERR,?L1 .MCALL CSI$1,CALL( CSI$1 CSBLK,GCBLK+G.CMLD+2,GCBLK+G.CMLD .IF NB ERR BCC L1 CALL ERR L1: .ENDC .ENDMN& .MACRO CSI1 CSBLK,ADBUF,LNBUF,ERR,?L1 .MCALL CSI$1,CALL CSI$1 CSBLK,ADBUF,LNBUF .IF NB ERRC BCC L1 CALL ERR L1: .ENDC .ENDMN# .MACRO CSI2 CSBLK,IO,SWVAL,ERR,?L1. .MCALL CSI$2,CALL CSI$2 CSBLK,IO,SWVAL) .IF NB ERR  BCC L1 CALL ERR L1: .ENDC .ENDM:N .MACRO HCDEF.HCOP=10 ;OP CODEC1HCDXS=12 ;LOG(2) WIDTH OF BLOCK (VERSATEK POINTS)K2HCDYS=14 ;LOG(2) HEIGHT OF BLOCK (VERSATEK POINTS)HCNSTR=16 ;NUMBER OF STRIPSMHCNROW=20 ;NUMBER OF ROWS #HCNCOP=22 ;NUMBER OF COPIES DESIREDL1HCDELF=24 ;(BYTE) IF ON, DELETE FILE AFTER RASTERC .ENDMN .MACRO HDDEF.HDDATE=0 ;DATE/TIME (8 WORDS) "HDXMAX=20 ;MAXIMUM X VALUE IN FILE"HDXMIN=22 ;MINIMUM X VALUE IN FILE"HDYMAX=24 ;MAXIMUM Y VALUE IN FILE"HDYMIN=26 ;MINIMUM Y VALUE IN FILEHDTEXT=30 ;COMMENT TEXTC%HDSTAB=100 ;4 8 WORD TABLES FOR CHSETHHDSORT=200 ;-1 IF UNSORTED.0HDLOGX=HDSORT ;IF SORTED, LOG X WIDTH (UNSCALED)#HDLOGY=202 ; " , LOG Y HEIGHTWHDNSTR=204 ;NUMBER OF STRIPSHDNROW=206 ;NUMBER OF ROWS8HDSPTR=210 ;LIST OF POINTERS TO STARTING BLOCKS OF PANES ;(ROW MAJOR ORDER) .ENDMN .MACRO LEAVER .IF NE R$R5 MOV (SP)+,R5L .ENDC .IF NE R$R4 M MOV (SP)+,R4I .ENDC .IF NE R$R3 M MOV (SP)+,R3I .ENDC .IF NE R$R2 Y MOV (SP)+,R2 .ENDC .IF NE R$R1 C MOV (SP)+,R1  .ENDC .IF NE R$R0 H MOV (SP)+,R01 .ENDC .ENDMZN .MACRO MVADR DISP,REG,DEST) MOV #DISP,DEST ADD REG,DESTI .ENDMxN .MACRO MOV3 A,B MOV #A,R5 MOV #B,R4 MOV (R5)+,(R4)+ MOV (R5)+,(R4)+ MOV (R5),(R4) .ENDMN .MACRO CMP3 A,B,?L1 MOV #A+4,R5 MOV #B+4,R4 CMP (R5),(R4) BNE L1C CMP -(R5),-(R4) BNE L1+ CMP -(R5),-(R4)L1:$ .ENDMN .MACRO ADD3 A,B MOV #A,R5 MOV #B,R4 ADD (R5)+,(R4)+ ADC (R4)+ ADC (R4). ADD (R5)+,-2(R4)( ADC (R4). ADD (R5),(R4) .ENDMN .MACRO SUB3 A,B MOV #A,R5 MOV #B,R4 SUB (R5)+,(R4)+ SBC (R4)+ SBC (R4)A SUB (R5)+,-2(R4)# SBC (R4)# SUB (R5),(R4) .ENDMpN# .MACRO CLR3 A ;DOES NOT AFFECT R4 MOV #A,R5 CLR (R5)+ CLR (R5)+ CLR (R5)+ .ENDMN$ .MACRO NEG3 A ;DOES NOT AFFECT R4 MOV #A+4,R5 COM (R5)M COM -(R5) COM -(R5) ADC (R5)+ ADC (R5)+ ADC (R5), .ENDMXN$ .MACRO MOV2 A,B ;USES NO REGISTERS MOV A,B MOV A+2,B+2 .ENDMlN( .MACRO CMP2 A,B,?L1 ;USES NO REGISTERS CMP A+2,B+2 BNE L1 CMP A,BL1:  .ENDMN# .MACRO ADD23 A,B ;DOES NOT USE R4 MOV #B,R5 ADD A,(R5)+ ADC (R5)+ ADC (R5)T ADD A+2,-2(R5) ADC (R5) .ENDMN# .MACRO SUB23 A,B ;DOES NOT USE R4A MOV #B,R5 SUB A,(R5)+ SBC (R5)+ SBC (R5) SUB A+2,-2(R5)- SBC (R500K>/ E"F$G%TADATADATA)( .ENDMRN# .MACRO CLR2 A ;USES NO REGISTERS  CLR A CLR A+2 .ENDMbN$ .MACRO ADD2 A,B ;USES NO REGISTERS ADD A,B ADC B+2 ADD A+2,B+2 .ENDMbN$ .MACRO SUB2 A,B ;USES NO REGISTERS SUB A,B SBC B+2 SUB A+2,B+2 .ENDM|N! .MACRO NEG2 A ;DOES NOT USE R4 MOV #A+2,R5 COM (R5)5 COM -(R5) ADC (R5)+ ADC (R5)R .ENDM4N? .MACRO MUL12 A,B,C,?L1 ;C MUST BE A REGISTER OTHER THAN R4,R5-+ MOV #B+2,C ;IT IS DESTROYED BY THE MACRO MOV (C)+,R4 MUL A,R4 MOV R4,(C)C MOV R5,-(C) MOV -(C),R4 MUL A,R4 BPL L1 ADD A,2(C)E ADC 4(C)E DEC 4(C)BL1: MOV R5,(C)+A ADD R4,(C)+ ADC (C) .ENDMN- .MACRO PARMSA A1,A2,A3,A4,A5,A6,A7,A8,A9,A10A;BA; THIS MACRO CREATES A FORTRAN-STYLE PARAMETER LIST ON THE STACK,M/; LEAVING R5 POINTING TO THE START OF THE LIST.AE; THE MACRO PARAMETERS ARE TAKEN TO BE ADDRESSES OF THE ACTUAL PARAMS ; TO CLEAR THE STACK,4%; SP SHOULD BE INCREMENTED BY PARMSP. ; " .NARG PARMSN ;NUMBER OF ARGUMENTS;RPARMSP=0* .IRP ARG, .IF NB,ARGCPARMSP=PARMSP+2D MOV ARG,-(SP) ;STORE ADDRESSD .IFF+ .IF NE,PARMSPPARMSP=PARMSP+2 MOV #-1,-(SP) .ENDC .ENDC .ENDR MOV #PARMSN,-(SP)& MOV SP,R5 ;SET UP PARAM LIST POINTERPARMSP=PARMSP+2A .ENDMN- .MACRO PARMSV A1,A2,A3,A4,A5,A6,A7,A8,A9,A10E;SA; THIS MACRO CREATES A FORTRAN-STYLE PARAMETER LIST ON THE STACK,A/; LEAVING R5 POINTING TO THE START OF THE LIST.F; THE MACRO PARAMETERS ARE TAKEN TO BE THE VALUES OF THE ACTUAL PARAMS; TO CLEAR THE STACK,.$; SP SHOULD BE INCREMENTED BY PARMSP;S" .NARG PARMSN ;NUMBER OF ARGUMENTS;MPARMSP=0* .IRP ARG, .IF NB,ARG# MOV ARG,-(SP) ;STORE ARGUMENT" MOV SP,-PARMSN*2(SP) ;AND ADDRESSPARMSP=PARMSP+2 .IFF .IF NE,PARMSPPARMSP=PARMSP+2, CLR -(SP) MOV #-1,-PARMSN*2(SP) .ENDC .ENDC .ENDR! SUB #PARMSN*2,SP ;SKIP ADDRESSESVPARMSP=PARMSP+ MOV #PARMSN,-(SP)PARMSP=PARMSP+2E MOV SP,R5 .ENDMtN .MACRO INITPD FDB,PT0,PT1 MOV FDB,-(SP) MOV PT0,-(SP) MOV PT1,-(SP) CALL PDINIT .ENDMN7 .MACRO PARSPD SETUP,HEADER,MOVE,PDRAW,DRAW,POINT,CHARS .MCALL CALL CALL PDPARS/ .WORD SETUP,HEADER,MOVE,PDRAW,DRAW,POINT,CHARSE .ENDM8N .MACRO PCRLFM CALL QUTCRR .ENDM<N .MACRO PDCALL PTRN CALL @PTR .ENDMjN .MACRO PDEC N,SIGNM .MCALL QT$SGN MOV N,-(SP) QT$SGN SIGN CALL QUTDPT .ENDMlN .MACRO PDECB N,SIGN .MCALL QT$SGB MOVB N,-(SP)S QT$SGB SIGN CALL QUTDPB .ENDMN .MACRO PDFDEFCMIN=10ACPRIM=10CLINE=11 CPOINT=12RCELLC=13 CELLCC=14 CHCHAR=20L CSCHAR=21A CMAX=CSCHARTCEOF=377 .ENDMN .MACRO PERR MES,?L1,?L2 .MCALL PSTR CALL L1 BR L2L1: JSR R0,QUTERR PSTR ^^MES^ CALL QUTPCN JMP DIEL2:. .ENDM N .MACRO PERRM N,TAB,?L1,?L2,?L3N .MCALL TTYOUT MOV R0,-(SP)C MOV R1,-(SP)N MOV N,R0 MOV TAB,R1AL1: CMP (R1)+,R0 BEQ L2T MOV (R1),R1 BNE L1Q BR L3L2: CMP (R1)+,(R1)+N TTYOUT R1,-(R1)L3: MOV (SP)+,R1 MOV (SP)+,R0I .ENDMrN .MACRO PERRS MES1 .MCALL PSTR JSR R0,QUTERR PSTR ^^MES^ CALL QUTPCM JMP DIE .ENDMjN .MACRO POCT N,SIGNR .MCALL QT$SGN MOV N,-(SP) QT$SGN SIGN CALL QUTOPT .ENDMlN .MACRO POCTB N,SIGN .MCALL QT$SGB MOVB N,-(SP), QT$SGB SIGN CALL QUTOPB .ENDMN .MACRO PRAD5S ADDR,LEN,BLANKM MOV ADDR,-(SP)L MOV LEN,-(SP) .IF NB BLANK CALL QUTB5S) .IFFN CALL QUTR5SR .ENDC .ENDMN .MACRO PRAD50 VAL,BLANK MOV VAL,-(SP) .IF NB BLANK CALL QUTB50U .IFFP CALL QUTR50L .ENDC .ENDMvN .MACRO PSTR STRING,?L1,?L2G JSR R5,QUTSTR .WORD L2-L1L1: .ASCII STRINGC L2: .EVEN .ENDM6N .MACRO PTAB CALL QUTTAB .ENDMN00KFLM*04 .MACRO QT$ERR FNAM,?L1,?L2,?L3M MOV #L1,R2 CALL .QTERR BR L3L1: .WORD L2-L1-2V .ASCII /FNAM/ L2: .EVEN)L3:F .ENDMVN .MACRO QT$SGB SIGN5 .IF NB SIGN CALL QUTSGB .ENDC .ENDMVN .MACRO QT$SGN SIGNN .IF NB SIGN CALL QUTSGNF .ENDC .ENDMBN .MACRO S$AVE XR$'X=1 MOV X,-(SP) .ENDMzN .MACRO SP$BGN SPBLK,TASK,ID,OP .MCALL SP$LOD,CALL SP$LOD SPBLK,TASK,ID,OP CALL .SPBGN .ENDMN) .MACRO SPBLK$ TASK,ID,OP,MES,LEN,LUN,EVF#8 .MCALL SPOFF$,RAD50$,CWORD$,FDBDF$,FDRC$A,FDBK$A,FDOP$A .IIF NB,LUN,SP.LUN=LUN .IIF NB,EVF,SP.EVF=EVF SPOFF$T...PC1=....PC3=. RAD50$ ,2 .IF NB,ID RAD50$ ,3 .IFF .RAD50 /SPOOL /N .WORD 0I .ENDC CWORD$ ,SP.OP CWORD$ ,SP.MES+2 CWORD$ ,SP.MES CWORD$ 256.,SP.BFL..=...PC1+SP.FDB FDBDF$A FDRC$A FD.RWM" FDBK$A ...PC3+SP.BUF,512.,,SP.EVF FDOP$A SP.LUN,,,FO.WRT.=...PC3+S.SPB .ENDMdN .MACRO SP$END SPBLK .MCALL LDFDB$,CALL. LDFDB$ SPBLKD CALL .SPEND .ENDMN' .MACRO SP$LOD SPBLK,TASK,ID,OP,MES,LEN.# .MCALL LDFDB$,CMOV$3,CMOV$2,CMOV$W. LDFDB$ SPBLK> CMOV$2 TASK,SP.TSK5 CMOV$3 ID,SP.ID CMOV$W OP,SP.OP CMOV$W MES,SP.MES+2 CMOV$W LEN,SP.MES .ENDMN .MACRO SPOFF$ .MCALL FDBSZ$ FDBSZ$.SP.TSK=0SP.ID=SP.TSK+4 SP.OP=SP.ID+6RSP.MES=SP.OP+2SP.BFL=SP.MES+4PSP.CNT=SP.BFL+2LSP.PTR=SP.CNT+2.SP.REC=SP.PTR+2MSP.FDB=SP.REC+2SP.BUF=SP.FDB+S.FDBKS.SPB=SP.BUF+512.L .ENDMvN .MACRO SPOOL$ SPBLK,MES,LEN .MCALL SP$LOD,CALLB SP$LOD SPBLK,,,,MES,LEN CALL .SPOOL .ENDMN" .MACRO TINIT LUN,EVF,DEV,UNIT,?L1 .MCALL DIR$,ALUN$,QIO$,WTSE$P .ENABL LSB, DIR$ #QUTAO BR L1 QUTQ:: QIO$ IO.WVB,LUN,EVF,,QUTSQUTW:: WTSE$ EVFQUTS:: .WORD 0 .WORD 0QUTDSW::.BLKW 1T .IF NB,DEVP QUTA:: ALUN$ LUN,DEV,UNITS .IFFP QUTA:: ALUN$ LUN,TI,0S .ENDCL1:R .DSABL LSB .ENABL LSB+ .DSABL LSB.CR=15DLF=12PHT=11F .ENDMN .MACRO TTYOUT ADDR,LENB .MCALL DIR$ MOV ADDR,QUTQ+14 MOV LEN,QUTQ+16 DIR$ #QUTQ DIR$ #QUTWM .ENDMN0 .MACRO XMIT$ OPS,IOPS,LMESS,LIMESS,NQUE,LUN,EVF .MCALL XM$LQU XM$LQUXM.OP:: .IF NB,OPS .WORD O .ENDCXM.MOP==.-XM.OP:XM.IOP::.IF NB,IOPSO .WORD  .ENDCXM.MIP==.-XM.IOPXM.LMS==LMESS+255.&<-256.>XM.LIM==LIMESS+255.&<-256.>AXM.MES::.BLKW XM.LMSXM.IMS::.BLKW XM.LIMXM.QUE::.BLKW NQUE*XM.LQU XM.NQU==NQUE XM.TLN==LUNN XM.MLN==LUN+1 XM.TEF==EVF XM.MEF==EVF+1B XM.REF==EVF+2 .ENDM6N .MACRO XM$LQU XM.LQU=36D .ENDM~N .MACRO FRENOD R" MOV NODFRE,(R) ;LINK TO FREE LIST+ MOV R,NODFRE ;AND UPDATE FREE LIST POINTER  .ENDM&N .MACRO GETPAC R,?L1,?L2 .MCALL CALL MOV PACFRE,R ;GET FREE PACKET BNE L1 ;STILL SOME FREES JMP LOCKED ;NONE FREEI'L1: MOV (R),PACFRE ;UPDATE FREE POINTER BNE L2 ;STILL MORE FREEE( CALL CHKFRE ;DISABLE AST'S FOR A WHILEL2: CLR (R) ;CLEAR OUT LINK .ENDMN .MACRO FREPAC R MOV (R),-(SP) ;SAVE LINKR' MOV PACFRE,(R) ;AND POINT TO FREE LIST' MOV R,PACFRE ;UPDATE FREE LIST POINTERL& MOV (SP)+,R ;AND RETURN NEXT IN LINK .ENDM LIST POINTER  .ENDM .MACRO GETPAC R,?L1,?L2 .MCALL CALL MOV PACFRE,R ;GET FREE PACKET BNE L1 ;STILL SOME FREES JMP LOCKED ;NONE FREEI'L1: MOV (R),PACFRE ;UPDATE FREE POINTER BNE L2 ;STILL MORE FREEE;'; HAND LOADABLE PROGRAM TO TEST CONSOLE;SWR=0 ;SWITCH REGISTERRCSR=177560 ;RECEIVE STATUSRBUF=177562 ;RECEIVE BUFFERXCSR=177564 ;XMIT STATUSXBUF=177566 ;XMIT BUFFER;;.=.+1000 ;READ TESTA: MOV @#RBUF,@#SWR ;CHECK CHAR BR A;; ;WRITE TEST#B: BIT #200,@#XCSR ;WAIT TILL READY BEQ B MOV @#SWR,@#XBUF ;OUT THE CHAR BR B;; ;ECHO TEST(C: BIT #200,@#RCSR ;WAIT TILL CHAR INPUT BEQ C#D: BIT #200,@#XCSR ;WAIT TILL READY BEQ D! MOV @#RBUF,@#00LNMO E"F$G%TADATADATAXBUF ;ECHO THE CHARL BR CA;O;S ;ALL CHARACTER TEST(E: BIT #200,@#XCSR ;WAIT TILL XMIT READY BEQ E MOVB R0,@#XBUF ;XMIT A CHAR INC R0I BR ES .END177566 ;XMIT BUFFER;;.=.+1000 ;READ TESTA: MOV @#RBUF,@#SWR ;CHECK CHAR BR A;; ;WRITE TEST#B: BIT #200,@#XCSR ;WAIT TILL READY BEQ B MOV @#SWR,@#XBUF ;OUT THE CHAR BR B;; ;ECHO TEST(C: BIT #200,@#RCSR ;WAIT TILL CHAR INPUT BEQ C#D: BIT #200,@#XCSR ;WAIT TILL READY BEQ D! MOV @#RBUF,@#165000 012737 ;165002 177777 ;165004 000706 ;165006 000405 ;165010 005037 ;165012 000706 ;165014 000402 ;165016 000240 ;165020 000773 ;165022 010037 ;165024 000700 ;165026 010137 ;165030 000702 ;165032 010437 ;165034 000704 ;165036 012737 ;165040 165676 ;165042 000004 ;165044 012737 ;165046 000340 ;165050 000006 ;165052 012737 ;165054 165736 ;165056 000030 ;165060 012737 ;165062 000340 ;165064 000032 ;165066 000401 ;165070 000777 ;165072 005006 ;165074 100404 ;165076 102403 ;165100 101002 ;165102 002401 ;165104 101401 ;165106 000777 ;165110 005306 ;165112 100003 ;165114 001402 ;165116 002001 ;165120 003401 ;165122 000777 ;165124 006006 ;165126 102002 ;165130 103001 ;165132 001001 ;165134 000777 ;165136 012706 ;165140 125252 ;165142 000402 ;165144 000000 ;165146 000776 ;165150 010600 ;165152 010001 ;165154 010102 ;165156 010203 ;165160 010304 ;165162 010405 ;165164 160501 ;165166 002401 ;165170 001401 ;165172 000777 ;165174 006102 ;165176 103001 ; 7165200 002401 ;165202 000777 ;165204 060203 ;165206 005203 ;165210 005103 ;165212 060301 ;165214 103401 ;165216 003401 ;165220 000777 ;165222 006004 ;165224 050403 ;165226 060503 ;165230 005203 ;165232 103402 ;165234 005301 ;165236 002401 ;165240 000777 ;165242 005100 ;165244 101401 ;165246 000777 ;165250 040001 ;165252 060101 ;165254 003001 ;165256 003401 ;165260 000777 ;165262 000301 ;165264 020127 ;165266 052125 ;165270 001004 ;165272 030405 ;165274 003002 ;165276 005105 ;165300 001001 ;165302 000777 ;165304 112700 ;165306 177401 ;165310 100001 ;165312 000777 ;165314 077002 ;165316 005001 ;165320 005201 ;165322 077002 ;165324 005700 ;165326 001002 ;165330 005701 ;165332 001401 ;165334 000777 ;165336 012706 ;165340 000776 ;165342 004767 ;165344 000002 ;165346 000777 ;165350 022716 ;165352 165346 ;165354 001401 ;165356 000777 ;165360 012716 ;165362 165370 ;165364 000207 ;165366 000777 ;165370 005046 ;165372 012746 ;165374 165402 ;165376 000002 ; 0165400 000777 ;165402 000137 ;165404 165410 ;165406 000777 ;165410 012705 ;165412 160000 ;165414 005037 ;165416 000006 ;165420 012737 ;165422 165426 ;165424 000004 ;165426 012706 ;165430 000776 ;165432 005745 ;165434 012703 ;165436 177746 ;165440 012737 ;165442 165466 ;165444 000004 ;165446 012713 ;165450 001015 ;165452 012737 ;165454 165662 ;165456 000114 ;165460 005037 ;165462 000116 ;165464 000403 ;165466 012737 ;165470 165676 ;165472 000004 ;165474 012702 ;165476 001000 ;165500 010200 ;165502 010010 ;165504 005720 ;165506 020005 ;165510 101774 ;165512 010200 ;165514 011001 ;165516 020001 ;165520 001402 ;165522 104000 ;165524 000000 ;165526 005120 ;165530 020005 ;165532 101770 ;165534 014001 ;165536 005101 ;165540 020001 ;165542 001402 ;165544 104000 ;165546 000000 ;165550 020002 ;165552 001370 ;165554 012737 ;165556 165704 ;165560 000004 ;165562 000402 ;165564 000167 ;165566 177210 ;165570 005013 ;165572 012737 ;165574 165676 ;165576 000004 ; 0165600 012702 ;165602 001000 ;165604 010200 ;165606 010010 ;165610 005720 ;165612 020005 ;16561400MVNYO\P]04 101774 ;165616 010200 ;165620 005110 ;165622 005110 ;165624 021000 ;165626 001402 ;165630 104000 ;165632 000000 ;165634 005720 ;165636 032737 ;165640 000400 ;165642 177750 ;165644 001403 ;165646 104000 ;165650 000000 ;165652 000406 ;165654 020005 ;165656 101760 ;165660 000411 ;165662 104000 ;165664 000000 ;165666 000776 ;165670 012713 ;165672 001015 ;165674 000403 ;165676 104000 ;165700 000000 ;165702 000776 ;165704 005737 ;165706 000706 ;165710 001002 ;165712 000000 ;165714 000776 ;165716 013700 ;165720 000700 ;165722 013701 ;165724 000702 ;165726 013704 ;165730 000704 ;165732 000164 ;165734 000002 ;165736 012704 ;165740 165762 ;165742 105737 ;165744 177564 ;165746 100375 ;165750 112437 ;165752 177566 ;165754 105714 ;165756 001371 ;165760 000002 ;165762 005015 ;165764 051105 ;165766 047522 ;165770 000122 ;165772 000000 ;165774 041460 ;165776 124140 ;00706 ;165710 001002 ;165712 000000 ;165714 000776 ;165716 013700 ;165720 000700 ;165722 013701 ;165724 000702 ;165726 013704 ;165730 000704 ;165732 000164 ;165734 000002 ;165736 012704 ;165740 165762 ;165742 105737 ;165744 177564 ;165746 100375 ;165750 112437 ;165752 177566 ;165754 105714 ;165756 001371 ;165760 000002 ;165762 005015 ;165764 051105 ;165766 047522 ;165770 000122 ;165772 000000 ;165774 041460 ;165710 ! PROGRAM UPDMAS.BAS.11 ! TO UPDATE ENTRIES IN ACCOUNT MASTER INDEX120 DIM A$[80]V,B$[80]V,N$[40]V,T1$[3]V(2),R$[80]V30 N$="MASTER.INF/RN/LN:80/UP" 40 OPEN #3,N$=50 R$="UNASSIGNED/LARRY/FRANK/DAN/DEANA/HARVEY/CLARENCE/HANS"A60 R1=7 : ! DEFINE MAX NUMBER OF PERSONS RESPONSIBLE FOR ACCOUNTS70 IF END THEN 6002100 INPUT "ACCOUNT TO UPDATE - (NO BRACKETS) ",G,U110 FOR I=1 TO NRC(3)120 INPUT LINE #3'I,A$130 B$=SBS$(A$,2,8)140 B$=LTR$(TRM$(B$))150 T1$(1)=PIECE$(B$,",",1)160 T1$(2)=PIECE$(B$,",",2)A#170 G1=VAL(T1$(1)) : U1=VAL(T1$(2))O180 IF G1=G AND U1=U THEN 300V 190 NEXT I200 PRINT "ENTRY NOT FOUND"N 210 GOTO 100"300 PRINT "ACCOUNT: ";SBS$(A$,1,9)H310 PRINT "CURRENT RESPONSIBILITY: ";PIECE$(R$,"/",VAL(SBS$(A$,10,2))+1)#320 PRINT "RESPONSIBILITY CHOICES:"F330 FOR J=1 TO R1 -340 PRINT " "+STR$(J)+") "+PIECE$(R$,"/",J+1)O 350 NEXT J360 INPUT LINE B$O/365 IF LEN(B$)=0 THEN LET J1=VAL(SBS$(A$,10,2))2%366 IF LEN(B$)<>0 THEN LET J1=VAL(B$))7370 IF J1<0 OR J1>R1 PRINT "INVALID ANSWER " : GOTO 320V420 B$=RJS$(STR$(J1),2))430 CALL "INSTRG"(A$,B$,10) 440 GOTO 500!500 PRINT "DESC: ";SEG$(A$,12,80)1510 INPUT LINE "NEW DESC: ",B$520 IF LEN(B$)=0 THEN 540C530 CALL "INSTRG"(A$,B$,12,69)540 PRINT #3'I,A$1 550 GOTO 100 600 CLOSEO605 IF END THEN 0F610 RUN "MASTER"1 -340 PRINT " "+STR$(J)+") "+PIECE$(R$,"/",J+1)O 350 NEXT J360 INPUT LINE B$O/365 IF LEN(B$)=0 THEN LET J1=VAL(SBS$(A$,10,2))2%366 IF LEN(B$)<>0 THEN LET J1=VAL(B$))7370 IF J1<0 OR J1>R1 PRINT UPLINE=UPLINELB:[1,1]F77OTS/LB/PRI=150ASG=TI:6//)C PROG TO DO UPLINE LOAD WITH NO ECHO/ LOGICAL*1 ILINE(140),JLINE(140),FNAME(30)- DIMENSION IPRM(6),JPRM(6),IST(2),JST(2) IFIRST=1 WRITE(5,100)7 100 FORMAT(' PROGRAM TO READ TEXT FROM REMOTE SYSTEM'" 1 /'$NAME OF OUTPUT FILE ? ') READ(5,110)KQ,FNAME 110 FORMAT(Q,30A1)E OPEN (UNIT=1, FILE=FNAME, CARRIAGECONTROL='LIST', STATUS='NEW') CALL GETADR(IPRM,ILINE) CALL GETADR(JPRM,JLINE) IPRM(2)=132 JPRM(2)=132$C INITIA00P^Q`Rd"F$G%TADATADATAL START TO GET INTO LOOP, CALL QIO("001020,6,1,150,IST,IPRM,ISW) GOTO 210, 200 CALL QIO("001020,6,1,150,IST,IPRM,ISW) CALL WAITFR(2) CALL CLREF(2)0 IF(JST(1).LT.1)GOTO 300E IF(JST(2).LT.1)GOTO 210 , WRITE(1,220)(JLINE(I),I=IFIRST,JST(2)), 210 CALL QIO("001020,6,2,150,JST,JPRM,JSW)C NOW WAIT FOR FIRST QIO CALL WAITFR(1) CALL CLREF(1)L IF(IST(1).LT.1)GOTO 300L IF(IST(2).LT.1)GOTO 200M, WRITE(1,220)(ILINE(I),I=IFIRST,IST(2)) 220 FORMAT(120A1) GOTO 200 300 CLOSE (UNIT=1)!C CANCEL ANY OUTSTANDING READQ. CALL WTQIO("000012,6,4,150,JST,JPRM,JSW) STOP ENDF(2)0 IF(JST(1).LT.1)GOTO 300E IF(JST(2).LT.1)GOTO 210 , WRITE(1,220)(JLINE(I),I=IFIRST,JST(2)), 210 CALL QIO("001020,6,2,150,JST,JPRM,JSW)C NOW WAIT FOR FIRST QIO CALL WAITFR(1) CALL CLREF(1)L IF(IST(1).LT.1)GOTO 300L IF(IST(2).LT.1)GOTO 200M, WRITE(1,220)(ILINE(I),I=IFIRST,IST :G Da p' PROGRAM TO READ TEXT FROM REMOTE SYSTEM $NAME OF OUTPUT FILE ?  w   ,a   1xs 1xsDa Jl | 1xs 1xs6 1xs "1xsB $1xs(T*X,P.\ 01xsN 21xs6 41xsZ8`X@`B\ D1xsR F1xsB H1xs^.PdXh\ 1xsR 1xsB 1xs^ G` : 7       z`Wj1xsV &Da *`.!y 6Da F:>; >1xsXB:x< F,a J:x N!y RDa lVE`[ ZDa ^,\\     -- | Da  ,1xs81xsD Da k&j *Da .k 2Da 6~ :Da >0 B1xsRJ1xsT VDa LZ`b!&e !7    -- |1xsT 1xsV 1xs:"1xs\&!y,j 0Da 4k 8Da <~ @Da D0 H1xsNP1xsP \Da L``L!&e !7   & \1xsP 1xsV 1xs:"1xs\&!y,j4j 8Da <z @Da D:Jy8hz`Wj`!y>;:x<:x E`[,k~0 :z:y8h,1z`yG Z Gx/O *Da ,a 1xs`SGDa <~ @Da D0 H1xsNP1xsP \Da L``L!&e !7   & \1xsP 1xsV 1xs:"1xs\&!y,j4j 8Da <z @Da D:Jy8hz`Wj`!y>;:x<:x E`[,k~0 :z:y8h,1z`yG Z Gx/O \\(U AU1̅u: DRSYSYSYSYTITIMO00RfYO\P]04`G,````SYSYSYSYTITIMO1t!# N #w6%)5 $R&wC @AW P ~ & & & & ` fRRRRC      8Lf ? e |RyeB  & & LP ο & & & & & ffI  eA C & ~`  `Ba#   ~ L f&f&  B: 7 $j8 Գ ԭ~ ȯ^ ܮ2     /8   -O- H!&e  !7 (  f 4- -~ jl!&e !7Z ʬ|t 4 <&  ' PROGRAM TO READ TEXT FROM REMOTE SYSTEM $NAME OF OUTPUT FILE ?  w   <HT<`XHdXHdFt p " F,4 P4  ȋ8 ~נ%נ*נ-נ.נ0נ9נAנZȠ yנ0נ7נ*נ,A jȠh f  oנ"A   #A aנ$נ%נ*נ0נ9נAנZנ_נ.  נ.נ; dנ0נ9 ]נ- X נ* QA  נ, Dנ=  >5 B>U (w^נ/* . ,נ$נ-נ.נ0נ9נAנZ נ_ נ:  Dנ"  0f&f E^`  UQ  UQ ËUI U `e  !ddC    D%*.C U 0 0 W ,Uw6W /@ : ^BDaW-Ί WNWOD!BΊz CECCD! D! ΋5  e ΐ TpRpR΋pBC5N KR΋KBAE:D0CĊ f eB  Dҁ CSĊ , WB E Br Ε f)& 6 l(*  E 'W " =N  W :+W = 1 #W ,W / %W %W *Հ W <W [W >W ] v(* 6 e  &&f  E3  ߆ %  І %ĉĆ BB ĉ , ,‰; ,JJV 3Vȥ ȕ$ȥ+ `l s@ Ps`; Fs,3/"R"'" 3 0As  :   >3  H JhŀdՀ`[WB ;  M  B@ 3VA3 N  & LwwtF3   H Z3 3 V3 N J  "e$"F3 Z NE% %00RvYO\P]04 % 5%% W 3W H Nwp `5@ @  E5e73 *,JJ I,J Jҕ JxT96%  Ttr  $%T %T R%TR3,% e3LsNP(3LsN xsP%% %2 hsR%2%4 TsPRNZL&P N N5@ Х,  N: %RN ‰Nc % U%%  %2R%6RR n%B%.D THwA'2`AH lT  BE&~WtEB~Lt  sWwR. B%LHTD` B~RHT%S%.S HA'L 2`Aج  $J J N   - ΋  BE~WtEB~w . ;%LHT w Е `CBД~w TH @` C~ƨȨԧȦ`ئf:bbbbbbbbʨШ֨&&&& (*2b֨bbbbb<(0+  "1""$BBDBBDB  `ԯ$@ бδvҵ *Rfz.ȶ&t !!@ D6>bdhvx^`STOP PAUSE ____________________;________W_____}__y___;;;;1;;;;;;;13;;9; -- ERRORFCS:Exiting due to (Error count exceeded)at PC = @LB:[1,2]F77OTS(@3 l & fA BU%D~   l耖% l. 4 dw lX3 3 d3 d 3UlE0@A t<5t\ l 3 XsXsd3 dW@W@ A@ A% 3 \s 3D  D sdbD 3sss B`C r\wD 333b33 \hD 333 \D 3D 33D 3dO 3 D A 5 5,D 5 H4HRH4 5 5 HRȋ 5 0"ED 5UD ȋ ~  3 H 3 b3 d33  5/WtE % sTsHlsX 3lTH,HX33H3T 3HsT              x   b  l T3H eH3 3   ы 3HT3      w & B`# %߉3 l fA BU%D~  ­  l뀖% le 5E e r. 8dwlX3 3 d3   ȋ35(Ul lA WBA R U l@ 4<4\ 5 5 Ft/ lW-W-UW-5U  l lW-U5U 5  5e3 4 U lU@4% U v %48  l N l4( : l4,  / A t<.t\( l 3 XsXsd3 d 4t l tU 4$ l% lA L\:y4555U5U5U lsZ3 ZEW-U lAWWA@ @ AV ߉    w 00R~`Rd"F$G%TADATADATA"ssl sfjePzi8 rl,3Wp6 B~tnB P~ 3 B `    R  "wX  - 3e  ɋ5 U 5  ( 5 I B 6 ~3  e   ^`i F` 3&    w dltʋ3h3 v3 x3 56 26sv7sx.ltՀ5 fd  Aw |`ie.B @elw@,%c Wpl@`.œ  `  3ȋs3 b3 3 dww &e 3 Z5  #U#U dwww 5  VfeB B C555 5 551 5p  Z <R %*K5GF##pEUUS#" <75\5 5 p,   n$p, 1 p s, & L* ¥ ¥¥E0#U " p te%ʵw . s eWp(eAarV'T<Zw && Z%1*  &ef& v cc6 6` e *ep %ʥ¥bw¥&f Bʋ ~7B EU~& Bp Bȕ e e`e df~ 5& 5Ε ,   e p ep voW3 &f2 2 VV " P     u쇀3l 3w DB  . &    h ^  3  3 ^ f  1v. v  Օ,x | r5eT Օ.eZ \Օ; <c :r&?  H .Օ Օ-   e:f s!pU Օ ` D~  A M•0 M Mf6E@p^ pɉ ˉȉʉ@tEp sՕ Օ ss  e hs& & &f& & & Ε  2nff)n s& TIf&V % b %e ee e  w 8 *8^  - P  .NA M*)98 < eB &&  U **e *Nlv ΋*.2  & #!)&ePe && >e >E . p* p wl w *eB 8 6  w B C DBe ?D(1 >w x ) 8C * ) *w *   ep p  n = EW9ť^*0p CaC  = H  0* =Eե^A e@  = Ep+!"8eE`l0  0s00/pq0`p l064p 4 p  8 V *`)w  C#   D @)  6?0D)w *e w w *eB 8 `  w  D * 8#"#)%ĥ ĥ w 0 *0 @Q$    0 40 60))eB  [#00RYO\P]04 R T&* =w< 2s q EW!p0p2 j؇#( P) @#**fff  &*w. k58e$8wT 2j  ,EB0-%. #p.2e 4  483  -Y r38 (#5=A#@))  *R*)@#0l C# 028 8 00ĥۇAĥĊ  000 l 0 @0 &*0 @ Lu #eB <*  eBe>  # #D #=0/H#@&0 # = e0   80@e 6=#02/002# @#?@#040 6w /! 0s0 0/0q0p!0 .=p0p2eB  8 $&w @*   x  w $ 6o832de& & & B  2PΕ   N Υ$Ε  22Υ   v Ε f e * *e*w@)0,    )*)'   =  l 0l   0/ e&=Ba@a  re0bGee@ ^ W= E8 el0  0s0pq0`p l064p 4 ep )wv%  ,    w>  LwB #  f  `**w)0406 l0 &ff 0+1e  %p*w. f( f)f 8 -2e L L0 0 0 80 B0 0 0 0)#0.)"(. = . B  E : P (.8Ae f"( UCɗ+e$&% *w z w p& W+W- Ba. W#  B0  c  c S W %ec e`s  # 3  & ˥ Z ^C   f &* *w BC "& @SY*p0p210=E%0=w*e "f D CB.E *) l0, *) $ )*)0,40,6 e6p 4 8 h .8 N81416      8 -̋ n f 8  08\0 ep=& /empp* *  - C46/`A p  C ? t  "̋3t42 &8f08  880!8 % P  8 w\w` 8  ***  DP5R~RRR~ew* )fff f f1    1  Mw>141612epl2l0p   f ( >5>Eu   > =00l&8el2 0 *w \eE D` bl lrw   B eE"s    s-  CslM=f& e %&&eH =&e0  |U   E > >E=uf p  w8w *#   U@e   ew1  %,, 00RST"F$G%TADATADATA w $*D B UqqC ӥ: ~ Ce r   *w *  ע"wd(Ĕ%.%%;C~ 5)5@DD ͥ*Ce e%w U\5@ 5wU U*U  "5@\U@5 5LU*U  ʥ*%C!.D` *weC5U5  5 5@e*=U Ee& REe  ӥ" wX ˥"   ˥" Ք     Օ  ..8em,0l0!D0e6p 4K) Cf  +e) .* .8 - ̋  G  & >p8e6p 4 08*w&=p!Օ^8e2 ,*1 U8UM%..w\ wL dB 00fep=& /e`pw^46f  8 E D/D!pq0l8epl0pɥ .ɕ*w*He(  1 :&e  1-1- 111 rrrrr fe w&f &  Be  wF* w T&Ba +- ʥ# . U 0   b   `     &fe ~  2 $ L La Ta Wq(W!ZW!AW!9W!0@0,0, f 톇,, w      .% R eB U5UU plp & NeՀ)*f&5ҕ[ "5ҕ, 5ҕ]Et55tF e0ҐtI1 z  . 1 1 1 1 1 1 DEee $ $    f e  C C C e`w  ҥ[, &]  5 sC~ D wTHIS IS A TESTSHOULD NOT HAVE BLANK LINESXN  @-b"L3Љ6sBKlBv#xx'e.`f.`Ty: y: y:x lTe ^0qX z0q8 >s8 ` ~ 00TT\P]04N *"LL#@{@*?T@©2@*@((kh  *f  eE  B~ *©2#Ԃ{?T&N X*3ЉXL[ L@d@*N`r@jS@(F2zh * B` w` [ L &N`r * w wmjS[ LdN *6sL#@?hk@*?hT[@?hBx@{@k@N`r@*?T@A-@A-@@W@"jS@(Ndh *w E  A W ?hBxk A-$&B` 7pA w& A- ?hT[A-?hkN`r jS F {#  ?TN *BKL?hk@?h2@*?hT[@?hBx@?hu~@k@@*A-@A-@/d@W@R@(PN`rh *w E   B `  W?hBxkA-&p 7&?hk /dA-?hT[A-R<A @ae?hu~?h2N *BvL?hk@?h2@*?hT[@?hBx@?hu~@k@@*A-@A-@/d@W@R@"jD@(ZN`rh *w E   B `  W?hBxkA-&p 7&?hk /dA-?hT[A-R"<A @ae  ?hu~?h2jDjDN X*#xxXL("h  &e?E? & f YPN *'eL?hk@?hT[@*?hu~@A-@A-@R@(Nh &  0 B(R RA-?hT[ ?hT[?hu~*" ` "A-A-?hT[ ?hT[$?hk HR?hu~N *.`L3e@?hk@*?hcM@?hT[@?hBx@?hy@?hu~@*©2@A-@A-@@@*W@j/d@(|*h *w f 4 & D -(W ©2A-?hT[ $?hT[*&N  &?hu~ ?hcM?hu~ 3e"?hy(j/d(L `  &A-?hk?hT[?hT[ ?hBx$©2p dN *.`L3e@?hk@*?hcM@?hT[@?hBx@?hy@?hu~@*Cs:@CQ@@©2@©Bx@*A-@A-@@@W@*@j/d@(*h &w f E  &W ©2CQ"Cs:*"w`K`/ & D -" ©BxA-?hT[ $?hT[*HN  &?hu~ ?hcM?hu~ 3e"?hy(j/d(n `  &A-?hk?hT[?hT[ ?hBx$©2 N 0*y:0Ls@@(h68h0 A? 0*0eE   s$ V bN *y:L[/d@?hBx@*k@©2@@A-@A-@*W@R@jTG@lE@h'@(l6;h &w 7 7 7  W,&W A-A-R©2" 7 7([/d?hBx kA-?hBxk*< 0 #  A-A-jTG"h'b lEN *y:xL[/d@?hBx@*k@©2@@A-@A-@*W@R@@jD@jTG@00TUV"F$G%TADATADATA*lE@h'@(6;h *w w      7 7 &W jD $A-(A-&&7  W, 7(R ©2[/d?hBx k"A-*H 7 0 # ?hBxk A-A-jTGn  h' lEN 0*Te0L3e@?hcM@*?hy@@@(2GGhMhjSh  &  & ?hcM ?hcM" 3e?hy&N *0qXL#h@?hk@*?h2@{@#@?T@@*jTG@ձ@e;@(/dh j/dhF * vp4e6#*.( d> >p ձ*T4e6(  "(e;*z ( 䇇7 pwj fe?hk(?h2*)wN 7 L jTG({#h  ?TfN *0q8 L#h@?hk@*?h2@{@#@?T@@*jTG@jG@jjH@ձ@e;@"(/dh j/dhP * p4e6#*.( xH    ձjG"jG(*T Hp4e6(*z 2| 䇷   e;jjH"jjH*7 \wV Re) ?hk?h2jTGw: 7 8  {#h ?TN 0*>s0L@(4h *B B  @`   &B`BN *8 L3eHVN@*(xhA-hA-hRh*hjDh jTGhjGhjjHh*Q?hkH?h2H?hcMH?hT[H"?hBxH?hyH?hu~H 2 &&::VNN *` L3eHVN@*(jhA-hA-hRh*jTGhQ?hkH?h2H?hcMH*?hT[H?hBxH?hyH?hu~H      ,,VNBN *~LN`r@GG@*@jS@(\NcMhhB=Hh *   v N`r GGN`r jS*& m ` N`rjS(N`rL@ N`rRh*jTGhQ?hkH?h2H?hcMH*?hT[H?hBxH?hyH?hu~H      XON/PR,XON/-SP=XONLB:[1,1]EXEC.STB/SSLB:[1,1]TT.STB/SS/ TASK=...XON// .TITLE XON .SBTTL /MRH001/;2; PROGRAM TO PLACE A CONTROL-Q IN THE INPUT BUFFER5; OF A TERMINAL PRESENTLY IN X-OFF CONDITION. USED ON=; TERMINALS WITHOUT KEYBOARDS, OR REMOTE LINES WHERE IT'S TOO ; FAR TO WALK;%; SOURCE, AUGUST 82 DEVIAS NEWSLETTER;;; MUST BE LINKED TO A RE-BUILT VERSION OF TT HANDLER (USING-; STB FILE) SO IT KNOWS JUST WHERE TABLES ARE;4; WILL GENERATE AN ERROR 'LOAD ADDRESS OUT OF RANGE';-; MCR>XON TTXX (WHERE XX IS TERMINAL NUMBER);;; .MCAL00VW\P]04L EXIT$S,GMCR$,DIR$B; CH.XON=21M$$PRI=4 .SBTTL GET COMMAND LINE*START: DIR$ #GETMCR ;GET MCR COMMAND LINE' MOV #GETMCR+G.MCRB,R0 ;POINT TO BUFFER  ADD #4,R0 ;SHOULD BE AT "TT" CMP (R0)+,#"TT ;BETTER BE BNE END ;EXIT IF NOT. CALL $COTB ;CONVERT TERMINAL NUMBER TO OCTAL MOV R1,DEVUN ;SAVE UNIT NUMBERL$ CMPB R2,#15 ;TERMINATED ON CAR-RET BEQ OK ;IF SO OK& CMPB R2,#': ;OR COLON AFTER NUMBER ? BEQ OK ;IF SO,OK CMPB R2,#33 ;OR ESCAPE BNE END ;ITS OK TOO .PAGE .SBTTL MAP TO TT'S DATA AREAB"OK: MOV #.ATLLH,R0 ;START ATL SCAN%10$: MOV (R0),R0 ;GET NEXT ATL ENTRY; CMP R0,#.ATLLH ;THROUGH ATL ? BEQ END ;BR IF FELL THRU) MOV A.TD(R0),R1 ;GET STD ADDRESS OF TASK0( CMP #<^RTT.>,S.TN(R1) ;IS THIS TT.... ? BNE 10$ ;BR IF NOT CMP #<^R...>,S.TN+2(R1) BNE 10$3 MOV #77406,-(SP) ;SET TO MAP TO TT.... TASK HEADERN MOV A.HA(R0),-(SP)F" CALL @#..SPD1 ;MAP TO TASK HEADER CMP (SP)+,(SP)+ ;CLEAR STACK2 MOV #77406,-(SP) ;SET FOR A 4-K READ/WRITE REGION0 MOV @#20000+H.PA2,-(SP) ;MAP PAR 2 TO TT'S APR2 CALL @#..SPD2 CMP (SP)+,(SP)+ ;CLEAR STACKN2 MOV #77406,-(SP) ;SET FOR A 4-K READ/WRITE REGION0 MOV @#20000+H.PA3,R1 ;GET PURE AREA GCD ADDRESS2 MOV G.BA(R1),-(SP) ;SET BASE ADDRESS OF PURE AREA CALL @#..SPD3 CMP (SP)+,(SP)+* .SBTTL SCAN PUD FOR CORECT TERMINAL ENTRY" MOV .PUDBA,R0 ;NOW START PUD SCAN#LOOP: CMP #"TT,U.DN(R0) ;FOUND A TT. BNE NEXT ;NO% CMPB DEVUN,U.UN(R0) ;YES, CHECK UNIT BEQ FOUND ;IF OK, CONTINUE.NEXT: ADD #U.SZ,R0 ;ELSE BUMP TO NEXT PUD UNIT CMP R0,.PUDEA ;AT END YET BLO LOOP ;BR IF NOT+ BR END ;ELSE EXIT .SBTTL PLANT THE X-ON CHARACTER2FOUND: MOV U.SL(R0),R4 ;GET TERMINAL ENTRY ADDRESS BEQ END ;BR IF NOT INITIALIZED& BIC #SC.XOF,(R4) ;ELSE CLEAR THE FLAG3 MOV T.INUM(R4),R3 ;GET OFFSET INTO INTERFACE TABLEC( ADD #IFCTBL,R3 ;POINT TO START OF TABLE& MOVB I.FLG(R3),R3 ;GET INTERFACE TYPE) BIC #177760,R3 ;BLANK FLAGS TO TYPE BITSR" BMI END ;SKIP IF SOMETHING WRONG! CMP R3,#IT.DZ ;CHECK UPPER BOUND; BGT END ;TOO ASL R3 ;CONVERT TO WORD OFFSET( TST L.RSUM(R3) ;VERIFY ROUTINE IS THERE BEQ END ;SKIP IF NOT5 CALL @L.RSUM(R3) ;CALL LINE DEPENDANT RESUME ROUTINELEND: EXIT$S ;AND EXIT .PAGEN.SBTTL MISC STORAGE#;X"; DISPATCH ROUTINE FOR LINE ENABLE;U(L.RSUM: .WORD DLIE ;DL INTERRUPT ENABLE! .WORD DCIE ;DC INTERRUPT ENABLEF! .WORD DZIE ;DZ INTERRUPT ENABLEE;C;Y;"DEVUN: .WORD 0 ;SAVED UNIT NUMBER GETMCR: GMCR$D.PAGE .SBTTL INTERRUPT ENABLE ROUTINES;H;DL INTERRUPT ENABLE;D1DLIE: MOV T.EPA(R4),R0 ;GET EXTERNAL PAGE ADDRESSU/ BIS #DL.XIE,D.LXCS(R0) ;TURN INTERRUPT BACK ONF RETURNL;L;DC INTERRUPT ENABLE;N,DCIE: MOV T.EPA(R4),R0 ;GET EXT PAGE ADDRESS/ BIS #DC.XIE,D.CXCS(R0) ;TURN INTERRUPT BACK ONU RETURNL; ;DZ INTERRUPT ENABLE;R;L#DZIE: CALL MXSET ;SET UP REGISTERS ( MOV (R5),R5 ;GET EXTERNAL PAGE ADDRESS% BIS R1,D.ZXCR(R5) ;ENABLE INTERRUPTSO0 MOVB #0,D.ZXBF(R5) ;GIVE HARDWARE CHAR IT NEEDS 1$: RETURN;T!;SET UP FOR MULTIPLEXED INTERFACE ;B(MXSET: MOVTC ISL,R0 ;GET SUBLINE NUMBER MOV #1,R1 ;SET FOR SHIFT- ASH R0,R1 ;NOW HAVE BIT IN CORRECT POSITIONL/ MOVB T.INUM(R4),R5 ;GET INTERFACE TABLE OFFSET4 ADD #IFCTBL,R5 ;MAKE ABSOLUTE RETURND .END STARTRN INTERRUPT BACK ONU RETURNL; ;DZ INTERRUPT ENABLE;R;L#DZIE: CALL MXSET ;SET UP REGISTERS ( MOV (R5),R5 ;GET EXTERNAL PAGE ADDRESS% BIS R1,D.ZXCR(R5) ;ENABLE INTERRUPTSO0 MOVB #0,D.ZXBF(R5) ;GIVE HARDWARE CHAR IT NEEDS 1$: RETURN;T!;SET UP FOR MULTIPLEXED INTERFACE ;B(MXSET: MOV*fL @@ @m@*m@c@l@zV@z@*"0@@p6@ @p6h @39\}@|;@*<L@Tw^@4{W@}D;@cD;@*e(d@iZ@t@W@K@*@W@GP}@ ;IF YES ERASE SCOPE WTSE$C 1 ;WAIT FOR ITE.NOFF: MOV #MCRDPB,-(SP) ;GET MCR COMMAND LINE EMT 377 ;DO IT( MOV #MCRBUF,R1 ;SET R1 TO START OF LINE MOV R1,R0 ;SET R0 ALSO) ADD DIRSTA,R1 ;BUMP R1 TO LAST CHARACTER,1 MOV DIRSTA,MCRSIZ ;SAVE SIZE OF MCR COMMAND LINEG) ADD #3,R0 ;BUMP TO FIRST SPACE POSITIONC#1$: CMPB (R0)+,#40 ;FOUND A SPACE ?S BEQ 2$ ;FOUND IT CMP R0,R1 ;PAST END OF LINE ?V BGT ERRINP ;YES AN ERROR BR 1$ ;NO, TRY AGAIN.2$: ;FOUND FIRST SPACE, CHECK FOR TYPE OF LIST% MOVB (R0)+,TYPNAM ;MAKE 2 CHAR CHECKF MOVB (R0)+,TYPNAM+1! ;NOW POINTING AT TYPE OF LISTE/ MOV #CHARCK,R2 ;R2 POINTER TO CHECK CHARACTERSO, MOV #SUBPTR,R3 ;R3 POINTER TO SUB POINTERS.TEST: CMP (R2)+,TYPNAM ;DO CHARACTERS MATCH ?! BNE RETEST ;NO MATCH, TRY AGAIN' JSR PC,@(R3) ;A MATCH, CALL SUBROUTINEC/ BR SCRAM ;ON RETURN MAKE LIKE A TREE (LEAVE);7RETEST: TST (R2) ;IS NEXT CHARACTER TEST WORD 0 (END);. BEQ ERRINP ;LAST OF THE SUBS, AN INPUT ERROR% TST (R3)+ ;ITS OK BUMP CALL POINTERM" BR TEST ;AND TRY FOR MATCH AGAIN9ERRINP: QIO$C IO.WVB,2,1,,IOST,,' ;TELL DUM-DUM HE'S GOT FLOPPY FINGERSA WTSE$C 1 ;WAIT FOR END OF IOSCRAM: ;NOW DETACH OUTPUT  QIO$C IO.DET,2,1,,IOST,,C WTSE$C 1 ;WAIT FOR END' EXIT$C ;AND MAKE LIKE A TREE (LEAVE)M;H;A'BADINP: .BYTE 12,15 ;CAR RET-LINE FEEDE# .ASCII /BAD INPUT LINE--TRY AGAIN/R .EVEN;X.TYPNAM: .WORD 0 ;SAVE 2CHAR CHECK STRING HERE;O=;FOLLOWING ARE THE TWO CHARACTER CHECK WORD TABLE (TERMINATEDE?;BY A 0 WORD) AND A CALL POINTER TABLE. NEW SUBS CAN EASILY BE ,=;INSERTED BY ADDING AN APPROPRIATE 2-CHARACTER CHECK WORD ANDP;;SUB NAME (NAMED XXX:: IN THE SUB) TO THE RESPECTIVE TABLESH;T; CHARCK: .ASCII /AC/ ;ATL .ASCII /NO/ ;NODE POOL LIST .ASCII /CK/ ;CLOCK QUEUET .ASCII /PU/ ;PUD FOR DEVICE .ASCII /MA/ ;MAP PARTITIONE .ASCII /FR/ ;FORMS TYPE .ASCII /AT/ ;ATL FOR ONE TASK .ASCII /ST/ ;STD FOR ONE TASK' .ASCII /IO/ ;POSSIBLE IO REQUEST NODESA+ .ASCII /TE/ ;LIST TERMINAL CHARACTERISTICS  .WORD 0SUBPTR: .WORD ACTE .WORD NOD .WORD CKQ .WORD PUD .WORD MAP .WORD FRM .WORD ATL .WORD STDL .WORD IOR .WORD TER*IOST: .WORD 0,0 ;RETURN STATUS CONDITIONS-MCRSIZ:: .WORD 0 ;USED TO SAVE MCR BYTE COUNT;3MCRDPB: .BYTE 127.,41. ;DIRECTIVE CODE, SIZE OF DPBP"MCRBUF:: .BLKW 40. ;80 BYTE BUFFER3LUNBUF: .BLKW 6 ;6 WORD BUFFER TO RECEIVE LUN INFO;/FFBUFF: .WORD 0 ;DUMMY BUFFER FOR SCOPE FF QIO .END INF/ ;POSSIBLE IO REQUEST NODESA+ .00[\]]04*v:`L@l @@*](@:@:t @:@:2@*xQ@Y@Lg@yK@}@*>) v v> p>pBB: | |B pBpNN)  N pNpRR3 %R BAD INPUT LINE--TRY AGAIN pR(ACNOCKPUMAFRATSTIOTE&Y "Lg$xQ&]()l yK: }:: p,,  :2 p p, p,p>>) v v> p>pBB: | |B pBpNN)  N pNpRR3 %R BAD INPUT LINE--G .ROOT INF-LB0:[1,1]EXEC.STB-*(ACT,NOD,CKQ,PUD,MAP,FRM,ATL,STD,IOR,TER)ACT: .FCTR INFACTNOD: .FCTR INFNODCKQ: .FCTR INFCKQPUD: .FCTR INFPUD)MAP: .FCTR INFMAM-*(INFPTN,INFPRT,INFPLT)FRM: .FCTR INFFRMATL: .FCTR INFATLSTD: .FCTR INFSTDIOR: .FCTR INFIORTER: .FCTR INFTER .END .SPACING 1.TITLE INF ACT.BREAK ####-------.SKIP 2^^ALLOWABLE SWITCH\\.BREAK--------- ------.SKIP 1;F/^E ^SWITCH PROVIDES EXTENDED LISTING, INCLUDING TASK INF NOD\\#.BREAK ####-------^.SKIP 2 ^^ALLOWABLE SWITCHES\\.BREAK--------- --------.SKIP 1V^NONE..PAGEI.C^^CLOCK QUEUE LIST\\.C----- ----- ----.SKIP 2E ^^FUNCTION\\.BREAK--------.SKIP 1-8^LIST ALL CURRENTLY SCHEDULED EVENTS IN THE CLOCK QUEUE..SKIP 2L^^CALLING SEQUENCE\\.BREAK------- --------.SKIP 1D^^MCR>INF CKQ\\,.BREAK ####-------,.SKIP 2L^^ALLOWABLE SWITCHES\\.BREAK--------- --------.SKIP 1 ^NONE..FG 3E.C ^^PUD DUMP\\.C--- ----.SKIP 2 ^^FUNCTION\\.BREAK--------.SKIP 1^5^PROVIDE A LISTING OF THE ^^PUD\\ FOR A GIVEN DEVICE. .SKIP 2.^^CALLING SEQUENCE\\.BREAK------- --------.SKIP 1^^MCR>INF PUD XX:N\\.BRE00]^Ǐ"F$G%TADATADATAAK####------------.SKIP 1 (^WHERE ^^XX:N\\ IS THE DEVICE DESCRIPTOR.SKIP 2^^ALLOWABLE SWITCH\\.BREAK--------- ------.SKIP 1F/^^F S\\WITCH PROVIDES FULL LISTING OF ^P^U^D INCLUDING VOLUMN CONTROL'BLOCK, (NOT LISTED BY DEFAULT COMMAND.)S.PAGE.C^^PARTITION MAP\\U.C --------- ----.SKIP 2 ^^FUNCTION\\.BREAK--------.SKIP 1 L^PROVIDE A "INF MAP XXXXXX\\.BREAK####--------------.SKIP 1L"^WHERE ^^XXXXXX\\= ^PARTITION NAME.SKIP 2^^ALLOWABLE SWITCH\\.BREAK--------- ------.SKIP 1 F/^P ^SWITCH LISTS ALL CURRENTLY USED AREAS AND HOLES IN THE PARTITION,ORDERED SEQUENTIALLYFBY STARTING ADDRESS, PROVIDING A MUCH CLEARER DISPLAY OF WHY PARTITION^^XXXXXX\\ IS FRAGMENTED.N.FG 3N.C^^FORMS LISTING\\ .C ----- -------F.SKIP 2A ^^FUNCTION\\.BREAK--------.SKIP 1NE^PROVIDES A LISTING OF ALL PRINTING DEVICES WHO HAVE THEIR FORMS TYPE\SET TO NON-ZERO..SKIP 2-^^CALLING SEQUENCE\\.BREAK------- --------\\.SKIP 1^^^MCR>INF FRM\\\.BREAK ####--------.SKIP 2I^^ALLOWABLE SWITCHES\\.BREAK--------- --------.SKIP 1 ^NONET.PAGE.C ^^TASK'S ATL.C ------ ---.SKIP 2P ^^FUNCTION\\.BREAK--------.SKIP 1R;^PROVIDES A LISTING OF THE INF ATL XXXXXX \\N.BREAK####--------------.FG 1T'^WHERE INF STD XXXXXX \\-.BREAK####--------------.FG 1\'^WHERE INF IOR XXXXXX \\L.BREAK####--------------.FG 1-'^WHERE INF TER TT:NN\\D.BREAK####------------- .SKIP 1\+^WHERE ^^TT:NN\\ IS THE TERMINAL DESCRIPTORN.SKIP 2X^^ALLOWABLE SWITCH\\.BREAK--------- ------.SKIP 1X^NONEHE TASK TO BE LISTED-.SKIP 2^^ALLOWABLE SWITCH\\|v:, (U !;SYTITISYTICL00^ɏ]]048```999%VC9,9@me  7Z7W$J   09B9F9R9V9 BAD INPUT LINE--TRY AGAINACNOCKPUMAFRATSTIOTE< Hp &'|*,/)m7N< "< -,EW!8-E X9j9n99 9999w w!RBp .v ȕ Cw  ve0 ve0   } -E%CEpe   ҔB~B  ,Е:Е 9999 00 TTNN: Task Address Status Task's TI------ -------- ----------- --------- load pend'g load queued load sucess load failed wait/region runnable ast queued reload/ast suspended susp./nodes waiting/sem stopped stopped/ev0 stopped/ev1 stopped/ev2 stopped/ev3 stopped/all waiting/ev0 waiting/ev1 waiting/ev2 waiting/ev3 waiting/all exiting r'down pend r'down gng. r'down comp r'down fail term. fault termn. req. susp. f/trm susp. f/ckp record q'ed record suc. record fai. parity err. timesh/exit timesh./ts1 timesh./ts2 waiting/mem waiting/exe waiting/reg waiting/dir direct over null task waiting/acc exit/accnt. mark/exten 00^яǏ"F$G%TADATADATA  m- t,Wuw" $- b7 7  we@&7@ fBB ' $W  W  +77# t|7tM z  .7Lj R D  %  <  I  f   ) Nodes usage ----- ------ ----- ------ ----- ------ ----- ------ . available . largest hole . . system task directory . global common directory . not accounted w0< 0   r e0b@n @  "5  wJnw!<<B X%B J%Ӌ ~BCfr r< 0 & r<    s e0qe0 : : :  &H     u~SzQD Task Request Hrs Min Sec Ticks ------ ------ --- --- --- ----- m`wt  wz  wl7N7K7H7E@:7 60 r%: 0 00p`FD7$7 e2 995 V9: 4 & 4:: ׭F7 x  se0c~S~ PUD entry for XX00:000000 XXXXXXXXXX 000000 INF PUD bad device nameDev Name Flags WordDev Char 1Dev Char 2Dev Char 3Dev Char 4Att. Flag Red Point.ATL Point.Exp Req. UIT Entry Int VectorInt Prior.1st Reg AdVCB Exten.UIC Vol Prot. Access Defaul ACPSTD AddresTT Flags Block highBlock low Res word#4XXmm  w@/~f  t  -/P  N MAPMAP: INVALID MCR COMMAND LINE  nl 7,7,wFef :7 nMAP: XXXXXX PARTITION NOT IN SYSTEM7HwBlw<>@w7 4<7"w7,  5*,L,N ff&5* &(B 5 "  w!w7 D Dw>7,v7,p tĜ&& !wN7 L .%7,(7,",@ &&& && 0:MAP: FATAL STACK OVERFLOWf ( re0ᐃ 2 re0ᐃ B:T:f:w~Map of partition XXXX00 TO XXXX00 Task pri addr size pur/addr pur/sz------ --- -------- ------ -------- ------@x:: B7 2: 0: "w@Active:Fixed:MRL:CTL:Commons:   ˋ E~ E r e0ᐃ  ɐ re0ᐃ  re0ᐃ  Z : wP re0ᐃ  re0ᐃ  : w XXXXXX XXX. XXXXXX00 XXXX00 XXXXXX00 XXXX00f% ~% Fre0ᐃ % *re0ᐃ :::@  ( a(   (  mWp @ ( b  *r Wp @`vr 700^ُ]]04d7l^ 7,TNH7DB>&^ b 8-0}r  e &e  UUe  %  %ˋ E~$EwE% F% :% .bW   WpeZ%&S~; !  ɐ7 0 (r re0ᐃ7 OKche^r ImpurePure Fixed GlobalMap of partition XXXX00 TO XXXX00 Task Pri Addr Size Type------ --- -------- ------ ------XXXXXX XXX. XXXXXX00 XXXX00 &-'e4+e0W7J  ¥tEe0e0&w#&T&&DVNN T Dev form type --- --------- none  &&  &&  &&  && 2*\*622*m  w  w N/ w 8/ w|/ TI:7`7] wV 7D7@< <ߧw,$w,w,w& )  (F)05@*@ $)  7 R#RP H#IN >#MT 4#TS *#SD #SW T  E  ! eE ` "T)H w6TT ( ATL for task  $) 000000 A.XX 000000 S.XX 000000 A.RQ A.TI A.RP A.IR A.IN A.CS A.MT A.CP A.HA A.TS A.AS A.TD A.EF A.FM A.PD A.AF A.AB A.SA A.JN A.TF A.SD A.QI A.SW A.SS A.TUF A.TUB A.TFW A.TST A.TSV A.TAC A.TQU A.TLV  D* ***INF ATL Bad syntax******INF ATL Task not active***mT  w   w w  wxw,nw,i &+  +, +  7 #DP #AV  E ! eE "l+` wj,,, + STD for task  + 000000 S.XX 000000 S.XX 000000S.TN S.TD S.FW S.DP S.DI S.LZ S.TZ S.AV S.PV S.PU S.RF S.RB S.DL S.PA  , ***INF STD bad syntax******INF STD task not in STD***///m  w  w x wB l w8w,*ςw,"ʂ &.  z .ed.@"S .eW @d.d7!!@/0. . T 7 0#PR &#LU #PC  E  ! eE  "~.r w`. . IO nodes for task  . 000000 S.XX 000000 S.XX 000000 . --------00^_"F$G%TADATADATA-------------- R.TD R.AT R.PR R.DP R.LU R.FN R.FC R.SB R.AE R.PC R.GC R.PB R.PD R.EL R.WA R.IA R.IB R.UB  / ***INF IOR bad syntax******INF IOR task not in STD***m  w"  w7$7!7d7a\:7 RL r%:<06 00p`"D1 ZL11VWpe1P~E 1 TE1 B12Wpe3P~ {Wpe3P~3e 2i13"ȋw\r3ee~,6N6"Tp6\1P! 4  %58*+,-.;<WXYZ[? 61: Terminal is a(n) , columns by lines per pageunknowASR33 KSR33 ASR35 LA30S LA30P LA36 VT05 VT50 VT52 VT55 VT61 LA180 VT100 LS120 SCRIPTLA12 LA100 LA34 LA38 VT101 VT102 VT105 VT125 VT131 VT132 LA50 LQP01 LQP02 BMP1 V2XX SOROC BEEHIVUSR0 USR1 USR2 USR3 USR4  620 running at , baud with type read-ahead 0 50 75 100 110 134 150 200 300 60012001800200024003600480072009600EXTAEXTB 63 automatic carret backspace works ^c flushes readaheaddialup line parity enabled even parity enabled escape sequence termfull duplex terminalhardware form feed horizontal fill vertical fill LA36 vertical fill hardware horiz. tab scope rubout works simulate ff and vt lower case printer lower case keyboard lower case input on paper tape reader binary device pass-8 bits device user characteris'c 0user characteris'c 1user characteris'c 2user characteris'c 3user characteris'c 4ansisequence controls ansicrt advancedvideo deccrt edit regis autobaud  6>6 Bad device name 6`6, *** Interface not present on this system ***w (@f ťZ#ťAť9ť0ť$ ť  ť.@KqAa$  *  + 23E87 Ew    Е-   0@ rW e`fÊ    E  w h ť ť 0BBpAa & &  r(f  e ee e & &&f %@ %/%.%$ %ZEWq(a ~S%9Wq(~K &f&f s(f s(f&  %%% eR~$.U@).  : 1)  ))3 l  ) l  ) l & ) l & ) l p $ ) l p  )  )  )  ) #     (0 4+0 _+  0 0 0   +  x%(0 %"0 %#  %# &f +;PROGRAM TO DO A QUICK SCAN OF ACTIVE TASKS7;AND TELL YOU WHERE THEY ARE IN CORE SO YOU KNOW WHICH ,;PROGRAMS ARE FRAGMENTING YOUR GEN PARTITION ;ALL TO #####;#;UPDATED 27 AUG 81 FOR IAS VERS 3.1;;;; .enable lc .TITLE ACT .GLOBL .ATLLH" .MCALL QIO$C,EXIT$C,WTSE$C,RQST$C/ACT:: MOV #MCRBUF,R0 ;GET START OF COMMAND LINE" ADD MCRSIZ,R0 ;BUMP TO TERMINATOR7 MOVB -(R0),FULLST ;SAVE (POSSIBLE) FULL LISTING SWITCH" MOV #.ATLLH,R0 ;GET START OF LIST/ MOV #STORE,R5 ;SET POINTE00_]]04R TO INTERNAL STORAGEI!NEXT: MOV (R0),R0 ;TO NEXT ENTRY  CMP (R0),#.ATLLH ;DONE ?S BEQ OUTPUT ;YES. TST A.TD(R0) ;IF NO STD INTRY, SPEC ATL ENTRY BEQ NEXT# MOV A.TD(R0),(R5)+ ;SAVE STD ENTRY 3 MOV A.HA(R0),(R5)+ ;SAVE STARTING ADDRESS (MOD 64)L' CMP FULLST,#105 ;DO EXTENDED LISTING ?Q$ BNE BRANXT ;NO SAVE NEXT TASK INFO% MOV A.TS(R0),(R5)+ ;SAVE TASK STATUST# MOV A.TI(R0),(R5)+ ;AND TI POINTERE% CMP R5,#STOEND ;FILLED STORAGE AREA?# BGT OUTPUT ;IF SO, QUITT-BRANXT: BR NEXT ;GO GET DATA ON ANOTHER TASKG+OUTPUT: CMP FULLST,#105 ;EXTENDED LISTING ?(% BEQ FULOUT ;YES DO FULL HEADER LINE* QIO$C IO.WVB,2,1,,IOST,, ;WRITE SHORT HEADERT WTSE$C 1 ;WAIT FOR ITR* QIO$C IO.WVB,2,1,,IOST,, ;WRITE SHORT HEADER, WTSE$C 1 ;WAIT FOR IT  BR HEADDN ;HEADER DONE1FULOUT: QIO$C IO.WVB,2,1,,IOST,,U ;WRITE LONG HEADER WTSE$C 1 ;WAIT FOR IT,* QIO$C IO.WVB,2,1,,IOST,, ;WRITE LONG HEADER WTSE$C 1 ;WAIT FOR ITA0HEADDN: MOV R5,ENDOFD ;STORE END OF DATA POINTER+ MOV #STORE,R5 ;POINTER TO START OF STORAGEN.NEXOUT: CMP R5,ENDOFD ;ARE WE AT END OF DATA ? BEQ DONE ;YES LIST IS DONE' MOV (R5)+,R2 ;START OF STD ENTRY TO R2I MOV #6,R1 ;SET UP TO CONVERT MOV #BUFF,R3, JSR PC,..RDTA ;CALL CONVERT$ MOV #BUFF+6,R0 ;BUMP PAST TASK NAME)CHARCK: TSTB -(R0) ;IS ASCII CODE A NULLW" BNE NAMEOK ;NO ITS A 6-CHAR NAME& MOVB #40,(R0) ;YES, CHANGE TO A SPACE( BR CHARCK ;AND CHECK ANOTHER CHARACTER.NAMEOK: MOV (R5)+,R3 ;START ADDRESS/64 INTO R3' MOV #BUFF1,R0 ;CREATE POINTER TO BUFF1N CLR R2 ;AND CLEAR R2+ ASHC #1,R2 ;GET BIT 22 OF ADDRESS INTO R2A$ ADD #60,R2 ;CONVERT TO OCTAL DIGIT# MOVB R2,(R0)+ ;PUT IN ASCII BUFFER& CLR R2 ;AND CLEAR OUT FOR NEXT SHIFT*CONV: ASHC #3,R2 ;GET OCTAL DIGIT INTO R2$ ADD #60,R2 ;CONVERT TO ASCII DIGIT" MOVB R2,(R0) ;AND MOVE TO BUFFER INC R0 ;BUMP POINTER CLR R2 ;AND ZERO R2,# CMP R0,#BUFF2 ;DONE WITH CONVERT ?R$ BLT CONV ;NO CONVERT ANOTHER DIGIT' CMP FULLST,#105 ;DO EXTENDED LISTING ?3 BNE SHTLST ;NO DO SHORT LIST$ MOV (R5)+,R3 ;GET TASK STATUS IN R3. BIC #177400,R3 ;CLEAR OLD STATUS (UPPER BYTE)& MUL #6,R3 ;CONVERT TO 12-BYTE OFFSET. ADD #TSTAT,R3 ;ADD BASE OF ASCII STATUS CODES* MOV #BUFF3,R2 ;R2 POINTS TO OUTPUT BUFFER/ MOV #12.,R1 ;SET TO MOVE 12. ASCII CHARACTERSA*LOOP: MOVB (R3)+,(R2)+ ;INTO OUTPUT BUFFER% SOB R1,LOOP ;NOT DONE, XFER ANOTHERN MOV (R5)+,R2 ;TI OF TASK TO R2W4 MOV #BUFF4,R3 ;POINT R3 TO "TTXX:" IN OUTPUT BUFFER0 MOVB U.DN(R2),(R3)+ ;FILL IN DEV NAME IN BUFFER MOVB U.DN+1(R2),(R3)+ MOVB U.UN(R2),R1 ;UNIT # TO R1 ! MOV R3,R0 ;BUFFER POINTER -> R0U CLR R2 ;SUPRESS LEADING 0'SN' JSR PC,$CBOMG ;CONVERT UNIT # TO OCTALD MOVB #':,(R0)+ ;FILL IN ":"$ MOVB #' ,(R0)+ ;IN CASE ONE DIGIT #) QIO$C IO.WVB,2,1,,IOST,,C ;WRITE FULL DATA LINE+ WTSE$C 1 ;WAIT FOR ITR% BR OUTDON ;AND TRY FOR ANOTHER TASKN0SHTLST: QIO$C IO.WVB,2,1,,IOST,, WTSE$C 1T-OUTDON: BR NEXOUT ;OUTPUT DATA ON NEXT TASK+DONE: RTS PC ;RETURNU IOST: .BLKW 2N,BUFF: .WORD 0,0,0 ;TASK NAME (6 CHARACTERS) .BYTE 040 ;SPACE,BUFF1: .ASCII / / ;6 SPACES FOR ADDRESS/BUFF2: .ASCII /00/ ;2 0'S TO MAKE ADDRESS REALV LENGT1=.-BUFF*BUFF3: .ASCII / / ;TASK STATUS!BUFF4: .ASCII /TTNN: / ;TASK TIL LENGT2=.-BUFF .EVENENDOFD: .WORD 0WFULLST: .WORD 0R5HEAD1: .ASCII / Task Address Status Task's TI/I .EVEN5HEAD2: .ASCII /------ -------- ----------- ---------/  .EVEN LENGTH=.-HEAD2E;T%;BUFFER CONTAINING ASCII STATUS CODESK9TSTAT: .ASCII / load pend'g load queued load sucess/ ;0-404 .ASCII ? load failed wait/region runnable ? ;6-12* .ASCII ? ast queued reload/ast ? ;14-158 .ASCII ? suspended susp./nodes waiting/sem? ;16,20,228 .ASCII ? stopped stopped/ev0 stopped/ev1? ;24,26,308 .ASCII ? stopped/ev2 stopped/ev3 stopped/all? ;32,34,368 .ASCII ? waiting/ev0 waiting/ev1 waiting/ev2? ;40,42,44 .ASCII ? waiting/ev3? ;46-8 .ASCII ? waiting/all exiting 00_`a"F$G%TADATADATA r'down pend? ;50,52,548 .ASCII / r'down gng. r'down comp r'down fail/ ;56,60,628 .ASCII ? term. fault termn. req. susp. f/trm? ;64,66,708 .ASCII ? susp. f/ckp record q'ed record suc.? ;72,74,76; .ASCII ? record fai. parity err. timesh/exit? ;100,102,104e; .ASCII ? timesh./ts1 timesh./ts2 waiting/mem? ;106,110,112;; .ASCII ? waiting/exe waiting/reg waiting/dir? ;114,116,1203; .ASCII ? direct over null task waiting/acc? ;122,124,1164% .ASCII ? exit/accnt. mark/exten ? ;I.STORE: .BLKW 400. ;ROOM FOR 100 IN FULL MODESTOEND:I .BLKW 8. ;OVERFLOW AREA .END ail/ ;56,60,628 .ASCII ? term. fault termn. req. susp. f/trm? ;64,66,708 .ASCII ? susp. f/ckp record q'ed record suc.? ;72,74,76; .ASCII ? record fai. parity err. timesh/exit? ;100,102,104e; .ASCII ? timesh./ts1 timesh./ts2 waiting/mem? ;106,110,112;; .ASCII ? waiting/exe waiting/reg waiting/dir? ;114,116,1203; .ASCII ? direct over null task waiting/acc? ;122,124,1164% .ASCII ? exit/accnt. mark/exten ? ;I.STORE: .BLKW 400. ;ROOzD v@:2@ @8@Q@ @@W@r!@W@ @QBx@>) j j> p>pBB 0& :2 0 p pB pBpTT) vvTww!RB4 :ȕ C; ve0 ve0   A-E%CEpeC ҔB~B, pT 4$r!(:8;XAptC$P Е:Е (P WWW:_pXX 04$ :2 0 4 X pXpjj)  j pjpnn 04 :2 0 4   n pnp) && p4Q4 00 TTNN: Task Address Status Task's TI)------ -------- ----------- ---------p load pend'g load queued load sucess load failed wait/region runnable ast queued reload/ast suspended susp./nodes wai$ting/sem stopped stopped/ev0 stopped/ev1 stopped/ev2 stopped/ev3 stopped/all waiting/ev0 waiting/ev1 waiting/ev2 waiting/ev3 waiting/all exiting r'down pend r'down gng. r'down comp r'down fail term. fault termn. req. susp. f/trm susp. f/ckp record q'ed record suc. record fai. parity err. timesh/exit timesh./ts1 timesh./ts2 waiting/mem waiting/exe waiting/reg waiHting/dir direct over null task waiting/acc exit/accnt. mark/exten ued reload/ast suspended susp./nodes wai$ting/sem stopped stopped/ev0 stopped/ev1 stopped/ev2 stopped/ev3 stopped/all waiting/ev0 waiting/ev1 waiting/ev2 waiting/ev3 waiting/all exiting r'down pend r'down gng. r'down comp r'down fail term. fault termn. req. susp. f/trm susp. f/ckp record q'ed record suc. record fai. parity err. timesh/exit timesh./ts1 timesh./ts2 waiting/m .TITLE ATL .SBTTL DESC PAGE2;SUB TO GIVE FULL LIST OF THE ATL FOR A GIVEN TASK;;COMMAND LINE EXAMPLE;);MCR>INF ATL XXXXXX (XXXXXX IS TASK NAME);OR:;MCR>INF ATL XXXXXX/TI=TTN: (FOR TASK AT ANOTHER TERMINAL); .MCALL QIOW$,DIR$ .enable lc.PAGE.SBTTL ERROR EXITSERROR: ;SYNTAX ERROR$ DIR$ #BADDPB ;DO SYNTAX ERROR MESS RTS PCERROR1: ;TASK NOT ACTIVE MOV #BAD1,BADDPB+Q.IOPL MOV #BADLN1,BADDPB+Q.IOPL+2 DIR$ #BADDPB RTS PC.PAGE.SBTTL MAIN CODE+ATL:: MOV #M00a]]04CRBUF,R0 ;POINT TO COMMAND LINEG, MOV R0,R1 ;SET TO MAKE END OF LINE POINTER ADD MCRSIZ,R1 ;NOW HAVE ITX11$: CMPB (R0)+,#40 ;FOUND FIRST SPACE AFTER "INF"E BEQ 2$ ;YESI CMP R0,R1 ;PAST END OF COMMAND BLE 1$ ;YESA JMP ERROR ;NO, AN ERROR.2$: CMPB (R0)+,#40 ;DO AGAIN TO GET PAST "ATL" BEQ 3$E$ CMP R0,R1 ;STILL IN COMMAND LINE ? BLE 2$S JMP ERROR3$: ;POINTING AT TASK NAMEB! MOV #1,R1 ;. IS LEGAL CHARACTER. JSR PC,$CAT5 ;CONVERT TO RAD 50 BCC 111$ ;BR IF OK* CMPB R2,#'/ ;TERMINATED ON / OF SWITCH ? BNE 111$ ;NO DEC R0 ;PUT R0 AT TERMINATOR/111$: MOV R1,TASNAM ;FILL IN FIRST HALF OF NAME#" MOV #1,R1 ;DO AGAIN FOR 2ND HALF JSR PC,$CAT5 BCC 222$ ;BR IF OK* CMPB R2,#'/ ;TERMINATED ON / OF SWITCH ? BNE 222$ ;NO DEC R0 ;PUT R0 AT TERMINATOR'222$: MOV R1,TASNAM+2 ;FILL IN 2ND HALFI+CKSW: CMPB (R0),#'/ ;TERMINATED ON SWITCH ?  BNE MYTI ;IF NOT USE MY TI INC R0 ;BUMP PAST "/"C CMPB (R0)+,#'T ;CHECK SYNTAX BNE ERROR CMPB (R0)+,#'I BNE ERROR CMPB (R0)+,#':/ BNE ERROR MOVB (R0)+,TINAME ;SAVE NAME  MOVB (R0)+,TINAME+1+ JSR PC,$COTB ;CONVERT UNIT NUMBER TO OCTAL MOV R1,TINUMB ;SAVE TI NUMBER BR FINDTA ;AND FIND TASKMYTI: MOV .CRTSK,R0 ;GET MY TI$ MOV A.TI(R0),R0 ;GET MY PUD POINTER% MOV U.DN(R0),TINAME ;SAVE MY TI NAME$! MOVB U.UN(R0),TINUMB ;AND NUMBERI$FINDTA: ;NOW CAN SEARCH ATL FOR TASK# MOV #.ATLLH,R0 ;R0 POINTS AT ATLLHI)LOOP: MOV (R0),R0 ;GET NEXT ATL LISTHEAD  CMP R0,#.ATLLH ;THROUGH LIST ?  BEQ ERROR1 ;YES, AN ERROR  MOV A.TD(R0),R1 ;GET STDV$ CMP S.TN(R1),TASNAM ;DO NAMES MATCH BNE LOOP CMP S.TN+2(R1),TASNAM+2 BNE LOOP MOV A.TI(R0),R1 ;GET TI POINTER# CMP U.DN(R1),TINAME ;DO TI'S MATCHI BNE LOOPK CMPB U.UN(R1),TINUMB ;LAST TEST BNE LOOP ;NO MATCH ;MATCHED, LIST ATL MOV R0,-(SP) ;SAVE ATL ADDRESSM$ MOV #HEAD1,R0 ;POINT TO HEADER LINE+ MOV TASNAM,R1 ;GET FIRST HALF OF TASK NAME JSR PC,$C5TAO MOV TASNAM+2,R1 JSR PC,$C5TA " MOV (SP)+,R0 ;RESTORE ATL ADDRESS DIR$ #HDRDPB ;DO HEADER LINE" MOV #NAMES,R4 ;POINT AT TAG LINES$ MOV #A.SIZ,R5 ;SIZE OF AN ATL ENTRY) BIT #AF.IA,A.TF(R0) ;IS THIS A BIG ATL ?V BEQ 1$,( MOV #A.TSIZ,R5 ;YES, MAKE REPORT BIGGER"1$: ASR R5 ;CONVERT TO WORD COUNT MOV R0,R3 ;MAKE R3 ATL POINTER" MOV #1,R2 ;SET R2 AS $CBOMG FLAG/LOOP1: MOV #LINE,R0 ;POINT TO ASCII OUTPUT LINE0 MOV R3,R1 ;NODE ADDRESS TO R1A$ JSR PC,$CBOMG ;CONVERT NODE ADDRESS# TST (R0)+ ;BUMP POINTER PAST " "P MOV (R4)+,(R0)+ ;FILL IN "A."A& ;NOW CHECK SYMBOLS FOR BYTE VALUES CLR BYTFLA ;CLEAR BYTE FLAGG( CMP (R4),#"RP ;RUN PRI AND IO IN PROG ? BNE 111$ ;NO INC BYTFLA ;YES SET BYTE FLAGB/111$: CMP (R4),#"IN ;IO PEND AND CKPTD STATUS ? BNE 222$ ;NO INC BYTFLA ;YES7222$: CMP (R4),#"MT ;MARK TIME COUNT AND CKPTD STATUS ?$ BNE 333$ ;NO INC BYTFLA ;YESI4333$: CMP (R4),#"TS ;TASK STATUS AND AST INDICATOR ? BNE 444$ ;NO INC BYTFLA ;YESA;444$: CMP (R4),#"SD ;ALLOC FACTOR DISK ADDR AND QIO COUNT ?+ BNE 555$" INC BYTFLA ;YESK1555$: CMP (R4),#"SW ;SWAP IO AND SUSPEND STATUS ?F BNE 666$( INC BYTFLA ;YESN8666$: CMPB 2(R4),#'T ;TIMESHARING STATUS AND STATUS SAVE BNE 777$$ INC BYTFLA ;YES 777$: MOV (R4)+,(R0)+' MOV (R4)+,(R0)+ ;FILL IN REST OF LABEL$% MOV (R3)+,R1 ;CONTENTS OF NODE TO R1P TST BYTFLA ;BYTE PRINTOUT ?I BEQ 99$ ;NOI& BIC #177400,R1 ;YES, CLEAR UPPER BYTE99$:) JSR PC,$CBOMG ;CONVERT CONTENTS TO OCTALA% TST BYTFLA ;ARE THESE BYTE VALUES ?K BEQ 55$ ;NOO% MOVB #' ,-6(R0) ;MAKE 3 DIGIT OUTPUT MOVB #' ,-5(R0) MOVB #' ,-4(R0) E( ADD #2,R0 ;BUMP OVER TO 2ND VALUE AREA) MOV (R4)+,(R0)+ ;FILL IN 2ND R.XX STRINGS MOV (R4)+,(R0)+ MOV (R4)+,(R0)+* MOV -2(R3),R1 ;GET CONTENTS OF NODE AGAIN SWAB R1 ;GET UPPER BYTE  BIC #177400,R1 ;CLEAR LOWER JSR PC,$CBOMG ;CONVERT IT AGAIN MOVB #' ,-6(R0) MOVB #' ,-5(R0)' MOVB #' ,-4(R0) ;MAKE 3 DIGIT PRINTOUT7 MOV #LINEXL,QIODPB+Q.IOPL+2 ;CHANGE LENGTH OF PRINTOUT;55$: DIR$ #QIODPB ;WRITE LINE7 MOV #LINELN,QIODPB+Q.IOPL+2 ;CHANGE BACK TO SHORT LINE' D00abc"F$G%TADATADATAEC R5 ;DO A.SIZ LINES BLE 77$ JMP LOOP177$: RTS PC ;ALL DONE, LEAVE4.PAGE+.SBTTL DATA AREASS#TASNAM: .BLKW 2 ;ROOM FOR TASK NAME(*TINAME: .ASCII /TT/ ;ROOM FOR TASK TI NAMETINUMB: .WORD 0 ;AND NUMBERT;,HDRDPB: QIOW$ IO.WVB,5,1,,,,$HEAD: .ASCII <12><15>/ATL for task /HEAD1: .ASCII / / HEADLN=.-HEAD .EVEN,QIODPB: QIOW$ IO.WVB,5,1,,,,#LINE: .ASCII /000000 A.XX 000000/P LINELN=.-LINE .ASCII / /LINEX: .ASCII /S.XX 000000/ LINEXL=.-LINE .EVENLNAMES: .ASCII / A.RQ A.TI A.RP A.IR A.IN A.CS A.MT A.CP /" .ASCII /A.HA A.TS A.AS A.TD /F .ASCII /A.EF A.FM A.PD A.AF A.AB A.SA /. .ASCII /A.JN A.TF A.SD A.QI A.SW A.SS /";ADDED TAGS FOR A TIMESHARING TASKA .ASCII /A.TUF A.TUB A.TFW A.TST A.TSV A.TAC A.TQU A.TLV / .EVEN*BADDPB: QIOW$ IO.WVB,5,1,,,,&BAD: .ASCII /***INF ATL Bad syntax***/ BADLN=.-BAD .EVEN,BAD1: .ASCII /***INF ATL Task not active***/ BADLN1=.-BAD1 .EVEN&BYTFLA: .WORD 0 ;FLAG FOR BYTE VALUES .END A.CS A.MT A.CP /" .ASCII /A.HA A.TS A.AS A.TD /F .ASCII /A.EF A.FM A.PD A.AF A.AB A.SA /. .ASCII /A.JN A.TF A.SD A.QI A.SW A.SS /";ADDED TAGS FOR A TIMESHARING TASKA .ASCII /A.TUF A.TUB A.TFW A.TST A.TSV A.TAC A.TQU A.TLV / .EVEN*BADDPB: QIOW$ IO.WVB,5,1,,,,&BAD: .ASCII /***INF ATL Bad syntax***/ BADLN=.-BAD .EVEN,BAD1: .ASCII /***INF ATL Task not active***/ BADzl D:2@ @8@ Bx@GP}@Q@W@ P<@W@9x@ @ %@QBx@Lh8@B#MT 4#TS *#SD #SW T ,L P<Lh8 % Bx**0:_xt  E ! eE "TH w6:_H:_d/TT  ATL for task  :2 * 000000 A.XX 000000 S.XX 000000 A.RQ A.TI A.RP A.IR A.IN A.CS A.MT A.CP A.HA A.TS :2*A.AS A.TD A.EF A.FM A.PD A.AF A.AB A.SA A.JN A.TF A.SD A.QI A.SW A.SS A.TUF A.TUB A.TF+W A.TST A.TSV A.TAC A.TQU A.TLV E8K8 J ***INF ATL Bad syntax******INF ATL Task not active***:2Jd/TT  ATL for task  :2 * 00*;SECTION TO DO A QUICK SCAN OF CLOCK QUEUE;;;; .TITLE CKQ .GLOBL .CKQLH .MCALL QIOW$,DIR$ .enable lc.PAGE .SBTTL CODE&CKQ:: DIR$ #TAGQIO ;WRITE HEADER LINE" MOV #.CKQLH,R0 ;GET START OF LIST2 MOV #STORE,R5 ;CREATE POINTER TO INTERNAL STORAGE* MOV (R0),R0 ;MOVE TO START OF FIRST NODE,NEXT: CMP R0,#.CKQLH ;ARE WE BACK AT CKQLH ?$ BEQ OUTPUT ;YES GO OUTPUT THE DATA7 MOV C.TD(R0),(R5)+ ;STORE STD ENTRY OF REQUESTING TASK" TSTB C.RT(R0) ;CHECK REQUEST TYPE# BEQ 1$ ;BRANCH IF A MARK TIME REQI7 MOV C.R2(R0),(R5)+ ;STORE STD ENTRY ADDR OF REQ'D TASKL BR 2$ ;AND REJOIN SEQUENCE/1$: MOV #MARK,(R5)+ ;STORE ADDRESS OF RAD50 TAG#: BIT #CF.TS,C.RT(R0) ;IS IT A TIMESHARING SCHEDULE ENTRY ? BEQ 2$ ;BR IF NOTR0 MOV #TMSL,-2(R5) ;IF YES CHANGE ADDRESS POINTER.2$: MOV C.SD(R0),(R5)+ ;STORE UPPER TICK COUNT+ MOV C.SD+2(R0),(R5)+ ;AND LOWER TICK COUNTO1 MOV (R0),R0 ;NOW GET START OF NEXT NODE POINTERT$ BR NEXT ;GET ANOTHER NODE TO CHECK/OUTPUT: MOV R5,ENDOFD ;SAVE END OF00c d]04 DATA POINTERT1 MOV #STORE,R5 ;RESET POINTER TO START OF STORAGE  DIR$ #LCRQIO ;DO EXTRA LF CR$NEXOUT: CMP R5,ENDOFD ;END OF DATA ? BEQ DONE ;YES WE'RE DONE) MOV (R5)+,R2 ;POINTER TO TASK NODE TO R2E MOV #6,R1 ;SET UP TO CONVERT MOV #BUFF,R3- JSR PC,..RDTA ;CALL CONVERT$ MOV (R5)+,R2 ;POINTER TO NODE IN R2 MOV #6,R1 ;CHAR COUNT IN R10" MOV #BUFF1,R3 ;BUFFER START TO R3* JSR PC,..RDTA ;CONVERT TASK NAME TO ASCII- MOV #BUFF,R3 ;SET UP POINTER TO BUFFER STARTT$ MOV #14.,R2 ;CHARACTER COUNT TO R2.NULLCK: TSTB (R3)+ ;CHECK FOR NULL ASCII CODE BNE NEXCHR ;NO ITS OK;* MOVB #40,-1(R3) ;YES CHANGE IT TO A SPACE0NEXCHR: SOB R2,NULLCK ;CHECK ANOTHER CHARACTER ?. ;DIVIDE OUT SECONDS & TICKS SO ARITH IS OK( MOV (R5)+,R2 ;UPPER WORD OF TICKS TO R2( MOV (R5)+,R3 ;LOWER WORD OF TICKS TO R32 MOV R5,-(SP) ;SAVE R5 (USED BY OCT-ASCII ROUTINE): DIV #3600.,R2 ;GET SECONDS X 60 + TICKS IN R3 (REMAINDER)) MOV R2,-(SP) ;SAVE HOURS X 60. + MINUTESE CLR R2 ;CLEAR QUOTIENT0 DIV #60.,R2 ;NOW GET SECONDS (QUOTIENT) IN R2, ;TICKS (REMAINDER) IN R3& MOV #TICKS,R1 ;POINTER TO TICKS IN R1) JSR PC,STNUM ;CONVERT & STORE # OF TICKS2 MOV R2,R3 ;SECONDS TO R3% MOV #SECS,R1 ;POINTER TO SECS: IN R1 . JSR PC,STNUM ;CONVERT & STORE 2-DIGIT SECONDS. MOV (SP)+,R3 ;GET HOURS X 60. + MINUTES IN R3 CLR R2 ;AND CLEAR OUT R2) DIV #60.,R2 ;QUOTIENT (#OF HOURS) IN R2; ;REMAINDER (#OF MIN'S) IN R3% MOV #MINS,R1 ;POINTER TO MINS: IN R10 JSR PC,STNUM ;STORE THIS NUMBER MOV R2,R3 ;# OF HOURS IN R3C' MOV #HOURS,R1 ;POINTER TO HOURS: IN R1N JSR PC,STNUM ;AND STORE ITO DIR$ #LINQIO ;WRITE THE LINE MOV (SP)+,R5 ;RESTORE R5I BR NEXOUT,$DONE: RTS PC ;BACK TO MAIN FOR EXIT.PAGE 4.SBTTL SUB TO CONVERT OCTAL NUMBER TO 2 ASCII DIGITS;N5;SUBROUTINE TO TAKE A BINARY NUMBER IN R3, CONVERT ITR=;TO A 2 DIGIT DECIMAL NUMBER AND STORE IT AS TWO ASCII DIGITSR;;ENTER WITH OCTAL NUMBER IN R3#;R1 POINTING TO ASCII OUTPUT BUFFERR;;ROUTINE USES R4 & R5I;U;R1 UNCHANGED AFTER CALL; ;R;;V%STNUM: MOV R3,R5 ;BINARY NUMB. IN R5J CLR R4 ;CLEAR UPPER WORD+ DIV #10.,R4 ;REMAINDER IN R5(LOWER DIGIT) * ADD #60,R5 ;CONVERT IT TO AN ASCII DIGIT MOVB R5,1(R1) ;STORE IT0 ADD #60,R4 ;CONVERT QUOTIENT TO AN ASCII DIGIT! MOVB R4,(R1) ;^AND STORE IT TOOI RTS PC ;AND RETURN.PAGER.SBTTL DATA AREASI IOST: .BLKW 2S;E;THE LINE OUTPUT BUFFERBUFF: .BYTE 0,0,0,0,0,0,040,0403,BUFF1: .BYTE 0,0,0,0,0,0,40,40 ;REQUEST TYPEHOURS: .WORD 0 .BYTE 072,40N MINS: .WORD 0A .BYTE 072,40 SECS: .WORD 0R .BYTE 072,40UTICKS: .WORD 0 SIZE=.-BUFF; ;THE QIO DPB'S; .TAGQIO: QIOW$ IO.WVB,2,1,,IOST,,+LCRQIO: QIOW$ IO.WVB,2,1,,IOST,,T.LINQIO: QIOW$ IO.WVB,2,1,,IOST,,;D1;RAD50 FAKE TASK NAME FOR A TIME SHARING SCHEDULE;; TMSL: .RAD50 ?Time S?D; &;RAD 50 FAKE TASK NAME FOR A MARK TIME;TMARK: .RAD50 /Mark t/,;, ;HEADER LINE;UTAG: .BYTE 15,12 ;LF CR, .ASCII / Task Request Hrs Min Sec Ticks / .BYTE 15,12, .ASCII /------ ------ --- --- --- ----- / SIZE1=.-TAG .EVEN1STORE: .BLKW 400 ;STORAGE FOR THE CLOCK QUE DATAW/ENDOFD: .WORD 0 ;POINTER TO END OF STORED DATA  .END ,1,,IOST,,T.LINQIO: QIOW$ IO.WVB,2,1,,IOST,,;D1;RAD50 FAKE TASK NAME FOR A TIME SHARING SCHEDULE;; TMSL: .RAD50 ?Time S?D; &;RAD 50 FAKE TASK NAME FOR A MARK TIME;TMARK: .RAD50 /Mark t/,;, ;HEADER LINE;UTAG: .BYTE 15,12 ;LF CR, .ASCII / Task Request Hrs Min Sec Ticks / .BYTE 15,12, .ASCIjD4@:2@r!@2@(l@@2}@3@ h    F5BwJw!<<B B j  (l(l4 2}&2,F022}8B>3B3NRdhr!rvr!zr|Ӌ ~BCfr r<  0 & r<  0 s e0qe0 $ .>HP000defgh%TADATADATA : : :  JH     u~SzQD Task Request Hrs Min Sec Ti,$:2*.J6:2<@H:2NR,jcks ------ ------ --- --- --- -----  j  (l(l4 2}&2,F022}8B>3B3NRdhr!rvr!zr|Ӌ ~BCfr r<  0 & r<  0 s e0qe0 $ .>HP0= .ROOT DR3:INF-EXE-*(ACT,NOD,CKQ,PUD,MAP,FRM,ATL,STD,IOR,TER)EXE: .FCTR LB0:[1,1]EXEC.STBACT: .FCTR DR3:INFACTNOD: .FCTR DR3:INFNODCKQ: .FCTR DR3:INFCKQPUD: .FCTR DR3:INFPUD9MAP: .FCTR DR3:INFMAM-*(DR3:INFPTN,DR3:INFPRT,DR3:INFPLT)FRM: .FCTR DR3:INFFRMATL: .FCTR DR3:INFATLSTD: .FCTR DR3:INFSTDIOR: .FCTR DR3:INFIORTER: .FCTR DR3:INFTER .END?; SUBROUTINE TO LIST ALL FORMS TYPE DEVICES WITH NON ZERO FORMS;; ORIGINAL AUTHOR MIKE DEARING; INTERNATIONAL HARVESTER;; .MCALL DIR$,QIOW$,EXIT$S .enable lc;#FRM:: DIR$ #HDRQIO ;DO HEADER LINE MOV .PUDBA,R0 ;PUD BASE -> R0$ENDCHK: CMP .PUDEA,R0 ;THROUGH PUD ? BEQ FRMFIN ;YES BR FRMSPL ;NO CHECK A PUD&NXTPUD: ADD #U.SZ,R0 ;BUMP TO NEXT PUD& BR ENDCHK ;AND CHECK IF STILL IN PUD*FRMSPL: MOVB U.FO(R0),R2 ;FORMS TYPE -> R2 BEQ NXTPUD ;IF ZERO, FORGET IT( ADD #60,R2 ;CONVERT FORM TYPE TO ASCII' MOVB R2,DEVNM+7 ;STORE IN MESSAGE LINE & MOV U.DN(R0),DEVNM ;STORE DEVICE NAME MOV #40,R1 ;ASCII SPACE -> R1L$ MOVB U.UN(R0),R2 ;UNIT NUMBER -> R2' BEQ UNPAKO ;IF UNIT ZERO, FORGET NEXTM* CMPB #7,R2 ;OVER ONE DIGIT UNIT NUMBER ? BGE UNPAKO ;NO' MOV R2,R1 ;YES UNIT NUMBER -> R1 ALSO ' ASH #-3,R2 ;CONVERT TO 'EIGHTS' DIGITT7 BIC #177770,R1 ;AND CLEAR UPPER NUMBER OF 'ONES' DIGITL& ADD #60,R1 ;MAKE 'UNITS' DIGIT ASCII.UNPAKO: ADD #60,R2 ;MAKE 'EIGHTS' DIGIT ASCII1 MOVB R2,DEVNM+2 ;INSERT ASCII DEVICE UNIT NUMBERN# MOVB R1,DEVNM+3 ;INTO MESSAGE LINES FORMO: DIR$ #FRMQIO ;DO MESSAGE BR NXTPUD ;TRY FOR ANOTHER9FRMFIN: CMPB #'T,DEVNM+7 ;DID WE FIND ANY NON ZERO PUDS ?T BNE FRMEX ;YES DIR$ #NOQIO ;NO TELL GUY RTS PC ;AND RETURN!FRMEX: DIR$ #NOQIO1 ;DO CRLF QIO1 RTS PC ;AND RETURN TO MAIN;';NOW THE ASCII MESSAGES7;RDEVNM: .ASCII /DVNN T/ END1=. HDR: .BYTE 12,15 .ASCII /Dev form type/C .BYTE 12,15 .ASCII /--- ---------/D .BYTE 12,15 END2=.V .EVENNONE: .ASCII /none/TNONE1: .BYTE 12,15 END3=.NIOST: .WORD 0,0;M;D;NOW THE QIO DIRECTIVES; 5FRMQIO: QIOW$ IO.WVB,3,1,,IOST,, 1HDRQIO: QIOW$ IO.WVB,3,1,,IOST,,R2NOQIO: QIOW$ IO.WVB,3,1,,IOST,,5NOQIO1: QIOW$ IO.WVB,3,1,,IOST,,A .END;NOW THE ASCII MESSAGES7;RDEVNM: .ASCII /DVNN T/ END1=. HDR: .BYTE 12,15 .ASCII /Dev form type/C .BYTE 12,15 .ASCII /--- ---------/D b :D:2@@W@W@Q@]@@ ](h -'ee0W7J  ¥tEe0e0&w#TDVNN 6 Q],W6W\ltx| T Dev form type --- --------- none  v  ~     :2:28INF IOR XXXXXX (XXXXXX IS TASK NAME); .MCALL QIOW$,DIR$ .enable lc.PAGE.SBTTL ERROR EXITSERROR: ;SYNTAX ERROR$ DIR$ #BADDPB ;DO SYNTAX ERROR MESS RTS PCERROR1: ;TASK NOT IN STD MOV #BAD1,BADDPB+Q.IOPL MOV #BADLN1,BADDPB+Q.IOPL+2 DIR$ #BADDPB RTS PC.PAGE.SBTTL MAIN CODE+IOR:: MOV #MCRBUF,R0 ;POINT TO COMMAND LINE, MOV R0,R1 ;SET T00h]04O MAKE END OF LINE POINTER ADD MCRSIZ,R1 ;NOW HAVE ITI11$: CMPB (R0)+,#40 ;FOUND FIRST SPACE AFTER "INF"C BEQ 2$ ;YESM CMP R0,R1 ;PAST END OF COMMAND BLE 1$ ;YESE JMP ERROR ;NO, AN ERROR.2$: CMPB (R0)+,#40 ;DO AGAIN TO GET PAST "STD" BEQ 3$E$ CMP R0,R1 ;STILL IN COMMAND LINE ? BLE 2$S JMP ERROR3$: ;POINTING AT TASK NAMEB! MOV #1,R1 ;. IS LEGAL CHARACTER. JSR PC,$CAT5 ;CONVERT TO RAD 50, MOV R1,TASNAM ;SAVE FIRST HALF OF TASK NAME" MOV #1,R1 ;DO AGAIN FOR 2ND HALF JSR PC,$CAT5E" MOV R1,TASNAM+2 ;FILL IN 2ND HALF$FINDTA: ;NOW CAN SEARCH STD FOR TASK+ MOV .STDTA,R0 ;POINT R0 TO STD ALPHA TABLEC(LOOP: MOV (R0)+,R1 ;GET NEXT STD ADDRESS$ CMP S.TN(R1),TASNAM ;DO NAMES MATCH BLO LOOP ;NOT THERE YET * BHI ERROR1 ;IF GREATER, PAST NAME IN STD( CMP S.TN+2(R1),TASNAM+2 ;CHECK 2ND HALF BLO LOOP ;NOT THERE YETM! BHI ERROR1 ;IF PAST, NOT IN STDE ;MATCHED, LIST STD4 TST -(R0) ;BUMP R0 BACK TO RIGHT ALPHA TABLE ENTRY- MOV (R0)+,R0 ;GO FROM STD ALPHA TABLE TO STDP MOV R0,-(SP) ;SAVE STD ADDRESSI$ MOV #HEAD1,R0 ;POINT TO HEADER LINE+ MOV TASNAM,R1 ;GET FIRST HALF OF TASK NAMEL JSR PC,$C5TAP MOV TASNAM+2,R1 JSR PC,$C5TAE" MOV (SP)+,R0 ;RESTORE STD ADDRESS DIR$ #HDRDPB ;DO HEADER LINE& MOV .POLBE,R1 ;START AT START OF POOL8 ADD #4,R1 ;BUMP TO WORD 2 (STD ADDR OF ACCOUNTED TASK)% MOV #SAVE,R3 ;R2 POINTS TO SAVE AREA,1LOOK: CMP (R1),R0 ;THIS NODE ACCOUNTED TO TASK ?B BNE NO ;NO# MOV R1,(R3)+ ;SAVE ADDRESS OF NODER! CMP R3,#SAVEEN ;END OF SAVE AREA' BGE PRINT ;IF SO PRINT NODES WE FOUNDE.NO: ADD #20,R1 ;BUMP R1 TO NEXT POSSIBLE NODE# CMP R1,#.SG.BS ;PAST END OF POOL ?C BLO LOOK ;NO CONTINUEJ'PRINT: MOV #SAVE,R2 ;RESET TO SAVE AREAA(PRINT1: MOV (R2)+,R3 ;NODE ADDRESS TO R3 BEQ DONE1# SUB #4,R3 ;RESET TO START OF NODE , MOV R.AT(R3),R4 ;GET ATL OF REQUESTOR IN R4$ BEQ 1$ ;IF 0 COULD BE EXEC REQUEST+ CMP R4,.POLBE ;CHECK FOR VALID ATL ADDRESST/ BLO PRINT1 ;IF TO LOW, NOT AN IO REQUEST NODE , CMP R4,#.SG.BS ;IF TOO HIGH, ALSO NOT VALID BHI PRINT1I%1$: MOV #NAMES,R4 ;POINT AT TAG LINES,* MOV #R.SIZ,R5 ;SIZE OF AN IO REQUEST NODE DIR$ #DIVDPB ;DO DIVIDING LINE ASR R5 ;CONVERT TO WORDS/LOOP1: MOV #LINE,R0 ;POINT TO ASCII OUTPUT LINER MOV R3,R1 ;NODE ADDRESS TO R1D$ JSR PC,$CBOMG ;CONVERT NODE ADDRESS# TST (R0)+ ;BUMP POINTER PAST " "Q* MOV (R4)+,(R0)+ ;FILL IN NAME OF IRQ WORD CLR BYTFLA ;CLEAR BYTE FLAGO CMP (R4),#"PR ;PRI & DPB SIZE BNE 111$ ;NO INC BYTFLA ;YES SET BYTE FLAG.&111$: CMP (R4),#"LU ;LUN & EV FLAG # ? BNE 222$ ;NO INC BYTFLA ;YESA.222$: CMP (R4),#"PC ;PROGRAMMER & GROUP CODE ? BNE 333$ ;NO INC BYTFLA ;YESN333$: MOV (R4)+,(R0)+R MOV (R4)+,(R0)+% MOV (R3)+,R1 ;CONTENTS OF NODE TO R1N TST BYTFLA ;BYTE PRINTOUT ?O BEQ 99$ ;NOC& BIC #177400,R1 ;YES, CLEAR UPPER BYTE99$:6 JSR PC,$CBOMG ;CONVERT CONTENTS TO OCTAL ASCII STRING% TST BYTFLA ;ARE THESE BYTE VALUES ? BEQ 444$ ;NO% MOVB #' ,-6(R0) ;MAKE 3 DIGIT OUTPUTT MOVB #' ,-5(R0) MOVB #' ,-4(R0) R( ADD #2,R0 ;BUMP OVER TO 2ND VALUE AREA) MOV (R4)+,(R0)+ ;FILL IN 2ND R.XX STRINGP MOV (R4)+,(R0)+ MOV (R4)+,(R0)+* MOV -2(R3),R1 ;GET CONTENTS OF NODE AGAIN SWAB R1 ;GET UPPER BYTEV BIC #177400,R1 ;CLEAR LOWER JSR PC,$CBOMG ;CONVERT IT AGAIN MOVB #' ,-6(R0) MOVB #' ,-5(R0)' MOVB #' ,-4(R0) ;MAKE 3 DIGIT PRINTOUTO7 MOV #LINEXL,QIODPB+Q.IOPL+2 ;CHANGE LENGTH OF PRINTOUT;444$: DIR$ #QIODPB ;WRITE LINE47 MOV #LINELN,QIODPB+Q.IOPL+2 ;CHANGE BACK TO SHORT LINE, DEC R5 ;DO R.SIZ LINES BLE 777$0 JMP LOOP1)777$: BR PRINT1 ;TRY FOR ANOTHER IO NODEI(DONE: DIR$ #DIVDPB ;PRINT DIVIDING LINE RTS PC ;AND RETURN.PAGE;.SBTTL DATA AREASE#TASNAM: .BLKW 2 ;ROOM FOR TASK NAMEB/SAVE: .BLKW 20 ;ROOM TO SAVE 16. NODE ADDRESSESR)SAVEEN: .WORD 0 ;END OF SAVE AREA POINTERR;,HDRDPB: QIOW$ IO.WVB,5,1,,,,)HEAD: .ASCII <12><15>/IO nodes for task /PHEAD1: .ASCII / / HEADLN=.-HEAD .EVEN,QIODPB: QIOW$ IO.WVB,5,1,,,,#LINE: .ASCII /000000 S.XX 000000/E LINELN=00h!i#j&k'%TADATADATA.-LINE .ASCII / /LINEX: .ASCII /S.XX 000000/ LINEXL=.-LINE .EVEN*DIVDPB: QIOW$ IO.WVB,5,1,,,,$DIV: .ASCII /----------------------/ DIVLN=.-DIV .EVENLNAMES: .ASCII / R.TD R.AT R.PR R.DP R.LU R.FN R.FC R.SB /F .ASCII /R.AE R.PC R.GC R.PB R.PD /4 .ASCII /R.EL R.WA R.IA R.IB R.UB /*BADDPB: QIOW$ IO.WVB,5,1,,,,&BAD: .ASCII /***INF IOR bad syntax***/ BADLN=.-BAD .EVEN,BAD1: .ASCII /***INF IOR task not in STD***/ BADLN1=.-BAD1 .EVEN>BYTFLA: .WORD 0 ;FLAG FOR BYTE VALUES IN CURRENT IO NODE WORD .END>$DIV: .ASCII /----------------------/ DIVLN=.-DIV .EVENLNAMES: .ASCII / R.TD R.AT R.PR R.DP R.LU R.FN R.FC R.SB /F .ASCII /R.AE R.PC R.GC R.PB R.PD /4 .ASCII /R.EL R.WA R.IA R.IB R.UB /*BADDPB: QIOW$ IO.WVB,5,1,,,,&BAD: .ASCII /***INF IOR bad syntax***/ BADLN=.-BAD .EVEN,BAD1: .ASCII /***INF Iz:Dt}@:2@ !@Q@UK@9x@tP<@QBx@c@[(}@4{W@:_@ *:h  m  w  w wB w8w,*ςw,"ʂ &: "Q(QBxL9xX9x` !f4{Wp4{W|  e@"S eW d7!!>  7 0X [(}[(} UK(2dtP<hpv:_#PR &#LU #PC  E ! eE "~4:_d:_ tr w`  IO nodes for task   000000 S.XX 000000 S.XX 000000 ( -------- :24:2>h:2r(0-------------- R.TD R.AT R.PR R.DP R.LU R.FN R.FC R.SB R.AE R.PC R.GC R.PB  R.PD R.EL R.WA R.IA R.IB R.UB   ***INF IOR bad syntax******INF IOR task not in STD***::2D((_d:_ tr w`  IO nodes for task   000000 S.XX 000000 S.XX 000000 ( -------- :24:2>h:2r(0-------------- R.TD R.AT R.PR R.DP R.LU R.FN R.FC R.SB R.AE R.PC R.INF=INF INFACT=INFACT INFNOD=INFNOD INFCKQ=INFCKQ INFPUD=INFPUD INFMAM=INFMAM INFPTN=INFPTN INFPRT=INFPRT INFPLT=INFPLT INFFRM=INFFRM INFATL=INFATL INFSTD=INFSTD INFIOR=INFIOR INFTER=INFTER .TITLE MAPE# .SBTTL PROGRAM DESCRIPTIONO .IDENT 'CYRUS' 8; ************************************************8; * *8; * PROGRAM MAP *8; * *8; * SYSTEM . . . *8; * RSX *8; * *8; * SUBSYSTEM . . . *8; * DEBUGGING AIDS *8; * *8; * FUNCTION . . . *8; * USER-WRITTEN MCR FUNCTION "MAP" *8; * MAPS THE CURRENT USEAGE OF A PARTITION *8; * ON CL0. INFORMATION IS PRINTED ON: *8; * 1) TASK CURRENTLY IN-CORE *8; * 2) TASKS IN MEMORY-REQUIRED LIST *8; 00k)]04* 3) TASKS IN CHECKPOINTABLE-TASK LIST *8; * DATA LISTED FOR EACH TASK: *8; * 1) TASK NAME *8; * 2) TASK PRIORITY *8; * 3) TASK ADDRESS IF IN-CORE *8; * 4) TASK SIZE (CORE REQUIRED) *8; * ERROR OUTPUT IS ON CO0 *8; * *8; * CALLING SEQUENCE . . . *8; * MCR>MAP *8; * *8; * NOTES . . . *8; * 1) ...MAP IS A PRIVILEGED TASK *8; * 2) ...MAP MUST RUN AT SUFFICIENT *8; * PRIORITY SO THAT THE PARTITION *8; * CANNOT CHANGE DURING ITS EXECUTION. *8; * 3) 5 WORDS OF STACK SPACE ARE USED *8; * FOR EACH TASK REPORTED ON: *8; * 2 WORDS OF RAD50 TASK NAME *8; * 1 WORD OF TASK PRIORITY *8; * 1 WORD OF 1/64TH TASK ADDR *8; * 1 WORD OF 1/64TH TASK SIZE *8; * *8; * PROGRAMMER . . . *8; * C. MEAD 02/11/74 *8; * *8; ************************************************; 2; ************************************************ ; * *-; * MODIFIED BY F.BORGER TO BE A SUBROUTINE * -; * (OVERLAY) OF SYSTEM INFORMATION PROGRAM **; * ...INF CALLED BY---- * ; * MCR>INF MAP *; * 31/JAN/74 * ; * *3; ************************************************* .PAGE 3 .SBTTL DEFINITIONS AND EXTERNAL REFERENCES ; ; MACROS USED: .MCALL QIOW$,DIR$; ; ; .PAGE 5 .SBTTL MAP : PROGRAM ENTRY - GET MCR LINE ; MAP::*1; SAVE LAST TWO CHARACTERS OF LINE FOR FLAG CHECK*3 MOV #MCRBUF-2,R0 ;SET POINTER TO LAST 2 CHARACTERS % ADD MCRSIZ,R0 ;POINT TO START+SIZE-2 , MOV #MCRSIZ,R1 ;USE STRING LENGTH AS BUFFER MOVB (R0)+,(R1)+ ;*& MOVB (R0)+,(R1)+ ;SAVE TWO CHARACTERS;*4; SET R0 AS POINTER TO 7TH CHARACTER OF MCR CMD LINE; (SKIPPING OVER 'INF MAP')I; 5 MOV #MCRBUF+7,R0 ;R0 -> MCR BUFFER + 7C, MOV #MCRBUF,R1 ;COMPUTE END OF LINE POINTER ADD MCRSIZ,R1 ;IN R1P11$: CMPB (R0)+,#40 ;A SPACE BEQ 22$ CMP R0,R1 ;PAST BUFFER BLE 11$ ;NO TRY AGAIN* JMP ERROR ;YES, AN ERROR22$:&; PACK PARTITION NAME INTO RAD50.; FIRST ACCOUNT FOR NAME LESS THAN 6 CHARACTES, MOV #PARBUF,R1 ;R1 -> PARTITION NAME BUFFER MOV #6,R2 ;USE R2 AS COUNTER&1$: MOVB (R0)+,(R1)+ ;XFER A CHARACTER CMPB (R0),#'/ ;END OF NAMEP BEQ NAMEOK ;YES QUIT0 SOB R2,1$ ;IF NO "/", TRY TO XFER 6 CHARACTERS; 2NAMEOK: MOV #6,R1 ;R1 = CHAR. COUNT! MOV #PARBUF,R2 ;R2 -> ASCII NAME)1 MOV #PNAME,R3 ;R3 -> RAD50 NAME+ JSR PC,..ATRD ;CONVERT ITN#; GO SEARCH TPD FOR THIS NAMEN; . JSR PC,GETPTN ;CALL FIRST OVERLAY SEG! TST PNAME ;CHECK FOR NAME ERRORP( BEQ GOBACK ;AND RETURN IF BAD PAR NAME) CMP MCRSIZ,#"/P ;REQUEST FOR PLOT MODE ?A BNE 1$ ;NO* JSR PC,PRTPLT ;YES DO ADDRESS ORDERED MAP RTS PC ;AND RETURN;"+1$: JSR PC,PRTHDR ;CALL SECOND OVERLAY SEG GOBACK: RTS PC ;WE'RE DONE ;TERROR: DIR$ #MEMERR  RTS PCN .PAGEO; ; CONSTANTS AND WORK AREAS; COMMON (GLOBAL) DATA AREAS; +PNAME:: .WORD 0,0 ;STORAGE FOR RAD-50 NAMES#TPDPTR:: .WORD 0 ;ADDR OF TPD ENTRYA)PTNBA:: .WORD 0 ;1/64TH BASE ADDR OF PARR(PTNEA:: .WORD 0 ;1/64TH TOP ADDR OF PTN&MRLLHA:: .WORD 0 ;MRL LISTHEAD ADDRESS&CTLLHA:: .WORD 0 ;CTL LISTHEAD ADDRESS)SPSAVE:: .WORD 0 ;STACK POINTER SAVE WORD #ATLCNT:: .WORD 0 ;ATL ENTRIES FOUND;#STDCNT:: .WORD 0 ;STD ENTRIES FOUND #MRLCNT:: .WORD 0 ;MRL ENTRIES FOUNDM#CTLCNT00k1l2m4'%TADATADATA:: .WORD 0 ;CTL ENTRIES FOUNDCOMCNT:: .WORD 0 ;COMMONS FOUND3PARBUF: .ASCII / / ;BUFFER FOR ASCII TASK NAME;2MAPKEY: .ASCII 'MAP' ;MCR FUNCTION CODE; 6MEMSG: .ASCII 'MAP: ' ;INVALID MCR ERROR MSG* .ASCII 'INVALID MCR COMMAND LINE'MEMSGL= .-MEMSGI .EVEN-MEMERR: QIOW$ IO.WVB,5,1,,,,: .END0 ;STACK POINTER SAVE WORD #ATLCNT:: .WORD 0 ;ATL ENTRIES FOUND;#STDCNT:: .WORD 0 ;STD ENTRIES FOUND #MRLCNT:: .WORD 0 ;MRL ENTRIES FOUNDM#CTLCNT*xQ8L,.g@:2@*Q@QBx@f2@fe@a@*(l h%hhALh~*xQhThTALh|1fRhr.g hx*.ghhzSy hyh2ghv *mm  *Q QBxQBxQQQBx*&w@/~r   $r(a*L  -/P ,.gQBxfef2$*r MAPMAP*: INVALID MCR COMMAND LINE  :2  @a@*(l h%hhALh~*xQhThTALh|1fRhr.g hx*.ghhzSy hyh2ghv *mm  *Q QBxQBxQQQBx*&w@/~r   $r(a*L  -/P ,.gQBxfef2$*r MAPMAP* ;SECTION TO LIST NODE POOL USAGE7;AS MODIFIED BY F. BORGER, MICHAEL REESE MECICAL CENTER;; .TITLE NOD# .MCALL DIR$,QIO$,WTSE$,EXIT$,RQST$ .enable lc PSW=177776#NOD:: ;FIRST CALC MAX POOL AND HOLE" MOV .POLLH,R4 ;;GET POOL LISTHEAD% CLR R3 ;;CLEAR 'LARGEST HOLE' COUNT" CLR R5 ;;CLEAR TOTAL NODES COUNT10$:$ ADD 2(R4),R5 ;;ADD IN NEW HOLE SIZE/ CMP 2(R4),R3 ;;IS THIS THE LARGEST HOLE SO FAR BLOS 20$ ;;BR IF NO MOV 2(R4),R3 ;;GET NEW SIZE20$: TST (R4) ;;DONE BEQ 30$ ;;BR IF YES MOV @R4,R4 ;;MOVE TO NEXT HOLE BR 10$ ;;LOOP TIL DONE30$: ASH #-4,R3 ;CONVERT TO 8-WORDS# MOV R3,HOLTOT ;;SAVE MAX HOLE SIZE ASH #-4,R5& MOV R5,POLTOT ;;SAVE TOTAL NODE COUNT$ MOV #ORISZ+4,R2 ;TEXT POINTER TO R2 MOV POLTOT,R0 ;POOL SIZE -> R0S) JSR PC,UNPAK ;UNPACK NUMBER INTO MESSAGES% MOV #ORIHOL+4,R2 ;TEXT POINTER TO R2W( MOV HOLTOT,R0 ;LARGEST HOLE SIZE TO R0 JSR PC,UNPAK ;UNPACK NUMBER DIR$ #ORIQIOM DIR$ #WAIT;%TASK: MOV .STDTA,R4 ;GET START OF STD* CLR STDLAS ;CLEAR LAST STD ENTRY POINTER) CLR STDTOT ;CLEAR COUNTER FOR STD USAGE: CLR R1 ;CLEAR FORMAT COUNTERNEXT: MOV (R4)+,R54 MOV R5,STDLAS ;SAVE STD ENTRY POINTER FOR END CHECK) ADD #2,STDTOT ;COUNT 2 8-WORD NODES USEDT MOV S.PU(R5),R0 ;GET COUNT0 BEQ CHECK ;NO NODES USED SUB R0,POLTOT ;SUB FROM TOTAL( MOV #TASKND+4,R2 ;BUFFER POINTER SET UP! JSR PC,UNPAK ;AGAIN UNPACK DIGIT MOV R1,-(SP),$ MOV #6,R1 ;SET UP FOR RA50 CONVERT MOV R5,R2 MOV #TASKNM,R3A JSR PC,..RDTA MOV (SP)+,R1D INC R1A2 MOVB #'$,TASQIO+Q.IOPL+4 ;SET UP CARRIAGE CONTROL2 CMP R1,#1 ;1ST OF LINE, WE'RE SET FOR IT ALREADY BEQ 100$) CMP R1,#4 ;4TH TIME ON LINE ?T BLT 99$ ;BR IF NOT CLR R1 ;RESET MOD 4 COUNTERO2 MOVB #'+,TASQIO+Q.IOPL+4 ;MAKE THIS ONE OVERPRINT BR 100$>99$: CLRB TASQIO+Q.IOPL+4 ;FIRST LINE MAKE IT A PROMPT CAR CTL100$: DIR$ #TASQIO DIR$ #WAITA?CHECK: CMP (R4),STDLAS ;DUPLICATE ENTRIES IN STD TABLE MEAN ENDA BEQ 1$ ;NO GO AGAIN2 TST (R4) ;OR NO STD ENTRY POINTER MEANS DONE TOO BNE NEXT ;NO GO AGAINQ(1$: DIR$ #POOL ;DO TOTAL, MAX HOLE LINE DIR$ #WAITI2 MOV STDTOT,R0 ;NUMBER OF NODES USED FOR STD -> R0$ SUB R0,POLTOT ;SUB FROM TOTAL NODES- MOV #STDND+4,R2 ;GET POINTER TO MESSAGE AREA'& JSR PC,UNPAK ;CONVERT NUMBER TO ASCII DIR$ #STDQIO ;REPORT ITQ DIR$ #WAIT ;WAIT FOR QIO DONE 4 MOV .GCDLH,R2 ;GET START OF GLOBAL COMMON DIRECTORY CLR R0 ;CLEAR COUNTERC'GCLOOP: TST (R0)+ ;COUNT ONE GCD ENTRY1! MOV (R2),R2 ;GET NEXT GCD ENTRY / CMP R2,#.GCDLH ;AT END 00m9n>]04OF GLOBAL COMMON DIR. ?G BNE GCLOOP ;NO GET ANOTHER SUB R0,POLTOT ;SUB NODES USED$ MOV #GCDND+4,R2 ;TEXT POINTER TO R2 JSR PC,UNPAK ;INSERT NODE USAGE DIR$ #GCDQIO ;REPORT ON GCDN DIR$ #WAITO(; MOV POLTOT,R0 ;UNACCOUNTED NODES TO R0(;1$: MOV #UNAND+4,R2 ;TEXT POINTER TO R2!; JSR PC,UNPAK ;WRITE INTO BUFFERD(; DIR$ #UNAQIO ;WRITE UNACCOUNTED NODES; DIR$ #WAIT ;WAIT FOR ITSTOP: RTS PC ;BACK TO MAINR4ORIQIO: QIO$ IO.WVB,2,1,,IOST,,1POOL: QIO$ IO.WVB,2,1,,IOST,,D6TASQIO: QIO$ IO.WVB,2,1,,IOST,,4STDQIO: QIO$ IO.WVB,2,1,,IOST,,4GCDQIO: QIO$ IO.WVB,2,1,,IOST,,4UNAQIO: QIO$ IO.WVB,2,1,,IOST,, WAIT: WTSE$ 1:ORIND: .BYTE 12,15 ;CARRET,LF .ASCII /Nodes usage / .BYTE 12,15 .ASCII /----- ------ /E .ASCII /----- ------ /$ .ASCII /----- ------ /P .ASCII /----- ------ / END1=.ISIZE: .BYTE 12,15,ORISZ: .ASCII / . available/$ .BYTE 15,12#ORIHOL: .ASCII / . largest hole/I END1A=. .EVENTASKND: .ASCII / . /> .EVENTASKNM: .BLKB 6, .ASCII / /, END3=.D,STDND: .ASCII / . system task directory / END4=.4 .EVEN.GCDND: .ASCII / . global common directory / END5=.T .EVEN#UNAND: .ASCII / . not accounted/I END6=.u .EVEN&POLTOT: .WORD 0 ;TOTAL NUMBE OF NODES+HOLTOT: .WORD 0 ;LARGEST HOLE IN NODE POOL-*STDTOT: .WORD 0 ;TOTAL NODES USED FOR STD)STDLAS: .WORD 0 ;POINTER TO CURRENT STD l IOST: .BLKW 21SPSP: .BYTE 40,40I; +;SUBROUTINE TO UNPACK R0,CONVERT TO DECIMAL >;AND STORE THE ASCII NUMBER IN THE APPROPRIATE BUFFER USING R2 ;AS A POINTERI; ;.UNPAK: MOV R1,HOLD ;SAVE R13 MOV #TASKND,R1 ;GET START OF NODES USED BY MESSAGEc* MOV SPSP,(R1)+ ;BLANK OUT (TO SPACES) THE MOV SPSP,(R1) ;PREVIOUS NUMBERV TST R0 ;NUMBER 0 ? BGT UNPAK1 ;IF NOT OKT. MOVB #60,-(R2) ;ELSE PUT ASCII ZERO IN BUFFER BR UNPKD ;AND WE'RE DONE%UNPAK1: MOV R0,R1 ;CET VALUE INTO R1C TST R1 ;IS IT ZERO ? BEQ UNPKD CLR R0 ;NO CONTINUEO, DIV #10.,R0 ;AFTER DIVIDE, REMAINDER IN R1' ADD #60,R1 ;CONVERT R1 TO ASCII DIGITB MOVB R1,-(R2) ;AND STOREE BR UNPAK1UNPKD: MOV HOLD,R1 ;RESTORE R1V RTS PCR HOLD: .WORD 0  .ENDSED BY MESSAGEc* MOV SPSP,(R1)+ ;BLANK OUT (TO SPACES) THE MOV SPSP,(R1) ;PREVIOUS NUMBERV TST R0 ;NUMBER 0 ? BGT UNPAK1 ;IF NOT OKT. MOVB #60,-(R2) ;ELSE PUT ASCII ZERO IN BUFFER BR UNPKD ;AND WE'RE DONE%UNPAK1: MOV R0,R1 ;CET VALUE INTO R1C TST R1 ;IS IT ZERO ? BEQ UNPKD CZYD:2@0{@@ !@@r!@L@ Yh   m- t,Wuw" $ 7 7  we@&7 (L4@LRX !r0{@||fB  $W  W  +7>7# ,|7t zP .r!<>BR,XfnPtz 7L" Rb XD  X%  X  X  X Z"b (:2.X2::2@XDL:2RXV^:2dXhp:2vXzt X< ) Nodes usage ----- ------ ----- ------ ----- ------ ----- ------ . available . largest h:2 X<ole  . ! . system task directory 5 . global common directory . not accountedzP P\<\ w0 0   r e0b X  X Z"b (:2.X2::2@XDL:2RXV^:2dXhp:2vXzt X< ) Nodes usage ----- ------ ----- ------ ----- ------ ----- ------ . available . largest h:2 X<ole  . ! . system task directory 5 . global common directory . not accountedzP P\<\ w0 00oA2m4'%TADATADATA .TITLE PRTPLT .SBTTL INTRODUCTION .enable lc;;1; MODIFICATION OF PRINT OVERLAY SECTION OF INFORM3; TO LIST ACTIVE AND FIXED TASKS, PURE SECTIONS AND6; COMMONS OF ONE PARTITION ORDERED BY STARTING ADDRESS6; AND INSTERTING NOTATION OF ANY HOLES IN THEIR PROPER; NUMERICAL SEQUENCE;:; HOPEFULLY THIS WILL BE A BETTE DISPLAY OF JUST HOW BADLY+; PARTITION IS FRAGMENTED BY TASK SO AND SO;-;DEFINE NUMBER OF TASKS WE CAN SORT AND PRINT NUMTAS=125.1 .SBTTL PRTHDR : PRINT MAP LISTING HEADERT;. .MCALL QIOW$CIOEFN=1 ;I/O WAITS ON FLAG #1COLUN=2 ;OUTPUT ON UNIT #2TCLLUN=3 ;ERRORS ON UNIT#3&; SET TASK NAME INTO HEADER LINE; 2PRTPLT:: MOV #6,R1 ;R1 = CHAR COUNT1 MOV #PNAME,R2 ;R2 -> RAD50 NAMER7 MOV #H1NAME,R3 ;R3 -> NAME IN HDR LINEA1 JSR PC,..RDTA ;CONVERT TO ASCIIA;N0; SET PARTITION ADDRESSES INTO HEADER LINE;E4 MOV #H1BA+4,R1 ;R1 -> OUTPUT AREA+1/ CLR R2 ;R2/R3 = 32-BITW5 MOV PTNBA,R3 ;PARTITION START ADDR 3 MOV #4,R4 ;R4 = LOOP COUNTERK;M42$: DIV #10,R2 ;R3 = AN OCTAL DIGIT5 ADD #60,R3 ;R3 = AN OCTAL DIGITR4 MOVB R3,-(R1) ;SET DIGIT INTO LINE7 MOV R2,R3 ;SET UP FOR NEXT DIVIDEN CLR R2) SOB R4,2$ ;AND LOOP ;E4 MOV #H1EA+4,R1 ;R1 -> OUTPUT AREA+1/ CLR R2 ;R2/R3 = 32-BIT-3 MOV PTNEA,R3 ;PARTITION END ADDRT3 MOV #4,R4 ;R4 = LOOP COUNTERO;E43$: DIV #10,R2 ;R3 = AN OCTAL DIGIT5 ADD #60,R3 ;R3 = AN OCTAL DIGIT 4 MOVB R3,-(R1) ;SET DIGIT INTO LINE7 MOV R2,R3 ;SET UP FOR NEXT DIVIDED CLR R2) SOB R4,3$ ;AND LOOPD;O; PRINT 3 LINES OF HEADER1; 7 QIOW$C IO.WVB,CLLUN,IOEFN,,,,R;37 QIOW$C IO.WVB,CLLUN,IOEFN,,,,D;D7 QIOW$C IO.WVB,CLLUN,IOEFN,,,,;.PAGE  .SBTTL MAIN SORTING CODE - MOV SPSAVE,R0 ;USED STACK TO STORE DATA, GET 8 SUB #100,R0 ;POINTER AGAIN, BUT WATCH FOR LINKAGE AREA ; ;RESTORE AND SORT ATL LIST * TST ATLCNT ;ARE THERE ANY ACTIVE TASKS ? BEQ NOATL ;NO SKIP THIS ;ATLLOP: CMP -(R0),-(R0) ;PUSH R0 TO FIRST HALF OF TASK NAMEE MOV R0,R1 ;R1 ->TASK NAMEW MOV -(R0),R2 ;PRIORITY -> R2N" MOV -(R0),R3 ;START ADDRESS -> R3 MOV -(R0),R4 ;TASK SIZE ->R4N, JSR PC,INSERT ;INSERT INTO SORTED DATA AREA+ TST -(R0) ;WAS THE A LINKED COMMON AREA ?A BMI NEXATL ;NO SKIP NEXT CODE;, CMP -(R1),-(R1) ;BUMP R1 BACK TO NAME AGAIN! MOV (R0),R3 ;START ADDRESS ->R3G MOV -(R0),R4 ;SIZE -> R4O MOV -(R0),R2 ;FLAG TYPE TO R2 SWAB R2 ;PUT IT IN UPPER BYTEA3 JSR PC,INSERT ;INSERT THIS INTO SORTED DATA BUFFERT*NEXATL: DEC ATLCNT ;ACCOUNTED FOR ONE ATL BGT ATLLOP ;LOOP IF NOT DONE ; ;NOW LOOK FOR FIXED TASKS%NOATL: TST STDCNT ;ANY FIXED TASKS ?I BEQ NOFTL ;NO SKIP THISN/FTLLOP: CMP -(R0),-(R0) ;R0 -> 1ST HALF OF NAMEA" MOV R0,R1 ;R1 -> " " " " MOV -(R0),R2 ;PRIORITY -> R2) MOV -(R0),R3 ;START ADDR -> R3N MOV -(R0),R4 ;TASK SIZE -> R4' JSR PC,INSERT ;PUT IN SORTED DATA AREAR DEC STDCNT ;THAT'S ONE DONE2$ BGT FTLLOP ;LOOP TILL FTL FINISHED ;4 ;NOW FOR COMMONS, BUT MUST JUMP OVER CTL & MRL DATA&NOFTL: TST COMCNT ;ANY COMMON AREAS ? BEQ NOCOM ;NO SKIP THISO+ MOV CTLCNT,R1 ;NUMBER OF CTL ENTRIES -> R1N) ADD MRLCNT,R1 ;ADD NUMBER OF MRL ENTRIESN% MUL #10.,R1 ;CONVERT TO BYTE OFFSETL" SUB R1,R0 ;ADJUST RO ACCORDINGLY4COMLOP: CMP -(R0),-(R0) ;R0 -> IST HALF OF TASK NAME MOV R0,R1 ;R1 DOES TOO MOV -(R0),R2 ;PRI TO R2 MOV -(R0),R3 ;ADDRESS TO R3 MOV -(R0),R4 ;SIZE TO R4 ) JSR PC,INSERT ;INSERT INTO SORTED BUFFER  DEC COMCNT ;ANOTHER DONE BGT COMLOP ;LOOP TILL DONE.PAGE  .SBTTL MAIN OUTPUT CODE)NOCOM: TST DATNUM ;ANY TASKS TO REPORT ?I00oI>]04! BEQ SCRAM ;IF NOT, JUST GET OUTN& MOV #DATBUF,R0 ;R0 -> START OF BUFFER" MOV DATNUM,R1 ;# OF ENTRIES IN R1 MUL #10.,R1 ;CONVERT TO OFFSET' ADD R1,R0 ;NOW POINTS PAST LAST ENTRY,> MOV PTNEA,6(R0) ;PUT END OF PARTITION ADDR AS FAKE START ADDR0 MOV #DATBUF,R0 ;RESET BUFFER POINTER FOR OUTPUT,OUTLOP: MOV 6(R0),LSTEND ;START ADDR OF TASK. ADD 10(R0),LSTEND ;ADD SIZE, NOW =END ADDRESS# JSR PC,PRTLIN ;DO A LINE OF OUTPUTE1 CMP 6(R0),LSTEND ;IS NEXT TASK RIGHT NEXT DOOR ?U BLE NOHOLE ;YES, NO HOLE3 MOV LSTEND,HOLADR ;THERE IS A HOLE, INSERT ADDRESSR+ MOV 6(R0),HOLSIZ ;COMPUTE SIZE OF THE HOLET* SUB LSTEND,HOLSIZ ;BY SUB. START FROM END# MOV R0,-(SP) ;SAVE CURRENT POINTERN4 MOV #DUMHOL,R0 ;SET R0 TO POINT TO DUMMY TASK ENTRY$ JSR PC,PRTLIN ;PRINT LINE OF OUTPUT$ MOV (SP)+,R0 ;RESTORE POINTER TO R0,NOHOLE: DEC DATNUM ;COUNT ONE TASK REPORTED BNE OUTLOP ;LOOP TILL DONESCRAM: RTS PC ;THEN RETURNL.PAGEO .SBTTL SUBROUTINEST; ;; SUBROUTINE TO INSERT A 5 WORD TASK DESCRIPTOR INTO DATBUF.; IN SEQUENCE ACCORDING TO ITS ADDRESS IN CORE;R; CALLING CONDITIONS ; R1 POINTER TO 2-WORD TASK NAME; R2 =TASK PRIORITYT; R3 =TASK ADDRSSR; R4 =TASK SIZER; <INSERT: CMP DATNUM,#NUMTAS ;TOO MANY TASKS SAVED IN BUFFER ?% BLT 1$ ;NO IT'S OK TO STORE ANOTHER RTS PC ;YES JUST RETURNT41$: MOV #DATBUF,R5 ;INITIALIZE R5 TO START OF BUFFER'INNEXT: CMP R3,6(R5) ;COMPARE ADDRESSESS& BLT LOWER ;NEW TASK ADDRESS IS LOWER( BGT HIGHER ;NEW TASK ADDRESS IS HIGHER1 RTS PC ;IF ADDR IS THE SAME, THIS IS A MULTIPLEO/ ;REFERENCED PURE CODE AREA, IGNORE 2ND TIMET%HIGHER: TST 6(R5) ;IS NEXT ADDRESS 0- BEQ ADDON ;IF YES JUST ADD TO END OF BUFFER=7 ADD #10.,R5 ;IF NOT BUMP TO NEXT BUFFER ENTRY AND TRYS BR INNEXT ;AGAIN FOR AN INSERTF ;HERE IF TASK TO BE INSERTED HAS A LOWER ADDRESS AND SOME DATA BLOCKS ;MUST BE SHIFTEDSLOWER: MOV R4,-(SP) ;SAVE R4 MOV R3,-(SP) ;R3R MOV R2,-(SP) ;AND R2W1 MOV DATEND,R4 ;CURRENT END OF DATA POINTER TO R4E+ ADD #10.,R4 ;UPDATE POINTER BY FIVE WORDST, MOV DATEND,R3 ;R3 POINTS TO OLD END OF DATA01$: MOV -(R3),-(R4) ;SHIFT A WORD 5 WORDS HIGHER$ CMP R3,R5 ;ARE WE AT CURRENT ENTRY4 BGT 1$ ;NO LOOP TILL CURRENT FILE ENTRY IS SHIFTED ;E ;APPROPRIATE FILE ENTRYS HAVE BEEN SHIFTED TO MAKE ROOM FOR NEWCOMERK MOV (SP)+,R2 ;RESTORE R2  MOV (SP)+,R3 ;R3T MOV (SP)+,R4 ;AND R4F ;# ;NOW FALL INTO NORMAL FILL ROUTINER(ADDON: MOV (R1)+,(R5)+ ;INSERT TASK NAME MOV (R1)+,(R5)+ ;(TWO WORDS)  MOV R2,(R5)+ ;INSERT PRIORITY" MOV R3,(R5)+ ;INSERT TASK ADDRESS MOV R4,(R5)+ ;INSERT TASK SIZE , ADD #10.,DATEND ;UPDATE END OF DATA POINTER/ INC DATNUM ;COUNT ANOTHER ENTRY IN THE BUFFERB RTS PC ;WE ARE DONER ;: ;SUBROUTINE TO PRINT ONE LINE OF INFORMATION ABOUT A TASK ;ENTRY CONDITIONS ARE ;& ;R0 POINTS TO 5 WORD BUFFER OF FORMAT ; TASK NAME (RAD50, 2 WORDS)R ; TASK PRIORITY ; TASK ADDRESSM ; TASK SIZE ; ;R1,R2,R3,R4 ALSO USEDN) ;ON EXIT, R0 BUMPED TO NEXT 5-WORD ENTRYS;+PRTLIN: MOV R0,R2 ;R2 POINTS TO RAD50 DATA  MOV #6,R1 ;R1 CONTAINS COUNT* MOV #DLLINE,R3 ;R3 POINTS TO ASCII BUFFER JSR PC,..RDTA ;CONVERT TO ASCII ;CHANGE NULLS TO BLANKS MOV #6,R1 ;COUNT TO R1' MOV #" ,R2 ;R2 CONTAINS ASCII SPACESN2 MOV #DLLINE,R3 ;R3 CONTAINS POINTER TO ASCII NAME1$: TSTB (R3) ;IS IT A NULL BNE 2$ ;NO SKIP IT% MOVB R2,(R3) ;YES CHANGE TO A SPACE "2$: INC R3 ;INC TO NEXT CHARACTER SOB R1,1$ ;UNTIL DONEL ; ;NOW INSERT PRIORITYP- CMP (R0)+,(R0)+ ;BUMP POINTER PAST TASK NAME  MOV (R0),R1 ;PRI WORD TO R1V" SWAB R1 ;TYPE FLAG TO LOWER BYTE! BIC #177400,R1 ;CLEAR UPPER BYTE# MOV R1,TYPFLA ;SAVE THIS TYPE FLAGH1 BIC #177400,(R0) ;CLEAR UPPER BYTE OF PRIOR WORDV MOV #3,R4 ;CONVERT COUNT TO R4, MOV #PRIEND,R1 ;POINTER TO ASCII TEXT TO R1- INC DECFLG ;SET FLAG FOR DECIMAL CONVERSION 3 JSR PC,PRTSUB ;DO SUB TO CONVERT TO ASCII & INSERT ;NOW INSERT START ADDRESS MOV #6,R4 ;CONVERT COUNT TO R4* MOV #ADDEND,R1 ;TEXT INSERT POINTER TO R4 JSR PC,PRTSUB ;CONVERT & INSERT ;NOW INSERT TASK SIZE M00oQpW4'%TADATADATAOV #4,R4 ;CONVERT COUNT TO R4* MOV #SIZEND,R1 ;TEXT INSERT POINTER TO R1 JSR PC,PRTSUB ;CONVERT & INSERT ;NOW INSERT TYPE OF SEGMENT MOV TYPFLA,R1 ;TYPE TO R1 CMP R1,#4 ;TYPE OK ? BLE 4$ ;YESR CLR R1 ;NO DEFAULT TO 0 TYPE4$: TST R1 ;OR NEGATIVE?G BPL 5$ ;NO ITS OKO CLR R1 ;BAD, DEFAULT TO 0 +5$: MUL #6,R1 ;CONVERT R1 TO 6 BYTE OFFSETT" ADD #TYPTAB,R1 ;ADD BASE OF TABLE MOV #6,R2 ;COUNT TO R2' MOV #TYPSTA,R3 ;STARTING ADDRESS TO R3;46$: MOVB (R1)+,(R3)+ ;XFER ONE CHAR TO OUTPUT STRING SOB R2,6$ ;LOOP TILL DONEI ;NOW PRINT THAT LINE0 QIOW$C IO.WVB,CLLUN,IOEFN,,,, RTS PC ;DONE, RETURN;M6; SUB TO CONVERT ONE WORD TO N OCTAL DIGITS AND INSERT3; INTO ASCII LINE, (DECIMAL CONVERSION IF DECFLG=1) &PRTSUB: MOV (R0)+,R3 ;NEXT VALUE TO R31 BNE PRTLOP ;IF NOT ZERO CAN'T BE DUMMY PRIORITY  CMP R4,#3 ;3 DIGIT PRIORITY ?B BNE PRTLOP ;NO# MOV #40,R3 ;OK, DO SPACES INSTEAD# MOVB R3,(R1) ;OVERWRITE PERIOD MOVB R3,-(R1) ;AND 3 DIGITS MOVB R3,-(R1) ;AND 3 DIGITS MOVB R3,-(R1) ;AND 3 DIGITS CLR DECFLG  RTS PCO PRTLOP: CLR R2 ;CLEAR UPPER REG TST DECFLG ;DECIMAL CONVERT? BEQ 1$ ;NO, WANT OCTAL DIV #10.,R2 ;REMAINDER IN R3 BR 2$ ;AND SKIP NEXT 1$: DIV #10,R2 ;REMAINDER IN R3$2$: ADD #60,R3 ;CONVERT IT TO ASCII# MOVB R3,-(R1) ;INSERT INTO MESSAGEE MOV R2,R3 ;QUOTIENT BACK TO R3 SOB R4,PRTLOP ;LOOP N TIMES# CLR DECFLG ;CLEAR CONVERSION FLAGT RTS PC ;THEN RETURNV.PAGE  .SBTTL DATA AREAS;;; ;DUMMY VARIABLES FOR OUTPUT 7DUMHOL: .RAD50 /.HOLE./ ;DUMMY ENTRY FOR PRINTING HOLESSHOLPRI: .WORD 0 HOLADR: .WORD 0RHOLSIZ: .WORD 0;-LSTEND: .WORD 0 ;ADDR OF END OF LAST SEGMENTV+DECFLG: .WORD 0 ;FLAG FOR OCTAL CONVERSION ;T*PURNAM: .RAD50 /P.CODE/ ;DUMMY RAD 50 NAME,DATNUM: .WORD 0 ;NUMBER OF DATUMS IN BUFFER1DATBUF: .BLKW 5*NUMTAS+1 ;BUFFER FOR SORTED TASKS ;DATEND: .WORD DATBUF ;POINTER TO NEXT EMPTY WORD IN DATBUFI/TYPFLA: .WORD 0 ;TYPE FLAG FOR CURRENT SEGMENT ;A ;BUFFER FOR ASCII 'TYPE' STRINGS;OTYPTAB: .ASCII / /H .ASCII /Impure/ ;TYPE 1 .ASCII /Pure / ;TYPE 2 .ASCII /Fixed / ;TYPE 3 .ASCII /Global/ ;TYPE 4;NOW ASCII MESSAGESF;S#H1LIN: .ASCII 'Map of partition 'RH1NAME: .ASCII ' ' .ASCII ' ' H1BA: .ASCII 'XXXX00' .ASCII ' TO 'H1EA: .ASCII 'XXXX00'H1LINL= .-H1LINU;R4H2LIN: .ASCII ' Task Pri Addr Size Type'H2LINL= .-H2LINN;T5H3LIN: .ASCII '------ --- -------- ------ ------'H3LINL= .-H3LINS .EVENN;DLLINE: .ASCII /XXXXXX XXX/ PRIEND=.p .ASCII /. XXXXXX/ ADDEND=.; .ASCII /00 XXXX/x SIZEND=.3 .ASCII /00 /TYPSTA: .ASCII / /S DLLENG=.-DLLINE .EVEN .ENDof partition 'RH1NAME: .ASCII ' ' .ASCII ' ' H1BA: .ASCII 'XXXX00' .ASCII ' TO 'H1EA: .ASCII 'XXXX00'H1LINL= .-H1LINU;R4H2LIN: .ASCII ' Task Pri Addr Size Type'H2LINL= .-H2LINN;T5H3LIN: .ASCII '------ --- -------- ------ ------'H3LINL= .-H3LINS .EVENN;zfeD@:2@.gh@Sy @T@r!@%@l @y@1fR@.g @ fehp H P}  re0ᐃ  re0ᐃ . 1fR}r!.g 4:.ghp l(0:2 lL L pp "0:2 R R pp$$ # :2 XX$@  ( a(   (  mWp @ ( b @ p$ Sy l :l @yTyZ%`dT|% *fWp @`f7d7l^ 7,TNH7DB>&R b 8-0}f  e f.gh fPRlfP &e  UUe    ˋ E~$EwE DHr!TxDF00pYqZ]04 : .bW   WpeNS~ 6N>p66 # :2  ^ 6 !  ɐ7 0 (r re0ᐃ7 OKche^ p6JJf ImpurePure Fixed GlobalMap of partition XXXX00 TO XXXX00 Task Pri Addr Size Type------ --- ----f---- ------ ------'XXXXXX XXX. XXXXXX00 XXXX00 E DHr!TxDF1 .TITLE PRTHDR : PRINT MAP LISTING HEADER .enable lc; .MCALL QIOW$CIOEFN=1 ;I/O WAITS ON FLAG #1COLUN=2 ;OUTPUT ON UNIT #2CLLUN=3 ;ERRORS ON UNIT#3&; SET TASK NAME INTO HEADER LINE;2PRTHDR:: MOV #6,R1 ;R1 = CHAR COUNT1 MOV #PNAME,R2 ;R2 -> RAD50 NAME7 MOV #H1NAME,R3 ;R3 -> NAME IN HDR LINE1 JSR PC,..RDTA ;CONVERT TO ASCII;0; SET PARTITION ADDRESSES INTO HEADER LINE;4 MOV #H1BA+4,R1 ;R1 -> OUTPUT AREA+1/ CLR R2 ;R2/R3 = 32-BITW5 MOV PTNBA,R3 ;PARTITION START ADDR 3 MOV #4,R4 ;R4 = LOOP COUNTERK;M42$: DIV #10,R2 ;R3 = AN OCTAL DIGIT5 ADD #60,R3 ;R3 = AN OCTAL DIGITR4 MOVB R3,-(R1) ;SET DIGIT INTO LINE7 MOV R2,R3 ;SET UP FOR NEXT DIVIDEN CLR R2) SOB R4,2$ ;AND LOOP ;E4 MOV #H1EA+4,R1 ;R1 -> OUTPUT AREA+1/ CLR R2 ;R2/R3 = 32-BIT-3 MOV PTNEA,R3 ;PARTITION END ADDRT3 MOV #4,R4 ;R4 = LOOP COUNTERO;E43$: DIV #10,R2 ;R3 = AN OCTAL DIGIT5 ADD #60,R3 ;R3 = AN OCTAL DIGIT 4 MOVB R3,-(R1) ;SET DIGIT INTO LINE7 MOV R2,R3 ;SET UP FOR NEXT DIVIDED CLR R2) SOB R4,3$ ;AND LOOPD .PAGE ; ; PRINT 3 LINES OF HEADERT; 7 QIOW$C IO.WVB,CLLUN,IOEFN,,,,; 7 QIOW$C IO.WVB,CLLUN,IOEFN,,,, ; 7 QIOW$C IO.WVB,CLLUN,IOEFN,,,, ; 3 JMP PRTDTL ;GO LIST DATA FOUND .PAGE ; ; CONSTANTS AND WORK AREAS;3#H1LIN: .ASCII 'Map of partition ' H1NAME: .ASCII ' ' .ASCII ' 'DH1BA: .ASCII 'XXXX00' .ASCII ' TO 'H1EA: .ASCII 'XXXX00'H1LINL= .-H1LIN .PAGEI; -H2LIN: .ASCII ' Task pri addr size 'E .ASCII ' pur/addr pur/sz'H2LINL= .-H2LIN ;W-H3LIN: .ASCII '------ --- -------- ------'  .ASCII ' -------- ------'H3LINL= .-H3LIN, .EVEN .PAGEL/ .SBTTL PRTDTL : PRINT ACCUMULATED DATA ; -PRTDTL: MOV SPSAVE,R0 ;R0 -> OLD SPC6 SUB #100,R0 ;AND ACCOUNT FOR AREA RESERVED FOR LINKS; / ;PRINT "ACTIVE"A7 QIOW$C IO.WVB,CLLUN,IOEFN,,,,5 MOV ATLCNT,R5 ;R5 = ACTIVE ENTRIES % MOV #1,ATFLAG ;INDICATE PRINTING ATL4 JSR PC,LIST ;LIST ACTIVE ENTRIES CLR ATFLAG ;CLEAR FLAG;-. ;PRINT "FIXED"7 QIOW$C IO.WVB,CLLUN,IOEFN,,,,D;T6 MOV STDCNT,R5 ;R5 = IN-CORE ENTRIES5 JSR PC,LIST ;LIST IN-CORE ENTRIES;;  ;PRINT "COMMONS:" 0 QIOW$C IO.WVB,CLLUN,IOEFN,,,,;E' MOV COMCNT,R5 ;NUMBER OF ENTRIES TO R5 " JSR PC,LIST ;LIST COMMON ENTRIES;( JMP DONE ;GO EXIT .PAGEC;S ; CONSTANTS AND WORK AREAS;AATMSG: .ASCII 'Active:' ATMSGL= .-ATMSG ; STMSG: .ASCII 'Fixed:'STMSGL= .-STMSGB;LMRMSG: .ASCII 'MRL:'MRMSGL= .-MRMSG ;OCTMSG: .ASCII 'CTL:'CTMSGL= .-CTMSGI .EVEN ; COMMSG: .ASCII 'Commons:'RCOMMSL=.-COMMSG  .EVEN .PAGE 6 .SBTTL LIST : PRINT DETAIL LINES SUBROUTINE;V; CALLING SEQUENCE00qaW4'%TADATADATA:E; JSR PC,LISTL; $; R0 -> NEXT ENTRY ON STACK- 2%; R5 = NO. OF ENTRIES TO PRINT;; 3LIST: TST R5 ;ANYTHING TO PRINT?t/ BNE SETNAM ;YES - GO DO ITx- RTS PC ;NO - RETURNL;;S&; SET TASK NAME INTO DETAIL LINE;T0SETNAM: SUB #4,R0 ;R0 -> TASK NAME1 MOV #6,R1 ;R1 = CHAR COUNTG0 MOV R0,R2 ;R2 -> TASK NAME3 MOV #DLNAME,R3 ;R3 -> NAME IN LINE 7 JSR PC,..RDTA ;PERFORM THE CONVERSION ; ; CONVERT NULLS TO BLANKS;1 MOV #6,R1 ;R1 = CHAR COUNTI3 MOV #" ,R2 ;R2 = ASCII BLANKSx3 MOV #DLNAME,R3 ;R3 -> NAME IN LINE&1$: TSTB (R3) ;NULL?- BNE 2$ ;NO? - BRANCHT/ MOVB R2,(R3) ;YES - BLANK ITC02$: INC R3 ;R3 -> NEXT BYTE0 SOB R1,1$ ;LOOP UNTIL DONE;M); SET TASK PRIORITY INTO PRINT LINE ;R6SETPRI: MOV #DLPRI+3,R1 ;R1 -> PRI IN LINE + 18 CLR R2 ;R2,R3 = 32-BIT TASK PRI MOV -(R0),R3 BIC #177400,R3- BEQ 111$ ;BR IF 0 PRIORITY, REALLY A COMMONN3 MOV #3,R4 ;R4 = LOOP COUNTER ;N61$: DIV #10.,R2 ;R3 = A DECIMAL DIGIT5 ADD #60,R3 ;R3 = AN ASCII DIGIT 4 MOVB R3,-(R1) ;SET DIGIT INTO LINE7 MOV R2,R3 ;SET UP FOR NEXT DIVIDEP CLR R2) SOB R4,1$ ;AND LOOPI BR SETADR$111$: MOV #40,R3 ;DO SPACES INSTEAD MOVB R3,(R1) ;OVERWRITE "."  MOVB R3,-(R1) MOVB R3,-(R1) MOVB R3,-(R1) .PAGEI; (; SET TASK ADDRESS INTO PRINT LINE; 6SETADR: MOV #DLADDR+6,R1 ;R1 -> ADDR IN LINE +16 CLR R2 ;R2/R3 = 32-BIT 1/64TH- MOV -(R0),R3 ;TASK ADDRESS3/ MOV #6,R4 ;R4 = LOOP CTR ;251$: DIV #10,R2 ;R3 = AN OCTAL DIGIT 5 ADD #60,R3 ;R3 = AN ASCII DIGITA4 MOVB R3,-(R1) ;SET DIGIT INTO LINE7 MOV R2,R3 ;SET UP FOR NEXT DIVIDE  CLR R2) SOB R4,1$ ;AND LOOPN;I%; SET TASK SIZE INTO PRINT LINE ; 7SETSIZ: MOV #DLSIZE+4,R1 ;R1 -> SIZE IN LINE + 136 CLR R2 ;R2,R3 = 32-BIT 1/64TH* MOV -(R0),R3 ;TASK SIZE/ MOV #4,R4 ;R4 = LOOP CTR ;R51$: DIV #10,R2 ;R3 = AN OCTAL DIGITR5 ADD #60,R3 ;R3 = AN ASCII DIGITS4 MOVB R3,-(R1) ;SET DIGIT INTO LINE7 MOV R2,R3 ;SET UP FOR NEXT DIVIDE  CLR R2) SOB R4,1$ ;AND LOOPI;L4; LIST DETAIL LINE IF NO PURE AREA INFORMATION;L! TST ATFLAG ;ARE WE PRINTING ATL - BEQ NOPURE ;NO DONT LOOK FOR PURE AREA DATA( MOV -(R0),R3 ;NEXT DATA TO R3. CMP R3,#-1 ;IS IT A PURE CODE AREA ADDRESS ? BNE PTPURE ;YES PRINT IT ALSOR; 7NOPURE: QIOW$C IO.WVB,CLLUN,IOEFN,,,,A;S1 DEC R5 ;DCMT ENTRY COUNTG) JMP LIST ;AND LOOP ;S&;THERE IS PURE CODE AREA INFO TO PRINT2PTPURE: MOV #PUADDR+6,R1 ;R1 -> LOC IN OUTPUT LINE CLR R2 ;SET UP FOR DIVIDEO" MOV #6,R4 ;NUMBER TO CONV. TO R41$: DIV #10,R2 ;DIVIDE BY 10Q# ADD #60,R3 ;CONVERT REM. TO ASCIID% MOVB R3,-(R1) ;PUT IT IN OUTPUT LINEC MOV R2,R3 ;AND SET UP FOR  CLR R2 ;ANOTHER DIVIDE SOB R4,1$ ;LOOP IF NOT DONEU;NOW OUTPUT SIZE OF PURE AREA,, MOV #PUSIZE+4,R1 ;R1 -> AREA IN OUTPUT LINE CLR R2 ;FOR DIVIDE MOV -(R0),R3 ;GET SIZE TO R3  MOV #4,R4 ;COUNT TO R45$: DIV #10,R2 ;DIVIDE MOD. 8& ADD #60,R3 ;CONV. REMAINDER TO ASCII# MOVB R3,-(R1) ;STORE IN ASCII LINEF MOV R2,R3 ;SET UP FOR ANOTHERO CLR R2 ;DIVIDE SOB R4,5$ ;AND LOOP15 TST -(R0) ;NOW ADJUST FOR SAVED PURE AREA TYPE FLAG);NOW PRINT THE LINEN/ QIO00qirksn]04W$C IO.WVB,CLLUN,IOEFN,,,,E DEC R5 ;DEC ACTIVE TASK COUNTT JMP LIST ;AND TRY AGAIN ;E;E$ATFLAG: .WORD 0 ;FLAG FOR ATL PRINT .PAGER; ; CONSTANTS AND WORK AREAS; ,DLINE: ;DETAIL LINE*DLNAME: .ASCII 'XXXXXX' ;TASK NAME .ASCII ' ' .DLPRI: .ASCII 'XXX' ;TASK PRIORITY .ASCII '. '/DLADDR: .ASCII 'XXXXXX00' ;TASK ADDRESS  .ASCII ' ' *DLSIZE: .ASCII 'XXXX00' ;TASK SIZE .ASCII ' 'BDLINEL= .-DLINED,PUADDR: .ASCII 'XXXXXX00' ;PURE CODE ADDRESS .ASCII ' 'S'PUSIZE: .ASCII 'XXXX00' ;PURE CODE SIZE PULENG=.-DLINE .EVEN .PAGE % .SBTTL DONE : PROGRAM EXIT:; ; DONE: RTS PC .END*DLNAME: .ASCII 'XXXXXX' ;TASK NAME .ASCII ' ' .DLPRI: .ASCII 'XXX' ;TASK PRIORITY .ASCII '. '/DLADDR: .ASCII 'XXXXXX00' ;TASK ADDRESS  .ASCII ' ' *DLSIZE: .ASCII 'XXXX00' ;TASK SIZE .zf2D:2@.gh@Sy @r!@%@l @y@1fR@.g @ bf2hp  Ps ~ re0ᐃ  re0ᐃ . 1fRsr!~.g 4:.ghp b(0:2 bL L pp +0:2 R R pp$$ + :2 XX$w~Map of partition XXXX00 TO XXXX00 Task pri addr size pur/addr pur/sz------ --- -------- ------ ---  p$----- ------@Sy p66  0:2  6: B7 2 p6 l pHH '0:2 'H 0 pH ypZZ 60:2 6+Z "w@Active:Fixed:MRL:CTL: pZ %66Commons: 4  4ˋ E~> E r e0ᐃ  ɐF re04"r!.4<>lF4 M re0ᐃ  Z  Mpll 4 :2 4Hl wPV re0ᐃ ] re0ᐃ   plV,]p~~ 4+ :2 4&=&~ w XXXXXX XXX. XXXXXX00 XXXX00 XXXXXX00 XXXX00 p~``mmons: 48 .TITLE GETPTN : FIND NEEDED DATA FOR PARTITION;; .MCALL QIOW$CIOEFN=1 ;I/O WAITS ON FLAG #1COLUN=2 ;OUTPUT ON UNIT #2CLLUN=3 ;ERRORS ON UNIT #3;,GETPTN:: MOV .TPDBA,R0 ;R0 -> TPD1 MOV .TPDEA,R1 ;R1 -> END OF TPD;,1$: CMP R0,R1 ;END OF TPD?6 BHIS TPDERR ;YES - NAME IS INVALID8 CMP T.PN(R0),PNAME ;COMPARE PARTITION NAMES3 BNE 2$ ;BRANCH ON NO-MATCH" CMP T.PN+2(R0),PNAME+23 BNE 2$ ;BRANCH IF NO-MATCHC6 JMP SAVTPD ;ELSE GO SAVE TPD INFO;T)2$: ;NO MATCH5 ADD #T.SZ,R0 ;R0 -> NEXT TPD ENTRY . BR 1$ ;AND TRY AGAIN;$1; ERROR TRAP FOR PARTITION NAMES NOT IN TPD 7; SET NAME INTO ERROR MESSAGE, PRINT IT, AND EXITM; 1TPDERR: MOV #6,R1 ;R1 = CHAR COUNT 5 MOV #PNAME,R2 ;R2 -> RAD50 PTN NAMEM2 MOV #PENAME,R3 ;R3 -> NAME IN MSG1 JSR PC,..RDTA ;CONVERT TO ASCII ; 7 QIOW$C IO.WVB,COLUN,IOEFN,,,, . CLR PNAME ;ZERO PARTITION NAME AS ERROR IND. RTS PC .PAGE ;R ; CONSTANTS AND WORK AREAS;7PEMSG: .ASCII 'MAP: ' ;INVALID NAME ERROR MSG PENAME: .ASCII /XXXXXX/* .ASCII ' PARTITION NOT IN SYSTEM'PEMSGL= .-PEMSG .EVEN .PAGE - .SBTTL SAVTPD : SAVE TPD INFORMATION; 00sqW4'%TADATADATA1SAVTPD: MOV R0,TPDPTR ;SAVE TPD ADDRESS 7 MOV T.BA(R0),R1 ;R1 = 1/64TH BASE ADDR 3 MOV R1,PTNBA ;SAVE PTN BASE ADDRC6 ADD T.PZ(R0),R1 ;R1 = 1/64TH END ADDR2 MOV R1,PTNEA ;SAVE PTN END ADDR/ MOV SP,SPSAVE ;SAVE STACK PTRL1 SUB #100,SP ;BUMP STACK BACK 100 TO CLEAR LINKS 0 JMP GETATL ;GO GET ATL INFO .PAGEE* .SBTTL GETATL : FIND ACTIVE TASKS;S7GETATL: CLR ATLCNT ;ZERO ACTIVE-TASK COUNT ;V< MOV #.ATLLH,R0 ;R0 -> ATL LISTHEAD POINTER;E3NXTATL: MOV (R0),R0 ;GET NEXT (OR FIRST) ATL ENTRYE CMP (R0),.ATLLH ;END OF ATL?)6 BNE 1$ ;NO - SKIP NEXT INSTR6 JMP GETSTD ;YES - GO GET STD DATA; ;V31$: CMP A.PD(R0),TPDPTR ;IN THIS PARTITION?L- BNE NXTATL ;NO - IGNORE 4 TST A.TD(R0) ;MAKE SURE NOT .T1ATL,.T2ATL OR .TNATL BEQ NXTATL ;GO FOR NEXT IF YES; BIT #AF.CP,A.TF(R0) ;IS THIS REAL-TIME TASK CHECKPOINTED ?O BNE NXTATL,2 CMP A.TS(R0),#TS.MRL ;OR TIME-SHARING TASK ON MRL BEQ NXTATLE CMP A.TS(R0),#TS.MREN BEQ NXTATL07 INC ATLCNT ;YES - INCMT ACTIVE CNTN;-0 MOV A.TD(R0),R1 ;R1 -> STD ENTRY/ MOV S.TN+2(R1),-(SP);PUSH TASK NAME., MOV S.TN(R1),-(SP) ;(BACKWARDS)4 MOVB A.RP(R0),R2 ;R2 = TASK PRIORITY3 MOV R2,-(SP) ;PUSH TASK PRIORITYO' MOVB #1,1(SP) ;TYPE FLAG TO UPPER BYTES2 MOV A.HA(R0),-(SP) ;PUSH TASK ADDRESS6 BIT #AF.CP,A.TF(R0) ;A CHECK-POINTED REAL-TIME TASK ? BEQ 2$ ;BR IF NOT0' CLR (SP) ;IF SO, SAY HE'S SWAPPED OUT +2$: MOV A.TZ(R0),-(SP) ;PUSH TASK SIZE; ,;CHECK FOR POSSIBLE LINK TO A PURE CODE AREA MOV R1,R2 ;START OF STD TO R2P- MOV S.PA(R2),R3 ;GET POSSIBLE PURE AREA LINK # TST R3 ;IS THERE A NODE ADDRESS ?)# BEQ PUSHM1 ;NO, NO PURE AREA USED 0 BIT #GF.PA,G.FW(R3) ;MAKE SURE IT'S A PURE AREA* BEQ PUSHM1 ;IF NOT, FLAG AS NO PURE AREA;THIS IS A PURE AREA) TSTB G.GS(R3) ;IS PURE AREA BEING USED ?) BEQ PUSHM1 ;NO FORGET IT' MOV G.BA(R3),-(SP) ;BASE ADDR -> STACK;! MOV G.CZ(R3),-(SP) ;SIZE ->STACKO! MOV #2,-(SP) ;TYPE FLAG TO STACKZ% JMP CSTACK ;FINISHED WITH THIS TASKU;C; /PUSHM1: ;NO PURE AREAS FOUND, PUSH -1 AS A FLAG( MOV #-1,-(SP) ;-1 TO STACKA5CSTACK: CMP SP,#30. ;POSSIBLE STACK OVFL?M3 BGT NXTATL ;NO - GET NEXT ATLE6 JMP STKERR ;YES - TAKE ERROR EXIT .PAGEI) .SBTTL GETSTD : FIND FIXED TASKSR;B6GETSTD: CLR STDCNT ;ZERO FIXED-TASK COUNTC MOV #.FTLLH,R0 ;R0 -> ADDR OF FIXED TASK LISTHEAD#4NXTSTD: MOV (R0),R0 ;GET FIRST (OR NEXT) FIXED TASK; + CMP R0,#.FTLLH ;END OF FTL ?U- BNE 1$ ;NO - BRANCHT< JMP GETCOM ;YES - GET COMMON AREAS DATA; ;1$: CMP A.HA(R0),PTNBA ;CMP TASK START ADDR C BOT OF PART. " BLO NXTSTD ;TASK TOO LOW, IGNORE/ CMP A.HA(R0),PTNEA ;COMP WITH END OF PARTITIONF( BHIS NXTSTD ;TASK TOO HIGH IGNORE ALSO; ); TASK IS IN PARTITION BEING MAPPED ; 5 INC STDCNT ;INCMT FIXED-TASK CTRX' MOV A.TD(R0),R3 ;GET STD ADDRESS IN R3I/ MOV S.TN+2(R3),-(SP);PUSH TASK NAMEO, MOV S.TN(R3),-(SP) ;(BACKWARDS)7 MOVB S.DP(R3),R4 ;R4 = DEFAULT PRIORITYM6 MOV R4,-(SP) ;PUSH DEFAULT PRIORITY' MOVB #3,1(SP) ;TYPE FLAG TO UPPER BYTEA2 MOV A.HA(R0),-(SP) ;PUSH BASE ADDRESS/ MOV S.TZ(R3),-(SP) ;PUSH TASK SIZEN; 5 CMP SP,30. ;POSSIBLE STACK OVFL? 3 BGT NXTSTD ;NO - GET NEXT STDT1 JMP STKERR ;YES - ERROR EXIT .PAGE *.SBTTL GETCOM ;LIST CURRENT COMMONS IN USE; *GETCOM: CLR COMCNT ;ZERO COUNT TO BE SURE MOV .GCDLH,R0 ;GET START OF GCD$NXTCOM: CMP R0,#.GCDLH ;END OF GCD ? BNE 1$ ;NO CHECK A GCD ENTRY BR GOMAIN ;YES RETURN TO ROOTR81$: CMP G.BA(R0)00syt|u]04,PTNBA ;CHECK AGAINST START OF PARTITION BLO 2$ ;NOT IN THIS PARTITON' CMP G.BA(R0),PTNEA ;COMP WITH PART ENDP BHIS 2$ ;PAST THIS PARTITION TSTB G.AC(R0) ;IS COMMON ACTIVE BEQ 2$ ;NO DON'T REPORT 0 CMP G.BN(R0),#3100 ;CHECK FOR VALID RAD 50 NAME7 BLO 2$ ;NO ITS A PURE CODE AREA FOR A MULTI USER TASKE+ INC COMCNT ;COUNT AN ACTIVE COMMON REGIONV$ MOV G.BN+2(R0),-(SP) ;SAVE COM NAME& MOV G.BN(R0),-(SP) ;(TWO WORDS RAD50)! CLR -(SP) ;PRIORITY MEANINGLESSY' MOVB #4,1(SP) ;TYPE FLAG TO UPPER BYTEA& MOV G.BA(R0),-(SP) ;SAVE BASE ADDRESS% MOV G.CZ(R0),-(SP) ;SAVE COMMON SIZE032$: MOV (R0),R0 ;GET NEXT COMMON DIRECTORY POINTERR BR NXTCOM ;AND LOOP; .PAGEE, .SBTTL STKERR : STACK OVERFLOW TRAP; /STKERR: MOV SPSAVE,SP ;CLEAN UP STACKP4 ;PRINT ERROR MESSAGE7 QIOW$C IO.WVB,COLUN,IOEFN,,,,  BR RET ;AND RETURN;(; HERE FOR NORMAL EXIT;R8GOMAIN: MOV SPSAVE,SP ;RESTORE STACK POINTER FOR LINKAGE!RET: RTS PC ;AND EXIT ;V ; CONSTANTS AND WORK AREAS+STDSIZ: .WORD 0 ;SIZE OF CURRENT STD ENTRYE;CSEMSG: .ASCII 'MAP: '& .ASCII 'FATAL STACK OVERFLOW'SEMSGL= .-SEMSGT .EVENE .ENDRAP; /STKERR: MOV SPSAVE,SP ;CLEAN UP STACKP4 ;PRINT ERROR MESSAGE7 QIOW$C IO.WVB,COLUN,IOEFN,,,,  BR RET ;AND RETURN;(; HERE FOR NORMAL EXIT;R8GOMAIN: MOV SPSAVE,SP ;RESTORE STACK POINTER FOR LINKAGE!RET: R*,.gLL@@l @ @@* @ d@ @ %@ v@* @%@,(d@!0@"0@@*"0W@#0@&0@'0v@:2@*1fR@.g @.gh@Sy @y@*${d@0{@@4{W@4{@2g@*T@T@b@@pW@p@*s@7,7, &L L @.g  @ .gh$JĜ&&(y  4{W4{W${d @*j!wN7  %7,7,*4{%""0@$.g ",@ &&("0@.gh !0"0W%"0W& &&""0W"0@#0Sy p  :2 *MAP: FATAL STACK OVERF pSy LOW w>7,7, &L L @.g  @ .gh$JĜ&&(y  4{W4{W${d @*j!wN7  %7,7,*4{%""0@$.g ",@ &&("0@.gh !0"0W%"0W& &&""0W"0+;SECTION TO LIST THE PUD ENTRY FOR A DEVICE;AN MCR FUNCTION CALLED BY;INF PUD TT0: FOR EXAMPLE;;OR BY;(;INF PUD TT0:/F TO GET A FULL LISTING&; (INCLUDING VOLUMN CONTROL BLOCK);; .TITLE PUD .GLOBL .PUDBA,.PUDEA" .MCALL QIO$C,EXIT$C,WTSE$C,RQST$C .enable lc;;/PUD:: MOV #MCRBUF,R0 ;GET START OF COMMAND LINE MOV R0,R1 ;PUT IN R1# ADD MCRSIZ,R1 ;END OF LINE POINTER5 MOVB -(R1),FULLST ;SAVE POSSIBLE FULL LISTING SWITCH1$: CMPB (R0)+,#40 ;A SPACE ?# B00uW4'%TADATADATAEQ 2$ ;YES, LOOK FOR DEVICE NAMEF CMP R0,R1 ;AT TERMINATOR BLT 1$  JMP BADDEV ;SAY BAD DEVICE2$: CMPB (R0)+,#40 ;A SPACE ?T BEQ 3$ ;YES, HAVE DEVICE NAME  CMP R0,R1 ;AT TERMINATOR BLT 2$ JMP BADDEV ;SAY BAD DEVICE3$: MOVB (R0)+,DEVNAM  MOVB (R0)+,DEVNAM+1) MOVB (R0)+,DEVNUM ;SAVE ASCII DEV NUMBERU! MOVB (R0)+,DEVNUM+1 ;AS NN OR N:M* MOVB DEVNUM,R1 ;GET 1ST CHAR OF DEVNUMBER( CMPB #72,R1 ;IS 1ST CHAR OF R1 A ':' ? BNE DEVNOZ ;NO NOT 0 DEVICE$ CLR DEVNUM ;SET DEVNUM TO 0B( BR DVNMOK ;AND FORGET FURTHER DECODING+DEVNOZ: MOV DEVNUM,R3 ;SET IN R3 FOR DIVIDE; CLR R2 ;CLEAR UPPER REG0- DIV #256.,R2 ;DIV BY 256 1ST DIG IN R3 (REM)N ;2ND DIGIT IN R2 CMP #72,R2 ;IS 2ND CHAR A ':'  BNE NMGT10 ;NO, DEV# GT 10 MOV R3,DEVNUM ;SAVE ASCII DIGIT/ SUB #60,DEVNUM ;AND CONVERT TO AN OCTAL NUMBER  BR DVNMOK ;DECODING DONE.NMGT10: SUB #60,R3 ;CONVERT REGS TO A BIN NUM SUB #60,R2 ;DO SAME FOR R2& MUL #10,R3 ;MULTIPLY 1ST DIGIT BY 10 ADD R2,R3 ;R3 NOW =DEV#T MOV R3,DEVNUM ;AND SAVE IT 'DVNMOK: MOV .PUDBA,R0 ;GET START OF PUDS MOV .PUDEA,R1 ;AND END ALSO(NEXPUD: CMP (R0)+,DEVNAM ;CHECK DEV NAME$ BNE NMATCH ;IT DOESN'T COMPUTE !!!) CMPB (R0),DEVNUM ;IF NAME OK, HOW BOUT # BEQ DOIT ;GOTCHA!!!G1NMATCH: ADD #U.SZ-2,R0 ;BUMP TO NEXT PUD SECTIONV CMP R0,R1 ;PAST END OF PUD& BGE BADDEV ;YES MUST BE BAD DEV NAME BR NEXPUD0BADDEV: QIO$C IO.WVB,2,1,,IOST,,& ;TELL DUMMY AT KEYBD HE CAN'T TYPE# WTSE$C 1 ;WAIT FOR QIO TO BE DONET( BR SCRAM ;AND MAKE LIKE A TREE (LEAVE)+DOIT: ;FINALLY WE CAN START OUTPUTTING INFO1/ MOV DEVNAM,NAME ;STORE DEV NAME IN HEADER LINEE- MOV #2,R2 ;SET UP TO CONVERT 2 DIGIT NUMBERC' MOV DEVNUM,R4 ;NUMBER TO CONVERT IN R4 MOV #NUMBER+2,R3 ;POINTER IN R3" JSR PC,LOAOCT ;WRITE AN OCTAL NUM' SUB #2,R0 ;BACK R0 UP TO START OF PUDB2 QIO$C IO.WVB,2,1,,IOST,, ;WRITE HEADER LINE WTSE$C 1 ;WAIT FOR IO DONE) MOV #TAG,R1 ;R1 POINTS TO START OF TAGSA%WTWORD: MOV R0,R4 ;PUD ADDRESS TO R4  MOV #6,R2 ;# OF CHARACTERS0 MOV #ONEPT-2,R3 ;POINT TO END OF ADDRESS STRING( JSR PC,LOAOCT ;CONVERT ADDRESS TO OCTAL MOV (R0)+,R4 ;PUD WORD TO R42" MOV #6,R2 ;# OF CHARACTERS TO R2. MOV #ONEND,R3 ;POINTER TO END OF STRING IN R33 JSR PC,LOAOCT ;LOAD OCTAL NUMBER INTO ASCII BUFFER0/ JSR PC,LOATAG ;LOAD NAME TAGE INTO BUFFER ALSO,+ QIO$C IO.WVB,2,1,,IOST,,H ;WRITE A LINE  WTSE$C 1 ;AND WAIT FOR ITA" TST (R1) ;ARE WE THRU TAGS YET ?. BNE WTWORD ;NO WRITE ANOTHER WORD OF THE PUD5 CMPB FULLST,#106 ;WAS THERE A /F SWITCH ON COMMAND ? # BNE SCRAM ;NO, WE'RE DONE FOR NOWR1 CLR FULLST ;YES CLEAR FLAG SO NEXT TIME WE EXIT TST (R1)+ ;BUMP R1 TO NEXT TAG BR WTWORD ;AND GO ROUND AGAINOSCRAM: RTS PC ;BACK TO MAIN;O;O;L;M5;SUBROUTINE TO CONVERT A WORD TO N OCTAL(ASCII)DIGITSI$;AND WRITE THEM INTO AN ASCII BUFFER;REGISTER USAGEE+;ENTER WITH R2=# OF DIGITS TO CONVERT/PRINTA%; R4=NUMBER TO BE CONVERTEDS?; R3 POINTING TO NEXT BYTE AFTER!! AREA TO BE WRITTENL;OTHER REG'S USED, R4,R5;H; ,LOAOCT: MOV R4,R5 ;GET # IN LOWER ORDER REG CLR R4 ;CLEAR UPPER ORDER REGS DIV #10,R4 ;DIVIDE BY 10( ADD #60,R5 ;CONVERT REMAINDER TO ASCII MOVB R5,-(R3) ;WRITE DIGITS) SOB R2,LOAOCT ;IF NOT N DIGITS, DO AGAINT RTS PC ;IF DONE RETURN;T;A4;SUBROUTINE TO LOAD A 6 BYTE NAMETAG INTO A QIO LINE;S0;ENTERED WITH R1 POINTING TO START OF 6 BYTE TAG);EXIT WITH R1 POINTING TO NEXT 6 BYTE TAGE;REG'S R2,R3 ALSO USED; ;N(LOATAG: MOV #5,R2 ;SET TO MOVE 10 BYTES( MOV #ONEPT,R3 ;START OF ONELINE MESSAGE%NEXT: MOV (R1)+,(R3)+ ;MOVE TWO BYTESR% SOB R2,NEXT ;NOT DONE ? XFER 2 MORE  RTS PC ;ELSE RETURN0; ;O;R(;FINALLY LOTS OF ASCII DATA FOR MESSAGES;I;SHEADER: .BYTE 12,15N .ASCII /PUD entry for / .EVENNAME: .ASCII /XX/NUMBER: .ASCII /00:/ .EVEN;N;T!;LINE FOR REPORTING EACH PUD WORDT;1ONELIN: .ASCII /000000 /E"ONEPT: .ASCII /XXXXXXXXXX 000000/ONEND: ONELEN=ONEND-ONELIN;S;;MES00uvwx04SAGE FOR BAD DEVICE NAME;OBAD: .BYTE 12,15! .ASCII /INF PUD bad device name/A .EVEN;O;R";NOW THE TAGS (NAMES OF PUD WORDS);T .ENABLE LC TAG: .ASCII /Dev Name /- .ASCII /Flags Word/ ;FLAGS WORD (UPPER BYTE)D .ASCII /Dev Char 1/ .ASCII /Dev Char 2/2 .ASCII /Dev Char 3/ ;THE 4 DEVICE PARAMETER WORDS .ASCII /Dev Char 4/! .ASCII /Att. Flag / ;ATTACH FLAGO& .ASCII /Red Point./ ;REDIRECT POINTER& .ASCII /ATL Point./ ;ATL NODE POINTER( .ASCII /Exp Req. / ;# OF EXPRESS REQ'S5 .ASCII /UIT Entry / ;POINTS TO UNIT ENTRY IN HANDLER57 .ASCII / / ;DEQUE BACKWARD POINTER (OBSOLETE)W& .ASCII /Int Vector/ ;INTERRUPT VECTOR( .ASCII /Int Prior./ ;INTERRUPT PRIORITY% .ASCII /1st Reg Ad/ ;IST REG ADDRESSD .WORD 0 ;END OF BASIC LIST0 .ASCII /VCB Exten./ ;VOLUMN CTL BLOCK EXTENSION .ASCII /UIC / ;UIC CODESa) .ASCII /Vol Prot. / ;VOLUMN PROTECT WORD.' .ASCII /Access / ;ACCES RIGHTS WORDS6 .ASCII /Defaul ACP/ ;DEFAULT ACP (RAD 50 1ST 3 CHARS)0 .ASCII /STD Addres/ ;STD ADDRESS OF CURRENT ACP) .ASCII /TT Flags / ;TERMINAL FLAGS WORD , .ASCII /Block high/ ;HIGH ORDER # OF BLOCKS+ .ASCII /Block low / ;LOW ORDER # OF BLOCKSI& .ASCII /Res word#4/ ;RESERVED WORD #4 .WORD 0 ;END OF 'FULL' LIST;DONE WITH TAGS ;I7IOST: .WORD 0,0 ;FOR ERROR RETNS, ALSO END OF TAGS PTRDEVNAM: .ASCII /XX/;DEVNUM: .WORD 0I+MCRTER: .WORD 0 ;MCR TERMINATION CHARACTER 4FULLST: .WORD 0 ;POSSIBLE ASCII F (FOR FULL LISTING .ENDLT ACP (RAD 50 1ST 3 CHARS)0 .ASCII /STD Addres/ ;STD ADbLgD:2@@Q@QBx@Q@@ Lghp B mwt  wz  wl7N7K7H7E@:7 60 r%: 0 00p`Q QBx~Q|7$7 e p x` :2 x `  pp) &5D V pDp x0 :2 x 0  pp(() .(zL 4` & 4 p( zL$`p,, xF :2 x F , p,p>>) U> ׭F7 x  se0c~NS~ PUD entry for XX00: p>8NF7F000000 XXXXXXXXXX 000000 INF PUD bad device namezzDev Name Flags WordDev Char 1Dev Char 2Dev Char 3Dev Char 4Att. Flag Red Point.ATL Point.Exp Req. UIT Entry Int VectorInt Prior.1st Reg AdVCB Exten.UIC Vol Prot. Access Defaul ACPSTD AddresTT Flags Block highBlock low Res worrd#4XX, p,p>>) U> ׭F7 x  se0c~NS~ PUD entry for XX00: p>8NF7F000000 XXXXXXXXXX 000000 INF PUD bad device namezzDev Name Flags WordDev Char 1Dev CharG .ROOT INF-LB0:[1,1]EXEC.STB-!(ACT,NOD,CKQ,PUD,MAP,FRM,ATL,STD,IOR,TER)ACT: .FCTR INFACTNOD: .FCTR INFNODCKQ: .FCTR INFCKQPUD: .FCTR INFPUD)MAP: .FCTR INFMAM-!(INFPTN,INFPRT,INFPLT)FRM: .FCTR INFFRMATL: .FCTR INFATLSTD: .FCTR INFSTDIOR: .FCTR INFIORTER: .FCTR INFTER .END&INFRES/PR/-FP/MU,INF/-SP=INFRES.ODL/MP TASK=...INF(;STACK MUST BE AT LEAST 2000 OCTAL BYTES STACK=512ASG=TI:2ASG=TI:3PAR=GENPRI=221//00yW4'%TADATADATA .TITLE STD .SBTTL DESC PAGE2;SUB TO GIVE FULL LIST OF THE STD FOR A GIVEN TASK;;COMMAND LINE EXAMPLE;);MCR>INF SDT XXXXXX (XXXXXX IS TASK NAME); .enable lc .MCALL QIOW$,DIR$.PAGE.SBTTL MAIN CODE,STDL:: MOV #MCRBUF,R0 ;POINT TO COMMAND LINE, MOV R0,R1 ;SET TO MAKE END OF LINE POINTER ADD MCRSIZ,R1 ;NOW HAVE IT11$: CMPB (R0)+,#40 ;FOUND FIRST SPACE AFTER "INF" BEQ 2$ ;YES CMP R0,R1 ;PAST END OF COMMAND BLE 1$ ;YES JMP ERROR ;NO, AN ERROR.2$: CMPB (R0)+,#40 ;DO AGAIN TO GET PAST "STD" BEQ 3$B$ CMP R0,R1 ;STILL IN COMMAND LINE ? BLE 2$ JMP ERROR3$: ;POINTING AT TASK NAMET! MOV #1,R1 ;. IS LEGAL CHARACTER JSR PC,$CAT5 ;CONVERT TO RAD 50, MOV R1,TASNAM ;SAVE FIRST HALF OF TASK NAME" MOV #1,R1 ;DO AGAIN FOR 2ND HALF' JSR PC,$CAT5 ;CONVERT 2ND HALF OF NAMEM" MOV R1,TASNAM+2 ;FILL IN 2ND HALF$FINDTA: ;NOW CAN SEARCH STD FOR TASK+ MOV .STDTA,R0 ;POINT R0 TO STD ALPHA TABLEM(LOOP: MOV (R0)+,R1 ;GET NEXT STD ADDRESS$ CMP S.TN(R1),TASNAM ;DO NAMES MATCH BLO LOOP ;NOT THERE YET* BHI ERROR1 ;IF GREATER, PAST NAME IN STD( CMP S.TN+2(R1),TASNAM+2 ;CHECK 2ND HALF BLO LOOP ;NOT THERE YETA! BHI ERROR1 ;IF PAST, NOT IN STDT ;MATCHED, LIST STD4 TST -(R0) ;BUMP R0 BACK TO RIGHT ALPHA TABLE ENTRY- MOV (R0)+,R0 ;GO FROM STD ALPHA TABLE TO STD  MOV R0,-(SP) ;SAVE STD ADDRESSI$ MOV #HEAD1,R0 ;POINT TO HEADER LINE+ MOV TASNAM,R1 ;GET FIRST HALF OF TASK NAMEL JSR PC,$C5TAP MOV TASNAM+2,R1 JSR PC,$C5TAE" MOV (SP)+,R0 ;RESTORE STD ADDRESS DIR$ #HDRDPB ;DO HEADER LINE" MOV #NAMES,R4 ;POINT AT TAG LINES$ MOV #S.SIZ,R5 ;SIZE OF AN STD ENTRY ASR R5 ;CONVERT TO WORD COUNTR MOV R0,R3 ;MAKE R3 STD POINTER" MOV #1,R2 ;SET R2 AS $CBOMG FLAG/LOOP1: MOV #LINE,R0 ;POINT TO ASCII OUTPUT LINEY MOV R3,R1 ;NODE ADDRESS TO R1A$ JSR PC,$CBOMG ;CONVERT NODE ADDRESS# TST (R0)+ ;BUMP POINTER PAST " "H* MOV (R4)+,(R0)+ ;FILL IN NAME OF STD WORD CLR BYTFLA ;CLEAR BYTE FLAGM+ CMP (R4),#"DP ;DEF PRI & SY DISK INDICATOR  BNE 111$ ;NO INC BYTFLA ;YES SET BYTE FLAGI3111$: CMP (R4),#"AV ;# OF VERSIONS AND POOL LIMIT ?5 BNE 222$ ;NO INC BYTFLA ;YESO222$: MOV (R4)+,(R0)+M MOV (R4)+,(R0)+% MOV (R3)+,R1 ;CONTENTS OF NODE TO R1B TST BYTFLA ;BYTE PRINTOUT ?P BEQ 99$ ;NOU& BIC #177400,R1 ;YES, CLEAR UPPER BYTE99$:) JSR PC,$CBOMG ;CONVERT CONTENTS TO ASCII(% TST BYTFLA ;ARE THESE BYTE VALUES ?4 BEQ 444$ ;NO% MOVB #' ,-6(R0) ;MAKE 3 DIGIT OUTPUT  MOVB #' ,-5(R0) MOVB #' ,-4(R0) ( ADD #2,R0 ;BUMP OVER TO 2ND VALUE AREA) MOV (R4)+,(R0)+ ;FILL IN 2ND R.XX STRING# MOV (R4)+,(R0)+ MOV (R4)+,(R0)+* MOV -2(R3),R1 ;GET CONTENTS OF NODE AGAIN SWAB R1 ;GET UPPER BYTE+ BIC #177400,R1 ;CLEAR LOWER JSR PC,$CBOMG ;CONVERT IT AGAIN MOVB #' ,-6(R0) MOVB #' ,-5(R0)' MOVB #' ,-4(R0) ;MAKE 3 DIGIT PRINTOUT7 MOV #LINEXL,QIODPB+Q.IOPL+2 ;CHANGE LENGTH OF PRINTOUT;444$: DIR$ #QIODPB ;WRITE LINE47 MOV #LINELN,QIODPB+Q.IOPL+2 ;CHANGE BACK TO SHORT LINE, DEC R5 ;DO S.SIZ LINES BLE 777$0 JMP LOOP1777$: RTS PC ;ALL DONE, LEAVE.PAGEI.SBTTL ERROR EXITSERROR: ;SYNTAX ERROR$ DIR$ #BADDPB ;DO SYNTAX ERROR MESS RTS PCOERROR1: ;TASK NOT IN STD MOV #BAD1,BADDPB+Q.IOPL MOV #BADLN1,BADDPB+Q.IOPL+2 DIR$ #BADDPBT RTS PCM.PAGE,.SBTTL DATA AREAS5#TASNAM: .BLKW 2 ;ROOM FOR TASK NAMEP;T,HDRDPB: QIOW$ IO.WVB,5,1,,,,$HEAD: .ASCII <12><15>/STD for task /HEAD1: .ASCII / / HEADLN=.-HEAD .EVEN,QIODPB: QIOW$ IO.WVB,5,1,,,,#LINE: .ASCII /000000 S.XX 000000/  LINELN=.-LINE .ASCII / /LINEX: .ASCII /S.XX 000000/ LINEXL=.-LINE .EVENLNAMES: .ASCII /S.TN S.TD S.FW S.DP S.DI S.LZ S.TZ S.AV S.PV /: .ASCII /S.PU S.RF S.RB S.DL S.PA /*BADDPB: QIOW$ IO.WVB,5,1,,,,&BAD: .ASCII /***INF STD bad syntax***/ BADLN=.-BAD .EVEN,BAD1: .ASCII /***INF STD task not in STD***/ BADLN1=.-BAD1 .EVEN%BYTFLA: .WORD 0 ;FLAG FOR BYTE VALUE  .ENDO.WVB,5,1,,,,#LINE: .ASCII /000000 S.XX 00z{x04ryD:2@ !@Q@9x@QBx@3{P<@[(}@4{W@:_@ TyKh m  w   w w  ww,nw,i &c  BBQ QBx09x<9xD !J4{WT4{Wdcl[(}t[(}zB| | 7 #DP #AV  E ! eE "3{P<|:_J:_z:_J "lj` wj 4 j0 84D B+B T STD for task :2Tjj | 000000 S.XX 000000 S.XX 000000S.TN S.TD S.FW S.DP S.DI S.LZ S.TZ S.AV S.PV S.PU S.RF :2|oS.RB S.DL S.PA   ***INF STD bad syntax******INF STD task not in STD*** *:24RRE "3{P<|:_J:_z:_J  .TITLE INFTER;2;SECTION TO LIST ALL CHARACTERISTICS OF A TERMINAL; .MCALL DIR$,QIOW$,GMCR$,ALUN$ .enable lc .MCALL TTSYM$* TTSYM$ ;MAKE SURE WE HAVE CURRENT VALUES; ; F. BORGER; DEPT OF MEDICAL PHYSICS; MICHAEL REESE MEDICAL CENTER ; CHICAGO IL; .PAGE .SBTTL MAIN CODE;/TER:: MOV #MCRBUF,R0 ;GET START OF COMMAND LINE MOV R0,R1 ;PUT IN R1# ADD MCRSIZ,R1 ;END OF LINE POINTER1$: CMPB (R0)+,#40 ;A SPACE ?# BEQ 2$ ;YES, LOOK FOR DEVICE NAME CMP R0,R1 ;AT TERMINATOR BLT 1$ JMP BADDEV ;SAY BAD DEVICE2$: CMPB (R0)+,#40 ;A SPACE ?. BEQ 3$ ;YES, HAVE DEVICE NAMEn CMP R0,R1 ;AT TERMINATOR BLT 2$A JMP BADDEV ;SAY BAD DEVICE43$: MOVB (R0)+,ASSIGN+A.LUNA ;PUT NAME IN ASSIGN DPB MOVB (R0)+,ASSIGN+A.LUNA+1H) MOVB (R0)+,DEVNUM ;SAVE ASCII DEV NUMBER! MOVB (R0)+,DEVNUM+1 ;AS NN OR N:F* MOVB DEVNUM,R1 ;GET 1ST CHAR OF DEVNUMBER( CMPB #72,R1 ;IS 1ST CHAR OF R1 A ':' ? BNE DEVNOZ ;NO NOT 0 DEVICE  CLR DEVNUM ;SET DEVNUM TO 0C( BR DVNMOK ;AND FORGET FURTHER DECODING+DEVNOZ: MOV DEVNUM,R3 ;SET IN R3 FOR DIVIDE  CLR R2 ;CLEAR UPPER REGV- DIV #256.,R2 ;DIV BY 256 1ST DIG IN R3 (REM)T ;2ND DIGIT IN R2 CMP #72,R2 ;IS 2ND CHAR A ':'G BNE NMGT10 ;NO, DEV# GT 10 MOV R3,DEVNUM ;SAVE ASCII DIGIT/ SUB #60,DEVNUM ;AND CONVERT TO AN OCTAL NUMBER  BR DVNMOK ;DECODING DONE.NMGT10: SUB #60,R3 ;CONVERT REGS TO A BIN NUM SUB #60,R2 ;DO SAME FOR R2& MUL #10,R3 ;MULTIPLY 1ST DIGIT BY 10 ADD R2,R3 ;R3 NOW =DEV#T MOV R3,DEVNUM ;AND SAVE IT @DVNMOK: MOV DEVNUM,ASSIGN+A.LUNU ;PUT OCTAL NUMBER IN ASSIGN DPB" DIR$ #ASSIGN ;RE-ASSIGN THIS LUN TST @#0 ;CHECK DIR STATUS ( BMI BADDEV ;BAD DEVICE IF ASSIGN FAILS+ DIR$ #GETTYP ;GET THAT TERMINAL TYPE INFOG" MOV #TYP1,R0 ;R0 -> OUTPUT BUFFER) MOVB BUFF+1,R1 ;GET TERMINAL TYPE NUMBERL% BEQ NODEV ;BR IF HARDWARE NOT THEREM' MUL #6,R1 ;MAKE IT 6 CHARACTER OFFSETN+ ADD #TERTYP,R1 ;ADD IN BASE OF NAME BUFFER  MOV #6,R3 ;LOOP COUNT01$: MOVB (R1)+,(R0)+ SOB R3,1$ MOVB BUFF+3,R1 ;GET WIDTH BIC #177400,R1A DEC R1 ;ADJUST TO DEC MODULO$ MOV #TYP2,R0 ;POINT TO ASCII BUFFER CLR R2 ;CLEAR LEADING 0'SD& JSR PC,$CBDMG ;CONVERT WIDTH TO ASCII MOVB BUFF+5,R1 ;GET LENGTH; BIC #177400,R1 MOV #TYP3,R0V CLR R2 " JSR PC,$CBDMG ;CONVERT LINES/PAGE DIR$ #PRTTYP ;PRINT LINE# MOV #SPD1,R0 ;POINT TO OUTPUT LINER MOVB BUFF+7,R1 ;GET REC SPEED" MUL #4,R1 ;MAKE IT 4 CHAR OFFSET( ADD #SPDTAB,R1 ;ADD BASE OF ASCII TABLE MOV #4,R3(2$: MOVB (R1)+,(R0)+ ;TRANSFER REC SPEED SOB R3,2$ INC R0 ;BUMP OVER ","C MOVB BUFF+11,R1 ;GET XMIT SPEED MUL #4,R1" ADD #SPDTAB,R1 ;ADD BASE OF TABLE MOV #4,R3(3$: MOVB (R1)+,(R0)+ ;FILL IN XMIT SPEED SOB R3,3$$ MOV #SPD3,R0 ;POINT TO ASCII BUFFER% MOVB BUFF+13,R1 ;GET READ-AHEAD TYPE; CLR R2 ;NO 0 FILLD' JSR PC,$CBOMG ;CONVERT READ-AHEAD TYPEP DIR$ #PRTSPD ;PRINT SPEEDU9 MOV #LOGBUF+1,R0 ;POINT R0 TO START OF LOGICAL VARIABLES3 MOV #LOGNAM,R1 ;POINT R1 TO START OF LOGICAL NAMES/ MOV #LOGCNT,R3 ;NUMBER OF LOGICAL CHA00{W4'%TADATADATAR'S TO R3,-LOOP: TSTB (R0) ;IS THIS CHARACTERISTIC ON ?;" BEQ NOPR ;IF NOT, DON'T PRINT IT7 MOV R1,PRTLOG+Q.IOPL ;UPDATE BUFFER POINTER IN QIO DPB0 DIR$ #PRTLOG ;PRINT LINE-NOPR: ADD #2,R0 ;BUMP TO NEXT CHARACTERISTICM/ ADD #20.,R1 ;BUMP TO NEXT NAME IN NAME BUFFERO' SOB R3,LOOP ;DO FOR N CHARACTERISTICSE RTS PC;R;P,BADDEV: DIR$ #BADMSG ;DO BAD DEVICE MESSAGE RTS PCA;O,NODEV: DIR$ #DEVNOT ;DO NO HARDWARE MESSAGE RTS PCT.PAGEI.SBTTL BUFFER AND DIR AREASN;E;REASSIGN LUN 4 DPBO;,ASSIGN: ALUN$ 4,"TT,0T; ;R;QIO FOR GET CHARACTERISTICS;N,GETTYP: QIOW$ SF.GMC,4,1,,IOSB,,; ;F';THE BUFFER FOR THE GET CHARACTERISTICSR; BUFF:O2 ;FIRST THE VARIABLE TYPES WHERE WE MUST INTERPERT .BYTE TC.TTP,0 ;TERMINAL TYPE .BYTE TC.WID,0 ;WIDTH .BYTE TC.LPP,0 ;LENGTH OF PAGES .BYTE TC.RSP,0 ;RECEIVE SPEED .BYTE TC.XSP,0 ;TRANSMIT SPEEDP .BYTE TC.RAT,0 ;READ AHEAD TYPE ;THEN THE LOGICAL PARAMETERS,LOGBUF: .BYTE TC.ACR,0 ;AUTO CARRIAGE RETURN .BYTE TC.BSP,0 ;BACKSPACE WORKS( .BYTE TC.CCF,0 ;FLUSH READ-AHEAD ON ^-C .BYTE TC.DLU,0 ;DIALUP LINE .BYTE TC.PAR,0 ;PARITY  .BYTE TC.EPA,0 ;EVEN PARITY& .BYTE TC.ESQ,0 ;TERM REQUIRES ESC SEQ .BYTE TC.FDX,0 ;FULL DUPLEX .BYTE TC.HFF,0 ;HARD FORM FEEDI .BYTE TC.HFL,0 ;HORIZ FILLD .BYTE TC.VFL,0 ;VERTICAL FILL .BYTE TC.LVF,0 ;LA36 VERT FILLE# .BYTE TC.HHT,0 ;HORIZ TAB HARDWARE% .BYTE TC.SCP,0 ;SCOPE (FANCY RUBOUT)T+ .BYTE TC.SFF,0 ;FULL SIMULATION OF FF & VTA" .BYTE TC.SMO,0 ;LOWER CASE OUTPUT! .BYTE TC.SMR,0 ;LOWER CASE INPUT.) .BYTE TC.SMP,0 ;LOWER CASE INPUT ENABLEDL+ .BYTE TC.TAP,0 ;PAPER TAPE READER ATTACHED.! .BYTE TC.BIN,0 ;DEVICE IS BINARYT$ .BYTE TC.P8B,0 ;PASS 8 BITS (NOT 7) .BYTE TC.UC0,0U .BYTE TC.UC1,0F .BYTE TC.UC2,0E .BYTE TC.UC3,0, .BYTE TC.UC4,0." ;009FB ADDED CHARACTERISTICS .BYTE TC.ANS,0 ;ANSI SEQUENCESE' .BYTE TC.CSQ,0 ;DO CTS/CTQ IMMEDIATELY. .BYTE TC.ANI,0 ;ANSI TERMINAL .BYTE TC.AVO,0 ;ADVANCED VIDEO  .BYTE TC.DEC,0 ;DEC CRT .BYTE TC.EDT,0 ;EDT Y .BYTE TC.RGS,0 ;REGIS TERMINAL. .BYTE TC.ABD,0 ;AUTOBAUDN BUFFL=.-BUFF.;E;QIO FOR PRINTING TERMINAL TYPEC;.2PRTTYP: QIOW$ IO.WVB,5,1,,IOSB,,;P;THE MESSAGE ITSELF.;E"TYPMES: .ASCII /Terminal is a(n) /TYP1: .ASCII / , /,TYP2: .ASCII / columns by /B!TYP3: .ASCII / lines per page/N TYPLEN=.-TYPMES .EVEN;T;THE ASCII TERMINAL TYPE TAGS.;.,TERTYP: .ASCII /unknow/ ;UNKNOWN HAS TYPE 0 .ASCII /ASR33 / ;T.AS33=1E .ASCII /KSR33 / ;T.KS33=2  .ASCII /ASR35 / ;T.AS35=3. .ASCII /LA30S / ;T.L30S=4. .ASCII /LA30P / ;T.L30P=5. .ASCII /LA36 / ;T.LA36=6. .ASCII /VT05 / ;T.VT05=7. .ASCII /VT50 / ;T.VT50=8. .ASCII /VT52 / ;T.VT52=9. .ASCII /VT55 / ;T.VT55=10.) .ASCII /VT61 / ;T.VT61=11.Y .ASCII /LA180 / ;T.L180=12. .ASCII /VT100 / ;T.V100=13.e .ASCII /LS120 / ;T.L120=14.T .ASCII /SCRIPT/ ;T.SCR0=15.. .ASCII /LA12 / ;T.LA12w .ASCII /LA100 / ;T.L100S .ASCII /LA34 / ;T.LA34. .ASCII /LA38 / ;T.LA38 .ASCII /VT101 / ;T.V101. .ASCII /VT102 / ;T.V102= .ASCII /VT105 / ;T.V1050 .ASCII /VT125 / ;T.V125L .ASCII /VT131 / ;T.V131T .ASCII /VT132 / ;T.V132  .ASCII /LA50 / ;T.LA50/ .ASCII /LQP01 / ;T.LQP1  .ASCII /LQP02 / ;T.LQP2V .ASCII /BMP1 / ;T.BMP1I .ASCII /V2XX / ;T.V2XX.4 .ASCII /SOROC / ;T.SORO=16. (NEW TTY HANDLER ONLY)4 .ASCII /BEEHIV/ ;T.BEEH=17. (NEW TTY HANDLER ONLY)+ .ASCII /USR0 / ;T.USR0=18. IN OLD CONFIGS .ASCII /USR1 / .ASCII /USR2 / .ASCII /USR3 / .ASCII /USR4 /;0;/;QIO FOR PRINTING TERMINAL SPEED AND READ-AHEADV;02PRTSPD: QIOW$ IO.WVB,5,1,,IOSB,,;T;THE MESSAGE ITSELFT;3SPDMES: .ASCII /running at /SPD1: .ASCII / ,/#SPD2: .ASCII / baud with type /.SPD3: .ASCII / read-ahead/S SPDLEN=.-SPDMES.EVEN.;I;TABLE OF SPEEDS IN ASCIIW;Y&SPDTAB: .ASCII / / ;NON CHANGEABLE" .ASCII / 0/ ;0 (LINE DISABLED) .ASCII / 50/ .ASCII / 75/ .ASCII / 100/ .ASCII / 110/ .ASCII / 134/00{|x04 .ASCII / 150/ .ASCII / 200/ .ASCII / 300/ .ASCII / 600/ .ASCII /1200/ .ASCII /1800/ .ASCII /2000/ .ASCII /2400/ .ASCII /3600/ .ASCII /4800/ .ASCII /7200/ .ASCII /9600/ .ASCII /EXTA/ .ASCII /EXTB/;;2$;QIO FOR PRINTING LOGICAL PARAMETERS;A/PRTLOG: QIOW$ IO.WVB,5,1,,IOSB,,I;T;E;TAGS FOR LOGICAL PARAMETERS; ;C%LOGNAM: .ASCII /automatic carret /  .ASCII /backspace works / .ASCII /^c flushes readahead/ .ASCII /dialup line / .ASCII /parity enabled / .ASCII /even parity enabled / .ASCII /escape sequence term/ .ASCII /full duplex terminal/ .ASCII /hardware form feed / .ASCII /horizontal fill / .ASCII /vertical fill / .ASCII /LA36 vertical fill / .ASCII /hardware horiz. tab / .ASCII /scope rubout works / .ASCII /simulate ff and vt / .ASCII /lower case printer / .ASCII /lower case keyboard / .ASCII /lower case input on / .ASCII /paper tape reader / .ASCII /binary device / .ASCII /pass-8 bits device / .ASCII /user characteris'c 0/ .ASCII /user characteris'c 1/ .ASCII /user characteris'c 2/ .ASCII /user characteris'c 3/ .ASCII /user characteris'c 4/" ;009FB ADDED CHARACTERISTICS .ASCII /ansisequence / .ASCII /controls / .ASCII /ansicrt / .ASCII /advancedvideo / .ASCII /deccrt / .ASCII /edit / .ASCII /regis / .ASCII /autobaud / S LOGCNT=<.-LOGNAM>/20.-BADMSG: QIOW$ IO.WVB,5,1,,IOSB,,e;h ;THE MESSAGE;.BAD: .ASCII /Bad device name/. BADL=.-BADh .EVEN; "; QIO FOR SAYING DEVICE NO PRESENT;S2DEVNOT: QIOW$ IO.WVB,5,1,,IOSB,,;R=NOTHER: .ASCII /*** Interface not present on this system ***/  NOTLEN=.-NOTHER .EVEN; ; IOSB: .WORD 0,0v(DEVNUM: .WORD 0 ;TEMP STORAGE FOR NUMBER;  .END.ASCII /edit / .ASCII /regis / .ASCII /autobaud / S LOGCNT=<.-LOGNAM>/20.-BADMSG: Rv:}D:2@Q@:@QBx@:_@ }h m  w"  w7$7!7d7a\:7 RL r%:<06 00p`"Q QBx|J ZRVWpeP~E  E Wpe$P~ {Wpe$6JR$:@:LR:V\h$~$P~e o"ȋw\xee~2T"TpbP,:_"o&6xH2PTfjbt! 4  %58*+,-.;<WXYZ[? : Terminal is a(n) , columns by D:2JNlines per pageunknowASR33 KSR33 ASR35 LA30S LA30P LA36 VT05 VT50 VT52 VT55 VT61 LA180 VT100 LS120 SCRIPTLA12 LA100 LAl34 LA38 VT101 VT102 VT105 VT125 VT131 VT132 LA50 LQP01 LQP02 BMP1 V2XX SOROC BEEHIVUSR0 USR1 USR2 USR3 USR4  |:20 running at , baud with type read-ahead 0 50 75 100 110 134 150 200 300 60012001800200024003600  d480072009600EXTAEXTB  automatic carret backspace works ^c flushes readaheaddialup line parity:2 $ enabled even parity enabled escape sequence termfull duplex terminalhardware form feed horizontal fill vertical f\ill LA36 vertical fill hardware horiz. tab scope rubout works simulate ff and vt lower case printer lower case keyboard lower case input on paper tape reader binary device pass-8 bits device user characteris'c 0user characteris'cT 1user characteris'c 2user characteris'c 3user characteris'c 4ansisequence controls ansicrt advancedvideo deccrt edit regis autobaud  D Bad devih:2nrD Lce namedTHT f, *** Interface not 00|}~TADATADATApresent on this system ***:2 fwer case input on paper tape reader binary device pass-8 bits device user characteris'c 0user characteris'cT 1user characteris'c 2user characteris'c 3user characteris'c 4ansisequence controls ansicrt advancedvideo deccrt edit regis autobaud  D Bad devih:2nrD Lce namedTHT f, *** Interface not #INF/PR/-FP/MU/DA,INF/-SP=INF.ODL/MP TASK=...INF STACK=256ASG=TI:2ASG=TI:3PAR=GENPRI=221//INF/RW/PR/-FP/MU,INF/-SP=INFINFACTINFNODINFCKQINFPUDINFMAM,INFPTN,INFPRT,INFPLTINFFRMINFATLINFSTDINFIORINFTERLB:[1,1]EXEC.STB/ TASK=...INFF;Stack size in decimal words controls number of tasks commons etc thatH;can be stored by INF MAP you need 8 words per item, plus allowing aboutB;24. words for linkage and safety, 1024. lets you store 125 items.G;the variable NUMTAS should be changed in INFPLT to reflect the storage;available on the stack STACK=1024ASG=TI:2ASG=TI:3PAR=GEN/PRI=221F//=INFINFACTINFNODINFCKQINFPUDINFMAM,INFPTN,INFPRT,INFPLTINFFRMINFATLINFSTDINFIORINFTERLB:[1,1]EXEC.STB/ TASK=...INFF;Stack size in decimal words controls number of tasks commons etc thatH;can be stored by INF MAP you need 8 words per item, plus allowing aboutB;24. words for linkage and safety, 1024. lets you store 125 items.G;the variable NUMTAS should be changed in INFPLT to reflect the storage;available on the stack STACK=1024ASG=TI:2ASG=TI INF/PR/-FP/MU,INF/-SP=INF.ODL/MP TASK=...INF(;STACK MUST BE AT LEAST 2000 OCTAL BYTES STACK=512ASG=TI:2ASG=TI:3PAR=GENPRI=221// SUBROUTINE ABREAK@C THIS SUBROUTINE OUTPUTS A BREAK TO THE REMOTE TERMINALC J=IOUTT1(-1) RETURN END SUBROUTINE ASCII8(ITRANS)< LOGICAL*1 MSG(12),ERR(14),EVEN(6),ODD(6),NOPRTY(12),MARK(6)C.: DATA MSG/'8','-','B','i','t',' ','m','o','d','e',"15,"12/@ DATA ERR/'N','O','T',' ','A','L','L','O','W','E','D',"15,"12,0/# DATA EVEN/'E','V','E','N',"15,"12/1 DATA ODD/'O','D','D',"15,"12,0/; DATA NOPRTY/'N','O',' ','P','a','r','i','t','y',"15,"12,0/.# DATA MARK/'M','A','R','K',"15,"12/8C1<C CHECK IF ANY INPUT FILES ARE OPEN - IF SO, THEN COMPLAIN IF((ITRANS.AND.2).EQ.0) GOTO 5.BC AN INPUT FILE IS OPEN - MUST NOT CHANGE MODE--WOULD ABORT PROG DO 2 I=1,13 J=ERR(I)O 2 CALL ENQUE(J) RETURN C/$ 5 IF((ITRANS.AND."40).NE.0) GOTO 10 ITRANS=ITRANS+"40 DO 6 I=1,12 J=MSG(I), 6 CALL ENQUE(J) RETURN,C 10 ITRANS=(ITRANS.AND."177737)2 TYPE *,'7-BIT MODE'"C NOW CHECK WHAT PARITY HE WANTS WRITE(5,15)8 15 FORMAT($,' (E)ven, (O)dd, (M)ark, or (N)o PARITY: ') 20 I=ITTINR(IDUMMY) IF(I.LT.0) GOTO 20E ITRANS=(ITRANS.AND."171777) IF(I.NE."105) GOTO 22C EVEN PARITYI ITRANS=0004ITRANS+"2000 DO 21 I=1,6 J=EVEN(I) 21 CALL ENQUE(J)= RETURNE 22 IF(I.NE."117) GOTO 26RC ODD PARITY ITRANS=ITRANS+"4000 DO 23 I=1,5 J=ODD(I)S 23 CALL ENQUE(J) RETURN, C NO PARITY( 26 IF(I.NE."116) GOTO 40S DO 30 I=1,117 J=NOPRTY(I) 30 CALL ENQUE(J)  RETURN C MARK PARITYN 40 ITRANS=ITRANS+"6000M DO 45 I=1,6 J=MARK(I) 45 CALL ENQUE(J)  RETURN= END(IDUMMY) IF(I.LT.0) GOTO 20E ITRANS=(ITRANS.AND."171777) IF(I.NE."105) GOTO 22C EVEN PARITYI ITRANS='BRE/-FP/PR,BRE/-SP=BRE,LB:[1,1]EXEC.STB/STACK=32 TASK=...BREPRI=150//(;PROGRAM TO SEND A BREAK TO ANY TERMINAL;0?;NOTE THAT REGISTER ADDRESSES AND BITS ARE HARD CODED, AND THIS 9;PROGRAM MUST BE EDITED IF HARDWARE CONFIGURATION CHANGES0;,;,;CALLING PROCEEDURE:;4.;MCR>BRE 23 TO CAUSE BREAK AT TERM 23 (OCTAL);ORK;MCR>BRE TO CAUSE BREAK AT TI:O;1$ .MCALL GMCR$,EXST$,DIR$,MRKT$,WTSE$BREAK:$ DIR$ #GETMCR ;GET MCR COMMAND LINE# CMP @#0,#3. ;TERMINAL SPECIFIED ?1 BGT 1$ ;BRANCH IF YES7$ MOV @#.CRTSK,R5 ;ELSE DEFAULT TO TI# MOV A.TI(R5),R5 ;AS BREAK TERMINALM BR DOIT;1$: MOV #GETMCR+G.MCRB+4,R4 ;POINT TO START OF ASCII NUMBER  MOVB (R4)+,R5 ;GET NUMBER' BIC #60,R5 ;CONVERT FROM ASCII->OCTALO% CMPB (R4),#60 ;ANOTHER DIGIT THERE ?P BLT 2$ ;BR IF NOTB MOVB (R4),R4 ;GET SECOND DIGIT' BIC #60,R4 ;CONVERT FROM ASCII->OCTAL # MUL #10,R5 ;MULTIPLY HIGHER DIGITK" ADD R4,R5 ;NOW HAVE TERM # IN R5#2$: MOV #"TT,R4 ;DEVICE NAME IN R4R CLR R0 ;NOT TASK SPECIFIC;# JSR PC,..FDEV ;FIND PUD FOR DEVICEE0DOIT: CMP U.DN(R5),#"TT ;BETTER HAVE A TT DEVICE BEQ 1$ ;BR IF OK DIR$ #EXITNG ;ELSE DO BAD EXIT"1$: MOVB U.UN(R5),R0 ;GET DEVICE # CMP R0,#5 ;IS IT A DZ ?; BLT 2$ ;BR IF NOTC CMP R0,#34R BGT 2$N ;HANDLE DZ DIFFERENTLY ASL R0 ;MAKE IT A WORD OFFSETE' ;WE CANT USE BIS/BIC ON DZ REGISTERM0 MOVB BRBIT(R0),@BRADD(R0) ;SET THE BREAK BIT ON$ DIR$ #MARK ;MARK TIME FOR 1 SECOND DIR$ #WAIT ;WAIT FOR ITN% CLRB @BRADD(R0) ;AND CLEAR BREAK BIT; DIR$ #EXITOK ;DO GOOD EXIT ;FOR DL AND DC INTERFACEST"2$: ASL R0 ;MAKE IT A WORD OFFSET+ BIS BRBIT(R0),@BRADD(R0) ;SET THE BREAK ON$ DIR$ #MARK ;MARK TIME FOR 1 SECOND DIR$ #WAIT ;WAIT FOR ITB' BIC BRBIT(R0),@BRADD(R0) ;AND CLEAR ITN DIR$ #EXITOK ;DO GOOD EXIT.PAGE ;A;DIRECTIVE PARAMETER BLOCKS ;T;EXITS;CEXITOK: EXST$ EX$SUCEXITNG: EXST$ EX$SEV;E;GET MCR;I GETMCR: GMCR$R;;;MARK TIME AND WAIT FOR IT;W,MARK: MRKT$ 6,20,1 ;MARK TIME FOR 20 TICKSWAIT: WTSE$ 6 ;WAIT FOR IT;G; 0; TABLE OF BREAK BITS FOR 3 DL'S, 2 DC'S, 3 DZ'S;K7BRBIT: .WORD 1,1,1 ;3 DL'S, (XMIT STATUS REGISTER BIT)E. .WORD 2,2 ;2 DC'S, (REC STATUS REGISTER BIT), ;DZ BITS, XMIT DATA REGISTER UPPER BYTE .WORD 1,2,4,10,20,40,100,200I .WORD 1,2,4,10,20,40,100,200 .WORD 1,2,4,10,20,40,100,200T .WORD 1 ;FINAL DL ;T;BREAK ADDRESS REGISTERX;VBRADD: .WORD 177564 ;CONSOLER .WORD 175614,175624 ;2 DL'S .WORD 174000,174010 ;2 DC'S ;3 DZ'SC> .WORD 160017,160017,160017,160017,160017,160017,160017,160017> .WORD 160027,160027,160027,160027,160027,160027,160027,160027> .WORD 160037,160037,160037,160037,160037,160037,160037,160037 .WORD 176510 ;FINAL DL .END BREAKER UPPER BYTE .WORD 1,2,4,10,20,40,100,200I .WORD 1,2,4,10,20,40,100,200 .WORD 1,2,4,10,20,40,100,200T .WORD 1 ;FINAL DL ;T;BREAK ADDRESS REGISTERX;VBRADD: .WORD 177564 ;CONSOLER .WORD 175614,175624 ;2 DL'S .WORD 174000,174010 ;2 DC'S ;3 DZ'SC> .WORD 160017,160017,160017,160017,160017,160017,160017,160017> .WORD 160027,160027,160027,00ƐȐ̐TADATADATA* :L @8@W@W@"@f@(( *'EE00 @8*&E0WqaTT W-TTfW&*L@   8N8WN$*rN 8\N8LN&NN"$N()*) @* @ @*@ @t*f''''''''H*'EE00 @8*&E0WqaTT W-TTfW&*L@   8N8WN$*rN 8\N8LN&NN"$N()*) @* @ @*@ @|U (USYSYSYSYTICL@p@@@```'EE00E0WqaTT >W-TT@   8B4>8 8\B4>8LB)) @ @ @ @t''''''''H SUBROUTINE BREAKC>C THIS SUBROUTINE ALLOWS THE USER TO SET THE BREAK CHARACTER COMMON/CTRL/CTRL(32),IBREAK LOGICAL*1 CTRL,UNDEF(10)K3 DATA UNDEF /'U','n','d','e','f','i','n','e','d',0/B WRITE(5,10)! 10 FORMAT($,' BREAK CHARACTER=')  20 I=ITTING(IDUMMY) IF(I.LT.0) GOTO 20>C DO NOT ALLOW CTRL/C OR CARRIAGE-RETURN - MAKE IT UNDEFINED IF(I.EQ."15.OR.I.EQ."3) GOTO 25 IF(I.LT."40) GOTO 22I CALL ENQUE(I) GOTO 24"C CONTROL CHARACTER - ECHO ^CHAR 22 CALL ENQUE('^') CALL ENQUE(I+"100)BCT 24 IBREAK=I GOTO 30C TELL HIM ITS UNDEFINED 25 DO 26 I=1,9A J=UNDEF(I)/ 26 CALL ENQUE(J)K IBREAK=-1CR 30 CALL ENQUE("15)N CALL ENQUE("12) RETURN' ENDe','d',0/B WRITE(5,10)! 10 FORMAT($,' BREAK CHARACTER=')  20 I=ITTING(IDUMMY) IF(I.LT.0) GOTO 20>C DO NOT ALLOW CTRL/C OR CARRIAGE-RETURN - MAKE IT UNDEFINED IF(I.EQ."15.OR.I.EQ."3) GOTO 25 IF(I.LT."40) GOTO 22I CALL ENQUE(I) GOTO 24"C CONTROL CHARACTER - ECHO ^CHAR 22 CALL ENQUE('^') CALL ENQUE(I+00ΐАѐӐ04 SUBROUTINE CLSFIL(IFILE,ITRANS) LOGICAL*1 ILINE? COMMON/OUTFIL/ ILINE(512),IPOS,IOTSUM,IONYBL,NOREC,IFLAGO,LENOI: COMMON/INPFIL/IPTR,IEND,INPSUM,INYBBL,IDELAY,IPRMPT,ISENT, C ,LINE(256),ICHECK,LENI,IFLAGI,NIREC DATA IPTR/0/,IEND/0/C AC COMES HERE IF HE TYPED A CTRL/C AFTER INPUTTING OR OUTPUTTINGC C A FILEC- IF(IFILE.EQ.2) GOTO 10. IF(IPOS.EQ.0) GOTO 7  DO 5 I=IPOS+1,512 5 ILINE(I)=0N: IF((ITRANS.AND."140).EQ.0) WRITE(7,6) (ILINE(I),I=1,IPOS) 6 FORMAT(4(128A1)) 0 IF((ITRANS.AND."140).NE.0) WRITE(7'NOREC) ILINE IPOS=0E 7 ITRANS=(ITRANS.AND."177776) CLOSE(UNIT=7) RETURNACL 10 IPTR=0 IEND=0I ITRANS=(ITRANS.AND."177775) CLOSE(UNIT=4) RETURNI END),ICHECK,LENI,IFLAGI,NIREC DATA IPTR/0/,IEND/0/C AC COMES HERE IF HE TYPED A CTRL/C AFTER INPUTTING OR OUTPUTTINGC C A FILEC- IF(IFILE.EQ.2) GOTO 10. IF(IPOS.EQ.0) GOTO 7  DO 5 I=IPOS+1,512 5 ILINE(I)=0N: IF((ITRANS.AND."140).EQ.0) WRITE(7,6) (ILINE(I),I=1,IPOS) 6 FORMAT(4(128A1)) 0 IF((I SUBROUTINE COPYMD(ITRANS) LOGICAL*1 IMSG(16)=? DATA IMSG/'E','x','i','t',' ','C','O','P','Y',' ','m','o','d', C 'e',"15,"12/" IF((ITRANS.AND."20).NE.0) GOTO 10 ITRANS=ITRANS+"20 J=6 GOTO 20 10 ITRANS=(ITRANS.AND."177757)0 J=1 20 DO 30 I=J,16 K=IMSG(I) 30 CALL ENQUE(K)T RETURNT ENDGC C A FILEC- IF(IFILE.EQ.2) GOTO 10. IF(IPOS.EQ.0) GOTO 7  DO 5 I=IPOS+1,512 5 ILINE(I)=0N: IF((ITRANS.AND."140).EQ.0) WRITE(7,6) (ILINE(I),I=1,IPOS) 6 FORMAT(4(128A1)) 0 IF((I SUBROUTINE CTLCHR@C THIS SUBROUTINE ALLOWS THE USER TO TRANSMIT A RESERVED RT-11-C KEYBOARD CHARACTER (EG. ^C, ^O, ^S, ETC.)1>C BY RE-DEFINING ANOTHER CONTROL CHARACTER TO TAKE ITS PLACE COMMON/CTRL/ CTRL(32),IBREAKA LOGICAL*1 CTRLC1 WRITE(5,1)=$ 1 FORMAT($,' Control character: ^')!C GET CHARACTER TO BE REDEFINEDI 2 INCHAR=ITTING(IDUMMY) IF(INCHAR.LT.0) GOTO 2 #C PRINT ITS UPPER-CASE EQUIVALENTI" 3 I=ITTOUR((INCHAR.AND."37)+"100) IF(I.LT.0) GOTO 3C IF OR CTRL/C THEN EXITO+ IF(INCHAR.NE."15.AND.INCHAR.NE."3) GOTO 10UC  4 CALL ENQUE("15) CALL ENQUE("12) RETURNACR 10 WRITE(5,50) "15,"12. 50 FORMAT($,1X,2A1,'Substitute character: ^')$C GET SUBSTITUTE CONTROL CHARACTER 20 J=ITTING(IDUMMY) IF(J.LT.0) GOTO 20=#C PRINT ITS UPPER-CASE EQUIVALENT) CALL ENQUE((J.AND."37)+"100)I I=(INCHAR.AND."37)+1I CTRL(I)=J.AND."37 GOTO 4  END PRINT ITS UPPER-CASE EQUIVALENTI" 3 I=ITTOUR((INCHAR.AND."37)+"100) IF(I.LT.0) GOTO 3C IF OR CTRL/C TH SUBROUTINE CTLSUB(ITRANS); COMMON/INPFIL/IPTR,IEND,INPSUM,INYBBL,IDELAY,IPRMPT,ISENT,U+ C LINE(512),ICHECK,LENI,IFLAGI,NIREC? COMMON/OUTFIL/ ILINE(512),IPOS,IOTSUM,IONYBL,NOREC,IFLAGO,LENOU LOGICAL*1 ILINE,LINE2 DIMENSION IDUPMS(8)- DATA IDUPMS/'D','u','p','l','e','x',"15,"12/UCL#C ASK WHICH OPTION THE USER WANTSC( WRITE(5,6) "15,"12C: 6 FORMAT($,1X,2A1,'Option: (ABCDEF H(Help) IOPRSTUX8^)?')CN*C NOW READ A CHARACTER FROM THE KEYBOARDCT 20 ICHAR=ITTING(IDUMMY) IF(ICHAR.LT.0) GOTO 20TCB'C CHECK FOR 'A' - ASCII/BINARY FORMAT,& IF(ICHAR.EQ."101) CALL FORMAT(ITRANS) IF(ICHAR.EQ."102) CALL BREAKE& IF(ICHAR.EQ."103) CALL COPYMD(ITRANS)C WAS IT AN 'F'?, IF(ICHAR.EQ."106) CALL OPNPUT(ITRANS,ICHAR)C 'E' - ECHO?D$ IF(ICHAR.EQ."105) CALL ECHO(ITRANS)C 'D' - DELAY?% IF(ICHAR.EQ."104) CALL DELAY(IDELAY)6C 'H'? IF(ICHAR.EQ."110) CALL HELP*C SEE IF HE WANTED TO TERMINATE FILE I/O/ IF(ICHAR.EQ."117) CALL OUTFIL(IDUMMY,ITRANS,3)=/ IF(ICHAR.EQ."111) CALL INPFIL(IDUMMY,ITRANS,3) C CHANGE PROMPTING MODES (P)?A& IF(ICHAR.EQ."120) CALL PROMPT(ITRANS)C AN 'X' OR CTRL/C?C5 IF(ICHAR.EQ."130.OR.ICHAR.EQ."3) CALL STOPIT(ITRANS) C 'R'?% IF(ICHAR.EQ."122) CALL REDEF(ITRANS)R C AN 'S'? & IF(ICHAR.EQ."123) CALL STATUS(ITRANS) C A 'T'?& IF(ICHAR.EQ."124) CALL OPNGET(ITRANS) C AN '8'?L% IF(ICHAR.EQ."70) CALL ASCII8(ITRANS) C AN UP-ARROW (^)? IF(ICHAR.EQ."136) CALL CTLCHRCAC CHECK FOR DUPLEX/UNDUPLEXT IF(ICHAR.NE."125) GOTO 25" I00֐אِܐݐTADATADATAF((ITRANS.AND."10).EQ.0) GOTO 30 CALL ENQUE('U') CALL ENQUE('n') ITRANS=(ITRANS.AND."177767) GOTO 35% 30 ITRANS=(ITRANS.AND."177767) + "10I 35 DO 45 I=1,8S 45 CALL ENQUE(IDUPMS(I))I RETURNQC2"C ECHO CARRIAGE-RETURN/LINE-FEED25 I=ITTINR(IDUMMY)C CALL ENQUE("15) CALL ENQUE("12) RETURN" ENDALL OPNGET(ITRANS) C AN '8'?L% IF(ICHAR.EQ."70) CALL ASCII8(ITRANS) C AN UP-ARROW (^)? IF(ICHAR.EQ."136) CALL CTLCHRCAC CHECK FOR DUPLEX/UNDUPLEXT IF(ICHAR.NE."125) GOTO 25" I SUBROUTINE DELAY(IDELAY)D LOGICAL*1 INUM(30)LCD TYPE *,' 'O: TYPE *,'Default delay after each character is 0 seconds.' WRITE(5,10)F 10 FORMAT('$Enter the desired delay time in clock ticks (1/60 sec):')CLC ASK FOR TWO LETTERS ONLYCM CALL READST(INUM,LEN,2)CEC CHECK FOR LEGAL INPUT.CT8 IF(LEN.EQ.0.OR.INUM(1).LT."60.OR.INUM(1).GT."71) RETURNCN%C NOW CONVERT FROM ASCII TO INTEGERLCB IDELAY=INUM(1)-"60.8 IF(LEN.EQ.1.OR.INUM(2).LT."60.OR.INUM(2).GT."71) RETURN IDELAY=IDELAY*10+(INUM(2)-"60)D RETURNL END*1 INUM(30)LCD TYPE *,' 'O: TYPE *,'Default delay after each character is 0 seconds.' WRITE(5,10)F 10 FORMAT('$Enter the desired delay time in clock ticks (1/60 sec):')CLC ASK FOR TWO LETTERS ONLYCM CALL READST(INUM,LEN,2)CEC CHECK FOR LEGAL INPUT.CT8 IF(LEN.EQ.0.OR.INUM(1).LT."60.OR.INUM(1).GT."71) RETURNCN%C NOW CONVERT FROM ASCII TO INTEGERLCB IDELAY=INUM(1)-"60.8 IF(LEN.EQ.1.OR.INUM(2).LT."60.OR.INUM(2).GT."71) RETURN IDELAY=ID1 DUPlex@ DUPlex permits one to connect to the PDP11/45 computer from anyF terminal on the PDP11/44. Files may be also transmitted and received. y calling MCR>DUPe n 6 Control-B: Exit from DUPLEX. Terminal talks to MCR.G Control-T: Transmit a file. Program will prompt for a filespec. i.e.yO DUPLEX>=SY0:[100,200]FileName.Typ;4. The "=" is mandatory.aG Control-P: Toggle between line-by-line and whole-file transmission. B Control-N: Transmit one line in line-by-line transmission mode.* Control-A: Abort transmission of a file.F Control-F: Open/close file RECEIVED.DAT file. (Closed by Control-B)A Control-]: Sets up line delay value by reading 1 character andD; and subtracting 48. from it (ASCII 0). G Control-\: Toggles line delay off/on. In line mode, if line delay isYO on, the file is transmitted 1 line at a time with automaticiC proceeding after "delay" ticks between lines. G Control-Y: Toggles character delay. This will insert a 1 tick delay 7 between sending characters if set. le. (Closed by Control-B)A Control-]: Sets up line delay value by reading 1 character andD; and subtracting 48. from it (ASCII 0). G Control-\: Toggles line delay off/on. In line mode, if line delay isYO on, the file is transmitted 1 line at a time with automaticiC proceeding after "delay" ticks between lines. G Control-Y: TogDUPLEX/RW,DUPLEX/-SP=DUPLEX/ TASK=...DUPPRI=101UNITS=4ASG=TI:1,TT25:2,SY:3:4;LIBR=FCSRES:RO TSKV=SSTVEC:1// K   A Author: Martin Heller, New England Nuclear Corporation  = Modified by: Glenn Everhart, RCA ,F. Borger, MRHMC   Date: 24-Oct-79   Date: 23-March-1983   Date: 15-June-1984  ' Last source edit: 15-June-83   Source version: 1.20  . Documentation edit date: 15-June-83   L Purpose: to00ސАѐӐ04 provide the capability of having two computers talk L to one another over serial lines, while having access to file fa-  cilities.  r! Operating System: IAS i b% Source Language: Macro-11 C  Units:  O9 1. terminal at which user is typing a 1 2. line to another computer J -/ 3. file to be transmitted  % 4. RECEIVED.DAT   L DUPLEX Documentation PAGE 2 K    Usage:  ( 1. Define logical units  = 2. Hook up cables and/or dial other computer  C 3. Set characteristics of terminal ports as needed 2  4. Run DUPLEX  L 5. Type away -- you will effectively be talking to the oth-  er computer  LF 6. Use control characters as needed to control DUPLEX  # Control characters used:  I 1. Control-B: exit from DUPLEX. Terminal talks to MCR. D nL 2. Control-T: transmit a file. Program will prompt for an L input file specification, i.e. L DUPLEX>=SY0:[100,200]FileName.Typ;4. The equals sign is E necessary for the file to be recognized as input. t L 3. Control-P: toggle between line-by-line and whole-file ! transmission. e L 4. Control-N: transmit one line in line-by-line transmis-  sion mode.  T= 5. Control-A: abort transmission of a file.  L 6. Control-F: open/close file RECEIVED.DAT of characters L received from unit 2. This file is also closed by Con-  trol-B.  oL 7. Control-]: Sets up line delay value by reading 1 char- L acter and subtracting 48. from it (ASCII 0). If nega- 4 tive sets line delay to 4 ticks.  mL 8. Control-\: Toggles line delay off/on. In line mode, if L line delay is on, the file is transmitted 1 line at a L time but with automatic proceeding after "delay" ticks L between lines. This defaults to 4 ticks but may be set 8 by control-] to anything reasonable.  rL 9. Control-Y: Toggles character delay. This will insert a L 1 tick delay between sending characters if set. Note L this forces single character QIO$s and is expensive of L CPU time, however is provided for remote computers where L the delay is needed. When turned off, transmission is L by qio$ of a line at a time. The line delay is more = likely to be useful for general purposes.  n L DUPLEX Documentation PAGE 3 K o s nL Internal mechanics of program: The program initializes its L buffers, attaches units 1 and 2, and declares AST handlers for L both units. It then clears event flag 3 and waits for event flag L 3 to be set. A character at either port will be delivered to the L AST handler. Normal characters will be queued for output to the L other port; special control characters will cause the AST L handler to set event flag 3, mark the appropriate words to vector L the main program, and exit. When the main program regains con- L trol it will perform the required control function, clear event L flag 3, and return to a wait state. Control-B, of course, will L 00搐ِܐݐTADATADATA cause the main program to clean up outstanding I/O operations, L close open files, and exit, returning control of the terminal to  MCR. t L Notes: Custom tailoring of the program can be done most ef- L fectively by adding to the list of special characters in one or L the other of the AST handlers. Special functions can be indexed L through TABLE, with indexing passed from the AST handler to the L main program through SENTIN. CIRSIZ and BUFSIZ could be enlarged L if necessary, although on my PDP-11/34 they are sufficient for 9 9600 baud operation under normal system loads.  tL Once DUPLEX is running, the user's terminal should remain at L its normal speed and parity, but should be set for full or half L duplex (no echo or echo) appropriate to the computer on the re- L mote port. The program's default settings are appropiate for L talking to DEC computers; when addressing IBM systems, a single L control-P at run time will set file transmission to line-by-line L mode. When talking to a VAX, set the VAX port to have HOSTSYNC, L and the control-s and control-q mechanism will keep both com- L puters from overflowing their buffers. It is also possible to L activate the RECEIVED.DAT file and then to control-O your own 6 terminal, if you don't want to waste paper.  kL DUPLEX has been used successfully with computers hard-wired L and connected via modems and ordinary phone lines. It has had L both ports at the same speed, and the ports set to different L speeds. DEC, IBM, CDC, and even Motorola systems have been suc- L cessfully interfaced to PDP-11's. File transfer from micropro- L cessors has turned out to be highly useful: the micro is then L given the advantage of hard disks, high speed printers, and other L mini-computer peripherals, albeit via a 9600 baud serial line. L The incoming Bell 103 on a DZ-11 port has turned out to function L perfectly well as an outgoing modem port. There is no reason au- L to-dialing and such features should not work without any changes  to the software. r L For further documentation, please refer to the source list-  ing.  L Note: DUPLEXX should normally be run with a fast terminal. L If your console is slower than (or even the same speed as) the L remote line, it can behave strangely. Speed combinations have L not been well investigated but running a 1200 baud line from a L 9600 baud terminal works well. Be careful of buffered I/O. You  L DUPLEX Documentation PAGE 4 K d r lL may want to run Duplex noncheckpointable and/or at higher priori- L ty than usual. It's I/O bound so high priority is normally not a L bad idea. Making it non- checkpointable improves AST throughput A and (on older RSXes) allows multiple outstanding QIOs. s well. Be careful of buffered I/O. You  L DUPLEX Documentation PAGE 4 K > .TITLE DUPLEX DO COMMUNICATIONS BETWEEN TERMINALS (MACHINES?) .IDENT /1.20A/N7 .MCALL QIO$S,QIOW$S,CLEF$S,WTSE$S,ASTX$S,EXIT$S,SETF$SC6 .MCALL FCSMC$,CSI$,CSI$1,CSI$2,DIR$,QIO$,QIOW$,SVTK$S .MCALL MRKT$S FCSMC$PL;---------------------------------------------------------------------------; &; AUTHOR: MARTIN HELLER DATE:24-OCT-79 ; DUPLEX:I6; The idea here is to provide the wiring (in software)7; so that a single terminal (unit 1, by convention) can <; be hard wired to the PDP-11 and yet fu00АѐӐ04nction as a terminal8; to any computer that can be called on the telephone or!; wired to another terminal port.T3; For dial-up use, a full-duplex modem needs to be,9; connected to another port on the PDP-11. This is useful-<; anyway, so that you can dial into the PDP-11; this program5; lets you reverse the process and dial out. When you8; task-build, ASG=TI:1, and explicitly assign the proper; port to unit 2. 6; There is no reason that the second port couldn't be@; hardwired as well. Therefore, if you have two computers withinB; a few hundred yards of each other, you can connect them together;; through EIA ports and have just one terminal at your desko; to talk to both of them.); CONTROL-B CAUSES EXIT FROM THE PROGRAMw; 8;** 26-OCT-79: VERSION 1.01 -- CTRL-T IS TRANSMIT A FILE;uJ; TO USE: TYPE CONTROL AND T SIMULTANEOUSLY. THIS WILL NOT BE TRANSMITTED.?; THE PROGRAM WILL PROMPT FOR AN INPUT FILE SPECIFICATION, I.E.a#; DUPLEX>=SY0:[25,34]FILENAME.TYP;4H; THE USUAL RULES FOR DEFAULTS APPLY; NO WILDCARDS OR LISTS ARE ALLOWED.L; NOTICE THAT THE EQUALS SIGN IS NOT OPTIONAL--PARSING IS FOR AN INPUT FILE.;n; ** 31-OCT-79: VERSION 1.02@; CTRL-P TOGGLES BETWEEN FILE TRANSMISSION AND LINE TRANSMISSION>; CTRL-N CAUSES TRANSMISSION OF NEXT LINE OF FILE IN LINE MODE;I; VERSION 1.03O#; CTRL-A ABORTS A FILE TRANSMISSIONL+; CTRL-F OPENS/CLOSES FILE OF RECEIVED DATAA;I; ** 26-NOV-79: VERSION 1.04; MESSAGES FOR CTRL-FU2; USE DIR$ FORM FOR QIO'S ISSUED FROM AST HANDLERS; ; ** 7-DEC-79: VERSION 1.05O9; HANDLING OF CONTROL CHARACTERS FROM TERMINAL 2 CHANGED:OA; ALL BOTHERSOME NULLS AND CONTROL CHARACTERS IGNORED FROM TERM 2 ;2; ** 23-MAR-83 VERSION 1.20L ; G. EVERHARTA?; ADD DELAY LOGIC. CTRL-\ SETS DELAY UP... SETS UP A PREDEFINEDF=; NUMBER OF TICKS DELAY AFTER EACH LINE (IF IN LINE MODE) ANDE@; AUTOMATICALLY SENDS LINES OUT AFTER THAT DELAY. ANOTHER CTRL-\(; TOGGLES THE MODE OFF AGAIN. (36 OCTAL)A; CTRL-^ SETS CHARACTER DELAY OF (NOMINALLY) 1 TICK PER CHAR SENT+; OR TURNS THIS DELAY OFF AGAIN. (34 OCTAL)OA; CTRL-] (OCTAL 35) ALLOWS DELAY FOR LINES TO BE SET. 1 CHARACTERA8; IS READ AND 60 OCTAL SUBTRACTED FROM IT TO GIVE DELAY.+; IF RESULT IS NEGATIVE, DELAY IS SET TO 4.A;O,; JUNE 15 84 F. BORGER MOD TO WORK UNDER IAS;F+; DO 1 CHAR AST'S AS SINGLE CHARACTER QIO'S ;LL;---------------------------------------------------------------------------.PAGEO .SBTTL DIRECTIVES .PSECT DIRECT,D,REL,RW^;T&AQ1: QIO$ IO.WVB!TF.WAL,2,2,,,,<0,1,0>&AQ2: QIO$ IO.WVB!TF.WAL,1,1,,,,<0,1,0>-OPERR: QIOW$ IO.WVB,1,1,,,,S)ROMSG: QIOW$ IO.WVB,1,1,,,, )RCMSG: QIOW$ IO.WVB,1,1,,,,G; ;A; .SBTTL TABLES .PSECT TABLE,D,REL,RO;A#; SUBROUTINES FOR SPECIAL FUNCTIONSO;UTABLE: XMIT ;#1 -- CTRL-TS RECV ;#2 -- CTRL-FE* LDM ;#3 -- CTRL-\ (LINE DELAY ACTIVE MSG)/ CDM ;#4 -- CTRL-Y (CHARACTER DELAY ACTIVE MSG)P" LDS ;#5 -- CTRL-] (SET UP DELAYS)ENTRIES = .-TABLE/2Q;Q; ODD ADDRESS SST TABLE<;,$SSTTAB: .WORD ODDAD ;ONLY ONE ENTRY .PAGE .SBTTL INITIALIZATION' FSRSZ$ 2 ;INITIALIZE FCS RECORD BUFFER, CSI$ ;DEFINE CSI CONTROL BLOCKO .PSECT DUPLEX,I,REL,ROMDUPLEX::= SVTK$S #SSTTAB,#1 ;SPECIFY TRAP VECTOR TABLE FOR ODD ADDRESSI8 QIOW$S #SF.SMC,#1,#1,,,,<#SETBUF,#SETSIZ> ;SET DEVICE 1 ;FB DEV 2 PERM SETM9; QIOW$S #SF.SMC,#2,#2,,,,<#SETBUF,#SETSIZ> ;SET DEVICE 2(2; QIOW$S #IO.ATA,#1,#1,,,,<#AST1> ;ATTACH DEVICE 12; QIOW$S #IO.ATA,#2,#2,,,,<#AST2> ;ATTACH DEVICE 27 QIO$S #IO.RLB!TF.RAL!TF.RNE,#1,#1,,,#AST1,<#DV1BUF,#1>.7 QIO$S #IO.RLB!TF.RAL!TF.RNE,#2,#2,,,#AST2,<#DV2BUF,#1>E FINIT$ ;INITIALIZE FCSN6 MOV #BUF1,B1PTR ;INITIALIZE BUFFERS FOR EACH TERMINAL MOV #BUF2,B2PTR=1$: CLEF$S #3 ;WAIT FOREVER: ALL WE WANT IS THE AST HANDLING, WTSE$S #3. MOVB SENTIN,R1 ;SOMETHING SPECIAL CALLED FOR? BGT 20$ ;YESW! QIOW$S #IO.KIL,#1,#1 ;NO -- EXITZ QIOW$S #IO.KIL,#2,#2W; QIOW$S #IO.DET,#1,#1; QIOW$S #IO.DET,#2,#2: QIOW$S #SF.SMC,#1,#1,,,,<#RESBUF,#RESSIZ> ;RESET DEVICE 1 ;FB DEV 2 PERM 00ِܐݐTADATADATASET#;; QIOW$S #SF.SMC,#2,#2,,,,<#RESBUF,#RESSIZ> ;RESET DEVICE 22 TSTB RCVFIL ;FILE OPEN? BEQ 10$ ;NO CLOSE$ #RCVFDB ;YES - CLOSE ITF 10$: EXIT$S ;M);SPECIAL FUNCTION DESIRED: R1 HOLDS INDEXT;R120$: CMP #ENTRIES,R1 ;CHECK FOR NON-EXISTENT CALL BLT 25$ ;NO GOOD -- IGNOREE DEC R1E ASL R1 ;CHANGE INDEX TO OFFSETI& CALL @TABLE(R1) ; GO DO THE GOOD WORK,25$: CLRB SENTIN ;SET UP FOR ANOTHER REQUEST BR 1$ ;GO WAIT (PROCESS AST'S), .PAGE .SBTTL BUFFERS AND POINTERS .PSECT DATA,D,REL,RWE=SETBUF: .BYTE TC.BIN,1,TC.FDX,1 ;SET TERMINAL CHARACTERISTICS2 SETSIZ=.-SETBUF5RESBUF: .BYTE TC.BIN,0,TC.FDX,0 ;RESET TERMINAL CHARSF RESSIZ=.-RESBUF(DV1BUF: .WORD 0 ;BUFFER FOR DEV 1 READ(DV2BUF: .WORD 0 ;BUFFER FOR DEV 2 READ CIRSIZ = 256. BUFSIZ = 136.GB1PTR: .WORD 0B2PTR: .WORD 0 SAVE: .WORD 0 RPTR: .WORD 0L IOSB: .BLKW 2G;OXMTFDB: FDBDF$ FDRC$A ,XMTBUF,BUFSIZ7 FDOP$A 3,CSIBLK+C.DSDS ;FILENAME WILL BE PARSED BY CSI.XMTBUF: .BLKB BUFSIZFILENAME: .BLKB 30.  .EVENCSIBLK: .BLKB C.SIZE .EVENRCVFDB: FDBDF$ FDRC$A ,RCVBUF,BUFSIZ FDOP$A 4,,RCVNAMRCVBUF: .BLKB BUFSIZ .EVENRCVNAM: NMBLK$ RECEIVED,DATS;=;BUF1: .BLKB CIRSIZ ;THESE CIRCULAR BUFFERS JUST HAVE TO BE WABUF2: .BLKB CIRSIZ ;BIG ENOUGH TO PROVIDE A REASONABLE TYPE-AHEADTESENTIN: .BYTE 0 ;CAPABILITY WHEN THE TERMINALS GO AT DIFFERENT SPEEDS XFMODE: .BYTE 0DXABORT: .BYTE 0TRCVFIL: .BYTE 0$XACTIV: .BYTE 0  .EVEN5LDLYV: .WORD 6 ;NUMBER OF TICKS TO WAIT BETWEEN LINESE?CHDLV: .WORD 1 ;NUMBER OF TICKS BETWEEN CHARACTERS (IF WAITING)$%LWF: .WORD 0 ;ZERO IF LINEWAIT ACTIVEVACWF: .WORD -1 ;ZERO IF CHAR WAIT ACTIVE, (ONLY WITH NO LINE WAIT)=.PAGE .SBTTL ASCII MESSAGESC;RFASK: .ASCII /DUPLEX>/FASKL = .-FASK'OPNERR: .ASCII /ERROR OPENING FILE/<12>EOPNERL = .-OPNERRN1LMSG: .ASCII /TYPE CTRL-N TO TRANSMIT A LINE/<12>ELMSGL = .-LMSG5ROMT: .ASCII /RECEIVED DATA FILE HAS BEEN OPENED/<12>T ROML = .-ROMT.5RCMT: .ASCII /RECEIVED DATA FILE HAS BEEN CLOSED/<12>I RCML = .-RCMTO!LDMT: .ASCII /LINE DELAY SET TO /CDSMB:FLDMC: .ASCII /4 TICKS/<12> LDML=.-LDMTT0CDMT: .ASCII /CHARACTER DELAY SET TO 1 TICK/<12> CDML=.-CDMTO%LUMT: .ASCII /LINE DELAY CLEARED/<12>A LUML=.-LUMTK%CUMT: .ASCII /CHAR DELAY CLEARED/<12>E CUML=.-CUMTR(XCMT: .ASCII /Transmission Complete/<12> XCML=.-XCMTI.DSMT: .ASCII /Enter value (1 char) for delay:/ DSML=.-DSMT  .EVEN .PAGE" .SBTTL ASYNCHRONOUS TRAP HANDLERS .PSECT AST,I,REL,RO;I$; AST SERVICE ROUTINE FOR TERMINAL 1;I(AST1: MOV R0,SAVE ;ON GENERAL PRINCIPLES1; MOV (SP)+,R0 ;CHARACTER RECIEVED AND PARAMETER2L- TST (SP)+ ;GET RID OF IO STAT BLOCK ADDRESS1& MOV DV1BUF,R0 ;GET CHARACTER RECEIVED7 BIC #177600,R0 ;CLEAR UPPER BYTE AND PARITY FOR CHECKSR7 QIO$S #IO.RLB!TF.RAL!TF.RNE,#1,#1,,,#AST1,<#DV1BUF,#1>sE;NOTE THE TEST FOR EXIT IS NOW CONTROL B. THIS ALLOWS CONTROL C TO BEr%;USED TO CONTROL THE REMOTE COMPUTER.4 CMP #2,R0 ;CTRL-B WANTS IMMEDIATE EXIT FROM PROGRAM BEQ XIT ;EXIT TASK  CMP #24,R0 ;CTRL-T1 BEQ 10$ ;TRANSMIT FILEO CMP #20,R0 ;CTRL-P BEQ 20$ ;TOGGLE XMIT MODE CMP #16,R0 ;CTRL-NL BEQ 30$ ;XMIT NEXT LINE CMP #1,R0 ;CTRL-A BEQ 15$ ;ABORT TRANSMISSION CMP #6,R0 ;CTRL-F! BEQ 25$ ;RECEIVE FILE OPEN/CLOSEI CMP #34,R0 ;CTRL-\S! BEQ 507$ ;TOGGLE LINE DELAY MODE1 CMP #31,R0 ;CTRL-Y & BEQ 508$ ;TOGGLE CHARACTER DELAY MODE CMP #35,R0 ;CTRL-]B+ BEQ 509$ ;SET UP DELAY MAGNITUDE FOR LINESC" MOVB DV1BUF,@B1PTR ;TRANSMIT BYTE MOV B1PTR,AQ1+Q.IOPLT DIR$ #AQ1$ INC B1PTR ;MAINTAIN CIRCULAR BUFFER CMP B1PTR,#BUF1+CIRSIZC BLE 5$B MOV #BUF1,B1PTR)5$: MOV SAVE,R0 ;GENERAL PRINCIPLES AGAINT! ASTX$S ;RETURN FROM AST SERVICEQ;$10$: MOVB #1,SENTIN11$: SETF$S #3 BR 5$; CTRL-A: ABORT TRANSMISSION15$: INCB XABORT BR 5$"; CTRL-P: TOGGLE TRANSMISSION MODE20$: COMB XFMODE CLEF$S #4 BR 5$+; CTRL-F: OPEN/CLOSE FILE FOR DATA RECEIVEDB25$: MOVB #2,SENTIN  BR 11$ ; CTRL-N: TRANSMIT NEXT LINE30$: SETF$S #4 BR 5$; CTRL-\: TOGGLE LINE DELAY#507$: COM LWF ;SET FLAG OR CLEAR IT MOVB #3,SEN00АѐӐ04TINC BR 11$B#; OCTAL 35 : SET UP DELAY MAGNITUDEE509$: MOVB #5,SENTIN BR 11$ ;35 - SET UP DELAY; ; CTRL-Y: TOGGLE CHARACTER DELAY 508$: COM CWF$ MOVB #4,SENTINT BR 11$R;R#; CONTROL-B PRESSED: IMMEDIATE EXIT;TXIT: CLRB SENTIN SETF$S #3 MOV SAVE,R0 ASTX$SE; ; AST HANDLER FOR 2ND TERMINAL;LAST2: MOV R0,SAVEB; MOV (SP)+,R0- TST (SP)+ ;GET RID OF IO STAT BLOCK ADDRESS MOV DV2BUF,R0' BIC #177400,R0 ;1 BYTE FOR KEY PRESSED$7 QIO$S #IO.RLB!TF.RAL!TF.RNE,#2,#2,,,#AST2,<#DV2BUF,#1>1 CMP #3,R0 ;CTRL-C U+ BEQ 5$ ;IGNORE CTRL-C ( THIS IS A CHANGE )  CMP #24,R0 ;CTRL-T (DC4). BEQ 5$ ;IGNORE DC4 (GENERATED BY 6800 EDITOR) CMP #25,R0 ;CTRL-U (NAK)R- BEQ 5$ ;IGNORE NAK (GENERATED BY 6800 BASIC) CMP #177,R0 ;DELS- BEQ 5$ ;IGNORE DEL (GENERATED BY 6800 BASIC)D MOVB R0,@B2PTR ;TRANSMIT BYTE MOV B2PTR,AQ2+Q.IOPL) DIR$ #AQ2( TSTB RCVFIL ;FILE OPEN TO RECEIVE DATA? BEQ 2$ ;NO0* CALL RCVCHR ;YES: PUT CHARACTER INTO FILE 2$: INC B2PTRT CMP B2PTR,#BUF2+CIRSIZ2 BLE 5$, MOV #BUF2,B2PTR5$: MOV SAVE,R0 ! ASTX$S ;RETURN FROM AST SERVICE  .PAGE .SBTTL XMIT - TRANSMIT A FILE .PSECT XMIT,I,REL,RO ;00; GET FILE DESCRIPTER, PARSE IT, OPEN INPUT FILE; 1XMIT: QIOW$S #IO.KIL,#1,#1 ;KILL OUTSTANDING READ* QIOW$S #SF.SMC,#1,#1,,,,<#RESBUF,#RESSIZ> JSR PC,LDM@ JSR PC,CDMIB QIOW$S #IO.RPR,#1,#1,,#IOSB,,<#FILENAME,#30.,#6,#FASK,#FASKL,#'$>* QIOW$S #SF.SMC,#1,#1,,,,<#SETBUF,#SETSIZ>7 QIO$S #IO.RLB!TF.RAL!TF.RNE,#1,#1,,,#AST1,<#DV1BUF,#1>R BR 522$ 521$: JMP 10$ 520$: JMP 20$R522$:O. CSI$1 #CSIBLK,#FILENAME,IOSB+2 ;COMPRESS LINE BCS 520$ ;ERROR HANDLINGS+ CSI$2 #CSIBLK,INPUT ;PARSE FILE DESCRIPTOR  BCS 520$ ;ERROR HANDLINGO& OPEN$R #XMTFDB ;OPEN FILE FOR READING BCS 520$ ;ERROR HANDLINGA CLRB XABORT ;INITIALIZE INCB XACTIV ;FLAG FILE ACTIVE TSTB XFMODE BEQ 5$$B QIOW$S #IO.WVB,#1,#15,,,,<#LMSG,#LMSGL,#'0> ;SAY LINE MODE ACTIVE;S4; READ A RECORD FROM FILE AND WRITE IT TO TERMINAL 2;F5$: TSTB XABORT ;STOP NOW?1 BNE 521$ ;YES$ TST LWF ;DELAY PER LINE ?2 BNE 55$ ;BR IF NOT3 MRKT$S #7,LDLYV,#1 ;SET FLAG 7 AFTER 'LDLYV' TICKSL WTSE$S #7 ;AWAIT TIMEOUT BR 8$ ;AND NOW DO LINE.55$: TSTB XFMODE ;TRANSMIT WHOLE FILE INTACT? BEQ 8$ ;YESG ;WAIT FOR ^-N DELAY ROUTINE. WTSE$S #4 ;WAIT FOR PERMISSION FOR THIS LINE CLEF$S #4 ;INHIBIT NEXT LINE8$: GET$ #XMTFDB" BCS 10$ ; END AND ERROR HANDLING6 TST CWF ;ARE WE INSERTING DELAYS BETWEEN CHARACTERS?7 BNE 502$ ;IF NE NO...(THANK HEAVEN...DELAY IS COSTLY) A;CHARACTER DELAY. THIS MUST BE HANDLED BY SINGLE-CHARACTER QIO$'S ;SO LET'S GET AT IT., TST XMTFDB+F.NRBD ;ZERO BYTES? NORMAL IF SO BLE 502$$ MOV R0,-(SP)I" MOV R1,-(SP) ;NEED SOME REGISTERS. MOV #XMTFDB+F.NRBD+2,R0 ;ADDRESS TO SHOOT OUT! MOV XMTFDB+F.NRBD,R1 ;BYTE COUNT  DEC R1 ;AJUST COUNT 3504$: QIOW$S #IO.WVB,#2,#5,,,, ;EMIT CHARB INC R0 ;PASS CHARACTER EMITTED MRKT$S #6,CHDLV,#1 # WTSE$S #6 ;WAIT FOR 'CHDLV' TICKS DEC R1 BGT 504$.C QIOW$S #IO.WVB,#2,#5,,,, ;EMIT LAST CHAR WITH CR AT ENDN# MOV (SP)+,R1 ;RESTORE REGS USED... MOV (SP)+,R0. JMP 5$T502$:R< QIOW$S #IO.WVB,#2,#5,,,, JMP 5$ ;E2; DONE WITH FILE (EITHER END OR ERROR) -- CLOSE IT;S10$: CLOSE$ #XMTFDB+ CLRB XACTIV ;FLAG FILE CLOSEDB QIOW$S #IO.WVB,#1,#15,,,,<#XCMT,#XCML,#'0> ;SAY TRANSMISSION DONE RETURN ;A'; ERROR OPENING FILE -- SAY SO AND WAIT ;W20$: DIR$ #OPERR RETURN  .PAGE# .SBTTL RECV - HANDLE DATA RECEIVED, .PSECT RECV,I,REL,ROMRECV:  TSTB RCVFIL ;IS A FILE OPEN BNE 10$ ;YES -- CLOSE IT ;OPEN FILE& FDAT$R #RCVFDB,#R.VAR,#FD.CR,,#-5,#-5 OPEN$W #RCVFDBF BCS 20$ ; ERROR HANDLING MOVB #1,RCVFIL ;MARK FILE OPENI MOV #RCVBUF,RPTR- DIR$ #ROMSG ;SAY FILE OPENEDT RETURNR ;CLOSE FILEG10$: CLOSE$ #RCVFDB  CLRB RCVFIL ;MARK FILE CLOSED DIR$ #RCMSG ;SAY FILE CLOSEDT RETURN;R'; ERROR OPENING FILE -- SAY SO AND WAIT;:20$: DIR$ #OPERR RETURNA;$; LDM - LINE DISPLAY MESSAGE DISPLAY;S&LDM: TST LWF ;00 ِܐݐTADATADATANOW IN LINEWAITING MODE?$ BNE 510$ ;IF NE NO, WAITING CLEARED+ QIOW$S #IO.WVB,#1,#14,,,,<#LDMT,#LDML,#'0>D RETURN#0510$: QIOW$S #IO.WVB,#1,#14,,,,<#LUMT,#LUML,#'0> RETURNR;I$; CDM - CHAR DISPLAY MESSAGE DISPLAY;D'CDM: TST CWF ;NOW IN CHAR WAITING MODE?C$ BNE 511$ ;IF NE NO, WAITING CLEARED+ QIOW$S #IO.WVB,#1,#14,,,,<#CDMT,#CDML,#'0>  RETURNE0511$: QIOW$S #IO.WVB,#1,#14,,,,<#CUMT,#CUML,#'0> RETURN;;:"; LDS - LINE DELAY MAGNITUDE SETUP/LDS: QIOW$S #IO.WVB,#1,#14,,,,<#DSMT,#DSML,#'$>O- QIOW$S #IO.KIL,#1,#14 ;KILL OUTSTANDING READI+ QIOW$S #SF.SMC,#1,#14,,,,<#RESBUF,#RESSIZ>T$ QIOW$S #IO.RVB,#1,#14,,,,<#DSMB,#1>+ QIOW$S #SF.SMC,#1,#14,,,,<#SETBUF,#SETSIZ>8 QIO$S #IO.RLB!TF.RAL!TF.RNE,#1,#14,,,#AST1,<#DV1BUF,#1>6;READ 1 CHARACTER INTO BUFFER. THEN SET DELAY FROM IT.; (SUBTRACT ASCII 0) MOVB DSMB,-(SP)! BIC #177400,(SP) ;ZERO HIGH BYTEI SUB #60,(SP) ;ADJUST THE ASCIIM* MOV (SP)+,LDLYV ;STORE AS NEW DELAY VALUE$ BGT 512$ ;AS LONG AS >0 ALL'S WELL( MOV #4,LDLYV ;IF NEGATIVE JUST PUT IN 4 512$: RETURN;O;T9; RECIEVE A CHAR: BYTE IN R0 IS TO BE STUFFED INTO BUFFER=; WHEN BUFFER IS FULL OR CR DETECTED, FLAG BUFFER FOR WRITING,RCVCHR: CMPB #15,R0 ;CR? BEQ 20$ ;YES - PUT BUFFER CMPB #12,R0 ;LF?# BEQ 10$ ;IGNORE LF  TSTB R0 ;NUL? BEQ 10$ ;IGNORE NUL& MOVB R0,@RPTR ;STUFF CHAR INTO BUFFER INC RPTR ;MAINTAIN POINTERB/ CMP RPTR,#RCVBUF+BUFSIZ ;CHECK FOR BUFFER FULL+ BGT 20$ ;NEED TO PUT BUFFER10$: RETURN ;ALL DONE '20$: MOV RPTR,R0 ;COMPUTE RECORD LENGTHI SUB #RCVBUF,R0* BLT 25$ ;NEGATIVE CHARS WOULD BE AN ERROR! MOV R0,RCVFDB+F.NRBD ;SET LENGTH PUT$ #RCVFDB ;SHIP IT OUT,25$: MOV #RCVBUF,RPTR ;SET UP FOR NEW BUFFER RETURNR;C; ODD ADRESS SERVICE;UODDAD: QIOW$S #IO.KIL,#1,#11 QIOW$S #IO.KIL,#2,#20: QIOW$S #SF.SMC,#1,#1,,,,<#RESBUF,#RESSIZ> ;RESET DEVICE 1 TSTB RCVFIL ;FILE OPEN? BEQ 10$ ;NO CLOSE$ #RCVFDB ;YES - CLOSE ITO 10$: EXIT$S+;B .END DUPLEXO PUT BUFFER10$: RETURN ;ALL DONE '20$: MOV RPTR,R0 ;COMPUTE RECORD LENGTHI*XK@ƨL<&@' q@*'@:4F@:br@:s@:s@*:2@t @wx@} @}8&@* ~p@ ~r@ ~@`@=@*@=@X@p@}@hp!@*}@(zZ*}K y *XK8XKh<@pL 8}8^Kq8XK( z*   :2 ~ :2 ~ *&e0 #0 $:2 <@e:2 <@(:2L#0 <@*}Kb* } Kq Kqb Kq Kq  KqXK* i& & & Ε *}K <@&&& & Εwx <@ L &H & & Ε&:br ~p ~r <@ L j P$:br ~p ~r X <@P*z P)P2& & "<@ <@P <@"<@P*& Ε& & & Ε:4F(:4F*& & & Ε <@"wx*SJ 3% 7P(<@S <@J` $*}K(<@P <@} }8&} }8&**x x((::<<$ $\\ ZZllpp2 28 8Kq <P PV*VDUPLEX>ERROR OPENING FILE TYPE*| CTRL-N TO TRANSMIT A LINE RECEIVED DA*TA FILE HAS BEEN OPENED RECEIVED DATA *FILE HAS BEEN CLOSED LINE DELAY SET TO* 4 TICKS CHARACTER DELAY SET TO 1 TICK* LINE DELAY CLEARED CHAR DELAY CLEARED*: TRANSMISSION COMPLETE ENTER VALUE (1 `CHAR) FOR DELAY: L *7 E& & Ε<@ <@ <@*&%]%,%5%>%:br ~p ~r *L,%4%;%B%;  " <@"<@ &<@ (z r - PP*00ѐӐ04 z <@ <@ <@P <@P* sP!Rw"<@ <@<@P$<@R*QP!w Z<@Q<@P(<@Z*PPw \P7P*<@P<@P<@\<@P"<@P*!s7  E " <@<@<@ &<@ * & & Ε%%%:br ~p ~r &F%?S *<@<@z z <@Sh -PP*Kq<@ <@ <@P <@Pzs<@<@}*& & & Ε& & & :4F "<@*&Ε b $^ wxKqbKq (<@^*L& & Ε  <@ <@":s*r& & & Ε <@wx*& & Εwjw& <@ L :br ~p ~r $ ȕ ( <@ <@<@= <@# 7R$@= <@' qhp!<@R*TQ0x& & & Ε  <@T<@Q <@x(:2* R Z& V <@R<@Z<@V*D) Q ) <@Q$j X \A ,>&f.( <@ }<@\<@, <@.*, & && & & Ε <@, :2*& X) +  <@X*&& & & Ε w(:2*+,.& & & Ε w <@,<@. :2*" 7T0;& & & Ε   <@ `<@T <@;H $:2 z$Kq*S J J&<@S <@Jt <& (<@J&# S&' hp!<@S <@<@ @6J 7SH( z6 <@J`<@S zH*\$ Z0& & & Ε  z$ <@Z <@* 0& & & Ε :2 <@* \0& & & Ε:2<@\ <@*  0(& & & Ε :2 <@(*  $Q& & & Ε :2 <@Q*  & & & Ε  :2$:4F*@& & & Ε  <@wx*f& & & Ε &  <@:s &<@*& & Ε & & wx <@ $L *Ε E0V&:br ~p ~r <@$<@V*V  ? -2*<@V<@ <@$<@ &<@27^J (<@ <@<@^ <@J}*& & & Ε& & & Ε <@<@:4F*>& & & Ε :4F <@"dSJ 3wx<@S <@J`& .LM 10;.RM 75 .PS 60,75.AP.PR^^.t DUPLEX Documentation .LS 2;.NOFILL6Author: Martin Heller, New England Nuclear Corporation2Modified by: Glenn Everhart, RCA ,F. Borger, MRHMCDate: 24-Oct-79Date: 23-March-1983Date: 15-June-1984Last source edit: 15-June-83Source version: 1.20#Documentation edit date: 15-June-83.FG 1;.LS 1;.FILLBPurpose: to provide the capability of having two computers talk toFone another over serial lines, while having access to file facilities..FG 1Operating System: IAS0.FG 1ASource Language: Macro-11u.FG 1oUnits:.LISTL%.LE terminal at which user is typingN.LE line to another computer:.LE file to be transmitted.LE RECEIVED.DAT.ELS.pageaUsage:.LIST8.LE Define logical units-.LE Hook up cables and/or dial other computer03.LE Set characteristics of terminal ports as neededF.LE Run DUPLEXF.LE Type away -- you will effectively be talking to the other computer6.LE Use control characters as needed to control DUPLEX.ELS00 ِܐݐTADATADATAControl characters used:.LISTA7.LE Control-B: exit from DUPLEX. Terminal talks to MCR. E.LE Control-T: transmit a file. Program will prompt for an input file 8specification, i.e. DUPLEX>=SY0:[100,200]FileName.Typ;4.DThe equals sign is necessary for the file to be recognized as input.G.LE Control-P: toggle between line-by-line and whole-file transmission.LC.LE Control-N: transmit one line in line-by-line transmission mode. ,.LE Control-A: abort transmission of a file.H.LE Control-F: open/close file RECEIVED.DAT of characters received from .unit 2. This file is also closed by Control-B.B.LE Control-]: Sets up line delay value by reading 1 character andJsubtracting 48. from it (ASCII 0). If negative sets line delay to 4 ticks.F.LE Control-_\: Toggles line delay off/on. In line mode, if line delayBis on, the file is transmitted 1 line at a time but with automaticFproceeding after "delay" ticks between lines. This defaults to 4 ticks3but may be set by control-] to anything reasonable.eA.LE Control-Y: Toggles character delay. This will insert a 1 ticks@delay between sending characters if set. Note this forces singleEcharacter QIO$s and is expensive of CPU time, however is provided for.Iremote computers where the delay is needed. When turned off, transmissionyJis by qio$ of a line at a time. The line delay is more likely to be usefulfor general purposes.m.ELSD Internal mechanics of program: The program initializes its buffers,Aattaches units 1 and 2, and declares AST handlers for both units.-AIt then clears event flag 3 and waits for event flag 3 to be set.e@A character at either port will be delivered to the AST handler.>Normal characters will be queued for output to the other port;Bspecial control characters will cause the AST handler to set event>flag 3, mark the appropriate words to vector the main program, and exit.fBWhen the main program regains control it will perform the requiredAcontrol function, clear event flag 3, and return to a wait state.lIControl-B, of course, will cause the main program to clean up outstandingoDI/O operations, close open files, and exit, returning control of theterminal to MCR.D Notes: Custom tailoring of the program can be done most effectively?by adding to the list of special characters in one or the othertDof the AST handlers. Special functions can be indexed through TABLE,Ewith indexing passed from the AST handler to the main program throughrBSENTIN. CIRSIZ and BUFSIZ could be enlarged if necessary, althoughAon my PDP-11/34 they are sufficient for 9600 baud operation underunormal system loads.= Once DUPLEX is running, the user's terminal should remain atmFits normal speed and parity, but should be set for full or half duplexA(no echo or echo) appropriate to the computer on the remote port.h@The program's default settings are appropiate for talking to DEC=computers; when addressing IBM systems, a single control-P atm9run time will set file transmission to line-by-line mode.lAWhen talking to a VAX, set the VAX port to have HOSTSYNC, and theo?control-s and control-q mechanism will keep both computers fromioverflowing their buffers.>It is also possible to activate the RECEIVED.DAT file and thenAto control-O your own terminal, if you don't want to waste paper.c< DUPLEX has been used successfully with computers hard-wiredBand connected via modems and ordinary phone lines. It has had both?ports at the same speed, and the ports set to different speeds. ?DEC, IBM, CDC, and even Motorola systems have been successfullyoEinterfaced to PDP-11's. File transfer from microprocessors has turnedoAout to be highly useful: the micro is then given the advantage of Ehard disks, high speed printers, and other mini-computer peripherals,n>albeit via a 9600 baud serial line. The incoming Bell 103 on aCDZ-11 port has turned out to function perfectly well as an outgoingdDmodem port. There is no reason auto-dialing and such features should-not work without any changes to the software.a? For further documentation, please refer to the source listing.D00 !%04> Note: DUPLEXX should normally be run with a fast terminal. IfByour console is slower than (or even the same speed as) the remoteDline, it can behave strangely. Speed combinations have not been wellCinvestigated but running a 1200 baud line from a 9600 baud terminalhBworks well. Be careful of buffered I/O. You may want to run Duplex@noncheckpointable and/or at higher priority than usual. It's I/OAbound so high priority is normally not a bad idea. Making it non-nBcheckpointable improves AST throughput and (on older RSXes) allowsmultiple outstanding QIOs.al. IfByour console is slower than (or even the same speed as) the remoteDline, it can behave strangely. Speed combinations have not been wellCinvestigated but running a 1200 baud line from a 9600 baud terminalhBworks well. Be careful of buffered I/O. You may want to run Duplex@noncheckpointable and/or at higher priority than usual. It's I/OAbound so high priority is normally not a bad idea. Making it non-nBcheckpointable improves AST throughp;DUPLEX TO WORK WITH MODEMMODEM/RW,DUPLEX/-SP=DUPLEX/ TASK=...MODPRI=101UNITS=4ASG=TI:1,TT42:2,SY:3:4;LIBR=FCSRES:RO TSKV=SSTVEC:1// K   * USING DUPLEX  L DUPLEX is a program that allows one to talk to the treatment L planning computer (the 11/45) from any terminal on the main sys- L tem, (the 11/44). Only one person at a time can use DUPLEX, (be- J cause there is only one spare terminal interface on the 11/45.)   Use is as follows:   = 1. Log on to 11/44 system in the normal way.  , 2. Evoke DUPlex MCR>DUP  L (Duplex is now active and the effect is the same as if L you had physically re-connected your terminal to the  11/45.)  nL 3. Type another control-C to activate HELLO or MCR on the  11/45.  sL 4. Due to hardware limitations, operation on the 11/45 is ( limited to 300 BAUD.  oL 5. After performing operation, (i.e. entering calibration ? data,) log off the 11/45 in the normal way. c sL 6. To get out of DUPlex state, type a control-B. (You can L do this at any time, but you will leave yourself logged % in on the 11/45.) M L 7. After typing the control-B, you may have to type another . control-C to get MCR back.  L 8. REMEMBER, if DUPlex is running, a control-C gets MCR on L the 11/45, if DUPlex is not running, control-C gets MCR ! on the 11/44.  L Note that DUPLEX also has the capability of transmitting ascii ? data between the two systems. See AID DUP for help.  % F. Borger, June 30, 1984 7. After typing the control-B, you may have to type another . control-C to get MCR back.  L .LS 1;.LM 10;.RM 75.C^^USING DUPLEX.FG 1EDUPLEX is a program that allows one to talk to the treatment planningGcomputer (the 11/45) from any terminal on the main system, (the 11/44).JOnly one person at a time can use DUPLEX, (because there is only one spare!terminal interface on the 11/45.).fg 1Use is as follows:.fg 1.list-.le Log on to 11/44 system in the normal way..le Evoke DUPlex MCR>DUP_.fg 1[(Duplex is now active and the effect is the same as if you had physica00&()*,-TADATADATAlly re-connected yourterminal to the 11/45.) A.le Type another control-C to activate HELLO or MCR on the 11/45.aE.le Due to hardware limitations, operation on the 11/45 is limited to 300 BAUD.nE.le After performing operation, (i.e. entering calibration data,) loge off the 11/45 in the normal way.E.le To get out of DUPlex state, type a control-B. (You can do this att>any time, but you will leave yourself logged in on the 11/45.)F.le After typing the control-B, you may have to type another control-Cto get MCR back.F.le REMEMBER, if DUPlex is running, a control-C gets MCR on the 11/45,:if DUPlex is not running, control-C gets MCR on the 11/44..endlistCNote that DUPLEX also has the capability of transmitting ascii datan.between the two systems. See AID DUP for help..FG 1 F. Borger, June 30, 1984 t out of DUPlex state, type a control-B. (You can do this att>any time, but you will leave yourself logged in on the 11/45.)F.le After typing the control-B, you may have to type another control SUBROUTINE ECHO(ITRANS) LOGICAL*1 IMSG(16)A; DATA IMSG/'E','x','i','t',' ','E','C','H','O',' ','m','o',1 C 'd','e',"15,"12/ IF((ITRANS.AND.4).NE.0) GOTO 10 ITRANS=ITRANS + 4 J=6 GOTO 14 10 ITRANS=(ITRANS.AND."177773)0 J=1CI 14 DO 15 I=J,16 ICHAR=IMSG(I) 15 CALL ENQUE(ICHAR)S RETURNL END ;DO ALL ENABLED ENTRIEST' JSR PC,A$PRRS ;GET BACK ORIGINAL APR'SR RTS PC.TEMPLT: 2 .ASCII /THIS IS THE DAY WHICH THE LORD HATH MADE// .ASCII <15><12>/WE WILL BE GLAD IN IT/<15>< SUBROUTINE ENQUE(INCHAR) COMMON ISTACK,IEND,ISTCK,IPTR LOGICAL*1 ISTACK(8000)'C'AC PLACE ALL INPUT IN THE QUEUE; IF WE HAVE A FULL QUEUE *ERROR*)C.C IGNORE NULLS 410 IF(INCHAR.EQ.0) RETURN4C1C IGNORE RUBOUTSC7 IF(INCHAR.EQ."177) RETURNC, 420 IF(ISTCK.GE.IEND) ISTCK=0 ISTCK=ISTCK+1 IF(ISTCK.EQ.IPTR) GOTO 99999R ISTACK(ISTCK)=INCHARE RETURNICA%C BUFFER HAS OVERFLOWED - WARN USERTC 99999 WRITE(5,12)E# 12 FORMAT(//' *QUEUE OVERFLOW*'//)  RETURNL ENDIT/<15>< SUBROUTINE FORMAT(ITRANS) DIMENSION IMSGA(7),IMSGB(8)( DATA IMSGA/'A','S','C','I','I',"15,"12/, DATA IMSGB/'B','i','n','a','r','y',"15,"12/ WRITE(5,1) "15,"12+? 1 FORMAT($,1X,2A1,' (I)nput from disc, or (O)utput to disc :')R 2 I=ITTING(IDUMMY) IF(I.LT.0) GOTO 2 IF(I.EQ."111) GOTO 100  IF(I.NE."117) GOTO 200%C CHANGE FORMAT OF OUTPUT FILE MODEO# IF((ITRANS.AND."100).EQ.0) GOTO 10I ITRANS=(ITRANS.AND."177677) 4 DO 5 I=1,7  5 CALL ENQUE(IMSGA(I))1 RETURN 10 ITRANS=ITRANS+"100 14 DO 15 I=1,8M 15 CALL ENQUE(IMSGB(I)) RETURNG$C CHANGE FORMAT OF INPUT FILE MODE( 100 IF((ITRANS.AND."200).EQ.0) GOTO 110 ITRANS=(ITRANS.AND."177577) GOTO 4F 110 ITRANS=ITRANS+"200f GOTO 14C SIMPLY RETURN  200 CALL ENQUE("15) CALL ENQUE("12) RETURNI END."111) GOTO 100  IF(I.NE."117) GOTO 200%C CHANGE FORMAT OF OUTPUT FILE MODEO# IF((ITRANS.AND."100).EQ.0) GOTO 10I ITRANS=(ITRANS.AND."177677) 4 DO 5 I=1,7  5 CALL ENQUE(IMSGA(I))1 RETURN 10 ITRANS=ITRANS+"100 .TITLE GETSQ/PUTSQB;1>; THIS FILE REMOVES THE NEED FOR BOTH THE SEQUENTIAL FILE CODE=; AND THE RANDOM ACCESS CODE FOR FORTRAN I/O AS DOCUMENTED INP; THE FORTRAN-IV USER'S GUIDE.;GETSQ:: JMP .GETPUTSQ:: JMP .PUT .ENDPLC,F.RACC(R0) ;CLEAR LOCATE MODE% PUT$S R0,4(R5),@6(R5) ;PUT A RECORD+ BCS 110$ ;CS - IT FAILEDR CLR @10(R5) ;RETURN SUCCESS RETURNZ110$:, MOVB F.ERR(R0),R1 ;GET ERROR - SIGN EXTEND MOV R1,@10(R5) ;AND RETURN ITC RETURNE .DSABL LSBE .ENDS R0,4(R5),@6(R SUBROUTINE HELP7 LOGICAL*1 MSG(10),MSGA(34),MSGB(30),MSGC(16),MSGD(30)G7 LOGICAL*1 MSGE(40),MSGF(42),MSGH(10),MSGI(26),MSGO(26)A7 LOGICAL*1 MSGP(26),MSGR(42),MSGS(34),MSGT(40),MSGU(22)S0 LOGICAL*1 MSGX(24),MSG8(16),MSGUP(38),LSTMSG(2)CR DATA MSG/( C "15,"12,' ','H','E','L','P',':', C "15,"12/ DATA MSGX/< C 'X',' ','-',' ','E','x','i','t',' ','X','M','I','T',0 C 'R',' ','p','r','o','g','r','a','m', C "15, C "12/ DATA MSGA/,< C 'A',' ','-',' ',00.4!%04'C','h','a','n','g','e',' ','d','a',< C 't','a',' ','f','o','r','m','a','t',' ','t','o',( C ' ','B','i','n','a','r','y', C "15, C "12/ DATA MSGB/)< C 'B',' ','-',' ','S','e','t',' ','t','h','e',' ','B',< C 'R','E','A','K',' ','c','h','a','r','a','c','t', c 'e','r', C "15,"15, C "12/ DATA MSGC/,< C 'C',' ','-',' ','C','O','P','Y',' ','M','o','d','e', C "15,"15, C "12/ DATA MSGD/S; C 'D',' ','-',' ','D','e','l','a','y',' ','t','i','m',,; C 'e',' ','a','f','t','e','r',' ','p','r','o','m',, C 'p','t',, C "15,"15,r C "12/C DATA MSGF/C< C 'F',' ','-',' ','R','e','c','e','i','v','e',' ','a',< C ' ','f','i','l','e',' ','f','r','o','m',' ','R',< C 'E','M','O','T','E',' ','c','o','m','p','u','t', C 'e','r', C "15,"15, C "12/ DATA MSGE/,< C 'E',' ','-',' ','E','C','H','O',' ','r','e','c','e',< C 'i','v','e','d',' ','a','n','d',' ','t','r','a',< C 'n','s','m','i','t','t','e','d',' ','d','a','t', C 'a', C "15, C "12/ DATA MSGH/( C 'H',' ','-',' ','H','E','L','P', C "15, C "12/ DATA MSGI/ < C 'I',' ','-',' ','S','t','o','p',' ','i','n','p','u',8 C 't',' ','f','r','o','m',' ','f','i','l','e', C "15, C "12/ DATA MSGO/C< C 'O',' ','-',' ','S','t','o','p',' ','o','u','t','p',4 C 'u','t',' ','t','o',' ','f','i','l','e', C "15,"15, C "12/ DATA MSGP/,< C 'P',' ','-',' ','C','h','a','n','g','e',' ','p','r',4 C 'o','m','p','t',' ','m','o','d','e','s', C "15,"15, C "12/ DATA MSGR/< C 'R',' ','-',' ','R','e','d','e','f','i','n','e','/',< C 'd','o',' ','N','O','T',' ','r','e','d','e','f',< C 'i','n','e',' ','C','T','R','L',' ','c','h','a', C 'r','s', C "15,"15, C "12/ DATA MSGS/ < C 'S',' ','-',' ','S','t','a','t','u','s',' ','o','f',< C ' ','p','r','o','g','r','a','m',' ','p','a','r',( C 'a','m','e','t','e','r','s', C "15, C "12/ DATA MSGT/,< C 'T',' ','-',' ','T','r','a','n','s','m','i','t',' ',< C 'a',' ','f','i','l','e',' ','t','o',' ','R','E',< C 'M','O','T','E',' ','c','o','m','p','u','t','e', C 'r', C "15, C "12/ DATA MSGU/ < C 'U',' ','-',' ','U','n','d','u','p','l','e','x','/',$ C 'D','u','p','l','e','x', C "15,"15, C "12/ DATA MSG8/,< C '8',' ','-',' ','8','-','B','i','t',' ','m','o','d', C 'e', C "15, C "12/ DATA MSGUP/; C '^',' ','-',' ','E','n','t','e','r',' ','s','u','b',; C 's','t','i','t','u','t','e',' ','C','T','R','L',3 C ' ','c','h','a','r','a','c','t','e','r',t C "15,"15, C "12/C DATA LSTMSG/0,0//CD I=0 10 I=I+1C ICHAR=MSG(I)  IF(ICHAR.EQ.0) RETURN CALL ENQUE(ICHAR) GOTO 10 END'p','l','e','x', C#10 ! READ HICKOK POWER LINE MONITOR20 DIM DP%(12),BU%(1),ST%(2)30 LOAD "LB:[1,202]DIRECT.ATK"'40 DP%(0)=1+8*256 :! DPB CODE AND SIZE45 DP%(1)=2*256 :! IO.RLB50 DP%(2)=4 :! LUN55 DP%(3)=3 :! EVENT FLAG060 CALL "GETADR"(ST%(1),DP%(4)) :!STATUS ADDRESS65 DP%(5)=0 :! NO AST ENTRY070 CALL "GETADR"(BU%(1),DP%(6)) :! BUFFER ADRESS75 DP%(7)=1 :! SIZE80 OPEN #4, "TT46:/RO"100 CALL "DIRECT"(DP%,SX)#110 B=0 : CALL "SPAWNB"("BRE 46",B) 111 SLEEP 3S120 PRINT SX,BU%(1) 130 GOTO 100EAD HICKOK POWER LINE MONITOR20 DIM DP%(12),BU%(1),ST%(2)30 LOAD "LB:[1,202]DIRECT.ATK"'40 DP%(0)=1+8*256 :! DPB CODE AND SIZE45 DP%(1)=2*256 :! IO.RLB50 DP%(2)=4 :! LUN55 DP%(3)=3 :! EVENT FLAG060 CALL "GETADR"(ST%(1),DP%(4)) :!STATUS ADDRESS65 DP%(5)=0 :! NO AST ENTRY070 CALL "GETADR"(BU%(1),DP%(6)) :! BUFFER ADRESS75 DP%(7)=1 :! SIZE80 OPEN #4, "TT46:/RO"100 CALL "DIRECT"(DP%,SX)#110 B=0 : CALL "SPAWNB"("BRE 46",B) 111 SLEEP 3S120 PRINT SX,BU%(1) 130 0068)*,-TADATADATA# .TITLE ICNT HAMMING WEIGHT COUNTER#; FORTRAN IV COMPATIBLED;R(; WRITTEN BY MICHAEL LAMPI JANUARY 1978;B .ENABL AMA ;I<;THIS ROUTINE IMPLEMENTS THE INTEGER*2 BIT COUNTING FUNCTION-;OTHERWISE KNOWN AS A HAMMING WEIGHT FUNCTIONO;IT IS CALLED BY;; RESULT=ICNT(VARIABLE) ;A .GLOBL ICNT R0=%0 R1=%1 R2=%2 R3=%3 R4=%4 R5=%5 SP=%6 PC=%7;ICNT: MOV (R5)+,R4 ;ARGUMENT LIST IN R5... GET # ARGUMENTS.I MOV @(R5),R1 ;GET VARIABLE. CLR R0  CLC ;CLEAR CARRY BIT !20$: ADC R0 ;ADD CARRY BIT TO R0O ROR R1 ;NOW ROTATE THIS WORD BNE 20$ ;DONE?" ADC R0 ;ADD LAST CARRY BIT TO R0 RTS PC ;EXIT WHEN DONE.N .ENDNTS THE INTEGER*2 BIT COUNTING FUNCTION-;OTHERWISE KNOWN AS A HAMMING WEIGHT FUNCTIONO;IT IS CALLED BY;; RESULT=ICNT(VARIABLE) ;A .GLOBL ICNT R0=%0 R1=%1 R2=%2 R3=%3 R4=%4 R5=%5 SP=%6 PC=%7;ICNT: MOV (R5)+,R4 ;ARGUMENT LIST IN R5... GET # ARGUMENTS.I MOV @(R5),R1 ;GET VARIABLE. CLR R0  CLC ;CLEAR CARRY BIT !20& SUBROUTINE INPFIL(ICHAR,ITRANS,ITIME): COMMON/INPFIL/IPTR,IEND,INPSUM,INYBBL,IDELAY,IPRMPT,ISENT% C ,LINE,ICHECK,LEN,IFLAG,NIREC COMMON/DOTCNT/ ICNT LOGICAL*1 LINE(512),IMSG(26) DATA IPTR/0/,LEN/0/ DATA ICNT/0/ DATA IFLAG/0/ DATA IEND/0/? DATA IMSG/"15,"12,'T','r','a','n','s','m','i','s','s','i','o',< C 'n',' ','c','o','m','p','l','e','t','e',"15,"12,0/C IF(ITIME.EQ.3) GOTO 200$ IF((ITRANS.AND."200).NE.0) GOTO 100CC READ AN ASCII FILEC IF(ITIME.NE.2) GOTO 1CO C CHECK FOR A PROMPT CHARACTER IF(ICHAR.LT.0) RETURNBC IF NO FILE BEING RECEIVED AND IN ECHO MODE SEND REMOTE'S REPLYC TO CONSOLE0 IF((ITRANS.AND.1).EQ.0.AND.(ITRANS.AND.4).NE.0)" C CALL ENQUE(ICHAR.AND."177) IF(ICHECK.EQ.0) RETURN0& IF((ICHAR.AND."177).NE.IPRMPT) RETURN)C CHANGED TO ADD STATUS TO CALL, F.BORGER, CALL WAIT(IDELAY,1,ISTAT) ICHECK=0, RETURNCI@C GET A CHARACTER FROM FILE IF WE ARE NOT WAITING FOR A PROMPTC  1 IF(ICHECK.EQ.1) RETURN IF(IPTR.EQ.0) GOTO 5 IF(IPTR.GT.LEN) GOTO 5A ICHAR=(LINE(IPTR).AND."377) IPTR=IPTR+10C QUEUE THIS CHAR IF IN ECHO MODE AND DUPLEXED7 IF((ITRANS.AND."14).EQ."14) CALL ENQUE(ICHAR.AND."177).<C IGNORE RUBOUTS AND LINE-FEEDS IN FILE WHEN IN 7-BIT MODE: IF((ITRANS.AND."40).EQ.0.AND.((ICHAR.AND."177).EQ."12.OR., C (ICHAR.AND."177).EQ."177)) GOTO 1 RETURN,CS"C WE HAVE TO READ A LINE OF TEXTC  5 IF(IEND.NE.0) GOTO 30 ! IF((ITRANS.AND."40).EQ.0) GOTO 9 /C USE A DIRECT-ACCESS READ WHEN IN 8-BIT MODE LEN=512 READ(4'NIREC,END=20) LINE IF(IPTR.NE.0) GOTO 110P IPTR=1  GOTO 1S$C USE FORMATTED READ IN 7-BIT MODE+ 9 READ(4,10,END=20) LEN,(LINE(I),I=1,LEN)N 10 FORMAT(Q,4(128A1))CS/C CHECK TO SEE IF THIS IS THE FIRST TIME THRUICN IF(IPTR.NE.0) GOTO 11C.:C FIRST TIME THRU - IMMEDIATELY SEND THE FIRST CHARACTERCO IPTR=1R GOTO 1 CE 11 ICHAR="15 110 IPTR=1C8C IF IN PROMPTLESS MODE THEN SKIP WAITING FOR A PROMPTC $ IF((ITRANS.AND."400).EQ.0) ICHECK=1CB(C IF IN ECHO MODE SKIP PRINTING OF '-'CE IF((ITRANS.AND."4).NE.0) RETURN IFLAG=IFLAG+1 IF(IFLAG.NE.2) RETURN ICNT=ICNT+1 IF(ICNT.LE.50) GOTO 12L CALL ENQUE("15) CALL ENQUE("12) ICNT=1 12 CALL ENQUE('-')H IFLAG=0 RETURNECR2C PUT OUT A FINAL CARRIAGE-RETURN AT END OF FILEC 20 IEND=1" IF((ITRANS.AND."40).NE.0) GOTO 30 ICHAR="15 RETURN1CC'C WE ARE AT END OF FILE - NOTIFY USERMCE 30 DO 31 I=1,25 IDUMMY=IMSG(I)M 31 CALL ENQUE(IDUMMY) CALL CLSFIL(2,ITRANS) ICHAR=-1  IEND=0  LEN=0 IPTR=0' RETURNICIC BINARY FORMAT FILE TRANSFERGCL 100 RETURNACE!C TERMINATE INPUT FILE TRANSFERLC0# 200 IF((ITRANS.AND.2).EQ.0) RETURNN GOTO 30 END1 12 CALL ENQUE('-')H IFLAG=0 RETURNECR2C PUT OUT A FINAL CARRIAGE-RETURN AT END OF FILEC 20 IEND=1" IF((ITRANS.AND."40).NE.0) GOTO 30 ICHAR="15 RETURN1CC'C WE ARE AT END OF FILE - NOTIFY USERMCE 30 DO 31 I=1,25 IDUMMY=IMSG(I)M 31 CALL ENQUE(IDUMMY) CALL CLSFIL(2,ITR00>4!%04I$$AS=0D; THESE SUBROUTINES REPLACE THE ITTINR & ITTOUR SUBROUTINES IN RT-11C; FORTRAN. NOTE THAT THE QIO ATTACH IS USED TO INTERCEPT CHARACTERS; TYPED IN AT THE KEYBOARD.;8; USES STANDARD QIO FUNCTION IO.ATA TO ATTACH TO 'LOCAL'9; TERMINAL WITH AN ASYNCHRONOUS TRAP TO (HOPEFULLY) CATCH; ALL THE INPUT CHARACTERS.;9; EDITS: 01 F.BORGER CALL TTSYM$ TO DEFINE TC.XXX OFFSETS+; CAUSE THEY'RE DIFFERENT, RESTORE SOME ; MORE TC.XXX VALUES ON EXIT;3; 02 F.BORGER CLEAR WRITE FLAG IN AST CODE SO DONTU; LOOP CONTINUALLY;R9 .MCALL QIOW$,CLEF$S,ENAR$S,DSAR$S,ALUN$,QIO$,DIR$,ASTX$SO .MCALL WTSE$S .MCALL WSIG$S,WTLO$S,SETF$S;  .GLOBL ITTINR .GLOBL ITTOUR .MCALL MRKT$S,CLEF$S,CMKT$S .MCALL TTSYM$0 TTSYM$ ;MAKE SURE WE USE RIGHT TC.XXX VALUES;L ; MAIN WAIT FOR EVENT SUBROUTINE;S .GLOBL WLOSWLOS:./ MRKT$S #11.,#6.,#1 ;WAIT 6 TICKS (0.1 SEC) MAX ( WTLO$S 0,#3700 ;WAIT FOR EF 7-11. (ANY) CMKT$S #11.# RTS PC ;REPLACES OLD WSIG$S CALLSR.PAGEW.SBTTL MAIN TI OUTPUT CODE;BITTOUR: CMP #-10.,@2(R5) ;SEE IF FIRST PARAMETER IS 'SETUP' (-10.)* BNE OUTPUT ;NOPE - JUST PLAIN OLD OUTPUT;G# .IF DF,I$$AS ;ONCE ONLY SETUP CODEG;DON'T ATTACH FOR AST ON OTHER TERMINAL IN IAS... USE READ QIO$ INSTEAD; .IFFR7 DIR$ #QIOATA ;NOW ATTACH TO THE TERMINAL & SET UP ASTU BCS ATAERR ;ERROR!!??! .IFT. .MCALL TCSMC$ TCSMC$I(; CTC$T CLAIM ;GET ^C NOTIFICATION HERE@;USE CONTROL-X IN IAS INSTEAD OF CONTROL C FOR LOCAL ACTIVATION.(;(JUST TOO BAD TO LOSE 1 MORE CHARACTER) .ENDC5 DIR$ #QIOSET ;SET CHARACTERISTICS FOR USER TERMINALS BCS SETERR, CLEF$S #7 ;LEAVE EVENT FLAG OFF AFTERWARDS! CLR R0 ;RETURN SUCCESS CODE (0)D.RETRN1: RTS PC ;AND RETURN TO CALLING PROGRAM;. .IF NDF,I$$AS+ATAERR: MOV #3,R0 ;3 IS THE ATTACH FAILURET BR RETRN1 .ENDC; (SETERR: MOV #4,R0 ;4 IS THE SET FAILURE CLEF$S #7 BR RETRN1.PAGE .SBTTL TERMINAL (TI) QIO'S, ETC;E .IF NDF,I$$AS=QIOATA: QIOW$ IO.ATA,5,,150,,, ; ** IAS MAKE IT QIOW$  .ENDCCQIOSET: QIOW$ SF.SMC,5,7,150,,, ; ** IAS MAKE IT QIOW$TSETBUF: .IF NDF,I$$AS .BYTE TC.NEC,1 ;NO ECHO .IFFF; .BYTE TF.RNE,1 ;NO ECHOS .BYTE TC.BIN,1 ;BINARY INPUTC .ENDC# .BYTE TC.SMR,1 ;UPPER & LOWER CASEF .BYTE TC.FDX,1 ;FULL DUPLEX#; .BYTE TC.P8B,1 ;8 BIT CHARS (IAS)."; .BYTE TC.8BC,1 ;8-BIT CHARACTERS, .BYTE TC.RAT,1 ;READ WITH TYPE-AHEAD BUFFER) .BYTE TC.WID,255. ;255. CHARACTER BUFFERF SETL=.-SETBUFA; CLRBUF:A .IF DF,I$$ASP& .BYTE TC.FDX,0 ;RESET FULLDUPLEX ATTR. .BYTE TC.RAT,2 ;RESTORE REESE READ-AHEAD TYPE0 .BYTE TC.WID,80. ;ASSUME SOROC TYPE SCOPE WIDTH .BYTE TC.BIN,0C .IFFF& .BYTE TC.NEC,0 ;NO ECHO RESET TO ECHO .ENDCCLRBFL=.-CLRBUF. .EVEN;E.QIOCLR: QIOW$ SF.SMC,5,7,150,,,;L .IF NDF,I$$AS$QIO: QIO$ IO.WAL,5,10.,150,,,<0,1,0>;C)READ: QIOW$ IO.RAL!TF.RNE,5,7,150,,,<0,0>R;  .IFFP)QIO: QIO$ IO.WAL,5,10.,150,,WRAST,<0,1,0>A;TQIOKIL: QIOW$ IO.KIL,5,14. .ENDC;A.PAGED.SBTTL MAIN TI OUTPUT CODE;T1; COMES HERE IF ALL THAT'S WANTED IS OUTPUT TO TIA;H'OUTPUT: CLR R0 ;INITIALIZE RETURN CODE 7 TST @2(R5) ;SEE IF SOME ACTION OTHER THAN DUMP WANTED,0 BPL DUMP ;MUST WANT TO REALLY DUMP A CHARACTER9 CMP #-2,@2(R5) ;SEE IF AST RECOGNITION IS TO BE DISABLED> BEQ DISABL ;YESS;I! ENAR$S ;ENABLE AST RECOGNITION RTS PC ;THEN RETURNT;N)DISABL: DSAR$S ;DISABLE AST RECOGNITIONO) DIR$ #QIOCLR ;RESET TERMINAL ATTRIBUTES 0 DIR$ #QIOKIL ;KILL OUTSTANDING READS F.B. FIX RTS PC ;THEN RETURN ;E .IF DF,I$$ASHTRIES: .WORD 0 .ENDCDUMP:H .IF DF,I$$AS0 CLR TRIES5DUMP2: INC TRIES ;COUNT HOW LONG WE TRIED FOR OUTPUTT .ENDC .IF NDF,I$$AS" CLEF$S #10. ;GET THE EVENT FLAGS/ CMPB #IS.SET,$DSW ;SEE IF EVENT FLAG 2 WAS SETS4 BEQ DUMPIT ;YES - I/O COMPLETE - OK TO SHIP IT OFF:;IF OUTPUT INCOMPLETE, WAIT AND SHIP NEXT CHAR OUT ANYWAY. JSR PC,WLOS; WSIG$S .IFFO;IAS AWAIT STUFF FREE UP" CLEF$S #10. ;GET THE EVENT FLAGS TST WRTGOI ;ANY I/O STARTED? BEQ DUMPIT ;IF NOT START SOM00F8)*,-TADATADATAE.4;DISALLOW FURTHER STUFF NOW. WAIT A BIT BEFORE CHECK WSIG$SC JSR PC,WLOS- CMP WRTGOI,#7 ;ALLOW 7 QIO'S OUTSTANDING MAXU% BLO DUMPIT ;IF THAT IS OK, GO AHEAD./ ENAR$S ;ELSE BE SURE THE ASTS CAN BE HANDLEDF* CMP TRIES,#7 ;ALLOW EVENTUAL SUCCESS (??) BLO DUMP2 ;THEN FORGET ITO CLR TRIES) CLR WRTGOI ;(MAYBE WE MADE A MISTAKE??)A" BR DUMPIT ;JUST GO AHEAD WITH IT .ENDC+; BR DUMPIT ;THEN JUST STUFF IT OUT ANYWAYE; DEC R0 ; RTS PC ;OLD ACTION RETURNED -1;Q/DUMPIT: MOV #1,QIO+Q.IOPL+2 ;MOVE BUFFER LENGTHT- MOV 2(R5),QIO+Q.IOPL ;MOVE ADDRESS OF BUFFERR .IIF DF,I$$AS, INC WRTGOI' CLR R0 ;RETURN ALL'S WELL SIGNAL TOO.  DIR$ #QIO ;NOW WRITE IT OUTA RTS PC ;THEN RETURN .IF DF,I$$ASD;F; AST SERVICE FOR IAS TI WRITE;C'WRTGOI: .WORD 0 ;NO OUTSTANDING WRITESCWRAST: DEC WRTGOIO& BGT 1$ ;COUNT DOWN OUTSTANDING QIO'S CLR WRTGOIO1$:D); CLEF$S #10. ;CLEAR EVENT FLAG F.B. FIXT .MCALL ASTX$S! TST (SP)+ ;POP OFF IOSB ADDRESSR ASTX$S ;EXIT THE ASTO .ENDC.PAGE+..SBTTL INPUT FROM TI AST SERVICE (NOT FOR IAS); ;R; ?; THE FOLLOWING ROUTINE HANDLES THE ASYNCHRONOUS TRAP FOR INPUTL;I .GLOBL INPCHR/INPCHR: .WORD 0 ;CHARACTERS IN, NOT READ BY PGM  .IF NDF,I$$ASBINPAST: CMP IEND,#100.+BUFF ;SEE IF AT END OF 100 CHARACTER BUFFER BLO 5$ ;IF BELOW IT, LET BY.; BNE 5$ ;NOPEN/ MOV #BUFF,IEND ;YUP - SET POINTER TO BEGINNINGL/5$: INC IEND ;POINT TO NEXT POSITION IN BUFFERS; CMP IPTR,IEND ;SEE IF DE-QUEUEING POINTER AT THIS POSITION ' BEQ OVRFLO ;YUP - WE HAVE AN OVERFLOWI! INC INPCHR ;COUNT CHARACTERS IN=GETCHR: MOVB (SP)+,@IEND ;MOVE CHARACTER FROM STACK TO BUFFERN. SETF$S #15 ;SET E.F. 15 AS SIGNAL ALL'S HERE ASTX$S ;RETURN FROM AST;F+;OVRFLO: TRAP ;ABORT FOR TESTING PURPOSESIOVRFLO: WSIG$S WSIG$S  WSIG$SB DEC IEND ;DISALLOW WWRAPAROUND" BR GETCHR ;JUST IGNORE (FOR NOW) .ENDC.PAGE .SBTTL TI INPUT CODE; ;I-WREAD: QIOW$ IO.RAL!TF.RNE,5,7,150,,,; WRBF: .WORD 0 ;BUFFER FOR READIN<UWREAD: QIO$ IO.RAL!TF.RNE,5,7,150,,, ;UNWAITED READ)RFG: .WORD 0 ;READ ISSUED FLAG IF NONZEROP .MCALL WSIG$SITTING::0;ENTRY TO GET A CHARACTER (WAITING IF NECESSARY);G .IF NDF,I$$AS' CMP IEND,IPTR ;ANY DATA THERE ALREADY?T BNE ITTINR ;YES, GET ITR*; CLEF$S #15 ;ZERO EVENT FLAG & AWAIT AST" WTSE$S #15 ;WAIT TILL IT ARRIVES .IFFR(;IAS, JUST READ AND WAIT FOR A CHARACTER# TST RFG ;ANY READ ISSUED ALREADY?Q BEQ 1$ ;IF NOT GO ISSUE ONER WTSE$S #7 ;IF SO WAIT FOR IT BR 2$ ;AND DELIVER THE GOODS-1$: DIR$ #WREAD ;NONE ISSUED...READ AND WAITO$2$: MOVB WRBF,R0 ;GET THE CHARACTER$ BIC #177400,R0 ;MASK TO 8 BITS ONLY' CLR RFG ;SAY NO READS OUTSTANDING NOW. RTS PC$ .ENDC ITTINR: ; .IF NDF,I$$AS) CMP IEND,IPTR ;SEE IF ANYTHING IN BUFFERF BNE 5$ ;YES - CONTINUE) MOV #-1,R0 ;NO - SET NOTHING THERE FLAGV3 JSR PC,WLOS ;AWAIT SOME SIGNIFICANT ACTION FOR US WSIG$S ;LET HIM WAIT A BITA RTS PC ;RETURN5$: CLEF$S #15 ;ZERO AST FLAG2 CMP IPTR,#100.+BUFF ;SEE IF AT END OF RING BUFFER BNE 10$ ;NO 3 MOV #BUFF,IPTR ;YES - RESET TO BEGINNING OF BUFFERT'10$: INC IPTR ;POINT TO NEXT CHARACTER8 MOV IPTR,R0 ;GET POINTER MOVB (R0),R0 ;GET CHARACTERP/ BIC #177400,R0 ;KNOCK OFF ANY HIGH-ORDER STUFF,$ DEC INPCHR ;COUNT DOWN CHARS TO DO BGE 15$ CLR INPCHR ;CLAMP TO +15$: .IFFI?;IAS READ QIO$ HERE FOR 1 CHARACTER OR RETURN (AFTER WLOS CALL)U ;WITH R0=-1  TST RFG ;ANY READS STARTED?; BNE 1$ ;IF SO JUST SEE IF DONE$ DIR$ #UWREAD ;IF NOT START ONE NOW INC RFG ;SAY ONE IS GOING 81$: ;NOW CHECK FOR READ DONE (COULD HAVE BEEN INSTANT) .MCALL CLEF$S CLEF$S #7 ;CLR FLAG 78! CMPB #IS.SET,@#$DSW ;WAS IT SET? ' BNE 3$ ;IF NOT, WAIT A BIT AND RETURN ) MOVB WRBF,R0 ;IF SO, GRAB THE CHARACTERH" BIC #177400,R0 ;ZAP HIGH BITS OFF' CLR RFG ;AND SAY READ NOT IN PROGRESS BR 4$ ;THEN RETURN63$: JSR PC,WLOS ;ELSE WAIT A BIT FOR THINGS TO HAPPEN4 WSIG$S ;ALSO AWAIT SIG EVENT NEXT (FOR GOOD LUCK)# MOV #-1,R0 ;SAY NOTHING THERE YETS4$: ;COMMON RETURN .ENDC00NOR04 RTS PC ;THEN RETURNW;EIPTR: .WORD BUFFIEND: .WORD BUFFBUFF: .BLKB 102. .WORD 0,0,0,0 ;SAFETY SPARES;P .ENDET,@#$DSW ;WAS IT SET? ' BNE 3$ ;IF NOT, WAIT A BIT AND RETURN ) MOVB WRBF,R0 ;IF SO, GRAB THE CHARACTERH" BIC #177400,R0 ;ZAP HIGH BITS OFF' CLR RFG ;AND SAY READ NOT IN PROGRESS BR 4$ ;THEN RETURN63$: JSR PC,WLOS ;ELSE WAIT A BIT FOR THINGS TO HAPPEN4 WSIG$S ;ALSO AWAIT SIG EVENT NEXT (FOR GOOD LUCK)# MOV #-1,R0 ;SAY NOTHING THERE YETS4$: ;COMMON RETURN .ENDC SUBROUTINE OPNGET(ITRANS): COMMON/INPFIL/IPTR,IEND,INPSUM,INYBBL,IDELAY,IPRMPT,ISENT- C ,LINEI(256),ICHECK,LENI,IFLAGI,NIRECR LOGICAL*1 INAME(30) DATA INAME/30*0/ ?C CHECK IF A FILE IS ALREADY OPEN FOR INPUT - IF SO, CLOSE ITT IF((ITRANS.AND.2).EQ.0) GOTO 5R CALL CLSFIL(2,ITRANS)C C TRANSMIT A FILE TO REMOTEZCI 5 TYPE *,' 'S+ IF((ITRANS.AND.4).NE.0) TYPE *,'ECHO Mode' / IF((ITRANS.AND."200).EQ.0) TYPE *,'ASCII Data'T0 IF((ITRANS.AND."200).NE.0) TYPE *,'Binary Data'. IF((ITRANS.AND."40).NE.0) TYPE *,'8-Bit Mode'- IF((ITRANS.AND."20).NE.0) TYPE *,'COPY Mode'T4 IF((ITRANS.AND."400).NE.0) TYPE *,'PROMPTLESS Mode' WRITE(5,10) "15,"12- 10 FORMAT('$',2A1,'To REMOTE: (Filename)? ')OC READ A FILE NAME DO 12 I=1,30( 12 INAME(I)=0 CALL READST(INAME,LEN,29)$C READ(5,13,ERR=19,END=19) LEN,INAMEC 13 FORMAT(Q,30A1), IF(LEN.LT.1) RETURN C INAME(30)=0,< IF((ITRANS.AND."200).NE.0.OR.(ITRANS.AND."40).NE.0) GOTO 204 OPEN (UNIT=4,NAME=INAME,TYPE='OLD',READONLY,ERR=30) 17 ITRANS=ITRANS + 2) IEND=08 ICHECK=0 INPSUM=0. INYBBL=0. IPTR=0, 19 RETURNCI5C OPEN A DIRECT-ACCESS FILE TO TRANSFER BINARY DATAI 20 NIREC=0"C DEFINE FILE 4 (0,256,U,NIREC):< OPEN(UNIT=4,NAME=INAME,TYPE='OLD',READONLY,ACCESS='DIRECT', C RECORDSIZE=128,ERR=30) GOTO 170C NOW PRINT AN ERROR MESSAGE IF FILE NOT FOUND 30 TYPE *,' '$ TYPE *,'***** FILE NOT FOUND *****' RETURN0 END.OR.(ITRANS.AND."40).NE.0) GOTO 204 OPEN (UNIT=4,NAME=INAME,TYPE='OLD',READONLY,ERR=30) 1 SUBROUTINE OPNPUT(ITRANS,ICHAR); COMMON/OUTFIL/ILINE(512),IPOS,IOTSUM,IONYBL,NOREC,IFLG,LEN  LOGICAL*1 INAME(30),ILINE DATA INAME/30*0/D:C CHECK IF A FILE IS ALREADY OPEN - IF SO, THEN CLOSE IT IF((ITRANS.AND.1).EQ.0) GOTO 5O CALL CLSFIL(1,ITRANS)CC1C SET UP A FILE TO RECEIVE DATA FROM THE UNIVACNCR 5 TYPE *,' 'I/ IF((ITRANS.AND."100).EQ.0) TYPE *,'ASCII Data' 0 IF((ITRANS.AND."100).NE.0) TYPE *,'Binary Data'. IF((ITRANS.AND."40).NE.0) TYPE *,'8-Bit Mode'+ IF((ITRANS.AND.4).NE.0) TYPE *,'ECHO Mode'T- IF((ITRANS.AND."20).NE.0) TYPE *,'COPY Mode'I WRITE(5,10) "15,"12/ 10 FORMAT('$',2A1,'From REMOTE: (Filename)? ')0 DO 12 I=1,30  12 INAME(I)=0 CALL READST(INAME,LEN,29)$C READ(5,13,ERR=19,END=19) LEN,INAMEC 13 FORMAT(Q,30A1)N IF(LEN.LT.1) RETURN C INAME(30)=0D IPOS=0T IOTSUM=0 IONYBL=0  ITRANS=ITRANS + 1 NOREC=1C09C IF IN ASCII 7-BIT MODE, OPEN A SEQUENTIAL OUTPUT FILE'Ca# IF((ITRANS.AND."140).EQ.0) GOTO 20TC DEFINE FILE 7 (0,256,U,NOREC)NA OPEN(UNIT=7,NAME=INAME,ACCESS='DIRECT',TYPE='NEW',RECORDSIZE=128C C ,BUFFERCOUNT=2,ERR=30) 19 RETURNC'!C OPEN A SEQUENTIAL OUTPUT FILEC A 20 OPEN(UNIT=7,NAME=INAME,ACCESS='SEQUENTIAL',TYPE='NEW',ERR=30,, C CARRIAGECONTROL='LIST')R RETURN1CC ERROR IN OPENING THE FILE0CD2 30 TYPE *,' *** ERROR IN OPENING OUTPUT FILE ***' ITRANS=ITRANS.AND."177776 RETURNI END, OPEN A SEQUENTIAL OUTPUT FILE'Ca# IF((ITRANS.AND."140).EQ.0) GOTO 20TC DEFINE FILE 7 (0,256,U,NOREC)NA OPEN(UN& SUBROUTINE OUTFIL(ICHAR,ITRANS,INOUT)> COMMON/OUTFIL/ ILINE(512),IPOS,IOTSUM,IONYBL,NOREC,IFLGO,LENO COMMON/DOTCNT/ IDOT# LOGICAL*1 ILINE,IMSG(20),IBUF(512), INTEGER IBUFER(2),PTR? DATA IMSG/"15,"12,'R','e','c','e','i','v','e',' ','c','o','m',T$ C 'p','l','e','t','e',"15,"12/ DATA IPOS/0/,IFLG/0/,IDOT/0/I"C CHECK FOR TERMINATION OF INPUT IF(INOUT.EQ.3) GOTO 200$C CHECK IF IN BINARY TRANSFER MODE# IF((ITRANS.AND."100).NE.0) GOTO 30OC28C IF CALLED FROM 1ST SPOT IN MAIN AND NOT 00W])*,-TADATADATAIN COPY MODE,C AND NO CHARACTER AVAILABLE THEN RETURNCN IF(ICHAR.LT.0) RETURN0 IF(INOUT.EQ.1.AND.(ITRANS.AND."20).EQ.0) RETURNCI0C IGNORE RUBOUTS AND NULLS IN ASCII 7-BIT MODECT! IF((ITRANS.AND."40).NE.0) GOTO 5' I=(ICHAR.AND."177)' IF(I.EQ."177.OR.I.EQ.0) RETURN1C1.C CHECK FOR LINE-FEEDS - DON'T PLACE IN FILECE IF(ICHAR.EQ."12) GOTO 8C.C CHECK FOR CARRIAGE-RETURN 8C MUST WRITE TO OUTPUT FILE IF WE HAVE CARRIAGE RETURNC2 IF(ICHAR.NE."15) GOTO 5C 8C IF THIS LINE IS NULL (IPOS=0) PUT A NULL IN 1ST CHARCE IF(IPOS.EQ.0) ILINE(1)=0.C0"C WRITE A LINE OF OUTPUT TO FILECD! 3 WRITE(7,7) (ILINE(I),I=1,IPOS)R 7 FORMAT(4(128A1))S IPOS=0  GOTO 8C( 5 IPOS=IPOS+1 ILINE(IPOS)=ICHAR'C IF IN ECHO MODE THEN ECHO THIS CHAR), 8 IF((INOUT.EQ.2.AND.(ITRANS.AND."4).NE.0))" C CALL ENQUE(ICHAR.AND."177)# IF((IPOS/100)*100.EQ.IPOS) GOTO 20R IF(IPOS.LT.512) RETURN CP>C IF SEQUENTIAL FILE FOR OUTPUT, LINES MUST BE LESS THAN 512C CHARACTERS IN LENGTHCL" IF((ITRANS.AND."140).EQ.0) GOTO 3CI 10 WRITE(7'NOREC) ILINE 15 IPOS=00 20 IF((ITRANS.AND.4).NE.0.OR.INOUT.EQ.4) RETURNCI'C SKIP PRINTING DOTS IF OPTION IS SET= 25 IFLG=IFLG+1 IF(IFLG.NE.2) RETURNI IFLG=0R IDOT=IDOT+1 CALL ENQUE('.') IF(IDOT.NE.50) RETURN CALL ENQUE("15) CALL ENQUE("12) IDOT=0L RETURNHCA6C IN BINARY MODE - DECODE THIS STUFF AND PUT IN FILE 30 TYPE *,'NOT YET SUPPORTED' RETURNI 32 IF(INOUT.EQ.1) GOTO 100L<C IF ILLEGAL CHARACTER RECEIVED IGNORE IT WHEN B/4 COL. 730 IF((ICHAR.AND."160).EQ.0.AND.IPOS.LT.37) RETURN IF(ICHAR.EQ."15) GOTO 50D IOTSUM=IOTSUM+(ICHAR.AND."17) IF(IONYBL.EQ.2) GOTO 35 IPOS=IPOS+1 IONYBL=2F ILINE(IPOS)=(ICHAR.AND."17)*16I GOTO 40 35 IONYBL=1( ILINE(IPOS)=ILINE(IPOS)+(ICHAR.AND."17) IF(IPOS.EQ.512) GOTO 10CUC1$ READ(7'(IADDR/1024+1),ERR=39) ILINE 36 DO 38 I=MOD(IADDR,512)+1,LEN J=I/2 IF((I.AND.1).EQ.0) GOTO 37R* ILINE(J)=(ILINE(J).AND."177400) + IBUF(I) GOTO 38/ 37 ILINE(J)=(ILINE(J).AND."377) + IBUF(J)*"400 38 CONTINUE WRITE(7'(IADDR/1024+1))DC***** 39 IS USED TO INITIALIZE THE ILINE ARRAY FOR WRITING BINARY#C***** DATA (ILINE(I)=0 I=1 TO 512P 39 CONTINUECCI!C BUFFER IS FULL - WRITE IN OUT 40 RETURNC1+C WE GOT A - SET UP RESPONSE MESSAGEI 50 IBUFER(2)="15  PTR=1" IF((IOTSUM.AND."17).NE.0) GOTO 55 IBUFER(1)='A' RETURND 55 IBUFER(1)='N'2 IPOS=ISTRT19C****** MUST BACKSPACE FILE TO PROPER POSITION(SOMETIMES)) RETURN8C3!C SEND A(CKNOWLEDGE) OR N(ACK) UC) 100 IF(PTR.EQ.0) RETURN ICHAR=IBUFER(PTR) PTR=PTR+1 IF(PTR.EQ.3) PTR=0Z RETURNNCRC TERMINATE A TRANSMISSIONCA# 200 IF((ITRANS.AND.1).EQ.0) RETURNN CALL CLSFIL(1,ITRANS) DO 210 I=1,20 IFLG=IMSG(I)U 210 CALL ENQUE(IFLG)R RETURNP ENDNSE MESSAGEI 50 IBUFER(2)="15  PTR=1" IF((IOTSUM.AND."17).NE.0) GOTO 55 IBUFER(1)='A' RETURND 55 IBUFER(1)='N'2 IPOS=ISTRT19C****** MUST BACKSPACE FILE TO PROPER POSITION(SOMETIMES)) RETURN8C3!C SEND A(CKNOWP #L P . +#MM P #+ #MMMM P YMM$+++MM. #MMMMMMM P MMMMD+IMMM$. #MM.. .M. P MMMM MMMM$.IMQ$.... , ..+-- .-. P MMMML <<< COMMON/INPFIL/ INPTR,INEND,INPSUM,INYBBL,IDELAY,IPRMPT,ISENT,' C LINEI,ICHECK,LENI,IFLAGI,NIRECT LOGICAL*1 MSG2(21)T? DATA MSG2/'P','r','o','m','p','t','l','e','s','s',' ','t','r',U) C 'a','n','s','m','i','t',"15,"12/A# IF((ITRANS.AND."400).EQ.0) GOTO 105 ITRANS=(ITRANS.AND."177377) WRITE(5,5)C! 5 FORMAT($,' Prompted transmit')0 WRITE(5,6) "15,"12C. 6 FORMAT($,1X,2A1,'Enter prompt character: ') 7 I=ITTING(IDUMMY)= IF(I.LT.0) GOTO 7 IPRMPT=IN CALL ENQUE(I) CALL ENQUE("15) CALL ENQUE("12) RETURN,CS 10 ITRANS=ITRANS+"400 DO 15 I=1,21 J=MSG2(I) 15 CALL ENQUE(J)T RETURNL END2(21)T? DATA MSG2/'P','r','o','m','p','t','l','e','s','s',' ','t','r',U) C 'a','n','s','m','i','t',"15,"12/A# IF((ITRANS.AND."400).EQ.0) GOTO 105 ITRANS=(ITRANS.AND."177377) WRITE(5,5)C! 5 FORMAT($,' Prompted transmit')0 WRITE(5,6) "15,"12C. 6 FORMAT($,1X,2A1,'Enter prompt character: ') 7 I=ITTING(IDUMMY)= IF(I.LT.0) GOTO 7 IPRMPT=IN CE*********************************************************************BE* * E* README.XMT XMITR PROGRAM *CE* * E* If you have any problems with or questions about XMT *EE* please contact: *E* *E* Michael D. Lampi **E* McDonnell Douglas Corporation * E* mail location 35-44 * E* 3855 Lakewood Blvd. * E* Long Beach, Cal. 90846 *tE* telephone (213) 593 - 2029 * E* * E********************************************************************* 5XMTBLD.CMD Command file to assemble & task build XMTi ABREAK.FTN ASCII8.FTN BREAK.FTN CLSFIL.FTN COPYMD.FTN CTLCHR.FTN CTLSUB.FTN DELAY.FTN ECHO.FTN ENQUE.FTN5 FORMAT.FTNHELP.FTN INPFIL.FTN OPNGET.FTN OPNPUT.FTN OUTFIL.FTN PROMPT.FTN READST.FTN REDEF.FTN SETUP.FTNt STATUS.FTN STOPIT.FTN XMITR.FTN1;GETSQ.MAC (Just as written in the FORTRAN-IV User's Guide) ICNT.MAC; The following MACRO-11 subroutines may have to be tailored** to correspond to your respective systems. ITTOUR.MAC TTYOUT.MAC TWAIT.MACbB This version of XMT has been modified by Glenn Everhart to run on< IAS and to have lower CPU overhead. Its IAS code is (I hope? fully) conditioned by I$$AS, so it may work on 11M systems tooN; (where some considerable effort to reduce its overhead was= made), but no guarantees. Use the original submission if you ; can't get this to work on 11M, or retailor stuff yourself.M= All tests were done with the full duplex drivers. In IAS you = must set the terminal you'll communicate over as /FULLDUPLEX- and as /BINARY yourself, using commands likenPDS>>SET /UIC=[1,1]IPDS>>TER TTn:/FULLDUPLEXPDS>>TER TTn:/BINARYPDS>>TER TTn:/WIDTH:132t@ to get it set up. That terminal will NOT be logged in in normal= use. XMT will set your terminal fullduplex and binary, so beg< prepared to set it back if you have a crash. You'll have to= experiment with prompted/promptless transmission, duplexing, ; and other toggles a bit to get things working most likely. @ For a bit more background, this program was originally designedA to run in an RT-11 environment using DL-11W's for communication.U> It was then transported over to RSX-11M 3.1 using DZ-11's and> 212 modems. No loss of information was found at speeds of 300= baud when talking with ANY system, but PDP-11/70's were ablee= to out-talk our poor 11/34 at 1200 baud and cause us to loser< information, but usually only when XMT was checkpointed for< exten00)*,-TADATADATAded lenghts of time. Under RSX-11M v3.2 a few features@ were added to the ITTOUR.MAC and INPTT1.MAC subroutines to make; use of a few v3.2 TT: driver features, such as full-duplexi: and 8-bit characters. This program has been successful in: receiving and transmitting at rates up to 4800 baud on an8 11/34 system (under v3.1) with no data loss. Under v3.2. there should be no loss of data at any speed.at 1200 baud and cause us to loser< information, but usually only when XMT was checkpointed for< exten! SPRING 1981 [312,315] COLLECTIONv4 This submission contains a DDT with many extensionsDand the ability to handle debugs from a separate task under RSX/IAS.BIt also contains two tape control programs, one able to read files<from Data General RDOS tapes (DGT) and another able to write9files that can be read by RDOS on Data General equipment.nIAn earlier version without ability to read DG generated tapes is includeduCas BIGTAPE. All functions are in DGT, which can handle 7 or 9 trackt DG tapes.t DDT FROM A SEPARATE TASKL; (ALSO STILL WORKS AS PART OF YOUR TASK; BOTH VERSIONS HAVEo MANY NEW FUNCTIONS)> DDT is able to debug one task from another now, symbolically.AThat is, this version of DDT may be built as a separate task andeEthe task being debugged is then linked with a small (about 200 words)bBDDT "kernel" (called, appropriately enough, DDTKNL) which controlsEexecution. DDT itself does most of the work of debugging and supportsr>a very large and powerful array of commands. These include theDability to read symbol table files, memory watchpoints, breakpoints,Csingle stepping, examining numbers in any format including floatingoHpoint, setting variables, defining labels, looking at assembly language,Kor examining memory image files. The ability to examine core image files isaEpresent to permit DDT to be used (reading the symbol table) to allowhEan effective SYMBOLIC OPEN on RSX11M.SYS files or TASK IMAGE files ora@crash dump files. (Yes, you may now pretty much discard ZAP onceDDT is installed.)= DDT can debug several tasks at a time, keeping separate setsiBof breakpoints, conditional breakpoint controls, watchpoints, etc.Gfor each task being debugged (up to a limit set at the time of assemblyFof DDTMU by setting a number of tasks; the initial maximum is 16 tasksFat a time). It uses the debug kernel to control breakpoints. To accessCtask space, it can either do its own mapping (fairly fast but a bitl@dangerous in a heavily swapping system), or use the debug kernelGalso for that (slower, but safe and not noticeable except during singlenCstepping or searches). User control of the options is at runtime iftAthey are included at assembly time. It is possible to build a DDTtJthatdoes not have access to arbitrary system memory and runs nonprivilegedin case that is desired.> All normal DDT options for building DDT in with your task are@still present, and there is no difference of commands in the twoflavors of DDT.a; A simple code profiler is included in DDT which allows youtAto specify a base address to "profile" (PRFBAS) and a shift countp?to shift addresses down. If DDT is put into single step mode, aADDT array called PRFHST will be incremented in the bin determined?by the PC of the instruction. The calculation finds the word torDincrement by computing (PC-PRFBAS) shifted down by the "shift count"Ebits. If the result fits into PRFHST, the PRFHST word is incremented. ?Normal DDT commands may be used to display PRFHST after you get the program to stop.; To generate DDT, type @DDTBLD and answer the questions. InS@IAS you will need to use the MCR version of indirect. If this is@installed as ...IND, you can use a command like "IND @DDTBLD" to@run it. Many options are supported, and you can generate DDT forAuse in the task, or in a separate task. The profiler is describeddby the sysgen further.B Because DDT is now able to run in a separate task, it is possible@to do some fancy things like reading symbol tables that were too:costly before. Since many users 00R04are FORTRAN programmers, aBpublic domain program is included which was slightly modified fromAa version at Institute for Cancer Research which can read FORTRANaB.LST files and taskbuilder .MAP files and construct a symbol tableDfile. This program is designed primarily to make the symbol file forHFDT, a FORTRAN debugger that is also included. However, it can also makeAup a pseudo- .STB file that DDT can read and which gives separateeDnames to each FORTRAN line number, statement label (where possible),Eand makes all variable and array names effectively global so DDT will ?know, once it opens the symbol table file, where they are. ThishGpermits DDT to set a breakpoint symbolically on any FORTRAN line numberrDso that you can debug FORTRAN programs symbolically at a fairly highBlevel if you can find as few as 200 words in your task's space forthe debug kernel. @ DDTBLD.CMD will ask questions and allow DDT to be built, in anyGof various flavors, for IAS, RSX11M, or RSX11M+. If you have DOS, RT11,eFHT11, or other systems, DDT will work (though not from a separate taskCand not able to read .STB files), even on an LSI-11. It is a usefulAdebug tool on any PDP11. (For you hackers, there is a conditionalm=assembly in the DDT22.MAC source that allows DDT to treat ISDfFdeclarations like GSD declarations if you can get an .STB file created$that will contain internal symbols.) NOTE TO IAS USERS@ DDT22M is fairly critical if built to allow access to arbitraryEmemory. Because IAS mapping information is stored in task headers all Cover memory, DDT22M MUST be in $UM mode before you start up a DDT Btask so its initial attempt to find the tasks it is debugging will=succeed. If this is not so, it can crash your system. I build2GDDT22M on IAS (using the MCR indirect command processor) with arbitrarytEaccess disabled, which gives a much safer operation, if a bit slower;mDsend/receive data is used as the exclusive path to the target tasks.ARSX11M is a bit safer from DDT22M, but even there I default it tos6use send/receive to avoid shuffling/swapping problems.; I have found that in full timesharing IAS both DDT and the Dtask must run realtime for the suspends and resumes to work. I don'tAknow why, but the workaround is to run both realtime. In IAS 3.1 MByou may be able to build the tasks with the /SR switch to get them@to work. This switch doesn't exist for V3.0. The build file willDask if you have IAS V3.1 and assemble a very VERY silghtly differentDDT22M if you do.,> I don't know if the /SR switch works; IAS V3.1 hasn't arrivedour way at this writing.= DGT and DGWRIT are separate tasks; see the DGWRIT.FLX sourcekF(in FLECS, so the FORTRAN version is supplied for those not having theCFLECS preprocessor in house) to see how to put DGWRIT together. DGT @works off console commands and is pretty much a manual tool. ItsAonly virtue is that it works. There is a file called DGWRT7 whoseyDintent is to allow you to write 7 track tapes a DG machine can read.CDon't mix them; DG does some things differently from DEC on 7 trackr#tape and messing around was needed.T? The FDT and FDTSYM files on the tape are the FORTRAN debuggingCEtool from Institute for Cancer Research, but with the FDTSYM as a modrFof their TRACE program to generate symbol tables. There are rumors theApackage has some problems on 11M systems; should be solid in IAS. > For amusement, I have added also another F4P debug aid calledBFPODT (FPODT and PREPRC are the sources pertaining to FPODT) which@goes through a task image and changes all references to $SEQC toDtraps. A module in your task (which must first call it to initializeEand all of whose FORTRAN programs must be compiled with /TR:ALL) thenc@allows single steps, variable examine/modify, or breakpoints. ItCdoes not allow starting from new places as FDT and DDT do. However,1Fit can be used along with either FDT or DDT. Just depends how much youGare willing to do to find the bugs. FPODT single stepping would go fromtDone trap to the next, so does not need to set the T 00*,-TADATADATAbit and ought toAbe faster than single stepping with FDT or DDT, even in your taskc6image, since it steps FORTRAN lines, not instructions.> The TPCDIR program here can list directories of TPC containerDimages of FLX tapes, and even extract files from such images, one atIa time. The main use is to avoid a separate tape pass to make a directoryowhen making tape copies.D A new version of the MSX system is included. It works under RSX11M+Jnow and has several bugs fixed so that it is much better tested. Note whenFbuilding it that the security categories in MXSTLS should be set up asJyou really want them...the system will block data transfers where militaryMsecurity policy is violated and the present sources are experimental and havexFseveral invalid possible transfers with those security categories. TheHMXTST module is the test program which illustrates its use. It should beEinteresting to those who want to experiment with what trying to use a Hsecure kernel is like, especially on distributed systems. Note the standGalone version is considerably less tested than the RSX version, but thelFbasic mechanisms, mapping, and I/O are known to be good. Be careful ofEusing directives like MODSTT in secure kernel systems; they only workv?from libraries or if your task has "ignore multilevel security"rFprivileges. Also, you need the asynchronous I/O privilege to allow anyEI/O to be logically asynchronous in a secure system. Device ownershipgCmay be implemented by adding a special category for "device" to the :special category list of the device and that of its owner.D Also included is a version of Michael Lampi's XMIT program that hasJbeen built to run under IAS V3. (Should be OK in V3.1 but can't test yet.)JThe IAS code has been mostly conditioned, and the RSX11M version also tookIless CPU than the original. However, RSX11M and RSX11M+ users may have tooHdo a bit of retrofitting. It may be the IAS version will work in 11M tooGbut it's terminal I/O is via read/write, not via AST for input, relying Fon the full duplex driver to keep characters around. Reducing CPU loadhas been a primary concern.c Glenn Everhartrogram that hasJbeen built to run under IAS V3. (Should be OK in V3.1 but can't test yet.)JThe IAS code has been mostly conditioned, and the RSX11M version also tookIless CPU than the original. However, RSX11M and RSX11M+ users may have tooHdo a bit of retrofitting. It may be the IAS version will work in 11M tooGbut it's terminal I/O is via read/write, not via AST for input, relyin$ SUBROUTINE READST(ICHAR,LEN,NCHARS) LOGICAL*1 ICHAR(30) ISTART=1o 1 DO 100 LEN=ISTART,NCHARSn 5 IN=ITTING(IDUMMY) IF(IN.LT.0) GOTO 5b IF(IN.EQ."177) GOTO 50  IF(IN.EQ."15) GOTO 200  IF(IN.GE."40) GOTO 90!C ILLEGAL CHARACTER - RING BELL I=ITTOUR("7)v GOTO 5sCo#C GOT A RUBOUT - DELETE LAST CHAReCR 50 ISTART=LEN-1 ICHAR(LEN)=0t IF(ISTART.GT.0) GOTO 60 ISTART=1b GOTO 1 %C ECHO A BACKSPACE AND RESTART LOOPt 60 I=ITTOUR("10)r GOTO 1,Ct1C LEGAL CHARACTER - PLACE IN BUFFER AND ECHO ITR 90 ICHAR(LEN)=INC I=ITTOUR(IN) 100 CONTINUEDC0;C FULL BUFFER INPUT - SIMULATE A CARRIAGE-RETURN AND EXIT C LEN=NCHARS+1 .C REMOVE LINE-FEED INSERTED BY RT-11 MONITOR 200 I=ITTINR(IDUMMY)  CALL ENQUE("15) LEN=LEN-1 RETURN END5sCo#C GOT A RUBOUT - DELETE LAST CHAReCR 50 ISTART=LEN-1 ICHAR(LEN)=0t IF(ISTART.GT.0) GOTO 60 ISTART=1b GOTO 1 %C ECHO A BACKSPACE AND RESTART LOOPt 60 I=ITTOUR("10)r GOTO 1,Ct1C LEGAL CHARACTER - PL SUBROUTINE REDEF(ITRANS) LOGICAL*1 NODEF(4),RED(10)( DATA NODEF/'N','o',' ',0/2 DATA RED/'R','e','d','e','f','i','n','e',"15,"12/CI$ IF((ITRANS.AND."1000).EQ.0) GOTO 20C DISABLE REDEFINITION ITRANS=(ITRANS.AND."176777) DO 10 I=1,141 J=NODEF(I)1 10 CALL ENQUE(J) RETURNOC ENABLE REDEFINITIONC 20 ITRANS=ITRANS+"10001 DO 30 I=1,10t J=RED(I)T 30 CALL ENQUE(J)T RETURNG END%C ECHO A BACKSPACE AND RESTART LOOPt 60 I=ITTOUR("10)r GOTO 1,Ct1C LEGAL CHARACTER - PL00R04 SUBROUTINE SETUPC-C MODIFIED TO DEFAULT TO TT24 F.BORGER JAN/81 5 WRITE(5,10)3 10 FORMAT (' Initializing operation using TT24: ') C READ(5,20,ERR=5,END=100) ITERMC 20 FORMAT(O2) ITERM="24 J=IOUTT1(-10,ITERM) IF(J.NE.0) WRITE(5,30) 1,J630 FORMAT(2X,O8,' ERROR IN SETUP FOR I/O ROUTINES',O8) J=ITTOUR(-10) IF(J.NE.0) WRITE(5,30) 2,J RETURN 100 STOP END SUBROUTINE STATUS(ITRANS)CI1C PRINTS A STATUS OF CURRENT PROGRAM PARAMETERSoC( COMMON/CTRL/ CTRL(32),IBREAKD LOGICAL*1 CTRL 0 LOGICAL*1 OUTMSG(26),INMSG(28),ECHO(12),DUP(10) LOGICAL*1 COPY(12),PROMPT(24)+ LOGICAL*1 BITMOD(12),PARITY(10),BINARY(14)U% INTEGER NO(2),MARK(4),ODD(3),EVEN(4)R' LOGICAL*1 OUTPUT(8),ASCII(12),INPUT(6),( LOGICAL*1 REDEF(16),BREAK(20),UNDEF(12)CT= DATA OUTMSG/'R','e','c','e','i','v','e',' ','F','i','l','e',N@ C ' ','i','n',' ','p','r','o','g','r','e','s','s',"15,"12/A DATA INMSG /'T','r','a','n','s','m','i','t',' ','F','i','l','e',TE C ' ','i','n',' ','p','r','o','g','r','e','s','s',"15,"12,0/OCS; DATA ECHO /'E','C','H','O',' ','M','o','d','e',"15,"12,0/25 DATA DUP /'D','u','p','l','e','x','e','d',"15,"12/G; DATA COPY /'C','O','P','Y',' ','M','o','d','e',"15,"12,0/1; DATA BITMOD/'-','B','i','t',' ','M','o','d','e',"15,"12,0/DC  DATA NO /'N','O'/' DATA MARK /'M','A','R','K'/N DATA ODD /'O','D','D'/p DATA EVEN /'E','V','E','N'/13 DATA PARITY/' ','P','a','r','i','t','y',"15,"12,0/'C'A DATA BINARY/'B','i','n','a','r','y',' ','F','i','l','e',"15,"12,' C 0/2+ DATA OUTPUT/'O','u','t','p','u','t',' ',0/'= DATA ASCII /'A','S','C','I','I',' ','F','i','l','e',"15,"12/'% DATA INPUT /'I','n','p','u','t',' '/'C'A DATA PROMPT/'P','r','o','m','p','t','l','e','s','s',' ','F','i','7 C 'l','e',' ','O','u','t','p','u','t',"15,"12/A DATA REDEF /'R','e','d','e','f','i','n','e',' ','M','o','d','e',V C "15,"12,0/CTA DATA BREAK /'B','R','E','A','K',' ','c','h','a','r','a','c','t','' C 'e','r',' ','i','s',':',' '/'; DATA UNDEF /'U','n','d','e','f','i','n','e','d',"15,"12,0/'C'C0 TYPE *,'STATUS'C'C CHECK IF ANY FILES OPEN'C' IF((ITRANS.AND.1).EQ.0) GOTO 10 DO 5 I=1,26 J=OUTMSG(I) 5 CALL ENQUE(J)# 10 IF((ITRANS.AND.2).EQ.0) GOTO 20' DO 15 I=1,27 J=INMSG(I)' 15 CALL ENQUE(J)'C"C CHECK IF IN ECHO MODE'C'# 20 IF((ITRANS.AND.4).EQ.0) GOTO 30' DO 25 I=1,12 J=ECHO(I) 25 CALL ENQUE(J) C'C CHECK IF DUPLEXED OR NOTC'% 30 IF((ITRANS.AND."10).EQ.0) GOTO 40' 32 DO 35 I=1,10 J=DUP(I)E 35 CALL ENQUE(J)' GOTO 50 40 CALL ENQUE('U') CALL ENQUE('n') GOTO 32C C SEE IF WE ARE IN COPY MODEC(% 50 IF((ITRANS.AND."20).EQ.0) GOTO 60, DO 55 I=1,11) J=COPY(I) 55 CALL ENQUE(J)ACA$C SEE IF WE ARE IN 7-BIT MODE DATACI% 60 IF((ITRANS.AND."40).NE.0) GOTO 70H CALL ENQUE('7') DO 61 I=1,11( J=BITMOD(I) 61 CALL ENQUE(J) CI-C IF IN 7-BIT MODE CHECK WHAT PARITY OPTION CC$ IF((ITRANS.AND."6000).NE.0) GOTO 63 DO 62 I=1,2 62 CALL ENQUE(NO(I))  GOTO 68+ 63 IF((ITRANS.AND."6000).NE."6000) GOTO 65A DO 64 I=1,4 64 CALL ENQUE(MARK(I))  GOTO 68+ 65 IF((ITRANS.AND."6000).NE."4000) GOTO 67A DO 66 I=1,3 66 CALL ENQUE(ODD(I)) GOTO 68 67 DO 679 I=1,4 679 CALL ENQUE(EVEN(I)) 68 DO 69 I=1,9D J=PARITY(I) 69 CALL ENQUE(J)0 GOTO 80C7!C 8-BIT MODE - NO PARITY CHECKS(CJ 70 CALL ENQUE('8')E DO 75 I=1,11 J=BITMOD(I) 75 CALL ENQUE(J)ICO,C NOW PRINT WHAT THE OUTPUT FILE FORMAT ISC 80 DO 81 I=1,7 J=OUTPUT(I) 81 CALL ENQUE(J)  K=0# IF((ITRANS.AND."100).EQ.0) GOTO 90DC4 C BINARY CL 82 DO 85 I=1,14 J=BINARY(I) 85 CALL ENQUE(J)0 IF(K) 100,100,110CDC ASCIIC6 90 DO 95 I=1,12 J=ASCII(I) 95 CALL ENQUE(J)6 IF(K.NE.0) GOTO 110C6&C NOW DO THE SAME FOR THE INPUT FILECE 100 K=1 DO 101 I=1,6- J=INPUT(I)  101 CALL ENQUE(J)# IF((ITRANS.AND."200).EQ.0) GOTO 90 GOT00*,-TADATADATAO 82C0C SEE IF WE ARE IN PROMPTED OR PROMPTLESS MODEC ( 110 IF((ITRANS.AND."400).EQ.0) GOTO 120 DO 115 I=1,24 J=PROMPT(I) 115 CALL ENQUE(J)C14C CHECK IF CONTROL CHARACTERS ARE REDEFINED OR NOTC) 120 IF((ITRANS.AND."1000).EQ.0) GOTO 1300 DO 125 I=1,15 J=REDEF(I)9 125 CALL ENQUE(J)CI%C PRINT WHAT THE BREAK CHARACTER ISOC1 130 DO 131 I=1,20 J=BREAK(I)H 131 CALL ENQUE(J) IF(IBREAK.GE.0) GOTO 135I DO 132 I=1,11 J=UNDEF(I) 132 CALL ENQUE(J) RETURNO$C CHECK IF UNPRINTABLE - CTRL CHAR 135 IF(IBREAK.GT."37) GOTO 137 CALL ENQUE('^') CALL ENQUE(IBREAK+"100) GOTO 139= 137 CALL ENQUE(IBREAK)C 139 CALL ENQUE("15) CALL ENQUE("12) RETURN  ENDDEFINED OR NOTC) 120 IF((ITRANS.AND."1000).EQ.0) GOTO 1300 DO 125 I=1,15 J=REDEF(I)9 125 CALL ENQUE(J)CI%C PRINT WHAT THE BREAK CHARACTER ISOC1 130 DO 131 I=1,20 J=BREAK(I)H 131 CALL ENQUE(J) IF(IBREAK.GE.0) GOTO 135I DO 132 I=1,11 J=UNDEF(I) 132 CALL ENQUE(J) RETURNO$C CHECK  SUBROUTINE STOPIT(ITRANS)C FIRST STOP INTERRUPT CALL IOUTT1(-2) CALL ITTOUR(-2) C NOW CHECK FOR ANY OPEN FILES TYPE *,' 'E IF((ITRANS.AND.1).EQ.0) GOTO 10 CALL OUTFIL(IDUMMY,ITRANS,3)E TYPE *,' Receive complete'. 10 IF((ITRANS.AND.2).EQ.0) STOP CALL INPFIL(IDUMMY,ITRANS,3)L TYPE *,' Transmission complete' STOPC ENDER ISOC1 130 DO 131 I=1,20 J=BREAK(I)H 131 CALL ENQUE(J) IF(IBREAK.GE.0) GOTO 135I DO 132 I=1,11 J=UNDEF(I) 132 CALL ENQUE(J) RETURNO$C CHECK ) .TITLE TTYOUT 'REMOTE' TERMINAL ROUTINES .IDENT /V 1.1/ .GLOBL INPTTWI$$AS=0;%; WRITTEN BY MICHAEL D. LAMPI DAC CAT;; WRITTEN 10/2/79;; LAST UPDATE 11/9/79;6; REMOTE LINE HANDLING SUBROUTINES DESIGNED TO REPLACE$; FORTRAN VERSIONS WRITTEN FOR RT-11;9; USES STANDARD QIO FUNCTION IO.ATA TO ATTACH TO 'REMOTE'9; TERMINAL WITH AN ASYNCHRONOUS TRAP TO (HOPEFULLY) CATCH; ALL THE INPUT CHARACTERS.;6; EDITS: 01 F.BORGER USE TTYSM$ MACRO CAUSE OUR TC.XXX-; 02 F.BORGER CALL EXTERNAL TASK TO DO BREAKN); ARE DIFFERENT DON'T SET REMOTE TERMT2; 03 F.BORGER CLEAR EV FLAG IN OUTPUT AST ROUTINE; SO DONT LOOP;29 .MCALL QIOW$,CLEF$S,ENAR$S,DSAR$S,ALUN$,QIO$,DIR$,ASTX$SG" .MCALL MRKT$S,WTSE$S,WSIG$S,SPWN$ .MCALL TTSYM$* TTSYM$ ;SO WE HAVE RIGHT TC.XXX VALUES.PAGEN".SBTTL REMOTE TERMINAL OUTPUT CODE;N .GLOBL IOUTT1 .GLOBL INPTT1;PBIOUTT1: CMP #-10.,@2(R5) ;SEE IF FIRST PARAMETER IS 'SETUP' (-10.) BEQ 36$ JMP OUTPUTS+; BNE OUTPUT ;NOPE - JUST PLAIN OLD OUTPUTS36$:;RG MOV @4(R5),ALUN+A.LUNU ;GET TERMINAL NUMBER (BINARY) & PUT IN ALUN DPB 1 DIR$ #ALUN ;ASSIGN A LUN TO THE REMOTE TERMINAL BCS LUNERR ;ERROR??!!? .IF NDF,I$$AS7 DIR$ #QIOATA ;NOW ATTACH TO THE TERMINAL & SET UP ASTC BCS ATAERR ;ERROR!!??! .ENDC. ;AT REESE, DEDICATED TERMINAL, SO DONT SET-; DIR$ #QIOSET ;SET MULTIPLE CHARACTERISTICSN; BCS SETERR ;ERROR?-# CLEF$S #9. ;OK BUT LEAVE FLAG OFF ! CLR R0 ;RETURN SUCCESS CODE (0)U.RETRN1: RTS PC ;AND RETURN TO CALLING PROGRAM;6&LUNERR: MOV #2,R0 ;2 IS THE LUN ERROR BR RETRN1;I .IF NDF,I$$AS+ATAERR: MOV #3,R0 ;3 IS THE ATTACH FAILUREE BR RETRN1 .ENDC;N(SETERR: MOV #4,R0 ;4 IS THE SET FAILURE# CLEF$S #9. ;LEAVE EVENTA FLAG OFFS BR RETRN1.PAGEA!.SBTTL REMOTE TERMINAL QIO'S ETC.E;,ALUN: ALUN$ 3,TT,0;  .IF NDF,I$$ASBQIOATA: QIOW$ IO.ATA,3,,150,,, ; ** IAS MAKE IT A QIOW$ ** .ENDC;;*READ: QIOW$ IO.RAL!TF.RNE,3,9.,150,,,<0,0> .IF NDF,I$$AS.WREAD: QIOW$ IO.RAL!TF.RNE,3,16,150,,,!WRBF: .WORD 0 ;WAITED-READ BUFFERN .IFF.WREAD: QIOW$ IO.RAL!TF.RNE,3,9.,150,,,.UWREAD: QIO$ IO.RAL!TF.RNE,3,9.,150,,,!WRBF: .WORD 0 ;WAITED-READ BUFFERS)WRFG: .WORD 0 ;FLAG A READ IS OUTSTANDING  .ENDC/; ;WE WON'T BE UNDER 1,1, SO DON'T TRY TO SETC-; ;TERM CHARACTERISTICS, THER'RE ALREAD SETG;QIOSET: QIOW$ SF.SMC,3,9.,150,,, ; ** IAS MAKE IT A QIOW$C;SETBUF:; .IF NDF,I$$AS.; .BYTE TC.NEC,1 ;NO ECHON; .IFF;; .BYTE TF.RNE,1 ;NO ECHO00R04';;NO-ECHO IMPLIED BY FULL-DUPLEX IN IASE; .ENDCF; .BYTE TC.SLV,1 ;SLAVED; .BYTE TC.SMR,1 ;LOWER-CASE; .IF DF,I$$AS; .BYTE TC.BIN,1 ;BINARY READB; .ENDCF; .BYTE TC.FDX,1 ;FULL DUPLEX';; .BYTE TC.8BC,1 ;EIGHT-BIT CHARACTERS #; .BYTE TC.RAT,1 ;TYPE-AHEAD BUFFER *; .BYTE TC.WID,255. ;255. CHARACTER BUFFER;;;CLRBUF:; .IF NDF,I$$ASE; .BYTE TC.NEC,0 ;RESET ECHO; .IFF; .BYTE TC.BIN,0; .ENDCC$; .BYTE TC.FDX,0 ;SET NOT FULLDUPLEX; .BYTE TC.SLV,0 ;SET NOSLAVE.;CLRBFL=.-CLRBUF; .EVENO0;QIOCLR: QIOW$ SF.SMC,3,9.,150,,, .IF DF,I$$AS;7QIO: QIO$ IO.WAL!TF.WBT!TF.CCO,3,10,150,,WRTAST,<0,1,0>B5QIOKIL: QIOW$ IO.KIL,3,14. ;KILL ANY OUTSTANDING QIO; .IFFP1QIO: QIO$ IO.WAL!TF.WBT!TF.CCO,3,10,150,,,<0,1,0>B .ENDC.PAGEY'.SBTTL MAIN REMOTE TERMINAL OUTPUT CODE5;H;CM;BREAK IS NOT REALLY SUPPORTED. HOWEVER, USE A NULL CHARACTER. CLOSEST WE CANFA;COME. MODIFIED TO CALL EXTERNAL PROGRAM TO DO BREAK, F.B, JAN 81K;BRKQIO: QIO$ IO.WAL!TF.WBT!TF.CCO,3,9.,150,,, ;EMIT 32 NULLS.A;BRKBUF: .WORD 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ;16 WORDS OF NULLS.;!@; COMES HERE IF ALL THAT'S WANTED IS OUTPUT TO THE REMOTE DEVICE;N'OUTPUT: CLR R0 ;INITIALIZE RETURN FLAGW) CMPB #-1,@2(R5) ;SEE IF HE WANTS A BREAKC BNE PREDMP ;NOPE;EA; DEFAULT COMMAND IS 'BREAK', OR LOGICAL SPACING CONDITION WANTED C; SINCE WE HAVE NO STANDARD METHOD FOR THIS REQUEST OF THE TERMINALL3; DRIVER, WE WILL CALL AN EXTERNAL PROGRAM TO DO IT:;O2 MOV ALUN+A.LUNU,R1 ;GET TERMINAL # FROM ALUN$ DPB CLR R0 ;SET FOR DIVIDE* DIV #10,R0 ;SEPERATE INTO DIGITS OF TT #) BIS #60,R0 ;CONVERT 10'S DIGIT TO ASCIIW( BIS #60,R1 ;CONVERT 1'S DIGIT TO ASCII0 MOVB R0,SPAWNC+4 ;PUT ASCII IN CMR COMMAND LINE MOVB R1,SPAWNC+5 $ DIR$ #SPAWNB ;SPAWN THE BREAK TASK RTS PC ;AND RETURN;NOW THE SPAWN DPB, ETCI;C:SPAWNB: SPWN$ ...BRE,,,,,,,SPAWNS,SPAWNC,SPAWNL ;SPAWN DPB;E0SPAWNS: .BLKW 6 ;STATUS BLOCK SO WE WAIT FOR IT)SPAWNC: .ASCII /BRE XX/ ;THE COMMAND LINE.) SPAWNL=.-SPAWNC ;LENGTH OF COMMAND LINER.SBTTL WAIT FOR EVENTD;#;R .GLOBL WTSGEVWTSGEV: WSIG$S JSR PC,WLOS< RTS PC ;FORTRAN ENTRY FOR WAITING WHERE NOTHING IS GOING ON.PAGEC.SBTTL TRUE CHARACTER OUTPUTPREDMP: TST @2(R5) ;SEE IF HE0 BPL DUMP ;MUST WANT TO REALLY DUMP A CHARACTER9 CMP #-2,@2(R5) ;SEE IF AST RECOGNITION IS TO BE DISABLED  BEQ DISABL ;YESS;N! ENAR$S ;ENABLE AST RECOGNITIONW RTS PC ;THEN RETURNO;S)DISABL: DSAR$S ;DISABLE AST RECOGNITIONT*; DIR$ #QIOCLR ;RESET TERMINAL ATTRIBUTES0 DIR$ #QIOKIL ;CLEAR OUTSTANDING READS F.B. FIX RTS PC ;THEN RETURN ;G .IF DF,I$$ASSTRIES: .WORD 0 .ENDCDUMP:I .IF DF,I$$ASI CLR TRIES/DUMP2: INC TRIES ;COUNT TO AVOID INFINITE LOOP  .ENDC .IF NDF,I$$AS" CLEF$S #10 ;CLEAR THE EVENT FLAG' CMPB #IS.SET,$DSW ;SEE IF FLAG WAS SET 4 BEQ DUMPIT ;YES - I/O COMPLETE - OK TO SHIP IT OFF .ENDC .IF DF,I$$AS " CLEF$S #10 ;CLEAR THE EVENT FLAG! TST DGOIN ;ANY I/O IN PROGRESS? ) BEQ DUMPIT ;IF NOT, GO AHEAD RIGHT AWAYA6;ALREADY DOING SOMETHING SO SEE WHAT WE CAN DO TO WAIT WSIG$SR' JSR PC,WLOS ;AWAIT SOMETHING OR OTHER0;NOW SEE HOW MANY OUTSTANDING OUTPUTS THERE ARE.5;IF MORE THAN 7 WAIT UNTIL THE NUMBER DECREASES, ELSEO ;GO AHEAD.' CMP DGOIN,#7 ;ARE WE OVERSTUFFING IAS?V1 BLO DUMPIT ;NO, GO AHEAD AND STASH ANOTHER QIO$ .MCALL ENAR$S. ENAR$S ;IF OVERFULL BE CERTAIN WE SEE ASTS.% CMP TRIES,#7 ;TOO MANY LOOPS AROUND?V BHI DUMPIT ;IF SO ESCAPE$ BR DUMP2 ;ELSE LOOP BACK AND RETRY .ENDC WSIG$SA JSR PC,WLOS BR DUMPIT-; DEC R0 ;NO - INDICATE I/O STILL IN PROCESSJ; RTS PC ;THEN RETURN;G/DUMPIT: MOV #1,QIO+Q.IOPL+2 ;MOVE BUFFER LENGTH - MOV 2(R5),QIO+Q.IOPL ;MOVE ADDRESS OF BUFFERE .IIF DF, I$$AS, INC DGOIN DIR$ #QIO ;NOW WRITE IT OUTT RTS PC ;THEN RETURNI9DGOIN: .WORD 0 ;FLAG THAT I/O IS IN PROGRESS VIA QIO IF 1E .IF DF,I$$ASRWRTAST:E1 TST (SP)+ ;POP IOSB ADDRESS WE DONT REALLY HAVER+; CLEF$S #10 ;CLEAR THE EVENT FLAG F.B FIX  .MCALL ASTX$S% DEC DGOIN ;COUNT DOWN PENDING CHARSL00*,-TADATADATA BGT 1$ ;BUT CLAMP POSITIVE CLR DGOIN1$: ASTX$S ;EXIT THE AST .ENDC.PAGEN'.SBTTL MAIN REMOTE TERMINAL OUTPUT CODEU;R; HANDLE OUTPUT AST (NON IAS) ;V .GLOBL OUTCHR5OUTCHR: .WORD 0 ;CHARS IN, NOT HANDLED ON REMOTE TTYE .IF NDF,I$$AS;;BOUTAST: CMP IEND,#300.+BUFF ;SEE IF AT END OF 300 CHARACTER BUFFER) BLO 5$ ;NO (BUT TAKE CARE OF OVERFLOWS) ; BNE 5$ ;NOPE / MOV #BUFF,IEND ;YUP - SET POINTER TO BEGINNINGE/5$: INC IEND ;POINT TO NEXT POSITION IN BUFFERU; CMP IPTR,IEND ;SEE IF DE-QUEUEING POINTER AT THIS POSITIONO' BEQ OVRFLO ;YUP - WE HAVE AN OVERFLOWP: INC OUTCHR ;COUNT CHARACTERS IN FROM REMOTE BUT NOT READ=GETCHO: MOVB (SP)+,@IEND ;MOVE CHARACTER FROM STACK TO BUFFERH ASTX$S ;RETURN FROM AST;T;;OVRFLO: IOT ;ABORT!! (SHOULD RARELY HAPPEN--JUST TESTING)TOVRFLO: WSIG$S WSIG$SF DEC IEND ;AVOID WRAPAROUND" BR GETCHO ;JUST IGNORE (FOR NOW) .ENDC.PAGE $.SBTTL REMOTE TERMINAL INPUT ROUTINE; ;DINPTTW:T .IF NDF,I$$AS CMP IEND,IPTR* BNE INPTT1 ;IF INPUT IS THERE GO GRAB IT DIR$ #WREAD& MOVB WRBF,R0 ;AWAIT AND GET A LETTER RTS PCT .IFFO+ ;IAS GET A CHARACTER AND WAIT FOR IT ENTRYE! TST WRFG ;READ IN PROGRESS NOW?T BEQ 1$ ;NO, GO AND DO ONET1;READ ALREADY GOING. EVENT FLAG 9 SO WAIT FOR IT.() WTSE$S #9. ;WAIT FOR THE READ TO FINISHO BR 2$ ;THEN GO GRAB IT,1$: DIR$ #WREAD ;WAIT FOR A CHAR AND GET IT2$: MOVB WRBF,R0 ;GET IT & CLR WRFG ;SAY NO READ GOING ANY MORE0 BIC #177400,R0 ;MAKE SURE ONLY LOW BYTE RETURNS RTS PC ;THEN BACK TO CALLER  .ENDC;INPTT1:E .IF NDF,I$$AS) CMP IEND,IPTR ;SEE IF ANYTHING IN BUFFERO BNE 5$ ;YES - CONTINUE) MOV #-1,R0 ;NO - SET NOTHING THERE FLAGR# WSIG$S ;WAIT A BIT BEFORE RETURN JSR PC,WLOS RTS PC ;RETURN55$: CMP IPTR,#300.+BUFF ;SEE IF AT END OF RING BUFFERA BNE 10$ ;NOB3 MOV #BUFF,IPTR ;YES - RESET TO BEGINNING OF BUFFERC'10$: INC IPTR ;POINT TO NEXT CHARACTER  MOV IPTR,R0 ;GET POINTER MOVB (R0),R0 ;GET CHARACTERM/ BIC #177400,R0 ;KNOCK OFF ANY HIGH-ORDER STUFFC9 DEC OUTCHR ;COUNT DOWN CHARACTERS AVAIL FROM REMOTE TTYN BGE 15$ CLR OUTCHR ;CLAMP +O15$: .IFFE";IAS GET CHAR OR RETURN -1 ROUTINE TST WRFG ;WAS A READ GOING? : BNE 3$ ;NO, GOTTA START ONE (1 CHAR AT A TIME...TOO BAD)1 DIR$ #UWREAD ;START BUT DONT WAIT FOR A CHAR INE" INC WRFG ;AND FLAG READ UNDERWAY .MCALL CLEF$S ;CLR FLAGF;SEE IF READ DONEI3$: CLEF$S #9. ;CLEAR E.F. #9.M7 CMPB #IS.SET,@#$DSW ;WAS IT SET? (WOULD MEAN I/O DONE) BEQ 2$ ;IF SO GO GET CHARACTER+ JSR PC,WLOS ;ELSE WAIT A BIT FOR WHATEVERA! WSIG$S ;(THEN JUST A TAD MORE)1 MOV #-1,R0 ;RETURN NOTHING RTS PCE2$: CLR WRFG ;SAY READ IS DONEI! MOVB WRBF,R0 ;GET THE CHARACTER" BIC #177400,R0 ;AND CLEAR HI BYTE .ENDC RTS PC ;THEN RETURNU;AIPTR: .WORD BUFFIEND: .WORD BUFFBUFF: .BLKB 302. .WORD 0,0,0,0 ;SAFETYC;  .END ;CLR FLAGF;SEE IF READ DONEI3$: CLEF$S #9. ;CLEAR E.F. #9.M7 CMPB #IS.SET,@#$DSW ;WAS IT SET? (WOULD MEAN I/O DONE) BEQ 2$ ;IF SO GO GET CHARACTER+ JSR P+ .TITLE TWAIT - TERMINAL WAITING SUBROUTINE;S .GLOBL INPCHR,OUTCHRTWAIT::R+; JSR PC,WLOS ;WAIT FOR SOMETHING TO HAPPEN. .MCALL WSIG$S WSIG$S  RTS PCC .ENDF;SEE IF READ DONEI3$: CLEF$S #9. ;CLEAR E.F. #9.M7 CMPB #IS.SET,@#$DSW ;WAS IT SET? (WOULD MEAN I/O DONE) BEQ 2$ ;IF SO GO GET CHARACTER+ JSR PC,WLOS ;ELSE WAIT A BIT FOR WHATEVERA! WSIG$S ;(THEN JUST A TAD MORE)1 MOV #-1,R0 ;RETURN NOTHING RTS PCE2$: CLR WRFG ;SAY READ IS DONEI! MOVB WRBF,R0 ;GET THE CHARACTERVFDT = 1TWAIT - TERMINAL WAITING SUBROUTINE;S .GLOBL INPCHR,OUTCHRTWAIT::R+; JSR PC,WLOS ;WAIT FOR SOMETHING TO HAPPEN. .MCALL WSIG$S WSIG$S  RTS PCC .ENDF;SEE IF READ DONEI3$: CLEF$S #9. ;CLEAR E.F. #9.M7 CMPB #IS.SET,@#$DSW ;WAS IT SET? (WOULD MEAN I/O DONE) BEQ 2$ ;IF SO GO GET CHARACTER+ JSR PC,WLOS ;ELSE WAIT A BIT FOR WHATEVERA! WSIG$S ;(THEN JUST A TAD MORE)1 MOV #-1,R0 ;RETURN NOTHING RTS PCE2$: CLR WRFG ;SAY READ IS DONEI! MOVB WRBF,R0 ;GET THE CHARACTER00R04C+ C XMITR.FTNC<C XMIT PROGRAM TO TRANSMIT FILES TO AND RECEIVE FILES FROMC REMOTE COMPUTER SYSTEMSCC WRITTEN BY MICHAEL LAMPICBC REVISED 2-JAN-79 TO INCLUDE HOOKS FOR TRANSFERRING CHECKSUMMED4C BINARY FILES (ROUTINES FOR DOING SO ARE NOT YETC IMPLEMENTED)CC LAST UPDATE 30-OCT-79<C REVISED BY G. EVERHART FOR IAS V3. USES READ/WRITE INSTEAD5C OF INPUT AST TO HANDLE TERMINALS; IAS INPUT AST ISC NOT SUITABLE.C@C ==============================================================C"C FORMAT OF 'ITRANS' CONTROL WORD:CNBC BIT 0 - ON = FILE BEING RECEIVED FROM REMOTE (& WRITTEN TO DISK);C 1 - ON = FILE BEING TRANSMITTED TO REMOTE (FROM DISK)O9C 2 - ON = ECHO CHARACTERS READ FROM/WRITTEN TO FILES =C BIT 3 - ON = DUPLEX (ECHO CHARACTERS TYPED AT THE KEYBOARD)0>C 4 - OFF= DO NOT COPY CHARACTERS TYPED AT THE KEYBOARD TO>C THE OUTPUT DISK FILE (IF IN THE PROCESS OF RECEIVINGC A FILE)8C ON = COPY EACH TYPED CHARACTER TO THE RECEIVED FILEDC 5 - OFF= 7-BIT CHARACTERS WILL BE HANDLED, NO PARITY GENERATED9C - ON = 8-BIT CHARACTERS WILL BE HANDLED, PARITY CAN BE C GENERATED IF DESIRED<C BIT 6 - OFF= ASCII (CHARACTER MODE) FILES WILL BE RECEIVED'C - ON = BINARY FILES WILL BE RECEIVED ?C 7 - OFF= ASCII (CHARACTER MODE) FILES WILL BE TRANSMITTEDO*C - ON = BINARY FILES WILL BE TRANSMITTED+C 8 - OFF= PROMPTLESS FILE TRANSMISSION ?C - ON = PROMPTED TRANSMISSION OF EACH LINE OF DISK FILE INPUTCC :C BIT 9 - OFF= CONTROL CHARACTERS ARE PASSED TO THE REMOTE9C - ON = CONTROL CHARACTER TRANSLATION (REDEFINITION) ISW8C PERFORMED ON ALL CHARACTERS SENT TO THE REMOTEC 10-11 - OFF/OFF = NO PARITYC - OFF/ON = EVEN PARITYC - ON/OFF = ODD PARITYL1C - ON/ON = MARK PARITY (PARITY BIT ALWAYS ON)ECO!C BITS 12-15 ARE CURRENTLY UNUSED-C C- COMMON ISTACK,IEND,ISTCK,IPTR= COMMON/INPFIL/INPTR,INEND,INPSUM,INYBBL,IDELAY,IPRMPT,ISENT,D1 C LINEI(256),ICHECK,LENI,IFLAGI,NIREC COMMON/CTRL/ CTRL(32),IBREAKR COMMON/DOTCNT/ IDOTSO: COMMON/OUTFIL/ILINE(256),IPOS,IOTSUM,IONYBL,NOREC,IFLAGO, C LENOE INTEGER PRVCHRA LOGICAL*1 ISTACK(8000),CTRL DATA IEND/8000/,IDOTS/0/Y0 DATA CTRL/0,"23,3,13*0,"17,6*0,"21,"32,"25,6*0/ DATA ISTCK/1/,IPTR/1/ DATA ICHECK,ISENT,IDELAY/0,0,0/ DATA ITCHAR/0/,IPRMPT/"15/T4C INITIALIZE FILE FORMAT (0=ASCII) AND TRANSMIT MODE&C REDEFINE MODE ("1000) AND UNDUPLEXED DATA ITRANS/"1000/ DATA PRVCHR/0/,IBREAK/-1/C,AC NOW SET THE TERMINAL CHARACTERISTICS (UPPER & LOWER CASE,ETC) + TYPE*,'Terminal Transmission Program V3.3', CALL SETUPICG,C NOW GO INTO THE CHARACTER-AT-A-TIME LOOP*C DETERMINE WHERE INPUT IS COMING FROMCY 100 CALL TWAIT3 ITCHAR=ITTINR(IDUMMY) CALL WTSGEV KBD=0 IF(ITCHAR.LT.0) GOTO 110E,C IF HE WANTED A BREAK THEN GIVE IT TO HIM IF(ITCHAR.NE.IBREAK) GOTO 101 CALL ABREAK GOTO 100 0 101 IF(ITCHAR.NE."12.OR.PRVCHR.NE."15) GOTO 102<C SEND A LINE-FEED IF NOT IN ECHO MODE AND A FILE IS BEING;C TRANSFERRED (OTHERWISE KEYBOARD STUFF GETS OVERWRITTEN)n@ IF((ITRANS.AND.4).EQ.0.AND.(ITRANS.AND.3).NE.0) CALL ENQUE("12) PRVCHR=ITCHAR GOTO 100P#C SEE IF WE ARE IN TRANSLATE MODENA 102 IF((ITRANS.AND."1000).EQ.0.OR.ITCHAR.GT."37.OR.ITCHAR.EQ."3) C GOTO 104'C YES - CHECK IF IN TRANSLATION TABLEK)C IF IN TABLE, THEN SUBSTITUTE NEW CHAR ! IF(CTRL(ITCHAR+1).EQ.0) GOTO 104 ITCHAR=CTRL(ITCHAR+1) KBD=1 GOTO 105O 104 PRVCHR=ITCHAR KBD=1* IF(ITCHAR.NE.25.AND.ITCHAR.NE.3) GOTO 1055C THIS ALLOWS CONTROL-Y OR CONTROL-C TO BE ATTN CHAR.n CALL CTLSUB(ITRANS) GOTO 100R1 105 IF((ITRANS.AND."10).NE.0) CALL ENQUE(ITCHAR)G% 110 IF((ITRANS.AND.1).EQ.0) GOTO 120E CALL OUTFIL(ITCHAR,ITRANS,1)0% 120 IF((ITRANS.AND.2).EQ.0) GOTO 1403% IF(KBD.NE.0.OR.ITCHAR.GE.0) GOTO 140F CALL INPFIL(ITCHAR,ITRANS,1)I@ IF(ITCHAR.LT.0.OR.(ITRANS.AND.1).EQ.0.OR.(ITRANS.AND."20).EQ.0) C GOTO 140I CALL OUTFIL(ITCHAR,ITRANS,4)1 140 CONTINUER IF(ITCHAR.LT.0) GOTO 300A&C NOW CHECK IF W00Ǒˑ*,-TADATADATAE NEED TO SET PARITY# IF((ITRANS.AND."40).NE.0) GOTO 200R%C MUST SET PARITY BIT IN 7-BIT MODE1 I=(ITRANS.AND."6000)N ITCHAR=(ITCHAR.AND."177)1C NO PARITY? IF(I.EQ.0) GOTO 200 IF(I.NE."6000) GOTO 150C MARK PARITYR ITCHAR=ITCHAR+"200 GOTO 200B 150 J=(ICNT(ITCHAR).AND.1)*"200 IF(I.NE."2000) GOTO 160C EVEN PARITYL ITCHAR=ITCHAR+"200-JQ GOTO 200NC ODD PARITY 160 ITCHAR=ITCHAR+JCL,C IF WE HAVE A CHARACTER SEND IT TO REMOTECT 200 CALL TWAIT0 205 I=IOUTT1(ITCHAR) 3C WAIT FOR A SIG EVENT IF WE CAN'T SEND A CHARACTER0 IF (I.NE.0)CALL WTSGEVIC IF(I.NE.0) GOTO 205TCS<C NOW WAIT IDELAY CLOCK TICKS BETWEEN CHARACTERS (MINIMUM)CQ IF(IDELAY.EQ.0) GOTO 3000 CALL MARK(17,IDELAY,1)T CALL WAITFR(17)C0<C IF TRANSFER IS OK QUEUE UP KEYBOARD CHAR TO SHIP BACK TO1C CONSOLE ELSE WAIT FOR REMOTE TO BECOME READY-C$C CHECK FOR OUTPUT FROM THE REMOTECT 300 CONTINUE 1C REMOVE C NEXT. ALLOW INSTANT REPLY FROM REMOTE.C< IF (((ITRANS.AND.1).EQ.1).OR.((ITRANS.AND.2).EQ.2))GOTO 301 CALL TWAIT  301 INCHAR=INPTT1(IDUMMY) IREM=0I IF(INCHAR.LT.0) GOTO 310S IREM=1 #C REMOVE PARITY BIT IN 7-BIT MODEC1 IF((ITRANS.AND."40).EQ.0) INCHAR=INCHAR.AND."177L,C IF NO FILE I/O THEN ECHO REMOTE'S OUTPUT4 IF((ITRANS.AND.3).EQ.0) CALL ENQUE(INCHAR.AND."177)% 310 IF((ITRANS.AND.1).EQ.0) GOTO 320  IF(IREM.EQ.0) GOTO 320  CALL OUTFIL(INCHAR,ITRANS,2)E% 320 IF((ITRANS.AND.2).EQ.0) GOTO 340A IF(IREM.EQ.0) GOTO 340E3C MAJOR LOOP FOR INPUT FROM FILE TO REMOTE IS HERE..*C WILL AWAIT ABSENCE OF REPLY FROM REMOTE. CALL INPFIL(INCHAR,ITRANS,2)H340 IF(IREM.NE.0) GOTO 300C "C DUMP THE QUEUE TO THE TERMINALC( 400 IF(ISTCK.EQ.IPTR) GOTO 100H IOPTR=IPTR IPTR=IPTR+1 IF(IPTR.GT.IEND) IPTR=1 INCHAR=ISTACK(IPTR) I=ITTOUR(INCHAR)(CH6C IF WE CAN'T PRINT QUEUE, THEN START THIS LOOP OVERCR IF(I.EQ.0) GOTO 400 420 IPTR=IOPTR, GOTO 100 ENDF((ITRANS.AND.2).EQ.0) GOTO 340A IF(IREM.EQ.0) GOTO 340E3C MAJOR LOOP FOR INPUT FROM FILE TO ..TITLE XMT - Intercomputer Communications Task4.FIRST TITLE XMT - Intercomputer Communications Task.DATE 12-^JAN-82 .LM 10;.RM 75^^.C 75Overview.c 75--------.fg 3XMT is a utility task which\provides a convenient means for data transfer between the the Medical Physics PDP11 and anyDother computer system that is accessible with a standard terminal byDeither hard-wired lines or by dial-up modem. XMT makes your terminalDappear as though it were connected directly to the "remote" computerGsystem. Data transfer is performed by producing textual output from thetBremote computer (e.g., program listings, computer runs, etc.) and,Gthrough XMT, routing that text to a disk file at the PDP11. The reversed<path takes a file at the PDP11 and "types" it to the remote..CHAPTER Using XMT*XMT is a standard MCR function, evoked by:.fg 1  MCR>XMT.FG 1aXMT prints the message:i.fg 1b#Terminal Transmission Program V3.3 n.break"Initializing operation using TT25:.fg 1tIf TT25 is connected totHa dial-up modem you must now dial the remote computer before continuing.2If the terminal is hardwired to the remote system,Jor when you have made the connection to the remote via modem, XMT is readyfor operation..FG 1f3XMT is now running with several defaults in effect:T.listg.le ASCII transfer mode..breakFXMT expects files to be in ASCII format, (i.e. source, listings, etc.).le COPY mode is off.o.breakEWhen receiving a "file" from the remote terminal, characters typed ats0your terminal are not echoed to the output file..le DELAY of 20 milliseconds.i.breakGXMT will wait 20 milliseconds after receiving a "prompt" character from Gthe remote terminal, (usually a line-feed) before transmitting the next &line of a file to the remote computer..le ECHO Mode is off.g.breakJWhen file transfer is in process, all I/O is not printed on your terminal.=A single flag character is printed for each line transferred.c .le PROMPTED transmission is on..breakKXMT waits for a Line00ϑR04-Feed (or some other character) before transmitting theE:next line of a file from the PDP11 to the remote computer.<.le Several control characters are re-defined (see appendix).breakFSince _^C is used to inform XMT that you wish to change some operatingIcondition, if you wish to send a _^C to the remote computer, typing a _^BnFwill cause a _^C to be sent to the remote computer. Note that althoughLseveral other re-defines are normally set, under IAS, only the _^C re-define is necessary.t.le FULLDUPLEX mode is ono.breakN^Characters typed at your terminal are not echoed locally, the remote computermust echo them. &.le 8-BIT ASCII mode is off, no parity.breakCCharacters are transmitted with 7 data bits and the parity bit off.a.endlist)These settings can be changed dynamically_Fby the user to tailor XMT's characteristics to ease communication withother computers..FG 1eEThis version of XMT has been modified for IAS (basically a rewrite ofn+the terminal I/O sections) by G. Everhart. LJIn normal operation, it uses TT25 for connection to the "remote" computer..TT25 should normally be set up at system boot,-but if necessary one may have to reset it to:k.SKIP 2e.NOFILLa7MCR>SET /UIC=[1,1] ;To change another Terminal settingi:MCR>TER TT25:/FULLDUPLEX ;fix for no echo, full duplex I/O9MCR>TER TT25:/BINARY ;fix for no special _^C recognition.MCR>TER TT25:/WIDTH:132 ;make width big enough.FILLm.BREAK.SKIP 1bJThis should allow the terminal to work correctly. Note that you'll have toFtry various options when using it with non-DEC systems. In its default8state, it works well with other 266 C 1170 CALL WTQIO("1000,6,6,,IOSb,PRL) !read ufd block 267 1170 CALL READTPR+ 268 IF(IOSB(1).EQ."4160)GOTO 8000 !eof # 269 IF(IOSB(2).NE.80)GOTO 1180 2************************************************** 1) DR3:[1,22]BRUDIR.FOR;27* 313 C = 314 8000 CALL WTQIO("1000,6,6,,IOSB,PRL) !read EOF1/EOV1A/ 315 IF(BBUFF(3).EQ.'F')GOTO 8040 !was eof1 ***************. 2) DR3:[1,22]BRUDIR.VAX;1 333 C2> 334 C 8000 CALL WTQIO("1000,6,6,,IOSB,PRL) !read EOF1/EOV1 335 8000 CALL READTPI/ 336 IF(BBUFF(3).EQ.'F')GOTO 8040 !was eof112************************************************** 1) DR3:[1,22]BRUDIR.FOR;27.2 318 CALL WTQIO("2540,6,6) !unload input tape@ 319 8020 CALL WTQIO("2520,6,6,,IOSB) !sense characteristicsE 320 IF(IAND(IOSB(2),"1400).EQ.0)GOTO 8030 !wait until a new tape(( 321 CALL WAIT(1,2) !wait 1 second$ 322 GOTO 8020 !and look again 323 C ***************0 2) DR3:[1,22]BRUDIR.VAX;13 339 C CALL WTQIO("2540,6,6) !unload input tape3A 340 C 8020 CALL WTQIO("2520,6,6,,IOSB) !sense characteristics*F 341 C IF(IAND(IOSB(2),"1400).EQ.0)GOTO 8030 !wait until a new tape) 342 C CALL WAIT(1,2) !wait 1 second % 343 C GOTO 8020 !and look again 344 C 2************************************************** 1) DR3:[1,22]BRUDIR.FOR;27 326 8030 PRL(1)=1A 327 CALL WTQIO("2440,6,6,,IOSB,PRL) !skip 1 to get to header" 328 CALL GETADR(PRL,IBUFF) ! 329 PRL(2)=4144I 330 CALL WTQIO("1000,6,6,,IOSB,PRL) !after skipping Backupset header, 331 GOTO 1110***************  2) DR3:[1,22]BRUDIR.VAX;1 340047 C 8030 PRL(1)=1iB 348 C CALL WTQIO("2440,6,6,,IOSB,PRL) !skip 1 to get to header 349 8030 CALL SKIP(1)# 350 C CALL GETADR(PRL,IBUFF) !* 351 C PRL(2)=4144*J 352 C CALL WTQIO("1000,6,6,,IOSB,PRL) !after skipping Backupset header 353 CALL READTP 354 GOTO 11102************************************************** 1) DR3:[1,22]BRUDIR.FOR;27T- 345 PRL(1)=1 !setup to skip eof labelss* 346 CALL WTQIO("2440,6,6,,IOSB,PRL) ! 347 CALL GETADR(PRL,BBUFF)1 348 PRL(2)=4144 349 GOTO 1070***************, 2) DR3:[1,22]BRUDIR.VAX;1. 368 C PRL(1)=1 !setup to skip eof labels+ 369 C CALL WTQIO("2440,6,6,,IOSB,PRL) !* 370 CALL SKIP(1)" 371 C CALL GETADR(PRL,BBUFF) 372 C PRL(2)=41445 373 GOTO 10702************************************************** 1) DR3:[1,22]BRUDIR.FOR;272- 354 CALL WTQIO("2400,6,6) !rewind again + 355 CALL WTQIO("2000,6,6) !and detach, 356 CALL EXIT***************P 2) DR3:[1,22]BRUDIR.VAX;1. 378 C CALL WTQIO("2400,6,6) !rewind again 379 CALL REWIND, 380 C CALL WTQIO("2000,6,6) !and detach 381 CALL EXIT2************************************************** 1) DR3:[1,22]BRUDIR.FOR;27F 375 DECODE (3,100,RADGRO) I 376 DECODE (3,100,RADUSR) J 377 100 FORMAT (O3)*& 378 IUFD=IAND(ISHFT(I,8),"177400) 379 IUFD=IOR(IUFD,J)) 380 RETURN 381 END***************  2) DR3:[1,22]BRUDIR.VAX;1 400 LOGICAL*1 ITMP(4) 401 INTEGER*2 JTMP(2)& 402 EQUIVALENCE (ITMP(1),JTMP(1))& 403 DECODE (3,100,RADGRO) JTMP(2)& 404 DECODE (3,100,RADUSR) JTMP(1) 405 100 FORMAT (O3)* 406 ITMP(2)=ITMP(3) 407 IUFD=JTMP(1)1 408 RETURNF 409 END 410 cR' 411 c subroutine to read one recordJ 412 c0 413 SUBROUTINE READTP 414 dimension iosb(4)+ 415 integer*4 retcode,sys$qiow,bufsize# 416 common/tapeio/channel,iosb  417 integer*2 ibuff(2072) 418 byte bbuff(4144) ' 419 equivalence(ibuff(1),bbuff(1))( 420 common/buffer/ibuff% 421 parameter io$_readlblk='21'xC 422 bufsize=4144(C 423 retcode=sys$qiow(,%val(channel),%val(io$_readlblk),iosb,,,=+ 424 1%ref(bbuff(1)),%val(bufsize),,,,)1 425 return 426 end 427 cc& 428 c subroutine to skip n records 429 c  430 SUBROUTINE skip(nskip)t 431 dimension iosb(4)+ 432 integer*4 retcode,sys$qiow,bufsize # 433 common/tapeio/channel,iosb  434 integer*2 ibuff(2072)' 435 parameter io$_skiprecord='26'xmE 436 retcode=sys$qiow(,%val(channel),%val(io$_skiprecord),iosb,,,i 437 1%val(nskip),,,,,)s 438 returne 439 end 440 cb# 441 c subroutine to rewind tapeu 442 c1 443 SUBROUTINE rewind 444 dimension iosb(4)# 445 common/tapeio/channel,iosb # 446 parameter io$_rewind='24'xG 447 retcode=sys$qiow(,%val(channel),%val(io$_rewind),iosb,,,,,,,,) 448 returna 449 end 27 differences foundu BRUDIR.DIF=BRUDIR.FOR,BRUDIR.VAXkiprecord='26'xmE 436 retcode=sys$qiow(,%val(channel),%val(io$_skiprecord),iosb,,,i 437 1%val(nskip),,,,,)s 438 returne 439 end 440 cb# 441 c subroutine to rewind tapeu 442 c1 443 SUBROUTINE rewind 444 dimension iosb(4)# 445 common/tapeio/channel,iosb # 446 parameter io$_rewind='24'xG 447 retcode=sys$qiow(,%val(channel),%val(io$_rewind),iosb,,,,,,,,) 448 returna 449 end 27 differenceBC R J D Kirkman. 1981 - A program to produce directory listings ofC BRU format tapes.C?C x01.01 December 1981 - Correct behaviour for multi-reel input1C tapesets. Note only one deck is used for input.CLC Mod to differentiate between IAS & RSX tapes, F. Borger, June 2 1983CJC slow version of BRUDIR, Uses a workfile to cater for 10000 files on diskC3C Program to list a directory of a BRU format tape,4C encompassing all the images on the tape, in any of(C BReif, LIst (default) 00둱쑲,-TADATADATAor FUll formats.1C The listing is output to a user specified file.fC  PROGRAM BRUDIRC C Reader data bufferC  INTEGER IBUFF(2072) BYTE BBUFF(4144)! INTEGER*4 LONG,IALLOC,IMAX,IUSEDs INTEGER*4 KFIL,KUSD,KALL C C qio parameters ...C  INTEGER PRL(6),IOSB(2),C C directory info save bufferC  INTEGER DIRFID(10000) INTEGER IDIR(8) LOGICAL*1 RADGRO(3),RADUSR(3)C C C variablesBC  BYTE FILE(12),TEMP(40)i EQUIVALENCE(IBUFF(1),BBUFF(1)) C C setup for processingC ( TYPE*,'** BRU Directory listing x01.00' TYPE1000p 1000 FORMAT('$Input Tapedeck:') ACCEPT1010,TEMP 1010 FORMAT(40A1)& IF (TEMP(1).GT.'Z')TEMP(1)=TEMP(1)-32& IF (TEMP(2).GT.'Z')TEMP(2)=TEMP(2)-32 IUNIT=TEMP(3)-'0'# IF(IUNIT.GT.7.OR.UNIT.LT.0)IUNIT=0G0 IF(TEMP(5).EQ.':')IUNIT=IUNIT*8+TEMP(4)-48 !'0' CALL ASNLUN(6,TEMP,IUNIT,IDS)& IF(IDS.NE.1)TYPE*,'ASNLUN fails ',IDS IF(IDS.NE.1)CALL EXIT 1013 TYPE1015& 1015 FORMAT(' IASV3.1/LATER RSX (1)'/ 1' EARLY RSX (2)'/ 2'$ OR IASV3.2 (3) ? ') ACCEPT*,IAS$ IF (IAS.LT.1.OR.IAS.GT.3) GOTO 1013 TYPE1020p ACCEPT*,IDENS$ 1020 FORMAT('$Density (800/1600):')! PRL(1)="4004 !1600 or coredumpI IF(IDENS.EQ.800)PRL(1)=4E CALL WTQIO("1400,6,6) !attach( CALL WTQIO("2400,6,6) !rewind- CALL WTQIO("2500,6,6,,IOSB,PRL) !set density' TYPE1030L2 1030 FORMAT('$Listing format (FULL,BRIEF,LIST):') ACCEPT1010,TEMP IFORMT=1 !list18 IF(TEMP(1).GE.'a'.AND.TEMP(1).LE.'z')TEMP(1)=TEMP(1)-32 IF(TEMP(1).EQ.'B')IFORMT=0  IF(TEMP(1).EQ.'F')IFORMT=2C TYPE1040I 1040 FORMAT('$Output file:')0 ACCEPT1050,ILEN,TEMP* 1050 FORMAT(Q,40A1)7 IF(ILEN.EQ.0)CALL ASNLUN(4,'TI',0) !default TTY outputI# IF(ILEN.NE.0)CALL ASNLUN(4,'SY',0)T TEMP(ILEN+1)=0a; IF(ILEN.NE.0)OPEN(UNIT=4,NAME=TEMP,CARRIAGECONTROL='LIST',, / TYPE='NEW')s< IF(ILEN.EQ.0)OPEN(UNIT=4,NAME='TI:',CARRIAGECONTROL='LIST', / TYPE='NEW')EC >C at this point we should be at BOT with the tapedeck on LUN 6!C the listing file open on LUN 4.O+C the terminal for errors/comments on lun 54C C4+C open a scratch file for directory entriesTC*9 OPEN(UNIT=3,RECORDSIZE=4,ACCESS='DIRECT',TYPE='SCRATCH') C start with the volume label. CALL GETADR(PRL,IBUFF)T PRL(2)=4144 CALL WTQIO("1000,6,6,,IOSB,PRL)8 IF(IOSB(1).NE.1)TYPE*,'Error on volume label read',IOSB7 IF(IOSB(2).NE.80)TYPE*,'Unexpected length at BOT',IOSB,/ IF(IBUFF(1).NE.'VO'.OR.IBUFF(2).NE.'L1')TYPE*,o / 'Not VOL1 at BOT'c% WRITE(4,1060)(BBUFF(I),I=5,10),IDENSL4 1060 FORMAT('Volume label = "',6A1,'" Density ',I4) CALL WTQIO("1000,6,6,,IOSB,PRL)? IF(IOSB(2).NE.512)TYPE*,'Boot block error - Prob not BRU tape',C ;C this is the point where we expect a new backupset/ of eotLC GOTO 6539 1070 CONTINUE WRITE (4,6522)KFIL,KUSD,KALLO 6539 CONTINUE CALL WTQIO("1000,6,6,,IOSB,PRL) IF(IOSB(1).EQ."366)GOTO 8060p3 IF(IOSB(1).NE.1)TYPE*,'tape error',IOSB,' on HDR1'B3 IF(IOSB(2).NE.80)TYPE*,'Expected HDR1 found ',IOSB/ IF(IBUFF(1).NE.'HD'.OR.IBUFF(2).NE.'R1')TYPE*,M" / 'Not HDR1 when expected'! WRITE(4,1080)(BBUFF(I+4),I=1,17),, 1080 FORMAT('Ansi file label = "',17A1,'"') CALL WTQIO("1000,6,6,,IOSB,PRL)> IF(IBUFF(1).NE.'HD'.OR.IBUFF(2).NE.'R2')TYPE*,'HDR2 expected' CALL WTQIO("1000,6,6,,IOSB,PRL). IF(IOSB(1).NE."366)TYPE*,'Tape mark expected'8 CALL WTQIO("1000,6,6,,IOSB,PRL) !now backup descriptor7 IF(IOSB(2).NE.80)TYPE*,'Backupset descriptor expected'(CB<C Handle dump date differently if Early RSX or IAS/Later RSXC'7 IF (IAS.NE.2) WRITE(4,1090)IBUFF(7),(BBUFF(I),I=1,12),p/ / (BBUFF(I),I=15,26),(BBUFF(I+62),I=1,13) 7 IF (IAS.EQ.2) WRITE(4,1090)IBUFF(7),(BBUFF(I),I=1,12),,/ / (BBUFF(I),I=15,26),(BBUFF(I+56),I=1,13)NF 1090 FORMAT('VOL',I1,' Backupset ="',12A1,'" Disc label ="',12A1,'"',E / ' Dump taken at ',2A1,'-',3A1,'-',2A1,' ',2A1,':',2A1,':',2A1))8 WRITE(4,1100)IBUFF(27),IAND("77777777,LONG(IBUFF(25))),! / IBUFF(22),LONG(IBUFF(23))dD 1100 FORMAT('Device type = ',A2,' Size =',I8,' Indexfile size =',I6 / ' MFD size = ',00 4I7)(1 CALL WTQIO("1000,6,6,,IOSB,PRL) !read boot blockF1 CALL WTQIO("1000,6,6,,IOSB,PRL) !read home block( I=IBUFF(6)I IF(I.EQ.0)I='??'B IMAX=IBUFF(4) !is unisgned int+ IF(IMAX.LT.0)IMAX=IMAX+65536 !correct that2> WRITE(4,1101)IBUFF(1),LONG(IBUFF(2)),IMAX,IBUFF(5),IBUFF(7),I61101 FORMAT('Bitmap size = ',I6,' Starts at lbn=',I10, / ' Maximum files = ',I6/D / 'Cluster factor =',I6,' Structure level =',O6,' Disk type "', / A2,'"')CI< IF (IAS.EQ.3) CALL WTQIO("1000,6,6,,IOSB,PRL) !read ? blockC(+ ICOUNT=0 !there are no stored entries yet C WRITE (4,6522)KUSD,KFIL,KALL:6522 FORMAT(' Total Files in set ',I7,' Space Used/Alloc', 1 I7,'/',I7) KUSD=0X KALL=0 !ALLOCATED SPACE TOTAL KFIL=0 !FILESC C here we expect a type record.F9C If this is a continuation tape only then it need not be )C the UFD record, but may be HEAD or DATAC % 1110 CALL WTQIO("1000,6,6,,IOSB,PRL)v" IF(IOSB(1).EQ."366)GOTO 8000 !eof> 1120 IF(IOSB(2).NE.80)TYPE*,'unexpected Sentinel length',IOSB IF(IBUFF(1).NE.'DA')GOTO 1140Co>C normally we might do something else, however for a directory-C we simply skip the data blocks we fall over,C C------- C compress the directory entries&C - No longer since they are in a fileCw#C IPTR=ICOUNT !end of buffer usedsC ICOUNT=0 !assert empty now(C DO 1131 I=0,IPTR-1,8 !scan all bufferC IF(IDIR(I+1).EQ.0)GOTO 1131LC DO 1132 J=1,8,C IDIR(ICOUNT+J)=IDIR(I+J)C1132 CONTINUE C IDIR(I+1)=0SC ICOUNT=ICOUNT+8nC1131 CONTINUE:C TYPE*,'Directory compressed from ',IPTR/8,' to',ICOUNT/8? 1130 CALL WTQIO("1000,6,6,,IOSB,PRL) !look for something else.l/ IF(IOSB(1).EQ."366)GOTO 8000 !deal with eof-- IF(IOSB(2).NE.80)GOTO 1130 !get more entriese( GOTO 1120 !work out what new sentinel. 1140 IF(IBUFF(1).NE.'UF')GOTO 1160 !not a UFDCp+C enter a UFD record, get current UIC valuefCC IUFD=07C IF(IBUFF(11).EQ.1)IUFD=IBUFF(14)!get owning uic (bin)IC(<C MODIFIED, Directory uic owner not always the directory, so4C Save RAD50 version of UIC which is the correct one CALL R50ASC(3,IBUFF(6),RADGRO)O CALL R50ASC(3,IBUFF(7),RADUSR)o CALL UFDCON(RADGRO,RADUSR,IUFD)9 1150 CALL WTQIO("1000,6,6,,IOSB,PRL) !read another block " IF(IOSB(1).EQ."366)GOTO 8000 !eof. IF(IOSB(2).EQ.80)GOTO 1120 !find what this is'C Here should be a block of a directoryF4 DO 1151 I=0,IOSB(2)/2-1,8 !number of 8 word entries=C SINCE we find extra entries at end, assume for now that BRUICC compresses directories, see if first zero FID is end of directoryr(C was GOTO 1151 to skip individual entryC5, IF(IBUFF(I+1).EQ.0)GOTO 1150 !deleted entry DO 1152 J=1,8 IDIR(J)=IBUFF(I+J)U 1152 CONTINUE IDIR(3)=IUFD0C6>C have made an entry with Cf ICOUNT=ICOUNT+1 DIRFID(ICOUNT)=IDIR(1)i WRITE(3'ICOUNT)IDIR1 IF(ICOUNT.GT.10000)STOP ' Directory buffer full'8 IF(IFORMT.NE.0)GOTO 1151> CALL R50ASC(12,IBUFF(I+4),FILE) !convert to the file in ascii IGRP=IAND(ISHFT(IUFD,-8),"377)f IMEM=IAND(IUFD,"377) = WRITE(4,1153)IGRP,IMEM,FILE,IBUFF(I+8),IBUFF(I+1),IBUFF(I+2)BA1153 FORMAT('[',O3,',',O3,']',9A1,'.',3A1,';',O4,' (',O5,',',O5,U / ')') 1151 CONTINUEI GOTO 1150 !read another8 1160 IF(IBUFF(1).NE.'HE')GOTO 1190 !if not unrecognisedCN4C here process headers and corresponding UFD recordsCR=C the directory entries are already buffered. For each headerT,C read in, find the entry, and print it out.>C after finding zero the entry for later compression, to occur C when he hit the DATA sentinel.C45 1170 CALL WTQIO("1000,6,6,,IOSb,PRL) !read ufd block" IF(IOSB(1).EQ."366)GOTO 8000 !eof IF(IOSB(2).NE.80)GOTO 1180U- IF(IBUFF(1).NE.'UF')GOTO 1120 !dispatch thiseC IUFD=07C IF(IBUFF(11).EQ.1)IUFD=IBUFF(14)!get owning uic (bin)dCN<C MODIFIED, Directory uic owner not always the directory, so4C Save RAD50 version of UIC which is the correct one CALL R50ASC(3,IBUFF(6),RADGRO), CALL R50ASC(3,IBUFF(7),RADUSR)n CALL UFDCON(RADGRO,RADUSR,IUFD);C The above allows us to do a 3 word match, thus00(둱쑲,-TADATADATA accountingAC for synonyms.6CO GOTO 1170- 1180 CONTINUE !here with a block of headersf7 DO 1181 I=0,IOSB(2)/2-1,256 !each header in the buffer - DO 1182 J=1,ICOUNT !scan up directory bufferEC)4C fileid, seq are at offsets 2,3 current ufd is IUFDCe7C IF(IUFD.EQ.IDIR(J+3).AND.IDIR(J+1).EQ.IBUFF(I+2).AND.0,C / IDIR(J+2).EQ.IBUFF(I+3))GOTO 1183% IF(DIRFID(J).EQ.IBUFF(I+2))GOTO 1183A1182 CONTINUE !with scanL! CALL R50ASC(12,IBUFF(I+24),FILE) > WRITE(4,999)IBUFF(I+2),IBUFF(I+3),IBUFF(I+5),FILE,IBUFF(I+28)5999 FORMAT('FID',O6,':',O6,O7,' ',9A1,'.',3A1,';',O4)b& GOTO 1181 !some how we lost this one1183 READ(3'J)IDIR CALL R50ASC(12,IDIR(4),FILE)O IGRP=IAND(ISHFT(IUFD,-8),"377)) IMEM=IAND(IUFD,"377)o IUSED=LONG(IBUFF(I+12))" IF(IBUFF(I+14).EQ.0)IUSED=IUSED-1 IALLOC=LONG(IBUFF(I+10))D KFIL=KFIL+1 KUSD=KUSD+IUSED KALL=KALL+IALLOCI IF(IFORMT.NE.2)GOTO 1185O IF(IBUFF(I+29).EQ.1)GOTO 11872 WRITE(4,1184)IGRP,IMEM,FILE,IDIR(8),IUSED,IALLOC,. / IDIR(1),IDIR(2),(BBUFF(I*2+K),K=72,84)+ / ,(BBUFF(I*2+K),K=59,71),IBUFF(I+29).A1184 FORMAT('[',O3,',',O3,']',9A1,'.',3A1,';',O4,I6,'./',I6,'. ','; / '(',O6,',',O6,') ',2A1,'-',3A1,'-',2A1,' ',2A1,':',,8 / 2A1,':',2A1,' ',2A1,'-',3A1,'-',2A1,' ',2A1,':', / 2A1,':',2A1,' (',I5,')') GOTO 118961187 WRITE(4,1188)IGRP,IMEM,FILE,IDIR(8),IUSED,IALLOC,. / IDIR(1),IDIR(2),(BBUFF(I*2+K),K=72,84)A1188 FORMAT('[',O3,',',O3,']',9A1,'.',3A1,';',O4,I6,'./',I6,'. ',I; / '(',O6,',',O6,') ',2A1,'-',3A1,'-',2A1,' ',2A1,':', / 2A1,':',2A1) GOTO 11891185 IF(IFORMT.NE.1)GOTO 1189'A WRITE(4,1186)IGRP,IMEM,FILE,IDIR(8),IUSED,(BBUFF(I*2+K),K=72,84)O81186 FORMAT('[',O3,',',O3,']',9A1,'.',3A1,';',O4,I7,'. '5 / ,2A1,'-',3A1,'-',2A1,' ',2A1,':',2A1,':',2A1):1189 DIRFID(J)=0 1181 CONTINUE1 GOTO 1170& 1190 STOP 'Unexpected sentinel block'C C deal with end of backupset.2C 5 8000 CALL WTQIO("1000,6,6,,IOSB,PRL) !read EOF1/EOV1,' IF(BBUFF(3).EQ.'F')GOTO 8040 !was eof1O WRITE(4,8010)" 8010 FORMAT(' *-End of Volume-*')* CALL WTQIO("2540,6,6) !unload input tape8 8020 CALL WTQIO("2520,6,6,,IOSB) !sense characteristics= IF(IAND(IOSB(2),"1400).EQ.0)GOTO 8030 !wait until a new tape, CALL WAIT(1,2) !wait 1 second GOTO 8020 !and look againC "C now have seen a tape on the deckC  8030 PRL(1)=19 CALL WTQIO("2440,6,6,,IOSB,PRL) !skip 1 to get to headerc CALL GETADR(PRL,IBUFF) ! PRL(2)=4144A CALL WTQIO("1000,6,6,,IOSB,PRL) !after skipping Backupset headerO GOTO 1110 8040 WRITE(4,8050)*" 8050 FORMAT(' End of Backupset.') DO 8001 I=1,ICOUNT  IF(DIRFID(I).EQ.0)GOTO 8001 READ(3'I)IDIR; CALL R50ASC(12,IDIR(4),FILE) !convert to the file in asciit IUFD=IDIR(3)p IGRP=IAND(ISHFT(IUFD,-8),"377)o IMEM=IAND(IUFD,"377)o4 WRITE(4,8002)IGRP,IMEM,FILE,IDIR(8),IDIR(1),IDIR(2)A8002 FORMAT('[',O3,',',O3,']',9A1,'.',3A1,';',O4,' (',O5,',',O5,h / ')') 8001 CONTINUEF% PRL(1)=1 !setup to skip eof labels," CALL WTQIO("2440,6,6,,IOSB,PRL) ! CALL GETADR(PRL,BBUFF)8 PRL(2)=4144 GOTO 1070 8060 WRITE(4,8070)p 8070 FORMAT('*EOT*')O CLOSE(UNIT=4) TYPE*,'*EOT*'% CALL WTQIO("2400,6,6) !rewind againR# CALL WTQIO("2000,6,6) !and detachi CALL EXIT ENDCR-C files 11 I*4 is the opposite to Fortran I*43 INTEGER*4 FUNCTION LONG(ID) INTEGER*2 ID(2),IT(2) INTEGER*4 IJA EQUIVALENCE(IJ,IT(1)) IT(1)=ID(2) IT(2)=ID(1) LONG=IJ RETURN ENDCI0C SPECIAL function to convert ascii uic to octalCT& SUBROUTINE UFDCON(RADGRO,RADUSR,IUFD) LOGICAL*1 RADGRO(3),RADUSR(3) DECODE (3,100,RADGRO) I DECODE (3,100,RADUSR) J100 FORMAT (O3) IUFD=IAND(ISHFT(I,8),"177400) IUFD=IOR(IUFD,J)i RETURN  END"2000,6,6) !and detachi CALL EXIT ENDCR-C files 11 I*4 is the opposite to Fortran I*43 INTEGER*4 FUNCTION LONG(ID) INTEGER*2 ID(2),IT(2) INTEGER*4 IJA EQUIVALENCE(IJ,IT(1)) IT(1)=ID(2) IT(2)=ID(1) LONG=IJ RETURN ENDCI0C SPECIAL function to convert ascii uic to octalCT& SUBROUTINE UFDCON(RADGRO,RADUSR,IUFD) LOGICAL*1 RAD0004 BC R J D Kirkman. 1981 - A program to produce directory listings ofC BRU format tapes.C?C x01.01 December 1981 - Correct behaviour for multi-reel input1C tapesets. Note only one deck is used for input.CLC Mod to differentiate between IAS & RSX tapes, F. Borger, June 2 1983CGC 2nd mod, convert to VMS, handle new IAS Format F. Borger, May 3, 1985CJC slow version of BRUDIR, Uses a workfile to cater for 10000 files on diskC3C Program to list a directory of a BRU format tape,4C encompassing all the images on the tape, in any of(C BReif, LIst (default) or FUll formats.1C The listing is output to a user specified file.lC  PROGRAM BRUDIReC C Reader data bufferC  INTEGER*2 IBUFF(2072) BYTE BBUFF(4144)t EQUIVALENCE(IBUFF(1),BBUFF(1))B! INTEGER*4 LONG,IALLOC,IMAX,IUSEDc INTEGER*4 KFIL,KUSD,KALLA INTEGER*4 ISTAT,SYS$ASSIGN8C C qio parameters ...C  INTEGER*2 IOSB(4)C C directory info save bufferC  INTEGER DIRFID(10000) INTEGER*2 IDIR(8) LOGICAL*1 RADGRO(3),RADUSR(3)C C C variablesiC  BYTE FILE(12),TEMP(40)uC C setup for processingC  COMMON/BUFFER/IBUFF COMMON/TAPEIO/CHANNEL,IOSBR CHANNEL=6# ISTAT=SYS$ASSIGN('TAPE',CHANNEL,,)R* IF(.NOT.ISTAT) CALL LIB$STOP(%VAL(ISTAT))( TYPE*,'** BRU Directory listing x01.00' C TYPE1000 C1000 FORMAT('$Input Tapedeck:')C ACCEPT1010,TEMPS 1010 FORMAT(40A1)'C IF (TEMP(1).GT.'Z')TEMP(1)=TEMP(1)-32'C IF (TEMP(2).GT.'Z')TEMP(2)=TEMP(2)-32TC IUNIT=TEMP(3)-'0'I$C IF(IUNIT.GT.7.OR.UNIT.LT.0)IUNIT=01C IF(TEMP(5).EQ.':')IUNIT=IUNIT*8+TEMP(4)-48 !'0')C CALL ASNLUN(6,TEMP,IUNIT,IDS)s'C IF(IDS.NE.1)TYPE*,'ASNLUN fails ',IDSAC IF(IDS.NE.1)CALL EXITN 1013 TYPE1015& 1015 FORMAT(' IASV3.1/LATER RSX (1)'/ 1' EARLY RSX (2)'/) 2'$ OR IASV3.2 (3) ? ') ACCEPT*,IAS$ IF (IAS.LT.1.OR.IAS.GT.3) GOTO 1013 C TYPE1020C ACCEPT*,IDENS1%C 1020 FORMAT('$Density (800/1600):')M"C PRL(1)="4004 !1600 or coredumpC IF(IDENS.EQ.800)PRL(1)=4 C CALL WTQIO("1400,6,6) !attach C CALL WTQIO("2400,6,6) !rewind CALL REWIND.C CALL WTQIO("2500,6,6,,IOSB,PRL) !set density TYPE10302 1030 FORMAT('$Listing format (FULL,BRIEF,LIST):') ACCEPT 1010,TEMP1 IFORMT=1 !listO8 IF(TEMP(1).GE.'a'.AND.TEMP(1).LE.'z')TEMP(1)=TEMP(1)-32 IF(TEMP(1).EQ.'B')IFORMT=0  IF(TEMP(1).EQ.'F')IFORMT=2L TYPE1040G 1040 FORMAT('$Output file:')C ACCEPT1050,ILEN,TEMPR 1050 FORMAT(Q,40A1)8C IF(ILEN.EQ.0)CALL ASNLUN(4,'TI',0) !default TTY output$C IF(ILEN.NE.0)CALL ASNLUN(4,'SY',0) TEMP(ILEN+1)=0W; IF(ILEN.NE.0)OPEN(UNIT=4,NAME=TEMP,CARRIAGECONTROL='LIST',6 / TYPE='NEW')i=C IF(ILEN.EQ.0)OPEN(UNIT=4,NAME='TI:',CARRIAGECONTROL='LIST',:C / TYPE='NEW')C >C at this point we should be at BOT with the tapedeck on LUN 6"C the listing file open on LUN 4. +C the terminal for errors/comments on lun 5GC C +C open a scratch file for directory entriesMC9 OPEN(UNIT=3,RECORDSIZE=4,ACCESS='DIRECT',TYPE='SCRATCH')!C start with the volume label.C CALL GETADR(PRL,IBUFF) C PRL(2)=4144W!C CALL WTQIO("1000,6,6,,IOSB,PRL)M CALL READTP9 IF(IOSB(1).NE.1) TYPE*,'Error on volume label read',IOSBT8 IF(IOSB(2).NE.80) TYPE*,'Unexpected length at BOT',IOSB0 IF(IBUFF(1).NE.'VO'.OR.IBUFF(2).NE.'L1') TYPE*, / 'Not VOL1 at BOT'i% WRITE(4,1060)(BBUFF(I),I=5,10),IDENSn4 1060 FORMAT('Volume label = "',6A1,'" Density ',I4)!C CALL WTQIO("1000,6,6,,IOSB,PRL) CALL READTP? IF(IOSB(2).NE.512)TYPE*,'Boot block error - Prob not BRU tape'vC ;C this is the point where we expect a new backupset/ of eotQC GOTO 6539 1070 CONTINUE WRITE (4,6522)KFIL,KUSD,KALL, 6539 CONTINUE!C CALL WTQIO("1000,6,6,,IOSB,PRL)8 CALL READTP IF(IOSB(1).EQ."4160)GOTO 80603 IF(IOSB(1).NE.1)TYPE*,'tape error',IOSB,' on HDR1' 3 IF(IOSB(2).NE.80)TYPE*,'Expected HDR1 found ',IOSB,/ IF(IBUFF(1).NE.'HD'.OR.IBUFF(2).NE.'R1')TYPE*,n" / 'Not HDR1 when expected'! WRITE(4,1080)(BBUFF(I+4),I=1,17)2, 1080 FORMAT('Ansi file label = "',17A1,'"')!C CALL WTQIO("1000,6,6,,IOSB,PRL)h CALL READTP> IF(008둱쑲,-TADATADATAIBUFF(1).NE.'HD'.OR.IBUFF(2).NE.'R2')TYPE*,'HDR2 expected'!C CALL WTQIO("1000,6,6,,IOSB,PRL)T CALL READTP5 IF(IOSB(1).NE."4160)TYPE*,'Tape mark expected', IOSBQ9C CALL WTQIO("1000,6,6,,IOSB,PRL) !now backup descriptor' CALL READTP7 IF(IOSB(2).NE.80)TYPE*,'Backupset descriptor expected'BC(<C Handle dump date differently if Early RSX or IAS/Later RSXCe7 IF (IAS.NE.2) WRITE(4,1090)IBUFF(7),(BBUFF(I),I=1,12),T/ / (BBUFF(I),I=15,26),(BBUFF(I+62),I=1,13)07 IF (IAS.EQ.2) WRITE(4,1090)IBUFF(7),(BBUFF(I),I=1,12),./ / (BBUFF(I),I=15,26),(BBUFF(I+56),I=1,13)QF 1090 FORMAT('VOL',I1,' Backupset ="',12A1,'" Disc label ="',12A1,'"',E / ' Dump taken at ',2A1,'-',3A1,'-',2A1,' ',2A1,':',2A1,':',2A1)d8 WRITE(4,1100)IBUFF(27),IAND("77777777,LONG(IBUFF(25))),! / IBUFF(22),LONG(IBUFF(23))dD 1100 FORMAT('Device type = ',A2,' Size =',I8,' Indexfile size =',I6 / ' MFD size = ',I7)(2C CALL WTQIO("1000,6,6,,IOSB,PRL) !read boot block CALL READTP2C CALL WTQIO("1000,6,6,,IOSB,PRL) !read home block CALL READTP+ if (ias.eq.3) CALL READTP !read ???? block I=IBUFF(6)' IF(I.EQ.0)I='??' IMAX=IBUFF(4) !is unisgned int+ IF(IMAX.LT.0)IMAX=IMAX+65536 !correct that2> WRITE(4,1101)IBUFF(1),LONG(IBUFF(2)),IMAX,IBUFF(5),IBUFF(7),I61101 FORMAT('Bitmap size = ',I6,' Starts at lbn=',I10, / ' Maximum files = ',I6/D / 'Cluster factor =',I6,' Structure level =',O6,' Disk type "', / A2,'"')+ ICOUNT=0 !there are no stored entries yetDC WRITE (4,6522)KUSD,KFIL,KALL:6522 FORMAT(' Total Files in set ',I7,' Space Used/Alloc', 1 I7,'/',I7) KUSD=0U KALL=0 !ALLOCATED SPACE TOTAL KFIL=0 !FILESC C here we expect a type record.+9C If this is a continuation tape only then it need not be,)C the UFD record, but may be HEAD or DATAaCi&C 1110 CALL WTQIO("1000,6,6,,IOSB,PRL) 1110 CALL READTP'# IF(IOSB(1).EQ."4160)GOTO 8000 !eofS> 1120 IF(IOSB(2).NE.80)TYPE*,'unexpected Sentinel length',IOSB IF(IBUFF(1).NE.'DA')GOTO 1140C>C normally we might do something else, however for a directory-C we simply skip the data blocks we fall overCSC------- C compress the directory entries&C - No longer since they are in a fileCd#C IPTR=ICOUNT !end of buffer usedoC ICOUNT=0 !assert empty now(C DO 1131 I=0,IPTR-1,8 !scan all bufferC IF(IDIR(I+1).EQ.0)GOTO 1131SC DO 1132 J=1,8LC IDIR(ICOUNT+J)=IDIR(I+J)C1132 CONTINUE C IDIR(I+1)=0SC ICOUNT=ICOUNT+8nC1131 CONTINUE:C TYPE*,'Directory compressed from ',IPTR/8,' to',ICOUNT/8@C 1130 CALL WTQIO("1000,6,6,,IOSB,PRL) !look for something else. 1130 CALL READTPc0 IF(IOSB(1).EQ."4160)GOTO 8000 !deal with eof- IF(IOSB(2).NE.80)GOTO 1130 !get more entries ( GOTO 1120 !work out what new sentinel. 1140 IF(IBUFF(1).NE.'UF')GOTO 1160 !not a UFDC=+C enter a UFD record, get current UIC valueEC)C IUFD=07C IF(IBUFF(11).EQ.1)IUFD=IBUFF(14)!get owning uic (bin)TCE<C MODIFIED, Directory uic owner not always the directory, so4C Save RAD50 version of UIC which is the correct one CALL R50ASC(3,IBUFF(6),RADGRO)R CALL R50ASC(3,IBUFF(7),RADUSR)3 CALL UFDCON(RADGRO,RADUSR,IUFD):C 1150 CALL WTQIO("1000,6,6,,IOSB,PRL) !read another block 1150 CALL READTP# IF(IOSB(1).EQ."4160)GOTO 8000 !eofn. IF(IOSB(2).EQ.80)GOTO 1120 !find what this is'C Here should be a block of a directory 4 DO 1151 I=0,IOSB(2)/2-1,8 !number of 8 word entries=C SINCE we find extra entries at end, assume for now that BRUeCC compresses directories, see if first zero FID is end of directoryt(C was GOTO 1151 to skip individual entryCO, IF(IBUFF(I+1).EQ.0)GOTO 1150 !deleted entry DO 1152 J=1,8 IDIR(J)=IBUFF(I+J) 1152 CONTINUE, IDIR(3)=IUFD Co>C have made an entry with Cn ICOUNT=ICOUNT+1 DIRFID(ICOUNT)=IDIR(1)i WRITE(3'ICOUNT)IDIR1 IF(ICOUNT.GT.10000)STOP ' Directory buffer full'8 IF(IFORMT.NE.0)GOTO 1151> CALL R50ASC(12,IBUFF(I+4),FILE) !convert to the file in ascii IGRP=IAND(ISHFT(IUFD,-8),"377)f IMEM=IAND(IUFD,"377) = WRITE(4,1153)IGRP,IMEM,FILE,IBUFF(I+8),IBUFF(I+00@41),IBUFF(I+2)BA1153 FORMAT('[',O3,',',O3,']',9A1,'.',3A1,';',O4,' (',O5,',',O5,U / ')') 1151 CONTINUEI GOTO 1150 !read another8 1160 IF(IBUFF(1).NE.'HE')GOTO 1190 !if not unrecognisedCN4C here process headers and corresponding UFD recordsCR=C the directory entries are already buffered. For each headerT,C read in, find the entry, and print it out.>C after finding zero the entry for later compression, to occur C when he hit the DATA sentinel.C46C 1170 CALL WTQIO("1000,6,6,,IOSb,PRL) !read ufd block 1170 CALL READTP'# IF(IOSB(1).EQ."4160)GOTO 8000 !eof, IF(IOSB(2).NE.80)GOTO 1180C- IF(IBUFF(1).NE.'UF')GOTO 1120 !dispatch thisIC IUFD=07C IF(IBUFF(11).EQ.1)IUFD=IBUFF(14)!get owning uic (bin)hCe<C MODIFIED, Directory uic owner not always the directory, so4C Save RAD50 version of UIC which is the correct one CALL R50ASC(3,IBUFF(6),RADGRO)  CALL R50ASC(3,IBUFF(7),RADUSR)l CALL UFDCON(RADGRO,RADUSR,IUFD);C The above allows us to do a 3 word match, thus accountingIC for synonyms.dCo GOTO 1170- 1180 CONTINUE !here with a block of headers,7 DO 1181 I=0,IOSB(2)/2-1,256 !each header in the buffer - DO 1182 J=1,ICOUNT !scan up directory bufferEC)4C fileid, seq are at offsets 2,3 current ufd is IUFDCe7C IF(IUFD.EQ.IDIR(J+3).AND.IDIR(J+1).EQ.IBUFF(I+2).AND.0,C / IDIR(J+2).EQ.IBUFF(I+3))GOTO 1183% IF(DIRFID(J).EQ.IBUFF(I+2))GOTO 1183A1182 CONTINUE !with scanL! CALL R50ASC(12,IBUFF(I+24),FILE) > WRITE(4,999)IBUFF(I+2),IBUFF(I+3),IBUFF(I+5),FILE,IBUFF(I+28)5999 FORMAT('FID',O6,':',O6,O7,' ',9A1,'.',3A1,';',O4)b& GOTO 1181 !some how we lost this one1183 READ(3'J)IDIR CALL R50ASC(12,IDIR(4),FILE)O IGRP=IAND(ISHFT(IUFD,-8),"377)) IMEM=IAND(IUFD,"377)o IUSED=LONG(IBUFF(I+12))" IF(IBUFF(I+14).EQ.0)IUSED=IUSED-1 IALLOC=LONG(IBUFF(I+10))D KFIL=KFIL+1 KUSD=KUSD+IUSED KALL=KALL+IALLOCI IF(IFORMT.NE.2)GOTO 1185O IF(IBUFF(I+29).EQ.1)GOTO 11872 WRITE(4,1184)IGRP,IMEM,FILE,IDIR(8),IUSED,IALLOC,. / IDIR(1),IDIR(2),(BBUFF(I*2+K),K=72,84)+ / ,(BBUFF(I*2+K),K=59,71),IBUFF(I+29).A1184 FORMAT('[',O3,',',O3,']',9A1,'.',3A1,';',O4,I6,'./',I6,'. ','; / '(',O6,',',O6,') ',2A1,'-',3A1,'-',2A1,' ',2A1,':',,8 / 2A1,':',2A1,' ',2A1,'-',3A1,'-',2A1,' ',2A1,':', / 2A1,':',2A1,' (',I5,')') GOTO 118961187 WRITE(4,1188)IGRP,IMEM,FILE,IDIR(8),IUSED,IALLOC,. / IDIR(1),IDIR(2),(BBUFF(I*2+K),K=72,84)A1188 FORMAT('[',O3,',',O3,']',9A1,'.',3A1,';',O4,I6,'./',I6,'. ',I; / '(',O6,',',O6,') ',2A1,'-',3A1,'-',2A1,' ',2A1,':', / 2A1,':',2A1) GOTO 11891185 IF(IFORMT.NE.1)GOTO 1189'A WRITE(4,1186)IGRP,IMEM,FILE,IDIR(8),IUSED,(BBUFF(I*2+K),K=72,84)O81186 FORMAT('[',O3,',',O3,']',9A1,'.',3A1,';',O4,I7,'. '5 / ,2A1,'-',3A1,'-',2A1,' ',2A1,':',2A1,':',2A1):1189 DIRFID(J)=0 1181 CONTINUE1 GOTO 1170& 1190 STOP 'Unexpected sentinel block'C C deal with end of backupset.2C,6C 8000 CALL WTQIO("1000,6,6,,IOSB,PRL) !read EOF1/EOV1 8000 CALL READTPI' IF(BBUFF(3).EQ.'F')GOTO 8040 !was eof1' WRITE(4,8010)" 8010 FORMAT(' *-End of Volume-*')+C CALL WTQIO("2540,6,6) !unload input tape19C 8020 CALL WTQIO("2520,6,6,,IOSB) !sense characteristics1>C IF(IAND(IOSB(2),"1400).EQ.0)GOTO 8030 !wait until a new tape!C CALL WAIT(1,2) !wait 1 second1C GOTO 8020 !and look again1C "C now have seen a tape on the deckC C 8030 PRL(1)=1c:C CALL WTQIO("2440,6,6,,IOSB,PRL) !skip 1 to get to header 8030 CALL SKIP(1)C CALL GETADR(PRL,IBUFF) !L C PRL(2)=4144BBC CALL WTQIO("1000,6,6,,IOSB,PRL) !after skipping Backupset header CALL READTP GOTO 1110 8040 WRITE(4,8050)n" 8050 FORMAT(' End of Backupset.') DO 8001 I=1,ICOUNTs IF(DIRFID(I).EQ.0)GOTO 8001 READ(3'I)IDIR; CALL R50ASC(12,IDIR(4),FILE) !convert to the file in asciit IUFD=IDIR(3)O IGRP=IAND(ISHFT(IUFD,-8),"377)  IMEM=IAND(IUFD,"377) 4 WRITE(4,8002)IGRP,IMEM,FILE,IDIR(8),IDIR(1),IDIR(2)A8002 FORMAT('[',O3,',',O3,']',9A1,'.',3A1,';',O4,' (',O5,',',O5,T / ')') 8001 CONTINUE4&C PRL(1)=1 !setup to skip eof labels#C CALL WTQIO("2400HL쑲,-TADATADATA40,6,6,,IOSB,PRL) !L CALL SKIP(1) C CALL GETADR(PRL,BBUFF) C PRL(2)=4144' GOTO 1070 8060 WRITE(4,8070)1 8070 FORMAT('*EOT*'). CLOSE(UNIT=4) TYPE*,'*EOT*'&C CALL WTQIO("2400,6,6) !rewind again CALL REWIND$C CALL WTQIO("2000,6,6) !and detach CALL EXIT ENDCE-C files 11 I*4 is the opposite to Fortran I*4E INTEGER*4 FUNCTION LONG(ID) INTEGER*2 ID(2),IT(2) INTEGER*4 IJ; EQUIVALENCE(IJ,IT(1)) IT(1)=ID(2) IT(2)=ID(1) LONG=IJ RETURNu ENDC 0C SPECIAL function to convert ascii uic to octalCL& SUBROUTINE UFDCON(RADGRO,RADUSR,IUFD) LOGICAL*1 RADGRO(3),RADUSR(3) LOGICAL*1 ITMP(4) INTEGER*2 JTMP(2) EQUIVALENCE (ITMP(1),JTMP(1)) DECODE (3,100,RADGRO) JTMP(2) DECODE (3,100,RADUSR) JTMP(1)100 FORMAT (O3)n ITMP(2)=ITMP(3) IUFD=JTMP(1) RETURN1 ENDchc subroutine to read one recordGc4 SUBROUTINE READTP dimension iosb(4)# integer*4 retcode,sys$qiow,bufsizeT common/tapeio/channel,iosb( integer*2 ibuff(2072) byte bbuff(4144)  equivalence(ibuff(1),bbuff(1))o common/buffer/ibuff parameter io$_readlblk='21'xG bufsize=4144); retcode=sys$qiow(,%val(channel),%val(io$_readlblk),iosb,,,N# 1%ref(bbuff(1)),%val(bufsize),,,,)R returnM endcCc subroutine to skip n recordscM SUBROUTINE skip(nskip)) dimension iosb(4)# integer*4 retcode,sys$qiow,bufsized common/tapeio/channel,iosb  integer*2 ibuff(2072) parameter io$_skiprecord='26'xu= retcode=sys$qiow(,%val(channel),%val(io$_skiprecord),iosb,,,b 1%val(nskip),,,,,)u returni endcbc subroutine to rewind tapefcp SUBROUTINE rewind dimension iosb(4) common/tapeio/channel,iosb( parameter io$_rewind='24'xo? retcode=sys$qiow(,%val(channel),%val(io$_rewind),iosb,,,,,,,,) returni endip n recordscM SUBROUTINE skip(nskip)) dimension iosb(4)# integer*4 retcode,sys$qiow,bufsized common/tapeio/channel,iosb  integer*2 ibuff(2072) parameter io$_skiprecord='26'xu= retcode=sys$qiow(,%val(channel),%val(io$_skiprecord),iosb,,,b 1%val(nskip),,,,,)u returniBRU TAPE FORMATS----------------?Although the format of a BRU tape is complex, it is feasable toDread such tapes on other than an RSX system. The format is describedEbelow, mainly as deduced from dumping parts of a short tape, and thus&should not be described as guaranteed.80 VOL1 Ansi Volume label@512 NOBOOT This volume does not contain a bootable system block, Obeyed if the tape is booted.+80 HDR1 ANSI file label for Backupset named?80 HDR2 ANSI file label 4144 byte max,internal carraige controlS*TM*B80 BACKUP Backupset label block, identifies disk dumped, date,time@512 BOOT The boot block from the backed up disk, or NOBOOT again0512 HOME The home block from the backed up disk.80 UFD UFD record for [0,0],?..... Usually there are no directory blocks here, but if filesi2 such as RSX11.SYS etc exist in [0,0] directory, " blocks listing these appear here#80 UFD UFD record for 1st directoryN@512*N DIRECT 0..8 directory blocks per buffer, as read from the  above directory file. 0repeat DIRECT until all directory blocks writtenRepeat UFD/Direct combinationsA80 HEAD Block of 80 bytes (20*'HEAD') flags start of file headers1%80 UFD Repeat of UFD record for [0,0]p)..... Headers for files in [0,0] if any, +80 UFD Repeat of first directory UFD recordbE512*N HDRS 0..8 File headers of files in the above directory. as readc from the disk.(repeat HDRS for all blocks in directory.!repeat for all above directories. A80 DATA Block of 80 bytes (20*'DATA') flags start of data blocks.tD48+512*N DAT Usually 4144 bytes data block. 1..8 data blocks with 48 byte prefix describing dataeKData blocks repeat for all the above described files, then more directories05and headers, then the bodies of more files. Ends withR*TM*&80 EOF1 End of file mark for backupset80 EOF2e*TM*!..................More backupsets *TM* Indicating end of tape.e)The special format blocks are as follows:r UFD blocks.c0 .ASCIZ /UFD/$ .BLKW 3 ;Fileid,seqno,relvol#(=0)'00PUV4 .BLKW 5 ;Directory filename in rad50l% ;and gen#, .RAD50 /000000 DIR/c ;.WORD 1y" .BLKW 1 ;directory level[0,0]=0# ;users =1, SCS11 might have 2+b# .BLKW 2 ;Size of directory HI,LO # .BLKW 1 ;owner uic for directorys$ .BLKW 1 ;protection for directory pad to 80 bytes with nulls.Backupset label.0 .BLKB 12. ;Backupset namei, .BLKW 1 ;backup volume set #(starts at 1)+ ;index to reels of multireel tape setsA .BLKB 12. ;disk namei$ .BLKW 8. ;GTIM$ 8 word time block( ;YR MON DY HR MIN SEC TIC Ticks/sec' .BLKW 1 ;Indexfilesize or Max files? .BLKW 2 ;Size of MFD[0,0]# .BLKW 2 ;HI,Lo size of orig diske! .BLKB 2 ;"DD - Device mnemonic  .BLKW 1 ;Index file position  .BLKB 7 ;DDMMMYY of dumpc .BLKB 6 ;HHMMSS of dump .BYTE 0 ;terminator pad to 80 bytes.Directory blocks#16. byte fixed length records, eache' .BLKW 3 ;Fileid, Fseqno, Relvolno(=0).u .BLKW 4 ;Rad50 /FILENAME EXT/ .BLKW 1 ;generation number.DA deleted or unused entry being one with the first word, the fileid, set to zero. Data blocks .BLKW 3 ;File-id (1 word), ;1-3 retrieval pointer relating to blocks ;in this data bufferi) repeat up to a total 0f 8 3 word groups.B9 If less than 8 groups, insert a null word as terminator.0% Pad to total of 24. words in header.9 Up to 8 data blocks, as described by retrieval pointers.. Note the retrieval pointers are in the format .BYTE hi-disk-lbn! .BYTE biased-count ;ie actual -1  .WORD low-disk-lbn ; 7 and relate to the logical blocks on the original disk, not to the file in any way."Recovery of files from a BRU tape.?Read UFD records, creating UFDs as you pass. Use the directory a@entries, buffered, to create the files as you find matching fileAheaders, creating the files with the correct attributes includingd=size. The Fileid/seqno for the new files must be saved, alonge=with the old file-id, and a table of retrieval pointers builtEArelating disk lbns to file vbns. Since there is no guarantee that Afiles will occur as complete units, you must be able to switch ton4the correct file to write the set of virtual blocks. UFD records, creating UFDs as you pass. Use the directory a@entries, buffered, to create the files as you find matching fileAheaders, creating the files with the correct attributes includingd=size. The Fileid/seqno for the new files must be saved, alonge=with the old file-id, and a table of retrieval pointers builtEArelating disk lbns to fileCONVERT=CONVERTLB:[1,1]F77OTS/LB//C C CONVERT.FORC BYTE FNAME(30) DIMENSION ICV(400) LOGICAL*1 JBUF(128)C DO 100 I=1,377 100 ICV(I)=-1C CALL ASSIGN(1,'EBCDIC.FIX',10) CALL FDBSET(1,'READONLY')"200 READ(1,1000,END=300) IDEC,IEBC1000 FORMAT(I3,34X,I3)C WRITE(5,6000) IEBC,IDEC"C6000 FORMAT(' ICV(',I3,') = ',I3) ICV(IEBC)=IDEC GOTO 200300 CALL CLOSE(1)C WRITE(5,7000)"7000 FORMAT('$INPUT FILE NAME ?') READ(5,7100) IFN,FNAME7100 FORMAT(Q,30A1) CALL ASSIGN(2,FNAME,IFN) WRITE(5,7200)"7200 FORMAT('$OUTPUT FILE NAME ?') READ(5,7100) IFN,FNAME0 CALL ASSIGN(3,FNAME,IFN)CD 1800 READ(2,1900,END=5000) LJBUF1900 FORMAT(1X,I6) ILEFT=LJBUF IREAD=128#2000 IF(ILEFT.LT.IREAD) IREAD=ILEFT=4 READ(2,2100,END=5000) (JBUF(IRJBUF),IRJBUF=1,IREAD)2100 FORMAT(128A1)-D WRITE(5,6100) (JBUF(IRJBUF),IRJBUF=1,IREAD)D6100 FORMAT(8(16(1X,O3),/))C DO 3100 I=1,IREAD JJ=JBUF(I).AND.255E J=ICV(JJ)C WRITE(5,6200) I,JBUF(I),JJ,J5C6200 FORMAT(' I,JBUF(I),JJ,J ',I6,6X,O6,6X,I6,6X,I6)000XY쑲,-TADATADATA IF(J.EQ.-1) GOTO 3000 JBUF(I)=J GOTO 31003000 JBUF(I)=63 3100 CONTINUEFCE-D WRITE(5,6100) (JBUF(IRJBUF),IRJBUF=1,IREAD)9-D WRITE(5,6300) (JBUF(IRJBUF),IRJBUF=1,IREAD)0D6300 FORMAT(1X,128A1), WRITE(3,3200) (JBUF(IRJBUF),IRJBUF=1,IREAD)3200 FORMAT(1X,128A1)F ILEFT=ILEFT-IREAD IF(ILEFT.GT.0) GOTO 2000B GOTO 1800C65000 CALL CLOSE(2) CALL CLOSE(3)C0 STOPE ENDJ=JBUF(I).AND.255E J=ICV(JJ)C WRITE(5,6200) I,JBUF(I),JJ,J5C6200 FORMAT(' I,JBUF(I),JJ,J ',I6,6X,O6,6X,I6,6X,I6)0 dd(V>SYSYSYSYTICLMO( ```f 8Lf ? e |RyeB  & & LP  & & & & & ffI  eA  : 7 v  yn\ d  & F H J2 *Zj     J  n (   pJ  v && FL P -vvnn,& R-NJ Fe Ϸ :-62 8V !FE7 !2"? 70 - e &Ϸ - w~  & F """ $INPUT FILE NAME ?  $OUTPUT FILE NAME ? "   EBCDIC.FIX READONLY6:F6J6TJ XJ TX00`UV48f b  8x &P~ x&   \|&e00hY쑲,-TADATADATAf&f ` *  נ נ  נננ"D נaנz E ѐEp(p נ$נ0נ9נAנZנ_נ:  Vנ[ȕ]נ<ȕ>ȋ8 ~נ%נ*נ-נ.נ0נ9נAנZȠ yנ0נ7נ*נ,A jȠh f  oנ"A   #A aנ$נ%נ*נ0נ9נAנZנ_נ.  נ.נ; dנ0נ9 ]נ- X נ* QA  נ, Dנ=  >5 B>U (w^נ/* . ,נ$נ-נ.נ0נ9נAנZ נ_ נ:  Dנ"  0f&f E^`  UQ  UQ ËUI U `e  !ddC    D%*.C U 0 0 W ,Uw6W /@ : ^BDaW-Ί WNWOD!BΊz CECCD! D! ΋5  e ΐ TpRpR΋pBC5N KR΋KBAE:D0CĊ f eB  Dҁ CSĊ * WB E Br Ε f)& 6 l(*  E 'W " =N  W :+W = 1 #W ,W / %W %W *Հ W <W [W >W ] v(* 6 e  &&f $ E3  ߆ %  І %ĉĆ BB ĉ , ,‰; ,JJV 3Vȥ ȕ$ȥ+ `l s@ Ps`; Fs,3/"R"'" 3 0As  :   >3  H JhŀdՀ`[WB ;  M  B@ 3VA3 N  & LwwtF3   H Z3 3 V3 N J  "e$"F3 Z NE% % % 5%% W 3W H Nwp `5@ @  E5e73 *,JJ I,J Jҕ Jx̾T96%  Ttr  $%T %T R%TR3,% e3LsNP(3LsN xsP%% %2 hsR%2%4 TsPRNZL&P N N5@ Х,  N: %RN ‰Nc % U%%  %2R%6RR n%B%.D THwA'͂2́`AH lT  BE&~WtEB~L"  sWwR. B%LHTD` B~RHTB%S%.S2 HA'L 2́`A  $J J N   - ΋  BE~WtEB~w . ;%LBHT w Е `CBД~w TH @` C~Ǹƈ`fdž:bbbbbbbb&&&& (*2ǠƖbbbbbb<(0+  "1""$BBDBBDB   Ee f  z % % e@ `5 & & D  6N D D eD e`D %   &fH”E  D   D 慡e BCE DIEN -5+-` #"   A s&DE s& sA ae0b  ~ҕ*~%  0   -+% 4@`v|:VNORAF$MINUbdhvx^`STOP PAUSE \____________________;________W_____}__y___00pUV4;;;;1;;;;;;;13;;9; -- ERRORFCS:Exiting due to (Error count exceeded)at PC = xLB:[1,2]F77OTS(@DB EĊ ,& Ċ  U3 B%եЉ Bw 3 \s 3D  D sdbD 3sss B`C r\wD 333b33 \hD 333 \D 3D 33D 3dO 83 D A 5 5,ND 5 H4HRTH4 5 5 HRȋ 5 0"ED 5UD ȋ ~Lχ 3 H 3 b3 d33 DB 5 p\Jeɋ,p/U pR LʥS  / :8 0( &, UeNB~3 щĊB%  5/WtE % sTsHlsX 3lTH,HX33H3T 3HsT  f ^ P H : 8 $         T3H eH3 3  ы 3HT3  R  F H w B`# %߉߉   l wD "ssl sfjePzi8 rl,3Wp6 B~t2B P~ 3 z `      "w  -&f Bʋ ~7B EU~& Bp Xȕ e e`e f~ T,%c Wpl@`.œ  `  3ȋs3 b3 3 dw" r3e  ɋ5 U 5  5 N* B 6 ~3  w &e 3 Z5  #U#U dw4ww R5  VfeB 2 C555 5 551 5p  Z <R %*K5GF##pEUUS#" <75\5 5 p,   n$p, 1 p s, & L* ¥ ¥¥E0#U " p te%ʵw . s eWp(eAarV'T<Zw n&& Z%1*  &ef& v cc6 6` e x*ep %ʥ¥bwf¥e   ^i F` 3&    w ltʋ3h3 v3 x3 56 26sv7sx.ltՀ5 fd  PAw6 8ie.B elw@5& 5Ε ,   e p ep oW3 &f2 2 VV " P     u쇀3l 3w B  . &  D 9 h ^  k  3 ^ f T 1v. v?  Օ,x | r5eT Օ.eZ \Օ; tc :r&?  H2 .Օ Օ-   e:f s!pU Օ ` D~  A M•0 M Mf6E@p^ pߋɉ ˉȉʉ@tEp> sՕ Օ ss  e hs& & &f& & & Ε  2nff)n s00xY쑲,-TADATADATA& TIf& % b %e ee e  w  *8^  - &  .NA M*)98  eB &&  U **e *Nlv ΋*.2  & #!)&ePe && >e >E  p* F wB w *eB 8  w B C DBe ?D(1 >w N `) 8C * ) *w| *  ep p  n = EW9ť^*0p CaC  = H  0* =Eե^A e@  = Ep+!"8eE`l0  0s00/pq0`p l064p 4 p  8 V *`)w  C#   D @)  6?0D)w eh wj w  D T 8#"#)%ĥ ĥ w 0 *0 @Q$    0 40 60))eB  [# R T&* =w< 2s q EW!p0p2 j؇#( P) @#**fff  &*w. k58e$8wT 2j  ,EB0-%. #p.2e 4  483  -Y r38 (#5=A#@))  *R*)@#0l C# 028 * 00ĥۇAĥĊ  000 l 0 @0 &*0 @ Lu #eB <*  eBe>  # #D #=0/H#@&0 # = e0   80@e 6=#02/002# @#?@#040 6w /! 0s0 0/0q0p!0 .=p0p2eB  8 $&w @*   x  w $ 6o832de& & & B  2PΕ   N Υ$Ε  22Υ   v Ε f e * *e*w@)0,    )*)'   =  l 0l   0/ e&=Ba@a  re0bGee@ ^ W= E8 el0  0s0pq0`p l064p 4 ep )wv%  ,    w>  LwB #  f  `**w)0406 l0 &ff 0+1e  %p*w. f( f)f 8 -2e L L0 0 0 80 B0 0 0 0)#0.)"(. = . B  E : P (.8Ae f"( UCɗ+e$&% *w z w p& W+W- Ba. W#  B0  c  c S W %ec e`s  # 3  & ˥ Z ^C   f &* *w BC "& @SY*p0p210=E%0=w*e "f D CB.E *) l0, *) $ )*)0,40,6 e6p 4 8 Z00UV4 .8 @81416      8 -̋ n f 8  08\0 ep=& /empp* *  - C46/`A p  C ? t  "̋3t42 &8f08  880!8 % P  8 w\w` 8  ***  DP5R~RRR~ew* )fff f f1    1  141612epl2l0p PMw    f ( >5>Eu   > =00l&8el2 0 *w \eE D` bl lrw   B eE"s    s-  CslM=f& e %&&eH =&e0  |U   E > >E=uf p  w8w *#   U@e   ew1  %,,  w $*D B UqqC ӥ: ~ Ce r   *w *  ע"wd(Ĕ%.%%;C~ 5)5@DD ͥ*Ce e%w U\5@ 5wU U*U  "5@\U@5 5LU*U  ʥ*%C!.D` *weC5U5  5 5@e*=U Ee& REe  ӥ" wX ˥"   ˥" Ք     Օ  ..8em,0l0!D0e6p 4K) Cf  +e) .* .8 - ̋  G  & >p8e6p 4 08*w&=p!Օ^8e2 ,*1 U8UM%..w\ wL dB 00fep=& /e`pw^46f  8 E D/D!pq0l8epl0pɥ .ɕ*w*He(  1 :&e  1-1- 111 rrrrr fe w&f &  Be  wF* w T&Ba +- ʥ# . U 0   b   `     &fe ~  2 $ L La Ta Wq(W!ZW!AW!9W!0@0,0, f 톇,, w      .% R eB U5UU plp & NeՀ)*f&5ҕ[ "5ҕ, 5ҕ]Et55tF e0ҐtI1 z  . 1 1 1 1 1 1 DEee $ $    f e  C C C e`w  ҥ[, &]  5 sC~ D w00쑲,-TADATADATADRS,DRS/-SP=DRSLB:[1,1]F77OTS/LB/ TASK=...DRS//BC R J D Kirkman. 1981 - A program to produce directory listings ofC BRU format tapes.C?C x01.01 December 1981 - Correct behaviour for multi-reel input1C tapesets. Note only one deck is used for input.CLC Mod to differentiate between IAS & RSX tapes, F. Borger, June 2 1983CJC slow version of BRUDIR, Uses a workfile to cater for 10000 files on diskC3C Program to list a directory of a BRU format tape,4C encompassing all the images on the tape, in any of(C BReif, LIst (default) or FUll formats.1C The listing is output to a user specified file.fC  PROGRAM BRUDIRC C Reader data bufferC  INTEGER IBUFF(2072) BYTE BBUFF(4144)! INTEGER*4 LONG,IALLOC,IMAX,IUSEDs INTEGER*4 KFIL,KUSD,KALL C C qio parameters ...C  INTEGER PRL(6),IOSB(2),C C directory info save bufferC C INTEGER DIRFID(10000)cC INTEGER IDIR(8)s LOGICAL*1 RADGRO(3),RADUSR(3)C C C variablesfC " BYTE FILE(12),TEMP(40),LASTFL(12) EQUIVALENCE(IBUFF(1),BBUFF(1))iC C setup for processingC ( TYPE*,'** BRU Directory listing x01.00' TYPE1000f 1000 FORMAT('$Input Tapedeck:') ACCEPT1010,TEMP 1010 FORMAT(40A1)& IF (TEMP(1).GT.'Z')TEMP(1)=TEMP(1)-32& IF (TEMP(2).GT.'Z')TEMP(2)=TEMP(2)-32 IUNIT=TEMP(3)-'0'# IF(IUNIT.GT.7.OR.UNIT.LT.0)IUNIT=0B0 IF(TEMP(5).EQ.':')IUNIT=IUNIT*8+TEMP(4)-48 !'0' CALL ASNLUN(6,TEMP,IUNIT,IDS)& IF(IDS.NE.1)TYPE*,'ASNLUN fails ',IDS IF(IDS.NE.1)CALL EXIT 1013 TYPE1015& 1015 FORMAT(' IASV3.1/LATER RSX (1)'/ 1' EARLY RSX (2)'/ 2'$ OR IASV3.2 (3) ? ') ACCEPT*,IAS$ IF (IAS.LT.1.OR.IAS.GT.3) GOTO 1013 TYPE1020p ACCEPT*,IDENS$ 1020 FORMAT('$Density (800/1600):')! PRL(1)="4004 !1600 or coredumpI IF(IDENS.EQ.800)PRL(1)=4E CALL WTQIO("1400,6,6) !attach( CALL WTQIO("2400,6,6) !rewind- CALL WTQIO("2500,6,6,,IOSB,PRL) !set density' TYPE1030L2 1030 FORMAT('$Listing format (FULL,BRIEF,LIST):') ACCEPT1010,TEMP IFORMT=1 !list18 IF(TEMP(1).GE.'a'.AND.TEMP(1).LE.'z')TEMP(1)=TEMP(1)-32 IF(TEMP(1).EQ.'B')IFORMT=0  IF(TEMP(1).EQ.'F')IFORMT=2C TYPE1040I 1040 FORMAT('$Output file:')0 ACCEPT1050,ILEN,TEMP* 1050 FORMAT(Q,40A1)7 IF(ILEN.EQ.0)CALL ASNLUN(4,'TI',0) !default TTY outputI# IF(ILEN.NE.0)CALL ASNLUN(4,'SY',0)T TEMP(ILEN+1)=0a; IF(ILEN.NE.0)OPEN(UNIT=4,NAME=TEMP,CARRIAGECONTROL='LIST',, / TYPE='NEW')s< IF(ILEN.EQ.0)OPEN(UNIT=4,NAME='TI:',CARRIAGECONTROL='LIST', / TYPE='NEW')EC >C at this point we should be at BOT with the tapedeck on LUN 6!C the listing file open on LUN 4.O+C the terminal for errors/comments on lun 54C C4+C open a scratch file for directory entriesTC*:C OPEN(UNIT=3,RECORDSIZE=4,ACCESS='DIRECT',TYPE='SCRATCH')C start with the volume label. CALL GETADR(PRL,IBUFF)T PRL(2)=4144 CALL WTQIO("1000,6,6,,IOSB,PRL)8 IF(IOSB(1).NE.1)TYPE*,'Error on volume label read',IOSB7 IF(IOSB(2).NE.80)TYPE*,'Unexpected length at BOT',IOSB,/ IF(IBUFF(1).NE.'VO'.OR.IBUFF(2).NE.'L1')TYPE*,o / 'Not VOL1 at BOT'c% WRITE(4,1060)(BBUFF(I),I=5,10),IDENSL4 1060 FORMAT('Volume label = "',6A1,'" Density ',I4) CALL WTQIO("1000,6,6,,IOSB,PRL)? IF(IOSB(2).NE.512)TYPE*,'Boot block error - Prob not BRU tape''C ;C this is the point where we expect a new backupset/ of eotLC GOTO 6539 1070 CONTINUE WRITE (4,6522)KFIL,KUSD,KALLO 6539 CONTINUE CALL WTQIO("1000,6,6,,IOSB,PRL) IF(IOSB(1).EQ."366)GOTO 8060p3 IF(IOSB(1).NE.1)TYPE*,'tape error',IOSB,' on HDR1'B3 IF(IOSB(2).NE.80)TYPE*,'Expected HDR1 found ',IOSB/ IF(IBUFF(1).NE.'HD'.OR.IBUFF(2).NE.'R1')T00UV4YPE*,M" / 'Not HDR1 when expected'! WRITE(4,1080)(BBUFF(I+4),I=1,17),, 1080 FORMAT('Ansi file label = "',17A1,'"') CALL WTQIO("1000,6,6,,IOSB,PRL)> IF(IBUFF(1).NE.'HD'.OR.IBUFF(2).NE.'R2')TYPE*,'HDR2 expected' CALL WTQIO("1000,6,6,,IOSB,PRL). IF(IOSB(1).NE."366)TYPE*,'Tape mark expected'8 CALL WTQIO("1000,6,6,,IOSB,PRL) !now backup descriptor7 IF(IOSB(2).NE.80)TYPE*,'Backupset descriptor expected'(CB<C Handle dump date differently if Early RSX or IAS/Later RSXC'7 IF (IAS.NE.2) WRITE(4,1090)IBUFF(7),(BBUFF(I),I=1,12),p/ / (BBUFF(I),I=15,26),(BBUFF(I+62),I=1,13) 7 IF (IAS.EQ.2) WRITE(4,1090)IBUFF(7),(BBUFF(I),I=1,12),,/ / (BBUFF(I),I=15,26),(BBUFF(I+56),I=1,13)NF 1090 FORMAT('VOL',I1,' Backupset ="',12A1,'" Disc label ="',12A1,'"',E / ' Dump taken at ',2A1,'-',3A1,'-',2A1,' ',2A1,':',2A1,':',2A1))8 WRITE(4,1100)IBUFF(27),IAND("77777777,LONG(IBUFF(25))),! / IBUFF(22),LONG(IBUFF(23))dD 1100 FORMAT('Device type = ',A2,' Size =',I8,' Indexfile size =',I6 / ' MFD size = ',I7)(1 CALL WTQIO("1000,6,6,,IOSB,PRL) !read boot blockF1 CALL WTQIO("1000,6,6,,IOSB,PRL) !read home block( I=IBUFF(6)I IF(I.EQ.0)I='??'B IMAX=IBUFF(4) !is unisgned int+ IF(IMAX.LT.0)IMAX=IMAX+65536 !correct that2> WRITE(4,1101)IBUFF(1),LONG(IBUFF(2)),IMAX,IBUFF(5),IBUFF(7),I61101 FORMAT('Bitmap size = ',I6,' Starts at lbn=',I10, / ' Maximum files = ',I6/D / 'Cluster factor =',I6,' Structure level =',O6,' Disk type "', / A2,'"')CI< IF (IAS.EQ.3) CALL WTQIO("1000,6,6,,IOSB,PRL) !read ? blockC(,C ICOUNT=0 !there are no stored entries yetC WRITE (4,6522)KUSD,KFIL,KALL:6522 FORMAT(' Total Files in set ',I7,' Space Used/Alloc', 1 I7,'/',I7) KUSD=0X KALL=0 !ALLOCATED SPACE TOTAL KFIL=0 !FILESC) DO 2221 IJK=1,12(2221 LASTFL(IJK)=0C C here we expect a type record.'9C If this is a continuation tape only then it need not be)C the UFD record, but may be HEAD or DATAvC % 1110 CALL WTQIO("1000,6,6,,IOSB,PRL)I" IF(IOSB(1).EQ."366)GOTO 8000 !eof> 1120 IF(IOSB(2).NE.80)TYPE*,'unexpected Sentinel length',IOSB IF(IBUFF(1).NE.'DA')GOTO 1140CK>C normally we might do something else, however for a directory-C we simply skip the data blocks we fall overLCTC------- C compress the directory entries&C - No longer since they are in a fileCw#C IPTR=ICOUNT !end of buffer usedsC ICOUNT=0 !assert empty now(C DO 1131 I=0,IPTR-1,8 !scan all bufferC IF(IDIR(I+1).EQ.0)GOTO 1131LC DO 1132 J=1,8,C IDIR(ICOUNT+J)=IDIR(I+J)C1132 CONTINUE C IDIR(I+1)=0SC ICOUNT=ICOUNT+8nC1131 CONTINUE:C TYPE*,'Directory compressed from ',IPTR/8,' to',ICOUNT/8? 1130 CALL WTQIO("1000,6,6,,IOSB,PRL) !look for something else.l/ IF(IOSB(1).EQ."366)GOTO 8000 !deal with eof-- IF(IOSB(2).NE.80)GOTO 1130 !get more entriese( GOTO 1120 !work out what new sentinel. 1140 IF(IBUFF(1).NE.'UF')GOTO 1160 !not a UFDCp+C enter a UFD record, get current UIC valuefCC IUFD=07C IF(IBUFF(11).EQ.1)IUFD=IBUFF(14)!get owning uic (bin)IC(<C MODIFIED, Directory uic owner not always the directory, so4C Save RAD50 version of UIC which is the correct one CALL R50ASC(3,IBUFF(6),RADGRO)O CALL R50ASC(3,IBUFF(7),RADUSR)o CALL UFDCON(RADGRO,RADUSR,IUFD)9 1150 CALL WTQIO("1000,6,6,,IOSB,PRL) !read another block " IF(IOSB(1).EQ."366)GOTO 8000 !eof. IF(IOSB(2).EQ.80)GOTO 1120 !find what this is'C Here should be a block of a directoryF5C DO 1151 I=0,IOSB(2)/2-1,8 !number of 8 word entriesU=C SINCE we find extra entries at end, assume for now that BRUDCC compresses directories, see if first zero FID is end of directoryi(C was GOTO 1151 to skip individual entryCA-C IF(IBUFF(I+1).EQ.0)GOTO 1150 !deleted entry,C DO 1152 J=1,8FC IDIR(J)=IBUFF(I+J)C1152 CONTINUEC IDIR(3)=IUFDCB>C have made an entry with C(C ICOUNT=ICOUNT+11C DIRFID(ICOUNT)=IDIR(1)C WRITE(3'ICOUNT)IDIRo2C IF(ICOUNT.GT.10000)STOP ' Directory buffer full'C IF(IFORMT.NE.0)GOTO 1151?C CALL R50ASC(12,IBUFF(I+4),FILE) !convert to the file in as00쑲,-TADATADATAciis C IGRP=IAND(ISHFT(IUFD,-8),"377)C IMEM=IAND(IUFD,"377)>C WRITE(4,1153)IGRP,IMEM,FILE,IBUFF(I+8),IBUFF(I+1),IBUFF(I+2)BC1153 FORMAT('[',O3,',',O3,']',9A1,'.',3A1,';',O4,' (',O5,',',O5, C / ')')NC1151 CONTINUE GOTO 1150 !read another8 1160 IF(IBUFF(1).NE.'HE')GOTO 1190 !if not unrecognisedCN4C here process headers and corresponding UFD recordsC =C the directory entries are already buffered. For each headerE,C read in, find the entry, and print it out.>C after finding zero the entry for later compression, to occur C when he hit the DATA sentinel.C,5 1170 CALL WTQIO("1000,6,6,,IOSb,PRL) !read ufd block1" IF(IOSB(1).EQ."366)GOTO 8000 !eof IF(IOSB(2).NE.80)GOTO 1180- IF(IBUFF(1).NE.'UF')GOTO 1120 !dispatch thiseC IUFD=07C IF(IBUFF(11).EQ.1)IUFD=IBUFF(14)!get owning uic (bin)dCN<C MODIFIED, Directory uic owner not always the directory, so4C Save RAD50 version of UIC which is the correct one CALL R50ASC(3,IBUFF(6),RADGRO), CALL R50ASC(3,IBUFF(7),RADUSR)n CALL UFDCON(RADGRO,RADUSR,IUFD);C The above allows us to do a 3 word match, thus accountingAC for synonyms.6CO GOTO 1170- 1180 CONTINUE !here with a block of headersf7 DO 1181 I=0,IOSB(2)/2-1,256 !each header in the buffer .C DO 1182 J=1,ICOUNT !scan up directory bufferC)4C fileid, seq are at offsets 2,3 current ufd is IUFDCe7C IF(IUFD.EQ.IDIR(J+3).AND.IDIR(J+1).EQ.IBUFF(I+2).AND.0,C / IDIR(J+2).EQ.IBUFF(I+3))GOTO 1183&C IF(DIRFID(J).EQ.IBUFF(I+2))GOTO 1183C1182 CONTINUE !with scan"C CALL R50ASC(12,IBUFF(I+24),FILE)?C WRITE(4,999)IBUFF(I+2),IBUFF(I+3),IBUFF(I+5),FILE,IBUFF(I+28)o6C999 FORMAT('FID',O6,':',O6,O7,' ',9A1,'.',3A1,';',O4)'C GOTO 1181 !some how we lost this one2C1183 READ(3'J)IDIRe! CALL R50ASC(12,IBUFF(I+24),FILE)nC  DO 3333 IJK=1,12)' IF(FILE(IJK).NE.LASTFL(IJK)) GOTO 3334t 3333 CONTINUEe GOTO 1189CI#3334 IGRP=IAND(ISHFT(IUFD,-8),"377)A IMEM=IAND(IUFD,"377)+ IUSED=LONG(IBUFF(I+12))" IF(IBUFF(I+14).EQ.0)IUSED=IUSED-1 IALLOC=LONG(IBUFF(I+10)) KFIL=KFIL+1 KUSD=KUSD+IUSED KALL=KALL+IALLOC, IF(IFORMT.NE.2)GOTO 1185B IF(IBUFF(I+29).EQ.1)GOTO 11876 WRITE(4,1184)IGRP,IMEM,FILE,IBUFF(I+28),IUSED,IALLOC,4 / IBUFF(I+2),IBUFF(I+3),(BBUFF(I*2+K),K=72,84)+ / ,(BBUFF(I*2+K),K=59,71),IBUFF(I+29)A1184 FORMAT('[',O3,',',O3,']',9A1,'.',3A1,';',O4,I6,'./',I6,'. ',C; / '(',O6,',',O6,') ',2A1,'-',3A1,'-',2A1,' ',2A1,':',A8 / 2A1,':',2A1,' ',2A1,'-',3A1,'-',2A1,' ',2A1,':', / 2A1,':',2A1,' (',I5,')') GOTO 1189:1187 WRITE(4,1188)IGRP,IMEM,FILE,IBUFF(I+28),IUSED,IALLOC,4 / IBUFF(I+2),IBUFF(I+3),(BBUFF(I*2+K),K=72,84)A1188 FORMAT('[',O3,',',O3,']',9A1,'.',3A1,';',O4,I6,'./',I6,'. ', ; / '(',O6,',',O6,') ',2A1,'-',3A1,'-',2A1,' ',2A1,':',( / 2A1,':',2A1) GOTO 11891185 IF(IFORMT.NE.1)GOTO 2222,E WRITE(4,1186)IGRP,IMEM,FILE,IBUFF(I+28),IUSED,(BBUFF(I*2+K),K=72,84)'81186 FORMAT('[',O3,',',O3,']',9A1,'.',3A1,';',O4,I7,'. '5 / ,2A1,'-',3A1,'-',2A1,' ',2A1,':',2A1,':',2A1), GOTO 11892222 IF(IFORMT.NE.0)GOTO 1189E? CALL R50ASC(12,IBUFF(I+24),FILE) !convert to the file in asciiB IGRP=IAND(ISHFT(IUFD,-8),"377)( IMEM=IAND(IUFD,"377).> WRITE(4,1153)IGRP,IMEM,FILE,IBUFF(I+28),IBUFF(I+2),IBUFF(I+3)A1153 FORMAT('[',O3,',',O3,']',9A1,'.',3A1,';',O4,' (',O5,',',O5,5 / ')')C1189 DIRFID(J)=0E1189 DO 3335 IJK=1,12I3335 LASTFL(IJK)=FILE(IJK) 1181 CONTINUE1 GOTO 1170& 1190 STOP 'Unexpected sentinel block'C C deal with end of backupset.'C 5 8000 CALL WTQIO("1000,6,6,,IOSB,PRL) !read EOF1/EOV1O' IF(BBUFF(3).EQ.'F')GOTO 8040 !was eof1  WRITE(4,8010)" 8010 FORMAT(' *-End of Volume-*')* CALL WTQIO("2540,6,6) !unload input tape8 8020 CALL WTQIO("2520,6,6,,IOSB) !sense characteristics= IF(IAND(IOSB(2),"1400).EQ.0)GOTO 8030 !wait until a new tape5 CALL WAIT(1,2) !wait 1 second GOTO 8020 !and look againC "C now have seen a tape on the deckC  8030 PRL(1)=19 CALL WTQIO("2440,6,6,,IOSB,PRL) !skip 1 to get to headerc CALL GETADR(PRL,IBUFF) ! PRL(2)=4144A CALL WTQIO("1000,6,6,00V4,IOSB,PRL) !after skipping Backupset header GOTO 1110 8040 WRITE(4,8050)*" 8050 FORMAT(' End of Backupset.')C DO 8001 I=1,ICOUNTC IF(DIRFID(I).EQ.0)GOTO 80016C READ(3'I)IDIRa<C CALL R50ASC(12,IDIR(4),FILE) !convert to the file in asciiC IUFD=IDIR(3) C IGRP=IAND(ISHFT(IUFD,-8),"377)C IMEM=IAND(IUFD,"377)5C WRITE(4,8002)IGRP,IMEM,FILE,IDIR(8),IDIR(1),IDIR(2) BC8002 FORMAT('[',O3,',',O3,']',9A1,'.',3A1,';',O4,' (',O5,',',O5, C / ')')PC8001 CONTINUE% PRL(1)=1 !setup to skip eof labels," CALL WTQIO("2440,6,6,,IOSB,PRL) ! CALL GETADR(PRL,BBUFF)T PRL(2)=4144 GOTO 1070 8060 WRITE(4,8070) 8070 FORMAT('*EOT*')  CLOSE(UNIT=4) TYPE*,'*EOT*'% CALL WTQIO("2400,6,6) !rewind again)# CALL WTQIO("2000,6,6) !and detach CALL EXIT ENDCI-C files 11 I*4 is the opposite to Fortran I*4) INTEGER*4 FUNCTION LONG(ID) INTEGER*2 ID(2),IT(2) INTEGER*4 IJT EQUIVALENCE(IJ,IT(1)) IT(1)=ID(2) IT(2)=ID(1) LONG=IJ RETURN ENDCT0C SPECIAL function to convert ascii uic to octalCT& SUBROUTINE UFDCON(RADGRO,RADUSR,IUFD) LOGICAL*1 RADGRO(3),RADUSR(3) DECODE (3,100,RADGRO) I DECODE (3,100,RADUSR) J100 FORMAT (O3) IUFD=IAND(ISHFT(I,8),"177400) IUFD=IOR(IUFD,J)i RETURN  END"2000,6,6) !and detach CALL EXIT ENDCI-C files 11 I*4 is the opposite to Fortran I*4) INTEGER*4 FUNCTION LONG(ID) INTEGER*2 ID(2),IT(2) INTEGER*4 IJT EQUIVALENCE(IJ,IT(1)) IT(1)=ID(2) IT(2)=ID(1) LONG=IJ RETURN ENDCT0C SPECIAL function to convert ascii | (URK0'DRSYSYSYSYTICLMO`JKBXBF````{SYSYSYSYTICLMO187P) ^RRR FC @AW P ~f BwA & f w`wl & & & & ` fRRRRC      8Lf ? e |RyeB  & & LP T & & & & & ffI  eA C & ~`  `Ba#   ~ L n& & & & Aff& )W &=epr   f&f&  p tze7 $  H J ^ 4 V ׭4$Z,$ 7$$$׭$Z$00쑲,-TADATADATA 7 $$$07*$  "$7 $`$׭#: $t#@`07#<$r -# "  | ) ܼ$-#| #b  | ) \ -#-|# d | H) ( h"-L# "~#~   |  &^  ܽ "׭"a ׭"z" 7"#׭"B7 "#׭"F""  D) X ^ ~" b" j" N"V"2(  ~" <" zj" &0! j-! BB  ʼ &"-!P \ n κ!- VO-L1  t 8 ! ree h!) ( h! -   x$ ҽ :d!\!^ ( ( ( ڼ .! <- w-   b  N  -H P  ( V  -HD-R1   Z ( ,ei " *T  b-^HD-XR2  2   ,-|   ^ Ƹ -PP   0 -v-D ^r .ee ޺ ee Ⱥ e  ,V--D r ƺee v ee ` e J  ķ  b @ @A C@ ` : f& H j   H??@v   ` f ع 6f& ( ֹn r ) - 7 T7 R7 P7 N7 @7 >2(  -(w-P $  & X- DAt -wN-PP-b UF B : ^* 8-w-~P- HEw -Rw-HP- UF ʾ ¾  r 7 7 `-\whL e7N x6j,0(( - w~H ~E7E7> 7 w2 we|$ 7VwT B @z7ex$ 7wew mw m7` w w`f wL ,Z 8) )  &e ( ( &eh Զ&ej ʶHH mee& p -T;$ mee& L -G e v rw q z) J) B H&e 0( >( 6&eh &ej HH m@ee& 2-.T (oRznJ 4N ) )  0 e ( H mee& > -T k@j ;e  E7xt P) )  D &e &eh ej& ,dVcL(( -@wa$w&`B _  ׭F3  Z =>* V0  l0 wP 8 P0 > .0wIZ  D t 8h  8J 0| p+fM7 @7777&47 @7 7@7 7Rf $)  XRf &) ((hp(r((())>\`(.d(((fn  $)V00쑲,-TADATADATA7 86*n+2*b**^**^+ 8J8)-PN*J8-T8 b*djtz€†00V4.777Kf&f ` *  נ נ  נננ"D נaנz E ѐEp(p נ$נ0נ9נAנZנ_נ:  Vנ[ȕ]נ<ȕ>ȋ8 ~נ%נ*נ-נ.נ0נ9נAנZȠ yנ0נ7נ*נ,A jȠh f  oנ"A   #A aנ$נ%נ*נ0נ9נAנZנ_נ.  נ.נ; dנ0נ9 ]נ- X נ* QA  נ, Dנ=  >5 B>U (w^נ/* . ,נ$נ-נ.נ0נ9נAנZ נ_ נ:  Dנ"  0f&f E^`  UQ  UQ ËUI U `e  !ddC    D%*.C U 0 0 W ,Uw6W /@ : ^BDaW-Ί WNWOD!BΊz CECCD! D! ΋5  e ΐ TpRpR΋pBC5N KR΋KBAE:D0CĊ f eB  Dҁ CSĊ B> WB E Br Ε f)& 6 l(*  E 'W " =N  W :+W = 1 #W ,W / %W %W *Հ W <W [W >W ] v(* 6 e  &&f n, E3  ߆ %  І %ĉĆ BB ĉ , ,‰; ,JJV 3Vȥ ȕ$ȥ+ `l s@ Ps`; Fs,3/"R"'" 3 0As  :   >3  H JhŀdՀ`[WB ;  M  B@ 3VA3 N  & LwwtF3   H Z3 3 V3 N J  "e$"F3 Z NE% % % 5%% W 3W H Nwp `5@ @  E5e73 *,JJ },J Jҕ JxT96%  Ttr  $%T %T R%TR3,% e3LsNP(3LsN xsP%% %2 hsR%2%4 TsPRNZL&P N N5@ Х,  Nn %RN ‰Nc % U%%  %2R%6RR n%B%.D THwA[f`A4H lT  BE&~WtEB~L  sWwR. v%LHTD` B~RHT%S%.S HA[L f`A   $J J N   - ΋  BE~WtE00Ȓ쑲,-TADATADATAB~w . o%LHT w Е `CBД~w TH @` C~  HE 8 ` P* %sN 3 N 4 N H@ . H N ^ٲAݲ`ÜW&fw  @ A BC &f&  f&&( B A @ "!   B      T  V@ U&TfE& % P(p/H,G'F. @D~ T %/ H *,B%& &  D %% %  4 ' "'B f&  v @   U% N @ %   ( )    e M& P,N    R1 D~1F~ ,L      ,3 H/' 3 RR  lT3Pl3 , TH {lP,  ‰P` PB` R~PR & & & &    3Pҕ ҕ(  @ҕ,lP  HT` | )   B D3~ ҕ  &f ҕ R~ƨȨԧȦ`ئf:bbbbbbbbʨШ֨&&&& (*2b֨bbbbb<(0+  "1""$BBDBBDB  A) )C+ +W''S$  ,/*)EeDd.TtFf  ʰʰh~~ Ee f  z % % e@ `5 & & D  6N D D eD e`D %   &fH”E  D   D 慡e BCE DIEN -5+-` #"   A s&DE s& sA ae0b  ~ҕ*~%  0   -+%  ɥ. ɥF ɥfɥTɥt Kѥ K Е ȕT ȕFK&f$E& Ee  v % % U@  5    ^ P`D A @ 䀎    E     e &f& 5 U B  և ”E   CPQCQBm     v   &   5@%PeE T  <5eN N (E D A @  eb" b"    D A @ &f&f eD A @ eA @ e@ e&f&f   C r &@r&@r(&DsPA r C wA `t E ED f# & @ & EUC &     F&C  z   j  6cm66#  & w`     # 6 c   6 m 5 K H E ҕ-5ҕ+ F E@t`e0Ґ 7    E , e C HCҕ \ %% >  ҕ0ҕ. ҕ0 Ґ+-  Ґċ %  C ҕ0 s e0e0RC Ee eva ҕ* v&EEU-`5 6! 6 BN~ ; R 2R + E      R~e eE R~   E 5%% E -6vAQ~Ue B@E DEIC D `6 *a0 .< |00ВV4EM   % ee0bv  @`ae ҕ*~ ~  0   ~e  f U   vzp`д"(****"&"P@ ____________________;________W_____}__y___;;;;1;;;;;;;13;;9;Ȩ>R\ȄȘȬȶ8`.FXɦ !!@ vhpbdhvx^`STOP PAUSE  -- ERRORFCS:Exiting due to (Error count exceeded)at PC = lLB:[1,2]F77OTS(@3 l & fмA BU%D~  ȼ  l耖% l. dwlX3 3 d3 d 3UlE0@A t<ؼ5t\Ҽ l 3 XsXsd3 dW@W@ A@ A%      eJw \ \  ҕ C~ss` \@ \ހbw 6 ( 8    H   :2  ( &@  H  3 \s 3D  D sdbD 3sss B`C r\wD 333b33 \hD 333 \D 3D 33D 3dO x 3 D A 5 5,D 5 H4HRH4 5 5 HRȋ 5 0"ED 5UD ȋ ༇ V 3 H 3 b3 d33 ͋ %swNe   ^i F` 3&    w ltʋ3h3 v3 x3 56 26sv7sx.ltՀ5 fd  Aw ie.B elw@ 5/WtE % sTsHlsX 3lTH,HX33H3T 3HsT            t r ^ h H RT3H eH3 3  ы 3HT3      w B`   3 N3 3 33(wX B`# %߉3 l fA BU%D~  t  l뀖% le 5E e . dwlX3 3 d3   ȋ35(Ul lA WBA U l@ 4<ƽ4\5 5 Fνt/ lW-W-UW-5U  l lW-U5U 5  5e3 4 U lU@4׽ U v %48  l N l4( : l4,  / A t<t\ڽ l 3 XsXsd3 d 4t l tU 4$ l% lA L\y555U5U5U lsZ3 ZEW-U lAWWA@ @ AV ߉ ~  ( w "ssl s . 0 Rr w H"s3 5 5 Q  s`sfjePzi8 rl,3Wp6 B~tvB P~ 3  `    ADEwJ  w>   -A =v@ P3e  ɋ5 U 5  5 6 B 6 ~3  00ؒ쑲,-TADATADATA,%c Wpl@`.œ  `  3ȋs3 b3 3 dwh  &ef& v cc6 6` w &e 3 Z5  #U#U dwwPw j5  VfeB C555 5 551 5p  Z <R %*K5GF##pEUUS#" <75\5 5 p,   n$p, 1 p s, & L* ¥ ¥¥E0#U " p te%ʵw . s eWp(eAarV'T<Zw && Z%1*w `B  . &  8 - h j^  V_  3 ^ f :H 1v. "3  Օ,x | r5eT Օ.eZ \Օ; hc r&? : H& .Օ Օ-   e:f s!pU Օ  D~  A M•0 M Me N*ep %ʥ¥bw0¥&f Bʋ ~7B EU~& Bp ȕ e e`e Lf~ 5& 5Ε ,   e p ep oW3 &f2 2 VV " P     u쇀3l 3f& % b %e ee e  Օ Օ ss  e hs& & &f& & & Ε  2nff)n s& TI  A!B~!AB~CaD!A#B~aABaB~f6E@p^ p2ԋɉ ˉȉʉ@tEp` sw 8 *8^  - P  .NA M*)98 < eB &&  U **e *Nlv ΋*.2  & #!)&ePe && >e >E . p* p wl w *eB 8 6  w B C DBe ?D(1 >w x ) 8C * ) *w *   ep p  n = EW9ť^*0p CaC  = H  0* =Eե^A e@  = Ep+!"8eE`l0  0s00/pq0`p l064p 4 p  8 V *`)w  C#   D @)  6?0D)w *e w w *eB 8 `  w  D * 8#"#)%ĥ ĥ w 0 *0 @Q$    0 40 60))eB  [# R T&* =w< 2s q EW!p0p2 j؇#( P) @#**fff  &*w. k58e$8wT 2j  ,EB0-%. #p.2e 4  483  -Y r38 (#5=A#@))  *R*)@#0l C# 028 8 00ĥۇAĥĊ  000 l 0 @0 &*0 @ Lu #eB <*  e00V4Be>  # #D #=0/H#@&0 # = e0   80@e 6=#02/002# @#?@#040 6w /! 0s0 0/0q0p!0 .=p0p2eB  8 $&w @*   x  w $ 6o832de& & & B  2PΕ   N Υ$Ε  22Υ   v Ε f e * *e*w@)0,    )*)'   =  l 0l   0/ e&=Ba@a  re0bGee@ ^ W= E8 el0  0s0pq0`p l064p 4 ep )wv%  ,    w>  LwB #  f  `**w)0406 l0 &ff 0+1e  %p*w. f( f)f 8 -2e L L0 0 0 80 B0 0 0 0)#0.)"(. = . B  E : P (.8Ae f"( UCɗ+e$&% *w z w p& W+W- Ba. W#  B0  c  c S W %ec e`s  # 3  & ˥ Z ^C   f &* *w BC "& @SY*p0p210=E%0=w*e "f D CB.E *) l0, *) $ )*)0,40,6 e6p 4 8 h .8 N81416      8 -̋ n f 8  08\0 ep=& /empp* *  - C46/`A p  C ? t  "̋3t42 &8f08  880!8 % P  8 w\w` 8  ***  DP5R~RRR~ew* )fff f f1    1  Mw>141612epl2l0p   f ( >5>Eu   > =00l&8el2 0 *w \eE D` bl lrw   B eE"s    s-  CslM=f& e %&&eH =&e0  |U   E > >E=uf p  w8w *#   U@e   ew1  %,,  w $*D B UqqC ӥ: ~ Ce r   *w *  ע"wd(Ĕ%.%%;C~ 5)5@DD ͥ*Ce e%w U\5@ 5wU U*U  "5@\U@5 5LU*U  ʥ*%C!.D` *weC5U5  5 5@e*=U Ee& REe  ӥ" wX ˥"   ˥" Ք 00,-TADATADATA    Օ  ..8em,0l0!D0e6p 4K) Cf  +e) .* .8 - ̋  G  & >p8e6p 4 08*w&=p!Օ^8e2 ,*1 U8UM%..w\ wL dB 00fep=& /e`pw^46f  8 E D/D!pq0l8epl0pɥ .ɕ*w*He(  1 :&e  1-1- 111 rrrrr fe w&f &  Be  wF* w T&Ba +- ʥ# . U 0   b   `     &fe ~  2 $ L La Ta Wq(W!ZW!AW!9W!0@0,0, f 톇,, w      .% R eB U5UU plp & NeՀ)*f&5ҕ[ "5ҕ, 5ҕ]Et55tF e0ҐtI1 z  . 1 1 1 1 1 1 DEee $ $    f e  C C C e`w  ҥ[, &]  5 sC~ D w;+ ; DSCCPY.CMD;; TASK BUILD COMMAND FILE FOR DSCCPY - RESTORE SINGLE FILES; FROM DSC TAPES.;-DSCCPY=DSCCPY,DSCFTN,DSCMACLB0:[1,1]F77OTS.OLB/LB/ASG=TI:1 ; PROMPTING OUTPUTASG=TI:2 ; RESPONSE INPUTASG=MT:3 ; DSC TAPE INPUTASG=SY:4 ; DISK OUTPUTASG=TI:5LIBR=F77BIG:RO// DSCCPY.DOCn t= DSCCPY - FORTRAN program to copy just a few files from a DSC + tape without restoring the entire volume.   William D. Burton, Jr.- Texas Research Institute of Mental Sciencesm 1300 MoursundC Houston, Texas 77030t (713) 797-1976 ext 5011 u Modifications:P M= 3-Nov-81, WB-005, Put confirmation of files copied on LUN-5I so it can go to some otherp& device. Add count of files copied.; 2-Nov-81, WB-004, Add option to select files to be copiede! on the basis of creation date.P. 28-Aug-81, WB-003, Do not unload after rewind* 22-Jun-81, WB-002, Fix overwrite of files( 22-Jun-81, WB-001, Allow 1600 BPI tape. eA I needed a program to copy some files from a DSC (Disk-Save-and-sG Compress) tape from a large disk onto an RK-05. DSCCPY is the result.E It was written in FORTRAN (Fortran-IV-Plus v 2.51) and MACRO and hast& run under RSX-11M V3.0 (sic) and IAS. n USING THE PROGRAM:  oB This program is controlled by user responses to prompts. It willF not accept indirect command files). The input tape(s) are UNMOUNTED.J The reels of a multi-reel set do not have to be read in sequence PROVIDED6 that the data file being copied does not cross reels. $ 1. The Input tape must be UNMOUNTED m$ 2. The Output Disk must be MOUNTED. h( 3. Run DSCCPY and answer the questions: a" a. prompt = ENTER TAPE INPUT UNIT/ answer = input tape device name (e.g. MT1:)IB program action = Assign Fortran LUN 3 to the specified device. Attach d00V4evice and rewind.  answer = control-Z program action = exit. E+ b. prompt = TAPE DENSITY (800 OR 1600 BPI)e 5 answer = Integer 800 or 1600 for density of tape.  default is 800 bpi..4 program action = Set density of tape using QIO. u t DSCCPY.DOC (continued)h 3 u c. prompt = DSC TAPE FILE NAME: aD answer = 12-character file name specified when tape was created.< a wildcard (*) matches any name. A wild character (?)# matches any single character.d cC answer = a null input (carriage return only) inhibitsE: the search for a named DSC output file. This is the8 response which must be used if the first reel of a+ multiple reel tape is NOT being read.e= program action = Search for the ANSI HDR1 record with the: specified label. If not found on the current reel,  return to step 3a. h, d. prompt = OUTPUT DEVICE AND UIC DDU:[UIC]@ answer = Disk output device where the restored file is to be7 put. No wildcards. The defaults are the normal g! Fortran defaults for LUN 4. @ program action = Check for the desired volume being mounted. h e. prompt = FILE TO BE COPIED a? answer = [OWNING UIC]filename.ext;version of the file to ben8 located and copied. Any field can be wildcard (*)$ or contain wild-characters (?) e answer = /FI:filn,filsn.: this allows the user to copy a single file using its7 original file-number (filn),file-sequence-number.& NO wildcards or wild-characters. ? program action = Search for the file specified and copy to i9 the output. If the file is not on the current reelr: of a multi-reel tape, a prompt for the new reel will be issued.9 If the file is not in this volume (i.e. an ANSI EOFb2 record is found) an error message is output.7 If the file already exists (same Directory, name, : extension, version) an error message is produced and the file is not copied.r D f. prompt = FILENAME CONTAINS WILD CHARACTERS, COPY MULTIPLE FILES? o answer = Y; program action = multiple files will be copied. Promptt0 (g) will be produced (creation date selection) t answer = N> program action = Only the first file which matches will be3 copied. No selection on creation date. NOTE the 6 file copied will not necessarily be the one with the highest version number.  e o DSCCPY.DOC (continued)a i r* g. prompt = MULTIPLE FILES WILL BE COPIED; SELECT BY CREATION DATE? [BEFORE: ON: AFTER: DD-MMM-YY]I' -ONLY IMPLIES NO DATE SELECTIONa ?i = answer = OPTION: dd-mmm-yy % where OPTION = BEFORE, ON, AFTERi dd-mmm-yy = datet6 OPTION must be followed by either a : or a space.; No other spaces are allowed. Date must be in the form  specified.B program action = file header of file with matching name will be8 checked to see if the creation date falls in the range= implied by the option. If it does, the file will be copied.I D answer = (null line)2 program action = No selection by creation date.  a3 h. prompt = WARNING, FILE ALREADY EXISTS FILENAME:E DO YOU WANT TO:- C COPY ANYWAY (OVERWRITE) S SKIP COPYYYING THIS FILEp N CREATE A NEW VERSIONa+ answer = C, S, or N default is to skips program action:m* C - program will overwrite the old file.5 S - program will skip the copy (the new input file)l8 N - Will cause the version number of the offending new: file to be stripped off. Then the file will be open7 for output, creating a new "most recent" version.a h r DSCCPY.DOC (continued)A E T NOTES AND LIMITATIONS:U NK 1. This program has been used on both 7-track and 9-track TM-11 look-alikeE@ drives. Routine NXTAPE was changed to allow 1600 bpi tapes. J 2. If DATA OVERRUN errors (-13. IE.DAO) occur, the size of the tape inputA buffer can be increased using PARAMETER NRLTH= newsize in theiD main program. The buffer sh00,-TADATADATAould never be less than 1040. bytes. fE 3. Error checking on the prompt input filenames is very primitive. nD Only a simple check on the syntax of the file specifier is done.A Illegal characters in the fields are not detected. This will-$ lead to "NOT FOUND" type errors. P* 4. There is no verify of the copied data. J 5. The /FI:filn,seqn command does not accept wildcards or wild characters fH 6. Because directory files are not guaranteed to be on the same reel as@ the file being copied, and I didn't want to have to read theA whole DSC volume, I chose to use the file identifier as found D in the files-11 file header. If a file has been re-named beforeB being DSC-ed this file identifier will not match the directory@ entry. The /FI: option can be used to find the file, given( a DSCDIR listing of the directories. oK 7. As much information as practical of the original file-header is preser- D ved with the copied file. Because I did not want to do the copyF with the index-file UNLocked not all information is preserved. TheG following items from the file header are preserved during the copy:e file name, extension, versione: space allocated and contiguous/non-contiguous indication end-of-file pointer. record attributesn / The following information is NOT preserved:g DIRECTORY uice OWNING uic creation date and time last update date and timed mappingr    DSCCPY.DOC (continued)c e d INSTALLING DSCCPY oB DSCCPY was originally compiled under F4P (version 2.51). It usesJ some MACRO-11 routines for string and FDB manipulation. The distribution includes the following files: o# DSCCPY.FTN -- Fortran main programn" DSCFTN.FTN -- Fortran subroutines# DSCMAC.MAC -- Macro-11 subroutines & DSCCPY.CMD -- Task build command file DSCCPY.DOC -- This document.  I8 Compile or Assemble as appropriate, the 3 source files. dJ Edit the task build command file to reflect your configuration if needed.H The device assignments for luns 3 and 4 are changed in response to user prompts at run-time.e or string and FDB manipulation. The distribution includes the following files: o# DSCCPY.FTN -- Fortran main programn" DSCFTN.FTN -- Fortran subroutines# DSCMAC.MAC -- Macro-11 subroutines & DSCCPY.CMD -- Task build command file DSCCPY.DOC -- This document.  I8 Compile or Assemble as appropriate, the 3 source files. dJ Edit the task build command file to reflect your configuration if needed.H TheC+ C DSCCPY.FTNCDC THIS IS THE MAIN PROGRAM WHICH WILL RESTORE A SUBSET OF A DSC TAPE C TO DISK.CIC EDITED JUNE 85 TO FIX BUG IF FIRST THING ON A TERMINAL LUN IS A READ FBC USE LUN 5 FOR ALL TERMINAL IOC&C INPUTS: DSC TAPE UNMOUNTED ON LUN 3C)C PROMPT RESPONSES THROUGH LUN 5C$C OUTPUTS: RESTORED FILE(S) ON LUN 4C PROMPTS ON LUN 5,C LIST OF FILENAMES COPIED ON LUN 5CC SUBROUTINES REQUIRED:CC USER SUPPLIED ROUTINES:C4C CKTAPE - CHECK TAPE STATUS RETURN FROM RDTAPEBC DCONV - CONVERT DATE STRING TO INTEGER EQUIVALENT (WB-004)!C (REQUIRES IFSTEQ)FCC FIXFDB - PATCH UP FILE-DESCRIPTOR-BLOCK FROM OLD FILE HEADERN*C (REQUIRES SYSTEM ROUTINES);C ICPOS - GET INDEX INTO STRING OF MATCHING CHARACTER 8C IDCMPR - COMPARE INTEGER VALUES OF DATES (WB-004)@C IFSTEQ - FUNCTION TO SEE IF STRINGS MATCH (WITH WILDCARD)3C NXTAPE - PROMPT USER TO LOAD NEXT INPUT TAPE*C (REQUIRES SYSTEM ROUTINES)3C PARSE - SCAN INPUT LINE FOR FILENAME STRINGTAC PPASC - CONVERT BINARY TO PROGRAMMER-PROJECT NUMBER (UIC) )C (REQUIRES SYSTEM ROUTINE)O-C RDTAPE - DO DIRECT QIO READ OF MAGTAPEY)C (REQUIRES SYSTEM ROUTINE)N4C UNSPAC - REMOVE ASCII WHITE SPACE FROM STRINGCC UPCASE - CONVERT INPUT STRING TO ALL UPPER CASE, 7-BIT ASCII CS&C SYSTEM SUPPLIED ROUTINES REQUIRED:C ,C ASSIGN - ASSIGN FORTRAN LUN TO DEVICE>C 00V4 ERRSET - SET CHARACTERISTICS OF FORTRAN FILE OPEN ERROR,C ERRSNS - GET STATUS OF FORTRAN ERRORSC EXIT - END OF PROGRAM2C GETADR - RETURN ADDRESS OF BUFFER TO CALLER1C R50ASC - CONVERT RADIX-50 TO ASCII STRING.T&C WTQIO - SYSTEM LEVEL I/O CALL.CIC DSCCPY VERSION 1.2COAC 3-NOV-81 WB-005, DSCCPY -- MOVE CONFIRMATION MESSAGES TO LUN-5I?C ADD FILES-COPIED COUNTER, FIX ERROR HANDLERNAC 2-NOV-81 WB-004, DSCCPY, DCONV, IDCMPR -- ADD OPTION TO SELECT AC FILES BY CREATION DATE (BEFORE:, ON:, AFTER:)E@C 28-AUG-81 WB-003, DSCCPY, NXTAPE -- DO NOT UNLOAD AFTER REWIND;C 23-JUN-81 WB-002, DSCCPY -- DON'T OVERWRITE EXISTING FILE <C 22-JUN-81 WB-001, NXTAPE -- SELECT 800 OR 1600 BPI DENSITYCT#C 10-MAY-81, W. D. BURTON, JR.I=C TEXAS RESEARCH INSTITUTE OF MENTAL SCIENCESSC 1300 MOURSUND 'C HOUSTON, TEXAS 77030D)C (713) 797-1976, EXT 501CC-CACO PARAMETER IOWVB="110009 BYTE DSCFIL(12), OUTFIL(35), INFIL(35), OUTBUF(512)88 BYTE UICS(9), TUIC(9), FNAMES(21), TFILEN(21), ANSC)C WB-004 WORKING AREAS FOR DATE SELECTIONT PARAMETER NDOPTS=3' BYTE DSTRNG(20), DOPTNS(6,NDOPTS)B INTEGER IDT1(3), IDT2(3) LOGICAL IFDATEC ) INTEGER HEADER(49), NFS(2), IPRL(6)E INTEGER*4 NFSIZE# LOGICAL IFWILD, IFCOPY, IFFID C CC THE PARAMETER -NRLTH- CONTROLS THE SIZE OF THE INPUT TAPE BUFFER.@C IF DATA-OVERRUN ERRORS OCCUR WHILE READING TAPE, MAKE -NRLTH-7C LARGER. -NRLTH- SHOULD NEVER BE LESS THAN 1040(10)U% PARAMETER NRLTH=2064, HDRLTH=16CB LOGICAL*1 BUF(NRLTH)F INTEGER DSCHDR(HDRLTH/2), WORDS(NRLTH/2), DATA((NRLTH-HDRLTH)/2)CS* INTEGER*4 NREC, NTOTB, NBUSE, NFILESCA> EQUIVALENCE (BUF(1),DSCHDR(1)), (BUF(HDRLTH+1),DATA(1)), 1 (BUF(1),WORDS(1))IC " EQUIVALENCE (NFS(1), NFSIZE)CEC WB-004 DATE OPTIONSE: DATA DOPTNS /'B','E','F','O','R','E', 'O','N',4*' ',! 1 'A','F','T','E','R',' '/TCC FORMATS FOR TERMINAL OUTPUTEE 1000 FORMAT (1H0, 'DSCCOPY - RETRIEVE FILES FROM DSC TAPE, V 1.2',/) 7 1001 FORMAT (/ 1H$, 'ENTER DSC TAPE FILE NAME [A] ') CDH 1100 FORMAT (1H0,'DSC OUTPUT TAPE FILE ', 12A1, ' IS NOT ON THIS REEL')D 1101 FORMAT (1H0, 'I/O ERROR', I4, ' DURING SEARCH FOR DSC OUTPUT', 1 ' TAPE FILE')< 1200 FORMAT (/ 1H$, 'OUTPUT DEVICE AND UIC - DDU:[UIC] ')B 1201 FORMAT (1H0 'FILE TO BE COPIED', / 1H , 'REMEMBER [UIC] IS',9 1 ' OWNING UIC, NAME IS NAME FROM HEADER', // 1H$, 2 '[UIC]NAME.EXT;VER ')3 1205 FORMAT (1H0, 'OUTPUT DEVICE MUST BE MOUNTED')'# 1220 FORMAT (1H , 'BAD FILE NAME') F 1230 FORMAT (1H$, 'FILENAME CONTAINS WILD CHARACTERS, COPY MULTIPLE', 1 ' FILES? [Y/N] ')> 1250 FORMAT (1H0, 'MULTIPLE FILES WILL BE COPIED', / 1H , 2X,C 1 'SELECT BY CREATION DATE? [BEFORE: ON: AFTER: DD-MMM-YY]',N< 2 / 1H , 2X, '-ONLY IMPLIES NO DATE SELECTION', / 3 1H$, '? ') C,8 1300 FORMAT (1H0 'COULD NOT LOCATE FILE ', 9A1, 21A1, /$ 1 1H , 5X, 'IN VOLUME ', 12A1)C0< 1415 FORMAT (1H , 'FILE DID NOT START ON THIS REEL ', 35A1)CHC WB-002; 1416 FORMAT (1H0, 'WARNING - FILE ALREADY EXISTS: ', 35A1)T6 1417 FORMAT (1H , 5X, 'DO YOU WANT TO:', / 1H , 10X, F 1 'C = COPY ANYWAY (OVERWRITE)', / 1H, 10X, 'S = SKIP COPYING',@ 2 ' THIS FILE', / 1H , 10X, 'N = CREATE A NEW VERSION', / 3 1H$, '? ')I C END, WB-002S/ 1420 FORMAT (1H0, 'ERROR OPENING FILE ', 35A1)O9 1435 FORMAT (1H , 'TAPE ERROR', I4, ' DURING FILE COPY')H8 1436 FORMAT (1H0, 5X, 'FILE CONTINUES ON ANOTHER REEL')CNC FORMATS FOR CONSOLE INPUT) 2000 FORMAT (Q, 12A1) 2200 FORMAT (Q, 30A1) 2201 FORMAT (Q, 35A1) 2202 FORMAT (2O7) 2230 FORMAT (A1)N 2250 FORMAT (Q, 30A1) 2417 FORMAT (A1)YC #C FORMAT FOR INTERNAL ENCODE/DECODEP 3000 FORMAT (O6)TC #C WB-005 COPY CONFIRMATION MESSAGESV' 5410 FORMAT (1H , 'BEGIN FILE ', 35A1), 5500 FORMAT (1H, 'COMPLETE')R. 5520 FORMAT (1H , 500,-TADATADATAX, I5, ' FILES COPIED', /); 5800 FORMAT (1H0, '** ERROR OUTPUT FILE IS INCOMPLETE', / , 1 1H , 5X, 35A1)ECEC INITIALIZE SWITCHES  10 CONTINUE IFCOPY = .FALSE. IFWILD = .FALSE. IFFID = .FALSE. IFDATE = .FALSE.CO,C IDENTIFY PROGRAM AND PROMPT FOR TAPE INPUT 20 CONTINUECM WRITE (1,1000)DC CALL TO NXTAPE WITH IFERR=-999 MEANS NO REWIND BEFORE INPUT PROMPT IFERR = -999 30 CONTINUE NFCOPY = 0" CALL NXTAPE (5, 5, 3, IFERR)C,C CHECK FOR EOF FROM TERMINAL5# IF (IFERR .EQ. -10) GO TO 990EC C PROMPT FOR DSC TAPE FILE NAMEX 40 CONTINUE WRITE (5,1001)F READ (5,2000, END=990, ERR=40) NQV, (DSCFIL(I), I=1,MIN(12,NQV))C 9C IF NO RESPONSE, SKIP RIGHT TO PROMPT FOR OUTPUT DEV/UICA IF (NQV .LE. 0) GO TO 200OCNHC GOT A RESPONSE, MAKE IT UPPER CASE ASCII AND PAD WITH SPACE TO 12 CHAR CALL UPCASE (DSCFIL, NQV)F CALL UNSPAC (DSCFIL, NQV)  IF (NQV .GE. 12) GO TO 59  DO 50 I = NQV+1, 12O DSCFIL(I) = ' ' 50 CONTINUE 59 CONTINUEC AC SEARCH INPUT TAPE FOR AN ANSI HDR1 LABEL MATCHING DSC FILE NAME1C) 100 CONTINUE NBYTES = NRLTHCVC READ A RECORD,) CALL RDTAPE (3, NBYTES, BUF, IFERR)GCTC CHECK FOR ERRORS( CALL CKTAPE (3, IFERR, NEOF, 1, 2)CNGC IF WE ARE AT DOUBLE TAPE MARK (NEOF=2) PUT OUT CANT FIND FILE MESSAGER IF (NEOF .NE. 2) GO TO 110 WRITE (5,1100) DSCFILN GO TO 30C  110 CONTINUE C IF NO ERROR, GO CHECK FOR ANSI! IF (IFERR .GE. 0) GO TO 120NC$C ABORT PROGRAM IF EOF FROM TERMINAL# IF (IFERR .EQ. -10) GO TO 990 CE*C ELSE, UNDIAGNOSED ERROR, DISPLAY MESSAGE WRITE (5,1101) IFERR GO TO 100 C &C CHECK FOR ANSI RECORD (LENGTH = 80.) 120 CONTINUE# IF (NBYTES .NE. 80) GO TO 100 CW-C GOT ANSI-LENGTH RECORD, IS IT A HDR1 RECORD 4 IF (.NOT. IFSTEQ('HDR1', BUF(1), 4)) GO TO 100C "C IT WAS, SEE IF FILE NAME MATCHES5 IF (.NOT. IFSTEQ(DSCFIL, BUF(5), 12)) GO TO 100NC%C IT MATCHED, RUN FORWARD 1 FILE MARK 130 CONTINUE NBYTES = NRLTH) CALL RDTAPE (3, NBYTES, BUF, IFERR) ( CALL CKTAPE (3, IFERR, NEOF, 1, 2) IF (NEOF .NE. 1) GO TO 130CT8C GOT A MATCHING DSC-FILE (LOCATED CORRECT PLACE ON TAPECTC PROMPT FOR OUTPUT DEVICE/UIC 200 CONTINUE WRITE (5, 1200)DF READ (5, 2200, END=800, ERR=200) NQOUTF, (OUTFIL(I), I=1,NQOUTF)C0C MAKE IT UPPER CASE AND ASCII" CALL UPCASE (OUTFIL, NQOUTF)" CALL UNSPAC (OUTFIL, NQOUTF)" IF (NQOUTF .LE. 0) GO TO 200C 8C CHECK TO SEE THAT WE CAN ACCESS DISK (MUST BE MOUNTED)C SHUT OFF FORTRAN ERROR9 CALL ERRSET (43, .TRUE., .FALSE., .FALSE., .FALSE.)) CALL ERRSNS (I) CCC TRY TO ACCESS DEVICE% CALL ASSIGN (4, OUTFIL, NQOUTF)OCUC CHECK FOR ERROR  CALL ERRSNS (I, J) IF (I .EQ. 0) GO TO 205D$ IF (J .EQ. -16) WRITE (1,1205) 205 CONTINUECE%C CANCEL ASSIGNMENT AND RESTORE ERRORC CALL ASSIGN (4) 8 CALL ERRSET (43, .TRUE., .FALSE., .FALSE., .TRUE.)C C2C PROMPT FOR INPUT FILEA 210 CONTINUE IFFID = .FALSE. WRITE (5,1201)F READ (5,2201,END=800,ERR=210) NQIN, (INFIL(I), I=1,MIN(34,NQIN))CE C MAKE RESPONSE UPPER CASE ASCII CALL UPCASE (INFIL, NQIN)L CALL UNSPAC (INFIL, NQIN) IF (NQIN .LT. 4) GO TO 210C(C CHECK FOR COPY BY FILE-ID.4 IF (.NOT. IFSTEQ('/FI:', INFIL, 4) ) GO TO 220CL,C IT WAS REQUEST BY FILE-ID, DECODE THE LINE7 DECODE (NQIN-4, 2202, INFIL(5), ERR=210) NFN, NSN, IFFID = .TRUE. GO TO 230LC1C NOT BY FILE-ID, PARSE OUT THE FILE-NAME.EXT;VER  220 CONTINUE; CALL PARSE (NQIN, INFIL, UICS, FNAMES, IFWILD, IFERR)N! IF (IFERR .GE. 0) GO TO 230A WRITE (5,1220) GO TO 210C DC AT THIS POINT, IS IN -UICS-, IS IN C -FNAMES-.BCI 230 CONTINUECNFC MAKE ONE LAST SCAN FOR WILD-CHARACTERS, SEE IF WANT TO COPY MULTIPLE C FILES.HH IF(ICPOS(UICS,1,9,00V4'?') .EQ. 0 .AND. ICPOS(FNAMES,1,21,'?') .EQ. 0) 1 GO TO 290CT IF (.NOT.IFWILD) GO TO 290CU 240 CONTINUE WRITE (5,1230)) READ (5,2230, END=290, ERR=240) ANSA CALL UPCASE (ANS, 1)' IF (ANS .EQ. 'Y') IFWILD = .TRUE. C1 C WB-004 CREATION DATE SELECTION! IF (.NOT. IFWILD) GO TO 290-CF 250 CONTINUE IFDATE = .FALSE. WRITE (5,1250)G READ (5,2250, END=290, ERR=250) NQD, (DSTRNG(I), I=1,MIN(NQD,20)) IF (NQD .GT. 20) GO TO 250C? CALL UPCASE (DSTRNG, NQD),C)"C SKIP DATE SELECTION IF NO ANSWER IF (NQD .LE. 0) GO TO 290UC +C LOOK FOR (:) OR (SPACE) TO DELIMIT OPTIOND( NDST = ICPOS (DSTRNG, 1, NQD, ':')9 IF (NDST .EQ. 0) NDST = ICPOS (DSTRNG, 1, NQD, ' ') C1C ERROR IF NOT FOUND IF (NDST .LE. 0) GO TO 250C C LOOK UP OPTION NDOPT = 0  DO 252 K = 1, NDOPTS< IF (IFSTEQ(DOPTNS(1,K),DSTRNG(1),NDST-1)) NDOPT = K 252 CONTINUEC2C ERROR IF NOT FOUND! IF (NDOPT .EQ. 0) GO TO 250CC =C FIGURE LENGTH OF DATE PART OF INPUT LINE AND SAVE ITS STARTF NQD = NQD - NDST NDST = NDST + 1 CA+C CONVERT DATE STRING TO INTEGER EQUIVALENTS-C RETURNS MONTH-DAY-YEAR AS INTEGERS TO ARRAY 1 CALL DCONV (DSTRNG(NDST), NQD, IDT1, IFERR)FCDC CHECK FOR ERROR RETURN! IF (IFERR .LE. 0) GO TO 250 CD%C NO ERROR, SET DATE SELECT SWITCH ON  IFDATE = .TRUE.SCK 259 CONTINUEC)"C END OF WB-004 DATE SELECT OPTIONC  290 CONTINUEC 6C SEARCH FOR HEADER WITH MATCHING FILE NAME OR FILE IDCA 300 CONTINUE NBYTES = NRLTH) CALL RDTAPE (3, NBYTES, BUF, IFERR) ( CALL CKTAPE (3, IFERR, NEOF, 1, 2)CV'C CHECK FOR END-OF-FILE WHILE SEARCHINGE IF (NEOF .EQ. 1) GO TO 300 IF (NEOF .EQ. 2) GO TO 305C C CHECK FOR ANSI EOF/EOV RECORDS# IF (NBYTES .NE. 80) GO TO 310RC C GOT ANSI RECORD, IS IT AN EOF * IF (IFSTEQ('EOF', BUF, 3)) GO TO 305C C NOPE, IS IT AN EOV0 IF (.NOT. IFSTEQ('EOV', BUF, 3)) GO TO 300C YUP. 305 CONTINUECRCC COULDNT FIND REQUESTED FILE. PRINT ERROR IF NOT DOING WILDCARDS. < IF (.NOT. IFWILD) WRITE (1,1300) UICS, FNAMES, DSCFILEC)=C IF CAME HERE BECAUSE OF EOV RECORD, PROMPT FOR ANOTHER REEL.3 IF (.NOT. IFSTEQ('EOV', BUF(1), 3)) GO TO 530 " CALL NXTAPE (5, 5, 3, IFERR)C (C ABORT RUN IF END-OF-FILE FROM TERMINAL# IF (IFERR .EQ. -10) GO TO 990F GO TO 300UC3CG,C CHECK FOR A DSC FILE-START (CODE=2) RECORD 310 CONTINUE% IF (DSCHDR(2) .NE. 2) GO TO 320OCN#C SAVE FILE SIZE FROM CODE-2 RECORD. NFS(1) = DATA(46)G NFS(2) = DATA(47)NC C SAVE FILE ID FOR THIS LENGTH NFID = DSCHDR(5) NFSN = DSCHDR(6) GO TO 300RCO8C CHECK FOR A DSC IMAGE OF FILES-11 FILE HEADER (CODE=4) 320 CONTINUE% IF (DSCHDR(2) .NE. 4) GO TO 300 C +C GOT A FILE HEADER, IS IT THE ONE WE WANT? ,C DECODE FILE NAME AND UIC FROM FILE HEADERC 4C IDOFSW = WORD OFFSET TO ID AREA (FROM FILE HEADER)' IDOFSW = BUF(HDRLTH+1) .AND. "3772C,C PICK UP AND CONVERT PPN TO FULL UIC STRING' CALL PPASC (DATA(5), 1, LT, TUIC)(CN C DECODE FILE NAME AND EXTENSION/ CALL R50ASC(9, DATA(IDOFSW+1), TFILEN(1))) TFILEN(10) = '.'CH0 CALL R50ASC(3, DATA(IDOFSW+4), TFILEN(11)) TFILEN(14) = ';'CFC DECODE VERSION NUMBER 2 ENCODE (6, 3000, TFILEN(15)) DATA (IDOFSW+5)CC MARK THE END OF THE FILENAME TFILEN(21) = 0CWAC IF SEARCHING BY FILE ID, SEE IF IT MATCHES, KEEP READING IF NOTR IF (.NOT. IFFID) GO TO 330< IF (NFN .EQ. DATA(2) .AND. NSN .EQ. DATA(3)) GO TO 380C FAILED TO MATCH ON FILE-ID GO TO 300NCN2C NOT SEARCHING BY FILE ID, SEE IF FILENAMES MATCH 330 CONTINUEC'C CHECK OWNING UIC. IF (.NOT. IFSTEQ(UICS,TUIC,9)) GO TO 300C1C CHECK FILENAME.EXT;VER5 IF (.NOT. IFSTEQ(FNAMES, TFILEN, 20)) GO TO 300ICS0C MATCHED, LAST CHECK FOR DATE SELECTION, WB-004 380 CONTINUEC ! IF (.NOT. IFDATE) GO TO 390MCH.C CONVERT FILE00,-TADATADATA HEADER CREATION DATE TO INTEGER" J = HDRLTH + (IDOFSW*2) + 26 CALL UPCASE (BUF(J), 7)O) CALL DCONV (BUF(J), 7, IDT2, IFERR)OC C SKIP SELECTION IF DATE ERROR! IF (IFERR .LE. 0) GO TO 390 CT8C SEE HOW THEY MATCH, J = -1 IF 1<2, 0 IF 1=2, +1 IF 1>2 J = IDCMPR (IDT2, IDT1) CE,C IF -BEFORE- AND -BEFORE- SELECTED, DO COPY0 IF (J .LT. 0 .AND. NDOPT .EQ. 1) GO TO 390C $C IF -ON- AND -ON- SELECTED, DO COPY0 IF (J .EQ. 0 .AND. NDOPT .EQ. 2) GO TO 390CR)C IF -AFTER- AND -AFTER- SELECTED DO COPY 0 IF (J .GT. 0 .AND. NDOPT .EQ. 3) GO TO 390CFC ELSE KEEP LOOKING FOR HEADER GO TO 300RC'C END OF WB-004 CREATION DATE SELECTION  390 CONTINUECOC BUILD UP FILE NAME FOR OPENT DO 395 I = 1, 21% OUTFIL(NQOUTF+I) = TFILEN(I)  395 CONTINUE NQOPN = NQOUTF + 20CC,?C SAVE THE INPUT FILE HEADER (UP TO THE START OF THE MAP AREA) 7C WE WILL NEED IT LATER FOR FIXING UP NEW FILE HEADERN 400 CONTINUE DO 410 I = 1,49F HEADER(I) = DATA(I) 410 CONTINUECG6C WB-002, FIX OVERWRITING OF FILE IF IT ALREADY EXISTSC "C SHUT OFF ERROR LOG OF OPEN ERROR8 CALL ERRSET (29, .TRUE., .FALSE., .TRUE., .FALSE.)5 OPEN (UNIT=4, NAME=OUTFIL, TYPE='OLD', ERR=418)1C FC GETTING AN ERROR ON THE OPEN IS EXPECTED AND INDICATES FILE DOES NOT C EXIST.C GC IF OPENED OK, THE FILE EXISTED, PRODUCE ERROR MESSAGE AND DECIDE WHATL C TO DO.A CLOSE (UNIT=4) 411 CONTINUE+ WRITE (5,1416) (OUTFIL(I), I=1,NQOPN)  WRITE (5,1417)( READ (5,2417,END=900, ERR=411) ANS CALL UPCASE (ANS, 1)CSC DECODE ANSWER TYPE/C IF ANSWER WAS 'C', COPY ANYWAY AND OVERWRITE,! IF (ANS .EQ. 'C') GO TO 418PC(4C IF ANSWER WAS 'N', CREATE A NEW VERSION, ELSE SKIP IF (ANS .NE. 'N') GOTO 520CA.C FIND POINTER TO VERSION NUMBER DELIMITER (;)* NQOPN = ICPOS(OUTFIL, 1, NQOPN, ';')C TRIM OFF THE VERSION NUMBER  OUTFIL(NQOPN) = 0)C <C CHECK TO BE SURE THAT WE HAVE CORRECT SIZE (MATCH FILE ID) 418 CONTINUEB IF (NFID .EQ. DSCHDR(5) .AND. NFSN .EQ. DSCHDR(6)) GO TO 419+ WRITE (5,1415) (OUTFIL(I), I=1,NQOPN)W GO TO 510ACN:C NOW CHECK FOR CONTIGUOUS FILE, ADJUST SIZE WORD FOR OPEN 419 CONTINUE NFBLOK = NFSIZES9 IF ((HEADER(7) .AND. "200) .EQ. 0) NFSIZE = -NFSIZERC %C OPEN THE OUTPUT FILE FOR QIO WRITESP; OPEN (UNIT=4, NAME=OUTFIL, TYPE='NEW', BUFFERCOUNT=0,E3 1 INITIALSIZE=NFSIZE, EXTENDSIZE=0, ERR=420)T+ WRITE (5,5410) (OUTFIL(I), I=1,NQOPN)1 GO TO 430 C(<C PROCESS ERROR MESSAGE DURING OPEN, THEN ACT LIKE INPUT EOF 420 CONTINUE+ WRITE (5,1420) (OUTFIL(I), I=1,NQOPN)N GO TO 520 CTC OPEN OK, GET A DATA RECORD 430 CONTINUE NOUT = 0 IFCOPY = .TRUE.  IPRL(4) = 0.2 IPRL(5) = 0 !LOW ORDER VBN 435 CONTINUE NBYTES = NRLTH) CALL RDTAPE (3, NBYTES, BUF, IFERR)T( CALL CKTAPE (3, IFERR, NEOF, 1, 2) IF (NEOF .EQ. 1) GO TO 435 IF (NEOF .EQ. 2) GO TO 460E IF (IFERR .LT. 0) WRITE (5, 1435) IFERR, (OUTFIL(I), I=1,NQOPN)PCEC CHECK FOR ANSI RECORD # IF (NBYTES .NE. 80) GO TO 440NC 3C IT WAS ANSI, SEE IF IT IS EOV (FOR CROSSING REEL)3- IF (IFSTEQ('EOF', BUF(1), 3)) GO TO 460E4 IF (.NOT. IFSTEQ ('EOV', BUF(1), 3)) GO TO 440C ,C IT IS EOV, REWIND AND PROMPT FOR NEXT REEL WRITE (5,1436)" CALL NXTAPE (5, 5, 3, IFERR)CA#C STOP ON EOF OR ERROR FROM CONSOLE # IF (IFERR .EQ. -10) GO TO 460FCE 440 CONTINUE% IF (DSCHDR(2) .NE. 1) GO TO 435 C5!C MAKE SURE FILE ID NUMBERS MATCHE- IF (DSCHDR(5) .NE. HEADER(2)) GO TO 435E- IF (DSCHDR(6) .NE. HEADER(3)) GO TO 435ICO! DO 459 I = HDRLTH+1, NBYTESF NOUT = NOUT + 1 OUTBUF(NOUT) = BUF(I)% IF (NOUT .LT. 512) GO TO 459T&C OUTPUT RECORD IS FULL, WRITE TO FILE& CALL GETADR (IPRL(1), OUTBUF) IPRL(2) = 512 IPRL(5) = IPRL(5) + 12 IF (IPRL(5) .EQ. 0) IPRL(00 "V44) = IPRL(4) + 15 CALL WTQIO (IOWVB, 4, 4, 0, IOSB, IPRL, IDS) NOUT = 0 CB&C COUNT DOWN NUMBER OF BLOCKS TO WRITE NFBLOK = NFBLOK - 1% IF (NFBLOK .LE. 0) GO TO 500O 459 CONTINUE GO TO 435EC 460 CONTINUE> IF (NFBLOK .NE. 0) WRITE (5,5800) (OUTFIL(I), I=1,NQOPN)C2>C FINISHED WRITING, FIX FDB USING FORMER HEADER AND CLOSE FILE 500 CONTINUE$ CALL FIXFDB (4, HEADER, IFERR) CLOSE (UNIT=4) NFCOPY = NFCOPY + 1( WRITE (5,5500) IFCOPY = .FALSE. 510 CONTINUEC4(C IF NOT DOING A WILDCARD COPY, ALL DONE 520 CONTINUE IF (IFWILD) GO TO 300C  530 CONTINUE WRITE (5,5520) NFCOPY 7 IFERR = 0 !SET TO FORCE NEXT-TAPE PROMPT GO TO 30C C FINISH UP AND EXIT 800 CONTINUE IF (.NOT.IFCOPY) GO TO 30H+ WRITE (5,5800) (OUTFIL(I), I=1,NQOPN)L GO TO 30CT 900 CONTINUE 990 CONTINUE CALL EXIT END=4) NFCOPY = NFCOPY + 1( WRITE (5 (Um+ U z[qU@!`Y'DRTITIMTSYTICLMO`~~@@@"p````TITIMTSYTICLMOp1@11;2.B 4e eAeP  A BBAmfCEDEĠ  @@o A"BCE*ŒEW*EŔE?W? CDB B@B נ נѐ A}@AEa{E C @AW P ~ & & & & H` fRRRRC      C & ~`  `Ba#   ~ L f&f& Ѐ X : 7 2*7 )7 )7 )7 ( z j()7 (n -(w^ ) @ 0pJ N- T 7 (((-( (e* ꩷ ~(-z( P) h(}x x -R( J(  ) * *() (~  -( l Tw( '-'wP , 8J- h (-'P  n('~   -v'J(h β ~ <V- 6'-2'6' *'e * '-'' x'  & |   & -& . '  0~'7 &00(,-TADATADATA ~ hZ- "7 j&d&R&-N& H&e0* <&-8& '  -"& * &&5*&  \- ^- >%& % " " ф& ~  r w h%wZ&4 ް n  L,  ׭|$Y%~& %w@|%7 $| ~ nn . `- $ $-$ $e, ( $-$ y%-$ N $Z p7$ b7$tX% $7 $|$t$ 7q8%h$Wpe,w*&2 TD$@$p% 8$-4$ *$w$$ $e,:  #wV#h$f$#~ N P-#-#-#P<( 0 ڀ]l$ j# $ (,   \8$0 l wNn D -4#wW $- *&(#$#P#-E7 #8 T" 7r7e"D .!Ve"L ;!, ,e " 8 7! j" -".-"(wCH#B | wzJ l wj@"# !5R" e*74"e!7*T  ""e!Z  !R 7!"       w5"!4"`z, * e7!/x" 0", 1!X d z )D"n Ȭn! e * 6! ("  , h b ׭0 C׭( Nw 7 0 * !- n- hF  e *  f!wr\! =7 7   &4w0f  w&  &wf* t%w & &wf:  wt j &wfJ  wD wwfZ   b 4q7 vJ@7~ 7zp 7rft ww`w\fz  = =yL7 @7 7 @7  7whw fwb-X"Pm7C-@ 8m X * $-  @ 4- mȝ  ** T,S, f,e, ,`-,J-N{,,ff,J-! !!!!!!-!!!--!!--!--!!-!!-!!-!!-!!--!!--.0,DSCCOPY - RETRIEVE FILES FROM DSC TAPE, V 1.2 $ENTER DSC TAPE FILE NAME [A] 0DSC OUTPUT TAPE FILE  IS NOT ON THIS REEL 0I/O ERROR" DURING SEARCH FOR DSC OUTPUT TAPE FILE $#OUTPUT DEVICE AND UIC - DDU:[UIC] 0FILE TO BE COPIED  REMEMBER [UIC] IS$ OWNING UIC, NAME IS NAME FROM HEADER $[UIC]NAME.EXT;VER 0OUTPUT DEVICE MUST BE MOUNTED  BAD FILE NAME $/FILENAME CONTAINS WILD CHARACTERS, COPY MULTIPLE FILES? [Y/N] 0MULTIPLE FILES WILL BE COPIED  6SELECT BY CREATION DATE? [BEFORE: ON: AFTER: DD-MMM-YY]  "-ONLY IMPLIES NO DATE SELECTION $? 0COULD NOT LOCATE FILE    IN VOLUME   FILE DID NOT START ON THIS REEL " 0WARNING - FILE ALREADY EXISTS: "  DO YOU WANT TO:   C = COPY ANYWAY (OVERWRITE) , S = SKIP COPYING THIS FILE   N = CREATE A NEW VERSION $? 0ERROR OPENING FILE "  TAPE ERROR" DURING FILE COPY 0FILE CONTINUES ON ANOTHER REEL    "       BEGIN FILE " ,COMPLETE  " FILES COPIED 0!** ERROR OUTPUT FILE IS INCOMPLETE  "  HDR1+/FI:? :EOFEOV;&&J-*N-R-!J-J-T-04!:*!**V->BP-:*V-P-X-:>BB1*Z-F1*:Z-1*T,f,4-J-T,NLf,RL,,`-,`-Z,`-.\!`! "n-],T,],Nf,{,V,,jBB * *p-d*  ! 6 (-T*::"v-(-x-:,J-0LOAD NEXT INPUT TAPE $ENTER TAPE INPUT UNIT [DDU:]  $%TAPE DENSITY (800 OR 1600 BPI)? [I] " $FAILED TO ATTACH, IOSTAT=" . CONTINUE ANYWAY? [Y/N]  @-!-!  008,-TADATADATABEFOREON AFTER JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC*?[,].;*? 0*?d;;/P0/D//@//@0;*<.2P0/*<24< D/ &06 DSCDIR - FORTRAN PROGRAM TO PRODUCE A DIRECTORY OF DSC TAPES. B K MODIFICATIONS: i7 28-Aug-81, WB-004 do not unload tape after rewindhB 11-Jun-81, wb-003 fix error with empty and short directories= 10-Jun-81, WB-002 fix problems with error on .DIR filesc* 10-Jun-81 WB-001 Allow 1600 bpi tape William D. Burton, Jr.- Texas Research Institute of Mental Sciencese 1300 MoursundR Houston, Texas 77030l (713) 797-1976 ext 501 B This file describes the program DSCDIR, a FORTRAN-IV-PLUS programL which produces a directory of tapes written by DSC (Disk-Save-and-Compress)5 Utility. It has worked on both RSX and IAS systems.8 w INSTALLATION: h' 1. Distribution of DSCDIR consists of:n ,+ DSCDIR.FTN - Main program and subroutinesc& DSCDIR.CMD - Task build command file DSCDIR.DOC - This file .' 2. Compile the main program DSCDIR.FTNi: 3. Edit the task-build command file for your installation e.g. resident libraries etc. s OPERATION:o m< 1. The DSC tape to be scanned is UNMOUNTED on fortran LUN-33 DSCDIR uses direct QIO reads (subroutine RDTAPE).U3 The program does NOT require reading all reels of a multi-reel tape set. i@ 2. Run DSCDIR and answer the questions. DSCDIR will not accept indirect command file input. T) a. prompt = INPUT TAPE SPECIFIER [DDU:] 7 answer - name of the tape device holding DSC tape.d (e.g. MT1:) n1 b. prompt = TAPE DENSITY (800 OR 1600 BPI)? [I]r8 ans00HK,-TADATADATAwer - density of input tape, integer 800 or 1600 default is 800 bpi. N5 c. prompt = PRINT CONTENTS OF DIRECTORY FILES [Y/N]U< answer - Y if a listing of the contents of the Files-11" disk directories is wanted. N to suppress this list.D w  DSCDIR.DOC (continued)m d6 d. DSCDIR will read the tape and print a summary of:1 1) ANSI standard file labels (80 characters)  2) FILES-11 file headers file-idp! file-name, extension, version  creation date and time9 3) DSC initialization information (first reel of DSC  tape set only)p  N LIMITATIONS:I T@ 1. The predecessor of this program was used in checking out theA file-restoring program DSCCPY. This program should be fairlye robust.D w> 2. If DATA OVERRUN errors occur (error code -13. IE.DAO), the4 program buffer size can be increased by changing@ PARAMETER NRLTH= to the desired size. NRLTH should never be less than 1040. bytes.  sB 3. If multiple tapes are directoried out of sequence, FALSE errorD messages FILE NUMBER OF DATA BLOCK DID NOT MATCH will be printed" these messages can be ignored.ram was used in checking out theA file-restoring program DSCCPY. This program should be fairlye robust.D w> 2. If DATA OVERRUN errors occur (error code -13. IE.DAO), the4 program buffer size can be increased by changing@ PARAMETER NRLTH= to the desired size. NRLTH should never be less than 1040. bytes.  sB 3. If multiple C+ C DSCDIR.FTNC3C THIS PROGRAM SCANS DSC TAPES AND PRINTS A SUMMARY?C MODIFIED JUNE 85 TO USE LUN 5 FOR ALL TERMINAL I/O DUE TO BUG@C IN F77OTS THAT CRASHES PGM IF FIRST LUN USE IS A READ F.BORGERCC SUBROUTINES REQUIREDC,C PICKI4 - CONVERT 4 BYTES TO INTEGER*4;C PRTDIR - DECODE AND PRINT FILES-11 DIRECTORY ENTRIES'C RDTAPE - DO QIO READS OF MAGTAPECC TASK BUILDINGC-C ASG=TI:5 ; PROMPTING OUTPUT USER INPUT C ASG=MT:3 ; DSC TAPE INPUT"C ASG=LP:4 ; FORMATTED OUTPUTC C DSCDIR.FTN VERSION 1.2SCD.C 28-AUG-81 WB-004 DONT UNLOAD AFTER REWINDING=C 11-JUN-81 WB-003 FIX ERROR WITH EMPTY AND SHORT DIRECTORIESP7C 10-JUN-81 WB-002 FIX ERROR ON INTERPRETING .DIR FILES &C 10-JUN-81 WB-001 ALLOW 1600 BPI TAPEC C 31-MAR-81, WILLIAM D. BURTON8C TEXAS RESEARCH INSTITUTE OF MENTAL SCIENCESC 1300 MOURSUND"C HOUSTON, TEXAS 77030#C (713) 797-1976 EXT 501 C-% PARAMETER NRLTH=2064, HDRLTH=16:C  LOGICAL*1 BUF(NRLTH)F INTEGER DSCHDR(HDRLTH/2), WORDS(NRLTH/2), DATA((NRLTH-HDRLTH)/2)C: INTEGER*4 NREC, NTOTB, NBUSE, NFILES, NBLKAL, NBLKDR7 LOGICAL*1 ANS, BDATE(9), BTIME(8), TAPE(4), LUNNOE% LOGICAL*1 IFDIR, IFPDIR, IFFRSTA4 INTEGER R50DIR, LUNBUF(6), MSKDEN, NDEN, NB(2)CT> EQUIVALENCE (BUF(1),DSCHDR(1)), (BUF(HDRLTH+1),DATA(1)), 1 (BUF(1),WORDS(1))NCE3 EQUIVALENCE (LUNBUF(2),LUNNO), (NB(1),NBLKAL)C . LOGICAL*1 FILNAM(9), FILEXT(3), TFILE(9)$ INTEGER FILNBR, FILSQN, FILVERCH> PARAMETER IORWU=1376, IORWD=1280, IOSMO=1392, IOATT=768, 1 IODET=1024, IOSTC="2500 PARAMETER IDENS=2048C  DATA R50DIR/3RDIR/C(C TERMINAL I/O FORMATS) 1000 FORMAT (1H0, 'SCAN DSC TAPE V 1.2')54 1001 FORMAT (1H$, 'INPUT TAPE SPECIFIER [DDU:] ')? 1002 FORMAT (1H$, ' TAPE DENSITY (800 OR 1600 BPI)? [I] ')1A 1003 FORMAT (1H$, 'PRINT CONTENTS OF DIRECTORY FILES? [Y/N] ')LC 2000 FORMAT (Q, 4A1)N 2001 FORMAT (A1)F 2002 FORMAT (I6)ECIC PRINTER MESSAGESF 4000 FORMAT (1H1, 20X, 9A1, 2X, 8A1, 5X, 'SCAN OF DSC TAPE ', A2, I1,G 1 ':', / 1H0, 3X, 'RECORD', / 1H , 4X, 'NBR.', 3X, 'LENGTH', 4X,A 2 'CONTENTS', /)MCLG 4001 FORMAT (1H , I8, '. ', I5, '. ** FILE NUMBER OF DATA BLOCK DID',H@ 1 ' NOT MATCH, FILE NBR (', O5, ',', O5, ')', / 1H , 21X, 2 'FIRST 8 WORDS', 8O8)C1E 4002 FORMAT (1H , I8, '. ', I5, '. ** UNIDENTIFIED, FIRST 8 WORDS', 1 8O8)(C4B 4003 FORMAT (00PDE41H , I8, '. ', I5, '. FILE HEADER ( ', O5, ',',C 1 O5, ') [', O3, ',', O3, '] ', 9A1, '.', 3A1, ';', O4, 2X,I? 2 2A1, '-', 3A1, '-', 2A1, 2X, 2A1, ':', 2A1, ':', 2A1)NC'C 4004 FORMAT (1H , I8, '. ', I5, '. DSC INITIALIZATION RECORD')5@ 4005 FORMAT (1H , 26X, 'OUTPUT FILE NAME : ', 12A1, / 1H , 26X,1 1 'INPUT DEVICE : ', 12A1, / 1H , 26X,'% 2 'INPUT VOLUME NAME: ', 12A1)(C,H 4006 FORMAT (1H , 26X, 'TOTAL BLOCKS ON INPUT DEVICE=', I8, '.' / 1H ,E 1 26X, 'BLOCKS IN USE =', 14X, I8, '. (EXCLUDING BAD BLOCKS)', = 2 / 1H , 26X, 'FILES PRESENT =', I8, '.', / 1H0, 32X,IH 3 'FILE NUMBER, SEQ.', 5X, 'OWNER FILE NAME.EXT; VER CREATION', 4 /)HCI0 4007 FORMAT (1H , I8, '. ', I5, '. ', 80A1)G 4008 FORMAT (1H0, I8, '. ', I5, '. DIRECTORY CONTENTS ', 9A1, '.', : 1 3A1, 3X, 'FILE NBR, SEQ', 7X, 'NAME.EXT; VER', /)CU 4009 FORMAT (1H )CC FORMATS FOR ERROR MESSAGESF 4800 FORMAT (1H , I8, '. ', I5, '. ** RDTAPE ERROR NUMBER', I5, '.')0 4810 FORMAT (1H , I8, '. ', I5, '. ** EOF **')0 4811 FORMAT (1H , I8, '. ', I5, '. ** EOV **')CX7C START THE PROGRAM BY IDENTIFYING AND WAITING FOR TAPEX WRITE (5,1000)C4#C PROMPT FOR INPUT TAPE DEVICE-UNIT  10 CONTINUE WRITE (5,1001). READ (5,2000, END=900, ERR=10) NQT, TAPEC,C WB-001 PROMPT FOR DENSITYL 12 CONTINUE WRITE (5,1002)) READ (5,2002, END=900, ERR=12) NDENRC )C ASSUME 800 BPI UNLESS 1600 WAS ANSWERED  MSKDEN = 4( IF (NDEN .EQ. 1600) MSKDEN = IDENSC END OF WB-002 C HC ASSIGN TAPE UNIT TO FORTRAN LUN=3, ATTACH IT AND POSITION AT BEGINNING CALL ASSIGN (3, TAPE, 4)CR'C FIND OUT WHICH DEVICE REALLY ASSIGNEDT CALL GETLUN (3, LUNBUF) C ! CALL WTQIO (IOATT, 3, 3, 0) CEC TRY TO REWIND TAPE! CALL WTQIO (IORWD, 3, 3, 0)PCOC SET DENSITY (WB-002)* CALL WTQIO (IOSTC, 3, 3, 0,, MSKDEN)CN2C SEE IF WANT TO PRINT CONTENTS OF DIRECTORY FILES 20 CONTINUE WRITE (5,1003)( READ (5,2001, END=900, ERR=20) ANS IFPDIR = .FALSE. IFNDSP = .FALSE.' IF (ANS .EQ. 'Y') IFPDIR = .TRUE.ICC BEGIN, LABEL THE OUTPUT 1 OPEN (UNIT=4, DISPOSE='PRINT',STATUS='NEW')  CALL DATE(BDATE) CALL TIME(BTIME)3 WRITE (4,4000) BDATE, BTIME, LUNBUF(1), LUNNO CL NEOF = 0 NREC = 0C CS)C MAIN PROCESS LOOP, TRY TO READ A RECORD, 100 CONTINUE NREC = NREC + 1T NBYTES = NRLTH) CALL RDTAPE (3, NBYTES, BUF, IFERR))C CC GO TO ERROR PROCESSING IF IFERR RETURN, UNLESS END-OF-REEL (=-62) 6 IF (IFERR .LE. 0 .AND. IFERR .NE. -62) GO TO 800C'C NO ERROR TURN OFF END-OF-FILE COUNTERN NEOF = 0CPC -- DECODE RECORD TYPE --(C COMPUTE LENGTH OF DATA SECTION (WORDS)$ NWDATA = (NBYTES - HDRLTH) / 2C(4C CHECK FOR ANSI LABELING RECORD (LENGTH = 80 BYTES)# IF (NBYTES .EQ. 80) GO TO 600RCR<C NOT ANSI, CHECK FOR A SPECIAL HEADER (DSC CODE OCTAL-40)' IF (DSCHDR(2) .EQ. "40) GO TO 500EC)9C NOT A SPECIAL HEADER, IS IT A REAL HEADER (FILE HEADER)O& IF (DSCHDR(2) .EQ. "4) GO TO 400C.;C IF IT IS A TYPE 2 RECORD, SKIP IT (DON'T KNOW WHAT IT IS)L& IF (DSCHDR(2) .EQ. "2) GO TO 100C ?C IF IT IS NOT A TYPE 1 RECORD (DATA RECORD) DUMP THE BEGINNINGW% IF (DSCHDR(2) .NE. 1) GO TO 250CCO(C PROCESS A TYPE 1 DSC RECORD, FILE DATAC 4C CHECK FOR FILE ID NUMBER MATCH FILE NOW WORKING ONE IF (FILNBR .NE. DSCHDR(5) .OR. FILSQN .NE. DSCHDR(6)) GO TO 200.C05C MATCHED, SEE IF WE ARE CURRENTLY PRINTING DIRECTORYHC IF FIRST TIME, PRINT HEADER(/ IF (.NOT. (IFPDIR .AND. IFDIR)) GO TO 110P= IF (IFFRST) WRITE (4,4008) NREC, NBYTES, FILNAM, FILEXT2 IFFRST = .FALSE. IFNDSP = .TRUE. CE.C WB-003 LIMIT PRINT TO BLOCKS ACTUALLY IN USE4C GOT INFO FROM DISK HEADER WHILE DECIDING ON .DIR:C COMPUTE NUMBER OF DISK BLOCKS REPRESENTED BY THIS READ NDPRT = NWDATA/256CF%C LIMIT TO BLOCKS ACTUALLY LEFT TO DO. NDPRT = MIN(NDPRT,NBLKDR)CC,"00XK,-TADATADATAC NOW COUNT DOWN BLOCKS LEFT TO DO NBLKDR = NBLKDR - NDPRTTCA-C CONVERT PRINT LIMIT TO WORDS FOR SUBROUTINET NDPRT = NDPRT * 256R" CALL PRTDIR (4, DATA, NDPRT)CX C CHECK IF DIRECTORY IS ALL DONE( IF (NBLKDR .LE. 0) IFDIR = .FALSE. 110 CONTINUEC AC COUNT NUMBER OF DISK BLOCKS REPRESENTED BY DATA IN THIS RECORDO% NUSED = (NBYTES - HDRLTH) / 512 CTC NBLOKS = NBLOKS - NUSED#C IF (NBLOKS .GT. 0) GO TO 100FCO GO TO 100 CI"C ERROR - FILE NUMBER DIDN'T MATCH 200 CONTINUE9 WRITE (4,4001) NREC, NBYTES, FILNBR, FILSQN, DSCHDRI GO TO 100SCOC UNIDENTIFIED DSC RECORD TYPE 250 CONTINUE IF (IFNDSP) WRITE (4,4009) IFNDSP = .FALSE.) WRITE (4,4002) NREC, NBYTES, DSCHDR. GO TO 100C C DSC TYPE 4 RECORD, FILE HEADER 400 CONTINUE IF (IFNDSP) WRITE (4,4009) IFNDSP = .FALSE.CC COMPUTE OFFSETS TO ID AREAS' IDOFSW = BUF(HDRLTH+1) .AND. "377 IDOFSB = IDOFSW * 2OC 5C PICK UP AND STORE FILE NUMBER, FILE SEQUENCE NUMBER4 FILNBR = DATA(2) FILSQN = DATA(3)C C GROUP NUMBER, MEMBER NUMBERD$ NMB = BUF(HDRLTH+9) .AND. "377% NGP = BUF(HDRLTH+10) .AND. "377PC.=C PICK UP RADIX-50 FILE NAME AND EXTENSION, DECODE INTO BYTES 3 CALL R50ASC (9, BUF(HDRLTH+IDOFSB+1), FILNAM)T3 CALL R50ASC (3, BUF(HDRLTH+IDOFSB+7), FILEXT)=CAC PICK UP VERSION NUMBER FILVER = DATA(IDOFSW+5)BCHC PICK UP REVISION NUMBER  FILREV = DATA(IDOFSW+6)KC #C PRINT THE FILE HEADER INFORMATIONND WRITE (4,4003) NREC, NBYTES, FILNBR, FILSQN, NGP, NMB, FILNAM,: 1 FILEXT, FILVER , (BUF(HDRLTH+IDOFSB+25+I), I=1,13)C /C CHECK TO SEE IF THIS IS A DIRECTORY TYPE FILE  IFDIR = .FALSE.ECNC CHECK FOR 'DIR' EXTENSION 0 IF (R50DIR .NE. DATA(IDOFSW+4) ) GO TO 499C AC WB-003 PICK UP LENGTH USED, IF ONLY 1 BLOCK, DIRECTORY IS EMPTYS NB(1) = DATA(13) NB(2) = DATA(12)CI" IF (NBLKAL .LE. 1) GO TO 499CD'C SAVE NUMBER OF BLOCKS TO DO FOR PRINTE NBLKDR = NBLKAL - 1 C4GC HAD 'DIR' EXTENSION, SEE IF NAME IS 000000 OR NAME MATCHES OWNING UICV.C WB-002 FIX PROBLEM WITH NON-NUMERICS IN NAME/ ENCODE (9, 3000, TFILE, ERR=499) NGP, NMB  3000 FORMAT (2O3, 3X)CHC ZERO FILL FIRST 6 CHARACTERS DO 493 I = 1,6. IF (TFILE(I) .EQ. "40) TFILE(I) = "60 493 CONTINUECLC LOOK FOR '000000' DIRECTORY  DO 494 I = 1,6* IF (FILNAM(I) .NE. "60) GO TO 496 494 CONTINUE DO 495 I = 7,9* IF (FILNAM(I) .NE. "40) GO TO 496 495 CONTINUECD C FALLS THROUGH ON '000000' DIR. GO TO 498SCNC SEE IF NAME STRINGS MATCHM 496 CONTINUE DO 497 I = 1,9/ IF (TFILE(I) .NE. FILNAM(I)) GO TO 499M 497 CONTINUEC EC PASSED ALL TESTS FOR DIRECTORY, SET FLAG FOR POSSIBLE PRINT OF DATAI 498 CONTINUE IFDIR = .TRUE. IFFRST = .TRUE.0 499 CONTINUE GO TO 100=C6+C PROCESS SPECIAL DSC HEADER RECORD TYPE 40 500 CONTINUE IF (IFNDSP) WRITE (4,4009) IFNDSP = .FALSE.! WRITE (4,4004) NREC, NBYTES G WRITE (4,4005) (BUF(HDRLTH+I),I=1,12), (BUF(HDRLTH+12+I),I=1,12),C# 1 (BUF(HDRLTH+36+I), I=1,12)1C%C PICK UP TOTAL NUMBER OF BLOCKS USEDO) CALL PICKI4 (NTOTB, BUF(HDRLTH+55))TCS!C PICK UP NUMBER OF BLOCKS IN USEL) CALL PICKI4 (NBUSE, BUF(HDRLTH+59))IC C PICK UP NUMBER OF FILES IN USE* CALL PICKI4 (NFILES, BUF(HDRLTH+63))CP) WRITE (4,4006) NTOTB, NBUSE, NFILESTCE<C COPY HEADER RECORD DOWN TO FRONT OF DSC RECORD AND PROCESS(C LIKE ANY OTHER DSC FILE HEADER RECORD! DO 510 I = 1,(NBYTES-255)/2, DATA(I) = DATA(256+I) 510 CONTINUE NBYTES = NBYTES - 512K GO TO 400OCLC PROCESS ANSI LABEL RECORD  600 CONTINUE IF (IFNDSP) WRITE (4,4009) IFNDSP = .FALSE.3 WRITE (4,4007) NREC, NBYTES, (BUF(I), I=1,80)B GO TO 100EC C PROCESS TAPE ERROR 800 CONTINUEC/C SEE IF ERROR IS FROM TAPEMARK (IE.EOF = -10.)E# IF (IFER00`DE4R .EQ. -10) GO TO 810OCS-C NOT EOF, SEE IF IT IS END-OF-VOLUME (=-11.)E# IF (IFERR .EQ. -11) GO TO 811BCSC5*C UNDIAGNOSED ERROR -- PRINT ERROR MESSAGE( WRITE (4,4800) NREC, NBYTES, IFERR GO TO 899LC C PROCESS END-OF-FILER 810 CONTINUE NEOF = NEOF + 1RC ?C IF 2 SUCCESSIVE EOF CONDITIONS, THEN PROCESS AS END-OF-VOLUMEE IF (NEOF .EQ. 2) GO TO 811CE! WRITE (4,4810) NREC, NBYTESO GO TO 899 CEC PROCESS AN END-OF-VOLUME 811 CONTINUE! WRITE (4,4811) NREC, NBYTESSC C REWIND THE TAPEI!C WB-004 DONT UNLOAD AFTER REWIND(! CALL WTQIO (IORWD, 3, 3, 0)CNC DETACH THE DEVICEI! CALL WTQIO (IODET, 3, 3, 0)0CN CLOSE (UNIT=3) CLOSE (UNIT=4)CCC GO BACK TO START GO TO 10C C END OF PROCESSING TAPE ERRORSE 899 CONTINUE GO TO 100SC C ALL DONE, EXIT 900 CONTINUE CALL EXITE ENDT# SUBROUTINE PICKI4 (N, STRING) C+ C PICKI4.FTNCN>C THIS SUBROUTINE MOVES 4 BYTES FROM STRING INTO THE INTEGER*4C ARGUMENT NC- BYTE STRING(1), NS(4)A INTEGER*4 N, NNL EQUIVALENCE (NS(1),NN)CE DO 100 I = 1,4 NS(I) = STRING(I) 100 CONTINUE N = NN RETURN END) SUBROUTINE PRTDIR (LUN, BUF, NWORD)NC+HC THIS SUBROUTINE INTERPRETS AND PRINTS FILES-11 DIRECTORY FILE ENTRIES.CXC CALLING SEQUENCE: /C CALL PRTDIR (LUN, BUF, NWORD)ICNC INPUT ARGUMENTS:C44C LUN = LOGICAL UNIT NUMBER FOR FORMATTED OUTPUTFC BUF = INTEGER WORD BUFFER OF FILE ENTRIES (1 DISK VIRTUAL BLOCK)$C NWORD = NUMBER OF WORDS IN BUFCNC RETURN ARGUMENTS: NONEIC1C ERROR CONDITIONS: NONEC)%C SUBROUTINES AND FUNCTIONS REQUIRED:E6C R50ASC - RADIX-50 TO ASCII CONVERSION SUBROUTINEC- BYTE FILNAM(9), FILEXT(3)S INTEGER BUF(1)CCC OFFSETS TO DIRECTORY ITEMSD PARAMETER NFNBR=0, NFSEQ=1, NFNAM=3, NFEXT=6, NFVER=7, NFLTH=8CNC DISPLAY FORMAT@ 1000 FORMAT (1H , 56X, O6, ',', O6, 2X, 9A1, '.', 3A1, ';', O6)CE NBASE = 1FCLFC IF FILE NUMBER OR SEQUENCE NUMBER IS ZERO, FILE IS DELETED, NO ENTRY 10 CONTINUE+ IF (BUF(NBASE+NFNBR) .EQ. 0) GO TO 20+ IF (BUF(NBASE+NFSEQ) .EQ. 0) GO TO 20 C 5C ALSO CHECK VERSION NUMBER, IF ZERO, FILE IS DELETED + IF (BUF(NBASE+NFVER) .EQ. 0) GO TO 20 C(BC HAVE A LIVE ENTRY, UNRAVEL RADIX-50 FILE-NAME AND FILE-EXTENSION. CALL R50ASC(9, BUF(NBASE+NFNAM), FILNAM). CALL R50ASC(3, BUF(NBASE+NFEXT), FILEXT)C, C NOW PRINT,D WRITE (LUN, 1000, ERR=900) BUF(NBASE+NFNBR), BUF(NBASE+NFSEQ),) 1 FILNAM, FILEXT, BUF(NBASE+NFVER)C1C DONE WITH ONE ENTRYU 20 CONTINUE NBASE = NBASE + NFLTHU$ IF (NBASE .LT. NWORD) GO TO 10CL C ALL DONE 900 CONTINUE RETURN END 1 SUBROUTINE RDTAPE (LUN, NBYTES, BUF, IFERR)AC+ C RDTAPE.FTNCVEC THIS SUBROUTINE DOES EXECUTIVE-LEVEL (QIO) READS FROM MAGNETIC TAPEEC DIRECTLY INTO THE USER TASKC(=C CALLING SEQUENCE: CALL RDTAPE (LUN, NBYTES, BUF, IFERR)NC0DC INPUT ARGUMENTS: LUN = THE LOGICAL UNIT NUMBER ASSIGNED TO THE;C INPUT MAGNETIC TAPE (INTEGER)TCC NBYTES = THE NUMBER OF BYTES TO TRY TO READ. CC ** WARNING ** THE ACTUAL BYTE COUNTU?C IS RETURNED TO NBYTES, DO NOT USE A?C CONSTANT AS AN ACTUAL ARGUMENT.T;C RETURN ARGUMENTS: BUF = ARRAY INTO WHICH BYTES ARE PUT ,C IFERR = STATUS RETURN,C +1 = SUCCESSCC -N = OPERATION ERROR CODE (SEE FCS)C>C -N-1000 = DIRECTIVE ERROR CODECEC SUBROUTINES REQUIRED: C <C GETADR = SYSTEM ROUTINE TO RETURN ADDRESS OF ARGUMENT6C WTQIO = SYSTEM LEVEL I/O CALL TO OPERATE TAPE.C-C PARAMETER IORLB=512  BYTE BUF(1), IOSTATR INTEGER IOSB(2), IPRL(6)# EQUIVALENCE (IOSB(1), IOSTAT) C C ASSUME SUC00hj,-TADATADATACESSFUL COMPLETION IFERR = 1 C /C SET UP PARAMETERS FOR QIO CALL, START ADDRESS " CALL GETADR(IPRL(1), BUF(1))C NUMBER OF BYTES TO TRY IPRL(2) = NBYTESC14C CALL THE EXECUTIVE AND WAIT FOR COMPLETION OF READ6 CALL WTQIO (IORLB, LUN, LUN, 0, IOSB, IPRL, IDS)C "C CHECK FOR A DIRECTIVE ERROR (-N) IF (IDS .LE. 0) GO TO 800C8C NOT DIRECTIVE ERROR, CHECK FOR DRIVER ERROR, BR IF NOT" IF (IOSTAT .GT. 0) GO TO 900 IFERR = IOSTATT GO TO 900CE 800 CONTINUE IFERR = IDS-1000CE 900 CONTINUE NBYTES = IOSB(2) RETURN ENDPRL(1), BUF(1))C NUMBER OF BYTES TO TRY IPRL(2) = NBYTESC14C CALL THE EXECUTIVE AND WAIT FOR COMPLETION OF READ6 CALL WTQIO (IORLB, LUN, LUN, 0, IOSB, IPRL, IDS)C "C CHECK FOR A DIRECTIVE ERROR (-N) IF (IDS .LE. 0) GO TO 800C8C NOT DIRECTIVE ERROR, CHECK FOR DRIVER ERROR, BR IF NOT" IF (IOSTAT .GT. 0) GO TO 900 IFERR = IOSTATT GO TO 900 (Um+ U z[qU@`B %z'DRTITIMTLPTICLMO`~~@@@"p````TITIMTLPTICLMO 1@11(2C @AW P ~ hR T & & & & H` fRRRRC      C & ~`  `Ba#   ~ L f&f& р r 2: 7 L x   ~ "   V P @ `  h  -@  \ d \ TT ش   F 77 ׭pY} D |   t  Z \ J D7 T7 7 ew 8  .-(w7 w C r-Pw- w- w|-v -n w-f f-` bSP v ة   b7Dd rb  ǖ%7LH 7 w6t7.   7n r7wVx ڲv     wf  7  xv   Pw T @ 07 8 E7: 7 72   Ew00pDE4 Ew7JevD >e|8 ^ 7~07 v  ا Ч ȧ     te)@mtee& @ f-b  .7 - |w  -  {   7w z&  ܞ  $ 0  -0 -|  p-l ZP0 D-@ |ytwwj  vN7 v ίv   eu e e j  Xs    :z ~ x p $ r! np 0tt !7 lVwiF  Į h*7  v  Ҥee P pfw.d-t-l/ Pv  x p (?_ 0-,F v Z < %Zh` v 2   : 2  wSwfQ$ DJFke7 "@7 7m2 ~vtBJzf7 Ш@77RH m7 > ; 87ezfH tre lP f&& L ȬL De 0 8 (e Ƣ ~e-4q7 @7 7 7fb xwnwwfh  \F@= n@=\ fd!         D@HL0SCAN DSC TAPE V 1.2 $INPUT TAPE SPECIFIER [DDU:] $( TAPE DENSITY (800 OR 1600 BPI)? [I] $*PRINT CONTENTS OF DIRECTORY FILES? [Y/N]   " 1SCAN OF DSC TAPE ": 0RECORD  NBR.LENGTHCONTENTS  ". "!. ** FILE NUMBER OF DATA BLOCK DID NOT MATCH, FILE NBR ( , )   FIRST 8 WORDS  ". ". ** UNIDENTIFIED, FIRST 8 WORDS  ". ". FILE HEADER ( , ) [ , ] .; --::  ". ". DSC INITIALIZATION RECORD  OUTPUT FILE NAME :   INPUT DEVICE :   INPUT VOLUME NAME:   TOTAL BLOCKS ON INPUT DEVICE=".  BLOCKS IN USE =". (EXCLUDING BAD BLOCKS)  FILES PRESENT =". 0 FILE NUMBER, SEQ."OWNER FILE NAME.EXT; VER CREATION  ". ". O 0". ". DIRECTORY CONTENTS . FILE NBR, SEQ NAME.EXT; VER   ". ". ** RDTAPE ERROR NUMBER".  ". " . ** EOF **  ". " . ** EOV **  @ Zfvz~ 8 , .;   00xj,-TADATADATAzd((PD@@(*)P0*)4) D &06 59.- 62. Number of blocks in use on the device, binary! (not including bad blocks) = 63.- 66. Number of files in use on the device, binary. 67.- 68. ?  69.- 70. ? nulla; 71.- 72. ? Number of blocks allocated to index filee 73.- 74. ? a 75.- 76. ?  77.- 78. ?  79.- 80. ? 81.- 82. ? 83.- 84. ? 85.-510. ? null 511.-512. checksum  -8 Items marked with ? are items I have not identified. 9 V. DSC CODE 2 RECORDS B One of these records preceeds each files-11 file on the DSC tape  DSC header word 1 = 512s word 2 = 21 word 5 = file number of the files-11 filea4 word 6 = file sequence of the files-11 file.  DSC data block, 512. bytes" words 1-3 the string BACKUP7 word 5 The number of bytes in the name string-2 words 6.. The file name string, in the form" DDU:[126,342]filename.ext;ver6 the UIC 126,342 seems to be constant,regard-7 less of what the source or directory uic was.s 7 word 46. Number of blocks allocated to the file # word 52. (same as word 46.) ( word 67. Owning UIC group number* word 68. Owning UIC member number. @ There is some more information, but I have not determined what1 it is, it was not necessary for restoring files.n   o   e" VI. DSC FILES-11 HEADER RECORD 2C One of these records immediately follows the DSC code 2 recordt and contains:  ; DSC header word 2 = 4 code for files-11 header recordN4 word 5 = files-11 file number for this file> word 6 = files-11 file sequence number for this file. C The data portion of the record contains the 512. byte files-11aL header block for the file. It is an exact image of the header as it was( on the disk, including the map area.. DSC FILES-11 HEADER RECORD 2C One of these records immediately follows the DSC code 2 recordt and contains:  ; DSC header word 2 = 4 code for files-11 header recordN4 word 5 = files-11 file number for this file> word 6 = files-11 file sequence numbe: SUBROUTINE CKTAPE (LUNMT, IFERR, NEOF, LUNPR, LUNIN)C+C CHECK TAPE FOR ERRORS2C0C CALL SEQUENCE: FORTRANC5C CALL CKTAPE (LUNMT, IFERR, NEOF, LUNPR, LUNIN)CS:C LUNMT = (ENTRY) FORTRAN LUN ASSIGNED TO MAG. TAPE.HC IFERR = (ENTRY) MAG TAPE I/O ERROR CODE FROM -RDTAPE- SUBROUTINE@C (RETURNS) +1 IF NO TAPE ERROR, OR IF WAS EOF/EOF2C UNCHANGED IF OTHER ERRORCT?C NEOF = (ENTRY, RETURN) CURRENT COUNT OF TAPE EOF READ. <C (RETURN) VALUE OF 2 IF EOV WAS READ (IE.EOV)C5C LUNPR = (ENTRY) FORTRAN LUN FOR PROMPT OUTPUTTCBC LUNIN = (ENTRY) FORTRAN LUN FOR INPUT RESPONSE FROM PROMPTC C OTHER ROUTINES NEEDED: NONEICDC 30-APR-81, W. BURTONC-C C RETURN RIGHT AWAY IF NO ERRORR! IF (IFERR .GE. 0) GO TO 980 C C IGNORE END-OF-REEL FOILO# IF (IFERR .EQ. -62) GO TO 980 C %C CHECK FOR END-OF-FILE/END-OF-VOLUME # IF (IFERR .NE. -11) GO TO 100OC C GOT AN END OF VOLUME NEOF = 2 GO TO 985FCV 100 CONTINUE# IF (IFERR .NE. -10) GO TO 990A NEOF = NEOF + 1T GO TO 985NC C NO ERROR, RESET EOF COUNTERE 980 CONTINUE NEOF = 0 985 CONTINUE IFERR = 10CR 990 CONTINUE RETURN ENDA- SUBROUTINE DCONV(DSTR, NCD, IAR, IFERR)8C+?C DCONV -- SUBROUTINE TO CONVERT DATE FROM DD-MMM-YY OR DDMMMYY8;C STRINGS TO MO, DAY, (YEAR-1900) IN INTEGER ARRAYRCNC CALL SEQUENCE:C )C CALL DCONV (D00j,-TADATADATASTR, NCD, IAR, IFERR) C C INPUT ARGUMENTS:COEC DSTR - CHARACTER STRING (BYTE ARRAY) OF DATE TO BE CONVERTED ;C NCD - INTEGER NUMBER OF CHARACTERS IN STRING DSTRTCEC RETURN ARGUMENTS:8CO<C IAR - INTEGER ARRAY (3 WORDS) WILL RECEIVE NUMERIC/C EQUIVALENT OF DATE: STORED AS I&C IAR(1) = MONTH (1..12)$C IAR(2) = DAY (1..32)<C IAR(3) = YEAR-1900 (IE 1970 IS STORED AS 70)C"C IFERR - STATUS RETURN CODE#C +1 IF CONVERSION OKN?C -1 IF MONTH INVALID (MONTH MUST BE OF THE FORM: EC JAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DECIBC NO UPPERCASE CONVERSION INSIDE THIS ROUTINE.AC -2 IF DAY INVALID (DAYS MUST BE BETWEEN 1 AND 32)O"C -3 IF YEAR INVALIDCAC OTHER ROUTINES REQUIRED:C 2C IFSTEQ - ROUTINE FOR CHARACTER STRING MATCHCAC- BYTE DSTR(1), MTBL(3,12) INTEGER IAR(3)CR#C TABLE OF ABBREVIATIONS FOR MONTHSVE DATA MTBL / 'J','A','N', 'F','E','B', 'M','A','R', 'A','P','R',O= 1 'M','A','Y', 'J','U','N', 'J','U','L', 'A','U','G', < 2 'S','E','P', 'O','C','T', 'N','O','V', 'D','E','C'/CE C PARSE LINE BACKWARDS FROM YEARC C ASSUME YEAR IS INVALID IFERR = -3C N = NCD3 IAR(3) = 0 M = 0OCN 10 CONTINUEC +C IF RUN OUT DURING SCAN, RETURN WITH ERRORT IF (N .LE. 0) GO TO 900 7 I = DSTR(N) - "60 !"60 IS ASCII CHARACTER ZEROTCSAC MUST BE NUMERIC CHARACTER (BETWEEN 0 AND 9) ELSE DONE WITH YEARR* IF (I .LT. 0 .OR. I .GT. 9) GO TO 20C,(C NOT DONE YET, ADD TO BUILDING-UP VALUE# IAR(3) = IAR(3) + I * (10**M)' N = N - 1E M = M + 1C GO TO 10C 0C ERROR IF RAN OUT OF STRING BEFORE GETTING YEAR 20 CONTINUE IF (M .EQ. 0) GO TO 900C!C TRY NOW FOR MONTH, ASSUME ERRORR IFERR = -1C #C BACK UP OVER (-) IF ONE WAS FOUND % IF (DSTR(N) .EQ. '-') N = N - 1CCC$C BACK UP TO PRESUMED START OF MONTH N = N - 2N IF (N .LE. 0) GO TO 900C &C OK SO FAR, BEGIN LOOKING UP IN TABLE IAR(1) = 0 DO 100 I = 1, 126 IF (IFSTEQ(MTBL(1,I), DSTR(N), 3)) IAR(1) = I 100 CONTINUECCC ERROR IF NOT FOUND" IF (IAR(1) .EQ. 0) GO TO 900CTC BEGIN WORKING ON DAY IFERR = -2C $C BACK UP OVER (-) IF ONE IS PRESENT N = N - 1  IF (N .LE. 0) GO TO 900R% IF (DSTR(N) .EQ. '-') N = N - 1NCE C DECODE DAY M = 0A IAR(2) = 0CR 30 CONTINUE IF (N .LE. 0) GO TO 40 I = DSTR(N) - "60S+ IF (I .LT. 0 .OR. I .GT. 9) GO TO 900)C0# IAR(2) = IAR(2) + I * (10**M)  M = M + 1, N = N - 1( GO TO 30CN5C STRING IS ALL DONE, FINAL CHECK ON DAYS BEFORE DONEG 40 CONTINUE7 IF (IAR(2) .GT. 0 .AND. IAR(2) .LE. 32) IFERR = 1RC) C ALL DONE 900 CONTINUE RETURN END.( INTEGER FUNCTION IDCMPR (ID1, ID2)C+:C IDCMPR -- FUNCTION TO COMPARE 2 DATES STORED AS INTEGERSC#C CALL SEQUENCE (FORTRAN FUNCTION):OC C J = IDCMPR (ID1, ID2)C C INPUT ARGUMENTS CG;C ID1 - INTEGER ARRAY (3 WORDS) WITH DATE STORED AS 8C ID(1) = MONTH, ID(2) = DAY, ID(3) = YEARCG-C ID2 - SAME AS AVOBE FOR SECOND DATEC4C RETURNS VALUE:C($C -1 - IF DATE-1 BEFORE DATE-2C %C 0 - IF DATE-1 SAME AS DATE-2 C #C +1 - IF DATE-1 AFTER DATE-2CCNC NO ERRORS DETECTEDC-$ INTEGER ID1(3), ID2(3), IPT(3)CR"C IPT GIVES ORDER IN WHICH TO TEST DATA IPT / 3, 1, 2/ C C DO THE CHECKS PER TABLE DO 100 I = 1, 3 J = IPT(I)E* IF (ID1(J) .LT. ID2(J)) GO TO 200* IF (ID1(J) .GT. ID2(J)) GO TO 300 100 CONTINUEC C FALLS THRU IF EXACTLY THE SAME IDCMPR = 0 GO TO 900 C #C COME HERE AS SOON AS ONE WAS LESS  200 CONTINUE IDCMPR = -1  GO TO 900-C &C COME HERE AS SOON AS ONE WAS GREATER 300 CONTINUE IDCMPR = 1C(C ALWAYS00E4 COME HERE TO RETURN 900 CONTINUE RETURN END ? SUBROUTINE RJUSTF (INS, NCL, NCR, OUTS, NCSL, NCSR, FILL) C+GC THIS SUBROUTINE RIGHT JUSTIFIES AN INPUT STRING INTO AN OUTPUT STRINGI5C AND FILLS THE EXTRA SPACES WITH A FILL CHARACTER.LCHDC IT ALSO EXPANDS THE WILD-CARD SPECIFIER (*) INTO THE PROPER NUMBER%C OF WILD-CHARACTER (?) CHARACTERSOCNC CALL SEQUENCE:9C CALL RJUSTF (INS, NCL, NCR, OUTS, NCSL, NCSR, FILL)GCT:C INS = (ENTRY) BYTE ARRAY WITH STRING TO BE COPIEDGC NCL = (ENTRY) POSITION IN -INS- ARRAY TO START FROM (LEFT END)UDC NCR = (ENTRY) POSITION IN -INS- ARRAY TO END ON (RIGHT END):C OUTS = (RETURN) JUSTIFIED AND FILLED OUTPUT STRING1C NCSL = (RETURN) LEFT END OF TARGET STRINGH2C NCSR = (RETURN) RIGHT END OF TARGET STRING8C FILL = (ENTRY) BYTE TO USE AS THE FILL CHARACTERCNC ERROR CONDITIONS: >C NONE DETECTED. NO WORK WILL BE DONE IF NCL .GT. NCR OR C NCSL .GT. NCSRC-* LOGICAL*1 INS(1), OUTS(1), FILL, FLL LOGICAL*1 AS, QM DATA AS/'*'/, QM/'?'/TCD FLL = FILL J = NCSR K = NCRYC  10 CONTINUE IF (K .LT. NCL) GO TO 30" IF (INS(K) .EQ. AS) GO TO 20' IF (J .GE. NCSL) OUTS(J) = INS(K)R K = K - 1  J = J - 1  IF (J .GE. NCSL) GO TO 10  GO TO 900OCE 20 CONTINUE FLL = QMC  30 CONTINUE IF (J .LT. NCSL) GO TO 900 OUTS(J) = FLLR J = J - 1. GO TO 30C  900 CONTINUE RETURN END 5 SUBROUTINE NXTAPE (LUNOUT, LUNIN, LUNMT, IFERR) C+GC THIS ROUTINE PROMPTS FOR AND SETS UP A MAGNETIC TAPE FOR LATER READS.(CLC CALLING SEQUENCE: FORTRANC)0C CALL NXTAPE (LUNOUT, LUNIN, LUNMT, IFERR)CI8C LUNOUT = (ENTRY) FORTRAN LUN FOR PROMPTING OUTPUT6C LUNIN = (ENTRY) FORTRAN LUN FOR RESPONSE INPUT>C LUNMT = (ENTRY) FORTRAN LUN TO BE ASSIGNED TO MAGTAPE.C9GC IFERR = (ENTRY) IF -999 ON ENTRY, NO REWIND-UNLOAD WILL BE DONET%C BEFORE PROMPTU$C (RETURNS) ERROR FLAG/C 1 - TAPE ASSIGNED OK AC -10 - END-OF-FILE (CTRL-Z) DURING PROMPTRCC OTHER ROUTINES REQUIRED:C ;C WTQIO = SYSTEM ROUTINE FOR CONTROL OF MAG-TAPE UNIT 'C MIN = FORTRAN MINIMUM ROUTINET,C ASSIGN = SYSTEM ASSIGN DEVICE TO LUN..C UPCASE = LOWER TO UPPER CASE CONVERSIONC./C 28-AUG-81 , WB-003 DO NOT UNLOAD AFTER REWINDO+C 22-JUN-81, WB-001 PROMPT FOR TAPE DENSITY C 30-APR-81, W. BURTONC-C MAG TAPE OPERATION CODESC PARAMETER IOATT="1400, IODET="2000, IORWD="2400, IORWU="2540, ! 1 IOSEC="2520, IOSTC="2500Z2C PARAMETER FOR HI-DENSITY CORE DUMP, AND 1600 BPI# PARAMETER NDENS=4, IDENS=2048C BYTE TAPE(4), IOST, ANS  INTEGER IOSB(2), IPRL(6)C EQUIVALENCE (IOST,IOSB(1))CT+C SKIP REWIND-DETACH IF INITIALIZATION CALLO# IF (IFERR .EQ. -999) GO TO 10 C REWINDC WB-003 DO NOT UNLOAD) CALL WTQIO (IORWD, LUNMT, LUNMT, 0)AC DETACH) CALL WTQIO (IODET, LUNMT, LUNMT, 0) CAC CANCEL PREVIOUS ASSIGNMENTS0 CALL ASSIGN (LUNMT)  WRITE (LUNOUT,1000)T* 1000 FORMAT (1H0, 'LOAD NEXT INPUT TAPE')C  10 CONTINUE WRITE (LUNOUT, 1001)5 1001 FORMAT (1H$, 'ENTER TAPE INPUT UNIT [DDU:] ')OH READ (LUNIN, 2000, END=900, ERR=10) NQT, (TAPE(I), I=1,MIN(4,NQT)) CALL UPCASE (TAPE, 4) 2000 FORMAT (Q, 4A1)9 IF (NQT .NE. 4) GO TO 10C C WB-001, PROMPT FOR DENSITY 11 CONTINUE WRITE (LUNOUT,1002)A@ 1002 FORMAT (1H$, 5X, 'TAPE DENSITY (800 OR 1600 BPI)? [I] '). READ (LUNIN,2001, END=900, ERR=11) KDENS 2001 FORMAT (I5)  JDENS=NDENSN& IF (KDENS .EQ. 1600) JDENS=IDENSC CHANGE DEVICE ASSIGNMENTS0" CALL ASSIGN (LUNMT, TAPE, 4)CD/C TRY TO ATTACH DEVICE, CHECK RETURN STATUS TOO=4 CALL WTQIO (IOATT, LUNMT, LUNMT, 0, IOSB,,IDS)0 IF (IOST .GT. 0 .AND. IDS .GT. 0) GO TO 20C.+C FAILED TO ATTACH, PROMPT ABOUT WHAT TO D00j,-TADATADATAOY WRITE (LUNOUT, 1003) IOSTNE 1003 FORMAT (1H$, 2X, 'FAILED TO ATTACH, IOSTAT=', I3, '. CONTINUE',  1 ' ANYWAY? [Y/N] ')N. READ (LUNIN, 2002, END=900, ERR=900) ANS CALL UPCASE (ANS, 1) 2002 FORMAT (A1)I. IF ((ANS .AND. "177) .NE. 'Y') GO TO 900CGC DO AN INSURANCE REWIND 20 CONTINUE) CALL WTQIO (IORWD, LUNMT, LUNMT, 0)WCO4C SET DENSITY OF TM-11 (HI-DENSITY AND/OR CORE DUMP)6 CALL WTQIO (IOSTC, LUNMT, LUNMT, 0, IOSB, JDENS)CRC SET AN OK RETURN IFERR = 1L GO TO 990NC1 900 CONTINUE IFERR = -10A 990 CONTINUE RETURN END B SUBROUTINE PARSE (NQIN, INLINE, TUIC, TFILEN, IFWILD, IFERR)C+ C PARSE.FTNCC GC THIS ROUTINE PARSES A FILE SPECIFIER STRING FROM -INLINE- AND RETURNS9EC THE EXPANDED UIC IN ARRAY -TUIC-. THE REST OF THE FILE SPECIFIERWC RETURNS TO -TFILEN-CEEC LOGICAL FLAG -IFWILD- IS SET TRUE IF THE STRING CONTAINS A WILDCARDTCLC CALL SEQUENCE:C :C CALL PARSE (N, INLINE, TUIC, TFILEN, IFWILD, IFERR)C9>C N = (ENTRY) NUMBER OF CHARACTERS STORED IN -INLINE-GC INLINE = (ENTRY) BYTE ARRAY CONTAINING FILESPECIFIER STRING TO BE ?C PARSED. THE LINE MUST HAVE ALL FIELDS SPECIFIEDEBC (IE. [I,J].;N) THERE ARE NO DEFAULTS. FIELDS MAYBC CONTAIN WILD CHARACTERS OR WILD CARDS. THE VERSION-C NUMBER FIELD MUST NOT BE NULL. HC TUIC = (RETURN) BYTE ARRAY FOR RETURN OF PARSED AND EXPANDED UIC<C STRING. RETURNS OF THE FORM [NNN,MMM]AC WHERE NNN = GROUP NUMBER OR ??? IF WILDCARD=6C MMM = MEMBER NUMBER OR ???FC TFILEN = (RETURN) BYTE ARRAY FOR THE FILENAME STRING, PARSED AND#C EXPANDED TOR:C 9.3;6 CHARACTERS WITH NULL AT END.;C WILDCARDS ARE STORED AS STRING OF ?LEC IFWILD = (RETURN) LOGICAL VALUE .TRUE. IF A WILD CARD WAS FOUNDP3C NOT SET FOR WILD CHARACTERS %C IFERR = (RETURN) STATUS RETURN *C +1 IF PARSE WAS OK>C -1 IF SYNTAX ERROR FOUND DURING PARSE.C?C ERROR CONDITIONS:E=C 1. THE INPUT STRING MUST BE OF THE FORM [N,M]NAME.EXT;VER C N = 3 DIGIT GROUP NUMBER C M = 3 DIGIT MEMBER NUMBER*C NAME = FILE NAME (9 CHARACTERS MAX).C EXT = FILE EXTENSION (3 CHARACTERS MAX).C VER = 6 CHARACTER OCTAL VERSION NUMBER.CA7C WILDCARD CHARACTER (*) CAN BE USED FOR ANY FIELDT<C WILD CHARACTER (?) CAN BE USED TO MATCH ANY CHARACTERC C-- LOGICAL*1 INLINE(1), TUIC(1), TFILEN(1)I> LOGICAL*1 STX(5), AS, CM, DT, LB, NL, QM, RB, SC, SP, ZE INTEGER IPTR(5)U LOGICAL IFWILDA EQUIVALENCE (NCLB,IPTR(1)), (NCCM,IPTR(2)), (NCRB,IPTR(3)),T' 1 (NCDT,IPTR(4)), (NCSC,IPTR(5))9E EQUIVALENCE (LB,STX(1)), (CM,STX(2)), (RB,STX(3)), (DT,STX(4)),  1 (SC,STX(5))CV1C SET UP CHARACTERS AND POINTERS FOR SYNTAX CHECKA( DATA STX/ '[', ',', ']', '.', ';'/4 DATA AS/'*'/, NL/0/, QM/'?'/, SP/' '/, ZE/'0'/C C ASSUME NO WILDCARDST IFWILD = .FALSE.CO,C PUT CONSTANT CHARACTERS INTO TARGET STRING DO 100 I = 1,9 TUIC(I) = SPA 100 CONTINUE TUIC(1) = LB TUIC(5) = CM TUIC(9) = RBC  DO 110 I = 1,20( TFILEN(I) = SPI 110 CONTINUE TFILEN(10) = DTT TFILEN(14) = SC  TFILEN(21) = NLCE.C CHECK FOR WILDCARDS ANYWHERE IN INPUT STRING< IF (ICPOS(INLINE, 1, NQIN, AS) .NE. 0) IFWILD = .TRUE.C0C PRELIMINARY SCAN FOR SYNTAX  LEFT = 1 DO 200 I=1,5C=9C WORK LEFT-TO-RIGHT, SCAN FOR CHARACTERS IN STX LIST4 IPTR(I) = ICPOS(INLINE, LEFT, NQIN, STX(I))& IF (IPTR(I) .EQ. 0) GO TO 800 LEFT = IPTR(I) + 1 C 6C LOOK AGAIN TO BE SURE WE HAVE EXACTLY ONE OCCURRENCE)C IF DUPLICATE OCCURRENCE, SYNTAX ERRORN@ IF (ICPOS(INLINE, LEFT, NQIN, STX(I)) .NE. 0) GO TO 800 200 CONTINUECG,C MAKE S00E4URE SPACE IS LEFT FOR VERSION NUMBER# IF (NCSC .EQ. NQIN) GO TO 800CC PROCESS THE UIC CE8C NCRB=POSITION OF RIGHT BRACKET, NCCM=POSITION OF COMMA"C NCLB = POSITION OF LEFT BRACKET.C 1C RIGHT JUSTIFY EACH UIC FIELD INTO TARGET STRING : CALL RJUSTF (INLINE, NCCM+1, NCRB-1, TUIC, 6, 8, ZE): CALL RJUSTF (INLINE, NCLB+1, NCCM-1, TUIC, 2, 4, ZE)CEHC LEFT JUSTIFY FILE NAME INTO NAME FIELD, BLANK FILL AND EXPAND * TO ???< CALL LJUSTF (INLINE, NCRB+1, NCDT-1, TFILEN, 1, 9, SP)CS'C LEFT JUSTIFY FILE EXTENSION SIMILARLY > CALL LJUSTF (INLINE, NCDT+1, NCSC-1, TFILEN, 11, 13, SP)CS.C RIGHT JUSTIFY VERSION NUMBER WITH SPACE FILL= CALL RJUSTF (INLINE, NCSC+1, NQIN, TFILEN, 15, 20, SP) CCC AT THIS POINT THE ARRAY -TUIC- SHOULD HAVE [NNN,NNN] OR [???,???],'C AND TFILEN FFFFFFFFF.EEE; NN>C OR ?????????.???;?????? OR SOME COMBINATION.CTC MARK NO ERRORN IFERR = 1  GO TO 900ACLC MARK A SYNTAX ERRORN 800 CONTINUE IFERR = -1CJ 900 CONTINUE RETURN ENDA1 SUBROUTINE RDTAPE (LUN, NBYTES, BUF, IFERR)SC+ C RDTAPE.FTNCFEC THIS SUBROUTINE DOES EXECUTIVE-LEVEL (QIO) READS FROM MAGNETIC TAPEIC DIRECTLY INTO THE USER TASKC =C CALLING SEQUENCE: CALL RDTAPE (LUN, NBYTES, BUF, IFERR)NCFDC INPUT ARGUMENTS: LUN = THE LOGICAL UNIT NUMBER ASSIGNED TO THE;C INPUT MAGNETIC TAPE (INTEGER) CC NBYTES = THE NUMBER OF BYTES TO TRY TO READ. CC ** WARNING ** THE ACTUAL BYTE COUNTU?C IS RETURNED TO NBYTES, DO NOT USE A?C CONSTANT AS AN ACTUAL ARGUMENT.T;C RETURN ARGUMENTS: BUF = ARRAY INTO WHICH BYTES ARE PUT ,C IFERR = STATUS RETURN,C +1 = SUCCESSCC -N = OPERATION ERROR CODE (SEE FCS)C>C -N-1000 = DIRECTIVE ERROR CODECEC SUBROUTINES REQUIRED: C <C GETADR = SYSTEM ROUTINE TO RETURN ADDRESS OF ARGUMENT6C WTQIO = SYSTEM LEVEL I/O CALL TO OPERATE TAPE.C-C PARAMETER IORLB=512  BYTE BUF(1), IOSTATR INTEGER IOSB(2), IPRL(6)# EQUIVALENCE (IOSB(1), IOSTAT) C C ASSUME SUCCESSFUL COMPLETION IFERR = 1 C /C SET UP PARAMETERS FOR QIO CALL, START ADDRESS " CALL GETADR(IPRL(1), BUF(1))C NUMBER OF BYTES TO TRY IPRL(2) = NBYTESC14C CALL THE EXECUTIVE AND WAIT FOR COMPLETION OF READ6 CALL WTQIO (IORLB, LUN, LUN, 0, IOSB, IPRL, IDS)C "C CHECK FOR A DIRECTIVE ERROR (-N) IF (IDS .LE. 0) GO TO 800C8C NOT DIRECTIVE ERROR, CHECK FOR DRIVER ERROR, BR IF NOT" IF (IOSTAT .GT. 0) GO TO 900 IFERR = IOSTATT GO TO 900CE 800 CONTINUE IFERR = IDS-1000CE 900 CONTINUE NBYTES = IOSB(2) RETURN ENDP? SUBROUTINE LJUSTF (INS, NCL, NCR, OUTS, NCSL, NCSR, FILL)SC+FC THIS SUBROUTINE LEFT JUSTIFIES AN INPUT STRING INTO AN OUTPUT STRING5C AND FILLS THE EXTRA SPACES WITH A FILL CHARACTER. CIDC IT ALSO EXPANDS THE WILD-CARD SPECIFIER (*) INTO THE PROPER NUMBER%C OF WILD-CHARACTER (?) CHARACTERSFCTC CALL SEQUENCE:9C CALL LJUSTF (INS, NCL, NCR, OUTS, NCSL, NCSR, FILL)OC0:C INS = (ENTRY) BYTE ARRAY WITH STRING TO BE COPIEDGC NCL = (ENTRY) POSITION IN -INS- ARRAY TO START FROM (LEFT END)LDC NCR = (ENTRY) POSITION IN -INS- ARRAY TO END ON (RIGHT END):C OUTS = (RETURN) JUSTIFIED AND FILLED OUTPUT STRING1C NCSL = (RETURN) LEFT END OF TARGET STRINGI2C NCSR = (RETURN) RIGHT END OF TARGET STRING8C FILL = (ENTRY) BYTE TO USE AS THE FILL CHARACTERCTC ERROR CONDITIONS: ;C NONE DETECTED. NO WORK WILL BE DONE IF NCL > NCR OR C NCSL > NCSRRC-* LOGICAL*1 INS(1), OUTS(1), FILL, FLL LOGICAL*1 AS, QM DATA AS/'*'/, QM/'?'/(CT FLL = FILL J = NCSL K = NCLACY 10 CONTINUE IF (K .GT. NCR) GO TO 30" IF00,-TADATADATA (INS(K) .EQ. AS) GO TO 20' IF (J .LE. NCSR) OUTS(J) = INS(K)T K = K + 1C J = J + 1I IF (J .LE. NCSR) GO TO 10I GO TO 900TCO 20 CONTINUE FLL = QM 30 CONTINUE IF (J .GT. NCSR) GO TO 900 OUTS(J) = FLL  J = J + 1  GO TO 30C  900 CONTINUE RETURN END LOGICAL*1 AS, QM DATA AS/'*'/, QM/'?'/(CT FLL = FILL J = NCSL K = NCLACY 10 CONTINUE IF (K .GT. NCR) GO TO 30" IF6 .TITLE DSCMAC - MACRO ROUTINES TO BE USED WITH DSCCPY7 .SBTTL FIXFDB - PATCH FDB WITH INFORMATION FROM HEADERE .IDENT /V 1.00/;+ ; FIXFDB.MAC;C; THIS ROUTINE PATCHES THE FDB OF A FORTRAN FILE GIVEN DATA FROM ANH; OLD FILE HEADER.); THE OFFSETS COPIED ARE: ; FROM HEADER TO FDB ; ---------------------- ; F.RTYP H.UFAT !; THROUGH F.FFBY H.UFAT+13(; +; THE FIRST 7. WORDS OF THE FDB ARE COPIED. ; ;T; CALL SEQUENCE: FORTRANW;C"; CALL FIXFDB (LUN, HEADER, IFERR); +; LUN = (ENTRY) INTEGER LUN OF OPEN FILEW+; HEADER = (ENTRY) IMAGE OF OLD FILE HEADERN; IFERR = (RETURN) ERROR CODE; +1 (IS.SUC) IF OK"; -37. (IE.NLN) NO FILE ON LUN;T; OTHER ROUTINES REQUIRED:; 8; $FCHNL - GET ADDRESS OF FORTRAN FDB GIVEN FORTRAN LUN.;R;- .GLOBL $FCHNL .MCALL FDOF$L,FHDOF$,IOERR$;A FDOF$L ; DEFINE FDB OFFSETSF+ FHDOF$ DEF$L ; DEFINE HEADER BLOCK OFFSETSR" IOERR$ DEF$L ; DEFINE ERROR CODES.D.FDB=14 ; OFFSET FROM FORTRAN FDB TO FCS FDB;FIXFDB::) MOV #IE.NLN,@6(R5) ; ASSUME ERROR RETURNE$ MOV @2(R5),R2 ; PICK UP FORTRAN LUN+ JSR PC,$FCHNL ; GO GET FORTRAN FDB ADDRESS BCS 900$ ; IF CARRY SET, ERROR;N- ADD #D.FDB,R0 ; POINT R0 TO FCS PART OF FDB.E3 ADD #F.RTYP,R0 ; POINT RO TO START OF INFO TO COPYO" MOV 4(R5),R1 ; POINT R1 TO HEADER8 ADD #H.UFAT,R1 ; POINT R1 TO USER-FILE-ATTRIBUTES PART., MOV #14.,R2 ; R2 COUNTS BYTES TO BE COPIED10$: MOVB (R1)+,(R0)+ ; COPY A BYTED DEC R2= BNE 10$;F; COPY COMPLETE, RETURN SUCCESSI MOV #IS.SUC,@6(R5)@900$:  RTS PC ; ALL DONE VC .SBTTL ICPOS - RETURN THE INDEX OF A MATCHING CHARACTER (FUNCTION) ;+ ; ICPOS.MAC0;;>; THIS FUNCTION SCANS CHARACTERS FROM THE INPUT STRING -INSTR->; AND RETURNS AS ITS VALUE, THE INDEX OF THE FIRST CHARACTER=; WHICH MATCHES -TC-. IT SCANS THE AREA OF THE STRING FROMT; -NS- TO -NE-;S-; CALLING SEQUENCE: FORTRAN (FUNCTION)O;D; M = ICPOS (INSTR, NS, NE, TC)A;T0; INSTR - BYTE ARRAY HAVING STRING TO SCAN;; NS - STARTING INDEX (FORTRAN INDEX) OF SCAN AREA); NE - ENDING INDEX OF SCAN AREA %; TC - BYTE TO BE MATCHED. C;.-; WARNING -- THIS ROUTINE DOES 7-BIT MATCHING ; ; ERRORS:G?; IF THE CHARACTER -TC- CANNOT BE FOUND IN THE STRING, THEA&; FUNCTION VALUE RETURNS 0 (ZERO);H ; OTHER ROUTINES REQUIRED: NONE;-ICPOS::S CLR R0 ; ASSUME NO MATCH; $ MOV @4(R5),R1 ; PICK UP START INDEX DEC R1 ;% MOV @6(R5),R2 ; PICK UP ENDING INDEXV) SUB R1,R2 ; COMPUTE NUMBER CHARS. TO DOG! BLE 990$ ; IF (-), ALREADY DONE; 1 ADD 2(R5),R1 ; R1 NOW HOLDS STRING START ADDRESS ! MOV R1,-(SP) ; SAVE IT FOR LATER ;N+ MOVB @10(R5),R3 ; PICK UP TARGET CHARACTER% BIC #177600,R3 ; CHOP TO 7-BIT ASCII-;N10$:) MOVB (R1)+,R4 ; PICK UP STRING CHARACTER BIC #177600,R4 ; MASK TO 7-BITS$ CMPB R3,R4 ; SEE IF MATCHES TARGET BEQ 20$ ; BR IF IT DOEST DEC R2 ; COUNT DOWN NBR. TO DO! BGT 10$ ; BR IF STILL SOME LEFT,;;1 TST (SP)+ ; FALLS THRU IF NO MATCH, CLEAN STACKR BR 990$ ; AND RETURN20$:1 MOV R1,R0 ; GOT A MATCH, COMPUTE MATCHING INDEXL SUB (SP)+,R0 ;  ADD @4(R5),R0 DEC R0A990$:O RTS PC ; DONEV 1? .SBTTL IFSTEQ - DETERMINE IF TWO STRINGS MATCH (WITH WILDCARD)-;+A; THIS FUNCTION DOES CHARACTER STRING MATCHING WITH WILD CARD AND#; WILD CHARACTER MATCH.;P7; THE WILD-CARD CHARACTER (*) MATCHES THE ENTIRE FIELD.E?; THE WILD-CHARACTER CHARACTER (?) MATCHES ANY ASCII CHARACTER.E;F=; WILD CARDS AND WILD CHARACTERS MAY APPEAR IN EITHE00E4R STRING. :; BUT THE WILD-CARD CHARACTER MUST BE THE FIRST CHARACTER(; IN THE STRING IF IT IS PRESENT AT ALL;5; CALL SEQUENCE: FORTRANS; ; IFSTEQ (S1, S2, N);D1; S1 = (ENTRY) BYTE ARRAY, SOURCE STRING1; S2 = (ENTRY) BYTE ARRAY, TARGET STRING @; N = (ENTRY) INTEGER NUMBER OF CHARACTERS TO COMPARE.;C ; OTHER ROUTINES REQUIRED: NONE; ;-; DEFINE CONSTANTS TRUE = 100000S FALSE = 0CWCARD = '* ; WILD CARDRWCHAR = '? ; WILD CHARACTER; IFSTEQ::; ASSUME STRINGS DO NOT MATCHC. MOV #FALSE,R0 ; R0 IS LOGICAL FUNCTION RETURN;I0 MOV @6(R5),R1 ; PICK UP NUMBER CHARACTERS TO DO* BLE 990$ ; IF .LE. 0, RETURN IMMEDIATELY; . MOV 2(R5),R2 ; R2 IS SOURCE STRING S1 ADDRESS. MOV 4(R5),R3 ; R3 IS SOURCE STRING S2 ADDRESS; / MOVB (R2),R4 ; PICK UP FIRST SOURCE CHARACTERC BIC #177600,R4 ; MASK TO 7-BITS' CMPB R4,#WCARD ; SEE IF IT IS WILDCARDN( BEQ 900$ ; IF EQ- IT IS, RETURN .TRUE./ MOVB (R3),R5 ; PICK UP FIRST TARGET CHARACTER BIC #177600,R5 ; MASK TO 7-BITS' CMPB R5,#WCARD ; SEE IF IT IS WILDCARDL* BEQ 900$ ; IF EQ -- IT IS, RETURN .TRUE.10$:* MOVB (R2)+,R4 ; R4 HOLDS SOURCE CHARACTER BIC #177600,R4 ; MASK TO 7-BITS;R. MOVB (R3)+,R5 ; R5 NOW HOLDS TARGET CHARACTER BIC #177600,R5 ; MASK TO 7-BITS; * CMPB R4,#WCHAR ; CHECK FOR WILD CHARACTER) BEQ 20$ ; IF EQ, YES, SKIP REST OF TESTC; - CMPB R5,#WCHAR ; CHECK S2 FOR WILD CHARACTER; BEQ 20$ ; IF EQ, YES;.+ CMPB R4,R5 ; NOW CHECK THE TWO CHARACTERSC2 BNE 990$ ; IF NE, DONT MATCH, STRINGS DONT MATCH20$:0 DEC R1 ; COUNT DOWN NUMBER OF CHARACTERS TO DO+ BGT 10$ ; AND CONTINUE IF CHARACTERS LEFTO; 900$:C. MOV #TRUE,R0 ; RETURN .TRUE. IF FALLS THRU OK;V990$:, RTS PC ; DONE  G3 .SBTTL PPASC - CONVERT BINARY WORD TO [UIC] STRINGC;+ ; PPASC.MACH; 8; FORTRAN CALLABLE BINARY UIC-TO-ASCII STRING CONVERSION;C; CALL SEQUENCE:; +; CALL PPASC (IUICI, ICODEI, LSTRO, STRING)F;,/; IUICI = (ENTRY) INTEGER BINARY UIC TO CONVERTT;; ICODEI = (ENTRY) CODE WORD, CONTROLS OUTPUT STRING FORMAT:&; BIT 0 = 0 -- SUPPRESS LEADING ZEROS&; 1 -- DO NOT SUPPRESS LEADING ZEROS'; BIT 1 = 0 -- PUT SEPARATORS (IE [,])R; 1 -- DO NOT PUT SEPARATORS-; LSTRO = (RETURN) LENGTH OF STRING CONVERTEDP0; STRING = (RETURN) STRING RESULT OF CONVERSION.;S; ERRORS: NONE DETECTEDL;E; OTHER ROUTINES REQUIRED:;V?; .PPASC - SYSTEM ROUTINE TO CONVERT BINARY WORD TO ASCII [UIC]T ; STRING.;- .GLOBL PPASC,.PPASC; PPASC::C" MOV @2(R5),R3 ; PICK UP UIC VALUE% MOV @4(R5),R4 ; PICK UP CONTROL CODE. MOV 10(R5),R2 ; PICK UP RESULT STRING ADDRESS;  JSR PC,.PPASC ; DO CONVERSION;13 SUB 10(R5),R2 ; COMPUTE LENGTH OF RESULTING STRING " MOV R2,@6(R5) ; RETURN IT TO USER;F RTS PC ; DONEP : .SBTTL UNSPAC - REMOVE ASCII WHITE CHARACTERS FROM STRING;+ ; UNSPAC.MACE; >; THIS ROUTINE REMOVES 'WHITE' ASCII CHARACTERS FROM A STRING.;BG; THE ONLY CHARACTERS WHICH WILL REMAIN FOLLOWING A CALL TO UNSPAC ARE:P(; ASCII CODES 041(8) THROUGH 176(8).;MF; THE PROCESSED STRING IS RETURNED TO THE STRING BUFFER LOW ADDRESSES.;G; CALL SEQUENCE: FORTRANC; CALL UNSPAC (STRING, NCHARS);2>; STRING = (ENTRY) BYTE ARRAY CONTAINING STRING TO BE SCANNED.2; (RETURNS) STRING AFTER REMOVAL OF WHITE SPACE.;R:; NCHARS = (ENTRY) INTEGER NUMBER OF CHARACTERS IN STRING.-; (RETURNS) NUMBER OF CHARACTERS REMAINING.A;R; ERRORS DETECTED: NONE;N; OTHER ROUTINES REQUIRED: NONEO;W; GLOBAL REFERENCES: NONE; ; 17-JAN-76, W. BURTON.U;- .GLOBL UNSPAC;RUNSPAC:T, MOV 2(R5),R0 ; PICK UP STRING START ADDRESS" MOV R0,R1 ; COPY IT FOR PUT-AWAY. MOV @4(R5),R2 ; PICK UP CHARACTER COUNT TO DO10$: BLE 900$ ; IF .LE. 0, DONE; $ MOVB (R0)+,R3 ; PICK UP A CHARACTER) CMPB R3,#40 ; SEE IF IT -SPACE- OR LESS= BLE 20$ ; IF LE, YES;C CMPB R3,#177 ; IS IT DELETER BEQ 20$ ; IF EQ, YES;M% MOVB R3,(R1)+ ; RETURN THE CHARACTER20$: DEC R2T BR 10$I900$:N0 SUB 2(R5),R1 ; COMPUTE CHARACTER COUNT RETURNED MOV R1,@4(R5)00ȓ˓,-TADATADATA RTS PC ; DONEC;R N, .SBTTL UPCASE - CONVERT ASCII TO UPPER CASE;+ ; UPCASE.MAC; F; THIS ROUTINE SCANS A BYTE ARRAY AND CONVERTS THE CHARACTERS TO UPPER; CASE, 7-BIT ASCII..(; THE HIGH ORDER (8TH) BIT IS FORCED OFF;A; CALLING SEQUENCE: FORTRAN;S; CALL UPCASE (INSTR, NCHARS)L;Y3; INSTR = (ENTRY) BYTE ARRAY OF CHARACTERS TO SCANF9; (RETURNS) ARRAY OF CHARACTERS WITH BIT-8 OFF AND CASE; CONVERTED.;S6; NCHARS = (ENTRY) NUMBER OF CHARACTERS IN THE STRING.;R; ERRORS DETECTED: NONE; ; OTHER ROUTINES REQUIRED: NONE;E; GLOBALS USED: NONEC; ; 17-JAN-76, W. BURTON;- .GLOBL UPCASE;SUPCASE::& MOV 2(R5),R0 ; PICK UP STRING ADDRESS- MOV @4(R5),R1 ; PICK UP NUMBER OF CHARACTERS 10$:# BLE 900$ ; IF NUMBER .LE. 0, DONES;I$ MOVB (R0),R2 ; PICK UP A CHARACTER$ BIC #177600,R2 ; STRIP OFF HIGH-BIT;R) CMPB R2,#141 ; SEE IF IT NEEDS CHANGINGA BMI 20$ ; IF (-) IT DOES NOT;0 CMPB R2,#173 ; SEE IF IT IS LEFT-CURLY-BRACKET' BPL 20$ ; OR ABOVE, DONT CONVERT IF +; * BIC #40,R2 ; CONVERT LOWER TO UPPER CASE20$:% MOVB R2,(R0)+ ; RETURN THE CHARACTER-;. DEC R1 ; COUNT DOWN CHARS LEFT BR 10$ ;K900$:I RTS PC ; DONE@ .END1 ; PICK UP NUMBER OF CHARACTERS 10$:# BLE 900$ ; IF NUMBER .LE. 0, DONES;I$ MOVB (R0),R2 ; PICK UP A CHARACTER$ BIC #177600,R2 ; STRIP OFF HIGH-BIT;R) CMPB R2,#141 ; SEE IF IT NEEDS CHANGINGA BMI 20$ ; IF (-) IT DOES NOT;0 CMPB R2,#173 ; SEE IF IT IS LEFT-CURLY-BRACKET' BPL 20$ ; OR            , Disk Save and Compress (DSC) Tape Formats  1-April-81    I. INTRODUCTION J This note describes what I have learned of the format of DSC producedP magnetic tapes. The information presented here is to be considered prelimi-P nary and subject to revision. The Stand-Alone DSC V2 was used to create test tapes for this project.  Bill Burton3 Texas Research Institute of Mental Sciences 1300 Moursund Houston, Texas 77030e (713) 797-1976 ext 501 A II. DSC TAPE STRUCTURE G Basically, DSC tapes are ANSI standard version 1 labeled magtapes.oK Standard version 1 has been superceeded by version 3 (ANSI X3.27-1978).hN Some of the label records are non-conforming or undefined in the version 3 standard.u cC The DSC tape volume consists of ANSI labeled volume and header2 labels surrounding DSC formatted data records. # Record Number Length ContentsT 7 1 80. VOL1 label record: volume identifier derived from the output file name9 given in the DSC command line for the first outputp file.0 a. Truncated to 4 characters if necessary6 b. Padded to 4 characters using the character X' c. Sequence number, 2 characters3" 01 for first reel of a set 02 for second, etc.S: d. Other information is documented in ANSI Standard1 Manual or RSX-11 I/O Operations Manual.n n< 2 512. Dummy bootstrap block which produces the message8 "This volume does not contain a hardware bootable system".  r 3 80. HDR1 label record1 a. File name specified in DSC command liney, b. Volume identifier from VOL1 record r 4 80. HDR2 label record6 a. An undefined record code (U) is non-standard* b. Logical record length 2064 bytes3 c. Physical record length maximum 2064 bytesa2 d. The character M in byte 37, non-standard* e. Buffer offset 00 in bytes 51-52. s 5 Tapemarks 1 6 1040. First DSC formatted record, contains"3 a. 8 word (16 bytes) DSC header with code=40i3 b. 512. bytes of DSC Bookkeeping informationu" (documented in section IV)5 c. 512. byte Files-11 file header for the filed (1,1) [0,0]INDEXF.SYS;1 b 7. 1040. DSC Data record2 should contain initialization data for 00ГE4disk) structure, 2 virtual blocks worth.  n 8. 2064. DSC Data record02 More initialization information for virtual block 377,177777. r c a "  * 9. & up 528. (or 1040. or 1552. or 2064.)9 Contain DSC data records with DSC codes 1, 2, or 4 7 The details of these records are in section III.e9 DSC copies files to the output tape in file-numberY7 order. For each input file on the disk there isl- 1 type 2 record (of unknown function)s' 1 type 4 Files-11 Header recordn0 as many type 1 data records as needed to3 hold all virtual blocks allocated to the1 input file.   p8 At the end of data from a disk volume, there will be d! Record number Length Contents  t N tapemarko  N+1 80. EOF1 record7 Identical to HDR1 except bytes 55-60 now contain 3 the number of physical tape records between  HDR2 and EOF1. w N+2 80. EOF2 record Identical to HDR2 record  m N+3 tapemarko n; N+4 tapemark, if this is the end of the tape volume OR1- 80. HDR1 for the next output tape file p% created using DSC /AP switch.l eC If the tape is filled, (ie reaches the End-of-Tape foil marker)NH the EOF1 and EOF2 records will be replaced by EOV1 and EOV2 records.C The following reel in the set will start with a VOL1 label withoM the output volume name incremented by 1. The structure of all subsequentIM reels is the same as described above for the first reel, except that data,K records start immediately. There will be no DSC initialization recordstM (6, 7, and 8. above) on subsequent reels. It is possible for data from asJ disk file to be split across two reels, and the data for a file can beH separated from its DSC header records or Files-11 header record when changing reels.w O l l t  III. DSC DATA RECORD FORMATe @ Within the labeled file, DSC writes its own format records. These records contain:t e a. An 8. word headere4 b. 1, 2, 3, or 4-512. byte logical data blocks. t  t DSC header Formatv uF word 1 Length of the data portion of the record, excluding ALL DSC specific information.  rH word 2 DSC record-type code indicating the type of data in the data  portion of the record.A code = 1 Disk data record(s), images of input disk blocks B 2 Prefix information. I have not fully decoded the7 data in these records. May have some filenamee and extent information.B 4 Files-11 file header (records of code 4 only have# one 512. byte data block).t3 40 Special DSC initialization record.i: a. 512. bytes of initialization information see section IV.3 b. 512. byte Files-11 header for INDEXF.SYS  aN words 3-4 For type 1 records, these words contain the Virtual Block NumberA (VBN) of the of the first logical block in the DSC data record.y< The low order part of the VBN is in word 3, the high-order( part is in the low byte of word 4.@ I have not fully understood the use of these words for the1 second data record for the INDEXF.SYS file.  1 word 5 The file number this record applies to  e; word 6 The file sequence number this record applies to.. % words 7-8 Always seem to be zero.  o t   t  c! IV. DSC INITIALIZATION RECORDs aA This record contains the usual 8-word DSC header with a codesH of octal-40 in word 2. The data portion of the record contains 512.L bytes of DSC control information plus the 512. byte Files-11 file header for (1,1) [0,0]INDEXF.SYS;1  J The DSC control information is formatted within the record as follows: e Bytes Contents lI 1.- 12. DSC Output name from the command line, ASCII 00ؓݓ,-TADATADATApadded with spacescH 13.- 24. Input device name (e.g. DK1), ASCII, padded with spaces 25.- 36. ? null < 37.- 48. Input volume name, ASCII, padded with nulls 49.- 52. ? null 53.- 54. ? 1= 55.- 58. Number of blocks on the input device, binary > 59.- 62. Number of blocks in use on the device, binary! (not including bad blocks) = 63.- 66. Number of files in use on the device, binary. 67.- 68. ?  69.- 70. ? nulla; 71.- 72. ? Number of blocks allocated to index filee 73.- 74. ? a 75.- 76. ?  77.- 78. ?  79.- 80. ? 81.- 82. ? 83.- 84. ? 85.-510. ? null 511.-512. checksum  -8 Items marked with ? are items I have not identified. 9 V. DSC CODE 2 RECORDS B One of these records preceeds each files-11 file on the DSC tape  DSC header word 1 = 512s word 2 = 21 word 5 = file number of the files-11 filea4 word 6 = file sequence of the files-11 file.  DSC data block, 512. bytes" words 1-3 the string BACKUP7 word 5 The number of bytes in the name string-2 words 6.. The file name string, in the form" DDU:[126,342]filename.ext;ver6 the UIC 126,342 seems to be constant,regard-7 less of what the source or directory uic was.s 7 word 46. Number of blocks allocated to the file # word 52. (same as word 46.) ( word 67. Owning UIC group number* word 68. Owning UIC member number. @ There is some more information, but I have not determined what1 it is, it was not necessary for restoring files.n   o   e" VI. DSC FILES-11 HEADER RECORD 2C One of these records immediately follows the DSC code 2 recordt and contains:  ; DSC header word 2 = 4 code for files-11 header recordN4 word 5 = files-11 file number for this file> word 6 = files-11 file sequence number for this file. C The data portion of the record contains the 512. byte files-11aL header block for the file. It is an exact image of the header as it was( on the disk, including the map area. ILES-11 HEADER RECORD 2C One of these records immediately follows the DSC code 2 recordt and contains:  ; DSC header word 2 = 4 code for files-11 header recordN4 word 5 = files-11 file number for this file> word 6 = files-11 file sequence numbe l     e t o o f e c, Disk Save and Compress (DSC) Tape Formats k 1-April-81t e a h I. INTRODUCTION  eJ This note describes what I have learned of the format of DSC producedP magnetic tapes. The information presented here is to be considered prelimi-P nary and subject to revision. The Stand-Alone DSC V2 was used to create test tapes for this project.r i Bill Burton 3 Texas Research Institute of Mental Sciences 1300 Moursundf Houston, Texas 77030e (713) 797-1976 ext 501 A II. DSC TAPE STRUCTURE G Basically, DSC tapes are ANSI standard version 1 labeled magtapes.oK Standard version 1 has been superceeded by version 3 (ANSI X3.27-1978).hN Some of the label records are non-conforming or undefined in the version 3 standard.u cC The DSC tape volume consists of ANSI labeled volume and header 2 labels surrounding DSC formatted data records. # Record Number Length ContentsT 7 1 80. VOL1 label record: volume identifier derived from the output file name9 given in the DSC command line for the first outputp file.0 a. Truncated to 4 characters if necessary6 b. Padded to 4 characters using the character X' c. Sequence number, 2 characters3" 01 for first reel of a set 02 for second, etc.S: d. Other information is documented in ANSI Standard1 00E4 Manual or RSX-11 I/O Operations Manual.n n< 2 512. Dummy bootstrap block which produces the message8 "This volume does not contain a hardware bootable system".  r 3 80. HDR1 label record1 a. File name specified in DSC command liney, b. Volume identifier from VOL1 record r 4 80. HDR2 label record6 a. An undefined record code (U) is non-standard* b. Logical record length 2064 bytes3 c. Physical record length maximum 2064 bytesa2 d. The character M in byte 37, non-standard* e. Buffer offset 00 in bytes 51-52. s 5 Tapemarks 1 6 1040. First DSC formatted record, contains"3 a. 8 word (16 bytes) DSC header with code=40i3 b. 512. bytes of DSC Bookkeeping informationu" (documented in section IV)5 c. 512. byte Files-11 file header for the filed (1,1) [0,0]INDEXF.SYS;1 b 7. 1040. DSC Data record2 should contain initialization data for disk) structure, 2 virtual blocks worth.  n 8. 2064. DSC Data record02 More initialization information for virtual block 377,177777. r c a "  * 9. & up 528. (or 1040. or 1552. or 2064.)9 Contain DSC data records with DSC codes 1, 2, or 4 7 The details of these records are in section III.e9 DSC copies files to the output tape in file-numberY7 order. For each input file on the disk there isl- 1 type 2 record (of unknown function)s' 1 type 4 Files-11 Header recordn0 as many type 1 data records as needed to3 hold all virtual blocks allocated to the1 input file.   p8 At the end of data from a disk volume, there will be d! Record number Length Contents  t N tapemarko  N+1 80. EOF1 record7 Identical to HDR1 except bytes 55-60 now contain 3 the number of physical tape records between  HDR2 and EOF1. w N+2 80. EOF2 record Identical to HDR2 record  m N+3 tapemarko n; N+4 tapemark, if this is the end of the tape volume OR1- 80. HDR1 for the next output tape file p% created using DSC /AP switch.l eC If the tape is filled, (ie reaches the End-of-Tape foil marker)NH the EOF1 and EOF2 records will be replaced by EOV1 and EOV2 records.C The following reel in the set will start with a VOL1 label withoM the output volume name incremented by 1. The structure of all subsequentIM reels is the same as described above for the first reel, except that data,K records start immediately. There will be no DSC initialization recordstM (6, 7, and 8. above) on subsequent reels. It is possible for data from asJ disk file to be split across two reels, and the data for a file can beH separated from its DSC header records or Files-11 header record when changing reels.w O l l t  III. DSC DATA RECORD FORMATe @ Within the labeled file, DSC writes its own format records. These records contain:t e a. An 8. word headere4 b. 1, 2, 3, or 4-512. byte logical data blocks. t  t DSC header Formatv uF word 1 Length of the data portion of the record, excluding ALL DSC specific information.  rH word 2 DSC record-type code indicating the type of data in the data  portion of the record.A code = 1 Disk data record(s), images of input disk blocks B 2 Prefix information. I have not fully decoded the7 data in these records. May have some filenamee and extent information.B 4 Files-11 file header (records of code 4 only have# one 512. byte data block).t3 40 Special DSC initialization record.i: a. 512. bytes of initialization information see section IV.3 b. 512. byte Files-11 header for INDEXF.SYS  aN words 3-4 For type 1 records, these wo00,-TADATADATArds contain the Virtual Block NumberA (VBN) of the of the first logical block in the DSC data record.y< The low order part of the VBN is in word 3, the high-order( part is in the low byte of word 4.@ I have not fully understood the use of these words for the1 second data record for the INDEXF.SYS file.  1 word 5 The file number this record applies to  e; word 6 The file sequence number this record applies to.. % words 7-8 Always seem to be zero.  o t   t  c! IV. DSC INITIALIZATION RECORDs aA This record contains the usual 8-word DSC header with a codesH of octal-40 in word 2. The data portion of the record contains 512.L bytes of DSC control information plus the 512. byte Files-11 file header for (1,1) [0,0]INDEXF.SYS;1  J The DSC control information is formatted within the record as follows: e Bytes Contents lI 1.- 12. DSC Output name from the command line, ASCII padded with spacescH 13.- 24. Input device name (e.g. DK1), ASCII, padded with spaces 25.- 36. ? null < 37.- 48. Input volume name, ASCII, padded with nulls 49.- 52. ? null 53.- 54. ? 1= 55.- 58. Number of blocks on the input device, binary > 59.- 62. Number of blocks in use on the device, binary! (not including bad blocks) = 63.- 66. Number of files in use on the device, binary. 67.- 68. ?  69.- 70. ? nulla; 71.- 72. ? Number of blocks allocated to index filee 73.- 74. ? a 75.- 76. ?  77.- 78. ?  79.- 80. ? 81.- 82. ? 83.- 84. ? 85.-510. ? null 511.-512. checksum  -8 Items marked with ? are items I have not identified. 9 V. DSC CODE 2 RECORDS B One of these records preceeds each files-11 file on the DSC tape  DSC header word 1 = 512s word 2 = 21 word 5 = file number of the files-11 filea4 word 6 = file sequence of the files-11 file.  DSC data block, 512. bytes" words 1-3 the string BACKUP7 word 5 The number of bytes in the name string-2 words 6.. The file name string, in the form" DDU:[126,342]filename.ext;ver6 the UIC 126,342 seems to be constant,regard-7 less of what the source or directory uic was.s 7 word 46. Number of blocks allocated to the file # word 52. (same as word 46.) ( word 67. Owning UIC group number* word 68. Owning UIC member number. @ There is some more information, but I have not determined what1 it is, it was not necessary for restoring files.n   o   e" VI. DSC FILES-11 HEADER RECORD 2C One of these records immediately follows the DSC code 2 recordt and contains:  ; DSC header word 2 = 4 code for files-11 header recordN4 word 5 = files-11 file number for this file> word 6 = files-11 file sequence number for this file. C The data portion of the record contains the 512. byte files-11aL header block for the file. It is an exact image of the header as it was( on the disk, including the map area. ILES-11 HEADER RECORD 2C One of these records immediately follows the DSC code 2 recordt and contains:  ; DSC header word 2 = 4 code for files-11 header recordN4 word 5 = files-11 file number for this file> word 6 = files-11 file sequence numbeC+ C DSCDIR.FTN LOGICAL*1 TAPE(4) 1000 FORMAT (' TEST PROGRAM')! 1001 FORMAT ('$ENTER TAPE NAME') 2000 FORMAT (Q, 4A1)7C START THE PROGRAM BY IDENTIFYING AND WAITING FOR TAPE WRITE (1,1000)C#C PROMPT FOR INPUT TAPE DEVICE-UNIT 10 CONTINUE WRITE (1,1001). READ (2,2000, END=900, ERR=10) NQT, TAPE 900 STOP END00E4C+ C DSCDIR.FTN LOGICAL*1 TAPE(4) 1000 FORMAT (' TEST PROGRAM')! 1001 FORMAT ('$ENTER TAPE NAME') 2000 FORMAT (Q, 4A1)7C START THE PROGRAM BY IDENTIFYING AND WAITING FOR TAPE WRITE (1,1000)C#C PROMPT FOR INPUT TAPE DEVICE-UNIT 10 CONTINUE WRITE (2,1001), READ (2,2000, END=900, ERR=10) NQ,TAPE 900 STOP END(DEC OCT COD EBCDIC /OCT/DEC(--- --- --- ----------------( 0 0 NUL 00000000/ 0/ 0( 1 1 SOH 00000001/ 1/ 1( 2 2 STX 00000010/ 2/ 2( 3 3 ETX 00000011/ 3/ 3( 4 4 EOT 00110111/ 67/ 55( 5 5 ENQ 00101101/ 55/ 45( 6 6 ACK 00101110/ 56/ 46( 7 7 BEL 00101111/ 57/ 47( 8 10 BS 00010110/ 26/ 22( 9 11 HT 00000101/ 5/ 5( 10 12 LF 00100101/ 45/ 37( 11 13 VT 00001011/ 13/ 11( 12 14 FF 00001100/ 14/ 12( 13 15 CR 00001101/ 15/ 13( 14 16 SO 00001110/ 16/ 14( 15 17 SI 00001111/ 17/ 15( 16 20 DLE 00010000/ 20/ 16( 17 21 DC1 00010001/ 21/ 17( 18 22 DC2 00010010/ 22/ 18( 19 23 DC3 /377/255( 20 24 DC4 00111100/ 74/ 60( 21 25 NAK 00111101/ 75/ 61( 22 26 SYN 00110010/ 62/ 50( 23 27 ETB 00100110/ 46/ 38( 24 30 CAN 00011000/ 30/ 24( 25 31 EM 00011001/ 31/ 25( 26 32 SUB 00111111/ 77/ 63( 27 33 ESC 00100111/ 47/ 39( 28 34 FS 00100010/ 42/ 34( 29 35 GS /377/255( 30 36 RS 00110101/ 65/ 53( 31 37 US /377/255( 32 40 SP 01000000/100/ 64( 33 41 ! 01011010/132/ 90( 34 42 " 01111111/177/127( 35 43 # 01111011/173/123( 36 44 $ 01011011/133/ 91( 37 45 % 01101100/154/108( 38 46 & 01010000/120/ 80( 39 47 ' 01111101/175/125( 40 50 ( 01001101/115/ 77( 41 51 ) 01011101/135/ 93( 42 52 * 01011100/134/ 92( 43 53 + 01001110/116/ 78( 44 54 , 01101011/153/107( 45 55 - 01100000/140/ 96( 46 56 . 01001011/113/ 75( 47 57 / 01100001/141/ 97( 48 60 0 11110000/360/240( 49 61 1 11110001/361/241( 50 62 2 11110010/362/242( 51 63 3 11110011/363/243( 52 64 4 11110100/364/244( 53 65 5 11110101/365/245( 54 66 6 11110110/366/246( 55 67 7 11110111/367/247( 56 70 8 11111000/370/248( 57 71 9 11111001/371/249( 58 72 : 01111010/172/122( 59 73 ; 01011110/136/ 94( 60 74 < 01001100/114/ 76( 61 75 = 01111110/176/126( 62 76 > 01101110/156/110( 63 77 ? 01101111/157/111( 64 100 @ 01111100/174/124( 65 101 A 11000001/301/193( 66 102 B 11000010/302/194( 67 103 C 11000011/303/195( 68 104 D 11000100/304/196( 69 105 E 11000101/305/197( 70 106 F 11000110/306/198( 71 107 G 11000111/307/199( 72 110 H 11001000/310/200( 73 111 I 11001001/311/201( 74 112 J 11010001/321/209( 75 113 K 11010010/322/210( 76 114 L 11010011/323/211( 77 115 M 11010100/324/212( 78 116 N 11010101/325/213( 79 117 O 11010110/326/214( 80 120 P 11010111/327/215( 81 121 Q 11011000/330/216( 82 122 R 11011001/331/217( 83 123 00,-TADATADATA S 11100010/342/226( 84 124 T 11100011/343/227( 85 125 U 11100100/344/228( 86 126 V 11100101/345/229( 87 127 W 11100110/346/230( 88 130 X 11100111/347/231( 89 131 Y 11101000/350/232( 90 132 Z 11101001/351/233( 91 133 [ /377/255( 92 134 \ /377/255( 93 135 ] /377/255( 94 136 ^ /377/255( 95 137 _ 01101101/155/109( 96 140 ` /377/255( 97 141 a 10000001/201/129( 98 143 b 10000010/202/130( 99 143 c 10000011/203/131(100 144 d 10000100/204/132(101 145 e 10000101/205/133(102 146 f 10000110/206/134(103 147 g 10000111/207/135(104 150 h 10001000/210/136(105 151 i 10001001/211/137(106 152 j 10010001/221/145(107 153 k 10010010/222/146(108 154 l 10010011/223/147(109 155 m 10010100/224/148(110 156 n 10010101/225/149(111 157 o 10010110/226/150(112 160 p 10010111/227/151(113 161 q 10011000/230/152(114 162 r 10011001/231/153(115 163 s 10100010/242/162(116 164 t 10100011/243/163(117 165 u 10100100/244/164(118 166 v 10100101/245/165(119 167 w 10100110/246/166(120 170 x 10100111/247/167(121 171 y 10101000/250/168(122 172 z 10101001/251/169(123 173 { /377/255(124 174 | /377/255(125 175 } /377/255(126 176 ~ /377/255(127 177 DEL 00000111/ 7/ 7/242/162(116 164 t 10100011/243/163(117 165 u 10100100/244/164(118 166 v 10100101/245/165(119 167 w 10100110/246 0 0 NUL 00000000/ 0/ 0 1 1 SOH 00000001/ 1/ 1 2 2 STX 00000010/ 2/ 2 3 3 ETX 00000011/ 3/ 3 4 4 EOT 00110111/ 67/ 55 5 5 ENQ 00101101/ 55/ 45 6 6 ACK 00101110/ 56/ 46 7 7 BEL 00101111/ 57/ 47 8 10 BS 00010110/ 26/ 22 9 11 HT 00000101/ 5/ 5 10 12 LF 00100101/ 45/ 37 11 13 VT 00001011/ 13/ 11 12 14 FF 00001100/ 14/ 12 13 15 CR 00001101/ 15/ 13 14 16 SO 00001110/ 16/ 14 15 17 SI 00001111/ 17/ 15 16 20 DLE 00010000/ 20/ 16 17 21 DC1 00010001/ 21/ 17 18 22 DC2 00010010/ 22/ 18 19 23 DC3 /377/255 20 24 DC4 00111100/ 74/ 60 21 25 NAK 00111101/ 75/ 61 22 26 SYN 00110010/ 62/ 50 23 27 ETB 00100110/ 46/ 38 24 30 CAN 00011000/ 30/ 24 25 31 EM 00011001/ 31/ 25 26 32 SUB 00111111/ 77/ 63 27 33 ESC 00100111/ 47/ 39 28 34 FS 00100010/ 42/ 34 29 35 GS /377/255 30 36 RS 00110101/ 65/ 53 31 37 US /377/255 32 40 SP 01000000/100/ 64 33 41 ! 01011010/132/ 90 34 42 " 01111111/177/127 35 43 # 01111011/173/123 36 44 $ 01011011/133/ 91 37 45 % 01101100/154/108 38 46 & 01010000/120/ 80 39 47 ' 01111101/175/125 40 50 ( 01001101/115/ 77 41 51 ) 01011101/135/ 93 42 52 * 01011100/134/ 92 43 53 + 01001110/116/ 78 44 54 , 01101011/153/107 45 55 - 01100000/140/ 96 46 56 . 01001011/113/ 75 47 57 / 01100001/141/ 97 48 60 0 11110000/360/240 49 61 1 11110001/361/241 50 62 2 11110010/362/242 51 00E4 63 3 11110011/363/243 52 64 4 11110100/364/244 53 65 5 11110101/365/245 54 66 6 11110110/366/246 55 67 7 11110111/367/247 56 70 8 11111000/370/248 57 71 9 11111001/371/249 58 72 : 01111010/172/122 59 73 ; 01011110/136/ 94 60 74 < 01001100/114/ 76 61 75 = 01111110/176/126 62 76 > 01101110/156/110 63 77 ? 01101111/157/111 64 100 @ 01111100/174/124 65 101 A 11000001/301/193 66 102 B 11000010/302/194 67 103 C 11000011/303/195 68 104 D 11000100/304/196 69 105 E 11000101/305/197 70 106 F 11000110/306/198 71 107 G 11000111/307/199 72 110 H 11001000/310/200 73 111 I 11001001/311/201 74 112 J 11010001/321/209 75 113 K 11010010/322/210 76 114 L 11010011/323/211 77 115 M 11010100/324/212 78 116 N 11010101/325/213 79 117 O 11010110/326/214 80 120 P 11010111/327/215 81 121 Q 11011000/330/216 82 122 R 11011001/331/217 83 123 S 11100010/342/226 84 124 T 11100011/343/227 85 125 U 11100100/344/228 86 126 V 11100101/345/229 87 127 W 11100110/346/230 88 130 X 11100111/347/231 89 131 Y 11101000/350/232 90 132 Z 11101001/351/233 91 133 [ /377/255 92 134 \ /377/255 93 135 ] /377/255 94 136 ^ /377/255 95 137 _ 01101101/155/109 96 140 ` /377/255 97 141 a 10000001/201/129 98 143 b 10000010/202/130 99 143 c 10000011/203/131100 144 d 10000100/204/132101 145 e 10000101/205/133102 146 f 10000110/206/134103 147 g 10000111/207/135104 150 h 10001000/210/136105 151 i 10001001/211/137106 152 j 10010001/221/145107 153 k 10010010/222/146108 154 l 10010011/223/147109 155 m 10010100/224/148110 156 n 10010101/225/149111 157 o 10010110/226/150112 160 p 10010111/227/151113 161 q 10011000/230/152114 162 r 10011001/231/153115 163 s 10100010/242/162116 164 t 10100011/243/163117 165 u 10100100/244/164118 166 v 10100101/245/165119 167 w 10100110/246/166120 170 x 10100111/247/167121 171 y 10101000/250/168122 172 z 10101001/251/169123 173 { /377/255124 174 | /377/255125 175 } /377/255126 176 ~ /377/255127 177 DEL 00000111/ 7/ 7 MICHAEL REESE MEDICAL CENTER - - DEPARTMENT OF MEDICAL PHYSICS COMPUTER EBCDIC.DAT;21 PAGE 1X LISTING OF DR0:[001,010]EBCDIC.DAT;21 ON 29-JUN-83 AT 11:58:19 PAGE 1 * DEC OCT COD EBCDIC /OCT/DEC* --- --- --- ----------------* 0 0 NUL 00000000/ 0/ 0* 1 1 SOH 00000001/ 1/ 1* 2 2 STX 00000010/ 2/ 2* 3 3 ETX 00000011/ 3/ 3* 4 4 EOT 00110111/ 67/ 55* 5 5 ENQ 00101101/ 55/ 45* 6 6 ACK 00101110/ 56/ 46* 7 7 BEL 00101111/ 57/ 47* 8 10 BS 00010110/ 26/ 22* 9 11 HT 00000101/ 5/ 5* 10 12 LF 00100101/ 45/ 37* 11 13 VT 00001011/ 13/ 11* 12 14 FF 00001100/ 14/ 12* 13 15 CR 00001101/ 15/ 13* 14 16 SO 00001110/ 16/ 14* 15 17 SI 00001111/ 17/ 15* 16 00,-TADATADATA 20 DLE 00010000/ 20/ 16* 17 21 DC1 00010001/ 21/ 17* 18 22 DC2 00010010/ 22/ 18* 19 23 DC3 /377/255* 20 24 DC4 00111100/ 74/ 60* 21 25 NAK 00111101/ 75/ 61* 22 26 SYN 00110010/ 62/ 50* 23 27 ETB 00100110/ 46/ 38* 24 30 CAN 00011000/ 30/ 24* 25 31 EM 00011001/ 31/ 25* 26 32 SUB 00111111/ 77/ 63* 27 33 ESC 00100111/ 47/ 39* 28 34 FS 00100010/ 42/ 34* 29 35 GS /377/255* 30 36 RS 00110101/ 65/ 53* 31 37 US /377/255* 32 40 SP 01000000/100/ 64* 33 41 ! 01011010/132/ 90* 34 42 " 01111111/177/127* 35 43 # 01111011/173/123* 36 44 $ 01011011/133/ 91* 37 45 % 01101100/154/108* 38 46 & 01010000/120/ 80* 39 47 ' 01111101/175/125* 40 50 ( 01001101/115/ 77* 41 51 ) 01011101/135/ 93* 42 52 * 01011100/134/ 92* 43 53 + 01001110/116/ 78* 44 54 , 01101011/153/107* 45 55 - 01100000/140/ 96* 46 56 . 01001011/113/ 75* 47 57 / 01100001/141/ 97* 48 60 0 11110000/360/240* 49 61 1 11110001/361/241* 50 62 2 11110010/362/242* 51 63 3 11110011/363/243 MICHAEL REESE MEDICAL CENTER - - DEPARTMENT OF MEDICAL PHYSICS COMPUTER EBCDIC.DAT;21 PAGE 2X LISTING OF DR0:[001,010]EBCDIC.DAT;21 ON 29-JUN-83 AT 11:58:19 PAGE 2 * 52 64 4 11110100/364/244* 53 65 5 11110101/365/245* 54 66 6 11110110/366/246* 55 67 7 11110111/367/247* 56 70 8 11111000/370/248* 57 71 9 11111001/371/249* 58 72 : 01111010/172/122* 59 73 ; 01011110/136/ 94* 60 74 < 01001100/114/ 76* 61 75 = 01111110/176/126* 62 76 > 01101110/156/110* 63 77 ? 01101111/157/111* 64 100 @ 01111100/174/124* 65 101 A 11000001/301/193* 66 102 B 11000010/302/194* 67 103 C 11000011/303/195* 68 104 D 11000100/304/196* 69 105 E 11000101/305/197* 70 106 F 11000110/306/198* 71 107 G 11000111/307/199* 72 110 H 11001000/310/200* 73 111 I 11001001/311/201* 74 112 J 11010001/321/209* 75 113 K 11010010/322/210* 76 114 L 11010011/323/211* 77 115 M 11010100/324/212* 78 116 N 11010101/325/213* 79 117 O 11010110/326/214* 80 120 P 11010111/327/215* 81 121 Q 11011000/330/216* 82 122 R 11011001/331/217* 83 123 S 11100010/342/226* 84 124 T 11100011/343/227* 85 125 U 11100100/344/228* 86 126 V 11100101/345/229* 87 127 W 11100110/346/230* 88 130 X 11100111/347/231* 89 131 Y 11101000/350/232* 90 132 Z 11101001/351/233* 91 133 [ /377/255* 92 134 \ /377/255* 93 135 ] /377/255* 94 136 ^ /377/255* 95 137 _ 01101101/155/109* 96 140 ` /377/255* 97 141 a 10000001/201/129* 98 143 b 10000010/202/130* 99 143 c 10000011/203/131* 100 144 d 10000100/204/132* 101 145 e 10000101/205/133* 102 146 f 10000110/206/134* 103 147 g 10000111/207/135* 104 004 150 h 10001000/210/136* 105 151 i 10001001/211/137 MICHAEL REESE MEDICAL CENTER - - DEPARTMENT OF MEDICAL PHYSICS COMPUTER EBCDIC.DAT;21 PAGE 3X LISTING OF DR0:[001,010]EBCDIC.DAT;21 ON 29-JUN-83 AT 11:58:19 PAGE 3 * 106 152 j 10010001/221/145* 107 153 k 10010010/222/146* 108 154 l 10010011/223/147* 109 155 m 10010100/224/148* 110 156 n 10010101/225/149* 111 157 o 10010110/226/150* 112 160 p 10010111/227/151* 113 161 q 10011000/230/152* 114 162 r 10011001/231/153* 115 163 s 10100010/242/162* 116 164 t 10100011/243/163* 117 165 u 10100100/244/164* 118 166 v 10100101/245/165* 119 167 w 10100110/246/166* 120 170 x 10100111/247/167* 121 171 y 10101000/250/168* 122 172 z 10101001/251/169* 123 173 { /377/255* 124 174 | /377/255* 125 175 } /377/255* 126 176 ~ /377/255* 127 177 DEL 00000111/ 7/ 7 t 10100011/243/163* 117 165 u 10100100/244/164* 118 166 v 10100101/245/165* 119 167 w 10100110/246/166* 120 170 x 10100111/247/167* 121 171 y 10101000/250/168* 122 172      NOTE TO HANS AND DAN     > I just got bitten by a bug in F77 that I had forgotten about.9 The following program bombs with a Fortran error message& "Error 37 Inconsistent record length" at the first terminal read. C DSCDIR.FTN LOGICAL*1 TAPE(4) 1000 FORMAT (' TEST PROGRAM')" 1001 FORMAT ('$ENTER TAPE NAME') 2000 FORMAT (Q, 4A1)8 C START THE PROGRAM BY IDENTIFYING AND WAITING FOR TAPE WRITE (1,1000) C$ C PROMPT FOR INPUT TAPE DEVICE-UNIT 10 CONTINUEO WRITE (1,1001)/ READ (2,2000, END=900, ERR=10) NQT, TAPEt 900 STOPg ENDA The next version works because the first thing we did to the luno was a write instead of a read C DSCDIR.FTNe LOGICAL*1 TAPE(4) 1000 FORMAT (' TEST PROGRAM') " 1001 FORMAT ('$ENTER TAPE NAME') 2000 FORMAT (Q, 4A1)8 C START THE PROGRAM BY IDENTIFYING AND WAITING FOR TAPE WRITE (1,1000)O C$ C PROMPT FOR INPUT TAPE DEVICE-UNIT 10 CONTINUEE WRITE (2,1001)N- READ (2,2000, END=900, ERR=10) NQ,TAPE2 900 STOP END Hope this is of use. fbDA The next version works because the first thing we did to the luno was a write instead of a read C DSCDIR.FTNe LOGICAL*1 TAPE(4) 1000 FORMAT (' TEST PROGRAM') " 1001 FORMAT ('$ENTER TAPE NAME') 2000 FORMAT (Q, 4A1)8 C START THE PROGRAM BY IDENTIFYING AND WAITING FOR TAPE WRITE (1,1000)O C$ C PROMPT FOR INPUT TAPE DEVICE-UNIT 10 CONTINUEE .TITLE LIPRC2 .IDENT /M02A /;+ ; LIPRC2.PAT;YH; PATCH TO FLX, DIRECTORY LIST PROCESSING TO ALLOW 9 CHARACTER FILENAMES; FROM DOS TAPE;13; APPLY THIS PATCH TO MODULE LIPRC2 FROM FLX.OLB.S;I; 6-FEB-82, W. BURTONS;- .PSECT INSTRI.=.+1476 .WORD 11. .ENDASG=TI:5//C  900 CONTINUE RETURN END LOGICAL*1 AS, QM DATA AS/'*'/, QM/'?'/(CT FLL = FILL J = NCSL K = NCLACY 10 CONTINUE IF (K .GT. NCR) GO TO 30" IF .TITLE LIPRC2 .IDENT /M02A /;+ ; LIPRC2.PAT;NH; PATCH TO FLX, DIRECTORY LIST PROCESSING TO ALLOW 9 CHARACTER FILENAMES6; FROM DOS TAPE APPLIES TO FLX FROM VERSION 3.1 ONLY.;L3; APPLY THIS PATCH TO MODULE LIPRC2 FROM FLX.OLB. ;N; 6-FEB-82, W. BURTON=;- .PSECT INSTRH.=.+1406 .WORD 11. .END+40444$: ; FINISH NAME CHECK ;*.=.+2160'662$: ; COMPLETE THE FILENAME TESTINGM CMP O.UNTP,#12L) BNE 404$ ; IF NE, NOT MAGTAPE (MT OR MM)N, CMP 16(R0),16(R2) ; CHECK LAST 3 CHAR00,-TADATADATAMMCOPY,MMCOPY/-SP=MTCOPY/ TASK=...MMCLIBR=SYSRES:ROASG=TI:1ASG=MM:2ASG=MT:3ASG=MO:4/ MMREAD=MTREADLB:[1,1]F77OTS.OLB/LB/ASG=TI:5 ASG=MM0:4ASG=LP:3// 99(R *lPZSl'DRSYSYLPMMTICLMO`kl#!5````\SYSYLPMMTICLMO@1J>C @AW P ~ & & & & R ` fRRRRC       w I*8w| &*  & #!)&ePe #&& >e >E l p* w 8)  5ҕ^B 8 $ * -    .BA M*w H*eB 8   w PHB C DBe ?D(1 >w H ) 8C * ) *w * j  ep p   = EW9ť^*0p CaC    0* e@  = Ep p  8 V *`)w  C# $   D @)  6?0D)w *Few w Fw D 8ww# ĵ ĵĵĵwĥw| 0 *0 @0 0 0  0 0 40 6))eB   * V# 0O 00!4 *w 2s q Ep0p2 8 #* P) !@#**fff   wb ,8e$8D 2*w  ,EB0-%. #p.2e D 483  -Y Z38 W0 #00ĥAĥĊ  000 0 @w *0 @ #& &&  **#&*eB   T ****wV F eB e>  # #D # H#@&0 #   0@ e E p 6 # @#?@#040 6I#A  A# @)0  0 &*Υ) 4*!@#0l # 028 t #& &e0  eBf 002 ! p0p2 8Qf ? e |RyeB  & & LP) õ & & & & & ffI  eA w n@ Fjde& & & B  2PΕ   N Υ$Ε  22Υ   v Ε f e * *e*w~@)0,    )*)'   =  l 0l   / e&=Ba@a  re0bGee@ A := E ep ) %  ,    >wwv  LwB #  f  `**w)0406 l0 C & ~`  `Ba#   ~ L =p!Օ^8e2 *8Ae f"( UCɗ+e$&% 0+1e  %p*wt f( f)f P8 -2e L< L0 0 0 80 B0 0 0 0)#0. ) ;f t N#e).8 - ̋  G  p8 e6p 4 p08* Zw f;*fBC "& D SY*p0p2q10= =e "fD CBA  f &* * *) l0, *) $ )*)0,40,6  DP5R~RRR~ 8  ***e6p 4 X8 .8  L  ,8 -̋  4,44,6   08]0 epmp0* - B46 eA p  C ? t  "̋3t42 &8f08 ^880!8 4%   8wVwd* )fff f f1    1  ew141612epl2l0pG=f& e %&&eH &e0  U   E > >Ef p  w   f J >5>Eu P  Mw21 =00l  0*f&f&  0,0, f 톇p   w 5     +% eB U5UU plp & Ne*,*1 U8UM00),-TADATADATA %.. w Bfep`pwfe we(  1 :&e  1-1- 111 rrrrr    f e  C C C e`1 z   1 1 1 1 1 1 DEee $ $ f&5ҕ[ "5ҕ, 5ҕ]Et55tF e0ҐtI : 7 H%$$$$ $$$$$$$h $$n z $ -t$-l$$$  " V$-N$h$f$6  8$P$R = x$2$t "$ j= ~ -$w# r 7## # &= : # d # =  ##-#####^#-#Rw<#7 x#t##f#mf#  Z#-V#xx#H#>#6# .#  C |Ce B e Ԃ  "# " t f 4e  e Ԃ  z"  " * f eD  e ӂ  .ӷb""eP"-L"wp"wf"-("wr-!"wf"> !\ @= T !! h w$& RECORD SIZE EXCEEDED BUFFER, DATA LOST  END OF FILE DURING READ  SIZE OF RECORD (IN BYTES) =  '$LIST BUFFER (1=YES,2=NO,3=NEXT FILE) ? " $TI (1), OR LP (2) OUTPUT ? '$OCTAL(1),BYTE(2), OR ASCII(3) OUTPUT ?  \       $NEXT FILE (1=YES,2=NO) ? $NUMBER OF FILES TO SKIP ? " 2===`d===`d===`d=====`d===`d==0014009,-TADATADATABKK>4@>(??$??$@KL>BP?LBL (?  &,p00A4BJ&ff w eE D` bl lrw \  B eE"s    s-  Csl&f   &&f  E3  ߆ %  І %ĉĆ BB ĉ , ,‰; ,JJV 3Vȥ ȕ$ȥ+ `l s@ Ps`; Fs,3/"R"'" 3 0As  :   >3  H JhŀdՀ`[WB ;  M  B@ 3VA3 N  & LwwtF3   H Z3 3 V3 N J  "e$"F3 Z NE% % % 5%% W 3W H Nwp `5@ @  E5e73 *,JJ ,J Jҕ Jx澉T96%  Ttr  $%T %T R%TR3,% e3LsNP(3LsN xsP%% %2 hsR%2%4 TsPRNZL&P N N5@ Х,  N %RN ‰Nc % U%%  %2R%6RR n%B%.D THwA炜`AfH lT  BE&~WtEB~L  sWwR. %LHTD` B~RHT(%S%.S HAL `A>  $J J N   - ΋  BE~WtEB~w . %L(HT w Е `CBД~w TH @` C~,.:.^|>R06 B 6 ~3  w :TB  . &   00QST4 h ^  %  3 ^ f  1v. v  Օ,x | r5eT Օ.eZ \Օ; .c :r&?  H .Օ Օ-   e:f s!pU Օ ` D~  A M•0 M Mf6E@p^ p|ɉ ˉȉʉ@tEp sՕ Օ ss  e hs& & &f& & & Ε  2nff)n s& TIf&H % b %e ee e  MMREADBIG=MTREADBIGLB:[1,1]F77OTS.OLB/LB/ASG=TI:5 ASG=MM0:4ASG=LP:3// (T@ZmqZSl 'DRSYSYLPMMTICLMO`lm e````zSYSYLPMMTICLMO 1JdC @AW P ~ & & & & R ` fRRRRC       w *8w| &*  & #!)&ePe #&& >e >E l p* w 8)  5ҕ^B 8 $ * -    .BA M*w Ҩ*eB 8   w B C DBe ?D(1 >w Z ) 8C * ) *w * j  ep p   = EW9ť^*0p CaC  00Y,-TADATADATA  0* e@  = Ep p  8 V *`)w  C# $   D @)  6?0D)w xew w jw D 8ww# ĵ ĵĵĵwĥw| 0 *0 @0 0 0  0 0 40 6))eB   * V# 0O  *w 2s q Ep0p2 8 #* P) !@#**fff   wb ,8e$8D 2*w  ,EB0-%. #p.2e  483  -Y Z38 W0 #00ĥAĥĊ  000 0 @w *0 @ #& &&  **#&*eB   T ****wV F eB e>  # #D # H#@&0 #   0@ e E p 6 # @#?@#040 6I#A  A# @)0  0 &*Υ) 4*!@#0l # 028 t #& &e0  eBf 002 ! p0p2 8Qf ? e |RyeB  & & LP) õ & & & & & ffI  eA w Fjde& & & B  2PΕ   N Υ$Ε  22Υ   v Ε f e * *e*w~@)0,    )*)'   =  l 0l   / e&=Ba@a  re0bGee@ A := E ep ) %  ,    >wwv  LwB #  f  `**w)0406 l0 C & ~`  `Ba#   ~ L =p!Օ^8e2 *8Ae f"( UCɗ+e$&% 0+1e  %p*wt f( f)f P8 -2e  L0 0 0 80 B0 0 0 0)#0. ) ;f t N#e).8 - ̋  G  p8 e6p 4 p08* Zw *fBC "& D SY*p0p2q10= =e "fD CBA  f &* * *) l0, *) $ )*)0,40,6  DP5R~RRR~ 8  ***e6p 4 X8 .8  L  ,8 -̋  4,44,6   08]0 epmp0* - B46 eA p  C ? t  "̋3t42 &8f08 ^880!8 4%   8wVwd* )fff f f1    1  ew141612epl2l0pG=f& e %&&eH &e0  U   E > >Ef 00aST4p  w   f J >5>Eu P  Mw21 =00l  0*f&f&  0,0, f 톇p   w L     +% eB U5UU plp & Ne*,*1 U8UM %.. w Bfep`pwfe we(  1 :&e  1-1- 111 rrrrr    f e  C C C e`1 z   1 1 1 1 1 1 DEee $ $ f&5ҕ[ "5ҕ, 5ҕ]Et55tF e0ҐtI : 7 >:62 .*&"   0 -„$-҄҄X 0 d-  F-~w0҄  n ^ f* z -Nw  r 78*  "* 6  `  .  |ڃ-܃Ѓ؃ʃȃ-ăw<7 ؃m  -xzr j>  C xCe B e Ԃ  ^  N p f 0e  e Ԃ  v  ւ^ & f eD  e ӂ  *ӷĂe-Rww\n L T* h -<w8 & fZ-w f  :    w& RECORD SIZE EXCEEDED BUFFER, DATA LOST  END OF FILE DURING READ  SIZE OF RECORD (IN BYTES) =  '$LIST BUFFER (1=YES,2=NO,3=SKIP FILE) ? " $TI (1), OR LP (2) OUTPUT ? '$OCTAL(1),BYTE(2), OR ASCII(3) OUTPUT ?  \       $NEXT FILE (1=YES,2=NO) ? $NUMBER OF FILES TO SKIP ? " 2$$$($$00i,-TADATADATA00qST400y,-TADATADATA00ST400,-TADATADATA00ST400,-TADATADATA00ST4JFvrrV Pb( 4 vHNX^dj00,-TADATADATA I&ff w eE D` bl lrw \  B eE"s    s-  Csl&f   &&f  E3  ߆ %  І %ĉĆ BB ĉ , ,‰; ,JJV 3Vȥ ȕ$ȥ+ `l s@ Ps`; Fs,3/"R"'" 3 0As  :   >3  H JhŀdՀ`[WB ;  M  B@ 3VA3 N  & LwwtF3   H Z3 3 V3 N J  "e$"F3 Z NE% % % 5%% W 3W H Nwp `5@ @  E5e73 *,JJ ,J Jҕ Jx澉T96%  Ttr  $%T %T R%TR3,% e3LsNP(3LsN xsP%% %2 hsR%2%4 TsPRNZL&P N N5@ Х,  N %RN ‰Nc % U%%  %2R%6RR n%B%.D THwA炜`AfH lT  BE&~WtEB~L  sWwR. %LHTD` B~RHT(%S%.S HAL `A> 00ST4 $J J N   - ΋  BE~WtEB~w . %L(HT w Е `CBД~w TH @` C~,.:.^|>R06T1xs@Z1xsB ^Da b,H`     z1xs<1xs Da : Da :j"1xs> &Da *`.!y21xs> 6Da ":>; >1xsDB:x< F,a N w    7 7 z:x  !y1xsD Da K f9 1xs> $Da ((`,!y01xs> 4Da H8>; <1xsF@:x<D!yH1xsHL1xsJP- -- -|1xsF S1xsL1xsL Sj Da $:(1xs01xs21xs881xs> Da x`!y$j(1xsH,1xsB 0Da 4` 81xs<:x<@!yD1xsB HDa j !&e !7 e rm 7- -|` 1xs 1xs:&1xsP*!y0j41xsB1xsJH1xsJL1xsN1xs:VjZ1xsL^1xsL `Shj>    wd \ Da  w1xs> Da ` 1xsH:x< "1xsJ&:x<*!y4j 8Da ;:x<:x K f9:wy8h",1z8`yG   G Go<HD *Da ,a 1xsRSGxsJH1xsJL1xsN1xs:VjZ1xsL^1xsL `Shj>    wd \ Da  w1xs> Da ` 1xsH:x< "1xsJ&:x<*!y4j 8Da o -.-&\\` ->H-86 ` *  z0 l  b!&e- ̈́ !7 Pe rḿ 7Ɓ-x 職 -`ց&  v x wd >= $ENTER OUTPUT FILE NAME ?  $NUMBER OF RECORDS TO COPY ? " & RECORD SIZE EXCEEDED BUFFER, DATA LOST  END OF FILE DURING READ "  " RECORDS READ " RECORDS WRITTEN 2ALL DONE2.\n.bn.p>r`n.2|p00ɔ,-TADATADATA00є”T400ٔ,-TADATADATA00”T400,-TADATADATA00”T400,-TADATADATA00”T4ړ`ƈ2<`FNPN RXbhn00 ,-TADATADATAt׸Nړf&f ` *  נ נ  נננ"D נaנz E ѐEp(p נ$נ0נ9נAנZנ_נ:  Vנ[ȕ]נ<ȕ>ȋ8 ~נ%נ*נ-נ.נ0נ9נAנZȠ yנ0נ7נ*נ,A jȠh f  oנ"A   #A aנ$נ%נ*נ0נ9נAנZנ_נ.  נ.נ; dנ0נ9 ]נ- X נ* QA  נ, Dנ=  >5 B>U (w^נ/* . ,נ$נ-נ.נ0נ9נAנZ נ_ נ:  Dנ"  0f&f E^`  UQ  UQ ËUI U `e  !ddC    D%*.C U 0 0 W ,Uw6W /@ : ^BDaW-Ί WNWOD!BΊz CECCD! D! ΋5  e ΐ004 TpRpR΋pBC5N KR΋KBAE:D0CĊ f eB  Dҁ CSĊ  WB E Br Ε f)& 6 l(*  E 'W " =N  W :+W = 1 #W ,W / %W %W *Հ W <W [W >W ] v(* 6 eSTOP PAUSE DB 4EĊ ,& Ċ  `U3 B%եЉ BwR6߉ . 6wz2 . ~6-&f Bʋ ~7B EU~& Bp rȕ e e`e H5f~ :Mw D w D& W+W- Ba. W#  B0  c  c S W %ec e`s  # 3  & ˥ Z ^C MTCOPY,MTCOPY/-SP=MTCOPY/ TASK=...MTCLIBR=SYSRES:ROASG=TI:1ASG=MT:2ASG=MM:3ASG=MO:4/ .TITLE MTCOPY;; PROGRAM MTCOPY.MAC;+; TO READ RECORDS FROM AN INPUT MAGTAPE AND+; WRITE THEM TO AN OUTPUT MAGTAPE;(; PROGRAM IS CALLED FROM MCR AS FOLLOWS:;; MCR>MTC /SWS;+; WHERE THE FOLLOWING SWITCHES ARE ALLOWED:;; /HE PRINTS THIS HELP MESSAGE$; /NM SUPPRESSES FILE COPY MESSAGES+; /RI REWINDS INPUT TAPE BEFORE PROCESSING,; /RO REWINDS OUTPUT TAPE BEFORE PROCESSING9; /EO WINDS OUTPUT TAPE TO LOGICAL EOV BEFORE PROCESSING<; /SI:NN WHERE NN SPECIFIES THE NUMBER OF EOF'S TO SKIP BE-; FORE PROCESSING INPUT TAPE <; /SO:NN WHERE NN SPECIFIES THE NUMBER OF EOF'S TO SKIP BE- ; FORE PROCESSING OUTPUT TAPE8; /CO:NN WHERE NN SPECIFIES THE NUMBER OF FILES TO COPY;O$ .MCALL CSI$ QIOW$ SVTK$ FINIT$ DIR$& .MCALL GCML$ CSI$1 CSI$2 GCMLB$ WTSE$& .MCALL EXIT$S MOUT$ MODF$ MOWA$S QIO$# .MCALL FSRSZ$ CSI$SW CSI$SV CSI$ND (B.LEN=46000 ;DEFINE I/O RECORD LENGTH)B.BUF1=46000 ;DEFINE I/O BUFFER 1 SIZEE)B.BUF2=46000 ;DEFINE I/O BUFFER 2 SIZEI=RECCNT: .WORD 0 ;PLACE TO COUNT RECORDS IN EACH FILE COPIEDT.FILCNT: .WORD 0 ;PLACE TO COUNT FILES COPIED)RWORD2: .WORD 0 ;INPUT TAPE REWIND WORDT*RWORD3: .WORD 0 ;OUTPUT TAPE REWIND WORD"ENDVOL: .WORD 0 ;OUTPUT EOV WORD$HELPFL: .WORD 0 ;HELP MESSAGE FLAG"BUFFLG: .WORD 0 ;BUFFER I/O FLAG,NOMESS: .WORD 0 ;NO FILE COPY MESSAGE FLAGEOFFLG: .WORD 0 ;EOV FLAG.-MTBUF1: .BLKB B.BUF1 ;BUFFER 1 FOR TRANSFER4-MTBUF2: .BLKB B.BUF2 ;BUFFER 2 FOR TRANSFER0 .EVENCMLBLK: GCMLB$ 1,MTC,,1E .EVEN CSI$ CSIBLK: .BLKB C.SIZE)QIORD2: QIOW$ IO.RLB,2,1,,MTST2,,<,B.LEN>P(QIOWR3: QIO$ IO.WLB,3,2,,MTST3,,<,B.LEN>)QIOSK2: QIOW$ IO.SPF,2,1,,MTST2,, )QIOSK3: QIOW$ IO.SPF,3,1,,MTST3,, QIORW2: QIOW$ IO.RWD,2,1,,MTST2RQIORW3: QIOW$ IO.RWD,3,1,,MTST3 QIOEF3: QIOW$ IO.EOF,3,1,,MTST3SWAITFL: WTSE$ 2IMTST2: .BLKW 2MTST3: .BLKW 2VECDIR: SVTK$ VECTAB,7VECTAB: .BLKW 6 .WORD TRPHDLT9SWTABL: CSI$SW CO,,,,,COPTAB ;SPECIFY # OF FILES TO COPY.; CSI$SW SI,,,,,SK2TAB ;SPECIFY # OF FILES TO SKIP ON INPUT < CSI$SW SO,,,,,SK3TAB ;SPECIFY # OF FILES TO SKIP ON OUTPUT6 CSI$SW RI,1,RWORD2,SET ;SPECIFY INPUT MAGTAPE REWIND7 CSI$SW RO,1,RWORD3,SET ;SPECIFY OUTPUT MAGTAPE REWINDV4 CSI$SW EO,1,ENDVOL,SET ;SPECIFY OUTPUT MAGTAPE EOV5 CSI$SW HE,1,HELPFL,SET ;SPECIFY HELP MESSAGE OUTPUTA7 CSI$SW NM,1,NOMESS,SET ;SPECIFY NO FILE COPY MESSAGESV CSI$NDBCOPTAB: CSI$SV DECIMAL,FCOPY2,2DSK2TAB: CSI$SV DECIMAL,SKPVL2,2 SK3TAB: CSI$SV DECIMAL,SKPVL3,2I CSI$ND,4FCOPY2: .W00,-TADATADATAORD 77777 ;SPECIFY DEFAULT FILES TO COPY0SKPVL2: .WORD 0 ;SPECIFY DEFAULT SKIP ON INPUT1SKPVL3: .WORD 0 ;SPECIFY DEFAULT SKIP ON OUTPUTP;E)QIOMES: QIOW$ IO.WVB,1,10,,IOSTAT,,<,,40>P+MESSG1: .ASCIZ ' RECORDS COPIED FROM FILE ';MESSG2: .ASCIZ ' TO FILE ' .EVENMESBUF: .BLKB 80.PIOSTAT: .BLKW 2E;T5HELPIO: QIOW$ IO.WVB,1,10,,IOSTAT,,S*HELMES: .ASCII <12>?ALLOWED SWITCHES ARE:?3 .ASCII <15><12><12>? /HE PRINTS THIS HELP MESSAGE?$8 .ASCII <15><12><12>? /NM SUPPRESSES FILE COPY MESSAGES?? .ASCII <15><12><12>? /RI REWINDS INPUT TAPE BEFORE PROCESSING?I@ .ASCII <15><12><12>? /RO REWINDS OUTPUT TAPE BEFORE PROCESSING?M .ASCII <15><12><12>? /EO WINDS OUTPUT TAPE TO LOGICAL EOV BEFORE PROCESSING?RP .ASCII <15><12><12>? /SI:NN WHERE NN SPECIFIES THE NUMBER OF EOF'S TO SKIP BE-?/ .ASCII <15><12>? FORE PROCESSING INPUT TAPE?SP .ASCII <15><12><12>? /SO:NN WHERE NN SPECIFIES THE NUMBER OF EOF'S TO SKIP BE-?0 .ASCII <15><12>? FORE PROCESSING OUTPUT TAPE?L .ASCII <15><12><12>? /CO:NN WHERE NN SPECIFIES THE NUMBER OF FILES TO COPY?HELLEN=.-HELMESS .EVEN;SMTFILE: FINIT$ DIR$ #VECDIRU GCML$ #CMLBLK BCC 2$N CMPB CMLBLK+G.ERR,#GE.EOF ;EOF? BNE 1$ ;IF NOT, REPORT ERRORR" JMP EXIT ;IF SO, DO NORMAL EXIT%1$: TRAP TE.CLE ;COMMAND LINE ERRORO/2$: CSI$1 #CSIBLK,CMLBLK+G.CMLD+2,CMLBLK+G.CMLDO BCC 3$N TRAP TE.CSE 3$: CSI$2 #CSIBLK,OUTPUT,#SWTABL BCC 4$E TRAP TE.CSE4$: TST HELPFL BEQ 44$ DIR$ #HELPIO JMP EXITS44$: TST RWORD2 BEQ 5$1 DIR$ #QIORW2:5$: TST RWORD3 BEQ 6$ DIR$ #QIORW3 6$: TST SKPVL2 BEQ 7$S MOV SKPVL2,QIOSK2+Q.IOPL$ DIR$ #QIOSK2U BCS 8$#7$: TST SKPVL3 BEQ 10$ MOV SKPVL3,QIOSK3+Q.IOPLB DIR$ #QIOSK3, BCS 9$R BR 10$P8$: TRAP TE.MT2O9$: TRAP TE.MT3 10$: TST ENDVOLM BEQ 11$ MOV #77777,QIOSK3+Q.IOPLM DIR$ #QIOSK3M BCS 9$L MOV MTST3+2,SKPVL3E11$: CLR BUFFLGC MOV #MTBUF1,R4A MOV #MTBUF2,R5A MOV R4,QIORD2+Q.IOPLL INC BUFFLGD DIR$ #QIORD2J BCS 8$ TSTB MTST2D BPL 12$" CMPB #IE.EOF,MTST2 ;END OF FILE? BNE 8$ ;IF NOT, ERROR BR 131$12$: CLR EOFFLGM TST BUFFLGS BEQ 121$ MOV R4,QIOWR3+Q.IOPL# BR 122$121$: MOV R5,QIOWR3+Q.IOPL!122$: MOV MTST2+2,QIOWR3+Q.IOPL+2B DIR$ #QIOWR3P BCS 9$P INC RECCNT TST BUFFLG BEQ 123$D MOV R5,QIORD2+Q.IOPL7 CLR BUFFLGI BR 124$123$: MOV R4,QIORD2+Q.IOPL INC BUFFLGE124$: DIR$ #QIORD2 BCS 8$U TSTB MTST2# BPL 125$ CMPB #IE.EOF,MTST2L BNE 8$F BR 13$R125$: DIR$ #WAITFL JMP 12$13$: DIR$ #WAITFLP131$: DIR$ #QIOEF3 BCS 9$? TST EOFFLGI BNE CLSEXT TST NOMESS: BNE 16$ MOV #MESBUF,R0 MOV R0,QIOMES+Q.IOPLW CLR R2# MOV RECCNT,R1 CALL $CBDMG MOV #MESSG1,R2O14$: MOVB (R2)+,(R0)++ TSTB (R2) BNE 14$ CLR R2I INC SKPVL2T MOV SKPVL2,R1 CALL $CBDMG MOV #MESSG2,R215$: MOVB (R2)+,(R0)+ TSTB (R2) BNE 15$ CLR R2C INC SKPVL3$ MOV SKPVL3,R1 CALL $CBDMG SUB #MESBUF,R05 MOV R0,QIOMES+Q.IOPL+2 DIR$ #QIOMES3 BCC 16$ TRAP TE.MES16$: MOV #0,RECCNT INC FILCNT$ INC EOFFLG3 CMP FILCNT,FCOPY2 BGE 17$ JMP 11$17$: DIR$ #QIOEF31 BCC CLSEXTB JMP 9$M)CLSEXT: TRAP TS.EXT ;DO SUCCESSFUL EXIT, EXIT: EXIT$S;); TRAP HANDLER SECTION FOR MTCOPY PROGRAMT; ; DEFINE TRAP VALUESTE.CLE=1 ;COMMAND LINE ERRORTE.CSE=2 ;CSI ERRORVTE.MT2=3 ;INPUT MAGTAPE ERRORRTE.MT3=4 ;OUTPUT MAGTAPE ERRORTE.MES=5 ;MESSAGE ERRORS;LTS.EXT=100 ;SUCCESSFUL EXITBMOLUN=4 ;DEFINE LUN FOR MO+6MODPB: MOUT$ STRDSC,PARLST,0,CONT,SYLOG,,,MOSTAT,MOLUNMOSTAT: .BLKW 2NSTRDSC: .WORD STRE-STRINGN .WORD STRING1 .NLIST BEX<STRING: .ASCII /TRAP #%P%LMTIN STATUS =%D%LMTOUT STATUS =%D/ .ASCII /%LDSW =%D/ISTRE:T8STR2: .ASCII /%D RECORDS COPIED FROM FILE %D TO FILE %D/STR2E:-STR3: .ASCII /%LA TOTAL OF %D FILES COPIED%L/STR3E: .LIST BEX .EVEN1PARLST: .BLKW 4 ;RESERVE 4 WORDS FOR PARAM LISTEMODF$E; HANDLER TRAP CODES"TRPHDL: MOV (SP)+,R5 ;2*TRAP CODE MOV #MODPB,R0+ MOVB #SY$STM,M.ODST(R0) ;ELIMINATE HEADERN ASR R5 ;TRAP CODE IN R5" CMP R5,#T00!#$&'4S.EXT ;SUCCESSFUL TRAP? BLT 1$ ;IF NOT, BRANCHS( MOV #STR3,STRDSC+2 ;MOVE IN NEW STRING$ MOV #STR3E-STR3,STRDSC ;DESCRIPTOR1 MOV FILCNT,PARLST ;PUT FILE COUNT IN PARAM LIST  BR 3$ ;GO DO MO THING01$: MOV #STRING,STRDSC+2 ;MAKE SURE RIGHT STRING( MOV #STRE-STRING,STRDSC ;IS DESCRIBED.- MOV R5,PARLST ;PUT TRAP VALUE IN PARAM LISTF1 MOVB MTST2,R1 ;PUT INPUT MAGTAPE STATUS IN LISTT# MOV R1,PARLST+2 ;WITH SIGN EXTENDT, MOVB MTST3,R1 ;DO SAME WITH OUTPUT MAGTAPE MOV R1,PARLST+4+ MOV @#0,PARLST+6 ;DSW IN 4TH WORD OF LISTI, MOV #CLSEXT,(SP) ;JIMMY THE RETURN ADDRESS3$: DIR$ #MODPB# BCS 2$3 MOWA$S; RTT2$: MOV @#0,R0 ;DSW IN R0T MOV MOSTAT,R1 ;MO STATUS IN R1* MOV MTST2,R2 ;INPUT MAGTAPE STATUS IN R2+ MOV MTST3,R3 ;OUTPUT MAGTAPE STATUS IN R3T& HALT ;GET INFO OUT IN TKTN MESSAGE FSRSZ$ 2U .END MTFILETF1 MOVB MTST2,R1 ;PUT INPUT MAGTAPE STATUS IN LISTT# MOV R1,PARLST+2 ;WITH SIGN EXTENDT, MOVB MTST3,R1 ;DO SAME WITH OUTPUT MAGTAPE MOV R1,PARLST+4+ MOV @ .TITLE MTFLCK .IDENT /V01A /;+ ; MTFLCK.PAT;Y:; PATCH TO FORCE 9-CHARACTER FILENAME CHECKING ON DOS TAPE;R7; APPLY THE OBJECT FILE TO MODULE MTFLCK FROM FLX.OLBO;E; 6-FEB-82, W. BURTONS;- .PSECT- .GLOBL N.FNAM.=.+54 BR 114$ NOP NOP62$:;..=.+26110$:I;.=.+4114$:O+ CMP 2(R2),N.FNAM+2(R5) ;CHECK FILENAME 4-6* BNE 110$ ; IF NE, NOT SAMEM- CMP 24(R2),N.FNAM+4(R5) ; CHECK FILENAME 7-9  BR 62$ ; GO FINISH TEST .END IF (K .GT. NCR) GO TO 30" IF .TITLE MTFLCK .IDENT /V01A /;+ ; MTFLCK.PAT;N:; PATCH TO FORCE 9-CHARACTER FILENAME CHECKING ON DOS TAPE;R1; FOR USE WITH FLX FROM RSX-11M VERSION 3.1 ONLY.R7; APPLY THE OBJECT FILE TO MODULE MTFLCK FROM FLX.OLB ;M; 6-FEB-82, W. BURTON-;- .PSECT= .GLOBL N.FNAM.=.+54 BR 114$ NOP NOP62$:;4.=.+26110$:N; .=.+4114$:++ CMP 2(R2),N.FNAM+2(R5) ;CHECK FILENAME 4-6M BNE 110$ ; IF NE, NOT SAME - CMP 24(R2),N.FNAM+4(R5) ; CHECK FILENAME 7-9R BR 62$ ; GO FINISH TEST .ENDLCK .IDENT /V01A /;+ ; MTFLCK.PAT;N:; PATCH TO FORCE 9-CHARACTER FILENAME CHECKING ON DOS TAPE;R1; FOR USE WITH FLX FROM RSX-11M VERSION 3.1 ONLY.R7; APPLY THE OBJECT FILE TO MODULE MTFLCK FROM FLX.OLB ;M; 6-FEB-82, W. BURTON-;- .PSECT= .GLOBL N.FNAM.=.+54 BR 114$ NOP NOP62$:;4.=.+26110$:N; .=.+4114$:++ CMP 2(R2),N.FNAM+2(R5) ;CHECK FILENAME 4-6M BNE 110$ ; IF NE, NOT SAME - CMP 24(R2),N.FNAM+4(R5) ; CHECK FILENAME 7-9R BR 62$ ; GO FINIS MTREAD=MTREADLB:[1,1]F77OTS.OLB/LB/ASG=TI:5 ASG=MT0:4ASG=LP:3//FC PROGRAM TO READ THE CONTENTS OF AN 'UNKNOWN' MAG TAPE TO TRY AND)C DECIPHER THE STRUCTURE OF THE TAPE.JC PROGRAM JUST SEQUENTIALLY TRIES TO READ AND THEN OUTPUT (IN OCTAL OR-C ASCII) ONE RECORD OF THE TAPE AT A TIMEC4C MAG TAPE MUST BE MOUNTED AS A 'FOREIGN VOLUMN'C* DIMENSION IBUF(512),ISTAT(2),IPRM(6) LOGICAL*1 JBUF(8192) EQUIVALENCE (IBUF,JBUF)"C SET UP VALUES FOR WTQIO WORK IOATT="1400 IODET="2000 IORLB="1000 IORWD="2400R IOSKIP="2440 IEDAO="363 IEEOF="366 ISIZE=512I ITI=5C IMT0=4 ILP=3R CALL GETADR(IPRM,IBUF) IPRM(2)=ISIZEUC ATTACH MT0: ' CALL WTQIO(IOATT,IMT0,1,50,ISTAT)C REWIND MT0:E' CALL WTQIO(IORWD,IMT0,1,50,ISTAT) 100 CONTINUE+C START OF MAIN LOOP*** READ ONE RECORD 0 CALL WTQIO(IORLB,IMT0,1,50,ISTAT,IPRM,ISW)D WRITE(ITI,150)ISTATK"D 150 FORMAT(' ISTAT = ',2(2X,O6)) IF(ISTAT(1).EQ.1)GOTO 400O00)-,-TADATADATA* IF(ISTAT(1).EQ.IEDAO) WRITE(ITI,200)9 200 FORMAT(' RECORD SIZE EXCEEDED BUFFER, DATA LOST',/) * IF(ISTAT(1).EQ.IEEOF) WRITE(ITI,300)* 300 FORMAT(' END OF FILE DURING READ',/) 400 WRITE(ITI,500) ISTAT(2)I0 500 FORMAT(' SIZE OF RECORD (IN BYTES) = ',O6) 550 WRITE(ITI,600)8 600 FORMAT('$LIST BUFFER (1=YES,2=NO,3=NEXT FILE) ? ') READ(ITI,700) IANS 700 FORMAT(I2) IF(IANS.GT.1) GOTO 3000TC YES, WRITE BUFFERT ICOUNT=ISTAT(2)/2+1  WRITE(ITI,800), 800 FORMAT('$TI (1), OR LP (2) OUTPUT ? ') READ(ITI,700)IANSR WRITE(ITI,900)8 900 FORMAT('$OCTAL(1),BYTE(2), OR ASCII(3) OUTPUT ? ') READ(ITI,700)JANS  IOUT=ITI IF(IANS.EQ.2) IOUT=ILP DO 1500 J=1,ICOUNT,8 ITEST=0Y DO 950 K=1,8" IF(IBUF(J+K-1).NE.0)GOTO 975 950 CONTINUEC FELL THROUGH, ALL ZERO'S GOTO 1500 B 975 IF(JANS.EQ.3) WRITE(IOUT,1000)J*2-2,(JBUF(I),I=J*2-1,J*2+14)" 1000 FORMAT(' ',O6,1X,20('\',A1)); IF(JANS.EQ.1) WRITE(IOUT,1100)J*2-2,(IBUF(I),I=J,J+7) 1100 FORMAT(' ',O6,1X,8(1X,O6))B IF(JANS.EQ.2) WRITE(IOUT,1200)J*2-2,(JBUF(I),I=J*2-1,J*2+14)! 1200 FORMAT(' ',O3,1X,16(1X,O6))  1500 CONTINUE GOTO 550C HERE IF END OF FILE= 2000 WRITE(ITI,2100)=* 2100 FORMAT('$NEXT FILE (1=YES,2=NO) ? ') READ(ITI,700)IANST IF(IANS.EQ.1) GOTO 100' CALL WTQIO(IODET,IMT0,1,50,ISTAT)Q STOP 3000 IF(IANS.EQ.2)GOTO 1001C SET TO SKIP REST OF FILEG IF(ISTAT(1).EQ.IEEOF)GO TO 100 !DON'T NEED TO SKIP IF EOF ALREADY  WRITE(ITI,3100)X+ 3100 FORMAT('$NUMBER OF FILES TO SKIP ? ')0 READ(ITI,3200)INUMB2 3200 FORMAT(I4) IPRM(1)=INUMB - CALL WTQIO(IOSKIP,IMT0,1,50,ISTAT,IPRM)  CALL GETADR(IPRM,IBUF) GOTO 100 END FILE (1=YES,2=NO) ? ') READ(ITI,700)IANST IF(IANS.EQ.1) GOTO 100' CALL WTQIO(IODET,IMT0,1,50,ISTAT)Q STOP 3000 IF(IANS.EQ.2)GOTO 1001C SET TO SKIP REST OF FILEG IF(ISTAT(1).EQ.IEEOF)GO TO 1 99(R*lrTl'DRSYSYLPMTTICLMO`kl*p5````SYSYLPMTTICLMO 1J>C @AW P ~ & & & & R ` fRRRRC       w I*8w| &*  & #!)&ePe 001#$&'4#&& >e >E l p* w 8)  5ҕ^B 8 $ * -    .BA M*w H*eB 8   w PHB C DBe ?D(1 >w H ) 8C * ) *w * j  ep p   = EW9ť^*0p CaC    0* e@  = Ep p  8 V *`)w  C# $   D @)  6?0D)w *Few w Fw D 8ww# ĵ ĵĵĵwĥw| 0 *0 @0 0 0  0 0 40 6))eB   * V# 0O  *w 2s q Ep0p2 8 #* P) !@#**fff   wb ,8e$8D 2*w  ,EB0-%. #p.2e D 483  -Y Z38 W0 #00ĥAĥĊ  000 0 @w *0 @ #& &&  **#&*eB   T ****wV F eB e>  # #D # H#@&0 #   0@ e E p 6 # @#?@#040 6I#A  A# @)0  0 &*Υ) 4*!@#0l # 028 t #& &e0  eBf 002 ! p0p2 8Qf ? e |RyeB  & & LP) õ & & & & & ffI  eA w n@ Fjde& & & B  2PΕ   N Υ$Ε  22Υ   v Ε f e * *e*w~@)0,    )*)'   =  l 0l   / e&=Ba@a  re0bGee@ A := E ep ) %  ,    >wwv  LwB #  f  `**w)0406 l0 C & ~`  `Ba#   ~ L =p!Օ^8e2 *8Ae f"( UCɗ+e$&% 0+1e  %p*wt f( f)f P8 -2e L< L0 0 0 80 B0 0 0 0)#0. ) ;f t N#e).8 - ̋  G  p8 e6p 4 p08* Zw f;*fBC "& D SY*p0p2q10= =e "fD CBA  f &* * *) l0, *) $ )*)0,40,6  DP5R~RRR~ 8  ***e6p 4 X8 .8  L  ,8 -̋  4,44,6   08]0 epmp009-,-TADATADATA0* - B46 eA p  C ? t  "̋3t42 &8f08 ^880!8 4%   8wVwd* )fff f f1    1  ew141612epl2l0pG=f& e %&&eH &e0  U   E > >Ef p  w   f J >5>Eu P  Mw21 =00l  0*f&f&  0,0, f 톇p   w 5     +% eB U5UU plp & Ne*,*1 U8UM %.. w Bfep`pwfe we(  1 :&e  1-1- 111 rrrrr    f e  C C C e`1 z   1 1 1 1 1 1 DEee $ $ f&5ҕ[ "5ҕ, 5ҕ]Et55tF e0ҐtI : 7 H%$$$$ $$$$$$$h $$n z $ -t$-l$$$  " V$-N$h$f$6  8$P$R = x$2$t "$ j= ~ -$w# r 7## # &= : # d # =  ##-#####^#-#Rw<#7 x#t##f#mf#  Z#-V#xx#H#>#6# .#  C |Ce B e Ԃ  "# " t f 4e  e Ԃ  z"  " * f eD  e ӂ  .ӷb""eP"-L"wp"wf"-("wr-!"wf"> !\ @= T !! h w$& RECORD SIZE EXCEEDED BUFFER, DATA LOST  END OF FILE DURING READ  SIZE OF RECORD (IN BYTES) =  '$LIST BUFFER (1=YES,2=NO,3=NEXT FILE) ? " $TI (1), OR LP (2) OUTPUT ? '$OCTAL(1),BYTE(2), OR ASCII(3) OUTPUT ?  \       $NEXT FILE (1=YES,2=NO) ? $NUMBER OF FILES TO SKIP ? " 2===`d===`d===`d=====`d===`d==00A#$&'400I-,-TADATADATABKK>4@>(??$??$@KL>BP?LBL (?  &,p00Q#$&'4BJ&ff w eE D` bl lrw \  B eE"s    s-  Csl&f   &&f  E3  ߆ %  І %ĉĆ BB ĉ , ,‰; ,JJV 3Vȥ ȕ$ȥ+ `l s@ Ps`; Fs,3/"R"'" 3 0As  :   >3  H JhŀdՀ`[WB ;  M  B@ 3VA3 N  & LwwtF3   H Z3 3 V3 N J  "e$"F3 Z NE% % % 5%% W 3W H Nwp `5@ @  E5e73 *,JJ ,J Jҕ Jx澉T96%  Ttr  $%T %T R%TR3,% e3LsNP(3LsN xsP%% %2 hsR%2%400Y-,-TADATADATA TsPRNZL&P N N5@ Х,  N %RN ‰Nc % U%%  %2R%6RR n%B%.D THwA炜`AfH lT  BE&~WtEB~L  sWwR. %LHTD` B~RHT(%S%.S HAL `A>  $J J N   - ΋  BE~WtEB~w . %L(HT w Е `CBД~w TH @` C~,.:.^|>R06 B 6 ~3  w :TB  . &    h ^  %  3 ^ f  1v. v  Օ,x | r5eT Օ.eZ \Օ; .c :r&?  H .Օ Օ-   e:f s!pU Օ ` D~  A M•0 M Mf6E@p^ p|ɉ ˉȉʉ@tEp sՕ Օ ss  e hs& & &f& & & Ε  2nff)n s& TIf&H % b %e ee e  MTREADBIG=MTREADBIGLB:[1,1]F77OTS.OLB/LB/ASG=TI:5 ASG=MT0:4ASG=LP:3//FC PROGRAM TO READ THE CONTENTS OF AN 'UNKNOWN' MAG TAPE TO TRY AND)C DECIPHER THE STRUCTURE OF THE TAPE.JC PROGRAM JUST SEQUENTIALLY TRIES TO READ AND THEN OUTPUT (IN OCTAL OR-C ASCII) ONE RECORD OF THE TAPE AT A TIMEC4C MAG TAPE MUST BE MOUNTED AS A 'FOREIGN VOLUMN'C, DIMENSION IBUF(16384),ISTAT(2),IPRM(6) LOGICAL*1 JBUF(16384) EQUIVALENCE (IBUF,JBUF)"C SET UP VALUES FOR WTQIO WORK IOATT="1400 IODET="2000 IORLB="1000 IORWD="2400A IOSKIP="2440 IEDAO="363 IEEOF="366 ISIZE=32768T ITI=5O IMT0=4 ILP=3  CALL GETADR(IPRM,IBUF) IPRM(2)=ISIZE C ATTACH MT0:I' CALL WTQIO(IOATT,IMT0,1,50,ISTAT)C REWIND MT0: ' CALL WTQIO(IORWD,IMT0,1,50,ISTAT)  100 CONTINUE+C START OF MAIN LOOP*** READ ONE RECORDF0 CALL WTQIO(IORLB,IMT0,1,50,ISTAT,IPRM,ISW)D WRITE(ITI,150)ISTAT"D 150 FORMAT(' ISTAT = ',2(2X,O6)) IF(ISTAT(1).EQ.1)GOTO 400W* IF(ISTAT(1).EQ.IEDAO) WRITE(ITI,200)9 200 FORMAT(' RECORD SIZE EXCEEDED BUFFER, DATA LOST',/) * IF(ISTAT(1).EQ.IEEOF) WRITE(ITI,300)* 300 FORMAT(' END OF FILE DURING READ',/)% IF(ISTAT(1).EQ.IEEOF) GOTO 20000 400 WRITE(ITI,500) ISTAT(2) 0 500 FORMAT(' SIZE OF RECORD (IN BYTES) = ',O6) 550 WRITE(ITI,600)8 600 FORMAT('$LIST BUFFER (1=YES,2=NO,3=SKIP FILE) ? ') READ(ITI,700) IANS 700 FORMAT(I2) IF(IANS.GT.1) GOTO 30002C YES, WRITE BUFFER1 IC00il,-TADATADATAOUNT=ISTAT(2)/2+1I WRITE(ITI,800), 800 FORMAT('$TI (1), OR LP (2) OUTPUT ? ') READ(ITI,700)IANS WRITE(ITI,900)8 900 FORMAT('$OCTAL(1),BYTE(2), OR ASCII(3) OUTPUT ? ') READ(ITI,700)JANS. IOUT=ITI IF(IANS.EQ.2) IOUT=ILP DO 1500 J=1,ICOUNT,8 ITEST=0Y DO 950 K=1,8" IF(IBUF(J+K-1).NE.0)GOTO 975 950 CONTINUEC FELL THROUGH, ALL ZERO'S GOTO 1500 B 975 IF(JANS.EQ.3) WRITE(IOUT,1000)J*2-2,(JBUF(I),I=J*2-1,J*2+14)" 1000 FORMAT(' ',O6,1X,20('\',A1)); IF(JANS.EQ.1) WRITE(IOUT,1100)J*2-2,(IBUF(I),I=J,J+7) 1100 FORMAT(' ',O6,1X,8(1X,O6))B IF(JANS.EQ.2) WRITE(IOUT,1200)J*2-2,(JBUF(I),I=J*2-1,J*2+14)! 1200 FORMAT(' ',O6,1X,16(1X,O6))  1500 CONTINUE GOTO 550C HERE IF END OF FILE= 2000 WRITE(ITI,2100)=* 2100 FORMAT('$NEXT FILE (1=YES,2=NO) ? ') READ(ITI,700)IANST IF(IANS.EQ.1) GOTO 100' CALL WTQIO(IODET,IMT0,1,50,ISTAT)Q STOP 3000 IF(IANS.EQ.2)GOTO 1001C SET TO SKIP REST OF FILE WRITE(ITI,3100)J+ 3100 FORMAT('$NUMBER OF FILES TO SKIP ? ')J READ(ITI,3200)INUMBX 3200 FORMAT(I4) IPRM(1)=INUMBO- CALL WTQIO(IOSKIP,IMT0,1,50,ISTAT,IPRM)O CALL GETADR(IPRM,IBUF) GOTO 100 END0C HERE IF END OF FILE= 2000 WRITE(ITI,2100)=* 2100 FORMAT('$NEXT FILE (1=YES,2=NO) ? ') READ(ITI,700)IANST IF(IANS.EQ.1) GOTO 100' CALL WTQIO(IODET,IMT0,1,50,ISTAT)Q STOP 3000 IF(IANS.EQ.2)GOTO 1001C SET TO SKIP RE (R@Zm_4rTl 'DRSYSYLPMTTICLMO`lmbpe````SYSYLPMTTICLMOЖ1JdC @AW P ~ & & & & R ` fRRRRC       w *8w| &*  & #!)&ePe #&& >e >E l p* w 8)  5ҕ^B 8 $ * -    .BA M*w Ҩ*eB 8   w B C DBe ?D(1 >w Z ) 8C * ) *w * j  ep p   = EW9ť^*0p CaC  00qef&'4  0* e@  = Ep p  8 V *`)w  C# $   D @)  6?0D)w xew w jw D 8ww# ĵ ĵĵĵwĥw| 0 *0 @0 0 0  0 0 40 6))eB   * V# 0O  *w 2s q Ep0p2 8 #* P) !@#**fff   wb ,8e$8D 2*w  ,EB0-%. #p.2e  483  -Y Z38 W0 #00ĥAĥĊ  000 0 @w *0 @ #& &&  **#&*eB   T ****wV F eB e>  # #D # H#@&0 #   0@ e E p 6 # @#?@#040 6I#A  A# @)0  0 &*Υ) 4*!@#0l # 028 t #& &e0  eBf 002 ! p0p2 8Qf ? e |RyeB  & & LP) õ & & & & & ffI  eA w Fjde& & & B  2PΕ   N Υ$Ε  22Υ   v Ε f e * *e*w~@)0,    )*)'   =  l 0l   / e&=Ba@a  re0bGee@ A := E ep ) %  ,    >wwv  LwB #  f  `**w)0406 l0 C & ~`  `Ba#   ~ L =p!Օ^8e2 *8Ae f"( UCɗ+e$&% 0+1e  %p*wt f( f)f P8 -2e  L0 0 0 80 B0 0 0 0)#0. ) ;f t N#e).8 - ̋  G  p8 e6p 4 p08* Zw *fBC "& D SY*p0p2q10= =e "fD CBA  f &* * *) l0, *) $ )*)0,40,6  DP5R~RRR~ 8  ***e6p 4 X8 .8  L  ,8 -̋  4,44,6   08]0 epmp0* - B46 eA p  C ? t  "̋3t42 &8f08 ^880!8 4%   8wVwd* )fff f f1    1  ew141612epl2l0pG=f& e %&&eH &e0  U   E > >Ef 00yl,-TADATADATAp  w   f J >5>Eu P  Mw21 =00l  0*f&f&  0,0, f 톇p   w L     +% eB U5UU plp & Ne*,*1 U8UM %.. w Bfep`pwfe we(  1 :&e  1-1- 111 rrrrr    f e  C C C e`1 z   1 1 1 1 1 1 DEee $ $ f&5ҕ[ "5ҕ, 5ҕ]Et55tF e0ҐtI : 7 >:62 .*&"   0 -„$-҄҄X 0 d-  F-~w0҄  n ^ f* z -Nw  r 78*  "* 6  `  .  |ڃ-܃Ѓ؃ʃȃ-ăw<7 ؃m  -xzr j>  C xCe B e Ԃ  ^  N p f 0e  e Ԃ  v  ւ^ & f eD  e ӂ  *ӷĂe-Rww\n L T* h -<w8 & fZ-w f  :    w& RECORD SIZE EXCEEDED BUFFER, DATA LOST  END OF FILE DURING READ  SIZE OF RECORD (IN BYTES) =  '$LIST BUFFER (1=YES,2=NO,3=SKIP FILE) ? " $TI (1), OR LP (2) OUTPUT ? '$OCTAL(1),BYTE(2), OR ASCII(3) OUTPUT ?  \       $NEXT FILE (1=YES,2=NO) ? $NUMBER OF FILES TO SKIP ? " 2$$$($$00ef&'400l,-TADATADATA00ef&'400l,-TADATADATA00ef&'400l,-TADATADATA00ef&'400l,-TADATADATAJFvrrV Pb( 4 vHNX^dj00ef&'4 I&ff w eE D` bl lrw \  B eE"s    s-  Csl&f   &&f  E3  ߆ %  І %ĉĆ BB ĉ , ,‰; ,JJV 3Vȥ ȕ$ȥ+ `l s@ Ps`; Fs,3/"R"'" 3 0As  :   >3  H JhŀdՀ`[WB ;  M  B@ 3VA3 N  & LwwtF3   H Z3 3 V3 N J  "e$"F3 Z NE% % % 5%% W 3W H Nwp `5@ @  E5e73 *,JJ ,J Jҕ Jx澉T96%  Ttr  $%T %T R%TR3,% e3LsNP(3LsN xsP%% %2 hsR%2%4 TsPRNZL&P N N5@ Х,  N %RN ‰Nc % U%%  %2R%6RR n%B%.D THwA炜`AfH lT  BE&~WtEB~L  sWwR. %LHTD` B~RHT(%S%.S HAL `A> 00ɕl,-TADATADATA $J J N   - ΋  BE~WtEB~w . %L(HT w Е `CBД~w TH @` C~,.:.^|>R06T1xs@Z1xsB ^Da b,H`     z1xs<1xs Da : Da :j"1xs> &Da *`.!y21xs> 6Da ":>; >1xsDB:x< F,a N w    7 7 z:x  !y1xsD Da K f9 1xs> $Da ((`,!y01xs> 4Da H8>; <1xsF@:x<D!yH1xsHL1xsJP- -- -|1xsF S1xsL1xsL Sj Da $:(1xs01xs21xs881xs> Da x`!y$j(1xsH,1xsB 0Da 4` 81xs<:x<@!yD1xsB HDa j !&e !7 e rm 7- -|` 1xs 1xs:&1xsP*!y0j41xsB1xsJH1xsJL1xsN1xs:VjZ1xsL^1xsL `Shj>    wd \ Da  w1xs> Da ` 1xsH:x< "1xsJ&:x<*!y4j 8Da ;:x<:x K f9:wy8h",1z8`yG   G Go<HD *Da ,a 1xsRSGxsJH1xsJL1xsN1xs:VjZ1xsL^1xsL `Shj>    wd \ Da  w1xs> Da ` 1xsH:x< "1xsJ&:x<*!y4j 8Da o -.-&\\` ->H-86 ` *  z0 l  b!&e- ̈́ !7 Pe rḿ 7Ɓ-x 職 -`ց&  v x wd >= $ENTER OUTPUT FILE NAME ?  $NUMBER OF RECORDS TO COPY ? " & RECORD SIZE EXCEEDED BUFFER, DATA LOST  END OF FILE DURING READ "  " RECORDS READ " RECORDS WRITTEN 2ALL DONE2.\n.bn.p>r`n.2|p00ޕ,-TADATADATA00ԕՕ&'400ޕ,-TADATADATA00ԕՕ&'400 ޕ,-TADATADATA00ԕՕ&'400ޕ,-TADATADATA00!ԕՕ&'4ړ`ƈ2<`FNPN RXbhnt׸00)/0,-TADATADATANړf&f ` *  נ נ  נננ"D נaנz E ѐEp(p נ$נ0נ9נAנZנ_נ:  Vנ[ȕ]נ<ȕ>ȋ8 ~נ%נ*נ-נ.נ0נ9נAנZȠ yנ0נ7נ*נ,A jȠh f  oנ"A   #A aנ$נ%נ*נ0נ9נAנZנ_נ.  נ.נ; dנ0נ9 ]נ- X נ* QA  נ, Dנ=  >5 B>U (w^נ/* . ,נ$נ-נ.נ0נ9נAנZ נ_ נ:  Dנ"  0f&f E^`  UQ  UQ ËUI U `e  !ddC    D%*.C U 0 0 W ,Uw6W /@ : ^BDaW-Ί WNWOD!BΊz CECCD! D! ΋5  e ΐ TpRpR΋pBC5N KR΋KBAE:D0CĊ f eB  Dҁ CSĊ  WB E Br Ε f)& 6 l(*  E 'W " =N  W :+W = 1 #W ,W / %W %W *Հ W <W [W >W ] v(* 6 eSTOP PAUSE DB 4EĊ ,& Ċ  `U3 B%եЉ BwR6߉ . 6wz2 . ~6-&f Bʋ ~7B EU~& Bp rȕ e e`e H5f~ :Mw D w D& W+W- Ba. W#  B0  c  c S W %ec e`s  # 3  & ˥ Z ^C  MTTEST=MTTESTLB:[1,1]F77OTS.OLB/LB/ASG=TI:5 ASG=MT0:4ASG=LP:3//BC PROGRAM TO JUST READ ONE MT RECORD AFTER ANOTHER FOR TESTINGC4C MAG TAPE MUST BE MOUNTED AS A 'FOREIGN VOLUMN'C, DIMENSION IBUF(16384),ISTAT(2),IPRM(6) LOGICAL*1 JBUF(16384) EQUIVALENCE (IBUF,JBUF)"C SET UP VALUES FOR WTQIO WORK IOATT="1400 IODET="2000 IORLB="1000 IORWD="2400 IOSKIP="2440 IEDAO="363 IEEOF="366 ISIZE=32768 ITI=5 IMT0=4 ILP=3 CALL GETADR(IPRM,IBUF) IP0012Օ&'4RM(2)=ISIZEGC ATTACH MT0:E' CALL WTQIO(IOATT,IMT0,1,50,ISTAT)C REWIND MT0: ' CALL WTQIO(IORWD,IMT0,1,50,ISTAT)  100 CONTINUE+C START OF MAIN LOOP*** READ ONE RECORDF0 CALL WTQIO(IORLB,IMT0,1,50,ISTAT,IPRM,ISW) GOTO 100 END IOATT="1400 IODET="2000 IORLB="1000 IORWD="2400 IOSKIP="2440 IEDAO="363 IEEOF="366 ISIZE=32768 ITI=5 IMT0=4 ILP=3 CALL GETADR(IPRM,IBUF) IP jj(U@P!c"tTL"'DRSYSYLPMTTICLMO` !R  R R````SYSYLPMTTICLMO`1D^C @AW P ~ & & & & |` fRRRRC    < 6 w ޕ*8w| &*  & #!)&ePe #&& >e >E p* w8)    5ҕ^B 8 N* -  > .BA M*w ̔*eB 8 2  w B C DBe ?D(1 > 8Qf ? e |RyeB  & & LP) õ & & & & & ffI  eA C & ~`  `Ba#   ~ L =p!Օ^8e2 *8Ae f"( UCɗ+e$&% 0+1e  %p*wt f( f)f P8 -2e j L0 0 0 80 B0 0 0 0)#0. ) ^;f b <#e).8 - ̋  G  p8 e6p 4 08* Zw *fBC "& D SY*p0p2q10= =e "fD CBA  f &* *f&f& ۀ N0,0, f 톇p   w `     +% N eB U5UU < plp & Ne*141612epl2l0p,*1009/0,-TADATADATA U8UM %.. w0   f P >5>Eu V  "Mw8 : 7   Nv\ \ T F2 0 $0 "0 400A2Օ&'400I/0,-TADATADATA00Q2Օ&'400Y/0,-TADATADATA00a2Օ&'400i/0,-TADATADATA00q2Օ&'400y/0,-TADATADATAD|@pllPP\", p2C&ff w eE D` bl lrw \  B e00Օ&'4E"s    s-  Csl&f bdhvx^`____________________;________W_____}__y___;;;;1;;;;;;;13;;9; -- ERRORFCS:Exiting due to (Error count exceeded)at PC = LB:[1,2]F77OTS(@# %߉߉fjePzi8 rl,3Wp6 B~tB P~ 3  `    "e   ^i F` 3&    w ltʋ3h3 v3 x3 56 26sv7sx.ltՀ5 fd  dAwF Lie.B elw@<oW3 &f2 2 VV " P     u쇀3l 3 3e  ɋ5 U 5   5  \B 6 ~3  w $B  . & x   h D^  0  3 ^ f  1v.   Օ,x | r5eT Օ.eZ \Օ; c r&?  H .Օ Օ-   e:f s!pU Օ  D~  A M•0 M M,%c Wpl@`.œ  `  3ȋs3 b3 3 dwf6E@p^ p`拉ɉ ˉȉʉ@tEp sՕ Օ ss  e hs& & &f& & & Ε  2nff)n s& TIf& % b %e ee e    &ef& v cc6 6` [332,100] README.1ST 'THIS ACCOUNT CONTAINS SUBMISSIONS FROM: BILL BURTON- TEXAS RESEARCH INSTITUTE FOR MENTAL SCIENCES 1300 MOURSUND HOUSTON, TEXAS 77030  (713)-797-1976 EXT 501 THE SUBMISSION CONSISTS OF: 71. THE FINAL VERSION OF TWO PROGRAMS FOR DOING PARTIAL" RESTORES OF DISKS FROM DSC TAPES.; THESE PROGRAMS FIRST APPEARED ON THE SPRING 1981 RSX TAPE. FILES:( DSCTAP.TXT DSC TAPE FORMAT DESCRIPTION/ DSCDIR.* PROGRAM TO GET DIRECTORY OF DSC TAPE+ DSCCPY.* PROGRAM TO RESTORE A SUBSET OF AA DSC TAPE TO DISK.I+ DSCFTN.FTN FORTRAN SUBROUTINES FOR ABOVE. ) DSCMAC.MAC MACRO SUBROUTINES FOR ABOVE.U >2. REPRINT AND PATCH FILES FROM THE MARCH, 1982 ISSUE OF THE4 UNSUPPORTED (RETIRED) VERSIONS OF RSX WORKING GROUP P< THESE FILES PATCH THE FLX UTILITY DISTRIBUTED WITH RSX-11M A VERSIONS 3.0 AND 3.1 TO ALLOW 9-CHARACTER FILE NAME CATALOGS ANDL SEARCHING.P T FILES: . FLX.TXT REPRINT OF THE MULTI-TASKER ARTICLE T( LIPRC2.M30 PATCH FILES F00-TADATADATAOR VERSION 3.0 MTFLCK.M30 O SETOUT.M30 E( LIPRC2.M31 PATCH FILES FOR VERSION 3.1 MTFLCK.M31 SETODT.M31 MACRO SUBROUTINES FOR ABOVE.U >2. REPRINT AND PATCH FILES FROM THE MARCH, 1982 ISSUE OF THE4 UNSUPPORTED (RETIRED) VERSIONS OF RSX WORKING GROUP P< THESE FILES PATCH THE FLX UTILITY DISTRIBUTED WITH RSX-11M A VERSIONS 3.0 AND 3.1 TO ALLOW 9-CHARACTER FILE NAME CATALOGS ANDL SEARCHING.P T FILES: . FLX.TXT REPRINT OF THE MULTI-TASKER ARTICLE T( LIPRC2.M30 PATCH FILES F1 ROLlin> A Program to do ROLLINS from/to DK, DP or DR to MM or MT tape E Magtapes involved should be mounted as foreign volumns Any format ofF disks can be copied/written since copies are strictly block by block.  Calling proceedure: D MCR>ROL MT0:xxxxxx=DK2:/sw xxxxxxx is label for file name on tape& currently name must be 6 letters 0 Legal devices are DK0->3 DP0->2 DR0->3 MT0 MM0 @ Switches must be at end of command line. Current switches are: > /VE(rify) Check tranfer (to disk) by re-reading buffer back- from output volume. (No compare is done.)  oA /OV(erwrite) Overwrite any data on output tape, (i.e. do notn6 follow normal proceedure of searching for end of6 volume before starting write.) Used to write first6 save set on a tape. Also done automatically if1 copying a large disk to the streamer tape MM.es are DK0->3 DP0->2 DR0->3 MT0 MM0 @ Switches must be at end of command line. Current switches are: > /VE(rify) Check tr9ROLLINBUG/DA/-FP/PR,ROLLINBUG/-SP=ROLLIN,LB:[1,1]EXEC.STB/ TASK=...ROXLIBR=SYSRES:ROPRI=100STACK=64ASG=TI:3PAR=GEN//0ROLLIN/-FP/PR,ROLLIN/-SP=ROLLIN,LB:[1,1]EXEC.STB/ TASK=...ROLLIBR=SYSRES:ROPRI=100STACK=64ASG=TI:3PAR=GEN// .TITLE ROLLIN.IDENT /MRH002/ .SBTTL INTRO PAGE;;0;THIS PROGRAM IS DESIGNED TO DO A ROLLIN FROM/TO1;RK DISK AND 9-TRACK MAGTAPE WHILE RSX IS RUNNING;;5;THE DISKS AND MAGTAPES INVOLVED SHOULD BE MOUNTED AS<;FOREIGN VOLUMNS, ALTHOUGH MOUNTED FILES-11 DISKS (INCLUDING(;DK0: CAN BE COPIED/WRITTEN. THE MAGTAPE$;MUST ALLOW DEVICE CONTROL FUNCTIONS;;;CALLING PROCEEDURE IS;;MCR>ROL;;TYPICAL COMMAND LINE WOULD BE:;G; MT0:XXXXXX=DK2: (WHERE XXXXXXX IS LABEL FOR FILE NAME ON MAG-TAPE)I%; CURRENTLY NAME MUST BE 6 LETTERS;0; LEGAL DEVICES ARE DK0--3 DP0--2 DR0--3 MT0 MM0; '; CURRENTLY TWO SWITCHES ARE SUPPORTED:N;8; /VE(RIFY) CHECK TRANFER (TO DISK) BY RE-READING BUFFER; BACK FROM OUTPUT VOLUMEH;H>; /OV(ERWRITE) OVERWRITE ANY DATA ON OUTPUT TAPE, (I.E. DO NOT4; FOLLOW NORMAL PROCEEDURE OF SEARCHING FOR END OF6; VOLUME BEFORE STARTING WRITE.) USED TO WRITE FIRST2; SAVE SET ON A TAPE. ALSO DONE AUTOMATICALLY IF0; COPYING A LARGE DISK TO THE STREAMER TAPE MM; ;TASK BUILD COMMAND FILE;E+;ROLLIN/-FP,ROLLIN/-SP=ROLLIN,[1,1]EXEC.STB ;/ ;TASK=...ROL;LIBR=SYSRES:RO ;PRI=100 ;STACK=64D ;ASG=TI:3V;PAR=GEN; ;N;NOTE:L;DUE TO SYSTEM VARAITIONS, LEGAL DEVICES FOR WHICH TRANSFERS WILL BE ALLOWEDF;ARE IN TABLES "INPTAB" AND "OUTTAB" THESE MUST BE MODIFIED TO INCLUDE;(OR DELETE) DEVICES.N;F1 .GLOBL IO.RLB,IO.WLB,IO.ATT,IO.DET,IO.SPF,IO.EOFF .GLOBL IO.RWD,..ATRD,..RDTA .MCALL EXIT$S,GTIM$C,GMCR$,DIR$.PAGE .SBTTL GET U00Օ&'4SER'S COMMAND LINESTART:$ DIR$ #GETMCR ;GET MCR COMMAND LINE# CMP @#0,#8. ;IS THERE A COMMAND ? BLE 1$ ;NO# INC MCRFLA ;YES, SHOW IT HAPPENEDK MOV @#0,R0 ;COUNT TO R0 SUB #4,R0 ;ACCOUNT FOR 'ROL 'R4 MOV #GETMCR+G.MCRB+4,R1 ;START READING AFTER 'ROL ' MOV #BUFFER,R2L82$: MOVB (R1)+,(R2)+ ;XFER A CHARACTER TO REGULAR BUFFER SOB R0,2$ ;UNTIL DONE/1$: MOV .CRTSK,R0 ;GET CURRENT ATL ADDRESS (ME)." MOV A.TI(R0),R0 ;GET TI PUD START3 BIT #UT.PR,U.PR(R0) ;IS IT A PRIVILEGED TERMINAL ?U BNE GETCMD ;YES GET COMMANDR. MOV #24.,R0 ;NO R0 = NUMBER OF ERROR MESSAGE% CLR R1 ;CLEAR R1 (NO INSERTED TEXT)I JSR PC,ERRQIO ;WRITE ERROR MESS JMP ENDRUN ;AND SCRAMRGETCMD:#* TST MCRFLA ;WAS THERE EVER AN MCR FLAG ? BEQ 22$ ;BR IF NOT" INC MCRFL1 ;ELSE COUNT # OF THEM( CMP MCRFL1,#1 ;FIRST TIME FOR ONE-LINER BEQ NOTCTZ ;IF SO, TRY ITT8 EXIT$S ;MCRFL1 GT 1 MEANS ONE-LINER FAILED, JUST EXIT#22$: MOV #IO.WLB,R0 ;I/O CODE TO R0% MOV #3,R1 ;LOGICAL DEV NUMBER TO R1D- MOV #PROMPT,R2 ;START OF PROMPT BUFFER TO R2M# MOV #4,R3 ;LENGTH OF PROMPT TO R3M! MOV #44,R4 ;CAR. CTL CODE TO R4R! JSR PC,QIO ;CALL QIO SUBROUTINER$ ;NOW CET COMMAND LINE FROM TERMINAL% MOV #IO.RLB,R0 ;CHANGE QIO TO A READ % MOV #BUFFER,R2 ;INTO INTERNAL BUFFERM$ MOV #80.,R3 ;ACCEPT UP TO 80 BYTES" CLR R4 ;CLEAR CAR CTL TO BE SURE' JSR PC,QIO ;NOW READ THE COMMAND LINER* CMPB IOSTAT,#-12 ;IS FIRST CHAR A CTL Z ? BNE NOTCTZ ;NO' JMP ENDRUN ;YES,?O MORE XFER REQUESTSD.PAGEE#.SBTTL PARSE OUTPUT DEVICE AND NAMER2NOTCTZ: MOV #BUFFER,R0 ;R0 POINTER TO BUFFER START0 MOV #OUTDEV,R1 ;POINTER TO OUTDEV STORAGE TO R1$ MOV #4,R2 ;XFER 4 ASCII CHARACTERS% JSR PC,XFERBT ;FROM BUFFER TO OUTDEVB# CMPB -1(R0),#': ;FOURTH CHAR A ':'F BEQ 1$ ;YES SKIP NEXTE* DEC R0 ;IMPLIED DEVICE 0 BACK UP POINTER4 MOV #"0:,OUTNUM ;AND REWRITE ASCII STRING CORRECTLY)1$: CMP OUTDEV,#"MT ;IS OUTDEV MAG TAPE ? BEQ 2$ ;YESL CMP OUTDEV,#"MM ;OR STREAMER ?U BNE OUTNMT ;NOT MAGTAPE OUTPUT-2$: MOV #FILEOU,R1 ;YES STORE OUTPUT FILENAMEC" MOV #6,R2 ;OF 6 ASCII CHARACTERS& JSR PC,XFERBT ;IN FILEIN STORAGE AREA1 CMPB (R0),#'= ;AFTER TAPE NAME, SHOULD BE AT '="R BEQ OUTNMT ;IF IT IS, WE'RE OK" MOV #34.,R0 ;ELSE MESSAGE NUMBER CLR R1 ;NO INSERT1 JSR PC,ERRQIO ;DO ERROR MESSAGE JMP ENDRUNB=OUTNMT: CMPB (R0)+,#'= ;DONE WITH OUTPUT DEV, SHOULD HAVE "="E BEQ ATEQM* MOV #2,R0 ;IF NOT BAD INPUT DEVICE ERROR CLR R1 JSR PC,ERRQIO ;DO MESSAGE JMP ENDRUN ;AND QUIT.PAGE 2.SBTTL PARSE INPUT DEVICE AND NAME, AND ANY SWITCH(ATEQ: MOV #INPDEV,R1 ;STORE INPUT DEVICE MOV #4,R2 ;OF FOUR ASCII BYTES% JSR PC,XFERBT ;USING SAME SUBROUTINEO. CMPB -1(R0),#': ;AGAIN IS IT IMPLIED UNIT 0 ? BEQ 1$ ;BR IF NOT % DEC R0 ;ADJUST INPUT STRING POINTERJ+ MOV #"0:,INPNUM ;AND READJUST ASCII STRING-1$: MOV #300.,LOOTOT ;SET LOOP COUNT FOR A DKH, MOV #8192.,MTSIZE ;AND BUFFER SIZE FOR A DK& CMP INPDEV,#"DP ;CHECK FOR DP DEVICES BEQ 2$ ;FOUND ONEE CMP OUTDEV,#"DP BEQ 2$P CMP INPDEV,#"DR ;CHECK FOR DR'S BEQ 22$ CMP OUTDEV,#"DR% BEQ 22$ ;LAST CHANCE FOR A BIG DISKM" BR 3$ ;NO DP'S OR DR'S MENTIONED- ;AS OF SEPT 82, FOR DR MAX=131680. BLOCKS)/22$: MOV #4115.,LOOTOT ;SET LOOP TOTAL FOR A DRI BR 23$D@2$: MOV #4113.,LOOTOT ;DP'S ARE 80. BLOCKS SMALLER, SO NUMBER IS ;SLIGHTLY LESS@23$: MOV #16384.,MTSIZE ;AND SIZE IN CASE IT'S TAPE TO/FROM DISK. ;CHANGED SO EACH LOOP DOES ONE CDC SURFACE8 CMP INPDEV,#"DK ;FOR LARGE DISKS, BETTER NOT HAVE DK OR! BEQ 21$ ;AS INPUT/OUTPUT DEVICEO CMP OUTDEV,#"DK BEQ 21$= CMP INPDEV,#"MT ;SAME THING FOR OLDER TU10, THINGS WON'T FITS BEQ 21$ CMP OUTDEV,#"MT BEQ 21$5 BR 3$ ;FELL THROUGH, BIG TRANSFER IS DP/DR/STREAMERE)21$: MOV #25.,R0 ;NO, ERROR MESS # TO R04 JMP ILLINP ;TELL OPERATOR WHYS(3$: CMP INPDEV,#"MT ;IS INPUT MAG TAPE ? BEQ INPIMT ;YES IT ISA CMP INPDEV,#"MM ;OR STREAMER ? BEQ INPIMTA JMP INPNMT ;NO SKIP NEXT5INPIMT: MOV #FILEIN,R1 ;POINTER TO INPUT FILE STORAGEO MOV #6,R2 ;BYTE COUNT TO XFER/% JSR PC,XFERBT ;ST00-TADATADATAORE INPUT FILE NAME26INPNMT: CLR CKFLAG ;CLEAR READ AFTER WRITE CHECK FLAG, CLR OVFLAG ;CLEAR DON'T POSITION TAPE FLAG) CMP INPDEV,#"DP ;BACKING UP LARGE DISK ?D BEQ 55$ ;BR IF YES CMP INPDEV,#"DR ; BNE 111$ ;NO LARGE DISKN>55$: INC OVFLAG ;FORCE NO SKIP SINCE ONLY ONE BACKUP PER TAPE$111$: CMPB (R0)+,#'/ ;SWITCH THERE ? BNE 1$ ;NO CMPB (R0),#'V ;VERIFY ? BEQ 222$ ;BR IF YEST CMPB (R0),#'O ;OVERWRITE ?N BEQ 333$ ;BR IF YESG MOV R0,-(SP) MOV R1,-(SP)X" MOV #37.,R0 ;GIVE MESSAGE NUMBER CLR R1 ;NO NUMBER INSERT' JSR PC,ERRQIO ;REPORT BAD SWITCH VALUER MOV (SP)+,R1 MOV (SP)+,R0T* CMPB (R0)+,(R0)+ ;LOOK FOR ANOTHER SWITCH BR 111$)222$: INC CKFLAG ;YES SET FLAG FOR CHECKB) CMPB (R0)+,(R0)+ ;LOOK FOR SECOND SWITCH; BR 111$2333$: INC OVFLAG ;YES SET FLAG FOR OVERWRITE TAPE) CMPB (R0)+,(R0)+ ;LOOK FOR SECOND SWITCHR BR 111$21$: CMP INPDEV,OUTDEV ;ARE INPUT & OUT SAME DEVICE BNE NOTSAM ;NO WE'RE OK , CMP INPNUM,OUTNUM ;IF SAME, # BETTER NOT BE& BNE NOTSAM ;NOT SAME PHYSICAL DEVICE MOV #3,R0 ;ERROR MESS #Q+ JMP ILLINP ;GO TO ILLEGAL INPUT LINE CODE.PAGEP+.SBTTL CHECK FOR LEGAL INPUT/OUTPUT DEVICESW7NOTSAM: ;NO DEV NAME CONFLICTS, CHECK FOR LEGAL DEVICESB- MOV #INPDEV,R0 ;SET UP TO CHECK INPUT DEVICEB JSR PC,CKDEV ;CHECK IT  BCC INPDOK ;DEVICE IS LEGALE MOV #3,R0 ;ERROR, MESS # TO R0 JMP ILLINP ;ILLEGAL INPUT LINE,INPDOK: MOV #OUTDEV,R0 ;SET TO CHECK OUT DEV JSR PC,CKDEV ;CHECK ITP BCC OUTDOK ;DEVICE IS LEGALE( MOV #2,R0 ;ILLEGAL, ERROR MESS # TO R0 JMP ILLINP ;ILLEGAL INPUT LINE;J5; OK SO WE AT LEAST HAVE LEGAL INPUT & OUTPUT DEVICEST+; FIRST ASSIGN OUTDEV TO #1 AND INDEV TO #2S; %OUTDOK: MOV #1,ASGLUN ;PUT LUN IN DPB & MOV OUTDEV,ASGNAM ;INSERT DEVICE NAME' MOVB OUTNUM,R1 ;ASCII DEV NUMBER TO R1 ! SUB #60,R1 ;CONVERT IT TO OCTALM% MOV R1,OUTNMO ;SAVE OCTAL DEV NUMBERL! MOV R1,ASGNUM ;PUT IT IN DPB TOOO/ MOV #ASGDPB,-(SP) ;PUT START OF DPB ONTO STACK  EMT 377 ;AND CALL DIRECTIVEE BCC OUTASG ;OUTPUT ASSIGNED OK( MOV #OUTDEV,R2 ;POINTER TO OUTDEV IN R2( BR BADASG ;TELL OPERATOR ASSIGN FAILED+OUTASG: MOV #2,ASGLUN ;SET TO ASSIGN UNIT 2O# MOV INPDEV,ASGNAM ;INSERT DEV NAMED% MOVB INPNUM,R1 ;GET ASCII DEV NUMBERV SUB #60,R1 ;CONVERT TO OCTAL% MOV R1,INPNMO ;SAVE OCTAL DEV NUMBERO MOV R1,ASGNUM ;AND PUT IN DPB+ MOV #ASGDPB,-(SP) ;START OF DPB ONTO STACKE EMT 377 ;CALL DIRECTIVEI BCC INPASG ;ASSIGN WORKED)2 MOV #INPDEV,R2 ;ON ERROR, POINTER IN R2 FOR ERROR& BR BADASG ;TELL OPERATOR ABOUT ERROR;K9; WARN OPERATOR IF RESTORING TO DP, MIGHT LOOSE 80 BLOCKSL;P'INPASG: CMP OUTDEV,#"DP ;OUTPUT TO DP ?U BNE ATTACH ;SKIP IF NOTM" MOV #36.,R0 ;GIVE MESSAGE NUMBER CLR R1 ;NO NUMBER INSERT JSR PC,ERRQIO ;REPORT ITO JMP ATTACHL.PAGER.SBTTL MISC ERROR HANDLING;O;M?;THIS CODE REPORTS AN ILLEGAL COMMAND LINE AND REQUESTS ANOTHERT;T* ;ERROR MESSAGE NUMBER ALREADY SET INTO R0 ILLINP: CLR R1 ;NO IMBEDED TEXT JSR PC,ERRQIO ;AND REPORT ERROR" JMP GETCMD ;READ ANOTHER COMMAND;R7;SECTION TO REPORT ASSIGN FAILURES & POSSIBLY TRY AGAIN0;O1BADASG: MOV #4,R0 ;SET UP FOR BAD ASSIGN MESSAGE MOV #1,R1 ;WITH INSERTED TEXT#" ;R2 ALREADY SET IN ASSIGN CODE$ MOV #4,R3 ;BYTE COUNT OF DEV TO R3# JSR PC,ERRQIO ;WRITE ERROR MESSAGET- JMP ALLOUT ;& TRY TO CLEAR UP AND RUN AGAINR;A.PAGEA%.SBTTL SUB TO CHECK FOR LEGAL DEVICEST;;;O:;CALL WITH R0 CONTAINING ADDRESS OF INPUT OR OUTPUT DEVICE;STRING (ASCII) IE "MT0:";; <;C-BIT IS SET ON RETURN TO INDICATE ERROR, OTHERWISE CLEARED; <CKDEV: MOV #INPTAB,R1 ;R1 POINTS TO START OF INPUT DEV TABLE) CMP R0,#OUTDEV ;CHECKING OUTPUT DEVICE ?V BNE CKAGIN ;NO9 MOV #OUTTAB,R1 ;POINT R1 TO START OF OUTPUT DEVICE TABLE )CKAGIN: CMP (R0),(R1)+ ;COMPARE DEV NAMESR BEQ NAMMAT ;NAMES MATCHL. TST (R1)+ ;NO MATCH, BUMP R1 PAST DEV NUMBER BR NOMAT ;AND TRY AGAIN -NAMMAT: CMP 2(R0),(R1)+ ;COMPARE UNIT NUMBERSG BNE NOMAT ;NO MATCH, TRY AGAIN4 CLC ;ITS A LEGAL DEVICE, CLEAR C BIT AS INDICATOR RTS PC ;AND RETURN(NOMAT: TST00Օ&'4 (R1) ;ARE WE THROUGH TABLE ?+ BNE CKAGIN ;NO CHECK NEXT DEVICE IN TABLEC&NG: SEC ;YES SET C BIT AS ERROR FLAG RTS PC ;AND RETURN.PAGET..SBTTL TABLE OF LEGAL INPUT AND OUTPUT DEVICES;K(;TABLE OF LEGAL DEVICES FOR ROLLIN INPUT!INPTAB: .ASCII /DK0:DK1:DK2:DK3:/1 .ASCII /MT0:/ .ASCII /MM0:/ .ASCII /DP0:DP1:DP2:/ .ASCII /DR0:DR1:DR2:DR3:/ .WORD 0 ;END OF TABLE FLAG;B);TABLE OF LEGAL DEVICES FOR ROLLIN OUTPUT !OUTTAB: .ASCII /DK0:DK1:DK2:DK3:/C .ASCII /MT0:/ .ASCII /MM0:/1 .ASCII /DP0:DP1:DP2:/ ;ALLOW RESTORES TO ANY DP; .ASCII /DR0:DR1:DR2:DR3:/  .WORD 0 ;END OF TABLE FLAG.PAGEL!.SBTTL ATTACH DEVICES IN QUESTIONS;L*;THIS SUBROUTINE REPORTS AN ATTACH FAILURE;T.BADATT: MOV #6,R0 ;SET TO PRINT ERROR MESS #6 MOV #1,R1 ;WITH INSERTED TEXTI ;R2 ALREADY SET0& MOV #4,R3 ;INSERT 4 ASCII CHARACTERS JSR PC,ERRQIO ;& REPORT ERROR RTS PC ;BUT CONTINUE OPERATION;I; %ATTACH: ;NOW TRY TO ATTACH DEVICES:" MOV #IO.ATT,R0 ;ATTACH CODE TO R0 MOV #1,R1 ;LUN TO R1 JSR PC,QIO ;DO ATTACH QIOO$ CMP #1,IOSTAT ;CHECK IO STATUS CODE BEQ OUTATC ;ATTACH WENT OK2 MOV #OUTDEV,R2 ;FAILED SET UP FOR ATTCH FAIL REPT JSR PC,BADATT ;GO REPORTT/OUTATC: MOV OUTDEV,OUTATT ;SHOW OUTPUT ATTACHEDT' MOV #2,R1 ;CHANGE LUN TO INPUT DEVICED JSR PC,QIO ;DO THIS ATTACH QIO CMP #1,IOSTAT ;CHECK STATUS2 BEQ ATTAOK ;WELL, WE FINALLY CAN START CRUNCHING) MOV #INPDEV,R2 ;SET UP DEV POINTER IN R2 ) JSR PC,BADATT ;REPORT ERROR AND CONTINUET; ;E.SBTTL POSITION MAG-TAPE;1.ATTAOK: MOV INPDEV,INPATT ;SHOW INPUT ATTACHED& ;HERE WE FINALLY CAN START REAL CODE& CMP OUTDEV,#"MT ;IS OUTPUT ON MAGTAPE% BEQ 1$ ;YES, MAY HAVE TO SKIP FILES;( CMP OUTDEV,#"MM ;NO, CHECK FOR STREAMER# BNE OUTRDY ;NO OUT ON DISK IS SETG(1$: TST OVFLAG ;SKIP TAPE POSITIONING ? BNE ENDOV ;YES, SKIP ITT* MOV #IO.SPF,R0 ;SET UP TO DO A SKIP FILES MOV #1,R1 ;ON DEV #11 MOV #100.,R2 ;SET TO SKIP LOTS MORE THAN WE NEEDP JSR PC,QIO ;DO QIO TO MT& CMPB #-11.,IOSTAT ;AT END OF VOLUME ? BEQ ENDOV ;YES WE'RE AT ENDT' MOV #13.,R0 ;SET MESSAGE NUMBER IN R0Y" CLR R1 ;SET FOR NO INSERTED TEXT# JSR PC,ERRQIO ;WRITE ERROR MESSAGEE JMP ALLOUT ;AND TRY TO UNDOP5ENDOV: CLR ENDOVF ;CLEAR FLAG SINCE WE'LL BE WRITINGO;O.PAGEI*.SBTTL WRITE HEADER AND REEL LABEL ON TAPE;?$; FIRST WRITE HEADER (ROLLIN FORMAT);F8 MOV #9.,R1 ;SET TO CONVERT ASCII FILE NAME (WITH EXT.)! MOV #FILEOU,R2 ;POINTED TO BY R2T2 MOV #BUFFER,R3 ;TO RAD 5O CODE STARTING AT BUFFER* JSR PC,..ATRD ;CALL CONVERSION SUBROUTINE( BCC NAMEOK ;YES GOT A GOOD RAD-50 NAME+ MOV #14.,R0 ;NO SET UP FOR ERROR MESS #14E CLR R1 ;WITH NO TEXT INSERTION' JSR PC,ERRQIO ;WRITE THE ERROR MESSAGEP JMP ALLOUT ;& TRY ERROR EXIT2NAMEOK: MOV #BUFFER+6,R0 ;POINT TO LATER IN BUFFER! MOV UIC,(R0)+ ;PUT UIC IN BUFFER % MOV PCODE,(R0)+ ;AND PROTECTION CODE% GTIM$C DATTIM ;GET TIME FROM SYSTEM 5 JSR PC,DOSDAT ;DO OUR ROUTINE TO CONVERT TO DOS DATEM CLR (R0)+ ;AND CLEAR LAST WORD# MOV #IO.WLB,R0 ;SET UP FOR A WRITEC MOV #1,R1 ;ON UNIT #1C) MOV #BUFFER,R2 ;WRITE STARTING AT BUFFER# MOV #14.,R3 ;WRITE 14 BYTESS JSR PC,QIO ;DOIT-DOIT-DOIT$ CMP IOSTAT,#1 ;CHECK DIRECTIVE STAT BEQ HEADOK ;IT WENTL$ MOV #15.,R0 ;SET TO PRINT ERROR 15 CLR R1 ;WITH NO INSERTED TEXTF JSR PC,ERRQIO ;WRITE ERROR MESS JMP ALLOUT ;& TRY TO RECOVER;I;C/; HEADER HAS BEEN WRITTEN, NOW WRITE REEL LABELR;,/HEADOK: MOV #BUFFER,R0 ;POINTER TO BUFFER STARTC) MOV #1,(R0)+ ;WRITE REEL # 1 INTO BUFFERB MOV #255.,R3 ;USE R3 AS COUNTER$WRITE0: CLR (R0)+ ;CLEAR OUT A WORD, SOB R3,WRITE0 ;IF NOT AT END, CLEAR ANOTHER MOV #IO.WLB,R0 ;IO CODE IN R0 MOV #1,R1 ;OUTPUT LUN TO R1I# MOV #BUFFER,R2 ;BUFFER START TO R2 MOV #512.,R3 ;BYTE COUNT TO R3 JSR PC,QIO ;WRITE REEL # BLOCK$ CMP IOSTAT,#1 ;WAS WRITE SUCCESSFUL& BEQ OUTRDY ;YES READY TO WRITE ON MT* MOV #16.,R0 ;NO SET ERROR MESS # INTO R0 CLR R1 ;NO INSERTED TEXT JSR PC,ERRQIO ;REPORT ERROR" JMP ALLOUT ;AND TRY FOR RECOVERY.PAGEB'.SBTTL LOOK FOR FILE HEA00-TADATADATADER ON MAG-TAPE0;L-OUTRDY: ;MAG TAPE SET FOR OUTPUT IF NECESSARYN" ;BUT MAY NEED TO SET UP FOR INPUT;R) CMP INPDEV,#"MT ;IS INPUT DEV MAG TAPE ?O BEQ READMT ;YES SET IT UP  CMP INPDEV,#"MM ;OR STREAMERT BEQ READMT ;YESR JMP MTREDY ;NO READY FOR XFERP&READMT: MOV #IO.RLB,R0 ;SET UP TO READ MOV #2,R1 ;FROM INPUT LUN  MOV #BUFFER,R2 ;INTO BUFFER MOV #8192.,R3 ;OF 8192 BYTESI JSR PC,QIO ;DO QIO% CMP IOSTAT,#1 ;WAS READ SUCCESSFUL ? ' BEQ ISITHD ;YES, SEE IF IT'S A HEADER % MOV #18.,R0 ;NO, ERROR MESS # TO R0M+ JSR PC,CONCOD ;CONVERT ERROR CODE TO ASCIIA1 JSR PC,ERRQIO ;WRITE ERROR(INCLUDING ERROR CODE)S JMP ALLOUT ;TRY FOR RECOVERY0ISITHD: CMP IOSTA2,#14. ;IS IT A 14 BYTE BLOCK ? BNE SKIPFL ;NO SKIP IT) JMP HEADCK ;YES GO CHECK FOR NAME MATCH 0SKIPFL: MOV #IO.SPF,R0 ;SET UP TO SKIP THIS FILE MOV #2,R1 ;ON INPUT LUNT MOV #1,R2 ;SKIP ONE FILE ONLY  JSR PC,QIO ;DO QIO! CMP IOSTAT,#1 ;WAS IT SUCCESSFULC BEQ READMT ;YES READ NEXT FILE,SKIPER: CMP IOSTAT,#-11. ;AT END OF VOLUME ?& BNE OTHERR ;NO SOME OTHER READ ERROR MOV #8.,R0 ;SET UP MESSAGE 8 CLR R1 ;NO INSERTED TEXT JSR PC,ERRQIO ;WRITE ERROR  JMP ALLOUT ;AND TRY RECOVERY.OTHERR: MOV #18.,R0 ;# OF MT WRITE ERROR MESS+ JSR PC,CONCOD ;CONVERT ERROR CODE -> ASCII  JSR PC,ERRQIO ;WRITE ERROR0 JMP ALLOUT ;AND EXIT.PAGEV0.SBTTL CHECK MAG-TAPE FILE HEADER NAME FOR MATCH;L;%;FOUND A HEADER, CHECK NAME FOR MATCHA6HEADCK: MOV #9.,R1 ;SET TO CONVERT 9 RAD50 CHARACTERS MOV #BUFFER,R2 ;IN BUFFER) MOV #MTNAME,R3 ;TO ASCII CHARS IN MTNAMEE JSR PC,..RDTA ;CALL SYS SUB* BCC NAMECK ;IF NAME IS LEGAL, COMPARE IT) MOV #14.,R0 ;OTHERWISE BAD NAME MESSABE  CLR R1 ;NO EXTRA TEXT # JSR PC,ERRQIO ;WRITE ERROR AT TERMJ! JMP ALLOUT ;AND TRY FOR RESTART NAMECK: ;VALID MAGTAPE NAME * MOV #MTNAME,R0 ;R0 POINTER FOR NAME ON MT, MOV #FILEIN,R1 ;R1 POINTER TO CMD FILE NAME MOV #9.,R2 ;USE R2 AS COUNTERM*CHKBYT: CMPB (R0)+,(R1)+ ;SAME CHARACTER ? BNE NAMENG ;WOOPS NO MATCH) SOB R2,CHKBYT ;ANOTHER CHAR TO COMPARE ? ( BR MTINOK ;DONE MAG TAPE SET FOR INPUT8NAMENG: BR SKIPFL ;JUST SKIP TILL WE GET ANOTHER HEADER;#;,; 0MTINOK: ;NAMES MATCH, NOW ACCOUNT FOR REEL LABEL MOV #IO.RLB,R0 ;READ CODE TO R0 MOV #2,R1 ;IN PUT LUNN& MOV #BUFFER,R2 ;JUST READ INTO BUFFER% MOV #512.,R3 ;READ A 512. BYTE BLOCKO JSR PC,QIO ;DO READ QIOR CMP IOSTAT,#1 ;SUCCESSFUL! BNE SKIPER ;USE SKIP ERROR CODEM;H.PAGEM.SBTTL MAIN TRANSFER LOOPT;?;ALL MAG-TAPE SET UP DONET;1MTREDY: CLR BLKOUT ;START OUTPUT XFER AT BLOCK 0N CLR BLKOHG  CLR BLKINP ;SAME FOR INPUT CLR BLKIHGT% CLR LOOPCT ;ALSO CLEAR LOOP COUNTER,!LOOPMN: INC LOOPCT ;COUNT A PASSO" CMP INPDEV,#"MT ;MAG-TAPE INPUT ? BEQ 11$ ;BR IF YES CMP INPDEV,#"MM ;OR STREAMERF BNE 1$ ;NO&11$: JSR PC,MTREAD ;YES READ FROM TAPE1$: CMP INPDEV,#"DP ;OR DP BEQ 12$ ;IF SO, DO DP READ CMP INPDEV,#"DR ;OR DR BNE 2$ ;NO12$: JSR PC,DPREAD ;YEST2$: CMP INPDEV,#"DK ;OR DK ? BNE READDN ;NO JSR PC,DKREAD ;YESL)READDN: CMP OUTDEV,#"MT ;MAGTAPE OUTPUT ?C BEQ 11$ ;BR IF YES CMP OUTDEV,#"MM ;OR STREAMER ? BNE 1$ ;NO11$: JSR PC,MTWRIT ;YES1$: CMP OUTDEV,#"DP ;A DP ?P BEQ 12$ ;IF SO, DO DP WRITEE CMP OUTDEV,#"DR ;OR DRF BNE 2$ ;NO12$: JSR PC,DPWRIT ;YESB2$: CMP OUTDEV,#"DK ;OR DK BNE WRITDN ;NO JSR PC,DKWRIT ;YES#(WRITDN: ;ONE 4096 WORD BLOCK WAS XFERRED# CMP ERRCNT,#16. ;TOO MANY ERRORS ?O BGE ERROUT ;YEA, SCRAM* CMP LOOPCT,LOOTOT ;DONE WITH ALL BLOCKS ? BLT LOOPMN ;NO LOOP TIL DONE JMP ALLDNE ;YES FINISH UPO;U;C;B ERROUT: MOV #1,R0 ;MESS # TO R0 CLR R1 ;WITH NO EXTRA ASCIIO JSR PC,ERRQIO ;REPORT ERROR0 CLR ERRCNT ;CLEAR COUNTER FOR NEXT TIME AROUND ;NOW JOIN CLEAR OUT SEQUENCE.PAGE2*.SBTTL CLOSE OUT MAG-TAPE AS OUTPUT DEVICE;V5;WRITE END-OF-FILE MARKS AND POSITION OUTPUT MAG-TAPER;N;O,ALLDNE: CMP OUTDEV,#"MT ;OUTPUT ON MAGTAPE ? BEQ 1$ ;BR IF YESO CMP OUTDEV,#"MM ;OR STREAMER ?L BNE ALLOUT ;NO1$: CLR ENDOVF ;USE AS COUNTER;+LOOPEF: 00Օ&'4MOV #IO.EOF,R0 ;END OF FILE IO CODEO MOV #1,R1 ;TO OUTPUT LUN" JSR PC,QIO ;WRITE AN END OF FILE CMP IOSTAT,#1 ;DID IT GO ?O BEQ ENDFOK ;YESR! MOV #13.,R0 ;ERROR MESS # TO R0M CLR R1 ;NO INSERTED TEXT JSR PC,ERRQIO ;WRITE ERROR MESS JMP ALLOUT ;AND ERROR EXIT,ENDFOK: INC ENDOVF ;INCREMENT ENDFILE COUNT& CMP ENDOVF,#3 ;DID WE WRITE 3 EOF'S ? BLT LOOPEF ;NO DOIT AGAIN?;B;1*;NOW BACKSPACE OVER ALL THREE OF THE EOF'S/;SO ANY SUBSEQUENT SEARCH FOR AN ENDOV WORKS OKO9;UNLESS OUTPUT WAS TO A BIG DISK (ONLY ONE DISK PER TAPE)#:;IN THIS CASE, JUST REWIND THE TAPE SO IT CAN BE TAKEN OFF;I, CMP INPDEV,#"DP ;ARE WE SAVING A BIG DISK ? BEQ 22$ ;BR IF YES CMP INPDEV,#"DR BNE 1$ ;BRANCH IF NOTR(22$: MOV #IO.RWD,R0 ;SET REWIND FUNCTION MOV #1,R1 ;ON OUTPUT LUN< JSR PC,QIO ;START THE REWIND (HANDLER RETURNS IMMEDIATELY)- BR ALLOUT ;AND CHECK FOR INPUT FROM MAGTAPE41$: MOV #IO.SPF,R0 ;FOR SMALL DISKS, DO SKIP IO CODE MOV #1,R1 ;ON OUTPUT LUN MOV #-3,R2 ;SKIP COUNT TO R2 JSR PC,QIO ;DO BACKSPACE QIO CMP IOSTAT,#1 ;WENT OK ?J BEQ ALLOUT ;YES  MOV #13.,R0 ;NO MESS # TO R0 CLR R1 ;NO EXTRA ASCII JSR PC,ERRQIO ;WRITE ERROR MESS.PAGEP).SBTTL CLOSE OUT MAG-TAPE AS INPUT DEVICE:;V;O+;IF MAGTAPE WAS INPUT DEVICE, SKIP OVER EOF );SO SUBSEQUENT ROLLINS FROM MAG-TAPE WORK(B;UNLESS WE RESTORED A BIG DISK. IN THAT CASE, JUST REWIND THE TAPE;T;1ALLOUT: CMP INPDEV,#"MT ;WAS READ FROM MAG-TAPE ?O BEQ 1$ ;BR IF YESU CMP INPDEV,#"MM ;OR STREAMER ?T BNE CKATCH ;NO DON'T BOTHERA31$: CMP OUTDEV,#"DP ;WERE WE RESTORING A BIG DISK ?  BEQ 22$ ;BR IF YES CMP OUTDEV,#"DR BNE 2$ ;BRANCH IF NOTP(22$: MOV #IO.RWD,R0 ;SET REWIND FUNCTION MOV #2,R1 ;ON INPUT LUNT< JSR PC,QIO ;START THE REWIND (HANDLER RETURNS IMMEDIATELY) BR CKATCH ;AND DETACH DEVICES-42$: MOV #IO.SPF,R0 ;FOR SMALL DISKS, SET UP FOR SKIP MOV #2,R1 ;ON INPUT LUNT MOV #1,R2 ;SKIP 1 EOF# JSR PC,QIO ;DO THE QIO;O.PAGE1.SBTTL DETACH ATTACHED DEVICES;R&;FINAL CLEAN UP--DEATTACH WHERE NEEDED;A5CKATCH: CMP OUTATT,OUTDEV ;WAS OUTPUT EVER ATTACHED ?& BNE OUTNAT ;NO DON'T TRY TO DEATTACH' MOV #IO.DET,R0 ;YES, DETACH CODE TO R0D MOV #1,R1 ;OUTPUT LUN TO R1# JSR PC,QIO ;DO DETACH QIO, CMP IOSTAT,#1 ;SUCCESS ?D BEQ OUTNAT ;YES TYR OUTPUT, MOV #OUTDEV,R2 ;POINTER TO OUTPUT DEV TO R2, JSR PC,BADDET ;USE SUB TO REPORT BAD DETACH/OUTNAT: CMP INPATT,INPDEV ;WAS INPUT ATTACHED ?R BNE INPNAT ;NO DON'T DETACH1" MOV #IO.DET,R0 ;DETACH CODE TO R0 MOV #2,R1 ;INPUT LUN TO R1 JSR PC,QIO ;DO DETACH QIOU CMP IOSTAT,#1 ;DID IT GO ?A BEQ INPNAT ;YEST. MOV #INPDEV,R2 ;NO POINTER TO INPUT DEV TO R2) JSR PC,BADDET ;USE BAD DETACH REPORT SUBU(INPNAT: ;ALL UNDONE, TRY ANOTHER COMMAND) TST MCRFLA ;WAS THIS AN MCR ONE LINER ?; BNE ENDRUN ;IF YES SCRAM JMP GETCMDT;U;T;SUB TO REPORT DETACH FAILURES; (BADDET: MOV #10.,R0 ;ERROR MESS # TO R0 MOV #1,R1 ;TEXT INSERT FLAGB MOV #4,R3 ;INSERT 4 BYTES JSR PC,ERRQIO ;WRITE ERROR MESS RTS PC ;AND RETURN;T;1;J1ENDRUN: ;CONTROL-Z SEEN ON INPUT OR MCR ONE LINERG EXIT$S ;AND EXITE;.PAGEN.SBTTL DK READ/WRITE SUBST;V;SUBROUTINE TO READ FROM DKA;E$DKREAD: MOV #IO.RLB,R0 ;LOAD IO CODE MOV #2,R1 ;LOAD INPUT LUNR" MOV #BUFFER,R2 ;LOAD BUFFER START MOV #8192.,R3 ;LOAD BYTE COUNTG CLR R4 ;PAR#3=0B, MOV BLKINP,R5 ;CURRENT STARTING BLOCK TO R5 JSR PC,QIO ;DO THE QIO CMP IOSTAT,#1 ;WENT OK ?F BEQ DKRDOK ;YESI! MOV #22.,R0 ;ERROR MESS # IN R0T! MOV BLKINP,R1 ;BLOCK COUNT TO R1 JSR PC,DKERR ;WRITE ERROR.DKRDOK: ADD #16.,BLKINP ;INCREMENT BLOCK START RTS PC ;AND RETURN;T;D;SUBROUTINE TO WRITE TO DK;T; %DKWRIT: MOV #IO.WLB,R0 ;IO CODE TO R0L MOV #1,R1 ;OUTPUT LUN TO R1 # MOV #BUFFER,R2 ;BUFFER START TO R2A MOV #8192.,R3 ;BYTE COUNT TO R3 CLR R4 ;PAR 3=0R! MOV BLKOUT,R5 ;START BLOCK IN R5R JSR PC,QIO ;DO WRITE CMP IOSTAT,#1 ;WENT OK? BEQ DKWTOK ;YESS IT WENT! MOV #20.,R0 ;ERROR MESS # TO R0  MOV BLKOUT,R1 ;BLOCK # TO R1N JSR PC,DKERR 00-TADATADATA;WRITE ERROR MESS,'DKWTOK: TST CKFLAG ;WANT WRITE CHECK ?N BEQ DKCKOK ;NO SO SKIP& MOV #IO.RLB,R0 ;YES, SET PARAMS AGAIN. MOV #1,R1 ;OUTPUT DEVICE FOR CHECK LUN TO R1 MOV #BUFFER,R2 ;BUFFER POINTERT MOV #8192.,R3 ;BYTE COUNT CLR R4 ;PAR 3=0O$ MOV BLKOUT,R5 ;STARTING BLOCK IN R5 JSR PC,QIO ;DO READ CHECKK CMP IOSTAT,#1 ;SUCCESSFUL ? BEQ DKCKOK ;BR IF OK MOV #32.,R0 ;ELSE MESS # TO R0& MOV BLKOUT,R1 ;STARTING BLOCK # TO R1 JSR PC,DKERR ;AND REPORT ERRORC3DKCKOK: ADD #16.,BLKOUT ;BUMP STARTING BLOCK NUMBER  RTS PC ;AND RETURN.PAGE .SBTTL DK ERROR REPORTING SUBM;#;R;R';SUB TO REPORT DISK READ OR WRITE ERRORT; ;I-DKERR: MOV R0,R5 ;SAVE START OF MESS POINTER  MOV R1,R0 ;BLOCK COUNT TO R0/ MOV #BLKEND,R3 ;R3 POINTS AT END OF ASCII BL #G MOV #5,R4 ;USE R4 AS COUNTER"LOPCON: MOV R0,R1 ;NUMBER INTO R1 CLR R0 ;CLEAR UPPER REGISTER DIV #10,R0 ;DIVIDE( ADD #60,R1 ;CONVERT REMAINDER TO ASCII MOVB R1,-(R3) ;STORE IN MESSAGE" SOB R4,LOPCON ;DO ANOTHER IF NECC$ MOV R5,R0 ;RESTORE MESSAGE POINTER& MOV #1,R1 ;INDICATE INSERTED MESSAGE MOV #BLKBUF,R2 ;START INTO R2 MOV #8.,R3 ;BYTE COUNT TO R3# JSR PC,ERRQIO ;WRITE ERROR MESSAGE  INC ERRCNT ;COUNT THE ERRORB RTS PC ;AND RETURN;L;DBLKBUF: .ASCII / 00000/ABLKEND:G.PAGE#.SBTTL SUB TO READ FROM DP;N;SUB TO READ FROM DP; %DPREAD: MOV #IO.RLB,R0 ;FN CODE TO R0V MOV #2,R1 ;LOAD INPUT LUN " MOV #BUFFER,R2 ;LOAD BUFFER START MOV #16384.,R3 ;LOAD BYTE COUNT* CMP INPDEV,#"DP ;REALLY READING FROM DP ? BNE 1$ ;SKIP CHECK IF NOT#+ CMP LOOPCT,LOOTOT ;IS IT THE LAST RECORD ?F BNE 1$ ;SKIP IF NOTV/ MOV #8192.,R3 ;ELSE MAKE LAST RECORD HALF SIZE 1$: CLR R4 ;PAR#3=0, MOV BLKINP,R5 ;CURRENT STARTING BLOCK TO R5" MOV BLKIHG,PAR4 ;LOAD HIGHER WORD JSR PC,QIO ;DO THE QIO CLR PAR4F CMP IOSTAT,#1 ;WENT OK ?O BEQ DPRDOK ;YESO! MOV #28.,R0 ;ERROR MESS # IN R0#! MOV BLKINP,R1 ;BLOCK COUNT TO R1R JSR PC,DPERR ;WRITE ERROR.DPRDOK: ADD #32.,BLKINP ;INCREMENT BLOCK START ADC BLKIHG ;DO 2 WORD MATH RTS PC ;AND RETURN.PAGEP.SBTTL SUB TO WRITE TO DPA;R;SUBROUTINE TO WRITE TO DP;V%DPWRIT: MOV #IO.WLB,R0 ;IO CODE TO R0 % CMP OUTDEV,#"DR ;OUTPUT TO DR DISK ?B BNE 2$ ;SKIP IF NOTI( CMP LOOPCT,LOOTOT ;WRITING LAST TRACK ? BNE 2$ ;SKIP IF NOT;< MOV #IO.WLT,R0 ;TELL DR HANDLER WE WANT TO WRITE LAST TRACK 2$: MOV #1,R1 ;OUTPUT LUN TO R1# MOV #BUFFER,R2 ;BUFFER START TO R2N! MOV #16384.,R3 ;BYTE COUNT TO R3R( CMP OUTDEV,#"DP ;REALLY WRITING TO DP ? BNE 1$ ;SKIP CHECK IF NOTR+ CMP LOOPCT,LOOTOT ;IS IT THE LAST RECORD ?S BNE 1$ ;SKIP IF NOT/ MOV #8192.,R3 ;ELSE MAKE LAST RECORD HALF SIZEL1$: CLR R4 ;PAR 3=0! MOV BLKOUT,R5 ;START BLOCK IN R5 " MOV BLKOHG,PAR4 ;UPPER WORD TO P4 JSR PC,QIO ;DO WRITE CLR PAR4B CMP IOSTAT,#1 ;WENT OK? BEQ DPWTOK ;YESS IT WENT! MOV #26.,R0 ;ERROR MESS # TO R0O MOV BLKOUT,R1 ;BLOCK # TO R1V JSR PC,DPERR ;WRITE ERROR MESS)DPWTOK: TST CKFLAG ;WANT FURTHER CHECK ?T BEQ DPCKOK ;NO7 MOV #IO.RLB,R0 ;SET PARAMETERS AGAIN TO BE DOUBLE SURE, MOV #1,R1 ;LUN MOV #BUFFER,R2 ;BUFFER POINTER  MOV #16384.,R3 ;BYTE COUNTK( CMP OUTDEV,#"DP ;REALLY WRITING TO DP ? BNE 1$ ;SKIP CHECK IF NOTL+ CMP LOOPCT,LOOTOT ;IS IT THE LAST RECORD ?4 BNE 1$ ;SKIP IF NOTE/ MOV #8192.,R3 ;ELSE MAKE LAST RECORD HALF SIZEO1$: CLR R4 ;PAR 3 =0# MOV BLKOUT,R5 ;PAR 5O MOV BLKOHG,PAR4 ;PAR 4C JSR PC,QIO ;DO READ FOR CHECKE CLR PAR4 CMP IOSTAT,#1 ;READ CHECK OK ? BEQ DPCKOKQ MOV #30.,R0 ;MESS # TO R0  MOV BLKOUT,R1 ;DIGIT TO R1O JSR PC,DPERR ;REPORT ERROR8DPCKOK: ADD #32.,BLKOUT ;INCREMENT STARTING BLOCK NUMBER ADC BLKOHG ;DO 2 WORD MATH RTS PC ;AND RETURN.PAGEK.SBTTL DP ERROR REPORTING SUBO;T;S; %;SUB TO REPORT DP READ OR WRITE ERRORO;;V-DPERR: MOV R0,R5 ;SAVE START OF MESS POINTER$ MOV R1,R0 ;BLOCK COUNT TO R0/ MOV #BLPEND,R3 ;R3 POINTS AT END OF ASCII BL #I MOV #6,R4 ;USE R4 AS COUNTER"LOPCOP: MOV R0,R1 ;NUMBER INTO R1 CLR R0 ;CLEAR UPPER REGISTER DIV #10,R0 ;DI00Օ&'4VIDE( ADD #60,R1 ;CONVERT REMAINDER TO ASCII MOVB R1,-(R3) ;STORE IN MESSAGE" SOB R4,LOPCOP ;DO ANOTHER IF NECC$ MOV R5,R0 ;RESTORE MESSAGE POINTER' MOV BLKIHG,R4 ;HIGH ORDER BLOCK NUMBERT0 BIS BLKOHG,R4 ;USE OR CAUSE MAY NOT BE DP TO DP3 ASH #1,R4 ;NOW IT MATCHES MOST SIGNIF OCTAL DIGITM> BISB R4,BLPBUF ;FIRST DIGIT OF BL# NOW FULL 3-BIT SIGNIFICANT& MOV #1,R1 ;INDICATE INSERTED MESSAGE MOV #BLPBUF,R2 ;START INTO R2 MOV #7,R3 ;BYTE COUNT TO R3R# JSR PC,ERRQIO ;WRITE ERROR MESSAGER INC ERRCNT ;COUNT THE ERRORR RTS PC ;AND RETURN;V;1BLPBUF: .ASCII /000000/ .EVENBLPEND:O.PAGER .SBTTL SUBS TO READ/WRITE FOR MT!;SUBROUTINE TO READ FROM MAG-TAPEO'MTREAD: MOV #IO.RLB,R0 ;READ CODE TO R0R MOV #2,R1 ;INPUT LUN TO R1 MOV #BUFFER,R2 ;BUFFER STARTS MOV MTSIZE,R3 ;BYTE COUNT JSR PC,QIO ;DO QIO CMP IOSTAT,#1 ;SUCCESSFUL ? BNE MTRDNG ;NO REPORT ERRORT RTS PC ;YES JUST RETURN (MTRDNG: MOV #18.,R0 ;ERROR MESS # TO R0+ JSR PC,CONCOD ;CONVERT ERROR CODE -> ASCIII JSR PC,ERRQIO ;WRITE ERROR MESS INC ERRCNT ;COUNT AN ERROR SEC ;SET ERROR INDICATOR RTS PC ;AND RETURN;S; ;R ;SUBROUTINE TO WRITE TO MAG-TAPE%MTWRIT: MOV #IO.WLB,R0 ;WRITE IO CODE, MOV #1,R1 ;OUTPUT LUN TO R11 MOV #BUFFER,R2 ;BUFFER STARTR MOV MTSIZE,R3 ;BYTE COUNT JSR PC,QIO ;DO WRITE CMP IOSTAT,#1 ;WENT OK ?A BNE MTWTNG ;NO REPORT ERROR  RTS PC ;YES RETURN FROM SUBE#MTWTNG: MOV #16.,R0 ;ERROR # TO R0;+ JSR PC,CONCOD ;CONVERT ERROR CODE -> ASCIIR JSR PC,ERRQIO ;WRITE ERROR MESS INC ERRCNT ;COUNT AN ERROR SEC ;SET ERROR INDICATORE RTS PC ;AND RETURN;PH;SUB TO CONVERT ERROR CODE TO ASCII AND SET TO INSERT INTO ERROR MESSAGE;.!CONCOD: MOV IOSTAT,R4 ;CODE TO R4 ! MOV #6,R3 ;CHARACTER COUNT ->R3 % MOV #NUMBUF+6,R2 ;INITIALIZE POINTERU1$: MOV R4,R5 ;SET FOR DIVIDE CLR R41 DIV #10,R4 ;REM IN R5  ADD #60,R5 ;CONVERT TO ASCII MOVB R5,-(R2) ;INSERT IN BUFFER SOB R3,1$ ;LOOP TILL 6 DONE,( ;R2 ALREADY SET FOR ERROR REPORT SUB1 MOV #6,R3 ;NUMBER OF CHARACTERS TO INSERT IN R3N- MOV #1,R1 ;SET FLAG FOR TEXT TO BE INSERTED; RTS PC ;DONE;B*;BUFFER FOR CONVERSION FROM OCTAL TO ASCIINUMBUF: .ASCII /000000/;;C; .PAGET.SBTTL DOS/RSX DATE CONVERTER ;A';SUBROUTINE TO CONVERT RSX DATE TO DOSI;L5;RSX DATE FROM SUB IS YEAR (SINCE 1900),MONTH, DAY AS;SEPERATE OCTAL VARIABLESA;DOS DATE IS AN INTEGERC5;DOS DATE=1000*(YEAR-1970)+# OF DAYS SO FAR THIS YEAR ;L;D*DOSDAT: MOV #DATTIM,R1 ;BUFFER START TO R1 MOV (R1)+,R5 ;YEAR IN R5C$ BIT #3,R5 ;IS YEAR DIVISIBLE BY 4?! BNE NOTLPY ;NO ITS NOT LEAPYEAR;0 INCB DAYSMO+2 ;INCREMENT # OF DAYS IN FEB TO 29%NOTLPY: SUB #70.,R5 ;SUBTRACT (19)70% MUL #1000.,R5 ;MUL BY 1000 (DECIMAL)T' MOV (R1)+,R2 ;# OF CURRENT MONTH IN R2 " MOV #DAYSMO,R3 ;USE R3 AS POINTER*ADDAMO: MOVB (R3)+,R4 ;GET # OF DAYS IN R4 ADD R4,R5 ;ADD TO DATE' SOB R2,ADDAMO ;IF NOT DONE, DO ANOTHER( MOV (R1)+,R2 ;NOW GET DAY IN R2 ADD R2,R5 ;AND ADD IT  MOV R5,(R0)+ ;SAVE DOS DATE5 MOVB #28.,DAYSMO+2 ;SET FEB BACK TO 28 FOR NEXT TIMES RTS PC ;AND RETURN;;;I;;TABLE (BYTE OF # OF DAYS TO ADD FOR EACH (COMPLETED) MONTHT;9<DAYSMO: .BYTE 0.,31.,28.,31.,30.,31.,30.,31.,31.,30.,31.,30.;1E;SUBROUTINE TO TRANSFER N ASCII CHARACTERS FROM ONE BUFFER TO ANOTHERR;U;CALLING SEQUENCED;O%;R0 POINTS TO SOURCE CHARACTER BUFFERA%;R1 POINTS TO DEST. CHARACTER BUFFER;);R2 CONTAINS # OF ASCII BYTES TO TRANSFERW;T;Y!XFERBT: TST R2 ;CHECK BYTE COUNTM" BEQ XFEROV ;IF ZERO, JUST RETURN)XFER1B: MOVB (R0)+,(R1)+ ;TRANSFER A BYTEM) SOB R2,XFER1B ;IF NOT DONE, XFER ANOTHERY%XFEROV: RTS PC ;IF DONE, JUST RETURNT; ;T;;;S.PAGET.SBTTL ERROR MESSAGE ROUTINES.<;ROUTINE TO SEND AN ERROR MESSAGE TO THE OPERATOR'S TERMINAL>;ROUTINE WILL SEND A MESSAGE (REFERRED TO BY THE NUMBER OF THEE;MESSAGE IN THE MESSAGE TABLE) TO THE OPERATOR, OPTIONALLY INCLUDINGED;SPECIAL ASCII CODES (SUCH AS A DEVICE AND UNIT NUMBER) IN THE ASCII;TEXT. CALLING CONDITIONS AREO;;;R0= MESSAGE NUMBER;;R00ɖ-TADATADATA1= 1 TO INDICATE AN ASCII STRING SHOULD BE INSERTED INTOF; THE ERROR MESSAGEE%;R2= POINTER TO STRING TO BE INSERTEDR7;R3= NUMBER OF BYTES TO BE INSERTED INTO MESSAGE STRINGI;.?;THE ROUTINE WILL INSERT TEXT (IF REQUIRED) INTO A POINT IN THER=;MAIN MESSAGE AT A POINT DETERMINED BY THE NEXT ENTRY IN THE M;MESSAGE START TABLE;B; 1ERRQIO: TST R1 ;ANY SUB MESSAGE TO BE INSERTED ?C BEQ NOINSE ;NOTHING TO INSERTI MOV R0,R4 ;GET MESSAGE # IN R4* INC R4 ;BUMP TO NEXT MESSAGE TABLE ENTRY% ASH #1,R4 ;CONVERT TO A WORD OFFSET ! ADD #MESSST,R4 ;AD BASE OF TABLEO7 MOV (R4),R4 ;R4 NOW POINTS AT SUB BUFFER TO BE FILLEDN.XFERCH: MOVB (R2)+,(R4)+ ;TRANSFER A CHARACTER& SOB R3,XFERCH ;NOT DONE ?, DO ANOTHER/NOINSE: ;HERE IF SUB MESSAGE DONE OR NOT NEEDEDT& ASH #1,R0 ;CONVERT R0 TO WORD OFFSET MOV R0,R2 ;SET R0 INTO R2 MOV R0,R3 ;AND INTO R3- ADD #MESSST,R2 ;ADD MESSAGE START TABLE BASE;- MOV (R2),R2 ;R2 NOW POINTS AT MESSAGE STARTI4 ADD #MESSLN,R3 ;ADD MESSAGE LENGTH TABLE BASE TO R3) MOV (R3),R3 ;R3 NOW CONTAINS BYTE COUNTE% MOV #40,R4 ;CARRIAGE CTL CODE TO R44" MOV #IO.WLB,R0 ;SET IO CODE IN R0' MOV #3,R1 ;SET LOGICAL UNIT # INTO R1F% JSR PC,QIO ;AND DO A QIO TO THE TTYE RTS PC ;AND RETURN WHEN DONE;B;S.PAGEN.SBTTL ERROR MESSAGES#;0";FOLLOWING ARE THE MESSAGE BUFFERS@;BUFFERS WITH A TAG OF THE FORM (ERR3BF:) ARE THE SECOND HALF OFG;THE PREVIOUS BUFFER USED FOR LOADING DEVICE NAMES ETC INTO THE MESSAGET;IPROMPT: .ASCII /ROL>/ ;#0?ABORT: .ASCII /*** ROL Aborted due to error count exceeded/ ;#1O .EVEN1ERR1: .ASCII /*** ROL Bad output device name/ ;#2R0ERR2: .ASCII /*** ROL Bad input device name/ ;#3-ERR3: .ASCII /*** ROL Failed to assign / ;#4 ERR3B: .ASCII /XX0:/ ;#5-ERR4: .ASCII /*** ROL Failed to attach / ;#6#ERR4B: .ASCII /XX0:/ ;#7/ERR5: .ASCII /*** ROL No such file on tape/ ;#8R .EVEN7ERR6: .ASCII /*** ROL Non-dos header--file skipped/ ;#9N .EVEN/ERR7: .ASCII /*** ROL Failed to detach / ;#10./ERR7B: .ASCII /XX0:/ ;#11.6ERR10: .ASCII /*** ROL Bad device on input line/ ;#12. .EVEN=ERR11: .ASCII \*** ROL Can't find/write eov on magtape\ ;#13.O .EVEN4ERR12: .ASCII /*** ROL Bad magtape file name/ ;#14. .EVEN7ERR13: .ASCII /*** ROL Error writing tape header/ ;#15.  .EVEN=ERR14: .ASCII /*** ROL Write failure on tape--status= / ;#16. ERR14P: .ASCII /000000/ ;#17.. .EVEN=ERR15: .ASCII /*** ROL read failure on tape--status= / ;#18.ERR15P: .ASCII /000000/ ;#19.e .EVENGERR16: .ASCII /*** ROL Write failure on disk starting at block #/ ;#20.nERR17: .ASCII / 00000/ ;#21.FERR18: .ASCII /*** ROL Read failure on disk starting at block #/ ;#22.ERR19: .ASCII / 00000/ ;#23.JERR20: .ASCII /*** ROL Illegal function for non privileged terminal/ ;#24. .EVENEERR21: .ASCII ?*** ROL Can only xfer DP/DR to DP/DR or MM tape? ;#25. .EVENHERR22: .ASCII ?*** ROL Write failure on DP/DR starting at block #? ;#26.ERR22P: .ASCII /000000/ ;#27.A .EVENHERR23: .ASCII ?*** ROL Read failure on DP/DR starting at block #? ;#28.ERR23P: .ASCII /000000/ ;#29.S .EVENKERR24: .ASCII ?*** ROL Write check error on DP/DR starting at block #?;#30./ERR24P: .ASCII /000000/ ;#31.; .EVENKERR25: .ASCII /*** ROL Write check error on disk starting at block #/ ;#32.VERR25P: .ASCII /000000/ ;#33.l .EVENBERR26: .ASCII /*** ROL Must have 6-character tape file name/ ;#34. .EVEN=ERR27: .ASCII /*** ROL Can not restore to DP0: or DP1:/ ;#35.  .EVEN?ERR30: .ASCII /*** ROL Warning *** last 80 blocks may be lost /a( .ASCII /if source was DR disk/ ;#36. .EVEN=ERR31: .ASCII /*** ROL Warning unknown switch, ignored/ ;#37.r .EVENERREND: .WORD 0R.PAGEA.SBTTL MESSAGE LENGTH TABLEN;R;:1;NOW A TABLE OF THE LENGTHS OF THE ABOVE MESSAGES ;b;kMESSLN: .WORD ABORT-PROMPT .WORD ERR1-ABORT. .WORD ERR2-ERR1 .WORD ERR3-ERR2 .WORD ERR4-ERR3 .WORD 0 ;A DUMMY FOR ERROR 3B: .WORD ERR5-ERR4 .WORD 0 ;A DUMMY FOR ERROR 4B# .WORD ERR6-ERR5 .WORD ERR7-ERR6 .WORD ERR10-ERR70 .WORD 0 ;A DUMMY FOR ERR00іՕ&'4OR 7Bi .WORD ERR11-ERR10 .WORD ERR12-ERR11 .WORD ERR13-ERR12 .WORD ERR14-ERR13 .WORD ERR15-ERR14 .WORD 0 ;DUMMY FOR ERR14P .WORD ERR16-ERR15 .WORD 0 ;DUMMY FOR ERR15PW .WORD ERR18-ERR16) .WORD 0 ;DUMMY LENGTH FOR INSERTED TEXT  .WORD ERR20-ERR18& .WORD 0 ;A DUMMY FOR THE ADDED MESS .WORD ERR21-ERR20 .WORD ERR22-ERR21 .WORD ERR23-ERR22 .WORD 0 ;DUMMY .WORD ERR24-ERR23 .WORD 0 ;DUMMY .WORD ERR25-ERR24 .WORD 0 ;DUMMY .WORD ERR26-ERR25 .WORD 0 .WORD ERR27-ERR26 .WORD ERR30-ERR27 .WORD ERR31-ERR30 .WORD ERREND-ERR31R.PAGEO&.SBTTL TABLE OF MESSAGE START POINTERS;0;D(;NOW THE TABLE OF MESSAGE START POINTERS;0MESSST: .WORD PROMPT .WORD ABORT .WORD ERR10 .WORD ERR2T .WORD ERR3D .WORD ERR3B .WORD ERR4 .WORD ERR4B .WORD ERR5 .WORD ERR6. .WORD ERR7R .WORD ERR7B .WORD ERR10 .WORD ERR11 .WORD ERR12 .WORD ERR13 .WORD ERR14 .WORD ERR14P .WORD ERR15 .WORD ERR15P .WORD ERR16 .WORD ERR17 .WORD ERR18 .WORD ERR19 .WORD ERR20 .WORD ERR21 .WORD ERR22 .WORD ERR22PR .WORD ERR23 .WORD ERR23P .WORD ERR24 .WORD ERR24PD .WORD ERR25 .WORD ERR25PT .WORD ERR26 .WORD ERR27 .WORD ERR30 .WORD ERR31;D.PAGE.SBTTL SUB DO DO QIO'S;;O5;SUBROUTINE TO SET UP A DIRECTIVE PARAMETER BLOCK ANDO ;DO A QIO.!;USED BY ALL PARTS OF THE PROGRAMR;CALLING SET UP IS;D ;R0= IO CODE;R1= LOGICAL DEVICE NUMBER;R2= POINTER TO START OF BUFFERR;R3= BUFFER LENGTH (IN BYTES)7;R4= PARAMETER 3;R5= PARAMETER 5;R;)QIO: MOV R0,IOCODE ;LOAD IO CODE INTO DPB MOV R1,IOLUN ;AND LUN # MOV R2,PAR1 ;LOAD PARAMETER #1 MOV R3,PAR2 ;LOAD PARAMETER #2 MOV R4,PAR3 ;LOAD PARAMETER #3 MOV R5,PAR5 ;LOAD PARAMETER 5T* MOV #QIOWT,-(SP) ;START OF DPB ONTO STACK EMT 377 ;GO TRAP RTS PC ;AND RETURN WHEN DONE;E;Y;L=;THIS IS THE DIRECTIVE PARAMETER BLOCK FOR THE QIO SUBROUTINER;L;C1QIOWT: .BYTE 3,12. ;WAIT QIO CODE AND BLOCK SIZEIOCODE: .WORD 0 ;I/O CODEIOLUN: .WORD 0 ;LOGICAL UNIT #T,IOEVPR: .BYTE 1,100. ;EVENT FLAG & PRIORITY0IOSADD: .WORD IOSTAT ;ADDRESS OF IOSTATUS BLOCKIODAST: .WORD 0  ;NO ASYNC TRAP ON DONEA#PAR1: .WORD 0 ;FIRST DEV PARAMETEREPAR2: .WORD 0 ;AND THE REST PAR3: .WORD 0V PAR4: .WORD 0S PAR5: .WORD 0O PAR6: .WORD 07;G.PAGE.SBTTL MISC DATA AREAS;O;;-;NOW THE DIRECTIVE PARAMETER BLOCK FOR ASSIGNF;T;Q/ASGDPB: .BYTE 7,4 ;DIRECTIVE CODE & BLOCK SIZE ASGLUN: .WORD 0 ;LOGICAL UNIT ##ASGNAM: .WORD 0 ;TWO CHAR DEV NAMELASGNUM: .WORD 0 ;DEVICE NUMBER0; ;E;F; ;R;NOW SOME VARIABLES ;T; .DATTIM: .BLKW 8. ;BUFFER TO RECEIVE DATE/TIME%DATDOS: .WORD 0 ;BUFFER FOR DOS DATE;'OUTATT: .WORD 0 ;ATTACH OUT DEV BUFFER ,INPATT: .WORD 0 ;ATTACH INP DEV BUFFER/FLAG$OUTNMO: .WORD 0 ;OCTAL OUTPUT DEV #INPNMO: .WORD 0 ;INPUT DEV #,OUTDEV: .WORD 0 ;OUTPUT DEVICE NAME (ASCII).OUTNUM: .WORD 0 ;OUTPUT DEVICE NUMBER (ASCII)#INPDEV: .WORD 0 ;INPUT DEVICE NAMEO%INPNUM: .WORD 0 ;INPUT DEVICE NUMBERR%FILEIN: .WORD 0,0,0 ;INPUT FILE NAMEM. .ASCII /ROL/ ;ROLLIN EXTENSION FOR TAPE READ .EVEN&FILEOU: .WORD 0,0,0 ;OUTPUT FILE NAME .ASCII /ROL/ ;EXT FOR MT WRITE .EVEN0MTNAME: .WORD 0,0,0,0,0 ;FOR FILENAME COMPARISON)MTSIZE: .WORD 8192. ;SIZE OF MT TRANSFER,BLKINP: .WORD 0 ;STARTING BLOCK FOR DK READ/BLKIHG: .WORD 0 ;HIGH BLOCK NUMBER FOR DP READD-BLKOUT: .WORD 0 ;STARTING BLOCK FOR DK WRITEV0BLKOHG: .WORD 0 ;HIGH BLOCK NUMBER FOR DP WRITE=OVFLAG: .WORD 0 ;DON'T POSITION TO EOT BEFORE STARTING WRITE,6CKFLAG: .WORD 0 ;FLAG FOR DISK READ AFTER WRITE CHECK LOOPCT: .WORD 0 ;COUNT FO LOOPS*LOOTOT: .WORD 0 ;MAX LOOP COUNT FOR DK/DP!IOSTAT: .WORD 0 ;IO STATUS BLOCK IOSTA2: .WORD 0 ;2ND HALF!JSTAT: .WORD 0 ;DIRECTIVE STATUS;"ERRCNT: .WORD 0 ;IO ERROR COUNTER#UIC: .BYTE 1,1 ;UIC (GROUP, OWNER)G"PCODE: .WORD 233 ;PROTECTION CODE+ENDOVF: .WORD 0 ;END OF VOLUME FLAG FOR MTD0MCRFLA: .WORD 0 ;FLAG FOR MCR ONE LINE COMMMANDMCRFL1: .WORD 0 'GETMCR: GMCR$ ;GET MCR DPB AND BUFFERA?BUFFER: .B00ٖږ-TADATADATALKW 8200. ;4K READ/WRITE BUFFER (PLUS 4 EXTRA WORDS)E .END STARTW; ;;COUNT FO LOOPS*LOOTOT: .WORD 0 ;MAX LOOP COUNT FOR DK/DP!IOSTAT: .WORD 0 ;IO STATUS BLOCK IOSTA2: .WORD 0 ;2ND HALF!JSTAT: .WORD 0 ;DIRECTIVE STATUS;"ERRCNT: .WORD 0 ;IO ERROR COUNTER#UIC: .BYTE 1,1 ;UIC (GROUP, OWNER)G"PCODE: .WORD 233 ;PROTECTION CODE+ENDOVF: .WORD 0 ;END OF VOLUME FLAG FOR MTD0MCRFLA: .WORD 0 ;FLAG FOR MCR ONE LINE COMMMANDMCRFL1: .WORD 0 'GETMCR: GMCR$ ;GET MCR DPB AND BUFFERA?BUFFER: .BzrvLTPDp@ @8@|f@:t @:!@:br@r!@:t@:@@:Fy@:@*a@:@ rPp ( '  bR~5 w   -3n $ b: $b,0 @84|f6pb:jn z:br~b|P ׭twb : 0:-MT-MM Z =" T w8= @ w$b L & : 0:, -DP-DP -DR-DR@-rDK -fDK -bMT-VMTtw-HMT-@MMw  7 V7 P- DP-DR </VO&f% X  $- - w w| wjr  n 0w| w` %H h D d 0 2`hlwT w6 -@ DPi$ w w w " , DK0:DK1:DKPTZ2:DK3:MT0:MM0:DP0:DP1:DP2:DR0:DR1:DR2:DR3:DK0:DK1:DK2:DK3:MT0:MM0:DP0:DP1:DP2:DR0:DR1:DR2:DR3: z:t d  %  J @  %r  0 $ -& MT- MMf F d 6   ^w7 .  0T:Fy,b  :w|h   ba"hp=   b D -  w:b ~b -  w-N MT-F " p:b -& -  Dw  4w:brbF:Fyv b  wV ~b - 7 7 7 7 7 -Z MT-R MM" br!(,>:brFb| -F DP-> DR f-2 DK -" MT- MM - DP- DR - DK -, -  w @7  - MT- MM97  V -   wL - - DP- DR    -   :!V:td:Fyt -N MT-F MM-: DP-2 DR  -  -0  .- ~-*:t8:FyP:dt:  w<  3b   2- reb   6:br>bl:tbl -r < pb  R -V > e4@ re0c@$:br,b^| D  00000b@-DP-  t >7 l- e w -lDR-:br bp:db@-LDP-xx  b` 7 -\D ^ B&b@-DP-&&  :bZ:brbb 7 -  e w @Z  re0c@]u7T  000000 :Z hT \ b - > |bP -Z | J<  se0b:br b6:>bp  ~000000E5$FWqB Ĕa~B`P ~  ue ~te 2 l ~ MT e  ROL>*** ROL Aborted due to error count exceeded: 00Օ&'4 *** ROL Bad output device name*** ROL Bad input device name*** ROL Failed to assign XX0:*** ROL Failed to attach XX0:*** R OL No such file on tape2 2 *** ROL Non-dos header--file skipped*** ROL Failed to detach XX0:*** ROL Bad device on input line*** ROL Can't find/write e ov on magtape  ! *** ROL Bad magtape file name  % *** ROL Error writing tape header 1 *** ROL Write failure on tape--status= 000000 * 1* *** ROL read failure on tape--status= 000000 X X *** ROL Write failure on disk starting at block # 00000*** ROL Read failure on disk starting at block # 00000*** ROL Illegal) function for non privileged terminali 3 *** ROL Can only xfer DP/DR to DP/DR or MM tape * * *** ROL Write failure on DP/DR starting at block #000000*** ROL Read failure on DP/DR starting at block #000000*** ROL Writo e check error on DP/DR starting at block #000000*** ROL Write check error on disk starting at block #000000-W*** ROL Must have 6-character tape file name*** ROL Can not restore to DP0: or DP1: fof*** ROL Warning *** last 80 blocks may be lost if source was DR disk*** ROL Warning unknown switch, ignored ,$ ("..765088<<,(D(n r   2 V p t # * Q X ^Rn Tr V X Z \ ^ ` b d2 fV hp jt l n p r t# v* xQ zX | ~ bN * \ b >f7w 7w dJ    *  \ b      >f <JROLb ROL 4 )$ ("..765088<<,(D(n r   2 V p t # * Q X ^Rn Tr V X Z \ ^ ` b d2 fV hp jt l n p r t# v* xQ zX | ~ bN * \ b >f7w 7w|r, dLL(Uz[qU,r'DRSYSYTISYTICL~TP)```OSYSYTISYTICL1'  R~5* w   -3 $ P ׭twF : 0:-MT-MMX Z =" T w8= @ w$J & : 0:, -DP-DP -DR-DR@-rDK -fDK -bMT-VMTw-HMT-@MMw N 7 V7 P- DP-DR </VO&f% X  - - wJ w|F wjr  n 0w| w` $F%H h D d 0wT w6 $J00ږ-TADATADATA-@ DPi$ w w w^ F" , DK0:DK1:DK2:DK3:MT0:MM0:DP0:DP1:DP2:DR0:DR1:DR2:DR3:DK0:DK1:DK2:DK3:MT0:MM0:DP0:DP1:DP2:DR0:DR1:DR2:DR3:   % F J @  %r J 0 $ -& MT- MMf F  d 6   ^w7 .  X L :w|  Q   D -  w: ~ -  w-N MT-F MMw -Z   ~w-D w>  -& -  Dw  4wv b K wVbN ~ - 7 7 7 7 7 -Z MT-R MM -F DP-> DR f-2 DK -" MT- MM - DP- DR - DK -, -  w @7  - MT- MM97  V -   wL - - DP- DR     -   -N MT-F MM-: DP-2 DR   -  -0 F .- ~- J w<  3   2- re   -r < p  R -V > e4@z re0c@t D  00000@-DP-  t >7 l- e w -lDR-@-LDP-xx  b` 7 -\D ^ B&@-DP-&&   7 -  e w @  re0c@]u7  000000 - > |P -Z | J<j  se0b~000000,E5$FWqB Ĕa~B`P ~  ue~teeT  ROL>*** ROL Aborted due to error count exceeded*** ROL Bad output device name*** ROL Bad input device name*** ROL Failed to assign XX0:*** ROL Failed to attach XX0:*** ROL No such file on tape*** ROL Non-dos header--file skipped*** ROL Failed to detach XX0:*** ROL Bad device on input line*** ROL Can't find/write eov on magtape*** ROL Bad magtape file name*** ROL Error writing tape header*** ROL Write failure on tape--status= 000000*** ROL read failure on tape--status= 000000*** ROL Write failure on disk starting at block # 00000*** ROL Read failure on disk starting at block # 00000*** ROL Illegal function for non privileged terminal*** ROL Can only xfer DP/DR to DP/DR or MM tape*** ROL Write failure on DP/DR starting at block #000000*** ROL Read failure on DP/DR starting at block #000000*** ROL Write check error on DP/DR starting at block #000000*** ROL Write check error on disk starting at block #000000*** ROL Must have 6-character tape file name*** ROL Can not restore to DP0: or DP1:*** ROL Warning *** last 80 blocks may be lost if source was DR disk*** ROL Warning unknown switch, ignored,$ ("..765088<<,(D(  < Y s w  < Z |  ? E z PV*7w 7w  d~ROLROL )00Օ&'400ږ-TADATADATA00Օ&'400 ږ-TADATADATA& &&f %@ %/%.%$ %ZEWq(a ~S%9Wq(~K &f&f s(f s(f&  %%% eR~$.U@=,00Օ&'4|r, dyy(Vz[qU2rvL'DRSYSYTISYTICLTICL~S|rTPS/```SYSYTISYTICLTICL1'  R~5* w   -3 $ P ׭twF : 0:-MT-MMX Z =" T w8= @ w$J & : 0:, -DP-DP -DR-DR@-rDK -fDK -bMT-VMTw-HMT-@MMw N 7 V7 P- DP-DR </VO&f% X  - - wJ w|F wjr  n 0w| w` $F%H h D d 0wT w6 $J-@ DPi$ w w w^ F" , DK0:DK1:DK2:DK3:MT0:MM0:DP0:DP1:DP2:DR0:DR1:DR2:DR3:DK0:DK1:DK2:DK3:MT0:MM0:DP0:DP1:DP2:DR0:DR1:DR2:DR3:   % F J @  %r J 0 $ -& MT- MMf F  d 6   ^w7 .  X L :w|  Q   D -  w: ~ -  w-N MT-F MMw -Z   ~w-D w>  -& -  Dw  4wv b K wVbN ~ - 7 7 7 7 7 -Z MT-R MM -F DP-> DR f-2 DK -" MT- MM - DP- DR - DK -, -  w @7  - MT- MM97  V -   wL - - DP- DR     -   -N MT-F MM-: DP-2 DR   -  -0 F .- ~- J w<  3   2- re   -r < p  R -V > e4@z re0c@t D  00000@-DP-  t >7 l- e w -lDR-@-LDP-xx  b` 7 -\D ^ B&@-DP-&&   7 -  e w @  re0c@]u7  000000 - > |P -Z | J<j  se0b~000000,E5$FWqB Ĕa~B`P ~  ue~teeT  ROL>*** ROL Aborte00ږ-TADATADATAd due to error count exceeded*** ROL Bad output device name*** ROL Bad input device name*** ROL Failed to assign XX0:*** ROL Failed to attach XX0:*** ROL No such file on tape*** ROL Non-dos header--file skipped*** ROL Failed to detach XX0:*** ROL Bad device on input line*** ROL Can't find/write eov on magtape*** ROL Bad magtape file name*** ROL Error writing tape header*** ROL Write failure on tape--status= 000000*** ROL read failure on tape--status= 000000*** ROL Write failure on disk starting at block # 00000*** ROL Read failure on disk starting at block # 00000*** ROL Illegal function for non privileged terminal*** ROL Can only xfer DP/DR to DP/DR or MM tape*** ROL Write failure on DP/DR starting at block #000000*** ROL Read failure on DP/DR starting at block #000000*** ROL Write check error on DP/DR starting at block #000000*** ROL Write check error on disk starting at block #000000*** ROL Must have 6-character tape file name*** ROL Can not restore to DP0: or DP1:*** ROL Warning *** last 80 blocks may be lost if source was DR disk*** ROL Warning unknown switch, ignored,$ ("..765088<<,(D(  < Y s w  < Z |  ? E z PV*7w 7w  d~ROLROL )00$Օ&'400,ږ-TADATADATA004Օ&'400<ږ-TADATADATA& &&f %@ %/%.%$ %ZEWq(a ~S%9Wq(~K &f&f s(f s(f&  %%% eR~$.U@=,SRRRRRRRRR@X&XHXlXtXX|X RRghRgRHUHUHUjUHUHUHUHU01234567SWAMLHCQFXBGIRVED"R4RFRXRhRxR~RR}~\/'"% ^_@><$=CQ.;-+*,BEFGKLNOPRSVWXUUUUU,V6VVVVV2VJTV6U0U(Q.r f\W^w ? Q P 7 ._ 7+  7"7 Tw r$Sԇ  yJSw7  !7XR 77w77%5 f  \  }b^7qmXRNN D tQ $S . 767 4w  $b   B` |% D _ |& \> r Lw 777UE  z n h >eb7R7LGǁ 04R׭5.&Uxpn7 ,N#ĝw)t!"RTE w7 4R 4R e0B7 J F: D@ RLFMP|yODnc. LBEN7MIOBIL:FP2 EM*TR"w 7p wf      h  `  % YhRR @X&XHXlXtXXX|X <3 P  f @  V 0 @ @  4  @, zz Rf&fw *RHXw R4"RFR"R <FR"R % ! XR  %4"R4FR4R v7`\-X @@@P@ @em. 7 w*w  4 $S @f \  m77 p(`  0700DFHI4Eu` A A ы |~  h fZ5   Z7jRR)8 @w:E w d S$ az +f&%Q%%R"$ t%"R Q RU  N,S @S e0 @ @S  Ne0, 7 7 7&e N @ e0  wR\D\\\\  \ re ee e @(   ,XRXRB     .TITLE SETODT .IDENT /M02A/;+ ; SETODT.PAT;B; PATCH TO FORCE 9-CHARACTER FILENAME TESTING FOR FLX DOS MAGTAPES;O;; THIS PATCH IS TO BE APPLIED TO MODULE SETODT FROM FLX.OLBB;T&; APPLIES TO RSX-11M VERSION 3.1 ONLY.;; 6-FEB-82, W. BURTON;- .PSECT .GLOBL O.UNTP.=.+312B312$:.=.+70 BCS 662$ ;GO CHECK FOR MORE 404$:;1.=.+40444$:).=.+216(662$:E* CMP O.UNTP,#12 ;COMPLETE FILENAME TESTING* BNE 404$ ;IF NE - NOT MAGTAPE (MT OR MM)+ CMP 16(R0),16(R2) ;CHECK LAST 3 CHARACTERST BEQ 444$ ;IF EQ - FOUND FILE JMP 312$A;  .ENDE 9-CHARACTER FILENAME TESTING FOR FLX DOS MAGTAPES;O;; THIS PATCH IS TO BE APPLIED TO MODULE SETODT FROM FLX.OLBB;T&; APPLIES TO RSX-11M VERSION 3.1 ONLY.;; 6-FEB-82, W. BURTON;- .PSECT .GLOBL O.UNTP.=.+312B312$:.=.+70 BCS 662$ ;GO CHECK FOR MORE 404$:;1.=.+40444$:).=.+216(662$:E* CMP O.UNTP,#12 ;COMPLETE FILENAME TESTING* BNE 404$ ;IF NE - NOT MAGTAPE (MT OR MM)+ CMP 16(R0),16(R2) ;CHECK LA .TITLE SETOUT .IDENT /M02A /;+ ; SETOUT.PAT;YH; PATCH TO FORCE 9-CHARACTER FILENAME TESTING DURING DIRECTORY OPERATION; 7; THIS PATCH IS APPLIED TO MODULE SETOUT FROM FLX.OLB-; ; 7-FEB-82, W. BURTON-;- .PSECTN .GLOBL O.UNTP.=.+312P312$:.=.+70 BCS 662$ ; CHECK FOR MORE404$:O;C.=.+40444$: ; FINISH NAME CHECK ;*.=.+2160'662$: ; COMPLETE THE FILENAME TESTINGM CMP O.UNTP,#12L) BNE 404$ ; IF NE, NOT MAGTAPE (MT OR MM)N, CMP 16(R0),16(R2) ; CHECK LAST 3 CHARACTERS BEQ 444$ ; IF EQ, FOUND FILE JMP 312$P .END; PATCH TO FORCE 9-CHARACTER FILENAME TESTING DURING DIRECTORY OPERATION; 7; THIS PATCH IS APPLIED TO MODULE SETOUT FROM FLX.OLB-; ; 7-FEB-82, W. BURTON-;- .PSECTN .GLOBL O.UNTP.=.+312P312$:.=.+70 BCS 662$ ; CHECK FOR MORE404$:O;C.=.+40444$: ; FINISH NAME CHECK ;*.=.+2160'662$: ; COMPLETE THE FILENAME TESTINGM CMP O.UNTP,#12L) BNE 404$ ; IF NE, NOT MAGTAPE (MT OR MM)N, CMP 16(R0),16(R2) ; CHECK LAST 3 CHAR1 TCP > A program to do TAPE copies from LUN 1 to LUN 2 in Image Mode  MCR>TCP  2 LUN 1 is MT: - LUN 2 is MM: (may be Re-assigned) B No Tape Positioning is done prior to starting, (on either drive.) ( Maximum record size = 30000 (10) bytes.  All Errors are IGNORED D Copying is continued until 2 successive EOF's (an EOV) are detected > This purposely dumb program may copy tapes where others fail.7 It can, however, wipe out anything on the output tape.|} (S ?00Jږ-TADATADATAMTMMSYSYTICL:w=,N:w```00RFHI400Zږ-TADATADATA00bFHI400jږ-TADATADATA00rFHI400zږ-TADATADATA00HI40u& 0w& Ε;׭$׭ ׭׭37 && 4w& Ε& 4w& Ε l-h3TCP,TCPY/-SP=TCPY/ASG=MT:1ASG=MM:2 TASK=...TCP// .TITLE TCPY .IDENT /GCE000/.;TAPE COPY FROM LUN 1 TO LUN 2, IMAGEMODE WITH0;BIG BUFFERS. ALLOCATE 1 BUFFER OF HUGE SIZE AND';BOUNCE DATA THROUGH IT. IGNORE ERRORS.E*BUFFR: .BLKW 15000. ;SUITABLY GIANT BUFFER0;NO TAPE POSITIONING FIRST...USE TPP TO DO THAT. .MCALL EXIT$S,QIOW$S; .GLOBL TCPY,DOIT$IOIN: .WORD 0,0AIOOUT: .WORD 0,0 ;I/O STAT BLKSP%EOFFLG: .WORD 0 ;COUNTER OF EOF CHARSDB;START AT "DOIT" FOR 1600BPI OUT, OR "TCPY" TO LEAVE DENSITY AS IS&;(USE DGT TO SET UP VIA 'A' COMMAND.)_00-TADATADATA;DOIT:  .IF DF,DO16006 QIOW$S #IO.STC,#INLUN,#1,,,,<#4000> ; SET TO 1600 BPI .ENDCTCPY:L< QIOW$S #IO.RLB,#1,#1,,#IOIN,,<#BUFFR,#30000.>;READ A RECORD BCS LOSE ;LOSE IF NO DRIVER;IOIN = BYTES SEEN?;CHECK FOR EOF, AND IF SEEN, COUNT IT AND WRITE TO OUTPUT TAPE. ,;OTHERWISE WRITE DATA OUT. ON 2ND EOF, EXIT. .MACRO ETST ERR CMPB IOIN,#ERRB BEQ DOEOF .ENDM# ETST IE.EOF ;1 ENDFILE SEEND7 ETST IE.EOV ;END OF VOLUME (2 EOF ON TAPE) SEEN(% ETST IE.EOT ;END OF TAPE SEEN CMPB IOIN,#IE.PRI BNE 1$O EXIT$ST1$:L CLR EOFFLG ;SAY GOT DATA6! MOV IOIN+2,R0 ;GET BYTES READ IN.> QIOW$S #IO.WLB,#2,#2,,#IOOUT,,<#BUFFR,R0> ;WRITE WHAT WE READ BR TCPY#DOEOF: QIOW$S #IO.EOF,#2,#2,,#IOOUTE# INC EOFFLG ;COUNT EOFS CONSECUTIVEO CMP EOFFLG,#2 BLT TCPYW LOSE: EXIT$S .END DOIT EXIT. .MACRO ETST ERR CMPB IOIN,#ERRB BEQ DOEOF .ENDM# ETST IE.EOF ;1 ENDFILE SEEND7 ETST IE.EOV ;END OF VOLUME (2 EOF ON TAPE) SEEN(% ETST IE.EOT ;END OF TAPE SEE TPC - Fast Tape Copyr ====================o Users' Guidea ============g+ (Version 1.50, May 1983)g? This program will copy a complete magtape to a Files-11 disklF and store it there in a special image mode, from which it can createB one or more copies of the tape (must faster than FLX ever could).E BIGTPC is not only able to do this, but also will handle any blocke; size on tape up to 4200. bytes (big enough for BRU tapes).sH If it is desired to support larger BIGTPC block sizes, it is possibleG to reduce the number of BIGTPC buffers (and the buffer headers) and tooH reduce the disk buffer count of blocks. This works well with the numberH of disk blocks reduced to 8., the number of BIGTPC buffers reduced fromH 4 to 3, and the size increased to 11000. bytes, supporting image copiesI of such formats as VMS BACKUP or UNIX TAR tapes. Note however that wherecJ these counts are changed, BIGTPC may not terminate correctly when writingG a container file from another version. You may have to abort and writeuL EOFs with another utility. If you have a tape and recreate container files, there will be no trouble. The command format is:-- TPC Output-filespec=Input-filespecfF where one of the 'filespecs' must be a magtape device (e.g. MT:) and3 the other the name of an image file on disk.  Legal switches are:- F /BL:nnnn - Specifies an initial allocation specification for@ the image file if a disk is the output device. Defaults to 200.F /SA:nnnn - Specifies a secondary allocation specification for@ the image file if a disk is the output device. Defaults to 50.-B /CO - Specifies that the disk file is to be contiguousA /HD - Indicates High Density (1600 BPI) tape is to bea: written. (For TE16, tape is read at the proper density: automagically.) This permits a container file from one) density to be written out in another.i> /NR - Specifies NO positioning of the tape prior to the2 start of copying. This will allow TPC to merge6 several backup collections on a single output tape if used with care.B /VE - Verify the transfer. After the copy (in either direction); is made, the tape is rewound and both the tape and fileB are read and compared.> /CM - Compare the tape with an existing TPC file. Note that= the "transfer" can be in either direction. That is, the ? tape specification can be on either side of the equal sign. = *** NOTE *** The /VE & /CM options are only implementedP: for "vanilla" tape/disk/tape transfers. Use of these7 switches with any of the "exotic" copy modes is notfA supported and may cause undesired effects. This restrictions$ may be removed at a future date.; After the end of a copy, TPC will write 4 EOF records andx9 backspace so that it will be positioned after the firste4 EOF on tape. This will ensure that a second ba00HI4ckup9 done with the /NR switch will correctly copy onto a FLXE tape in readable fashion.aN /SC:nnnn - Sets tape characteristics to nnnn (octal), to allow read orJ write of tapes with even parity, 556BPI, etc. If the /HDJ switch is used, the high density bit is ORed in with the9 nnnn value specified in the /SC switch.OI /AN - Specifies possible ANSI format tape. If TPC sees this switch 9 it will look for ANSI label records and permit copiesw; even where the tape has null files and hence double EOF 9 before the real end of tape. Only 80 byte records arei8 examined and EOFs are treated specially only between< HDR2 and EOF2 (or EOV). The headers are assumed to be in< ASCII unless the switch /EB is given, in which case they: are assumed to be in EBCDIC. If the tape is not really6 an ANSI format tape, the TPC copy operation is not; changed. Thus the /ANsi switch may be used on a tape ofa unknown format.t1 The default is /AN, and to force BIGTPC NOT tod: look for ANSI labels (looking normally only at 80 byte; records unless the /RT subswitch is used), use the /-ANl switch.nB /EB - This subswitch of the /AN switch forces on ANSI label: checks but causes TPC to look for EBCDIC header labels; rather than ASCII. Note that TPC looks for either ASCIIn7 or EBCDIC, not both. The default is not to look fornA ANSI labels and end copy at double EOF; the /AN or /EB switcho. settings allow some modifications to this.A /RT - Use RT11 type "ANSI" labels. RT11 may not make labele< records 80. bytes long, and if you have RT11 tapes, the9 ANSI checks will normally ignore the RT11 ANSI labelsi: unless you use this switch. It causes BIGTPC to ignore; length of records and checks everything to see if it isC? an ANSI label record. It is not a very good default because : it probably can be fooled easily but may be needed for RT11 tapes.s@ /ER - Specifies that TPC will ignore errors on tape. This9 specifically means that all errors except EOT/EOV/EOF 8 will be ignored. This is quite useful for recovering< data from tapes which are old and full of errors, or for6 writing an output to a tape with bad spots (though6 it won't cure bad spots and this method of writing. anyway is not necessarily a good idea...).E /FR - Rewind the tape after copying to it. Note the /NR switchb? applies to BEFORE the tape is used and inhibits positioning ; at that time. The /FR switch will rewind the tape AFTER  writing to it.D /TR - This switch allows BIGTPC to read a disk to a container; file as though it were a tape. It implies BIGTPC should 9 act as though the input device were a tape even if itt? is not. BIGTPC will need to know the size to copy (defaultso< to 494. blocks, the size of an RX01) and the start block: number (defaults to 0,0) as octal numnbers in the form< low:high (see /SZ and /LO switches). The input device is; copied 1 block at a time. The normal "control" features 9 like density, rewind, etc., are suppressed UNLESS thed8 /CT switch is used. Their effect is not likely to be meaningful.oC /TW - This switch allows BIGTPC to write a container file tos= a disk as though the disk were a tape (on the output side = of the command line). It is the inverse of the /TR switchu. and needs the /SZ and /LO information too.H /SZ:low:high - This switch sets the device size for /TR, /TW, and; /IM copies, in 2 words of block counts. Note the numbere< of blocks is given, not the last block number, so a disk; with 494 blocks is specified as /SZ:494., the high sizel1 defaulting to 0. Default value is /SZ:494.:0.tG /LO:low:high - This switch specifies the starting physical blocku9 of the disk to begin transfer from in /TR and /IM, ort< transfer to in /TW cases. This allows you to move blocks: around or to cop00-TADATADATAy only parts of a disk. The default is= 0:0, so you won't need to use /LO often unless you intendo to copy partial volumes.C /CT - This switch allows control-type QIO's to occur even ifs9 /IM, /TR, or /TW are specified. These QIO's do thingsD6 like rewind, write endfile, space forward or back,9 and set density as well as attach the LUNs. It is note< very meaningful for /TR or /TW unless you have a strange; device that nevertheless is really a tape (and it's noto= certain you can emulate it properly this way anyhow). For 8 /IM copies, it allows a tape to be the output device7 and to receive a blocked copy of a device in formatt< independent ways while still setting density, rewinding,: etc. Note the control QIOs are not error checked so if1 you try to rewind a disk, it'll not hurt you.wF /IM:low:high:blkfactor - This switch allows BIGTPC to copy data9 in image mode directly from one device to another. Itl: does not operate AST driven in this mode as it does in< all others, but uses all buffers as one large I/O buffer9 permitting I/O transfers of up to about 72. blocks at 7 a time. The low:high arguments are the block numbers8 to begin the output transfer to on the output device9 (/SZ specifies the length in blocks to move), and the 3 "blkfactor" argument is the number of blocks to 5 be transferred at each QIO$ to the output device.m7 This defaults to 8. so that if the output device ist6 tape, the buffers will be 4096. bytes long. If you4 specify a bigger blocking factor than BIGTPC can: handle, it will just use its maximum. Normal operation: will not issue any "write-EOF" operations, but if tape4 is the output device, the /CT switch will permit8 these controls to be done so the resulting tape will5 work (and the /FR switch, the /HD switch, and the  /SC switch will work).@ /FL:filnam - This switch works only with the /IM and /CT9 switches and will have no effect unless BOTH of thesee7 are specified. It causes BIGTPC to write a standard 9 DOS format (FLX format) label record before it writesl> an image file on tape, using "filnam" (up to 6 characters)3 as the filename. The full file specification is ? [1,1]filnam.OLB with standard DOS protection and a creation> date of 00-JAN-70. This permits the image file to co-exist> on a FLX tape (.OLB is the extension chosen since FLX will8 copy it in image mode). FLX can skip the nonstandard: file and make directories, read, or write on the tape,> allowing it to contain other interesting programs (perhaps< a copy of BIGTPC to read the images with, for instance).= Also, multiple files may be more easily kept on the tape.i8 On input, you must skip this record on tape prior to inputting the file.a= If /ER is specified, zero byte reads will NOT terminaten> copies (so sizes better be right!) and lengths copied will= be calculated from given block factors, not from returnedd actual byte counts.oB /NI - This switch ("Nibble In") allows /IM copies to read a@ disk 1 block at a time instead of using big QIOs of "blkfct"> blocks at a time. Thus, if there is a bad disk block, dataA on following blocks will not be lost. See the /IM switch doc.o for interaction with /ER. D /NO - This switch ("Nibble Out") allows /IM copies to write aA disk 1 block at a time. It is supplied also to aid in writinge@ to a disk with bad blocks, guaranteeing that not more than 1B block's data will be lost. Its interaction with /ER is as that= of /IM. The /NI and /NO switches apply only to the /IMageo mode copies of BIGTPC.> /HE - This switch causes BIGTPC to print a help message5 summarizing the action of all of its switches ando4 giving the defaults for the more important ones. So that, for instance,e TPC BACKUP=MT:K will create the file BACKUP (.TPC by default) from the magtape on MT:, andh TPC MT00HI4:=BACKUPF would then create an exact copy of the original magtape onto the tape now mounted on MT:.D Note that TPC will only handle one tape at a time and cannot handleD block sizes of greater than 4200 bytes without edit and rebuild. IfH the tapes are FLX format tapes, however, the TPCDIR program ([312,315])B may be used to list directories or extract copies of files in theE container file, though in a fairly cumbersone way. Otherwise, BIGTPCbJ acts as a format-independent tape copy to EOT (signalled by 2 consecutive EOFs). CAVEAT: J It is possible for a FILES-11 tape to have 2 EOFs in a row where a zero* length file is copied, yet not be at EOT.@ If the tape you are copying may be of this sort, use the /ANSIMswitch while copying (or the /EBCDIC switch if it came from an IBM site using3JEBCDIC labels). This will allow TPC to correctly handle double EOFs in theNmiddle of a file. If your tape does not have this pathology, TPC will functionAcorrectly also, so the /ANsi switch is a good one to set most allEDthe time unless you have some sort of pseudo-ANSI tape that may have(records starting with HDR2, EOV, or EOF.K If your tape was produced by RT11 PIP (possibly also under RSTS), you mayrJneed the /RT switch to successfully handle null files. The /ANsi switch is7now on by default; use /-AN to turn it off if you must.  c& TPC can report the following errors:-% 1. TPC -- Disk I/O error. Code = ntE TPC encountered an error while reading from/writing to the disk.a( 2. TPC -- Magtape I/O error. Code = nH TPC encountered an error while reading from/writing to the magtape.$ 3. TPC -- Command line input error: TPC encountered an error in reading the command line.% 4. TPC -- Command line syntax errornD TPC encountered an error when trying to parse the command line. 5. TPC -- Invalid switchG The command line contained a switch that TPC could not recognise,5 or a file specification that it could not parse.g% 6. TPC -- Open error on output file F A file was specified as output, but TPC encountered an error when it tried to open it.T$ 7. TPC -- Open error on input fileF A file was specified as input, but TPC encountered an error when it tried to open it. B *** NOTE *** When using the /VE or /CM switches, TPC may beC forced to reverse the input and output LUNs in order to do the A compare operation. During the compare phase, the disk filet@ will always be the "output" device, even though it is being read.- 8. TPC -- Specify 1 file & 1 magtape deviceoG The command line either specified magtape as both input and output< device, or a disk file as both input and output device.! 9. TPC -- Starting Verify pass. H The /VE switch was specified and the compare operation has started.10. TPC -- Compare OK.tC The compare operation specified by the /VE or /CM switches hast2 found the disk file and tape to be identical.111. TPC -- Compare error. Files are different.rD During the compare operation specified by either the /VE or /CM9 switches, the disk file and tape were not identical./12. TPC -- /VE and /CM Not valid at same time.tD The Verify and Compare options may not be specified at the sameF time. Use /VE to make a copy and verify it. Use /CM to verify an existing copy.E TPC tends to crash when it has an allocation failure while readingsE tape to disk. This will be fixed in the next release, to be on thea Fall 1983 RSX/IAS tape.E Any bugs, errors, or suggestions should be reported to the defaulteE TPC maintainer. No guarantee is made that they will acted on, etc.C Alan E. Frisbie Flying Disk Systems 3786 E. Mountain View Ave.o Pasadena, CA 91107 = (213) 577-2579 (Note: A forthcoming area code shuffle and anM1 impending move will make this number obsoletet! by 31-Dec-83, at the latest.)ailure while readingsE tape to disk. This will be fixed in t00-TADATADATA .Enable lc;$ .TITLE TPC - TAPE/DISK COPY UTILITY; .SBTTL INTRODUCTION; .IDENT /V01.70/;= .MCALL GCMLB$,GCML$,CSI$,CSI$1,CSI$2,CSI$SW,CSI$ND,DIR$,PUT$H .MCALL FDBDF$,FDAT$R,NMBLK$,WTSE$S,GET$,EXIT$S,FINIT$ ;JKN02! .MCALL QIOW$,OFNB$,CSI$SV,FSRSZ$ .MCALL ALUN$S,CLOSE$0 .MCALL QIOW$S,ASTX$S,FDOP$R,QIO$S,CLEF$S,SETF$S .NLIST BEX;+;); TPC -- Fast Tape/Disk/Tape Copy Utility;; Version 01.51;J; This routine will preserve any arbitrary format magtape in an image form@; on disk, or restore an image format file from disk to magtape.;IG; Its utility is its ability to drive the magtape at full speed. ThisIL; feature is useful when making many copies of DOS-11 magtapes. The RSX-11E; Files-11 file is compatible with FCS variable length, block spanned; record mode.;T;,; Reid L Brown 27-Oct-77;.; Modified by:;; G H Cohen, 21-Aug-785; 1) Insert a default value for file allocation size.u#; 2) Use .TRNCL in place of .CLOSE.a(; 3) Provide a means for file extension.6; 4) Attach to magtape unit and set density to 800BPI.;t ;+AF1 Alan E. Frisbie, 31-Jan-80F; When moving error codes to MTERR or DSKERR, use MOVB instead of MOV,G; followed by a MOVB #-1 if the result is negative. This corrects thei=; problem of error numbers being printed as a positive value.;e ;+AF2 Alan E. Frisbie, 12-Mar-80B; Enlarge buffer size to handle larrrrrrrge records (4200. bytes).,; This allows TPC to copy DSC and BRU tapes.;o$; gce02 Glenn C. Everhart, 15-Dec-81=; Add /ANsi switch to check for EOV as 1st 3 bytes in 80 byte8C; records seen. This should allow BIGTPC to copy ANSI tapes withoute; errors due to null files.BA; Add /SC:nnnnnn switch to allow one to set tape characteristicseA; to nnnnnn (in RSX format) to handle really strange tape formats D; Add processing to write 4 extra EOFs on tape at EOV and back-spaceB; over all but 1 EOF to permit easy appending to FLX format tapes.=; (The 4 EOFs will allow TPC input to stop fully when reading,; the tapes in.)=; Add /EB switch as subset of /ANsi switch, specifying EBCDICo1; labels. Note that /AN will check for EITHER sete!; depending on this but not both.l;B"; gce03 Glen C. Everhart, 3-Jan-83H; Add /RT11 switch to handle RT11 variant ANSI format (512 byte labels).C; Add /TR and /TW and associated logic for disk-disk copies in both C; directions. Improve help message to give defaults. Change defaultd'; to /ANsi and make switches negatable.i;a#; gce04 Glenn C. Everhart, (V01.40)dA; Add /FLX:NAME switch to allow creation of pseudo-FLX-type label !; record in [1,1] on output tape.t; ; JKN01 Jim Neeland, (V01.44)1; Add tape device "MF" to list to support TU78's.n; GCE04 Glenn EverhartA; Conditional $VAX will define a "BIGGERTPC" to handle records upe+; to 11000. bytes long (works fine on VAX).f;d,;+AF3 Alan E. Frisbie, 11-May-83 (V01.50).; Add /VE (Verify) and /CM (Compare) switches.B; Make TPC serially re-usable when switching Tape/Disk directions.7; Also do general cleanup of local symbols (using KED).n; &;JKN02 Jim Neeland, 3-Jun-83 (V01.51);; Add call to FINIT$ so files don't go to/from [0,0]! ;eM;GCE05 Glenn Everhart - add support for passing eov/eot to double eof beyond ; it (if any...);-;R; LOCAL MACROS;r$ .MACRO ERRMSG MESSAG,WHERE,?A,?B,?C BR CAA: .ASCII ^MESSAG^B: .EVENC: MOV #A,QIO+Q.IOPL MOV #B-A,QIO+Q.IOPL+2 DIR$ #QIO .IIF DF,WHERE JMP WHERE .ENDM ERRMSGa .MACRO PAUSEg CLEF$S #16. WTSE$S #16. .ENDM PAUSE .MACRO RESUME SETF$S #16. .ENDM RESUMEN;i; ALLOCATE FSR AREAV;5 FSRSZ$ 3 ; ALLOCATE 3 BUFFERS .page .SBTTL CSI & FCS DATA & BUFFERS;n.; FILE DESCRIPTOR BLOCKS & RELATED INFORMATION;bFDBST: ; START OF FDB'S#FDBINP::FDBDF$ ; DEFINE INPUT FDBA$FDBOUT::FDBDF$ ; DEFINE OUTPUT FDBFDBEND: ; END ADDR OF FDB'S8GCMBLK: GCMLB$ 3,TPC,,TILUN ; COMMAND LINE CONTROL BLOCK4INDFN: NMBLK$ TAPECOPY,TPC,,SY,0 ; DEFAULT FILENAME5OUTDFN: NMBLK$ TAPECOP00HI4Y,TPC,,SY,0 ; DEFAULT FILENAME ;E; LUNS;1INLUN= 1 ; INPUT FILE ON 1OUTLUN= 2 ; OUTPUT FILE ON 22TILUN= 5 ; GCML & QIO'S TO #5 (DEFAULT FROM TKB);B; COMMAND STRING INTERPRETER;C1CSIFLG: .WORD 0 ; FLAG WORD FOR COMMAND SWITCHESF&HLPMSK= 1 ; /HE - PRINT HELP MESSAGE#BLKMSK= 2 ; /BL - ALLOCATE BLOCKSB1SALMSK= 4 ; /SA - SECONDARY ALLOCATION (BLOCKS)3$CONMSK= 10 ; /CO - CONTIGUOUS FILE$HDMSK=20 ; /HD - 1600 BPI TAPE I/O)NRMSK=40 ; /NR - NO REWIND BEFORE STARTP7ERMSK=100 ; /ER - IGNORE ERRORS (EXCEPT END-TAPE,EOV)U>SCMSK=200 ; /SC:NNNNNN SET CHARACTERISTICS TO NNNNNN (OCTAL)8EVMSK=400 ; /EV = COPY TO EOV1/2, IGNORE IE.EOT/IE.EOV,ANSFLG: .WORD 0 ;FLAG NONZERO FOR ANSI TAPES3ANSCNT: .WORD 0 ;COUNT OF EOV1 OR EOV2 RECORDS SEENHAHDRLVL: .WORD 0 ;COUNT BUMPED UP BY HDR2 AND DOWN BY EOF2 OR EOV2KCSISW: CSI$SW HE,HLPMSK,CSIFLG' CSI$SW BL,BLKMSK,CSIFLG,SET,NEG,ALCTABU% CSI$SW SC,SCMSK,CSIFLG,SET,NEG,SCTABE' CSI$SW SA,SALMSK,CSIFLG,SET,NEG,SALTAB CSI$SW CO,CONMSK,CSIFLG,SET,NEG& CSI$SW EV,EVMSK,CSIFLG,SET,NEG ;GCE05 CSI$SW HD,HDMSK,CSIFLG,SET,NEGI CSI$SW NR,NRMSK,CSIFLG,SET,NEG  CSI$SW ER,ERMSK,CSIFLG,SET,NEG. CSI$SW AN,1,ANSFLG,SET,NEGF/ CSI$SW EB,2,ANSFLG,SET,NEG ;/EBCDIC LABEL FLAGT9 CSI$SW RT,4,ANSFLG,SET,NEG ;/RT11 VERSION OF ANSI FORMATE; NEW SWITCHES FOR COUNTSF; ALLOWS COPY OF DISK TO DISKH; /TR = TAPE IN READING TO FILES'; /TW = TAPE OUT WRITING TAPE FROM FILEI; EITHER ==> DISK-DISK8; /SZ:NNNNN:MMMMM=LENGTH (LOW:HIGH) OF COPY IF DISK-DISKD; /LO:NNNNN:MMMMM = START BLK (OCTAL, LO:HI) OF COPY ON NONFILE DISK/; /CT - ENABLE CONTROL ACCESSES (DENSITY, ETC.) ;C';gce04 new switches for image mode copyN; /IM:lo:hi:blkfct@; where lo and hi are octal output blk # and blkfct is number of?; 512 byte blocks to buffer onto the output device (default 8.)U CSI$SW TR,1,D2DMSK,SET,NEGO CSI$SW TW,2,D2DMSK,SET,NEGN! CSI$SW SZ,4,D2DMSK,SET,NEG,SZTABG" CSI$SW LO,10,D2DMSK,SET,NEG,LOTAB2 CSI$SW FR,20,D2DMSK,SET,NEG ;/FR=REWIND AFTER END CSI$SW CT,40,D2DMSK,SET,NEG# CSI$SW IM,100,D2DMSK,SET,NEG,IMTAB $ CSI$SW FL,200,D2DMSK,SET,NEG,FLXNMBA CSI$SW NI,400,D2DMSK,SET,NEG ;/NI = INPUT FILE READ 512 BYTES ATp ;A TIME (NIBBLE IN)D CSI$SW NO,1000,D2DMSK,SET,NEG ;/NO = OUTPUT FILE WRITE 512 BYTES AT& ;A TIME (NIBBLE OUT). /NI AND /NO ;WORK ONLY ON /IM COPIES.H CSI$SW CM,1,VFYMSK,SET,NEG ;+AF3 /CM = Compare tape with existing fileC CSI$SW VE,2,VFYMSK,SET,NEG ;+AF3 /VE = Verify Tape/Disk transfersT;G;F CSI$NDA< .GLOBL LOLO,LOHI,SZLO,SZHI,START,D2DMSK,FDBINP,FDBOUT,INVEC: .GLOBL OUTVEC,HELP,TPLHD,DSKLHD,DSKTTP,TPTDSK,MAGTST,WAITD .GLOBL ERROR,TAPEIN,DSKOUT,TPDKDQ,DSKIN,TAPOUT,DKTPDQ,NODADD,NODDELALCTAB: CSI$SV DECIMAL,ALLOC,2SALTAB: CSI$SV DECIMAL,SALOC,2SCTAB: CSI$SV OCTAL,SCVAL,2ISZTAB: CSI$SV OCTAL,SZLO,2 CSI$SV OCTAL,SZHI,2LOTAB: CSI$SV OCTAL,LOLO,2 CSI$SV OCTAL,LOHI,2IMTAB: CSI$SV OCTAL,IMLO,2 CSI$SV OCTAL,IMHI,2 CSI$SV DECIMAL,IMBF,2FLXNMB: CSI$SV ASCII,FLXNAM,6 CSI$NDCFLXNAM: .ASCII /IMGFIL/L;,<; FLX type label block (To write if image mode copy to tape);PLBLBK: .RAD50 /IMG/D .RAD50 /FIL/8 .RAD50 /OLB/ ;PICK A FILE TYPE FLX TREATS IN IMAGE MODE .BYTE 1,1 ;UIC [1,1]$# .WORD 233 ;STANDARD DOS PROTECTIONC@ .WORD 1 ;FORGET THE DATE OF CREATION ... DUNNO HOW TO DO EASILY4 .WORD 0 ;SPARE IN DOS, LAST 3 NAME CHARS IN RSX FLX;C; End of DOS label block;ISCVAL: .WORD 0 ;CHARAC. VALUE.M,ALLOC: .WORD -100. ; ALLOCATION VALUE [+/-]5SALOC: .WORD -50. ; SECONDARY ALLOCATION VALUE [+/-]D2DMSK: .WORD 0b SZHI: .WORD 0i!SZLO: .WORD 0 ;LENGTH HI,LO WORDSB LOHI: .WORD 0 ;LOW BLK # HI PARTLOLO: .WORD 0 ;AND LOW PARTP<ENDBK: .WORD 0,0 ;END LOGICAL BLOCK TO USE (SUM OF LO, SIZE)6ENDIO: .WORD 0,0 ;COUNT OF I/O DONES SEEN AT AST ENTRY IMHI: .WORD 0U IMLO: .WORD 0AIMBF: .WORD 8. ;BLOCKING FACTORT1VFYMSK: .WORD 0 ;+AF3 Verify and Compare switchesoKCMPPAS: .WORD 0 ;+AF3 0 = Normal copy pass, -1 = Compare pass in progressLISWTDEV: .WORD 0 ;+AF3 0 = Nothing, -00-TADATADATA1 = Switch devices for compare passW CSI$-CSI: .BLKB C.SIZE ; DEFINE THE CSI WORK AREAD .EVEN .page .SBTTL HELP MESSAGE & TEXTW; !; ERROR MESSAGE PROCESSING & HELP;; <QIO:: QIOW$ IO.WVB,TILUN,1,,IOSTAT,,<.-.,.-.,40,.-.,.-.,.-.>IOSTAT::.WORD 0,0TERRBUF: .BLKB 80.RHLPMSG: *.ASCIZ 'TPC - Tape / Disk utility program'8.ASCIZ ' This program will copy magtapes to RSX-11 disk'8.ASCIZ ' files and record them in a special image mode.'C.ASCIZ ' This allows very fast multiple copies of tapes to be made's5.ASCIZ ' from the disk image (much faster than FLX).' .IF NDF,$VAXE<.ASCIZ ' Maximum block size is 4200. bytes. per tape block.' .IFF =.ASCIZ ' Maximum block size is 11000. bytes. per tape block.'. .ENDC .ASCIZ ' '0.ASCIZ ' The command format is standard RSX-11:' .ASCIZ ' ';.ASCIZ ' TPC>outfile=infile[/BL:nnnn][/SA:mmmm][/CO][/HE]' .ASCIZ ' Where:'/.ASCIZ ' -One "file" must be a magtape device'i:.ASCIZ ' /BL:nnnn = An optional allocation specification').ASCIZ ' if disk is the output device.''=.ASCIZ ' /SA:mmmm = An optional secondary allocation amount').ASCIZ ' if disk is the output device.' +.ASCIZ ' /CO = Disk file to be contiguous'o.ASCIZ ' /HE = This help text' ..ASCIZ ' /NR = Do not rewind tape before use'4.ASCIZ ' /HD = Use high density (1600 BPI) on tape'<.ASCIZ ' /ER = Ignore input tape errors except EOT/EOV/EOF'5.ASCIZ ' /EV = Ignore End-Volume or End-Tape errors'i@.ASCIZ ' /AN = ANSI format tape, use EOV1 and EOV2 for endtape'4.ASCIZ ' /EB = EBCDIC labels (requires /AN switch)'=.ASCIZ ' /SC:nnnn Sets tape characteristics to nnnn (octal)' 8.ASCIZ ' /TR = Read disk as if tape, to file on output'5.ASCIZ ' /TW = Write file to disk as if tape output'C=.ASCIZ ' /SZ:low:high = Size in blks of disk to read on /TR' 9.ASCIZ ' /LO:low:high = Low blk number to start with on'p.ASCIZ ' nonfile disk'*.ASCIZ ' /FR = Rewind tape after writing'?.ASCIZ ' /RT = RT11 version of ANSI format (Not 80 byte lbls)'a5.ASCIZ ' /VE = Verify tape/disk transfer after copy'q4.ASCIZ ' /CM = Compare tape and existing disk file'?.ASCIZ ' /IM:lo:hi:blkfct = Image copy, output blk no (lo:hi)'e4.ASCIZ ' and block factor args (blkfct=8 default)'!.ASCIZ ' Image mode subswitches:'S9.ASCIZ ' /FL:filnam = Create FLX label first on tape of'' .ASCIZ ' filnam.OLB[1,1]<233>'5.ASCIZ ' /CT = Include control QIOS even if dsk-dsk'F>.ASCIZ ' /NI = "Nibble copy" In (read input in 1 blk a time)'?.ASCIZ ' /NO = "Nibble copy" Out (wrt output 1 blk at a time)'kE.ASCIZ ' Defaults: /AN/-HD/-EB/BL:100/SA:50/-CO/SZ:494.:0/LO:0:0/-CT'f HLPEND= .Z .EVEN0DSKERM: .ASCIZ 'TPC -- Disk I/O error. Code=%D'2MTERM: .ASCIZ 'TPC -- Magtape I/O error. Code=%D'=CMPERM: .ASCIZ 'TPC -- Compare error. Files are different.'e .EVEN .page! .SBTTL TAPE / DISK DATA & TABLESL;,G; DISK & TAPE OPERATIONS ARE ENTIRELY AST DRIVEN, USING LINKED LISTS TO'F; CONTROL THE SEQUENCE OF EVENTS TO BE FOLLOWED. ALL BUFFERS FOR BOTHG; INPUT & OUTPUT OPERATIONS ARE KEPT IN LINKED LISTS BY TYPES (INPUT OR-H; OUTPUT) AND ARE SCANNED AT EACH AST TO SEE WHAT WORK NEEDS TO BE DONE.; (; THE GENERAL FORMAT FOR A LIST NODE IS:;R(N.FWD = 0 ; WD: 0 [ LINK TO NEXT NODE ])N.BWD = 2 ; WD: 1 [ LINK TO PRIOR NODE ] )N.IOST = 4 ; WD: 2 [ IO STATUS WORD #0 ] ; WD: 3 [ IO STATUS WORD #1 ]+N.WRK = 10 ; WD: 4 [ TEMPORARY WORK VAR. ]S&N.BUF = 12 ; WD: 5 [ BUFFER ADDRESS ]&N.LEN = 14 ; WD: 6 [ BUFFER LENGTH ]-N.PTR = 16 ; WD: 7 [ CURRENT BUFFER POINTER]A,N.BKH = 20 ; WD: 10 [ HIGH ORDER BLOCK NO. ]+N.BKL = 22 ; WD: 11 [ LOW ORDER BLOCK NO. ]ON.SIZE = 24 ; SIZE OF NODE;. .IF NDF,$VAXA0DSKBKS= 20. ;+AF2 NO. OF BLOCKS IN DISK BUFFER .IFFN DSKBKS=8.O .ENDC4DSKBFS = DSKBKS*512. ; DISK BUFFER SIZE = 16 BLOCKS+DSKBF0: .BLKB DSKBFS ; ALLOCATE 1ST BUFFERI&DSKBF1: .BLKB DSKBFS ; & 2ND BUFFER .IF NDF,$VAXV:TPBFS = 4200.+2 ;+AF2 TAPE BUFFER SIZE = 1 BLOCK + 1 WORD .IFF TPBFS=11000.+2.] .ENDC#TPBF0: .BLKB TPBFS ; TAPE BUFFER 1R#TPBF1: .BLKB TPBFS 00—HI4; TAPE BUFFER 2B#TPBF2: .BLKB TPBFS ; TAPE BUFFER 3 .IF NDF,$VAX #TPBF3: .BLKB TPBFS ; TAPE BUFFER 4"IMBFMX=<2*DSKBKS>+<4*> .IFFB"IMBFMX=<2*DSKBKS>+<3*> .ENDC& .PRINT IMBFMX ;MAX BUFFER FOR/IM MODE;I; CONTROL VARIABLES0;B,DSKFCT: .WORD DSKBKS ; DISK BLOCKING FACTOR&INVEC: .WORD 0 ; CURRENT INPUT VECTOR(OUTVEC: .WORD 0 ; CURRENT OUTPUT VECTORAOUTDVF: .WORD 0 ; OUTPUT DEVICE FLAG(-1 FOR MAGTAPE, 0 FOR DISK)L#INDVF: .WORD 0 ; INPUT DEVICE FLAGL>MAGDEV: .WORD "MM,"MS,"MT,"MF,0 ; MAGTAPE DEVICE LIST ;JKN014IOST: .WORD 0,0 ; I/O STATUS BLOCK FOR SIMPLE QIO'S&FLAGS: .WORD 0 ; DISK & MAGTAPE FLAGS%MTERR: .WORD 0 ; MAGTAPE ERROR VALUE>&DSKERR: .WORD 0 ; DISK ERROR VARIABLE; A;LITERALS FOR LABEL STRING SEARCHES FOR /ANSI SWITCH (MODIFIED TOB";EBCDIC VALUES IF /EB SWITCH SEEN)LITEO: .ASCII /EO/LITF2: .ASCII /F2/LITVV: .ASCII /VV/LITHD: .ASCII /HD/LITR2: .ASCII /R2/;F&; FLAG VALUES FOR DISK & MAGTAPE FLAGS; EOV = 1 ; END OF VOLUME SEENEOF = 2 ; END OF FILE SEENERR = 4 ; ERROR ENCOUNTEREDTDONE = 10 ; TRANSFER DONELCMPERR = 20 ; Compare error.;D; VFYMSK flags;ECMPFLG = 1 ; Do a compareA(VFYFLG = 2 ; Do a verify after this copy;R .page;E; DISK NODE LIST;A;DSKLHD: .WORD DSKLHD ; DISK NODE LISTHEAD, FORWARD POINTERU$ .WORD DSKLHD ; & BACKWARD POINTER1 ; NOTE: LISTHEAD & LISTS MUST REMAIN TOGETHER:?DSKLST: .WORD 0,0,0,0,0,DSKBF0,DSKBFS,DSKBF0,0,0 ; DISK NODE #0A8 .WORD 0,0,0,0,0,DSKBF1,DSKBFS,DSKBF0,0,0 ; DISK NODE #1 DSKLND= .N; ; TAPE NODE LIST;EATPLHD: .WORD TPLHD ; TAPE NODE LISTHEAD ADDRESS, FORWARD POINTERF# .WORD TPLHD ; & BACKWARD POINTERp:TPLST: .WORD 0,0,0,0,0,TPBF0,TPBFS,0,0,0 ; TAPE BUFFER #04 .WORD 0,0,0,0,0,TPBF1,TPBFS,0,0,0 ; TAPE BUFFER #14 .WORD 0,0,0,0,0,TPBF2,TPBFS,0,0,0 ; TAPE BUFFER #2 .IF NDF,$VAXR4 .WORD 0,0,0,0,0,TPBF3,TPBFS,0,0,0 ; TAPE BUFFER #3 .ENDCTPLND= . .page1 .SBTTL PARSE INPUT SPECIFICATION & CHOOSE ACTION0;0.; GET COMMAND LINE, PARSE IT & START ALL FILES;NHBEGIN: FINIT$ ;Once-only call to init FCS use ;JKN02START:4 CLR VFYMSK ;+AF3 Clear VErify and CoMpare switches1 CLR CMPPAS ;+AF3 Set normal copy pass operation0START2:0+ CLR SWTDEV ;+AF3 Clear switch-device flag8 BIT #VFYFLG,VFYMSK ;+AF3 Second time thru, do a verify? BEQ 10$ ;+AF3 No, skip0 MOV #-1,CMPPAS ;+AF3 Yes, set compare-pass flag/ CLR VFYMSK ;+AF3 Make sure we only do it once > ERRMSG ;Not really an error...10$:: ALUN$S #TILUN,#"TI,#0 ; ENSURE TERMINAL ASSIGNED ON TILUN: CALL CLOSE ; INSURE ALL FILES ARE CLOSED (IGNORE ERRORS)START3:  MOV #DSKLHD,DSKLHD$ MOV #DSKLHD,DSKLHD+2 ;SET UP QUEUES MOV #TPLHD,TPLHD24 MOV #TPLHD,TPLHD+2 ;ANEW IN CASE SCREWED UP BEFORE' MOV #FDBST,R0 ; POINT TO THE FIRST FDBo610$: CLR (R0)+ ; CLEAR OUT THE FILE DESCRIPTOR BLOCKS CMP R0,#FDBEND ; AT END YET? BLO 10$ ; NO - CONTINUEe, MOV #"EO,LITEO ;SET UP ANSI SEARCH LITERALS MOV #"F2,LITF2o MOV #"VV,LITVV. MOV #"HD,LITHD  MOV #"R2,LITR2E% MOV #1,ANSFLG ; SAY ANSI MODE ;GCE02 - CLR ANSCNT ; AND ZERO ANSI EOVs SEEN ;GCE02R( CLR HDRLVL ; ZERO HEADER LEVEL COUNTER- CLR CSIFLG ; RESET THE COMMAND STRING FLAGSP% CLR INDVF ; RESET INPUT DEVICE TYPEE' CLR OUTDVF ; RESET OUTPUT DEVICE TYPET/ MOV #-100.,ALLOC ; RESET THE ALLOCATION AMOUNTH1 MOV #-50.,SALOC ; RESET THE SECONDARY ALLOCATIONY CLR D2DMSK$+ MOV #494.,SZLO ; DEFAULT RX01 SIZE FOR /SZN CLR SZHII CLR LOLOV CLR LOHI ; START WITH BLK 0 CLR IMHII CLR IMLO#.IF GE, IMBFMX-8.,IMMM=8.S.IFF IMMM=IMBFMX .ENDCA#.PRINT IMMM ;DEFAULT /IM BLK FACTOR07 MOV #IMMM,IMBF ; Set block factor default for /IM copy * TST CMPPAS ;+AF3 Is this a compare pass?< BNE 30$ ;+AF3 Yes, don't read a command line - use old one% GCML$ #GCMBLK ; READ A COMMAND LINEH! BCC 30$ ; CONTINUE IF NO ERRORSL/ CMPB #GE.EOF,G.ERR(R0) ; END OF COMMAND INPUT?$$ BNE 20$ ; NO - COMMAND INPUT ERROR EXIT$S-20$: ERRMSG L JMP STARTB30$: CSI$1 #CSI,GCMBLK+G.CMLD+2,GCMBLK+G.CMLD ; PARSE COMMAND LINE! BCC 50$ ; CONTINUE IF NO ERRORSF.40$: ERRMSG JMP START; H; Now that we have a valid command line, parse it to get any combination-; of switches on both input and output sides.K; 50$:4 Tst CMPPAS ;+AF3 Are we already in a compare pass?& BNE 58$ ;+AF3 Yes -- skip this stuff;T> CSI$2 R0,INPUT,#CSISW ;+AF3 Parse just for /CM & /VE switches? CSI$2 R0,OUTPUT,#CSISW ;+AF3 Parse just for /CM & /VE switchesSC CMP #CMPFLG!VFYFLG,VFYMSK ;+AF3 Both compare and verify specified?T BNE 52$ ;+AF3 No, OK: ERRMSG ,START52$:C BIT #CMPFLG,VFYMSK ;+AF3 Does the user want to compare tape/file??  BEQ 54$ ;+AF3 NO, Skip0 MOV #-1,CMPPAS ;+AF3 YES, Set compare pass flag& CLR VFYMSK ;+AF3 and remove switches54$:E CSI$1 #CSI,GCMBLK+G.CMLD+2,GCMBLK+G.CMLD ;+AF3 RE-PARSE COMMAND LINE ; 58$:; C TST SWTDEV ;+AF3 Do we need to switch input & output for compare?c BEQ 60$ ;+AF3 NO, thank godKJ CSI$2 R0,INPUT,#CSISW ;+AF3 For compare, magtape must be the input device BR 88$ ;+AF3 Continuea60$:: CSI$2 R0,OUTPUT,#CSISW ; PARSE OUTPUT FILESPEC & SWITCHES88$: BCC 95$ ; NO ERRORS - CONTINUE ERRMSG P JMP START%95$: BITB #,C.STAT(R0)A BEQ 98$ ;+AF3 OK, skip Jmp 40$ ;+AF3 Report error ; BNE 40$C98$:; 2;SET UP /EBCDIC SUBLITERALS IF /EB SWITCH WAS SEEN;3. BIT #2,ANSFLG ;DID HE SET THE /EBCDIC SWITCH? BEQ 100$ ;IF EQ NO+ BIS #1,ANSFLG ;IF SO FORCE ON /ANSI SWITCHr9 MOV #153305,LITEO ;SET UP EBCDIC LITERALS FOR LABEL TEXTC MOV #171306,LITF2 MOV #162745,LITVV MOV #142310,LITHD MOV #171331,LITR2100$:9! BIT #4,ANSFLG ;/RT11 SWITCH SET?  BEQ 110$ ;IF EQ NOh MOV #"F1,LITF2* MOV #"R1,LITR2 ;LOOK FOR HDR1, EOF1 IF SO110$:+- BIT #HLPMSK,CSIFLG ; DID THE USER WANT HELP?N BEQ 120$ ; NO - CONTINUE JMP HELP ; GIVE HIM HELP120$:E. BIT #CONMSK,CSIFLG ; IS FILE TO BE CONTIGUOUS BNE 150$ ; IF NE, YES  TST ALLOC ; IS ALLOC NEGATIVEN BMI 160$ ; IF YES SKIP NEG ALLOC ; NEGATE ITI BR 160$$150$: TST ALLOC ; IS ALLOC POSITIVE BPL 160$ ; IF YES SKIP NEG ALLOC ; NEGATE ITT.160$: BNE 170$ ; (ALWAYS ALLOCATE SOMETHING!)' MOV #200.,ALLOC ;START AT 200 AT LEASTM6170$: TST SALOC ; BUT NEVER LET SALOC REMAIN NEGATIVE BPL 180$ ; IF POSITIVE, SKIP NEG SALOC ; NEGATE IT 4180$: BNE 190$ ;ALSO ALWAYS HAVE A SECONDARY ALLOC. MOV #50.,SALOC >190$: FDAT$R #FDBOUT,#R.VAR,#FD.CR,,ALLOC,SALOC ; INIT THE FDB FDOP$R R0,#OUTLUN) MOV R0,R1 ; R1 = FILENAME BLOCK ADDRESSE ADD #F.FNB,R1 ; ...- MOV #CSI+C.DSDS,R2 ; R2 = DATASET DESCRIPTOR;/ MOV #OUTDFN,R3 ; R3 = DEFAULT FILENAME ADDRESS  BIT #102,D2DMSK! BEQ 200$ ;NORMAL IF NOT DSK-DSKC CALL .PRSDV ;PARSE DEVICE INFO BR 210$1200$: CALL .GTDID ;GET DEFAULT DIRECTORY ;;;GCE03I- CALL .PARSE ; PARSE THE FILENAME BLOCK INFO$ 210$: BCS 250$ ; ERROR ON PARSE: BIT #102,D2DMSK ; IS THIS WRITING A "TAPE" (REALLY DISK?)+ BNE 220$ ; IF SO FORGET DEVICE NAME CHECK ' CALL MAGTST ; TEST FOR MAGTAPE DEVICEL* BCC 230$ ; OUTPUT FILE IS DISK - OPEN IT3220$: DEC OUTDVF ; OUTPUT IS MAGTAPE - SO INDICATER; ;=L;+AF3 Here we do something really crazy. Rather than write the compareH;+AF3 code for both tape-to-disk and disk-to-tape, I wrote it only forG;+AF3 tape-to-disk. When a compare (verify) is called for when theJ;+AF3 user specifies disk-to-tape, we simply switch the output and input;+AF3 devices.;+AF30H;+AF3 This is done by testing to see if the output device is a disk.J;+AF3 If not, a flag is set and the command line is re-parsed with CSI$2A;+AF3 called with "OUTPUT" and "INPUT" reversed. Clever, huh?rN;+AF3 I was afraid you would say that. Oh well, at least it seems to work.;d/ TST CMPPAS ;+AF3 Doing compare operation now?t BEQ 260$ ;+AF3 No, skipv, MOV #-1,SWTDEV ;+AF3 Set Switch Device flag6 JMP START3 ;+AF3 and go parse the 00җHI4command line again0 ;+AF3 with input and output devices switched;e230$:t& TST CMPPAS ;+AF3 Doing compare pass? BEQ 240$ ;+AF3 NO, normal copyE OFNB$ R0,#FO.RD,#OUTLUN,,,#FD.RWM ;+AF3 Open for read during compareU BCC 270$ ;+AF3 Skip if OKe BR 250$ ;+AF3 else error240$:u# OFNB$ R0,#FO.WRT,#OUTLUN,,,#FD.RWMi" BCC 260$ ; CONTINUE IF NO ERRORS/250$: ERRMSG A JMP START8260$: MOV #1002,F.RSIZ(R0) ; INIT THE RECORD SIZE IN FDB+ CLR F.FFBY(R0) ; INDICATE NEXT BLOCK EMPTY 270$: 7 TST SWTDEV ;+AF3 Do we need to switch input & output?C BEQ 280$ ;+AF3 No, thank godG CSI$2 #CSI,OUTPUT,#CSISW ;+AF3 For compare, disk must be output deviceA BR 290$ ;+AF3 Continue280$:6 CSI$2 #CSI,INPUT,#CSISW ; PARSE INPUT FILE & SWITCHES290$:u$ BCC 300$ ; NO ERROR IF CARRY CLEAR JMP 80$ ; REPORT SWITCH ERROROB300$: BITB #,C.STAT(R0) ; NO WILDCARDS, ETC ALLOWED BEQ 310$ ; OK - CONTINUE JMP 40$ ; REPORT IT AS ERROR,310$: BIT #HLPMSK,CSIFLG ; DID HE WANT HELP? BEQ 320$ ; NO - CONTINUE JMP HELP ; YES - GIVE HIM HELP>320$: FDOP$R #FDBINP,#INLUN,,#INDFN ; DECLARE LUN TO INPUT FDB MOV R0,R1 ; R1 = FNB ADDRESS ADD #F.FNB,R1 ; ...- MOV #CSI+C.DSDS,R2 ; R2 = DATASET DESCRIPTOR;& MOV #INDFN,R3 ; R3 = DEFAULT FILENAME BIT #101,D2DMSK BEQ 330$C CALL .PRSDV BR 340$*330$: CALL .GTDID ; GET DEFAULT DIRECTORY- CALL .PARSE ; PARSE THE FILENAME BLOCK DATA0 340$: BCS 360$ ; ERROR ON PARSE; BIT #101,D2DMSK ; IS THE INPUT A DISK LOOKING LIKE A TAPE??" BNE 350$ ; IF SO, FLAG FOR LATER& CALL MAGTST ; SEE IF THIS IS MAGTAPE& BCC 370$ ; NO - TRY TO OPEN THE FILE3350$: DEC INDVF ; INDICATE INPUT DEVICE IS MAGTAPE. BR 380$ ; CONTINUE.360$: ERRMSG JMP START:370$: OFNB$ R0,#FO.RD,,#INLUN,,,#FD.RWM ; (If not magtape) BCS 360$ ; ERROR ON OPEN;GJ; DETERMINE WHETHER WE HAVE CORRECT COMBINATION OF DISK & MAGTAPE DEVICES:; I.E. 1 DISK & 1 MAGTAPE;T-380$: MOV OUTDVF,R0 ; R0 = OUTPUT DEVICE FLAG & MOV INDVF,R1 ; R1 = INPUT DEVICE FLAG BIT #100,D2DMSK& BNE 390$ ; /IM COPY IS BOTH DEVICES.2 XOR R0,R1 ; IF NOT -1, THEN WE HAVE 2 OF A KIND! BMI 390$ ; GOOD! - CONTINUE 7 ERRMSG ,STARTt390$:J;S;SET UP ENDBK BLOCK0;O MOV LOLO,ENDBK+2W MOV LOHI,ENDBKp ADD SZLO,ENDBK+2R ADC ENDBK9 ADD SZHI,ENDBK ;NOW HAVE ENDBK AS (HI,LO) AS QIO$ NEEDS.S; MOV LOLO,ENDIO+2 ;COPY START BLK # FOR COUNT OF DONE I/O'S  MOV LOHI,ENDIO0 BIT #100,D2DMSK ;/IMAGE MODE?" BNE 410$ ;IF SO HANDLE SPECIALLY TST CMPPAS ;+AF3 Compare pass?8 BNE 400$ ;+AF3 Handled as special case of tape-to-disk TST R0 ; WHICH WAS IT? BPL 400$ ; OUTPUT IS DISKT JMP DSKTTP ; OUTPUT IS MAGTAPE 400$: JMP TPTDSK ; TAPE-TO-DISK#410$: JMP IMGMOD ; IMAGE MODE COPYW .page;,H; MAGTST - SUBROUTINE TO TEST FOR MAGTAPE AS THE REDIRECTED DEVICE WHICH(; WAS ASSIGNED IN THE FILENAME BLOCK.;C0MAGTST: MOV #MAGDEV,R5 ; POINT R5 TO DEVICE LISTC10$: CMP (R5)+,N.DVNM(R1); TEST DEVICE NAME FIELD OF FILENAME BLOCKL- BEQ 20$ ; GOT IT! - ITS MAGTAPE (SET CARRY)  TST (R5) ; ANY MORE ENTRIES? BNE 10$ ; YES - CONTINUE RETURNI20$: SEC ; INDICATE MAGTAPET RETURNK; #; CLOSE - CLOSE FILES AT END OF RUNK; CLOSE:" TST INDVF ; Input device a file?& BNE 10$ ; If NE, no - don't close it# CLOSE$ #FDBINP ; Close input fileE BR 20$ ; Check output file10$:6 QIOW$S #IO.KIL,#INLUN,#1 ; Else kill I/O just in case8 QIOW$S #IO.DET,#INLUN,#1 ;+AF3 and Detach from the tape20$:' TST OUTDVF ; Is output device a file? $ BNE 30$ ; If NE no, don't close it% MOV #FDBOUT,R0 ; Point to output FDB % CALL .TRNCL ; Truncate and close it; BR 40$ ; ExitT30$:7 QIOW$S #IO.KIL,#OUTLUN,#1 ; Else kill I/O just in case:9 QIOW$S #IO.DET,#OUTLUN,#1 ;+AF3 and Detach from the tape 40$: RETURNt;C;E;F&; HELP - LIST OUT THE HELP TEXT ON TI:;k5HELP: MOV #HLPMSG,R0 ; R0 = HELP MESSAGE TEXT ADDRESS / MOV #40,QIO+Q.IOPL+4; SET THE CC-TYPE TO 00ڗ-TADATADATACR-LF ; 310$: MOV R0,QIO+Q.IOPL ; PUT THE ADDRESS IN THE DPBd. MOV R0,R1 ; SAVE THE BEGINNING ADDRESS IN R1;t&20$: TSTB (R0)+ ; SCAN TO NULL AT END( BNE 20$ ; CONTINUE TILL NULL CHARACTER* MOV R0,R2 ; R2 = ENDING LINE ADDRESS + 1 DEC R2 ; BACKUP TO END OF LINE! SUB R1,R2 ; R2 = LENGTH OF LINE3, MOV R2,QIO+Q.IOPL+2 ; PUT LENGTH IN QIO DPB DIR$ #QIO ; OUTPUT THE LINE & CMP R0,#HLPEND ; ANY MORE TEXT TO GO? BLO 10$ ; YES - CONTINUE JMP START .page$ .SBTTL WAIT CODE & ERROR PROCESSING;G; WAIT- PROCESSING OF NORMAL CODE SUSPENDS ITSELF HERE AFTER INITIATINGAB; THE TAPE COPY OPERATION. ALL WORK IS DONE VIA AST ROUTINES, ANDA; IS COMPLETELY 'INTERRUPT' DRIVEN. WHEN AN ERROR OCCURS, OR THE=D; TRANSFER IS FINISHED, THE MAIN PROGRAM IS 'RESUMED'. IT MUST THEN7; CHECK FOR ANY ERRORS ENCOUNTERED IN THE AST ROUTINES.T;N;O/WAIT: PAUSE ; WAIT FOR PROCESSING TO COMPLETEP BIT #ERR,FLAGS ; ANY ERRORS ? BNE 20$ ; YES - PROCESS IT# TST CMPPAS ;+AF3 In compare pass?O BEQ 10$ ;+AF3 No - do restartI> ERRMSG ;+AF3 Not really an error message@ JMP START ;+AF3 Just finished compare pass - do original start10$: JMP START2 ;+AF3 Restart)20$: MOV #DSKERM,R1 ; ASSUME A DISK ERRORI+ MOV DSKERR,-(SP) ; PUT ERROR CODE ON STACKS$ BEQ 30$ ; NO CODE - NOT DISK ERROR JMP ERROR ; GO PROCESS ERROR030$: MOV #MTERM,R1 ; SETUP MAGTAPE ERROR MESSAGE MOV MTERR,(SP) ; & ERROR CODE+ BEQ 40$ ;+AF3 No code - not magtape error; JMP ERROR ; PROCESS THE ERROR ;F;o40$:4 MOV #CMPERM,R1 ;+AF3 Point to compare error message" MOV #0,(SP) ;+AF3 Null parameter' JMP ERROR ;+AF3 Process error messagel;G; ERROR-PROCESS ERROR MESSAGES. THIS ROUTINE OUTPUTS ERROR MESSAGES TORA; THE USERS TERMINAL USING $EDMSG. THE PATTERN STRING IS ASSUMEDC@; TO BE POINTED TO BY R1, AND THE ERROR CODE ON THE STACK. THIS3; ROUTINE SHOULD BE PASSED CONTROL VIA 'JMP ERROR'.P; 2ERROR: MOV #ERRBUF,R0 ; R0 = OUTPUT BUFFER POINTER$ MOV SP,R2 ; R2 = PARAMETER POINTER CALL $EDMSG ; EDIT THE MESSAGE+ MOV #ERRBUF,QIO+Q.IOPL ; SETUP THE QIO DPBS MOV R1,QIO+Q.IOPL+2 ; ...P. TST (SP)+ ; POP THE PARAMETER FROM THE STACK DIR$ #QIO ; OUTPUT ITG JMP START ; RESTARTT .page .SBTTL TAPE TO DISK OPERATIONSL;I; TAPE TO DISK;TA; THIS FUNCTION INITIATES A TRANSFER SEQUENCE FROM THE TAPE DRIVEE>; TO THE DISK FILE. THE TAPE IS REWOUND PRIOR TO THE START OF2; THE COPY, AND ALL OPERATIONS ARE MULTI-BUFFERED.;U$TPTDSK: CLR FLAGS ; RESET ALL FLAGS% CLR DSKERR ; RESET DISK ERROR VALUES# CLR MTERR ; & MAGTAPE ERROR VALUE & MOV #TAPEIN,INVEC ; SETUP AST VECTORS MOV #DSKOUT,OUTVEC ; ...A/ BIT #3,D2DMSK ;SEE IF CONTROL QIOS ARE CORRECT BEQ 10$ ;IF SO LEAVE INa2 BIT #40,D2DMSK ;SEE IF WANTED EVEN THO' DISK-DISK BEQ 50$ ;IF NOT,SKIP 'EM10$:/ QIOW$S #IO.ATT,#INLUN,#1 ; ATTACH TO TAPE UNITT3 BIT #NRMSK,CSIFLG ;DID HE WANT TO SKIP THE REWIND?  BNE 20$ ;IF SO, SKIP REWINDO. QIOW$S #IO.RWD,#INLUN,#1 ; REWIND THE MAGTAPE+20$: CLR R0 ;SET 800 BPI DENSITY INITIALLY , BIT #HDMSK,CSIFLG ;DID HE SAY HIGH DENSITY?" BEQ 30$ ;IF NOT LEAVE AT 800 BPI" MOV #4000,R0 ;IF SO, SET 1600 BPI730$: BIT #SCMSK,CSIFLG ;WAS THE /SC:NNNNNN SWITCH USED?1$ BEQ 40$ ;IF NOT JUST SET CHARACTS.0 BIS SCVAL,R0 ;ELSE OR IN CHARACTERISTICS WANTED40$:= QIOW$S #IO.STC,#INLUN,#1,,,, ; SET TO 800BPI OR 1600 BPI50$:;S2; INITIALIZE & PLACE ALL DISK BUFFERS IN THE QUEUE;I+ MOV #DSKLHD,R0 ; R0 = DISK BUFFER LISTHEAD ) MOV R0,R4 ; R4 = SAVED LISTHEAD ADDRESSP% MOV R4,(R0)+ ; SETUP A NULL LISTHEADG MOV R4,(R0)+ ; ...S2 ; NOTE: THE LISTHEAD & LISTS MUST BE TOGETHER!*60$: MOV R0,R5 ; R5 = BUFFER NODE ADDRESS$ CALL NODADD ; ADD IT TO DISK QUEUE9 MOV N.BUF(R5),N.PTR(R5) ; UPDATE POINTER TO BUFFER STARTR# ADD #N.SIZE,R0 ; R0 = NEXT POINTERO% CMP R0,#DSKLND ; AT END OF LIST YET?8 BLO 60$ ; NO - CONTINUES;NG; INITIALIZE TAPE BUFFER LISTHEAD TO NULL, AND INITIATE I/O TO THE TAPE0L; DRIVE FOR EVERY AVAILABLE BUFFER NODE IN ORDER TO START THE PR00HI4OCESS GOING.;)+ MOV #TPLHD,R0 ; R0 = TAPE LISTHEAD ADDRESSS) MOV R0,R1 ; R1 = SAVED LISTHEAD ADDRESST/ MOV R1,(R0)+ ; INITIALIZE THE LISTHEAD TO NULLD MOV R1,(R0)+ ; ... +80$: MOV R0,R1 ; R1 = COPY OF NODE ADDRESS;( CLR N.PTR(R0) ; RESET THE POINTER VALUE( ADD #N.IOST,R1 ; R1 = IO STATUS ADDRESS MOV R1,R2 ; R2 = " " "6 ADD #N.BUF-N.IOST,R1; POINT R1 TO BUFFER ADDRESS CELL# MOV (R1)+,R3 ; R3 = BUFFER ADDRESST% TST (R3)+ ; ADVANCE BEYOND 1ST WORDU! MOV (R1),R4 ; & GET BUFFER SIZEC6 SUB #2,R4 ; DECREASE BY TWO TO ACCOUNT FOR R3 OFFSET, BIT #1,D2DMSK ;READING DISK, NOT REAL TAPE? BEQ 85$ ;IF EQ NO, NORMALI- MOV #512.,R4 ;ELSE SET 1BLOCK SIZE OF BUFFER85$:B QIO$S #IO.RLB,#INLUN,,,R2,INVEC,;READ THE BLOCK BIT #3,D2DMSK) BEQ 95$ ;IF NOT DSK-DSK OMIT COUNT HEREM ADD #1,LOLO* ADC LOHI ;THEN COUNT UP THE BLOCK NUMBER695$: ADD #N.SIZE,R0 ; R0 = ADDRESS OF NEXT BUFFER NODE' CMP R0,#TPLND ; ANY MORE TAPE BUFFERS?T BLO 80$ ; YES - CONTINUE& TST CMPPAS ;+AF3 Doing compare pass?0 BNE 100$ ;+AF3 Yes, skip to startup disk stuff* JMP WAIT ;+AF3 No - go wait for I/O Done100$:R;I;MI; HERE IS WHERE WE START UP THE DISK READS WHEN DOING A COMPARE OPERATION,;I;C) MOV #DSKIN,OUTVEC ;+AF3 Setup AST vector,;K<; INITATE DISK I/O OPERATIONS FOR ALL AVAILABLE DISK BUFFERS;L, MOV #DSKLHD,R0 ; R0 = DISK LISTHEAD POINTER% MOV R0,R1 ; R1 = SAVE LISTHEAD ADDR - MOV R1,(R0)+ ; INITIATE THE LISTHEAD TO NULL MOV R1,(R0)+ ; ...T,110$: MOV N.BUF(R0),R2 ; R2 = BUFFER ADDRESS+ MOV R2,N.PTR(R0) ; INIT THE BUFFER POINTERf' MOV N.LEN(R0),R3 ; R3 = LENGTH OF READo' MOV R0,R1 ; R1 = IO STATUS BLOCK ADDRA ADD #N.IOST,R1 ; ...E( MOV #FDBOUT,R5 ; R5 = INPUT FDB ADDRESSC QIO$S #IO.RVB,#OUTLUN,,,R1,OUTVEC,A4 ADD DSKFCT,F.BKVB+2(R5) ; UPDATE THE NEXT BLOCK NO. ADC F.BKVB(R5) ; ...E- ADD #N.SIZE,R0 ; ADVANCE TO NEXT BUFFER NODED$;???? CMP R0,#DSKLND ;+AF3 Past end?! BLO 110$ ; CONTINUE IF IN RANGE. JMP WAIT ; ELSE GO WAIT FOR XFER TO COMPLETE .page .SBTTL TAPEIN - TAPE INPUT ASTE; ; TAPEIN - HANDLE TAPE INPUT AST;A .GLOBL TAPEIN,FLAGS.TAPEIN: MOV (SP)+,R5 ; R5 = I/O STATUS ADDRESS2 BIT #,FLAGS ; ERROR OR END FLAGGED? BEQ 10$ JMP 180$ ; YES - GET OUT10$:$ ADD #1,ENDIO+2 ;COUNT BLKS FINISHED ADC ENDIO# BIT #1,D2DMSK ;SKIP UNLESS DSK-DSK. BEQ 20$ CMP ENDIO,ENDBK ;HI PAST END? BHI 95$ ;IF SO TREAT AS EOF; BLO 20$ ;IF LO ALLS WELL. CMP ENDIO+2,ENDBK+2 ;LO BLK # PAST OR AT END? BHI 95$ ;IF SO TREAT AS EOF20$:. MOV N.BUF-N.IOST(R5),R4 ; R4 = BUFFER ADDRESS$ BIT #ERMSK,CSIFLG ;IGNORING ERRORS? BEQ 30$ ;IF NOT, LOOK AT ALL. $ CMPB #IE.EOF,@R5 ;WAS IT ENDFILE???" BEQ 30$ ;YES, LEAVE THAT 'ERROR'7;gce05 - if ignoring eov,eot errors just treat as ok...++ BIT #EVMSK,CSIFLG ;IGNORING IE.EOT,IE.EOV?2" BNE 24$ ;IF NE YES, SKIP TEST... CMPB #IE.EOT,@R5; BEQ 30$ ;OR EOT CMPB #IE.EOV,@R5A BEQ 30$24$: CMPB #IE.PRI,@R5L BEQ 30$ ;OR IF TAPE DISMOUNTEDP$;MAKE ALL OTHER ERRORS BE IGNORED...' MOVB #IS.SUC,@R5 ; YES, SAY ALL WAS OK;30$: ANST00==.E TSTB (R5) ; ERROR ON I/O?I# BMI 85$ ; IF MI YES, GO HANDLE ITT/; HERE WE CHECK FOR SPECIAL ANSI LABEL RECORDS.Q<; RECORD LENGTH MUST BE 80. BYTES ON INPUT AND TEXT OF FIRST4; 3 OR 4 CHARACTERS IN THE RECORD IS CHECKED. ;GCE02 ANST01==.E* BIT #1,ANSFLG ; /ANSI SWITCH SEEN ;GCE02( BEQ 130$ ; IF EQ NO, JUST PROCESS DATA9;SEE IF THIS WAS AN "EOV" RECORD. R4 POINTS TO DATA AREA.;*; BE SURE RECORD LENGTH IS 80 BYTES FIRST.. BIT #4,ANSFLG ;/RT11 ANSI? (512 BYTE HEADERS)* BNE 40$ ; IF SO IGNORE LENGTH FOR CHECKS0 CMP 2(R5),#80. ; WAS THE RECORD AN 80 BYTE ONE?. BNE 130$ ; IF NOT CAN'T BE AN ANSI EOV LABEL.40$: CMP 2(R4),LITEO ; CHECK FOR FIRST 2 CHARS$ BNE 50$ ;IF NOT "EO", RESET ANSCNT$ CMPB 4(R4),LITVV ;SEE IF IT'S "EOV" BNE 50$ ;IF NE, RESET ANSCNT" INC ANSCNT ;ELSE COUNT UP ANSCNT BR 130$?50$: CLR ANSCNT ;REQUIRE EOV1 AND EOV2 IN IMMEDIATE SUCCESSIOND ANST02==.>; TEST FOR HDR2 OR E00-TADATADATAOF2 AND INCREMENT OR DECREMENT HDRLVL THEN8; THIS ALLOWS ONE TO HANDLE PARTIALLY FILLED ANSI TAPES. CMP 2(R4),LITHD ;HDR2 BNE 60$ ;IF NE NO, TRY EOF2T# CMP 4(R4),LITR2 ;SEE IF STILL HDR2A BNE 60$ ;IF NOT CHECK EOF27 MOV #1,HDRLVL ;IF IT IS HDR2 SET LEVEL COUNTER UP TO 1"-; ;(THIS PROTECTS AGAINST ACCIDENTAL SETS)"/; INC HDRLVL ;IF IT IS HDR2 BUMP LEVEL COUNTER  BR 130$ ;THEN SCRAM ANST03==.0&60$: CMP 2(R4),LITEO ;SEE IF IT'S EOF2% BNE 130$ ;IF NOT WE'RE THRU WITH ITE" CMP 4(R4),LITF2 ;IF NOT THEN DONE BNE 130$H# DEC HDRLVL ;COUNT DOWN FILE LEVELL! BGE 130$ ;IF 0 OR +, ALL'S WELLP9 CLR HDRLVL ;BUT CLAMP IT TO 0 IF WE MANAGE TO SCREW UP.R 80$: BR 130$85$:K; ALLOW IE.EOT AND IE.EOV ERRORS TO PROPAGATE IN AN ATTEMPT TO HANDLE CASESEI; WHERE THOSE ERRORS OCCUR ON READING THE TAPE. IF ANSI TAPE, THEY REALLYD1; ARE NOT THE END OF DATA AND SHOULD BE BYPASSED. ANST04==.+ BIT #EVMSK,CSIFLG ;IGNORING EOV/EOT ETC...' BEQ 87$ ;IF EQ NOF CMPB #IE.EOT,(R5) BEQ 86$ CMPB #IE.EOV,(R5) BNE 87$%86$: MOVB #IS.SUC,(R5) ;FLAG ALL WELLF BR 30$L87$:. CMPB #IE.EOT,(R5) ;EOT? IF SO ALWAYS MAKE EOV BEQ 110$T CMPB #IE.EOV,(R5) BEQ 110$ CMPB #IE.EOF,(R5) ; EOF?  BNE 160$ ; NO - ERRORT88$:;T ; GCE02 START 5; ****** HERE ADD CODE TO SUPPORT /ANSI SWITCH IF SET ! BIT #1,ANSFLG ; ANSI SWITCH SET?D. BEQ 95$ ; IF EQ NO, JUST DO THE USUAL THINGS"; PROCESS ANSI MODE EOF RETURNS...;GE; ACTUALLY, NEED TO DUPLICATE EOF, BUT NEED EOV IF 2 ANSI EOVS THERE.82; IF ANSCNT IS 2 ALREADY, ALLOW NORMAL PROCESSING. .GLOBL ANSCNT,HDRLVL,ANSFLG, CMP ANSCNT,#2 ;SEEN AT LEAST 2 EOV RECORDS?4 BHIS 95$ ;IF SO GO TEST FOR 2ND EOF AND WRITE THEM+ TST HDRLVL ;ARE WE BETWEEN HDR2 AND EOF2? 3 BNE 100$ ;IF WE ARE (I.E. IF NE), JUST WRITE EOFSO2; ;OTHERWISE JUST TREAT EOF MARKS AS END OF TAPE95$: ; GCE02 END0 BIT #EOF,FLAGS ; IS THIS 2ND EOF IN ROW? (EOV?) BNE 120$ ; YES - END-OF-VOLUME9100$: BIS #EOF,FLAGS ; NO - SO SET IT TO INDICATE 1ST EOFS5 MOV #2,2(R5) ; YES - SET LENGTH FOR OUTPUT = 2 BYTESP' CLR (R4) ; DATA VALUE = 0 (COUNT = 0) BR 140$ ; CONTINUE ;GCE02 START ANST05==.B?110$: BIT #1,ANSFLG ;THIS AN ANSI TAPE? IF SO IGNORE THESE ERRS;. BEQ 120$ ;IF NOT ANSI TAPE (EQ) JUST SET EOV TST 2(R5) ;ANY DATA THERE?1 BNE 130$ ;IF ANSI TAPE (NE), THEN ACCEPT RECORDO# BR 150$ ;IF NO DATA JUST CONTINUE, ;GCE02 END ANST06==. (120$: BIS #EOV,FLAGS ; INDICATE EOV SEEN5 MOV #4,2(R5) ; YES - DATA LENGTH = 4 BYTES (2 NULLS)T* CLR (R4)+ ; RESET THE TWO 'NULL' RECORDS CLR (R4) ; ... BR 140$ ; CONTINUE=130$: MOV 2(R5),(R4) ; SETUP 1ST BUFFER WORD WITH DATA LENGTHT5 ADD #2,2(R5) ; TOTAL LENGTH INCLUDES THE LENGTH WORDG) BIC #EOF,FLAGS ; RESET THE EOF SEEN FLAGA6140$: SUB #4,R5 ; ADJUST R5 TO POINT TO START OF NODE= MOV N.BUF(R5),N.PTR(R5) ; SETUP THE POINTER TO START OF DATAD; MOV TPLHD+2,R4 ; R4 = PRIOR NODE ADDRESS FOR ADD OPERATIONA, CALL NODADD ; ADD NODE TO TAPE BUFFER LIST0150$: JMP TPDKDQ ; GO TRY TO DEQUEUE SOME WORK.E160$: QIOW$S #IO.KIL,#INLUN,#1,,IOST ; CANCEL ALL TAPE I/O'S IN PROG.$ BIS #ERR,FLAGS ; FLAG THE ERROR2 MOVB (R5),MTERR ;+AF1 COPY ERROR CODE FOR MAGTAPE. BPL 170$ ;+AF1 SKIP IF POSITIVE (NOT LIKELY)7 MOVB #-1,MTERR+1 ;+AF1 ELSE MAKE HI BYTE NEGATIVE ALSOT170$: RESUME ; RESUME THE MAIN TASK180$: ASTX$S ; EXIT THE ASTT .page% .SBTTL IMGMOD - DO IMAGE MODE COPIES M;THIS SECTION IS PRIMARILY FOR COPYING DISK TO DISK WITH NO FORMAT DEPENDENCE D;BUT IF THE /CT SWITCH IS SET WILL TRY TO DO SET-CHARACTERISTICS ANDH;REWINDS, ETC., AS NEEDED FOR TAPE. ALSO WILL TRY TO WRITE A COUPLE EOFS;AFTER THE WRITES.H;NOTE THE /FL:NAME SWITCH ALLOWS ONE TO WRITE PSEUDO-FLX TAPES WHICH CANC;THEN CONTAIN OTHER (REAL) FLX PROGRAMS. FLX CAN'T HANDLE BIG BLOCKTH;SIZES, BUT CAN SKIP FILES LIKE THIS SINCE LABELS ARE OK. CREATION DATESE;WILL BE FOULED UP BUT OTHERWISE OK. THE /IM AND /CT SWITCHES MUST BEI';USED TO PERMIT /FL TO HAVE ANY EFFECT.O,IMGCT: .WORD 0,0 ;COUNT OF BLOCKS TO DO LEFT&IMGNM: .WORD 0,0 ;BLOCK NUMB00HI4ERS TO USE!IMGIOS: .WORD 0,0 ;I/O STATUS BLKEIMGMOD:L MOV IMHI,IMGNMC' MOV IMLO,IMGNM+2 ;SET UP BLK #S TO USE  MOV SZLO,IMGCT+2O# MOV SZHI,IMGCT ;SET UP COUNT TO DOH CLR FLAGS ; RESET ALL FLAGS)% CLR DSKERR ; RESET DISK ERROR VALUEC# CLR MTERR ; & MAGTAPE ERROR VALUEH2 BIT #40,D2DMSK ;SEE IF WANTED EVEN THO' DISK-DISK" BNE 10$ ;IF OK DO THE TAPE STUFF JMP 85$ ;IF NOT, SKIP 'EM 10$:/ QIOW$S #IO.ATT,#INLUN,#1 ; ATTACH TO TAPE UNITO0 QIOW$S #IO.ATT,#OUTLUN,#1 ; ATTACH TO TAPE UNIT3 BIT #NRMSK,CSIFLG ;DID HE WANT TO SKIP THE REWIND?M BNE 20$ ;IF SO, SKIP REWINDI. QIOW$S #IO.RWD,#INLUN,#1 ; REWIND THE MAGTAPE( QIOW$S #IO.RWD,#OUTLUN,#1 ; REWIND TAPE+20$: CLR R0 ;SET 800 BPI DENSITY INITIALLYR, BIT #HDMSK,CSIFLG ;DID HE SAY HIGH DENSITY?" BEQ 30$ ;IF NOT LEAVE AT 800 BPI" MOV #4000,R0 ;IF SO, SET 1600 BPI730$: BIT #SCMSK,CSIFLG ;WAS THE /SC:NNNNNN SWITCH USED?S$ BEQ 40$ ;IF NOT JUST SET CHARACTS.0 BIS SCVAL,R0 ;ELSE OR IN CHARACTERISTICS WANTED40$:= QIOW$S #IO.STC,#OUTLUN,#1,,,, ; SET TO 800BPI OR 1600BPIH= QIOW$S #IO.STC,#OUTLUN,#1,,,, ; SET TO 800BPI OR 1600BPIL, BIT #200,D2DMSK ;/FLX SWITCH SET UP A NAME?' BEQ 85$ ;IF NOT, SKIP WRITE OF LABEL. 2 CMPB FLXNAM,#'A ;LEGAL NAMES ARE THIS BIG OR MORE BLO 80$ ;IF NOT, USE DEFAULT MOV R0,-(SP)T MOV R1,-(SP)# MOV R2,-(SP) ;RADIX-50 PACK THE FILE NAME MOV #FLXNAM,R0 ;NAME IN CLR R1 ;NO PERIODS PLEASE JSR PC,$CAT5 ;CONVERT THE RAD50 BCS 50$$ MOV R1,LBLBK ;STORE OFF 1ST 3 CHARS CLR R1. JSR PC,$CAT5 ;CONVERT 2ND HALF0' MOV R1,LBLBK+2 ;STORE WHATEVER WE HAVE, BR 60$>,50$: MOV R1,LBLBK ;STORE 3 OR LESS CHAR NAME! CLR LBLBK+2 ;ZERO 2ND HALF NAME860$: MOV (SP)+,R2T MOV (SP)+,R1C MOV (SP)+,R0;D80$: QIOW$S #IO.WLB,#OUTLUN,#1,,,,<#LBLBK,#14.> ;WRITE THE FLX LABEL85$:;TI;MAIN LOOP. USE ALL SPACE AVAILABLE AS A BIG BUFFER AND JUST SHUFFLE BACKM;AND FORTH TILL DONE.; .MCALL QIOW$SSIMGS:R) CMP IMBF,#IMBFMX ;IS BLOCK FACTOR LEGAL?V BLOS 10$ ;IF LOS ALL'S WELLS/ MOV #IMBFMX,IMBF ;ELSE SET MAX AS BLOCK FACTORV10$: MOV IMBF,R3 ;GET MAX BLK #/ ASH #9.,R3 ;SHIFT OVER 9 BITS FOR BUFFER SIZEA;DSKBF0 IS BUFFER ADDRESS IMGLOP:N< BIT #400,D2DMSK ;/NI SWITCH SET? (IF SO READ 512 AT A TIME) BNE 10$ ;IF NE YES; QIOW$S #IO.RLB,#INLUN,#1,,#IMGIOS,,<#DSKBF0,R3,,LOHI,LOLO> %;THE ABOVE READS INPUT AT BLKS GIVEN.B% BR 50$ ;SKIP 1 BLK AT A TIME READINH10$:<;NIBBLE READIN (USE TO AVOID LOSS OF DATA DUE TO BAD BLOCKS) MOV R0,-(SP)B MOV IMBF,R0 MOV R1,-(SP) MOV #DSKBF0,R1 ;DATA AREA MOV R4,-(SP)C MOV R5,-(SP)V MOV LOHI,R4 MOV LOLO,R5920$: QIOW$S #IO.RLB,#INLUN,#1,,#IMGIOS,,B ADD #1,R5 ADC R4 ;COUNT BLOCKS...M# ADD #1000,R1 ;BUMP ADDRESS POINTERT TSTB IMGIOS% BPL 30$ ;IF NO ERR, +; SKIP ERR MSGN( ERRMSG - TST IMGIOS+2 ;SEE IF 0 WORDS READ (==> DONE); BNE 30$ ;IF NONZERO GO ON8 BIT #ERMSK,CSIFLG ;IF /ER SPEC'D, USE BLK FACTOR ALWAYS BNE 30$* MOV R1,IMGIOS+2 ;ELSE SAY HOW MANY WE GOT0 SUB #DSKBF0+1000,IMGIOS+2 ;MAKE IT A BYTE COUNT BR 40$V#30$: DEC R0 ;COUNT DOWN BLKS TO DOO BGT 20$/ MOV R3,IMGIOS+2 ;COPY WC WE WOULD HAVE USED...,40$: MOV #1,IMGIOS MOV (SP)+,R5D MOV (SP)+,R4 MOV (SP)+,R1T MOV (SP)+,R050$:! TSTB IMGIOS ;SEE IF ALL WENT OKE BPL 60$/ ERRMSG I$60$: MOV IMGIOS+2,R4 ;GET BYTES READ# BNE 80$ ;IF NONZERO WE KEEP GOINGG4 BIT #ERMSK,CSIFLG ;IF /ER SPECIFIED DON'T TEST THIS BNE 80$' JMP IMGDUN ;ZERO READ MEANS ALL DONE.0280$: BIT #1000,D2DMSK ;/NO NUBBLE WRITE SPECIFIED?+ BNE 85$ ;IF NE YES, DO IT 1 BLK AT A TIMEM@ QIOW$S #IO.WLB,#OUTLUN,#1,,#IMGIOS,,<#DSKBF0,R4,,IMGNM,IMGNM+2>;WRITE THE DATA OUTV BR 110$ ;SKIP NIBBLE WRITE85$:?;NIBBLE WRITE (1 BLK AT A TIME TO AVOID LOSS OF DATA ON ERRORS)S MOV R0,-(SP)- MOV R1,-(SP)n MOV R2,-(SP): MOV R3,-(SP)4 MOV R4,R02 ASH #-9.,R0 ;CONVERT TO A NUMBER OF BLOCKS TO DO MOV #DSKBF0,R1 ;BUFFER ADDRESST MOV IMGNM,R2 ;HI BLK NO MOV IMGNM+2,R3 ;LO BLK NO:95$: QIOW$00-TADATADATAS #IO.WLB,#OUTLUN,#1,,#IMGIOS,, ADD #1,R3 ADC R2 ;BUMB BLK NO  ADD #1000,R1 ;AND BUFF ADDR TSTB IMGIOS ;CHECK ERRS, BPL 100$ ;IF PL ALL WELL' ERRMSG E100$: DEC R0 ;COUNT DOWN BLKS TO DO  BGT 95$ ;AND LOOP TILL DONE" MOV R4,IMGIOS+2 ;SAY WE WROTE ALL MOV #1,IMGIOS ;WITH SUCCESS!!!! MOV (SP)+,R3, MOV (SP)+,R2 MOV (SP)+,R1C MOV (SP)+,R0#110$: TSTB IMGIOSD BPL 120$V0 ERRMSG 4120$: ASH #-9.,R4 ;GET NO. BLOCKS HANDLED LAST TIME BEQ IMGDUN ;IF 0, EXIT( SUB R4,IMGCT+2 ;COUNT DOWN BLOCKS TO DO SBC IMGCT' BMI IMGDUN ;COUNT NEGATIVE MEANS DONE BNE 130$S TST IMGCT+2. BEQ IMGDUN ;END WHEN WE COUNT DOWN TO 0 LEFT130$: ADD R4,LOLOT( ADC LOHI ;ELSE BUMP BLOCK NUMBERS LEFT ADD R4,IMGNM+2A% ADC IMGNM ;IN BOTH INPUT AND OUTPUTM5 ;SEE HERE IF IMGCT+2 IS LESS THAN IMBF AND RESET THE+1 ;BUFFER SIZE IF SO TO DO MORE REASONABLE THINGS.-2 TST IMGCT ;IF H.O. COUNT IS NONZERO DONT DO THIS BNE 140$ 4 CMP IMGCT+2,IMBF ;ENOUGH BLKS LEFT FOR FULL BUFFER? BHIS 140$ ;IF HIS YES 7 MOV IMGCT+2,R3 ;ELSE SET UP COUNT OF WHAT'S LEFT TO DOA0 ASH #9.,R3 ;AND MAKE A VALID BYTE COUNT OF IT. BEQ IMGDUNO140$:N' JMP IMGLOP ;THEN GO TRY ANOTHER CHUNK IMGDUN:M;ALL DONE... FINISH UP BIT #40,D2DMSK ;/CT SPEC'D? BEQ 10$ ;IF EQ NOU QIO$S #IO.EOF,#OUTLUN,,,R3L QIO$S #IO.EOF,#OUTLUN,,,R3 QIO$S #IO.EOF,#OUTLUN,,,R3E QIO$S #IO.EOF,#OUTLUN,,,R3G QIO$S #IO.EOF,#OUTLUN,,,R3 E;NOW HAVE 5 EOF'S OUT TO DO. THUS WE NEED TO BACKSPACE OVER 4 RECORDSB;;TO LEAVE TAPE IN POSITION AFTER THE FIRST EOF. DO IT THUS:P .MCALL QIOW$S< QIOW$S #IO.SPF,#OUTLUN,#20.,,R3,,#-4 ;BACKSPACE OVER 4 EOFS) BIT #20,D2DMSK ;/FR FINAL REWIND WANTED?G BEQ 10$ ;IF NOT SKIP ITN/ QIOW$S #IO.RWD,#OUTLUN,#20.,,R3 ;DO THE REWINDS10$: JMP START ;DONE! .page .SBTTL DSKOUT - DISK OUTPUT AST;E"; DSKOUT - PROCESS DISK OUTPUT AST;N'DSKOUT: MOV (SP)+,R5 ; R5 = AST ADDRESSS: BIT #,FLAGS ; ANY ERRORS OR OPERATION COMPLETE? BEQ 10$ JMP 40$ ; YES - JUST EXIT ASTV10$: ; BNE 40$ ; YES - JUST EXIT AST& TSTB (R5) ; ANY ERRORS ON OPERATION? BMI 20$ ; YES - ERROR-* SUB #4,R5 ; R5 = NODE ADDRESS (ADJUSTED)3 MOV N.BUF(R5),N.PTR(R5) ; RESET THE BUFFER POINTERQ2 MOV DSKLHD+2,R4 ; R4 = PRIOR NODE ADDRESS FOR ADD- CALL NODADD ; ADD THIS TO DISK BUFFER QUEUED' JMP TPDKDQ ; TRY TO DEQUEUE SOME WORKS=20$: QIOW$S #IO.KIL,#OUTLUN,#1,,#IOST ; CANCEL ALL OUTPUT I/OT BIS #ERR,FLAGS ; FLAG THE ERROR+ MOVB (R5),DSKERR ;+AF1 SAVE THE ERROR CODEE- BPL 30$ ;+AF1 SKIP IF POSITIVE (NOT LIKELY)S8 MOVB #-1,DSKERR+1 ;+AF1 ELSE MAKE HI BYTE NEGATIVE ALSO30$:" RESUME ; CONTINUE THE MAIN TASK 40$: ASTX$SJ .page- .SBTTL TPDKDQ - TAPE TO DISK DEQUEUE ROUTINEN;Q ; TPDKDQ-H;,G; THIS ROUTINE PERFORMS THE MAJORITY OF WORK IN THE TRANSFER OPERATION.FD; ENTRIES IN THE TAPE INPUT QUEUE REPRESENT DATA INPUT FROM THE MAG-G; TAPE DRIVE, WHICH NEEDS TO BE OUTPUT TO THE DISK. THE ENTRIES IN THETC; DISK QUEUE ARE EMPTY BUFFERS. THIS ROUTINE COPIES MAGTAPE BUFFERFC; INFORMATION STARTING WITH THE 1ST BUFFER IN THE QUEUE TO THE DISKHH; BUFFERS, ONLY EXITING THE AST WHEN THERE ARE NO MORE BUFFERS AVAILABLE(; AT ANY TIME TO CONTINUE THE OPERATION.;E3TPDKDQ: MOV #DSKLHD,R0 ; R0 = DISK LISTHEAD ADDRESSO- CMP R0,(R0) ; ANY OUTPUT BUFFERS AVAILABLE?I BEQ 10$ ; NO - JUST EXIT AST( MOV (R0),R0 ; R0 = BUFFER NODE ADDRESS+ MOV #TPLHD,R2 ; R2 = TAPE LISTHEAD ADDRESS ' CMP R2,(R2) ; ANY TAPE BUFFERS READY?A& BEQ 10$ ; NO - WAIT FOR SOME TO COME# MOV (R2),R2 ; R2 = BUFFER ADDRESSG BR 20$ ; CONTINUEI 10$: ASTX$ST;SI; THERE IS AT LEAST ONE INPUT BUFFER READY & ONE OUTPUT BUFFER AVAILABLE.EH; SETUP ALL POINTERS, CALCULATE THE NUMBER OF BYTES TO COPY & THE AMOUNTF; OF SPACE LEFT IN THE DISK BUFFER. TRANSFER AS MUCH AS WILL FIT INTO; THE DISK BUFFER.;J<20$: MOV N.PTR(R0),R1 ; R1 = REMAINING LENGTH IN DISK BUFFER SUB N.BUF(R0),R1 ; ...H NEG R1 ; (R1 = -AMOUNT USED)00HI4 ADD N.LEN(R0),R1 ; ...B BLE DSKWRT ; NONE LEFT!E6 MOV N.IOST+2(R2),R3 ; R3 = LENGTH OF TAPE BUFFER DATA BNE 30$ JMP QUEMTR ; NO TAPE DATA!30$:; BEQ QUEMTR ; NO TAPE DATA!Y3 CMP R1,R3 ; COMPARE REMAINING DISK TO TAPE BUFFER 4 BHIS 40$ ; DISK BUFFER WILL HOLD IT ALL - CONTINUE, SUB R1,R3 ; R3 = AMOUNT WHICH WILL NOT FIT? MOV R3,N.IOST+2(R2) ; UPDATE THE AMOUNT WHICH REMAINS FOR TAPER! MOV R1,R3 ; R3 = TRANSFER COUNTS BR 50$ ; CONTINUER<40$: CLR N.IOST+2(R2) ; XFER WILL FIT - NO DATA WILL BE LEFT)50$: MOV N.PTR(R2),R4 ; R4 = FROM POINTERS# MOV N.PTR(R0),R5 ; R5 = TO POINTERE# ASR R3 ; R3 = XFER COUNT IN WORDSA+ TST CMPPAS ;+AF3 Is this a compare pass??Y BEQ 60$ ;+AF3 No, go move data6 JMP CMPBUF ;+AF3 If compare, go do compare operation&60$: MOV (R4)+,(R5)+ ; COPY THE BUFFER SOB R3,60$ ; ...5 MOV R5,N.PTR(R0) ; RESTORE NEW BUFFER POINTER VALUESI MOV R4,N.PTR(R2) ; ... ;=#; WRITE OUT DISK BUFFER IF REQUIREDR;. SUB N.BUF(R0),R5 ; R5 = AMOUNT OF BUFFER USED* CMP R5,N.LEN(R0) ; COMPARE TO BUFFER SIZE) BLO QUEMTR ; CONTINUE IF MORE ROOM LEFTODSKWRT:R# TST CMPPAS ;+AF3 In compare pass?T( BEQ 20$ ;+AF3 No, skip to normal write5 BIT #EOF,FLAGS ;+AF3 This should be END-OF-FILE time & BNE 10$ ;+AF3 It is, exit gracefully; BIS #CMPERR,FLAGS ;+AF3 Not EOF on disk file. Flag errorV10$: JMP TDDONE ;+AF3 EXITF20$: MOV R0,R5 ; R5 = NODE ADDRESS  CALL NODDEL ; DELETE THE NODEE MOV R2,-(SP) ; SAVE R2B! MOV #FDBOUT,R4 ; GET FDB ADDRESSE*30$: MOV N.LEN(R0),R2 ; COPY BUFFER LENGTH# ASH #-9.,R2 ; CHANGE IT TO BLOCKSR INC R2 ; AND ROUND UP CLR R3 ; CLEAR HIGH ORDER 2 ADD F.EFBK+2(R4),R2 ; ADD LOW ORDER CURRENT BLOCK$ ADC R3 ; ADD CARRY INTO HIGH ORDER1 ADD F.EFBK(R4),R3 ; ADD HIGH ORDER CURRENT BLOCKl.;CHANGE CMP TO CMPB BELOW TO AVOID TROUBLES...9;ONLY 8 BITS OF HIGH BLK ALLOCATED CAN REALLY BE THERE...V4 CMPB R3,F.HIBK(R4) ; COMPARE ULTIMATE HIGH ORDER TO ; AMOUT ALLOCATED ALREADY BLO 80$ ;IF LO, KNOW ALL OK BHI 40$ ; IF HIGH, MUST EXTEND1 CMP R2,F.HIBK+2(R4) ; COMPARE ULTIMATE LOW ORDERO! BLO 80$ ; IF LOW, THERE IS ROOMR.40$: MOV R0,-(SP) ; PUSH NODE ADDRESS ON STACK MOV R4,R0 ; COPY FDB ADDRESS. MOV SALOC,R1 ; GET SECONDARY ALLOCATION VALUE7 MOV #203,R2 ; SET CONTROL BITS FOR ENABLE, CONTIGUOUSP& ; (BUT FILE IS NOW NON-CONTIGUOUS)! BIT #CONMSK,CSIFLG ; IS /CO SET? ( BNE 50$ ; YES, HENCE WANTED CONTIGUOUS9 BIC #7,R2 ; CHANGE CONTROL INDICATORS TO NON-CONTIGUOUSB;8;; THERE SEEMS TO BE A PROBLEM ABOVE 65536 BLOCKS ON DISK...P4; CHANGE OF CMP TO CMPB ABOVE MAY OR MAY NOT FIX IT. ; GCE 11/5/82H; !50$: CALL .EXTND ; DO THE EXTENDND;.EXTND BETTER RESET F.HIBK SO THE THING DOESN'T JUST GOBBLE DISK...* BCC 60$ ; IF NO ERROR FROM EXTEND, GO ON MOV #ERR,FLAGS ; FLAG AN ERRORC TST (SP)+ ; POP STACKL JMP TDDONE ; GET OUT.60$: MOV (SP)+,R0 ; RESTORE NODE ADDRESS IN R05 BR 30$ ; GO BACK TO CHECK THAT INCREMENT WAS ENOUGHN80$: MOV (SP)+,R2 ; RESTORE R2% MOV R0,R1 ; COPY NODE ADDRESS TO R1B. ADD #N.IOST,R1 ; R1 = IO STATUS BLOCK ADDRESS) MOV #FDBOUT,R3 ; R3 = OUTPUT FDB POINTER1' MOV N.BUF(R0),R4 ; R4 = BUFFER ADDRESST& MOV N.LEN(R0),R5 ; R5 = BUFFER LENGTH1 MOV F.BKVB(R3),N.BKH(R0) ; MOVE BLOCK# INTO NODEN! MOV F.BKVB+2(R3),N.BKL(R0) ; ...RA QIO$S #IO.WVB,#OUTLUN,,,R1,OUTVEC,G< ADD DSKFCT,F.BKVB+2(R3) ; UPDATE BLOCK NUMBER TO NEXT WRITE ADC F.BKVB(R3) ; .... MOV F.BKVB(R3),F.EFBK(R3) ; UPDATE EOF BLOCK#$ MOV F.BKVB+2(R3),F.EFBK+2(R3) ; ...;O4; QUEUE UP MAGTAPE FOR MORE INPUT IF BUFFER IS EMPTY;VBQUEMTR: TST N.IOST+2(R2) ; ANY MORE DATA TO XFER FROM THIS BUFFER? BEQ 10$ ; NO' JMP TPDKDQ ; TRY TO DEQUEUE MORE WORKF10$: BIT #EOV,FLAGS ; DONE?O BEQ 20$ ; NO - CONTINUE+ BIS #DONE,FLAGS ; YES - FLAG IT, MOV #DSKLHD,R0 ; R0 = DISK LISTHEAD ADDRESS$ CMP R0,(R0) ; ANY ENTRIES IN LIST? BEQ TDDONE ; NO - DONE& MOV (R0),R0 ; R0 = DISK NODE ADDRESS. CMP N.BUF(R0),N.PTR(R0) ; ANY DATA IN BUFFER?$ BNE DSKWRT ; YES - GO WRITE 00 -TADATADATAIT OUT) BEQ TDDONE ; GO RESUME MAIN TASK & EXIT &20$: MOV R2,R5 ; COPY NODE ADDR TO R5 CALL NODDEL ; DELETE THE NODEB% MOV R2,R3 ; COPY NODE ADDRESS TO R3T% ADD #N.IOST,R3 ; R3 = IO STATUS ADDR,' MOV N.BUF(R2),R4 ; R4 = BUFFER ADDRESS+- TST (R4)+ ; ADVANCE OVER 1ST WORD IN BUFFERD. MOV N.LEN(R2),R5 ; R5 = LENGTH (MAX) FOR READ2 SUB #2,R5 ; REDUCE BY AMOUNT BUFFER WAS ADVANCED% BIT #1,D2DMSK ;READING DISK AS TAPE?C BEQ 30$ ;IF EQ NO,NORMAL MOV #512.,R5 ;YES, SET 1 BLOCKY' CMP LOHI,ENDBK ;ALL BLKS ALREADY SENT?E( BLO 30$ ;IF LOWER THAN END, MORE TO DO+ CMP LOLO,ENDBK+2 ;ARE LOW ORDER BLKS SAME?E BLO 30$ ;IF LOWER ALL'S WELL- SUB #1,LOLO ;SINCE WE PASSED END, BACK UP 1T SBC LOHI30$:3 QIO$S #IO.RLB,#INLUN,,,R3,INVEC,A BIT #1,D2DMSK" BEQ 40$ ;SKIP INC UNLESS DSK-DSK ADD #1,LOLO6 ADC LOHI ;BUMP BLOCK NUMBER (IGNORED BY TAPE DRIVER)+40$: JMP TPDKDQ ; TRY TO DEQUEUE MORE WORKC50$: ASTX$S ; EXIT THE AST'TDDONE: RESUME ; RESUME THE MAIN TASKN ASTX$S ; EXIT AST .page;O&; COMPARE TAPE BUFFER WITH DISK BUFFER!; READ NEW DISK BUFFERS AS NEEDED ;ECMPBUF:3 CMP (R4)+,(R5)+ ;+AF3 Same?) BNE BADCMP ;+AF3 No, give error message# SOB R3,CMPBUF ;+AF3 Test next wordU- MOV R5,N.PTR(R0) ;+AF3 Set next word pointer MOV R4,N.PTR(R2) ;+AF3 ***K' SUB N.BUF(R0),R5 ;+AF3 Get length usedN; CMP R5,N.LEN(R0) ;+AF3 Compare with total available lengthU6 BLO 10$ ;+AF3 Some still left, go read more mag tape# MOV R0,R5 ;+AF3 Save node pointerT. CALL NODDEL ;+AF3 Delete disk node from list MOV R0,R1 ;+AF3 Node pointer3 ADD #N.IOST,R1 ;+AF3 Point at IOSB for this buffer+& MOV N.BUF(R0),R4 ;+AF3 Buffer address* MOV N.LEN(R0),R5 ;+AF3 # of bytes to read- MOV #FDBOUT,R3 ;+AF3 Get address of disk FDBwC QIO$S #IO.RVB,#OUTLUN,,,R1,OUTVEC, ) ADD DSKFCT,F.BKVB+2(R3) ;+AF3 Update VBNo$ ADC F.BKVB(R3) ;+AF3 High order VBN10$:+ JMP QUEMTR ;+AF3 Do another mag tape reade;;V;,BADCMP: 1 BIS #CMPERR!ERR,FLAGS ;+AF3 Flag error condition E QIOW$S #IO.KIL,#OUTLUN,#1,,#IOST ;+AF3 Kill all remaining disk reads D QIOW$S #IO.KIL,#INLUN,#1,,#IOST ;+AF3 Kill all remaining tape reads# RESUME ;+AF3 Resume main programt ASTX$S ;+AF3 and exit AST .page .SBTTL DISK TO TAPE OPERATIONS#;L; DISK TO TAPE;RB; THIS FUNCTION TRANSFERS DATA FROM THE DISK FILE TO MAGTAPE. THEB; MAGTAPE IS REWOUND PRIOR TO PROCESSING. ALL READS FROM DISK AREC; MULTI-BLOCK QIO'S (ALSO MULTI-BUFFERED) TO TAKE ADVANTAGE OF THEAD; HIGHER THROUGHPUT OF THE DISK. MAGTAPE OPERATIONS ARE ALSO MULTI- ; BUFFERED.m;i$DSKTTP: CLR FLAGS ; RESET ALL FLAGS% CLR DSKERR ; RESET DISK ERROR VALUEr! CLR MTERR ; RESET MAGTAPE ERRORr& MOV #DSKIN,INVEC ; SETUP INPUT VECTOR% MOV #TAPOUT,OUTVEC ; & OUTPUT VECTOR# BIT #2,D2DMSK ;SKIP CONTROL QIO'S?O BEQ 10$ ;IF NOT LEAVE IN BIT #40,D2DMSKE BEQ 50$10$:0 QIOW$S #IO.ATT,#OUTLUN,#1 ; ATTACH TO TAPE UNIT BIT #NRMSK,CSIFLG BNE 20$ ;DID HE SAY NO REWIND?( QIOW$S #IO.RWD,#OUTLUN,#1 ; REWIND TAPE20$: CLR R0 ;800 BPI DEFAULTT" BIT #HDMSK,CSIFLG ;1600 BPI TAPE? BEQ 30$ ;IF NOT LEAVE 800S MOV #4000,R0 ;IF SO SAY 1600BPI930$: BIT #SCMSK,CSIFLG ;DID HE SET OTHER CHARACTERISTICS?V& BEQ 40$ ;IF EQ NO, JUST SET CHARACS.- BIS SCVAL,R0 ;ELSE OR IN OTHER BITS HE WANTSM40$:= QIOW$S #IO.STC,#OUTLUN,#1,,,, ; SET TO 800BPI OR 1600BPIE50$:;$6; INITIALIZE & PALACE ALL TAPE BUFFERS IN OUTPUT QUEUE;B* MOV #TPLHD,R0 ; R0 = TAPE BUFFER LISTHEAD& MOV R0,R4 ; R4 = SAVED LISTHEAD ADDR$ MOV R4,(R0)+ ; SET LISTHEAD TO NULL MOV R4,(R0)+ ; ...;*60$: MOV R0,R5 ; R5 = BUFFER NODE ADDRESS' CALL NODADD ; ADD TAPE BUFFER TO LISTT+ MOV N.BUF(R5),N.PTR(R5) ; INIT THE POINTERI5 CLR N.WRK(R5) ; RESET 'NUMBER REMAINING BYTES' COUNTL( ADD #N.SIZE,R0 ; ADVANCE TO NEXT BUFFER( CMP R0,#TPLND ; AT END OF TAPE BUFFERS? BLO 60$ ; NO - CONTINUE:;<; INITATE DISK I/O OPERATIONS FOR ALL AVAILABLE DISK BUFFERS;V, MOV #DSKLHD,R0 ; R0 = DISK LISTHEAD POINTER% MOV R00HI40,R1 ; R1 = SAVE LISTHEAD ADDR,- MOV R1,(R0)+ ; INITIATE THE LISTHEAD TO NULL. MOV R1,(R0)+ ; ... +80$: MOV N.BUF(R0),R2 ; R2 = BUFFER ADDRESS + MOV R2,N.PTR(R0) ; INIT THE BUFFER POINTER)' MOV N.LEN(R0),R3 ; R3 = LENGTH OF READS,; BIT #3,D2DMSK ; READ DISKS 1 BLK AT A TIME ; BEQ 240$; MOV #512.,R3 ; I.E. 512 BYTESD;240$:' MOV R0,R1 ; R1 = IO STATUS BLOCK ADDRI ADD #N.IOST,R1 ; ...I( MOV #FDBINP,R5 ; R5 = INPUT FDB ADDRESSA QIO$S #IO.RVB,#INLUN,,,R1,INVEC,,4 ADD DSKFCT,F.BKVB+2(R5) ; UPDATE THE NEXT BLOCK NO. ADC F.BKVB(R5) ; ....- ADD #N.SIZE,R0 ; ADVANCE TO NEXT BUFFER NODE $;???? CMP R0,#DSKLND ;+AF3 Past end? BLO 80$ ; CONTINUE IF IN RANGE. JMP WAIT ; ELSE GO WAIT FOR XFER TO COMPLETE .page& .SBTTL DSKIN - DISK INPUT AST ROUTINE; "; DSKIN - HANDLE DISK I/O DONE AST;,DSKIN: MOV (SP)+,R5 ; R5 = IO STATUS ADDRESS( SUB #4,R5 ; POINT R5 TO NODE BEGINNING7 BIT #,FLAGS ; ANY ERRORS OR IS I/O COMPLETE?,# BNE 85$ ; YES - JUST EXIT THE ASTC3 TSTB N.IOST(R5) ; WAS THERE AN ERROR ON THIS XFER?V BPL 20$ ; NO - CONTINUER& CMPB #IE.EOF,N.IOST(R5) ; WAS IT EOF? BNE 40$ ; NO - REAL ERROR?& BIT #3,D2DMSK ; THIS A DSK-DISK XFER? BEQ 10$ ; IF EQ NO1 CMP ENDIO,ENDBK ; IF NE YES, BE SURE OUTPUT DONEI BHI 10$ ; SET EOF WHEN DONE  BLO 20$& CMP ENDIO+2,ENDBK+2 ; CHECK DBL PREC.* BLO 20$ ; IF NOT AT END IGNORE EOF INPUT10$: BIS #EOF,FLAGS ; FLAG EOF BR 85$ ; & IGNORE ASTR:20$: MOV N.IOST+2(R5),N.WRK(R5) ; COPY THE # BYTES XFERRED0 ADD N.BUF(R5),N.WRK(R5) ; POINT TO END BYTE + 12 MOV N.BUF(R5),N.PTR(R5) ; SETUP THE BEGINNING PTR6 MOV DSKLHD+2,R4 ; R4 = PRIOR (LAST) NODE IN LIST ADDR( CALL NODADD ; ADD NODE TO END OF QUEUE; D;+AF3 Here we get sneeky. If this is a compare operation, this ASTI;+AF3 is being used by the tape-to-disk routine, but for read operations.B;2* TST CMPPAS ;+AF3 Is this a compare pass?, BEQ 30$ ;+AF3 No, skip and do normal stuff: JMP TPDKDQ ;+AF3 Yes, go to tape-to-disk dequeue routine30$:, JMP DKTPDQ ; GO TO MAIN DE-QUEUING ROUTINE%40$: TST CMPPAS ;+AF3 Doing compare?T BEQ 50$ ;+AF3 No,skip? QIOW$S #IO.KIL,#OUTLUN,#1,,#IOST ; CANCEL ALL OTHER DISK I/O'SD BR 60$ 50$:> QIOW$S #IO.KIL,#INLUN,#1,,#IOST ; CANCEL ALL OTHER DISK I/O'S60$: BIS #ERR,FLAGS ; FLAG THE ERROR2 MOVB N.IOST(R5),DSKERR ;+AF1 SAVE DISK ERROR CODE- BPL 80$ ;+AF1 SKIP IF POSITIVE (NOT LIKELY)?8 MOVB #-1,DSKERR+1 ;+AF1 ELSE MAKE HI BYTE NEGATIVE ALSO80$:" RESUME ; CONTINUE THE MAIN TASK85$: ASTX$S ; EXIT THE AST .page1 .SBTTL TAPOUT - TAPE OUTPUT I/O DONE AST ROUTINEc;a'; TAPOUT - TAPE OUTPUT I/O DONE ROUTINEI;I.TAPOUT: MOV (SP)+,R5 ; R5 = I/O STATUS ADDRESS( BIT #,FLAGS ; ERRORS OR DONE? BEQ 10$ JMP 85$ ; YES - JUST EXIT10$: ADD #1,ENDIO+2 ;COUNT I/O DONES ADC ENDIO BIT #2,D2DMSK BEQ 20$ CMP ENDIO,ENDBK BLO 20$ ;PAST END? BHI 40$ CMP ENDIO+2,ENDBK+2 BHIS 40$ ;TREAT AS EOF20$:, SUB #N.IOST,R5 ; ADJUST R5 TO POINT TO NODE1 BIT #ERMSK,CSIFLG ;TRYING TO IGNORE TAPE ERRORS? BEQ 30$ ;IF NOT, LOOK AT ALL) CMPB N.IOST(R5),#IE.PRI ;TAPE UNMOUNTED?P/ BEQ 60$ ;IF SO THEN DONE. IGNORE OTHER ERRORS;@;NOTE THE /EVOR /ER SWITCHES CAN MAKE TAPE RUN OFF REEL. TOO BAD&; IF SO (USER OUGHT TO KNOW BETTER...) BIT #EVMSK,CSIFLG BNE 24$ CMPB N.IOST(R5),#IE.EOT BEQ 60$ CMPB N.IOST(R5),#IE.EOV+ BEQ 60$ ;ALLOW PRIV, EOT, OR EOV AS REAL.D#24$: BR 50$ ;SKIP NORMAL TEST THENF630$: TSTB N.IOST(R5) ; WAS THERE AN ERROR ON THE XFER? BMI 60$ ; YES - SO INDICATEO BR 50$R,40$: BIT #40,D2DMSK ;UNLESS SPECIAL FLAG SET BNE 50$5 BIS #DONE,FLAGS ;ON DSK-DSK, DONE WHEN FINISHED XFER 3 MOV N.BUF(R5),N.PTR(R5) ; SETUP THE BUFFER POINTERN1 CLR N.WRK(R5) ; RESET THE NO. BYTES LEFT TO XFERH6 MOV TPLHD+2,R4 ; R4 = PRIOR (LAST) EXISTING NODE ADDR5 CALL NODADD ; ADD THE NODE TO FREE TAPE BUFFER LISTV< QIOW$S #IO.KIL,#OUTLUN,#1,,#IOST ; CANCEL ALL CURRENT I/O'S BR 80$A50$:3 MOV N.BUF(R5),N.PTR(R5) ; SETUP THE BUFFER POINTERT1 CLR N.WRK00-TADATADATA(R5) ; RESET THE NO. BYTES LEFT TO XFER6 MOV TPLHD+2,R4 ; R4 = PRIOR (LAST) EXISTING NODE ADDR5 CALL NODADD ; ADD THE NODE TO FREE TAPE BUFFER LIST0 JMP DKTPDQ ; GO TO THE MAIN DE-QUEUING ROUTINE60$:< QIOW$S #IO.KIL,#OUTLUN,#1,,#IOST ; CANCEL ALL CURRENT I/O'S BIS #ERR,FLAGS ; FLAG THE ERROR, MOVB N.IOST(R5),MTERR ;+AF1 Save error code- BPL 80$ ;+AF1 Skip if positive (not likely)I7 MOVB #-1,MTERR+1 ;+AF1 else make HI byte negative alsoF80$:+ RESUME ; CONTINUE EXECUTION OF MAIN TASKW 85$: ASTX$ST .page- .SBTTL DKTPDQ - DISK TO TAPE DEQUEUE ROUTINER;A ; DKTPDQ-G;D@; This routine interfaces the data coming in a continuous streamB; from the disk (in multi-block buffers) to the magtape output. AsB; the tape is blocked 512., it is desirable to keep a constant no.?; of I/O requests queued up to the tape drive, thereby allowingL!; this program to pay for itself.i;y3DKTPDQ: MOV #DSKLHD,R0 ; R0 = DISK LISTHEAD POINTERa CMP (R0),R0 ; NULL LIST? BEQ 10$ ; YES - WAIT FOR WORK5. MOV (R0),R0 ; R0 = THE 1ST NODE ADDR IN LIST/ MOV #TPLHD,R2 ; R2 = TAPE OUTPUT LISTHEAD ADDRi* CMP (R2),R2 ; ANY NODES FREE FOR OUTPUT?) BEQ 10$ ; NO - WAIT FOR SOME TO FREE UPu/ MOV (R2),R2 ; R2 = ADDR OF 1ST FREE TAPE NODEl BR 20$ ; CONTINUEi10$: ASTX$S ; EXIT AST;fG; Transfer data from the current disk buffer to the current tape bufferrL; (note that this might be the resumption of a transfer begun earlier). WhenJ; the tape buffer is filled (or the operation type determined if EOF), theJ; the tape node is dequeued & the output initiated. When a disk buffer is/; empty, the next one in the queue is serviced.R;T<20$: MOV N.WRK(R2),R3 ; R3 = REMAINING BYTES IF PARTIAL XFER' BNE 30$ ; WAS A PARTIAL - CONTINUE IT0. MOV @N.PTR(R0),R3 ; ELSE, START OF NEW RECORD- ADD #2,N.PTR(R0) ; ADVANCE OVER CONTROL WORDt) MOV R3,N.WRK(R2) ; SAVE IT AS SIZE REQ'Di BNE 30$ JMP 160$ ; ZERO - GO WRITE EOF!; BEQ 160$ ; ZERO - GO WRITE EOF 430$: MOV N.WRK(R0),R1 ; R1 = ENDING DISK BUFFER ADDR/ SUB N.PTR(R0),R1 ; R1 = # BYTES LEFT IN BUFFERt BNE 50$)40$: JMP 210$ ; NO BYTES LEFT IN BUFFER!t50$:* CMP R1,R3 ; WILL THIS BE A PARTIAL COPY?, BHIS 60$ ; NO - ALL OF DATA IN DISK BUFFER% SUB R1,R3 ; R3 = AMOUNT STILL REQ'DM6 MOV R3,N.WRK(R2) ; UPDATE TAPE BUFFER REMAINING COUNT1 MOV R1,R3 ; R3 = ACTUAL NUMBER OF BYTES TO XFER( BR 80$ ; CONTINUE -60$: CLR N.WRK(R2) ; INDICATE WHOLE XFER GOODF)80$: MOV N.PTR(R0),R4 ; R4 = FROM POINTERM# MOV N.PTR(R2),R5 ; R5 = TO POINTERF ASR R3 ; R3 = WORD XFER COUNT=$85$: MOV (R4)+,(R5)+ ; COPY THE DARA SOB R3,85$ ; ...+ MOV R4,N.PTR(R0) ; UPDATE THE DISK POINTERI& MOV R5,N.PTR(R2) ; & THE TAPE POINTER- TST N.WRK(R2) ; DO WE WRITE THE TAPE BUFFER?A BNE 40$ ; NO - SEE ABOUT DISK(, MOV N.BUF(R2),R4 ; R4 = TAPE BUFFER ADDRESS+ SUB R4,R5 ; R5 = NO. BYTES DATA IN BUFFER(% MOV R2,R3 ; R3 = THE IO STATUS ADDRK ADD #N.IOST,R3 ; ...F BIT #3,D2DMSK BEQ 95$ CMP LOHI,ENDBKO BHI 100$ BLO 95$ CMP LOLO,ENDBK+2O BHIS 100$95$:5 QIO$S #IO.WLB,#OUTLUN,,,R3,OUTVEC,H100$: BIT #3,D2DMSK BEQ 110$R ADD #1,LOLO ADC LOHI ;COUNT BLK # TO DOR110$:(2 BIC #EOV,FLAGS ; RESET THE END-OF-VOLUME TEST BIT;TD;GCE02 - For ANSI tape set HDRLVL or ANSCNT and don't set EOV status3; if inside ANSI area where 2 EOFS are * NOT * EOV.T;D& BIT #1,ANSFLG ; /ANSI TAPE FLAG SEEN? BEQ 150$ ; IF EQ NO, NORMAL ? BIT #4,ANSFLG ;IS THIS /RT11 ANSI VERSION (NOT 80 BYTE LABELS)B# BNE 120$ ;IF SO SKIP LENGTH CHECK$ CMP R5,#80. ;WRITING 80 BYTES?) BNE 150$ ;IF NOT THIS ISN'T OF INTEREST##120$: CMP (R4),LITEO ; EOV OR EOF2?A" BNE 140$ ; IF NOT CHECK FOR HDR2;COULD BE AN EOV OR EOF2 CMPB 2(R4),LITVV ; IS IT EOV? BNE 130$ ;IF NE NO; SAW EOV1 SO BUMP ANSCNTo INC ANSCNT ;COUNT EOV1 BR 200$/130$: CLR ANSCNT ;2 EOV1 IN A ROW ARE REAL END,% CMP 2(R4),LITF2 ; SEE IF EOF2 RECORD02 BNE 200$ ; IF NE NO, JUST SKIP ANY SPECIAL STUFF* DEC HDRLVL ;ELSE COUNT DOWN HEADER LEVEL BGE 200$ ;ANDL00")HI4' CLR HDRLVL ;...CLAMP IT POSITIVE OR 0Y BR 200$)140$: CMP (R4),LITHD ;COULD THIS BE HDR2?$ BNE 200$ ;IF NOT, JUST BYPASS0 CMP 2(R4),LITR2 ;IF REALLY HDR2 THIS WILL BE EQ BNE 200$ INC HDRLVL ;SO COUNT UP LEVELB150$: ; END GCE02  BR 200$ ; CONTINUE&160$: MOV R2,R3 ; R3 = IO STATUS ADDR ADD #N.IOST,R3 ; ...  BIT #3,D2DMSK ;DSK-DSK? BEQ 170$T BIT #40,D2DMSKR BNE 170$E BR 180$170$:," QIO$S #IO.EOF,#OUTLUN,,,R3,OUTVEC180$:;- BIT #EOV,FLAGS ; WAS EOV FLAG SET LAST TIME?" BNE 230$ ; YES - TWO EOF'S = EOV$ BIT #1,ANSFLG ; /ANSI TAPE? ;GCE02# BEQ 190$ ; IF EQ NO, JUST SET EOVN3 CMP ANSCNT,#2 ; SAW EOV1 AND EOV2 RECORDS ALREADY?I, BHIS 190$ ;IF SO SET EOV FLAG FOR NEXT EOF8 TST HDRLVL ;BUT IF BETWEEN HDR2 AND EOF2 INSIDE VOL...& BNE 200$ ;...THEN DON'T SET EOV FLAG190$:# ;END GCE02- BIS #EOV,FLAGS ; NO - SO SET IT FOR THIS EOFT/200$: MOV R2,R5 ; R5 = NODE ADDRESS FOR DELETE#. CALL NODDEL ; DELETE THE NODE FROM THE QUEUE; L; DETERMINE WHETHER CURRENT DISK BUFFER IS EMPTY & INITIATE A NEW READ IF SO;;-210$: CMP N.WRK(R0),N.PTR(R0) ; BUFFER EMPTY? BLOS 220$' JMP DKTPDQ ; NO - CONTINUE DEQUEUEINGA220$:I MOV R0,R5 ; R5 = NODE ADDR/ CALL NODDEL ; DELETE THE NODE FROM DISK QUEUER! MOV R0,R1 ; R1 = IO STATUS ADDR  ADD #N.IOST,R1 ; ... $ MOV N.BUF(R0),R4 ; R4 = BUFFER ADDR* MOV N.LEN(R0),R5 ; R5 = NO. BYTES TO READ/; BIT #3,D2DMSK ; READ DISKS 1 BLK AT A TIME... ; BEQ 382$; MOV #512.,R5;382$: MOV #FDBINP,R3 ; R3 = FDB ADDRUA QIO$S #IO.RVB,#INLUN,,,R1,INVEC, - ADD DSKFCT,F.BKVB+2(R3) ; UPDATE NEXT BLOCK#  ADC F.BKVB(R3) ; ...  JMP DKTPDQ ; CONTINUE2%230$: BIS #DONE,FLAGS ; FLAG I/O DONE  .IF NDF,XXEOF BIT #2,D2DMSK BEQ 240$ BIT #40,D2DMSK= BEQ 250$A240$:A" QIO$S #IO.EOF,#OUTLUN,,,R3,OUTVEC" QIO$S #IO.EOF,#OUTLUN,,,R3,OUTVEC" QIO$S #IO.EOF,#OUTLUN,,,R3,OUTVEC;3E;NOW HAVE 5 EOF'S OUT TO DO. THUS WE NEED TO BACKSPACE OVER 4 RECORDS3;;TO LEAVE TAPE IN POSITION AFTER THE FIRST EOF. DO IT THUS:,;1 .MCALL QIOW$SB QIOW$S #IO.SPF,#OUTLUN,#20.,,R3,OUTVEC,#-4 ;BACKSPACE OVER 4 EOFS) BIT #20,D2DMSK ;/FR FINAL REWIND WANTED?; BEQ 250$ ;IF NOT SKIP IT6 QIOW$S #IO.RWD,#OUTLUN,#20.,,R3,OUTVEC ;DO THE REWIND250$:2;&; NOTE THE WAIT TO ENSURE WE GET DONE.F; THIS WILL PREVENT THE IO.KIL FROM CLOBBERINT THE EOF WRITES THAT ARE; OUTSTANDING.;L .ENDC" RESUME ; CONTINUE THE MAIN TASK ASTX$S ; EXIT AST .page .SBTTL --SUBROUTINES--V# .SBTTL NODADD - ADD NODE TO DEQUEF;O ; NODADD- ADD NODE TO DEQUE LIST;$; INPUTS: R5 = NODE ADDRESST; R4 = PRIOR NODE ADDRESS;; OUTPUTS: SAME;F-NODADD: MOV R4,2(R5) ; SETUP BACKWARD POINTER& MOV (R4),(R5) ; SETUP FORWARD POINTER+ MOV R5,(R4) ; SETUP PRIOR FORWARD POINTERO% MOV (R5),R5 ; POINT R5 TO NEXT NODEN- MOV (R4),2(R5) ; SETUP NEXT BACKWARD POINTERT MOV (R4),R5 ; RESTORE R5 RETURNS( .SBTTL NODDEL - DELETE NODE FROM DEQUE;A'; NODDEL- DELETE NODE FROM DEQUEUE LISTB; ; INPUTS: R5 = NODE ADDRESS;; OUTPUTS: SAME; -NODDEL: MOV (R5),@2(R5) ; POINT PRIOR TO NEXTR# MOV (R5),-(SP) ; SAVE NEXT ADDRESSS- ADD #2,(SP) ; POINT TO NEXT BACWARD POINTERW0 MOV 2(R5),@(SP)+ ; POINT NEXT BACKWARD TO PRIOR RETURNRH .END BEGIN ;JKN02),2(R5) ; SETUP NEXT BACKWARD POINTERT MOV (R4),R5 ; RESTORE R5 RETURNS( .SBTTL NODDEL - DELETE NODE FROM DEQUE;A'; NODDEL- DELETE NODE FROM DEQUEUE LISTB; ; INPUTS: R5 = NO; T P C A S M . C M D ;TPC,TPC/-sp=TPC 1 z   1 1 1 1 1 1 DEee $ $    f e  C C C e`w \ ҥ[, &]  5 s  D wb00*+-TADATADATA; T P C B L D . C M D ;TPC,TPC/-SP=TPC / TASK=...TPC//z   1 1 1 1 1 1 DEee $ $    f e  C C C e`w \ ҥ[, &]  5 s  D wb8C PROGRAM TO MAKE DIRECTORIES OF TPC CONTAINER FILES UP.:C ASSUMES THE CONTAINER IS OF A FLX TAPE...ALL OTHERS NEED C NOT APPLY.C GLENN C. EVERHART, 3/1981! DIMENSION IDATA(514) ! DATA AREAo DIMENSION IIDAT(600)s DIMENSION I2DAT(258)r EQUIVALENCE(IDATA(1),I2DAT(1))a EQUIVALENCE(IIDAT(1),IDATA(1))e BYTE IIDATo BYTE IK1(2) INTEGER*2 IK2 EQUIVALENCE(IK1(1),IK2) INTEGER * 2 IDATA INTEGER * 2 I2DAT DIMENSION NAMWRK(50)r BYTE NAMWRK DIMENSION IFNAM(10) BYTE IFNAMt INTEGER * 4 INIT,MASBLK7C LIST NAMES, EXT, UIC ONLY...TOO HARD TO DO MUCH MORE.  DIMENSION NAMSPC(50)L BYTE NAMSPC DO 1 I=1,10 1 IFNAM(I)=32G WRITE(5,780)TE780 FORMAT(' "FILE.DOS/" EXTRACTS 1 FILE. "FILE.DOS//" EXTRACTS ALL')D WRITE(5,1000)51000 FORMAT('$ENTER TPC CONTAINER FILESPEC TO LIST>')D READ(5,2000)NSSZ,NAMSPC2000 FORMAT(Q,50A1)I NAMSPC(NSSZ+1)=0V. MAKFIL=0 ! NO MAKING OF OUTPUT FILES HERE YET MAKMRG=0 ! NO MERGER YETR DO 500 I500=1,NSSZ! IF(NAMSPC(I500).EQ.'/') GOTO 501 500 CONTINUE GOTO 502 501 CONTINUE" IF(NAMSPC(I500+1).EQ.'/')MAKMRG=1 MAKFIL=1M- NAMSPC(I500)=0 ! NULL TERMINATE THE FILENAME WRITE(5,503)4503 FORMAT('$ENTER SELECTED FILENAME (NO EXT,UIC)>') READ(5,504)NAMWRK504 FORMAT(80A1)C CONVERT SELECTED MASK STUFF  IF(NAMWRK(1).EQ.'*')GOTO 505'C FILENAME GIVEN...USE IWLDNM=0F CALL IRAD50(3,NAMWRK(1),IDPN1)V CALL IRAD50(3,NAMWRK(4),IDPN2)  CALL IRAD50(3,NAMWRK(7),IDPN3)R%C CONVERT FILENAME TO RAD50 FOR MATCHS GOTO 506. 505 IWLDNM=1 506 CONTINUE WRITE(5,507)0507 FORMAT('$ENTER EXTENSION>'). READ(5,504)NAMWRK IF(NAMWRK(1).EQ.'*') GOTO 508 IWLDEX=0F CALL IRAD50(3,NAMWRK(1),IDPEX)M GOTO 509S 508 IWLDEX=1 509 CONTINUE WRITE(5,510)0&510 FORMAT('$ENTER GROUP (400=WILD)>') READ(5,511)IDPGRP511 FORMAT(O6) IF(IDPGRP.GT.255)IDPGRP=-1V WRITE(5,512)N%512 FORMAT('$ENTER USER (400=WILD)>') READ(5,511)IDPUSR IF(IDPUSR.GT.255)IDPUSR=-1N@C YES, VIRGINIA, THIS SORT OF ENTRY OF FILESPECS IS A REAL CROCKCC BUT IS QUICK & DIRTY AND THE OUTPUT FILE HAS TO BE TECO'ED ANYHOWTC TO GET IT TO BE USEFUL.W 502 CONTINUEC NOW HAVE FILE SPEC IN NAMSPCCCC FORMAT OF DOS FILE LABELC FILC NAMC EXTC UICC PROTECTION CODEC DATE (JULIAN),C SPARE (USED FOR LAST 3 CHARS OF FILENAME)C8 OPEN(UNIT=1,NAME=NAMSPC,TYPE='OLD',ACCESS='SEQUENTIAL', 1 RECORDTYPE='VARIABLE',3 1 READONLY,FORM='UNFORMATTED',RECORDSIZE=129)UC- WRITE(5,1700)%1700 FORMAT('$ENTER OUTPUT DATASET>')  READ(5,2000)INMSZ,NAMSPCK NAMSPC(INMSZ+1)=0 IF(MAKFIL.NE.0)GOTO 5158 OPEN(UNIT=6,NAME=NAMSPC,TYPE='NEW',ACCESS='SEQUENTIAL', 1 CARRIAGECONTROL='LIST',O> 1 RECORDTYPE='VARIABLE',FORM='FORMATTED',RECORDSIZE=132) GOTO 516 515 CONTINUE8 OPEN(UNIT=6,NAME=NAMSPC,TYPE='NEW',ACCESS='SEQUENTIAL', 1 CARRIAGECONTROL='NONE',C> 1 RECORDTYPE='VARIABLE',FORM='FORMATTED',RECORDSIZE=200) 516 CONTINUE9C LOOP OVER FILE GETTING RECORDS. IF A RECORD IS 14 BYTES(*C LONG, THEN DISPLAY AS A DIRECTORY ENTRY.CNC COUNT BLOCKS TOO.+# MASBLK=0 ! TOTAL BLKS IN ALL FILES( NBLKS=0 ! BLKS IN CURRENT FILEE INIT=0 ! FILE COUNTER+ IDIDIT=0 ! FLAG WE ALREADY HAVE FILE OPEN.E 100 CONTINUE ISZ=514 CALL GET(1,IDATA,ISZ,ISTAT) IF (ISTAT.LT.0) GOTO 250T IF (ISTAT.NE.14)GOTO 102C6C SKIP IT IF PROTECTION HAS ANY HIGH BYTE...JUNK THEN.- IF ((IDATA(5).AND."377).NE.IDATA(5))GOTO 102C"C IF PROT IS 0 PROBABLY ALSO BOGUS IF (IDATA(5).EQ.0)GOTO 102A! IDID=IDIDIT ! SAVE OLD OPEN FLAGD IDIDIT=0 @ IF (MAKFIL.EQ.0.AND.INIT.NE.0)CALL 0029:HI4DMPSZ(IN1,IN2,IN3,IEXT,IUIC, 1 IPRT,NBLKS,6)0EC USE KLUDGE TO SEE IF WE GOT A 14 BYTE RECORD. OTHER LENGTHS ARE NOTLC DIRECTORIES. IN1=IDATA(1)T IN2=IDATA(2) IN3=IDATA(7)T IEXT=IDATA(3) IPRT=IDATA(5) IPRT=IPRT.AND.255 IUIC=IDATA(4)0C SAVE DIRECTORY STUFF TILL WE FIND FILE LENGTH MASBLK=MASBLK+NBLKS( NBLKS=0 ! SET FILE LENGTH TO 0 AT FIRST INIT=INIT+1 ! COUNT FILES TOO IF(MAKFIL.EQ.0)GOTO 103. IF(ISTAT.EQ.0)GOTO 103 !OMIT 0 LENGTH RECORDS&C DUMP OUT FILE IF THIS IS ONE WE WANT3 IF (IWLDNM.NE.0)GOTO 521 ! GO IF NAME HAS TO BE OKS= IF (IDPN1.EQ.IN1.AND.IDPN2.EQ.IN2.AND.IDPN3.EQ.IN3) GOTO 521O 523 CONTINUE IF(MAKMRG.NE.0)GOTO 782- IF (IDID.NE.0)GOTO 520 ! EXIT IF DONE OUTPUTR@C IMPLEMENT MERGER OF ALL FILES INTO OUTPUT FILESPEC IF HE TYPED,C FILE.DOS// ON COMMAND LINE IN FIRST PLACE.782 IDID=IDIDIT! GO TO 103521 IF(IWLDEX.NE.0) GOTO 522 IF(IDPEX.EQ.IEXT)GOTO 522 GOTO 523O 522 CONTINUE IK2=IUICT IGX=IK1(2) & IGX=IGX.AND.255 ! MASK SIGN EXTENSION IUI=IUIC.AND.255  IF(IDPGRP.LT.0)GOTO 524 IF(IDPGRP.EQ.IGX)GOTO 524 GOTO 523N524 IF(IDPUSR.LT.0)GOTO 525E IF(IDPUSR.EQ.IUI)GOTO 525 GOTO 523M 525 CONTINUE?C NOW WE KNOW WE JUST GOT A MATCHING LABEL RECORD. FLAG THAT WEEC SHOULD COPY THE DATA.T IDIDIT=1C$ GOTO 103 ! NOW GO AND GET THE DATA. 102 CONTINUE IF (ISTAT.NE.0)NBLKS=NBLKS+1O IF(IDIDIT.EQ.0)GOTO 103 C HERE COPY DATA TO OUTPUT FILE. N2DO=ISTATO IF(N2DO.LE.0)GOTO 103 NSTLC=1 527 CONTINUE NNOW=100! IF(NNOW.GT.N2DO)NNOW=N2DO N2DO=N2DO-NNOW( NNOW2=NNOW+NSTLC4) WRITE(6,528)(IIDAT(III),III=NSTLC,NNOW2)2 NSTLC=NNOW2+1528 FORMAT(110A1)U IF(N2DO.GT.0)GOTO 527 103 CONTINUE GO TO 100 250 CONTINUE> IF(MAKFIL.EQ.0)CALL DMPSZ(IN1,IN2,IN3,IEXT,IUIC,IPRT,NBLKS,6) MASBLK=MASBLK+NBLKS INIT=INIT+1 IF(MAKFIL.NE.0)GOTO 520 WRITE (6,3000)INIT,MASBLK33000 FORMAT(' TOTAL FILES= ',I6,' TOTAL BLKS= ',I6) 520 CONTINUE CALL EXIT END7 SUBROUTINE DMPSZ(KN1,KN2,KN3,KEXT,KUIC,KPRT,KBLKS,LUN)=0C DUMP A DIRECTORY ENTRY FROM ARGS, ALL INTEGERS DIMENSION NAMEXT(14)W BYTE NAMEXT INTEGER * 2 IIC BYTE I1(2)T+ EQUIVALENCE(I1(1),II) ! USE TO COLLECT UIC)BC IF ZERO LENGTH FILES (GENERALLY SPURIOUS) ARE SEEN, FORGET THEM.CC (MADE A /DE OPTION SINCE THERE CAN BE REAL 0 LENGTH FILES THERE.)ID IF(KBLKS.EQ.0)RETURN IN1=KN1 IN2=KN2 IN3=KN3 IEXT=KEXT IPRT=KPRT NBLKS=KBLKS IUIC=KUIC NAMEXT(14)=32 ! SPACE NAMEXT(10)=46 ! DECIMALC CONVERT FILENAME CALL R50ASC(3,IN1,NAMEXT(1))N CALL R50ASC(3,IN2,NAMEXT(4))O CALL R50ASC(3,IN3,NAMEXT(7))N CALL R50ASC(3,IEXT,NAMEXT(11))G II=IUIC- WRITE(LUN,3002)NAMEXT,I1(2),I1(1),IPRT,NBLKS 13002 FORMAT(14A1,'[',O3,',',O3,'] <',O4,'> ',I5)R RETURN  ENDFORGET THEM.CC (MADE A /DE OPTION SINCE THERE CAN BE REAL 0 LENGTH FILES THERE.)ID IF(KBLKS.EQ.0)RETURN IN1=KN1 IN2=KN2 IN3=KN3 IEXT=KEXT IPRT=KPRT NBLKS=KBLKS IUIC=KUIC NAMEXT(14)=32 ! SPACE NAMEXT(10)=46 ! DECIMALC CONVERT FILENAME CALL R50ASC(3,IN1,NAMEXT(1))N CALL R50ASC(3,IN2,NAMEXT(4))O CCOO/MU,COOKIE/-SP=COOKIE/ TASK=...COO// .TITLE COOKIE .ENABLE LC .MCALL GTIM$S,QIOW$,DIR$ .MCALL EXIT$S ,GMCR$&PSOUT: QIOW$ IO.WLB,5,12,,,,<00,00,40>GTIMBF: .BLKW 8. GETMCR: GMCR$BEGIN: DIR$ #GETMCR GTIM$S #GTIMBF MOV GTIMBF+4,R1 MUL #24.,R1 ADD GTIMBF+6,R1 MUL #60.,R1 ADD GTIMBF+10,R1 BIC #100000,R1 MOV R1,R0 CLR R1 MUL #60.,R0 ADD GTIMBF+12,R1 ADC R0 DIV #NNN,R0  ASL R1 MOV TAB(R1),R3 MOV (R3)+,PSOUT+Q.IOPL+2 MOV R3,PSOUT+Q.IOPL DIR$ #PSOUT  EXIT$S .MACRO TT B,STRING00;+-TADATADATAS'B': .WORD L'B'  .ASCII \STRING\ LL'B'= .-S'B'-2 R $$= $$+1  .EVEN M .ENDM U$$= 0 9TT \$$,RNTT \$$,8TT \$$,,TT \$$,4TT \$$,;TT \$$,.CTT \$$,'RTT \$$,.TT \$$,5TT \$$,dTT \$$,s3TT \$$,i*TT \$$,QTT \$$,i?TT \$$,a;TT \$$,nFTT \$$,GTT \$$,m5TT \$$,sLTT \$$,GTT \$$,i5TT \$$,l2TT \$$,5TT \$$,\=TT \$$,t3TT \$$,aHTT \$$,4TT \$$,fTT \$$,<12>\To be is to do - Sartre\<15><12>\Do be do be do - Sinatra>:TT \$$,8TT \$$,$TT \$$,4TT \$$,5TT \$$, -TT \$$,y1TT \$$,hBTT \$$,KTT \$$,>ITT \$$,oDTT \$$,3TT \$$,w/TT \$$,edTT \$$,<12>\The haves get more, the have-nots die.>ATT \$$, $TT \$$,7TT \$$,TGTT \$$,mTT \$$,<12>\Lonely women sit at home and wait.\<15><12>\They never meet.>ocTT \$$,<12>\You can't make a Vitamin.> -TT \$$,v-TT \$$,m-TT \$$,<11-PDP eht edisni deppart ma I !pleH>n>TT \$$,LTT \$$,?TT \$$,eATT \$$,mDTT \$$,>TT \$$,XTT \$$,HTT \$$,8TT \$$,200C9:HI4TT \$$,BTT \$$,5TT \$$, dTT \$$,<12>\inspection.>=TT \$$,a/TT \$$,aWTT \$$, :TT \$$,6TT \$$,PTT \$$,WTT \$$,n/TT \$$,nLTT \$$,VTT \$$,TTT \$$,STT \$$,m1TT \$$,\ATT \$$,e.TT \$$,9TT \$$,d<TT \$$,5TT \$$,\RTT \$$,CTT \$$,a=TT \$$,\TTT \$$,>TT \$$,HTT \$$,-TT \$$,i=TT \$$, 9TT \$$,l*TT \$$,/TT \$$,f(TT \$$,<TT \$$,BTT \$$,+TT \$$,uTTT \$$,>TT \$$,.TT \$$,OTT \$$,aRTT \$$,DTT \$$,ATT \$$,n4TT \$$,LTT \$$,RTT \$$,BTT \$$,8TT \$$,TT \$$,ETT \$$,oKTT \$$,\HTT \$$,CTT \$$,n5TT \$$,eQTT \$$,\PTT \$$,GTT \$$,\<TT \$$,UTT \$$,T/TT \$$,vRTT \$$,BTT \$$,MTT \$$,p<TT \$$,/TT \$$,o@TT \$$,8TT \$$,kTT \$$,<12>\earth is concerned.>e>TT \$$,%TT \$$,ePTT \$$,ATT \$$,o0TT \$$,1TT \$$,oTTT \$$,GTT \$$,T5TT \$$,s8TT \$$,,TT \$$,*TT \$$,FTT \$$,oTT \$$,<12>\avoid responsibility?>pLTT \$$,dTT \$$,<12>\Americanized.>TTT \$$,XTT \$$,PTT \$$,YTT \$$,r;TT \$$,~TT \$$,<12>\when he's staring out the window.>zTT \$$,<12>\themselves cleverer than we are.>*TT \$$,OTT \$$,eQTT \$$,hPTT \$$,<TT \$$,=TT \$$,t8TT \$$,>TT \$$,2TT \$$,<TT \$$,PTT \$$,hTT \$$,<12>\it is more difficult to criticize the competent.>6TT \$$,NTT \$$,CTT \$$,b;TT \$$,\ATT \$$,oETT \$$,9TT \$$,sjTT \$$,<12>\art, music, and women.>JTT \$$,7TT \$$,iWTT \$$,lmTT \$$,<12>\to be thought so.>tFTT \$$,0TT \$$,'TT \$$,,PTT \$$,HTT \$$,ETT \$$,f/TT \$$, wTT \$$,<12>\on the train for home.>eNTT \$$,UTT \$$,ycTT \$$,<12>\book.>DTT \$$,4TT \$$,DTT \$$,.TT \$$,>TT \$$,TTT \$$,.TT \$$,;TT \$$,1?TT \$$,iRTT \$$,ATT \$$, 3TT \$$, )TT \$$,>2TT \$$,7TT \$$,oITT \$$,tNTT \$$,fTT \$$,<12>\into words.>6TT \$$,=TT \$$,s7TT \$$, JTT \$$,;TT \$$,s0TT \$$,BTT \$$,|TT \$$,<12>\Canyon and waiting for the echo.>VTT \$$,,TT \$$,;TT \$$,oHTT \$$,fTT \$$,<12>\of them.>vTT \$$,<12>\through hell to get it.>cTT \$$,<12>\elephant.>o@TT \$$,xTT \$$,<12>\inability to give bad examples.>sTT \$$,<12>\rather than illumination.>iDTT \$$,ATT \$$,n:TT \$$,ETT \$$,ecTT \$$,<12>\nature.> TT \$$,QTT \$$,rDTT \$$,00[+-TADATADATA2TT \$$,eTT \$$,<12>\there.>UTT \$$,t<TT \$$,4TT \$$,9TT \$$,i@TT \$$,iTT \$$,<12>\It would take a miracle to get you out of Casablanca.>h;TT \$$,<+TT \$$,olTT \$$,<12>\very thin paper.>+TT \$$,e2TT \$$,kTT \$$,<12>\without lying.>l)TT \$$,e%TT \$$,.9TT \$$,eATT \$$,goTT \$$,<12>\is nothing in it.>lWTT \$$,r5TT \$$, FTT \$$,@TT \$$,9TT \$$,eOTT \$$,nMTT \$$,nHTT \$$,hTT \$$,<12>\begun.>$TT \$$,2TT \$$,GTT \$$, DTT \$$,STT \$$, ;TT \$$,hYTT \$$,cPTT \$$,5TT \$$,<3TT \$$,t5TT \$$,p9TT \$$,sKTT \$$,r0TT \$$,TT \$$,<12>\but if you really make them think they'll hate you.>dTTT \$$,gTT \$$,<12>\ Quit work and play for once.>pWTT \$$, ;TT \$$,yITT \$$,'gTT \$$,<12>\to go away.>yKTT \$$,\>TT \$$,TT \$$,<12>\sweet pleasures, and so handy.>\BTT \$$,4TT \$$,.TT \$$,LTT \$$,PTT \$$,@TT \$$,DTT \$$,@TT \$$,OTT \$$,ifTT \$$,<12>\on cruise.>GTT \$$, BTT \$$,NTT \$$,3TT \$$,e=TT \$$,eBTT \$$,LTT \$$,CTT \$$,a&TT \$$,=TT \$$,\-TT \$$,hETT \$$, 'TT \$$, 1TT \$$,iMTT \$$,tMTT \$$,i:TT \$$,7TT \$$,i7TT \$$,nOTT \$$, <TT \$$,ETT \$$,e1TT \$$,eETT \$$,ThTT \$$,<12>\a well.>sTT \$$,<12>\top of a mountain.>u>TT \$$,1TT \$$,t>TT \$$,4TT \$$,"TT \$$,%TT \$$,c4TT \$$,ETT \$$,eKTT \$$,QTT \$$,o(TT \$$,8TT \$$,CTT \$$,m`TT \$$,<12>\It might have been.>|TT \$$,<12>\putting his bird in the right bush.>dTT \$$,<12>\is flakes.>PTT \$$,STT \$$,n%TT \$$, yTT \$$,<"Cheer up!", the man said. "Things could be worse." \<15><12>\So I cheered up and sure enough, things got worse.>oTT \$$,<12>\voice within me say, "You deserve it.">aETT \$$,<12>\The country needs more lerts!>hNNN=$$ .MACRO TENT C b .WORD S'C'h $$$=$$$+1  .ENDM $$$=0 TAB: g .REPT $$ TENT \$$$  .ENDM e .END BEGIN coming toward you.>n%TT \$$, yTT \$$,<"C00k l-TADATADATADAM/MU,DAMMIT/CR/-SP=DAMMIT/ TASK=...DAM// .TITLE DAMMIT .ENABLE LC .MCALL GTIM$S,QIOW$,DIR$ .MCALL EXIT$S ,GMCR$&PSOUT: QIOW$ IO.WLB,5,12,,,,<00,00,40>GTIMBF: .BLKW 8. GETMCR: GMCR$BEGIN: DIR$ #GETMCR GTIM$S #GTIMBF MOV GTIMBF+4,R1 MUL #24.,R1 ADD GTIMBF+6,R1 MUL #60.,R1 ADD GTIMBF+10,R1 BIC #100000,R1 MOV R1,R0 CLR R1 MUL #60.,R0 ADD GTIMBF+12,R1 ADC R0 DIV #NNN,R0  ASL R1 MOV TAB(R1),R3 MOV (R3)+,PSOUT+Q.IOPL+2 MOV R3,PSOUT+Q.IOPL DIR$ #PSOUT  EXIT$S .MACRO TT B,STRINGS'B': .WORD L'B'  .ASCII \STRING\ LL'B'= .-S'B'-2 R $$= $$+1  .EVEN M .ENDM U$$= 0  .?TT \$$,:ETT \$$,G5TT \$$,0ITT \$$,DITT \$$,RGTT \$$,WATT \$$,NETT \$$,r?TT \$$,t)TT \$$,eCTT \$$,l:TT \$$,ITT \$$,i?TT \$$,rFTT \$$,#TT \$$,r+TT \$$, GTT \$$,S;TT \$$,.1TT \$$,e5TT \$$,iETT \$$, ITT \$$,'ETT \$$, GTT \$$,aITT \$$, CTT \$$,eITT \$$,TETT \$$,T%TT \$$,aHTT \$$,/TT \$$,lCTT \$$,oHTT \$$,:TT \$$,GTT \$$,ATT \$$, 5TT \$$,yDTT \$$,>TT \$$,ITT \$$, GTT \$$,p?TT \$$,cATT \$$,tBTT \$$,ETT \$$,tCTT \$$,pFTT \$$,ITT \$$,t@TT \$$,CTT \$$,t;TT \$$,iITT \$$,H;TT \$$,s;TT \$$,i@TT \$$,ETT \$$,a:TT \$$,1TT \$$,t,TT \$$,dTT \$$,<15>\(Write Only Memory)>ITT \$$,iTT \$$,<15>\the police and had my CPU arrested.>stTT \$$,<15>\returned as imaginary.>xTT \$$,<15>\terminal usage;Such language!>aTT \$$,<15>\nano-jiffy?>fmTT \$$,<15>\on your keyboard.>,}TT \$$,<15>\an entire new operating system.> dTT \$$,<15>\per hand!>cTT \$$,<15>\per hand!>t*TT \$$,HTT \$$,LTT \$$,BTT \$$,RTT \$$,%TT \$$,iNNN=$$ .MACRO TENT C $ .WORD S'C'b $$$=$$$+1o .ENDM a$$$=0 TAB: o .REPT $$ TENT \$$$  .ENDM r .END BEGIN\$$,HTT \$$,LTT \$$,BTT \$$,RTT \$$,%TT \$$,iNNN=HEA/MU,HEADACHE/-SP=HEADACHE/ TASK=...HEA// .TITLE HEADAC .ENABLE LCe .MCALL GTIM$S,QIOW$,DIR$ .MCALL EXIT$S ,GMCR$&PSOUT: QIOW$ IO.WLB,5,12,,,,<00,00,40>GTIMBF: .BLKW 8. m GETMCR: GMCR$sBEGIN: DIR$ #GETMCRT GTIM$S #GTIMBFw MOV GTIMBF+4,R1 MUL #24.,R1 ADD GTIMBF+6,R1 MUL #60.,R1 ADD GTIMBF+10,R1g BIC #100000,R1t MOV R1,R0 CLR R1o MUL #60.,R0 ADD GTIMBF+12,R1c ADC R0 DIV #NNN,R0 c ASL R1j MOV TAB(R1),R3s MOV (R3)+,PSOUT+Q.IOPL+2e MOV R3,PSOUT+Q.IOPL DIR$ #PSOUT  EXIT$Sa .MACRO TT B,STRINGE00 {l-TADATADATAS'B': .WORD L'B'  .ASCII \STRING\ LL'B'= .-S'B'-2 R $$= $$+1  .EVEN M .ENDM U$$= 0  .7TT \$$,sMTT \$$,G8TT \$$,>TT \$$,CTT \$$,QLTT \$$,ATT \$$,$ATT \$$,p?TT \$$,eMTT \$$,oOTT \$$,>ATT \$$,.KTT \$$,r:TT \$$,HTT \$$,KTT \$$,$DTT \$$,NTT \$$,GTT \$$,PTT \$$,NTT \$$,OTT \$$,s4TT \$$,HTT \$$,OTT \$$,rETT \$$,r@TT \$$,/TT \$$,lFTT \$$,ETT \$$,eKTT \$$,dNTT \$$,PTT \$$,PTT \$$,OTT \$$,nOTT \$$, ITT \$$, QTT \$$,i5TT \$$, HTT \$$,4TT \$$,NTT \$$,FTT \$$,OTT \$$,i<TT \$$,DTT \$$,ITT \$$,x#TT \$$,aOTT \$$, BTT \$$,ETT \$$, CTT \$$,oOTT \$$,oOTT \$$,t7TT \$$,LTT \$$,/TT \$$,o=TT \$$,yNNN=$$ .MACRO TENT C . .WORD S'C'o $$$=$$$+1I .ENDM s$$$=0 TAB: .REPT $$ TENT \$$$  .ENDM r .END BEGINour system says, "That's where DECUS got their logo.">oOTT \$$,t7TT \$$,LTT \$$,GTIMBF: .BLKW 8. GETMCR: GMCR$BEGIN: DIR$ #GETMCR GTIM$S #GTIMBF MOV GTIMBF+4,R1 MUL #24.,R1 ADD GTIMBF+6,R1 MUL #60.,R1 ADD GTIMBF+10,R1 BIC #100000,R1 MOV R1,R0 CLR R1 MUL #60.,R0 ADD GTIMBF+12,R1 ADC R0 DIV #NNN,R0  ASL R1 MOV TAB(R1),R3 MOV (R3)+,PSOUT+Q.IOPL+2 MOV R3,PSOUT+Q.IOPL DIR$ #PSOUT . EXIT$S .MACRO TT B,STRINGDS'B': .WORD L'B'  .ASCII \STRING\ LL'B'= .-S'B'-2 R $$= $$+1  .EVEN M .ENDM U$$= 0  .>TT \$$,?TT \$$,18TT \$$,HTT \$$,8TT \$$,CTT \$$,ATT \$$, 6TT \$$,aTT \$$,<15>\And may you have a toothache in that one.>oKTT \$$, sTT \$$,<15>\the land isn't really yours.>b2TT \$$,<TT \$$,=TT \$$,lDTT \$$,8TT \$$,.TT \$$,;TT \$$, PTT \$$,KTT \$$,aJTT \$$,+TT \$$,$8TT \$$,?TT \$$,TUTT \$$,yETT \$$,t3TT \$$,iDTT \$$,3TT \$$,eLTT \$$,=TT \$$,e1TT \$$,e6TT \$$,=TT \$$, VTT \$$,OTT \$$,v5TT \$$,tITT \$$,r2TT \$$,/TT \$$,aGTT \$$,hSTT \$$,dFTT \$$,J; The following are from B.C.'s latest book "I don't wanta hear about it"ITT \$$,enTT \$$,<15>\your annual checkup>VTT \$$,LTT \$$,VTT \$$,:TT \$$,kTT \$$,<15>\ping pong paddles> ITT \$$,nLTT \$$,<TT \$$,TTT \$$,xTT \$$,<15>\Professional Association of Hit Men.>zTT \$$,<15>\line to the drivein theater.>eTT \$$,<15>\his nose.>rQTT \$$,$rTT \$$,<15>\of a ravenous goat.> ; Homage a Johnny Hart!NTT \$$,HTT \$$,1TT \$$,d1TT \$$,hATT \$$,y"TT \$$,nTT \$$,<15>\failures be catastrophic.>NNN=$$ .MACRO TENT C n .WORD S'C'\ $$$=$$$+1r .ENDM $$$=0 TAB: e .REPT $$ TENT \$$$  .ENDM r .END BEGINay your lover insist on separate tables at a fancy resteraunt.>1TT \$$,d1TT \$$,hATT \$$,y"TT \$$,nTT \$$,<15>\failures be catastrophic.>NNN=$$ .MACRMUR/MU,MURPHY/-SP=MURPHY/ TASK=...MUR// .TITLE MURPHY .ENABLE LC .MCALL GTIM$S,QIOW$,DIR$ .MCALL EXIT$S ,GMCR$&PSOUT: QIOW$ IO.WLB,5,12,,,,<00,00,40>GTIMBF: .BLKW 8. GETMCR: GMCR$BEGIN: DIR$ #GETMCR GTIM$S #GTIMBF MOV GTIMBF+4,R1 MUL #24.,R1 ADD GTIMBF+6,R1 MUL #60.,R1 ADD GTIMBF+10,R1 BIC #100000,R1 MOV R1,R0 CLR R1 MUL #60.,R0 ADD GTIMBF+12,R1 ADC R0 DIV #NNN,R0  ASL R1 MOV TAB(R1),R3 MOV (R3)+,PSOUT+Q.IOPL+2 MOV R3,PSOUT+Q.IOPL DIR$ #PSOUT  EXIT$S .MACRO TT B,STRING00 HI4S'B': .WORD L'B'  .ASCII \STRING\ LL'B'= .-S'B'-2 R $$= $$+1  .EVEN M .ENDM U$$= 0  .9TT \$$,gTT \$$,<15>\can blame it on.>A@TT \$$,gTT \$$,<15>\It's better to have a horrible ending that to have horrors without end.>?TT \$$,SFTT \$$,sTT \$$,<15>\to make them simple.> 7TT \$$,<15>\himself up and continue.>KTT \$$,TVTT \$$,WTT \$$,tsTT \$$,<15>\I believe I'll have another drink.>ejTT \$$,<15>\become dirty.>QTT \$$,e+TT \$$,nmTT \$$,<15>\arrive last.>u@TT \$$,-TT \$$,.=TT \$$,ipTT \$$,<15>\errors in the mail.>zTT \$$,<15>\until he knows nothing.>TT \$$,<15>\time but you can't fool Mom.>GNTT \$$,oTT \$$,<15>\somebody will.>ipTT \$$,<15>\expense account.>dTT \$$,<15>\lane.>zTT \$$,<15>\the cost of the wedding.>XTT \$$,tTT \$$,<15>\one more subtly wrong.>rTT \$$,<15>\of the workshop.>mTT \$$,<15>\be a rerun.>tqTT \$$,<15>\counters turbulence.>sBTT \$$,LTT \$$,xTT \$$,<15>\will throw off its rider.>|TT \$$,<15>\them into the impossible.>FTT \$$,kTT \$$,<15>\opposition.>oTT \$$,<15>\its price and directly with its ugliness.>JTT \$$,CTT \$$,bmTT \$$,<15>\crop failure.>eNTT \$$,ITT \$$,TeTT \$$,<15>\do do.>\sTT \$$,<15>\you learn from it.>ovTT \$$,<15>\the next time he's in need.>oTT \$$,<15>\firing the coach.>L|TT \$$,<15>\ticularly wanted to keep.>@TT \$$,gTT \$$,<15>\the date.>aYTT \$$,iTT \$$,<15>\you don't understand the problem.>$FTT \$$,TTT \$$,GTT \$$,l8TT \$$,wTT \$$,<15>\he knows what it is.>cqTT \$$,<15>\it's not $19.95.>s?TT \$$,d<TT \$$,CTT \$$,rpTT \$$,<15>\repeat itself.>(TT \$$,KTT \$$,9TT \$$,<15>\boss walks throught the office.>ATT \$$,sKTT \$$,.uTT \$$,<15>\somebody won't like it.>TJTT \$$,?TT \$$, <TT \$$,xTT \$$,<15>\cause the most damage will.>OTT \$$,u<TT \$$,DTT \$$,=TT \$$,rkTT \$$,<15>\past tense.>rnTT \$$,<15>\about money.>CTT \$$,bVTT \$$,gTT \$$,<15>\preempted.>s@TT \$$,uTT \$$,<15>\expect to find it.>hoTT \$$,<15>\someone else.> jTT \$$,<15>\better?>CTT \$$, iTT \$$,<15>\loopholes.>$sTT \$$,<15>\need it next day.>\KTT \$$,hCTT \$$, qTT \$$,<15>\its desirability.>e6TT \$$,jTT \$$,<15>\draws near.>CTT \$$, :TT \$$,ITT \$$,atTT \$$,<15>\attendance will be down.>uTT \$$,<15>\lature is in session.>a7TT \$$,r<TT \$$,vTT \$$,<5th Law of the Office: Vital papers will move from where you left them to where\<12><15>\you can't find them.>>TT \$$,ATT \$$,n~TT \$$,<15>\back, you've got something.>lTT \$$,<15>\superior to them.>STT \$$,ekTT \$$,<15>\expected.>fDTT \$$,ETT \$$,y,TT \$$,CTT \$$, 7TT \$$,>OTT \$$,cmTT \$$,<15>\the universe.>.tTT \$$,<15>\experience of the crew.>MTT \$$,$qTT \$$,<15>\food available.>tlTT \$$,<15>\go wrong.>HTT \$$,GTT \$$,e?TT \$$,$oTT \$$,<15>\the same time.>sTTT \$$,UTT \$$,\{TT \$$,<15>\offered your last semester.>tBTT \$$,;TT \$$, ETT \$$,afTT \$$,<15>\team.>JTT \$$,eTT \$$,<15>\behind.>fkTT \$$,<00-TADATADATAHeisenberg's Principle: You may know where the Stock Market is going, but not\<12><15>\after that.>tmTT \$$,<15>\you're late.>uXTT \$$,YTT \$$,aeTT \$$,<15>\worse.>nsTT \$$,<15>\effort to prepare.>TiTT \$$,<15>\on sale.>uSTT \$$,uOTT \$$,'MTT \$$,shTT \$$,<15>\that you tried.>HTT \$$,uTT \$$,<15>\train coming toward you.> CTT \$$, MTT \$$,'rTT \$$,<15>\you've got it made.><TT \$$,gTT \$$,<15>\catch up.>hUTT \$$,sXTT \$$,UTT \$$,>ATT \$$,\VTT \$$,MTT \$$,n=TT \$$,opTT \$$,<15>\knew it would.>`TT \$$,<1. Never be first.\<12><15>\2. Never be last.\<12><15>\3. Never volunteer for anything.>ETT \$$,TATT \$$,ujTT \$$,<15>\machine.>LTT \$$,BTT \$$,LTT \$$,QTT \$$, RTT \$$,LTT \$$,}TT \$$,<15>\to the cost of the wedding.>$PTT \$$,HTT \$$,XTT \$$,xTT \$$,<15>\the fishing around you.>XTT \$$,GTT \$$,LkTT \$$,<15>\each other.>l}TT \$$,<15>\board or buying a hot dog.>o9TT \$$,e~TT \$$,<15>\either spit, pick or scratch.>dTT \$$,<15>\thing.">sTT \$$,<15>\have been exhausted.>fpTT \$$,<15>\it's the wrong side.>CTT \$$,LBTT \$$,jTT \$$,<15>\his course.>mTT \$$,<15>\of the hairdo.>i@TT \$$,ETT \$$, 7TT \$$,iPTT \$$,LTT \$$,;TT \$$,'ITT \$$,5TTT \$$,TT \$$,<15>\tion to the softness of the roll.>TVTT \$$,?TT \$$,s<TT \$$,Utt\$$,<+TT \$$,ijTT \$$,<15>\matter at all.>{TT \$$,<15>\But who says it's ever gonna speed up?>dSTT \$$,TTT \$$,<15>\found to be correct originally.>ekTT \$$,<15>\you start.>tiTT \$$,<15>\working.>aRTT \$$,KTT \$$,.rTT \$$,<15>\in the same way.>ITT \$$,dJTT \$$,>TT \$$,{TT \$$,<15>\as furlongs per fortnight.>rMTT \$$, BTT \$$,9TT \$$,tSTT \$$,< Law of Computer programming: Any given program, when running is obsolete.>fXTT \$$,eTT \$$,<15>\documented.>fgTT \$$,<15>\its output.>yTT \$$,<15>\lity of the maintainer.>.nTT \$$,<15>\ unreliable.>NTT \$$,iTT \$$,<15>\use it.>CjTT \$$,<15>\long enough.><TT \$$,ETT \$$,gTTT \$$,YTT \$$,spTT \$$,<15>\by statistics.>QTT \$$,h@TT \$$,fTT \$$,<15>\mistake.>VTT \$$,HTT \$$,pTT \$$,<15>\negative example.>>TT \$$,WTT \$$,oXTT \$$,ATT \$$, fTT \$$,<15>\difference.>>TT \$$,ITT \$$,aETT \$$,rrTT \$$,<15>\you don't need it.>PTT \$$,MTT \$$,esTT \$$,<15>\have been exhausted.>nDTT \$$,WTT \$$,rFTT \$$,BTT \$$,eTT \$$,<15>\axe.><15>\will hit the paper.>odTT \$$,<15>\else.>pTT \$$,<15>\want it to do.>gTT \$$,<15>\handle.>aYTT \$$,lgTT \$$,<15>\expert.>$QTT \$$,<5TT \$$,alTT \$$,<15>\stupidity.>tTT \$$,<15>\will be illegible.>zTT \$$,<15>\about the one book you didn't read.>YTT \$$,fyTT \$$,<15>\scoreboard or buying food.>t1TT \$$,yDTT \$$,XTT \$$,mTT \$$,<15>\buy the item.>yhTT \$$,<15>\other side.>>TT \$$,|TT \$$,<15>\the bathroom door you're on.>VTT \$$,WTT \$$,wTTT \$$,NNN=$$ .MACRO TENT C w .WORD S'C'2 $$$=$$$+1  .ENDM T$$$=0 TAB: a .REPT $$ TENT \$$$  .ENDM r .END BEGINT \$$,5 THEN 4542 PRINT #4, XX$ 43 GOTO 40845 A$=SBS$(XX$,1,8) : B$=SBS$(XX$,9,6) : C$=SBS$(XX$,15)46 AD=OCT(SBS$(A$,5,3)) 47 IF AD<128 GOTO 4948 AD=AD-128 : GOTO 47 49 AD=AD*2 50 B=OCT(B$)52 FOR I=1 TO 1653 X(I)=B-INT(B/2)*2?54 IF I=11 THEN LET X(I)=1-X(I) :! INVERT DATA BITS 10 THRU 12 H55 IF I=12 THEN LET X(I)=1-X(I) :! (11-13 COUNTING FROM 1 INSTEAD OF 0) 56 IF I=13 THEN LET X(I)=1-X(I) 57 B=INT(B/2) 58 NEXT I60 FOR XX=1 TO 461 PRINT #4, OCT$(AD+XX-1);" ";3E65 FOR I=1 TO 4 : PRINT #400̘͘-TADATADATA, FRMT$(X(DE(21-XX*4-I)+1),1);" "; : NEXT IB70 IF XX=4 THEN PRINT #4,C$; 71 PRINT #4$ 72 NEXT XX 80 GOTO 40 200 CLOSE F AD<128 GOTO 4948 AD=AD-128 : GOTO 47 49 AD=AD*2 50 B=OCT(B$)52 FOR I=1 TO 1653 X(I)=B-INT(B/2)*2?54 IF I=11 THEN LET X(I)=1-X(I) :! INVERT DATA BITS 10 THRU 12 H55 IF I=12 THEN LET X(I)=1-X(I) :! (11-13 COUNTING FROM 1 INSTEAD OF 0) 56 IF I=13 THEN LET X(I)=1-X(I) 57 B=INT(B/2) 58 NEXT I60 FOR XX=1 TO 461 PRINT #4, OCT$(AD+XX-1);" ";3E65 FOR I=1 TO 4 : PRINT #4 0 1 0 1 0 1 0 1 0 0 2 1 0 0 1 "3 0 1 0 1 ;.ASCII KD RK05/RK11 4 0 1 1 0 5 0 0 0 1 6 1 1 0 0 7 0 0 0 1 ; ?? 10 0 0 0 0 11 1 0 1 1 12 1 1 0 1 /13 0 0 0 1 ;SEC ;DON'T RET TO CONSOLE UCODE 14 0 0 0 1 15 1 1 0 0 16 1 0 0 0 &17 0 0 0 0 ;MOV #0,R0 ;SET TO CLEAR 20 0 0 0 0 21 0 0 0 0 22 1 1 0 0 23 0 0 0 1 ; 24 0 0 0 1 25 1 1 0 0 26 1 0 0 1 827 0 0 0 0 >------>;MOV #177404,R1 ;ADDRESS OF RKCS->R1 30 0 1 0 1 31 0 0 0 0 32 0 0 1 0 33 1 1 1 0 ^ ; 34 0 1 0 1 35 1 1 0 0 36 1 1 0 0 -37 0 0 0 0 ^ ;MOV PC,R4 ;POINT RETRIES HERE 40 1 1 1 0 41 0 0 1 0 42 1 0 1 1 0943 1 0 0 1 ^ <-----;BCC 173160 ;BR IF MUST RET TO UCODER 44 0 1 1 1 45 0 0 0 1 0 46 1 1 0 0 1(47 0 0 0 1 ^ v v--;BR 173100 ;ELSE... 50 0 1 1 0 C 51 0 0 0 0 0 52 1 0 1 0 0353 1 1 1 0 ^ v v ;.WORD 173006 ;POWER-UP VECTOR1 54 0 0 0 0 1 55 1 1 1 0 0 56 1 1 0 0 -557 0 0 0 1 ^ v v ;.WORD 000340 ;POWER-UP PRIORITY1 60 0 1 0 0 2 61 0 1 0 1 3 62 1 0 0 0 -63 0 1 0 1 ^ v v ;.ASCII TD TC11 DECTAPE0 64 0 1 1 0 V 65 0 1 1 0 T 66 1 1 0 0 67 0 0 0 1 ^ v v ; ??? 70 0 0 0 0 0 71 1 0 1 1 72 1 1 0 1 1673 0 0 0 1 ^ v v ;SEC ;DON'T RET TO CONSOLE UCODE 74 0 0 0 1 0 75 1 1 0 0 0 76 1 0 0 0 B.77 0 0 0 0 ^ v v ;MOV #0,R0 ;SET TO UNIT 0 100 0 0 0 0 101 0 0 0 0 102 1 1 0 0 103 0 0 0 1 ^ v v ; 104 0 0 0 1 105 1 1 0 0 106 1 0 0 1 9107 0 0 0 0 ^ v v ;MOV #177342,R1 ;ADDRESS OF TCCM->R10 110 0 0 1 0 111 1 1 1 0 112 0 0 1 0 113 1 1 1 0 ^ v v ; 114 0 1 0 1 115 1 1 0 0 116 1 1 0 0 4117 0 0 0 0 ^ v v ;MOV PC,R4 ;POINT RETRIES HERE 120 0 0 1 0 121 0 0 1 0 122 1 0 1 1 :123 1 0 0 1 ^ v<----;BCC 173160 ;BR IF MUST RET TO UCODE 124 0 0 1 0 125 0 0 0 0 126 1 1 0 1 .127 0 0 0 0 ^ v v ;MOV R0,R3 ;UNIT # -> R3 130 0 0 1 0 131 1 1 0 0 132 1 1 0 1 1133 0 0 0 1 ^ v v ;SWAB R3 ;PUT IN UPPER BYTE 134 1 0 0 0 135 1 1 0 0 136 1 1 0 1 4137 0 0 0 0 ^ v v ;MOV R3,(R1) ;LOAD TCCM C UNIT 140 1 0 0 1 141 1 1 0 0 142 1 0 0 1 B143 0 1 0 0 ^ v v ;BIS #004003,(R1) ;SET REWIND TO READ BLOCK 0 144 0 0 1 0 145 0 0 0 0 146 0 1 0 1 147 0 0 0 1 ^ v v ; 150 1 0 0 1 151 1 1 0 0 152 0 1 1 1 +153 0 0 0 1 ^ v v >;TST (R1) ;CHECK TCCM2 154 1 1 1 0 155 1 1 1 1 156 1 1 0 0 5157 1 0 0 1 ^ v v ^;BPL 173064 ;LOOK FOR END ZONE 160 0 0 0 1 161 1 1 1 1 162 0 1 1 1 1163 0 0 0 1 ^ v v ;TST -2(R1) ;TEST RKER/TCST 164 1 1 1 1 165 1 1 1 1 166 0 0 1 0 167 1 1 1 0 ^ v v ; 170 1 0 0 0 171 1 1 0 0 172 1 1 0 1 9173 0 0 0 0 ^ v v ;MOV R3,(R1) ;GET UNIT BACK IN TCCM 174 1 0 0 1 175 0 0 0 0 176 1 1 0 0 4177 0 0 0 1 ^ v <---;BR 173120 ;JOIN COMBINED CODE 200 0 0 1 0 201 0 0 0 0 202 1 1 0 1 8203 0 0 0 0 ^ v v>->;MOV R0,R3 ;FOR RK, GET UNIT IN R3 204 0 0 0 0 205 1 0 1 0 206 1 1 0 1 5207 0 0 0 1 ^ v v ;CLC ;RET TO CON UCODE IF FAIL 210 0 0 1 0 211 0 0 0 0 212 0 0 0 1 3213 0 0 0 1 ^ v v ;ROR R3 ;ROTATE UNIT # -> TOP6 214 0 0 1 0 215 0 0 0 0 216 0 0 0 1 +217 0 0 0 1 ^ v v ;ROR R3 ;3 BITS OF R3O 220 0 0 1 0 221 0 0 0 0 222 0 0 0 1 223 0 0 0 1 ^ v v ;ROR R3 224 0 0 1 0 225 0 0 0 0 226 0 0 0 1 227 0 0 0 1 ^ v v ;ROR R3 230 0 0 0 0 231 1 1 1 1 232 1 1 0 1 -233 0 0 0 0 ^ v v ;MOV R3,6(R1) ;LOAD RKDA0 234 0 1 1 0 235 0 0 0 0 236 1 1 0 0 237 0 0 0 1 ^ v v ; 240 0 0 0 1 241 1 1 1 1 242 1 0 0 1 7243 0 0 0 0 ^ v --->;MOV #177000,2(R1) ;LOAD RKWC/TCWC3 244 0 0 0 0 245 0 0 0 0 246 00ԘŘƘʘI40 0 1 0 247 1 1 1 0 ^ v ; 250 0 0 1 0 251 0 0 0 0 252 1 1 0 0 253 0 0 0 1 ^ v ; 254 0 0 1 1 255 1 1 0 0 256 1 0 0 1 <257 0 1 0 0 ^ v ;BIS #5,R3 ;SET FUNCTION BITS FOR XFER 260 0 1 0 0 261 0 0 0 0 262 1 1 0 1 263 0 0 0 1 ^ v ; 264 1 0 0 0 265 1 1 0 0 266 1 1 0 1 2267 0 0 0 0 ^ v ;MOV R3,(R1) ;LOAD RKCS/TCCM 270 1 0 0 1 271 1 1 0 0 272 0 1 1 1 .273 1 0 0 1 ^ v >->;TSTB (R1) ;CHECK STATUS 274 1 1 1 0 275 1 1 1 1 276 1 1 0 0 2277 1 0 0 1 ^ v ^-<;BPL 173134 ;LOOP TILL READY 300 1 0 0 1 301 1 1 0 0 302 0 1 1 1 -303 0 0 0 1 ^ v ;TST (R1) ;CHECK ERRORS 304 0 0 1 0 305 0 0 0 0 306 1 1 0 1 -307 1 0 0 1 ^ v <--;BPL 173152 ;BR IF NONE 310 0 1 0 0 311 0 0 0 0 312 1 1 0 1 +313 0 0 0 1 ^ v v ;RESET ;DO BUS RESET 314 0 1 0 0 315 0 1 1 1 316 1 1 0 0 -317 0 0 0 1 ^ v v ;JMP 2(R4) ;TRY A RETRY 320 0 0 1 0 321 0 0 0 0 322 1 1 0 0 323 0 0 0 1 ^ v v ; 324 1 0 0 1 325 1 1 0 0 326 1 0 0 1 >327 0 1 0 1 ^ v >->;BIC #000377,(R1) ;CLEAR ANY COMMAND BITS 330 1 1 1 0 331 1 1 1 1 332 1 1 0 1 333 0 0 0 1 ^ v ; 334 0 1 1 0 335 0 0 0 0 336 0 1 1 1 7337 0 0 0 1 ^ v ;CLR PC ;AND GO TO WORD 0 OF CORE1 340 1 1 1 0 341 0 1 0 1 342 1 1 0 1 ;343 0 0 0 1 ^ >---->;JMP @#165564 ;RETURN TO CONSOLE UCODE 344 0 1 0 1 345 0 1 1 1 346 0 1 1 0 347 1 1 1 1 ^ ; 350 0 0 0 0 351 1 0 1 1 352 1 1 0 1 ,353 0 0 0 1 ^ ;SETC ;SHOW NO RET TO UCODE 354 0 0 0 1 355 1 1 0 0 356 1 0 0 0 357 0 0 0 0 ^ ;MOV #2,R0 ; 360 0 0 1 0 361 0 0 0 0 362 1 1 0 0 363 0 0 0 1 ^ ; 364 0 1 1 1 365 1 1 0 0 366 1 1 0 1 +367 0 0 0 1 ^<------;BR 173012 ;TRY AGAINv 370 0 0 0 0 371 0 0 0 0 372 1 1 0 0 373 0 0 0 1 ; 374 1 0 0 1 375 1 0 1 0 376 0 1 0 0 377 1 0 1 1 ; ???U 0 0 0 0 0 1 0 1 0 1 2 1 0 0 0 #3 0 1 0 1 ;.ASCII PD RM03 BOOT^ 4 0 0 1 0 5 0 0 1 0 6 1 1 0 0 7 0 0 0 1 ; ? 10 0 0 0 0 11 1 0 1 1 12 1 1 0 1 /13 0 0 0 1 ;SEC ;DON'T RET TO CONSOLE UCODE 14 0 0 0 1 15 1 1 0 0 16 1 0 0 0 617 0 0 0 0 ;MOV #0,R0 ;SET TO CLEAR ALL RMER1 FLAGS 20 0 0 0 0 21 0 0 0 0 22 1 1 0 0 -23 0 0 0 1 ; 24 0 0 0 1 25 1 1 0 0 26 1 0 0 1 927 0 0 0 0 >------>;MOV #176714,R1 ;ADDRESS OF RMER1->R1 30 1 1 0 1 31 1 1 0 0 ? 32 0 0 0 0 33 1 1 1 0 ^ ; 34 0 1 0 1 35 1 1 0 0 S 36 1 1 0 0 3-37 0 0 0 0 ^ ;MOV PC,R4 ;POINT RETRIES HERE 40 0 0 0 0 41 0 0 1 1 42 1 0 1 0 943 1 0 0 1 ^ <-----;BCC 173362 ;BR IF MUST RET TO UCODED 44 0 0 1 1 1 45 0 0 0 0 0 46 1 1 0 0 0-47 0 0 0 1 ^ v <--;BR 173230 ;OTHERWISE...R 50 0 0 0 0 0 51 0 0 0 0 1 52 1 0 1 0 2353 1 1 1 0 ^ v v ;.WORD 173000 ;POWER-UP VECTOR 54 0 0 0 0 55 1 1 1 0 56 1 1 0 0 #557 0 0 0 1 ^ v v ;.WORD 000340 ;POWER-UP PRIORITY0 60 0 0 1 0 0 61 0 0 0 0 1 62 1 1 0 1 0063 0 0 0 0 ^ v -->;MOV R0,R3 ;RMER1 FLAGS->R3 64 0 0 1 0 65 1 1 0 0 S 66 1 1 0 1 0067 0 0 0 1 ^ v ;SWAB R3 ;PUT IN UPPER BYTE 70 1 0 0 0 3 71 1 1 0 0 U 72 1 1 0 1 D 73 0 0 0 0 ^ v ;MOV R3,(R1) 74 0 0 1 1 7 75 1 1 0 0 76 1 0 0 0 0;77 0 0 0 0 ^ v ;MOV #5,R2 ;SET SEEK,GO BITS FOR RMCS13 100 0 1 0 0 101 0 0 0 0 102 1 1 0 1 103 0 0 0 1 ^ v ; 104 0 1 0 1 105 0 0 0 1 106 1 1 0 1 3107 0 0 0 1 ^ v <--;BR 173316 ;GO START THE LOAD0 110 0 0 1 0 111 0 1 0 0 112 1 0 0 0 113 0 1 0 1 ^ v v ;.ASCII BD> 114 1 0 1 0 115 0 1 0 1 116 1 1 0 0 117 0 0 0 1 ^ v v ; ??? 120 0 0 0 0 121 1 0 1 1 122 1 1 0 1 7123 0 0 0 1 ^ v v ;SEC ;DON'T RET TO CONSOLE UCODE) 124 0 0 0 1 125 1 1 0 0 126 1 0 0 0 3127 0 0 0 0 ^ v v ;MOV #0,R0 ;START WITH UNIT 0O 130 0 0 0 0 131 0 0 0 0 132 1 1 0 0 133 0 0 0 1 ^ v v ; 134 0 0 0 1 135 1 1 0 0 136 1 0 0 1 @137 0 0 0 0 ^ v v ;MOV #176700,R1 ;POINT R1 TO FIRST REGISTER 140 0 0 0 1 141 1 1 0 0 142 0 0 0 0 143 1 1 1 0 ^ v v ; 144 0 1 0 1 145 1 1 0 0 146 1 1 0 0 4147 0 0 0 0 ^ v v ;MOV PC,R4 ;POINT RETRIES HERE 150 1 1 1 0 151 0 0 0 1 152 1 00ܘ͘-TADATADATA0 1 0 1153 1 0 0 1 ^ v<----;BCC 173362 ;BR IF NO ERROR 154 0 0 0 0 155 0 0 1 1 156 1 1 0 1 ;157 0 0 0 0 ^ v v ;MOV R0,10(R1) ;SET UNIT BITS IN RMCS2 160 1 0 0 0 161 0 0 0 0 162 1 1 0 0 163 0 0 0 1 ^ v v ; 164 0 0 1 1 165 1 1 0 0 166 1 0 0 0 =167 0 0 0 0 ^ v v ;MOV #71,R2 ;SET READ,GO BITS FOR RMCS1 170 1 0 0 0 171 0 0 1 1 172 1 1 0 1 173 0 0 0 1 ^ v v ; 174 1 0 0 1 175 1 1 0 0 176 1 0 0 1 =177 0 0 0 0 ^ v v ;MOV #21,(R1) v ;SET READ-IN PRESET 200 0 0 0 0 201 0 0 0 1 202 1 1 0 1 203 0 0 0 1 ^ v v ; 204 0 0 0 1 205 1 1 1 1 206 1 0 0 1 A207 0 0 0 0 ^ v v ;MOV #14000,32(R1) ;SET FMT,ECI BITS IN RMOF 210 0 0 0 0 211 0 0 0 0 212 0 1 0 0 213 0 0 0 0 ^ v v ; 214 1 0 1 0 215 0 0 0 1 216 1 1 0 0 217 0 0 0 1 ^ v v ; 220 0 0 0 0 221 0 1 1 1 222 0 0 0 1 @223 0 0 0 0 ^ v v ;MOV 16(R1),16(R1) ;CLEAR ANY DRIVE ATA BIT 224 1 1 1 0 225 0 0 0 0 226 1 1 0 0 227 0 0 0 1 ^ v v ; 230 1 1 1 0 231 0 0 0 0 232 1 1 0 0 233 0 0 0 1 ^ v v ; 234 0 0 0 1 235 1 1 1 1 236 1 0 0 1 C237 0 0 0 0 ^ v -->;MOV #177000,2(R1) ;SET 1K BYTES IN WORD COUNT1 240 0 0 0 0 241 0 0 0 0 242 0 0 1 0 243 1 1 1 0 ^ v ; 244 0 0 1 0 245 0 0 0 0 246 1 1 0 0 247 0 0 0 1 ^ v ; 250 0 0 1 0 251 0 1 0 0 252 1 1 1 1 -253 0 0 0 0 ^ v ;MOV (R1),R3 ;GET RMCS1 254 0 0 1 1 255 1 1 0 0 256 1 0 0 1 4257 0 1 0 1 ^ v ;BIC #377,R3 ;CLEAR LOWER BYTE 260 1 1 1 0 261 1 1 1 1 262 1 1 0 1 263 0 0 0 1 ^ v ; 264 0 0 1 0 265 1 0 0 0 266 1 1 0 1 6267 0 1 0 0 ^ v ;BIS R2,R3 ;SET SEEK AND GO BITS 270 1 0 0 0 271 1 1 0 0 272 1 1 0 1 3273 0 0 0 0 ^ v ;MOV R3,(R1) ;GET RMCS1 IN R1; 274 1 0 0 1 275 1 1 0 0 276 0 1 1 1 1277 1 0 0 1 ^ v -->;TSTB (R1) ;CHECK READY BIT 300 1 1 1 0 301 1 1 1 1 302 1 1 0 0 C303 1 0 0 1 ^ v ^--;BPL 173336 ;LOOP TIL READY BIT COMES BACK ON 304 1 0 0 1 305 1 1 0 0 306 0 1 1 1 4307 0 0 0 1 ^ v ;TST (R1) ;CHECK SPEC COND BIT 310 0 0 1 0 311 0 0 0 0 312 1 1 0 1 +313 1 0 0 1 ^ v <--;BPL 173354 ;BR IF OK2 314 0 1 0 0 315 0 0 0 0 316 1 1 0 1 3317 0 0 0 1 ^ v v ;RESET ;ELSE DO UNIBUS RESET 320 0 1 0 0 321 0 1 1 1 322 1 1 0 0 3323 0 0 0 1 ^ v v ;JMP 2(R4) ;AND DO FULL RETRYB 324 0 0 1 0 325 0 0 0 0 326 1 1 0 0 327 0 0 0 1 ^ v v ; 330 1 0 0 1 331 1 1 0 0 332 1 0 0 1 ?333 0 1 0 1 ^ v -->;BIC #377,(R1) ;CLEAR COMMAND & INT ENABLE 334 1 1 1 0 335 1 1 1 1 336 1 1 0 1 337 0 0 0 1 ^ v ; 340 0 1 1 0 341 0 0 0 0 342 0 1 1 1 343 0 0 0 1 ^ v ;CLR PC 344 1 1 1 0 345 0 1 0 1 346 1 1 0 1 ;347 0 0 0 1 ^ ----->;JMP 165564 ;GO BACK TO CONSOLE UCODE 350 0 1 0 1 351 0 1 1 1 352 0 1 1 0 353 1 1 1 1 ^ ; 354 0 0 0 0 355 1 0 1 1 356 1 1 0 1 2357 0 0 0 1 ^ ;SEC ;SET TO RET TO CONSOLE UCODE 360 0 0 0 1 361 1 1 0 0 362 1 0 0 0 (363 0 0 0 0 ^ ;MOV #1,R0 ;WITH 1 IN R1 364 0 0 0 0 365 0 0 0 0 366 1 1 0 1 !367 0 0 0 1 ^ ; ;DO FULL RETRY3 370 0 1 1 1 371 1 1 0 0 372 1 1 0 0 373 0 0 0 1 ^<------;BR 173212 374 1 0 1 1 375 1 0 0 0 376 1 1 1 0 !377 1 0 0 0 ;MOV (SP),(R2) ;???- 0 0 1 0 0 1 0 1 0 0 2 1 0 0 0 #3 0 1 0 1 ;.ASCII DD DECTAPE II 4 1 1 1 0 5 0 1 1 1 6 1 1 0 0 7 0 0 0 1 ; ? 10 0 0 0 0 11 1 0 1 1 ^ 12 1 1 0 1 T/13 0 0 0 1 ;SEC ;DON'T RET TO CONSOLE UCODE 14 0 0 0 1 15 1 1 0 0 16 1 0 0 0 17 0 0 0 0 ;MOV #0,R0 20 0 0 0 0 21 0 0 0 0 22 1 1 0 0 23 0 0 0 1 ; 24 0 0 0 1 25 1 1 0 0 26 1 0 0 1 927 0 0 0 0 >------>;MOV #176500,R1 ;POINT R1-> TU58 RCSR7 30 0 0 0 1 7 31 0 1 0 0 7 32 0 0 0 0 M33 1 1 1 0 ^ ; 34 0 1 0 1 35 1 1 0 0 36 1 1 0 0 #37 0 0 0 0 ^ ;MOV #103054,R4 40 1 1 0 0 41 0 0 1 0 42 1 0 1 0 43 1 0 0 1 ^ ;1 44 0 0 1 1 1 45 0 0 0 0 0 46 1 1 0 0 47 0 0 0 1 ^ <--;BR 173430 50 0 0 0 0 51 0 0 0 0 52 1 0 1 0 353 1 1 1 0 ^ v ;.WORD 173000 ;POWER-UP VECTOR 54 0 0 0 0 55 1 1 1 0 ; 56 1 1 0 0 557 0 000ŘƘʘI4 0 1 ^ v ;.WORD 000340 ;POWER-UP PRIORITY# 60 0 1 1 1 I 61 1 1 0 0 R 62 1 0 0 0 0#63 0 0 0 0 ^ >->;MOV #002000,SP1 64 0 0 0 0 65 0 0 0 0 0 66 1 0 0 0 067 0 0 0 1 ^ ;0 70 0 1 0 0 71 0 0 0 0 4 72 0 1 1 0 073 0 0 0 1 ^ ;CLR R40 74 0 0 1 1 1 75 1 1 0 0 76 1 0 0 0 ;77 0 0 0 0 ^ ;MOV ##176504,R2 ;POINT R2 -> TU58 XCSR0 100 0 1 0 1 101 0 1 0 0 102 0 0 0 0 103 1 1 1 0 ^ ; 104 1 0 1 0 105 1 0 0 0 106 0 1 1 0 2107 0 0 0 1 ^ ;INC (R2) ;TURN ON BREAK BIT 110 0 0 1 0 111 0 0 0 0 112 0 1 1 1 5113 0 0 0 1 ^ ;CLR R3 ;SEND 2 NULL CHARACTERSV 114 0 1 1 1 115 1 1 1 1 116 0 1 0 1 #117 0 0 0 1 ^ ;JSR PC,173520 120 0 1 1 0 121 0 0 1 0 122 1 1 0 0 123 0 0 0 1 ^ ; 124 1 0 1 0 125 0 0 0 0 126 0 1 1 0 0127 0 0 0 1 ^ ;CLR (R2) ;CLEAR BREAK BIT 130 1 1 1 1 131 1 1 0 1 132 0 1 1 1 <133 0 0 0 1 ^ ;TST @#176502 ;CHECK FOR RECEIVER ERROR 134 0 0 1 1 135 0 1 0 0 136 0 0 0 0 137 1 1 1 0 ^ ; 140 0 0 1 1 141 1 1 0 0 142 1 0 0 1 3143 0 0 0 0 ^ ;MOV #004004,R3 ;SEND 2 INIT'SA 144 0 1 0 0 145 0 0 0 0 146 0 1 0 0 147 0 0 0 1 ^ ; 150 0 1 1 1 151 1 1 1 1 152 0 1 0 1 #153 0 0 0 1 ^ ;JSR PC,173524^ 154 1 1 0 0 155 0 0 0 1 156 1 1 0 0 157 0 0 0 1 ^ ; 160 0 0 1 0 161 0 0 0 0 162 1 1 0 1 4163 0 0 0 0 ^ ;MOV R0,R3 ;BUFFER START -> R3 164 0 1 1 1 165 1 1 1 1 166 0 1 0 1 1167 0 0 0 1 ^ ;JSR PC,173526 ;SEND TO TU58 170 1 0 0 0 171 0 0 0 1 172 1 1 0 0 173 0 0 0 1 ^ ; 174 0 0 1 0 175 0 0 0 0 176 0 1 1 1 9177 0 0 0 1 ^ ;CLR R3 ;POINT R3 -> WORD 0 OF CORE^ 200 1 0 0 1 201 1 1 0 0 202 0 1 1 1 ,203 1 0 0 1 ^ >-->->;TSTB (R1) ;CHECK RCSR 204 1 1 1 0 205 1 1 1 1 206 1 1 0 0 :207 1 0 0 1 ^ ^ ^-<;BPL 173500 ;LOOP TILL DONE BIT SETS 210 0 0 1 1 211 1 1 0 1 212 1 0 1 1 D213 1 0 0 0 ^ ^ ;MOVB @#176502,(R3)+ ;TRANSFER AN INCOMING BYTE 214 0 0 1 1 215 0 1 0 0 216 0 0 0 0 217 1 1 1 0 ^ ^ ; 220 0 0 1 1 221 1 1 0 0 222 1 0 0 1 7223 0 0 1 1 ^ ^ ;CMP #1000,R3 ;FILLED BUFFER YET ?^ 224 0 0 0 0 225 0 0 0 0 226 1 1 1 0 227 0 0 0 1 ^ ^ ; 230 1 0 0 0 231 1 1 1 1 232 1 1 1 1 .233 1 0 0 1 ^ ^----<;BHI 173500 ;LOOP IF NOT 234 0 1 1 0 235 0 0 0 0 236 0 1 1 1 3237 0 0 0 1 ^ ;CLR PC ;GO TO WORD 0 OF CORE1 240 1 1 1 1 241 1 1 0 0 242 0 1 0 1 243 0 0 0 1 ^ ; 244 1 1 1 1 245 1 1 0 0 246 0 1 0 1 247 0 0 0 1 ^ ; 250 1 1 1 1 251 1 1 0 0 252 0 1 0 1 253 0 0 0 1 ^ ; 254 1 0 1 1 255 1 1 0 0 256 0 1 1 0 ,257 1 0 0 1 ^ -->;TSTB (R2) ;CHECK XCSR 260 1 1 1 0 261 1 1 1 1 262 1 1 0 0 :263 1 0 0 1 ^ ^-<;BPL 173526 ;LOOP TILL DONE BIT SETS 264 1 1 1 0 265 1 1 0 1 266 1 1 0 1 7267 1 0 0 0 ^ ;MOV R3,@#176506 ;LOAD OUTPUT BYTEC 270 0 1 1 1 271 0 1 0 0 272 0 0 0 0 273 1 1 1 0 ^ ; 274 0 0 1 0 275 1 1 0 0 276 1 1 0 1 9277 0 0 0 1 ^ ;SWAB R3 ;SWITCH BYTESFOR NEXT CALL 300 0 1 1 0 301 1 0 0 0 302 1 1 0 1 )303 0 0 0 1 ^ ;RTS PC ;AND RETURN5 304 0 0 0 0 305 1 0 1 1 306 1 1 0 1 307 0 0 0 1 ^ ;SEC 310 0 0 0 1 311 1 1 0 0 312 1 0 0 0 $313 0 0 0 0 ^ ;MOV #000001,R0 314 0 0 0 0 315 0 0 0 0 316 1 1 0 1 317 0 0 0 1 ^ ; 320 0 0 0 1 321 1 1 0 1 322 1 1 0 0 +323 0 0 0 1 ^-------;BR 173412 ;TRY AGAIN7 324 1 1 1 0 325 0 1 0 1 326 1 1 0 1 1327 0 0 0 1 ;JMP @#165564 ;RET TO CONSOLE UCODE 330 0 1 0 1 331 0 1 1 1 332 0 1 1 0 333 1 1 1 1 ;0 334 0 0 0 0 335 0 0 0 0 336 1 1 0 0 337 0 0 0 1 ; 340 0 0 0 0 341 0 0 0 0 342 1 1 0 0 343 0 0 0 1 ;; 344 0 0 0 0 345 0 0 0 0 346 1 1 0 0 347 0 0 0 1 ; 350 0 0 0 0 351 0 0 0 0 352 1 1 0 0 353 0 0 0 1 ; 354 0 0 0 0 355 0 0 0 0 356 1 1 0 0 357 0 0 0 1 ; 360 0 0 0 0 361 0 0 0 0 362 1 1 0 0 363 0 0 0 1 ; 364 0 0 0 0 365 0 0 0 0 366 1 1 0 0 367 0 0 0 1 ;P 370 0 0 0 0 371 0 0 0 0 372 1 1 0 0 373 0 0 0 00͘-TADATADATA1 ; 374 0 1 0 0 375 0 0 0 1 376 0 1 1 1 377 1 0 1 1 ;  0 0 1 0 1 1 0 1 0 1 2 0 0 0 0 "3 0 1 0 1 ;.ASCII MT TU10/TM11 4 1 1 1 0 5 0 1 1 1 6 1 1 0 0 7 0 0 0 1 ; ? 10 0 0 0 0 11 1 0 1 1 12 1 1 0 1 /13 0 0 0 1 ;SEC ;DON'T RET TO CONSOLE UCODE 14 0 0 0 1 15 1 1 0 0 16 1 0 0 0 +17 0 0 0 0 ;MOV #000000,R0 ;SELECT UNIT 0 20 0 0 0 0 21 0 0 0 0 22 1 1 0 0 23 0 0 0 1 ; 24 0 0 0 1 25 1 1 0 0 7 26 1 0 0 1 7927 0 0 0 0 >---->;MOV #172522,R1 ;ADDRESS OF MTC -> R17 30 0 0 1 1 7 31 0 1 0 1 7 32 1 0 0 0 33 1 1 1 0 ^ ; 34 0 1 0 1 35 1 1 0 0 36 1 1 0 0 #37 0 0 0 0 ^ ;MOV #103054,R4 40 1 1 0 0 41 0 0 1 0 42 1 0 1 0 43 1 0 0 1 ^ ;1 44 1 0 0 1 1 45 0 0 0 0 N 46 1 1 0 1 S47 0 0 0 1 ^ <--;BR 173646 50 0 0 0 0 0 51 0 0 0 0 0 52 1 0 1 0 0353 1 1 1 0 ^ v ;.WORD 173000 ;POWER-UP VECTOR 54 0 0 0 0 55 1 1 1 0 ; 56 1 1 0 0 557 0 0 0 1 ^ v ;.WORD 000340 ;POWER-UP PRIORITY# 60 0 0 0 1 D 61 1 1 0 0 > 62 1 0 0 0 1263 0 0 0 0 ^ v ;MOV #000001,R0 ;SELECT UNIT 1 64 0 0 0 0 0 65 0 0 0 0 0 66 1 1 0 1 067 0 0 0 1 ^ v ; 70 0 1 1 1 4 71 1 1 1 1 0 72 1 1 0 0 173 0 0 0 1 ^<---<;BR 173612 74 0 0 0 1 4 75 1 1 0 0 5 76 1 0 0 0 6277 0 0 0 0 ^ v ;MOV #000001,R0 ;SELECT UNIT 1 100 0 0 0 0 101 0 0 0 0 102 1 1 0 1 103 0 0 0 1 ^ v ; 104 0 0 0 0 105 1 0 1 1 106 1 1 0 1 7107 0 0 0 1 ^ v ;SEC ;DON'T RET TO CONSOLE UCODE; 110 0 0 1 1 111 1 1 1 1 112 1 1 0 0 113 0 0 0 1 ^<---<;BR 173612 114 0 0 1 0 115 0 0 0 0 116 1 1 0 1 .117 0 0 0 0 ^ >->;MOV R0,R3 ;UNIT # -> R3 120 0 0 1 0 121 1 1 0 0 122 1 1 0 1 1123 0 0 0 1 ^ ;SWAB R3 ;PUT IN UPPER BYTE0 124 1 0 0 0 125 1 1 0 0 126 1 1 0 1 8127 0 0 0 0 ^ ;MOV R3,(R1) ;LOAD MTC WITH UNIT # 130 0 0 0 0 131 0 0 1 1 132 0 0 0 1 5133 0 0 0 1 ^ >->;ROR -2(R1) ;GET TUR BIT OF MTS0 134 1 1 1 1 135 1 1 1 1 136 0 0 1 0 137 1 1 1 0 ^ ^ ; 140 1 1 0 0 141 1 1 1 1 142 1 0 1 1 :143 1 0 0 1 ^ ^-<;BCC 173654 ;LOOP UNTIL TUR BIT SETS 144 1 0 0 1 145 1 1 0 0 146 1 0 0 1 <147 0 1 0 0 ^ ;BIS #060017,(R1) ;SET 800BPI,REWIND,GO 150 1 1 1 0 151 0 0 0 0 152 1 1 0 1 153 0 1 1 1 ^ ; 154 1 0 0 1 155 1 1 0 0 156 0 1 1 1 8157 1 0 0 1 ^ >->;TSTB (R1) ;CHECK FOR CU READY BIT 160 1 1 1 0 161 1 1 1 1 162 1 1 0 0 1163 1 0 0 1 ^ ^-<;BPL 173666 ;LOOP TILL DONE 164 0 0 0 1 165 1 1 1 1 166 1 0 0 1 /167 0 0 0 0 ^ ;MOV #-1,2(R1) ;LOAD MTBRC4 170 1 1 1 1 171 1 1 1 1 172 0 0 1 1 173 1 1 1 0 ^ ; 174 0 0 1 0 175 0 0 0 0 176 1 1 0 0 177 0 0 0 1 ^ ; 200 1 0 0 1 201 1 1 0 0 202 1 0 0 1 4203 1 0 0 0 ^ ;MOV #11,(R1) ;SET SPACE FWD,GO 204 1 0 0 0 205 0 0 0 0 206 1 1 0 1 207 0 0 0 1 ^ ; 210 1 0 0 1 211 1 1 0 0 212 0 1 1 1 8213 1 0 0 1 ^ >->;TSTB (R1) ;CHECK FOR CU READY BIT 214 1 1 1 0 215 1 1 1 1 216 1 1 0 0 :217 1 0 0 1 ^ ^-<;BPL 173704 ;LOOP TILL CU READY SETS 220 1 0 0 1 221 1 1 0 0 222 0 1 1 1 0223 0 0 0 1 ^ ;TST (R1) ;CHECK ERROR BIT 224 1 1 0 1 225 0 0 0 0 226 1 1 0 1 7227 1 0 0 1 ^ v--;BMI 173746 ;BR IF ERROR OCCURRED 230 0 0 0 1 231 1 1 1 1 232 1 0 0 1 8233 0 0 0 0 ^ v ;MOV #177000,2(R1) ;SET 1K IN MTBRC 234 0 0 0 0 235 0 0 0 0 236 0 0 1 0 237 1 1 1 0 ^ v ; 240 0 0 1 0 241 0 0 0 0 242 1 1 0 0 243 0 0 0 1 ^ v ; 244 0 0 1 0 245 0 1 0 0 246 1 1 1 1 +247 0 0 0 0 ^ v ;MOV (R1),R3 ;GET MTCS 250 0 0 1 1 251 1 1 0 0 252 1 0 0 1 :253 0 1 0 1 ^ v ;BIC #377,R3 ;CLEAR PREVIOUS COMMAND 254 1 1 1 0 255 1 1 1 1 256 1 1 0 1 257 0 0 0 1 ^ v ; 260 0 0 1 1 261 1 1 0 0 262 1 0 0 1 3263 1 1 0 0 ^ v ;BISB #3,R3 ;SET READ,GO BITS1 264 0 0 1 0 265 0 0 0 0 266 1 1 0 1 267 0 0 0 1 ^ v ; 270 1 0 0 0 271 1 1 0 0 272 1 1 0 1 7273 0 0 0 0 ^ v ;MOV R3,(R1) ;AND PUT BACK IN MTC 274 1 0 0 1 275 1 1 0 0 276 0 1 1 1 7277 1 0 0 1 ^ v >;00ƘʘI4TSTB (R1) ;WAIT FOR CU READY BIT5 300 1 1 1 0 301 1 1 1 1 302 1 1 0 0 :303 1 0 0 1 ^ v ^;BPL 173736 ;LOOP TILL CU READY SETS 304 1 0 0 1 305 1 1 0 0 306 0 1 1 1 0307 0 0 0 1 ^ v ;TST (R1) ;CHECK FOR ERROR 310 0 1 0 0 311 0 0 0 0 312 1 1 0 0 +313 1 0 0 1 v-------;BPL 173756 ;BR IF OK 314 0 1 0 0 315 0 0 0 0 316 1 1 0 1 .317 0 0 0 1 v ^ >->;RESET ;DO UNIBUS RESET 320 0 0 0 1 321 1 1 0 1 322 1 1 0 0 +323 0 0 0 1 v ^----<;BR 173612 ;TRY AGAIN 324 1 1 1 0 325 0 1 0 1 326 1 1 0 1 7327 0 0 0 1 v ;JMP 165564 ;RET TO CONSOLE UCODE 330 0 1 0 1 331 0 1 1 1 332 0 1 1 0 333 1 1 1 1 v ; 334 1 0 0 1 335 1 1 0 0 336 1 0 0 1 =337 0 1 0 1 >------>;BIC #377,(R1) ;CLEAR ANY COMMAND IN MTC 340 1 1 1 0 341 1 1 1 1 342 1 1 0 1 343 0 0 0 1 ;O 344 0 1 1 0 345 0 0 0 0 346 0 1 1 1 ,347 0 0 0 1 ;CLR PC ;GO TO WORD 0 OF CORE 350 0 0 0 0 351 0 0 0 0 352 1 1 0 0 353 0 0 0 1 ; 354 0 0 0 0 355 0 0 0 0 356 1 1 0 0 357 0 0 0 1 ; 360 0 0 0 0 361 0 0 0 0 362 1 1 0 0 363 0 0 0 1 ;O 364 0 0 0 0 365 0 0 0 0 366 1 1 0 0 367 0 0 0 1 ; 370 0 0 0 0 371 0 0 0 0 372 1 1 0 0 373 0 0 0 1 ; 374 0 1 1 1 375 0 1 0 1 376 1 1 1 0 377 0 0 1 1 ; MTC 340 1 1 1 0 341 1 1 1 1 342 1 1 0 1 343 0 0 0 1 ;O 344 0 1 1 0 345 0 0 0 0 346 0 1 1 1 ,347 0 0 0 1 ;CLR PC ;GO TO WORD 0 OF CORE 350 0 0 0 0 351 0 0 0 0 352 1 1 0 0 353 0 0 0 1 ; 354 0 0 0 0 355 0 0 0 0 356 1 1 0 0 357 0 & 173000 042113 ;.ASCII KD RK05/RK111 173002 000026 ;.WORD 26 ;OFFSET TO NEXT DEVICE( 173004 000261 ;SEC ;SHOW NO DIAG RUN) 173006 012700 ;MOV #0,R0 ;SET TO CLEAR 173010 000000 ;; 173012 012701 >------>;MOV #177404,R1 ;ADDRESS OF RKCS->R1 173014 177404 ^ ;0 173016 010704 ^ ;MOV PC,R4 ;POINT RETRIES HERE< 173020 103057 ^ <-----;BCC 173160 ;BR IF MUST RET TO UCODE+ 173022 000426 ^ v v--;BR 173100 ;ELSE...6 173024 173006 ^ v v ;.WORD 173006 ;POWER-UP VECTOR8 173026 000340 ^ v v ;.WORD 000340 ;POWER-UP PRIORITY0 173030 042124 ^ v v ;.ASCII TD TC11 DECTAPE6 173032 000146 ^ v v ;.WORD 146 ;OFFSET TO NEXT DEV0 173034 000261 ^ v v ;SEC ;SHOW NO DIAGS RUN1 173036 012700 ^ v v ;MOV #0,R0 ;SET TO UNIT 0  173040 000000 ^ v v ;; 173042 012701 ^ v v ;MOV #177342,R1 ;ADDRESS OF TCCM->R13 173044 177342 ^ v v ;6 173046 010704 ^ v v ;MOV PC,R4 ;POINT RETRIES HERE< 173050 103043 ^ v<----;BCC 173160 ;BR IF MUST RET TO UCODE0 173052 010003 ^ v v ;MOV R0,R3 ;UNIT # -> R33 173054 000303 ^ v v ;SWAB R3 ;PUT IN UPPER BYTEI6 173056 010311 ^ v v ;MOV R3,(R1) ;LOAD TCCM C UNITD 173060 052711 ^ v v ;BIS #004003,(R1) ;SET REWIND TO READ BLOCK 0 173062 004003 ^ v v ;- 173064 005711 ^ v v >;TST (R1) ;CHECK TCCM 7 173066 100376 ^ v v ^;BPL 173064 ;LOOK FOR END ZONE C3 173070 005761 ^ v v ;TST -2(R1) ;TEST RKER/TCST  173072 177776 ^ v v ;; 173074 010311 ^ v v ;MOV R3,(R1) ;GET UNIT BACK IN TCCM 6 173076 000410 ^ v <---;BR 173120 ;JOIN COMBINED CODE: 173100 010003 ^ v v>->;MOV R0,R3 ;FOR RK, GET UNIT IN R37 173102 000241 ^ v v ;CLC ;RET TO CON UCODE IF FAIL35 173104 006003 ^ v v ;ROR R3 ;ROTATE UNIT # -> TOPD- 173106 006003 ^ v v ;ROR R3 ;3 BITS OF R37 173110 006003 ^ v v ;ROR R3 173112 006003 ^ v v ;ROR R3/ 173114 010361 ^ v v ;MOV R3,6(R1) ;LOAD RKDA  173116 000006 ^ v v ;9 173120 012761 ^ v --->;MOV #177000,2(R1) ;LOAD RKWC/TCWCO 173122 177000 ^ v ; 173124 000002 ^ v ;> 173126 052703 ^ v ;BIS #5,R3 ;SET FUNCTION BITS FOR XFER 173130 000005 ^ v ;4 173132 010311 ^ v ;MOV R3,(R1) ;LOAD RKCS/TCCM0 173134 105711 ^ v >->;TSTB (R1) ;CHECK STATUS4 173136 100376 ^ v ^-<;BPL 173134 ;LOOP TILL READY/ 173140 005711 ^ v ;TST (R1) ;CHECK ERRORS3/ 173142 100003 ^ v <--;BPL 173152 ;BR IF NONE - 173144 000005 ^ v v ;RESET ;DO BUS RESETv/ 173146 000164 ^ v v ;JMP 2(R4) ;TRY A RETRYL 173150 000002 ^ v v ;@ 173152 042711 ^ v >->;BIC #000377,(R1) ;CLEAR ANY COMMAND 00͘-TADATADATABITS 173154 000377 ^ v ;9 173156 005007 ^ v ;CLR PC ;AND GO TO WORD 0 OF CORE = 173160 000137 ^ >---->;JMP @#165564 ;RETURN TO CONSOLE UCODE( 173162 165564 ^ ;. 173164 000261 ^ ;SETC ;SHOW NO RET TO UCODE 173166 012700 ^ ;MOV #2,R0 ; 173170 000002 ^ ;- 173172 000707 ^<------;BR 173012 ;TRY AGAINN 173174 000000 ;5# 173176 124650 ;.WORD 124650 ;CRC3 + 173200 042120 ;.ASCII PD RP03/RM03 BOOT31 173202 000042 ;.WORD 42 ;OFFSET TO NEXT DEVICE02 173204 000261 ;SEC ;DON'T RET TO CONSOLE UCODE9 173206 012700 ;MOV #0,R0 ;SET TO CLEAR ALL RMER1 FLAGS  173210 000000 ;0< 173212 012701 >------>;MOV #176714,R1 ;ADDRESS OF RMER1->R1 173214 176714 ^ ;0 173216 010704 ^ ;MOV PC,R4 ;POINT RETRIES HERE< 173220 103060 ^ <-----;BCC 173362 ;BR IF MUST RET TO UCODE0 173222 000402 ^ v <--;BR 173230 ;OTHERWISE...6 173224 173000 ^ v v ;.WORD 173000 ;POWER-UP VECTOR8 173226 000340 ^ v v ;.WORD 000340 ;POWER-UP PRIORITY3 173230 010003 ^ v -->;MOV R0,R3 ;RMER1 FLAGS->R3 3 173232 000303 ^ v ;SWAB R3 ;PUT IN UPPER BYTET# 173234 010311 ^ v ;MOV R3,(R1)0> 173236 012702 ^ v ;MOV #5,R2 ;SET SEEK,GO BITS FOR RMCS1 173240 000005 ^ v ;5 173242 000425 ^ v <--;BR 173316 ;GO START THE LOAD3! 173244 042102 ^ v v ;.ASCII BD 9 173246 000132 ^ v v ;.WORD 132 ;OFFSET TO NEXT DEVICET0 173250 000261 ^ v v ;SEC ;SHOW NO DIAGS RUN5 173252 012700 ^ v v ;MOV #0,R0 ;START WITH UNIT 0  173254 000000 ^ v v ;B 173256 012701 ^ v v ;MOV #176700,R1 ;POINT R1 TO FIRST REGISTER 173260 176700 ^ v v ;6 173262 010704 ^ v v ;MOV PC,R4 ;POINT RETRIES HERE3 173264 103036 ^ v<----;BCC 173362 ;BR IF NO ERROR= 173266 010061 ^ v v ;MOV R0,10(R1) ;SET UNIT BITS IN RMCS2O 173270 000010 ^ v v ;? 173272 012702 ^ v v ;MOV #71,R2 ;SET READ,GO BITS FOR RMCS1F 173274 000071 ^ v v ;? 173276 012711 ^ v v ;MOV #21,(R1) v ;SET READ-IN PRESET  173300 000021 ^ v v ;C 173302 012761 ^ v v ;MOV #14000,32(R1) ;SET FMT,ECI BITS IN RMOF0 173304 014000 ^ v v ; 173306 000032 ^ v v ;B 173310 016161 ^ v v ;MOV 16(R1),16(R1) ;CLEAR ANY DRIVE ATA BIT 173312 000016 ^ v v ; 173314 000016 ^ v v ;E 173316 012761 ^ v -->;MOV #177000,2(R1) ;SET 1K BYTES IN WORD COUNT0 173320 177000 ^ v ; 173322 000002 ^ v ;/ 173324 011103 ^ v ;MOV (R1),R3 ;GET RMCS1 6 173326 042703 ^ v ;BIC #377,R3 ;CLEAR LOWER BYTE 173330 000377 ^ v ;8 173332 050203 ^ v ;BIS R2,R3 ;SET SEEK AND GO BITS5 173334 010311 ^ v ;MOV R3,(R1) ;GET RMCS1 IN R113 173336 105711 ^ v -->;TSTB (R1) ;CHECK READY BIT6E 173340 100376 ^ v ^--;BPL 173336 ;LOOP TIL READY BIT COMES BACK ON 6 173342 005711 ^ v ;TST (R1) ;CHECK SPEC COND BIT- 173344 100003 ^ v <--;BPL 173354 ;BR IF OK05 173346 000005 ^ v v ;RESET ;ELSE DO UNIBUS RESETv5 173350 000164 ^ v v ;JMP 2(R4) ;AND DO FULL RETRY; 173352 000002 ^ v v ;A 173354 042711 ^ v -->;BIC #377,(R1) ;CLEAR COMMAND & INT ENABLE; 173356 000377 ^ v ; 173360 005007 ^ v ;CLR PC= 173362 000137 ^ ----->;JMP 165564 ;GO BACK TO CONSOLE UCODEE 173364 165564 ^ ;4 173366 000261 ^ ;SEC ;SET TO RET TO CONSOLE UCODE* 173370 012700 ^ ;MOV #1,R0 ;WITH 1 IN R1# 173372 000001 ^ ; ;DO FULL RETRYv! 173374 000706 ^<------;BR 1732124# 173376 111612 ;.WORD 111612 ;CRCI ' 173400 042104 ;.ASCII DD DECTAPE II 2 173402 000176 ;.WORD 176 ;OFFSET TO NEXT DEVICE) 173404 000261 ;SEC ;SHOW NO DIAGS RUNM 173406 012700 ;MOV #0,R0 173410 000000 ;1< 173412 012701 >------>;MOV #176500,R1 ;POINT R1-> TU58 RCSR 173414 176500 ^ ;& 173416 010704 ^ ;MOV #103054,R4 173420 103054 ^ ;! 173422 000402 ^ <--;BR 173430 6 173424 173000 ^ v ;.WORD 173000 ;POWER-UP VECTOR8 173426 000340 ^ v ;.WORD 000340 ;POWER-UP PRIORITY& 173430 012706 ^ >->;MOV #002000,SP 173432 002000 ^ ; 173434 005004 ^ ;CLR R4> 173436 012702 ^ ;MOV ##176504,R2 ;POINT R2 -> TU58 XCSR 173440 176504 ^ ;4 173442 005212 ^ ;INC (R2) ;TURN ON00ƘʘI4 BREAK BIT7 173444 005003 ^ ;CLR R3 ;SEND 2 NULL CHARACTERS1% 173446 004767 ^ ;JSR PC,1735201 173450 000046 ^ ;2 173452 005012 ^ ;CLR (R2) ;CLEAR BREAK BIT> 173454 005737 ^ ;TST @#176502 ;CHECK FOR RECEIVER ERROR 173456 176502 ^ ;5 173460 012703 ^ ;MOV #004004,R3 ;SEND 2 INIT'S0 173462 004004 ^ ;% 173464 004767 ^ ;JSR PC,173524  173466 000034 ^ ;6 173470 010003 ^ ;MOV R0,R3 ;BUFFER START -> R33 173472 004767 ^ ;JSR PC,173526 ;SEND TO TU580 173474 000030 ^ ;; 173476 005003 ^ ;CLR R3 ;POINT R3 -> WORD 0 OF CORE. 173500 105711 ^ >-->->;TSTB (R1) ;CHECK RCSR< 173502 100376 ^ ^ ^-<;BPL 173500 ;LOOP TILL DONE BIT SETSF 173504 113723 ^ ^ ;MOVB @#176502,(R3)+ ;TRANSFER AN INCOMING BYTE 173506 176502 ^ ^ ;9 173510 022703 ^ ^ ;CMP #1000,R3 ;FILLED BUFFER YET ?  173512 001000 ^ ^ ;0 173514 101371 ^ ^----<;BHI 173500 ;LOOP IF NOT5 173516 005007 ^ ;CLR PC ;GO TO WORD 0 OF CORE  173520 004717 ^ ; 173522 004717 ^ ; 173524 004717 ^ ;. 173526 105712 ^ -->;TSTB (R2) ;CHECK XCSR< 173530 100376 ^ ^-<;BPL 173526 ;LOOP TILL DONE BIT SETS9 173532 110337 ^ ;MOV R3,@#176506 ;LOAD OUTPUT BYTE; 173534 176506 ^ ;; 173536 000303 ^ ;SWAB R3 ;SWITCH BYTESFOR NEXT CALL3+ 173540 000207 ^ ;RTS PC ;AND RETURN 173542 000261 ^ ;SEC3& 173544 012700 ^ ;MOV #000001,R0 173546 000001 ^ ;- 173550 000720 ^-------;BR 173412 ;TRY AGAIN73 173552 000137 ;JMP @#165564 ;RET TO CONSOLE UCODE7 173554 165564 ;  173556 000000 ;B 173560 000000 ; 173562 000000 ;  173564 000000 ;O 173566 000000 ;S 173570 000000 ;  173572 000000 ;0 173574 000000 ;;# 173576 125025 ;.WORD 125025 ;CRC0 3& 173600 046524 ;.ASCII MT TU10/TM112 173602 000176 ;.WORD 176 ;OFFSET TO NEXT DEVICE) 173604 000261 ;SEC ;SHOW NO DIAGS RUN7. 173606 012700 ;MOV #000000,R0 ;SELECT UNIT 0 173610 000000 ;0< 173612 012701 >---->;MOV #172522,R1 ;ADDRESS OF MTC -> R1 173614 172522 ^ ;& 173616 010704 ^ ;MOV #103054,R4 173620 103054 ^ ;! 173622 000411 ^ <--;BR 17364616 173624 173000 ^ v ;.WORD 173000 ;POWER-UP VECTOR8 173626 000340 ^ v ;.WORD 000340 ;POWER-UP PRIORITY5 173630 012700 ^ v ;MOV #000001,R0 ;SELECT UNIT 10 173632 000001 ^ v ;! 173634 000766 ^<---<;BR 173612C5 173636 012700 ^ v ;MOV #000001,R0 ;SELECT UNIT 1  173640 000001 ^ v ;9 173642 000261 ^ v ;SEC ;DON'T RET TO CONSOLE UCODEF! 173644 000762 ^<---<;BR 173612;0 173646 010003 ^ >->;MOV R0,R3 ;UNIT # -> R33 173650 000303 ^ ;SWAB R3 ;PUT IN UPPER BYTE: 173652 010311 ^ ;MOV R3,(R1) ;LOAD MTC WITH UNIT #7 173654 006061 ^ >->;ROR -2(R1) ;GET TUR BIT OF MTS3 173656 177776 ^ ^ ;< 173660 103375 ^ ^-<;BCC 173654 ;LOOP UNTIL TUR BIT SETS> 173662 052711 ^ ;BIS #060017,(R1) ;SET 800BPI,REWIND,GO 173664 060017 ^ ;: 173666 105711 ^ >->;TSTB (R1) ;CHECK FOR CU READY BIT3 173670 100376 ^ ^-<;BPL 173666 ;LOOP TILL DONE1 173672 012761 ^ ;MOV #-1,2(R1) ;LOAD MTBRC1 173674 177777 ^ ; 173676 000002 ^ ;6 173700 112711 ^ ;MOV #11,(R1) ;SET SPACE FWD,GO 173702 000011 ^ ;: 173704 105711 ^ >->;TSTB (R1) ;CHECK FOR CU READY BIT< 173706 100376 ^ ^-<;BPL 173704 ;LOOP TILL CU READY SETS2 173710 005711 ^ ;TST (R1) ;CHECK ERROR BIT9 173712 100415 ^ v--;BMI 173746 ;BR IF ERROR OCCURRED : 173714 012761 ^ v ;MOV #177000,2(R1) ;SET 1K IN MTBRC 173716 177000 ^ v ; 173720 000002 ^ v ;- 173722 011103 ^ v ;MOV (R1),R3 ;GET MTC7< 173724 042703 ^ v ;BIC #377,R3 ;CLEAR PREVIOUS COMMAND 173726 000377 ^ v ;5 173730 152703 ^ v ;BISB #3,R3 ;SET READ,GO BITS; 173732 000003 ^ v ;9 173734 010311 ^ v ;MOV R3,(R1) ;AND PUT BACK IN MTC 9 173736 105711 ^ v >;TSTB (R1) ;WAIT FOR CU READY BITB< 173740 100376 ^ v ^;BPL 173736 ;LOOP TILL CU READY SETS2 173742 005711 ^ 00 -TADATADATAv ;TST (R1) ;CHECK FOR ERROR- 173744 100004 v-------;BPL 173756 ;BR IF OK00 173746 000005 v ^ >->;RESET ;DO UNIBUS RESET- 173750 000720 v ^----<;BR 173612 ;TRY AGAIN 9 173752 000137 v ;JMP 165564 ;RET TO CONSOLE UCODE  173754 165564 v ;? 173756 042711 >------>;BIC #377,(R1) ;CLEAR ANY COMMAND IN MTC^ 173760 000377 ;;. 173762 005007 ;CLR PC ;GO TO WORD 0 OF CORE 173764 000000 ;C 173766 000000 ;4 173770 000000 ;P 173772 000000 ;L 173774 000000 ;3" 173776 021526 ;.WORD 21526 ;CRC FOR ERROR- 173744 100004 v-------;BPL 173756 ;BR IF OK00 173746 000005 v ^ >->;RESET ;DO UNIBUS RESET- 173750 000720 v ^----<;BR 173612 ;TRY AGAIN 9 173752 000137 v ;JMP 165564 ;RET TO CONSOLE UCODE  173754 165564 v ;? 173756 042711 >------>;BIC #377,(R1) ;CLEAR ANY COMMAND IN MTC^ 173760 000377 ;;. 173762 005007 ;CLR PC ;GO TO WORD 0 OF CORE 173764 000000 ;C 173766 000000 ;4 173770 000000 ;P 173772 000000 ;L 173774 000000 ;3" 173776 02152610 ! DECODE BOOSTRAP AS 16 BITS+11 DIM A$[8],B$[6],C$[132]V,X(16),XX$[132]V@12 DIM DE(16) : ! DECODING BITS FOR BOOTSTRAP BIT VERSUS ROM BITB13 DE(16)=3 : DE(15)=2 : DE(14)=1 : DE(13)=8 : DE(12)=7 : DE(11)=6?14 DE(10)=5 : DE(9)=4 : DE(8)=11 : DE(7)=10 : DE(6)=9 : DE(5)=0,15 DE(4)=15 : DE(3)=14 : DE(2)=13 : DE(1)=12)16 ! DE(N)=X MEANS ROM BIT N = DATA BIT X"20 OPEN #3,"BOOTALT.DAT/RO/LN:132"25 IF END #3 THEN 200"30 OPEN #4,"BOOTALT.OUT/WR/LN:132"40 INPUT LINE #3, XX$41 IF LEN(XX$)>5 THEN 4542 PRINT #4, XX$ 43 GOTO 40845 A$=SBS$(XX$,1,8) : B$=SBS$(XX$,9,6) : C$=SBS$(XX$,15)46 AD=OCT(SBS$(A$,5,3)) 47 IF AD<128 GOTO 4948 AD=AD-128 : GOTO 47 49 AD=AD*2 50 B=OCT(B$)52 FOR I=1 TO 1653 X(I)=B-INT(B/2)*2?54 IF I=11 THEN LET X(I)=1-X(I) :! INVERT DATA BITS 10 THRU 12 H55 IF I=12 THEN LET X(I)=1-X(I) :! (11-13 COUNTING FROM 1 INSTEAD OF 0) 56 IF I=13 THEN LET X(I)=1-X(I) 57 B=INT(B/2)3 58 NEXT I60 FOR XX=1 TO 461 PRINT #4, OCT$(AD+XX-1);" ";3E65 FOR I=1 TO 4 : PRINT #4, FRMT$(X(DE(21-XX*4-I)+1),1);" "; : NEXT IB70 IF XX=4 THEN PRINT #4,C$; 71 PRINT #4$ 72 NEXT XX 80 GOTO 40 200 CLOSE F AD<128 GOTO 4948 AD=AD-128 : GOTO 47 49 AD=AD*2 50 B=OCT(B$)52 FOR I=1 TO 1653 X(I)=B-INT(B/2)*2?54 IF I=11 THEN LET X(I)=1-X(I) :! INVERT DATA BITS 10 THRU 12 H55 IF I=12 THEN LET X(I)=1-X(I) :! (11-13 COUNTING FROM 1 INSTEAD OF 0) 56 IF I=13 THEN LET X(I)=1-X(I) 57 B=INT(B/2)3 58 NEXT I60 FOR XX=1 TO 461 PRINT #4, OCT$(AD+XX-1);" ";3E65 FOR I=1 TO 4 : PRINT #4' 173400 042104 ;.ASCII DD DECTAPE II 173402 000176 ; ?2 173404 000261 ;SEC ;DON'T RET TO CONSOLE UCODE 173406 012700 ;MOV #0,R0 173410 000000 ;< 173412 012701 >------>;MOV #176500,R1 ;POINT R1-> TU58 RCSR 173414 176500 ^ ;& 173416 010704 ^ ;MOV #103054,R4 173420 103054 ^ ;! 173422 000402 ^ <--;BR 1734306 173424 173000 ^ v ;.WORD 173000 ;POWER-UP VECTOR8 173426 000340 ^ v ;.WORD 000340 ;POWER-UP PRIORITY& 173430 012706 ^ >->;MOV #002000,SP 173432 002000 ^ ; 173434 005004 ^ ;CLR R4> 173436 012702 ^ ;MOV ##176504,R2 ;POINT R2 -> TU58 XCSR 173440 176504 ^ ;4 173442 005212 ^ ;INC (R2) ;TURN ON BREAK BIT7 173444 005003 ^ ;CLR R3 ;SEND 2 NULL CHARACTERS1% 173446 004767 ^ ;JSR PC,1735201 173450 000046 ^ ;2 173452 005012 ^ ;CLR (R2) ;CLEAR BREAK BIT> 173454 005737 ^ ;TST @#176502 ;CHECK FOR RECEIVER ERROR 173456 176502 ^ ;5 173460 012703 ^ ;MOV #004004,R3 ;SEND 2 INIT'S0 173462 004004 ^ ;% 173464 004767 ^ ;JSR PC,173524  173466 000034 ^ ;6 173470 010003 ^ ;MOV R0,R3 ;BUFFER START -> R33 173472 004767 ^ ;JSR PC,173526 ;SEND TO TU580 173474 000030 ^ ;; 173476 005003 ^ ;CLR R3 ;POINT R3 -> WORD 0 OF CORE. 173500 105711 ^ >-->->;TSTB (R1) ;CHECK RCSR< 173502 100376 ^ ^ ^-<;BPL 173500 ;LOOP TILL DONE BIT SETSF 173504 113723 ^ ^ ;MOVB @#176502,(R3)+ ;TRANSFER AN INCOMING BYTE 173506 176502 ^ ^ ;9 17300ƘʘI4510 022703 ^ ^ ;CMP #1000,R3 ;FILLED BUFFER YET ?  173512 001000 ^ ^ ;0 173514 101371 ^ ^----<;BHI 173500 ;LOOP IF NOT5 173516 005007 ^ ;CLR PC ;GO TO WORD 0 OF CORE  173520 004717 ^ ; 173522 004717 ^ ; 173524 004717 ^ ;. 173526 105712 ^ -->;TSTB (R2) ;CHECK XCSR< 173530 100376 ^ ^-<;BPL 173526 ;LOOP TILL DONE BIT SETS9 173532 110337 ^ ;MOV R3,@#176506 ;LOAD OUTPUT BYTE; 173534 176506 ^ ;; 173536 000303 ^ ;SWAB R3 ;SWITCH BYTESFOR NEXT CALL3+ 173540 000207 ^ ;RTS PC ;AND RETURN 173542 000261 ^ ;SEC3& 173544 012700 ^ ;MOV #000001,R0 173546 000001 ^ ;- 173550 000720 ^-------;BR 173412 ;TRY AGAIN73 173552 000137 ;JMP @#165564 ;RET TO CONSOLE UCODE7 173554 165564 ;  173556 000000 ;B 173560 000000 ; 173562 000000 ;  173564 000000 ;O 173566 000000 ;S 173570 000000 ;  173572 000000 ;0 173574 000000 ;;# 173576 125025 ;.WORD 125025 ;CRC00303 ^ ;SWAB R3 ;SWITCH BYTESFOR & 173000 042113 ;.ASCII KD RK05/RK11 173002 000026 ; ??2 173004 000261 ;SEC ;DON'T RET TO CONSOLE UCODE) 173006 012700 ;MOV #0,R0 ;SET TO CLEAR 173010 000000 ;; 173012 012701 >------>;MOV #177404,R1 ;ADDRESS OF RKCS->R1 173014 177404 ^ ;0 173016 010704 ^ ;MOV PC,R4 ;POINT RETRIES HERE< 173020 103057 ^ <-----;BCC 173160 ;BR IF MUST RET TO UCODE+ 173022 000426 ^ v v--;BR 173100 ;ELSE...6 173024 173006 ^ v v ;.WORD 173006 ;POWER-UP VECTOR8 173026 000340 ^ v v ;.WORD 000340 ;POWER-UP PRIORITY0 173030 042124 ^ v v ;.ASCII TD TC11 DECTAPE 173032 000146 ^ v v ; ???9 173034 000261 ^ v v ;SEC ;DON'T RET TO CONSOLE UCODE1 173036 012700 ^ v v ;MOV #0,R0 ;SET TO UNIT 07 173040 000000 ^ v v ;; 173042 012701 ^ v v ;MOV #177342,R1 ;ADDRESS OF TCCM->R1E 173044 177342 ^ v v ;6 173046 010704 ^ v v ;MOV PC,R4 ;POINT RETRIES HERE< 173050 103043 ^ v<----;BCC 173160 ;BR IF MUST RET TO UCODE0 173052 010003 ^ v v ;MOV R0,R3 ;UNIT # -> R33 173054 000303 ^ v v ;SWAB R3 ;PUT IN UPPER BYTE46 173056 010311 ^ v v ;MOV R3,(R1) ;LOAD TCCM C UNITD 173060 052711 ^ v v ;BIS #004003,(R1) ;SET REWIND TO READ BLOCK 0 173062 004003 ^ v v ;- 173064 005711 ^ v v >;TST (R1) ;CHECK TCCM 7 173066 100376 ^ v v ^;BPL 173064 ;LOOK FOR END ZONE C3 173070 005761 ^ v v ;TST -2(R1) ;TEST RKER/TCST  173072 177776 ^ v v ;; 173074 010311 ^ v v ;MOV R3,(R1) ;GET UNIT BACK IN TCCM 6 173076 000410 ^ v <---;BR 173120 ;JOIN COMBINED CODE: 173100 010003 ^ v v>->;MOV R0,R3 ;FOR RK, GET UNIT IN R37 173102 000241 ^ v v ;CLC ;RET TO CON UCODE IF FAIL35 173104 006003 ^ v v ;ROR R3 ;ROTATE UNIT # -> TOPD- 173106 006003 ^ v v ;ROR R3 ;3 BITS OF R37 173110 006003 ^ v v ;ROR R3 173112 006003 ^ v v ;ROR R3/ 173114 010361 ^ v v ;MOV R3,6(R1) ;LOAD RKDA  173116 000006 ^ v v ;9 173120 012761 ^ v --->;MOV #177000,2(R1) ;LOAD RKWC/TCWCO 173122 177000 ^ v ; 173124 000002 ^ v ;> 173126 052703 ^ v ;BIS #5,R3 ;SET FUNCTION BITS FOR XFER 173130 000005 ^ v ;4 173132 010311 ^ v ;MOV R3,(R1) ;LOAD RKCS/TCCM0 173134 105711 ^ v >->;TSTB (R1) ;CHECK STATUS4 173136 100376 ^ v ^-<;BPL 173134 ;LOOP TILL READY/ 173140 005711 ^ v ;TST (R1) ;CHECK ERRORS3/ 173142 100003 ^ v <--;BPL 173152 ;BR IF NONE - 173144 000005 ^ v v ;RESET ;DO BUS RESETv/ 173146 000164 ^ v v ;JMP 2(R4) ;TRY A RETRYL 173150 000002 ^ v v ;@ 173152 042711 ^ v >->;BIC #000377,(R1) ;CLEAR ANY COMMAND BITS 173154 000377 ^ v ;9 173156 005007 ^ v ;CLR PC ;AND GO TO WORD 0 OF CORE = 173160 000137 ^ >---->;JMP @#165564 ;RETURN TO CONSOLE UCODE( 173162 165564 ^ ;. 173164 000261 ^ ;SETC ;SHOW NO RET TO UCODE 173166 012700 ^ ;MOV #2,R0 ; 173170 000002 ^ ;- 173172 000707 ^<------;BR 173012 ;TRY AGAINN 173174 000000 ;5# 173176 124650 ;.WORD 124650 ;CRC3146 000164 ^ v v ;JMP 2(R4) ;TRY A RETRYL 173150 000002 ^ v v ;@ 173152 042711 ^ v >->;BIC #000377,(R1) ;CLEAR ANY COMMAND BITS 173154 000377 ^ v ;9 17300"-TADATADATA10 ! DECODE BOOSTRAP AS 16 BITS +11 DIM A$[8],B$[6],C$[132]V,X(16),XX$[132]V@12 DIM DE(16) : ! DECODING BITS FOR BOOTSTRAP BIT VERSUS ROM BITB13 DE(16)=3 : DE(15)=2 : DE(14)=1 : DE(13)=8 : DE(12)=7 : DE(11)=6?14 DE(10)=5 : DE(9)=4 : DE(8)=11 : DE(7)=10 : DE(6)=9 : DE(5)=0,15 DE(4)=15 : DE(3)=14 : DE(2)=13 : DE(1)=12)16 ! DE(N)=X MEANS ROM BIT N = DATA BIT X"20 OPEN #3, "BOOTDP.DAT/RO/LN:132"25 IF END #3 THEN 200!30 OPEN #4,"BOOTDP.OUT/WR/LN:132"35 ZZ=0 : CR%=036 LOAD "DR:[1,202]ANDOR.ATK"0)40 INPUT LINE #3, XX$ : ZZ=ZZ+1 : ZZ=ZZ+1]41 IF LEN(XX$)>5 THEN 4542 PRINT #4, XX$ 43 GOTO 40845 A$=SBS$(XX$,1,8) : B$=SBS$(XX$,9,6) : C$=SBS$(XX$,15)46 AD=OCT(SBS$(A$,5,3))147 IF AD<128 GOTO 4948 AD=AD-128 : GOTO 47 49 AD=AD*2 50 B=OCT(B$)51 FOR I=1 TO 1652 X(I)=B-INT(B/2)*2@54 IF I=11 THEN LET X(I)=1-X(I) : ! INVERT DATA BITS 10 THRU 12I55 IF I=12 THEN LET X(I)=1-X(I) : ! (11-13 COUNTING FROM 1 INSTEAD OF 0)4 56 IF I=13 THEN LET X(I)=1-X(I) 57 B=INT(B/2)A 58 NEXT I260 FOR XX=1 TO 461 PRINT #4, OCT$(AD+XX-1);" ";ZE65 FOR I=1 TO 4 : PRINT #4, FRMT$(X(DE(21-XX*4-I)+1),1);" "; : NEXT I$70 IF XX=4 THEN PRINT #4,C$;C 71 PRINT #4) 72 NEXT XX80 ! DO CYC RED CHAR81 IF ZZ=64 THEN 90= 82 B%=OCT(B$)783 CALL "XOR"(CR%,B%,TT%)/84 TT=TT%*2 : IF TT>32767 THEN LET TT=TT-655361 85 CR%=TTX 90 GOTO 40 200 CLOSE 204 PRINT XX$ 205 PRINT OCT$(CR%)LET X(I)=1-X(I) : ! (11-13 COUNTING FROM 1 INSTEAD OF 0)4 56 IF I=13 THEN LET X(I)=1-X(I) 57 B=INT(B/2)A 58 NEXT I260 FOR10 ! decode boostrap as 16 bits+11 dim a$[8],b$[6],c$[132]v,x(16),xx$[132]v@12 dim de(16) : ! Decoding bits for bootstrap bit versus rom bitB13 de(16)=3 : de(15)=2 : de(14)=1 : de(13)=8 : de(12)=7 : de(11)=6?14 de(10)=5 : de(9)=4 : de(8)=11 : de(7)=10 : de(6)=9 : de(5)=0,15 de(4)=15 : de(3)=14 : de(2)=13 : de(1)=12)16 ! de(n)=x means rom bit n = data bit x"20 open #3, "BOOTDP.DAT/RO/LN:132"25 if end #3 then 200!30 open #4,"BOOTDP.OUT/WR/LN:132"40 input line #3, xx$ : zz=zz+141 if len(xx$)>5 then 4542 print #4, xx$ 43 goto 40845 a$=sbs$(xx$,1,8) : b$=sbs$(xx$,9,6) : c$=sbs$(xx$,15)46 ad=oct(sbs$(a$,5,3)) 47 if ad<128 goto 4948 ad=ad-128 : goto 47 49 ad=ad*2 50 b=oct(b$)51 for i=1 to 1652 x(i)=b-int(b/2)*2@54 if i=11 then let x(i)=1-x(i) : ! invert data bits 10 thru 12I55 if i=12 then let x(i)=1-x(i) : ! (11-13 counting from 1 instead of 0)3 56 if i=13 then let x(i)=1-x(i) 57 b=int(b/2) 58 next i"60 for xx=1 to 461 print #4, oct$(ad+xx-1);" ";zE65 for i=1 to 4 : print #4, frmt$(x(de(21-xx*4-i)+1),1);" "; : next i$70 if xx=4 then print #4,c$;c 71 print #4) 72 next xx 80 goto 40 200 closed 204 print xx$8 ad=ad-128 : goto 47 49 ad=ad*2 50 b=oct(b$)51 for i=1 to 1652 x(i)=b-int(b/2)*2@54 if i=11 then let x(i)=1-x(i) : ! invert data bits 10 thru 12I55 if i=12 then let x(i)=1-x(i) : ! (11-13 counting from 1 instead of 0)3 56 if i=13 then let x(i)=1-x(i) 57 b=int(b/2) 58 next i"60 for xx=1 to 461 print #4, oct$(ad+xx-1);" ";zE65 for i=1 to * 173200 042120 ;.ASCII PD RP03/RM03 BOOT- 173202 000042 ; ;offset to next device/ 173204 000261 ;SEC ;show no diags to run5 173206 012700 ;MOV #0,R0 ;clear all RMER1 flags 173210 000000 ;= 173212 012701 >------>;MOV #176714,R1 ;address of RMER1->R1 173214 176714 ^ ;3 173216 010704 ^ ;MOV PC,R4 ;point retries here? 173220 103060 ^ <-----;BCC 173362 ;br if must ret to ucode3 173222 000402 ^ v <--;BR 173230 ;otherwise...8 173224 173000 ^ v v ;.WORD 173000 ;Must be 1730008 173226 000340 ^ v v ;.WORD 000340 ;Must be 0003406 173230 010003 ^ v -->;MOV R0,R3 ;RMER1 flags->R36 173232 000303 ^ v ;SWAB R3 ;put in upper byte# 173234 010311 ^ v ;MOV R3,(R1)1> 173236 012702 ^ v ;MOV #5,R2 ;seek, go bits for RMCS1 173240 000005 ^ v ;8 173242 000425 ^ v <--;BR 173316 ;go start the load2 173244 042102 ^ v v ;.ASCII BD ;device name4 173246 000132 ^ v v ; ;offset to next device3 173250 000261 ^ v v ;SE00$(+ʘI4C ;show no diags run18 173252 012700 ^ v v ;MOV #0,R0 ;start with unit 0 173254 000000 ^ v v ;A 173256 012701 ^ v v ;MOV #176700,R1 ;point R1 to 1st registert 173260 176700 ^ v v ;9 173262 010704 ^ v v ;MOV PC,R4 ;point retries hereR6 173264 103036 ^ v<----;BCC 173362 ;br if no error? 173266 010061 ^ v v ;MOV R0,10(R1) ;set unit bits in RMCS24 173270 000010 ^ v v ;? 173272 012702 ^ v v ;MOV #71,R2 ;read, go bits for RMCS1  173274 000071 ^ v v ;; 173276 012711 ^ v v ;MOV #21,(R1) ;set read-in presetO 173300 000021 ^ v v ;B 173302 012761 ^ v v ;MOV #14000,32(R1);set FMT,ECI bits in RMOF 173304 014000 ^ v v ; 173306 000032 ^ v v ;A 173310 016161 ^ v v ;MOV 16(R1),16(R1);clear any DRIVE ATA bit1 173312 000016 ^ v v ; 173314 000016 ^ v v ;> 173316 012761 ^ v -->;MOV #177000,2(R1);set 1k in word count 173320 177000 ^ v ; 173322 000002 ^ v ;2 173324 011103 ^ v ;MOV (R1),R3 ;get RMCS19 173326 042703 ^ V ;BIC #377,R3 ;clear lower bytes 173330 000377 ^ v ;; 173332 050203 ^ v ;BIS R2,R3 ;set seek and go bits;8 173334 010311 ^ v ;MOV R3,(R1) ;get RMCS1 in R16 173336 105711 ^ v -->;TSTB (R1) ;check READY bit; 173340 100376 ^ v ^--;BPL 173336 ;wait for READY bit 39 173342 005711 ^ v ;TST (R1) ;check SPEC COND bit(0 173344 100003 ^ v <--;BPL 173354 ;br if ok8 173346 000005 ^ V v ;RESET ;else do unibus reset8 173350 000164 ^ v v ;JMP 2(R4) ;and do full retry 173352 000002 ^ v v ;B 173354 042711 ^ v -->;BIC #377,(R1) ;clear command, int enable 173356 000377 ^ v ; 173360 005007 ^ v ;CLR PC@ 173362 000137 ^ ----->;JMP 165564 ;go back to console ucode 173364 165564 ^ ;5 173366 000261 ^ ;SEC ;show ret to console ucode4- 173370 012700 ^ ;MOV #1,R0 ;with 1 in R1 & 173372 000001 ^ ; ;do full retry! 173374 000706 ^<------;BR 173212 173376 111612 ; ;CRC wordet8 173350 000164 ^ v v ;JMP 2(R4) ;and JMICHAEL REESE MEDICAL CENTER - - - DEPARTMENT OF MEDICAL PHYSICS COMPUTER- BOOTDP.BAS;20 PAGE 110 ! decode boostrap as 16 bits+11 dim a$[8],b$[6],c$[132]v,x(16),xx$[132]v@12 dim de(16) : ! Decoding bits for bootstrap bit versus rom bitB13 de(16)=3 : de(15)=2 : de(14)=1 : de(13)=8 : de(12)=7 : de(11)=6?14 de(10)=5 : de(9)=4 : de(8)=11 : de(7)=10 : de(6)=9 : de(5)=0,15 de(4)=15 : de(3)=14 : de(2)=13 : de(1)=12)16 ! de(n)=x means rom bit n = data bit x"20 open #3, "BOOTDP.DAT/RO/LN:132"25 if end #3 then 200E!30 open #4,"BOOTDP.OUT/WR/LN:132" 40 input line #3, xx$ : zz=zz+1041 if len(xx$)>5 then 4542 print #4, xx$ 43 goto 40845 a$=sbs$(xx$,1,8) : b$=sbs$(xx$,9,6) : c$=sbs$(xx$,15)46 ad=oct(sbs$(a$,5,3)) 47 if ad<128 goto 4948 ad=ad-128 : goto 47 49 ad=ad*2 50 b=oct(b$)51 for i=1 to 1652 x(i)=b-int(b/2)*2@54 if i=11 then let x(i)=1-x(i) : ! invert data bits 10 thru 12I55 if i=12 then let x(i)=1-x(i) : ! (11-13 counting from 1 instead of 0)3 56 if i=13 then let x(i)=1-x(i) 57 b=int(b/2) 58 next i"60 for xx=1 to 461 print #4, oct$(ad+xx-1);" ";zE65 for i=1 to 4 : print #4, frmt$(x(de(21-xx*4-i)+1),1);" "; : next i$70 if xx=4 then print #4,c$;c 71 print #4) 72 next xx 80 goto 40 200 closed 204 print xx$8 ad=ad-128 : goto 47 49 ad=ad*2 50 b=oct(b$)51 for i=1 to 1652 x(i)=b-int(b/2)*2@54 if i=11 then let x(i)=1-x(i) : ! invert data bits 10 thru 12I55 if i=12 then let x(i)=1-x(i) : ! (11-13 counting from 1 instead ofCHANGEBBDDDDDDDD?l?l?l?l?m ^Z00,"-TADATADATA 0 0 0 0 0 1 0 1 0 1 2 1 0 0 0 #3 0 1 0 1 ;.ASCII PD RM03 BOOT 4 0 0 1 0 5 0 0 1 0 6 1 1 0 0 7 0 0 0 1 ; ? 10 0 0 0 0 11 1 0 1 1 12 1 1 0 1 /13 0 0 0 1 ;SEC ;DON'T RET TO CONSOLE UCODE 14 0 0 0 1 15 1 1 0 0 16 1 0 0 0 617 0 0 0 0 ;MOV #0,R0 ;SET TO CLEAR ALL RMER1 FLAGS 20 0 0 0 0 21 0 0 0 0 22 1 1 0 0 23 0 0 0 1 ; 24 0 0 0 1 25 1 1 0 0 26 1 0 0 1 927 0 0 0 0 >------>;MOV #176714,R1 ;ADDRESS OF RMER1->R1 30 1 1 0 1 31 1 1 0 0 32 0 0 0 0 33 1 1 1 0 ^ ; 34 0 1 0 1 35 1 1 0 0 S 36 1 1 0 0 3-37 0 0 0 0 ^ ;MOV PC,R4 ;POINT RETRIES HERE 40 0 0 0 0 41 0 0 1 1 42 1 0 1 0 943 1 0 0 1 ^ <-----;BCC 173362 ;BR IF MUST RET TO UCODED 44 0 0 1 1 1 45 0 0 0 0 0 46 1 1 0 0 0-47 0 0 0 1 ^ v <--;BR 173230 ;OTHERWISE...R 50 0 0 0 0 0 51 0 0 0 0 1 52 1 0 1 0 2353 1 1 1 0 ^ v v ;.WORD 173000 ;POWER-UP VECTOR 54 0 0 0 0 55 1 1 1 0 56 1 1 0 0 #557 0 0 0 1 ^ v v ;.WORD 000340 ;POWER-UP PRIORITY0 60 0 0 1 0 0 61 0 0 0 0 1 62 1 1 0 1 0063 0 0 0 0 ^ v -->;MOV R0,R3 ;RMER1 FLAGS->R3 64 0 0 1 0 65 1 1 0 0 S 66 1 1 0 1 0067 0 0 0 1 ^ v ;SWAB R3 ;PUT IN UPPER BYTE 70 1 0 0 0 3 71 1 1 0 0 U 72 1 1 0 1 D 73 0 0 0 0 ^ v ;MOV R3,(R1) 74 0 0 1 1 7 75 1 1 0 0 76 1 0 0 0 0;77 0 0 0 0 ^ v ;MOV #5,R2 ;SET SEEK,GO BITS FOR RMCS13 100 0 1 0 0 101 0 0 0 0 102 1 1 0 1 103 0 0 0 1 ^ v ; 104 0 1 0 1 105 0 0 0 1 106 1 1 0 1 3107 0 0 0 1 ^ v <--;BR 173316 ;GO START THE LOAD0 110 0 0 1 0 111 0 1 0 0 112 1 0 0 0 113 0 1 0 1 ^ v v ;.ASCII BD> 114 1 0 1 0 115 0 1 0 1 116 1 1 0 0 117 0 0 0 1 ^ v v ; ??? 120 0 0 0 0 121 1 0 1 1 122 1 1 0 1 7123 0 0 0 1 ^ v v ;SEC ;DON'T RET TO CONSOLE UCODE) 124 0 0 0 1 125 1 1 0 0 126 1 0 0 0 3127 0 0 0 0 ^ v v ;MOV #0,R0 ;START WITH UNIT 0O 130 0 0 0 0 131 0 0 0 0 132 1 1 0 0 133 0 0 0 1 ^ v v ; 134 0 0 0 1 135 1 1 0 0 136 1 0 0 1 @137 0 0 0 0 ^ v v ;MOV #176700,R1 ;POINT R1 TO FIRST REGISTER 140 0 0 0 1 141 1 1 0 0 142 0 0 0 0 143 1 1 1 0 ^ v v ; 144 0 1 0 1 145 1 1 0 0 146 1 1 0 0 4147 0 0 0 0 ^ v v ;MOV PC,R4 ;POINT RETRIES HERE 150 1 1 1 0 151 0 0 0 1 152 1 0 1 0 1153 1 0 0 1 ^ v<----;BCC 173362 ;BR IF NO ERROR 154 0 0 0 0 155 0 0 1 1 156 1 1 0 1 ;157 0 0 0 0 ^ v v ;MOV R0,10(R1) ;SET UNIT BITS IN RMCS2 160 1 0 0 0 161 0 0 0 0 162 1 1 0 0 163 0 0 0 1 ^ v v ; 164 0 0 1 1 165 1 1 0 0 166 1 0 0 0 =167 0 0 0 0 ^ v v ;MOV #71,R2 ;SET READ,GO BITS FOR RMCS1 170 1 0 0 0 171 0 0 1 1 172 1 1 0 1 173 0 0 0 1 ^ v v ; 174 1 0 0 1 175 1 1 0 0 176 1 0 0 1 =177 0 0 0 0 ^ v v ;MOV #21,(R1) v ;SET READ-IN PRESET 200 0 0 0 0 201 0 0 0 1 202 1 1 0 1 203 0 0 0 1 ^ v v ; 204 0 0 0 1 205 1 1 1 1 206 1 0 0 1 A207 0 0 0 0 ^ v v ;MOV #14000,32(R1) ;SET FMT,ECI BITS IN RMOF 210 0 0 0 0 211 0 0 0 0 212 0 1 0 0 213 0 0 0 0 ^ v v ; 214 1 0 1 0 215 0 0 0 1 216 1 1 0 0 217 0 0 0 1 ^ v v ; 220 0 0 0 0 221 0 1 1 1 222 0 0 0 1 @223 0 0 0 0 ^ v v ;MOV 16(R1),16(R1) ;CLEAR ANY DRIVE ATA BIT 224 1 1 1 0 225 0 0 0 0 226 1 1 0 0 227 0 0 0 1 ^ v v ; 230 1 1 1 0 231 0 0 0 0 232 1 1 0 0 233 0 0 0 1 ^ v v ; 234 0 0 0 1 235 1 1 1 1 236 1 0 0 1 C237 0 0 0 0 ^ v -->;MOV #177000,2(R1) ;SET 1K BYTES IN WORD COUNT1 240 0 0 0 0 241 0 0 0 0 242 0 0 1 0 243 1 1 1 0 ^ v ; 244 0 0 1 0 245 0 0 0 0 246 1 1 0 0 247 0 0 0 1 ^ v ; 250 0 0 1 0 251 0 1 0 0 252 1 1 1 1 -253 0 0 0 0 ^ v ;MOV (R1),R3 ;GET RMCS1 254 0 0 1 1 255 1 1 0 0 256 1 0 0 1 4257 0 1 0 1 ^ v ;BIC #377,R3 ;CLEAR LOWER BYTE 260 1 1 1 0 261 1 1 1 1 262 1 1 0 1 263 0 0 0 1 ^ v ; 264 0 0 1 0 265 1 0 0 0 266 1 1 0 1 6267 0 1 0 0 ^ v ;BIS R2,R3 ;SET SEEK AND GO BITS 270 1 0 0 0 271 1 1 0 0 272 1 1 0 1 3273 0 0 0 0 ^ v ;MOV R3,(R1) ;GET RMCS1 IN R1; 274 1 0 0 1 275 1 1 0 0 276 0 1 1 1 1277 1 0 0 1 ^ v -->;TSTB (R1) ;CHECK READY BIT 300047 :ʘI40 1 1 1 0 301 1 1 1 1 302 1 1 0 0 C303 1 0 0 1 ^ v ^--;BPL 173336 ;LOOP TIL READY BIT COMES BACK ON 304 1 0 0 1 305 1 1 0 0 306 0 1 1 1 4307 0 0 0 1 ^ v ;TST (R1) ;CHECK SPEC COND BIT 310 0 0 1 0 311 0 0 0 0 312 1 1 0 1 +313 1 0 0 1 ^ v <--;BPL 173354 ;BR IF OK2 314 0 1 0 0 315 0 0 0 0 316 1 1 0 1 3317 0 0 0 1 ^ v v ;RESET ;ELSE DO UNIBUS RESET 320 0 1 0 0 321 0 1 1 1 322 1 1 0 0 3323 0 0 0 1 ^ v v ;JMP 2(R4) ;AND DO FULL RETRYB 324 0 0 1 0 325 0 0 0 0 326 1 1 0 0 327 0 0 0 1 ^ v v ; 330 1 0 0 1 331 1 1 0 0 332 1 0 0 1 ?333 0 1 0 1 ^ v -->;BIC #377,(R1) ;CLEAR COMMAND & INT ENABLE 334 1 1 1 0 335 1 1 1 1 336 1 1 0 1 337 0 0 0 1 ^ v ; 340 0 1 1 0 341 0 0 0 0 342 0 1 1 1 343 0 0 0 1 ^ v ;CLR PC 344 1 1 1 0 345 0 1 0 1 346 1 1 0 1 ;347 0 0 0 1 ^ ----->;JMP 165564 ;GO BACK TO CONSOLE UCODE 350 0 1 0 1 351 0 1 1 1 352 0 1 1 0 353 1 1 1 1 ^ ; 354 0 0 0 0 355 1 0 1 1 356 1 1 0 1 2357 0 0 0 1 ^ ;SEC ;SET TO RET TO CONSOLE UCODE 360 0 0 0 1 361 1 1 0 0 362 1 0 0 0 (363 0 0 0 0 ^ ;MOV #1,R0 ;WITH 1 IN R1 364 0 0 0 0 365 0 0 0 0 366 1 1 0 1 !367 0 0 0 1 ^ ; ;DO FULL RETRY3 370 0 1 1 1 371 1 1 0 0 372 1 1 0 0 373 0 0 0 1 ^<------;BR 173212 374 1 0 1 1 375 1 0 0 0 376 1 1 1 0 377 1 0 0 0 ;CRC WORD 0 1 ^ ----->;JMP 165564 ;GO BACK TO CONSOLE UCODE 350 0 1 0 1 351 0 1 1 1 352 0 1 1 0 353 1 1 1 1 ^ ; 354 0 0 0 0 355 1 0 1 1 356 1 1 0 1 2357 0 0 0 1 ^ ;SEC 10 ! DECODE BOOSTRAP AS 16 BITS+11 DIM A$[8],B$[6],C$[132]V,X(16),XX$[132]V@12 DIM DE(16) : ! DECODING BITS FOR BOOTSTRAP BIT VERSUS ROM BITB13 DE(16)=3 : DE(15)=2 : DE(14)=1 : DE(13)=8 : DE(12)=7 : DE(11)=6?14 DE(10)=5 : DE(9)=4 : DE(8)=11 : DE(7)=10 : DE(6)=9 : DE(5)=0,15 DE(4)=15 : DE(3)=14 : DE(2)=13 : DE(1)=12)16 ! DE(N)=X MEANS ROM BIT N = DATA BIT X%20 OPEN #3, "BOOTDPALT.DAT/RO/LN:132"25 IF END #3 THEN 200$30 OPEN #4,"BOOTDPALT.OUT/WR/LN:132"40 INPUT LINE #3, XX$ : ZZ=ZZ+141 IF LEN(XX$)>5 THEN 4542 PRINT #4, XX$ 43 GOTO 40845 A$=SBS$(XX$,1,8) : B$=SBS$(XX$,9,6) : C$=SBS$(XX$,15)46 AD=OCT(SBS$(A$,5,3))E47 IF AD<128 GOTO 4948 AD=AD-128 : GOTO 47 49 AD=AD*2 50 B=OCT(B$)51 FOR I=1 TO 1652 X(I)=B-INT(B/2)*2@54 IF I=11 THEN LET X(I)=1-X(I) : ! INVERT DATA BITS 10 THRU 12I55 IF I=12 THEN LET X(I)=1-X(I) : ! (11-13 COUNTING FROM 1 INSTEAD OF 0)O 56 IF I=13 THEN LET X(I)=1-X(I) 57 B=INT(B/2)0 58 NEXT IO60 FOR XX=1 TO 461 PRINT #4, OCT$(AD+XX-1);" ";ZE65 FOR I=1 TO 4 : PRINT #4, FRMT$(X(DE(21-XX*4-I)+1),1);" "; : NEXT I$70 IF XX=4 THEN PRINT #4,C$;C 71 PRINT #4) 72 NEXT XX 80 GOTO 40 200 CLOSE 204 PRINT XX$8 AD=AD-128 : GOTO 47 49 AD=AD*2 50 B=OCT(B$)51 FOR I=1 TO 1652 X(I)=B-INT(B/2)*2@54 IF I=11 THEN LET X(I)=1-X(I) : ! INVERT DATA BITS 10 THRU 12I55 IF I=12 THEN LET X(I)=1-X(I) : ! (11-13 COUNTING FROM 1 INSTEAD OF 0)O 56 IF I=13 THEN LET X(I)=1-X(I) 57 B=INT(B/2)0 58 NEXT IO60 FOR XX=1 TO 461 PRINT #4, OCT$(AD+XX-1);" ";ZE65 FOR I+ 173200 042120 ;.ASCII PD RP03/RM03 BOOT* 173202 000042 ; ;OFFSET TO NEXT DEVICE% 173204 000261 ;SEC ;SHOW NO DIAGS: 173206 012700 ;MOV #0,R0 ;SET TO CLEAR ALL RMER1 FLAGS 173210 000000 ;< 173212 012701 >------>;MOV #176614,R1 ;ADDRESS OF RMER1->R1 173214 176614 ^ ;0 173216 010704 ^ ;MOV PC,R4 ;POINT RETRIES HERE< 173220 103060 ^ <-----;BCC 173362 ;BR IF MUST RET TO UCODE0 173222 000402 ^ v <--;BR 173230 ;OTHERWISE...6 173224 173000 ^ v v ;.WORD 173000 ;POWER-UP VECTOR8 173226 000340 ^ v v ;.WORD 000340 ;POWER-UP PRIORITY3 173230 010003 ^ v -->;MOV R0,R3 ;RMER1 FLAGS->R3S3 173232 000303 ^ v ;SWAB R3 ;PUT IN UPPER BYTEE# 173234 010311 ^ v ;MOV R3,(R1)0> 173236 012702 ^ v ;MOV #5,R2 ;SET SEEK,GO BITS FOR RMCS1 173240 000005 ^ v ;5 173242 000425 ^ v <--;BR 173316 ;GO START THE LOAD3! 173244 042102 ^ v v ;.ASCII BD 1 173246 000132 ^ v v ; ;OFFSET TO NEXT DEVICE30 173250 000261 ^ v v ;SEC ;SHOW NO DIAGS RUN5 173252 012700 ^ v v 00 ;MOV #177000,2(R1) ;SET 1K BYTES IN WORD COUNT0 173320 177000 ^ v ; 173322 000002 ^ v ;/ 173324 011103 ^ v ;MOV (R1),R3 ;GET RMCS1 6 173326 042703 ^ v ;BIC #377,R3 ;CLEAR LOWER BYTE 173330 000377 ^ v ;8 173332 050203 ^ v ;BIS R2,R3 ;SET SEEK AND GO BITS5 173334 010311 ^ v ;MOV R3,(R1) ;GET RMCS1 IN R113 173336 105711 ^ v -->;TSTB (R1) ;CHECK READY BIT6E 173340 100376 ^ v ^--;BPL 173336 ;LOOP TIL READY BIT COMES BACK ON 6 173342 005711 ^ v ;TST (R1) ;CHECK SPEC COND BIT- 173344 100003 ^ v <--;BPL 173354 ;BR IF OK05 173346 000005 ^ v v ;RESET ;ELSE DO UNIBUS RESETv5 173350 000164 ^ v v ;JMP 2(R4) ;AND DO FULL RETRY; 173352 000002 ^ v v ;A 173354 042711 ^ v -->;BIC #377,(R1) ;CLEAR COMMAND & INT ENABLE; 173356 000377 ^ v ; 173360 005007 ^ v ;CLR PC= 173362 000137 ^ ----->;JMP 165564 ;GO BACK TO CONSOLE UCODEE 173364 165564 ^ ;4 173366 000261 ^ ;SEC ;SET TO RET TO CONSOLE UCODE* 173370 012700 ^ ;MOV #1,R0 ;WITH 1 IN R1# 173372 000001 ^ ; ;DO FULL RETRYv! 173374 000706 ^<------;BR 1732124 173376 111612 ;CRC CHARACTERDO UNIBUS RESETv5 173350 000164 ^ v v ;JMP 2(R4) ;AND DO FULL RETRY; 173352 000002 ^ v v ;A 173354 042711 ^ v 0 0 0 0 0 1 0 1 0 1 2 1 0 0 0 #3 0 1 0 1 ;.ASCII PD RM03 BOOT 4 0 0 1 0 5 0 0 1 0 6 1 1 0 0 7 0 0 0 1 ; ? 10 0 0 0 0 11 1 0 1 1 12 1 1 0 1 /13 0 0 0 1 ;SEC ;DON'T RET TO CONSOLE UCODE 14 0 0 0 1 15 1 1 0 0 16 1 0 0 0 617 0 0 0 0 ;MOV #0,R0 ;SET TO CLEAR ALL RMER1 FLAGS 20 0 0 0 0 21 0 0 0 0 22 1 1 0 0 23 0 0 0 1 ; 24 0 0 0 1 25 1 1 0 0 26 1 0 0 1 927 0 0 0 0 >------>;MOV #176614,R1 ;ADDRESS OF RMER1->R1 30 1 1 0 1 31 1 0 0 0 32 0 0 0 0 33 1 1 1 0 ^ ; 34 0 1 0 1 35 1 1 0 0 S 36 1 1 0 0 3-37 0 0 0 0 ^ ;MOV PC,R4 ;POINT RETRIES HERE 40 0 0 0 0 41 0 0 1 1 42 1 0 1 0 943 1 0 0 1 ^ <-----;BCC 173362 ;BR IF MUST RET TO UCODED 44 0 0 1 1 1 45 0 0 0 0 0 46 1 1 0 0 0-47 0 0 0 1 ^ v <--;BR 173230 ;OTHERWISE...R 50 0 0 0 0 0 51 0 0 0 0 1 52 1 0 1 0 2353 1 1 1 0 ^ v v ;.WORD 173000 ;POWER-UP VECTOR 54 0 0 0 0 55 1 1 1 0 56 1 1 0 0 #557 0 0 0 1 ^ v v ;.WORD 000340 ;POWER-UP PRIORITY0 60 0 0 1 0 0 61 0 0 0 0 1 62 1 1 0 1 0063 0 0 0 0 ^ v -->;MOV R0,R3 ;RMER1 FLAGS->R3 64 0 0 1 0 65 1 1 0 0 S 66 1 1 0 1 0067 0 0 0 1 ^ v ;SWAB R3 ;PUT IN UPPER BYTE 70 1 0 0 0 3 71 1 1 0 0 U 72 1 1 0 1 D 73 0 0 0 0 ^ v ;MOV R3,(R1) 74 0 0 1 1 7 75 1 1 0 0 76 1 0 0 0 0;77 0 0 0 0 ^ v ;MOV #5,R2 ;SET SEEK,GO BITS FOR RMCS13 100 0 1 0 0 101 0 0 0 0 102 1 1 0 1 103 0 0 0 1 ^ v ; 104 0 1 0 1 105 0 0 0 1 106 1 1 0 1 3107 0 0 0 1 ^ v <--;BR 173316 ;GO START THE LOAD0 110 0 0 1 0 111 0 1 0 0 112 1 0 0 0 113 0 1 0 1 ^ v v ;.ASCII BD> 114 1 0 1 0 115 0 1 0 1 116 1 1 0 0 117 0 0 0 1 ^ v v ; ??? 120 0 0 0 0 121 1 0 1 1 122 1 1 0 1 7123 0 0 0 1 ^ v v ;SEC ;DON'T RET TO CONSOLE UCODE) 124 0 0 0 1 125 1 1 0 0 126 1 0 0 0 3127 0 0 0 0 ^ v v ;MOV #0,R0 ;START WITH UNIT 0O 130 0 0 0 0 131 0 0 0 0 132 1 1 0 0 133 0 0 0 1 ^ v v ; 134 0 0 0 1 135 1 1 0 0 136 1 0 0 1 @137 0 0 0 0 ^ v v ;MOV #176600,R1 ;POINT R1 TO FIRS00!D"K:ʘI4T REGISTER 140 0 0 0 1 141 1 0 0 0 142 0 0 0 0 143 1 1 1 0 ^ v v ; 144 0 1 0 1 145 1 1 0 0 146 1 1 0 0 4147 0 0 0 0 ^ v v ;MOV PC,R4 ;POINT RETRIES HERE 150 1 1 1 0 151 0 0 0 1 152 1 0 1 0 1153 1 0 0 1 ^ v<----;BCC 173362 ;BR IF NO ERROR 154 0 0 0 0 155 0 0 1 1 156 1 1 0 1 ;157 0 0 0 0 ^ v v ;MOV R0,10(R1) ;SET UNIT BITS IN RMCS2 160 1 0 0 0 161 0 0 0 0 162 1 1 0 0 163 0 0 0 1 ^ v v ; 164 0 0 1 1 165 1 1 0 0 166 1 0 0 0 =167 0 0 0 0 ^ v v ;MOV #71,R2 ;SET READ,GO BITS FOR RMCS1 170 1 0 0 0 171 0 0 1 1 172 1 1 0 1 173 0 0 0 1 ^ v v ; 174 1 0 0 1 175 1 1 0 0 176 1 0 0 1 =177 0 0 0 0 ^ v v ;MOV #21,(R1) v ;SET READ-IN PRESET 200 0 0 0 0 201 0 0 0 1 202 1 1 0 1 203 0 0 0 1 ^ v v ; 204 0 0 0 1 205 1 1 1 1 206 1 0 0 1 A207 0 0 0 0 ^ v v ;MOV #14000,32(R1) ;SET FMT,ECI BITS IN RMOF 210 0 0 0 0 211 0 0 0 0 212 0 1 0 0 213 0 0 0 0 ^ v v ; 214 1 0 1 0 215 0 0 0 1 216 1 1 0 0 217 0 0 0 1 ^ v v ; 220 0 0 0 0 221 0 1 1 1 222 0 0 0 1 @223 0 0 0 0 ^ v v ;MOV 16(R1),16(R1) ;CLEAR ANY DRIVE ATA BIT 224 1 1 1 0 225 0 0 0 0 226 1 1 0 0 227 0 0 0 1 ^ v v ; 230 1 1 1 0 231 0 0 0 0 232 1 1 0 0 233 0 0 0 1 ^ v v ; 234 0 0 0 1 235 1 1 1 1 236 1 0 0 1 C237 0 0 0 0 ^ v -->;MOV #177000,2(R1) ;SET 1K BYTES IN WORD COUNT1 240 0 0 0 0 241 0 0 0 0 242 0 0 1 0 243 1 1 1 0 ^ v ; 244 0 0 1 0 245 0 0 0 0 246 1 1 0 0 247 0 0 0 1 ^ v ; 250 0 0 1 0 251 0 1 0 0 252 1 1 1 1 -253 0 0 0 0 ^ v ;MOV (R1),R3 ;GET RMCS1 254 0 0 1 1 255 1 1 0 0 256 1 0 0 1 4257 0 1 0 1 ^ v ;BIC #377,R3 ;CLEAR LOWER BYTE 260 1 1 1 0 261 1 1 1 1 262 1 1 0 1 263 0 0 0 1 ^ v ; 264 0 0 1 0 265 1 0 0 0 266 1 1 0 1 6267 0 1 0 0 ^ v ;BIS R2,R3 ;SET SEEK AND GO BITS 270 1 0 0 0 271 1 1 0 0 272 1 1 0 1 3273 0 0 0 0 ^ v ;MOV R3,(R1) ;GET RMCS1 IN R1; 274 1 0 0 1 275 1 1 0 0 276 0 1 1 1 1277 1 0 0 1 ^ v -->;TSTB (R1) ;CHECK READY BIT 300 1 1 1 0 301 1 1 1 1 302 1 1 0 0 C303 1 0 0 1 ^ v ^--;BPL 173336 ;LOOP TIL READY BIT COMES BACK ON 304 1 0 0 1 305 1 1 0 0 306 0 1 1 1 4307 0 0 0 1 ^ v ;TST (R1) ;CHECK SPEC COND BIT 310 0 0 1 0 311 0 0 0 0 312 1 1 0 1 +313 1 0 0 1 ^ v <--;BPL 173354 ;BR IF OK2 314 0 1 0 0 315 0 0 0 0 316 1 1 0 1 3317 0 0 0 1 ^ v v ;RESET ;ELSE DO UNIBUS RESET 320 0 1 0 0 321 0 1 1 1 322 1 1 0 0 3323 0 0 0 1 ^ v v ;JMP 2(R4) ;AND DO FULL RETRYB 324 0 0 1 0 325 0 0 0 0 326 1 1 0 0 327 0 0 0 1 ^ v v ; 330 1 0 0 1 331 1 1 0 0 332 1 0 0 1 ?333 0 1 0 1 ^ v -->;BIC #377,(R1) ;CLEAR COMMAND & INT ENABLE 334 1 1 1 0 335 1 1 1 1 336 1 1 0 1 337 0 0 0 1 ^ v ; 340 0 1 1 0 341 0 0 0 0 342 0 1 1 1 343 0 0 0 1 ^ v ;CLR PC 344 1 1 1 0 345 0 1 0 1 346 1 1 0 1 ;347 0 0 0 1 ^ ----->;JMP 165564 ;GO BACK TO CONSOLE UCODE 350 0 1 0 1 351 0 1 1 1 352 0 1 1 0 353 1 1 1 1 ^ ; 354 0 0 0 0 355 1 0 1 1 356 1 1 0 1 2357 0 0 0 1 ^ ;SEC ;SET TO RET TO CONSOLE UCODE 360 0 0 0 1 361 1 1 0 0 362 1 0 0 0 (363 0 0 0 0 ^ ;MOV #1,R0 ;WITH 1 IN R1 364 0 0 0 0 365 0 0 0 0 366 1 1 0 1 !367 0 0 0 1 ^ ; ;DO FULL RETRY3 370 0 1 1 1 371 1 1 0 0 372 1 1 0 0 373 0 0 0 1 ^<------;BR 173212 374 1 0 1 1 375 1 0 0 0 376 1 1 1 0 377 1 0 0 0 ;CRC CHARACTER ^ ----->;JMP 165564 ;GO BACK TO CONSOLE UCODE 350 0 1 0 1 351 0 1 1 1 352 0 1 1 0 353 1 1 1 1 ^ ; 354 0 0 0 0 355 1 0 1 1 356 1 1 0 1 2357 0 0 0 1 ^ ;SE 0 0 0 0 0 1 0 1 0 1 2 1 0 0 0 # 3 0 1 0 1 ;.ASCII PD RM03 BOOT 4 0 0 1 0 5 0 0 1 0 6 1 1 0 0  7 0 0 0 1 ; ? 10 0 0 0 0 11 1 0 1 1 12 1 1 0 1 -13 0 0 0 1 ;SEC ;don't ret to console ucode 14 0 0 0 1 15 1 1 0 0 16 1 0 0 0 417 0 0 0 0 ;MOV #0,R0 ;set to clear all RMER1 flags 20 0 0 0 0 21 0 0 0 0 22 1 1 0 0 23 0 0 0 1 ; 24 0 0 0 1 25 1 1 0 0 26 1 0 0 1 827 0 0 0 0 >------>;MOV #176714,R1 ;address of RMER1->R1 30 1 1 0 1 31 1 1 0 0 00"L#N"-TADATADATA 32 0 0 0 0 33 1 1 1 0 ^ ; 34 0 1 0 1 35 1 1 0 0 . 36 1 1 0 0 M+37 0 0 0 0 ^ ;MOV PC,R4 ;point retries here0 40 0 0 0 0 0 41 0 0 1 1 0 42 1 0 1 0 1743 1 0 0 1 ^ <-----;BCC 173362 ;br if must ret to ucodeo 44 0 0 1 1 45 0 0 0 0 46 1 1 0 0 +47 0 0 0 1 ^ v <--;BR 173230 ;otherwise...c 50 0 0 0 0 1 51 0 0 0 0 0 52 1 0 1 0 0053 1 1 1 0 ^ v v ;.WORD 173000 ;Must be 173000 54 0 0 0 0 55 1 1 1 0 56 1 1 0 0 >057 0 0 0 1 ^ v v ;.WORD 000340 ;Must be 000340 60 0 0 1 0 1 61 0 0 0 0 0 62 1 1 0 1 1.63 0 0 0 0 ^ v -->;MOV R0,R3 ;RMER1 flags->R3 0 M+37 0 0 0 0 ^ ;MOV PC,R4 ;point retries here0 40 0 0 0 0 0 41 0 0 1 1 0 42 1 0 1 0 1743 1 0 0 1 ^ <-----;BCC 173362 ;br if must ret to ucodeo 44 0 0 1 1 45 0 0 0 0 46 1 1 0 0 +47 0 0 0 1 ^ v <--;BR 173230 ;otherwise...c 50 0 0 0 0 1 51 0 0 0 0 0 52 1 0 1 0 0053 1 1 1 0 ^ v v ;.WORD 173000 ;Must be 173000 54 0 0 0 0 55 1 1 1 0 56 1 1 0 0 >057 0 0 0 1 ^ v v ;.WORD 000340 ;Must be 000340 60 0 0 1 0 1 61 0 0& 173600 046524 ;.ASCII MT TU10/TM11 173602 000176 ; ?2 173604 000261 ;SEC ;DON'T RET TO CONSOLE UCODE. 173606 012700 ;MOV #000000,R0 ;SELECT UNIT 0 173610 000000 ;< 173612 012701 >---->;MOV #172522,R1 ;ADDRESS OF MTC -> R1 173614 172522 ^ ;& 173616 010704 ^ ;MOV #103054,R4 173620 103054 ^ ;! 173622 000411 ^ <--;BR 1736466 173624 173000 ^ v ;.WORD 173000 ;POWER-UP VECTOR8 173626 000340 ^ v ;.WORD 000340 ;POWER-UP PRIORITY5 173630 012700 ^ v ;MOV #000001,R0 ;SELECT UNIT 1  173632 000001 ^ v ;! 173634 000766 ^<---<;BR 173612'5 173636 012700 ^ v ;MOV #000001,R0 ;SELECT UNIT 1  173640 000001 ^ v ;9 173642 000261 ^ v ;SEC ;DON'T RET TO CONSOLE UCODEF! 173644 000762 ^<---<;BR 173612;0 173646 010003 ^ >->;MOV R0,R3 ;UNIT # -> R33 173650 000303 ^ ;SWAB R3 ;PUT IN UPPER BYTE: 173652 010311 ^ ;MOV R3,(R1) ;LOAD MTC WITH UNIT #7 173654 006061 ^ >->;ROR -2(R1) ;GET TUR BIT OF MTS3 173656 177776 ^ ^ ;< 173660 103375 ^ ^-<;BCC 173654 ;LOOP UNTIL TUR BIT SETS> 173662 052711 ^ ;BIS #060017,(R1) ;SET 800BPI,REWIND,GO 173664 060017 ^ ;: 173666 105711 ^ >->;TSTB (R1) ;CHECK FOR CU READY BIT3 173670 100376 ^ ^-<;BPL 173666 ;LOOP TILL DONE1 173672 012761 ^ ;MOV #-1,2(R1) ;LOAD MTBRC1 173674 177777 ^ ; 173676 000002 ^ ;6 173700 112711 ^ ;MOV #11,(R1) ;SET SPACE FWD,GO 173702 000011 ^ ;: 173704 105711 ^ >->;TSTB (R1) ;CHECK FOR CU READY BIT< 173706 100376 ^ ^-<;BPL 173704 ;LOOP TILL CU READY SETS2 173710 005711 ^ ;TST (R1) ;CHECK ERROR BIT9 173712 100415 ^ v--;BMI 173746 ;BR IF ERROR OCCURRED : 173714 012761 ^ v ;MOV #177000,2(R1) ;SET 1K IN MTBRC 173716 177000 ^ v ; 173720 000002 ^ v ;- 173722 011103 ^ v ;MOV (R1),R3 ;GET MTC7< 173724 042703 ^ v ;BIC #377,R3 ;CLEAR PREVIOUS COMMAND 173726 000377 ^ v ;5 173730 152703 ^ v ;BISB #3,R3 ;SET READ,GO BITS; 173732 000003 ^ v ;9 173734 010311 ^ v ;MOV R3,(R1) ;AND PUT BACK IN MTC 9 173736 105711 ^ v >;TSTB (R1) ;WAIT FOR CU READY BITB< 173740 100376 ^ v ^;BPL 173736 ;LOOP TILL CU READY SETS2 173742 005711 ^ v ;TST (R1) ;CHECK FOR ERROR- 173744 100004 v-------;BPL 173756 ;BR IF OK00 173746 000005 v ^ >->;RESET ;DO UNIBUS RESET- 173750 000720 v ^----<;BR 173612 ;TRY AGAIN 9 173752 000137 v ;JMP 165564 ;RET TO CONSOLE UCODE  173754 165564 v ;? 173756 042711 >------>;BIC #377,(R1) ;CLEAR ANY COMMAND IN MTC^ 173760 000377 ;;. 173762 005007 ;CLR PC ;GO TO WORD 0 OF CORE 173764 000000 ;C 173766 000000 ;4 173770 000000 ;P 173772 000000 ;L 173774 000000 ;3# 173776 021526 ;.WORD 021526 ;CRCFOR ERROR- 173744 100004 v-------;BPL 173756 ;BR IF OK00 173746 000005 v ^ >->;RESET ;DO UNIBUS RESET- 173750 000720 v ^----<;BR 173612 ;TRY AGAIN 9 173752 000137 v ;JMP 165564 ;RET TO CONSOLE UCODE  173754 165564 v ;? 173756 042711 >------>;BIC #377,(R1) ;CLEAR A00$TK:ʘI4 165000 012737 ; MOV #-1,@#706 165002 177777 ; 165004 000706 ; 165006 000405 ; BR 165022 165010 005037 ; CLR @#706 165012 000706 ; 165014 000402 ; BR 165022 165016 000240 ; NOP 165020 000773 ; BR 165010 165022 010037 ; MOV R0,@#700 165024 000700 ; 165026 010137 ; MOV R1,@#702 165030 000702 ; 165032 010437 ; MOV R4,@#704 165034 000704 ;! 165036 012737 ; MOV #165676,@#4 165040 165676 ; 165042 000004 ; 165044 012737 ; MOV #340,@#6 165046 000340 ;  165050 000006 ;#" 165052 012737 ; MOV #165736,@#30 165054 165736 ;0 165056 000030 ; 165060 012737 ; MOV #340,@#325 165062 000340 ;5 165064 000032 ;5 165066 000401 ; BR 165072( 165070 000777 ; BR 165070 ;BR TO SELF 165072 005006 ; CLR SP 165074 100404 ; BMI 165106 165076 102403 ; BVS 165106 165100 101002 ; BHI 165106 165102 002401 ; BLT 165106 165104 101401 ; BHI 165110( 165106 000777 ; BR 165106 ;BR TO SELF 165110 005306 ; DEC SP 165112 100003 ; BPL 165127 165114 001402 ; BEQ 165122 165116 002001 ; BGE 165122 165120 003401 ; BLE 165124( 165122 000777 ; BR 165122 ;BR TO SELF 165124 006006 ; ROR SP 165126 102002 ; BVS 165134 165130 103001 ; BCC 165134 165132 001001 ; BNE 165136( 165134 000777 ; BR 165134 ;BR TO SELF 165136 012706 ; MOV #125252,SP 165140 125252 ;  165142 000402 ; BR 165150  165144 000000 ; HALT( 165146 000776 ; BR 165146 ;BR TO SELF 165150 010600 ; MOV SP,R03 165152 010001 ; MOV R0,R1  165154 010102 ; MOV R1,R2  165156 010203 ; MOV R2,R3  165160 010304 ; MOV R3,R4  165162 010405 ; MOV R4,R5  165164 160501 ; SUB R5,R15 165166 002401 ; BLT 165172 165170 001401 ; BEQ 165174( 165172 000777 ; BR 165172 ;BR TO SELF 165174 006102 ; ROL R2 165176 103001 ; BCC 165202  165200 002401 ; BLT 165204( 165202 000777 ; BR 165202 ;BR TO SELF 165204 060203 ; ADD R2,R31 165206 005203 ; INC R3 165210 005103 ; COM R3 165212 060301 ; ADD R3,R10 165214 103401 ; BCS 165220 165216 003401 ; BLE 165224( 165220 000777 ; BR 165220 ;BR TO SELF 165222 006004 ; ROR R4 165224 050403 ; BIS R4,R3U 165226 060503 ; ADD R5,R3L 165230 005203 ; INC R3 165232 103402 ; BCS 165240 165234 005301 ; DEC R1 165236 002401 ; BLT 165242( 165240 000777 ; BR 165240 ;BR TO SELF 165242 005100 ; COM R0 165244 101401 ; BLOS 165250F( 165246 000777 ; BR 165246 ;BR TO SELF 165250 040001 ; BIC R0,R13 165252 060101 ; ADD R1,R1  165254 003001 ; BGE 165260 165256 003401 ; BLE 165262( 165260 000777 ; BR 165260 ;BR TO SELF 165262 000301 ; SWAB R1  165264 020127 ; BGE 165544 165266 052125 ; BIS (R1),(R5)5 165270 001004 ; BNE 165302 165272 030405 ; BIT R4,R50 165274 003002 ; BGT 165302 165276 005105 ; COM R5 165300 001001 ; BNE 165304( 165302 000777 ; BR 165302 ;BR TO SELF! 165304 112700 ; MOVB #177401,R04 165306 177401 ;4 165310 100001 ; BPL 165314( 165312 000777 ; BR 165312 ;BR TO SELF 165314 077002 ; SOB R0,165312 165316 005001 ; CLR R1 165320 005201 ; INC R1 165322 077002 ; SOB R0,1653201 165324 005700 ; TST R0 165326 001002 ; BNE 165344 165330 005701 ; TST R1 165332 001401 ; BEQ 165336( 165334 000777 ; BR 165334 ;BR TO SELF 165336 012706 ; MOV #776,R6  165340 000776 ;0 165342 004767 ; JSR PC,2 165344 000002 ;;( 165346 000777 ; BR 165346 ;BR TO SELF" 165350 022716 ; CMP #165346,(SP) 165352 165346 ; 165354 001401 ; BEQ 165360( 165356 000777 ; BR 165356 ;BR TO SELF" 165360 012716 ; MOV #165370,(SP) 165362 165370 ; 165364 000207 ; RTS PC( 165366 000777 ; BR 165364 ;BR TO SELF 165370 005046 ; CLR -(SP) # 165372 012746 ; MOV #165402,-(SP)E 165374 165402 ;0 165376 000002 ; RTIT ( 165400 000777 ; BR 165400 ;BR TO SELF 165402 000137 ; JMP @#165410 165404 165410 ;0( 165406 000777 ; BR 165406 ;BR TO SELF 165410 012705 ; MOV #160000,R5 165412 160000 ;  165414 005037 ; CLR @#6  165416 000006 ;5! 165420 012737 ; MOV #16500$\%c"-TADATADATA426,@#4 165422 165426 ;O 165424 000004 ;5 165426 012706 ; MOV #776,SP  165430 000776 ;0 165432 005745 ; TST -(R5)F 165434 012703 ; MOV #17746,R31 165436 177746 ; # 165440 012737 ; MOV #165466,-(SP)1 165442 165466 ;T 165444 000004 ; IOT 165446 012713 ; MOV #1015,(R3) 165450 001015 ;0# 165452 012737 ; MOV #165662,@#114  165454 165662 ;  165456 000114 ;5 165460 005037 ; CLR @#1166 165462 000116 ;0 165464 000403 ; BR 1654740! 165466 012737 ; MOV #165676,@#42 165470 165676 ;4 165472 000004 ;0 165474 012702 ; MOV #1000,R2 165476 001000 ;7 165500 010200 ; MOV R2,R0  165502 010010 ; MOV R0,R1  165504 005720 ; TST (R0) 165506 020005 ; CMP R0,R55 165510 101774 ; BLOS 165502 165512 010200 ; MOV R2,R04 165514 011001 ; MOV (R0),R15 165516 020001 ; CMP R0,R17 165520 001402 ; BEQ 165526 165522 104000 ; EMT 01 165524 000000 ; HALT 165526 005120 ; COM (R0)+  165530 020005 ; CMP R0,R57 165532 101770 ; BLOS 1655147 165534 014001 ; MOV -(R0),R1 165536 005101 ; COM R1 165540 020001 ; CMP R0,R1  165542 001402 ; BEQ 165550 165544 104000 ; EMT 00 165546 000000 ; HALT 165550 020002 ; CMP R0,R22 165552 001370 ; BNE 165534! 165554 012737 ; MOV #165704,@#40 165556 165704 ;5 165560 000004 ;R 165562 000402 ; BR 165570  165564 000167 ; JMP 165000 165566 177210 ;0 165570 005013 ; CLR (R3)! 165572 012737 ; MOV #165676,@#4) 165574 165676 ;  165576 000004 ;3  165600 012702 ; MOV #1000,R2 165602 001000 ;1 165604 010200 ; MOV R2,R01 165606 010010 ; MOV R0,(R0)5 165610 005720 ; TST (R0)+5 165612 020005 ; CMP R0,R5  165614 101774 ; BLOS 165604  165616 010200 ; MOV R2,R0  165620 005110 ; COM (R0) 165622 005110 ; COM (R0) 165624 021000 ; CMP (R0),R0R 165626 001402 ; BEQ 165634 165630 104000 ; EMT 06 165632 000000 ; HALT 165634 005720 ; TST (R0)+# 165636 032737 ; BIT #400,@#1777501 165640 000400 ;1 165642 177750 ;  165644 001403 ; BEQ 165654 165646 104000 ; EMT 01 165650 000000 ; HALT 165652 000406 ; BR 165670( 165654 020005 ; CMP R0,R5R 165656 101760 ; BLOS 165620R 165660 000411 ; BR 1657045 165662 104000 ; EMT 0O 165664 000000 ; HALT 165666 000776 ; BR 165644 165670 012713 ; MOV #1015,(R3) 165672 001015 ;0 165674 000403 ; BR 1657040 165676 104000 ; EMT 00 165700 000000 ; HALT( 165702 000776 ; BR 165702 ;BR TO SELF 165704 005737 ; TST @#7060 165706 000706 ;0 165710 001002 ; BNE 165716 165712 000000 ; HALT( 165714 000776 ; BR 165714 ;BR TO SELF 165716 013700 ; MOV @#700,R0 165720 000700 ;1 165722 013701 ; MOV @#702,R1 165724 000702 ;1 165726 013704 ; MOV @#704,R4 165730 000704 ;  165732 000164 ; JMP 2(R4)5 165734 000002 ;3 165736 012704 ; MOV #165762,R4 165740 165762 ;32 165742 105737 ; TSTB @#177564 ;WAIT FOR XMIT RDY 165744 177564 ;0 165746 100375 ; BPL 1657426 165750 112437 ; MOVB (R4),@#177566 ;OUTPUT CHARACTER 165752 177566 ;N. 165754 105714 ; TSTB (R4) ;END OF MESSAGE ?( 165756 001371 ; BNE 165742 ;BR IF NOT 165760 000002 ; RTI2% 165762 005015 ; .BYTE 15,12 ;CR-LF0 165764 051105 ; .ASCII /ER/2 165766 047522 ; .ASCII /RO/3 165770 000122 ; .ASCIZ /R/ 165772 000000 ; .WORD 02 165774 041460 ; .WORD 041460 165776 124140 ; .WORD 124140742 105737 ; TSTB @#177564 ;WAIT FOR XMIT RDY 165744 177564 ;0 165746 100375 ; BPL 1657426 165750 112437 ; MOVB (R4),@#177566 ;OUTPUT CHARACTER 165752 177566 ;N. 165,CRC,CRC/-SP=LB:[1,202]LODMAC/ML,SY:[1,10]CRC00&d'f(gʘI4 (T 26AP84L  V&fAxBtEE AlxE@x e !1BRcs ƍ#2$FW6etHZӾl~CRC.ATK/-HD/-FP,CRC/-SP=CRCLB:[1,1]BSCPUR.STB/SS/STACK=0UNITS=0/";MACRO SUB TO CALC A CRC CHARACTER; ; MAIN CALL; CALL "CRC"(I,J,K);; WHERE%; I IS CURRENT VALUE OF CRC CHARACTER; J IS NEW WORD TO BE ADDED!; K IS NEW VALUE OF CRC CHARACTER;;; IDENTIFYING INFO .MCALL ULODHD ;CALL MACRO( ;IDENTIFY START OF CODE, END OF CODE ;AND ONE ENTRY POINT ULODHD CRC,END,CRC;AC0=%0AC1=%1;;$ CRC: ;LABLE ACTUAL START OF CODE0 JSR R4,@#GTRGPI ;GO GET ARGUMENTS IN PI FASHION, .BYTE 1,1,2,0 ;OLD CRC (2 WORDS, ON STACK)! ;NEW WORD (2 WORDS, ON STACK)C! ;RETURNED CRC (5 WORD TARGET)"0 JSR PC,@#PARCHK ;CHECK FOR TRAILING RIGHT PAREN SETI ;SET INTEGER MODEW SETF ;NORMAL FLOATING LDF (SP)+,AC0 ;GET OLD CRC WORD LDF (SP)+,AC1 ;GET ADDED WORD! MOV R0,-(SP) ;SAVE USED REGS NOWT MOV R1,-(SP)D MOV R2,-(SP)A# STCFI AC0,R0 ;OLD CRC VALUE TO R0R STCFI AC1,R1 ;NEXT WORD TO R1C xor r0,r1 ; do xorA% mov r1 ,r2 ; get the high four bitsG* ash #-4 ,r2 ; and move them over to 3..0) bic #^C17 ,r2 ; drop any bits left overR' bic #^C17 ,r1 ; and the low four bits ' asl r1 ; times 2 for word addressingI' asl r2 ; times 2 for word addressingD3 mov crctb2(r1),r1 ; get low portion of CRC factor  mov crctab(r2),r2- xor r2,r1 ; simple (limited modes for XOR)R/ swab r0 ; shift off a byte from previous crcA& bic #^C377 ,r0 ; clear new high byte# xor r1 ,r0 ; add in the new value;$ LDCIF R0,AC0 ;PUT BACK TO FLOATING MOV (SP)+,R2 ;RESTORE USED REGS MOV (SP)+,R1 MOV (SP)+,R07 MOV SP,R5 ;R5 => 3RD ARG' JSR PC,@#NSTORE ;RETURN ARG TO PROGRAMb$ ADD #12,SP ;UN-KLUTZ STACK POINTER RTS PC ;BACK TO MAIN PROG ; crctab: .word 0 .word 10201 .word 20402 .word 30603 .word 41004 .word 51205 .word 61406 .word 71607 .word 102010r .word 1122110 .word 122412a .word 132613i .word 143014# .word 153215e .word 163416e .word 173617;crctb2: .word 0u .word 10611 .word 21422 .word 31233 .word 43044 .word 53655 .word 62466 .word 72277 .word 106110S .word 116701D .word 127532# .word 137323A .word 145154 .word 155745N .word 164576I .word 174367;;K END: .ENDOG ; crctab: .word 0 .word 10201 .word 20402 .word 30603 .word 41004 .word 51205 .word 61406 .word 71607 .word 102010r .word 1122110 .word 122412a .word 132613i .word 143014# .word 153215e .word 163416e .word 173617;crctb2: .word 0u .word 10611 .word 21422 .word 31233 .word 43044 .word 53655 .word 62466 .word 72277 .word 106110S .word 100)l*m+r,s-TADATADATA* :L.I.@8X@8@*8@Z`@:d @( *L   8X88.I.":d *&V&fAxBtEE A&*LlxE@x e ! lZ`*r1BRcs ƍ#2$FW6etHZӾl~7;crctb2: .word 0u .word 10611 .word 21422 .word 31233 .word 43044 .word 53655 .word 62466 .word 72277 .word 106110S .word 1  .sbttl crc calculation>; This routine will calculate the CRC for a string, using the; CRC-CCIT polynomial. ;>; The string should be the fields of the packet between but>; not including the and the block check, which is>; treated as a string of bits with the low order bit of the>; first character first and the high order bit of the last>; character last -- this is how the bits arrive on the>; transmission line. The bit string is divided by the ; polynomial ; ; x^16+x^12+x^5+1h; >; The initial value of the CRC is 0. The result is the>; remainder of this division, used as-is (i.e. not; complemented). t; >; From 20KERMIT.MAC, rewritten for PDP11 by Brian Nelson; 13-Jan-84 08:50:43 b; ; input: @r5 string addresst; 2(r5) string length; output: r0 crc5crcclc::save ; save registers pleasew& clr r0 ; initialize the CRC to zero* mov @r5 ,r3 ; get the string address now' mov 2(r5) ,r4 ; get the string length+& beq 100$ ; oops, nothing to do then-10$: clr r1 ; get the next character please 1 bisb (r3)+ ,r1 ; please avoid pdp11 sign extend 3 cmpb parity ,#par$no ; did the packet have parity? & beq 20$ ; no, leave bit seven alone. bic #^C177 ,r1 ; yes, clear bit seven please/20$: ixor r0 ,r1 ; add in with the current CRCr% mov r1 ,r2 ; get the high four bitss* ash #-4 ,r2 ; and move them over to 3..0) bic #^C17 ,r2 ; drop any bits left overd' bic #^C17 ,r1 ; and the low four bitsg' asl r1 ; times 2 for word addressingd' asl r2 ; times 2 for word addressinga3 mov crctb2(r1),r1 ; get low portion of CRC factor 5 ixor crctab(r2),r1 ; simple (limited modes for XOR)v/ swab r0 ; shift off a byte from previous crce& bic #^C377 ,r0 ; clear new high byte$ ixor r1 ,r0 ; add in the new value sob r4 ,10$ ; next please /100$: unsave ; pop saved r1-r5  return &; Data tables for CRC-CCITT generationcrctab: .word 0# .word 10201 .word 20402 .word 30603 .word 41004 .word 51205 .word 61406 .word 71607 .word 102010s .word 112211b .word 122412 .word 132613C .word 143014o .word 153215 .word 163416t .word 173617Rcrctb2: .word 0i .word 10611 .word 21422 .word 31233 .word 43044 .word 53655 .word 62466 .word 72277 .word 106110s .word 116701e .word 1275320 .word 137323r .word 145154o .word 155745 .word 164576 .word 174367 T generationcrctab: .word 0# .word 1$JOB SYSTEM MEMTEST 200$MCR$MTS$EOJMEMTEST/-CP/PR/-FX/-FP=MEMTESTLB:[1,1]EXEC.STB/SS/ TASK=...MTS UIC=[1,1]STACK=32ASG=TI:5/00-tf(gʘI4 - EXTERNAL PAGE ADDRESSES AS OF DECEMBER 82 ' 160010 040140 ;CSR DZ11 #0" 160012 001615 ;RBUF/LPR 160014 000000 ;TCR! 160016 000000 ;MSR/TDR' 160020 040140 ;CSR DZ11 #2" 160022 002215 ;RBUF/LPR 160024 000000 ;TCR! 160026 000000 ;MSR/TDR' 160030 040140 ;CSR DZ11 #3" 160032 000000 ;RBUF/LPR 160034 060100 ;TCR! 160036 060000 ;MSR/TDR= 160770 002403 ;MONTH/DAY TCU100 TIME OF DAY CLOCKB" 160772 012442 ;HOUR/MIN! 160774 000010 ;SECONDS 160776 000200 ;STATUS6 164110 000400 ;CSR STATOS PRINTER/PLOTTER 164112 000000 ;DATA# 164114 000000 ;BUFF-ADDRL$ 164116 000000 ;WORD-COUNT% 164120 000000 ;EX-MEM ADDR32 165000->165776 ;ROM CONSOLE UCODE (11/44 ONLY)7 165006 000000 ; CACHE CONTROL (11/45 ONLY)30 170200->170376 ; UNIBUS MAPPING (11/44 ONLY); 170400 000000 ;A/D STATUS LAB PERIPHERAL SYSTEM $ 170402 004003 ;A/D BUFFER( 170410 000000 ;DIG I/O STATUS' 170412 177777 ;DIG I/O INPUTT( 170414 000011 ;DIG I/O OUTPUT$ 170416 002000 ;D/A STATUS# 170420 000000 ;D/A X-REG;# 170422 000000 ;D/A Y-REG;% 170424 000000 ;EXT D/A REGO1 172100 000001 ; MEMORY PARITY CTL (11/44 ONLY);- 172102 000001 ; MEMORY PARITY CTL : 172104 000001 ; MEMORY PARITY CTL (11/45 ONLY)1 172200 070401 ; SUPERVISOR INS. PDR'S  172202 004400 ; 172204 002211 ; 172206 000002 ; 172210 017715 ; 172212 077717 ; 172214 057717 ; 172216 067602 ;1 172220 061317 ; SUPERVISOR DATA PDR'S  172222 077716 ; 172224 071106 ; 172226 076717 ; 172230 077717 ; 172232 077717 ; 172234 077717 ; 172236 077717 ;1 172240 002420 ; SUPERVISOR INS. PAR'SV 172242 006221 ; 172244 000000 ; 172246 000000 ; 172250 006620 ; 172252 006704 ; 172254 006777 ; 172256 007777 ; 0  % EXTERNAL PAGE ADDRESSES CONTINUEDV R1 172260 006640 ; SUPERVISOR DATA PAR'S0 172262 006304 ; 172264 007400 ; 172266 007777 ; 172270 006665 ; 172272 001600 ; 172274 007777 ; 172276 001377 ;- 172300 077506 ; KERNAL INS. PDR'S4 172302 077506 ; 172304 077406 ; 172306 077406 ; 172310 020116 ; 172312 077506 ; 172314 077506 ; 172316 077506 ;- 172320 000300 ; KERNAL DATA PDR'S; 172322 040710 ; 172324 075400 ; 172326 077417 ; 172330 004311 ; 172332 000200 ; 172334 077717 ; 172336 007717 ;- 172340 000005 ; KERNAL INS. PAR'S  172342 000205 ; 172344 000452 ; 172346 003050 ; 172350 000607 ; 172352 001007 ; 172354 001207 ; 172356 007600 ;- 172360 007642 ; KERNAL DATA PAR'S  172362 007777 ; 172364 007777 ; 172366 007777 ; 172370 007777 ; 172372 007777 ; 172374 007777 ; 172376 007777 ;8 172516 000000 ; MEMORY MANAGEMENT REGISTER 3 ; MAG TAPE (STREAMER)$ 172520 000000 ;MTS STATUS% 172522 000200 ;MTC CONTROL53 172524 000000 ;MTBRC BYTE RECORD COUNTER26 172526 000000 ;MTCMA CURRENT MEMORY ADDRESS) 172530 000000 ;MTD DATA BUFFER) 172532 100000 ;MTRD READ LINES  172534 000000 ;MTXX 172536 000000 ;MTXX . 172540 000000 ;CSR KW11P Programmable clock* 172542 000000 ;Count S00-|m+r,s-TADATADATAet Buffer Register! 172544 000000 ;Counter RegisterN 172546 000000 ;XXM T3 173000->173176 ;ROM FIRST BOOTSTRAP (11/44 ONLY)3 173200->173376 ;ROM 2ND BOOTSTRAP (11/44 ONLY)03 173400->173576 ;ROM 3RD BOOTSTRAP (11/44 ONLY)03 173600->173776 ;ROM 4TH BOOTSTRAP (11/44 ONLY)0 4 173100 010702 ;MOV PC,R2 BM792 BOOTSTRAP# 173102 000451 ;BR 173226 6 173104 177462 ; ;ADDRESS OF WORD COUNT REG6 173106 000005 ; ;CONTROL REGISTER CONTENTS) 173110 010702 ;MOV PC,R2 ;RK11 # 173112 000445 ;BR 173226X6 173114 177406 ; ;ADDRESS OF WORD COUNT REG6 173116 000005 ; ;CONTROL REGISTER CONTENTS3 173120 010702 ;MOV PC,R2 ;CASSETTE TAPESY# 173122 000417 ;BR 173164S6 173124 177344 ; ;ADDRESS OF BYTE COUNT REG) 173126 000005 ; ;LAST COMMAND * 173130 004003 ; ;FIRST COMMAND& 173132 100000 ; ;DONE MASK' 173134 024000 ; ;ERROR MASKS1 173136 010702 ;MOV PC,R2 ;TM11 9-TRACK1# 173140 000410 ;BR 17316216 173142 172524 ; ;ADDRESS OF BYTE COUNT REG) 173144 060003 ; ;LAST COMMANDT* 173146 060011 ; ;FIRST COMMAND& 173150 000200 ; ;DONE MASK' 173152 100000 ; ;ERROR MASK . 173154 010702 ;MOV R2,PC ;RP03 DISK# 173156 000423 ;BR 17322606 173160 176716 ; ;ADDRESS OF WORD COUNT REG= 173162 000005 ;RESET ;ALSO IS CONTROL WORD FOR RP @ 173164 010200 ;MOV R2,R0 ;GET ADDRESS OF BRANCH INST.2 173166 005720 ;TST (R0)+ ;BUMP TO TABLE> 173170 012001 ;MOV (R0)+,R1 ;GET WORD COUNT ADDRESS7 173172 005311 ;DEC (R1) ;SET IT TO A BIG ONE0@ 173174 005720 ;TST (R0)+ ;ADVANCE R0 TO FIRST COMMANDE 173176 012041 ;MOV (R0)+,-(R1) ;PUT COMMAND IN COMMAND REG ; 173200 031011 ;BIT (R0),(R1) ;LOOK FOR DONE BITSC1 173202 001776 ;BEQ .-2 ;WAIT TILL DONE > 173204 005720 ;TST (R0)+ ;ADVANCE TO ERROR BIT FLAG? 173206 031041 ;BIT (R0),-(R1) ;SEE IF ERROR BITS SET ; 173210 001406 ;BEQ 173226 ;IF OK, DO 2ND COMMANDU> 173212 000112 ;JMP (R2) ;ELSE RETRY IF ERROR OCCURS1 173214 173100 ; ;RF11 POWER UP VECTORR) 173216 000340 ; ;AND PRIORITY , 173220 010702 ;MOV PC,R2 ;RC DISK# 173222 000401 ;BR 173226(6 173224 177450 ; ;ADDRESS OF WORD COUNT REG< 173226 000005 ;RESET ;ALSO CONTROL WORD FOR RC119 173230 010200 ;MOV R2,R0 ;POINT TO BRANCH INST-B 173232 005720 ;TST (R0)+ ;BUMP TO ADDRESS OF WORD COUNT4 173234 012001 ;MOV (R0)+,R1 ;GET IT IN R1: 173236 012711 ;MOV #-1000,(R1) ;READ IN 1 BLOCK 173240 177000 ;D 173242 011041 ;MOV (R0),-(R1) ;MOVE COMMAND > COMMAND REGC 173244 032711 ;BIT #100200,(R1) ;CHECK FOR ERROR OR DONE5 173246 100200 ;1 173250 001775 ;BEQ .-4 ;LOOP TILL DONEO4 173252 100757 ;BMI 173212 ;RETRY ON ERROR6 173254 005007 ;CLEAR PC ;START AT 0 IN CORE# 173256 000000 ; ;UNUSEDU1 173260 173110 ; ;RK11 POWER UP VECTORI) 173262 000340 ; ;AND PRIORITY(1 173264 173220 ; ;RC11 POWER UP VECTOR1) 173266 000340 ; ;AND PRIORITYE1 173270 173154 ; ;RP11 POWER UP VECTORI) 173272 000340 ; ;AND PRIORITY11 173274 173120 ; ;TC11 POWER UP VECTOR;) 173276 000340 ; ;AND PRIORITY   ;  2% EXTERNAL PAGE ADDRESSES CONTINUED  ( 174000 000110 ;RCSR DC11 #1 174002 000000 ;RBUF 174004 000610 ;XCSR 174006 000000 ;XBUF( 174010 000110 ;RCSR DC11 #2 174012 000000 ;RBUF 174014 000410 ;XCSR 174016 000000 ;XBUF ( 175610 000100 ;RCSR DL11 #1 175612 000000 ;RBUF 175614 000200 ;XCSR 175616 000000 ;XBUF( 175620 000-f(gʘI400100 ;RCSR DL11 #2 175622 000233 ;RBUF 175624 000200 ;XCSR 175626 000000 ;XBUF 4< 176500 000100 ;RCSR DECTAPE II TU58 (11/44 ONLY) 176502 120000 ;RBUF 176504 000200 ;XCSR 176506 000000 ;XBUF B MAG-TAPE (TU10)$ 176520 000000 ;MTS STATUS% 176522 000200 ;MTC CONTROLR3 176524 000000 ;MTBRC BYTE RECORD COUNTER06 176526 000000 ;MTC MACURRENT MEMORY ADDRESS) 176530 000000 ;MTD DATA BUFFER5) 176532 000000 ;MTRD READ LINES  176534 000000 ;MTXX 176536 000000 ;MTXX RM03 (SYSTEMS INDUSTRIES)3 176600 144200 ;RMCS1 CONTROL & STATUS REGISTER #10) 176602 000000 ;RMWC WORD COUNT REGISTER - 176604 000000 ;RMBA UNIBUS ADDRESS REGISTER0+ 176606 002020 ;RMDA DISK ADDRESS REGISTER 3 176610 100100 ;RMCS2 CONTROL & STATUS REGISTER #2 + 176612 000600 ;RMDS DRIVE STATUS REGISTER ( 176614 000000 ;RMER1 ERROR REGISTER #10 176616 000000 ;RMAS ATTENTION SUMMARY REGISTER) 176620 000000 ;RMLA LOOK-AHEAD REGISTER * 176622 000000 ;RMDB DATA BUFFER REGISTER. 176624 000010 ;RMMR1 MAINTENANCE REGISTER #1) 176626 020024 ;RMDT DRIVE TYPE REGISTER#, 176630 106400 ;RMSN SERIAL NUMBER REGISTER% 176632 000000 ;RMOF OFFSET REGISTERR/ 176634 000000 ;RMDC DESIRED CYLINDER REGISTERS& 176636 177777 ;RMHR HOLDING REGISTER. 176640 011777 ;RMMR2 MAINTENANCE REGISTER #2( 176642 000000 ;RMER2 ERROR REGISTER #2, 176644 000000 ;RMEC1 ECC POSITION REGISTER+ 176646 000000 ;RMEC2 ECC PATTERN REGISTERO A D G% EXTERNAL PAGE ADDRESSES CONTINUEDE  RP11 (AED) REGISTERS 176700 000726 ; SM CYLINDER1 176702 000001 ; SM HEADY 176704 000010 ; SM RECORD  176706 002004 ; SM SEEK END1+ 176710 160000 ;RPDS DISK STATUS $ 176712 000000 ;RPER ERROR0 176714 000642 ;RPCS CONTROL & STATUS) 176716 177400 ;RPWC WORD COUNT1+ 176720 117140 ;RPBA BUSS ADDRESS4/ 176722 000715 ;RPCA CYLINDER ADDRESS0+ 176724 003021 ;RPDA DISK ADDRESSG6 176726 001673 ;RPM1 MAINTENANCE REGISTER #16 176730 016753 ;RPM2 MAINTENANCE REGISTER #26 176732 004010 ;RPM3 MAINTENANCE REGISTER #3= 176734 000045 ;SUCA SELECTED UNIT CYLINDER ADDRESSS# 176736 000004 ;SILO SILOR3 176744 000000 ; AED UCODE LOAD REGISTERST 176746 000000 ; P W7 177160 000000 ;CSR CR11 CARD READER (DL11) 177162 000000 ;CRB1 177164 173777 ;CRXX 177166 000000 ;CRXX RK117* 177400 004705 ;RKDS DISK STATUS$ 177402 000000 ;RKER ERROR/ 177404 000200 ;RKCS CONTROL & STATUSI) 177406 000000 ;RKWC WORD COUNT + 177410 000000 ;RKBA BUSS ADDRESS6+ 177412 000000 ;RKDA DISK ADDRESS0+ 177414 000000 ;MAINT MAINTENANCE6* 177416 000000 ;RKDB DATA BUFFER 1 177510 000200 ;LPRS LP11 (LP0, DR11)0 177512 000012 ;LPRD! 177514 000200 ;LPRS DUPLICATE0 177516 000015 ;LPRD  12 177546 000300 ; KW11L LINE FREQ CLOCK 1 177550 000200 ;LPRS LP11 (LP1, DR11)  177552 000000 ;LPRD 177554 177777 ;LPXX 177556 000000 ;LPXX K/ 177560 000100 ;RCSR DL11 (CONSOLE)D 177562 000215 ;RBUF 177564 000200 ;XCSR 177566 000000 ;XBUF F% EXTERNAL PAGE ADDRESSES CONTINUED  1 L 6 177570 173154 ; CONSOLE & DISPLAY REGISTER R8 177572 000141 ; MEMORY MANAGEMENT REGISTER 08 177574 000025 ; MEMORY MANAGEMENT REGISTER 18 177576 000146 ; MEMORY MANAGEMENT REGISTER 2 ;+ 177600 002506 ; USER INS. PDR'S  177602 000000 ; 177604 000000 ; 177606 000000 ; 177610 020016 ; 177612 077406 ; 177614 077406 ; 177616 077406 ;+ 177620 077513 ;00-.r,s-TADATADATA USER DATA PDR'S3 177622 056515 ; 177624 003407 ; 177626 077717 ; 177630 077501 ; 177632 077410 ; 177634 077717 ; 177636 077717 ;+ 177640 003054 ; USER INS. PAR'S  177642 000000 ; 177644 000000 ; 177646 000000 ; 177650 000607 ; 177652 001007 ; 177654 001207 ; 177656 007600 ;+ 177660 001137 ; USER DATA PAR'S  177662 000335 ; 177664 001400 ; 177666 000377 ; 177670 000177 ; 177672 004334 ; 177674 007777 ; 177676 007777 ; 13 177744 000000 ; MEMORY SYSTEM ERROR (11/44 ONLY) 6 177746 000000 ; CACHE CONTROL REGISTER (11/44 ONLY), 177750 174010 ; MAINTENANCE (11/44 ONLY)) 177752 003077 ; HIT/MISS (11/44 ONLY)  177754 011501 ;  1 1777656 000160 ; CPU ERROR  ; 177770 000377 ; MICROPROGRAM BREAK (11/45 ONLY) 8 177772 000000 ; PROG INTERRUPT REQUEST (PIR)9 177774 000400 ; STACK LIMIT (SL) (11/45 ONLY)37 177776 174004 ; PROCESSOR STATUS WORD (PSW) ; 13 177744 000000 ; MEMORY SYSTEM ERROR (11/44 ONLY) 6 177746 000000 ; CACHE CONTROL REGISTER (11/44 ONLY), 177750 174010 ; MAINTENANCE (11/44 ONLY)) 177752 003077 ; HIT/MISS (11/44 ONLY)  177754 011501 ;  1 1777656 000160 ; CPU ERROR  ; 177770 000377 ; MICROPROGRAM BREAK (11/45 ONLY)  5User SYSTEM UIC [1,1] BA00: 13:00:57 20-MAY-83$MCR$MTS160010 040140 ;160012 001615 ;160014 000000 ;160016 000000 ;160020 040140 ;160022 002215 ;160024 000000 ;160026 000000 ;160030 040140 ;160032 001415 ;160034 000000 ;160036 000000 ;160770 002424 ;160772 006400 ;160774 000073 ;160776 000200 ;164110 100460 ;164112 000000 ;164114 000000 ;164116 000000 ;164120 000000 ;165000 012737 ;165002 177777 ;165004 000706 ;165006 000405 ;165010 005037 ;165012 000706 ;165014 000402 ;165016 000240 ;165020 000773 ;165022 010037 ;165024 000700 ;165026 010137 ;165030 000702 ;165032 010437 ;165034 000704 ;165036 012737 ;165040 165676 ;165042 000004 ;165044 012737 ;165046 000340 ;165050 000006 ;165052 012737 ;165054 165736 ;165056 000030 ;165060 012737 ;165062 000340 ;165064 000032 ;165066 000401 ;165070 000777 ;165072 005006 ;165074 100404 ;165076 102403 ;165100 101002 ;165102 002401 ;165104 101401 ;165106 000777 ;165110 005306 ;165112 100003 ;165114 001402 ;165116 002001 ;165120 003401 ;165122 000777 ;165124 006006 ;165126 102002 ;165130 103001 ;165132 001001 ;165134 000777 ;165136 012706 ;165140 125252 ;165142 000402 ;165144 000000 ;165146 000776 ;165150 010600 ;165152 010001 ;165154 010102 ;165156 010203 ;165160 010304 ;165162 010405 ;165164 160501 ;165166 002401 ;165170 001401 ;165172 000777 ;165174 006102 ;165176 103001 ;165200 002401 ;165202 000777 ;165204 060203 ;165206 005203 ;165210 005103 ;165212 060301 ;165214 103401 ;165216 003401 ;165220 000777 ;165222 006004 ;165224 050403 ;165226 060503 ;165230 005203 ;165232 103402 ;165234 005301 ;165236 002401 ;165240 000777 ;165242 005100 ;165244 101401 ;165246 000777 ;165250 040001 ;165252 060101 ;165254 003001 ;165256 003401 ;165260 000777 ;165262 000301 ;165264 020127 ;165266 052125 ;165270 001004 ;165272 030405 ;165274 003002 ;165276 005105 ;165300 001001 ;165302 000777 ;165304 112700 ;165306 177401 ;165310 100001 ;165312 000777 ;165314 077002 ;165316 005001 ;165320 005201 ;165322 077002 ;165324 005700 ;165326 001002 ;165330 005701 ;165332 001401 ;165334 000777 ;165336 012706 ;165340 000776 ;165342 004767 ;165344 000002 ;165346 000777 ;165350 0227100.f(gʘI46 ;165352 165346 ;165354 001401 ;165356 000777 ;165360 012716 ;165362 165370 ;165364 000207 ;165366 000777 ;165370 005046 ;165372 012746 ;165374 165402 ;165376 000002 ;165400 000777 ;165402 000137 ;165404 165410 ;165406 000777 ;165410 012705 ;165412 160000 ;165414 005037 ;165416 000006 ;165420 012737 ;165422 165426 ;165424 000004 ;165426 012706 ;165430 000776 ;165432 005745 ;165434 012703 ;165436 177746 ;165440 012737 ;165442 165466 ;165444 000004 ;165446 012713 ;165450 001015 ;165452 012737 ;165454 165662 ;165456 000114 ;165460 005037 ;165462 000116 ;165464 000403 ;165466 012737 ;165470 165676 ;165472 000004 ;165474 012702 ;165476 001000 ;165500 010200 ;165502 010010 ;165504 005720 ;165506 020005 ;165510 101774 ;165512 010200 ;165514 011001 ;165516 020001 ;165520 001402 ;165522 104000 ;165524 000000 ;165526 005120 ;165530 020005 ;165532 101770 ;165534 014001 ;165536 005101 ;165540 020001 ;165542 001402 ;165544 104000 ;165546 000000 ;165550 020002 ;165552 001370 ;165554 012737 ;165556 165704 ;165560 000004 ;165562 000402 ;165564 000167 ;165566 177210 ;165570 005013 ;165572 012737 ;165574 165676 ;165576 000004 ;165600 012702 ;165602 001000 ;165604 010200 ;165606 010010 ;165610 005720 ;165612 020005 ;165614 101774 ;165616 010200 ;165620 005110 ;165622 005110 ;165624 021000 ;165626 001402 ;165630 104000 ;165632 000000 ;165634 005720 ;165636 032737 ;165640 000400 ;165642 177750 ;165644 001403 ;165646 104000 ;165650 000000 ;165652 000406 ;165654 020005 ;165656 101760 ;165660 000411 ;165662 104000 ;165664 000000 ;165666 000776 ;165670 012713 ;165672 001015 ;165674 000403 ;165676 104000 ;165700 000000 ;165702 000776 ;165704 005737 ;165706 000706 ;165710 001002 ;165712 000000 ;165714 000776 ;165716 013700 ;165720 000700 ;165722 013701 ;165724 000702 ;165726 013704 ;165730 000704 ;165732 000164 ;165734 000002 ;165736 012704 ;165740 165762 ;165742 105737 ;165744 177564 ;165746 100375 ;165750 112437 ;165752 177566 ;165754 105714 ;165756 001371 ;165760 000002 ;165762 005015 ;165764 051105 ;165766 047522 ;165770 000122 ;165772 000000 ;165774 041460 ;165776 124140 ;170200 076324 ;170202 000002 ;170204 000000 ;170206 000074 ;170210 000000 ;170212 000074 ;170214 000000 ;170216 000074 ;170220 000000 ;170222 000074 ;170224 000000 ;170226 000074 ;170230 000000 ;170232 000074 ;170234 000000 ;170236 000074 ;170240 000000 ;170242 000074 ;170244 000000 ;170246 000074 ;170250 000000 ;170252 000074 ;170254 000000 ;170256 000074 ;170260 000000 ;170262 000074 ;170264 071506 ;170266 000001 ;170270 014600 ;170272 000003 ;170274 034600 ;170276 000003 ;170300 011500 ;170302 000004 ;170304 000000 ;170306 000074 ;170310 000000 ;170312 000074 ;170314 000000 ;170316 000074 ;170320 000000 ;170322 000074 ;170324 000000 ;170326 000074 ;170330 000000 ;170332 000074 ;170334 000000 ;170336 000074 ;170340 000000 ;170342 000074 ;170344 000000 ;170346 000074 ;170350 000000 ;170352 000074 ;170354 000000 ;170356 000074 ;170360 061300 ;170362 000000 ;170364 101300 ;170366 000000 ;170370 121300 ;170372 000000 ;170374 100276 ;170376 000077 ;170400 000400 ;170402 004147 ;170410 000000 ;170412 177777 ;170414 017000 ;170416 002202 ;170420 007020 ;170422 005524 ;170424 000000 ;172100 000001 ;172102 000001 ;172104 000001 ;172200 000100 ;172202 010000 ;172204 020100 ;172206 010100 ;172210 010100 ;172212 000000 ;172214 010000 ;172216 004000 ;172220 000000 ;172222 010100 ;172224 010100 ;172226 000000 ;172200.r,s-TADATADATA30 100100 ;172232 020100 ;172234 000000 ;172236 000100 ;172240 000000 ;172242 050000 ;172244 070000 ;172246 100200 ;172250 030100 ;172252 000000 ;172254 000040 ;172256 100000 ;172260 130040 ;172262 100000 ;172264 100120 ;172266 000000 ;172270 060020 ;172272 000040 ;172274 000040 ;172276 000000 ;172300 077506 ;172302 077506 ;172304 077406 ;172306 077406 ;172310 020116 ;172312 077506 ;172314 077506 ;172316 077506 ;172320 140100 ;172322 150100 ;172324 150000 ;172326 100100 ;172330 000100 ;172332 100000 ;172334 040100 ;172336 110100 ;172340 000006 ;172342 000206 ;172344 000456 ;172346 003347 ;172350 000613 ;172352 001013 ;172354 001213 ;172356 177600 ;172360 170000 ;172362 110001 ;172364 060011 ;172366 000001 ;172370 040001 ;172372 000200 ;172374 110241 ; 7 172376 000223 ;172516 100060 ;172520 000000 ;172522 000200 ;172524 000000 ;172526 000000 ;172530 000000 ;172532 000000 ;172534 161335 ;172536 145021 ;172540 000000 ;172542 000000 ;172544 000000 ;172546 000000 ;173000 042113 ;173002 000026 ;173004 000261 ;173006 012700 ;173010 000000 ;173012 012701 ;173014 177404 ;173016 010704 ;173020 103057 ;173022 000426 ;173024 173006 ;173026 000340 ;173030 042124 ;173032 000146 ;173034 000261 ;173036 012700 ;173040 000000 ;173042 012701 ;173044 177342 ;173046 010704 ;173050 103043 ;173052 010003 ;173054 000303 ;173056 010311 ;173060 052711 ;173062 004003 ;173064 005711 ;173066 100376 ;173070 005761 ;173072 177776 ;173074 010311 ;173076 000410 ;173100 010003 ;173102 000241 ;173104 006003 ;173106 006003 ;173110 006003 ;173112 006003 ;173114 010361 ;173116 000006 ;173120 012761 ;173122 177000 ;173124 000002 ;173126 052703 ;173130 000005 ;173132 010311 ;173134 105711 ;173136 100376 ;173140 005711 ;173142 100003 ;173144 000005 ;173146 000164 ;173150 000002 ;173152 042711 ;173154 000377 ;173156 005007 ;173160 000137 ;173162 165564 ;173164 000261 ;173166 012700 ;173170 000002 ;173172 000707 ;173174 000000 ;173176 124650 ;173200 042120 ;173202 000042 ;173204 000261 ;173206 012700 ;173210 000000 ;173212 012701 ;173214 176714 ;173216 010704 ;173220 103060 ;173222 000402 ;173224 173000 ;173226 000340 ;173230 010003 ;173232 000303 ;173234 010311 ;173236 012702 ;173240 000005 ;173242 000425 ;173244 042102 ;173246 000132 ;173250 000261 ;173252 012700 ;173254 000000 ;173256 012701 ;173260 176700 ;173262 010704 ;173264 103036 ;173266 010061 ;173270 000010 ;173272 012702 ;173274 000071 ;173276 012711 ;173300 000021 ;173302 012761 ;173304 014000 ;173306 000032 ;173310 016161 ;173312 000016 ;173314 000016 ;173316 012761 ;173320 177000 ;173322 000002 ;173324 011103 ;173326 042703 ;173330 000377 ;173332 050203 ;173334 010311 ;173336 105711 ;173340 100376 ;173342 005711 ;173344 100003 ;173346 000005 ;173350 000164 ;173352 000002 ;173354 042711 ;173356 000377 ;173360 005007 ;173362 000137 ;173364 165564 ;173366 000261 ;173370 012700 ;173372 000001 ;173374 000706 ;173376 111612 ;173400 042104 ;173402 000176 ;173404 000261 ;173406 012700 ;173410 000000 ;173412 012701 ;173414 176500 ;173416 010704 ;173420 103054 ;173422 000402 ;173424 173000 ;173426 000340 ;173430 012706 ;173432 002000 ;173434 005004 ;173436 012702 ;173440 176504 ;173442 005212 ;173444 005003 ;173446 004767 ;173450 000046 ;173452 005012 ;173454 005737 ;173456 176502 ;173460 012703 ;173462 004004 ;173464 004767 ;173466 000034 ;173470 010003 ;173472 004767 ;173474 000030 ;173476 005003 ;173500 105711 ;173502 100376 ;173504 100.f(gʘI413723 ;173506 176502 ;173510 022703 ;173512 001000 ;173514 101371 ;173516 005007 ;173520 004717 ;173522 004717 ;173524 004717 ;173526 105712 ;173530 100376 ;173532 110337 ;173534 176506 ;173536 000303 ;173540 000207 ;173542 000261 ;173544 012700 ;173546 000001 ;173550 000720 ;173552 000137 ;173554 165564 ;173556 000000 ;173560 000000 ;173562 000000 ;173564 000000 ;173566 000000 ;173570 000000 ;173572 000000 ;173574 000000 ;173576 125025 ;173600 046524 ;173602 000176 ;173604 000261 ;173606 012700 ;173610 000000 ;173612 012701 ;173614 172522 ;173616 010704 ;173620 103054 ;173622 000411 ;173624 173000 ;173626 000340 ;173630 012700 ;173632 000001 ;173634 000766 ;173636 012700 ;173640 000001 ;173642 000261 ;173644 000762 ;173646 010003 ;173650 000303 ;173652 010311 ;173654 006061 ;173656 177776 ;173660 103375 ;173662 052711 ;173664 060017 ;173666 105711 ;173670 100376 ;173672 012761 ;173674 177777 ;173676 000002 ;173700 112711 ;173702 000011 ;173704 105711 ;173706 100376 ;173710 005711 ;173712 100415 ;173714 012761 ;173716 177000 ;173720 000002 ;173722 011103 ;173724 042703 ;173726 000377 ;173730 152703 ;173732 000003 ;173734 010311 ;173736 105711 ;173740 100376 ;173742 005711 ;173744 100004 ;173746 000005 ;173750 000720 ;173752 000137 ;173754 165564 ;173756 042711 ;173760 000377 ;173762 005007 ;173764 000000 ;173766 000000 ;173770 000000 ;173772 000000 ;173774 000000 ;173776 021526 ;174000 000125 ;174002 000215 ;174004 000623 ;174006 000000 ;174010 000135 ;174012 000215 ;174014 000633 ;174016 000000 ;175610 000100 ;175612 000215 ;175614 000200 ;175616 000000 ;175620 000100 ;175622 000215 ;175624 000200 ;175626 000000 ;176500 000000 ;176502 000377 ;176504 000200 ;176506 000000 ;176520 000000 ;176522 000200 ;176524 000000 ;176526 000000 ;176530 000000 ;176532 000000 ;176534 000000 ;176536 000000 ;176600 004300 ;176602 000000 ;176604 001000 ;176606 000427 ;176610 000100 ;176612 010700 ;176614 000000 ;176616 000000 ;176620 002700 ;176622 000000 ;176624 000010 ;176626 020024 ;176630 106400 ;176632 010000 ;176634 000316 ;176636 177777 ;176640 011777 ;176642 000000 ;176644 000000 ;176646 000000 ;176700 000005 ;176702 000004 ;176704 000025 ;176706 005010 ;176710 160000 ;176712 000000 ;176714 001222 ;176716 000000 ;176720 121000 ;176722 000004 ;176724 007400 ;176726 000433 ;176730 000000 ;176732 002004 ;176734 000000 ;176736 120000 ;176744 000000 ;176746 000000 ;177160 100000 ;177162 000000 ;177164 177777 ;177166 000000 ;177400 004704 ;177402 000000 ;177404 000200 ;177406 000000 ;177410 000000 ;177412 000000 ;177414 000000 ;177416 000000 ;177510 000200 ;177512 000015 ;177514 000200 ;177516 000015 ;177546 000300 ;177550 000200 ;177552 000000 ;177554 177777 ;177556 000000 ;177560 000100 ;177562 000215 ;177564 000200 ;177566 000000 ;177570 000000 ;177572 000157 ;177574 000000 ;177576 000146 ;177600 002506 ;177602 000000 ;177604 000000 ;177606 000000 ;177610 020016 ;177612 077406 ;177614 077406 ;177616 077406 ;177620 000100 ;177622 000100 ;177624 000100 ;177626 040000 ;177630 000100 ;177632 040100 ;177634 000000 ;177636 000100 ;177640 003353 ;177642 000000 ;177644 000000 ;177646 000000 ;177650 000613 ;177652 001013 ;177654 001213 ;177656 177600 ;177660 000000 ;177662 100040 ;177664 000000 ;177666 000200 ;177670 010000 ;177672 000040 ;177674 040000 ;177676 000340 ;177744 000000 ;177746 000000 ;177750 131410 ;177752 004670 ;177754 000170 ;177766 000160 ;177772 000000 ;00./01-TADATADATA177776 170004 ;0$EOJ6User SYSTEM UIC [1,1] BA00: 13:01:07 20-MAY-83 7636 000100 ;177640 003353 ;177642 000000 ;177644 000000 ;177646 000000 ;177650 000613 ;177652 001013 ;177654 001213 ;177656 177600 ;177660 000000 ;177662 100040 ;177664 000000 ;177666 000200 ;177670 010000 ;177672 000040 ;177674 040000 ;177676 000340 ;177744 000000 ;177746 000000 ;177750 131410 ;177752 004670 ;177754 000170 ;177766 000160 ;177772 000000 ;=; MACRO PROGRAM TO SEE WHAT EXTERNAL PAGE ADDRESSES ARE THERE;! .MCALL DIR$,QIOW$,EXIT$S,SVTK$S;;)START: MOV #160000,R5 ;START AT BEGINNING- SVTK$S #SSTTAB,#1 ;SPECIFY TRAP VECTOR TABLE MOV #1,R2 ;FOR $CBOMG MOV #10000,R3 ;SET LOOP COUNTREGO: MOV R5,R1 ;ADDRESS TO R1$ MOV #MESS,R0 ;POINT TO ASCII BUFFER ;R2=1 SO NO ZERO SUPPRESSION CALL $CBOMG ;CONVERT ADDRESS CLR R4 ;CLEAR FLAG" MOV (R5),R1 ;TRY TO READ ADDRESS! ADD #2,R5 ;BUMP TO NEXT ADDRESS TST R4 ;SEE IF ITS THERE& BEQ EXISTS ;BRANCH IF ADDRESS EXISTS SOB R3,REGO ;GO AGAINA'EXISTS: MOV #YESCON,R0 ;POINT TO BUFFERR CALL $CBOMG ;CONVERT ADDRESS* DIR$ #YESQIO ;PRINT ADDRESS AND CONTENTS SOB R3,REGO ;AND GO AGAIN$ EXIT$S ;AND EXIT3;E;SST SERVICE ROUTINE TABLE;;$SSTTAB: .WORD NONEX ;ONLY ONE ENTRY;S;SST SERVICE ROUTINE;N%NONEX: INC R4 ;SET NON-EXISTANT FLAGE RTI ;AND EXIT;;;AMESS: .ASCII /NNNNNN /YESCON: .ASCII /NNNNNN ;/ YESLEN=.-MESSX.EVENS;,YESQIO: QIOW$ IO.WVB,5,1,,,, .END START EXISTS SOB R3,REGO ;GO AGAINA'EXISTS: MOV #YESCON,R0 ;POINT TO BUFFERR CALL $CBOMG ;CONVERT ADDRESS* DIR$ #YESQIO ;PRINT ADDRESS AND CONTENTS SOB R3,REGO ;AND GO AGAIN$ EXIT$S ;AND EXIT3;E;SST SERVICE ROUTINE TABLE;;$SSTTAB: .WORD NONEX ;ONLY ONE ENTRY;S;SST SERVICE ROUTINE;N%NONEX: INC R4 ;SET NON-EXISTANT FLAGE RTI ;AND EXIT;;;AMESS: .ASCII /NNNNNN /YESCON: .ASCII /NNNNNN ;/ YESLEN=.-MESSX.EVENS;,YESQIO: QIOW$ * :L:2@:_@(p ( *HiAN  H"N&:_*&Ae ~U ^~3J U:_^&J(LNNNNNN NNNNNN ; N :2"NVICE ROUTINE TABLE;;$SSTTAB: .WORD NONEX ;ONLY ONE ENTRY;S;SST SERVICE ROUTINE;N%NONEX: INC R4 ;SET NON-EXISTANT FLAGE RTI ;AND EXIT;;;AMESS: .ASCII /NNNNNN /YESCON: .ASCII /NNNNNN ;/ YESLEN=.-MESSX.EVENS;,YESQIO: QIOW$ |sT` (U @` (R}}40DRSYSYSYSYTICL@p@@@````#SYSYSYSYTICL1iA ^ Ae ~ H~3 NNNNNN NNNNNN ;    *  + 23E Ew _ 00123ɘ3564  Е-   0@ rW e`fÊ    E &f .ENABLE SUBSTITUTION.100: .ASKS N NAME!PIP SY:[1,26]/RE/CD=[1,10]'N'.*;*PIP 'N'.*;*/PR/FO .GOTO 100 Data for DEC PROMS" From the M9312 Technical manual% First 9 words contain a "ROM HEADER"4 Word 0 Device name, (2 ascii characters, reversed); Word 2 Offset to second ROM header if a multi-device ROM.> Word 4 Power up entry for unit zero without CPU diagnostics.; Word 6 Power up entry for unit zero with CPU diagnostics.- Word 10 000000 (Unit number for above entry)D Word 12 Entry point from console emulator. Enter with device number> in R0. C-bit set to disable diagnostics, cleared to disable.> Word 14 Address of the control/status register of the device.& Word 16 Entry point if unit is not 0.* Word 20 BCC to secondary diagnostic code. Other special words Word 24 Must be 173000. Word 26 Must be 340.z3 Word 376 Must be 16-bit CRC for previous 63 words.  Addressing modes.3 1 DEC address 0 is stored in Prom Address 0 thru 3t3 DEC address 1 is stored in Prom Address 4 thru 7n5 2 Bits 10,11 and 12 of DEC word are stored inverted.g' 3 Bits are stored in following manner:d8 Rom Output Rom add Rom add Rom add Rom add5 Bit # 0 1 2 3o6 4 3 7 11 156 3 2 6 10 146 2 1 5 9 136 1 8 4 0 12 thru 3t3 DEC address 1 is stored in Prom Address 4 thru 7n5 2 Bits 10,11 and 12 of DEC word are stored invertATT/MU,ATT/-SP=ATT/ TASK=...ATTLIBR=SYSRES:RO/% .TITLE RWATT - READ/WRITE ATTRIBUTESN .IDENT /V01/O .NLIST BEXY; .MCALL QIOW$S,EXIT$S,OPEN$,FSRSZ$,GCMLB$,GCML$,CSI$1,CSI$2E: .MCALL FINIT$,NMBLK$,FDBDF$,CSI$SV,CSI$ND,CSI$,DIR$,QIOW$# .MCALL FHDOF$,CSI$SW,ALUN$S,FDOP$AY FSRSZ$ 2MBUFFER: .BLKB 512.TIBUF: .BLKB 80.&STBUFF: .BLKB 10. ; STATISTICS BUFFERGCML: GCMLB$ 3,ATTATTFDB: FDBDF$ FDOP$A 2 ATTMSK= 1 HLPMSK= 2M UPDMSK= 4U LSTMSK= 10!SWITCH: CSI$SW AT,ATTMSK,,,,SWTBL_ CSI$SW HE,HLPMSK_ CSI$SW UP,UPDMSKE CSI$SW LI,LSTMSKC00601-TADATADATA CSI$ND SWTBL: CSI$SV OCTAL,ATTNUM,2 CSI$SV OCTAL,ATTVAL,2 CSI$SV OCTAL,ATTVAL+2,2 CSI$SV OCTAL,ATTVAL+4,2 CSI$SV OCTAL,ATTVAL+6,2 CSI$SV OCTAL,ATTVAL+10,2, CSI$SV OCTAL,ATTVAL+12,2C CSI$SV OCTAL,ATTVAL+14,2O CSI$SV OCTAL,ATTVAL+16,2B CSI$SV OCTAL,ATTVAL+20,2 CSI$SV OCTAL,ATTVAL+22,2T CSI$NDRATTNUM: .WORD 0AATTVAL: .BLKW 10. NUMVAL= 10.T CSI$ CSI: .BLKB C.SIZEK .EVEN?RDATT: QIOW$ IO.RAT,2,1,,IOSTAT,,RDATL: .BYTE -12,0 .WORD BUFFERS .BYTE -11,12W .WORD STBUFF,0,?WTATT: QIOW$ IO.WAT,2,1,,IOSTAT,,SWTATL: .BYTE 4,40 .WORD BUFFER+H.UFAT .BYTE 3,1 .WORD BUFFER+H.UCHA,0IOSTAT: .WORD 0,0,0QIODPB: QIOW$ IO.WVB,5,1,,IOSTAT,,QIOBUF= QIODPB+Q.IOPL,QIOLEN= QIODPB+Q.IOPL+2ALINE1: .ASCIZ "WD.00/ %8P"LINE2: .ASCIZ "WD.10/ %8P"LINES: .ASCIZ "STATBK:%5P"NLINE3: .ASCIZ "(LEGEND: #0=R.FIX=1,R.VAR=2,FD.FTN=400,FD.CR=1000,FD.BLK=4000)"BLINE4: .ASCIZ "( #1=F.RSIZ; #2,3=F.HIBK; #4,5=F.EFBK; #6=F.FFBY)"KLINE5: .ASCIZ "(STATBK: #0,1=HI,LO LBN; #2,3=SIZE; #4A=#ACCESS, #4B=#LOCK)",GHELP: .ASCIZ "ATT- READ/UPDATE ATTRIBUTES. 'ATT FILESPEC/SW:VL:VL...'"+> .ASCIZ " WHERE FILESPEC IS THE HEADER, AND THE SWITCHES ARE:"? .ASCIZ " /AT:NO.:VAL:VAL...=UPDATE ATTRIBUTES, STARTING WITH", .ASCIZ " WORD # 'NO.', THEN SUCCESSIVELY."! .ASCIZ " /HE = THIS HELP TEXT""? .ASCIZ " /UP = UPDATE A LOCKED FILE. CLEARS THE LOCK BIT, &"08 .ASCIZ " COPIES THE FILE SIZE INTO THE EOF & HI BLOCK"8 .ASCIZ " INDICATORS. FFBY=1000 AND THE RSIZ IS SET TO"8 .ASCIZ " 1000 IF IT IS ZERO. THIS OPTION MAY CONFLICT"1 .ASCIZ " WITH '/AT', AND SHOULD BE USED ALONE.":@ .ASCIZ " /LI = LIST OUT THE ATTRIBUTE & STATISTIC INFORMATION" .BYTE 0 .EVEN FHDOF$ DEF$LL;= .ENABLE LSB START: FINIT$I ALUN$S #1,#"TI,#0 ALUN$S #2,#"SY,#0!10$: GCML$ #GCML ;GET INPUT LINEH BCC 100$ CMPB #GE.EOF,G.ERR(R0)A BNE 30$ EXIT$SS030$: QIOW$S #IO.WVB,#5,#1,,,,<#31$,#32$-31$,#40> BR 10$E!31$: .ASCII /ATT - COMMAND ERROR/T 32$: .EVEN;A*100$: CSI$1 #CSI,G.CMLD+2+GCML,G.CMLD+GCML BCC 200$T4110$: QIOW$S #IO.WVB,#5,#1,,,,<#111$,#112$-111$,#40> BR 10$U!111$: .ASCII /ATT - SYNTAX ERROR/ 112$: .EVENB; 200$: MOV #ATTVAL,R5 MOV #NUMVAL,R4V210$: MOV #152525,(R5)+. SOB R4,210$ CSI$2 R0,OUTPUT,#SWITCH BCC 300$U BR 111$;0300$: BIT #HLPMSK,CSI+C.MKW1 BEQ 305$C JMP 1000$305$: MOV #ATTFDB,R0 MOV #ATTFDB+F.FNB,R1: MOV #CSI+C.DSDS,R2, CLR R3# CALL .PARSE ;SET UP FDB: BCC 400$T4310$: QIOW$S #IO.WVB,#5,#1,,,,<#311$,#312$-311$,#40> JMP 10$1311$: .ASCII "ATT - FILE PARSE / DIRECTORY ERROR", 312$: .EVEN#;$"400$: CALL .FIND ;GET THE FILE ID BCS 310$X2 DIR$ #RDATT ;READ THE ATTRIBUTES, STATISTICS BLK BCS 410$R TSTB IOSTAT BGT 500$)4410$: QIOW$S #IO.WVB,#5,#1,,,,<#411$,#412$-411$,#40> JMP 10$)411$: .ASCII /ATT - ATTRIBUTE READ ERROR/5 412$: .EVEN$;0500$: BIT #ATTMSK,CSI+C.MKW1 BEQ 550$: BIC #177760,ATTNUM, MOV ATTNUM,R5 MOV R5,R4 NEG R5: ADD #20,R5 CMP R5,#NUMVALW BLE 510$, MOV #NUMVAL,R5, 510$: ASL R4 ADD #BUFFER+H.UFAT,R4 MOV #ATTVAL,R3O520$: MOV (R3)+,R2 CMP R2,#152525A BEQ 550$G MOV R2,(R4)+ SOB R5,520$550$: BIT #UPDMSK,CSI+C.MKW1 BEQ 580$I BITB #UC.DLK,BUFFER+H.UCHAT BEQ 580$0 BICB #UC.DLK,BUFFER+H.UCHA1 MOV STBUFF+4,R0 ;GET HI SIZEP MOV STBUFF+6,R1 ;GET LO SIZEB MOV R0,BUFFER+H.UFAT+4E MOV R0,BUFFER+H.UFAT+10 MOV R1,BUFFER+H.UFAT+6 MOV R1,BUFFER+H.UFAT+12 MOV #1000,BUFFER+H.UFAT+14R TST BUFFER+H.UFAT+2 BNE 560$W. MOV #1000,BUFFER+H.UFAT+2 ;SET DEFAULT TO 512560$:F;H4580$: TST CSI+C.MKW1 ;LISTING IS DEFAULT IF NO FLAGS BEQ 585$4 BIT #LSTMSK,CSI+C.MKW1 ;ELSE SEE IF LISTING DESIRED BEQ 600$ ;NO - CONTINUEI585$: MOV #TIBUF,R5R MOV R5,R0 MOV #LINE1,R1 MOV #BUFFER+H.UFAT,R2 CALL $EDMSG MOV R1,QIOLEN DIR$ #QIODPB, MOV R5,R0 MOV #LINE2,R1 CALL $EDMSG MOV R1,QIOLEN DIR$ #QIODPBV MOV R5,R0 MOV #LINES,R1 MOV #STBUFF,R22 CALL $EDMSG MOV R1,QIOLEN DIR$ #QIODPB. M006ƙ7șɘ3564OV R5,R0 MOV #LINE3,R1 CALL $EDMSG MOV R1,QIOLEN DIR$ #QIODPBF MOV R5,R0 MOV #LINE4,R1 CALL $EDMSG MOV R1,QIOLEN DIR$ #QIODPBB MOV R5,R0 MOV #LINE5,R1 CALL $EDMSG MOV R1,QIOLEN DIR$ #QIODPBI;I!; WRITE OUT THE HEADER ATTRIBUTES;V600$:,. BIT #,CSI+C.MKW1 ;WRITE REQ'D? BEQ 900$D DIR$ #WTATT BCS 610$ TSTB IOSTAT BGT 900$M4610$: QIOW$S #IO.WVB,#5,#1,,,,<#611$,#612$-611$,#40> JMP 10$-611$: .ASCII /ATT - WRITE ATTRIBUTES FAILURE/ 612$: .EVEN.;M 900$: JMP 10$#;E1000$: MOV #HELP,R0M1010$: MOV R0,R1 TSTB (R1) BNE 1020$ JMP 10$1020$: TSTB (R1)+ BNE 1020$ MOV R1,R2 DEC R1M SUB R0,R1$ QIOW$S #IO.WVB,#5,#1,,,, MOV R2,R0 BR 1010$I .END START THE HEADER ATTRIBUTES;V600$:,. BIT #,CSI+C.MKW1 ;WRITE REQ'D? BEQ 900$D DIR$ #WTATT BCS 610$ TSTB IOSTAT BGT 900$M4610$: QIOW$S #IO.WVB,#5,#1,,,,<#611$,#612$-611$,#40> JMP 10$-611$: .ASCII /ATT - WRITE ATTRIBUTES FAILURE/ 612$: .EVEN.;M*t OL<&D@<&Kq@*<&9@:p@:@:2@?T@*=@@=@ X@X@p@*?S@}s@( y ( ZZ||  Iii$<&9<&Kq<&D '0 ATT>0 PI*ATHEUPLI2  (2*468:<>@BD&4 68:<>@"B&D .F Ft*t  P ":p "P(:*     (:2* WD.00/ %8PWD.10/ %8PST  *ATBK:%5P(LEGEND: #0=R.FIX=1,R.VAR=2,F* D.FTN=400,FD.CR=1000,FD.BLK=4000)( #*21=F.RSIZ; #2,3=F.HIBK; #4,5=F.EFBK; #6*X=F.FFBY)(STATBK: #0,1=HI,LO LBN; #2,3*~=SIZE; #4A=#ACCESS, #4B=#LOCK)ATT- RE*AD/UPDATE ATTRIBUTES. 'ATT FILESPEC/S*W:VL:VL...' WHERE FILESPEC IS THE HEA*DER, AND THE SWITCHES ARE: /AT:NO.:V*AL:VAL...=UPDATE ATTRIBUTES, STARTING *<WITH WORD # 'NO.', THEN SUCCESSIVELY*b. /HE = THIS HELP TEXT /UP = UPD*ATE A LOCKED FILE. CLEARS THE LOCK BIT*, & COPIES THE FILE SIZE INTO THE EO*F & HI BLOCK INDICATORS. FFBY=1000 A*ND THE RSIZ IS SET TO 1000 IF IT IS * ZERO. THIS OPTION MAY CONFLICT WITH *F'/AT', AND SHOULD BE USED ALONE. /LI*l = LIST OUT THE ATTRIBUTE & STATISTIC INFORMATIONS* & TI& SYX*Z0 b $`3 Z ?S(*& & & Ε ATT - COMMAN:2 D ERRORT*H  V& & H=$V*@& Ε ATT - SYNTAX ERR:2*fOR4 Uȕ 54 @=*w N % "N}s*& & & Ε wATT - FI :2*LE PARSE / DIRECTORY ERROR ؇t  X&t*! . & & & Ε . (:2*$  wATT - ATTRIBUTE READ ERROR5*J ED eW!  e*p 4 UF5@|@ 4* t7n7nwhwhd V* N 5B@  $(?T* w@ w@ ?T&* P w@ w@P?T?T$*. . w@a w|. ?Ta?T&*T 5*P#  & & $ *z & Ε w2ATT - WRITE AT:2* TRIBUTES FAILUREwɋwы* B  f&& & & Ε ":2 N 5B@  $(?T* w@ w@ ?T&* P w@ 008Ι01-TADATADATA* .TITLE CNTFCB - COUNT FILE CONTROL BLOCKS .IDENT "0003";EH; MODULE: FILES-11 ACTIVITY REPORTING TASK -- COUNT FILE CONTROL BLOCKS;B; VERSION: 0003;E; AUTHOR: ANDY PUTNINST;T; DATE: 20-NOV-78;1; MODIFICATIONS:C0; 14-DEC-78 A. PUTNINS ADD FILE ATTRIBUTES LOGIC1; 10-APR-79 A. PUTNINS USE DYNAMIC MEMORY FEATURE;M ; PURPOSE: J; COUNT THE NUMBER OF PRIMARY FILE CONTROL BLOCKS FOR THIS VCB (EXCLUDINGL; FILE HEADER EXTENSION FCB'S). SUBTOTALS OF FCB'S ALLOCATED IN THE ACP, INH; FCPCOM, AND IN SCOM ARE ALSO TALLIED. EACH FCB POINTER IS CHECKED FORM; "REASONABLENESS", MEANING THAT IT IS WITHIN THE ADDRESS LIMITS OF THE ACP,NJ; FCPCOM, OR SCOM. THE FCB LIST IS NOT CHECKED FOR CIRCULARITY OTHER THAN3; ENSURING THAT A POINTER DOESN'T POINT TO ITSELF.L;CJ; IF THE USER WANTS A LIST OF OPEN FILES FOR A SPECIFIC DEVICE OR FOR ALLI; DEVICES, WE ALLOCATE FILE ATTRIBUTE BLOCKS AND SAVE THE FILE ID'S. (WEFH; CANNOT READ THE FILE ATTRIBUTES WITH ACP QIO'S UNTIL OUR RUN PRIORITY; IS BACK TO NORMAL.);A ; INPUTS:; R1=ATL ENTRY ADDRC ; R2=VCB ADDR"#; R5=ADDR OF STATISTICS BLOCK ENTRYI?; THIS TASK MUST BE RUNNING AT A HIGHER PRIORITY THAN ANY ACP'S ;T ; OUTPUTS:E ; CARRY SET IF FCB POINTER ERROR;R; REGISTER USAGE:(; R0=ADDR OF FILE ATTRIBUTES BLOCK ENTRY ; R1=ATL ADDR ; R2=VCB ADDRO; R3=CURRENT FCB ADDRF; R4=PREVIOUS FCB ADDR#; R5=ADDR OF STATISTICS BLOCK ENTRYE;E .MCALL F11DF$- F11DF$ ;DEFINE ACP DATA STRUCTURE OFFSETS' .PAGE .PSECT CNTFCB,RO,IICNTFCB:: PUSH 5 BIT #SW.FI,SWMASK ;DOES USER WANT ALL FILES LISTED?A BEQ 10$3 BIS #F.FI,.SBFLG(R5) ;YES - SET FLAG IN STAT BLOCKR610$: MOV V.FCB(R2),R3 ;MAKE FIRST FCB THE CURRENT ONE CLR R4 ;NO PREVIOUSNXTFCB: TST R3 ;END OF LIST? BNE 10$ ;NO JMP NORMAL ;YES - ALL DONE2)10$: CMP R3,R4 ;HAVE WE JUST BEEN HERE?I BNE 20$%15$: JMP ERROR ;YES - POINTER ERRORE120$: MOV R3,R4 ;NO - SET PREVIOUS = CURRENT FCB ;U:; ALLOCATE AND INITIALIZE FILE ATTRIBUTE BLOCK, IF NEEDED;R2 BIT #F.FI,.SBFLG(R5) ;LIST FILES FOR THIS DEVICE? BEQ 30$ ;NO PUSH / MOV R5,R4 ;POINT TO ATTRIBUTE BLOCK LISTHEAD ADD #LH.AB,R4 ;...) MOV #L.AB,R3 ;LENGTH OF ATTRIBUTE BLOCK 0 CALL ADDQ ;ALLOCATE & INITIALIZE ATTRIB BLOCK% MOV R5,R0 ;R0=ADDR OF ATTRIB BLOCKD POP R BCC 40$ ;NO MORE SPACE?5 BIS #F.NFAT,.SBFLG(R5) ;YES - SET FLAG IN STAT BLOCK#30$: CLR R0 ;SHOW NO ATTRIB BLOCK ;R; FCB ALLOCATED FROM SCOM;N40$: TST R3 ;IS FCB IN SCOM? BPL 70$ ;NO IF SIGN BIT CLEAR) CMP R3,.POLBE ;BELOW BEGINNING OF SCOM?; BLO 15$ ;YES - POINTER ERROR & CMP R3,.PUDBA ;ABOVE SCOM NODE POOL? BHI 15$ ;YES - ERROR#> BIT #FC.DIR,F.STAT(R3) ;IS THIS A PRE-ACCESSED DIRECTORY FCB? BEQ 50$ ;NO! INC C.LRU(R5) ;YES - BUMP COUNTT(50$: INC C.SFCB(R5) ;BUMP SCOM SUBTOTAL9 ADD #</8.>,SCALLO ;BUMP COUNT OF SCOM NODESS/ TST R0 ;DO WE HAVE AN ATTRIBUTE BLOCK ENTRY? BEQ 60$ ;NO IF ZERO+ BIS #F.SCM,.ABFLG(R0) ;YES - SET SCOM FLAGB+ MOV F.FNUM(R3),.FNUM(R0) ;AND SAVE FILE IDE MOV F.FSEQ(R3),.FSEQ(R0);/ BIT #FC.DIR,F.STAT(R3) ;PREACCESSED DIRECTORY?A BEQ 60$ ;NO6 BIS #F.DIR,.ABFLG(R0) ;YES - SET FLAG IN ATTRIB BLOCK 60$: MOV (R3),R3 ;GET NEXT FCB BR 140$ ;UPDATE GRAND TOTAL;U; FCB ALLOCATED FROM FCPCOM;C/70$: CMP R3,#.FRLH ;ABOVE BEGINNING OF FCPCOM?1) BLO 100$ ;NO - CHECK ACP INTERNAL AREA& CMP R3,#.F1END ;BELOW END OF FCPCOM? BHI ERROR ;NO - POINTER ERROR0 BIT #FC.DIR,F.STAT(R3) ;PRE-ACCESSED DIRECTORY? BEQ 80$ ;NO INC C.LRU(R5) ;YES - COUNT ITF*80$: INC C.FFCB(R5) ;BUMP FCPCOM SUBTOTAL, TST R0 ;DO WE HAVE AN ATTRIB BLOCK ENTRY? BEQ 90$ ;NO- BIS #F.FCM,.ABFLG(R0) ;YES - SET FCPCOM FLAG3+ MOV F.FNUM(R3),.FNUM(R0) ;AND SAVE FILE IDD MOV F.FSEQ(R3),.FSEQ(R0)D/ BIT #FC.DIR,F.STAT(R3) ;PREACCESSED DIRECTORY?N BEQ 90$ ;NO6 BIS #F.DIR,.ABFLG(R0) ;YES - SET FLAG IN ATTRIB BLOCK 90$: MOV (R3),R3 ;GET NEXT FCB BR 140$ ;UPDATE GRAND TOTAL;#'; FCB ALLOCAT008֙9ڙ:ܙ;ݙ64ED FROM ACP INTERNAL AREA?;B:100$: MOV #77402,-(SP) ;PDR CONTENTS FOR READ-ONLY ACCESS3 MOV A.HA(R1),-(SP) ;MAP APR3 OVER ACP TASK HEADER  CALL ..SPD3 ;3 PUSH ;SAVE ATL, FCB, AND OLD FCB ADDRS ' MOV R3,R2 ;VIRTUAL ADDR OF FCB IN R3A MOV #F.LGTH,R3 ;LENGTH OF FCB,& CALL ..VVAD ;VERIFY VIRTUAL ADDRESS3 BCC 110$ ;OK - ENTIRE FCB IN ACP'S ADDRESS SPACEF2 POP ;ERROR - RESTORE REGS AND MAPPING CALL ..SPD3 CMP (SP)+,(SP)+ BR ERROR ;POINTER ERROR3110$: MOV 2(SP),R2 ;CURRENT FCB VIRTUAL ADDR IN R274 CALL ..ADDC ;GET PAR VALUE IN R2 AND OFFSET IN R3= MOV #1002,-(SP) ;PDR CONTENTS TO MAP 2 BLOCKS FOR RO ACCESS;# MOV R2,-(SP) ;REAL MEMORY BLOCK # # CALL ..SPD3 ;MAP TO START OF FCBT2 CMP (SP)+,(SP)+ ;DISCARD ACP HEADER MAPPING REGS6 BIT #FC.DIR,60000+F.STAT(R3) ;PRE-ACCESSED DIRECTORY? BEQ 120$ ;NOI INC C.LRU(R5) ;YES1120$: INC C.AFCB(R5) ;BUMP ACP INTERNAL SUBTOTALI, TST R0 ;DO WE HAVE AN ATTRIB BLOCK ENTRY? BEQ 130$ ;NO3 BIS #F.ACP,.ABFLG(R0) ;YES - SET ACP INTERNAL FLAG1 MOV 60000+F.FNUM(R3),.FNUM(R0) ;AND SAVE FILE ID3 MOV 60000+F.FSEQ(R3),.FSEQ(R0) 5 BIT #FC.DIR,60000+F.STAT(R3) ;PREACCESSED DIRECTORY?M BEQ 130$ ;NOL BIS #F.DIR,.ABFLG(R0) ;YESC$130$: MOV 60000(R3),2(SP) ;NEXT FCB# POP ;RESTORE REGISTERSF CALL ..SPD3 ;REMAP TO FCPCOM?+ CMP (SP)+,(SP)+ ;DISCARD ACP MAPPING REGS$;N+; UPDATE GRAND TOTAL AND LOOP FOR NEXT FCBT;R5140$: INC C.TFCB(R5) ;INCREMENT GRAND TOTAL OF FCB'S JMP NXTFCB ;CHECK THE NEW FCBNORMAL: CLC ;NORMAL RETURNF POP D RETURNEERROR: SEC ;ERROR RETURNE RETURNB .ENDDIR,60000+F.STAT(R3) ;PREACCESSED DIRECTORY?M BEQ 130$ ;NOL BIS #F.DIR,.ABFLG(R0) ;YESC$130$: MOV 60000(R3),2(SP) ;NEXT FCB# POP ;RESTORE REGISTERSF CALL ..SPD3 ;REMAP TO FCPCOM?+ CMP (SP)+,(SP)+ ;DISCARD ACP MAPPING REGS$;N+; UPDATE GRAND TOTAL AND LOOP FOR NEXT FCBT;R5140$: INC C.TFCB(R5) ;INCREMENT GRAND TOTAL OF FCB'S JMP N*%N@L@j@ @@*9wL@ezC @tz&@@L@t!@*UK@Q@a@sd@v@"(%8%h    %*&f&5U wXtz&ezC *& w^5&fDe (@j*L@U % ނ5@UK"Q*r   e U9wL*5@ Ue  j5@ @L t!*   U5@ *UCf &,  @sd*  %8  %vsda&sd*05@ `   U``*V5@ `U` % w sd|&fDe (@j*L@U % ނ5@UK"Q*r   e U9wL*5@ Ue DFHX/-FP/PR,DFHX/-SP=DFHX/ TASK=...FXXLIBR=SYSRES:ROASG=SY:2// .TITLE FHX .IDENT /MRHV01/;?; THIS PROGRAM IS DESIGNED TO LIST OUT THE FILE HEADER BLOCK OFA; ANY FILE THAT HAS EXTENSION HEADERS, TO AID IN FINDING PROBLEMS?; THAT CAUSE DSC TO BOMB WITH "ID,SEQUENCE NUMBER CHECK" ERRORS;;CALLING PROCEEDURE;4; MCR>FHX - DISPLAY ALL FILES "EXTENDED" TO ANOTHER.; INDEPENDENT FILE HEADER (** PROBLEMS !!);8; MCR>FHX ALL - DISPLAY ALL FILES WITH EXTENSION HEADERS;& .MCALL QIOW$,DIR$,EXIT$S,GMCR$,FHDOF$1 .MCALL FDBDF$,CLOSE$,FSRSZ$,NMBLK$,00;ޙ01-TADATADATAFDRC$A,FDBK$A( .MCALL READ$,OPNS$R,WAIT$,FDOP$A,HMBOF$ FHDOF$ DEF$L HMBOF$ DEF$L;EF;DEFINE BOGUS OFFSET TO FILENAME FROM DISK SINCE ITS A LOT OF CRANKING ;OTHERWISE F.FNAM=56E;C;FIRST SET THINGS UP;E*START: DIR$ #GETMCR ;GET MCR COMMAND LINE CLR ANOFL ;CLEAR "ALL" FLAGA MOV #GETMCR+G.MCRB+4,R0 CMPB (R0),#'A ;"ALL"? BNE FIRST ;NOR INC ANOFL ;YES, SET "ALL" FLAGFIRST:3 OPNS$R #FDB ;OPEN FILE (SHARED ACCESS, READ-ONLY)$ BCC 5$ ;BR IF OK BR REAERR ;REPORT READ ERROR45$: MOV #2,BLOCKL ;SET UP BLOCK NUMBER OF HOME BLOCK. MOV #10000.,FDB+F.HIBK+2 ;FAKE A BLOCK NUMBER6 MOV #10000.,FDB+F.EFBK+2 ;AND AN ENDFILE BLOCK NUMBER5 ;CAUSE INDEX FILE HEADER HAS 0'S AND READ WILL BOMB & READ$ #FDB,,,#BLOCKH ;READ HOME BLOCK BCS ROPERR ;BRANCH IF FAILUREL! WAIT$ ;WAIT FOR READ TO FINISH BCS ROPERR ;BR IF FAILED6 ADD READBF+H.IBSZ,BLOCKL ;ADD NUMBER OF BITMAP BLOCKS2 MOV BLOCKL,OFFSET ;SAVE THIS OFFSET IF WE NEED IT) INC BLOCKL ;GET INDEX FILE HEADER BLOCKE3 READ$ #FDB,,,#BLOCKH ;READ INDEX FILE HEADER BLOCKO BCS ROPERR ;BRANCH IF FAILURE+! WAIT$ ;WAIT FOR READ TO FINISH. BCS ROPERR ;BR IF FAILED510$: CMP READBF+F.FNAM,INDRAD ;IS THIS THE INDEX FILER BNE ROPERR ;NO( CMP READBF+F.FNAM+2,EXFRAD ;FILE HEADER BNE ROPERR ;NO CLR BLOCKL ;START AT BLOCK 0/ ADD OFFSET,BLOCKL ;ADD OFFSET PREVIOUSLY FOUNDR532$: READ$ #FDB,,,#BLOCKH ;READ BLOCK N OF INDEX FILEB BCS ROPERR; WAIT$ ;WAIT FOR READE BCS ROPERRO& TST READBF+136 ;EXTENSION FILE HEADER BEQ 34$ ;DONT PRINT IF NOT TST ANOFL ;"ALL"?B BNE 33$ ;YES, SKIP CHECK0 JSR PC,ANOCHK ;CHECK IF EXTENSION HAS SAME NAME TST PRFL ;SAME NAME? BEQ 34$ ;YES, DON'T PRINTH133$: JSR PC,PRINT ;IF OK, PRINT FILE HEADER BLOCK. 34$: INC BLOCKL ;GET NEXT BLOCK BR 32$O;C+ROPERR: ;READ ERROR WITH INDEX FILE OPENC ;JUST END OF FILEL CLOSE$ #FDB ;CLOSE IT OUTB;K&; ;FAILURE WITH INDEX FILE NOT OPEN%REAERR: ;FAILED TO READ INDEX FILEP MOV #READOV,ERRQIO+Q.IOPL MOV #READLN,ERRQIO+Q.IOPL+2( DIR$ #ERRQIO ;SEND ERROR MESSAGE TO TI JMP EXITS"SYNTER: ;SYNTAX OR BLOCK # ERROR( MOV #SYNERR,ERRQIO+Q.IOPL ;REPORT ERROR MOV #SYNELN,ERRQIO+Q.IOPL+2 DIR$ #ERRQIOJEXIT: EXIT$S ;QUIT; ANOCHK: CLR PRFL MOV READBF+136,EFID MOV READBF+140,EFID+2 MOV EFID,BLCKLX ADD OFFSET,BLCKLX- MOV #RDBFEX,FDB+F.BKDS+2 ;SET READ TO RDBFEXB READ$ #FDB,,,#BLCKHX BCS ROPERRI WAIT$ BCS ROPERRN/ MOV #READBF,FDB+F.BKDS+2 ;RESET READ TO READBFE MOV #READBF,R5L MOVB H.IDOF(R5),R1+ ASL R1 ADD R5,R1 MOV #RDBFEX,R5S MOVB H.IDOF(R5),R2S ASL R2 ADD R5,R2 MOV #4,R31$: CMP (R1)+,(R2)+I BNE 2$; SOB R3,1$ RTS PCY 2$: INC PRFL RTS PCD; 9PRINT: MOV #READBF,R5 ;R5 ALWAYS POINTS TO START OF BLOCKR6 MOV #ARGBLK,R0 ;POINT R0 TO ARGUMENT BLOCK TO FILL IN- MOV H.FNUM(R5),(R0)+ ;PUT IN FILE ID NUMBERS  MOV H.FSEQ(R5),(R0)+R0 MOVB H.IDOF(R5),R1 ;WORD OFFSET TO FILE ID AREA ASL R1 ;MAKE IT BYTE OFFSET+$ ADD R5,R1 ;NOW POINTING AT ID AREA MOV (R1)+,(R0)+ ;FILL IN NAME MOV (R1)+,(R0)+ MOV (R1)+,(R0)+ MOV (R1)+,(R0)+ ;TYPE MOV (R1)+,(R0)+ ;AND VERSION& MOV #READBF,R4 ;START OF BUFFER IN R4+ ADD #H.PROJ,R4 ;BUMP TO GROUP CODE ADDRESSN0 MOV R4,(R0)+ ;FILL IN ADDRESS OF UIC BYTE VALUE DEC R4 ;BACK UP TO USER CODE MOV R4,(R0)+ ;AND FILL IN. MOV (R1)+,-(SP) ;SAVE REVISION NUMBER FOR NOW MOV #2.,R2 ;SET COUNT' ADD #13.,R1 ;BUMP R1 TO CREATION DATEI&11$: MOV R1,(R0)+ ;SAVE POINTER TO DAY ADD #2,R1 MOV R1,(R0)+ ;AND MONTH ADD #3,R1 MOV R1,(R0)+ ;AND YEAR( ADD #2,R1 MOV R1,(R0)+ ;AND HOUR1 ADD #2,R1 MOV R1,(R0)+ ;AND MINUTEE ADD #2,R1 MOV R1,(R0)+ ;AND SECONDR ADD #2,R1) SUB #26.,R1 ;BUMP BACK TO REVISION DATEM SOB R2,11$F, MOV (SP)+,(R0)+ ;AND PUT IN REVISION NUMBER MOV #OUTBLK,R0 ;SET UP CALL MOV #MESS1,R1 ;TO EDSMG MOV #ARGBLK,R2V JSR PC,$EDMSG. MOV R1,ERRQIO+Q.IOPL+2 ;FILL IN LENGTH OF QIO% MOV #OUTBLK,ERRQIO+Q.IOPL ;AND STARTR DIR$ #ERRQIO ;WRITE LINE MOV #OUTBLK,R0 ;SET UP AGAINN MOV #MESS2,R1 MOV #ARGB00;<ܙ;ݙ64L1,R2D JSR PC,$EDMSG MOV R1,ERRQIO+Q.IOPL+2U MOV #OUTBLK,ERRQIO+Q.IOPL DIR$ #ERRQIO RTS PC1;M ;GET MCR DPB;S GETMCR: GMCR$,;;QIO FOR MESSAGES TO TIT;E$ERRQIO: QIOW$ IO.WVB,5,1,,,,<0,0,40>;0;NOW POSSIBLE MESSAGES;B)SYNERR: .ASCII /*** FHD SYNTAX ERROR ***/S SYNELN=.-SYNERR .EVEN;R.READOV: .ASCII /*** FHX END OF INDEX FILE ***/ READLN=.-READOV .EVEN;BFINMES: .BYTE 12,12  FINLEN=.-FINMES; ;MISC VARIABLESV;UINDRAD: .RAD50 /IND/EXFRAD: .RAD50 /EXF/;R*READBF: .BLKB 1000 ;ONE BLOCK READ BUFFER4RDBFEX: .BLKB 1000 ;ONE BLOCK EXTENSION READ BUFFER;P;OFFSET: .WORD 0 ;OFFSET TO INDEX FILE HEADER OF INDEX FILEE;O*EFID: .WORD 0,0 ;EXTENSION FILE ID'S HERE;!ANOFL: .WORD 0 ;PRINT "ALL" FLAGEPRFL: .WORD 0 ;PRINT FLAG;R;DATASET DESCRIPTORE;)DSPT: .WORD DEVLEN,DEV ;DEVICE DESCRIPTORI' .WORD UICLEN,UIC ;DIRECTORY DESCRIPTOR# .WORD NAMELN,NAME ;NAME DESCRIPTORI;SDEV: .ASCII /SY0:/ DEVLEN=.-DEV  .EVEN;/UIC: .ASCII /[0,0]// UICLEN=.-UICB .EVEN;ONAME: .ASCII /INDEXF.SYS;1/  NAMELN=.-NAME .EVEN;N;FCS STATUS BLOCKP;FSTATUS: .WORD 0,0S;T;2-WORD BLOCK DESTRIPTOR;FBLOCKH: .WORD 0WBLOCKL: .WORD 0O;IBLCKHX: .WORD 0BLCKLX: .WORD 0P;T FSRSZ$ 1 ;ROOM FOR 1 FILEFDB: FDBDF$ ;DEFINE FDB' FDRC$A FD.RWM!FD.RAN ;USE BLOCK READSI0 FDOP$A 2,DSPT ;USE LUN 2, DSPT DESCRIBES FILEA FDBK$A READBF,1000,,,STATUS ;DEFINE BUFFER, SIZE AND STATUS AREA/;D1MESS1: .ASCII /%2NFILE HEADER BLOCK FOR (%P,%P) /C .ASCIZ /%X OWNED BY [%B,%B]%2N/ .EVEN7MESS2: .ASCII /CREATED ON %2A-%3A-%2A AT %2A:%2A:%2A%N/P; .ASCII /REVISED ON %2A-%3A-%2A AT %2A:%2A:%2A REV. %P%2N/L .ASCIZ / /W .EVENDOTTAB: .ASCII /./TAB: .ASCII / /K .EVEN>ARGBLK: .BLKW 9. ;ROOM FOR FID,UIC,NAME,TYPE,VERS & OWNER UIC!ARGBL1: .BLKW 30. ;ROOM FOR RESTC;E,OUTBLK: .BLKB 1000 ;OUTPUT BUFFER FOR EDMSG; .END START READBF,1000,,,STATUS ;DEFINE BUFFER, SIZE AND STATUS AREA/;D1MESS1: .ASCII /%2NFILE HEADER BLOCK FOR (%P,%P) /C*&TOL%x@<&p@*<&%t@' q@:2@?T@`@*p@hp!@ձ@`;@(X y( *>7 DA # ">D"%x' q (hp!*&e''4e  *L6 J Gm|t  ձ`;(*r4e6 1 .-xD*ձ`;*-r>&7 lm6f4e *6   l   F  ձ`;* & w`"* 37  *0m4e*V6 Ƈ ÇA Aa ձ`;(*|B BaR$~ R P  $ *PA AaPPPPPe  f*e PePePePePe*Pe~Xv  wXXv  ?T(X*X wnXf X?T"X( :)*  *** FHD SYNTAX ERROR:2% ****** FHX END OF INDEX FILE ***  t:## SY0:[0,0]aINDEXF.SYS;1$$<&%t<&p 88:: (( &&**   v*v%2NFILE HEADER BLOCK FOR (%P,%P) %X OW*NED BY [%B,%B]%2NCREATED ON %2A-%3A-%*2A AT %2A:%2A:%2A%NREVISED ON %2A-%3A-&%2A AT %2A:%2A:%2A REV. %P%2N .   *** FHD SYNTAX ERROR:2% ****** FHX END OF INDEX FILE ***  t:## SY0:[0,0]aINDEXF.SYS;1$$<&%t<&p 88:: (( &&**   v*v%2NFILE HEADER BLOCK FOR (%P,%P) %X OW*NED BY [%B,%B]%2NCREATE00=01-TADATADATA| \\(U z[qU @* i0 )DRTISYTIXXTITI)~*4!4````TISYTIXXTITI11/,;:CADPWLNERBXSTFHK @\   <<  '*Z DFX>P DFX V06--WHAT IS INITIAL OCTAL BLK NO? >P l*bd 9wx7 7   W  wDw  :7 YBLK f&@  & Ѐew \\ &f z7 :  w  w   x -p wB7 bzr ,w <& &f 07 6C  EGXf;w% bZ"wXwwNwwxww~www wwwtww &f v\ bw &f v 3\3] Fww Vw"& &f,    ,  w  4 DISK READ/WRITE ERROR --- RETURNED STATUS = n  &f 07 w@6w w &f ~07 w6w 7  ^ W 8Qf ? e |RyeB  & & LP) Uõ & & & & & ffI  eA  U3\`  < w w ww w \w w w w aԕ !  w00=ܙ;ݙ64D7 & 8Qf ? e |RyeB  & & LP) Tõ & & & & & ffI  eA w&77 Hf&< xU"# T L\&77&f 0e&f e w w eW W~ɕ 0 b ^33NmH,@B~:4&f\ dB~7(  w F w w>7 w4w* \Zw w &f wT 3 &f  pww<DISK READ/WRITE ERROR (PROBABLY NON-EXISTANT BLOCK NUMBER) * w j(@f ťZ#ťAť9ť0ť$ ť  ť.@KqAa$  *  + 23E Ew j   Е-   0@ rW e`fÊ    E  w i ť ť 0BBpAa & &  r(f  e ee e w +5 funhj \uhf@# jwaw: 8 8w &  *AdBbAep& f   P aAAf@pnp C*8֋ 88*Ë6AB`f Ua`& WaWz  ɥ"N ~ ajfu-nhwXɥ;]a)wנ"å.@j  a Tw@ ŀajTI& af* *`V @e,w )jjlj ɥ@Iaujk,bp 5f fˇ ȕ (‡ eSY@$# E$ e,5 funhwe,aja`W- f`nwJuhnw@ :Dllja!CeH###33@#  & b8 *AAw l( 8jDl@ ^TeBT85l@ An5j)f  ,      RՀa@f&f ` *  נ נ 00=>?-TADATADATA נננ"D נaנz E ѐEp(p נ$נ0נ9נAנZנ_נ:  Vנ[ȕ]נ<ȕ>ȋ8 ~נ%נ*נ-נ.נ0נ9נAנZȠ yנ0נ7נ*נ,A jȠh f  oנ"A   #A aנ$נ%נ*נ0נ9נAנZנ_נ.  נ.נ; dנ0נ9 ]נ- X נ* QA  נ, Dנ=  >5 B>U (w^נ/* . ,נ$נ-נ.נ0נ9נAנZ נ_ נ:  Dנ"  0f&f E^`  UQ  UQ ËUI U `e  !ddC    D%*.C U 0 0 W ,Uw6W /@ : ^BDaW-Ί WNWOD!BΊz CECCD! D! ΋5  e ΐ TpRpR΋pBC5N KR΋KBAE:D0CĊ f eB  Dҁ CSĊ  WB E Br Ε f)& 6 l(*  E 'W " =N  W :+W = 1 #W ,W / %W %W *Հ W <W [W >W ] v(* 6 ew @"*D # ~w#w $"*) Z,* z'w"46l0w ! w !& W+W- Ba. W#  B0  c  c S W %ec e`s  # 3  & ˥ Z ^C "DFX/PR/-FP=DSKFIX,LB:[1,1]EXEC.STB/ TASK=...DFXUNITS=6LIBR=SYSRES:RO'ASG=TI:1:3:5 ;1=CMD, 3=OUTPUT, 5=ERRORSASG=TI:6 ;FOR LISTING!ASG=SY:2 ;DISK READ LUN SET TO SY1ASG=XX:4 ;MAKE SURE DISK WRITE LUN IS SET BY USER STACK=200// .TITLE DFX .SBTTL INTRO PAGE; OPERATING INSTRUCTIONS, DFX;4; DFX IS AN RSX-11D PROGRAM TO PATCH THE SYSTEM DISK%; BY ABSOLUTE (LOGICAL) BLOCK NUMBER.6; IT USES LUN 2 FOR DISK READ AND LUN 4 FOR DISK WRITE>; THE TASK MUST EITHER BE BUILT PRIVILEGED, OR THE SYSTEM DISK>; MOUNTED DCF OR FOREIGN TO PERMIT THIS. CONSOLE INPUT WILL BE; VIA GET MCR COMMAND LINE.;@;TASK BUILD THIS WITH SYSLIB, SINCE ITS CONVERSION ROUTINES WILLE;BE USED FOR CONVERSION BETWEEN ASCII AND RAD50 AND OCTAL AND BINARY.L;??7; NOTE THAT IT IS NOT POSSIBLE TO PATCH A SINGLE BYTE--*; ONE MUST PATCH AN ENTIRE WORD AT A TIME.; 5 .MCALL EXIT$S,CSI$,FSRSZ$,QIO$S,QIOW$S,FDAT$A,FDBDF$ .MCALL DIR$,QIOW$,FDOP$A,PRINT$( .MCALL NMBLK$,FINIT$,OPEN$W,PUT$,CLOSE$$FSRSZ$ 3 ;UP TO 3 FILES OPEN AT ONCE* .MCALL RCML$ ;RESET COMMAND LINE FACILITY; 8;ASSIGN DISK DESIRED TO LUN 2 (INPUT) AND LUN 4 (OUTPUT); LUN 1=TI: FOR GCML!; LUN 3=TI FOR OUTPUT (INITIALLY) %; LUN 6=LISTING DEVICE (SY INITIALLY)A; LUN 5 =TI FOR ERROR MESSAGES%;TASK BUILD (NON-PRIVILEGED VERSION):C; ;DFX/-FP=DSKFIX ;/ ;TASK=...DFX-;;TASK NAME SET FOR CALLING IT "DFX" FROM MCR,;LIBR=SYSRES:RO$';ASG=TI:1:3:5 ;LUN 5 FOR ERROR MESSAGES$ ;ASG=TI:6..;;1 FOR COMMANDS, 3 FOR OUTPUT 6 FOR LISTINGS ";ASG=SY:2 ;USE LUN 2 FOR DISK READ(;ASG=XX:4 ;USE LUN 4 FOR DISK WRITE BACK;UNITS=6 ;STACK=200;PRI=45I;// ; ; 8;FOR PRIVILEGED TASK BUILD (NOT NEEDING SY: MOUNTED DCF)$;JUST ADD /PR SWITCH TO OUTPUT NAME. I.SBTTL DIRECTIONST;O900?ܙ;ݙ64; ...DFX IS AN RSX PROGRAM TO DO ABSOLUTE DISK PATCHES ON &; ANY DISK. CALLING SEQUENCE IS VIA A ;K ; MCR>DFXO;A>; IN RESPONSE TO ENTER DISK BLOCK # TYPE BLOCK NUMBER IN OCTAL=; OR "E" TO EXIT TO RSX. THE BLOCK WILL BE READ IN AND CAN BET3; DISPLAYED BY THE "L" COMMAND. DISPLAY IS ON LUN 6;GC; NOTE THAT LUN 2 IS USED FOR DISK READS AND LUN 4 FOR DISK WRITES,@; AS A PROTECTIVE MEASURE LUN 4 IS ASSIGNED TO PSEUDO DEVICE XX:;; AND MUST BE RE-ASSIGNED BY THE USER BEFORE RUNNING ...DFXI;TF; ALSO NOT THAT LUN 6 IS USED FOR FULL BLOCK LISTINGS. IT IS INITIALLYG; SET TO TI: BUT CAN BE RE-ASSIGNED TO A DISK, AND WILL BE IN THE USERST; UIC AS "DFX.DAT";O$; IN RESPONSE TO "DFX>" PROMPT, TYPE; ; L TO LIST REFERENCED BLOCK:; W TO WRITE THE CURRENTLY REFERENCED BLOCK BACK ONTO DISK; N TO READ THE NEXT BLOCKF; R TO REREAD THE CURRENT BLOCK (WIPING OUT ALL CHANGES IN THE CURRENT ; BUFFER); B TO READ THE PREVIOUS BLOCK8; F FOR FULL-WORD ADDRESSES (DEFAULTS TO BYTE ADDRESSES)+; H FOR HALF-WORD (BYTE) ADDRESSES IN BLOCKU'; T TO TYPE OUT THE BLOCK AS ASCII TEXT 4; S TO SET/CLEAR FLAG FOR SPOOLING OUTPUT FILE TO LP>; IF LUN 6 IS A DISK, THE FILE WILL BE SPOOLED ON EXIT OR WHEN.; THE SPOOLING FLAG IS CLEARED BY THE OPERATOR; E TO EXIT TO THE MONITORI; K TO CALCULATE CHECKSUM OF FIRST 255. WORDS OF BLOCK (FILE HEADERS ETC) ; -; THERE ARE 4 M(ODIFY) TYPE COMMANDS, WHERE T=; M=THE BYTE OFFSET OF THE BUFFER WORD TO BE LISTED/MODIFIED 7; M/000000 CHANGE BUFFER WORD TO THE OCTAL VALUE 000000 3; M,LLL CHANGE BUFFER WORD TO RAD50 VALUE OF "LLL" 1; M;AA CHANGE BUFFER WORD TO ASCII VALUE OF "AA"O3; M: DISPLAY BUFFER WORD IN OCTAL, RAD50 AND ASCII 9; NOTE THAT FOR M COMMANDS, M MUST BE EVEN, 0 <= M < 1000B;H; <; D,N TO CHANGE DEFAULT BLOCK NUMBER FOR READ AND WRITE TO NB; WITHOUT CHANGING THE CONTENTS OF THE BUFFER IN CORE. THIS SHOULD/; PERMIT MOVING DATA FROM ONE BLOCK TO ANOTHER.F;; A,N TO READ AND LIST BLOCK N (N ABSENT IMPLIES NEXT BLOCKA>; C,N TO READ AND LIST ALL BLOCKS UP TO AND INCLUDING BLOCK N.%; (N ABSENT IMPLIES TO END OF DISK.)A8; P,N CHANGES THE HIGH-ORDER BLOCK NUMBER FROM THE DISK.:; NO I/O WILL BE DONE, BUT THE BLOCK NUMBER WILL BE COPIED6; FROM THE HIGH-ORDER AND LOW-ORDER BLOCKS TO RELATIVEB; WORDS 400 AND 401 (BYTES 1000 AND 1002) JUST PAST THE I/O BUFFER8; WHERE THE SINGLE-WORD EXAMINING COMMANDS CAN SEE THEM. M.SBTTL DATA AREAS $ .IDENT /V6A.GE/;7/27/76 G. EVERHARTVERS="06CR=15(LF=12THASH='#N DWDC=256. MAXBLK=48300.NSTR: .ASCII $/,;:CADPWLNERBXS$ .ASCII /T/ ;TYPE BUFFER5 .ASCII /FH/ ;FULL OR HALFWORD ADDRESSES IN NUMBERINGD .ASCII /K/ ;CALCULATE CHECKSUM ,; ;D,NNNNNN WILL RESET BLOCK NUMBER BUT NOT/ ;ALTER DATA IN CORE. THIS WILL PERMIT MOVINGL& ;BLOCKS TO OTHER PARTS OF THE DISK.+ ;P WILL SET THE HIGH-ORDER BLOCK NUMBER &; ;WHEN A P,NNNNNN COMMAND IS GIVEN. .EVEN0BYTFLG: .WORD 2 ;DEFAULT TO BYTE ADDRESSING MODE$LPFLG: .WORD 0 ;FLAG FOR SPOOL TO LPCONT: 0AMODIF: 0NOPRT: 0 0;4DLB: .BYTE 3,11. ;QIOW$C%DFCT: .WORD IO.RLB ;INITIALLY A READ .WORD 2 ;LUN 2L .BYTE 3,100 ;FLAG 3, PRI 100R) .WORD DT.STT ;STATUS RETURN (2-WORD BLK); .WORD 0 ;NO AST .WORD INBUF ;DATA AREA ADDRESS  .WORD DWDC+DWDC ;SIZE IN BYTESV .WORD 0 ;NEEDED FOR RSX SOMEHOW) .WORD 0 ;HIGH ORDER BLK #--NOT USED HEREL/DBLKN: .WORD 01000 ;BLK # (LOW ORDER ACTUALLY.)E#DT.STT: .BLKW 2 ;STATUS RETURN AREAT; 2;CHANGED TO USE FCS WRITES SO CAN GO TO LP OR FILE;FOR OUTPUT ON LUN 3;TI DPB SAVED IN CASETILB: .BYTE 3,.$ARGW .WORD IO.WLB  .WORD 3 ;LUN 3, WRITE .WORD 9. ;EFN 9 .WORD TT.STT ;STATUS BLKR .WORD 0 ;NO ASTTIBUF: .WORD 0 ;BUFFER ADDRESSTIWC: .WORD 0 ;LENGTH IN BYTES .WORD 40 ;CARRIAGE CONTROLD.$ARG=9. ;SIZE OF DPBV .MCALL FCSBT$FCSBT$;FCS BIT NAMESFDB: FDBDF$ ;FDB FOR LISTINGS FDAT$A R.VAR,FD.CRD FDOP$A 6,,NAMEW;D5NAME: NMBLK$ DFX,DAT ;FILE DFX.DAT IF TO DISK LISTING ;C;G# .WORD 5015 ;CRLF FOR THE T COMMANDOINBUF: .=.+DWDC+DWDC"HBCPY: .WORD 0 ;HIGH/ORDER BLOCK #!LBCPY: .WORD 000??-TADATADATA ;LOW/ORDER BLOCK #. 0 0CSI$CSBLK: .BLKB C.SIZE9 .EVENTT.STT:S .MCALL GCMLB$,GCML$TI.STT: .BLKW 2O9CMD: GCMLB$ 2,DFX,,1 ;LUN 1 COMMAND BLK FOR INPUT CONTROLD .MCALL GCMLD$GCMLD$AGETNUM: .ASCII <15><12>/DFX V06--WHAT IS INITIAL OCTAL BLK NO? >/FGETNUL=.-GETNUMI.EVEN KBLH: 80.,0,0C .=.+80.CMOBUF: .WORD 0,4,0 1CORADR: .WORD 0 ;CORE ADDR DUMP MODE DUMMY BUFHDRC.PAGEO.SBTTL INIT CODEDKPEEK:M FINIT$ ;INIT FCS REGION3 GCML$ #CMD,#GETNUM,#GETNUL ;ASK HIM FOR BLK NUMBER; BCC SETMORCSCRAM: JMP END ;GO TO END CODEBSETMOR: MOV #DWDC,R0S" MOV R0,DWCL2+2 ;STASH IN LITERALS ASL R0 ;GET BYTE COUNT1$ MOV R0,DATSIZ ;PREPARE TYPEOUT SIZE MOV #CONT,R0$ CLR (R0)+ CLR (R0)+ CLR (R0)+! MOV CMD+G.CMLD+2,R0 ;STRING ADDR> MOV CMD+G.CMLD,R1+ CMP R1,#1 ;MUST HAVE AT LEAST 1 CHARACTER ( BLT SCRAM ;ONLY CONTINUE IF HE REPLIES!" JSR PC,$COTB ;CONVERT OCTAL BLK #% MOV R1,DBLKN ;PUT BLK # IN QIOW$ DPB  MOV SP,(PC)+ ;SAVE SP POSITIONGSPSAVE: .WORD 0RREAD: JSR R5,BREAD TST DT.STT ;CHECK ERRORS# BMI SCRAM ;JUST EXIT IF ANY OCCURS CLR MODIF" BR PAST ;LIST ONLY WHEN TOLD TO.LIST: MOV #KBLH+6,R1 ;DESS MOV (PC)+,(R1)+ .BYTE 'B,'L MOV (PC)+,(R1)+ .BYTE 'K,' ; MOV R1,-(SP)V MOV R0,-(SP)0' MOV R2,-(SP) ;SAVE REGS USED BY SYSRESR MOV R1,R0 ;OUTPUT ADDRESS MOV DBLKN,R1 ;BLK # MOV #1,R2 ;LEAVE LEADING 0'S IN& JSR PC,$CBOMG ;CONVERT TO ASCII OCTAL MOV (SP)+,R2K MOV (SP)+,R0  MOV (SP)+,R1 ;RESTORE REGST TST HBCPY ;2 WORD BLOCK # ?S BEQ 111$ ;NO MOV R0,-(SP) ;SAVE REGB MOV HBCPY,R0 ;GET NUMBER  ASL R0 ;MUL BY 2= BISB R0,(R1) ;CHANGE MOST SIG DIGIT SO HAVE FULL 6 DIG BL # MOV (SP)+,R0 ;RESTORE111$:;*******+++++++ ADD #8.,R1 JSR R5,WRIFCS ;WRITE BLOCK #P MOV #INBUF,R0 ;SRCVDWCL2: MOV #DWDC,R2 ;LIMITNEXT: MOV #KBLH+20,R1 ;DES MOV R3,-(SP)# MOV R0,R3 ;GET ADDRESSN SUB #INBUF,R31 TST BYTFLG ;ARE WE ADDRESSING IN WORDS OR BYTES?M BNE 11$ ;BYTES; R3 IS OK NOW; ASR R3 ;WORDS PATCH BY FB  ;SO LOOKS LIKE DUMP, ETC11$: MOV R0,-(SP)B MOV R1,-(SP) % MOV R2,-(SP) ;CONVERT OCTAL TO ASCII  MOV #KBLH+10,R0 ;OUTPUT ADR MOV R3,R1 ;NUMBER MOV #1,R2 ;LEAVE IN 0'S JSR PC,$CBOMG ;GET OCTAL+ MOV (SP)+,R2 MOV (SP)+,R1S MOV (SP)+,R0 ;PUT REGS BACK" CLR KBLH+10 ;REMOVE 1ST 2 ZEROES$ MOV #": ,KBLH+16 ;PUT IN COLON TOO. MOV (SP)+,R3 ;RESTORE R3R MOV #4000,R4U NA: ASL R4 BLE NWE JSR R5,CONENT DEC R2R BGT NANW: JSR R5,WRIFCS3 TST R2W BGT NEXT NZ: TST CONT BLE PAST  CMP DBLKN,CONTM BGE PAST-4 INC DBLKN JMP READ, CLR CONTVPAST:P MOV DBLKN,LBCPY ;SAVE BLOCK #' MOV DBLKN-2,HBCPY ;FOR USER TO EXAMINEB2 MOV SPSAVE,SP ;KEEP RESETTING STACK SO WE STAY OK JSR R5,KBREAD MOV #STR,R1 ;STRING POINTER. CLR -(SP) ;RESERVE CELL FOR ADDR OF NEXT BYTE MOV R0,-(SP)# MOV R1,-(SP)T) MOV R2,-(SP) ;GET CODE ADDR FROM TYPE-IN) JSR PC,$COTB ;R0 ALREADY POINTS AT ASCIIR( CMPB R2,#60 ;CHECK THAT WE GOT A NUMBER BLT 20$ ;NOT # CMPB R2,#67 BGT 20$ ;NOT OCTAL, ANYHOWD BR 30$M&20$: DEC R0 ;BACK "LAST CHAR" UP AGAIN30$:- MOV R0,6(SP) ;SAVE ADDR OF NEXT BYTE OF TEXTM$ MOV R1,R3 ;GET RELATIVE WORD IN R3 MOV (SP)+,R2P MOV (SP)+,R1G MOV (SP)+,R0A" TST BYTFLG ;USING BYTE ADDRESSES? BNE 10$ ASL R3R!10$: BIC #1,R3 ;ENSURE R3 IS EVENX MOV (SP),R2 CMPB (R2),(R1)+ BEQ POCTV CMPB (R2),(R1)+ BEQ PRAD  CMPB (R2),(R1)+ BEQ PASCL( CMPB (R2),(R1)+ ;NNN: TO LIST WORD NNN, BEQ PDSPL ;NNN=WORD INDEX,OCTAL START AT 0 CMPB (R2),(R1)+' BNE 444$ ;CHANGED SINCE BRANCH FAILEDR JMP PNEXT444$: CMPB (R2),(R1)+ BEQ PADVV5 CMPB (R2),(R1)+ ;D,N TO CHANGE BLK # AND LEAVE DATA?L BEQ PCNTTV ;YUP. GO DO IT.1 CMPB (R2),(R1)+ ;P,NNNNNN TO SET H/O BLK NUMBER?I BEQ PLSTV2 ;NOTE THAT ALL REQUESTS NEEDING INFORMATION LATER) ;IN THE STRING MUST BE ABOVE THIS POINT. TST (SP)+ CMPB (R2),(R1)+ BEQ PWRI CMPB (R2),(R1)+ BEQ LISTV CMPB (R2),(R1)+ BEQ PNXTS CMPB (R2),(R1)+ BEQ ENDVW CMPB (R2),(R1)+ BEQ READV CMPB (R2),(R1)+ BEQ PBAKV00?ܙ;ݙ64 CMPB (R2),(R1)+ BEQ PLNKV$ CMPB (R2),(R1)+ ;CHANGE SPOOLFLAG ? BEQ SPOOL CMPB (R2),(R1)+ ;TYPE?G BEQ TYPTFV ;YES, GO TO ITQ( CMPB (R2),(R1)+ ;FULLWORD ADDR NUMBERS? BEQ FULSTV ;YES/$ CMPB (R2),(R1)+ ;BYTE ADDR NUMBERS? BEQ HALFTVS! CMPB (R2),(R1)+ ;CALC CHECKSUM ?E BEQ CKSTV JMP PASTH&PCNTTV: JMP PRCNT ;HANDLE BLK # CHANGE!PLSTV: JMP PLUSV ;SERVICE P,N REQQLISTV: JMP LIST)PADVV: JMP PADVS ENDV: JMP END1READV: JMP READCPBAKV: JMP PBAKB!PLNKV: JMP PLNK ;TRANSFER VECTORSATYPTFV: JMP TYPBLKFULSTV: JMP FULLADHALFTV: JMP HALFADPDSPL: JMP PDSPLYOSPOOL: JMP SPFLAG+CKSTV: JMP CKSUMPOCT: INC (SP) ;OVER DELIMITER MOV R0,-(SP)D MOV R1,-(SP) MOV R2,-(SP)E" MOV 6(SP),R0 ;ADDR OF OCTAL ASCII JSR PC,$COTBT' MOV R1,6(SP) ;PUT CONVERTED # ON STACKB MOV (SP)+,R2P MOV (SP)+,R1M* MOV (SP)+,R0 ;RESTORE REGS LIKE GOOD GUY.(PPUT: MOV (SP)+,INBUF(R3) ;MODIFY BUFFER INC MODIF JMP PASTMPRAD: INC (SP) MOV R0,-(SP)J MOV R1,-(SP): MOV R2,-(SP) ;SAVE REGS USEDY MOV 6(SP),R0 ;ASCII ADDRM" MOV #2,R1 ;PERIOD IS LEGAL RAD50 JSR PC,$CAT5 ;CONVERT ITF MOV R1,6(SP) ;PUT ON STACK MOV (SP)+,R2D MOV (SP)+,R1R MOV (SP)+,R0R BR PPUTPASC: INC (SP) MOV (SP)+,R4  MOVB (R4)+,INBUF(R3), MOVB (R4),INBUF+1(R3) BR PPUT+4PNXT: INC DBLKNV JMP READPWRI: JSR R5,BWRIT JMP PASTS.PAGEG*;*********************DISK READ/WRITE SUBSBREAD:$ MOV #IO.RLB,DFCT ;SET READ FUNCTIONBGO:; CMP DBLKN,#MAXBLKJ ; BHIS BERRP MOV #DLB,-(SP) ;NOW DO THE QIOY EMT 3773 MOV #2,DFCT+2 ;RESET LUN TO 2 AFTER POSSIBLE WRITE0# TSTB DT.STT ;CHECK RTN STATUS CODE, BMI BERR ;NEGATIVE IS AN ERRORR CLR (SP)+ RTS R5V.BERR: MOV #1,(SP) ; R5 WILL CONTAIN ERROR CODE MOV R0,-(SP) ;SAVE REGS( MOV R1,-(SP)) MOV R2,-(SP)B MOVB DT.STT,R1 ;GET ERROR CODER$ MOV #MESP,R0 ;POINT TO ASCII BUFFER$ MOV #" ,(R0)+ ;BLANK OUT PREV CODE MOV #" ,(R0)+R MOV #" ,(R0)+B MOV #MESP,R0 ;AND RESET POINTER CLR R2 ;SUPRESS LEADING 0'S& JSR PC,$CBDSG ;CONVERT ERROR TO ASCII DIR$ #MSGQIO ;WRITE MESSAGEO MOV (SP)+,R2L MOV (SP)+,R1 MOV (SP)+,R0T RTS R5C"BWRIT: MOV #IO.WLB,DFCT ;SET WRITE# MOV #4,DFCT+2 ;SET LUN 4 FOR WRITE 9; TST MODIF ;ALWAYS WRITE BACK EVEN IF BLOCK NOT CHANGEDR ; BEQ BERR-4 BR BGOMPWRIB: JMP READV!;ADDED DPB AND MESSAGE FOR ERRORS#;P)MSGQIO: QIOW$ IO.WVB,5,1,,,, :MES: .ASCII ?DISK READ/WRITE ERROR --- RETURNED STATUS = ? .EVENMESP: .ASCII / /C MESL=.-MESS .EVEN.PAGEPNEXT: MOV #77777,CONT INC (SP)C CMPB @(SP),#CR BEQ PNXT+6G;O2BIN INC (SP) MOV R0,-(SP) MOV R1,-(SP) MOV R2,-(SP) ;NOW GET BLK # MOV 6(SP),R0 ;FROM ASCIIT JSR PC,$COTBO CMPB R2,#60 BLT 20$ CMPB R2,#67 ;CHECK # FOUNDC BGT 20$ BR 30$E 20$: DEC R0 30$: MOV R1,CONT ;SAVE RESULT MOV R0,6(SP) ;ALSO NEXT BYTES MOV (SP)+,R2W MOV (SP)+,R1M MOV (SP)+,R0. JMP READ PADV: INC (SP) CMPB @(SP),#CRT ; BEQ PNXT ;OUT OF BRANCH RANGE BNE 555$S JMP PNXT.555$: INC (SP) MOV R0,-(SP), MOV R1,-(SP)C MOV R2,-(SP)C' MOV 6(SP),R0 ;GET ADVANCE BLOCK NUMBERV JSR PC,$COTBV CMPB R2,#60 BLT 20$ CMPB R2,#67 ;CHECK # FOUNDR BGT 20$ BR 30$R 20$: DEC R0C30$: MOV R1,DBLKN ;SAVE BLK # IN DPB! MOV R0,6(SP) ;AND NEXT BYTE ADDR: MOV (SP)+,R2 MOV (SP)+,R1S MOV (SP)+,R0V JMP READAPBAK: DEC DBLKNM BGE PBAK-4 CLR DBLKN BR PBAK-4PLNK: MOV INBUF,DBLKNV BR PBAK-4"END: TST FDB;F.BDB ;IS FILE OPEN ? BEQ END1 ;NO TST LPFLG ;SPOOL TO LP BEQ ENDA ;NO PRINT$ #FDB ;SPOOL LISTING BR ENDA ;SPOOL CLOSES THE FILE+ENDA: CLOSE$ #FDB ;CLOSE OPEN LISTING FILE END1: EXIT$S ;AND QUIT2PDSPLY:  MOV #INBUF,R0 ;DATA TO DISPLAY: ADD R3,R0 ;ADDR TO DISPLAY( TST (SP)+ ;FORGET WHERE THIS CAME FROM$ MOV #5015,KBLH+6 ;PUT CRLF IN FIRST' MOV #KBLH+10,R1 ;PUT DATA IN KBLH AREA  INC R1M0 JSR R5,CONENT ;CONVERT TO DISPLAY FORMAT (1 WD) JSR R5,WRITE ;TYPE IT JMP PAST ;GET NEXT COMMAND.PWRITE: SUB #KBLH+6,R1T MOV R1,KBLH+4 MOV #KBLH+4,-(SP) JSR R5,TTYM JSR00??-TADATADATA R5,CLEARG RTS R5A;SUB TO WRITE USING FCSNWRIFCS: SUB #KBLH+6,R1 MOV R1,KBLH+4 MOV #KBLH+4,-(SP) JSR R5,TTYFCS JSR R5,CLEARU RTS R5A; ;PCLEAR: MOV #KBLH+6,R4  MOV KBLH,-(SP)( ADD R4,(SP)CL: MOVB #' ,(R4)+ CMP R4,(SP) BLT CLT TST (SP)+ RTS R5#SPFLAG: TST LPFLG ;IS FLAG SET BNE 222$ ;IF SET --- BRANCHR INC LPFLG ;IF CLEAR THEN SET IT JMP PAST ;AND RETURNP&222$: CLR LPFLG ;IF SET, THEN CLEAR IT MOV R0,-(SP)V PRINT$ #FDB ;AND PRINT IT MOV (SP)+,R0 ;RESTORE REG JMP PAST ;AND RETURNT;R.PAGENTTYFCS:R ;CHANGED TO DO FCS WRITES3 ;CALL PUTS A BUFFER ADDRESS ON STACK AND JSR R5'S, MOV R0,-(SP) ;SAVE A WORK REG MOV 4(SP),R0 ;BUFFER ADDR! MOV (R0)+,TIWC ;SAVE BUFFER SIZE( MOV R0,TIBUF ;SAVE ADDRESS TST FDB+F.BDB ;IS FILE OPENED BNE 12$ ;YES MOV R1,-(SP) ;SAVE R1 MOV R0,-(SP) ;AND R0L MOV #NAME,R1T MOV #FDB,R0- JSR PC,.GTDID ;FILL DEFAULD ID IN NAME BLOCKT MOV (SP)+,R0M MOV (SP)+,R1 ;RESTORE REGSN OPEN$W #FDB,#6,,,TIBUF,TIWC%12$: PUT$ #FDB,TIBUF,TIWC ;WRITE LINEP MOV (SP)+,R0 ;RESTORE R0O" MOV (SP)+,(SP) ;PUSH UP RETURN R5 RTS R5 ;THAT'S IT. RTS R5,;M;SUB TO DO NORMAL TTY IOTTYM:V3 ;CALL PUTS A BUFFER ADDRESS ON STACK AND JSR R5'SS MOV R0,-(SP) ;SAVE A WORK REG MOV 4(SP),R0 ;BUFFER ADDR! MOV (R0)+,TIWC ;SAVE BUFFER SIZEP MOV R0,TIBUF ;SAVE ADDRESSD* MOV #TILB,-(SP) ;PUT DPB ADDRESS ON STACK EMT 377 ;DO QIOD MOV (SP)+,R0 ;RESTORE R0P" MOV (SP)+,(SP) ;PUSH UP RETURN R5 RTS R5 ;THAT'S IT..PAGEC; VARIOUS SUBROUTINEST2;CONENT CONVERTS A WORD TO OCTAL, RAD50, AND ASCIICONENT:; MOV (R0),-(SP)5 MOV R0,-(SP)T MOV R1,-(SP) ;SAVE REGS MOV R2,-(SP)T MOV @R0,R1 ;NUMBER TO CONVERTE MOV 2(SP),R0 ;ADDR TO PUT INS MOV #2,R2 ;FLAG JSR PC,$CBOMG ;TO OCTAL FIRST!F MOV (SP)+,R2( MOV (SP)+,R1 MOV (SP)+,R0M ADD #8.,R1V D MOV R0,-(SP)I MOV R1,-(SP)P MOV R2,-(SP) ;NOW RAD-UNPACKD MOV @R0,R1 ;GET NUMBER MOV 2(SP),R0 ;AND BUFFER ADDR JSR PC,$C5TA ;CONVERT MOV (SP)+,R2G MOV (SP)+,R1U% MOV (SP)+,R0 ;RESTORE REGISTERS USEDO ADD #4,R1 MOVB (R0)+,(R1) JSR R5,TSTASC MOVB (R0)+,(R1) JSR R5,TSTASC ADD #2,R1 RTS R5,TSTASC: CMPB (R1),#40B BLT SBV CMPB (R1),#176R BLE CONSB: MOVB #40,(R1)2 CON: INC R1P RTS R5;KBREAD:F! GCML$ #CMD ;GET A COMMAND OR TWOR BCC 1$( EXIT$S*1$: ;BLANK OUT ANY PREVIOUS LONGER LINE+ MOV CMD+G.CMLD+2,R0 ;ADDRESS OF INPUT LINE@5 ADD CMD+G.CMLD,R0 ;ADD LENGTH IN BYTES OF INPUT LINER+ MOV #C.SIZE,R1 ;GET SIZE OF COMMAND BUFFER+$ SUB CMD+G.CMLD,R1 ;SUB SIZE OF LINE 11$: CLRB(R0)+ ;CLEAR A BYTE, SOB R1,11$,+ MOV CMD+G.CMLD+2,R0 ;ADDRESS OF INPUT LINED1 MOV CMD+G.CMLD,R1 ;LENGTH IN BYTES OF INPUT LINEV; MOV #KBLH+6,R0; MOV KBLH+4,R1O# RTS R5 ;R0=CORE ADDR,R1=BYTE COUNT.PAGEF ;VARIOUS COMMANDSM;DCKSUM: ;CALCULATE CHECKSUM$ MOV R0,-(SP) MOV R1,-(SP)N7 MOV R2,-(SP) ;SAVE CAUSE WHO KNOWS WHAT REG'S ARE USEDA) MOV #INBUF,R2 ;GET START OF BLOCK BUFFERP CLR R0 ;CLEAR ADDERR MOV #255.,R1 ;WORD COUNT TO R1S 11$: ADD (R2)+,R0 ;CALC CHECKSUM SOB R1,11$R MOV R0,CHKSUM ;SAVE CHECKSUM,# MOV #CHKSUM,R0 ;AND POINT R0 TO ITP MOV #5015,KBLH+6 ;PUT IN CR-LFG" MOV #KBLH+10,R1 ;POINT AFTER THEM2 JSR R5,CONENT ;CONVERT ONE WORD TO OCT, RAD50,ASC9 MOV #KBLH+16,R1 ;BACK UP POINTER OVER RAD50 ASCII VALUES $ MOV #5015,(R1)+ ;PUT IN FINAL CR-LF! JSR R5,WRITE ;WRITE THE CHECKSUM  MOV (SP)+,R2 ;RESTORE REGSE MOV (SP)+,R1N MOV (SP)+,R0R JMP PASTB;E$CHKSUM: .WORD 0 ;SAVE CHECKSUM HERE; FULLAD: CLR BYTFLG JMP PAST2&HALFAD: MOV #2,BYTFLG;SET BYTE OFFSETS JMP PAST;"TYPBLK: ;TYPE THE BLOCK IN ASCII!!1 BR X10$ ;SKIP BUFFER HEADERS, ETC. DUMP IN ASCII4VTHDR: .WORD 1,0,1,13 ;VERTICAL TAB TO FLUSH TYPEOUT!DATHDR: .WORD 2*DWDC ;BUFFER SIZEM .WORD 6 ;UNFORMATTED ASCII DUMP$DATSIZ: .WORD 512. ;# CHARS TO WRITE .WORD INBUF ;DATA IN "INBUF",X10$:W( MOV #<<2*DWDC>+2>,TIWC ;WRITE 514 BYTES MOV #INBUF-2,TIBUF ;FROM INBUF+" MOV #TILB,-(SP) ;NOW QIOW$ IT OUT& EMT 377 ;(AUTOMATICALLY AWAI00?&@)ܙ;ݙ64TS DONE);;VERY LIKELY ONE CAN GENERATE ERRORS THIS WAY; IGNORE THEM.J JMP PASTY/PLUSV: ;SET HIGH-ORDER BLOCK NUMBER. DO NO I/OB INC @SP ;PASS +, CMPB @(SP),#CR ;CHECK THAT A COMMA IS THERE BNE PLUSV1 ;NO. TEST FOR ALTR+PLUS2: JMP PAST ;NO COMMA, NO ACTION KIDDO!MPLUSV1: CMPB @(SP),#33 ;ALT? BEQ PLUS2 ;YUP. SAME STORY.- INC @SP ;WELL, HE MIGHT BE RIGHT. LET IT BY.W- ;PASS THE COMMA NOW AND GET BINARY NUMBER.U MOV R0,-(SP) MOV R1,-(SP))% MOV R2,-(SP) ;SAVE OUR REGS AS USUALI MOV 6(SP),R0 ;ASCII NUMBERE JSR PC,$COTB ;CONVERT ITT MOV R1,DBLKN-2 ;SET H/O BLK # MOV (SP)+,R2T MOV (SP)+,R1C! MOV (SP)+,R0 ;PUT BACK REGS USEDS BR PLUS2 ;GO ON BACK FOR MORE.PRCNT: INC @SP ;PASS COMMA( CMPB @(SP),#CR ;IS THERE A COMMA, EVEN? BNE PRCNT1N'PRCNTX: EXIT$S ;SCRAM--HE'S DANGEROUS!B'PRCNT1: CMPB @(SP),#33 ;ALTMODE EITHER?L BEQ PRCNTX ;YEAH, GET OUT FAST';REQUEST IS NOT OBVIOUSLY WRONG--DO IT.B0 INC @SP ;PASS COMMA NOW. (PASSED THE % EARLIER) MOV R0,-(SP)S MOV R1,-(SP)V MOV R2,-(SP) ;SAVE REGS INC MODIF ;SET BLOCK CHANGEDV MOV 6(SP),R0 ;GET ASCII ADDRESS JSR PC,$COTB ;CONVERT OCTAL MOV R1,DBLKN ;RESET BLK NUMBERB MOV (SP)+,R2 MOV (SP)+,R1 MOV (SP)+,R0; JMP PAST ;GO ON .WORD 0,0MSGTWO: AXST-.-2D .ASCII $DISK READ/WRITE ERROR (PROBABLY NON-EXISTANT BLOCK NUMBER)$ .BYTE CR,LF .EVENAXST=. .WORD 0,0AST: 2 .BYTE 52,13 ;* .END DKPEEK BVIOUSLY WRONG--DO IT.B0 INC @SP ;PASS COMMA NOW. (PASSED THE % EARLIER) MOV R0,-(SP)S MOV R1,-(SP)V M 8 ...DFX IS AN RSX PROGRAM TO DO ABSOLUTE DISK PATCHES ON5 TO YOUR CURRENT SY: DISK. CALLING SEQUENCE IS VIA A   MCR>DFX ? IN RESPONSE TO "ENTER DISK BLOCK #" TYPE BLOCK NUMBER IN OCTAL< OR "E" TO EXIT TO RSX. THE BLOCK WILL BE READ IN AND CAN BE2 DISPLAYED BY THE "L" COMMAND. DISPLAY IS ON LUN 6 B NOTE THAT LUN 2 IS USED FOR DISK READS AND LUN 4 FOR DISK WRITES,? AS A PROTECTIVE MEASURE LUN 4 IS ASSIGNED TO PSEUDO DEVICE XX:@ AND MUST BE RE-ASSIGNED BY THE USER BEFORE TO ENABLE WRITE-BACK FE ALSO NOT THAT LUN 6 IS USED FOR FULL BLOCK LISTINGS. IT IS INITIALLY:F SET TO TI: BUT CAN BE RE-ASSIGNED TO A DISK, AND WILL BE IN THE USERS UIC AS "DFX.DAT"T # IN RESPONSE TO "DFX>" PROMPT, TYPEI  L TO LIST REFERENCED BLOCK 9 W TO WRITE THE CURRENTLY REFERENCED BLOCK BACK ONTO DISKN N TO READ THE NEXT BLOCK ; R TO REREAD THE CURRENT BLOCK (OVERWRITING CURRENT BUFFER)I B TO READ THE PREVIOUS BLOCK 7 F FOR FULL-WORD ADDRESSES (DEFAULTS TO BYTE ADDRESSES)B* H FOR HALF-WORD (BYTE) ADDRESSES IN BLOCK& T TO TYPE OUT THE BLOCK AS ASCII TEXT3 S TO SET/CLEAR FLAG FOR SPOOLING OUTPUT FILE TO LPD> IF LUN 6 IS A DISK, THE FILE WILL BE SPOOLED ON EXIT OR WHEN. THE SPOOLING FLAG IS CLEARED BY THE OPERATOR5 K TO CALCULATE CHECKSUM OF FIRST 255. WORDS OF BLOCKE E TO EXIT TO THE MONITOR + THERE ARE 4 M(ODIFY) TYPE COMMANDS, WHERE E< M=THE BYTE OFFSET OF THE BUFFER WORD TO BE LISTED/MODIFIED9 NOTE THAT FOR M COMMANDS, M MUST BE EVEN, 0 <= M < 1000E S6 M/000000 CHANGE BUFFER WORD TO THE OCTAL VALUE 0000002 M,LLL CHANGE BUFFER WORD TO RAD50 VALUE OF "LLL"0 M;AA CHANGE BUFFER WORD TO ASCII VALUE OF "AA"2 M: DISPLAY BUFFER WORD IN OCTAL, RAD50 AND ASCII P < THERE ARE 4 COMMANDS WHICH ALTER THE ABLSOLUTE BLOCK NUMBER IA D,N TO CHANGE DEFAULT BLOCK NUMBER FOR READ AND WRITE TO N WITH-E> OUT CHANGING THE CONTENTS OF THE BUFFER IN CORE. THIS SHOULD/ PERMIT MOVING DATA FROM ONE BLOCK TO ANOTHER. ; A,N TO READ AND LIST BLOCK N (N ABSENT IMPLIES NEXT BLOCK)N= C,N TO READ AND LIST ALL BLOCKS UP TO AND INCLUDING BLOCK N. % (N ABSENT IMPLIES TO END OF DISK.)A7 P,N CHANGES THE HIGH-ORDER BLOCK NUMBER FROM THE DISK.E: NO I/O WILL BE DONE, BUT THE BLOCK NUMBER WILL BE COPIED6 FROM THE HIGH-ORDER AND LOW-ORDER BLOCKS TO RELATIVE> WORDS 400 & 401 (BYTE OFFSET 1000 & 1002) PAST THE IO BUFFER8 WHERE THE SINGLE-WORD EXAMINING COMMANDS CAN SEE THEM.  MIT MOVING DATA FROM ONE BLOCK TO ANOTHER. ; A,N TO READ AND LIST BLOCK N (N ABSENT IMPLIES NEXT BLOCK)N=00A.B5-TADATADATA*!L:br@:@*:2@9x@:@:_@GP}@*[(}@`@X@p@?S@*,l@hp!@}@(j y0 ( */,;:CADPWLNERBXSTFHK &:br&@66 ::   : nn.rr  <  C&&E**z z00MMdd'nn DFX> P* DFX V06--WHAT IS INITIAL OCTAL BLK NBO? >P* *bd wxX"?S*7 7   W * wDw  :7 YLBL GP}"L*K f&@  &:_*4 Ѐew V V&*Z&fN 7 : N:_* w  w   x -*p wB7 bzr ,w <*& &f 07 6C GP}*  EGXf;*w% bZ*>"wXww*dNwwxww~www ww*wtww &f vGP}* bw &f v "9x* 33 Fww Vw *" & &f :br *"    ^:"^*Hw p4 ::2&p*n DISK READ/WRITE ERROR --- RETURNED S*TATUS = n  &f* 07 w@6 GP}*w w &f &GP}*07 w6w *,7  ^ WL 8Qf L*R ? e |Ry*xeB  *& & LP)  `*õ & & & & & ffI  e*A L 3`  <L`* N w w wLw Jw \w NL J*6 Lw Jw w Laԕ LJL*\ !  wD7 &L 8Q"L* f ? e |Ry* eB  * & & LP) "`* õ & & & & & ffI  e* A w&77 Hf*@ &L L"# L,lL*f  L hp!L"}* &77:&f:*  e&f  :_&[(}* e w w eW W~* ɕ 0 b 3NmH ?S*$ ,@B~:4&f d *J B~7(x  Nw FT w  x NT*p w>7 w4w* * :w  :* w &f wT GP}*  3 &f *  ww<DISK REA GP}*. D/WRITE ERROR (PROBABLY NON-EXISTANT BT LOCK NUMBER) *  W~* ɕ 0 b 3NmH ?S*$ ,@B~:4&f d *J B~7(x  Nw F% .TITLE F11ACT - REPORT FILE ACTIVITY .IDENT "0003" .enable lc;;; MODULE: FILES-11 ACTIVITY REPORTING TASK -- MAIN PROGRAM;; VERSION: 0003;; AUTHOR: ANDY PUTNINS;; DATE: 20-NOV-78;; MODIFICATIONS:0; 14-DEC-78 A. PUTNINS ADD FILE ATTRIBUTES LOGIC<; 6-APR-79 A. PUTNINS ADD DYNAMIC MEMORY LOGIC & RESTRUCTURE;;; GLOBAL SYMBOL DEFINITIONS;$ CMDLUN == 1 ;LUN FOR COMMAND INPUT6 TILUN == 2 ;LUN FOR ERROR MESSAGE OUTPUT TO TERMINAL0 TIEFN == 2 ;EVENT FL00B6)ܙ;ݙ64AG TO ERROR MESSAGE OUTPUT. FILLUN == 3 ;LUN FOR READING FILE ATTRIBUTES FILEFN == 3 ;EVENT FLAGY- OUTLUN == 4 ;LUN FOR ACTIVITY REPORT OUTPUT " ACPRIO == 220. ;ACP RUN PRIORITY;D; MACRO TO CALL PRINT ROUTINE;S .MACRO FORMAT MSG,ARGBLKA MOV MSG,R1B .IIF NB,ARGBLK, MOV ARGBLK,R2 CALL PUTLIN .ENDM;&-; MACRO TO JUST CALL $EDMSG WITHOUT PRINTINGT;S .MACRO FMT MSG,ARGBLK MOV MSG,R1I .IIF NB,ARGBLK, MOV ARGBLK,R2 CALL $EDMSG .ENDM .PAGE .SBTTL FILE DEFINITIONS* .MCALL FSRSZ$,FDBDF$,FDAT$A,FDOP$A,NMBLK$/ FSRSZ$ 2 ;RESERVE SPACE FOR 2 RECORD BUFFERSF;Y; OUTPUT FILE: ; VARIABLE LENGTH RECORDST; STANDARD CARRIAGE CONTROL $; RECORDS CAN CROSS BLOCK BOUNDARIES ; GET/PUT I/OS; SEQUENTIAL ACCESSA ; MOVE MODEM?; DATASET DESCRIPTOR CONTAINED IN CSI CONTROL BLOCK IN 'GETPRM'&$; DEFAULT FILENAME - TI:F11STATS.LSTB; EXISTING FILE TO BE OPENED FOR APPEND BY DEFAULT, ELSE FOR WRITE;M .PSECT IMPURE,RW,DMOUTFDB:: FDBDF$E FDAT$A R.VAR,FD.CRT FDOP$A OUTLUN,,DFNB,FO.APD,DFNB: NMBLK$ F11STATS,LST,,TI  .PAGE" .SBTTL DIRECTIVE PARAMETER BLOCKS .MCALL QIOW$ .PSECT IMPURE,RW,DO;*; QIO TO WRITE ERROR MESSAGES TO TERMINAL;S,QIOTI:: QIOW$ IO.WVB,TILUN,TIEFN,,,,<0,0,40>;C"; ACP QIO TO READ FILE ATTRIBUTES; PARAMETER 1 - FILE ID POINTERC+; PARAMETER 2 - FILE ATTRIBUTE LIST POINTERA;L3RATQIO: QIOW$ IO.RAT,FILLUN,FILEFN,,IOSB,,<0,.FATL>T;E; FILE ATTRIBUTE LIST;M.FATL:" .BYTE -1,2 ;READ FILE OWNER UIC.P.FOWN: .BLKW ;POINTER TO FILE OWNER BUFFER0 .BYTE -5,12 ;READ FILE NAME, TYPE AND VERSION,P.FNAM: .BLKW ;POINTER TO FILENAME BUFFER .WORD 0 ;END OF LISTT .PAGE .SBTTL MESSAGE STRINGSL .PSECT PURE,RO,D .NLIST BEXT-HDRMSG: .ASCIZ '%F File System Status %Y %2Z'T5DNLMSG: .ASCIZ '%N **** Some Devices Not Listed ****' MSG1: .ASCIZ '%2N%2A%O:'*NDVMSG: .ASCIZ ' **** No Such Device ****'8NFIMSG: .ASCIZ ' **** Not A File-Structured Device ****'OFFMSG: .ASCIZ ' Offline'R!FORMSG: .ASCIZ ' Mounted Foreign'F&TAPMSG: .ASCIZ ' Labeled Tape Mounted'MSG2: .ASCII ' ACP: %RACP' .ASCII ' Volume Label: %12A'N .ASCIZ ' Transaction Count=%D'S0BFMSG: .ASCIZ '%N **** FCB Pointer Error ****%N'.MSG3: .ASCII '%29< File Control Blocks=%D%29>' .ASCII '(%12'G .ASCII '%12's .ASCII '%12'( .ASCIZ 'Pre-%N Accessed Directories=%D'5FNLMSG: .ASCIZ '%N **** Some Files Not Listed ****%N'S/MSG4: .ASCIZ ' %12%18'R!OWNMSG: .ASCIZ ' %12<[%O,%O]%12>'NAMMSG: .ASCIZ '%18<%X%18>' ACPMSG: .ASCIZ '*%11S%12S%12S'FCMMSG: .ASCIZ '%12S*%11S%12S'SCMMSG: .ASCIZ '%12S%12S*%11S'DIRMSG: .ASCIZ '*'@ASNMSG: .ASCIZ '%N **** Assign LUN Directive Error Code=%D ****'9QIOMSG: .ASCIZ '%N **** QIO Directive Error Code=%D ****'%?RA1MSG: .ASCIZ ' **** Read File Attributes QIO Error Code=%D, 'c#RA2MSG: .ASCIZ 'File ID=%D,%D ****'C:ENDMSG: .ASCII '%2N Total Free Space In FCPCOM=%D. Bytes'. .ASCII '%N Largest Hole In FCPCOM=%D. Bytes', .ASCII '%N Total Size Of FCPCOM=%D. Bytes'$ .ASCII '%N FCPCOM Utilization=%D%'> .ASCIZ '%2N Tabulated Data Structures Use %D. SCOM Nodes.%N'KFCSMSG: .ASCIZ '%NF11ACT -- **** Statistics File FCS Error Code=%D,%D ****'d .EVEN .LIST BEX .PAGE* .SBTTL BUFFERS, GLOBAL DATA AND LISTHEADS .PSECT IMPURE,RW,D ;dO; BUFFER TO HOLD SYSTEM DATE AND TIME. ALSO DOUBLES AS '$EDMSG' ARGUMENT BLOCKN;GHDRBK: .BLKW 8.t;e8; BUFFER TO HOLD FORMATTED OUTPUT STRINGS FROM '$EDMSG';POUTBUF:: .BLKB 256.I .EVEN;S4; I/O STATUS BLOCK, ALSO USED FOR TEMPORARY STORAGE;=TEMP:: IOSB: .BLKW 2u; 5; FCPCOM AND SCOM NODE USAGE COUNTS - DO NOT SHUFFLEZ;N-FCFREE:: .WORD 0 ;TOTAL FREE SPACE IN FCPCOMD1FCHOLE:: .WORD 0 ;SIZE OF LARGEST HOLE IN FCPCOMF'FCSIZE:: .WORD 0 ;TOTAL SIZE OF FCPCOMM0FCUTIL:: .WORD 0 ;PERCENT UTILIZATION OF FCPCOM4SCALLO:: .WORD 0 ;COUNT OF SCOM NODES FOR ALL ACP'S;.; FREE DYNAMIC MEMORY LISTHEAD ;MHD.FRE: .BLKW 2N;O%; 'INSUFFICIENT DYNAM00B>5-TADATADATAIC MEMORY' FLAG.;NNSFMEM:: .WORD 0;L-; STATISTICS BLOCK LISTHEAD, INITIALLY EMPTY:;OLH.SB:: .WORD LH.SB,LH.SBO .PAGE .SBTTL MAIN PROGRAM;OL; REPORT FILE ACTIVITY - MAIN PROGRAM. FIRST WE CALL 'GETPRM' TO PARSE THEJ; COMMAND LINE AND SET UP A LIST OF DEVICES FOR WHICH THE USER WANTS FILEJ; ACTIVITY STATISTICS. ROUTINE 'FILLSB' DOES THE WORK OF OBTAINING THESEK; STATS. FINALLY, WE FORMAT AND PRINT THEM USING SYSLIB ROUTINE '$EDMSG'.D;E; REGISTER USAGE: ; R0=SCRATCH"; R1=ADDR OF MESSAGE FORMAT STRING$; R2=ADDR OF MESSAGE PARAMETER BLOCK; R3=LENGTH OF STATISTICS BLOCKS; R4=STATISTICS BLOCK LISTHEAD; R5=CURRENT STATISTICS BLOCKR;R7 .MCALL FINIT$,OPEN$,OPEN$W,GTIM$S,CLOSE$,EXIT$S,PRINT$O .PSECT F11ACT,RO,ID .ENABL LSB START::  FINIT$ ;INITIALIZE FCS. MOV #HD.FRE,R0 ;FREE MEMORY LISTHEAD ADDRESS) CALL $INIDM ;INITIALIZE DYNAMIC MEMORY 1 MOV #LH.SB,R0 ;ADDR OF STATISTICS BLOCK LISHEADS# MOV R0,(R0) ;INITIALIZE LISTHEADE MOV R0,2(R0) ;...H&NXTCMD: CALL GETPRM ;GET DEVICE LIST BCC 10$* JMP EXIT ;EXIT IF ERROR OR END OF INPUT%10$: CALL FILLSB ;GATHER STATISTICST;DG; OPEN OUTPUT FILE. 'GETPRM' HAS SET UP 'INFDB' FOR APPEND OR CREATE,C%; DEPENDING UPON THE USER'S COMMAND.,;1 OPEN$ #OUTFDB ;OPEN FILE AS PER USER'S COMMAND BCC 30$ ;CONTINUE IF OPEN OKT) CMPB #IE.NSF,OUTFDB+F.ERR ;NO SUCH FILE?N$ BNE 20$ ;NO - WRITE ERROR MESSAGE" OPEN$W #OUTFDB ;YES - CREATE IT BCC 30$ ;CONTINUE IF OK%20$: JMP FCSERR ;ELSE WRITE MESSAGEG;R2; FORMAT STATISTICS AND WRITE THEM TO OUTPUT FILE;R'30$: GTIM$S #HDRBK ;GET DATE AND TIMEA& FORMAT #HDRMSG,#HDRBK ;WRITE HEADING5 TST NSFMEM ;WAS THERE ENOUGH ROOM FOR ALL DEVICES? BEQ 40$ ;YES - CONTINUE% FORMAT #DNLMSG ;NO - WRITE MESSAGEF,40$: MOV #L.SB,R3 ;SIZE OF STATISTICS BLOCK MOV #LH.SB,R4 ;LISTHEAD ADDR% MOV @R4,R5 ;R5=ADDR OF FIRST ENTRYO CMP R4,R5 ;LIST EMPTY?E BEQ 90$ ;YES - FORGET ITT BR FRSTSB ;NO<NEXTSB: CALL DELQ ;ADVANCE TO NEXT ENTRY & DELETE PREVIOUS BCS 90$ ;END OF LISTE;FRSTSB: MOV R5,R2 ;STATISTICS BLOCK IS ALSO ARG. BLOCK...A" ADD #P.DNAM,R2 ;... FOR '$EDMSG'2 MOV #OUTBUF,R0 ;SET UP BUFFER PTR FOR FMT MACROS FMT #MSG1 ;FORMAT DEVICE NAME( BIT #F.NSDV,.SBFLG(R5) ;NO SUCH DEVICE? BEQ 50$, FMT #NDVMSG ;YES - MOVE MESSAGE TO BUFFER CALL FMTPUT ;AND WRITE IT BR NEXTSB ;TRY NEXT ENTRY-50$: BIT #F.NF11,.SBFLG(R5) ;FILES-11 DEVICE?  BEQ 55$ ;YES - CONTINUE+ FMT #NFIMSG ;NO - MOVE MESSAGE TO BUFFERY CALL FMTPUT ;AND WRITE IT BR NEXTSB$55$: BIT #F.OFF,.SBFLG(R5) ;OFFLINE? BEQ 60$ FMT #OFFMSG ;YES# CALL FMTPUT BR NEXTSB/60$: BIT #F.FOR,.SBFLG(R5) ;MOUNTED AS FOREIGN?R BEQ 70$ FMT #FORMSG CALL FMTPUT BR NEXTSB*70$: FMT #MSG2 ;MOVE VCB STATS TO BUFFER" CALL FMTPUT ;AND WRITE THEM OUT+ BIT #F.BADF,.SBFLG(R5) ;FCB POINTER ERROR?  BEQ 80$ FORMAT #BFMSG$80$: FORMAT #MSG3 ;WRITE FCB STATS) CALL PUTFAT ;WRITE OUT FILE ATTRIBUTES;* BR NEXTSB ;LOOP FOR NEXT DEVICE IN LIST<90$: FORMAT #ENDMSG,#FCFREE ;PRINT MEMORY UTILIZATION STATS>998$: BIT #SW.SP,SWMASK ;ARE WE SUPPOSED TO SPOOL THE OUTPUT? BEQ 999$ ;NOF! PRINT$ #OUTFDB ;YES - SPOOL IT7+ JMP NXTCMD ;AND LOOP FOR ANOTHER COMMAND)999$: CLOSE$ #OUTFDB ;CLOSE OUTPUT FILE JMP NXTCMD ;AND LOOP @FCSERR: MOVB OUTFDB+F.ERR,R0 ;EXPAND ERROR CODES TO 1 WORD EACH MOV R0,TEMP MOVB OUTFDB+F.ERR+1,R0W MOV R0,TEMP+2' MOV #OUTBUF,R0 ;SET UP BUFFER POINTERE1 FMT #FCSMSG,#TEMP ;MOVE ERROR MESSAGE TO BUFFER0( TIQIO #OUTBUF,R1 ;WRITE IT TO TERMINAL BR 998$ EXIT: EXIT$S .DSABL LSBM .PAGE1 .SBTTL PUTFAT - FORMAT AND PRINT FILE ATTRIBUTESF;IG; THIS ROUTINE USES THE FILE ID STORED IN EACH FILE ATTRIBUTE BLOCK TONC; OBTAIN SELECTED INFO ABOUT THE FILE FROM THE ACP, AND PRINT IT.OF; SOME OF THESE FILES MAY NOT EXIST ANY LONGER AT THIS POINT, BECAUSEJ; WE HAVE BEEN RUNNING AT NORMAL PRIORITY SINCE COLLECTING STATISTICS, SOC; WE CAN ANTICIPATE SOME FILE ACCESS ER00BF)ܙ;ݙ64RORS. TO PREVENT PRIVILEGEEO; VIOLATIONS WHEN READING FILE ATTRIBUTES, RUN THIS TASK UNDER A UIC OF [1,1].S; ; INPUTS:+; R5=ADDR OF CURRENT STATISTICS BLOCK ENTRYF;; REGISTER USAGE:'; R0=ADDR OF NEXT BYTE IN OUTPUT BUFFERI$; R1=ADDR OF INPUT STRING FOR $EDMSG&; R2=ADDR OF ARGUMENT BLOCK FOR $EDMSG#; R3=LENGTH OF FILE ATTRIBUTE BLOCKT; R4=ATTRIBUTE BLOCK LISTHEAD,$; R5=ADDR OF CURRENT ATTRIBUTE BLOCK;A; REGISTERS CLOBBERED:N ; R0,R1,R2;O .MCALL ALUN$S .ENABL LSBIPUTFAT:  PUSH 6 BIT #F.NFAT,.SBFLG(R5) ;WAS THERE ROOM FOR ALL FILES? BEQ 10$% FORMAT #FNLMSG ;NO - WRITE MESSAGEP-10$: MOV #L.AB,R3 ;LENGTH OF ATTRIBUTE BLOCKF$ MOV R5,R4 ;GET ATTRIBUTE LISTHEAD ADD #LH.AB,R4 ;... CMP R4,@R4 ;LIST EMPTY? BNE 20$ ;NO# JMP 999$ ;YES - RETURN TO CALLERM&20$: FORMAT #MSG4 ;WRITE OUT HEADING? ALUN$S #FILLUN,.DNAM(R5),.DUNIT(R5) ;ASSIGN LUN TO THIS DEVICEK BCC 30$ ;ERROR?0 MOVB $DSW,R0 ;YES - EXPAND ERROR CODE TO WORD MOV R0,TEMP% FORMAT #ASNMSG,#TEMP ;WRITE MESSAGEL BR 999$ ;AND RETURN TO CALLER)30$: MOV @R4,R5 ;R5=ADDR OF FIRST ENTRYE BR FRSTAB<NEXTAB: CALL DELQ ;ADVANCE TO NEXT ENTRY & DELETE PREVIOUS BCS 999$ ;END OF LIST;FRSTAB: MOV R5,P.FOWN ;SET UP POINTER TO FILE OWNER BUFFERJ ADD #.FOWN,P.FOWN2 MOV R5,P.FNAM ; AND POINTER TO FILENAME BUFFER ADD #.FNAM,P.FNAM7 MOV R5,RATQIO+Q.IOPL ;SET UP FILE ID PARAMETER FOR QIOC ADD #.FID,RATQIO+Q.IOPL% DIR$ #RATQIO ;READ FILE ATTRIBUTESM BCC 40$ ;DIRECTIVE ERROR?0 MOVB $DSW,R0 ;YES - EXPAND ERROR CODE TO WORD MOV R0,TEMP% FORMAT #QIOMSG,#TEMP ;WRITE MESSAGEB" BR NEXTAB ; AND TRY NEXT FILE#40$: CMPB #IS.SUC,IOSB ;ACP ERROR?B BEQ 50$0 MOVB IOSB,R0 ;YES - EXPAND ERROR CODE TO WORD MOV R0,TEMP! MOV #OUTBUF,R0 ;POINT TO BUFFERV. FMT #RA1MSG,#TEMP ;MOVE ERROR CODE TO BUFFER MOV R5,R2 ;POINT TO FILE ID ADD #.FID,R2U& FMT #RA2MSG ;MOVE FILE ID TO BUFFER CALL FMTPUT ;WRITE IT BR NEXTAB ;TRY NEXT FILEM/50$: MOV #TEMP,R0 ;EXPAND 2 BYTE FILE OWNER TOS3 MOVB .PROJ(R5),(R0)+ ; 4 BYTES (NO SIGN EXTEND)Q CLRB (R0)+; MOVB .PROG(R5),(R0)+T CLRB (R0)/ MOV #OUTBUF,R0 ;SET UP OUTPUT BUUFFER POINTERR$ FMT #OWNMSG,#TEMP ;MOVE FILE OWNER0 FMT #NAMMSG,P.FNAM ; AND FILE NAME TO BUFFERC BIT #F.ACP,.ABFLG(R5) ;IS THIS FCB ALLOCATED IN ACP INTERNAL AREA?U BEQ 60$ ;NO/ FMT #ACPMSG ;YES - PUT MARK IN PROPER COLUMNG BR 80$F,60$: BIT #F.FCM,.ABFLG(R5) ;FCB FROM FCPCOM? BEQ 70$ ;NO! FMT #FCMMSG ;YES - MARK COLUMNA BR 80$ %70$: FMT #SCMMSG ;MUST BE FROM SCOM ;80$: BIT #F.DIR,.ABFLG(R5) ;THIS FCB IN DIRECTORY LRU LIST?T BEQ 90$ ;NO! FMT #DIRMSG ;YES - MARK COLUMNE+90$: CALL FMTPUT ;WRITE OUT FINISHED LINER$ BR NEXTAB ;AND LOOP FOR NEXT FILE999$: POP  RETURNR .DSABL LSBC .PAGE1 .SBTTL PUTLIN & FMTPUT - MESSAGE OUTPUT ROUTINESC; I; THESE ROUTINES EITHER FORMAT AND PRINT MESSAGES, OR JUST PRINT ALREADY;F; FORMATTED MESSAGES. FORMATTING IS DONE BY SYSLIB ROUTINE '$EDMSG'.A; WE JUMP TO THE FCS ERROR ROUTINE IF WE ENCOUNTER A PUT$ ERROR.,;F/; PUTLIN IS CALLED FROM WITHIN A FORMAT MACRO.$;; ; INPUTS:*; R1=ADDR OF '$EDMSG' ASCIZ MESSAGE STRING$; R2=ADDR OF '$EDMSG' ARGUMENT BLOCK;B ; OUTPUTS:F; R1=LENGTH OF FORMATTED STRINGR0; R2=ADDRESS OF NEXT PARAMETER IN ARGUMENT BLOCK!; STRING IS FORMATTED AND PRINTEDC; .MCALL PUT$PUTLIN:I PUSH ' MOV #OUTBUF,R0 ;ADDR OF OUTPUT BUFFER;" CALL $EDMSG ;FORMAT THE MESSAGE. PUT$ #OUTFDB,#OUTBUF,R1 ;WRITE IT (R1=LENGTH) POP  BCS 10$ ;ERROR? RETURN ;NO - NORMAL RETURN.10$: TST (SP)+ ;YES - DISCARD RETURN ADDRESS& JMP FCSERR ;WRITE FCS ERROR MESSAGE;SI; FMTPUT MUST BE CALLED EXPLICITLY AFTER ASSEMBLING A STRING IN 'OUTBUF'N; BY MEANS OF FMT MACROS.;A ; INPUTS:-; 'OUTBUF' CONTAINS ALREADY FORMATTED MESSAGEM*; R0=ADDRESS OF NEXT FREE BYTE IN 'OUTBUF'; ; OUTPUTS:M!; R1=LENGTH OF STRING IN 'OUTBUF'E; STRING IS PRINTEDO;TFMTPUT:A0 MOV R0,R1 ;COMP00BNCS-TADATADATAUTE LENGTH OF STRING IN OUTBUF SUB #OUTBUF,R1S" PUT$ #OUTFDB,#OUTBUF,R1 ;WRITE IT BCS 10$ ;ERROR? RETURN ;NO - NORMAL RETURN.10$: TST (SP)+ ;YES - DISCARD RETURN ADDRESS& JMP FCSERR ;WRITE FCS ERROR MESSAGE .PAGE+ .SBTTL ADDQ - CREATE ENTRY AT END OF QUEUE ;TN; THIS ROUTINE ALLOCATES A VARIABLE-LENGTH BLOCK FROM DYNAMIC MEMORY AND ADDSI; IT TO THE END OF A QUEUE. IF THERE IS INSUFFICIENT DYNAMIC MEMORY, WEN; RETURN WITH CARRY SET. ;N ; INPUTS:; R3=SIZE OF BLOCK TO ALLOCATE ; R4=LISTHEADI;U ; OUTPUTS:U; R5=ADDR OF NEW ENTRY*; CARRY SET IF INSUFFICIENT DYNAMIC MEMORY;R; ALL REGISTERS PRESERVED;:ADDQ::* PUSH ;SAVE VOLATILE REGISTERS" MOV #HD.FRE,R0 ;SET UP FOR $RQCB MOV R3,R1 ;...C, CALL $RQCB ;GET A CHUNK OF DYNAMIC MEMORY( BCS 20$ ;NO SPACE - RETURN WITH C SET! MOV R0,R5 ;R5 = NEW ENTRY ADDRO%10$: CLRB (R0)+ ;CLEAR ENTIRE ENTRYC SOB R1,10$ ;.../ MOV 2(R4),R0 ;R0 = LAST ENTRY (PREVIOUS) ADDR % MOV R4,@R5 ;SET UP FORWARD POINTERH* MOV R5,@R0 ;FORWARD POINTER IN PREVIOUS MOV R0,2(R5) ;BACK POINTER( MOV R5,2(R4) ;BACK POINTER IN LISTHEAD CLC ;SET GOOD RETURN20$: POP I RETURNE .PAGE' .SBTTL DELQ - DELETE FIRST QUEUE ENTRY1;.J; THIS ROUTINE REMOVES THE FIRST (CURRENT) ENTRY FROM A QUEUE, RETURNS ITI; TO DYNAMIC MEMORY, AND MAKES THE NEXT ENTRY THE CURRENT ONE. CARRY ISE%; SET IF THE LAST ENTRY WAS REMOVED.;V ; INPUTS:; R3=SIZE OF QUEUE ENTRY; R4=ADDR OF LISTHEADS;U ; OUTPUTS:N=; R5=ADDR OF NEXT QUEUE ENTRY, OR ADDR OF LISTHEAD IF NO MORE &; C SET IF LAST ENTRY HAS BEEN REMOVED;R; ALL REGISTERS PRESERVED; DELQ::* PUSH ;SAVE VOLATILE REGISTERS* MOV @R4,R2 ;ADDR OF ENTRY TO BE DELETED' MOV (R2),R5 ;ADVANCE TO SECOND ENTRYE CMP R2,R4 ;LIST EMPTY?U' BEQ 10$ ;YES - DON'T DELETE LISTHEADH" MOV R5,@2(R2) ;NO - REMOVE FIRST MOV 2(R2),2(R5) ;..." MOV #HD.FRE,R0 ;SET UP FOR $RLCB MOV R3,R1 ;...E0 CALL $RLCB ;RETURN PREVIOUS TO DYNAMIC MEMORY810$: CMP R4,R5 ;IS QUEUE NOW EMPTY (CURRENT=LISTHEAD)?' BEQ 20$ ;YES - RETURN WITH CARRY SETV CLC ;NO - CLEAR CARRYE BR 30$ 20$: SEC30$: POP V RETURNE .END STARTV @R4,R2 ;ADDR OF ENTRY TO BE DELETED' MOV (R2),R5 ;ADVANCE TO SECOND ENTRYE CMP R2,R4 ;LIST EMPTY?U' BEQ 10$ ;YES - DON'T DELETE LISTHEADH" MOV R5,@2(R2) ;NO - REMOVE FIRST MOV 2(R2),2(R5) ;..." MOV #HD.FRE,R0 ;SET UP FOR $RLCB MOV R3,R1 ;...E0 CALL $RLCB ;RETURN PREVIOUS Tzw*N@D.s@<&@VNH<&Kq@p@:2@`@qH,f@:p@'@aVNHz$9~Z@&> H68@'@@?T@tz@y@X@}@ezC @T; z@m~'Ht~pH&VNH&M@zt @@hp!@ y X:~ZRh9wLh%Mqh &U(%12%12%12Pre-%N Accessed Ditrectories=%D%N **** Some Files Not Listed ****%N %12%18 %12<[%O,%O]%12>%18<%X%18>*%11S%12S%12S%12S*%11S%12S%12S%12S*%11S*%N **** Assign LUN Directive Error Code=%D ****%N **** QIO Directive Error Code=%D **** ***l* Read File Attributes QIO Error Code=%D, File ID=%D,%D ****%2N Total Free Space In FCPCOM=%D. Bytes%N Largest Hole In F00CVD[E\ݙ64CPCOM=%D. Bytes%N Total Size Of FCPCOM=%D. Bytes%N FCPCOM Utilization=%D%%2N Tabulated Data Structures Use %D. SCOM NodesCd.%N%NF11ACT -- **** Statistics File FCS Error Code=%D,%D ****l X: w*l  0 w  *# w=  zX X:68 X:,f&&M *X:.hp!4$9~Z6X:* X:Ftz@yHezC NX:`B  & & LP  & & & & & ffI  eA wD w@`F<&Kq xX:|`8*7+7h w~3&f5 4De !w ff pX:* X:X:+X: X: Zg@h X:$?T (X:*X:.X: 2X:~ NZg@ hZg@fX 7 t dowe we we 7? |s X: Zg@ X:(X:.X:2X:8X:FHD NNNNNN,MMMMMM WHERE;B; NNNNNN,MMMMMM IS THE FILES (UNIQUE) FILE ID (AVAILABLE BY A FULL; PIP OR SRD LISTING;;;;;& .MCALL QIOW$,DIR$,EXIT$S,GMCR$,FHDOF$1 .MCALL FDBDF$,CLOSE$,FSRSZ$,NMBLK$,FDRC$A,FDBK$A( .MCALL READ$,OPNS$R,WAIT$,FDOP$A,HMBOF$ FHDOF$ DEF$L HMBOF$ DEF$L;F;DEFINE BOGUS OFFSET TO FILENAME FROM DISK SINCE ITS A LOT OF CRANKING ;OTHERWISE F.FNAM=56O.PAGE .SBTTL THE CODEO;T;FIRST SET THINGS UP;*START: DIR$ #GETMCR ;GET MCR COMMAND LINE6 MOV #GETMCR+G.MCRB+4,R0 ;BUMP POINTER TO COMMAND PART' JSR PC,$COTB ;CONVERT FIRST FID NUMBERE! CMP R2,#', ;TERMINATED ON "," ? BNE 222$ ;BR IF NOTL* MOV R1,FID ;SAVE FIRST PART OF FILE ID #* JSR PC,$COTB ;NOW CONVERT 2ND PART OF FID- CMP R2,#15 ;TERMINATED ON A CARRIAGE RETURND BEQ 1$ ;IT'S OK CMP R2,#33 ;OR AN ESCAPE BEQ 1$ ;THAT'S OK TOOI,222$: JMP SYNTER ;ANYTHING ELSE IS AN ERROR 1$: MOV R1,FID+2 ;SAVE 2ND FID #FIRST:3 OPNS$R #FDB ;OPEN FILE (SHARED ACCESS, READ-ONLY)I BCC 5$ ;BR IF OK BR REAERR ;REPORT READ ERROR45$: MOV #2,BLOCKL ;SET UP BLOCK NUMBER OF HOME BLOCK. MOV #10000.,FDB+F.HIBK+2 ;FAKE A BLOCK NUMBER6 MOV #10000.,FDB+F.EFBK+2 ;AND AN ENDFILE BLOCK NUMBER5 ;CAUSE INDEX FILE HEADER HAS 0'S AND READ WILL BOMBE& READ$ #FDB,,,#BLOCKH ;READ HOME BLOCK BCS ROPERR ;BRANCH IF FAILURES! WAIT$ ;WAIT FOR READ TO FINISH$ BCS ROPERR ;BR IF FAILED6 ADD READBF+H.IBSZ,BLOCKL ;ADD NUMBER OF BITMAP BLOCKS2 MOV BLOCKL,OFFSET ;SAVE THIS OFFSET IF WE NEED IT) INC BLOCKL ;GET INDEX FILE HEADER BLOCKE3 READ$ #FDB,,,#BLOCKH ;READ INDEX FILE HEADER BLOCKO BCS ROPERR ;BRANCH IF FAILURE+! WAIT$ ;WAIT FOR READ TO FINISH. BCS ROPERR ;BR IF FAILED510$: CMP READBF+F.FNAM,INDRAD ;IS THIS THE INDEX FILER BNE ROPERR ;NO( CMP READBF+F.FNAM+2,EXFRAD ;FILE HEADER BNE ROPERR ;NO7 MOV FID,BLOCKL ;FIRST FILE ID IS BLOCK # IN INDEX FILER/ ADD OFFSET,BLOCKL ;ADD OFFSET PREVIOUSLY FOUNDN1 READ$ #FDB,,,#BLOCKH ;READ BLOCK N OF INDEX FILEI BCS ROPERRE WAIT$ ;WAIT FOR READE BCS ROPERRH+ JMP PRINT ;IF OK, PRINT FILE HEADER BLOCKE;I;H.PAGEL.SBTTL ERROR CONDITIONSH; ;L+ROPERR: ;READ ERROR WITH INDEX FILE OPENS CLOSE$ #FDB ;CLOSE IT OUTC;R&; ;FAILURE WITH INDEX FILE NOT OPEN%REAERR: ;FAILED TO READ INDEX FILEN MOV #READFA,ERRQIO+Q.IOPL MOV #READLN,ERRQIO+Q.IOPL+2( DIR$ #ERRQIO ;SEND ERROR MESSAGE TO TI JMP EXITE"SYNTER: ;SYNTAX OR BLOCK # ERROR( MOV #SYNERR,ERRQIO+Q.IOPL ;REPORT ERROR MOV #SYNELN,ERRQIO+Q.IOPL+2 DIR$ #ERRQIOREXIT: EXIT$S ;QUIT.PAGEI".SBTTL PRINT THE FILE HEADER BLOCK;IPRINT:3 MOV #READBF,R5 ;R5 ALWAYS POINTS TO START OF BLOCKE6 MOV #ARGBLK,R0 ;POINT R0 TO ARGUMENT BLOCK TO FILL IN- MOV H.FNUM(R5),(R0)+ ;PUT IN FILE ID NUMBERSN MOV H.FSEQ(R5),(R0)+ 0 MOVB H.IDOF(R5),R1 ;WORD OFFSET TO FILE ID AREA ASL R1 ;MAKE IT BYTE OFFSET $ ADD R5,R1 ;NOW POINTING AT ID AREA MOV (R1)+,(R0)+ ;FILL IN NAME MOV (R1)+,(R0)+ MOV (R1)+,(R0)+ MOV (R1)+,(R0)+ ;TYPE MOV (R1)+,(R0)+ ;AND VERSION & MOV #READBF,R4 ;START OF BUFFER IN R4+ ADD #H.PROJ,R4 ;BUMP TO GROUP CODE ADDRESS:0 MOV R4,(R0)+ ;FILL IN ADDRESS OF UIC BYTE VALUE DEC R4 ;BACK UP TO USER CODE MOV R4,(R0)+ ;AND FILL IN. MOV (R1)+,-(SP) ;SAVE REVISION NUMBER FOR NOW MOV #2.,R2 ;SET COUNT' ADD #13.,R1 ;BUMP R1 TO CREATION DATEI&11$: MOV R1,(R0)+ ;SAVE POIN00Gf[E\ݙ64TER TO DAY ADD #2,R1 MOV R1,(R0)+ ;AND MONTH ADD #3,R1 MOV R1,(R0)+ ;AND YEAR( ADD #2,R1 MOV R1,(R0)+ ;AND HOUR1 ADD #2,R1 MOV R1,(R0)+ ;AND MINUTEE ADD #2,R1 MOV R1,(R0)+ ;AND SECONDR ADD #2,R1) SUB #26.,R1 ;BUMP BACK TO REVISION DATEM SOB R2,11$F, MOV (SP)+,(R0)+ ;AND PUT IN REVISION NUMBER MOV #OUTBLK,R0 ;SET UP CALL MOV #MESS1,R1 ;TO EDSMG MOV #ARGBLK,R2V JSR PC,$EDMSG. MOV R1,ERRQIO+Q.IOPL+2 ;FILL IN LENGTH OF QIO% MOV #OUTBLK,ERRQIO+Q.IOPL ;AND STARTR DIR$ #ERRQIO ;WRITE LINE MOV #OUTBLK,R0 ;SET UP AGAINN MOV #MESS2,R1 MOV #ARGBL1,R2D JSR PC,$EDMSG MOV R1,ERRQIO+Q.IOPL+2U MOV #OUTBLK,ERRQIO+Q.IOPL DIR$ #ERRQIO.PAGE,.SBTTL PRINT RETRIEVAL POINTERSA$RETR: ;NOW GET RETRIEVAL POINTERS& MOV #READBF,R5 ;POINT TO BUFFER AGAIN, MOVB H.MPOF(R5),R4 ;WORD OFFSET TO MAP AREA ASL R4 ;MAKE IT BYTE OFFSET,# ADD R5,R4 ;NOW POINTS AT MAP AREAP, MOV M.EFNU(R4),EFID ;SAVE EXTENSION FILE ID+ MOV M.EFSQ(R4),EFID+2 ;AND SEQUENCE NUMBERT5 MOVB M.USE(R4),R5 ;LOOP COUNT FOR RETRIEVAL POINTERSU. BIC #177400,R5 ;CLEAR POSSIBLE SIGN EXTENSION ASR R5 ;NOW HAVE # OF POINTERS& BEQ DONE ;SKIP THIS IF 0 LENGTH FILE+ ADD #M.RTRV,R4 ;R4 POINTS AT FIRST POINTERR'22$: MOV #ARGBLK,R0 ;POINT TO ARG BLOCK% MOVB (R4)+,R2 ;GET HIGH BLOCK NUMBER MOVB (R4)+,R3 ;GET SIZE+ BIC #177400,R3 ;CLEAR POSSIBLE SIGN EXTENDF INC R3 ;CORRECT SIZE MOV R3,(R0)+ ;PUT IN SIZE- MOV #DOTTAB,(R0)+ ;ADDRESS OF "." STRINGS, MOV R2,(R0)+ ;PUT HIGH BLOCK # IN ARG BLOCK- DEC R3 ;CHANGE SIZE TO OFFSET TO LAST BLOCKB# ADD (R4),R3 ;MAKE R3 LAST BLOCK #T5 ADC R2 ;ADD CARRY TO HIGH BLOCK NUMBER JUST IN CASEK) MOV (R4)+,(R0)+ ;PUT IN LOW BLOCK NUMBERR# MOV #TAB,(R0)+ ;PUT IN "" ONLY#2 MOV R2,(R0)+ ;PUT IN LAST BLOCK HIGH BLOCK NUMBER. MOV R3,(R0)+ ;AND LAST BLOCK LOW BLOCK NUMBER! MOV #ARGBLK,R2 ;POINT BACK AGAINE MOV #MESS3,R1 ;MESSAGE AREA MOV #OUTBLK,R0P JSR PC,$EDMSG MOV R1,ERRQIO+Q.IOPL+2F) DIR$ #ERRQIO ;WRITE A RETRIEVAL POINTERL SOB R5,22$ ;AND DO N OF THEM) TST EFID ;WAS THERE AN EXTENSION FILE ?4 BEQ DONE ;NO7 MOV EFID,BLOCKL ;CHANGE TO EXTENSION FILE BLOCK NUMBERS/ ADD OFFSET,BLOCKL ;ADD OFFSET PREVIOUSLY FOUNDM1 READ$ #FDB,,,#BLOCKH ;READ BLOCK N OF INDEX FILE, BCC 12$ ;OKA JMP ROPERR 12$: WAIT$ ;WAIT FOR READA BCC 13$ ;OKO JMP ROPERRR,13$: MOV #OUTBLK,R0 ;MASSAGE THE OUTPUT LINE MOV #MESS4,R1 MOV #EFID,R2B JSR PC,$EDMSG& MOV R1,ERRQIO+Q.IOPL+2 ;UPDATE LENGTH, DIR$ #ERRQIO ;REPORT EXTENSION FILE HEADER JMP RETR ;AND DO MORETDONE: MOV #FINMES,ERRQIO+Q.IOPLF MOV #FINLEN,ERRQIO+Q.IOPL+2& DIR$ #ERRQIO ;WRITE FINAL LF MESSAGE CLOSE$ #FDB ;CLOSE INDEX FILED JMP EXIT ;AND WE'RE DONE.PAGE#.SBTTL DATA AREAS ;C ;GET MCR DPB;, GETMCR: GMCR$A;J;R;QIO FOR MESSAGES TO TIT;R$ERRQIO: QIOW$ IO.WVB,5,1,,,,<0,0,40>;:;NOW POSSIBLE MESSAGES;E)SYNERR: .ASCII /*** FHD SYNTAX ERROR ***/B SYNELN=.-SYNERR .EVEN;Q;Q7READFA: .ASCII /*** FHD FAILED TO FIND FILE HEADER ***/F READLN=.-READFA .EVEN;OFINMES: .BYTE 12,12N FINLEN=.-FINMES;M;MISC VARIABLES+;OINDRAD: .RAD50 /IND/EXFRAD: .RAD50 /EXF/;C*READBF: .BLKB 1000 ;ONE BLOCK READ BUFFER; ;OFFSET: .WORD 0 ;OFFSET TO INDEX FILE HEADER OF INDEX FILE;M$FID: .WORD 0,0 ;SAVE FILE ID'S HERE;T*EFID: .WORD 0,0 ;EXTENSION FILE ID'S HERE.PAGEN.SBTTL FCS DATA AREASE;Y;DATASET DESCRIPTOR ;T)DSPT: .WORD DEVLEN,DEV ;DEVICE DESCRIPTORQ' .WORD UICLEN,UIC ;DIRECTORY DESCRIPTORI# .WORD NAMELN,NAME ;NAME DESCRIPTORA;.DEV: .ASCII /SY0:/ DEVLEN=.-DEVN .EVEN;SUIC: .ASCII /[0,0]/+ UICLEN=.-UICR .EVEN;NAME: .ASCII /INDEXF.SYS;1/D NAMELN=.-NAME .EVEN;R; ;FCS STATUS BLOCK ;RSTATUS: .WORD 0,0E;I;2-WORD BLOCK DESTRIPTOR;BLOCKH: .WORD 0SBLOCKL: .WORD 0E;T;F FSRSZ$ 1 ;ROOM FOR 1 FILEFDB: FDBDF$ ;DEFINE FDB' FDRC$A FD.RWM!FD.RAN ;USE BLOCK READS0 FDOP$A 2,DSPT ;USE LUN 2, DSPT DESCRIBES FILEA FDBK$A READBF,1000,,,STATUS ;DEFINE BUFFER, SIZE AND STATUS AREAS.PAGEA.SBT00GnHpItJu-TADATADATATL EDMSG DATA AREAS;V1MESS1: .ASCII /%2NFILE HEADER BLOCK FOR (%P,%P) /E .ASCIZ /%X OWNED BY [%B,%B]%2N/ .EVEN7MESS2: .ASCII /CREATED ON %2A-%3A-%2A AT %2A:%2A:%2A%N/C; .ASCII /REVISED ON %2A-%3A-%2A AT %2A:%2A:%2A REV. %P%2N/& .ASCII /LIST OF RETRIEVAL POINTERS%N/* .ASCIZ /%NBLOCKS FIRST LAST%N/ .EVENEMESS3: .ASCIZ /%M%2A%M,%P%A%M,%P/ ;SIZE,"." FIRST BL LAST BLS .EVEN3MESS4: .ASCIZ /%NFILE HEADER EXTENDED IN (%P,%P)%N/E .EVENDOTTAB: .ASCII /./TAB: .ASCII / /S .EVEN>ARGBLK: .BLKW 9. ;ROOM FOR FID,UIC,NAME,TYPE,VERS & OWNER UIC!ARGBL1: .BLKW 30. ;ROOM FOR REST];/,OUTBLK: .BLKB 1000 ;OUTPUT BUFFER FOR EDMSG;T .END STARTN/C; .ASCII /REVISED ON %2A-%3A-%2A AT %2A:%2A:%2A REV. %P%2N/& .ASCII /LIST OF RETRIEVAL POINTERS%N/* .ASCIZ /%NBLOCKS FIRST LAST%N/ .EVENEMESS3: .ASCIZ /%M%2A%M,%P%A%M,%P/ ;SIZE,"." FIRST BL LAST BLS .EVEN3MESS4: .ASCIZ /%NFILE HEADER EXTENDED IN (%P,%P)%N/E .EVENDOTTAB: .ASCII /./TAB: .ASCII / /S*&TOL%x@<&p@*<&%t@' q@:2@GP}@?T@*`@p@hp!@ձ@`;@(8 y( * , w:   GP}GP}*&ww$# X:'%x' q hp!*L<':4e6 = $ձ*r:m 4e`;*6 $ !-- ձ`;*m4e6   "ձ(`;*w6 $& w `$ *  3PPP P *0A AaPPPPPPe  fP*Ve PePePePePePe*|~8 wn8f8?T$8*8 wN8F  8?T8$*PD Da7~7zE Pe P*E  cB $*8 wa "* 8?T*:Fm@4e6 w$ձ*` w~8V w`;8V?T&(w<Jvr wr) J `*  *** FHD SYNTAX ERROR:2*  ****** FHD FAILED TO FIND FILE HEADERF *** t:#P#Pfj pSY0:[0,0]fjpppINDEXF.SYS;1<&%t<&p Z ZP P| |*%2NFILE HEADER BLOCK FOR (%P,%P) %X OW* NED BY [%B,%B]%2NCREATED ON %2A-%3A-%*02A AT %2A:%2A:%2A%NREVISED ON %2A-%3A-*V%2A AT %2A:%2A:%2A REV. %P%2NLIST OF *|RETRIEVAL POINTERS%N%NBLOCKS FIRST  LAST%N**%M%2A%M,%P%A%M,%P%NFILE HEADER EXTENDED IN (%P,%P)%N.  pSY0:[0,0]fjpppINDEXF.SYS;1FHX/-FP/PR,FHX/-SP=FHX/ TASK=...FHXLIBR=SYSRES:ROASG=SY:2// .TITLE FHXN .IDENT /MRHV01/ .SBTTL INTRO PAGE;E?; THIS PROGRAM IS DESIGNED TO LIST OUT THE FILE HEADER BLOCK OFUA; ANY FILE THAT HAS EXTENSION HEADERS, TO AID IN FINDING PROBLEMS ?; THAT CAUSE DSC TO BOMB WITH "ID,SEQUENCE NUMBER CHECK" ERRORSS; ;CALLING PROCEEDURE ; ;,;MCR>FHD;I;%;W; ;[;%& .MCALL QIOW$,DIR$,EXIT$S,GMCR$,FHDOF$1 .MCALL FDBDF$,CLOSE$,FSRSZ$,NMBLK$,FDRC$A,FDBK$AO( .MCALL READ$,OPNS$R,WAIT$,FDOP$A,HMBOF$ FHDOF$ DEF$L HMBOF$ DEF$L; F;DEFINE BOGUS OFFSET00Jv[E\ݙ64 TO FILENAME FROM DISK SINCE ITS A LOT OF CRANKING ;OTHERWISE F.FNAM=56I.PAGEN.SBTTL THE CODEE;L;FIRST SET THINGS UP; *START: DIR$ #GETMCR ;GET MCR COMMAND LINEFIRST:3 OPNS$R #FDB ;OPEN FILE (SHARED ACCESS, READ-ONLY)N BCC 5$ ;BR IF OK BR REAERR ;REPORT READ ERROR45$: MOV #2,BLOCKL ;SET UP BLOCK NUMBER OF HOME BLOCK. MOV #10000.,FDB+F.HIBK+2 ;FAKE A BLOCK NUMBER6 MOV #10000.,FDB+F.EFBK+2 ;AND AN ENDFILE BLOCK NUMBER5 ;CAUSE INDEX FILE HEADER HAS 0'S AND READ WILL BOMBO& READ$ #FDB,,,#BLOCKH ;READ HOME BLOCK BCS ROPERR ;BRANCH IF FAILURE! WAIT$ ;WAIT FOR READ TO FINISHE BCS ROPERR ;BR IF FAILED6 ADD READBF+H.IBSZ,BLOCKL ;ADD NUMBER OF BITMAP BLOCKS2 MOV BLOCKL,OFFSET ;SAVE THIS OFFSET IF WE NEED IT) INC BLOCKL ;GET INDEX FILE HEADER BLOCKE3 READ$ #FDB,,,#BLOCKH ;READ INDEX FILE HEADER BLOCKO BCS ROPERR ;BRANCH IF FAILURE+! WAIT$ ;WAIT FOR READ TO FINISH. BCS ROPERR ;BR IF FAILED510$: CMP READBF+F.FNAM,INDRAD ;IS THIS THE INDEX FILER BNE ROPERR ;NO( CMP READBF+F.FNAM+2,EXFRAD ;FILE HEADER BNE ROPERR ;NO8; MOV FID,BLOCKL ;FIRST FILE ID IS BLOCK # IN INDEX FILE CLR BLOCKL ;START AT BLOCK 0/ ADD OFFSET,BLOCKL ;ADD OFFSET PREVIOUSLY FOUNDO533$: READ$ #FDB,,,#BLOCKH ;READ BLOCK N OF INDEX FILE BCS ROPERRI WAIT$ ;WAIT FOR READ# BCS ROPERR & TST READBF+136 ;EXTENSION FILE HEADER BEQ 34$ ;DONT PRINT IF NOT- JSR PC,PRINT ;IF OK, PRINT FILE HEADER BLOCKR 34$: INC BLOCKL ;GET NEXT BLOCK BR 33$I;H;T.PAGEX.SBTTL ERROR CONDITIONS;P;A+ROPERR: ;READ ERROR WITH INDEX FILE OPEN  ;JUST END OF FILE; CLOSE$ #FDB ;CLOSE IT OUTN; &; ;FAILURE WITH INDEX FILE NOT OPEN%REAERR: ;FAILED TO READ INDEX FILE  MOV #READOV,ERRQIO+Q.IOPL MOV #READLN,ERRQIO+Q.IOPL+2( DIR$ #ERRQIO ;SEND ERROR MESSAGE TO TI JMP EXITP"SYNTER: ;SYNTAX OR BLOCK # ERROR( MOV #SYNERR,ERRQIO+Q.IOPL ;REPORT ERROR MOV #SYNELN,ERRQIO+Q.IOPL+2 DIR$ #ERRQIOEXIT: EXIT$S ;QUIT.PAGEO".SBTTL PRINT THE FILE HEADER BLOCK;RPRINT:3 MOV #READBF,R5 ;R5 ALWAYS POINTS TO START OF BLOCKE6 MOV #ARGBLK,R0 ;POINT R0 TO ARGUMENT BLOCK TO FILL IN- MOV H.FNUM(R5),(R0)+ ;PUT IN FILE ID NUMBERSN MOV H.FSEQ(R5),(R0)+ 0 MOVB H.IDOF(R5),R1 ;WORD OFFSET TO FILE ID AREA ASL R1 ;MAKE IT BYTE OFFSET $ ADD R5,R1 ;NOW POINTING AT ID AREA MOV (R1)+,(R0)+ ;FILL IN NAME MOV (R1)+,(R0)+ MOV (R1)+,(R0)+ MOV (R1)+,(R0)+ ;TYPE MOV (R1)+,(R0)+ ;AND VERSION & MOV #READBF,R4 ;START OF BUFFER IN R4+ ADD #H.PROJ,R4 ;BUMP TO GROUP CODE ADDRESS:0 MOV R4,(R0)+ ;FILL IN ADDRESS OF UIC BYTE VALUE DEC R4 ;BACK UP TO USER CODE MOV R4,(R0)+ ;AND FILL IN. MOV (R1)+,-(SP) ;SAVE REVISION NUMBER FOR NOW MOV #2.,R2 ;SET COUNT' ADD #13.,R1 ;BUMP R1 TO CREATION DATEI&11$: MOV R1,(R0)+ ;SAVE POINTER TO DAY ADD #2,R1 MOV R1,(R0)+ ;AND MONTH ADD #3,R1 MOV R1,(R0)+ ;AND YEAR( ADD #2,R1 MOV R1,(R0)+ ;AND HOUR1 ADD #2,R1 MOV R1,(R0)+ ;AND MINUTEE ADD #2,R1 MOV R1,(R0)+ ;AND SECONDR ADD #2,R1) SUB #26.,R1 ;BUMP BACK TO REVISION DATEM SOB R2,11$F, MOV (SP)+,(R0)+ ;AND PUT IN REVISION NUMBER MOV #OUTBLK,R0 ;SET UP CALL MOV #MESS1,R1 ;TO EDSMG MOV #ARGBLK,R2V JSR PC,$EDMSG. MOV R1,ERRQIO+Q.IOPL+2 ;FILL IN LENGTH OF QIO% MOV #OUTBLK,ERRQIO+Q.IOPL ;AND STARTR DIR$ #ERRQIO ;WRITE LINE MOV #OUTBLK,R0 ;SET UP AGAINN MOV #MESS2,R1 MOV #ARGBL1,R2D JSR PC,$EDMSG MOV R1,ERRQIO+Q.IOPL+2U MOV #OUTBLK,ERRQIO+Q.IOPL DIR$ #ERRQIO RTS PC1.PAGER.SBTTL DATA AREASR;A ;GET MCR DPB;6 GETMCR: GMCR$K; ;I;QIO FOR MESSAGES TO TI;V$ERRQIO: QIOW$ IO.WVB,5,1,,,,<0,0,40>;;NOW POSSIBLE MESSAGES;L)SYNERR: .ASCII /*** FHD SYNTAX ERROR ***/V SYNELN=.-SYNERR .EVEN;Q;Q.READOV: .ASCII /*** FHX END OF INDEX FILE ***/ READLN=.-READOV .EVEN; FINMES: .BYTE 12,12 FINLEN=.-FINMES;U;MISC VARIABLESE;,INDRAD: .RAD50 /IND/EXFRAD: .RAD50 /EXF/;R*READBF: .BLKB 1000 ;ONE BLOCK READ BUFFER;R;OFFSET: .WORD 0 ;OFFSET TO INDEX FILE HEADER OF INDEX FILER;B$FID: .WORD 0,0 ;SAVE FILE ID'S HERE;S*00J~KLM-TADATADATAEFID: .WORD 0,0 ;EXTENSION FILE ID'S HERE.PAGE4.SBTTL FCS DATA AREASE;G;DATASET DESCRIPTORI;*)DSPT: .WORD DEVLEN,DEV ;DEVICE DESCRIPTOR' .WORD UICLEN,UIC ;DIRECTORY DESCRIPTORN# .WORD NAMELN,NAME ;NAME DESCRIPTORV;.DEV: .ASCII /SY0:/ DEVLEN=.-DEVN .EVEN;SUIC: .ASCII /[0,0]/E UICLEN=.-UICR .EVEN;NAME: .ASCII /INDEXF.SYS;1/D NAMELN=.-NAME .EVEN;R; ;FCS STATUS BLOCK ;RSTATUS: .WORD 0,0E;I;2-WORD BLOCK DESTRIPTOR;BLOCKH: .WORD 0SBLOCKL: .WORD 0E;S;F FSRSZ$ 1 ;ROOM FOR 1 FILEFDB: FDBDF$ ;DEFINE FDB' FDRC$A FD.RWM!FD.RAN ;USE BLOCK READS0 FDOP$A 2,DSPT ;USE LUN 2, DSPT DESCRIBES FILEA FDBK$A READBF,1000,,,STATUS ;DEFINE BUFFER, SIZE AND STATUS AREAS.PAGEV.SBTTL EDMSG DATA AREAS;V1MESS1: .ASCII /%2NFILE HEADER BLOCK FOR (%P,%P) /E .ASCIZ /%X OWNED BY [%B,%B]%2N/ .EVEN7MESS2: .ASCII /CREATED ON %2A-%3A-%2A AT %2A:%2A:%2A%N/C; .ASCII /REVISED ON %2A-%3A-%2A AT %2A:%2A:%2A REV. %P%2N/ .ASCIZ / /  .EVENDOTTAB: .ASCII /./TAB: .ASCII / /O .EVEN>ARGBLK: .BLKW 9. ;ROOM FOR FID,UIC,NAME,TYPE,VERS & OWNER UIC!ARGBL1: .BLKW 30. ;ROOM FOR RESTU;,,OUTBLK: .BLKB 1000 ;OUTPUT BUFFER FOR EDMSG;S .END STARTER, SIZE AND STATUS AREAS.PAGEV.SBTTL EDMSG DATA AREAS;V1MESS1: .ASCII /%2NFILE HEADER BLOCK FOR (%P,%P) /E .ASCIZ /%X OWNED BY [%B,%B]%2N/ .EVEN7MESS2: .ASCII /CREATED ON %2A-%3A-%2A AT %2A:%2A:%2A%N/C; .ASCII /REVISED ON %2A-%3A-%2A AT %2A:%2A:%2A REV. %P%2N/ .ASCIZ / /  .EVENDOTTAB: .ASCII /*&TOL%x@<&p@*<&%t@' q@:2@?T@`@*p@hp!@ձ@`;@(y( *|# ]\'^ |%x' q hp!*&'\|x4e6 B ? |x ձ&`;*Lm($ |x4e6 |x*r ) &-"-7 mձ `;*|x4e6  | xձ"`;* < | $.*|`$&*w 3HpP "H&p* PA AaPPPPPHe  H*0fe PePePePePe*VPe~p wp"?T*| wnf  ?T$ ) *  *** FHD SYNTAX ERROR:2%  ****** FHX END OF INDEX FILE ***B B t:#H#H^b hSY0:[0,0]^bhhhINDEXF.SYS;1<&%t<&p R RH Ht t*%2NFILE HEADER BLOCK FOR (%P,%P) %X OW*NED BY [%B,%B]%2NCREATED ON %2A-%3A-%*(2A AT %2A:%2A:%2A%NREVISED ON %2A-%3A-&N%2A AT %2A:%2A:%2A REV. %P%2N . *  *** FHD SYNTAX ERROR:2%  ****** FHX END OF INDEX FILE ***B B t:#H#H-FLB/PR,FILES/CR/-SP=FILES,LB:[1,1]EXEC.STB/SS/ TASK=...FLB//-26<; HWG001 -- PUT IN A CLOSE OUTPUT FILE TO ELIMINATE ANNOYING.; "TERMINATED WITH I/O IN PROGRESS" MESSAGE;B; FRB001 -- UNDER IAS, NUMBER OF BLOCKS NOT IN CW2 AND CW3, SEARCH!; PUD TO FIND IN PUD EXTENSION;-613,617750$: ;DO PUD SEARCH UNDER IAS, SIZE NOT HERE ;FRB001' MOV R0,-(SP) ;SAVE REGISTER ;FRB001 MOV .PUDBA,R0 ;FRB0014554$: CMP (R0),ARGBLK ;FOUND SAME DEVICE ? ;FRB001 BNE 555$ ;BR IF NOT ;FRB0010 CMP 2(R0),ARGBLK+2 ;CHECK UNIT NUMBER ;FRB001 BEQ00MNOݙ64 556$ ;FOUND IT ;FRB001A/555$: ADD #U.SZ,R0 ;BUMP TO NEXT UNIT ;FRB001E% CMP R0,.PUDEA ;END OF PUD ;FRB001& BLT 554$ ;TRY AGAIN IF NOT ;FRB001# BR 559$ ;SKIP IF ERROR ;FRB001P1556$: MOV U.LBH(R0),SIZE ;FILL IN SIZE ;FRB001 " MOV U.LBN(R0),SIZE+2; ;FRB001.559$: MOV (SP)+,R0 ;RESTORE REGISTER ;FRB001 -1067,1067CEXIT: CLOSE$ #OUTFDB,FCSERR ;CLOSE THE FILE BEFORE LEAVING ;HWG001 " CLOSE$ #INFDB,FCSERR ;HWG001% EXIT$S ;EXIT THE PROGRAM ;HWG001 /BER ;FRB001 BEQ2************************************************** 1) FILES.MAC;1K 27 ; Version V1.0B John Miller Sanders Associates, Inc. 22-Jul-82*************** 2) FILES.MAC;12D 27 ; HWG001 -- PUT IN A CLOSE OUTPUT FILE TO ELIMINATE ANNOYING6 28 ; "TERMINATED WITH I/O IN PROGRESS" MESSAGE 29 ;J 30 ; FRB001 -- UNDER IAS, NUMBER OF BLOCKS NOT IN CW2 AND CW3, SEARCH) 31 ; PUD TO FIND IN PUD EXTENSION 32 ;K 33 ; Version V1.0B John Miller Sanders Associates, Inc. 22-Jul-82*2************************************************** 1) FILES.MAC;11I 613 50$: MOV CW2,SIZE+0 ;RETRIEVE NUMBER OF BLOCKS ON DEVICE ;JBF001 7 614 MOV CW3,SIZE+2 ; DP ;**-1UG 615 60$: BIC #177400,SIZE ;MASK OUT ANY HIGH BYTE GARBAGE ;JBF003S***************  2) FILES.MAC;12? 619 50$: ;DO PUD SEARCH UNDER IAS, SIZE NOT HERE ;FRB0013/ 620 MOV R0,-(SP) ;SAVE REGISTER ;FRB001# 621 MOV .PUDBA,R0 ;FRB001l< 622 554$: CMP (R0),ARGBLK ;FOUND SAME DEVICE ? ;FRB001( 623 BNE 555$ ;BR IF NOT ;FRB0018 624 CMP 2(R0),ARGBLK+2 ;CHECK UNIT NUMBER ;FRB001' 625 BEQ 556$ ;FOUND IT ;FRB001 7 626 555$: ADD #U.SZ,R0 ;BUMP TO NEXT UNIT ;FRB001B- 627 CMP R0,.PUDEA ;END OF PUD ;FRB001 . 628 BLT 554$ ;TRY AGAIN IF NOT ;FRB001+ 629 BR 559$ ;SKIP IF ERROR ;FRB001I9 630 556$: MOV U.LBH(R0),SIZE ;FILL IN SIZE ;FRB001 * 631 MOV U.LBN(R0),SIZE+2; ;FRB0016 632 559$: MOV (SP)+,R0 ;RESTORE REGISTER ;FRB001G 633 60$: BIC #177400,SIZE ;MASK OUT ANY HIGH BYTE GARBAGE ;JBF003A2************************************************** 1) FILES.MAC;1F9 1067 EXIT: EXIT$S ;EXIT THE PROGRAMB 1068 .PAGEP***************  2) FILES.MAC;12K 1085 EXIT: CLOSE$ #OUTFDB,FCSERR ;CLOSE THE FILE BEFORE LEAVING ;HWG001F* 1086 CLOSE$ #INFDB,FCSERR ;HWG001- 1087 EXIT$S ;EXIT THE PROGRAM ;HWG001S 1088 .PAGE3"FILES.DIF=FILES.MAC;1,FILES.MAC;12STER ;FRB001G 633 60$: BIC #177400,SIZE ;MASK OUT ANY HIGH BYTE GARBAGE ;JBF003A2************************************************** 1) FILES.MAC;1F9 1067 EXIT: EXIT$S ;EXIT THE PROGRAMB 1068 .PAGEP***************  2) FILES.MAC;12K 1085 EXIT: CLOSE$ #OUTFDB,FCSERR ;CLOSE THE FILE BEFORE LEAVING ;HWG001F* 1086 CLOSE$ #INFDB,FCSERR ;HWG001- 1087 EXIT$S ;EXIT THE PROGRAM ;HWG001S 1088 .PAGE3"FILES.DIF=FI      . Find Logical Blocks  3 A Contiguous Block Identification Utilitys          # 15-FEB-81c( (Revised 19-JUN-81)          ( J. Bradley Flippin+ Raytheon Service Companyi3 2341 Jefferson Davis Highway (Suite 1200) + Arlington, Virginia 22202h) Phone (703) 685-2200  = FLB --- A contiguous block utility program PAGE 2  Program Description  Background: = Disk cartridges and packs are structured into tracks = and sectors. these sectors, each of which contains a block = (or partial block) of data, are used by the operating systeml= to store files. Under RSX-11M, this file structure is known = as FILES-11 and consists of one (or more) header blocks and = any number of associated data blocks. The data block00OLM-TADATADATAs are6= assigned by the FILES-11 Auxiliary Control Processor < (F11ACP) to the respective header by means of map pointers. = Basically, as the system needs blocks, they are allo-= cated in a systematic way: Always from the bottom up! This= process continues until the file is full. Deleting files= results in the de-allocation of the respective blocks as in-= dicated in the file header's map area. This makes them ava-= ilable for the next user. As time progresses, it can be= seen that the disk can become a "shotgun" of randomly as-= signed data blocks. This fragmentation may eventually have = an adverse affect, particularly when a task requires large= blocks of contiguous space, such as SORT which requires them for its working files.l = The scattered blocks can be consolidated (or com-o= pressed) by using the Disk Save and Compress (DSC) utility.'= However, this requires that the disk be copied to anothere= media and then re-built on the original media. If tape iso= used, or only a few files are destroying the contiguous = space, then a faster way would be to free up the contiguousl= space by moving the guilty files. This would require,= searching every header and then searching all its map po- = inters to see if any of their data blocks are in the affect-o= ed area. This is a long and difficult manual process.'2 FLB, however, will find the guilty files for you.  BITMAP.SYS: = The one system file which holds the key to which blocksn= are in use (allocated) and which are available for use ise= BITMAP.SYS which is located in the null directory [0,0]. Itm= is a file in itself. It has a header which maps one Storage = Control Block (SCB) and "n" bitmap blocks, each capable ofs= "mapping" 4096 decimal blocks. Thus, the floppies (RX02) = use one bitmap block where the RK07 has 14 bitmap blockse/ (not counting the SCB which is always VBN #1).B = To use the FLB utility, all one needs to do is dumpi= BITMAP.SYS and use it as a roadmap to find and identify thef= desired blocks. The space is freed by the simple process of[= moving them. The F11ACP always assigns the new blocksn= starting at the lowest numbered blocks. This effectivelya= moves the files to the front of the device, unless, ofi  = FLB --- A contiguous block utility program PAGE 3e Program Description  $ course, the device is already full.  " Assembling and Task Building FLB: ; Building FLB is relatively straight forward. The 1 source media should contain the following files:i 3 1. FILES.MAC;1 dated 15-FEB-81 (Source file)s 0 2. FILES.COR (The latest correction file) 3 3. FILES.CMD (A command file to build FILES)  8 4. MOVE.CMD (A command file to move guilty files) - 5. FILES.DOC (This documentation file) = 6. COPY.CMD (A command file to make copies of the source media)a  = To build FLB, simply copy the source to your mediaa= with @COPY then run @FILES. The file will ask whether or= not you want a listing. If yes, it will put FILES.LST on = SY:. When installed, the task will have the name "...FLB".I    = FLB --- A contiguous block utility program PAGE 4e Program Description   How to Use FLB: = The following procedure is recommended (all numbers are # octal unless otherwise indicated):  1 1. The device in question must be mounted.y = 2. Determine the free space available by using PIP.e= Enter: PIP DM:/FR (or FREE, if TDX is installed).t= If the number of free blocks exceeds by a large am-l= ount the number of contiguous free blocks, thenu= FLB will be of some help. If not, then movingn= the files may simply move them to higher blocks numbers. = 3. Dump the bitmap 00OOݙ64by entering: DMP # BITMAP=DM:[0,0]BITMAP.SYS = 4. Examine the bitmap dump, looking for the largest= grouping of "1" bits (ie: l777777 indicates all 16? decimal blocks represented by that word are avail- = able). Generally, these will be towards the end of = the device. Note that the last block generally = shows a large portion of allocated blocks towards = the end. This is because most devices do not have 6 an integral multiple of 4096 decimal blocks. = 5. FLB can now be used to identify the desireds= files. Simply enter the search parameters by means1= of input switches. Figure 1 shows a sample output.l= the following are examples of various command lined inputs:  = 1. Show all files containing blocks in virtuala, block number 15 of BITMAP.SYS: - FLB TI:=DM:/BLK:15:15  = 2. Print a listing of the file using a specific= LBN (ie: 4200)-(Note that the /LBN switche) utilizes double precision):c 5 FLB LP:=DM:/LBN:0:4200:0:4200e = 3. Spool a file "FILES.LST" on SY: listing allf= files represented by the 16 bits of word 10 ofh BITMAP VBN 15: 3 FLB =DM:/BLK:15:15/WD:10:10. = 4. Search the BITMAP starting with block 15 and 1 extending to the end of the device:i   = FLB --- A contiguous block utility program PAGE 5  Program Description  * FLB TI:=DM:/BLK:15 = 5. Search the BITMAP to the end of the deviceo* starting at a specific word: 0 FLB TI:=DM:/BLK:15/WD:20  = 6. The affected files can now be moved. Go to the0= proper directory (UIC) and use PIP = /NV/CD=filename.type;ver. Be sure to use the spec- = ific file version. Once the file has been moved, = the specific version can then be deleted (The same = thing can be accomplished by using the MOVE command  file).   = FLB --- A contiguous block utility program PAGE 6  Program Description  Problems: ; Problems may be encountered during the use of FLB. = Usually then can be resolved. The following are a few exam- ; ples (references are to the Utility Manual [AA-H268A-TC]):  = 1. All headers may not be listed in a UFD. This is = evident when a filename.type;version cannot be = found with PIP [*,*]. Solution: Run VFY with the = /LO switch (see Section 13.3.5). This will find = the "lost" file(s) and place them in the lost files = directory [1,3] where they can be properly deleted.  = 2. All blocks may not be mapped to a header. This isr= evident when files does not list a culpret, but the = bit is shown as set in the BITMAP.SYS Dump. = Solution; Run VFY with the /RE switch (See Section  13.3.7).  = 3. Finally, it may be a bad block. This is evidenti= when the FILES listing contains [1,1]BADBLK.SYS asp= one of the first entries (headers are serached inh= sequence - BADBLK.SYS is header number 3). Do notn= confuse "last track" protection provided to lastl= track devices (ie: RK06/7, RL01/02, and RM02/03) = with actual bad blocks. This can be verified byV= dumping the header of BADBLK.SYS. The first entry = in the map area will show blocks mapped at the end,i= then the actual bad blocks are mapped individually.p= (See Section 9.3.1.2). If it is a bad block, thereh3 is no solution, except to get a new disk.)   = FLB --- A c00OLM-TADATADATAontiguous block utility program PAGE 7 Program Description   Notes:  = 1. Remember, all UIC's in the FLB listing are those = of the OWNER. Generally this will also be the di-.= rectory in which they are listed. If not, thenm= search for them using a wildcard PIP command (ie:p% PIP [*,*]filename,type;ver.i = 2. Special conditions apply to UFD's because the Filen= ID is contained in the MFD. A UFD is identified by = a filespec similar to: DM0:[001,001]007007.DIR;1.' The proper procedure here is:   = 1. Move any files in the UFD to another UFD (usinge) the /CD switch if desired).  5 2. Delete the files from the original UFD.  = 3. Delete the UFD (ie: PIP [0,0]007007.DIR;*/DE).  = 4. Create a new UFD with the same UIC (ie: UFDp DM:[7,7]). = 5. Run FLB again to ensure it has not put the = new UFD in the same area of interest (or dump5 its header and check the map pointers).  = 6. Finally, copy back the output files to the new ; UFD (using the /CD switch again, if desired).t  = 3. If the file is an installed task, then it must be = removed (REM) and re-installed (INS) after theD= move, or the system may crash when it is called.= (Don't forget to do this to your task image by run- ning VMR). = 4. For additional information see the MACRO sourcea listing.        = FLB --- A contiguous block utility program PAGE 8  Program Description  Example:t     : DM0:[001,001]BADBLK.SYS;1 <------ (Indicates a bad block) DM0:[104,060]EDITOR1.TMP- DM0:[111,142]VSCAT.OBJ;3D DM0:[111,141]SHP733.LST;1 DM0:[111,064]AOSTUDY.TSK;2a DM0:[111,142]VSCAT.LST;10 DM0:[111,142]VSCAT.SKL;3  DM0:[111,141]SHP732.LST;1 DM0:[106,130]REPORT.FTN;6 DM0:[111,064]AOSTUDY.TSK;1t DM0:[104,060]KWIC.LST;25   DM: = 53790. BLOCKS SPAN: 4096. BLOCKSB LO LBN: H:000 L:130000 = 45056. HI LBN: H:000 L:137777 = 49151.  FILES FOUND: 11.E ELAPSED TIME: 00:01:24 LP:=DM:/BLKS:15:15B       2 Figure 1 - Example of FLB run on an RK07 ] = FLB --- A contiguous block utility program PAGE 9; Technical Description  INTRODUCTIONS = The following technical notes are provided for those= who desire to know what is happening within the FLB pro-D= gram References are to the I/O Operation and Reference Manu-0= al (AA-2515D-TC). Details of the command line processng, 0 FCS, and the simpler routines are not provided. = The basic assumption of FLB is that it will be work- = ing on a FILES-11 structured device. This means that itg= will be looking for certain things in certain places.U= Specifically, it assumes that the device contains the stan-f= dard five system files (only the first one is accessed bye FLB).  #1 - INDEXF.SYS  #2 - BITMAP.SYSe #3 - BADBLK.SYSA #4 - 000000.DIRo #5 - CORIMG.SYSe   Command Line Processing n = The command line includes two output switches and threet= input switches. The output switches are /ID (to provide the = program version number) and /SP (to spool the output). Thei) defaults are /-ID and /SP, respectively.s = The three input switches are /LBN, /BLK, and /WD. Theo= /LBN switch permits the user to specify a logical blockD= number (or numbers) directly. The format is standard double = precision (ie: /LBN:0:100:0:100 = LBN #100 only). The = other switches are designed to match the BITMAP.SYS dump andi= are mutually exclusive with the /LBN switch. The /BLK = switch may stand alone, but the /WD switch requires the /BLKe switch. h= The output switches are first va00OOݙ64lidated to ensure theh= above logic has been observed. Next the switch values arec= validated by "VALIDATE SWITCH VALUES." Here a stop value of = zero is replaced by the SIZE parameter which was extracted = from the device's Home Block by the Get LUN (GLUN$) direc-c= tive during the parsing of the input filespec. This valuel= (minus one) is set into the stop LBN if it is not present  (or equal to zero). = The /BLK switch is validated next to ensure that is ise= greater than one and that the stop block is not less than = the start block value. The /BLK switch was designed to per- = mit the user to enter the octal block numbers from at= BITMAP.SYS dump directly. Thus, the /BLK validation routine : esures that the Storage Control Block (VBN #1) is passed.  = FLB --- A contiguous block utility program PAGE 10e Technical Description  = Finally, the /WD switch is validated by ensuring thatd= it is less than 512 (decimal), that it is an even number = (word aligned), and that the top value is less than the = start value only in those cases when the start/stop /BLK va-o! lues differ (interblock search).A = Once the switches have been logically verified and theh= values validated, then the actual start and stop LBN is cal--= culated. If the /LBN switch was used, then the "GENERATEn= THE LBN VALUES" routine is bypassed. Otherwise, the /BLKd= values are converted to LBN values by the equation shown onh= the listing. The /WD values are then added or subtractedl& from the resulting LBN's as required.  Processinge = The first action, after deciding that the command line= was proper, is to retrieve the Home Block, which is LBN #1= on the device. This is accomplished by the FCS procedure= "RETRIEVE HOME BLOCK". The INDEXF.SYS file is non- conven-= tional, in that the offsets F.HIBK (the highest block allo-= cated to the file) and F.EFBK (the end-of-file block) are= both zero. These must be set to their logical values so the= program can scan the headers and detect an EOF condition at = the appropriate time. This is acommplished by opening the= file with the statisitics block, as described in Paragraph= 3.1.2 under file option 3.d (Page 3-11). The statistics= block is shown in Figure H-1 on Page H-1. Once the= INDEXF.SYS header file FDB has been reset, then the home5 block is read into the buffer region named "HEADER."o= The important values in the home block are the firsts= two bytes (H.IBSZ) which indicates the size of the indexi= file bitmap, ant the next four bytes (H.IBLB) which containg= the LBN of the first block of the index file bitmap in dou-a= ble precision format. These are important because they pro-i= vide the physical location (LBN) of VBN #3, which is thec= start of the header bitmap and its length. Adding the two = together provides the LBN of the first header (1,1) which= happens to be INDEXF.SYS. The program is now set to scans the headers.( = The "RETRIEVE A HEADER BLOCK" routine reads each header = sequentially. Offset H.FNUM is checked each time. If it isf= zero, then it is a deleted header and the next one is read.r= If it is not zero, then it begins searching the map pointerc region of the header. = Each file header contains a map area which consists of,A= among other things, an offset M.USE (one byte) which is aa= count of the number of map pointers in use. The maximumw= value is 102 pointers (The actual value is the number ofD  = FLB --- A contiguous block utility program PAGE 11c Technical Description  = words used or twice the the number of pointers used). IfI= this value is null, then it is either a null header or ther= program has checked all of its pointers. The secton of the = header used in the searching is the retreival pointer sec-S= tion which starts at offset M.RTRV. To fi00OLM-TADATADATAnd this offset, = the program steps past the header section (S.HDHD), thel= identification section (S.IDHD), to the start of the retri-t= eval section (M.RTRV) (See the equated symbol MPTR in the listing). = Each pointer consists of two words (four bytes). The = first byte contains the high order eight bits of the 24 bitc= LBN. Byte two contains the count field and bytes three and = four contain the 16 low order bits of the LBN. Each pointert= can map up to 256 (decimal) contiguous blocks. The value of = the count is actually n-1, thus a zero points to one block,o= while a value of one points to the first of two contiguousn= blocks. The "SEARCH MAP POINTERS" routine checks the MUSE = location first, exiting if it contains a zero. Otherwise, = it extracts the two word map pointer and divides it into ac= count filed and a double precision LBN, then calls SEARCH = which decrementes until it reaches zero (or a match ist. found) at which time the next header is read. = The actual search routine is contained in "SEARCH FOR Ao; MATCH." It performs a search based on the following logic:w = 1. If the LBN of the first block of the pointer iss= below the starting LBN, then there is no match pos-O sible and it exits.t = 2. If it is equal, then there is a match of at leastl= the first block. The OUTPUT routine is calledt< which outputs the full filespec to the output FDB.= 3. If it is greater than the first LBN of the pointer,c= then no immediate conclusion can be reached, so the 3 LBN must be checked against the stop LBN. 8 1. If it is LT/EQ, then a match has occurred. = 2. If NE, then the LBN of the last block in thee= pointer's contiguous group must be calculated = by adding the count field to the pointer's LBN.    < 1. It it is LT/EQ, then a match has occurred.   = 2. If not, then it is outside of the range and $ the routine exits.  = FLB --- A contiguous block utility program PAGE 12 Technical Description      = The above process is repeated for each header until ano= EOF condition is reached, at which time the summary is out-e putted.  = FLB --- A contiguous block utility program PAGE 13 Technical Description   Correction File = Corrections to the orginal source file will be made bys= means of a correction file to be used with SLP. The current.= correction file FILES.COR contains the code necessary to up- = date FLB to version l.0A. This includes code to correct = for DP LBN's, corrects some DP arithmatic errors, cleans out = the high byte in CW2, plus adds a diagnostic capability. Ine= addition, it has been tested on RSX-11M (PLUS) and an RP06  drive. = The new diagnostic switch /DA acts the same as the /-LIc= switch plus it provides a means for the user to force a dif- = ferent value into the SIZE value (number of blocks on the = device). The default value will be that of the device indi- = cated. Otherwise the program will use the supplied value') which is stored in DASIZE. For example:n ( FLB TI:=DM:/DA:1:1000/BLK:5:5 = The above command string will force the program to set(= the size parameter to 66048 (decimal). (Arbitrary valuesi= must be used with either the /LBN or /BLK switches, becausem= of the syntax. These values must be less than the selected /DA value.)     - -JBFt  e indi- = cated. Otherwise the program will use the supplied value') which is stored in DASIZE. For example:n ( FLB TI:=DM:/DA:1:1000/BLK:5:5 = The above command string will force the program to set(= the size parameter to 66048 (decimal). (Arbitrary valuesi= must be used with either the /LBN o00PQݙ64;I"; File to assemble and build FILES;.; (CAUTION: Source file must be version ";1");.ENABLE SUBSTITUTION.ASK LIST LISTING.IFT LIST .SETS DEV "SY:".IFF LIST .SETS DEV "NL:".IFINS PIP .GOTO 10;;; PIP not installed -- exiting so you can correct situation;.STOP.10:PIP FILES.MAC;2/DE/NM.IFINS SLP .GOTO 20;;; SLP not installed -- exiting so you can correct situation;.STOP.20:SLP @FILES.CORPIP FILES.OBJ;*/DE/NM.IFT LIST PIP FILES.LST;*/DE/NM.IFINS MAC .GOTO 30i;t;; MAC not installed -- exiting so you can correct situation ;v.STOP"%.30:MAC FILES,'DEV'FILES/-SP/CR=FILESSPIP FILES.MAC;2/DE/NMSPIP FILES.TSK;*/DE/NMS.;.OPEN BUILD.CMDI .ENABLE DATAFILES,FILES/CR/-SP=FILES/ TASK=...FIL // .DISABLE DATAu.CLOSE.;.IFINS TKB .GOTO 40.;;;; TKB not installed -- exiting so you can correct situationi;g.STOP .40:TKB @BUILDPIP BUILD.CMD;*/DE/NM:SLP @FILES.CORPIP FILES.OBJ;*/DE/NM.IFT LIST PIP FILES.LST;*/DE/NM.IFINS MAC .TITLE FILES .IDENT /V1.0B/ .ENABL LC .SBTTL INTRODUCTION ; VERSION 1.0B;; CREATED BY J. BRADLEY FLIPPIN%; RAYTHEON SERVICE COMPANY); 2341 JEFFERSON DAVIS HIGHWAY&; ARLINGTON, VIRGINIA 22202; (703) 685-2200;; 15-FEB-81;; MODIFIED BY:;8; JBF001 -- ADD DIAGNOSTIC AIDS AND FORM FEED (3-JUN-81);'; JBF002 -- CORRECT DP LBN VERIFICATION/; (OCCURED WHEN LOW WORD EQ ZERO)(10-JUN-81);;; JBF003 -- CORRECT DP ARITH, COUNT-1 SETUP, PHASE II COMP,3; AND DELETE RSX-11M PLUS HIGH BYTE VALUE IN CW2; (19-JUN-81);E<; HWG001 -- PUT IN A CLOSE OUTPUT FILE TO ELIMINATE ANNOYING.; "TERMINATED WITH I/O IN PROGRESS" MESSAGE;NB; FRB001 -- UNDER IAS, NUMBER OF BLOCKS NOT IN CW2 AND CW3, SEARCH!; PUD TO FIND IN PUD EXTENSION;BC; Version V1.0B John Miller Sanders Associates, Inc. 22-Jul-82 ; MIP2-1N; 95 Canal Street; Nashua, NH 03061Q; (603) 424-5080 ext. 312;-D; Remove device name, and add file id and sequence numbers to output ; display.; @; Determine file header allocation status from index file bitmap?; rather than file number field in file header (which cannot beNC; relied upon to be initialized to zero nor reset to zero when fileN; header is released).;P; Provide mixed-case output.;?; THIS PROGRAM PERMITS THE USER TO IDENTIFY FILES WHICH UTILIZE8H; SPECIFIC BLOCKS WITHIN A DISK DEVICE. ONCE THIS HAS BEEN DETERMINED,G; THE INFORMATION CAN THEN BE USED TO FREE UP CONTIGUOUS SPACE WITHOUTeC; THE NECESSITY OF USING DSC OR OTHER SUCH TIME CONSUMING METHODS.n;a?; FIRST THE USER DUMPS [0,0]BITMAP.SYS TO DETERMINE THE AREA OFlF; INTEREST. THE RESULTS ARE THEN PASSED TO "FILES" THROUGH SWITCHES.;eF; THE PROGRAM DOES NOT UTILIZE A FULL INPUT FILESPEC, ONLY THE DEVICE.2; A FULL FILESPEC MAY BE USED IN THE OUTPUT FILE.;  .PAGE ;JBF001* .SBTTL ...SUPPORTED SWITCHES ;JBF001;I.; THE PROGRAM SUPPORTS THE FOLLOWING SWITCHES:; ; OUTPUT FILE:P;N8; /SP = SPOOL OUTPUT (CAN BE NEGATED)(DEFAULT=/SP)=; /ID = DISPLAY PROGRAM VERSION NUMBER (IE: FILES /ID)[;]; INPUT FILE:;M@; /DA = DIAGNOSTIC AID (/-LI PLUS /DA:(SIZE):(SIZE+2)) ;JBF001,; /LI = LIST FILESPECS (DEFAUAT = /LI)A; (USE /-LI TO SUPPRESS LISTING AND GET SUMMARY ONLY)E1; /LBN = LOGICAL BLOCK NUMBER ON THE DEVICE &; /BLK = BITMAP.SYS BLOCK NUMBER0; (CANNOT BE USED WITH /LBN SWITCH)@; /WD = WORD NUMBER WITHIN THE SPECIFIED BITMAP.SYS BLOCK3; (CANNOT BE USED WITHOUT /BLK SWITCH)D;LB; THE /BLK, /WD, AND /LBN MUST HAVE VALUES ASSOCIATED WITH THEM AS); FOLLOWS (ALL VALUES DEFAULT TO OCTAL):);IB; /BLK:16 FROM BLOCK 16 TO END OF THE DEVICE-; /BLK:16:16 BLOCK 16 ONLY ?; /BLK:16:17 FROM BLOCK 16 TO 17 (INCLUSIVE) ; @; THE /LBN SWITCH UTILIZES DOUBLE PRECISION VALUES AND THEREFORE; HAS THE FOLLOWING FORMA00QLM-TADATADATAT:; >; /LBN:0:4200 FROM LBN 4200 TO END OF DEVICE-; /LBN:0:4200:0:4200 LBN 4200 ONLY<; /LBN:0:4200:0:4700 FROM LBN 4200-4700 INCLUSIVE .PAGES" .SBTTL ...OPERATING NOTES1; SAMPLE COMMAND LINES (ALL VALUES ARE IN OCTAL):D; *; FILES OUTPUT.LST/-SP=SY:/BLK:16:16;CA; (GENERATES A FILE "OUTPUT.LST" CONTAINING ALL THEC@; FILESPECS OF FILES ON SY0: HAVING LBN'S IN OCTAL:; BLOCK NUMBER 16 OF THE "BITMAP.SYS" DUMP.);4; FILES =DM:/LBN:0:4200O;DG; (SPOOLS A FILE "FILES.LST" CONTAINING ALL THE FILESPECS0B; OF THE FILES ON DM0: HAVING LBN'S OF 4200 OCTAL OR; GREATER);S*; FILES TI:=DL:/BLK:16:16/WD:100:100;CD; (DISPLAYS ON THE ORIGINATING TERMINAL, ALL FILESPECS>; OF FILES ON DY0: HAVING LBN'S IN THE 16 BLOCKSC; PREPRESENTED BY THE BITS IN WORD 100 OF OCTAL BLOCK ,; 16 OF THE "BITMAP.SYS" DUMP);#; FILES DL1:=DL:/BLK:16/WD:40D; @; (GENERATES A FILE "FILES.LST" ON DL1: CONTAININGB; ALL THE FILSPECS OF THE FILES ON DL: HAVING BLOCKS=; REPRESENTED BY THE BITS STARTING WITH WORD 406H; OF BLOCK 16 OF THE BITMAP.SYS TO THE END OF THE DEVICE.);L$; FILES TI:=DY:/BLK:12:12/WD:4;YC; (DISPLAYS ON THE ORIGINATING TERMINAL ALL FILESPECS A; OF FILES ON DY: HAVING DATA BLOCKS REPRESENTED BY.D; BITS STARTING WITH WORD 4 OF BLOCK 12 AND RUNNING TO,; THE END OF BLOCK 12(OCTAL).);I(; FILES TI:=DM:/BLK:6:7/WD:400:100;IC; (DISPLAYS ON THE ORIGINATING TERMINAL ALL FILESPECSR@; OF FILES ON DM: HAVING BLOCKS REPRESENTED BY THEB; BITS FROM WORD 400 OF BLOCK 6 TO WORD 100 OF BLOCK!; 7 ON BITMAP.SYS.)T;OG; (THIS IS THE ONLY CASE IN WHICH THE STARTING WORD VALUEG7; CAN BE GREATER THAN THE STOPPING VALUE)N;IF; 5) USE THE /-LI SWITCH TO CONVERT THE /BLK AND /WD VALUES ONLYC; AND DISPLAY THE SUMMARY BLOCK. NO HEADERS ARE SEARCHED. .PAGEY" .SBTTL ...TECHNICAL NOTES; MOVING THE FILES: ;FC; ONCE THE FILES HAVE BEEN IDENTIFIED, THEY CAN BE MOVED BY "PIP".F:; FOR EXAMPLE, ASSUME "OUTPUT.LST" CONTAINED THE FILESPEC; "DM:[122,134]TEST.DAT;10." :; THE FILE CAN BE MOVED BY SIGNING ONTO THAT DIRECTORY OR@; SIGNING INTO A PRIVILIGED ACCOUNT AND SETTING IT TO THAT UIC.G; THE SIMPLE ENTRY "PIP /NV/CD=TEST.DAT;10" AND DELETING THE OLD FILE,YA; WOULD FREE UP THE CONTIGUOUS SPACE AND SAVE THE CREATION DATE.DA; (BE SURE TO BE SPECIFIC AND USE THE INDICATED VERSION NUMBERS)T;F; NOTES:; C; 1) THIS TECHNIQUE ONLY WORKS IF THERE ARE SUFFICIENT BLOCKS E; AVAILABLE IN THE LOWER LBN'S, OTHERWISE F11ACP WILL SIMPLY31; ASSIGN THE NEW BLOCKS TO HIGHER LBN'S.N;N; 2) (NOT USED) ;GG; 3) THE UIC IN THE LISTING FILESPEC IS THE OWNER'S UIC EXTRACTED H; FROM THE FILE'S HEADER. NORMALLY THIS COINCIDES WITH THE UFDD; BUT THIS MAY NOT BE TRUE IN SOME CASES. IF THE FILE NAME9; CANNOT BE FOUND UNDER THE LISTED UIC, THEN USEO0; "PIP [*,*]TEST.DAT;10/LI" TO FIND IT.;R=; 4) EXTENSION HEADERS ARE NOT HANDLED SEPARATELY. THE'F; SEQUENTIAL SEARCH OF HEADERS MAKES THIS UNNECESSARY. THUS,D; IF A FILESPEC IS LISTED MORE THAN ONCE, IT INDICATES IT'S@; HEADER (OR EXTENSION HEADER) HAD BLOCKS MAPPED TO THE; AREA IN QUESTION.; A; 5) IF BLOCKS ARE STILL ALLOCATED AFTER THE ABOVE MOVEMENT &; PROCESS, TRY THE FOLLOWING:; 4; A. ALL HEADERS MAY NOT BE LISTED IN A UFD3; (SOLUTION - RUN VFY WITH /LO SWITCH)E;N5; B. ALL BLOCKS MAY NOT BE MAPPED TO A FILE. 3; (SOLUTION - RUN VFY WITH /RE SWITCH)Y=; (ALSO SEE UTILITIES MANUAL PARAGRAPH 13.3.1.5) ;IG00Qƚݙ64; C. IT MAY BE A BAD BLOCK. THIS IS EVIDENCED BY THE FILESPECTG; "[1,1]BADBLK.SYS;1" APPEARING AS THE CULPRET. THIS MEANSCF; THAT THE BLOCK HAS BEEN MARKED AS BAD. VERIFICATION CANF; BE OBTAINED BY DUMPING [0,0]BADBLK.SYS AND CHECKING IT'S; MAP POINTERS. F; (THERE IS NO SOLUTION TO THIS PROBLEM - BUY A NEW DISK) .PAGEO+; 6) ERROR MESSAGES ARE OF TWO TYPES: ; =; A. DIRECT MESSAGES ARE PROVIDED FOR COMMON ERRORS. ; C; B. ERROR CODES ARE PROVIDED FOR INFREQUENT (FCS) ERRORS. 2; (SEE "ERROR" SUBROUTINE FOR DETAILS); C; IE: "FIL - OI--IOER ERROR -16" INDICATES A "PRIVILEGEAB; VIOLATION", BUT PROBABLY THE DEVICE WAS NOT MOUNTED.;KH;***********************************************************************>; CAUTION: THIS PROGRAM HAS BEEN CHECKED OUT ON AN 11/34A WITH>; MEMORY MANAGEMENT RUNNING UNDER RSX-11M VERSION 3.29; USING RL01/RK07/RX02 DISK DRIVES ONLY. PROPERRC; STEPS SHOULD BE TAKEN TO VERIFY RESULTS ON OTHER DEVICESS7; BEFORE ACCEPTING THE OUTPUT AT "FACE VALUE". H;***********************************************************************J; VERIFIED ON RP06 AND RSX11-M PLUS BY DAVE SYKES (AMS) 19-JUN-81 ;JBF002J;**************************************************************** ;JBF002;N; ASSEMBLY/TASK BUILD NOTES:; @; ASSEMBLY AND TASK BUILDING OF "FILES" IS STRAIGHT FORWARD WITH; NO SPECIAL REQUIREMENTS.;K&; TO ASSEMBLE: MAC FILES[,FILES]=FILES;O ; TO TASK BUILD: TKB FILES=FILES;E7; IT IS SUGGESTED THAT "FILES" BE INSTALLED AS FOLLOWS:C;A; INS FILES/TASK=...FIL*;* .PAGE*3 .SBTTL ...BITMAP BLOCK/LBN REFERENCE TABLE6H; THE FOLLOWING TABLE PROVIDES A REFERENCE BETWEEN THE FIRST BIT OF EACHB; BLOCK OF "BITMAP.SYS" AND THE MAPPED LOGICAL BLOCK NUMBER (LBN).G; (BLOCK NUMBERS ARE EXPRESSED IN OCTAL - LBN ARE IN OCTAL AND DECIMAL)R;H;O; VBN LBNI;R; 1 - (NOT USED); 2 - H:000 L:000000 = 0.#; 3 - H:000 L:010000 = 4,096.#; 4 - H:000 L:020000 = 8,192. $; 5 - H:000 L:030000 = 12,288.$; 6 - H:000 L:040000 = 16,384.$; 7 - H:000 L:050000 = 20,480.$; 10 - H:000 L:060000 = 24,576.$; 11 - H:000 L:070000 = 28,672.$; 12 - H:000 L:100000 = 32,768.$; 13 - H:000 L:110000 = 36,864.$; 14 - H:000 L:120000 = 40,960.$; 15 - H:000 L:130000 = 45,056.$; 16 - H:000 L:140000 = 49,152.$; 17 - H:000 L:150000 = 53,248.; ;0+; THUS, VIRTUAL BLOCK 15 (OCTAL) REPRESENTS69; LOGICAL BLOCK NUMBERS 45,056. TO 49,151., INCLUSIVELY. ;3;0 ; DEVICES:; ; RP02 (DP:) =; RP03 (DP:) =; RP04 (DB:) = ;JBF002 ; RP05 (DB:) = ;JBF002.%; RP06 (DB:) = 340,670. ;JBF002; RP07 (DB:) = ;JBF002,!; RF (DF:) = ;**-33; RK05 (DK:) =; RK06 (DM:) =; RK07 (DM:) = 53,790.; RL01 (DY:) = 10,240.; RL02 (DR:) = 20,480.; RL03 (DR:) =; RM02 (DR:) =; RM03 (DR:) =; RS03 (DS:) =; RS04 (DS:) =; RX01 (DX:) = 494. ; RX02 (DY:) = 494./988. .PAGE$ .SBTTL INITIAL HOUSEKEEPING& .SBTTL ...MACRO LIBRARY CALLSB .MCALL GCMLB$,GCMLD$,CSI$,CSI$1,CSI$2,GCML$,CSI$SW,CSI$SV .MCALL CSI$ND= .MCALL OPEN$R,OPEN$W,READ$,PUT$,CLOSE$,FSRSZ$,FINIT$2 .MCALL FDBDF$,FDAT$A,FDRC$A,FDOP$A,FDBK$AC .MCALL QIOW$,QIOW$C,DIR$,EXIT$S,WAIT$,GTIM$C,GLUN$C,PRINT$M .MCALL FHDOF$,HMBOF$=> HMBOF$ DEF$L ;DEFINE THE HOME BLOCK OFFSETS: FHDOF$ DEF$L ;DEFINE THE HEADER OFFSETS< GCMLD$ ;DEFINE COMMAND LINE OFFSETS6 CSI$ ;DEFINE CSIBLK OFFSETS" .SBTTL ...EQUATED SYMBOLS8 FLAG=1 ;DESIGNATE EVENT FLAG #1* INLUN=1 ;INPUT LUN+ OUTLUN=2 ;OUTPUT LINW2 00QΚLM-TADATADATA DISP=5 ;DISPLAY LUN (TI:)- TERM=5 ;TERMINAL LUN / IDMASK=1 ;/ID MASK VALUE 1 BLMASK=2 ;DEFINE /BLK MASKE0 WDMASK=4 ;DEFINE /WD MASK1 LBMASK=10 ;DEFINE /LBN MASKF0 SPMASK=20 ;DEFINE /SP MASK0 LIMASK=40 ;DEFINE /LI MASK( DAMASK=100 ;DEFINE /DA MASK ;JBF0013 DV.F11=40000 ;FILES-11 MASK WORDT CW1=ARGBLK+G.LUCW  CW2=ARGBLK+G.LUCW+2) CW3=ARGBLK+G.LUCW+4  STAT=CSIBLK+C.STAT CDEV=CSIBLK+C.DEVD DSDS=CSIBLK+C.DSDS MKW1=CSIBLK+C.MKW1 MKW2=CSIBLK+C.MKW2! FNAM=HEADER+S.HDHD+I.FNAM ' MUSE=HEADER+S.HDHD+S.IDHD+M.USEN( MPTR=HEADER+S.HDHD+S.IDHD+M.RTRV HR1=TIME1+G.TIHR HR2=TIME2+G.TIHR MIN1=TIME1+G.TIMI; MIN2=TIME2+G.TIMI SEC1=TIME1+G.TISC  SEC2=TIME2+G.TISC .PAGER+ .SBTTL ...COMMAND LINE DEFINITIONS .EVENG< .NLIST BEX ;DON'T LIST BINARY EXPANSION<GCLBLK: GCMLB$ 0,,,TERM ;DEFINE CMD LINE DATA BLOCKS9CSIBLK: .BLKB C.SIZE ;DEFINE SIZE OF CSI BLOCK 2OUTTBL: CSI$SW SP,SPMASK,,,NEG ;DEFINE /SP SWITCH6 CSI$SW ID,IDMASK ;DEFINE /ID SWITCH CSI$ND2SWTBL: CSI$SW LI,LIMASK,,,NEG ;DEFINE /LI SWITCH9 CSI$SW DA,DAMASK,,,,DATBL ;DEFINE /DA SWITCH ;JBF00127 CSI$SW LB,LBMASK,,,,LBNTBL ;DEFINE /LBN SWITCH 7 CSI$SW BL,BLMASK,,,,BLKTBL ;DEFINE /BLK SWITCH 6 CSI$SW WD,WDMASK,,,,WDTBL ;DEFINE /WD SWITCH CSI$ND:BLKTBL: CSI$SV OCTAL,BLK1,2 ;DEFINE START BLOCK NUMBER9 CSI$SV OCTAL,BLK2,2 ;DEFINE STOP BLOCK NUMBERD CSI$ND9WDTBL: CSI$SV OCTAL,WD1,2 ;DEFINE START WORD NUMBER 8 CSI$SV OCTAL,WD2,2 ;DEFINE STOP WORD NUMBER CSI$ND1LBNTBL: CSI$SV OCTAL,LBN1,2 ;DEFINE START LBN $ CSI$SV OCTAL,LBN1+2,2 ; DP0 CSI$SV OCTAL,LBN2,2 ;DEFINE STOP LBN$ CSI$SV OCTAL,LBN2+2,2 ; DP CSI$ND ;JBF001 =DATBL: CSI$SV OCTAL,DASIZE,2 ;DIAGNOSTIC SIZE (HI) ;JBF001N+ CSI$SV OCTAL,DASIZE+2,2; (DP) ;JBF001L CSI$ND ;JBF001K .PAGE % .SBTTL ...DATA STORAGE AREAS 4ARGBLK: .BLKW 9. ;EDIT ARGUMENT BLOCK6BLK1: .WORD 0 ;STARTING BLOCK NUMBER6BLK2: .WORD 0 ;STOPPING BLOCK NUMBER3BUFFER: .BLKB 50. ;OUTPUT BUFFER AREAB9DASIZE: .WORD 0,0 ;DIAGNOSTIC DEVICE SIZE (DP) ;JBF001 8FCOUNT: .WORD 0 ;COUNT OF FILES SELECTED1XBM: .BLKB 512. ;INDEX FILE BITMAP BLOCK BUFFER.S3HEADER: .BLKB 512. ;HEADER BUFFER AREA 3FMAX: .BLKW 1 ;MAXIMUM # OF FILES ON INPUT DEVICE.TGHIBSZ: .WORD 0 ;SAVED H.IBSZ (LENGTH OF HEADER BITMAP)1GHOLD: .WORD 0,0,0 ;TEMP HOLDING AREA FOR DIAG OCTAL VALUE ?IOSB: .WORD 0,0 ;I/O STATUS BLOCK FOR BLOCK I/O 1STBLK: .BLKW 5 ;STATISTICS BLOCKC+TIME1: .BLKW 8. ;START TIME *TIME2: .BLKW 8. ;STOP TIME3LBN1: .WORD 0,0 ;STARTING LBN VALUED3LBN2: .WORD 0,0 ;STOPPING LBN VALUEX?LENGTH: .WORD 0 ;LENGTH OF EDITED OUTPUT STRING 1OUTDSD: .BLKW 6 ;OUTPUT DSD BLOCKMCSIZE: .WORD 0,0 ;SIZE OF DEVICE IN LOGICAL BLOCKS-1A=SPOOL: .WORD 0 ;SPOOL SWITCH (0=/-SP, 1=/SP) ATEXT: .WORD 0 ;ADDRESS OF OUTPUT MESSAGE STRINGE>TOP: .WORD 0,0 ;TOP OF RETRIEVAL POINTER SPAN0XBMVBN: .WORD 0,0 ;INDEX FILE BITMAP INPUT VBN.*VBN: .WORD 0,0 ;INPUT VBN5WD1: .WORD 0 ;STARTING WORD NUMBER 5WD2: .WORD 0 ;STOPPING WORD NUMBERB' .SBTTL ...EXECUTIVE DIRECTIVESE>OUT: QIOW$ IO.WVB,DISP,FLAG,,,,<0,0,0> ;TERMINAL DISPLAY .PAGE 0 .SBTTL ...FILE 00Q֚ݙ64DESCRIPTION BLOCKS (FDB); FSRSZ$ 2 ;INITIALIZE THE FCS REGIONSE5INFDB: FDBDF$ ;DEFINE THE INPUT FDBE FDRC$A FD.RWM" FDBK$A HEADER,512.,,,IOSB' FDOP$A INLUN,DSD,,FO.RD,FA.DLKDSD: .WORD 0,0  .WORD 5,UICD .WORD 10.,HNAME 1UIC: .ASCII /[0,0]/ ;SYSTEM DIRECTORYS/HNAME: .ASCII /INDEXF.SYS/ ;INDEX FILENAME .EVEN,OUTFDB: FDBDF$7 FDAT$A R.VAR,FD.CR ;DEFINE FILE ATTRIBUTESC9 FDRC$A ,BUFFER,50. ;DEFINE RECORD ATTRIBUTESIE FDOP$A OUTLUN,OUTDSD,IFNAM,FO.WRT ;ESTABLISH FILE OPEN DATA AIFNAM: NMBLK$ FILES,LST,0,SY,0 ;ESTABLISH OUTPUT FILE DEFAULTSO .PAGEP! .SBTTL ...ERROR MESSAGES .EVEN MSG1: .BYTE MSG1L $ .ASCII /Command line error/ MSG1L=.-MSG1-1 MSG2: .BYTE MSG2LN' .ASCII /CSI interpreter error/N MSG2L=.-MSG2-1EMSG3: .BYTE MSG3L  .ASCII /No equal sign/F MSG3L=.-MSG3-1EMSG4: .BYTE MSG4LF) .ASCII /CSI output parser error/  MSG4L=.-MSG4-1NMSG5: .BYTE MSG5LE5 .ASCII /Multiple output files not permitted/Y MSG5L=.-MSG5-1TMSG6: .BYTE MSG6L $ .ASCII /Output parse error/ MSG6L=.-MSG6-1 MSG7: .BYTE MSG7L ( .ASCII /CSI input parser error/ MSG7L=.-MSG7-1GMSG8: .BYTE MSG8LS4 .ASCII /Multiple input files not permitted/ MSG8L=.-MSG8-1 MSG9: .BYTE MSG9L # .ASCII /No input switches/M MSG9L=.-MSG9-1BMSG10: .BYTE MSG10L# .ASCII /Too many switches/G MSG10L=.-MSG10-1 MSG11: .BYTE MSG11L& .ASCII /Block switch missing/ MSG11L=.-MSG11-1MMSG12: .BYTE MSG12L0 .ASCII /Input device must be specified/ MSG12L=.-MSG12-1 MSG13: .BYTE MSG13L' .ASCII \Invalid /LBN value(s)\L MSG13L=.-MSG13-1 MSG14: .BYTE MSG14L' .ASCII \Invalid /BLK value(s)\e MSG14L=.-MSG14-1 MSG15: .BYTE MSG15L& .ASCII \Invalid /WD value(s)\ MSG15L=.-MSG15-1SMSG16: .BYTE MSG16L( .ASCII /No wildcards permitted/ MSG16L=.-MSG16-1:MSG17: .BYTE MSG17L+ .ASCII /Input not FILES-11 device/S MSG17L=.-MSG17-1TMSG18: .BYTE MSG18L* .ASCII /Start value out of range/ MSG18L=.-MSG18-1: .PAGEL6 .SBTTL ...QIOE/IOER DIAGNOSTIC DISPLAY BUFFER .EVENB(ERRBUF: .ASCII /FIL - / ;ERR MSG<FROM: .WORD 0 ;HOLDS THE LOCATION OF ERROR .ASCII /--/+ERRTYP: .WORD 0,0 ;ERROR TYPET .ASCII / error -/@ERRNO: .WORD 0 ;SAVE FOR CONVERTED ERROR NUMBER? ERRSZ=.-ERRBUF ;CALCULATE THE SIZE OF 'ERRBUF'- .SBTTL ...EDIT STRINGS DEDTSTR: .ASCIZ /(%P,%P) [%B,%B]%X/ ;OUTPUTTED FILESPEC EDIT STRING'DEVSTR: .ASCIZ /%N%2A%M: = %T. blocks/I"RNGSTR: .ASCIZ /Span: %T. blocks/)LOSTR: .ASCIZ /LO LBN: H:%B L:%P = %T./ )HISTR: .ASCIZ /HI LBN: H:%B L:%P = %T./O$FILSTR: .ASCIZ /%NFiles found: %M./ .EVEN TIMSTR: .ASCII /Elapsed time: /DSTRTIM: .BLKW 4 ;HOLDING AREA FOR ASCII ELAPSED TIME= TLONG=.-TIMSTR ;LENGTH OF EDITED TIME STRINGS% .SBTTL ...MISC ASCII STRINGSI9PREFIX: .ASCII /FILES error -- / ;ERROR CODE PREFIX 8FILES: .ASCII <15><12>/FILES>/ ;ALTERNATE PROMPTIDMSG: .BYTE IDMSGL) .ASCII /FILES version 1.0B/ ;JBF003H IDMSGL=.-IDMSG-1 ;**-1)FFEED: .BYTE 14 ;(FORM FEED) ;JBF001Z .SBTTL ...CONSTANTS$BITMSK: .BYTE 1,2,4,10,20,40,100,200 .PAGEM& .SBTTL PROGRAM INITIALIZATION;+B; GET THE COMMAND LINE AND PARSE IT TO DETERMINE THE INPUT DEVICE..; THEN DETERMINE THE SWITCHES AND THEIR VALUES;- .EVENC=START: FINIT$ ;INITIALIZE THE $$FSR2 REGION 510$: MOV #776,WD2 ;INITIALIZE STOP WORD H GCML$ #GCLBLK,#FILES,#8. ;INITIALIZE THE COMMAND LINE REQUEST1 BCC 20$ ;SKIP IF NO ERROR07 CMPB GCLBLK+G.ERR,#00QޚLM-TADATADATAIE.EOF ;CTL/Z CONDITION?0- BNE .+6 ;IF NOT, PASSA< JMP EXIT ;OTHERWISE, EXIT THE PROGRAM? MOV #MSG1,TEXT ;SETUP "COMMAND LINE ERROR" MSGH: CALL TYPEP ; DISPLAY IT AND THEN EXIT420$: CMP GCLBLK+G.CMLD,#0 ;NULL COMMAND LINE?= BEQ 10$ ;IF SO, THEN GET PROMPT AGAIN, .PAGEI% .SBTTL ...PARSE COMMAND LINE 0 GTIM$C TIME1 ;SAVE START TIMEH CSI$1 #CSIBLK,GCLBLK+G.CMLD+2,GCLBLK+G.CMLD ;ANALYZE CMD LINE6 BCC OPARSE ;WAS CSI$1 SUCCESSFUL?< MOV #MSG2,TEXT ;SETUP "CSI INTER ERROR" MSG: CALL TYPEP ; DISPLAY IT AND THEN EXIT+ .SBTTL ...PARSE OUTPUT FILESPEC/SW =OPARSE: CSI$2 #CSIBLK,OUTPUT,#OUTTBL ;PARSE OUTPUT FILESPEC , BCC 10$ ;IF OK, PASS@ MOV #MSG4,TEXT ;SETUP "CSI OUT PARSE ERROR" MSG: CALL TYPEP ; DISPLAY IT AND THEN EXIT410$: BIT MKW1,#IDMASK ;/ID SWITCH PRESENT?- BEQ 12$ ;IF NOT, PASSU? MOV #IDMSG,TEXT ;OTHERWISE, SETUP "VERSION" MSG, CALL TYPE ; DISPLAY IT* JMP EXIT ; AND EXIT512$: BITB STAT,#CS.WLD ;WILDCARDS SPECIFIED?T- BEQ 15$ ;IF NOT, PASS 8 MOV #MSG16,TEXT ;SETUP "NO WILDCARD" MSG: CALL TYPEP ; DISPLAY IT AND THEN EXIT/15$: BITB STAT,#CS.MOR ;COMMA PRESENT? 1 BEQ 20$ ;IF NOT, CONTINUE 9 MOV #MSG5,TEXT ;SETUP "MULTI-OUTPUT" MSGX: CALL TYPEP ; DISPLAY IT AND THEN EXITA20$: MOV DSDS+0, OUTDSD+0 ;SAVE OUTPUT DSD INFORMATIONT/ MOV DSDS+2, OUTDSD+2 ; (DEVICE)I2 MOV DSDS+4, OUTDSD+4 ; (DIRECTORY)& MOV DSDS+6, OUTDSD+6 ;1 MOV DSDS+8., OUTDSD+8. ; (FILEMANE) & MOV DSDS+10.,OUTDSD+10. ;4 BITB STAT,#CS.EQU ;EQUAL SIGN PRESENT?= BNE 35$ ;IF NOT, PARSE INPUT FILESPECT: MOV #MSG3,TEXT ;SETUP "NO EQUAL SIGN" MSG: CALL TYPEP ; DISPLAY IT AND THEN EXIT335$: CLR SPOOL ;RESET SPOOL SWTICH < BIT MKW1,#SPMASK ;SPOOL (/SP) SWITCH PRESENT?4 BEQ 40$ ;IF NOT, SET "SPOOL"0 BIT MKW2,#SPMASK ;NEGATED (/-SP)?= BEQ IPARSE ;IF NOT, ASSUME /-SP AND PASS <40$: MOV #1,SPOOL ;OTHERWISE, SET SPOOL SWITCH .PAGE * .SBTTL ...PARSE INPUT FILESPEC/SW:IPARSE: CSI$2 #CSIBLK,INPUT,#SWTBL ;PARSE INPUT FILESPEC, BCC 10$ ;SUCCESSFUL?>5$: MOV #MSG7,TEXT ;SETUP "INPUT PARSE ERROR" MSG: CALL TYPEP ; DISPLAY IT AND THEN EXIT/10$: BITB STAT,#CS.MOR ;COMMA PRESENT? - BEQ 20$ ;IF NOT, PASS 8 MOV #MSG8,TEXT ;SETUP "MULTI-INPUT" MSG: CALL TYPEP ; DISPLAY IT AND THEN EXIT320$: BITB STAT,#CS.DVF ;IS THERE A DEVICE?F, BNE 30$ ;IF SO, PASS< MOV #MSG12,TEXT ;SETUP "DEVICE REQUIRED" MSG: CALL TYPEP ; DISPLAY IT AND THEN EXIT030$: MOV #INFDB,R0 ;SETUP INPUT FDB; MOV #INFDB+F.FNB,R1 ;SETUP INPUT FILENAME BLOCKM0 MOV #DSDS,R2 ;SETUP INPUT DSD@ CALL .PRSDV ;PARSE THE DEVICE AND ASSIGN LUN, BCS 5$ ;SUCCESSFUL?9 GLUN$C INLUN,ARGBLK ;GET LUN PARAMETERS (CW1) , BCC .+6 ;SUCCESSFUL?; JMP DIRERR ;IF NOT, DISPLAY ERROR CODEQ> BIT CW1,#DV.F11 ;DO WE HAVE A FILES-11 DEVICE?6 BNE 40$ ;IF SO PASS, OTHERWISE8 MOV #MSG17,TEXT ;SETUP "NOT F11 DEV" MSG: CALL TYPEP ; DISPLAY IT AND THEN EXIT440$: BIT MKW1,#DAMASK ;DIAGNOSTIC ACTIVE? ;JBF001+ BEQ 50$ ;IF EQ00Qݙ64 (NO), THEN PASS ;JBF001E1 TST DASIZE ;DIAGNOSTIC VALUE PRESENT? ;JBF001R- BNE 45$ ;IF SO (NE), THEN GET IT! ;JBF001 ! TST DASIZE+2 ; (DP) ;JBF001R BEQ 50$ ; ;JBF001645$: MOV DASIZE,SIZE ;SETUP DIAGNOSTIC SIZE ;JBF001( MOV DASIZE+2,SIZE+2 ; (DP) ;JBF001" BR 60$ ;AND CONTINUE ;JBF001750$: ;DO PUD SEARCH UNDER IAS, SIZE NOT HERE ;FRB001' MOV R0,-(SP) ;SAVE REGISTER ;FRB001  MOV .PUDBA,R0 ;FRB001W4554$: CMP (R0),ARGBLK ;FOUND SAME DEVICE ? ;FRB001 BNE 555$ ;BR IF NOT ;FRB0010 CMP 2(R0),ARGBLK+2 ;CHECK UNIT NUMBER ;FRB001 BEQ 556$ ;FOUND IT ;FRB001 /555$: ADD #U.SZ,R0 ;BUMP TO NEXT UNIT ;FRB001R% CMP R0,.PUDEA ;END OF PUD ;FRB001S& BLT 554$ ;TRY AGAIN IF NOT ;FRB001# BR 559$ ;SKIP IF ERROR ;FRB001;1556$: MOV U.LBH(R0),SIZE ;FILL IN SIZE ;FRB001 " MOV U.LBN(R0),SIZE+2; ;FRB001.559$: MOV (SP)+,R0 ;RESTORE REGISTER ;FRB001?60$: BIC #177400,SIZE ;MASK OUT ANY HIGH BYTE GARBAGE ;JBF003D9 SUB #1,SIZE+2 ;SET SIZE TO HIGHEST BLK NO (N-1) ;JBF003 SBC SIZE ; DP ;**-1> MOV CDEV+0,DSD+0 ;FILL IN DEVICE SECTION OF DSD$ MOV CDEV+2,DSD+2 ; DP8 CALL VALID ;VALIDATE INPUT SWITCHES= CALL VALUES ;VALIDATE INPUT SWITCH VALUES6 CALL GETLBN ;CONVERT BLK/WD TO LBN .PAGE+& .SBTTL ...RETRIEVE HOME BLOCK1HOME: MOV #"OI,FROM ;DIAGNOSTIC TRACEUA MOV #STBLK,INFDB+F.STBK ;PROVIDE LOC OF STAT BLOCKH8 OPEN$R #INFDB,,,,,,FCSERR ;OPEN THE INDEX FILEH MOV STBLK+4,INFDB+F.HIBK ;SET FDB TO HIGHEST VBN ALLOCATED+ MOV STBLK+6,INFDB+F.HIBK+2 ; DPI@ MOV STBLK+4,INFDB+F.EFBK ;SET EOF AT HIGHEST BLOCK+ MOV STBLK+6,INFDB+F.EFBK+2 ; DPA= ADD #1,INFDB+F.EFBK+2 ;SET EOF AT NEXT BLOCK + ADC INFDB+F.EFBK ; DP 3 MOV #2,VBN+2 ;POINT TO HOMEBLOCK 1 MOV #"RH,FROM ;DIAGNOSTIC TRACE J READ$ #INFDB,#HEADER,,#VBN,#FLAG,,,IOERR ;AND RETREIVE HOME BLK; WAIT$ ,#FLAG ;WAIT FOR CYCLE TO COMPLETED- MOV HEADER+H.FMAX,FMAX ;SAVE MAX # OF FILES.; MOV HEADER+H.IBSZ,HIBSZ ;SAVE H.IBSZ VALUEOC ADD HIBSZ,VBN+2 ;INC VBN TO BLK BEFORE FIRST HEADERI- ; (VBN=3+N-1) # .SBTTL ...OPEN OUTPUT FILE 1 MOV #"OW,FROM ;DIAGNOSTIC TRACE 6 OPEN$W #OUTFDB,,,,,,FCSERR ;OPEN OUTPUT FILE< PUT$ #OUTFDB,#FFEED,#1,IOERR ;SKIP TO TOP OF PAGE ;JBF0011 BIT MKW1,#DAMASK ;/DA SWITCH PRESENT? ;JBF001O* BEQ .+6 ;IF EQ (NO), CONTINUE ;JBF0013 JMP EOJ ;OTHERWISE, PRODUCE SUMMARY ONLY ;JBF001S4 BIT MKW1,#LIMASK ;/LI SWITCH PRESENT?; BEQ NEXT ;IF NOT, DEFAULT IS TO LIST ; BIT MKW2,#LIMASK ;IF PRESENT, IS IT NEGATED? 8 BNE NEXT ;IF NOT, BEGIN SEARCHING? JMP EOJ ;OTHERWISE PRODUCE SUMMARY ONLY .PAGEF' .SBTTL RETRIEVE A HEADER BLOCK03NEXT: MOV VBN,R1 ;PICK UP VBN OF LAST FILE HEADER. MOV VBN+2,R0Q2 ADD #1,R0 ;INCREMENT TO VBN OF NEXT FILE HEADER. ADC R1M' MOV R1,VBN ;SAVE NEW FILE HEADER VBN.# MOV R0,VBN+2S% SUB HIBSZ,R0 ;COMPUTE ID NUMBER (-1) " SUB #3,R0 ; OF NEW FILE HEADER. CMP R0,FMAX ;VALID FILE ID?  BLO 1$ ;YUP. JMP EOJ ;NOPE. ALL DONE. 1$:T, MOV #4096.,R1 ;4096. BITMAP BITS PER BLOCK.5 CALL $DIV ;COMPUTE BITMAP BLOCK # & BIT # IN BLOCK.' ADD #3,R0 ;CONVERT TO INDEX FILE VBN.E1 CMP R0,XBMVBN+2 ;IS THIS BITMAP BLOCK IN MEMORY?O BEQ 3$ ;YUP.3 MOV R0,XBMVBN+2 ;NO, BUT IT WILL BE. REMEMBER IT.F! MOV #"BM,FROM ;DIAGNOSTIC TRACE.R8 READ$ #INFDB,#XBM,,#XBMVBN,#FLAG ;READ IN BITMAP BLOCK. BCC 2$ ;CC = SUCCESS.R( JMP IOERR ;FAILURE - GO PITCH A BITCH.,2$: WAIT$ ,#FLAG ;WAIT FOR READ COMPLETION.)3$: MOV R1,R0 ;COPY BIT NUMBER IN BLOCK.V ASR R0 ;COMPUTEI ASR R0 ; INDEX TO ASR R0 ; BYTE IN BLOCK.) BIC #177770,R1 ;M00QLM-TADATADATAASK BIT NUMBER IN BYTE.N3 BITB BITMSK(R1),XBM(R0) ;IS THIS HEADER ALLOCATED?I# BEQ NEXT ;NOPE. GO TRY NEXT ONE..1 MOV #"HD,FROM ;DIAGNOSTIC TRACETD READ$ #INFDB,#HEADER,,#VBN,#FLAG ;RETRIEVE A HEADER BLOCK, BCC 10$ ;SUCCESSFUL?< CMPB F.ERR(R0),#IE.EOF ;WAS IT AN EOF CONDITION?B BNE .+6 ;IF NOT, THEN FIND OUT THE PROBLEM@ JMP EOJ ;OTHERWISE, IT IS THE END-OF-JOB5 JMP IOERR ;FIND OUT THE PROBLEMN@10$: WAIT$ ,#FLAG ;WAIT FOR INPUT READ TO COMPLETE3 CMP HEADER+H.FNUM,#0 ;A DELETED HEADER? 8 BEQ NEXT ;IF SO, GET NEXT HEADERE MOVB MUSE,R1 ;SETUP R1= NO PTRS IN USE (TIMES TWO)S9 BIC #177400,R1 ;MASK OUT ANY HIGH BYTE GARBAGE ;JBF003O> MOV #MPTR,R3 ;SETUP R3=ADD OF FIRST POINTER# .SBTTL SEARCH MAP POINTERS ;+F; SETUP REGISTERS TO DETERMINE IF A MATCH EXISTS IN THE POINTER GROUP.; .; R1 = NO OF POINTERS (MUSE) (TIMES TWO); R2 = COUNT-1 FIELD2; R3 = ADDRESS OF TWO-WORD RETRIEVAL POINTER;D; POINTER FORMAT: ;E$; BYTE 1 = HIGH EIGHT LBN BITS; BYTE 2 = COUNT FIELD"; BYTE 3/4 = LOW 16 LBN BITS;--15$: CMP R1,#0 ;NULL HEADER?G1 BNE 20$ ;IF NOT, CONTINUEP> JMP NEXT ;OTHERWISE GET THE NEXT HEADER720$: SWAB (R3) ;MOVE COUNT TO LOW BYTEI7 MOVB (R3),R2 ;SETUP R2=COUNT-1 FIELDS9 BIC #177400,R2 ;MASK OUT ANY HIGH BYTE GARBAGE ;JBF003D8 SUB R2,(R3) ;EXTRACT THE PURE DP LBN; SWAB (R3) ;RESTORE POINTER'S HIGH LBNC8 CALL SEARCH ;AND SEARCH THE POINTERS< ADD #4,R3 ;SETUP NEXT POINTER LOCATION5 SUB #2,R1 ;DEC "NO-PTRS-IN-USE" - BR 15$ ;AND CONTINUE .PAGE 4 .SBTTL VALIDATE INPUT SWITCHES (SUBROUTINE);+'; /LBN CANNOT HAVE /BLK OR /WD SWITCHES72; /BLK IS REQUIRED IF NO /LBN, BUT /WD IS OPTIONAL; /WD MUST HAVE /BLK SWITCH ;-6VALID: MOV CSIBLK+C.MKW1,R1 ;SETUP CSIBLK ADDRESS5 BITB R1,#LBMASK ;/LBN SWITCH PRESENT? 9 BNE 10$ ;IF SO, CHECK FOR /BLK SW 5 BITB R1,#BLMASK ;/BLK SWITCH PRESENT? , BNE 60$ ;IF SO, EXIT4 BITB R1,#WDMASK ;/WD SWITCH PRESENT?= BNE 40$ ;IF SO, CHECK FOR /BLK SWITCHC8 MOV #MSG9,TEXT ;SETUP "NO INPUT SW" MSG: CALL TYPEP ; DISPLAY IT AND THEN EXIT>10$: BITB R1,#BLMASK ;/LBN & /BLK SWITCHES PRESENT?6 BEQ 30$ ;IF NOT, CHECK FOR /WD820$: MOV #MSG10,TEXT ;SETUP "TOO MANY SW" MSG: CALL TYPEP ; DISPLAY IT AND THEN EXIT430$: BITB R1,#WDMASK ;/WD SWITCH PRESENT?3 BEQ 60$ ;IF NOT, LTHEN EXIT = BR 10$ ;OTHERWISE, TOO MANY SWITCHES 740$: BITB R1,#BLMASK ;/WD & /BLK SW PRESENT? - BNE 60$ ;IF SOO, EXIT08 MOV #MSG11,TEXT ;SETUP "NO BLOCK SW" MSG: CALL TYPEP ; DISPLAY IT AND THEN EXIT60$: RETURN .PAGE 3 .SBTTL VALIDATE SWITCH VALUES (SUBROUTINE) ;+%; /LBN START VALUE OF ZERO IS INVALID &; BLK VALUES MUST BE GREATER THAN ONE.:; WORD VALUES CANNOT EXCEED 1000 (OCTAL) AND MUST BE EVEN.5; STOP VALUES CANNOT BE LESS THAN THEIR START VALUES. @; A STOP VALUE OF ZERO MEANS GO TO THE END OF DEVICE (OR BLOCK).3; (THE ZERO VALUE IS REPLACED BY THE "SIZE" VALUE) ;-5VALUES: BIT MKW1,#LBMASK ;/LBN SWITCH PRESENT? : BEQ 30$ ;IF NOT, CHECK /BLK SWITCH$ .SBTTL ...CHECK /LBN VALUES: MOV LBN2+2,R1 ;CHECK FOR ZERO STOP VALUE$ ADD LBN2,R1 ; DP? BNE 10$ ;IF NOT ZERO, THEN PROCESS LBN2 G MOV SIZE+0,LBN00Qݙ642+0 ;IF ZERO, SET STOP VALUE TO SIZE OF DEVP$ MOV SIZE+2,LBN2+2 ; DP+ BR 100$ ;AND RETURNL/10$: CMP LBN1,LBN2 ;CHECK HIGH LBN A BLO 100$ ;IF LBN1 LT, THEN OK - CHECK /BLK : BHI 20$ ;IF LBN1 GT, IT'S AN ERROR= CMP LBN2+2,LBN1+2 ;IF EQ, CHECK LOW LBN VALLUESTD BHIS 100$ ;IF LBN2 GE LBN1, THEN GO CHECK /BLK?20$: MOV #MSG13,TEXT ;SETUP "INVALID /LBN VALUE" MSG0: CALL TYPEP ; DISPLAY IT AND THEN EXIT$ .SBTTL ...CHECK /BLK VALUES530$: CMP BLK1,#1 ;IS BLK VALUE GT ONE?L5 BHI 50$ ;IF SO, THEN CONTINUE ?40$: MOV #MSG14,TEXT ;SETUP "INVALID /BLK VALUE" MSG : CALL TYPEP ; DISPLAY IT AND THEN EXIT150$: CMP BLK2,#0 ;CHECK STOP VALUE 7 BEQ 60$ ;IF ZERO, THEN CONTINUE08 CMP BLK2,BLK1 ;IS STOP LT START VALUE?= BLO 40$ ;IF SO, THEN WE HAVE AN ERRORT .PAGET# .SBTTL ...CHECK /WD VALUESM460$: BIT MKW1,#WDMASK ;/WD SWITCH PRESENT?2 BEQ 100$ ;IF NOT, THEN EXIT5 CMP WD1,#10000 ;/WD VALUE TOO LARGE?S7 BHIS 70$ ;IF SO, ERROR CONDITION ? MOV WD1,R0 ;SETUP TO CHECK FOR EVEN NUMBER * MOV #2,R1 ;(DIVISOR)' CALL $DIV ;DIVIDE / CMP R1,#0 ;ANY REMAINDER? 1 BEQ 75$ ;IF NOT, CONTINUE>70$: MOV #MSG15,TEXT ;SETUP "INVALID /WD VALUE" MSG: CALL TYPEP ; DISPLAY IT AND THEN EXITB75$: MOV WD2,R0 ;NOW CHECK THE STOP VALUE FOR EVEN* MOV #2,R1 ;(DIVISOR)' CALL $DIV ;DIVIDED/ CMP R1,#0 ;ANY REMAINDER? = BNE 70$ ;IF SO, THEN WE HAVE AN ERROR E CMP BLK1,BLK2 ;THE SEARCH SPAN MORE THAN ONE BLOCK? 4 BNE 100$ ;IF NOT, THEN RETURN; CMP WD1,WD2 ;IS STOP VALUE GT/EQ START? 3 BHI 70$ ;IF NOT, THEN ERRORX100$: RETURN .PAGE 4 .SBTTL GENERATE THE LBN VALUES (SUBROUTINE);+'; IF /LBN, THEN THE LBN'S ALREADY EXISTV,; IF /BLK, THEN START = (4096 * BLK1) - 4096); STOP = (4096 * BLK2) - 10(; IF /WD, THEN START = LBN1 + (8 * WD1)6; STOP = LBN2 - (4096 - (8 * WD2) + 16);-8GETLBN: BIT CSIBLK+C.MKW1,#LBMASK ;/LBN SW PRESENT?8 BNE 100$ ;IF SO, THEN EXIT( .SBTTL ...CALCULATE /BLK VALUES6 MOV #4096.,R0 ;SETUP SP MULTIPLICAND7 CLR R2 ;SETUP DP HI-MULTIPLIER+9 MOV BLK1,R3 ;SETUP DP LO-MULTIPLICAND C SUB #1,R3 ;ADJUST FOR UNUSED FIRST BITMAP BLK : CALL $DMUL ;PERFORM DP MULTIPLICATION4 MOV R0,LBN1 ;RETRIEVE THE RESULT$ MOV R1,LBN1+2 ; DP4 SUB #4096.,LBN1+2 ;SET THE START VALUE$ SBC LBN1 ; DP9 CMP BLK2,#0 ;SEARCH TO END INDICATOR?SB BNE 10$ ;IF NOT, THEN CALCULATE STOP VALUEG MOV SIZE+0,LBN2+0 ;IF ZERO, SET STOP VALUE TO SIZE OF DEV $ MOV SIZE+2,LBN2+2 ; DP6 BR 20$ ;CHECK /WD AVLUES NEXTA10$: MOV #4096.,R0 ;SETUP TO GENERATE STOP LBN VALUER5 CLR R2 ;SETUP THE STOP VALUEP$ MOV BLK2,R3 ; DPC SUB #1,R3 ;ADJUST FOR UNUSED BITMAP.SYS BLOCK : CALL $DMUL ;PERFORM DP MULTIPLICATION5 MOV R0,LBN2 ;RETRIEVE THE RESULTS $ MOV R1,LBN2+2 ; DP5 SUB #1,LBN2+2 ;STEP TO END OF BLOCK2$ SBC LBN2 ; DP .PAGEK' .SBTTL ...CALCULATE /WD VALUESR;+%; WD2 = 776 IF THERE WAS NO WD00QLM-TADATADATA2 ENTRY ;-420$: BIT MKW1,#WDMASK ;/WD SWITCH PRESENT?2 BEQ 100$ ;IF NOT, THEN EXIT1 MOV #8.,R0 ;SETUP MULTIPLIER 3 MOV WD1,R1 ;SETUP MULTIPLICANDI: CALL $MUL ;PERFORM SP MULTIPLICATION5 ADD R1,LBN1+2 ;RETRIEVE THE RESULTS1$ ADC LBN1 ; DP9 MOV #8.,R0 ;IF SO, THEN CALCULATE IT - MOV WD2,R1 ;MULTIPLICAND : CALL $MUL ;PERFORM SP MULTIPLICATION& MOV #4096.,R0 ;SETUP: SUB R1,R0 ; TO GENERATE OFFSET VALUE5 SUB R0,LBN2+2 ;RETRIEVE THE RESULTSD$ SBC LBN2 ; DP4 ADD #16.,LBN2+2 ;STEP TO END OF WORD$ ADC LBN2 ; DP+ .SBTTL ...VALIDATE LBN VALUES ;JBF001  ;JBF001 2100$: CMP LBN1,SIZE ;CHECK START VALUE5 BLO 105$ ; IS IT WITHIN RANGE? + BHI 102$ ; IS IT OUT OF RANGE? ;JBF002A& CMP LBN1+2,SIZE+2 ; (DP)& BLOS 105$ ; (DP)102$: ;JBF0029 MOV #MSG18,TEXT ;SETUP "OUT OF RANGE" MSG 5 CALL TYPEP ; DISPLAY IT AND EXIT.1105$: CMP LBN2,SIZE ;CHECK STOP VALUE29 BLO 110$ ;IS IT WITHIN THE DEVICE?F% CMP LBN2+2,SIZE+2 ;(DP) & BLOS 110$ ; (DP)C MOV SIZE,LBN2 ;IF NOT, THEN SET TO DEVICE'S LIMIT $ MOV SIZE+2,LBN2+2 ; DP110$: RETURN .PAGE / .SBTTL SEARCH FOR A MATCH (SUBROUTINE) ;+; THE SPAN SEARCH CONSISTS OF:; '; STEP I..CMP UPPER LIMIT TO BASE VALUEL; A) LT = NO MATCH; B) EQ = MATCH $; C) GT = POSSIBLE MATCH3; STEP II.............CMP LOWER LIMIT TO BASE VALUEE'; A) LT = MATCH '; B) EQ = MATCH0; C) GT = POSSIBLE MATCH0; STEP III........................TOP=BASE+COUNT>; CMP UPPER LIMIT TO TOP VALUE3; A) LT = MATCHO3; B) EQ = MATCHU6; C) GT = NO MATCH;-9SEARCH: CMP LBN2,(R3) ;(STEP I.) HI(DP) COMPARE.2 BLO 200$ ;NO MATCH POSSIBLE1 CMP LBN2+2,2(R3) ;LOW (DP) COMPARE 2 BLO 200$ ;NO MATCH POSSIBLE, BEQ 100$ ;MATCH FOUND; CMP LBN1,(R3) ;(STEP II.) HI (DP) COMPAREI, BLO 100$ ;MATCH FOUND( BHI 200$ ;NO MATCH POSSIBLE ;JBF0030 CMP LBN1+2,2(R3) ;LOW (DP) CMPARE$ BLOS 100$ ;MATCH FOUND ;JBF003 ;**-1H, MOV (R3),TOP ;(STEP III.)3 MOV 2(R3),TOP+2 ;SETUP TO CALCULATES: ADD R2,TOP+2 ; TOP OF RTRV POINTER SPAN$ ADC TOP ; DP2 CMP LBN1,TOP ;HIGH (DP) COMPARE2 BHI 200$ ;NO MATCH POSSIBLE, BLO 100$ ;MATCH FOUND1 CMP LBN1+2,TOP+2 ;LOW (DP) COMPARE;2 BHI 200$ ;NO MATCH POSSIBLEG100$: MOV (SP)+,HOLD ;DUMP LAST "JSR RET ADDRESS" FROM STACK B JMP OUTPUT ;RESULTS POSITIVE - RECORD RESULTS<200$: RETURN ;RESULTS NEGATIVE - CONTINUE .PAGE( .SBTTL ASSEMBLE OUTPUT FILESPEC;+>; THIS ROUTINE IS ENTERED WHENEVER A HEADER CONTAINS A POINTERE; WHICH INCLUDED THE LBN'S SPECIFIED IN THE INPUT FILESPEC SWITCHES.UD; THE ARGUMENT BLOCK IS BUILT AND THEN PASSED TO THE SYSTEM EDITOR.;-=OUTPUT: MOV HEADER+H.FNUM, ARGBLK+0 ;SETUP FILE ID NUMBER. < MOV HEADER+H.FSEQ, ARGBLK+2 ;SETUP FILE SEQUENCE NUMBER.> MOV #HEADER+H.PROJ, ARGBLK+4 ;SETUP GROUP NUMBER? MOV #HEADER+H.PROG, ARGBLK+6 ;SETUP MEMBER NUMBER : MOV FNAM+0, ARGBLK+8. ;SETUP FILENAME, 00Qݙ64 MOV FNAM+2, ARGBLK+10. ;, MOV FNAM+4, ARGBLK+12. ;; MOV FNAM+6, ARGBLK+14. ;SETUP FILE TYPEA> MOV FNAM+8., ARGBLK+16. ;SETUP FILE VERSION2 MOV #EDTSTR,R1 ;SETUP EDIT STRING3 CALL WRITE ;OUTPUT THE RESULTS7 ADD #1,FCOUNT ;INCREMENT FILE COUNTERU4 JMP NEXT ;AND GET NEXT HEADER7 .SBTTL WRITE (PUT) TO OUTPUT FILE (SUBROUTINE);;+A; THIS ROUTINE SETS UP AND EDITS THE OUTPUT STRING AND WRITES THE ; RESULTS TO THE OUTPUT FILE.;; ; R0 = OUTPUT BUFFER=; R1 = EDIT STRING (SUPPLIED PRIOR TO ENTERING ROUTINE) *; R2 = ADDRESS OF THE ARGUMENT BLOCK;-=WRITE: MOV #BUFFER,R0 ;SETUP OUTPUT BUFFER LOCATION 5 MOV #ARGBLK,R2 ;SETUP ARGUMENT BLOCK 0 CALL $EDMSG ;CALL THE EDITOR? MOV R1,LENGTH ;SAVE THE EDITTED STRING LENGTHOA PUT$ #OUTFDB,#BUFFER,LENGTH,IOERR ;OUTPUT THE RESULTSE RETURN .PAGE- .SBTTL DISPLAY MESSAGES (SUBROUTINE)=;+=; THESE ROUTINES DISPLAY INFORMATION AND ERROR MESSAGESR;-DTYPEP: QIOW$C IO.WVB,DISP,FLAG,,,, ;DISPLAY PREFIX9 MOV #53,OUT+Q.IOPL+4 ;SET QIOW TO /MSG// 8 BR TTT ;BYPASS Q.IOPL PARAMETER?TYPE: MOV #40,OUT+Q.IOPL+4 ;RESET QIOW TO //MSG// ;TTT: MOV TEXT,OUT+Q.IOPL ;PROVIDE ADDRESS OF MESSAGEB= ADD #1,OUT+Q.IOPL ;STEP PAST MESSAGE COUNT BYTE > MOVB @TEXT,OUT+Q.IOPL+2 ;PROVIDE LENGTH OF MESSAGE; DIR$ #OUT,DIRERR ;AND OUTPUT THE MESSAGER9 CMP OUT+Q.IOPL+4,#53 ;WAS THIS AN ERROR MSG? / BNE .+6 ;IF NOT, RETURN40 JMP EXIT ;OTHERWISE, EXIT RETURN .PAGET" .SBTTL END OF JOB ROUTINE>EOJ: MOV #INFDB+F.DVNM,ARGBLK ;SETUP ASCII DEVICE NAME. MOV INFDB+F.UNIT,ARGBLK+2 ;SETUP UNIT NUMBER.= MOV #SIZE,ARGBLK+4 ;SETUP NO OF BLOCKS ON DEVICET2 MOV #DEVSTR,R1 ;SETUP EDIT STRING; ADD #1,SIZE+2 ;SET BACK TO MAX NO OF BLKS $ ADC SIZE ; DP4 CALL WRITE ;;OUTPUT THE RESULTS? MOV LBN2+2,HOLD+2 ;SETUP TO FIND # BLOCKS IN SPAN $ MOV LBN2,HOLD ; DP4 SUB LBN1+2,HOLD+2 ;FIND THE DIFFERENCE$ SBC HOLD ; DP SUB LBN1,HOLD ; DP ;JBF003? ADD #1,HOLD+2 ;COMPENSATE FOR THE SUBTRACTIONN$ ADC HOLD ; DP: MOV #HOLD,ARGBLK ;SETUP ADDRESS OF DP VALUE, MOV #RNGSTR,R1 ;EDIT STRING3 CALL WRITE ;OUTPUT THE RESULTSU@ MOV #LBN1,ARGBLK ;SETUP ADDRESS OF START LBN BYTE: MOV LBN1+2,ARGBLK+2 ;SETUP START LBN(LO) VALUEF MOV #LBN1,ARGBLK+4 ;SETUP ADDRESS OF START HIGH LBN (DEC), MOV #LOSTR,R1 ;EDIT STRING3 CALL WRITE ;OUTPUT THE RESULTSHD MOV #LBN2,ARGBLK ;SETUP ADDRESS OF STOP LBN HIGH BYTE9 MOV LBN2+2,ARGBLK+2 ;SETUP STOP LBN(LO) VALUERE MOV #LBN2,ARGBLK+4 ;SETUP ADDRESS OF STOP HIGH LBN (DEC) , MOV #HISTR,R1 ;EDIT STRING3 CALL WRITE ;OUTPUT THE RESULTS25 MOV FCOUNT,ARGBLK ;SETUP THE FILE COUNTN, MOV #FILSTR,R1 ;EDIT STRING3 CALL WRITE ;OUTPUT THE RESULTS 2 CALL GETIME ;FIND ELAPSED TIME< MOV #STRTIM,R0 ;SETUP FOR ELAPSED TIME LINE. MOV #HR2,R1 ;OUTPUT STRING8 MOV #3,R2 ;REQUEST HH:MM:SS FORMAT1 CALL $TIM ;CONVERT THE TIMEHF PUT$ #OUTFDB,#TIMSTR,#TLONG,IOERR ;OUTPUT ELASPSED TIME= MOV CSIBLK+C.CMLD, OUTFDB+F.NRBD ;SETUP ADDRESSN< MOV CSIBLK+C.CMLD+2,OUTFDB+F.NRBD+2;SETUP LENGTH4 PUT$ #OUTFDB,,,IOERR ;OUTPUT CO00QRM-TADATADATAMMAND LINE2 CMP SPOOL,#0 ;SPOOL THE OUTPUT?- BEQ EXIT ;IF NOT, PASSE- PRINT$ #OUTFDB,FCSERR ;SPOOL OUTPUTGCEXIT: CLOSE$ #OUTFDB,FCSERR ;CLOSE THE FILE BEFORE LEAVING ;HWG001A" CLOSE$ #INFDB,FCSERR ;HWG001% EXIT$S ;EXIT THE PROGRAM ;HWG001T .PAGE;3 .SBTTL CALCULATE ELAPSED TIME (SUBROUTINE),/GETIME: GTIM$C TIME2 ;SAVE STOP TIMES1 CMP SEC1,SEC2 ;PAST 60 SECONDS? , BLE 10$ ;IF NOT PASS( ADD #60.,SEC2 ; ADJUST/ ADD #1,MIN1 ; AND CARRY ONE,410$: SUB SEC1,SEC2 ; FIND DELTA SECONDS1 CMP MIN1,MIN2 ;OVER 60 MINUTES?E- BLE 20$ ;IF NOT, PASS;0 ADD #60.,MIN2 ; ADJUST MINUTES/ ADD #1,HR1 ; AND CARRY ONEI320$: SUB MIN1,MIN2 ;FIND DELTA MINUTESS/ CMP HR1,HR2 ;OVER 24 HOURS?P- BLE 30$ ;IF NOT, PASS . ADD #24.,HR2 ; ADJUST HOURS130$: SUB HR1,HR2 ;FIND DELTA HOURSR RETURN .PAGEC .SBTTL ERROR ROUTINE ;+; ERROR ROUTINES------------0.; ENTERED WHEN AN ERROR CONDITION IS DETECTED4; "FROM" CONTAINS A KEY TO WHERE THE ERROR OCCURREDD; (SEE "DIAGNOSTIC TRACE" STATEMENTS BEFORE EACH FCS MACRO); ;15; THE ERROR CODES ARE CONTAINED IN APPENDIX I OF THER0; I/O OPERATIONS REFERENCE MANUAL (AA-2515D-TC); /; THE PROGRAM EXITS AFTER INDICATING THE ERROR ; ?; ...ENTER AT "DIRERR" FOR EXECUTIVE DIRECTIVE REJECTION ERRORR1; ...ENTER AT "IOERR" FOR A READ/WRITE I/O ERRORR9; ...ENTER AT "FCSERR" FOR FCS (OPEN/CLOSE) MACRO ERRORSR;W$; R0=ADDRESS OF THE RESPECTIVE FDB;-@IOERR: MOV IOSB,F.ERR(R0) ;RETRIEVE DIR ERR # FOR DECODING. BR FCSERR ;AND DECODE IT1DIRERR: MOV $DSW,F.ERR(R0) ;RETRIEVE THE DSWX1FCSERR: CMPB F.ERR+1(R0),#0 ;IS IT AN 'IOER'?2; BEQ 25$ ;IF SO, PASS 'QIOE' ROUTINE 2 MOV #"QI,ERRTYP ;ENTER 'QIOE' TYPE8 MOV #"OE,ERRTYP+2 ;(SECOND PART OF 'QIOE')2 BR SHOERR ;NOW OUTPUT RESULT225$: MOV #"IO,ERRTYP ;ENTER 'IOER' TYPE8 MOV #"ER,ERRTYP+2 ;(SECOND PART OF 'IOER')9SHOERR: MOVB F.ERR(R0),R1 ;ACTUAL # TO BE CONVERTEDD: NEG R1 ;TAKE THE TWO'S COMPLIMENTH MOV #HOLD,R0 ;ADDRESS OF TEMP HOLDING AREA FOR RESULT> MOV #1,R2 ;INDICATES NO ZERO-SUPPRESSIONB CALL $CBDMG ;CONV MAGNITUDE OF BIN BYTE TO DEC0 MOVB HOLD+4,ERRNO+1 ;MOVE TENS DIGIT4 MOVB HOLD+3,ERRNO ;AND THE UNITS DIGITE QIOW$C IO.WVB,DISP,FLAG,,,, ;PRINT ERR MSGF1 EXIT$S ;EXIT THE PROGRAM  .END START NEG R1 ;TAKE THE TWO'S COMPLIMENTH MOV #HOLD,R0 ;ADDRESS OF TEMP HOLDING AREA FOR RESULT> MOV *&8"tлL%@<&D@*<&@<&Kq@<&%t@<&9@' q@*'@$9!@:2@t @ @*@@:@i@m @*s@?T@ݪK@@Q@`@*=@@=@X@p@?S@*hp!@vw@Q@@}@*ձ@`;@(y p(2 (   ""H&&v v,,  <&9<&Kq<&D ``'jj >| |P$*$SPIDLI DA@LB$*JtBL`WDj@t`j &@$pB"B   ,*, :2Rdd <&%thh ffjj xxz00Rݙ64z yy ' q % [0,0]INDEXF.SYS t <& 2 2 2 '88&8" NL*LSYCommand line errorCSI interprete*rr error No equal signCSI output parse*r error#Multiple output files not perm*ittedOutput parse errorCSI input par*ser error"Multiple input files not per* mittedNo input switchesToo many swit*0chesBlock switch missingInput device*V must be specifiedInvalid /LBN value(*|s)Invalid /BLK value(s)Invalid /WD v*alue(s)No wildcards permittedInput n*ot FILES-11 deviceStart value out of range&*FIL - -- error -(%P,%P) [%B,%B* ]%X%N%2A%M: = %T. blocksSpan: %T. bl*@ ocksLO LBN: H:%B L:%P = %T.HI LBN: H*f :%B L:%P = %T.%NFiles found: %M.Elap sed time:  * FILES error -- FILES>FILES version  1.0B  @m * fb d ׭jX  ?S($9! w8P. R-Z Pp=  * JB c $ p ="c*6 ȕ$  =$@=*\  w׽ ׽y  *  lhd`* \|Xx׽C yr 7 h=@y* =:Rȕ6 6$@=* : ^׽( L׽I(I  :V  Vvwp  2 *2 wr=R@ =@  p*X | xpl&7""Q*~ 7,e7 77E  *  |JF  F * OI,V#  l V' qhp!* hd`eZw T.RH* V<4e6( V <(ձ*<  f( mOW`;*b #  >  'hp! *  =v@w=j =d }* weA wx7v7 * w e7 P 7JBMV i(V* 84e6( w 8$ձ* ( @ Ep HD`;  *F V<4e6( V <(ձ*l *w w*( -T $9!`;* EDW w ’E e D* HW WWV $* zW"F jW W4. "&4* R=m F**-B-=h -Xh*P~ -H-@<=#-~*v  W   i* W --ꂇ=POi*  7@w>8 2-m *<(8$  7&m * w = w`&ݪK*4w  @7 eݪK*Zw - - -* --~#-z*-j-dxt`pw j-*Hd -@\w*   * ew w  $?T >  P }p    $:2  Z*Z + e  p *D $-+w D *, exw r pZ R ,  *J >ew 4 < $4 *E "~zE  *v] du   ] u & *>     F00RS T!-TADATADATA  @Q  }*d~z  ,-Y }&*8Tf ? e |*RyeB  *& & LP) &`*õ & & & & & ffI <&Kq*" eA    rV`(VH  d3`p= X*X-e<e-  p*~e<epn|-ftelX*f<**+QI:OE6s*IO,ER(*   ":  p    :2  3  p &`*õ & & & & & ffI <&Kq*" eA    rV`(VH  d3`p= X*X-e<e-  p*~e<epn|-ftelXFILES,FILES/CR/-SP=FILES/ TASK=...FLB//) .TITLE FILLSB - FILL IN STATISTICS BLOCK  .IDENT "0002";ED; MODULE: FILES-11 ACTIVITY REPORTING TASK -- FILL STATISTICS BLOCK;R; VERSION: 0002;F; AUTHOR: ANDY PUTNINSD;O; DATE: 20-NOV-78;#; MODIFICATIONS:D5; 10-APR-79 A. PUTNINS USE NEW DYNAMIC MEMORY FEATUREE;T ; PURPOSE: H; THIS ROUTINE FILLS IN THE STATISTICS BLOCKS ALLOCATED AND INITIALIZEDJ; BY 'GETPRM'. WE RAISE OUR RUN PRIORITY TO ONE GREATER THAN THAT OF THEN; ACP(S) UNDER EXAMINATION, TO PREVENT IT FROM MODIFYING ITS DATA STRUCTURES.;A ; INPUTS:H; 'LH.SB' IS LISTHEAD OF STATISTICS BLOCKS INITIALIZED WITH DEVICE NAME,,; PUD ADDRESS, AND EMPTY ATTRIBUTE LISTHEAD$; 'ACPPRI' CONTAINS ACP RUN PRIORITY;- ; OUTPUTS: ); ALL STATISTICS BLOCKS IN LIST FILLED INEA; 'SCALLO' CONTAINS SCOM NODE COUNT FOR TABULATED DATA STRUCTURESL;N; REGISTER USAGE:; R0=PUD ENTRY ADDRI; R1=ACP'S ATL ADDR' ; R2=VCB ADDR (; R5=CURRENT STATISTICS BLOCK ENTRY ADDR; .MCALL ALTP$S,.INH0,F11DF$T- F11DF$ ;DEFINE ACP DATA STRUCTURE OFFSETS .PAGE .PSECT FILLSB,RO,ILFILLSB:: PUSH I$ CLR SCALLO ;CLEAR SCOM USAGE STAT( MOV ACPPRI,R0 ;GET ACP RUN PRIORITY... INC R0 ;...PLUS ONE ALTP$S ,R0 ;BLOCK IT$ MOV #LH.SB,R5 ;STAT BLOCK LISTHEAD;E); ADVANCE TO NEXT STATISTICS BLOCK ENTRYA;A6NXTDEV: MOV @R5,R5 ;ADVANCE TO MEXT STATISTICS BLOCK CMP R5,#LH.SB ;END OF LIST?' BEQ FCMFRE ;YES;C); FILL IN STAT BLOCK ENTRY WITH PUD INFOC; 3 MOV P.PUD(R5),R0 ;GET PUD POINTER FROM STAT BLOCKT' BITB #CH.OFF,U.CH(R0) ;DEVICE OFFLINE?, BEQ 10$ ;NO& BIS #F.OFF,.SBFLG(R5) ;YES - SET FLAG BR NXTDEV ;AND CONTINUE210$: BITB #CH.FOR,U.CH(R0) ;IS IT MOUNTED FOREIGN? BEQ 20$ ;NO& BIS #F.FOR,.SBFLG(R5) ;YES - SET FLAG BR NXTDEV ;AND CONTINUE520$: BITB #CH.LAB,U.CH(R0) ;IS VOLUME A LABELED TAPE?D BEQ 30$ ;NO' BIS #F.TAPE,.SBFLG(R5) ;YES - SET FLAGI BR NXTDEV ;AND CONTINUE 30$: TST U.ACP(R0) ;ACP ACTIVE? BEQ NXTDEV ;NOP;D); FIND ATL ENTRY FOR THE ACP OF INTEREST;B! .INH0 ;INHIBIT TASK SWITCHINGE) MOV #.ATLLH,R1 ;;GET ATL LIST HEAD ADDR;'40$: MOV (R1),R1 ;;GET NEXT ATL ENTRYE CMP R1,#.ATLLH ;;END OF LIST?S BNE 42$041$: CALL ..ENB0 ;;YES - ENABLE TASK SWITCHING' BR NXTDEV ; AND FORGET THIS DEVICEN(42$: CMP U.ACP(R0),A.TD(R1) ;;STD MATCH? BNE 40$ ;;NO - TRY NEXT ENTRY TST A.HA(R1) ;;ACP IN MEMORY?T! BEQ 41$ ;;NO - TRY NEXT DEVICE& CALL ..ENB0 ;;ENABLE TASK SWITCHING;T); FILL IN STAT BLOCK ENTRY WITH VCB INFOC00T&UU-V.64;F2 MOV @U.ACP(R0),.ACPNM(R5) ;ACP NAME TO STAT BLOCK/ MOV U.VA(R0),R2 ;VOLUME CONTROL BLOCK ADDRESSM9 ADD #</8.>,SCALLO ;BUMP COUNT OF SCOM NODES PUSH * MOV R2,R0 ;POINT TO VOLUME LABEL IN VCB ADD #V.LABL,R0 1 MOV R5,R1 ;POINT TO VOLUME LABEL IN STAT BLOCKA ADD #.VLAB,R17 MOV R1,P.VLAB(R5) ;SET UP LABEL POINTER IN STAT BLOCKA MOV #12.,R3 ;LENGTH050$: MOVB (R0)+,(R1)+ ;MOVE LABEL TO STAT BLOCK SOB R3,50$I POP : MOV V.TRCT(R2),C.TRCT(R5) ;GET TRANSACTION COUNT FROM VCB;); COLLECT ACP STATISTICSM;U CALL CNTFCB ;COUNT FCB'SL BCC 60$1 BIS #F.BADF,.SBFLG(R5) ;POINTER ERROR - SET FLAGF$; CALL CNTWND ;COUNT WINDOW BLOCKS"; CALL CNTLKB ;COUNT LOCK BLOCKS!60$: JMP NXTDEV ;DO NEXT DEVICE  .PAGE;A#; COMPUTE FCPCOM SPACE UTILIZATIONM;RFCMFRE:R( MOV .FRLH,R0 ;GET FCPCOM FREE LISTHEAD) CLR R1 ;CLEAR TOTAL FREE SPACE COUNTER)% CLR R2 ;CLEAR LARGEST HOLE COUNTER0(10$: ADD 2(R0),R1 ;ADD IN NEW HOLE SIZE0 CMP 2(R0),R2 ;IS THIS THE LARGEST HOLE SO FAR? BLOS 20$ ;NO - CONTINUE" MOV 2(R0),R2 ;YES - GET NEW SIZE20$: TST (R0) ;DONE? BEQ 30$ ;YESS% MOV @R0,R0 ;NO - LOOK AT NEXT HOLEO BR 10$ ;LOOP TILL DONEC'30$: MOV R1,FCFREE ;STORE AWAY RESULTSE MOV R2,FCHOLE;7; COMPUTE TOTAL SIZE OF FCPCOM AND PERCENT UTILIZATIONM;.% MOV #.F1END,R3 ;LAST ADDR IN FCPCOMR$ SUB #.FRLH,R3 ;SUBTRACT FIRST ADDR3 SUB #4,R3 ;FIRST 2 WORDS ARE FREE SPACE LISTHEAD2/ BLE 40$ ;ERROR IF FCPCOM LENGTH NOT POSITIVES" MOV R3,FCSIZE ;SAVE TOTAL LENGTH& CLR R2 ;CLEAR HIGH ORDER FOR DIVIDE/ DIV #100.,R2 ;DIVIDE BY 100. TO YIELD PERCENT3 BCS 40$ ;DIVIDE BY ZERO? MOV FCSIZE,R1 ;GET TOTAL AGAIN SUB FCFREE,R1 ;COMPUTE USEDC& CLR R0 ;CLEAR HIGH ORDER FOR DIVIDE" DIV R2,R0 ;DIVIDE USED BY TOTAL BCS 40$ ;DIVIDE BY ZERO?( MOV R0,FCUTIL ;SAVE FCPCOM UTILIZATION BR 50$F(40$: CLR FCSIZE ;ERROR - ZERO TOTAL...! CLR FCUTIL ;...AND UTILIZATIONA,50$: ALTP$S ;RESTORE DEFAULT RUN PRIORITY POP  RETURNO .ENDGTH& CLR R2 ;CLEAR HIGH ORDER FOR DIVIDE/ DIV #100.,R2 ;DIVIDE BY 100. TO YIELD PERCENT3 BCS 40$ ;DIVIDE BY ZERO? MOV FCSIZE,R1 ;GET TOTAL AGAIN SUB FCFREE,R1 ;COMPUTE USEDC& CLR R0 ;CLEAR HIGH ORDER FOR DIVIDE" DIV R2,R0 ;DIVIDE USED BY TOTAL BCS 40$ ;DIVIDE BY ZERO?( MOV R0,FCUTIL ;SAVE FCPCOM UTILIZATION BR 50$F(40$: CLR FCSIZE ;ERROR - ZERO TOTAL...! CLR FCUTIL ;...AND UTILIZATIONA,50$: ALTP$S ;RESTORE DEFAULT RUN *&MNLf@ @@* @'@*K@^@%@*%Mq@&_@ &U<@ &t~@\Lw@*9wL@@@2@@@-BINSIZ> ; WILL POINT TO LAST BINL;G FCSMC$ ; DEFIN FCS MACROSS; TCBDF$ ; DEFINE TCB OFFSETS; UCBDF$ ; DEFINE UCB OFFSETS' FSRSZ$ 0 ; NO FSR FOR BLOCK OPERATIONS.PAGEU .SBTTL DATA AREASFDB: FDBDF$Y FDRC$A FD.RWM FDBK$A INBUF,512.,,10 FDOP$A 1,DSETDSET:O .WORD 0,0 .WORD UICSIZ,UIC .WORD NAMSIZ,NAMEUIC: .ASCII /[0,0]/$ UICSIZ=.-UIC .EVENNAME: .ASCII /BITMAP.SYS/ NAMSIZ=.-NAMEI .EVENINBUF: .BLKW 512.I&ALUN: ALUN$ 1,DK,0 ; DUMMY ASSIGN LUNGMCR: GMCR$ ;N/BUF=GMCR+2 ; BUF OVERLAYS COMMAND LINE BUFFERC# .BLKW 20. ; NEED SOME EXTRA SPACEETIME: GTIM$ BUF/READ: QIOW$ IO.RVB,1,10,,IOST,,R(DPB: QIOW$ IO.WVB,5,1,,,,'BLOCK: .WORD 1 ; BLOCK COUNTER FOR QIO% ; BLOCK 1 IS NOT PART OF BIT MAP,& ; SO WILL START READING AT BLOCK 21TOTALH: .WORD 0 ;; HOLDS TOTAL HIGH PART 5/19/78U0TOTALL: .WORD 0 ;; HOLDS TOTAL LOW PART 5/19/78<COUNTH: .WORD 0 ;; ACCUMULATE FREE BLOCKS HIGH PART 5/19/78(COUNTL: .WORD 0 ;; LOW PART 5/19/78 IOST: .BLKW 2 JBINS: .WORD 25.,50.,75.,100.,250.,500.,750.,1000.,2500.,5000.,7500.,10000.5BSIZ=12. ; NUMBER OF BINS - THE BIGGEST (< 10000. ):GBIN: .BLKW BSIZ*2+2 ;HOLDS FREQUENCY COUNT FOR EACH BIN(DOUBLE) 5/19/78 JBINSUM: .BLKW BSIZ*2+2 ; HOLDS #BLOCKS FOR EACH BIN(2 WORDS EACH). 5/19/78.PAGE2 .SBTTL ASCII MESSAGESD;ISTRNG: .ASCII <11><11>/DISK FRAGMENTATION STATISTICS FOR /OASCDEV: .ASCII /DK0:/ & .ASCII /%2N/<11><11><11>/%Y/<11>/%3Z/6 .ASCII /%2N/<11><11>/CONTIGUOUS FREE BLOCKS (HOLES)/A .ASCII /%2NHOLE RANGE/<11>/ FREQUENCY/<11><11>/NUMBER OF BLOCKS/5;+D; NOTE - THE ? CHARACTERS APPEAR IN PLACE OF THE $DEMSG DIRECTIVE %TF; DUE TO THE FAILURE OF $EDMSG TO DO DOUBLE PRECISION. AT SUCH TIME ASH; THE PROBLEM IS FIXED, THE VARIOUS FIELDS OF 9 ? CHARACTERS MAY BE EACHC; REPLACED WITH %T AND THE INTERNAL ROUTINE EDIT MAY BE ELIMINATED.I;-: .ASCII /%N 0 - 25/<11>/?????????/<11><11>/?????????/: .ASCII /%N 26 - 50/<11>/?????????/<11><11>/?????????/: .ASCII /%N 51 - 75/<11>/?????????/<11><11>/?????????/: .ASCII /%N 76 - 100/<11>/?????????/<11><11>/?????????/: .ASCII /%N 101 - 250/<11>/?????????/<11><11>/?????????/: .ASCII /%N 251 - 500/<11>/?????????/<11><11>/?????????/: .ASCII /%N 501 - 750/<11>/?????????/<11><11>/?????????/: .ASCII /%N 751 - 1000/<11>/?????????/<11><11>/?????????/: .ASCII /%N1001 - 2500/<11>/?????????/<11><11>/?????????/: .ASCII /%N2501 - 5000/<11>/?????????/<11><11>/?????????/: .ASCII /%N5001 - 7500/<11>/?????????/<11><11>/?????????/: .ASCII /%N7501 -10000/<11>/?????????/<11><11>/?????????/: .ASCII /%N > 10000/<11>/?????????/<11><11>/?????????/8 .ASCIZ /%2N/<11><11>/TOTAL FREE BLOCKS /<11>/?????????/ .EVEN)ER1: .ASCII /...FRG - PRIVILEGED COMMAND/1 ER1SIZ=.-ER1 .EVEN'ER2: .ASCII /...FRG - FAILURE ON INPUT/1 ER2SIZ=.-ER2 .EVEN,ER3: .ASCII /...FRG - COMMAND LINE FAILURE/ ER3SIZ=.-ER3 .EVEN%ER4: .ASCII /...FRG - ILLEGAL DEVICE/? ER4SIZ=.-ER4 .EVEN .PAGE .SBTTL INIT CODE7;+<; ** FRAG - DISPLAY FRAGMENTATION DATA FOR FILES-11 DEVICES;? ; SYNTAX:1 ; FRG DDN:?;; WHERE:$; DD - A LEGAL 00W7U-V.64FILES-11 DEVICE NAME; N - A LEGAL UNIT NUMBER < 8/;-FRAG:B DIR$ #GMCR ; GET COMMAND LINER BCC 1$ 3 JMP ERROR3 ; STRICT SYNTAX-MUST HAVE COMMAND LINE;: 1$: MOV #BUF+3,R0 ; COMMAND LINE- CMPB #' ,(R0)+ ; STRICT SYNTAX-MUST BE SPACE- BEQ 3$L JMP ERROR3 ;; 5/19/783;.3$: MOV (R0),ALUN+A.LUNA MOVB (R0)+,ASCDEV ;1 MOVB (R0)+,ASCDEV+1 ; GET DEVICE NAME FOR OUTPUT$ MOVB (R0),ASCDEV+2 ; AND DEV NUMBER# CMPB (R0),#': ; IMPLIED DEVICE 0 ?1 BNE 44$ ; NO CLRB (R0) ; YES  BR 46$ ; DIGIT OKV"44$: CMPB (R0),#60 ; VALID DIGIT ? BGE 45$ ; BR IF OK JMP ERROR4 ; ELSE BADL"45$: CMPB (R0),#67 ; VALID DIGIT ? BLE 46$ ; BR IF OK JMP ERROR4 ; ELSE BADB#46$: BIC #177770,(R0) ; STRIP ASCII)) MOV (R0),ALUN+A.LUNU ; DEV NUM FOR ALUN$" DIR$ #ALUN ; ASSIGN INPUT DEVICE BCC 4$ ;; 5/19/78M! JMP ERROR4 ; CS= ILLEGAL DEVICED;1)4$: CLR COUNTL ;; CLEAR LOW PART 5/19/78A CLR COUNTH ; HIGHB CLR TOTALL ; LOW CLR TOTALH ; HIGH;E? OPNS$R #FDB,,,,,,ERROR2 ;; OPEN FOR SHARED READ ACCESS 6/21/78R.PAGE; .SBTTL GATHER USAGE STATISTICS RECORD:E INC BLOCK. MOV BLOCK,READ+Q.IOPL+10 ; SET FOR NEXT BLOCK DIR$ #READ ; READ A BLOCK  TSTB IOST ; DONE?C BLT ERR ; LT=MAYBE" MOV #INBUF,R0 ; GET RECORD BUFFERBLOCKS:L! MOV (R0)+,R1 ; GET 1ST 16 BLOCKSE BEQ FULL ; EQ= ALL USED CMP R1,#-1 ; ALL FREE? BNE COUNT ; NE=NOT ALL FREE;' ADD #16.,COUNTL ; COUNT 16 FREE BLOCKSH2 ADC COUNTH ;; DOUBLE PRECISION ADD CARRY 5/19/78 BR END ; SEE IF DONE; COUNT:! MOV #16.,R2 ; BIT SHIFT COUNTER;SHIFT: ASR R1 ; CHECK A BLOCK BCC FULL ; CC= A USED BLOCKB, ADD #1,COUNTL ;; COUNT A BLOCK FREE 5/19/78- ADC COUNTH ;; CARRY INTO HIGH PART 5/19/78 BR ENDLP ; SEE IF DONE;NFULL:; TST COUNTL ; ANY FREE BLOCKS?V BEQ ENDLP ; EQ=NOPEBFULL1: MOV #BSIZ,R4 ; NUMBER OF BINS CLR R3 ; CLEAR BIN POINTER) CLR R5 ;; CLEAR BINSIZE POINTER 5/19/78C5$:10 TST COUNTH ; FIRST SEE IF HIGH WORD IS NONZERO$ BEQ 6$ ; IF 0, THEN CHECK EACH BIN0 MOV #BINEND,R3 ; IF NOT 0, THEN GET BIGGEST BIN BR 10$ ;6$:;* CMP COUNTL,BINS(R5) ; MORE THAN THIS BIN?8 BLOS 10$ ;; LE=NOPE (SIGNED BRANCH IS A NO-NO 6/23/78)- TST (R5)+ ;; POINT TO NEXT BIN SIZE 5/19/78L* CMP (R3)+,(R3)+ ;; BUMP BIN POINTER TWICE SOB R4,5$ ; CHECK NEXT BIN; )10$: ADD COUNTL,TOTALL ; ACCUMULATE TOTAL ( ADC TOTALH ;; DOUBLE PRECISION 5/19/78 ADD COUNTH,TOTALH ;;N1 ADD COUNTL,BINSUM+2(R3) ; ACC TOTAL FOR EACH BINH, ADC BINSUM(R3) ;; DOUBLE PRECISION 5/19/78 ADD COUNTH,BINSUM(R3) ;;F" ADD #1,BIN+2(R3) ;; INCREMENT BIN) ADC BIN(R3) ;; DOUBLE PRECISION 5/19/78N CLR COUNTL ; CLEAR COUNTER CLR COUNTH ;; 5/19/78OENDLP:! TST R1 ; ANY FREE BLOCKS STILL?B BNE 1$ ;; NE=NO-END THE LOOP3 TST COUNTL ;;YES-BUT ARE OLD FREE BLOCKS COUNTED?T* BNE FULL1 ;; NE=NO, BETTER GO COUNT THEM$ TST COUNTH ;; HOW ABOUT HIGH WORD?6 BNE FULL1 ;; NE=NOT EMPTY, BETTER COUNT THEM 6/23/78) BR END ;; NONE LEFT IN THIS SET-GET OUTU&1$: SOB R2,SHIFT ; CHECK ANOTHER BLOCK;CEND:( CMP R0,#ALUN ; READ ANOTHER DISK BLOCK? BHIS RECORD ; HIS=YES ( BR BLOCKS ; NO,LOOK AT ANOTHER 16 BITS;EERR:" CMPB #IE.EOF,IOST ; END OF FILE? BNE ERROR2 ; NE=OOPS! BR FINISH ; WRITE STATISTICSN;HERROR1:T( MOV #ER1,DPB+Q.IOPL ; GET ERROR STRING$ MOV #ER1SIZ,DPB+Q.IOPL+2 ; GET SIZE BR OUT ;M/ERROR2: MOV #ER2,DPB+Q.IOPL ; GET ERROR STRING1$ MOV #ER2SIZ,DPB+Q.IOPL+2 ; GET SIZE BR OUTB/ERROR3: MOV #ER3,DPB+Q.IOPL ; GET ERROR STRING $ MOV #ER3SIZ,DPB+Q.IOPL+2 ; GET SIZE BR OUTR/ERROR4: MOV #ER4,DPB+Q.IOPL ; GET ERROR STRING $ MOV #ER4SIZ,DPB+Q.IOPL+2 ; GET SIZE BR OUT .PAGEE .SBTTL GENERATE REPORTT; FINISH:L DIR$ #TIME ; GET TIME/DATE MOV #BSIZ+1,R0 ; # OF BINSC" MOV #BUF+14,R2 ; START OF NUMBERS$ MOV #BIN,R5 ; GET FREQUENCY BUFFER& MOV #BINSUM,R4 ; GET SUBTOTALS BUFFER10$:' MOV (R5)+,(R2)+ ; TRANSFER A FREQUENCY- MOV (R5)+,(R2)+ ;; TRANSFER LOW PART 5/19/78& MOV (R4)+,(R2)+ ; TRANSFER A SUBTOTAL- MOV (R4)+,(R2)+ ;; TRANSFER LOW PART 5/19/78 SOB R00W?XD!-TADATADATA0,10$ ; GET ANOTHER. MOV TOTALH,(R2)+ ;; TOTAL FREE BLOCKS 5/19/78% MOV TOTALL,(R2) ;; LOW PART 5/19/78 MOV #BUF,R2 ; GET ARGUEMENTS- MOV #INBUF,R0 ; GET NEW OUTPUT STRING BUFFERZ" MOV #ISTRNG,R1 ; GET ASCIZ STRING CALL $EDMSG ; EDIT STRING,5 CALL EDIT ; USED TO REPLACE $EDMSG DOUBLE PRECISIONT, MOV #INBUF,DPB+Q.IOPL ; GET STRING INTO DPB) MOV R1,DPB+Q.IOPL+2 ; GET SIZE INTO DPBL MOV #2,DPB+Q.IOLU ; USE LUN 2+OUT: CLOSE$ #FDB ; CLOSE THE FILE DIR$ #DPB EXIT$SR.PAGE7 .SBTTL EDIT MESSAGESA;+; SUBROUTINE EDIT);; INPUTS: R0=ADDRESS OF NEXT AVAILABLE BYTE IN OUTPUT BLOCK ; R1=LENGTH OF OUTPUT BLOCKR;M$; OUTPUTS:R1=LENGTH OOF OUTPUT BLOCK;-EDIT:E MOV #INBUF,R3( MOV #BUF+14,R4 ; PARAMETER LIST ADDRESS)2$: TSTB (R3) ; FOUND END OF STRING (0)?E BEQ 40$ ; EQ=YES, DONE5$: CMPB (R3)+,#'? ; GOT '?' ? BNE 5$ ; NE=NOPEP;.6; FOUND START OF ? FIELD; REPLACE WITH A DOUBLE NUMBER;- TSTB -(R3) ; BACKUP POINTER * MOV R3,R0 ; GET ADDRESS IN R0 FOR $CDDMG5 MOV R4,R1 ; GET ADDRESS OF DOUBLE NUMBER (HIGH 1ST)00 MOV #0,R2 ; SET FOR SUPPRESSION OF LEADING 0'S CALL $CDDMG. CMP (R4)+,(R4)+ ; BUMP PARAMETER POINTER BY 2& MOV R3,-(SP) ; SAVE START OF ? STRING2 MOV R0,R1 ; MOVE END OF CONVERSION POINTER TO R1 MOV R0,R2 ; AND TO R2G1 SUB R3,R2 ; MAKE R2 NUMBER OF CHARACTERS OUTPUT? BLE 30$ ; SKIP IF 9 CONVERTEDP MOV R2,-(SP) ; ELSE SAVE IT3 ADD #9.,R3 ; BUMP R3 PAST END OF ????????? STRINGC25$:- MOVB -(R1),-(R3) ; RIGHT JUSTIFY A CHARACTERD, MOVB #40,(R1) ; AND ERASE SHIFTED CHARACTER4 SOB R2,25$ ; DO FOR NUMBER OF CHARACTERS CONVERTED& MOV #9.,R2 ; CALC NUMBER OF ?'S LEFT SUB (SP),R27 SUB (SP)+,R2 ; 9 - 2* (NUMBER OF CHARACTERS CONVERTED) BLT 30$ ; IF NONE SKIP26$:) MOVB #40,-(R3) ; ERASE ANY LEFT OVER ?'SG SOB R2,26$ 30$: MOV (SP)+,R3 ; RESTORE POINTER+ ADD #9.,R3 ; BUMP PAST WHAT WAS ?????????P" BR 2$ ; AND GO BACK AND DO AGAIN40$: SUB #INBUF,R3 ; GET SIZE IN R3: MOV R3,R1 ; AND STOREH RETURN ; END OF ROUTINE .END FRAG AND ERASE SHIFTED CHARACTER4 SOB R2,25$ ; DO FOR NUMBER OF CHARACTERS CONVERTED& MOV #9.,R2 ; CALC NUMBER OF ?'S LEFT SUB (SP),R27 SUB (SP)+,R2 ; 9 - 2* (NUMBER OF CHARACTERS CONVERTED) BLT 30$ ; IF NONE SKIP26$:) MOVB #40,-(R3) ; ERASE ANY LEFT OVER ?'SG SOB R2,26$ 30$: MOV (SP)+,R3 ; RESTORE POINTER+ ADD #9.,R3 ; BUMP PAST WHAT WAS ?????????P" BR 2$ ; AND GO BACK AND DO AGAIN40$: SUB #INBUF,R3 ; GET SIZE IN R3: MOV R3,R1 ; AND STOREH RETURN ; END OF ROUTINE*W(4VL%x@<&%t@*' q@$9!@:s@:2@<@*?T@`@p@hp!@( y( U <&%t| |(("",$$` ```l r[0,0]: lrrrBITMAP.SYS||DK)*= 4|  :s4| :2$|  |882Kd L'* DISK FRAGMENTATION STATISTICS FOR DK*0:%2N %Y %3Z%2N CONTIGUOUS FREE BLO*CKS (HOLES)%2NHOLE RANGE FREQUENCY N**UMBER OF BLOCKS%N 0 - 25 ?????????*P ?????????%N 26 - 50 ????????? ??*v???????%N 51 - 75 ????????? ??????*???%N 76 - 100 ????????? ?????????%*N 101 - 250 ????????? ?????????%N 25*1 - 500 ????????? ?????????%N 501 - * 750 ????????? ?????????%N 751 - 1000*4 ????????? ?????????%N1001 - 2500 ???*Z?????? ?????????%N2501 - 5000 ???????*?? ?????????%N5001 - 7500 ????????? *?????????%N7501 -10000 ????????? ????*?????%N > 10000 ????????? ????????'?%2N TOTAL FREE BLOCKS ??????????...FRG - PRIVILEGED COMMAND?22...FRG - FAILURE ON INPUT?L*L...FRG - COMMAND LINE FAILURE...FRG -r ILLEGAL DEVICE?*wTХ wF77875 *72: 0w07w&E*7|w7 P7 J7 D7 >  |&*00XGYI-V.64#  $ R%x' q  hp!* |W ew A e|*@ w - *   0-8(8*f  $ mw mms m  $* eRs P7 7    RP* ~ |rXT;2|$9!(2* JF4L<8-j.*& Lj*  PRR~ P*$ | $|w |?T|*J  3|ˋ#פ? `|*p  %e cɕ <& ~  ~e | |s m  $* eRs P7 7    RP* ~ |rXT;2|$9!(2* JF4L<8-j.*& Lj*  PRR~ P*$ | $|w* .TITLE GETPRM - GET PARAMETERS FOR F11ACT .IDENT "0001";A; MODULE: FILES-11 ACTIVITY REPORTING TASK -- GET PARAMETER LIST;; VERSION: 0001;; AUTHOR: ANDY PUTNINS;; DATE: 9-APR-79; ; PURPOSE:L; THIS ROUTINE READS AND PARSES A COMMAND LINE, AND SETS UP A LIST OF VALIDJ; DEVICES FOR WHICH THE USER WANTS FILE ACTIVITY STATISTICS. FINALLY, WEG; SET UP THE OUTPUT FDB WHICH EVENTUALLY WILL BE OPENED BY OUR CALLER.;; COMMAND LINE SYNTAX:;2; [OUTFILE][/-APPEND][/SPOOL][/FILES][/PRIORITY:N]; = [/ACP:XXXXXX]; OR; = [DEVICE[/FILES]],...1;CA; /APPEND OPEN OUTFILE FOR APPEND (DEFAULT), ELSE CREATE OUTFILE); /SPOOL SPOOL OUTFILE (DEFAULT IS /-SP)9=; /FILES LIST ATTRIBUTES OF ALL FILES OPEN ON ALL DEVICES IFC9; THIS SWITCH APPEARS ON OUTPUT SIDE OF COMMAND LINE;I9; LIST ATTRIBUTES OF ALL FILES OPEN ON SPECIFIED DEVICE *; IF THIS SWITCH APPEARS ON INPUT SIDE$; (DEFAULT IS /-FI IN BOTH CASES).?; /PRIORITY:N ACP RUN PRIORITY IS N (DECIMAL) (DEFAULT IS 220.)IE; /ACP:XXXXXX GATHER STATISTICS FOR ALL DEVICES SERVICED BY THE NAMED 9; ACP. IF THIS SWITCH IS SPECIFIED ON THE INPUT SIDE,F); A DEVICE LIST MAY NOT BE SPECIFIED.-;9A; AN EMPTY COMMAND LINE IS EQUIVALENT TO THE FOLLOWING DEFAULTS: ; <; F11ACT> TI:F11STATS.LST/APPEND/-SPOOL/-FILES/PRIORITY:220.;T ; INPUTS:; DYNAMIC MEMORY INITIALIZED; ; OUTPUTS:ID; 'LH.SB' IS LISTHEAD OF EMPTY STATISTICS BLOCKS FOR DESIRED DEVICES?; 'SWMASK' INITIALIZED WITH COMMAND SWITCH MASK BITS FROM PARSE-; 'ACPPRI' CONTAINS (BINARY) ACP RUN PRIORITY ; 'OUTFDB' INITIALIZEDB; CARRY SET IF NO MORE COMMANDS, OR IF I/O ERROR READING A COMMAND;I .PAGE" .SBTTL GCL AND CSI CONTROL BLOCKS( .MCALL GCMLB$,CSI$,CSI$SW,CSI$ND,CSI$SV;NA; GET COMMAND LINE AND COMMAND STRING INTERPRETER CONTROL BLOCKSI;T .PSECT IMPURE,RW,D:<GCLBLK: GCMLB$ 3,F11,,CMDLUN ;ALLOW 3 LEVELS OF INDIRECTION CSI$ ;DEFINE OFFSETS&CSIBLK: .BLKB C.SIZE ;ALLOCATE SPACE .PSECT PURE,RO,DMDPROMPT: .ASCII <15><12>'F11ACT> ' ;ALTERNATE PROMPT STRING FOR GCML$ PRMPTL=.-PROMPT;I/; COMMAND SWITCH MASK WORD AND BIT DEFINITIONSF;O6 SW.NAP == 1 ;/-AP - DO NOT APPEND TO EXISTING FILE( SW.SP == 2 ;/SP - SPOOL OUTPUT FILE1 SW.FI == 4 ;/FI - GATHER STATS ON OPEN FILESN( SW.PR == 10 ;/PR:N - ACP RUN PRIORITY- SW.ACP == 20 ;/AC:X - GIVE STATS FOR ACP XL .PSECT IMPURE,RW,DISWMASK:: .WORD 0;;7; SWITCH VALUE WORDS FOR ACP NAME AND ACP RUN PRIORITY;SACPNAM: .BLKB 3R .EVENACPPRI:: .BLKW; F; SWITCH DESCRIPTOR TABLES FOR INPUT AND OUTPUT SIDES OF COMMAND LINE;I .PSECT PURE,RO,DI&INSW1: CSI$SW AC,SW.ACP,SWMASK,,,ACPSW CSI$SW FI,SW.FI,SWMASKT CSI$NDACPSW: CSI$SV ASCII,ACPNAM,3 CSI$NDINSW2: CSI$SW FI,SW.FI,SWMASKT CSI$ND (OUTSW: CSI$SW AP,SW.NAP,SWMASK,CLEAR,NEG CSI$SW SP,SW.SP,SWMASK,,NEG CSI$SW FI,SW.FI,SWMASK,,NEG CSI$SW PR,SW.PR,SWMASK,,,PRSW CSI$NDPRSW: CSI$SV DECIMAL,ACPPRI,1E CSI$NDR .PAGE .SBTTL MESSAGE STRINGSR .PS00YOD!-TADATADATAECT PURE,RO,D. .NLIST BEX EGCLMG1: .ASCIZ '%NF11ACT -- **** Command Input Error Code=%D,%D ****'KGCLMG2: .ASCII 'F11ACT -- **** Indirect Command Filename Syntax Error ****'M GCLM2L=.-GCLMG2:GCLMG3: .ASCII 'F11ACT -- **** Command Line Too Long ****' GCLM3L=.-GCLMG3MGCLMG4: .ASCII 'F11ACT -- **** Indirect Command Files Nested Too Deeply ****'I GCLM4L=.-GCLMG4ASYNMSG: .ASCIZ '%NF11ACT -- **** Command Syntax Error: ****%N%VA'M>MEMMSG: .ASCII 'F11ACT -- **** Insufficient Dynamic Memory - ', .ASCII 'Rerun With A Larger Increment ****' MEMMGL=.-MEMMSG .LIST BEX .PAGE .SBTTL GET A COMMAND2 .MCALL GCML$,CSI$1,CSI$2,FDOP$R .PSECT GETPRM,RO,IaGETPRM::;1; RELEASE ANY ALLOCATED STATISTICS BLOCK ENTRIESC;a$ MOV #L.SB,R3 ;LENGTH OF STAT BLOCK! MOV #LH.SB,R4 ;ADDR OF LISTHEAD* CALL DELQ ;REMOVE AN ENTRYT( BCC GETPRM ;DO IT AGAIN IF SUCCESSFUL7 CLR NSFMEM ;RESET 'INSUFFICIENT DYNAMIC MEMORY' FLAG% CLR SWMASK ;CLEAR SWITCH MASK;*; GET A COMMAND LINEe;y2 GCML$ #GCLBLK,#PROMPT,#PRMPTL ;GET A COMMAND LINE BCC 10$$ JMP GCLERR ;ERROR - WRITE MESSAGE; ; CHECK COMMAND SYNTAXS;,,10$: MOV #CSIBLK,R0 ;CSI CONTROL BLOCK ADDR5 MOV GCLBLK+G.CMLD+2,C.CMLD+2(R0) ;COMMAND ADDRESS...C- MOV GCLBLK+G.CMLD,C.CMLD(R0) ;... AND LENGTHV! CSI$1 R0 ;CHECK COMMAND SYNTAXL" BCS 100$ ;ERROR - WRITE MESSAGE; L; SEE IF USER WANTS STATISTICS FOR ALL DEVICES (NO DEVICE LIST OR ACP NAME);F: BITB #CS.EQU,C.STAT(R0) ;ANY INPUT SPECS IN COMMAND LINE? BNE 20$ ;YES - CONTINUE- CLR R1 ;NO - INDICATE NO SPECIFIC ACP NAMEJ& JMP FINDEV ;FIND ALL DEVICES IN PUD;CG; SEE IF USER WANTS STATISTICS FOR ALL DEVICES SERVICED BY A GIVEN ACPM;G)20$: CLR SWMASK ;RESET ALL SWITCH FLAGSS/ CSI$2 R0,INPUT,#INSW1 ;PARSE FIRST INPUT SPECT BCS 100$R+ BIT #SW.ACP,SWMASK ;ACP SWITCH SPECIFIED?R BEQ INPUT1 ;NO - CONTINUE) MOV #ACPNAM,R0 ;ADDR OF ACP NAME STRING " CLR R1 ;INDICATE STOP ON PERIOD3 CALL $CAT5 ;CONVERT NAME TO RAD50 (RESULT IN R1) JMP FINDEV ;GO SEARCH THE PUD100$: JMP SYNERR ;BRANCH AID .PAGE! .SBTTL INPUT - PARSE DEVICE LISTP .ENABL LSBE; 6; GET LIST OF DEVICES FROM INPUT SIDE OF COMMAND LINE;C+INPUT: CLR SWMASK ;RESET ALL SWITCH FLAGSL1 CSI$2 #CSIBLK,INPUT,#INSW2 ;GET NEXT DEVICE SPECE BCS 100$0IINPUT1: BITB #CS.NMF!CS.DIF!CS.WLD,C.STAT(R0) ;ONLY DEVICE NAMES ALLOWEDN BNE 100$C;MG; CREATE STAT BLOCK, AND INSERT DEVICE NAME AND REDIRECTED PUD POINTER ;T MOV #L.SB,R3M MOV #LH.SB,R4 CALL ADDQ BCC 5$E? TIQIO #MEMMSG,#MEMMGL ;NO MORE DYNAMIC MEMORY - WRITE MESSAGE INC NSFMEM ;SET FLAGI& JMP GETPRM ;AND TRY ANOTHER COMMAND95$: MOV CSIBLK+C.DEVD+2,R0 ;GET POINTER TO DEVICE NAME...M% MOV CSIBLK+C.DEVD,R1 ;... AND LENGTH#2 MOV R5,R2 ;SET UP DEVICE NAME PTR IN STAT BLOCK ADD #.DNAM,R2 ;... MOV R2,P.DNAM(R5) ;...9 MOVB (R0)+,(R2)+ ;COPY 2 CHAR DEVICE NAME TO STAT BLOCKT MOVB (R0)+,(R2)+ ;...C CLR .DUNIT(R5) ;ASSUME UNIT #0 SUB #2,R1 ;ADJUST BYTE COUNT,% BEQ 10$ ;SKIP IF NO UNIT SPECIFIEDG( BLT 100$ ;ERROR IF ONLY 1 CHAR STRING' CALL $COTB ;CONVERT UNIT # TO BINARYG$ CMPB #':,R2 ;TERMINATED BY COLON? BNE 100$ ;ERROR IF NOTE. MOV R1,.DUNIT(R5) ;SAVE UNIT # IN STAT BLOCK; (; FIND GENUINE PUD ADDR FOR THIS DEVICE; !10$: MOV .PUDBA,R0 ;START OF PUD, BR 30$-20$: ADD #U.SZ,R0 ;ADVANCE TO NEXT PUD ENTRYY CMP R0,.PUDEA ;END OF LIST?C BLOS 30$ ;NO - CONTINUE8 BIS #F.NSDV,.SBFLG(R5) ;YES - SET 'NO SUCH DEVICE' FLAG) BR 60$ ;CONTINUE WITH NEXT DEVICE SPECC;30$: CMP .DNAM(R5),U.DN(R0) ;IS THIS THE RIGHT DEVICE NAME?  BNE 20$ ;NO - KEEP LOOKINGP( CMPB .DUNIT(R5),U.UN(R0) ;UNIT # MATCH? BNE 20$ ;NO;40$: CMP R0,U.RP(R0) ;IS THIS DEVICE REDIRECTED ELSEWHERE?N BEQ 50$ ;NO - CONTINUE * MOV U.RP(R0),R0 ;YES - FOLLOW POINTER... BR 40$ ;...AND LOOK AGAIN650$: MOV R0,P.PUD(R5) ;SAVE PUD ADDRESS IN STAT BLOCK? BIT #UC.DIR!UC.F11!UC.MNT,U.C1(R0) ;IS THIS A FILES-11 DEVICE?- BNE 60$ ;YES - CONTINUE4 BIS #F.NF11,.SBFLG(R5) ;N00YWI-V.64O - SET FLAG IN STAT BLOCK;60$: BIT #SW.FI,SWMASK ;DOES USER WANT LIST OF OPEN FILES?$ BEQ 70$ ;NO - CONTINUEP3 BIS #F.FI,.SBFLG(R5) ;YES - SET FLAG IN STAT BLOCK& BIC #SW.FI,SWMASK ;RESET SWITCH MASK;E&; INITIALIZE ATTRIBUTE BLOCK LISTHEAD; 270$: MOV R5,R2 ;POINT TO FILE ATTRIBUTE LISTHEAD ADD #LH.AB,R2 ;...# MOV R2,(R2) ;INITIALIZE LISTHEADA MOV R2,2(R2) ;...;T;; ALL DONE WITH THIS DEVICE SPEC - SEE IF THERE IS ANOTHER;E+ BITB #CS.MOR,CSIBLK+C.STAT ;IS THERE MORE?5 BNE INPUT ;YES - PARSE IT- JMP OUTPUT ;NO - DO OUTPUT SIDE OF COMMANDO100$: JMP SYNERR ;BRANCH AID .DSABL LSBS .PAGE4 .SBTTL FINDEV - FIND ALL FILES-11 DEVICES IN SYSTEM;AL; COME HERE IF THE USER DID NOT SPECIFY AN EXPLICIT DEVICE LIST. ON ENTRY,N; R1 INDICATES WHETHER TO SEARCH THE PUD FOR ALL FILES-11 DEVICES (R1 CLEAR),N; OR ALL DEVICES SERVICED BY SOME ACP (R1 CONTAINS RAD50 NAME). AS WE SEARCHA; THE PUD, WE SET UP A STAT BLOCK ENTRY FOR EACH DEVICE WE FIND.I;HFINDEV:5- MOV #L.SB,R3 ;LENGTH OF STAT BLOCK FOR ADDQN' MOV #LH.SB,R4 ;LISTHEAD ADDR FOR ADDQM MOV .PUDBA,R0 ;START OF PUD  BR 20$A-10$: ADD #U.SZ,R0 ;ADVANCE TO NEXT PUD ENTRY  CMP R0,.PUDEA ;END OF LIST?  BHI 50$ ;YES - ALL DONEC20$: BIT #UC.DIR!UC.F11!UC.MNT,U.C1(R0) ;IS THIS A FILES-11 DEVICE?U BEQ 10$ ;NO - IGNORE IT7 CMP R0,U.RP(R0) ;IS THIS DEVICE REDIRECTED ELSEWHERE?N BNE 10$ ;YES - IGNORE ITR+ TST R1 ;ARE WE LOOKING FOR AN ACP MATCH?F BEQ 30$ ;NO - GOOD ENOUGH9 CMP R1,@U.ACP(R0) ;YES - DOES OUR ACP SERVICE THIS GUY?M BNE 10$ ;NO - KEEP LOOKINGR230$: CALL ADDQ ;ALLOCATE & INITIALIZE STAT BLOCK BCC 40$< TIQIO #MEMMSG,#MEMMGL ;NO MORE SPACE - WRITE ERROR MESSAGE INC NSFMEM ;SET FLAGL& JMP GETPRM ;AND TRY ANOTHER COMMAND640$: MOV R0,P.PUD(R5) ;SAVE PUD ADDRESS IN STAT BLOCK) MOV R5,R2 ;POINT TO DEVICE NAME BUFFERE ADD #.DNAM,R2 ;...9 MOV R2,P.DNAM(R5) ;SET UP DEVICE NAME PTR IN STAT BLOCK . MOV U.DN(R0),(R2) ;DEVICE NAME TO STAT BLOCK% MOVB U.UN(R0),.DUNIT(R5) ;AND UNIT #E) MOV R5,R2 ;POINT TO ATTRIBUTE LISTHEADK ADD #LH.AB,R2 ;...# MOV R2,(R2) ;INITIALIZE LISTHEAD MOV R2,2(R2) ;...M& BR 10$ ;LOOP FOR NEXT DEVICE IN PUD250$: JMP OUTPUT ;GO PARSE OUTPUT SIDE OF COMMAND .PAGE& .SBTTL OUTPUT - PARSE OUTPUT FILESPEC;EK; COME HERE TO PARSE THE OUTPUT FILESPEC AND OPTION SWITCHES WHEN FINISHED#(; SETTING UP THE STATISTICS BLOCK LIST.;E,OUTPUT: CLR SWMASK ;RESET ALL SWITCH FLAGS< MOV #ACPRIO,ACPPRI ;SET DEFAULT VALUE FOR /PRIORITY SWITCH3 CSI$2 #CSIBLK,OUTPUT,#OUTSW ;PARSE OUTPUT FILESPEC BCS 10$A BITB #CS.WLD!CS.MOR,C.STAT(R0) ;ONLY ONE OUTSPEC & NO WILDCARDS. BEQ 20$10$: JMP SYNERR ;BRANCH AIDDI20$: FDOP$R #OUTFDB,,#CSIBLK+C.DSDS,,#FO.APD ;DEFAULT IS OPEN FOR APPENDT2 BIT #SW.NAP,SWMASK ;IS THAT WHAT THE USER WANTS?% BEQ NRET ;YES IF SWITCH FLAG CLEAR B FDOP$R R0,,#CSIBLK+C.DSDS,,#FO.WRT ;NO - SET UP TO OPEN FOR WRITE;L; NORMAL RETURN; NRET: CLCS RETURNC;O; ERROR RETURNA; ERRET: SEC RETURNW .PAGE/ .SBTTL GCLERR - GET COMMAND LINE ERROR ROUTINE;BL; COME HERE IF AN ERROR IS DETECTED WHILE ATTEMPTING TO GET A COMMAND LINE.K; END OF FILE OR I/O ERROR WHILE READING FROM THE COMMAND INPUT LUN CAUSES,L; A RETURN WITH CARRY SET. FOR ALL OTHER ERRORS, WE WRITE AN ERROR MESSAGE1; TO THE TERMINAL, AND LOOP FOR ANOTHER COMMAND. ;FGCLERR:,' MOVB G.ERR(R0),R3 ;PICK UP ERROR CODEP BIT #GE.EOF,R3 ;END OF FILE?# BNE 5$ ;YES - RETURN TO MAINLINEE;R(; I/O ERROR TRYING TO READ COMMAND LINE;." BIT #GE.IOR!GE.OPR,R3 ;I/O ERROR? BEQ 10$ ;NO - CHECK NEXT CASE: MOVB F.ERR(R0),R3 ;EXPAND FCS ERROR CODES TO 1 WORD EACH MOV R3,TEMP MOVB F.ERR+1(R0),R3 MOV R3,TEMP+2' MOV #OUTBUF,R0 ;ADDR OF OUTPUT BUFFERH( MOV #GCLMG1,R1 ;ADDR OF MESSAGE STRING& MOV #TEMP,R2 ;ADDR OF ARGUMENT BLOCK CALL $EDMSG ;FORMAT MESSAGE( TIQIO #OUTBUF,R1 ;WRITE IT TO TERMINAL5$: JMP ERRET ;GET OUT; ; BAD INDIRECT FILE NAMEY;-10$: BIT #GE.BIF,R3 BEQ 20$ TIQ00Y_Za!-TADATADATAIO #GCLMG2,#GCLM2L JMP GETPRM.;B; COMMAND LINE TOO LONG;O20$: BIT #GE.RBG,R3C BEQ 30$ TIQIO #GCLMG3,#GCLM3L JMP GETPRM ;O+; INDIRECT COMMAND FILES NESTED TOO DEEPLY.;+30$: TIQIO #GCLMG4,#GCLM4L JMP GETPRM  .PAGE% .SBTTL SYNERR - SYNTAX ERROR ROUTINER; G; COME HERE IF A SYNTAX ERROR IS DETECTED DURING COMMAND LINE PARSING.OH; THE COMMAND STRING INTERPRETER LEAVES A SEGMENT DESCRIPTOR IN THE CSIH; CONTROL BLOCK WHICH DEFINES THE ADDRESS AND LENGTH OF THE BAD COMMANDD; LINE SEGMENT. WE WRITE AN ERROR MESSAGE AND THE BAD COMMAND LINE); SEGMENT, AND LOOP FOR ANOTHER COMMAND.#;MSYNERR:L' MOV #OUTBUF,R0 ;ADDR OF OUTPUT BUFFERI( MOV #SYNMSG,R1 ;ADDR OF MESSAGE STRING. MOV #CSIBLK+C.FILD,R2 ;ADDR OF ARGUMENT BLOCK" CALL $EDMSG ;FORMAT THE MESSAGE, TIQIO #OUTBUF,R1 ;WRITE IT TO THE TERMINAL0 JMP GETPRM ;START ALL OVER WITH A NEW COMMAND .ENDEAVES A SEGMENT DESCRIPTOR IN THE CSIH; CONTROL BLOCK WHICH DEFINES THE ADDRESS AND LENGTH OF THE BAD COMMANDD; Lz,fND.ԃz@tzfHtz&HVN@<&Kq@ԃw*@q@nL`@@~ZR@GP}@d@z'@a"&@<&9@W@'@a@W@9x@@?T@ԃS@@j@tz@yH?S@kh~@zQ@tzH@}d@=@@=@tzWH\Lw@<&D@@@@j@ X:\fhZezC hT"Zg@,f0,fh    X:M"", VN&&v v,,&q<&9<&Kq<&D ``'jj F11>| |P Zg@ F11ACT> X:TT Zg@  ACTFITVFITAPUSPTFITPRTNZ%NF11ACT -- **** Command Input Error Code=%D,%D **R X:T  X:T X:V X:T *X:U 2X:T :X:T BX:TDN JX:Z**F11ACT -- **** Indirect Command Filename Syntax Error ****F11ACT -- **** Command Line Too Long ****F11ACT -- **** Indirect Command Files Nested Too Deeply ****%NF11ACT -- **** Command Syntax Error: ****%N%VAF11ACT -- **** Insufficient Dynamic M.~emory - Rerun With A Larger Increment **** ,f. 7 7 T bd w(hf   w7 Tȕ  5TV w| \Lw@j~ZRX:T X: &Zg@,?S 6X:(:X:h@X:fF=ZX:T bZg@ h@=pX:T vX:V|9x|wP7 T(ȕ" i e. YO w60.Be  5 @ ¥:;uv X:T X:( Zg@"@=0\Lw4@j :Zg@Y<kh~nL` Bkh~nL` Fkh~L~ZRTX:0XX:.vGP} e7 Up- p0 55U5TUETBe)w~wb.^Q"W*W0d6d@ԃzԃw*ԃS BPX:T^X:TpX:)dte7 /50  x  YO w@5Be  5\Lw Qԃzԃw*ԃS "d,@2@j 8Zg@Y:kh~nL` @kh~nL` Dkh~J~ZR`WBew7 TZ(ȕ, w.$#5T.$#`55^WX:T q"X:Z &X:( .Zg@,4@=Fa"& JX:.P'XX:T ^X:.d'LP*+T ww5 :~ }d}da Zg@T}d"?T&a(kh~nL` ,kh~nL` 0kh~ @Zg@Bkh~nL` Hkh~nL` Pw`5 )wD<w.(6 kh~ Zg@kh~nL` kh~nL`  kh~ *Zg@,kh~nL` 2kh~nL` 6kh~@a DZg@( HX:6L?Tww .akh~nL`  kh~nL` kh~T ^X:.d'LP*+T ww5 :~ }d}00[g\h]l.64HOL/MU,HOL/-SP=HOL/ ASG=TI:2:3UNITS=3STACK=50 TASK=...HOL// 1 HOL6 HOL - Disk Fragmentation List Utility  O HOL is a small task aimed to give the user detailed information on howO fragmented his disks are. For any given FILES-11 device it will list out allO (or optionally just those over a given size) the contiguous 'holes' on thatO device, giving starting block number in decimal (optionally in octal) and sizeA in decimal, and the total number of free blocks for the device.   HOL may be invoked either by:  % >HOL [DDn:][/nnnn][/Octal] a or  >RUN $HOL $ HOL>[DDn:][/nnnn][/Octal]  aL Where DDn: is a valid Files-11 device (the n and : are optional) whichL defaults to SY: if omitted, and nnnn is an optional decimal number (up to 9L digits) specifying a minimum size for the 'holes' to be listed. /OctalL indicates that logical block numbers are to be displayed in octal. This< switch can be specified as /O, /OC, /OCT, /OCTA or /OCTAL.  5 For a listing of error messages, type AID HOL ERRORS 2 ERR: HOL may produce one of the following error messages:  - 1. HOL - Failure on reading BITMAP.SYS c tN An error occurred trying to read the file BITMAP.SYS on the device > specified. Most probably the device is not mounted.  e 2. HOL - Illegal device  tN The device specified does not exist on the system, or is not a valid  Files-11 disk.   3. HOL - Bad switch  N The user typed a slash (/) in his commandline, but followed it with F something other than a valid decimal number or OCTAL keyword  u 4. HOL - Command error  A The command line specified was not syntactically correcte e > specified. Most probably the device is not mounted.  e 2. HOL - Illegal device  tN The device specified does not exist on the system, or is not a valid  Files-11 disk.   3. HOL - Bad switch  .TITLE HOL DISK FRAGMENTATION .IDENT /1.0/ .ENABL LC .SBTTL DATA AREA;; DATE: 8/14/78; BY: M. ARMSTRONG(; BADGER METER, INC. - ELECTRONICS DIV.; RICHMOND, CA;H; THIS MCR TASK WILL PRODUCE FRAGMENTATION STATISTICS FOR THE SPECIFIEDJ; FILES-11 DEVICE. THE OUTPUT IS A LIST OF CONTIGUOUS FREE BLOCKS (HOLES)I; AND THE TOTAL NUMBER OF FREE BLOCKS FOR THE DEVICE. THE LIST IS IN THEF; FORM OF LINES OF NUMBER PAIRS. THE FIRST NUMBER OF EACH PAIR IS THEF; BLOCK ADDRESS, IN OCTAL, OF THE FIRST BLOCK OF THE HOLE. THE SECONDH; NUMBER IS THE SIZE OF THE HOLE IN DECIMAL BLOCKS. INPUT IS VIA LUN 1.;E; OUTPUT IS DIRECTED TO LUN 2, WHICH MAY BE ASSIGNED TO ANY TERMINAL.I;CE; THIS PROGRAM FULFILLS THE SAME FUNCTION AS, AND IS DERIVED FROM THE->; DECUS PROGRAM 'FRAG' BY MICHAUD, BUT PROVIDES BETTER DETAIL.;;N; Modified by:-; ; Phil Stephensen-Payne,L; c/o Systime Ltd.,#; Concourse Computer Centre,R; 432 Dewsbury Road, ; LEEDS LS11 7DF,; England.H;.;H ; UO;******************************************************************************T; N; This software is provided on an "as is" basis only. Caterpillar Tractor Co.,N; disclaims all warranties on the program, including without limitation, all3; implied warranties of merchantablity and fitness.d;eN; Full permission and consent is hereby given to DECUS and to the DECUSN; special interest groups to reproduce, distribute, and publish and pe00]oa!-TADATADATArmitN; others to reproduce in whole or in part, in any form and without restriction3; this program and any information relating thereto ; O;******************************************************************************i;a7; 11/18/82 Rick Webster, MSDGO, Caterpillar Tractor Co.m ; RAW001 Modifications include:0; 1) Eliminate syntax checking subroutines and; use .TPARS insteade/; 2) Display logical block numbers in decimal "; instead of octal by default.; 3) Add /Octal switch to optionally display%; logical block numbers in octalm.; 4) Change messages to upper and lower case; ; ; ; &; EQUATE SECTION, SYMBOLIC DEFINITIONS;*-AFLDSZ= 7 ; MAX SIZE OF OCTAL BLK ADDR FIELDi/BFLDSZ= 6 ; MAX SIZE OF DECIMAL BLK SIZE FIELD .FLDSIZ= AFLDSZ+BFLDSZ+2 ; OOOOOOO;DDDDDD.8FLDCNT= LINSIZ/FLDSIZ ; NUMBER OF FIELDS PER OUTPUT LINE3LINSIZ= 80. ; NUMBER OF CHARACTERS PER OUTPUT LINEe; CHARACTER EQUATESi SPACE = 40 TAB = 11 LF = 12 CR = 15; LUN DEFINITIONSl INDEV = 1gTERM = 2 ERRDEV = 3#; Switch definitions ;RAW001  ;RAW001 SW.OCT = 1 ;RAW001 ;RAW001F; ;RAW0010 .MCALL GTIM$,QIOW$,CALL,EXIT$S,DIR$ ;RAW0013 .MCALL FCSMC$,ALUN$,GMCR$,GLUN$,FCSBT$ ;RAW001F( .MCALL ISTAT$,STATE$,TRAN$ ;RAW001 ;RAW001 & FCSMC$ ; DEFINE FCS MACROS ;**-3# FCSBT$ ; DEFINE FCS MACRO OFFSETSP' FSRSZ$ 0 ; NO FSR FOR BLOCK OPERATIONS FDB: FDBDF$1 FDRC$A FD.RWM FDBK$A INBUF,512.,,10 FDOP$A INDEV,DSETDSET:= .WORD 0,0 .WORD UICSIZ,UICn .WORD NAMSIZ,NAMEUIC: .ASCII /[0,0]/ UICSIZ=.-UIC .EVENNAME: .ASCII /BITMAP.SYS/ NAMSIZ=.-NAME0 .EVENFASCBLK: .ASCII /123456789/ ; Decimal block number from $CDDMG ;RAW001 .EVEN ;RAW001*OUTBUF: .BLKB LINSIZ ; OUTPUT LINE BUFFER .EVEN2INBUF: ; INPUT BLOCK BUFFER (OVERLAYS GMCR BFR)EGLUN: GLUN$ INDEV,GLBUF ; DPB FOR 'GET LUN CHARACTERISTICS' DIRECTIVEE!GLBUF: .BLKW 6 ; BUFFER FOR GLUND8GMCR: GMCR$ ; DPB FOR 'GET MCR COMMAND LINE' DIRECTIVE<.=INBUF+512. ; ALLOCATE SPACE FOR INPUT BFR ON TOP OF GMCR+ALUN: ALUN$ INDEV,SY,0 ; DEFAULT ASSIGN LUNITIME: GTIM$ TBUF+TBUF: .BLKW 8. ; BUFFER FOR TIME/DATE INFO83READ: QIOW$ IO.RVB,INDEV,10,,IOST,,N>IDPB: QIOW$ IO.RVB,ERRDEV,1,,IOST,, ; ;RAW0017DPB: QIOW$ IO.WVB,TERM,1,,,, ;**-1,ODPB: QIOW$ IO.WVB,TERM,1,,,, IOST: .BLKW 2I!STAT: 0 ; STATUS FROM 'GETWRD':F/ ; 1 => NON-ZERO WORD FROM BFR, NOT ALL ONESD ; 0 => ZERO WORD FROM BFR " ; -1 => ALL-ONES WORD FROM BFR5LOWLIM: 0,0 ; DOUBLE PRECISION LOWER HOLESIZE LIMITI<COUNT: 0,0 ; " " FREE-BLOCK COUNT (HOLE SIZE)3TOTAL: 0,0 ; " " TOTAL FREE-BLOCK COUNT1-BLKADR: 0,0 ; LOGICAL BLOCK ADDRESS OF HOLE74BLOCK: .WORD 1 ; VIRTUAL BLOCK PTR FOR 'BITMAP.SYS'% ; BLOCK 1 IS NOT PART OF BIT MAP,W& ; SO WILL START READING AT BLOCK 2BBUFPTR: INBUF+512. ; PTR INTO INPUT BFR BLOCK (VALUE FORCES READ);BITCNT: 16. ; BIT POSITION IN CURWRD (VALUE FORCES FETCH) /CURWRD: 0 ; MAP WORD CURRENTLY BEING EXAMINEDB8HDRDON: 0 ; FLAG TO INDICATE HEADER HAS BEEN DISPLAYED)SWFLAG: 0 ; Switch flag word ;RAW001A2CMDLTH: 0 ; Length of MCR command line ;RAW001.NLIST BEX ;RAW001<TOTBUF: .ASCII /Total Free Blocks: / ;RAW001&TOTAMT: .ASCII / ./ ;RAW001TOTSIZ= .-TOTBUF ;RAW001D,ER1: .ASCII /HOL -- Bad switch/ ;RAW001ER1SIZ=.-ER1 ;RAW001=ER2: .ASCII /HOL -- Failure on reading BITMAP.SYS/ ;RAW001TER2SIZ=.-ER2 ;RAW001/ER3: .ASCII /HOL -- Command error/ ;RAW001NER3SIZ= .-ER3 ;RAW001D0ER4: .ASCII /HOL -- Illegal device/ ;RAW001ER4SIZ= .-ER4 ;**-11HOL: .ASCII /HOL>/ HOLSIZ=.-HOL .EVENTSKNAM: .ASCII /HOLES/TKNMSZ= .-TSKNAMIISTRNG: .ASCII /Contiguous Free Blocks (Holes) For Device / ;RAW001O'ASCDEV: .ASCII /SY: / ;**-1  .ASCIZ /%Y %2Z%2N/ .LIST BEX. .EVEN .PAGE .SB00]wh]l.64TTL HOLE -- MAIN ROUTINE;+=; ** HOLES - DISPLAY FRAGMENTATION DATA FOR FILES-11 DEVICES1;R ; SYNTAX:H; HOL [ddn:][/nnn][/Octal]W;N; WHERE:(; dd - A legal FILES-11 device name7; n - A legal unit number for the selected device-8; If 'ddn:' is not specified 'SY0:' is assumed;/9; /nnn - Is an optional positive, nonzero integer of 9r;; decimal digits or less. If present, it defines 1; the minimum size hole to be reported.E; :; /O - Specifies that logical block numbers are to be2; displayed in octal instead of decimal. Can be.; entered as /O, /OC, /OCT, /OCTA or /OCTAL; ; ;-HOLE: * DIR$ #GMCR ; GET COMMAND LINE ;RAW001* BCC 10$ ; If CC OK - carry on ;RAW001/ CALL GETLIN ; Else prompt for line ;RAW001s+ BR 15$ ; And process as normal ;RAW001,; ;RAW00110$: ;RAW001 7 MOV $DSW,CMDLTH ; Get length of command line ;RAW001 515$: CLR LOWLIM ; Assume low limit is zero ;RAW001p( CLR LOWLIM+2 ; " ;RAW001+ CLR SWFLAG ; Clear switch word ;RAW001l8 CLR R1 ; Set TPARS for ignoring spaces & tabs ;RAW0019 MOV #KEYTBL,R2 ; Address of keyword table in R2 ;RAW001 9 MOV CMDLTH,R3 ; Length of command line to parse ;RAW001 @ MOV #GMCR+G.MCRB,R4 ; Address of command line to parse ;RAW0012 MOV #PARCMD,R5 ; Address of state table ;RAW001- CALL .TPARS ; Parse command line ;RAW001o, BCC 16$ ; Branch if syntax is ok ;RAW0011 JMP ERROR3 ; Go indicate syntax error ;RAW001;@16$: DIR$ #ALUN,ERROR4 ; Assign lun to device to check ;RAW0018 DIR$ #GLUN ; Now get lun info for that device ;RAW001< BIT #FD.DIR,GLBUF+G.LUCW ; File structured device? ;RAW001$ BNE 17$ ; Yes - branch ;RAW0015 JMP ERROR4 ; No - indicate illegal device ;RAW001sE17$: MOVB GLBUF+G.LUNA,ASCDEV ; Put device in display header ;RAW001 2 MOVB GLBUF+G.LUNA+1,ASCDEV+1 ; " ;RAW001; MOV #ASCDEV+2,R0 ; Destination address for $CBTA ;RAW001PA MOV GLBUF+G.LUNU,R1 ; Logical unit for $CBTA to convert ;RAW001O8 BIC #177400,R1 ; Clear flags byte (high byte) ;RAW001< MOV #20*400+10,R2 ; 2 octal digits, zero suppress ;RAW0019 CALL $CBTA ; Put unit number in display header ;RAW001Y8 MOVB #':,(R0) ; Append a colon to unit number ;RAW001; ;RAW001$ OPEN$R #FDB,,,,,,ERROR2 ;**-468NEWLIN: MOV #OUTBUF,R0 ; INIT THE OUTPUT LINE BUFFER PTR( MOV #FLDCNT,R4 ; INIT THE FIELD COUNTER"GTHOLE: CALL CONTIG ; FIND A HOLE' BCS EOFCHK ; EOF OR INPUT ERROR IF CSi ADD COUNT+2,TOTAL+2 ADC TOTAL) ADD COUNT,TOTAL ; UPDATE THE GRAND TOTALh1 TST HDRDON ; YES - HAVE WE DONE THE HEADER YET?i BNE 4$ ; YES IF NE CALL HEADER ; NO, DO IT NOWt4$:e; CMP COUNT,LOWLIM ; IS THE HOLESIZE >= THE SPECIFIED LIMIT?n BHI 25$ ; YES IF HI1& BLO GTHOLE ; NO IF LO - FIND ANOTHERB CMP COUNT+2,LOWLIM+2; CAN'T TELL IF EQ - LOW ORDER PART >= LIMIT? BLO GTHOLE ; NO IF LO ;25$: BIT #SW.OCT,SWFLAG ; Display LBN's in octal? ;RAW001# BEQ 26$ ; No - branch ;RAW001C= MOV #BLKADR,R1 ; PACK DISK BLOCK ADDRESS (IN OCTAL) ;RAW001 < MOV #AFLDSZ,R2 ; RIGHT-JUSTIFIED, 'AFLDSZ' DIGITS ;RAW001 CALL CDBOM ;RAW001 BR 50$ ;RAW001'26$: MOV R0,-(SP) ; Save R0 ;RAW001E9 MOV #ASCBLK,R0 ; Put destination address in R0 ;RAW001+ MOV #BLKADR,R1 ; Put LBN in R1 ;RAW001C/ CLR R2 ; Zero suppression indicator ;RAW001T0 CALL $CDDMG ; Convert LBN to decimal ;RAW001= MOV #ASCBLK,R1 ; R1 has address of converted string ;RAW001o@ SUB R1,R0 ; R0 has # of characters in converted string ;RAW0016 MOV R0,R2 ; Save number of characters in R2 ;RAW0019 MOV #AFLDSZ,R1 ; R1 has length of display field ;RAW001 ? SUB R0,R1 ; R1 has number of spaces to stuff in field ;RAW001V; MOV (SP)+,R0 ; Restore R0 (display field address) ;RAW001#229$: MOVB #' ,(R0)+ ; Right justify LBN ;RAW001 SOB R1,29$ ;RAW0018 MOV #ASCBLK,R1 ; R1 has address of LBN string ;RAW001@30$: MOVB (R1)+,(R0)+ ; Put LBN string in display field ;RAW001 SOB R2,30$ ;00]a!-TADATADATARAW001A45$: MOVB #'.,(R0)+ ; Append a '.' to show it is decimal ;RAW001c?50$: MOVB #':,(R0)+ ; SEPARATE FROM HOLE SIZE WITH ':' ;RAW001l4 MOV #COUNT,R1 ; PACK HOLE SIZE (IN DECIMAL) ;**-4+ CLR R2 ; LEFT-JUSTIFIED (ZERO-SUPPRESSED) CALL $CDDMG7 MOVB #'.,(R0)+ ; PACK A DOT (DECIMAL NUMBER INDICATOR)i8 MOVB #TAB,(R0)+ ; AND SEPARATE FROM NEXT PAIR BY A TAB BR 60$ ;RAW00155$: JMP GTHOLE ;RAW001360$: SOB R4,55$ ; LOOP 'TIL LINE IS FULL ;RAW001l;110$: MOVB #CR,-1(R0) ; REPLACE LAST TAB WITH EOL ;RAW001 0 SUB #OUTBUF,R0 ; CALC ACTUAL LINE SIZE ;**-20 MOV R0,DPB+Q.IOPL+2 ; AND LOAD IT INTO THE DPB DIR$ #DPB ; OUTPUT THE LINEC BR NEWLIN ; AND START ANOTHEREOFCHK:;! CMPB #IE.EOF,IOST ; END OF FILE? BNE ERROR2 ; NE=OOPS!R, MOVB #CR,-1(R0) ; REPLACE LAST TAB WITH EOL( SUB #OUTBUF,R0 ; LOAD SIZE OF LAST LINE MOV R0,DPB+Q.IOPL+2 ; INTO DPB! DIR$ #DPB ; AND WRITE THE LINE19 MOV #TOTAL,R1 ; CONVERT THE GRAND TOTAL TO ASCII DECIMAL$, CLR R2 ; (ZERO-SUPPRESSED, LEFT JUSTIFIED) MOV #TOTAMT,R0# CALL $CDDMG1 MOVB #'.,(R0)+ ; PACK DOT AND EOL AT END OF LINE; MOVB #CR,(R0)+O0 SUB #TOTBUF,R0 ; PUT CORRECT LINE SIZE INTO DPB MOV R0,DPB+Q.IOPL+20 MOV #TOTBUF,DPB+Q.IOPL ; AND ALSO NEW BFR ADDR& BR OUT ; GO OUTPUT THE LINE AND EXIT;;/ERROR1: MOV #ER1,DPB+Q.IOPL ; GET ERROR STRINGD$ MOV #ER1SIZ,DPB+Q.IOPL+2 ; GET SIZE BR ERROUT/ERROR2: MOV #ER2,DPB+Q.IOPL ; GET ERROR STRINGA$ MOV #ER2SIZ,DPB+Q.IOPL+2 ; GET SIZE BR ERROUT/ERROR3: MOV #ER3,DPB+Q.IOPL ; GET ERROR STRINGV$ MOV #ER3SIZ,DPB+Q.IOPL+2 ; GET SIZE BR ERROUT/ERROR4: MOV #ER4,DPB+Q.IOPL ; GET ERROR STRINGS$ MOV #ER4SIZ,DPB+Q.IOPL+2 ; GET SIZEBERROUT: MOVB #ERRDEV,DPB+Q.IOLU ; CHANGE LUN TO ERROR DEVICE (TI:)OUT: CLOSE$ #FDB ; CLOSE THE FILE DIR$ #DPB EXIT$SR.PAGEO0.SBTTL CONTIG -- CONTIGUOUS BLOCK SEARCH ROUTINE;DK; THIS IS THE ROUTINE THAT SEARCHES THE BIT MAP FILE FOR UNALLOCATED BLOCKSSJ; AND CALCULATES THE SIZE OF CONTIGUOUS CHUNKS OF THEM. THE RETURN TO THEJ; CALLER IS THE DISK ADDRESS OF THE FIRST BLOCK OF A HOLE IN 'BLKADR' AS AL; DOUBLE PRECISION NUMBER AND THE SIZE OF THE HOLE IN 'COUNT', ALSO A DOUBLE; PRECISION NUMBER.T;O'CONTIG: CLR COUNT ; INIT THE HOLE SIZE CLR COUNT+2 CALL $SAVAL ; SAVE R0-R57 MOV BITCNT,R2 ; GET THE BIT COUNT FOR THE CURRENT WORDC. MOV CURWRD,R1 ; IS THE CURRENT WORD NON-ZERO? BNE 2$ ; YES IF NE21$: MOV #16.,R2 ; INIT THE BIT POSITION INDICATOR3 CALL GETWRD ; GET THE NEXT WORD FROM THE MAP FILER BCS EXIT ; EOF OR ERRORH TST STATE BEQ 1$ ; ZERO WORD IF EQ BMI 7$ ; ALL ONES WORD IF MI2$: ASR R1 ; IS NEXT BIT ZERO?H BCS 3$ ; NO IF CSS+ SOB R2,2$ ; LOOP UNTIL A ONE BIT IS FOUNDG! BR 1$ ; (THIS SHOULDN'T HAPPEN)*4$: ASR R1 ; GET THE NEXT BIT. IS IT ONE? BCS 5$ ; YES BR EXIT ; NO, END OF THIS HOLE-3$: CALL BLKSAV ; SAVE THE BLOCK ADDRESS ANDZ65$: ADD #1,COUNT+2 ; COUNT ANOTHER BLOCK IN THIS HOLE ADC COUNT( SOB R2,4$ ; LOOP 'TIL THE WORD IS DONE16$: CALL GETWRD ; GET THE NEXT WORD FROM THE MAP BCS EXIT ; EOF OR ERROR TST STAT# BEQ EXIT ; ALL ZEROS, END OF HOLES* BMI 10$ ; ALL ONES, ADD 16. TO HOLE SIZE0 MOV #16.,R2 ; NEITHER, COUNT ONES TO NEXT ZERO BR 4$'7$: CALL BLKSAV ; SAVE ADDRESS OF HOLE 610$: ADD #16.,COUNT+2 ; ADD 16. BLOCKS TO SIZE OF HOLE ADC COUNT BR 6$ ; AND GO BACK FOR MOREV0EXIT: MOV R1,CURWRD ; SAVE THE WORKING REGISTERS0 BEQ 11$ ; (IF CURWRD.NE.0 BITCNT MUST BE DEC'D1 DEC R2 ; TO BE READY FOR NEXT PASS THRU HERE);11$: MOV R2,BITCNT RETURNA.PAGES".SBTTL GETWRD -- GET NEXT MAP WORD;QI; THIS ROUTINE GETS THE NEXT WORD FROM THE MAP FILE INPUT BUFFER. IF THEEJ; BUFFER IS EXHAUSTED IT WILL READ ANOTHER BLOCK. THE NEXT AVAILABLE WORDH; IS RETURNED IN R1. IF EOF IS REACHED OR A READ ERROR OCCURS THE CARRY2; BIT WILL BE SET ON RETURN AND R1 IS NOT CHANGED.;.GETWRD: CLR STAT ; CLEAR THE STATUS INDICATOR. CMP BUFPTR,#INBUF+510. ; IS BUFFER EXHAUSTED? BLO 1$ ; NO IF LOE+ INC BLOCK ; YES, GET NEXT BLOCK FROM FILEI00]h]l.64 MOV BLOCK,READ+Q.IOPL+10T DIR$ #READG TSTB IOST ; READ SUCCESSFUL?( BLT ERR ; NO, EITHER EOF OR READ ERROR- MOV #INBUF-2,BUFPTR ; RE-INIT THE BUFFER PTRT"1$: ADD #2,BUFPTR ; UPDATE THE PTR% MOV @BUFPTR,R1 ; GET THE BUFFER WORDE0 BEQ GEXIT ; IF WORD IS ZERO, STATUS IS CORRECT# INC STAT ; NON-ZERO CHANGE STATUSO CMP #-1,R1 ; IS WORD ALL ONES? BNE GEXIT ; NO IF NE NEG STAT ; YES GEXIT: CLC RETURNEERR: SEC RETURN .PAGEL3.SBTTL BLKSAV -- SAVE BLOCK ADDRESS OF CURRENT HOLEM;BF; THIS ROUTINE TAKES THE BIT MAP VIRTUAL BLOCK NUMBER, THE WORD NUMBERG; WITHIN THE CURRENT BUFFER, AND THE BIT NUMBER WITHIN THE CURRENT WORDBF; AND COMBINES THEM TO PRODUCE A LOGICAL BLOCK ADDRESS FOR THE DEVICE.; /BLKSAV: CALL $SAVAL ; SAVE ALL REGISTERS FIRST 9 MOV #512.,R0 ; MULTIPLY THE BLOCK NUMBER RELATIVE TO THER7 MOV BLOCK,R3 ; START OF THE MAP BY 512. (BYTES/BLOCK) ; MOV R2,BITCNT ; SAVE THE BIT POSITION BEFORE DESTROYING ITL CLR R2B' SUB #2,R3 ; (MAP STARTS AT REL BLK 2)L CALL $DMULS6 MOV R1,R3 ; MOV THE PRODUCT BACK TO THE MULTIPLICAND MOV R0,R2 ; REGISTERS5 MOV BUFPTR,R4 ; CALC. BYTE OFFSET INTO CURRENT BLOCKB SUB #INBUF,R41 ADD R4,R3 ; (AT THIS POINT, THE TOTAL NUMBER OFV, ADC R2 ; MAP BYTES IS CONTAINED IN R2-3)3 MOV #8.,R0 ; MULTIPLY BY 8. VOL BLKS PER MAP BYTEM CALL $DMULT2 MOV #16.,R4 ; LAST, ADD OFFSET INTO CURRENT WORD SUB BITCNT,R4' ADD R4,R1 ; INTO THE TOTAL TO OBTAINR ADC R0I; MOV R1,BLKADR+2 ; THE ACTUAL VOLUME LOGICAL BLOCK ADDRESSC MOV R0,BLKADR RETURN .PAGE ).SBTTL DISPLAY HEADER AND GETCHR ROUTINES2; ; HEADER OUTPUT ROUTINE4;C*HEADER: COM HDRDON ; SET HEADER DONE FLAG( DIR$ #TIME ; GET CURRENT DATE AND TIME6 MOV #OUTBUF,R0 ; FORMAT THE LINE INTO THE OUTPUT LINE/ MOV #ISTRNG,R1 ; (ADDR OF EDIT-CONTROL STRING)P MOV #TBUF,R2 ; (DATE/TIME DATA) CALL $EDMSG2 SUB #OUTBUF,R0 ; SET UP DPB TO OUTPUT THE HEADER MOV R0,DPB+Q.IOPL+2 DIR$ #DPB ; OUTPUT IT* MOV #OUTBUF,R0 ; RE-INIT THE LINE BFR PTR1 MOV #LINSIZ,DPB+Q.IOPL+2 ; RESTORE THE LINE SIZE RETURNS;H ;**-123U .PAGE .SBTTL CDBOMTP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;E9; CONVERT DOUBLE PRECISION BINARY TO ASCII UNSIGNED OCTALE;TO; THIS ROUTINE CONVERTS AN UNSIGNED, DOUBLE PRECISION BINARY NUMBER TO AN ASCII/); OCTAL NUMBER STRING OF UP TO 11 DIGITS. ;T; TO CALL THE CBDOM ROUTINE:;V=; 1.) SUPPLY THREE INPUT ARGUMENTS IN THE TASK'S SOURCE CODE:E;I5; IN R0, THE STARTING ADDRESS OF THE OUTPUT AREA IN 6; WHICH THE CONVERTED 1 TO 11 DIGIT NUMBER IS TO BE ; STORED.;T7; IN R1, THE ADDRESS OF THE TWO-WORD INPUT AREA WHICH;1; CONTAINS THE DOUBLE PRECISION BINARY NUMBER.I;N1; IN R2, THE ZERO SUPPRESSION INDICATOR, WHERE:E;N2; R2=0 TO SPECIFY THAT LEADING ZEROES ARE TO BE3; SUPPRESSED AND THE NUMBER LEFT-JUSTIFIED. ;T4; R2=N WHERE 0 < N =< 11, TO SPECIFY LEADING ZERO5; SUPPRESSION WITH THE NUMBER RIGHT-JUSTIFIEDN3; IN A FIELD OF LENGTH N. IF THE CONVERTED 4; NUMBER HAS MORE THAN N DIGITS, THE ROUTINE7; INSERTS A STRING OF N ASTERISKS IN THE OUTPUTP; AREA. ;C7; R2=M WHERE -11 =< M < 0, TO SPECIFY NO SUPPRESSIONR8; OF LEADING ZEROES AND A FIELD LENGTH OF M. IF8; THE CONVERTED NUMBER HAS MORE THAN M DIGITS, A7; STRING OF M ASTERISKS WILL BE INSERTED IN THE ; OUTPUT AREA.;DM; NOTE: FOR EITHER MODE OF ZERO SUPPRESSION, IF THE NUMBER IS ZERO THERE WILLA0; BE ONE ASCII ZERO INSERTED IN THE OUTPUT AREA.;B;H; 2.) INCLUDE THE STATEMENTU;E ; CALL CDBOME; ; IN THE SOURCE PROGRAM.T;OI; THE CDBOM ROUTINE CALLS $SAVRG TO SAVE AND RESTORE REGISTERS 3-5 OF THEU4; CALLING TASK. REGISTERS 1 AND 2 ARE NOT PRESERVED.;H%; OUTPUTS FROM THE CDBOM ROUTINE ARE:B;H>; 1.) THE CONVERTED NUMBER, A STRING OF 1 TO 11 DIGITS, IN THE; OUTPUT AREA.; 9; 2.) R0 = THE NEXT AVAILABLE ADDRESS IN THE OUTPUT AREA.U;E;OH; THE CDBOM ROUTINE DOES NOT RETURN ANY 00]a!-TADATADATAERROR INDICATIONS TO THE CALLER.;P;A; DATE: 15-AUG-78 ;L; AUTHOR: M. C. ARMSTRONGC(; BADGER METER, INC. - ELECTRONICS DIV.; RICHMOND, CA ;TP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;N$; CDBOM DATA AND DEFINITIONS SECTION;MLDCHAR: .ASCII / 0/E"OVFTAB: 10,0 ; 1 DIGIT FIELD SIZE 100,0 ; 2 1000,0 ; 3 10000,0 ; 4P 100000,0 ; 5 0,4 ; 6E 0,40 ; 7 0,400 ; 8N 0,4000 ; 9 0,40000 ; 10;D(; OFFSET DEFINITIONS FOR STACK VARIABLES;I)BUFSAV = 2 ; SAVED OUTPUT BUFFER ADDRESS 2PKCTRL = 4 ; USED TO PASS OVER UNWANTED ZEROS FOR ; NO-ZS AND ZS,RJ MODESC;,; CDBOM CODE SECTION;;"CDBOM:: JSR R5,$SAVRG ; SAVE R3-R50 SUB #6,SP ; ALLOCATE SPACE FOR STACK VARIABLES1 MOV (R1)+,R4 ; GET DOUBLE PRECISION INPUT NUMBERV3 MOV (R1),R5 ; WHERE IT IS HANDIER (R5=LO, R4=HI),7 CLR R1 ; INIT MODE REG. TO '0 SUPPRESS, LEFT JUSTIFY' . CLR R3 ; AND CLEAR DIGIT REG FOR FIRST PASS. TST R2 ; IS MODE '0 SUPPRESS, LEFT JUSTIFY'? BNE 1$ ; NO IF NE , MOV #11.,R2 ; YES, SET TO MAX. DIGIT COUNT; BR CVSTRT ; AND GO BEGIN CONVERSION WITH 2 HI-ORDER BITSE<1$: BPL 2$ ; IF R2 > 0, MODE IS '0 SUPPRESS, RIGHT JUSTIFY'5 INC R1 ; OTHERWISE ZEROES ARE NOT TO BE SUPPRESSEDL# NEG R2 ; MAKE FIELD SIZE POSITIVEI02$: INC R1 ; (R1=1 => [ZS,RJ]; R1=2 => [NO-ZS]);R:; CHECK WHETHER NUMBER WILL FIT IN FIELD OF SPECIFIED SIZE;T. ASH #2,R2 ; CONVERT FIELD SIZE TO INDEX INTO ; TEST TABLE - CMP R4,OVFTAB-2(R2) ; HI-ORDER PART TOO BIG?  BHI 3$ ; YES IF HI BNE 5$ ; NO IF NEA; CMP R5,OVFTAB-4(R2) ; OTHERWISE, IS LO-ORDER PART TOO BIG?  BLO 5$ ; NO IF LO ;3$: ASH #-2,R2 ; CHANGE R2 FROM TBL INDEX BACK TO FLD SIZER44$: MOVB #'*,(R0)+ ; PACK ASTERISKS INTO OUTPUT AREA SOB R2,4$ ; UNTIL FILLEDV BR CVEXIT ; THEN EXIT=5$: MOV R0,BUFSAV(SP) ; SAVE BFR ADR FOR BFR-EMPTY-TEST LATERN8 CLR (SP) ; SET NO SIGNIFICANT-DIGIT-SEEN FLAG ON STACK7 ASH #-2,R2 ; RESTORE R2 BACK TO FIELD SIZE SPEC AGAINR> MOV #12.,PKCTRL(SP) ; INIT LOOP CTR FOR PASSING OVER UNWANTED4 SUB R2,PKCTRL(SP) ; ZEROS IN NO-ZS AND ZS,RJ MODES1 BR CVSTRT ; GET THE FIRST DIGIT (TWO BITS ONLY)-;2; BEGIN THE CONVERSION;X%CVLOOP: CLR R3 ; CLEAR THE DIGIT REG; ASHC #1,R4K ROL R3TCVSTRT: ASHC #1,R4 ROL R3L ASHC #1,R4  ROL R3 ! TST (SP) ; ANY SIG. DIG.'S YET?  BNE 7$ ; YES IF NE$ TST R3 ; NO, IS THIS DIGIT A ZERO? BNE 6$C% TST R1 ; YES, ARE WE IN ZS,LJ MODE?R; BEQ CVLOOP ; YES IF EQ - GO LOOK FOR SIGNIFICANCE IN LIFET: DEC PKCTRL(SP) ; NO - PASSED OVER ALL UNWANTED ZEROS YET?6 BNE CVLOOP ; NO IF NE - DON'T PACK ANYTHING YET THEN= MOVB LDCHAR-1(R1),R3 ; YES, OUTPUT SPACE OR ZERO AS REQUIREDI> INC PKCTRL(SP) ; (FORCES UNWANTED ZEROS TEST INTO HERE AGAIN) BR 10$V"6$: INC (SP) ; SET SIG.-DIG.-SEEN#7$: BISB #'0,R3 ; MAKE DIGIT ASCII '10$: MOVB R3,(R0)+ ; PACK THE CHARACTERR0 SOB R2,CVLOOP ; DO IT UNTIL ALL DIGITS ARE DONE2 TST (SP) ; DID WE EVER FIND MEANING IN ALL THIS? BNE CVEXIT ; YES IN NE: CMP BUFSAV(SP),R0 ; NO, WAS ANYTHING PACKED (ZS,RJ MODE)? BEQ 11$ ; NO IF EQ+ DEC R0 ; YES, BACK PTR UP OVER LAST SPACEN;11$: MOVB #'0,(R0)+ ; AND PACK ONE ZERO REGARDLESS OF MODEE$CVEXIT: ADD #6,SP ; CLEAN THE STACK RETURN ; AND EXITG;+!; TRY AND GET AN MCR COMMAND LINED"; AND SIMULATE THE HOL>DEV: SYNTAX;-GETLIN:0 DIR$ #ODPB ; OUTPUT A 'FRG>'C DIR$ #IDPB ; ISSUE INPUT QIOL) BCS 10$ ; WE HAVE AN ERROR, SO GIVE UP 3 MOV IOST+2,CMDLTH ; Get number of chars ;RAW001 " BR 20$ ; OK - carry on ;**-1;N10$: JMP ERROR3 ; ELSE WARN USER; 20$:4 MOV CMDLTH,R1 ; R1 has # of chars entered ;RAW0010 BEQ 40$ ; Branch if no chars entered ;RAW001. MOV #GMCR+6,R0 ; Set input address ;RAW001+25$: BITB #100,(R0) ; A letter? ;RAW001M( BEQ 30$ ; If EQ no - carry on ;**-50 BICB #40,(R0) ; Yes - convert it to upper case;30$:, INC R0 ; Point to next character ;RAW001< SOB R1,25$ ; loop until all chars converted to UC ;RAW001; ;RAW00100]^_.6440$: ;RAW001 1 MOV #"HO,GMCR+2 ; Fake the first part ;RAW001 MOV #"L ,GMCR+4 ; ;RAW001s ADD #4,CMDLTH ; ;RAW001B# RETURN ; OK, GO HOME ;RAW001  .PAGE ;RAW001, .SBTTL State tables for .TPARS ;RAW001 ;RAW001?# ISTAT$ STATE1,KEYTBL ;RAW001  ;RAW001B. STATE$ PARCMD ;Parse command line ;RAW0013 TRAN$ $STRNG ;Bypass program name 'HOL' ;RAW0011 ;RAW001o STATE$ ;RAW001t: TRAN$ !DEV,CHKSW ;See if a device was specified ;RAW001= TRAN$ $LAMDA,CHKSW ;If not, just check for switches ;RAW001, ;RAW0010 STATE$ CHKSW ;RAW001, TRAN$ '/,GETSW ;Check for switch ;RAW0012 TRAN$ $EOS,$EXIT ;Only exit from TPARS ;RAW001 ;RAW001  STATE$ GETSW ;RAW0015 TRAN$ $DNUMB,CHKSW,SETSIZ ;Check for /nnn ;RAW001C> TRAN$ "O",CHKSW,,SW.OCT,SWFLAG ;Check for /O (octal) ;RAW001@ TRAN$ "OC",CHKSW,,SW.OCT,SWFLAG ;Check for /OC (octal) ;RAW001B TRAN$ "OCT",CHKSW,,SW.OCT,SWFLAG ;Check for /OCT (octal) ;RAW001C TRAN$ "OCTA",CHKSW,,SW.OCT,SWFLAG ;Check for /OCTA (octal) ;RAW001 E TRAN$ "OCTAL",CHKSW,,SW.OCT,SWFLAG ;Check for /OCTAL (octal) ;RAW001w ;RAW001A+ STATE$ DEV ;/dev subexpression ;RAW0011B TRAN$ $ALPHA,,MNEM1 ;Check for 1st letter of device name ;RAW001 ;RAW001f STATE$ ;RAW001$B TRAN$ $ALPHA,,MNEM2 ;Check for 2nd letter of device name ;RAW001 ;RAW001L STATE$ ;RAW001 6 TRAN$ ':,$EXIT ;return if implied unit of 0 ;RAW0016 TRAN$ $NUMBR,CKCOL2,STUNIT ;Get unit number ;RAW001@ TRAN$ $LAMDA,$EXIT ;Return if implied unit 0 with no : ;RAW001 ;RAW001C STATE$ CKCOL2 ;RAW001 / TRAN$ ':,$EXIT ;Return if : entered ;RAW001W6 TRAN$ $LAMDA,$EXIT ;Return if : not entered ;RAW001 ;RAW001 ( STATE$ ;End of state table ;RAW001; ;RAW001%; TPARS Action routines ;RAW001e; ;RAW001 ;RAW001 DMNEM1: MOVB .PCHAR,ALUN+A.LUNA ;1st char of device mnumonic ;RAW001 RETURN ;RAW001U ;RAW001rFMNEM2: MOVB .PCHAR,ALUN+A.LUNA+1 ;2nd char of device mnumonic ;RAW001+ CLR ALUN+A.LUNU ;Assume unit 0 ;RAW001  RETURN ;RAW001I ;RAW001e6STUNIT: MOV .PNUMB,ALUN+A.LUNU ;Device unit ;RAW001 RETURN ;RAW001  ;RAW001 BSETSIZ: MOV .PNUMH,LOWLIM ;Store high order of low limit ;RAW001< MOV .PNUMB,LOWLIM+2 ;Store low order of low limit ;RAW001 RETURN ;RAW001+ ;RAW001  .END HOLE ;**-7 RETURN ;RAW001U ;RAW001rFMNEM2: MOVB .PCHAR,ALUN+A.LUNA+1 ;2nd char of device mnumonic ;RAW001+ CLR ALUN+A.LUNU ;Assume unit 0 ;RAW001  RETURN ;RAW001I ;RAW001e6STUNIT: MOV .PNUMB,ALUN+A.LUNU ;Device unit ;RAW001 RETURN ;RAW001  ;RAW001 BSETSIZ: MOV .PNUMH,LOWLIM ;Store high order of low limit ;RAW001< MOV .PNUMB,LOWLIM+2 ;Store low order of low limit ;RAW001 RETURN ;RAW001+ ;RAW001  .END HOLE  .NLISTY LIST=0  .LISTFILE TYPE .FVER: .BLKW ;BINARY VERSION #L.AB = . ;LENGTH OF ENTRY .IIF NDF LIST, .LIST F.DIR = 1 ;THIS FCB IS IN DIRECTORY LRU LIST- F.ACP = 2 ;THIS FCB IS IN ACP INTERNAL AREA  F.FCM = 4 ;FCB IN FCPCOM F.SCM = 10 ;FCB IN SCOMP .FID: ;START OF FILE ID BLOCK.FNUM: .BLKW ;FILE NUMBER:$.FSEQ: .BLKW ;FILE SEQUENCE NUMBER%.FOWN: ;START OF FILE OWNER BUFFERS.PROG: .BLKB ;MEMBER #.PROJ: .BLKB ;GROUP #V .FNAM: .BLKW 3 ;RAD50 FILE .ENABLE SUBSTITUTION.100: .ASKS N NAME!PIP SY:[1,30]/RE/CD=[1,10]'N'.*;*PIP 'N'.*;*/PR/FO .GOTO 10000`a!-TADATADATA+RCV/MU,RECOVER/-SP=RECOVER,LB:[1,1]EXEC.STB/ TASK=...RCVUNITS=2ASG=TI:2PRI=60LIBR=SYSRES:RO// .TITLE RECOVER .IDENT /MRH001/ .SBTTL INTRO PAGE;@; MCR TASK TO RECOVER A FILE LOCKED AS A RESULT OF TASK ABORTION;1; ORIGINAL AUTHOR R B FRENCH NOV 76 THE BOEING CO); AT REESE (WITH COSMETIC MODIFICATIONS) !; F BORGER MAR 77 MICHAEL REESE;;CALLING SEQUENCE; ;MCR>REC[OVER] FILENAME[/SWITCH];4; WHERE FILENAME IS A LEGAL FILES-11 SPECIFICATION;%;ALLOWABLE SWITCHES : /LA:NNN /AD:NNN"; LA = SET LA(ST) RECORD # TO NNN?; AD = SET LAST RECORD TO # IN FILE + AD (AD CAN BE NEGATIVE)E:; (THE ABOVE SWITCHES ONLY WORK FOR FIXED LENGTH RECORDS)A; AD SWITCH INTRODUCED CAUSE LA AND AD CAN ONLY BE 16 BIT VALUESA;OG;RECOVER WILL UNLOCK THE FILE (IF LOCKED) UNLESS ANOTHER TASK HAS WRITENC;ACCESS. IT WILL THEN SCAN THE FILE AND REWRITE FILE ATTRIBUTES TO 4;REFLECT THE ACTUAL SIZE OF THE FILE (RATHER THAN 0);I5; MODIFIED 2/81 TO ACCOUNT FOR FILE HEADER EXTENSIONSE; ;:;TASK BUILD PROCEEDURE;A';RECOVER/MU=RECOVER,LB:[1,1]EXEC.STB/SSC;/ ;TASK=...RCV;UNITS=2 ;ASG=TI:2I;PRI=60(;LIBR=SYSRES:ROS;// ;K0 .MCALL GCMLB$,GCML$,CSI$,CSI$1,CSI$2,DIR$,QIOW$1 .MCALL FINIT$,FSRSZ$,FDOP$A,OPEN$U,CLOSE$,EXIT$SR/ .MCALL FDRC$A,FHDOF$,GET$,CSI$SW,CSI$SV,CSI$NDO;R;SOME NECESSARY DEFINITIONS * FHDOF$ DEF$L ;DEFINE FILE HEADER OFFSETSAC0=%0AC1=%1AC2=%2.PAGEA.SBTTL INTRO CODE(RECOV: FINIT$ ;INITIALIZE FSR; ;READ AND DECODE COMMAND LINEN;N)START: GCML$ #GCLBLK ;GET A COMMAND LINEC BCC 10$7 CMPB #GE.EOF,GCLBLK+G.ERR ;IF ERROR WASN'T END OF FILEA$ BNE SERR ;THEN IT'S A SYNTAX ERROR% EXIT$S ;IF END OF FILE NORMAL EXIT$>10$: CSI$1 #CSIBLK,GCLBLK+G.CMLD+2,GCLBLK+G.CMLD ;CHECK SYNTAX' BCS SERR ;THIS IS ALSO A SYNTAX ERROR,: CSI$2 #CSIBLK,OUTPUT,#SWITCH ;TRY TO DECODE ONE FILE NAME& BCS SERR ;THIS TOO IS A SYNTAX ERROR;HAVE A GOOD FILE SPEC MOV #FDB,R0 ;FBD ADDRESS -> R0% MOV #FDB+F.FNB,R1 ;FNB ADDRESS -> R1E7 MOV #CSIBLK+C.DSDS,R2 ;DATA SET DESCRIPTOR BLOCK -> R2L" CLR R3 ;ALL SET TO PARSE THE FDB JSR PC,.PARSE ;SO DO IT BCS FERR ;BR IF FILE ERROR$ JSR PC,.FIND ;NOW LOOK FOR THE FILE BCC READHD ;BR IF FILE FOUND1 CMPB #IE.NSF,FDB+F.ERR ;WAS ERROR NO SUCH FILE ?X! BNE FERR ;IF NOT SAY FILE ERROR 1 JMP NOFILE ;IF SO TELL THE GUY (PERSON THAT IS)E;SOME BRANCH AIDESSERR: JMP SYNERRFERR: JMP FCSERRUSEERR: JMP FILUSEEMPERR: JMP FILEMP;AE;READ FILE HEADER, UNLOCK IF NECESSARY (BUT CHECK ACCESS COUNT FIRST)D;2%READHD: DIR$ #READ ;READ FILE HEADERR BCS FERR ;ANOTHER FCS ERROR* BITB #100,HEADER+H.UCHA ;IS FILE LOCKED ?. BEQ COUNT ;DON'T HAVE TO DO NEXT IF IT ISN7T; MOV #RDSTAT,READ+Q.IOPL+2 ;SET UP TO READ STATISTICS BLOCKS DIR$ #READ ;DO ITX) BCS FERR ;LOTS OF FCS ERRORS CAN HAPPENN) TST STAT+10 ;IS FILE CURRENTLY IN USE ?E( BNE USEERR ;IF IT IS TELL THE OPERATOR3 BIC #100,HEADER+H.UCHA ;OK TO CLEAR LOCKED BIT NOWP/ DIR$ #WRITE ;WRITE CHARACTERISTICS BLOCK BACK " BCS FERR ;CHECK THAT THAT WAS OK.PAGE$6.SBTTL SCAN HEADER MAP AREA TO RECONSTRUCT ACUTAL SIZE;#COUNT: CLR R4 ;CLEAR BLOCK COUNTERK2 MOV FDB+F.FNB+N.FID,FIDSAV ;SAVE FIRST HEADER FID MOV FDB+F.FNB+N.FID+2,FIDSAV+2 4COUNT1: MOVB HEADER+H.MPOF,R1 ;MAP AREA OFFSET -> R1( ASL R1 ;MAKE IT BYTE (NOT WORD) OFFSET, ADD #HEADER,R1 ;R1 NOW POINTING AT MAP AREA MOV R1,R2 ;AND R2T, MOVB M.USE(R2),R2 ;NUMBER OF POINTERS -> R2! BIC #177400,R2 ;CAUSE ITS A BYTEI BEQ EMPERR ;FILE EMPTY IF ZERO ASR R2 ;MAKE R2 WORD OFFSETA* ADD #M.RTRV+1,R1 ;START OF POINTERS IN R1'10$: MOVB (R1),R3 ;BLOCK COUNT-1 -> R3C! BIC #177400,R3 00a_.64;CAUSE ITS A BYTEF INC R3 ;NOW HAVE BLOCK COUNT ADD R3,R4 ;ADD IT TO COUNTER ADD #4,R1 ;BUMP TO POINTER SOB R2,10$ ;LOOP TIL DONES0 MOVB HEADER+H.MPOF,R1 ;MAP R1 TO MAP AREA AGAIN ASL R1E ADD #HEADER,R1O/ MOV M.EFNU(R1),R2 ;CHECK FOR EXTENSION FILE ID.- BEQ COUNTX ;IF NONE, WE HAVE ALL THE BLOCKS40 MOV R2,FDB+F.FNB+N.FID ;ELSE CHANGE THE FILE ID! MOV M.EFSQ(R1),FDB+F.FNB+N.FID+2F0 DIR$ #READ ;AND READ THE EXTENSION FILE HEADER, BCC COUNT1 ;COUNT SOME MORE IF READ WAS OK JMP FCSERR ;ELSE REPORT ERRORI;RJCOUNTX: CMP FIDSAV,FDB+F.FNB+N.FID ;DID WE LOOK AT EXTINSION FILE HEADER ? BEQ OPEN ;BRANCH IF NOTO MOV FIDSAV,FDB+F.FNB+N.FIDM MOV FIDSAV+2,FDB+F.FNB+N.FID+2- DIR$ #READ ;READ ORIGINAL FILE HEADER AGAIN; BCC OPEN ;BR IF OK JMP FCSERR ;ELSE REPORT ERROR .PAGEL<.SBTTL OPEN THE FILE AND PUT ACTUAL ATTRIBUTES VALUES IN FDB;M.OPEN: OPEN$U #FDB ;OPEN THE FILE (FOR UPDATE) BCS FERR ;ANOTHER FCS ERRORD CLR FDB+F.HIBK;( MOV R4,FDB+F.HIBK+2 ;UPDATE BLOCK COUNT CLR FDB+F.EFBKR? MOV R4,FDB+F.EFBK+2 ;AND LAST BLOCK (SINGLE PREC SHOULD BE OK)N3 BITB #R.FIX,FDB+F.RTYP ;ARE RECORDS FIXED LENGTH ?F BEQ 5$ ;IF NOT, SKIP NEXTF* JSR PC,CALEFB ;CALCULATE END OF FILE BYTE4 BR 10$ ;AND DON'T DEFAULT END OF FILE BYTE TO 100065$: TST RECFLA ;DID OPERATOR SPEC # OF RECORDS TO SET BEQ 6$ ;IF NOT WE'RE OKB; MOV #NFXMSG,QIOW+Q.IOPL ;ELSE TELL THEM WE CAN'T DO IT FORR3 MOV #NFXLEN,QIOW+Q.IOPL+2 ;VARIABLE LENGTH RECORDSH DIR$ #QIOW ;BUT DO THE RESTA16$: TST FDB+F.FFBY ;IS END OF FILE BYTE DEFINED ?K BNE 10$ ;BR IF IT IS& MOV #1000,FDB+F.FFBY ;ELSE DEFAULT IT-10$: TST FDB+F.RSIZ ;IS RECORD SIZE DEFINED ?; BNE 11$ ;SKIP IF SOR. MOV #1000,FDB+F.RSIZ ;ELSE DEFAULT IT FOR NOW;N6;NOW CLOSE AND REOPEN FILE SO ACP KNOWS ABOUT NEW SIZE;D&11$: MOV FDB+F.FNB,-(SP) ;SAVE FILE ID CLOSE$ #FDB% MOV (SP)+,FDB+F.FNB ;RESTORE FILE IDL BCC 111$ ;BR IF OK JMP FCSERRM111$: OPEN$U #FDBO BCC 112$ ;BR IF OK JMP FCSERRR8112$: BITB #FD.RWM,FDB+F.RACC ;IS IT BLOCK MODE ACCESS ?" BNE CLOSE ;IF SO JUST CLOSE FILE/ BITB #R.FIX,FDB+F.RTYP ;FIXED LENGTH RECORDS ? BNE CLOSE ;BR IF THEY ARED.PAGEE?.SBTTL FOR NON-FIXED RECORDS, SCAN TO DETERMINE MAX RECORD SIZEA;  CLR R1 ;CLEAR TEMP ACCUM"SCAN: GET$ ;MAIN LOOP GET RECORD. BCC RECCHK ;IF NO ERROR CHECK MAX REC LENGTH& CMPB #IE.EOF,FDB+F.ERR ;END OF FILE ? BEQ 40$ ;IF SO, WRAP IT UP5 MOV FDB+F.NRBD+2,R2 ;OKAY GET POINTER TO LAST RECORD;9 CMP R2,FDB+F.BDB ;IS IT IN BLOCK BUFFER OR USER BUFFER ?T BLT 10$, SUB FDB+F.BDB,R2 ;SUB START OF BLOCK BUFFER* SUB #S.BFHD,R2 ;ACCOUNT FOR BUFFER HEADER BR 20$B,10$: SUB #HEADER,R2 ;JUST ACCOUNT FOR HEADER#20$: SUB #2,R2 ;OFFSET FOR COUNTER : MOV R2,FDB+F.FFBY ;START OF BAD RECORD IS FIRST FREE BYTE3 MOV FDB+F.VBN,FDB+F.EFBK ;CHANGE END OF FILE BLOCKH MOV FDB+F.VBN+2,FDB+F.EFBK+2 ;,;+;WE'RE ALMOST DONE;40$: MOV R1,FDB+F.RSIZ ;NEW RECORD SIZE IN FDB IF NECESSARYT$;PUT CORRECT ATTRIBUTE VALUES IN FDB#CLOSE: CLOSE$ #FDB ;CLOSE THE FILEB& JMP START ;AND TRY FOR MORE COMMANDS;S;T,;SMALL LOOP TO KEEP TRACK OF MAX RECORD SIZECRECCHK: CMP R1,FDB+F.NRBD ;WAS ANY PREVIOUS RECORD LARGER OR SAME ?R# BGE SCAN ;IF SO JUST KEEP LOOKING * MOV FDB+F.NRBD,R1 ;ELSE REMEMBER NEW SIZE BR SCAN ;AND TRY AGAIN.PAGEFH.SBTTL SUB TO CALCULATE END OF FILE BYTE NUMBER FOR FIXED LENGTH RECORDS=; MODIFIED FOR DOUBLE PRECISION CALC SO CAN HAVE >32767 BYTESN;B$CALEFB: MOV R4,-(SP) ;SAVE USED REGS4 TST RECFLA ;OPERATOR SPECIFING NUMBER OF RECORDS ?4 BEQ 1$ ;IF NOT DEFAULT TO MAX NUMBER FILE CAN HOLD+ MOV RECNUM,SR0+2 ;NUMBER OF RECORDS TO SR0K CLR SR02 CLR RECFLA ;IN CASE WERE DOING MULTIPLE COMMANDS BR 2$ ;AND JOIN SEQUENCE LATER-1$: ;CALC # OF RECORDS = MAX THAT WILL FITE( CLR SR0 ;ASSUME NO FILE > 32767 BLOCKS MOV FDB+F.EFBK+2,SR0+2F1 SUB #1,SR0+2 ;NUMBER OF FULL BLOCKS IN SR0,SR0+2D$ MOV #1000,SR1+2 ;BYTES/BLOCK -> SR1 CLR SR1# JSR PC,MUL ;GET # OF BYTES IN SR0U SETI ;CHANGE TO INTEGER MODES7 LDCID FDB+F.FFBY,AC1 ;CONVERT # O00a!-TADATADATAF BYTES IN LAST BLOCK ) ADDD AC1,AC0 ;ADD THOSE TO # OF RECORDS  SETL ;BACK TO LONG MODE" STCDL AC0,SR0 ;AND GET THEM BACK! CLR SR1 ;GET RECORD SIZE IN SR1A MOV FDB+F.RSIZ,SR1+2 JSR PC,DIV ;CALC # OF RECORDSH&2$: TST ADJFLA ;ADJUST # OF RECORDS ? BEQ 22$ ;BR IF NOT/ CLR ADJFLA ;CLEAR FLAG FOR POSSIBLE NEXT TIME , SETD ;SET MODES IN CASE WE HAVEN'T CALLED SETL ;MUL OR DIV YETJ$ LDCLD SR0,AC0 ;# OF RECORDS -> AC0 SETI ;BACK TO INTEGER MODE& LDCID ADJNUM,AC1 ;# ADJUSTMENT -> AC1 SETL ;BACK TO LONG MODE# ADDD AC1,AC0 ;ADJUST # OF RECORDST$ STCDL AC0,SR0 ;AND GET ANSWER BACK$22$: CLR SR1 ;GET RECORD SIZE AGAIN MOV FDB+F.RSIZ,SR1+2V JSR PC,MUL ;SR0 = TOTAL BYTES;# MOV #1000,SR1+2 ;BLOCK SIZE -> SR1A CLR SR1+ JSR PC,DIV ;QUOT (SR0) = # OF FULL BLOCKS 1 ;REMAIN (SR1) = FIRST FREE BYTE IN NEXT BLOCKM0 MOV FDB+F.HIBK+2,R4 ;CALC MAXIMUM ENDFILE BLOCK- TST SR1+2 ;DID LAST RECORD JUST FIT BLOCK ?S BNE 23$ ;BR IF NOT5 ADD #1,R4 ;ENDFILE BLOCK CAN BE 1 GREATER THAN LAST /23$: ADD #1,SR0+2 ;ADD 1 TO BE FIRST FREE BLOCKE ADC SR06 CMP SR0+2,R4 ;IS CALCULATED ENDFILE BLOCK IN THE FILE BLOS 3$ ;BR IF OKV# DIR$ #BADREC ;REPORT BAD RECORD # * BR 4$ ;AND DON'T REDO RECORD NUMBER INFO43$: MOV SR1+2,FDB+F.FFBY ;WRITE 1ST FREE BYTE TO FDB5 MOV SR0,FDB+F.EFBK ;WRITE THE ENDFILE BLOCK BACK TOO  MOV SR0+2,FDB+F.EFBK+2,4$: MOV (SP)+,R4 RTS PCO.PAGET(.SBTTL 32-BIT MULTIPLY & DIVIDE ROUTINES;B@;ROUTINES TO PERFORM MULTIPLY & DIVIDE USING FPP CAUSE OTHERWISE6; CALEFB ROUTINE BLOWS UP IF TOTAL # OF BYTEST > 32767;;C;MULTIPLY ROUTINE ; );MULTIPLY SR0 BY SR1, LEAVE RESULT IN SR0 ; MUL: SETL SETD ;SET CALC MODEB LDCLD SR0,AC0 ;LOAD VALUES LDCLD SR1,AC1 MULD AC1,AC0 ;GET ANSWER STCDL AC0,SR0 ;PUT IT BACK RTS PCM;S;DIVIDE ROUTINEI;T9;DIVIDE SR0 BY SR1, LEAVE RESULT IN SR0, REMAINDER IN SR1O;SDIV: SETL ;SET CALC MODE SETD- LDCLD SR0,AC0 ;LOAD VALUES LDCLD SR1,AC1# LDD AC0,AC2 ;SAVE DIVIDEND IN AC2P DIVD AC1,AC0 ;RESULT IS IN ACO* STCDL AC0,SR0 ;CONVERT ANSWER TO INTEGER& LDCLD SR0,AC0 ;GET BACK INTEGER PART MULD AC1,AC0 ;MUL BY DIVISOR! SUBD AC0,AC2 ;SUB FROM DIVIDENDD- STCDL AC2,SR1 ;CONVERT REMAINDER TO INTEGER1 RTS PC ;AND WE'RE DONE;;C$SR0: .WORD 0,0 ;FLOATING POINT SAVESR1: .WORD 0,0.PAGE.SBTTL ERROR ROUTINESV;ENOFILE: MOV #NFLMSG,QIOW+Q.IOPLS MOV #NFLLEN,QIOW+Q.IOPL+2 BR COMERR ;JOIN MAIN SEQUENCEA;SFILEMP: MOV #FLEMSG,QIOW+Q.IOPLS MOV #FLELEN,QIOW+Q.IOPL+2 BR COMERR ;JOIN MAIN SEQUENCEL;0FILUSE: MOV #FLUMSG,QIOW+Q.IOPL MOV #FLULEN,QIOW+Q.IOPL+2 BR COMERR;LFCSERR: MOV #FCSMSG,QIOW+Q.IOPL  MOV #FCSLEN,QIOW+Q.IOPL+2- MOV #FCSMS1,R0 ;SET TO INSERT FCS ERROR CODE1 MOVB FDB+F.ERR,R1 ;INTO MESSAGE CLR R2O5 JSR PC,$CBDSG ;AS A SIGNED DECIMAL NUMBER (NEGATIBE)S BR COMERR;ISYNERR: MOV #SYNMSG,QIOW+Q.IOPLW MOV #SYNLEN,QIOW+Q.IOPL+2 BR COMERR;OCOMERR: DIR$ #QIOW JMP START ;AND TRY AGAIN;, ;THE QIO DPB+QIOW: QIOW$ IO.WLB,2,1,,,, .PAGEQ.SBTTL ERROR MESSAGES,SYNMSG: .ASCII <12>/REC -- SYNTAX ERROR/<15> SYNLEN=.-SYNMSG&FCSMSG: .ASCII <12>/REC -- FCS ERROR /FCSMS1: .ASCII / /<15>V FCSLEN=.-FCSMSG7FLUMSG: .ASCII <12>/REC -- FILE IS BEING ACCESSSED/<15>E FLULEN=.-FLUMSG-FLEMSG: .ASCII <12>/REC -- FILE IS EMPTY/<15>S FLELEN=.-FLEMSG,NFLMSG: .ASCII <12>/REC -- NO SUCH FILE/<15> NFLLEN=.-NFLMSGHNFXMSG: .ASCII <12>/REC -- CAN'T SET # OF RECORDS, NOT FIXED LENGTH/<15> NFXLEN=.-NFXMSG .EVEN;,.BADREC: QIOW$ IO.WVB,2,1,,,,;SFBADMSG: .ASCII /REC -- SPECIFIED NUMBER OF RECORDS TOO LARGE FOR FILE/ BADLEN=.-BADMSG .EVEN.PAGE.SBTTL FILE BUFFERS & SUCH;COMMAND LINE GOODIESGGCLBLK: GCMLB$ 1,REC,HEADER,2I CSI$S .EVEN ;IS THIS NECESSARY ?L CSIBLK: .BLKB C.SIZE ;CSI BLOCK;Y;FILE READ/WRITE AREAGKREAD: QIOW$ IO.RAT,1,1,,,, ;READ FILE ATTRIBUTES (OR STAT)CIWRITE: QIOW$ IO.WAT,1,1,,,, ;WRITE FILE CHARACTERISTICSM/RDHDR: .BYTE00ab.64 -12,0 ;READ HEADER CONTROL BLOCKS .WORD HEADERS .WORD 05RDSTAT: .BYTE -11,12 ;READ STATISTICS CONTROL BLOCKR .WORD STATE .WORD 08WRCHAR: .BYTE 3,1 ;WRITE CHARACTERISTICS CONTROL BLOCK .WORD HEADER+H.UCHA .WORD 0,HEADER: .BLKB 1000 ;BUFFER FOR FILE HEADER,STAT: .BLKW 5 ;BUFFER FOR STATISTICS BLOCK; ;FILE IO MACROS AND BLOCKS' FSRSZ$ 1 ;MAKE ROOM FOR ONE LUN ONLYIFDB: FDBDF$ ;DEFINE FDB FDOP$A 1,CSIBLK,C.DSDS< FDRC$A FD.PLC,HEADER,1000;H";COMMAND STRING INTERPERTER SWITCH;E9SWITCH: CSI$SW LA,1,RECFLA,,,SWVAL ;SPECIFY SWITCH ITSELF  CSI$SW AD,1,ADJFLA,,,SWVAL1 CSI$ND ;C=SWVAL: CSI$SV DECIMAL,RECNUM,2 ;SPECIFY DECIMAL RECORD NUMBERR>SWVAL1: CSI$SV DECIMAL,ADJNUM,2 ;SPECIFY DECIMAL ADJUST NUMBER CSI$ND ;U1FIDSAV: .WORD 0,0 ;SAVE 1ST FILE HEADER FID HERET9RECFLA: .WORD 0 ;FLAG FOR OPERATER SPEC'D NUMBER OF RECS 6RECNUM: .WORD 0 ;NUMBER OF RECORDS SPEC'D BY OPERATOR7ADJFLA: .WORD 0 ;FLAG FOR OPERATOR SPEC'D ADJ TO REC #H2ADJNUM: .WORD 0 ;NUMBER TO ADJUST MAX RECORD # BY .END RECOVFLA,,,SWVAL ;SPECIFY SWITCH ITSELF  CSI$SW AD,1,ADJFLA,,,SWVAL1 CSI$ND ;C=SWVAL: CSI$SV DECIMAL,RECNUM,2 ;SPECIFY DECIMAL RECORD NUMBERR>SWVAL1: CSI$SV DECIMAL,ADJNUM,2 ;SPECIFY DECIMAL ADJUST NUMBER CSI$ND ;U1FIDSAV: .WORD 0,0 ;SAVE 1ST FILE HEADER FID HERET9RECFLA: .WORD 0 ;FLAG FOR OPERATER SPEC'D NUMBER OF RECS 6RECNUM: .WORD 0 ;NUMBER OF RECORDS SPEC'D BY OPERATOR7ADJFLA: .WORD 0 ;FLAG FOR OPERATOR SPEC'D ADJ TO REC #H2ADJNUM: .WORD 0 ;NUMBER T*Kq5aTOL<&D@<&e@*<&Kq@<&%t@<&9@'ą@$9!@*$9~Z@:p@:@:@:2@*t<@:@`@=@@=@* X@X@p@?S@}@*hp!@}s@(0y( * 0 b +3@X ?S&@*& @ȕ =@$@=*LF hww  F}s X$9~Z*rwwwl@ l$*l E@| 2j. l|*f eBE e CE *`e~ eB wl (l* نwB- lw"l*0"# 7 f7d7 b7` 'ąhp!(t<*VP   (1$ 8 "*|0 "V J "`*w# w$ 'ąhp!<&%t&t<*  "  }$9!*w w"&`*w & 7 7 *:7 p7 wV*` 77 <  7  7*w 77  J7 z* P pee`w Z-XB(B* NB> 7.w.*7$ 7w77 *d`#VR  *DH D:6j "*j w| : $:* REC -- SYNTAX ERROR REC --* FCS ERROR REC -- FILE IS BEING *ACCESSSED REC -- FILE IS EMPTY REC -*- NO SUCH FILE REC -- CAN'T SET # OF *(RECORDS, NOT FIXED LENGTH   :2*NT5 REC -- SPECIFIED NUMBER OF RECORTtDS TOO LARGE FOR FILE <&9<&Kq<&D '  REC>  Pl*l":p: "&   @ @ <&e *LA(AD,*.( ,*..OO LARGE FOR FILE 00cd!-TADATADATAREI,REI/-SP=REI/ UIC=[1,1] TASK=...REI// .ENABL LC ! .TITLE REI - Reincarnate a file  .IDENT /V01.1/;+ !; Title: REI - Reincarnate a file; Ident: V01.1'; Author: Greg Thompson & Howard Palmer; Date: 6/7/79;; Purpose: To find and recover files from a corrupted disk.; Use: REI filespec where:5; filespec is a device name, followed by a standard 5; file specification to search for on the disk. If 3; a file matching the specified filespec is found,1; the user is prompted for the name of a file in; which to recover it.C;; Building: >TKB(; TKB>[1,54]REI/PR:0/-FP=[12,10]REI.OBJ; TKB>/; ENTER OPTIONS:f; TKB>TASK=...REI ; TKB>// ;g ; oO;******************************************************************************p; N; This software is provided on an "as is" basis only. Caterpillar Tractor Co.,N; disclaims all warranties on the program, including without limitation, all3; implied warranties of merchantablity and fitness.u; N; Full permission and consent is hereby given to DECUS and to the DECUSN; special interest groups to reproduce, distribute, and publish and permitN; others to reproduce in whole or in part, in any form and without restriction3; this program and any information relating thereto ; O;******************************************************************************i;a; Modified by:;s@; The following modifications were made by Rick Webster, Process6; Control Applications, MSDGO, Caterpillar Tractor Co.;i0; RAW001 - Correct error detection on input disk;t8; RAW002 - Enable and enhance output open error message.8; Correct error detection with WRITE$ macro, enhance ;; output write error message and set up to delete outputp; file if write error occursn;h>; RAW003 - Correct buffer clear logic so that it clears bytes,; not words;*?; RAW004 - Enhance error message for read error on input devicee;m;-> .MCALL ALUN$,CSI$,CSI$1,CSI$2,DIR$,EXIT$S,GCML$,GCMLB$,GCMLD$? .MCALL FDBDF$,FDAT$A,FDBK$A,FDOP$A,FDBF$A,FSRSZ$,FINIT$,NMBLK$ : .MCALL QIO$,QIOW$,FHDOF$,WTSE$,WTSE$S,GLUN$,CLOSE$,OPEN$W" .MCALL DELET$,WRITE$,WAIT$,FDRC$A;t .MACRO .ASCIC STRING,?ADR .BYTE ADR-.-1 .ASCII /STRING/ADR: .ENDM;oBEGIN:: ;f FHDOF$i;e ; Equatesn;hBFACT = 32. ; Blocking factor BSIZE = BFACT*512. ; Buffer sizeOULUN = 1 ; OUTPUT file LUNINLUN = 2 ; INPUT file LUNaTILUN = 5 ; TI terminal LUNOUEF = 1 ; OUTPUT file EFINEF1 = 2 ; INPUT file EF 1INEF2 = 3 ; INPUT file EF 2INEF3 = 4 ; INPUT file EF 3TIEF = 5 ; TI EFC; FSRSZ$ 2F;F%FDB0:: FDBDF$ ; FDB for output fileC FDAT$A R.VAR,FD.CRT FDRC$A FD.RWM FDBK$A BUF3,512.,,OUEF,INSB3E FDOP$A OULUN,CSIBLK+C.DSDS,DFNB;NBUF1:: .BLKB BSIZE ; Buffer 1 BUF1E = .eBUF2:: .BLKB BSIZE ; Buffer 2 BUF2E = .ZBUF3:: .BLKB 512. ; Buffer 3U BUF3E = .O,IOSB: .BLKW 2 ; I/O status block for WRITE$;U'MATCH: .WORD 0 ; Flags for file searchP#MT.GRP = 1 ; UIC group must matchF$MT.MEM = 2 ; UIC member must match#MT.FIN = 4 ; File name must match 0MT.TYP = 10 ; File type (extension) must match.MT.VER = 20 ; File version must match;R#UIC: .WORD 0 ; UIC for file searchF;$; Argument block for $EDMSG.;U+ARGBLK: .BLKW 5 ; File name, type, version2 .BLKW 2 ; File sequence number" .BLKW 2 ; Blocks used, allocated .BLKW 7 ; Creation time  .BLKW 2 ; Owner UIC % .BLKW 2 ; Disk block of file header ;e6MAXLBH: .WORD 0 ; Maximum logical block number (high)5MAXLBL: .WORD 0 ; Maximum logical block number (low00dǛ.64)m6CURLBH: .WORD 0 ; Current logical block number (high)5CURLBL: .WORD 0 ; Current logical block number (low)R0RETBLH: .WORD 0 ; Retrieved block number (high)/RETBLL: .WORD 0 ; Retrieved block number (low)l;aDFNB: NMBLK$ ,,,SY;INNAM:: NMBLK$ ; Generate a filename block for INPUT specl;t GCMLD$W GCMBLK: GCMLB$ 1,REI,TIBUF,TILUN;e CSI$ .EVENCSIBLK: .BLKB C.SIZE .EVENTIBUF: .BLKW 70.; +ERRMSG: QIOW$ IO.WVB,TILUN,TIEF,,,,<0,0,40>L4REAANS: QIOW$ IO.RVB,TILUN,TIEF,,REASTA,,'REASTA: .WORD 0,0 ;READ STATUS BUFFERe9INQIO1::QIO$ IO.RLB,INLUN,INEF1,,INSB1,,l9INQIO2::QIO$ IO.RLB,INLUN,INEF2,,INSB2,,B9INQIO3: QIOW$ IO.RLB,INLUN,INEF3,,INSB3,,L)WTB1: WTSE$ INEF1 ; Wait for buffer 1 EFe)WTB2: WTSE$ INEF2 ; Wait fot buffer 2 EFC3INSB1: .BLKW 2 ; Input file QIO I/O status block 1S3INSB2: .BLKW 2 ; Input file QIO I/O status block 2M3INSB3: .BLKW 2 ; Input file QIO I/O status block 3W<ASNIN: ALUN$ INLUN,SY,0 ; Assignment for broken input device,GLUN: GLUN$ INLUN,BUF1 ; Get LUN information;N; Start of Code,;ZSTART:: FINIT$ ; Init FSR,&10$: GCML$ #GCMBLK ; Get command line BCC 20$ ; Got oneI EXIT$S ; None, exit;2.20$: MOV G.CMLD+2(R0),R2 ; Get address of line MOV G.CMLD(R0),R3 ; and lengtho BEQ 10$ ; ZERO - Get another. MOV R2,CSIBLK+C.CMLD+2 ; Put adr in CSI block. MOV R3,CSIBLK+C.CMLD ; Put len in CSI block CSI$1 #CSIBLK ; Check syntax BCC 30$ ; OK)25$: MOV #SYNERR,R0 ; Not ok, issue errorb27$: CALL ERROR ; Issue error BR 10$ ; Try again;r8; Parse output filespec and set up output filename block9; Note that the output filespec is really used for input.o;n630$: BITB #CS.EQU,C.STAT(R0) ; Input filespec present? BNE 25$ ; If NE yes, errorL# CSI$2 ,OUTPUT ; Parse output specE BCC 35$ ; Branch if no error432$: MOV #SYNINE,R0 ; Syntax error in input filename BR 27$ ;;n035$: MOV #INNAM,R2 ; Get ptr to input name block' MOV #/2,R3 ; Length to clears40$: CLR (R2)+ ; Clear a word DEC R3 ; Cleared one BGT 40$ ; More to cleart4 BITB #CS.DVF,C.STAT(R0) ; Did we get a device name? BEQ 32$ ; NO, too badr- BITB #CS.MOR,C.STAT(R0) ; Any other garbage?.& BNE 32$ ; Yes, we aren't garbage men. MOV C.DEVD+2(R0),R1 ; Get addr of device name BEQ 32$ ; BAD if zero3& MOV C.DEVD(R0),R2 ; Get string length BLE 32$ ; WHAT?r+ MOVB (R1)+,ASNIN+A.LUNA ; Move device name# MOVB (R1)+,ASNIN+A.LUNA+1 ; MOV R1,R0 ; Set up for $COTB CALL $COTB ; Get unit number3 MOV R1,ASNIN+A.LUNU ; Put unit number in ASN block ( CMPB #':,R2 ; Did it end with a colon? BNE 32$ ; No, syntax error! DIR$ #ASNIN ; Assign input disk. BCC 50$ ; Worked#49$: MOV #BADINE,R0 ; Bad disk name  BR 27$ ; Join the funC;V%50$: DIR$ #GLUN ; Get input LUN infoB BCS 49$ ; If CS errorM& MOVB BUF1+6,MAXLBH ; Save maximum LBN MOV BUF1+10,MAXLBL ; ;)'; Decide what must match in the search. ;)* CLR MATCH ; Default: take anything;O#; UIC specified? Process it if so.M;R/ BITB #CS.DIF,C.STAT+CSIBLK ; Have a directory?C BEQ 55$ ; If EQ no' MOV CSIBLK+C.DIRD,R2 ; Get length BEQ 55$ ; If EQ skip it.( MOV CSIBLK+C.DIRD+2,R0 ; Get address( CMPB (R0)+,#'[ ; Start correctly?! BNE 32$ ; If NE no, errorL( CMPB (R0)+,#'* ; Wild card group? BEQ 51$ ; If EQ yesL DEC R0 ; Else back up+ BIS #MT.GRP,MATCH ; Group must match' CALL $COTB ; Convert group codeg! MOVB R1,UIC+1 ; Save groupi! DEC R0 ; Back up to commaI151$: CMPB (R0)+,#', ; Comma where expected?o! BNE 32$ ; If NE no, errorl) CMPB (R0)+,#'* ; Wild card member?M BEQ 52$ ; If EQ yest DEC R0 ; Else back up , BIS #MT.MEM,MATCH ; Member must match( CALL $COTB ; Convert member code& MOVB R1,UIC ; Save member code) DEC R0 ; Back up to right bracketP/52$: CMPB (R0),#'] ; Right bracket there? ! BNE 32$ ; If NE no, errorU;1); Fi00dϛ!-TADATADATAle name specified? Process it if so. ;t255$: BITB #CS.NMF,CSIBLK+C.STAT ; Got a file name? BEQ 80$ ; If EQ no, skip this. MOV CSIBLK+C.FILD,R1 ; Get length of filename$ BLE 32$ ; Bad input filename) CMP R1,#24. ; Make sure its reasonableM BGE 32$ ; Too longu. MOV CSIBLK+C.FILD+2,R0 ; Get addr of filename% ADD R0,R1 ; Point to end of stringo* CLRB (R1) ; Put a zero at end of string' CMPB (R0)+,#'* ; Wild card file name?k( BNE 57$ ; If NE no, convert file name$ MOVB (R0)+,R2 ; Get next character" BR 62$ ; Go check for file type;S57$: DEC R0 ; Else back up3 BIS #MT.FIN,MATCH ; Indicate file name must matchD7 MOV #INNAM+N.FNAM,R3 ; Get ptr to input filename block 60$: CLR R1 ; Stop on a period) CALL $CAT5 ; Convert filename to RAD50 MOV R1,(R3)+ ; Store part away BCC 60$ ; If CC try for moret'62$: CMPB R2,#'. ; Stopped on period?z& BNE 70$ ; If NE no, try for version;l; Do file type (extension). ;I" CMPB (R0)+,#'* ; Wild card type? BNE 65$ ; If NE noa) MOVB (R0)+,R2 ; Else get next characterS BR 70$ ; Try for versionp;B65$: DEC R0 ; Back upa. BIS #MT.TYP,MATCH ; Indicate type must match0 MOV #INNAM+N.FTYP,R3 ; Point to type name field67$: CLR R1 ; Stop on period CALL $CAT5 ; Convert to RAD50$ MOV R1,(R3)+ ; Store in name block BCC 67$ ; If CC not completeC; ; Do version number.;i%70$: CMPB R2,#'; ; Got a semi-colon?r! BNE 75$ ; If NE no, try for end)$ CMPB (R0)+,#'* ; Wild card version? BNE 72$ ; If NE no( MOVB (R0)+,R2 ; Else get next character BR 75$ ; And try for end;e72$: DEC R0 ; Back up0 BIS #MT.VER,MATCH ; Indicate version must match% CALL $COTB ; Convert version numbern; MOV R1,INNAM+N.FVER ; Put version number in filename blockC)75$: TSTB R2 ; Did we hit end of string?S BEQ 80$ ; If EQ yes, good  JMP 32$ ; Else error;E; We have finally converted the input filename into a filename block.7=; Now start looking for the specified file on the input disk.o;380$: CALL INIDSK ; Initialize disk read co-routinec) MOV #-1,RETBLL ; Initialize block number2 MOV #-1,RETBLH ;p,100$: ADD #1,RETBLL ; Increment block number ADC RETBLH ;+ CALL @(SP)+ ; Get a block from input disk. BCC 130$ ; If CC no errorf4 CMPB (R1),#IE.BLK ; Reached end of disk? ;RAW001 BEQ 110$ ; If EQ yes ;**-18102$: MOV #ARGBLK,R2 ; Point to argument block ;RAW0043 MOV Q.IOSB(R0),R1 ; Move qio error code ;RAW004r' MOVB (R1),R1 ; to ;RAW004n+ MOV R1,(R2) ; argument block ;RAW004e8 MOV #EDINER,R1 ; Point to input error message ;RAW0043 MOV #TIBUF+1,R0 ; Point to output buffer ;RAW004n- CALL $EDMSG ; Edit error message ;RAW004P< MOV R0,R1 ; R1 points to end of generated message ;RAW0049 SUB #TIBUF+1,R1 ; R1 now has length of message ;RAW004B0 MOV #TIBUF,R0 ; R0 points to message ;RAW004B MOVB R1,(R0) ; Put message length into message for ERROR ;RAW004104$: CALL ERROR ; ;**-1 JMP 10$ ; Try it all again;n0110$: MOV #NAMNFD,R0 ; Yes, didn't find the file BR 104$ ; Report error;t2130$: CMP (R4),#27027 ; Could it be a file header? BNE 100$ ; If NE no0;,140$: MOV R4,R0 ; Set up for checksum check# MOV #H.CKSM/2,R1 ; Length of blocke CLR R2 ; Init R2"150$: ADD (R0)+,R2 ; Add the words DEC R1 ; For entire block BNE 150$ ;; CMP R2,(R0) ; Do they match?4 ; BNE 100$ ; No, try next block MOV R4,R1 ; Point to block MOVB H.IDOF(R1),R2 ; . ASL R2 ; Word to bytes, swords to plowshares* ADD R2,R1 ; Point to Identification area;e; Check UIC if required.;t% BIT #MT.GRP,MATCH ; UIC group check?  BEQ 155$ ; If EQ no & CMPB UIC+1,H.PROJ(R4); Does it match?$ BNE 100$ ; If NE no, skip this one+155$: BIT #MT.MEM,MATCH ; UIC member check?5 BEQ 160$ ; If EQ not$ CMPB UIC,H.PROG(R4) ; Does it match$ BNE 100$ ; If NE no, skip this one;m; Check file name if required.;b*160$: BIT #MT.FIN,MATCH ; File name check? BEQ 165$ ; If EQ no - MOV #INNAM+N.FNAM,R0 ; PTR to input filename,# ADD #00dכ.64I.FNAM,R1 ; Point at filenamee CMP (R1)+,(R0)+ ; Does it match BNE 100$ ; No; CMP (R1)+,(R0)+ ; Does it match BNE 100$ ; NoI CMP (R1)+,(R0)+ ; Does it match BNE 100$ ; Non% SUB #,R1 ; Restore pointerC; *; Check file type (extension) if required.;P(165$: BIT #MT.TYP,MATCH ; Do type check? BEQ 170$ ; If EQ nos- CMP INNAM+N.FTYP,I.FTYP(R1) ; Does it match?6$ BNE 100$ ; If NE no, skip this one;; Check version if required.;A+170$: BIT #MT.VER,MATCH ; Do version check?. BEQ 175$ ; If EQ no, skip it- CMP INNAM+N.FVER,I.FVER(R1) ; Does it match?; BNE 100$ ; Didn't matcht;t,; Make sure this is not an extension header.;m7175$: MOVB H.MPOF(R4),R2 ; Get map area offset in wordsn! ASL R2 ; Convert to byte offseti ADD R4,R2 ; Point to map areaM/ TSTB M.ESQN(R2) ; Extension segment number 0 ?n# BNE 100$ ; If NE no, keep lookinge;t<; Found a matching file. Print out its name and other info,,; and ask the user whether/where to save it.; -180$: MOV R1,R2 ; Copy address of id section ! MOV R1,R3 ; Also save for laterD$ ADD #I.FNAM,R2 ; Point to file name) MOV #EDFILE,R1 ; Point to $EDMSG patterni) MOV #TIBUF+1,R0 ; Point to output bufferG CALL $EDMSG ; Edit filenameA% MOV H.FNUM(R4),R1 ; Copy file numberR" CLR R2 ; Suppress leading zeroes CALL $CBOMG ; Convert to octal MOVB #',,(R0)+ ; Store commak. MOV H.FSEQ(R4),R1 ; Copy file sequence number" CLR R2 ; Suppress leading zeroes CALL $CBOMG ; Convert to octal) MOVB #'),(R0)+ ; Store right parenthesis  MOVB #' ,(R0)+ ; Store spacel MOV R4,R1 ; Copy block address2 ADD #H.UFAT+F.EFBK,R1 ; Point to EOF block number" CLR R2 ; Suppress leading zeroes" CALL $CDDMG ; Convert to decimal MOVB #'.,(R0)+ ; Store period MOVB #'/,(R0)+ ; Store slashR& MOV R4,R1 ; Copy block address again3 ADD #H.UFAT+F.HIBK,R1 ; Point to high block numberm" CLR R2 ; Suppress leading zeroes" CALL $CDDMG ; Convert to decimal MOVB #'.,(R0)+ ; Store period MOVB #' ,(R0)+ ; Store space)( ADD #I.CRDT,R3 ; Point to creation date% MOVB (R3)+,(R0)+ ; Move day of monthb MOVB (R3)+,(R0)+ ;. MOVB #'-,(R0)+ ; Store hyphen MOVB (R3)+,(R0)+ ; Move month MOVB (R3)+,(R0)+ ;  MOVB (R3)+,(R0)+ ;d MOVB #'-,(R0)+ ; Store hyphen MOVB (R3)+,(R0)+ ; Move year  MOVB (R3)+,(R0)+ ;  MOVB #' ,(R0)+ ; Store space# MOVB (R3)+,(R0)+ ; Move hourh MOVB (R3)+,(R0)+ ;R MOVB #':,(R0)+ ; Store colonC MOVB (R3)+,(R0)+ ; Move minute MOVB (R3)+,(R0)+ ;r MOVB #':,(R0)+ ; Store colonr MOVB (R3)+,(R0)+ ; Move second  MOVB (R3)+,(R0)+ ;V MOVB #' ,(R0)+ ; Store spacet$ MOVB #'[,(R0)+ ; Store left bracket( MOVB H.PROJ(R4),R1 ; Get UIC group code" CLR R2 ; Suppress leading zeroes CALL $CBTMG ; Convert to octal MOVB #',,(R0)+ ; Store comma)) MOVB H.PROG(R4),R1 ; Get UIC member code " CLR R2 ; Suppress leading zeroes CALL $CBTMG ; Convert to octal% MOVB #'],(R0)+ ; Store right bracketC MOVB #' ,(R0)+ ; Store spacet! MOVB #'<,(R0)+ ; Store less than,) MOVB RETBLH,R1 ; Get block number (high)o" CLR R2 ; Suppress leading zeroes CALL $CBTMG ; Convert to octal MOVB #',,(R0)+ ; Store commat% MOV RETBLL,R1 ; Get block number lowo" CLR R2 ; Suppress leading zeroes CALL $CBOMG ; Convert to octal$ MOVB #'>,(R0)+ ; Store greater than( MOV R0,R1 ; Copy output buffer pointer0 MOV #TIBUF+1,R0 ; Point to beginning of message SUB R0,R1 ; Compute length MOVB R1,-(R0) ; Store lengthM CALL ERROR ; Write info to TIV.190$: ;GCML$ #GCMBLK,#OPTS,#OPTL ; Read option ;BCC 200$ ; If CC not EOFCE ;This doesnt work on IAS, can only do GCML$ once at MCR level, so...V MOV #OPTS,R0 ;DO PROMPT2 MOVB #'$,ERRMSG+Q.IOPL+4 ;MAKE IT PROMPT CARR CTL CALL ERRORn3 MOVB #' ,ERRMSG+Q.IOPL+4 ;RESET TO NORMAL CARR CTL, DIR$ #REAANS ;READ ANSWER" CMPB REASTA,#IE.EOF ;^Z ANSWER ? BEQ 195$ ;IF SO, QUIT- MOV #GCMBLK,R0 ;ELSE SET R0> CMD LINE BLOCKt% MOV REASTA+2,G.CMLD(R0) ;FAKE LENGTHM+ MOV #TIBUF,G.CMLD+2(R0) ;AND START ADDRESSM BR 200$)195$: DIR$ #WTB1 ; Wait for buffer 1 I/Of$00dߛ!-TADATADATA DIR$ #WTB2 ; Wait for buffer 2 I/O' TST (SP)+ ; Remove co-routine addresso EXIT$S ; Exit;;; Examine option.';R,200$: MOV G.CMLD(R0),R2 ; Get length of line BGT 210$ ; If GT no error yet & BNE 190$ ; If NE bad line, try again" JMP 100$ ; Else ignore this file; ; Check for "?".;5/210$: MOV G.CMLD+2(R0),R1 ; Get address of lineC CMPB (R1),#'? ; User need help? BNE 220$ ; If NE noM% MOV #HELP1,R0 ; Else print help infoS CALL ERROR ; MOV #HELP2,R0 ; CALL ERROR ; MOV #HELP3,R0 ; CALL ERROR ; BR 190$ ; Read option againe;-; Parse output filespec.; 6220$: MOV R2,CSIBLK+C.CMLD ; Store length in CSI block/ MOV R1,CSIBLK+C.CMLD+2 ; Store address of lineo! CSI$1 #CSIBLK ; Do syntax check, BCC 230$ ; If CC no error yeto/225$: MOV #SYNERR,R0 ; Else print error message 227$: CALL ERROR ;  BR 190$ ; Read option again?;U7230$: BITB #CS.EQU,C.STAT(R0) ; Input filespec present?E BNE 225$ ; If NE yes, error& CSI$2 ,OUTPUT ; Parse output spec BCC 235$ ; If CC no error4 MOV #SYNOUE,R0 ; Syntax error in output filespec BR 227$ ;;O0235$: CALL MOVATT ; Move file attributes to FDB! OPEN$W #FDB0 ; Open output files BCC 240$ ; If CC no error 1 MOV #FCSERR,ARGBLK ; Assume FCS error ;RAW0024 TSTB F.ERR+1(R0) ; Directive error code? ;RAW0024 BEQ 236$ ; No it really was an FCS error ;RAW002; MOV #DIRERR,ARGBLK ; Yes, indicate so in message ;RAW002E8236$: MOV #ARGBLK,R2 ; Point to argument block ;RAW0024 MOVB F.ERR(R0),R1 ; Move file error code ;RAW002. MOV R1,2(R2) ; to argument block ;RAW0025 MOV #EDFOER,R1 ; Point to file error message ;**-3e) MOV #TIBUF+1,R0 ; Point to output buffers" CALL $EDMSG ; Edit error message< MOV R0,R1 ; R1 points to end of generated message ;RAW0029 SUB #TIBUF+1,R1 ; R1 now has length of message ;RAW002r0 MOV #TIBUF,R0 ; R0 points to message ;RAW002B MOVB R1,(R0) ; Put message length into message for ERROR ;RAW002- BR 227$ ; Go output error message ;RAW002(; ;**-1 ; Copy file.;A 240$: MOV R4,-(SP) ; Save R4, R5 MOV R5,-(SP) ;21 MOVB H.MPOF(R4),R5 ; Get word offset to map area* ASL R5 ; Make byte offsett ADD R4,R5 ; Point to map area - TST M.EFNU(R5) ; File have extension header?o BEQ 245$ ; If EQ no, goodA MOV #EXTFHD,R0 ; Else warn user CALL ERROR ;1245$: CMPB M.CTSZ(R5),#1 ; Block count size = 1 ?g BNE 247$ ; If NE no, error- CMPB M.LBSZ(R5),#3 ; Block number size = 3 ?0 BEQ 250$ ; If EQ yes, good,247$: MOV #BADMAP,R0 ; Else say bad map area CALL ERROR ;' DELET$ #FDB0 ; Delete the output fileP" BR 270$ ; Exit file copy section;f/250$: CLR R3 ; Get number of words of map areaA BISB M.USE(R5),R3 ;- ADD #M.RTRV,R5 ; Point to retrieval pointers 1255$: SUB #2,R3 ; Got another retrieval pointer?D BMI 265$ ; If MI no, doneR* MOVB (R5)+,INQIO3+Q.IOPL+6 ; Set LBN high CLR R2 ; Get block count BISB (R5)+,R2 ; INC R2 ;) MOV (R5)+,INQIO3+Q.IOPL+10 ; Set LBN low0#258$: DIR$ #INQIO3 ; Read a blockA TSTB INSB3 ; Successful? BPL 260$ ; If PL yesF, MOV #BBLINF,R0 ; Else say bad block in file CALL ERROR ;*260$: WRITE$ #FDB0 ; Write to output file* BCC 261$ ; Branch if no error ;RAW002- BR 262$ ; Go output error message ;RAW002 *261$: WAIT$ R0 ; Wait for it ;RAW002! TSTB INSB3 ; Error? ;RAW002V! BPL 264$ ; If PL no ;RAW002i6262$: MOV #FCSERR,ARGBLK ; Assume FCS error ;RAW0024 TSTB F.ERR+1(R0) ; Directive error code? ;RAW0024 BEQ 263$ ; No it really was an FCS error ;RAW002; MOV #DIRERR,ARGBLK ; Yes, indicate so in message ;RAW002y8263$: MOV #ARGBLK,R2 ; Point to argument block ;RAW0024 MOVB F.ERR(R0),R1 ; Move file error code ;RAW002. MOV R1,2(R2) ; to argument block ;RAW0027 MOV #EDOUER,R1 ; Point to file error message ;RAW002T3 MOV #TIBUF+1,R0 ; Point to output buffer ;RAW002n. CALL $EDMSG ; Edit error message ;RAW002< MOV R0,R1 ; R1 points to end of generated message ;RAW0029 SUB #TIBUF+1,R1 ; R1 now has length of messag00d.64e ;RAW002 0 MOV #TIBUF,R0 ; R0 points to message ;RAW002B MOVB R1,(R0) ; Put message length into message for ERROR ;RAW002 CALL ERROR ; ;RAW0021 DELET$ #FDB0 ; Delete bad output file ;RAW002 # BR 270$ ; Abort copy ;RAW002#; ;RAW002@264$: ADD #1,INQIO3+Q.IOPL+10 ; Bump input block number ;RAW002! ADC INQIO3+Q.IOPL+6 ; ;**-8 ' DEC R2 ; Any more contiguous blocks?1& BGT 258$ ; If GT yes, do next block& BR 255$ ; Do next retrieval pointer;e ; Close file. ;R,265$: CALL MOVATT ; Move attributes to FDB0$267$: CLOSE$ #FDB0 ; Close the file#270$: MOV (SP)+,R5 ; Restore R5, R40 MOV (SP)+,R4 ;; JMP 190$ ; Try again;B; Disk read co-routine.l; /INIDSK: CLR CURLBH ; Set starting block number  CLR CURLBL ; CALL @(SP)+ ; Call caller back) MOV #INQIO1,R0 ; Set up to fill buffer 1O CALL DOBLK ;+3$: MOV #INQIO1,R0 ; Get address of QIO DPBc CALL FINBIO ; Finish block I/O BCC 10$ ; If CC continue%5$: RETURN ; Else error, return C=1e;-10$: MOV #INQIO2,R0 ; Set up to fill buffer 20 CALL DOBLK ;( MOV #BUF1,R5 ; Point to start of buffer'15$: MOV R5,R4 ; Copy address of blockP CLC ; Set C=0 CALL @(SP)+ ; Call caller back# ADD #512.,R5 ; Point to next blockb! CMP R5,#BUF1E ; End of buffer 1?  BLO 15$ ; If LO no( MOV #INQIO2,R0 ; Get address of QIO DPB CALL FINBIO ; Finish block I/O BCS 5$ ; If CS return + MOV #INQIO1,R0 ; Set up to refill buffer 1B CALL DOBLK ;( MOV #BUF2,R5 ; Point to start of buffer'25$: MOV R5,R4 ; Copy address of blockt CLC ; Set C=0 CALL @(SP)+ ; Call caller back# ADD #512.,R5 ; Point to next block4! CMP R5,#BUF2E ; End of buffer 2?; BLO 25$ ; If LO no! BR 3$ ; And go back to buffer 1 ;o-; Set up QIO length and logical block number.f;18DOBLK: MOV CURLBH,Q.IOPL+6(R0) ; Set starting LBN in QIO MOV CURLBL,Q.IOPL+10(R0);- MOV #BSIZE,Q.IOPL+2(R0) ; Set default length#;I ; Compute number of blocks left.;C& MOV MAXLBL,R2 ; Get maximum LBN (low)! SUB CURLBL,R2 ; Subtract currento' MOV MAXLBH,R1 ; Get maximum LBN (high)C SBC R1 ;! SUB CURLBH,R1 ; Subtract current  TST R1 ; Lots of blocks left?F) BNE 20$ ; If NE yes, use default lengtho* CMP #BFACT-1,R2 ; Got enough blocks left? BLOS 20$ ; If LOS yesi INC R2 ; Else get number leftV SWAB R2 ; Compute byte count ASL R2 ;+ MOV R2,Q.IOPL+2(R0) ; Store length to read.% MOV #BSIZE,R1 ; Get length of buffer # SUB R2,R1 ; Compute unused lengthM3 ADD Q.IOPL(R0),R2 ; Point to unused part of buffer;(10$: CLRB (R2)+ ; Clear it ;RAW003 DEC R1 ; ;**-1C BGT 10$ ;C;B20$: DIR$ R0 ; Start the QIOR RETURN ;b;kC; Finish block I/O routine. This finishes the operation started by2; DOBLK.; ; Inputs:?;B#; R0 = address of disk read QIO DPBs;eA; If the error code in the associated I/O status block is IE.VER,,@; then the read is retried with a length of 512. bytes. If that@; fails, then the block is returned as all zeroes. If the error+; code is not IE.VER, then C=1 is returned.R;R:FINBIO: WTSE$S Q.IOEF(R0) ; Wait for operation to complete% MOV Q.IOSB(R0),R1 ; Get IOSB addressI TSTB (R1) ; Error? BPL 20$ ; If PL no error) CMPB (R1),#IE.VER ; Unrecoverable error? ! BEQ 10$ ; If EQ yes, try anywaya) CMPB (R1),#IE.BBE ; Bad block on device?e! BEQ 10$ ; If EQ yes, try anywayt SEC ; Else return C=1 RETURN ;s;t;10$: ADD #,Q.IOPL(R0); Use last block in buffer ( MOV #512.,Q.IOPL+2(R0) ; Set new length DIR$ R0 ; Try read againh! WTSE$S Q.IOEF(R0) ; Wait for itT TSTB (R1) ; Error?f BPL 18$ ; If PL noe MOV R2,-(SP) ; Save R2 MOV #256.,R2 ; Get word counto' MOV Q.IOPL(R0),R1 ; Get block address)"15$: CLR (R1)+ ; Zero this block SOB R2,15$ ; Loop on counta MOV (SP)+,R2 ; Restore R2o918$: SUB #,Q.IOPL(R0); Restore buffer address;/20$: MOV Q.IOPL+2(R0),R1 ; Get byte count readI CLRB R1 ; Zero low byte% SWAB R1 ; Get number of blocks * 2( ASR R1 ; Get number of blocks) ADD R1,CURLBL ; Incremen00de!-TADATADATAt current blockt ADC CURLBH ; (leaves C=0) RETURN ;;I?; Subroutine to move attributes from file header block to FDB0.n; ; Inputs:(;,#; R4 = address of file header block1; -MOVATT: MOV R4,R1 ; Copy file header addressn* ADD #H.UFAT,R1 ; Point to file attributes MOV #FDB0,R0 ; Point to FDB MOV #7,R2 ; Move 7 words/10$: MOV (R1)+,(R0)+ ; from file header to FDB1 SOB R2,10$ ; RETURN ; ; Error messages;k$SYNERR: .ASCIC 7SYNINE: .ASCIC B3BADINE: .ASCIC 8SYNOUE: .ASCIC HEDINER: .ASCIZ @%NREI - Error reading input device: FCS (%D).@ ;RAW004BNAMNFD: .ASCIC ;**-1AEXTFHD: .ASCIC MCBADMAP: .ASCIC )BBLINF: .ASCIC E"EDFILE: .ASCIZ @%X (@ ;**-1EDBLKS: .ASCIZ @ %M./%M. @FEDFOER: .ASCIZ @%NREI - Error opening output file: %I (%D).@ ;RAW002OEDOUER: .ASCIZ @%NREI - Error writing output file: %I (%D) : aborted.@ ;RAW002o+OPTS: .ASCIC ;**-1 OPTL = .-OPTSiIHELP2: .ASCIC u4HELP3: .ASCIC #FCSERR: .ASCIZ /FCS/ ;RAW002A#DIRERR: .ASCIZ /DIR/ ;RAW002C .EVEN;.; Error print routineE; Enter with R0 -> message:; 0ERROR:: MOVB (R0)+,ERRMSG+Q.IOPL+2 ; Set length/ MOV R0,ERRMSG+Q.IOPL ; Set address of message DIR$ #ERRMSG ; Issue QIOW  RETURN*; .END STARTTSiIHELP2: .ASCIC u4HELP3: .ASCIC #FCSERR: .ASCIZ /FCS/ ;RAW002A#DIRERR: .ASCIZ /DIR/ ;RAW00 .IIF NDF LIST, .NLIST( .TITLE STATPRE - PREFIX FILE FOR F11ACT;4:; MODULE: FILES-11 ACTIVITY REPORTING TASK -- PREFIX FILE;R; VERSION: 0002;S; AUTHOR: ANDY PUTNINSC;Y; DATE: 20-NOV-78;B; MODIFICATIONS:);; 14-DEC-78 A. PUTNINS ADD FILE ATTRIBUTE BLOCK DEFINITIONS2;; ; PURPOSE:T=; DEFINE SYMBOLS FOR FILES-11 DATA STRUCTURES AND STATISTICSAF; BLOCK OFFSETS. TO GET A LISTING OF THIS FILE, DEFINE SYMBOL "LIST".;R$$11D=1R$$IAS=1;E'; MACROS TO SAVE AND RESTORE REGISTERS ;  .MACRO PUSH LISTL .IRP RX,X MOV RX,-(SP)T .ENDM .ENDM .MACRO POP LIST .IRP RX,P MOV (SP)+,RX .ENDM .ENDM;+; MACRO TO WRITE A MESSAGE TO THE TERMINAL-; .MACRO TIQIO,MSG,MSGLEN .MCALL DIR$,QIOW$ MOV MSG,QIOTI+Q.IOPLC MOV MSGLEN,QIOTI+Q.IOPL+2 DIR$ #QIOTI .ENDM .PAGE;-&; STATISTICS BLOCK OFFSET DEFINITIONS;K .ASECT  .=0,P.LINK: .BLKW 2 ;FORWARD AND BACKWARD LINKS.SBFLG: .WORD 0 ;FLAGS1 F.FI = 1 ;LIST FILE ATTRIBUTES FOR THIS DEVICE F.NSDV= 2 ;NO SUCH DEVICE<) f.nf11= 4 ;not a file-structured device.! F.OFF = 10 ;DEVICE OFFLINE FLAGM" F.FOR = 20 ;MOUNTED FOREIGN FLAG$ F.BADF= 40 ;FCB POINTER ERROR FLAG% F.TAPE= 100 ;VOLUME IS LABELED TAPE.< F.NFAT= 200 ;INSUFFICIENT SPACE TO STORE SOME FILE ATTRIBSP.PUD: .WORD 0 ;PUD POINTER.LH.AB: .BLKW 2 ;FILE ATTRIBUTE BLOCK LISTHEAD/P.DNAM: .WORD 0 ;POINTER TO DEVICE NAME STRINGA#.DUNIT: .BLKW ;DEVICE UNIT NUMBERG7.ACPNM: .BLKW ;FIRST THREE CHARS OF ACP NAME IN RAD50N0P.VLAB: .WORD 0 ;POINTER TO VOLUME LABEL STRING2C.TRCT: .BLKW ;VOLUME TRANSACTION COUNT FROM VCB5C.TFCB: .BLKW ;TOTAL COUNT OF FCB'S FOR THIS VOLUMEO0C.AFCB: .BLKW ;COUNT OF FCB'S ALLOCATED IN ACP3C.FFCB: .BLKW ;COUNT OF FCB'S ALLOCATED IN FCPCOMM1C.SFCB: .BLKW ;COUNT OF FCB'S ALLOCATED IN SCOMH3C.LRU: .BLKW ;COUNT OF "PRE-ACCESSED" DIRECTORIES #.DNAM: .BLKB 2 ;DEVICE NAME STRINGA&.VLAB: .BLKB 12. ;VOLUME LABEL STRING .EVENL.SB = . .PAGE;E*; FIL00efg.64E ATTRIBUTE BLOCK OFFSET DEFINITIONS;; .ASECTO .=0,P.LINK: .BLKW 2 ;FORWARD AND BACKWARD LINKS.ABFLG: .WORD 0 ;FLAGS.. F.DIR = 1 ;THIS FCB IS IN DIRECTORY LRU LIST- F.ACP = 2 ;THIS FCB IS IN ACP INTERNAL AREA  F.FCM = 4 ;FCB IN FCPCOM F.SCM = 10 ;FCB IN SCOMP .FID: ;START OF FILE ID BLOCK.FNUM: .BLKW ;FILE NUMBER:$.FSEQ: .BLKW ;FILE SEQUENCE NUMBER%.FOWN: ;START OF FILE OWNER BUFFERS.PROG: .BLKB ;MEMBER #.PROJ: .BLKB ;GROUP #V .FNAM: .BLKW 3 ;RAD50 FILE NAME.FTYP: .BLKW ;RAD50 FILE TYPE .FVER: .BLKW ;BINARY VERSION #L.AB = . ;LENGTH OF ENTRY .IIF NDF LIST, .LIST F.DIR = 1 ;THIS FCB IS IN DIRECTORY LRU LIST- F.ACP = 2 ;THIS FCB IS IN ACP INTERNAL AREA  F.FCM = 4 ;FCB IN FCPCOM F.SCM = 10 ;FCB IN SCOMP .FID: ;START OF FILE ID BLOCK.FNUM: .BLKW ;FILE NUMBER:$.FSEQ: .BLKW ;FILE SEQUENCE NUMBER%.FOWN: ;START OF FILE OWNER BUFFERS.PROG: .BLKB ;MEMBER #.PROJ: .BLKB ;GROUP #V .FNAM: .BLKW 3 ;RAD50 FILE UND/CP,UND/-SP=UND/ UIC=[1,1]PRI=100 TASK=...UND// .TITLE UNDELETE .IDENT /V01.1/ .NLIST BEX,TOC .ENABL LC .PSECT;; VERSION 01.1;; John Hayes 9 - SEP - 81;G; Originally written by Richard Kirkman and appeared in July 1981 Decus*; RSX11M SIG newsletter, THE MULTI-TASKER.;; MODIFIED BY:; ; O;******************************************************************************;N; This software is provided on an "as is" basis only. Caterpillar Tractor Co.,N; disclaims all warranties on the program, including without limitation, all3; implied warranties of merchantablity and fitness.;N; Full permission and consent is hereby given to DECUS and to the DECUSN; special interest groups to reproduce, distribute, and publish and permitN; others to reproduce in whole or in part, in any form and without restriction3; this program and any information relating thereto; O;******************************************************************************i;a@; The following modifications were made by Rick Webster, Process6; Control Applications, MSDGO, Caterpillar Tractor Co.;>; RAW001 - Fix OPENFL routine to return with carry set on open&; failure like it was supposed to. ;p?; RAW002 - Add error messages for ALUN$ failures, enhance errort(; messages for input & output errors.;a0; RAW003 - Check for UIC specified on input spec;a ; Function: ;rJ; The function of this program is to attempt to recover a recently deleted; file.*;iK; The program will accept a command line with input and output disks (whichtG; must be different) and an input UIC. It will then scan the input diskFI; indexfile for all deleted files with that UIC. Will print error messageeH; (warning) if search of bitmap shows that a file block has been reused.I; Will use IO.RLB from privledged task to read all blocks of the file ands6; then create new file in owners UIC on output device.;nI; This program will only succeed in recovering a file, if the file headerD; has not been reused. It's optimum use would be when a single userF; accidentally deletes a file and immediately stops all writing to theE; volume, to avoid loosing either the file header or any of the otherr'; blocks belonging to the deleted file.t;h ; MACRO CALLS ;c. .MCALL EXIT$S,QIOW$,ALUN$S,DIR$,GLUN$S,QIOW$S ; FCS MACROS, .MCALL GCML$,GCMLB$,CSI$,CSI$1,CSI$2,CSI$ND .MCALL HMBOF$,FHDOF$C0 .MCALL NMBLK$,FDOP$A,FDRC$A,FDBK$A,OPEN$R,READ$7 .MCALL OPEN$W,FINIT$,FDBDF$,FSRSZ$,CLOSE$,WRITE$,WAIT$o0 HMBOF$ DEF$L ;LOCALLY DEFINE HOME BLO00g!-TADATADATACK OFFSETS1 FHDOF$ DEF$L ;LOCALLY DEFINE FILE HEADER OFFSETSi;l( CSI$ ;DEFINE CSI CONTROL BLOCK OFFSETS4CSIBLK: .BLKB C.SIZE ;ALLOCATE THE CSI CONTROL BLOCK .EVEN;sDGCLBLK: GCMLB$ 4,UND,,5 ;ALLOCATE AND INITIALIZE GCML CONTROL BLOCK) ;COMMAND PROMPT IS INITIALIZED TO UND>  ;LUN 5 IS USED FOR TI:$ FSRSZ$ 1 ;1 FILE OPEN FOR GCML  .PAGE;F; DATA; OWNER: .WORD 0 ;UIC OF OWNER#STBK: .BLKW 5 ;FCS STATISTICS BLOCKD IOSB: .BLKW 2$;I; BLOCK IO BUFFERS;$*HDR: .BLKB 512. ;INDEX HEADER BLOCK BUFFER+DATA: .BLKB 512. ;DELETED FILE BLOCK BUFFER;+*; UNDEL - UNDELETE A FILE RECENTLY DELETED;K ; INPUTS:I-; COMMANDLINE FORMAT: "UND>DO:=DI:[grp,mbr]";B9; Where DO: is the output device, DI: is the input deviceB4; and the output and input devices are not the same.; ; OUTPUTS:9; Places the undeleted file into the users current UIC onA; the output device.; LUNS:N; LUN 1 = OUTPUT DEVICEA; LUN 2 = INPUT DEVICE; LUN 3 = INPUT DEVICE; LUN 4 = INPUT DEVICE; LUN 5 = TI: FOR COMMAND LINE;A;B;-START: FINIT$ ;INITIALIZE FSC(UNDEL: CALL GETCML ;GET THE COMMAND LINE: CALL INDEX ;LOOK THROUGH THE INDEX FILE FOR DELETED FILES BR UNDEL .PAGE .SBTTL COMMAND LINE PROCCESSING;t; EQUATED SYMBOLS ; =OUTSPC = ;OUTPUT SPECIFICATIONS5INSPC = ;INPUT SPECIFICATIONSo;+,; GETCML - GET THE COMMAND LINE AND PARSE IT;D ; INPUTS:U; NONE ; OUTPUTS:; NONE;N ; EFFECTS:!; LUNS ASSIGNED TO PROPER DEVICESI;-GETCML: , GCML$ #GCLBLK ;TRY TO GET THE COMMAND LINE$ BCC 10$ ;IF CC, GET WAS SUCCESSFUL) EXIT$S ;IF CS, PROBABLY EOF SO GET OUT 10$: MOV R0,R1 ;R1 = #GCLBLK$ CSI$1 #CSIBLK,G.CMLD+2(1),G.CMLD(1)! BCS SYNERR ;IF CS, SYNTAX ERRORU& CSI$2 ,OUTPUT ;PARSE THE OUTPUT SPEC' BCS SYNERR ;IF CS, OUTPUT PARSE ERRORL5 BITB #OUTSPC,C.STAT(0) ;DID OUTPUT HAVE PROPER SPECSE+ BNE SYNERR ;IF NE, INCORRECT OUTPUT SPECS . BITB #CS.DVF,C.STAT(0) ;SPEC MUST HAVE DEVICE% BEQ SYNERR ;IF EQ, NO OUTPUT DEVICEL- CALL DEVICE ;GET DEVICE NAME FROM CSI BLOCK/ ALUN$S #1,R3,R4 ;ASSIGN LUN 1 TO OUTPUT DEVICEI( BCS ASNOER ;Branch on error ;RAW002;,* CSI$2 #CSIBLK,INPUT ;PARSE THE INPUT SPEC& BCS SYNERR ;IF CS, INPUT PARSE ERROR4 BITB #INSPC,C.STAT(0) ;DID INPUT HAVE PROPER SPECS?* BNE SYNERR ;IF NE, INCORRECT INPUT SPECS. BITB #CS.DVF,C.STAT(0) ;SPEC MUST HAVE DEVICE$ BEQ SYNERR ;IF EQ, NO INPUT DEVICE8 BITB #CS.DIF,C.STAT(0) ;Spec must have a UIC ;RAW003/ BEQ SYNERR ;If eq, no UIC specified ;RAW003 0 MOV #CSIBLK+C.DIRD,R2 ;INPUT UIC STRING ADDRESS( MOV #OWNER,R3 ;DIRECTORY BUFFER ADDRESS! CALL .ASCPP ;CONVERT UIC STRING0* CALL DEVICE ;INPUT DEVICE FROM CSI BLOCK ALUN$S #2,R3,R4 ;ASSIGN LUN 2( BCS ASNIER ;Branch on error ;RAW002. ALUN$S #3,R3,R4 ;ASSIGN LUN 3 TO INPUT DEVICE( BCS ASNIER ;Branch on error ;RAW002 ALUN$S #4,R3,R4 ;ASSIGN LUN 4( BCS ASNIER ;Branch on error ;RAW002( CALL DEVCHK ;CHECK IF DEVICES ARE SAME) BCS DEVERR ;IF CS, DEVICES ARE THE SAMEe RETURN0SYNERR: MOV #SYNMSG,R1 CALL WRITEI JMP GETCMLEDEVERR: MOV #DEVMSG,R1 CALL WRITEA JMP GETCML @ASNOER: MOV #OASNER,R1 ;R1 has address of error message ;RAW0025 MOV $DSW,ARGBLK ;Put error code in message ;RAW002;- CALL WRITE ;Output error message ;RAW002S6 JMP GETCML ;Go try for another command line ;RAW002@ASNIER: MOV #IASNER,R1 ;R1 has address of error message ;RAW0025 MOV $DSW,ARGBLK ;Put error code in message ;RAW002R- CALL WRITE ;Output error message ;RAW002M6 JMP GETCML ;Go try for another command line ;RAW002 .PAGE;E ; LOCAL DATA;, .EVEN&HOLD: .BLKW 1 ;BUFFER FOR DEVICE NAME;+-; DEVICE - GET DEVICE NAME FOR ALUN DIRECTIVEM;$ ; INPUTS:; ; DEVICE DESCRIPTOR IN CSI BLOCK ; OUTPUTS:; R3 = DEVICE NAME (IN ASCII)R; R4 = UNIT NUMBER (IN BINARY);-5DEVICE: MOV #CSIBLK+C.DEVD,R0 ;DEVICE NAME DESCRIPTORh+ MOV (R0)+,R1 ;LENGTH OF DEVICE NAME STRINGS MOV (R0),R0 ;POINTER TO STRING# MOVB (R0)+,HOLD ;GET LOW CHARACTERr& MOVB (R0)00gg.64+,HOLD+1 ;GET HIGH CHARACTER MOV HOLD,R3 ;R3 = DEVICE NAMEA CLR R4 ;UNIT DEFAULTS TO 0& SUB #2,R1 ;DEVICE TAKES 2 CHARACTERS/ BEQ 20$ ;IF EQ, DONE (WE'LL LET SYNTAX SLIDE)A10$: CMPB (R0),#': ;IF :, DONE BEQ 20$ MOVB (R0)+,R2 ;GET DIGITU SUB #'0,R2 ;CONVERT FROM ASCII .REPT 3) ASL R4 ;BUMP HIGHER DIGITS BY 8 (OCTAL)  .ENDR ADD R2,R4 ;ADD LOW DIGIT DEC R1 ;DECREASE LENGTHT' BGT 10$ ;IF GT, STILL CHARACTERS LEFTP 20$: RETURNI;+ ; DEVCHK - CHECK FOR SAME DEVICE; ; INPUTS:,; NONE ; OUTPUTS:; CARRY SET IF DEVICES SAMEE;-,DEVCHK: MOV #HDR,R0 ;USE HDR AS GLUN BUFFER GLUN$S #2,R0 ;GET INPUT INFO, MOV #DATA,R1 ;USE DATA AS OTHER GLUN BUFFER GLUN$S #1,R1 ;GET OUTPUT INFOE+ CMP G.LUNA(R0),G.LUNA(R1) ;COMPARE DEVICES#' BNE 10$ ;IF NE, DEVICES ARE DIFFERENTL< CMPB G.LUNU(R0),G.LUNU(R1) ;CHECK UNITS IF SAME TYPE DEVICE% BNE 10$ ;IF NE, UNITS ARE DIFFERENTT% SEC ;SET THE CARRY, INPUT = OUTPUTF RETURNR10$: CLC RETURNK .PAGE .SBTTL INDEX FILE SEARCHU;,; FDB'S;U; THE OUTPUT FILEOUTFDB: FDBDF$% FDRC$A FD.RWM ;BLOCK I/O OPERATIONSG FDBK$A DATA,512.,,,IOSB FDOP$A 1,,DFNB,FO.WRT7DFNB: NMBLK$ FILE,DAT,0 ;DEFAULT FILE NAME = FILE.DAT;0E;U; THE INPUT INDEX FILE;,INXFDB: FDBDF$% FDRC$A FD.RWM ;BLOCK I/O OPERATIONS  FDBK$A HDR,512.,,,IOSBU FDOP$A 2,INDX,,FO.RDK+INDX: .WORD 0,0 ;DATA SET DESCRIPTOR BLOCK  .WORD INXULN,INXUIC .WORD INXFLN,INXFILINXUIC: .ASCII /[0,0]/ INXULN=.-INXUICINXFIL: .ASCII /INDEXF.SYS/I INXFLN=.-INXFIL .EVEN;; THE BITMAP FILE;FBMPFDB: FDBDF$% FDRC$A FD.RWM ;BLOCK I/O OPERATIONSB FDBK$A DATA,512.,,,IOSB FDOP$A 3,BITM,,FO.RDB+BITM: .WORD 0,0 ;DATA SET DESCRIPTOR BLOCK. .WORD INXULN,INXUIC .WORD BITFLN,BITFILBITFIL: .ASCII /BITMAP.SYS/B BITFLN=.-BITFIL .EVEN .PAGE;+; INDEX - SEARCH THE INDEX FILE;X ; INPUTS: #; LUNS 3,4 ASSIGNED TO INPUT DEVICEI; OWNER = UIC ON INPUT DEVICEF; ; OUTPUTS:; NONE;-INDEX: MOV #INXFDB,R0 " CALL OPENFL ;OPEN THE INDEX FILE BCC 10$0 MOV #FCSERR,ARGBLK ;Assume FCS error ;RAW002) TSTB INXFDB+F.ERR+1 ;Was it? ;RAW002 " BEQ 1$ ;Yes - branch ;RAW0026 MOV #DIRERR,ARGBLK ;No, indicate DIR error ;RAW002B1$: MOVB INXFDB+F.ERR,R1 ;R1 has sign extended error code ;RAW0025 MOV R1,ARGBLK+2 ;Put error code in message ;RAW002H MOV #INXMSG,R1 ;**-1S CALL WRITE4 RETURN 10$: MOV #BMPFDB,R0E# CALL OPENFL ;OPEN THE BITMAP FILET BCC 15$0 MOV #FCSERR,ARGBLK ;Assume FCS error ;RAW002) TSTB BMPFDB+F.ERR+1 ;Was it? ;RAW002G# BEQ 11$ ;Yes - branch ;RAW002T6 MOV #DIRERR,ARGBLK ;No, indicate DIR error ;RAW002C11$: MOVB BMPFDB+F.ERR,R1 ;R1 has sign extended error code ;RAW002A5 MOV R1,ARGBLK+2 ;Put error code in message ;RAW002r MOV #BITMSG,R1 ;**-1B CALL WRITEo BR 60$ ;s1; DEFAULTS TO SEQUENTIAL READS THROUGH INDEX FILE ;T.15$: READ$ #INXFDB ;READ THE BOOT STRAP BLOCK WAIT$ R0H READ$ R0 ;READ THE HOME BLOCKC WAIT$ R0 / MOV HDR+H.IBSZ,R5 ;SAVE THE INDEX-BIT-MAP SIZE1.20$: READ$ R0 ;READ THROUGH THE INDEX-BIT-MAP WAIT$ R0T SOB R5,20$R9 ADD #5,F.VBN+2(0) ;SKIP 5 BLOCKS TO 1ST USER FILE HEADERB ADC F.VBN(0)a+30$: READ$ #INXFDB ;READ INDEX FILE HEADER, BCS 50$ ;IF ERROR, ASSUME EOFg WAIT$ R0r) BCS 50$ ;IF CS, FILE ERROR , CLOSE FILEo@ CMP HDR+H.IDOF,#27027 ;ALL HEADER IDS SET TO 27027 WHEN CREATED3 BNE 40$ ;IF NE, BLOCK DOESN'T CONTAIN FILE HEADER5 TST HDR+H.FNUM ;TEST IF THIS FILE HEADER WAS DELETED - BNE 40$ ;IF NE, THIS HEADER IS STILL IN USEZ" CALL CHKFIL ;CHECK IF PROPER UIC BCS 40$ ;IF CS, NOT RIGHT FILE% CALL COPY ;TRY TO RECOVER THIS FILEK' BCS 50$ ;IF CS, ERROR IN COPYING FILEa 40$: BR 30$ ;CONTINUE UNTIL EOF+50$: CLOSE$ #BMPFDB ;CLOSE THE BITMAP FILEg&60$: CLOSE$ #INXFDB ;CLOSE INDEX FILE RETURNE;+*; OPENFL - OPEN FILE WITH STATISTICS BLOCK;T ; INPUTS:N; R0 = ADDRESS OF FDB ; OUTPUTS:; CARRY SET IF FILE OPEN ERROR;-OPENFL:T. MOV #STBK,F.STBK(0) ;SPECIFY STATISTICS BLOCK OPEN$R R0 ;OPEN THE FILE00g!-TADATADATA% BCS 10$ ;Branch on error ;RAW001R0 MOV STBK+4,F.HIBK(0) ;GET HIGHEST VBN FROM STBK% MOV STBK+6,F.HIBK+2(0) ;GET LOW WORD - ADD #1,STBK+6 ;SET EOF VBN TO HIGH BLOCK + 1O ADC STBK+4E" MOV STBK+4,F.EFBK(0) ;GET EOF VBN% MOV STBK+6,F.EFBK+2(0) ;GET LOW WORDS10$: RETURN ;RAW001  .PAGE ;**-1;++; CHKFIL - CHECK IF FILE IS TO BE RECOVEREDS; ; INPUTS:P; NONE ; OUTPUTS: ; CARRY CLEAR - RECOVER THE FILE; CARRY SET - WRONG FILE;-+CHKFIL: CMP HDR+H.FOWN,OWNER ;CORRECT UIC??B& BEQ 10$ ;IF EQ, FILE HAS CORRECT UIC" SEC ; ELSE SET CARRY AND RETURN RETURNK10$: MOV #5,R5/ MOVB HDR+H.IDOF,R0 ;OFFSET TO ID AREA IN WORDSB ASL R0 ;CONVERT TO BYTES2 ADD #HDR+I.FNAM,R0 ;ADDRESS TO FILE NAME IN RADIX MOV #ARGBLK,R1G.20$: MOV (R0)+,(R1)+ ;MOVE FILE NAME TO ARGBLK SOB R5,20$*1 MOV #FILMSG,R1 ;WRITE FILENAME BEFORE RECOVERINGS CALL WRITES CLC RETURNU;+*; COPY - OPEN THE OUTPUT FILE TO COPY INTO;E ; INPUTS:I'; ACCEPTABLE FILE HEADER HAS BEEN FOUNDR; ; OUTPUTS:; CC = SUCCESSFUL COPY; CS = ERROR WITH OUTPUT FILEA; ,; FILE CREATED ON OUTPUT DEVICE IN USERS UIC;+;-COPY:O2 MOV #HDR,R1 ;DELETED FILE HEADER ON INPUT DEVICE- MOVB H.IDOF(R1),R2 ;HEADER OFFSET TO ID AREAN2 MOVB H.MPOF(R1),R3 ;HEADER OFFSET TO MAPPING AREA- ASL R2 ;CONVERT OFFSETS FROM WORDS TO BYTESG ASL R3E$ ADD R1,R2 ;R2 = ADDRESS OF ID AREA$ ADD R1,R3 ;R3 = ADDRESS OF MAPPING> MOV #DFNB+N.FNAM,R4 ;R4 = ADDRESS FOR FILENAME IN DEFAULT BLK MOV #5,R5 ;5 WORDS FOR DFNB /10$: MOV (R2)+,(R4)+ ;GET THE DELETED FILE NAMET SOB R5,10$A2 OPEN$W #OUTFDB ;OPEN THE OUTPUT FILE FOR WRITING BCC 20$ ;IF CC, FILE OPENED OK0 MOV #FCSERR,ARGBLK ;Assume FCS error ;RAW002) TSTB OUTFDB+F.ERR+1 ;Was it? ;RAW002F# BEQ 15$ ;Yes - branch ;RAW002A6 MOV #DIRERR,ARGBLK ;No, indicate DIR error ;RAW002C15$: MOVB OUTFDB+F.ERR,R1 ;R1 has sign extended error code ;RAW002F5 MOV R1,ARGBLK+2 ;Put error code in message ;RAW002M7 MOV #OUTMSG,R1 ;SEND ERROR MESSAGE TO TERMINAL ;**-1V CALL WRITE; SEC RETURN #20$: CALL COPYBK ;GO COPY THE FILED/ BCS 40$ ;IF CS, UNRECOVERABLE ERROR IN COPYBKI= MOV #HDR+H.UFAT,R1 ;R1 = ADDRESS OF USER ATTRIBUTES FOR FILE;) MOV #OUTFDB,R0 ;R0 = DESTINATION OF ATT.R! MOV #7,R5 ;MOVE 7 WORDS OF ATT. 330$: MOV (R1)+,(R0)+ ;MOVE ATTRIBUTES TO OUTPUT FDB SOB R5,30$5' CLOSE$ #OUTFDB ;CLOSE THE OUTPUT FILEn% CLC ;CLEAR CARRY, INDICATE SUCCESSK 40$: RETURN  .PAGE;s; LOCAL MACROS;V/RDQIO: QIOW$ IO.RLB,4,4,,IOSB,,-;;+:; COPYBK - COPY THE FILE BLOCKS POINTED TO BY THE MAP AREA;D ; INPUTS: (; R3 = ADDRESS OF MAPPING AREA IN HEADER;# ; OUTPUTS:; NONE;-COPYBK:E CLR R5T/ BISB M.USE(R3),R5 ;WORDS OF RETRIEVAL POINTERSF% ASL R5 ;BYTES OF RETRIEVAL POINTERST) ADD #M.RTRV,R3 ;ADDRESS OF FIRST POINTERO10$: TST R5 ;TEST IF DONE BLE 50$ ;IF LE, DONE WITH FILE;LL; ASSUME SIZE OF CONTIGUOUS BLOCK COUNT - 1 = 1 BYTE (HIGH BYTE OF 1ST WORD)"; AND SIZE OF LBN FIELD IS 3 BYTES;S CLR R15% BISB (R3)+,R1 ;R1 = HIGH WORD OF LBN  CLR R4K/ BISB (R3)+,R4 ;R4 = CONTIGUOUS BLOCK COUNT - 13 INC R4 ;0 ... -> 1 ...# MOV (R3)+,R2 ;R2 = LOW WORD OF LBN-(20$: CALL BLKCHK ;CHECK IF BLOCK REUSED! BCS 35$ ;IF CS, ERROR IN BLKCHKR# MOV #RDQIO,R0 ;ADDRESS OF READ QIOD% MOV R1,Q.IOPL+6(0) ;HIGH WORD OF LBN% MOV R2,Q.IOPL+10(0) ;LOW WORD OF LBNI( DIR$ R0 ;READ ONE BLOCK OF FILE BY LBN1 WRITE$ #OUTFDB ;WRITE THE BLOCKTO OUTPUT DEVICET BCS 30$ WAIT$ R0  BCC 40$0 MOV #FCSERR,ARGBLK ;Assume FCS error ;RAW002) TSTB OUTFDB+F.ERR+1 ;Was it? ;RAW002=# BEQ 30$ ;Yes - branch ;RAW002 6 MOV #DIRERR,ARGBLK ;No, indicate DIR error ;RAW002C30$: MOVB OUTFDB+F.ERR,R1 ;R1 has sign extended error code ;RAW002B5 MOV R1,ARGBLK+2 ;Put error code in message ;RAW002. MOV #OUTMSG,R1 ;**-1 CALL WRITEL SEC 35$: RETURN &40$: ADD #1,R2 ;NEXT CONTIGUOUS BLOCK ADCB R1( SOB R4,20$ ;READ ALL CONTIGUOUS BLOCKS1 SUB #4,R5 ;R5 = NEW BYTES OF RETREIVAL POINTERSE BR 10$ 00gh.6450$: CLC RETURN  .PAGE;T ; LOCAL DATA;1-BITCHK: .BYTE 1 ;BIT CHECK TABLE FOR BIT MAP  .BYTE 2 .BYTE 4 .BYTE 10L .BYTE 20c .BYTE 40o .BYTE 100 .BYTE 200 .EVEN;+-; BLKCHK - CHECK IF THE BLOCK HAS BEEN REUSED;V ; INPUTS:2/; R1,R2 = DOUBLE PRECISION LOGICAL BLOCK NUMBERM;R ; OUTPUTS:; NONE;R ; EFFECTS:-; WARNING WRITTEN TO TERMINAL IF BLOCK REUSEDS;-(BLKCHK: CALL $SAVAL ;SAVE THE REGISTERS MOV R2,R3 MOV R1,R2 ;R1,R2 => R2,R3 MOV R3,R1/ BIC #177770,R1 ;R1 = BITMAP BIT NUMBER IN BYTET .REPT 3# ASR R2 ;DOUBLE PREC. DIVIDE BY 8. ' ROR R3 ;(BITMAP IS 8 BLOCKS PER BYTE). .ENDR;.I; COMPUTE VBN IN BITMAP.SYS, (512. * 8.) = DEVICE BLOCKS PER BITMAP BLOCKI;H# DIV #1000,R2 ;DIVIDE R2,R3 BY 1000S ;R2 = VBN OF BITMAP FILE( ;R3 = BYTE ADDRESS INTO BITMAP BLOCK' ADD #2,R2 ;MAP STARTS AT SECOND BLOCKO* MOV R2,BMPFDB+F.BKVB+2 ;INSERT VBN IN FDB CLR BMPFDB+F.BKVB% READ$ #BMPFDB ;READ BLOCK OF BITMAP2 BCC 10$( CMPB BMPFDB+F.ERR,#IE.EOF ;END OF FILE?$ BNE 5$ ;IF NE, PRINT ERROR MESSAGE* CMP IOSB+2,R3 ;WERE ENOUGH BYTES READ IN?' BGT 10$ ;IF GE,ENOUGH BYTES WERE READ.0 MOV #FCSERR,ARGBLK ;Assume FCS error ;RAW002) TSTB BMPFDB+F.ERR+1 ;Was it? ;RAW002R" BEQ 5$ ;Yes - branch ;RAW0026 MOV #DIRERR,ARGBLK ;No, indicate DIR error ;RAW002B5$: MOVB BMPFDB+F.ERR,R1 ;R1 has sign extended error code ;RAW0025 MOV R1,ARGBLK+2 ;Put error code in message ;RAW002F MOV #BITMSG,R1 ;**-1B CALL WRITE  SEC RETURNE 10$: WAIT$ R0? BCS 5$  BITB BITCHK(1),DATA(3)E$ BNE 20$ ;IF NE, BLOCK STILL UNUSED) MOV #WARN,R1 ;SEND WARNING OF CORRUPTIONR CALL WRITEC20$: CLC RETURN  .PAGE .SBTTL TERMINAL IOM;B; TERMINAL MESSAGES ;WMSG: .ASCIZ /UND -- /r<SYNMSG: .ASCIZ /%N%ISyntax Error, "UND>DOut:=DIn:[grp,mbr]"/-DEVMSG: .ASCIZ /%N%IDevices must be distinct/g"FILMSG: .ASCIZ /%N%IRecovering %X/8WARN: .ASCIZ /%N%I*** Warning %X possibly corrupted ***/MOUTMSG: .ASCIZ /%N%I*** Output File error, %I error code = (%D) ***/ ;RAW001 GINXMSG: .ASCIZ /%N%I*** Input Index File %I error = (%D) ***/ ;RAW001#HBITMSG: .ASCIZ /%N%I*** Input Bitmap File %I error = (%D) ***/ ;RAW001SOASNER: .ASCIZ /%N%I*** ALUN$ failure on output, DIR error code = (%D) ***/ ;RAW001MRIASNER: .ASCIZ /%N%I*** ALUN$ failure on input, DIR error code = (%D) ***/ ;RAW001#FCSERR: .ASCIZ /FCS/ ;RAW001/#DIRERR: .ASCIZ /DIR/ ;RAW001I .EVEN ;**-3;o ; LOCAL DATA;MPREARG: .WORD MSG *ARGBLK: .BLKW 6 ;ARGUMENT BLOCK FOR EDMSG;+; WRITE - SEND MESSAGE TO TI: ;u ; INPUTS:e; R1 = INPUT STRING ; OUTPUTS:; NONE;-WRITE: MOV R0,-(SP)m MOV R1,-(SP)r MOV R2,-(SP);) MOV #PREARG,R2 ;ARGUMENT BLOCK FOR EDMSGr& MOV #DATA,R0 ;OUTPUT BUFFER FOR EDMSG CALL $EDMSG# QIOW$S #IO.WAL,#5,#5,,,,<#DATA,R1>i MOV (SP)+,R2 MOV (SP)+,R1/ MOV (SP)+,R0R RETURN/ .END STARTRAW001/#DIRERR: .ASCIZ /DIR/ ;RAW001I .EVEN ;**-3;o ; LOCAL DATA;MPREARG: .WORD MSG *ARGBLK: .BLKW 6 ;ARGUMENT BLOCKXN  @-b"L3Љ6sBKlBv#xx'e.`f.`Ty: y: y:x lTe ^0qX z0q8 >s8 ` ~ 00h!-TADATADATAN *"LL#@{@*?T@©2@*@((kh  *f  eE  B~ *©2#Ԃ{?T&N X*3ЉXL[ L@d@*N`r@jS@(F2zh * B` w` [ L &N`r * w wmjS[ LdN *6sL#@?hk@*?hT[@?hBx@{@k@N`r@*?T@A-@A-@@W@"jS@(Ndh *w E  A W ?hBxk A-$&B` 7pA w& A- ?hT[A-?hkN`r jS F {#  ?TN *BKL?hk@?h2@*?hT[@?hBx@?hu~@k@@*A-@A-@/d@W@R@(PN`rh *w E   B `  W?hBxkA-&p 7&?hk /dA-?hT[A-R<A @ae?hu~?h2N *BvL?hk@?h2@*?hT[@?hBx@?hu~@k@@*A-@A-@/d@W@R@"jD@(ZN`rh *w E   B `  W?hBxkA-&p 7&?hk /dA-?hT[A-R"<A @ae  ?hu~?h2jDjDN X*#xxXL("h  &e?E? & f YPN *'eL?hk@?hT[@*?hu~@A-@A-@R@(Nh &  0 B(R RA-?hT[ ?hT[?hu~*" ` "A-A-?hT[ ?hT[$?hk HR?hu~N *.`L3e@?hk@*?hcM@?hT[@?hBx@?hy@?hu~@*©2@A-@A-@@@*W@j/d@(|*h *w f 4 & D -(W ©2A-?hT[ $?hT[*&N  &?hu~ ?hcM?hu~ 3e"?hy(j/d(L `  &A-?hk?hT[?hT[ ?hBx$©2p dN *.`L3e@?hk@*?hcM@?hT[@?hBx@?hy@?hu~@*Cs:@CQ@@©2@©Bx@*A-@A-@@@W@*@j/d@(*h &w f E  &W ©2CQ"Cs:*"w`K`/ & D -" ©BxA-?hT[ $?hT[*HN  &?hu~ ?hcM?hu~ 3e"?hy(j/d(n `  &A-?hk?hT[?hT[ ?hBx$©2 N 0*y:0Ls@@(h68h0 A? 0*0eE   s$ V bN *y:L[/d@?hBx@*k@©2@@A-@A-@*W@R@jTG@lE@h'@(l6;h &w 7 7 7  W,&W A-A-R©2" 7 7([/d?hBx kA-?hBxk*< 0 #  A-A-jTG"h'b lEN *y:xL[/d@?hBx@*k@©2@@A-@A-@*W@R@@jD@jTG@00h'i-j..64*lE@h'@(6;h *w w      7 7 &W jD $A-(A-&&7  W, 7(R ©2[/d?hBx k"A-*H 7 0 # ?hBxk A-A-jTGn  h' lEN 0*Te0L3e@?hcM@*?hy@@@(2GGhMhjSh  &  & ?hcM ?hcM" 3e?hy&N *0qXL#h@?hk@*?h2@{@#@?T@@*jTG@ձ@e;@(/dh j/dhF * vp4e6#*.( d> >p ձ*T4e6(  "(e;*z ( 䇇7 pwj fe?hk(?h2*)wN 7 L jTG({#h  ?TfN *0q8 L#h@?hk@*?h2@{@#@?T@@*jTG@jG@jjH@ձ@e;@"(/dh j/dhP * p4e6#*.( xH    ձjG"jG(*T Hp4e6(*z 2| 䇷   e;jjH"jjH*7 \wV Re) ?hk?h2jTGw: 7 8  {#h ?TN 0*>s0L@(4h *B B  @`   &B`BN *8 L3eHVN@*(xhA-hA-hRh*hjDh jTGhjGhjjHh*Q?hkH?h2H?hcMH?hT[H"?hBxH?hyH?hu~H 2 &&::VNN *` L3eHVN@*(jhA-hA-hRh*jTGhQ?hkH?h2H?hcMH*?hT[H?hBxH?hyH?hu~H      ,,VNBN *~LN`r@GG@*@jS@(\NcMhhB=Hh *   v N`r GGN`r jS*& m ` N`rjS(N`rL@ N`rRh*jTGhQ?hkH?h2H?hcMH*?hT[H?hBxH?hyH?hu~H      5VOL/PR/-FP/-CP/MU/-TA,VOL/-SP=VOL,SD:[1,1]EXEC.STB/SS/ TASK=...VOLPRI=200STACK=32// .TITLE VOL .IDENT /001B/o; AUTHOR -- TERRY MONTLICKH; TASK "VOL" -- THIS PRIVILEGED MCR FUNCTION ALLOWS ONE TO CHANGE VOLUME7; CHARACTERISTICS OF A PREVIOUSLY INITVOLED RSX VOLUME.b;u; WRITTEN 8/10/75e; REVISED 2/24/76p;e ; BUILD FILE:R;,4; VOL/PR/-FP/-CP/MU/-TA,VOL/-SP=VOL,[1,1]EXEC.STB/SS; /r ; TASK=...VOLV ; PRI=200U ; STACK=32; //; ;C8 .MCALL DIR$,WTSE$S,MOUT$,GTSK$,ALUN$,GMCR$,QIOW$,EXIT$S .MCALL ISTAT$,STATE$,TRAN$5 .MCALL HMBOF$;h; STRING DESCRIPTOR MACROL.MAC00j/!-TADATADATARO STRING S,?L1,?L2 .WORD L2-L1,L1tL1: .ASCII /S/ L2: .EVENm .ENDM STRING;n; STACK PUSH AND POP MACROS .MACRO PUSH A,B,C,D,E,F,G .IRP X, .IF NB Xm MOV X,-(SP) .ENDC.ENDMx .ENDM PUSH ;.MACRO POP A,B,C,D,E,F,G.IRP X, .IF NB XL MOV (SP)+,X .ENDC.ENDME .ENDM POP ;h;L .PSECT PURE,REL,ROg;r* HMBOF$ DEF$L ;DEFINE HOME BLOCK OFFSETS;u;l; HERE IS WHERE WE START2; FIRST GET COMMAND LINE AND CHECK USER PRIVILEGES;w(START: DIR$ #GTSK ;GET TASK PARAMETERS# DIR$ #GMCR ;GET MCR COMMAND LINEK' CMPB G+G.TSGC,#10 ;ARE WE PRIVILEGED?L BLE 1$ ;YES --OKU1 MOV #ILLEGL,MOUT+M.OSTR ;NO--PRIVILEGE VIOLATION JMP MOUTDR;R; NOW PARSE OUT DEVICE NAME4;p'1$: MOV #1,R1 ;SET UP FOR TPARSE CALLP' MOV #KEYTAB,R2 ;ADDR OF KEYWORD TABLEr& MOV $DSW,R3 ;LENGTH OF COMMAND LINE BPL 5$  JMP SYNTAX ;EXIT IF ERROR*5$: MOV #GMCR+G.MCRB,R4 ;MCR LINE ADDRESS MOV #PRESCN,R5 ;STARTING STATE* CALL .TPARS ;PRESCAN PAST MCR TASK NAME BCC 10$ JMP SYNTAX ;ERROR10$: CLR R1 ;IGNORE BLANKS$ MOV #SCAN1,R5 ;NEXT STARTING STATE CALL .TPARS ;GET DEVICE NAME, BCC 12$ JMP SYNTAX ;ERROR; ; ASSIGN A LUN TO THIS DEVICEx;E12$: DIR$ #A ;ASSIGN LUN;D8; NOW CHECK THE PUD OF THE DEVICE TO MAKE SURE ITS LEGAL;N MOV .PUDBA,R0 ;GET PUD ADDRESS BR 20$E$15$: ADD #U.SZ,R0 ;GO TO NEXT ENTRY CMP R0,.PUDEA ;END OF PUD? BNE 20$ ;NO. MOV #NODEVC,MOUT+M.OSTR ;DEVICE NOT IN SYSTEM JMP MOUTDRw020$: CMP (R0),A+A.LUNA ;DOES DEVICE TYPE MATCH? BNE 15$ ;NO0 CMPB U.UN(R0),A+A.LUNU ;YES--DOES UNIT # MATCH? BNE 15$ ;NO5 MOV #140010,R1 ;SET PUD PATTERN FOR FILES-11 DEVICEI, BIC U.C1(R0),R1 ;CHECK IF ALL BITS ARE SET BEQ 25$ ;DEVICE OK  MOV #NOTF11,MOUT+M.OSTR" JMP MOUTDR ;DEVICE NOT FILES-11;R1; MAKE SURE VOLUME NOT MOUNTED AS FILES-11 VOLUMEB;5-25$: TST U.VA(R0) ;IS THERE A VCB EXTENSION?+" BEQ 30$ ;NO--VOLUME NOT MOUNTED MOV #NOMOUN,MOUT+M.OSTR JMP MOUTDR ;VOLUME MOUNTEDM;T#; NOW SEARCH FOR A VALID HOME BLOCKR;630$: MOV U.LBH(R0),TOTH ;GET #BLOCKS ON DEVICE (HIGH) MOV U.LBN(R0),TOTL ;LOW; BR 33$ ;GO GET 1ST BLOCKJ31$: BIC #1,Q+Q.IOPL+10 + ADD #400,Q+Q.IOPL+10 ;UPDATE BLOCK ADDRESSA ADC Q+Q.IOPL+6D+ CMP Q+Q.IOPL+6,TOTH ;EXCEED VOLUME LIMIT?U BGT 32$ ;YES BLT 33$ ;NO CMP Q+Q.IOPL+10,TOTL0 BLT 33$ ;NO+32$: MOV #NOHOME,MOUT+M.OSTR ;NO HOME BLOCKD JMP MOUTDRE133$: DIR$ #Q ;GET POSSIBLE HOME BLOCK ON DEVICE # TST $DSW ;CHECK DIRECTIVE STATUS+ BPL 35$ E" JMP DIRERR ;GO TO ERROR ROUTINE!35$: TSTB IOST ;CHECK IO STATUSS BPL 40$! JMP IOERR ;GO TO ERROR ROUTINER-40$: MOV #BUF,R0 ;SEE IF THIS IS HOME BLOCKU& MOV #H.CHK1/2,R1 ;GET FIRST CHECKSUM CALL CHECKS ;DO IT CMP R1,@R0 ;CHECKSUM GOOD?M BNE 31$ ;NO --TRY NEXT BLOCK$ MOV #BUF,R0 ;COMPUTE 2ND CHECKSUM MOV #H.CHK2/2,R15 CALL CHECKS CMP R1,@R0 ;GOOD CHECKSUM?# BNE 31$ ;NO GOOD -TRY NEXT BLOCKM' TST BUF+H.IBSZ ;BIT MAP SIZE NONZERO?L BEQ 31$ ;YES -- NO GOOD& TST BUF+H.FMAX ;MAX FILES SPECIFIED? BEQ 31$ ;NO --NO GOOD ;YES--IT PASSES!M;U=; VOLUME HAS A VALID HOME BLOCK -- PARSE AND PROCESS SWITCHES,;. CLR R1 ;SET UP FOR TPARS CALL MOV #SCAN2,R5 ;STARTING STATEP$ CALL .TPARS ;GO PARSE AND PROCESS BCC 50$ JMP SYNTAX ;EC; PARSE ROUTINE HAS PROCESSED SWITCH VALUES AND MODIFIED HOME BLOCK#E; ACCORDINGLY. NOW RECALCULATE CHECKSUMS, WRITE HOME BLOCK, AND EXITO;B250$: MOV #BUF,R0 ;SET UP TO CALCULATE CHECKSUM 1 MOV #H.CHK1/2,R1$ CALL CHECKS MOV R1,@R0 ;SET CHECKSUM:& MOV #BUF,R0 ;CALCULATE 2ND CHECKSUM MOV #H.CHK2/2,R1T CALL CHECKS MOV R1,@R0 ;SET CHECKSUMF8 MOV #IO.WLB,Q+Q.IOFN ;GET READY TO WRITE THE BLOCK BACK DIR$ #Q ;WRITE IT5 MOV WRITE,PAR+4 ;SET WRITE SD IN MSG PARAMETER LISTT MOV WRITE+2,PAR+6 TST $DSW ;ANY ERRORSH BMI DIRERR ;YES TSTB IOST ;IO STATUS OK?, BMI IOERR ;NO BR EXIT ;ALL OK --EXITT;N; ERROR CONDITION PROCESSING; -SYNTAX: MOV #SYNERR,MOUT+M.OSTR ;S00j7-j..64YNTAX ERROR BR MOUTDR2BADVAL: MOV #BADKEY,MOUT+M.OSTR ;BAD KEYWORD VALUE BR MOUTDR0DIRERR: MOV #QIOERR,MOUT+M.OSTR ;DIRECTIVE ERROR BR MOUTDRIOERR: CMPB IOST,#IE.DNR BNE 5$S* MOV #DEVNRD,MOUT+M.OSTR ;DEVICE NOT READY BR MOUTDR5$: CMPB IOST,#IE.VERE BNE 15$& MOV #PARERR,MOUT+M.OSTR ;PARITY ERROR BR MOUTDR15$: CMPB IOST,#IE.WLK BNE 20$) MOV #WRITEP,MOUT+M.OSTR ;WRITE PROTECTEDL BR MOUTDR320$: MOV #RWFAIL,MOUT+M.OSTR ;READ OR WRITE FAILURE (MOUTDR: DIR$ #MOUT ;TYPE ERROR MESSAGE+ WTSE$S #30. ;WAIT FOR MESSAGE COMPLETIONCEXIT: EXIT$S ;ALL DONE--EXITT;N;H?ILLEGL: STRING <%VA -- ILLEGAL FUNCTION FOR NONPRIVILEGED USER>K,NODEVC: STRING <%VA -- DEVICE NOT IN SYSTEM>-NOTF11: STRING <%VA -- NOT A FILES-11 DEVICE>I1NOMOUN: STRING <%VA -- VOLUME MUST BE DISMOUNTED>V-NOHOME: STRING <%VA -- CAN'T FIND HOME BLOCK>D$SYNERR: STRING <%VA -- SYNTAX ERROR>+QIOERR: STRING <%VA -- QIO DIRECTIVE ERROR>E(DEVNRD: STRING <%VA -- DEVICE NOT READY>@PARERR: STRING <%VA -- FATAL %VA ERROR - PARITY ERROR ON DEVICE>-BADKEY: STRING <%VA -- ILLEGAL KEYWORD VALUE>.WRITEP: STRING <%VA -- DEVICE WRITE PROTECTED>.RWFAIL: STRING <%VA -- HOME BLOCK %VA FAILURE>;2; HERE IS THE STATE TABLE FOR COMMAND LINE PARSING;B;O ISTAT$ STB,KEYTAB .GLOBL PRESCN .GLOBL SCAN1R .GLOBL SCAN2A;Y%; PRESCAN MCR LINE PAST OUR TASK NAMEW STATE$ PRESCN TRAN$ $STRNG+ STATE$R TRAN$ $BLANK,$EXITO TRAN$ $LAMDA,$EXITL;U%;SCAN MCR LINE FOR DEVICE INFORMATIONR STATE$ SCAN1; TRAN$ $ANY,,DEV1 STATE$3 TRAN$ $ANY,,DEV2A STATE$T TRAN$ ':,$EXITS TRAN$ $NUMBR,,DEVNUMN STATE$E TRAN$ ':,$EXIT-;L; SCAN MCR LINE FOR SWITCHES STATE$ SCAN2C TRAN$ '/,S1 TRAN$ $EOS,$EXITS STATE$ S1 TRAN$ "LABEL",NAT TRAN$ "UIC",UIE TRAN$ "PRO",PRG TRAN$ "FPRO",FP TRAN$ "EXT",EXV TRAN$ "WIN",WI< TRAN$ "MXF",MX  TRAN$ "CHA",CHE TRAN$ "LRU",LR-;N; VOLUME NAME GIVENT STATE$ NA TRAN$ '=I STATE$E TRAN$ $STRNG,SCAN2,LABELV; ;VOLUME OWNER GIVENT STATE$ UI TRAN$ '=E STATE$R TRAN$ '[N STATE$ TRAN$ $NUMBR,,UIC1- STATE$K TRAN$ <',> STATE$  TRAN$ $NUMBR,,UIC2  STATE$T TRAN$ '],SCAN2T;G; VOLUME PROTECTION GIVENL STATE$ PR TRAN$ '=  STATE$L TRAN$ '[,SPRO,PGROUPI;*; NUMBER OF PRE-ACCESSED DIRECTORIES GIVEN STATE$ LR TRAN$ '=  STATE$Y TRAN$ $NUMBR,SCAN2,LRU ; ; DEFAULT FILE PROTECTION GIVEN$ STATE$ FP TRAN$ '=A STATE$, TRAN$ '[,SPRO,FGROUPE;L#; DEFAULT FILE EXTENTION SIZE GIVENM STATE$ EX TRAN$ '= STATE$N TRAN$ $NUMBR,SCAN2,EXTENT;,; DEFAULT WINDOW SIZE GIVENE STATE$ WI TRAN$ '=V STATE$A TRAN$ $NUMBR,SCAN2,WINDOW;C; MAX FILES ON VOLUME GIVENA STATE$ MX TRAN$ '=1 STATE$$ TRAN$ $NUMBR,SCAN2,MAXFIL;"; VOLUME CHARACTERISTICS GIVEN STATE$ CH TRAN$ '=" STATE$ TRAN$ '[" STATE$ CH0" TRAN$ '],SCAN2,ENDCHA TRAN$ <',>,CH0C TRAN$ "ATCH",CH0,ATCH TRAN$ "DCF",CH0,DCF;S; COMMON PROTECTION CODE SCAN STATE$ SPRO TRAN$ '],SCAN2,ENDGRP TRAN$ <',>,SPRO,NXGRP TRAN$ 'R,SPRO,SETRP TRAN$ 'W,SPRO,SETWP TRAN$ 'E,SPRO,SETEP TRAN$ 'D,SPRO,SETDP; STATE$ ;T;$ ; SUBROUTINES FOR COMMAND PARSER;C9DEV1: MOVB .PCHAR,A+A.LUNA ;1ST CHAR OF DEVICE FOR ALUN$  RETURNL5DEV2: MOVB .PCHAR,A+A.LUNA+1 ;2ND CHAR OF DEVICE NAMED RETURNS;V+DEVNUM: MOV .PNUMB,A+A.LUNU ;DEVICE NUMBER$ RETURNN;RLABEL: PUSH R0,R1,R2) MOV .PSTPT,R0 ;GET VOLUME LABEL POINTER8 MOV #BUF+H.VNAM,R1 ;SET ADDRESS IN BUFFER FOR VOL NAME$ MOV .PSTCN,R2 ;SET CHARACTER COUNT! BEQ 7$ ;IF ZERO, SKIP TRANSFERX+5$: MOVB (R0)+,(R1)+ ;SET NEW VOLUME LABELE SOB R2,5$-7$: MOV #12.,R2 ;CLEAR REST OF VOLUME LABEL SUB .PSTCN,R2( BLE 15$ ;IF CHARS > OR = 12.,ALL DONE10$: CLRB (R1)+B SOB R2,10$L15$: POP R2,R1,R0A RETURNS;V2UIC1: MOVB .PNUMB,BUF+H.VOWN+1 ;SET UIC GROUP CODE RETURN"1UIC2: MOVB .PNUMB,BUF+H.VOWN ;SET UIC MEMBER CODE" RETURN,;H=PGROUP: MOV #BUF+H.VPRO,PRADDR ;SET VOLUME PROTECTION ADDRESSA MOV #4,GRCNT$ BR NXGRPN;P<FGROUP: MOV #BUF+H.FPRO,PRADDR ;SET 00j?kE!-TADATADATADEFAULT FILE PRO ADDRESS MOV #4,GRCNT' BR NXGRPP;TNXGRP: SEC ;FORCE ONESA ROR UPRO$ ASR UPRO ;SHIFT TO NEXT GROUP ASR UPRO ASR UPRO, DEC GRCNT ;COUNT GROUPS BGE 10$# JMP SYNTAX ;TOO MANY IS AN ERRORU 10$: RETURNR; +SETRP: BIC #10000,UPRO ;SET READ PERMITTEDB RETURN ;E,SETWP: BIC #20000,UPRO ;SET WRITE PERMITTED RETURN.;P-SETEP: BIC #40000,UPRO ;SET EXTEND PERMITTEDN RETURNE;D.SETDP: BIC #100000,UPRO ;SET DELETE PERMITTED RETURNT;C&ENDGRP: TST GRCNT ;CHECK GROUP COUNT BEQ 10$! JMP SYNTAX ;MUST HAVE 3 SHIFTSE&10$: MOV UPRO,@PRADDR ;SET PROTECTION RETURNL; 4EXTENT: CALL BYTCHK ;MAKE SURE NUMBER NOT > 1 BYTE BCC 10$ JMP BADVALR810$: MOVB .PNUMB,BUF+H.FIEX ;SET NEW FILE EXTEND DEFAULT RETURNN;,4WINDOW: CALL BYTCHK ;MAKE SURE NUMBER NOT > 1 BYTE BCC 10$ JMP BADVAL ;10$: MOVB .PNUMB,BUF+H.WISZ ;SET #WINDOW RETRIEVAL POINTERSR RETURNU;P1LRU: CALL BYTCHK ;MAKE SURE NUMBER NOT > 1 BYTE BCC 10$ JMP BADVAL,?10$: MOVB .PNUMB,BUF+H.WISZ+2 ;SET # OF PREACCESSED DIRECTORIES RETURN:;C3BYTCHK: TSTB .PNUMB+1 ;CHECK FOR NUMBER > ONE BYTEE BEQ 10$ BR 15$ 10$: TST .PNUMHC BEQ 20$"15$: SEC ;IF TOO BIG, SET CARRY BR 30$N20$: CLC 30$: RETURNT;R4MAXFIL: TST .PNUMH ;MAKE SURE MAX FILE NOT >65535. BEQ 10$ ;OK JMP SYNTAX ;NO GOOD!10$: PUSH R0,R1 ;SAVE R0 AND R1E5 MOV TOTL,R1 ;LOAD REGISTERS WITH MAX VOLUME BLOCKSD MOV TOTH,R0 ASHC #-1,R0 ;DIVIDE BY TWOT TST R0 ;IS RESULT > 65535?R BNE 30$ ;YES -- MAX BLOCKS OK3 CMP R1,.PNUMB ;NO -- IS RESULT < MAX FILES GIVEN?P BGE 30$ ;NO --OKN JMP SYNTAX ;YES --NO GOOD130$: MOV .PNUMB,BUF+H.FMAX ;MAX FILES OK --SET ITJ POP R1,R0 RETURN ;U#ATCH: BIS #20,VOLCHA ;ALLOW ATTACHF RETURNT;N4DCF: BIS #10,VOLCHA ;ALLOW DEVICE CONTROL FUNCTIONS RETURNC;$7ENDCHA: BIS #30,BUF+H.VCHA ;SET VOLUME CHARACTERISTICSR BIC VOLCHA,BUF+H.VCHA RETURN;:;L; CHECKSUM ROUTINE;UCHECKS: ;CALCULATE CHECKSUMP ;IN: R0=START ADDRB ; R1=COUNT ;OUT: R1=CHECKSUM PUSH R2 MOV R1,R2 ;PUT COUNT IN R2  CLR R1 ;CLEAR CHECKSUMT$10$: ADD (R0)+,R1 ;COMPUTE CHECKSUM SOB R2,10$ POP R2 ;RESTORE R2, RETURNY;B; TASK BUFFERS AND DPB;R .PSECTA;L;S$BUF: .BLKW 256. ;HOME BLOCK BUFFER*Q: QIOW$ IO.RLB,1,1,,IOST,,A: ALUN$ 1,SY,0 GMCR: GMCR$DMOUT: MOUT$ ILLEGL,PAR,,,SY$STME GTSK: GTSK$ GU G: .BLKW 16. IOST: .BLKW 2HTOTL: .WORD 0 ;LOW MAX BLOCKSR TOTH: .WORD 0 ;HIGH MAX BLOCKS,PAR: .WORD 3,GMCR+G.MCRB ;MSG PARMETER LIST .WORD 4,READMREAD: .ASCII /READ/EWRITE: .WORD 5,WRITPWRIT: .ASCII /WRITE/ .EVEN5PRADDR: .WORD 0 ;POINTER TO PROTECTION WORD ADDRESS,3GRCNT: .WORD 0 ;BOOK-KEEPING FOR PROTECTION STUFFF UPRO: .WORD 0 ;PROTECTION WORD'VOLCHA: .WORD 0 ;CHARACTERISTICS WORDR$.MOLUN==MOUT+M.OLUN ;DEFINE MO LUN;V;M .END STARTTICSR BIC VOLCHA,BUF+H.VCHA RETURN;:;L; CHECKSUM ROUTINE;UCHECKS: ;CALCULATE CHECKSUMP ;IN: R0=START*O L$9B@$9Z@*$9@:br@:@@ @*@@W@@@s@*:2@J@P@}@@*Q@@0# @(<VNh*Zg@8z̫e fFwh9wX\h 9w\h*yhE*}h0Zg@( Zg@(׭w&  &$wF w4 & s  ̫e 0# (F w$ e7 * ̫e 0# Q"&j wR7"7L* W ,w0 Lw 7&,@L 7Eew ( - -* (pwn ww$p ns*n `H n `H  n * n ` 00kGmO..64n`$n( t  wBn `H(t ̫e 0# n"`Dn `Hpn( n `:p n^*",$ (*" , $sp /#& ׭׭$  $9B ׭*$9Z $9*6X)3.&6 X (*%VA -- ILLEGAL FUNCTION FOR NONPRIVILE*GED USER%VA -- DEVICE NOT IN SYSTE*M,*,0%VA -- NOT A FILES-11 DEVICE P%V 0&P*RA -- VOLUME MUST BE DISMOUNTEDt%VA $t*x-- CAN'T FIND HOME BLOCK%VA -- SYN TAX ERROR*%VA -- QIO DIRECTIVE ERROR%VA $-- DEVICE NOT READY*/%VA -- FATAL %VA ERROR - PARITY ERROR ON DEVICE*%VA -- ILLEGAL KEYWORD VALUE:%V &:<A -- DEVICE WRITE PROTECTEDEX%X\%VA -- HOME BLOCK %VA FAILURE\̫e *ĀЂЂ:‚:/&ʄ&   $& LABEL  ̫e &&JJUIC  ̫e **RR  PRO    ̫e ..dd FPRO  ̫e 22ttEXT  ̫e 66||WIN    ̫e ::MXF    ̫e >>CHA  ̫e BB##LRU # #̫e F&Fl=Ć=[‚F,‚N]=[&l  F N hV=†=[d=†& V  d=†=†=[]&    R, R ' 'ATCH ' '̫e B B,,DCF , ,̫e J],rR& J  rWED&    *{t&f|:2:2J$(|*&~ ~A}}&J*L8J*r7     wvE Zg@v*E E@E wvz $Zg@v*t 2w~ w~Zg@~J"Zg@~&J* w~ Zg@~JJ"P*  wv&fv w  PZg@v(J*0wv8UUUZg@v JV8M2B d~n$n nSY):br n ? Zg@&READ.WRITE  &.4 4$Zg@v*t 2w~ w~Zg@~J"Zg@~&J* w~ Zg@~JJ"P*  wv&fv w  PZg@v(J*0wv8UUUZg@v J$; @CLOCK -- BUILD VT52 CLOCK DISPLAY;MAC CLOCK,CLOCK/-SP=TS/ML,CLOCK TKB @CLOCKTKB00nPE!-TADATADATA .PSECT CLOCK, .TITLE VT52 CLOCK DISPLAY;3E; THIS PROGRAM DISPLAYS A DIGITAL CLOCK ON THE FACE OF A VT52 DISPLAY3;6 ; WRITTEN BY:.#; MARK JOHNSON, SEPTEMBER 22, 1977.A; / .MCALL QIO$S,GTIM$S,MRKT$S,WTSE$S,QIOW$,EXIT$S6' .MCALL QIOW$S,ENTER,LEAVE,GMCR$,ASTX$S6;4/ESC=33 ;ESCAPE CODE USED TO SIGNAL VT52 COMMAND0LF=12 ;LINE FEED CODE7BS=10 ;BACKSPACE CODECURSR=103 ;CURSOR RIGHT COMMAND7CURSL=104 ;CURSOR LEFT COMMANDCURSU=101 ;CURSOR UP COMMANDCURSD=102 ;CURSOR DOWN COMMAND;,&DIGTOP=41 ;CODE FOR TOP LINE OF DIGITS&DIGLIN=20. ;NUMBER OF LINES IN A DIGIT&BITS=16. ;NUMBER OF COLUMNS IN A DIGIT;COHR10=2 COHR1=20. COLCOL=40.+40E COMN10=44. COMN1=62.;C9IO.WVB=410 ;NEED TO USE WRITE/PASS ALL FOR CURSOR CONTROLS;T .MACRO FILL ADDR,CHAR MOV ADDR,R3 ;GET ADDRESS MOVB CHAR,(R3)+ MOVB CHAR,(R3)+ MOVB CHAR,(R3)+ .ENDM;A;C .MACRO TTYOUT ADDR,COUNTH MOV ADDR,OUTDPB+Q.IOPLR MOV COUNT,OUTDPB+Q.IOPL+2 DIR$ #OUTDPBA .ENDM;0#OUTDPB: QIOW$ IO.WVB,5,1,,,,<0,0,0> #ATADPB: QIOW$ IO.ATA,5,1,,,,2DETDPB: QIOW$ IO.DET,5,1,,,, GETMCR: GMCR$BASTFLA: .WORD 0A;G-CCAST: ;CODE FOR CONTROL C SEEN WHILE RUNNINGO INC ASTFLA ;SHOW IT HAPPENED ASTX$S ;EXIT THE ASTA;A;FSTART: DIR$ #GETMCRT DIR$ #ATADPBA;,; INITIALIZE STORAGE;A' MOV #-1,HR10 ;FORCE DISPLAY FIRST TIME+ MOV #-1,HR1 MOV #-1,MN10A MOV #-1,MN1;O( TTYOUT #ERASE,#ERASEL ;ERASE THE SCREEN;VLOOP: TST ASTFLA ;SEEN A ^C ?O BEQ 111$N+ TTYOUT #ERASE,#ERASEL ;ERASE SCREEN & HOME DIR$ #DETDPB ;DETACH SCOPE EXIT$S ;AND SCRAM111$:54 ;DO THE MARK TIME NOW SO IO TIME DOESN'T CAUSE US ;TO SLIP IN TIMEE( MRKT$S #2,#1,#2 ;SET UP ONE SECOND WAIT# GTIM$S #TBUF ;GET TIME FROM SYSTEM MOV TBUF+6,R5 ;GET HOURSD CLR R4 ;DOUBLE PRECISION+ DIV #10.,R4 ;TENS DIGIT IN R4, ONES IN R5F;T CMP R4,HR10 ;TENS DIGIT OK?M BEQ 1$ ;YES, SKIP THIS STUFF MOV R4,HR10 ;UPDATE MEMORY% MOV #COHR10,R2 ;SET UP COLUMN NUMBER JSR PC,CHAR ;DISPLAY IT#;S(1$: CMP R5,HR1 ;HOW IS THE UNITS DIGIT? BEQ 2$ ;OK, DON'T CHANGE ITR MOV R5,R4 MOV R4,HR1 ;UPDATE MEMORYO$ MOV #COHR1,R2 ;SET UP COLUMN NUMBER JSR PC,CHAR ;SHOW THIS ONE;O2$: MOV TBUF+10,R5 ;GET MINUTE CLR R4 ;DOUBLE PRECISION* DIV #10.,R4 ;TENS DIG IN R4, UNITS IN R5;N CMP R4,MN10 ;TENS DIGIT OK?R BEQ 3$ ;OK, DON'T CHANGE IT0 MOV R4,MN10 ;UPDATE MEMORY% MOV #COMN10,R2 ;SET UP COLUMN NUMBERD JSR PC,CHAR ;SHOW THE DIGITT; !3$: CMP R5,MN1 ;MINUTE DIGIT OK?L BEQ 4$ ;OK, DON'T CHANGE ITW MOV R5,R4 ;SET UP PARAMETER; MOV R4,MN1 ;UPDATE MEMORY,$ MOV #COMN1,R2 ;SET UP COLUMN NUMBER JSR PC,CHAR ;SHOW THIS ONE;; UPDATE SECONDS;H24$: GTIM$S #TBUF ;FRESH TIME FOR SECONDS ACCURACY MOV TBUF+12,R5 ;GET SECONDS CLR R4 ;DUBBLE PRECISE& DIV #10.,R4 ;TENS IN R4, UNITS IN R5 BIT #1,R5 ;EVEN SECOND BEQ 11$ ;BR IF YES MOV #40,R4 ;FLASH THE COLONR MOV R4,R5 BR 12$E"11$: ADD #'0,R4 ;CONVERT TO ASCII ADD #'0,R5 ;CONVERT TO ASCII12$: FILL #S101,R4 FILL #S102,R4 FILL #S103,R4;T FILL #S11,R5 FILL #S12,R5P FILL #S13,R5M;## TTYOUT #COLON,#COLEN ;DO THE COLONP* TTYOUT #HOME,#HOMEL ;PUT CURSOR BACK HOME;H;WAIT FOR A WHILE ;E- WTSE$S #2 ;WAIT FOR PREVIOUSLY DECLARED ASTG;S JMP LOOP ;THEN GO AGAINE .PAGE$ .SBTTL CHAR - DISPLAY ONE CHARACTER;T; CHAR - DISPLAY ONE CHARACTER; ; INPUTS:V1; R2 - COLUMN NUMBER OF FIRST COLUMN OF CHARACTER1%; R4 - DIGIT TO DISPLAY IN RANGE 0-9.#;R; OUTPUTS: NONEC;CHAR: ENTER R0,R1,R2,R3,R4,R5,* MOVB CHTB(R4),R1 ;SET UP CHARACTER TO USE ASL R4 ;CONVERT TO WORDS! MOV MPTB(R4),R0 ;GET MAP ADDRESSO P;T(; MOVE TO UPPER LEFT CORNER OF CHARACTER; ADD #40,R2 ;SET COLUMN ADDRESS MOVB R2,COLM ;PUT INTO COMMAND$ MOVB R2,COLM2 ;AND NEW LINE COMMAND.6$: MOVB #DIGTOP,LINE ;SET UP TOP LINE ADDRESS$ MOVB #DIGTOP,LINE2 ;FOR NEWLIN ALSO# TTYOUT #MOVIT,#4 ;SEND THE COMMANDS;O; MAIN CHARACTER LOOP4;D. MOV #DIGLIN,R3 ;NUMBER OF LINES PER CHARACTER";4$: MOV (R0),R4 ;ONE ROW OF BI00nXO..64TS#; COM (R0)+ ;PREPARE FOR NEXT PASSC&4$: MOV (R0)+,R4 ;GET NEXT ROW OF BITS& MOV #BITS,R5 ;NUMBER OF BITS PER LINE) MOV #LINBUF,R2 ;ADDRESS OF OUTPUT BUFFERR; ; LINE LOOP ;E3$: ROL R4 ;GET THE NEXT BIT  BCC 1$ ;CLEAR => DON'T WRITE' MOVB R1,(R2)+ ;SET => INSERT CHARACTERP BR 2$ ;EXITO;I%1$: MOVB #40,(R2)+ ;USE ERASING SPACEW; 2$: SOB R5,3$ ;T; LINE READY TO SEND;O, SUB #LINBUF,R2 ;GET LENGTH OF STUFF TO SEND+ TTYOUT #LINBUF,R2 ;SEND ONE CHARACTER LINE,; ; MOVE TO NEXT LINE OF CHARACTER;R INCB LINE2 ;SET ONE LINE DOWN4% TTYOUT #NXTLIN,#NXTLEN ;SEND COMMANDN;E SOB R3,4$ ;END OF PASS;B#; CMPB R1,#40 ;END OF SECOND PASS?; BEQ 5$ ;YES, LEAVEO;42; PASS 2 REPLACES ALL OTHER CHARACTERS WITH BLANKSB;REESE MODIFICATION USED SPACES INSTEAD OF BLANKS SO NO NEED TO DO;B; MOV #40,R1 ;SET UP BLANKW%; SUB #MAPSIZ,R0 ;RESTORE MAP POINTERT; JMP 6$ ;AND DO IT AGAIN;T 5$: LEAVES RTS PCE .PAGE .SBTTL BUFFERS, ETC.E;A-;ERASE SCREEN BY HOME, ERASE TO END OF SCREENT;ERASE: .BYTE ESC .ASCII /*/DERASEL=.-ERASE;I); DIRECT CURSOR ADDRESSING COMMAND BUFFERE;OMOVIT: .BYTE ESC .ASCII /=/ LINE: .BYTE 40 ;40 IS TOP LINE!COLM: .BYTE 40 ;40 IS LEFT COLUMN ;EHOME: .BYTE ESC .ASCII ?= ?M HOMEL=.-HOMED; NEW LINE COMMAND STRINGO; NXTLIN: .BYTE LF,ESC .ASCII /=/ULINE2: .BYTE 100 #COLM2: .BYTE 0 ;SET UP AT RUN TIME$NXTLEN=.-NXTLINN;T; INSTRUCTIONS TO DRAW A COLON;BCOLON: .BYTE ESC .ASCII /=/S .BYTE DIGTOP+6A .BYTE COLCOLRS101: .ASCII /:::/ .BYTE LF,BS,BS,BSS102: .ASCII /:::/ .BYTE LF,BS,BS,BSS103: .ASCII /:::/ .BYTE LF,LF,LF,BS,BS,BSS11: .ASCII /:::/E .BYTE LF,BS,BS,BSS12: .ASCII /:::/  .BYTE LF,BS,BS,BSS13: .ASCII /:::/ COLEN=.-COLON=;M; OUTPUT LINE BUFFER;I&LINBUF: .BYTE 0 ;NULL FOR GOOD MEASURE5 .BLKB BITS*4 ;COULD BE AS MANY AS FOUR BYTES PER BIT ;T .EVENTBUF: .BLKW 8.;N HR10: .WORD 0N HR1: .WORD 0 MN10: .WORD 0B MN1: .WORD 0;C; TABLES;SCHTB: .ASCII /0123456789/C=MPTB: .WORD MAP0,MAP1,MAP2,MAP3,MAP4,MAP5,MAP6,MAP7,MAP8,MAP9:; .PAGE .SBTTL BIT MAPS .NLIST BEX .EVEN;F ; CHARACTER 01;.)MAP0: .WORD 03760,17774,30006,60003,60003I$ .WORD 60003,60003,60003,60003,60003$ .WORD 60003,60003,60003,60003,60003$ .WORD 60003,60003,30006,17774,03760; )MAP1: .WORD 00300,00700,01700,03700,00300S$ .WORD 00300,00300,00300,00300,00300$ .WORD 00300,00300,00300,00300,00300$ .WORD 00300,00300,00300,07776,07776;D)MAP2: .WORD 03760,17774,30006,60003,000037$ .WORD 00003,00003,00006,00014,00030$ .WORD 00060,00140,00300,00600,01400$ .WORD 03000,06000,14000,37777,77777;V)MAP3: .WORD 03760,17774,30006,60003,000036$ .WORD 00003,00003,00003,00006,00774$ .WORD 00774,00006,00003,00003,00003$ .WORD 00003,60003,30006,17774,03760;6)MAP4: .WORD 00030,00070,00170,00330,006300$ .WORD 01430,03030,06030,14030,30030$ .WORD 77777,77777,00030,00030,00030$ .WORD 00030,00030,00030,00030,00030;0)MAP5: .WORD 77777,77777,60000,60000,600006$ .WORD 60000,60000,77000,37740,00770$ .WORD 00014,00006,00003,00003,00003$ .WORD 00003,60003,30006,17774,03760)MAP6: .WORD 03760,17774,30006,60003,60000 $ .WORD 60000,60000,60000,60000,63760$ .WORD 77774,70006,60003,60003,60003$ .WORD 60003,60003,30006,17774,03760)MAP7: .WORD 77777,77777,00003,00003,00003W$ .WORD 00006,00014,00030,00060,00140$ .WORD 00300,00600,01400,03000,06000$ .WORD 14000,30000,60000,60000,60000)MAP8: .WORD 03760,17774,30006,60003,600035$ .WORD 60003,60003,60003,30006,17774$ .WORD 17774,30006,60003,60003,60003$ .WORD 60003,60003,30006,17774,03760)MAP9: .WORD 03760,17774,30006,60003,600036$ .WORD 60003,60003,60003,30007,17777$ .WORD 03763,00003,00003,00003,00003$ .WORD 00003,60003,30006,17774,03760;.MAPSIZ=MAP1-MAP0 .END START760)MAP7: .WORD 77777,77777,00003,00003,00003W$ .WORD 00006,00014,00030,00060,00140$ .WORD 00300,00600,01400,03000,06000$ .WORD 14000,30000,60000,60000,60000)MAP8: .WORD 03760,17774,30006,60003,600035$ .WORD 60003,60003,60003,30006,17774$ .WORD 17774,30006,600o`pdqerf-TADATADATA*ÌL:a @:@(x(x( x* :a "&: &)~*~ s,| ,*xtXT (*@< 3&   * =  s 7! 7 * w!D7  s *<7!7, w!D7> *b = s 5 e0 *e0 (*SSSSSSSSS>,:  *,()w *&f&f$ .e }! $.* r!u *FD Rҕ G$*l/~* *= = =@='H::: ::: ::: ::: ::: :::*0123456789Bj 2Z*Bj "2$Z&(*B0``````````````0*h*0` 0` *?0`*`08x 0*`````~? *&`00``````gp`*L````0 0`*r 0```0`````0*0`````00`````0`0Bj "2$Z&(*B0``````````````0*h*0` 0` *?0`*`08x 0*`````~? *&`00``````gp`*L````0 0`*r 0```0`````0*0`````0[11,1]CLO/MU/-CP/-FP=CLOCK/ TASK=...CLOSTACK=32PRI=150//$; @CLOCK -- BUILD VT52 CLOCK DISPLAY;"MAC CLOCKV,CLOCKV/-SP=TS/ML,CLOCKV TKB @CLVBLD .PSECT CLOCK .TITLE VT52 CLOCK DISPLAY;E; THIS PROGRAM DISPLAYS A DIGITAL CLOCK ON THE FACE OF A VT52 DISPLAY; ; WRITTEN BY:#; MARK JOHNSON, SEPTEMBER 22, 1977.;/ .MCALL QIO$S,GTIM$S,MRKT$S,WTSE$S,QIOW$,EXIT$S' .MCALL QIOW$S,ENTER,LEAVE,GMCR$,ASTX$S;/ESC=33 ;ESCAPE CODE USED TO SIGNAL VT52 COMMANDLF=12 ;LINE FEED CODEBS=10 ;BACKSPACE CODECURSR=103 ;CURSOR RIGHT COMMANDCURSL=104 ;CURSOR LEFT COMMANDCURSU=101 ;CURSOR UP COMMANDCURSD=102 ;CURSOR DOWN COMMAND;&DIGTOP=41 ;CODE FOR TOP LINE OF DIGITS&DIGLIN=20. ;NUMBER OF LINES IN A DIGIT&BITS=16. ;NUMBER OF COLUMNS IN A DIGIT;COHR10=2 COHR1=20. COLCOL=40.+40E COMN10=44. COMN1=62.;C9IO.WVB=410 ;NEED TO USE WRITE/PASS ALL FOR CURSOR CONTROLS;T .MACRO FILL ADDR,CHAR MOV ADDR,R3 ;GET ADDRESS MOVB CHAR,(R3)+ MOVB CHAR,(R3)+ MOVB CHAR,(R3)+ .ENDM;A;C .MACRO TTYOUT ADDR,COUNTH MOV ADDR,OUTDPB+Q.IOPLR MOV COUNT,OUTDPB+Q.IOPL+2 DIR$ #OUTDPBA .ENDM;0#OUTDPB: QIOW$ IO.WVB,5,1,,00rhO..64,,<0,0,0> #ATADPB: QIOW$ IO.ATA,5,1,,,,2DETDPB: QIOW$ IO.DET,5,1,,,, GETMCR: GMCR$BASTFLA: .WORD 0A;G-CCAST: ;CODE FOR CONTROL C SEEN WHILE RUNNINGO INC ASTFLA ;SHOW IT HAPPENED ASTX$S ;EXIT THE ASTA;A;FSTART: DIR$ #GETMCRT DIR$ #ATADPBA;,; INITIALIZE STORAGE;A> TTYOUT #SVT52,#SVT52L ;SET TO VT52(EASIER THAN CHANGING PROG)' MOV #-1,HR10 ;FORCE DISPLAY FIRST TIME MOV #-1,HR1 MOV #-1,MN10V MOV #-1,MN1;O( TTYOUT #ERASE,#ERASEL ;ERASE THE SCREEN;WLOOP: TST ASTFLA ;SEEN A ^C ?B BEQ 111$A+ TTYOUT #ERASE,#ERASEL ;ERASE SCREEN & HOME,) TTYOUT #SV100,#SV100L ;RESET IT TO VT100C DIR$ #DETDPB ;DETACH SCOPE EXIT$S ;AND SCRAM111$:;4 ;DO THE MARK TIME NOW SO IO TIME DOESN'T CAUSE US ;TO SLIP IN TIMED( MRKT$S #2,#1,#2 ;SET UP ONE SECOND WAIT# GTIM$S #TBUF ;GET TIME FROM SYSTEM( MOV TBUF+6,R5 ;GET HOURS CLR R4 ;DOUBLE PRECISION+ DIV #10.,R4 ;TENS DIGIT IN R4, ONES IN R5M;# CMP R4,HR10 ;TENS DIGIT OK?S BEQ 1$ ;YES, SKIP THIS STUFF MOV R4,HR10 ;UPDATE MEMORY% MOV #COHR10,R2 ;SET UP COLUMN NUMBERC JSR PC,CHAR ;DISPLAY IT0;V(1$: CMP R5,HR1 ;HOW IS THE UNITS DIGIT? BEQ 2$ ;OK, DON'T CHANGE ITR MOV R5,R4 MOV R4,HR1 ;UPDATE MEMORYO$ MOV #COHR1,R2 ;SET UP COLUMN NUMBER JSR PC,CHAR ;SHOW THIS ONE;O2$: MOV TBUF+10,R5 ;GET MINUTE CLR R4 ;DOUBLE PRECISION* DIV #10.,R4 ;TENS DIG IN R4, UNITS IN R5;N CMP R4,MN10 ;TENS DIGIT OK?R BEQ 3$ ;OK, DON'T CHANGE IT0 MOV R4,MN10 ;UPDATE MEMORY% MOV #COMN10,R2 ;SET UP COLUMN NUMBERD JSR PC,CHAR ;SHOW THE DIGITT; !3$: CMP R5,MN1 ;MINUTE DIGIT OK?L BEQ 4$ ;OK, DON'T CHANGE ITW MOV R5,R4 ;SET UP PARAMETER; MOV R4,MN1 ;UPDATE MEMORY,$ MOV #COMN1,R2 ;SET UP COLUMN NUMBER JSR PC,CHAR ;SHOW THIS ONE;; UPDATE SECONDS;H24$: GTIM$S #TBUF ;FRESH TIME FOR SECONDS ACCURACY MOV TBUF+12,R5 ;GET SECONDS CLR R4 ;DUBBLE PRECISE& DIV #10.,R4 ;TENS IN R4, UNITS IN R5 BIT #1,R5 ;EVEN SECOND BEQ 11$ ;BR IF YES MOV #40,R4 ;FLASH THE COLONR MOV R4,R5 BR 12$E"11$: ADD #'0,R4 ;CONVERT TO ASCII ADD #'0,R5 ;CONVERT TO ASCII12$: FILL #S101,R4 FILL #S102,R4 FILL #S103,R4;T FILL #S11,R5 FILL #S12,R5P FILL #S13,R5M;## TTYOUT #COLON,#COLEN ;DO THE COLONP* TTYOUT #HOME,#HOMEL ;PUT CURSOR BACK HOME;H;WAIT FOR A WHILE ;E- WTSE$S #2 ;WAIT FOR PREVIOUSLY DECLARED ASTG;S JMP LOOP ;THEN GO AGAINE .PAGE$ .SBTTL CHAR - DISPLAY ONE CHARACTER;T; CHAR - DISPLAY ONE CHARACTER; ; INPUTS:V1; R2 - COLUMN NUMBER OF FIRST COLUMN OF CHARACTER1%; R4 - DIGIT TO DISPLAY IN RANGE 0-9.#;R; OUTPUTS: NONEC;CHAR: ENTER R0,R1,R2,R3,R4,R5,* MOVB CHTB(R4),R1 ;SET UP CHARACTER TO USE ASL R4 ;CONVERT TO WORDS! MOV MPTB(R4),R0 ;GET MAP ADDRESSO P;T(; MOVE TO UPPER LEFT CORNER OF CHARACTER; ADD #40,R2 ;SET COLUMN ADDRESS MOVB R2,COLM ;PUT INTO COMMAND$ MOVB R2,COLM2 ;AND NEW LINE COMMAND.6$: MOVB #DIGTOP,LINE ;SET UP TOP LINE ADDRESS$ MOVB #DIGTOP,LINE2 ;FOR NEWLIN ALSO# TTYOUT #MOVIT,#4 ;SEND THE COMMANDS;O; MAIN CHARACTER LOOP4;D. MOV #DIGLIN,R3 ;NUMBER OF LINES PER CHARACTER";4$: MOV (R0),R4 ;ONE ROW OF BITS#; COM (R0)+ ;PREPARE FOR NEXT PASSC&4$: MOV (R0)+,R4 ;GET NEXT ROW OF BITS& MOV #BITS,R5 ;NUMBER OF BITS PER LINE) MOV #LINBUF,R2 ;ADDRESS OF OUTPUT BUFFERR; ; LINE LOOP ;E3$: ROL R4 ;GET THE NEXT BIT  BCC 1$ ;CLEAR => DON'T WRITE' MOVB R1,(R2)+ ;SET => INSERT CHARACTERP BR 2$ ;EXITO;I%1$: MOVB #40,(R2)+ ;USE ERASING SPACEW; 2$: SOB R5,3$ ;T; LINE READY TO SEND;O, SUB #LINBUF,R2 ;GET LENGTH OF STUFF TO SEND+ TTYOUT #LINBUF,R2 ;SEND ONE CHARACTER LINE,; ; MOVE TO NEXT LINE OF CHARACTER;R INCB LINE2 ;SET ONE LINE DOWN4% TTYOUT #NXTLIN,#NXTLEN ;SEND COMMANDN;E SOB R3,4$ ;END OF PASS;B#; CMPB R1,#40 ;END OF SECOND PASS?; BEQ 5$ ;YES, LEAVEO;42; PASS 2 REPLACES ALL OTHER CHARACTERS WITH BLANKSB;REESE MODIFICATION USED SPACES INSTEAD OF BLANKS SO NO NEED TO DO;B; MOV #40,R1 ;SET UP BLANKW%; SUB #MAPSIZ,R0 ;RESTORE MAP POINTERT; JMP 6$ 00rpswerf-TADATADATA;AND DO IT AGAIN;T 5$: LEAVES RTS PCE .PAGE .SBTTL BUFFERS, ETC.E;A-;ERASE SCREEN BY HOME, ERASE TO END OF SCREENT;ERASE: .BYTE ESC .ASCII /H/D .BYTE ESC .ASCII /J/TERASEL=.-ERASE;); DIRECT CURSOR ADDRESSING COMMAND BUFFER,; MOVIT: .BYTE ESC .ASCII /Y/$LINE: .BYTE 40 ;40 IS TOP LINE!COLM: .BYTE 40 ;40 IS LEFT COLUMNN;HOME: .BYTE ESCO .ASCII ?H? HOMEL=.-HOMEK; NEW LINE COMMAND STRINGO;4NXTLIN: .BYTE LF,ESC .ASCII /Y/,LINE2: .BYTE 100 #COLM2: .BYTE 0 ;SET UP AT RUN TIMENXTLEN=.-NXTLINP;&; SET VT100 OR EQUIVALENT TO VT52 MODESVT52: .BYTE ESC,133,77,62,154SVT52L=.-SVT52;S9; RESET TO VT100 ON EXIT ADDED TELEVIDEO SEQ 4-MAR-85 HWGL.SV100: .BYTE ESC,74,ESC,133,66,63,73,61,42,160SV100L=.-SV100;:; INSTRUCTIONS TO DRAW A COLON;TCOLON: .BYTE ESC .ASCII /Y/T .BYTE DIGTOP+6C .BYTE COLCOLES101: .ASCII /:::/ .BYTE LF,BS,BS,BSS102: .ASCII /:::/ .BYTE LF,BS,BS,BSS103: .ASCII /:::/ .BYTE LF,LF,LF,BS,BS,BSS11: .ASCII /:::/0 .BYTE LF,BS,BS,BSS12: .ASCII /:::/P .BYTE LF,BS,BS,BSS13: .ASCII /:::/ COLEN=.-COLONY;E; OUTPUT LINE BUFFER;.&LINBUF: .BYTE 0 ;NULL FOR GOOD MEASURE5 .BLKB BITS*4 ;COULD BE AS MANY AS FOUR BYTES PER BIT,;, .EVENTBUF: .BLKW 8.;. HR10: .WORD 0N HR1: .WORD 0 MN10: .WORD 0T MN1: .WORD 0;C; TABLES;TCHTB: .ASCII /0123456789/C=MPTB: .WORD MAP0,MAP1,MAP2,MAP3,MAP4,MAP5,MAP6,MAP7,MAP8,MAP9:; .PAGE .SBTTL BIT MAPS .NLIST BEX .EVEN;F ; CHARACTER 01;.)MAP0: .WORD 03760,17774,30006,60003,60003I$ .WORD 60003,60003,60003,60003,60003$ .WORD 60003,60003,60003,60003,60003$ .WORD 60003,60003,30006,17774,03760; )MAP1: .WORD 00300,00700,01700,03700,00300S$ .WORD 00300,00300,00300,00300,00300$ .WORD 00300,00300,00300,00300,00300$ .WORD 00300,00300,00300,07776,07776;D)MAP2: .WORD 03760,17774,30006,60003,000037$ .WORD 00003,00003,00006,00014,00030$ .WORD 00060,00140,00300,00600,01400$ .WORD 03000,06000,14000,37777,77777;V)MAP3: .WORD 03760,17774,30006,60003,000036$ .WORD 00003,00003,00003,00006,00774$ .WORD 00774,00006,00003,00003,00003$ .WORD 00003,60003,30006,17774,03760;6)MAP4: .WORD 00030,00070,00170,00330,006300$ .WORD 01430,03030,06030,14030,30030$ .WORD 77777,77777,00030,00030,00030$ .WORD 00030,00030,00030,00030,00030;0)MAP5: .WORD 77777,77777,60000,60000,600006$ .WORD 60000,60000,77000,37740,00770$ .WORD 00014,00006,00003,00003,00003$ .WORD 00003,60003,30006,17774,03760)MAP6: .WORD 03760,17774,30006,60003,60000 $ .WORD 60000,60000,60000,60000,63760$ .WORD 77774,70006,60003,60003,60003$ .WORD 60003,60003,30006,17774,03760)MAP7: .WORD 77777,77777,00003,00003,00003W$ .WORD 00006,00014,00030,00060,00140$ .WORD 00300,00600,01400,03000,06000$ .WORD 14000,30000,60000,60000,60000)MAP8: .WORD 03760,17774,30006,60003,600035$ .WORD 60003,60003,60003,30006,17774$ .WORD 17774,30006,60003,60003,60003$ .WORD 60003,60003,30006,17774,03760)MAP9: .WORD 03760,17774,30006,60003,600036$ .WORD 60003,60003,60003,30007,17777$ .WORD 03763,00003,00003,00003,00003$ .WORD 00003,60003,30006,17774,03760;.MAPSIZ=MAP1-MAP0 .END START760)MAP7: .WORD 77777,77777,00003,00003,00003W$ .WORD 00006,00014,00030,00060,00140$ .WORD 00300,00600,01400,03000,06000$ .WORD 14000,30000,60000,60000,60000)MAP8: .WORD 03760,17774,30006,60003,600035$ .WORD 60003,60003,60003,30006,17774$ .WORD 17774,30006,60003,60003,60003$ .WORD 60003,60003,30006,17774,03760)MAP9: .WORD 03760,17774,30006,60003,600036$ .WORD 60003,60003,60003,30007,17777$ .WORD 03763,00003,000[11,1]CLV/MU/-CP/-FP=CLOCKV/ TASK=...CLVSTACK=32PRI=150//00txu}..64; ; GET.MAC;>; A SUBROUTINE THAT WILL ALLOW ONE TO GET CHARACTERS AND ALSO?; USE THE LEFT AND RIGHT ARROW ON A HAZELTINE TERMINAL. THUS,=; ONE CAN CHANGE A CHARACTER THAT WAS ENTERED AS LONG AS THE$; CARRIAGE RETURN HAS NOT BEEN HIT.;3; CALL THE SUBROUTINE USING THE FOLLOWING COMMAND:6; CALL GET(ARRAY,[MAXIMUM NO. OF CHARACTERS ALLOWED]); .MCALL QIOW$C,EXIT$S,QIOW$S .TITLE GETSTR ; GET STRING .GLOBL GETSTR3GETSTR: MOV 2(R5),R3 ; GET THE ADDRESS OF THE ARRAY CLR R4% TST 4(R5) ; IS THERE A 2ND ARGUMENT  BLT LOOP ; NO THERE ISN'TA MOV R3,R44 ADD @4(R5),R4 ; THIS IS ADDRESS FOR RIGHT MOST CHARALOOP: QIOW$C IO.RAL!TF.RNE,5,1,,,, ; GET A CHAR, NO ECHOE MOVB BUF,R1& BIC #177600,R1 ; CLEAR THE PARITY BIT( CMPB R1,#10 ; IS THIS THE LEFT ARROW ? BEQ LEFT ; YES( CMPB R1,#20 ; IS THIS THE RIGHT ARROW? BEQ RITE ; YES* CMPB R1,#15 ; IS THIS A CARRIAGE RETURN?) BEQ DONE ; IF SO, GET OUT OF SUBROUTINE5' CMPB R1,#177 ; IS THIS THE DELETE KEYR BEQ DELET;)=; THIS IS NOT AN ARROW, A CARRIAGE RETURN, OR THE DELETE KEYV;,& CMP R3,R4 ; ARE WE AT THE RIGHT END?" BEQ LOOP ; IF SO, DON'T PRINT IT& MOVB R1,(R3) ; ACCEPT THIS CHARACTER4 INC R3 ; ALSO, INCREMENT ADDRESS FOR NEXT CHARACTER CALL PRINTP BR LOOP'LEFT: CMP R3,2(R5) ; ARE WE AT LEFT ENDY BEQ LOOP ; YES DEC R3 ; DECREMENT ADDRESS CALL PRINTS BR LOOP'RITE: CMP R3,R4 ; ARE WE AT RIGHT END?D BEQ LOOP ; YES.U INC R3 ; INCREMENT ADDRESS CALL PRINTT BR LOOP(DELET: CMP R3,2(R5) ; ARE WE AT LEFT END BEQ LOOP ; YES.U, MOVB #10,BUF ; MOVE CURSOR ONE TO THE LEFT CALL PRINTH# DEC R3 ; BACK UP ONE IN THE ARRAYN) MOVB #40,(R3) ; PUT A SPACE IN THE ARRAYR* MOVB #40,BUF ; PUT A SPACE ON THE SCREEN CALL PRINTC& MOVB #10,BUF ; CURSOR MOVED TO RIGHT' CALL PRINT ; SO MOVE BACK TO THE LEFT BR LOOP9PRINT: QIOW$C IO.WAL,5,1,,,, ; WRITE THE CHARACTER  RETURN DONE: CALL PRINT ; PRINT THE CR RETURN ; ALL FINNISHEDE;; DATA SECTION ;P BUF: .BYTE .EVEN .END WE AT LEFT END BEQ LOOP ; YES.U, MOVB #10,BUF ; MOVE CURSOR ONE TO THE LEFT CALL PRINTH# DEC R3 ; BACK UP ONE IN THE ARRAYN) MOVB #40,(R3) ; PUT A SPACE IN THE ARRAYR* MOVB #40,BUF ; PUT A SPACE ON THE SCREEN CALL PRINTC& MOVB #10,BUF ; CURSOR MOVED TO RIGHT' CALL PRINT ; SO MOVE BACK TO THE LEFT BR LOOP9PRINT: QIOW$C IO.WAL,5,1,,,, ; WRITE THE CHARACTER  RETURN DONE: CALL PRINT ; PRINT THE CR RETURN ; ALL FINNISHEDE;; DATA SECTION ;P BUF: . .TITLE GETSYS .IDENT /V2.0/;; ROBERT WATSON ; CISCO, INC.; (918)665-2110; 4135 S. 100TH E. AVE.; TULSA OK 74145;(; MODIFIED BY F.BORGER ALSO SAVE TI INFO;;4; THIS PROGRAM HAS BEEN DONATED TO THE PUBLIC DOMAIN; AND IS NOT TO BE COPYRIGHTED.; .PSECT GETSYS5GETSYS::MOV 2(R5),ATLBUF ;ADDR OF ATL TASKNAME BUFFER. MOV 4(R5),MRLBUF ;ADDR OF MRL TASKNAME BUFFER+ CLR ATLCTR ;REINITIALIZE ATL TASK COUNTER+ CLR MRLCTR ;REINITIALIZE MRL TASK COUNTER" MOV #.ATLLH,R0 ;GET LISTHEAD ADDR. MOV PS.EXP,-(SP) ;PUSH CURRENT PSW ONTO STACK) BIS #140,PS.EXP ;;INHIBIT TASK SWITCHING "SCAN: MOV (R0),R0 ;;GET NEXT NODE) CMP R0,.ATLLH+2 ;;AT REAL-TIME NULL JOB? BEQ DONE ;;YES IF EQ& MOV A.TI(R0),R1 ;GET TI PUD FOR LATER MOV A.TD(R0),R3 ;;GET STD ADDRS1 BEQ SCAN ;;IF EQ THEN .T1ATL, .T2ATL, OR .TNATLA1 CMPB A.TS(R0),#TS.MRL ;;A MEMORY REQUIRED STATE?N BEQ MRL ;;YES IF EQ 1 CMPB A.TS(R0),#TS.MRR ;;A MEMORY REQUIRED STATE?N BEQ MRL ;;YES IF EQE1 CMPB A.TS(R0),#TS.MRE ;;A MEMORY REQUIRED STATE?, BEQ MRL ;;YES IF EQ : BIT #AF.CP,A.TF(R0) ;;OR A REAL-TIME CHECK-POINTED TASK ? BEQ ATL ;;BR IF ON ATL&MRL: CMP MRLCTR,#30. ;;ROOM IN BUFFER? BGE DONE ;;NO IF GEY# INC MRLCTR ;;ADD THIS TASK TO CTRD5 MOV S.TN+0(R3),@MRLBUF ;;STORE 1ST HALF OF TASK NAME ADD #2,MRLBUF ;;INC BUFFER ADDR5 MOV S.TN+2(R3),@MRLBUF ;;STORE 2ND HALF OF TASK NAMEE ADD #2,MRLBUF ;;INC BUFFER ADDR$ MOV U.DN(R1),@MRLBUF ;STORE TI NAME ADD #2,MRLBUF* MOVB U.UN(R1),@MRLBUF ;SAVE DEVICE 00uvwxy-TADATADATANUMBER ADD #2,MRLBUF! BR SCAN ;;GO BACK FOR NEXT NODET&ATL: CMP ATLCTR,#50. ;;ROOM IN BUFFER? BGE DONE ;;NO IF GEL# INC ATLCTR ;;ADD THIS TASK TO CTR.5 MOV S.TN+0(R3),@ATLBUF ;;STORE 1ST HALF OF TASK NAME ADD #2,ATLBUF ;;INC BUFFER ADDR5 MOV S.TN+2(R3),@ATLBUF ;;STORE 2ND HALF OF TASK NAME, ADD #2,ATLBUF ;;INC BUFFER ADDR$ MOV U.DN(R1),@ATLBUF ;STORE TI NAME ADD #2,ATLBUF* MOVB U.UN(R1),@ATLBUF ;SAVE DEVICE NUMBER ADD #2,ATLBUF! BR SCAN ;;GO BACK FOR NEXT NODE)*DONE: JSR PC,..ENB0 ;ENABLE TASK SWITCHING! MOV #-1,@ATLBUF ;MARK END OF ATLT! MOV #-1,@MRLBUF ;MARK END OF MRLF RTS PC ;RETURN TO CALLERATLBUF: .WORD 0AMRLBUF: .WORD 0TATLCTR: .WORD 03MRLCTR: .WORD 0  .ENDF OF TASK NAME ADD #2,ATLBUF ;;INC BUFFER ADDR5 MOV S.TN+2(R3),@ATLBUF ;;STORE 2ND HALF OF TASK NAME, ADD #2,ATLBUF ;;INC BUFFER ADDR$ MOV U.DN(R1),@ATLBUF ;STORE TI NAME ADD #2,ATLBUF* MOVB U.UN(R1),@ATLBUF ;SAVE DEVICE NUMBER ADD #2,ATLBUF! BR SCAN ;;GO BACK FOR NEXT NODE)*DONE: JSR PC,..ENB0 *,zLL@@ @* %@ @8@ v@g#@4{W@*T@T@"T@W@W@*e82e4{W$4{W*,&e e  WW$eW@eW@(,z(,zh  ,z*ww7 7 U`7 ; RE-WRITTEN JUL 82 IN A WEEK MOMENT TO RUN BACKWARDS F.BORGER;/ .MCALL QIO$S,GTIM$S,MRKT$S,WTSE$S,QIOW$,EXIT$S' .MCALL QIOW$S,ENTER,LEAVE,GMCR$,ASTX$S;/ESC=33 ;ESCAPE CODE USED TO SIGNAL VT52 COMMANDLF=12 ;LINE FEED CODEBS=10 ;BACKSPACE CODECURSR=103 ;CURSOR RIGHT COMMANDCURSL=104 ;CURSOR LEFT COMMANDCURSU=101 ;CURSOR UP COMMANDCURSD=102 ;CURSOR DOWN COMMAND;D&DIGTOP=41 ;CODE FOR TOP LINE OF DIGITS&DIGLIN=20. ;NUMBER OF LINES IN A DIGIT&BITS=16. ;NUMBER OF COLUMNS IN A DIGIT;WCOHR10=2 COHR1=20.E COLCOL=40.+40 COMN10=44. COMN1=62.;C9IO.WVB=410 ;NEED TO USE WRITE/PASS ALL FOR CURSOR CONTROLS;T .MACRO FILL ADDR,CHAR MOV ADDR,R3 ;GET ADDRESS MOVB CHAR,(R3)+ MOVB CHAR,(R3)+ MOVB CHAR,(R3)+ .ENDM;A;C .MACRO TTYOUT ADDR,COUNTH MOV ADDR,OUTDPB+Q.IOPLR MOV COUNT,OUTDPB+Q.IOPL+2 DIR$ #OUTDPBA .ENDM;0#OUTDPB: QIOW$ IO.WVB,5,1,,,,<0,0,0> #ATADPB: QIOW$ IO.ATA,5,1,,,,2DETDPB: QIOW$ IO.DET,5,1,,,, GETMCR: GMCR$BASTFLA: .WORD 0A;G-CCAST: ;CODE FOR CONTROL C SEEN WHILE RUNNINGO INC ASTFLA ;SHOW IT HAPPENED ASTX$S ;EXIT THE ASTA;A;FSTART: DIR$ #GETMCRT DIR$ #ATADPBA;,; INITIALIZE STORAGE;A' MOV #-1,HR10 ;FORCE DISPLAY FIRST TIME+ MOV #-1,HR1 MOV #-1,MN10A MOV #-1,MN1;O( TTYOUT #ERASE,#ERASEL ;ERASE THE SCREEN;VLOOP: TST ASTFLA ;SEEN A ^C ?O BEQ 111$N+ TTYOUT #ERASE,#ERASEL ;ERASE SCREEN & HOME DIR$ #DETDPB ;DETACH SCOPE EXIT$S ;AND SCRAM111$:54 ;DO THE MARK TIME NOW SO IO TIME DOESN'T CAUSE US ;TO SLIP IN TIMEE( MRKT$S #2,#1,#2 ;SET UP ONE SECOND WAIT# GTIM$S #TBUF ;GET TIME FROM SYSTEM;G;MAKE THE TIME AS HRS:MIN:SEC TO END OF DAY, NOT HRS:MIN:SEC FROM START#9;OF DAY SO CLOCK RUNS BACKWARDS AND EVERYBODY IS CONFUSEDM;A MOV TBUF+12,R5 ;GET SECONDS BNE 1111$1 SUB #1,TBUF+10 ;FOR EVEN SECONDS, DIDDLE MINUTES BR 1112$1 1111$: NEG R5A$ ADD #59.,R5 ;AND SUBTRACT FROM 59. MOV R5,TBUF+12 ;REPLACE SECONDS*1112$: MOV TBUF+10,R5 ;DO SAME FOR MINUTES BNE 1113$. SUB #1,TBUF+6 ;FOR EVEN HOURS, DIDDLE MINUTES BR 1114$; 1113$: NEG R5N ADD #59.,R5 MOV R5,TBUF+10 ;REPLACE MINUTES"1114$: MOV TBUF+6,R5 ;AND DO HOURS NEG R5, ADD #23.,R5 MOV R5,TBUF+6 ;AND REPLACEO!; NOW REST OF PROGRAM IS THE SAMEC MOV TBUF+6,R5 ;GET HOURSR CLR R4 ;DOUBLE PRECISION+ DIV #10.,R4 ;TENS DIGIT IN R4, ONES IN R5U;  CMP R4,HR10 ;TENS DIGIT OK?A BEQ 1$ ;YES, SKIP THIS STUFF MOV R4,HR10 ;UPDATE MEMORY% MOV #COHR10,R2 ;SET UP COLUMN NUMBERF JSR PC,CHAR ;DISPLAY ITB;,(1$: CMP R5,HR1 ;HOW IS THE UNITS DIGIT? BEQ 2$ ;OK, DON'T CHANGE IT# MOV R5,R4 MOV R4,HR1 ;UPDATE MEMORY$ MOV #COHR1,R2 ;SET UP COLUMN NUMBER JSR PC,CHAR ;SHOW THIS ONE;F2$: MOV TBUF+10,R5 ;GET MINUTE CLR R4 ;DOUBLE PRECISION* DIV #10.,R4 ;TENS DIG IN R4, UNITS IN R5;N CMP R4,MN10 ;TENS DIGIT OK?R BEQ 3$ ;OK, DON'T CHANGE IT0 MOV R4,MN10 ;UPDATE MEMORY% MOV #COMN10,R2 ;SET UP COLUMN NUMBERD JSR PC,CHAR ;SHOW THE DIGITT; !3$: CMP R5,MN1 ;MINUTE DIGIT OK?L BEQ 4$ ;OK, DON'T CHANGE ITW MOV R5,R4 ;SET UP PARAMETER; MOV R4,MN1 ;UPDATE MEMORY,$ MOV #COMN1,R2 ;SET UP COLUMN NUMBER JSR PC,CHAR ;SHOW THIS ONE;; UPDATE SECONDS;H3;4$: GTIM$S #TBUF ;FRESH TIME FOR SECONDS ACCURACY;4$:E MOV TBUF+12,R5 ;GET SECONDS CLR R4 ;DUBBLE PRECISE& DIV #10.,R4 ;TENS IN R4, UNITS IN R5 BIT #1,R5 ;EVEN SECOND BEQ 11$ ;BR IF YES MOV #40,R4 ;FLASH THE COLONU MOV R4,R5 BR 12$R"11$: ADD #'0,R4 ;CONVERT TO ASCII ADD #'0,R5 ;CONVERT TO ASCII12$: FILL #S101,R4 FILL #S102,R4 FILL #S103,R4;A FILL #S11,R5, FILL #S12,R5M FILL #S13,R5N;2# TTYOUT #COLON,#COLEN ;DO THE COLON * TTYOUT #HOME,#HOMEL ;PUT CURSOR BACK HOME;G;WAIT FOR A WHILE ;E- WTSE$S #2 ;WAIT FOR PREVIOUSLY DECLARED ASTG;S JMP LOOP ;THEN GO AGAINE .PAGE$ .SBTTL CHAR - DISPLAY ONE00zwxy-TADATADATA CHARACTER;T; CHAR - DISPLAY ONE CHARACTER; ; INPUTS:V1; R2 - COLUMN NUMBER OF FIRST COLUMN OF CHARACTER1%; R4 - DIGIT TO DISPLAY IN RANGE 0-9.#;R; OUTPUTS: NONEC;CHAR: ENTER R0,R1,R2,R3,R4,R5,* MOVB CHTB(R4),R1 ;SET UP CHARACTER TO USE ASL R4 ;CONVERT TO WORDS! MOV MPTB(R4),R0 ;GET MAP ADDRESSO ;T(; MOVE TO UPPER LEFT CORNER OF CHARACTER; ADD #40,R2 ;SET COLUMN ADDRESS MOVB R2,COLM ;PUT INTO COMMAND$ MOVB R2,COLM2 ;AND NEW LINE COMMAND.6$: MOVB #DIGTOP,LINE ;SET UP TOP LINE ADDRESS$ MOVB #DIGTOP,LINE2 ;FOR NEWLIN ALSO# TTYOUT #MOVIT,#4 ;SEND THE COMMANDS;O; MAIN CHARACTER LOOP4;D. MOV #DIGLIN,R3 ;NUMBER OF LINES PER CHARACTER";4$: MOV (R0),R4 ;ONE ROW OF BITS#; COM (R0)+ ;PREPARE FOR NEXT PASSC&4$: MOV (R0)+,R4 ;GET NEXT ROW OF BITS& MOV #BITS,R5 ;NUMBER OF BITS PER LINE) MOV #LINBUF,R2 ;ADDRESS OF OUTPUT BUFFERR; ; LINE LOOP ;E3$: ROL R4 ;GET THE NEXT BIT  BCC 1$ ;CLEAR => DON'T WRITE' MOVB R1,(R2)+ ;SET => INSERT CHARACTERP BR 2$ ;EXITO;I%1$: MOVB #40,(R2)+ ;USE ERASING SPACEW; 2$: SOB R5,3$ ;T; LINE READY TO SEND;O, SUB #LINBUF,R2 ;GET LENGTH OF STUFF TO SEND+ TTYOUT #LINBUF,R2 ;SEND ONE CHARACTER LINE,; ; MOVE TO NEXT LINE OF CHARACTER;R INCB LINE2 ;SET ONE LINE DOWN4% TTYOUT #NXTLIN,#NXTLEN ;SEND COMMANDN;E SOB R3,4$ ;END OF PASS;B#; CMPB R1,#40 ;END OF SECOND PASS?; BEQ 5$ ;YES, LEAVEO;42; PASS 2 REPLACES ALL OTHER CHARACTERS WITH BLANKSB;REESE MODIFICATION USED SPACES INSTEAD OF BLANKS SO NO NEED TO DO;B; MOV #40,R1 ;SET UP BLANKW%; SUB #MAPSIZ,R0 ;RESTORE MAP POINTERT; JMP 6$ ;AND DO IT AGAIN;T 5$: LEAVES RTS PCE .PAGE .SBTTL BUFFERS, ETC.E;A-;ERASE SCREEN BY HOME, ERASE TO END OF SCREENT;ERASE: .BYTE ESC .ASCII /*/DERASEL=.-ERASE;I); DIRECT CURSOR ADDRESSING COMMAND BUFFERE;OMOVIT: .BYTE ESC .ASCII /=/ LINE: .BYTE 40 ;40 IS TOP LINE!COLM: .BYTE 40 ;40 IS LEFT COLUMN ;EHOME: .BYTE ESC .ASCII ?= ?M HOMEL=.-HOMED; NEW LINE COMMAND STRINGO; NXTLIN: .BYTE LF,ESC .ASCII /=/ULINE2: .BYTE 100 #COLM2: .BYTE 0 ;SET UP AT RUN TIME$NXTLEN=.-NXTLINN;T; INSTRUCTIONS TO DRAW A COLON;BCOLON: .BYTE ESC .ASCII /=/S .BYTE DIGTOP+6A .BYTE COLCOLRS101: .ASCII /:::/ .BYTE LF,BS,BS,BSS102: .ASCII /:::/ .BYTE LF,BS,BS,BSS103: .ASCII /:::/ .BYTE LF,LF,LF,BS,BS,BSS11: .ASCII /:::/E .BYTE LF,BS,BS,BSS12: .ASCII /:::/  .BYTE LF,BS,BS,BSS13: .ASCII /:::/ COLEN=.-COLON=;M; OUTPUT LINE BUFFER;I&LINBUF: .BYTE 0 ;NULL FOR GOOD MEASURE5 .BLKB BITS*4 ;COULD BE AS MANY AS FOUR BYTES PER BIT ;T .EVENTBUF: .BLKW 8.;N HR10: .WORD 0N HR1: .WORD 0 MN10: .WORD 0B MN1: .WORD 0;C; TABLES;SCHTB: .ASCII /0123456789/C=MPTB: .WORD MAP0,MAP1,MAP2,MAP3,MAP4,MAP5,MAP6,MAP7,MAP8,MAP9:; .PAGE .SBTTL BIT MAPS .NLIST BEX .EVEN;F ; CHARACTER 01;.)MAP0: .WORD 03760,17774,30006,60003,60003I$ .WORD 60003,60003,60003,60003,60003$ .WORD 60003,60003,60003,60003,60003$ .WORD 60003,60003,30006,17774,03760; )MAP1: .WORD 00300,00700,01700,03700,00300S$ .WORD 00300,00300,00300,00300,00300$ .WORD 00300,00300,00300,00300,00300$ .WORD 00300,00300,00300,07776,07776;D)MAP2: .WORD 03760,17774,30006,60003,000037$ .WORD 00003,00003,00006,00014,00030$ .WORD 00060,00140,00300,00600,01400$ .WORD 03000,06000,14000,37777,77777;V)MAP3: .WORD 03760,17774,30006,60003,000036$ .WORD 00003,00003,00003,00006,00774$ .WORD 00774,00006,00003,00003,00003$ .WORD 00003,60003,30006,17774,03760;6)MAP4: .WORD 00030,00070,00170,00330,006300$ .WORD 01430,03030,06030,14030,30030$ .WORD 77777,77777,00030,00030,00030$ .WORD 00030,00030,00030,00030,00030;0)MAP5: .WORD 77777,77777,60000,60000,600006$ .WORD 60000,60000,77000,37740,00770$ .WORD 00014,00006,00003,00003,00003$ .WORD 00003,60003,30006,17774,03760)MAP6: .WORD 03760,17774,30006,60003,60000 $ .WORD 60000,60000,60000,60000,63760$ .WORD 77774,70006,60003,60003,60003$ .WORD 60003,60003,30006,17774,03760)MAP7: .WORD 77777,77777,00003,00003,00003W$ .WORD 00000z{|}6406,00014,00030,00060,00140$ .WORD 00300,00600,01400,03000,06000$ .WORD 14000,30000,60000,60000,60000)MAP8: .WORD 03760,17774,30006,60003,600035$ .WORD 60003,60003,60003,30006,17774$ .WORD 17774,30006,60003,60003,60003$ .WORD 60003,60003,30006,17774,03760)MAP9: .WORD 03760,17774,30006,60003,600036$ .WORD 60003,60003,60003,30007,17777$ .WORD 03763,00003,00003,00003,00003$ .WORD 00003,60003,30006,17774,03760;.MAPSIZ=MAP1-MAP0 .END START760)MAP7: .WORD 77777,77777,00003,00003,00003W$ .WORD 000*ÌL:a @:@(x(x( x* :a "&: &)~*~ s, ,*XT (*@< 3&   *@=D: e;@*w0*  e;w e*<w s 7!7 w!*bD7  s 7!7,* w!D7>  s 5* e0e0 "*SSSSSSSS$*S ,&* )w&f&fX be  X&b*F }!r!u (*lD Rҕ G$(*xv/d`~ "**= = =@='H::: &::: ::: ::: ::: :::P*P0123456789v>f*v >"f$&(*v0``````````````0**0` 0` *?0`*`08x 0*4`````~? *Z`00``````gp`*````0 0`* 0```0`````0*0`````00`````0`0v >"f$&(*v0``````````````0**0` 0` *?0`*`08x 0*4`````~? *Z`00``````gp`*````0 0`* 0```[11,1]OLC/MU/-CP/-FP=KCOLC/ TASK=...OLCSTACK=32PRI=150// .PSECT CLOCK .TITLE VT52 CLOCK DISPLAY;E; THIS PROGRAM DISPLAYS A DIGITAL CLOCK ON THE FACE OF A VT52 DISPLAY; ; WRITTEN BY:#; MARK JOHNSON, SEPTEMBER 22, 1977.;>; RE-WRITTEN JUL 82 IN A WEEK MOMENT TO RUN BACKWARDS F.BORGER;/ .MCALL QIO$S,GTIM$S,MRKT$S,WTSE$S,QIOW$,EXIT$S' .MCALL QIOW$S,ENTER,LEAVE,GMCR$,ASTX$S;/ESC=33 ;ESCAPE CODE USED TO SIGNAL VT52 COMMANDLF=12 ;LINE FEED CODEBS=10 ;BACKSPACE CODECURSR=103 ;CURSOR RIGHT COMMANDCURSL=104 ;CURSOR LEFT COMMANDCURSU=101 ;CURSOR UP COMMANDCURSD=102 ;CURSOR DOWN COMMAND;D&DIGTOP=41 ;CODE FOR TOP LINE OF DIGITS&DIGLIN=20. ;NUMBER OF LINES IN A DIGIT&BITS=16. ;NUMBER OF COLUMNS IN A DIGIT;WCOHR10=2 COHR1=20.E COLCOL=40.+40 COMN10=44. COMN1=62.;C9IO.WVB=410 ;NEED TO USE WRITE/PASS ALL FOR CURSOR CONTROLS;T .MACRO FILL ADDR,CHAR MOV ADDR,R3 ;GET ADDRESS MOVB CHAR,(R3)+ MOVB CHAR,(R3)+ MOVB CHAR,(R3)+ .ENDM;A;C .MACRO TTYOUT ADDR,COUNTH MOV ADDR,OUTDPB+Q.IOPLR MOV COUNT,OUT00}wxy-TADATADATADPB+Q.IOPL+2 DIR$ #OUTDPBA .ENDM;0#OUTDPB: QIOW$ IO.WVB,5,1,,,,<0,0,0> #ATADPB: QIOW$ IO.ATA,5,1,,,,2DETDPB: QIOW$ IO.DET,5,1,,,, GETMCR: GMCR$BASTFLA: .WORD 0A;G-CCAST: ;CODE FOR CONTROL C SEEN WHILE RUNNINGO INC ASTFLA ;SHOW IT HAPPENED ASTX$S ;EXIT THE ASTA;A;FSTART: DIR$ #GETMCRT DIR$ #ATADPBA;,; INITIALIZE STORAGE;AE TTYOUT #SVT52,#SVT52L ;SET VT100 TO VT52 (EASIER THAN CHANGING PROG)A' MOV #-1,HR10 ;FORCE DISPLAY FIRST TIMED MOV #-1,HR1 MOV #-1,MN10O MOV #-1,MN1;D( TTYOUT #ERASE,#ERASEL ;ERASE THE SCREEN;BLOOP: TST ASTFLA ;SEEN A ^C ? BEQ 111$,+ TTYOUT #ERASE,#ERASEL ;ERASE SCREEN & HOMEM+ TTYOUT #SV100,#SV100L ;RESET TO VT100 MODEE DIR$ #DETDPB ;DETACH SCOPE EXIT$S ;AND SCRAM111$:A4 ;DO THE MARK TIME NOW SO IO TIME DOESN'T CAUSE US ;TO SLIP IN TIMEP( MRKT$S #2,#1,#2 ;SET UP ONE SECOND WAIT# GTIM$S #TBUF ;GET TIME FROM SYSTEMS; G;MAKE THE TIME AS HRS:MIN:SEC TO END OF DAY, NOT HRS:MIN:SEC FROM STARTH9;OF DAY SO CLOCK RUNS BACKWARDS AND EVERYBODY IS CONFUSEDL;R MOV TBUF+12,R5 ;GET SECONDS BNE 1111$1 SUB #1,TBUF+10 ;FOR EVEN SECONDS, DIDDLE MINUTES BR 1112$M 1111$: NEG R51$ ADD #59.,R5 ;AND SUBTRACT FROM 59. MOV R5,TBUF+12 ;REPLACE SECONDS*1112$: MOV TBUF+10,R5 ;DO SAME FOR MINUTES BNE 1113$. SUB #1,TBUF+6 ;FOR EVEN HOURS, DIDDLE MINUTES BR 1114$; 1113$: NEG R5N ADD #59.,R5 MOV R5,TBUF+10 ;REPLACE MINUTES"1114$: MOV TBUF+6,R5 ;AND DO HOURS NEG R5, ADD #23.,R5 MOV R5,TBUF+6 ;AND REPLACEO!; NOW REST OF PROGRAM IS THE SAMEC MOV TBUF+6,R5 ;GET HOURSR CLR R4 ;DOUBLE PRECISION+ DIV #10.,R4 ;TENS DIGIT IN R4, ONES IN R5U;  CMP R4,HR10 ;TENS DIGIT OK?A BEQ 1$ ;YES, SKIP THIS STUFF MOV R4,HR10 ;UPDATE MEMORY% MOV #COHR10,R2 ;SET UP COLUMN NUMBERF JSR PC,CHAR ;DISPLAY ITB;,(1$: CMP R5,HR1 ;HOW IS THE UNITS DIGIT? BEQ 2$ ;OK, DON'T CHANGE IT# MOV R5,R4 MOV R4,HR1 ;UPDATE MEMORY$ MOV #COHR1,R2 ;SET UP COLUMN NUMBER JSR PC,CHAR ;SHOW THIS ONE;F2$: MOV TBUF+10,R5 ;GET MINUTE CLR R4 ;DOUBLE PRECISION* DIV #10.,R4 ;TENS DIG IN R4, UNITS IN R5;N CMP R4,MN10 ;TENS DIGIT OK?R BEQ 3$ ;OK, DON'T CHANGE IT0 MOV R4,MN10 ;UPDATE MEMORY% MOV #COMN10,R2 ;SET UP COLUMN NUMBERD JSR PC,CHAR ;SHOW THE DIGITT; !3$: CMP R5,MN1 ;MINUTE DIGIT OK?L BEQ 4$ ;OK, DON'T CHANGE ITW MOV R5,R4 ;SET UP PARAMETER; MOV R4,MN1 ;UPDATE MEMORY,$ MOV #COMN1,R2 ;SET UP COLUMN NUMBER JSR PC,CHAR ;SHOW THIS ONE;; UPDATE SECONDS;H3;4$: GTIM$S #TBUF ;FRESH TIME FOR SECONDS ACCURACY;4$:E MOV TBUF+12,R5 ;GET SECONDS CLR R4 ;DUBBLE PRECISE& DIV #10.,R4 ;TENS IN R4, UNITS IN R5 BIT #1,R5 ;EVEN SECOND BEQ 11$ ;BR IF YES MOV #40,R4 ;FLASH THE COLONU MOV R4,R5 BR 12$R"11$: ADD #'0,R4 ;CONVERT TO ASCII ADD #'0,R5 ;CONVERT TO ASCII12$: FILL #S101,R4 FILL #S102,R4 FILL #S103,R4;A FILL #S11,R5, FILL #S12,R5M FILL #S13,R5N;2# TTYOUT #COLON,#COLEN ;DO THE COLON * TTYOUT #HOME,#HOMEL ;PUT CURSOR BACK HOME;G;WAIT FOR A WHILE ;E- WTSE$S #2 ;WAIT FOR PREVIOUSLY DECLARED ASTG;S JMP LOOP ;THEN GO AGAINE .PAGE$ .SBTTL CHAR - DISPLAY ONE CHARACTER;T; CHAR - DISPLAY ONE CHARACTER; ; INPUTS:V1; R2 - COLUMN NUMBER OF FIRST COLUMN OF CHARACTER1%; R4 - DIGIT TO DISPLAY IN RANGE 0-9.#;R; OUTPUTS: NONEC;CHAR: ENTER R0,R1,R2,R3,R4,R5,* MOVB CHTB(R4),R1 ;SET UP CHARACTER TO USE ASL R4 ;CONVERT TO WORDS! MOV MPTB(R4),R0 ;GET MAP ADDRESSO ;T(; MOVE TO UPPER LEFT CORNER OF CHARACTER; ADD #40,R2 ;SET COLUMN ADDRESS MOVB R2,COLM ;PUT INTO COMMAND$ MOVB R2,COLM2 ;AND NEW LINE COMMAND.6$: MOVB #DIGTOP,LINE ;SET UP TOP LINE ADDRESS$ MOVB #DIGTOP,LINE2 ;FOR NEWLIN ALSO# TTYOUT #MOVIT,#4 ;SEND THE COMMANDS;O; MAIN CHARACTER LOOP4;D. MOV #DIGLIN,R3 ;NUMBER OF LINES PER CHARACTER";4$: MOV (R0),R4 ;ONE ROW OF BITS#; COM (R0)+ ;PREPARE FOR NEXT PASSC&4$: MOV (R0)+,R4 ;GET NEXT ROW OF BITS& MOV #BITS,R5 ;NUMBER OF BITS PER LINE) MOV #LINBUF,R2 ;ADDRESS OF OUTPUT BUFFERR; ; LINE LOOP ;E00}|}643$: ROL R4 ;GET THE NEXT BIT  BCC 1$ ;CLEAR => DON'T WRITE' MOVB R1,(R2)+ ;SET => INSERT CHARACTERP BR 2$ ;EXITO;I%1$: MOVB #40,(R2)+ ;USE ERASING SPACEW; 2$: SOB R5,3$ ;T; LINE READY TO SEND;O, SUB #LINBUF,R2 ;GET LENGTH OF STUFF TO SEND+ TTYOUT #LINBUF,R2 ;SEND ONE CHARACTER LINE,; ; MOVE TO NEXT LINE OF CHARACTER;R INCB LINE2 ;SET ONE LINE DOWN4% TTYOUT #NXTLIN,#NXTLEN ;SEND COMMANDN;E SOB R3,4$ ;END OF PASS;B#; CMPB R1,#40 ;END OF SECOND PASS?; BEQ 5$ ;YES, LEAVEO;42; PASS 2 REPLACES ALL OTHER CHARACTERS WITH BLANKSB;REESE MODIFICATION USED SPACES INSTEAD OF BLANKS SO NO NEED TO DO;B; MOV #40,R1 ;SET UP BLANKW%; SUB #MAPSIZ,R0 ;RESTORE MAP POINTERT; JMP 6$ ;AND DO IT AGAIN;T 5$: LEAVES RTS PCE .PAGE .SBTTL BUFFERS, ETC.E;A-;ERASE SCREEN BY HOME, ERASE TO END OF SCREENT;ERASE: .BYTE ESC .ASCII /H/D .BYTE ESC .ASCII /J/TERASEL=.-ERASE;); DIRECT CURSOR ADDRESSING COMMAND BUFFER,; MOVIT: .BYTE ESC .ASCII /Y/$LINE: .BYTE 40 ;40 IS TOP LINE!COLM: .BYTE 40 ;40 IS LEFT COLUMNN;HOME: .BYTE ESCO .ASCII ?H? HOMEL=.-HOMEK; NEW LINE COMMAND STRINGO;4NXTLIN: .BYTE LF,ESC .ASCII /Y/,LINE2: .BYTE 100 #COLM2: .BYTE 0 ;SET UP AT RUN TIMENXTLEN=.-NXTLINP;;SET VT100 TO VT52 MODEESVT52: .BYTE ESC,133,77,62,154SVT52L=.-SVT52;R<;RESET TO VT100 ON EXIT ADDED TELEVIDEO ESC SEQ 4-MAR-85 HWG;T-SV100: .BYTE ESC,74,33,133,66,63,73,61,42,160GSV100L=.-SV100; ; INSTRUCTIONS TO DRAW A COLON;ICOLON: .BYTE ESC .ASCII /Y/O .BYTE DIGTOP+6I .BYTE COLCOLS101: .ASCII /:::/ .BYTE LF,BS,BS,BSS102: .ASCII /:::/ .BYTE LF,BS,BS,BSS103: .ASCII /:::/ .BYTE LF,LF,LF,BS,BS,BSS11: .ASCII /:::/: .BYTE LF,BS,BS,BSS12: .ASCII /:::/. .BYTE LF,BS,BS,BSS13: .ASCII /:::/ COLEN=.-COLONC;3; OUTPUT LINE BUFFER;2&LINBUF: .BYTE 0 ;NULL FOR GOOD MEASURE5 .BLKB BITS*4 ;COULD BE AS MANY AS FOUR BYTES PER BIT1;6 .EVENTBUF: .BLKW 8.;. HR10: .WORD 0N HR1: .WORD 0 MN10: .WORD 0I MN1: .WORD 0;C; TABLES;OCHTB: .ASCII /0123456789/C=MPTB: .WORD MAP0,MAP1,MAP2,MAP3,MAP4,MAP5,MAP6,MAP7,MAP8,MAP9:; .PAGE .SBTTL BIT MAPS .NLIST BEX .EVEN;F ; CHARACTER 01;.)MAP0: .WORD 03760,17774,30006,60003,60003I$ .WORD 60003,60003,60003,60003,60003$ .WORD 60003,60003,60003,60003,60003$ .WORD 60003,60003,30006,17774,03760; )MAP1: .WORD 00300,00700,01700,03700,00300S$ .WORD 00300,00300,00300,00300,00300$ .WORD 00300,00300,00300,00300,00300$ .WORD 00300,00300,00300,07776,07776;D)MAP2: .WORD 03760,17774,30006,60003,000037$ .WORD 00003,00003,00006,00014,00030$ .WORD 00060,00140,00300,00600,01400$ .WORD 03000,06000,14000,37777,77777;V)MAP3: .WORD 03760,17774,30006,60003,000036$ .WORD 00003,00003,00003,00006,00774$ .WORD 00774,00006,00003,00003,00003$ .WORD 00003,60003,30006,17774,03760;6)MAP4: .WORD 00030,00070,00170,00330,006300$ .WORD 01430,03030,06030,14030,30030$ .WORD 77777,77777,00030,00030,00030$ .WORD 00030,00030,00030,00030,00030;0)MAP5: .WORD 77777,77777,60000,60000,600006$ .WORD 60000,60000,77000,37740,00770$ .WORD 00014,00006,00003,00003,00003$ .WORD 00003,60003,30006,17774,03760)MAP6: .WORD 03760,17774,30006,60003,60000 $ .WORD 60000,60000,60000,60000,63760$ .WORD 77774,70006,60003,60003,60003$ .WORD 60003,60003,30006,17774,03760)MAP7: .WORD 77777,77777,00003,00003,00003W$ .WORD 00006,00014,00030,00060,00140$ .WORD 00300,00600,01400,03000,06000$ .WORD 14000,30000,60000,60000,60000)MAP8: .WORD 03760,17774,30006,60003,600035$ .WORD 60003,60003,60003,30006,17774$ .WORD 17774,30006,60003,60003,60003$ .WORD 60003,60003,30006,17774,03760)MAP9: .WORD 03760,17774,30006,60003,600036$ .WORD 60003,60003,60003,30007,17777$ .WORD 03763,00003,00003,00003,00003$ .WORD 00003,60003,30006,17774,03760;.MAPSIZ=MAP1-MAP0 .END START760)MAP7: .WORD 77777,77777,00003,00003,00003W$ .WORD 00006,00014,00030,00060,00140$ .WORD 00300,00600,01400,03000,06000$ .WORD 14000,30000,60000,60000,60000)MAP8: .WORD 03760,17774,30006,60003,600035$ .WORD 60000~xy-TADATADATA*ÌL:a @:@(x(:x( x* :a "&: &)~*~ s,pl,*F "*B .* &*  3&    *t=TJ e;w t*<@:0 e;w&  ew*b s 7!7  w!D*7  s 7!7, *w!D7>  s 5* e0e0    *!SSS(SSS/SSS!("/* ,$*F)w&f&f e $*l!t!u &*2D Rҕ G22T2"2&2*R/@<~  *HJY H Y@[?2l<[63;1*"pY'H::: ::: ::: ::: :: *: :::*0123456789"Jr*"J r"$&(*0``````````````0**0` 0` *?0`*B`08x 0*h`````~? *`00``````gp`*````0 0`* 0```0`````0*0`````00`````0&`0"J r"$&(*0``````````````0**0` 0` *?0`*B`08x 0*h`````~? *`00`ҚгN$ :>T Kp! X`"""""s0z""R'+d'w''Aw =,Ps8v'9s:Ps%h:ns%h:p:'::'A;W'dY+@d:2+@d*}(~d@ +@d+@dp+@dX+@dZ+@d5a+@dr+@d# +@d6_+@dq+@d+@dU<+@dDM+@dL"+@dŞ+@dX+@dmy6m*}7lmm7{""$TZRTw_ZR_wu~J,v""$D""1,2Zd3J""7 8~t!8~$`8~00|}64T K|&xs""""s0z""k =,Ps,9su:Ps$D:Ps%h:p:'F;'R'd*}(~d# +@d&y0RemPs1gm"2Zpm"3Jm34m""3mOX4XmZ4mxd5m v5mv5mw6mw6>my6m*}7lm7}xPs7Oy_8~{""$u~J00xy-TADATADATAN*T KL:2@my@(0*T Khm@hmhm@jhmvhmh  ):2TIw  my..N*|&L:@:_@(b*TZRh,Twh_ZRh_wh *fЕ- B fЕ- :_*&(&\ f  :\L_PPP _:_N*xsLm@""e@8v@*A;W@d*}@dp@d5a@dL"@*dE D w77q**E D w7 7qE D w7*7qE D w77 r*qjp`D `D C E D e D s0*eY~7 8q0p`D *: `D C E D e D s0eY~7 *`qp`D `D C E D e* D s0eY~7 q*p`D `D C E D e D s0,e&,*Y~ x@xx xx*x`7J`wF x@xx*( xxx`7`w DJLJLLL n*n7wmm m"d *#IE.UPN INSUFFICIENT DYNAMIC STOR&AGE***#IE.INS SPECIFIED TASK NOT INSTALPLEDjT*T*#IE.PTS PARTITION TOO SMALL FOR T*zASK~*~T,IE.UNS INSUFFICIENT DYNAMIC STORT*AGE FOR SEND~IE.ULN UN-ASSIGNED L~*UN"IE.HWR DEVICE HANDLER NOT RESI*DENTIE.ACT TASK 00Ȝ|}64NOT ACTIVE-  &*IE.ITS DIRECTIVE INCONSISTENT WITH TAS <K STATED*D !IE.FIX TASK ALREADY FIXED/UNFIXEjDIl*l D&IE.CKP ISSUING TASK NOT CHECKPOID*NTABLE lIE.TCH TASK IS CHECKPOINTA lBLES*"IE.RBS RECEIVE BUFFER IS TOO SMA*LLP+IE.AST DIRECTIVE ISSUED/NOT ISSUED FROM ASTU*TIE.ALG ALIGNMENT ERRORU)IE.W ")<OV ADDRESS WINDOW ALLOCATION OVERFLOW b*bV2IE.NVR INVALID REGION IDWb IE 2$b*.NVW INVALID ADDRESS WINDOW IDXIE$.ITP INVALID TI PARAMETER*Y,IE.IBS INVALID SEND BUFFER SIZE *( .GT. 255.)ZIE.LNL LUN LOCKED IN* USE[IE.IUI INVALID UIC\IE.I  ":DU INVALID DEVICE OR UNITET*T]0IE.ITI INVALID TIME PARAMETERS^0*zT%IE.PNS PARTITION/REGION NOT IN SYSTTEM*_x$IE.IPR INVALID PRIORITY ( .GT. 2x*50.)`IE.ILU INVALID LUNa%IE.I  "%EF INVALID EVENT FLAG ( .GT. 64.)$*b&IE.ADP PART OF DPB OUT OF USER'S*8 SPACEcIE.SDP DIC OR DPB SIZE INV ^ALIDVN*z""Lm@m@m@*m@m"@mxd@mw@my@*{""@""@(Nz""h *7ww DIRECTIVE ERROR fm" m{""my*& < DIRERR w$mw mmxd<""&mLmN*u~La}@@Q@(Bu~h *&2=Е Е 2 Е  22 a}& @QN*kL( Awh *&fBA @ ~??  *&???? ?????????????? ?????*L??????????? ??????????.<(+|&?*r????????!$*);~-/?????????,%_>?????????*??:#@'="?abcdefghi???????jklmnopqr????*????stuvwxyz???????????????????????ABC*DEFGHI???????JKLMNOPQR????????STUVWXYZ ??????0123456789??????>N*=,PsLm@:ns@m@*m"@mxd@m@j@mw@my@*m@{""@(=,Psh #7`ww GCML ERROR m"{""my * f &f@@$A Q$wmw mmxd*F wW ww*m@j m@j m@jm":ns&m*lGE.IOR IO ERROR FOLLOWS:jGE.O"j*PR OPEN FAILEDGE.BIF BAD @ FILE *SPECGE.MDE @ NESTING TOO GREAT  GE.EOF sN*,L_ZR@(H,h  *& ?Е[BE (_ZR&&Е,E Е]e _ZRN*9sL(N 9sh*  IE.BAD BAD PARAMETERS*IE.IFC INVALID FUNCTION CODE (BIE.DNR DEVICE NOT READYE\'\>IE.VER PARITY ERROR ON DEVICEN >*\"IE.ONP HARDWARE OPTION NOT PRESE\*NTIE.SPC ILLEGAL USER BUFFER (*IE.DNA DEVICE NOT ATTACHEDIE.D"*AA DEVICE ALREADY ATTACHED IE.DUN * DEVICE NOT ATTACHABLE IE.EOF END > OF FILE DETECTED P'P .IE.EOV END OF VOLUME DETECTEDD .t*t P%IE.WLK WRITE ATTEMPTED TO LOCKEDP  UNIT tIE.DAO DATA OVERRUN t%IE.SRE SEND/RECEIVE FAILURE #IE.ABO REQUEST TERMINATEDE *IE.PRI PRIVILEGE VIOLATION &#"IE.RSU SHARABLE RESOURCE IN USEEB*BIE.OVR ILLEGAL OVERLAY REQUEST*hB*IE.BYT ODD BYTE COUNT (OR VIRTUAL B*ADDRESS)f%IE.BLK LOGICAL BLOCK NUMf00Мxy-TADATADATABER TOO LARGEC%IE.MOD INVALID UDC MODULE #T *IE.CON UDC CONNECT ERROR8IE $* .BBE BAD BLOCK ON DEVICE:*IE.STK N*0OT ENOUGH STACK SPACE (FCS OR FCP);"("*V%IE.FHE FATAL HARDWARE ERROR ON DEVIC|EN~%~>RIE.EOT END OF TAPE DETECTEDE R*A~IE.OFL DEVICE OFF LINEBIE.B ~"CC BLOCK CHECK OR CRC ERRORO)IE.NOD CALLER'S NODES EXHAUSTEDL *IE.DFU DEVICE FULLIE.IFU I *.NDEX FILE FULL IE.NSF NO SUCH FIL TETV)V<IE.LCK LOCKED FROM WRITE ACCESSE <|!|VIE.HFU FILE HEADER FULL V#|IE.WAC ACCESSED FOR WRITEL |*#IE.CKS FILE HEADER CHECKSUM FAILURET**IE.WAT ATTRIBUTE CONTROL LIST FO* RMAT ERROR 'IE.RER FILE PROCESSOR 0DEVICE READ ERRORCB*B!(IE.WER FILE PROCESSOR DEVICE WRI*hTE ERROR"B#IE.ALN FILE ALREADY ACCEBSSED ON LUNU*#p!IE.SNC FILE ID, FILE NUMBER CHECpKA*$%IE.SQC FILE ID, SEQUENCE NUMBER  CHECK*%IE.NLN NO FILE ACCESSED ON LUN&*#IE.CLO FILE WAS NOT PROPERLY CLOSE:D<*<9+IE.DUP ENTER - DUPLICATE ENTRY IbN DIRECTORYLn#n?<IE.BVR BAD VERSION NUMBER <*@nIE.BHD BAD FILE HEADERK'IE.E n"'XP FILE EXPIRATION DATE NOT REACHED*LIE.BTF BAD TAPE FORMAT'0IE.N "*BF OPEN - NO BUFFER SPACE AVAILABLE FO*$R FILE(IE.RBG ILLEGAL RECORD SIZE *J)*.IE.NBK FILE EXCEEDS SPACE ALLOCA**pTED, NO BLOCKS*J1IE.ILL ILLEGAL OPEJ#RATION ON FILE DESCRIPTOR BLOCKD*+~IE.BTP BAD RECORD TYPE,%IE.R ~"%AC ILLEGAL RECORD ACCESS BITS SET*-)IE.RAT ILLEGAL RECORD ATTRIBUTES $ BITS SETL.*..(IE.RCN ILLEGAL RECORD NUMBER - T*TOO LARGE/.6IE.MBK MULTIPLE BLOCK RE.*zAD/WRITE - NOT IMPLEMENTED YET0\#IE$\%.2DV RENAME - 2 DIFFERENT DEVICESE*1,IE.FEX RENAME - NEW FILE NAME AL*READY IN USE2IE.BDR BAD DIRECTORY  FILEL * 3#IE.RNM CAN'T RENAME OLD FILE SYS: TEM> %> 4 IE.BDI BAD DIRECTORY SYNTAX  ` *` 5> IE.FOP FILE ALREADY OPEN6` IE > $` * .BNM BAD FILE NAME7~ IE.BDV BAD DEV~ * ICE NAME< IE.NFI FILE ID WAS NOT S * PECIFIED= #IE.ISQ ILLEGAL SEQUENTIA  L OPERATIONR * M %IE.NNC NOT ANSI 'D' FORMAT BYTE  * COUNTE0 *0 P "IE.AST NO AST SPECIFIED IN CONNE V CTD0 IE.NNN NO SUCH NODE 0 r %r EX IE.NFW PATH LOST TO PARTNER X  # Fr IE.BLB BAD LOGICAL BUFFERA r  * G $IE.TMM TOO MANY OUTSTANDING MESS * AGESH !IE.NDR NO DYNAMIC SPACE AVAI  LABLE  * I IE.CNR CONNECTION REJECTEDJ   & , IE.TMO TIMEOUT ON REQUESTF *F N& IE.NNL NOT A NETWORK LUNOF 6IE & $F *l .NLK TASK NOT LINKED TO SPECIFIED ICS/* ICR INTERRUPTSPd #IE.NST SPECIFIED Td  ASK NOT INSTALLEDD * Q 5IE.FLN DEVICE OFFLINE WHEN OFFLI  NE REQUEST WAS ISSUEDD * R IE.IES INVALID ESCAPE SEQUENCES &,  IE.PES PARTIAL ESCAPE SEQUENCE $N*u:PsLm@)sE@)2H@*)Ps@$9!@:Ps@m""@mxd@*my@ձ@`;@e;@(v""h *f&fA 7w BAD m"""my*&ERROR NUMBER SPECIFIED w  mxd m*L  C l0 p *)sE)2H)2Hձ$$9!&)Ps*r  B   Bp00؜|}64:Ps )sE`;:Ps&   ")2He;:Ps`;:PsN*:PsLm@)Ps@)W@*[@[W@[@[Z@[X@*m@m@m@m"@mT`@*mxd@m@j@m v@mv@mw@*my@m@{""@""@( :Psh:nsh *7ww I/O ERROR w m" )Psmy$)Ps*&DRf ‹(my )Psmwmmxd"((L  w FILE: e *"" mmy[)W "m@j p& w *m@jm@jm[X)W mT` :X my! ef w .*[W)W [W)W m vmy& w ;" [)W  mvmy& ww([Z)W  mT`mmm#w I/O ERROR FOUND IN DSW {""myw4DIRERRIOERRmN*:p:L(:p:h::h *f&fABf ' B !D *&ws  qw  zD$z*LqwDd qwa  rq- SIN*F;L::@(R8vhA;Wh *fA AofA&fBE *&sAE a      ` L w::N*RLmT`@mv@my@*(~Rhb+dhwhhl  )& f &few  w $my&&& w  mT` my44H~w  a my@@& w  I mT`myR*RH~w    & &my$mv x mvN*d*}L(d*}h *  4?*  4?(INVZ`gmu*INV Z `gmu<*  P %(/2=*   %(/2=dCO\cmy~*CO\ c my~*x)׸i3;73? *937;3?s3399?*399?7;3?9cÓo7*3?9{{3?3?3?7;*3?97;3?*69y6<??7??3*\3??3?YH*66~995=*9996<6t~7;E*KƵD^m\M^zl̉*6{{ysF9LI*qqI395cÓ*@m34x=5i=?76*f:?66<c?=6<6*;qq"IGKDN< N*d# L X@`"@@*""e@)sE@)G@)2H@)Ps@*$9!@:Ps@dYHd@ HdH*dZHdrHdHdU-H) H*r   }` })Ty (*  DK0:&&} ' q )<&%t)hp!*f)*4  `**p" p,p,e*V} s s P$ p!( p!* . (et  $9!K &:s0@@ V} KDD<N*emPsL,@d@(~""h *fd&f  &f, dffrvSY0:[111,4]} r vN*gm"L 5@<&%t@' q@*m@@m@4w@`@hp!@"""@(,h *&&fjV"$ (m4w Vm@ 5 (hp!*&  BV  ""V`m@Lddd <&%thh ffjj || yy ' q:PsSYN*pm"Lm@j@m v@my@"m@(4dh  w  - m vmy"e < m@j m@jm@jmxN*mLmy@( mh  w  myN*m""L""e@m@s@"(m"hm""h f&f  sm""eN*mOXLmy@( mOXh   w - my.N*mZLm@j@m@(x*mhPmhTmB`hmT`h *f&CB6w  >*&B 7 F m@j m@jm@jm*L6w .  se0b r 00蜀64N*mxdLm@mT`@my@(mxdh "&w  AT & mymT`mN*m vLm@j@m@m@"(jm h2m vhb *f&fD Da ED&B*&C D7Bw $ mm@j m@j m@j&m"LF 7N*mvLm@j@m@m@"(LmhmvhD *f&BC 7Bw m(m@j *&F7m@j m@jm~N*mwLmOX@(mwh   6 mOX~N*mwLmOX@(mwh    6  mOXN*myLm@j@m@($myh (&@w 7` E m@j m@jm@jmN*m*}Lmy@( m*}h   w  myN*mL(Jmh *&& f r(  (&  %e ee e RN*}xPsL)sE@)2H@ձ@"`;@(<""h *fA     B l0 p )sE$)2H()2H&   ձ `;N*Oy_Lz""@)P@)'@*)Ty@)W@)p@$9@:Ps@*s@`@K@hp!@Ա&@*`;@&@e;@( ht!h$`h *f3  `   )P"K(:Ps*& f `zRRRt Ա&&z"$)Ty(t*L   [10,")' )php!:Ps&r3]zzLy*DMnf&f n*lU~ s*f~ ќ~*`Q$`e  )W*&p  & ~G `:Ps~&z""*L& & &  % "$9$sr z""*`    e;:Ps`;:Psx`p!:Ps&r3]zzLy*DMnf&f n*lU~ s*f~ ќ~*`Q$`e  )W*&p  & ~G `:Ps~&z""*L& & &  % "$9$sr z""*`   .ENABLE SUBSTITUTION.100: .ASKS N NAME!PIP SY:[1,31]/RE/CD=[1,10]'N'.*;*PIP 'N'.*;*/PR/FO .GOTO 100$; @KCOLC -- BUILD VT52 KCOLC DISPLAY;"MAC KCOLCV,KCOLCV/-SP=TS/ML,KCOLCV TKB @OLVTKB00y-TADATADATA[11,1]OLV/MU/-CP/-FP=KCOLCV/ TASK=...OLVSTACK=32PRI=150//; ; SEE.CMD$; TASKBUILD FOR SYSTEM STATUS SCREEN;SEE/PR/-FP/-CP/MU,SEE/-SP=SEEGETSYSHOLELB:[1,1]F77OTS.OLB/LBLB:[1,1]EXEC.STB/SS/ACTFIL=1UNITS=1 ASG=TI0:1 TASK=...SEE// PROGRAM SEECC ROBERT WATSON C CISCO, INC.C (918)665-2110C 4135 S. 100TH E. AVE.C TULSA OK 74145C4C THIS PROGRAM HAS BEEN DONATED TO THE PUBLIC DOMAINC AND IS NOT TO BE COPYRIGHTED.CC@C THIS PROGRAM DISPLAYS THE TIME, THE NUMBER OF FREE NODES, THE AC SIZE OF THE LARGEST HOLE, AND THE ENTRIES IN THE ATL AND MRL ON=C A VT52 OR VT100. IT REFRESHES THE SCREEN AUTOMATICALLY ANDDC TIMES OUT ACCORDING TO THE PARAMETERS SET BELOW. IT CAN BE HALTED@C AT ANY TIME BY ENTERING ANY PRINTABLE CHARACTER. UNLIKE DEC'S@C 'SYS', THIS PROGRAM DISPLAYS ANY TIMESHARING TASKS WITH STATUS0C OF 'MRL', 'MRE', OR 'MRR' AS BEING IN THE MRL.CTCP:C MOD BY F.BORGER TO WORK WITH SOROC INSTEAD OF VT526C AND INCLUDE TI IDENTIFICATION, ALSO UPDATE TASK LIST<C EACH SECOND, ONLY RE-WRITE TASKS IF THEY MOVED IN THE LISTCMAC WHEN THE LARGEST HOLE DROPS BELOW THIS VALUE, THE PROGRAM RINGSN;C THE BELL ONCE EVERYTIME THE LARGEST HOLE SIZE IS UPDATED.NC  PARAMETER WELL = 100YCT@C WHEN IT DROPS BELOW THIS VALUE, THE BELL RINGS THREE TIMES FORC EVERY UPDATE.MCA PARAMETER SICK = 50C @C WHEN IT DROPS BELOW THIS VALUE, THE PROGRAM DISPLAYS A MESSAGE C AND EXITS.CW PARAMETER DYING = 25OCTBC THIS VALUE IS THE NUMBER OF SECONDS BETWEEN UPDATES OF THE TIME,C NODES, AND LARGEST HOLE.CH PARAMETER SEC = 1CMAC THIS VALUE IS THE NUMBER OF TIMES THE TIME, NODES, AND HOLE AREN5C UPDATED FOR EVERY TIME THE ATL AND MRL ARE UPDATED.DCD PARAMETER TOP = 1C ?C THIS VALUE IS THE NUMBER OF TIMES THAT THE ATL AND MRL UPDATEEC BEFORE THE PROGRAM TIMES OUT.CRC PARAMETER TIMOUT = 1000NC % INTEGER*2 IATL(201), IMRL(121), INODP# INTEGER*2 OLDATL(201), OLDMRL(121)R# INTEGER*2 IHOL, ISTAT(2), IPRM(6)I INTEGER*2 SFSMC, TFTMO, SFRDF INTEGER*2 TINAM# BYTE TITLE(17), TIM(12), TNOD(11)R! BYTE THOL(18), ANOD(7), AHOL(7) BYTE TATL(8), TMRL(8), NAM(16) BYTE ESCDN(2), CLR(4), BO! BYTE FIRST, BSTAT(2), ESDEL(2)D" BYTE GOTMRL, NONE(14), ESCLF(2)$ BYTE TRMCHR(8), BELL(7), UNDER(25)" BYTE ESDES(2), END(4), TIBYT(2) BYTE TRMRES(8) EQUIVALENCE (ISTAT(1),BSTAT)= EQUIVALENCE (ISTAT(1),STAT) EQUIVALENCE (TINAM,TIBYT(1))2 DATA ICNT /0/ DATA FIRST /.TRUE./9 DATA TITLE /"33,'=',"40,"52,'S','Y','S','T','E','M',' ',F 1 'S','T','A','T','U','S'/E" DATA TIM /"33,'=',"40,"101,8*'X'/8 DATA TNOD /"33,'=',"42,"52,'N','O','D','E','S',' ','='/9 DATA THOL /"33,'=',"42,"101,'L','A','R','G','E','S','T',D! 1 ' ','H','O','L','E',' ','='/S" DATA ANOD /"33,'=',"42,"62,3*'X'/# DATA AHOL /"33,'=',"42,"120,3*'X'/I, DATA TATL /"33,'=',"44,"40,'A','T','L',':'/, DATA TMRL /"33,'=',"57,"40,'M','R','L',':'/ DATA ESCLF /"12,"0/ DATA NAM /"33,'=',"0,"0,12*'X'/C DATA ESCDN /"33,'B'/C F.B. DIFFERENT FOR SOROC DATA ESCDN /"0,"12/ DATA CLR /"36,"0,"33,'*'/ DATA ESDEL /"33,'T'/" DATA ESDES /"33,'Y'// DATA B /' '/,8 DATA NONE /"33,'=',"61,"40,'N','O',' ','E','N','T','R', 1 'I','E','S'/'(C 24=TC.ACR 35=TC.ESQ 7=TC.RAT 44=TC.HLD) DATA TRMCHR /"24,"0,"350064,"1,"7,"1,"44,"0/D) DATA TRMRES /"24,"1,"35,"0,"7,"2,"44,"1/A" DATA BELL /"33,'=',"40,"40,7,7,7/9 DATA UNDER /"33,'=',"63,"40,'S','Y','S','T','E','M',' ', 1 1 'G','O','I','N','G',' ','U','N','D','E','R',E 2 7,7,7// DATA END /"33,'=',"65,"40/ DATA SFSMC /"2440/ DATA IOWLB /"400/ DATA TFTMO /"1220/" DATA SFRDF /"2460/ C3"C GET MCR SO WE RECALL MCR ON EXITC, CALL GETMCR (IATL) CE(C SET MULTIPLE TERMINAL CHARACTERISTICS:C NO CARRIAGE RETURN+C TERMINAL REQUIRES ESCAPE SEQUENCE SUPPORT""C DEFERRED PROCESSING OF READAHEADC NOT IN HOLD SCREEN MODEEC/ CALL GETADR (IPRM(1), TRMCHR) IPRM(2) = 8. CALL WTQIO (SFSMC, 1, 16, , ISTAT, IPRM, IDS)C'C BUILD BASIC SCREENC' CALL GETADR (IPRM(1), CLR)T IPRM(2) = 4. CALL WTQIO (IOWLB, 1, 16, , ISTAT, IPRM, IDS) CALL GETADR (IPRM(1), TITLE)T IPRM(2) = 17 . CALL WTQIO (IOWLB, 1, 16, , ISTAT, IPRM, IDS) CALL GETADR (IPRM(1), TNOD) IPRM(2) = 11A. CALL WTQIO (IOWLB, 1, 16, , ISTAT, IPRM, IDS) CALL GETADR (IPRM(1), THOL) IPRM(2) = 18E. CALL WTQIO (IOWLB, 1, 16, , ISTAT, IPRM, IDS) CALL GETADR (IPRM(1), TATL) IPRM(2) = 8. CALL WTQIO (IOWLB, 1, 16, , ISTAT, IPRM, IDS) CALL GETADR (IPRM(1), TMRL). CALL WTQIO (IOWLB, 1, 16, , ISTAT, IPRM, IDS)C(C UPDATE TIME, NODES, AND HOLEC,100 DO 300 I = 1, TOPL CALL TIME (TIM(5))T CALL HOLE (INOD, IHOL)L INOD = INOD / 161 IHOL = IHOL / 16D IF (IHOL .GE. WELL) GO TO 190 CALL GETADR (IPRM(1), BELL) IF (IHOL .GE. SICK) GO TO 150 IF (IHOL .LT. DYING) GO TO 1450 IPRM(2) = 7 GO TO 160150 IPRM(2) = 5,1160 CALL WTQIO (IOWLB, 1, 16, , ISTAT, IPRM, IDS)I!190 ENCODE (3, 200, ANOD(5)) INOD1 ENCODE (3, 200, AHOL(5)) IHOL200 FORMAT (I3)R CALL GETADR (IPRM(1), TIM), IPRM(2) = 12 . CALL WTQIO (IOWLB, 1, 16, , ISTAT, IPRM, IDS) CALL GETADR (IPRM(1), ANOD) IPRM(2) = 7. CALL WTQIO (IOWLB, 1, 16, , ISTAT, IPRM, IDS) CALL GETADR (IPRM(1), AHOL). CALL WTQIO (IOWLB, 1, 16, , ISTAT, IPRM ,IDS) IF (FIRST) GO TO 400GCO9C READ WITH TIMOUT TO TERMINAL, SEE IF USER HAS REQUESTEDO&C TERMINATION, OR IF WE HAVE TIMED OUTCL CALL GETADR (IPRM(1), B)S IPRM(2) = 1$ IPRM(3) = 0 !TIMOUT IN 0 TIME UNITS. CALL WTQIO (TFTMO, 1, 16, , ISTAT, IPRM, IDS) IF (B .NE. ' ') GO TO 1500="C IF (ICNT .GT. TIMOUT) GO TO 1500 CALL WAIT (SEC, 2, N) 300 CONTINUECAC GET TASK INFORMATIONCT400 FIRST = .FALSE.I ICNT = ICNT + 1 CALL GETSYS (IATL, IMRL))CC C UPDATE ATLC  CALL GETADR (IPRM(1), NAM)I IPRM(2) = 15 NAM(3) = "46D NAM(4) = "40 C NAM(5-10) RECEIVE TASK NAMES NAM(11) = "400C NAM(12,13,14,15) RECEIVE TASK TI NAME & NUMBER NAM(16)= "72R DO 600 J = 1, 199, 4! IF (IATL(J) .EQ. -1) GO TO 700I! CALL R50ASC (6, IATL(J), NAM(5))) TINAM=IATL(J+2) NAM(12)=TIBYT(1)( NAM(13)=TIBYT(2)O IHGH=IATL(J+3)/8T ILOW=IATL(J+3)-8*IHGH NAM(14)=IHGH+48 NAM(15)=ILOW+48 IF (NAM(4) .LE. "145) GO TO 500 NAM(3) = NAM(3) + 1 NAM(4) = "40CP+C DON'T UPDATE POSITION IF SAME TASK AND TIIC( 500 NOMAT=0M DO 525 I=1,4M-525 IF (IATL(J+I-1).NE.OLDATL(J+I-1)) NOMAT=1M IF (NOMAT.EQ.0) GOTO 5501. CALL WTQIO (IOWLB, 1, 16, , ISTAT, IPRM, IDS)550 NAM(4) = NAM(4) + 13 DO 575 I=1,4Q575 OLDATL(J+I-1)=IATL(J+I-1)( 600 CONTINUE GO TO 1450MCTC CLEAR REST OF ATL AREA5C BUT FIRST RE-DO LAST ENTRY SO ERASE WORKS CORRECTLY3C*700 NAM(4)=NAM(4) - 13. CALL WTQIO (IOWLB, 1, 16, , ISTAT, IPRM, IDS) CALL GETADR (IPRM(1), ESDEL)4C C ERASE REST OF THIS LINESCO IPRM(2) = 2. CALL WTQIO (IOWLB, 1, 16, , ISTAT, IPRM, IDS)C(C MOVE TO START OF THIS LINECA CALL GETADR (IPRM(1), NAM)5 IPRM(2) = 4 NAM(4) = "40,. CALL WTQIO (IOWLB, 1, 16, , ISTAT, IPRM, IDS)C C AND MOVE DOWN ONE LINEC= IPRM(2) = 2 DO 900 L = NAM(3), "54M CALL GETADR (IPRM(1), ESCDN). CALL WTQIO (IOWLB, 1, 16, , ISTAT, IPRM, IDS) CALL GETADR (IPRM(1), ESDEL) . CALL WTQIO (IOWLB, 1, 16, , ISTAT, IPRM, IDS) 900 CONTINUEC( C UPDATE MRLC1000 GOTMRL = .FALSE.S CALL GETADR (IPRM(1), NAM)L IPRM(2) = 15 NAM(3) = "61 NAM(4) = "40 DO 120000y-TADATADATA M = 1, 119, 4 IF (IMRL(M) .EQ. -1) GO TO 1300 GOTMRL = .TRUE.! CALL R50ASC (6, IMRL(M), NAM(5))B TINAM=IMRL(M+2) NAM(12)=TIBYT(1)N NAM(13)=TIBYT(2)E IHGH=IMRL(M+3)/8 ILOW=IMRL(M+3)-8*IHGH NAM(14)=IHGH+48 NAM(15)=ILOW+48! IF (NAM(4) .LE. "145) GO TO 1100P NAM(3) = NAM(3) + 1 NAM(4) = "40LC+C DON'T UPDATE POSITION IF SAME TASK AND TI)C0 1100 NOMAT=0 DO 1125 I=1,4.1125 IF (IMRL(M+I-1).NE.OLDMRL(M+I-1)) NOMAT=1 IF (NOMAT.EQ.0) GOTO 1150. CALL WTQIO (IOWLB, 1, 16, , ISTAT, IPRM, IDS)1150 NAM(4) = NAM(4) + 13  DO 1175 I=1,41175 OLDMRL(M+I-1)=IMRL(M+I-1) 1200 CONTINUEB GO TO 1450(1300 IF (GOTMRL) GO TO 1400M CALL GETADR (IPRM(1), NONE) IPRM(2) = 14L. CALL WTQIO (IOWLB, 1, 16, , ISTAT, IPRM, IDS)CIC CLEAR REST OF MRL AREA8C FIRST MAKE SURE CURSOR IS AT END (IF WE DIDN'T CHANGE)C JUST WRITE LAST NAME AGAINCT1400 NAM(4) = NAM(4) - 131. CALL WTQIO (IOWLB, 1, 16, , ISTAT, IPRM, IDS) CALL GETADR (IPRM(1), ESDES) IPRM(2) = 2. CALL WTQIO (IOWLB, 1, 16, , ISTAT, IPRM, IDS) GO TO 100C12C SYSTEM IS DRASTICALLY OVERLOADED... GET OUT FASTC0!1450 CALL GETADR (IPRM(1), UNDER)G IPRM(2) = 250. CALL WTQIO (IOWLB, 1, 16, , ISTAT, IPRM, IDS) GO TO 1700 CW8C POSITION CURSOR NEAR BOTTOM OF SCREEN, RESTORE DEFAULTC TERMINAL CHARACTERISTICSC 1500 CALL GETADR (IPRM(1), END)U IPRM(2) = 4. CALL WTQIO (IOWLB, 1, 16, , ISTAT, IPRM, IDS)C RESET TERMINAL"1700 CALL GETADR (IPRM(1), TRMRES) IPRM(2) = 8. CALL WTQIO (SFSMC, 1, 16, , ISTAT, IPRM, IDS) ENDAT, IPRM, IDS) GO TO 100C12C SYSTEM IS DRASTICALLY OVERLOADED... GET OUT FASTC0!1450 CALL GETADR (IPRM(1), UNDER)G IPRM(2) = 250. CALL WTQIO (IOWLB, 1, 16, , ISTAT, IPRM, IDS) GO TO 1700 CW8C POSITION CURSOR NEAR BOTTOM OF SCREEN, RESTORE DEFAULTC TERMINAL CHARACTERISTICSC 1500 CALL GETADR (IPRM(1), END)U IPRM(2) = 4. CALL WTQIO (IOWLB, 1, 16, , ISTAT, IPRM, IDS)C RESET TERMINAL"1700 CALL GETADR (IPRM(1), TRMRES) IPRM(2) = 8. CALL WTQIO (SFSMC, 1, 16, , ISTAT, IPRM, IDS)w  Da H" z 1xs 1xs 1xs $1xs&( ,1xs .1xs 01xs 41xs 61xs :1xs<> B1xs D1xs F1xs2Dz 1xs 1xs$ 1xs 1xsA 1xs 1xsL 1xs 1xsl 1xs 1xst $1xs9 (1xs *1xs .1xs 01xs4rz 1xs 1xs5 1xs 1xs^ 1xs 1xse 1xs 1xs 1xs  " &1xs (1xs *1xs.0 21xs* 1xs 1xs 1xs 1xs|,a  Da  1xsDa .z 1xs 1xs 1xs 1xs 1xs 1xs 1xs 1xs 1xs 1xs $1xs &1xs *1xs ,1xs1xss\$= *SYSTEM STATUS= AXXXXXXXX="*NODES =="ALARGEST HOLE =="2XXX="PXXX=$ ATL:=/ MRL: |=XXXXXXXXXXXX *TY s=1 NO ENTRIES $ $$= =3 SYSTEM GOING UNDER=5   0 GZ & w7       `Wj Da ,Q "Da &,,1xs 0Da 4: 8Da .<,B1xs FDa 4J: NDa DR,X1xsNV        | Da 4 : Da J,1xs Da 4 : $Da P(,.1xs 2Da 46: :Da V>,D1xs HDa 4L:`     r7 r7 d | Da \ , Da 4:j1xs$j (Da b,u~@ 0Da f4d4@81xsB1xsF1xsP1xs ZDa l^,l-2-w    ~1xs1xs1xs$j*1xs0j 4Da 48:>j FDa J1xsbNv! R1xsV:x<Z!y bDa f1xsi0064jv!Ld        z 1xs :x<!y Da r,1xs Da 4$: (Da x,,21xs 6Da 4:: >Da ~B, FDa 4J:Z 7  ׭ w -w7 z1xs Da ,1xs1xs Da ":&1xs 2Da 6}:1xs>1xsLjP1xsT1xs XDa Z  & : 7,w7ez,z Da ,1xs1xs~ 1xs&1xs,1xs21xs8j<1xs BS F1xsR,a  V1xsX,a VX 7 rtwe07e0w׭ ,a  v; S 1xs 1xs 1xs1xs1xs 1xs $1xs .1xs 61xs <1xs@1xsH1xsP1xsT1xsne 7 ` 0,   }e 7 1xs~1xsj1xs$j(1xs 01xs 21xs:1xsF1xsLjP1xs VDa 4Z:`jd1xsl1xsj{` 0 e-wwx 7  z j1xs 1xs 1xs&1xs,1xs01xsBjF1xsN1xs RDa 4V: ZDa ^,d1xs hDa 4Vz    7 ,m   |: Da ,1xs1xs Da 4":(1xs,1xs~01xs B1xs D1xs F1xs2Dz 1xs 1xs 1xs 1xs$ 1xs 1xsA 1xs 1xsL 1xs 1xsl $1xs &1xst *1xs9 .1xs 01xs2rz 1xs 1xs 1xs 1xs5 1xs 1xs^ 1xs 1xse 1xs 1xs $1xs &( ,1xs .1xs 01xs: 1xs 1xs 1xs 1xs 1xs|,a  Da  1xsDa 2z 1xs 1xs 1xs 1xs 1xs 1xs 1xs 1xs 1xs 1xs $1xs &1xs *1xs ,1xs 01xs 1xs1xs\$Y *SYSTEM STATUSY AXXXXXXXXY"*NODES =Y"ALARGEST HOLE =Y"2XXXY"PXXXY$ ATL:Y/ MRL: |YXXXXXXXXXXXXBHJKJ sY1 NO ENTRIES $ $$Y Y3 SYSTEM GOING UNDERY5   0 [?2l< GZ & w7       `Wj Da ,Q "Da &,,1xs 0Da 4: 8Da .<,B1xs FDa 4J: NDa DR,X1xsNV        | Da 4 : Da J,1xs Da 4 : $Da P(,.1xs 2Da 46: :Da V>,D1xs HDa 4L:P      z Da \ ,1xs Da 4: Da b , $Da 4(:.j41xs:j >Da hBu~@ FDa lJd4@N1xsv r7 r7 d -2-w  | 1xs1xs1xs $Da r(,,1xs41xsB1xsJjP1xsVj ZDa 4^:dj lDa p1xsbtv!T^        1xs :x<!y Da 1xsiv! "1xs&:x<*!y .Da x2,81xs 1xsJj NDa R, VDa 4X   -,c7 1 ]~: Da , Da 4:1xs1xs(j,1xs 0Da 4,:1xs@1xs~F1xsL1xsRjV1xsR* 7,w7e 7 r~ S 1xs1xs,a  "1xs$,a  (,a ,v; 0S 41xs 61xs :1xs<1xs@1xsB1xs F1xsP1xsnxtwe07e0w׭e P7 N` 0, ~ 1xs1xs1xs1xs$1xs(1xs01xs~61xs1xs @1xsL1xsR1xsV1xsfjj1xs pDa XP  B 7   w0< z, 1xs Da 4:j1xs&1xs *Da 4.: 2Da 6,<1xs @Da 4D:Nj RDa V,T 8  5   z1xs Da 4:j Da  ,&1xs *Da 4.:4j 8Da <,B1xs FDa 4J: NDa R, 1xs Da : #8z`Wj,Q,:u~@d4@v!:x<!y},zv;  #8",1z8`yG  G $ G, Gb Gdb G: G@>+J *Da ,a 1xsSGJ: NDa R, 1xs Da : #8z`Wj,QҚгN #n\(@ K  @ ٍ~@ H   h""t!""!"""` >""` #4*#4vU(YU(+dPE,K ,Y,+d*|20 20 By:DKH ^S&S@ TT vOX OX@:d9T:dNT^:dDydKZd,dd8ddp>drdxs[f}P[fP}f&f gpF!g {m""{mw{mwKq,z\qFByLOy&6Oy_8[y v[yt![y\MX z z(z z@zH4v~`;9a28#Mv000"y-TADATADATA N .MACRO GETNOD R,?L1,?L2 .MCALL CALL MOV NODFRE,R ;GET FREE NODE BNE L1 ;STILL SOME LEFT JMP LOCKED ;NONE LEFT'L1: MOV (R),NODFRE ;UPDATE FREE POINTER BNE L2 ;STILL SOME LEFT( CALL CHKFRE ;DISABLE AST'S FOR A WHILEL2:  .ENDM:N .MACRO CALL RTN JSR PC,RTN .ENDM4N .MACRO RETURN RTS PC .ENDM:N .MACRO RECALL JSR PC,@(SP)+ .ENDMvN .MACRO ABSDIF A,B,C,?L1 SUB A,B .IF NB C MOV B,C .ENDC BPL L1 NEG BL1:D .ENDMLN .MACRO EXCHR A,BF XOR A,B XOR B,A XOR A,B .ENDMNN .MACRO EXCHS A,B,CO MOV A,C MOV B,A MOV C,B .ENDM:N .MACRO CMOV$3 VAL,OFF .IIF B,VAL,.MEXIT .NTYPE PAR$$$,VAL .IF NE,PAR$$$&7 MOV VAL,-(SP), MOV @(SP),OFF(R0) ADD #2,(SP)R MOV @(SP),OFF+2(R0)N ADD #2,(SP) MOV @(SP)+,OFF+4(R0) .IFF( MOV (VAL),OFF(R0) MOV 2(VAL),OFF+2(R0) MOV 4(VAL),OFF+4(R0) .ENDC .ENDMN .MACRO ENTER A,B,C,D,E,F .MCALL S$AVER$R0=0R$R1=0R$R2=0R$R3=0R$R4=0R$R5=0 .IIF NB A S$AVE A .IIF NB B S$AVE B .IIF NB C S$AVE C .IIF NB D S$AVE D .IIF NB E S$AVE E .IIF NB F S$AVE F .ENDMN .MACRO DEFERR NAME,VALUE,TEXT .IIF NDF PR$ERR,PR$ERR=0, .IF NB VALUEF .WORD VALUE2 .IFF .WORD NAME .ENDC .WORD PR$ERR PR$ERR=.-4+ .NCHR X, .WORD X .ASCII ^NAME TEXT^) .EVEN .ENDMbN .MACRO ENDERR NAME .IF NB NAME NAME=PR$ERR, .ENDC PR$ERR=0  .ENDMhN .MACRO ERROR MES0 .MCALL CALL,PSTRA CALL ERRPFX PSTR ^^MES^ JMP DIE .ENDMLN .MACRO ERROR1 MSG .MCALL PERRSF PERRS /MSG/ .ENDM"N. .MACRO GCML BLOCK,ADPRM,LNPRM,EOF,ERR,?L1,?L2 .MCALL GCML$,CALL GCML$ BLOCK,ADPRM,LNPRM .IF NB EOF'ERR. BCC L2 .IF NB EOF CMPB #GE.EOF,G.ERR(R0)T BNE L1D CALL EOFN L1:) .ENDC .IF NB ERR CALL ERR. .ENDCE L2: .ENDC .ENDMN! .MACRO CSI1G CSBLK,GCBLK,ERR,?L1 .MCALL CSI$1,CALL( CSI$1 CSBLK,GCBLK+G.CMLD+2,GCBLK+G.CMLD .IF NB ERR BCC L1 CALL ERR L1: .ENDC .ENDMN& .MACRO CSI1 CSBLK,ADBUF,LNBUF,ERR,?L1 .MCALL CSI$1,CALL CSI$1 CSBLK,ADBUF,LNBUF .IF NB ERRC BCC L1 CALL ERR L1: .ENDC .ENDMN# .MACRO CSI2 CSBLK,IO,SWVAL,ERR,?L1. .MCALL CSI$2,CALL CSI$2 CSBLK,IO,SWVAL) .IF NB ERR  BCC L1 CALL ERR L1: .ENDC .ENDM:N .MACRO HCDEF.HCOP=10 ;OP CODEC1HCDXS=12 ;LOG(2) WIDTH OF BLOCK (VERSATEK POINTS)K2HCDYS=14 ;LOG(2) HEIGHT OF BLOCK (VERSATEK POINTS)HCNSTR=16 ;NUMBER OF STRIPSMHCNROW=20 ;NUMBER OF ROWS #HCNCOP=22 ;NUMBER OF COPIES DESIREDL1HCDELF=24 ;(BYTE) IF ON, DELETE FILE AFTER RASTERC .ENDMN .MACRO HDDEF.HDDATE=0 ;DATE/TIME (8 WORDS) "HDXMAX=20 ;MAXIMUM X VALUE IN FILE"HDXMIN=22 ;MINIMUM X VALUE IN FILE"HDYMAX=24 ;MAXIMUM Y VALUE IN FILE"HDYMIN=26 ;MIN008-64IMUM Y VALUE IN FILEHDTEXT=30 ;COMMENT TEXTC%HDSTAB=100 ;4 8 WORD TABLES FOR CHSETHHDSORT=200 ;-1 IF UNSORTED.0HDLOGX=HDSORT ;IF SORTED, LOG X WIDTH (UNSCALED)#HDLOGY=202 ; " , LOG Y HEIGHTWHDNSTR=204 ;NUMBER OF STRIPSHDNROW=206 ;NUMBER OF ROWS8HDSPTR=210 ;LIST OF POINTERS TO STARTING BLOCKS OF PANES ;(ROW MAJOR ORDER) .ENDMN .MACRO LEAVER .IF NE R$R5 MOV (SP)+,R5L .ENDC .IF NE R$R4 M MOV (SP)+,R4I .ENDC .IF NE R$R3 M MOV (SP)+,R3I .ENDC .IF NE R$R2 Y MOV (SP)+,R2 .ENDC .IF NE R$R1 C MOV (SP)+,R1  .ENDC .IF NE R$R0 H MOV (SP)+,R01 .ENDC .ENDMZN .MACRO MVADR DISP,REG,DEST) MOV #DISP,DEST ADD REG,DESTI .ENDMxN .MACRO MOV3 A,B MOV #A,R5 MOV #B,R4 MOV (R5)+,(R4)+ MOV (R5)+,(R4)+ MOV (R5),(R4) .ENDMN .MACRO CMP3 A,B,?L1 MOV #A+4,R5 MOV #B+4,R4 CMP (R5),(R4) BNE L1C CMP -(R5),-(R4) BNE L1+ CMP -(R5),-(R4)L1:$ .ENDMN .MACRO ADD3 A,B MOV #A,R5 MOV #B,R4 ADD (R5)+,(R4)+ ADC (R4)+ ADC (R4). ADD (R5)+,-2(R4)( ADC (R4). ADD (R5),(R4) .ENDMN .MACRO SUB3 A,B MOV #A,R5 MOV #B,R4 SUB (R5)+,(R4)+ SBC (R4)+ SBC (R4)A SUB (R5)+,-2(R4)# SBC (R4)# SUB (R5),(R4) .ENDMpN# .MACRO CLR3 A ;DOES NOT AFFECT R4 MOV #A,R5 CLR (R5)+ CLR (R5)+ CLR (R5)+ .ENDMN$ .MACRO NEG3 A ;DOES NOT AFFECT R4 MOV #A+4,R5 COM (R5)M COM -(R5) COM -(R5) ADC (R5)+ ADC (R5)+ ADC (R5), .ENDMXN$ .MACRO MOV2 A,B ;USES NO REGISTERS MOV A,B MOV A+2,B+2 .ENDMlN( .MACRO CMP2 A,B,?L1 ;USES NO REGISTERS CMP A+2,B+2 BNE L1 CMP A,BL1:  .ENDMN# .MACRO ADD23 A,B ;DOES NOT USE R4 MOV #B,R5 ADD A,(R5)+ ADC (R5)+ ADC (R5)T ADD A+2,-2(R5) ADC (R5) .ENDMN# .MACRO SUB23 A,B ;DOES NOT USE R4A MOV #B,R5 SUB A,(R5)+ SBC (R5)+ SBC (R5) SUB A+2,-2(R5)- SBC (R5)( .ENDMRN# .MACRO CLR2 A ;USES NO REGISTERS  CLR A CLR A+2 .ENDMbN$ .MACRO ADD2 A,B ;USES NO REGISTERS ADD A,B ADC B+2 ADD A+2,B+2 .ENDMbN$ .MACRO SUB2 A,B ;USES NO REGISTERS SUB A,B SBC B+2 SUB A+2,B+2 .ENDM|N! .MACRO NEG2 A ;DOES NOT USE R4 MOV #A+2,R5 COM (R5)5 COM -(R5) ADC (R5)+ ADC (R5)R .ENDM4N? .MACRO MUL12 A,B,C,?L1 ;C MUST BE A REGISTER OTHER THAN R4,R5-+ MOV #B+2,C ;IT IS DESTROYED BY THE MACRO MOV (C)+,R4 MUL A,R4 MOV R4,(C)C MOV R5,-(C) MOV -(C),R4 MUL A,R4 BPL L1 ADD A,2(C)E ADC 4(C)E DEC 4(C)BL1: MOV R5,(C)+A ADD R4,(C)+ ADC (C) .ENDMN- .MACRO PARMSA A1,A2,A3,A4,A5,A6,A7,A8,A9,A10A;BA; THIS MACRO CREATES A FORTRAN-STYLE PARAMETER LIST ON THE STACK,M/; LEAVING R5 POINTING TO THE START OF THE LIST.AE; THE MACRO PARAMETERS ARE TAKEN TO BE ADDRESSES OF THE ACTUAL PARAMS ; TO CLEAR THE STACK,4%; SP SHOULD BE INCREMENTED BY PARMSP. ; " .NARG PARMSN ;NUMBER OF ARGUMENTS;RPARMSP=0* .IRP ARG, .IF NB,ARGCPARMSP=PARMSP+2D MOV ARG,-(SP) ;STORE ADDRESSD .IFF+ .IF NE,PARMSPPARMSP=PARMSP+2 MOV #-1,-(SP) .ENDC .ENDC .ENDR MOV #PARMSN,-(SP)& MOV SP,R5 ;SET UP PARAM LIST POINTERPARMSP=PARMSP+2A .ENDMN- .MACRO PARMSV A1,A2,A3,A4,A5,A6,A7,A8,A9,A10E;SA; THIS MACRO CREATES A FORTRAN-STYLE PARAMETER LIST ON THE STACK,A/; LEAVING R5 POINTING TO THE START OF THE LIST.F; THE MACRO PARAMETERS ARE TAKEN TO BE THE VALUES OF THE ACTUAL PARAMS; TO CLEAR THE STACK,.$; SP SHOULD BE INCREMENTED BY PARMSP;S" .NARG PARMSN ;NUMBER OF ARGUMENTS;MPARMSP=0* .IRP ARG, .IF NB,ARG# MOV ARG,-(SP) ;STORE ARGUMENT" MOV SP,-PARMSN*2(SP) ;AND ADDRESSPARMSP=PARMSP+2 .IFF .IF NE,PARMSPPARMSP=PARMSP+2, CLR -(SP) MOV #-1,-PARMSN*2(SP) .ENDC .ENDC .ENDR! SUB #PARMSN*2,SP ;SKIP ADDRESSESVPARMSP=PARMSP+00@"y-TADATADATA MOV #PARMSN,-(SP)PARMSP=PARMSP+2E MOV SP,R5 .ENDMtN .MACRO INITPD FDB,PT0,PT1 MOV FDB,-(SP) MOV PT0,-(SP) MOV PT1,-(SP) CALL PDINIT .ENDMN7 .MACRO PARSPD SETUP,HEADER,MOVE,PDRAW,DRAW,POINT,CHARS .MCALL CALL CALL PDPARS/ .WORD SETUP,HEADER,MOVE,PDRAW,DRAW,POINT,CHARSE .ENDM8N .MACRO PCRLFM CALL QUTCRR .ENDM<N .MACRO PDCALL PTRN CALL @PTR .ENDMjN .MACRO PDEC N,SIGNM .MCALL QT$SGN MOV N,-(SP) QT$SGN SIGN CALL QUTDPT .ENDMlN .MACRO PDECB N,SIGN .MCALL QT$SGB MOVB N,-(SP)S QT$SGB SIGN CALL QUTDPB .ENDMN .MACRO PDFDEFCMIN=10ACPRIM=10CLINE=11 CPOINT=12RCELLC=13 CELLCC=14 CHCHAR=20L CSCHAR=21A CMAX=CSCHARTCEOF=377 .ENDMN .MACRO PERR MES,?L1,?L2 .MCALL PSTR CALL L1 BR L2L1: JSR R0,QUTERR PSTR ^^MES^ CALL QUTPCN JMP DIEL2:. .ENDM N .MACRO PERRM N,TAB,?L1,?L2,?L3N .MCALL TTYOUT MOV R0,-(SP)C MOV R1,-(SP)N MOV N,R0 MOV TAB,R1AL1: CMP (R1)+,R0 BEQ L2T MOV (R1),R1 BNE L1Q BR L3L2: CMP (R1)+,(R1)+N TTYOUT R1,-(R1)L3: MOV (SP)+,R1 MOV (SP)+,R0I .ENDMrN .MACRO PERRS MES1 .MCALL PSTR JSR R0,QUTERR PSTR ^^MES^ CALL QUTPCM JMP DIE .ENDMjN .MACRO POCT N,SIGNR .MCALL QT$SGN MOV N,-(SP) QT$SGN SIGN CALL QUTOPT .ENDMlN .MACRO POCTB N,SIGN .MCALL QT$SGB MOVB N,-(SP), QT$SGB SIGN CALL QUTOPB .ENDMN .MACRO PRAD5S ADDR,LEN,BLANKM MOV ADDR,-(SP)L MOV LEN,-(SP) .IF NB BLANK CALL QUTB5S) .IFFN CALL QUTR5SR .ENDC .ENDMN .MACRO PRAD50 VAL,BLANK MOV VAL,-(SP) .IF NB BLANK CALL QUTB50U .IFFP CALL QUTR50L .ENDC .ENDMvN .MACRO PSTR STRING,?L1,?L2G JSR R5,QUTSTR .WORD L2-L1L1: .ASCII STRINGC L2: .EVEN .ENDM6N .MACRO PTAB CALL QUTTAB .ENDMN .MACRO QT$ERR FNAM,?L1,?L2,?L3M MOV #L1,R2 CALL .QTERR BR L3L1: .WORD L2-L1-2V .ASCII /FNAM/ L2: .EVEN)L3:F .ENDMVN .MACRO QT$SGB SIGN5 .IF NB SIGN CALL QUTSGB .ENDC .ENDMVN .MACRO QT$SGN SIGNN .IF NB SIGN CALL QUTSGNF .ENDC .ENDMBN .MACRO S$AVE XR$'X=1 MOV X,-(SP) .ENDMzN .MACRO SP$BGN SPBLK,TASK,ID,OP .MCALL SP$LOD,CALL SP$LOD SPBLK,TASK,ID,OP CALL .SPBGN .ENDMN) .MACRO SPBLK$ TASK,ID,OP,MES,LEN,LUN,EVF#8 .MCALL SPOFF$,RAD50$,CWORD$,FDBDF$,FDRC$A,FDBK$A,FDOP$A .IIF NB,LUN,SP.LUN=LUN .IIF NB,EVF,SP.EVF=EVF SPOFF$T...PC1=....PC3=. RAD50$ ,2 .IF NB,ID RAD50$ ,3 .IFF .RAD50 /SPOOL /N .WORD 0I .ENDC CWORD$ ,SP.OP CWORD$ ,SP.MES+2 CWORD$ ,SP.MES CWORD$ 256.,SP.BFL..=...PC1+SP.FDB FDBDF$A FDRC$A FD.RWM" FDBK$A ...PC3+SP.BUF,512.,,SP.EVF FDOP$A SP.LUN,,,FO.WRT.=...PC3+S.SPB .ENDMdN .MACRO SP$END SPBLK .MCALL LDFDB$,CALL. LDFDB$ SPBLKD CALL .SPEND .ENDMN' .MACRO SP$LOD SPBLK,TASK,ID,OP,MES,LEN.# .MCALL LDFDB$,CMOV$3,CMOV$2,CMOV$W. LDFDB$ SPBLK> CMOV$2 TASK,SP.TSK5 CMOV$3 ID,SP.ID CMOV$W OP,SP.OP CMOV$W MES,SP.MES+2 CMOV$W LEN,SP.MES .ENDMN .MACRO SPOFF$ .MCALL FDBSZ$ FDBSZ$.SP.TSK=0SP.ID=SP.TSK+4 SP.OP=SP.ID+6RSP.MES=SP.OP+2SP.BFL=SP.MES+4PSP.CNT=SP.BFL+2LSP.PTR=SP.CNT+2.SP.REC=SP.PTR+2MSP.FDB=SP.REC+2SP.BUF=SP.FDB+S.FDBKS.SPB=SP.BUF+512.L .ENDMvN .MACRO SPOOL$ SPBLK,MES,LEN .MCALL SP$LOD,CALLB SP$LOD SPBLK,,,,MES,LEN CALL .SPOOL .ENDMN" .MACRO TINIT LUN,EVF,DEV,UNIT,?L1 .MCALL DIR$,ALUN$,QIO$,WTSE$P .ENABL LSB, DIR$ #QUTAO BR L1 QUTQ:: QIO$ IO.WVB,LUN,EVF,,QUTSQUTW:: WTSE$ EVFQUTS:: .WORD 0 .WORD 0QUTDSW::.BLKW 1T .IF NB,DEVP QUTA:: ALUN$ LUN,DEV,UNITS .IFFP QUTA:: ALUN$ LUN,TI,0S .ENDCL1:R .DSABL LSB .ENABL 00HL64LSB+ .DSABL LSB.CR=15DLF=12PHT=11F .ENDMN .MACRO TTYOUT ADDR,LENB .MCALL DIR$ MOV ADDR,QUTQ+14 MOV LEN,QUTQ+16 DIR$ #QUTQ DIR$ #QUTWM .ENDMN0 .MACRO XMIT$ OPS,IOPS,LMESS,LIMESS,NQUE,LUN,EVF .MCALL XM$LQU XM$LQUXM.OP:: .IF NB,OPS .WORD O .ENDCXM.MOP==.-XM.OP:XM.IOP::.IF NB,IOPSO .WORD  .ENDCXM.MIP==.-XM.IOPXM.LMS==LMESS+255.&<-256.>XM.LIM==LIMESS+255.&<-256.>AXM.MES::.BLKW XM.LMSXM.IMS::.BLKW XM.LIMXM.QUE::.BLKW NQUE*XM.LQU XM.NQU==NQUE XM.TLN==LUNN XM.MLN==LUN+1 XM.TEF==EVF XM.MEF==EVF+1B XM.REF==EVF+2 .ENDM6N .MACRO XM$LQU XM.LQU=36D .ENDM~N .MACRO FRENOD R" MOV NODFRE,(R) ;LINK TO FREE LIST+ MOV R,NODFRE ;AND UPDATE FREE LIST POINTER  .ENDM&N .MACRO GETPAC R,?L1,?L2 .MCALL CALL MOV PACFRE,R ;GET FREE PACKET BNE L1 ;STILL SOME FREES JMP LOCKED ;NONE FREEI'L1: MOV (R),PACFRE ;UPDATE FREE POINTER BNE L2 ;STILL MORE FREEE( CALL CHKFRE ;DISABLE AST'S FOR A WHILEL2: CLR (R) ;CLEAR OUT LINK .ENDMN .MACRO FREPAC R MOV (R),-(SP) ;SAVE LINKR' MOV PACFRE,(R) ;AND POINT TO FREE LIST' MOV R,PACFRE ;UPDATE FREE LIST POINTERL& MOV (SP)+,R ;AND RETURN NEXT IN LINK .ENDM LIST POINTER  .ENDM .MACRO GETPAC R,?L1,?L2 .MCALL CALL MOV PACFRE,R ;GET FREE PACKET BNE L1 ;STILL SOME FREES JMP LOCKED ;NONE FREEI'L1: MOV (R),PACFRE ;UPDATE FREE POINTER BNE L2 ;STILL MORE FREEE .TITLE CKUSR .IDENT /V01.1B/; READ PDSUPF.DAT ; USES LUN 4; CALL SINIT !OPEN PDSUPF.DAT$; CALL S(USRRET,UIC) !READ A RECORDJ; RETURNS NEXT (NON-NULL) USER NAME IN USRRET (12 BYTES) AND UIC (1 WORD); CALL SFIN !CLOSE PDSUPF.DAT;2 .MCALL FDBDF$,FDAT$A,FDRC$A,FDOP$A,FDBF$A2 .MCALL FSRSZ$,FINIT$,MOUT$S,OPEN$R,CLOSE$! .MCALL GET$R,QIOW$S,DIR$ .MACRO FILERR MOVB FDB+F.ERR,R5 NEG R5 MOUT$S #XQIO,,R5 .ENDM FILERR .MACRO SPACE1 .REPT SP.SIZ .BYTE 40 .ENDRN .ENDM B.SIZ=100, EFLAG=20. NFILES=1SYLUN=4STILUN=5N TIFLG=21. US.SIZ=12.PS.SIZ=6 UI.SIZ=9. SP.SIZ=6NAMOFF=0 UICOFF=10S PASOFF=12 BPSOFF=64MUUAOFF=52 ;UTILIZATIONFSRSZ$ NFILESFDB: FDBDF$! FDAT$A R.FIX,FD.CR,B.SIZ# FDRC$A FD.RAN,BUFFER,B.SIZ ! FDOP$A SYLUN,DSPT,,FO.RD  FDBF$A EFLAG  .NLIST BEXTDSPT: .WORD DV.SIZ,DEVICE  .WORD DI.SIZ,DIRECT .WORD FN.SIZ,FILNAM 5DEVICE: .ASCII /SD0:/ ;F.B. we have it on sd not lbDV.SIZ=.-DEVICESDIRECT: .ASCII /[1,100]/LDI.SIZ=.-DIRECT.FILNAM: .ASCII /PDSUPF.DAT/FN.SIZ=.-FILNAMO .EVEN1XQIO: .WORD XQLN,XQIOSMI%XQIOSM: .ASCII /LB0:[1,2]QIOSYM.MSG/D XQLN=.-XQIOSMT .EVEN,BUFFER: .BLKB B.SIZDFIRST: .WORD 0LAST: .WORD 0UIOST: .BLKW 2 .PAGESINIT:: *START: FINIT$ ;INIT FSR/ OPEN$R #FDB ;OPEN THE FILE ) BCC 5$ ;BR I OKF/ FILERR ;TELL OF ERRORI JMP EXIT ;[95$: GET$R #FDB,#BUFFER,#B.SIZ ;GET FIRST RECORDS* BCC 10$ ;BR IF OK/ FILERR ;TELL OF ERRORM JMP EXIT:10$: MOV BUFFER,FIRST ;FIRST USER RECORD NUMBER9 MOV BUFFER+2,LAST ;LAST USER RECORD UNMBER RTS PCS:: MOV FIRST,R4  CMP FIRST,LASTR BLE 20$13$: JMP THTZIT 15$: INC R4 ;SKIP NULL NAME CMP R4,LAST BGT 13$:20$: GET$R #FDB,#BUFFER,#B.SIZ,R4 ;GET A USER RECORD* BCC 25$ ;BR IF OK/ FILERR ;TELL OF ERROR  BR EXIT; 5; GOT A RECORD IN BUFFER. EXTRACT USER NAME AND UIC. ; 125$: MOV 2(R5),R0 ;+ ADDRESS USRRET;# MOV #14.,R1 ;CLEAR RETURN BUFFER 26$: CLRB (R0)+ SOB R1,26$ ! MOV 2(R5),R0 ; READDRESS BUFFERM) MOV 00QSy-TADATADATA BUFFER+NAMOFF,R1 ;3 BEQ 15$ ;NO NAME (DELETED)S" CALL $C5TA ;: MOV BUFFER+NAMOFF+2,R1 ;CONVERT USER NAME" CALL $C5TA ;) MOV BUFFER+NAMOFF+4,R1 ; # CALL $C5TA ;-T" MOV BUFFER+NAMOFF+6,R1 CALL $C5TA 3 MOV BUFFER+UICOFF,@4(R5) ;RETURN UIC; MOV R4,FIRST  RTS PCETHTZIT: MOVB #'?,@2(R5)) RTS PCRSFIN:: CLOSE$ #FDB RTS PCEEXIT: EXIT$S .END AMOFF,R1 ;3 BEQ 15$ ;NO NAME (DELETED)S" CALL $C5TA ;: MOV BUFFER+NAMOFF+2,R1 ;CONVERT USER NAME" CALL $C5TA ;) MOV BUFFER+NAMOFF+4,R1 ; # CALL $C5TA ;-T" MOV BUFFER+NAMOFF+6,R1 CALL $C5TA 3 MOV BUFFER+UICOFF,@4(R5) ;RETURN UIC; MOV R4,FIRST  RTS PCETHTZIT: MOVB #'?,@2(R5)) RTS PCRSFIN:: CLOSE$ #FDB RTS PCEEXIT: EXIT$S  .TITLE CKUSR) .IDENT /V01.1B/; READ PDSUPF.DAT ; USES LUN 4'; CALL SINIT !OPEN PDSUPF.DAT($; CALL S(USRRET,UIC) !READ A RECORDJ; RETURNS NEXT (NON-NULL) USER NAME IN USRRET (12 BYTES) AND UIC (1 WORD); CALL SFIN !CLOSE PDSUPF.DATU;2 .MCALL FDBDF$,FDAT$A,FDRC$A,FDOP$A,FDBF$A2 .MCALL FSRSZ$,FINIT$,MOUT$S,OPEN$R,CLOSE$! .MCALL GET$R,QIOW$S,DIR$D .MACRO FILERR MOVB FDB+F.ERR,R5 NEG R5 MOUT$S #XQIO,,R5B .ENDM FILERR .MACRO SPACE1 .REPT SP.SIZ .BYTE 40 .ENDRN .ENDM B.SIZ=100, EFLAG=20. NFILES=1SYLUN=4STILUN=5N TIFLG=21. US.SIZ=12.PS.SIZ=6 UI.SIZ=9. SP.SIZ=6NAMOFF=0 UICOFF=10S PASOFF=12 BPSOFF=64MUUAOFF=52 ;UTILIZATIONFSRSZ$ NFILESFDB: FDBDF$! FDAT$A R.FIX,FD.CR,B.SIZ# FDRC$A FD.RAN,BUFFER,B.SIZ ! FDOP$A SYLUN,DSPT,,FO.RD  FDBF$A EFLAG  .NLIST BEXTDSPT: .WORD DV.SIZ,DEVICE  .WORD DI.SIZ,DIRECT .WORD FN.SIZ,FILNAM DEVICE: .ASCII /LB0:/DV.SIZ=.-DEVICEDIRECT: .ASCII /[1,100]/FDI.SIZ=.-DIRECTFILNAM: .ASCII /PDSUPF.DAT/FN.SIZ=.-FILNAMS .EVEN6XQIO: .WORD XQLN,XQIOSMF%XQIOSM: .ASCII /LB0:[1,2]QIOSYM.MSG/N XQLN=.-XQIOSML .EVENDBUFFER: .BLKB B.SIZ,FIRST: .WORD 0 LAST: .WORD 0FIOST: .BLKW 2D .PAGE,SINIT:: *START: FINIT$ ;INIT FSR/ OPEN$R #FDB ;OPEN THE FILE ) BCC 5$ ;BR I OKA/ FILERR ;TELL OF ERRORI JMP EXIT ;[95$: GET$R #FDB,#BUFFER,#B.SIZ ;GET FIRST RECORDS* BCC 10$ ;BR IF OK/ FILERR ;TELL OF ERRORM JMP EXIT:10$: MOV BUFFER,FIRST ;FIRST USER RECORD NUMBER9 MOV BUFFER+2,LAST ;LAST USER RECORD UNMBER RTS PCS:: MOV FIRST,R4  CMP FIRST,LASTR BLE 20$13$: JMP THTZIT 15$: INC R4 ;SKIP NULL NAME CMP R4,LAST BGT 13$:20$: GET$R #FDB,#BUFFER,#B.SIZ,R4 ;GET A USER RECORD* BCC 25$ ;BR IF OK/ FILERR ;TELL OF ERROR  BR EXIT; 5; GOT A RECORD IN BUFFER. EXTRACT USER NAME AND UIC. ; 125$: MOV 2(R5),R0 ;+ ADDRESS USRRET;# MOV #14.,R1 ;CLEAR RETURN BUFFER 26$: CLRB (R0)+ SOB R1,26$ ! MOV 2(R5),R0 ; READDRESS BUFFERM) MOV BUFFER+NAMOFF,R1 ;3 BEQ 15$ ;NO NAME (DELETED)S" CALL $C5TA ;: MOV BUFFER+NAMOFF+2,R1 ;CONVERT USER NAME" CALL $C5TA ;) MOV BUFFER+NAMOFF+4,R1 ; # CALL $C5TA ;-T" MOV BUFFER+NAMOFF+6,R1 CALL $C5TA 3 MOV BUFFER+UICOFF,@4(R5) ;RETURN UIC; MOV R4,FIRST  RTS PCETHTZIT: MOVB #'?,@2(R5)) RTS PCRSFIN:: CLOSE$ #FDB RTS PCEEXIT: EXIT$S .END AMOFF,R1 ;300Y\]_64 .TITLE EQUALN. .SBTTL STRING COMPARISON FUNCTION FOR FORTRAN .GLOBL EQUAL ; ; CALL:M;+; LOGICAL EQUAL, FLAG ; FLAG = EQUAL(S1,S2)C; OR FLAG = EQUAL(S1,S2,L); OR CALL EQUAL(S1,S2,L,FLAG) ; OR CALL EQUAL(S1,S2,,FLAG); 9; WHERE S1 AND S2 ARE ARRAYS CONTAINING THE STRINGS TO BEC8; COMPARED, L IS THE MAXIMUM NUMBER OF BYTES TO COMPARE,:; AND FLAG RETURNS THE RESULT OF THE COMPARISON (.TRUE. OR2; .FALSE.). COMPARISON STOPS AT THE FIRST NULL IN; EITHER STRING, OR AT L.,; EQUAL: CLR R0 ;CLEAR FOR RETURN MOV 2(R5),R1 ;ADDRES STRING 1 MOV 4(R5),R2 ;AND STRING 2 CMP @R5,#2 ;2-ARG FORM?A BEQ NOLEN CMP 6(R5),#-1 ;NULL 3RD ARG? BEQ NOLEN MOV @6(R5),R3 ;LENGTH IN R3$ BLE RETR0 ;IF <= 0, RETURN .FALSE.(COMPAR: CMPB (R1)+,(R2)+ ;COMPARE A BYTE BNE RETR0 ;DIFFER TSTB -1(R1) ;BOTH NULL?M BEQ ISEQUL ;YES-EQUALR SOB R3,COMPAR ;LOOP'ISEQUL: DEC R0 ;ALL AGREE - SET .TRUE.%RETR0: CMPB @R5,#4 ;4-ARGUMENT CALL?R BNE RETRN+ MOVB R0,@10(R5) ;YES - RETURN 4TH ARGUMENT RETRN: RTS PCU;&NOLEN: CLR R3 ;"INFINITE" MAX. LENGTH BR COMPAR .END2 CMP @R5,#2 ;2-ARG FORM?A BEQ NOLEN CMP 6(R5),#-1 ;NULL 3RD ARG? BEQ NOLEN MOV @6(R5),R3 ;LENGTH IN R3$ BLE RETR0 ;IF <= 0, RETURN .FALSE.(COMPAR: CMPB (R1)+,(R2)+ ;COMPARE A BYTE BNE RETR0 ;DIFFER TSTB -1(R1) ;BOTH NULL?M BEQ ISEQUL ;YES-EQUALR SOB R3,COMPAR ;LOOP'ISEQUL: DEC R0 ;ALL AGREE - SET .TRUE.%RETR0: CMPB @R5,#4 ;4-ARGUMENT CALL?R BNE RETRN+ MOVB R0,@10(R5) ;YES - RETURN 4TH ARG .TITLE FEOF+; IRET = FEOF(LUN) POSITION FILE TO EOFM;D;FEOF:: MOV @2(R5),R2 ;GET LUN# MOV @#$OTSV,R3 ;ADDRESS WORK AREA " CALL $FCHNL ;FFDB ADDRESS IN R0 ; BCS ERRORA ADD #14,R0 ;ADDRESS FCS FDB, MOV F.EFBK(R0),R1 ;HIGH ORDER BLOCK NUMBER MOV F.EFBK+2(R0),R2 ;LOW MOV F.FFBY(R0),R3 ;NEXT BYTE CALL .POINT ;POINT TO EOF RTS PC ;) .ENDK FOR NULL  BNE 1$ CMP #1,R0 ;NULL STRING?M BNE LRET0 CLR R0 ;YES--RETURN 0SLRET: RTS PC ;WITH COUNT IN R0- .END IN TC TEST CALL TO GETUSRC CALL GETUSR(IBUF,LBUF,IER)C-C IBUF: BUFFER TO RECEIVE NAMES AND TERMINALSC LBUF: NUMBER OF WORDS IN LBUFC IER: RETURNS 0 = SUCCESS1C -1 = BUFFER NOT LONG ENOUGHC?C EACH USER NAME REQUIRES 8. WORDS: NAME (12. BYTES, 6. WORDS),<C TERMINAL TYPE (2 BYTES, 1 WORD), TERMINAL NUMBER (1 WORD)C%C TASK MUST BE LINKED WITH SGA=HELBYEC DIMENSION IBUF(8,40) DIMENSION JBUF(7) LBUF=8*40 CALL GETUSR(IBUF,LBUF,IER) NUM=LBUF/8 DO 200 I=1,NUMT,200 WRITE (5,210)(IBUF(N,I),N=1,7),IBUF(8,I)210 FORMAT(' ',6A2' ',A2,O2) STOP  ENDRMINALSC LBUF: NUMBER OF WORDS IN LBUFC IER: RETURNS 0 = SUCCESS1C -1 = BUFFER NOT LONG ENOUGHC?C EACH USER NAME REQUIRES 8. WORDS: NAME (12. BYTES, 6. WORDS),<C TERMINAL TYPE (2 BYTES, 1 WORD), TERMINAL NUMBER (1 WORD)C%C TASK MUST BE LINKED WITH SGA=HELBYEC DIMENSION IBUF(8,40) DIMENSION JBUF(7) LBUF=8*40 CALL GETUSR(IBUF,LBUF,IER) NUM=LBUF/8 DO 200 BC SUBROUTINE TO RETURN LIST OF LOGGED-IN USER NAMES AND TERMINALS.CC CALL GETUSR(IBUF,LBUF,IER)C-C IBUF: BUFFER TO RECEIVE NAMES AND TERMINALSC LBUF: NUMBER OF WORDS IN LBUFC IER: RETURNS 0 = SUCCESS1C -1 = BUFFER NOT LONG ENOUGHC?C EACH USER NAME REQUIRES 8. WORDS: NAME (12. BYTES, 6. WORDS),<C TERMINAL TYPE (2 BYTES, 1 WORD), TERMINAL NUMBER (1 WORD)C%C TASK MUST BE LINKED WITH SGA=HELBYEC! SUBROUTINE GETUSR(IBUF,LBUF,IER) DIMENSION IBUF(320) DIMENSION JBUF(32)  INTEGER*2 HELBYEE COMMON /DATA/HELBYE(10,40). DATA ITT/'TT'/S#C Set number of terminals on systemT NTERM=36A(C Open may fail if someone is logging in9c continue after error, don't count error, do ERR= contin c don't do message. CALL ERRSET(30,.TRUE.,.FALSE.,.TRUE.,.FALSE.) IPOINT=1(: OPEN (UNIT=4, ACCESS='DIRECT', RECORDSIZE=16, TYPE='OLD',1 1 ERR=900, NAME='SD:[1,100]PDSUPF.DAT',READONLY)  DO 1000 NN=1,NTERM JJ=HELBYE(9,NN)$D WRITE(5,990) (HELBYE(M,NN),M=1,10)D900abfy-TADATADATA90 FORMAT(' ',10(O6,' '))G IF (JJ.LT.1) GOTO 1000T READ(UNIT=4,REC=JJ) JBUF/D WRITE(5,991) (JBUF(M),M=1,4)D991 FORMAT(' ',4(O6,' '))p% CALL R50ASC(12,JBUF(1),IBUF(IPOINT))  IPOINT=IPOINT+6 IBUF(IPOINT)=ITTo IPOINT=IPOINT+1 IBUF(IPOINT)=NN-1 IPOINT=IPOINT+1 IF(IPOINT.LE.LBUF) GOTO 1000 CLOSE (UNIT=4) 900 IER=-1 RETURNC 1000 CONTINUE1 IER=0 C LBUF=IPOINT9 CLOSE (UNIT=4)0 RETURND ENDADONLY)  DO 1000 NN=1,NTERM JJ=HELBYE(9,NN)$D WRITE(5,990) (HELBYE(M,NN),M=1,10)D9 .TITLE GETUSR .IDENT /V01/; D; FORTRAN-CALLABLE SUBROUTINE TO RETURN LIST OF LOGGED-IN USER NAMES; AND TERMINALS.;S; CALL GETUSR(IBUF,LBUF,IER);C-; IBUF: BUFFER TO RECEIVE NAMES AND TERMINALSS; LBUF: NUMBER OF WORDS IN LBUF; IER: RETURNS 0 = SUCCESS1; -1 = BUFFER NOT LONG ENOUGH ;?; EACH USER NAME REQUIRES 8. WORDS: NAME (12. BYTES, 6. WORDS),:<; TERMINAL TYPE (2 BYTES, 1 WORD), TERMINAL NUMBER (1 WORD);,%; TASK MUST BE LINKED WITH SGA=IASCOM ;B ; MOD DATE%; 001 4-JAN-83 RUN THROUGH ALL CLI'S-;L ; DEFINITIONS ;R;RO2=0 ;(IASCOM IS NOT P.I.); GETUSR:: MOV 2(R5),R1 ;ADDRESS BUFFER! MOV @4(R5),R2 ;LENGTH OF BUFFERV MOV .CITHD+O2,R3 ;ADDRESS CIT -10$: MOV C.TU(R3),R4 ;++001 ADDRESS NEXT UTNC%1$: CMP R4,C.TL(R3) ;DONE WITH LIST?  BEQ 50$ TST I.UN(R4) ;LOGGED IN? BEQ 5$  SUB #8.,R2 ;COUNT WORDS LEFTD BLT ERROR ;NOT ENOUGH$ MOV I.UN(R4),(R1)+ ;YES--COPY NAME MOV I.UN+2(R4),(R1)+L MOV I.UN+4(R4),(R1)+ MOV I.UN+6(R4),(R1)+  MOV I.UN+10(R4),(R1)+ MOV I.UN+12(R4),(R1)+! MOV I.DN(R4),(R1)+ ;DEVICE TYPET! MOVB I.TT(R4),R0 ;DEVICE NUMBER MOV R0,(R1)+R"5$: MOV @R4,R4 ;ADDRESS NEXT UTN BR 1$ ;LOOP; 50$: ;DONE ALL UTNSC TST R2 ;BUFFER FULL?S BLE RETN ;YES--RETURN* ADD .CITSZ+O2,R3 ;++001 LOOK AT NEXT CLI, CMP R3,.CITEND+O2 ;++001 IS THERE ANOTHER? BNE 10$ ;++001 LOOP IF YES; CLR (R1)+ ;NO--FLAG END%RETN: CLR @6(R5) ;CLEAR RETURN CODER RETURNV;U$ERROR: MOV #-1,@6(R5) ;ERROR RETURN RETURNU .END),(R1)+ MOV I.UN+12(R4),(R1)+! MOV I.DN(R4),(R1)+ ;DEVICE TYPET! MOVB I.TT(R4),R0 ;DEVICE NUMBER MOV R0,(R1)+R"5$: MOV @R4,R4 ;ADDRESS NEXT UTN BR 1$ ;LOOP; 50$: ;DONE ALL UTNSC TST R2 ;BUFFER FULL?S BLE RETN ;YES--RETURN* ADD .CITSZ+O2,R3 ;++001 LOOK AT NEXT CLI, CMP R3,.CITEND+O2 ;++001 IS THERE ANOTHER? BNE 10$ ;++001 LOOP IF YES; CLR (R1)+ ;NO--FLAG END%RETN: CLR @6(R5) ;CLEAR RETURN CODER RETURNV;U$ERROR: MOV #-1,@6(R5 .TITLE INDEXR. .SBTTL INDEX FUNCTION FOR FORTRAN (OPTIMIZED) .GLOBL INDEX;2; CALL:5; ; I = INDEX(S1,S2,L1,L2);OR CALL INDEX(S1,S2,L1,L2,I) ;B1; WHERE S1 AND S2 ARE THE USUAL STRING ARGUMENTS; 8; L1 AND L2 ARE OPTIONAL LENGTH ARGUMENTS FOR S1 AND S2,E; RESPECTIVELY. IF L1 OR L2 IS OMITTED OR IS ZERO, THE CORRESPONDING -; STRING IS EXPECTED TO END WITH A NULL BYTE. ; %INDEX: CLR R2 ;CLEAR COUNT REGISTERSR CLR R3A CMPB @R5,#2 ;MORE THAN 2 ARGS?" BEQ LEN1 ;NO - NO LENGTH FOR S1 BIT #1,6(R5) ;3RD ARG NULL? BNE LEN1 ;YES - DITTOI MOV @6(R5),R2 ;NO - GET LENGTHL& BGT SLEN2 ;IF POSITIVE, CHECK FOR L2LEN1: MOV 2(R5),R0 ;POINT TO S1H1$: INC R2 ;COUNT TSTB (R0)+ ;AND TEST BNE 1$A DEC R2 ;ADJUST COUNT!SLEN2: CMPB @R5,#3 ;MORE THAN 3?C! BLE LEN2 ;NO - NO LENGTH FOR S2I BIT #1,10(R5) ;4TH ARG NULL BNE LEN2X! MOV @10(R5),R3 ;GET LENGTH OF S2 + BGT LEN2A ;IF POSITIVE, ADJUST AND SEARCHRLEN2: MOV 4(R5),R1 ;POINT TO S2A1$: INC R3 ;COUNT TSTB (R1)+ ;AND TEST BNE 1$50 SUB #2,R3 ;ADJUST - 1ST CHAR HANDLED SPECIALLY BLT NOFD ;ZERO LENGTHL BR SPTR1 ;GO SEARCHI"LEN2A: DEC R3 ;YES - SHORTEN BY 1 BLT NOFDS;!; R0 POINTS TO CURRENT BYTE OF S1N!; R1 POINTS TO CURRENT BYTE OF S2C0; R2 UNTESTED LENGTH OF S1 (1ST BYTE COMPARISON)!; R3 LENGTH OF S2 (PAST 1ST BYTE),0; R4 UNTESTED LENGTH OF S2 (NTH BYTE COMPARISON);T+; ADJUST LENGTH OF S1 AND SET POINTER TO S1U&SPTR1: SUB R3,R2 ;SUBTRACT L2 FROM L1 BLE NOFD ;L2>L13 MOV 2(R5),R0 ;SET POI00iklmop4NTER;T!; SEARCH FOR S2'S 1ST CHAR. IN S1S"SRCH1: MOV 4(R5),R1 ;POINTER TO S21$: CMPB @R1,(R0)+ ;COMPAREO BEQ GOT1 ;COMPARE EQUALE SOB R2,1$ ;COUNT AND LOOP" BR NOFD ;1ST CHARACTER NOT FOUND;%; FIRST CHARACTER FOUND - CHECK REST2&GOT1: MOV R0,-(SP) ;SAVE POINTER TO S1" INC R1 ;POINT TO NEXT CHAR IN S2% MOV R3,R4 ;COPY LENGTH FOR COUNTINGY BEQ TRIUMP ;NO MO' TO GO!L;T; COMPARE REST OF STRINGCMPR: CMPB (R0)+,(R1)+ BNE NORESTF SOB R4,CMPR; %; COMPARES EQUAL - RETURN IN TRIUMPH.T$TRIUMP: MOV (SP)+,R0 ;RETURN POINTER SUB 2(R5),R0 ;SUBTRACT ORIGIN$RETURN: CMP @R5,#5 ;5-ARGUMENT FORM? BNE RET! MOV R0,@12(R5) ;YES-RETURN VALUED RET: RTS PCO; +; FAILURE ON REST OF COMPARISON - TRY AGAINE+NOREST: MOV (SP)+,R0 ;RESTORE POINTER TO S1A BR SRCH1 ;BACK TO GO;;; FAILURE - RETURN ZERO NOFD: CLR R0 BR RETURN .ENDTINGY BEQ TRIUMP ;NO MO' TO GO!L;T; COMPARE REST OF STRINGCMPR: CMPB (R0)+,(R1)+ BNE NORESTF SOB R4,CMPR; %; COMPARES EQUAL - RETURN IN T..; Look at mail directory and see who has mailpip dp1:[10,0]*.*;*/diL2R0KM3JQ3&255K']3]2Q2]2Q2EDM4]2Q2]2!EXIT!Q1#4096]1]4]5]6]7]8L'Q1&32"NI, HOLD'M3'JDQ3&255X1Q3&255K'Q2,0ET0U2J!NEXTBAS!:S.BAS"S::S]"U::S^ER"U<::S;;<@::S^ED;>0;><::S<^ED;<::S^ED;>::S>;0;>::S\"S-D-1U2ONEXTBAS'>::S/B"U::S/^ED"UG5-1U2Q1"LQ1#8192U1'''''ONEXTBAS'J!NEXTB2S!A:S.B2S"S::S]"U::S^ER"U<::S;;<::S^ED;>0;><::S<^ED;<::S^ED;>XF::S>;0;>::S\"S-D-1U2ONEXTB2S'::S/B"U::S/^ED"UG6-1U2Q1"LQ1#8192U1';''''ONEXTB .TITLE LENGTH/ .SBTTL LENGTH FUNCTION FOR FORTRAN (OPTIMIZED)  .GLOBL LENGTH;W; CALL:V;(; I = LENGTH(S1);L(; WHERE S1 IS THE USUAL STRING ARGUMENT;7; LENGTH RETURNS LENGTH UP TO AND INCLUDING TERMINATOR.I*; IF LENGTH IS 1 (NULL STRING), RETURNS 0.;W%LENGTH: CLR R0 ;CLEAR COUNT REGISTER  MOV 2(R5),R2 ;POINT TO S11$: INC R0 ;COUNT TSTB (R2)+ ;LOOK FOR NULL  BNE 1$ CMP #1,R0 ;NULL STRING?M BNE LRET0 CLR R0 ;YES--RETURN 0SLRET: RTS PC ;WITH COUNT IN R0- .END IN T1 MAIl To send a letter, type: MCR>MAIL []( MCR>MAIL HENRY,DON,FRED filenameN If no filename is given, LETTER.TMP is created and filled from the terminal.% MCR>MAIL @filename [letter]A Sends mail to list specified in the file SD0:[10,3]filename.mls Listing a summary of your mail7 MCR>MAIL ? (Only lists headers of each letter) Reading your mail MCR>MAIL MEN The contents of your mailbox is typed. You may file or delete each message, and may reply to any message.mes> []( MCR>MAIL HENRY,DON,FRED filenameN If no filename is given, LETTER.TMP is created and filled from the terminal.% MCR>MAIL @filename [letter]A Sends mail to list specified in the file SD0:[10,3]filename.mls Listing a summary of your mail7 MCR>MAIL ? (Only lists headers of each letter) Reading your mail MCR>MAIL MEN The contents of your mailbox is typed. You may file&MAICOM/-HD/PI,MAICOM/-SP,MAICOM=MAICOM/STACK=0UNITS=0/C COMMON SGA FOR MAIL, POSTMANC BLOCK DATA  COMMON /MAICOM/ ENTRY BYTE ENTRY (14,20)F END(////30X,'USAGE BY USER GROUPS'//A; 1 10X,'ACTIVITY',T31,'GROUP UIC RANGE',T55,'USE',T77,'%'/)1 DO (JGP = 1,NGROUPS)S IF (GPUSE(JGP) .GT.0.0)? WRITE (1,11) (GPNAME(J,JGP),J=1,21),GPLIM(1,JGP),GPLIM(2,JGP),=# 1 GPUSE(JGP),100.0*GPUSE(JGP)/HSUMR411 FORMAT (5X,21A1,6X,O4,' to',O4,6X,F12.6,6X,F12.3) FIN FIN FIN ENDJGP)))$ GPUSE(JGP) = GPUSE(JGP) + HOWOUT(J)D WRITE (5,9902) GPUSE(JGP)6"D9902 00qrsvw-TADATADATA BLOCK DATA COMMON /MAICOM/ ENTRY BYTE ENTRY (14,40) END"qQ%T͸qQ%0D (U %MAIL/rw/mu,MAIL/cr/-SP=MAIL,MAILIB/LBlb:[1,1]f77ots/lb/ACTFIL=5COMMON=HELBYE:RWCOMMON=MAICOM:RW TASK=...MAI UIC=[1,1]// IAS MAIL UTILITYn. R. N. Stillwell4 Institute for Lipid Research3 Baylor College of Medicine0 Houston, Texas 77030, 713-799-4721N IAS MAIL is a utility which allows users to send each other messages. InNcontrast to the IAS MESSAGE command and the Lipid Research utility SENDN(multi-line MESSAGE), the recipient need not be logged in at the time theNmessage is sent. Each user has a "mailbox". When a "letter" is sent, it isNdeposited in the recipient's mailbox, and only the recipient can retrieve itNfrom the mailbox. If the recipient is logged in at the time the letter isNsent, the message "You have mail!" appears on his terminal, accompanied by aNbeep. If he is not logged in, this message appears next time he does log in,Aand every time thereafter until he reads and empties his mailbox.p00ylmop4, SENDING MAIL, ------------ To send a letter, type: PDS>MAIL []Mwhere is a user name or a list of names separated by commas, ands. is an optional filename. For example: PDS>MAIL PDS>MAIL HENRY& PDS>MAIL HENRY,DON,FRED LETTERNIf no parameters are given, is prompted for. If 0 or 1 parameterNis given, the file is prompted for, and if is given as a reply,NLETTER.TMP is created and filled from the terminal. That is, you type theNletter on your terminal, and terminate it by typing . This method doesNnot allow you to correct mistakes after you have typed the at the end ofNeach line; also you can't change your mind about sending the letter after you start typing.DN Alternatively, you can create a letter as a text file, using an editorNsuch as EDI/KE or TECO, then mail it by naming the file in the MAIL commandNline, or in reply to MAIL's prompt ("File?"). If a filename is given withoutNan extension, .MAI is supplied. The text file is not deleted after it ismailed. N The letter is prefixed with a header containing your name and the date and time.nN The user name, or one of the user names, may be your own. Thus you canNsend yourself a copy of a letter, or a message that you will be reminded ofnext time you log in.oN An error message is given if a user name is not that of a valid user.NOtherwise the letter is placed in the user's mailbox. If you are logged inNwhen someone sends you a letter, you will be notified immediately that youNhave mail. If you are not logged in, you will get the message next time youHlog in, and every time you log in until you read and empty your mailbox.N To send copies of a letter to a number of users, you may specify severalNnames in the command line, as described above, or you can use a mailing list.Type: # PDS>MAIL @filename [letter] N If the starts with "@", the remainder of the name is taken asNa file name (default extension .MLS, default directory [current] or [10,3]).NThe file is opened and the user names read from it. This file is a mailingNlist, and (in the current version of MAIL) must contains a list of user names,Nseparated by commas, in one line of at most 80 characters. You can create yourNown mailing lists, using an editor, or use one of the public mailing listsfound in directory [10,3].* READING MAIL* ------------/ To see what mail is in your mailbox, type:u PDS>MAIL?hNA summary of your mail is typed: this is just the headers from each letter in your mailbox.u To read your mail, type:i PDS>MAIL ME,NThe contents of your mailbox is typed, and an opportunity given to reply toNeach letter and to file it by appending it to a file in your account, or toNdiscard it. When you have read and disposed of all your mail, your mailbox isNempty. You may also read a letter and leave it in your mailbox by just typingNa in reply to the query "Place the letter in (filename or TRASH): ". IfNyou do this, that letter will appear next time you go through your mailbox,4and you will be reminded of it next time you log in.r mailbox is typed, and an opportunity given to reply toNeach letter and to file it by appending it to a file in yourC MAIN TASK FOR IAS MAILBOX.CAC (Modeled after Mark Johnson's ARC MAIL from the DECUS SIG tape.CC The differences between RSX11M and IAS are enough that it did notCC seem feasible to start with that code, so this is an entirely new C program.)C.C This task parses a command line of the form:C C PDS>MAIL CCC where is a filename, and is a user name or aFC list of names separated by commas, or '?" or 'ME'. If no parametersAC are given, is prompted for. If 0 or 1 parameter isa+C given and is not '?' or 'ME',I<C the file is prompted for, and if is given as a reply,DC LETTER.TMP is created and filled from the terminal. If a filename2C is given without an extension, .MAI is supplied.CaFC [1,100]WHODID.LST is searched for the user name and an error message=C is given if not found. Otherwise the letter is appended to CC LB0:[10,0].MAI. If the system global area (SGA) MAICOMeEC shows that is logged in, the NEWMAI byte in his entry isaDC set so that the auxiliary task POSTMN notify the user next time heC (the postman) runs.vCa,C If the is "?", GETUSR is calledBC to determine the user's login name, and a summary of his mail isDC typed. If the is "me" (or "ME"), the mailbox is typed,AC and an opportunity given to reply to each letter and to file ite2C by appending it to a file in the user's account.ChGC If the starts with "@", the remainder of the name is taken EC as a file name (default extension .MLS, default directory [current]MBC or [10,3]). The file is opened and the user names read from it.CsBC See also the ancillary task POSTMN (file POSTMAN.FLX) which runsC periodically and checks fors:C newly logged-in users, notifying them if they have mail.C ;C Both MAIL and POSTMAN are linked to IASCOM and to MAICOM.dC Here follows MAILINK.CMD:iCoC $ON ERROR CONTINUEnC $REM $$$MAI!C $DEL MAIL.TSK;*,MAIL.MAP;*d<C $LINK/OPT/MAP:(MAIL/FU)/CROSS/MULTI MAIL,CKUSR,FEOF,-C GETUSR,WFOWN,- C LB0:[1,1]LEXLIB/LIBC SGA=F25RES:ROC SGA=IASCOM:ROC SGA=MAICOM:RWC TASK=$$$MAIC /C $INS MAILC ?C Task WHODID creates WHODID.LST; it is normally run monthly totAC summarize computer usage, but should also be run when users arek&C added to or removed from the system.CsC MODIFICATIONS:C EC May, 1983: If user reads a letter and does not copy it or trash it,I6C the letter is recycled into an updated mailbox file.CKC DECLARATIONSCG C Common SGA COMMON /MAICOM/ ENTRY BYTE ENTRY(14,20)C:# BYTE LINE(80),LINE2(80),HEADER(80)M BYTE USRNAM(80)% BYTE FILNAM(40),FILN2(40),MBNAME(40) BYTE MYNAME(20) BYTE TABD BYTE USRRET(14) BYTE BUIC(2),BTEMPc BYTE REPLY,QUERY BYTE REPLY,QUERY,gnull,gnorpwCc added cause f4p won't take a null string '' and to keep even byteA INTEGER UIC INTEGER MAXLINr8 LOGICAL*1 EOMAIL,VALID,EQUAL,TMPLET,NONAME,FOUND,NEWBOX EQUIVALENCE (UIC,BUIC)n DATA QUERY /'?'/l DATA TAB /"11/T DATA MAXLIN /80/S. DATA NENTRY /20/ !NUMBER OF ENTRIES IN MAICOM3 DATA NEWMAI /14/ !BYTE FLAGGING NEW MAIL IN MAICOMMC)C CODECN9C NEWBOX becomes TRUE if user reads a letter and does notC dispose of it.CT NEWBOX = .FALSE. (c make sure the null byte is really null gnull=0C Find out who I am. CALL WHOME (MYNAME) D CALL DEBUG ('MYNAME',MYNAME,0)#C Suppress "no such file" messages.I D GOTO 9950, CALL ERRSET(29,,,,.FALSE.)ED9950 CONTINUECC PARSE-COMMAND-LINEl-c IF (EQUAL(USRNAM,'')) PROMPT-FOR-USER-NAMESE/ IF (EQUAL(USRNAM,gnull)) PROMPT-FOR-USER-NAMESM CONDITIONAL (EQUAL(USRNAM,'ME')) READ-MAIL$ (EQUAL(USRNAM,'?')) SUMMARIZE-MAIL! (OTHERWISE) SEND-LETTER  FINCf CALL EXITCO TO CHECK-FOR-NO-FILENAMEh IF (LENGTH(FILNAM).GT.0) WRITE (5,20)d520 FORMAT (' Use your user name, not "ME", to mail ',N 1 'yourself a letter.') CALL EXIT FIN FINC TO CHECK-FOR-VALID-USER-NAME,C Open [1,100]WHODID.LST.D CALL DEBUG ('OLD','LB0:[1,100]WHODID.LST',3)? OPEN (UNIT=3,NAME='LB0:[1,100]WHODID.LST',TYPE='OLD',READONLY)UC Skip header. DO (I=1,5) READ (3,11) L,USRRET= REPEAT UNTIL (EQUAL(USRRET,USRNAM) .OR. LENGTH(USRRET).LE.1)  READ (3,11) L,LINE2 LINE2(L+1) = 0T DO (I=1,L)C$ IF (LINE2(I).EQ.']') LINE2(I) = ',' FIN DECODE (L,44,LINE2) USRRET,BUIC44 FORMAT (5X,14A1,5X,2O4) t I = 14N& WHILE (USRRET(I).EQ.' ' .AND. I.GE.1) USRRET(I) = 0 I = I-1 FIN9C The UIC word has the gro00lmop4up in the HO, member in the LO.D BTEMP = BUIC(1) BUIC(1) = BUIC(2) BUIC(2) = BTEMP FIN NONAME = LENGTH(USRRET).LE.1U CLOSE (UNIT=3) FINC5 TO COPY-LETTERSC Copy header.. WRITE (3,29) (HEADER(I),I=1,LENGTH(HEADER)-1) WHILE (.TRUE.)) D CALL ERRSNS2# READ (2,29,END=123,ERR=1000) LINE2I LINE2(80) = 0 CALL TRUNC(LINE2)1 WRITE (3,291) TAB,(LINE2(I),I=1,LENGTH(LINE2)-1),291 FORMAT (81A1)W FIN 123 CONTINUE CLOSE (UNIT=3):C Set default owner and protection back to system default. CALL WFOWN(0) CALL WDFFP(-1)B FINCI TO COPY-LETTER-TO-NEW-MAILBOX CALL ASNLUN (3,'SY',0)  WHEN (.NOT.NEWBOX)U0C Set default file protection to (RWED,RWED,E,E) CALL WDFFP("135400) D CALL ERRSNS)D CALL DEBUG ('NEW',MBNAME,3)(6 OPEN (UNIT=3,NAME=MBNAME,ACCESS='SEQUENTIAL',ERR=112,% 1 TYPE='NEW',CARRIAGECONTROL='LIST')E NEWBOX = .TRUE. FIN ELSE) D CALL ERRSNSED CALL DEBUG ('OLD',MBNAME,3)N6 OPEN (UNIT=3,NAME=MBNAME,ACCESS='SEQUENTIAL',ERR=113,% 1 TYPE='OLD',CARRIAGECONTROL='LIST')C CALL FEOF(3)C FIN DUPLICATE-LETTER VALID = .TRUE.O CALL WDFFP(-1)L FINC( TO COPY-LETTER-TO-FILEE8 IF (INDEX(FILNAM,'.').EQ.0) CALL CONCAT (FILNAM,'.MAI') CALL ASNLUN (3,'SY',0)A D CALL ERRSNSAD CALL DEBUG ('UNK',FILNAM,3)E6 OPEN (UNIT=3,NAME=FILNAM,ACCESS='SEQUENTIAL',ERR=114,) 1 TYPE='UNKNOWN',CARRIAGECONTROL='LIST') CALL FEOF(3) DUPLICATE-LETTERN VALID = .TRUE.( FINCA TO CREATE-LETTER= CALL MVSTR(FILNAM,'LETTER.TMP') CALL ASNLUN (2,'SY',0)AD CALL DEBUG ('NEW',FILNAM,2)E< OPEN (UNIT=2,NAME=FILNAM,TYPE='NEW',CARRIAGECONTROL='LIST') WRITE (5,36)(=36 FORMAT (/' Terminate your letter by typing on a ',O 1 'line by itself.')C READ (5,11,END=380) L,LINE2 LINE2(L+1) = 0D WHILE (.TRUE.)M, WRITE (2,29) (LINE2(I),I=1,LENGTH(LINE2)-1) READ (5,11,END=380) L,LINE2 LINE2(L+1) = 0O FIN 380 CONTINUE CLOSE (UNIT=5)E CLOSE (UNIT=2)= FINC TO DISPOSE-OF-LETTERT REPEAT UNTIL (VALID)M WRITE (5,31)831 FORMAT ('$Place the letter in (filename or TRASH): ') READ (5,11) L,FILNAMA FILNAM(L+1) = 0 IF (L.GT.0) CALL UCASE(FILNAM)( CONDITIONAL$ (L.EQ.0) COPY-LETTER-TO-NEW-MAILBOX' (EQUAL(FILNAM,'TRASH')) VALID = .TRUE.A (OTHERWISE) COPY-LETTER-TO-FILE FIN IF (.FALSE.)U 112 CONTINUE D IERR = 112 D GOTO 120 113 CONTINUE D IERR = 113 D GOTO 120 114 CONTINUE D IERR = 1140D120 WRITE (5,9960) IERR,IERR1,IERR2,IERR3,IERR4 VALID = .FALSE. FIN FIN CLOSE (UNIT=2,DISPOSE='DELETE') FINC1 TO DUPLICATE-LETTER/C INPUT FILE MUST BE OPEN ON UNIT 2 AND AT BOF.F VALID = .TRUE.+ WHILE (.TRUE.). D CALL ERRSNSI% READ (2,11,ERR=1001,END=110) L,LINE2T LINE2(L+1) = 0X C Copy with NO carriage control., WRITE (3,29) (LINE2(I),I=1,LENGTH(LINE2)-1) FIN110 CLOSE (UNIT=3) FINC  TO MAKE-HEADERO DO (I=1,80) HEADER(I) = 0 CALL MVSTR (HEADER,MYNAME)E CALL CONCAT (HEADER,': ')9# CALL DATE (HEADER(LENGTH(HEADER)))L CALL TRUNC(HEADER)F CALL CONCAT (HEADER,' ')# CALL TIME (HEADER(LENGTH(HEADER)))R CALL TRUNC (HEADER) D CALL DEBUG ('HEADER',HEADER,0) FINCE TO NOTIFY-USER.@C Check MAICOM for user name and set new-mail indicator if he isC Logged in (all terminals). C Indicator. IENTRY = 09 FOUND = .FALSE. WHILE (IENTRY .LT. NENTRY ) IENTRY = IENTRY+1# IF (EQUAL(ENTRY(1,IENTRY),USRNAM))E ENTRY(NEWMAI,IENTRY) = 1E FOUND = .TRUE. #D CALL DEBUG (' NOTIFIED',USRNAM,0)(!D WRITE (5,9906) ENTRY(13,IENTRY)ND9906 FORMAT (' ON TT',O8) FIN FIN. WRITE (5,54) (USRNAM(I),I=1,LENGTH(USRNAM)-1) WHEN (FOUND) WRITE (5,55) ELSE WRITE (5,56) F54 FORMAT ('$',80A1)"55 FORMAT ('+ has been notified.')656 FORMAT ('+ is not logged in but will be notified.') FINC  TO OPEN-LETTERR8 IF (INDEX(FILNAM,'.').EQ.0) CALL CONCAT (FILNAM,'.MAI') CALL ASNLUN (2,'SY',0)UD CALL DEBUG ('OLD',FILNAM,2)E3 WHEN (TMPLET) OPEN (UNIT=2,NAME=FILNAM,TYPE='OLD')B3 ELSE OPEN (UNIT=2,NAME=FILNAM,TYPE='OLD',READONLY), FINC TO OPEN-MAILBOX$ CALL MVSTR (MBNAME(1),'LB0:[10,0]') CALL CONCAT (MBNAME,MYNAME) C00rsvw-TADATADATAALL CONCAT (MBNAME,'.MAI') D CALL ERRSNS5D CALL DEBUG ('OLD',MBNAME,1)F- OPEN (UNIT=1,NAME=MBNAME,TYPE='OLD',ERR=101)s IF (.FALSE.)b101 WRITE (5,102).&102 FORMAT (' Your mailbox is empty.')D CALL ERRSNS (N1,N2,N3,N4)CD WRITE (5,9909) N1,N2,N3,N4$D9909 FORMAT (' ERRSNS RETURN:',4I8) CALL EXIT FIN EOMAIL = .FALSE., READ-LINE-FROM-MAILBOX FINCN TO OPEN-USER-MAILBOXP USRNAM(LENGTH(USRNAM)+1) = 0T ICOM = INDEX(USRNAM,',') ' WHEN (ICOM.EQ.0) ICOM = LENGTH(USRNAM)B ELSE USRNAM(ICOM) = 0 D CALL DEBUG ('USRNAM',USRNAM,0) C Read [1,100] user profile file CHECK-FOR-VALID-USER-NAME$42 FORMAT (' No such user as ',20A1)< WHEN (NONAME) WRITE (5,42) (USRNAM(I),I=1,LENGTH(USRNAM)-1) ELSEN CALL MVSTR(FILN2,'LB0:[10,0]')) CALL CONCAT (FILN2,USRNAM)  CALL CONCAT (FILN2,'.MAI')X2C Set default file protection to (RWED,RWED,WE,WE) CALL WDFFP("135400)!C Set default UIC to addressee's.A CALL WFOWN(UIC) D CALL ERRSNS'D CALL DEBUG ('UNK',FILN2,3)6 OPEN (UNIT=3,NAME=FILN2,ACCESS='SEQUENTIAL',ERR=1002,) 1 TYPE='UNKNOWN',CARRIAGECONTROL='LIST')fHC C: "ACCESS='APPEND'" causes trouble if ERR= exit is taken and the open9C C: is tried again with TYPE='NEW'. Use FEOF from ULBIO.- CALL FEOF(3)L FIN FINCL TO PARSE-COMMAND-LINE CALL GETMCR(LINE) DO (I=1,MAXLIN) IF (LINE(I).EQ."15) LINE(I) = 0 FIN USRNAM(1) = 0 FILNAM(1) = 0 MBNAME(1) = 0= ISP = INDEX(LINE,' ') !NOTE: PDS PUTS SPACE AFTER TASK NAMEN IF (ISP.GT.0)! CALL MVSTR (LINE(1),LINE(ISP+1))E ISP = INDEX(LINE,' ') IF (ISP.GT.0) LINE(ISP) = 0 CALL MVSTR(USRNAM,LINE) FIN- IF (ISP.GT.0) CALL MVSTR(FILNAM,LINE(ISP+1))iD CALL DEBUG('LINE',LINE,0) D CALL DEBUG('USRNAM',USRNAM,0)FD CALL DEBUG('FILNAM',FILNAM,0) FINCN TO PROMPT-FOR-FILEN WRITE (5,34)E?34 FORMAT ('$Name of file to send ( to type letter now): ')F READ (5,11) L,FILNAML FILNAM(L+1) = 0 CALL UCASE (FILNAM) TMPLET = (LENGTH(FILNAM).LE.1)  IF (TMPLET) CREATE-LETTER FINCL TO PROMPT-FOR-USER-NAMES) WRITE (5,10)X10 FORMAT ('$To: ')G! READ (5,11) L,(USRNAM(I),I=1,78)N11 FORMAT (Q,80A1) USRNAM(L+1) = 0 CALL UCASE (USRNAM) FINCL TO READ-LINE-FROM-MAILBOX D CALL ERRSNSM" READ (1,25,ERR=1003,END=105) LINE25 FORMAT (80A1) LINE(80) = 0F CALL TRUNC(LINE), IF (.FALSE.) 105 EOMAIL = .TRUE.n!D CALL DEBUG (' EOMAIL','TRUE',0)R FIN FINCL TO READ-MAIL+ CHECK-FOR-NO-FILENAME OPEN-MAILBOX  UNTIL (EOMAIL)E TYPE-LETTER DISPOSE-OF-LETTER REPLY-TO-LETTER FINC Delete-mailbox CLOSE (UNIT=1,DISP='DELETE')G FINC5 TO READ-MAILING-LIST8 CALL MVSTR (FILN2,USRNAM(2))(6 IF (INDEX(FILN2,'.').EQ.0) CALL CONCAT (FILN2,'.MLS') CALL ASNLUN (2,'SY',0)ND CALL DEBUG ('OLD',FILN2,2), OPEN (UNIT=2,NAME=FILN2,TYPE='OLD',ERR=130) IF (.FALSE.),#130 CALL MVSTR (FILN2,'LB0:[10,3]')n CALL CONCAT (FILN2,USRNAM(2))6 IF (INDEX(FILN2,'.').EQ.0) CALL CONCAT (FILN2,'.MLS') D CALL ERRSNSLD CALL DEBUG ('OLD',FILN2,2)- OPEN (UNIT=2,NAME=FILN2,TYPE='OLD',ERR=1004)F FIN READ (2,29) USRNAME USRNAM(80) = 0L CALL TRUNC(USRNAM) !D CALL DEBUG (' USRNAM',USRNAM,0)L CLOSE (UNIT=2)I FINCF TO REPLY-TO-LETTERC FILNAM(1) = 04 WRITE (5,60) (USRNAM(I),I=1,LENGTH(USRNAM)-1),QUERY060 FORMAT (' Do you want to reply to',(1X,40a1)) READ (5,61) REPLY61 FORMAT (A1)0 IF (REPLY.EQ.'Y' .OR. REPLY.EQ.'y') SEND-LETTER FINCI TO REPORT-MAILBOX-ERROR 1000 CONTINUE' D IERR = 1000E D GOTO 1020L 1001 CONTINUEI D IERR = 1001U D GOTO 1020L 1002 CONTINUER D IERR = 1002 D GOTO 1020U 1003 CONTINUE( D IERR = 1003 D GOTO 1020 1004 CONTINUE( D IERR = 1004M D GOTO 1020(*D1020 CALL ERRSNS(IERR1,IERR2,IERR3,IERR4)-D WRITE (5,9960) IERR,IERR1,IERR2,IERR3,IERR4T9D9960 FORMAT (' ERROR AT ',I5/' RETURN FROM ERRSNS:',4I8)1 WRITE (5,1200)5)1200 FORMAT (' MAIL -- FATAL FILE ERROR')Y CALL EXIT FINCS TO SEND-LETTER( IF (USRNAM(1).EQ.'@') READ-MAILING-LIST) IF (LENGTH(FILNAM).LE.1) PROMPT-FOR-FILEI OPEN-LETTER MAKE-HEADER# REPEAT UNTIL (LENGTH(USRNAM).LE.1) OPEN-USER-MAILBOX00lmop4 COPY-LETTER NOTIFY-USER REWIND 2 C Move to next user name# CALL MVSTR (USRNAM,USRNAM(ICOM+1))N FIN. WHEN (TMPLET) CLOSE (UNIT=2,DISPOSE='DELETE') ELSE CLOSE (UNIT=2) FINCM TO SUMMARIZE-MAIL CHECK-FOR-NO-FILENAME OPEN-MAILBOX, UNTIL (EOMAIL)A TYPE-HEADER FIN FINC' TO TYPE-HEADERF$C LINE should already have a header.) IF (LINE(1).EQ.TAB) REPORT-MAILBOX-ERRORI* WRITE (5,27) (LINE(I),I=1,LENGTH(LINE)-1)27 FORMAT (/1X,80A1)A REPEAT UNTIL (EOMAIL.OR.(LINE(1).NE.TAB)) READ-LINE-FROM-MAILBOXT FIN RCR TO TYPE-LETTERt$C LINE should already have a header.) IF (LINE(1).EQ.TAB) REPORT-MAILBOX-ERRORE(C Save sender's name for possible reply. ISP = INDEX(LINE,':') CALL MVSTR(USRNAM,LINE,ISP) FILNAM(1) = 0 CALL ASNLUN (2,'SY',0)#D CALL DEBUG ('NEW','LETTER.TMP',2)EB OPEN (UNIT=2,NAME='LETTER.TMP',TYPE='NEW',CARRIAGECONTROL='LIST', 1 DISP='DELETE')O* REPEAT UNTIL (EOMAIL.OR.(LINE(1).NE.TAB))* WRITE (5,28) (LINE(I),I=1,LENGTH(LINE)-1)28 FORMAT (1X,80A1)B* WRITE (2,29) (LINE(I),I=1,LENGTH(LINE)-1)29 FORMAT (80A1) READ-LINE-FROM-MAILBOXh FIN REWIND 2( FINC) ENDC WHOME- SUBROUTINE WHOME (OUTMSG)Cr"C RETURNS WITH USER NAME IN OUTMSGC) BYTE OUTMSG(20) INTEGER USRBUF(160) INTEGER TTTYPEL DATA TTTYPE /'TT'/L DATA LUBUF /160/ECM CALL GETUSR (USRBUF,LUBUF,IER)R IF (IER.LT.0) WRITE (5,101) IER101 FORMAT (' ERROR',I8) STOP  FINCM C GET MY TI1 CALL GETLUN (5,OUTMSG)  MYTI = OUTMSG(3)(D WRITE (5,9901) MYTI,D9901 FORMAT (' MY TI: IS ',O8)1 DO (I=8,LUBUF,8)F$D WRITE (5,9902) (USRBUF(J),J=I-7,I)D9902 FORMAT (1X,6A2,2X,A2,O2) IF (USRBUF(I-1).EQ.TTTYPE)M IF (USRBUF(I).EQ.MYTI) " CALL MVSTR(OUTMSG,USRBUF(I-7),10) D CALL DEBUG ('OUTMSG',OUTMSG,0) RETURNT FIN FIN FIN WRITE (5,10) MYTI.10 FORMAT (' CANNOT IDENTIFY USER AT TI: ',O8) STOPI END=C SUBROUTINE TO CONVERT A NULL-TERMINATED STRING TO UPPERCASE SUBROUTINE UCASE(STRING)L BYTE STRING(1)M L = LENGTH(STRING)-1T IF (L.LE.0) RETURN0 DO (I=1,L)Y7 IF (STRING(I).GE.'a'.AND.STRING(I).LE.'z') STRING(I) =S 1 STRING(I)-"40 FIN RETURNX END SUBROUTINE CONCAT(A,B)) BYTE A(1),B(1)  CALL MVSTR(A(LENGTH(A)),B)V END% SUBROUTINE DEBUG(LABEL,STRING,IUNIT)TD BYTE LABEL(1),STRING(1)F>D WRITE (5,9901) IUNIT,(LABEL(I),I=1,LENGTH(LABEL)-1),':',' ',$D 1 (STRING(I),I=1,LENGTH(STRING)-1)$D9901 FORMAT (1X,I4,1X,80A1/6X,80A1) END TO UPPERCASE SUBROUTINE UCASE(STRING)L BYTE STRING(1)M L = LENGTH(STRING)-1T IF (L.LE.0) RETURN0 DO C MAIN TASK FOR IAS MAILBOX.CAC (Modeled after Mark Johnson's ARC MAIL from the DECUS SIG tape.DCC The differences between RSX11M and IAS are enough that it did notRCC seem feasible to start with that code, so this is an entirely newG C program.)EC,.C This task parses a command line of the form:C) C PDS>MAIL CUCC where is a filename, and is a user name or aFC list of names separated by commas, or '?" or 'ME'. If no parametersAC are given, is prompted for. If 0 or 1 parameter isa+C given and is not '?' or 'ME',I<C the file is prompted for, and if is given as a reply,DC LETTER.TMP is created and filled from the terminal. If a filename2C is given without an extension, .MAI is supplied.CaFC [1,100]WHODID.LST is searched for the user name and an error message=C is given if not found. Otherwise the letter is appended to CC LB0:[10,0].MAI. If the system global area (SGA) MAICOMeEC shows that is logged in, the NEWMAI byte in his entry isaDC set so that the auxiliary task POSTMN notify the user next time heC (the postman) runs.vCa,C If the is "?", GETUSR is calledBC to determine the user's login name, and a summary of his mail isDC typed. If the is "me" (or "ME"), the mailbox is typed,AC and an opportunity given to reply to each letter and to file ite2C by appending it to a file in the user's account.ChGC If the starts with "@", the remainder of th00rsvw-TADATADATAe name is taken EC as a file name (default extension .MLS, default directory [current]MBC or [10,3]). The file is opened and the user names read from it.CsBC See also the ancillary task POSTMN (file POSTMAN.FLX) which runsC periodically and checks fors:C newly logged-in users, notifying them if they have mail.C ;C Both MAIL and POSTMAN are linked to IASCOM and to MAICOM.dC Here follows MAILINK.CMD:iCoC $ON ERROR CONTINUEnC $REM $$$MAI!C $DEL MAIL.TSK;*,MAIL.MAP;*d<C $LINK/OPT/MAP:(MAIL/FU)/CROSS/MULTI MAIL,CKUSR,FEOF,-C GETUSR,WFOWN,- C LB0:[1,1]LEXLIB/LIBC SGA=F25RES:ROC SGA=IASCOM:ROC SGA=MAICOM:RWC TASK=$$$MAIC /C $INS MAILC ?C Task WHODID creates WHODID.LST; it is normally run monthly totAC summarize computer usage, but should also be run when users arek&C added to or removed from the system.CsC MODIFICATIONS:C EC May, 1983: If user reads a letter and does not copy it or trash it,I6C the letter is recycled into an updated mailbox file.CKC DECLARATIONSCG C Common SGA COMMON /MAICOM/ ENTRY BYTE ENTRY(14,20)C:# BYTE LINE(80),LINE2(80),HEADER(80)M BYTE USRNAM(80)% BYTE FILNAM(40),FILN2(40),MBNAME(40) BYTE MYNAME(20) BYTE TABD BYTE USRRET(14) BYTE BUIC(2),BTEMP BYTE REPLY,QUERYr INTEGER UIC INTEGER MAXLINw8 LOGICAL*1 EOMAIL,VALID,EQUAL,TMPLET,NONAME,FOUND,NEWBOX EQUIVALENCE (UIC,BUIC)  DATA QUERY /'?'/r DATA TAB /"11/  DATA MAXLIN /80/ . DATA NENTRY /20/ !NUMBER OF ENTRIES IN MAICOM3 DATA NEWMAI /14/ !BYTE FLAGGING NEW MAIL IN MAICOMSCC CODECI9C NEWBOX becomes TRUE if user reads a letter and does not)C dispose of it.CS NEWBOX = .FALSE.NC Find out who I am. CALL WHOME (MYNAME) D CALL DEBUG ('MYNAME',MYNAME,0)#C Suppress "no such file" messages.R D GOTO 9950U CALL ERRSET(29,,,,.FALSE.)LD9950 CONTINUECA PARSE-COMMAND-LINE,, IF (EQUAL(USRNAM,'')) PROMPT-FOR-USER-NAMES CONDITIONAL (EQUAL(USRNAM,'ME')) READ-MAILD$ (EQUAL(USRNAM,'?')) SUMMARIZE-MAIL! (OTHERWISE) SEND-LETTERG FINCM CALL EXITC TO CHECK-FOR-NO-FILENAMEc IF (LENGTH(FILNAM).GT.0)e WRITE (5,20)o520 FORMAT (' Use your user name, not "ME", to mail ',t 1 'yourself a letter.') CALL EXIT FIN FINCM TO CHECK-FOR-VALID-USER-NAMEcC Open [1,100]WHODID.LST.D CALL DEBUG ('OLD','LB0:[1,100]WHODID.LST',3)? OPEN (UNIT=3,NAME='LB0:[1,100]WHODID.LST',TYPE='OLD',READONLY)-C Skip header. DO (I=1,5) READ (3,11) L,USRRET= REPEAT UNTIL (EQUAL(USRRET,USRNAM) .OR. LENGTH(USRRET).LE.1)  READ (3,11) L,LINE2 LINE2(L+1) = 0T DO (I=1,L)C$ IF (LINE2(I).EQ.']') LINE2(I) = ',' FIN DECODE (L,44,LINE2) USRRET,BUIC44 FORMAT (5X,14A1,5X,2O4) t I = 14t& WHILE (USRRET(I).EQ.' ' .AND. I.GE.1) USRRET(I) = 0 I = I-1 FIN9C The UIC word has the group in the HO, member in the LO.D BTEMP = BUIC(1) BUIC(1) = BUIC(2) BUIC(2) = BTEMP FIN NONAME = LENGTH(USRRET).LE.1- CLOSE (UNIT=3) FINC5 TO COPY-LETTERSC Copy header.. WRITE (3,29) (HEADER(I),I=1,LENGTH(HEADER)-1) WHILE (.TRUE.)) D CALL ERRSNS2# READ (2,29,END=123,ERR=1000) LINE2I LINE2(80) = 0 CALL TRUNC(LINE2)1 WRITE (3,291) TAB,(LINE2(I),I=1,LENGTH(LINE2)-1),291 FORMAT (81A1)W FIN 123 CONTINUE CLOSE (UNIT=3):C Set default owner and protection back to system default. CALL WFOWN(0) CALL WDFFP(-1)B FINCI TO COPY-LETTER-TO-NEW-MAILBOX CALL ASNLUN (3,'SY',0)  WHEN (.NOT.NEWBOX)-0C Set default file protection to (RWED,RWED,E,E) CALL WDFFP("135400) D CALL ERRSNS)D CALL DEBUG ('NEW',MBNAME,3)(6 OPEN (UNIT=3,NAME=MBNAME,ACCESS='SEQUENTIAL',ERR=112,% 1 TYPE='NEW',CARRIAGECONTROL='LIST')E NEWBOX = .TRUE. FIN ELSE) D CALL ERRSNSED CALL DEBUG ('OLD',MBNAME,3)N6 OPEN (UNIT=3,NAME=MBNAME,ACCESS='SEQUENTIAL',ERR=113,% 1 TYPE='OLD',CARRIAGECONTROL='LIST')C CALL FEOF(3)C FIN DUPLICATE-LETTER VALID = .TRUE.O CALL WDFFP(-1)L FINC( TO COPY-LETTER-TO-FILEE8 IF (INDEX(FILNAM,'.').EQ.0) CALL CONCAT (FILNAM,'.MAI') CALL ASNLUN (3,'SY',0)A 00lmop4D CALL ERRSNSAD CALL DEBUG ('UNK',FILNAM,3)E6 OPEN (UNIT=3,NAME=FILNAM,ACCESS='SEQUENTIAL',ERR=114,) 1 TYPE='UNKNOWN',CARRIAGECONTROL='LIST') CALL FEOF(3) DUPLICATE-LETTERN VALID = .TRUE.( FINCA TO CREATE-LETTER= CALL MVSTR(FILNAM,'LETTER.TMP') CALL ASNLUN (2,'SY',0)AD CALL DEBUG ('NEW',FILNAM,2)E< OPEN (UNIT=2,NAME=FILNAM,TYPE='NEW',CARRIAGECONTROL='LIST') WRITE (5,36)(=36 FORMAT (/' Terminate your letter by typing on a ',O 1 'line by itself.')C READ (5,11,END=380) L,LINE2 LINE2(L+1) = 0D WHILE (.TRUE.)M, WRITE (2,29) (LINE2(I),I=1,LENGTH(LINE2)-1) READ (5,11,END=380) L,LINE2 LINE2(L+1) = 0O FIN 380 CONTINUE CLOSE (UNIT=5)E CLOSE (UNIT=2)= FINC TO DISPOSE-OF-LETTERT REPEAT UNTIL (VALID)M WRITE (5,31)831 FORMAT ('$Place the letter in (filename or TRASH): ') READ (5,11) L,FILNAMA FILNAM(L+1) = 0 IF (L.GT.0) CALL UCASE(FILNAM)( CONDITIONAL$ (L.EQ.0) COPY-LETTER-TO-NEW-MAILBOX' (EQUAL(FILNAM,'TRASH')) VALID = .TRUE.A (OTHERWISE) COPY-LETTER-TO-FILE FIN IF (.FALSE.)U 112 CONTINUE D IERR = 112 D GOTO 120 113 CONTINUE D IERR = 113 D GOTO 120 114 CONTINUE D IERR = 1140D120 WRITE (5,9960) IERR,IERR1,IERR2,IERR3,IERR4 VALID = .FALSE. FIN FIN CLOSE (UNIT=2,DISPOSE='DELETE') FINC1 TO DUPLICATE-LETTER/C INPUT FILE MUST BE OPEN ON UNIT 2 AND AT BOF.F VALID = .TRUE.+ WHILE (.TRUE.). D CALL ERRSNSI% READ (2,11,ERR=1001,END=110) L,LINE2T LINE2(L+1) = 0X C Copy with NO carriage control., WRITE (3,29) (LINE2(I),I=1,LENGTH(LINE2)-1) FIN110 CLOSE (UNIT=3) FINC  TO MAKE-HEADERO DO (I=1,80) HEADER(I) = 0 CALL MVSTR (HEADER,MYNAME)E CALL CONCAT (HEADER,': ')9# CALL DATE (HEADER(LENGTH(HEADER)))L CALL TRUNC(HEADER)F CALL CONCAT (HEADER,' ')# CALL TIME (HEADER(LENGTH(HEADER)))R CALL TRUNC (HEADER) D CALL DEBUG ('HEADER',HEADER,0) FINCE TO NOTIFY-USER.@C Check MAICOM for user name and set new-mail indicator if he isC Logged in (all terminals). C Indicator. IENTRY = 09 FOUND = .FALSE. WHILE (IENTRY .LT. NENTRY ) IENTRY = IENTRY+1# IF (EQUAL(ENTRY(1,IENTRY),USRNAM))E ENTRY(NEWMAI,IENTRY) = 1E FOUND = .TRUE. #D CALL DEBUG (' NOTIFIED',USRNAM,0)(!D WRITE (5,9906) ENTRY(13,IENTRY)ND9906 FORMAT (' ON TT',O8) FIN FIN. WRITE (5,54) (USRNAM(I),I=1,LENGTH(USRNAM)-1) WHEN (FOUND) WRITE (5,55) ELSE WRITE (5,56) F54 FORMAT ('$',80A1)"55 FORMAT ('+ has been notified.')656 FORMAT ('+ is not logged in but will be notified.') FINC  TO OPEN-LETTERR8 IF (INDEX(FILNAM,'.').EQ.0) CALL CONCAT (FILNAM,'.MAI') CALL ASNLUN (2,'SY',0)UD CALL DEBUG ('OLD',FILNAM,2)E3 WHEN (TMPLET) OPEN (UNIT=2,NAME=FILNAM,TYPE='OLD')B3 ELSE OPEN (UNIT=2,NAME=FILNAM,TYPE='OLD',READONLY), FINC TO OPEN-MAILBOX$ CALL MVSTR (MBNAME(1),'LB0:[10,0]') CALL CONCAT (MBNAME,MYNAME) CALL CONCAT (MBNAME,'.MAI') D CALL ERRSNS5D CALL DEBUG ('OLD',MBNAME,1)F- OPEN (UNIT=1,NAME=MBNAME,TYPE='OLD',ERR=101)s IF (.FALSE.)b101 WRITE (5,102).&102 FORMAT (' Your mailbox is empty.')D CALL ERRSNS (N1,N2,N3,N4)CD WRITE (5,9909) N1,N2,N3,N4$D9909 FORMAT (' ERRSNS RETURN:',4I8) CALL EXIT FIN EOMAIL = .FALSE., READ-LINE-FROM-MAILBOX FINCN TO OPEN-USER-MAILBOXP USRNAM(LENGTH(USRNAM)+1) = 0T ICOM = INDEX(USRNAM,',') ' WHEN (ICOM.EQ.0) ICOM = LENGTH(USRNAM)B ELSE USRNAM(ICOM) = 0 D CALL DEBUG ('USRNAM',USRNAM,0) C Read [1,100] user profile file CHECK-FOR-VALID-USER-NAME$42 FORMAT (' No such user as ',20A1)< WHEN (NONAME) WRITE (5,42) (USRNAM(I),I=1,LENGTH(USRNAM)-1) ELSEN CALL MVSTR(FILN2,'LB0:[10,0]')) CALL CONCAT (FILN2,USRNAM)  CALL CONCAT (FILN2,'.MAI')X2C Set default file protection to (RWED,RWED,WE,WE) CALL WDFFP("135400)!C Set default UIC to addressee's.A CALL WFOWN(UIC) D CALL ERRSNS'D CALL DEBUG ('UNK',FILN2,3)6 OPEN (UNIT=3,NAME=FILN2,ACCESS='SEQUENTIAL',ERR=1002,) 1 TYPE='UNKNOWN',CARRIAGECONTROL='LIST')fHC C: "ACCESS='APPEND'" causes trouble if ERR= exit is taken and the open9C C: is tried again with TYPE='NEW'. Use FEOF from ULBIO.- C00rsvw-TADATADATAALL FEOF(3)L FIN FINCL TO PARSE-COMMAND-LINE CALL GETMCR(LINE) DO (I=1,MAXLIN) IF (LINE(I).EQ."15) LINE(I) = 0 FIN USRNAM(1) = 0 FILNAM(1) = 0 MBNAME(1) = 0= ISP = INDEX(LINE,' ') !NOTE: PDS PUTS SPACE AFTER TASK NAMEN IF (ISP.GT.0)! CALL MVSTR (LINE(1),LINE(ISP+1))E ISP = INDEX(LINE,' ') IF (ISP.GT.0) LINE(ISP) = 0 CALL MVSTR(USRNAM,LINE) FIN- IF (ISP.GT.0) CALL MVSTR(FILNAM,LINE(ISP+1))iD CALL DEBUG('LINE',LINE,0) D CALL DEBUG('USRNAM',USRNAM,0)FD CALL DEBUG('FILNAM',FILNAM,0) FINCN TO PROMPT-FOR-FILEN WRITE (5,34)E?34 FORMAT ('$Name of file to send ( to type letter now): ')F READ (5,11) L,FILNAML FILNAM(L+1) = 0 CALL UCASE (FILNAM) TMPLET = (LENGTH(FILNAM).LE.1)  IF (TMPLET) CREATE-LETTER FINCL TO PROMPT-FOR-USER-NAMES) WRITE (5,10)X10 FORMAT ('$To: ')G! READ (5,11) L,(USRNAM(I),I=1,78)N11 FORMAT (Q,80A1) USRNAM(L+1) = 0 CALL UCASE (USRNAM) FINCL TO READ-LINE-FROM-MAILBOX D CALL ERRSNSM" READ (1,25,ERR=1003,END=105) LINE25 FORMAT (80A1) LINE(80) = 0F CALL TRUNC(LINE), IF (.FALSE.) 105 EOMAIL = .TRUE.n!D CALL DEBUG (' EOMAIL','TRUE',0)R FIN FINCL TO READ-MAIL+ CHECK-FOR-NO-FILENAME OPEN-MAILBOX  UNTIL (EOMAIL)E TYPE-LETTER DISPOSE-OF-LETTER REPLY-TO-LETTER FINC Delete-mailbox CLOSE (UNIT=1,DISP='DELETE')G FINC5 TO READ-MAILING-LIST8 CALL MVSTR (FILN2,USRNAM(2))(6 IF (INDEX(FILN2,'.').EQ.0) CALL CONCAT (FILN2,'.MLS') CALL ASNLUN (2,'SY',0)ND CALL DEBUG ('OLD',FILN2,2), OPEN (UNIT=2,NAME=FILN2,TYPE='OLD',ERR=130) IF (.FALSE.),#130 CALL MVSTR (FILN2,'LB0:[10,3]')n CALL CONCAT (FILN2,USRNAM(2))6 IF (INDEX(FILN2,'.').EQ.0) CALL CONCAT (FILN2,'.MLS') D CALL ERRSNSLD CALL DEBUG ('OLD',FILN2,2)- OPEN (UNIT=2,NAME=FILN2,TYPE='OLD',ERR=1004)F FIN READ (2,29) USRNAME USRNAM(80) = 0L CALL TRUNC(USRNAM) !D CALL DEBUG (' USRNAM',USRNAM,0)L CLOSE (UNIT=2)I FINCF TO REPLY-TO-LETTERC FILNAM(1) = 04 WRITE (5,60) (USRNAM(I),I=1,LENGTH(USRNAM)-1),QUERY060 FORMAT (' Do you want to reply to',(1X,40a1)) READ (5,61) REPLY61 FORMAT (A1)0 IF (REPLY.EQ.'Y' .OR. REPLY.EQ.'y') SEND-LETTER FINCI TO REPORT-MAILBOX-ERROR 1000 CONTINUE' D IERR = 1000E D GOTO 1020L 1001 CONTINUEI D IERR = 1001U D GOTO 1020L 1002 CONTINUER D IERR = 1002 D GOTO 1020U 1003 CONTINUE( D IERR = 1003 D GOTO 1020 1004 CONTINUE( D IERR = 1004M D GOTO 1020(*D1020 CALL ERRSNS(IERR1,IERR2,IERR3,IERR4)-D WRITE (5,9960) IERR,IERR1,IERR2,IERR3,IERR4T9D9960 FORMAT (' ERROR AT ',I5/' RETURN FROM ERRSNS:',4I8)1 WRITE (5,1200)5)1200 FORMAT (' MAIL -- FATAL FILE ERROR')Y CALL EXIT FINCS TO SEND-LETTER( IF (USRNAM(1).EQ.'@') READ-MAILING-LIST) IF (LENGTH(FILNAM).LE.1) PROMPT-FOR-FILEI OPEN-LETTER MAKE-HEADER# REPEAT UNTIL (LENGTH(USRNAM).LE.1) OPEN-USER-MAILBOX COPY-LETTER NOTIFY-USER REWIND 2 C Move to next user name# CALL MVSTR (USRNAM,USRNAM(ICOM+1))N FIN. WHEN (TMPLET) CLOSE (UNIT=2,DISPOSE='DELETE') ELSE CLOSE (UNIT=2) FINCM TO SUMMARIZE-MAIL CHECK-FOR-NO-FILENAME OPEN-MAILBOX, UNTIL (EOMAIL)A TYPE-HEADER FIN FINC' TO TYPE-HEADERF$C LINE should already have a header.) IF (LINE(1).EQ.TAB) REPORT-MAILBOX-ERRORI* WRITE (5,27) (LINE(I),I=1,LENGTH(LINE)-1)27 FORMAT (/1X,80A1)A REPEAT UNTIL (EOMAIL.OR.(LINE(1).NE.TAB)) READ-LINE-FROM-MAILBOXT FIN RCR TO TYPE-LETTERt$C LINE should already have a header.) IF (LINE(1).EQ.TAB) REPORT-MAILBOX-ERRORE(C Save sender's name for possible reply. ISP = INDEX(LINE,':') CALL MVSTR(USRNAM,LINE,ISP) FILNAM(1) = 0 CALL ASNLUN (2,'SY',0)#D CALL DEBUG ('NEW','LETTER.TMP',2)EB OPEN (UNIT=2,NAME='LETTER.TMP',TYPE='NEW',CARRIAGECONTROL='LIST', 1 DISP='DELETE')O* REPEAT UNTIL (EOMAIL.OR.(LINE(1).NE.TAB))* WRITE (5,28) (LINE(I),I=1,LENGTH(LINE)-1)28 FORMAT (1X,80A1)B* WRITE (2,29) (LINE(I),I=1,LENGTH(LINE)-1)29 FORMAT (80A1) READ-LINE-FROM-MAILBOXh FIN REWIND 2( FINC) ENDC WHOME- SUBROUTINE WHOME (OUTMSG)Cr"C RETURNS WITH USER NAME IN OUTMSGC) BYTE 00lmop4OUTMSG(20) INTEGER USRBUF(160) INTEGER TTTYPEL DATA TTTYPE /'TT'/L DATA LUBUF /160/ECM CALL GETUSR (USRBUF,LUBUF,IER)R IF (IER.LT.0) WRITE (5,101) IER101 FORMAT (' ERROR',I8) STOP  FINCM C GET MY TI1 CALL GETLUN (5,OUTMSG)  MYTI = OUTMSG(3)(D WRITE (5,9901) MYTI,D9901 FORMAT (' MY TI: IS ',O8)1 DO (I=8,LUBUF,8)F$D WRITE (5,9902) (USRBUF(J),J=I-7,I)D9902 FORMAT (1X,6A2,2X,A2,O2) IF (USRBUF(I-1).EQ.TTTYPE)M IF (USRBUF(I).EQ.MYTI) " CALL MVSTR(OUTMSG,USRBUF(I-7),10) D CALL DEBUG ('OUTMSG',OUTMSG,0) RETURNT FIN FIN FIN WRITE (5,10) MYTI.10 FORMAT (' CANNOT IDENTIFY USER AT TI: ',O8) STOPI END=C SUBROUTINE TO CONVERT A NULL-TERMINATED STRING TO UPPERCASE SUBROUTINE UCASE(STRING)L BYTE STRING(1)M L = LENGTH(STRING)-1T IF (L.LE.0) RETURN0 DO (I=1,L)Y7 IF (STRING(I).GE.'a'.AND.STRING(I).LE.'z') STRING(I) =S 1 STRING(I)-"40 FIN RETURNX END SUBROUTINE CONCAT(A,B)) BYTE A(1),B(1)  CALL MVSTR(A(LENGTH(A)),B)V END% SUBROUTINE DEBUG(LABEL,STRING,IUNIT)TD BYTE LABEL(1),STRING(1)F>D WRITE (5,9901) IUNIT,(LABEL(I),I=1,LENGTH(LABEL)-1),':',' ',$D 1 (STRING(I),I=1,LENGTH(STRING)-1)$D9901 FORMAT (1X,I4,1X,80A1/6X,80A1) END TO UPPERCASE SUBROUTINE UCASE(STRING)L BYTE STRING(1)M L = LENGTH(STRING)-1T IF (L.LE.0) RETURN0 DO (I=1,L)Y7 IF (STRING(I).GE.'a'.AND.STRING(I).LE.'z') STRING(I) =S 1 STRING(I)-"40 FIN RETURNX END SUBROUTINE CONCAT(A,B)) BYTE A(1),B(1)  CALL MVSTR(A(LENGTH(A)),B)V END% SUBROUTINE DEBUG( COMMON /MAICOM/ ENTRY  BYTE ENTRY(14,40) 3 BYTE LINE(80),LINE2(80),HEADER(80),SUBJEC(80) BYTE USRNAM(80),USRTMP(80)+ BYTE FILNAM(40),FILN2(40),MBNAME(40)  BYTE MYNAME(20)  BYTE TAB BYTE USRRET(14),FORWAR(14) BYTE BUIC(2),BTEMP c BYTE REPLY,QUERY # BYTE REPLY,QUERY,gnull,gnorp Hc added cause f4p won't take a null string '' and to keep even byte  INTEGER UIC  INTEGER MAXLINB LOGICAL*1 EOMAIL,VALID,EQUAL,TMPLET,NONAME,FOUND,NEWBOX,KTAB EQUIVALENCE (UIC,BUIC)  DATA QUERY /'?'/ , DATA TAB /"11/  DATA MAXLIN /80/ T5 DATA NENTRY /40/ !NUMBER OF ENTRIES IN MAICOM : DATA NEWMAI /14/ !BYTE FLAGGING NEW MAIL IN MAICOM  NEWBOX = .FALSE. B-c make sure the null byte is really null  gnull=0  CALL WHOME (MYNAME) %D CALL DEBUG ('MYNAME',MYNAME,0) nD GOTO 9950 ! CALL ERRSET(29,,,,.FALSE.) ED9950 CONTINUE O ASSIGN 32757 TO I32758 E GO TO 32758 32757 CONTINUE I2c IF (EQUAL(USRNAM,'')) PROMPT-FOR-USER-NAMES 1 IF(.NOT.(EQUAL(USRNAM,gnull))) GO TO 32756  ASSIGN 32754 TO I32755 T GO TO 32755 32754 CONTINUE 132756 LENUSR=LENGTH(USRNAM)N0 IF(.NOT.(EQUAL(USRNAM,'ME'))) GO TO 32752  ASSIGN 32750 TO I32751  GO TO 32751 32750 GO TO 32753 /32752 IF(.NOT.(EQUAL(USRNAM,'?'))) GO TO 32749  ASSIGN 32747 TO I32748 ( GO TO 32748 32747 GO TO 32753 32749 ASSIGN 32745 TO I32746  GO TO 32746 32745 CONTINUE 32753 CALL EXIT 32744 CONTINUE U1 IF(.NOT.(LENGTH(FILNAM).GT.0)) GO TO 32743  WRITE (5,20) I920 FORMAT (' Use your user name, not "ME", to mail ',  1 'yourself a letter.')  CALL EXIT 32743 GO TO I32744 32742 CONTINUE I3D CALL DEBUG ('OLD','SD0:[1,100]WHODID.LST',3) E OPEN (UNIT=3,NAME='SD0:[1,100]WHODID.LST',TYPE='OLD',READONLY) 3-C Truncate possible spaces on end of usernameT DO 32741 I=1,123%32741 IF(USRNAM(I).EQ.32) USRNAM(I)=02 GO TO 327395D32740 IF(EQUAL(USRRET,USRNAM) .OR. LENGTH(USRRET).LE.1) GO TO 32738 32739 READ (3,11) L,LINE25 LINE2(L+1) = 0 C clear possible forwarding name DO 444 I=1,14o444 FORWAR(I)=0  DO 32737 I=1,L 4* IF (LINE2(I).EQ.']') LINE2(I) = ',' 32737 CONTINUE.C If a regular name, decode first part of line3 IF (L.LT.26) DECODE (L,44,LINE2) USRRET,BUIC 44 FORMAT (14A1,3X,O3,1X,O3) /C If a forwarding name is there, decode 00rsvw-TADATADATAit alsoR> IF (L.GE.26) DECODE (L,45,LINE2) USRRET,BUIC,FORWAR,BUIC345 FORMAT (14A1,3X,O3,1X,O3,1X,14A1,3X,O3,1X,O3) DO 32736 I=1,14E& IF(USRRET(I).EQ.' ') USRRET(I)=0&32736 IF(FORWAR(I).EQ.' ') FORWAR(I)=032735 BTEMP = BUIC(1)  BUIC(1) = BUIC(2)  BUIC(2) = BTEMP D WRITE(5,9999)USRRET,USRNAM$D9999 FORMAT(' |',14A1,'|',80A1,'|') GO TO 32740 #32738 NONAME = LENGTH(USRRET).LE.1 C CLOSE (UNIT=3) 3>C If a forwarding name exists, change username and tell mailer! IF(FORWAR(1).EQ.0) GOTO 565E! WRITE (5,553) USRRET,FORWARO?553 FORMAT(/' ',14A1,'''s mail is being forwarded to ',14A1/)1 OLDLEN=LENGTH(USRNAM)) NEWLEN=LENGTH(FORWAR)(" IF(NEWLEN.GT.OLDLEN)GOTO 555#C Simpler case, new name is shorter DO 554 I=1,OLDLEN 554 USRNAM(I)=FORWAR(I)N LENUSR=LENGTH(USRNAM)' GOTO I32742O!c Harder case, new name is longerS555 DO 556 I=1,80L556 USRTMP(I)=USRNAM(I)a DO 557 I=1,NEWLEN 557 USRNAM(I)=FORWAR(I) * DO 558 I=OLDLEN+1,(80+OLDLEN-NEWLEN)'558 USRNAM(I+NEWLEN-OLDLEN)=USRTMP(I)  LENUSR=NEWLENe ICOM=LENUSR1565 GO TO I32742 L32734 CONTINUE 4 WRITE (3,29) (HEADER(I),I=1,LENGTH(HEADER)-1) FC If TMPLET is true, we read the letter from the keyboard. If false it;c came from a file. In that case, prompt for subj etc  IF(TMPLET) GOTO 32733sDC But don't promt for subject more than once if doing multiple sends" IF(SUBJEC(1).NE.0) GOTO 3549 WRITE (5,35)# READ (5,11,END=7777) L,SUBJECN SUBJEC(L+1) = 0N'3549 WRITE (3,3550) (USRNAM(I),I=1,60)W3550 FORMAT(' To: ',80A1)O5 WRITE (3,3551) (SUBJEC(I),I=1,LENGTH(SUBJEC)-1)D3551 FORMAT(' Subj: ',80A1)f WRITE (3,3552)3552 FORMAT(' ')$32733 IF(.NOT.(.TRUE.)) GO TO 32732 D CALL ERRSNS ) READ (2,29,END=123,ERR=1000) LINE2 E LINE2(80) = 0  CALL TRUNC(LINE2) 7 WRITE (3,291) TAB,(LINE2(I),I=1,LENGTH(LINE2)-1) N291 FORMAT (81A1)  GO TO 32733 32732 CONTINUE 7123 CONTINUE  CLOSE (UNIT=3) 9 CALL WFOWN(0)  CALL WDFFP(-1) O GO TO I32734 132731 CONTINUE 3 CALL ASNLUN (3,'SD',0) B) IF(.NOT.(.NOT.NEWBOX)) GO TO 32729  CALL WDFFP(0) D CALL ERRSNS "D CALL DEBUG ('NEW',MBNAME,3) < OPEN (UNIT=3,NAME=MBNAME,ACCESS='SEQUENTIAL',ERR=112, * 1 TYPE='NEW',CARRIAGECONTROL='LIST')  NEWBOX = .TRUE.  GO TO 32730 32729 CONTINUE )D CALL ERRSNS "D CALL DEBUG ('OLD',MBNAME,3) < OPEN (UNIT=3,NAME=MBNAME,ACCESS='SEQUENTIAL',ERR=113, * 1 TYPE='OLD',CARRIAGECONTROL='LIST')  CALL FEOF(3) T32730 ASSIGN 32727 TO I32728 KTAB=.FALSE. GO TO 32728 32727 VALID = .TRUE. L CALL WDFFP(-1) E GO TO I32731 B32726 CONTINUE 3> IF (INDEX(FILNAM,'.').EQ.0) CALL CONCAT (FILNAM,'.MAI')  CALL ASNLUN (3,'SY',0) TD CALL ERRSNS "D CALL DEBUG ('UNK',FILNAM,3) < OPEN (UNIT=3,NAME=FILNAM,ACCESS='SEQUENTIAL',ERR=114, . 1 TYPE='UNKNOWN',CARRIAGECONTROL='LIST')  CALL FEOF(3) 1 ASSIGN 32725 TO I32728 KTAB=.TRUE. GO TO 32728 32725 VALID = .TRUE.  GO TO I32726 A32724 CONTINUE & CALL MVSTR(FILNAM,'LETTER.TMP')  CALL ASNLUN (2,'SY',0) 7"D CALL DEBUG ('NEW',FILNAM,2) A OPEN (UNIT=2,NAME=FILNAM,TYPE='NEW',CARRIAGECONTROL='LIST')U! IF(SUBJEC(1).NE.0) GOTO 349 WRITE (5,35)35 FORMAT (/'$Subject ? ')T# READ (5,11,END=7777) L,SUBJECR SUBJEC(L+1) = 0K&349 WRITE (2,350) (USRNAM(I),I=1,60)350 FORMAT('To: ',80A1)4 WRITE (2,351) (SUBJEC(I),I=1,LENGTH(SUBJEC)-1)351 FORMAT('Subj: ',80A1) WRITE (2,352)T352 FORMAT(' ') WRITE (5,36) MA36 FORMAT (/' Terminate your letter by typing on a ', M 1 'line by itself.') " READ (5,11,END=380) L,LINE2  LINE2(L+1) = 0 E$32723 IF(.NOT.(.TRUE.)) GO TO 32722 2 WRITE (2,29) (LINE2(I),I=1,LENGTH(LINE2)-1) " 00ɝlmop4 READ (5,11,END=380) L,LINE2  LINE2(L+1) = 0 2 GO TO 32723 32722 CONTINUE T380 CONTINUE ) CLOSE (UNIT=5) S CLOSE (UNIT=2) J GO TO I32724 '32721 CONTINUE  GO TO 32719 32720 IF(VALID) GO TO 32718 32719 WRITE (5,31)H31 FORMAT ('$Filename to save letter to (^Z or "TRASH" to delete) ') # READ (5,11,END=333) L,FILNAM 3 FILNAM(L+1) = 0 % IF (L.GT.0) CALL UCASE(FILNAM) O$ IF(.NOT.(L.EQ.0)) GO TO 32716  ASSIGN 32715 TO I32731  GO TO 32731 32715 GO TO 32717 332716 IF(.NOT.(EQUAL(FILNAM,'TRASH'))) GO TO 32714 8 VALID = .TRUE. L GO TO 32717 333 CLOSE (UNIT=5) FILNAM(1)=0 VALID = .TRUE. GOTO 3271732714 ASSIGN 32713 TO I32726 1 GO TO 32726 32713 CONTINUE a%32717 IF(.NOT.(.FALSE.)) GO TO 32712 d112 CONTINUE D IERR = 112 D GOTO 120 113 CONTINUE D IERR = 113 AD GOTO 120 O114 CONTINUE LD IERR = 114 2D120 WRITE (5,9960) IERR,IERR1,IERR2,IERR3,IERR4  VALID = .FALSE. 32712 GO TO 32720 &32718 CLOSE (UNIT=2,DISPOSE='DELETE')  GO TO I32721 32728 CONTINUE=c If ktab is true, we are writing to save file, do first line =c special write with "FROM: ", then drop leading tab2% IF(KTAB.EQ.(.FALSE.)) GOTO 2710A+ READ (2,11,ERR=1001,END=110) L,LINE2  LINE2(L+1) = 0 O3 WRITE (3,299) (LINE2(I),I=1,LENGTH(LINE2)-1) O2710 VALID=.TRUE.%c32711 IF(.NOT.(.TRUE.)) GO TO 32710 32711 continueD CALL ERRSNSR+ READ (2,11,ERR=1001,END=110) L,LINE2  LINE2(L+1) = 0 IG IF(KTAB.EQ.(.FALSE.)) WRITE (3,29)(LINE2(I),I=1,LENGTH(LINE2)-1) ,F IF(KTAB.EQ.(.TRUE.)) WRITE (3,29)(LINE2(I),I=2,LENGTH(LINE2)-1)  GO TO 32711 32710 CONTINUE 110 CLOSE (UNIT=3) E GO TO I32728 32709 CONTINUE 0 DO 32708 I=1,80  HEADER(I) = 0 32708 CONTINUE CALL MVSTR(HEADER,MYNAME) " CALL CONCAT(HEADER,': ') ) CALL DATE (HEADER(LENGTH(HEADER)))  CALL TRUNC(HEADER) E" CALL CONCAT (HEADER,' ') ) CALL TIME (HEADER(LENGTH(HEADER))) ( CALL TRUNC (HEADER) %D CALL DEBUG ('HEADER',HEADER,0) A GO TO I32709 (32707 CONTINUE 2 IENTRY = 0  FOUND = .FALSE. 132706 IF(.NOT.(IENTRY .LT. NENTRY )) GO TO 32705 3 IENTRY = IENTRY+1 @D WRITE (5,9999) (ENTRY(L,IENTRY),L=1,12),(USRNAM(L),L=1,12)#D9999 FORMAT(' ',12A1,'|',12A1,'|')A.C cant use equal cause our routine space fills:C IF(.NOT.(EQUAL(ENTRY(1,IENTRY),USRNAM))) GO TO 32704 JJ=0 880 JJ=JJ+1$c if done 12 characters, its a match IF (JJ.GT.12) GOTO 8951 IF(ENTRY(JJ,IENTRY).EQ.USRNAM(JJ)) GOTO 880O+C if first characters don't match, no cigar= IF (JJ.EQ.1) GOTO 327042>c after 1st character, space in entry matches null in username= IF(ENTRY(JJ,IENTRY).EQ.32.AND.USRNAM(JJ).EQ.0) GOTO 895Ac also match on space in both1> IF(ENTRY(JJ,IENTRY).EQ.32.AND.USRNAM(JJ).EQ.32) GOTO 895c fell thru, no cigarL GOTO 32704895 FOUND = .TRUE.7c show new mail has arrived (at each possible terminal)a ENTRY(NEWMAI,IENTRY) = 1 8(D CALL DEBUG (' NOTIFIED',USRNAM,0) &D WRITE (5,9906) ENTRY(13,IENTRY) D9906 FORMAT (' ON TT',O8) (32704 GO TO 32706 432705 WRITE (5,54) (USRNAM(I),I=1,LENGTH(USRNAM)-1) # IF(.NOT.(FOUND)) GO TO 32702 . WRITE (5,55) E GO TO 32703 32702 WRITE (5,56) b32703 CONTINUE T54 FORMAT ('$',80A1) &55 FORMAT ('+ has been notified.') :56 FORMAT ('+ is not logged in but will be notified.')  GO TO I32707 32701 CONTINUE m> IF (INDEX(FILNAM,'.').EQ.0) CALL CONCAT (FILNAM,'.MAI')  CALL ASNLUN (2,'SY',0) "D CALL DEBUG ('OLD',FILNAM,2) $ IF(.NOT.(TMPLET)) GO TO 32699 + OPEN (UNIT=2,NAME=FILNAM,TYPE='OLD') U GO TO 32700 432699 OPEN (UNIT=2,NAME=FILNAM,TYPE='OLD',READONLY) 32700 GO TO I32701 032698 CONTINUE  CALL ASNLUN (1,'SD',0)& CALL MVSTR (MBNAME(1),'[10,0]') " CALL CON00ѝrsvw-TADATADATACAT (MBNAME,MYNAME) " CALL CONCAT (MBNAME,'.MAI') D CALL ERRSNS "D CALL DEBUG ('OLD',MBNAME,1) 3 OPEN (UNIT=1,NAME=MBNAME,TYPE='OLD',ERR=101) % IF(.NOT.(.FALSE.)) GO TO 32697 D101 WRITE (5,102) )102 FORMAT (' Your mailbox is empty.') D CALL ERRSNS (N1,N2,N3,N4) !D WRITE (5,9909) N1,N2,N3,N4 P%D9909 FORMAT (' ERRSNS RETURN:',4I8) N CALL EXIT 32697 EOMAIL = .FALSE.  ASSIGN 32695 TO I32696  GO TO 32696 32695 GO TO I32698 32694 CONTINUE M# USRNAM(LENGTH(USRNAM)+1) = 0 N ICOM = INDEX(USRNAM,',') ' IF(.NOT.(ICOM.EQ.0)) GO TO 32692  ICOM = LENGTH(USRNAM)  GO TO 32693 32692 USRNAM(ICOM) = 0 32693 CONTINUE %D CALL DEBUG ('USRNAM',USRNAM,0) i ASSIGN 32691 TO I32742 E GO TO 32742 32691 CONTINUE 9(42 FORMAT (' No such user as ',20A1) $ IF(.NOT.(NONAME)) GO TO 32689 4 WRITE (5,42) (USRNAM(I),I=1,LENGTH(USRNAM)-1)  GO TO 32690 32689 CALL ASNLUN (3,'SD',0)! CALL MVSTR(FILN2,'[10,0]') N! CALL CONCAT (FILN2,USRNAM) R! CALL CONCAT (FILN2,'.MAI') 0 CALL WDFFP(0)  CALL WFOWN(UIC) D CALL ERRSNS !D CALL DEBUG ('UNK',FILN2,3) O< OPEN (UNIT=3,NAME=FILN2,ACCESS='SEQUENTIAL',ERR=1002, . 1 TYPE='UNKNOWN',CARRIAGECONTROL='LIST')  CALL FEOF(3) T32690 GO TO I32694 ,32758 CONTINUE . CALL GETMCR(LINE)  DO 32688 I=1,MAXLIN & IF (LINE(I).EQ."15) LINE(I) = 0 32688 CONTINUE L USRNAM(1) = 0  FILNAM(1) = 0  MBNAME(1) = 0 I ISP = INDEX(LINE,' ') !NOTE: PDS PUTS SPACE AFTER TASK F& IF(.NOT.(ISP.GT.0)) GO TO 32687 ' CALL MVSTR (LINE(1),LINE(ISP+1)) , ISP = INDEX(LINE,' ') " IF (ISP.GT.0) LINE(ISP) = 0  CALL MVSTR(USRNAM,LINE) 332687 IF (ISP.GT.0) CALL MVSTR(FILNAM,LINE(ISP+1)) 3 D CALL DEBUG('LINE',LINE,0) $D CALL DEBUG('USRNAM',USRNAM,0) $D CALL DEBUG('FILNAM',FILNAM,0)  GO TO I32758 N32686 CONTINUEC Clear out subject of memo  SUBJEC(1) = 0  WRITE (5,34) (C34 FORMAT ('$Name of file to send ( to type letter now): ') O$ READ (5,11,END=7777) L,FILNAM  FILNAM(L+1) = 0  CALL UCASE (FILNAM) % TMPLET = (LENGTH(FILNAM).LE.1) $ IF(.NOT.(TMPLET)) GO TO 32685  ASSIGN 32684 TO I32724 F GO TO 32724 32684 CONTINUE G32685 GO TO I32686 32755 CONTINUE N WRITE (5,10) 10 FORMAT ('$To: ') M0 READ (5,11,END=7777) L,(USRNAM(I),I=1,78) 11 FORMAT (Q,80A1)  USRNAM(L+1) = 0  CALL UCASE (USRNAM)  GO TO I32755 t32696 CONTINUE yD CALL ERRSNS ( READ (1,25,ERR=1003,END=105) LINE 25 FORMAT (80A1)  LINE(80) = 0 N CALL TRUNC(LINE) G% IF(.NOT.(.FALSE.)) GO TO 32683 E105 EOMAIL = .TRUE. &D CALL DEBUG (' EOMAIL','TRUE',0) 32683 GO TO I32696 G32751 CONTINUE 6 ASSIGN 32682 TO I32744 R GO TO 32744 32682 ASSIGN 32681 TO I32698 ( GO TO 32698 32681 IF(EOMAIL) GO TO 32680 ( ASSIGN 32678 TO I32679  GO TO 32679 32678 ASSIGN 32677 TO I32721  GO TO 32721 32677 ASSIGN 32675 TO I32676 , GO TO 32676 32675 GO TO 32681 #32680 CLOSE (UNIT=1,DISP='DELETE')  GO TO I32751 32674 CONTINUE S# CALL MVSTR (FILN2,USRNAM(2)) R< IF (INDEX(FILN2,'.').EQ.0) CALL CONCAT (FILN2,'.MLS')  CALL ASNLUN (2,'SY',0) S!D CALL DEBUG ('OLD',FILN2,2) 2 OPEN (UNIT=2,NAME=FILN2,TYPE='OLD',ERR=130) % IF(.NOT.(.FALSE.)) GO TO 32673 &130 CALL MVSTR (FILN2,'SD0:[10,3]') $ CALL CONCAT (FILN2,USRNAM(2)) < IF (INDEX(FILN2,'.').EQ.0) CALL CONCAT (FILN2,'.MLS') D CALL ERRSNS !D CALL DEBUG ('OLD',FILN2,2) ,3 OPEN (UNIT=2,NAME=FILN2,TYPE='OLD',ERR=1004) E32673 READ (2,29) USRNAM , USRNAM(80) = 0 ( CALL TRUNC(USRNAM) &D CALL DEBUG (' USRNAM',USRNAM,0)  CLOSE (UNIT=2) A GO TO I32674 ,32676 CONTINUE ( FILNAM(1) = 0 : WRITE (5,60) (USRNAM(I),I=1,LENG00ٝlmop4TH(USRNAM)-1),QUERY 660 FORMAT ('$Do you want to reply to',1X,12a1,' ') ! READ (5,61,END=2672) REPLY (61 FORMAT (A1) < IF(.NOT.(REPLY.EQ.'Y' .OR. REPLY.EQ.'y')) GO TO 32672  ASSIGN 32671 TO I32746 ( GO TO 32746 32671 CONTINUE )3C Close terminal to clear possible ^z in above read(2672 CLOSE (UNIT=5)32672 GO TO I32676 B32670 CONTINUE N1000 CONTINUE SD IERR = 1000 D GOTO 1020 1001 CONTINUE D IERR = 1001 D GOTO 1020 1002 CONTINUE ED IERR = 1002 D GOTO 1020 1003 CONTINUE rD IERR = 1003 D GOTO 1020 1004 CONTINUE YD IERR = 1004 D GOTO 1020 +D1020 CALL ERRSNS(IERR1,IERR2,IERR3,IERR4) 2D WRITE (5,9960) IERR,IERR1,IERR2,IERR3,IERR4 :D9960 FORMAT (' ERROR AT ',I5/' RETURN FROM ERRSNS:',4I8)  WRITE (5,1200) S+1200 FORMAT (' MAIL -- FATAL FILE ERROR') N CALL EXIT  GO TO I32670 032746 CONTINUE 2. IF(.NOT.(USRNAM(1).EQ.'@')) GO TO 32669  ASSIGN 32668 TO I32674  GO TO 32674 32668 CONTINUE 0132669 IF(.NOT.(LENGTH(FILNAM).LE.1)) GO TO 32667  ASSIGN 32666 TO I32686 = GO TO 32686 32666 CONTINUE E32667 ASSIGN 32665 TO I32701  GO TO 32701 32665 ASSIGN 32664 TO I32709  GO TO 32709 32664 GO TO 32662 *32663 IF(LENGTH(USRNAM).LE.1) GO TO 32661 32662 ASSIGN 32660 TO I32694  GO TO 32694 32660 ASSIGN 32659 TO I32734 0 GO TO 32734 32659 ASSIGN 32658 TO I32707 @ GO TO 32707 32658 REWIND 2 T) CALL MVSTR (USRNAM,USRNAM(ICOM+1)) N GO TO 32663 $32661 IF(.NOT.(TMPLET)) GO TO 32656 & CLOSE (UNIT=2,DISPOSE='DELETE')  GO TO 32657 32656 CLOSE (UNIT=2) 332657 GO TO I32746 32748 CONTINUE 2 ASSIGN 32655 TO I32744  GO TO 32744 32655 ASSIGN 32654 TO I32698 T GO TO 32698 32654 IF(EOMAIL) GO TO 32653  ASSIGN 32651 TO I32652 2 GO TO 32652 32651 GO TO 32654 32653 GO TO I32748 N32652 CONTINUE @, IF(.NOT.(LINE(1).EQ.TAB)) GO TO 32650  ASSIGN 32649 TO I32670 1 GO TO 32670 32649 CONTINUE O032650 WRITE (5,27) (LINE(I),I=1,LENGTH(LINE)-1) 27 FORMAT (/1X,80A1)  GO TO 32647 132648 IF(EOMAIL.OR.(LINE(1).NE.TAB)) GO TO 32646 232647 ASSIGN 32645 TO I32696  GO TO 32696 32645 GO TO 32648 32646 GO TO I32652 O32679 CONTINUE , IF(.NOT.(LINE(1).EQ.TAB)) GO TO 32644  ASSIGN 32643 TO I32670  GO TO 32670 32643 CONTINUE 832644 ISP = INDEX(LINE,':') " CALL MVSTR(USRNAM,LINE,ISP)  FILNAM(1) = 0  CALL ASNLUN (2,'SY',0) (D CALL DEBUG ('NEW','LETTER.TMP',2) H OPEN (UNIT=2,NAME='LETTER.TMP',TYPE='NEW',CARRIAGECONTROL='LIST',  1 DISP='DELETE')  GO TO 32641 132642 IF(EOMAIL.OR.(LINE(1).NE.TAB)) GO TO 32640 25c following 2 writes changed to not write leading tabOD32641 IF (LINE(1).EQ.TAB) WRITE (5,28) (LINE(I),I=2,LENGTH(LINE)-1) E IF (LINE(1).NE.TAB) WRITE (5,281) (LINE(I),I=1,LENGTH(LINE)-1) E" IF (LINE(1).NE.TAB) LCOUNT=028 FORMAT (1X,80A1) M 281 FORMAT (' From: ',80A1)c pause every 22 lines LCOUNT=LCOUNT+1 IF (LCOUNT.LT.22) GOTO 289 WRITE (5,282)A+282 FORMAT(/'$Press RETURN for more ...')  READ (5,28) REPLYF LCOUNT=0+c IF (LINE(1).EQ.TAB) WRITE (2,29) (LINtDc IF (LINE(1).NE.TAB) WRITE (2,29) (LINE(I),I=1,LENGTH(LINE)-1) 0289 WRITE (2,29) (LINE(I),I=1,LENGTH(LINE)-1) 29 FORMAT (80A1) 299 FORMAT ('From: ',80A1)  ASSIGN 32639 TO I32696 C GO TO 32696 32639 GO TO 32642 32640 REWIND 2  GO TO I32679 r/C general exit taken on seeing ^Z from terminalU7777 CALL EXIT9 END SUBROUTINE WHOME (OUTMSG)  BYTE OUTMSG(20)  INTEGER USRBUF(160)  INTEGER TTTYPE ( DATA TTTYPE /'TT'/ ) DATA LUBUF /160/ .% CALL GETUSR (USRBUF,LUBUF,IER) H& IF(.NOT.(IER.LT.0)) GO TO 32758  WRITE (5,101) IER 101 FORMAT (' ERROR',I8) T STOP ,32758 CALL GETLUN (5,OUTMSG) 3 MYTI = OUTMSG(3)00ᝠsvw-TADATADATA D WRITE (5,9901) MYTI D9901 FORMAT (' MY TI: IS ',O8)  DO 32757 I=8,LUBUF,8 g)D WRITE (5,9902) (USRBUF(J),J=I-7,I) D9902 FORMAT (1X,6A2,2X,A2,O2) M3 IF(.NOT.(USRBUF(I-1).EQ.TTTYPE)) GO TO 32756 0/ IF(.NOT.(USRBUF(I).EQ.MYTI)) GO TO 32755 T( CALL MVSTR(OUTMSG,USRBUF(I-7),10) %D CALL DEBUG ('OUTMSG',OUTMSG,0) . RETURN 32755 CONTINUE 32756 CONTINUE E32757 CONTINUE ( WRITE (5,10) MYTI 210 FORMAT (' CANNOT IDENTIFY USER AT TI: ',O8) STOP END  SUBROUTINE UCASE(STRING) T BYTE STRING(1) 3 L = LENGTH(STRING)-1 T IF (L.LE.0) RETURN , DO 32758 I=1,L 6= IF (STRING(I).GE.'a'.AND.STRING(I).LE.'z') STRING(I) = 7 1 STRING(I)-"40 R32758 CONTINUE G RETURN END  SUBROUTINE CONCAT(A,B)  BYTE A(1),B(1) O! CALL MVSTR(A(LENGTH(A)),B) O END + SUBROUTINE DEBUG(LABEL,STRING,IUNIT) D BYTE LABEL(1),STRING(1) CD WRITE (5,9901) IUNIT,(LABEL(I),I=1,LENGTH(LABEL)-1),':',' ', U(D 1 (STRING(I),I=1,LENGTH(STRING)-1) %D9901 FORMAT (1X,I4,1X,80A1/6X,80A1) END RETURN , DO 32758 I=1,L 6= IF (STRING(I).GE.'a'.AND.STRING(I).LE.'z') STRING(I) = 7 1 STRING(I)-"40 R32758 CONTINUE G RETURN END  SUBROUTINE CONCAT(A,B)  BYTE A(1),B(1) O! CALL MVSTR(A(LENGTH(A)),B) O END + SUBROUTINE DEBUG(LABEL,STRING,IUNIT) D BYTE LABEL(1),STRING(1) CD WRITE (5,9901) IUNIT,(LABEL(I)P COMMON /MAICOM/ ENTRY 00069 P BYTE ENTRY(14,20) 00070 P BYTE LINE(80),LINE2(80),HEADER(80) 00072 P BYTE USRNAM(80) 00073 P BYTE FILNAM(40),FILN2(40),MBNAME(40) 00074 P BYTE MYNAME(20) 00075 P BYTE TAB 00076 P BYTE USRRET(14) 00077 P BYTE BUIC(2),BTEMP 00078 Pc BYTE REPLY,QUERY 00079 P BYTE REPLY,QUERY,gnull,gnorp 00080 Pc added cause f4p won't take a null string '' and to keep even byte 00081 P INTEGER UIC 00082 P INTEGER MAXLIN 00083 P LOGICAL*1 EOMAIL,VALID,EQUAL,TMPLET,NONAME,FOUND,NEWBOX 00084 P EQUIVALENCE (UIC,BUIC) 00085 P DATA QUERY /'?'/ 00086 P DATA TAB /"11/ 00087 P DATA MAXLIN /80/ 00088 P DATA NENTRY /20/ !NUMBER OF ENTRIES IN MAICOM 00089 P DATA NEWMAI /14/ !BYTE FLAGGING NEW MAIL IN MAICOM 00090 P NEWBOX = .FALSE. 00097 Pc make sure the null byte is really null 00098 P gnull=0 00099 P CALL WHOME (MYNAME) 00101 PD CALL DEBUG ('MYNAME',MYNAME,0) 00102 PD GOTO 9950 00104 P CALL ERRSET(29,,,,.FALSE.) 00105 PD9950 CONTINUE 00106 P ASSIGN 32757 TO I32758 00108 P GO TO 32758 00108 P32757 CONTINUE 00lmop4 00109 Pc IF (EQUAL(USRNAM,'')) PROMPT-FOR-USER-NAMES 00109 P IF(.NOT.(EQUAL(USRNAM,gnull))) GO TO 32756 00110 P ASSIGN 32754 TO I32755 00110 P GO TO 32755 00110 P32754 CONTINUE 00110 P32756 IF(.NOT.(EQUAL(USRNAM,'ME'))) GO TO 32752 00112 P ASSIGN 32750 TO I32751 00112 P GO TO 32751 00112 P32750 GO TO 32753 00113 P32752 IF(.NOT.(EQUAL(USRNAM,'?'))) GO TO 32749 00113 P ASSIGN 32747 TO I32748 00113 P GO TO 32748 00113 P32747 GO TO 32753 00114 P32749 ASSIGN 32745 TO I32746 00114 P GO TO 32746 00114 P32745 CONTINUE 00115 P32753 CALL EXIT 00117 P32744 CONTINUE 00119 P IF(.NOT.(LENGTH(FILNAM).GT.0)) GO TO 32743 00120 P WRITE (5,20) 00121 P20 FORMAT (' Use your user name, not "ME", to mail ', 00122 P 1 'yourself a letter.') 00123 P CALL EXIT 00124 P32743 GO TO I32744 00126 P32742 CONTINUE 00128 PD CALL DEBUG ('OLD','LB0:[1,100]WHODID.LST',3) 00130 P OPEN (UNIT=3,NAME='LB0:[1,100]WHODID.LST',TYPE='OLD',READONLY) 00131 P DO 32741 I=1,5 00133 P READ (3,11) L,USRRET 00133 P32741 CONTINUE 00133 P GO TO 32739 00134 P32740 IF(EQUAL(USRRET,USRNAM) .OR. LENGTH(USRRET).LE.1) GO TO 32738 00134 P32739 READ (3,11) L,LINE2 00135 P LINE2(L+1) = 0 00136 P DO 32737 I=1,L 00137 P IF (LINE2(I).EQ.']') LINE2(I) = ',' 00138 P32737 CONTINUE 00139 P DECODE (L,44,LINE2) USRRET,BUIC 00140 P44 FORMAT (5X,14A1,5X,2O4) 00141 P I = 14 00142 P32736 IF(.NOT.(USRRET(I).EQ.' ' .AND. I.GE.1)) GO TO 32735 00143 P USRRET(I) = 0 00144 P I = I-1 00145 P GO TO 32736 00146 P32735 BTEMP = BUIC(1) 00148 P BUIC(1) = BUIC(2) 00149 P BUIC(2) = BTEMP 00150 P GO TO 32740 00151 P32738 NONAME = LENGTH(USRRET).LE.1 00152 P CLOSE 00svw-TADATADATA(UNIT=3) 00153 P GO TO I32742 00154 P32734 CONTINUE 00156 P WRITE (3,29) (HEADER(I),I=1,LENGTH(HEADER)-1) 00158 P32733 IF(.NOT.(.TRUE.)) GO TO 32732 00159 PD CALL ERRSNS 00160 P READ (2,29,END=123,ERR=1000) LINE2 00161 P LINE2(80) = 0 00162 P CALL TRUNC(LINE2) 00163 P WRITE (3,291) TAB,(LINE2(I),I=1,LENGTH(LINE2)-1) 00164 P291 FORMAT (81A1) 00165 P GO TO 32733 00166 P32732 CONTINUE 00167 P123 CONTINUE 00167 P CLOSE (UNIT=3) 00168 P CALL WFOWN(0) 00170 P CALL WDFFP(-1) 00171 P GO TO I32734 00172 P32731 CONTINUE 00174 P CALL ASNLUN (3,'SY',0) 00175 P IF(.NOT.(.NOT.NEWBOX)) GO TO 32729 00176 P CALL WDFFP("135400) 00178 PD CALL ERRSNS 00179 PD CALL DEBUG ('NEW',MBNAME,3) 00180 P OPEN (UNIT=3,NAME=MBNAME,ACCESS='SEQUENTIAL',ERR=112, 00181 P 1 TYPE='NEW',CARRIAGECONTROL='LIST') 00182 P NEWBOX = .TRUE. 00183 P GO TO 32730 00184 P32729 CONTINUE 00186 PD CALL ERRSNS 00186 PD CALL DEBUG ('OLD',MBNAME,3) 00187 P OPEN (UNIT=3,NAME=MBNAME,ACCESS='SEQUENTIAL',ERR=113, 00188 P 1 TYPE='OLD',CARRIAGECONTROL='LIST') 00189 P CALL FEOF(3) 00190 P32730 ASSIGN 32727 TO I32728 00192 P GO TO 32728 00192 P32727 VALID = .TRUE. 00193 P CALL WDFFP(-1) 00194 P GO TO I32731 00195 P32726 CONTINUE 00197 P IF (INDEX(FILNAM,'.').EQ.0) CALL CONCAT (FILNAM,'.MAI') 00198 P CALL ASNLUN (3,'SY',0) 00199 PD CALL ERRSNS 00200 PD CALL DEBUG ('UNK',FILNAM,3) 00201 P OPEN (UNIT=3,NAME=FILNAM,ACCESS='SEQUENTIAL',ERR=114, 00202 P 1 TYPE='UNKNOWN',CARRIAGECONTROL='LIST') 00203 P CALL FEOF(3) 00204 P ASSIGN 32725 TO I32728 00205 P GO TO 32728 00205 P32725 VALID = .TRUE. 00206 P GO00lmop4 TO I32726 00207 P32724 CONTINUE 00209 P CALL MVSTR(FILNAM,'LETTER.TMP') 00210 P CALL ASNLUN (2,'SY',0) 00211 PD CALL DEBUG ('NEW',FILNAM,2) 00212 P OPEN (UNIT=2,NAME=FILNAM,TYPE='NEW',CARRIAGECONTROL='LIST') 00213 P WRITE (5,36) 00214 P36 FORMAT (/' Terminate your letter by typing on a ', 00215 P 1 'line by itself.') 00216 P READ (5,11,END=380) L,LINE2 00217 P LINE2(L+1) = 0 00218 P32723 IF(.NOT.(.TRUE.)) GO TO 32722 00219 P WRITE (2,29) (LINE2(I),I=1,LENGTH(LINE2)-1) 00220 P READ (5,11,END=380) L,LINE2 00221 P LINE2(L+1) = 0 00222 P GO TO 32723 00223 P32722 CONTINUE 00224 P380 CONTINUE 00224 P CLOSE (UNIT=5) 00225 P CLOSE (UNIT=2) 00226 P GO TO I32724 00227 P32721 CONTINUE 00229 P GO TO 32719 00230 P32720 IF(VALID) GO TO 32718 00230 P32719 WRITE (5,31) 00231 P31 FORMAT ('$Place the letter in (filename or TRASH): ') 00232 P READ (5,11) L,FILNAM 00233 P FILNAM(L+1) = 0 00234 P IF (L.GT.0) CALL UCASE(FILNAM) 00235 P IF(.NOT.(L.EQ.0)) GO TO 32716 00237 P ASSIGN 32715 TO I32731 00237 P GO TO 32731 00237 P32715 GO TO 32717 00238 P32716 IF(.NOT.(EQUAL(FILNAM,'TRASH'))) GO TO 32714 00238 P VALID = .TRUE. 00238 P GO TO 32717 00239 P32714 ASSIGN 32713 TO I32726 00239 P GO TO 32726 00239 P32713 CONTINUE 00240 P32717 IF(.NOT.(.FALSE.)) GO TO 32712 00241 P112 CONTINUE 00242 PD IERR = 112 00243 PD GOTO 120 00244 P113 CONTINUE 00245 PD IERR = 113 00246 PD GOTO 120 00247 P114 CONTINUE 00248 PD IERR = 114 00249 PD120 WRITE (5,9960) IERR,IERR1,IERR2,IERR3,IERR4 00250 P VALID = .FALSE. 00251 P327100svw-TADATADATA2 GO TO 32720 00253 P32718 CLOSE (UNIT=2,DISPOSE='DELETE') 00254 P GO TO I32721 00255 P32728 CONTINUE 00257 P VALID = .TRUE. 00259 P32711 IF(.NOT.(.TRUE.)) GO TO 32710 00260 PD CALL ERRSNS 00261 P READ (2,11,ERR=1001,END=110) L,LINE2 00262 P LINE2(L+1) = 0 00263 P WRITE (3,29) (LINE2(I),I=1,LENGTH(LINE2)-1) 00265 P GO TO 32711 00266 P32710 CONTINUE 00267 P110 CLOSE (UNIT=3) 00267 P GO TO I32728 00268 P32709 CONTINUE 00270 P DO 32708 I=1,80 00271 P HEADER(I) = 0 00271 P32708 CONTINUE 00271 P CALL MVSTR (HEADER,MYNAME) 00272 P CALL CONCAT (HEADER,': ') 00273 P CALL DATE (HEADER(LENGTH(HEADER))) 00274 P CALL TRUNC(HEADER) 00275 P CALL CONCAT (HEADER,' ') 00276 P CALL TIME (HEADER(LENGTH(HEADER))) 00277 P CALL TRUNC (HEADER) 00278 PD CALL DEBUG ('HEADER',HEADER,0) 00279 P GO TO I32709 00280 P32707 CONTINUE 00282 P IENTRY = 0 00286 P FOUND = .FALSE. 00287 P32706 IF(.NOT.(IENTRY .LT. NENTRY )) GO TO 32705 00288 P IENTRY = IENTRY+1 00289 P IF(.NOT.(EQUAL(ENTRY(1,IENTRY),USRNAM))) GO TO 32704 00290 P ENTRY(NEWMAI,IENTRY) = 1 00291 P FOUND = .TRUE. 00292 PD CALL DEBUG (' NOTIFIED',USRNAM,0) 00293 PD WRITE (5,9906) ENTRY(13,IENTRY) 00294 PD9906 FORMAT (' ON TT',O8) 00295 P32704 GO TO 32706 00297 P32705 WRITE (5,54) (USRNAM(I),I=1,LENGTH(USRNAM)-1) 00298 P IF(.NOT.(FOUND)) GO TO 32702 00299 P WRITE (5,55) 00299 P GO TO 32703 00299 P32702 WRITE (5,56) 00300 P32703 CONTINUE 00301 P54 FORMAT ('$',80A1) 00301 P55 FORMAT ('+ has been notified.') 00302 P56 FORMAT ('+ is not logged in but will be notified.') 00303 P GO TO I32707 00304 P32701 CONTINUE 00306 P00 lmop4 IF (INDEX(FILNAM,'.').EQ.0) CALL CONCAT (FILNAM,'.MAI') 00307 P CALL ASNLUN (2,'SY',0) 00308 PD CALL DEBUG ('OLD',FILNAM,2) 00309 P IF(.NOT.(TMPLET)) GO TO 32699 00310 P OPEN (UNIT=2,NAME=FILNAM,TYPE='OLD') 00310 P GO TO 32700 00310 P32699 OPEN (UNIT=2,NAME=FILNAM,TYPE='OLD',READONLY) 00311 P32700 GO TO I32701 00312 P32698 CONTINUE 00314 P CALL MVSTR (MBNAME(1),'LB0:[10,0]') 00315 P CALL CONCAT (MBNAME,MYNAME) 00316 P CALL CONCAT (MBNAME,'.MAI') 00317 PD CALL ERRSNS 00318 PD CALL DEBUG ('OLD',MBNAME,1) 00319 P OPEN (UNIT=1,NAME=MBNAME,TYPE='OLD',ERR=101) 00320 P IF(.NOT.(.FALSE.)) GO TO 32697 00321 P101 WRITE (5,102) 00322 P102 FORMAT (' Your mailbox is empty.') 00323 PD CALL ERRSNS (N1,N2,N3,N4) 00324 PD WRITE (5,9909) N1,N2,N3,N4 00325 PD9909 FORMAT (' ERRSNS RETURN:',4I8) 00326 P CALL EXIT 00327 P32697 EOMAIL = .FALSE. 00329 P ASSIGN 32695 TO I32696 00330 P GO TO 32696 00330 P32695 GO TO I32698 00331 P32694 CONTINUE 00333 P USRNAM(LENGTH(USRNAM)+1) = 0 00334 P ICOM = INDEX(USRNAM,',') 00335 P IF(.NOT.(ICOM.EQ.0)) GO TO 32692 00336 P ICOM = LENGTH(USRNAM) 00336 P GO TO 32693 00336 P32692 USRNAM(ICOM) = 0 00337 P32693 CONTINUE 00338 PD CALL DEBUG ('USRNAM',USRNAM,0) 00338 P ASSIGN 32691 TO I32742 00340 P GO TO 32742 00340 P32691 CONTINUE 00341 P42 FORMAT (' No such user as ',20A1) 00341 P IF(.NOT.(NONAME)) GO TO 32689 00342 P WRITE (5,42) (USRNAM(I),I=1,LENGTH(USRNAM)-1) 00342 P GO TO 32690 00342 P32689 CALL MVSTR(FILN2,'LB0:[10,0]') 00344 P CALL CONCAT (FILN2,USRNAM) 00345 P CALL CONCAT (FILN2,'.MAI') 00346 P CALL WDFFP("135400) 00348 P CALL WFOWN(UIC) 00350 PD CALL ERRSNS 00351 PD CALL DEBUG ('UNK',FILN2,3) 00352 P OPEN (UNIT=3,NAME=FILN2,ACCESS='SEQUENTIAL',ERR=1002, 003500svw-TADATADATA3 P 1 TYPE='UNKNOWN',CARRIAGECONTROL='LIST') 00354 P CALL FEOF(3) 00357 P32690 GO TO I32694 00359 P32758 CONTINUE 00361 P CALL GETMCR(LINE) 00362 P DO 32688 I=1,MAXLIN 00363 P IF (LINE(I).EQ."15) LINE(I) = 0 00364 P32688 CONTINUE 00365 P USRNAM(1) = 0 00366 P FILNAM(1) = 0 00367 P MBNAME(1) = 0 00368 P ISP = INDEX(LINE,' ') !NOTE: PDS PUTS SPACE AFTER TASK 00369 P IF(.NOT.(ISP.GT.0)) GO TO 32687 00370 P CALL MVSTR (LINE(1),LINE(ISP+1)) 00371 P ISP = INDEX(LINE,' ') 00372 P IF (ISP.GT.0) LINE(ISP) = 0 00373 P CALL MVSTR(USRNAM,LINE) 00374 P32687 IF (ISP.GT.0) CALL MVSTR(FILNAM,LINE(ISP+1)) 00376 PD CALL DEBUG('LINE',LINE,0) 00377 PD CALL DEBUG('USRNAM',USRNAM,0) 00378 PD CALL DEBUG('FILNAM',FILNAM,0) 00379 P GO TO I32758 00380 P32686 CONTINUE 00382 P WRITE (5,34) 00383 P34 FORMAT ('$Name of file to send ( to type letter now): ') 00384 P READ (5,11) L,FILNAM 00385 P FILNAM(L+1) = 0 00386 P CALL UCASE (FILNAM) 00387 P TMPLET = (LENGTH(FILNAM).LE.1) 00388 P IF(.NOT.(TMPLET)) GO TO 32685 00389 P ASSIGN 32684 TO I32724 00389 P GO TO 32724 00389 P32684 CONTINUE 00389 P32685 GO TO I32686 00390 P32755 CONTINUE 00392 P WRITE (5,10) 00393 P10 FORMAT ('$To: ') 00394 P READ (5,11) L,(USRNAM(I),I=1,78) 00395 P11 FORMAT (Q,80A1) 00396 P USRNAM(L+1) = 0 00397 P CALL UCASE (USRNAM) 00398 P GO TO I32755 00399 P32696 CONTINUE 00401 PD CALL ERRSNS 00402 P READ (1,25,ERR=1003,END=105) LINE 00403 P25 FORMAT (80A1) 00404 P LINE(80) = 0 00405 P CALL TRUNC(LINE) 00406 P IF(.NOT.(.FALSE.)) GO TO 32683 00407 P105 EOMAIL = .TRUE. 00lmop400408 PD CALL DEBUG (' EOMAIL','TRUE',0) 00409 P32683 GO TO I32696 00411 P32751 CONTINUE 00413 P ASSIGN 32682 TO I32744 00414 P GO TO 32744 00414 P32682 ASSIGN 32681 TO I32698 00415 P GO TO 32698 00415 P32681 IF(EOMAIL) GO TO 32680 00416 P ASSIGN 32678 TO I32679 00417 P GO TO 32679 00417 P32678 ASSIGN 32677 TO I32721 00418 P GO TO 32721 00418 P32677 ASSIGN 32675 TO I32676 00419 P GO TO 32676 00419 P32675 GO TO 32681 00420 P32680 CLOSE (UNIT=1,DISP='DELETE') 00422 P GO TO I32751 00423 P32674 CONTINUE 00425 P CALL MVSTR (FILN2,USRNAM(2)) 00426 P IF (INDEX(FILN2,'.').EQ.0) CALL CONCAT (FILN2,'.MLS') 00427 P CALL ASNLUN (2,'SY',0) 00428 PD CALL DEBUG ('OLD',FILN2,2) 00429 P OPEN (UNIT=2,NAME=FILN2,TYPE='OLD',ERR=130) 00430 P IF(.NOT.(.FALSE.)) GO TO 32673 00431 P130 CALL MVSTR (FILN2,'LB0:[10,3]') 00432 P CALL CONCAT (FILN2,USRNAM(2)) 00433 P IF (INDEX(FILN2,'.').EQ.0) CALL CONCAT (FILN2,'.MLS') 00434 PD CALL ERRSNS 00435 PD CALL DEBUG ('OLD',FILN2,2) 00436 P OPEN (UNIT=2,NAME=FILN2,TYPE='OLD',ERR=1004) 00437 P32673 READ (2,29) USRNAM 00439 P USRNAM(80) = 0 00440 P CALL TRUNC(USRNAM) 00441 PD CALL DEBUG (' USRNAM',USRNAM,0) 00442 P CLOSE (UNIT=2) 00443 P GO TO I32674 00444 P32676 CONTINUE 00446 P FILNAM(1) = 0 00447 P WRITE (5,60) (USRNAM(I),I=1,LENGTH(USRNAM)-1),QUERY 00448 P60 FORMAT (' Do you want to reply to',(1X,40a1)) 00449 P READ (5,61) REPLY 00450 P61 FORMAT (A1) 00451 P IF(.NOT.(REPLY.EQ.'Y' .OR. REPLY.EQ.'y')) GO TO 32672 00452 P ASSIGN 32671 TO I32746 00452 P GO TO 32746 00452 P32671 CONTINUE 00452 P32672 GO TO I32676 00453 P32670 CONTINUE 00455 P1000 CONTINUE 00456 PD IERR = 1000 00!svw-TADATADATA 00457 PD GOTO 1020 00458 P1001 CONTINUE 00459 PD IERR = 1001 00460 PD GOTO 1020 00461 P1002 CONTINUE 00462 PD IERR = 1002 00463 PD GOTO 1020 00464 P1003 CONTINUE 00465 PD IERR = 1003 00466 PD GOTO 1020 00467 P1004 CONTINUE 00468 PD IERR = 1004 00469 PD GOTO 1020 00470 PD1020 CALL ERRSNS(IERR1,IERR2,IERR3,IERR4) 00471 PD WRITE (5,9960) IERR,IERR1,IERR2,IERR3,IERR4 00472 PD9960 FORMAT (' ERROR AT ',I5/' RETURN FROM ERRSNS:',4I8) 00473 P WRITE (5,1200) 00474 P1200 FORMAT (' MAIL -- FATAL FILE ERROR') 00475 P CALL EXIT 00476 P GO TO I32670 00477 P32746 CONTINUE 00479 P IF(.NOT.(USRNAM(1).EQ.'@')) GO TO 32669 00480 P ASSIGN 32668 TO I32674 00480 P GO TO 32674 00480 P32668 CONTINUE 00480 P32669 IF(.NOT.(LENGTH(FILNAM).LE.1)) GO TO 32667 00481 P ASSIGN 32666 TO I32686 00481 P GO TO 32686 00481 P32666 CONTINUE 00481 P32667 ASSIGN 32665 TO I32701 00482 P GO TO 32701 00482 P32665 ASSIGN 32664 TO I32709 00483 P GO TO 32709 00483 P32664 GO TO 32662 00484 P32663 IF(LENGTH(USRNAM).LE.1) GO TO 32661 00484 P32662 ASSIGN 32660 TO I32694 00485 P GO TO 32694 00485 P32660 ASSIGN 32659 TO I32734 00486 P GO TO 32734 00486 P32659 ASSIGN 32658 TO I32707 00487 P GO TO 32707 00487 P32658 REWIND 2 00488 P CALL MVSTR (USRNAM,USRNAM(ICOM+1)) 00490 P GO TO 32663 00491 P32661 IF(.NOT.(TMPLET)) GO TO 32656 00492 P CLOSE (UNIT=2,DISPOSE='DELETE') 00492 P GO TO 32657 00492 P32656 CLOSE (UNIT=2) 00493 P32657 GO TO I32746 00494 P32748 CONTINUE 00)lmop4 00496 P ASSIGN 32655 TO I32744 00497 P GO TO 32744 00497 P32655 ASSIGN 32654 TO I32698 00498 P GO TO 32698 00498 P32654 IF(EOMAIL) GO TO 32653 00499 P ASSIGN 32651 TO I32652 00500 P GO TO 32652 00500 P32651 GO TO 32654 00501 P32653 GO TO I32748 00502 P32652 CONTINUE 00504 P IF(.NOT.(LINE(1).EQ.TAB)) GO TO 32650 00506 P ASSIGN 32649 TO I32670 00506 P GO TO 32670 00506 P32649 CONTINUE 00506 P32650 WRITE (5,27) (LINE(I),I=1,LENGTH(LINE)-1) 00507 P27 FORMAT (/1X,80A1) 00508 P GO TO 32647 00509 P32648 IF(EOMAIL.OR.(LINE(1).NE.TAB)) GO TO 32646 00509 P32647 ASSIGN 32645 TO I32696 00509 P GO TO 32696 00509 P32645 GO TO 32648 00509 P32646 GO TO I32652 00510 P32679 CONTINUE 00512 P IF(.NOT.(LINE(1).EQ.TAB)) GO TO 32644 00514 P ASSIGN 32643 TO I32670 00514 P GO TO 32670 00514 P32643 CONTINUE 00514 P32644 ISP = INDEX(LINE,':') 00516 P CALL MVSTR(USRNAM,LINE,ISP) 00517 P FILNAM(1) = 0 00518 P CALL ASNLUN (2,'SY',0) 00519 PD CALL DEBUG ('NEW','LETTER.TMP',2) 00520 P OPEN (UNIT=2,NAME='LETTER.TMP',TYPE='NEW',CARRIAGECONTROL='LIST', 00521 P 1 DISP='DELETE') 00522 P GO TO 32641 00523 P32642 IF(EOMAIL.OR.(LINE(1).NE.TAB)) GO TO 32640 00523 P32641 WRITE (5,28) (LINE(I),I=1,LENGTH(LINE)-1) 00524 P28 FORMAT (1X,80A1) 00525 P WRITE (2,29) (LINE(I),I=1,LENGTH(LINE)-1) 00526 P29 FORMAT (80A1) 00527 P ASSIGN 32639 TO I32696 00528 P GO TO 32696 00528 P32639 GO TO 32642 00529 P32640 REWIND 2 00530 P GO TO I32679 00531 P END 00533 P SUBROUTINE WHOME (OUTMSG) 00535 P BYTE OUTMSG(20) 00539 P INTEGER USRBUF(160) 00540 P INTEGER TTTYPE 001svw-TADATADATA 00541 P DATA TTTYPE /'TT'/ 00542 P DATA LUBUF /160/ 00543 P CALL GETUSR (USRBUF,LUBUF,IER) 00545 P IF(.NOT.(IER.LT.0)) GO TO 32758 00546 P WRITE (5,101) IER 00547 P101 FORMAT (' ERROR',I8) 00548 P STOP 00549 P32758 CALL GETLUN (5,OUTMSG) 00553 P MYTI = OUTMSG(3) 00554 PD WRITE (5,9901) MYTI 00555 PD9901 FORMAT (' MY TI: IS ',O8) 00556 P DO 32757 I=8,LUBUF,8 00558 PD WRITE (5,9902) (USRBUF(J),J=I-7,I) 00559 PD9902 FORMAT (1X,6A2,2X,A2,O2) 00560 P IF(.NOT.(USRBUF(I-1).EQ.TTTYPE)) GO TO 32756 00561 P IF(.NOT.(USRBUF(I).EQ.MYTI)) GO TO 32755 00562 P CALL MVSTR(OUTMSG,USRBUF(I-7),10) 00563 PD CALL DEBUG ('OUTMSG',OUTMSG,0) 00564 P RETURN 00565 P32755 CONTINUE 00567 P32756 CONTINUE 00568 P32757 CONTINUE 00568 P WRITE (5,10) MYTI 00569 P10 FORMAT (' CANNOT IDENTIFY USER AT TI: ',O8) 00570 P STOP 00571 P END 00572 P SUBROUTINE UCASE(STRING) 00574 P BYTE STRING(1) 00575 P L = LENGTH(STRING)-1 00576 P IF (L.LE.0) RETURN 00577 P DO 32758 I=1,L 00578 P IF (STRING(I).GE.'a'.AND.STRING(I).LE.'z') STRING(I) = 00579 P 1 STRING(I)-"40 00580 P32758 CONTINUE 00581 P RETURN 00582 P END 00583 P SUBROUTINE CONCAT(A,B) 00584 P BYTE A(1),B(1) 00585 P CALL MVSTR(A(LENGTH(A)),B) 00586 P END 00587 P SUBROUTINE DEBUG(LABEL,STRING,IUNIT) 00588 PD BYTE LABEL(1),STRING(1) 00589 PD WRITE (5,9901) IUNIT,(LABEL(I),I=1,LENGTH(LABEL)-1),':',' ', 00590 PD 1 (STRING(I),I=1,LENGTH(STRING)-1) 00591 PD9901 FORMAT (1X,I4,1X,80A1/6X,80A1) 00592 P END 00593 00587 P SUBROUTINE DEBUG(LABEL,STRING,IUNIT) 00588 PD BYTE LABEL(1),STRING(1) 00589 PD WRITE (5,9901) IUNIT,(LABEL(I),I=1,LENGTH(LABEL)-1),':',' ', 00590 PD 1 (STRING(I),I=1,LENGTH(STRING)-1009=lmop4C MAIN TASK FOR IAS MAILBOX.CAC (Modeled after Mark Johnson's ARC MAIL from the DECUS SIG tape.CC The differences between RSX11M and IAS are enough that it did notCC seem feasible to start with that code, so this is an entirely new C program.)C.C This task parses a command line of the form:C C PDS>MAIL CCC where is a filename, and is a user name or aFC list of names separated by commas, or '?" or 'ME'. If no parametersAC are given, is prompted for. If 0 or 1 parameter isa+C given and is not '?' or 'ME',I<C the file is prompted for, and if is given as a reply,DC LETTER.TMP is created and filled from the terminal. If a filename2C is given without an extension, .MAI is supplied.CaFC [1,100]WHODID.LST is searched for the user name and an error message=C is given if not found. Otherwise the letter is appended to CC LB0:[10,0].MAI. If the system global area (SGA) MAICOMeEC shows that is logged in, the NEWMAI byte in his entry isaDC set so that the auxiliary task POSTMN notify the user next time heC (the postman) runs.vCa,C If the is "?", GETUSR is calledBC to determine the user's login name, and a summary of his mail isDC typed. If the is "me" (or "ME"), the mailbox is typed,AC and an opportunity given to reply to each letter and to file ite2C by appending it to a file in the user's account.ChGC If the starts with "@", the remainder of the name is taken EC as a file name (default extension .MLS, default directory [current]MBC or [10,3]). The file is opened and the user names read from it.CsBC See also the ancillary task POSTMN (file POSTMAN.FLX) which runsC periodically and checks fors:C newly logged-in users, notifying them if they have mail. is typed,AC and an opportunity given to reply to each letter and to file ite2C by appending it to a file in the user's account.ChGC If the starts with "@", the remainder of th :If Da & Use your user name, not "ME", to mail yourself a letter.           's mail is being| forwarded to  To: O Subj: O  P $Subject ? To: O Subj: O  - Terminate your letter by typing on a line by itself. 5$Filename to save letter to (^Z or "TRASH" to delete) $O t+ has been notified. '+ is not logged in but will be notified.  Your mailbox is empty.  No such user as  0$Name of file to send ( to type letter now): $To: O O $Do you want to reply to    MAIL -- FATAL FILE lERROR O O From: O $Press RETURN for more ... O From: O ME?SD0:[1,100]WHODID.LSdT, SD..MAISYLETTER.TMPTRASH: [10,0].MLSSD0:[10,3]: ,a BP P P P (    1xs 1xs 1xsR 1xsQ 1xs 1xs 1xsB 1xsA &1xs (1xs .1xso 01xsn 61xs} 81xs| >1xs @1xs> Da bH ~ 1xsZ  1xsB 1xs 1xsB 1xsB" &1xsB( .1xs8 H1xso J1xsB N1xso X1xs} \1xs `1xs^ 1xsR  1xs2 >1xs2V Z1xs\ `1xsbfh j t1xsZ" R 1xs  $1xs @1xsB P1xs R1xsZ V1xsX ,a @ Da rx  z 1xs& 1xs $1xs468 <1xs2>, B1xs2 D1xsZ H1xs2J T1xs2 d1xsBf j1xs l, p1xs 800Asvw-TADATADATA@ 1xsB 1xs   1xs 1xs  01xs 41xs6,a D 1xsDa  1xsB 1xs,a J 1xsDa R   N 1xs  1xsC 1xs  1xs 4 (1xs  81xs :: D1xs ,a P 1xsBDa ,n 2 1xsF 1xsB 1xs 1xs1xs?n P( Gl : 7 77  w w ~`Wj1xs 1xs $Da H(R ,Da L0""w61xs@j DDa XH! R1xs\jbj fDa ^jK.xh7 w ww ~1xs Da b! 1xs"j*j .Da h2! <1xsFjNjT1xs^jdj hDa nl #}rj vDa pp     2 |K. Da `!y Da n" #}(j,1xs2j 6Da t:E`[Dj H1xsA P1xsA\1xsbjjj nDa zH w w   02  !  Da K.&j .Da &2>; 61xs::x< >,a B:x F!yJ1xs N1xsRXj \1xs|l1xstj x1xsQ`], -   -| 1xsQj1xs j$1xs,1xs 0Da > 41xsR8 <,a *@:x D,a :H:x L!yRjV1xs^1xsZ      2 Da J 1xsR ,a *:x ,a ::x ",a 2&:x *,a :.:x 2!y8jBj F1xsn N1xsnTj X1xs|hp 2 w  A w w~ 1xs|1xsj 1xs"1xs&1xs (1xs,1xs.1xs8j ;x# V1xsZ:x< ^,a Zt 0 e -<  z:x  !y1xs 1xsj Da $`*1xs.1xs 21xsA6::1xs>1xsF!yLj TDa X`z !&e !7     7~ Da  K. 1xs :*1xs.!y4j ;x# h,a l:x p!yt1xs xDa j@    !&e !7   ~W Da ` 1xsn: Da "K. 41xsQ8:B1xsF!yLjTj XDa \z `Da d hDa Z      }f( 1xsj Da F VN1xs "Da &f( *Da .E`[41xs;x# 1xs:x< ,a $:x (!y,1xs 01xs6j >Da B` L1xsAP:\1xs`!yfj nDa t  !&e !7 `  &  |` Da K. 1xs$:.1xs2!y8j @Da D`H!y PDa T`X!y `Da &j>;x# n1xsr:x;x# v1xs^  0S  ONM ~:x< ,a :x !y1xs 1xsR"j &Da P*z .Da V2z61xs;x# 1xs :x< $,a "(:x ,!y01xs 41xs ;x# .1xs2:x< 6,a ::x >!yB1xs F1xsR NDa R` VDa ZK.n !&e !7 -+   0z 1xsQ:"1xs&!y,j21xs8j @Da &L>;x# P1xsT:x< X,a \:x `!yd1xs h1xsRl1xs   !&e !7 (׭  !&e !7z Da ` Da K. *1xsQ.:81xs1xsDjH1xsX 7- 7  - Wpmp W ~1xs j1xs1xs1xs1xs"j&1xs*1xs21xs:1xs>1xs BqQ% D1xsA NqQ%V1xsvb W   Wpm  !&e ~ 1xsA qQ%1xs 1xsA$j*1xs.1xs61xs j BDa FF VN JDa NT RDa V&d     7w ~ Da  & Da E`[j &Da *`.!y00Qsvw-TADATADATA 2Da n6 #};x# R1xsV:x< Z,a "j 0   A ww :x  !y1xs 1xs Da pw Da p"K..1xs61xs@jFjJ1xsPj XDa \``!y hDa &X&  e -N 0 | >;x# 1xs:x<1xs1xs "1xsA&:*1xs.1xs6!y;x# ,a :x "!y&1xsQ *Da .W:j@1xsFjJ1xsPjV1xs`jf1xspjt1xspww2    ~ 1xsj1xs$j*1xs2j:j >Da BzF1xsLj PDa *TT XDa 0\t:# dDa 6h&nj`J       ~ Da 2 F VN Da <E`[j "Da R&T *Da *.& 2Da 06t:# >Da 6B&Hj LDa XPE`[Vj ^Da \  7  7  !&ez>; ,a :x !y1xs Da ^W "Da V&z*1xs0j41xs ;x# 81xs<:@!yD1xsL1xsV1xs^jdj hDa Plzlhyxwvutr  m׭@wXjzj 1xsjjj$j*j0j 8Da V<`@!y DDa nH #}L1xsRjV1xsB`1xsjji wfewcwva` _w]wvj Da pK.1xs$j*j01xs:j@1xsJjRj VDa ^ZK.djj1xstjz1xs\L[wY e V S zj1xsj _qx<$1xs&,a T *1xsB,,a T 0,a P4T1xsFjNjR1xsXj\1xs^1xsnf1xspj~B  !&e !7 @? >w<;~j Da r` Da K. .1xs2:<1xs@!yFjNjR1xsZ1xs\1xsndjj1xstj|jT9w65 7 7 00Y=lmop4 |1xs j1xs1xsn1xs$j*j .Da n2t:#61xs :Da t>TB1xs FDa 2JF VN NDa |RE`[t/ ww.  !&e !7 -| j1xs1xs1xsn(j,1xs.1xsn 8Da z<` @Da DK. V1xsZ:d1xsh!ynjr1xsrL  !&e !7 , )  z1xsn Da ` Da K. ,1xs0::1xs>!yDjH1xsL1xsN1xsnXj hDa l`p!yv   #  !&e !7  w@~ Da z>; 1xs:!y 1xs&j .Da 2` 6Da :K. L1xsP:Z1xs^!ydjj1xstj,,w  0 j_qx<1xsj "Da n& #}* #8z`WjR""w! K. #}`!yE`[>;:x<:x zz:>;x#Wf(F VNW&%t:#&Tw<@u~@,Q_qx< #8",1z`yG T Da   G   G   G   G   GL  G`h  G G0  G86 G HL  GTR Gv z  G G   G G   G G $<T Gd G`r G( ~  >fD`  GB:"  G&  Gxj    G G4 ,V  Gdb G4   GB*t  G7  G2>q`  G   G%   G > 4J  Gv N  G~   Gv   G~  4 T  B8 "T #\ f n z |    0 L V    G  Gf  $  G, 6 V v #  "@^  GB  G  GBv  Gz  G  G  G  G G  G  Gc:^(  GZBJN  GTR/  G  G  G   G **4  G<D  GLT  G\  G  G  G   G 6V dl v  G~  G G0 G0(Nn  G&2Da ,a V1xsSqQ%0GRIf Da : ERROR"  CANNOT IDENTIFY USER AT TI:   ,a  Da 6  1xs 1xsB 1xsD,a   Da . Da 21xs@TT GpR7 @7 7f    & wf ~Wj,a ",a  (Da 6,,J21xsD 1xsB,a  H,a LTVj6e-  & H1xsH 1xsH1xsBj Da "` &1xsF*:x<.!y4y8hJWj,J`:x<!yy8h,VNT"8G R( G0&Da >,a 1xsJwIf ,a  Gw7 @7 7wf  7 maz H `Wj,a ",a (,a .,a 2K. :1xsDj L1xsTjZ,a tj z1xs| 1xsWjK.G w( G8J\b,a 1xs&If ,a " G`&7 @7 7@7 7wf m7wf jWj,a ",a *,a 0,a 6,a  <,a @K.F,a J,a P,a  V,a ZT"WjK.TG \&(,a XIf GX7 W WG X(J\b,a 1xs&If ,a " G`|qQ@ $$(V2m UqQ% U G8QqQKTEDRSYSYSYSYTICLMO`  IfD```SYSYSYSYTICLMO337( ABW#W-CR~ W= B Xe   l  W5B@ Ћ W5C A ы @AP~&  @W#=   B ҋ% ABW  C ~@W# ЋA@`0  A o A o RRR  R  P)&( ~ 8Lf ? e |RyeB  & & LP _ & & & & & ffI  eA C & ~`  `Ba#   ~ L f&f00i=lmop4& M M \T: 7 >P#7!7!0! .4! K!w #@! 6!w##F! 7r!J! db!w2Z#R#P! @!w6# .#*!w##V! K #X! &  &S JV! \K" "\! XO"_% 2_%  ""r! wJx! w:v" N& jM> pL JZ 0p$D"2&  8 ("o$],o$"  "-  &p$ DG^ Kn K I!-2p$ G^ Kn Kf Kn K TI!!& 2&v!& 2& dX!7-wQ^ Kf K HF! 7! 77"7wB!  4&_% !7 F! 7 | _%% Pt \ &_% J 7N@WCw@@W@B $ aA@A%_%  77 P! - e$ J - jGf O HG $& K& zJF I "Gj0%Xx OLHe_% J <-8< F$ LO! 4 !&e% I !7 F O F : n Z J> H fF7!  N& PI! !&eo$ 2I !7h FXP|! B! ! H.!  ! ! J ! J! j} 7w0z! lv! R ! u! L! J! F twox_lh" " "" I rM D $& jI& (HF .G D0%d .Me_% G < Db L! !&e% rG !7 ZD` L DD L 4D  & H& fG> lF DV0p$ZD 7 fL! N !&eo$ F !7 CX  & 0H& F> E C0p$S8" |?>" t?ONqM K HC  & G& zFV E "Cj0& X! HL P  XwE6%D.D" b A8" >7D = w*;: 986754J" l>14 X` F& E> D 6B~0p$ J! !&eo$ E !7D A-4+( X` VF& E> D A0p$ J!  !&eo$ D !7 vA(׭ I! !&eo$ HD !7~ 0A'n%f|! =p"T!J2$ P@T" lZ"  ! Fe$7 t =! l`" ! e$7 t J! D7 7-B 7  - "Wpmp_% #W _% W _%  ^HvWpmB@8V `HF! H !&e_% B !7  ? \ H ? t H ?! N ! " Hf" Dx" Dvl" " " 8 " 0 " C 8 `G >V! ?7:w.F! 0`%" 7F! 70_%w  FF! !&e_% FA !7| .>l#d! " " 0 " ( ! " " B! H"  $ 2$ 7p7 7X" ^7e $7n x " @70$# e $8 ~ l`b7 E = $& ~A& <@V B? <,0&X! |X! 4 A ww E < $& A& ?e_% l? -N R<0`%F! vv l @6 p> <7" >$2X(&w>w00qdsvw-TADATADATA0w w2c# ~7# # D # " >$# @ |:# # P# # <R@# ?D p?N F= :7F! >" 6L7F 2CF!  !&e_% = !7& = :: <& >& p= b:׭Y׭y6/{z8" 46ytxjwdv^uXtRrL> tB 9V! :jm*׭@TwXji X! ( ,wfe wcwva `F! *_w].w[>wY B6e`%0 V\FJ" 5SF>" 4R86P.,wNDwL> IHF@ wfCBZ @" !&e$ f; !7 N8@ ?l  > >n`w<^;V9L xw645.V# 7R\# T7R " d# </ w@J w4.8 b @" !&e$ t: !7 \7- \ h ?" !&e$ .: !7d 7,T   )@ x `? 6b T;& 9 6 H # ,?"  !&e$ 9 !7 6  w@w ? V! 7 l8R7 :|@7> 7:f#  ~# >H( P9 6& ?8wf 7  - & 7,'z 7,'x we&7f  eP -L D  # =J( 8 ^5& $?w7 9 @7d 7`w`f  7 Z  J m(az H*  &7 |9 @7 7@7 7wf m7wf X7 9J,7 9 @77$Z f# f4L # 8< 8 -4 ZV & Wpw - C   8 <6 3 m(76f =e  m   mH -  f$ /  -  = f$ N/P $$ Pp$o$ P%% P`%_% (&% && && $$  $&`% ##!@R(P(!#R(& Use your user name, not "ME", to mail yourself a letter.           's mail is being forwarded to  To: O Subj: O  P $Subject ? To: O Subj: O  - Terminate your letter by typing on a line by itself. 5$Filename to save letter to (^Z or "TRASH" to delete) $O + has been notified. '+ is not logged in but will be notified.  Your mailbox is empty.  No such user as  0$Name of file to send ( to type letter now): $To: O O $Do you want to reply to    MAIL -- FATAL FILE ERROR O O From: O $Press RETURN for more ... O From: O ME?SD0:[1,100]WHODID.LST, SD..MAISYLETTER.TMPTRASH: [10,0].MLSSD0:[10,3]:x& `%&`%`% `% &  &`%&&$%p$   P& P&  & &  & &  &&!$x&$!$!& & P&!P&x&P& P&`% (&!(&`%(& $(&f $ $ `% $(&a%(& (&! (&B(&"! (&r $.!`% $&   ERROR"  CANNOT IDENTIFY USER AT TI:   'F(H(SD:[1,100]PDSUPF.DAT ######00y=lmop4 ?P(TTTT88)*))N*)X**88b)j-P)8j- )TQZQdQjQpQvQQQ00dsvw-TADATADATAj-78f&f ` *  נ נ  נננ"D נaנz E ѐEp(p נ$נ0נ9נAנZנ_נ:  Vנ[ȕ]נ<ȕ>ȋ8 ~נ%נ*נ-נ.נ0נ9נAנZȠ yנ0נ7נ*נ,A jȠh f  oנ"A   #A aנ$נ%נ*נ0נ9נAנZנ_נ.  נ.נ; dנ0נ9 ]נ- X נ* QA  נ, Dנ=  >5 B>U (w^נ/* . ,נ$נ-נ.נ0נ9נAנZ נ_ נ:  Dנ"  0f&f E^`  UQ  UQ ËUI U `e  !ddC    D%*.C U 0 0 W ,Uw6W /@ : ^BDaW-Ί WNWOD!BΊz CECCD! D! ΋5  e ΐ TpRpR΋pBC5N KR΋KBAE:D0CĊ f eB  Dҁ CSĊ 7 WB E Br Ε f)& 6 l(*  E 'W " =N  W :+W = 1 #W ,W / %W %W *Հ W <W [W >W ] v(* 6 e  &&f " E3  ߆ %  І %ĉĆ BB ĉ , ,‰; ,JJV 3Vȥ ȕ$ȥ+ `l s@ Ps`; Fs,3/"R"'" 3 0As  :   >3  H JhŀdՀ`[WB ;  M  B@ 3VA3 N  & LwwtF3   H Z3 3 V3 N J  "e$"F3 Z NE% % % 5%% W 3W H Nwp `5@ @  E5e73 *,JJ F,J Jҕ JxVET96%  Ttr  $%T %T R%TR3,% e3LsNP(3LsN xsP%% %2 hsR%2%4 TsPRNZL&P N N5@ Х,  NF %RN ‰Nc % U%%  %2R%6RR n%B%.D THwAEF`AEH lT  BE&~WtEB~LxJ  sWwR. F%LHTD` B~RHTJ%S%.SJ HAEL F`AE  $J J N   - ΋  B00=lmop4E~WtEB~w . F%LJHT w Е `CBД~w TH @` C~AA@??^@?6@??<@\??@8B8B8B8B8B8B8B8BAAAAAAAA???@@v?l?8BA8B8B8B8B8B<(0+  "1""$BBDBBDB   Ee f  z % % e@ `5 & & D  6N D D eD e`D %   &fH”E  D   D 慡e BCE DIEN -5+-` #"   A s&DE s& sA ae0b  ~ҕ*~%  0   -+% v&EEU-`5 6! 6 BN~ ; R 2R + E      R~e eE R~   E 5%% E -6vAQ~Ue B@E DEIC D `6 *a0 .< |EM   % ee0bv  @`ae ҕ*~ ~  0   ~e  f U   GG6ELFRFGjIdIGGLMLM@ JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDECzPQ____________________;________W_____}__y___;;;;1;;;;;;;13;;9;UWWVVV2WFWPWxWWWW,VTVW X"X:XLXXXX !!@ jX\XdXbdhvx^`STOP PAUSE  -- ERRORFCS:Exiting due to (Error count exceeded)at PC = hLLB:[1,2]F77OTS(@3 l & fJA BU%D~  J  l耖% l. | dwlX3 3 d3 d 3UlE0@A tB 6 ~3    &ef& v cc6 6` w &e 3 Z5  #U#U dwww .5  VfeB C555 5 551 5p  Z <R F %*K5GF##pEUUS#" <L75\L5 5 p,   n$p, 1 p s, & L* ¥ ¥¥E0#U " Hp te%ʵw ~. s eWp(eAarV'T<Zw J&& Z%1*w $B  . &  4L )L h ^  [L  3 ^ f fDL 1v. N/L  Օ,x | r5eT Օ.eZ \Օ; dLc r&? f H"L .Օ Օ-   e:f s!pU Օ & D~  A M•0 M M e p j %*e *ep %ʥ¥bw¥&f Bʋ ~7B EU~& Bp ȕ e e`e f~ 5& 5Ε ,   e p ,ep hcoW3 &f2 2 VV " P     u쇀3l 3f&~L % b %e ee e  Օ Օ ss  e hs& & &f& & & Ε  2nff)n s& TI   ,,es 5f6E@p^ pcɉ ˉȉʉ@tEpc sw *8^  - z .NA M*)98 f eB &&  U **e *Nlv ΋*.2  & #!00=lmop4)&ePe && >e >E Xp* ww *eB 8 `  (w Z B C DBe ?D(1 >w  ) 48C 0* ) *w*    0ep p  nއ = EW9ť^*0p CaC  = <  0* =Eե^A e@  = Ep+!"8eE`l0  0s00/pq0`p l064p 4 p  , J *` C# B   D @)  6?0D)w ) 8C * ) *wz *  ep p  n = EW9ť^*0p CaC  = H  0* =Eե^A e@  = Ep+!"8eE`l0  0s00/pq0`p l064p 4 p  8 V *`)w`  C#    D @)  6?0D)w peww b*eB 8 4  Fw 8 D 8#"#)%ĥ ĥ w 0 *0 @Q$    0 40 60))eB r  [# T&* =w< 2s q EW!p0p2 ؇#( P) P@#**fff  &*w. k58e$8wT 2j  ,EB0-%. #p.2e  483  -Y r38 (#5=A#@)) 8 *R*)@#0l C# 028 00ĥۇAĥĊ  000 0 @0 &*0 @ u #eB b  *  eBe>  # #D #=0/H#@&0 # = e0   0@e 6=#02/002# @#?@#040 6w/! 0s0 0/0q0p!0 .=p0p2eB  8 ~$&w *   w j*) * wB46l0w $ o832de& & & B  2PΕ   N Υ$Ε  22Υ   v Ε f e * *e*w@@)0, d   )*)'   =  l 0l   0/ e&=Ba@a  re0bGee@ ^ W= E8 el0  0s0pq0`p l064p 4 ep )wv%  ,    w>  LwB #  f  `**w,)0406 l0 &ff e(BA &e(H0 A f AfAD&pD0 >(0+1e  %p*w. f( f)f 8 -2e  L0 0 0 80 B0 0 0 0)#0.)"(. = . B  E v (.8Ae f"( UCɗ+e$&% *w 00dsvw-TADATADATA w & W+W- Ba. W#  B0  c  c S W %ec e`s  # 3  & ˥ Z ^C   f 8&* l*w BC "& @SY*p0p210=E%0=w*e "f D CB.E *) l0, *) $ )*)0,40,6 w *  w J  ~ > ,,  *e6p 4 `8  .8 81416    8 -̋ " f $ 8  08\0 ep=& /empp* .  - C46/`A p  C ? t  "̋3t42 &8f08  880!8 %   8 w` w) 4 J 2 8   ***  DP5R~RRR~ 8  ***er w * :)fff f f1    1  Mw141612epl2l0p   f >5>Eu 4  > =00l&8el2 0 *w eE D` bl lrw   B eE"s    s-  CslM=f& e %&&eH =&e0  U   E > >E=uf `p  ww *#   U@e   ew1  %,,  w *D B UqqC ӥ: ~ Ce "   t*w z*  ע"wd(Ĕ%.%%;C~ 5)5@DD ͥ*Ce e%w U\5@ 5wU U*U  "5@\U@5 5LU*U  ʥ*%C!.D` `*weC5U5  5 5@e*=U Ee& REe  ӥ" wX ˥"   ˥" Ք     Օ =D Z `p46 f 64/=  @) 0  8w 46 8 0e*w^ ..8em,0l0!D0e6p 4K) RCf   +e) .* .8 - ̋  G   Rp8e6p 4 08*w=p!Օ^8e2 *&f  EU   pr0 =B@&& p&  N pv C`B `v 0rr D wC r UeeA e* 0s rp v& sBvrp   ,*1 rU8UM%..w  w B 00fep=& /e`pw46f  8 E D/D!pq0l8epl0pɥ .ɕ*w*He(  1 :&e  1-1- 111 rrrrr fe Zw&f &  hBe H w* w v&Ba +- ʥ# . U 0   b   `     &fe00mop4 ~  2 $ L La Ta Wq(W!ZW!AW!9W!0@w | )* J fU %  BA `6p 4p`40,0, f 톇,, w      .% eB U5UU 6 plp & NeՀ)*f&5ҕ[ "5ҕ, 5ҕ]Et55tF e0ҐtI1 z   1 1 1 1 1 1 DEee $ $    f e  C C C e`w L ҥ[, &]  5 sC~ D wt ; MAIL.CMD;:; COMMAND FILE TO CREATE AND INSTALL THE IAS MAIL UTILITY.A; REQUIRES FLECS TO BE INSTALLED WITH MARK LEWIS'S DCL INTERFACE.;I; CREATE THE MAILBOX AND MAILING LIST ACCOUNTS, ALLOWING ANYONE TO CREATE; A PUBLIC MAILING LIST.;';UFD lb:[10,0]/PRO=[rwed,rwed,rwed,RWE]';UFD lb:[10,3]/PRO=[rwed,rwed,rwed,RWE];.; ASSEMBLE MACRO ROUTINES AND CREATE A LIBRARY;mac ckusr,ckusr/-sp=CKUSRmac equal,equal/-sp=EQUALmac feof,feof/-sp=FEOFmac getusr,getusr/-sp=GETUSRmac index,index/-sp=INDEX mac length,length/-sp=LENGTHmac mvstr,mvstr/-sp=MVSTRmac trunc,trunc/-sp=TRUNCAmac wfown,wfown/-sp=WFOWNIDLBR MAILIB/cr=CKUSR,EQUAL,FEOF,GETUSR,INDEX,MVSTR,LENGTH,TRUNC,WFOWN;A#; BUILD THE ACCOUNTING TASK, WHODIDL;.FLE WHODID,WHODID/-SP=WHODID&f4p whodid,whodid/-sp=whodid.ftn/co:20 mac s,s/-sp=S TKB @WHODIDB;M(; RUN IT. IT PUTS THE LISTING IN [1,100];kset /uic=[1,1]RUN [1,32]WHODIDset /uic=[1,32]aPRINT [1,100]WHODID.LST ;u6; BUILD THE SYSTEM GLOBAL AREA, MAICOM, AND INSTALL IT;hFLE MAICOM,MAICOM/-SP=MAICOM&f4p maicom,maicom/-sp=maicom.ftn/co:20 TKB @MAICOMwset /uic=[1,1]$PIP [1,1]MAICOM.TSK=[1,32]MAICOM.TSK$PIP [1,1]MAICOM.STB=[1,32]MAICOM.STB*INSTALL [1,1]MAICOM/CM/UIC:[1,1]/ACCESS:RWset /uic=[1,32]/;=$; BUILD AND INSTALL THE MAIL UTILITY;cFLE MAIL,MAIL/-SP=MAIL f4p mail,mail/-sp=mail.ftn/co:20 TKB @MAILN INSTALL MAIL;; BUILD AND INSTALL THE POSTMAN; FLE POSTMAN,POSTMAN/-sp=POSTMAN.)f4p postman,postman/-sp=postman.ftn/co:20A TKB @POSTMAN INS POSTMANL;A; SCHEDULE THE POSTMAN'S ROUTE;m FIX POSTMNRUN POSTMN/RSI=5 S@MAICOMwset /uic=[1,1]$PIP [1,1]MAICOM.TSK=[1,32]MAICOM.TSK$PIP [1,1]MAICOM.STB=[1,32]MAICOM.STB*INSTALL [1,1]MAICOM/CM/UIC:[1,1]/ACCESS:RWset /uic=[1,32]/;=$; BUILD AND INSTALL THE MAIL UTILITY;cFLE MAIL,MAIL/-SP=MAIL f4p mail,mail/-sp=mail.ftn/co:20 TKB @MAILN INSTALL MAIL;; BUILD AND INSTALL THE POSTMAN; FLE POSTMAN,POSTMAN/-sp=POSTMAN.)f4p postman,postman/-sp=postman.ft ; MAIL.CMD;:; COMMAND FILE TO CREATE AND INSTALL THE IAS MAIL UTILITY.A; REQUIRES FLECS TO BE INSTALLED WITH MARK LEWIS'S DCL INTERFACE.;I; CREATE THE MAILBOX AND MAILING LIST ACCOUNTS, ALLOWING ANYONE TO CREATE; A PUBLIC MAILING LIST.;&UFD sd:[10,0]/PRO=[rwed,rwed,rwed,RWE]&UFD sd:[10,3]/PRO=[rwed,rwed,rwed,RWE];.; ASSEMBLE MACRO ROUTINES AND CREATE A LIBRARY;mac ckusr,ckusr/-sp=CKUSRmac equal,equal/-sp=EQUALmac feof,feof/-sp=FEOFmac getusr,getusr/-sp=GETUSRmac index,index/-sp=INDEXmac length,length/-sp=LENGTHmac mvstr,mvstr/-sp=MVSTRTmac trunc,trunc/-sp=TRUNCImac wfown,wfown/-sp=WFOWNDDLBR MAILIB/cr=CKUSR,EQUAL,FEOF,GETUSR,INDEX,MVSTR,LENGTH,TRUNC,WFOWN;I#; BUILD THE ACCOUNTING TASK, WHODIDI;LFLE WHODID,WHODID/-SP=WHODID&f4p whodid,whodid/-sp=whodid.ftn/co:20 mac s,s/-sp=S] TKB @WHODIDB;M(; RUN IT. IT PUTS THE LISTING IN [1,100];kset /uic=[1,1]RUN [1,32]WHODIDset /uic=[1,32]aPRINT [1,100]WHODID.LST ;u6; BUILD THE SYSTEM GLOBAL AREA00vw-TADATADATA, MAICOM, AND INSTALL IT;hFLE MAICOM,MAICOM/-SP=MAICOM&f4p maicom,maicom/-sp=maicom.ftn/co:20 TKB @MAICOMwset /uic=[1,1]$PIP [1,1]MAICOM.TSK=[1,32]MAICOM.TSK$PIP [1,1]MAICOM.STB=[1,32]MAICOM.STB*INSTALL [1,1]MAICOM/CM/UIC:[1,1]/ACCESS:RWset /uic=[1,32]/;=$; BUILD AND INSTALL THE MAIL UTILITY;cFLE MAIL,MAIL/-SP=MAIL f4p mail,mail/-sp=mail.ftn/co:20 TKB @MAILN INSTALL MAIL;; BUILD AND INSTALL THE POSTMAN; FLE POSTMAN,POSTMAN/-sp=POSTMAN.)f4p postman,postman/-sp=postman.ftn/co:20A TKB @POSTMAN INS POSTMANL;A; SCHEDULE THE POSTMAN'S ROUTE;m FIX POSTMNRUN POSTMN/RSI=5 S@MAICOMwset /uic=[1,1]$PIP [1,1]MAICOM.TSK=[1,32]MAICOM.TSK$PIP [1,1]MAICOM.STB=[1,32]MAICOM.STB*INSTALL [1,1]MAICOM/CM/UIC:[1,1]/ACCESS:RWset /uic=[1,32]/;=$; BUILD AND INSTALL THE MAIL UTILITY;cFLE MAIL,MAIL/-SP=MAIL f4p mail,mail/-sp=mail.ftn/co:20 TKB @MAILN INSTALL MAIL;; BUILD AND INSTALL THE POSTMAN; FLE POSTMAN,POSTMAN/-sp=POSTMAN.)f4p postman,postman/-sp=postman.ftn/co ; MAIL.CMD;:; COMMAND FILE TO CREATE AND INSTALL THE IAS MAIL UTILITY.A; REQUIRES FLECS TO BE INSTALLED WITH MARK LEWIS'S DCL INTERFACE.;I; CREATE THE MAILBOX AND MAILING LIST ACCOUNTS, ALLOWING ANYONE TO CREATE; A PUBLIC MAILING LIST.;';UFD lb:[10,0]/PRO=[rwed,rwed,rwed,RWE]';UFD lb:[10,3]/PRO=[rwed,rwed,rwed,RWE];.; ASSEMBLE MACRO ROUTINES AND CREATE A LIBRARY;;mac ckusr,ckusr/-sp=CKUSR;mac equal,equal/-sp=EQUAL;mac feof,feof/-sp=FEOF;mac getusr,getusr/-sp=GETUSR;mac index,index/-sp=INDEX;mac length,length/-sp=LENGTHT;mac mvstr,mvstr/-sp=MVSTR;mac trunc,trunc/-sp=TRUNC;mac wfown,wfown/-sp=WFOWNE;LBR MAILIB/cr=CKUSR,EQUAL,FEOF,GETUSR,INDEX,MVSTR,LENGTH,TRUNC,WFOWNN;O#; BUILD THE ACCOUNTING TASK, WHODID;U;FLE WHODID,WHODID/-SP=WHODIDd';f4p whodid,whodid/-sp=whodid.ftn/co:20d;mac s,s/-sp=S ;TKB @WHODID;E(; RUN IT. IT PUTS THE LISTING IN [1,100];-;set /uic=[1,1]u;RUN [1,32]WHODID;set /uic=[1,32];PRINT [1,100]WHODID.LST;p6; BUILD THE SYSTEM GLOBAL AREA, MAICOM, AND INSTALL IT;p;FLE MAICOM,MAICOM/-SP=MAICOMM';f4p maicom,maicom/-sp=maicom.ftn/co:20o ;TKB @MAICOM;set /uic=[1,1]/%;PIP [1,1]MAICOM.TSK=[1,32]MAICOM.TSKL%;PIP [1,1]MAICOM.STB=[1,32]MAICOM.STBO;INS MAICOM/CM/UIC=[1,1]/ACC=RWO;set /uic=[1,32];d$; BUILD AND INSTALL THE MAIL UTILITY;d;FLE MAIL,MAIL/-SP=MAIL@!;f4p mail,mail/-sp=mail.ftn/co:20I ;TKB @MAIL ;INSTALL MAIL/;=; BUILD AND INSTALL THE POSTMAN/;=FLE POSTMA,POSTMA/-SP=POSTMA&f4p postma,postma/-sp=postma.ftn/co:20 TKB @POSTMAN INS POSTMA;F; SCHEDULE THE POSTMAN'S ROUTE;m FIX POSTMN;RUN POSTMN/RSI=5 So ;TKB @MAICOM;set /uic=[1,1]/%;PIP [1,1]MAICOM.TSK=[1,32]MAICOM.TSKL%;PIP [1,1]MAICOM.STB=[1,32]MAICOM.STBO;INS MAICOM/CM/UIC=[1,1]/ACC=RWO;set /uic=[1,32];d$; BUILD AND INSTALL THE MAIL UTILITY;d;FLE MAIL,MAIL/-SP=MAIL@!;f4p mail,mail/-sp=mail.ftn/co:20I ;TKB @MAIL ;INSTALL MAIL/;=; BUILD AND INSTALL THE POSTMAN/;=FLE POSTMA,POSTMA/-SP=POSTMA&f4p postma,postm<0V :: "! W&%~,Jt:#K.TvwW6x`;Wf(00mop4y! W&%~,Jt:#K.TW00vw-TADATADATAU OڳzyOڳD<&@p@`@}@VN@<&p@t<@X@' q@[(}@hp!@ T*wWhD6x`;hvhy @t<<& <&p @""$$` `## ' q((`%`lp wLB0:[1,100]PDSUPF.DATl pwLB0:[1,2]QIOSYM.MSG  # ŝ0 f & &  )w@ ŝ f 4X ' qhp! 8VNVZf}r^& &  )wPLD-@@w 7!4@0 ŝb f VNRVf}r~& &  )(@B~@  z t n7? 3*VN@[(}H[(}P[(}X[(}pt`U *! D <! h @ ABW#W-CR~ W= U RW&%D,0z@<4@)%@)%@:@ "W&%h &B e  ( ,0z<4)%)%)%":hU Or,JOD@zBWjE`[%;:x !yv; zG ,J( GTA "Da >,a 1xsH<@ U Ӹ,JӸ Da *SD:[1,100]PDSUPF.DAT ,a !@! 1xs 1xsDa 2&"  ( ,a 00ўvw-TADATADATA Da " 1xsDa T 1xs@TT GdJ,7 @77$f  -|Wj,a $,a *1xsB 0Da &4""w:1xsD >Da 2BE`[H1xsB JSP1xsFT1xsF VS^jb1xsFX`Wpw-    m7f ez <@ 1xsH1xsH1xsH"1xsH&%; *,a .:x 2!y61xsD<,a @,a  F,a Jv; R1xsDV1xsDj m   mH -f   -= f,a  1xs@1xsD1xsD1xsF ,a &1xsD*1xsD 4Da T8z@jLjP1xsFT1xsF VS^j hDa T  zJWj""wE`[%;:x !yv; z G " Da F  G ,J( GTZpC *Da Z,a 1xsJS<@ Vbp,Jbp Da *SD:[1,100]PDSUPF.DAT ,a !@! 1xs 1xsDa 2&"  ( ,a  Da " 1xsDa T 1xs@TT GdJ,7 @77$f  -|Wj,a $,a *1xsB 0Da &4""w:1xsD >Da 2BE`[H1xsB JSP1xsFT1xsF VS^jb1xsFX`Wpw-    m7f ez <@ 1xsH1xsH1xsH"1xsH&%; *,a .:x 2!y61xsD<,a @,a  F,a Jv; R1xsDV1xsDj m   mH -f   -= f,a  1xs@1xsD1xsD1xsF ,a &1xsD*1xsD 4Da T8z@jLjP1xsFT1xsF VS^j hDa T  zJWj""wE`[%;:x !yv; z G " Da F  G ,J( GTZpC *Da Z,a 1xsJS<@ 8Vf,Jf Da .SD:[1,100]PDSUPF.DAT' ,a !@! 1xs 1xsDa >*6  ( 4"68:<,a  Da & 1xsDa d 1xs@TT G`J,7 @77$f   -|Wj,a $,a *1xsB 0Da *4""w:1xsD >Da 6BE`[ FDa XJ""wP1xsB RSX1xsF\1xsF ^Sf\Wpw- &    m7f e j1xsF <@1xsH1xsH(1xsH.1xsH8%;x# <,a @:x D!yH1xsDN,a R,a  X,a \v; d1xsD\ m   mH -f   -z1xsD ,a 1xs@1xsD1xsD1xsF$,a *1xsD.1xsD 8Da d<zDjPjT1xsFX1xsF ZS= f  j Da dzJWj""wE`[%;x#:x !yv; z G 0 Da J  G ,J( G\]xF  G *Da j,a 1xsJS<@  m   mH -f   -z1xsD ,a 1xs@1xsD1xsD1xsF$,a *1xsD.1xsD 8Da d<zDjPjT1xsFX1xsF ZS= f  j Da dzJWj""wE`[%;x#:x !yv; z G 0 Da J  G ,J( G\]xF  G *Da j,a 1xsJS<@ 00ٞڞmop4'INSTALL [1,1]MAICOM/CM/UIC=[1,1]/ACC=RWRUN [1,32]MAIZERINSTALL [1,32]MAILINS [1,32]POSTMAN8;can't fix postmn, causes HELBYE common to be fixed too. ;FIX POSTMNRUN POSTMN 5S/RSI=10S/ IAS MAIL UTILITYi. R. N. Stillwell4 Institute for Lipid Research3 Baylor College of Medicine 0 Houston, Texas 77030, 713-799-47210 GENERAL DESCRIPTIONN IAS MAIL is a pair of IAS programs that allow users to send each otherNmessages. It is modeled generally on ARC MAIL, developed by William KorendykNand Mark Johnson, and available on the RSX/IAS SIG tapes. Rather than try toNmodify the Macro code of ARC MAIL to use the quite different system dataNstructures of IAS, I have written IAS MAIL as a new set of programs, primarily in Flecs (a structured Fortran).N IAS MAIL has three components: a timesharing task (MAIL) that handles allNof the user interaction in sending or receiving mail; a real-time taskN(POSTMAN) that notifies the recipient that he has mail; and a system globalNarea (MAICOM) that provides communication between the two tasks. A third taskN(WHODID) is also used to create a user directory; this is primarily anNaccounting task, and is used at ILR by the System Manager as part of themonthly accounting procedure.N IAS MAIL accesses three directories on SY0: besides the user's defaultNdirectory: [1,100] for WHODID.LST, the user directory; [10,0] for the mailboxNfiles; and [10,3] for public mailing lists. Account [10,0] must be set up withNprotection (WO:RWE). Account [10,3] may be protected (WO:RWE) if any userEmay set up a public mailing list, or (WO:R) if only system users may.i) INSTALLATION NOTES N The DCL command file MAIL.CMD will handle the entire installation$procedure if the following are true:8 o The installer is logged in as a privileged user.2 o The installer's default disk = SY0: = LB0:; o Flecs is installed with Mark Lewis's DCL interface. N o There is a system library called F25RES (containing Fortran v2.5 OTS).NYou will probably need to list and edit the various command files to suit yourNconfiguration. WHODID.FLX summarizes users by major categories (groups ofNUICs) for our record-keeping purposes. You should substitute your own cate-Egories or remove that part of the code; it is not necessary for MAIL.NWhen the MAIL system has been built and tested, edit your startup command fileNto schedule the POSTMAN. If you have plenty of memory, FIX him (we have an"11/45 and can't afford the space).- BUGS, CROCKS AND KLUDGESi:MAIL and POSTMAN do not recognize a user logged in at TT0:NPOSTMAN (installed as POSTMN) runs every few seconds (e.g. 5) to check forNusers newly logged in or out. If he finds a new login, he does a file lookupNto see if the user has anything in his mailbox. If you have memory to spare,4you can save some of this overhead by fixing POSTMN.NIt might be better if MAICOM contained a list of non-empty mailboxesN(maintained by MAIL). Then POSTMAN wouldn't have to do a file lookup, and!would be much smaller and faster.rNUsing WHODID.LST as a user directory is not very elegant, but it allowsN[1,100]PDSUPF.DAT to be protected against snoopers (passwords are not securely encrypted).oNThe type-a-letter-at-the-terminal feature of MAIL would be nicer if it invoked an editor.CMailing lists are restricted to 80 characters. This i00ឪ➫Kw-TADATADATAs ridiculous.fNIf you try to reply to a letter you have written to yourself, MAIL bombs out.Can you blame it?n't have to do a file lookup, and!would be much smaller and faster.rNUsing WHODID.LST as a user directory is not very elegant, but it allowsN[1,100]PDSUPF.DAT to be protected against snoopers (passwords are not securely encrypted).oNThe type-a-letter-at-the-terminal feature of MAIL would be nicer if it invoked an editor.CMailing lists are restricted to 80 characters. This i MAISHO=MAISHOlb:[1,1]f77ots/lb/ UIC=[1,1] SGA=MAICOM:RW/ COMMON /MAICOM/ ENTRY  BYTE ENTRY (14,40)  DATA NENTRY /40/  DO 1000 I=1,NENTRY$ IF(ENTRY(13,I).EQ.0) GOTO 1000? WRITE (5,100) ENTRY(13,I),ENTRY(14,I),(ENTRY(J,I),J=1,12) 100 FORMAT(' ',I5,I5,' ',12A1)1000 CONTINUE CALL EXIT END KK(U qQ% U . CqQxEDRSYSYSYSYTICLMO`7 ͸ ````SYSYSYSYTICLMO13^x 8Lf ? e |RyeB  & & LP ~ & & & & & ffI  eA  : 7  2Wp< fe 0fe &C`e    \ 7("HH $  ""  (0^Z 0pPvp| 00ڞmop4v|ܬ]  &&f  E3  ߆ %  І %ĉĆ BB ĉ , ,‰; ,JJV 3Vȥ ȕ$ȥ+ `l s@ Ps`; Fs,3/"R"'" 3 0As  :   >3  H JhŀdՀ`[WB ;  M  B@ 3VA3 N  & LwwtF3  00➫Kw-TADATADATA  H Z3 3 V3 N J  "e$"F3 Z NE% % % 5%% W 3W H Nwp `5@ @  E5e73 *,JJ 򋯧,J Jҕ Jx榾T96%  Ttr  $%T %T R%TR3,% e3LsNP(3LsN xsP%% %2 hsR%2%4 TsPRNZL&P N N5@ Х,  N %RN ‰Nc % U%%  %2R%6RR n%B%.D THwA`AfH lT  BE&~WtEB~L  sWwR. %LHTD` B~RHT%S%.S HAL `A>  $J J N   - ΋  BE~WtEB~w . %LHT w Е `CBД~w TH @` C~,.:.^ơ|>̡Rȣȣȣȣȣȣȣȣ06e >E zp* w w >*eB 8  w B C DBe ?D(1 >w e w w  D 8#"#)%ĥ ĥ w 0 *0 @Q$    0 40 60))eB   [# T&* =w< 2s q EW!p0p2 ؇#( P) v @#**fff  @ &*w. k58e$8wT 2j  ,EB0-%. #p.2e  483  -Y r38 (#5=A#@))  *R*)@#0l C# 028 00ĥۇAĥĊ  000 0 @0 &*0 @ u #eB  p *  eBe>  # #D #=0/H#@&0 # = e0   0@e 6=#02/002# @#?@#040 6w/! 0s0 0/0q0p!0 .=p0p2w $ @ o832de& & & B  2PΕ   N Υ$Ε  22Υ   v Ε f e H* *e*w@)0, b   )*)'   =  l 0l  6  0/ e&=Ba@a  re0bGee@ ^ W= E8 el0  0s0pq0`p l064p 4 ep )wv%   ,     pw>  LwB #  f  `**w)0406 l0 &ff 0+1e  %p*w. f( f)f 8 -00 w-TADATADATA2e  L0 0 0 80 B0 0 0 0)#0.)"(. = . B  E ^ (.8Ae f"( UCɗ+e$&% * p f T&* V*w ZBC "& @SY*p0p210=E%0=wp*e "f D CB.EewV* P)fff f f1    1  141612epl2l0p zMw6   f R >5>Eu   e6p 4 8 X .8 >81416   &  8 -̋  f ,8  08\0 ep=& /empp* 6 - C46/`A p  C ? t  "̋3t42 &8f08  880!8 % x  8 whw> =00l&8el2 0 *w eE D` bl lrw   B eE"s    s-  CslM=f& e %&&eH =&e0  U   E > >E=uf tp  w *) l0, *) $ )*)0,40,6 V..8em,0l0!D0e6p 4K) Cf   +e) .* .8 - ̋  G  V Rp8e6p 4 08*wV 8  ***  DP5R~RRR~=p!Օ^8e2 *He(  1 :&e b 1-1- 111 rrrrr fe wX,*1 U8UM%..wx wh B 00fep=& /e`pwz46f  8 E D/D!pq0l8epl0pɥ .ɕ*w&f 0,0, f 톇,, w >     .% r eB U5UU  plp & NeՀ)*f&5ҕ[ "5ҕ, 5ҕ]Et55tF e0ҐtI1 z  $ 1 1 1 1 1 1 DEee $ $    f e  C C C e` MAIZER=MAIZERlb:[1,1]f77ots/lb/ UIC=[1,1] SGA=MAICOM:RW/ COMMON /MAICOM/ ENTRY  BYTE ENTRY (14,40)  DATA NENTRY /40/  DO 1000 I=1,NENTRY DO 1000 J=1,141000 ENTRY(J,I)=0 CALL EXIT END00 ڞmop4 JJ(U qQ% U @ A@qQZEDRSYSYSYSYTICLMO`@A ͸````[SYSYSYSYTICLMO138 8Lf ? e |RyeB  & & LP  & & & & & ffI  eA  : 7 L pWp`C`3߀   7< R(jVJFF0P60< J "(.r00 w-TADATADATAjAr____________________;________W_____}__y___;;;;1;;;;;;;13;;9;bdhvx^` -- ERRORFCS:Exiting due to (Error count exceeded)at PC = LB:[1,2]F77OTS(@͋ %swNe   ^i F` 3&    w nltʋ3h3 v3 x3 56 26sv7sx.ltՀ5 fd  Awb hie.B elw@# %߉߉fjePzi8 rl,3Wp6 B~tB P~ 3  `  z  | 3e  ɋ5 U 5   5 x> B 6 ~3  w bB  . &    h v^  b  3 ^ f F 1v. .  Օ,x | r5eT Օ.eZ \Օ; c r&? F H .Օ Օ-   e:f s!pU Օ  D~  A M•0 M M,%c Wpl@`.œ  `  3ȋs3 b3 3 dwoW3 &f2 2 VV " P     u쇀3l 3Օ Օ ss  e hs& & &f& & & Ε  2nff)n s& TIf& % b %e ee e    &ef& v cc6 6` f6E@p^ p00!mop4ȋɉ ˉȉʉ@tEp0 sw *8^ r -  .NA M*)98  eB &&  U V**e *Nlv ΋*.2 J & #!)&ePe && >e >E p* ww v*eB 8   w BB C DBe ?D(1 >&ff 0+1e  %p*w. f( f)f 8 -2e  L0 0 0 80 B0 0 0 0)#0.)"(. = . B  E  (.8Ae f"( UCɗ+e$&% *  f l&* n*w ZBC "& @SY*p0p210=E%0=wp*e "f D CB.Ew eE D` bl lrw   B eE"s    s-  Csl8e2 ..8em,0l0!D0e6p 4K) Cf   (+e) .* .8 - ̋  G   Bp8e6p 4 08*w=p!Օ^ bMw   f : >5>Eu   &f 141612epl2l0p,*146f  8 E D/D!pq0l8epl0pɥ .ɕ*wZ 6U8UM%..w w0,0, f 톇,, w ^     .% eB U5UU & plp & NeՀ)* .TITLE MVSTR. .SBTTL MVSTR FUNCTION FOR FORTRAN (OPTIMIZED) .GLOBL MVSTRM;(; CALL:G;L; CALL MVSTR(S1,S2);OR CALL MVSTR(S1,S2,LEN)F;L1; WHERE S1 AND S2 ARE THE USUAL STRING ARGUMENTS; !; LEN IS THE LENGTH FOR THE MOVE.12; STRING S2 IS MOVED TO S1 (NOTE: DEST <- SOURCE).D; IF LEN IS <=0 OR OMITTED, MOVE UP TO AND INCLUDING THE FIRST NULL.5; OTHERWISE, MOVE UP TO THE FIRST NULL, OR MOVE LEN-1 ; CHARACTERS, THEN ADD A NULL.;- MVSTR: MOV 2(R5),R1 ;POINT TO S1 MOV 4(R5),R2 ;AND S2 CMPB @R5,#2 ;2-ARGUMENT FORM?C BEQ MVS1R BLT RETURN ;LESS MOV @6(R5),R3 ;GET LENGTH$ DEC R3 ;ALLOW FOR TERMINATING NULL& BLE MVS1 ;IF <=0, SAME AS 2-ARG FORM1$: MOVB (R2)+,(R1)+ ;MOVE BEQ RETURN ;NULL?N SOB R3,1$ ;COUNT AND LOOPS CLRB (R1)+ BR RETURN$MVS1: MOVB (R2)+,(R1)+ ;MOVE TO NULL BNE MVS1URETURN: RTS PC .ENDFIRST NULL.5; OTHERWISE, MOVE UP TO THE FIRST NULL, OR MOVE LEN-1 ; CHARACTERS, THEN ADD A NULL.;- MVSTR: MOV 2(R5),R1 ;POINT TO S1 MOV 4(R5),R2 ;AND SC File POSTMAN.FLXC6C This is the real-time task that checks for (1) newly1C logged-in users and (2) users with new mail andC notifies them of mail.CC COMMON SGA FOR MAIL, POSTMANC COMMON /MAICOM/ ENTRY BYTE ENTRY (14,20) BYTE FILNAM(20) INTEGER USRBUF(160) INTEGER LUBUF LOGICAL*1 EQUAL LOGICAL*1 FOUND INTEGER IDS,IRET BYTE BELL EQUIVALENCE (IDS,IRET) DATA NENTRY /20/  DATA BELL /7/ DATA LUBUF /160/CC CODEC SET-UP CHECK-FOR-NEW-LOGINS CHECK00") w-TADATADATA-FOR-NEW-MAILM CHECK-FOR-NEW-LOGOUTS CALL EXITCk TO SET-UPC Get list of logged-in users. CALL GETUSR(USRBUF,LUBUF,IER)C DEBUGGING CODED CALL DEBUG (1,'POSTMAN.')FD DO 9991 IUSR=1,LUBUF,8ED9991 IF (USRBUF(IUSR).NE.0) WRITE (3,9903) (USRBUF(I),I=IUSR,IUSR+7)R!D9903 FORMAT (1X,6A2,5X,A2,5X,O8)1C END OF DEBUGGING CODE IF (IER.LT.0) TAKE-ERROR-EXIT$C Suppress non-existent file message" CALL ERRSET(29,,.FALSE.,,.FALSE.)'C Suppress "error during write" messageE" CALL ERRSET(38,,.FALSE.,,.FALSE.) FINCE TO TAKE-ERROR-EXITC WRITE (2,101) IDS-101 FORMAT (' Postman exiting with code ',I8,U 1 '. Inform system manager.') CALL EXIT FINC( TO CHECK-FOR-NEW-MAIL*D CALL DEBUG (1,' POSTMN: CHECK NEW MAIL') DO (IENTRY=1,NENTRY)U6 IF (ENTRY(14,IENTRY).NE.0 .AND. ENTRY(1,IENTRY).NE.0) IUNIT = ENTRY(13,IENTRY)4D CALL DEBUG (3,' HAS MAIL: ',ENTRY(1,IENTRY),IUNIT) CALL ASNLUN (2,'TT',IUNIT)2 WRITE (2,21,ERR=201) BELL, BELL,21 FORMAT (' ',A1,' You have mail.',A1/) ENTRY(14,IENTRY) = 0N 201 CONTINUE FIN FIN FINC( TO CHECK-FOR-NEW-LOGINS0D CALL DEBUG (1,' POSTMN: CHECK NEW LOGINS',' ')*C SYSTEM BUG (?): UTN MAY HAVE BLANK NODES DO (IUSR = 1,LUBUF,8) IF (USRBUF(IUSR+6).EQ.'TT') SEARCH-FOR-ENTRY=DD IF (FOUND) CALL DEBUG (3,' ALREADY LOGGED ',ENTRY(1,IENTRY),IUNIT) UNLESS (FOUND)EC Find an empty slot in MAICOM IENTRY = 0,* WHILE (IENTRY.LT.NENTRY .AND. .NOT.FOUND) IENTRY = IENTRY+1 FOUND = ENTRY(1,IENTRY) .EQ. 0, FIN IF (FOUND).* CALL MVSTR (ENTRY(1,IENTRY),USRBUF(IUSR))# ENTRY (13,IENTRY) = USRBUF(IUSR+7)->D CALL DEBUG (3,' NEW LOGIN: ',ENTRY(1,IENTRY),USRBUF(IUSR+7)) ENTRY(14,IENTRY) = 0  CHECK-FOR-MAIL-FILE FIN FIN FIN FIN FINCU TO CHECK-FOR-MAIL-FILEO CALL MVSTR (FILNAM,'[10,0]')U" CALL CONCAT (FILNAM,USRBUF(IUSR)) CALL CONCAT (FILNAM,'.MAI')$D CALL DEBUG (2,' TRY FILE ',FILNAM)= OPEN (NAME=FILNAM,UNIT=1,TYPE='OLD',FORM='FORMATTED',ERR=33)E WHEN (.FALSE.)E 33 CONTINUE)D CALL DEBUG (1,' NO FILE',' ')L FIN ELSEY ENTRY(14,IENTRY) = 1)"D CALL DEBUG (1,' FILE FOUND',' ') CLOSE (UNIT=1)( FIN FINC' TO SEARCH-FOR-ENTRY FOUND = .FALSE. IENTRY = 0 * WHILE (IENTRY.LT.NENTRY .AND. .NOT.FOUND) IENTRY = IENTRY+1 IUNIT = ENTRY(13,IENTRY) 2 FOUND = EQUAL(ENTRY(1,IENTRY),USRBUF(IUSR)) .AND. 1 IUNIT .EQ. USRBUF(IUSR+7) FIN FINCL TO CHECK-FOR-NEW-LOGOUTSA1D CALL DEBUG (1,' POSTMN: CHECK FOR NEW LOGOUTS')A DO (IENTRY = 1,NENTRY)A IF (ENTRY(1,IENTRY).NE.0) FOUND = .FALSE. IUSR = -7 IUNIT = ENTRY(13,IENTRY)Y' WHILE (IUSR.LT.LUBUF .AND. .NOT.FOUND)) IUSR = IUSR + 82 FOUND = EQUAL(ENTRY(1,IENTRY),USRBUF(IUSR)) .AND. 1 IUNIT.EQ.USRBUF(IUSR+7) FIN/D IF (FOUND) CALL DEBUG (3,' STILL LOGGED IN:',D 1 ENTRY(1,IENTRY),IUNIT) UNLESS (FOUND)T:D CALL DEBUG (3,' JUST LOGGED OUT:',ENTRY(1,IENTRY),IUNIT) DO (I=1,14) ENTRY(I,IENTRY) = 0 FIN FIN FIN FINC( ENDCN' SUBROUTINE DEBUG(N,LABEL,STRING,IUNIT) D BYTE LABEL(1),STRING(1)ND GOTO (1,2,3),N0D1 WRITE (3,9901) (LABEL(I),I=1,LENGTH(LABEL)-1)D RETURN6D2 WRITE (3,9901) (LABEL(I),I=1,LENGTH(LABEL)-1),': ',$D 1 (STRING(I),I=1,LENGTH(STRING)-1)D RETURN6D3 WRITE (3,9901) (LABEL(I),I=1,LENGTH(LABEL)-1),': ',$D 1 (STRING(I),I=1,LENGTH(STRING)-1)D WRITE (3,9902) IUNITD RETURND9901 FORMAT (1X,80A1)D9902 FORMAT ('+',T40,O5)Y ENDC SUBROUTINE CONCAT(A,B)R BYTE A(1),B(1)N CALL MVSTR(A(LENGTH(A)),B)S ENDINE DEBUG(N,LABEL,STRING,IUNIT) D BYTE LABEL(1),STRING(1)ND GOTO (1,2,3),N0D1 WRITE (3,9901) (LABELP COMMON /MAICOM/ ENTRY 00009 P BYTE ENTRY (14,20) 00010 P BYTE FILNAM(20) 00011 P INTEGER USRBUF(160) 00012 P INTEGER LUBUF 00013 P LOGICAL*1 EQUAL 00014 P LOGICAL*1 FO00*!mop4UND 00015 P INTEGER IDS,IRET 00016 P BYTE BELL 00017 P EQUIVALENCE (IDS,IRET) 00018 P DATA NENTRY /20/ 00019 P DATA BELL /7/ 00021 P DATA LUBUF /160/ 00022 P ASSIGN 32757 TO I32758 00026 P GO TO 32758 00026 P32757 ASSIGN 32755 TO I32756 00027 P GO TO 32756 00027 P32755 ASSIGN 32753 TO I32754 00028 P GO TO 32754 00028 P32753 ASSIGN 32751 TO I32752 00029 P GO TO 32752 00029 P32751 CALL EXIT 00030 P32758 CONTINUE 00032 P CALL GETUSR(USRBUF,LUBUF,IER) 00034 PD CALL DEBUG (1,'POSTMAN.') 00036 PD DO 9991 IUSR=1,LUBUF,8 00037 PD9991 IF (USRBUF(IUSR).NE.0) WRITE (3,9903) (USRBUF(I),I=IUSR,IUSR+7) 00038 PD9903 FORMAT (1X,6A2,5X,A2,5X,O8) 00039 P IF(.NOT.(IER.LT.0)) GO TO 32750 00041 P ASSIGN 32748 TO I32749 00041 P GO TO 32749 00041 P32748 CONTINUE 00041 P32750 CALL ERRSET(29,,.FALSE.,,.FALSE.) 00043 P CALL ERRSET(38,,.FALSE.,,.FALSE.) 00045 P GO TO I32758 00046 P32749 CONTINUE 00048 P WRITE (2,101) IDS 00049 P101 FORMAT (' Postman exiting with code ',I8, 00050 P 1 '. Inform system manager.') 00051 P CALL EXIT 00052 P GO TO I32749 00053 P32754 CONTINUE 00055 PD CALL DEBUG (1,' POSTMN: CHECK NEW MAIL') 00056 P DO 32747 IENTRY=1,NENTRY 00057 P IF(.NOT.(ENTRY(14,IENTRY).NE.0 .AND. ENTRY(1,IENTRY).NE.0)) GO TO 00058 P 132746 00058 P IUNIT = ENTRY(13,IENTRY) 00059 PD CALL DEBUG (3,' HAS MAIL: ',ENTRY(1,IENTRY),IUNIT) 00060 P CALL ASNLUN (2,'TT',IUNIT) 00061 P WRITE (2,21,ERR=201) BELL, BELL 00062 P21 FORMAT (' ',A1,' You have mail.',A1/) 00063 P ENTRY(14,IENTRY) = 0 00064 P201 CONTINUE 00065 P32746 CONTINUE 00067 P32747 CONTINUE 00067 P GO TO I32754 00068 P32756 CONTINUE002) w-TADATADATA 00070 PD CALL DEBUG (1,' POSTMN: CHECK NEW LOGINS',' ') 00071 P DO 32745 IUSR = 1,LUBUF,8 00073 P IF(.NOT.(USRBUF(IUSR+6).EQ.'TT')) GO TO 32744 00074 P ASSIGN 32742 TO I32743 00075 P GO TO 32743 00075 P32742 CONTINUE 00076 PD IF (FOUND) CALL DEBUG (3,' ALREADY LOGGED ',ENTRY(1,IENTRY),IUNIT) 00076 P IF(FOUND) GO TO 32741 00077 P IENTRY = 0 00079 P32740 IF(.NOT.(IENTRY.LT.NENTRY .AND. .NOT.FOUND)) GO TO 32739 00080 P IENTRY = IENTRY+1 00081 P FOUND = ENTRY(1,IENTRY) .EQ. 0 00082 P GO TO 32740 00083 P32739 IF(.NOT.(FOUND)) GO TO 32738 00084 P CALL MVSTR (ENTRY(1,IENTRY),USRBUF(IUSR)) 00085 P ENTRY (13,IENTRY) = USRBUF(IUSR+7) 00086 PD CALL DEBUG (3,' NEW LOGIN: ',ENTRY(1,IENTRY),USRBUF(IUSR+7)) 00087 P ENTRY(14,IENTRY) = 0 00088 P ASSIGN 32736 TO I32737 00089 P GO TO 32737 00089 P32736 CONTINUE 00090 P32738 CONTINUE 00091 P32741 CONTINUE 00092 P32744 CONTINUE 00093 P32745 CONTINUE 00093 P GO TO I32756 00094 P32737 CONTINUE 00096 P CALL MVSTR (FILNAM,'[10,0]') 00097 P CALL CONCAT (FILNAM,USRBUF(IUSR)) 00098 P CALL CONCAT (FILNAM,'.MAI') 00099 PD CALL DEBUG (2,' TRY FILE ',FILNAM) 00100 P OPEN (NAME=FILNAM,UNIT=1,TYPE='OLD',FORM='FORMATTED',ERR=33) 00101 P IF(.NOT.(.FALSE.)) GO TO 32734 00102 P33 CONTINUE 00103 PD CALL DEBUG (1,' NO FILE',' ') 00104 P GO TO 32735 00105 P32734 ENTRY(14,IENTRY) = 1 00107 PD CALL DEBUG (1,' FILE FOUND',' ') 00108 P CLOSE (UNIT=1) 00109 P32735 GO TO I32737 00111 P32743 CONTINUE 00113 P FOUND = .FALSE. 00114 P IENTRY = 0 00115 P32733 IF(.NOT.(IENTRY.LT.NENTRY .AND. .NOT.FOUND)) GO TO 32732 00116 P IENTRY = IENTRY+1 00117 P IUNIT = ENTRY(13,IENTRY) 00118 P FOUND = EQUAL(ENTRY(1,IENTRY),USRBUF(IUSR)) .AND. 00119 P 1 IUNIT .EQ. USRBUF(IUSR+7) 00120 P GO TO 32733 00121 P32732 GO T00:!mop4O I32743 00122 P32752 CONTINUE 00124 PD CALL DEBUG (1,' POSTMN: CHECK FOR NEW LOGOUTS') 00125 P DO 32731 IENTRY = 1,NENTRY 00126 P IF(.NOT.(ENTRY(1,IENTRY).NE.0)) GO TO 32730 00127 P FOUND = .FALSE. 00128 P IUSR = -7 00129 P IUNIT = ENTRY(13,IENTRY) 00130 P32729 IF(.NOT.(IUSR.LT.LUBUF .AND. .NOT.FOUND)) GO TO 32728 00131 P IUSR = IUSR + 8 00132 P FOUND = EQUAL(ENTRY(1,IENTRY),USRBUF(IUSR)) .AND. 00133 P 1 IUNIT.EQ.USRBUF(IUSR+7) 00134 P GO TO 32729 00135 P32728 CONTINUE 00136 PD IF (FOUND) CALL DEBUG (3,' STILL LOGGED IN:', 00136 PD 1 ENTRY(1,IENTRY),IUNIT) 00137 P IF(FOUND) GO TO 32727 00138 PD CALL DEBUG (3,' JUST LOGGED OUT:',ENTRY(1,IENTRY),IUNIT) 00139 P DO 32726 I=1,14 00140 P ENTRY(I,IENTRY) = 0 00140 P32726 CONTINUE 00140 P32727 CONTINUE 00142 P32730 CONTINUE 00143 P32731 CONTINUE 00143 P GO TO I32752 00144 P END 00146 P SUBROUTINE DEBUG(N,LABEL,STRING,IUNIT) 00148 PD BYTE LABEL(1),STRING(1) 00149 PD GOTO (1,2,3),N 00150 PD1 WRITE (3,9901) (LABEL(I),I=1,LENGTH(LABEL)-1) 00151 PD RETURN 00152 PD2 WRITE (3,9901) (LABEL(I),I=1,LENGTH(LABEL)-1),': ', 00153 PD 1 (STRING(I),I=1,LENGTH(STRING)-1) 00154 PD RETURN 00155 PD3 WRITE (3,9901) (LABEL(I),I=1,LENGTH(LABEL)-1),': ', 00156 PD 1 (STRING(I),I=1,LENGTH(STRING)-1) 00157 PD WRITE (3,9902) IUNIT 00158 PD RETURN 00159 PD9901 FORMAT (1X,80A1) 00160 PD9902 FORMAT ('+',T40,O5) 00161 P END 00162 P SUBROUTINE CONCAT(A,B) 00164 P BYTE A(1),B(1) 00165 P CALL MVSTR(A(LENGTH(A)),B) 00166 P END 00167 00160 PD9902 FORMAT ('+',T40,O5) 00161 P END 00162 P SUBROUTINE CONCAT(A,B) 00164 P BYTE A(1),B(1) 00165 P CALL MVSTR(A(LENGTH(A)),B) 00BCDw-TADATADATA2POSTMAN/-CP/FX/DA/rw,POSTMAN/-sp=POSTMAN,MAILIB/LBlb:[1,1]f77ots/lb/ UIC=[1,1] TASK=POSTMN SGA=MAICOM:RW SGA=HELBYE:RW//POSTMAN/-CP/FX/rw,POSTMAN/-sp=POSTMAN,MAILIB/LBlb:[1,1]f77ots/lb/ UIC=[1,1] TASK=POSTMN SGA=MAICOM:RW SGA=HELBYE:RW/ COMMON /MAICOM/ ENTRY  BYTE ENTRY (14,40)  BYTE FILNAM(22)  BYTE USRNAM(14) INTEGER USRBUF(320)  INTEGER LUBUF  LOGICAL*1 EQUAL  LOGICAL*1 FOUND  INTEGER IDS,IRET  BYTE BELL  EQUIVALENCE (IDS,IRET)  DATA NENTRY /40/  DATA BELL /7/  DATA LUBUF /320/ $C Suppress non-existent file message' CALL ERRSET(29,,.FALSE.,,.FALSE.)c clear buffer from last run DO 900 I=1,320900 USRBUF(I)=0*c Erase terminal number from last time DO 1000 INUM=1,NENTRYY1000 ENTRY(13,INUM)=0!c Log in each user in proper slotF# CALL GETUSR(USRBUF,LUBUF,IER)O DO 3000 INUM=1,NENTRY*%C erase no longer used TT from USRBUF  USRBUF(INUM*8-1)=00D WRITE(5,776) (USRBUF(N),N=INUM*8-7,INUM*8)D776 FORMAT(' ',6A2,I5,I5)L( IF (USRBUF(INUM*8).EQ.0) GOTO 3000 ITER=(USRBUF(INUM*8))9= IF (EQUAL(USRBUF(INUM*8-7),ENTRY(1,ITER),12)) GOTO 20000C User changed at this terminal !D WRITE(5,777)ITER,(INUM*8-7)iD777 FORMAT(' ',I5,I5)N3C must move 13, cause MVSTR moves 12 then adds null 3 CALL MVSTR(ENTRY(1,ITER),USRBUF(INUM*8-7),13)  ENTRY(13,ITER)=ITER&C Check this user for a mail directory& CALL MVSTR (FILNAM,'SD:[10,0]')  DO 1400 I=1,141400 USRNAM(I)=0 - CALL MVSTR (USRNAM(1),ENTRY(1,ITER),12))'C Make USRNAM truncated with null again* DO 1500 I=2,14&1500 IF (USRNAM(I).EQ.32) USRNAM(I)=0! CALL CONCAT (FILNAM,USRNAM)i! CALL CONCAT (FILNAM,'.MAI')8D WRITE(5,888)FILNAMD888 FORMAT(' ',40A1)C OPEN (NAME=FILNAM,UNIT=1,TYPE='OLD',FORM='FORMATTED',ERR=33) R$C mail file exists, so tell user CLOSE (UNIT=1) CALL ASNLUN (2,'TT',ITER) + WRITE (2,21) BELL,(USRNAM (I),I=1,12)0-21 FORMAT (' ',A1,12A1,' You have mail.') (33 CONTINUE ,(c reset logged on users terminal numbers2000 ENTRY(13,ITER)=ITER==C If new mail was created while logged in, also tell user ( IF (ENTRY(14,ITER).EQ.0) GOTO 3000 CALL ASNLUN (2,'TT',ITER)N- CALL MVSTR (USRNAM(1),ENTRY(1,ITER),12)L'C Make USRNAM truncated with null againR DO 1600 I=2,14&1600 IF (USRNAM(I).EQ.32) USRNAM(I)=0+ WRITE (2,22) BELL,(USRNAM (I),I=1,12) 022 FORMAT (' ',A1,12A1,' You have new mail.') ENTRY(14,ITER)=03000 CONTINUE0c erase any names if user is no longer logged in DO 4000 INUM=1,NENTRYI' IF(ENTRY(13,INUM).NE.0) GOTO 4000  DO 3500 I=1,143500 ENTRY(I,INUM)=04C done for now4000 CONTINUE CALL EXIT, END  SUBROUTINE CONCAT(A,B) , BYTE A(1),B(1) A! CALL MVSTR(A(LENGTH(A)),B) END 14&1600 IF (USRNAM(I).EQ.32) USRNAM(I)=0+ WRITE (2,22) BELL,(USRNAM (I),I=1,12) 022 FORMAT (' ',A1,12A1,' You have new mail.') ENTRY(14,ITER)=03000 CONTINUE0c erase any names if user is no longer logged in DO 4000 INUM=1,NENTRYI' IF(ENTRY(13,INUM).NE.0) GOTO 4000  DO 3500 I=1,143500 ENTRY(I,INUM)=00J!mop4kf@(VqQ% U 2m U3kf WEDRSYSYSYSYTICLMO`  ͸0```SYSYSYSYTICLMO33 ABW#W-CR~ W=  B ҋ% ABW  C ~ RRR  8Lf ? e |RyeB  & & LP j; & & & & & ffI  eA C & ~`  `Ba#   ~ L f&f& 0+ * \1: 7 >- ( 0 @RH Wp1߂ . d-Xwzt7B0 w7 7e Wpwweߦ ~teߔe $  2 hXeR, l 2 2 z r + $ Dl /7 >*e 0*  'F@WpE Wpwweߊ,  2  .7 )e ) : z&z0 -dw  pWp ZC`3߀  D 70 & (&7 ^*@7 7@7 7wfH nmf7vwrfL jJ,7 *@7P7J$pfF %bR )t t%JPF-BD]d4Wpw,-(F  &  :)^ R' $ m7fd .e m   mH - f "  -= f ! !@B @ !B B    You have mail.    You have new mail.  SD:[10,0].MAITT 4 >      h@ SD:[1,100]PDSUPF.DAT'  $ $ ( > $ $ 00RCDw-TADATADATA@(TTl  > HlR ZP Z(_  R-X-b-h-n-t---Zf&f00Z!mop4 ` *  נ נ  נננ"D נaנz E ѐEp(p נ$נ0נ9נAנZנ_נ:  Vנ[ȕ]נ<ȕ>ȋ8 ~נ%נ*נ-נ.נ0נ9נAנZȠ yנ0נ7נ*נ,A jȠh f  oנ"A   #A aנ$נ%נ*נ0נ9נAנZנ_נ.  נ.נ; dנ0נ9 ]נ- X נ* QA  נ, Dנ=  >5 B>U (w^נ/* . ,נ$נ-נ.נ0נ9נAנZ נ_ נ:  Dנ"  0f&f E^`  UQ  UQ ËUI U `e  !ddC    D%*.C U 0 0 W ,Uw6W /@ : ^BDaW-Ί WNWOD!BΊz CECCD! D! ΋5  e ΐ TpRpR΋pBC5N KR΋KBAE:D0CĊ f eB  Dҁ CSĊ - WB E Br Ε f)& 6 l(*  E 'W " =N  W :+W = 1 #W ,W / %W %W *Հ W <W [W >W ] v(* 6 e  &&f  E3  ߆ %  І %ĉĆ BB ĉ , ,‰; ,JJV 3Vȥ ȕ$ȥ+ `l s@ Ps`; Fs,3/"R"'" 3 0As  :   >3  H JhŀdՀ`[WB ;  M  B@ 3VA3 N  & LwwtF3   H Z3 3 V3 N J  "e$"F3 Z NE% % % 5%% W 3W H Nwp `5@ @  E5e73 *,JJ ',J Jҕ Jx6'T96%  Ttr  $%T %T R%TR3,% e3LsNP(3LsN xsP%% %2 hsR%2%4 TsPRNZL&P N N5@ Х,  N' %RN ‰Nc % U%%  %2R%6RR n%B%.D THwA''`A'H lT  BE&~WtEB~L*(  sWwR. '%LHTD` B~RHTJ(%S%.S:( HA'L '`A'  $J J N   - ΋  BE~WtEB~w . '%LJ(HT w Е `CBД~w TH @` C~|#~#"n!~!>"!"!!"  <  (            T3H eH3 3  ы 3HT3  V  P  R P , 33Z TH Z~3 É# %߉3 l 2)fA BU%D~  (  l뀖% le r5E e . dwlX3 3 d3  < ȋ35(Ul lA WBA  U l@ 4ɉ ˉȉʉ@tEpL> sw @ *8^  - X  .NA M*)98 D eB &&  U **e *Nlv ΋*.2  & #!)&ePe && >e >E 6 p* x wt w *eB 8 >   w B C DBe ?D(1 >w ) 8C 0* ) *w *    ep p  nއ = EW9ť^*0p CaC  = <  0* =Eե^A e@  = Ep+!"8eE`l0  0s00/pq0`p l064p 4 p  , J *` C#    D @)  6?0D)w *eww *eB 8 `  @w  D " 8#"#)%ĥ ĥ w 0 *0 @Q$    0 40 60))eB  [# T&* =w< 2s q EW!p0p2 ؇#( P) J @#**fff   &*w. k58e$8wT 2j  ,EB0-%. #p.2e  483  -Y r38 (#5=A#@)) d *R*)@#0l C# 028 00ĥۇAĥĊ  000 0 @0 &*0 @ Lu #eB \  <*  eBe>  # #D #=0/H#@&0 # = e0   80@e 6=#02/002# @#?@#040 6w /! 0s0 0/0q0p!0 .=p0p2eB  8 $&w @*   w $ o832de& & & B  2PΕ   N Υ$Ε  22Υ   Fv Ε f He * * *e*w@)0,    )*)'   =  l 0l   0/ e&=Ba@a  re0bGee@ ^ W= E8 el0  0s0pq0`p l064p 4 ep )wv%  ,    Rw> N  LwT B #  f  `**w)0406 l0 &ff 00rCDw-TADATADATA0+1e  %p*w. f( f)f 8 -2e  L0 0 0 80 B0 0 0 0)#0.)"(. & = . B  E (.8Ae f"( UCɗ+e$&% *w z w p& W+W- Ba. W#  B0  c  c S W %ec e`s  # 3  & ˥ Z ^C  T f &* :*w BC "& @SY*p0p210=E%0=w*e "f D CB.E *) l0, *) $ )*)0,40,6 w *  Vw J  > ,,  *e6p 4 `8  .8 p81416     8 -̋ " f $ 8  08\0 ep=& /empp* .  - C46/`A p  C ? t  "̋3t42 &8f08  880!8 %   8 w` w) f J 2 8   ***  DP5R~RRR~e w * l)fff f f1    1  Mw141612epl2l0p   f >5>Eu f  > =00l&8el2 0 *w > eE D` bl lrw   B eE"s    s-  CslM=f& e %&&eH =&e0  U   E > >E=uf p  ww P*#   U@e   ew1  %,,  w *D B UqqC ӥ: ~ Ce T   *w :*  ע"wd(Ĕ%.%%;C~ 5)5@DD ͥ*Ce e%w U\5@ 5wU U*U  "5@\U@5 5LU*U  ʥ*%C!.D` *weC5U5  5 5@e*=U Ee& REe  ӥ" wX ˥"   ˥" Ք     Օ  4..8em,0l0!D0e6p 4K) Cf  | ~+e) .* .8 - ̋  G   p8e6p 4 08*w 8  ***=p!Օ^8e2 =D D `p46 f 64/=  p@) 0  8w 46 8 e*wH *&f  EU   pr0 =B@&& p&  N pv C`B `v 0rr D wC r UeeA e* 0s rp v& sBvrp   ,*1 rU8UM%..w  w B 00fep=& /e`pw46f  8 E D/D!pq0l8epl0pɥ .ɕ*w*He(  1 :&e00z}!mop4  1-1- 111 rrrrr fe Zw&f &  hBe H w* w &Ba +- ʥ# . U 0   b   `     &fe ~  2 $ L La Ta Wq(W!ZW!AW!9W!0@0,0, f 톇,, w      .%  eB U5UU plp & NeՀ)*w D )*  fU 8%  BA `6p 4p`4f&5ҕ[ "5ҕ, 5ҕ]Et55tF e0ҐtI1 z   1 1 1 1 1 1 DEee $ $    f e  C C C e`w  ҥ[, &]  5 sC~ D wt .TITLE S .IDENT /V01.1B/;13-JUL-78 ADD BATCH PASSWORD  2 .MCALL FDBDF$,FDAT$A,FDRC$A,FDOP$A,FDBF$A2 .MCALL FSRSZ$,FINIT$,MOUT$S,OPEN$R,CLOSE$! .MCALL GET$R,QIOW$S,DIR$ .MACRO FILERR MOVB FDB+F.ERR,R5 NEG R5 MOUT$S #XQIO,,R5 .ENDM FILERR .MACRO SPACE .REPT SP.SIZ .BYTE 40 .ENDR .ENDM B.SIZ=100 EFLAG=20.NFILES=1SYLUN=2TILUN=5 TIFLG=21. US.SIZ=12.PS.SIZ=6 UI.SIZ=9.VSP.SIZ=6NAMOFF=0 UICOFF=10S PASOFF=12 BPSOFF=64MUUAOFF=52 ;UTILIZATIONFSRSZ$ NFILESFDB: FDBDF$! FDAT$A R.FIX,FD.CR,B.SIZ# FDRC$A FD.RAN,BUFFER,B.SIZ ! FDOP$A SYLUN,DSPT,,FO.RD  FDBF$A EFLAG  .NLIST BEXTDSPT: .WORD DV.SIZ,DEVICE  .WORD DI.SIZ,DIRECT .WORD FN.SIZ,FILNAM DEVICE: .ASCII /SD0:/DV.SIZ=.-DEVICEDIRECT: .ASCII /[1,100]/FDI.SIZ=.-DIRECTFILNAM: .ASCII /PDSUPF.DAT/FN.SIZ=.-FILNAMS .EVEN6XQIO: .WORD XQLN,XQIOSMF%XQIOSM: .ASCII /LB0:[1,2]QIOSYM.MSG/N XQLN=.-XQIOSML .EVENDBUFFER: .BLKB B.SIZ, .PSECT SC RW,D,GBL,REL,OVR USRNAM: .BLKB US.SIZ SPACEYUICFLD: .BLKB UI.SIZ WHERE: SPACE PASWRD: .BLKB PS.SIZ SPACEBATPWD: .BLKB PS.SIZLENGTH=.-USRNAM .EVENHOWMCH: .FLT4 0.0N .PSECTAFIRST: .WORD 0ILAST: .WORD 0DIOST: .BLKW 2I .PAGESSINIT::C*START: FINIT$ ;INIT FSR/ OPEN$R #FDB ;OPEN THE FILES) BCC 5$ ;BR I OK/ FILERR ;TELL OF ERROR JMP EXIT ; 95$: GET$R #FDB,#BUFFER,#B.SIZ ;GET FIRST RECORD* BCC 10$ ;BR IF OK/ FILERR ;TELL OF ERROR JMP EXIT:10$: MOV BUFFER,FIRST ;FIRST USER RECORD NUMBER9 MOV BUFFER+2,LAST ;LAST USER RECORD UNMBER5 MOV FIRST,R5 ;START WITH NUMBER 1  RTS PCRS:: MOV FIRST,R5 CMP FIRST,LAST  BLE 20$13$: JMP THTZIT 15$: INC R5 ;SKIP NULL NAME CMP R5,LAST BGT 13$:20$: GET$R #FDB,#BUFFER,#B.SIZ,R5 ;GET A USER RECORD* BCC 25$ ;BR IF OK/ FILERR ;TELL OF ERROR  BR EXIT#25$: MOV #USRNAM,R0 ;+O) MOV BUFFER+NAMOFF,R1 ;U BEQ 15$ ;NO NAME (DELETED)L" CALL $C5TA ;: MOV BU00-TADATADATAFFER+NAMOFF+2,R1 ;CONVERT USER NAME" CALL $C5TA ;) MOV BUFFER+NAMOFF+4,R1 ;C# CALL $C5TA ;-" MOV BUFFER+NAMOFF+6,R1 CALL $C5TAE# MOV #UICFLD,R2 ;+ 4 MOV BUFFER+UICOFF,R3 ;CONVERT UIC" CLR R4 ;# CALL .PPASC ;- 26$: CMP R2,#WHERE1 BGE 27$  MOVB #40,(R2)+  BR 26$ #27$: MOV #PASWRD,R0 ;++) MOV BUFFER+PASOFF,R1 ;  COM R12 CALL $C5TA ;CONVERT PASSWORD) MOV BUFFER+PASOFF+2,R1 ;  COM R1# CALL $C5TA ;-   MOV #BATPWD,R0 ;+; MOV BUFFER+BPSOFF,R1 ;R BEQ 30$ ; COM R1 ;U CALL $C5TA ;  MOV BUFFER+BPSOFF+2,R1 ; COM R1 ;A CALL $C5TA ;-30$: SUB #USRNAM,R0R7; QIOW$S #IO.WVB,#TILUN,#TIFLG,,#IOST,,<#USRNAM,R0,#40> ; TSTB IOST ; BPL 35$; MOVB IOST,R5; NEG R5 ; MOUT$S #XQIO,,R5; BR EXIT 35$: INC R5 SETL  MOV #BUFFER+UUAOFF,R1 LDCLF @R1,%0  STF %0,HOWMCH MOV R5,FIRSTA RTS PCTTHTZIT: MOVB #'?,USRNAM#40$: CLOSE$ #FDB RTS PCPEXIT: EXIT$S .END ;U CALL $C5TA ;  MOV BUFFER+BPSOFF+2,R1 ; COM R1 ;A CALL $C5TA ;-30$: SUB #USRNAM,R0R7; QIOW$S #IO.WVB,#TILUN,#TIFLG,,#IOST,,<#USRNAM,R0,#40> ; TSTB IOST ; BPL 10 dim na$[10]v,ln$[100]v20 input "name"na$ 30 open #3, na$+".FTN/RO/LN:100" 40 open #4, na$+".FTN/WR/LN:100"50 if end #3 then 20060 input line #3, ln$70 nn=8080 for i=1 to 74&90 if sbs$(ln$,75-i,1) <> " " then 110 100 next i110 print #4, sbs$(ln$,1,76-i) 120 goto 60 200 close210 stoptesttest .TITLE TRUNC2B; SUBROUTINE TO TRUNCATE TRAILING BLANKS FROM A STRING, AND ENSURE#; THAT THE STRING ENDS WITH A NULL.N;N; CALL TRUNC (S,L) OR; CALL TRUNC (S);M; S IS A STRING( ; L IS LENGTHQ;T .GLOBL TRUNCS#TRUNC: MOV 2(R5),R0 ;ADDRESS STRING  CMP @R5,#1 ;>1 ARGUMENT? BGT TWOARGE T1: CLR R11$: INC R1 ;COUNT TSTB (R0)+ ;LOOK FOR NULLE BNE 1$V BR T2 TWOARG: MOV @4(R5),R1 ;GET COUNT" BLE T1 ;ZERO OR -: SAME AS 1-ARG# ADD R1,R0 ;POINT TO END OF STRINGR+ CLRB -1(R0) ;BE SURE OF NULL IF NO BLANKST#T2: DEC R1 ;COUNT STRING BACKWARDSG BLT DONEE TSTB -(R0) ;ALREADY NULL?  BEQ T2 CMPB @R0,#40 ;NON-BLANK? BNE DONEC CLRB @R0 ;BLANK- NULL IT BR T2 DONE: RTS PC .ENDNCS#TRUNC: MOV 2(R5),R0 ;ADDRESS STRING  CMP @R5,#1 ;>1 ARGUMENT? BGT TWOARGE T1: CLR R11$: INC R1 ;COUNT TSTB (R0)+ ;LOOK FOR NULLE BNE 1$V BR T2 TWOARG: MOV @4(R5),R1 ;GET COUNT" BLE T1 ;ZERO OR -: SAME AS 1-ARG# ADD R1,R0 ;POINT TO END OF STRINGR+ CLRB -1(R .TITLE WFOWNP8; IRET = WFOWN(UIC) SETS FILE-OWNER WORD IN $$FSR2; ;N;EWFOWN::  MOV @2(R5),R1 ;GET UIC CALL .WFOWN CLR R05 RTS PCT; A; IRET = WDFFP(PROT) SETS DEFAULT FILE-PROTECTION WORD IN $$FSR2IWDFFP::T MOV @2(R5),R1 ;GET PROTN CALL .WDFFP CLR R0; RTS PCO .ENDAILURE - RETURN ZERO NOFD: CLR R0 BR RETURN .ENDTINGY BEQ TRIUMP ;NO MO' TO GO!L;T; COMPARE REST OF STRINGCMPR: CMPB (R0)+,(R1)+ BNE NORESTF SOB R4,CMPR; %; COMPARES EQUAL - RETURN IN T00mop4<05 ! Program whodid to replace bum version from mail package'10 ! program to list users (NAMES ONLY)15 dim ps$[6],px%(2)+20 dim na%(4),pw%(2),dv$[4],gc$[3]v,uc$[3]v.21 ! format of pdsupf record (length=64 bytes)22 ! name (8 bytes)23 ! uic (2 bytes))24 ! passw (4 bytes, complement of rad50)25 ! blank (2 bytes)26 ! priv (2 bytes):27 ! blank (22. bytes) accounting information we don't use#28 ! device (4 bytes) in ascii xxn:629 ! blank (20. bytes) batch pri,batch pw # tasks, etc40 ! first list all users 45 open #5,"WHODID.LST/WR"360 open #4,"SD:[1,100]PDSUPF.DAT/BN/LN:64/RN/RO/SH"62 re=1p70 input #4@re,fu%,lu%75 nu=lu%-fu%+1, 92 re=fu%[94 for ic=1 to nuf_100 input #4@re,na%(1),na%(2),na%(3),na%(4),ui%,pw%(1),pw%(2),x%,pr%,a,b,c,d,e,x%,dv$,f,g,h,i,j,105 if na%(1)=0 then 130A110 print #5,r5a$(na%(1));r5a$(na%(2));r5a$(na%(3));r5a$(na%(4));c115 print #5,tab(16);" ";t 117 u=ui%d$119 gc=int(u/256) : pc=int(u-256*gc)$120 if gc<0 then gc=gc-oct("177400")121 gc$=oct$(gc) : pc$=oct$(pc)s&122 if len(gc$)<3 then let gc$=" "+gc$&123 if len(gc$)<3 then let gc$=" "+gc$&125 if len(pc$)<3 then let pc$=" "+pc$&126 if len(pc$)<3 then let pc$=" "+pc$ 127 print #5,"[";gc$;",";pc$;"]" 130 re=re+1) 135 next icw137 print #5,""% 140 close 145 exith,i,j,105 if na%(1)=0 then 130A110 print #5,r5a$(na%(1));r5a$(na%(2));r5a$(na%(3));r5a$(na%(4));c115 print #5,tab(16);" ";t 117 u=ui%d$119 gc=int(u/256) : pc=int(u-256*gc)$120 if gc<0 then gc=gc-oct("177400")121 gc$=oct$(gWHODID,WHODID/-SP=WHODID,Slb:[1,1]f4pots/lb//C MONTHLY ACCOUNT SUMMARYC C MOD. JAN 83 TO CUMULATE GROUPSC* COMMON /SC/ USRNAM,FILL1,UIC,FILL2,HOWMCH* BYTE USRNAM(12),FILL1(6),UIC(9),FILL2(25) BYTE USROUT(12,50) BYTE UICOUT(9,50) REAL HOWOUT(50) BYTE DATEB(9) INTEGER GPLIM(2,7) BYTE GPNAME(21,7) REAL GPUSE(7) DATA GPLIM /"0,"37, 1 "40,"77, 1 "100,"137, 1 "140,"177, 1 "200,"237, 1 "240,"277, 1 "300,"377/ DATA ngroup /7/- DATA GPNAME /'S','y','s','t','e','m',15*' ',A 1 'E','r','r','o','r',' ','-',' ','u','n','u','s','e','d',7*' '," 1 'O','f','f','i','c','e',15*' ', 1 'M','a','s','s',' ',,; 2 's','p','e','c','t','r','o','m','e','t','r','y',4*' ',2' 1 'H','C','P',' ','l','a','b',',',' ',95 2 'h','y','p','e','r','t','e','n','s','i','o','n',2 1 'O','t','h','e','r',16*' ',7 1 'E','r','r','o','r',':',' ','D','E','C','U','S',' ',7 2 'e','t','c','.',4*' '/2C CALL DATE (DATEB)C OPEN PDSUPF.DAT CALL SINITD J = 1 HSUM = 0.0s DO (I=1,ngroup) GPUSE(I) = 0.0' REPEAT UNTIL (USRNAM(1).EQ.'?') CALL S'$ DO (I=1,12) USROUT(I,J) = USRNAM(I)! DO (I=1,9) UICOUT(I,J) = UIC(I), HOWOUT(J) = HOWMCH * 1.0E-6 HSUM = HSUM+HOWOUT(J) ACCUMULATE-GROUP-STATISTICS J = J+1 FINC9' CALL ASSIGN(1,'LB0:[1,100]WHODID.LST')' WRITE (1,1) DATEB-1 FORMAT (30X,'SYSTEM USAGE REPORT'/35X,9A1//'6 15X,' USER ',6X,' UIC ',12X,'USE',16X,'%'/) DO (K=1,J-2)C WRITE (1,2) (USROUT(I,K),I=1,12), (UICOUT(I,K),I=1,9), HOWOUT(K),  1 100.0*HOWOUT(K)/HSUMU+2 FORMAT (5X,12A1,6X,9A1,6X,F12.6,6X,F12.3)) FIN WRITE (1,3) HSUMU 3 FORMAT (/5X,'TOTAL',28X,F12.6) REPORT-GROUP-STATISTICS CALL EXIT TO ACCUMULATE-GROUP-STATISTICSU DECODE (4,5,UIC) IGROUP5 FORMAT (1X,O3) JGP = 1? WHILE (JGP.LE.ngroup .AND. IGROUP.GT.GPLIM(2,JGP)) JGP = JGP+1 4D WRITE (5,9901) UIC,IGROUP,JGP,(GPLIM(I,JGP),I=1,2)?D9901 FORMAT (' UIC: ',9A1,' IGROUP',O4,' JGP',I4,' GPLIM',2O4)W0 IF (JGP.LE.ngroup .AND. IGROUP.GE.GPLIM(1,JGP))$ GPUSE(JGP) = GPUSE(JGP) + HOWOUT(J)D WRITE (5,9902) GPUSE(JGP)1"D9902 FORM00-TADATADATAAT (' GPUSE(JGP)',F12.6) FIN FINCO TO REPORT-GROUP-STATISTICS WRITE (1,10)T+10 FORMAT (////30X,'USAGE BY USER GROUPS'//S; 1 10X,'ACTIVITY',T31,'GROUP UIC RANGE',T55,'USE',T77,'%'/)= DO (JGP = 1,ngroup) IF (GPUSE(JGP) .GT.0.0)? WRITE (1,11) (GPNAME(J,JGP),J=1,21),GPLIM(1,JGP),GPLIM(2,JGP),P# 1 GPUSE(JGP),100.0*GPUSE(JGP)/HSUM'411 FORMAT (5X,21A1,6X,O4,' to',O4,6X,F12.6,6X,F12.3) FIN FIN FIN END(1,JGP))$ GPUSE(JGP) = GPUSE(JGP) + HOWOUT(J)D WRITE (5,9902) GPUSE(JGP)1"D9902 FORM .TITLE FCB- ; PROGRAM FCB FILE CONTROL BLOCK; WRITTEN BY: FRANK PENNER ; JULY 197925; THIS PRIVILEGED TASK WILL DISPLAY THE FCB'S FOR ALLT"; THE OPEN FILES ON A GIVEN DEVICE .MCALL QIOW$,EXIT$S,DIR$,ALUN$E .MCALL TCBDF$,CALL,RETURN,GMCR$1 .MCALL DCBDF$,F11DF$,HDRDF$,HWDDF$,PCBDF$,UCBDF$P .MCALL FHDOF$ TCBDF$ ;DEFINE TCB OFFSETS DCBDF$ ;DEFINE DCB OFFSETS. F11DF$ ;DEFINE F11 OFSETS (VCB,FCB,WINDOW)& HDRDF$ ;DEFINE TASK HEADER OFFSETS# HWDDF$ ;DEFINE HARDWARE OFFSETS  PCBDF$ ;DEFINE PCB OFFSETS UCBDF$ ;DEFINE UCB OFFSETS7 FHDOF$ DEF$L ;DEFINE FILE-HEADER BLOCK OFFSETS LOCALV GMCR: GMCR$ 9 DEVNAM =GMCR+G.MCRB+4 ;START OF TYPED INPUT DEVICE NAMEE!IOST: .BLKW 2 ;I/O STATUS BLOCK(9QIODPB: QIOW$ IO.WLB,TLUN,TEFL,,IOST,,; TLUN= 5 TEFL= 2 VFC= 40OUTBUF: .BLKB 132.=READLB: QIOW$ IO.RLB,DLUN,DEFL,,IOST,,R DLUN= 1 DEFL= 1 BLKH= 0 BLKL= 1 LEN= 512.HEDBUF: .BLKB 512.LUN: ALUN$ DLUN,0,0 ! MAX=40. ;MAX OF 40 OPEN FILESG8ARGBLK: .BLKW MAX*11. ;11 WORDS FOR EACH ARGBLK PACKETDISTRNG: .ASCIZ /%45<%40<%35<%16<%P%S[%O,%O]%16>%X%35>%M%40>%M%45>%M/*PRTHED: .ASCII /FCB ADD ACC LOCK WRIT/PRTHES=.-PRTHED, .EVENUISAR1 =177642SAVEM0: .BLKW 1SAVEM1: .BLKW 11F11AP0: .WORD 1500F11AP1: .WORD 1700 .EVENSTART:# DIR$ #GMCR ;PICK UP COMMAND LINE; BCC .+6 ;C CLEAR IS SUCESS;$ JMP ERROR ;GET COMMAND LINE ERROR2 MOV #DEVNAM,R0 ;PUT ADDRESS OF TYPED INPUT IN R0= MOV (R0)+,LUN+A.LUNA ;PUT TYPE ASCII DEV NAME IN ATT LUN DPB 5 CALL $COTB ;CONVERT ASCII NUM IN R0 BUF ADD TO BINA- CMPB #':,R2 ;DEVICE SPEC TERMINATED BY : ?  BEQ .+6 ;YES SO PROCEED JMP ERROR ;NO, SO ERROR: MOV R1,LUN+A.LUNU ;PUT BINARY DEV UNIT IN ATTACH LUN DPB% DIR$ #LUN ;DO ATTACH LUN DIRECTIVE5- BCC .+6 ;C CLEAR MEANS DEVICE IS IN SYSTEMB JMP ERROR ;C SET MEANS ERRORH' MOV $HEADR,R0 ;GET OUR HEADER ADDRESS18 MOV H.LUN(R0),R1 ;SINCE ATT LUN, 1ST ADD IN LUT IS UCB* BITB #US.MNT,U.STS(R1) ;IS VOLUME MOUNTED BEQ .+6 ;YES, SO CONTINUE JMP ERROR ;NO, SO ERROR: MOV U.VCB(R1),R0 ;PUT ADDRESS OF VOLUME CONTROL BLOCK R00 MOV V.FCB(R0),R1 ;PUT ADDRESS OF 1ST FCB IN R1- MOV #ARGBLK,R2 ;PUT ADDRESS OF ARGBLK IN R2=% CLR R3 ;USE R5 TO COUNT # OF FILES -PROLOP: ;BEGINNING OF FCB PROCESSING LOOPV& INC R3 ;ONE MORE FILE, SO INC TALLY) MOV R1,(R2)+ ;PUT FCB ADDRESS IN ARGBLKJ/ CMP #120000,R1 ;IS ADDRESS OF FCB IN F11ACP ?R BHI 2$ ;NO, SO BRANCH7 MOV @#UISAR0,SAVEM0 ;SAVE MEMORY MANAGEMENT REGISTERSE, MOV @#UISAR1,SAVEM1 ;PAR FOR APR'S 0 AND 1' MOV F11AP0,@#UISAR0 ;REMAP TO F11 ACP 6 MOV F11AP1,@#UISAR1 ;THESE WORDS HAVE PAR FOR F11ACP7 SUB #120000,R1 ;SUBTRACT 120000 SO WE USE APR 0 AND 1T+ JSR PC,FCBSAV ;GO DO SAVE FCB INFORMATIONN; MOV SAVEM0,@#UISAR0 ;RESTORE MEMORY MANAGEMENT REGISTRERSE7 MOV SAVEM1,@#UISAR1 ;POINT PAR'S 0 AND 1 BACK TO EXECE" BR 3$ ;SKIP PAST NO RE-MAP CODE2$:L+ JSR PC,FCBSAV ;GO DO SAVE FCB INFORMATIONU3$:B$ TST R1 ;IS NEXT FCB A VALID LINK?0 BNE PROLOP ;NON ZERO SO VALID PTR TO NEXT FCB4 DIR$ #QIODPB ;PRINT OUT PRINT HEADING ON TERMINAL? MOV #OUTBUF,QIODPB+Q.IOPL ;PUT ADDRESS OF OUTPUT BUFFER IN DPB17 MOV #ARGBLK,R2 ;PUT ADDRESS OF ARGBLK IN R2 FOR EDMSG PRTLOP: . TST (R2)+ ;BUMP ARGBLK PTR PAST FCB ADDRESS4 MOV (R2)+,READLB+Q.IOPL+6. ;PUT HIGH BLOCK # IN DPB8 MOV (R2),READLB+Q.IOPL+8. ;PUT OTHER LOW BLOCK # IN DPB$ TST -(R2) ;BACK UP ARGBLK POINTER' DIR$ #READLB ;READ FILE HEADER BLOCKS3 MOVB HEDBUF+H.PROJ,00p4(R2)+ ;PUT PROJECT # IN ARG BLK@2 MOVB #0,(R2)+ ;ROUND ARGBLK POINTER TO EVEN WORD6 MOVB HEDBUF+H.PROG,(R2)+ ;PUT PROGRAMMER # IN ARG BLK2 MOVB #0,(R2)+ ;ROUND ARGBLK POINTER TO EVEN WORD5 MOV #HEDBUF+S.HDHD,R0 ;PUT ADDRESS OF FILESPEC IN R0 . MOV #5,R1 ;PUT # OF WORDS TO TRANSFER IN R181$: MOV (R0)+,(R2)+ ;FILESPEC FROM HEADER BLK TO ARGBLK SOB R1,1$ ;DO WHOLE FILESPECE/ SUB #16.,R2 ;RESET R2 TO BEGINNING OF PACKETJ4 MOV #OUTBUF,R0 ;ADDRESS OF OUTPUT BUFFER FOR EDMSG( MOV #ISTRNG,R1 ;INPUT STRING FOR EDMSG) CALL $EDMSG ;CALL EDIT MESSAGE ROUTINED1 MOV R1,QIODPB+Q.IOPL+2 ;SIZE OF MESSAGE TO PRINT+ DIR$ #QIODPB ;PRINT OUT INFO ON TERMINALT# SOB R3,PRTLOP ;PRINT OUT ALL LUNS;ERROR: EXIT: EXIT$S FCBSAV: ;SAVE FCB SUBROUTINE9 MOV F.HDLB(R1),(R2)+ ;SAVE HIGH HEADER-BLOCK # IN ARGBLK+8 MOV F.HDLB+2(R1),(R2)+ ;SAVE LOW HEADER-BLK # IN ARGBLK' ADD #10.,R2 ;SKIP 5 WORDS OF ARG BLK-3 MOVB F.NACS(R1),(R2)+ ;SAVE ACCESS COUNT IN ARGBLK $ TSTB (R2)+ ;POINT ARGBLK TO WORD - MOVB F.NLCK(R1),(R2)+ ;SAVE # OF LOCKS COUNT2$ TSTB (R2)+ ;POINT ARGBLK TO WORD 1 MOVB F.NWAC(R1),(R2)+ ;SAVE # OF WRITE ACCESSORSG$ TSTB (R2)+ ;POINT ARGBLK TO WORD ) MOV F.LINK(R1),R1 ;POINT R1 TO NEXT FCB;% RTS PC ;END OF SAVE FCB SUBROUTINE, .END STARTF WORDS TO TRANSFER IN R181$: MOV (R0)+,(R2)+ ;FILESPEC FROM HEADER BLK TO ARGBLK SOB R1,1$ ;DO WHOLE FILESPECE/ SUB #16.,R2 ;RESET R2 TO BEGINNING OF PACKETJ4 MOV #OUTBUF,R0 ;ADDRESS OF OUTPUT BUFFER FOR EDMSG( MOV #ISTRNG,R1 ;@FCB,FCB/-SP=LB:[1,1]EXEMC/ML,LB:[200,200]RSXMC/PA:1,SY:[1,40]FCB1 MOV R1,QIODPB+Q.IOPL+2 ;SIZE OF MESSAGE TO PRINT+ DIR$ #QIODPB ;PRINT OUT INFO ON TERMINALT# SOB R3,PRTLOP ;PRINT OUT ALL LUNS;ERROR: EXIT: EXIT$S FCBSAV: ;SAVE FCB SUBROUTINE9 MOV F.HDLB(R1),(R2)+ ;SAVE HIGH HEADER-BLOCK # IN ARGBLK+8 MOV F.HDLB+2(R1),(R2)+ ;SAVE LOW HEADER-BLK # IN ARGBLK' ADD #10.,R2 ;SKIP 5 WORDS OF ARG BLK-3 MOVB F.NACS(R1),(R2)+ ;SAVE ACCESS COUNT IN ARGBLK $ TSTB (R2)+ ;POINT ARGBLK TO WORD -)FCB/PR,FCB/-SP=FCB,LB:[1,54]RSX11M.STB/SSR/C TASK=...FCB0PRI=160V//QIODPB+Q.IOPL+2 ;SIZE OF MESSAGE TO PRINT+ DIR$ #QIODPB ;PRINT OUT INFO ON TERMINALT# SOB R3,PRTLOP ;PRINT OUT ALL LUNS;ERROR: EXIT: EXIT$S FCBSAV: ;SAVE FCB SUBROUTINE9 MOV F.HDLB(R1),(R2)+ ;SAVE HIGH HEADER-BLOCK # IN ARGBLK+8 MOV F.HDLB+2(R1),(R2)+ ;SAVE LOW HEADER-BLK # IN ARGBLK' ADD #10.,R2 ;SKIP 5 WORDS OF ARG BLK-3 MOVB F.NACS(R1),(R2)+ ;SAVE ACCESS COUNT IN ARGBLK $ TSTB (R2)+ ;POINT ARGBLK TO WORD -@PIP FLYINS.LST;*, FLYINS.OBJ;*, FLYINS.TSK;*, FLYINS.MAP;*/NM/DEMAC FLYINS, FLYINS/-SP = FLYINS.ASK DEBUG Build against ODT .OPEN FLYINSBLD.CMDG4.IFF DEBUG .DATA FLYINS/PR:0, FLYINS/-SP/MA = FLYINS7.IFT DEBUG .DATA FLYINS/DA/PR:0, FLYINS/-SP/MA = FLYINS .DATA /C .DATA ACTFIL=0 .DATA PRI=150A .DATA TASK=...CA. .CLOSETKB @FLYINSBLDPIP FLYINSBLD.CMD;*/DE& .TITLE FLYINS Flying Command Catchall% .IDENT /Y01.10/ ; Internal use only .ENABL LC, .NLIST BEX ; Don't list binary extensions3 .NLIST CND ; Don't list unsatisfied conditionalsD; FFFFFFFFFF LL YY YY IIIIIIII NN NN SSSSSSSSSD; FFFFFFFFFF LL YY YY IIIIIIII NN NN SSSSSSSSS<; FF LL YY YY II NNNN NN SS<; FF LL YY YY II NNNN NN SSC; FFFFFFFF LL YYYY II NN NN NN SSSSSSSSFC; FFFFFFFF LL YYYY II NN NN NN SSSSSSSSBD; FF LL YY II NN NNNN SSD; FF LL YY II NN NNNN SSD; FF LL YY II NN NNN SSD; FF LL YY II NN NNN SSC; FF LLLLLLLLLL YY IIIIIIII NN NN SSSSSSSS C; FF LLLLLLLLLL YY IIIIIIII NN NN SSSSSSSS 00-TADATADATA .SBTTL Introduction7; FLYINS - Secondary Level Flying Command Catchall TaskS ; Authors:; Bruce R. Mitchell ; Source Site $; Electrocardiology Computer Systems<; Plummer Building, Mayo Clinic, Rochester, Minnesota 55902'; Source Hardware and Operating System: 0; DEC PDP-11/70 under RSX-11M-Plus V2.1 Update E; Target Site:; Same'; Target Hardware and Operating System:I; Same; Revision History: ; 20-Mar-86 First version codedA; 17-Apr-86 Add support for passoff to other secondary catchallsSC; 09-May-86 Change protection UIC to default UIC for file searchesr.; 14-Aug-86 Add network UIC for file searches .PAGE& .SBTTL Description and Philosophy 101'; System manager: "We want - POOL."o1; RSX-11 system: "You won't get it from me!"75; System programmer: "By hook or by crook, we will.";aF; This task is a smarter, yet in some ways more stupid, version of theF; DEC TDX catchall task. It uses the catchall task facilty of the CLIB; system to process commands which are not understood by the CLIs.E; Such commands are passed to this task (when installed with the nameC ; ...CA.) automatically by CLIs.; F; About POOL. Every task which is installed steals some POOL. But ifC; the task isn't installed, you can't get at it without doing a RUNpG; command. This task is intended to get around that problem by findingrF; a task for the user transparently and running it on his behalf. AndE; if it can't be found, the command line is (hopefully) passed to them%; next catchall task in line, ...CA2.I; ; Operation proceeds as follows:;s6; (1) Assign a LUN to the TI: device. Exit on error.7; (2) Get the passed CLI command line. Exit on error.lE; (3) Check to see the passed line is 3 chars or more. Exit if not. I; (4) Build 4 possible name buffers; x.CMD, x.TSK, xRES.TSK and xFSL.TSK D; (5) Search by device and UFD for a command file of the built name=; (6) If the search failed, pass the command line to step 11 :; (7) If the search succeeded, build an AT. command line.'; (8) RPOI$ the command line to MCR...a<; (9) If the RPOI$ failed, Spawn the command line to MCR...B; (10) Exit to RSX with success status regardless of Spawn status.C; (11) Search by device and UFD for a task file of the built names. <; (12) If the search failed, pass the command line to ...CAxD; (13) If the search succeeded, build a RUN /TASK /CMD command line.'; (14) RPOI$ the command line to MCR...e<; (15) If the RPOI$ failed, Spawn the command line to MCR...B; (16) Exit to RSX with success status regardless of Spawn status. .PAGE .SBTTL Caveats and Restrictions ; None known.C .PAGE .SBTTLR# .SBTTL Macro Calls and DefinitionsS;a*; Directive Macros from LB:[1,1]RSXMAC.SML;k, .MCALL ALUN$ ; Assign Logical Unit Number" .MCALL DIR$ ; Execute directive# .MCALL EXST$S ; Exit with statusu, .MCALL FDBDF$ ; Allocate space for an FDB/ .MCALL FINIT$ ; Initialize Files-11 servicesI. .MCALL FSRSZ$ ; Define FSR record area size% .MCALL GLUN$ ; Get LUN informationr& .MCALL GMCR$ ; Get MCR command line& .MCALL GTSK$ ; Get task information .MCALL MRKT$ ; Mark timeR1 .MCALL NBOFF$ ; Define file name block offsetsi3 .MCALL QIOW$ ; Queue I/O and wait for completionL8 .MCALL RPOI$ ; Request and pass offspring information& .MCALL SPWN$ ; Spawn a command line! FSRSZ$ 0 ; No record I/O filesl;p; Local macro definitionsI; ;; Macro to send a timestamped message to the system console * .MACRO PRINT STRING ; Begin PRINT macro MOV #STRING, TTYOUT+Q.IOPLe MOV #STRING'L, TTYOUT+Q.IOPL+2 DIR$ #TTYOUTf .ENDM ; End PRINT macro .PAGE .SBTTL$ .SBTTL Data .SBTTLl .PSECT FLYDAT, RW, DW .SBTTL Symbol Definitions;o"; Conditional assembly definitions;o); D$$BUG = 1 ; Enable debugging support ;n;; Logical unit numbers and event flags associated with them ;r( TILUN = 1 ; User terminal TI: I/O LUN( TSKLUN = 2 ; Task file lookup00p4 LB: LUN( TIEFN = 1 ; User terminal TI: I/O EFN( TSKEFN = 2 ; Task file lookup LB: EFN% MKTEFN = 3 ; Marktime activity EFN .PAGE" .SBTTL Directive Parameter Blocks;.; Directive Parameter Blocks;L; Assign LUN to device DPBsDALUNTI: ALUN$ TILUN, TI, 0; Get LUN information DPBsGTINFO: GLUN$ TILUN, LUNBUFn; Get MCR command line DPBst GETMCR: GMCR$t; Get task information DPBsGETTSK: GTSK$ TSKBUF ; QIO DPBs1TTYOUT: QIOW$ IO.WVB, TILUN, TIEFN,,,, <0, 0, 40>N-; Request and pass offspring information DPBs 8REQCA2: RPOI$ ...CA0,,,,,, GETMCR+G.MCRB,, RP.OEX!RP.OAL1REQTSK: RPOI$ MCR...,,,,,, CMDLIN,, RP.OEX!RP.ONX; Spawn task DPBsa+SPNCA2: SPWN$ ...CA0,,,,,,,, GETMCR+G.MCRBD$SPNTSK: SPWN$ MCR...,,,,,,,, CMDLIN .PAGE .SBTTL File Descriptor Blocks+; File descriptor block for wildcard .FINDsE*WLDFDB: FDBDF$ ; Allocate space for FDB; Dataset descriptor9WLDDDS: .WORD 0, 0 ; Device name descriptor (len, addr)0* .WORD 0, 0 ; UFD descriptor (len, addr)% .WORD 0, 0 ; File name (len, addr), .PAGE .SBTTL Tables<; Task file search device and UFD table in prioritized orderCMDTBL: .ASCII \SY:[000,000]\N .ASCII \US:[3,1]\ .BYTE 0 ; End of tableN<; Task file search device and UFD table in prioritized order3TSKTBL: .ASCII \SY:[000,000]\ ; User's current UFD) .ASCII \LB:[3,54]\ ; System nonpriv UFD) .ASCII \LB:[3,55]\ ; Custom nonpriv UFD,) .ASCII \LB:[1,54]\ ; System nonpriv UFD) .ASCII \LB:[1,55]\ ; Custom nonpriv UFD" .ASCII \LB:[5,54]\ ; Network UFD .BYTE 0 ; End of tablel .PAGE .SBTTL Messages and Strings;n ; Messages;d3MS00: .ASCII \CA. -- Couldn't get command, $DSW = \\MS00A: .BLKB 3MS00L = . - MS004MS01: .ASCII \CA. -- Unable to spawn offspring task\MS01L = . - MS012MS03: .ASCII \CA. -- Invalid character in command\MS03L = . - MS039MS04: .ASCII \CA. -- Generated command too long to spawn\.MS04L = . - MS04%MS05: .ASCII \CA. -- Invalid command\]MS05L = . - MS05'.IF DF D$$BUG ; If debugging enabled.;0; Debugging messages;."DB00: .ASCII \DEBUG -- Searching \DB00A: .BLKB 32.DB00L = . - DB00,DB01: .ASCII \DEBUG -- RPOI$ failed, DSW = \DB01A: .BLKB 3DB01L = . - DB01-DB02: .ASCII \DEBUG -- Running taskname is "\DB02A: .BLKB 6 .ASCII \"\CDB02L = . - DB027DB03: .ASCII \DEBUG -- Attempting to pass command to "\ADB03A: .BLKB 6 .ASCII \"\nDB03L = . - DB03 .EVEN.ENDC ; DF D$$BUG ;l ; Strings];SCANAME: .ASCII \...CA0\DCMDSFX: .ASCIZ \/CMD="\bRUNPFX: .ASCIZ \RUN \eINDEXT: .ASCII \.CMD\IINDEXL = . - INDEXT\INDPFX: .ASCIZ \@\TSKEXT: .ASCII \.TSK\ATSKEXL = . - TSKEXTfTSKSFX: .ASCIZ \/TASK=\B .EVEN .PAGE .SBTTL Block Variables-3CMDLIN: .BLKB 100. ; Buffer for task command lineB1INDNAM: .BLKB 16. ; Buffer for command filename 0LUNBUF: .BLKW 6 ; Buffer for terminal LUN info0MYNAME: .BLKB 6 ; Buffer for task's ASCII name1TSKBUF: .BLKW 16. ; Buffer for task informationC0TSKFSL: .BLKB 16. ; Buffer for FCSFSL taskname1TSKNAM: .BLKB 16. ; Buffer for vanilla tasknameD0TSKRES: .BLKB 16. ; Buffer for FCSRES taskname .PAGE .SBTTL Single Variables/CMDLEN: .WORD 0 ; Length of task command linei0GMCLEN: .WORD 0 ; Length of GMCR$ command line/INDLEN: .WORD 0 ; Length of INDirect filenamec&TSKLEN: .WORD 0 ; Length of taskname .PAGE .SBTTL  .SBTTL Mainline Code  .SBTTLf .PSECT FLYCOD, RO, IB .SBTTL FLYENT Entry Point?; We just woke up. Assign a LUN to our TI: for error messages.S,FLYENT: DIR$ #ALUNTI ; Assign a LUN to TI:E; Get task information and convert the running taskname for later usei. DIR$ #GETTSK ; Get task information on self3 MOV #MYNAME, R0 ; Load output field address in R0R: MOV TSKBUF+G.TSTN, R1 ; Load first half of taskname in R1) CALL $C5TA ; Convert taskname to ASCIIe= MOV TSKBUF+G.TSTN+2, R1 ; Load second half of taskname in R1S)00-TADATADATA CALL $C5TA ; Convert taskname to ASCIIP'.IF DF D$$BUG ; If debugging enabledtD; Dump the task name on the invoking terminal for debugging purposes2 MOV #DB02A, R0 ; Load output field address in R06 MOV #MYNAME, R1 ; Load taskname buffer address in R1 MOV #6, R2 ; Copy 6 bytes;10$: MOVB (R1)+, (R0)+ ; Copy a byte from source to targetN! SOB R2, 10$ ; Until all copiedi0 PRINT DB02 ; Print taskname debugging message.ENDC ; DF D$$BUG;*; Get the CLI command line waiting for us.6 DIR$ #GETMCR ; Try to get the invoking command line" BCC 20$ ; If we got it, proceedJ; What's this? We have no command line today? Message TI: and error out.2 MOV #MS00A, R0 ; Load output field address in R0% MOV $DSW, R1 ; Load the DSW into R1V) MOV SP, R2 ; Force no zero suppression,7 CALL $CBTMG ; Convert binary byte to octal magnitude$0 PRINT MS00 ; "Couldn't get command, $DSW ..."* EXST$S #EX$ERR ; Exit with error status8; Ensure the command line is non-void (length 3 or more)020$: MOV $DSW, GMCLEN ; Save the command length, CMP $DSW, #3 ; Is the command 3 or longer?$ BHIS 30$ ; If so, proceed with itF; Funny command line. We don't want to process it. Pass it to ...CA2/ JMP PASCA2 ; Pass the command line to ...CA2, .PAGE .SBTTL * Build Filenames @; Load the "file name" (up to 9 alphanumeric characters) buffersB30$: MOV #GETMCR+G.MCRB, R0 ; R0 points to start of command buffer8 MOV #INDNAM, R1 ; Load command filename buffer address8 MOV #TSKNAM, R2 ; Load vanilla taskname buffer address7 MOV #TSKRES, R3 ; Load FCSRES taskname buffer address 7 MOV #TSKFSL, R4 ; Load FCSFSL taskname buffer addressW5 MOV GMCLEN, R5 ; Load command length in bytes in R2P+ CLR INDLEN ; Clear the "filename" length/40$: CMPB (R0), #'0 ; Is this character valid?t' BLO 70$ ; If not, we're done copyinga- CMPB (R0), #'9 ; Is this character numeric?0 BLOS 50$ ; If so, go store it. BICB #40, (R0) ; Convert lower to upper case+ CMPB (R0), #'A ; Is this character valid?s' BLO 70$ ; If not, we're done copying + CMPB (R0), #'Z ; Is this character valid?F' BHI 70$ ; If not, we're done copyingrH; See if filename buffer overflows. If so, pass the command to ...CAx+1;50$: CMP INDLEN, #9. ; Is the taskname length more than 9?s) BLOS 60$ ; If not, continue processing'F; Taskname buffer overflow. We don't want it. Try the next catchall.% JMP PASCA2 ; Pass to next catchall(B; It's not full yet. Copy the character into the buffer and loop.860$: MOVB (R0), (R1)+ ; Copy byte to command "filename"4 MOVB (R0), (R2)+ ; Copy byte to vanilla "taskfile"3 MOVB (R0), (R3)+ ; Copy byte to FCSRES "taskfile"r4 MOVB (R0)+, (R4)+ ; Copy byte to FCSFSL "taskfile"/ INC INDLEN ; Bump the "filename" length by 1 4 SOB R5, 40$ ; And continue to copy until all doneF; Append the type extensions to the FCSRES and FCSFSL taskname buffers>70$: MOV INDLEN, TSKLEN ; Save virgin buffer length for later8 MOVB #'R, (R3)+ ; Append RES to the FCSRES task buffer MOVB #'E, (R3)+ ;  MOVB #'S, (R3)+ ; 8 MOVB #'F, (R4)+ ; Append FSL to the FCSFSL task buffer MOVB #'S, (R4)+ ;  MOVB #'L, (R4)+ ; 2; Append the .CMD extension to the filename buffer< MOV INDLEN, TSKLEN ; Copy virgin length to taskfile length5 MOV #INDEXT, R0 ; Point at the .CMD ASCII extension . MOV #INDEXL, R5 ; Which is INDEXL bytes long.80$: MOVB (R0)+, (R1)+ ; Append to the buffer) SOB R5, 80$ ; And loop until all built 7 ADD #INDEXL, INDLEN ; Correct command filename length'4; Append the .TSK extensions to the taskname buffers5 MOV #TSKEXT, R0 ; Point at the .TSK ASCII extension . MOV #TSKEXL, R5 ; Which is TSKEXL bytes long590$: MOVB (R0), (R2)+ ; Append to the vanilla bufferp0 MOVB (R0), (R3)+ ; Append to the FCSRES buffer1 MOVB (R0)+, (R4)+ ; Append to the FCSFSL bufferE) SOB R5, 90$ ; And loop until all built:7 ADD #TSKEXL, TSKLEN ; Correct vanilla taskname length;B; Command line loo00p4ks OK. Call flying install / indirect in order.& CALL FLYINS ; Try to flying install' CALL FLYIND ; Try to flying indirectS3 JMP PASCA2 ; If all else fails, pass to next CAx# .PAGE .SBTTL FLYIND Flying INDirect .SBTTL * Find Command Filen7; Load the user's running UIC into the UFD search tableF<FLYIND: MOV #CMDTBL+4, R0 ; Point at UFD group output field6 MOVB TSKBUF+G.TSGC, R1 ; Load group code byte into R1) MOV SP, R2 ; Force no zero suppressionn7 CALL $CBTMG ; Convert binary byte to octal magnituden' INC R0 ; Point past separating commat5 MOVB TSKBUF+G.TSPC, R1 ; Load user code byte into R1c) MOV SP, R2 ; Force no zero suppression 7 CALL $CBTMG ; Convert binary byte to octal magnitude?; Search all devices and UFDs in the table for the command fileo7 MOV #CMDTBL, R5 ; Load device/UFD table address in R5tA MOV #INDNAM, WLDDDS+10. ; Load command filename address into DDSd> MOV INDLEN, WLDDDS+8. ; Load command filename length into DDSI; Load and parse the next device spec address into the dataset descriptors:10$: MOV R5, WLDDDS+2 ; Load device spec address into DDS320$: CMPB (R5)+, #': ; Found separating colon yet?* BNE 20$ ; If not, go look again, my boy9 MOV R5, WLDDDS+0 ; Load address one past colon into DDSr@ SUB WLDDDS+2, WLDDDS+0 ; Subtract device address, giving length3 MOV #WLDFDB, R0 ; Load wildcard FDB address in R0 4 MOV #TSKLUN, F.LUN(R0) ; Stick working LUN into FDB: MOV #WLDFDB+F.FNB, R1 ; Load filename block address in R16 MOV #WLDDDS, R2 ; Load dataset descriptor addr in R2. CLR R3 ; Don't use a default filename block5 CALL .PRSDV ; Parse the info into the wildcard FNBgF; Load and parse the next UFD spec address into the dataset descriptor3 MOV R5, WLDDDS+6 ; Load UFD spec address into DDSD630$: CMPB (R5)+, #'] ; Found terminating bracket yet?* BNE 30$ ; If not, go look again, my boy9 MOV R5, WLDDDS+4 ; Load address one past colon into DDS= SUB WLDDDS+6, WLDDDS+4 ; Subtract UFD address, giving lengthV3 MOV #WLDFDB, R0 ; Load wildcard FDB address in R0C: MOV #WLDFDB+F.FNB, R1 ; Load filename block address in R16 MOV #WLDDDS, R2 ; Load dataset descriptor addr in R2. CLR R3 ; Don't use a default filename block5 CALL .PRSDI ; Parse the info into the wildcard FNBs; See if we can find the file]2 CALL WLDFND ; See if we can find the task image& BCC 40$ ; If we found it, go run it?; Didn't find it. Set the next UFD string up and go try again.D1 TSTB (R5) ; Out of device/directory specs yet?F0 BNE 10$ ; If not, go try the next 3 tasknames;; After all that work, no task found? Return to the callerD! RETURN ; Return to the callerr .PAGE .SBTTL * Build Command Line4; Build the spawn command line with a preceding RUNb<40$: MOV #CMDLIN, R0 ; Load spawn command buffer addr in R05 MOV #INDPFX, R1 ; Load AT. prefix string addr in R1f' CALL MOVSTR ; Move the prefix stringS6; Copy the task file's device name to the spawn buffer7 MOV WLDDDS+2, R1 ; Load DDS device name address in R1o6 MOV WLDDDS+0, R2 ; Load DDS device name length in R2:50$: MOVB (R1)+, (R0)+ ; Copy device name to spawn buffer/ SOB R2, 50$ ; Until the whole thing is copiedn3; Copy the task file's UFD name to the spawn bufferd4 MOV WLDDDS+6, R1 ; Load DDS UFD name address in R13 MOV WLDDDS+4, R2 ; Load DDS UFD name length in R2 760$: MOVB (R1)+, (R0)+ ; Copy UFD name to spawn bufferS/ SOB R2, 60$ ; Until the whole thing is copiedw.; Append the rest of the original command line= MOV #GETMCR+G.MCRB, R1 ; Load incoming cmd buffer addr in R1g, MOV GMCLEN, R2 ; Load command length in R2;70$: MOVB (R1)+, (R0)+ ; Copy a byte from source to target # SOB R2, 70$ ; Until all is copiedU4; Calculate the length of the generated command line8 SUB #CMDLIN, R0 ; Subtract buffer base address from R08 MOV R0, CMDLEN ; And save the generated command length(; Convert the command line to upper case3 MOV #CMDLIN, R0 ; Load input buffer address in R0t00ğ-TADATADATA4 MOV #CMDLIN, R1 ; Load output buffer address in R1, MOV CMDLEN, R2 ; Load command length in R2+ CALL $CVTUC ; Convert line to upper caseM/.IF DF D$$BUG ; If debugging support enablede;; Print the generated command line on the invoking terminalgB MOV #CMDLIN, TTYOUT+Q.IOPL ; Load command line address in QIO DPBB MOV CMDLEN, TTYOUT+Q.IOPL+2 ; Load command line length in QIO DPB3 DIR$ #TTYOUT ; Print the command on the terminala.ENDC ; DF D$$BUG  .PAGE .SBTTL * Spawn Command LineA; Check the generated command line to make sure it's not too long 8 CMP CMDLEN, #80. ; Is command line more than 80 chars?% BLOS 80$ ; If not, proceed with itn5 PRINT MS04 ; "Generated command too long to spawn"o* EXST$S #EX$ERR ; Exit with error status5; Attempt an RPOI$ of the command line to the MCR CLIE80$:9 MOV CMDLEN, REQTSK+R.POBL ; Load command length into DPBY2 DIR$ #REQTSK ; Attempt to pass the command line'.IF DF D$$BUG ; If debugging enabled =; If the RPOI$ fails, dump a message on the invoking terminal 2 MOV #DB01A, R0 ; Load output field address in R0) MOV $DSW, R1 ; Load failing DSW into R1n) MOV SP, R2 ; Force no zero suppressionn7 CALL $CBTMG ; Convert binary byte to octal magnitude * PRINT DB01 ; Dump the debugging message.ENDC ; DF D$$BUG E; RPOI$ failed, since it should have forced us to exit. Try a Spawn.t9 MOV CMDLEN, SPNTSK+S.PWCL ; Load command length into DPB2 DIR$ #SPNTSK ; Attempt to pass the command line$ TST $DSW ; Did the Spawn succeed? BPL 90$ ; If so, just exit,0 PRINT MS01 ; "Unable to spawn offspring task"90$: EXST$S #EX$SUCn .PAGE .SBTTL FLYINS Flying Installs .SBTTL * Find Task File7; Load the user's running UIC into the UFD search tablet<FLYINS: MOV #TSKTBL+4, R0 ; Point at UFD group output field6 MOVB TSKBUF+G.TSGC, R1 ; Load group code byte into R1) MOV SP, R2 ; Force no zero suppressionn7 CALL $CBTMG ; Convert binary byte to octal magnitude ' INC R0 ; Point past separating comma 5 MOVB TSKBUF+G.TSPC, R1 ; Load user code byte into R1 ) MOV SP, R2 ; Force no zero suppression:7 CALL $CBTMG ; Convert binary byte to octal magnitudelI; Search all devices and UFDs in the table for vanilla, FSL and RES taskss7 MOV #TSKTBL, R5 ; Load device/UFD table address in R5rI; Load and parse the next device spec address into the dataset descriptorV:10$: MOV R5, WLDDDS+2 ; Load device spec address into DDS320$: CMPB (R5)+, #': ; Found separating colon yet?a* BNE 20$ ; If not, go look again, my boy9 MOV R5, WLDDDS+0 ; Load address one past colon into DDSr@ SUB WLDDDS+2, WLDDDS+0 ; Subtract device address, giving length3 MOV #WLDFDB, R0 ; Load wildcard FDB address in R0f4 MOV #TSKLUN, F.LUN(R0) ; Stick working LUN into FDB: MOV #WLDFDB+F.FNB, R1 ; Load filename block address in R16 MOV #WLDDDS, R2 ; Load dataset descriptor addr in R2. CLR R3 ; Don't use a default filename block5 CALL .PRSDV ; Parse the info into the wildcard FNBgF; Load and parse the next UFD spec address into the dataset descriptor3 MOV R5, WLDDDS+6 ; Load UFD spec address into DDSD630$: CMPB (R5)+, #'] ; Found terminating bracket yet?* BNE 30$ ; If not, go look again, my boy9 MOV R5, WLDDDS+4 ; Load address one past colon into DDS= SUB WLDDDS+6, WLDDDS+4 ; Subtract UFD address, giving lengthV3 MOV #WLDFDB, R0 ; Load wildcard FDB address in R0C: MOV #WLDFDB+F.FNB, R1 ; Load filename block address in R16 MOV #WLDDDS, R2 ; Load dataset descriptor addr in R2. CLR R3 ; Don't use a default filename block5 CALL .PRSDI ; Parse the info into the wildcard FNBs#; Look for the FCSFSL version firsto= MOV #TSKFSL, WLDDDS+10. ; Load FSL taskname address into DDS > MOV TSKLEN, WLDDDS+8. ; Load vanilla taskname length into DDS8 ADD #3, WLDDDS+8. ; Because it's an FSL task (we hope)2 CALL WLDFND ; See if we can find the task image& BCC 40$ ; If we found it, go run it"; Check for an FCSRES version next= MOV #TSKRES, WLDDDS+10.00̟p4 ; Load RES taskname address into DDSo> MOV TSKLEN, WLDDDS+8. ; Load vanilla taskname length into DDS8 ADD #3, WLDDDS+8. ; Because it's an FSL task (we hope)2 CALL WLDFND ; See if we can find the task image& BCC 40$ ; If we found it, go run it; Finally try a non-FSL version A MOV #TSKNAM, WLDDDS+10. ; Load vanilla taskname address into DDSC> MOV TSKLEN, WLDDDS+8. ; Load vanilla taskname length into DDS2 CALL WLDFND ; See if we can find the task image& BCC 40$ ; If we found it, go run it?; Didn't find it. Set the next UFD string up and go try again. 1 TSTB (R5) ; Out of device/directory specs yet? 0 BNE 10$ ; If not, go try the next 3 tasknames;; After all that work, no task found? Return to the callerd! RETURN ; Return to the caller- .PAGE .SBTTL * Build Command Line4; Build the spawn command line with a preceding RUNb<40$: MOV #CMDLIN, R0 ; Load spawn command buffer addr in R05 MOV #RUNPFX, R1 ; Load RUN prefix string addr in R1f' CALL MOVSTR ; Move the prefix stringS6; Copy the task file's device name to the spawn buffer7 MOV WLDDDS+2, R1 ; Load DDS device name address in R1o6 MOV WLDDDS+0, R2 ; Load DDS device name length in R2:50$: MOVB (R1)+, (R0)+ ; Copy device name to spawn buffer/ SOB R2, 50$ ; Until the whole thing is copiedn3; Copy the task file's UFD name to the spawn bufferd4 MOV WLDDDS+6, R1 ; Load DDS UFD name address in R13 MOV WLDDDS+4, R2 ; Load DDS UFD name length in R2 760$: MOVB (R1)+, (R0)+ ; Copy UFD name to spawn bufferS/ SOB R2, 60$ ; Until the whole thing is copiedw4; Copy the task file's file name to the spawn buffer6 MOV WLDDDS+10., R1 ; Load DDS taskname address in R1- MOV R1, R3 ; Copy it into R3 for later usev5 MOV WLDDDS+8., R2 ; Load DDS task name length in R2l. SUB #4, R2 ; Don't copy the .TSK extension!870$: MOVB (R1)+, (R0)+ ; Copy task name to spawn buffer/ SOB R2, 70$ ; Until the whole thing is copied ; Append a trailing /TASK=xxx:6 MOV #TSKSFX, R1 ; Load task suffix string addr in R1' CALL MOVSTR ; Move the suffix stringe: MOVB (R3)+, (R0)+ ; Append the first 3 chars of taskname MOVB (R3)+, (R0)+ ;  MOVB (R3)+, (R0)+ ; @; Get LUN info for TI: so we can stick in the V, T, H and unit #* DIR$ #GTINFO ; Get terminal information7 MOVB LUNBUF+G.LUNA, (R0)+ ; Stick in the terminal typeV= MOVB LUNBUF+G.LUNU, R1 ; Load the terminal unit number in R1 6 MOV #11010, R2 ; Radix 8, width 2, no ldg 0 suppress4 CMP R1, #10 ; Terminal number more than 10 octal?/ BHIS 80$ ; If so, convert with field width 2x, MOV #5010, R2 ; Convert with field width 1+80$: CALL $CBTA ; Convert binary to ASCIIM9; Append a trailing /CMD=", the command line, and final "k9 MOV #CMDSFX, R1 ; Load command suffix string addr in R1i' CALL MOVSTR ; Move the suffix stringS= MOV #GETMCR+G.MCRB, R1 ; Load incoming cmd buffer addr in R1t, MOV GMCLEN, R2 ; Load command length in R2;90$: MOVB (R1)+, (R0)+ ; Copy a byte from source to target # SOB R2, 90$ ; Until all is copied 8 MOVB #'", (R0)+ ; And append the trailing double quote4; Calculate the length of the generated command line8 SUB #CMDLIN, R0 ; Subtract buffer base address from R08 MOV R0, CMDLEN ; And save the generated command length(; Convert the command line to upper case3 MOV #CMDLIN, R0 ; Load input buffer address in R0i4 MOV #CMDLIN, R1 ; Load output buffer address in R1, MOV CMDLEN, R2 ; Load command length in R2+ CALL $CVTUC ; Convert line to upper caseB/.IF DF D$$BUG ; If debugging support enabled+;; Print the generated command line on the invoking terminalgB MOV #CMDLIN, TTYOUT+Q.IOPL ; Load command line address in QIO DPBB MOV CMDLEN, TTYOUT+Q.IOPL+2 ; Load command line length in QIO DPB3 DIR$ #TTYOUT ; Print the command on the terminala.ENDC ; DF D$$BUG  .PAGE .SBTTL * Spawn Command LineA; Check the generated command line to make sure it's not too long 8 CMP CMDLEN, #80. ; Is command line more than 80 chars?& BLOS 1000ԟ-TADATADATA0$ ; If not, proceed with it5 PRINT MS04 ; "Generated command too long to spawn"o* EXST$S #EX$ERR ; Exit with error status5; Attempt an RPOI$ of the command line to the MCR CLIE>100$: MOV CMDLEN, REQTSK+R.POBL ; Load command length into DPB2 DIR$ #REQTSK ; Attempt to pass the command lineE; RPOI$ failed, since it should have forced us to exit. Try a Spawn.h9 MOV CMDLEN, SPNTSK+S.PWCL ; Load command length into DPBC2 DIR$ #SPNTSK ; Attempt to pass the command line$ TST $DSW ; Did the Spawn succeed? BPL 110$ ; If so, just exit0 PRINT MS01 ; "Unable to spawn offspring task"110$: EXST$S #EX$SUC .PAGE .SBTTL MOVSTR Move ASCIZ StringG; MMM MMM OOOOOOOO VV VV SSSSSSSSS TTTTTTTTTT RRRRRRRRRDG; MMM MMM OOOOOOOO VV VV SSSSSSSSS TTTTTTTTTT RRRRRRRRR H; MMMM MMMM OO OO VV VV SS TT RR RRH; MMMM MMMM OO OO VV VV SS TT RR RRG; MM MM MM OO OO VV VV SSSSSSSS TT RRRRRRRRR G; MM MM MM OO OO VV VV SSSSSSSS TT RRRRRRRRR1E; MM MM OO OO VV VV SS TT RR RR E; MM MM OO OO VV VV SS TT RR RRF; MM MM OO OO VVVV SS TT RR RRF; MM MM OO OO VVVV SS TT RR RRG; MM MM OOOOOOOO VV SSSSSSSS TT RR RR G; MM MM OOOOOOOO VV SSSSSSSS TT RR RRR; MOVSTR - Move ASCIZ String;VD; This subroutine moves an ASCIZ string pointed to by R1 to the area; pointed to by R0. ;T-; Inputs: R1 - Address of input ASCIZ string (; R0 - Address of output buffer; 0; Outputs: R0 - Next free byte in output buffer; %; Register dispositions: R1 modified ;V'; Variable dispositions: None modified -MOVSTR: MOV R1, -(SP) ; Save R1 on the stack (10$: TSTB (R1) ; At end of string yet?% BEQ 20$ ; If so, go exit copy loopR7 MOVB (R1)+, (R0)+ ; Copy a byte from source to targeto) BR 10$ ; And loop until all are copied1/20$: MOV (SP)+, R1 ; Restore R0 from the stack ! RETURN ; Return to the caller  .PAGE$ .SBTTL PASCA2 Pass to Next Catchall;; PASCA2 - Pass Incoming Command Line to Secondary Catchalli;:G; This subroutine passes the incoming command line to the next catchall H; task in line, ...CAn. The next catchall name is determined by addingE; 1 to the third ASCII character in the taskname. If this task isn't D; running as a CAxxxx task, then it tries to pass to ...CA0 instead.;c0; Inputs: GMCLEN - Incoming command line length; ; Outputs: None;;A; Register dispositions: Who cares? This is a terminal routine.c;l$; Variable dispositions: Same here.A; Decide whether to pass to ...CA0 or to the next catchall ...CAn APASCA2: CMP MYNAME, #"CA ; Am I running as a secondary catchall?t" BNE 1$ ; If not, pass to ...CA0B; Build and convert the next catchall's name from our running name@ MOVB MYNAME+2, CANAME+5 ; Make next task name identical to ours6 INCB CANAME+5 ; Now bump the catchall number up by 17 MOV #CANAME, R0 ; Load next name buffer address in R0 0 MOV #1, R1 ; Accept periods in R50 conversion) CALL $CAT5 ; Convert ASCII to Radix-50i7 MOV R1, REQCA2+R.POTK ; Load first half into RPOI$ DPBA7 MOV R1, SPNCA2+S.PWTN ; Load first half into SPWN$ DPBd0 MOV #1, R1 ; Accept periods in R50 conversion) CALL $CAT5 ; Convert ASCII to Radix-50 : MOV R1, REQCA2+R.POTK+2 ; Load second half into RPOI$ DPB: MOV R1, SPNCA2+S.PWTN+2 ; Load second half into SPWN$ DPB&; Load command buffer length into DPBsB1$: MOV GMCLEN, REQCA2+R.POBL ; Load command length into RPOI$ DPB? MOV GMCLEN, SPNCA2+S.PWCL ; Load command length into SPWN$ DPBx9 INC REQCA2+R.POBL ; Pass RPOI$ with the terminator charP'.IF DF D$$BUG ; If debugging enabledfA; Dump the taskname of the next catchall on the invoking terminalC5 MOV #CANA00ܟp4ME, R0 ; Load taskname field address in R0+2 MOV #DB03A, R1 ; Load output field address in R1 MOV #6, R2 ; Copy 6 bytes:2$: MOVB (R0)+, (R1)+ ; Copy a byte from source to target$ SOB R2, 2$ ; Until all are copied* PRINT DB03 ; Dump the debugging message.ENDC ; DF D$$BUGm7; Attempt to pass the command line to the next catchall$2 DIR$ #REQCA2 ; Attempt to pass the command lineE; RPOI$ failed, since it should have forced us to exit. Try a Spawn.i2 DIR$ #SPNCA2 ; Attempt to pass the command lineJ; Next catchall not installed, so we'd better tell user the command is bad! PRINT MS05 ; "Invalid command"+ EXST$S #EX$SUCy .PAGE# .SBTTL WLDFND Wildcard File FinderlF; WW WW LL DDDDDDDD FFFFFFFFFF NN NN DDDDDDDDF; WW WW LL DDDDDDDD FFFFFFFFFF NN NN DDDDDDDDG; WW WW LL DD DD FF NNNN NN DD DDcG; WW WW LL DD DD FF NNNN NN DD DDtH; WW WW LL DD DD FFFFFFFF NN NN NN DD DDH; WW WW LL DD DD FFFFFFFF NN NN NN DD DDH; WW WW WW LL DD DD FF NN NNNN DD DDH; WW WW WW LL DD DD FF NN NNNN DD DDG; WWWW WWWW LL DD DD FF NN NNN DD DDWG; WWWW WWWW LL DD DD FF NN NNN DD DDWF; WWW WWW LLLLLLLLLL DDDDDDDD FF NN NN DDDDDDDDF; WWW WWW LLLLLLLLLL DDDDDDDD FF NN NN DDDDDDDD1; WLDFND - Wildcard DDS File Specification FinderN;NF; This subroutine attempts to find a file of the filename specified in"; the wildcard dataset descriptor.; '; Inputs: WLDFDB - Wildcard search FDB '; WLDDDS - Wildcard search DDSD; 3; Outputs: Carry set on error, clear if file found ; '; Register dispositions: None modifiedD; ); Variable dispositions: WLDFDB modified $WLDFND: CALL $SAVAL ; Save R0 - R5<; Parse the filename into the filename block for .FIND's use3 MOV #WLDFDB, R0 ; Load wildcard FDB address in R0: MOV #WLDFDB+F.FNB, R1 ; Load filename block address in R17 CLR N.FNAM+2(R1) ; Zero the second and third words of 5 CLR N.FNAM+4(R1) ; the filename block from old nameDB BIC #^C, N.STAT(R1) ; Wipe old bits in status word6 MOV #WLDDDS, R2 ; Load dataset descriptor addr in R2. CLR R3 ; Don't use a default filename block5 CALL .PRSFN ; Parse the info into the wildcard FNBs% BCS 40$ ; If parse failed, go exitf'.IF DF D$$BUG ; If debugging enabledw6; Print the name of the file we're currently searching& MOV R0, -(SP) ; Save R0 on the stack& MOV R1, -(SP) ; Save R1 on the stack& MOV R2, -(SP) ; Save R2 on the stack3 MOV #DB00A, R0 ; Load search buffer address in R0(7 MOV WLDDDS+2, R1 ; Load DDS device name address in R1o6 MOV WLDDDS+0, R2 ; Load DDS device name length in R2410$: MOVB (R1)+, (R0)+ ; Copy device name to buffer/ SOB R2, 10$ ; Until the whole thing is copieda3; Copy the task file's UFD name to the spawn buffere4 MOV WLDDDS+6, R1 ; Load DDS UFD name address in R13 MOV WLDDDS+4, R2 ; Load DDS UFD name length in R2R120$: MOVB (R1)+, (R0)+ ; Copy UFD name to buffera/ SOB R2, 20$ ; Until the whole thing is copiedh4; Copy the task file's file name to the spawn buffer6 MOV WLDDDS+10., R1 ; Load DDS taskname address in R1- MOV R1, R3 ; Copy it into R3 for later use+5 MOV WLDDDS+8., R2 ; Load DDS task name length in R2h230$: MOVB (R1)+, (R0)+ ; Copy task name to buffer/ SOB R2, 30$ ; Until the whole thing is copied;> MOV #DB00, TTYOUT+Q.IOPL ; Load string address into print DPB@ MOV R0, TTYOUT+Q.IOPL+2 ; Load termination address in print DPBA SUB #DB00, TTYOUT+Q.IOPL+2 ; Now the DPB contains message lengthy- DIR$ #TTYOUT ; Print the debugging message+ MOV (SP)+, R2 ; Restore R2 from the stackd+ MOV (SP)+, R1 ; Restore R1 from the stacko+ MOV (SP)+, R0 ; Restore R0 from the stac00-TADATADATAkt.ENDC ; DF D$$BUG:; Parse succeeded; see if we can .FIND the task image file% CALL .FIND ; Is there such a file?140$: RETURN ; Return with carry showing yes/nop .END FLYENT - FLYINSK FLYINS is a flying install / flying indirect catchall taskK developed at the Mayo Clinic. It incorporates a user settableK install and indirect device and UFD scheme which allows tailoringK to the individual site. It is also more intelligent than the DECK TDX catchall in that it tries FSL, RES and thenA .TSK file names when trying to do flying installs.K It is the ideal secondary catchall to put behind the KMSKITsK CCL. And, like CCL, it will try to spawn the next catchall in . line if it can't handle the command.K To build it, invoke the build command file: @FLYBLD. EditnK the source file FLYINS.MAC as necessary to reflect your personalE6 preferences for UFD and device search order.6 Direct any suggestions or inquiries to:9 Bruce R. Mitchelle< ECG Computer Systems1 2 Plummern3 Mayo Clinich< Rochester, MN 55902 d.LM 10.RM 75.AUTOPARAGRAPH.CENTER'FLYINSE FLYINS is a flying install / flying indirect catchall task developed.Iat the Mayo Clinic. It incorporates a user settable install and indirecteHdevice and UFD scheme which allows tailoring to the individual site. ItMis also more intelligent than the DEC TDX catchall in that it tries FSL,tIRES and then .TSK file names when trying to do flying installs.eA It is the ideal secondary catchall to put behind the KMSKIT CCL.,IAnd, like CCL, it will try to spawn the next catchall in line if it can't handle the command. @ To build it, invoke the build command file: @FLYBLD. Edit theHsource file FLYINS.MAC as necessary to reflect your personal preferences for UFD and device search order.( Direct any suggestions or inquiries to:.NO FILL .NO JUSTIFYa.SKIPh.LM +30eBruce R. MitchellRECG Computer Systems 2 Plummerw Mayo Clinic Rochester, MN 55902 .TITLE POOLMN POOL Monitor' .IDENT /TLH858/ ; We want information .ENABL LC, .NLIST BEX ; Don't list binary extensions3 .NLIST CND ; Don't list unsatisfied conditionalsH; PPPPPPPPP OOOOOOOO OOOOOOOO LL MMM MMM NN NNH; PPPPPPPPP OOOOOOOO OOOOOOOO LL MMM MMM NN NNH; PP PP OO OO OO OO LL MMMM MMMM NNNN NNH; PP PP OO OO OO OO LL MMMM MMMM NNNN NNH; PPPPPPPPP OO OO OO OO LL MM MM MM NN NN NNH; PPPPPPPPP OO OO OO OO LL MM MM MM NN NN NNH; PP OO OO OO OO LL MM MM NN NNNNH; PP OO OO OO OO LL MM MM NN NNNNH; PP OO OO OO OO LL MM MM NN NNNH; PP OO OO OO OO LL MM MM NN NNNH; PP OOOOOOOO OOOOOOOO LLLLLLLLLL MM MM NN NNH; PP OOOOO00p4OOO OOOOOOOO LLLLLLLLLL MM MM NN NN .SBTTL Introduction$; POOLMN - Pool Monitor Logging Task ; Authors:; Bruce R. MitchellO;LG; From the POOL monitor task written by Dale Donchin at DEC back in '78L<; and released on the RSX SIG tapes in the "KMSKIT" in 1980. ; Source Site $; Electrocardiology Computer Systems<; Plummer Building, Mayo Clinic, Rochester, Minnesota 55902'; Source Hardware and Operating System:L0; DEC PDP-11/70 under RSX-11M-Plus V2.1 Update E; Target Site:; Same'; Target Hardware and Operating System:i; Same; Revision History:o>; 06-Mar-86 First version ripped out of old KMS Fusion source5; 10-Mar-86 Add support for dual format output filesi=; 11-Mar-86 Increase logging/averaging interval to 5 minutes17; 11-Jun-86 Add support for startup stabilization timesH; 01-Oct-86 Fix problem in logging if started 5 minutes before the hour .PAGE& .SBTTL Description and Philosophy 101.; System manager: "We want - information."1; RSX-11 system: "You won't get it from me!"y5; System programmer: "By hook or by crook, we will."F;tG; This task is a poor man's SPM-11. It checks the amount of free POOL,rG; the size of the second largest and largest POOL fragments, the numbervG; of POOL fragments, and the number of active tasks 4 times per minute.sD; These values are averaged and written to a logging file at the end; of each monitoring interval.;o ; Operation proceeds as follows:;n6; (1) Assign a LUN to the CO: device. Exit on error.C; (2) Check to see if running task name is POOLMN. Exit on error.cG; (3) Check to see that running priority is 100 or more. Exit if not.aH; (4) Ensure that the logging interval divides 60 evenly. Exit if not.@; (5) Open the logging file LB:[1,4]POOLMN.LOG. Exit on error.B; (6) Store FNB for later OFID$ use. Close file. Exit on error.); (7) Specify abort AST. Exit on error.oC; (8) Optionally sleep for 5 minutes to allow system stabilizationAA; (9) Sleep until next interval mark. Initialize for next pass. 7; (10) Scan pool for fragmentation and task statistics.CI; (11) Repeat (10) at 15 second intervals until logging interval expires.s3; (12) Compute average statistics over last minute.t+; (13) Reopen logging file. Exit on error.4&; (14) Build log file statistics line.9; (15) Write statistics line to log file. Exit on error. *; (16) Close logging file. Exit on error.-; (17) Loop back to (9) until system crashes.s .PAGE .SBTTL Log File FormatlD; One and only one of two formats may be chosen for the output file.,; FORMAT 1 - EXPANDED HUMAN/MACHINE READABLE;aG; This is the first format used for this task. Each record is 56 byteseE; in length, not counting Files-11 overhead. The file contains ASCIIn; records of the form:;f4; 111#22-222-22#33:33##44444#55555#66666#77777#88888; G; where: 111 are the first 3 characters of the day of the week,)F; first letter capitalized, second and third lowerG; 22-222-22 is the day, month, and year since 1900 in standardtH; RSX DAT$ output format (except day is zero-filled)E; 33:33 is the scan period start time hour and minute int5; standard RSX TIM$ output formatSA; 44444 is the average number of POOL fragments as a54; zero-filled five-place integerG; 55555 is the average size in words of the second largesteG; POOL fragment as a zero-filled five-place integer,E; 66666 is the average size in words of the largest POOL$B; fragment as a zero-filled five-place integerH; 77777 is the average size in words of the total free POOL9; as a zero-filled five-place integervH; 88888 is the average number of tasks eligible to run as a4; zero-filled five-place integer@; # represents a single occurrence of the ASCII100-TADATADATA; character 'space' (octal 40) %; FORMAT 2 - COMPACT MACHINE READABLE ;tH; This is the second format used for this task. Each record is 24 bytesD; long, not counting Files-11 overhead. The file contains non-ASCII; records of the form:; ; 111#22222233334455667788;-D; where: 111 are the first 3 characters of the day of the week,C; first letter capitalized, second and third lowergD; 222222 is the day, month, and year since 1900 in standard*; RSX GTIM$ buffer formatB; 3333 is the scan period start time hour and minute in3; standard RSX GTIM$ buffer format4>; 44 is the average number of POOL fragments as a; binary wordD; 55 is the average size in words of the second largest1; POOL fragment as a binary word B; 66 is the average size in words of the largest POOL,; fragment as a binary wordE; 77 is the average size in words of the total free POOL3#; as a binary wordoE; 88 is the average number of tasks eligible to run as a; binary word7; # represents an unspecified filler byte  .PAGE .SBTTL Caveats and Restrictions@; There's no clean way to exit this task other than deleting its; output file.E; This task's TCB takes up space in POOL, and it also shows up as one >; of the active tasks. This corrupts the statistics slightly.A; The logfile has to be closed during sampling so that it doesn'ta<; take up space in POOL. That would corrupt the statistics. .PAGE .SBTTL # .SBTTL Macro Calls and Definitions ; 0; System Executive macros from LB:[1,1]EXEMC.MLB;E% .MCALL PCBDF$ ; Define PCB offsets & .MCALL TCBDF$ ; Define TCB offsets PCBDF$e TCBDF$s;p*; Directive Macros from LB:[1,1]RSXMAC.SML; , .MCALL ALUN$ ; Assign Logical Unit Number& .MCALL ASTX$S ; Exit from AST state .MCALL CLOSE$ ; Close a fileb .MCALL DELET$ ; Delete a file" .MCALL DIR$ ; Execute directive# .MCALL EXST$S ; Exit with status) .MCALL FDAT$A ; Define file attributesn0 .MCALL FDBF$A ; Define file buffer attributes, .MCALL FDBDF$ ; Allocate space for an FDB. .MCALL FDOP$A ; Define file open attributes0 .MCALL FDRC$A ; Define file record attributes/ .MCALL FINIT$ ; Initialize Files-11 services.. .MCALL FSRSZ$ ; Define FSR record area size! .MCALL GTIM$ ; Get system time& .MCALL GTSK$ ; Get task information .MCALL MRKT$ ; Mark time.% .MCALL NBOFF$ ; Define FNB offsetsL- .MCALL OFID$A ; Open by file-ID for append + .MCALL OPEN$ ; Open a file, general case;' .MCALL PUT$ ; Put a record to a fileD% .MCALL QIOSY$ ; Define QIO symbolsC3 .MCALL QIOW$ ; Queue I/O and wait for completionD, .MCALL SREX$ ; Specify requested exit AST, .MCALL STSE$ ; Stop for single event flag$ FSRSZ$ 1 ; Only 1 record I/O file NBOFF$ DEF$LT QIOSY$e;m; Local macro definitionse;a;; Macro to send a timestamped message to the system console;* .MACRO COLOG STRING ; Begin COLOG macro MOV #STRING, LGMADD MOV #STRING'L, LGMLEN CALL COLOGR .ENDM ; End COLOG macro .PAGE .SBTTLC .SBTTL Data .SBTTLI .PSECT POLDAT, RW, D  .SBTTL Symbol Definitions;D*; Conditional assembly control definitions;, H$OURL = 0 ; Uncomment for hourly logging1 F$ILEL = 0 ; Uncomment for output file loggingT5; F$MT2L = 0 ; Uncomment for compact format logging 4 S$TABL = 0 ; Uncomment for 5 minute stabilization;;; Logical unit numbers and event flags associated with themG;D) COLUN = 1 ; System console CO: I/O LUNN# OFILUN = 2 ; Output file I/O LUN) COEFN = 1 ; System console CO: I/O EFNO# OFLEFN = 2 ; Output file I/O LUNt% MKTEFN = 3 ; Marktime activity EFNn .PAGE" .SBTTL Directive Parameter Blocks;o; Directive Parameter Blocks;o; Assign LUN to device DPBsALUNCO00p4: ALUN$ COLUN, CO, 0; Get system time DPBsGETTIM: GTIM$ TIMBUF; Get task information DPBsGETTSK: GTSK$ TSKBUF; Marktime DPBsc MARK5M: MRKT$ MKTEFN, <5*60.>, 2MARK15: MRKT$ MKTEFN, 15., 2MARKTM: MRKT$ MKTEFN, , 2l ; QIO DPBs6CONOUT: QIOW$ IO.WLB, COLUN, COEFN,,,, !; Specify requested exit AST DPBsaNOABRT: SREX$ ABOAST; Stop for event flag DPBsSTOPFR: STSE$ MKTEFN*.IF DF F$ILEL ; If file logging enabled .PAGE .SBTTL File Descriptor Blocks3; File descriptor block for the logging output file*LOGFDB: FDBDF$ ; Allocate space for FDB; File attributesi2 FDAT$A R.VAR, FD.CR,,, ; Variable length records- ; LF/CR when writing records to terminall ; Record attributesI) FDRC$A , OUTBUF, ; Access is sequential# ; User record buffer is OUTBUFa; Open attributesA> FDOP$A OFILUN, OFLDDS,, FO.WRT!FA.NSP!FA.SHR, FA.DLK!FA.ENB!4 ; LUN is OFILUN# ; Dataset descriptor is OFLDDS ; No default filename block+ ; Default open for write, no overwrite ; with shared access( ; Don't lock file on improper close ; 4 retrieval pointers; Block-buffer attributes;/ FDBF$A OFLEFN ; FCS event flag for this file ; Output file dataset descriptor6OFLDDS: .WORD OUDLEN, OUTDEV ; Device name descriptor' .WORD OUULEN, OUTUFD ; UFD descriptorF" .WORD OUFLEN, OUTFIL ; File nameOUTDEV: .ASCII \LB00:\OUDLEN = . - OUTDEVDOUTUFD: .ASCII \[1,4]\OUULEN = . - OUTUFD OUTFIL: .ASCII \POOLMN.LOG;0\eOUFLEN = . - OUTFILr .EVEN.ENDC ; DF F$ILEL .PAGE .SBTTL TablesC; Day of the week pointer table and contiguous cumulative day table .WORD DAY6 ; Saturday .WORD DAY7 ; Sunday .WORD DAY1 ; Monday .WORD DAY2 ; TuesdayW .WORD DAY3 ; Wednesdaye .WORD DAY4 ; Thursday .WORD DAY5 ; FridayDAYMON: .WORD -1 ; January .WORD 30. ; February  .WORD 58. ; March .WORD 89. ; April .WORD 119. ; MayU .WORD 150. ; June .WORD 180. ; July .WORD 211. ; August .WORD 242. ; September  .WORD 272. ; October .WORD 303. ; November .WORD 333. ; December .PAGE .SBTTL Messages and Strings;Y ; Messages;0MS00: .ASCII \Installed task name is not POOLMN\MS00L = . - MS004MS01: .ASCII \Running priority is not at least 100.\MS01L = . - MS012MS02: .ASCII \Error opening log file, FCS code = \MS02A: .BLKB 3MS02L = . - MS022MS03: .ASCII \Error closing log file, FCS code = \MS03A: .BLKB 3MS03L = . - MS032MS04: .ASCII \Error writing log file, FCS code = \MS04A: .BLKB 3MS04L = . - MS04MS05: .ASCII \POOLMN -- \ MS05L = . - MS05&MS06: .ASCII \POOL monitoring started\MS06L = . - MS062MS07: .ASCII \Error specifying abort AST, $DSW = \MS07A: .BLKB 3MS07L = . - MS075MS08: .ASCII \Attempt was made to abort POOL monitor\SMS08L = . - MS08<MS09: .ASCII \Logging interval is not 1, 2, 5 or 10 minutes\MS09L = . - MS09&MS10: .ASCII \Previous hour POOL low \MS10A: .BLKB 5 .ASCII \. words, high \MS10B: .BLKB 5 .ASCII \. words\eMS10L = . - MS10;4 ; Strings4;DAY1: .ASCII \Mon\DAY2: .ASCII \Tue\DAY3: .ASCII \Wed\DAY4: .ASCII \Thu\DAY5: .ASCII \Fri\DAY6: .ASCII \Sat\DAY7: .ASCII \Sun\ .EVEN .PAGE .SBTTL Block Variables 1LOGFNB: .BLKW S.FNBW ; Storage for log file FNBn/OUTBUF: .BLKB 80. ; Log file data line buffer 3TIDENT: .BLKW 2 ; Storage for task identificationS%TIMBUF: .BLKW 8. ; Buffer for GTIM$l&TSKBUF: .BLKW 16. ; Buffer for GTSK$ .PAGE .SBTTL Single Variables7ACTTSK: .WORD 0 ; Number of running tasks accumulatorI7BIGGST: .WORD 0 ; Largest available POOL in last hourC8INPASS: .WORD 0 ; Number of 15 sec passes per interval+LGMADD: .WORD 0 ; Logging message address *LGMLEN: .WORD 0 ; Logging message length8LGESIZ: .WORD 0, 0 ; Largest POOL fragment accumulator/MONINT: .WORD 5 ; Logging interval in minutesa8NFRAGS: .WORD 0 ; Number of POOL fragmen00-TADATADATAts accumulator(PASSES: .WORD 0 ; Number of POOL scans/SECINT: .WORD 0 ; Logging interval in seconds <SECSIZ: .WORD 0, 0 ; 2nd largest POOL fragment accumulator=SMALST: .WORD 65535. ; Smallest available POOL in last hour 6TOTSIZ: .WORD 0, 0 ; Free POOL available accumulator .PAGE .SBTTLd .SBTTL Mainline Code  .SBTTLn .PSECT POLCOD, RO, I  .SBTTL POLENT Entry Point;a; Mainline codeT;W;; We just woke up. Assign a LUN to the system console, CO:b;POLENT: DIR$ #ALUNCO ; Try to assign a LUN to the console % TST $DSW ; Did the assign succeed? / BPL 10$ ; If so, proceed with initializationl=; LUN assign failed. Such a bummer. Exit with error status.s* EXST$S #EX$ERR ; Exit with error status6; Get task information on ourself for verification use<10$: DIR$ #GETTSK ; Try to get task information on ourself, TST $DSW ; Did the get task info succeed?/ BPL 20$ ; If so, proceed with initializationtB; Get task info failed. Lowers my karma. Exit with error status.* EXST$S #EX$ERR ; Exit with error status .PAGE .SBTTL * Runtime Validations =; Make sure that we're the only POOLMN running on the system.wA20$: CMP TSKBUF+G.TSTN, #^RPOO ; First half of name Radix-50 POO? BNE 30$ ; If not, go dies@ CMP TSKBUF+G.TSTN+2, #^RLMN ; Second half of name Radix-50 LMN?/ BEQ 40$ ; If so, proceed with initializationaB; We're not POOLMN; maybe somebody else is. Message CO: and exit..30$: COLOG MS00 ; Dump the error message ...* EXST$S #EX$ERR ; Exit with error statusA; Make sure our run priority's high enough. 100. is about right.eB40$: CMP TSKBUF+G.TSPR, #100. ; Is our run priority at least 100.?0 BHIS 50$ ; If so, proceed with initializationD; Our run priority's too low. What a wheeze. Message CO: and exit.* COLOG MS01 ; Dump the error message ...* EXST$S #EX$ERR ; Exit with error status9; Make sure the logging interval is 1, 2, 5 or 10 minutes750$: MOV #10., R1 ; Load 10 minute interval into R0/R1E% CLR R0 ; doubleword register pair 5 DIV MONINT, R0 ; Divide monitoring interval into 10t+ TST R1 ; Is the division remainder zero?s) BEQ 60$ ; If so, continue initializing F; Interval doesn't go into 10. Torques me out. Message CO: and exit.* COLOG MS09 ; Dump the error message ...* EXST$S #EX$ERR ; Exit with error statusH; Compute and save various intervals needed repeatedly during monitoring;60$: MOV MONINT, INPASS ; Load logging interval in minutesn4 ASL INPASS ; Multiply interval by 4 to get number1 ASL INPASS ; of 15 second passes per interval 6 MOV MONINT, R1 ; Load monitoring interval in minutes, MUL #60., R1 ; Multiply the interval by 603 MOV R1, SECINT ; And save the interval in secondsa*.IF DF F$ILEL ; If file logging enabled .PAGE .SBTTL * Build Logging File;; Initialize Files-11 services and try to open the log filee) FINIT$ ; Initialize Files-11 servicesM/ OPEN$ #LOGFDB ; Try to open the logging filen" TSTB F.ERR(R0) ; Did it succeed?/ BPL 80$ ; If so, proceed with initialization H; Some error occurred during the file open. Log it and exit with error./ MOV #MS02A, R0 ; Point at the FCS error fieldV4 MOVB LOGFDB+F.ERR, R1 ; Load the error byte into R1) MOV SP, R2 ; Force no zero suppression7 CALL $CBTMG ; Convert binary byte to octal magnitudeF& COLOG MS02 ; Dump the error message1 EXST$S #EX$ERR ; Exit to RSX with error status.; Save the FNB for later file opens by file-ID780$: MOV #LOGFDB+F.FNB, R0 ; Load FDB FNB address in R0e1 MOV #LOGFNB, R1 ; Load stored FNB address in R1i2 MOV #S.FNBW, R2 ; Load FNB length in WORDS in R2:90$: MOV (R0)+, (R1)+ ; Copy a word from source to target% SOB R2, 90$ ; Until all are copiedE; Close the logging file. We'll open it during operation by file-ID.r" CLOSE$ #LOGFDB ; Close the file" TSTB F.ERR(R0) ; Did it succeed?* BPL 110$ ; If so, continue initializingI; Some error occurred during the file cl00 p4ose. Log it and exit with error.F/ MOV #MS03A, R0 ; Point at the FCS error field 4 MOVB LOGFDB+F.ERR, R1 ; Load the error byte into R1) MOV SP, R2 ; Force no zero suppressionM7 CALL $CBTMG ; Convert binary byte to octal magnitudeB& COLOG MS03 ; Dump the error message1 EXST$S #EX$ERR ; Exit to RSX with error statuso.ENDC ; DF F$ILEL  .PAGE .SBTTL * Specify Abort AST0C; The pool monitor task must not be aborted. Specify an abort AST.e6110$: DIR$ #NOABRT ; Attempt to specify an abort AST TST $DSW ; Did it succeed?;4 BPL 100$ ; If so, we're almost done with inittingD; Some error occurred during the SREX$. Log it and exit with error./ MOV #MS07A, R0 ; Point at the FCS error fielda- MOVB $DSW, R1 ; Load the error byte into R1e) MOV SP, R2 ; Force no zero suppressionr7 CALL $CBTMG ; Convert binary byte to octal magnitude & COLOG MS07 ; Dump the error message+ DELET$ #LOGFDB ; Delete the logging fileo1 EXST$S #EX$ERR ; Exit to RSX with error status F; Log message on the system console stating that monitoring is started)100$: COLOG MS06 ; Dump console messagee+.IF DF S$TABL ; If stabilization enabled .PAGE .SBTTL * Stabilize SystemA; Go to sleep for 5 minutes to allow the system time to stabilizeR, DIR$ #MARK5M ; Take a nice little nap now* DIR$ #STOPFR ; And wake up in 5 minutes.ENDC ; DF S$TABLe .PAGE' .SBTTL SLEEP Sleep Until Next Intervalf=; Do some final variable initialization before going to sleepo7SLEEP: CLR LGESIZ ; Clear largest fragment accumlators+ CLR LGESIZ+2 ; And the lower word as welle2 CLR NFRAGS ; Clear number fragments accumulator4 CLR SECSIZ ; Clear 2nd largest fragmt accumulator+ CLR SECSIZ+2 ; And the lower word as welle, CLR TOTSIZ ; Clear total size accumulator, CLR TOTSIZ+2 ; And the lower word as well+ CLR ACTTSK ; Clear the active task count; MOV INPASS, PASSES ; Set up the number of 15 second scansmC; We now find out the time, and sleep until the next interval mark.EB; This synchronizes logging interval starts to the nearest second.% DIR$ #GETTIM ; Get the system timea; MOV TIMBUF+G.TIMI, R1 ; Load current time in minutes in R1g2 MUL #60., R1 ; Multiply by 60 seconds per minute= ADD TIMBUF+G.TISC, R1 ; Add seconds to get seconds-past-hour, CLR R0 ; Now we'll use it as a doubleword7 DIV SECINT, R0 ; Divide seconds-past-hour by interval,3 MOV SECINT, R0 ; Load monitoring interval into R0 3 SUB R1, R0 ; Subtracting remainder => sleep timet: MOV R0, MARKTM+M.KTMG ; Load nap length into marktime DPB, DIR$ #MARKTM ; Take a nice little nap now2 DIR$ #STOPFR ; And wake up on the 0 second mark6 DIR$ #GETTIM ; For later reference when writing log,.IF DF H$OURL ; If hourly logging enabled .PAGE .SBTTL * Hourly LoggingE; See if this is the hour mark; if not, skip the hourly logging setupe0 TST TIMBUF+G.TIMI ; Is this the 0 minute mark?2 BNE SCNPOL ; If not, just go scan POOL normallyB; If started less than 5 minutes before the hour, don't do logging< CMP SMALST, #65535. ; Is the smallest POOL mark unchanged?1 BEQ SCNPOL ; If so, just go scan POOL normally I; On the hour, we log high and low available POOL marks for the last hourR2 MOV #MS10A, R0 ; Load output field address in R02 CLRB 4(R0) ; Null the output field last 2 bytes CLRB 3(R0) ; + MOV SMALST, R1 ; Load low POOL mark in R1 # CLR R2 ; Suppress leading zeroesO4 CALL $CBDMG ; Convert binary to decimal magnitude2 MOV #MS10B, R0 ; Load output field address in R02 CLRB 4(R0) ; Null the output field last 2 bytes CLRB 3(R0) ; , MOV BIGGST, R1 ; Load high POOL mark in R1# CLR R2 ; Suppress leading zeroesd4 CALL $CBDMG ; Convert binary to decimal magnitude0 COLOG MS10 ; Print the message on the console; MOV #65535., SMALST ; Load outrageous value into smallest & CLR BIGGST ; Zero the biggest value.ENDC ; DF H$OURLp .PAGE .SBTTL SCNPOL Scan POOL8; We now scan POOL l00-TADATADATAooking for the relevant information.=SCNPOL: SWSTK$ WAISCN ; Switch to system state to scan POOL A; Now we're in system state. Get the POOL data and then get out.k-; Scan POOL for fragment and size informationL% CLR R1 ;; Zero the free pool size g+ CLR R2 ;; Zero the largest fragment sizet/ CLR R3 ;; Zero the number of fragments foundu0 CLR R4 ;; Zero the second largest fragmt size6 MOV @#$CRAVL, R0 ;; Load POOL listhead address in R0:10$: MOV 2(R0), R5 ;; Load fragment size in bytes into R50 ASR R5 ;; Change the fragment size into words3 ADD R5, R1 ;; Add fragment size to running totaln3 CMP R5, R2 ;; Is fragment > biggest seen so far?/ BLOS 20$ ;; If not, don't reset largest size0 MOV R5, R2 ;; Reset the largest fragment size420$: CMP R5, R4 ;; Is fragment > 2nd biggest seen?3 BLOS 30$ ;; If not, don't reset 2nd largest sizee, CMP R5, R2 ;; Is fragment = biggest seen?2 BEQ 30$ ;; If not, don't reset 2nd largest size4 MOV R5, R4 ;; Reset the 2nd largest fragment size330$: INC R3 ;; Increment fragments examined countA4 MOV (R0), R0 ;; Load the link to the next fragment/ BNE 10$ ;; And go look again if not list end;9; Finished scan. Update internal variables as necessary.t. ADD R1, TOTSIZ+2 ;; Add total free POOL size6 ADC TOTSIZ ;; Add carry since it's double precision6 CMP R1, BIGGST ;; Available POOL > previous biggest?+ BLOS 35$ ;; If not, don't update biggesto1 MOV R1, BIGGST ;; Update biggest available POOLt;35$: CMP R1, SMALST ;; Available POOL < previous smallest?m, BHIS 36$ ;; If not, don't update smallest2 MOV R1, SMALST ;; Update smallest available POOL336$: ADD R2, LGESIZ+2 ;; Add largest fragment sizet6 ADC LGESIZ ;; Add carry since it's double precision+ ADD R3, NFRAGS ;; Add number of fragmentsd3 ADD R4, SECSIZ+2 ;; Add 2nd largest fragment size;6 ADC SECSIZ ;; Add carry since it's double precision'; Scan POOL for active task informationS+ CLR R1 ;; Clear the active tasks counterP: MOV @#$ACTHD, R0 ;; Load active task listhead addr in R0;40$: TST T.STAT(R0) ;; Is the task blocked for any reason?p# BNE 50$ ;; If so, just forget itA2 MOV T.PCB(R0), R2 ;; Load task PCB address in R25 CMP P.NAM(R2), #^RGEN ;; Is the task running in GEN?R$ BNE 50$ ;; If not, just forget it* INC R1 ;; Bump the tasks-active counter<50$: MOV T.ACTL(R0), R0 ;; Load the address of the next TCB* BNE 40$ ;; And if nonzero go look at it2 ADD R1, ACTTSK ;; Add the number of active tasks" RETURN ;; Return to user state .PAGE! .SBTTL WAISCN Wait for Next Scant2; Back at task state. See if we're done scanning.6WAISCN: DEC PASSES ; That's one more pass we've done0 BEQ DOSTAT ; And if we're done, exit loop NOW8; Not done yet. Wait 15 seconds and then go scan again.* DIR$ #MARK15 ; Mark time for 15 seconds. DIR$ #STOPFR ; And stop for the flag to set' BR SCNPOL ; Go back for another scang,.IF NDF F$ILEL ; If file logging disabledB; Done with this pass. Go back and sleep until the next interval.'DOSTAT: JMP SLEEP ; Go back and sleepk".IFF ; If file logging enabled .PAGE! .SBTTL DOSTAT Compute StatisticsoE; We now average out the statistics collected over the last interval.o?; There is a maximum time of 15 seconds to process and log thisR'; information before we must run again.S<DOSTAT: MOV ACTTSK, R1 ; Load tasks-active accumulator into CLR R0 ; R0/R1 doubleword$7 DIV INPASS, R0 ; Divide it by # passes to get averages6 MOV R0, ACTTSK ; Copy quotient back into accumulator4 MOV LGESIZ, R0 ; Load largest fragment accumulator+ MOV LGESIZ+2, R1 ; into R0/R1 doublewordm7 DIV INPASS, R0 ; Divide it by # passes to get average 8 MOV R0, LGESIZ+2 ; Copy quotient back into accumulator# CLR LGESIZ ; Zero the upper wordt5 MOV NFRAGS, R1 ; Load number fragments accumulator " CLR R0 ; into R0/R1 doubleword7 DIV INPASS, R0 ; Divide it by # passes to get averageP6 MOV R0, NFRAGS ;00p4 Copy quotient back into accumulator/ MOV SECSIZ, R0 ; Load second largest fragment7 MOV SECSIZ+2, R1 ; accumulator into R0/R1 doublewordV7 DIV INPASS, R0 ; Divide it by # passes to get average 8 MOV R0, SECSIZ+2 ; Copy quotient back into accumulator# CLR SECSIZ ; Zero the upper wordt3 MOV TOTSIZ, R0 ; Load total free POOL accumulator,+ MOV TOTSIZ+2, R1 ; into R0/R1 doublewordC7 DIV INPASS, R0 ; Divide it by # passes to get averaged8 MOV R0, TOTSIZ+2 ; Copy quotient back into accumulator# CLR TOTSIZ ; Zero the upper wordV .PAGE .SBTTL * Write Log Record@; Restore the FNB and open the file by file-ID for shared append1 MOV #LOGFNB, R0 ; Load stored FNB address in R0M3 MOV #LOGFDB+F.FNB, R1 ; Load FDB FNB address in R1r2 MOV #S.FNBW, R2 ; Load FNB length in WORDS in R2:10$: MOV (R0)+, (R1)+ ; Copy a word from source to target% SOB R2, 10$ ; Until all are copied,3 OFID$A #LOGFDB ; Open the output file for appendT" TSTB F.ERR(R0) ; Did it succeed?( BPL 20$ ; If so, proceed with loggingH; Some error occurred during the file open. Log it and exit with error./ MOV #MS02A, R0 ; Point at the FCS error fieldO4 MOVB LOGFDB+F.ERR, R1 ; Load the error byte into R1) MOV SP, R2 ; Force no zero suppression7 CALL $CBTMG ; Convert binary byte to octal magnitude:& COLOG MS02 ; Dump the error message1 EXST$S #EX$ERR ; Exit to RSX with error status,%; Log the record out to the data filee420$: CALL FILLOG ; Log the record to the data file5; Close the logging file; we're done with it for now.e" CLOSE$ #LOGFDB ; Close the file" TSTB F.ERR(R0) ; Did it succeed?- BPL 30$ ; If so, we're done for the momentEI; Some error occurred during the file close. Log it and exit with error.o/ MOV #MS03A, R0 ; Point at the FCS error fielda4 MOVB LOGFDB+F.ERR, R1 ; Load the error byte into R1) MOV SP, R2 ; Force no zero suppressiona7 CALL $CBTMG ; Convert binary byte to octal magnitudeC& COLOG MS03 ; Dump the error message1 EXST$S #EX$ERR ; Exit to RSX with error statust@; Done with this pass. Go back and sleep until the next minute.$30$: JMP SLEEP ; Go back and sleep.ENDC ; DF F$ILEL .PAGE .SBTTL  .SBTTL AST Routines .SBTTLa .SBTTL ABOAST Abort AST HandlerH; AAAA BBBBBBBBB OOOOOOOO AAAA SSSSSSSSS TTTTTTTTTTH; AAAA BBBBBBBBB OOOOOOOO AAAA SSSSSSSSS TTTTTTTTTTD; AA AA BB BB OO OO AA AA SS TTD; AA AA BB BB OO OO AA AA SS TTD; AA AA BBBBBBBBB OO OO AA AA SSSSSSSS TTD; AA AA BBBBBBBBB OO OO AA AA SSSSSSSS TTD; AAAAAAAAAA BB BB OO OO AAAAAAAAAA SS TTD; AAAAAAAAAA BB BB OO OO AAAAAAAAAA SS TTD; AA AA BB BB OO OO AA AA SS TTD; AA AA BB BB OO OO AA AA SS TTD; AA AA BBBBBBBBB OOOOOOOO AA AA SSSSSSSS TTD; AA AA BBBBBBBBB OOOOOOOO AA AA SSSSSSSS TT,; ABOAST - Abort Attempt AST Service Routine; G; This AST routine dumps a user-specified message to the system console ; and refuses the abort.; ?; Inputs: 00(SP) - Number of bytes to add to SP to clean stackS,; 02(SP) - Trap dependent parameter,; 04(SP) - DSW of task prior to AST+; 06(SP) - PC of task prior to AST +; 10(SP) - PS of task prior to ASTO(; 12(SP) - Event flag mask word; ; Outputs: None;O%; Register dispositions: SP modified; '; Variable dispositions: None modifiede+ABOAST: ADD (SP), SP ; Clean the stack offeG; Dump a console message stating that an abort was tried, then exit ASTP$ COLOG MS08 ; Dump console message ASTX$S ; Exit from AST state .PAGE .SBTTL  .SBTTL Subroutines  .SBTTLr* .SBTTL COLOGR Timestamped Console MessageG; CCCCCCCC OOOOOOOO LL OOOOOOOO G00%-TADATADATAGGGGGGG RRRRRRRRR G; CCCCCCCC OOOOOOOO LL OOOOOOOO GGGGGGGG RRRRRRRRR:H; CC CC OO OO LL OO OO GG RR RRH; CC CC OO OO LL OO OO GG RR RRG; CC OO OO LL OO OO GG RRRRRRRRRsG; CC OO OO LL OO OO GG RRRRRRRRRuE; CC OO OO LL OO OO GG GGGG RR RR E; CC OO OO LL OO OO GG GGGG RR RRF; CC CC OO OO LL OO OO GG GG RR RRF; CC CC OO OO LL OO OO GG GG RR RRG; CCCCCCCC OOOOOOOO LLLLLLLLLL OOOOOOOO GGGGGGGG RR RR G; CCCCCCCC OOOOOOOO LLLLLLLLLL OOOOOOOO GGGGGGGG RR RRR5; COLOGR - Send Timestamped Message to System Console ; G; This subroutine dumps a user-specified message to the system console.GG; The message is prepended with the current time, taskname and task ID. ; ); Inputs: LGMADD - Output string address 1; LGMLEN - Output string length in bytes ; ; Outputs: None; >; Register dispositions: All registers are saved and restored;O); Variable dispositions: OUTBUF modifiedC$COLOGR: CALL $SAVAL ; Save R0 - R5(; Prepend the message with date and time% DIR$ #GETTIM ; Get the system time4 MOV #OUTBUF, R0 ; Load output buffer address in R0= MOV #TIMBUF+G.TIHR, R1 ; Load time buffer time address in R1 ( MOV #3, R2 ; Convert in form HH:MM:SS$ CALL $TIM ; Convert time to ASCII* MOVB #40, (R0)+ ; Add a separating space* MOVB #40, (R0)+ ; Add a separating space,; Append the task ident header to the prefix0 MOV #MS05, R1 ; Load task/ident string address0 MOV #MS05L, R2 ; Load task/ident string length;10$: MOVB (R1)+, (R0)+ ; Copy a byte from source to target * SOB R2, 10$ ; And loop until all copied); Append the message string to the prefixR, MOV LGMADD, R1 ; Load input string address+ MOV LGMLEN, R2 ; Load input string lengthM;20$: MOVB (R1)+, (R0)+ ; Copy a byte from source to targetg* SOB R2, 20$ ; And loop until all copied0 SUB #OUTBUF, R0 ; R0 is now the message length= MOV R0, CONOUT+Q.IOPL+2 ; Load the message length in QIO DPBS3 DIR$ #CONOUT ; Log message to the system console ! RETURN ; Return to the callerc .PAGE# .SBTTL DAYWEK Identify Day of Week F; DDDDDDDD AAAA YY YY WW WW EEEEEEEEEE KK KKF; DDDDDDDD AAAA YY YY WW WW EEEEEEEEEE KK KKD; DD DD AA AA YY YY WW WW EE KK KKD; DD DD AA AA YY YY WW WW EE KK KKB; DD DD AA AA YYYY WW WW EEEEEEEE KK KKB; DD DD AA AA YYYY WW WW EEEEEEEE KK KKC; DD DD AAAAAAAAAA YY WW WW WW EE KKK KKeC; DD DD AAAAAAAAAA YY WW WW WW EE KKK KKWE; DD DD AA AA YY WWWW WWWW EE KK KKWE; DD DD AA AA YY WWWW WWWW EE KK KKWG; DDDDDDDD AA AA YY WWW WWW EEEEEEEEEE KK KKEG; DDDDDDDD AA AA YY WWW WWW EEEEEEEEEE KK KKE,; DAYWEK - Identify Day Name of Current Date; A; This subroutine returns a pointer to an ASCII string containing A; the current day of the week. Adapted from the RSX routine usedW; in the macro assembler. W; ; Inputs: TIMBUF - GTIM$ buffer;W/; Outputs: R0 - Pointer to 3-byte ASCII string ; &; Register dispositions: R0 destroyed; '; Variable dispositions: None modified .DAYWEK: JSR R5, .SAVR1 ; Save registers 1 - 55 MOV #TIMBUF, R5 ; Move GTIM$ buffer address into R5E# MOV (R5)+, R0 ; Load year into R0 + SUB #110, R0 ; Subtract 72. from the year ( MOV (R5)+, R4 ; Load the month into R4# ASL R4 ; Multiply the month by 2 ) SUB #2, R4 ; And convert it to 0-baseda. MOV (R5), R5 ; Load the day of month into R53 MOV R0, -(SP) 00-p4; Save the munged year on the stackn% DEC R0 ; Decrement the munged years ASR R0 ; Divide it by 2 ASR R0 ; ... by 42 ADD (SP), R0 ; Add the munged year to the year/4 INC R0 ; And increment it2 ADD R0, R5 ; Add that value to the day of month4 BIT #3, (SP)+ ; Is it a multiple of 4 (leap year)? BNE 10$ ; If not, skip around7; Leap year; special treatment for months past FebruaryB+ CMP #2, R4 ; Is the month past February?5& ADC R5 ; If so, add the carry to R5A10$: ADD DAYMON(R4), R5 ; Add the number of days since 1/1 to R5r220$: SUB #7, R5 ; Subtract days per week from R50 BPL 20$ ; And continue until it goes negative# ASL R5 ; Multiply remainder by 2n< MOV DAYMON(R5), R0 ; Point at day of week address in table! RETURN ; Return to the callero*.IF DF F$ILEL ; If file logging enabled .PAGE( .SBTTL FILLOG Build and Log Data RecordG; FFFFFFFFFF IIIIIIII LL LL OOOOOOOO GGGGGGGG ,G; FFFFFFFFFF IIIIIIII LL LL OOOOOOOO GGGGGGGG G; FF II LL LL OO OO GG BG; FF II LL LL OO OO GG mG; FFFFFFFF II LL LL OO OO GG eG; FFFFFFFF II LL LL OO OO GG gG; FF II LL LL OO OO GG GGGGFG; FF II LL LL OO OO GG GGGGFG; FF II LL LL OO OO GG GGFG; FF II LL LL OO OO GG GGFG; FF IIIIIIII LLLLLLLLLL LLLLLLLLLL OOOOOOOO GGGGGGGG FG; FF IIIIIIII LLLLLLLLLL LLLLLLLLLL OOOOOOOO GGGGGGGG F9; FILLOG - Build and Write Logging Record to Logging File ;gF; This subroutine builds and writes a logging record to the output logD; file. Note that on error, it logs the error and dies immediately.;G ; Inputs: TIMBUF - GTIM$ buffer ; ACTTSK - Active tasks*; LGESIZ - Largest fragment size '; NFRAGS - Number of fragments -; SECSIZ - 2nd largest fragment size $; TOTSIZ - Total free POOL ;I; Outputs: None;LC; Register dispositions: All registers used are saved and restoredi;R*; Variable dispositions: OUTBUF destroyed&.IF DF F$MT2L ; If format 2 logging,FILLOG: CALL DAYWEK ; Find day of the week7 MOV #OUTBUF, R1 ; Load logging line buffer addr in R1 1 MOVB (R0)+, (R1)+ ; Copy first byte of day name 2 MOVB (R0)+, (R1)+ ; Copy second byte of day name1 MOVB (R0)+, (R1)+ ; Copy third byte of day namen. CLRB (R1)+ ; Stick in a zero separator byte8 MOV #TIMBUF+G.TIYR, R0 ; Load date buffer address in R0A MOV #/2, R2 ; Load WORDS date buffer length in R2d;10$: MOV (R0)+, (R1)+ ; Copy another word to output buffert% SOB R2, 10$ ; Until all are copiedi. MOV NFRAGS, (R1)+ ; Load number of fragments6 MOV SECSIZ+2, (R1)+ ; Load 2nd largest fragment size3 MOV LGESIZ+2, (R1)+ ; Load largest fragment size c- MOV TOTSIZ+2, (R1)+ ; Load total free POOL y' MOV ACTTSK, (R1)+ ; Load active tasks 6 SUB #OUTBUF, R1 ; R1 is now the line length in bytes/.IFF ; If not format 2 (= format 1) logging.,FILLOG: CALL DAYWEK ; Find day of the week7 MOV #OUTBUF, R1 ; Load logging line buffer addr in R1t1 MOVB (R0)+, (R1)+ ; Copy first byte of day name2 MOVB (R0)+, (R1)+ ; Copy second byte of day name1 MOVB (R0)+, (R1)+ ; Copy third byte of day name* MOVB #40, (R1)+ ; Add a separating space5 MOV R1, R0 ; Because all following routines use R0y1 CMP TIMBUF+G.TIDA, #10. ; Is the day 10 or more?B1 BHIS 10$ ; If so, don't prepend a leading zeroF7 MOVB #'0, (R0)+ ; Prepend the day with a leading zeroL;10$: MOV #TIMBUF+G.TIYR, R1 ; Load time buffer date addressi$ CALL $DAT ; Convert date to ASCII* MOVB #40, (R0)+ ; Add a separating space= MOV #TIMBUF+G.TIHR, R1 ; Load time buffer time address in R11% MOV #2, R005:<-TADATADATA2 ; Convert in form HH:MMV$ CALL $TIM ; Convert time to ASCII% MOVB #':, (R0)+ ; Add an appended : % MOVB #'0, (R0)+ ; Add an appended 0 % MOVB #'0, (R0)+ ; Add an appended 00* MOVB #40, (R0)+ ; Add a separating space* MOVB #40, (R0)+ ; Add a separating space1 MOV NFRAGS, R1 ; Load number of fragments in R1t. MOV SP, R2 ; Force no leading zero suppress4 CALL $CBDMG ; Convert binary to decimal magnitude* MOVB #40, (R0)+ ; Add a separating space9 MOV SECSIZ+2, R1 ; Load 2nd largest fragment size in R1H. MOV SP, R2 ; Force no leading zero suppress4 CALL $CBDMG ; Convert binary to decimal magnitude* MOVB #40, (R0)+ ; Add a separating space5 MOV LGESIZ+2, R1 ; Load largest fragment size in R1a. MOV SP, R2 ; Force no leading zero suppress4 CALL $CBDMG ; Convert binary to decimal magnitude* MOVB #40, (R0)+ ; Add a separating space/ MOV TOTSIZ+2, R1 ; Load total free POOL in R1i. MOV SP, R2 ; Force no leading zero suppress4 CALL $CBDMG ; Convert binary to decimal magnitude* MOVB #40, (R0)+ ; Add a separating space* MOV ACTTSK, R1 ; Load active tasks in R1. MOV SP, R2 ; Force no leading zero suppress4 CALL $CBDMG ; Convert binary to decimal magnitude+ MOV R0, R1 ; Copy buffer pointer into R1l6 SUB #OUTBUF, R1 ; R1 is now the line length in bytes.ENDC ; DF F$MT2L %; Write the record to the output fileM9 PUT$ #LOGFDB,, R1 ; Write the record to the output file " TSTB F.ERR(R0) ; Did it succeed? BPL 20$ ; If so, go returnoI; Some error occurred during the file write. Log it and exit with error.,/ MOV #MS04A, R0 ; Point at the FCS error fieldc4 MOVB LOGFDB+F.ERR, R1 ; Load the error byte into R1) MOV SP, R2 ; Force no zero suppression 7 CALL $CBTMG ; Convert binary byte to octal magnitude & COLOG MS04 ; Dump the error message1 EXST$S #EX$ERR ; Exit to RSX with error statusl9; Wrote the record just hunky-dory. Return to the caller %20$: RETURN ; Return to the callerL.ENDC ; DF F$ILELo .END POLENT" FOR POOLANAL = POOLANAL/TR:NONE.IF EQ 1 .GOTO TKBITA;S/; Compilation error. Recompiling with listing.A;/3 FOR NL:, SY:POOLANAL/-SP = POOLANAL/TR:NONE/LI:2= .GOTO ENDIT.TKBIT:. .OPEN POOLANAL.TKBL+ .DATA POOLANAL/FP/CP , POOLANAL/-SP/MA =P+ .DATA POOLANAL, LB:[1,1]SYSLIB/LB:$SHORTP .DATA / .DATA UNITS=5 .DATA ACTFIL=2A .DATA TASK=POLANL .DATA //L .CLOSEE TKB @POOLANAL.TKB.IF EQ 1 .GOTO ENDITu;i*; Taskbuild error. Destroying task image.;A PIP POOLANAL.TSK;0/DE.ENDIT:>( PIP POOLANAL.TKB;*, POOLANAL.OBJ;*/DE PIP POOLANAL.*/PU PROGRAM POLANLdC .IDENT \X01.16\oCw9C Template for pool monitor logging file analysis program CtCeHC ======================================================================C Define the data structuresHC ======================================================================C 8 Implicit COMPLEX (A - Z) ! Screw the undefined symbols$ Byte DATE ! ASCII date of sample! Byte FDATE ! First ASCII date4 Byte LDATE ! Last ASCII date+ Byte PLLINE ! Pseudoplotted output linem' Integ00=p4er*2 ARPOS ! Index into arrays.1 Integer*2 DANPOL ! Dangerous pool change valuea) Integer*2 DAY ! ASCII day of the week=* Integer*2 FHOUR ! Hour of first sample, Integer*2 FMINUT ! Minute of first sample3 Integer*2 HISTLM ! Current histogram limit value=# Integer*2 HOUR ! Hour of sample 0 Integer*2 ICOUNT ! Number of samples per cell, Integer*2 IDAY ! Integer day of the week2 Integer*2 IMPPOL ! Impressive pool change value- Integer*2 INTRVL ! Interval on plot y axisI- Integer*2 ITIME ! Integer time within dayr# Integer*2 IRAW ! Raw data arraya" Integer*2 IT ! Temporary array) Integer*2 IT1 ! Temporary / fragments . Integer*2 IT2 ! Temporary / second largest' Integer*2 IT3 ! Temporary / largest ) Integer*2 IT4 ! Temporary / free pool!) Integer*2 IT5 ! Temporary / act tasksb/ Integer*2 ITOTLS ! Number of samples per dayg) Integer*2 LHOUR ! Hour of last samplem+ Integer*2 LMINUT ! Minute of last sample # Integer*2 LOOP1 ! DO loop indexr# Integer*2 LOOP2 ! DO loop indexr# Integer*2 LOOP3 ! DO loop indexa# Integer*2 LOOP4 ! DO loop index/ Integer*2 MASPOL ! Massive pool change valueg& Integer*2 MINUTE ! Minute of sample3 Integer*2 SIGPOL ! Significant pool change value23 Integer*2 UPRLIM ! Blocked highest limit of POOL - Integer*2 WKDAY ! ASCII day of week tableu+ Logical*1 FIRST ! First date/time taken . Real COUNT ! Number samples taken on a day/ Real CRUDE ! Low, high, sum, sum of squareso Real FT0 ! Temporary Real FT1 ! Temporary, Real ITEM ! Temporary for examined entryC4HC ======================================================================C DIMENSION the data arrays HC ======================================================================CI6 Dimension IRAW (7, 288, 5), ICOUNT (7, 288), DATE (9)< Dimension ITOTLS (8), CRUDE (8, 5, 5), FDATE (9), LDATE (9)* Dimension WKDAY (7), PLLINE (100), IT (5)CaHC ======================================================================C DATA statementsaHC ======================================================================C=6 Data WKDAY /'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'/C=C=HC ======================================================================C FORMAT Statements=HC ======================================================================Cn9 9999 Format (A2, 2X, 9A1, 1X, I2, 1X, I2, 5X, 5(I5, 1X))mED9998 Format (1X, A2, 1X, 9A1, 1X, I2, 1H:, I2, 1X, 1H(, I1, 1H,, I3,=D + 1H), 2X, 5(I5, 1X))8 9997 Format (1X, 'Initializing arrays ... please wait')B 9996 Format (1X, 'Reading raw data into storage ... please wait')9 9994 Format (1X, 'Analyzing data array ... please wait')=B 9993 Format (A1, 47X, 'RSX POOL Monitoring Statistics Report', /,E + 41X, 'for the period ', I2, 1H:, I2, 1X, 9A1, ' to ', I2, 1H:,= + I2, 1X, 9A1)=' 9992 Format (/, 'Number of fragments')1> 9991 Format (' minimum ', F7.1, 7X, F7.1, 9X,> + F7.1, 8X, F7.1, 6X, F7.1, 8X, F7.1, 6X, F7.1, 7X, F7.1)> 9990 Format (' maximum ', F7.1, 7X, F7.1, 9X,> + F7.1, 8X, F7.1, 6X, F7.1, 8X, F7.1, 6X, F7.1, 7X, F7.1)> 9989 Format (' average ', F7.1, 7X, F7.1, 9X,> + F7.1, 8X, F7.1, 6X, F7.1, 8X, F7.1, 6X, F7.1, 7X, F7.1)> 9988 Format (' standard deviation ', F7.1, 7X, F7.1, 9X,> + F7.1, 8X, F7.1, 6X, F7.1, 8X, F7.1, 6X, F7.1, 7X, F7.1), 9987 Format (//, 'Second largest fragment')% 9986 Format (//, 'Largest fragment').$ 9985 Format (//, 'Total free POOL')( 9984 Format (//, 'Active tasks in GEN')> 9983 Format (' coeff. of variation ', F7.1, 7X, F7.1, 9X,> + F7.1, 8X, F7.1, 6X, F7.1, 8X, F7.1, 6X, F7.1, 7X, F7.1)A 9982 Format (//, 'Number of samples ', I5, 9X, I5, 11X,.4 + I5, 10X, I5, 8X, I5, 10X, I5, 8X, I5, 9X, I5)D 9981 Format (//, 26X, 'Monday', 7X, 'Tuesday', 7X, 'Wednesday', 7X,B + 'Thursday', 7X, 'Friday', 7X, 'Saturday', 7X, 'Sunday', 7X, + 'Overall')(F 9980 Format ('Significant POOL change from ', I5, ' to ', I5, '00E:<-TADATADATA on ', + A2, ' at ', I2, 1H:, I2)A 9979 Format (/, '"Significant" changes in POOL are defined as ', F + 'changes of more than 20 percent', /, 'of the overall lowest ',C + 'available POOL. ', //, 'For this run significant changes ',X# + 'are ', I4, ' or more.', //))E 9978 Format ('Impressive POOL change from ', I5, ' to ', I5, ' on ', + A2, ' at ', I2, 1H:, I2)7@ 9977 Format (/, '"Impressive" changes in POOL are defined as ',F + 'changes of more than 30 percent', /, 'of the overall lowest ',B + 'available POOL. ', //, 'For this run impressive changes ', + 'are ', I4, ' or more.')nB 9976 Format ('Massive POOL change from ', I5, ' to ', I5, ' on ', + A2, ' at ', I2, 1H:, I2)r= 9975 Format (/, '"Massive" changes in POOL are defined as ',)F + 'changes of more than 40 percent', /, 'of the overall lowest ',? + 'available POOL. ', //, 'For this run massive changes '," + 'are ', I4, ' or more.'),D 9974 Format ('Dangerous POOL change from ', I5, ' to ', I5, ' on ', + A2, ' at ', I2, 1H:, I2),@ 9973 Format (//, '"Dangerous" changes in POOL are defined as ',F + 'changes of more than 50 percent', /, 'of the overall lowest ',A + 'available POOL. ', //, 'For this run dangerous changes ',n + 'are ', I4, ' or more.')  9972 Format (7X, 1H|, 96A1) 9971 Format (I5, 2X, 1H+, 96A1)/ 9970 Format (4X, '0', 2X, 1H+, 24('+---'), //,n7 + 8X, 10('0', 3X), 10('1', 3X), 4('2', 3X), /, 8X,9G + 2('0', 3X, '1', 3X, '2', 3X, '3', 3X, '4', 3X, '5', 3X, '6', 3X,+B + '7', 3X, '8', 3X, '9', 3X), '0', 3X, '1', 3X, '2', 3X, '3') 9969 Format (//, A2, /) C'HC ====================================================================== C The CodeHC ======================================================================C C97C Initialize the data virtual array and the count arrayACC7Co%C Initialize the data analysis arraysnC  Write (5, 9997) Do 40 LOOP1 = 1, 8, 1 ITOTLS(LOOP1) = 0 Do 50 LOOP2 = 1, 5, 1 CRUDE(LOOP1, LOOP2, 1) = 1.0E6' CRUDE(LOOP1, LOOP2, 2) = -1.0E6 CRUDE(LOOP1, LOOP2, 3) = 0.0' CRUDE(LOOP1, LOOP2, 4) = 0.02 50 Continue 40 Continue Do 10 LOOP1 = 1, 7, 1 Do 20 LOOP2 = 1, 288, 1 IRAW(LOOP1, LOOP2, 1) = 0 IRAW(LOOP1, LOOP2, 2) = 0 IRAW(LOOP1, LOOP2, 3) = 0 IRAW(LOOP1, LOOP2, 4) = 0 IRAW(LOOP1, LOOP2, 5) = 0 ICOUNT(LOOP1, LOOP2) = 0o 20 Continue 10 Continue rCnC -C Open the log file LB:[1,4]POOLMN.LOG sharedOC(A Open (File='LB:[1,4]POOLMN.DAT', Status='OLD', Shared, Readonly,' + Unit=1)CPC2BC Read the log file into the data array and update the count arrayC. Write (5, 9996) FIRST = .FALSE.F 30 Read (1, 9999, End=100, Err=200) DAY, DATE, HOUR, MINUTE, IT(1),! + IT(2), IT(3), IT(4), IT(5)I If (FIRST) Goto 35= FHOUR = HOUR, FMINUT = MINUTE Do 32 LOOP1 = 1, 9, 1 FDATE(LOOP1) = DATE(LOOP1) 32 Continue  FIRST = .TRUE., 35 ARPOS = (HOUR * 12) + (MINUTE / 5) + 1 IDAY = 1( If (DAY .EQ. 'Tu') IDAY = 2 If (DAY .EQ. 'We') IDAY = 3 If (DAY .EQ. 'Th') IDAY = 4 If (DAY .EQ. 'Fr') IDAY = 5 If (DAY .EQ. 'Sa') IDAY = 6 If (DAY .EQ. 'Su') IDAY = 7ED Write (5, 9998) DAY, DATE, HOUR, MINUTE, IDAY, ARPOS, IT(1), IT(2), D + IT(3), IT(4), IT(5)4 IRAW(IDAY, ARPOS, 1) = IRAW(IDAY, ARPOS, 1) + IT(1)4 IRAW(IDAY, ARPOS, 2) = IRAW(IDAY, ARPOS, 2) + IT(2)4 IRAW(IDAY, ARPOS, 3) = IRAW(IDAY, ARPOS, 3) + IT(3)4 IRAW(IDAY, ARPOS, 4) = IRAW(IDAY, ARPOS, 4) + IT(4)4 IRAW(IDAY, ARPOS, 5) = IRAW(IDAY, ARPOS, 5) + IT(5). ICOUNT(IDAY, ARPOS) = ICOUNT(IDAY, ARPOS) + 1C4 Do 333 LOOP3 = 1, 5, 1Y ITEM = FLOAT(IT(LOOP3))B If (ITEM .LT. CRUDE(IDAY, LOOP3, 1)) CRUDE(IDAY, LOOP3, 1) = ITEMB If (ITEM .GT. CRUDE(IDAY, LOOP3, 2)) CRUDE(IDAY, LOOP3, 2) = ITEM5 CRUDE(IDAY, LOOP3, 3) = CRUDE(IDAY, LOOP3, 3) + ITEM)< CRUDE(IDAY, LOOP3, 4) = CRUDE(IDAY, LOOP3, 4) + (ITEM ** 2)< If (ITEM .LT. CRUDE(8, LOOP3, 1)) CRUDE(8, LOOP3, 1) = ITEM< If (ITEM .GT. CRUDE(8, LOOP3, 2)) CRUDE(8, LOOP3, 2) = ITEM/ CRUDE(8, LOOP3, 3) = CRUDE(8, LOOP3, 3)00Mp4 + ITEMO6 CRUDE(8, LOOP3, 4) = CRUDE(8, LOOP3, 4) + (ITEM ** 2) 333 Continue Goto 30CC C Read Error HandlerCO$ 200 Close (Unit=1, Dispose='SAVE') Call EXITCCCE#C File has been read in. Close it.2C $ 100 Close (Unit=1, Dispose='SAVE') LHOUR = HOUR+ LMINUT = MINUTE Do 105 LOOP1 = 1, 9, 1, LDATE(LOOP1) = DATE(LOOP1)  105 Continue 8COC,HC Skip through data and find number samples per day and over entire weekCO Write (5, 9994) Do 60 LOOP1 = 1, 7, 1 Do 70 LOOP2 = 1, 288, 1) If (ICOUNT(LOOP1, LOOP2) .EQ. 0) Goto 70T5 ITOTLS(LOOP1) = ITOTLS(LOOP1) + ICOUNT(LOOP1, LOOP2)r- ITOTLS(8) = ITOTLS(8) + ICOUNT(LOOP1, LOOP2)E 70 Continue 60 ContinueCbC =C Do a quickie calculation of the mean and standard deviationCO Do 160 LOOP1 = 1, 8, 1U Do 180 LOOP3 = 1, 5, 1 # If (ITOTLS(LOOP1) .EQ. 0) Goto 1800 COUNT = FLOAT(ITOTLS(LOOP1))rB CRUDE(LOOP1, LOOP3, 4) = SQRT(((COUNT * CRUDE(LOOP1, LOOP3, 4)) -? + (CRUDE(LOOP1, LOOP3, 3) ** 2)) / ((COUNT ** 2) - COUNT))18 CRUDE(LOOP1, LOOP3, 3) = CRUDE(LOOP1, LOOP3, 3) / COUNT< CRUDE(LOOP1, LOOP3, 5) = (CRUDE(LOOP1, LOOP3, 4) * 100.0) / + CRUDE(LOOP1, LOOP3, 3)  180 Continue 160 ContinueC C EC Put outrageous values into empty positions to force asterisk fields6CO Do 260 LOOP1 = 1, 8, 1O Do 280 LOOP3 = 1, 5, 1LD If (CRUDE(LOOP1, LOOP3, 1) .LE. 0.1) CRUDE(LOOP1, LOOP3, 1) = 1.0E6D If (CRUDE(LOOP1, LOOP3, 2) .LE. 0.1) CRUDE(LOOP1, LOOP3, 2) = 1.0E6D If (CRUDE(LOOP1, LOOP3, 3) .LE. 0.1) CRUDE(LOOP1, LOOP3, 3) = 1.0E6D If (CRUDE(LOOP1, LOOP3, 4) .LE. 0.1) CRUDE(LOOP1, LOOP3, 4) = 1.0E6D If (CRUDE(LOOP1, LOOP3, 5) .LE. 0.1) CRUDE(LOOP1, LOOP3, 5) = 1.0E6 280 Continue 260 ContinueCCu#C Open the output file POOLANAL.LOGoCtD Open (File='SY:POOLANAL.LOG', Status='NEW', Carriagecontrol='LIST', + Unit=1)CUCLC Dump the data on the userDCO8 Call ERRSET (63, .TRUE., .FALSE., .FALSE., .FALSE., 32)B Write (1, 9993) '14'O, FHOUR, FMINUT, (FDATE(LOOP1), LOOP1=1,9), / + LHOUR, LMINUT, (LDATE(LOOP2), LOOP2=1,9)L Write (1, 9981) Write (1, 9992)1 Write (1, 9991) (CRUDE(LOOP1, 1, 1), LOOP1=1, 8)L1 Write (1, 9990) (CRUDE(LOOP1, 1, 2), LOOP1=1, 8)n1 Write (1, 9989) (CRUDE(LOOP1, 1, 3), LOOP1=1, 8)P1 Write (1, 9988) (CRUDE(LOOP1, 1, 4), LOOP1=1, 8)a1 Write (1, 9983) (CRUDE(LOOP1, 1, 5), LOOP1=1, 8) Write (1, 9987) d1 Write (1, 9991) (CRUDE(LOOP1, 2, 1), LOOP1=1, 8)L1 Write (1, 9990) (CRUDE(LOOP1, 2, 2), LOOP1=1, 8) 1 Write (1, 9989) (CRUDE(LOOP1, 2, 3), LOOP1=1, 8)L1 Write (1, 9988) (CRUDE(LOOP1, 2, 4), LOOP1=1, 8),1 Write (1, 9983) (CRUDE(LOOP1, 2, 5), LOOP1=1, 8)O Write (1, 9986) ,1 Write (1, 9991) (CRUDE(LOOP1, 3, 1), LOOP1=1, 8),1 Write (1, 9990) (CRUDE(LOOP1, 3, 2), LOOP1=1, 8),1 Write (1, 9989) (CRUDE(LOOP1, 3, 3), LOOP1=1, 8),1 Write (1, 9988) (CRUDE(LOOP1, 3, 4), LOOP1=1, 8),1 Write (1, 9983) (CRUDE(LOOP1, 3, 5), LOOP1=1, 8)O Write (1, 9985) ,1 Write (1, 9991) (CRUDE(LOOP1, 4, 1), LOOP1=1, 8),1 Write (1, 9990) (CRUDE(LOOP1, 4, 2), LOOP1=1, 8),1 Write (1, 9989) (CRUDE(LOOP1, 4, 3), LOOP1=1, 8),1 Write (1, 9988) (CRUDE(LOOP1, 4, 4), LOOP1=1, 8),1 Write (1, 9983) (CRUDE(LOOP1, 4, 5), LOOP1=1, 8)O Write (1, 9984) ,1 Write (1, 9991) (CRUDE(LOOP1, 5, 1), LOOP1=1, 8),1 Write (1, 9990) (CRUDE(LOOP1, 5, 2), LOOP1=1, 8),1 Write (1, 9989) (CRUDE(LOOP1, 5, 3), LOOP1=1, 8),1 Write (1, 9988) (CRUDE(LOOP1, 5, 4), LOOP1=1, 8),1 Write (1, 9983) (CRUDE(LOOP1, 5, 5), LOOP1=1, 8)O, Write (1, 9982) (ITOTLS(LOOP1), LOOP1=1, 8)C(CPDC Look for massive, impressive and significant changes in total POOLC,B Write (1, 9993) '14'O, FHOUR, FMINUT, (FDATE(LOOP1), LOOP1=1,9), / + LHOUR, LMINUT, (LDATE(LOOP2), LOOP2=1,9)9+ DANPOL = INT((CRUDE(8, 4, 1) * 0.5) + 0.5)  Write (1, 9973) DANPOL9+ MASPOL = INT((CRUDE(8, 4, 1) * 0.4) + 0.5)e Write (1, 9975) MASPOL5+ IMPPOL = INT((CRUDE(8, 4, 1) * 0.3) + 0.5)O Write (1, 9977) IMPPOL+ SIGPOL = INT((CRUDE(8, 4, 1) * 0.2) + 0.5), Write (1, 9979) SIGPOLT Do 340 LOOP1 = 1, 7, 1 Do 350 LOOP2 = 2, 200UZ[-TADATADATA88, 1s IT2 = ICOUNT(LOOP1, LOOP2-1)  IT4 = ICOUNT(LOOP1, LOOP2)9- If ((IT2 .EQ. 0) .OR. (IT4 .EQ. 0)) Goto 350, IT1 = IRAW(LOOP1, LOOP2-1, 4) IT3 = IRAW(LOOP1, LOOP2, 4)+ IT1 = INT((FLOAT(IT1) / FLOAT(IT2)) + 0.5)e+ IT3 = INT((FLOAT(IT3) / FLOAT(IT4)) + 0.5), IT4 = IABS(IT1 - IT3) HOUR = ((LOOP2 - 1) / 12) + 1/ MINUTE = ((LOOP2 - 1) - ((HOUR - 1) * 12)) * 57 If (IT4 .LT. DANPOL) Goto 3535 Write (1, 9974) IT1, IT3, WKDAY(LOOP1), HOUR, MINUTE Goto 350L# 353 If (IT4 .LT. MASPOL) Goto 35285 Write (1, 9976) IT1, IT3, WKDAY(LOOP1), HOUR, MINUTEP Goto 350# 352 If (IT4 .LT. IMPPOL) Goto 351G5 Write (1, 9978) IT1, IT3, WKDAY(LOOP1), HOUR, MINUTEO Goto 350 # 351 If (IT4 .LT. SIGPOL) Goto 35025 Write (1, 9980) IT1, IT3, WKDAY(LOOP1), HOUR, MINUTE, 350 Continue 340 ContinueC(CP9C Pseudoplot the available POOL for each day of the week.)C > UPRLIM = INT((AINT(CRUDE(8, 4, 2) / 1000.0)) * 1000.0) + 1000 INTRVL = UPRLIM / 50T Do 420 LOOP4 = 1, 7, 1(B Write (1, 9993) '14'O, FHOUR, FMINUT, (FDATE(LOOP1), LOOP1=1,9), / + LHOUR, LMINUT, (LDATE(LOOP2), LOOP2=1,9)P Write (1, 9969) WKDAY(LOOP4)) HISTLM = UPRLIM Do 410 LOOP2 = 0, 49, 1 Do 400 LOOP1 = 1, 96, 1 PLLINE(LOOP1) = '40'O IT2 = ((LOOP1 - 1) * 3) + 1B FT0 = FLOAT(IRAW(LOOP4, IT2, 4)) + FLOAT(IRAW(LOOP4, IT2+1, 4)) +# + FLOAT(IRAW(LOOP4, IT2+2, 4))yG IT4 = ICOUNT(LOOP4, IT2) + ICOUNT(LOOP4, IT2+1) + ICOUNT(LOOP4, IT2+2)0 If (IT4 .EQ. 0) Goto 400/ IT3 = INT(FT0 / FLOAT(IT4)): If ((IT3 .GE. HISTLM) .AND. ((IT3 - HISTLM) .LT. INTRVL)) + PLLINE(LOOP1) = '170'O  400 Continue" IT1 = LOOP2 - ((LOOP2 / 10) * 10)E If (IT1 .EQ. 0) Write (1, 9971) HISTLM, (PLLINE(LOOP3), LOOP3=1, 96)9= If (IT1 .NE. 0) Write (1, 9972) (PLLINE(LOOP3), LOOP3=1, 96)0 HISTLM = HISTLM - INTRVL) 410 Continue Write (1, 9970) 420 ContinueC(CP5C Output file has been completely written. Close it.4CT Close (Unit=1, Dispose='SAVE') C4CQ@C Other data analysis routines may be dropped in here as desiredC but for now, we just ...CN Call EXIT End.ENABLE SUBSTITUTIONPIP POOL.TSK;*, POOL.OBJ;*/DEHMAC POOL, POOL/-SP = LB:[1,1]EXEMC/ML, [11,10]RSXMC/PA:1, SY:''POOL.OPEN POOLBLD.CMDF.DATA POOL/PR:5/-CP/-FP/MM, POOL/-SP/MA = POOL, LB:[1,54]RSX11M.STB/SS.DATA /.DATA TASK=POOLMN .DATA PRI=100 .DATA UNITS=2.DATA ACTFIL=1 .DATA PAR=GEN.DATA //.CLOSE TKB @POOLBLDPIP POOL.LST;*, POOL.MAP;*/PUPIP POOLBLD.CMD;*/DE < POOL Monitoring and Analysis PackageK This is a POOL monitoring and analysis package for theK disk-based series of RSX operating systems. It consists of twoK parts: (1) A privileged, Exec-mapping data acquisition taskK (POOLMN), and (2) an unprivileged Fortran data analysis task (POOLANAL).5 POOLMN - POOL MonitorK This is a POOL monitor, but it's not like the POOL monitornK that comes with RSX. This is a remote descendant of the original K POOL enforcer task written by Dale Donchin of the DEC RSXs implementation group. K Dale's original task protects a system from low POOL K conditions. This task, however, is a monitor and not an K enforcer. It scans POOL four times per minute (at the 0, 15, 30oE and 45 second marks)00]cp4 over a 5 minute monitoring period for: % o Number of POOL fragments : o Size of second largest POOL fragment in words3 o Size of largest POOL fragment in words - o Size of total free POOL in words * o Number of active tasks in GENK After obtaining this information, it averages the valuesvK taken for each of the above items and writes them to a loggingiK file in LB:[1,4]. It then resynchronizes to the current time andi? stops until the next monitoring period 0 second mark.eK The monitor logs high and low POOL for the previous hour onSK the system console CO: every hour. This can be disabled byi. editing a conditional in the source.K Two output formats are available for the logging filelK (LB:[1,4]POOLANAL.DAT). The formats are human readable andgK compressed. Human readable is the default. See the source for  details.K The task is not abortable by ABRT$ or MCR request. OncerK started, it runs until the system crashes. If you need to abortnK it, PIP /NV, then delete, its output file. It dies at the end oft* the current monitoring interval.K The monitor should be started by the startup command file,O AK Page 2nK but POOL is often unstable during and shortly after startup. The K task waits 5 minutes before beginning scans to allow POOL totK stabilize. This can be disabled by editing a conditional in thet source.eB To build it, invoke the build command file @POOLMN.6 POOLANAL - POOL AnalysisK An analysis task? You want an analysis task, you say? This D is indeed your lucky day. Here is just the thing for you.K POOLANAL reads logging files produced by POOLMN, processess4 and averages them on a weekly basis, and -K o Produces a table of low, high, mean, standard deviation and K coefficient of variance for each sampled variable on a dailyM and overall basis. ? o Notes significant POOL variations by day and time.s; o Pseudoplots POOL availability by day and time. K Output is dumped to a file which is printable on any 132 columnO1 line printer with upper and lower case.cD To build it, invoke the build command file @POOLANAL. .LM 10.RM 75.AUTOPARAGRAPH.CENTERw$POOL Monitoring and Analysis Package.SKIP 2tI This is a POOL monitoring and analysis package for the disk-based seriesDGof RSX operating systems. It consists of two parts: (1) A privileged,3LExec-mapping data acquisition task (POOLMN), and (2) an unprivileged Fortrandata analysis task (POOLANAL)..SKIP 4a.CENTERlPOOLMN - POOL Monitoru.SKIP 2l@ This is a POOL monitor, but it's not like the POOL monitor thatJcomes with RSX. This is a remote descendant of the original POOL enforcerAtask written by Dale Donchin of the DEC RSX implementation group.aA Dale's original task protects a system from low POOL conditions.fOThis task, however, is a monitor and not an enforcer. It scans POOL four timesi1per minute (at the 0, 15, 30 and 45 second marks)v&over a 5 minute monitoring period for:.SKIP.NO FILL .NO JUSTIFYLo##Number of POOL fragments0o##Size of second largest POOL fragment in words)o##Size of largest POOL fragment in wordsr#o##Size of00ej[-TADATADATA total free POOL in words o##Number of active tasks in GEN.JUSTIFY.FILLS? After obtaining this information, it averages the values taken Jfor each of the above items and writes them to a logging file in LB:[1,4].NIt then resynchronizes to the current time and stops until the next monitoringperiod 0 second mark.o@ The monitor logs high and low POOL for the previous hour on theMsystem console CO: every hour. This can be disabled by editing a conditionallin the source.6 Two output formats are available for the logging fileG(LB:[1,4]POOLANAL.DAT). The formats are human readable and compressed.n;Human readable is the default. See the source for details.vE The task is not abortable by ABRT$ or MCR request. Once started, itrRruns until the system crashes. If you need to abort it, PIP /NV, then delete, itsDoutput file. It dies at the end of the current monitoring interval.G The monitor should be started by the startup command file, but POOL isoJoften unstable during and shortly after startup. The task waits 5 minutesKbefore beginning scans to allow POOL to stabilize. This can be disabled byu$editing a conditional in the source.4 To build it, invoke the build command file @POOLMN..SKIP 4R.CENTER POOLANAL - POOL Analysis.SKIP 2sG An analysis task? You want an analysis task, you say? This is indeedt0your lucky day. Here is just the thing for you.H POOLANAL reads logging files produced by POOLMN, processes and averagesthem on a weekly basis, and -r.SKIP .LM +3 .INDENT -3Jo##Produces a table of low, high, mean, standard deviation and coefficientCof variance for each sampled variable on a daily and overall basis. .INDENT -35o##Notes significant POOL variations by day and time.N .INDENT -31o##Pseudoplots POOL availability by day and time.o.LM -3.SKIPsDOutput is dumped to a file which is printable on any 132 column line"printer with upper and lower case.6 To build it, invoke the build command file @POOLANAL. .NONUMBER.LM 0^PY^-.PAGE SIZE 58,85.LM 10.RM 75.NO FILL .NO JUSTIFY#.SKIP 5.CENTERThe RSX Multi-Tasker.CENTER August, 1986.SKIP.CENTER6^IS144^G"All the News that Fits, We Print"^IS204^G.SKIP.CENTER#Fine Realtime Commentary Since 1975.SKIP 6.CENTER^&Table of Contents\&.SKIP 2 .TAB STOPS 60The Editor's Corner RSX-1( Newsletter Subscription Problems RSX-1( The High Cost of the Newsletters RSX-2 Contributions to the MT RSX-2/ Submitting Articles to the Multi-Tasker RSX-3E% And That's The Way Things Are RSX-4U"The Bag of Tricks: MACRO-11 RSX-4"Multiprocessor PDP-11 Survey RSX-8RSX PLAS Support RSX-10.JUSTIFY.FILLN.PAGEt.COMMENTJ.COMMENT +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.COMMENT The Editor's CornerJ.COMMENT +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.COMMENT#o.SKIP 5s.AUTOPARAGRAPH.CENTERf^&The Editor's Corner\& .SKIPu.CENTERtBruce R. Mitchellm.SKIP 2t.LM +10t.RM -10TA^IS144^GThere was no July Multi-Tasker because I didn't get theiHarticles before the deadline. Cutting over editorship is always hectic.&My apologies. --- The Editor^IS204^G.LM -10M.RM +10+.SKIP E Big news this month! I'm pleased to be able to greet all readers ofoIthe Multi-Tasker as the new editor. Dominic DiNollo has done yeoman work+=getting the MT out and I hope to be able to equal his record.&= (Really, I've always secretly wanted this job. Now I have aS@forum to make outrageous statements, rattle cages, kick the dog,&and in general have a real good time.)B I have a few items to discuss before we jump off into this issue. .TEST PAGE 5.SKIP 2r.CENTERG,----- Newsletter Subscription Problems -----@ A common complaint is that you're having subscription troubles.ARegrettably, there's not much ^IS144^GI^IS204^G can do to fixeJit. Many of us have had problems, myself included - but I'm not your bestpoint of contact. Here's why:D Newslette00ncp4r editors don't have access to the subscription processingJcomputer. Only DECUS HQ does. If you send me an inquiry, I pass it on toMDECUS HQ. This means a delay of up to two weeks in getting your answer back.@ Your subscription problems should be referred to this person at!DECUS HQ for swiftest resolution:t.SKIP..NO FILL .NO JUSTIFYnDiane SimoneauDECUS Order ProcessingDECUS U.S. Chapter(617) 480-3659.JUSTIFY.FILLd .TEST PAGE 5.SKIP 2e.CENTER ,----- The High Cost of the Newsletters -----4 Oh, we all know that the subscription is expensive.BIt's not as bad as it was two years ago, but it's still expensive.EI, too, wish we could return to the thrilling days of yesteryear whensDthe Multi-Tasker was printed on cheap paper, stapled shut and mailedDfree. Fourth class. And arrived chewed by every dog in six states.? Usually, when someone gripes the newsletters as too expensive,(I tend to comment "TANSTAAFL". Somebody/^IS144^Gpays^IS204^G for newsletters. ManytEreaders don't know it, but DECUS is into DEC for a significant amountvCof funding each year. That amount is in the bazillions of Japanese.Kyen, humongous piles of Deutsch marks, stupendous amounts of French francs, and shiploads of Mexican pesos. > Remember now that DECUS is non-commercial, so we can't accept@advertising to bring the cost down. (I have reservations, sinceDa competing users group does it nicely. However, this is how things2^IS144^Gare^IS204^G, and unless the bylaws are3changed - by YOU, the members-at-large - that's thef(way they will ^IS144^Gstay^IS204^G.)7 Folks, regardless of how you feel about DECUS spending,>(and I have ^IS144^Gstrong^IS204^G reservations about someGof it), is it right to ask DEC to foot the bill? Even if they did, theo0money still eventually comes out of our pockets.> Look at the sub fee as opposed to dues in other organizationsJsuch as the ACM. It's quite a bit cheaper. So pay it yourself and deductHit as an employee business expense if your company won't buy it for you.GFor 35 bucks you're getting a lot to read, and it's not just about RSX.o .TEST PAGE 5.SKIP 2C.CENTERn#----- Contributions to the MT -----2= Your editor is pleased as can be that more contributions are coming in to the MT.G I do note, however, there are still some of you - yes, I must say it - Dsome of you who haven't yet written an article for the Multi-Tasker.E So permit me to dispel a few common misconceptions about writing fornthis publication:e.LM +5.SKIPc:o##Nobody laughs at articles submitted to this newsletter..SKIPr@o##No article submitted to this newsletter is so elementary that"everybody knows that".o.SKIP Co##No article submitted to this newsletter is too short to publish. .LM -5.SKIPt1If you send me something for the Multi-Tasker, itf*^IS144^Gwill^IS204^G be printed in theFfirst available issue, or I will see that it gets to the editor of theappropriate newsletter.o@ Often, however, it takes a little incentive to get the creative?juices flowing, so here's a carrot for you: For each and everyrLsubmission to the Multi-Tasker, we have, absolutely free and without charge,Hwithout let or hindrance, fee simple absolute, limited to stock on hand,a blue light special -.SKIPI.CENTERu=>>> Genuine DEC paper tape diagnostics in original boxes! <<left margin 10, right margin 75, and when changing margins useHincremental changes rather than absolute. The editor will bless you forthe consideration. Send all submissions to:x.SKIPO.NO FILL .NO JUSTIFYkBruce R. Mitchell0)Machine Intelligence and Industrial Magicb PO Box 816Byron, MN 55920e.JUSTIFY.FILLr .TEST PAGE 5.SKIP 2h.CENTERi)----- And That's The Way Things Are -----a) _... this month in Pool Lowbegone, whereIHall the typing is strong, all the code is good-looking, and all the taskpriorities are above average.n.COMMENTJ.COMMENT +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.COMMENT The Bag of TricksJ.COMMENT +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.COMMENT .TEST PAGE 15d.SKIP 6a.CENTER ^&The Bag of Tricks: MACRO-11\&.SKIP.CENTERTDenny Walthers.CENTERN Kendall McGaw .CENTERe PO Box 11887.CENTERSanta Ana, CA 92711.SKIPe9 Yes, it's the return of the dreaded Bag of Tricks. LongdHthought deceased or successfully lost in deepest Siberia, this column onJMacro-11 coding has once more, like a Mexican dinner, made itself suddenlyknown.D In this segment we examine a code segment useful to driver writers.FIn the early stages of writing and debugging device drivers, it is not9uncommon to find that buffer and parameter addressing is eof more than passing interest.B There's a problem with this, though. While the QIO packet passesFrelocated and absolute addresses to drivers, it's not always practicalKto put XDT mousetraps in a driver so that buffer addresses can be examined.nGThis is especially true of drivers where responses must be made quicklygafter I/O transfer begins.D This code, used in a driver test task, dumps addressing informationCnecessary to debug a driver ^IS144^Gbefore^IS204^G the QIO hitsmHthe driver. This is particularly useful in finding problems such as 64Kboundary crossings.i8 This code is obscure in places, especially in computingLaddresses. A full explanation of Unibus and Q-bus physical addressing seemsGout of place here, so it's assumed that if you need to use this, you'lls>understand immediately how it works or take the time to do so..SKIP 3 .NO FILL .NO JUSTIFYt9; Macro to load a print QIO DPB and execute the DPBa .MACRO PRINT STRING' MOV _#STRING, TTYOUT+Q.IOPLu+ MOV _#STRING'L, TTYOUT+Q.IOPL+2 DIR$ _#TTYOUT .ENDM (; Get partition parameters on selfGETPPR: GPRT$ , GPRBUF; Get information on selfeGETSLF: GTSK$ GTKBUF+; Print QIO Directive Parameter Blockl1TTYOUT: QIOW$ IO.WVB, LUN1, EFN1,,,, <0, 0, 40>i; Messages<MS00: .ASCII _\This task's running characteristics are:_\MS00L = . - MS00-MS01: .ASCII _\ o Running in partition <_\OMS01A: .BLKB 6O .ASCII _\>_\ MS01L = . - MS013MS02: .ASCII _\ o Which has a base address of _\DMS02A: .BLKB 6  .ASCII _\00_\MS02L = . - MS023MS03: .ASCII _\ o This task's base address is _\EMS03A: .BLKB 6F .ASCII _\00_\MS03L = . - MS03<MS04: .ASCII _\ o The buffer's virtual base address is _\MS04A: .BLKB 6MS04L = . - MS04=MS05: .ASCII _\ o The buffer's physical base address is _\00~cp4MS05A: .BLKB 6o .ASCII _\00_\MS05L = . - MS05<MS06: .ASCII _\ plus a 64-byte granularity offset of _\MS06A: .BLKB 3bMS06L = . - MS06DMS07: .ASCII _\ o The buffer's physical address top 6 bits are _\MS07A: .BLKB 6 MS07L = . - MS07 .EVEN:; Block Variables 1TSTBUF: .BLKB 128. ; Test bufferb5GPRBUF: .BLKW 3 ; Buffer for GPRT5GTKBUF: .BLKW 16. ; Buffer for GTSKh; ... preceding code ...? PRINT MS00 ; "-I-TPI, This task's ..."C=; Get parameters of system partition task is running in ; DIR$ _#GETSLF ; Get task informationcA MOV GTKBUF+G.TSPN, GETPPR+G.PRPN ; Load part'n name0 MOV GTKBUF+G.TSPN+2, GETPPR+G.PRPN+2@ DIR$ _#GETPPR ; Get partition information:; Convert and print the task's system partition nameA MOV _#MS01A, R0 ; Load name field addr in R0@ MOV GTKBUF+G.TSPN, R1 ; Get 1st 3 Rad50 characters6 CALL $C5TA ; Convert to ASCII@ MOV GTKBUF+G.TSPN+2, R1 ; Get 2nd 3 Rad50 characters6 CALL $C5TA ; Convert to ASCII@ PRINT MS01 ; "o Running in partition ">; Convert and print task's system partition base addressA MOV _#MS02A, R0 ; Load size field addr in R0@ MOV GPRBUF+G.PRPB, R1 ; Load par'n base addr in R1A MOV PC, R2 ; No leading zero suppression? CALL $CBOMG ; Convert word to octal magO? PRINT MS02 ; "o Which has a base ..."A9; Get partition parameters on the task subpartition > CLR GETPPR+G.PRPN ; Clear the partition name CLR GETPPR+G.PRPN+2o@ DIR$ _#GETPPR ; Attempt to get info on it<; Convert and print the task subpartition base addressA MOV _#MS03A, R0 ; Load size field addr in R0g@ MOV GPRBUF+G.PRPB, R1 ; Load par'n base addr in R1A MOV PC, R2 ; No leading zero suppression ? CALL $CBOMG ; Convert word to octal mags? PRINT MS03 ; "o This task's base ..."aA; Convert and print test buffer address as a virtual offsetPB MOV _#MS04A, R0 ; Load buffr field addr in R0B MOV _#TSTBUF, R1 ; Load buffer base addr in R1A MOV PC, R2 ; No leading zero suppressionP? CALL $CBOMG ; Convert word to octal mag ; PRINT MS04 ; "o The buffer's ..."GA; Convert and print test buffer addr - physical plus offset B MOV _#TSTBUF, R5 ; Load buffer base addr in R1? MOV R5, R4 ; And copy it to R4 as well,@ BIC _#77, R5 ; Change to APR granularityA SUB R5, R4 ; Find offset from granular'y2A ASH _#-6, R5 ; Shift base down to 64-byteG@ ADD GPRBUF+G.PRPB, R5 ; Add part'n base addr to itA MOV _#MS05A, R0 ; Load base field addr in R0eA MOV R5, R1 ; Load buffer base addr in R1 A MOV PC, R2 ; No leading zero suppression ? CALL $CBOMG ; Convert word to octal mag ; PRINT MS05 ; "o The buffer's ..."4A MOV _#MS06A, R0 ; Load gran field addr in R05A MOV R4, R1 ; Load bufr base offset in R1GA MOV PC, R2 ; No leading zero suppression,? CALL $CBTMG ; Convert byte to octal mag1= PRINT MS06 ; " plus a 64-byte ..."C;; Print top 6 bits in binary for 22-bit Q-bus systems A ASH _#-10., R5 ; Wipe low 10 bits phys addrS@ MOV _#MS07A, R0 ;00j[-TADATADATA Load out field addr in R0= MOV R5, R1 ; Load upper 6 bits in R1 ? MOV _#31002, R2 ; 2, 6 wide, no 0 suppress = CALL $CBTA ; Convert binary to ASCIIA< PRINT MS07 ; "o The buffer's ..."; ... code continues ....JUSTIFY.FILL..COMMENTJ.COMMENT +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++%.COMMENT Multiprocessor PDP-11 SurveytJ.COMMENT +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.COMMENT .TEST PAGE 121.SKIP 6 .CENTERd ^&Multiprocessor PDP-11 Survey\&.SKIP1.CENTER Multiprocessor Working Group.SKIP H A long time ago, at a Symposium far, far away, (the Spring 85 Symposium#in New Orleans), the MultiprocessorfHWorking Group took a survey of Symposium attendees regarding the desiredLfeatures in a hypothetical PDP-11 multiprocessor. Through continual threatsJof calling up and telling jokes, the Multi-Tasker has obtained the results3of that survey and is pleased to present them here. C A total of 75 responses to the survey were obtained from a variety1 of sites..NO AUTOPARAGRAPHi.SKIP 2*1. What kind of processor do you use now?.SKIPw Unibus:##33n.BREAK Q-bus:###15w.BREAK Both:####27r.SKIP 2"2. What is your operating system?.SKIPt RSX:###72r.BREAK RSTS:###3e.BREAK RT:#####5t.SKIP 21"3. What is your main application?.SKIPs Realtime:##52 .BREAK Business:##15M.BREAK Other:#####12d.SKIP 2l74. Would you be interested in a multiprocessor PDP-11?.SKIPlYes:##72.BREAKNo:####3.SKIP 2b5. If so, why?i.SKIPf%Speed:#############################68.BREAK%Reliability:#######################23I.BREAK%Retain current hardware/software:##54.BREAK%Reduce DECnet loading on a host:###15i.BREAK%Avoid purchase of a VAX:###########17#.SKIP 2K<6. How much would you be willing to pay for such a product?.SKIPe10 - 20 K$:##20E.BREAK20 - 30 K$:##12K.BREAK30 - 40 K$:##10l.BREAK40 - 50 K$:###9s.BREAKMore:########11D.SKIP 2S97. What level of performance (per CPU) would you expect?i.SKIPf 11/23:###2.BREAK 11/44:##23.BREAK 11/70:##38.BREAK More:###24.SKIP 2#.8. What type of bus structure would you want?.SKIP Unibus:##33e.BREAK Q-bus:###23h.BREAK Both:####22v.SKIP 2aI9. Would you require individual buses for each CPU, or switched sharablepbuses like the DT07?.SKIPeIndividual buses:##16E.BREAKSwitched buses:####230.BREAKOne bus only:######30 .SKIP 2=10. How many CPUs would you like to see in a multiprocessor?c.SKIPC 2:######14.BREAK 3-4:####48.BREAK 5-6:#####4.BREAK 11-16:###5.BREAK More:####2.SKIP 24B11. How many would you buy at your given price/performance level?.SKIP# 1:########3.BREAK 2:#######14.BREAK 3-5:#####15a.BREAK 5-10:#####5r.BREAK 10-20:####8r.BREAK 20-50:####6d.BREAK 50-100:###4e.BREAK More:#####2n.SKIP 2b812. Is a VAX a good solution for you? If not, why not?.SKIP#/The general response to this question was "No".l.AUTOPARAGRAPH.SKIP 2eF Some comments on the responses: The main interest in multiprocessorsHseems to be in higher throughput and retention of investments in workingJhardware and software. There are a significant number of users willing toMpay premium prices for a multiprocessor CPU. A number of users would like toKOsee both Unibus and Q-bus in the same CPU; this could be a large selling point.AE^IS144^GBetween 500 and 1000 CPUs could be sold just to this samplen7group, disregarding the two "more" responses^IS204^G.B The Multiprocessor Working Group believes that there are now someJsolid grounds to launch an appeal to DEC to build a multiprocessor PDP-11.CThe software is in place - all DEC has to do is build the hardware!lI If you want to see a multiprocessor PDP-11, listen carefully. The moneylGat DEC isn't going into 11-series; it's going into those 32-bit things.rFThis is the last big frontier for the 11s. The only way that DEC willJ00p4build multiprocessor 11s is if they are beaten over the head repeatedly toIbring their attention to the fact that users want them and will buy them. H DEC's technical people would like to build it, so what is necessary now;is to wake up ^IS144^Gtheir^IS204^G upper management toe/^IS144^Gour^IS204^G wants. Tell your saleslMrep you want one - preferably, more than one. Demand to know why they aren'toJavailable. Write a letter to your local office sales manager. Copy it to;Dick Day at Spit Brook. Send a copy to the top dog at DEC.eD Remember that the squeaking chip gets the solder (or something likethat)..COMMENTJ.COMMENT +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.COMMENT RSX PLAS DirectivesJ.COMMENT +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.COMMENT .TEST PAGE 14.SKIP 6a.CENTERp^&RSX PLAS Support\&.SKIPm.CENTERoRSX Implementation Group.CENTERtDigital Equipment Corporation .CENTERa Nashua, NH.SKIPiI (Editor's note: The following article is a collection of transparenciestFused during the session on RSX PLAS support at the Spring symposium inIDallas. While no supporting text is available, these figures are of suchEwidespread use - and self-tutorial to boot - that the Multi-Tasker is+Lpresenting them as they stand. In some areas these figures may be difficultPto read; this is because they are second generation copies of the transparencies'and not reproduced from the originals.)h .NONUMBER .LM 0c^PY^-s.PAGE SIZE 58,85.LM 10.RM 75.NO FILL .NO JUSTIFY # .SKIP 5 .CENTERgThe RSX Multi-Tasker.CENTER November, 1986.SKIPs.CENTER6^IS144^G"All the News that Fits, We Print"^IS204^G.SKIP .CENTER #Fine Realtime Commentary Since 1975u.SKIP 6 .CENTER ^&Table of Contents\& .SKIP 2o .TAB STOPS 60 The Editor's Corner RSX-1 * Free PCs - Get 'Em While They Last RSX-1/ Submitting Articles to the Multi-Tasker RSX-3Y# Answer to Last Month's Quiz RSX-3M% And That's The Way Things Are RSX-45"The Bag of Tricks: MACRO-11 RSX-4RMDEMO Enhancements RSX-6gRebuilding Device Drivers RSX-9Free Software RSX-13/Files-11 On Disk Structure Specification RSX-14 .JUSTIFY.FILL.PAGE.COMMENTJ.COMMENT +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.COMMENT The Editor's CornerJ.COMMENT +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.COMMENT#t.SKIP 5t.AUTOPARAGRAPH.CENTER ^&The Editor's Corner\&i.SKIPM.CENTERhBruce R. Mitchell .SKIP 25A By the time you read this, the Fall 1986 Symposium will be over.eFThis issue is being submitted to print in late September, so the firstHreports you'll be reading on the Fall Symposium will be appearing in theDecember issue.+C This issue marks the launching of a new, ongoing education projectoHfor the RSX SIG. Over the next year, as space permits, the Multi-TaskerJwill reprint some of the 'landmark' RSX technical papers and articles fromOthe past. This series will include the original ACM paper on the RSX operatingaNsystem by Dave Cutler, the exposition on SAV by Paul Bezeredi, the topologicalMwalk to an ODL by John Covert, the mathematics of RSX-11 by Ralph Stamerjohn,yIand other fundamental RSX articles which are now difficult to find. Thisa3month's article is the Files-11 disk specification. G There are also new articles for your enjoyment and edification. TherepJare patches to RMD to enhance the functionality and correct the worst-caseKPOOL statistics loss. There is an article dealing with the eternal problemtNof adding devices already present in a system without doing a complete SYSgen.3There is a short article dealing with free softwarebM(although I rather tend to think it deals with system security). And there'stHa reminder in the Bag of Tricks about a PDP-11 architecture 'feature' wesometimes tend to forget.fE The editor wishes to thank each and every respondent to the call forcOmore articles. Keep those articles coming; I'00j[-TADATADATAve got a little something for allnLsubmittors. And don't forget to send in your entries for the puzzle contestNfrom last month's issue. They're beginning to roll on in now, but not as many#as I expected, so keep them coming.rF And now, ladies and gentlemen, here's this month's dollop of food forthought. .TEST PAGE 5.SKIP 2-.CENTERe.----- Free PCs - Get 'Em While They Last -----C No doubt many of you wonder how the Multi-Tasker is published eachc/month. Currently, it goes something like this:e.SKIPl8- Editor accepts manuscripts up to 3rd week of the month.BREAK0- Editor types manuscripts in to big RUNOFF file.BREAK;- Shortly before deadline, editor makes frantic final editss.BREAK6- Editor runs out final copy on letter-quality printer.BREAK8- Editor (often Express) mails in final copy to DECUS HQ.BREAK%- Editor breathes huge sigh of reliefW.BREAK0- DECUS HQ adds article headers and page numbers.BREAK'- DECUS HQ sends final copy to printerslA And that's how the Multi-Tasker gets published every month. ThepJCommunications Committee, however, has a new and different idea. The ideagoes something like this:r.SKIPo)- DECUS buys each newsletter editor a PC,t.BREAK.####################################a printer,.BREAK6####################################a 2400 baud modem,.BREAK>####################################and pays for a phone line..BREAK@- Contributors call the PC and KERMIT / EDT / DECnet in articles.BREAK<- Editors prepare newsletters in a standard format using PCs.BREAK@- Editors dial up a DECUS VAX and KERMIT / DECnet in newslettersA Sounds good, no? No doubt it sounds very good in some quarters. BEditors would have a Rainbow or Professional to play with when notLsending out the newsletters. And the cost is not actually very high; if theBequipment costs $2,500 per editor, over 23 newsletters the cost isG$57,500. Plus phone line installation and ongoing expenses, of course.tE But from whence cometh this money? Newsletter subscription profits?tMProbably not. For argument, let's say it comes out of symposia fees. That'stLthe biggest moneymaker. Attendance is in the 6,000 range, times 2 per year.6That means attendees pay an extra $5 for this project.= If true ... and this is only one project ... ever wonder whylGsymposium registration fees keep going up? Five bucks here, five bucksethere ... it does add up.lD Now, with DECUS purportedly cutting expenses all over, some thought%leads to a few interesting questions. .SKIPp3Is standardization of newsletter formats necessary?y.BREAK8Is standardization of newsletter formats even desirable?.BREAK3Will newsletter subscriptions increase as a result?a.BREAK>Will this reduce paid manpower which gets the newsletters out?.BREAK;^IS144^GHas this project been reviewed by a disinterestedemember panel?^IS204^Gh.BREAK+Would this money be better spent elsewhere?iB Little perks for volunteers are fine. Volunteers make DECUS run.-But is this project necessary? Or desirable?a1^IS144^GThis^IS204^G editor doesn't think so.E; Maybe ^IS144^Gyou^IS204^G, the members-at-large, don'tBthink so either. If not, you ^IS144^Gcan^IS204^G do somethingFabout it. Write to Bob Curley. He's on the Board of Directors. He'sKspearheading a project to improve communications between the membership and1the leadership. He's an end user. He'll listen.t.SKIPeRobert F. Curley.BREAKDepartment of Radiation Therapyk.BREAKUniversity of Pennsylvania.BREAKRoom 410.BREAK133 South 36th StreetG.BREAKPhiladelphia, PA.BREAK 19104-3246C Write now. Don't put it off or it will never get done. Tell him Jthat you support this project or don't support it. Tell him that you likeMthe way DECUS is going or that you don't like it. Tell him that you get yourc5money's worth from symposia. Tell him that you don't'Gattend symposia because they're too expensive. Tell him that you don'te!care. But do tell him something.n .TEST PAGE 5.SKIP 2a.CENTER3----- Subm00p4itting Articles to the Multi-Tasker -----l< Please do submit machine readable media when it's possible.HRX01, RX02 or RX50 diskette, or 800/1600 BPI 9 channel magtape are best.PAny format is acceptable except ROLLIN, PRESRV or VMS backup. ANSI, BRU and DOS6FLX formats are well-liked by the Editor's tape drive.B Submissions which aren't machine readable take longer to get intoKprint. The editor is lazy and types mass quantities only once a month wheniprogress reports are due.a; If you preformat a submission in RUNOFF format, please set->left margin 10, right margin 75, and when changing margins useEincremental changes rather than absolute. The editor blesses you forsthe consideration. Send all submissions to:S.SKIPM.NO FILL .NO JUSTIFYdBruce R. Mitchellr)Machine Intelligence and Industrial MagicS PO Box 816Byron, MN 55920 .JUSTIFY.FILLg .TEST PAGE 5.SKIP 2 .CENTERr'----- Answer to Last Month's Quiz -----nE In the RSX Brain Teaser. But you'll have to ferret it out yourself.s .TEST PAGE 5.SKIP 2p.CENTER-)----- And That's The Way Things Are ----- ) _... this month in Pool Lowbegone, whereaBall the Digital sales reps sell strong, all the IBM sales reps are/good-looking, and the RSX SIG is above average.N.COMMENTJ.COMMENT +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.COMMENT The Bag of TricksJ.COMMENT +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.COMMENT .TEST PAGE 15r.SKIP 6r.CENTERu ^&The Bag of Tricks: MACRO-11\&.SKIPS.CENTERBruce R. Mitchell.CENTER )Machine Intelligence and Industrial Magics.CENTER PO Box 816.CENTERaByron, MN###55920a.SKIPs> From time to time, assembly language programmers tend to findIthemselves in situations where they are climbing the walls in search of a+Lprogram fault. This is sometimes due to an insufficient knowledge of PDP-11%architecture, in which the programmer+:^IS144^Gexpects^IS204^G the machine to do something it*is ^IS144^Gnot^IS204^G supposed to do.F There is one peculiarity in the PDP-11 architecture that has probablyKbeen encountered accidentally by more programmers than any other, and we'res&going to take a look at it this month.< Examine the following segment of code, which the programmerAintended to read all the logical blocks on a disk, one at a time:e.SKIP 2 .NO FILL .NO JUSTIFYl@ CLR READPB+Q.IOPL+6 ; Clear high word of LBN 2word9 CLR READPB+Q.IOPL+8. ; Set up for disk LBN 04@10$: DIR$ _#READPB ; Read the next logical block9 TSTB IOSTAT ; Did the read succeed?d@ BMI 20$ ; If not, go process the error3 ... processing of disk block information ...g@ INC READPB+Q.IOPL+8. ; Bump the LBN doubleword by 1A ADC READPB+Q.IOPL+6 ; Add carry, for real big fileslA BR 10$ ; And go look at the next block.JUSTIFY.FILLA.SKIPOC When this code is tested, it runs fine on all disks the programmer =cares to try. Six months later, however, a site licensed for Kthe program containing this code complains that the program never finishes.oC "Those idiots are doing something wrong," thinks the programmer asgEhe flies out to check out the problem. "If users would just read the Gdocumentation! Oh well, nothing like a few more frequent flyer miles."B@ On site, the programmer checks out the task with various disks.KThe task runs fine. "There's something wrong with your data!", he chortlespJgleefully, and leaves. As he goes out the door, the site's VP-Engineering8is already having a nice chat with his Legal Department.B Let us gloss over a short but painful episode in the programmer's?career. The upshot of it is that he returns on the next plane. C Back on site, he discovers that the task runs fine on small disks,eLbut appears to loop forever when procesing large disks. The symptom is thatAthe program never ends up at 20$ with error code IE.BLK, which isi2expected when attempting00j[-TADATADATA to read past end-of-disk.@It loops forever on big disks. But little disks work just fine.B Why does this problem occur? If you already know the answer, youIcan skip on to the next article. If you don't, this may be an eye-openert/and cause you to rewrite some of your own code.,A The programmer expected the INC instruction to set the carry bit Jat block number 177777 (65,535) when BLKADD+2 rolled over to 0. The carryIbit would then be added to the high word of BLKADD, making the doublewordeJ(1,0) or 65,536. This is a common expectation; it is, however, incorrect.BThe PDP-11 INC and DEC instructions ^IS144^Gdo not^IS204^G setthe carry bit.C It is now evident why the program runs on "small" disks. It worksnGcorrectly for any disk smaller than 65,536 blocks. On larger disks, itr-cycles through blocks 0 to 65,535 repeatedly.aB The fix? Replace the INC instruction with ADD _#1,
    in cases:where it is important that the carry bit be set correctly..COMMENTJ.COMMENT +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.COMMENT RMDEMO EnhancementsJ.COMMENT +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.COMMENT .TEST PAGE 15t.SKIP 6m.CENTER"^&RMDEMO Enhancements\&.SKIPl.CENTER John L. Newcomb .CENTERoHallmark Cards, Inc..CENTERl 25 Bacon Roadk.CENTER,Enfield, CT 06082.SKIP I The time has come. I have procrastinated for as long as I can. The guilttHis too much to bear. After many years of benefiting from DECUS suppliedIsoftware, I am ready to offer a token of our appreciation: Enhancements cfor RMD.C RMD has two display pages (I and M) that contain information about+Mmass storage devices. By default, RMD chooses these devices by following theIMDCB chain, although at build time the user may specify any or all devices viac%global patches in the RMD build file.@ At runtime, whenever you desire RMD to display information on aNdevice that is not one of the default devices, you must change the designationGwith the DEVICEx= command. This must be done each time RMD is invoked.nHI'm sure this is as annoying to you as it is to me. Changing the defaultKdevices by rebuilding RMD each time is not a viable alternative. The largercMthe number of devices SYSgenned into each system just aggravates the problem.yH The changes I have made to RMD offer a solution to this problem. I haveGtested the modifications on RSX-11M+, versions 2.1D and 3.0B. Because IoGhave used the DEC supplied GIN$ directive, these changes should work onC.any RSX that has the GIN$ directive available.G After applying the SLP files listed below and rebuilding, RMD displaystPinformation on any mass storage device that has a local or global assignment to Othe mnemonics DV0: thru DV5: . The mnemonics DVx: correspond to the RMD DEVICExlIcommand. A local assignment for a terminal running RMD overrides a globalaJassignment. We make global assignments in our system startup file and then,users may make their own local assignments. < For any RMD 'DEVICE' that does not have a corresponding DV:Iassignment, RMD displays the information for the default device. This isRIalso the case for 'invalid' assignments such as 'ASN TT4:=DV2:'. I am notoEaware of any device conflict in using the DV: mnemonic. If there is aoLconflict, any mnemonic may be substituted in the SLP file for the RMDXCM.MAC'module and then used in ASN statements.eF Users can now invoke RMD without having to change device designations each time.D There have been several inquiries published requesting a fix to RMDIto retain the 'worst case POOL statistics' when switching pages. I pleadvJguilty to having the fix (as simple as it is) for a long time (say since MMV3.2 days). DEC has also come up with a 'fix' for version 3.0, so if you haveeLthe problem and are running any system from M V3.2 to M+ V2.1, inclusive, dothe following:5 In the module MDCOM.MAC, delete the following lines: .SKIP 2u.NO FILL .NO JUSTIFYc@$MDWPL::.WORD 0 ; WORST CASE LARGEST POOL FRAGMENT9$MDWPT00p4::.WORD 0 ; SMALLEST POOL HAS GONE TOO?$MDWPF::.WORD 0 ; MOST NUMBER OF FRAGMENTS SO FARt.JUSTIFY.FILL .SKIPsC In the module RMDXCM.MAC, insert the above lines deleted from the 1module MDCOM.MAC. Then pick-up with step 2 below.eD Do the following steps for the source modules you have changed. Thesource files are in [14,10]..LISTC.LEe;Apply the following SLP patches to the appropriate source. M.LE:LAssemble the module. The Macro command line may be obtained by examining theIfile [14,24]RMDASM.CMD . If you use the command lines from the file don'tT6forget to make the assignments for IN:, OU:, and LI: ..LEh=Replace the object files in [1,24]RMD.OLB using the commands:.SKIPMSET /UIC=[1,24]c.BREAK5LBR RMD.OLB/-EP/RP=[14,10]module name,module name,etce.LEl Rebuild RMD using 'TKB @RMDBLD'..LEaBVMR REMove the old task and VMR INStall the new task if necessary..LEoPREMove the old task and INStall the new task in the running system if necessary. .END LISTi: Here are the SLP patches to be applied to RMD source file[14,10]RMDEMO.MAC:.SKIP 2t.NO FILL .NO JUSTIFYsRMDEMO.MAC/AU=RMDEMO.MAC-/SCPAD/,,/;JLN/.GL.BUF: .BLKW 6 ; GLUN$ BUFFER-GN.BUF: .BLKW 6 ; GIN$ BUFFERL-/.MCALL/,,/;JLN/u .MCALL GLUN$S,GIN$S-/40$:/,,/;JLN/n< GLUN$S _#$DLUN, _#GL.BUF ; GLUN$ on TI:@ BCS EXJ ; Skip, GLUN$ failed#h:; This loop handles global assignments of type DVnn:#r= CLR R0 ; Counts DV unitsR> CLR R1 ; RMD table offset: MOV _#6, R2 ; 6 units max#N<LP: GIN$S _#GI.GAS, _#GN.BUF, _#6, _#"DV, R0, _#0, _#0? BCS 100$ ; Skip, GIN$ failed # @ BIT _#DV.DIR, GN.BUF+4 ; Directory device?A BEQ 100$ ; If not, don't do it #s> MOV GN.BUF, $MDDEV(R1) ; Load device name> MOVB GN.BUF+2, $MDDEV+2(R1) ; Load unit number# =100$: INC R0 ; Do next DV unit B ADD _#6, R1 ; Point at next entryA SOB R2, LP ; And loop until done # 9; This loop handles local assignments of type DVnn:V#R= CLR R0 ; Counts DV units > CLR R1 ; RMD table offset> MOVB GL.BUF+G.LUNU, R3 ; Load TI: unit _#: MOV _#6, R2 ; 6 units max#N=LP2: GIN$S _#GI.GAS, _#GN.BUF, _#6, _#"DV, R0, _#"TT, R3D? BCS 200$ ; Skip, GIN$ failed # @ BIT _#DV.DIR, GN.BUF+4 ; Directory device?A BEQ 200$ ; If not, don't do itL# > MOV GN.BUF, $MDDEV(R1) ; Load device name> MOVB GN.BUF+2, $MDDEV+2(R1) ; Load unit number#L=200$: INC R0 ; Do next DV unit#B ADD _#6, R1 ; Point at next entryA SOB R2, LP2 ; And loop until done # EXJ:/ .JUSTIFY.FILLf.SKIP> And here are the SLP patches to be applied to RMD source file[14,10]RMDXCM.MAC:.SKIP 2 .NO FILL .NO JUSTIFYfRMDXCM.MAC/AU=RMDXCM.MAC-/$MDDEV:/,.+12,/;JLN/9$MDDEV::.ASCII /DV/ ; Device nameF9 .WORD 0 ; Unit number @ .WORD 0 ; Device UCB address .ASCII /DV/ .WORD 1, 0 .ASCII /DV/ .WORD 2, 0 .ASCII /DV/ .WORD 3, 0 .ASCII /DV/ .WORD 4, 0 .ASCII /DV/ .WORD 5, 0/.JUSTIFY.FILL:.SKIP 2 6 ^IS144^GThe patches described by John won't work onFRSX-11S/M; GIN$ isn't available. However, for S/M, the same effect isEavailable via ALUN$, then GLUN$ to DVnn: on a fa00j[-TADATADATAke LUN; much the same ?information is returned. Coding is left as an exercise for the !reader. --- The Editor^IS204^G,.COMMENTJ.COMMENT +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++".COMMENT Rebuilding Device DriversJ.COMMENT +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.COMMENT .TEST PAGE 15T.SKIP 6s.CENTERd^&Rebuilding Device Drivers\&/.SKIP .CENTERiGerald Burgess.CENTER McDonnell Douglas.CENTER PO Box 2637e.CENTERoGarden Grove, CA###92642-2637s.SKIPnC Here is a nifty little command file I have found quite useful whenr4installing foreign devices that emulate DEC devices.A Recently I was adding an SI 9761 disk drive to a PDP-11/70 whichEKalready supported DEC RM03s. Both devices require the use of the DR device+Ddriver. One of the RM03s is my boot device and thus DRDRV is loaded<at VMR time. I was therefore looking at yet another SYSGEN.8 Instead, I performed section H of SYSGEN, wrote and ranLthis command file. The new device driver is loaded and brought online duringMsystem startup. The system is now up and running with a DEC RM03 system diskmand an SI 9761 data disk.l? In the event you need to add a DEC emulated device like I did,d/here is a sample execution of "RENAMEDRV.CMD" :u.SKIP 2 .NO FILL .NO JUSTIFYe >@RENAMEDRV /RENAMEDRV -- Cmd file to rename a device driverR)>* Enter new driver name [S: R:2-2]: QAh>* Create new driver ? [Y/N]: Y !>* Assemble new driver ? [Y/N]: Y>* Build new driver ? [Y/N]: Y)>* Enter old driver name [S: R:2-2]: DRg<>* Enter old driver code filename [S: R:5-5 D:"DRDRV"]: DR@>* Enter old driver database filename [S: R:5-5 D:"DRTAB"]: DR<>* Enter new driver code filename [S: R:5-5 D:"QADRV"]: QA@>* Enter new driver database filename [S: R:5-5 D:"QADRV"]: QA#RENAMEDRV -- Creating QATAB.MACl DR1:[11,10]QATAB.MAC;1 336 lines[EOB]wRENAMEDRV -- Creating QADRV.MAC*!DR1:[11,10]QADRV.MAC;1 1313 linesA[EOB] &RENAMEDRV -- Making device assignmentsRENAMEDRV -- Assembling driverRENAMEDRV -- Building driverRENAMEDRV -- STOPo@.JUSTIFY.FILL:.SKIP]B And here is the source text for the indirect command file itself:.SKIP 2t.NO FILL .NO JUSTIFYn5_.; RENAMEDRV -- Cmd file to rename a device driver a)_.; Gerald Burgess May 1986_.;A .ENABLE GLOBAL .ENABLE SUBSTITUTION .ENABLE QUIETE .OPEN TI: < .DATA RENAMEDRV -- Cmd file to rename a device driver .CLOSE, .ASKS [2:2] NEW Enter new driver name ! .ASK EDT Create new driver E# .ASK ASM Assemble new driver F .ASK BLD Build new driver  .SETL ASMBLD ASM!BLD .SETL ANY ASMBLD!EDT .IFF ANY .GOTO DONE.' .IFF EDT .IFT ASMBLD .GOTO ASMBLDc, .ASKS [2:2] OLD Enter old driver name  .SETS OLDDV OLD+"DRV"  .SETS OLDTB OLD+"TAB"U .SETS NEWDV NEW+"DRV" .SETS NEWTB NEW+"TAB" = .ASKS [5:5:OLDDV] OLDDV Enter old driver code filename A .ASKS [5:5:OLDTB] OLDTB Enter old driver database filename = .ASKS [5:5:NEWDV] NEWDV Enter new driver code filename BA .ASKS [5:5:NEWTB] NEWTB Enter new driver database filename S .SETS OLDDV OLDDV+".MAC" .SETS OLDTB OLDTB+".MAC" .SETS NEWDV NEWDV+".MAC" .SETS NEWTB NEWTB+".MAC" .OPEN RENAMEDRV.EDT  .DATA S/'OLD'/<>/W/NOTYPE .DATA S/<><>/<>DR/W/NOTYPE" .DATA S/<>IVE/DRIVE/W/NOTYPE& .DATA S/AD<>ESS/ADDRESS/W/NOTYPE .DATA S/<>Y/DRY/W/NOTYPE .DATA S/A<>/ADR/W/NOTYPE" .DATA S/.EN<>/.ENDR/W/NOTYPE$ .DATA S/S3.<>L/S3.DRL/W/NOTYPE .DATA S/<>/'NEW'/W/NOTYPE  .DATA EX .CLOSE .OPEN TI:T) .DATA RENAMEDRV -- Creating 'NEWTB'T .CLOSE' EDT 'NEWTB'='OLDTB',RENAMEDRV.EDTE .OPEN TI:) .DATA RENAMEDRV -- Creating 'NEWDV'/ .CLOSE' EDT 'NEWDV'='OLDDV',RENAMEDRV.EDT  .IFF ASMBLD .GOTO DONE _.ASMBLD:T .OPEN TI:S2 .DATA RENAMEDRV -- Making devi00p4ce assignments .CLOSE ASN SY:=LB:  .WAIT ASNO ASN SY:=IN:/ .WAIT ASNO ASN SY:=OU:/ .WAIT ASN  ASN SY:=LS:  .WAIT ASN _.ASM: .IFF ASM .GOTO BLD .OPEN TI:T* .DATA RENAMEDRV -- Assembling driver .CLOSE SET /UIC=[11,10] .WAIT SETC .OPEN 'NEW'MC.MACC: .DATA LD$'NEW'=0 ; ** 'NEW'DRV IS LOADABLE ** .CLOSE" PIP 'NEW'MC.MAC/AP=RSXMC.MAC .WAIT PIPE$ .OPEN [200,200]'NEW'DRVASM.CMD_.DATA ;A_.DATA ; 'NEW'DRVASM.CMD -- Loadable 'NEW': driver command fileW_.DATA ;(_.DATA ; Created on '' at '